From ed46ecd4dba5eff712a3b22d866b45ca9ab6acfc Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Mon, 25 May 2026 11:57:33 +0000 Subject: [PATCH] fix(web): deduplicate dees-catalog in the admin UI bundle --- changelog.md | 7 ++++++ pnpm-lock.yaml | 60 +++----------------------------------------- ts_bundled/bundle.ts | 2 +- 3 files changed, 11 insertions(+), 58 deletions(-) diff --git a/changelog.md b/changelog.md index f7e2212..409839d 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,13 @@ ## Pending +### Fixes + +- deduplicate dees-catalog in the admin UI bundle (web) + - Collapse transitive `@design.estate/dees-catalog` resolution to a single version to avoid duplicate custom element registration. +- deduplicate dees-catalog in the admin UI bundle (web) + - Collapse transitive @design.estate/dees-catalog resolution to a single version to avoid duplicate custom element registration. + - Update the bundled web artifact with the deduplicated dependency resolution. ## 2026-05-25 - 2.1.2 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6fa319a..2a53403 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,9 +48,6 @@ packages: '@api.global/typedrequest-interfaces@3.0.19': resolution: {integrity: sha512-uuHUXJeOy/inWSDrwD0Cwax2rovpxYllDhM2RWh+6mVpQuNmZ3uw6IVg6dA2G1rOe24Ebs+Y9SzEogo+jYN7vw==} - '@api.global/typedrequest@3.3.0': - resolution: {integrity: sha512-Jwobqla+9k2IBG0duwrCFtc6GU6wsvHS3f0gJJsxTrpapylBW1YSF7NnGHPGs7F9hbATsO6IoUBpR2ScoKyGJA==} - '@api.global/typedrequest@3.3.1': resolution: {integrity: sha512-uJ8uGS7T4OvnpvKlc1T6ML/CHOGKZIrgRFYYxnPKho2SZGnBFEfazWKshxlgqPsiWMZDFwX9i8c8sp+l3AGI2w==} @@ -78,9 +75,6 @@ packages: '@configvault.io/interfaces@1.0.17': resolution: {integrity: sha512-bEcCUR2VBDJsTin8HQh8Uw/mlYl2v8A3jMIaQ+MTB9Hrqd6CZL2dL7iJdWyFl/3EIX+LDxWFR+Oq7liIq7w+1Q==} - '@design.estate/dees-catalog@3.81.0': - resolution: {integrity: sha512-N7ocwSKVdjDQWmVV2XWiyg3dotGEuxP4/jhyB6duH8zJ3k63wmGm8+FeoP+LzRc8/U0Bl8w7UZrewlkIEMstUA==} - '@design.estate/dees-catalog@3.82.0': resolution: {integrity: sha512-OvPglDHI8J8K8+hmtxHyvVLzKMr8rQSFXVxf6xT60q/om3QoQacwS8cPI/RmnEKT+mzvDk/vnNpt9/Tw0cTmWA==} @@ -2418,18 +2412,6 @@ snapshots: '@api.global/typedrequest-interfaces@3.0.19': {} - '@api.global/typedrequest@3.3.0': - dependencies: - '@api.global/typedrequest-interfaces': 3.0.19 - '@push.rocks/isounique': 1.0.5 - '@push.rocks/lik': 6.4.1 - '@push.rocks/smartbuffer': 3.0.6 - '@push.rocks/smartdelay': 3.1.0 - '@push.rocks/smartguard': 3.1.0 - '@push.rocks/smartpromise': 4.2.4 - '@push.rocks/webrequest': 4.0.5 - '@push.rocks/webstream': 1.0.10 - '@api.global/typedrequest@3.3.1': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 @@ -2448,7 +2430,7 @@ snapshots: '@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedsocket': 4.1.3(@push.rocks/smartserve@2.0.4) '@cloudflare/workers-types': 4.20260507.1 - '@design.estate/dees-catalog': 3.81.0(@tiptap/pm@2.27.2) + '@design.estate/dees-catalog': 3.82.0(@tiptap/pm@2.27.2) '@design.estate/dees-comms': 1.0.30 '@push.rocks/lik': 6.4.1 '@push.rocks/smartdelay': 3.1.0 @@ -2513,42 +2495,6 @@ snapshots: dependencies: '@api.global/typedrequest-interfaces': 3.0.19 - '@design.estate/dees-catalog@3.81.0(@tiptap/pm@2.27.2)': - dependencies: - '@design.estate/dees-domtools': 2.5.6 - '@design.estate/dees-element': 2.2.4 - '@design.estate/dees-wcctools': 3.9.0 - '@fortawesome/fontawesome-svg-core': 7.2.0 - '@fortawesome/free-brands-svg-icons': 7.2.0 - '@fortawesome/free-regular-svg-icons': 7.2.0 - '@fortawesome/free-solid-svg-icons': 7.2.0 - '@push.rocks/smarti18n': 1.1.0 - '@push.rocks/smartpromise': 4.2.4 - '@push.rocks/smartstring': 4.1.1 - '@tempfix/webcontainer__api': 1.6.1 - '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-link': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) - '@tiptap/extension-text-align': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) - '@tiptap/extension-typography': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) - '@tiptap/extension-underline': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) - '@tiptap/starter-kit': 2.27.2 - '@tsclass/tsclass': 9.5.1 - echarts: 5.6.0 - highlight.js: 11.11.1 - ibantools: 4.5.4 - lightweight-charts: 5.2.0 - lucide: 1.14.0 - monaco-editor: 0.55.1 - pdfjs-dist: 4.10.38 - xterm: 5.3.0 - xterm-addon-fit: 0.8.0(xterm@5.3.0) - transitivePeerDependencies: - - '@nuxt/kit' - - '@tiptap/pm' - - react - - supports-color - - vue - '@design.estate/dees-catalog@3.82.0(@tiptap/pm@2.27.2)': dependencies: '@design.estate/dees-domtools': 2.5.6 @@ -2587,7 +2533,7 @@ snapshots: '@design.estate/dees-comms@1.0.30': dependencies: - '@api.global/typedrequest': 3.3.0 + '@api.global/typedrequest': 3.3.1 '@api.global/typedrequest-interfaces': 3.0.19 '@push.rocks/smartdelay': 3.1.0 broadcast-channel: 7.3.0 @@ -3629,7 +3575,7 @@ snapshots: '@serve.zone/catalog@2.12.6(@tiptap/pm@2.27.2)': dependencies: - '@design.estate/dees-catalog': 3.81.0(@tiptap/pm@2.27.2) + '@design.estate/dees-catalog': 3.82.0(@tiptap/pm@2.27.2) '@design.estate/dees-domtools': 2.5.6 '@design.estate/dees-element': 2.2.4 '@design.estate/dees-wcctools': 3.9.0 diff --git a/ts_bundled/bundle.ts b/ts_bundled/bundle.ts index 075d450..a7f7678 100644 --- a/ts_bundled/bundle.ts +++ b/ts_bundled/bundle.ts @@ -2,7 +2,7 @@ export const files: { path: string; contentBase64: string }[] = [ { "path": "bundle.js", - "contentBase64": "dmFyIHoxdD1PYmplY3QuY3JlYXRlLFMxdD1PYmplY3QuZnJlZXplLEU0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgQzF0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIHFDYT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgakNhPU9iamVjdC5nZXRQcm90b3R5cGVPZixWQ2E9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgVDF0PShzLGUpPT4oZT1TeW1ib2xbc10pP2U6U3ltYm9sLmZvcigiU3ltYm9sLiIrcyksYjc9cz0+e3Rocm93IFR5cGVFcnJvcihzKX07dmFyICQxdD0ocyxlLHQpPT5lIGluIHM/RTQocyxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6c1tlXT10O3ZhciBpPShzLGUpPT5FNChzLCJuYW1lIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KTt2YXIgZz0ocyxlKT0+KCk9PihzJiYoZT1zKHM9MCkpLGUpO3ZhciBwbD0ocyxlKT0+KCk9PihlfHxzKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpLHl0PShzLGUpPT57Zm9yKHZhciB0IGluIGUpRTQocyx0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LFVDYT0ocyxlLHQsYSk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgciBvZiBxQ2EoZSkpIVZDYS5jYWxsKHMscikmJnIhPT10JiZFNChzLHIse2dldDooKT0+ZVtyXSxlbnVtZXJhYmxlOiEoYT1DMXQoZSxyKSl8fGEuZW51bWVyYWJsZX0pO3JldHVybiBzfTt2YXIgeG49KHMsZSx0KT0+KHQ9cyE9bnVsbD96MXQoakNhKHMpKTp7fSxVQ2EoZXx8IXN8fCFzLl9fZXNNb2R1bGU/RTQodCwiZGVmYXVsdCIse3ZhbHVlOnMsZW51bWVyYWJsZTohMH0pOnQscykpO3ZhciBSaT1zPT5bLCwsejF0KHM/LltUMXQoIm1ldGFkYXRhIildPz9udWxsKV0sRDF0PVsiY2xhc3MiLCJtZXRob2QiLCJnZXR0ZXIiLCJzZXR0ZXIiLCJhY2Nlc3NvciIsImZpZWxkIiwidmFsdWUiLCJnZXQiLCJzZXQiXSxLeD1zPT5zIT09dm9pZCAwJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIj9iNygiRnVuY3Rpb24gZXhwZWN0ZWQiKTpzLFdDYT0ocyxlLHQsYSxyKT0+KHtraW5kOkQxdFtzXSxuYW1lOmUsbWV0YWRhdGE6YSxhZGRJbml0aWFsaXplcjpuPT50Ll8/YjcoIkFscmVhZHkgaW5pdGlhbGl6ZWQiKTpyLnB1c2goS3gobnx8bnVsbCkpfSksR0NhPShzLGUpPT4kMXQoZSxUMXQoIm1ldGFkYXRhIiksc1szXSksaXQ9KHMsZSx0LGEpPT57Zm9yKHZhciByPTAsbj1zW2U+PjFdLG89biYmbi5sZW5ndGg7cjxvO3IrKyllJjE/bltyXS5jYWxsKHQpOmE9bltyXS5jYWxsKHQsYSk7cmV0dXJuIGF9LFJ0PShzLGUsdCxhLHIsbik9Pnt2YXIgbyxsLHAsZCx1LGM9ZSY3LGI9ISEoZSY4KSx2PSEhKGUmMTYpLHg9Yz4zP3MubGVuZ3RoKzE6Yz9iPzE6MjowLG09RDF0W2MrNV0sZj1jPjMmJihzW3gtMV09W10pLHk9c1t4XXx8KHNbeF09W10pLE09YyYmKCF2JiYhYiYmKHI9ci5wcm90b3R5cGUpLGM8NSYmKGM+M3x8IXYpJiZDMXQoYzw0P3I6e2dldFt0XSgpe3JldHVybiBfMXQodGhpcyxuKX0sc2V0W3RdKE4pe3JldHVybiBNMXQodGhpcyxuLE4pfX0sdCkpO2M/diYmYzw0JiZpKG4sKGM+Mj8ic2V0ICI6Yz4xPyJnZXQgIjoiIikrdCk6aShyLHQpO2Zvcih2YXIgej1hLmxlbmd0aC0xO3o+PTA7ei0tKWQ9V0NhKGMsdCxwPXt9LHNbM10seSksYyYmKGQuc3RhdGljPWIsZC5wcml2YXRlPXYsdT1kLmFjY2Vzcz17aGFzOnY/Tj0+S0NhKHIsTik6Tj0+dCBpbiBOfSxjXjMmJih1LmdldD12P049PihjXjE/XzF0OllDYSkoTixyLGNeND9uOk0uZ2V0KTpOPT5OW3RdKSxjPjImJih1LnNldD12PyhOLEMpPT5NMXQoTixyLEMsY140P246TS5zZXQpOihOLEMpPT5OW3RdPUMpKSxsPSgwLGFbel0pKGM/Yzw0P3Y/bjpNW21dOmM+ND92b2lkIDA6e2dldDpNLmdldCxzZXQ6TS5zZXR9OnIsZCkscC5fPTEsY140fHxsPT09dm9pZCAwP0t4KGwpJiYoYz40P2YudW5zaGlmdChsKTpjP3Y/bj1sOk1bbV09bDpyPWwpOnR5cGVvZiBsIT0ib2JqZWN0Inx8bD09PW51bGw/YjcoIk9iamVjdCBleHBlY3RlZCIpOihLeChvPWwuZ2V0KSYmKE0uZ2V0PW8pLEt4KG89bC5zZXQpJiYoTS5zZXQ9byksS3gobz1sLmluaXQpJiZmLnVuc2hpZnQobykpO3JldHVybiBjfHxHQ2EocyxyKSxNJiZFNChyLHQsTSksdj9jXjQ/bjpNOnJ9LHZpPShzLGUsdCk9PiQxdChzLHR5cGVvZiBlIT0ic3ltYm9sIj9lKyIiOmUsdCksRjJlPShzLGUsdCk9PmUuaGFzKHMpfHxiNygiQ2Fubm90ICIrdCksS0NhPShzLGUpPT5PYmplY3QoZSkhPT1lP2I3KCdDYW5ub3QgdXNlIHRoZSAiaW4iIG9wZXJhdG9yIG9uIHRoaXMgdmFsdWUnKTpzLmhhcyhlKSxfMXQ9KHMsZSx0KT0+KEYyZShzLGUsInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkIiksdD90LmNhbGwocyk6ZS5nZXQocykpLGVhPShzLGUsdCk9PmUuaGFzKHMpP2I3KCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlIik6ZSBpbnN0YW5jZW9mIFdlYWtTZXQ/ZS5hZGQocyk6ZS5zZXQocyx0KSxNMXQ9KHMsZSx0LGEpPT4oRjJlKHMsZSwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLGE/YS5jYWxsKHMsdCk6ZS5zZXQocyx0KSx0KSxZQ2E9KHMsZSx0KT0+KEYyZShzLGUsImFjY2VzcyBwcml2YXRlIG1ldGhvZCIpLHQpO3ZhciBiYz0ocyxlKT0+UzF0KEU0KHMsInJhdyIse3ZhbHVlOlMxdChlfHxzLnNsaWNlKCkpfSkpO3ZhciBTSixZeCxCMmUsTDF0LHY3LGFhLEosX0osWngsSDJlPWcoKCk9PntTSj1nbG9iYWxUaGlzLFl4PVNKLlNoYWRvd1Jvb3QmJihTSi5TaGFkeUNTUz09PXZvaWQgMHx8U0ouU2hhZHlDU1MubmF0aXZlU2hhZG93KSYmImFkb3B0ZWRTdHlsZVNoZWV0cyJpbiBEb2N1bWVudC5wcm90b3R5cGUmJiJyZXBsYWNlImluIENTU1N0eWxlU2hlZXQucHJvdG90eXBlLEIyZT1TeW1ib2woKSxMMXQ9bmV3IFdlYWtNYXAsdjc9Y2xhc3N7c3RhdGlje2kodGhpcywibiIpfWNvbnN0cnVjdG9yKGUsdCxhKXtpZih0aGlzLl8kY3NzUmVzdWx0JD0hMCxhIT09QjJlKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1lLHRoaXMudD10fWdldCBzdHlsZVNoZWV0KCl7bGV0IGU9dGhpcy5vLHQ9dGhpcy50O2lmKFl4JiZlPT09dm9pZCAwKXtsZXQgYT10IT09dm9pZCAwJiZ0Lmxlbmd0aD09PTE7YSYmKGU9TDF0LmdldCh0KSksZT09PXZvaWQgMCYmKCh0aGlzLm89ZT1uZXcgQ1NTU3R5bGVTaGVldCkucmVwbGFjZVN5bmModGhpcy5jc3NUZXh0KSxhJiZMMXQuc2V0KHQsZSkpfXJldHVybiBlfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19LGFhPWkocz0+bmV3IHY3KHR5cGVvZiBzPT0ic3RyaW5nIj9zOnMrIiIsdm9pZCAwLEIyZSksInIiKSxKPWkoKHMsLi4uZSk9PntsZXQgdD1zLmxlbmd0aD09PTE/c1swXTplLnJlZHVjZSgoYSxyLG4pPT5hKyhvPT57aWYoby5fJGNzc1Jlc3VsdCQ9PT0hMClyZXR1cm4gby5jc3NUZXh0O2lmKHR5cGVvZiBvPT0ibnVtYmVyIilyZXR1cm4gbzt0aHJvdyBFcnJvcigiVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICIrbysiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuIil9KShyKStzW24rMV0sc1swXSk7cmV0dXJuIG5ldyB2Nyh0LHMsQjJlKX0sImkiKSxfSj1pKChzLGUpPT57aWYoWXgpcy5hZG9wdGVkU3R5bGVTaGVldHM9ZS5tYXAodD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/dDp0LnN0eWxlU2hlZXQpO2Vsc2UgZm9yKGxldCB0IG9mIGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikscj1TSi5saXROb25jZTtyIT09dm9pZCAwJiZhLnNldEF0dHJpYnV0ZSgibm9uY2UiLHIpLGEudGV4dENvbnRlbnQ9dC5jc3NUZXh0LHMuYXBwZW5kQ2hpbGQoYSl9fSwiUyIpLFp4PVl4P3M9PnM6cz0+cyBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgdD0iIjtmb3IobGV0IGEgb2YgZS5jc3NSdWxlcyl0Kz1hLmNzc1RleHQ7cmV0dXJuIGFhKHQpfSkocyk6c30pO3ZhciBaQ2EsWENhLFFDYSxKQ2EsZVRhLHRUYSxNSixFMXQsYVRhLHNUYSxYeCx4NyxReCxQMXQsVjIsSng9ZygoKT0+e0gyZSgpO0gyZSgpOyh7aXM6WkNhLGRlZmluZVByb3BlcnR5OlhDYSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6UUNhLGdldE93blByb3BlcnR5TmFtZXM6SkNhLGdldE93blByb3BlcnR5U3ltYm9sczplVGEsZ2V0UHJvdG90eXBlT2Y6dFRhfT1PYmplY3QpLE1KPWdsb2JhbFRoaXMsRTF0PU1KLnRydXN0ZWRUeXBlcyxhVGE9RTF0P0UxdC5lbXB0eVNjcmlwdDoiIixzVGE9TUoucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LFh4PWkoKHMsZSk9PnMsImQiKSx4Nz17dG9BdHRyaWJ1dGUocyxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnM9cz9hVGE6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnM9cz09bnVsbD9zOkpTT04uc3RyaW5naWZ5KHMpfXJldHVybiBzfSxmcm9tQXR0cmlidXRlKHMsZSl7bGV0IHQ9cztzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnQ9cyE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6dD1zPT09bnVsbD9udWxsOk51bWJlcihzKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXt0PUpTT04ucGFyc2Uocyl9Y2F0Y2h7dD1udWxsfX1yZXR1cm4gdH19LFF4PWkoKHMsZSk9PiFaQ2EocyxlKSwiZiIpLFAxdD17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjp4NyxyZWZsZWN0OiExLHVzZURlZmF1bHQ6ITEsaGFzQ2hhbmdlZDpReH07U3ltYm9sLm1ldGFkYXRhPz89U3ltYm9sKCJtZXRhZGF0YSIpLE1KLmxpdFByb3BlcnR5TWV0YWRhdGE/Pz1uZXcgV2Vha01hcDtWMj1jbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpY3tpKHRoaXMsInkiKX1zdGF0aWMgYWRkSW5pdGlhbGl6ZXIoZSl7dGhpcy5fJEVpKCksKHRoaXMubD8/PVtdKS5wdXNoKGUpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuIHRoaXMuZmluYWxpemUoKSx0aGlzLl8kRWgmJlsuLi50aGlzLl8kRWgua2V5cygpXX1zdGF0aWMgY3JlYXRlUHJvcGVydHkoZSx0PVAxdCl7aWYodC5zdGF0ZSYmKHQuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShlKSYmKCh0PU9iamVjdC5jcmVhdGUodCkpLndyYXBwZWQ9ITApLHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGUsdCksIXQubm9BY2Nlc3Nvcil7bGV0IGE9U3ltYm9sKCkscj10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihlLGEsdCk7ciE9PXZvaWQgMCYmWENhKHRoaXMucHJvdG90eXBlLGUscil9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSx0LGEpe2xldHtnZXQ6cixzZXQ6bn09UUNhKHRoaXMucHJvdG90eXBlLGUpPz97Z2V0KCl7cmV0dXJuIHRoaXNbdF19LHNldChvKXt0aGlzW3RdPW99fTtyZXR1cm57Z2V0OnIsc2V0KG8pe2xldCBsPXI/LmNhbGwodGhpcyk7bj8uY2FsbCh0aGlzLG8pLHRoaXMucmVxdWVzdFVwZGF0ZShlLGwsYSl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGUpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKT8/UDF0fXN0YXRpYyBfJEVpKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShYeCgiZWxlbWVudFByb3BlcnRpZXMiKSkpcmV0dXJuO2xldCBlPXRUYSh0aGlzKTtlLmZpbmFsaXplKCksZS5sIT09dm9pZCAwJiYodGhpcy5sPVsuLi5lLmxdKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzPW5ldyBNYXAoZS5lbGVtZW50UHJvcGVydGllcyl9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShYeCgiZmluYWxpemVkIikpKXJldHVybjtpZih0aGlzLmZpbmFsaXplZD0hMCx0aGlzLl8kRWkoKSx0aGlzLmhhc093blByb3BlcnR5KFh4KCJwcm9wZXJ0aWVzIikpKXtsZXQgdD10aGlzLnByb3BlcnRpZXMsYT1bLi4uSkNhKHQpLC4uLmVUYSh0KV07Zm9yKGxldCByIG9mIGEpdGhpcy5jcmVhdGVQcm9wZXJ0eShyLHRbcl0pfWxldCBlPXRoaXNbU3ltYm9sLm1ldGFkYXRhXTtpZihlIT09bnVsbCl7bGV0IHQ9bGl0UHJvcGVydHlNZXRhZGF0YS5nZXQoZSk7aWYodCE9PXZvaWQgMClmb3IobGV0W2Escl1vZiB0KXRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGEscil9dGhpcy5fJEVoPW5ldyBNYXA7Zm9yKGxldFt0LGFdb2YgdGhpcy5lbGVtZW50UHJvcGVydGllcyl7bGV0IHI9dGhpcy5fJEV1KHQsYSk7ciE9PXZvaWQgMCYmdGhpcy5fJEVoLnNldChyLHQpfXRoaXMuZWxlbWVudFN0eWxlcz10aGlzLmZpbmFsaXplU3R5bGVzKHRoaXMuc3R5bGVzKX1zdGF0aWMgZmluYWxpemVTdHlsZXMoZSl7bGV0IHQ9W107aWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IGE9bmV3IFNldChlLmZsYXQoMS8wKS5yZXZlcnNlKCkpO2ZvcihsZXQgciBvZiBhKXQudW5zaGlmdChaeChyKSl9ZWxzZSBlIT09dm9pZCAwJiZ0LnB1c2goWngoZSkpO3JldHVybiB0fXN0YXRpYyBfJEV1KGUsdCl7bGV0IGE9dC5hdHRyaWJ1dGU7cmV0dXJuIGE9PT0hMT92b2lkIDA6dHlwZW9mIGE9PSJzdHJpbmciP2E6dHlwZW9mIGU9PSJzdHJpbmciP2UudG9Mb3dlckNhc2UoKTp2b2lkIDB9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuXyRFcD12b2lkIDAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITEsdGhpcy5oYXNVcGRhdGVkPSExLHRoaXMuXyRFbT1udWxsLHRoaXMuXyRFdigpfV8kRXYoKXt0aGlzLl8kRVM9bmV3IFByb21pc2UoZT0+dGhpcy5lbmFibGVVcGRhdGluZz1lKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8kRV8oKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNvbnN0cnVjdG9yLmw/LmZvckVhY2goZT0+ZSh0aGlzKSl9YWRkQ29udHJvbGxlcihlKXsodGhpcy5fJEVPPz89bmV3IFNldCkuYWRkKGUpLHRoaXMucmVuZGVyUm9vdCE9PXZvaWQgMCYmdGhpcy5pc0Nvbm5lY3RlZCYmZS5ob3N0Q29ubmVjdGVkPy4oKX1yZW1vdmVDb250cm9sbGVyKGUpe3RoaXMuXyRFTz8uZGVsZXRlKGUpfV8kRV8oKXtsZXQgZT1uZXcgTWFwLHQ9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztmb3IobGV0IGEgb2YgdC5rZXlzKCkpdGhpcy5oYXNPd25Qcm9wZXJ0eShhKSYmKGUuc2V0KGEsdGhpc1thXSksZGVsZXRlIHRoaXNbYV0pO2Uuc2l6ZT4wJiYodGhpcy5fJEVwPWUpfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT10aGlzLnNoYWRvd1Jvb3Q/P3RoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iuc2hhZG93Um9vdE9wdGlvbnMpO3JldHVybiBfSihlLHRoaXMuY29uc3RydWN0b3IuZWxlbWVudFN0eWxlcyksZX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuZW5hYmxlVXBkYXRpbmcoITApLHRoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3RDb25uZWN0ZWQ/LigpKX1lbmFibGVVcGRhdGluZyhlKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl8kRU8/LmZvckVhY2goZT0+ZS5ob3N0RGlzY29ubmVjdGVkPy4oKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUsdCxhKXt0aGlzLl8kQUsoZSxhKX1fJEVUKGUsdCl7bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcy5nZXQoZSkscj10aGlzLmNvbnN0cnVjdG9yLl8kRXUoZSxhKTtpZihyIT09dm9pZCAwJiZhLnJlZmxlY3Q9PT0hMCl7bGV0IG49KGEuY29udmVydGVyPy50b0F0dHJpYnV0ZSE9PXZvaWQgMD9hLmNvbnZlcnRlcjp4NykudG9BdHRyaWJ1dGUodCxhLnR5cGUpO3RoaXMuXyRFbT1lLG49PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGUocik6dGhpcy5zZXRBdHRyaWJ1dGUocixuKSx0aGlzLl8kRW09bnVsbH19XyRBSyhlLHQpe2xldCBhPXRoaXMuY29uc3RydWN0b3Iscj1hLl8kRWguZ2V0KGUpO2lmKHIhPT12b2lkIDAmJnRoaXMuXyRFbSE9PXIpe2xldCBuPWEuZ2V0UHJvcGVydHlPcHRpb25zKHIpLG89dHlwZW9mIG4uY29udmVydGVyPT0iZnVuY3Rpb24iP3tmcm9tQXR0cmlidXRlOm4uY29udmVydGVyfTpuLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZSE9PXZvaWQgMD9uLmNvbnZlcnRlcjp4Nzt0aGlzLl8kRW09cjtsZXQgbD1vLmZyb21BdHRyaWJ1dGUodCxuLnR5cGUpO3RoaXNbcl09bD8/dGhpcy5fJEVqPy5nZXQocik/P2wsdGhpcy5fJEVtPW51bGx9fXJlcXVlc3RVcGRhdGUoZSx0LGEscj0hMSxuKXtpZihlIT09dm9pZCAwKXtsZXQgbz10aGlzLmNvbnN0cnVjdG9yO2lmKHI9PT0hMSYmKG49dGhpc1tlXSksYT8/PW8uZ2V0UHJvcGVydHlPcHRpb25zKGUpLCEoKGEuaGFzQ2hhbmdlZD8/UXgpKG4sdCl8fGEudXNlRGVmYXVsdCYmYS5yZWZsZWN0JiZuPT09dGhpcy5fJEVqPy5nZXQoZSkmJiF0aGlzLmhhc0F0dHJpYnV0ZShvLl8kRXUoZSxhKSkpKXJldHVybjt0aGlzLkMoZSx0LGEpfXRoaXMuaXNVcGRhdGVQZW5kaW5nPT09ITEmJih0aGlzLl8kRVM9dGhpcy5fJEVQKCkpfUMoZSx0LHt1c2VEZWZhdWx0OmEscmVmbGVjdDpyLHdyYXBwZWQ6bn0sbyl7YSYmISh0aGlzLl8kRWo/Pz1uZXcgTWFwKS5oYXMoZSkmJih0aGlzLl8kRWouc2V0KGUsbz8/dD8/dGhpc1tlXSksbiE9PSEwfHxvIT09dm9pZCAwKXx8KHRoaXMuXyRBTC5oYXMoZSl8fCh0aGlzLmhhc1VwZGF0ZWR8fGF8fCh0PXZvaWQgMCksdGhpcy5fJEFMLnNldChlLHQpKSxyPT09ITAmJnRoaXMuXyRFbSE9PWUmJih0aGlzLl8kRXE/Pz1uZXcgU2V0KS5hZGQoZSkpfWFzeW5jIF8kRVAoKXt0aGlzLmlzVXBkYXRlUGVuZGluZz0hMDt0cnl7YXdhaXQgdGhpcy5fJEVTfWNhdGNoKHQpe1Byb21pc2UucmVqZWN0KHQpfWxldCBlPXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gZSE9bnVsbCYmYXdhaXQgZSwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IobGV0W3Isbl1vZiB0aGlzLl8kRXApdGhpc1tyXT1uO3RoaXMuXyRFcD12b2lkIDB9bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztpZihhLnNpemU+MClmb3IobGV0W3Isbl1vZiBhKXtsZXR7d3JhcHBlZDpvfT1uLGw9dGhpc1tyXTtvIT09ITB8fHRoaXMuXyRBTC5oYXMocil8fGw9PT12b2lkIDB8fHRoaXMuQyhyLHZvaWQgMCxuLGwpfX1sZXQgZT0hMSx0PXRoaXMuXyRBTDt0cnl7ZT10aGlzLnNob3VsZFVwZGF0ZSh0KSxlPyh0aGlzLndpbGxVcGRhdGUodCksdGhpcy5fJEVPPy5mb3JFYWNoKGE9PmEuaG9zdFVwZGF0ZT8uKCkpLHRoaXMudXBkYXRlKHQpKTp0aGlzLl8kRU0oKX1jYXRjaChhKXt0aHJvdyBlPSExLHRoaXMuXyRFTSgpLGF9ZSYmdGhpcy5fJEFFKHQpfXdpbGxVcGRhdGUoZSl7fV8kQUUoZSl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdFVwZGF0ZWQ/LigpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKX1fJEVNKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKGUpe3JldHVybiEwfXVwZGF0ZShlKXt0aGlzLl8kRXEmJj10aGlzLl8kRXEuZm9yRWFjaCh0PT50aGlzLl8kRVQodCx0aGlzW3RdKSksdGhpcy5fJEVNKCl9dXBkYXRlZChlKXt9Zmlyc3RVcGRhdGVkKGUpe319O1YyLmVsZW1lbnRTdHlsZXM9W10sVjIuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSxWMltYeCgiZWxlbWVudFByb3BlcnRpZXMiKV09bmV3IE1hcCxWMltYeCgiZmluYWxpemVkIildPW5ldyBNYXAsc1RhPy4oe1JlYWN0aXZlRWxlbWVudDpWMn0pLChNSi5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjEuMiIpfSk7ZnVuY3Rpb24gajF0KHMsZSl7aWYoIVUyZShzKXx8IXMuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gQTF0IT09dm9pZCAwP0ExdC5jcmVhdGVIVE1MKGUpOmV9ZnVuY3Rpb24gTjQocyxlLHQ9cyxhKXtpZihlPT09b2kpcmV0dXJuIGU7bGV0IHI9YSE9PXZvaWQgMD90Ll8kQ28/LlthXTp0Ll8kQ2wsbj10eShlKT92b2lkIDA6ZS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIHI/LmNvbnN0cnVjdG9yIT09biYmKHI/Ll8kQU8/LighMSksbj09PXZvaWQgMD9yPXZvaWQgMDoocj1uZXcgbihzKSxyLl8kQVQocyx0LGEpKSxhIT09dm9pZCAwPyh0Ll8kQ28/Pz1bXSlbYV09cjp0Ll8kQ2w9ciksciE9PXZvaWQgMCYmKGU9TjQocyxyLl8kQVMocyxlLnZhbHVlcykscixhKSksZX12YXIgcTJlLEkxdCx6SixBMXQsajJlLHIwLFYyZSxpVGEsUDQsZXksdHksVTJlLE4xdCxXMmUsYXksUjF0LE8xdCxJNCxGMXQsQjF0LEgxdCxHMmUsdyxLMmUsWTJlLG9pLHhpLHExdCxBNCxWMXQsc3ksQ0oseTcsUjQsVEosJEosREosTEosWjJlLHJUYSxoMSxmMT1nKCgpPT57cTJlPWdsb2JhbFRoaXMsSTF0PWkocz0+cywiaSIpLHpKPXEyZS50cnVzdGVkVHlwZXMsQTF0PXpKP3pKLmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmkocz0+cywiY3JlYXRlSFRNTCIpfSk6dm9pZCAwLGoyZT0iJGxpdCQiLHIwPWBsaXQkJHtNYXRoLnJhbmRvbSgpLnRvRml4ZWQoOSkuc2xpY2UoMil9JGAsVjJlPSI/IityMCxpVGE9YDwke1YyZX0+YCxQND1kb2N1bWVudCxleT1pKCgpPT5QNC5jcmVhdGVDb21tZW50KCIiKSwiYyIpLHR5PWkocz0+cz09PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0IiYmdHlwZW9mIHMhPSJmdW5jdGlvbiIsImEiKSxVMmU9QXJyYXkuaXNBcnJheSxOMXQ9aShzPT5VMmUocyl8fHR5cGVvZiBzPy5bU3ltYm9sLml0ZXJhdG9yXT09ImZ1bmN0aW9uIiwiZCIpLFcyZT1gWyAJClxmXHJdYCxheT0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxSMXQ9Ly0tPi9nLE8xdD0vPi9nLEk0PVJlZ0V4cChgPnwke1cyZX0oPzooW15cXHMiJz49L10rKSgke1cyZX0qPSR7VzJlfSooPzpbXiAJClxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSxGMXQ9LycvZyxCMXQ9LyIvZyxIMXQ9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLEcyZT1pKHM9PihlLC4uLnQpPT4oe18kbGl0VHlwZSQ6cyxzdHJpbmdzOmUsdmFsdWVzOnR9KSwieCIpLHc9RzJlKDEpLEsyZT1HMmUoMiksWTJlPUcyZSgzKSxvaT1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSx4aT1TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpLHExdD1uZXcgV2Vha01hcCxBND1QNC5jcmVhdGVUcmVlV2Fsa2VyKFA0LDEyOSk7aShqMXQsIlYiKTtWMXQ9aSgocyxlKT0+e2xldCB0PXMubGVuZ3RoLTEsYT1bXSxyLG49ZT09PTI/Ijxzdmc+IjplPT09Mz8iPG1hdGg+IjoiIixvPWF5O2ZvcihsZXQgbD0wO2w8dDtsKyspe2xldCBwPXNbbF0sZCx1LGM9LTEsYj0wO2Zvcig7YjxwLmxlbmd0aCYmKG8ubGFzdEluZGV4PWIsdT1vLmV4ZWMocCksdSE9PW51bGwpOyliPW8ubGFzdEluZGV4LG89PT1heT91WzFdPT09IiEtLSI/bz1SMXQ6dVsxXSE9PXZvaWQgMD9vPU8xdDp1WzJdIT09dm9pZCAwPyhIMXQudGVzdCh1WzJdKSYmKHI9UmVnRXhwKCI8LyIrdVsyXSwiZyIpKSxvPUk0KTp1WzNdIT09dm9pZCAwJiYobz1JNCk6bz09PUk0P3VbMF09PT0iPiI/KG89cj8/YXksYz0tMSk6dVsxXT09PXZvaWQgMD9jPS0yOihjPW8ubGFzdEluZGV4LXVbMl0ubGVuZ3RoLGQ9dVsxXSxvPXVbM109PT12b2lkIDA/STQ6dVszXT09PSciJz9CMXQ6RjF0KTpvPT09QjF0fHxvPT09RjF0P289STQ6bz09PVIxdHx8bz09PU8xdD9vPWF5OihvPUk0LHI9dm9pZCAwKTtsZXQgdj1vPT09STQmJnNbbCsxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjtuKz1vPT09YXk/cCtpVGE6Yz49MD8oYS5wdXNoKGQpLHAuc2xpY2UoMCxjKStqMmUrcC5zbGljZShjKStyMCt2KTpwK3IwKyhjPT09LTI/bDp2KX1yZXR1cm5bajF0KHMsbisoc1t0XXx8Ijw/PiIpKyhlPT09Mj8iPC9zdmc+IjplPT09Mz8iPC9tYXRoPiI6IiIpKSxhXX0sIk4iKSxzeT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlMiKX1jb25zdHJ1Y3Rvcih7c3RyaW5nczplLF8kbGl0VHlwZSQ6dH0sYSl7bGV0IHI7dGhpcy5wYXJ0cz1bXTtsZXQgbj0wLG89MCxsPWUubGVuZ3RoLTEscD10aGlzLnBhcnRzLFtkLHVdPVYxdChlLHQpO2lmKHRoaXMuZWw9cy5jcmVhdGVFbGVtZW50KGQsYSksQTQuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LHQ9PT0yfHx0PT09Myl7bGV0IGM9dGhpcy5lbC5jb250ZW50LmZpcnN0Q2hpbGQ7Yy5yZXBsYWNlV2l0aCguLi5jLmNoaWxkTm9kZXMpfWZvcig7KHI9QTQubmV4dE5vZGUoKSkhPT1udWxsJiZwLmxlbmd0aDxsOyl7aWYoci5ub2RlVHlwZT09PTEpe2lmKHIuaGFzQXR0cmlidXRlcygpKWZvcihsZXQgYyBvZiByLmdldEF0dHJpYnV0ZU5hbWVzKCkpaWYoYy5lbmRzV2l0aChqMmUpKXtsZXQgYj11W28rK10sdj1yLmdldEF0dHJpYnV0ZShjKS5zcGxpdChyMCkseD0vKFsuP0BdKT8oLiopLy5leGVjKGIpO3AucHVzaCh7dHlwZToxLGluZGV4Om4sbmFtZTp4WzJdLHN0cmluZ3M6dixjdG9yOnhbMV09PT0iLiI/VEo6eFsxXT09PSI/Ij8kSjp4WzFdPT09IkAiP0RKOlI0fSksci5yZW1vdmVBdHRyaWJ1dGUoYyl9ZWxzZSBjLnN0YXJ0c1dpdGgocjApJiYocC5wdXNoKHt0eXBlOjYsaW5kZXg6bn0pLHIucmVtb3ZlQXR0cmlidXRlKGMpKTtpZihIMXQudGVzdChyLnRhZ05hbWUpKXtsZXQgYz1yLnRleHRDb250ZW50LnNwbGl0KHIwKSxiPWMubGVuZ3RoLTE7aWYoYj4wKXtyLnRleHRDb250ZW50PXpKP3pKLmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgdj0wO3Y8Yjt2Kyspci5hcHBlbmQoY1t2XSxleSgpKSxBNC5uZXh0Tm9kZSgpLHAucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO3IuYXBwZW5kKGNbYl0sZXkoKSl9fX1lbHNlIGlmKHIubm9kZVR5cGU9PT04KWlmKHIuZGF0YT09PVYyZSlwLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgYz0tMTtmb3IoOyhjPXIuZGF0YS5pbmRleE9mKHIwLGMrMSkpIT09LTE7KXAucHVzaCh7dHlwZTo3LGluZGV4Om59KSxjKz1yMC5sZW5ndGgtMX1uKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KGUsdCl7bGV0IGE9UDQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gYS5pbm5lckhUTUw9ZSxhfX07aShONCwiTSIpO0NKPWNsYXNze3N0YXRpY3tpKHRoaXMsIlIiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD1lLHRoaXMuXyRBTT10fWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUoZSl7bGV0e2VsOntjb250ZW50OnR9LHBhcnRzOmF9PXRoaXMuXyRBRCxyPShlPy5jcmVhdGlvblNjb3BlPz9QNCkuaW1wb3J0Tm9kZSh0LCEwKTtBNC5jdXJyZW50Tm9kZT1yO2xldCBuPUE0Lm5leHROb2RlKCksbz0wLGw9MCxwPWFbMF07Zm9yKDtwIT09dm9pZCAwOyl7aWYobz09PXAuaW5kZXgpe2xldCBkO3AudHlwZT09PTI/ZD1uZXcgeTcobixuLm5leHRTaWJsaW5nLHRoaXMsZSk6cC50eXBlPT09MT9kPW5ldyBwLmN0b3IobixwLm5hbWUscC5zdHJpbmdzLHRoaXMsZSk6cC50eXBlPT09NiYmKGQ9bmV3IExKKG4sdGhpcyxlKSksdGhpcy5fJEFWLnB1c2goZCkscD1hWysrbF19byE9PXA/LmluZGV4JiYobj1BNC5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuIEE0LmN1cnJlbnROb2RlPVA0LHJ9cChlKXtsZXQgdD0wO2ZvcihsZXQgYSBvZiB0aGlzLl8kQVYpYSE9PXZvaWQgMCYmKGEuc3RyaW5ncyE9PXZvaWQgMD8oYS5fJEFJKGUsYSx0KSx0Kz1hLnN0cmluZ3MubGVuZ3RoLTIpOmEuXyRBSShlW3RdKSksdCsrfX0seTc9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJrIil9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy50eXBlPTIsdGhpcy5fJEFIPXhpLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWUsdGhpcy5fJEFCPXQsdGhpcy5fJEFNPWEsdGhpcy5vcHRpb25zPXIsdGhpcy5fJEN2PXI/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCBlPXRoaXMuXyRBQS5wYXJlbnROb2RlLHQ9dGhpcy5fJEFNO3JldHVybiB0IT09dm9pZCAwJiZlPy5ub2RlVHlwZT09PTExJiYoZT10LnBhcmVudE5vZGUpLGV9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkoZSx0PXRoaXMpe2U9TjQodGhpcyxlLHQpLHR5KGUpP2U9PT14aXx8ZT09bnVsbHx8ZT09PSIiPyh0aGlzLl8kQUghPT14aSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPXhpKTplIT09dGhpcy5fJEFIJiZlIT09b2kmJnRoaXMuXyhlKTplLl8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKGUpOmUubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKGUpOk4xdChlKT90aGlzLmsoZSk6dGhpcy5fKGUpfU8oZSl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMuXyRBQil9VChlKXt0aGlzLl8kQUghPT1lJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyhlKSl9XyhlKXt0aGlzLl8kQUghPT14aSYmdHkodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1lOnRoaXMuVChQNC5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5fJEFIPWV9JChlKXtsZXR7dmFsdWVzOnQsXyRsaXRUeXBlJDphfT1lLHI9dHlwZW9mIGE9PSJudW1iZXIiP3RoaXMuXyRBQyhlKTooYS5lbD09PXZvaWQgMCYmKGEuZWw9c3kuY3JlYXRlRWxlbWVudChqMXQoYS5oLGEuaFswXSksdGhpcy5vcHRpb25zKSksYSk7aWYodGhpcy5fJEFIPy5fJEFEPT09cil0aGlzLl8kQUgucCh0KTtlbHNle2xldCBuPW5ldyBDSihyLHRoaXMpLG89bi51KHRoaXMub3B0aW9ucyk7bi5wKHQpLHRoaXMuVChvKSx0aGlzLl8kQUg9bn19XyRBQyhlKXtsZXQgdD1xMXQuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIHQ9PT12b2lkIDAmJnExdC5zZXQoZS5zdHJpbmdzLHQ9bmV3IHN5KGUpKSx0fWsoZSl7VTJlKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCB0PXRoaXMuXyRBSCxhLHI9MDtmb3IobGV0IG4gb2YgZSlyPT09dC5sZW5ndGg/dC5wdXNoKGE9bmV3IHModGhpcy5PKGV5KCkpLHRoaXMuTyhleSgpKSx0aGlzLHRoaXMub3B0aW9ucykpOmE9dFtyXSxhLl8kQUkobikscisrO3I8dC5sZW5ndGgmJih0aGlzLl8kQVIoYSYmYS5fJEFCLm5leHRTaWJsaW5nLHIpLHQubGVuZ3RoPXIpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcsdCl7Zm9yKHRoaXMuXyRBUD8uKCExLCEwLHQpO2UhPT10aGlzLl8kQUI7KXtsZXQgYT1JMXQoZSkubmV4dFNpYmxpbmc7STF0KGUpLnJlbW92ZSgpLGU9YX19c2V0Q29ubmVjdGVkKGUpe3RoaXMuXyRBTT09PXZvaWQgMCYmKHRoaXMuXyRDdj1lLHRoaXMuXyRBUD8uKGUpKX19LFI0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkgiKX1nZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLHQsYSxyLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD14aSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT10LHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1uLGEubGVuZ3RoPjJ8fGFbMF0hPT0iInx8YVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoYS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9YSk6dGhpcy5fJEFIPXhpfV8kQUkoZSx0PXRoaXMsYSxyKXtsZXQgbj10aGlzLnN0cmluZ3Msbz0hMTtpZihuPT09dm9pZCAwKWU9TjQodGhpcyxlLHQsMCksbz0hdHkoZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1vaSxvJiYodGhpcy5fJEFIPWUpO2Vsc2V7bGV0IGw9ZSxwLGQ7Zm9yKGU9blswXSxwPTA7cDxuLmxlbmd0aC0xO3ArKylkPU40KHRoaXMsbFthK3BdLHQscCksZD09PW9pJiYoZD10aGlzLl8kQUhbcF0pLG98fD0hdHkoZCl8fGQhPT10aGlzLl8kQUhbcF0sZD09PXhpP2U9eGk6ZSE9PXhpJiYoZSs9KGQ/PyIiKStuW3ArMV0pLHRoaXMuXyRBSFtwXT1kfW8mJiFyJiZ0aGlzLmooZSl9aihlKXtlPT09eGk/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LFRKPWNsYXNzIGV4dGVuZHMgUjR7c3RhdGlje2kodGhpcywiSSIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKGUpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPWU9PT14aT92b2lkIDA6ZX19LCRKPWNsYXNzIGV4dGVuZHMgUjR7c3RhdGlje2kodGhpcywiTCIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGUpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhZSYmZSE9PXhpKX19LERKPWNsYXNzIGV4dGVuZHMgUjR7c3RhdGlje2kodGhpcywieiIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbil7c3VwZXIoZSx0LGEscixuKSx0aGlzLnR5cGU9NX1fJEFJKGUsdD10aGlzKXtpZigoZT1ONCh0aGlzLGUsdCwwKT8/eGkpPT09b2kpcmV0dXJuO2xldCBhPXRoaXMuXyRBSCxyPWU9PT14aSYmYSE9PXhpfHxlLmNhcHR1cmUhPT1hLmNhcHR1cmV8fGUub25jZSE9PWEub25jZXx8ZS5wYXNzaXZlIT09YS5wYXNzaXZlLG49ZSE9PXhpJiYoYT09PXhpfHxyKTtyJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxhKSxuJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxlKSx0aGlzLl8kQUg9ZX1oYW5kbGVFdmVudChlKXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LGUpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChlKX19LExKPWNsYXNze3N0YXRpY3tpKHRoaXMsIloiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5lbGVtZW50PWUsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09dCx0aGlzLm9wdGlvbnM9YX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGUpe040KHRoaXMsZSl9fSxaMmU9e006ajJlLFA6cjAsQTpWMmUsQzoxLEw6VjF0LFI6Q0osRDpOMXQsVjpONCxJOnk3LEg6UjQsTjokSixVOkRKLEI6VEosRjpMSn0sclRhPXEyZS5saXRIdG1sUG9seWZpbGxTdXBwb3J0O3JUYT8uKHN5LHk3KSwocTJlLmxpdEh0bWxWZXJzaW9ucz8/PVtdKS5wdXNoKCIzLjMuMiIpO2gxPWkoKHMsZSx0KT0+e2xldCBhPXQ/LnJlbmRlckJlZm9yZT8/ZSxyPWEuXyRsaXRQYXJ0JDtpZihyPT09dm9pZCAwKXtsZXQgbj10Py5yZW5kZXJCZWZvcmU/P251bGw7YS5fJGxpdFBhcnQkPXI9bmV3IHk3KGUuaW5zZXJ0QmVmb3JlKGV5KCksbiksbix2b2lkIDAsdD8/e30pfXJldHVybiByLl8kQUkocykscn0sIkQiKX0pO3ZhciBYMmUsbzAsb1RhLG5UYSxVMXQ9ZygoKT0+e0p4KCk7SngoKTtmMSgpO2YxKCk7WDJlPWdsb2JhbFRoaXMsbzA9Y2xhc3MgZXh0ZW5kcyBWMntzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz1lLmZpcnN0Q2hpbGQsZX11cGRhdGUoZSl7bGV0IHQ9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz1oMSh0LHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gb2l9fTtvMC5fJGxpdEVsZW1lbnQkPSEwLG8wLmZpbmFsaXplZD0hMCxYMmUubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0Py4oe0xpdEVsZW1lbnQ6bzB9KTtvVGE9WDJlLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7b1RhPy4oe0xpdEVsZW1lbnQ6bzB9KTtuVGE9e18kQUs6aSgocyxlLHQpPT57cy5fJEFLKGUsdCl9LCJfJEFLIiksXyRBTDppKHM9PnMuXyRBTCwiXyRBTCIpfTsoWDJlLmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIGxUYSxXMXQ9ZygoKT0+e2xUYT0hMX0pO3ZhciB2Yz1nKCgpPT57SngoKTtmMSgpO1UxdCgpO1cxdCgpfSk7dmFyIGl5PXBsKEVKPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShFSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRUoudW5pPXZvaWQgMDt2YXIgY1RhPWkoKHM9InVuaSIpPT5gJHtzfV8keyJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZyxlPT57bGV0IHQ9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybihlPT09IngiP3Q6dCYzfDgpLnRvU3RyaW5nKDE2KX0pfWAsInVuaSIpO0VKLnVuaT1jVGF9KTt2YXIgUEoscnAsSUo9ZygoKT0+e1BKPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRlZmVycmVkIil9Y2xhaW0oKXtpZih0aGlzLmNsYWltZWQpdGhyb3cgbmV3IEVycm9yKCJEZWZlcnJlZCBhbHJlYWR5IGNsYWltZWQiKTt0aGlzLmNsYWltZWQ9ITB9Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcHBlZEF0P3RoaXMuc3RvcHBlZEF0LXRoaXMuc3RhcnRlZEF0OkRhdGUubm93KCktdGhpcy5zdGFydGVkQXR9Y29uc3RydWN0b3IoKXt0aGlzLmNsYWltZWQ9ITEsdGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5yZXNvbHZlPWE9Pnt0aGlzLnN0YXR1cz0iZnVsZmlsbGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGUoYSl9LHRoaXMucmVqZWN0PWE9Pnt0aGlzLnN0YXR1cz0icmVqZWN0ZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChhKX0sdGhpcy5zdGFydGVkQXQ9RGF0ZS5ub3coKSx0aGlzLnN0YXR1cz0icGVuZGluZyJ9KX19LHJwPWkoKCk9Pm5ldyBQSiwiZGVmZXIiKX0pO3ZhciBBSixkVGEsRzF0PWcoKCk9PntJSigpO0FKPWNsYXNze3N0YXRpY3tpKHRoaXMsIkN1bXVsYXRpdmVEZWZlcnJlZCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9cnAoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1ycCgpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSxkVGE9aSgoKT0+bmV3IEFKLCJjdW11bGF0aXZlRGVmZXIiKX0pO3ZhciBtdD17fTt5dChtdCx7Q3VtdWxhdGl2ZURlZmVycmVkOigpPT5BSixEZWZlcnJlZDooKT0+UEosY3VtdWxhdGl2ZURlZmVyOigpPT5kVGEsZGVmZXI6KCk9PnJwLGZyb21DYWxsYmFjazooKT0+Z1RhLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9Pm1UYSxtYXA6KCk9PmhUYSxyZWplY3RlZFByb21pc2U6KCk9PnBUYSxyZXNvbHZlZFByb21pc2U6KCk9PnVUYSx0aW1lb3V0QW5kQ29udGludWU6KCk9PmZUYSx0aW1lb3V0V3JhcDooKT0+SzF0fSk7ZnVuY3Rpb24gdVRhKHMpe3JldHVybiBQcm9taXNlLnJlc29sdmUocyl9dmFyIHBUYSxoVGEsSzF0LGZUYSxtVGEsZ1RhLGlvPWcoKCk9PntJSigpO0cxdCgpO0lKKCk7aSh1VGEsInJlc29sdmVkUHJvbWlzZSIpO3BUYT1pKHM9PlByb21pc2UucmVqZWN0KHMpLCJyZWplY3RlZFByb21pc2UiKSxoVGE9aShhc3luYyhzLGUpPT5Qcm9taXNlLmFsbChzLm1hcChlKSksIm1hcCIpLEsxdD1pKGFzeW5jKHMsZSx0PSEwKT0+bmV3IFByb21pc2UoKGEscik9PntzZXRUaW1lb3V0KCgpPT57dD9yKG5ldyBFcnJvcigidGltZW91dCIpKTphKG51bGwpfSxlKSxzLnRoZW4oYSxyKX0pLCJ0aW1lb3V0V3JhcCIpLGZUYT1pKGFzeW5jKHMsZT02ZTQpPT5LMXQocyxlLCExKSwidGltZW91dEFuZENvbnRpbnVlIiksbVRhPWkoYXN5bmMgcz0+e2xldCBlPXJwKCk7Zm9yKGxldCB0IG9mIHMpdC50aGVuKGE9PnthPT09ITAmJmUucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwocykudGhlbigoKT0+e2UucmVzb2x2ZSghMSl9KSxlLnByb21pc2V9LCJnZXRGaXJzdFRydWVPckZhbHNlIiksZ1RhPWkocz0+bmV3IFByb21pc2UoKGUsdCk9PntzKChhLHIpPT57YT90KGEpOmUocil9KX0pLCJmcm9tQ2FsbGJhY2siKX0pO3ZhciBOSj1nKCgpPT57aW8oKX0pO2Z1bmN0aW9uIExhKHMsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7UTJlKHMsZSk7ZnVuY3Rpb24gdCgpe3RoaXMuY29uc3RydWN0b3I9c31pKHQsIl9fIikscy5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKToodC5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IHQpfWZ1bmN0aW9uIHZUYShzLGUpe3ZhciB0PXt9O2Zvcih2YXIgYSBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGEpJiZlLmluZGV4T2YoYSk8MCYmKHRbYV09c1thXSk7aWYocyE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciByPTAsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO3I8YS5sZW5ndGg7cisrKWUuaW5kZXhPZihhW3JdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxhW3JdKSYmKHRbYVtyXV09c1thW3JdXSk7cmV0dXJuIHR9ZnVuY3Rpb24geFRhKHMsZSx0LGEpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGgsbj1yPDM/ZTphPT09bnVsbD9hPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTphLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUocyxlLHQsYSk7ZWxzZSBmb3IodmFyIGw9cy5sZW5ndGgtMTtsPj0wO2wtLSkobz1zW2xdKSYmKG49KHI8Mz9vKG4pOnI+Mz9vKGUsdCxuKTpvKGUsdCkpfHxuKTtyZXR1cm4gcj4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LG4pLG59ZnVuY3Rpb24geVRhKHMsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsYSl7ZSh0LGEscyl9fWZ1bmN0aW9uIHdUYShzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH1mdW5jdGlvbiBrVGEocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9ZnVuY3Rpb24gU1RhKHMpe3JldHVybiB0eXBlb2Ygcz09InN5bWJvbCI/czoiIi5jb25jYXQocyl9ZnVuY3Rpb24gX1RhKHMsZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocywibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTp0PyIiLmNvbmNhdCh0LCIgIixlKTplfSl9ZnVuY3Rpb24gTVRhKHMsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShzLGUpfWZ1bmN0aW9uIGFkZShzLGUsdCxhKXtmdW5jdGlvbiByKG4pe3JldHVybiBuIGluc3RhbmNlb2YgdD9uOm5ldyB0KGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gaShyLCJhZG9wdCIpLG5ldyh0fHwodD1Qcm9taXNlKSkoZnVuY3Rpb24obixvKXtmdW5jdGlvbiBsKHUpe3RyeXtkKGEubmV4dCh1KSl9Y2F0Y2goYyl7byhjKX19aShsLCJmdWxmaWxsZWQiKTtmdW5jdGlvbiBwKHUpe3RyeXtkKGEudGhyb3codSkpfWNhdGNoKGMpe28oYyl9fWkocCwicmVqZWN0ZWQiKTtmdW5jdGlvbiBkKHUpe3UuZG9uZT9uKHUudmFsdWUpOnIodS52YWx1ZSkudGhlbihsLHApfWkoZCwic3RlcCIpLGQoKGE9YS5hcHBseShzLGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIHJ5KHMsZSl7dmFyIHQ9e2xhYmVsOjAsc2VudDppKGZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LCJzZW50IiksdHJ5czpbXSxvcHM6W119LGEscixuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PWwoMCksby50aHJvdz1sKDEpLG8ucmV0dXJuPWwoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBsKGQpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gcChbZCx1XSl9fWZ1bmN0aW9uIHAoZCl7aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGRbMF0mJih0PTApKSx0Oyl0cnl7aWYoYT0xLHImJihuPWRbMF0mMj9yLnJldHVybjpkWzBdP3IudGhyb3d8fCgobj1yLnJldHVybikmJm4uY2FsbChyKSwwKTpyLm5leHQpJiYhKG49bi5jYWxsKHIsZFsxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKHI9MCxuJiYoZD1bZFswXSYyLG4udmFsdWVdKSxkWzBdKXtjYXNlIDA6Y2FzZSAxOm49ZDticmVhaztjYXNlIDQ6cmV0dXJuIHQubGFiZWwrKyx7dmFsdWU6ZFsxXSxkb25lOiExfTtjYXNlIDU6dC5sYWJlbCsrLHI9ZFsxXSxkPVswXTtjb250aW51ZTtjYXNlIDc6ZD10Lm9wcy5wb3AoKSx0LnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXQudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihkWzBdPT09Nnx8ZFswXT09PTIpKXt0PTA7Y29udGludWV9aWYoZFswXT09PTMmJighbnx8ZFsxXT5uWzBdJiZkWzFdPG5bM10pKXt0LmxhYmVsPWRbMV07YnJlYWt9aWYoZFswXT09PTYmJnQubGFiZWw8blsxXSl7dC5sYWJlbD1uWzFdLG49ZDticmVha31pZihuJiZ0LmxhYmVsPG5bMl0pe3QubGFiZWw9blsyXSx0Lm9wcy5wdXNoKGQpO2JyZWFrfW5bMl0mJnQub3BzLnBvcCgpLHQudHJ5cy5wb3AoKTtjb250aW51ZX1kPWUuY2FsbChzLHQpfWNhdGNoKHUpe2Q9WzYsdV0scj0wfWZpbmFsbHl7YT1uPTB9aWYoZFswXSY1KXRocm93IGRbMV07cmV0dXJue3ZhbHVlOmRbMF0/ZFsxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIHpUYShzLGUpe2Zvcih2YXIgdCBpbiBzKXQhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmZWRlKGUscyx0KX1mdW5jdGlvbiBWbyhzKXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3IsdD1lJiZzW2VdLGE9MDtpZih0KXJldHVybiB0LmNhbGwocyk7aWYocyYmdHlwZW9mIHMubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDppKGZ1bmN0aW9uKCl7cmV0dXJuIHMmJmE+PXMubGVuZ3RoJiYocz12b2lkIDApLHt2YWx1ZTpzJiZzW2ErK10sZG9uZTohc319LCJuZXh0Iil9O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gT2kocyxlKXt2YXIgdD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZzW1N5bWJvbC5pdGVyYXRvcl07aWYoIXQpcmV0dXJuIHM7dmFyIGE9dC5jYWxsKHMpLHIsbj1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKHI9YS5uZXh0KCkpLmRvbmU7KW4ucHVzaChyLnZhbHVlKX1jYXRjaChsKXtvPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYodD1hLnJldHVybikmJnQuY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG59ZnVuY3Rpb24gQ1RhKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXM9cy5jb25jYXQoT2koYXJndW1lbnRzW2VdKSk7cmV0dXJuIHN9ZnVuY3Rpb24gVFRhKCl7Zm9yKHZhciBzPTAsZT0wLHQ9YXJndW1lbnRzLmxlbmd0aDtlPHQ7ZSsrKXMrPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciBhPUFycmF5KHMpLHI9MCxlPTA7ZTx0O2UrKylmb3IodmFyIG49YXJndW1lbnRzW2VdLG89MCxsPW4ubGVuZ3RoO288bDtvKysscisrKWFbcl09bltvXTtyZXR1cm4gYX1mdW5jdGlvbiBPcihzLGUsdCl7aWYodHx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBhPTAscj1lLmxlbmd0aCxuO2E8cjthKyspKG58fCEoYSBpbiBlKSkmJihufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsYSkpLG5bYV09ZVthXSk7cmV0dXJuIHMuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBuMChzKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIG4wPyh0aGlzLnY9cyx0aGlzKTpuZXcgbjAocyl9ZnVuY3Rpb24gc2RlKHMsZSx0KXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGE9dC5hcHBseShzLGV8fFtdKSxyLG49W107cmV0dXJuIHI9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIixvKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyO2Z1bmN0aW9uIG8odil7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBQcm9taXNlLnJlc29sdmUoeCkudGhlbih2LGMpfX1mdW5jdGlvbiBsKHYseCl7YVt2XSYmKHJbdl09ZnVuY3Rpb24obSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGYseSl7bi5wdXNoKFt2LG0sZix5XSk+MXx8cCh2LG0pfSl9LHgmJihyW3ZdPXgoclt2XSkpKX1mdW5jdGlvbiBwKHYseCl7dHJ5e2QoYVt2XSh4KSl9Y2F0Y2gobSl7YihuWzBdWzNdLG0pfX1mdW5jdGlvbiBkKHYpe3YudmFsdWUgaW5zdGFuY2VvZiBuMD9Qcm9taXNlLnJlc29sdmUodi52YWx1ZS52KS50aGVuKHUsYyk6YihuWzBdWzJdLHYpfWZ1bmN0aW9uIHUodil7cCgibmV4dCIsdil9ZnVuY3Rpb24gYyh2KXtwKCJ0aHJvdyIsdil9ZnVuY3Rpb24gYih2LHgpe3YoeCksbi5zaGlmdCgpLG4ubGVuZ3RoJiZwKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uICRUYShzKXt2YXIgZSx0O3JldHVybiBlPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIsZnVuY3Rpb24ocil7dGhyb3cgcn0pLGEoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGEocixuKXtlW3JdPXNbcl0/ZnVuY3Rpb24obyl7cmV0dXJuKHQ9IXQpP3t2YWx1ZTpuMChzW3JdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gaWRlKHMpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT1zW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSx0O3JldHVybiBlP2UuY2FsbChzKToocz10eXBlb2YgVm89PSJmdW5jdGlvbiI/Vm8ocyk6c1tTeW1ib2wuaXRlcmF0b3JdKCksdD17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSx0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0KTtmdW5jdGlvbiBhKG4pe3Rbbl09c1tuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwscCl7bz1zW25dKG8pLHIobCxwLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiByKG4sbyxsLHApe1Byb21pc2UucmVzb2x2ZShwKS50aGVuKGZ1bmN0aW9uKGQpe24oe3ZhbHVlOmQsZG9uZTpsfSl9LG8pfX1mdW5jdGlvbiBEVGEocyxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJyYXciLHt2YWx1ZTplfSk6cy5yYXc9ZSxzfWZ1bmN0aW9uIEVUYShzKXtpZihzJiZzLl9fZXNNb2R1bGUpcmV0dXJuIHM7dmFyIGU9e307aWYocyE9bnVsbClmb3IodmFyIHQ9dGRlKHMpLGE9MDthPHQubGVuZ3RoO2ErKyl0W2FdIT09ImRlZmF1bHQiJiZlZGUoZSxzLHRbYV0pO3JldHVybiBMVGEoZSxzKSxlfWZ1bmN0aW9uIFBUYShzKXtyZXR1cm4gcyYmcy5fX2VzTW9kdWxlP3M6e2RlZmF1bHQ6c319ZnVuY3Rpb24gSVRhKHMsZSx0LGEpe2lmKHQ9PT0iYSImJiFhKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3MhPT1lfHwhYTohZS5oYXMocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHQ9PT0ibSI/YTp0PT09ImEiP2EuY2FsbChzKTphP2EudmFsdWU6ZS5nZXQocyl9ZnVuY3Rpb24gQVRhKHMsZSx0LGEscil7aWYoYT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihhPT09ImEiJiYhcil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj9zIT09ZXx8IXI6IWUuaGFzKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0iYSI/ci5jYWxsKHMsdCk6cj9yLnZhbHVlPXQ6ZS5zZXQocyx0KSx0fWZ1bmN0aW9uIE5UYShzLGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiBzPT0iZnVuY3Rpb24iP2U9PT1zOnMuaGFzKGUpfWZ1bmN0aW9uIFJUYShzLGUsdCl7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGEscjtpZih0KXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2E9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihhPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7YT1lW1N5bWJvbC5kaXNwb3NlXSx0JiYocj1hKX1pZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7ciYmKGE9aShmdW5jdGlvbigpe3RyeXtyLmNhbGwodGhpcyl9Y2F0Y2gobil7cmV0dXJuIFByb21pc2UucmVqZWN0KG4pfX0sImRpc3Bvc2UiKSkscy5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6YSxhc3luYzp0fSl9ZWxzZSB0JiZzLnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gRlRhKHMpe2Z1bmN0aW9uIGUobil7cy5lcnJvcj1zLmhhc0Vycm9yP25ldyBPVGEobixzLmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bixzLmhhc0Vycm9yPSEwfWkoZSwiZmFpbCIpO3ZhciB0LGE9MDtmdW5jdGlvbiByKCl7Zm9yKDt0PXMuc3RhY2sucG9wKCk7KXRyeXtpZighdC5hc3luYyYmYT09PTEpcmV0dXJuIGE9MCxzLnN0YWNrLnB1c2godCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihyKTtpZih0LmRpc3Bvc2Upe3ZhciBuPXQuZGlzcG9zZS5jYWxsKHQudmFsdWUpO2lmKHQuYXN5bmMpcmV0dXJuIGF8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4ocixmdW5jdGlvbihvKXtyZXR1cm4gZShvKSxyKCl9KX1lbHNlIGF8PTF9Y2F0Y2gobyl7ZShvKX1pZihhPT09MSlyZXR1cm4gcy5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChzLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZihzLmhhc0Vycm9yKXRocm93IHMuZXJyb3J9cmV0dXJuIGkociwibmV4dCIpLHIoKX1mdW5jdGlvbiBCVGEocyxlKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3Qocyk/cy5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHQsYSxyLG4sbyl7cmV0dXJuIGE/ZT8iLmpzeCI6Ii5qcyI6ciYmKCFufHwhbyk/dDpyK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6c312YXIgUTJlLEoyZSxlZGUsTFRhLHRkZSxPVGEscmlzLExzPWcoKCk9PntRMmU9aShmdW5jdGlvbihzLGUpe3JldHVybiBRMmU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsYSl7dC5fX3Byb3RvX189YX18fGZ1bmN0aW9uKHQsYSl7Zm9yKHZhciByIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEscikmJih0W3JdPWFbcl0pfSxRMmUocyxlKX0sImV4dGVuZFN0YXRpY3MiKTtpKExhLCJfX2V4dGVuZHMiKTtKMmU9aShmdW5jdGlvbigpe3JldHVybiBKMmU9T2JqZWN0LmFzc2lnbnx8aShmdW5jdGlvbihlKXtmb3IodmFyIHQsYT0xLHI9YXJndW1lbnRzLmxlbmd0aDthPHI7YSsrKXt0PWFyZ3VtZW50c1thXTtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9cmV0dXJuIGV9LCJfX2Fzc2lnbiIpLEoyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJfX2Fzc2lnbiIpO2kodlRhLCJfX3Jlc3QiKTtpKHhUYSwiX19kZWNvcmF0ZSIpO2koeVRhLCJfX3BhcmFtIik7aSh3VGEsIl9fZXNEZWNvcmF0ZSIpO2koa1RhLCJfX3J1bkluaXRpYWxpemVycyIpO2koU1RhLCJfX3Byb3BLZXkiKTtpKF9UYSwiX19zZXRGdW5jdGlvbk5hbWUiKTtpKE1UYSwiX19tZXRhZGF0YSIpO2koYWRlLCJfX2F3YWl0ZXIiKTtpKHJ5LCJfX2dlbmVyYXRvciIpO2VkZT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihzLGUsdCxhKXthPT09dm9pZCAwJiYoYT10KTt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7KCFyfHwoImdldCJpbiByPyFlLl9fZXNNb2R1bGU6ci53cml0YWJsZXx8ci5jb25maWd1cmFibGUpKSYmKHI9e2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYSxyKX0pOihmdW5jdGlvbihzLGUsdCxhKXthPT09dm9pZCAwJiYoYT10KSxzW2FdPWVbdF19KTtpKHpUYSwiX19leHBvcnRTdGFyIik7aShWbywiX192YWx1ZXMiKTtpKE9pLCJfX3JlYWQiKTtpKENUYSwiX19zcHJlYWQiKTtpKFRUYSwiX19zcHJlYWRBcnJheXMiKTtpKE9yLCJfX3NwcmVhZEFycmF5Iik7aShuMCwiX19hd2FpdCIpO2koc2RlLCJfX2FzeW5jR2VuZXJhdG9yIik7aSgkVGEsIl9fYXN5bmNEZWxlZ2F0b3IiKTtpKGlkZSwiX19hc3luY1ZhbHVlcyIpO2koRFRhLCJfX21ha2VUZW1wbGF0ZU9iamVjdCIpO0xUYT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihzLGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbihzLGUpe3MuZGVmYXVsdD1lfSx0ZGU9aShmdW5jdGlvbihzKXtyZXR1cm4gdGRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIGEgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmKHRbdC5sZW5ndGhdPWEpO3JldHVybiB0fSx0ZGUocyl9LCJvd25LZXlzIik7aShFVGEsIl9faW1wb3J0U3RhciIpO2koUFRhLCJfX2ltcG9ydERlZmF1bHQiKTtpKElUYSwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIpO2koQVRhLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iik7aShOVGEsIl9fY2xhc3NQcml2YXRlRmllbGRJbiIpO2koUlRhLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIpO09UYT10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbihzLGUsdCl7dmFyIGE9bmV3IEVycm9yKHQpO3JldHVybiBhLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsYS5lcnJvcj1zLGEuc3VwcHJlc3NlZD1lLGF9O2koRlRhLCJfX2Rpc3Bvc2VSZXNvdXJjZXMiKTtpKEJUYSwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iKTtyaXM9e19fZXh0ZW5kczpMYSxfX2Fzc2lnbjpKMmUsX19yZXN0OnZUYSxfX2RlY29yYXRlOnhUYSxfX3BhcmFtOnlUYSxfX2VzRGVjb3JhdGU6d1RhLF9fcnVuSW5pdGlhbGl6ZXJzOmtUYSxfX3Byb3BLZXk6U1RhLF9fc2V0RnVuY3Rpb25OYW1lOl9UYSxfX21ldGFkYXRhOk1UYSxfX2F3YWl0ZXI6YWRlLF9fZ2VuZXJhdG9yOnJ5LF9fY3JlYXRlQmluZGluZzplZGUsX19leHBvcnRTdGFyOnpUYSxfX3ZhbHVlczpWbyxfX3JlYWQ6T2ksX19zcHJlYWQ6Q1RhLF9fc3ByZWFkQXJyYXlzOlRUYSxfX3NwcmVhZEFycmF5Ok9yLF9fYXdhaXQ6bjAsX19hc3luY0dlbmVyYXRvcjpzZGUsX19hc3luY0RlbGVnYXRvcjokVGEsX19hc3luY1ZhbHVlczppZGUsX19tYWtlVGVtcGxhdGVPYmplY3Q6RFRhLF9faW1wb3J0U3RhcjpFVGEsX19pbXBvcnREZWZhdWx0OlBUYSxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OklUYSxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OkFUYSxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46TlRhLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOlJUYSxfX2Rpc3Bvc2VSZXNvdXJjZXM6RlRhLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOkJUYX19KTtmdW5jdGlvbiBzYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiJ9dmFyIHJvPWcoKCk9PntpKHNhLCJpc0Z1bmN0aW9uIil9KTtmdW5jdGlvbiBobChzKXt2YXIgZT1pKGZ1bmN0aW9uKGEpe0Vycm9yLmNhbGwoYSksYS5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja30sIl9zdXBlciIpLHQ9cyhlKTtyZXR1cm4gdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdH12YXIgb3A9ZygoKT0+e2koaGwsImNyZWF0ZUVycm9yQ2xhc3MiKX0pO3ZhciBveSxyZGU9ZygoKT0+e29wKCk7b3k9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24odCl7cyh0aGlzKSx0aGlzLm1lc3NhZ2U9dD90Lmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArdC5tYXAoZnVuY3Rpb24oYSxyKXtyZXR1cm4gcisxKyIpICIrYS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz10fSwiVW5zdWJzY3JpcHRpb25FcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gbTEocyxlKXtpZihzKXt2YXIgdD1zLmluZGV4T2YoZSk7MDw9dCYmcy5zcGxpY2UodCwxKX19dmFyIHc3PWcoKCk9PntpKG0xLCJhcnJSZW1vdmUiKX0pO2Z1bmN0aW9uIFJKKHMpe3JldHVybiBzIGluc3RhbmNlb2YgdHJ8fHMmJiJjbG9zZWQiaW4gcyYmc2Eocy5yZW1vdmUpJiZzYShzLmFkZCkmJnNhKHMudW5zdWJzY3JpYmUpfWZ1bmN0aW9uIFkxdChzKXtzYShzKT9zKCk6cy51bnN1YnNjcmliZSgpfXZhciB0cixvZGUsVTI9ZygoKT0+e0xzKCk7cm8oKTtyZGUoKTt3NygpO3RyPShmdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSl7dGhpcy5pbml0aWFsVGVhcmRvd249ZSx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl9maW5hbGl6ZXJzPW51bGx9cmV0dXJuIGkocywiU3Vic2NyaXB0aW9uIikscy5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgZSx0LGEscixuO2lmKCF0aGlzLmNsb3NlZCl7dGhpcy5jbG9zZWQ9ITA7dmFyIG89dGhpcy5fcGFyZW50YWdlO2lmKG8paWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShvKSl0cnl7Zm9yKHZhciBsPVZvKG8pLHA9bC5uZXh0KCk7IXAuZG9uZTtwPWwubmV4dCgpKXt2YXIgZD1wLnZhbHVlO2QucmVtb3ZlKHRoaXMpfX1jYXRjaChtKXtlPXtlcnJvcjptfX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYodD1sLnJldHVybikmJnQuY2FsbChsKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19ZWxzZSBvLnJlbW92ZSh0aGlzKTt2YXIgdT10aGlzLmluaXRpYWxUZWFyZG93bjtpZihzYSh1KSl0cnl7dSgpfWNhdGNoKG0pe249bSBpbnN0YW5jZW9mIG95P20uZXJyb3JzOlttXX12YXIgYz10aGlzLl9maW5hbGl6ZXJzO2lmKGMpe3RoaXMuX2ZpbmFsaXplcnM9bnVsbDt0cnl7Zm9yKHZhciBiPVZvKGMpLHY9Yi5uZXh0KCk7IXYuZG9uZTt2PWIubmV4dCgpKXt2YXIgeD12LnZhbHVlO3RyeXtZMXQoeCl9Y2F0Y2gobSl7bj1uPz9bXSxtIGluc3RhbmNlb2Ygb3k/bj1PcihPcihbXSxPaShuKSksT2kobS5lcnJvcnMpKTpuLnB1c2gobSl9fX1jYXRjaChtKXthPXtlcnJvcjptfX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYocj1iLnJldHVybikmJnIuY2FsbChiKX1maW5hbGx5e2lmKGEpdGhyb3cgYS5lcnJvcn19fWlmKG4pdGhyb3cgbmV3IG95KG4pfX0scy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUmJmUhPT10aGlzKWlmKHRoaXMuY2xvc2VkKVkxdChlKTtlbHNle2lmKGUgaW5zdGFuY2VvZiBzKXtpZihlLmNsb3NlZHx8ZS5faGFzUGFyZW50KHRoaXMpKXJldHVybjtlLl9hZGRQYXJlbnQodGhpcyl9KHRoaXMuX2ZpbmFsaXplcnM9KHQ9dGhpcy5fZmluYWxpemVycykhPT1udWxsJiZ0IT09dm9pZCAwP3Q6W10pLnB1c2goZSl9fSxzLnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gdD09PWV8fEFycmF5LmlzQXJyYXkodCkmJnQuaW5jbHVkZXMoZSl9LHMucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KHQpPyh0LnB1c2goZSksdCk6dD9bdCxlXTplfSxzLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3BhcmVudGFnZTt0PT09ZT90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KHQpJiZtMSh0LGUpfSxzLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZmluYWxpemVyczt0JiZtMSh0LGUpLGUgaW5zdGFuY2VvZiBzJiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LHMuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IHM7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLHN9KSgpLG9kZT10ci5FTVBUWTtpKFJKLCJpc1N1YnNjcmlwdGlvbiIpO2koWTF0LCJleGVjRmluYWxpemVyIil9KTt2YXIgeGMsazc9ZygoKT0+e3hjPXtvblVuaGFuZGxlZEVycm9yOm51bGwsb25TdG9wcGVkTm90aWZpY2F0aW9uOm51bGwsUHJvbWlzZTp2b2lkIDAsdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZzohMSx1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6ITF9fSk7dmFyIFM3LG5kZT1nKCgpPT57THMoKTtTNz17c2V0VGltZW91dDppKGZ1bmN0aW9uKHMsZSl7Zm9yKHZhciB0PVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXRbYS0yXT1hcmd1bWVudHNbYV07dmFyIHI9UzcuZGVsZWdhdGU7cmV0dXJuIHI/LnNldFRpbWVvdXQ/ci5zZXRUaW1lb3V0LmFwcGx5KHIsT3IoW3MsZV0sT2kodCkpKTpzZXRUaW1lb3V0LmFwcGx5KHZvaWQgMCxPcihbcyxlXSxPaSh0KSkpfSwic2V0VGltZW91dCIpLGNsZWFyVGltZW91dDppKGZ1bmN0aW9uKHMpe3ZhciBlPVM3LmRlbGVnYXRlO3JldHVybihlPy5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkocyl9LCJjbGVhclRpbWVvdXQiKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gT0oocyl7Uzcuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXhjLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKHMpO2Vsc2UgdGhyb3cgc30pfXZhciBsZGU9ZygoKT0+e2s3KCk7bmRlKCk7aShPSiwicmVwb3J0VW5oYW5kbGVkRXJyb3IiKX0pO2Z1bmN0aW9uIHljKCl7fXZhciBPND1nKCgpPT57aSh5Yywibm9vcCIpfSk7ZnVuY3Rpb24gWDF0KHMpe3JldHVybiBjZGUoIkUiLHZvaWQgMCxzKX1mdW5jdGlvbiBRMXQocyl7cmV0dXJuIGNkZSgiTiIscyx2b2lkIDApfWZ1bmN0aW9uIGNkZShzLGUsdCl7cmV0dXJue2tpbmQ6cyx2YWx1ZTplLGVycm9yOnR9fXZhciBaMXQsSjF0PWcoKCk9PntaMXQ9KGZ1bmN0aW9uKCl7cmV0dXJuIGNkZSgiQyIsdm9pZCAwLHZvaWQgMCl9KSgpO2koWDF0LCJlcnJvck5vdGlmaWNhdGlvbiIpO2koUTF0LCJuZXh0Tm90aWZpY2F0aW9uIik7aShjZGUsImNyZWF0ZU5vdGlmaWNhdGlvbiIpfSk7ZnVuY3Rpb24gXzcocyl7aWYoeGMudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7dmFyIGU9IUY0O2lmKGUmJihGND17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLHMoKSxlKXt2YXIgdD1GNCxhPXQuZXJyb3JUaHJvd24scj10LmVycm9yO2lmKEY0PW51bGwsYSl0aHJvdyByfX1lbHNlIHMoKX1mdW5jdGlvbiBlMnQocyl7eGMudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmRjQmJihGNC5lcnJvclRocm93bj0hMCxGNC5lcnJvcj1zKX12YXIgRjQsRko9ZygoKT0+e2s3KCk7RjQ9bnVsbDtpKF83LCJlcnJvckNvbnRleHQiKTtpKGUydCwiY2FwdHVyZUVycm9yIil9KTtmdW5jdGlvbiBkZGUocyxlKXtyZXR1cm4gSFRhLmNhbGwocyxlKX1mdW5jdGlvbiBCSihzKXt4Yy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP2UydChzKTpPSihzKX1mdW5jdGlvbiBqVGEocyl7dGhyb3cgc31mdW5jdGlvbiB1ZGUocyxlKXt2YXIgdD14Yy5vblN0b3BwZWROb3RpZmljYXRpb247dCYmUzcuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0KHMsZSl9KX12YXIgQjQsSFRhLHFUYSxucCxWVGEsbnk9ZygoKT0+e0xzKCk7cm8oKTtVMigpO2s3KCk7bGRlKCk7TzQoKTtKMXQoKTtuZGUoKTtGSigpO0I0PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCl7dmFyIGE9cy5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLmlzU3RvcHBlZD0hMSx0PyhhLmRlc3RpbmF0aW9uPXQsUkoodCkmJnQuYWRkKGEpKTphLmRlc3RpbmF0aW9uPVZUYSxhfXJldHVybiBpKGUsIlN1YnNjcmliZXIiKSxlLmNyZWF0ZT1mdW5jdGlvbih0LGEscil7cmV0dXJuIG5ldyBucCh0LGEscil9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dGhpcy5pc1N0b3BwZWQ/dWRlKFExdCh0KSx0aGlzKTp0aGlzLl9uZXh0KHQpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt0aGlzLmlzU3RvcHBlZD91ZGUoWDF0KHQpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcih0KSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/dWRlKFoxdCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCxzLnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLHRoaXMuZGVzdGluYXRpb249bnVsbCl9LGUucHJvdG90eXBlLl9uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuZGVzdGluYXRpb24ubmV4dCh0KX0sZS5wcm90b3R5cGUuX2Vycm9yPWZ1bmN0aW9uKHQpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZS5wcm90b3R5cGUuX2NvbXBsZXRlPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LGV9KSh0ciksSFRhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2koZGRlLCJiaW5kIik7cVRhPShmdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gaShzLCJDb25zdW1lck9ic2VydmVyIikscy5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZih0Lm5leHQpdHJ5e3QubmV4dChlKX1jYXRjaChhKXtCSihhKX19LHMucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHQuZXJyb3IpdHJ5e3QuZXJyb3IoZSl9Y2F0Y2goYSl7QkooYSl9ZWxzZSBCSihlKX0scy5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2godCl7QkoodCl9fSxzfSkoKSxucD0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSxyKXt2YXIgbj1zLmNhbGwodGhpcyl8fHRoaXMsbztpZihzYSh0KXx8IXQpbz17bmV4dDp0Pz92b2lkIDAsZXJyb3I6YT8/dm9pZCAwLGNvbXBsZXRlOnI/P3ZvaWQgMH07ZWxzZXt2YXIgbDtuJiZ4Yy51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KGw9T2JqZWN0LmNyZWF0ZSh0KSxsLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIG4udW5zdWJzY3JpYmUoKX0sbz17bmV4dDp0Lm5leHQmJmRkZSh0Lm5leHQsbCksZXJyb3I6dC5lcnJvciYmZGRlKHQuZXJyb3IsbCksY29tcGxldGU6dC5jb21wbGV0ZSYmZGRlKHQuY29tcGxldGUsbCl9KTpvPXR9cmV0dXJuIG4uZGVzdGluYXRpb249bmV3IHFUYShvKSxufXJldHVybiBpKGUsIlNhZmVTdWJzY3JpYmVyIiksZX0pKEI0KTtpKEJKLCJoYW5kbGVVbmhhbmRsZWRFcnJvciIpO2koalRhLCJkZWZhdWx0RXJyb3JIYW5kbGVyIik7aSh1ZGUsImhhbmRsZVN0b3BwZWROb3RpZmljYXRpb24iKTtWVGE9e2Nsb3NlZDohMCxuZXh0OnljLGVycm9yOmpUYSxjb21wbGV0ZTp5Y319KTt2YXIgSDQsbHk9ZygoKT0+e0g0PShmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSJ9KSgpfSk7ZnVuY3Rpb24gVzIocyl7cmV0dXJuIHN9dmFyIE03PWcoKCk9PntpKFcyLCJpZGVudGl0eSIpfSk7ZnVuY3Rpb24gVVRhKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3JldHVybiBwZGUocyl9ZnVuY3Rpb24gcGRlKHMpe3JldHVybiBzLmxlbmd0aD09PTA/VzI6cy5sZW5ndGg9PT0xP3NbMF06aShmdW5jdGlvbih0KXtyZXR1cm4gcy5yZWR1Y2UoZnVuY3Rpb24oYSxyKXtyZXR1cm4gcihhKX0sdCl9LCJwaXBlZCIpfXZhciBoZGU9ZygoKT0+e003KCk7aShVVGEsInBpcGUiKTtpKHBkZSwicGlwZUZyb21BcnJheSIpfSk7ZnVuY3Rpb24gdDJ0KHMpe3ZhciBlO3JldHVybihlPXM/P3hjLlByb21pc2UpIT09bnVsbCYmZSE9PXZvaWQgMD9lOlByb21pc2V9ZnVuY3Rpb24gV1RhKHMpe3JldHVybiBzJiZzYShzLm5leHQpJiZzYShzLmVycm9yKSYmc2Eocy5jb21wbGV0ZSl9ZnVuY3Rpb24gR1RhKHMpe3JldHVybiBzJiZzIGluc3RhbmNlb2YgQjR8fFdUYShzKSYmUkoocyl9dmFyIHJhLHluPWcoKCk9PntueSgpO1UyKCk7bHkoKTtoZGUoKTtrNygpO3JvKCk7RkooKTtyYT0oZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGUpe2UmJih0aGlzLl9zdWJzY3JpYmU9ZSl9cmV0dXJuIGkocywiT2JzZXJ2YWJsZSIpLHMucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHM7cmV0dXJuIHQuc291cmNlPXRoaXMsdC5vcGVyYXRvcj1lLHR9LHMucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlLHQsYSl7dmFyIHI9dGhpcyxuPUdUYShlKT9lOm5ldyBucChlLHQsYSk7cmV0dXJuIF83KGZ1bmN0aW9uKCl7dmFyIG89cixsPW8ub3BlcmF0b3IscD1vLnNvdXJjZTtuLmFkZChsP2wuY2FsbChuLHApOnA/ci5fc3Vic2NyaWJlKG4pOnIuX3RyeVN1YnNjcmliZShuKSl9KSxufSxzLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKGUpfWNhdGNoKHQpe2UuZXJyb3IodCl9fSxzLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7dmFyIGE9dGhpcztyZXR1cm4gdD10MnQodCksbmV3IHQoZnVuY3Rpb24ocixuKXt2YXIgbz1uZXcgbnAoe25leHQ6aShmdW5jdGlvbihsKXt0cnl7ZShsKX1jYXRjaChwKXtuKHApLG8udW5zdWJzY3JpYmUoKX19LCJuZXh0IiksZXJyb3I6bixjb21wbGV0ZTpyfSk7YS5zdWJzY3JpYmUobyl9KX0scy5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4odD10aGlzLnNvdXJjZSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnN1YnNjcmliZShlKX0scy5wcm90b3R5cGVbSDRdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHMucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIHBkZShlKSh0aGlzKX0scy5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGU9dDJ0KGUpLG5ldyBlKGZ1bmN0aW9uKGEscil7dmFyIG47dC5zdWJzY3JpYmUoZnVuY3Rpb24obyl7cmV0dXJuIG49b30sZnVuY3Rpb24obyl7cmV0dXJuIHIobyl9LGZ1bmN0aW9uKCl7cmV0dXJuIGEobil9KX0pfSxzLmNyZWF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHMoZSl9LHN9KSgpO2kodDJ0LCJnZXRQcm9taXNlQ3RvciIpO2koV1RhLCJpc09ic2VydmVyIik7aShHVGEsImlzU3Vic2NyaWJlciIpfSk7ZnVuY3Rpb24gZmRlKHMpe3JldHVybiBzYShzPy5saWZ0KX1mdW5jdGlvbiBYYShzKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoZmRlKGUpKXJldHVybiBlLmxpZnQoZnVuY3Rpb24odCl7dHJ5e3JldHVybiBzKHQsdGhpcyl9Y2F0Y2goYSl7dGhpcy5lcnJvcihhKX19KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZSIpfX12YXIgd3I9ZygoKT0+e3JvKCk7aShmZGUsImhhc0xpZnQiKTtpKFhhLCJvcGVyYXRlIil9KTtmdW5jdGlvbiBFYShzLGUsdCxhLHIpe3JldHVybiBuZXcgYTJ0KHMsZSx0LGEscil9dmFyIGEydCxvbz1nKCgpPT57THMoKTtueSgpO2koRWEsImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIpO2EydD0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSxyLG4sbyxsKXt2YXIgcD1zLmNhbGwodGhpcyx0KXx8dGhpcztyZXR1cm4gcC5vbkZpbmFsaXplPW8scC5zaG91bGRVbnN1YnNjcmliZT1sLHAuX25leHQ9YT9mdW5jdGlvbihkKXt0cnl7YShkKX1jYXRjaCh1KXt0LmVycm9yKHUpfX06cy5wcm90b3R5cGUuX25leHQscC5fZXJyb3I9bj9mdW5jdGlvbihkKXt0cnl7bihkKX1jYXRjaCh1KXt0LmVycm9yKHUpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06cy5wcm90b3R5cGUuX2Vycm9yLHAuX2NvbXBsZXRlPXI/ZnVuY3Rpb24oKXt0cnl7cigpfWNhdGNoKGQpe3QuZXJyb3IoZCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTpzLnByb3RvdHlwZS5fY29tcGxldGUscH1yZXR1cm4gaShlLCJPcGVyYXRvclN1YnNjcmliZXIiKSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciB0O2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciBhPXRoaXMuY2xvc2VkO3MucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIWEmJigodD10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8dD09PXZvaWQgMHx8dC5jYWxsKHRoaXMpKX19LGV9KShCNCl9KTtmdW5jdGlvbiBISigpe3JldHVybiBYYShmdW5jdGlvbihzLGUpe3ZhciB0PW51bGw7cy5fcmVmQ291bnQrKzt2YXIgYT1FYShlLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIXN8fHMuX3JlZkNvdW50PD0wfHwwPC0tcy5fcmVmQ291bnQpe3Q9bnVsbDtyZXR1cm59dmFyIHI9cy5fY29ubmVjdGlvbixuPXQ7dD1udWxsLHImJighbnx8cj09PW4pJiZyLnVuc3Vic2NyaWJlKCksZS51bnN1YnNjcmliZSgpfSk7cy5zdWJzY3JpYmUoYSksYS5jbG9zZWR8fCh0PXMuY29ubmVjdCgpKX0pfXZhciBxSj1nKCgpPT57d3IoKTtvbygpO2koSEosInJlZkNvdW50Iil9KTt2YXIgczJ0LGkydD1nKCgpPT57THMoKTt5bigpO1UyKCk7cUooKTtvbygpO3dyKCk7czJ0PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCxhKXt2YXIgcj1zLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuc291cmNlPXQsci5zdWJqZWN0RmFjdG9yeT1hLHIuX3N1YmplY3Q9bnVsbCxyLl9yZWZDb3VudD0wLHIuX2Nvbm5lY3Rpb249bnVsbCxmZGUodCkmJihyLmxpZnQ9dC5saWZ0KSxyfXJldHVybiBpKGUsIkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSIpLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0U3ViamVjdCgpLnN1YnNjcmliZSh0KX0sZS5wcm90b3R5cGUuZ2V0U3ViamVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3N1YmplY3Q7cmV0dXJuKCF0fHx0LmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhpcy5fc3ViamVjdH0sZS5wcm90b3R5cGUuX3RlYXJkb3duPWZ1bmN0aW9uKCl7dGhpcy5fcmVmQ291bnQ9MDt2YXIgdD10aGlzLl9jb25uZWN0aW9uO3RoaXMuX3N1YmplY3Q9dGhpcy5fY29ubmVjdGlvbj1udWxsLHQ/LnVuc3Vic2NyaWJlKCl9LGUucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGE9dGhpcy5fY29ubmVjdGlvbjtpZighYSl7YT10aGlzLl9jb25uZWN0aW9uPW5ldyB0cjt2YXIgcj10aGlzLmdldFN1YmplY3QoKTthLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoRWEocix2b2lkIDAsZnVuY3Rpb24oKXt0Ll90ZWFyZG93bigpLHIuY29tcGxldGUoKX0sZnVuY3Rpb24obil7dC5fdGVhcmRvd24oKSxyLmVycm9yKG4pfSxmdW5jdGlvbigpe3JldHVybiB0Ll90ZWFyZG93bigpfSkpKSxhLmNsb3NlZCYmKHRoaXMuX2Nvbm5lY3Rpb249bnVsbCxhPXRyLkVNUFRZKX1yZXR1cm4gYX0sZS5wcm90b3R5cGUucmVmQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gSEooKSh0aGlzKX0sZX0pKHJhKX0pO3ZhciBtZGUscjJ0PWcoKCk9PnttZGU9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKG1kZS5kZWxlZ2F0ZXx8cGVyZm9ybWFuY2UpLm5vdygpfSwibm93IiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBsMCxnZGU9ZygoKT0+e0xzKCk7VTIoKTtsMD17c2NoZWR1bGU6aShmdW5jdGlvbihzKXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsdD1jYW5jZWxBbmltYXRpb25GcmFtZSxhPWwwLmRlbGVnYXRlO2EmJihlPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHQ9YS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHI9ZShmdW5jdGlvbihuKXt0PXZvaWQgMCxzKG4pfSk7cmV0dXJuIG5ldyB0cihmdW5jdGlvbigpe3JldHVybiB0Py4ocil9KX0sInNjaGVkdWxlIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHM9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspc1tlXT1hcmd1bWVudHNbZV07dmFyIHQ9bDAuZGVsZWdhdGU7cmV0dXJuKHQ/LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsT3IoW10sT2kocykpKX0sInJlcXVlc3RBbmltYXRpb25GcmFtZSIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHM9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspc1tlXT1hcmd1bWVudHNbZV07dmFyIHQ9bDAuZGVsZWdhdGU7cmV0dXJuKHQ/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLE9yKFtdLE9pKHMpKSl9LCJjYW5jZWxBbmltYXRpb25GcmFtZSIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBLVGEocyl7cmV0dXJuIHM/bzJ0KHMpOllUYX1mdW5jdGlvbiBvMnQocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXt2YXIgdD1zfHxtZGUsYT10Lm5vdygpLHI9MCxuPWkoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KHI9bDAucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKG8pe3I9MDt2YXIgbD10Lm5vdygpO2UubmV4dCh7dGltZXN0YW1wOnM/bDpvLGVsYXBzZWQ6bC1hfSksbigpfSkpfSwicnVuIik7cmV0dXJuIG4oKSxmdW5jdGlvbigpe3ImJmwwLmNhbmNlbEFuaW1hdGlvbkZyYW1lKHIpfX0pfXZhciBZVGEsbjJ0PWcoKCk9Pnt5bigpO3IydCgpO2dkZSgpO2koS1RhLCJhbmltYXRpb25GcmFtZXMiKTtpKG8ydCwiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIpO1lUYT1vMnQoKX0pO3ZhciBiZGUsdmRlPWcoKCk9PntvcCgpO2JkZT1obChmdW5jdGlvbihzKXtyZXR1cm4gaShmdW5jdGlvbigpe3ModGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0sIk9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCIpfSl9KTt2YXIgVW8seGRlLHo3PWcoKCk9PntMcygpO3luKCk7VTIoKTt2ZGUoKTt3NygpO0ZKKCk7VW89KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSgpe3ZhciB0PXMuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gdC5jbG9zZWQ9ITEsdC5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsdC5vYnNlcnZlcnM9W10sdC5pc1N0b3BwZWQ9ITEsdC5oYXNFcnJvcj0hMSx0LnRocm93bkVycm9yPW51bGwsdH1yZXR1cm4gaShlLCJTdWJqZWN0IiksZS5wcm90b3R5cGUubGlmdD1mdW5jdGlvbih0KXt2YXIgYT1uZXcgeGRlKHRoaXMsdGhpcyk7cmV0dXJuIGEub3BlcmF0b3I9dCxhfSxlLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBiZGV9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dmFyIGE9dGhpcztfNyhmdW5jdGlvbigpe3ZhciByLG47aWYoYS5fdGhyb3dJZkNsb3NlZCgpLCFhLmlzU3RvcHBlZCl7YS5jdXJyZW50T2JzZXJ2ZXJzfHwoYS5jdXJyZW50T2JzZXJ2ZXJzPUFycmF5LmZyb20oYS5vYnNlcnZlcnMpKTt0cnl7Zm9yKHZhciBvPVZvKGEuY3VycmVudE9ic2VydmVycyksbD1vLm5leHQoKTshbC5kb25lO2w9by5uZXh0KCkpe3ZhciBwPWwudmFsdWU7cC5uZXh0KHQpfX1jYXRjaChkKXtyPXtlcnJvcjpkfX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19fX0pfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgYT10aGlzO183KGZ1bmN0aW9uKCl7aWYoYS5fdGhyb3dJZkNsb3NlZCgpLCFhLmlzU3RvcHBlZCl7YS5oYXNFcnJvcj1hLmlzU3RvcHBlZD0hMCxhLnRocm93bkVycm9yPXQ7Zm9yKHZhciByPWEub2JzZXJ2ZXJzO3IubGVuZ3RoOylyLnNoaWZ0KCkuZXJyb3IodCl9fSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztfNyhmdW5jdGlvbigpe2lmKHQuX3Rocm93SWZDbG9zZWQoKSwhdC5pc1N0b3BwZWQpe3QuaXNTdG9wcGVkPSEwO2Zvcih2YXIgYT10Lm9ic2VydmVyczthLmxlbmd0aDspYS5zaGlmdCgpLmNvbXBsZXRlKCl9fSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ9dGhpcy5jbG9zZWQ9ITAsdGhpcy5vYnNlcnZlcnM9dGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGx9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwib2JzZXJ2ZWQiLHtnZXQ6aShmdW5jdGlvbigpe3ZhciB0O3JldHVybigodD10aGlzLm9ic2VydmVycyk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0Lmxlbmd0aCk+MH0sImdldCIpLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuX3RyeVN1YnNjcmliZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHMucHJvdG90eXBlLl90cnlTdWJzY3JpYmUuY2FsbCh0aGlzLHQpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyh0KSx0aGlzLl9pbm5lclN1YnNjcmliZSh0KX0sZS5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciBhPXRoaXMscj10aGlzLG49ci5oYXNFcnJvcixvPXIuaXNTdG9wcGVkLGw9ci5vYnNlcnZlcnM7cmV0dXJuIG58fG8/b2RlOih0aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCxsLnB1c2godCksbmV3IHRyKGZ1bmN0aW9uKCl7YS5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsbTEobCx0KX0pKX0sZS5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24odCl7dmFyIGE9dGhpcyxyPWEuaGFzRXJyb3Isbj1hLnRocm93bkVycm9yLG89YS5pc1N0b3BwZWQ7cj90LmVycm9yKG4pOm8mJnQuY29tcGxldGUoKX0sZS5wcm90b3R5cGUuYXNPYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHJhO3JldHVybiB0LnNvdXJjZT10aGlzLHR9LGUuY3JlYXRlPWZ1bmN0aW9uKHQsYSl7cmV0dXJuIG5ldyB4ZGUodCxhKX0sZX0pKHJhKSx4ZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3ZhciByPXMuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5kZXN0aW5hdGlvbj10LHIuc291cmNlPWEscn1yZXR1cm4gaShlLCJBbm9ueW1vdXNTdWJqZWN0IiksZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgYSxyOyhyPShhPXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5uZXh0KT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChhLHQpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgYSxyOyhyPShhPXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5lcnJvcik9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwoYSx0KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdCxhOyhhPSh0PXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5jb21wbGV0ZSk9PT1udWxsfHxhPT09dm9pZCAwfHxhLmNhbGwodCl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIGEscjtyZXR1cm4ocj0oYT10aGlzLnNvdXJjZSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnN1YnNjcmliZSh0KSkhPT1udWxsJiZyIT09dm9pZCAwP3I6b2RlfSxlfSkoVW8pfSk7dmFyIEM3LGwydD1nKCgpPT57THMoKTt6NygpO0M3PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCl7dmFyIGE9cy5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLl92YWx1ZT10LGF9cmV0dXJuIGkoZSwiQmVoYXZpb3JTdWJqZWN0IiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ2YWx1ZSIse2dldDppKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUoKX0sImdldCIpLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbih0KXt2YXIgYT1zLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcyx0KTtyZXR1cm4hYS5jbG9zZWQmJnQubmV4dCh0aGlzLl92YWx1ZSksYX0sZS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGE9dC5oYXNFcnJvcixyPXQudGhyb3duRXJyb3Isbj10Ll92YWx1ZTtpZihhKXRocm93IHI7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxufSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3MucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHRoaXMuX3ZhbHVlPXQpfSxlfSkoVW8pfSk7dmFyIGN5LHlkZT1nKCgpPT57Y3k9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKGN5LmRlbGVnYXRlfHxEYXRlKS5ub3coKX0sIm5vdyIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgVDcsd2RlPWcoKCk9PntMcygpO3o3KCk7eWRlKCk7VDc9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEscil7dD09PXZvaWQgMCYmKHQ9MS8wKSxhPT09dm9pZCAwJiYoYT0xLzApLHI9PT12b2lkIDAmJihyPWN5KTt2YXIgbj1zLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2J1ZmZlclNpemU9dCxuLl93aW5kb3dUaW1lPWEsbi5fdGltZXN0YW1wUHJvdmlkZXI9cixuLl9idWZmZXI9W10sbi5faW5maW5pdGVUaW1lV2luZG93PSEwLG4uX2luZmluaXRlVGltZVdpbmRvdz1hPT09MS8wLG4uX2J1ZmZlclNpemU9TWF0aC5tYXgoMSx0KSxuLl93aW5kb3dUaW1lPU1hdGgubWF4KDEsYSksbn1yZXR1cm4gaShlLCJSZXBsYXlTdWJqZWN0IiksZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgYT10aGlzLHI9YS5pc1N0b3BwZWQsbj1hLl9idWZmZXIsbz1hLl9pbmZpbml0ZVRpbWVXaW5kb3csbD1hLl90aW1lc3RhbXBQcm92aWRlcixwPWEuX3dpbmRvd1RpbWU7cnx8KG4ucHVzaCh0KSwhbyYmbi5wdXNoKGwubm93KCkrcCkpLHRoaXMuX3RyaW1CdWZmZXIoKSxzLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0KX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbih0KXt0aGlzLl90aHJvd0lmQ2xvc2VkKCksdGhpcy5fdHJpbUJ1ZmZlcigpO2Zvcih2YXIgYT10aGlzLl9pbm5lclN1YnNjcmliZSh0KSxyPXRoaXMsbj1yLl9pbmZpbml0ZVRpbWVXaW5kb3csbz1yLl9idWZmZXIsbD1vLnNsaWNlKCkscD0wO3A8bC5sZW5ndGgmJiF0LmNsb3NlZDtwKz1uPzE6Mil0Lm5leHQobFtwXSk7cmV0dXJuIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXModCksYX0sZS5wcm90b3R5cGUuX3RyaW1CdWZmZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGE9dC5fYnVmZmVyU2l6ZSxyPXQuX3RpbWVzdGFtcFByb3ZpZGVyLG49dC5fYnVmZmVyLG89dC5faW5maW5pdGVUaW1lV2luZG93LGw9KG8/MToyKSphO2lmKGE8MS8wJiZsPG4ubGVuZ3RoJiZuLnNwbGljZSgwLG4ubGVuZ3RoLWwpLCFvKXtmb3IodmFyIHA9ci5ub3coKSxkPTAsdT0xO3U8bi5sZW5ndGgmJm5bdV08PXA7dSs9MilkPXU7ZCYmbi5zcGxpY2UoMCxkKzEpfX0sZX0pKFVvKX0pO3ZhciBjMnQsZDJ0PWcoKCk9PntMcygpO3o3KCk7YzJ0PShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUoKXt2YXIgdD1zIT09bnVsbCYmcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIHQuX3ZhbHVlPW51bGwsdC5faGFzVmFsdWU9ITEsdC5faXNDb21wbGV0ZT0hMSx0fXJldHVybiBpKGUsIkFzeW5jU3ViamVjdCIpLGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHQpe3ZhciBhPXRoaXMscj1hLmhhc0Vycm9yLG49YS5faGFzVmFsdWUsbz1hLl92YWx1ZSxsPWEudGhyb3duRXJyb3IscD1hLmlzU3RvcHBlZCxkPWEuX2lzQ29tcGxldGU7cj90LmVycm9yKGwpOihwfHxkKSYmKG4mJnQubmV4dChvKSx0LmNvbXBsZXRlKCkpfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5fdmFsdWU9dCx0aGlzLl9oYXNWYWx1ZT0hMCl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxhPXQuX2hhc1ZhbHVlLHI9dC5fdmFsdWUsbj10Ll9pc0NvbXBsZXRlO258fCh0aGlzLl9pc0NvbXBsZXRlPSEwLGEmJnMucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHIpLHMucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcykpfSxlfSkoVW8pfSk7dmFyIGtkZSx1MnQ9ZygoKT0+e0xzKCk7VTIoKTtrZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3JldHVybiBzLmNhbGwodGhpcyl8fHRoaXN9cmV0dXJuIGkoZSwiQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksdGhpc30sZX0pKHRyKX0pO3ZhciBkeSxwMnQ9ZygoKT0+e0xzKCk7ZHk9e3NldEludGVydmFsOmkoZnVuY3Rpb24ocyxlKXtmb3IodmFyIHQ9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspdFthLTJdPWFyZ3VtZW50c1thXTt2YXIgcj1keS5kZWxlZ2F0ZTtyZXR1cm4gcj8uc2V0SW50ZXJ2YWw/ci5zZXRJbnRlcnZhbC5hcHBseShyLE9yKFtzLGVdLE9pKHQpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLE9yKFtzLGVdLE9pKHQpKSl9LCJzZXRJbnRlcnZhbCIpLGNsZWFySW50ZXJ2YWw6aShmdW5jdGlvbihzKXt2YXIgZT1keS5kZWxlZ2F0ZTtyZXR1cm4oZT8uY2xlYXJJbnRlcnZhbHx8Y2xlYXJJbnRlcnZhbCkocyl9LCJjbGVhckludGVydmFsIiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBnMSwkNz1nKCgpPT57THMoKTt1MnQoKTtwMnQoKTt3NygpO2cxPShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCxhKXt2YXIgcj1zLmNhbGwodGhpcyx0LGEpfHx0aGlzO3JldHVybiByLnNjaGVkdWxlcj10LHIud29yaz1hLHIucGVuZGluZz0hMSxyfXJldHVybiBpKGUsIkFzeW5jQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxhKXt2YXIgcjtpZihhPT09dm9pZCAwJiYoYT0wKSx0aGlzLmNsb3NlZClyZXR1cm4gdGhpczt0aGlzLnN0YXRlPXQ7dmFyIG49dGhpcy5pZCxvPXRoaXMuc2NoZWR1bGVyO3JldHVybiBuIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKG8sbixhKSksdGhpcy5wZW5kaW5nPSEwLHRoaXMuZGVsYXk9YSx0aGlzLmlkPShyPXRoaXMuaWQpIT09bnVsbCYmciE9PXZvaWQgMD9yOnRoaXMucmVxdWVzdEFzeW5jSWQobyx0aGlzLmlkLGEpLHRoaXN9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksZHkuc2V0SW50ZXJ2YWwodC5mbHVzaC5iaW5kKHQsdGhpcykscil9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtpZihyPT09dm9pZCAwJiYocj0wKSxyIT1udWxsJiZ0aGlzLmRlbGF5PT09ciYmdGhpcy5wZW5kaW5nPT09ITEpcmV0dXJuIGE7YSE9bnVsbCYmZHkuY2xlYXJJbnRlcnZhbChhKX0sZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGEpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7dmFyIHI9dGhpcy5fZXhlY3V0ZSh0LGEpO2lmKHIpcmV0dXJuIHI7dGhpcy5wZW5kaW5nPT09ITEmJnRoaXMuaWQhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9LGUucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHQsYSl7dmFyIHI9ITEsbjt0cnl7dGhpcy53b3JrKHQpfWNhdGNoKG8pe3I9ITAsbj1vfHxuZXcgRXJyb3IoIlNjaGVkdWxlZCBhY3Rpb24gdGhyZXcgZmFsc3kgZXJyb3IiKX1pZihyKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksbn0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtpZighdGhpcy5jbG9zZWQpe3ZhciB0PXRoaXMsYT10LmlkLHI9dC5zY2hlZHVsZXIsbj1yLmFjdGlvbnM7dGhpcy53b3JrPXRoaXMuc3RhdGU9dGhpcy5zY2hlZHVsZXI9bnVsbCx0aGlzLnBlbmRpbmc9ITEsbTEobix0aGlzKSxhIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHIsYSxudWxsKSksdGhpcy5kZWxheT1udWxsLHMucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyl9fSxlfSkoa2RlKX0pO2Z1bmN0aW9uIGgydChzKXtyZXR1cm4gcyBpbiBqSj8oZGVsZXRlIGpKW3NdLCEwKTohMX12YXIgWlRhLFNkZSxqSixfZGUsTW9zLGYydD1nKCgpPT57WlRhPTEsako9e307aShoMnQsImZpbmRBbmRDbGVhckhhbmRsZSIpO19kZT17c2V0SW1tZWRpYXRlOmkoZnVuY3Rpb24ocyl7dmFyIGU9WlRhKys7cmV0dXJuIGpKW2VdPSEwLFNkZXx8KFNkZT1Qcm9taXNlLnJlc29sdmUoKSksU2RlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaDJ0KGUpJiZzKCl9KSxlfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbihzKXtoMnQocyl9LCJjbGVhckltbWVkaWF0ZSIpfSxNb3M9e3BlbmRpbmc6aShmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhqSikubGVuZ3RofSwicGVuZGluZyIpfX0pO3ZhciBYVGEsUVRhLHV5LG0ydD1nKCgpPT57THMoKTtmMnQoKTtYVGE9X2RlLnNldEltbWVkaWF0ZSxRVGE9X2RlLmNsZWFySW1tZWRpYXRlLHV5PXtzZXRJbW1lZGlhdGU6aShmdW5jdGlvbigpe2Zvcih2YXIgcz1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylzW2VdPWFyZ3VtZW50c1tlXTt2YXIgdD11eS5kZWxlZ2F0ZTtyZXR1cm4odD8uc2V0SW1tZWRpYXRlfHxYVGEpLmFwcGx5KHZvaWQgMCxPcihbXSxPaShzKSkpfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbihzKXt2YXIgZT11eS5kZWxlZ2F0ZTtyZXR1cm4oZT8uY2xlYXJJbW1lZGlhdGV8fFFUYSkocyl9LCJjbGVhckltbWVkaWF0ZSIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgTWRlLGcydD1nKCgpPT57THMoKTskNygpO20ydCgpO01kZT0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSl7dmFyIHI9cy5jYWxsKHRoaXMsdCxhKXx8dGhpcztyZXR1cm4gci5zY2hlZHVsZXI9dCxyLndvcms9YSxyfXJldHVybiBpKGUsIkFzYXBBY3Rpb24iKSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbih0LGEscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLHIhPT1udWxsJiZyPjA/cy5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHQsYSxyKToodC5hY3Rpb25zLnB1c2godGhpcyksdC5fc2NoZWR1bGVkfHwodC5fc2NoZWR1bGVkPXV5LnNldEltbWVkaWF0ZSh0LmZsdXNoLmJpbmQodCx2b2lkIDApKSkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbih0LGEscil7dmFyIG47aWYocj09PXZvaWQgMCYmKHI9MCksciE9bnVsbD9yPjA6dGhpcy5kZWxheT4wKXJldHVybiBzLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMsdCxhLHIpO3ZhciBvPXQuYWN0aW9uczthIT1udWxsJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWEmJih1eS5jbGVhckltbWVkaWF0ZShhKSx0Ll9zY2hlZHVsZWQ9PT1hJiYodC5fc2NoZWR1bGVkPXZvaWQgMCkpfSxlfSkoZzEpfSk7dmFyIHB5LHpkZT1nKCgpPT57eWRlKCk7cHk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcyhlLHQpe3Q9PT12b2lkIDAmJih0PXMubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9ZSx0aGlzLm5vdz10fXJldHVybiBpKHMsIlNjaGVkdWxlciIpLHMucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGUsdCxhKXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLGUpLnNjaGVkdWxlKGEsdCl9LHMubm93PWN5Lm5vdyxzfSkoKX0pO3ZhciBiMSxENz1nKCgpPT57THMoKTt6ZGUoKTtiMT0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSl7YT09PXZvaWQgMCYmKGE9cHkubm93KTt2YXIgcj1zLmNhbGwodGhpcyx0LGEpfHx0aGlzO3JldHVybiByLmFjdGlvbnM9W10sci5fYWN0aXZlPSExLHJ9cmV0dXJuIGkoZSwiQXN5bmNTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgYT10aGlzLmFjdGlvbnM7aWYodGhpcy5fYWN0aXZlKXthLnB1c2godCk7cmV0dXJufXZhciByO3RoaXMuX2FjdGl2ZT0hMDtkbyBpZihyPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrO3doaWxlKHQ9YS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEscil7Zm9yKDt0PWEuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IHJ9fSxlfSkocHkpfSk7dmFyIENkZSxiMnQ9ZygoKT0+e0xzKCk7RDcoKTtDZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSgpe3JldHVybiBzIT09bnVsbCYmcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGkoZSwiQXNhcFNjaGVkdWxlciIpLGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgYT10aGlzLl9zY2hlZHVsZWQ7dGhpcy5fc2NoZWR1bGVkPXZvaWQgMDt2YXIgcj10aGlzLmFjdGlvbnMsbjt0PXR8fHIuc2hpZnQoKTtkbyBpZihuPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrO3doaWxlKCh0PXJbMF0pJiZ0LmlkPT09YSYmci5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsodD1yWzBdKSYmdC5pZD09PWEmJnIuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlfSkoYjEpfSk7dmFyIHYydCxKVGEseDJ0PWcoKCk9PntnMnQoKTtiMnQoKTt2MnQ9bmV3IENkZShNZGUpLEpUYT12MnR9KTt2YXIgZmwsVGRlLGMwPWcoKCk9PnskNygpO0Q3KCk7Zmw9bmV3IGIxKGcxKSxUZGU9Zmx9KTt2YXIgJGRlLHkydD1nKCgpPT57THMoKTskNygpOyRkZT0oZnVuY3Rpb24ocyl7TGEoZSxzKTtmdW5jdGlvbiBlKHQsYSl7dmFyIHI9cy5jYWxsKHRoaXMsdCxhKXx8dGhpcztyZXR1cm4gci5zY2hlZHVsZXI9dCxyLndvcms9YSxyfXJldHVybiBpKGUsIlF1ZXVlQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksYT4wP3MucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyx0LGEpOih0aGlzLmRlbGF5PWEsdGhpcy5zdGF0ZT10LHRoaXMuc2NoZWR1bGVyLmZsdXNoKHRoaXMpLHRoaXMpfSxlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKHQsYSl7cmV0dXJuIGE+MHx8dGhpcy5jbG9zZWQ/cy5wcm90b3R5cGUuZXhlY3V0ZS5jYWxsKHRoaXMsdCxhKTp0aGlzLl9leGVjdXRlKHQsYSl9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksciE9bnVsbCYmcj4wfHxyPT1udWxsJiZ0aGlzLmRlbGF5PjA/cy5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHQsYSxyKToodC5mbHVzaCh0aGlzKSwwKX0sZX0pKGcxKX0pO3ZhciBEZGUsdzJ0PWcoKCk9PntMcygpO0Q3KCk7RGRlPShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gcyE9PW51bGwmJnMuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIlF1ZXVlU2NoZWR1bGVyIiksZX0pKGIxKX0pO3ZhciBrMnQsZSRhLFMydD1nKCgpPT57eTJ0KCk7dzJ0KCk7azJ0PW5ldyBEZGUoJGRlKSxlJGE9azJ0fSk7dmFyIExkZSxfMnQ9ZygoKT0+e0xzKCk7JDcoKTtnZGUoKTtMZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3ZhciByPXMuY2FsbCh0aGlzLHQsYSl8fHRoaXM7cmV0dXJuIHIuc2NoZWR1bGVyPXQsci53b3JrPWEscn1yZXR1cm4gaShlLCJBbmltYXRpb25GcmFtZUFjdGlvbiIpLGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksciE9PW51bGwmJnI+MD9zLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsdCxhLHIpOih0LmFjdGlvbnMucHVzaCh0aGlzKSx0Ll9zY2hlZHVsZWR8fCh0Ll9zY2hlZHVsZWQ9bDAucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZmx1c2godm9pZCAwKX0pKSl9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXt2YXIgbjtpZihyPT09dm9pZCAwJiYocj0wKSxyIT1udWxsP3I+MDp0aGlzLmRlbGF5PjApcmV0dXJuIHMucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyx0LGEscik7dmFyIG89dC5hY3Rpb25zO2EhPW51bGwmJmE9PT10Ll9zY2hlZHVsZWQmJigobj1vW28ubGVuZ3RoLTFdKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uaWQpIT09YSYmKGwwLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEpLHQuX3NjaGVkdWxlZD12b2lkIDApfSxlfSkoZzEpfSk7dmFyIEVkZSxNMnQ9ZygoKT0+e0xzKCk7RDcoKTtFZGU9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSgpe3JldHVybiBzIT09bnVsbCYmcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGkoZSwiQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLl9hY3RpdmU9ITA7dmFyIGE7dD9hPXQuaWQ6KGE9dGhpcy5fc2NoZWR1bGVkLHRoaXMuX3NjaGVkdWxlZD12b2lkIDApO3ZhciByPXRoaXMuYWN0aW9ucyxuO3Q9dHx8ci5zaGlmdCgpO2RvIGlmKG49dC5leGVjdXRlKHQuc3RhdGUsdC5kZWxheSkpYnJlYWs7d2hpbGUoKHQ9clswXSkmJnQuaWQ9PT1hJiZyLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxuKXtmb3IoOyh0PXJbMF0pJiZ0LmlkPT09YSYmci5zaGlmdCgpOyl0LnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LGV9KShiMSl9KTt2YXIgejJ0LHQkYSxDMnQ9ZygoKT0+e18ydCgpO00ydCgpO3oydD1uZXcgRWRlKExkZSksdCRhPXoydH0pO3ZhciBUMnQsUGRlLCQydD1nKCgpPT57THMoKTskNygpO1UyKCk7RDcoKTtUMnQ9KGZ1bmN0aW9uKHMpe0xhKGUscyk7ZnVuY3Rpb24gZSh0LGEpe3Q9PT12b2lkIDAmJih0PVBkZSksYT09PXZvaWQgMCYmKGE9MS8wKTt2YXIgcj1zLmNhbGwodGhpcyx0LGZ1bmN0aW9uKCl7cmV0dXJuIHIuZnJhbWV9KXx8dGhpcztyZXR1cm4gci5tYXhGcmFtZXM9YSxyLmZyYW1lPTAsci5pbmRleD0tMSxyfXJldHVybiBpKGUsIlZpcnR1YWxUaW1lU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxhPXQuYWN0aW9ucyxyPXQubWF4RnJhbWVzLG4sbzsobz1hWzBdKSYmby5kZWxheTw9ciYmKGEuc2hpZnQoKSx0aGlzLmZyYW1lPW8uZGVsYXksIShuPW8uZXhlY3V0ZShvLnN0YXRlLG8uZGVsYXkpKSk7KTtpZihuKXtmb3IoO289YS5zaGlmdCgpOylvLnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LGUuZnJhbWVUaW1lRmFjdG9yPTEwLGV9KShiMSksUGRlPShmdW5jdGlvbihzKXtMYShlLHMpO2Z1bmN0aW9uIGUodCxhLHIpe3I9PT12b2lkIDAmJihyPXQuaW5kZXgrPTEpO3ZhciBuPXMuY2FsbCh0aGlzLHQsYSl8fHRoaXM7cmV0dXJuIG4uc2NoZWR1bGVyPXQsbi53b3JrPWEsbi5pbmRleD1yLG4uYWN0aXZlPSEwLG4uaW5kZXg9dC5pbmRleD1yLG59cmV0dXJuIGkoZSwiVmlydHVhbEFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQsYSl7aWYoYT09PXZvaWQgMCYmKGE9MCksTnVtYmVyLmlzRmluaXRlKGEpKXtpZighdGhpcy5pZClyZXR1cm4gcy5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLHQsYSk7dGhpcy5hY3RpdmU9ITE7dmFyIHI9bmV3IGUodGhpcy5zY2hlZHVsZXIsdGhpcy53b3JrKTtyZXR1cm4gdGhpcy5hZGQociksci5zY2hlZHVsZSh0LGEpfWVsc2UgcmV0dXJuIHRyLkVNUFRZfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbih0LGEscil7cj09PXZvaWQgMCYmKHI9MCksdGhpcy5kZWxheT10LmZyYW1lK3I7dmFyIG49dC5hY3Rpb25zO3JldHVybiBuLnB1c2godGhpcyksbi5zb3J0KGUuc29ydEFjdGlvbnMpLDF9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQsYSxyKXtyPT09dm9pZCAwJiYocj0wKX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24odCxhKXtpZih0aGlzLmFjdGl2ZT09PSEwKXJldHVybiBzLnByb3RvdHlwZS5fZXhlY3V0ZS5jYWxsKHRoaXMsdCxhKX0sZS5zb3J0QWN0aW9ucz1mdW5jdGlvbih0LGEpe3JldHVybiB0LmRlbGF5PT09YS5kZWxheT90LmluZGV4PT09YS5pbmRleD8wOnQuaW5kZXg+YS5pbmRleD8xOi0xOnQuZGVsYXk+YS5kZWxheT8xOi0xfSxlfSkoZzEpfSk7ZnVuY3Rpb24gYSRhKHMpe3JldHVybiBzP3MkYShzKTpWSn1mdW5jdGlvbiBzJGEocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtyZXR1cm4gcy5zY2hlZHVsZShmdW5jdGlvbigpe3JldHVybiBlLmNvbXBsZXRlKCl9KX0pfXZhciBWSixVSj1nKCgpPT57eW4oKTtWSj1uZXcgcmEoZnVuY3Rpb24ocyl7cmV0dXJuIHMuY29tcGxldGUoKX0pO2koYSRhLCJlbXB0eSIpO2kocyRhLCJlbXB0eVNjaGVkdWxlZCIpfSk7ZnVuY3Rpb24gV0oocyl7cmV0dXJuIHMmJnNhKHMuc2NoZWR1bGUpfXZhciBJZGU9ZygoKT0+e3JvKCk7aShXSiwiaXNTY2hlZHVsZXIiKX0pO2Z1bmN0aW9uIEFkZShzKXtyZXR1cm4gc1tzLmxlbmd0aC0xXX1mdW5jdGlvbiBEMnQocyl7cmV0dXJuIHNhKEFkZShzKSk/cy5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gRzIocyl7cmV0dXJuIFdKKEFkZShzKSk/cy5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gUm5zKHMsZSl7cmV0dXJuIHR5cGVvZiBBZGUocyk9PSJudW1iZXIiP3MucG9wKCk6ZX12YXIgTDc9ZygoKT0+e3JvKCk7SWRlKCk7aShBZGUsImxhc3QiKTtpKEQydCwicG9wUmVzdWx0U2VsZWN0b3IiKTtpKEcyLCJwb3BTY2hlZHVsZXIiKTtpKFJucywicG9wTnVtYmVyIil9KTt2YXIgRTcsR0o9ZygoKT0+e0U3PWkoKGZ1bmN0aW9uKHMpe3JldHVybiBzJiZ0eXBlb2Ygcy5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIn0pLCJpc0FycmF5TGlrZSIpfSk7ZnVuY3Rpb24gS0oocyl7cmV0dXJuIHNhKHM/LnRoZW4pfXZhciBOZGU9ZygoKT0+e3JvKCk7aShLSiwiaXNQcm9taXNlIil9KTtmdW5jdGlvbiBZSihzKXtyZXR1cm4gc2Eoc1tINF0pfXZhciBSZGU9ZygoKT0+e2x5KCk7cm8oKTtpKFlKLCJpc0ludGVyb3BPYnNlcnZhYmxlIil9KTtmdW5jdGlvbiBaSihzKXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJnNhKHM/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfXZhciBPZGU9ZygoKT0+e3JvKCk7aShaSiwiaXNBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBYSihzKXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKHMhPT1udWxsJiZ0eXBlb2Ygcz09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrcysiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgRmRlPWcoKCk9PntpKFhKLCJjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvciIpfSk7ZnVuY3Rpb24gaSRhKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2whPSJmdW5jdGlvbiJ8fCFTeW1ib2wuaXRlcmF0b3I/IkBAaXRlcmF0b3IiOlN5bWJvbC5pdGVyYXRvcn12YXIgUUosQmRlPWcoKCk9PntpKGkkYSwiZ2V0U3ltYm9sSXRlcmF0b3IiKTtRSj1pJGEoKX0pO2Z1bmN0aW9uIEpKKHMpe3JldHVybiBzYShzPy5bUUpdKX12YXIgSGRlPWcoKCk9PntCZGUoKTtybygpO2koSkosImlzSXRlcmFibGUiKX0pO2Z1bmN0aW9uIGVlZShzKXtyZXR1cm4gc2RlKHRoaXMsYXJndW1lbnRzLGkoZnVuY3Rpb24oKXt2YXIgdCxhLHIsbjtyZXR1cm4gcnkodGhpcyxmdW5jdGlvbihvKXtzd2l0Y2goby5sYWJlbCl7Y2FzZSAwOnQ9cy5nZXRSZWFkZXIoKSxvLmxhYmVsPTE7Y2FzZSAxOm8udHJ5cy5wdXNoKFsxLCw5LDEwXSksby5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCxuMCh0LnJlYWQoKSldO2Nhc2UgMzpyZXR1cm4gYT1vLnNlbnQoKSxyPWEudmFsdWUsbj1hLmRvbmUsbj9bNCxuMCh2b2lkIDApXTpbMyw1XTtjYXNlIDQ6cmV0dXJuWzIsby5zZW50KCldO2Nhc2UgNTpyZXR1cm5bNCxuMChyKV07Y2FzZSA2OnJldHVybls0LG8uc2VudCgpXTtjYXNlIDc6cmV0dXJuIG8uc2VudCgpLFszLDJdO2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OnJldHVybiB0LnJlbGVhc2VMb2NrKCksWzddO2Nhc2UgMTA6cmV0dXJuWzJdfX0pfSwicmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcl8xIikpfWZ1bmN0aW9uIHRlZShzKXtyZXR1cm4gc2Eocz8uZ2V0UmVhZGVyKX12YXIgYWVlPWcoKCk9PntMcygpO3JvKCk7aShlZWUsInJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IiKTtpKHRlZSwiaXNSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIG5pKHMpe2lmKHMgaW5zdGFuY2VvZiByYSlyZXR1cm4gcztpZihzIT1udWxsKXtpZihZSihzKSlyZXR1cm4gciRhKHMpO2lmKEU3KHMpKXJldHVybiBvJGEocyk7aWYoS0oocykpcmV0dXJuIG4kYShzKTtpZihaSihzKSlyZXR1cm4gTDJ0KHMpO2lmKEpKKHMpKXJldHVybiBsJGEocyk7aWYodGVlKHMpKXJldHVybiBjJGEocyl9dGhyb3cgWEoocyl9ZnVuY3Rpb24gciRhKHMpe3JldHVybiBuZXcgcmEoZnVuY3Rpb24oZSl7dmFyIHQ9c1tINF0oKTtpZihzYSh0LnN1YnNjcmliZSkpcmV0dXJuIHQuc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX1mdW5jdGlvbiBvJGEocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHMubGVuZ3RoJiYhZS5jbG9zZWQ7dCsrKWUubmV4dChzW3RdKTtlLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBuJGEocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtzLnRoZW4oZnVuY3Rpb24odCl7ZS5jbG9zZWR8fChlLm5leHQodCksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24odCl7cmV0dXJuIGUuZXJyb3IodCl9KS50aGVuKG51bGwsT0opfSl9ZnVuY3Rpb24gbCRhKHMpe3JldHVybiBuZXcgcmEoZnVuY3Rpb24oZSl7dmFyIHQsYTt0cnl7Zm9yKHZhciByPVZvKHMpLG49ci5uZXh0KCk7IW4uZG9uZTtuPXIubmV4dCgpKXt2YXIgbz1uLnZhbHVlO2lmKGUubmV4dChvKSxlLmNsb3NlZClyZXR1cm59fWNhdGNoKGwpe3Q9e2Vycm9yOmx9fWZpbmFsbHl7dHJ5e24mJiFuLmRvbmUmJihhPXIucmV0dXJuKSYmYS5jYWxsKHIpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1lLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBMMnQocyl7cmV0dXJuIG5ldyByYShmdW5jdGlvbihlKXtkJGEocyxlKS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5lcnJvcih0KX0pfSl9ZnVuY3Rpb24gYyRhKHMpe3JldHVybiBMMnQoZWVlKHMpKX1mdW5jdGlvbiBkJGEocyxlKXt2YXIgdCxhLHIsbjtyZXR1cm4gYWRlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvLGw7cmV0dXJuIHJ5KHRoaXMsZnVuY3Rpb24ocCl7c3dpdGNoKHAubGFiZWwpe2Nhc2UgMDpwLnRyeXMucHVzaChbMCw1LDYsMTFdKSx0PWlkZShzKSxwLmxhYmVsPTE7Y2FzZSAxOnJldHVybls0LHQubmV4dCgpXTtjYXNlIDI6aWYoYT1wLnNlbnQoKSwhIWEuZG9uZSlyZXR1cm5bMyw0XTtpZihvPWEudmFsdWUsZS5uZXh0KG8pLGUuY2xvc2VkKXJldHVyblsyXTtwLmxhYmVsPTM7Y2FzZSAzOnJldHVyblszLDFdO2Nhc2UgNDpyZXR1cm5bMywxMV07Y2FzZSA1OnJldHVybiBsPXAuc2VudCgpLHI9e2Vycm9yOmx9LFszLDExXTtjYXNlIDY6cmV0dXJuIHAudHJ5cy5wdXNoKFs2LCw5LDEwXSksYSYmIWEuZG9uZSYmKG49dC5yZXR1cm4pP1s0LG4uY2FsbCh0KV06WzMsOF07Y2FzZSA3OnAuc2VudCgpLHAubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTppZihyKXRocm93IHIuZXJyb3I7cmV0dXJuWzddO2Nhc2UgMTA6cmV0dXJuWzddO2Nhc2UgMTE6cmV0dXJuIGUuY29tcGxldGUoKSxbMl19fSl9KX12YXIgQWw9ZygoKT0+e0xzKCk7R0ooKTtOZGUoKTt5bigpO1JkZSgpO09kZSgpO0ZkZSgpO0hkZSgpO2FlZSgpO3JvKCk7bGRlKCk7bHkoKTtpKG5pLCJpbm5lckZyb20iKTtpKHIkYSwiZnJvbUludGVyb3BPYnNlcnZhYmxlIik7aShvJGEsImZyb21BcnJheUxpa2UiKTtpKG4kYSwiZnJvbVByb21pc2UiKTtpKGwkYSwiZnJvbUl0ZXJhYmxlIik7aShMMnQsImZyb21Bc3luY0l0ZXJhYmxlIik7aShjJGEsImZyb21SZWFkYWJsZVN0cmVhbUxpa2UiKTtpKGQkYSwicHJvY2VzcyIpfSk7ZnVuY3Rpb24gRnIocyxlLHQsYSxyKXthPT09dm9pZCAwJiYoYT0wKSxyPT09dm9pZCAwJiYocj0hMSk7dmFyIG49ZS5zY2hlZHVsZShmdW5jdGlvbigpe3QoKSxyP3MuYWRkKHRoaXMuc2NoZWR1bGUobnVsbCxhKSk6dGhpcy51bnN1YnNjcmliZSgpfSxhKTtpZihzLmFkZChuKSwhcilyZXR1cm4gbn12YXIgbHA9ZygoKT0+e2koRnIsImV4ZWN1dGVTY2hlZHVsZSIpfSk7ZnVuY3Rpb24gUDcocyxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWGEoZnVuY3Rpb24odCxhKXt0LnN1YnNjcmliZShFYShhLGZ1bmN0aW9uKHIpe3JldHVybiBGcihhLHMsZnVuY3Rpb24oKXtyZXR1cm4gYS5uZXh0KHIpfSxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gRnIoYSxzLGZ1bmN0aW9uKCl7cmV0dXJuIGEuY29tcGxldGUoKX0sZSl9LGZ1bmN0aW9uKHIpe3JldHVybiBGcihhLHMsZnVuY3Rpb24oKXtyZXR1cm4gYS5lcnJvcihyKX0sZSl9KSl9KX12YXIgaHk9ZygoKT0+e2xwKCk7d3IoKTtvbygpO2koUDcsIm9ic2VydmVPbiIpfSk7ZnVuY3Rpb24gSTcocyxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWGEoZnVuY3Rpb24odCxhKXthLmFkZChzLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc3Vic2NyaWJlKGEpfSxlKSl9KX12YXIgZnk9ZygoKT0+e3dyKCk7aShJNywic3Vic2NyaWJlT24iKX0pO2Z1bmN0aW9uIEUydChzLGUpe3JldHVybiBuaShzKS5waXBlKEk3KGUpLFA3KGUpKX12YXIgUDJ0PWcoKCk9PntBbCgpO2h5KCk7ZnkoKTtpKEUydCwic2NoZWR1bGVPYnNlcnZhYmxlIil9KTtmdW5jdGlvbiBJMnQocyxlKXtyZXR1cm4gbmkocykucGlwZShJNyhlKSxQNyhlKSl9dmFyIEEydD1nKCgpPT57QWwoKTtoeSgpO2Z5KCk7aShJMnQsInNjaGVkdWxlUHJvbWlzZSIpfSk7ZnVuY3Rpb24gTjJ0KHMsZSl7cmV0dXJuIG5ldyByYShmdW5jdGlvbih0KXt2YXIgYT0wO3JldHVybiBlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7YT09PXMubGVuZ3RoP3QuY29tcGxldGUoKToodC5uZXh0KHNbYSsrXSksdC5jbG9zZWR8fHRoaXMuc2NoZWR1bGUoKSl9KX0pfXZhciBSMnQ9ZygoKT0+e3luKCk7aShOMnQsInNjaGVkdWxlQXJyYXkiKX0pO2Z1bmN0aW9uIE8ydChzLGUpe3JldHVybiBuZXcgcmEoZnVuY3Rpb24odCl7dmFyIGE7cmV0dXJuIEZyKHQsZSxmdW5jdGlvbigpe2E9c1tRSl0oKSxGcih0LGUsZnVuY3Rpb24oKXt2YXIgcixuLG87dHJ5e3I9YS5uZXh0KCksbj1yLnZhbHVlLG89ci5kb25lfWNhdGNoKGwpe3QuZXJyb3IobCk7cmV0dXJufW8/dC5jb21wbGV0ZSgpOnQubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBzYShhPy5yZXR1cm4pJiZhLnJldHVybigpfX0pfXZhciBGMnQ9ZygoKT0+e3luKCk7QmRlKCk7cm8oKTtscCgpO2koTzJ0LCJzY2hlZHVsZUl0ZXJhYmxlIil9KTtmdW5jdGlvbiBzZWUocyxlKXtpZighcyl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyByYShmdW5jdGlvbih0KXtGcih0LGUsZnVuY3Rpb24oKXt2YXIgYT1zW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO0ZyKHQsZSxmdW5jdGlvbigpe2EubmV4dCgpLnRoZW4oZnVuY3Rpb24ocil7ci5kb25lP3QuY29tcGxldGUoKTp0Lm5leHQoci52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBxZGU9ZygoKT0+e3luKCk7bHAoKTtpKHNlZSwic2NoZWR1bGVBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBCMnQocyxlKXtyZXR1cm4gc2VlKGVlZShzKSxlKX12YXIgSDJ0PWcoKCk9PntxZGUoKTthZWUoKTtpKEIydCwic2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIGpkZShzLGUpe2lmKHMhPW51bGwpe2lmKFlKKHMpKXJldHVybiBFMnQocyxlKTtpZihFNyhzKSlyZXR1cm4gTjJ0KHMsZSk7aWYoS0oocykpcmV0dXJuIEkydChzLGUpO2lmKFpKKHMpKXJldHVybiBzZWUocyxlKTtpZihKSihzKSlyZXR1cm4gTzJ0KHMsZSk7aWYodGVlKHMpKXJldHVybiBCMnQocyxlKX10aHJvdyBYSihzKX12YXIgVmRlPWcoKCk9PntQMnQoKTtBMnQoKTtSMnQoKTtGMnQoKTtxZGUoKTtSZGUoKTtOZGUoKTtHSigpO0hkZSgpO09kZSgpO0ZkZSgpO2FlZSgpO0gydCgpO2koamRlLCJzY2hlZHVsZWQiKX0pO2Z1bmN0aW9uIEsyKHMsZSl7cmV0dXJuIGU/amRlKHMsZSk6bmkocyl9dmFyIG15PWcoKCk9PntWZGUoKTtBbCgpO2koSzIsImZyb20iKX0pO2Z1bmN0aW9uIHE0KCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3ZhciB0PUcyKHMpO3JldHVybiBLMihzLHQpfXZhciBVZGU9ZygoKT0+e0w3KCk7bXkoKTtpKHE0LCJvZiIpfSk7ZnVuY3Rpb24gV2RlKHMsZSl7dmFyIHQ9c2Eocyk/czpmdW5jdGlvbigpe3JldHVybiBzfSxhPWkoZnVuY3Rpb24ocil7cmV0dXJuIHIuZXJyb3IodCgpKX0sImluaXQiKTtyZXR1cm4gbmV3IHJhKGU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuc2NoZWR1bGUoYSwwLHIpfTphKX12YXIgR2RlPWcoKCk9Pnt5bigpO3JvKCk7aShXZGUsInRocm93RXJyb3IiKX0pO2Z1bmN0aW9uIHUkYShzLGUpe3ZhciB0LGEscixuPXMsbz1uLmtpbmQsbD1uLnZhbHVlLHA9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8odD1lLm5leHQpPT09bnVsbHx8dD09PXZvaWQgMHx8dC5jYWxsKGUsbCk6bz09PSJFIj8oYT1lLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLHApOihyPWUuY29tcGxldGUpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGUpfXZhciBLZGUscTJ0LGoydD1nKCgpPT57VUooKTtVZGUoKTtHZGUoKTtybygpOyhmdW5jdGlvbihzKXtzLk5FWFQ9Ik4iLHMuRVJST1I9IkUiLHMuQ09NUExFVEU9IkMifSkoS2RlfHwoS2RlPXt9KSk7cTJ0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSx0LGEpe3RoaXMua2luZD1lLHRoaXMudmFsdWU9dCx0aGlzLmVycm9yPWEsdGhpcy5oYXNWYWx1ZT1lPT09Ik4ifXJldHVybiBpKHMsIk5vdGlmaWNhdGlvbiIpLHMucHJvdG90eXBlLm9ic2VydmU9ZnVuY3Rpb24oZSl7cmV0dXJuIHUkYSh0aGlzLGUpfSxzLnByb3RvdHlwZS5kbz1mdW5jdGlvbihlLHQsYSl7dmFyIHI9dGhpcyxuPXIua2luZCxvPXIudmFsdWUsbD1yLmVycm9yO3JldHVybiBuPT09Ik4iP2U/LihvKTpuPT09IkUiP3Q/LihsKTphPy4oKX0scy5wcm90b3R5cGUuYWNjZXB0PWZ1bmN0aW9uKGUsdCxhKXt2YXIgcjtyZXR1cm4gc2EoKHI9ZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5leHQpP3RoaXMub2JzZXJ2ZShlKTp0aGlzLmRvKGUsdCxhKX0scy5wcm90b3R5cGUudG9PYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUua2luZCxhPWUudmFsdWUscj1lLmVycm9yLG49dD09PSJOIj9xNChhKTp0PT09IkUiP1dkZShmdW5jdGlvbigpe3JldHVybiByfSk6dD09PSJDIj9WSjowO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgIit0KTtyZXR1cm4gbn0scy5jcmVhdGVOZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcygiTiIsZSl9LHMuY3JlYXRlRXJyb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBzKCJFIix2b2lkIDAsZSl9LHMuY3JlYXRlQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gcy5jb21wbGV0ZU5vdGlmaWNhdGlvbn0scy5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgcygiQyIpLHN9KSgpO2kodSRhLCJvYnNlcnZlTm90aWZpY2F0aW9uIil9KTt2YXIgVjJ0PWcoKCk9Pnt9KTt2YXIgcCRhLFUydD1nKCgpPT57b3AoKTtwJGE9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24oKXtzKHRoaXMpLHRoaXMubmFtZT0iRW1wdHlFcnJvciIsdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSJ9LCJFbXB0eUVycm9ySW1wbCIpfSl9KTt2YXIgVzJ0PWcoKCk9Pnt9KTt2YXIgRzJ0PWcoKCk9Pnt9KTt2YXIgaCRhLEsydD1nKCgpPT57b3AoKTtoJGE9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24oKXtzKHRoaXMpLHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXMubWVzc2FnZT0iYXJndW1lbnQgb3V0IG9mIHJhbmdlIn0sIkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9ySW1wbCIpfSl9KTt2YXIgZiRhLFkydD1nKCgpPT57b3AoKTtmJGE9aGwoZnVuY3Rpb24ocyl7cmV0dXJuIGkoZnVuY3Rpb24odCl7cyh0aGlzKSx0aGlzLm5hbWU9Ik5vdEZvdW5kRXJyb3IiLHRoaXMubWVzc2FnZT10fSwiTm90Rm91bmRFcnJvckltcGwiKX0pfSk7dmFyIG0kYSxaMnQ9ZygoKT0+e29wKCk7bSRhPWhsKGZ1bmN0aW9uKHMpe3JldHVybiBpKGZ1bmN0aW9uKHQpe3ModGhpcyksdGhpcy5uYW1lPSJTZXF1ZW5jZUVycm9yIix0aGlzLm1lc3NhZ2U9dH0sIlNlcXVlbmNlRXJyb3JJbXBsIil9KX0pO2Z1bmN0aW9uIGllZShzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihzKX12YXIgWWRlPWcoKCk9PntpKGllZSwiaXNWYWxpZERhdGUiKX0pO2Z1bmN0aW9uIFEydChzLGUpe3ZhciB0PWllZShzKT97Zmlyc3Q6c306dHlwZW9mIHM9PSJudW1iZXIiP3tlYWNoOnN9OnMsYT10LmZpcnN0LHI9dC5lYWNoLG49dC53aXRoLG89bj09PXZvaWQgMD9nJGE6bixsPXQuc2NoZWR1bGVyLHA9bD09PXZvaWQgMD9lPz9mbDpsLGQ9dC5tZXRhLHU9ZD09PXZvaWQgMD9udWxsOmQ7aWYoYT09bnVsbCYmcj09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpO3JldHVybiBYYShmdW5jdGlvbihjLGIpe3ZhciB2LHgsbT1udWxsLGY9MCx5PWkoZnVuY3Rpb24oTSl7eD1GcihiLHAsZnVuY3Rpb24oKXt0cnl7di51bnN1YnNjcmliZSgpLG5pKG8oe21ldGE6dSxsYXN0VmFsdWU6bSxzZWVuOmZ9KSkuc3Vic2NyaWJlKGIpfWNhdGNoKHope2IuZXJyb3Ioeil9fSxNKX0sInN0YXJ0VGltZXIiKTt2PWMuc3Vic2NyaWJlKEVhKGIsZnVuY3Rpb24oTSl7eD8udW5zdWJzY3JpYmUoKSxmKyssYi5uZXh0KG09TSkscj4wJiZ5KHIpfSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7eD8uY2xvc2VkfHx4Py51bnN1YnNjcmliZSgpLG09bnVsbH0pKSwhZiYmeShhIT1udWxsP3R5cGVvZiBhPT0ibnVtYmVyIj9hOithLXAubm93KCk6cil9KX1mdW5jdGlvbiBnJGEocyl7dGhyb3cgbmV3IFgydChzKX12YXIgWDJ0LHJlZT1nKCgpPT57YzAoKTtZZGUoKTt3cigpO0FsKCk7b3AoKTtvbygpO2xwKCk7WDJ0PWhsKGZ1bmN0aW9uKHMpe3JldHVybiBpKGZ1bmN0aW9uKHQpe3Q9PT12b2lkIDAmJih0PW51bGwpLHModGhpcyksdGhpcy5tZXNzYWdlPSJUaW1lb3V0IGhhcyBvY2N1cnJlZCIsdGhpcy5uYW1lPSJUaW1lb3V0RXJyb3IiLHRoaXMuaW5mbz10fSwiVGltZW91dEVycm9ySW1wbCIpfSk7aShRMnQsInRpbWVvdXQiKTtpKGckYSwidGltZW91dEVycm9yRmFjdG9yeSIpfSk7ZnVuY3Rpb24gWTIocyxlKXtyZXR1cm4gWGEoZnVuY3Rpb24odCxhKXt2YXIgcj0wO3Quc3Vic2NyaWJlKEVhKGEsZnVuY3Rpb24obil7YS5uZXh0KHMuY2FsbChlLG4scisrKSl9KSl9KX12YXIgZ3k9ZygoKT0+e3dyKCk7b28oKTtpKFkyLCJtYXAiKX0pO2Z1bmN0aW9uIHYkYShzLGUpe3JldHVybiBiJGEoZSk/cy5hcHBseSh2b2lkIDAsT3IoW10sT2koZSkpKTpzKGUpfWZ1bmN0aW9uIG9lZShzKXtyZXR1cm4gWTIoZnVuY3Rpb24oZSl7cmV0dXJuIHYkYShzLGUpfSl9dmFyIGIkYSxaZGU9ZygoKT0+e0xzKCk7Z3koKTtiJGE9QXJyYXkuaXNBcnJheTtpKHYkYSwiY2FsbE9yQXBwbHkiKTtpKG9lZSwibWFwT25lT3JNYW55QXJncyIpfSk7dmFyIEoydD1nKCgpPT57fSk7dmFyIGVkdD1nKCgpPT57fSk7ZnVuY3Rpb24gdGR0KHMpe2lmKHMubGVuZ3RoPT09MSl7dmFyIGU9c1swXTtpZih4JGEoZSkpcmV0dXJue2FyZ3M6ZSxrZXlzOm51bGx9O2lmKFMkYShlKSl7dmFyIHQ9ayRhKGUpO3JldHVybnthcmdzOnQubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBlW2FdfSksa2V5czp0fX19cmV0dXJue2FyZ3M6cyxrZXlzOm51bGx9fWZ1bmN0aW9uIFMkYShzKXtyZXR1cm4gcyYmdHlwZW9mIHM9PSJvYmplY3QiJiZ5JGEocyk9PT13JGF9dmFyIHgkYSx5JGEsdyRhLGskYSxhZHQ9ZygoKT0+e3gkYT1BcnJheS5pc0FycmF5LHkkYT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsdyRhPU9iamVjdC5wcm90b3R5cGUsayRhPU9iamVjdC5rZXlzO2kodGR0LCJhcmdzQXJnQXJyYXlPck9iamVjdCIpO2koUyRhLCJpc1BPSk8iKX0pO2Z1bmN0aW9uIHNkdChzLGUpe3JldHVybiBzLnJlZHVjZShmdW5jdGlvbih0LGEscil7cmV0dXJuIHRbYV09ZVtyXSx0fSx7fSl9dmFyIGlkdD1nKCgpPT57aShzZHQsImNyZWF0ZU9iamVjdCIpfSk7ZnVuY3Rpb24gWGRlKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3ZhciB0PUcyKHMpLGE9RDJ0KHMpLHI9dGR0KHMpLG49ci5hcmdzLG89ci5rZXlzO2lmKG4ubGVuZ3RoPT09MClyZXR1cm4gSzIoW10sdCk7dmFyIGw9bmV3IHJhKF8kYShuLHQsbz9mdW5jdGlvbihwKXtyZXR1cm4gc2R0KG8scCl9OlcyKSk7cmV0dXJuIGE/bC5waXBlKG9lZShhKSk6bH1mdW5jdGlvbiBfJGEocyxlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1XMiksZnVuY3Rpb24oYSl7cmR0KGUsZnVuY3Rpb24oKXtmb3IodmFyIHI9cy5sZW5ndGgsbj1uZXcgQXJyYXkociksbz1yLGw9cixwPWkoZnVuY3Rpb24odSl7cmR0KGUsZnVuY3Rpb24oKXt2YXIgYz1LMihzW3VdLGUpLGI9ITE7Yy5zdWJzY3JpYmUoRWEoYSxmdW5jdGlvbih2KXtuW3VdPXYsYnx8KGI9ITAsbC0tKSxsfHxhLm5leHQodChuLnNsaWNlKCkpKX0sZnVuY3Rpb24oKXstLW98fGEuY29tcGxldGUoKX0pKX0sYSl9LCJfbG9vcF8xIiksZD0wO2Q8cjtkKyspcChkKX0sYSl9fWZ1bmN0aW9uIHJkdChzLGUsdCl7cz9Gcih0LHMsZSk6ZSgpfXZhciBvZHQ9ZygoKT0+e3luKCk7YWR0KCk7bXkoKTtNNygpO1pkZSgpO0w3KCk7aWR0KCk7b28oKTtscCgpO2koWGRlLCJjb21iaW5lTGF0ZXN0Iik7aShfJGEsImNvbWJpbmVMYXRlc3RJbml0Iik7aShyZHQsIm1heWJlU2NoZWR1bGUiKX0pO2Z1bmN0aW9uIG5kdChzLGUsdCxhLHIsbixvLGwpe3ZhciBwPVtdLGQ9MCx1PTAsYz0hMSxiPWkoZnVuY3Rpb24oKXtjJiYhcC5sZW5ndGgmJiFkJiZlLmNvbXBsZXRlKCl9LCJjaGVja0NvbXBsZXRlIiksdj1pKGZ1bmN0aW9uKG0pe3JldHVybiBkPGE/eChtKTpwLnB1c2gobSl9LCJvdXRlck5leHQiKSx4PWkoZnVuY3Rpb24obSl7biYmZS5uZXh0KG0pLGQrKzt2YXIgZj0hMTtuaSh0KG0sdSsrKSkuc3Vic2NyaWJlKEVhKGUsZnVuY3Rpb24oeSl7cj8uKHkpLG4/dih5KTplLm5leHQoeSl9LGZ1bmN0aW9uKCl7Zj0hMH0sdm9pZCAwLGZ1bmN0aW9uKCl7aWYoZil0cnl7ZC0tO2Zvcih2YXIgeT1pKGZ1bmN0aW9uKCl7dmFyIE09cC5zaGlmdCgpO28/RnIoZSxvLGZ1bmN0aW9uKCl7cmV0dXJuIHgoTSl9KTp4KE0pfSwiX2xvb3BfMSIpO3AubGVuZ3RoJiZkPGE7KXkoKTtiKCl9Y2F0Y2goTSl7ZS5lcnJvcihNKX19KSl9LCJkb0lubmVyU3ViIik7cmV0dXJuIHMuc3Vic2NyaWJlKEVhKGUsdixmdW5jdGlvbigpe2M9ITAsYigpfSkpLGZ1bmN0aW9uKCl7bD8uKCl9fXZhciBsZHQ9ZygoKT0+e0FsKCk7bHAoKTtvbygpO2kobmR0LCJtZXJnZUludGVybmFscyIpfSk7ZnVuY3Rpb24gajQocyxlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0xLzApLHNhKGUpP2o0KGZ1bmN0aW9uKGEscil7cmV0dXJuIFkyKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIGUoYSxuLHIsbyl9KShuaShzKGEscikpKX0sdCk6KHR5cGVvZiBlPT0ibnVtYmVyIiYmKHQ9ZSksWGEoZnVuY3Rpb24oYSxyKXtyZXR1cm4gbmR0KGEscixzLHQpfSkpfXZhciBieT1nKCgpPT57Z3koKTtBbCgpO3dyKCk7bGR0KCk7cm8oKTtpKGo0LCJtZXJnZU1hcCIpfSk7ZnVuY3Rpb24gbmVlKHMpe3JldHVybiBzPT09dm9pZCAwJiYocz0xLzApLGo0KFcyLHMpfXZhciBsZWU9ZygoKT0+e2J5KCk7TTcoKTtpKG5lZSwibWVyZ2VBbGwiKX0pO2Z1bmN0aW9uIGNlZSgpe3JldHVybiBuZWUoMSl9dmFyIGRlZT1nKCgpPT57bGVlKCk7aShjZWUsImNvbmNhdEFsbCIpfSk7ZnVuY3Rpb24gdWVlKCl7Zm9yKHZhciBzPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXNbZV09YXJndW1lbnRzW2VdO3JldHVybiBjZWUoKShLMihzLEcyKHMpKSl9dmFyIFFkZT1nKCgpPT57ZGVlKCk7TDcoKTtteSgpO2kodWVlLCJjb25jYXQiKX0pO3ZhciBjZHQ9ZygoKT0+e30pO3ZhciBkZHQ9ZygoKT0+e30pO3ZhciB1ZHQ9ZygoKT0+e30pO2Z1bmN0aW9uIFY0KHMsZSx0LGEpe2lmKHNhKHQpJiYoYT10LHQ9dm9pZCAwKSxhKXJldHVybiBWNChzLGUsdCkucGlwZShvZWUoYSkpO3ZhciByPU9pKEQkYShzKT96JGEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gc1tsXShlLHAsdCl9fSk6VCRhKHMpP00kYS5tYXAocGR0KHMsZSkpOiQkYShzKT9DJGEubWFwKHBkdChzLGUpKTpbXSwyKSxuPXJbMF0sbz1yWzFdO2lmKCFuJiZFNyhzKSlyZXR1cm4gajQoZnVuY3Rpb24obCl7cmV0dXJuIFY0KGwsZSx0KX0pKG5pKHMpKTtpZighbil0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGV2ZW50IHRhcmdldCIpO3JldHVybiBuZXcgcmEoZnVuY3Rpb24obCl7dmFyIHA9aShmdW5jdGlvbigpe2Zvcih2YXIgZD1bXSx1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKylkW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gbC5uZXh0KDE8ZC5sZW5ndGg/ZDpkWzBdKX0sImhhbmRsZXIiKTtyZXR1cm4gbihwKSxmdW5jdGlvbigpe3JldHVybiBvKHApfX0pfWZ1bmN0aW9uIHBkdChzLGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIHNbdF0oZSxhKX19fWZ1bmN0aW9uIFQkYShzKXtyZXR1cm4gc2Eocy5hZGRMaXN0ZW5lcikmJnNhKHMucmVtb3ZlTGlzdGVuZXIpfWZ1bmN0aW9uICQkYShzKXtyZXR1cm4gc2Eocy5vbikmJnNhKHMub2ZmKX1mdW5jdGlvbiBEJGEocyl7cmV0dXJuIHNhKHMuYWRkRXZlbnRMaXN0ZW5lcikmJnNhKHMucmVtb3ZlRXZlbnRMaXN0ZW5lcil9dmFyIE0kYSx6JGEsQyRhLGhkdD1nKCgpPT57THMoKTtBbCgpO3luKCk7YnkoKTtHSigpO3JvKCk7WmRlKCk7TSRhPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLHokYT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sQyRhPVsib24iLCJvZmYiXTtpKFY0LCJmcm9tRXZlbnQiKTtpKHBkdCwidG9Db21tb25IYW5kbGVyUmVnaXN0cnkiKTtpKFQkYSwiaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIiKTtpKCQkYSwiaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlciIpO2koRCRhLCJpc0V2ZW50VGFyZ2V0Iil9KTt2YXIgZmR0PWcoKCk9Pnt9KTt2YXIgbWR0PWcoKCk9Pnt9KTt2YXIgZ2R0PWcoKCk9Pnt9KTtmdW5jdGlvbiB2eShzLGUsdCl7cz09PXZvaWQgMCYmKHM9MCksdD09PXZvaWQgMCYmKHQ9VGRlKTt2YXIgYT0tMTtyZXR1cm4gZSE9bnVsbCYmKFdKKGUpP3Q9ZTphPWUpLG5ldyByYShmdW5jdGlvbihyKXt2YXIgbj1pZWUocyk/K3MtdC5ub3coKTpzO248MCYmKG49MCk7dmFyIG89MDtyZXR1cm4gdC5zY2hlZHVsZShmdW5jdGlvbigpe3IuY2xvc2VkfHwoci5uZXh0KG8rKyksMDw9YT90aGlzLnNjaGVkdWxlKHZvaWQgMCxhKTpyLmNvbXBsZXRlKCkpfSxuKX0pfXZhciBwZWU9ZygoKT0+e3luKCk7YzAoKTtJZGUoKTtZZGUoKTtpKHZ5LCJ0aW1lciIpfSk7ZnVuY3Rpb24gSmRlKHMsZSl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLGU9PT12b2lkIDAmJihlPWZsKSxzPDAmJihzPTApLHZ5KHMscyxlKX12YXIgYmR0PWcoKCk9PntjMCgpO3BlZSgpO2koSmRlLCJpbnRlcnZhbCIpfSk7dmFyIHZkdD1nKCgpPT57fSk7ZnVuY3Rpb24gTCRhKCl7cmV0dXJuIHhkdH12YXIgeGR0LGUwZT1nKCgpPT57eW4oKTtPNCgpO3hkdD1uZXcgcmEoeWMpO2koTCRhLCJuZXZlciIpfSk7dmFyIHlkdD1nKCgpPT57fSk7dmFyIHdkdD1nKCgpPT57fSk7ZnVuY3Rpb24gaGVlKHMsZSl7cmV0dXJuIFhhKGZ1bmN0aW9uKHQsYSl7dmFyIHI9MDt0LnN1YnNjcmliZShFYShhLGZ1bmN0aW9uKG4pe3JldHVybiBzLmNhbGwoZSxuLHIrKykmJmEubmV4dChuKX0pKX0pfXZhciB0MGU9ZygoKT0+e3dyKCk7b28oKTtpKGhlZSwiZmlsdGVyIil9KTt2YXIga2R0PWcoKCk9Pnt9KTt2YXIgU2R0PWcoKCk9Pnt9KTt2YXIgX2R0PWcoKCk9Pnt9KTt2YXIgTWR0PWcoKCk9Pnt9KTt2YXIgemR0PWcoKCk9Pnt9KTt2YXIgQ2R0PWcoKCk9Pnt9KTt2YXIgYTBlPWcoKCk9Pnt9KTt2YXIgczBlPWcoKCk9Pnt9KTtmdW5jdGlvbiBmZWUocyl7cmV0dXJuIFhhKGZ1bmN0aW9uKGUsdCl7dmFyIGE9W107cmV0dXJuIGUuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24ocil7cmV0dXJuIGEucHVzaChyKX0sZnVuY3Rpb24oKXt0Lm5leHQoYSksdC5jb21wbGV0ZSgpfSkpLG5pKHMpLnN1YnNjcmliZShFYSh0LGZ1bmN0aW9uKCl7dmFyIHI9YTthPVtdLHQubmV4dChyKX0seWMpKSxmdW5jdGlvbigpe2E9bnVsbH19KX12YXIgaTBlPWcoKCk9Pnt3cigpO080KCk7b28oKTtBbCgpO2koZmVlLCJidWZmZXIiKX0pO2Z1bmN0aW9uIG1lZShzLGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1udWxsKSxlPWU/P3MsWGEoZnVuY3Rpb24odCxhKXt2YXIgcj1bXSxuPTA7dC5zdWJzY3JpYmUoRWEoYSxmdW5jdGlvbihvKXt2YXIgbCxwLGQsdSxjPW51bGw7bisrJWU9PT0wJiZyLnB1c2goW10pO3RyeXtmb3IodmFyIGI9Vm8ociksdj1iLm5leHQoKTshdi5kb25lO3Y9Yi5uZXh0KCkpe3ZhciB4PXYudmFsdWU7eC5wdXNoKG8pLHM8PXgubGVuZ3RoJiYoYz1jPz9bXSxjLnB1c2goeCkpfX1jYXRjaCh5KXtsPXtlcnJvcjp5fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYocD1iLnJldHVybikmJnAuY2FsbChiKX1maW5hbGx5e2lmKGwpdGhyb3cgbC5lcnJvcn19aWYoYyl0cnl7Zm9yKHZhciBtPVZvKGMpLGY9bS5uZXh0KCk7IWYuZG9uZTtmPW0ubmV4dCgpKXt2YXIgeD1mLnZhbHVlO20xKHIseCksYS5uZXh0KHgpfX1jYXRjaCh5KXtkPXtlcnJvcjp5fX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYodT1tLnJldHVybikmJnUuY2FsbChtKX1maW5hbGx5e2lmKGQpdGhyb3cgZC5lcnJvcn19fSxmdW5jdGlvbigpe3ZhciBvLGw7dHJ5e2Zvcih2YXIgcD1WbyhyKSxkPXAubmV4dCgpOyFkLmRvbmU7ZD1wLm5leHQoKSl7dmFyIHU9ZC52YWx1ZTthLm5leHQodSl9fWNhdGNoKGMpe289e2Vycm9yOmN9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihsPXAucmV0dXJuKSYmbC5jYWxsKHApfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1hLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3I9bnVsbH0pKX0pfXZhciByMGU9ZygoKT0+e0xzKCk7d3IoKTtvbygpO3c3KCk7aShtZWUsImJ1ZmZlckNvdW50Iil9KTtmdW5jdGlvbiBnZWUocyl7Zm9yKHZhciBlLHQsYT1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylhW3ItMV09YXJndW1lbnRzW3JdO3ZhciBuPShlPUcyKGEpKSE9PW51bGwmJmUhPT12b2lkIDA/ZTpmbCxvPSh0PWFbMF0pIT09bnVsbCYmdCE9PXZvaWQgMD90Om51bGwsbD1hWzFdfHwxLzA7cmV0dXJuIFhhKGZ1bmN0aW9uKHAsZCl7dmFyIHU9W10sYz0hMSxiPWkoZnVuY3Rpb24obSl7dmFyIGY9bS5idWZmZXIseT1tLnN1YnM7eS51bnN1YnNjcmliZSgpLG0xKHUsbSksZC5uZXh0KGYpLGMmJnYoKX0sImVtaXQiKSx2PWkoZnVuY3Rpb24oKXtpZih1KXt2YXIgbT1uZXcgdHI7ZC5hZGQobSk7dmFyIGY9W10seT17YnVmZmVyOmYsc3ViczptfTt1LnB1c2goeSksRnIobSxuLGZ1bmN0aW9uKCl7cmV0dXJuIGIoeSl9LHMpfX0sInN0YXJ0QnVmZmVyIik7byE9PW51bGwmJm8+PTA/RnIoZCxuLHYsbywhMCk6Yz0hMCx2KCk7dmFyIHg9RWEoZCxmdW5jdGlvbihtKXt2YXIgZix5LE09dS5zbGljZSgpO3RyeXtmb3IodmFyIHo9Vm8oTSksTj16Lm5leHQoKTshTi5kb25lO049ei5uZXh0KCkpe3ZhciBDPU4udmFsdWUsXz1DLmJ1ZmZlcjtfLnB1c2gobSksbDw9Xy5sZW5ndGgmJmIoQyl9fWNhdGNoKE8pe2Y9e2Vycm9yOk99fWZpbmFsbHl7dHJ5e04mJiFOLmRvbmUmJih5PXoucmV0dXJuKSYmeS5jYWxsKHopfWZpbmFsbHl7aWYoZil0aHJvdyBmLmVycm9yfX19LGZ1bmN0aW9uKCl7Zm9yKDt1Py5sZW5ndGg7KWQubmV4dCh1LnNoaWZ0KCkuYnVmZmVyKTt4Py51bnN1YnNjcmliZSgpLGQuY29tcGxldGUoKSxkLnVuc3Vic2NyaWJlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiB1PW51bGx9KTtwLnN1YnNjcmliZSh4KX0pfXZhciBvMGU9ZygoKT0+e0xzKCk7VTIoKTt3cigpO29vKCk7dzcoKTtjMCgpO0w3KCk7bHAoKTtpKGdlZSwiYnVmZmVyVGltZSIpfSk7dmFyIG4wZT1nKCgpPT57fSk7dmFyIGwwZT1nKCgpPT57fSk7dmFyIGMwZT1nKCgpPT57fSk7dmFyIGQwZT1nKCgpPT57fSk7dmFyIHUwZT1nKCgpPT57fSk7dmFyIHAwZT1nKCgpPT57fSk7dmFyIGgwZT1nKCgpPT57fSk7dmFyIFRkdD1nKCgpPT57fSk7dmFyIGYwZT1nKCgpPT57fSk7dmFyIG0wZT1nKCgpPT57fSk7dmFyIGcwZT1nKCgpPT57fSk7dmFyICRkdD1nKCgpPT57fSk7dmFyIGIwZT1nKCgpPT57fSk7dmFyIHYwZT1nKCgpPT57fSk7dmFyIHgwZT1nKCgpPT57fSk7ZnVuY3Rpb24gYmVlKHMpe3JldHVybiBYYShmdW5jdGlvbihlLHQpe3ZhciBhPSExLHI9bnVsbCxuPW51bGwsbz1pKGZ1bmN0aW9uKCl7aWYobj8udW5zdWJzY3JpYmUoKSxuPW51bGwsYSl7YT0hMTt2YXIgbD1yO3I9bnVsbCx0Lm5leHQobCl9fSwiZW1pdCIpO2Uuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24obCl7bj8udW5zdWJzY3JpYmUoKSxhPSEwLHI9bCxuPUVhKHQsbyx5YyksbmkocyhsKSkuc3Vic2NyaWJlKG4pfSxmdW5jdGlvbigpe28oKSx0LmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3I9bj1udWxsfSkpfSl9dmFyIHkwZT1nKCgpPT57d3IoKTtPNCgpO29vKCk7QWwoKTtpKGJlZSwiZGVib3VuY2UiKX0pO2Z1bmN0aW9uIHZlZShzLGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1mbCksWGEoZnVuY3Rpb24odCxhKXt2YXIgcj1udWxsLG49bnVsbCxvPW51bGwsbD1pKGZ1bmN0aW9uKCl7aWYocil7ci51bnN1YnNjcmliZSgpLHI9bnVsbDt2YXIgZD1uO249bnVsbCxhLm5leHQoZCl9fSwiZW1pdCIpO2Z1bmN0aW9uIHAoKXt2YXIgZD1vK3MsdT1lLm5vdygpO2lmKHU8ZCl7cj10aGlzLnNjaGVkdWxlKHZvaWQgMCxkLXUpLGEuYWRkKHIpO3JldHVybn1sKCl9aShwLCJlbWl0V2hlbklkbGUiKSx0LnN1YnNjcmliZShFYShhLGZ1bmN0aW9uKGQpe249ZCxvPWUubm93KCkscnx8KHI9ZS5zY2hlZHVsZShwLHMpLGEuYWRkKHIpKX0sZnVuY3Rpb24oKXtsKCksYS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtuPXI9bnVsbH0pKX0pfXZhciB3MGU9ZygoKT0+e2MwKCk7d3IoKTtvbygpO2kodmVlLCJkZWJvdW5jZVRpbWUiKX0pO3ZhciBrMGU9ZygoKT0+e30pO3ZhciBTMGU9ZygoKT0+e30pO3ZhciBfMGU9ZygoKT0+e30pO3ZhciBNMGU9ZygoKT0+e30pO3ZhciB6MGU9ZygoKT0+e30pO3ZhciBDMGU9ZygoKT0+e30pO3ZhciBUMGU9ZygoKT0+e30pO3ZhciAkMGU9ZygoKT0+e30pO2Z1bmN0aW9uIEE3KHMsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPVcyKSxzPXM/P0UkYSxYYShmdW5jdGlvbih0LGEpe3ZhciByLG49ITA7dC5zdWJzY3JpYmUoRWEoYSxmdW5jdGlvbihvKXt2YXIgbD1lKG8pOyhufHwhcyhyLGwpKSYmKG49ITEscj1sLGEubmV4dChvKSl9KSl9KX1mdW5jdGlvbiBFJGEocyxlKXtyZXR1cm4gcz09PWV9dmFyIEQwZT1nKCgpPT57TTcoKTt3cigpO29vKCk7aShBNywiZGlzdGluY3RVbnRpbENoYW5nZWQiKTtpKEUkYSwiZGVmYXVsdENvbXBhcmUiKX0pO3ZhciBMMGU9ZygoKT0+e30pO3ZhciBFMGU9ZygoKT0+e30pO3ZhciBQMGU9ZygoKT0+e30pO3ZhciBJMGU9ZygoKT0+e30pO3ZhciBBMGU9ZygoKT0+e30pO3ZhciBOMGU9ZygoKT0+e30pO3ZhciBSMGU9ZygoKT0+e30pO3ZhciBPMGU9ZygoKT0+e30pO3ZhciBGMGU9ZygoKT0+e30pO3ZhciBCMGU9ZygoKT0+e30pO3ZhciBIMGU9ZygoKT0+e30pO3ZhciBxMGU9ZygoKT0+e30pO3ZhciBqMGU9ZygoKT0+e30pO3ZhciBWMGU9ZygoKT0+e30pO3ZhciBVMGU9ZygoKT0+e30pO3ZhciBXMGU9ZygoKT0+e30pO3ZhciBHMGU9ZygoKT0+e30pO3ZhciBLMGU9ZygoKT0+e30pO3ZhciBZMGU9ZygoKT0+e30pO3ZhciBaMGU9ZygoKT0+e30pO3ZhciBYMGU9ZygoKT0+e30pO3ZhciBRMGU9ZygoKT0+e30pO3ZhciBEZHQ9ZygoKT0+e30pO3ZhciBKMGU9ZygoKT0+e30pO3ZhciBldWU9ZygoKT0+e30pO3ZhciB0dWU9ZygoKT0+e30pO3ZhciBhdWU9ZygoKT0+e30pO3ZhciBzdWU9ZygoKT0+e30pO3ZhciBpdWU9ZygoKT0+e30pO3ZhciBydWU9ZygoKT0+e30pO3ZhciBvdWU9ZygoKT0+e30pO3ZhciBudWU9ZygoKT0+e30pO3ZhciBsdWU9ZygoKT0+e30pO3ZhciBjdWU9ZygoKT0+e30pO3ZhciBkdWU9ZygoKT0+e30pO3ZhciB1dWU9ZygoKT0+e30pO3ZhciBwdWU9ZygoKT0+e30pO3ZhciBodWU9ZygoKT0+e30pO3ZhciBmdWU9ZygoKT0+e30pO3ZhciBtdWU9ZygoKT0+e30pO3ZhciBndWU9ZygoKT0+e30pO3ZhciBidWU9ZygoKT0+e30pO2Z1bmN0aW9uIHhlZShzKXtzPT09dm9pZCAwJiYocz17fSk7dmFyIGU9cy5jb25uZWN0b3IsdD1lPT09dm9pZCAwP2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyBVb306ZSxhPXMucmVzZXRPbkVycm9yLHI9YT09PXZvaWQgMD8hMDphLG49cy5yZXNldE9uQ29tcGxldGUsbz1uPT09dm9pZCAwPyEwOm4sbD1zLnJlc2V0T25SZWZDb3VudFplcm8scD1sPT09dm9pZCAwPyEwOmw7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciB1LGMsYix2PTAseD0hMSxtPSExLGY9aShmdW5jdGlvbigpe2M/LnVuc3Vic2NyaWJlKCksYz12b2lkIDB9LCJjYW5jZWxSZXNldCIpLHk9aShmdW5jdGlvbigpe2YoKSx1PWI9dm9pZCAwLHg9bT0hMX0sInJlc2V0IiksTT1pKGZ1bmN0aW9uKCl7dmFyIHo9dTt5KCksej8udW5zdWJzY3JpYmUoKX0sInJlc2V0QW5kVW5zdWJzY3JpYmUiKTtyZXR1cm4gWGEoZnVuY3Rpb24oeixOKXt2KyssIW0mJiF4JiZmKCk7dmFyIEM9Yj1iPz90KCk7Ti5hZGQoZnVuY3Rpb24oKXt2LS0sdj09PTAmJiFtJiYheCYmKGM9dnVlKE0scCkpfSksQy5zdWJzY3JpYmUoTiksIXUmJnY+MCYmKHU9bmV3IG5wKHtuZXh0OmkoZnVuY3Rpb24oXyl7cmV0dXJuIEMubmV4dChfKX0sIm5leHQiKSxlcnJvcjppKGZ1bmN0aW9uKF8pe209ITAsZigpLGM9dnVlKHkscixfKSxDLmVycm9yKF8pfSwiZXJyb3IiKSxjb21wbGV0ZTppKGZ1bmN0aW9uKCl7eD0hMCxmKCksYz12dWUoeSxvKSxDLmNvbXBsZXRlKCl9LCJjb21wbGV0ZSIpfSksbmkoeikuc3Vic2NyaWJlKHUpKX0pKGQpfX1mdW5jdGlvbiB2dWUocyxlKXtmb3IodmFyIHQ9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspdFthLTJdPWFyZ3VtZW50c1thXTtpZihlPT09ITApe3MoKTtyZXR1cm59aWYoZSE9PSExKXt2YXIgcj1uZXcgbnAoe25leHQ6aShmdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoKSxzKCl9LCJuZXh0Iil9KTtyZXR1cm4gbmkoZS5hcHBseSh2b2lkIDAsT3IoW10sT2kodCkpKSkuc3Vic2NyaWJlKHIpfX12YXIgeWVlPWcoKCk9PntMcygpO0FsKCk7ejcoKTtueSgpO3dyKCk7aSh4ZWUsInNoYXJlIik7aSh2dWUsImhhbmRsZVJlc2V0Iil9KTtmdW5jdGlvbiB3ZWUocyxlLHQpe3ZhciBhLHIsbixvLGw9ITE7cmV0dXJuIHMmJnR5cGVvZiBzPT0ib2JqZWN0Ij8oYT1zLmJ1ZmZlclNpemUsbz1hPT09dm9pZCAwPzEvMDphLHI9cy53aW5kb3dUaW1lLGU9cj09PXZvaWQgMD8xLzA6cixuPXMucmVmQ291bnQsbD1uPT09dm9pZCAwPyExOm4sdD1zLnNjaGVkdWxlcik6bz1zPz8xLzAseGVlKHtjb25uZWN0b3I6aShmdW5jdGlvbigpe3JldHVybiBuZXcgVDcobyxlLHQpfSwiY29ubmVjdG9yIikscmVzZXRPbkVycm9yOiEwLHJlc2V0T25Db21wbGV0ZTohMSxyZXNldE9uUmVmQ291bnRaZXJvOmx9KX12YXIgeHVlPWcoKCk9Pnt3ZGUoKTt5ZWUoKTtpKHdlZSwic2hhcmVSZXBsYXkiKX0pO3ZhciB5dWU9ZygoKT0+e30pO3ZhciB3dWU9ZygoKT0+e30pO3ZhciBrdWU9ZygoKT0+e30pO3ZhciBTdWU9ZygoKT0+e30pO3ZhciBfdWU9ZygoKT0+e30pO2Z1bmN0aW9uIGtlZSgpe2Zvcih2YXIgcz1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylzW2VdPWFyZ3VtZW50c1tlXTt2YXIgdD1HMihzKTtyZXR1cm4gWGEoZnVuY3Rpb24oYSxyKXsodD91ZWUocyxhLHQpOnVlZShzLGEpKS5zdWJzY3JpYmUocil9KX12YXIgTXVlPWcoKCk9PntRZGUoKTtMNygpO3dyKCk7aShrZWUsInN0YXJ0V2l0aCIpfSk7dmFyIHp1ZT1nKCgpPT57fSk7dmFyIEN1ZT1nKCgpPT57fSk7dmFyIFR1ZT1nKCgpPT57fSk7dmFyICR1ZT1nKCgpPT57fSk7ZnVuY3Rpb24gTjcocyl7cmV0dXJuIFhhKGZ1bmN0aW9uKGUsdCl7bmkocykuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24oKXtyZXR1cm4gdC5jb21wbGV0ZSgpfSx5YykpLCF0LmNsb3NlZCYmZS5zdWJzY3JpYmUodCl9KX12YXIgRHVlPWcoKCk9Pnt3cigpO29vKCk7QWwoKTtPNCgpO2koTjcsInRha2VVbnRpbCIpfSk7dmFyIEx1ZT1nKCgpPT57fSk7dmFyIEV1ZT1nKCgpPT57fSk7ZnVuY3Rpb24gU2VlKHMsZSl7cmV0dXJuIFhhKGZ1bmN0aW9uKHQsYSl7dmFyIHI9ZT8/e30sbj1yLmxlYWRpbmcsbz1uPT09dm9pZCAwPyEwOm4sbD1yLnRyYWlsaW5nLHA9bD09PXZvaWQgMD8hMTpsLGQ9ITEsdT1udWxsLGM9bnVsbCxiPSExLHY9aShmdW5jdGlvbigpe2M/LnVuc3Vic2NyaWJlKCksYz1udWxsLHAmJihmKCksYiYmYS5jb21wbGV0ZSgpKX0sImVuZFRocm90dGxpbmciKSx4PWkoZnVuY3Rpb24oKXtjPW51bGwsYiYmYS5jb21wbGV0ZSgpfSwiY2xlYW51cFRocm90dGxpbmciKSxtPWkoZnVuY3Rpb24oeSl7cmV0dXJuIGM9bmkocyh5KSkuc3Vic2NyaWJlKEVhKGEsdix4KSl9LCJzdGFydFRocm90dGxlIiksZj1pKGZ1bmN0aW9uKCl7aWYoZCl7ZD0hMTt2YXIgeT11O3U9bnVsbCxhLm5leHQoeSksIWImJm0oeSl9fSwic2VuZCIpO3Quc3Vic2NyaWJlKEVhKGEsZnVuY3Rpb24oeSl7ZD0hMCx1PXksIShjJiYhYy5jbG9zZWQpJiYobz9mKCk6bSh5KSl9LGZ1bmN0aW9uKCl7Yj0hMCwhKHAmJmQmJmMmJiFjLmNsb3NlZCkmJmEuY29tcGxldGUoKX0pKX0pfXZhciBfZWU9ZygoKT0+e3dyKCk7b28oKTtBbCgpO2koU2VlLCJ0aHJvdHRsZSIpfSk7ZnVuY3Rpb24gTWVlKHMsZSx0KXtlPT09dm9pZCAwJiYoZT1mbCk7dmFyIGE9dnkocyxlKTtyZXR1cm4gU2VlKGZ1bmN0aW9uKCl7cmV0dXJuIGF9LHQpfXZhciBQdWU9ZygoKT0+e2MwKCk7X2VlKCk7cGVlKCk7aShNZWUsInRocm90dGxlVGltZSIpfSk7ZnVuY3Rpb24gRWR0KHMpe3JldHVybiBzPT09dm9pZCAwJiYocz1mbCksWGEoZnVuY3Rpb24oZSx0KXt2YXIgYT1zLm5vdygpO2Uuc3Vic2NyaWJlKEVhKHQsZnVuY3Rpb24ocil7dmFyIG49cy5ub3coKSxvPW4tYTthPW4sdC5uZXh0KG5ldyBMZHQocixvKSl9KSl9KX12YXIgTGR0LEl1ZT1nKCgpPT57YzAoKTt3cigpO29vKCk7aShFZHQsInRpbWVJbnRlcnZhbCIpO0xkdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGUsdCl7dGhpcy52YWx1ZT1lLHRoaXMuaW50ZXJ2YWw9dH1yZXR1cm4gaShzLCJUaW1lSW50ZXJ2YWwiKSxzfSkoKX0pO3ZhciBBdWU9ZygoKT0+e30pO3ZhciBOdWU9ZygoKT0+e30pO3ZhciBSdWU9ZygoKT0+e30pO3ZhciBPdWU9ZygoKT0+e30pO3ZhciBGdWU9ZygoKT0+e30pO3ZhciBCdWU9ZygoKT0+e30pO3ZhciBIdWU9ZygoKT0+e30pO3ZhciBxdWU9ZygoKT0+e30pO3ZhciBqdWU9ZygoKT0+e30pO3ZhciBQZHQ9ZygoKT0+e30pO3ZhciBWdWU9ZygoKT0+e30pO3ZhciBSNz1nKCgpPT57eW4oKTtpMnQoKTtseSgpO24ydCgpO3o3KCk7bDJ0KCk7d2RlKCk7ZDJ0KCk7eDJ0KCk7YzAoKTtTMnQoKTtDMnQoKTskMnQoKTt6ZGUoKTtVMigpO255KCk7ajJ0KCk7aGRlKCk7TzQoKTtNNygpO1YydCgpO1cydCgpO0cydCgpO0sydCgpO1UydCgpO1kydCgpO3ZkZSgpO1oydCgpO3JlZSgpO3JkZSgpO0oydCgpO2VkdCgpO29kdCgpO1FkZSgpO2RkdCgpO2NkdCgpO1VKKCk7dWR0KCk7bXkoKTtoZHQoKTtmZHQoKTttZHQoKTtnZHQoKTtiZHQoKTt2ZHQoKTtlMGUoKTtVZGUoKTt5ZHQoKTt3ZHQoKTtrZHQoKTtTZHQoKTtfZHQoKTtHZGUoKTtwZWUoKTtNZHQoKTt6ZHQoKTtWZGUoKTtVSigpO2UwZSgpO0NkdCgpO2s3KCk7YTBlKCk7czBlKCk7aTBlKCk7cjBlKCk7bzBlKCk7bjBlKCk7bDBlKCk7YzBlKCk7aDBlKCk7cDBlKCk7ZjBlKCk7ZGVlKCk7bTBlKCk7ZzBlKCk7YjBlKCk7djBlKCk7eDBlKCk7eTBlKCk7dzBlKCk7azBlKCk7QzBlKCk7ejBlKCk7VDBlKCk7JDBlKCk7RDBlKCk7TDBlKCk7UDBlKCk7STBlKCk7QTBlKCk7TzBlKCk7UjBlKCk7TjBlKCk7RjBlKCk7dDBlKCk7QjBlKCk7SDBlKCk7cTBlKCk7ajBlKCk7VjBlKCk7XzBlKCk7VTBlKCk7RzBlKCk7Z3koKTtNMGUoKTtLMGUoKTtZMGUoKTtsZWUoKTtaMGUoKTtieSgpO1gwZSgpO1EwZSgpO0owZSgpO2V1ZSgpO3R1ZSgpO2h5KCk7YXVlKCk7c3VlKCk7aXVlKCk7cnVlKCk7b3VlKCk7bnVlKCk7bHVlKCk7Y3VlKCk7ZDBlKCk7ZHVlKCk7dXVlKCk7cHVlKCk7aHVlKCk7cUooKTtmdWUoKTttdWUoKTtndWUoKTtidWUoKTt5ZWUoKTt4dWUoKTt5dWUoKTt3dWUoKTtrdWUoKTtTdWUoKTtfdWUoKTtNdWUoKTtmeSgpO0N1ZSgpO3p1ZSgpO1R1ZSgpOyR1ZSgpO1MwZSgpO1cwZSgpO0R1ZSgpO0x1ZSgpO0V1ZSgpO19lZSgpO1B1ZSgpO0UwZSgpO0l1ZSgpO3JlZSgpO0F1ZSgpO051ZSgpO3UwZSgpO1J1ZSgpO091ZSgpO0Z1ZSgpO0J1ZSgpO0h1ZSgpO3F1ZSgpO2p1ZSgpO1Z1ZSgpfSk7dmFyIElkdD1nKCgpPT57fSk7dmFyIEFkdD1nKCgpPT57fSk7dmFyIE5kdD1nKCgpPT57YTBlKCk7czBlKCk7aTBlKCk7cjBlKCk7bzBlKCk7bjBlKCk7bDBlKCk7YzBlKCk7aDBlKCk7cDBlKCk7VGR0KCk7ZjBlKCk7JGR0KCk7ZGVlKCk7bTBlKCk7ZzBlKCk7YjBlKCk7djBlKCk7eDBlKCk7eTBlKCk7dzBlKCk7azBlKCk7QzBlKCk7ejBlKCk7VDBlKCk7JDBlKCk7RDBlKCk7TDBlKCk7UDBlKCk7STBlKCk7QTBlKCk7TzBlKCk7UjBlKCk7TjBlKCk7RjBlKCk7dDBlKCk7QjBlKCk7SDBlKCk7cTBlKCk7ajBlKCk7VjBlKCk7XzBlKCk7VTBlKCk7RzBlKCk7Z3koKTtNMGUoKTtLMGUoKTtZMGUoKTtEZHQoKTtsZWUoKTtaMGUoKTtieSgpO1gwZSgpO1EwZSgpO0owZSgpO2V1ZSgpO3R1ZSgpO2h5KCk7YXVlKCk7c3VlKCk7SWR0KCk7aXVlKCk7cnVlKCk7b3VlKCk7bnVlKCk7bHVlKCk7QWR0KCk7Y3VlKCk7ZDBlKCk7ZHVlKCk7dXVlKCk7cHVlKCk7aHVlKCk7cUooKTtmdWUoKTttdWUoKTtndWUoKTtidWUoKTt5ZWUoKTt4dWUoKTt5dWUoKTt3dWUoKTtrdWUoKTtTdWUoKTtfdWUoKTtNdWUoKTtmeSgpO0N1ZSgpO3p1ZSgpO1R1ZSgpOyR1ZSgpO1MwZSgpO1cwZSgpO0R1ZSgpO0x1ZSgpO0V1ZSgpO19lZSgpO1B1ZSgpO0UwZSgpO0l1ZSgpO3JlZSgpO0F1ZSgpO051ZSgpO3UwZSgpO1J1ZSgpO091ZSgpO0Z1ZSgpO0J1ZSgpO0h1ZSgpO3F1ZSgpO1BkdCgpO2p1ZSgpO1Z1ZSgpfSk7dmFyIE83PXt9O3l0KE83LHtPYnNlcnZhYmxlOigpPT5yYSxSZXBsYXlTdWJqZWN0OigpPT5UNyxTdWJqZWN0OigpPT5VbyxTdWJzY3JpcHRpb246KCk9PnRyLGZyb206KCk9PksyLGZyb21FdmVudDooKT0+VjQsb2Y6KCk9PnE0LG9wczooKT0+Y0xhfSk7dmFyIGNMYSx6ZWU9ZygoKT0+e1I3KCk7TmR0KCk7Y0xhPXtidWZmZXI6ZmVlLGJ1ZmZlckNvdW50Om1lZSxidWZmZXJUaW1lOmdlZSxkZWJvdW5jZTpiZWUsZGVib3VuY2VUaW1lOnZlZSxmaWx0ZXI6aGVlLG1hcDpZMixzdGFydFdpdGg6a2VlLHRha2VVbnRpbDpONyx0aHJvdHRsZVRpbWU6TWVlfX0pO3ZhciBVdWUsUmR0PWcoKCk9PntOSigpO3plZSgpO1V1ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlbWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudChlLHQpe2xldCBhPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQocj0+ci5ldmVudFJlZj09PWUmJnIuZXZlbnQ9PT10KTtpZihhKXJldHVybiBhLnN1YmplY3Q7e2xldCByPVY0KGUsdCksbj1uZXcgVW87ci5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjplLGV2ZW50OnR9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KGUsdCl7bGV0IGE9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKHI9PnIuZXZlbnRSZWY9PT1lJiZyLmV2ZW50PT09dCk7aWYoYSlyZXR1cm4gYS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgVW8sZXZlbnRSZWY6ZSxldmVudDp0fTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBXdWUsT2R0PWcoKCk9PntOSigpO3plZSgpO1d1ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlSW50YWtlIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnM9e25leHQ6aShlPT57fSwibmV4dCIpLGNvbXBsZXRlOmkoZT0+e30sImNvbXBsZXRlIil9LHRoaXMuZ2VuZXJhdG9yPW51bGwsdGhpcy5idWZmZXJlZD0hMSx0aGlzLnBheWxvYWRCdWZmZXI9W10sdGhpcy5vYnNlcnZhYmxlPW5ldyByYShlPT57dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQ9KC4uLnQpPT5lLm5leHQodCksdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlPSgpPT4odGhpcy5jb21wbGV0ZWREZWZmZXJlZC5yZXNvbHZlKCksZS5jb21wbGV0ZSgpKX0pLHRoaXMuY29tcGxldGVkRGVmZmVyZWQ9bXQuZGVmZXIoKSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmZlcmVkLnByb21pc2V9c2V0T2JzZXJ2YWJsZShlKXt0aGlzLm9ic2VydmFibGU9ZX1wdXNoKGUpe3RoaXMuYnVmZmVyZWQ/dGhpcy5wYXlsb2FkQnVmZmVyLnB1c2goZSk6dGhpcy5pbnRlcm5hbFB1c2goZSl9cHVzaE1hbnkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5wdXNoKHQpfXNldEdlbmVyYXRvcihlKXt0aGlzLmdlbmVyYXRvcj1lfW1ha2VCdWZmZXJlZCgpe3RoaXMuYnVmZmVyZWQ9ITB9c3Vic2NyaWJlKC4uLmUpe3JldHVybiB0aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKC4uLmUpfXJlcXVlc3QoZSl7aWYoZSE9PTApZm9yKGxldCB0PTA7dCE9PWU7dCsrKWlmKHRoaXMucGF5bG9hZEJ1ZmZlci5sZW5ndGg+MCl0aGlzLmludGVybmFsUHVzaCh0aGlzLnBheWxvYWRCdWZmZXIuc2hpZnQoKSk7ZWxzZXtsZXQgYT10aGlzLmdlbmVyYXRvci5uZXh0KCk7dGhpcy5pbnRlcm5hbFB1c2goYS52YWx1ZSl9fXNpZ25hbENvbXBsZXRlKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlKCl9aW50ZXJuYWxQdXNoKGUpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0KGUpfX19KTtmdW5jdGlvbiBkTGEocyl7cmV0dXJuIG5ldyByYShlPT57bGV0IHQ9aSgoKT0+cy5wYXVzZSgpLCJwYXVzZVN0cmVhbSIpLGE9aSgoKT0+cHJvY2Vzcy5uZXh0VGljaygoKT0+cy5yZXN1bWUoKSksInJlc3VtZVN0cmVhbSIpLHI9aShuPT57dCgpLGUubmV4dChuKSxhKCl9LCJvbkRhdGEiKTtyZXR1cm4gcy5vbigiZGF0YSIscikscy5vbigiZXJyb3IiLG49PmUuZXJyb3IobikpLHMub24oImVuZCIsKCk9PmUuY29tcGxldGUoKSkscy5vbigiY2xvc2UiLCgpPT5lLmNvbXBsZXRlKCkpLCgpPT57cy5yZW1vdmVMaXN0ZW5lcigiZGF0YSIscikscy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGUuZXJyb3IpLHMucmVtb3ZlTGlzdGVuZXIoImVuZCIsZS5jb21wbGV0ZSkscy5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGUuY29tcGxldGUpfX0pfXZhciBGZHQ9ZygoKT0+e1I3KCk7aShkTGEsImZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlIil9KTt2YXIgbHM9e307eXQobHMse09ic2VydmFibGVJbnRha2U6KCk9Pld1ZSxPYnNlcnZhYmxlbWFwOigpPT5VdWUsZnJvbVN0cmVhbVdpdGhCYWNrcHJlc3N1cmU6KCk9PmRMYSxyeGpzOigpPT5PN30pO3ZhciBaMj1nKCgpPT57TkooKTtSZHQoKTtPZHQoKTtGZHQoKTt6ZWUoKX0pO2Z1bmN0aW9uIEwocyl7cmV0dXJuKGUsdCk9PnR5cGVvZiB0PT0ib2JqZWN0Ij9CZHQocyxlLHQpOigoYSxyLG4pPT57bGV0IG89ci5oYXNPd25Qcm9wZXJ0eShuKTtyZXR1cm4gci5jb25zdHJ1Y3Rvci5jcmVhdGVQcm9wZXJ0eShuLGEpLG8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLG4pOnZvaWQgMH0pKHMsZSx0KX12YXIgdUxhLEJkdCxDZWU9ZygoKT0+e0p4KCk7dUxhPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOng3LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpReH0sQmR0PWkoKHM9dUxhLGUsdCk9PntsZXR7a2luZDphLG1ldGFkYXRhOnJ9PXQsbj1nbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHIpO2lmKG49PT12b2lkIDAmJmdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5zZXQocixuPW5ldyBNYXApLGE9PT0ic2V0dGVyIiYmKChzPU9iamVjdC5jcmVhdGUocykpLndyYXBwZWQ9ITApLG4uc2V0KHQubmFtZSxzKSxhPT09ImFjY2Vzc29yIil7bGV0e25hbWU6b309dDtyZXR1cm57c2V0KGwpe2xldCBwPWUuZ2V0LmNhbGwodGhpcyk7ZS5zZXQuY2FsbCh0aGlzLGwpLHRoaXMucmVxdWVzdFVwZGF0ZShvLHAscywhMCxsKX0saW5pdChsKXtyZXR1cm4gbCE9PXZvaWQgMCYmdGhpcy5DKG8sdm9pZCAwLHMsbCksbH19fWlmKGE9PT0ic2V0dGVyIil7bGV0e25hbWU6b309dDtyZXR1cm4gZnVuY3Rpb24obCl7bGV0IHA9dGhpc1tvXTtlLmNhbGwodGhpcyxsKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxwLHMsITAsbCl9fXRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICIrYSl9LCJyIik7aShMLCJuIil9KTt2YXIgSGR0PWcoKCk9PntDZWUoKX0pO3ZhciBxZHQ9ZygoKT0+e30pO3ZhciBYdD17fTt5dChYdCx7VGltZW91dDooKT0+VGVlLGRlbGF5Rm9yOigpPT5qZHQsZGVsYXlGb3JSYW5kb206KCk9PnBMYX0pO3ZhciBqZHQscExhLFRlZSxkMD1nKCgpPT57aW8oKTtqZHQ9aShhc3luYyhzLGUsdD0hMSk9Pihhd2FpdCBuZXcgVGVlKHMsbnVsbCx0KS5wcm9taXNlLGUpLCJkZWxheUZvciIpLHBMYT1pKGFzeW5jKHMsZSx0LGE9ITEpPT4oYXdhaXQgamR0KE1hdGgucmFuZG9tKCkqKGUtcykrcyxudWxsLGEpLHQpLCJkZWxheUZvclJhbmRvbSIpLFRlZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaW1lb3V0Iil9Y29uc3RydWN0b3IoZSx0LGE9ITEpe3RoaXMuX2NhbmNlbGxlZD0hMSx0aGlzLnRpbWVvdXRJbk1pbGxpcz1lLHRoaXMuX2RlZmVycmVkPXJwKCksdGhpcy5wcm9taXNlPXRoaXMuX2RlZmVycmVkLnByb21pc2UsdGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fY2FuY2VsbGVkfHx0aGlzLl9kZWZlcnJlZC5yZXNvbHZlKHQpfSxlKSx0aGlzLnN0YXJ0ZWQ9RGF0ZS5ub3coKSxhJiZ0aGlzLm1ha2VVbnJlZmVkKCl9bWFrZVVucmVmZWQoKXt0aGlzLl90aW1lb3V0LnVucmVmPy4oKX1jYW5jZWwoKXt0aGlzLl9jYW5jZWxsZWQ9ITAsY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldFRpbWVMZWZ0KCl7bGV0IGU9dGhpcy5zdGFydGVkK3RoaXMudGltZW91dEluTWlsbGlzLURhdGUubm93KCk7cmV0dXJuIGU+MD9lOjB9fX0pO3ZhciB3Yz17fTt2YXIgVTQ9ZygoKT0+e30pO2Z1bmN0aW9uIFc0KHMpe2lmKHR5cGVvZiBzIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyIpO3JldHVybiBzLnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrKj8uXS9nLCJcXCQmIikucmVwbGFjZSgvLS9nLCJcXHgyZCIpfXZhciAkZWU9ZygoKT0+e2koVzQsImVzY2FwZVN0cmluZ1JlZ2V4cCIpfSk7dmFyIHh5PXt9O3l0KHh5LHtpc01hdGNoOigpPT5tTGEsbWF0Y2hlcjooKT0+ZkxhfSk7ZnVuY3Rpb24gZkxhKHMsZSx0KXtyZXR1cm4gVWR0KHMsZSx0LCExKX1mdW5jdGlvbiBtTGEocyxlLHQpe3JldHVybiBVZHQocyxlLHQsITApLmxlbmd0aD4wfXZhciBHdWUsVmR0LGhMYSxVZHQsV2R0PWcoKCk9PnskZWUoKTtHdWU9bmV3IE1hcCxWZHQ9aSgocyxlKT0+e2lmKCFBcnJheS5pc0FycmF5KHMpKXN3aXRjaCh0eXBlb2Ygcyl7Y2FzZSJzdHJpbmciOnM9W3NdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpzPVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2Ygc30nYCl9cmV0dXJuIHMuZmlsdGVyKHQ9PntpZih0eXBlb2YgdCE9InN0cmluZyIpe2lmKHR5cGVvZiB0PiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHtlfScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2YgdH0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LCJzYW5pdGl6ZUFycmF5IiksaExhPWkoKHMsZSk9PntlPXtjYXNlU2Vuc2l0aXZlOiExLC4uLmV9O2xldCB0PXMrSlNPTi5zdHJpbmdpZnkoZSk7aWYoR3VlLmhhcyh0KSlyZXR1cm4gR3VlLmdldCh0KTtsZXQgYT1zWzBdPT09IiEiO2EmJihzPXMuc2xpY2UoMSkpLHM9VzQocykucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgcj1uZXcgUmVnRXhwKGBeJHtzfSRgLGUuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiByLm5lZ2F0ZWQ9YSxHdWUuc2V0KHQscikscn0sIm1ha2VSZWdleHAiKSxVZHQ9aSgocyxlLHQsYSk9PntpZihzPVZkdChzLCJpbnB1dHMiKSxlPVZkdChlLCJwYXR0ZXJucyIpLGUubGVuZ3RoPT09MClyZXR1cm5bXTtlPWUubWFwKG89PmhMYShvLHQpKTtsZXR7YWxsUGF0dGVybnM6cn09dHx8e30sbj1bXTtmb3IobGV0IG8gb2Ygcyl7bGV0IGwscD1bLi4uZV0uZmlsbCghMSk7Zm9yKGxldFtkLHVdb2YgZS5lbnRyaWVzKCkpaWYodS50ZXN0KG8pJiYocFtkXT0hMCxsPSF1Lm5lZ2F0ZWQsIWwpKWJyZWFrO2lmKCEobD09PSExfHxsPT09dm9pZCAwJiZlLnNvbWUoZD0+IWQubmVnYXRlZCl8fHImJnAuc29tZSgoZCx1KT0+IWQmJiFlW3VdLm5lZ2F0ZWQpKSYmKG4ucHVzaChvKSxhKSlicmVha31yZXR1cm4gbn0sImJhc2VNYXRjaGVyIik7aShmTGEsIm1hdGNoZXIiKTtpKG1MYSwiaXNNYXRjaCIpfSk7dmFyIEdkdD1nKCgpPT57V2R0KCl9KTt2YXIgeXk9e307eXQoeXkse1NtYXJ0TWF0Y2g6KCk9Pkt1ZX0pO3ZhciBLdWUsS2R0PWcoKCk9PntHZHQoKTtLdWU9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMud2lsZGNhcmQ9ZX1tYXRjaChlKXtyZXR1cm4geHkuaXNNYXRjaChlLHRoaXMud2lsZGNhcmQpfX19KTt2YXIgX3k9e307eXQoX3kse0Nyb246KCk9PmUwdCxDcm9uRGF0ZTooKT0+QnIsQ3JvblBhdHRlcm46KCk9PkRlZSxzY2hlZHVsZWRKb2JzOigpPT5GN30pO2Z1bmN0aW9uIHd5KHMpe3JldHVybiBEYXRlLlVUQyhzLnkscy5tLTEscy5kLHMuaCxzLmkscy5zKX1mdW5jdGlvbiBZdWUocyxlKXtyZXR1cm4gcy55PT09ZS55JiZzLm09PT1lLm0mJnMuZD09PWUuZCYmcy5oPT09ZS5oJiZzLmk9PT1lLmkmJnMucz09PWUuc31mdW5jdGlvbiBiTGEocyxlKXtsZXQgdD1uZXcgRGF0ZShEYXRlLnBhcnNlKHMpKTtpZihpc05hTih0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSVNPODYwMSBwYXNzZWQgdG8gdGltZXpvbmUgcGFyc2VyLiIpO2xldCBhPXMuc3Vic3RyaW5nKDkpO3JldHVybiBhLmluY2x1ZGVzKCJaIil8fGEuaW5jbHVkZXMoIisiKXx8YS5pbmNsdWRlcygiLSIpP1p1ZSh0LmdldFVUQ0Z1bGxZZWFyKCksdC5nZXRVVENNb250aCgpKzEsdC5nZXRVVENEYXRlKCksdC5nZXRVVENIb3VycygpLHQuZ2V0VVRDTWludXRlcygpLHQuZ2V0VVRDU2Vjb25kcygpLCJFdGMvVVRDIik6WnVlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCkrMSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksZSl9ZnVuY3Rpb24gWWR0KHMsZSx0KXtyZXR1cm4gWmR0KGJMYShzLGUpLHQpfWZ1bmN0aW9uIFpkdChzLGUpe2xldCB0PW5ldyBEYXRlKHd5KHMpKSxhPWt5KHQscy50eikscj13eShzKSxuPXd5KGEpLG89ci1uLGw9bmV3IERhdGUodC5nZXRUaW1lKCkrbykscD1reShsLHMudHopO2lmKFl1ZShwLHMpKXtsZXQgYz1uZXcgRGF0ZShsLmdldFRpbWUoKS0zNmU1KSxiPWt5KGMscy50eik7cmV0dXJuIFl1ZShiLHMpP2M6bH1sZXQgZD1uZXcgRGF0ZShsLmdldFRpbWUoKSt3eShzKS13eShwKSksdT1reShkLHMudHopO2lmKFl1ZSh1LHMpKXJldHVybiBkO2lmKGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIGwuZ2V0VGltZSgpPmQuZ2V0VGltZSgpP2w6ZH1mdW5jdGlvbiBreShzLGUpe2xldCB0LGE7dHJ5e3Q9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6ZSx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksYT10LmZvcm1hdFRvUGFydHMocyl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7ZX0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCByPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBhKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihyW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKHIueWVhcil8fGlzTmFOKHIubW9udGgpfHxpc05hTihyLmRheSl8fGlzTmFOKHIuaG91cil8fGlzTmFOKHIubWludXRlKXx8aXNOYU4oci5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHtlfScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShyKX1gKTtyZXR1cm4gci5ob3VyPT09MjQmJihyLmhvdXI9MCkse3k6ci55ZWFyLG06ci5tb250aCxkOnIuZGF5LGg6ci5ob3VyLGk6ci5taW51dGUsczpyLnNlY29uZCx0ejplfX1mdW5jdGlvbiBadWUocyxlLHQsYSxyLG4sbyl7cmV0dXJue3k6cyxtOmUsZDp0LGg6YSxpOnIsczpuLHR6Om99fWZ1bmN0aW9uIHZMYShzKXtpZihzPT09dm9pZCAwJiYocz17fSksZGVsZXRlIHMubmFtZSxzLmxlZ2FjeU1vZGUhPT12b2lkIDAmJnMuZG9tQW5kRG93PT09dm9pZCAwP3MuZG9tQW5kRG93PSFzLmxlZ2FjeU1vZGU6cy5kb21BbmREb3c9PT12b2lkIDAmJihzLmRvbUFuZERvdz0hMSkscy5sZWdhY3lNb2RlPSFzLmRvbUFuZERvdyxzLnBhdXNlZD1zLnBhdXNlZD09PXZvaWQgMD8hMTpzLnBhdXNlZCxzLm1heFJ1bnM9cy5tYXhSdW5zPT09dm9pZCAwPzEvMDpzLm1heFJ1bnMscy5jYXRjaD1zLmNhdGNoPT09dm9pZCAwPyExOnMuY2F0Y2gscy5pbnRlcnZhbD1zLmludGVydmFsPT09dm9pZCAwPzA6cGFyc2VJbnQocy5pbnRlcnZhbC50b1N0cmluZygpLDEwKSxzLnV0Y09mZnNldD1zLnV0Y09mZnNldD09PXZvaWQgMD92b2lkIDA6cGFyc2VJbnQocy51dGNPZmZzZXQudG9TdHJpbmcoKSwxMCkscy5kYXlPZmZzZXQ9cy5kYXlPZmZzZXQ9PT12b2lkIDA/MDpwYXJzZUludChzLmRheU9mZnNldC50b1N0cmluZygpLDEwKSxzLnVucmVmPXMudW5yZWY9PT12b2lkIDA/ITE6cy51bnJlZixzLm1vZGU9cy5tb2RlPT09dm9pZCAwPyJhdXRvIjpzLm1vZGUscy5hbHRlcm5hdGl2ZVdlZWtkYXlzPXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz09PXZvaWQgMD8hMTpzLmFsdGVybmF0aXZlV2Vla2RheXMscy5zbG9wcHlSYW5nZXM9cy5zbG9wcHlSYW5nZXM9PT12b2lkIDA/ITE6cy5zbG9wcHlSYW5nZXMsIVsiYXV0byIsIjUtcGFydCIsIjYtcGFydCIsIjctcGFydCIsIjUtb3ItNi1wYXJ0cyIsIjYtb3ItNy1wYXJ0cyJdLmluY2x1ZGVzKHMubW9kZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogbW9kZSBtdXN0IGJlIG9uZSBvZiAnYXV0bycsICc1LXBhcnQnLCAnNi1wYXJ0JywgJzctcGFydCcsICc1LW9yLTYtcGFydHMnLCBvciAnNi1vci03LXBhcnRzJy4iKTtpZihzLnN0YXJ0QXQmJihzLnN0YXJ0QXQ9bmV3IEJyKHMuc3RhcnRBdCxzLnRpbWV6b25lKSkscy5zdG9wQXQmJihzLnN0b3BBdD1uZXcgQnIocy5zdG9wQXQscy50aW1lem9uZSkpLHMuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTihzLmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYocy5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYocy51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKHMudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZihzLnV0Y09mZnNldDwtODcwfHxzLnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYocy51dGNPZmZzZXQhPT12b2lkIDAmJnMudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZihzLnVucmVmIT09ITAmJnMudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7aWYocy5kYXlPZmZzZXQhPT12b2lkIDAmJnMuZGF5T2Zmc2V0IT09MCYmaXNOYU4ocy5kYXlPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciBkYXlPZmZzZXQsIHNob3VsZCBiZSBhIG51bWJlciByZXByZXNlbnRpbmcgZGF5cyB0byBvZmZzZXQuIik7cmV0dXJuIHN9ZnVuY3Rpb24gU3kocyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiBzPT0iZnVuY3Rpb24ifHxzIGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24geExhKHMpe3JldHVybiBTeShzKX1mdW5jdGlvbiB5TGEocyl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIocyk6cyYmdHlwZW9mIHMudW5yZWY8InUiJiZzLnVucmVmKCl9dmFyIFhkdCxEZWUsWHVlLGxpLEJyLFFkdCxGNyxlMHQsdDB0PWcoKCk9PntpKHd5LCJUIik7aShZdWUsIkQiKTtpKGJMYSwiQSIpO2koWWR0LCJ2Iik7aShaZHQsImsiKTtpKGt5LCJnIik7aShadWUsImIiKTtYZHQ9WzEsMiw0LDgsMTZdLERlZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDIil9cGF0dGVybjt0aW1lem9uZTttb2RlO2FsdGVybmF0aXZlV2Vla2RheXM7c2xvcHB5UmFuZ2VzO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7ZGF5T2ZXZWVrO3llYXI7bGFzdERheU9mTW9udGg7bGFzdFdlZWtkYXk7bmVhcmVzdFdlZWtkYXlzO3N0YXJET007c3RhckRPVztzdGFyWWVhcjt1c2VBbmRMb2dpYztjb25zdHJ1Y3RvcihzLGUsdCl7dGhpcy5wYXR0ZXJuPXMsdGhpcy50aW1lem9uZT1lLHRoaXMubW9kZT10Py5tb2RlPz8iYXV0byIsdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPXQ/LmFsdGVybmF0aXZlV2Vla2RheXM/PyExLHRoaXMuc2xvcHB5UmFuZ2VzPXQ/LnNsb3BweVJhbmdlcz8/ITEsdGhpcy5zZWNvbmQ9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5taW51dGU9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5ob3VyPUFycmF5KDI0KS5maWxsKDApLHRoaXMuZGF5PUFycmF5KDMxKS5maWxsKDApLHRoaXMubW9udGg9QXJyYXkoMTIpLmZpbGwoMCksdGhpcy5kYXlPZldlZWs9QXJyYXkoNykuZmlsbCgwKSx0aGlzLnllYXI9QXJyYXkoMWU0KS5maWxsKDApLHRoaXMubGFzdERheU9mTW9udGg9ITEsdGhpcy5sYXN0V2Vla2RheT0hMSx0aGlzLm5lYXJlc3RXZWVrZGF5cz1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLnN0YXJET009ITEsdGhpcy5zdGFyRE9XPSExLHRoaXMuc3RhclllYXI9ITEsdGhpcy51c2VBbmRMb2dpYz0hMSx0aGlzLnBhcnNlKCl9cGFyc2UoKXtpZighKHR5cGVvZiB0aGlzLnBhdHRlcm49PSJzdHJpbmcifHx0aGlzLnBhdHRlcm4gaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBQYXR0ZXJuIGhhcyB0byBiZSBvZiB0eXBlIHN0cmluZy4iKTt0aGlzLnBhdHRlcm4uaW5kZXhPZigiQCIpPj0wJiYodGhpcy5wYXR0ZXJuPXRoaXMuaGFuZGxlTmlja25hbWVzKHRoaXMucGF0dGVybikudHJpbSgpKTtsZXQgcz10aGlzLnBhdHRlcm4ubWF0Y2goL1xTKy9nKXx8WyIiXSxlPXMubGVuZ3RoO2lmKHMubGVuZ3RoPDV8fHMubGVuZ3RoPjcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGludmFsaWQgY29uZmlndXJhdGlvbiBmb3JtYXQgKCciK3RoaXMucGF0dGVybisiJyksIGV4YWN0bHkgZml2ZSwgc2l4LCBvciBzZXZlbiBzcGFjZSBzZXBhcmF0ZWQgcGFydHMgYXJlIHJlcXVpcmVkLiIpO2lmKHRoaXMubW9kZSE9PSJhdXRvIil7bGV0IGE7c3dpdGNoKHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmE9NTticmVhaztjYXNlIjYtcGFydCI6YT02O2JyZWFrO2Nhc2UiNy1wYXJ0IjphPTc7YnJlYWs7Y2FzZSI1LW9yLTYtcGFydHMiOmE9WzUsNl07YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmE9WzYsN107YnJlYWs7ZGVmYXVsdDphPTB9aWYoIShBcnJheS5pc0FycmF5KGEpP2EuaW5jbHVkZXMoZSk6ZT09PWEpKXtsZXQgcj1BcnJheS5pc0FycmF5KGEpP2Euam9pbigiIG9yICIpOmEudG9TdHJpbmcoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbW9kZSAnJHt0aGlzLm1vZGV9JyByZXF1aXJlcyBleGFjdGx5ICR7cn0gcGFydHMsIGJ1dCBwYXR0ZXJuICcke3RoaXMucGF0dGVybn0nIGhhcyAke2V9IHBhcnRzLmApfX1pZihzLmxlbmd0aD09PTUmJnMudW5zaGlmdCgiMCIpLHMubGVuZ3RoPT09NiYmcy5wdXNoKCIqIiksc1szXS50b1VwcGVyQ2FzZSgpPT09IkxXIj8odGhpcy5sYXN0V2Vla2RheT0hMCxzWzNdPSIiKTpzWzNdLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTCIpPj0wJiYoc1szXT1zWzNdLnJlcGxhY2UoL0wvZ2ksIiIpLHRoaXMubGFzdERheU9mTW9udGg9ITApLHNbM109PSIqIiYmKHRoaXMuc3RhckRPTT0hMCksc1s2XT09IioiJiYodGhpcy5zdGFyWWVhcj0hMCksc1s0XS5sZW5ndGg+PTMmJihzWzRdPXRoaXMucmVwbGFjZUFscGhhTW9udGhzKHNbNF0pKSxzWzVdLmxlbmd0aD49MyYmKHNbNV09dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzP3RoaXMucmVwbGFjZUFscGhhRGF5c1F1YXJ0eihzWzVdKTp0aGlzLnJlcGxhY2VBbHBoYURheXMoc1s1XSkpLHNbNV0uc3RhcnRzV2l0aCgiKyIpJiYodGhpcy51c2VBbmRMb2dpYz0hMCxzWzVdPXNbNV0uc3Vic3RyaW5nKDEpLHNbNV09PT0iIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IERheS1vZi13ZWVrIGZpZWxkIGNhbm5vdCBiZSBlbXB0eSBhZnRlciAnKycgbW9kaWZpZXIuIik7c3dpdGNoKHNbNV09PSIqIiYmKHRoaXMuc3RhckRPVz0hMCksdGhpcy5wYXR0ZXJuLmluZGV4T2YoIj8iKT49MCYmKHNbMF09c1swXS5yZXBsYWNlKC9cPy9nLCIqIiksc1sxXT1zWzFdLnJlcGxhY2UoL1w/L2csIioiKSxzWzJdPXNbMl0ucmVwbGFjZSgvXD8vZywiKiIpLHNbM109c1szXS5yZXBsYWNlKC9cPy9nLCIqIiksc1s0XT1zWzRdLnJlcGxhY2UoL1w/L2csIioiKSxzWzVdPXNbNV0ucmVwbGFjZSgvXD8vZywiKiIpLHNbNl0mJihzWzZdPXNbNl0ucmVwbGFjZSgvXD8vZywiKiIpKSksdGhpcy5tb2RlKXtjYXNlIjUtcGFydCI6c1swXT0iMCIsc1s2XT0iKiI7YnJlYWs7Y2FzZSI2LXBhcnQiOnNbNl09IioiO2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjpzWzZdPSIqIjticmVhaztjYXNlIjYtb3ItNy1wYXJ0cyI6YnJlYWs7Y2FzZSI3LXBhcnQiOmNhc2UiYXV0byI6YnJlYWt9dGhpcy50aHJvd0F0SWxsZWdhbENoYXJhY3RlcnMocyksdGhpcy5wYXJ0VG9BcnJheSgic2Vjb25kIixzWzBdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgibWludXRlIixzWzFdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgiaG91ciIsc1syXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImRheSIsc1szXSwtMSwxKSx0aGlzLnBhcnRUb0FycmF5KCJtb250aCIsc1s0XSwtMSwxKTtsZXQgdD10aGlzLmFsdGVybmF0aXZlV2Vla2RheXM/LTE6MDt0aGlzLnBhcnRUb0FycmF5KCJkYXlPZldlZWsiLHNbNV0sdCw2MyksdGhpcy5wYXJ0VG9BcnJheSgieWVhciIsc1s2XSwwLDEpLCF0aGlzLmFsdGVybmF0aXZlV2Vla2RheXMmJnRoaXMuZGF5T2ZXZWVrWzddJiYodGhpcy5kYXlPZldlZWtbMF09dGhpcy5kYXlPZldlZWtbN10pfXBhcnRUb0FycmF5KHMsZSx0LGEpe2xldCByPXRoaXNbc10sbj1zPT09ImRheSImJnRoaXMubGFzdERheU9mTW9udGgsbz1zPT09ImRheSImJnRoaXMubGFzdFdlZWtkYXk7aWYoZT09PSIiJiYhbiYmIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitzKyIgKCIrZSsiKSBpcyBlbXB0eSwgY2hlY2sgZm9yIHRyYWlsaW5nIHNwYWNlcy4iKTtpZihlPT09IioiKXJldHVybiByLmZpbGwoYSk7bGV0IGw9ZS5zcGxpdCgiLCIpO2lmKGwubGVuZ3RoPjEpZm9yKGxldCBwPTA7cDxsLmxlbmd0aDtwKyspdGhpcy5wYXJ0VG9BcnJheShzLGxbcF0sdCxhKTtlbHNlIGUuaW5kZXhPZigiLSIpIT09LTEmJmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyhlLHMsdCxhKTplLmluZGV4T2YoIi0iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSxzLHQsYSk6ZS5pbmRleE9mKCIvIikhPT0tMT90aGlzLmhhbmRsZVN0ZXBwaW5nKGUscyx0LGEpOmUhPT0iIiYmdGhpcy5oYW5kbGVOdW1iZXIoZSxzLHQsYSl9dGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHMpe2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7ZSsrKWlmKChlPT09Mz8vW14vKjAtOSxcLVd3TGxdKy86ZT09PTU/L1teLyowLTksXC0jTGxdKy86L1teLyowLTksXC1dKy8pLnRlc3Qoc1tlXSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitlKyIgKCIrc1tlXSsiKSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuIil9aGFuZGxlTnVtYmVyKHMsZSx0LGEpe2xldCByPXRoaXMuZXh0cmFjdE50aChzLGUpLG49cy50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIik7aWYoZSE9PSJkYXkiJiZuKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBOZWFyZXN0IHdlZWtkYXkgbW9kaWZpZXIgKFcpIG9ubHkgYWxsb3dlZCBpbiBkYXktb2YtbW9udGguIik7biYmKGU9Im5lYXJlc3RXZWVrZGF5cyIpO2xldCBvPXBhcnNlSW50KHJbMF0sMTApK3Q7aWYoaXNOYU4obykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46ICIrZSsiIGlzIG5vdCBhIG51bWJlcjogJyIrcysiJyIpO3RoaXMuc2V0UGFydChlLG8sclsxXXx8YSl9c2V0UGFydChzLGUsdCl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHBhcnQgc3BlY2lmaWVkOiAiK3MpO2lmKHM9PT0iZGF5T2ZXZWVrIil7aWYoZT09PTcmJihlPTApLGU8MHx8ZT42KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrOiAiK2UpO3RoaXMuc2V0TnRoV2Vla2RheU9mTW9udGgoZSx0KTtyZXR1cm59aWYocz09PSJzZWNvbmQifHxzPT09Im1pbnV0ZSIpe2lmKGU8MHx8ZT49NjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3MrIjogIitlKX1lbHNlIGlmKHM9PT0iaG91ciIpe2lmKGU8MHx8ZT49MjQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3MrIjogIitlKX1lbHNlIGlmKHM9PT0iZGF5Inx8cz09PSJuZWFyZXN0V2Vla2RheXMiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitzKyI6ICIrZSl9ZWxzZSBpZihzPT09Im1vbnRoIil7aWYoZTwwfHxlPj0xMil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrcysiOiAiK2UpfWVsc2UgaWYocz09PSJ5ZWFyIiYmKGU8MXx8ZT49MWU0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrcysiOiAiK2UrIiAoc3VwcG9ydGVkIHJhbmdlOiAxLTk5OTkpIik7dGhpc1tzXVtlXT10fXZhbGlkYXRlTm90TmFOKHMsZSl7aWYoaXNOYU4ocykpdGhyb3cgbmV3IFR5cGVFcnJvcihlKX12YWxpZGF0ZVJhbmdlKHMsZSx0LGEscil7aWYocz5lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBGcm9tIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRvIHZhbHVlOiAnIityKyInIik7aWYodCE9PXZvaWQgMCl7aWYodD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogMCIpO2lmKHQ+dGhpc1thXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKCIrdGhpc1thXS5sZW5ndGgrIikiKX19aGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcocyxlLHQsYSl7aWYocy50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiByYW5nZXMgd2l0aCBzdGVwcGluZy4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgocyxlKSxuPXJbMF0ubWF0Y2goL14oXGQrKS0oXGQrKVwvKFxkKykkLyk7aWYobj09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZSB3aXRoIHN0ZXBwaW5nOiAnIitzKyInIik7bGV0WyxvLGwscF09bixkPXBhcnNlSW50KG8sMTApK3QsdT1wYXJzZUludChsLDEwKSt0LGM9cGFyc2VJbnQocCwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihkLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTih1LCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHVwcGVyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihjLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShkLHUsYyxlLHMpO2ZvcihsZXQgYj1kO2I8PXU7Yis9Yyl0aGlzLnNldFBhcnQoZSxiLHJbMV18fGEpfWV4dHJhY3ROdGgocyxlKXtsZXQgdD1zLGE7aWYodC5pbmNsdWRlcygiIyIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogbnRoICgjKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQiKTthPXQuc3BsaXQoIiMiKVsxXSx0PXQuc3BsaXQoIiMiKVswXX1lbHNlIGlmKHQudG9VcHBlckNhc2UoKS5lbmRzV2l0aCgiTCIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogTCBtb2RpZmllciBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQgKHVzZSBMIGFsb25lIGZvciBkYXktb2YtbW9udGgpIik7YT0iTCIsdD10LnNsaWNlKDAsLTEpfXJldHVyblt0LGFdfWhhbmRsZVJhbmdlKHMsZSx0LGEpe2lmKHMudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gYSByYW5nZS4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgocyxlKSxuPXJbMF0uc3BsaXQoIi0iKTtpZihuLmxlbmd0aCE9PTIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZTogJyIrcysiJyIpO2xldCBvPXBhcnNlSW50KG5bMF0sMTApK3QsbD1wYXJzZUludChuWzFdLDEwKSt0O3RoaXMudmFsaWRhdGVOb3ROYU4obywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4obCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShvLGwsdm9pZCAwLGUscyk7Zm9yKGxldCBwPW87cDw9bDtwKyspdGhpcy5zZXRQYXJ0KGUscCxyWzFdfHxhKX1oYW5kbGVTdGVwcGluZyhzLGUsdCxhKXtpZihzLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIHBhcnRzIHdpdGggc3RlcHBpbmcuIik7bGV0IHI9dGhpcy5leHRyYWN0TnRoKHMsZSksbj1yWzBdLnNwbGl0KCIvIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6ICciK3MrIiciKTtpZih0aGlzLnNsb3BweVJhbmdlcyluWzBdPT09IiImJihuWzBdPSIqIik7ZWxzZXtpZihuWzBdPT09IiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBtaXNzaW5nIHByZWZpeCAoJyIrcysiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpO2lmKG5bMF0hPT0iKiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBudW1lcmljIHByZWZpeCAoJyIrcysiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpfWxldCBvPTA7blswXSE9PSIqIiYmKG89cGFyc2VJbnQoblswXSwxMCkrdCk7bGV0IGw9cGFyc2VJbnQoblsxXSwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihsLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZSgwLHRoaXNbZV0ubGVuZ3RoLTEsbCxlLHMpO2ZvcihsZXQgcD1vO3A8dGhpc1tlXS5sZW5ndGg7cCs9bCl0aGlzLnNldFBhcnQoZSxwLHJbMV18fGEpfXJlcGxhY2VBbHBoYURheXMocyl7cmV0dXJuIHMucmVwbGFjZSgvLXN1bi9naSwiLTciKS5yZXBsYWNlKC9zdW4vZ2ksIjAiKS5yZXBsYWNlKC9tb24vZ2ksIjEiKS5yZXBsYWNlKC90dWUvZ2ksIjIiKS5yZXBsYWNlKC93ZWQvZ2ksIjMiKS5yZXBsYWNlKC90aHUvZ2ksIjQiKS5yZXBsYWNlKC9mcmkvZ2ksIjUiKS5yZXBsYWNlKC9zYXQvZ2ksIjYiKX1yZXBsYWNlQWxwaGFEYXlzUXVhcnR6KHMpe3JldHVybiBzLnJlcGxhY2UoL3N1bi9naSwiMSIpLnJlcGxhY2UoL21vbi9naSwiMiIpLnJlcGxhY2UoL3R1ZS9naSwiMyIpLnJlcGxhY2UoL3dlZC9naSwiNCIpLnJlcGxhY2UoL3RodS9naSwiNSIpLnJlcGxhY2UoL2ZyaS9naSwiNiIpLnJlcGxhY2UoL3NhdC9naSwiNyIpfXJlcGxhY2VBbHBoYU1vbnRocyhzKXtyZXR1cm4gcy5yZXBsYWNlKC9qYW4vZ2ksIjEiKS5yZXBsYWNlKC9mZWIvZ2ksIjIiKS5yZXBsYWNlKC9tYXIvZ2ksIjMiKS5yZXBsYWNlKC9hcHIvZ2ksIjQiKS5yZXBsYWNlKC9tYXkvZ2ksIjUiKS5yZXBsYWNlKC9qdW4vZ2ksIjYiKS5yZXBsYWNlKC9qdWwvZ2ksIjciKS5yZXBsYWNlKC9hdWcvZ2ksIjgiKS5yZXBsYWNlKC9zZXAvZ2ksIjkiKS5yZXBsYWNlKC9vY3QvZ2ksIjEwIikucmVwbGFjZSgvbm92L2dpLCIxMSIpLnJlcGxhY2UoL2RlYy9naSwiMTIiKX1oYW5kbGVOaWNrbmFtZXMocyl7bGV0IGU9cy50cmltKCkudG9Mb3dlckNhc2UoKTtpZihlPT09IkB5ZWFybHkifHxlPT09IkBhbm51YWxseSIpcmV0dXJuIjAgMCAxIDEgKiI7aWYoZT09PSJAbW9udGhseSIpcmV0dXJuIjAgMCAxICogKiI7aWYoZT09PSJAd2Vla2x5IilyZXR1cm4iMCAwICogKiAwIjtpZihlPT09IkBkYWlseSJ8fGU9PT0iQG1pZG5pZ2h0IilyZXR1cm4iMCAwICogKiAqIjtpZihlPT09IkBob3VybHkiKXJldHVybiIwICogKiAqICoiO2lmKGU9PT0iQHJlYm9vdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEByZWJvb3QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGFuIGV2ZW50LWJhc2VkIHRyaWdnZXIgdGhhdCByZXF1aXJlcyBzeXN0ZW0gc3RhcnR1cCBkZXRlY3Rpb24uIik7cmV0dXJuIHN9c2V0TnRoV2Vla2RheU9mTW9udGgocyxlKXtpZih0eXBlb2YgZSE9Im51bWJlciImJmUudG9VcHBlckNhc2UoKT09PSJMIil0aGlzLmRheU9mV2Vla1tzXT10aGlzLmRheU9mV2Vla1tzXXwzMjtlbHNlIGlmKGU9PT02Myl0aGlzLmRheU9mV2Vla1tzXT02MztlbHNlIGlmKGU8NiYmZT4wKXRoaXMuZGF5T2ZXZWVrW3NdPXRoaXMuZGF5T2ZXZWVrW3NdfFhkdFtlLTFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG50aCB3ZWVrZGF5IG91dCBvZiByYW5nZSwgc2hvdWxkIGJlIDEtNSBvciBMLiBWYWx1ZTogJHtlfSwgVHlwZTogJHt0eXBlb2YgZX1gKX19LFh1ZT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGxpPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLEJyPWNsYXNzIEpkdHtzdGF0aWN7aSh0aGlzLCJzIil9dHo7bXM7c2Vjb25kO21pbnV0ZTtob3VyO2RheTttb250aDt5ZWFyO2NvbnN0cnVjdG9yKGUsdCl7aWYodGhpcy50ej10LGUmJmUgaW5zdGFuY2VvZiBEYXRlKWlmKCFpc05hTihlKSl0aGlzLmZyb21EYXRlKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgZGF0ZSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKTtlbHNlIGlmKGU9PW51bGwpdGhpcy5mcm9tRGF0ZShuZXcgRGF0ZSk7ZWxzZSBpZihlJiZ0eXBlb2YgZT09InN0cmluZyIpdGhpcy5mcm9tU3RyaW5nKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEpkdCl0aGlzLmZyb21Dcm9uRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIHR5cGUgKCIrdHlwZW9mIGUrIikgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIil9Z2V0TGFzdERheU9mTW9udGgoZSx0KXtyZXR1cm4gdCE9PTE/WHVlW3RdOm5ldyBEYXRlKERhdGUuVVRDKGUsdCsxLDApKS5nZXRVVENEYXRlKCl9Z2V0TGFzdFdlZWtkYXkoZSx0KXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKGUsdCkscj1uZXcgRGF0ZShEYXRlLlVUQyhlLHQsYSkpLmdldFVUQ0RheSgpO3JldHVybiByPT09MD9hLTI6cj09PTY/YS0xOmF9Z2V0TmVhcmVzdFdlZWtkYXkoZSx0LGEpe2xldCByPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSx0KTtpZihhPnIpcmV0dXJuLTE7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEMoZSx0LGEpKS5nZXRVVENEYXkoKTtyZXR1cm4gbj09PTA/YT09PXI/YS0yOmErMTpuPT09Nj9hPT09MT9hKzI6YS0xOmF9aXNOdGhXZWVrZGF5T2ZNb250aChlLHQsYSxyKXtsZXQgbj1uZXcgRGF0ZShEYXRlLlVUQyhlLHQsYSkpLmdldFVUQ0RheSgpLG89MDtmb3IobGV0IGw9MTtsPD1hO2wrKyluZXcgRGF0ZShEYXRlLlVUQyhlLHQsbCkpLmdldFVUQ0RheSgpPT09biYmbysrO2lmKHImNjMmJlhkdFtvLTFdJnIpcmV0dXJuITA7aWYociYzMil7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aChlLHQpO2ZvcihsZXQgcD1hKzE7cDw9bDtwKyspaWYobmV3IERhdGUoRGF0ZS5VVEMoZSx0LHApKS5nZXRVVENEYXkoKT09PW4pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnJvbURhdGUoZSl7aWYodGhpcy50eiE9PXZvaWQgMClpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpK3RoaXMudHosdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKTtlbHNlIHRyeXtsZXQgdD1reShlLHRoaXMudHopO3RoaXMubXM9ZS5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD10LnMsdGhpcy5taW51dGU9dC5pLHRoaXMuaG91cj10LmgsdGhpcy5kYXk9dC5kLHRoaXMubW9udGg9dC5tLTEsdGhpcy55ZWFyPXQueX1jYXRjaCh0KXtsZXQgYT10IGluc3RhbmNlb2YgRXJyb3I/dC5tZXNzYWdlOlN0cmluZyh0KTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uRGF0ZTogRmFpbGVkIHRvIGNvbnZlcnQgZGF0ZSB0byB0aW1lem9uZSAnJHt0aGlzLnR6fScuIFRoaXMgbWF5IGhhcHBlbiB3aXRoIGludmFsaWQgdGltZXpvbmUgbmFtZXMgb3IgZGF0ZXMuIE9yaWdpbmFsIGVycm9yOiAke2F9YCl9ZWxzZSB0aGlzLm1zPWUuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0SG91cnMoKSx0aGlzLmRheT1lLmdldERhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0TW9udGgoKSx0aGlzLnllYXI9ZS5nZXRGdWxsWWVhcigpfWZyb21Dcm9uRGF0ZShlKXt0aGlzLnR6PWUudHosdGhpcy55ZWFyPWUueWVhcix0aGlzLm1vbnRoPWUubW9udGgsdGhpcy5kYXk9ZS5kYXksdGhpcy5ob3VyPWUuaG91cix0aGlzLm1pbnV0ZT1lLm1pbnV0ZSx0aGlzLnNlY29uZD1lLnNlY29uZCx0aGlzLm1zPWUubXN9YXBwbHkoKXtpZih0aGlzLm1vbnRoPjExfHx0aGlzLm1vbnRoPDB8fHRoaXMuZGF5Plh1ZVt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgZT1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyhlKXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCB0PVlkdChlKTt0aGlzLm1zPXQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9dC5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9dC5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXQuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT10LmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXQuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9dC5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKFlkdChlLHRoaXMudHopKX1maW5kTmV4dChlLHQsYSxyKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUsdCxhLHIsMSl9X2ZpbmRNYXRjaChlLHQsYSxyLG4pe2xldCBvPXRoaXNbdF0sbDthLmxhc3REYXlPZk1vbnRoJiYobD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IHA9IWEuc3RhckRPVyYmdD09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGQ9dGhpc1t0XStyLHU9bj09PTE/Yz0+YzxhW3RdLmxlbmd0aDpjPT5jPj0wO2ZvcihsZXQgYz1kO3UoYyk7Yys9bil7bGV0IGI9YVt0XVtjXTtpZih0PT09ImRheSImJiFiKXtmb3IobGV0IHY9MDt2PGEubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDt2KyspaWYoYS5uZWFyZXN0V2Vla2RheXNbdl0pe2xldCB4PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsdi1yKTtpZih4PT09LTEpY29udGludWU7aWYoeD09PWMtcil7Yj0xO2JyZWFrfX19aWYodD09PSJkYXkiJiZhLmxhc3RXZWVrZGF5KXtsZXQgdj10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtjLXI9PT12JiYoYj0xKX1pZih0PT09ImRheSImJmEubGFzdERheU9mTW9udGgmJmMtcj09bCYmKGI9MSksdD09PSJkYXkiJiYhYS5zdGFyRE9XKXtsZXQgdj1hLmRheU9mV2Vla1socCsoYy1yLTEpKSU3XTtpZih2JiZ2JjYzKXY9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLGMtcix2KT8xOjA7ZWxzZSBpZih2KXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHt2fWApO2EudXNlQW5kTG9naWM/Yj1iJiZ2OiFlLmRvbUFuZERvdyYmIWEuc3RhckRPTT9iPWJ8fHY6Yj1iJiZ2fWlmKGIpcmV0dXJuIHRoaXNbdF09Yy1yLG8hPT10aGlzW3RdPzI6MX1yZXR1cm4gM31yZWN1cnNlKGUsdCxhKXtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288ZS55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKGUueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgcj10aGlzLmZpbmROZXh0KHQsbGlbYV1bMF0sZSxsaVthXVsyXSk7aWYocj4xKXtsZXQgbj1hKzE7Zm9yKDtuPGxpLmxlbmd0aDspdGhpc1tsaVtuXVswXV09LWxpW25dWzJdLG4rKztpZihyPT09Myl7aWYodGhpc1tsaVthXVsxXV0rKyx0aGlzW2xpW2FdWzBdXT0tbGlbYV1bMl0sdGhpcy5hcHBseSgpLGE9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PWUueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZShlLHQsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZShlLHQsYS0xKX1yZXR1cm4gYSs9MSxhPj1saS5sZW5ndGg/dGhpczooZS5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UoZSx0LGEpfWluY3JlbWVudChlLHQsYSl7cmV0dXJuIHRoaXMuc2Vjb25kKz10LmludGVydmFsIT09dm9pZCAwJiZ0LmludGVydmFsPjEmJmE/dC5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKGUsdCwwKX1kZWNyZW1lbnQoZSx0KXtyZXR1cm4gdGhpcy5zZWNvbmQtPXQuaW50ZXJ2YWwhPT12b2lkIDAmJnQuaW50ZXJ2YWw+MT90LmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHQsMCwwKX1yZWN1cnNlQmFja3dhcmQoZSx0LGEscj0wKXtpZihyPjFlNClyZXR1cm4gbnVsbDtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBsPXRoaXMueWVhci0xO2w+PTA7bC0tKWlmKGUueWVhcltsXT09PTEpe289bDticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHQsbGlbYV1bMF0sZSxsaVthXVsyXSk7aWYobj4xKXtsZXQgbz1hKzE7Zm9yKDtvPGxpLmxlbmd0aDspe2xldCBsPWxpW29dWzBdLHA9bGlbb11bMl0sZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShsLGUscCk7dGhpc1tsXT1kLG8rK31pZihuPT09Myl7aWYodGhpc1tsaVthXVsxXV0tLSxhPT09MCl7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+dSYmKHRoaXMuZGF5PXUpfWlmKGE9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgdT10aGlzLnllYXIsYz10aGlzLm1vbnRoO2Zvcig7YzwwOyljKz0xMix1LS07Zm9yKDtjPjExOyljLT0xMix1Kys7bGV0IGI9YyE9PTE/WHVlW2NdOm5ldyBEYXRlKERhdGUuVVRDKHUsYysxLDApKS5nZXRVVENEYXRlKCk7dGhpcy5kYXk+YiYmKHRoaXMuZGF5PWIpfXRoaXMuYXBwbHkoKTtsZXQgbD1saVthXVswXSxwPWxpW2FdWzJdLGQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUobCxlLHApO2lmKGw9PT0iZGF5Iil7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpc1tsXT1NYXRoLm1pbihkLHUpfWVsc2UgdGhpc1tsXT1kO2lmKHRoaXMuYXBwbHkoKSxhPT09MCl7bGV0IHU9bGlbMV1bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiZGF5IixlLHUpLGI9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCksdj1NYXRoLm1pbihjLGIpO3YhPT10aGlzLmRheSYmKHRoaXMuZGF5PXYsdGhpcy5ob3VyPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJob3VyIixlLGxpWzJdWzJdKSx0aGlzLm1pbnV0ZT10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgibWludXRlIixlLGxpWzNdWzJdKSx0aGlzLnNlY29uZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgic2Vjb25kIixlLGxpWzRdWzJdKSl9aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtmb3IoO3RoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MDspdGhpcy55ZWFyLS07aWYodGhpcy55ZWFyPDApcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsdCwwLHIrMSl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsdCxhLTEscisxKX1yZXR1cm4gYSs9MSxhPj1saS5sZW5ndGg/dGhpczp0aGlzLnllYXI8MD9udWxsOnRoaXMucmVjdXJzZUJhY2t3YXJkKGUsdCxhLHIrMSl9Z2V0TWF4UGF0dGVyblZhbHVlKGUsdCxhKXtpZihlPT09ImRheSImJnQubGFzdERheU9mTW9udGgpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2lmKGU9PT0iZGF5IiYmIXQuc3RhckRPVylyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7Zm9yKGxldCByPXRbZV0ubGVuZ3RoLTE7cj49MDtyLS0paWYodFtlXVtyXSlyZXR1cm4gci1hO3JldHVybiB0W2VdLmxlbmd0aC0xLWF9ZmluZFByZXZpb3VzKGUsdCxhLHIpe3JldHVybiB0aGlzLl9maW5kTWF0Y2goZSx0LGEsciwtMSl9Z2V0RGF0ZShlKXtyZXR1cm4gZXx8dGhpcy50ej09PXZvaWQgMD9uZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcyk6dHlwZW9mIHRoaXMudHo9PSJudW1iZXIiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZS10aGlzLnR6LHRoaXMuc2Vjb25kLHRoaXMubXMpKTpaZHQoWnVlKHRoaXMueWVhcix0aGlzLm1vbnRoKzEsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMudHopLCExKX1nZXRUaW1lKCl7cmV0dXJuIHRoaXMuZ2V0RGF0ZSghMSkuZ2V0VGltZSgpfW1hdGNoKGUsdCl7aWYoIWUuc3RhclllYXImJih0aGlzLnllYXI8MHx8dGhpcy55ZWFyPj1lLnllYXIubGVuZ3RofHxlLnllYXJbdGhpcy55ZWFyXT09PTApKXJldHVybiExO2ZvcihsZXQgYT0wO2E8bGkubGVuZ3RoO2ErKyl7bGV0IHI9bGlbYV1bMF0sbj1saVthXVsyXSxvPXRoaXNbcl07aWYobytuPDB8fG8rbj49ZVtyXS5sZW5ndGgpcmV0dXJuITE7bGV0IGw9ZVtyXVtvK25dO2lmKHI9PT0iZGF5Iil7aWYoIWwpe2ZvcihsZXQgcD0wO3A8ZS5uZWFyZXN0V2Vla2RheXMubGVuZ3RoO3ArKylpZihlLm5lYXJlc3RXZWVrZGF5c1twXSl7bGV0IGQ9dGhpcy5nZXROZWFyZXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCxwLW4pO2lmKGQhPT0tMSYmZD09PW8pe2w9MTticmVha319fWlmKGUubGFzdFdlZWtkYXkpe2xldCBwPXRoaXMuZ2V0TGFzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgpO289PT1wJiYobD0xKX1pZihlLmxhc3REYXlPZk1vbnRoKXtsZXQgcD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09cCYmKGw9MSl9aWYoIWUuc3RhckRPVyl7bGV0IHA9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCksZD1lLmRheU9mV2Vla1socCsoby0xKSklN107ZCYmZCY2MyYmKGQ9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLG8sZCk/MTowKSxlLnVzZUFuZExvZ2ljP2w9bCYmZDohdC5kb21BbmREb3cmJiFlLnN0YXJET00/bD1sfHxkOmw9bCYmZH19aWYoIWwpcmV0dXJuITF9cmV0dXJuITB9fTtpKHZMYSwiUiIpO2koU3ksInAiKTtpKHhMYSwiXyIpO2koeUxhLCJ4Iik7UWR0PTMwKjFlMyxGNz1bXSxlMHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRSIpfW5hbWU7b3B0aW9ucztfc3RhdGVzO2ZuO2dldFR6KCl7cmV0dXJuIHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldH1hcHBseURheU9mZnNldChzKXtpZih0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09dm9pZCAwJiZ0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09MCl7bGV0IGU9dGhpcy5vcHRpb25zLmRheU9mZnNldCoyNCo2MCo2MCoxZTM7cmV0dXJuIG5ldyBEYXRlKHMuZ2V0VGltZSgpK2UpfXJldHVybiBzfWNvbnN0cnVjdG9yKHMsZSx0KXtsZXQgYSxyO2lmKFN5KGUpKXI9ZTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilhPWU7ZWxzZSBpZihlIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIG9wdGlvbnNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZihTeSh0KSlyPXQ7ZWxzZSBpZih0eXBlb2YgdD09Im9iamVjdCIpYT10O2Vsc2UgaWYodCE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBmdW5jSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYodGhpcy5uYW1lPWE/Lm5hbWUsdGhpcy5vcHRpb25zPXZMYShhKSx0aGlzLl9zdGF0ZXM9e2tpbGw6ITEsYmxvY2tpbmc6ITEscHJldmlvdXNSdW46dm9pZCAwLGN1cnJlbnRSdW46dm9pZCAwLG9uY2U6dm9pZCAwLGN1cnJlbnRUaW1lb3V0OnZvaWQgMCxtYXhSdW5zOmE/YS5tYXhSdW5zOnZvaWQgMCxwYXVzZWQ6YT9hLnBhdXNlZDohMSxwYXR0ZXJuOm5ldyBEZWUoIiogKiAqICogKiIsdm9pZCAwLHttb2RlOiJhdXRvIn0pfSxzJiYocyBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiBzPT0ic3RyaW5nIiYmcy5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IEJyKHMsdGhpcy5nZXRUeigpKTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgRGVlKHMsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKEY3LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7RjcucHVzaCh0aGlzKX1yZXR1cm4gciE9PXZvaWQgMCYmeExhKHIpJiYodGhpcy5mbj1yLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKHMpe2xldCBlPXRoaXMuX25leHQocyk7cmV0dXJuIGU/dGhpcy5hcHBseURheU9mZnNldChlLmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKHMsZSl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnM+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJihzPXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgdD1lfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHMsdCwibmV4dCIpfXByZXZpb3VzUnVucyhzLGUpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHMsZXx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKHMsZSx0KXtsZXQgYT1bXSxyPWU/bmV3IEJyKGUsdGhpcy5nZXRUeigpKTpudWxsLG49dD09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7cy0tOyl7bGV0IG89bi5jYWxsKHRoaXMscik7aWYoIW8pYnJlYWs7bGV0IGw9by5nZXREYXRlKCExKTthLnB1c2godGhpcy5hcHBseURheU9mZnNldChsKSkscj1vfXJldHVybiBhfW1hdGNoKHMpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgdD1uZXcgQnIocyx0aGlzLmdldFR6KCkpO3QubXM9MDtsZXQgYT1uZXcgQnIodGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gYS5tcz0wLHQuZ2V0VGltZSgpPT09YS5nZXRUaW1lKCl9bGV0IGU9bmV3IEJyKHMsdGhpcy5nZXRUeigpKTtyZXR1cm4gZS5tcz0wLGUubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCBzPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksZT0hdGhpcy5fc3RhdGVzLnBhdXNlZCx0PXRoaXMuZm4hPT12b2lkIDAsYT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIGUmJnQmJmEmJnMhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dChzKXtsZXQgZT10aGlzLl9uZXh0KHMpO3JldHVybiBlP3MgaW5zdGFuY2VvZiBCcnx8cyBpbnN0YW5jZW9mIERhdGU/ZS5nZXRUaW1lKCktcy5nZXRUaW1lKCk6ZS5nZXRUaW1lKCktbmV3IEJyKHMpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCBzPUY3LmluZGV4T2YodGhpcyk7cz49MCYmRjcuc3BsaWNlKHMsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKHMpe2lmKHMmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTtzJiYodGhpcy5mbj1zKTtsZXQgZT10aGlzLm1zVG9OZXh0KCksdD10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiBlPT1udWxsfHxpc05hTihlKXx8dD09PW51bGw/dGhpczooZT5RZHQmJihlPVFkdCksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcih0KSxlKSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmeUxhKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIocyl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBCcih2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKGUpe2lmKFN5KHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaChlLHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBCcihzLHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIocyl7bGV0IGU9bmV3IERhdGUsdD0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmZS5nZXRUaW1lKCk+PXMuZ2V0VGltZSgpLGE9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDt0JiYhYT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTp0JiZhJiZTeSh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dChzKXtsZXQgZT0hIShzfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksdD0hMTshcyYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFtzLGVdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKHMsZSksdD0hcykscz1uZXcgQnIocyx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZzJiZzLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJihzPXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgYT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IEJyKHMsdGhpcy5nZXRUeigpKTtyZXR1cm4hdCYmYSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoYT1hLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsZSkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PXMuZ2V0VGltZSgpfHxhPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmYS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6YX1fcHJldmlvdXMocyl7bGV0IGU9bmV3IEJyKHMsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZlLmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKGU9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHQ9bmV3IEJyKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPGUuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHQ9dC5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSx0PT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnQuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnQpfV9jYWxjdWxhdGVQcmV2aW91c1J1bihzLGUpe2xldCB0PW5ldyBCcih2b2lkIDAsdGhpcy5nZXRUeigpKSxhPXM7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD10LmdldFRpbWUoKSl7YT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgcj1hLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7cjw9dC5nZXRUaW1lKCk7KWE9bmV3IEJyKGEsdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxyPWEuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7ZT0hMH1yZXR1cm4gYT09PW51bGwmJihhPXZvaWQgMCksW2EsZV19fX0pO3ZhciBFZWUsTXksd0xhLHU4cyxYMixQZWUsV28sTmwsQjcsUXVlLGNwLEg3LEllZSxBZWUsTmVlLFJlZSxHNCxxNyxMZWUsYTB0LEp1ZSxlcGUsczB0LHRwZSx3YT1nKCgpPT57RWVlPTcsTXk9MzY1LjI0MjUsd0xhPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyx1OHM9LXdMYSxYMj02MDQ4ZTUsUGVlPTg2NGU1LFdvPTZlNCxObD0zNmU1LEI3PTFlMyxRdWU9NTI1NjAwLGNwPTQzMjAwLEg3PTE0NDAsSWVlPTYwLEFlZT0zLE5lZT0xMixSZWU9NCxHND0zNjAwLHE3PTYwLExlZT1HNCoyNCxhMHQ9TGVlKjcsSnVlPUxlZSozNjUuMjQyNSxlcGU9SnVlLzEyLHMwdD1lcGUqMyx0cGU9U3ltYm9sLmZvcigiY29uc3RydWN0RGF0ZUZyb20iKX0pO2Z1bmN0aW9uIHR0KHMsZSl7cmV0dXJuIHR5cGVvZiBzPT0iZnVuY3Rpb24iP3MoZSk6cyYmdHlwZW9mIHM9PSJvYmplY3QiJiZ0cGUgaW4gcz9zW3RwZV0oZSk6cyBpbnN0YW5jZW9mIERhdGU/bmV3IHMuY29uc3RydWN0b3IoZSk6bmV3IERhdGUoZSl9dmFyIGY4cyxHdD1nKCgpPT57d2EoKTtpKHR0LCJjb25zdHJ1Y3RGcm9tIik7ZjhzPXR0fSk7ZnVuY3Rpb24gQWUocyxlKXtyZXR1cm4gdHQoZXx8cyxzKX12YXIgdjhzLGF0PWcoKCk9PntHdCgpO2koQWUsInRvRGF0ZSIpO3Y4cz1BZX0pO2Z1bmN0aW9uIEhyKHMsZSx0KXtsZXQgYT1BZShzLHQ/LmluKTtyZXR1cm4gaXNOYU4oZSk/dHQodD8uaW58fHMsTmFOKTooZSYmYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2UpLGEpfXZhciBTOHMsUTI9ZygoKT0+e0d0KCk7YXQoKTtpKEhyLCJhZGREYXlzIik7UzhzPUhyfSk7ZnVuY3Rpb24gSjIocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO2lmKGlzTmFOKGUpKXJldHVybiB0dCh0Py5pbnx8cyxOYU4pO2lmKCFlKXJldHVybiBhO2xldCByPWEuZ2V0RGF0ZSgpLG49dHQodD8uaW58fHMsYS5nZXRUaW1lKCkpO24uc2V0TW9udGgoYS5nZXRNb250aCgpK2UrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gcj49bz9uOihhLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksciksYSl9dmFyIFQ4cyxqNz1nKCgpPT57R3QoKTthdCgpO2koSjIsImFkZE1vbnRocyIpO1Q4cz1KMn0pO2Z1bmN0aW9uIGRwKHMsZSx0KXtsZXR7eWVhcnM6YT0wLG1vbnRoczpyPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOnA9MCxzZWNvbmRzOmQ9MH09ZSx1PUFlKHMsdD8uaW4pLGM9cnx8YT9KMih1LHIrYSoxMik6dSxiPW98fG4/SHIoYyxvK24qNyk6Yyx2PXArbCo2MCxtPShkK3YqNjApKjFlMztyZXR1cm4gdHQodD8uaW58fHMsK2IrbSl9dmFyIEE4cyxhcGU9ZygoKT0+e1EyKCk7ajcoKTtHdCgpO2F0KCk7aShkcCwiYWRkIik7QThzPWRwfSk7ZnVuY3Rpb24gT2VlKHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09Nn12YXIgRjhzLHNwZT1nKCgpPT57YXQoKTtpKE9lZSwiaXNTYXR1cmRheSIpO0Y4cz1PZWV9KTtmdW5jdGlvbiBGZWUocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF5KCk9PT0wfXZhciBqOHMsaXBlPWcoKCk9PnthdCgpO2koRmVlLCJpc1N1bmRheSIpO2o4cz1GZWV9KTtmdW5jdGlvbiBlZChzLGUpe2xldCB0PUFlKHMsZT8uaW4pLmdldERheSgpO3JldHVybiB0PT09MHx8dD09PTZ9dmFyIEc4cyx6eT1nKCgpPT57YXQoKTtpKGVkLCJpc1dlZWtlbmQiKTtHOHM9ZWR9KTtmdW5jdGlvbiBCZWUocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9ZWQoYSx0KTtpZihpc05hTihlKSlyZXR1cm4gdHQodD8uaW4sTmFOKTtsZXQgbj1hLmdldEhvdXJzKCksbz1lPDA/LTE6MSxsPU1hdGgudHJ1bmMoZS81KTthLnNldERhdGUoYS5nZXREYXRlKCkrbCo3KTtsZXQgcD1NYXRoLmFicyhlJTUpO2Zvcig7cD4wOylhLnNldERhdGUoYS5nZXREYXRlKCkrbyksZWQoYSx0KXx8KHAtPTEpO3JldHVybiByJiZlZChhLHQpJiZlIT09MCYmKE9lZShhLHQpJiZhLnNldERhdGUoYS5nZXREYXRlKCkrKG88MD8yOi0xKSksRmVlKGEsdCkmJmEuc2V0RGF0ZShhLmdldERhdGUoKSsobzwwPzE6LTIpKSksYS5zZXRIb3VycyhuKSxhfXZhciB0Z3MscnBlPWcoKCk9PntHdCgpO3NwZSgpO2lwZSgpO3p5KCk7YXQoKTtpKEJlZSwiYWRkQnVzaW5lc3NEYXlzIik7dGdzPUJlZX0pO2Z1bmN0aW9uIHVwKHMsZSx0KXtyZXR1cm4gdHQodD8uaW58fHMsK0FlKHMpK2UpfXZhciBvZ3MsQ3k9ZygoKT0+e0d0KCk7YXQoKTtpKHVwLCJhZGRNaWxsaXNlY29uZHMiKTtvZ3M9dXB9KTtmdW5jdGlvbiBIZWUocyxlLHQpe3JldHVybiB1cChzLGUqTmwsdCl9dmFyIHVncyxvcGU9ZygoKT0+e0N5KCk7d2EoKTtpKEhlZSwiYWRkSG91cnMiKTt1Z3M9SGVlfSk7ZnVuY3Rpb24gRXMoKXtyZXR1cm4gaTB0fWZ1bmN0aW9uIHIwdChzKXtpMHQ9c312YXIgaTB0LEdvPWcoKCk9PntpMHQ9e307aShFcywiZ2V0RGVmYXVsdE9wdGlvbnMiKTtpKHIwdCwic2V0RGVmYXVsdE9wdGlvbnMiKX0pO2Z1bmN0aW9uIEtzKHMsZSl7bGV0IHQ9RXMoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Qud2Vla1N0YXJ0c09uPz90LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHI9QWUocyxlPy5pbiksbj1yLmdldERheSgpLG89KG48YT83OjApK24tYTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpLW8pLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgdmdzLHYxPWcoKCk9PntHbygpO2F0KCk7aShLcywic3RhcnRPZldlZWsiKTt2Z3M9S3N9KTtmdW5jdGlvbiBrcihzLGUpe3JldHVybiBLcyhzLHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIGtncyx0ZD1nKCgpPT57djEoKTtpKGtyLCJzdGFydE9mSVNPV2VlayIpO2tncz1rcn0pO2Z1bmN0aW9uIHduKHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldEZ1bGxZZWFyKCkscj10dCh0LDApO3Iuc2V0RnVsbFllYXIoYSsxLDAsNCksci5zZXRIb3VycygwLDAsMCwwKTtsZXQgbj1rcihyKSxvPXR0KHQsMCk7by5zZXRGdWxsWWVhcihhLDAsNCksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1rcihvKTtyZXR1cm4gdC5nZXRUaW1lKCk+PW4uZ2V0VGltZSgpP2ErMTp0LmdldFRpbWUoKT49bC5nZXRUaW1lKCk/YTphLTF9dmFyIFRncyxwcD1nKCgpPT57R3QoKTt0ZCgpO2F0KCk7aSh3biwiZ2V0SVNPV2Vla1llYXIiKTtUZ3M9d259KTtmdW5jdGlvbiBGaShzKXtsZXQgZT1BZShzKSx0PW5ldyBEYXRlKERhdGUuVVRDKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCksZS5nZXRIb3VycygpLGUuZ2V0TWludXRlcygpLGUuZ2V0U2Vjb25kcygpLGUuZ2V0TWlsbGlzZWNvbmRzKCkpKTtyZXR1cm4gdC5zZXRVVENGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkpLCtzLSt0fXZhciB1MD1nKCgpPT57YXQoKTtpKEZpLCJnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIil9KTtmdW5jdGlvbiBWdChzLC4uLmUpe2xldCB0PXR0LmJpbmQobnVsbCxzfHxlLmZpbmQoYT0+dHlwZW9mIGE9PSJvYmplY3QiKSk7cmV0dXJuIGUubWFwKHQpfXZhciBScz1nKCgpPT57R3QoKTtpKFZ0LCJub3JtYWxpemVEYXRlcyIpfSk7ZnVuY3Rpb24gYWQocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBPZ3MsVHk9ZygoKT0+e2F0KCk7aShhZCwic3RhcnRPZkRheSIpO09ncz1hZH0pO2Z1bmN0aW9uIG5vKHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpLG49YWQoYSksbz1hZChyKSxsPStuLUZpKG4pLHA9K28tRmkobyk7cmV0dXJuIE1hdGgucm91bmQoKGwtcCkvUGVlKX12YXIgVWdzLHAwPWcoKCk9Pnt1MCgpO1JzKCk7d2EoKTtUeSgpO2kobm8sImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIpO1Vncz1ub30pO2Z1bmN0aW9uIFJsKHMsZSl7bGV0IHQ9d24ocyxlKSxhPXR0KGU/LmlufHxzLDApO3JldHVybiBhLnNldEZ1bGxZZWFyKHQsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApLGtyKGEpfXZhciBYZ3MsVjc9ZygoKT0+e0d0KCk7cHAoKTt0ZCgpO2koUmwsInN0YXJ0T2ZJU09XZWVrWWVhciIpO1hncz1SbH0pO2Z1bmN0aW9uIHFlZShzLGUsdCl7bGV0IGE9QWUocyx0Py5pbikscj1ubyhhLFJsKGEsdCkpLG49dHQodD8uaW58fHMsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoZSwwLDQpLG4uc2V0SG91cnMoMCwwLDAsMCksYT1SbChuKSxhLnNldERhdGUoYS5nZXREYXRlKCkrciksYX12YXIgaTdzLG5wZT1nKCgpPT57R3QoKTtwMCgpO1Y3KCk7YXQoKTtpKHFlZSwic2V0SVNPV2Vla1llYXIiKTtpN3M9cWVlfSk7ZnVuY3Rpb24gamVlKHMsZSx0KXtyZXR1cm4gcWVlKHMsd24ocyx0KStlLHQpfXZhciBjN3MsbHBlPWcoKCk9PntwcCgpO25wZSgpO2koamVlLCJhZGRJU09XZWVrWWVhcnMiKTtjN3M9amVlfSk7ZnVuY3Rpb24gVTcocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldFRpbWUoYS5nZXRUaW1lKCkrZSpXbyksYX12YXIgZjdzLFZlZT1nKCgpPT57d2EoKTthdCgpO2koVTcsImFkZE1pbnV0ZXMiKTtmN3M9VTd9KTtmdW5jdGlvbiBXNyhzLGUsdCl7cmV0dXJuIEoyKHMsZSozLHQpfXZhciB2N3MsVWVlPWcoKCk9PntqNygpO2koVzcsImFkZFF1YXJ0ZXJzIik7djdzPVc3fSk7ZnVuY3Rpb24gV2VlKHMsZSx0KXtyZXR1cm4gdXAocyxlKjFlMyx0KX12YXIgazdzLGNwZT1nKCgpPT57Q3koKTtpKFdlZSwiYWRkU2Vjb25kcyIpO2s3cz1XZWV9KTtmdW5jdGlvbiBocChzLGUsdCl7cmV0dXJuIEhyKHMsZSo3LHQpfXZhciB6N3MsJHk9ZygoKT0+e1EyKCk7aShocCwiYWRkV2Vla3MiKTt6N3M9aHB9KTtmdW5jdGlvbiBHZWUocyxlLHQpe3JldHVybiBKMihzLGUqMTIsdCl9dmFyIEQ3cyxkcGU9ZygoKT0+e2o3KCk7aShHZWUsImFkZFllYXJzIik7RDdzPUdlZX0pO2Z1bmN0aW9uIG8wdChzLGUsdCl7bGV0W2Escl09WytBZShzLnN0YXJ0LHQ/LmluKSwrQWUocy5lbmQsdD8uaW4pXS5zb3J0KChsLHApPT5sLXApLFtuLG9dPVsrQWUoZS5zdGFydCx0Py5pbiksK0FlKGUuZW5kLHQ/LmluKV0uc29ydCgobCxwKT0+bC1wKTtyZXR1cm4gdD8uaW5jbHVzaXZlP2E8PW8mJm48PXI6YTxvJiZuPHJ9dmFyIEk3cyxuMHQ9ZygoKT0+e2F0KCk7aShvMHQsImFyZUludGVydmFsc092ZXJsYXBwaW5nIik7STdzPW8wdH0pO2Z1bmN0aW9uIEtlZShzLGUpe2xldCB0LGE9ZT8uaW47cmV0dXJuIHMuZm9yRWFjaChyPT57IWEmJnR5cGVvZiByPT0ib2JqZWN0IiYmKGE9dHQuYmluZChudWxsLHIpKTtsZXQgbj1BZShyLGEpOyghdHx8dDxufHxpc05hTigrbikpJiYodD1uKX0pLHR0KGEsdHx8TmFOKX12YXIgRjdzLHVwZT1nKCgpPT57R3QoKTthdCgpO2koS2VlLCJtYXgiKTtGN3M9S2VlfSk7ZnVuY3Rpb24gWWVlKHMsZSl7bGV0IHQsYT1lPy5pbjtyZXR1cm4gcy5mb3JFYWNoKHI9PnshYSYmdHlwZW9mIHI9PSJvYmplY3QiJiYoYT10dC5iaW5kKG51bGwscikpO2xldCBuPUFlKHIsYSk7KCF0fHx0Pm58fGlzTmFOKCtuKSkmJih0PW4pfSksdHQoYSx0fHxOYU4pfXZhciBWN3MscHBlPWcoKCk9PntHdCgpO2F0KCk7aShZZWUsIm1pbiIpO1Y3cz1ZZWV9KTtmdW5jdGlvbiBsMHQocyxlLHQpe2xldFthLHIsbl09VnQodD8uaW4scyxlLnN0YXJ0LGUuZW5kKTtyZXR1cm4gWWVlKFtLZWUoW2Escl0sdCksbl0sdCl9dmFyIFo3cyxjMHQ9ZygoKT0+e1JzKCk7dXBlKCk7cHBlKCk7aShsMHQsImNsYW1wIik7WjdzPWwwdH0pO2Z1bmN0aW9uIFplZShzLGUpe2xldCB0PStBZShzKTtpZihpc05hTih0KSlyZXR1cm4gTmFOO2xldCBhLHI7cmV0dXJuIGUuZm9yRWFjaCgobixvKT0+e2xldCBsPUFlKG4pO2lmKGlzTmFOKCtsKSl7YT1OYU4scj1OYU47cmV0dXJufWxldCBwPU1hdGguYWJzKHQtK2wpOyhhPT1udWxsfHxwPHIpJiYoYT1vLHI9cCl9KSxhfXZhciBlOXMsaHBlPWcoKCk9PnthdCgpO2koWmVlLCJjbG9zZXN0SW5kZXhUbyIpO2U5cz1aZWV9KTtmdW5jdGlvbiBkMHQocyxlLHQpe2xldFthLC4uLnJdPVZ0KHQ/LmluLHMsLi4uZSksbj1aZWUoYSxyKTtpZih0eXBlb2Ygbj09Im51bWJlciImJmlzTmFOKG4pKXJldHVybiB0dChhLE5hTik7aWYobiE9PXZvaWQgMClyZXR1cm4gcltuXX12YXIgbzlzLHUwdD1nKCgpPT57UnMoKTtocGUoKTtHdCgpO2koZDB0LCJjbG9zZXN0VG8iKTtvOXM9ZDB0fSk7ZnVuY3Rpb24gS28ocyxlKXtsZXQgdD0rQWUocyktK0FlKGUpO3JldHVybiB0PDA/LTE6dD4wPzE6dH12YXIgZDlzLEs0PWcoKCk9PnthdCgpO2koS28sImNvbXBhcmVBc2MiKTtkOXM9S299KTtmdW5jdGlvbiBwMHQocyxlKXtsZXQgdD0rQWUocyktK0FlKGUpO3JldHVybiB0PjA/LTE6dDwwPzE6dH12YXIgZjlzLGgwdD1nKCgpPT57YXQoKTtpKHAwdCwiY29tcGFyZURlc2MiKTtmOXM9cDB0fSk7ZnVuY3Rpb24gUGEocyl7cmV0dXJuIHR0KHMsRGF0ZS5ub3coKSl9dmFyIHY5cyxxcj1nKCgpPT57R3QoKTtpKFBhLCJjb25zdHJ1Y3ROb3ciKTt2OXM9UGF9KTtmdW5jdGlvbiBmMHQocyl7bGV0IGU9TWF0aC50cnVuYyhzLzcpO3JldHVybiBlPT09MD8wOmV9dmFyIGs5cyxtMHQ9ZygoKT0+e3dhKCk7aShmMHQsImRheXNUb1dlZWtzIik7azlzPWYwdH0pO2Z1bmN0aW9uIHNkKHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO3JldHVybithZChhKT09K2FkKHIpfXZhciBDOXMsRzc9ZygoKT0+e1JzKCk7VHkoKTtpKHNkLCJpc1NhbWVEYXkiKTtDOXM9c2R9KTtmdW5jdGlvbiBYZWUocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2Ygcz09Im9iamVjdCImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKT09PSJbb2JqZWN0IERhdGVdIn12YXIgRDlzLGZwZT1nKCgpPT57aShYZWUsImlzRGF0ZSIpO0Q5cz1YZWV9KTtmdW5jdGlvbiBrbyhzKXtyZXR1cm4hKCFYZWUocykmJnR5cGVvZiBzIT0ibnVtYmVyInx8aXNOYU4oK0FlKHMpKSl9dmFyIEE5cyxoMD1nKCgpPT57ZnBlKCk7YXQoKTtpKGtvLCJpc1ZhbGlkIik7QTlzPWtvfSk7ZnVuY3Rpb24gZzB0KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO2lmKCFrbyhhKXx8IWtvKHIpKXJldHVybiBOYU47bGV0IG49bm8oYSxyKSxvPW48MD8tMToxLGw9TWF0aC50cnVuYyhuLzcpLHA9bCo1LGQ9SHIocixsKjcpO2Zvcig7IXNkKGEsZCk7KXArPWVkKGQsdCk/MDpvLGQ9SHIoZCxvKTtyZXR1cm4gcD09PTA/MDpwfXZhciBWOXMsYjB0PWcoKCk9PntScygpO1EyKCk7cDAoKTtHNygpO2gwKCk7enkoKTtpKGcwdCwiZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzIik7VjlzPWcwdH0pO2Z1bmN0aW9uIFFlZShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4gd24oYSx0KS13bihyLHQpfXZhciBZOXMsbXBlPWcoKCk9PntScygpO3BwKCk7aShRZWUsImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzIik7WTlzPVFlZX0pO2Z1bmN0aW9uIHYwdChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPWtyKGEpLG89a3IociksbD0rbi1GaShuKSxwPStvLUZpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLXApL1gyKX12YXIgYWJzLHgwdD1nKCgpPT57dTAoKTtScygpO3dhKCk7dGQoKTtpKHYwdCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyIpO2Ficz12MHR9KTtmdW5jdGlvbiBZNChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPWEuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCksbz1hLmdldE1vbnRoKCktci5nZXRNb250aCgpO3JldHVybiBuKjEyK299dmFyIG9icyxKZWU9ZygoKT0+e1JzKCk7aShZNCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMiKTtvYnM9WTR9KTtmdW5jdGlvbiBEeShzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiBNYXRoLnRydW5jKHQuZ2V0TW9udGgoKS8zKSsxfXZhciBkYnMsZ3BlPWcoKCk9PnthdCgpO2koRHksImdldFF1YXJ0ZXIiKTtkYnM9RHl9KTtmdW5jdGlvbiBLNyhzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPWEuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCksbz1EeShhKS1EeShyKTtyZXR1cm4gbio0K299dmFyIG1icyxicGU9ZygoKT0+e1JzKCk7Z3BlKCk7aShLNywiZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyIpO21icz1LN30pO2Z1bmN0aW9uIFo0KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpLG49S3MoYSx0KSxvPUtzKHIsdCksbD0rbi1GaShuKSxwPStvLUZpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLXApL1gyKX12YXIga2JzLGV0ZT1nKCgpPT57dTAoKTtScygpO3dhKCk7djEoKTtpKFo0LCJkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIik7a2JzPVo0fSk7ZnVuY3Rpb24gZnAocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCl9dmFyIHpicyx0dGU9ZygoKT0+e1JzKCk7aShmcCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIpO3picz1mcH0pO2Z1bmN0aW9uIFk3KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpLG49eTB0KGEsciksbz1NYXRoLmFicyhubyhhLHIpKTthLnNldERhdGUoYS5nZXREYXRlKCktbipvKTtsZXQgbD0rKHkwdChhLHIpPT09LW4pLHA9biooby1sKTtyZXR1cm4gcD09PTA/MDpwfWZ1bmN0aW9uIHkwdChzLGUpe2xldCB0PXMuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCl8fHMuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCl8fHMuZ2V0RGF0ZSgpLWUuZ2V0RGF0ZSgpfHxzLmdldEhvdXJzKCktZS5nZXRIb3VycygpfHxzLmdldE1pbnV0ZXMoKS1lLmdldE1pbnV0ZXMoKXx8cy5nZXRTZWNvbmRzKCktZS5nZXRTZWNvbmRzKCl8fHMuZ2V0TWlsbGlzZWNvbmRzKCktZS5nZXRNaWxsaXNlY29uZHMoKTtyZXR1cm4gdDwwPy0xOnQ+MD8xOnR9dmFyIExicyxhdGU9ZygoKT0+e1JzKCk7cDAoKTtpKFk3LCJkaWZmZXJlbmNlSW5EYXlzIik7aSh5MHQsImNvbXBhcmVMb2NhbEFzYyIpO0xicz1ZN30pO2Z1bmN0aW9uIFlvKHMpe3JldHVybiBlPT57bGV0IGE9KHM/TWF0aFtzXTpNYXRoLnRydW5jKShlKTtyZXR1cm4gYT09PTA/MDphfX12YXIgZjA9ZygoKT0+e2koWW8sImdldFJvdW5kaW5nTWV0aG9kIil9KTtmdW5jdGlvbiBYNChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPSgrYS0rcikvTmw7cmV0dXJuIFlvKHQ/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgRmJzLHN0ZT1nKCgpPT57ZjAoKTtScygpO3dhKCk7aShYNCwiZGlmZmVyZW5jZUluSG91cnMiKTtGYnM9WDR9KTtmdW5jdGlvbiBpdGUocyxlLHQpe3JldHVybiBqZWUocywtZSx0KX12YXIgamJzLHZwZT1nKCgpPT57bHBlKCk7aShpdGUsInN1YklTT1dlZWtZZWFycyIpO2picz1pdGV9KTtmdW5jdGlvbiB3MHQocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSksbj1LbyhhLHIpLG89TWF0aC5hYnMoUWVlKGEscix0KSksbD1pdGUoYSxuKm8sdCkscD0rKEtvKGwscik9PT0tbiksZD1uKihvLXApO3JldHVybiBkPT09MD8wOmR9dmFyIFpicyxrMHQ9ZygoKT0+e1JzKCk7SzQoKTttcGUoKTt2cGUoKTtpKHcwdCwiZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzIik7WmJzPXcwdH0pO2Z1bmN0aW9uIFo3KHMsZSl7cmV0dXJuK0FlKHMpLStBZShlKX12YXIgZXZzLHJ0ZT1nKCgpPT57YXQoKTtpKFo3LCJkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMiKTtldnM9Wjd9KTtmdW5jdGlvbiBRNChzLGUsdCl7bGV0IGE9WjcocyxlKS9XbztyZXR1cm4gWW8odD8ucm91bmRpbmdNZXRob2QpKGEpfXZhciBvdnMsb3RlPWcoKCk9PntmMCgpO3dhKCk7cnRlKCk7aShRNCwiZGlmZmVyZW5jZUluTWludXRlcyIpO292cz1RNH0pO2Z1bmN0aW9uIFg3KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0SG91cnMoMjMsNTksNTksOTk5KSx0fXZhciBkdnMsbnRlPWcoKCk9PnthdCgpO2koWDcsImVuZE9mRGF5Iik7ZHZzPVg3fSk7ZnVuY3Rpb24gUTcocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0TW9udGgoKTtyZXR1cm4gdC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCksYSsxLDApLHQuc2V0SG91cnMoMjMsNTksNTksOTk5KSx0fXZhciBmdnMsbHRlPWcoKCk9PnthdCgpO2koUTcsImVuZE9mTW9udGgiKTtmdnM9UTd9KTtmdW5jdGlvbiBjdGUocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4rWDcodCxlKT09K1E3KHQsZSl9dmFyIHl2cyx4cGU9ZygoKT0+e250ZSgpO2x0ZSgpO2F0KCk7aShjdGUsImlzTGFzdERheU9mTW9udGgiKTt5dnM9Y3RlfSk7ZnVuY3Rpb24gbXAocyxlLHQpe2xldFthLHIsbl09VnQodD8uaW4scyxzLGUpLG89S28ocixuKSxsPU1hdGguYWJzKFk0KHIsbikpO2lmKGw8MSlyZXR1cm4gMDtyLmdldE1vbnRoKCk9PT0xJiZyLmdldERhdGUoKT4yNyYmci5zZXREYXRlKDMwKSxyLnNldE1vbnRoKHIuZ2V0TW9udGgoKS1vKmwpO2xldCBwPUtvKHIsbik9PT0tbztjdGUoYSkmJmw9PT0xJiZLbyhhLG4pPT09MSYmKHA9ITEpO2xldCBkPW8qKGwtK3ApO3JldHVybiBkPT09MD8wOmR9dmFyIEN2cyxMeT1nKCgpPT57UnMoKTtLNCgpO0plZSgpO3hwZSgpO2kobXAsImRpZmZlcmVuY2VJbk1vbnRocyIpO0N2cz1tcH0pO2Z1bmN0aW9uIFMwdChzLGUsdCl7bGV0IGE9bXAocyxlLHQpLzM7cmV0dXJuIFlvKHQ/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgRXZzLF8wdD1nKCgpPT57ZjAoKTtMeSgpO2koUzB0LCJkaWZmZXJlbmNlSW5RdWFydGVycyIpO0V2cz1TMHR9KTtmdW5jdGlvbiBpZChzLGUsdCl7bGV0IGE9WjcocyxlKS8xZTM7cmV0dXJuIFlvKHQ/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgUnZzLEV5PWcoKCk9PntmMCgpO3J0ZSgpO2koaWQsImRpZmZlcmVuY2VJblNlY29uZHMiKTtSdnM9aWR9KTtmdW5jdGlvbiBNMHQocyxlLHQpe2xldCBhPVk3KHMsZSx0KS83O3JldHVybiBZbyh0Py5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIHF2cyx6MHQ9ZygoKT0+e2YwKCk7YXRlKCk7aShNMHQsImRpZmZlcmVuY2VJbldlZWtzIik7cXZzPU0wdH0pO2Z1bmN0aW9uIGR0ZShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPUtvKGEsciksbz1NYXRoLmFicyhmcChhLHIpKTthLnNldEZ1bGxZZWFyKDE1ODQpLHIuc2V0RnVsbFllYXIoMTU4NCk7bGV0IGw9S28oYSxyKT09PS1uLHA9biooby0rbCk7cmV0dXJuIHA9PT0wPzA6cH12YXIgS3ZzLHlwZT1nKCgpPT57UnMoKTtLNCgpO3R0ZSgpO2koZHRlLCJkaWZmZXJlbmNlSW5ZZWFycyIpO0t2cz1kdGV9KTtmdW5jdGlvbiBsbyhzLGUpe2xldFt0LGFdPVZ0KHMsZS5zdGFydCxlLmVuZCk7cmV0dXJue3N0YXJ0OnQsZW5kOmF9fXZhciByZD1nKCgpPT57UnMoKTtpKGxvLCJub3JtYWxpemVJbnRlcnZhbCIpfSk7ZnVuY3Rpb24gdXRlKHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscj0hcik7bGV0IHA9W107Zm9yKDsrbzw9bjspcC5wdXNoKHR0KHQsbykpLG8uc2V0RGF0ZShvLmdldERhdGUoKStsKSxvLnNldEhvdXJzKDAsMCwwLDApO3JldHVybiByP3AucmV2ZXJzZSgpOnB9dmFyIGF4cyx3cGU9ZygoKT0+e3JkKCk7R3QoKTtpKHV0ZSwiZWFjaERheU9mSW50ZXJ2YWwiKTtheHM9dXRlfSk7ZnVuY3Rpb24gQzB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscj0hcik7bGV0IHA9W107Zm9yKDsrbzw9bjspcC5wdXNoKHR0KHQsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK2wpO3JldHVybiByP3AucmV2ZXJzZSgpOnB9dmFyIG54cyxUMHQ9ZygoKT0+e3JkKCk7R3QoKTtpKEMwdCwiZWFjaEhvdXJPZkludGVydmFsIik7bnhzPUMwdH0pO2Z1bmN0aW9uICQwdChzLGUpe2xldHtzdGFydDp0LGVuZDphfT1sbyhlPy5pbixzKTt0LnNldFNlY29uZHMoMCwwKTtsZXQgcj0rdD4rYSxuPXI/K3Q6K2Esbz1yP2E6dCxsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxyPSFyKTtsZXQgcD1bXTtmb3IoOytvPD1uOylwLnB1c2godHQodCxvKSksbz1VNyhvLGwpO3JldHVybiByP3AucmV2ZXJzZSgpOnB9dmFyIGh4cyxEMHQ9ZygoKT0+e3JkKCk7VmVlKCk7R3QoKTtpKCQwdCwiZWFjaE1pbnV0ZU9mSW50ZXJ2YWwiKTtoeHM9JDB0fSk7ZnVuY3Rpb24gTDB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldERhdGUoMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHI9IXIpO2xldCBwPVtdO2Zvcig7K288PW47KXAucHVzaCh0dCh0LG8pKSxvLnNldE1vbnRoKG8uZ2V0TW9udGgoKStsKTtyZXR1cm4gcj9wLnJldmVyc2UoKTpwfXZhciB2eHMsRTB0PWcoKCk9PntyZCgpO0d0KCk7aShMMHQsImVhY2hNb250aE9mSW50ZXJ2YWwiKTt2eHM9TDB0fSk7ZnVuY3Rpb24gb2QocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0TW9udGgoKSxyPWEtYSUzO3JldHVybiB0LnNldE1vbnRoKHIsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBreHMscHRlPWcoKCk9PnthdCgpO2kob2QsInN0YXJ0T2ZRdWFydGVyIik7a3hzPW9kfSk7ZnVuY3Rpb24gUDB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPytvZCh0KTorb2QoYSksbz1yP29kKGEpOm9kKHQpLGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHI9IXIpO2xldCBwPVtdO2Zvcig7K288PW47KXAucHVzaCh0dCh0LG8pKSxvPVc3KG8sbCk7cmV0dXJuIHI/cC5yZXZlcnNlKCk6cH12YXIgJHhzLEkwdD1nKCgpPT57cmQoKTtVZWUoKTtHdCgpO3B0ZSgpO2koUDB0LCJlYWNoUXVhcnRlck9mSW50ZXJ2YWwiKTskeHM9UDB0fSk7ZnVuY3Rpb24gQTB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yP0tzKGEsZSk6S3ModCxlKSxvPXI/S3ModCxlKTpLcyhhLGUpO24uc2V0SG91cnMoMTUpLG8uc2V0SG91cnMoMTUpO2xldCBsPStvLmdldFRpbWUoKSxwPW4sZD1lPy5zdGVwPz8xO2lmKCFkKXJldHVybltdO2Q8MCYmKGQ9LWQscj0hcik7bGV0IHU9W107Zm9yKDsrcDw9bDspcC5zZXRIb3VycygwKSx1LnB1c2godHQodCxwKSkscD1ocChwLGQpLHAuc2V0SG91cnMoMTUpO3JldHVybiByP3UucmV2ZXJzZSgpOnV9dmFyIE54cyxOMHQ9ZygoKT0+e3JkKCk7JHkoKTtHdCgpO3YxKCk7aShBMHQsImVhY2hXZWVrT2ZJbnRlcnZhbCIpO054cz1BMHR9KTtmdW5jdGlvbiBKNyhzLGUpe2xldHtzdGFydDp0LGVuZDphfT1sbyhlPy5pbixzKSxyPXV0ZSh7c3RhcnQ6dCxlbmQ6YX0sZSksbj1bXSxvPTA7Zm9yKDtvPHIubGVuZ3RoOyl7bGV0IGw9cltvKytdO2VkKGwpJiZuLnB1c2godHQodCxsKSl9cmV0dXJuIG59dmFyIGp4cyxodGU9ZygoKT0+e3JkKCk7R3QoKTt3cGUoKTt6eSgpO2koSjcsImVhY2hXZWVrZW5kT2ZJbnRlcnZhbCIpO2p4cz1KN30pO2Z1bmN0aW9uIGdwKHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9dmFyIEd4cyxQeT1nKCgpPT57YXQoKTtpKGdwLCJzdGFydE9mTW9udGgiKTtHeHM9Z3B9KTtmdW5jdGlvbiBSMHQocyxlKXtsZXQgdD1ncChzLGUpLGE9UTcocyxlKTtyZXR1cm4gSjcoe3N0YXJ0OnQsZW5kOmF9LGUpfXZhciBKeHMsTzB0PWcoKCk9PntodGUoKTtsdGUoKTtQeSgpO2koUjB0LCJlYWNoV2Vla2VuZE9mTW9udGgiKTtKeHM9UjB0fSk7ZnVuY3Rpb24gZnRlKHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIHQuc2V0RnVsbFllYXIoYSsxLDAsMCksdC5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHR9dmFyIHN5cyxrcGU9ZygoKT0+e2F0KCk7aShmdGUsImVuZE9mWWVhciIpO3N5cz1mdGV9KTtmdW5jdGlvbiBlOShzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH12YXIgbnlzLG10ZT1nKCgpPT57YXQoKTtpKGU5LCJzdGFydE9mWWVhciIpO255cz1lOX0pO2Z1bmN0aW9uIEYwdChzLGUpe2xldCB0PWU5KHMsZSksYT1mdGUocyxlKTtyZXR1cm4gSjcoe3N0YXJ0OnQsZW5kOmF9LGUpfXZhciBoeXMsQjB0PWcoKCk9PntodGUoKTtrcGUoKTttdGUoKTtpKEYwdCwiZWFjaFdlZWtlbmRPZlllYXIiKTtoeXM9RjB0fSk7ZnVuY3Rpb24gSDB0KHMsZSl7bGV0e3N0YXJ0OnQsZW5kOmF9PWxvKGU/LmluLHMpLHI9K3Q+K2Esbj1yPyt0OithLG89cj9hOnQ7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldE1vbnRoKDAsMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHI9IXIpO2xldCBwPVtdO2Zvcig7K288PW47KXAucHVzaCh0dCh0LG8pKSxvLnNldEZ1bGxZZWFyKG8uZ2V0RnVsbFllYXIoKStsKTtyZXR1cm4gcj9wLnJldmVyc2UoKTpwfXZhciB2eXMscTB0PWcoKCk9PntyZCgpO0d0KCk7aShIMHQsImVhY2hZZWFyT2ZJbnRlcnZhbCIpO3Z5cz1IMHR9KTtmdW5jdGlvbiBqMHQocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0RnVsbFllYXIoKSxyPTkrTWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gdC5zZXRGdWxsWWVhcihyLDExLDMxKSx0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH12YXIga3lzLFYwdD1nKCgpPT57YXQoKTtpKGowdCwiZW5kT2ZEZWNhZGUiKTtreXM9ajB0fSk7ZnVuY3Rpb24gVTB0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0TWludXRlcyg1OSw1OSw5OTkpLHR9dmFyIHp5cyxXMHQ9ZygoKT0+e2F0KCk7aShVMHQsImVuZE9mSG91ciIpO3p5cz1VMHR9KTtmdW5jdGlvbiBndGUocyxlKXtsZXQgdD1FcygpLGE9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/dC53ZWVrU3RhcnRzT24/P3QubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscj1BZShzLGU/LmluKSxuPXIuZ2V0RGF5KCksbz0objxhPy03OjApKzYtKG4tYSk7cmV0dXJuIHIuc2V0RGF0ZShyLmdldERhdGUoKStvKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgTHlzLFNwZT1nKCgpPT57R28oKTthdCgpO2koZ3RlLCJlbmRPZldlZWsiKTtMeXM9Z3RlfSk7ZnVuY3Rpb24gRzB0KHMsZSl7cmV0dXJuIGd0ZShzLHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIEF5cyxLMHQ9ZygoKT0+e1NwZSgpO2koRzB0LCJlbmRPZklTT1dlZWsiKTtBeXM9RzB0fSk7ZnVuY3Rpb24gWTB0KHMsZSl7bGV0IHQ9d24ocyxlKSxhPXR0KGU/LmlufHxzLDApO2Euc2V0RnVsbFllYXIodCsxLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcj1rcihhLGUpO3JldHVybiByLnNldE1pbGxpc2Vjb25kcyhyLmdldE1pbGxpc2Vjb25kcygpLTEpLHJ9dmFyIEh5cyxaMHQ9ZygoKT0+e0d0KCk7cHAoKTt0ZCgpO2koWTB0LCJlbmRPZklTT1dlZWtZZWFyIik7SHlzPVkwdH0pO2Z1bmN0aW9uIFgwdChzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldFNlY29uZHMoNTksOTk5KSx0fXZhciBVeXMsUTB0PWcoKCk9PnthdCgpO2koWDB0LCJlbmRPZk1pbnV0ZSIpO1V5cz1YMHR9KTtmdW5jdGlvbiBKMHQocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0TW9udGgoKSxyPWEtYSUzKzM7cmV0dXJuIHQuc2V0TW9udGgociwwKSx0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH12YXIgWXlzLGV1dD1nKCgpPT57YXQoKTtpKEowdCwiZW5kT2ZRdWFydGVyIik7WXlzPUowdH0pO2Z1bmN0aW9uIHR1dChzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldE1pbGxpc2Vjb25kcyg5OTkpLHR9dmFyIEp5cyxhdXQ9ZygoKT0+e2F0KCk7aSh0dXQsImVuZE9mU2Vjb25kIik7SnlzPXR1dH0pO2Z1bmN0aW9uIHN1dChzKXtyZXR1cm4gWDcoRGF0ZS5ub3coKSxzKX12YXIgc3dzLGl1dD1nKCgpPT57bnRlKCk7aShzdXQsImVuZE9mVG9kYXkiKTtzd3M9c3V0fSk7ZnVuY3Rpb24gcnV0KHMpe2xldCBlPVBhKHM/LmluKSx0PWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxyPWUuZ2V0RGF0ZSgpLG49UGEocz8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHQsYSxyKzEpLG4uc2V0SG91cnMoMjMsNTksNTksOTk5KSxzPy5pbj9zLmluKG4pOm59dmFyIG53cyxvdXQ9ZygoKT0+e3FyKCk7aShydXQsImVuZE9mVG9tb3Jyb3ciKTtud3M9cnV0fSk7ZnVuY3Rpb24gbnV0KHMpe2xldCBlPVBhKHM/LmluKSx0PXR0KHM/LmluLDApO3JldHVybiB0LnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCktMSksdC5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHR9dmFyIHB3cyxsdXQ9ZygoKT0+e0d0KCk7cXIoKTtpKG51dCwiZW5kT2ZZZXN0ZXJkYXkiKTtwd3M9bnV0fSk7dmFyIGtMYSxjdXQsZHV0PWcoKCk9PntrTGE9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxjdXQ9aSgocyxlLHQpPT57bGV0IGEscj1rTGFbc107cmV0dXJuIHR5cGVvZiByPT0ic3RyaW5nIj9hPXI6ZT09PTE/YT1yLm9uZTphPXIub3RoZXIucmVwbGFjZSgie3tjb3VudH19IixlLnRvU3RyaW5nKCkpLHQ/LmFkZFN1ZmZpeD90LmNvbXBhcmlzb24mJnQuY29tcGFyaXNvbj4wPyJpbiAiK2E6YSsiIGFnbyI6YX0sImZvcm1hdERpc3RhbmNlIil9KTtmdW5jdGlvbiBidGUocyl7cmV0dXJuKGU9e30pPT57bGV0IHQ9ZS53aWR0aD9TdHJpbmcoZS53aWR0aCk6cy5kZWZhdWx0V2lkdGg7cmV0dXJuIHMuZm9ybWF0c1t0XXx8cy5mb3JtYXRzW3MuZGVmYXVsdFdpZHRoXX19dmFyIHV1dD1nKCgpPT57aShidGUsImJ1aWxkRm9ybWF0TG9uZ0ZuIil9KTt2YXIgU0xhLF9MYSxNTGEscHV0LGh1dD1nKCgpPT57dXV0KCk7U0xhPXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LF9MYT17ZnVsbDoiaDptbTpzcyBhIHp6enoiLGxvbmc6Img6bW06c3MgYSB6IixtZWRpdW06Img6bW06c3MgYSIsc2hvcnQ6Img6bW0gYSJ9LE1MYT17ZnVsbDoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbG9uZzoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbWVkaXVtOiJ7e2RhdGV9fSwge3t0aW1lfX0iLHNob3J0OiJ7e2RhdGV9fSwge3t0aW1lfX0ifSxwdXQ9e2RhdGU6YnRlKHtmb3JtYXRzOlNMYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpidGUoe2Zvcm1hdHM6X0xhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KSxkYXRlVGltZTpidGUoe2Zvcm1hdHM6TUxhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KX19KTt2YXIgekxhLGZ1dCxtdXQ9ZygoKT0+e3pMYT17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn0sZnV0PWkoKHMsZSx0LGEpPT56TGFbc10sImZvcm1hdFJlbGF0aXZlIil9KTtmdW5jdGlvbiB0OShzKXtyZXR1cm4oZSx0KT0+e2xldCBhPXQ/LmNvbnRleHQ/U3RyaW5nKHQuY29udGV4dCk6InN0YW5kYWxvbmUiLHI7aWYoYT09PSJmb3JtYXR0aW5nIiYmcy5mb3JtYXR0aW5nVmFsdWVzKXtsZXQgbz1zLmRlZmF1bHRGb3JtYXR0aW5nV2lkdGh8fHMuZGVmYXVsdFdpZHRoLGw9dD8ud2lkdGg/U3RyaW5nKHQud2lkdGgpOm87cj1zLmZvcm1hdHRpbmdWYWx1ZXNbbF18fHMuZm9ybWF0dGluZ1ZhbHVlc1tvXX1lbHNle2xldCBvPXMuZGVmYXVsdFdpZHRoLGw9dD8ud2lkdGg/U3RyaW5nKHQud2lkdGgpOnMuZGVmYXVsdFdpZHRoO3I9cy52YWx1ZXNbbF18fHMudmFsdWVzW29dfWxldCBuPXMuYXJndW1lbnRDYWxsYmFjaz9zLmFyZ3VtZW50Q2FsbGJhY2soZSk6ZTtyZXR1cm4gcltuXX19dmFyIGd1dD1nKCgpPT57aSh0OSwiYnVpbGRMb2NhbGl6ZUZuIil9KTt2YXIgQ0xhLFRMYSwkTGEsRExhLExMYSxFTGEsUExhLGJ1dCx2dXQ9ZygoKT0+e2d1dCgpO0NMYT17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LFRMYT17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sJExhPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxETGE9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sTExhPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxFTGE9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LFBMYT1pKChzLGUpPT57bGV0IHQ9TnVtYmVyKHMpLGE9dCUxMDA7aWYoYT4yMHx8YTwxMClzd2l0Y2goYSUxMCl7Y2FzZSAxOnJldHVybiB0KyJzdCI7Y2FzZSAyOnJldHVybiB0KyJuZCI7Y2FzZSAzOnJldHVybiB0KyJyZCJ9cmV0dXJuIHQrInRoIn0sIm9yZGluYWxOdW1iZXIiKSxidXQ9e29yZGluYWxOdW1iZXI6UExhLGVyYTp0OSh7dmFsdWVzOkNMYSxkZWZhdWx0V2lkdGg6IndpZGUifSkscXVhcnRlcjp0OSh7dmFsdWVzOlRMYSxkZWZhdWx0V2lkdGg6IndpZGUiLGFyZ3VtZW50Q2FsbGJhY2s6aShzPT5zLTEsImFyZ3VtZW50Q2FsbGJhY2siKX0pLG1vbnRoOnQ5KHt2YWx1ZXM6JExhLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6dDkoe3ZhbHVlczpETGEsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLGRheVBlcmlvZDp0OSh7dmFsdWVzOkxMYSxkZWZhdWx0V2lkdGg6IndpZGUiLGZvcm1hdHRpbmdWYWx1ZXM6RUxhLGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9fSk7ZnVuY3Rpb24gYTkocyl7cmV0dXJuKGUsdD17fSk9PntsZXQgYT10LndpZHRoLHI9YSYmcy5tYXRjaFBhdHRlcm5zW2FdfHxzLm1hdGNoUGF0dGVybnNbcy5kZWZhdWx0TWF0Y2hXaWR0aF0sbj1lLm1hdGNoKHIpO2lmKCFuKXJldHVybiBudWxsO2xldCBvPW5bMF0sbD1hJiZzLnBhcnNlUGF0dGVybnNbYV18fHMucGFyc2VQYXR0ZXJuc1tzLmRlZmF1bHRQYXJzZVdpZHRoXSxwPUFycmF5LmlzQXJyYXkobCk/QUxhKGwsYz0+Yy50ZXN0KG8pKTpJTGEobCxjPT5jLnRlc3QobykpLGQ7ZD1zLnZhbHVlQ2FsbGJhY2s/cy52YWx1ZUNhbGxiYWNrKHApOnAsZD10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGQpOmQ7bGV0IHU9ZS5zbGljZShvLmxlbmd0aCk7cmV0dXJue3ZhbHVlOmQscmVzdDp1fX19ZnVuY3Rpb24gSUxhKHMsZSl7Zm9yKGxldCB0IGluIHMpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsdCkmJmUoc1t0XSkpcmV0dXJuIHR9ZnVuY3Rpb24gQUxhKHMsZSl7Zm9yKGxldCB0PTA7dDxzLmxlbmd0aDt0KyspaWYoZShzW3RdKSlyZXR1cm4gdH12YXIgeHV0PWcoKCk9PntpKGE5LCJidWlsZE1hdGNoRm4iKTtpKElMYSwiZmluZEtleSIpO2koQUxhLCJmaW5kSW5kZXgiKX0pO2Z1bmN0aW9uIHl1dChzKXtyZXR1cm4oZSx0PXt9KT0+e2xldCBhPWUubWF0Y2gocy5tYXRjaFBhdHRlcm4pO2lmKCFhKXJldHVybiBudWxsO2xldCByPWFbMF0sbj1lLm1hdGNoKHMucGFyc2VQYXR0ZXJuKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1zLnZhbHVlQ2FsbGJhY2s/cy52YWx1ZUNhbGxiYWNrKG5bMF0pOm5bMF07bz10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKG8pOm87bGV0IGw9ZS5zbGljZShyLmxlbmd0aCk7cmV0dXJue3ZhbHVlOm8scmVzdDpsfX19dmFyIHd1dD1nKCgpPT57aSh5dXQsImJ1aWxkTWF0Y2hQYXR0ZXJuRm4iKX0pO3ZhciBOTGEsUkxhLE9MYSxGTGEsQkxhLEhMYSxxTGEsakxhLFZMYSxVTGEsV0xhLEdMYSxrdXQsU3V0PWcoKCk9Pnt4dXQoKTt3dXQoKTtOTGE9L14oXGQrKSh0aHxzdHxuZHxyZCk/L2ksUkxhPS9cZCsvaSxPTGE9e25hcnJvdzovXihifGEpL2ksYWJicmV2aWF0ZWQ6L14oYlwuP1xzP2NcLj98YlwuP1xzP2NcLj9ccz9lXC4/fGFcLj9ccz9kXC4/fGNcLj9ccz9lXC4/KS9pLHdpZGU6L14oYmVmb3JlIGNocmlzdHxiZWZvcmUgY29tbW9uIGVyYXxhbm5vIGRvbWluaXxjb21tb24gZXJhKS9pfSxGTGE9e2FueTpbL15iL2ksL14oYXxjKS9pXX0sQkxhPXtuYXJyb3c6L15bMTIzNF0vaSxhYmJyZXZpYXRlZDovXnFbMTIzNF0vaSx3aWRlOi9eWzEyMzRdKHRofHN0fG5kfHJkKT8gcXVhcnRlci9pfSxITGE9e2FueTpbLzEvaSwvMi9pLC8zL2ksLzQvaV19LHFMYT17bmFycm93Oi9eW2pmbWFzb25kXS9pLGFiYnJldmlhdGVkOi9eKGphbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjKS9pLHdpZGU6L14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaX0sakxhPXtuYXJyb3c6Wy9eai9pLC9eZi9pLC9ebS9pLC9eYS9pLC9ebS9pLC9eai9pLC9eai9pLC9eYS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXSxhbnk6Wy9eamEvaSwvXmYvaSwvXm1hci9pLC9eYXAvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmF1L2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldfSxWTGE9e25hcnJvdzovXltzbXR3Zl0vaSxzaG9ydDovXihzdXxtb3x0dXx3ZXx0aHxmcnxzYSkvaSxhYmJyZXZpYXRlZDovXihzdW58bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXQpL2ksd2lkZTovXihzdW5kYXl8bW9uZGF5fHR1ZXNkYXl8d2VkbmVzZGF5fHRodXJzZGF5fGZyaWRheXxzYXR1cmRheSkvaX0sVUxhPXtuYXJyb3c6Wy9ecy9pLC9ebS9pLC9edC9pLC9edy9pLC9edC9pLC9eZi9pLC9ecy9pXSxhbnk6Wy9ec3UvaSwvXm0vaSwvXnR1L2ksL153L2ksL150aC9pLC9eZi9pLC9ec2EvaV19LFdMYT17bmFycm93Oi9eKGF8cHxtaXxufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaSxhbnk6L14oW2FwXVwuP1xzP21cLj98bWlkbmlnaHR8bm9vbnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2l9LEdMYT17YW55OnthbTovXmEvaSxwbTovXnAvaSxtaWRuaWdodDovXm1pL2ksbm9vbjovXm5vL2ksbW9ybmluZzovbW9ybmluZy9pLGFmdGVybm9vbjovYWZ0ZXJub29uL2ksZXZlbmluZzovZXZlbmluZy9pLG5pZ2h0Oi9uaWdodC9pfX0sa3V0PXtvcmRpbmFsTnVtYmVyOnl1dCh7bWF0Y2hQYXR0ZXJuOk5MYSxwYXJzZVBhdHRlcm46UkxhLHZhbHVlQ2FsbGJhY2s6aShzPT5wYXJzZUludChzLDEwKSwidmFsdWVDYWxsYmFjayIpfSksZXJhOmE5KHttYXRjaFBhdHRlcm5zOk9MYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpGTGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOmE5KHttYXRjaFBhdHRlcm5zOkJMYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpITGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazppKHM9PnMrMSwidmFsdWVDYWxsYmFjayIpfSksbW9udGg6YTkoe21hdGNoUGF0dGVybnM6cUxhLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmpMYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheTphOSh7bWF0Y2hQYXR0ZXJuczpWTGEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6VUxhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5UGVyaW9kOmE5KHttYXRjaFBhdHRlcm5zOldMYSxkZWZhdWx0TWF0Y2hXaWR0aDoiYW55IixwYXJzZVBhdHRlcm5zOkdMYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pfX0pO3ZhciBtbCxId3MsX3V0PWcoKCk9PntkdXQoKTtodXQoKTttdXQoKTt2dXQoKTtTdXQoKTttbD17Y29kZToiZW4tVVMiLGZvcm1hdERpc3RhbmNlOmN1dCxmb3JtYXRMb25nOnB1dCxmb3JtYXRSZWxhdGl2ZTpmdXQsbG9jYWxpemU6YnV0LG1hdGNoOmt1dCxvcHRpb25zOnt3ZWVrU3RhcnRzT246MCxmaXJzdFdlZWtDb250YWluc0RhdGU6MX19LEh3cz1tbH0pO3ZhciBKND1nKCgpPT57X3V0KCl9KTtmdW5jdGlvbiB2dGUocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gbm8odCxlOSh0KSkrMX12YXIgS3dzLF9wZT1nKCgpPT57cDAoKTttdGUoKTthdCgpO2kodnRlLCJnZXREYXlPZlllYXIiKTtLd3M9dnRlfSk7ZnVuY3Rpb24gczkocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPStrcih0KS0rUmwodCk7cmV0dXJuIE1hdGgucm91bmQoYS9YMikrMX12YXIgdGtzLHh0ZT1nKCgpPT57d2EoKTt0ZCgpO1Y3KCk7YXQoKTtpKHM5LCJnZXRJU09XZWVrIik7dGtzPXM5fSk7ZnVuY3Rpb24gYnAocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0RnVsbFllYXIoKSxyPUVzKCksbj1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPXR0KGU/LmlufHxzLDApO28uc2V0RnVsbFllYXIoYSsxLDAsbiksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1LcyhvLGUpLHA9dHQoZT8uaW58fHMsMCk7cC5zZXRGdWxsWWVhcihhLDAsbikscC5zZXRIb3VycygwLDAsMCwwKTtsZXQgZD1LcyhwLGUpO3JldHVybit0Pj0rbD9hKzE6K3Q+PStkP2E6YS0xfXZhciBsa3MsSXk9ZygoKT0+e0dvKCk7R3QoKTt2MSgpO2F0KCk7aShicCwiZ2V0V2Vla1llYXIiKTtsa3M9YnB9KTtmdW5jdGlvbiBlMyhzLGUpe2xldCB0PUVzKCksYT1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz90LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dC5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxyPWJwKHMsZSksbj10dChlPy5pbnx8cywwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLDAsYSksbi5zZXRIb3VycygwLDAsMCwwKSxLcyhuLGUpfXZhciBta3MseXRlPWcoKCk9PntHbygpO0d0KCk7SXkoKTt2MSgpO2koZTMsInN0YXJ0T2ZXZWVrWWVhciIpO21rcz1lM30pO2Z1bmN0aW9uIGk5KHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT0rS3ModCxlKS0rZTModCxlKTtyZXR1cm4gTWF0aC5yb3VuZChhL1gyKSsxfXZhciBra3Msd3RlPWcoKCk9Pnt3YSgpO3YxKCk7eXRlKCk7YXQoKTtpKGk5LCJnZXRXZWVrIik7a2tzPWk5fSk7ZnVuY3Rpb24gUHQocyxlKXtsZXQgdD1zPDA/Ii0iOiIiLGE9TWF0aC5hYnMocykudG9TdHJpbmcoKS5wYWRTdGFydChlLCIwIik7cmV0dXJuIHQrYX12YXIgdDM9ZygoKT0+e2koUHQsImFkZExlYWRpbmdaZXJvcyIpfSk7dmFyIE9sLE1wZT1nKCgpPT57dDMoKTtPbD17eShzLGUpe2xldCB0PXMuZ2V0RnVsbFllYXIoKSxhPXQ+MD90OjEtdDtyZXR1cm4gUHQoZT09PSJ5eSI/YSUxMDA6YSxlLmxlbmd0aCl9LE0ocyxlKXtsZXQgdD1zLmdldE1vbnRoKCk7cmV0dXJuIGU9PT0iTSI/U3RyaW5nKHQrMSk6UHQodCsxLDIpfSxkKHMsZSl7cmV0dXJuIFB0KHMuZ2V0RGF0ZSgpLGUubGVuZ3RoKX0sYShzLGUpe2xldCB0PXMuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHQudG9VcHBlckNhc2UoKTtjYXNlImFhYSI6cmV0dXJuIHQ7Y2FzZSJhYWFhYSI6cmV0dXJuIHRbMF07ZGVmYXVsdDpyZXR1cm4gdD09PSJhbSI/ImEubS4iOiJwLm0uIn19LGgocyxlKXtyZXR1cm4gUHQocy5nZXRIb3VycygpJTEyfHwxMixlLmxlbmd0aCl9LEgocyxlKXtyZXR1cm4gUHQocy5nZXRIb3VycygpLGUubGVuZ3RoKX0sbShzLGUpe3JldHVybiBQdChzLmdldE1pbnV0ZXMoKSxlLmxlbmd0aCl9LHMocyxlKXtyZXR1cm4gUHQocy5nZXRTZWNvbmRzKCksZS5sZW5ndGgpfSxTKHMsZSl7bGV0IHQ9ZS5sZW5ndGgsYT1zLmdldE1pbGxpc2Vjb25kcygpLHI9TWF0aC50cnVuYyhhKk1hdGgucG93KDEwLHQtMykpO3JldHVybiBQdChyLGUubGVuZ3RoKX19fSk7ZnVuY3Rpb24gTXV0KHMsZT0iIil7bGV0IHQ9cz4wPyItIjoiKyIsYT1NYXRoLmFicyhzKSxyPU1hdGgudHJ1bmMoYS82MCksbj1hJTYwO3JldHVybiBuPT09MD90K1N0cmluZyhyKTp0K1N0cmluZyhyKStlK1B0KG4sMil9ZnVuY3Rpb24genV0KHMsZSl7cmV0dXJuIHMlNjA9PT0wPyhzPjA/Ii0iOiIrIikrUHQoTWF0aC5hYnMocykvNjAsMik6YTMocyxlKX1mdW5jdGlvbiBhMyhzLGU9IiIpe2xldCB0PXM+MD8iLSI6IisiLGE9TWF0aC5hYnMocykscj1QdChNYXRoLnRydW5jKGEvNjApLDIpLG49UHQoYSU2MCwyKTtyZXR1cm4gdCtyK2Urbn12YXIgcjksQXksQ3V0PWcoKCk9PntfcGUoKTt4dGUoKTtwcCgpO3d0ZSgpO0l5KCk7dDMoKTtNcGUoKTtyOT17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LEF5PXtHOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0RnVsbFllYXIoKT4wPzE6MDtzd2l0Y2goZSl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIHQuZXJhKGEse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gdC5lcmEoYSx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiB0LmVyYShhLHt3aWR0aDoid2lkZSJ9KX19LCJHIikseTppKGZ1bmN0aW9uKHMsZSx0KXtpZihlPT09InlvIil7bGV0IGE9cy5nZXRGdWxsWWVhcigpLHI9YT4wP2E6MS1hO3JldHVybiB0Lm9yZGluYWxOdW1iZXIocix7dW5pdDoieWVhciJ9KX1yZXR1cm4gT2wueShzLGUpfSwieSIpLFk6aShmdW5jdGlvbihzLGUsdCxhKXtsZXQgcj1icChzLGEpLG49cj4wP3I6MS1yO2lmKGU9PT0iWVkiKXtsZXQgbz1uJTEwMDtyZXR1cm4gUHQobywyKX1yZXR1cm4gZT09PSJZbyI/dC5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6InllYXIifSk6UHQobixlLmxlbmd0aCl9LCJZIiksUjppKGZ1bmN0aW9uKHMsZSl7bGV0IHQ9d24ocyk7cmV0dXJuIFB0KHQsZS5sZW5ndGgpfSwiUiIpLHU6aShmdW5jdGlvbihzLGUpe2xldCB0PXMuZ2V0RnVsbFllYXIoKTtyZXR1cm4gUHQodCxlLmxlbmd0aCl9LCJ1IiksUTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1NYXRoLmNlaWwoKHMuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJRIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiUVEiOnJldHVybiBQdChhLDIpO2Nhc2UiUW8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJRIikscTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1NYXRoLmNlaWwoKHMuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJxIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UicXEiOnJldHVybiBQdChhLDIpO2Nhc2UicW8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlInFxcSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHQucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJxIiksTTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldE1vbnRoKCk7c3dpdGNoKGUpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIE9sLk0ocyxlKTtjYXNlIk1vIjpyZXR1cm4gdC5vcmRpbmFsTnVtYmVyKGErMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiB0Lm1vbnRoKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gdC5tb250aChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQubW9udGgoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiTSIpLEw6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRNb250aCgpO3N3aXRjaChlKXtjYXNlIkwiOnJldHVybiBTdHJpbmcoYSsxKTtjYXNlIkxMIjpyZXR1cm4gUHQoYSsxLDIpO2Nhc2UiTG8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIoYSsxLHt1bml0OiJtb250aCJ9KTtjYXNlIkxMTCI6cmV0dXJuIHQubW9udGgoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiTExMTEwiOnJldHVybiB0Lm1vbnRoKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gdC5tb250aChhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJMIiksdzppKGZ1bmN0aW9uKHMsZSx0LGEpe2xldCByPWk5KHMsYSk7cmV0dXJuIGU9PT0id28iP3Qub3JkaW5hbE51bWJlcihyLHt1bml0OiJ3ZWVrIn0pOlB0KHIsZS5sZW5ndGgpfSwidyIpLEk6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9czkocyk7cmV0dXJuIGU9PT0iSW8iP3Qub3JkaW5hbE51bWJlcihhLHt1bml0OiJ3ZWVrIn0pOlB0KGEsZS5sZW5ndGgpfSwiSSIpLGQ6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuIGU9PT0iZG8iP3Qub3JkaW5hbE51bWJlcihzLmdldERhdGUoKSx7dW5pdDoiZGF0ZSJ9KTpPbC5kKHMsZSl9LCJkIiksRDppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT12dGUocyk7cmV0dXJuIGU9PT0iRG8iP3Qub3JkaW5hbE51bWJlcihhLHt1bml0OiJkYXlPZlllYXIifSk6UHQoYSxlLmxlbmd0aCl9LCJEIiksRTppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldERheSgpO3N3aXRjaChlKXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gdC5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiB0LmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gdC5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkUiKSxlOmkoZnVuY3Rpb24ocyxlLHQsYSl7bGV0IHI9cy5nZXREYXkoKSxuPShyLWEud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiZSI6cmV0dXJuIFN0cmluZyhuKTtjYXNlImVlIjpyZXR1cm4gUHQobiwyKTtjYXNlImVvIjpyZXR1cm4gdC5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6ImRheSJ9KTtjYXNlImVlZSI6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiB0LmRheShyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJlIiksYzppKGZ1bmN0aW9uKHMsZSx0LGEpe2xldCByPXMuZ2V0RGF5KCksbj0oci1hLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIFB0KG4sZS5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiB0LmRheShyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sImMiKSxpOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0RGF5KCkscj1hPT09MD83OmE7c3dpdGNoKGUpe2Nhc2UiaSI6cmV0dXJuIFN0cmluZyhyKTtjYXNlImlpIjpyZXR1cm4gUHQocixlLmxlbmd0aCk7Y2FzZSJpbyI6cmV0dXJuIHQub3JkaW5hbE51bWJlcihyLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiB0LmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaSI6cmV0dXJuIHQuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaWkiOnJldHVybiB0LmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiaSIpLGE6aShmdW5jdGlvbihzLGUsdCl7bGV0IHI9cy5nZXRIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2goZSl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhIjpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJhYWFhYSI6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiYSIpLGI6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRIb3VycygpLHI7c3dpdGNoKGE9PT0xMj9yPXI5Lm5vb246YT09PTA/cj1yOS5taWRuaWdodDpyPWEvMTI+PTE/InBtIjoiYW0iLGUpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiB0LmRheVBlcmlvZChyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImIiKSxCOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0SG91cnMoKSxyO3N3aXRjaChhPj0xNz9yPXI5LmV2ZW5pbmc6YT49MTI/cj1yOS5hZnRlcm5vb246YT49ND9yPXI5Lm1vcm5pbmc6cj1yOS5uaWdodCxlKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gdC5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiB0LmRheVBlcmlvZChyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5UGVyaW9kKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkIiKSxoOmkoZnVuY3Rpb24ocyxlLHQpe2lmKGU9PT0iaG8iKXtsZXQgYT1zLmdldEhvdXJzKCklMTI7cmV0dXJuIGE9PT0wJiYoYT0xMiksdC5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSl9cmV0dXJuIE9sLmgocyxlKX0sImgiKSxIOmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiBlPT09IkhvIj90Lm9yZGluYWxOdW1iZXIocy5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOk9sLkgocyxlKX0sIkgiKSxLOmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0SG91cnMoKSUxMjtyZXR1cm4gZT09PSJLbyI/dC5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6UHQoYSxlLmxlbmd0aCl9LCJLIiksazppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldEhvdXJzKCk7cmV0dXJuIGE9PT0wJiYoYT0yNCksZT09PSJrbyI/dC5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6UHQoYSxlLmxlbmd0aCl9LCJrIiksbTppKGZ1bmN0aW9uKHMsZSx0KXtyZXR1cm4gZT09PSJtbyI/dC5vcmRpbmFsTnVtYmVyKHMuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6T2wubShzLGUpfSwibSIpLHM6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuIGU9PT0ic28iP3Qub3JkaW5hbE51bWJlcihzLmdldFNlY29uZHMoKSx7dW5pdDoic2Vjb25kIn0pOk9sLnMocyxlKX0sInMiKSxTOmkoZnVuY3Rpb24ocyxlKXtyZXR1cm4gT2wuUyhzLGUpfSwiUyIpLFg6aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGE9PT0wKXJldHVybiJaIjtzd2l0Y2goZSl7Y2FzZSJYIjpyZXR1cm4genV0KGEpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIGEzKGEpO2RlZmF1bHQ6cmV0dXJuIGEzKGEsIjoiKX19LCJYIikseDppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1zLmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieCI6cmV0dXJuIHp1dChhKTtjYXNlInh4eHgiOmNhc2UieHgiOnJldHVybiBhMyhhKTtkZWZhdWx0OnJldHVybiBhMyhhLCI6Iil9fSwieCIpLE86aShmdW5jdGlvbihzLGUsdCl7bGV0IGE9cy5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlIk8iOmNhc2UiT08iOmNhc2UiT09PIjpyZXR1cm4iR01UIitNdXQoYSwiOiIpO2RlZmF1bHQ6cmV0dXJuIkdNVCIrYTMoYSwiOiIpfX0sIk8iKSx6OmkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPXMuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIrTXV0KGEsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK2EzKGEsIjoiKX19LCJ6IiksdDppKGZ1bmN0aW9uKHMsZSx0KXtsZXQgYT1NYXRoLnRydW5jKCtzLzFlMyk7cmV0dXJuIFB0KGEsZS5sZW5ndGgpfSwidCIpLFQ6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuIFB0KCtzLGUubGVuZ3RoKX0sIlQiKX07aShNdXQsImZvcm1hdFRpbWV6b25lU2hvcnQiKTtpKHp1dCwiZm9ybWF0VGltZXpvbmVXaXRoT3B0aW9uYWxNaW51dGVzIik7aShhMywiZm9ybWF0VGltZXpvbmUiKX0pO3ZhciBUdXQsJHV0LEtMYSx2cCx6cGU9ZygoKT0+e1R1dD1pKChzLGUpPT57c3dpdGNoKHMpe2Nhc2UiUCI6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSwiZGF0ZUxvbmdGb3JtYXR0ZXIiKSwkdXQ9aSgocyxlKT0+e3N3aXRjaChzKXtjYXNlInAiOnJldHVybiBlLnRpbWUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlInBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UicHBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLnRpbWUoe3dpZHRoOiJmdWxsIn0pfX0sInRpbWVMb25nRm9ybWF0dGVyIiksS0xhPWkoKHMsZSk9PntsZXQgdD1zLm1hdGNoKC8oUCspKHArKT8vKXx8W10sYT10WzFdLHI9dFsyXTtpZighcilyZXR1cm4gVHV0KHMsZSk7bGV0IG47c3dpdGNoKGEpe2Nhc2UiUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoic2hvcnQifSk7YnJlYWs7Y2FzZSJQUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoibWVkaXVtIn0pO2JyZWFrO2Nhc2UiUFBQIjpuPWUuZGF0ZVRpbWUoe3dpZHRoOiJsb25nIn0pO2JyZWFrO2RlZmF1bHQ6bj1lLmRhdGVUaW1lKHt3aWR0aDoiZnVsbCJ9KTticmVha31yZXR1cm4gbi5yZXBsYWNlKCJ7e2RhdGV9fSIsVHV0KGEsZSkpLnJlcGxhY2UoInt7dGltZX19IiwkdXQocixlKSl9LCJkYXRlVGltZUxvbmdGb3JtYXR0ZXIiKSx2cD17cDokdXQsUDpLTGF9fSk7ZnVuY3Rpb24ga3RlKHMpe3JldHVybiBZTGEudGVzdChzKX1mdW5jdGlvbiBTdGUocyl7cmV0dXJuIFpMYS50ZXN0KHMpfWZ1bmN0aW9uIE55KHMsZSx0KXtsZXQgYT1RTGEocyxlLHQpO2lmKGNvbnNvbGUud2FybihhKSxYTGEuaW5jbHVkZXMocykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYSl9ZnVuY3Rpb24gUUxhKHMsZSx0KXtsZXQgYT1zWzBdPT09IlkiPyJ5ZWFycyI6ImRheXMgb2YgdGhlIG1vbnRoIjtyZXR1cm5gVXNlIFxgJHtzLnRvTG93ZXJDYXNlKCl9XGAgaW5zdGVhZCBvZiBcYCR7c31cYCAoaW4gXGAke2V9XGApIGZvciBmb3JtYXR0aW5nICR7YX0gdG8gdGhlIGlucHV0IFxgJHt0fVxgOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRgfXZhciBZTGEsWkxhLFhMYSxDcGU9ZygoKT0+e1lMYT0vXkQrJC8sWkxhPS9eWSskLyxYTGE9WyJEIiwiREQiLCJZWSIsIllZWVkiXTtpKGt0ZSwiaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbiIpO2koU3RlLCJpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4iKTtpKE55LCJ3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yIik7aShRTGEsIm1lc3NhZ2UiKX0pO2Z1bmN0aW9uIFJ5KHMsZSx0KXtsZXQgYT1FcygpLHI9dD8ubG9jYWxlPz9hLmxvY2FsZT8/bWwsbj10Py5maXJzdFdlZWtDb250YWluc0RhdGU/P3Q/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGw9QWUocyx0Py5pbik7aWYoIWtvKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcD1lLm1hdGNoKGVFYSkubWFwKHU9PntsZXQgYz11WzBdO2lmKGM9PT0icCJ8fGM9PT0iUCIpe2xldCBiPXZwW2NdO3JldHVybiBiKHUsci5mb3JtYXRMb25nKX1yZXR1cm4gdX0pLmpvaW4oIiIpLm1hdGNoKEpMYSkubWFwKHU9PntpZih1PT09IicnIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZToiJyJ9O2xldCBjPXVbMF07aWYoYz09PSInIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTppRWEodSl9O2lmKEF5W2NdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOnV9O2lmKGMubWF0Y2goc0VhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK2MrImAiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTp1fX0pO3IubG9jYWxpemUucHJlcHJvY2Vzc29yJiYocD1yLmxvY2FsaXplLnByZXByb2Nlc3NvcihsLHApKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOm4sd2Vla1N0YXJ0c09uOm8sbG9jYWxlOnJ9O3JldHVybiBwLm1hcCh1PT57aWYoIXUuaXNUb2tlbilyZXR1cm4gdS52YWx1ZTtsZXQgYz11LnZhbHVlOyghdD8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZTdGUoYyl8fCF0Py51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZrdGUoYykpJiZOeShjLGUsU3RyaW5nKHMpKTtsZXQgYj1BeVtjWzBdXTtyZXR1cm4gYihsLGMsci5sb2NhbGl6ZSxkKX0pLmpvaW4oIiIpfWZ1bmN0aW9uIGlFYShzKXtsZXQgZT1zLm1hdGNoKHRFYSk7cmV0dXJuIGU/ZVsxXS5yZXBsYWNlKGFFYSwiJyIpOnN9dmFyIEpMYSxlRWEsdEVhLGFFYSxzRWEsWWtzLFRwZT1nKCgpPT57SjQoKTtHbygpO0N1dCgpO3pwZSgpO0NwZSgpO2gwKCk7YXQoKTtKTGE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxlRWE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csdEVhPS9eJyhbXl0qPyknPyQvLGFFYT0vJycvZyxzRWE9L1thLXpBLVpdLztpKFJ5LCJmb3JtYXQiKTtpKGlFYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7WWtzPVJ5fSk7ZnVuY3Rpb24gX3RlKHMsZSx0KXtsZXQgYT1FcygpLHI9dD8ubG9jYWxlPz9hLmxvY2FsZT8/bWwsbj0yNTIwLG89S28ocyxlKTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSx0LHthZGRTdWZmaXg6dD8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtwLGRdPVZ0KHQ/LmluLC4uLm8+MD9bZSxzXTpbcyxlXSksdT1pZChkLHApLGM9KEZpKGQpLUZpKHApKS8xZTMsYj1NYXRoLnJvdW5kKCh1LWMpLzYwKSx2O2lmKGI8MilyZXR1cm4gdD8uaW5jbHVkZVNlY29uZHM/dTw1P3IuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUsbCk6dTwxMD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxsKTp1PDIwP3IuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLGwpOnU8NDA/ci5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAsbCk6dTw2MD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOnIuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLGwpOmI9PT0wP3IuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEsbCk6ci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGIsbCk7aWYoYjw0NSlyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGIsbCk7aWYoYjw5MClyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEsbCk7aWYoYjxINyl7bGV0IHg9TWF0aC5yb3VuZChiLzYwKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHgsbCl9ZWxzZXtpZihiPG4pcmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLGwpO2lmKGI8Y3Ape2xldCB4PU1hdGgucm91bmQoYi9INyk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix4LGwpfWVsc2UgaWYoYjxjcCoyKXJldHVybiB2PU1hdGgucm91bmQoYi9jcCksci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIix2LGwpfWlmKHY9bXAoZCxwKSx2PDEyKXtsZXQgeD1NYXRoLnJvdW5kKGIvY3ApO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix4LGwpfWVsc2V7bGV0IHg9diUxMixtPU1hdGgudHJ1bmModi8xMik7cmV0dXJuIHg8Mz9yLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsbSxsKTp4PDk/ci5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsbSxsKTpyLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLG0rMSxsKX19dmFyIG9TcywkcGU9ZygoKT0+e0o0KCk7R28oKTt1MCgpO1JzKCk7SzQoKTt3YSgpO0x5KCk7RXkoKTtpKF90ZSwiZm9ybWF0RGlzdGFuY2UiKTtvU3M9X3RlfSk7ZnVuY3Rpb24gTXRlKHMsZSx0KXtsZXQgYT1FcygpLHI9dD8ubG9jYWxlPz9hLmxvY2FsZT8/bWwsbj1LbyhzLGUpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHQse2FkZFN1ZmZpeDp0Py5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW2wscF09VnQodD8uaW4sLi4ubj4wP1tlLHNdOltzLGVdKSxkPVlvKHQ/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSx1PXAuZ2V0VGltZSgpLWwuZ2V0VGltZSgpLGM9dS9XbyxiPUZpKHApLUZpKGwpLHY9KHUtYikvV28seD10Py51bml0LG07aWYoeD9tPXg6YzwxP209InNlY29uZCI6Yzw2MD9tPSJtaW51dGUiOmM8SDc/bT0iaG91ciI6djxjcD9tPSJkYXkiOnY8UXVlP209Im1vbnRoIjptPSJ5ZWFyIixtPT09InNlY29uZCIpe2xldCBmPWQodS8xZTMpO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4U2Vjb25kcyIsZixvKX1lbHNlIGlmKG09PT0ibWludXRlIil7bGV0IGY9ZChjKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGYsbyl9ZWxzZSBpZihtPT09ImhvdXIiKXtsZXQgZj1kKGMvNjApO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4SG91cnMiLGYsbyl9ZWxzZSBpZihtPT09ImRheSIpe2xldCBmPWQodi9INyk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixmLG8pfWVsc2UgaWYobT09PSJtb250aCIpe2xldCBmPWQodi9jcCk7cmV0dXJuIGY9PT0xMiYmeCE9PSJtb250aCI/ci5mb3JtYXREaXN0YW5jZSgieFllYXJzIiwxLG8pOnIuZm9ybWF0RGlzdGFuY2UoInhNb250aHMiLGYsbyl9ZWxzZXtsZXQgZj1kKHYvUXVlKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieFllYXJzIixmLG8pfX12YXIgZ1NzLERwZT1nKCgpPT57SjQoKTtHbygpO2YwKCk7dTAoKTtScygpO0s0KCk7d2EoKTtpKE10ZSwiZm9ybWF0RGlzdGFuY2VTdHJpY3QiKTtnU3M9TXRlfSk7ZnVuY3Rpb24gRHV0KHMsZSl7cmV0dXJuIF90ZShzLFBhKHMpLGUpfXZhciB3U3MsTHV0PWcoKCk9PntxcigpOyRwZSgpO2koRHV0LCJmb3JtYXREaXN0YW5jZVRvTm93Iik7d1NzPUR1dH0pO2Z1bmN0aW9uIEV1dChzLGUpe3JldHVybiBNdGUocyxQYShzKSxlKX12YXIgelNzLFB1dD1nKCgpPT57cXIoKTtEcGUoKTtpKEV1dCwiZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdCIpO3pTcz1FdXR9KTtmdW5jdGlvbiBJdXQocyxlKXtsZXQgdD1FcygpLGE9ZT8ubG9jYWxlPz90LmxvY2FsZT8/bWwscj1lPy5mb3JtYXQ/P3JFYSxuPWU/Lnplcm8/PyExLG89ZT8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2U/ci5yZWR1Y2UoKHAsZCk9PntsZXQgdT1geCR7ZC5yZXBsYWNlKC8oXi4pLyxiPT5iLnRvVXBwZXJDYXNlKCkpfWAsYz1zW2RdO3JldHVybiBjIT09dm9pZCAwJiYobnx8c1tkXSk/cC5jb25jYXQoYS5mb3JtYXREaXN0YW5jZSh1LGMpKTpwfSxbXSkuam9pbihvKToiIn12YXIgckVhLExTcyxBdXQ9ZygoKT0+e0o0KCk7R28oKTtyRWE9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtpKEl1dCwiZm9ybWF0RHVyYXRpb24iKTtMU3M9SXV0fSk7ZnVuY3Rpb24gTnV0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7aWYoaXNOYU4oK3QpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscj1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIsbD1hPT09ImV4dGVuZGVkIj8iLSI6IiIscD1hPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYociE9PSJ0aW1lIil7bGV0IGQ9UHQodC5nZXREYXRlKCksMiksdT1QdCh0LmdldE1vbnRoKCkrMSwyKTtuPWAke1B0KHQuZ2V0RnVsbFllYXIoKSw0KX0ke2x9JHt1fSR7bH0ke2R9YH1pZihyIT09ImRhdGUiKXtsZXQgZD10LmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoZCE9PTApe2xldCBtPU1hdGguYWJzKGQpLGY9UHQoTWF0aC50cnVuYyhtLzYwKSwyKSx5PVB0KG0lNjAsMik7bz1gJHtkPDA/IisiOiItIn0ke2Z9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IHU9UHQodC5nZXRIb3VycygpLDIpLGM9UHQodC5nZXRNaW51dGVzKCksMiksYj1QdCh0LmdldFNlY29uZHMoKSwyKSx2PW49PT0iIj8iIjoiVCIseD1bdSxjLGJdLmpvaW4ocCk7bj1gJHtufSR7dn0ke3h9JHtvfWB9cmV0dXJuIG59dmFyIE5TcyxSdXQ9ZygoKT0+e3QzKCk7YXQoKTtpKE51dCwiZm9ybWF0SVNPIik7TlNzPU51dH0pO2Z1bmN0aW9uIE91dChzLGUpe2xldCB0PUFlKHMsZT8uaW4pO2lmKCFrbyh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGE9ZT8uZm9ybWF0Pz8iZXh0ZW5kZWQiLHI9ZT8ucmVwcmVzZW50YXRpb24/PyJjb21wbGV0ZSIsbj0iIixvPWE9PT0iZXh0ZW5kZWQiPyItIjoiIixsPWE9PT0iZXh0ZW5kZWQiPyI6IjoiIjtpZihyIT09InRpbWUiKXtsZXQgcD1QdCh0LmdldERhdGUoKSwyKSxkPVB0KHQuZ2V0TW9udGgoKSsxLDIpO249YCR7UHQodC5nZXRGdWxsWWVhcigpLDQpfSR7b30ke2R9JHtvfSR7cH1gfWlmKHIhPT0iZGF0ZSIpe2xldCBwPVB0KHQuZ2V0SG91cnMoKSwyKSxkPVB0KHQuZ2V0TWludXRlcygpLDIpLHU9UHQodC5nZXRTZWNvbmRzKCksMik7bj1gJHtufSR7bj09PSIiPyIiOiIgIn0ke3B9JHtsfSR7ZH0ke2x9JHt1fWB9cmV0dXJuIG59dmFyIHFTcyxGdXQ9ZygoKT0+e3QzKCk7aDAoKTthdCgpO2koT3V0LCJmb3JtYXRJU085MDc1Iik7cVNzPU91dH0pO2Z1bmN0aW9uIEJ1dChzKXtsZXR7eWVhcnM6ZT0wLG1vbnRoczp0PTAsZGF5czphPTAsaG91cnM6cj0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT1zO3JldHVybmBQJHtlfVkke3R9TSR7YX1EVCR7cn1IJHtufU0ke299U2B9dmFyIFVTcyxIdXQ9ZygoKT0+e2koQnV0LCJmb3JtYXRJU09EdXJhdGlvbiIpO1VTcz1CdXR9KTtmdW5jdGlvbiBxdXQocyxlKXtsZXQgdD1BZShzLGU/LmluKTtpZigha28odCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWU/LmZyYWN0aW9uRGlnaXRzPz8wLHI9UHQodC5nZXREYXRlKCksMiksbj1QdCh0LmdldE1vbnRoKCkrMSwyKSxvPXQuZ2V0RnVsbFllYXIoKSxsPVB0KHQuZ2V0SG91cnMoKSwyKSxwPVB0KHQuZ2V0TWludXRlcygpLDIpLGQ9UHQodC5nZXRTZWNvbmRzKCksMiksdT0iIjtpZihhPjApe2xldCB2PXQuZ2V0TWlsbGlzZWNvbmRzKCkseD1NYXRoLnRydW5jKHYqTWF0aC5wb3coMTAsYS0zKSk7dT0iLiIrUHQoeCxhKX1sZXQgYz0iIixiPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihiIT09MCl7bGV0IHY9TWF0aC5hYnMoYikseD1QdChNYXRoLnRydW5jKHYvNjApLDIpLG09UHQodiU2MCwyKTtjPWAke2I8MD8iKyI6Ii0ifSR7eH06JHttfWB9ZWxzZSBjPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7cn1UJHtsfToke3B9OiR7ZH0ke3V9JHtjfWB9dmFyIFhTcyxqdXQ9ZygoKT0+e3QzKCk7aDAoKTthdCgpO2kocXV0LCJmb3JtYXRSRkMzMzM5Iik7WFNzPXF1dH0pO2Z1bmN0aW9uIFZ1dChzKXtsZXQgZT1BZShzKTtpZigha28oZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCB0PW9FYVtlLmdldFVUQ0RheSgpXSxhPVB0KGUuZ2V0VVRDRGF0ZSgpLDIpLHI9bkVhW2UuZ2V0VVRDTW9udGgoKV0sbj1lLmdldFVUQ0Z1bGxZZWFyKCksbz1QdChlLmdldFVUQ0hvdXJzKCksMiksbD1QdChlLmdldFVUQ01pbnV0ZXMoKSwyKSxwPVB0KGUuZ2V0VVRDU2Vjb25kcygpLDIpO3JldHVybmAke3R9LCAke2F9ICR7cn0gJHtufSAke299OiR7bH06JHtwfSBHTVRgfXZhciBvRWEsbkVhLHNfcyxVdXQ9ZygoKT0+e3QzKCk7aDAoKTthdCgpO29FYT1bIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG5FYT1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO2koVnV0LCJmb3JtYXRSRkM3MjMxIik7c19zPVZ1dH0pO2Z1bmN0aW9uIFd1dChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKSxuPUVzKCksbz10Py5sb2NhbGU/P24ubG9jYWxlPz9tbCxsPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHA9bm8oYSxyKTtpZihpc05hTihwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGQ7cDwtNj9kPSJvdGhlciI6cDwtMT9kPSJsYXN0V2VlayI6cDwwP2Q9Inllc3RlcmRheSI6cDwxP2Q9InRvZGF5IjpwPDI/ZD0idG9tb3Jyb3ciOnA8Nz9kPSJuZXh0V2VlayI6ZD0ib3RoZXIiO2xldCB1PW8uZm9ybWF0UmVsYXRpdmUoZCxhLHIse2xvY2FsZTpvLHdlZWtTdGFydHNPbjpsfSk7cmV0dXJuIFJ5KGEsdSx7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOmx9KX12YXIgdV9zLEd1dD1nKCgpPT57SjQoKTtHbygpO1JzKCk7cDAoKTtUcGUoKTtpKFd1dCwiZm9ybWF0UmVsYXRpdmUiKTt1X3M9V3V0fSk7ZnVuY3Rpb24gS3V0KHMsZSl7cmV0dXJuIEFlKHMqMWUzLGU/LmluKX12YXIgbV9zLFl1dD1nKCgpPT57YXQoKTtpKEt1dCwiZnJvbVVuaXhUaW1lIik7bV9zPUt1dH0pO2Z1bmN0aW9uIHp0ZShzLGUpe3JldHVybiBBZShzLGU/LmluKS5nZXREYXRlKCl9dmFyIHhfcyxMcGU9ZygoKT0+e2F0KCk7aSh6dGUsImdldERhdGUiKTt4X3M9enRlfSk7ZnVuY3Rpb24geHAocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF5KCl9dmFyIFNfcyxPeT1nKCgpPT57YXQoKTtpKHhwLCJnZXREYXkiKTtTX3M9eHB9KTtmdW5jdGlvbiBDdGUocyxlKXtsZXQgdD1BZShzLGU/LmluKSxhPXQuZ2V0RnVsbFllYXIoKSxyPXQuZ2V0TW9udGgoKSxuPXR0KHQsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoYSxyKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgVF9zLEVwZT1nKCgpPT57R3QoKTthdCgpO2koQ3RlLCJnZXREYXlzSW5Nb250aCIpO1Rfcz1DdGV9KTtmdW5jdGlvbiBUdGUocyxlKXtsZXQgYT1BZShzLGU/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBhJTQwMD09PTB8fGElND09PTAmJmElMTAwIT09MH12YXIgRV9zLFBwZT1nKCgpPT57YXQoKTtpKFR0ZSwiaXNMZWFwWWVhciIpO0Vfcz1UdGV9KTtmdW5jdGlvbiBadXQocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gTnVtYmVyLmlzTmFOKCt0KT9OYU46VHRlKHQpPzM2NjozNjV9dmFyIFJfcyxYdXQ9ZygoKT0+e1BwZSgpO2F0KCk7aShadXQsImdldERheXNJblllYXIiKTtSX3M9WnV0fSk7ZnVuY3Rpb24gUXV0KHMsZSl7bGV0IGE9QWUocyxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gTWF0aC5mbG9vcihhLzEwKSoxMH12YXIgSF9zLEp1dD1nKCgpPT57YXQoKTtpKFF1dCwiZ2V0RGVjYWRlIik7SF9zPVF1dH0pO2Z1bmN0aW9uICR0ZSgpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LEVzKCkpfXZhciBVX3MsSXBlPWcoKCk9PntHbygpO2koJHRlLCJnZXREZWZhdWx0T3B0aW9ucyIpO1Vfcz0kdGV9KTtmdW5jdGlvbiBlcHQocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0SG91cnMoKX12YXIgWV9zLHRwdD1nKCgpPT57YXQoKTtpKGVwdCwiZ2V0SG91cnMiKTtZX3M9ZXB0fSk7ZnVuY3Rpb24gRHRlKHMsZSl7bGV0IHQ9QWUocyxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIHQ9PT0wPzc6dH12YXIgSl9zLEFwZT1nKCgpPT57YXQoKTtpKER0ZSwiZ2V0SVNPRGF5Iik7Sl9zPUR0ZX0pO2Z1bmN0aW9uIGFwdChzLGUpe2xldCB0PVJsKHMsZSkscj0rUmwoaHAodCw2MCkpLSt0O3JldHVybiBNYXRoLnJvdW5kKHIvWDIpfXZhciByTXMsc3B0PWcoKCk9PnskeSgpO3dhKCk7VjcoKTtpKGFwdCwiZ2V0SVNPV2Vla3NJblllYXIiKTtyTXM9YXB0fSk7ZnVuY3Rpb24gaXB0KHMpe3JldHVybiBBZShzKS5nZXRNaWxsaXNlY29uZHMoKX12YXIgY01zLHJwdD1nKCgpPT57YXQoKTtpKGlwdCwiZ2V0TWlsbGlzZWNvbmRzIik7Y01zPWlwdH0pO2Z1bmN0aW9uIG9wdChzLGUpe3JldHVybiBBZShzLGU/LmluKS5nZXRNaW51dGVzKCl9dmFyIGhNcyxucHQ9ZygoKT0+e2F0KCk7aShvcHQsImdldE1pbnV0ZXMiKTtoTXM9b3B0fSk7ZnVuY3Rpb24gbHB0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldE1vbnRoKCl9dmFyIGJNcyxjcHQ9ZygoKT0+e2F0KCk7aShscHQsImdldE1vbnRoIik7Yk1zPWxwdH0pO2Z1bmN0aW9uIGRwdChzLGUpe2xldFt0LGFdPVsrQWUocy5zdGFydCksK0FlKHMuZW5kKV0uc29ydCgoYyxiKT0+Yy1iKSxbcixuXT1bK0FlKGUuc3RhcnQpLCtBZShlLmVuZCldLnNvcnQoKGMsYik9PmMtYik7aWYoISh0PG4mJnI8YSkpcmV0dXJuIDA7bGV0IGw9cjx0P3Q6cixwPWwtRmkobCksZD1uPmE/YTpuLHU9ZC1GaShkKTtyZXR1cm4gTWF0aC5jZWlsKCh1LXApL1BlZSl9dmFyIFNNcyx1cHQ9ZygoKT0+e3UwKCk7d2EoKTthdCgpO2koZHB0LCJnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFscyIpO1NNcz1kcHR9KTtmdW5jdGlvbiBwcHQocyl7cmV0dXJuIEFlKHMpLmdldFNlY29uZHMoKX12YXIgQ01zLGhwdD1nKCgpPT57YXQoKTtpKHBwdCwiZ2V0U2Vjb25kcyIpO0NNcz1wcHR9KTtmdW5jdGlvbiBmcHQocyl7cmV0dXJuK0FlKHMpfXZhciBMTXMsbXB0PWcoKCk9PnthdCgpO2koZnB0LCJnZXRUaW1lIik7TE1zPWZwdH0pO2Z1bmN0aW9uIGdwdChzKXtyZXR1cm4gTWF0aC50cnVuYygrQWUocykvMWUzKX12YXIgQU1zLGJwdD1nKCgpPT57YXQoKTtpKGdwdCwiZ2V0VW5peFRpbWUiKTtBTXM9Z3B0fSk7ZnVuY3Rpb24gdnB0KHMsZSl7bGV0IHQ9RXMoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Qud2Vla1N0YXJ0c09uPz90LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHI9enRlKEFlKHMsZT8uaW4pKTtpZihpc05hTihyKSlyZXR1cm4gTmFOO2xldCBuPXhwKGdwKHMsZSkpLG89YS1uO288PTAmJihvKz03KTtsZXQgbD1yLW87cmV0dXJuIE1hdGguY2VpbChsLzcpKzF9dmFyIGpNcyx4cHQ9ZygoKT0+e0dvKCk7THBlKCk7T3koKTtQeSgpO2F0KCk7aSh2cHQsImdldFdlZWtPZk1vbnRoIik7ak1zPXZwdH0pO2Z1bmN0aW9uIEx0ZShzLGUpe2xldCB0PUFlKHMsZT8uaW4pLGE9dC5nZXRNb250aCgpO3JldHVybiB0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSxhKzEsMCksdC5zZXRIb3VycygwLDAsMCwwKSxBZSh0LGU/LmluKX12YXIgR01zLE5wZT1nKCgpPT57YXQoKTtpKEx0ZSwibGFzdERheU9mTW9udGgiKTtHTXM9THRlfSk7ZnVuY3Rpb24geXB0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIFo0KEx0ZSh0LGUpLGdwKHQsZSksZSkrMX12YXIgZXpzLHdwdD1nKCgpPT57ZXRlKCk7TnBlKCk7UHkoKTthdCgpO2koeXB0LCJnZXRXZWVrc0luTW9udGgiKTtlenM9eXB0fSk7ZnVuY3Rpb24ga3B0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIGl6cyxTcHQ9ZygoKT0+e2F0KCk7aShrcHQsImdldFllYXIiKTtpenM9a3B0fSk7ZnVuY3Rpb24gX3B0KHMpe3JldHVybiBNYXRoLnRydW5jKHMqTmwpfXZhciBsenMsTXB0PWcoKCk9Pnt3YSgpO2koX3B0LCJob3Vyc1RvTWlsbGlzZWNvbmRzIik7bHpzPV9wdH0pO2Z1bmN0aW9uIHpwdChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKkllZSl9dmFyIHB6cyxDcHQ9ZygoKT0+e3dhKCk7aSh6cHQsImhvdXJzVG9NaW51dGVzIik7cHpzPXpwdH0pO2Z1bmN0aW9uIFRwdChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKkc0KX12YXIgZ3pzLCRwdD1nKCgpPT57d2EoKTtpKFRwdCwiaG91cnNUb1NlY29uZHMiKTtnenM9VHB0fSk7ZnVuY3Rpb24gRHB0KHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO2lmKGlzTmFOKCthKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdGFydCBkYXRlIGlzIGludmFsaWQiKTtpZihpc05hTigrcikpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgaXMgaW52YWxpZCIpO2lmKHQ/LmFzc2VydFBvc2l0aXZlJiYrYT4rcil0aHJvdyBuZXcgVHlwZUVycm9yKCJFbmQgZGF0ZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IGRhdGUiKTtyZXR1cm57c3RhcnQ6YSxlbmQ6cn19dmFyIHl6cyxMcHQ9ZygoKT0+e1JzKCk7aShEcHQsImludGVydmFsIik7eXpzPURwdH0pO2Z1bmN0aW9uIEVwdChzLGUpe2xldHtzdGFydDp0LGVuZDphfT1sbyhlPy5pbixzKSxyPXt9LG49ZHRlKGEsdCk7biYmKHIueWVhcnM9bik7bGV0IG89ZHAodCx7eWVhcnM6ci55ZWFyc30pLGw9bXAoYSxvKTtsJiYoci5tb250aHM9bCk7bGV0IHA9ZHAobyx7bW9udGhzOnIubW9udGhzfSksZD1ZNyhhLHApO2QmJihyLmRheXM9ZCk7bGV0IHU9ZHAocCx7ZGF5czpyLmRheXN9KSxjPVg0KGEsdSk7YyYmKHIuaG91cnM9Yyk7bGV0IGI9ZHAodSx7aG91cnM6ci5ob3Vyc30pLHY9UTQoYSxiKTt2JiYoci5taW51dGVzPXYpO2xldCB4PWRwKGIse21pbnV0ZXM6ci5taW51dGVzfSksbT1pZChhLHgpO3JldHVybiBtJiYoci5zZWNvbmRzPW0pLHJ9dmFyIEx6cyxQcHQ9ZygoKT0+e3JkKCk7YXBlKCk7YXRlKCk7c3RlKCk7b3RlKCk7THkoKTtFeSgpO3lwZSgpO2koRXB0LCJpbnRlcnZhbFRvRHVyYXRpb24iKTtMenM9RXB0fSk7ZnVuY3Rpb24gSXB0KHMsZSx0KXtsZXQgYTtyZXR1cm4gbEVhKGUpP2E9ZTp0PWUsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodD8ubG9jYWxlLGEpLmZvcm1hdChBZShzKSl9ZnVuY3Rpb24gbEVhKHMpe3JldHVybiBzIT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gcyl9dmFyIEF6cyxBcHQ9ZygoKT0+e2F0KCk7aShJcHQsImludGxGb3JtYXQiKTtpKGxFYSwiaXNGb3JtYXRPcHRpb25zIik7QXpzPUlwdH0pO2Z1bmN0aW9uIE5wdChzLGUsdCl7bGV0IGE9MCxyLFtuLG9dPVZ0KHQ/LmluLHMsZSk7aWYodD8udW5pdClyPXQ/LnVuaXQscj09PSJzZWNvbmQiP2E9aWQobixvKTpyPT09Im1pbnV0ZSI/YT1RNChuLG8pOnI9PT0iaG91ciI/YT1YNChuLG8pOnI9PT0iZGF5Ij9hPW5vKG4sbyk6cj09PSJ3ZWVrIj9hPVo0KG4sbyk6cj09PSJtb250aCI/YT1ZNChuLG8pOnI9PT0icXVhcnRlciI/YT1LNyhuLG8pOnI9PT0ieWVhciImJihhPWZwKG4sbykpO2Vsc2V7bGV0IHA9aWQobixvKTtNYXRoLmFicyhwKTxxNz8oYT1pZChuLG8pLHI9InNlY29uZCIpOk1hdGguYWJzKHApPEc0PyhhPVE0KG4sbykscj0ibWludXRlIik6TWF0aC5hYnMocCk8TGVlJiZNYXRoLmFicyhubyhuLG8pKTwxPyhhPVg0KG4sbykscj0iaG91ciIpOk1hdGguYWJzKHApPGEwdCYmKGE9bm8obixvKSkmJk1hdGguYWJzKGEpPDc/cj0iZGF5IjpNYXRoLmFicyhwKTxlcGU/KGE9WjQobixvKSxyPSJ3ZWVrIik6TWF0aC5hYnMocCk8czB0PyhhPVk0KG4sbykscj0ibW9udGgiKTpNYXRoLmFicyhwKTxKdWU/SzcobixvKTw0PyhhPUs3KG4sbykscj0icXVhcnRlciIpOihhPWZwKG4sbykscj0ieWVhciIpOihhPWZwKG4sbykscj0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQodD8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi50fSkuZm9ybWF0KGEscil9dmFyIEt6cyxScHQ9ZygoKT0+e1JzKCk7d2EoKTtwMCgpO0plZSgpO2JwZSgpO2V0ZSgpO3R0ZSgpO3N0ZSgpO290ZSgpO0V5KCk7aShOcHQsImludGxGb3JtYXREaXN0YW5jZSIpO0t6cz1OcHR9KTtmdW5jdGlvbiBPcHQocyxlKXtyZXR1cm4rQWUocyk+K0FlKGUpfXZhciBRenMsRnB0PWcoKCk9PnthdCgpO2koT3B0LCJpc0FmdGVyIik7UXpzPU9wdH0pO2Z1bmN0aW9uIEJwdChzLGUpe3JldHVybitBZShzKTwrQWUoZSl9dmFyIGFDcyxIcHQ9ZygoKT0+e2F0KCk7aShCcHQsImlzQmVmb3JlIik7YUNzPUJwdH0pO2Z1bmN0aW9uIHFwdChzLGUpe3JldHVybitBZShzKT09K0FlKGUpfXZhciBvQ3MsanB0PWcoKCk9PnthdCgpO2kocXB0LCJpc0VxdWFsIik7b0NzPXFwdH0pO2Z1bmN0aW9uIFZwdChzLGUsdCl7bGV0IGE9bmV3IERhdGUocyxlLHQpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1zJiZhLmdldE1vbnRoKCk9PT1lJiZhLmdldERhdGUoKT09PXR9dmFyIGNDcyxVcHQ9ZygoKT0+e2koVnB0LCJpc0V4aXN0cyIpO2NDcz1WcHR9KTtmdW5jdGlvbiBXcHQocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF0ZSgpPT09MX12YXIgaENzLEdwdD1nKCgpPT57YXQoKTtpKFdwdCwiaXNGaXJzdERheU9mTW9udGgiKTtoQ3M9V3B0fSk7ZnVuY3Rpb24gS3B0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09NX12YXIgYkNzLFlwdD1nKCgpPT57YXQoKTtpKEtwdCwiaXNGcmlkYXkiKTtiQ3M9S3B0fSk7ZnVuY3Rpb24gWnB0KHMpe3JldHVybitBZShzKT5EYXRlLm5vdygpfXZhciB3Q3MsWHB0PWcoKCk9PnthdCgpO2koWnB0LCJpc0Z1dHVyZSIpO3dDcz1acHR9KTtmdW5jdGlvbiBFdGUocyxlKXtsZXQgdD1jRWEoZSk/bmV3IGUoMCk6dHQoZSwwKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihzLmdldEZ1bGxZZWFyKCkscy5nZXRNb250aCgpLHMuZ2V0RGF0ZSgpKSx0LnNldEhvdXJzKHMuZ2V0SG91cnMoKSxzLmdldE1pbnV0ZXMoKSxzLmdldFNlY29uZHMoKSxzLmdldE1pbGxpc2Vjb25kcygpKSx0fWZ1bmN0aW9uIGNFYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiImJnMucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PXN9dmFyIE1DcyxScGU9ZygoKT0+e0d0KCk7aShFdGUsInRyYW5zcG9zZSIpO2koY0VhLCJpc0NvbnN0cnVjdG9yIik7TUNzPUV0ZX0pO3ZhciBkRWEsUHRlLEl0ZSxBdGUsT3BlPWcoKCk9PntHdCgpO1JwZSgpO2RFYT0xMCxQdGU9Y2xhc3N7c3RhdGlje2kodGhpcywiU2V0dGVyIil9c3ViUHJpb3JpdHk9MDt2YWxpZGF0ZShlLHQpe3JldHVybiEwfX0sSXRlPWNsYXNzIGV4dGVuZHMgUHRle3N0YXRpY3tpKHRoaXMsIlZhbHVlU2V0dGVyIil9Y29uc3RydWN0b3IoZSx0LGEscixuKXtzdXBlcigpLHRoaXMudmFsdWU9ZSx0aGlzLnZhbGlkYXRlVmFsdWU9dCx0aGlzLnNldFZhbHVlPWEsdGhpcy5wcmlvcml0eT1yLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKGUsdCl7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZShlLHRoaXMudmFsdWUsdCl9c2V0KGUsdCxhKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZShlLHQsdGhpcy52YWx1ZSxhKX19LEF0ZT1jbGFzcyBleHRlbmRzIFB0ZXtzdGF0aWN7aSh0aGlzLCJEYXRlVGltZXpvbmVTZXR0ZXIiKX1wcmlvcml0eT1kRWE7c3ViUHJpb3JpdHk9LTE7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMuY29udGV4dD1lfHwoYT0+dHQodCxhKSl9c2V0KGUsdCl7cmV0dXJuIHQudGltZXN0YW1wSXNTZXQ/ZTp0dChlLEV0ZShlLHRoaXMuY29udGV4dCkpfX19KTt2YXIgRXQseHM9ZygoKT0+e09wZSgpO0V0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlBhcnNlciIpfXJ1bihlLHQsYSxyKXtsZXQgbj10aGlzLnBhcnNlKGUsdCxhLHIpO3JldHVybiBuP3tzZXR0ZXI6bmV3IEl0ZShuLnZhbHVlLHRoaXMudmFsaWRhdGUsdGhpcy5zZXQsdGhpcy5wcmlvcml0eSx0aGlzLnN1YlByaW9yaXR5KSxyZXN0Om4ucmVzdH06bnVsbH12YWxpZGF0ZShlLHQsYSl7cmV0dXJuITB9fX0pO3ZhciBOdGUsUXB0PWcoKCk9Pnt4cygpO050ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkVyYVBhcnNlciIpfXByaW9yaXR5PTE0MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiBhLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gYS5lcmEoZSx7d2lkdGg6IndpZGUifSl8fGEuZXJhKGUse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8YS5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KX19c2V0KGUsdCxhKXtyZXR1cm4gdC5lcmE9YSxlLnNldEZ1bGxZZWFyKGEsMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiUiIsInUiLCJ0IiwiVCJdfX0pO3ZhciBjcyxrYyxabz1nKCgpPT57Y3M9e21vbnRoOi9eKDFbMC0yXXwwP1xkKS8sZGF0ZTovXigzWzAtMV18WzAtMl0/XGQpLyxkYXlPZlllYXI6L14oMzZbMC02XXwzWzAtNV1cZHxbMC0yXT9cZD9cZCkvLHdlZWs6L14oNVswLTNdfFswLTRdP1xkKS8saG91cjIzaDovXigyWzAtM118WzAtMV0/XGQpLyxob3VyMjRoOi9eKDJbMC00XXxbMC0xXT9cZCkvLGhvdXIxMWg6L14oMVswLTFdfDA/XGQpLyxob3VyMTJoOi9eKDFbMC0yXXwwP1xkKS8sbWludXRlOi9eWzAtNV0/XGQvLHNlY29uZDovXlswLTVdP1xkLyxzaW5nbGVEaWdpdDovXlxkLyx0d29EaWdpdHM6L15cZHsxLDJ9Lyx0aHJlZURpZ2l0czovXlxkezEsM30vLGZvdXJEaWdpdHM6L15cZHsxLDR9LyxhbnlEaWdpdHNTaWduZWQ6L14tP1xkKy8sc2luZ2xlRGlnaXRTaWduZWQ6L14tP1xkLyx0d29EaWdpdHNTaWduZWQ6L14tP1xkezEsMn0vLHRocmVlRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDN9Lyxmb3VyRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDR9L30sa2M9e2Jhc2ljT3B0aW9uYWxNaW51dGVzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSk/fFovLGJhc2ljOi9eKFsrLV0pKFxkezJ9KShcZHsyfSl8Wi8sYmFzaWNPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pKFxkezJ9KSgoXGR7Mn0pKT98Wi8sZXh0ZW5kZWQ6L14oWystXSkoXGR7Mn0pOihcZHsyfSl8Wi8sZXh0ZW5kZWRPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pOihcZHsyfSkoOihcZHsyfSkpP3xaL319KTtmdW5jdGlvbiBPcyhzLGUpe3JldHVybiBzJiZ7dmFsdWU6ZShzLnZhbHVlKSxyZXN0OnMucmVzdH19ZnVuY3Rpb24gdHMocyxlKXtsZXQgdD1lLm1hdGNoKHMpO3JldHVybiB0P3t2YWx1ZTpwYXJzZUludCh0WzBdLDEwKSxyZXN0OmUuc2xpY2UodFswXS5sZW5ndGgpfTpudWxsfWZ1bmN0aW9uIFNjKHMsZSl7bGV0IHQ9ZS5tYXRjaChzKTtpZighdClyZXR1cm4gbnVsbDtpZih0WzBdPT09IloiKXJldHVybnt2YWx1ZTowLHJlc3Q6ZS5zbGljZSgxKX07bGV0IGE9dFsxXT09PSIrIj8xOi0xLHI9dFsyXT9wYXJzZUludCh0WzJdLDEwKTowLG49dFszXT9wYXJzZUludCh0WzNdLDEwKTowLG89dFs1XT9wYXJzZUludCh0WzVdLDEwKTowO3JldHVybnt2YWx1ZTphKihyKk5sK24qV28rbypCNykscmVzdDplLnNsaWNlKHRbMF0ubGVuZ3RoKX19ZnVuY3Rpb24gUnRlKHMpe3JldHVybiB0cyhjcy5hbnlEaWdpdHNTaWduZWQscyl9ZnVuY3Rpb24gZ2EocyxlKXtzd2l0Y2gocyl7Y2FzZSAxOnJldHVybiB0cyhjcy5zaW5nbGVEaWdpdCxlKTtjYXNlIDI6cmV0dXJuIHRzKGNzLnR3b0RpZ2l0cyxlKTtjYXNlIDM6cmV0dXJuIHRzKGNzLnRocmVlRGlnaXRzLGUpO2Nhc2UgNDpyZXR1cm4gdHMoY3MuZm91ckRpZ2l0cyxlKTtkZWZhdWx0OnJldHVybiB0cyhuZXcgUmVnRXhwKCJeXFxkezEsIitzKyJ9IiksZSl9fWZ1bmN0aW9uIG85KHMsZSl7c3dpdGNoKHMpe2Nhc2UgMTpyZXR1cm4gdHMoY3Muc2luZ2xlRGlnaXRTaWduZWQsZSk7Y2FzZSAyOnJldHVybiB0cyhjcy50d29EaWdpdHNTaWduZWQsZSk7Y2FzZSAzOnJldHVybiB0cyhjcy50aHJlZURpZ2l0c1NpZ25lZCxlKTtjYXNlIDQ6cmV0dXJuIHRzKGNzLmZvdXJEaWdpdHNTaWduZWQsZSk7ZGVmYXVsdDpyZXR1cm4gdHMobmV3IFJlZ0V4cCgiXi0/XFxkezEsIitzKyJ9IiksZSl9fWZ1bmN0aW9uIG45KHMpe3N3aXRjaChzKXtjYXNlIm1vcm5pbmciOnJldHVybiA0O2Nhc2UiZXZlbmluZyI6cmV0dXJuIDE3O2Nhc2UicG0iOmNhc2Uibm9vbiI6Y2FzZSJhZnRlcm5vb24iOnJldHVybiAxMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBPdGUocyxlKXtsZXQgdD1lPjAsYT10P2U6MS1lLHI7aWYoYTw9NTApcj1zfHwxMDA7ZWxzZXtsZXQgbj1hKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLGw9cz49biUxMDA7cj1zK28tKGw/MTAwOjApfXJldHVybiB0P3I6MS1yfWZ1bmN0aW9uIEZ0ZShzKXtyZXR1cm4gcyU0MDA9PT0wfHxzJTQ9PT0wJiZzJTEwMCE9PTB9dmFyIFBzPWcoKCk9Pnt3YSgpO1pvKCk7aShPcywibWFwVmFsdWUiKTtpKHRzLCJwYXJzZU51bWVyaWNQYXR0ZXJuIik7aShTYywicGFyc2VUaW1lem9uZVBhdHRlcm4iKTtpKFJ0ZSwicGFyc2VBbnlEaWdpdHNTaWduZWQiKTtpKGdhLCJwYXJzZU5EaWdpdHMiKTtpKG85LCJwYXJzZU5EaWdpdHNTaWduZWQiKTtpKG45LCJkYXlQZXJpb2RFbnVtVG9Ib3VycyIpO2koT3RlLCJub3JtYWxpemVUd29EaWdpdFllYXIiKTtpKEZ0ZSwiaXNMZWFwWWVhckluZGV4Iil9KTt2YXIgQnRlLEpwdD1nKCgpPT57eHMoKTtQcygpO0J0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlllYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJ1IiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3BhcnNlKGUsdCxhKXtsZXQgcj1pKG49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnQ9PT0ieXkifSksInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJ5IjpyZXR1cm4gT3MoZ2EoNCxlKSxyKTtjYXNlInlvIjpyZXR1cm4gT3MoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InllYXIifSkscik7ZGVmYXVsdDpyZXR1cm4gT3MoZ2EodC5sZW5ndGgsZSkscil9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQuaXNUd29EaWdpdFllYXJ8fHQueWVhcj4wfXNldChlLHQsYSl7bGV0IHI9ZS5nZXRGdWxsWWVhcigpO2lmKGEuaXNUd29EaWdpdFllYXIpe2xldCBvPU90ZShhLnllYXIscik7cmV0dXJuIGUuc2V0RnVsbFllYXIobywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1sZXQgbj0hKCJlcmEiaW4gdCl8fHQuZXJhPT09MT9hLnllYXI6MS1hLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobiwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIEh0ZSxlaHQ9ZygoKT0+e0l5KCk7djEoKTt4cygpO1BzKCk7SHRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiTG9jYWxXZWVrWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHQsYSl7bGV0IHI9aShuPT4oe3llYXI6bixpc1R3b0RpZ2l0WWVhcjp0PT09IllZIn0pLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHQpe2Nhc2UiWSI6cmV0dXJuIE9zKGdhKDQsZSkscik7Y2FzZSJZbyI6cmV0dXJuIE9zKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHIpO2RlZmF1bHQ6cmV0dXJuIE9zKGdhKHQubGVuZ3RoLGUpLHIpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0LmlzVHdvRGlnaXRZZWFyfHx0LnllYXI+MH1zZXQoZSx0LGEscil7bGV0IG49YnAoZSxyKTtpZihhLmlzVHdvRGlnaXRZZWFyKXtsZXQgbD1PdGUoYS55ZWFyLG4pO3JldHVybiBlLnNldEZ1bGxZZWFyKGwsMCxyLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSksZS5zZXRIb3VycygwLDAsMCwwKSxLcyhlLHIpfWxldCBvPSEoImVyYSJpbiB0KXx8dC5lcmE9PT0xP2EueWVhcjoxLWEueWVhcjtyZXR1cm4gZS5zZXRGdWxsWWVhcihvLDAsci5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksS3MoZSxyKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJRIiwicSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiaSIsInQiLCJUIl19fSk7dmFyIHF0ZSx0aHQ9ZygoKT0+e3RkKCk7R3QoKTt4cygpO1BzKCk7cXRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiSVNPV2Vla1llYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSx0KXtyZXR1cm4gdD09PSJSIj9vOSg0LGUpOm85KHQubGVuZ3RoLGUpfXNldChlLHQsYSl7bGV0IHI9dHQoZSwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihhLDAsNCksci5zZXRIb3VycygwLDAsMCwwKSxrcihyKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIganRlLGFodD1nKCgpPT57eHMoKTtQcygpO2p0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkV4dGVuZGVkWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHQpe3JldHVybiB0PT09InUiP285KDQsZSk6bzkodC5sZW5ndGgsZSl9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRGdWxsWWVhcihhLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkciLCJ5IiwiWSIsIlIiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFZ0ZSxzaHQ9ZygoKT0+e3hzKCk7UHMoKTtWdGU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJRdWFydGVyUGFyc2VyIil9cHJpb3JpdHk9MTIwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJRIjpjYXNlIlFRIjpyZXR1cm4gZ2EodC5sZW5ndGgsZSk7Y2FzZSJRbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTEmJnQ8PTR9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRNb250aCgoYS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBVdGUsaWh0PWcoKCk9Pnt4cygpO1BzKCk7VXRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIiKX1wcmlvcml0eT0xMjA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlInEiOmNhc2UicXEiOnJldHVybiBnYSh0Lmxlbmd0aCxlKTtjYXNlInFvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MSYmdDw9NH1zZXQoZSx0LGEpe3JldHVybiBlLnNldE1vbnRoKChhLTEpKjMsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFd0ZSxyaHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO1d0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIk1vbnRoUGFyc2VyIil9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIkwiLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3ByaW9yaXR5PTExMDtwYXJzZShlLHQsYSl7bGV0IHI9aShuPT5uLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJNIjpyZXR1cm4gT3ModHMoY3MubW9udGgsZSkscik7Y2FzZSJNTSI6cmV0dXJuIE9zKGdhKDIsZSkscik7Y2FzZSJNbyI6cmV0dXJuIE9zKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxyKTtjYXNlIk1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0xMX1zZXQoZSx0LGEpe3JldHVybiBlLnNldE1vbnRoKGEsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfX19KTt2YXIgR3RlLG9odD1nKCgpPT57Wm8oKTt4cygpO1BzKCk7R3RlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZU1vbnRoUGFyc2VyIil9cHJpb3JpdHk9MTEwO3BhcnNlKGUsdCxhKXtsZXQgcj1pKG49Pm4tMSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaCh0KXtjYXNlIkwiOnJldHVybiBPcyh0cyhjcy5tb250aCxlKSxyKTtjYXNlIkxMIjpyZXR1cm4gT3MoZ2EoMixlKSxyKTtjYXNlIkxvIjpyZXR1cm4gT3MoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1vbnRoIn0pLHIpO2Nhc2UiTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTAmJnQ8PTExfXNldChlLHQsYSl7cmV0dXJuIGUuc2V0TW9udGgoYSwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIEt0ZShzLGUsdCl7bGV0IGE9QWUocyx0Py5pbikscj1pOShhLHQpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1yKjcpLEFlKGEsdD8uaW4pfXZhciAkVHMsRnBlPWcoKCk9Pnt3dGUoKTthdCgpO2koS3RlLCJzZXRXZWVrIik7JFRzPUt0ZX0pO3ZhciBZdGUsbmh0PWcoKCk9PntGcGUoKTt2MSgpO1pvKCk7eHMoKTtQcygpO1l0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkxvY2FsV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UidyI6cmV0dXJuIHRzKGNzLndlZWssZSk7Y2FzZSJ3byI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD01M31zZXQoZSx0LGEscil7cmV0dXJuIEtzKEt0ZShlLGEscikscil9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIFp0ZShzLGUsdCl7bGV0IGE9QWUocyx0Py5pbikscj1zOShhLHQpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1yKjcpLGF9dmFyIEhUcyxCcGU9ZygoKT0+e3h0ZSgpO2F0KCk7aShadGUsInNldElTT1dlZWsiKTtIVHM9WnRlfSk7dmFyIFh0ZSxsaHQ9ZygoKT0+e0JwZSgpO3RkKCk7Wm8oKTt4cygpO1BzKCk7WHRlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiSVNPV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiSSI6cmV0dXJuIHRzKGNzLndlZWssZSk7Y2FzZSJJbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD01M31zZXQoZSx0LGEpe3JldHVybiBrcihadGUoZSxhKSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgdUVhLHBFYSxRdGUsY2h0PWcoKCk9PntabygpO3hzKCk7UHMoKTt1RWE9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxwRWE9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxRdGU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJEYXRlUGFyc2VyIil9cHJpb3JpdHk9OTA7c3ViUHJpb3JpdHk9MTtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiZCI6cmV0dXJuIHRzKGNzLmRhdGUsZSk7Y2FzZSJkbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe2xldCBhPWUuZ2V0RnVsbFllYXIoKSxyPUZ0ZShhKSxuPWUuZ2V0TW9udGgoKTtyZXR1cm4gcj90Pj0xJiZ0PD1wRWFbbl06dD49MSYmdDw9dUVhW25dfXNldChlLHQsYSl7cmV0dXJuIGUuc2V0RGF0ZShhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEp0ZSxkaHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO0p0ZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkRheU9mWWVhclBhcnNlciIpfXByaW9yaXR5PTkwO3N1YnByaW9yaXR5PTE7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlIkQiOmNhc2UiREQiOnJldHVybiB0cyhjcy5kYXlPZlllYXIsZSk7Y2FzZSJEbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe2xldCBhPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gRnRlKGEpP3Q+PTEmJnQ8PTM2Njp0Pj0xJiZ0PD0zNjV9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRNb250aCgwLGEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiB5cChzLGUsdCl7bGV0IGE9RXMoKSxyPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49QWUocyx0Py5pbiksbz1uLmdldERheSgpLHA9KGUlNys3KSU3LGQ9Ny1yLHU9ZTwwfHxlPjY/ZS0obytkKSU3OihwK2QpJTctKG8rZCklNztyZXR1cm4gSHIobix1LHQpfXZhciBkJHMsRnk9ZygoKT0+e0dvKCk7UTIoKTthdCgpO2koeXAsInNldERheSIpO2Qkcz15cH0pO3ZhciBlYWUsdWh0PWcoKCk9PntGeSgpO3hzKCk7ZWFlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD02fXNldChlLHQsYSxyKXtyZXR1cm4gZT15cChlLGEsciksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB0YWUscGh0PWcoKCk9PntGeSgpO3hzKCk7UHMoKTt0YWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJMb2NhbERheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUsdCxhLHIpe2xldCBuPWkobz0+e2xldCBsPU1hdGguZmxvb3IoKG8tMSkvNykqNztyZXR1cm4obytyLndlZWtTdGFydHNPbis2KSU3K2x9LCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHQpe2Nhc2UiZSI6Y2FzZSJlZSI6cmV0dXJuIE9zKGdhKHQubGVuZ3RoLGUpLG4pO2Nhc2UiZW8iOnJldHVybiBPcyhhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiZWVlIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD02fXNldChlLHQsYSxyKXtyZXR1cm4gZT15cChlLGEsciksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBhYWUsaGh0PWcoKCk9PntGeSgpO3hzKCk7UHMoKTthYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJTdGFuZEFsb25lTG9jYWxEYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHQsYSxyKXtsZXQgbj1pKG89PntsZXQgbD1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rci53ZWVrU3RhcnRzT24rNiklNytsfSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaCh0KXtjYXNlImMiOmNhc2UiY2MiOnJldHVybiBPcyhnYSh0Lmxlbmd0aCxlKSxuKTtjYXNlImNvIjpyZXR1cm4gT3MoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxuKTtjYXNlImNjYyI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9Nn1zZXQoZSx0LGEscil7cmV0dXJuIGU9eXAoZSxhLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJlIiwidCIsIlQiXX19KTtmdW5jdGlvbiBzYWUocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9RHRlKGEsdCksbj1lLXI7cmV0dXJuIEhyKGEsbix0KX12YXIgRCRzLEhwZT1nKCgpPT57UTIoKTtBcGUoKTthdCgpO2koc2FlLCJzZXRJU09EYXkiKTtEJHM9c2FlfSk7dmFyIGlhZSxmaHQ9ZygoKT0+e0hwZSgpO3hzKCk7UHMoKTtpYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJJU09EYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHQsYSl7bGV0IHI9aShuPT5uPT09MD83Om4sInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJpIjpjYXNlImlpIjpyZXR1cm4gZ2EodC5sZW5ndGgsZSk7Y2FzZSJpbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiBPcyhhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxyKTtjYXNlImlpaWlpIjpyZXR1cm4gT3MoYS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxyKTtjYXNlImlpaWlpaSI6cmV0dXJuIE9zKGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxyKTtkZWZhdWx0OnJldHVybiBPcyhhLmRheShlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscil9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTEmJnQ8PTd9c2V0KGUsdCxhKXtyZXR1cm4gZT1zYWUoZSxhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHJhZSxtaHQ9ZygoKT0+e3hzKCk7UHMoKTtyYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJBTVBNUGFyc2VyIil9cHJpb3JpdHk9ODA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLHQsYSl7cmV0dXJuIGUuc2V0SG91cnMobjkoYSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIG9hZSxnaHQ9ZygoKT0+e3hzKCk7UHMoKTtvYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJBTVBNTWlkbmlnaHRQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRIb3VycyhuOShhKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgbmFlLGJodD1nKCgpPT57eHMoKTtQcygpO25hZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkRheVBlcmlvZFBhcnNlciIpfXByaW9yaXR5PTgwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSx0LGEpe3JldHVybiBlLnNldEhvdXJzKG45KGEpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwidCIsIlQiXX19KTt2YXIgbGFlLHZodD1nKCgpPT57Wm8oKTt4cygpO1BzKCk7bGFlPWNsYXNzIGV4dGVuZHMgRXR7c3RhdGlje2kodGhpcywiSG91cjF0bzEyUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSx0LGEpe3N3aXRjaCh0KXtjYXNlImgiOnJldHVybiB0cyhjcy5ob3VyMTJoLGUpO2Nhc2UiaG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBnYSh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MSYmdDw9MTJ9c2V0KGUsdCxhKXtsZXQgcj1lLmdldEhvdXJzKCk+PTEyO3JldHVybiByJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6IXImJmE9PT0xMj9lLnNldEhvdXJzKDAsMCwwLDApOmUuc2V0SG91cnMoYSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBjYWUseGh0PWcoKCk9PntabygpO3hzKCk7UHMoKTtjYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJIb3VyMHRvMjNQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiSCI6cmV0dXJuIHRzKGNzLmhvdXIyM2gsZSk7Y2FzZSJIbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0yM31zZXQoZSx0LGEpe3JldHVybiBlLnNldEhvdXJzKGEsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBkYWUseWh0PWcoKCk9PntabygpO3hzKCk7UHMoKTtkYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJIb3VyMFRvMTFQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiSyI6cmV0dXJuIHRzKGNzLmhvdXIxMWgsZSk7Y2FzZSJLbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0xMX1zZXQoZSx0LGEpe3JldHVybiBlLmdldEhvdXJzKCk+PTEyJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6ZS5zZXRIb3VycyhhLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImgiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIHVhZSx3aHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO3VhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIkhvdXIxVG8yNFBhcnNlciIpfXByaW9yaXR5PTcwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJrIjpyZXR1cm4gdHMoY3MuaG91cjI0aCxlKTtjYXNlImtvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gZ2EodC5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQ+PTEmJnQ8PTI0fXNldChlLHQsYSl7bGV0IHI9YTw9MjQ/YSUyNDphO3JldHVybiBlLnNldEhvdXJzKHIsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciBwYWUsa2h0PWcoKCk9PntabygpO3hzKCk7UHMoKTtwYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJNaW51dGVQYXJzZXIiKX1wcmlvcml0eT02MDtwYXJzZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UibSI6cmV0dXJuIHRzKGNzLm1pbnV0ZSxlKTtjYXNlIm1vIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1pbnV0ZSJ9KTtkZWZhdWx0OnJldHVybiBnYSh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9NTl9c2V0KGUsdCxhKXtyZXR1cm4gZS5zZXRNaW51dGVzKGEsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGhhZSxTaHQ9ZygoKT0+e1pvKCk7eHMoKTtQcygpO2hhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlNlY29uZFBhcnNlciIpfXByaW9yaXR5PTUwO3BhcnNlKGUsdCxhKXtzd2l0Y2godCl7Y2FzZSJzIjpyZXR1cm4gdHMoY3Muc2Vjb25kLGUpO2Nhc2Uic28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoic2Vjb25kIn0pO2RlZmF1bHQ6cmV0dXJuIGdhKHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD01OX1zZXQoZSx0LGEpe3JldHVybiBlLnNldFNlY29uZHMoYSwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGZhZSxfaHQ9ZygoKT0+e3hzKCk7UHMoKTtmYWU9Y2xhc3MgZXh0ZW5kcyBFdHtzdGF0aWN7aSh0aGlzLCJGcmFjdGlvbk9mU2Vjb25kUGFyc2VyIil9cHJpb3JpdHk9MzA7cGFyc2UoZSx0KXtsZXQgYT1pKHI9Pk1hdGgudHJ1bmMocipNYXRoLnBvdygxMCwtdC5sZW5ndGgrMykpLCJ2YWx1ZUNhbGxiYWNrIik7cmV0dXJuIE9zKGdhKHQubGVuZ3RoLGUpLGEpfXNldChlLHQsYSl7cmV0dXJuIGUuc2V0TWlsbGlzZWNvbmRzKGEpLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgbWFlLE1odD1nKCgpPT57R3QoKTt1MCgpO1pvKCk7eHMoKTtQcygpO21hZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lV2l0aFpQYXJzZXIiKX1wcmlvcml0eT0xMDtwYXJzZShlLHQpe3N3aXRjaCh0KXtjYXNlIlgiOnJldHVybiBTYyhrYy5iYXNpY09wdGlvbmFsTWludXRlcyxlKTtjYXNlIlhYIjpyZXR1cm4gU2Moa2MuYmFzaWMsZSk7Y2FzZSJYWFhYIjpyZXR1cm4gU2Moa2MuYmFzaWNPcHRpb25hbFNlY29uZHMsZSk7Y2FzZSJYWFhYWCI6cmV0dXJuIFNjKGtjLmV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzLGUpO2RlZmF1bHQ6cmV0dXJuIFNjKGtjLmV4dGVuZGVkLGUpfX1zZXQoZSx0LGEpe3JldHVybiB0LnRpbWVzdGFtcElzU2V0P2U6dHQoZSxlLmdldFRpbWUoKS1GaShlKS1hKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCIsIngiXX19KTt2YXIgZ2FlLHpodD1nKCgpPT57R3QoKTt1MCgpO1pvKCk7eHMoKTtQcygpO2dhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lUGFyc2VyIil9cHJpb3JpdHk9MTA7cGFyc2UoZSx0KXtzd2l0Y2godCl7Y2FzZSJ4IjpyZXR1cm4gU2Moa2MuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJ4eCI6cmV0dXJuIFNjKGtjLmJhc2ljLGUpO2Nhc2UieHh4eCI6cmV0dXJuIFNjKGtjLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UieHh4eHgiOnJldHVybiBTYyhrYy5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBTYyhrYy5leHRlbmRlZCxlKX19c2V0KGUsdCxhKXtyZXR1cm4gdC50aW1lc3RhbXBJc1NldD9lOnR0KGUsZS5nZXRUaW1lKCktRmkoZSktYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIGJhZSxDaHQ9ZygoKT0+e0d0KCk7eHMoKTtQcygpO2JhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcFNlY29uZHNQYXJzZXIiKX1wcmlvcml0eT00MDtwYXJzZShlKXtyZXR1cm4gUnRlKGUpfXNldChlLHQsYSl7cmV0dXJuW3R0KGUsYSoxZTMpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIHZhZSxUaHQ9ZygoKT0+e0d0KCk7eHMoKTtQcygpO3ZhZT1jbGFzcyBleHRlbmRzIEV0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciIpfXByaW9yaXR5PTIwO3BhcnNlKGUpe3JldHVybiBSdGUoZSl9c2V0KGUsdCxhKXtyZXR1cm5bdHQoZSxhKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciB4YWUsJGh0PWcoKCk9PntRcHQoKTtKcHQoKTtlaHQoKTt0aHQoKTthaHQoKTtzaHQoKTtpaHQoKTtyaHQoKTtvaHQoKTtuaHQoKTtsaHQoKTtjaHQoKTtkaHQoKTt1aHQoKTtwaHQoKTtoaHQoKTtmaHQoKTttaHQoKTtnaHQoKTtiaHQoKTt2aHQoKTt4aHQoKTt5aHQoKTt3aHQoKTtraHQoKTtTaHQoKTtfaHQoKTtNaHQoKTt6aHQoKTtDaHQoKTtUaHQoKTt4YWU9e0c6bmV3IE50ZSx5Om5ldyBCdGUsWTpuZXcgSHRlLFI6bmV3IHF0ZSx1Om5ldyBqdGUsUTpuZXcgVnRlLHE6bmV3IFV0ZSxNOm5ldyBXdGUsTDpuZXcgR3RlLHc6bmV3IFl0ZSxJOm5ldyBYdGUsZDpuZXcgUXRlLEQ6bmV3IEp0ZSxFOm5ldyBlYWUsZTpuZXcgdGFlLGM6bmV3IGFhZSxpOm5ldyBpYWUsYTpuZXcgcmFlLGI6bmV3IG9hZSxCOm5ldyBuYWUsaDpuZXcgbGFlLEg6bmV3IGNhZSxLOm5ldyBkYWUsazpuZXcgdWFlLG06bmV3IHBhZSxzOm5ldyBoYWUsUzpuZXcgZmFlLFg6bmV3IG1hZSx4Om5ldyBnYWUsdDpuZXcgYmFlLFQ6bmV3IHZhZX19KTtmdW5jdGlvbiB5YWUocyxlLHQsYSl7bGV0IHI9aSgoKT0+dHQoYT8uaW58fHQsTmFOKSwiaW52YWxpZERhdGUiKSxuPSR0ZSgpLG89YT8ubG9jYWxlPz9uLmxvY2FsZT8/bWwsbD1hPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2E/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9uLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxwPWE/LndlZWtTdGFydHNPbj8/YT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wO2lmKCFlKXJldHVybiBzP3IoKTpBZSh0LGE/LmluKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOmwsd2Vla1N0YXJ0c09uOnAsbG9jYWxlOm99LHU9W25ldyBBdGUoYT8uaW4sdCldLGM9ZS5tYXRjaChmRWEpLm1hcChmPT57bGV0IHk9ZlswXTtpZih5IGluIHZwKXtsZXQgTT12cFt5XTtyZXR1cm4gTShmLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGZ9KS5qb2luKCIiKS5tYXRjaChoRWEpLGI9W107Zm9yKGxldCBmIG9mIGMpeyFhPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJlN0ZShmKSYmTnkoZixlLHMpLCFhPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZrdGUoZikmJk55KGYsZSxzKTtsZXQgeT1mWzBdLE09eGFlW3ldO2lmKE0pe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6en09TTtpZihBcnJheS5pc0FycmF5KHopKXtsZXQgQz1iLmZpbmQoXz0+ei5pbmNsdWRlcyhfLnRva2VuKXx8Xy50b2tlbj09PXkpO2lmKEMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7Qy5mdWxsVG9rZW59XGAgYW5kIFxgJHtmfVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKE0uaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZiLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2Z9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7Yi5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpmfSk7bGV0IE49TS5ydW4ocyxmLG8ubWF0Y2gsZCk7aWYoIU4pcmV0dXJuIHIoKTt1LnB1c2goTi5zZXR0ZXIpLHM9Ti5yZXN0fWVsc2V7aWYoeS5tYXRjaCh2RWEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGY9PT0iJyciP2Y9IiciOnk9PT0iJyImJihmPXhFYShmKSkscy5pbmRleE9mKGYpPT09MClzPXMuc2xpY2UoZi5sZW5ndGgpO2Vsc2UgcmV0dXJuIHIoKX19aWYocy5sZW5ndGg+MCYmYkVhLnRlc3QocykpcmV0dXJuIHIoKTtsZXQgdj11Lm1hcChmPT5mLnByaW9yaXR5KS5zb3J0KChmLHkpPT55LWYpLmZpbHRlcigoZix5LE0pPT5NLmluZGV4T2YoZik9PT15KS5tYXAoZj0+dS5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWYpLnNvcnQoKHksTSk9Pk0uc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChmPT5mWzBdKSx4PUFlKHQsYT8uaW4pO2lmKGlzTmFOKCt4KSlyZXR1cm4gcigpO2xldCBtPXt9O2ZvcihsZXQgZiBvZiB2KXtpZighZi52YWxpZGF0ZSh4LGQpKXJldHVybiByKCk7bGV0IHk9Zi5zZXQoeCxtLGQpO0FycmF5LmlzQXJyYXkoeSk/KHg9eVswXSxPYmplY3QuYXNzaWduKG0seVsxXSkpOng9eX1yZXR1cm4geH1mdW5jdGlvbiB4RWEocyl7cmV0dXJuIHMubWF0Y2gobUVhKVsxXS5yZXBsYWNlKGdFYSwiJyIpfXZhciBoRWEsZkVhLG1FYSxnRWEsYkVhLHZFYSxCTHMscXBlPWcoKCk9PntKNCgpO3pwZSgpO0NwZSgpO0d0KCk7SXBlKCk7YXQoKTtPcGUoKTskaHQoKTtoRWE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxmRWE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csbUVhPS9eJyhbXl0qPyknPyQvLGdFYT0vJycvZyxiRWE9L1xTLyx2RWE9L1thLXpBLVpdLztpKHlhZSwicGFyc2UiKTtpKHhFYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7QkxzPXlhZX0pO2Z1bmN0aW9uIERodChzLGUsdCl7cmV0dXJuIGtvKHlhZShzLGUsbmV3IERhdGUsdCkpfXZhciBVTHMsTGh0PWcoKCk9PntoMCgpO3FwZSgpO2koRGh0LCJpc01hdGNoIik7VUxzPURodH0pO2Z1bmN0aW9uIEVodChzLGUpe3JldHVybiBBZShzLGU/LmluKS5nZXREYXkoKT09PTF9dmFyIFlMcyxQaHQ9ZygoKT0+e2F0KCk7aShFaHQsImlzTW9uZGF5Iik7WUxzPUVodH0pO2Z1bmN0aW9uIElodChzKXtyZXR1cm4rQWUocyk8RGF0ZS5ub3coKX12YXIgSkxzLEFodD1nKCgpPT57YXQoKTtpKElodCwiaXNQYXN0Iik7SkxzPUlodH0pO2Z1bmN0aW9uIEJ5KHMsZSl7bGV0IHQ9QWUocyxlPy5pbik7cmV0dXJuIHQuc2V0TWludXRlcygwLDAsMCksdH12YXIgc0VzLGpwZT1nKCgpPT57YXQoKTtpKEJ5LCJzdGFydE9mSG91ciIpO3NFcz1CeX0pO2Z1bmN0aW9uIHdhZShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4rQnkoYSk9PStCeShyKX12YXIgbEVzLFZwZT1nKCgpPT57UnMoKTtqcGUoKTtpKHdhZSwiaXNTYW1lSG91ciIpO2xFcz13YWV9KTtmdW5jdGlvbiBsOShzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4rS3MoYSx0KT09K0tzKHIsdCl9dmFyIGhFcyxrYWU9ZygoKT0+e1JzKCk7djEoKTtpKGw5LCJpc1NhbWVXZWVrIik7aEVzPWw5fSk7ZnVuY3Rpb24gU2FlKHMsZSx0KXtyZXR1cm4gbDkocyxlLHsuLi50LHdlZWtTdGFydHNPbjoxfSl9dmFyIGJFcyxVcGU9ZygoKT0+e2thZSgpO2koU2FlLCJpc1NhbWVJU09XZWVrIik7YkVzPVNhZX0pO2Z1bmN0aW9uIE5odChzLGUsdCl7bGV0W2Escl09VnQodD8uaW4scyxlKTtyZXR1cm4rUmwoYSk9PStSbChyKX12YXIga0VzLFJodD1nKCgpPT57VjcoKTtScygpO2koTmh0LCJpc1NhbWVJU09XZWVrWWVhciIpO2tFcz1OaHR9KTtmdW5jdGlvbiBIeShzLGUpe2xldCB0PUFlKHMsZT8uaW4pO3JldHVybiB0LnNldFNlY29uZHMoMCwwKSx0fXZhciB6RXMsV3BlPWcoKCk9PnthdCgpO2koSHksInN0YXJ0T2ZNaW51dGUiKTt6RXM9SHl9KTtmdW5jdGlvbiBfYWUocyxlKXtyZXR1cm4rSHkocyk9PStIeShlKX12YXIgREVzLEdwZT1nKCgpPT57V3BlKCk7aShfYWUsImlzU2FtZU1pbnV0ZSIpO0RFcz1fYWV9KTtmdW5jdGlvbiBNYWUocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKT09PXIuZ2V0RnVsbFllYXIoKSYmYS5nZXRNb250aCgpPT09ci5nZXRNb250aCgpfXZhciBJRXMsS3BlPWcoKCk9PntScygpO2koTWFlLCJpc1NhbWVNb250aCIpO0lFcz1NYWV9KTtmdW5jdGlvbiB6YWUocyxlLHQpe2xldFthLHJdPVZ0KHQ/LmluLHMsZSk7cmV0dXJuK29kKGEpPT0rb2Qocil9dmFyIEZFcyxZcGU9ZygoKT0+e1JzKCk7cHRlKCk7aSh6YWUsImlzU2FtZVF1YXJ0ZXIiKTtGRXM9emFlfSk7ZnVuY3Rpb24gcXkocyxlKXtsZXQgdD1BZShzLGU/LmluKTtyZXR1cm4gdC5zZXRNaWxsaXNlY29uZHMoMCksdH12YXIgakVzLFpwZT1nKCgpPT57YXQoKTtpKHF5LCJzdGFydE9mU2Vjb25kIik7akVzPXF5fSk7ZnVuY3Rpb24gQ2FlKHMsZSl7cmV0dXJuK3F5KHMpPT0rcXkoZSl9dmFyIEdFcyxYcGU9ZygoKT0+e1pwZSgpO2koQ2FlLCJpc1NhbWVTZWNvbmQiKTtHRXM9Q2FlfSk7ZnVuY3Rpb24gVGFlKHMsZSx0KXtsZXRbYSxyXT1WdCh0Py5pbixzLGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1yLmdldEZ1bGxZZWFyKCl9dmFyIFhFcyxRcGU9ZygoKT0+e1JzKCk7aShUYWUsImlzU2FtZVllYXIiKTtYRXM9VGFlfSk7ZnVuY3Rpb24gT2h0KHMsZSl7cmV0dXJuIHdhZShBZShzLGU/LmluKSxQYShlPy5pbnx8cykpfXZhciBzUHMsRmh0PWcoKCk9PntxcigpO1ZwZSgpO2F0KCk7aShPaHQsImlzVGhpc0hvdXIiKTtzUHM9T2h0fSk7ZnVuY3Rpb24gQmh0KHMsZSl7cmV0dXJuIFNhZSh0dChlPy5pbnx8cyxzKSxQYShlPy5pbnx8cykpfXZhciBjUHMsSGh0PWcoKCk9PntHdCgpO3FyKCk7VXBlKCk7aShCaHQsImlzVGhpc0lTT1dlZWsiKTtjUHM9Qmh0fSk7ZnVuY3Rpb24gcWh0KHMpe3JldHVybiBfYWUocyxQYShzKSl9dmFyIGZQcyxqaHQ9ZygoKT0+e3FyKCk7R3BlKCk7aShxaHQsImlzVGhpc01pbnV0ZSIpO2ZQcz1xaHR9KTtmdW5jdGlvbiBWaHQocyxlKXtyZXR1cm4gTWFlKHR0KGU/LmlufHxzLHMpLFBhKGU/LmlufHxzKSl9dmFyIHlQcyxVaHQ9ZygoKT0+e0d0KCk7cXIoKTtLcGUoKTtpKFZodCwiaXNUaGlzTW9udGgiKTt5UHM9Vmh0fSk7ZnVuY3Rpb24gV2h0KHMsZSl7cmV0dXJuIHphZSh0dChlPy5pbnx8cyxzKSxQYShlPy5pbnx8cykpfXZhciB6UHMsR2h0PWcoKCk9PntHdCgpO3FyKCk7WXBlKCk7aShXaHQsImlzVGhpc1F1YXJ0ZXIiKTt6UHM9V2h0fSk7ZnVuY3Rpb24gS2h0KHMpe3JldHVybiBDYWUocyxQYShzKSl9dmFyIExQcyxZaHQ9ZygoKT0+e3FyKCk7WHBlKCk7aShLaHQsImlzVGhpc1NlY29uZCIpO0xQcz1LaHR9KTtmdW5jdGlvbiBaaHQocyxlKXtyZXR1cm4gbDkodHQoZT8uaW58fHMscyksUGEoZT8uaW58fHMpLGUpfXZhciBSUHMsWGh0PWcoKCk9PntHdCgpO3FyKCk7a2FlKCk7aShaaHQsImlzVGhpc1dlZWsiKTtSUHM9Wmh0fSk7ZnVuY3Rpb24gUWh0KHMsZSl7cmV0dXJuIFRhZSh0dChlPy5pbnx8cyxzKSxQYShlPy5pbnx8cykpfXZhciBqUHMsSmh0PWcoKCk9PntHdCgpO3FyKCk7UXBlKCk7aShRaHQsImlzVGhpc1llYXIiKTtqUHM9UWh0fSk7ZnVuY3Rpb24gZTR0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09NH12YXIgR1BzLHQ0dD1nKCgpPT57YXQoKTtpKGU0dCwiaXNUaHVyc2RheSIpO0dQcz1lNHR9KTtmdW5jdGlvbiBhNHQocyxlKXtyZXR1cm4gc2QodHQoZT8uaW58fHMscyksUGEoZT8uaW58fHMpKX12YXIgSlBzLHM0dD1nKCgpPT57R3QoKTtxcigpO0c3KCk7aShhNHQsImlzVG9kYXkiKTtKUHM9YTR0fSk7ZnVuY3Rpb24gaTR0KHMsZSl7cmV0dXJuIHNkKHMsSHIoUGEoZT8uaW58fHMpLDEpLGUpfXZhciBySXMscjR0PWcoKCk9PntRMigpO3FyKCk7RzcoKTtpKGk0dCwiaXNUb21vcnJvdyIpO3JJcz1pNHR9KTtmdW5jdGlvbiBvNHQocyxlKXtyZXR1cm4gQWUocyxlPy5pbikuZ2V0RGF5KCk9PT0yfXZhciBjSXMsbjR0PWcoKCk9PnthdCgpO2kobzR0LCJpc1R1ZXNkYXkiKTtjSXM9bzR0fSk7ZnVuY3Rpb24gbDR0KHMsZSl7cmV0dXJuIEFlKHMsZT8uaW4pLmdldERheSgpPT09M312YXIgaElzLGM0dD1nKCgpPT57YXQoKTtpKGw0dCwiaXNXZWRuZXNkYXkiKTtoSXM9bDR0fSk7ZnVuY3Rpb24gZDR0KHMsZSx0KXtsZXQgYT0rQWUocyx0Py5pbiksW3Isbl09WytBZShlLnN0YXJ0LHQ/LmluKSwrQWUoZS5lbmQsdD8uaW4pXS5zb3J0KChvLGwpPT5vLWwpO3JldHVybiBhPj1yJiZhPD1ufXZhciBiSXMsdTR0PWcoKCk9PnthdCgpO2koZDR0LCJpc1dpdGhpbkludGVydmFsIik7YklzPWQ0dH0pO2Z1bmN0aW9uIHdwKHMsZSx0KXtyZXR1cm4gSHIocywtZSx0KX12YXIgd0lzLGp5PWcoKCk9PntRMigpO2kod3AsInN1YkRheXMiKTt3SXM9d3B9KTtmdW5jdGlvbiBwNHQocyxlKXtyZXR1cm4gc2QodHQoZT8uaW58fHMscyksd3AoUGEoZT8uaW58fHMpLDEpKX12YXIgVElzLGg0dD1nKCgpPT57R3QoKTtxcigpO0c3KCk7ankoKTtpKHA0dCwiaXNZZXN0ZXJkYXkiKTtUSXM9cDR0fSk7ZnVuY3Rpb24gZjR0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldEZ1bGxZZWFyKCkscj05K01hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHQuc2V0RnVsbFllYXIocisxLDAsMCksdC5zZXRIb3VycygwLDAsMCwwKSxBZSh0LGU/LmluKX12YXIgRUlzLG00dD1nKCgpPT57YXQoKTtpKGY0dCwibGFzdERheU9mRGVjYWRlIik7RUlzPWY0dH0pO2Z1bmN0aW9uICRhZShzLGUpe2xldCB0PUVzKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz90LndlZWtTdGFydHNPbj8/dC5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxyPUFlKHMsZT8uaW4pLG49ci5nZXREYXkoKSxvPShuPGE/LTc6MCkrNi0obi1hKTtyZXR1cm4gci5zZXRIb3VycygwLDAsMCwwKSxyLnNldERhdGUoci5nZXREYXRlKCkrbykscn12YXIgUklzLEpwZT1nKCgpPT57R28oKTthdCgpO2koJGFlLCJsYXN0RGF5T2ZXZWVrIik7UklzPSRhZX0pO2Z1bmN0aW9uIGc0dChzLGUpe3JldHVybiAkYWUocyx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciBISXMsYjR0PWcoKCk9PntKcGUoKTtpKGc0dCwibGFzdERheU9mSVNPV2VlayIpO0hJcz1nNHR9KTtmdW5jdGlvbiB2NHQocyxlKXtsZXQgdD13bihzLGUpLGE9dHQoZT8uaW58fHMsMCk7YS5zZXRGdWxsWWVhcih0KzEsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApO2xldCByPWtyKGEsZSk7cmV0dXJuIHIuc2V0RGF0ZShyLmdldERhdGUoKS0xKSxyfXZhciBHSXMseDR0PWcoKCk9PntHdCgpO3BwKCk7dGQoKTtpKHY0dCwibGFzdERheU9mSVNPV2Vla1llYXIiKTtHSXM9djR0fSk7ZnVuY3Rpb24geTR0KHMsZSl7bGV0IHQ9QWUocyxlPy5pbiksYT10LmdldE1vbnRoKCkscj1hLWElMyszO3JldHVybiB0LnNldE1vbnRoKHIsMCksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBYSXMsdzR0PWcoKCk9PnthdCgpO2koeTR0LCJsYXN0RGF5T2ZRdWFydGVyIik7WElzPXk0dH0pO2Z1bmN0aW9uIGs0dChzLGUpe2xldCB0PUFlKHMsZT8uaW4pLGE9dC5nZXRGdWxsWWVhcigpO3JldHVybiB0LnNldEZ1bGxZZWFyKGErMSwwLDApLHQuc2V0SG91cnMoMCwwLDAsMCksdH12YXIgdEFzLFM0dD1nKCgpPT57YXQoKTtpKGs0dCwibGFzdERheU9mWWVhciIpO3RBcz1rNHR9KTtmdW5jdGlvbiBfNHQocyxlKXtsZXQgdD1BZShzKTtpZigha28odCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWUubWF0Y2goeUVhKTtyZXR1cm4gYT9hLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gX0VhKG4pO2xldCBsPU9sW29dO2lmKGwpcmV0dXJuIGwodCxuKTtpZihvLm1hdGNoKFNFYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBfRWEocyl7bGV0IGU9cy5tYXRjaCh3RWEpO3JldHVybiBlP2VbMV0ucmVwbGFjZShrRWEsIiciKTpzfXZhciB5RWEsd0VhLGtFYSxTRWEsbkFzLE00dD1nKCgpPT57TXBlKCk7aDAoKTthdCgpO3lFYT0vKFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyx3RWE9L14nKFteXSo/KSc/JC8sa0VhPS8nJy9nLFNFYT0vW2EtekEtWl0vO2koXzR0LCJsaWdodEZvcm1hdCIpO2koX0VhLCJjbGVhbkVzY2FwZWRTdHJpbmciKTtuQXM9XzR0fSk7ZnVuY3Rpb24gejR0KHt5ZWFyczpzLG1vbnRoczplLHdlZWtzOnQsZGF5czphLGhvdXJzOnIsbWludXRlczpuLHNlY29uZHM6b30pe2xldCBsPTA7cyYmKGwrPXMqMzY1LjI0MjUpLGUmJihsKz1lKigzNjUuMjQyNS8xMikpLHQmJihsKz10KjcpLGEmJihsKz1hKTtsZXQgcD1sKjI0KjYwKjYwO3JldHVybiByJiYocCs9cio2MCo2MCksbiYmKHArPW4qNjApLG8mJihwKz1vKSxNYXRoLnRydW5jKHAqMWUzKX12YXIgdUFzLEM0dD1nKCgpPT57d2EoKTtpKHo0dCwibWlsbGlzZWNvbmRzIik7dUFzPXo0dH0pO2Z1bmN0aW9uIFQ0dChzKXtsZXQgZT1zL05sO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBtQXMsJDR0PWcoKCk9Pnt3YSgpO2koVDR0LCJtaWxsaXNlY29uZHNUb0hvdXJzIik7bUFzPVQ0dH0pO2Z1bmN0aW9uIEQ0dChzKXtsZXQgZT1zL1dvO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciB4QXMsTDR0PWcoKCk9Pnt3YSgpO2koRDR0LCJtaWxsaXNlY29uZHNUb01pbnV0ZXMiKTt4QXM9RDR0fSk7ZnVuY3Rpb24gRTR0KHMpe2xldCBlPXMvQjc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIFNBcyxQNHQ9ZygoKT0+e3dhKCk7aShFNHQsIm1pbGxpc2Vjb25kc1RvU2Vjb25kcyIpO1NBcz1FNHR9KTtmdW5jdGlvbiBJNHQocyl7bGV0IGU9cy9JZWU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIENBcyxBNHQ9ZygoKT0+e3dhKCk7aShJNHQsIm1pbnV0ZXNUb0hvdXJzIik7Q0FzPUk0dH0pO2Z1bmN0aW9uIE40dChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKldvKX12YXIgTEFzLFI0dD1nKCgpPT57d2EoKTtpKE40dCwibWludXRlc1RvTWlsbGlzZWNvbmRzIik7TEFzPU40dH0pO2Z1bmN0aW9uIE80dChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKnE3KX12YXIgQUFzLEY0dD1nKCgpPT57d2EoKTtpKE80dCwibWludXRlc1RvU2Vjb25kcyIpO0FBcz1PNHR9KTtmdW5jdGlvbiBCNHQocyl7bGV0IGU9cy9BZWU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIEZBcyxINHQ9ZygoKT0+e3dhKCk7aShCNHQsIm1vbnRoc1RvUXVhcnRlcnMiKTtGQXM9QjR0fSk7ZnVuY3Rpb24gcTR0KHMpe2xldCBlPXMvTmVlO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBqQXMsajR0PWcoKCk9Pnt3YSgpO2kocTR0LCJtb250aHNUb1llYXJzIik7akFzPXE0dH0pO2Z1bmN0aW9uIFhvKHMsZSx0KXtsZXQgYT1lLXhwKHMsdCk7cmV0dXJuIGE8PTAmJihhKz03KSxIcihzLGEsdCl9dmFyIEtBcyxtMD1nKCgpPT57UTIoKTtPeSgpO2koWG8sIm5leHREYXkiKTtLQXM9WG99KTtmdW5jdGlvbiBWNHQocyxlKXtyZXR1cm4gWG8ocyw1LGUpfXZhciBRQXMsVTR0PWcoKCk9PnttMCgpO2koVjR0LCJuZXh0RnJpZGF5Iik7UUFzPVY0dH0pO2Z1bmN0aW9uIFc0dChzLGUpe3JldHVybiBYbyhzLDEsZSl9dmFyIGFOcyxHNHQ9ZygoKT0+e20wKCk7aShXNHQsIm5leHRNb25kYXkiKTthTnM9VzR0fSk7ZnVuY3Rpb24gSzR0KHMsZSl7cmV0dXJuIFhvKHMsNixlKX12YXIgb05zLFk0dD1nKCgpPT57bTAoKTtpKEs0dCwibmV4dFNhdHVyZGF5Iik7b05zPUs0dH0pO2Z1bmN0aW9uIFo0dChzLGUpe3JldHVybiBYbyhzLDAsZSl9dmFyIGROcyxYNHQ9ZygoKT0+e20wKCk7aShaNHQsIm5leHRTdW5kYXkiKTtkTnM9WjR0fSk7ZnVuY3Rpb24gUTR0KHMsZSl7cmV0dXJuIFhvKHMsNCxlKX12YXIgZk5zLEo0dD1nKCgpPT57bTAoKTtpKFE0dCwibmV4dFRodXJzZGF5Iik7Zk5zPVE0dH0pO2Z1bmN0aW9uIGUzdChzLGUpe3JldHVybiBYbyhzLDIsZSl9dmFyIHZOcyx0M3Q9ZygoKT0+e20wKCk7aShlM3QsIm5leHRUdWVzZGF5Iik7dk5zPWUzdH0pO2Z1bmN0aW9uIGEzdChzLGUpe3JldHVybiBYbyhzLDMsZSl9dmFyIGtOcyxzM3Q9ZygoKT0+e20wKCk7aShhM3QsIm5leHRXZWRuZXNkYXkiKTtrTnM9YTN0fSk7ZnVuY3Rpb24gcjN0KHMsZSl7bGV0IHQ9aSgoKT0+dHQoZT8uaW4sTmFOKSwiaW52YWxpZERhdGUiKSxhPWU/LmFkZGl0aW9uYWxEaWdpdHM/PzIscj1URWEocyksbjtpZihyLmRhdGUpe2xldCBkPSRFYShyLmRhdGUsYSk7bj1ERWEoZC5yZXN0RGF0ZVN0cmluZyxkLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHQoKTtsZXQgbz0rbixsPTAscDtpZihyLnRpbWUmJihsPUxFYShyLnRpbWUpLGlzTmFOKGwpKSlyZXR1cm4gdCgpO2lmKHIudGltZXpvbmUpe2lmKHA9RUVhKHIudGltZXpvbmUpLGlzTmFOKHApKXJldHVybiB0KCl9ZWxzZXtsZXQgZD1uZXcgRGF0ZShvK2wpLHU9QWUoMCxlPy5pbik7cmV0dXJuIHUuc2V0RnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpLGQuZ2V0VVRDTW9udGgoKSxkLmdldFVUQ0RhdGUoKSksdS5zZXRIb3VycyhkLmdldFVUQ0hvdXJzKCksZC5nZXRVVENNaW51dGVzKCksZC5nZXRVVENTZWNvbmRzKCksZC5nZXRVVENNaWxsaXNlY29uZHMoKSksdX1yZXR1cm4gQWUobytsK3AsZT8uaW4pfWZ1bmN0aW9uIFRFYShzKXtsZXQgZT17fSx0PXMuc3BsaXQoRGFlLmRhdGVUaW1lRGVsaW1pdGVyKSxhO2lmKHQubGVuZ3RoPjIpcmV0dXJuIGU7aWYoLzovLnRlc3QodFswXSk/YT10WzBdOihlLmRhdGU9dFswXSxhPXRbMV0sRGFlLnRpbWVab25lRGVsaW1pdGVyLnRlc3QoZS5kYXRlKSYmKGUuZGF0ZT1zLnNwbGl0KERhZS50aW1lWm9uZURlbGltaXRlcilbMF0sYT1zLnN1YnN0cihlLmRhdGUubGVuZ3RoLHMubGVuZ3RoKSkpLGEpe2xldCByPURhZS50aW1lem9uZS5leGVjKGEpO3I/KGUudGltZT1hLnJlcGxhY2UoclsxXSwiIiksZS50aW1lem9uZT1yWzFdKTplLnRpbWU9YX1yZXR1cm4gZX1mdW5jdGlvbiAkRWEocyxlKXtsZXQgdD1uZXcgUmVnRXhwKCJeKD86KFxcZHs0fXxbKy1dXFxkeyIrKDQrZSkrIn0pfChcXGR7Mn18WystXVxcZHsiKygyK2UpKyJ9KSQpIiksYT1zLm1hdGNoKHQpO2lmKCFhKXJldHVybnt5ZWFyOk5hTixyZXN0RGF0ZVN0cmluZzoiIn07bGV0IHI9YVsxXT9wYXJzZUludChhWzFdKTpudWxsLG49YVsyXT9wYXJzZUludChhWzJdKTpudWxsO3JldHVybnt5ZWFyOm49PT1udWxsP3I6bioxMDAscmVzdERhdGVTdHJpbmc6cy5zbGljZSgoYVsxXXx8YVsyXSkubGVuZ3RoKX19ZnVuY3Rpb24gREVhKHMsZSl7aWYoZT09PW51bGwpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IHQ9cy5tYXRjaChNRWEpO2lmKCF0KXJldHVybiBuZXcgRGF0ZShOYU4pO2xldCBhPSEhdFs0XSxyPVZ5KHRbMV0pLG49VnkodFsyXSktMSxvPVZ5KHRbM10pLGw9VnkodFs0XSkscD1WeSh0WzVdKS0xO2lmKGEpcmV0dXJuIFJFYShlLGwscCk/UEVhKGUsbCxwKTpuZXcgRGF0ZShOYU4pO3tsZXQgZD1uZXcgRGF0ZSgwKTtyZXR1cm4hQUVhKGUsbixvKXx8IU5FYShlLHIpP25ldyBEYXRlKE5hTik6KGQuc2V0VVRDRnVsbFllYXIoZSxuLE1hdGgubWF4KHIsbykpLGQpfX1mdW5jdGlvbiBWeShzKXtyZXR1cm4gcz9wYXJzZUludChzKToxfWZ1bmN0aW9uIExFYShzKXtsZXQgZT1zLm1hdGNoKHpFYSk7aWYoIWUpcmV0dXJuIE5hTjtsZXQgdD1laGUoZVsxXSksYT1laGUoZVsyXSkscj1laGUoZVszXSk7cmV0dXJuIE9FYSh0LGEscik/dCpObCthKldvK3IqMWUzOk5hTn1mdW5jdGlvbiBlaGUocyl7cmV0dXJuIHMmJnBhcnNlRmxvYXQocy5yZXBsYWNlKCIsIiwiLiIpKXx8MH1mdW5jdGlvbiBFRWEocyl7aWYocz09PSJaIilyZXR1cm4gMDtsZXQgZT1zLm1hdGNoKENFYSk7aWYoIWUpcmV0dXJuIDA7bGV0IHQ9ZVsxXT09PSIrIj8tMToxLGE9cGFyc2VJbnQoZVsyXSkscj1lWzNdJiZwYXJzZUludChlWzNdKXx8MDtyZXR1cm4gRkVhKGEscik/dCooYSpObCtyKldvKTpOYU59ZnVuY3Rpb24gUEVhKHMsZSx0KXtsZXQgYT1uZXcgRGF0ZSgwKTthLnNldFVUQ0Z1bGxZZWFyKHMsMCw0KTtsZXQgcj1hLmdldFVUQ0RheSgpfHw3LG49KGUtMSkqNyt0KzEtcjtyZXR1cm4gYS5zZXRVVENEYXRlKGEuZ2V0VVRDRGF0ZSgpK24pLGF9ZnVuY3Rpb24gaTN0KHMpe3JldHVybiBzJTQwMD09PTB8fHMlND09PTAmJnMlMTAwIT09MH1mdW5jdGlvbiBBRWEocyxlLHQpe3JldHVybiBlPj0wJiZlPD0xMSYmdD49MSYmdDw9KElFYVtlXXx8KGkzdChzKT8yOToyOCkpfWZ1bmN0aW9uIE5FYShzLGUpe3JldHVybiBlPj0xJiZlPD0oaTN0KHMpPzM2NjozNjUpfWZ1bmN0aW9uIFJFYShzLGUsdCl7cmV0dXJuIGU+PTEmJmU8PTUzJiZ0Pj0wJiZ0PD02fWZ1bmN0aW9uIE9FYShzLGUsdCl7cmV0dXJuIHM9PT0yND9lPT09MCYmdD09PTA6dD49MCYmdDw2MCYmZT49MCYmZTw2MCYmcz49MCYmczwyNX1mdW5jdGlvbiBGRWEocyxlKXtyZXR1cm4gZT49MCYmZTw9NTl9dmFyIERhZSxNRWEsekVhLENFYSxJRWEsVE5zLG8zdD1nKCgpPT57d2EoKTtHdCgpO2F0KCk7aShyM3QsInBhcnNlSVNPIik7RGFlPXtkYXRlVGltZURlbGltaXRlcjovW1QgXS8sdGltZVpvbmVEZWxpbWl0ZXI6L1taIF0vaSx0aW1lem9uZTovKFtaKy1dLiopJC99LE1FYT0vXi0/KD86KFxkezN9KXwoXGR7Mn0pKD86LT8oXGR7Mn0pKT98VyhcZHsyfSkoPzotPyhcZHsxfSkpP3wpJC8sekVhPS9eKFxkezJ9KD86Wy4sXVxkKik/KSg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/KD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8kLyxDRWE9L14oWystXSkoXGR7Mn0pKD86Oj8oXGR7Mn0pKT8kLztpKFRFYSwic3BsaXREYXRlU3RyaW5nIik7aSgkRWEsInBhcnNlWWVhciIpO2koREVhLCJwYXJzZURhdGUiKTtpKFZ5LCJwYXJzZURhdGVVbml0Iik7aShMRWEsInBhcnNlVGltZSIpO2koZWhlLCJwYXJzZVRpbWVVbml0Iik7aShFRWEsInBhcnNlVGltZXpvbmUiKTtpKFBFYSwiZGF5T2ZJU09XZWVrWWVhciIpO0lFYT1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07aShpM3QsImlzTGVhcFllYXJJbmRleCIpO2koQUVhLCJ2YWxpZGF0ZURhdGUiKTtpKE5FYSwidmFsaWRhdGVEYXlPZlllYXJEYXRlIik7aShSRWEsInZhbGlkYXRlV2Vla0RhdGUiKTtpKE9FYSwidmFsaWRhdGVUaW1lIik7aShGRWEsInZhbGlkYXRlVGltZXpvbmUiKTtUTnM9cjN0fSk7ZnVuY3Rpb24gbjN0KHMsZSl7bGV0IHQ9cy5tYXRjaCgvKFxkezR9KS0oXGR7Mn0pLShcZHsyfSlbVCBdKFxkezJ9KTooXGR7Mn0pOihcZHsyfSkoPzpcLihcZHswLDd9KSk/KD86WnwoLikoXGR7Mn0pOj8oXGR7Mn0pPyk/Lyk7cmV0dXJuIHQ/QWUoRGF0ZS5VVEMoK3RbMV0sK3RbMl0tMSwrdFszXSwrdFs0XS0oK3RbOV18fDApKih0WzhdPT0iLSI/LTE6MSksK3RbNV0tKCt0WzEwXXx8MCkqKHRbOF09PSItIj8tMToxKSwrdFs2XSwrKCh0WzddfHwiMCIpKyIwMCIpLnN1YnN0cmluZygwLDMpKSxlPy5pbik6QWUoTmFOLGU/LmluKX12YXIgRU5zLGwzdD1nKCgpPT57YXQoKTtpKG4zdCwicGFyc2VKU09OIik7RU5zPW4zdH0pO2Z1bmN0aW9uIFFvKHMsZSx0KXtsZXQgYT14cChzLHQpLWU7cmV0dXJuIGE8PTAmJihhKz03KSx3cChzLGEsdCl9dmFyIFJOcyxnMD1nKCgpPT57T3koKTtqeSgpO2koUW8sInByZXZpb3VzRGF5Iik7Uk5zPVFvfSk7ZnVuY3Rpb24gYzN0KHMsZSl7cmV0dXJuIFFvKHMsNSxlKX12YXIgSE5zLGQzdD1nKCgpPT57ZzAoKTtpKGMzdCwicHJldmlvdXNGcmlkYXkiKTtITnM9YzN0fSk7ZnVuY3Rpb24gdTN0KHMsZSl7cmV0dXJuIFFvKHMsMSxlKX12YXIgVU5zLHAzdD1nKCgpPT57ZzAoKTtpKHUzdCwicHJldmlvdXNNb25kYXkiKTtVTnM9dTN0fSk7ZnVuY3Rpb24gaDN0KHMsZSl7cmV0dXJuIFFvKHMsNixlKX12YXIgWU5zLGYzdD1nKCgpPT57ZzAoKTtpKGgzdCwicHJldmlvdXNTYXR1cmRheSIpO1lOcz1oM3R9KTtmdW5jdGlvbiBtM3QocyxlKXtyZXR1cm4gUW8ocywwLGUpfXZhciBKTnMsZzN0PWcoKCk9PntnMCgpO2kobTN0LCJwcmV2aW91c1N1bmRheSIpO0pOcz1tM3R9KTtmdW5jdGlvbiBiM3QocyxlKXtyZXR1cm4gUW8ocyw0LGUpfXZhciBzUnMsdjN0PWcoKCk9PntnMCgpO2koYjN0LCJwcmV2aW91c1RodXJzZGF5Iik7c1JzPWIzdH0pO2Z1bmN0aW9uIHgzdChzLGUpe3JldHVybiBRbyhzLDIsZSl9dmFyIG5Scyx5M3Q9ZygoKT0+e2cwKCk7aSh4M3QsInByZXZpb3VzVHVlc2RheSIpO25Scz14M3R9KTtmdW5jdGlvbiB3M3QocyxlKXtyZXR1cm4gUW8ocywzLGUpfXZhciB1UnMsazN0PWcoKCk9PntnMCgpO2kodzN0LCJwcmV2aW91c1dlZG5lc2RheSIpO3VScz13M3R9KTtmdW5jdGlvbiBTM3Qocyl7cmV0dXJuIE1hdGgudHJ1bmMocypBZWUpfXZhciBtUnMsXzN0PWcoKCk9Pnt3YSgpO2koUzN0LCJxdWFydGVyc1RvTW9udGhzIik7bVJzPVMzdH0pO2Z1bmN0aW9uIE0zdChzKXtsZXQgZT1zL1JlZTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgeFJzLHozdD1nKCgpPT57d2EoKTtpKE0zdCwicXVhcnRlcnNUb1llYXJzIik7eFJzPU0zdH0pO2Z1bmN0aW9uIEMzdChzLGUpe2xldCB0PWU/Lm5lYXJlc3RUbz8/MTtpZih0PDF8fHQ+MTIpcmV0dXJuIHR0KGU/LmlufHxzLE5hTik7bGV0IGE9QWUocyxlPy5pbikscj1hLmdldE1pbnV0ZXMoKS82MCxuPWEuZ2V0U2Vjb25kcygpLzYwLzYwLG89YS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAsbD1hLmdldEhvdXJzKCkrcituK28scD1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIix1PVlvKHApKGwvdCkqdDtyZXR1cm4gYS5zZXRIb3Vycyh1LDAsMCwwKSxhfXZhciBNUnMsVDN0PWcoKCk9PntmMCgpO0d0KCk7YXQoKTtpKEMzdCwicm91bmRUb05lYXJlc3RIb3VycyIpO01Scz1DM3R9KTtmdW5jdGlvbiAkM3QocyxlKXtsZXQgdD1lPy5uZWFyZXN0VG8/PzE7aWYodDwxfHx0PjMwKXJldHVybiB0dChzLE5hTik7bGV0IGE9QWUocyxlPy5pbikscj1hLmdldFNlY29uZHMoKS82MCxuPWEuZ2V0TWlsbGlzZWNvbmRzKCkvMWUzLzYwLG89YS5nZXRNaW51dGVzKCkrcituLGw9ZT8ucm91bmRpbmdNZXRob2Q/PyJyb3VuZCIsZD1ZbyhsKShvL3QpKnQ7cmV0dXJuIGEuc2V0TWludXRlcyhkLDAsMCksYX12YXIgTFJzLEQzdD1nKCgpPT57ZjAoKTtHdCgpO2F0KCk7aSgkM3QsInJvdW5kVG9OZWFyZXN0TWludXRlcyIpO0xScz0kM3R9KTtmdW5jdGlvbiBMM3Qocyl7bGV0IGU9cy9HNDtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgQVJzLEUzdD1nKCgpPT57d2EoKTtpKEwzdCwic2Vjb25kc1RvSG91cnMiKTtBUnM9TDN0fSk7ZnVuY3Rpb24gUDN0KHMpe3JldHVybiBzKkI3fXZhciBGUnMsSTN0PWcoKCk9Pnt3YSgpO2koUDN0LCJzZWNvbmRzVG9NaWxsaXNlY29uZHMiKTtGUnM9UDN0fSk7ZnVuY3Rpb24gQTN0KHMpe2xldCBlPXMvcTc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGpScyxOM3Q9ZygoKT0+e3dhKCk7aShBM3QsInNlY29uZHNUb01pbnV0ZXMiKTtqUnM9QTN0fSk7ZnVuY3Rpb24gYzkocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9YS5nZXRGdWxsWWVhcigpLG49YS5nZXREYXRlKCksbz10dCh0Py5pbnx8cywwKTtvLnNldEZ1bGxZZWFyKHIsZSwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1DdGUobyk7cmV0dXJuIGEuc2V0TW9udGgoZSxNYXRoLm1pbihuLGwpKSxhfXZhciBZUnMsTGFlPWcoKCk9PntHdCgpO0VwZSgpO2F0KCk7aShjOSwic2V0TW9udGgiKTtZUnM9Yzl9KTtmdW5jdGlvbiBSM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBpc05hTigrYSk/dHQodD8uaW58fHMsTmFOKTooZS55ZWFyIT1udWxsJiZhLnNldEZ1bGxZZWFyKGUueWVhciksZS5tb250aCE9bnVsbCYmKGE9YzkoYSxlLm1vbnRoKSksZS5kYXRlIT1udWxsJiZhLnNldERhdGUoZS5kYXRlKSxlLmhvdXJzIT1udWxsJiZhLnNldEhvdXJzKGUuaG91cnMpLGUubWludXRlcyE9bnVsbCYmYS5zZXRNaW51dGVzKGUubWludXRlcyksZS5zZWNvbmRzIT1udWxsJiZhLnNldFNlY29uZHMoZS5zZWNvbmRzKSxlLm1pbGxpc2Vjb25kcyE9bnVsbCYmYS5zZXRNaWxsaXNlY29uZHMoZS5taWxsaXNlY29uZHMpLGEpfXZhciB0T3MsTzN0PWcoKCk9PntHdCgpO0xhZSgpO2F0KCk7aShSM3QsInNldCIpO3RPcz1SM3R9KTtmdW5jdGlvbiBGM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldERhdGUoZSksYX12YXIgck9zLEIzdD1nKCgpPT57YXQoKTtpKEYzdCwic2V0RGF0ZSIpO3JPcz1GM3R9KTtmdW5jdGlvbiBIM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldE1vbnRoKDApLGEuc2V0RGF0ZShlKSxhfXZhciBjT3MscTN0PWcoKCk9PnthdCgpO2koSDN0LCJzZXREYXlPZlllYXIiKTtjT3M9SDN0fSk7ZnVuY3Rpb24gajN0KHMpe2xldCBlPXt9LHQ9RXMoKTtmb3IobGV0IGEgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxhKSYmKGVbYV09dFthXSk7Zm9yKGxldCBhIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsYSkmJihzW2FdPT09dm9pZCAwP2RlbGV0ZSBlW2FdOmVbYV09c1thXSk7cjB0KGUpfXZhciBoT3MsVjN0PWcoKCk9PntHbygpO2koajN0LCJzZXREZWZhdWx0T3B0aW9ucyIpO2hPcz1qM3R9KTtmdW5jdGlvbiBVM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldEhvdXJzKGUpLGF9dmFyIGJPcyxXM3Q9ZygoKT0+e2F0KCk7aShVM3QsInNldEhvdXJzIik7Yk9zPVUzdH0pO2Z1bmN0aW9uIEczdChzLGUsdCl7bGV0IGE9QWUocyx0Py5pbik7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGUpLGF9dmFyIHdPcyxLM3Q9ZygoKT0+e2F0KCk7aShHM3QsInNldE1pbGxpc2Vjb25kcyIpO3dPcz1HM3R9KTtmdW5jdGlvbiBZM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldE1pbnV0ZXMoZSksYX12YXIgTU9zLFozdD1nKCgpPT57YXQoKTtpKFkzdCwic2V0TWludXRlcyIpO01Pcz1ZM3R9KTtmdW5jdGlvbiBYM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pLHI9TWF0aC50cnVuYyhhLmdldE1vbnRoKCkvMykrMSxuPWUtcjtyZXR1cm4gYzkoYSxhLmdldE1vbnRoKCkrbiozKX12YXIgRE9zLFEzdD1nKCgpPT57TGFlKCk7YXQoKTtpKFgzdCwic2V0UXVhcnRlciIpO0RPcz1YM3R9KTtmdW5jdGlvbiBKM3QocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBhLnNldFNlY29uZHMoZSksYX12YXIgSU9zLGVmdD1nKCgpPT57YXQoKTtpKEozdCwic2V0U2Vjb25kcyIpO0lPcz1KM3R9KTtmdW5jdGlvbiB0ZnQocyxlLHQpe2xldCBhPUVzKCkscj10Py5maXJzdFdlZWtDb250YWluc0RhdGU/P3Q/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPW5vKEFlKHMsdD8uaW4pLGUzKHMsdCksdCksbz10dCh0Py5pbnx8cywwKTtvLnNldEZ1bGxZZWFyKGUsMCxyKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPWUzKG8sdCk7cmV0dXJuIGwuc2V0RGF0ZShsLmdldERhdGUoKStuKSxsfXZhciBxT3MsYWZ0PWcoKCk9PntHbygpO0d0KCk7cDAoKTt5dGUoKTthdCgpO2kodGZ0LCJzZXRXZWVrWWVhciIpO3FPcz10ZnR9KTtmdW5jdGlvbiBzZnQocyxlLHQpe2xldCBhPUFlKHMsdD8uaW4pO3JldHVybiBpc05hTigrYSk/dHQodD8uaW58fHMsTmFOKTooYS5zZXRGdWxsWWVhcihlKSxhKX12YXIgR09zLGlmdD1nKCgpPT57R3QoKTthdCgpO2koc2Z0LCJzZXRZZWFyIik7R09zPXNmdH0pO2Z1bmN0aW9uIHJmdChzLGUpe2xldCB0PUFlKHMsZT8uaW4pLGE9dC5nZXRGdWxsWWVhcigpLHI9TWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gdC5zZXRGdWxsWWVhcihyLDAsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBYT3Msb2Z0PWcoKCk9PnthdCgpO2kocmZ0LCJzdGFydE9mRGVjYWRlIik7WE9zPXJmdH0pO2Z1bmN0aW9uIG5mdChzKXtyZXR1cm4gYWQoRGF0ZS5ub3coKSxzKX12YXIgdEZzLGxmdD1nKCgpPT57VHkoKTtpKG5mdCwic3RhcnRPZlRvZGF5Iik7dEZzPW5mdH0pO2Z1bmN0aW9uIGNmdChzKXtsZXQgZT1QYShzPy5pbiksdD1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscj1lLmdldERhdGUoKSxuPXR0KHM/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHQsYSxyKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgb0ZzLGRmdD1nKCgpPT57R3QoKTtxcigpO2koY2Z0LCJzdGFydE9mVG9tb3Jyb3ciKTtvRnM9Y2Z0fSk7ZnVuY3Rpb24gdWZ0KHMpe2xldCBlPVBhKHM/LmluKSx0PWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxyPWUuZ2V0RGF0ZSgpLG49UGEocz8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHQsYSxyLTEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgZEZzLHBmdD1nKCgpPT57cXIoKTtpKHVmdCwic3RhcnRPZlllc3RlcmRheSIpO2RGcz11ZnR9KTtmdW5jdGlvbiBFYWUocyxlLHQpe3JldHVybiBKMihzLC1lLHQpfXZhciBmRnMsdGhlPWcoKCk9PntqNygpO2koRWFlLCJzdWJNb250aHMiKTtmRnM9RWFlfSk7ZnVuY3Rpb24gaGZ0KHMsZSx0KXtsZXR7eWVhcnM6YT0wLG1vbnRoczpyPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOnA9MCxzZWNvbmRzOmQ9MH09ZSx1PUVhZShzLHIrYSoxMix0KSxjPXdwKHUsbytuKjcsdCksYj1wK2wqNjAseD0oZCtiKjYwKSoxZTM7cmV0dXJuIHR0KHQ/LmlufHxzLCtjLXgpfXZhciB5RnMsZmZ0PWcoKCk9PntHdCgpO2p5KCk7dGhlKCk7aShoZnQsInN1YiIpO3lGcz1oZnR9KTtmdW5jdGlvbiBtZnQocyxlLHQpe3JldHVybiBCZWUocywtZSx0KX12YXIgX0ZzLGdmdD1nKCgpPT57cnBlKCk7aShtZnQsInN1YkJ1c2luZXNzRGF5cyIpO19Gcz1tZnR9KTtmdW5jdGlvbiBiZnQocyxlLHQpe3JldHVybiBIZWUocywtZSx0KX12YXIgVEZzLHZmdD1nKCgpPT57b3BlKCk7aShiZnQsInN1YkhvdXJzIik7VEZzPWJmdH0pO2Z1bmN0aW9uIHhmdChzLGUsdCl7cmV0dXJuIHVwKHMsLWUsdCl9dmFyIEVGcyx5ZnQ9ZygoKT0+e0N5KCk7aSh4ZnQsInN1Yk1pbGxpc2Vjb25kcyIpO0VGcz14ZnR9KTtmdW5jdGlvbiB3ZnQocyxlLHQpe3JldHVybiBVNyhzLC1lLHQpfXZhciBORnMsa2Z0PWcoKCk9PntWZWUoKTtpKHdmdCwic3ViTWludXRlcyIpO05Gcz13ZnR9KTtmdW5jdGlvbiBTZnQocyxlLHQpe3JldHVybiBXNyhzLC1lLHQpfXZhciBCRnMsX2Z0PWcoKCk9PntVZWUoKTtpKFNmdCwic3ViUXVhcnRlcnMiKTtCRnM9U2Z0fSk7ZnVuY3Rpb24gTWZ0KHMsZSx0KXtyZXR1cm4gV2VlKHMsLWUsdCl9dmFyIFZGcyx6ZnQ9ZygoKT0+e2NwZSgpO2koTWZ0LCJzdWJTZWNvbmRzIik7VkZzPU1mdH0pO2Z1bmN0aW9uIENmdChzLGUsdCl7cmV0dXJuIGhwKHMsLWUsdCl9dmFyIEtGcyxUZnQ9ZygoKT0+eyR5KCk7aShDZnQsInN1YldlZWtzIik7S0ZzPUNmdH0pO2Z1bmN0aW9uICRmdChzLGUsdCl7cmV0dXJuIEdlZShzLC1lLHQpfXZhciBRRnMsRGZ0PWcoKCk9PntkcGUoKTtpKCRmdCwic3ViWWVhcnMiKTtRRnM9JGZ0fSk7ZnVuY3Rpb24gTGZ0KHMpe3JldHVybiBNYXRoLnRydW5jKHMqNyl9dmFyIGFCcyxFZnQ9ZygoKT0+e3dhKCk7aShMZnQsIndlZWtzVG9EYXlzIik7YUJzPUxmdH0pO2Z1bmN0aW9uIFBmdChzKXtyZXR1cm4gTWF0aC50cnVuYyhzKjM2NS4yNDI1KX12YXIgb0JzLElmdD1nKCgpPT57d2EoKTtpKFBmdCwieWVhcnNUb0RheXMiKTtvQnM9UGZ0fSk7ZnVuY3Rpb24gQWZ0KHMpe3JldHVybiBNYXRoLnRydW5jKHMqTmVlKX12YXIgZEJzLE5mdD1nKCgpPT57d2EoKTtpKEFmdCwieWVhcnNUb01vbnRocyIpO2RCcz1BZnR9KTtmdW5jdGlvbiBSZnQocyl7cmV0dXJuIE1hdGgudHJ1bmMocypSZWUpfXZhciBmQnMsT2Z0PWcoKCk9Pnt3YSgpO2koUmZ0LCJ5ZWFyc1RvUXVhcnRlcnMiKTtmQnM9UmZ0fSk7dmFyIFV5PXt9O3l0KFV5LHthZGQ6KCk9PmRwLGFkZEJ1c2luZXNzRGF5czooKT0+QmVlLGFkZERheXM6KCk9PkhyLGFkZEhvdXJzOigpPT5IZWUsYWRkSVNPV2Vla1llYXJzOigpPT5qZWUsYWRkTWlsbGlzZWNvbmRzOigpPT51cCxhZGRNaW51dGVzOigpPT5VNyxhZGRNb250aHM6KCk9PkoyLGFkZFF1YXJ0ZXJzOigpPT5XNyxhZGRTZWNvbmRzOigpPT5XZWUsYWRkV2Vla3M6KCk9PmhwLGFkZFllYXJzOigpPT5HZWUsYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9Pm8wdCxjbGFtcDooKT0+bDB0LGNsb3Nlc3RJbmRleFRvOigpPT5aZWUsY2xvc2VzdFRvOigpPT5kMHQsY29tcGFyZUFzYzooKT0+S28sY29tcGFyZURlc2M6KCk9PnAwdCxjb25zdHJ1Y3RGcm9tOigpPT50dCxjb25zdHJ1Y3ROb3c6KCk9PlBhLGRheXNUb1dlZWtzOigpPT5mMHQsZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzOigpPT5nMHQsZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOigpPT5ubyxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyczooKT0+UWVlLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3M6KCk9PnYwdCxkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoczooKT0+WTQsZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVyczooKT0+SzcsZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrczooKT0+WjQsZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFyczooKT0+ZnAsZGlmZmVyZW5jZUluRGF5czooKT0+WTcsZGlmZmVyZW5jZUluSG91cnM6KCk9Plg0LGRpZmZlcmVuY2VJbklTT1dlZWtZZWFyczooKT0+dzB0LGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kczooKT0+WjcsZGlmZmVyZW5jZUluTWludXRlczooKT0+UTQsZGlmZmVyZW5jZUluTW9udGhzOigpPT5tcCxkaWZmZXJlbmNlSW5RdWFydGVyczooKT0+UzB0LGRpZmZlcmVuY2VJblNlY29uZHM6KCk9PmlkLGRpZmZlcmVuY2VJbldlZWtzOigpPT5NMHQsZGlmZmVyZW5jZUluWWVhcnM6KCk9PmR0ZSxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+dXRlLGVhY2hIb3VyT2ZJbnRlcnZhbDooKT0+QzB0LGVhY2hNaW51dGVPZkludGVydmFsOigpPT4kMHQsZWFjaE1vbnRoT2ZJbnRlcnZhbDooKT0+TDB0LGVhY2hRdWFydGVyT2ZJbnRlcnZhbDooKT0+UDB0LGVhY2hXZWVrT2ZJbnRlcnZhbDooKT0+QTB0LGVhY2hXZWVrZW5kT2ZJbnRlcnZhbDooKT0+SjcsZWFjaFdlZWtlbmRPZk1vbnRoOigpPT5SMHQsZWFjaFdlZWtlbmRPZlllYXI6KCk9PkYwdCxlYWNoWWVhck9mSW50ZXJ2YWw6KCk9PkgwdCxlbmRPZkRheTooKT0+WDcsZW5kT2ZEZWNhZGU6KCk9PmowdCxlbmRPZkhvdXI6KCk9PlUwdCxlbmRPZklTT1dlZWs6KCk9PkcwdCxlbmRPZklTT1dlZWtZZWFyOigpPT5ZMHQsZW5kT2ZNaW51dGU6KCk9PlgwdCxlbmRPZk1vbnRoOigpPT5RNyxlbmRPZlF1YXJ0ZXI6KCk9PkowdCxlbmRPZlNlY29uZDooKT0+dHV0LGVuZE9mVG9kYXk6KCk9PnN1dCxlbmRPZlRvbW9ycm93OigpPT5ydXQsZW5kT2ZXZWVrOigpPT5ndGUsZW5kT2ZZZWFyOigpPT5mdGUsZW5kT2ZZZXN0ZXJkYXk6KCk9Pm51dCxmb3JtYXQ6KCk9PlJ5LGZvcm1hdERhdGU6KCk9PlJ5LGZvcm1hdERpc3RhbmNlOigpPT5fdGUsZm9ybWF0RGlzdGFuY2VTdHJpY3Q6KCk9Pk10ZSxmb3JtYXREaXN0YW5jZVRvTm93OigpPT5EdXQsZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdDooKT0+RXV0LGZvcm1hdER1cmF0aW9uOigpPT5JdXQsZm9ybWF0SVNPOigpPT5OdXQsZm9ybWF0SVNPOTA3NTooKT0+T3V0LGZvcm1hdElTT0R1cmF0aW9uOigpPT5CdXQsZm9ybWF0UkZDMzMzOTooKT0+cXV0LGZvcm1hdFJGQzcyMzE6KCk9PlZ1dCxmb3JtYXRSZWxhdGl2ZTooKT0+V3V0LGZvcm1hdHRlcnM6KCk9PkF5LGZyb21Vbml4VGltZTooKT0+S3V0LGdldERhdGU6KCk9Pnp0ZSxnZXREYXk6KCk9PnhwLGdldERheU9mWWVhcjooKT0+dnRlLGdldERheXNJbk1vbnRoOigpPT5DdGUsZ2V0RGF5c0luWWVhcjooKT0+WnV0LGdldERlY2FkZTooKT0+UXV0LGdldERlZmF1bHRPcHRpb25zOigpPT4kdGUsZ2V0SG91cnM6KCk9PmVwdCxnZXRJU09EYXk6KCk9PkR0ZSxnZXRJU09XZWVrOigpPT5zOSxnZXRJU09XZWVrWWVhcjooKT0+d24sZ2V0SVNPV2Vla3NJblllYXI6KCk9PmFwdCxnZXRNaWxsaXNlY29uZHM6KCk9PmlwdCxnZXRNaW51dGVzOigpPT5vcHQsZ2V0TW9udGg6KCk9PmxwdCxnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsczooKT0+ZHB0LGdldFF1YXJ0ZXI6KCk9PkR5LGdldFNlY29uZHM6KCk9PnBwdCxnZXRUaW1lOigpPT5mcHQsZ2V0VW5peFRpbWU6KCk9PmdwdCxnZXRXZWVrOigpPT5pOSxnZXRXZWVrT2ZNb250aDooKT0+dnB0LGdldFdlZWtZZWFyOigpPT5icCxnZXRXZWVrc0luTW9udGg6KCk9PnlwdCxnZXRZZWFyOigpPT5rcHQsaG91cnNUb01pbGxpc2Vjb25kczooKT0+X3B0LGhvdXJzVG9NaW51dGVzOigpPT56cHQsaG91cnNUb1NlY29uZHM6KCk9PlRwdCxpbnRlcnZhbDooKT0+RHB0LGludGVydmFsVG9EdXJhdGlvbjooKT0+RXB0LGludGxGb3JtYXQ6KCk9PklwdCxpbnRsRm9ybWF0RGlzdGFuY2U6KCk9Pk5wdCxpc0FmdGVyOigpPT5PcHQsaXNCZWZvcmU6KCk9PkJwdCxpc0RhdGU6KCk9PlhlZSxpc0VxdWFsOigpPT5xcHQsaXNFeGlzdHM6KCk9PlZwdCxpc0ZpcnN0RGF5T2ZNb250aDooKT0+V3B0LGlzRnJpZGF5OigpPT5LcHQsaXNGdXR1cmU6KCk9PlpwdCxpc0xhc3REYXlPZk1vbnRoOigpPT5jdGUsaXNMZWFwWWVhcjooKT0+VHRlLGlzTWF0Y2g6KCk9PkRodCxpc01vbmRheTooKT0+RWh0LGlzUGFzdDooKT0+SWh0LGlzU2FtZURheTooKT0+c2QsaXNTYW1lSG91cjooKT0+d2FlLGlzU2FtZUlTT1dlZWs6KCk9PlNhZSxpc1NhbWVJU09XZWVrWWVhcjooKT0+Tmh0LGlzU2FtZU1pbnV0ZTooKT0+X2FlLGlzU2FtZU1vbnRoOigpPT5NYWUsaXNTYW1lUXVhcnRlcjooKT0+emFlLGlzU2FtZVNlY29uZDooKT0+Q2FlLGlzU2FtZVdlZWs6KCk9Pmw5LGlzU2FtZVllYXI6KCk9PlRhZSxpc1NhdHVyZGF5OigpPT5PZWUsaXNTdW5kYXk6KCk9PkZlZSxpc1RoaXNIb3VyOigpPT5PaHQsaXNUaGlzSVNPV2VlazooKT0+Qmh0LGlzVGhpc01pbnV0ZTooKT0+cWh0LGlzVGhpc01vbnRoOigpPT5WaHQsaXNUaGlzUXVhcnRlcjooKT0+V2h0LGlzVGhpc1NlY29uZDooKT0+S2h0LGlzVGhpc1dlZWs6KCk9PlpodCxpc1RoaXNZZWFyOigpPT5RaHQsaXNUaHVyc2RheTooKT0+ZTR0LGlzVG9kYXk6KCk9PmE0dCxpc1RvbW9ycm93OigpPT5pNHQsaXNUdWVzZGF5OigpPT5vNHQsaXNWYWxpZDooKT0+a28saXNXZWRuZXNkYXk6KCk9Pmw0dCxpc1dlZWtlbmQ6KCk9PmVkLGlzV2l0aGluSW50ZXJ2YWw6KCk9PmQ0dCxpc1llc3RlcmRheTooKT0+cDR0LGxhc3REYXlPZkRlY2FkZTooKT0+ZjR0LGxhc3REYXlPZklTT1dlZWs6KCk9Pmc0dCxsYXN0RGF5T2ZJU09XZWVrWWVhcjooKT0+djR0LGxhc3REYXlPZk1vbnRoOigpPT5MdGUsbGFzdERheU9mUXVhcnRlcjooKT0+eTR0LGxhc3REYXlPZldlZWs6KCk9PiRhZSxsYXN0RGF5T2ZZZWFyOigpPT5rNHQsbGlnaHRGb3JtYXQ6KCk9Pl80dCxsaWdodEZvcm1hdHRlcnM6KCk9Pk9sLGxvbmdGb3JtYXR0ZXJzOigpPT52cCxtYXg6KCk9PktlZSxtaWxsaXNlY29uZHM6KCk9Pno0dCxtaWxsaXNlY29uZHNUb0hvdXJzOigpPT5UNHQsbWlsbGlzZWNvbmRzVG9NaW51dGVzOigpPT5ENHQsbWlsbGlzZWNvbmRzVG9TZWNvbmRzOigpPT5FNHQsbWluOigpPT5ZZWUsbWludXRlc1RvSG91cnM6KCk9Pkk0dCxtaW51dGVzVG9NaWxsaXNlY29uZHM6KCk9Pk40dCxtaW51dGVzVG9TZWNvbmRzOigpPT5PNHQsbW9udGhzVG9RdWFydGVyczooKT0+QjR0LG1vbnRoc1RvWWVhcnM6KCk9PnE0dCxuZXh0RGF5OigpPT5YbyxuZXh0RnJpZGF5OigpPT5WNHQsbmV4dE1vbmRheTooKT0+VzR0LG5leHRTYXR1cmRheTooKT0+SzR0LG5leHRTdW5kYXk6KCk9Plo0dCxuZXh0VGh1cnNkYXk6KCk9PlE0dCxuZXh0VHVlc2RheTooKT0+ZTN0LG5leHRXZWRuZXNkYXk6KCk9PmEzdCxwYXJzZTooKT0+eWFlLHBhcnNlSVNPOigpPT5yM3QscGFyc2VKU09OOigpPT5uM3QscGFyc2VyczooKT0+eGFlLHByZXZpb3VzRGF5OigpPT5RbyxwcmV2aW91c0ZyaWRheTooKT0+YzN0LHByZXZpb3VzTW9uZGF5OigpPT51M3QscHJldmlvdXNTYXR1cmRheTooKT0+aDN0LHByZXZpb3VzU3VuZGF5OigpPT5tM3QscHJldmlvdXNUaHVyc2RheTooKT0+YjN0LHByZXZpb3VzVHVlc2RheTooKT0+eDN0LHByZXZpb3VzV2VkbmVzZGF5OigpPT53M3QscXVhcnRlcnNUb01vbnRoczooKT0+UzN0LHF1YXJ0ZXJzVG9ZZWFyczooKT0+TTN0LHJvdW5kVG9OZWFyZXN0SG91cnM6KCk9PkMzdCxyb3VuZFRvTmVhcmVzdE1pbnV0ZXM6KCk9PiQzdCxzZWNvbmRzVG9Ib3VyczooKT0+TDN0LHNlY29uZHNUb01pbGxpc2Vjb25kczooKT0+UDN0LHNlY29uZHNUb01pbnV0ZXM6KCk9PkEzdCxzZXQ6KCk9PlIzdCxzZXREYXRlOigpPT5GM3Qsc2V0RGF5OigpPT55cCxzZXREYXlPZlllYXI6KCk9PkgzdCxzZXREZWZhdWx0T3B0aW9uczooKT0+ajN0LHNldEhvdXJzOigpPT5VM3Qsc2V0SVNPRGF5OigpPT5zYWUsc2V0SVNPV2VlazooKT0+WnRlLHNldElTT1dlZWtZZWFyOigpPT5xZWUsc2V0TWlsbGlzZWNvbmRzOigpPT5HM3Qsc2V0TWludXRlczooKT0+WTN0LHNldE1vbnRoOigpPT5jOSxzZXRRdWFydGVyOigpPT5YM3Qsc2V0U2Vjb25kczooKT0+SjN0LHNldFdlZWs6KCk9Pkt0ZSxzZXRXZWVrWWVhcjooKT0+dGZ0LHNldFllYXI6KCk9PnNmdCxzdGFydE9mRGF5OigpPT5hZCxzdGFydE9mRGVjYWRlOigpPT5yZnQsc3RhcnRPZkhvdXI6KCk9PkJ5LHN0YXJ0T2ZJU09XZWVrOigpPT5rcixzdGFydE9mSVNPV2Vla1llYXI6KCk9PlJsLHN0YXJ0T2ZNaW51dGU6KCk9Pkh5LHN0YXJ0T2ZNb250aDooKT0+Z3Asc3RhcnRPZlF1YXJ0ZXI6KCk9Pm9kLHN0YXJ0T2ZTZWNvbmQ6KCk9PnF5LHN0YXJ0T2ZUb2RheTooKT0+bmZ0LHN0YXJ0T2ZUb21vcnJvdzooKT0+Y2Z0LHN0YXJ0T2ZXZWVrOigpPT5LcyxzdGFydE9mV2Vla1llYXI6KCk9PmUzLHN0YXJ0T2ZZZWFyOigpPT5lOSxzdGFydE9mWWVzdGVyZGF5OigpPT51ZnQsc3ViOigpPT5oZnQsc3ViQnVzaW5lc3NEYXlzOigpPT5tZnQsc3ViRGF5czooKT0+d3Asc3ViSG91cnM6KCk9PmJmdCxzdWJJU09XZWVrWWVhcnM6KCk9Pml0ZSxzdWJNaWxsaXNlY29uZHM6KCk9PnhmdCxzdWJNaW51dGVzOigpPT53ZnQsc3ViTW9udGhzOigpPT5FYWUsc3ViUXVhcnRlcnM6KCk9PlNmdCxzdWJTZWNvbmRzOigpPT5NZnQsc3ViV2Vla3M6KCk9PkNmdCxzdWJZZWFyczooKT0+JGZ0LHRvRGF0ZTooKT0+QWUsdHJhbnNwb3NlOigpPT5FdGUsd2Vla3NUb0RheXM6KCk9PkxmdCx5ZWFyc1RvRGF5czooKT0+UGZ0LHllYXJzVG9Nb250aHM6KCk9PkFmdCx5ZWFyc1RvUXVhcnRlcnM6KCk9PlJmdH0pO3ZhciBGZnQ9ZygoKT0+e2FwZSgpO3JwZSgpO1EyKCk7b3BlKCk7bHBlKCk7Q3koKTtWZWUoKTtqNygpO1VlZSgpO2NwZSgpOyR5KCk7ZHBlKCk7bjB0KCk7YzB0KCk7aHBlKCk7dTB0KCk7SzQoKTtoMHQoKTtHdCgpO3FyKCk7bTB0KCk7YjB0KCk7cDAoKTttcGUoKTt4MHQoKTtKZWUoKTticGUoKTtldGUoKTt0dGUoKTthdGUoKTtzdGUoKTtrMHQoKTtydGUoKTtvdGUoKTtMeSgpO18wdCgpO0V5KCk7ejB0KCk7eXBlKCk7d3BlKCk7VDB0KCk7RDB0KCk7RTB0KCk7STB0KCk7TjB0KCk7aHRlKCk7TzB0KCk7QjB0KCk7cTB0KCk7bnRlKCk7VjB0KCk7VzB0KCk7SzB0KCk7WjB0KCk7UTB0KCk7bHRlKCk7ZXV0KCk7YXV0KCk7aXV0KCk7b3V0KCk7U3BlKCk7a3BlKCk7bHV0KCk7VHBlKCk7JHBlKCk7RHBlKCk7THV0KCk7UHV0KCk7QXV0KCk7UnV0KCk7RnV0KCk7SHV0KCk7anV0KCk7VXV0KCk7R3V0KCk7WXV0KCk7THBlKCk7T3koKTtfcGUoKTtFcGUoKTtYdXQoKTtKdXQoKTtJcGUoKTt0cHQoKTtBcGUoKTt4dGUoKTtwcCgpO3NwdCgpO3JwdCgpO25wdCgpO2NwdCgpO3VwdCgpO2dwZSgpO2hwdCgpO21wdCgpO2JwdCgpO3d0ZSgpO3hwdCgpO0l5KCk7d3B0KCk7U3B0KCk7TXB0KCk7Q3B0KCk7JHB0KCk7THB0KCk7UHB0KCk7QXB0KCk7UnB0KCk7RnB0KCk7SHB0KCk7ZnBlKCk7anB0KCk7VXB0KCk7R3B0KCk7WXB0KCk7WHB0KCk7eHBlKCk7UHBlKCk7TGh0KCk7UGh0KCk7QWh0KCk7RzcoKTtWcGUoKTtVcGUoKTtSaHQoKTtHcGUoKTtLcGUoKTtZcGUoKTtYcGUoKTtrYWUoKTtRcGUoKTtzcGUoKTtpcGUoKTtGaHQoKTtIaHQoKTtqaHQoKTtVaHQoKTtHaHQoKTtZaHQoKTtYaHQoKTtKaHQoKTt0NHQoKTtzNHQoKTtyNHQoKTtuNHQoKTtoMCgpO2M0dCgpO3p5KCk7dTR0KCk7aDR0KCk7bTR0KCk7YjR0KCk7eDR0KCk7TnBlKCk7dzR0KCk7SnBlKCk7UzR0KCk7TTR0KCk7dXBlKCk7QzR0KCk7JDR0KCk7TDR0KCk7UDR0KCk7cHBlKCk7QTR0KCk7UjR0KCk7RjR0KCk7SDR0KCk7ajR0KCk7bTAoKTtVNHQoKTtHNHQoKTtZNHQoKTtYNHQoKTtKNHQoKTt0M3QoKTtzM3QoKTtxcGUoKTtvM3QoKTtsM3QoKTtnMCgpO2QzdCgpO3AzdCgpO2YzdCgpO2czdCgpO3YzdCgpO3kzdCgpO2szdCgpO18zdCgpO3ozdCgpO1QzdCgpO0QzdCgpO0UzdCgpO0kzdCgpO04zdCgpO08zdCgpO0IzdCgpO0Z5KCk7cTN0KCk7VjN0KCk7VzN0KCk7SHBlKCk7QnBlKCk7bnBlKCk7SzN0KCk7WjN0KCk7TGFlKCk7UTN0KCk7ZWZ0KCk7RnBlKCk7YWZ0KCk7aWZ0KCk7VHkoKTtvZnQoKTtqcGUoKTt0ZCgpO1Y3KCk7V3BlKCk7UHkoKTtwdGUoKTtacGUoKTtsZnQoKTtkZnQoKTt2MSgpO3l0ZSgpO210ZSgpO3BmdCgpO2ZmdCgpO2dmdCgpO2p5KCk7dmZ0KCk7dnBlKCk7eWZ0KCk7a2Z0KCk7dGhlKCk7X2Z0KCk7emZ0KCk7VGZ0KCk7RGZ0KCk7YXQoKTtScGUoKTtFZnQoKTtJZnQoKTtOZnQoKTtPZnQoKX0pO3ZhciBCZnQ9cGwoKGFoZSxzaGUpPT57KGZ1bmN0aW9uKHMsZSl7dHlwZW9mIGFoZT09Im9iamVjdCImJnR5cGVvZiBzaGU8InUiP3NoZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToocz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczpzfHxzZWxmKS5kYXlqcz1lKCl9KShhaGUsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBzPTFlMyxlPTZlNCx0PTM2ZTUsYT0ibWlsbGlzZWNvbmQiLHI9InNlY29uZCIsbj0ibWludXRlIixvPSJob3VyIixsPSJkYXkiLHA9IndlZWsiLGQ9Im1vbnRoIix1PSJxdWFydGVyIixjPSJ5ZWFyIixiPSJkYXRlIix2PSJJbnZhbGlkIERhdGUiLHg9L14oXGR7NH0pWy0vXT8oXGR7MSwyfSk/Wy0vXT8oXGR7MCwyfSlbVHRcc10qKFxkezEsMn0pPzo/KFxkezEsMn0pPzo/KFxkezEsMn0pP1suOl0/KFxkKyk/JC8sbT0vXFsoW15cXV0rKV18WXsxLDR9fE17MSw0fXxEezEsMn18ZHsxLDR9fEh7MSwyfXxoezEsMn18YXxBfG17MSwyfXxzezEsMn18WnsxLDJ9fFNTUy9nLGY9e25hbWU6ImVuIix3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksbW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG9yZGluYWw6aShmdW5jdGlvbihTKXt2YXIgST1bInRoIiwic3QiLCJuZCIsInJkIl0sUD1TJTEwMDtyZXR1cm4iWyIrUysoSVsoUC0yMCklMTBdfHxJW1BdfHxJWzBdKSsiXSJ9LCJvcmRpbmFsIil9LHk9aShmdW5jdGlvbihTLEksUCl7dmFyIFI9U3RyaW5nKFMpO3JldHVybiFSfHxSLmxlbmd0aD49ST9TOiIiK0FycmF5KEkrMS1SLmxlbmd0aCkuam9pbihQKStTfSwibSIpLE09e3M6eSx6OmkoZnVuY3Rpb24oUyl7dmFyIEk9LVMudXRjT2Zmc2V0KCksUD1NYXRoLmFicyhJKSxSPU1hdGguZmxvb3IoUC82MCksSz1QJTYwO3JldHVybihJPD0wPyIrIjoiLSIpK3koUiwyLCIwIikrIjoiK3koSywyLCIwIil9LCJ6IiksbTppKGZ1bmN0aW9uIFMoSSxQKXtpZihJLmRhdGUoKTxQLmRhdGUoKSlyZXR1cm4tUyhQLEkpO3ZhciBSPTEyKihQLnllYXIoKS1JLnllYXIoKSkrKFAubW9udGgoKS1JLm1vbnRoKCkpLEs9SS5jbG9uZSgpLmFkZChSLGQpLFY9UC1LPDAsVz1JLmNsb25lKCkuYWRkKFIrKFY/LTE6MSksZCk7cmV0dXJuKygtKFIrKFAtSykvKFY/Sy1XOlctSykpfHwwKX0sInQiKSxhOmkoZnVuY3Rpb24oUyl7cmV0dXJuIFM8MD9NYXRoLmNlaWwoUyl8fDA6TWF0aC5mbG9vcihTKX0sImEiKSxwOmkoZnVuY3Rpb24oUyl7cmV0dXJue006ZCx5OmMsdzpwLGQ6bCxEOmIsaDpvLG06bixzOnIsbXM6YSxROnV9W1NdfHxTdHJpbmcoU3x8IiIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvcyQvLCIiKX0sInAiKSx1OmkoZnVuY3Rpb24oUyl7cmV0dXJuIFM9PT12b2lkIDB9LCJ1Iil9LHo9ImVuIixOPXt9O05bel09Zjt2YXIgQz0iJGlzRGF5anNPYmplY3QiLF89aShmdW5jdGlvbihTKXtyZXR1cm4gUyBpbnN0YW5jZW9mIEh8fCEoIVN8fCFTW0NdKX0sIlMiKSxPPWkoZnVuY3Rpb24gUyhJLFAsUil7dmFyIEs7aWYoIUkpcmV0dXJuIHo7aWYodHlwZW9mIEk9PSJzdHJpbmciKXt2YXIgVj1JLnRvTG93ZXJDYXNlKCk7TltWXSYmKEs9ViksUCYmKE5bVl09UCxLPVYpO3ZhciBXPUkuc3BsaXQoIi0iKTtpZighSyYmVy5sZW5ndGg+MSlyZXR1cm4gUyhXWzBdKX1lbHNle3ZhciBtZT1JLm5hbWU7TlttZV09SSxLPW1lfXJldHVybiFSJiZLJiYoej1LKSxLfHwhUiYmen0sInQiKSwkPWkoZnVuY3Rpb24oUyxJKXtpZihfKFMpKXJldHVybiBTLmNsb25lKCk7dmFyIFA9dHlwZW9mIEk9PSJvYmplY3QiP0k6e307cmV0dXJuIFAuZGF0ZT1TLFAuYXJncz1hcmd1bWVudHMsbmV3IEgoUCl9LCJPIiksRT1NO0UubD1PLEUuaT1fLEUudz1mdW5jdGlvbihTLEkpe3JldHVybiAkKFMse2xvY2FsZTpJLiRMLHV0YzpJLiR1LHg6SS4keCwkb2Zmc2V0OkkuJG9mZnNldH0pfTt2YXIgSD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBTKFApe3RoaXMuJEw9TyhQLmxvY2FsZSxudWxsLCEwKSx0aGlzLnBhcnNlKFApLHRoaXMuJHg9dGhpcy4keHx8UC54fHx7fSx0aGlzW0NdPSEwfWkoUywiTSIpO3ZhciBJPVMucHJvdG90eXBlO3JldHVybiBJLnBhcnNlPWZ1bmN0aW9uKFApe3RoaXMuJGQ9KGZ1bmN0aW9uKFIpe3ZhciBLPVIuZGF0ZSxWPVIudXRjO2lmKEs9PT1udWxsKXJldHVybiBuZXcgRGF0ZShOYU4pO2lmKEUudShLKSlyZXR1cm4gbmV3IERhdGU7aWYoSyBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKEspO2lmKHR5cGVvZiBLPT0ic3RyaW5nIiYmIS9aJC9pLnRlc3QoSykpe3ZhciBXPUsubWF0Y2goeCk7aWYoVyl7dmFyIG1lPVdbMl0tMXx8MCxCPShXWzddfHwiMCIpLnN1YnN0cmluZygwLDMpO3JldHVybiBWP25ldyBEYXRlKERhdGUuVVRDKFdbMV0sbWUsV1szXXx8MSxXWzRdfHwwLFdbNV18fDAsV1s2XXx8MCxCKSk6bmV3IERhdGUoV1sxXSxtZSxXWzNdfHwxLFdbNF18fDAsV1s1XXx8MCxXWzZdfHwwLEIpfX1yZXR1cm4gbmV3IERhdGUoSyl9KShQKSx0aGlzLmluaXQoKX0sSS5pbml0PWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy4kZDt0aGlzLiR5PVAuZ2V0RnVsbFllYXIoKSx0aGlzLiRNPVAuZ2V0TW9udGgoKSx0aGlzLiREPVAuZ2V0RGF0ZSgpLHRoaXMuJFc9UC5nZXREYXkoKSx0aGlzLiRIPVAuZ2V0SG91cnMoKSx0aGlzLiRtPVAuZ2V0TWludXRlcygpLHRoaXMuJHM9UC5nZXRTZWNvbmRzKCksdGhpcy4kbXM9UC5nZXRNaWxsaXNlY29uZHMoKX0sSS4kdXRpbHM9ZnVuY3Rpb24oKXtyZXR1cm4gRX0sSS5pc1ZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9TdHJpbmcoKSE9PXZ9LEkuaXNTYW1lPWZ1bmN0aW9uKFAsUil7dmFyIEs9JChQKTtyZXR1cm4gdGhpcy5zdGFydE9mKFIpPD1LJiZLPD10aGlzLmVuZE9mKFIpfSxJLmlzQWZ0ZXI9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gJChQKTx0aGlzLnN0YXJ0T2YoUil9LEkuaXNCZWZvcmU9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gdGhpcy5lbmRPZihSKTwkKFApfSxJLiRnPWZ1bmN0aW9uKFAsUixLKXtyZXR1cm4gRS51KFApP3RoaXNbUl06dGhpcy5zZXQoSyxQKX0sSS51bml4PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxvb3IodGhpcy52YWx1ZU9mKCkvMWUzKX0sSS52YWx1ZU9mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQuZ2V0VGltZSgpfSxJLnN0YXJ0T2Y9ZnVuY3Rpb24oUCxSKXt2YXIgSz10aGlzLFY9ISFFLnUoUil8fFIsVz1FLnAoUCksbWU9aShmdW5jdGlvbihRLGllKXt2YXIgdGU9RS53KEsuJHU/RGF0ZS5VVEMoSy4keSxpZSxRKTpuZXcgRGF0ZShLLiR5LGllLFEpLEspO3JldHVybiBWP3RlOnRlLmVuZE9mKGwpfSwibCIpLEI9aShmdW5jdGlvbihRLGllKXtyZXR1cm4gRS53KEsudG9EYXRlKClbUV0uYXBwbHkoSy50b0RhdGUoInMiKSwoVj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKGllKSksSyl9LCIkIiksVT10aGlzLiRXLGhlPXRoaXMuJE0sRj10aGlzLiRELGo9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpO3N3aXRjaChXKXtjYXNlIGM6cmV0dXJuIFY/bWUoMSwwKTptZSgzMSwxMSk7Y2FzZSBkOnJldHVybiBWP21lKDEsaGUpOm1lKDAsaGUrMSk7Y2FzZSBwOnZhciB1ZT10aGlzLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDAsbGU9KFU8dWU/VSs3OlUpLXVlO3JldHVybiBtZShWP0YtbGU6RisoNi1sZSksaGUpO2Nhc2UgbDpjYXNlIGI6cmV0dXJuIEIoaisiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gQihqKyJNaW51dGVzIiwxKTtjYXNlIG46cmV0dXJuIEIoaisiU2Vjb25kcyIsMik7Y2FzZSByOnJldHVybiBCKGorIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sSS5lbmRPZj1mdW5jdGlvbihQKXtyZXR1cm4gdGhpcy5zdGFydE9mKFAsITEpfSxJLiRzZXQ9ZnVuY3Rpb24oUCxSKXt2YXIgSyxWPUUucChQKSxXPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxtZT0oSz17fSxLW2xdPVcrIkRhdGUiLEtbYl09VysiRGF0ZSIsS1tkXT1XKyJNb250aCIsS1tjXT1XKyJGdWxsWWVhciIsS1tvXT1XKyJIb3VycyIsS1tuXT1XKyJNaW51dGVzIixLW3JdPVcrIlNlY29uZHMiLEtbYV09VysiTWlsbGlzZWNvbmRzIixLKVtWXSxCPVY9PT1sP3RoaXMuJEQrKFItdGhpcy4kVyk6UjtpZihWPT09ZHx8Vj09PWMpe3ZhciBVPXRoaXMuY2xvbmUoKS5zZXQoYiwxKTtVLiRkW21lXShCKSxVLmluaXQoKSx0aGlzLiRkPVUuc2V0KGIsTWF0aC5taW4odGhpcy4kRCxVLmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIG1lJiZ0aGlzLiRkW21lXShCKTtyZXR1cm4gdGhpcy5pbml0KCksdGhpc30sSS5zZXQ9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gdGhpcy5jbG9uZSgpLiRzZXQoUCxSKX0sSS5nZXQ9ZnVuY3Rpb24oUCl7cmV0dXJuIHRoaXNbRS5wKFApXSgpfSxJLmFkZD1mdW5jdGlvbihQLFIpe3ZhciBLLFY9dGhpcztQPU51bWJlcihQKTt2YXIgVz1FLnAoUiksbWU9aShmdW5jdGlvbihoZSl7dmFyIEY9JChWKTtyZXR1cm4gRS53KEYuZGF0ZShGLmRhdGUoKStNYXRoLnJvdW5kKGhlKlApKSxWKX0sInkiKTtpZihXPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiRNK1ApO2lmKFc9PT1jKXJldHVybiB0aGlzLnNldChjLHRoaXMuJHkrUCk7aWYoVz09PWwpcmV0dXJuIG1lKDEpO2lmKFc9PT1wKXJldHVybiBtZSg3KTt2YXIgQj0oSz17fSxLW25dPWUsS1tvXT10LEtbcl09cyxLKVtXXXx8MSxVPXRoaXMuJGQuZ2V0VGltZSgpK1AqQjtyZXR1cm4gRS53KFUsdGhpcyl9LEkuc3VidHJhY3Q9ZnVuY3Rpb24oUCxSKXtyZXR1cm4gdGhpcy5hZGQoLTEqUCxSKX0sSS5mb3JtYXQ9ZnVuY3Rpb24oUCl7dmFyIFI9dGhpcyxLPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gSy5pbnZhbGlkRGF0ZXx8djt2YXIgVj1QfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLFc9RS56KHRoaXMpLG1lPXRoaXMuJEgsQj10aGlzLiRtLFU9dGhpcy4kTSxoZT1LLndlZWtkYXlzLEY9Sy5tb250aHMsaj1LLm1lcmlkaWVtLHVlPWkoZnVuY3Rpb24oaWUsdGUsZWUsa2Upe3JldHVybiBpZSYmKGllW3RlXXx8aWUoUixWKSl8fGVlW3RlXS5zbGljZSgwLGtlKX0sImgiKSxsZT1pKGZ1bmN0aW9uKGllKXtyZXR1cm4gRS5zKG1lJTEyfHwxMixpZSwiMCIpfSwiZCIpLFE9anx8ZnVuY3Rpb24oaWUsdGUsZWUpe3ZhciBrZT1pZTwxMj8iQU0iOiJQTSI7cmV0dXJuIGVlP2tlLnRvTG93ZXJDYXNlKCk6a2V9O3JldHVybiBWLnJlcGxhY2UobSwoZnVuY3Rpb24oaWUsdGUpe3JldHVybiB0ZXx8KGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUpe2Nhc2UiWVkiOnJldHVybiBTdHJpbmcoUi4keSkuc2xpY2UoLTIpO2Nhc2UiWVlZWSI6cmV0dXJuIEUucyhSLiR5LDQsIjAiKTtjYXNlIk0iOnJldHVybiBVKzE7Y2FzZSJNTSI6cmV0dXJuIEUucyhVKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4gdWUoSy5tb250aHNTaG9ydCxVLEYsMyk7Y2FzZSJNTU1NIjpyZXR1cm4gdWUoRixVKTtjYXNlIkQiOnJldHVybiBSLiREO2Nhc2UiREQiOnJldHVybiBFLnMoUi4kRCwyLCIwIik7Y2FzZSJkIjpyZXR1cm4gU3RyaW5nKFIuJFcpO2Nhc2UiZGQiOnJldHVybiB1ZShLLndlZWtkYXlzTWluLFIuJFcsaGUsMik7Y2FzZSJkZGQiOnJldHVybiB1ZShLLndlZWtkYXlzU2hvcnQsUi4kVyxoZSwzKTtjYXNlImRkZGQiOnJldHVybiBoZVtSLiRXXTtjYXNlIkgiOnJldHVybiBTdHJpbmcobWUpO2Nhc2UiSEgiOnJldHVybiBFLnMobWUsMiwiMCIpO2Nhc2UiaCI6cmV0dXJuIGxlKDEpO2Nhc2UiaGgiOnJldHVybiBsZSgyKTtjYXNlImEiOnJldHVybiBRKG1lLEIsITApO2Nhc2UiQSI6cmV0dXJuIFEobWUsQiwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKEIpO2Nhc2UibW0iOnJldHVybiBFLnMoQiwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKFIuJHMpO2Nhc2Uic3MiOnJldHVybiBFLnMoUi4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBFLnMoUi4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIFd9cmV0dXJuIG51bGx9KShpZSl8fFcucmVwbGFjZSgiOiIsIiIpfSkpfSxJLnV0Y09mZnNldD1mdW5jdGlvbigpe3JldHVybiAxNSotTWF0aC5yb3VuZCh0aGlzLiRkLmdldFRpbWV6b25lT2Zmc2V0KCkvMTUpfSxJLmRpZmY9ZnVuY3Rpb24oUCxSLEspe3ZhciBWLFc9dGhpcyxtZT1FLnAoUiksQj0kKFApLFU9KEIudXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSkqZSxoZT10aGlzLUIsRj1pKGZ1bmN0aW9uKCl7cmV0dXJuIEUubShXLEIpfSwiRCIpO3N3aXRjaChtZSl7Y2FzZSBjOlY9RigpLzEyO2JyZWFrO2Nhc2UgZDpWPUYoKTticmVhaztjYXNlIHU6Vj1GKCkvMzticmVhaztjYXNlIHA6Vj0oaGUtVSkvNjA0OGU1O2JyZWFrO2Nhc2UgbDpWPShoZS1VKS84NjRlNTticmVhaztjYXNlIG86Vj1oZS90O2JyZWFrO2Nhc2UgbjpWPWhlL2U7YnJlYWs7Y2FzZSByOlY9aGUvczticmVhaztkZWZhdWx0OlY9aGV9cmV0dXJuIEs/VjpFLmEoVil9LEkuZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZihkKS4kRH0sSS4kbG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIE5bdGhpcy4kTF19LEkubG9jYWxlPWZ1bmN0aW9uKFAsUil7aWYoIVApcmV0dXJuIHRoaXMuJEw7dmFyIEs9dGhpcy5jbG9uZSgpLFY9TyhQLFIsITApO3JldHVybiBWJiYoSy4kTD1WKSxLfSxJLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIEUudyh0aGlzLiRkLHRoaXMpfSxJLnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LEkudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSxJLnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKX0sSS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LFN9KSgpLGs9SC5wcm90b3R5cGU7cmV0dXJuICQucHJvdG90eXBlPWssW1siJG1zIixhXSxbIiRzIixyXSxbIiRtIixuXSxbIiRIIixvXSxbIiRXIixsXSxbIiRNIixkXSxbIiR5IixjXSxbIiREIixiXV0uZm9yRWFjaCgoZnVuY3Rpb24oUyl7a1tTWzFdXT1mdW5jdGlvbihJKXtyZXR1cm4gdGhpcy4kZyhJLFNbMF0sU1sxXSl9fSkpLCQuZXh0ZW5kPWZ1bmN0aW9uKFMsSSl7cmV0dXJuIFMuJGl8fChTKEksSCwkKSxTLiRpPSEwKSwkfSwkLmxvY2FsZT1PLCQuaXNEYXlqcz1fLCQudW5peD1mdW5jdGlvbihTKXtyZXR1cm4gJCgxZTMqUyl9LCQuZW49Tlt6XSwkLkxzPU4sJC5wPXt9LCR9KSl9KTt2YXIgSGZ0PXBsKChpaGUscmhlKT0+eyhmdW5jdGlvbihzLGUpe3R5cGVvZiBpaGU9PSJvYmplY3QiJiZ0eXBlb2YgcmhlPCJ1Ij9yaGUuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHM9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6c3x8c2VsZikuZGF5anNfcGx1Z2luX2lzVG9kYXk9ZSgpfSkoaWhlLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZnVuY3Rpb24ocyxlLHQpe2UucHJvdG90eXBlLmlzVG9kYXk9ZnVuY3Rpb24oKXt2YXIgYT0iWVlZWS1NTS1ERCIscj10KCk7cmV0dXJuIHRoaXMuZm9ybWF0KGEpPT09ci5mb3JtYXQoYSl9fX0pKX0pO2Z1bmN0aW9uIEJFYShzKXtyZXR1cm57ZGF5czpNYXRoLnRydW5jKHMvODY0ZTUpLGhvdXJzOk1hdGgudHJ1bmMocy8zNmU1JTI0KSxtaW51dGVzOk1hdGgudHJ1bmMocy82ZTQlNjApLHNlY29uZHM6TWF0aC50cnVuYyhzLzFlMyU2MCksbWlsbGlzZWNvbmRzOk1hdGgudHJ1bmMocyUxZTMpLG1pY3Jvc2Vjb25kczpNYXRoLnRydW5jKHFmdChzKjFlMyklMWUzKSxuYW5vc2Vjb25kczpNYXRoLnRydW5jKHFmdChzKjFlNiklMWUzKX19ZnVuY3Rpb24gSEVhKHMpe3JldHVybntkYXlzOnMvODY0MDAwMDBuLGhvdXJzOnMvMzYwMDAwMG4lMjRuLG1pbnV0ZXM6cy82MDAwMG4lNjBuLHNlY29uZHM6cy8xMDAwbiU2MG4sbWlsbGlzZWNvbmRzOnMlMTAwMG4sbWljcm9zZWNvbmRzOjBuLG5hbm9zZWNvbmRzOjBufX1mdW5jdGlvbiBvaGUocyl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlIm51bWJlciI6e2lmKE51bWJlci5pc0Zpbml0ZShzKSlyZXR1cm4gQkVhKHMpO2JyZWFrfWNhc2UiYmlnaW50IjpyZXR1cm4gSEVhKHMpfXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKX12YXIgcWZ0LGpmdD1nKCgpPT57cWZ0PWkocz0+TnVtYmVyLmlzRmluaXRlKHMpP3M6MCwidG9aZXJvSWZJbmZpbml0eSIpO2koQkVhLCJwYXJzZU51bWJlciIpO2koSEVhLCJwYXJzZUJpZ2ludCIpO2kob2hlLCJwYXJzZU1pbGxpc2Vjb25kcyIpfSk7ZnVuY3Rpb24gV3kocyxlKXtsZXQgdD10eXBlb2Ygcz09ImJpZ2ludCI7aWYoIXQmJiFOdW1iZXIuaXNGaW5pdGUocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCIpO2U9ey4uLmV9O2xldCBhPXM8MD8iLSI6IiI7cz1zPDA/LXM6cyxlLmNvbG9uTm90YXRpb24mJihlLmNvbXBhY3Q9ITEsZS5mb3JtYXRTdWJNaWxsaXNlY29uZHM9ITEsZS5zZXBhcmF0ZU1pbGxpc2Vjb25kcz0hMSxlLnZlcmJvc2U9ITEpLGUuY29tcGFjdCYmKGUudW5pdENvdW50PTEsZS5zZWNvbmRzRGVjaW1hbERpZ2l0cz0wLGUubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cz0wKTtsZXQgcj1bXSxuPWkoKHUsYyk9PntsZXQgYj1NYXRoLmZsb29yKHUqMTAqKmMrVkVhKTtyZXR1cm4oTWF0aC5yb3VuZChiKS8xMCoqYykudG9GaXhlZChjKX0sImZsb29yRGVjaW1hbHMiKSxvPWkoKHUsYyxiLHYpPT57aWYoISgoci5sZW5ndGg9PT0wfHwhZS5jb2xvbk5vdGF0aW9uKSYmcUVhKHUpJiYhKGUuY29sb25Ob3RhdGlvbiYmYj09PSJtIikpKXtpZih2Pz89U3RyaW5nKHUpLGUuY29sb25Ob3RhdGlvbil7bGV0IHg9di5pbmNsdWRlcygiLiIpP3Yuc3BsaXQoIi4iKVswXS5sZW5ndGg6di5sZW5ndGgsbT1yLmxlbmd0aD4wPzI6MTt2PSIwIi5yZXBlYXQoTWF0aC5tYXgoMCxtLXgpKSt2fWVsc2Ugdis9ZS52ZXJib3NlPyIgIitqRWEoYyx1KTpiO3IucHVzaCh2KX19LCJhZGQiKSxsPW9oZShzKSxwPUJpZ0ludChsLmRheXMpO2lmKGUuaGlkZVllYXJBbmREYXlzP28oQmlnSW50KHApKjI0bitCaWdJbnQobC5ob3VycyksImhvdXIiLCJoIik6KGUuaGlkZVllYXI/byhwLCJkYXkiLCJkIik6KG8ocC8zNjVuLCJ5ZWFyIiwieSIpLG8ocCUzNjVuLCJkYXkiLCJkIikpLG8oTnVtYmVyKGwuaG91cnMpLCJob3VyIiwiaCIpKSxvKE51bWJlcihsLm1pbnV0ZXMpLCJtaW51dGUiLCJtIiksIWUuaGlkZVNlY29uZHMpaWYoZS5zZXBhcmF0ZU1pbGxpc2Vjb25kc3x8ZS5mb3JtYXRTdWJNaWxsaXNlY29uZHN8fCFlLmNvbG9uTm90YXRpb24mJnM8MWUzJiYhZS5zdWJTZWNvbmRzQXNEZWNpbWFscyl7bGV0IHU9TnVtYmVyKGwuc2Vjb25kcyksYz1OdW1iZXIobC5taWxsaXNlY29uZHMpLGI9TnVtYmVyKGwubWljcm9zZWNvbmRzKSx2PU51bWJlcihsLm5hbm9zZWNvbmRzKTtpZihvKHUsInNlY29uZCIsInMiKSxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kcylvKGMsIm1pbGxpc2Vjb25kIiwibXMiKSxvKGIsIm1pY3Jvc2Vjb25kIiwiXHhCNXMiKSxvKHYsIm5hbm9zZWNvbmQiLCJucyIpO2Vsc2V7bGV0IHg9YytiLzFlMyt2LzFlNixtPXR5cGVvZiBlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP2UubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0czowLGY9eD49MT9NYXRoLnJvdW5kKHgpOk1hdGguY2VpbCh4KSx5PW0/eC50b0ZpeGVkKG0pOmY7byhOdW1iZXIucGFyc2VGbG9hdCh5KSwibWlsbGlzZWNvbmQiLCJtcyIseSl9fWVsc2V7bGV0IHU9KHQ/TnVtYmVyKHMlVUVhKTpzKS8xZTMlNjAsYz10eXBlb2YgZS5zZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/ZS5zZWNvbmRzRGVjaW1hbERpZ2l0czoxLGI9bih1LGMpLHY9ZS5rZWVwRGVjaW1hbHNPbldob2xlU2Vjb25kcz9iOmIucmVwbGFjZSgvXC4wKyQvLCIiKTtvKE51bWJlci5wYXJzZUZsb2F0KHYpLCJzZWNvbmQiLCJzIix2KX1pZihyLmxlbmd0aD09PTApcmV0dXJuIGErIjAiKyhlLnZlcmJvc2U/IiBtaWxsaXNlY29uZHMiOiJtcyIpO2xldCBkPWUuY29sb25Ob3RhdGlvbj8iOiI6IiAiO3JldHVybiB0eXBlb2YgZS51bml0Q291bnQ9PSJudW1iZXIiJiYocj1yLnNsaWNlKDAsTWF0aC5tYXgoZS51bml0Q291bnQsMSkpKSxhK3Iuam9pbihkKX12YXIgcUVhLGpFYSxWRWEsVUVhLFZmdD1nKCgpPT57amZ0KCk7cUVhPWkocz0+cz09PTB8fHM9PT0wbiwiaXNaZXJvIiksakVhPWkoKHMsZSk9PmU9PT0xfHxlPT09MW4/czpgJHtzfXNgLCJwbHVyYWxpemUiKSxWRWE9MWUtNyxVRWE9MjRuKjYwbio2MG4qMTAwMG47aShXeSwicHJldHR5TWlsbGlzZWNvbmRzIil9KTt2YXIgczMsVWZ0LGtwPWcoKCk9Pnt1OSgpO2QwKCk7aW8oKTt0MHQoKTtGZnQoKTtzMz14bihCZnQoKSwxKSxVZnQ9eG4oSGZ0KCksMSk7VmZ0KCk7czMuZGVmYXVsdC5leHRlbmQoVWZ0LmRlZmF1bHQpfSk7dmFyIEd5LG5oZT1nKCgpPT57a3AoKTtsaGUoKTtHeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDcm9uSm9iIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLm5leHRFeGVjdXRpb25Vbml4PTAsdGhpcy5jcm9uRXhwcmVzc2lvbj10LHRoaXMuam9iRnVuY3Rpb249YSx0aGlzLmNyb25QYXJzZXI9bmV3IF95LkNyb24odCl9Y2hlY2tFeGVjdXRpb24oKXtpZih0aGlzLnN0YXR1cz09PSJzdG9wcGVkIilyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peDtpZih0aGlzLm5leHRFeGVjdXRpb25Vbml4PT09MCYmdGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpLERhdGUubm93KCk+dGhpcy5uZXh0RXhlY3V0aW9uVW5peCl7bGV0IGU9dGhpcy5qb2JGdW5jdGlvbih0aGlzLm5leHRFeGVjdXRpb25Vbml4KTtlIGluc3RhbmNlb2YgUHJvbWlzZSYmZS5jYXRjaCh0PT5jb25zb2xlLmxvZyh0KSksdGhpcy5uZXh0RXhlY3V0aW9uVW5peD10aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCl9cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXh9Z2V0TmV4dEV4ZWN1dGlvblRpbWUoKXtyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peD1EYXRlLm5vdygpK3RoaXMuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpfWdldFRpbWVUb05leHRFeGVjdXRpb24oKXtyZXR1cm4gdGhpcy5jcm9uUGFyc2VyLm1zVG9OZXh0KCl9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCJ9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIn19fSk7dmFyIGNoZSxsaGU9ZygoKT0+e2twKCk7bmhlKCk7Y2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNyb25NYW5hZ2VyIil9Y29uc3RydWN0b3IoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5jcm9uam9icz1uZXcgRnMuT2JqZWN0TWFwLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH13YWtlQ3ljbGUoKXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5yZXNvbHZlKCl9YWRkQ3JvbmpvYihlLHQpe2xldCBhPW5ldyBHeSh0aGlzLGUsdCk7cmV0dXJuIHRoaXMuY3JvbmpvYnMuYWRkKGEpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYoYS5zdGFydCgpLHRoaXMud2FrZUN5Y2xlKCkpLGF9cmVtb3ZlQ3JvbmpvYihlKXtlLnN0b3AoKSx0aGlzLmNyb25qb2JzLnJlbW92ZShlKSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy53YWtlQ3ljbGUoKX1zdGFydCgpe2lmKHRoaXMuc3RhdHVzIT09InN0YXJ0ZWQiKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7Zm9yKGxldCBlIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSllLnN0YXJ0KCk7dGhpcy5ydW5Dcm9uQ3ljbGUoKX19YXN5bmMgcnVuQ3JvbkN5Y2xlKCl7Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIjspe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bmV3IG10LkRlZmVycmVkO2xldCBlPTEvMDtmb3IobGV0IHQgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKXt0LmNoZWNrRXhlY3V0aW9uKCk7bGV0IGE9dC5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCk7YTxlJiYoZT1hKX1pZihlPDEvMCYmZT4wKXRoaXMuZXhlY3V0aW9uVGltZW91dD1uZXcgWHQuVGltZW91dChlKSxhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuZXhlY3V0aW9uVGltZW91dC5wcm9taXNlLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZV0pLHRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKTtlbHNle2lmKGU8PTApY29udGludWU7YXdhaXQgdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlfX10aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9c3RvcCgpe3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYodGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuZXhlY3V0aW9uVGltZW91dCYmdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpLHRoaXMud2FrZUN5Y2xlKCkpO2ZvcihsZXQgZSBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpZS5zdG9wKCl9fX0pO3ZhciBTcCxkaGUsV0VhLEdFYSx1aGU9ZygoKT0+e2twKCk7U3A9e3llYXJzOmkoKHM9MSk9PnMqMzE1NGU3LCJ5ZWFycyIpLG1vbnRoczppKChzPTEpPT5zKjI2MjhlNiwibW9udGhzIiksd2Vla3M6aSgocz0xKT0+cyo2MDQ4ZTUsIndlZWtzIiksZGF5czppKChzPTEpPT5zKjg2NGU1LCJkYXlzIiksaG91cnM6aSgocz0xKT0+cyozNmU1LCJob3VycyIpLG1pbnV0ZXM6aSgocz0xKT0+cyo2ZTQsIm1pbnV0ZXMiKSxzZWNvbmRzOmkoKHM9MSk9PnMqMWUzLCJzZWNvbmRzIil9LGRoZT1pKHM9PntsZXQgZT0wLHQ9aShhPT57ZT1lK2F9LCJhZGRNaWxsaVNlY29uZHMiKTtyZXR1cm4gcy55ZWFycyYmdChTcC55ZWFycyhzLnllYXJzKSkscy5tb250aHMmJnQoU3AubW9udGhzKHMubW9udGhzKSkscy53ZWVrcyYmdChTcC53ZWVrcyhzLndlZWtzKSkscy5kYXlzJiZ0KFNwLmRheXMocy5kYXlzKSkscy5ob3VycyYmdChTcC5ob3VycyhzLmhvdXJzKSkscy5taW51dGVzJiZ0KFNwLm1pbnV0ZXMocy5taW51dGVzKSkscy5zZWNvbmRzJiZ0KFNwLnNlY29uZHMocy5zZWNvbmRzKSksZX0sImdldE1pbGxpU2Vjb25kc0Zyb21Vbml0cyIpLFdFYT1pKHM9Pld5KHMpLCJnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVTdHJpbmciKSxHRWE9aShzPT5VeS5mb3JtYXREaXN0YW5jZVRvTm93KG5ldyBEYXRlKHMpKSwiZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZSIpfSk7dmFyIHBoZSxXZnQ9ZygoKT0+e2twKCk7dWhlKCk7cGhlPWNsYXNzIHMgZXh0ZW5kcyBEYXRle3N0YXRpY3tpKHRoaXMsIkV4dGVuZGVkRGF0ZSIpfXN0YXRpYyBmcm9tTWlsbGlzKGUpe3JldHVybiBuZXcgcyhlKX1zdGF0aWMgZnJvbURhdGUoZSl7cmV0dXJuIG5ldyBzKGUuZ2V0VGltZSgpKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZShlKXtsZXQgdD0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxyPW5ldyBEYXRlKHBhcnNlRmxvYXQodFszXSkscGFyc2VGbG9hdCh0WzJdKS0xLHBhcnNlRmxvYXQodFsxXSkpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHMocil9c3RhdGljIGZyb21IeXBoZWREYXRlKGUpe2xldCB0PW5ldyBEYXRlKGUpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHModCl9c3RhdGljIGZyb21FdXJvcGVhbkRhdGVBbmRUaW1lKGUsdD0iMTI6MDA6MDAiLGE9IkV1cm9wZS9CZXJsaW4iKXtsZXQgcj0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxuPWkoZD0+YDAke2R9YC5zbGljZSgtMiksInNsaWNlRGF0ZSIpLG89YCR7clszXX0tJHtuKHJbMl0pfS0ke24oclsxXSl9VCR7dH1gLHA9czMuZGVmYXVsdChvKS50b0RhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyBzKHApfWNvbnN0cnVjdG9yKGU9RGF0ZS5ub3coKSl7c3VwZXIoZSl9ZXhwb3J0VG9FdXJvcGVhbkRhdGUoKXtsZXQgZT10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHtlLmRheVN0cmluZ30uJHtlLm1vbnRoU3RyaW5nfS4ke2UueWVhclN0cmluZ31gfWV4cG9ydFRvSHlwaGVkU29ydGFibGVEYXRlKCl7bGV0IGU9dGhpcy5leHBvcnRUb1VuaXRzKCk7cmV0dXJuYCR7ZS55ZWFyU3RyaW5nfS0ke2UubW9udGhTdHJpbmd9LSR7ZS5kYXlTdHJpbmd9YH1leHBvcnRUb1VuaXRzKCl7bGV0IGU9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHQ9WyJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSIsIlN1bmRheSJdO3JldHVybnt5ZWFyOnRoaXMuZ2V0RnVsbFllYXIoKSx5ZWFyU3RyaW5nOmAke3RoaXMuZ2V0RnVsbFllYXIoKX1gLG1vbnRoOnRoaXMuZ2V0TW9udGgoKSsxLG1vbnRoU3RyaW5nOigiMCIrKHRoaXMuZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpLG1vbnRoTmFtZTplW3RoaXMuZ2V0TW9udGgoKV0sZGF5OnRoaXMuZ2V0RGF0ZSgpLGRheVN0cmluZzooIjAiK3RoaXMuZ2V0RGF0ZSgpKS5zbGljZSgtMiksZGF5T2ZUaGVXZWVrOnRoaXMuZ2V0RGF5KCksZGF5T2ZUaGVXZWVrTmFtZTp0W3RoaXMuZ2V0RGF5KCldfX1mb3JtYXQoZSl7cmV0dXJuIHMzLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmZvcm1hdChlKX1pc1RvZGF5KCl7cmV0dXJuIHMzLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmlzVG9kYXkoKX1sZXNzVGltZVBhc3NlZFRvTm93KGUpe2xldCB0PWRoZShlKTtyZXR1cm4gRGF0ZS5ub3coKS10aGlzLmdldFRpbWUoKTx0fW1vcmVUaW1lUGFzc2VkVG9Ob3coZSl7cmV0dXJuIXRoaXMubGVzc1RpbWVQYXNzZWRUb05vdyhlKX19fSk7dmFyIGhoZSxHZnQ9ZygoKT0+e2hoZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJIcnRNZWFzdXJlbWVudCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLl9zdGFydGVkPSEwLHRoaXMuX21pbGxpU3RhcnQ9RGF0ZS5ub3coKX1zdG9wKCl7aWYodGhpcy5fc3RhcnRlZD09PSExKXtjb25zb2xlLmxvZygiSGFzbid0IHN0YXJ0ZWQgeWV0Iik7cmV0dXJufXJldHVybiB0aGlzLl9taWxsaURpZmY9RGF0ZS5ub3coKS10aGlzLl9taWxsaVN0YXJ0LHRoaXMubmFub1NlY29uZHM9dGhpcy5fbWlsbGlEaWZmKjFlMyx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLl9taWxsaURpZmYsdGhpc31yZXNldCgpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfX19KTt2YXIgZmhlLEtmdD1nKCgpPT57a3AoKTtmaGU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJ2YWwiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGwsdGhpcy5pbnRlcnZhbEpvYnM9W10sdGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcz1lfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2xldCBlPW5ldyBEYXRlO3RoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1lLGkoYXN5bmMoKT0+e2Zvcig7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJnRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj09PWU7KWF3YWl0IFh0LmRlbGF5Rm9yKHRoaXMuaW50ZXJ2YWxNaWxsaXNlY29uZHMpLHRoaXMuZXhlY3V0ZUludGVydmFsSm9icygpfSwicnVuSW50ZXJ2YWwiKSgpfXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGx9YWRkSW50ZXJ2YWxKb2IoZSl7dGhpcy5pbnRlcnZhbEpvYnMucHVzaChlKX1leGVjdXRlSW50ZXJ2YWxKb2JzKCl7Zm9yKGxldCBlIG9mIHRoaXMuaW50ZXJ2YWxKb2JzKWUoKX19fSk7dmFyIHA5LG1oZT1nKCgpPT57a3AoKTtwOT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlRpbWVTdGFtcCIpfXN0YXRpYyBmcm9tTWlsbGlTZWNvbmRzKGUpe3JldHVybiBuZXcgcyhlKX1zdGF0aWMgZnJvbVRpbWVTdGFtcChlKXtsZXQgdD1uZXcgcztyZXR1cm4gdC5jaGFuZ2U9dC5taWxsaVNlY29uZHMtZS5taWxsaVNlY29uZHMsdH1jb25zdHJ1Y3RvcihlKXt0aGlzLmNoYW5nZT1udWxsLGU/dHlwZW9mIGU9PSJudW1iZXIiJiYodGhpcy5kYXRlPW5ldyBEYXRlKGUpKTp0aGlzLmRhdGU9bmV3IERhdGUsdGhpcy5taWxsaVNlY29uZHM9dGhpcy5kYXRlLmdldFRpbWUoKSx0aGlzLmVwb2NodGltZT1NYXRoLmZsb29yKHRoaXMubWlsbGlTZWNvbmRzLzFlMyl9aXNPbGRlclRoYW5PdGhlclRpbWVTdGFtcChlLHQ9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzPGUubWlsbGlTZWNvbmRzLXR9aXNPbGRlclRoYW4oZSx0PTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcyt0PGUubWlsbGlTZWNvbmRzfWlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChlLHQ9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzPmUubWlsbGlTZWNvbmRzK3R9aXNZb3VuZ2VyVGhhbk1pbGxpU2Vjb25kcyhlKXtsZXQgYT1uZXcgcygpLmVwb2NodGltZS1lLHI9bmV3IHMoYSk7cmV0dXJuIHRoaXMuaXNZb3VuZ2VyVGhhbk90aGVyVGltZVN0YW1wKHIpfX19KTt2YXIgZ2hlLFlmdD1nKCgpPT57a3AoKTttaGUoKTtnaGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZXIiKX1nZXQgdGltZUxlZnQoKXtyZXR1cm4gdGhpcy50aW1lSW5NaWxsaXNlY29uZHMtdGhpcy5wYXVzZWRBdC5jaGFuZ2V9Y29uc3RydWN0b3IoZSl7dGhpcy5zdGF0ZT0iaW5pdGlhdGVkIix0aGlzLmNvbXBsZXRlZERlZmVycmVkPW10LmRlZmVyKCksdGhpcy50aW1lSW5NaWxsaXNlY29uZHM9ZSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmVycmVkLnByb21pc2V9c3RhcnQoKXtpZighdGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUluTWlsbGlzZWNvbmRzKSx0aGlzLnN0YXJ0ZWRBdD1uZXcgcDk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIHJlc3VtZSBpbnN0ZWFkIil9cGF1c2UoKXt0aGlzLnN0YXJ0ZWRBdCYmKGNsZWFyVGltZW91dCh0aGlzLmN1cnJlbnRUaW1lb3V0KSx0aGlzLmN1cnJlbnRUaW1lb3V0PW51bGwsdGhpcy5wYXVzZWRBdD1wOS5mcm9tVGltZVN0YW1wKHRoaXMuc3RhcnRlZEF0KSl9cmVzdW1lKCl7aWYodGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUxlZnQpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJ0aW1lciBoYXMgTk9UIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgLnN0YXJ0KCkgaW5zdGVhZCIpfXJlc2V0KCl7dGhpcy5wYXVzZSgpLHRoaXMuc3RhcnRlZEF0PW51bGwsdGhpcy5wYXVzZWRBdD1udWxsfX19KTt2YXIgaTM9e307eXQoaTMse0Nyb25Kb2I6KCk9Pkd5LENyb25NYW5hZ2VyOigpPT5jaGUsRXh0ZW5kZWREYXRlOigpPT5waGUsSHJ0TWVhc3VyZW1lbnQ6KCk9PmhoZSxJbnRlcnZhbDooKT0+ZmhlLFRpbWVTdGFtcDooKT0+cDksVGltZXI6KCk9PmdoZSxnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lOigpPT5HRWEsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nOigpPT5XRWEsZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzOigpPT5kaGUsdW5pdHM6KCk9PlNwfSk7dmFyIFpmdD1nKCgpPT57bGhlKCk7bmhlKCk7V2Z0KCk7R2Z0KCk7S2Z0KCk7WWZ0KCk7bWhlKCk7dWhlKCl9KTt2YXIgUWZ0PXBsKChUVXMsWGZ0KT0+eyJ1c2Ugc3RyaWN0IjtYZnQuZXhwb3J0cz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTeW1ib2xUcmVlTm9kZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5wYXJlbnQ9bnVsbCx0aGlzLnByZXZpb3VzU2libGluZz1udWxsLHRoaXMubmV4dFNpYmxpbmc9bnVsbCx0aGlzLmZpcnN0Q2hpbGQ9bnVsbCx0aGlzLmxhc3RDaGlsZD1udWxsLHRoaXMuY2hpbGRyZW5WZXJzaW9uPTAsdGhpcy5jaGlsZEluZGV4Q2FjaGVkVXBUbz1udWxsLHRoaXMuY2FjaGVkSW5kZXg9LTEsdGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOfWdldCBpc0F0dGFjaGVkKCl7cmV0dXJuISEodGhpcy5wYXJlbnR8fHRoaXMucHJldmlvdXNTaWJsaW5nfHx0aGlzLm5leHRTaWJsaW5nKX1nZXQgaGFzQ2hpbGRyZW4oKXtyZXR1cm4hIXRoaXMuZmlyc3RDaGlsZH1jaGlsZHJlbkNoYW5nZWQoKXt0aGlzLmNoaWxkcmVuVmVyc2lvbj10aGlzLmNoaWxkcmVuVmVyc2lvbisxJjQyOTQ5NjcyOTUsdGhpcy5jaGlsZEluZGV4Q2FjaGVkVXBUbz1udWxsfWdldENhY2hlZEluZGV4KGUpe3JldHVybiB0aGlzLmNhY2hlZEluZGV4VmVyc2lvbiE9PWUuY2hpbGRyZW5WZXJzaW9uPyh0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1OYU4sLTEpOnRoaXMuY2FjaGVkSW5kZXh9c2V0Q2FjaGVkSW5kZXgoZSx0KXt0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1lLmNoaWxkcmVuVmVyc2lvbix0aGlzLmNhY2hlZEluZGV4PXR9fX0pO3ZhciBlbXQ9cGwoKERVcyxKZnQpPT57InVzZSBzdHJpY3QiO0pmdC5leHBvcnRzPU9iamVjdC5mcmVlemUoe0RJU0NPTk5FQ1RFRDoxLFBSRUNFRElORzoyLEZPTExPV0lORzo0LENPTlRBSU5TOjgsQ09OVEFJTkVEX0JZOjE2fSl9KTt2YXIgcm10PXBsKChMVXMsaW10KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdG10PVN5bWJvbCgpLGFtdD1TeW1ib2woKSxfcD1TeW1ib2woKSxzbXQ9U3ltYm9sKCkseDE9Y2xhc3N7c3RhdGlje2kodGhpcywiVHJlZUl0ZXJhdG9yIil9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpc1t0bXRdPWUsdGhpc1thbXRdPXQsdGhpc1tfcF09YSx0aGlzW3NtdF09cn1uZXh0KCl7bGV0IGU9dGhpc1t0bXRdLHQ9dGhpc1tzbXRdLGE9dGhpc1thbXRdO2lmKCF0aGlzW19wXSlyZXR1cm57ZG9uZTohMCx2YWx1ZTphfTtsZXQgcj10aGlzW19wXTtyZXR1cm4gdD09PTE/dGhpc1tfcF09ZS5fbm9kZShyKS5wcmV2aW91c1NpYmxpbmc6dD09PTI/dGhpc1tfcF09ZS5fbm9kZShyKS5uZXh0U2libGluZzp0PT09Mz90aGlzW19wXT1lLl9ub2RlKHIpLnBhcmVudDp0PT09ND90aGlzW19wXT1lLnByZWNlZGluZyhyLHtyb290OmF9KTp0aGlzW19wXT1lLmZvbGxvd2luZyhyLHtyb290OmF9KSx7ZG9uZTohMSx2YWx1ZTpyfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4MS5wcm90b3R5cGUsU3ltYm9sLml0ZXJhdG9yLHt2YWx1ZTppKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LCJ2YWx1ZSIpLHdyaXRhYmxlOiExfSkseDEuUFJFVj0xLHgxLk5FWFQ9Mix4MS5QQVJFTlQ9Myx4MS5QUkVDRURJTkc9NCx4MS5GT0xMT1dJTkc9NSxPYmplY3QuZnJlZXplKHgxKSxPYmplY3QuZnJlZXplKHgxLnByb3RvdHlwZSksaW10LmV4cG9ydHM9eDF9KTt2YXIgbm10PXBsKChQVXMsb210KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWUVhPVFmdCgpLE1wPWVtdCgpLF9jPXJtdCgpO2Z1bmN0aW9uIGJoZSgpe3JldHVybiEwfWkoYmhlLCJyZXR1cm5UcnVlIik7ZnVuY3Rpb24gaDkocyxlKXtyZXR1cm4gc1tzLmxlbmd0aC0xLWVdfWkoaDksInJldmVyc2VBcnJheUluZGV4Iik7dmFyIFBhZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTeW1ib2xUcmVlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zeW1ib2w9U3ltYm9sKGV8fCJTeW1ib2xUcmVlIGRhdGEiKX1pbml0aWFsaXplKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLGV9X25vZGUoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZVt0aGlzLnN5bWJvbF07cmV0dXJuIHR8fChlW3RoaXMuc3ltYm9sXT1uZXcgWUVhKX1oYXNDaGlsZHJlbihlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5oYXNDaGlsZHJlbn1maXJzdENoaWxkKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmZpcnN0Q2hpbGR9bGFzdENoaWxkKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmxhc3RDaGlsZH1wcmV2aW91c1NpYmxpbmcoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nfW5leHRTaWJsaW5nKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLm5leHRTaWJsaW5nfXBhcmVudChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5wYXJlbnR9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl7bGV0IHQsYT1lO2Zvcig7dD10aGlzLl9ub2RlKGEpLmxhc3RDaGlsZDspYT10O3JldHVybiBhfXByZWNlZGluZyhlLHQpe2xldCBhPXQmJnQucm9vdDtpZihlPT09YSlyZXR1cm4gbnVsbDtsZXQgcj10aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZztyZXR1cm4gcj90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHIpOnRoaXMuX25vZGUoZSkucGFyZW50fWZvbGxvd2luZyhlLHQpe2xldCBhPXQmJnQucm9vdCxuPSEodCYmdC5za2lwQ2hpbGRyZW4pJiZ0aGlzLl9ub2RlKGUpLmZpcnN0Q2hpbGQ7aWYobilyZXR1cm4gbjtsZXQgbz1lO2Rve2lmKG89PT1hKXJldHVybiBudWxsO2xldCBsPXRoaXMuX25vZGUobykubmV4dFNpYmxpbmc7aWYobClyZXR1cm4gbDtvPXRoaXMuX25vZGUobykucGFyZW50fXdoaWxlKG8pO3JldHVybiBudWxsfWNoaWxkcmVuVG9BcnJheShlLHQpe2xldCBhPXQmJnQuYXJyYXl8fFtdLHI9dCYmdC5maWx0ZXJ8fGJoZSxuPXQmJnQudGhpc0FyZ3x8dm9pZCAwLG89dGhpcy5fbm9kZShlKSxsPW8uZmlyc3RDaGlsZCxwPTA7Zm9yKDtsOyl7bGV0IGQ9dGhpcy5fbm9kZShsKTtkLnNldENhY2hlZEluZGV4KG8scCksci5jYWxsKG4sbCkmJmEucHVzaChsKSxsPWQubmV4dFNpYmxpbmcsKytwfXJldHVybiBhfWFuY2VzdG9yc1RvQXJyYXkoZSx0KXtsZXQgYT10JiZ0LmFycmF5fHxbXSxyPXQmJnQuZmlsdGVyfHxiaGUsbj10JiZ0LnRoaXNBcmd8fHZvaWQgMCxvPWU7Zm9yKDtvOylyLmNhbGwobixvKSYmYS5wdXNoKG8pLG89dGhpcy5fbm9kZShvKS5wYXJlbnQ7cmV0dXJuIGF9dHJlZVRvQXJyYXkoZSx0KXtsZXQgYT10JiZ0LmFycmF5fHxbXSxyPXQmJnQuZmlsdGVyfHxiaGUsbj10JiZ0LnRoaXNBcmd8fHZvaWQgMCxvPWU7Zm9yKDtvOylyLmNhbGwobixvKSYmYS5wdXNoKG8pLG89dGhpcy5mb2xsb3dpbmcobyx7cm9vdDplfSk7cmV0dXJuIGF9Y2hpbGRyZW5JdGVyYXRvcihlLHQpe2xldCBhPXQmJnQucmV2ZXJzZSxyPXRoaXMuX25vZGUoZSk7cmV0dXJuIG5ldyBfYyh0aGlzLGUsYT9yLmxhc3RDaGlsZDpyLmZpcnN0Q2hpbGQsYT9fYy5QUkVWOl9jLk5FWFQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gbmV3IF9jKHRoaXMsZSx0aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZyxfYy5QUkVWKX1uZXh0U2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gbmV3IF9jKHRoaXMsZSx0aGlzLl9ub2RlKGUpLm5leHRTaWJsaW5nLF9jLk5FWFQpfWFuY2VzdG9yc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgX2ModGhpcyxlLGUsX2MuUEFSRU5UKX10cmVlSXRlcmF0b3IoZSx0KXtsZXQgYT10JiZ0LnJldmVyc2U7cmV0dXJuIG5ldyBfYyh0aGlzLGUsYT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpOmUsYT9fYy5QUkVDRURJTkc6X2MuRk9MTE9XSU5HKX1pbmRleChlKXtsZXQgdD10aGlzLl9ub2RlKGUpLGE9dGhpcy5fbm9kZSh0LnBhcmVudCk7aWYoIWEpcmV0dXJuLTE7bGV0IHI9dC5nZXRDYWNoZWRJbmRleChhKTtpZihyPj0wKXJldHVybiByO3I9MDtsZXQgbj1hLmZpcnN0Q2hpbGQ7aWYoYS5jaGlsZEluZGV4Q2FjaGVkVXBUbyl7bGV0IG89dGhpcy5fbm9kZShhLmNoaWxkSW5kZXhDYWNoZWRVcFRvKTtuPW8ubmV4dFNpYmxpbmcscj1vLmdldENhY2hlZEluZGV4KGEpKzF9Zm9yKDtuOyl7bGV0IG89dGhpcy5fbm9kZShuKTtpZihvLnNldENhY2hlZEluZGV4KGEsciksbj09PWUpYnJlYWs7KytyLG49by5uZXh0U2libGluZ31yZXR1cm4gYS5jaGlsZEluZGV4Q2FjaGVkVXBUbz1lLHJ9Y2hpbGRyZW5Db3VudChlKXtsZXQgdD10aGlzLl9ub2RlKGUpO3JldHVybiB0Lmxhc3RDaGlsZD90aGlzLmluZGV4KHQubGFzdENoaWxkKSsxOjB9Y29tcGFyZVRyZWVQb3NpdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiAwO2xldCBhPVtdO3tsZXQgdT1lO2Zvcig7dTspe2lmKHU9PT10KXJldHVybiBNcC5DT05UQUlOU3xNcC5QUkVDRURJTkc7YS5wdXNoKHUpLHU9dGhpcy5wYXJlbnQodSl9fWxldCByPVtdO3tsZXQgdT10O2Zvcig7dTspe2lmKHU9PT1lKXJldHVybiBNcC5DT05UQUlORURfQll8TXAuRk9MTE9XSU5HO3IucHVzaCh1KSx1PXRoaXMucGFyZW50KHUpfX1sZXQgbj1oOShhLDApO2lmKCFufHxuIT09aDkociwwKSlyZXR1cm4gTXAuRElTQ09OTkVDVEVEO2xldCBvPTAsbD1NYXRoLm1pbihhLmxlbmd0aCxyLmxlbmd0aCk7Zm9yKGxldCB1PTA7dTxsOysrdSl7bGV0IGM9aDkoYSx1KSxiPWg5KHIsdSk7aWYoYyE9PWIpYnJlYWs7bz11fWxldCBwPXRoaXMuaW5kZXgoaDkoYSxvKzEpKTtyZXR1cm4gdGhpcy5pbmRleChoOShyLG8rMSkpPHA/TXAuUFJFQ0VESU5HOk1wLkZPTExPV0lOR31yZW1vdmUoZSl7bGV0IHQ9dGhpcy5fbm9kZShlKSxhPXRoaXMuX25vZGUodC5wYXJlbnQpLHI9dGhpcy5fbm9kZSh0LnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHQubmV4dFNpYmxpbmcpO3JldHVybiBhJiYoYS5maXJzdENoaWxkPT09ZSYmKGEuZmlyc3RDaGlsZD10Lm5leHRTaWJsaW5nKSxhLmxhc3RDaGlsZD09PWUmJihhLmxhc3RDaGlsZD10LnByZXZpb3VzU2libGluZykpLHImJihyLm5leHRTaWJsaW5nPXQubmV4dFNpYmxpbmcpLG4mJihuLnByZXZpb3VzU2libGluZz10LnByZXZpb3VzU2libGluZyksdC5wYXJlbnQ9bnVsbCx0LnByZXZpb3VzU2libGluZz1udWxsLHQubmV4dFNpYmxpbmc9bnVsbCx0LmNhY2hlZEluZGV4PS0xLHQuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTixhJiZhLmNoaWxkcmVuQ2hhbmdlZCgpLGV9aW5zZXJ0QmVmb3JlKGUsdCl7bGV0IGE9dGhpcy5fbm9kZShlKSxyPXRoaXMuX25vZGUoYS5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZSh0KSxvPXRoaXMuX25vZGUoYS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1hLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1hLnByZXZpb3VzU2libGluZyxuLm5leHRTaWJsaW5nPWUsYS5wcmV2aW91c1NpYmxpbmc9dCxyJiYoci5uZXh0U2libGluZz10KSxvJiZvLmZpcnN0Q2hpbGQ9PT1lJiYoby5maXJzdENoaWxkPXQpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCksdH1pbnNlcnRBZnRlcihlLHQpe2xldCBhPXRoaXMuX25vZGUoZSkscj10aGlzLl9ub2RlKGEubmV4dFNpYmxpbmcpLG49dGhpcy5fbm9kZSh0KSxvPXRoaXMuX25vZGUoYS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1hLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1lLG4ubmV4dFNpYmxpbmc9YS5uZXh0U2libGluZyxhLm5leHRTaWJsaW5nPXQsciYmKHIucHJldmlvdXNTaWJsaW5nPXQpLG8mJm8ubGFzdENoaWxkPT09ZSYmKG8ubGFzdENoaWxkPXQpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCksdH1wcmVwZW5kQ2hpbGQoZSx0KXtsZXQgYT10aGlzLl9ub2RlKGUpLHI9dGhpcy5fbm9kZSh0KTtpZihyLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gYS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEJlZm9yZShhLmZpcnN0Q2hpbGQsdCk6KHIucGFyZW50PWUsYS5maXJzdENoaWxkPXQsYS5sYXN0Q2hpbGQ9dCxhLmNoaWxkcmVuQ2hhbmdlZCgpKSx0fWFwcGVuZENoaWxkKGUsdCl7bGV0IGE9dGhpcy5fbm9kZShlKSxyPXRoaXMuX25vZGUodCk7aWYoci5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGEuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRBZnRlcihhLmxhc3RDaGlsZCx0KTooci5wYXJlbnQ9ZSxhLmZpcnN0Q2hpbGQ9dCxhLmxhc3RDaGlsZD10LGEuY2hpbGRyZW5DaGFuZ2VkKCkpLHR9fTtvbXQuZXhwb3J0cz1QYWUsUGFlLlRyZWVQb3NpdGlvbj1NcH0pO3ZhciBJYWUsTWM9ZygoKT0+e2QwKCk7S2R0KCk7aW8oKTtaMigpO1pmdCgpO0lhZT14bihubXQoKSwxKX0pO3ZhciB2aGUsbG10PWcoKCk9PntNYygpO3ZoZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBc3luY0V4ZWN1dGlvblN0YWNrIil9ZXhlY3V0aW9uU2xvdHM9W107aXNQcm9jZXNzaW5nPSExO25vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5PTEvMDtub25FeGNsdXNpdmVDdXJyZW50Q291bnQ9MDtub25FeGNsdXNpdmVQZW5kaW5nUXVldWU9W107YXN5bmMgZ2V0RXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLHQpe2xldCBhPW10LmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmEsdGltZW91dDp0LG1vZGU6ImV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxhLnByb21pc2V9YXN5bmMgZ2V0Tm9uRXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLHQpe2xldCBhPW10LmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmEsdGltZW91dDp0LG1vZGU6Im5vbmV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxhLnByb21pc2V9c2V0Tm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3koZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTwxKXRocm93IG5ldyBFcnJvcigibm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3kgbXVzdCBiZSBhIGZpbml0ZSBudW1iZXIgPj0gMSIpO3RoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9ZX1nZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5fWdldEFjdGl2ZU5vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50fWdldFBlbmRpbmdOb25FeGNsdXNpdmVDb3VudCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5sZW5ndGh9YXN5bmMgcHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCl7aWYoIXRoaXMuaXNQcm9jZXNzaW5nKXtmb3IodGhpcy5pc1Byb2Nlc3Npbmc9ITA7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MDspe2xldCBlPXRoaXMuZXhlY3V0aW9uU2xvdHNbMF07aWYoZS5tb2RlPT09ImV4Y2x1c2l2ZSIpYXdhaXQgdGhpcy5leGVjdXRlRXhjbHVzaXZlU2xvdChlKSx0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCk7ZWxzZXtsZXQgdD1bXTtmb3IoO3RoaXMuZXhlY3V0aW9uU2xvdHMubGVuZ3RoPjAmJnRoaXMuZXhlY3V0aW9uU2xvdHNbMF0ubW9kZT09PSJub25leGNsdXNpdmUiOyl0LnB1c2godGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpKTthd2FpdCB0aGlzLmV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyh0KX19dGhpcy5pc1Byb2Nlc3Npbmc9ITF9fWFzeW5jIGV4ZWN1dGVFeGNsdXNpdmVTbG90KGUpe3RyeXtpZihlLnRpbWVvdXQpe2xldCB0PW5ldyBYdC5UaW1lb3V0KGUudGltZW91dCk7dHJ5e2xldCBhPWF3YWl0IFByb21pc2UucmFjZShbZS5mdW5jVG9FeGVjdXRlKCksdC5wcm9taXNlLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTt0LmNhbmNlbCgpLGUuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX1jYXRjaChhKXt0aHJvdyB0LmNhbmNlbCgpLGF9fWVsc2V7bGV0IHQ9YXdhaXQgZS5mdW5jVG9FeGVjdXRlKCk7ZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHQpfX1jYXRjaCh0KXtlLmV4ZWN1dGlvbkRlZmVycmVkLnJlamVjdCh0KX19YXN5bmMgZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKGUpe2xldCB0PWUubWFwKGFzeW5jIGE9Pnthd2FpdCB0aGlzLndhaXRGb3JOb25FeGNsdXNpdmVTbG90KCk7dHJ5e2lmKGEudGltZW91dCl7bGV0IHI9bmV3IFh0LlRpbWVvdXQoYS50aW1lb3V0KTt0cnl7bGV0IG49YXdhaXQgUHJvbWlzZS5yYWNlKFthLmZ1bmNUb0V4ZWN1dGUoKSxyLnByb21pc2UudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO3IuY2FuY2VsKCksYS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKG4pfWNhdGNoKG4pe3Rocm93IHIuY2FuY2VsKCksbn19ZWxzZXtsZXQgcj1hd2FpdCBhLmZ1bmNUb0V4ZWN1dGUoKTthLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe2EuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfWZpbmFsbHl7dGhpcy5yZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpfX0pO2F3YWl0IFByb21pc2UuYWxsKHQpfXdhaXRGb3JOb25FeGNsdXNpdmVTbG90KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50PHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k/KHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50KyssUHJvbWlzZS5yZXNvbHZlKCkpOm5ldyBQcm9taXNlKGU9Pnt0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5wdXNoKCgpPT57dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxlKCl9KX0pfXJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl7dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQtLTtsZXQgZT10aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5zaGlmdCgpO2UmJmUoKX19fSk7dmFyIHhoZSxjbXQ9ZygoKT0+e01jKCk7eGhlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJhY2twcmVzc3VyZWRBcnJheSIpfWRhdGE7aGlnaFdhdGVyTWFyaztoYXNTcGFjZT1uZXcgbHMucnhqcy5TdWJqZWN0O2l0ZW1zQXZhaWxhYmxlPW5ldyBscy5yeGpzLlN1YmplY3Q7aXNEZXN0cm95ZWQ9ITE7Y29uc3RydWN0b3IoZT0xNil7dGhpcy5kYXRhPVtdLHRoaXMuaGlnaFdhdGVyTWFyaz1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aH1wdXNoKGUpe3RoaXMuZGF0YS5wdXNoKGUpLHRoaXMuaXRlbXNBdmFpbGFibGUubmV4dCgiaXRlbXNBdmFpbGFibGUiKTtsZXQgdD10aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKTtyZXR1cm4gdCYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLHR9cHVzaE1hbnkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5wdXNoKHQpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKX1zaGlmdCgpe2xldCBlPXRoaXMuZGF0YS5zaGlmdCgpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLGV9cGVlaygpe3JldHVybiB0aGlzLmRhdGFbMF19Y2hlY2tTcGFjZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPHRoaXMuaGlnaFdhdGVyTWFya31jaGVja0hhc0l0ZW1zKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg+MH13YWl0Rm9yU3BhY2UoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2lmKHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfHx0aGlzLmlzRGVzdHJveWVkKWUoKTtlbHNle2xldCB0PXRoaXMuaGFzU3BhY2Uuc3Vic2NyaWJlKHtuZXh0OmkoKCk9Pnt0LnVuc3Vic2NyaWJlKCksZSgpfSwibmV4dCIpLGNvbXBsZXRlOmkoKCk9PntlKCl9LCJjb21wbGV0ZSIpfSl9fSl9d2FpdEZvckl0ZW1zKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntpZih0aGlzLmRhdGEubGVuZ3RoPjB8fHRoaXMuaXNEZXN0cm95ZWQpZSgpO2Vsc2V7bGV0IHQ9dGhpcy5pdGVtc0F2YWlsYWJsZS5zdWJzY3JpYmUoe25leHQ6aSgoKT0+e3QudW5zdWJzY3JpYmUoKSxlKCl9LCJuZXh0IiksY29tcGxldGU6aSgoKT0+e2UoKX0sImNvbXBsZXRlIil9KX19KX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLmRhdGFbU3ltYm9sLml0ZXJhdG9yXSgpfWRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWVkPSEwLHRoaXMuaGFzU3BhY2UuY29tcGxldGUoKSx0aGlzLml0ZW1zQXZhaWxhYmxlLmNvbXBsZXRlKCl9fX0pO3ZhciByMyxBYWU9ZygoKT0+e01jKCk7cjM9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJGYXN0TWFwIil9bWFwT2JqZWN0PW5ldyBNYXA7aXNVbmlxdWVLZXkoZSl7cmV0dXJuIXRoaXMubWFwT2JqZWN0LmhhcyhlKX1oYXMoZSl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmhhcyhlKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLm1hcE9iamVjdC5zaXplfWFkZFRvTWFwKGUsdCxhKXtyZXR1cm4gdGhpcy5pc1VuaXF1ZUtleShlKXx8YSYmYS5mb3JjZT8odGhpcy5tYXBPYmplY3Quc2V0KGUsdCksITApOiExfWdldEJ5S2V5KGUpe3JldHVybiB0aGlzLm1hcE9iamVjdC5nZXQoZSl9cmVtb3ZlRnJvbU1hcChlKXtsZXQgdD10aGlzLm1hcE9iamVjdC5nZXQoZSk7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmRlbGV0ZShlKSx0fWdldEtleXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1hcE9iamVjdC5rZXlzKCkpfXZhbHVlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwT2JqZWN0LnZhbHVlcygpKX1lbnRyaWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5tYXBPYmplY3QuZW50cmllcygpKX1jbGVhbigpe3RoaXMubWFwT2JqZWN0LmNsZWFyKCl9Y29uY2F0KGUpe2xldCB0PW5ldyBzO2ZvcihsZXQgYSBvZiB0aGlzLmdldEtleXMoKSl0LmFkZFRvTWFwKGEsdGhpcy5nZXRCeUtleShhKSk7Zm9yKGxldCBhIG9mIGUuZ2V0S2V5cygpKXQuYWRkVG9NYXAoYSxlLmdldEJ5S2V5KGEpLHtmb3JjZTohMH0pO3JldHVybiB0fWFkZEFsbEZyb21PdGhlcihlKXtmb3IobGV0IHQgb2YgZS5nZXRLZXlzKCkpdGhpcy5hZGRUb01hcCh0LGUuZ2V0QnlLZXkodCkse2ZvcmNlOiEwfSl9YXN5bmMgZmluZChlKXtmb3IobGV0IHQgb2YgdGhpcy5nZXRLZXlzKCkpe2xldCBhPXRoaXMuZ2V0QnlLZXkodCk7aWYoYXdhaXQgZShhKSlyZXR1cm4gYX19W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5tYXBPYmplY3QuZW50cmllcygpfX19KTt2YXIgZG10LGIwLEt5PWcoKCk9PntNYygpO0FhZSgpO2RtdD1pKChzPSJ1bmkiKT0+YCR7c314eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLGU9PntsZXQgdD1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKGU9PT0ieCI/dDp0JjN8OCkudG9TdHJpbmcoMTYpfSksInVuaSIpLGIwPWNsYXNzIHN7c3RhdGlje2kodGhpcywiT2JqZWN0TWFwIil9ZmFzdE1hcD1uZXcgcjM7cmV2ZXJzZU1hcD1uZXcgTWFwO2V2ZW50U3ViamVjdD1uZXcgbHMucnhqcy5TdWJqZWN0O2NvbnN0cnVjdG9yKCl7fWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLnNpemV9YWRkTWFwcGVkVW5pcXVlKGUsdCl7dGhpcy5mYXN0TWFwLmFkZFRvTWFwKGUsdCksdGhpcy5yZXZlcnNlTWFwLnNldCh0LGUpfWdldE1hcHBlZFVuaXF1ZShlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGUpfXJlbW92ZU1hcHBlZFVuaXF1ZShlKXtsZXQgdD10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChlKTtyZXR1cm4gdCE9PXZvaWQgMCYmKHRoaXMucmV2ZXJzZU1hcC5kZWxldGUodCksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6dH0pKSx0fWFkZChlKXtsZXQgdD10aGlzLnJldmVyc2VNYXAuZ2V0KGUpO2lmKHQhPT12b2lkIDApcmV0dXJuIHQ7bGV0IGE9ZG10KCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUoYSxlKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDplfSksYX1hZGRBcnJheShlKXtmb3IobGV0IHQgb2YgZSl0aGlzLmFkZCh0KX1jaGVja0Zvck9iamVjdChlKXtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmhhcyhlKX1nZXRLZXlGb3JPYmplY3QoZSl7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5nZXQoZSk/P251bGx9YXN5bmMgZmluZChlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmZpbmQoZSl9ZmluZFN5bmMoZSl7Zm9yKGxldCB0IG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYoZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCkpKXJldHVybiB0aGlzLmdldE1hcHBlZFVuaXF1ZSh0KX1hc3luYyBmaW5kT25lQW5kUmVtb3ZlKGUpe2xldCB0PWF3YWl0IHRoaXMuZmluZChlKTtyZXR1cm4gdCYmdGhpcy5yZW1vdmUodCksdH1maW5kT25lQW5kUmVtb3ZlU3luYyhlKXtsZXQgdD10aGlzLmZpbmRTeW5jKGUpO3JldHVybiB0JiZ0aGlzLnJlbW92ZSh0KSx0fWFzeW5jIGZvckVhY2goZSl7Zm9yKGxldCB0IG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpYXdhaXQgZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCkpfWdldE9uZUFuZFJlbW92ZSgpe2xldCBlPXRoaXMuZmFzdE1hcC5nZXRLZXlzKCk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO3tsZXQgdD1lWzBdLGE9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAodCk7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5kZWxldGUoYSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6YX0pLGF9fWdldEFycmF5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC52YWx1ZXMoKX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5zaXplPT09MH1yZW1vdmUoZSl7bGV0IHQ9dGhpcy5yZXZlcnNlTWFwLmdldChlKTtpZih0IT09dm9pZCAwKXtsZXQgYT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcCh0KTtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShhKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDphfSksYX1yZXR1cm4gbnVsbH13aXBlKCl7bGV0IGU9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtmb3IobGV0IHQgb2YgZSl7bGV0IGE9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAodCk7dGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShhKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDphfSl9fWNvbmNhdChlKXtsZXQgdD1uZXcgczt0LmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHRoaXMuZmFzdE1hcCksdC5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApO2ZvcihsZXQgYSBvZiB0LmZhc3RNYXAuZ2V0S2V5cygpKXQucmV2ZXJzZU1hcC5zZXQodC5mYXN0TWFwLmdldEJ5S2V5KGEpLGEpO3JldHVybiB0fWFkZEFsbEZyb21PdGhlcihlKXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCk7Zm9yKGxldCB0IG9mIGUuZmFzdE1hcC5nZXRLZXlzKCkpdGhpcy5yZXZlcnNlTWFwLnNldChlLmZhc3RNYXAuZ2V0QnlLZXkodCksdCl9bWFwKGUpe3JldHVybiB0aGlzLmdldEFycmF5KCkubWFwKGUpfWZpbHRlcihlKXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLmZpbHRlcihlKX1yZWR1Y2UoZSx0KXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLnJlZHVjZShlLHQpfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKVtTeW1ib2wuaXRlcmF0b3JdKCl9ZGVzdHJveSgpe3RoaXMud2lwZSgpLHRoaXMucmV2ZXJzZU1hcC5jbGVhcigpLHRoaXMuZXZlbnRTdWJqZWN0LmNvbXBsZXRlKCl9fX0pO3ZhciBZeSx5aGU9ZygoKT0+e01jKCk7d2hlKCk7WXk9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJlc3QiKX1vcHRpb25zO2ludGVyZXN0TWFwUmVmO29yaWdpbmFsSW50ZXJlc3Q7Y29tcGFyaXNvbkZ1bmM7ZGVzdHJ1Y3Rpb25UaW1lcj1uZXcgaTMuVGltZXIoMWU0KTtpc0Z1bGxmaWxsZWQ9ITE7aXNEZXN0cm95ZWQ9ITE7ZnVsbGZpbGxtZW50U3RvcmU9W107bWFya0xvc3RUaW1lb3V0PW51bGw7Z2V0IGNvbXBhcmlzb25TdHJpbmcoKXtyZXR1cm4gdGhpcy5jb21wYXJpc29uRnVuYyh0aGlzLm9yaWdpbmFsSW50ZXJlc3QpfWludGVyZXN0RGVmZXJyZWQ9bmV3IG10LkRlZmVycmVkO2ludGVyZXN0RnVsbGZpbGxlZD10aGlzLmludGVyZXN0RGVmZXJyZWQucHJvbWlzZTtmdWxsZmlsbEludGVyZXN0KGUpe3RoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUoZSksdGhpcy5kZXN0cm95KCl9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy5pbnRlcmVzdE1hcFJlZj1lLHRoaXMub3JpZ2luYWxJbnRlcmVzdD10LHRoaXMuY29tcGFyaXNvbkZ1bmM9YSx0aGlzLm9wdGlvbnM9cix0aGlzLmRlc3RydWN0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9Pnt0aGlzLmlzRGVzdHJveWVkfHx0aGlzLmRlc3Ryb3koKX0pLHRoaXMub3B0aW9ucz8ubWFya0xvc3RBZnRlckRlZmF1bHQmJih0aGlzLm1hcmtMb3N0VGltZW91dD1uZXcgWHQuVGltZW91dCh0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQpLHRoaXMubWFya0xvc3RUaW1lb3V0LnByb21pc2UudGhlbigoKT0+e3RoaXMuaXNEZXN0cm95ZWR8fHRoaXMubWFya0xvc3QoKX0pKX1kZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuaXNEZXN0cm95ZWQ9ITAsdGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCksdGhpcy5tYXJrTG9zdFRpbWVvdXQmJih0aGlzLm1hcmtMb3N0VGltZW91dC5jYW5jZWwoKSx0aGlzLm1hcmtMb3N0VGltZW91dD1udWxsKSx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3RNYXBSZWYucmVtb3ZlSW50ZXJlc3QodGhpcyksIXRoaXMuaXNGdWxsZmlsbGVkJiZ0aGlzLm9wdGlvbnM/LmRlZmF1bHRGdWxsZmlsbG1lbnQmJih0aGlzLmlzRnVsbGZpbGxlZD0hMCx0aGlzLmludGVyZXN0RGVmZXJyZWQucmVzb2x2ZSh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCkpKX1tYXJrTG9zdCgpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5zdGFydCgpfXJlbmV3KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCl9fX0pO3ZhciBraGUsd2hlPWcoKCk9PntNYygpO0t5KCk7eWhlKCk7a2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVyZXN0TWFwIil9b3B0aW9ucztpbnRlcmVzdE9iamVjdE1hcD1uZXcgYjA7aW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nPW5ldyBNYXA7Y29tcGFyaXNvbkZ1bmM7Y29uc3RydWN0b3IoZSx0PXt9KXt0aGlzLmNvbXBhcmlzb25GdW5jPWUsdGhpcy5vcHRpb25zPXR9YXN5bmMgYWRkSW50ZXJlc3QoZSx0KXtsZXQgYT10aGlzLmNvbXBhcmlzb25GdW5jKGUpLHIsbj10aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5nZXQoYSk7cmV0dXJuIG4/KHI9bixyLnJlbmV3KCkpOihyPW5ldyBZeSh0aGlzLGUsdGhpcy5jb21wYXJpc29uRnVuYyx7bWFya0xvc3RBZnRlckRlZmF1bHQ6dGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0LGRlZmF1bHRGdWxsZmlsbG1lbnQ6dH0pLHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuYWRkKHIpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLnNldChhLHIpKSx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5wdXNoKHIpLHJ9aW50ZXJlc3RPYnNlcnZhYmxlPW5ldyBscy5PYnNlcnZhYmxlSW50YWtlO3JlbW92ZUludGVyZXN0KGUpe3RoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZE9uZUFuZFJlbW92ZVN5bmModD0+ZS5jb21wYXJpc29uU3RyaW5nPT09dC5jb21wYXJpc29uU3RyaW5nKSx0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5kZWxldGUoZS5jb21wYXJpc29uU3RyaW5nKX1jaGVja0ludGVyZXN0KGUpe2xldCB0PXRoaXMuY29tcGFyaXNvbkZ1bmMoZSk7cmV0dXJuIHRoaXMuY2hlY2tJbnRlcmVzdEJ5U3RyaW5nKHQpfWNoZWNrSW50ZXJlc3RCeVN0cmluZyhlKXtyZXR1cm4gdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuaGFzKGUpfWluZm9ybUxvc3RJbnRlcmVzdChlKXtsZXQgdD10aGlzLmZpbmRJbnRlcmVzdChlKTt0JiZ0Lm1hcmtMb3N0KCl9ZmluZEludGVyZXN0KGUpe2xldCB0PXRoaXMuY29tcGFyaXNvbkZ1bmMoZSk7cmV0dXJuIHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmdldCh0KT8/bnVsbH1kZXN0cm95KCl7bGV0IGU9dGhpcy5pbnRlcmVzdE9iamVjdE1hcC5nZXRBcnJheSgpO2ZvcihsZXQgdCBvZiBlKXQuZGVzdHJveSgpO3RoaXMuaW50ZXJlc3RPYmplY3RNYXAud2lwZSgpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmNsZWFyKCksdGhpcy5pbnRlcmVzdE9ic2VydmFibGUuc2lnbmFsQ29tcGxldGUoKX19fSk7dmFyIFNoZSx1bXQ9ZygoKT0+e01jKCk7U2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbWl0ZWRBcnJheSIpfWFycmF5PVtdO2FycmF5TGltaXQ7Y29uc3RydWN0b3IoZSl7dGhpcy5hcnJheUxpbWl0PWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmFycmF5Lmxlbmd0aH1hZGRPbmUoZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9YWRkTWFueShlKXtmb3IobGV0IHQgb2YgZSl0aGlzLmFkZE9uZSh0KX1zZXRMaW1pdChlKXt0aGlzLmFycmF5TGltaXQ9ZSx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWdldEF2ZXJhZ2UoKXtpZih0aGlzLmFycmF5Lmxlbmd0aD09PTApcmV0dXJuIDA7aWYodHlwZW9mIHRoaXMuYXJyYXlbMF09PSJudW1iZXIiKXtsZXQgZT0wO2ZvcihsZXQgdCBvZiB0aGlzLmFycmF5KWU9ZSt0O3JldHVybiBlL3RoaXMuYXJyYXkubGVuZ3RofWVsc2UgcmV0dXJuIG51bGx9cmVtb3ZlKGUpe2xldCB0PXRoaXMuYXJyYXkuaW5kZXhPZihlKTtyZXR1cm4gdCE9PS0xPyh0aGlzLmFycmF5LnNwbGljZSh0LDEpLCEwKTohMX1jbGVhcigpe3RoaXMuYXJyYXkubGVuZ3RoPTB9Z2V0QXJyYXkoKXtyZXR1cm5bLi4udGhpcy5hcnJheV19W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5hcnJheVtTeW1ib2wuaXRlcmF0b3JdKCl9fX0pO3ZhciBfaGUscG10PWcoKCk9PntNYygpO0t5KCk7X2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxvb3BUcmFja2VyIil9cmVmZXJlbmNlT2JqZWN0TWFwPW5ldyBiMDtjb25zdHJ1Y3Rvcigpe31jaGVja0FuZFRyYWNrKGUpe3JldHVybiB0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5jaGVja0Zvck9iamVjdChlKT8hMToodGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuYWRkKGUpLCEwKX1yZXNldCgpe3RoaXMucmVmZXJlbmNlT2JqZWN0TWFwLndpcGUoKX1kZXN0cm95KCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuZGVzdHJveSgpfX19KTt2YXIgWnksTWhlPWcoKCk9PntNYygpO1p5PWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0cmluZ21hcCIpfV9zdHJpbmdBcnJheT1bXTtfdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W107Y29uc3RydWN0b3IoKXt9YWRkU3RyaW5nKGUpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2goZSksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5hZGRTdHJpbmcodCl9cmVtb3ZlU3RyaW5nKGUpe3RoaXMuX3N0cmluZ0FycmF5PXRoaXMuX3N0cmluZ0FycmF5LmZpbHRlcih0PT50IT09ZSksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9d2lwZSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMubm90aWZ5VHJpZ2dlcigpfWNoZWNrU3RyaW5nKGUpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5pbmRleE9mKGUpIT09LTF9Y2hlY2tNaW5pbWF0Y2goZSl7bGV0IHQ9bmV3IHl5LlNtYXJ0TWF0Y2goZSksYT0hMTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5tYXRjaChyKSYmKGE9ITApO3JldHVybiBhfWNoZWNrSXNFbXB0eSgpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5sZW5ndGg9PT0wfWdldFN0cmluZ0FycmF5KCl7bGV0IGU9W107Zm9yKGxldCB0IG9mIHRoaXMuX3N0cmluZ0FycmF5KWUucHVzaCh0KTtyZXR1cm4gZX1yZWdpc3RlclVudGlsVHJ1ZShlLHQpe2xldCBhPW10LmRlZmVyKCk7cmV0dXJuIHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LnB1c2goKCk9PntsZXQgcj1lKHRoaXMuZ2V0U3RyaW5nQXJyYXkoKSk7cmV0dXJuIHI9PT0hMCYmKHQmJnQoKSxhLnJlc29sdmUoKSkscn0pLHRoaXMubm90aWZ5VHJpZ2dlcigpLGEucHJvbWlzZX1ub3RpZnlUcmlnZ2VyKCl7bGV0IGU9dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkuZmlsdGVyKHQ9PiF0KCkpO3RoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PWV9ZGVzdHJveSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdfX19KTt2YXIgWHksemhlPWcoKCk9PntNYygpO1h5PWNsYXNze3N0YXRpY3tpKHRoaXMsIlRpbWVkQWdncmVndG9yIil9b3B0aW9ucztzdG9yYWdlQXJyYXk9W107aXNTdG9wcGVkPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz1lfWFnZ3JlZ2F0aW9uVGltZXI7Y2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpe2lmKHRoaXMuaXNTdG9wcGVkKXJldHVybjtsZXQgZT1pKCgpPT57dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW5ldyBpMy5UaW1lcih0aGlzLm9wdGlvbnMuYWdncmVnYXRpb25JbnRlcnZhbEluTWlsbGlzKSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9PntpZih0aGlzLmlzU3RvcHBlZCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufWxldCB0PXRoaXMuc3RvcmFnZUFycmF5O2lmKHQubGVuZ3RoPT09MCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufXRoaXMuc3RvcmFnZUFycmF5PVtdLGUoKSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbih0KX0pLHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpfSwiYWRkQWdncmVnYXRpb25UaW1lciIpO3RoaXMuYWdncmVnYXRpb25UaW1lcnx8ZSgpfWFkZChlKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuc3RvcmFnZUFycmF5LnB1c2goZSksdGhpcy5jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCkpfXN0b3AoZT0hMSl7aWYodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5hZ2dyZWdhdGlvblRpbWVyJiYodGhpcy5hZ2dyZWdhdGlvblRpbWVyLnJlc2V0KCksdGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGwpLGUmJnRoaXMuc3RvcmFnZUFycmF5Lmxlbmd0aD4wKXtsZXQgdD10aGlzLnN0b3JhZ2VBcnJheTt0aGlzLnN0b3JhZ2VBcnJheT1bXSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbih0KX1lbHNlIHRoaXMuc3RvcmFnZUFycmF5PVtdfXJlc3RhcnQoKXt0aGlzLmlzU3RvcHBlZD0hMX19fSk7dmFyIENoZSxobXQ9ZygoKT0+e01jKCk7Q2hlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRyZWUiKX1zeW1ib2xUcmVlO2NvbnN0cnVjdG9yKCl7dGhpcy5zeW1ib2xUcmVlPW5ldyBJYWUuZGVmYXVsdH1pbml0aWFsaXplKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5pdGlhbGl6ZShlKX1oYXNDaGlsZHJlbihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmhhc0NoaWxkcmVuKGUpfWZpcnN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5maXJzdENoaWxkKGUpfWxhc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RDaGlsZChlKX1wcmV2aW91c1NpYmxpbmcoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmcoZSl9bmV4dFNpYmxpbmcoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZyhlKX1wYXJlbnQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wYXJlbnQoZSl9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKX1wcmVjZWRpbmcoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZWNlZGluZyhlLHQpfWZvbGxvd2luZyhlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZm9sbG93aW5nKGUsdCl9Y2hpbGRyZW5Ub0FycmF5KGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlblRvQXJyYXkoZSx0KX1hbmNlc3RvcnNUb0FycmF5KGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNUb0FycmF5KGUsdCl9dHJlZVRvQXJyYXkoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVUb0FycmF5KGUsdCl9Y2hpbGRyZW5JdGVyYXRvcihlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5JdGVyYXRvcihlLHQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZ3NJdGVyYXRvcihlKX1uZXh0U2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpfWFuY2VzdG9yc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYW5jZXN0b3JzSXRlcmF0b3IoZSl9dHJlZUl0ZXJhdG9yKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlSXRlcmF0b3IoZSx0KX1pbmRleChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluZGV4KGUpfWNoaWxkcmVuQ291bnQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkNvdW50KGUpfWNvbXBhcmVUcmVlUG9zaXRpb24oZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNvbXBhcmVUcmVlUG9zaXRpb24oZSx0KX1yZW1vdmUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5yZW1vdmUoZSl9aW5zZXJ0QmVmb3JlKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRCZWZvcmUoZSx0KX1pbnNlcnRBZnRlcihlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QWZ0ZXIoZSx0KX1wcmVwZW5kQ2hpbGQoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXBlbmRDaGlsZChlLHQpfWFwcGVuZENoaWxkKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hcHBlbmRDaGlsZChlLHQpfXRvSnNvbldpdGhIaWVyYWNoeShlKXtsZXQgdD1pKGE9PntsZXQgcj1bXTtpZih0aGlzLmhhc0NoaWxkcmVuKGEpKXtsZXQgbj10aGlzLmNoaWxkcmVuVG9BcnJheShhLHt9KTtmb3IobGV0IG8gb2YgbilyLnB1c2godChvKSl9cmV0dXJue2RhdGE6YSxjaGlsZHJlbjpyfX0sImJ1aWxkTm9kZSIpO3JldHVybiB0KGUpfWZyb21Kc29uV2l0aEhpZXJhY2h5KGUsdCl7bGV0IGE9aSgocixuKT0+e2xldCBvPXQ/dChyLmRhdGEpOnIuZGF0YTt0aGlzLmluaXRpYWxpemUobyksbiYmdGhpcy5hcHBlbmRDaGlsZChuLG8pO2ZvcihsZXQgbCBvZiByLmNoaWxkcmVuKWEobCxvKTtyZXR1cm4gb30sImJ1aWxkVHJlZSIpO3JldHVybiBhKGUpfX19KTt2YXIgRnM9e307eXQoRnMse0FzeW5jRXhlY3V0aW9uU3RhY2s6KCk9PnZoZSxCYWNrcHJlc3N1cmVkQXJyYXk6KCk9PnhoZSxGYXN0TWFwOigpPT5yMyxJbnRlcmVzdDooKT0+WXksSW50ZXJlc3RNYXA6KCk9PmtoZSxMaW1pdGVkQXJyYXk6KCk9PlNoZSxMb29wVHJhY2tlcjooKT0+X2hlLE9iamVjdE1hcDooKT0+YjAsU3RyaW5nbWFwOigpPT5aeSxUaW1lZEFnZ3JlZ2F0b3I6KCk9Plh5LFRpbWVkQWdncmVndG9yOigpPT5YeSxUcmVlOigpPT5DaGUsdW5pOigpPT5kbXR9KTt2YXIgdTk9ZygoKT0+e2xtdCgpO2NtdCgpO0FhZSgpO3doZSgpO3loZSgpO3VtdCgpO3BtdCgpO0t5KCk7TWhlKCk7emhlKCk7emhlKCk7aG10KCl9KTt2YXIgVHA9e307eXQoVHAse2FyZVVpbnQ4QXJyYXlzRXF1YWw6KCk9PnNQYSxhc3NlcnRVaW50OEFycmF5OigpPT5DcCxhc3NlcnRVaW50OEFycmF5T3JBcnJheUJ1ZmZlcjooKT0+dm10LGJhc2U2NFRvU3RyaW5nOigpPT5jUGEsYmFzZTY0VG9VaW50OEFycmF5OigpPT5rbXQsY29tcGFyZVVpbnQ4QXJyYXlzOigpPT5pUGEsY29uY2F0VWludDhBcnJheXM6KCk9PmFQYSxnZXRVaW50QkU6KCk9PmhQYSxoZXhUb1VpbnQ4QXJyYXk6KCk9PnBQYSxpbmNsdWRlczooKT0+ZlBhLGluZGV4T2Y6KCk9PlNtdCxpc1VpbnQ4QXJyYXk6KCk9PlRoZSxzdHJpbmdUb0Jhc2U2NDooKT0+bFBhLHN0cmluZ1RvVWludDhBcnJheTooKT0+eW10LHRvVWludDhBcnJheTooKT0+dFBhLHVpbnQ4QXJyYXlUb0Jhc2U2NDooKT0+d210LHVpbnQ4QXJyYXlUb0hleDooKT0+dVBhLHVpbnQ4QXJyYXlUb1N0cmluZzooKT0+eG10fSk7ZnVuY3Rpb24gZm10KHMsZSx0KXtyZXR1cm4gcz9zLmNvbnN0cnVjdG9yPT09ZT8hMDpaRWEuY2FsbChzKT09PXQ6ITF9ZnVuY3Rpb24gVGhlKHMpe3JldHVybiBmbXQocyxVaW50OEFycmF5LFhFYSl9ZnVuY3Rpb24gSkVhKHMpe3JldHVybiBmbXQocyxBcnJheUJ1ZmZlcixRRWEpfWZ1bmN0aW9uIGVQYShzKXtyZXR1cm4gVGhlKHMpfHxKRWEocyl9ZnVuY3Rpb24gQ3Aocyl7aWYoIVRoZShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCwgZ290IFxgJHt0eXBlb2Ygc31cYGApfWZ1bmN0aW9uIHZtdChzKXtpZighZVBhKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgVWludDhBcnJheVxgIG9yIFxgQXJyYXlCdWZmZXJcYCwgZ290IFxgJHt0eXBlb2Ygc31cYGApfWZ1bmN0aW9uIHRQYShzKXtpZihzIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIG5ldyBVaW50OEFycmF5KHMpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhzKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocy5idWZmZXIscy5ieXRlT2Zmc2V0LHMuYnl0ZUxlbmd0aCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUsIGdvdCBcYCR7dHlwZW9mIHN9XGAuYCl9ZnVuY3Rpb24gYVBhKHMsZSl7aWYocy5sZW5ndGg9PT0wKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtlPz89cy5yZWR1Y2UoKHIsbik9PnIrbi5sZW5ndGgsMCk7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoZSksYT0wO2ZvcihsZXQgciBvZiBzKUNwKHIpLHQuc2V0KHIsYSksYSs9ci5sZW5ndGg7cmV0dXJuIHR9ZnVuY3Rpb24gc1BhKHMsZSl7aWYoQ3AocyksQ3AoZSkscz09PWUpcmV0dXJuITA7aWYocy5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrKylpZihzW3RdIT09ZVt0XSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBpUGEocyxlKXtDcChzKSxDcChlKTtsZXQgdD1NYXRoLm1pbihzLmxlbmd0aCxlLmxlbmd0aCk7Zm9yKGxldCBhPTA7YTx0O2ErKyl7bGV0IHI9c1thXS1lW2FdO2lmKHIhPT0wKXJldHVybiBNYXRoLnNpZ24ocil9cmV0dXJuIE1hdGguc2lnbihzLmxlbmd0aC1lLmxlbmd0aCl9ZnVuY3Rpb24geG10KHMsZT0idXRmOCIpe3JldHVybiB2bXQocyksbW10W2VdPz89bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoZSksbW10W2VdLmRlY29kZShzKX1mdW5jdGlvbiBReShzKXtpZih0eXBlb2YgcyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBzdHJpbmdcYCwgZ290IFxgJHt0eXBlb2Ygc31cYGApfWZ1bmN0aW9uIHltdChzKXtyZXR1cm4gUXkocyksclBhLmVuY29kZShzKX1mdW5jdGlvbiBvUGEocyl7cmV0dXJuIHMucmVwbGFjZUFsbCgiKyIsIi0iKS5yZXBsYWNlQWxsKCIvIiwiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWZ1bmN0aW9uIG5QYShzKXtsZXQgZT1zLnJlcGxhY2VBbGwoIi0iLCIrIikucmVwbGFjZUFsbCgiXyIsIi8iKSx0PSg0LWUubGVuZ3RoJTQpJTQ7cmV0dXJuIGUrIj0iLnJlcGVhdCh0KX1mdW5jdGlvbiB3bXQocyx7dXJsU2FmZTplPSExfT17fSl7Q3Aocyk7bGV0IHQ9IiI7Zm9yKGxldCBhPTA7YTxzLmxlbmd0aDthKz1nbXQpe2xldCByPXMuc3ViYXJyYXkoYSxhK2dtdCk7dCs9Z2xvYmFsVGhpcy5idG9hKFN0cmluZy5mcm9tQ29kZVBvaW50LmFwcGx5KHZvaWQgMCxyKSl9cmV0dXJuIGU/b1BhKHQpOnR9ZnVuY3Rpb24ga210KHMpe3JldHVybiBReShzKSxVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5hdG9iKG5QYShzKSksZT0+ZS5jb2RlUG9pbnRBdCgwKSl9ZnVuY3Rpb24gbFBhKHMse3VybFNhZmU6ZT0hMX09e30pe3JldHVybiBReShzKSx3bXQoeW10KHMpLHt1cmxTYWZlOmV9KX1mdW5jdGlvbiBjUGEocyl7cmV0dXJuIFF5KHMpLHhtdChrbXQocykpfWZ1bmN0aW9uIHVQYShzKXtDcChzKTtsZXQgZT0iIjtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrKyllKz1kUGFbc1t0XV07cmV0dXJuIGV9ZnVuY3Rpb24gcFBhKHMpe2lmKFF5KHMpLHMubGVuZ3RoJTIhPT0wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIZXggc3RyaW5nIGxlbmd0aC4iKTtsZXQgZT1zLmxlbmd0aC8yLHQ9bmV3IFVpbnQ4QXJyYXkoZSk7Zm9yKGxldCBhPTA7YTxlO2ErKyl7bGV0IHI9Ym10W3NbYSoyXV0sbj1ibXRbc1thKjIrMV1dO2lmKHI9PT12b2lkIDB8fG49PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEhleCBjaGFyYWN0ZXIgZW5jb3VudGVyZWQgYXQgcG9zaXRpb24gJHthKjJ9YCk7dFthXT1yPDw0fG59cmV0dXJuIHR9ZnVuY3Rpb24gaFBhKHMpe2xldHtieXRlTGVuZ3RoOmV9PXM7aWYoZT09PTYpcmV0dXJuIHMuZ2V0VWludDE2KDApKjIqKjMyK3MuZ2V0VWludDMyKDIpO2lmKGU9PT01KXJldHVybiBzLmdldFVpbnQ4KDApKjIqKjMyK3MuZ2V0VWludDMyKDEpO2lmKGU9PT00KXJldHVybiBzLmdldFVpbnQzMigwKTtpZihlPT09MylyZXR1cm4gcy5nZXRVaW50OCgwKSoyKioxNitzLmdldFVpbnQxNigxKTtpZihlPT09MilyZXR1cm4gcy5nZXRVaW50MTYoMCk7aWYoZT09PTEpcmV0dXJuIHMuZ2V0VWludDgoMCl9ZnVuY3Rpb24gU210KHMsZSl7bGV0IHQ9cy5sZW5ndGgsYT1lLmxlbmd0aDtpZihhPT09MHx8YT50KXJldHVybi0xO2xldCByPXQtYTtmb3IobGV0IG49MDtuPD1yO24rKyl7bGV0IG89ITA7Zm9yKGxldCBsPTA7bDxhO2wrKylpZihzW24rbF0hPT1lW2xdKXtvPSExO2JyZWFrfWlmKG8pcmV0dXJuIG59cmV0dXJuLTF9ZnVuY3Rpb24gZlBhKHMsZSl7cmV0dXJuIFNtdChzLGUpIT09LTF9dmFyIFpFYSxYRWEsUUVhLG1tdCxyUGEsZ210LGRQYSxibXQsX210PWcoKCk9PntaRWE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxYRWE9IltvYmplY3QgVWludDhBcnJheV0iLFFFYT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iO2koZm10LCJpc1R5cGUiKTtpKFRoZSwiaXNVaW50OEFycmF5Iik7aShKRWEsImlzQXJyYXlCdWZmZXIiKTtpKGVQYSwiaXNVaW50OEFycmF5T3JBcnJheUJ1ZmZlciIpO2koQ3AsImFzc2VydFVpbnQ4QXJyYXkiKTtpKHZtdCwiYXNzZXJ0VWludDhBcnJheU9yQXJyYXlCdWZmZXIiKTtpKHRQYSwidG9VaW50OEFycmF5Iik7aShhUGEsImNvbmNhdFVpbnQ4QXJyYXlzIik7aShzUGEsImFyZVVpbnQ4QXJyYXlzRXF1YWwiKTtpKGlQYSwiY29tcGFyZVVpbnQ4QXJyYXlzIik7bW10PXt1dGY4Om5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKCJ1dGY4Iil9O2koeG10LCJ1aW50OEFycmF5VG9TdHJpbmciKTtpKFF5LCJhc3NlcnRTdHJpbmciKTtyUGE9bmV3IGdsb2JhbFRoaXMuVGV4dEVuY29kZXI7aSh5bXQsInN0cmluZ1RvVWludDhBcnJheSIpO2kob1BhLCJiYXNlNjRUb0Jhc2U2NFVybCIpO2koblBhLCJiYXNlNjRVcmxUb0Jhc2U2NCIpO2dtdD02NTUzNTtpKHdtdCwidWludDhBcnJheVRvQmFzZTY0Iik7aShrbXQsImJhc2U2NFRvVWludDhBcnJheSIpO2kobFBhLCJzdHJpbmdUb0Jhc2U2NCIpO2koY1BhLCJiYXNlNjRUb1N0cmluZyIpO2RQYT1BcnJheS5mcm9tKHtsZW5ndGg6MjU2fSwocyxlKT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKTtpKHVQYSwidWludDhBcnJheVRvSGV4Iik7Ym10PXswOjAsMToxLDI6MiwzOjMsNDo0LDU6NSw2OjYsNzo3LDg6OCw5OjksYToxMCxiOjExLGM6MTIsZDoxMyxlOjE0LGY6MTUsQToxMCxCOjExLEM6MTIsRDoxMyxFOjE0LEY6MTV9O2kocFBhLCJoZXhUb1VpbnQ4QXJyYXkiKTtpKGhQYSwiZ2V0VWludEJFIik7aShTbXQsImluZGV4T2YiKTtpKGZQYSwiaW5jbHVkZXMiKX0pO3ZhciBNbXQ9ZygoKT0+e19tdCgpfSk7dmFyIHkxPXt9O3l0KHkxLHtiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PnZQYSxlbnN1cmVQdXJlVWludDhBcnJheTooKT0+d1BhLGlzQnVmZmVyTGlrZTooKT0+eVBhLGlzVWludDhBcnJheTooKT0+eFBhLHVJbnQ4QXJyYXlFeHRyYXM6KCk9PmdQYSx1SW50OEFycmF5VG9CYXNlNjQ6KCk9PmJQYX0pO2Z1bmN0aW9uIGJQYShzKXtyZXR1cm4gVHAudWludDhBcnJheVRvQmFzZTY0KHMpfWZ1bmN0aW9uIHZQYShzKXtyZXR1cm4gVHAuYmFzZTY0VG9VaW50OEFycmF5KHMpfWZ1bmN0aW9uIHlQYShzKXtyZXR1cm4gcyYmdHlwZW9mIHMuYnl0ZUxlbmd0aD09Im51bWJlciI/ITA6dHlwZW9mIEJ1ZmZlcjwidSImJkJ1ZmZlci5pc0J1ZmZlcj9CdWZmZXIuaXNCdWZmZXIocyk6ITF9ZnVuY3Rpb24gd1BhKHMpe2xldCBlPW5ldyBVaW50OEFycmF5KHMubGVuZ3RoKTtyZXR1cm4gZS5zZXQocyksZX12YXIgZ1BhLHhQYSwkaGU9ZygoKT0+e01tdCgpO2dQYT1UcDtpKGJQYSwidUludDhBcnJheVRvQmFzZTY0Iik7aSh2UGEsImJhc2U2NFRvVWludDhBcnJheSIpO3hQYT1pKHM9PlRwLmlzVWludDhBcnJheShzKSwiaXNVaW50OEFycmF5Iik7aSh5UGEsImlzQnVmZmVyTGlrZSIpO2kod1BhLCJlbnN1cmVQdXJlVWludDhBcnJheSIpfSk7dmFyIEp5PWcoKCk9PntpbygpfSk7dmFyIGV3LE5hZT1nKCgpPT57SnkoKTtldz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJHdWFyZCIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5ndWFyZEZ1bmN0aW9uPWUsdGhpcy5vcHRpb25zPXR9YXN5bmMgZXhlYyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5ndWFyZEZ1bmN0aW9uKGUpfWFzeW5jIGdldEZhaWxlZEhpbnQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZXhlYyhlKT9udWxsOnRoaXMub3B0aW9ucy5mYWlsZWRIaW50fX19KTt2YXIgdHcsRGhlPWcoKCk9PntKeSgpO3R3PWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiR3VhcmRFcnJvciIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT0iR3VhcmRFcnJvciJ9fX0pO3ZhciBhdyxMaGU9ZygoKT0+e0p5KCk7TmFlKCk7YXc9Y2xhc3MgZXh0ZW5kcyBld3tzdGF0aWN7aSh0aGlzLCJHdWFyZFNldCIpfWNvbnN0cnVjdG9yKGU9W10pe3N1cGVyKGFzeW5jIHQ9PnRoaXMuYWxsR3VhcmRzUGFzcyh0KSksdGhpcy5ndWFyZHM9ZX1hc3luYyBleGVjQWxsV2l0aERhdGEoZSx0PXttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pe2xldCBhPVtdO2ZvcihsZXQgbiBvZiB0aGlzLmd1YXJkcyl7bGV0IG89bi5leGVjKGUpO2lmKHQubW9kZT09PSJzZXJpYWwiJiZhd2FpdCBvLGEucHVzaChvKSx0LnN0b3BPbkZhaWwmJiFhd2FpdCBvKXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChhKX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYSl9YXN5bmMgYWxsR3VhcmRzUGFzcyhlLHQ9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUsdCkpLmV2ZXJ5KHI9PnIpfWFzeW5jIGFueUd1YXJkc1Bhc3MoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUse21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSkpLnNvbWUoYT0+YSl9Z2V0RmFpbGVkSGludChlKXtmb3IobGV0IHQgb2YgdGhpcy5ndWFyZHMpe2xldCBhPXQuZ2V0RmFpbGVkSGludChlKTtpZihhKXJldHVybiBhfX19fSk7dmFyIHYwPXt9O3l0KHYwLHtHdWFyZDooKT0+ZXcsR3VhcmRFcnJvcjooKT0+dHcsR3VhcmRTZXQ6KCk9PmF3LHBhc3NHdWFyZHNPclJlamVjdDooKT0+a1BhfSk7dmFyIGtQYSxFaGU9ZygoKT0+e0p5KCk7TmFlKCk7RGhlKCk7TmFlKCk7TGhlKCk7TGhlKCk7RGhlKCk7a1BhPWkoYXN5bmMocyxlKT0+e2xldCB0PW5ldyBhdyhlKTtpZighYXdhaXQgdC5hbGxHdWFyZHNQYXNzKHMpKXtsZXQgcj1hd2FpdCB0LmdldEZhaWxlZEhpbnQocyk7dGhyb3cgbmV3IHR3KGBHdWFyZHMgZmFpbGVkOgoke3J9CiAgICBgKX19LCJwYXNzR3VhcmRzT3JSZWplY3QiKX0pO3ZhciBmOSxQaGU9ZygoKT0+e2Y5PWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVyY2VwdG9yTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnB1c2goZSl9YWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLnB1c2goZSl9YWRkRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnB1c2goZSl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpe2xldCB0PXRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5pbmRleE9mKGUpO3Q+LTEmJnRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5zcGxpY2UodCwxKX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpe2xldCB0PXRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMuaW5kZXhPZihlKTt0Pi0xJiZ0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLnNwbGljZSh0LDEpfXJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl7bGV0IHQ9dGhpcy5lcnJvckludGVyY2VwdG9ycy5pbmRleE9mKGUpO3Q+LTEmJnRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuc3BsaWNlKHQsMSl9Y2xlYXJBbGwoKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnM9W10sdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycz1bXSx0aGlzLmVycm9ySW50ZXJjZXB0b3JzPVtdfWFzeW5jIHByb2Nlc3NSZXF1ZXN0KGUpe2xldCB0PWU7Zm9yKGxldCBhIG9mIHRoaXMucmVxdWVzdEludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCBhKHQpfWNhdGNoKHIpe3Rocm93IGF3YWl0IHRoaXMucHJvY2Vzc0Vycm9yKHIgaW5zdGFuY2VvZiBFcnJvcj9yOm5ldyBFcnJvcihTdHJpbmcocikpKX1yZXR1cm4gdH1hc3luYyBwcm9jZXNzUmVzcG9uc2UoZSl7bGV0IHQ9ZTtmb3IobGV0IGEgb2YgdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCBhKHQpfWNhdGNoKHIpe3Rocm93IGF3YWl0IHRoaXMucHJvY2Vzc0Vycm9yKHIgaW5zdGFuY2VvZiBFcnJvcj9yOm5ldyBFcnJvcihTdHJpbmcocikpKX1yZXR1cm4gdH1hc3luYyBwcm9jZXNzRXJyb3IoZSl7bGV0IHQ9ZTtmb3IobGV0IGEgb2YgdGhpcy5lcnJvckludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCBhKHQpfWNhdGNoKHIpe3Q9ciBpbnN0YW5jZW9mIEVycm9yP3I6bmV3IEVycm9yKFN0cmluZyhyKSl9cmV0dXJuIHR9Z2V0SW50ZXJjZXB0b3JDb3VudHMoKXtyZXR1cm57cmVxdWVzdDp0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMubGVuZ3RoLHJlc3BvbnNlOnRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMubGVuZ3RoLGVycm9yOnRoaXMuZXJyb3JJbnRlcmNlcHRvcnMubGVuZ3RofX19fSk7dmFyIHptdD1nKCgpPT57aW8oKX0pO3ZhciBDbXQ9ZygoKT0+e30pO3ZhciBJaGUsVG10PWcoKCk9Pnt6bXQoKTtDbXQoKTtJaGU9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLHQpe2lmKCF0aGlzLmlzTm9kZSYmIXRoaXMuaXNEZW5vJiYhdGhpcy5pc0J1bil7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBzZXJ2ZXIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dDogJHtlfS4gVGhpcyBkb2VzIG5vdCB0aHJvdy5gKTtyZXR1cm59bGV0IGE9YXdhaXQgbmV3IEZ1bmN0aW9uKGByZXR1cm4gaW1wb3J0KCcke2V9JylgKSgpO3JldHVybiB0JiZhd2FpdCB0KGEpLGF9YXN5bmMgZ2V0U2FmZVdlYk1vZHVsZShlLHQpe2lmKCF0aGlzLmlzQnJvd3Nlcil7Y29uc29sZS5lcnJvcigiWW91IHRyaWVkIHRvIGxvYWQgYSB3ZWIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dCIpO3JldHVybn1pZih0aGlzLmxvYWRlZFNjcmlwdHMuaW5jbHVkZXMoZSkpcmV0dXJuIHQoKTt0aGlzLmxvYWRlZFNjcmlwdHMucHVzaChlKTtsZXQgYT1tdC5kZWZlcigpLHI9Z2xvYmFsVGhpcztpZihyLmltcG9ydFNjcmlwdHMpci5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7bi5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0sbi5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG4pfXJldHVybiBhd2FpdCBhLnByb21pc2UsdCgpfWdldCBydW50aW1lRW52KCl7bGV0IGU9Z2xvYmFsVGhpcztyZXR1cm4gdHlwZW9mIGUuRGVubzwidSImJnR5cGVvZiBlLkRlbm8udmVyc2lvbjwidSI/ImRlbm8iOnR5cGVvZiBlLkJ1bjwidSImJnR5cGVvZiBlLkJ1bi52ZXJzaW9uPCJ1Ij8iYnVuIjp0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/Lm5vZGU8InUiPyJub2RlIjoodHlwZW9mIGdsb2JhbFRoaXMud2luZG93PCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuZG9jdW1lbnQ8InUiLCJicm93c2VyIil9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnJvd3NlciJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IGlzRGVubygpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iZGVubyJ9Z2V0IGlzQnVuKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJidW4ifWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc05vZGU/cHJvY2Vzcy52ZXJzaW9uOiJ1bmRlZmluZWQifWdldCBkZW5vVmVyc2lvbigpe3JldHVybiB0aGlzLmlzRGVubz9nbG9iYWxUaGlzLkRlbm8/LnZlcnNpb24/LmRlbm8/PyJ1bmRlZmluZWQiOiJ1bmRlZmluZWQifWdldCBidW5WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNCdW4/Z2xvYmFsVGhpcy5CdW4/LnZlcnNpb24/PyJ1bmRlZmluZWQiOiJ1bmRlZmluZWQifWFzeW5jIGdldFNhZmVNb2R1bGVGb3IoZSx0LGEpe2xldCByO2lmKEFycmF5LmlzQXJyYXkoZSk/cj1lLmZsYXRNYXAobj0+bj09PSJzZXJ2ZXIiP1sibm9kZSIsImRlbm8iLCJidW4iXTpbbl0pOmU9PT0ic2VydmVyIj9yPVsibm9kZSIsImRlbm8iLCJidW4iXTpyPVtlXSwhci5pbmNsdWRlcyh0aGlzLnJ1bnRpbWVFbnYpKXtjb25zb2xlLndhcm4oYE1vZHVsZSAiJHt0fSIgcmVxdWVzdGVkIGZvciBydW50aW1lKHMpIFske3Iuam9pbigiLCAiKX1dIGJ1dCBjdXJyZW50IHJ1bnRpbWUgaXMgIiR7dGhpcy5ydW50aW1lRW52fSIuIFNraXBwaW5nIGxvYWQuYCk7cmV0dXJufWlmKHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0KTtpZih0aGlzLmlzQnJvd3Nlcil7aWYoIWEpe2NvbnNvbGUuZXJyb3IoYEJyb3dzZXIgbW9kdWxlIGxvYWQgcmVxdWlyZXMgZ2V0RnVuY3Rpb24gcGFyYW1ldGVyIGZvciAiJHt0fSJgKTtyZXR1cm59cmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZSh0LGEpfX1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHRoaXMuaXNEZW5vPyJub2RlOm9zIjoib3MiKSk/LnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUodGhpcy5pc0Rlbm8/Im5vZGU6b3MiOiJvcyIpKT8ucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bj8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0aGlzLmlzRGVubz8ibm9kZTpvcyI6Im9zIikpPy5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTp0aGlzLmlzRGVubz8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gREVOTyIpLGNvbnNvbGUubG9nKCJkZW5vIHZlcnNpb24gaXMgIit0aGlzLmRlbm9WZXJzaW9uKSk6dGhpcy5pc0J1bj8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlVOIiksY29uc29sZS5sb2coImJ1biB2ZXJzaW9uIGlzICIrdGhpcy5idW5WZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciB3MT17fTt5dCh3MSx7U21hcnRlbnY6KCk9PkloZX0pO3ZhciBzdz1nKCgpPT57VG10KCl9KTt2YXIgQWhlLGl3PWcoKCk9PntBaGU9eG4oaXkoKSwxKX0pO3ZhciBSYWU9e307eXQoUmFlLHtjcmVhdGVDcnlwdG9SYW5kb21TdHJpbmc6KCk9PlRQYSxjcmVhdGVSYW5kb21TdHJpbmc6KCk9PkNQYX0pO3ZhciBNUGEselBhLENQYSxUUGEsJG10PWcoKCk9PntpdygpO01QYT1pKChzLGUpPT57aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLmNyeXB0byYmZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtsZXQgdD1lLXMsYT1uZXcgVWludDMyQXJyYXkoMSk7cmV0dXJuIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhKSxzK2FbMF0ldH1lbHNlIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtcykpK3N9LCJnZXRSYW5kb21JbnQiKSx6UGE9aSgocyxlLHQpPT57bGV0IGE9e0E6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixhOiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsMDoiMDEyMzQ1Njc4OSIsIiEiOiIhQCMkJV4mKigpXystPVtde318OzosLjw+PyIsIioiOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/In0scj1zO2UmJmU+cy5sZW5ndGg/cj1zLnJlcGVhdChNYXRoLmNlaWwoZS9zLmxlbmd0aCkpLnNsaWNlKDAsZSk6ZSYmKHI9cy5zbGljZSgwLGUpKTtsZXQgbj0iIjtmb3IobGV0IG8gb2YgcilpZihhW29dKXtsZXQgbD1hW29dLHA9TVBhKDAsbC5sZW5ndGgpO24rPWxbcF19ZWxzZSBuKz1vO3JldHVybiBufSwiY3VzdG9tUmFuZG9tYXRpYyIpLENQYT1pKChzLGUsdCk9PnpQYShzLGUsdCksImNyZWF0ZVJhbmRvbVN0cmluZyIpLFRQYT1pKCgpPT5BaGUudW5pKCksImNyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZyIpfSk7dmFyIE9hZT17fTt5dChPYWUse21ha2VFbnZPYmplY3Q6KCk9PiRQYX0pO3ZhciAkUGEsRG10PWcoKCk9PntpdygpOyRQYT1pKGZ1bmN0aW9uKHMpe2xldCBlPXt9LHQ9LyguKik9KC4qKS87aWYodHlwZW9mIHM8InUiKWZvcihsZXQgYSBvZiBzKXtsZXQgcj10LmV4ZWMoYSk7ciYmKGVbclsxXV09clsyXSl9cmV0dXJuIGV9LCJtYWtlRW52T2JqZWN0Iil9KTt2YXIgbmQ9e307eXQobmQse2luZGVudDooKT0+TFBhLGluZGVudFdpdGhQcmVmaXg6KCk9PkVQYSxub3JtYWxpemU6KCk9PlBQYX0pO3ZhciBOaGUsUmhlLERQYSxMUGEsRVBhLFBQYSxMbXQ9ZygoKT0+e2l3KCk7TmhlPWkocz0+e2xldCBlPXMuc3BsaXQoYApgKTtyZXR1cm4gRFBhKGUpfSwic3BsaXRTdHJpbmdBdExpbmVCcmVhayIpLFJoZT1pKHM9PntsZXQgZT0iIjtmb3IobGV0IHQgb2YgcyllPWUrdCtgCmA7cmV0dXJuIGV9LCJqb2luU3RyaW5nV2l0aExpbmVCcmVha3MiKSxEUGE9aShzPT57bGV0IGU9L15bXHNdKiQvO3JldHVybiBlLnRlc3Qoc1swXSkmJnMuc2hpZnQoKSxlLnRlc3Qoc1tzLmxlbmd0aC0xXSkmJnMucG9wKCksc30sImNsZWFuU3RyaW5nQXJyYXkiKSxMUGE9aSgocyxlKT0+e2xldCB0PU5oZShzKTtmb3IobGV0IHIgb2YgdClyPSIgIi5yZXBlYXQoZSkrcjtyZXR1cm4gUmhlKHQpfSwiaW5kZW50IiksRVBhPWkoKHMsZSk9PntsZXQgdCxhPU5oZShzKSxyPVtdO2ZvcihsZXQgbiBvZiBhKXIucHVzaChlK24pO3JldHVybiB0PVJoZShyKSx0fSwiaW5kZW50V2l0aFByZWZpeCIpLFBQYT1pKHM9PntsZXQgZSx0PU5oZShzKSxhLHI9L14oXHMqKS8sbj0vXihccyopJC87Zm9yKGxldCBwIG9mIHQpe2xldCBkPXIuZXhlYyhwKSx1PWQ/ZFsxXToiIjsodHlwZW9mIGE+InUifHx1Lmxlbmd0aDxhKSYmIW4udGVzdChwKSYmKGE9dS5sZW5ndGgpfWxldCBvPVtdLGw9YXx8MDtmb3IobGV0IHAgb2YgdClvLnB1c2gocC5zdWJzdHIobCkpO3JldHVybiBlPVJoZShvKSxlfSwibm9ybWFsaXplIil9KTt2YXIgRmFlPXt9O3l0KEZhZSx7cmVwbGFjZUFsbDooKT0+RW10LHN0YW5kYXJkOigpPT5BUGF9KTt2YXIgRW10LElQYSxBUGEsUG10PWcoKCk9PntFbXQ9aSgocyxlLHQpPT5zLnJlcGxhY2UobmV3IFJlZ0V4cChlLCJnIiksdCksInJlcGxhY2VBbGwiKSxJUGE9aShzPT57bGV0IGU9cy5zcGxpdChgCmApLHQ9MS8wO2ZvcihsZXQgYSBvZiBlKWlmKGEudHJpbSgpLmxlbmd0aD4wKXtsZXQgcj1hLm1hdGNoKC9eKFxzKikvKTtyJiYodD1NYXRoLm1pbih0LHJbMV0ubGVuZ3RoKSl9cmV0dXJuIHQ9PT0xLzB8fHQ9PT0wP3M6ZS5tYXAoYT0+YS5sZW5ndGg+PXQ/YS5zbGljZSh0KTphKS5qb2luKGAKYCl9LCJzdHJpcEluZGVudCIpLEFQYT1pKChzLGUpPT57bGV0IHQ9cztyZXR1cm4oIWV8fGUuc3RyaXBJbmRlbnQpJiYodD1JUGEodCkpLCghZXx8ZS5ub3JtYWxpemVOZXdsaW5lKSYmKHQ9dC5yZXBsYWNlKC9cclxuL2csYApgKSksKCFlfHxlLnJlcGxhY2VUYWJzKSYmKHQ9RW10KHQsIgkvIiwiICIpKSwoIWV8fGUuc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzKSYmKHQ9dC5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKS5yZXBsYWNlKC9ccypbXHJcbl0kL2dtLCIiKSksKCFlfHxlLnN0cmlwQWxsRW1wdHlMaW5lcykmJih0PXQucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikpLHR9LCJzdGFuZGFyZCIpfSk7dmFyIE9oZSxCYWUsbTksRmhlPWcoKCk9PntPaGU9e2VuY29kZTppKHM9PntpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20ocywidXRmOCIpLnRvU3RyaW5nKCJiYXNlNjQiKTtpZih0eXBlb2YgYnRvYTwidSIpe2xldCBlPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzKSx0PUFycmF5LmZyb20oZSxhPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGEpKS5qb2luKCIiKTtyZXR1cm4gYnRvYSh0KX1lbHNle2xldCBlPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIix0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzKSxhPSIiLHI9MDtmb3IoO3I8dC5sZW5ndGg7KXtsZXQgbj10W3IrK10sbz1yPHQubGVuZ3RoP3RbcisrXTowLGw9cjx0Lmxlbmd0aD90W3IrK106MCxwPW48PDE2fG88PDh8bDthKz1lLmNoYXJBdChwPj4xOCY2MyksYSs9ZS5jaGFyQXQocD4+MTImNjMpLGErPXItMjx0Lmxlbmd0aD9lLmNoYXJBdChwPj42JjYzKToiPSIsYSs9ci0xPHQubGVuZ3RoP2UuY2hhckF0KHAmNjMpOiI9In1yZXR1cm4gYX19LCJlbmNvZGUiKSxkZWNvZGU6aShzPT57bGV0IGU9cy5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5wYWRFbmQocy5sZW5ndGgrKDQtcy5sZW5ndGglNCklNCwiPSIpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbShlLCJiYXNlNjQiKS50b1N0cmluZygidXRmOCIpO2lmKHR5cGVvZiBhdG9iPCJ1Iil7bGV0IHQ9YXRvYihlKSxhPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKylhW3JdPXQuY2hhckNvZGVBdChyKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGEpfWVsc2V7bGV0IHQ9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGE9W10scj0wO2Zvcig7cjxlLmxlbmd0aDspe2xldCBuPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxvPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxsPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxwPXQuaW5kZXhPZihlLmNoYXJBdChyKyspKSxkPW48PDE4fG88PDEyfGw8PDZ8cDthLnB1c2goZD4+MTYmMjU1KSxsIT09NjQmJmEucHVzaChkPj44JjI1NSkscCE9PTY0JiZhLnB1c2goZCYyNTUpfXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoYSkpfX0sImRlY29kZSIpfSxCYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZTY0Iil9Y29uc3RydWN0b3IoZSx0KXtzd2l0Y2godCl7Y2FzZSJzdHJpbmciOnRoaXMucmVmU3RyaW5nPWU7YnJlYWs7Y2FzZSJiYXNlNjQiOnRoaXMucmVmU3RyaW5nPW05LmRlY29kZShlKTticmVhaztjYXNlImJhc2U2NHVyaSI6dGhpcy5yZWZTdHJpbmc9bTkuZGVjb2RlKGUpfX1nZXQgc2ltcGxlU3RyaW5nKCl7cmV0dXJuIHRoaXMucmVmU3RyaW5nfWdldCBiYXNlNjRTdHJpbmcoKXtyZXR1cm4gbTkuZW5jb2RlKHRoaXMucmVmU3RyaW5nKX1nZXQgYmFzZTY0VXJpU3RyaW5nKCl7cmV0dXJuIG05LmVuY29kZVVyaSh0aGlzLnJlZlN0cmluZyl9fSxtOT17ZW5jb2RlOmkocz0+T2hlLmVuY29kZShzKSwiZW5jb2RlIiksZW5jb2RlVXJpOmkocz0+T2hlLmVuY29kZShzKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksImVuY29kZVVyaSIpLGRlY29kZTppKHM9Pk9oZS5kZWNvZGUocyksImRlY29kZSIpLGlzQmFzZTY0Omkocz0+L14oW0EtWmEtejAtOSsvXXs0fSkqKFtBLVphLXowLTkrL117M309fFtBLVphLXowLTkrL117Mn09PSk/JC8udGVzdChzKSwiaXNCYXNlNjQiKX19KTt2YXIgSGFlPXt9O3l0KEhhZSx7aXNCYXNlNjQ6KCk9PlJQYSxpc1V0Zjg6KCk9Pk5QYX0pO3ZhciBOUGEsUlBhLEltdD1nKCgpPT57aXcoKTtGaGUoKTtOUGE9aShzPT57bGV0IHQ9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHMpLGE9MDtmb3IoO2E8dC5sZW5ndGg7KXtpZih0W2FdPT09OXx8dFthXT09PTEwfHx0W2FdPT09MTN8fDMyPD10W2FdJiZ0W2FdPD0xMjYpe2ErPTE7Y29udGludWV9aWYoMTk0PD10W2FdJiZ0W2FdPD0yMjMmJjEyODw9dFthKzFdJiZ0W2ErMV08PTE5MSl7YSs9Mjtjb250aW51ZX1pZih0W2FdPT09MjI0JiYxNjA8PXRbYSsxXSYmdFthKzFdPD0xOTEmJjEyODw9dFthKzJdJiZ0W2ErMl08PTE5MXx8KDIyNTw9dFthXSYmdFthXTw9MjM2fHx0W2FdPT09MjM4fHx0W2FdPT09MjM5KSYmMTI4PD10W2ErMV0mJnRbYSsxXTw9MTkxJiYxMjg8PXRbYSsyXSYmdFthKzJdPD0xOTF8fHRbYV09PT0yMzcmJjEyODw9dFthKzFdJiZ0W2ErMV08PTE1OSYmMTI4PD10W2ErMl0mJnRbYSsyXTw9MTkxKXthKz0zO2NvbnRpbnVlfWlmKHRbYV09PT0yNDAmJjE0NDw9dFthKzFdJiZ0W2ErMV08PTE5MSYmMTI4PD10W2ErMl0mJnRbYSsyXTw9MTkxJiYxMjg8PXRbYSszXSYmdFthKzNdPD0xOTF8fDI0MTw9dFthXSYmdFthXTw9MjQzJiYxMjg8PXRbYSsxXSYmdFthKzFdPD0xOTEmJjEyODw9dFthKzJdJiZ0W2ErMl08PTE5MSYmMTI4PD10W2ErM10mJnRbYSszXTw9MTkxfHx0W2FdPT09MjQ0JiYxMjg8PXRbYSsxXSYmdFthKzFdPD0xNDMmJjEyODw9dFthKzJdJiZ0W2ErMl08PTE5MSYmMTI4PD10W2ErM10mJnRbYSszXTw9MTkxKXthKz00O2NvbnRpbnVlfXJldHVybiExfXJldHVybiEwfSwiaXNVdGY4IiksUlBhPWkocz0+e2xldCBlPS9bXkEtWjAtOStcLz1dL2ksdD1zLmxlbmd0aDtpZighdHx8dCU0IT09MHx8ZS50ZXN0KHMpKXJldHVybiExO2xldCBhPXMuaW5kZXhPZigiPSIpO3JldHVybiBhPT09LTF8fGE9PT10LTF8fGE9PT10LTImJnNbdC0xXT09PSI9In0sImlzQmFzZTY0Iil9KTt2YXIgcWFlLEFtdD1nKCgpPT57cWFlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRvbWFpbiIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucHJvdG9jb2w9dGhpcy5fcHJvdG9jb2xSZWdleChlKSx0aGlzLnByb3RvY29sfHwoZT1gaHR0cHM6Ly8ke2V9YCksdGhpcy5ub2RlUGFyc2VkVXJsPW5ldyBVUkwoZSksdGhpcy5wb3J0PXRoaXMubm9kZVBhcnNlZFVybC5wb3J0O2xldCB0PXRoaXMuX2RvbWFpblJlZ2V4KGUucmVwbGFjZSh0aGlzLm5vZGVQYXJzZWRVcmwucGF0aG5hbWUsIiIpKTtbdGhpcy5sZXZlbDEsdGhpcy5sZXZlbDIsdGhpcy5sZXZlbDMsdGhpcy5sZXZlbDQsdGhpcy5sZXZlbDVdPXQsdGhpcy5mdWxsTmFtZT0iIjtmb3IobGV0IGEgb2YgdCl0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1hOnRoaXMuZnVsbE5hbWU9YSsiLiIrdGhpcy5mdWxsTmFtZTt0aGlzLnpvbmVOYW1lPVt0aGlzLmxldmVsMix0aGlzLmxldmVsMV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi4iKSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IGE9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtpZighYSlyZXR1cm5bXTtsZXQgcj1bLi4uYV0ucmV2ZXJzZSgpO3JldHVybiByLnBvcCgpLHIuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvIT09IiJ9KX1fcHJvdG9jb2xSZWdleChlKXtsZXQgYT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoYSlyZXR1cm4gYVsxXX1fcG9ydFJlZ2V4KGUpe2xldCBhPS9eKFthLXpBLVowLTldKik6XC9cLy8uZXhlYyhlKTtpZihhKXJldHVybiBhWzFdfX19KTt2YXIgamFlLE9QYSxObXQsUm10PWcoKCk9PntqYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiR2l0UmVwbyIpfWNvbnN0cnVjdG9yKGUsdCl7bGV0IGE9T1BhKGUpO2lmKCFhKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBnaXQgcmVwb3NpdG9yeSBVUkw6ICR7ZX1gKTt0aGlzLmhvc3Q9YVsxXSx0aGlzLnVzZXI9YVsyXSx0aGlzLnJlcG89YVszXSx0aGlzLmFjY2Vzc1Rva2VuPXQsdGhpcy5zc2hVcmw9Tm10KHRoaXMuaG9zdCx0aGlzLnVzZXIsdGhpcy5yZXBvLHRoaXMuYWNjZXNzVG9rZW4sInNzaCIpLHRoaXMuaHR0cHNVcmw9Tm10KHRoaXMuaG9zdCx0aGlzLnVzZXIsdGhpcy5yZXBvLHRoaXMuYWNjZXNzVG9rZW4sImh0dHBzIil9fSxPUGE9aShmdW5jdGlvbihzKXtyZXR1cm4vKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvfFw6KShbYS16QS1aMC05XC1fXC5dKikoPzpcLykoW2EtekEtWjAtOVwtX1wuXSopKD86XC5naXQpLy5leGVjKHMpfSwiZ2l0UmVnZXgiKSxObXQ9aShmdW5jdGlvbihzLGUsdCxhPSIiLHIpe3N3aXRjaChhIT09IiImJihhPWErIkAiKSxyKXtjYXNlImh0dHBzIjpyZXR1cm4iaHR0cHM6Ly8iK2ErcysiLyIrZSsiLyIrdCsiLmdpdCI7Y2FzZSJzc2giOnJldHVybiJnaXRAIitzKyI6IitlKyIvIit0KyIuZ2l0In19LCJnaXRMaW5rIil9KTt2YXIgYXI9e307eXQoYXIse0Jhc2U2NDooKT0+QmFlLERvbWFpbjooKT0+cWFlLEdpdFJlcG86KCk9PmphZSxiYXNlNjQ6KCk9Pm05LGNyZWF0ZTooKT0+UmFlLGRvY2tlcjooKT0+T2FlLGluZGVudDooKT0+bmQsbm9ybWFsaXplOigpPT5GYWUsdHlwZTooKT0+SGFlfSk7dmFyIG8zPWcoKCk9PnskbXQoKTtEbXQoKTtMbXQoKTtQbXQoKTtJbXQoKTtGaGUoKTtBbXQoKTtSbXQoKX0pO3ZhciBCaGU9cGwoKGJHcyxPbXQpPT57InVzZSBzdHJpY3QiO09tdC5leHBvcnRzPWZ1bmN0aW9uKHMsZSl7ZXx8KGU9e30pLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT17Y21wOmV9KTt2YXIgdD10eXBlb2YgZS5jeWNsZXM9PSJib29sZWFuIj9lLmN5Y2xlczohMSxhPWUuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihsLHApe3ZhciBkPXtrZXk6bCx2YWx1ZTpvW2xdfSx1PXtrZXk6cCx2YWx1ZTpvW3BdfTtyZXR1cm4gbihkLHUpfX19KShlLmNtcCkscj1bXTtyZXR1cm4gaSgoZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIGwscDtpZihBcnJheS5pc0FycmF5KG8pKXtmb3IocD0iWyIsbD0wO2w8by5sZW5ndGg7bCsrKWwmJihwKz0iLCIpLHArPW4ob1tsXSl8fCJudWxsIjtyZXR1cm4gcCsiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKHIuaW5kZXhPZihvKSE9PS0xKXtpZih0KXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBkPXIucHVzaChvKS0xLHU9T2JqZWN0LmtleXMobykuc29ydChhJiZhKG8pKTtmb3IocD0iIixsPTA7bDx1Lmxlbmd0aDtsKyspe3ZhciBjPXVbbF0sYj1uKG9bY10pO2ImJihwJiYocCs9IiwiKSxwKz1KU09OLnN0cmluZ2lmeShjKSsiOiIrYil9cmV0dXJuIHIuc3BsaWNlKGQsMSksInsiK3ArIn0ifX0pLCJzdHJpbmdpZnkiKShzKX19KTt2YXIgRm10LFZhZSxIaGU9ZygoKT0+e3N3KCk7bzMoKTtGbXQ9eG4oQmhlKCksMSksVmFlPUZtdC5kZWZhdWx0fSk7ZnVuY3Rpb24gQlBhKHMpe2xldCBlPUJtdCgpO3JldHVybiBlP2UuZnJvbShzKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLnMpKX1mdW5jdGlvbiBIUGEocyl7bGV0IGU9Qm10KCk7aWYoZSl7bGV0IHQ9ZS5mcm9tKHMsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKHMpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gamhlKHMsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHMsVWFlLGUpfWZ1bmN0aW9uIFZoZShzKXtyZXR1cm4gSlNPTi5wYXJzZShzLEhtdCl9ZnVuY3Rpb24gcVBhKHMpe3JldHVybiBqbXQocykmJnMudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmcWhlKHMuZGF0YSl9ZnVuY3Rpb24galBhKHMpe3JldHVybiBqbXQocykmJnMudHlwZT09PSJCdWZmZXIiJiYocW10KHMuZGF0YSl8fHFoZShzLmRhdGEpKXx8cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gcW10KHMpe3JldHVybiBBcnJheS5pc0FycmF5KHMpfWZ1bmN0aW9uIHFoZShzKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmcifWZ1bmN0aW9uIGptdChzKXtyZXR1cm4gdHlwZW9mIHM9PSJvYmplY3QiJiZzIT09bnVsbH12YXIgQm10LFVhZSxIbXQsVm10PWcoKCk9PntIaGUoKTtCbXQ9aSgoKT0+Z2xvYmFsVGhpcy5CdWZmZXIsImdldE5vZGVCdWZmZXIiKTtpKEJQYSwiYmFzZTY0RW5jb2RlIik7aShIUGEsImJhc2U2NERlY29kZSIpO2koamhlLCJzdHJpbmdpZnkiKTtpKFZoZSwicGFyc2UiKTtVYWU9aSgocyxlKT0+e2lmKGpQYShlKSl7bGV0IHQ7aWYoImRhdGEiaW4gZSYmcW10KGUuZGF0YSkpdD1uZXcgVWludDhBcnJheShlLmRhdGEpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpdD1lO2Vsc2UgcmV0dXJuIGU7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK0JQYSh0KX19cmV0dXJuIGV9LCJyZXBsYWNlciIpLEhtdD1pKChzLGUpPT57aWYocVBhKGUpJiZxaGUoZS5kYXRhKSYmZS5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHQ9ZS5kYXRhLnNsaWNlKDcpO3JldHVybiBIUGEodCl9cmV0dXJuIGV9LCJyZXZpdmVyIik7aShxUGEsImlzRW5jb2RlZEJ1ZmZlciIpO2koalBhLCJpc0J1ZmZlckxpa2UiKTtpKHFtdCwiaXNBcnJheSIpO2kocWhlLCJpc1N0cmluZyIpO2koam10LCJpc09iamVjdCIpfSk7dmFyIGpyPXt9O3l0KGpyLHtTbWFydGpzb246KCk9PldoZSxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PlhQYSxkZWVwRXF1YWxPYmplY3RzOigpPT5VbXQsZm9sZERlYzooKT0+WlBhLHBhcnNlOigpPT5XYWUscGFyc2VCYXNlNjQ6KCk9PllQYSxwYXJzZUpzb25MOigpPT5VaGUsc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT5XUGEsc3RyaW5naWZ5OigpPT5uMyxzdHJpbmdpZnlCYXNlNjQ6KCk9PktQYSxzdHJpbmdpZnlKc29uTDooKT0+VVBhLHN0cmluZ2lmeVByZXR0eTooKT0+R1BhfSk7dmFyIFdhZSxVaGUsVVBhLFdQYSxuMyxHUGEsS1BhLFlQYSxXaGUsWlBhLFVtdCxYUGEsZzk9ZygoKT0+e0hoZSgpO1ZtdCgpO1dhZT1WaGUsVWhlPWkocz0+cy5zcGxpdChgCmApLnJlZHVjZSgoYSxyKT0+e2xldCBuPXIudHJpbSgpO3JldHVybiBuLmxlbmd0aD4wJiZhLnB1c2goV2FlKG4pKSxhfSxbXSksInBhcnNlSnNvbkwiKSxVUGE9aShzPT5zLm1hcChlPT5uMyhlKSkuam9pbihgCmApLCJzdHJpbmdpZnlKc29uTCIpLFdQYT1pKChzLGUsdD17fSk9PntsZXQgYT1uZXcgV2Vha1NldCxyPWkobD0+e2lmKGw9PT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCIpcmV0dXJuIGw7bGV0IHA9VWFlKCIiLGwpO2lmKHAmJnAudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIHAuZGF0YT09InN0cmluZyIpcmV0dXJuIHA7aWYoYS5oYXMobCkpcmV0dXJuIl9fY3ljbGVfXyI7aWYoYS5hZGQobCksQXJyYXkuaXNBcnJheShsKSlyZXR1cm4gbC5tYXAodT0+cih1KSk7bGV0IGQ9e307Zm9yKGxldCB1IG9mIE9iamVjdC5rZXlzKGwpKXRyeXtkW3VdPXIobFt1XSl9Y2F0Y2h7ZFt1XT0iX191bnNlcmlhbGl6YWJsZV9fIn1yZXR1cm4gZH0sInNhbml0aXplIiksbj1yKHMpLG89ey4uLnQsY3ljbGVzOiEwfTtpZihlJiYhby5jbXApe2xldCBsPW5ldyBNYXA7ZS5mb3JFYWNoKChwLGQpPT5sLnNldChwLGQpKSxvLmNtcD0ocCxkKT0+e2xldCB1PWwuaGFzKHAua2V5KT9sLmdldChwLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGM9bC5oYXMoZC5rZXkpP2wuZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIHUhPT1jP3UtYzpwLmtleTxkLmtleT8tMTpwLmtleT5kLmtleT8xOjB9fXJldHVybiBWYWUobixvKX0sInN0YWJsZU9uZVdheVN0cmluZ2lmeSIpLG4zPWkoKHMsZSx0PXt9KT0+e2xldCBhPWpoZShzKTtzPUpTT04ucGFyc2UoYSk7bGV0IHI9ey4uLnR9O2lmKGUmJiFyLmNtcCl7bGV0IG89bmV3IE1hcDtlLmZvckVhY2goKGwscCk9Pm8uc2V0KGwscCkpLHIuY21wPShsLHApPT57bGV0IGQ9by5oYXMobC5rZXkpP28uZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhwLmtleSk/by5nZXQocC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gZCE9PXU/ZC11Omwua2V5PHAua2V5Py0xOmwua2V5PnAua2V5PzE6MH19cmV0dXJuIFZhZShzLHIpfSwic3RyaW5naWZ5IiksR1BhPWkocz0+e2xldCBlPW4zKHMpLHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfSwic3RyaW5naWZ5UHJldHR5IiksS1BhPWkoKC4uLnMpPT57bGV0IGU9bjMoLi4ucyk7cmV0dXJuIGFyLmJhc2U2NC5lbmNvZGVVcmkoZSl9LCJzdHJpbmdpZnlCYXNlNjQiKSxZUGE9aShzPT57bGV0IGU9YXIuYmFzZTY0LGE9KGUuZGVjb2RlVXJpfHxlLmRlY29kZSkocyk7cmV0dXJuIFdhZShhKX0sInBhcnNlQmFzZTY0IiksV2hlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiU21hcnRqc29uIil9c3RhdGljIGVuZm9sZEZyb21PYmplY3QoZSl7bGV0IHQ9bmV3IHRoaXMsYT10LnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCByIGluIGUpYS5pbmRleE9mKHIpIT09LTEmJih0W3JdPWVbcl0pO3JldHVybiB0fXN0YXRpYyBlbmZvbGRGcm9tSnNvbihlKXtsZXQgdD1XYWUoZSk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdCh0KX1zYXZlYWJsZVByb3BlcnRpZXM9W107Zm9sZFRvT2JqZWN0KCl7bGV0IGU9bmV3IFNldDtyZXR1cm4gZS5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1mb2xkVG9PYmplY3RJbnRlcm5hbChlKXtsZXQgdD17fSxhPWkobj0+e2lmKG4gaW5zdGFuY2VvZiBzKXtpZihlLmhhcyhuKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKG4pLG4uZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bi5tYXAobz0+YShvKSk6c3RydWN0dXJlZENsb25lKG4pfSwiZm9sZFZhbHVlIikscj10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBuIG9mIHIpe2xldCBvPXRoaXNbbl07dFtuXT1hKG8pfXJldHVybiB0fWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiBuMyhlKX19LFpQYT1pKCgpPT4ocyxlKT0+e2xldCB0PVN0cmluZyhlLm5hbWUpO2UuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24oKXt0aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8KHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzPVtdKSx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5pbmNsdWRlcyh0KXx8dGhpcy5zYXZlYWJsZVByb3BlcnRpZXMucHVzaCh0KX0pfSwiZm9sZERlYyIpLFVtdD1pKChzLGUpPT57bGV0IHQ9bjMocyksYT1uMyhlKTtyZXR1cm4gdD09PWF9LCJkZWVwRXF1YWxPYmplY3RzIiksWFBhPWkoKHMsZSk9PntsZXQgdD1VaGUocyksYT1VaGUoZSk7cmV0dXJuIFVtdCh0LGEpfSwiZGVlcEVxdWFsSnNvbkxTdHJpbmdzIil9KTt2YXIgb3c9e307eXQob3cse2RlbGV0ZURCOigpPT5lNnQsb3BlbkRCOigpPT5KbXQsdW53cmFwOigpPT5ydyx3cmFwOigpPT5sZH0pO2Z1bmN0aW9uIFFQYSgpe3JldHVybiBXbXR8fChXbXQ9W0lEQkRhdGFiYXNlLElEQk9iamVjdFN0b3JlLElEQkluZGV4LElEQkN1cnNvcixJREJUcmFuc2FjdGlvbl0pfWZ1bmN0aW9uIEpQYSgpe3JldHVybiBHbXR8fChHbXQ9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSl9ZnVuY3Rpb24gZUlhKHMpe2xldCBlPW5ldyBQcm9taXNlKCh0LGEpPT57bGV0IHI9aSgoKT0+e3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsbikscy5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbyl9LCJ1bmxpc3RlbiIpLG49aSgoKT0+e3QobGQocy5yZXN1bHQpKSxyKCl9LCJzdWNjZXNzIiksbz1pKCgpPT57YShzLmVycm9yKSxyKCl9LCJlcnJvciIpO3MuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsbikscy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbyl9KTtyZXR1cm4gR2FlLnNldChlLHMpLGV9ZnVuY3Rpb24gdElhKHMpe2lmKEtoZS5oYXMocykpcmV0dXJuO2xldCBlPW5ldyBQcm9taXNlKCh0LGEpPT57bGV0IHI9aSgoKT0+e3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSwidW5saXN0ZW4iKSxuPWkoKCk9Pnt0KCkscigpfSwiY29tcGxldGUiKSxvPWkoKCk9PnthKHMuZXJyb3J8fG5ldyBET01FeGNlcHRpb24oIkFib3J0RXJyb3IiLCJBYm9ydEVycm9yIikpLHIoKX0sImVycm9yIik7cy5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsbikscy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbykscy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9KTtLaGUuc2V0KHMsZSl9ZnVuY3Rpb24gS210KHMpe1poZT1zKFpoZSl9ZnVuY3Rpb24gYUlhKHMpe3JldHVybiBKUGEoKS5pbmNsdWRlcyhzKT9mdW5jdGlvbiguLi5lKXtyZXR1cm4gcy5hcHBseShydyh0aGlzKSxlKSxsZCh0aGlzLnJlcXVlc3QpfTpmdW5jdGlvbiguLi5lKXtyZXR1cm4gbGQocy5hcHBseShydyh0aGlzKSxlKSl9fWZ1bmN0aW9uIHNJYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiI/YUlhKHMpOihzIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJnRJYShzKSxHaGUocyxRUGEoKSk/bmV3IFByb3h5KHMsWmhlKTpzKX1mdW5jdGlvbiBsZChzKXtpZihzIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gZUlhKHMpO2lmKFloZS5oYXMocykpcmV0dXJuIFloZS5nZXQocyk7bGV0IGU9c0lhKHMpO3JldHVybiBlIT09cyYmKFloZS5zZXQocyxlKSxHYWUuc2V0KGUscykpLGV9ZnVuY3Rpb24gSm10KHMsZSx7YmxvY2tlZDp0LHVwZ3JhZGU6YSxibG9ja2luZzpyLHRlcm1pbmF0ZWQ6bn09e30pe2xldCBvPWluZGV4ZWREQi5vcGVuKHMsZSksbD1sZChvKTtyZXR1cm4gYSYmby5hZGRFdmVudExpc3RlbmVyKCJ1cGdyYWRlbmVlZGVkIixwPT57YShsZChvLnJlc3VsdCkscC5vbGRWZXJzaW9uLHAubmV3VmVyc2lvbixsZChvLnRyYW5zYWN0aW9uKSxwKX0pLHQmJm8uYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIscD0+dChwLm9sZFZlcnNpb24scC5uZXdWZXJzaW9uLHApKSxsLnRoZW4ocD0+e24mJnAuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT5uKCkpLHImJnAuYWRkRXZlbnRMaXN0ZW5lcigidmVyc2lvbmNoYW5nZSIsZD0+cihkLm9sZFZlcnNpb24sZC5uZXdWZXJzaW9uLGQpKX0pLmNhdGNoKCgpPT57fSksbH1mdW5jdGlvbiBlNnQocyx7YmxvY2tlZDplfT17fSl7bGV0IHQ9aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKHMpO3JldHVybiBlJiZ0LmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLGE9PmUoYS5vbGRWZXJzaW9uLGEpKSxsZCh0KS50aGVuKCgpPT57fSl9ZnVuY3Rpb24gWW10KHMsZSl7aWYoIShzIGluc3RhbmNlb2YgSURCRGF0YWJhc2UmJiEoZSBpbiBzKSYmdHlwZW9mIGU9PSJzdHJpbmciKSlyZXR1cm47aWYoWGhlLmdldChlKSlyZXR1cm4gWGhlLmdldChlKTtsZXQgdD1lLnJlcGxhY2UoL0Zyb21JbmRleCQvLCIiKSxhPWUhPT10LHI9cklhLmluY2x1ZGVzKHQpO2lmKCEodCBpbihhP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhKHJ8fGlJYS5pbmNsdWRlcyh0KSkpcmV0dXJuO2xldCBuPWkoYXN5bmMgZnVuY3Rpb24obywuLi5sKXtsZXQgcD10aGlzLnRyYW5zYWN0aW9uKG8scj8icmVhZHdyaXRlIjoicmVhZG9ubHkiKSxkPXAuc3RvcmU7cmV0dXJuIGEmJihkPWQuaW5kZXgobC5zaGlmdCgpKSksKGF3YWl0IFByb21pc2UuYWxsKFtkW3RdKC4uLmwpLHImJnAuZG9uZV0pKVswXX0sIm1ldGhvZCIpO3JldHVybiBYaGUuc2V0KGUsbiksbn1hc3luYyBmdW5jdGlvbipsSWEoLi4ucyl7bGV0IGU9dGhpcztpZihlIGluc3RhbmNlb2YgSURCQ3Vyc29yfHwoZT1hd2FpdCBlLm9wZW5DdXJzb3IoLi4ucykpLCFlKXJldHVybjtlPWU7bGV0IHQ9bmV3IFByb3h5KGUsbklhKTtmb3IoWG10LnNldCh0LGUpLEdhZS5zZXQodCxydyhlKSk7ZTspeWllbGQgdCxlPWF3YWl0KFFoZS5nZXQodCl8fGUuY29udGludWUoKSksUWhlLmRlbGV0ZSh0KX1mdW5jdGlvbiBRbXQocyxlKXtyZXR1cm4gZT09PVN5bWJvbC5hc3luY0l0ZXJhdG9yJiZHaGUocyxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmUsSURCQ3Vyc29yXSl8fGU9PT0iaXRlcmF0ZSImJkdoZShzLFtJREJJbmRleCxJREJPYmplY3RTdG9yZV0pfXZhciBHaGUsV210LEdtdCxLaGUsWWhlLEdhZSxaaGUscncsaUlhLHJJYSxYaGUsb0lhLFptdCxRaGUsWG10LG5JYSx0NnQ9ZygoKT0+e0doZT1pKChzLGUpPT5lLnNvbWUodD0+cyBpbnN0YW5jZW9mIHQpLCJpbnN0YW5jZU9mQW55Iik7aShRUGEsImdldElkYlByb3h5YWJsZVR5cGVzIik7aShKUGEsImdldEN1cnNvckFkdmFuY2VNZXRob2RzIik7S2hlPW5ldyBXZWFrTWFwLFloZT1uZXcgV2Vha01hcCxHYWU9bmV3IFdlYWtNYXA7aShlSWEsInByb21pc2lmeVJlcXVlc3QiKTtpKHRJYSwiY2FjaGVEb25lUHJvbWlzZUZvclRyYW5zYWN0aW9uIik7WmhlPXtnZXQocyxlLHQpe2lmKHMgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbil7aWYoZT09PSJkb25lIilyZXR1cm4gS2hlLmdldChzKTtpZihlPT09InN0b3JlIilyZXR1cm4gdC5vYmplY3RTdG9yZU5hbWVzWzFdP3ZvaWQgMDp0Lm9iamVjdFN0b3JlKHQub2JqZWN0U3RvcmVOYW1lc1swXSl9cmV0dXJuIGxkKHNbZV0pfSxzZXQocyxlLHQpe3JldHVybiBzW2VdPXQsITB9LGhhcyhzLGUpe3JldHVybiBzIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJihlPT09ImRvbmUifHxlPT09InN0b3JlIik/ITA6ZSBpbiBzfX07aShLbXQsInJlcGxhY2VUcmFwcyIpO2koYUlhLCJ3cmFwRnVuY3Rpb24iKTtpKHNJYSwidHJhbnNmb3JtQ2FjaGFibGVWYWx1ZSIpO2kobGQsIndyYXAiKTtydz1pKHM9PkdhZS5nZXQocyksInVud3JhcCIpO2koSm10LCJvcGVuREIiKTtpKGU2dCwiZGVsZXRlREIiKTtpSWE9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxySWE9WyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciJdLFhoZT1uZXcgTWFwO2koWW10LCJnZXRNZXRob2QiKSxLbXQocz0+KHsuLi5zLGdldDppKChlLHQsYSk9PlltdChlLHQpfHxzLmdldChlLHQsYSksImdldCIpLGhhczppKChlLHQpPT4hIVltdChlLHQpfHxzLmhhcyhlLHQpLCJoYXMiKX0pKTtvSWE9WyJjb250aW51ZSIsImNvbnRpbnVlUHJpbWFyeUtleSIsImFkdmFuY2UiXSxabXQ9e30sUWhlPW5ldyBXZWFrTWFwLFhtdD1uZXcgV2Vha01hcCxuSWE9e2dldChzLGUpe2lmKCFvSWEuaW5jbHVkZXMoZSkpcmV0dXJuIHNbZV07bGV0IHQ9Wm10W2VdO3JldHVybiB0fHwodD1abXRbZV09ZnVuY3Rpb24oLi4uYSl7UWhlLnNldCh0aGlzLFhtdC5nZXQodGhpcylbZV0oLi4uYSkpfSksdH19O2kobElhLCJpdGVyYXRlIik7aShRbXQsImlzSXRlcmF0b3JQcm9wIiksS210KHM9Pih7Li4ucyxnZXQoZSx0LGEpe3JldHVybiBRbXQoZSx0KT9sSWE6cy5nZXQoZSx0LGEpfSxoYXMoZSx0KXtyZXR1cm4gUW10KGUsdCl8fHMuaGFzKGUsdCl9fSkpfSk7dmFyIEpoZT1nKCgpPT57dTkoKTtzdygpO2c5KCk7aW8oKTtaMigpO1U0KCk7dDZ0KCl9KTt2YXIgbncsZTRlPWcoKCk9PntKaGUoKTtudz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJTdG9yZSIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuaW5pdENhbGxlZD0hMSx0aGlzLnJlYWR5RGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLm9wdGlvbnM9ZX1hc3luYyBpbml0KCl7aWYodGhpcy5pbml0Q2FsbGVkKXthd2FpdCB0aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZTtyZXR1cm59dGhpcy5pbml0Q2FsbGVkPSEwO2xldCBlPW5ldyB3MS5TbWFydGVudjtpZighZS5pc0Jyb3dzZXImJiFnbG9iYWxUaGlzLmluZGV4ZWREQiYmKGNvbnNvbGUubG9nKCJoZXkiKSxjb25zb2xlLmxvZyhnbG9iYWxUaGlzLmluZGV4ZWREQiksYXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIvYXV0byIpLCFnbG9iYWxUaGlzLmluZGV4ZWREQikpe2xldCB0PWF3YWl0IGUuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiIik7Z2xvYmFsVGhpcy5pbmRleGVkREI9bmV3IHQuSURCRmFjdG9yeX10aGlzLmRiPWF3YWl0IG93Lm9wZW5EQih0aGlzLm9wdGlvbnMuZGJOYW1lLDEse3VwZ3JhZGU6aSh0PT57dC5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX0sInVwZ3JhZGUiKX0pLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9YXN5bmMgZ2V0KGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLGUpfWFzeW5jIGNoZWNrKGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSwhIWF3YWl0IHRoaXMuZ2V0KGUpfWFzeW5jIHNldChlLHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLnB1dCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQsZSl9YXN5bmMgZGVsZXRlKGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmRlbGV0ZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLGUpfWFzeW5jIGNsZWFyKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuY2xlYXIodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9YXN5bmMga2V5cygpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldEFsbEtleXModGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9fX0pO3ZhciB0NGUsczZ0PWcoKCk9PntlNGUoKTtKaGUoKTt0NGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRyZXF1ZXN0Q2FjaGUiKX1jb25zdHJ1Y3RvcihlPSJkZWZhdWx0Iil7dGhpcy53ZWJzdG9yZT1uZXcgbncoe2RiTmFtZToidHJTdG9yZSIsc3RvcmVOYW1lOmB0clN0b3JlLSR7ZX1gfSl9YnVpbGRLZXkoZSl7cmV0dXJuIGpyLnN0cmluZ2lmeSh7bWV0aG9kOmUubWV0aG9kLHJlcXVlc3Q6ZS5yZXF1ZXN0fSl9YXN5bmMgc2V0QnlSZXF1ZXN0KGUpe2lmKCFlLnJlc3BvbnNlKXRocm93IG5ldyBFcnJvcigiWW91IGNhbm5vdCBzdG9yZSByZXF1ZXN0cyB3aXRob3V0IGEgcmVzcG9uc2UgcHJlc2VudCIpO2F3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHRoaXMuYnVpbGRLZXkoZSksZSl9YXN5bmMgZ2V0QnlSZXF1ZXN0KGUpe3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0aGlzLmJ1aWxkS2V5KGUpKX19fSk7dmFyIGsxPXt9O3l0KGsxLHtUeXBlZHJlcXVlc3RDYWNoZTooKT0+dDRlLFdlYlN0b3JlOigpPT5ud30pO3ZhciBLYWU9ZygoKT0+e3M2dCgpO2U0ZSgpfSk7dmFyIGx3PWcoKCk9PntkMCgpO3N3KCk7ZzkoKTtpbygpO0thZSgpfSk7dmFyIGI5LFphZT1nKCgpPT57bHcoKTtiOT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZVN0b3JlIil9Y29uc3RydWN0b3IoZT0id2VicmVxdWVzdC12NCIsdD0iY2FjaGUiKXt0aGlzLndlYnN0b3JlPW5ldyBrMS5XZWJTdG9yZSh7ZGJOYW1lOmUsc3RvcmVOYW1lOnR9KSx0aGlzLmluaXRQcm9taXNlPXRoaXMuaW5pdCgpfWFzeW5jIGluaXQoKXt9Z2VuZXJhdGVDYWNoZUtleShlKXtsZXQgdD1lLnVybCxhPWUubWV0aG9kO3JldHVybiBhPT09IkdFVCI/dDpgJHthfToke3R9YH1hc3luYyBzZXQoZSx0KXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuc2V0KGUsdCl9YXN5bmMgZ2V0KGUpe2F3YWl0IHRoaXMuaW5pdFByb21pc2U7dHJ5e3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldChlKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19YXN5bmMgaGFzKGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2hlY2soZSl9YXN5bmMgZGVsZXRlKGUpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5kZWxldGUoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2xlYXIoKX1yZXNwb25zZUZyb21DYWNoZUVudHJ5KGUpe2xldCB0PW5ldyBIZWFkZXJzKGUuaGVhZGVycyk7cmV0dXJuIG5ldyBSZXNwb25zZShlLnJlc3BvbnNlLHtzdGF0dXM6ZS5zdGF0dXMsc3RhdHVzVGV4dDplLnN0YXR1c1RleHQsaGVhZGVyczp0fSl9YXN5bmMgY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLHQsYSl7bGV0IHI9dC5jbG9uZSgpLG49YXdhaXQgci5hcnJheUJ1ZmZlcigpLG89e307cmV0dXJuIHIuaGVhZGVycy5mb3JFYWNoKChsLHApPT57b1twXT1sfSkse3Jlc3BvbnNlOm4saGVhZGVyczpvLHRpbWVzdGFtcDpEYXRlLm5vdygpLGV0YWc6YT8uZXRhZ3x8ci5oZWFkZXJzLmdldCgiZXRhZyIpfHx2b2lkIDAsbGFzdE1vZGlmaWVkOmE/Lmxhc3RNb2RpZmllZHx8ci5oZWFkZXJzLmdldCgibGFzdC1tb2RpZmllZCIpfHx2b2lkIDAsbWF4QWdlOmE/Lm1heEFnZSx1cmw6ZSxzdGF0dXM6ci5zdGF0dXMsc3RhdHVzVGV4dDpyLnN0YXR1c1RleHR9fWFzeW5jIHBydW5lRXhwaXJlZCgpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLDB9fX0pO2Z1bmN0aW9uIGNJYShzKXtsZXQgZT17bWF4QWdlOjAsaW1tdXRhYmxlOiExLG5vQ2FjaGU6ITEsbm9TdG9yZTohMSxtdXN0UmV2YWxpZGF0ZTohMX07aWYoIXMpcmV0dXJuIGU7bGV0IHQ9cy50b0xvd2VyQ2FzZSgpLnNwbGl0KCIsIikubWFwKGE9PmEudHJpbSgpKTtmb3IobGV0IGEgb2YgdClpZihhPT09Im5vLWNhY2hlIillLm5vQ2FjaGU9ITA7ZWxzZSBpZihhPT09Im5vLXN0b3JlIillLm5vU3RvcmU9ITA7ZWxzZSBpZihhPT09ImltbXV0YWJsZSIpZS5pbW11dGFibGU9ITA7ZWxzZSBpZihhPT09Im11c3QtcmV2YWxpZGF0ZSIpZS5tdXN0UmV2YWxpZGF0ZT0hMDtlbHNlIGlmKGEuc3RhcnRzV2l0aCgibWF4LWFnZT0iKSl7bGV0IHI9cGFyc2VJbnQoYS5zcGxpdCgiPSIpWzFdLDEwKTtpc05hTihyKXx8KGUubWF4QWdlPXIqMWUzKX1yZXR1cm4gZX1mdW5jdGlvbiBkSWEocyl7aWYocyl0cnl7cmV0dXJuIG5ldyBEYXRlKHMpLmdldFRpbWUoKX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIGNkKHMpe2xldCBlPXMuZ2V0KCJjYWNoZS1jb250cm9sIiksdD1zLmdldCgiZXhwaXJlcyIpLGE9cy5nZXQoImV0YWciKSxyPXMuZ2V0KCJsYXN0LW1vZGlmaWVkIiksbj1jSWEoZSk7aWYobi5tYXhBZ2U9PT0wJiZ0KXtsZXQgbz1kSWEodCk7byYmKG4ubWF4QWdlPU1hdGgubWF4KDAsby1EYXRlLm5vdygpKSl9cmV0dXJue21heEFnZTpuLm1heEFnZXx8MCxldGFnOmF8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6cnx8dm9pZCAwLGltbXV0YWJsZTpuLmltbXV0YWJsZXx8ITEsbm9DYWNoZTpuLm5vQ2FjaGV8fCExLG5vU3RvcmU6bi5ub1N0b3JlfHwhMSxtdXN0UmV2YWxpZGF0ZTpuLm11c3RSZXZhbGlkYXRlfHwhMX19ZnVuY3Rpb24gY3cocyxlKXtpZihlLm5vU3RvcmUpcmV0dXJuITE7aWYoZS5pbW11dGFibGUpcmV0dXJuITA7bGV0IHQ9RGF0ZS5ub3coKS1zLnRpbWVzdGFtcCxhPXMubWF4QWdlfHxlLm1heEFnZXx8MDtyZXR1cm4gYT09PTA/ITE6dDxhfWZ1bmN0aW9uIGR3KHMpe3JldHVybiBzLm5vQ2FjaGV8fHMubXVzdFJldmFsaWRhdGV9ZnVuY3Rpb24gWGFlKHMpe2xldCBlPXt9O3JldHVybiBzLmV0YWcmJihlWyJpZi1ub25lLW1hdGNoIl09cy5ldGFnKSxzLmxhc3RNb2RpZmllZCYmKGVbImlmLW1vZGlmaWVkLXNpbmNlIl09cy5sYXN0TW9kaWZpZWQpLGV9ZnVuY3Rpb24gUWFlKHMpe2xldCBlPXt9O3JldHVybiBzLmZvckVhY2goKHQsYSk9PntlW2FdPXR9KSxlfWZ1bmN0aW9uIGk2dChzKXtsZXQgZT1uZXcgSGVhZGVycztyZXR1cm4gT2JqZWN0LmVudHJpZXMocykuZm9yRWFjaCgoW3QsYV0pPT57ZS5zZXQodCxhKX0pLGV9dmFyIEphZT1nKCgpPT57aShjSWEsInBhcnNlQ2FjaGVDb250cm9sIik7aShkSWEsInBhcnNlRXhwaXJlcyIpO2koY2QsImV4dHJhY3RDYWNoZU1ldGFkYXRhIik7aShjdywiaXNGcmVzaCIpO2koZHcsInJlcXVpcmVzUmV2YWxpZGF0aW9uIik7aShYYWUsImNyZWF0ZUNvbmRpdGlvbmFsSGVhZGVycyIpO2koUWFlLCJoZWFkZXJzVG9PYmplY3QiKTtpKGk2dCwib2JqZWN0VG9IZWFkZXJzIil9KTtmdW5jdGlvbiByNnQocyl7c3dpdGNoKHMpe2Nhc2UibmV0d29yay1maXJzdCI6cmV0dXJuIG5ldyBlc2U7Y2FzZSJjYWNoZS1maXJzdCI6cmV0dXJuIG5ldyBhNGU7Y2FzZSJzdGFsZS13aGlsZS1yZXZhbGlkYXRlIjpyZXR1cm4gbmV3IHM0ZTtjYXNlIm5ldHdvcmstb25seSI6cmV0dXJuIG5ldyBpNGU7Y2FzZSJjYWNoZS1vbmx5IjpyZXR1cm4gbmV3IHI0ZTtkZWZhdWx0OnJldHVybiBuZXcgZXNlfX12YXIgZXNlLGE0ZSxzNGUsaTRlLHI0ZSxvNnQ9ZygoKT0+e1phZSgpO0phZSgpO2VzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOZXR3b3JrRmlyc3RTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7dHJ5e2xldCB0PWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpO3JldHVybiB0Lm9rJiZhd2FpdCB0aGlzLmNhY2hlUmVzcG9uc2UoZSx0KSx7cmVzcG9uc2U6dCxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWNhdGNoKHQpe2UubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBOZXR3b3JrIGZhaWxlZCwgdHJ5aW5nIGNhY2hlOiIsdCk7bGV0IGE9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihhKXJldHVybntyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9O3Rocm93IHR9fWFzeW5jIGNhY2hlUmVzcG9uc2UoZSx0KXtsZXQgYT1jZCh0LmhlYWRlcnMpO2lmKGEubm9TdG9yZSlyZXR1cm47bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCx0LGEpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxyKX19LGE0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZUZpcnN0U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCB0PWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYodCl7bGV0IG49Y2QobmV3IEhlYWRlcnModC5oZWFkZXJzKSk7aWYoY3codCxuKSlyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIGhpdCAoZnJlc2gpOiIsZS5yZXF1ZXN0LnVybCkse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07aWYoZHcobikmJih0LmV0YWd8fHQubGFzdE1vZGlmaWVkKSlyZXR1cm4gYXdhaXQgdGhpcy5yZXZhbGlkYXRlKGUsdCl9ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIG1pc3MsIGZldGNoaW5nOiIsZS5yZXF1ZXN0LnVybCk7bGV0IGE9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCkscj1jZChhLmhlYWRlcnMpO2lmKCFyLm5vU3RvcmUpe2xldCBuPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwsYSxyKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXksbil9cmV0dXJue3Jlc3BvbnNlOmEsZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlKGUsdCl7bGV0IGE9WGFlKHQpLHI9bmV3IFJlcXVlc3QoZS5yZXF1ZXN0LnVybCx7bWV0aG9kOmUucmVxdWVzdC5tZXRob2QsaGVhZGVyczp7Li4uUWFlKGUucmVxdWVzdC5oZWFkZXJzKSwuLi5hfX0pO3RyeXtsZXQgbj1hd2FpdCBlLmZldGNoRm4ocik7aWYobi5zdGF0dXM9PT0zMDQpcmV0dXJuIGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBDYWNoZSByZXZhbGlkYXRlZCAoMzA0KToiLGUucmVxdWVzdC51cmwpLHQudGltZXN0YW1wPURhdGUubm93KCksYXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHQpLHtyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeSh0KSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITB9O2lmKG4ub2spe2xldCBvPWNkKG4uaGVhZGVycyk7aWYoIW8ubm9TdG9yZSl7bGV0IGw9YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxuLG8pO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxsKX19cmV0dXJue3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiEwfX1jYXRjaChuKXtyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIFJldmFsaWRhdGlvbiBmYWlsZWQsIHVzaW5nIGNhY2hlOiIsbikse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0sczRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0YWxlV2hpbGVSZXZhbGlkYXRlU3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCB0PWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYodCl7bGV0IG49ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkodCk7cmV0dXJuIHRoaXMucmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLHQpLmNhdGNoKG89PntlLmxvZ2dpbmcmJmNvbnNvbGUud2FybigiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGZhaWxlZDoiLG8pfSkse3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfX1sZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxyPWNkKGEuaGVhZGVycyk7aWYoIXIubm9TdG9yZSYmYS5vayl7bGV0IG49YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxhLHIpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6YSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGVJbkJhY2tncm91bmQoZSx0KXtsZXQgYT1jZChuZXcgSGVhZGVycyh0LmhlYWRlcnMpKTtpZighKGN3KHQsYSkmJiFkdyhhKSkpdHJ5e2xldCByPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpO2lmKHIub2spe2xldCBuPWNkKHIuaGVhZGVycyk7aWYoIW4ubm9TdG9yZSl7bGV0IG89YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxyLG4pO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxvKSxlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gY29tcGxldGU6IixlLnJlcXVlc3QudXJsKX19fWNhdGNoKHIpe2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIscil9fX0saTRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5ldHdvcmtPbmx5U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe3JldHVybntyZXNwb25zZTphd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fX0scjRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlT25seVN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXtsZXQgdD1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKCF0KXRocm93IG5ldyBFcnJvcihgQ2FjaGUgbWlzcyBmb3IgJHtlLnJlcXVlc3QudXJsfSAoY2FjaGUtb25seSBtb2RlKWApO3JldHVybntyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeSh0KSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fX07aShyNnQsImdldFN0cmF0ZWd5SGFuZGxlciIpfSk7dmFyIHY5LG80ZT1nKCgpPT57WmFlKCk7bzZ0KCk7SmFlKCk7djk9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FjaGVNYW5hZ2VyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNhY2hlU3RvcmU9bmV3IGI5KGUsdCl9YXN5bmMgZXhlY3V0ZShlLHQsYSl7bGV0IHI9dGhpcy5kZXRlcm1pbmVTdHJhdGVneShlLHQpO2lmKHI9PT0ibmV0d29yay1vbmx5IilyZXR1cm57cmVzcG9uc2U6YXdhaXQgYShlKSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9O2xldCBuPXRoaXMuZ2VuZXJhdGVDYWNoZUtleShlLHQpLG89cjZ0KHIpLGw9e3JlcXVlc3Q6ZSxjYWNoZUtleTpuLGNhY2hlU3RvcmU6dGhpcy5jYWNoZVN0b3JlLGZldGNoRm46YSxsb2dnaW5nOnQubG9nZ2luZ307cmV0dXJuIGF3YWl0IG8uZXhlY3V0ZShsKX1kZXRlcm1pbmVTdHJhdGVneShlLHQpe3JldHVybiB0LmNhY2hlU3RyYXRlZ3k/dC5jYWNoZVN0cmF0ZWd5OnQuY2FjaGU/dGhpcy5tYXBDYWNoZU1vZGVUb1N0cmF0ZWd5KHQuY2FjaGUpOmUuY2FjaGU/dGhpcy5tYXBDYWNoZU1vZGVUb1N0cmF0ZWd5KGUuY2FjaGUpOiJuZXR3b3JrLWZpcnN0In1tYXBDYWNoZU1vZGVUb1N0cmF0ZWd5KGUpe3N3aXRjaChlKXtjYXNlImRlZmF1bHQiOnJldHVybiJuZXR3b3JrLWZpcnN0IjtjYXNlIm5vLXN0b3JlIjpjYXNlInJlbG9hZCI6cmV0dXJuIm5ldHdvcmstb25seSI7Y2FzZSJuby1jYWNoZSI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2UiZm9yY2UtY2FjaGUiOnJldHVybiJjYWNoZS1maXJzdCI7Y2FzZSJvbmx5LWlmLWNhY2hlZCI6cmV0dXJuImNhY2hlLW9ubHkiO2RlZmF1bHQ6cmV0dXJuIm5ldHdvcmstZmlyc3QifX1nZW5lcmF0ZUNhY2hlS2V5KGUsdCl7cmV0dXJuIHQuY2FjaGVLZXk/dHlwZW9mIHQuY2FjaGVLZXk9PSJmdW5jdGlvbiI/dC5jYWNoZUtleShlKTp0LmNhY2hlS2V5OnRoaXMuY2FjaGVTdG9yZS5nZW5lcmF0ZUNhY2hlS2V5KGUpfWFzeW5jIGNsZWFyKCl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmNsZWFyKCl9YXN5bmMgZGVsZXRlKGUpe2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5kZWxldGUoZSl9YXN5bmMgaGFzKGUpe3JldHVybiBhd2FpdCB0aGlzLmNhY2hlU3RvcmUuaGFzKGUpfWdldFN0b3JlKCl7cmV0dXJuIHRoaXMuY2FjaGVTdG9yZX19fSk7ZnVuY3Rpb24gbjZ0KHMpe3N3aXRjaChzKXtjYXNlImV4cG9uZW50aWFsIjpyZXR1cm4gbmV3IHRzZTtjYXNlImxpbmVhciI6cmV0dXJuIG5ldyBuNGU7Y2FzZSJjb25zdGFudCI6cmV0dXJuIG5ldyBsNGU7ZGVmYXVsdDpyZXR1cm4gbmV3IHRzZX19ZnVuY3Rpb24gbDZ0KHMsZT0uMSl7bGV0IHQ9cyplKk1hdGgucmFuZG9tKCk7cmV0dXJuIHMrdH12YXIgdHNlLG40ZSxsNGUsYzZ0PWcoKCk9Pnt0c2U9Y2xhc3N7c3RhdGlje2kodGhpcywiRXhwb25lbnRpYWxCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxhKXtsZXQgcj10Kk1hdGgucG93KDIsZS0xKTtyZXR1cm4gTWF0aC5taW4ocixhKX19LG40ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMaW5lYXJCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxhKXtsZXQgcj10KmU7cmV0dXJuIE1hdGgubWluKHIsYSl9fSxsNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29uc3RhbnRCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxhKXtyZXR1cm4gTWF0aC5taW4odCxhKX19O2kobjZ0LCJnZXRCYWNrb2ZmQ2FsY3VsYXRvciIpO2kobDZ0LCJhZGRKaXR0ZXIiKX0pO3ZhciB4OSxjNGU9ZygoKT0+e2x3KCk7YzZ0KCk7eDk9Y2xhc3N7c3RhdGlje2kodGhpcywiUmV0cnlNYW5hZ2VyIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5vcHRpb25zPXttYXhBdHRlbXB0czplLm1heEF0dGVtcHRzPz8zLGJhY2tvZmY6ZS5iYWNrb2ZmPz8iZXhwb25lbnRpYWwiLGluaXRpYWxEZWxheTplLmluaXRpYWxEZWxheT8/MWUzLG1heERlbGF5OmUubWF4RGVsYXk/PzNlNCxyZXRyeU9uOmUucmV0cnlPbj8/WzQwOCw0MjksNTAwLDUwMiw1MDMsNTA0XSxvblJldHJ5OmUub25SZXRyeT8/KCgpPT57fSl9fWFzeW5jIGV4ZWN1dGUoZSx0KXtsZXQgYSxyO2ZvcihsZXQgbj0xO248PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cztuKyspdHJ5e2xldCBvPWF3YWl0IGUoKTtpZihvIGluc3RhbmNlb2YgUmVzcG9uc2UmJnRoaXMuc2hvdWxkUmV0cnlSZXNwb25zZShvKSl7aWYocj1vLG49PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHMpcmV0dXJuIG87bGV0IGw9dGhpcy5jYWxjdWxhdGVEZWxheShuKTt0aGlzLm9wdGlvbnMub25SZXRyeShuLG5ldyBFcnJvcihgSFRUUCAke28uc3RhdHVzfWApLGwpLGF3YWl0IHRoaXMuZGVsYXkobCk7Y29udGludWV9cmV0dXJuIG99Y2F0Y2gobyl7YT1vIGluc3RhbmNlb2YgRXJyb3I/bzpuZXcgRXJyb3IoU3RyaW5nKG8pKTtsZXQgbD10P3QobyxuKTp0aGlzLnNob3VsZFJldHJ5RXJyb3Iobyk7aWYobj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0c3x8IWwpdGhyb3cgYTtsZXQgcD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4sYSxwKSxhd2FpdCB0aGlzLmRlbGF5KHApfXRocm93IGF8fG5ldyBFcnJvcigiTWF4IHJldHJ5IGF0dGVtcHRzIHJlYWNoZWQiKX1hc3luYyBleGVjdXRlV2l0aEZhbGxiYWNrcyhlLHQsYSl7aWYoZS5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiTm8gVVJMcyBwcm92aWRlZCBmb3IgZmFsbGJhY2sgZXhlY3V0aW9uIik7bGV0IHIsbj1bXTtmb3IobGV0IG8gb2YgZSl0cnl7bGV0IGw9YXdhaXQgdGhpcy5leGVjdXRlKGFzeW5jKCk9PmF3YWl0IGEobyx0KSk7aWYobC5zdGF0dXM8NDAwfHxsLnN0YXR1cz49NDAwJiZsLnN0YXR1czw1MDAmJmwuc3RhdHVzIT09NDA4KXJldHVybiBsO24ucHVzaChvKSxyPW5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtsLnN0YXR1c31gKX1jYXRjaChsKXtuLnB1c2gobykscj1sIGluc3RhbmNlb2YgRXJyb3I/bDpuZXcgRXJyb3IoU3RyaW5nKGwpKX10aHJvdyBuZXcgRXJyb3IoYEFsbCBVUkxzIGZhaWxlZDogJHtuLmpvaW4oIiwgIil9LiBMYXN0IGVycm9yOiAke3I/Lm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIn1gKX1zaG91bGRSZXRyeVJlc3BvbnNlKGUpe2xldCB0PXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUpOkFycmF5LmlzQXJyYXkodCk/dC5pbmNsdWRlcyhlLnN0YXR1cyk6ITF9c2hvdWxkUmV0cnlFcnJvcihlKXtpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yJiZlLm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIil8fGUubmFtZT09PSJBYm9ydEVycm9yInx8ZS5tZXNzYWdlLmluY2x1ZGVzKCJ0aW1lb3V0IikpcmV0dXJuITA7bGV0IHQ9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Qodm9pZCAwLGUpOiExfWNhbGN1bGF0ZURlbGF5KGUpe2xldCBhPW42dCh0aGlzLm9wdGlvbnMuYmFja29mZikuY2FsY3VsYXRlKGUsdGhpcy5vcHRpb25zLmluaXRpYWxEZWxheSx0aGlzLm9wdGlvbnMubWF4RGVsYXkpO3JldHVybiBsNnQoYSl9YXN5bmMgZGVsYXkoZSl7YXdhaXQgWHQuZGVsYXlGb3IoZSl9fX0pO3ZhciB5OSxkNGU9ZygoKT0+e2x3KCk7eTk9Y2xhc3N7c3RhdGlje2kodGhpcywiUmVxdWVzdERlZHVwbGljYXRvciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5pbkZsaWdodFJlcXVlc3RzPW5ldyBNYXB9Z2VuZXJhdGVLZXkoZSl7bGV0IHQ9ZS51cmwsYT1lLm1ldGhvZDtyZXR1cm4gYT09PSJHRVQifHxhPT09IkhFQUQiP2Ake2F9OiR7dH1gOmAke2F9OiR7dH06JHtEYXRlLm5vdygpfWB9YXN5bmMgZXhlY3V0ZShlLHQpe2xldCBhPXRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5nZXQoZSk7aWYoYSlyZXR1cm57cmVzcG9uc2U6KGF3YWl0IGEucHJvbWlzZSkuY2xvbmUoKSx3YXNEZWR1cGxpY2F0ZWQ6ITB9O2xldCByPW10LmRlZmVyKCk7dGhpcy5pbkZsaWdodFJlcXVlc3RzLnNldChlLHIpO3RyeXtsZXQgbj1hd2FpdCB0KCk7cmV0dXJuIHIucmVzb2x2ZShuKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLHtyZXNwb25zZTpuLHdhc0RlZHVwbGljYXRlZDohMX19Y2F0Y2gobil7dGhyb3cgci5yZWplY3QobiksdGhpcy5pbkZsaWdodFJlcXVlc3RzLmRlbGV0ZShlKSxufX1pc0luRmxpZ2h0KGUpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuaGFzKGUpfWdldEluRmxpZ2h0Q291bnQoKXtyZXR1cm4gdGhpcy5pbkZsaWdodFJlcXVlc3RzLnNpemV9Y2xlYXIoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuY2xlYXIoKX19fSk7ZnVuY3Rpb24gdUlhKHMpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1uZXcgWHQuVGltZW91dChzLG51bGwpO3JldHVybiB0LnByb21pc2UudGhlbigoKT0+e2UuYWJvcnQoKX0pLHtjb250cm9sbGVyOmUsY2xlYW51cDppKCgpPT57dC5jYW5jZWwoKX0sImNsZWFudXAiKX19YXN5bmMgZnVuY3Rpb24gdTRlKHMsZSx0KXtsZXR7Y29udHJvbGxlcjphLGNsZWFudXA6cn09dUlhKHQpO3RyeXtsZXQgbj1hd2FpdCBmZXRjaChzLHsuLi5lLHNpZ25hbDphLnNpZ25hbH0pO3JldHVybiByKCksbn1jYXRjaChuKXt0aHJvdyByKCksbiBpbnN0YW5jZW9mIEVycm9yJiZuLm5hbWU9PT0iQWJvcnRFcnJvciI/bmV3IEVycm9yKGBSZXF1ZXN0IHRpbWVvdXQgYWZ0ZXIgJHt0fW1zOiAke3N9YCk6bn19dmFyIGQ2dD1nKCgpPT57bHcoKTtpKHVJYSwiY3JlYXRlVGltZW91dENvbnRyb2xsZXIiKTtpKHU0ZSwiZmV0Y2hXaXRoVGltZW91dCIpfSk7dmFyIGwzLHA0ZT1nKCgpPT57UGhlKCk7bzRlKCk7YzRlKCk7ZDRlKCk7ZDZ0KCk7bDM9Y2xhc3N7c3RhdGlje2kodGhpcywiV2VicmVxdWVzdENsaWVudCIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMuZGVmYXVsdE9wdGlvbnM9ZSx0aGlzLmludGVyY2VwdG9yTWFuYWdlcj1uZXcgZjksdGhpcy5jYWNoZU1hbmFnZXI9bmV3IHY5LHRoaXMuZGVkdXBsaWNhdG9yPW5ldyB5OX1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVxdWVzdEludGVyY2VwdG9yKGUpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKX1hZGRFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZEVycm9ySW50ZXJjZXB0b3IoZSl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcihlKX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpfWNsZWFySW50ZXJjZXB0b3JzKCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuY2xlYXJBbGwoKX1hc3luYyBjbGVhckNhY2hlKCl7YXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuY2xlYXIoKX1hc3luYyByZXF1ZXN0KGUsdD17fSl7bGV0IGE9ey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsLi4udH0scjtpZih0eXBlb2YgZT09InN0cmluZyI/cj1uZXcgUmVxdWVzdChlLGEpOnI9ZSxyPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXF1ZXN0KHIpLGEuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0KWZvcihsZXQgbyBvZiBhLmludGVyY2VwdG9ycy5yZXF1ZXN0KXI9YXdhaXQgbyhyKTtpZihhLmRlZHVwbGljYXRlPz8hMSl7bGV0IG89dGhpcy5kZWR1cGxpY2F0b3IuZ2VuZXJhdGVLZXkocik7cmV0dXJuKGF3YWl0IHRoaXMuZGVkdXBsaWNhdG9yLmV4ZWN1dGUobyxhc3luYygpPT5hd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHIsYSkpKS5yZXNwb25zZX1yZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChyLGEpfWFzeW5jIGV4ZWN1dGVSZXF1ZXN0KGUsdCl7dHJ5e2xldCBhPXR5cGVvZiB0LnJldHJ5PT0ib2JqZWN0Ij90LnJldHJ5OnQucmV0cnk/e306dm9pZCAwLHI9aShhc3luYyBsPT57bGV0IHA9dC50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IHU0ZShsLnVybCx7bWV0aG9kOmwubWV0aG9kLGhlYWRlcnM6bC5oZWFkZXJzLGJvZHk6bC5ib2R5LC4uLnR9LHApfSwiZmV0Y2hGbkZvclJlcXVlc3QiKSxuPWkoYXN5bmMobCxwKT0+e2xldCBkPXQudGltZW91dD8/NmU0O3JldHVybiBhd2FpdCB1NGUobCxwLGQpfSwiZmV0Y2hGbkZvckZhbGxiYWNrcyIpLG87aWYoYSl7bGV0IGw9bmV3IHg5KGEpO2lmKHQuZmFsbGJhY2tVcmxzJiZ0LmZhbGxiYWNrVXJscy5sZW5ndGg+MCl7bGV0IHA9W2UudXJsLC4uLnQuZmFsbGJhY2tVcmxzXTtvPWF3YWl0IGwuZXhlY3V0ZVdpdGhGYWxsYmFja3MocCx7bWV0aG9kOmUubWV0aG9kLGhlYWRlcnM6ZS5oZWFkZXJzLGJvZHk6ZS5ib2R5LC4uLnR9LG4pfWVsc2Ugbz1hd2FpdCBsLmV4ZWN1dGUoYXN5bmMoKT0+KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSx0LHIpKS5yZXNwb25zZSl9ZWxzZSBvPShhd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5leGVjdXRlKGUsdCxyKSkucmVzcG9uc2U7aWYobz1hd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzUmVzcG9uc2UobyksdC5pbnRlcmNlcHRvcnM/LnJlc3BvbnNlKWZvcihsZXQgbCBvZiB0LmludGVyY2VwdG9ycy5yZXNwb25zZSlvPWF3YWl0IGwobyk7cmV0dXJuIG99Y2F0Y2goYSl7dGhyb3cgYXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc0Vycm9yKGEgaW5zdGFuY2VvZiBFcnJvcj9hOm5ldyBFcnJvcihTdHJpbmcoYSkpKX19YXN5bmMgZ2V0SnNvbihlLHQ9e30pe2xldCBhPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi50LG1ldGhvZDoiR0VUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLnQuaGVhZGVyc3x8e319fSk7aWYoIWEub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7YS5zdGF0dXN9OiAke2Euc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgYS5qc29uKCl9YXN5bmMgcG9zdEpzb24oZSx0LGE9e30pe2xldCByPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi5hLG1ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uYS5oZWFkZXJzfHx7fX0sYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pO2lmKCFyLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke3Iuc3RhdHVzfTogJHtyLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IHIuanNvbigpfWFzeW5jIHB1dEpzb24oZSx0LGE9e30pe2xldCByPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi5hLG1ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KHQpfSk7aWYoIXIub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7ci5zdGF0dXN9OiAke3Iuc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgci5qc29uKCl9YXN5bmMgZGVsZXRlSnNvbihlLHQ9e30pe2xldCBhPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi50LG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLnQuaGVhZGVyc3x8e319fSk7aWYoIWEub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7YS5zdGF0dXN9OiAke2Euc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgYS5qc29uKCl9fX0pO2FzeW5jIGZ1bmN0aW9uIEZsKHMsZSl7bGV0IHQ9cyBpbnN0YW5jZW9mIFJlcXVlc3Q/cy51cmw6U3RyaW5nKHMpLGE9cyBpbnN0YW5jZW9mIFJlcXVlc3Q/czpuZXcgUmVxdWVzdCh0LGUpO3JldHVybiBhd2FpdCBTMS5yZXF1ZXN0KGEsZSl9dmFyIFMxLHU2dD1nKCgpPT57cDRlKCk7UzE9bmV3IGwzO2koRmwsIndlYnJlcXVlc3QiKSxGbC5nZXRKc29uPWFzeW5jIGZ1bmN0aW9uKHMsZSl7cmV0dXJuIGF3YWl0IFMxLmdldEpzb24ocyxlKX0sRmwucG9zdEpzb249YXN5bmMgZnVuY3Rpb24ocyxlLHQpe3JldHVybiBhd2FpdCBTMS5wb3N0SnNvbihzLGUsdCl9LEZsLnB1dEpzb249YXN5bmMgZnVuY3Rpb24ocyxlLHQpe3JldHVybiBhd2FpdCBTMS5wdXRKc29uKHMsZSx0KX0sRmwuZGVsZXRlSnNvbj1hc3luYyBmdW5jdGlvbihzLGUpe3JldHVybiBhd2FpdCBTMS5kZWxldGVKc29uKHMsZSl9LEZsLmFkZFJlcXVlc3RJbnRlcmNlcHRvcj1mdW5jdGlvbihzKXtTMS5hZGRSZXF1ZXN0SW50ZXJjZXB0b3Iocyl9LEZsLmFkZFJlc3BvbnNlSW50ZXJjZXB0b3I9ZnVuY3Rpb24ocyl7UzEuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcihzKX0sRmwuYWRkRXJyb3JJbnRlcmNlcHRvcj1mdW5jdGlvbihzKXtTMS5hZGRFcnJvckludGVyY2VwdG9yKHMpfSxGbC5jbGVhckludGVyY2VwdG9ycz1mdW5jdGlvbigpe1MxLmNsZWFySW50ZXJjZXB0b3JzKCl9LEZsLmNsZWFyQ2FjaGU9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBTMS5jbGVhckNhY2hlKCl9LEZsLmNyZWF0ZUNsaWVudD1mdW5jdGlvbihzKXtyZXR1cm4gbmV3IGwzKHMpfSxGbC5nZXREZWZhdWx0Q2xpZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFMxfX0pO3ZhciBfMT17fTt5dChfMSx7Q2FjaGVNYW5hZ2VyOigpPT52OSxDYWNoZVN0b3JlOigpPT5iOSxJbnRlcmNlcHRvck1hbmFnZXI6KCk9PmY5LFJlcXVlc3REZWR1cGxpY2F0b3I6KCk9Pnk5LFJldHJ5TWFuYWdlcjooKT0+eDksV2VicmVxdWVzdENsaWVudDooKT0+bDMsY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzOigpPT5YYWUsZXh0cmFjdENhY2hlTWV0YWRhdGE6KCk9PmNkLGhlYWRlcnNUb09iamVjdDooKT0+UWFlLGlzRnJlc2g6KCk9PmN3LG9iamVjdFRvSGVhZGVyczooKT0+aTZ0LHJlcXVpcmVzUmV2YWxpZGF0aW9uOigpPT5kdyx3ZWJyZXF1ZXN0OigpPT5GbH0pO3ZhciBhc2U9ZygoKT0+e3U2dCgpO3A0ZSgpO280ZSgpO1phZSgpO2M0ZSgpO1BoZSgpO2Q0ZSgpO0phZSgpfSk7dmFyICRwLERwPWcoKCk9PntVNCgpOyRwPXhuKGl5KCksMSk7dTkoKTskaGUoKTtkMCgpO0VoZSgpO2lvKCk7YXNlKCl9KTt2YXIgTTEsdzk9ZygoKT0+e0RwKCk7TTE9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRSZXNwb25zZUVycm9yIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmVycm9yVGV4dD1lLHRoaXMuZXJyb3JEYXRhPXR9fX0pO3ZhciBpc2UscDZ0PWcoKCk9Pnt3OSgpO0RwKCk7aXNlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkVG9vbHMiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9jYWxEYXRhPXt9fWFzeW5jIHBhc3NHdWFyZHMoZSx0KXtsZXQgYT1uZXcgdjAuR3VhcmRTZXQoZSk7aWYoIWF3YWl0IGEuYWxsR3VhcmRzUGFzcyh0KSl7bGV0IG49YXdhaXQgYS5nZXRGYWlsZWRIaW50KHQpO3Rocm93IG5ldyBNMShgZ3VhcmQgZmFpbGVkOiAke259YCx7ZmFpbGVkSGludDpufSl9fX19KTt2YXIgaDRlLGY0ZT1nKCgpPT57RHAoKTt3OSgpO3A2dCgpO2g0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZEhhbmRsZXIiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMubWV0aG9kPWUsdGhpcy5oYW5kbGVyRnVuY3Rpb249dH1hc3luYyBhZGRSZXNwb25zZShlKXtpZihlLm1ldGhvZCE9PXRoaXMubWV0aG9kKXRocm93IG5ldyBFcnJvcigidGhpcyBoYW5kbGVyIGhhcyBiZWVuIGdpdmVuIGEgd3JvbmcgbWV0aG9kIHRvIGFuc3dlciB0by4gUGxlYXNlIHVzZSBhIFR5cGVkUm91dGVyIHRvIGZpbHRlciByZXF1ZXN0cyIpO2xldCB0LGE9bmV3IGlzZTtlLmxvY2FsRGF0YSYmKGEubG9jYWxEYXRhPWUubG9jYWxEYXRhKTtsZXQgcj1hd2FpdCB0aGlzLmhhbmRsZXJGdW5jdGlvbihlLnJlcXVlc3QsYSkuY2F0Y2gobj0+e24gaW5zdGFuY2VvZiBNMT90PW46Y29uc29sZS5sb2cobil9KTtyZXR1cm4gdCYmKGUuZXJyb3I9e3RleHQ6dC5lcnJvclRleHQsZGF0YTp0LmVycm9yRGF0YX0pLHImJihlLnJlc3BvbnNlPXIpLGU/LmNvcnJlbGF0aW9uPy5waGFzZSYmKGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIiksZX19fSk7dmFyIGMzLHV3PWcoKCk9PntEcCgpO3JzZSgpO2Y0ZSgpO200ZSgpO3c5KCk7YzM9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJvdXRlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5ob29rcz17fSx0aGlzLnJvdXRlck1hcD1uZXcgRnMuT2JqZWN0TWFwLHRoaXMuaGFuZGxlck1hcD1uZXcgRnMuT2JqZWN0TWFwLHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zPW5ldyBGcy5PYmplY3RNYXAsdGhpcy5taWRkbGV3YXJlcz1bXSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwPW5ldyBGcy5JbnRlcmVzdE1hcChlPT5lKX1zdGF0aWMgZ2V0IGdsb2JhbEhvb2tzKCl7cmV0dXJuIGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzfHwoZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3M9e30pLGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzfXN0YXRpYyBzZXQgZ2xvYmFsSG9va3MoZSl7Z2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3M9ZX1zdGF0aWMgc2V0R2xvYmFsSG9va3MoZSl7bGV0IHQ9cy5nbG9iYWxIb29rcztzLmdsb2JhbEhvb2tzPXsuLi50LC4uLmV9fXN0YXRpYyBjbGVhckdsb2JhbEhvb2tzKCl7Z2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3M9e319c2V0SG9va3MoZSl7dGhpcy5ob29rcz17Li4udGhpcy5ob29rcywuLi5lfX1jYWxsSG9vayhlLHQpe3RyeXtzLmdsb2JhbEhvb2tzW2VdPy4odCksdGhpcy5ob29rc1tlXT8uKHQpfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoYFR5cGVkUm91dGVyIGhvb2sgZXJyb3IgKCR7ZX0pOmAsYSl9fWFkZE1pZGRsZXdhcmUoZSl7dGhpcy5taWRkbGV3YXJlcy5wdXNoKGUpfWFkZFR5cGVkSGFuZGxlcihlKXtpZih0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLm1ldGhvZCkpdGhyb3cgbmV3IEVycm9yKGBhIFR5cGVkSGFuZGxlciBmb3IgJHtlLm1ldGhvZH0gYWxyZWR5IGV4aXN0cyEgQ2FuJ3QgYWRkIGFub3RoZXIgb25lLmApO3RoaXMuaGFuZGxlck1hcC5hZGQoZSl9YWRkVHlwZWRSb3V0ZXIoZSl7dGhpcy5yb3V0ZXJNYXAuZmluZFN5bmMoYT0+YT09PWUpfHwodGhpcy5yb3V0ZXJNYXAuYWRkKGUpLGUuYWRkVHlwZWRSb3V0ZXIodGhpcykpfWNoZWNrRm9yVHlwZWRIYW5kbGVyKGUpe3JldHVybiEhdGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSl9Z2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUsdD1bXSl7dC5wdXNoKHRoaXMpO2xldCBhO3JldHVybiBhPXRoaXMuaGFuZGxlck1hcC5maW5kU3luYyhyPT5yLm1ldGhvZD09PWUpLGF8fHRoaXMucm91dGVyTWFwLmdldEFycmF5KCkuZm9yRWFjaChyPT57IWEmJiF0LmluY2x1ZGVzKHIpJiYoYT1yLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLHQpKX0pLGF9Z2V0VHlwZWRIYW5kbGVyQW5kUm91dGVyKGUsdD1bXSl7dC5wdXNoKHRoaXMpO2xldCBhPXRoaXMuaGFuZGxlck1hcC5maW5kU3luYyhyPT5yLm1ldGhvZD09PWUpO2lmKGEpcmV0dXJue2hhbmRsZXI6YSxyb3V0ZXI6dGhpc307Zm9yKGxldCByIG9mIHRoaXMucm91dGVyTWFwLmdldEFycmF5KCkpaWYoIXQuaW5jbHVkZXMocikpe2xldCBuPXIuZ2V0VHlwZWRIYW5kbGVyQW5kUm91dGVyKGUsdCk7aWYobilyZXR1cm4gbn1yZXR1cm4gbnVsbH1zdGF0aWN7dGhpcy5kZWZhdWx0Um91dGVPcHRpb25zPXtsb2NhbFJlcXVlc3Q6ITEsc2tpcEhvb2tzOiExfX1hc3luYyByb3V0ZUFuZEFkZFJlc3BvbnNlKGUsdD17fSl7bGV0IGE9ey4uLnMuZGVmYXVsdFJvdXRlT3B0aW9ucywuLi50fTtpZihlPXoxLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksZS5sb2NhbERhdGE9ZS5sb2NhbERhdGF8fHt9LGUubG9jYWxEYXRhLmZpcnN0VHlwZWRyb3V0ZXI9dGhpcyxlLm1ldGhvZD09PSIjI1ZpcnR1YWxTdHJlYW0jIyIpe2xldCByPWF3YWl0IHRoaXMuaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpO3JldHVybiByLmxvY2FsRGF0YT1udWxsLHJ9aWYoZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlcXVlc3QifHxhLmxvY2FsUmVxdWVzdCl7bGV0IHI9RGF0ZS5ub3coKTthLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6cixwYXlsb2FkOmUucmVxdWVzdH0pO2xldCBuPXRoaXMuZ2V0VHlwZWRIYW5kbGVyQW5kUm91dGVyKGUubWV0aG9kKTtpZighbilyZXR1cm4gY29uc29sZS5sb2coYENhbm5vdCBmaW5kIGhhbmRsZXIgZm9yIG1ldGhvZG5hbWUgJHtlLm1ldGhvZH1gKSxlLmVycm9yPXt0ZXh0OiJUaGVyZSBpcyBubyBhdmFpbGFibGUgbWV0aG9kIGZvciB0aGlzIGNhbGwgb24gdGhlIHNlcnZlciBzaWRlIixkYXRhOnt9fSxlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIsZS5sb2NhbERhdGE9bnVsbCxlPXoxLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1yLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZTtsZXR7aGFuZGxlcjpvLHJvdXRlcjpsfT1uO2lmKGwubWlkZGxld2FyZXMubGVuZ3RoPjApdHJ5e2ZvcihsZXQgcCBvZiBsLm1pZGRsZXdhcmVzKWF3YWl0IHAoZSl9Y2F0Y2gocCl7cmV0dXJuIHAgaW5zdGFuY2VvZiBNMT9lLmVycm9yPXt0ZXh0OnAuZXJyb3JUZXh0LGRhdGE6cC5lcnJvckRhdGF8fHt9fTplLmVycm9yPXt0ZXh0OnAubWVzc2FnZXx8Ik1pZGRsZXdhcmUgZXJyb3IiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9ejEuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlfXJldHVybiBlPWF3YWl0IG8uYWRkUmVzcG9uc2UoZSksZS5sb2NhbERhdGE9bnVsbCxlPXoxLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1yLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZX1lbHNlIHJldHVybiBlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVzcG9uc2UiPyhhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcC5maW5kSW50ZXJlc3QoZS5jb3JyZWxhdGlvbi5pZCk/LmZ1bGxmaWxsSW50ZXJlc3QoZSksbnVsbCk6KGNvbnNvbGUubG9nKCJyZWNlaXZlZCB3ZWlyZGx5IHNoYXBlZCByZXF1ZXN0IiksY29uc29sZS5sb2coZSksbnVsbCl9YXN5bmMgaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpe2xldCB0PWF3YWl0IHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmZpbmQoYXN5bmMgcj0+ci5zdHJlYW1JZD09PWUucmVxdWVzdC5zdHJlYW1JZCk7aWYodCljb25zb2xlLmxvZyhgc3VjY2VzczogZm91bmQgcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKTtlbHNlIHJldHVybiBjb25zb2xlLmxvZyhgbm8gcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gZm91bmQgZm9yIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApLGNvbnNvbGUubG9nKHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmdldEFycmF5KCkpLGU7cmV0dXJuIGF3YWl0IHQuaGFuZGxlU3RyZWFtVHIoZSl9fX0pO3ZhciBoNnQsejEscnNlPWcoKCk9PntEcCgpO3V3KCk7aDZ0PSIjIyMjIyMjIyMjIyMjQ0xPU0lORyBCSVQjIyMjIyMjIyMjIyMjIix6MT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlZpcnR1YWxTdHJlYW0iKX1zdGF0aWMgZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx0LGEscj1bXSl7cmV0dXJuIWV8fHkxLmlzQnVmZmVyTGlrZShlKT9lOmUgaW5zdGFuY2VvZiBzPyghZS5zaWRlJiZ0LnNlbmRNZXRob2QmJihlLnNpZGU9InJlcXVlc3RpbmciLGUuc2VuZE1ldGhvZD10LnNlbmRNZXRob2QpLCFlLnNpZGUmJnQudHlwZWRyb3V0ZXImJihlLnNpZGU9InJlc3BvbmRpbmciLGUudHlwZWRyb3V0ZXI9dC50eXBlZHJvdXRlcix0LnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoZSkpLCFhLnJlc3BvbnNlfHxyLmluY2x1ZGVzKCJyZXNwb25zZSIpPyhlLnN0YXJ0S2VlcEFsaXZlTG9vcCgpLHtfaXNWaXJ0dWFsU3RyZWFtOiEwLHN0cmVhbUlkOmUuc3RyZWFtSWR9KTp7X09CTUlUVEVEX1ZJUlRVQUxfU1RSRUFNOiEwLHJlYXNvbjoicGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4ifSk6QXJyYXkuaXNBcnJheShlKT9lLm1hcCgobixvKT0+cy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhuLHQsYXx8ZSxyLmNvbmNhdChTdHJpbmcobykpKSk6ZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Ij9PYmplY3QuZW50cmllcyhlKS5yZWR1Y2UoKG4sW28sbF0pPT57bGV0IHA9ci5jb25jYXQobyk7cmV0dXJuIG5bb109cy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhsLHQsYXx8ZSxwKSxufSx7fSk6ZX1zdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGUsdCl7aWYoeTEuaXNCdWZmZXJMaWtlKGUpfHxlIGluc3RhbmNlb2YgYzMpcmV0dXJuIGU7aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoZSBpbnN0YW5jZW9mIFNldHx8ZSBpbnN0YW5jZW9mIE1hcHx8ZSBpbnN0YW5jZW9mIERhdGV8fGUgaW5zdGFuY2VvZiBSZWdFeHB8fGUgaW5zdGFuY2VvZiBFcnJvcnx8ZSBpbnN0YW5jZW9mIFByb21pc2V8fHR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGU7aWYoZS5faXNWaXJ0dWFsU3RyZWFtKXtsZXQgYT1uZXcgcztyZXR1cm4gYS5zdHJlYW1JZD1lLnN0cmVhbUlkLCFhLnNpZGUmJnQuc2VuZE1ldGhvZCYmKGEuc2lkZT0icmVxdWVzdGluZyIsYS5zZW5kTWV0aG9kPXQuc2VuZE1ldGhvZCksIWEuc2lkZSYmdC50eXBlZHJvdXRlciYmKGEuc2lkZT0icmVzcG9uZGluZyIsYS50eXBlZHJvdXRlcj10LnR5cGVkcm91dGVyLHQudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChhKSksYS5zdGFydEtlZXBBbGl2ZUxvb3AoKSxhfWVsc2UgaWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IGE9W107Zm9yKGxldCByIG9mIGUpYS5wdXNoKHMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHIsdCkpO3JldHVybiBhfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgoYSxyKT0+KGFbcl09cy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZVtyXSx0KSxhKSx7fSl9ZWxzZSByZXR1cm4gZX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RyZWFtSWQ9JHAudW5pKCksdGhpcy5rZWVwQWxpdmU9ITAsdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5PW5ldyBGcy5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheT1uZXcgRnMuQmFja3ByZXNzdXJlZEFycmF5KDE2KX1zdGF0aWMgcmVjb25zdGl0dXRlQmluYXJ5RGF0YShlKXtpZihlPT1udWxsfHxlIGluc3RhbmNlb2YgVWludDhBcnJheXx8dHlwZW9mIEJ1ZmZlcjwidSImJkJ1ZmZlci5pc0J1ZmZlcihlKSlyZXR1cm4gZTtpZih0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUudHlwZT09PSJCdWZmZXIiJiZBcnJheS5pc0FycmF5KGUuZGF0YSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuZGF0YSk7bGV0IHQ9T2JqZWN0LmtleXMoZSk7aWYodC5sZW5ndGg+MCYmdC5ldmVyeShhPT4vXlxkKyQvLnRlc3QoYSkpKXtsZXQgYT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgciBvZiB0KWFbTnVtYmVyKHIpXT1lW3JdO2lmKGEuZXZlcnkocj0+dHlwZW9mIHI9PSJudW1iZXIiKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSl9fXJldHVybiBlfWFzeW5jIHdvcmtPblF1ZXVlKCl7aWYodGhpcy53b3JraW5nRGVmZXJyZWQpcmV0dXJuIHRoaXMud29ya2luZ0RlZmVycmVkLnByb21pc2U7aWYodGhpcy53b3JraW5nRGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2xldCBlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLHQ9ITEsYT0hMSxyPWkoYXN5bmMoKT0+e2xldCBuPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOiRwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pntjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMX0pO24mJm4ucmVzcG9uc2UmJihhPW4ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9bi5yZXNwb25zZS5uZXh0KX0sImdldEZlZWRiYWNrIik7Zm9yKGF3YWl0IHIoKTt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MHx8dDspe2lmKGEpZm9yKDthOyljb25zb2xlLmxvZygid2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4iKSxhd2FpdCBYdC5kZWxheUZvcig1MCksYXdhaXQgcigpO2xldCBuO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiYobj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKSk7bGV0IG87bz1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDokcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6bj8iY2h1bmsiOiJyZWFkIixiYWNrcHJlc3N1cmU6ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLC4uLm4/e2NodW5rRGF0YTpufTp7fX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT4oY29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITEsbnVsbCkpLG8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuY2h1bmtEYXRhJiZ0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChzLnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoby5yZXNwb25zZS5jaHVua0RhdGEpKSxhPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksdD1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKGUpe2lmKGUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOmUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2gocy5yZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUucmVxdWVzdC5jaHVua0RhdGEpKSx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCYmZS5yZXNwb25zZS5iYWNrcHJlc3N1cmU9PT0hMSl7bGV0IHQ9dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCk7ZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImNodW5rIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4xLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxjaHVua0RhdGE6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9fWVsc2UgZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX07ZS5yZXF1ZXN0PW51bGx9cmV0dXJuIGV9YXN5bmMgY2xlYW51cCgpe3RoaXMudHlwZWRyb3V0ZXImJnRoaXMudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLnJlbW92ZSh0aGlzKX1hc3luYyBzdGFydEtlZXBBbGl2ZUxvb3AoKXtpZih0aGlzLnNpZGU9PT0icmVzcG9uZGluZyIpcmV0dXJuO2F3YWl0IFh0LmRlbGF5Rm9yKDApLGNvbnNvbGUubG9nKGBzdGFydGluZyBrZWVwYWxpdmUgbG9vcCBvbiBzaWRlICR7dGhpcy5zaWRlfWApO2xldCBlPTA7Zm9yKDt0aGlzLmtlZXBBbGl2ZTspYXdhaXQgdGhpcy50cmlnZ2VyS2VlcEFsaXZlKCksYXdhaXQgWHQuZGVsYXlGb3IoMWUzKTthd2FpdCBYdC5kZWxheUZvcigxZTMpLGF3YWl0IHRoaXMuY2xlYW51cCgpLGNvbnNvbGUubG9nKGBjbGVhbmVkIHVwIGZvciBzdHJlYW0gJHt0aGlzLnN0cmVhbUlkfWApfWFzeW5jIHRyaWdnZXJLZWVwQWxpdmUoKXtpZih0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2NvbnNvbGUubG9nKCJrZWVwYWxpdmUgc2VudC4iKTtsZXQgZT1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDokcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pnt0aGlzLmtlZXBBbGl2ZT0hMX0pO2UmJmUucmVzcG9uc2UmJmUucmVzcG9uc2Uua2VlcEFsaXZlPT09ITE/dGhpcy5rZWVwQWxpdmU9ITE6dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKSxlJiZlLnJlc3BvbnNlJiZlLnJlc3BvbnNlLm5leHQmJnRoaXMud29ya09uUXVldWUoKX1EYXRlLm5vdygpLXRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PjFlNCYmKGNvbnNvbGUubG9nKGBjbG9zaW5nIHN0cmVhbSBmb3IgJHt0aGlzLnN0cmVhbUlkfWApLHRoaXMua2VlcEFsaXZlPSExKX1hc3luYyBzZW5kRGF0YShlKXt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChlKSx0aGlzLndvcmtPblF1ZXVlKCksYXdhaXQgdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JTcGFjZSgpfWFzeW5jIGZldGNoRGF0YSgpe3JldHVybiB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuaGFzU3BhY2UsYXdhaXQgdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JJdGVtcygpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfWFzeW5jIHJlYWRGcm9tV2Vic3RyZWFtKGUsdD0hMCl7bGV0IGE9ZS5nZXRSZWFkZXIoKSxyPSExO2Zvcig7IXI7KXtsZXR7dmFsdWU6bixkb25lOm99PWF3YWl0IGEucmVhZCgpO24mJmF3YWl0IHRoaXMuc2VuZERhdGEobikscj1vfXQmJmF3YWl0IHRoaXMuY2xvc2UoITApfWFzeW5jIHdyaXRlVG9XZWJzdHJlYW0oZSl7bGV0IHQ9ZS5nZXRXcml0ZXIoKTtmb3IoO3RoaXMua2VlcEFsaXZlfHx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tIYXNJdGVtcygpOyl7bGV0IGE9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtpZihhPT09aDZ0KXt0LnJlbGVhc2VMb2NrKCksYXdhaXQgZS5jbG9zZSgpO2JyZWFrfWF3YWl0IHQud3JpdGUoYSl9fWFzeW5jIGNsb3NlKGU9ITEpe2UmJnRoaXMuc2VuZERhdGEoaDZ0KSx0aGlzLmtlZXBBbGl2ZT0hMX19fSk7dmFyIGc0ZSxiNGU9ZygoKT0+e3V3KCk7RHAoKTtnNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUYXJnZXQiKX1jb25zdHJ1Y3RvcihlKXtpZihlLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXImJiFlLnR5cGVkUm91dGVyUmVmKXRocm93IG5ldyBFcnJvcigieW91IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGVkcm91dGVyIHdoZW4gdXNpbmcgcG9zdG1ldGhvZCB3aXRoIHR5cGVkcm91dGVyIik7dGhpcy5vcHRpb25zPWV9YXN5bmMgcG9zdChlKXtsZXQgdDt0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYmJih0PWF3YWl0IHRoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZi5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkLGUpKTtsZXQgcj1hd2FpdCh0aGlzLm9wdGlvbnMucG9zdE1ldGhvZHx8dGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIpKGUpLG47cmV0dXJuIHQ/bj1hd2FpdCB0LmludGVyZXN0RnVsbGZpbGxlZDpyP249cjpuPWUsbn19fSk7ZnVuY3Rpb24gZjZ0KHMsZSl7dHJ5e2MzLmdsb2JhbEhvb2tzW3NdPy4oZSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcihgVHlwZWRSZXF1ZXN0IGhvb2sgZXJyb3IgKCR7c30pOmAsdCl9fXZhciBwSWEsdjRlLG00ZT1nKCgpPT57RHAoKTtyc2UoKTt3OSgpO3V3KCk7YjRlKCk7cElhPW5ldyBfMS5XZWJyZXF1ZXN0Q2xpZW50O2koZjZ0LCJjYWxsR2xvYmFsSG9vayIpO3Y0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlcXVlc3QiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiBlPT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PWU6dGhpcy50eXBlZFRhcmdldD1lLHRoaXMubWV0aG9kPXR9YXN5bmMgZmlyZShlLHQ9ITEpe2xldCBhPURhdGUubm93KCkscj17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6ZSxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDokcC51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTtyPXoxLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHIse3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fGY2dCgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnIuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6YSxwYXlsb2FkOmV9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChyLHQpLG49ejEuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fGY2dCgib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDpyLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6bj8ucmVzcG9uc2UsZXJyb3I6bj8uZXJyb3I/LnRleHR9KSxuLnJlc3BvbnNlfWFzeW5jIHBvc3RUck9iamVjdChlLHQ9ITEpe2xldCBhO2lmKHRoaXMudXJsRW5kUG9pbnQ/YT1hd2FpdCBwSWEucG9zdEpzb24odGhpcy51cmxFbmRQb2ludCxlLHQ/e2NhY2hlU3RyYXRlZ3k6ImNhY2hlLWZpcnN0In06e30pOmE9YXdhaXQgdGhpcy50eXBlZFRhcmdldC5wb3N0KGUpLGEuZXJyb3Ipe2lmKGNvbnNvbGUuZXJyb3IoYG1ldGhvZDogPj4ke3RoaXMubWV0aG9kfTw8IGdvdCBhbiBFUlJPUjogIiR7YS5lcnJvci50ZXh0fSIgd2l0aCBkYXRhICR7SlNPTi5zdHJpbmdpZnkoYS5lcnJvci5kYXRhLG51bGwsMil9YCksIWEucmV0cnkpdGhyb3cgbmV3IE0xKGEuZXJyb3IudGV4dCxhLmVycm9yLmRhdGEpO3JldHVybiBudWxsfXJldHVybiBhLnJldHJ5JiYoY29uc29sZS5sb2coYHNlcnZlciByZXF1ZXN0ZWQgcmV0cnkgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiAke2EucmV0cnkucmVhc29ufWApLGF3YWl0IFh0LmRlbGF5Rm9yKGEucmV0cnkud2FpdEZvck1zKSxhPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGUsdCkpLGF9fX0pO3ZhciBMcD17fTt5dChMcCx7VHlwZWRIYW5kbGVyOigpPT5oNGUsVHlwZWRSZXF1ZXN0OigpPT52NGUsVHlwZWRSZXNwb25zZUVycm9yOigpPT5NMSxUeXBlZFJvdXRlcjooKT0+YzMsVHlwZWRUYXJnZXQ6KCk9Pmc0ZSxWaXJ0dWFsU3RyZWFtOigpPT56MX0pO3ZhciBtNnQ9ZygoKT0+e200ZSgpO2Y0ZSgpO3V3KCk7dzkoKTtiNGUoKTtyc2UoKX0pO2Z1bmN0aW9uIGc2dChzKXtyZXR1cm4gcyYmdHlwZW9mIHMudGhlbj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBkZChzLGUpe3JldHVybiBzfHwocz0wKSxuZXcgUHJvbWlzZShmdW5jdGlvbih0KXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0KGUpfSxzKX0pfWZ1bmN0aW9uIHg2dChzLGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtcysxKStzKX1mdW5jdGlvbiB4MCgpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMil9ZnVuY3Rpb24geTAoKXt2YXIgcz1EYXRlLm5vdygpKjFlMztyZXR1cm4gczw9eDRlJiYocz14NGUrMSkseDRlPXMsc31mdW5jdGlvbiB5NnQoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3M8InUiJiZ0eXBlb2YgbmF2aWdhdG9yLmxvY2tzLnJlcXVlc3Q9PSJmdW5jdGlvbiJ9dmFyIGI2dCx2NnQsQmwseDRlLEVwPWcoKCk9PntpKGc2dCwiaXNQcm9taXNlIik7YjZ0PVByb21pc2UucmVzb2x2ZSghMSksdjZ0PVByb21pc2UucmVzb2x2ZSghMCksQmw9UHJvbWlzZS5yZXNvbHZlKCk7aShkZCwic2xlZXAiKTtpKHg2dCwicmFuZG9tSW50Iik7aSh4MCwicmFuZG9tVG9rZW4iKTt4NGU9MDtpKHkwLCJtaWNyb1NlY29uZHMiKTtpKHk2dCwic3VwcG9ydHNXZWJMb2NrQVBJIil9KTtmdW5jdGlvbiBtSWEocyl7dmFyIGU9e3RpbWU6eTAoKSxtZXNzYWdlc0NhbGxiYWNrOm51bGwsYmM6bmV3IEJyb2FkY2FzdENoYW5uZWwocyksc3ViRm5zOltdfTtyZXR1cm4gZS5iYy5vbm1lc3NhZ2U9ZnVuY3Rpb24odCl7ZS5tZXNzYWdlc0NhbGxiYWNrJiZlLm1lc3NhZ2VzQ2FsbGJhY2sodC5kYXRhKX0sZX1mdW5jdGlvbiBnSWEocyl7cy5iYy5jbG9zZSgpLHMuc3ViRm5zPVtdfWZ1bmN0aW9uIGJJYShzLGUpe3RyeXtyZXR1cm4gcy5iYy5wb3N0TWVzc2FnZShlLCExKSxCbH1jYXRjaCh0KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QodCl9fWZ1bmN0aW9uIHZJYShzLGUpe3MubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIHhJYSgpe2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpcy5EZW5vJiZnbG9iYWxUaGlzLkRlbm8uYXJncylyZXR1cm4hMDtpZigodHlwZW9mIHdpbmRvdzwidSJ8fHR5cGVvZiBzZWxmPCJ1IikmJnR5cGVvZiBCcm9hZGNhc3RDaGFubmVsPT0iZnVuY3Rpb24iKXtpZihCcm9hZGNhc3RDaGFubmVsLl9wdWJrZXkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBEbyBub3Qgb3ZlcndyaXRlIHdpbmRvdy5Ccm9hZGNhc3RDaGFubmVsIHdpdGggdGhpcyBtb2R1bGUsIHRoaXMgaXMgbm90IGEgcG9seWZpbGwiKTtyZXR1cm4hMH1lbHNlIHJldHVybiExfWZ1bmN0aW9uIHlJYSgpe3JldHVybiAxNTB9dmFyIGhJYSxmSWEsdzZ0LGs2dD1nKCgpPT57RXAoKTtoSWE9eTAsZklhPSJuYXRpdmUiO2kobUlhLCJjcmVhdGUiKTtpKGdJYSwiY2xvc2UiKTtpKGJJYSwicG9zdE1lc3NhZ2UiKTtpKHZJYSwib25NZXNzYWdlIik7aSh4SWEsImNhbkJlVXNlZCIpO2koeUlhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7dzZ0PXtjcmVhdGU6bUlhLGNsb3NlOmdJYSxvbk1lc3NhZ2U6dklhLHBvc3RNZXNzYWdlOmJJYSxjYW5CZVVzZWQ6eElhLHR5cGU6ZklhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6eUlhLG1pY3JvU2Vjb25kczpoSWF9fSk7ZnVuY3Rpb24gd0lhKHMpe2xldCBlPXk0ZSgpLXMudHRsLHQ9cy5tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO2Zvcig7Oyl7bGV0IGE9dC5uZXh0KCkudmFsdWU7aWYoIWEpYnJlYWs7bGV0IHI9YVswXTtpZihhWzFdPGUpcy5tYXAuZGVsZXRlKHIpO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIHk0ZSgpe3JldHVybiBEYXRlLm5vdygpfXZhciBrOSx3NGU9ZygoKT0+e2s5PWNsYXNze3N0YXRpY3tpKHRoaXMsIk9ibGl2aW91c1NldCIpfXR0bDttYXA9bmV3IE1hcDtfdG89ITE7Y29uc3RydWN0b3IoZSl7dGhpcy50dGw9ZX1oYXMoZSl7bGV0IHQ9dGhpcy5tYXAuZ2V0KGUpO3JldHVybiB0eXBlb2YgdD4idSI/ITE6dDx5NGUoKS10aGlzLnR0bD8odGhpcy5tYXAuZGVsZXRlKGUpLCExKTohMH1hZGQoZSl7dGhpcy5tYXAuZGVsZXRlKGUpLHRoaXMubWFwLnNldChlLHk0ZSgpKSx0aGlzLl90b3x8KHRoaXMuX3RvPSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLl90bz0hMSx3SWEodGhpcyl9LDApKX1jbGVhcigpe3RoaXMubWFwLmNsZWFyKCl9fTtpKHdJYSwicmVtb3ZlVG9vT2xkVmFsdWVzIik7aSh5NGUsIm5vdyIpfSk7ZnVuY3Rpb24gZDMoKXt2YXIgcz1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHMpKTtyZXR1cm4gdHlwZW9mIGUud2ViV29ya2VyU3VwcG9ydD4idSImJihlLndlYldvcmtlclN1cHBvcnQ9ITApLGUuaWRifHwoZS5pZGI9e30pLGUuaWRiLnR0bHx8KGUuaWRiLnR0bD0xZTMqNDUpLGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWx8fChlLmlkYi5mYWxsYmFja0ludGVydmFsPTE1MCkscy5pZGImJnR5cGVvZiBzLmlkYi5vbmNsb3NlPT0iZnVuY3Rpb24iJiYoZS5pZGIub25jbG9zZT1zLmlkYi5vbmNsb3NlKSxlLmxvY2Fsc3RvcmFnZXx8KGUubG9jYWxzdG9yYWdlPXt9KSxlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0fHwoZS5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dD0xZTMqNjApLHMubWV0aG9kcyYmKGUubWV0aG9kcz1zLm1ldGhvZHMpLGUubm9kZXx8KGUubm9kZT17fSksZS5ub2RlLnR0bHx8KGUubm9kZS50dGw9MWUzKjYwKjIpLGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlc3x8KGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlcz0yMDQ4KSx0eXBlb2YgZS5ub2RlLnVzZUZhc3RQYXRoPiJ1IiYmKGUubm9kZS51c2VGYXN0UGF0aD0hMCksZX12YXIgb3NlPWcoKCk9PntpKGQzLCJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIpfSk7ZnVuY3Rpb24gUzZ0KCl7aWYodHlwZW9mIGluZGV4ZWREQjwidSIpcmV0dXJuIGluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93PCJ1Iil7aWYodHlwZW9mIHdpbmRvdy5tb3pJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubW96SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cud2Via2l0SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93LndlYmtpdEluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93Lm1zSW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1zSW5kZXhlZERCfXJldHVybiExfWZ1bmN0aW9uIG5zZShzKXtzLmNvbW1pdCYmcy5jb21taXQoKX1mdW5jdGlvbiBNSWEocyl7dmFyIGU9UzZ0KCksdD1TSWErcyxhPWUub3Blbih0KTtyZXR1cm4gYS5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24ocil7dmFyIG49ci50YXJnZXQucmVzdWx0O24uY3JlYXRlT2JqZWN0U3RvcmUoQzEse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSl9LG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbil7YS5vbmVycm9yPWZ1bmN0aW9uKG8pe3JldHVybiBuKG8pfSxhLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3IoYS5yZXN1bHQpfX0pfWZ1bmN0aW9uIHpJYShzLGUsdCl7dmFyIGE9RGF0ZS5ub3coKSxyPXt1dWlkOmUsdGltZTphLGRhdGE6dH0sbj1zLnRyYW5zYWN0aW9uKFtDMV0sInJlYWR3cml0ZSIscHcpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvLGwpe24ub25jb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBvKCl9LG4ub25lcnJvcj1mdW5jdGlvbihkKXtyZXR1cm4gbChkKX07dmFyIHA9bi5vYmplY3RTdG9yZShDMSk7cC5hZGQociksbnNlKG4pfSl9ZnVuY3Rpb24gZ1lzKHMpe3ZhciBlPXMudHJhbnNhY3Rpb24oQzEsInJlYWRvbmx5IixwdyksdD1lLm9iamVjdFN0b3JlKEMxKSxhPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyKXt0Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24obil7dmFyIG89bi50YXJnZXQucmVzdWx0O28/KGEucHVzaChvLnZhbHVlKSxvLmNvbnRpbnVlKCkpOihuc2UoZSkscihhKSl9fSl9ZnVuY3Rpb24gQ0lhKHMsZSl7dmFyIHQ9cy50cmFuc2FjdGlvbihDMSwicmVhZG9ubHkiLHB3KSxhPXQub2JqZWN0U3RvcmUoQzEpLHI9W10sbj1JREJLZXlSYW5nZS5ib3VuZChlKzEsMS8wKTtpZihhLmdldEFsbCl7dmFyIG89YS5nZXRBbGwobik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHAsZCl7by5vbmVycm9yPWZ1bmN0aW9uKHUpe3JldHVybiBkKHUpfSxvLm9uc3VjY2Vzcz1mdW5jdGlvbih1KXtwKHUudGFyZ2V0LnJlc3VsdCl9fSl9ZnVuY3Rpb24gbCgpe3RyeXtyZXR1cm4gbj1JREJLZXlSYW5nZS5ib3VuZChlKzEsMS8wKSxhLm9wZW5DdXJzb3Iobil9Y2F0Y2h7cmV0dXJuIGEub3BlbkN1cnNvcigpfX1yZXR1cm4gaShsLCJvcGVuQ3Vyc29yIiksbmV3IFByb21pc2UoZnVuY3Rpb24ocCxkKXt2YXIgdT1sKCk7dS5vbmVycm9yPWZ1bmN0aW9uKGMpe3JldHVybiBkKGMpfSx1Lm9uc3VjY2Vzcz1mdW5jdGlvbihjKXt2YXIgYj1jLnRhcmdldC5yZXN1bHQ7Yj9iLnZhbHVlLmlkPGUrMT9iLmNvbnRpbnVlKGUrMSk6KHIucHVzaChiLnZhbHVlKSxiLmNvbnRpbnVlKCkpOihuc2UodCkscChyKSl9fSl9ZnVuY3Rpb24gVElhKHMsZSl7aWYocy5jbG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIHQ9cy5kYi50cmFuc2FjdGlvbihDMSwicmVhZHdyaXRlIixwdyksYT10Lm9iamVjdFN0b3JlKEMxKTtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24ocil7dmFyIG49YS5kZWxldGUocik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe24ub25zdWNjZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX19KX0pKX1mdW5jdGlvbiAkSWEocyxlKXt2YXIgdD1EYXRlLm5vdygpLWUsYT1zLnRyYW5zYWN0aW9uKEMxLCJyZWFkb25seSIscHcpLHI9YS5vYmplY3RTdG9yZShDMSksbj1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7ci5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKGwpe3ZhciBwPWwudGFyZ2V0LnJlc3VsdDtpZihwKXt2YXIgZD1wLnZhbHVlO2QudGltZTx0PyhuLnB1c2goZCkscC5jb250aW51ZSgpKToobnNlKGEpLG8obikpfWVsc2UgbyhuKX19KX1mdW5jdGlvbiBESWEocyl7cmV0dXJuICRJYShzLmRiLHMub3B0aW9ucy5pZGIudHRsKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBUSWEocyxlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKX0pfWZ1bmN0aW9uIExJYShzLGUpe3JldHVybiBlPWQzKGUpLE1JYShzKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBhPXtjbG9zZWQ6ITEsbGFzdEN1cnNvcklkOjAsY2hhbm5lbE5hbWU6cyxvcHRpb25zOmUsdXVpZDp4MCgpLGVNSXM6bmV3IGs5KGUuaWRiLnR0bCoyKSx3cml0ZUJsb2NrUHJvbWlzZTpCbCxtZXNzYWdlc0NhbGxiYWNrOm51bGwscmVhZFF1ZXVlUHJvbWlzZXM6W10sZGI6dH07cmV0dXJuIHQub25jbG9zZT1mdW5jdGlvbigpe2EuY2xvc2VkPSEwLGUuaWRiLm9uY2xvc2UmJmUuaWRiLm9uY2xvc2UoKX0sXzZ0KGEpLGF9KX1mdW5jdGlvbiBfNnQocyl7cy5jbG9zZWR8fE02dChzKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGRkKHMub3B0aW9ucy5pZGIuZmFsbGJhY2tJbnRlcnZhbCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIF82dChzKX0pfWZ1bmN0aW9uIEVJYShzLGUpe3JldHVybiEocy51dWlkPT09ZS51dWlkfHxlLmVNSXMuaGFzKHMuaWQpfHxzLmRhdGEudGltZTxlLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lKX1mdW5jdGlvbiBNNnQocyl7cmV0dXJuIHMuY2xvc2VkP0JsOnMubWVzc2FnZXNDYWxsYmFjaz9DSWEocy5kYixzLmxhc3RDdXJzb3JJZCkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1lLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hIWF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ+cy5sYXN0Q3Vyc29ySWQmJihzLmxhc3RDdXJzb3JJZD1hLmlkKSxhfSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBFSWEoYSxzKX0pLnNvcnQoZnVuY3Rpb24oYSxyKXtyZXR1cm4gYS50aW1lLXIudGltZX0pO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oYSl7cy5tZXNzYWdlc0NhbGxiYWNrJiYocy5lTUlzLmFkZChhLmlkKSxzLm1lc3NhZ2VzQ2FsbGJhY2soYS5kYXRhKSl9KSxCbH0pOkJsfWZ1bmN0aW9uIFBJYShzKXtzLmNsb3NlZD0hMCxzLmRiLmNsb3NlKCl9ZnVuY3Rpb24gSUlhKHMsZSl7cmV0dXJuIHMud3JpdGVCbG9ja1Byb21pc2U9cy53cml0ZUJsb2NrUHJvbWlzZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHpJYShzLmRiLHMudXVpZCxlKX0pLnRoZW4oZnVuY3Rpb24oKXt4NnQoMCwxMCk9PT0wJiZESWEocyl9KSxzLndyaXRlQmxvY2tQcm9taXNlfWZ1bmN0aW9uIEFJYShzLGUsdCl7cy5tZXNzYWdlc0NhbGxiYWNrVGltZT10LHMubWVzc2FnZXNDYWxsYmFjaz1lLE02dChzKX1mdW5jdGlvbiBOSWEoKXtyZXR1cm4hIVM2dCgpfWZ1bmN0aW9uIFJJYShzKXtyZXR1cm4gcy5pZGIuZmFsbGJhY2tJbnRlcnZhbCoyfXZhciBrSWEsU0lhLEMxLHB3LF9JYSx6NnQsQzZ0PWcoKCk9PntFcCgpO3c0ZSgpO29zZSgpO2tJYT15MCxTSWE9InB1YmtleS5icm9hZGNhc3QtY2hhbm5lbC0wLSIsQzE9Im1lc3NhZ2VzIixwdz17ZHVyYWJpbGl0eToicmVsYXhlZCJ9LF9JYT0iaWRiIjtpKFM2dCwiZ2V0SWRiIik7aShuc2UsImNvbW1pdEluZGV4ZWREQlRyYW5zYWN0aW9uIik7aShNSWEsImNyZWF0ZURhdGFiYXNlIik7aSh6SWEsIndyaXRlTWVzc2FnZSIpO2koZ1lzLCJnZXRBbGxNZXNzYWdlcyIpO2koQ0lhLCJnZXRNZXNzYWdlc0hpZ2hlclRoYW4iKTtpKFRJYSwicmVtb3ZlTWVzc2FnZXNCeUlkIik7aSgkSWEsImdldE9sZE1lc3NhZ2VzIik7aShESWEsImNsZWFuT2xkTWVzc2FnZXMiKTtpKExJYSwiY3JlYXRlIik7aShfNnQsIl9yZWFkTG9vcCIpO2koRUlhLCJfZmlsdGVyTWVzc2FnZSIpO2koTTZ0LCJyZWFkTmV3TWVzc2FnZXMiKTtpKFBJYSwiY2xvc2UiKTtpKElJYSwicG9zdE1lc3NhZ2UiKTtpKEFJYSwib25NZXNzYWdlIik7aShOSWEsImNhbkJlVXNlZCIpO2koUklhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7ejZ0PXtjcmVhdGU6TElhLGNsb3NlOlBJYSxvbk1lc3NhZ2U6QUlhLHBvc3RNZXNzYWdlOklJYSxjYW5CZVVzZWQ6TklhLHR5cGU6X0lhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6UklhLG1pY3JvU2Vjb25kczprSWF9fSk7ZnVuY3Rpb24gVDZ0KCl7dmFyIHM7aWYodHlwZW9mIHdpbmRvdz4idSIpcmV0dXJuIG51bGw7dHJ5e3M9d2luZG93LmxvY2FsU3RvcmFnZSxzPXdpbmRvd1siaWU4LWV2ZW50bGlzdGVuZXIvc3RvcmFnZSJdfHx3aW5kb3cubG9jYWxTdG9yYWdlfWNhdGNoe31yZXR1cm4gc31mdW5jdGlvbiAkNnQocyl7cmV0dXJuIEZJYStzfWZ1bmN0aW9uIEhJYShzLGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0KXtkZCgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgYT0kNnQocy5jaGFubmVsTmFtZSkscj17dG9rZW46eDAoKSx0aW1lOkRhdGUubm93KCksZGF0YTplLHV1aWQ6cy51dWlkfSxuPUpTT04uc3RyaW5naWZ5KHIpO1Q2dCgpLnNldEl0ZW0oYSxuKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtvLmluaXRFdmVudCgic3RvcmFnZSIsITAsITApLG8ua2V5PWEsby5uZXdWYWx1ZT1uLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG8pLHQoKX0pfSl9ZnVuY3Rpb24gcUlhKHMsZSl7dmFyIHQ9JDZ0KHMpLGE9aShmdW5jdGlvbihuKXtuLmtleT09PXQmJmUoSlNPTi5wYXJzZShuLm5ld1ZhbHVlKSl9LCJsaXN0ZW5lciIpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsYSksYX1mdW5jdGlvbiBqSWEocyl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHMpfWZ1bmN0aW9uIFZJYShzLGUpe2lmKGU9ZDMoZSksIUQ2dCgpKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogbG9jYWxzdG9yYWdlIGNhbm5vdCBiZSB1c2VkIik7dmFyIHQ9eDAoKSxhPW5ldyBrOShlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0KSxyPXtjaGFubmVsTmFtZTpzLHV1aWQ6dCxlTUlzOmF9O3JldHVybiByLmxpc3RlbmVyPXFJYShzLGZ1bmN0aW9uKG4pe3IubWVzc2FnZXNDYWxsYmFjayYmbi51dWlkIT09dCYmKCFuLnRva2VufHxhLmhhcyhuLnRva2VuKXx8bi5kYXRhLnRpbWUmJm4uZGF0YS50aW1lPHIubWVzc2FnZXNDYWxsYmFja1RpbWV8fChhLmFkZChuLnRva2VuKSxyLm1lc3NhZ2VzQ2FsbGJhY2sobi5kYXRhKSkpfSkscn1mdW5jdGlvbiBVSWEocyl7aklhKHMubGlzdGVuZXIpfWZ1bmN0aW9uIFdJYShzLGUsdCl7cy5tZXNzYWdlc0NhbGxiYWNrVGltZT10LHMubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIEQ2dCgpe3ZhciBzPVQ2dCgpO2lmKCFzKXJldHVybiExO3RyeXt2YXIgZT0iX19icm9hZGNhc3RjaGFubmVsX2NoZWNrIjtzLnNldEl0ZW0oZSwid29ya3MiKSxzLnJlbW92ZUl0ZW0oZSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gR0lhKCl7dmFyIHM9MTIwLGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO3JldHVybiBlLmluY2x1ZGVzKCJzYWZhcmkiKSYmIWUuaW5jbHVkZXMoImNocm9tZSIpP3MqMjpzfXZhciBPSWEsRklhLEJJYSxMNnQsRTZ0PWcoKCk9Pnt3NGUoKTtvc2UoKTtFcCgpO09JYT15MCxGSWE9InB1YmtleS5icm9hZGNhc3RDaGFubmVsLSIsQklhPSJsb2NhbHN0b3JhZ2UiO2koVDZ0LCJnZXRMb2NhbFN0b3JhZ2UiKTtpKCQ2dCwic3RvcmFnZUtleSIpO2koSElhLCJwb3N0TWVzc2FnZSIpO2kocUlhLCJhZGRTdG9yYWdlRXZlbnRMaXN0ZW5lciIpO2koaklhLCJyZW1vdmVTdG9yYWdlRXZlbnRMaXN0ZW5lciIpO2koVklhLCJjcmVhdGUiKTtpKFVJYSwiY2xvc2UiKTtpKFdJYSwib25NZXNzYWdlIik7aShENnQsImNhbkJlVXNlZCIpO2koR0lhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7TDZ0PXtjcmVhdGU6VklhLGNsb3NlOlVJYSxvbk1lc3NhZ2U6V0lhLHBvc3RNZXNzYWdlOkhJYSxjYW5CZVVzZWQ6RDZ0LHR5cGU6QklhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6R0lhLG1pY3JvU2Vjb25kczpPSWF9fSk7ZnVuY3Rpb24gWUlhKHMpe3ZhciBlPXt0aW1lOlA2dCgpLG5hbWU6cyxtZXNzYWdlc0NhbGxiYWNrOm51bGx9O3JldHVybiBrNGUuYWRkKGUpLGV9ZnVuY3Rpb24gWklhKHMpe2s0ZS5kZWxldGUocyl9ZnVuY3Rpb24gWElhKHMsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGE9QXJyYXkuZnJvbShrNGUpO2EuZm9yRWFjaChmdW5jdGlvbihyKXtyLm5hbWU9PT1zLm5hbWUmJnIhPT1zJiZyLm1lc3NhZ2VzQ2FsbGJhY2smJnIudGltZTxlLnRpbWUmJnIubWVzc2FnZXNDYWxsYmFjayhlKX0pLHQoKX0sSTZ0KX0pfWZ1bmN0aW9uIFFJYShzLGUpe3MubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIEpJYSgpe3JldHVybiEwfWZ1bmN0aW9uIGVBYSgpe3JldHVybiBJNnR9dmFyIFA2dCxLSWEsazRlLEk2dCxBNnQsTjZ0PWcoKCk9PntFcCgpO1A2dD15MCxLSWE9InNpbXVsYXRlIixrNGU9bmV3IFNldDtpKFlJYSwiY3JlYXRlIik7aShaSWEsImNsb3NlIik7STZ0PTU7aShYSWEsInBvc3RNZXNzYWdlIik7aShRSWEsIm9uTWVzc2FnZSIpO2koSklhLCJjYW5CZVVzZWQiKTtpKGVBYSwiYXZlcmFnZVJlc3BvbnNlVGltZSIpO0E2dD17Y3JlYXRlOllJYSxjbG9zZTpaSWEsb25NZXNzYWdlOlFJYSxwb3N0TWVzc2FnZTpYSWEsY2FuQmVVc2VkOkpJYSx0eXBlOktJYSxhdmVyYWdlUmVzcG9uc2VUaW1lOmVBYSxtaWNyb1NlY29uZHM6UDZ0fX0pO2Z1bmN0aW9uIFM0ZShzKXt2YXIgZT1bXS5jb25jYXQocy5tZXRob2RzLFI2dCkuZmlsdGVyKEJvb2xlYW4pO2lmKHMudHlwZSl7aWYocy50eXBlPT09InNpbXVsYXRlIilyZXR1cm4gQTZ0O3ZhciB0PWUuZmluZChmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlPT09cy50eXBlfSk7aWYodClyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoIm1ldGhvZC10eXBlICIrcy50eXBlKyIgbm90IGZvdW5kIil9cy53ZWJXb3JrZXJTdXBwb3J0fHwoZT1lLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlIT09ImlkYiJ9KSk7dmFyIGE9ZS5maW5kKGZ1bmN0aW9uKHIpe3JldHVybiByLmNhbkJlVXNlZCgpfSk7aWYoYSlyZXR1cm4gYTt0aHJvdyBuZXcgRXJyb3IoIk5vIHVzYWJsZSBtZXRob2QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShSNnQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLnR5cGV9KSkpfXZhciBSNnQsTzZ0PWcoKCk9PntrNnQoKTtDNnQoKTtFNnQoKTtONnQoKTtSNnQ9W3c2dCx6NnQsTDZ0XTtpKFM0ZSwiY2hvb3NlTWV0aG9kIil9KTtmdW5jdGlvbiBhQWEocyl7cz1kMyhzKTt2YXIgZT1TNGUocyk7cmV0dXJuIGUudHlwZT09PSJub2RlIj9lLmNsZWFyTm9kZUZvbGRlcigpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pOmI2dH1mdW5jdGlvbiBzQWEocyl7XzRlPXN9ZnVuY3Rpb24gRjZ0KHMsZSx0KXt2YXIgYT1zLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmEsdHlwZTplLGRhdGE6dH0sbj1zLl9wcmVwUD9zLl9wcmVwUDpCbDtyZXR1cm4gbi50aGVuKGZ1bmN0aW9uKCl7dmFyIG89cy5tZXRob2QucG9zdE1lc3NhZ2Uocy5fc3RhdGUscik7cmV0dXJuIHMuX3VNUC5hZGQobyksby5jYXRjaCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcy5fdU1QLmRlbGV0ZShvKX0pLG99KX1mdW5jdGlvbiBpQWEocyl7dmFyIGU9cy5tZXRob2QuY3JlYXRlKHMubmFtZSxzLm9wdGlvbnMpO2c2dChlKT8ocy5fcHJlcFA9ZSxlLnRoZW4oZnVuY3Rpb24odCl7cy5fc3RhdGU9dH0pKTpzLl9zdGF0ZT1lfWZ1bmN0aW9uIEI2dChzKXtyZXR1cm4gcy5fYWRkRUwubWVzc2FnZS5sZW5ndGg+MHx8cy5fYWRkRUwuaW50ZXJuYWwubGVuZ3RoPjB9ZnVuY3Rpb24gSDZ0KHMsZSx0KXtzLl9hZGRFTFtlXS5wdXNoKHQpLHJBYShzKX1mdW5jdGlvbiBxNnQocyxlLHQpe3MuX2FkZEVMW2VdPXMuX2FkZEVMW2VdLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYSE9PXR9KSxvQWEocyl9ZnVuY3Rpb24gckFhKHMpe2lmKCFzLl9pTCYmQjZ0KHMpKXt2YXIgZT1pKGZ1bmN0aW9uKHIpe3MuX2FkZEVMW3IudHlwZV0uZm9yRWFjaChmdW5jdGlvbihuKXtyLnRpbWU+PW4udGltZSYmbi5mbihyLmRhdGEpfSl9LCJsaXN0ZW5lckZuIiksdD1zLm1ldGhvZC5taWNyb1NlY29uZHMoKTtzLl9wcmVwUD9zLl9wcmVwUC50aGVuKGZ1bmN0aW9uKCl7cy5faUw9ITAscy5tZXRob2Qub25NZXNzYWdlKHMuX3N0YXRlLGUsdCl9KToocy5faUw9ITAscy5tZXRob2Qub25NZXNzYWdlKHMuX3N0YXRlLGUsdCkpfX1mdW5jdGlvbiBvQWEocyl7aWYocy5faUwmJiFCNnQocykpe3MuX2lMPSExO3ZhciBlPXMubWV0aG9kLm1pY3JvU2Vjb25kcygpO3MubWV0aG9kLm9uTWVzc2FnZShzLl9zdGF0ZSxudWxsLGUpfX12YXIgTTRlLHRBYSx1MyxfNGUsajZ0PWcoKCk9PntFcCgpO082dCgpO29zZSgpO000ZT1uZXcgU2V0LHRBYT0wLHUzPWkoZnVuY3Rpb24oZSx0KXt0aGlzLmlkPXRBYSsrLE00ZS5hZGQodGhpcyksdGhpcy5uYW1lPWUsXzRlJiYodD1fNGUpLHRoaXMub3B0aW9ucz1kMyh0KSx0aGlzLm1ldGhvZD1TNGUodGhpcy5vcHRpb25zKSx0aGlzLl9pTD0hMSx0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUw9e21lc3NhZ2U6W10saW50ZXJuYWw6W119LHRoaXMuX3VNUD1uZXcgU2V0LHRoaXMuX2JlZkM9W10sdGhpcy5fcHJlcFA9bnVsbCxpQWEodGhpcyl9LCJCcm9hZGNhc3RDaGFubmVsIik7dTMuX3B1YmtleT0hMDtpKGFBYSwiY2xlYXJOb2RlRm9sZGVyIik7aShzQWEsImVuZm9yY2VPcHRpb25zIiksdTMucHJvdG90eXBlPXtwb3N0TWVzc2FnZTppKGZ1bmN0aW9uKGUpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSgpOiBDYW5ub3QgcG9zdCBtZXNzYWdlIGFmdGVyIGNoYW5uZWwgaGFzIGNsb3NlZCAiK0pTT04uc3RyaW5naWZ5KGUpKTtyZXR1cm4gRjZ0KHRoaXMsIm1lc3NhZ2UiLGUpfSwicG9zdE1lc3NhZ2UiKSxwb3N0SW50ZXJuYWw6aShmdW5jdGlvbihlKXtyZXR1cm4gRjZ0KHRoaXMsImludGVybmFsIixlKX0sInBvc3RJbnRlcm5hbCIpLHNldCBvbm1lc3NhZ2Uocyl7dmFyIGU9dGhpcy5tZXRob2QubWljcm9TZWNvbmRzKCksdD17dGltZTplLGZuOnN9O3E2dCh0aGlzLCJtZXNzYWdlIix0aGlzLl9vbk1MKSxzJiZ0eXBlb2Ygcz09ImZ1bmN0aW9uIj8odGhpcy5fb25NTD10LEg2dCh0aGlzLCJtZXNzYWdlIix0KSk6dGhpcy5fb25NTD1udWxsfSxhZGRFdmVudExpc3RlbmVyOmkoZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmEsZm46dH07SDZ0KHRoaXMsZSxyKX0sImFkZEV2ZW50TGlzdGVuZXIiKSxyZW1vdmVFdmVudExpc3RlbmVyOmkoZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzLl9hZGRFTFtlXS5maW5kKGZ1bmN0aW9uKHIpe3JldHVybiByLmZuPT09dH0pO3E2dCh0aGlzLGUsYSl9LCJyZW1vdmVFdmVudExpc3RlbmVyIiksY2xvc2U6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuY2xvc2VkKXtNNGUuZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciB0PXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOkJsO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSx0LnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShlLl91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5fYmVmQy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tZXRob2QuY2xvc2UoZS5fc3RhdGUpfSl9fSwiY2xvc2UiKSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fTtpKEY2dCwiX3Bvc3QiKTtpKGlBYSwiX3ByZXBhcmVDaGFubmVsIik7aShCNnQsIl9oYXNNZXNzYWdlTGlzdGVuZXJzIik7aShINnQsIl9hZGRMaXN0ZW5lck9iamVjdCIpO2kocTZ0LCJfcmVtb3ZlTGlzdGVuZXJPYmplY3QiKTtpKHJBYSwiX3N0YXJ0TGlzdGVuaW5nIik7aShvQWEsIl9zdG9wTGlzdGVuaW5nIil9KTtmdW5jdGlvbiBWNnQocyl7aWYodHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPT0iZnVuY3Rpb24iJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUpe3ZhciBlPXNlbGYuY2xvc2UuYmluZChzZWxmKTtzZWxmLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIHMoKSxlKCl9fWVsc2V7aWYodHlwZW9mIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIT0iZnVuY3Rpb24iKXJldHVybjt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe3MoKX0sITApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7cygpfSwhMCl9fXZhciBVNnQ9ZygoKT0+e2koVjZ0LCJhZGRCcm93c2VyIil9KTtmdW5jdGlvbiBXNnQocyl7cHJvY2Vzcy5vbigiZXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gcygpfSkscHJvY2Vzcy5vbigiYmVmb3JlRXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gcygpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oIlNJR0lOVCIsZnVuY3Rpb24oKXtyZXR1cm4gcygpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oInVuY2F1Z2h0RXhjZXB0aW9uIixmdW5jdGlvbihlKXtyZXR1cm4gcygpLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLnRyYWNlKGUpLHByb2Nlc3MuZXhpdCgxMDEpfSl9KX12YXIgRzZ0PWcoKCk9PntpKFc2dCwiYWRkTm9kZSIpfSk7ZnVuY3Rpb24gY0FhKCl7SzZ0fHwoSzZ0PSEwLGxBYShkQWEpKX1mdW5jdGlvbiBZNnQocyl7aWYoY0FhKCksdHlwZW9mIHMhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO3AzLmFkZChzKTt2YXIgZT17cmVtb3ZlOmkoZnVuY3Rpb24oKXtyZXR1cm4gcDMuZGVsZXRlKHMpfSwicmVtb3ZlIikscnVuOmkoZnVuY3Rpb24oKXtyZXR1cm4gcDMuZGVsZXRlKHMpLHMoKX0sInJ1biIpfTtyZXR1cm4gZX1mdW5jdGlvbiBkQWEoKXt2YXIgcz1bXTtyZXR1cm4gcDMuZm9yRWFjaChmdW5jdGlvbihlKXtzLnB1c2goZSgpKSxwMy5kZWxldGUoZSl9KSxQcm9taXNlLmFsbChzKX1mdW5jdGlvbiBWWXMoKXtwMy5jbGVhcigpfWZ1bmN0aW9uIFVZcygpe3JldHVybiBwMy5zaXplfXZhciBuQWEsbEFhLHAzLEs2dCxaNnQ9ZygoKT0+e1U2dCgpO0c2dCgpO25BYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsbEFhPW5BYT9XNnQ6VjZ0LHAzPW5ldyBTZXQsSzZ0PSExO2koY0FhLCJzdGFydExpc3RlbmluZyIpO2koWTZ0LCJhZGQiKTtpKGRBYSwicnVuQWxsIik7aShWWXMsInJlbW92ZUFsbCIpO2koVVlzLCJnZXRTaXplIil9KTtmdW5jdGlvbiB3MChzLGUpe3ZhciB0PXtjb250ZXh0OiJsZWFkZXIiLGFjdGlvbjplLHRva2VuOnMudG9rZW59O3JldHVybiBzLmJyb2FkY2FzdENoYW5uZWwucG9zdEludGVybmFsKHQpfWZ1bmN0aW9uIGh3KHMpe3MuaXNMZWFkZXI9ITAscy5faGFzTGVhZGVyPSEwO3ZhciBlPVk2dChmdW5jdGlvbigpe3JldHVybiBzLmRpZSgpfSk7cy5fdW5sLnB1c2goZSk7dmFyIHQ9aShmdW5jdGlvbihyKXtyLmNvbnRleHQ9PT0ibGVhZGVyIiYmci5hY3Rpb249PT0iYXBwbHkiJiZ3MChzLCJ0ZWxsIiksci5jb250ZXh0PT09ImxlYWRlciImJnIuYWN0aW9uPT09InRlbGwiJiYhcy5fZHBMQyYmKHMuX2RwTEM9ITAscy5fZHBMKCksdzAocywidGVsbCIpKX0sImlzTGVhZGVyTGlzdGVuZXIiKTtyZXR1cm4gcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIix0KSxzLl9sc3Rucy5wdXNoKHQpLHcwKHMsInRlbGwiKX12YXIgbHNlPWcoKCk9PntaNnQoKTtpKHcwLCJzZW5kTGVhZGVyTWVzc2FnZSIpO2koaHcsImJlTGVhZGVyIil9KTt2YXIgejRlLFg2dCxRNnQ9ZygoKT0+e0VwKCk7bHNlKCk7ejRlPWkoZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1lLGUuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiBhLmRpZSgpfSksdGhpcy5fb3B0aW9ucz10LHRoaXMuaXNMZWFkZXI9ITEsdGhpcy5pc0RlYWQ9ITEsdGhpcy50b2tlbj14MCgpLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubD1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITEsdGhpcy5fd0tNQz17fSx0aGlzLmxOPSJwdWJrZXktYmN8fCIrZS5tZXRob2QudHlwZSsifHwiK2UubmFtZX0sIkxlYWRlckVsZWN0aW9uV2ViTG9jayIpLFg2dD0iTGVhZGVyRWxlY3Rpb25XZWJMb2NrLmRpZSgpIGNhbGxlZCI7ejRlLnByb3RvdHlwZT17aGFzTGVhZGVyOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBhPXQuaGVsZD90LmhlbGQuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiByLm5hbWU9PT1lLmxOfSk6W107cmV0dXJuISEoYSYmYS5sZW5ndGg+MCl9KX0sImhhc0xlYWRlciIpLGF3YWl0TGVhZGVyc2hpcDppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighdGhpcy5fd0xNUCl7dGhpcy5fd0tNQy5jPW5ldyBBYm9ydENvbnRyb2xsZXI7dmFyIHQ9bmV3IFByb21pc2UoZnVuY3Rpb24oYSxyKXtlLl93S01DLnJlcz1hLGUuX3dLTUMucmVqPXJ9KTt0aGlzLl93TE1QPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGEscil7bmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoZS5sTix7c2lnbmFsOmUuX3dLTUMuYy5zaWduYWx9LGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3dLTUMuYz12b2lkIDAsaHcoZSksYSgpLHR9KS5jYXRjaChmdW5jdGlvbihuKXtuLm1lc3NhZ2UmJm4ubWVzc2FnZT09PVg2dHx8KGUuX3dLTUMucmVqJiZlLl93S01DLnJlaihuKSxyKG4pKX0pfSl9cmV0dXJuIHRoaXMuX3dMTVB9LCJhd2FpdExlYWRlcnNoaXAiKSxzZXQgb25kdXBsaWNhdGUocyl7fSxkaWU6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsdCl9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5pc0xlYWRlcj0hMSksdGhpcy5pc0RlYWQ9ITAsdGhpcy5fd0tNQy5yZXMmJnRoaXMuX3dLTUMucmVzKCksdGhpcy5fd0tNQy5jJiZ0aGlzLl93S01DLmMuYWJvcnQobmV3IEVycm9yKFg2dCkpLHcwKHRoaXMsImRlYXRoIil9LCJkaWUiKX19KTtmdW5jdGlvbiB1QWEocyl7cmV0dXJuIHMuaXNMZWFkZXI/Qmw6bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIHQ9ITE7ZnVuY3Rpb24gYSgpe3R8fCh0PSEwLHMuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbiksZSghMCkpfWkoYSwiZmluaXNoIikscy5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7cy5pc0xlYWRlciYmYSgpfSk7dmFyIHI9aShmdW5jdGlvbigpe3JldHVybiBkZChzLl9vcHRpb25zLmZhbGxiYWNrSW50ZXJ2YWwpLnRoZW4oZnVuY3Rpb24oKXtpZighKHMuaXNEZWFkfHx0KSlpZihzLmlzTGVhZGVyKWEoKTtlbHNlIHJldHVybiBzLmFwcGx5T25jZSghMCkudGhlbihmdW5jdGlvbigpe3MuaXNMZWFkZXI/YSgpOnIoKX0pfSl9LCJ0cnlPbkZhbGxCYWNrIik7cigpO3ZhciBuPWkoZnVuY3Rpb24obCl7bC5jb250ZXh0PT09ImxlYWRlciImJmwuYWN0aW9uPT09ImRlYXRoIiYmKHMuX2hhc0xlYWRlcj0hMSxzLmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXtzLmlzTGVhZGVyJiZhKCl9KSl9LCJ3aGVuRGVhdGhMaXN0ZW5lciIpO3MuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbikscy5fbHN0bnMucHVzaChuKX0pfWZ1bmN0aW9uIHBBYShzLGUpe3JldHVybiBzfHwocz17fSkscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHMpKSxzLmZhbGxiYWNrSW50ZXJ2YWx8fChzLmZhbGxiYWNrSW50ZXJ2YWw9M2UzKSxzLnJlc3BvbnNlVGltZXx8KHMucmVzcG9uc2VUaW1lPWUubWV0aG9kLmF2ZXJhZ2VSZXNwb25zZVRpbWUoZS5vcHRpb25zKSksc31mdW5jdGlvbiBoQWEocyxlKXtpZihzLl9sZWFkZXJFbGVjdG9yKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbCBhbHJlYWR5IGhhcyBhIGxlYWRlci1lbGVjdG9yIik7ZT1wQWEoZSxzKTt2YXIgdD15NnQoKT9uZXcgejRlKHMsZSk6bmV3IEo2dChzLGUpO3JldHVybiBzLl9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gdC5kaWUoKX0pLHMuX2xlYWRlckVsZWN0b3I9dCx0fXZhciBKNnQsZTV0PWcoKCk9PntFcCgpO2xzZSgpO1E2dCgpO0o2dD1pKGZ1bmN0aW9uKGUsdCl7dmFyIGE9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9ZSx0aGlzLl9vcHRpb25zPXQsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0RlYWQ9ITEsdGhpcy50b2tlbj14MCgpLHRoaXMuX2FwbFE9QmwsdGhpcy5fYXBsUUM9MCx0aGlzLl91bmw9W10sdGhpcy5fbHN0bnM9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExO3ZhciByPWkoZnVuY3Rpb24obyl7by5jb250ZXh0PT09ImxlYWRlciImJihvLmFjdGlvbj09PSJkZWF0aCImJihhLl9oYXNMZWFkZXI9ITEpLG8uYWN0aW9uPT09InRlbGwiJiYoYS5faGFzTGVhZGVyPSEwKSl9LCJoYXNMZWFkZXJMaXN0ZW5lciIpO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsciksdGhpcy5fbHN0bnMucHVzaChyKX0sIkxlYWRlckVsZWN0aW9uIik7SjZ0LnByb3RvdHlwZT17aGFzTGVhZGVyOmkoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2hhc0xlYWRlcil9LCJoYXNMZWFkZXIiKSxhcHBseU9uY2U6aShmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKHRoaXMuaXNMZWFkZXIpcmV0dXJuIGRkKDAsITApO2lmKHRoaXMuaXNEZWFkKXJldHVybiBkZCgwLCExKTtpZih0aGlzLl9hcGxRQz4xKXJldHVybiB0aGlzLl9hcGxRO3ZhciBhPWkoZnVuY3Rpb24oKXtpZih0LmlzTGVhZGVyKXJldHVybiB2NnQ7dmFyIG49ITEsbyxsPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHUpe289aShmdW5jdGlvbigpe249ITAsdSgpfSwic3RvcENyaXRlcmlhUHJvbWlzZVJlc29sdmUiKX0pLHA9aShmdW5jdGlvbihjKXtjLmNvbnRleHQ9PT0ibGVhZGVyIiYmYy50b2tlbiE9dC50b2tlbiYmKGMuYWN0aW9uPT09ImFwcGx5IiYmYy50b2tlbj50LnRva2VuJiZvKCksYy5hY3Rpb249PT0idGVsbCImJihvKCksdC5faGFzTGVhZGVyPSEwKSl9LCJoYW5kbGVNZXNzYWdlIik7dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixwKTt2YXIgZD1lP3QuX29wdGlvbnMucmVzcG9uc2VUaW1lKjQ6dC5fb3B0aW9ucy5yZXNwb25zZVRpbWU7cmV0dXJuIHcwKHQsImFwcGx5IikudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW2RkKGQpLGwudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdzAodCwiYXBwbHkiKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFtkZChkKSxsLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixwKSxuPyExOmh3KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSl9LCJhcHBseVJ1biIpO3JldHVybiB0aGlzLl9hcGxRQz10aGlzLl9hcGxRQysxLHRoaXMuX2FwbFE9dGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEoKX0pLnRoZW4oZnVuY3Rpb24oKXt0Ll9hcGxRQz10Ll9hcGxRQy0xfSksdGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuaXNMZWFkZXJ9KX0sImFwcGx5T25jZSIpLGF3YWl0TGVhZGVyc2hpcDppKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FMUHx8KHRoaXMuX2FMUD11QWEodGhpcykpLHRoaXMuX2FMUH0sImF3YWl0TGVhZGVyc2hpcCIpLHNldCBvbmR1cGxpY2F0ZShzKXt0aGlzLl9kcEw9c30sZGllOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHQpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCx3MCh0aGlzLCJkZWF0aCIpfSwiZGllIil9O2kodUFhLCJfYXdhaXRMZWFkZXJzaGlwT25jZSIpO2kocEFhLCJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIpO2koaEFhLCJjcmVhdGVMZWFkZXJFbGVjdGlvbiIpfSk7dmFyIHQ1dD1nKCgpPT57ajZ0KCk7ZTV0KCk7bHNlKCl9KTt2YXIgYTV0PWcoKCk9PntkMCgpO1U0KCk7bTZ0KCk7dDV0KCl9KTt2YXIgQzRlLFQ0ZSxzNXQ9ZygoKT0+e2E1dCgpO0M0ZT1nbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWw7QzRlfHwoQzRlPXUzKTtUNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVlc0NvbW1zIil9Y29uc3RydWN0b3IoKXt0aGlzLmJyb2FkY2FzdENoYW5uZWw9bmV3IEM0ZSgiZGVlcy1jb21tcyIpLHRoaXMudHlwZWRyb3V0ZXI9bmV3IExwLlR5cGVkUm91dGVyLHRoaXMudHlwZWR0YXJnZXQ9bmV3IExwLlR5cGVkVGFyZ2V0KHtwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyOmkoYXN5bmMgZT0+e3RoaXMucG9zdE1lc3NhZ2UoZSl9LCJwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyIiksdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgZT0+e2xldCB0PWUubWV0aG9kP2U6ZS5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHQpKTtsZXQgYT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2UodCx7c2tpcEhvb2tzOiEwfSk7YSYmIWEuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoYSl9fWNyZWF0ZVR5cGVkUmVxdWVzdChlKXtyZXR1cm4gbmV3IExwLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LGUpfWFzeW5jIHBvc3RNZXNzYWdlKGUpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShlKX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIoZSx0KXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgTHAuVHlwZWRIYW5kbGVyKGUsdCkpfX19KTt2YXIgZnc9e307eXQoZncse0RlZXNDb21tczooKT0+VDRlfSk7dmFyIGk1dD1nKCgpPT57czV0KCl9KTt2YXIgUHAsSXA9ZygoKT0+e1U0KCk7UHA9eG4oaXkoKSwxKTt1OSgpOyRoZSgpO2QwKCk7RWhlKCk7aW8oKTthc2UoKX0pO3ZhciBUMSxTOT1nKCgpPT57SXAoKTtUMT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlc3BvbnNlRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuZXJyb3JUZXh0PWUsdGhpcy5lcnJvckRhdGE9dH19fSk7dmFyIGRzZSxyNXQ9ZygoKT0+e1M5KCk7SXAoKTtkc2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUb29scyIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyhlLHQpe2xldCBhPW5ldyB2MC5HdWFyZFNldChlKTtpZighYXdhaXQgYS5hbGxHdWFyZHNQYXNzKHQpKXtsZXQgbj1hd2FpdCBhLmdldEZhaWxlZEhpbnQodCk7dGhyb3cgbmV3IFQxKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciAkNGUsRDRlPWcoKCk9PntJcCgpO1M5KCk7cjV0KCk7JDRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkSGFuZGxlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5tZXRob2Q9ZSx0aGlzLmhhbmRsZXJGdW5jdGlvbj10fWFzeW5jIGFkZFJlc3BvbnNlKGUpe2lmKGUubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHQsYT1uZXcgZHNlO2UubG9jYWxEYXRhJiYoYS5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCByPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxhKS5jYXRjaChuPT57biBpbnN0YW5jZW9mIFQxP3Q9bjpjb25zb2xlLmxvZyhuKX0pO3JldHVybiB0JiYoZS5lcnJvcj17dGV4dDp0LmVycm9yVGV4dCxkYXRhOnQuZXJyb3JEYXRhfSksciYmKGUucmVzcG9uc2U9ciksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgaDMsbXc9ZygoKT0+e0lwKCk7dXNlKCk7RDRlKCk7TDRlKCk7UzkoKTtoMz1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlR5cGVkUm91dGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmhvb2tzPXt9LHRoaXMucm91dGVyTWFwPW5ldyBGcy5PYmplY3RNYXAsdGhpcy5oYW5kbGVyTWFwPW5ldyBGcy5PYmplY3RNYXAsdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXM9bmV3IEZzLk9iamVjdE1hcCx0aGlzLm1pZGRsZXdhcmVzPVtdLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXA9bmV3IEZzLkludGVyZXN0TWFwKGU9PmUpfXN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKXtyZXR1cm4gZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N8fChnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fSksZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N9c3RhdGljIHNldCBnbG9iYWxIb29rcyhlKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz1lfXN0YXRpYyBzZXRHbG9iYWxIb29rcyhlKXtsZXQgdD1zLmdsb2JhbEhvb2tzO3MuZ2xvYmFsSG9va3M9ey4uLnQsLi4uZX19c3RhdGljIGNsZWFyR2xvYmFsSG9va3MoKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fX1zZXRIb29rcyhlKXt0aGlzLmhvb2tzPXsuLi50aGlzLmhvb2tzLC4uLmV9fWNhbGxIb29rKGUsdCl7dHJ5e3MuZ2xvYmFsSG9va3NbZV0/Lih0KSx0aGlzLmhvb2tzW2VdPy4odCl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgVHlwZWRSb3V0ZXIgaG9vayBlcnJvciAoJHtlfSk6YCxhKX19YWRkTWlkZGxld2FyZShlKXt0aGlzLm1pZGRsZXdhcmVzLnB1c2goZSl9YWRkVHlwZWRIYW5kbGVyKGUpe2lmKHRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoYGEgVHlwZWRIYW5kbGVyIGZvciAke2UubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYCk7dGhpcy5oYW5kbGVyTWFwLmFkZChlKX1hZGRUeXBlZFJvdXRlcihlKXt0aGlzLnJvdXRlck1hcC5maW5kU3luYyhhPT5hPT09ZSl8fCh0aGlzLnJvdXRlck1hcC5hZGQoZSksZS5hZGRUeXBlZFJvdXRlcih0aGlzKSl9Y2hlY2tGb3JUeXBlZEhhbmRsZXIoZSl7cmV0dXJuISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlKX1nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSx0PVtdKXt0LnB1c2godGhpcyk7bGV0IGE7cmV0dXJuIGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHI9PnIubWV0aG9kPT09ZSksYXx8dGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKHI9PnshYSYmIXQuaW5jbHVkZXMocikmJihhPXIuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUsdCkpfSksYX1nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSx0PVtdKXt0LnB1c2godGhpcyk7bGV0IGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHI9PnIubWV0aG9kPT09ZSk7aWYoYSlyZXR1cm57aGFuZGxlcjphLHJvdXRlcjp0aGlzfTtmb3IobGV0IHIgb2YgdGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKSlpZighdC5pbmNsdWRlcyhyKSl7bGV0IG49ci5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSx0KTtpZihuKXJldHVybiBufXJldHVybiBudWxsfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UoZSx0PXt9KXtsZXQgYT17Li4ucy5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnR9O2lmKGU9JDEuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxlLmxvY2FsRGF0YT1lLmxvY2FsRGF0YXx8e30sZS5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLGUubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IHI9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSk7cmV0dXJuIHIubG9jYWxEYXRhPW51bGwscn1pZihlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGEubG9jYWxSZXF1ZXN0KXtsZXQgcj1EYXRlLm5vdygpO2Euc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDpyLHBheWxvYWQ6ZS5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZS5tZXRob2QpO2lmKCFuKXJldHVybiBjb25zb2xlLmxvZyhgQ2Fubm90IGZpbmQgaGFuZGxlciBmb3IgbWV0aG9kbmFtZSAke2UubWV0aG9kfWApLGUuZXJyb3I9e3RleHQ6IlRoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9JDEuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlO2xldHtoYW5kbGVyOm8scm91dGVyOmx9PW47aWYobC5taWRkbGV3YXJlcy5sZW5ndGg+MCl0cnl7Zm9yKGxldCBwIG9mIGwubWlkZGxld2FyZXMpYXdhaXQgcChlKX1jYXRjaChwKXtyZXR1cm4gcCBpbnN0YW5jZW9mIFQxP2UuZXJyb3I9e3RleHQ6cC5lcnJvclRleHQsZGF0YTpwLmVycm9yRGF0YXx8e319OmUuZXJyb3I9e3RleHQ6cC5tZXNzYWdlfHwiTWlkZGxld2FyZSBlcnJvciIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT0kMS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcixwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9cmV0dXJuIGU9YXdhaXQgby5hZGRSZXNwb25zZShlKSxlLmxvY2FsRGF0YT1udWxsLGU9JDEuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlfWVsc2UgcmV0dXJuIGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdChlKSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyhlKSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSl7bGV0IHQ9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyByPT5yLnN0cmVhbUlkPT09ZS5yZXF1ZXN0LnN0cmVhbUlkKTtpZih0KWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksZTtyZXR1cm4gYXdhaXQgdC5oYW5kbGVTdHJlYW1UcihlKX19fSk7dmFyIG81dCwkMSx1c2U9ZygoKT0+e0lwKCk7bXcoKTtvNXQ9IiMjIyMjIyMjIyMjIyNDTE9TSU5HIEJJVCMjIyMjIyMjIyMjIyMiLCQxPWNsYXNzIHN7c3RhdGlje2kodGhpcywiVmlydHVhbFN0cmVhbSIpfXN0YXRpYyBlbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHQsYSxyPVtdKXtyZXR1cm4hZXx8eTEuaXNCdWZmZXJMaWtlKGUpP2U6ZSBpbnN0YW5jZW9mIHM/KCFlLnNpZGUmJnQuc2VuZE1ldGhvZCYmKGUuc2lkZT0icmVxdWVzdGluZyIsZS5zZW5kTWV0aG9kPXQuc2VuZE1ldGhvZCksIWUuc2lkZSYmdC50eXBlZHJvdXRlciYmKGUuc2lkZT0icmVzcG9uZGluZyIsZS50eXBlZHJvdXRlcj10LnR5cGVkcm91dGVyLHQudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChlKSksIWEucmVzcG9uc2V8fHIuaW5jbHVkZXMoInJlc3BvbnNlIik/KGUuc3RhcnRLZWVwQWxpdmVMb29wKCkse19pc1ZpcnR1YWxTdHJlYW06ITAsc3RyZWFtSWQ6ZS5zdHJlYW1JZH0pOntfT0JNSVRURURfVklSVFVBTF9TVFJFQU06ITAscmVhc29uOiJwYXRoIGlzIHVuZGVyIC5yZXF1ZXN0OiBvYm1pdHRlZCBmb3IgZGVkdXBsaWNhdGlvbiByZWFzb25zIGluIHJlc3BvbnNlIGN5Y2xlLiJ9KTpBcnJheS5pc0FycmF5KGUpP2UubWFwKChuLG8pPT5zLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKG4sdCxhfHxlLHIuY29uY2F0KFN0cmluZyhvKSkpKTplIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiP09iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgobixbbyxsXSk9PntsZXQgcD1yLmNvbmNhdChvKTtyZXR1cm4gbltvXT1zLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGwsdCxhfHxlLHApLG59LHt9KTplfXN0YXRpYyBkZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSx0KXtpZih5MS5pc0J1ZmZlckxpa2UoZSl8fGUgaW5zdGFuY2VvZiBoMylyZXR1cm4gZTtpZihlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiKXtpZihlIGluc3RhbmNlb2YgU2V0fHxlIGluc3RhbmNlb2YgTWFwfHxlIGluc3RhbmNlb2YgRGF0ZXx8ZSBpbnN0YW5jZW9mIFJlZ0V4cHx8ZSBpbnN0YW5jZW9mIEVycm9yfHxlIGluc3RhbmNlb2YgUHJvbWlzZXx8dHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gZTtpZihlLl9pc1ZpcnR1YWxTdHJlYW0pe2xldCBhPW5ldyBzO3JldHVybiBhLnN0cmVhbUlkPWUuc3RyZWFtSWQsIWEuc2lkZSYmdC5zZW5kTWV0aG9kJiYoYS5zaWRlPSJyZXF1ZXN0aW5nIixhLnNlbmRNZXRob2Q9dC5zZW5kTWV0aG9kKSwhYS5zaWRlJiZ0LnR5cGVkcm91dGVyJiYoYS5zaWRlPSJyZXNwb25kaW5nIixhLnR5cGVkcm91dGVyPXQudHlwZWRyb3V0ZXIsdC50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGEpKSxhLnN0YXJ0S2VlcEFsaXZlTG9vcCgpLGF9ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1bXTtmb3IobGV0IHIgb2YgZSlhLnB1c2gocy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsocix0KSk7cmV0dXJuIGF9ZWxzZSByZXR1cm4gT2JqZWN0LmtleXMoZSkucmVkdWNlKChhLHIpPT4oYVtyXT1zLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlW3JdLHQpLGEpLHt9KX1lbHNlIHJldHVybiBlfWNvbnN0cnVjdG9yKCl7dGhpcy5zdHJlYW1JZD1QcC51bmkoKSx0aGlzLmtlZXBBbGl2ZT0hMCx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IEZzLkJhY2twcmVzc3VyZWRBcnJheSgxNiksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5PW5ldyBGcy5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpfXN0YXRpYyByZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUpe2lmKGU9PW51bGx8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBlO2lmKHR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoZS50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgZS5kYXRhPT0ic3RyaW5nIiYmZS5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IGE9ZS5kYXRhLnNsaWNlKDcpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXtsZXQgcj1CdWZmZXIuZnJvbShhLCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoci5idWZmZXIsci5ieXRlT2Zmc2V0LHIuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYihhKSkubWFwKHI9PnIuY2hhckNvZGVBdCgwKSkpfWlmKGUudHlwZT09PSJCdWZmZXIiJiZBcnJheS5pc0FycmF5KGUuZGF0YSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuZGF0YSk7bGV0IHQ9T2JqZWN0LmtleXMoZSk7aWYodC5sZW5ndGg+MCYmdC5ldmVyeShhPT4vXlxkKyQvLnRlc3QoYSkpKXtsZXQgYT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgciBvZiB0KWFbTnVtYmVyKHIpXT1lW3JdO2lmKGEuZXZlcnkocj0+dHlwZW9mIHI9PSJudW1iZXIiKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSl9fXJldHVybiBlfWFzeW5jIHdvcmtPblF1ZXVlKCl7aWYodGhpcy53b3JraW5nRGVmZXJyZWQpcmV0dXJuIHRoaXMud29ya2luZ0RlZmVycmVkLnByb21pc2U7aWYodGhpcy53b3JraW5nRGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2xldCBlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLHQ9ITEsYT0hMSxyPWkoYXN5bmMoKT0+e2xldCBuPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOlBwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pntjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMX0pO24mJm4ucmVzcG9uc2UmJihhPW4ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9bi5yZXNwb25zZS5uZXh0KX0sImdldEZlZWRiYWNrIik7Zm9yKGF3YWl0IHIoKTt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MHx8dDspe2lmKGEpZm9yKDthOyljb25zb2xlLmxvZygid2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4iKSxhd2FpdCBYdC5kZWxheUZvcig1MCksYXdhaXQgcigpO2xldCBuO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiYobj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKSk7bGV0IG87bz1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpQcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6bj8iY2h1bmsiOiJyZWFkIixiYWNrcHJlc3N1cmU6ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLC4uLm4/e2NodW5rRGF0YTpufTp7fX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT4oY29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITEsbnVsbCkpLG8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuY2h1bmtEYXRhJiZ0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChzLnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoby5yZXNwb25zZS5jaHVua0RhdGEpKSxhPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksdD1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKGUpe2lmKGUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOmUucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2gocy5yZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUucmVxdWVzdC5jaHVua0RhdGEpKSx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCYmZS5yZXNwb25zZS5iYWNrcHJlc3N1cmU9PT0hMSl7bGV0IHQ9dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCk7ZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImNodW5rIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4xLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxjaHVua0RhdGE6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9fWVsc2UgZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX07ZS5yZXF1ZXN0PW51bGx9cmV0dXJuIGV9YXN5bmMgY2xlYW51cCgpe3RoaXMudHlwZWRyb3V0ZXImJnRoaXMudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLnJlbW92ZSh0aGlzKX1hc3luYyBzdGFydEtlZXBBbGl2ZUxvb3AoKXtpZih0aGlzLnNpZGU9PT0icmVzcG9uZGluZyIpcmV0dXJuO2F3YWl0IFh0LmRlbGF5Rm9yKDApLGNvbnNvbGUubG9nKGBzdGFydGluZyBrZWVwYWxpdmUgbG9vcCBvbiBzaWRlICR7dGhpcy5zaWRlfWApO2xldCBlPTA7Zm9yKDt0aGlzLmtlZXBBbGl2ZTspYXdhaXQgdGhpcy50cmlnZ2VyS2VlcEFsaXZlKCksYXdhaXQgWHQuZGVsYXlGb3IoMWUzKTthd2FpdCBYdC5kZWxheUZvcigxZTMpLGF3YWl0IHRoaXMuY2xlYW51cCgpLGNvbnNvbGUubG9nKGBjbGVhbmVkIHVwIGZvciBzdHJlYW0gJHt0aGlzLnN0cmVhbUlkfWApfWFzeW5jIHRyaWdnZXJLZWVwQWxpdmUoKXtpZih0aGlzLnNpZGU9PT0icmVxdWVzdGluZyIpe2NvbnNvbGUubG9nKCJrZWVwYWxpdmUgc2VudC4iKTtsZXQgZT1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpQcC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pnt0aGlzLmtlZXBBbGl2ZT0hMX0pO2UmJmUucmVzcG9uc2UmJmUucmVzcG9uc2Uua2VlcEFsaXZlPT09ITE/dGhpcy5rZWVwQWxpdmU9ITE6dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKSxlJiZlLnJlc3BvbnNlJiZlLnJlc3BvbnNlLm5leHQmJnRoaXMud29ya09uUXVldWUoKX1EYXRlLm5vdygpLXRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PjFlNCYmKGNvbnNvbGUubG9nKGBjbG9zaW5nIHN0cmVhbSBmb3IgJHt0aGlzLnN0cmVhbUlkfWApLHRoaXMua2VlcEFsaXZlPSExKX1hc3luYyBzZW5kRGF0YShlKXt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChlKSx0aGlzLndvcmtPblF1ZXVlKCksYXdhaXQgdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JTcGFjZSgpfWFzeW5jIGZldGNoRGF0YSgpe3JldHVybiB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuaGFzU3BhY2UsYXdhaXQgdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JJdGVtcygpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfWFzeW5jIHJlYWRGcm9tV2Vic3RyZWFtKGUsdD0hMCl7bGV0IGE9ZS5nZXRSZWFkZXIoKSxyPSExO2Zvcig7IXI7KXtsZXR7dmFsdWU6bixkb25lOm99PWF3YWl0IGEucmVhZCgpO24mJmF3YWl0IHRoaXMuc2VuZERhdGEobikscj1vfXQmJmF3YWl0IHRoaXMuY2xvc2UoITApfWFzeW5jIHdyaXRlVG9XZWJzdHJlYW0oZSl7bGV0IHQ9ZS5nZXRXcml0ZXIoKTtmb3IoO3RoaXMua2VlcEFsaXZlfHx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tIYXNJdGVtcygpOyl7bGV0IGE9YXdhaXQgdGhpcy5mZXRjaERhdGEoKTtpZihhPT09bzV0KXt0LnJlbGVhc2VMb2NrKCksYXdhaXQgZS5jbG9zZSgpO2JyZWFrfWF3YWl0IHQud3JpdGUoYSl9fWFzeW5jIGNsb3NlKGU9ITEpe2UmJnRoaXMuc2VuZERhdGEobzV0KSx0aGlzLmtlZXBBbGl2ZT0hMX19fSk7dmFyIEU0ZSxQNGU9ZygoKT0+e213KCk7SXAoKTtFNGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUYXJnZXQiKX1jb25zdHJ1Y3RvcihlKXtpZihlLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXImJiFlLnR5cGVkUm91dGVyUmVmKXRocm93IG5ldyBFcnJvcigieW91IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGVkcm91dGVyIHdoZW4gdXNpbmcgcG9zdG1ldGhvZCB3aXRoIHR5cGVkcm91dGVyIik7dGhpcy5vcHRpb25zPWV9YXN5bmMgcG9zdChlKXtsZXQgdDt0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYmJih0PWF3YWl0IHRoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZi5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkLGUpKTtsZXQgcj1hd2FpdCh0aGlzLm9wdGlvbnMucG9zdE1ldGhvZHx8dGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIpKGUpLG47cmV0dXJuIHQ/bj1hd2FpdCB0LmludGVyZXN0RnVsbGZpbGxlZDpyP249cjpuPWUsbn19fSk7ZnVuY3Rpb24gbjV0KHMsZSl7dHJ5e2gzLmdsb2JhbEhvb2tzW3NdPy4oZSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcihgVHlwZWRSZXF1ZXN0IGhvb2sgZXJyb3IgKCR7c30pOmAsdCl9fXZhciBtQWEsZ3csTDRlPWcoKCk9PntJcCgpO3VzZSgpO1M5KCk7bXcoKTtQNGUoKTttQWE9bmV3IF8xLldlYnJlcXVlc3RDbGllbnQ7aShuNXQsImNhbGxHbG9iYWxIb29rIik7Z3c9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRSZXF1ZXN0Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgZT09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD1lOnRoaXMudHlwZWRUYXJnZXQ9ZSx0aGlzLm1ldGhvZD10fWFzeW5jIGZpcmUoZSx0PSExKXtsZXQgYT1EYXRlLm5vdygpLHI9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OmUscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6UHAudW5pKCkscGhhc2U6InJlcXVlc3QifX07cj0kMS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhyLHtzZW5kTWV0aG9kOmkobz0+dGhpcy5wb3N0VHJPYmplY3QobyksInNlbmRNZXRob2QiKX0pLHRoaXMuc2tpcEhvb2tzfHxuNXQoIm9uT3V0Z29pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDpyLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOmEscGF5bG9hZDplfSk7bGV0IG47cmV0dXJuIG49YXdhaXQgdGhpcy5wb3N0VHJPYmplY3Qocix0KSxuPSQxLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhuLHtzZW5kTWV0aG9kOmkobz0+dGhpcy5wb3N0VHJPYmplY3QobyksInNlbmRNZXRob2QiKX0pLHRoaXMuc2tpcEhvb2tzfHxuNXQoIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ci5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktYSxwYXlsb2FkOm4/LnJlc3BvbnNlLGVycm9yOm4/LmVycm9yPy50ZXh0fSksbi5yZXNwb25zZX1hc3luYyBwb3N0VHJPYmplY3QoZSx0PSExKXtsZXQgYTtpZih0aGlzLnVybEVuZFBvaW50P2E9YXdhaXQgbUFhLnBvc3RKc29uKHRoaXMudXJsRW5kUG9pbnQsZSx0P3tjYWNoZVN0cmF0ZWd5OiJjYWNoZS1maXJzdCJ9Ont9KTphPWF3YWl0IHRoaXMudHlwZWRUYXJnZXQucG9zdChlKSxhLmVycm9yKXtpZihjb25zb2xlLmVycm9yKGBtZXRob2Q6ID4+JHt0aGlzLm1ldGhvZH08PCBnb3QgYW4gRVJST1I6ICIke2EuZXJyb3IudGV4dH0iIHdpdGggZGF0YSAke0pTT04uc3RyaW5naWZ5KGEuZXJyb3IuZGF0YSxudWxsLDIpfWApLCFhLnJldHJ5KXRocm93IG5ldyBUMShhLmVycm9yLnRleHQsYS5lcnJvci5kYXRhKTtyZXR1cm4gbnVsbH1yZXR1cm4gYS5yZXRyeSYmKGNvbnNvbGUubG9nKGBzZXJ2ZXIgcmVxdWVzdGVkIHJldHJ5IGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbjogJHthLnJldHJ5LnJlYXNvbn1gKSxhd2FpdCBYdC5kZWxheUZvcihhLnJldHJ5LndhaXRGb3JNcyksYT1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChlLHQpKSxhfX19KTt2YXIgZ2w9e307eXQoZ2wse1R5cGVkSGFuZGxlcjooKT0+JDRlLFR5cGVkUmVxdWVzdDooKT0+Z3csVHlwZWRSZXNwb25zZUVycm9yOigpPT5UMSxUeXBlZFJvdXRlcjooKT0+aDMsVHlwZWRUYXJnZXQ6KCk9PkU0ZSxWaXJ0dWFsU3RyZWFtOigpPT4kMX0pO3ZhciBwc2U9ZygoKT0+e0w0ZSgpO0Q0ZSgpO213KCk7UzkoKTtQNGUoKTt1c2UoKX0pO2Z1bmN0aW9uIGRzKHMpe2lmKHMmJnR5cGVvZiBzPT0ib2JqZWN0Iilzd2l0Y2goc1tKb10pe2Nhc2UgemM6Y2FzZSB1ZDpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBJYShzKXtpZihzJiZ0eXBlb2Ygcz09Im9iamVjdCIpc3dpdGNoKHNbSm9dKXtjYXNlIGJ3OmNhc2UgemM6Y2FzZSBibDpjYXNlIHVkOnJldHVybiEwfXJldHVybiExfXZhciBidyx2dyx6Yyxoc2UsYmwsdWQsSm8sdmwseGwseWwsQ2EsbGEsd2wseHcsdXM9ZygoKT0+e2J3PVN5bWJvbC5mb3IoInlhbWwuYWxpYXMiKSx2dz1TeW1ib2wuZm9yKCJ5YW1sLmRvY3VtZW50IiksemM9U3ltYm9sLmZvcigieWFtbC5tYXAiKSxoc2U9U3ltYm9sLmZvcigieWFtbC5wYWlyIiksYmw9U3ltYm9sLmZvcigieWFtbC5zY2FsYXIiKSx1ZD1TeW1ib2wuZm9yKCJ5YW1sLnNlcSIpLEpvPVN5bWJvbC5mb3IoInlhbWwubm9kZS50eXBlIiksdmw9aShzPT4hIXMmJnR5cGVvZiBzPT0ib2JqZWN0IiYmc1tKb109PT1idywiaXNBbGlhcyIpLHhsPWkocz0+ISFzJiZ0eXBlb2Ygcz09Im9iamVjdCImJnNbSm9dPT09dncsImlzRG9jdW1lbnQiKSx5bD1pKHM9PiEhcyYmdHlwZW9mIHM9PSJvYmplY3QiJiZzW0pvXT09PXpjLCJpc01hcCIpLENhPWkocz0+ISFzJiZ0eXBlb2Ygcz09Im9iamVjdCImJnNbSm9dPT09aHNlLCJpc1BhaXIiKSxsYT1pKHM9PiEhcyYmdHlwZW9mIHM9PSJvYmplY3QiJiZzW0pvXT09PWJsLCJpc1NjYWxhciIpLHdsPWkocz0+ISFzJiZ0eXBlb2Ygcz09Im9iamVjdCImJnNbSm9dPT09dWQsImlzU2VxIik7aShkcywiaXNDb2xsZWN0aW9uIik7aShJYSwiaXNOb2RlIik7eHc9aShzPT4obGEocyl8fGRzKHMpKSYmISFzLmFuY2hvciwiaGFzQW5jaG9yIil9KTtmdW5jdGlvbiBIbChzLGUpe2xldCB0PWM1dChlKTt4bChzKT9fOShudWxsLHMuY29udGVudHMsdCxPYmplY3QuZnJlZXplKFtzXSkpPT09cGQmJihzLmNvbnRlbnRzPW51bGwpOl85KG51bGwscyx0LE9iamVjdC5mcmVlemUoW10pKX1mdW5jdGlvbiBfOShzLGUsdCxhKXtsZXQgcj1kNXQocyxlLHQsYSk7aWYoSWEocil8fENhKHIpKXJldHVybiB1NXQocyxhLHIpLF85KHMscix0LGEpO2lmKHR5cGVvZiByIT0ic3ltYm9sIil7aWYoZHMoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7Zm9yKGxldCBuPTA7bjxlLml0ZW1zLmxlbmd0aDsrK24pe2xldCBvPV85KG4sZS5pdGVtc1tuXSx0LGEpO2lmKHR5cGVvZiBvPT0ibnVtYmVyIiluPW8tMTtlbHNle2lmKG89PT1rbClyZXR1cm4ga2w7bz09PXBkJiYoZS5pdGVtcy5zcGxpY2UobiwxKSxuLT0xKX19fWVsc2UgaWYoQ2EoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7bGV0IG49XzkoImtleSIsZS5rZXksdCxhKTtpZihuPT09a2wpcmV0dXJuIGtsO249PT1wZCYmKGUua2V5PW51bGwpO2xldCBvPV85KCJ2YWx1ZSIsZS52YWx1ZSx0LGEpO2lmKG89PT1rbClyZXR1cm4ga2w7bz09PXBkJiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHJ9YXN5bmMgZnVuY3Rpb24gZjMocyxlKXtsZXQgdD1jNXQoZSk7eGwocyk/YXdhaXQgTTkobnVsbCxzLmNvbnRlbnRzLHQsT2JqZWN0LmZyZWV6ZShbc10pKT09PXBkJiYocy5jb250ZW50cz1udWxsKTphd2FpdCBNOShudWxsLHMsdCxPYmplY3QuZnJlZXplKFtdKSl9YXN5bmMgZnVuY3Rpb24gTTkocyxlLHQsYSl7bGV0IHI9YXdhaXQgZDV0KHMsZSx0LGEpO2lmKElhKHIpfHxDYShyKSlyZXR1cm4gdTV0KHMsYSxyKSxNOShzLHIsdCxhKTtpZih0eXBlb2YgciE9InN5bWJvbCIpe2lmKGRzKGUpKXthPU9iamVjdC5mcmVlemUoYS5jb25jYXQoZSkpO2ZvcihsZXQgbj0wO248ZS5pdGVtcy5sZW5ndGg7KytuKXtsZXQgbz1hd2FpdCBNOShuLGUuaXRlbXNbbl0sdCxhKTtpZih0eXBlb2Ygbz09Im51bWJlciIpbj1vLTE7ZWxzZXtpZihvPT09a2wpcmV0dXJuIGtsO289PT1wZCYmKGUuaXRlbXMuc3BsaWNlKG4sMSksbi09MSl9fX1lbHNlIGlmKENhKGUpKXthPU9iamVjdC5mcmVlemUoYS5jb25jYXQoZSkpO2xldCBuPWF3YWl0IE05KCJrZXkiLGUua2V5LHQsYSk7aWYobj09PWtsKXJldHVybiBrbDtuPT09cGQmJihlLmtleT1udWxsKTtsZXQgbz1hd2FpdCBNOSgidmFsdWUiLGUudmFsdWUsdCxhKTtpZihvPT09a2wpcmV0dXJuIGtsO289PT1wZCYmKGUudmFsdWU9bnVsbCl9fXJldHVybiByfWZ1bmN0aW9uIGM1dChzKXtyZXR1cm4gdHlwZW9mIHM9PSJvYmplY3QiJiYocy5Db2xsZWN0aW9ufHxzLk5vZGV8fHMuVmFsdWUpP09iamVjdC5hc3NpZ24oe0FsaWFzOnMuTm9kZSxNYXA6cy5Ob2RlLFNjYWxhcjpzLk5vZGUsU2VxOnMuTm9kZX0scy5WYWx1ZSYme01hcDpzLlZhbHVlLFNjYWxhcjpzLlZhbHVlLFNlcTpzLlZhbHVlfSxzLkNvbGxlY3Rpb24mJntNYXA6cy5Db2xsZWN0aW9uLFNlcTpzLkNvbGxlY3Rpb259LHMpOnN9ZnVuY3Rpb24gZDV0KHMsZSx0LGEpe2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiB0KHMsZSxhKTtpZih5bChlKSlyZXR1cm4gdC5NYXA/LihzLGUsYSk7aWYod2woZSkpcmV0dXJuIHQuU2VxPy4ocyxlLGEpO2lmKENhKGUpKXJldHVybiB0LlBhaXI/LihzLGUsYSk7aWYobGEoZSkpcmV0dXJuIHQuU2NhbGFyPy4ocyxlLGEpO2lmKHZsKGUpKXJldHVybiB0LkFsaWFzPy4ocyxlLGEpfWZ1bmN0aW9uIHU1dChzLGUsdCl7bGV0IGE9ZVtlLmxlbmd0aC0xXTtpZihkcyhhKSlhLml0ZW1zW3NdPXQ7ZWxzZSBpZihDYShhKSlzPT09ImtleSI/YS5rZXk9dDphLnZhbHVlPXQ7ZWxzZSBpZih4bChhKSlhLmNvbnRlbnRzPXQ7ZWxzZXtsZXQgcj12bChhKT8iYWxpYXMiOiJzY2FsYXIiO3Rocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlcGxhY2Ugbm9kZSB3aXRoICR7cn0gcGFyZW50YCl9fXZhciBrbCxsNXQscGQseXc9ZygoKT0+e3VzKCk7a2w9U3ltYm9sKCJicmVhayB2aXNpdCIpLGw1dD1TeW1ib2woInNraXAgY2hpbGRyZW4iKSxwZD1TeW1ib2woInJlbW92ZSBub2RlIik7aShIbCwidmlzaXQiKSxIbC5CUkVBSz1rbCxIbC5TS0lQPWw1dCxIbC5SRU1PVkU9cGQ7aShfOSwidmlzaXRfIik7aShmMywidmlzaXRBc3luYyIpLGYzLkJSRUFLPWtsLGYzLlNLSVA9bDV0LGYzLlJFTU9WRT1wZDtpKE05LCJ2aXNpdEFzeW5jXyIpO2koYzV0LCJpbml0VmlzaXRvciIpO2koZDV0LCJjYWxsVmlzaXRvciIpO2kodTV0LCJyZXBsYWNlTm9kZSIpfSk7dmFyIGdBYSxiQWEsRDEsSTRlPWcoKCk9Pnt1cygpO3l3KCk7Z0FhPXsiISI6IiUyMSIsIiwiOiIlMkMiLCJbIjoiJTVCIiwiXSI6IiU1RCIsInsiOiIlN0IiLCJ9IjoiJTdEIn0sYkFhPWkocz0+cy5yZXBsYWNlKC9bISxbXF17fV0vZyxlPT5nQWFbZV0pLCJlc2NhcGVUYWdOYW1lIiksRDE9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEaXJlY3RpdmVzIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmRvY1N0YXJ0PW51bGwsdGhpcy5kb2NFbmQ9ITEsdGhpcy55YW1sPU9iamVjdC5hc3NpZ24oe30scy5kZWZhdWx0WWFtbCxlKSx0aGlzLnRhZ3M9T2JqZWN0LmFzc2lnbih7fSxzLmRlZmF1bHRUYWdzLHQpfWNsb25lKCl7bGV0IGU9bmV3IHModGhpcy55YW1sLHRoaXMudGFncyk7cmV0dXJuIGUuZG9jU3RhcnQ9dGhpcy5kb2NTdGFydCxlfWF0RG9jdW1lbnQoKXtsZXQgZT1uZXcgcyh0aGlzLnlhbWwsdGhpcy50YWdzKTtzd2l0Y2godGhpcy55YW1sLnZlcnNpb24pe2Nhc2UiMS4xIjp0aGlzLmF0TmV4dERvY3VtZW50PSEwO2JyZWFrO2Nhc2UiMS4yIjp0aGlzLmF0TmV4dERvY3VtZW50PSExLHRoaXMueWFtbD17ZXhwbGljaXQ6cy5kZWZhdWx0WWFtbC5leHBsaWNpdCx2ZXJzaW9uOiIxLjIifSx0aGlzLnRhZ3M9T2JqZWN0LmFzc2lnbih7fSxzLmRlZmF1bHRUYWdzKTticmVha31yZXR1cm4gZX1hZGQoZSx0KXt0aGlzLmF0TmV4dERvY3VtZW50JiYodGhpcy55YW1sPXtleHBsaWNpdDpzLmRlZmF1bHRZYW1sLmV4cGxpY2l0LHZlcnNpb246IjEuMSJ9LHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LHMuZGVmYXVsdFRhZ3MpLHRoaXMuYXROZXh0RG9jdW1lbnQ9ITEpO2xldCBhPWUudHJpbSgpLnNwbGl0KC9bIFx0XSsvKSxyPWEuc2hpZnQoKTtzd2l0Y2gocil7Y2FzZSIlVEFHIjp7aWYoYS5sZW5ndGghPT0yJiYodCgwLCIlVEFHIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IHR3byBwYXJ0cyIpLGEubGVuZ3RoPDIpKXJldHVybiExO2xldFtuLG9dPWE7cmV0dXJuIHRoaXMudGFnc1tuXT1vLCEwfWNhc2UiJVlBTUwiOntpZih0aGlzLnlhbWwuZXhwbGljaXQ9ITAsYS5sZW5ndGghPT0xKXJldHVybiB0KDAsIiVZQU1MIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IG9uZSBwYXJ0IiksITE7bGV0W25dPWE7aWYobj09PSIxLjEifHxuPT09IjEuMiIpcmV0dXJuIHRoaXMueWFtbC52ZXJzaW9uPW4sITA7e2xldCBvPS9eXGQrXC5cZCskLy50ZXN0KG4pO3JldHVybiB0KDYsYFVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiAke259YCxvKSwhMX19ZGVmYXVsdDpyZXR1cm4gdCgwLGBVbmtub3duIGRpcmVjdGl2ZSAke3J9YCwhMCksITF9fXRhZ05hbWUoZSx0KXtpZihlPT09IiEiKXJldHVybiIhIjtpZihlWzBdIT09IiEiKXJldHVybiB0KGBOb3QgYSB2YWxpZCB0YWc6ICR7ZX1gKSxudWxsO2lmKGVbMV09PT0iPCIpe2xldCBvPWUuc2xpY2UoMiwtMSk7cmV0dXJuIG89PT0iISJ8fG89PT0iISEiPyh0KGBWZXJiYXRpbSB0YWdzIGFyZW4ndCByZXNvbHZlZCwgc28gJHtlfSBpcyBpbnZhbGlkLmApLG51bGwpOihlW2UubGVuZ3RoLTFdIT09Ij4iJiZ0KCJWZXJiYXRpbSB0YWdzIG11c3QgZW5kIHdpdGggYSA+Iiksbyl9bGV0WyxhLHJdPWUubWF0Y2goL14oLiohKShbXiFdKikkL3MpO3J8fHQoYFRoZSAke2V9IHRhZyBoYXMgbm8gc3VmZml4YCk7bGV0IG49dGhpcy50YWdzW2FdO2lmKG4pdHJ5e3JldHVybiBuK2RlY29kZVVSSUNvbXBvbmVudChyKX1jYXRjaChvKXtyZXR1cm4gdChTdHJpbmcobykpLG51bGx9cmV0dXJuIGE9PT0iISI/ZToodChgQ291bGQgbm90IHJlc29sdmUgdGFnOiAke2V9YCksbnVsbCl9dGFnU3RyaW5nKGUpe2ZvcihsZXRbdCxhXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMudGFncykpaWYoZS5zdGFydHNXaXRoKGEpKXJldHVybiB0K2JBYShlLnN1YnN0cmluZyhhLmxlbmd0aCkpO3JldHVybiBlWzBdPT09IiEiP2U6YCE8JHtlfT5gfXRvU3RyaW5nKGUpe2xldCB0PXRoaXMueWFtbC5leHBsaWNpdD9bYCVZQU1MICR7dGhpcy55YW1sLnZlcnNpb258fCIxLjIifWBdOltdLGE9T2JqZWN0LmVudHJpZXModGhpcy50YWdzKSxyO2lmKGUmJmEubGVuZ3RoPjAmJklhKGUuY29udGVudHMpKXtsZXQgbj17fTtIbChlLmNvbnRlbnRzLChvLGwpPT57SWEobCkmJmwudGFnJiYobltsLnRhZ109ITApfSkscj1PYmplY3Qua2V5cyhuKX1lbHNlIHI9W107Zm9yKGxldFtuLG9db2YgYSluPT09IiEhIiYmbz09PSJ0YWc6eWFtbC5vcmcsMjAwMjoifHwoIWV8fHIuc29tZShsPT5sLnN0YXJ0c1dpdGgobykpKSYmdC5wdXNoKGAlVEFHICR7bn0gJHtvfWApO3JldHVybiB0LmpvaW4oYApgKX19O0QxLmRlZmF1bHRZYW1sPXtleHBsaWNpdDohMSx2ZXJzaW9uOiIxLjIifSxEMS5kZWZhdWx0VGFncz17IiEhIjoidGFnOnlhbWwub3JnLDIwMDI6In19KTtmdW5jdGlvbiB3dyhzKXtpZigvW1x4MDAtXHgxOVxzLFtcXXt9XS8udGVzdChzKSl7bGV0IHQ9YEFuY2hvciBtdXN0IG5vdCBjb250YWluIHdoaXRlc3BhY2Ugb3IgY29udHJvbCBjaGFyYWN0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHMpfWA7dGhyb3cgbmV3IEVycm9yKHQpfXJldHVybiEwfWZ1bmN0aW9uIGZzZShzKXtsZXQgZT1uZXcgU2V0O3JldHVybiBIbChzLHtWYWx1ZSh0LGEpe2EuYW5jaG9yJiZlLmFkZChhLmFuY2hvcil9fSksZX1mdW5jdGlvbiBtc2UocyxlKXtmb3IobGV0IHQ9MTs7Kyt0KXtsZXQgYT1gJHtzfSR7dH1gO2lmKCFlLmhhcyhhKSlyZXR1cm4gYX19ZnVuY3Rpb24gQTRlKHMsZSl7bGV0IHQ9W10sYT1uZXcgTWFwLHI9bnVsbDtyZXR1cm57b25BbmNob3I6aShuPT57dC5wdXNoKG4pLHI/PyhyPWZzZShzKSk7bGV0IG89bXNlKGUscik7cmV0dXJuIHIuYWRkKG8pLG99LCJvbkFuY2hvciIpLHNldEFuY2hvcnM6aSgoKT0+e2ZvcihsZXQgbiBvZiB0KXtsZXQgbz1hLmdldChuKTtpZih0eXBlb2Ygbz09Im9iamVjdCImJm8uYW5jaG9yJiYobGEoby5ub2RlKXx8ZHMoby5ub2RlKSkpby5ub2RlLmFuY2hvcj1vLmFuY2hvcjtlbHNle2xldCBsPW5ldyBFcnJvcigiRmFpbGVkIHRvIHJlc29sdmUgcmVwZWF0ZWQgb2JqZWN0ICh0aGlzIHNob3VsZCBub3QgaGFwcGVuKSIpO3Rocm93IGwuc291cmNlPW4sbH19fSwic2V0QW5jaG9ycyIpLHNvdXJjZU9iamVjdHM6YX19dmFyIGdzZT1nKCgpPT57dXMoKTt5dygpO2kod3csImFuY2hvcklzVmFsaWQiKTtpKGZzZSwiYW5jaG9yTmFtZXMiKTtpKG1zZSwiZmluZE5ld0FuY2hvciIpO2koQTRlLCJjcmVhdGVOb2RlQW5jaG9ycyIpfSk7ZnVuY3Rpb24gazAocyxlLHQsYSl7aWYoYSYmdHlwZW9mIGE9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCByPTAsbj1hLmxlbmd0aDtyPG47KytyKXtsZXQgbz1hW3JdLGw9azAocyxhLFN0cmluZyhyKSxvKTtsPT09dm9pZCAwP2RlbGV0ZSBhW3JdOmwhPT1vJiYoYVtyXT1sKX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBNYXApZm9yKGxldCByIG9mIEFycmF5LmZyb20oYS5rZXlzKCkpKXtsZXQgbj1hLmdldChyKSxvPWswKHMsYSxyLG4pO289PT12b2lkIDA/YS5kZWxldGUocik6byE9PW4mJmEuc2V0KHIsbyl9ZWxzZSBpZihhIGluc3RhbmNlb2YgU2V0KWZvcihsZXQgciBvZiBBcnJheS5mcm9tKGEpKXtsZXQgbj1rMChzLGEscixyKTtuPT09dm9pZCAwP2EuZGVsZXRlKHIpOm4hPT1yJiYoYS5kZWxldGUociksYS5hZGQobikpfWVsc2UgZm9yKGxldFtyLG5db2YgT2JqZWN0LmVudHJpZXMoYSkpe2xldCBvPWswKHMsYSxyLG4pO289PT12b2lkIDA/ZGVsZXRlIGFbcl06byE9PW4mJihhW3JdPW8pfXJldHVybiBzLmNhbGwoZSx0LGEpfXZhciBONGU9ZygoKT0+e2koazAsImFwcGx5UmV2aXZlciIpfSk7ZnVuY3Rpb24gU3IocyxlLHQpe2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIHMubWFwKChhLHIpPT5TcihhLFN0cmluZyhyKSx0KSk7aWYocyYmdHlwZW9mIHMudG9KU09OPT0iZnVuY3Rpb24iKXtpZighdHx8IXh3KHMpKXJldHVybiBzLnRvSlNPTihlLHQpO2xldCBhPXthbGlhc0NvdW50OjAsY291bnQ6MSxyZXM6dm9pZCAwfTt0LmFuY2hvcnMuc2V0KHMsYSksdC5vbkNyZWF0ZT1uPT57YS5yZXM9bixkZWxldGUgdC5vbkNyZWF0ZX07bGV0IHI9cy50b0pTT04oZSx0KTtyZXR1cm4gdC5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShyKSxyfXJldHVybiB0eXBlb2Ygcz09ImJpZ2ludCImJiF0Py5rZWVwP051bWJlcihzKTpzfXZhciBBcD1nKCgpPT57dXMoKTtpKFNyLCJ0b0pTIil9KTt2YXIgUzAsYnNlPWcoKCk9PntONGUoKTt1cygpO0FwKCk7UzA9Y2xhc3N7c3RhdGlje2kodGhpcywiTm9kZUJhc2UiKX1jb25zdHJ1Y3RvcihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxKbyx7dmFsdWU6ZX0pfWNsb25lKCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiB0aGlzLnJhbmdlJiYoZS5yYW5nZT10aGlzLnJhbmdlLnNsaWNlKCkpLGV9dG9KUyhlLHttYXBBc01hcDp0LG1heEFsaWFzQ291bnQ6YSxvbkFuY2hvcjpyLHJldml2ZXI6bn09e30pe2lmKCF4bChlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBIGRvY3VtZW50IGFyZ3VtZW50IGlzIHJlcXVpcmVkIik7bGV0IG89e2FuY2hvcnM6bmV3IE1hcCxkb2M6ZSxrZWVwOiEwLG1hcEFzTWFwOnQ9PT0hMCxtYXBLZXlXYXJuZWQ6ITEsbWF4QWxpYXNDb3VudDp0eXBlb2YgYT09Im51bWJlciI/YToxMDB9LGw9U3IodGhpcywiIixvKTtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIilmb3IobGV0e2NvdW50OnAscmVzOmR9b2Ygby5hbmNob3JzLnZhbHVlcygpKXIoZCxwKTtyZXR1cm4gdHlwZW9mIG49PSJmdW5jdGlvbiI/azAobix7IiI6bH0sIiIsbCk6bH19fSk7ZnVuY3Rpb24gdnNlKHMsZSx0KXtpZih2bChlKSl7bGV0IGE9ZS5yZXNvbHZlKHMpLHI9dCYmYSYmdC5nZXQoYSk7cmV0dXJuIHI/ci5jb3VudCpyLmFsaWFzQ291bnQ6MH1lbHNlIGlmKGRzKGUpKXtsZXQgYT0wO2ZvcihsZXQgciBvZiBlLml0ZW1zKXtsZXQgbj12c2UocyxyLHQpO24+YSYmKGE9bil9cmV0dXJuIGF9ZWxzZSBpZihDYShlKSl7bGV0IGE9dnNlKHMsZS5rZXksdCkscj12c2UocyxlLnZhbHVlLHQpO3JldHVybiBNYXRoLm1heChhLHIpfXJldHVybiAxfXZhciBDYyxrdz1nKCgpPT57Z3NlKCk7eXcoKTt1cygpO2JzZSgpO0FwKCk7Q2M9Y2xhc3MgZXh0ZW5kcyBTMHtzdGF0aWN7aSh0aGlzLCJBbGlhcyIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGJ3KSx0aGlzLnNvdXJjZT1lLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJ0YWciLHtzZXQoKXt0aHJvdyBuZXcgRXJyb3IoIkFsaWFzIG5vZGVzIGNhbm5vdCBoYXZlIHRhZ3MiKX19KX1yZXNvbHZlKGUsdCl7aWYodD8ubWF4QWxpYXNDb3VudD09PTApdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJBbGlhcyByZXNvbHV0aW9uIGlzIGRpc2FibGVkIik7bGV0IGE7dD8uYWxpYXNSZXNvbHZlQ2FjaGU/YT10LmFsaWFzUmVzb2x2ZUNhY2hlOihhPVtdLEhsKGUse05vZGU6aSgobixvKT0+eyh2bChvKXx8eHcobykpJiZhLnB1c2gobyl9LCJOb2RlIil9KSx0JiYodC5hbGlhc1Jlc29sdmVDYWNoZT1hKSk7bGV0IHI7Zm9yKGxldCBuIG9mIGEpe2lmKG49PT10aGlzKWJyZWFrO24uYW5jaG9yPT09dGhpcy5zb3VyY2UmJihyPW4pfXJldHVybiByfXRvSlNPTihlLHQpe2lmKCF0KXJldHVybntzb3VyY2U6dGhpcy5zb3VyY2V9O2xldHthbmNob3JzOmEsZG9jOnIsbWF4QWxpYXNDb3VudDpufT10LG89dGhpcy5yZXNvbHZlKHIsdCk7aWYoIW8pe2xldCBwPWBVbnJlc29sdmVkIGFsaWFzICh0aGUgYW5jaG9yIG11c3QgYmUgc2V0IGJlZm9yZSB0aGUgYWxpYXMpOiAke3RoaXMuc291cmNlfWA7dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKHApfWxldCBsPWEuZ2V0KG8pO2lmKGx8fChTcihvLG51bGwsdCksbD1hLmdldChvKSksbD8ucmVzPT09dm9pZCAwKXtsZXQgcD0iVGhpcyBzaG91bGQgbm90IGhhcHBlbjogQWxpYXMgYW5jaG9yIHdhcyBub3QgcmVzb2x2ZWQ/Ijt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IocCl9aWYobj49MCYmKGwuY291bnQrPTEsbC5hbGlhc0NvdW50PT09MCYmKGwuYWxpYXNDb3VudD12c2UocixvLGEpKSxsLmNvdW50KmwuYWxpYXNDb3VudD5uKSl7bGV0IHA9IkV4Y2Vzc2l2ZSBhbGlhcyBjb3VudCBpbmRpY2F0ZXMgYSByZXNvdXJjZSBleGhhdXN0aW9uIGF0dGFjayI7dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKHApfXJldHVybiBsLnJlc310b1N0cmluZyhlLHQsYSl7bGV0IHI9YCoke3RoaXMuc291cmNlfWA7aWYoZSl7aWYod3codGhpcy5zb3VyY2UpLGUub3B0aW9ucy52ZXJpZnlBbGlhc09yZGVyJiYhZS5hbmNob3JzLmhhcyh0aGlzLnNvdXJjZSkpe2xldCBuPWBVbnJlc29sdmVkIGFsaWFzICh0aGUgYW5jaG9yIG11c3QgYmUgc2V0IGJlZm9yZSB0aGUgYWxpYXMpOiAke3RoaXMuc291cmNlfWA7dGhyb3cgbmV3IEVycm9yKG4pfWlmKGUuaW1wbGljaXRLZXkpcmV0dXJuYCR7cn0gYH1yZXR1cm4gcn19O2kodnNlLCJnZXRBbGlhc0NvdW50Iil9KTt2YXIgU3csTHQsX3I9ZygoKT0+e3VzKCk7YnNlKCk7QXAoKTtTdz1pKHM9PiFzfHx0eXBlb2YgcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIHMhPSJvYmplY3QiLCJpc1NjYWxhclZhbHVlIiksTHQ9Y2xhc3MgZXh0ZW5kcyBTMHtzdGF0aWN7aSh0aGlzLCJTY2FsYXIiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihibCksdGhpcy52YWx1ZT1lfXRvSlNPTihlLHQpe3JldHVybiB0Py5rZWVwP3RoaXMudmFsdWU6U3IodGhpcy52YWx1ZSxlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX19O0x0LkJMT0NLX0ZPTERFRD0iQkxPQ0tfRk9MREVEIixMdC5CTE9DS19MSVRFUkFMPSJCTE9DS19MSVRFUkFMIixMdC5QTEFJTj0iUExBSU4iLEx0LlFVT1RFX0RPVUJMRT0iUVVPVEVfRE9VQkxFIixMdC5RVU9URV9TSU5HTEU9IlFVT1RFX1NJTkdMRSJ9KTtmdW5jdGlvbiB4QWEocyxlLHQpe2lmKGUpe2xldCBhPXQuZmlsdGVyKG49Pm4udGFnPT09ZSkscj1hLmZpbmQobj0+IW4uZm9ybWF0KT8/YVswXTtpZighcil0aHJvdyBuZXcgRXJyb3IoYFRhZyAke2V9IG5vdCBmb3VuZGApO3JldHVybiByfXJldHVybiB0LmZpbmQoYT0+YS5pZGVudGlmeT8uKHMpJiYhYS5mb3JtYXQpfWZ1bmN0aW9uIGhkKHMsZSx0KXtpZih4bChzKSYmKHM9cy5jb250ZW50cyksSWEocykpcmV0dXJuIHM7aWYoQ2Eocykpe2xldCBjPXQuc2NoZW1hW3pjXS5jcmVhdGVOb2RlPy4odC5zY2hlbWEsbnVsbCx0KTtyZXR1cm4gYy5pdGVtcy5wdXNoKHMpLGN9KHMgaW5zdGFuY2VvZiBTdHJpbmd8fHMgaW5zdGFuY2VvZiBOdW1iZXJ8fHMgaW5zdGFuY2VvZiBCb29sZWFufHx0eXBlb2YgQmlnSW50PCJ1IiYmcyBpbnN0YW5jZW9mIEJpZ0ludCkmJihzPXMudmFsdWVPZigpKTtsZXR7YWxpYXNEdXBsaWNhdGVPYmplY3RzOmEsb25BbmNob3I6cixvblRhZ09iajpuLHNjaGVtYTpvLHNvdXJjZU9iamVjdHM6bH09dCxwO2lmKGEmJnMmJnR5cGVvZiBzPT0ib2JqZWN0Iil7aWYocD1sLmdldChzKSxwKXJldHVybiBwLmFuY2hvcj8/KHAuYW5jaG9yPXIocykpLG5ldyBDYyhwLmFuY2hvcik7cD17YW5jaG9yOm51bGwsbm9kZTpudWxsfSxsLnNldChzLHApfWU/LnN0YXJ0c1dpdGgoIiEhIikmJihlPXZBYStlLnNsaWNlKDIpKTtsZXQgZD14QWEocyxlLG8udGFncyk7aWYoIWQpe2lmKHMmJnR5cGVvZiBzLnRvSlNPTj09ImZ1bmN0aW9uIiYmKHM9cy50b0pTT04oKSksIXN8fHR5cGVvZiBzIT0ib2JqZWN0Iil7bGV0IGM9bmV3IEx0KHMpO3JldHVybiBwJiYocC5ub2RlPWMpLGN9ZD1zIGluc3RhbmNlb2YgTWFwP29bemNdOlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3Qocyk/b1t1ZF06b1t6Y119biYmKG4oZCksZGVsZXRlIHQub25UYWdPYmopO2xldCB1PWQ/LmNyZWF0ZU5vZGU/ZC5jcmVhdGVOb2RlKHQuc2NoZW1hLHMsdCk6dHlwZW9mIGQ/Lm5vZGVDbGFzcz8uZnJvbT09ImZ1bmN0aW9uIj9kLm5vZGVDbGFzcy5mcm9tKHQuc2NoZW1hLHMsdCk6bmV3IEx0KHMpO3JldHVybiBlP3UudGFnPWU6ZC5kZWZhdWx0fHwodS50YWc9ZC50YWcpLHAmJihwLm5vZGU9dSksdX12YXIgdkFhLF93PWcoKCk9PntrdygpO3VzKCk7X3IoKTt2QWE9InRhZzp5YW1sLm9yZywyMDAyOiI7aSh4QWEsImZpbmRUYWdPYmplY3QiKTtpKGhkLCJjcmVhdGVOb2RlIil9KTtmdW5jdGlvbiB6OShzLGUsdCl7bGV0IGE9dDtmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0wOy0tcil7bGV0IG49ZVtyXTtpZih0eXBlb2Ygbj09Im51bWJlciImJk51bWJlci5pc0ludGVnZXIobikmJm4+PTApe2xldCBvPVtdO29bbl09YSxhPW99ZWxzZSBhPW5ldyBNYXAoW1tuLGFdXSl9cmV0dXJuIGhkKGEsdm9pZCAwLHthbGlhc0R1cGxpY2F0ZU9iamVjdHM6ITEsa2VlcFVuZGVmaW5lZDohMSxvbkFuY2hvcjppKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBwbGVhc2UgcmVwb3J0IGEgYnVnLiIpfSwib25BbmNob3IiKSxzY2hlbWE6cyxzb3VyY2VPYmplY3RzOm5ldyBNYXB9KX12YXIgZzMsbTMseHNlPWcoKCk9PntfdygpO3VzKCk7YnNlKCk7aSh6OSwiY29sbGVjdGlvbkZyb21QYXRoIik7ZzM9aShzPT5zPT1udWxsfHx0eXBlb2Ygcz09Im9iamVjdCImJiEhc1tTeW1ib2wuaXRlcmF0b3JdKCkubmV4dCgpLmRvbmUsImlzRW1wdHlQYXRoIiksbTM9Y2xhc3MgZXh0ZW5kcyBTMHtzdGF0aWN7aSh0aGlzLCJDb2xsZWN0aW9uIil9Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic2NoZW1hIix7dmFsdWU6dCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMH0pfWNsb25lKGUpe2xldCB0PU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHRoaXMpKTtyZXR1cm4gZSYmKHQuc2NoZW1hPWUpLHQuaXRlbXM9dC5pdGVtcy5tYXAoYT0+SWEoYSl8fENhKGEpP2EuY2xvbmUoZSk6YSksdGhpcy5yYW5nZSYmKHQucmFuZ2U9dGhpcy5yYW5nZS5zbGljZSgpKSx0fWFkZEluKGUsdCl7aWYoZzMoZSkpdGhpcy5hZGQodCk7ZWxzZXtsZXRbYSwuLi5yXT1lLG49dGhpcy5nZXQoYSwhMCk7aWYoZHMobikpbi5hZGRJbihyLHQpO2Vsc2UgaWYobj09PXZvaWQgMCYmdGhpcy5zY2hlbWEpdGhpcy5zZXQoYSx6OSh0aGlzLnNjaGVtYSxyLHQpKTtlbHNlIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7YX0uIFJlbWFpbmluZyBwYXRoOiAke3J9YCl9fWRlbGV0ZUluKGUpe2xldFt0LC4uLmFdPWU7aWYoYS5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmRlbGV0ZSh0KTtsZXQgcj10aGlzLmdldCh0LCEwKTtpZihkcyhyKSlyZXR1cm4gci5kZWxldGVJbihhKTt0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke3R9LiBSZW1haW5pbmcgcGF0aDogJHthfWApfWdldEluKGUsdCl7bGV0W2EsLi4ucl09ZSxuPXRoaXMuZ2V0KGEsITApO3JldHVybiByLmxlbmd0aD09PTA/IXQmJmxhKG4pP24udmFsdWU6bjpkcyhuKT9uLmdldEluKHIsdCk6dm9pZCAwfWhhc0FsbE51bGxWYWx1ZXMoZSl7cmV0dXJuIHRoaXMuaXRlbXMuZXZlcnkodD0+e2lmKCFDYSh0KSlyZXR1cm4hMTtsZXQgYT10LnZhbHVlO3JldHVybiBhPT1udWxsfHxlJiZsYShhKSYmYS52YWx1ZT09bnVsbCYmIWEuY29tbWVudEJlZm9yZSYmIWEuY29tbWVudCYmIWEudGFnfSl9aGFzSW4oZSl7bGV0W3QsLi4uYV09ZTtpZihhLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuaGFzKHQpO2xldCByPXRoaXMuZ2V0KHQsITApO3JldHVybiBkcyhyKT9yLmhhc0luKGEpOiExfXNldEluKGUsdCl7bGV0W2EsLi4ucl09ZTtpZihyLmxlbmd0aD09PTApdGhpcy5zZXQoYSx0KTtlbHNle2xldCBuPXRoaXMuZ2V0KGEsITApO2lmKGRzKG4pKW4uc2V0SW4ocix0KTtlbHNlIGlmKG49PT12b2lkIDAmJnRoaXMuc2NoZW1hKXRoaXMuc2V0KGEsejkodGhpcy5zY2hlbWEscix0KSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke2F9LiBSZW1haW5pbmcgcGF0aDogJHtyfWApfX19fSk7ZnVuY3Rpb24gcWwocyxlKXtyZXR1cm4vXlxuKyQvLnRlc3Qocyk/cy5zdWJzdHJpbmcoMSk6ZT9zLnJlcGxhY2UoL14oPyEgKiQpL2dtLGUpOnN9dmFyIFI0ZSxMMSxNdz1nKCgpPT57UjRlPWkocz0+cy5yZXBsYWNlKC9eKD8hJCkoPzogJCk/L2dtLCIjIiksInN0cmluZ2lmeUNvbW1lbnQiKTtpKHFsLCJpbmRlbnRDb21tZW50Iik7TDE9aSgocyxlLHQpPT5zLmVuZHNXaXRoKGAKYCk/cWwodCxlKTp0LmluY2x1ZGVzKGAKYCk/YApgK3FsKHQsZSk6KHMuZW5kc1dpdGgoIiAiKT8iIjoiICIpK3QsImxpbmVDb21tZW50Iil9KTtmdW5jdGlvbiBUOShzLGUsdD0iZmxvdyIse2luZGVudEF0U3RhcnQ6YSxsaW5lV2lkdGg6cj04MCxtaW5Db250ZW50V2lkdGg6bj0yMCxvbkZvbGQ6byxvbk92ZXJmbG93Omx9PXt9KXtpZighcnx8cjwwKXJldHVybiBzO3I8biYmKG49MCk7bGV0IHA9TWF0aC5tYXgoMStuLDErci1lLmxlbmd0aCk7aWYocy5sZW5ndGg8PXApcmV0dXJuIHM7bGV0IGQ9W10sdT17fSxjPXItZS5sZW5ndGg7dHlwZW9mIGE9PSJudW1iZXIiJiYoYT5yLU1hdGgubWF4KDIsbik/ZC5wdXNoKDApOmM9ci1hKTtsZXQgYix2LHg9ITEsbT0tMSxmPS0xLHk9LTE7dD09PXp3JiYobT1wNXQocyxtLGUubGVuZ3RoKSxtIT09LTEmJihjPW0rcCkpO2ZvcihsZXQgejt6PXNbbSs9MV07KXtpZih0PT09QzkmJno9PT0iXFwiKXtzd2l0Y2goZj1tLHNbbSsxXSl7Y2FzZSJ4IjptKz0zO2JyZWFrO2Nhc2UidSI6bSs9NTticmVhaztjYXNlIlUiOm0rPTk7YnJlYWs7ZGVmYXVsdDptKz0xfXk9bX1pZih6PT09YApgKXQ9PT16dyYmKG09cDV0KHMsbSxlLmxlbmd0aCkpLGM9bStlLmxlbmd0aCtwLGI9dm9pZCAwO2Vsc2V7aWYoej09PSIgIiYmdiYmdiE9PSIgIiYmdiE9PWAKYCYmdiE9PSIJIil7bGV0IE49c1ttKzFdO04mJk4hPT0iICImJk4hPT1gCmAmJk4hPT0iCSImJihiPW0pfWlmKG0+PWMpaWYoYilkLnB1c2goYiksYz1iK3AsYj12b2lkIDA7ZWxzZSBpZih0PT09Qzkpe2Zvcig7dj09PSIgInx8dj09PSIJIjspdj16LHo9c1ttKz0xXSx4PSEwO2xldCBOPW0+eSsxP20tMjpmLTE7aWYodVtOXSlyZXR1cm4gcztkLnB1c2goTiksdVtOXT0hMCxjPU4rcCxiPXZvaWQgMH1lbHNlIHg9ITB9dj16fWlmKHgmJmwmJmwoKSxkLmxlbmd0aD09PTApcmV0dXJuIHM7byYmbygpO2xldCBNPXMuc2xpY2UoMCxkWzBdKTtmb3IobGV0IHo9MDt6PGQubGVuZ3RoOysreil7bGV0IE49ZFt6XSxDPWRbeisxXXx8cy5sZW5ndGg7Tj09PTA/TT1gCiR7ZX0ke3Muc2xpY2UoMCxDKX1gOih0PT09QzkmJnVbTl0mJihNKz1gJHtzW05dfVxcYCksTSs9YAoke2V9JHtzLnNsaWNlKE4rMSxDKX1gKX1yZXR1cm4gTX1mdW5jdGlvbiBwNXQocyxlLHQpe2xldCBhPWUscj1lKzEsbj1zW3JdO2Zvcig7bj09PSIgInx8bj09PSIJIjspaWYoZTxyK3Qpbj1zWysrZV07ZWxzZXtkbyBuPXNbKytlXTt3aGlsZShuJiZuIT09YApgKTthPWUscj1lKzEsbj1zW3JdfXJldHVybiBhfXZhciB5c2UsencsQzksaDV0PWcoKCk9Pnt5c2U9ImZsb3ciLHp3PSJibG9jayIsQzk9InF1b3RlZCI7aShUOSwiZm9sZEZsb3dMaW5lcyIpO2kocDV0LCJjb25zdW1lTW9yZUluZGVudGVkTGluZXMiKX0pO2Z1bmN0aW9uIHlBYShzLGUsdCl7aWYoIWV8fGU8MClyZXR1cm4hMTtsZXQgYT1lLXQscj1zLmxlbmd0aDtpZihyPD1hKXJldHVybiExO2ZvcihsZXQgbj0wLG89MDtuPHI7KytuKWlmKHNbbl09PT1gCmApe2lmKG4tbz5hKXJldHVybiEwO2lmKG89bisxLHItbzw9YSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBDdyhzLGUpe2xldCB0PUpTT04uc3RyaW5naWZ5KHMpO2lmKGUub3B0aW9ucy5kb3VibGVRdW90ZWRBc0pTT04pcmV0dXJuIHQ7bGV0e2ltcGxpY2l0S2V5OmF9PWUscj1lLm9wdGlvbnMuZG91YmxlUXVvdGVkTWluTXVsdGlMaW5lTGVuZ3RoLG49ZS5pbmRlbnR8fChrc2Uocyk/IiAgIjoiIiksbz0iIixsPTA7Zm9yKGxldCBwPTAsZD10W3BdO2Q7ZD10WysrcF0paWYoZD09PSIgIiYmdFtwKzFdPT09IlxcIiYmdFtwKzJdPT09Im4iJiYobys9dC5zbGljZShsLHApKyJcXCAiLHArPTEsbD1wLGQ9IlxcIiksZD09PSJcXCIpc3dpdGNoKHRbcCsxXSl7Y2FzZSJ1Ijp7bys9dC5zbGljZShsLHApO2xldCB1PXQuc3Vic3RyKHArMiw0KTtzd2l0Y2godSl7Y2FzZSIwMDAwIjpvKz0iXFwwIjticmVhaztjYXNlIjAwMDciOm8rPSJcXGEiO2JyZWFrO2Nhc2UiMDAwYiI6bys9IlxcdiI7YnJlYWs7Y2FzZSIwMDFiIjpvKz0iXFxlIjticmVhaztjYXNlIjAwODUiOm8rPSJcXE4iO2JyZWFrO2Nhc2UiMDBhMCI6bys9IlxcXyI7YnJlYWs7Y2FzZSIyMDI4IjpvKz0iXFxMIjticmVhaztjYXNlIjIwMjkiOm8rPSJcXFAiO2JyZWFrO2RlZmF1bHQ6dS5zdWJzdHIoMCwyKT09PSIwMCI/bys9IlxceCIrdS5zdWJzdHIoMik6bys9dC5zdWJzdHIocCw2KX1wKz01LGw9cCsxfWJyZWFrO2Nhc2UibiI6aWYoYXx8dFtwKzJdPT09JyInfHx0Lmxlbmd0aDxyKXArPTE7ZWxzZXtmb3Iobys9dC5zbGljZShsLHApK2AKCmA7dFtwKzJdPT09IlxcIiYmdFtwKzNdPT09Im4iJiZ0W3ArNF0hPT0nIic7KW8rPWAKYCxwKz0yO28rPW4sdFtwKzJdPT09IiAiJiYobys9IlxcIikscCs9MSxsPXArMX1icmVhaztkZWZhdWx0OnArPTF9cmV0dXJuIG89bD9vK3Quc2xpY2UobCk6dCxhP286VDkobyxuLEM5LHdzZShlLCExKSl9ZnVuY3Rpb24gTzRlKHMsZSl7aWYoZS5vcHRpb25zLnNpbmdsZVF1b3RlPT09ITF8fGUuaW1wbGljaXRLZXkmJnMuaW5jbHVkZXMoYApgKXx8L1sgXHRdXG58XG5bIFx0XS8udGVzdChzKSlyZXR1cm4gQ3cocyxlKTtsZXQgdD1lLmluZGVudHx8KGtzZShzKT8iICAiOiIiKSxhPSInIitzLnJlcGxhY2UoLycvZywiJyciKS5yZXBsYWNlKC9cbisvZyxgJCYKJHt0fWApKyInIjtyZXR1cm4gZS5pbXBsaWNpdEtleT9hOlQ5KGEsdCx5c2Usd3NlKGUsITEpKX1mdW5jdGlvbiAkOShzLGUpe2xldHtzaW5nbGVRdW90ZTp0fT1lLm9wdGlvbnMsYTtpZih0PT09ITEpYT1DdztlbHNle2xldCByPXMuaW5jbHVkZXMoJyInKSxuPXMuaW5jbHVkZXMoIiciKTtyJiYhbj9hPU80ZTpuJiYhcj9hPUN3OmE9dD9PNGU6Q3d9cmV0dXJuIGEocyxlKX1mdW5jdGlvbiBTc2Uoe2NvbW1lbnQ6cyx0eXBlOmUsdmFsdWU6dH0sYSxyLG4pe2xldHtibG9ja1F1b3RlOm8sY29tbWVudFN0cmluZzpsLGxpbmVXaWR0aDpwfT1hLm9wdGlvbnM7aWYoIW98fC9cbltcdCBdKyQvLnRlc3QodCkpcmV0dXJuICQ5KHQsYSk7bGV0IGQ9YS5pbmRlbnR8fChhLmZvcmNlQmxvY2tJbmRlbnR8fGtzZSh0KT8iICAiOiIiKSx1PW89PT0ibGl0ZXJhbCI/ITA6bz09PSJmb2xkZWQifHxlPT09THQuQkxPQ0tfRk9MREVEPyExOmU9PT1MdC5CTE9DS19MSVRFUkFMPyEwOiF5QWEodCxwLGQubGVuZ3RoKTtpZighdClyZXR1cm4gdT9gfApgOmA+CmA7bGV0IGMsYjtmb3IoYj10Lmxlbmd0aDtiPjA7LS1iKXtsZXQgQz10W2ItMV07aWYoQyE9PWAKYCYmQyE9PSIJIiYmQyE9PSIgIilicmVha31sZXQgdj10LnN1YnN0cmluZyhiKSx4PXYuaW5kZXhPZihgCmApO3g9PT0tMT9jPSItIjp0PT09dnx8eCE9PXYubGVuZ3RoLTE/KGM9IisiLG4mJm4oKSk6Yz0iIix2JiYodD10LnNsaWNlKDAsLXYubGVuZ3RoKSx2W3YubGVuZ3RoLTFdPT09YApgJiYodj12LnNsaWNlKDAsLTEpKSx2PXYucmVwbGFjZShGNGUsYCQmJHtkfWApKTtsZXQgbT0hMSxmLHk9LTE7Zm9yKGY9MDtmPHQubGVuZ3RoOysrZil7bGV0IEM9dFtmXTtpZihDPT09IiAiKW09ITA7ZWxzZSBpZihDPT09YApgKXk9ZjtlbHNlIGJyZWFrfWxldCBNPXQuc3Vic3RyaW5nKDAseTxmP3krMTpmKTtNJiYodD10LnN1YnN0cmluZyhNLmxlbmd0aCksTT1NLnJlcGxhY2UoL1xuKy9nLGAkJiR7ZH1gKSk7bGV0IE49KG0/ZD8iMiI6IjEiOiIiKStjO2lmKHMmJihOKz0iICIrbChzLnJlcGxhY2UoLyA/W1xyXG5dKy9nLCIgIikpLHImJnIoKSksIXUpe2xldCBDPXQucmVwbGFjZSgvXG4rL2csYAokJmApLnJlcGxhY2UoLyg/Ol58XG4pKFtcdCBdLiopKD86KFtcblx0IF0qKVxuKD8hW1xuXHQgXSkpPy9nLCIkMSQyIikucmVwbGFjZSgvXG4rL2csYCQmJHtkfWApLF89ITEsTz13c2UoYSwhMCk7byE9PSJmb2xkZWQiJiZlIT09THQuQkxPQ0tfRk9MREVEJiYoTy5vbk92ZXJmbG93PSgpPT57Xz0hMH0pO2xldCAkPVQ5KGAke019JHtDfSR7dn1gLGQsencsTyk7aWYoIV8pcmV0dXJuYD4ke059CiR7ZH0keyR9YH1yZXR1cm4gdD10LnJlcGxhY2UoL1xuKy9nLGAkJiR7ZH1gKSxgfCR7Tn0KJHtkfSR7TX0ke3R9JHt2fWB9ZnVuY3Rpb24gd0FhKHMsZSx0LGEpe2xldHt0eXBlOnIsdmFsdWU6bn09cyx7YWN0dWFsU3RyaW5nOm8saW1wbGljaXRLZXk6bCxpbmRlbnQ6cCxpbmRlbnRTdGVwOmQsaW5GbG93OnV9PWU7aWYobCYmbi5pbmNsdWRlcyhgCmApfHx1JiYvW1tcXXt9LF0vLnRlc3QobikpcmV0dXJuICQ5KG4sZSk7aWYoL15bXG5cdCAsW1xde30jJiohfD4nIiVAYF18Xls/LV0kfF5bPy1dWyBcdF18W1xuOl1bIFx0XXxbIFx0XVxufFtcblx0IF0jfFtcblx0IDpdJC8udGVzdChuKSlyZXR1cm4gbHx8dXx8IW4uaW5jbHVkZXMoYApgKT8kOShuLGUpOlNzZShzLGUsdCxhKTtpZighbCYmIXUmJnIhPT1MdC5QTEFJTiYmbi5pbmNsdWRlcyhgCmApKXJldHVybiBTc2UocyxlLHQsYSk7aWYoa3NlKG4pKXtpZihwPT09IiIpcmV0dXJuIGUuZm9yY2VCbG9ja0luZGVudD0hMCxTc2UocyxlLHQsYSk7aWYobCYmcD09PWQpcmV0dXJuICQ5KG4sZSl9bGV0IGM9bi5yZXBsYWNlKC9cbisvZyxgJCYKJHtwfWApO2lmKG8pe2xldCBiPWkobT0+bS5kZWZhdWx0JiZtLnRhZyE9PSJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiJiZtLnRlc3Q/LnRlc3QoYyksInRlc3QiKSx7Y29tcGF0OnYsdGFnczp4fT1lLmRvYy5zY2hlbWE7aWYoeC5zb21lKGIpfHx2Py5zb21lKGIpKXJldHVybiAkOShuLGUpfXJldHVybiBsP2M6VDkoYyxwLHlzZSx3c2UoZSwhMSkpfWZ1bmN0aW9uIGZkKHMsZSx0LGEpe2xldHtpbXBsaWNpdEtleTpyLGluRmxvdzpufT1lLG89dHlwZW9mIHMudmFsdWU9PSJzdHJpbmciP3M6T2JqZWN0LmFzc2lnbih7fSxzLHt2YWx1ZTpTdHJpbmcocy52YWx1ZSl9KSx7dHlwZTpsfT1zO2whPT1MdC5RVU9URV9ET1VCTEUmJi9bXHgwMC1ceDA4XHgwYi1ceDFmXHg3Zi1ceDlmXHV7RDgwMH0tXHV7REZGRn1dL3UudGVzdChvLnZhbHVlKSYmKGw9THQuUVVPVEVfRE9VQkxFKTtsZXQgcD1pKHU9Pntzd2l0Y2godSl7Y2FzZSBMdC5CTE9DS19GT0xERUQ6Y2FzZSBMdC5CTE9DS19MSVRFUkFMOnJldHVybiByfHxuPyQ5KG8udmFsdWUsZSk6U3NlKG8sZSx0LGEpO2Nhc2UgTHQuUVVPVEVfRE9VQkxFOnJldHVybiBDdyhvLnZhbHVlLGUpO2Nhc2UgTHQuUVVPVEVfU0lOR0xFOnJldHVybiBPNGUoby52YWx1ZSxlKTtjYXNlIEx0LlBMQUlOOnJldHVybiB3QWEobyxlLHQsYSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19LCJfc3RyaW5naWZ5IiksZD1wKGwpO2lmKGQ9PT1udWxsKXtsZXR7ZGVmYXVsdEtleVR5cGU6dSxkZWZhdWx0U3RyaW5nVHlwZTpjfT1lLm9wdGlvbnMsYj1yJiZ1fHxjO2lmKGQ9cChiKSxkPT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlZmF1bHQgc3RyaW5nIHR5cGUgJHtifWApfXJldHVybiBkfXZhciB3c2Usa3NlLEY0ZSxUdz1nKCgpPT57X3IoKTtoNXQoKTt3c2U9aSgocyxlKT0+KHtpbmRlbnRBdFN0YXJ0OmU/cy5pbmRlbnQubGVuZ3RoOnMuaW5kZW50QXRTdGFydCxsaW5lV2lkdGg6cy5vcHRpb25zLmxpbmVXaWR0aCxtaW5Db250ZW50V2lkdGg6cy5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aH0pLCJnZXRGb2xkT3B0aW9ucyIpLGtzZT1pKHM9Pi9eKCV8LS0tfFwuXC5cLikvbS50ZXN0KHMpLCJjb250YWluc0RvY3VtZW50TWFya2VyIik7aSh5QWEsImxpbmVMZW5ndGhPdmVyTGltaXQiKTtpKEN3LCJkb3VibGVRdW90ZWRTdHJpbmciKTtpKE80ZSwic2luZ2xlUXVvdGVkU3RyaW5nIik7aSgkOSwicXVvdGVkU3RyaW5nIik7dHJ5e0Y0ZT1uZXcgUmVnRXhwKGAoXnwoPzwhCikpCisoPyEKfCQpYCwiZyIpfWNhdGNoe0Y0ZT0vXG4rKD8hXG58JCkvZ31pKFNzZSwiYmxvY2tTdHJpbmciKTtpKHdBYSwicGxhaW5TdHJpbmciKTtpKGZkLCJzdHJpbmdpZnlTdHJpbmciKX0pO2Z1bmN0aW9uICR3KHMsZSl7bGV0IHQ9T2JqZWN0LmFzc2lnbih7YmxvY2tRdW90ZTohMCxjb21tZW50U3RyaW5nOlI0ZSxkZWZhdWx0S2V5VHlwZTpudWxsLGRlZmF1bHRTdHJpbmdUeXBlOiJQTEFJTiIsZGlyZWN0aXZlczpudWxsLGRvdWJsZVF1b3RlZEFzSlNPTjohMSxkb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGg6NDAsZmFsc2VTdHI6ImZhbHNlIixmbG93Q29sbGVjdGlvblBhZGRpbmc6ITAsaW5kZW50U2VxOiEwLGxpbmVXaWR0aDo4MCxtaW5Db250ZW50V2lkdGg6MjAsbnVsbFN0cjoibnVsbCIsc2ltcGxlS2V5czohMSxzaW5nbGVRdW90ZTpudWxsLHRyYWlsaW5nQ29tbWE6ITEsdHJ1ZVN0cjoidHJ1ZSIsdmVyaWZ5QWxpYXNPcmRlcjohMH0scy5zY2hlbWEudG9TdHJpbmdPcHRpb25zLGUpLGE7c3dpdGNoKHQuY29sbGVjdGlvblN0eWxlKXtjYXNlImJsb2NrIjphPSExO2JyZWFrO2Nhc2UiZmxvdyI6YT0hMDticmVhaztkZWZhdWx0OmE9bnVsbH1yZXR1cm57YW5jaG9yczpuZXcgU2V0LGRvYzpzLGZsb3dDb2xsZWN0aW9uUGFkZGluZzp0LmZsb3dDb2xsZWN0aW9uUGFkZGluZz8iICI6IiIsaW5kZW50OiIiLGluZGVudFN0ZXA6dHlwZW9mIHQuaW5kZW50PT0ibnVtYmVyIj8iICIucmVwZWF0KHQuaW5kZW50KToiICAiLGluRmxvdzphLG9wdGlvbnM6dH19ZnVuY3Rpb24ga0FhKHMsZSl7aWYoZS50YWcpe2xldCByPXMuZmlsdGVyKG49Pm4udGFnPT09ZS50YWcpO2lmKHIubGVuZ3RoPjApcmV0dXJuIHIuZmluZChuPT5uLmZvcm1hdD09PWUuZm9ybWF0KT8/clswXX1sZXQgdCxhO2lmKGxhKGUpKXthPWUudmFsdWU7bGV0IHI9cy5maWx0ZXIobj0+bi5pZGVudGlmeT8uKGEpKTtpZihyLmxlbmd0aD4xKXtsZXQgbj1yLmZpbHRlcihvPT5vLnRlc3QpO24ubGVuZ3RoPjAmJihyPW4pfXQ9ci5maW5kKG49Pm4uZm9ybWF0PT09ZS5mb3JtYXQpPz9yLmZpbmQobj0+IW4uZm9ybWF0KX1lbHNlIGE9ZSx0PXMuZmluZChyPT5yLm5vZGVDbGFzcyYmYSBpbnN0YW5jZW9mIHIubm9kZUNsYXNzKTtpZighdCl7bGV0IHI9YT8uY29uc3RydWN0b3I/Lm5hbWU/PyhhPT09bnVsbD8ibnVsbCI6dHlwZW9mIGEpO3Rocm93IG5ldyBFcnJvcihgVGFnIG5vdCByZXNvbHZlZCBmb3IgJHtyfSB2YWx1ZWApfXJldHVybiB0fWZ1bmN0aW9uIFNBYShzLGUse2FuY2hvcnM6dCxkb2M6YX0pe2lmKCFhLmRpcmVjdGl2ZXMpcmV0dXJuIiI7bGV0IHI9W10sbj0obGEocyl8fGRzKHMpKSYmcy5hbmNob3I7biYmd3cobikmJih0LmFkZChuKSxyLnB1c2goYCYke259YCkpO2xldCBvPXMudGFnPz8oZS5kZWZhdWx0P251bGw6ZS50YWcpO3JldHVybiBvJiZyLnB1c2goYS5kaXJlY3RpdmVzLnRhZ1N0cmluZyhvKSksci5qb2luKCIgIil9ZnVuY3Rpb24gbWQocyxlLHQsYSl7aWYoQ2EocykpcmV0dXJuIHMudG9TdHJpbmcoZSx0LGEpO2lmKHZsKHMpKXtpZihlLmRvYy5kaXJlY3RpdmVzKXJldHVybiBzLnRvU3RyaW5nKGUpO2lmKGUucmVzb2x2ZWRBbGlhc2VzPy5oYXMocykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHN0cmluZ2lmeSBjaXJjdWxhciBzdHJ1Y3R1cmUgd2l0aG91dCBhbGlhcyBub2RlcyIpO2UucmVzb2x2ZWRBbGlhc2VzP2UucmVzb2x2ZWRBbGlhc2VzLmFkZChzKTplLnJlc29sdmVkQWxpYXNlcz1uZXcgU2V0KFtzXSkscz1zLnJlc29sdmUoZS5kb2MpfWxldCByLG49SWEocyk/czplLmRvYy5jcmVhdGVOb2RlKHMse29uVGFnT2JqOmkocD0+cj1wLCJvblRhZ09iaiIpfSk7cj8/KHI9a0FhKGUuZG9jLnNjaGVtYS50YWdzLG4pKTtsZXQgbz1TQWEobixyLGUpO28ubGVuZ3RoPjAmJihlLmluZGVudEF0U3RhcnQ9KGUuaW5kZW50QXRTdGFydD8/MCkrby5sZW5ndGgrMSk7bGV0IGw9dHlwZW9mIHIuc3RyaW5naWZ5PT0iZnVuY3Rpb24iP3Iuc3RyaW5naWZ5KG4sZSx0LGEpOmxhKG4pP2ZkKG4sZSx0LGEpOm4udG9TdHJpbmcoZSx0LGEpO3JldHVybiBvP2xhKG4pfHxsWzBdPT09InsifHxsWzBdPT09IlsiP2Ake299ICR7bH1gOmAke299CiR7ZS5pbmRlbnR9JHtsfWA6bH12YXIgRHc9ZygoKT0+e2dzZSgpO3VzKCk7TXcoKTtUdygpO2koJHcsImNyZWF0ZVN0cmluZ2lmeUNvbnRleHQiKTtpKGtBYSwiZ2V0VGFnT2JqZWN0Iik7aShTQWEsInN0cmluZ2lmeVByb3BzIik7aShtZCwic3RyaW5naWZ5Iil9KTtmdW5jdGlvbiBCNGUoe2tleTpzLHZhbHVlOmV9LHQsYSxyKXtsZXR7YWxsTnVsbFZhbHVlczpuLGRvYzpvLGluZGVudDpsLGluZGVudFN0ZXA6cCxvcHRpb25zOntjb21tZW50U3RyaW5nOmQsaW5kZW50U2VxOnUsc2ltcGxlS2V5czpjfX09dCxiPUlhKHMpJiZzLmNvbW1lbnR8fG51bGw7aWYoYyl7aWYoYil0aHJvdyBuZXcgRXJyb3IoIldpdGggc2ltcGxlIGtleXMsIGtleSBub2RlcyBjYW5ub3QgaGF2ZSBjb21tZW50cyIpO2lmKGRzKHMpfHwhSWEocykmJnR5cGVvZiBzPT0ib2JqZWN0Iil7bGV0IE89IldpdGggc2ltcGxlIGtleXMsIGNvbGxlY3Rpb24gY2Fubm90IGJlIHVzZWQgYXMgYSBrZXkgdmFsdWUiO3Rocm93IG5ldyBFcnJvcihPKX19bGV0IHY9IWMmJighc3x8YiYmZT09bnVsbCYmIXQuaW5GbG93fHxkcyhzKXx8KGxhKHMpP3MudHlwZT09PUx0LkJMT0NLX0ZPTERFRHx8cy50eXBlPT09THQuQkxPQ0tfTElURVJBTDp0eXBlb2Ygcz09Im9iamVjdCIpKTt0PU9iamVjdC5hc3NpZ24oe30sdCx7YWxsTnVsbFZhbHVlczohMSxpbXBsaWNpdEtleTohdiYmKGN8fCFuKSxpbmRlbnQ6bCtwfSk7bGV0IHg9ITEsbT0hMSxmPW1kKHMsdCwoKT0+eD0hMCwoKT0+bT0hMCk7aWYoIXYmJiF0LmluRmxvdyYmZi5sZW5ndGg+MTAyNCl7aWYoYyl0aHJvdyBuZXcgRXJyb3IoIldpdGggc2ltcGxlIGtleXMsIHNpbmdsZSBsaW5lIHNjYWxhciBtdXN0IG5vdCBzcGFuIG1vcmUgdGhhbiAxMDI0IGNoYXJhY3RlcnMiKTt2PSEwfWlmKHQuaW5GbG93KXtpZihufHxlPT1udWxsKXJldHVybiB4JiZhJiZhKCksZj09PSIiPyI/Ijp2P2A/ICR7Zn1gOmZ9ZWxzZSBpZihuJiYhY3x8ZT09bnVsbCYmdilyZXR1cm4gZj1gPyAke2Z9YCxiJiYheD9mKz1MMShmLHQuaW5kZW50LGQoYikpOm0mJnImJnIoKSxmO3gmJihiPW51bGwpLHY/KGImJihmKz1MMShmLHQuaW5kZW50LGQoYikpKSxmPWA/ICR7Zn0KJHtsfTpgKTooZj1gJHtmfTpgLGImJihmKz1MMShmLHQuaW5kZW50LGQoYikpKSk7bGV0IHksTSx6O0lhKGUpPyh5PSEhZS5zcGFjZUJlZm9yZSxNPWUuY29tbWVudEJlZm9yZSx6PWUuY29tbWVudCk6KHk9ITEsTT1udWxsLHo9bnVsbCxlJiZ0eXBlb2YgZT09Im9iamVjdCImJihlPW8uY3JlYXRlTm9kZShlKSkpLHQuaW1wbGljaXRLZXk9ITEsIXYmJiFiJiZsYShlKSYmKHQuaW5kZW50QXRTdGFydD1mLmxlbmd0aCsxKSxtPSExLCF1JiZwLmxlbmd0aD49MiYmIXQuaW5GbG93JiYhdiYmd2woZSkmJiFlLmZsb3cmJiFlLnRhZyYmIWUuYW5jaG9yJiYodC5pbmRlbnQ9dC5pbmRlbnQuc3Vic3RyaW5nKDIpKTtsZXQgTj0hMSxDPW1kKGUsdCwoKT0+Tj0hMCwoKT0+bT0hMCksXz0iICI7aWYoYnx8eXx8TSl7aWYoXz15P2AKYDoiIixNKXtsZXQgTz1kKE0pO18rPWAKJHtxbChPLHQuaW5kZW50KX1gfUM9PT0iIiYmIXQuaW5GbG93P189PT1gCmAmJnomJihfPWAKCmApOl8rPWAKJHt0LmluZGVudH1gfWVsc2UgaWYoIXYmJmRzKGUpKXtsZXQgTz1DWzBdLCQ9Qy5pbmRleE9mKGAKYCksRT0kIT09LTEsSD10LmluRmxvdz8/ZS5mbG93Pz9lLml0ZW1zLmxlbmd0aD09PTA7aWYoRXx8IUgpe2xldCBrPSExO2lmKEUmJihPPT09IiYifHxPPT09IiEiKSl7bGV0IFM9Qy5pbmRleE9mKCIgIik7Tz09PSImIiYmUyE9PS0xJiZTPCQmJkNbUysxXT09PSIhIiYmKFM9Qy5pbmRleE9mKCIgIixTKzEpKSwoUz09PS0xfHwkPFMpJiYoaz0hMCl9a3x8KF89YAoke3QuaW5kZW50fWApfX1lbHNlKEM9PT0iInx8Q1swXT09PWAKYCkmJihfPSIiKTtyZXR1cm4gZis9XytDLHQuaW5GbG93P04mJmEmJmEoKTp6JiYhTj9mKz1MMShmLHQuaW5kZW50LGQoeikpOm0mJnImJnIoKSxmfXZhciBmNXQ9ZygoKT0+e3VzKCk7X3IoKTtEdygpO013KCk7aShCNGUsInN0cmluZ2lmeVBhaXIiKX0pO2Z1bmN0aW9uIF9BYShzLC4uLmUpe3M9PT0iZGVidWciJiZjb25zb2xlLmxvZyguLi5lKX1mdW5jdGlvbiBMdyhzLGUpeyhzPT09ImRlYnVnInx8cz09PSJ3YXJuIikmJmNvbnNvbGUud2FybihlKX12YXIgSDRlPWcoKCk9PntpKF9BYSwiZGVidWciKTtpKEx3LCJ3YXJuIil9KTtmdW5jdGlvbiBNc2UocyxlLHQpe2xldCBhPW01dChzLHQpO2lmKHdsKGEpKWZvcihsZXQgciBvZiBhLml0ZW1zKXE0ZShzLGUscik7ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgciBvZiBhKXE0ZShzLGUscik7ZWxzZSBxNGUocyxlLGEpfWZ1bmN0aW9uIHE0ZShzLGUsdCl7bGV0IGE9bTV0KHMsdCk7aWYoIXlsKGEpKXRocm93IG5ldyBFcnJvcigiTWVyZ2Ugc291cmNlcyBtdXN0IGJlIG1hcHMgb3IgbWFwIGFsaWFzZXMiKTtsZXQgcj1hLnRvSlNPTihudWxsLHMsTWFwKTtmb3IobGV0W24sb11vZiByKWUgaW5zdGFuY2VvZiBNYXA/ZS5oYXMobil8fGUuc2V0KG4sbyk6ZSBpbnN0YW5jZW9mIFNldD9lLmFkZChuKTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiBlfWZ1bmN0aW9uIG01dChzLGUpe3JldHVybiBzJiZ2bChlKT9lLnJlc29sdmUocy5kb2Mscyk6ZX12YXIgX3NlLFRjLGo0ZSx6c2U9ZygoKT0+e3VzKCk7X3IoKTtfc2U9Ijw8IixUYz17aWRlbnRpZnk6aShzPT5zPT09X3NlfHx0eXBlb2Ygcz09InN5bWJvbCImJnMuZGVzY3JpcHRpb249PT1fc2UsImlkZW50aWZ5IiksZGVmYXVsdDoia2V5Iix0YWc6InRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIix0ZXN0Oi9ePDwkLyxyZXNvbHZlOmkoKCk9Pk9iamVjdC5hc3NpZ24obmV3IEx0KFN5bWJvbChfc2UpKSx7YWRkVG9KU01hcDpNc2V9KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKCgpPT5fc2UsInN0cmluZ2lmeSIpfSxqNGU9aSgocyxlKT0+KFRjLmlkZW50aWZ5KGUpfHxsYShlKSYmKCFlLnR5cGV8fGUudHlwZT09PUx0LlBMQUlOKSYmVGMuaWRlbnRpZnkoZS52YWx1ZSkpJiZzPy5kb2Muc2NoZW1hLnRhZ3Muc29tZSh0PT50LnRhZz09PVRjLnRhZyYmdC5kZWZhdWx0KSwiaXNNZXJnZUtleSIpO2koTXNlLCJhZGRNZXJnZVRvSlNNYXAiKTtpKHE0ZSwibWVyZ2VWYWx1ZSIpO2kobTV0LCJyZXNvbHZlQWxpYXNWYWx1ZSIpfSk7ZnVuY3Rpb24gRXcocyxlLHtrZXk6dCx2YWx1ZTphfSl7aWYoSWEodCkmJnQuYWRkVG9KU01hcCl0LmFkZFRvSlNNYXAocyxlLGEpO2Vsc2UgaWYoajRlKHMsdCkpTXNlKHMsZSxhKTtlbHNle2xldCByPVNyKHQsIiIscyk7aWYoZSBpbnN0YW5jZW9mIE1hcCllLnNldChyLFNyKGEscixzKSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgU2V0KWUuYWRkKHIpO2Vsc2V7bGV0IG49TUFhKHQscixzKSxvPVNyKGEsbixzKTtuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOmVbbl09b319cmV0dXJuIGV9ZnVuY3Rpb24gTUFhKHMsZSx0KXtpZihlPT09bnVsbClyZXR1cm4iIjtpZih0eXBlb2YgZSE9Im9iamVjdCIpcmV0dXJuIFN0cmluZyhlKTtpZihJYShzKSYmdD8uZG9jKXtsZXQgYT0kdyh0LmRvYyx7fSk7YS5hbmNob3JzPW5ldyBTZXQ7Zm9yKGxldCBuIG9mIHQuYW5jaG9ycy5rZXlzKCkpYS5hbmNob3JzLmFkZChuLmFuY2hvcik7YS5pbkZsb3c9ITAsYS5pblN0cmluZ2lmeUtleT0hMDtsZXQgcj1zLnRvU3RyaW5nKGEpO2lmKCF0Lm1hcEtleVdhcm5lZCl7bGV0IG49SlNPTi5zdHJpbmdpZnkocik7bi5sZW5ndGg+NDAmJihuPW4uc3Vic3RyaW5nKDAsMzYpKycuLi4iJyksTHcodC5kb2Mub3B0aW9ucy5sb2dMZXZlbCxgS2V5cyB3aXRoIGNvbGxlY3Rpb24gdmFsdWVzIHdpbGwgYmUgc3RyaW5naWZpZWQgZHVlIHRvIEpTIE9iamVjdCByZXN0cmljdGlvbnM6ICR7bn0uIFNldCBtYXBBc01hcDogdHJ1ZSB0byB1c2Ugb2JqZWN0IGtleXMuYCksdC5tYXBLZXlXYXJuZWQ9ITB9cmV0dXJuIHJ9cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfXZhciBWNGU9ZygoKT0+e0g0ZSgpO3pzZSgpO0R3KCk7dXMoKTtBcCgpO2koRXcsImFkZFBhaXJUb0pTTWFwIik7aShNQWEsInN0cmluZ2lmeUtleSIpfSk7ZnVuY3Rpb24gYjMocyxlLHQpe2xldCBhPWhkKHMsdm9pZCAwLHQpLHI9aGQoZSx2b2lkIDAsdCk7cmV0dXJuIG5ldyBjaShhLHIpfXZhciBjaSxOcD1nKCgpPT57X3coKTtmNXQoKTtWNGUoKTt1cygpO2koYjMsImNyZWF0ZVBhaXIiKTtjaT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlBhaXIiKX1jb25zdHJ1Y3RvcihlLHQ9bnVsbCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsSm8se3ZhbHVlOmhzZX0pLHRoaXMua2V5PWUsdGhpcy52YWx1ZT10fWNsb25lKGUpe2xldHtrZXk6dCx2YWx1ZTphfT10aGlzO3JldHVybiBJYSh0KSYmKHQ9dC5jbG9uZShlKSksSWEoYSkmJihhPWEuY2xvbmUoZSkpLG5ldyBzKHQsYSl9dG9KU09OKGUsdCl7bGV0IGE9dD8ubWFwQXNNYXA/bmV3IE1hcDp7fTtyZXR1cm4gRXcodCxhLHRoaXMpfXRvU3RyaW5nKGUsdCxhKXtyZXR1cm4gZT8uZG9jP0I0ZSh0aGlzLGUsdCxhKTpKU09OLnN0cmluZ2lmeSh0aGlzKX19fSk7ZnVuY3Rpb24gUHcocyxlLHQpe3JldHVybihlLmluRmxvdz8/cy5mbG93P0NBYTp6QWEpKHMsZSx0KX1mdW5jdGlvbiB6QWEoe2NvbW1lbnQ6cyxpdGVtczplfSx0LHtibG9ja0l0ZW1QcmVmaXg6YSxmbG93Q2hhcnM6cixpdGVtSW5kZW50Om4sb25DaG9tcEtlZXA6byxvbkNvbW1lbnQ6bH0pe2xldHtpbmRlbnQ6cCxvcHRpb25zOntjb21tZW50U3RyaW5nOmR9fT10LHU9T2JqZWN0LmFzc2lnbih7fSx0LHtpbmRlbnQ6bix0eXBlOm51bGx9KSxjPSExLGI9W107Zm9yKGxldCB4PTA7eDxlLmxlbmd0aDsrK3gpe2xldCBtPWVbeF0sZj1udWxsO2lmKElhKG0pKSFjJiZtLnNwYWNlQmVmb3JlJiZiLnB1c2goIiIpLENzZSh0LGIsbS5jb21tZW50QmVmb3JlLGMpLG0uY29tbWVudCYmKGY9bS5jb21tZW50KTtlbHNlIGlmKENhKG0pKXtsZXQgTT1JYShtLmtleSk/bS5rZXk6bnVsbDtNJiYoIWMmJk0uc3BhY2VCZWZvcmUmJmIucHVzaCgiIiksQ3NlKHQsYixNLmNvbW1lbnRCZWZvcmUsYykpfWM9ITE7bGV0IHk9bWQobSx1LCgpPT5mPW51bGwsKCk9PmM9ITApO2YmJih5Kz1MMSh5LG4sZChmKSkpLGMmJmYmJihjPSExKSxiLnB1c2goYSt5KX1sZXQgdjtpZihiLmxlbmd0aD09PTApdj1yLnN0YXJ0K3IuZW5kO2Vsc2V7dj1iWzBdO2ZvcihsZXQgeD0xO3g8Yi5sZW5ndGg7Kyt4KXtsZXQgbT1iW3hdO3YrPW0/YAoke3B9JHttfWA6YApgfX1yZXR1cm4gcz8odis9YApgK3FsKGQocykscCksbCYmbCgpKTpjJiZvJiZvKCksdn1mdW5jdGlvbiBDQWEoe2l0ZW1zOnN9LGUse2Zsb3dDaGFyczp0LGl0ZW1JbmRlbnQ6YX0pe2xldHtpbmRlbnQ6cixpbmRlbnRTdGVwOm4sZmxvd0NvbGxlY3Rpb25QYWRkaW5nOm8sb3B0aW9uczp7Y29tbWVudFN0cmluZzpsfX09ZTthKz1uO2xldCBwPU9iamVjdC5hc3NpZ24oe30sZSx7aW5kZW50OmEsaW5GbG93OiEwLHR5cGU6bnVsbH0pLGQ9ITEsdT0wLGM9W107Zm9yKGxldCB4PTA7eDxzLmxlbmd0aDsrK3gpe2xldCBtPXNbeF0sZj1udWxsO2lmKElhKG0pKW0uc3BhY2VCZWZvcmUmJmMucHVzaCgiIiksQ3NlKGUsYyxtLmNvbW1lbnRCZWZvcmUsITEpLG0uY29tbWVudCYmKGY9bS5jb21tZW50KTtlbHNlIGlmKENhKG0pKXtsZXQgTT1JYShtLmtleSk/bS5rZXk6bnVsbDtNJiYoTS5zcGFjZUJlZm9yZSYmYy5wdXNoKCIiKSxDc2UoZSxjLE0uY29tbWVudEJlZm9yZSwhMSksTS5jb21tZW50JiYoZD0hMCkpO2xldCB6PUlhKG0udmFsdWUpP20udmFsdWU6bnVsbDt6Pyh6LmNvbW1lbnQmJihmPXouY29tbWVudCksei5jb21tZW50QmVmb3JlJiYoZD0hMCkpOm0udmFsdWU9PW51bGwmJk0/LmNvbW1lbnQmJihmPU0uY29tbWVudCl9ZiYmKGQ9ITApO2xldCB5PW1kKG0scCwoKT0+Zj1udWxsKTtkfHwoZD1jLmxlbmd0aD51fHx5LmluY2x1ZGVzKGAKYCkpLHg8cy5sZW5ndGgtMT95Kz0iLCI6ZS5vcHRpb25zLnRyYWlsaW5nQ29tbWEmJihlLm9wdGlvbnMubGluZVdpZHRoPjAmJihkfHwoZD1jLnJlZHVjZSgoTSx6KT0+TSt6Lmxlbmd0aCsyLDIpKyh5Lmxlbmd0aCsyKT5lLm9wdGlvbnMubGluZVdpZHRoKSksZCYmKHkrPSIsIikpLGYmJih5Kz1MMSh5LGEsbChmKSkpLGMucHVzaCh5KSx1PWMubGVuZ3RofWxldHtzdGFydDpiLGVuZDp2fT10O2lmKGMubGVuZ3RoPT09MClyZXR1cm4gYit2O2lmKCFkKXtsZXQgeD1jLnJlZHVjZSgobSxmKT0+bStmLmxlbmd0aCsyLDIpO2Q9ZS5vcHRpb25zLmxpbmVXaWR0aD4wJiZ4PmUub3B0aW9ucy5saW5lV2lkdGh9aWYoZCl7bGV0IHg9Yjtmb3IobGV0IG0gb2YgYyl4Kz1tP2AKJHtufSR7cn0ke219YDpgCmA7cmV0dXJuYCR7eH0KJHtyfSR7dn1gfWVsc2UgcmV0dXJuYCR7Yn0ke299JHtjLmpvaW4oIiAiKX0ke299JHt2fWB9ZnVuY3Rpb24gQ3NlKHtpbmRlbnQ6cyxvcHRpb25zOntjb21tZW50U3RyaW5nOmV9fSx0LGEscil7aWYoYSYmciYmKGE9YS5yZXBsYWNlKC9eXG4rLywiIikpLGEpe2xldCBuPXFsKGUoYSkscyk7dC5wdXNoKG4udHJpbVN0YXJ0KCkpfX12YXIgVTRlPWcoKCk9Pnt1cygpO0R3KCk7TXcoKTtpKFB3LCJzdHJpbmdpZnlDb2xsZWN0aW9uIik7aSh6QWEsInN0cmluZ2lmeUJsb2NrQ29sbGVjdGlvbiIpO2koQ0FhLCJzdHJpbmdpZnlGbG93Q29sbGVjdGlvbiIpO2koQ3NlLCJhZGRDb21tZW50QmVmb3JlIil9KTtmdW5jdGlvbiBfMChzLGUpe2xldCB0PWxhKGUpP2UudmFsdWU6ZTtmb3IobGV0IGEgb2YgcylpZihDYShhKSYmKGEua2V5PT09ZXx8YS5rZXk9PT10fHxsYShhLmtleSkmJmEua2V5LnZhbHVlPT09dCkpcmV0dXJuIGF9dmFyIHlpLFJwPWcoKCk9PntVNGUoKTtWNGUoKTt4c2UoKTt1cygpO05wKCk7X3IoKTtpKF8wLCJmaW5kUGFpciIpO3lpPWNsYXNzIGV4dGVuZHMgbTN7c3RhdGlje2kodGhpcywiWUFNTE1hcCIpfXN0YXRpYyBnZXQgdGFnTmFtZSgpe3JldHVybiJ0YWc6eWFtbC5vcmcsMjAwMjptYXAifWNvbnN0cnVjdG9yKGUpe3N1cGVyKHpjLGUpLHRoaXMuaXRlbXM9W119c3RhdGljIGZyb20oZSx0LGEpe2xldHtrZWVwVW5kZWZpbmVkOnIscmVwbGFjZXI6bn09YSxvPW5ldyB0aGlzKGUpLGw9aSgocCxkKT0+e2lmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKWQ9bi5jYWxsKHQscCxkKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkobikmJiFuLmluY2x1ZGVzKHApKXJldHVybjsoZCE9PXZvaWQgMHx8cikmJm8uaXRlbXMucHVzaChiMyhwLGQsYSkpfSwiYWRkIik7aWYodCBpbnN0YW5jZW9mIE1hcClmb3IobGV0W3AsZF1vZiB0KWwocCxkKTtlbHNlIGlmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iilmb3IobGV0IHAgb2YgT2JqZWN0LmtleXModCkpbChwLHRbcF0pO3JldHVybiB0eXBlb2YgZS5zb3J0TWFwRW50cmllcz09ImZ1bmN0aW9uIiYmby5pdGVtcy5zb3J0KGUuc29ydE1hcEVudHJpZXMpLG99YWRkKGUsdCl7bGV0IGE7Q2EoZSk/YT1lOiFlfHx0eXBlb2YgZSE9Im9iamVjdCJ8fCEoImtleSJpbiBlKT9hPW5ldyBjaShlLGU/LnZhbHVlKTphPW5ldyBjaShlLmtleSxlLnZhbHVlKTtsZXQgcj1fMCh0aGlzLml0ZW1zLGEua2V5KSxuPXRoaXMuc2NoZW1hPy5zb3J0TWFwRW50cmllcztpZihyKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYEtleSAke2Eua2V5fSBhbHJlYWR5IHNldGApO2xhKHIudmFsdWUpJiZTdyhhLnZhbHVlKT9yLnZhbHVlLnZhbHVlPWEudmFsdWU6ci52YWx1ZT1hLnZhbHVlfWVsc2UgaWYobil7bGV0IG89dGhpcy5pdGVtcy5maW5kSW5kZXgobD0+bihhLGwpPDApO289PT0tMT90aGlzLml0ZW1zLnB1c2goYSk6dGhpcy5pdGVtcy5zcGxpY2UobywwLGEpfWVsc2UgdGhpcy5pdGVtcy5wdXNoKGEpfWRlbGV0ZShlKXtsZXQgdD1fMCh0aGlzLml0ZW1zLGUpO3JldHVybiB0P3RoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZih0KSwxKS5sZW5ndGg+MDohMX1nZXQoZSx0KXtsZXQgcj1fMCh0aGlzLml0ZW1zLGUpPy52YWx1ZTtyZXR1cm4oIXQmJmxhKHIpP3IudmFsdWU6cik/P3ZvaWQgMH1oYXMoZSl7cmV0dXJuISFfMCh0aGlzLml0ZW1zLGUpfXNldChlLHQpe3RoaXMuYWRkKG5ldyBjaShlLHQpLCEwKX10b0pTT04oZSx0LGEpe2xldCByPWE/bmV3IGE6dD8ubWFwQXNNYXA/bmV3IE1hcDp7fTt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShyKTtmb3IobGV0IG4gb2YgdGhpcy5pdGVtcylFdyh0LHIsbik7cmV0dXJuIHJ9dG9TdHJpbmcoZSx0LGEpe2lmKCFlKXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtmb3IobGV0IHIgb2YgdGhpcy5pdGVtcylpZighQ2EocikpdGhyb3cgbmV3IEVycm9yKGBNYXAgaXRlbXMgbXVzdCBhbGwgYmUgcGFpcnM7IGZvdW5kICR7SlNPTi5zdHJpbmdpZnkocil9IGluc3RlYWRgKTtyZXR1cm4hZS5hbGxOdWxsVmFsdWVzJiZ0aGlzLmhhc0FsbE51bGxWYWx1ZXMoITEpJiYoZT1PYmplY3QuYXNzaWduKHt9LGUse2FsbE51bGxWYWx1ZXM6ITB9KSksUHcodGhpcyxlLHtibG9ja0l0ZW1QcmVmaXg6IiIsZmxvd0NoYXJzOntzdGFydDoieyIsZW5kOiJ9In0saXRlbUluZGVudDplLmluZGVudHx8IiIsb25DaG9tcEtlZXA6YSxvbkNvbW1lbnQ6dH0pfX19KTt2YXIgJGMsRDk9ZygoKT0+e3VzKCk7UnAoKTskYz17Y29sbGVjdGlvbjoibWFwIixkZWZhdWx0OiEwLG5vZGVDbGFzczp5aSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm1hcCIscmVzb2x2ZShzLGUpe3JldHVybiB5bChzKXx8ZSgiRXhwZWN0ZWQgYSBtYXBwaW5nIGZvciB0aGlzIHRhZyIpLHN9LGNyZWF0ZU5vZGU6aSgocyxlLHQpPT55aS5mcm9tKHMsZSx0KSwiY3JlYXRlTm9kZSIpfX0pO2Z1bmN0aW9uIFRzZShzKXtsZXQgZT1sYShzKT9zLnZhbHVlOnM7cmV0dXJuIGUmJnR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9TnVtYmVyKGUpKSx0eXBlb2YgZT09Im51bWJlciImJk51bWJlci5pc0ludGVnZXIoZSkmJmU+PTA/ZTpudWxsfXZhciBWcixPcD1nKCgpPT57X3coKTtVNGUoKTt4c2UoKTt1cygpO19yKCk7QXAoKTtWcj1jbGFzcyBleHRlbmRzIG0ze3N0YXRpY3tpKHRoaXMsIllBTUxTZXEiKX1zdGF0aWMgZ2V0IHRhZ05hbWUoKXtyZXR1cm4idGFnOnlhbWwub3JnLDIwMDI6c2VxIn1jb25zdHJ1Y3RvcihlKXtzdXBlcih1ZCxlKSx0aGlzLml0ZW1zPVtdfWFkZChlKXt0aGlzLml0ZW1zLnB1c2goZSl9ZGVsZXRlKGUpe2xldCB0PVRzZShlKTtyZXR1cm4gdHlwZW9mIHQhPSJudW1iZXIiPyExOnRoaXMuaXRlbXMuc3BsaWNlKHQsMSkubGVuZ3RoPjB9Z2V0KGUsdCl7bGV0IGE9VHNlKGUpO2lmKHR5cGVvZiBhIT0ibnVtYmVyIilyZXR1cm47bGV0IHI9dGhpcy5pdGVtc1thXTtyZXR1cm4hdCYmbGEocik/ci52YWx1ZTpyfWhhcyhlKXtsZXQgdD1Uc2UoZSk7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIiYmdDx0aGlzLml0ZW1zLmxlbmd0aH1zZXQoZSx0KXtsZXQgYT1Uc2UoZSk7aWYodHlwZW9mIGEhPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSB2YWxpZCBpbmRleCwgbm90ICR7ZX0uYCk7bGV0IHI9dGhpcy5pdGVtc1thXTtsYShyKSYmU3codCk/ci52YWx1ZT10OnRoaXMuaXRlbXNbYV09dH10b0pTT04oZSx0KXtsZXQgYT1bXTt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShhKTtsZXQgcj0wO2ZvcihsZXQgbiBvZiB0aGlzLml0ZW1zKWEucHVzaChTcihuLFN0cmluZyhyKyspLHQpKTtyZXR1cm4gYX10b1N0cmluZyhlLHQsYSl7cmV0dXJuIGU/UHcodGhpcyxlLHtibG9ja0l0ZW1QcmVmaXg6Ii0gIixmbG93Q2hhcnM6e3N0YXJ0OiJbIixlbmQ6Il0ifSxpdGVtSW5kZW50OihlLmluZGVudHx8IiIpKyIgICIsb25DaG9tcEtlZXA6YSxvbkNvbW1lbnQ6dH0pOkpTT04uc3RyaW5naWZ5KHRoaXMpfXN0YXRpYyBmcm9tKGUsdCxhKXtsZXR7cmVwbGFjZXI6cn09YSxuPW5ldyB0aGlzKGUpO2lmKHQmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpe2xldCBvPTA7Zm9yKGxldCBsIG9mIHQpe2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXtsZXQgcD10IGluc3RhbmNlb2YgU2V0P2w6U3RyaW5nKG8rKyk7bD1yLmNhbGwodCxwLGwpfW4uaXRlbXMucHVzaChoZChsLHZvaWQgMCxhKSl9fXJldHVybiBufX07aShUc2UsImFzSXRlbUluZGV4Iil9KTt2YXIgRGMsTDk9ZygoKT0+e3VzKCk7T3AoKTtEYz17Y29sbGVjdGlvbjoic2VxIixkZWZhdWx0OiEwLG5vZGVDbGFzczpWcix0YWc6InRhZzp5YW1sLm9yZywyMDAyOnNlcSIscmVzb2x2ZShzLGUpe3JldHVybiB3bChzKXx8ZSgiRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWciKSxzfSxjcmVhdGVOb2RlOmkoKHMsZSx0KT0+VnIuZnJvbShzLGUsdCksImNyZWF0ZU5vZGUiKX19KTt2YXIgTTAsSXc9ZygoKT0+e1R3KCk7TTA9e2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJzdHJpbmciLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLHJlc29sdmU6aShzPT5zLCJyZXNvbHZlIiksc3RyaW5naWZ5KHMsZSx0LGEpe3JldHVybiBlPU9iamVjdC5hc3NpZ24oe2FjdHVhbFN0cmluZzohMH0sZSksZmQocyxlLHQsYSl9fX0pO3ZhciBGcCwkc2U9ZygoKT0+e19yKCk7RnA9e2lkZW50aWZ5Omkocz0+cz09bnVsbCwiaWRlbnRpZnkiKSxjcmVhdGVOb2RlOmkoKCk9Pm5ldyBMdChudWxsKSwiY3JlYXRlTm9kZSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsIix0ZXN0Oi9eKD86fnxbTm5ddWxsfE5VTEwpPyQvLHJlc29sdmU6aSgoKT0+bmV3IEx0KG51bGwpLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkoKHtzb3VyY2U6c30sZSk9PnR5cGVvZiBzPT0ic3RyaW5nIiYmRnAudGVzdC50ZXN0KHMpP3M6ZS5vcHRpb25zLm51bGxTdHIsInN0cmluZ2lmeSIpfX0pO3ZhciBFOSxXNGU9ZygoKT0+e19yKCk7RTk9e2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJib29sZWFuIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXig/OltUdF1ydWV8VFJVRXxbRmZdYWxzZXxGQUxTRSkkLyxyZXNvbHZlOmkocz0+bmV3IEx0KHNbMF09PT0idCJ8fHNbMF09PT0iVCIpLCJyZXNvbHZlIiksc3RyaW5naWZ5KHtzb3VyY2U6cyx2YWx1ZTplfSx0KXtpZihzJiZFOS50ZXN0LnRlc3Qocykpe2xldCBhPXNbMF09PT0idCJ8fHNbMF09PT0iVCI7aWYoZT09PWEpcmV0dXJuIHN9cmV0dXJuIGU/dC5vcHRpb25zLnRydWVTdHI6dC5vcHRpb25zLmZhbHNlU3RyfX19KTtmdW5jdGlvbiBTbyh7Zm9ybWF0OnMsbWluRnJhY3Rpb25EaWdpdHM6ZSx0YWc6dCx2YWx1ZTphfSl7aWYodHlwZW9mIGE9PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoYSk7bGV0IHI9dHlwZW9mIGE9PSJudW1iZXIiP2E6TnVtYmVyKGEpO2lmKCFpc0Zpbml0ZShyKSlyZXR1cm4gaXNOYU4ocik/Ii5uYW4iOnI8MD8iLS5pbmYiOiIuaW5mIjtsZXQgbj1PYmplY3QuaXMoYSwtMCk/Ii0wIjpKU09OLnN0cmluZ2lmeShhKTtpZighcyYmZSYmKCF0fHx0PT09InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0IikmJi9eLT9cZC8udGVzdChuKSYmIW4uaW5jbHVkZXMoImUiKSl7bGV0IG89bi5pbmRleE9mKCIuIik7bzwwJiYobz1uLmxlbmd0aCxuKz0iLiIpO2xldCBsPWUtKG4ubGVuZ3RoLW8tMSk7Zm9yKDtsLS0gPjA7KW4rPSIwIn1yZXR1cm4gbn12YXIgUDk9ZygoKT0+e2koU28sInN0cmluZ2lmeU51bWJlciIpfSk7dmFyIEF3LE53LFJ3LEc0ZT1nKCgpPT57X3IoKTtQOSgpO0F3PXtpZGVudGlmeTppKHM9PnR5cGVvZiBzPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L14oPzpbLStdP1wuKD86aW5mfEluZnxJTkYpfFwubmFufFwuTmFOfFwuTkFOKSQvLHJlc29sdmU6aShzPT5zLnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09Im5hbiI/TmFOOnNbMF09PT0iLSI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpTb30sTnc9e2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJudW1iZXIiLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsZm9ybWF0OiJFWFAiLHRlc3Q6L15bLStdPyg/OlwuWzAtOV0rfFswLTldKyg/OlwuWzAtOV0qKT8pW2VFXVstK10/WzAtOV0rJC8scmVzb2x2ZTppKHM9PnBhcnNlRmxvYXQocyksInJlc29sdmUiKSxzdHJpbmdpZnkocyl7bGV0IGU9TnVtYmVyKHMudmFsdWUpO3JldHVybiBpc0Zpbml0ZShlKT9lLnRvRXhwb25lbnRpYWwoKTpTbyhzKX19LFJ3PXtpZGVudGlmeTppKHM9PnR5cGVvZiBzPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L15bLStdPyg/OlwuWzAtOV0rfFswLTldK1wuWzAtOV0qKSQvLHJlc29sdmUocyl7bGV0IGU9bmV3IEx0KHBhcnNlRmxvYXQocykpLHQ9cy5pbmRleE9mKCIuIik7cmV0dXJuIHQhPT0tMSYmc1tzLmxlbmd0aC0xXT09PSIwIiYmKGUubWluRnJhY3Rpb25EaWdpdHM9cy5sZW5ndGgtdC0xKSxlfSxzdHJpbmdpZnk6U299fSk7ZnVuY3Rpb24gZzV0KHMsZSx0KXtsZXR7dmFsdWU6YX09cztyZXR1cm4gRHNlKGEpJiZhPj0wP3QrYS50b1N0cmluZyhlKTpTbyhzKX12YXIgRHNlLEs0ZSxPdyxGdyxCdyxZNGU9ZygoKT0+e1A5KCk7RHNlPWkocz0+dHlwZW9mIHM9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHMpLCJpbnRJZGVudGlmeSIpLEs0ZT1pKChzLGUsdCx7aW50QXNCaWdJbnQ6YX0pPT5hP0JpZ0ludChzKTpwYXJzZUludChzLnN1YnN0cmluZyhlKSx0KSwiaW50UmVzb2x2ZSIpO2koZzV0LCJpbnRTdHJpbmdpZnkiKTtPdz17aWRlbnRpZnk6aShzPT5Ec2UocykmJnM+PTAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJPQ1QiLHRlc3Q6L14wb1swLTddKyQvLHJlc29sdmU6aSgocyxlLHQpPT5LNGUocywyLDgsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6aShzPT5nNXQocyw4LCIwbyIpLCJzdHJpbmdpZnkiKX0sRnc9e2lkZW50aWZ5OkRzZSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iix0ZXN0Oi9eWy0rXT9bMC05XSskLyxyZXNvbHZlOmkoKHMsZSx0KT0+SzRlKHMsMCwxMCx0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpTb30sQnc9e2lkZW50aWZ5Omkocz0+RHNlKHMpJiZzPj0wLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiSEVYIix0ZXN0Oi9eMHhbMC05YS1mQS1GXSskLyxyZXNvbHZlOmkoKHMsZSx0KT0+SzRlKHMsMiwxNix0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKHM9Pmc1dChzLDE2LCIweCIpLCJzdHJpbmdpZnkiKX19KTt2YXIgWjRlLGI1dD1nKCgpPT57RDkoKTskc2UoKTtMOSgpO0l3KCk7VzRlKCk7RzRlKCk7WTRlKCk7WjRlPVskYyxEYyxNMCxGcCxFOSxPdyxGdyxCdyxBdyxOdyxSd119KTtmdW5jdGlvbiB2NXQocyl7cmV0dXJuIHR5cGVvZiBzPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihzKX12YXIgTHNlLFRBYSwkQWEsWDRlLHg1dD1nKCgpPT57X3IoKTtEOSgpO0w5KCk7aSh2NXQsImludElkZW50aWZ5Iik7THNlPWkoKHt2YWx1ZTpzfSk9PkpTT04uc3RyaW5naWZ5KHMpLCJzdHJpbmdpZnlKU09OIiksVEFhPVt7aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09InN0cmluZyIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnN0ciIscmVzb2x2ZTppKHM9PnMsInJlc29sdmUiKSxzdHJpbmdpZnk6THNlfSx7aWRlbnRpZnk6aShzPT5zPT1udWxsLCJpZGVudGlmeSIpLGNyZWF0ZU5vZGU6aSgoKT0+bmV3IEx0KG51bGwpLCJjcmVhdGVOb2RlIiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHRlc3Q6L15udWxsJC8scmVzb2x2ZTppKCgpPT5udWxsLCJyZXNvbHZlIiksc3RyaW5naWZ5OkxzZX0se2lkZW50aWZ5Omkocz0+dHlwZW9mIHM9PSJib29sZWFuIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXnRydWUkfF5mYWxzZSQvLHJlc29sdmU6aShzPT5zPT09InRydWUiLCJyZXNvbHZlIiksc3RyaW5naWZ5OkxzZX0se2lkZW50aWZ5OnY1dCxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iix0ZXN0Oi9eLT8oPzowfFsxLTldWzAtOV0qKSQvLHJlc29sdmU6aSgocyxlLHtpbnRBc0JpZ0ludDp0fSk9PnQ/QmlnSW50KHMpOnBhcnNlSW50KHMsMTApLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkoKHt2YWx1ZTpzfSk9PnY1dChzKT9zLnRvU3RyaW5nKCk6SlNPTi5zdHJpbmdpZnkocyksInN0cmluZ2lmeSIpfSx7aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eLT8oPzowfFsxLTldWzAtOV0qKSg/OlwuWzAtOV0qKT8oPzpbZUVdWy0rXT9bMC05XSspPyQvLHJlc29sdmU6aShzPT5wYXJzZUZsb2F0KHMpLCJyZXNvbHZlIiksc3RyaW5naWZ5OkxzZX1dLCRBYT17ZGVmYXVsdDohMCx0YWc6IiIsdGVzdDovXi8scmVzb2x2ZShzLGUpe3JldHVybiBlKGBVbnJlc29sdmVkIHBsYWluIHNjYWxhciAke0pTT04uc3RyaW5naWZ5KHMpfWApLHN9fSxYNGU9WyRjLERjXS5jb25jYXQoVEFhLCRBYSl9KTt2YXIgSTksUTRlPWcoKCk9PntfcigpO1R3KCk7STk9e2lkZW50aWZ5Omkocz0+cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksImlkZW50aWZ5IiksZGVmYXVsdDohMSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSIscmVzb2x2ZShzLGUpe2lmKHR5cGVvZiBhdG9iPT0iZnVuY3Rpb24iKXtsZXQgdD1hdG9iKHMucmVwbGFjZSgvW1xuXHJdL2csIiIpKSxhPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoOysrcilhW3JdPXQuY2hhckNvZGVBdChyKTtyZXR1cm4gYX1lbHNlIHJldHVybiBlKCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBhdG9iIGlzIHJlcXVpcmVkIiksc30sc3RyaW5naWZ5KHtjb21tZW50OnMsdHlwZTplLHZhbHVlOnR9LGEscixuKXtpZighdClyZXR1cm4iIjtsZXQgbz10LGw7aWYodHlwZW9mIGJ0b2E9PSJmdW5jdGlvbiIpe2xldCBwPSIiO2ZvcihsZXQgZD0wO2Q8by5sZW5ndGg7KytkKXArPVN0cmluZy5mcm9tQ2hhckNvZGUob1tkXSk7bD1idG9hKHApfWVsc2UgdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBidG9hIGlzIHJlcXVpcmVkIik7aWYoZT8/KGU9THQuQkxPQ0tfTElURVJBTCksZSE9PUx0LlFVT1RFX0RPVUJMRSl7bGV0IHA9TWF0aC5tYXgoYS5vcHRpb25zLmxpbmVXaWR0aC1hLmluZGVudC5sZW5ndGgsYS5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aCksZD1NYXRoLmNlaWwobC5sZW5ndGgvcCksdT1uZXcgQXJyYXkoZCk7Zm9yKGxldCBjPTAsYj0wO2M8ZDsrK2MsYis9cCl1W2NdPWwuc3Vic3RyKGIscCk7bD11LmpvaW4oZT09PUx0LkJMT0NLX0xJVEVSQUw/YApgOiIgIil9cmV0dXJuIGZkKHtjb21tZW50OnMsdHlwZTplLHZhbHVlOmx9LGEscixuKX19fSk7ZnVuY3Rpb24gRXNlKHMsZSl7aWYod2wocykpZm9yKGxldCB0PTA7dDxzLml0ZW1zLmxlbmd0aDsrK3Qpe2xldCBhPXMuaXRlbXNbdF07aWYoIUNhKGEpKXtpZih5bChhKSl7YS5pdGVtcy5sZW5ndGg+MSYmZSgiRWFjaCBwYWlyIG11c3QgaGF2ZSBpdHMgb3duIHNlcXVlbmNlIGluZGljYXRvciIpO2xldCByPWEuaXRlbXNbMF18fG5ldyBjaShuZXcgTHQobnVsbCkpO2lmKGEuY29tbWVudEJlZm9yZSYmKHIua2V5LmNvbW1lbnRCZWZvcmU9ci5rZXkuY29tbWVudEJlZm9yZT9gJHthLmNvbW1lbnRCZWZvcmV9CiR7ci5rZXkuY29tbWVudEJlZm9yZX1gOmEuY29tbWVudEJlZm9yZSksYS5jb21tZW50KXtsZXQgbj1yLnZhbHVlPz9yLmtleTtuLmNvbW1lbnQ9bi5jb21tZW50P2Ake2EuY29tbWVudH0KJHtuLmNvbW1lbnR9YDphLmNvbW1lbnR9YT1yfXMuaXRlbXNbdF09Q2EoYSk/YTpuZXcgY2koYSl9fWVsc2UgZSgiRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWciKTtyZXR1cm4gc31mdW5jdGlvbiBQc2UocyxlLHQpe2xldHtyZXBsYWNlcjphfT10LHI9bmV3IFZyKHMpO3IudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyI7bGV0IG49MDtpZihlJiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKWZvcihsZXQgbyBvZiBlKXt0eXBlb2YgYT09ImZ1bmN0aW9uIiYmKG89YS5jYWxsKGUsU3RyaW5nKG4rKyksbykpO2xldCBsLHA7aWYoQXJyYXkuaXNBcnJheShvKSlpZihvLmxlbmd0aD09PTIpbD1vWzBdLHA9b1sxXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFtrZXksIHZhbHVlXSB0dXBsZTogJHtvfWApO2Vsc2UgaWYobyYmbyBpbnN0YW5jZW9mIE9iamVjdCl7bGV0IGQ9T2JqZWN0LmtleXMobyk7aWYoZC5sZW5ndGg9PT0xKWw9ZFswXSxwPW9bbF07ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCB0dXBsZSB3aXRoIG9uZSBrZXksIG5vdCAke2QubGVuZ3RofSBrZXlzYCl9ZWxzZSBsPW87ci5pdGVtcy5wdXNoKGIzKGwscCx0KSl9cmV0dXJuIHJ9dmFyIEE5LElzZT1nKCgpPT57dXMoKTtOcCgpO19yKCk7T3AoKTtpKEVzZSwicmVzb2x2ZVBhaXJzIik7aShQc2UsImNyZWF0ZVBhaXJzIik7QTk9e2NvbGxlY3Rpb246InNlcSIsZGVmYXVsdDohMSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIixyZXNvbHZlOkVzZSxjcmVhdGVOb2RlOlBzZX19KTt2YXIgdjMsTjksSjRlPWcoKCk9Pnt1cygpO0FwKCk7UnAoKTtPcCgpO0lzZSgpO3YzPWNsYXNzIHMgZXh0ZW5kcyBWcntzdGF0aWN7aSh0aGlzLCJZQU1MT01hcCIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmFkZD15aS5wcm90b3R5cGUuYWRkLmJpbmQodGhpcyksdGhpcy5kZWxldGU9eWkucHJvdG90eXBlLmRlbGV0ZS5iaW5kKHRoaXMpLHRoaXMuZ2V0PXlpLnByb3RvdHlwZS5nZXQuYmluZCh0aGlzKSx0aGlzLmhhcz15aS5wcm90b3R5cGUuaGFzLmJpbmQodGhpcyksdGhpcy5zZXQ9eWkucHJvdG90eXBlLnNldC5iaW5kKHRoaXMpLHRoaXMudGFnPXMudGFnfXRvSlNPTihlLHQpe2lmKCF0KXJldHVybiBzdXBlci50b0pTT04oZSk7bGV0IGE9bmV3IE1hcDt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShhKTtmb3IobGV0IHIgb2YgdGhpcy5pdGVtcyl7bGV0IG4sbztpZihDYShyKT8obj1TcihyLmtleSwiIix0KSxvPVNyKHIudmFsdWUsbix0KSk6bj1TcihyLCIiLHQpLGEuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXMiKTthLnNldChuLG8pfXJldHVybiBhfXN0YXRpYyBmcm9tKGUsdCxhKXtsZXQgcj1Qc2UoZSx0LGEpLG49bmV3IHRoaXM7cmV0dXJuIG4uaXRlbXM9ci5pdGVtcyxufX07djMudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIjtOOT17Y29sbGVjdGlvbjoic2VxIixpZGVudGlmeTppKHM9PnMgaW5zdGFuY2VvZiBNYXAsImlkZW50aWZ5Iiksbm9kZUNsYXNzOnYzLGRlZmF1bHQ6ITEsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIixyZXNvbHZlKHMsZSl7bGV0IHQ9RXNlKHMsZSksYT1bXTtmb3IobGV0e2tleTpyfW9mIHQuaXRlbXMpbGEocikmJihhLmluY2x1ZGVzKHIudmFsdWUpP2UoYE9yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzOiAke3IudmFsdWV9YCk6YS5wdXNoKHIudmFsdWUpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdjMsdCl9LGNyZWF0ZU5vZGU6aSgocyxlLHQpPT52My5mcm9tKHMsZSx0KSwiY3JlYXRlTm9kZSIpfX0pO2Z1bmN0aW9uIHk1dCh7dmFsdWU6cyxzb3VyY2U6ZX0sdCl7cmV0dXJuIGUmJihzP0FzZTpOc2UpLnRlc3QudGVzdChlKT9lOnM/dC5vcHRpb25zLnRydWVTdHI6dC5vcHRpb25zLmZhbHNlU3RyfXZhciBBc2UsTnNlLHc1dD1nKCgpPT57X3IoKTtpKHk1dCwiYm9vbFN0cmluZ2lmeSIpO0FzZT17aWRlbnRpZnk6aShzPT5zPT09ITAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmJvb2wiLHRlc3Q6L14oPzpZfHl8W1l5XWVzfFlFU3xbVHRdcnVlfFRSVUV8W09vXW58T04pJC8scmVzb2x2ZTppKCgpPT5uZXcgTHQoITApLCJyZXNvbHZlIiksc3RyaW5naWZ5Onk1dH0sTnNlPXtpZGVudGlmeTppKHM9PnM9PT0hMSwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXig/Ok58bnxbTm5db3xOT3xbRmZdYWxzZXxGQUxTRXxbT29dZmZ8T0ZGKSQvLHJlc29sdmU6aSgoKT0+bmV3IEx0KCExKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTp5NXR9fSk7dmFyIGUzZSx0M2UsYTNlLGs1dD1nKCgpPT57X3IoKTtQOSgpO2UzZT17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eKD86Wy0rXT9cLig/OmluZnxJbmZ8SU5GKXxcLm5hbnxcLk5hTnxcLk5BTikkLyxyZXNvbHZlOmkocz0+cy5zbGljZSgtMykudG9Mb3dlckNhc2UoKT09PSJuYW4iP05hTjpzWzBdPT09Ii0iP051bWJlci5ORUdBVElWRV9JTkZJTklUWTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksInJlc29sdmUiKSxzdHJpbmdpZnk6U299LHQzZT17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iixmb3JtYXQ6IkVYUCIsdGVzdDovXlstK10/KD86WzAtOV1bMC05X10qKT8oPzpcLlswLTlfXSopP1tlRV1bLStdP1swLTldKyQvLHJlc29sdmU6aShzPT5wYXJzZUZsb2F0KHMucmVwbGFjZSgvXy9nLCIiKSksInJlc29sdmUiKSxzdHJpbmdpZnkocyl7bGV0IGU9TnVtYmVyKHMudmFsdWUpO3JldHVybiBpc0Zpbml0ZShlKT9lLnRvRXhwb25lbnRpYWwoKTpTbyhzKX19LGEzZT17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eWy0rXT8oPzpbMC05XVswLTlfXSopP1wuWzAtOV9dKiQvLHJlc29sdmUocyl7bGV0IGU9bmV3IEx0KHBhcnNlRmxvYXQocy5yZXBsYWNlKC9fL2csIiIpKSksdD1zLmluZGV4T2YoIi4iKTtpZih0IT09LTEpe2xldCBhPXMuc3Vic3RyaW5nKHQrMSkucmVwbGFjZSgvXy9nLCIiKTthW2EubGVuZ3RoLTFdPT09IjAiJiYoZS5taW5GcmFjdGlvbkRpZ2l0cz1hLmxlbmd0aCl9cmV0dXJuIGV9LHN0cmluZ2lmeTpTb319KTtmdW5jdGlvbiBSc2UocyxlLHQse2ludEFzQmlnSW50OmF9KXtsZXQgcj1zWzBdO2lmKChyPT09Ii0ifHxyPT09IisiKSYmKGUrPTEpLHM9cy5zdWJzdHJpbmcoZSkucmVwbGFjZSgvXy9nLCIiKSxhKXtzd2l0Y2godCl7Y2FzZSAyOnM9YDBiJHtzfWA7YnJlYWs7Y2FzZSA4OnM9YDBvJHtzfWA7YnJlYWs7Y2FzZSAxNjpzPWAweCR7c31gO2JyZWFrfWxldCBvPUJpZ0ludChzKTtyZXR1cm4gcj09PSItIj9CaWdJbnQoLTEpKm86b31sZXQgbj1wYXJzZUludChzLHQpO3JldHVybiByPT09Ii0iPy0xKm46bn1mdW5jdGlvbiBzM2UocyxlLHQpe2xldHt2YWx1ZTphfT1zO2lmKEh3KGEpKXtsZXQgcj1hLnRvU3RyaW5nKGUpO3JldHVybiBhPDA/Ii0iK3Qrci5zdWJzdHIoMSk6dCtyfXJldHVybiBTbyhzKX12YXIgSHcsaTNlLHIzZSxvM2UsbjNlLFM1dD1nKCgpPT57UDkoKTtIdz1pKHM9PnR5cGVvZiBzPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihzKSwiaW50SWRlbnRpZnkiKTtpKFJzZSwiaW50UmVzb2x2ZSIpO2koczNlLCJpbnRTdHJpbmdpZnkiKTtpM2U9e2lkZW50aWZ5Okh3LGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiQklOIix0ZXN0Oi9eWy0rXT8wYlswLTFfXSskLyxyZXNvbHZlOmkoKHMsZSx0KT0+UnNlKHMsMiwyLHQpLCJyZXNvbHZlIiksc3RyaW5naWZ5Omkocz0+czNlKHMsMiwiMGIiKSwic3RyaW5naWZ5Iil9LHIzZT17aWRlbnRpZnk6SHcsZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJPQ1QiLHRlc3Q6L15bLStdPzBbMC03X10rJC8scmVzb2x2ZTppKChzLGUsdCk9PlJzZShzLDEsOCx0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKHM9PnMzZShzLDgsIjAiKSwic3RyaW5naWZ5Iil9LG8zZT17aWRlbnRpZnk6SHcsZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsdGVzdDovXlstK10/WzAtOV1bMC05X10qJC8scmVzb2x2ZTppKChzLGUsdCk9PlJzZShzLDAsMTAsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6U299LG4zZT17aWRlbnRpZnk6SHcsZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJIRVgiLHRlc3Q6L15bLStdPzB4WzAtOWEtZkEtRl9dKyQvLHJlc29sdmU6aSgocyxlLHQpPT5Sc2UocywyLDE2LHQpLCJyZXNvbHZlIiksc3RyaW5naWZ5Omkocz0+czNlKHMsMTYsIjB4IiksInN0cmluZ2lmeSIpfX0pO3ZhciB4MyxSOSxsM2U9ZygoKT0+e3VzKCk7TnAoKTtScCgpO3gzPWNsYXNzIHMgZXh0ZW5kcyB5aXtzdGF0aWN7aSh0aGlzLCJZQU1MU2V0Iil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50YWc9cy50YWd9YWRkKGUpe2xldCB0O0NhKGUpP3Q9ZTplJiZ0eXBlb2YgZT09Im9iamVjdCImJiJrZXkiaW4gZSYmInZhbHVlImluIGUmJmUudmFsdWU9PT1udWxsP3Q9bmV3IGNpKGUua2V5LG51bGwpOnQ9bmV3IGNpKGUsbnVsbCksXzAodGhpcy5pdGVtcyx0LmtleSl8fHRoaXMuaXRlbXMucHVzaCh0KX1nZXQoZSx0KXtsZXQgYT1fMCh0aGlzLml0ZW1zLGUpO3JldHVybiF0JiZDYShhKT9sYShhLmtleSk/YS5rZXkudmFsdWU6YS5rZXk6YX1zZXQoZSx0KXtpZih0eXBlb2YgdCE9ImJvb2xlYW4iKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYm9vbGVhbiB2YWx1ZSBmb3Igc2V0KGtleSwgdmFsdWUpIGluIGEgWUFNTCBzZXQsIG5vdCAke3R5cGVvZiB0fWApO2xldCBhPV8wKHRoaXMuaXRlbXMsZSk7YSYmIXQ/dGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKGEpLDEpOiFhJiZ0JiZ0aGlzLml0ZW1zLnB1c2gobmV3IGNpKGUpKX10b0pTT04oZSx0KXtyZXR1cm4gc3VwZXIudG9KU09OKGUsdCxTZXQpfXRvU3RyaW5nKGUsdCxhKXtpZighZSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcyk7aWYodGhpcy5oYXNBbGxOdWxsVmFsdWVzKCEwKSlyZXR1cm4gc3VwZXIudG9TdHJpbmcoT2JqZWN0LmFzc2lnbih7fSxlLHthbGxOdWxsVmFsdWVzOiEwfSksdCxhKTt0aHJvdyBuZXcgRXJyb3IoIlNldCBpdGVtcyBtdXN0IGFsbCBoYXZlIG51bGwgdmFsdWVzIil9c3RhdGljIGZyb20oZSx0LGEpe2xldHtyZXBsYWNlcjpyfT1hLG49bmV3IHRoaXMoZSk7aWYodCYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KSlmb3IobGV0IG8gb2YgdCl0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKG89ci5jYWxsKHQsbyxvKSksbi5pdGVtcy5wdXNoKGIzKG8sbnVsbCxhKSk7cmV0dXJuIG59fTt4My50YWc9InRhZzp5YW1sLm9yZywyMDAyOnNldCI7Ujk9e2NvbGxlY3Rpb246Im1hcCIsaWRlbnRpZnk6aShzPT5zIGluc3RhbmNlb2YgU2V0LCJpZGVudGlmeSIpLG5vZGVDbGFzczp4MyxkZWZhdWx0OiExLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6c2V0IixjcmVhdGVOb2RlOmkoKHMsZSx0KT0+eDMuZnJvbShzLGUsdCksImNyZWF0ZU5vZGUiKSxyZXNvbHZlKHMsZSl7aWYoeWwocykpe2lmKHMuaGFzQWxsTnVsbFZhbHVlcyghMCkpcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHgzLHMpO2UoIlNldCBpdGVtcyBtdXN0IGFsbCBoYXZlIG51bGwgdmFsdWVzIil9ZWxzZSBlKCJFeHBlY3RlZCBhIG1hcHBpbmcgZm9yIHRoaXMgdGFnIik7cmV0dXJuIHN9fX0pO2Z1bmN0aW9uIGMzZShzLGUpe2xldCB0PXNbMF0sYT10PT09Ii0ifHx0PT09IisiP3Muc3Vic3RyaW5nKDEpOnMscj1pKG89PmU/QmlnSW50KG8pOk51bWJlcihvKSwibnVtIiksbj1hLnJlcGxhY2UoL18vZywiIikuc3BsaXQoIjoiKS5yZWR1Y2UoKG8sbCk9Pm8qcig2MCkrcihsKSxyKDApKTtyZXR1cm4gdD09PSItIj9yKC0xKSpuOm59ZnVuY3Rpb24gXzV0KHMpe2xldHt2YWx1ZTplfT1zLHQ9aShvPT5vLCJudW0iKTtpZih0eXBlb2YgZT09ImJpZ2ludCIpdD1pKG89PkJpZ0ludChvKSwibnVtIik7ZWxzZSBpZihpc05hTihlKXx8IWlzRmluaXRlKGUpKXJldHVybiBTbyhzKTtsZXQgYT0iIjtlPDAmJihhPSItIixlKj10KC0xKSk7bGV0IHI9dCg2MCksbj1bZSVyXTtyZXR1cm4gZTw2MD9uLnVuc2hpZnQoMCk6KGU9KGUtblswXSkvcixuLnVuc2hpZnQoZSVyKSxlPj02MCYmKGU9KGUtblswXSkvcixuLnVuc2hpZnQoZSkpKSxhK24ubWFwKG89PlN0cmluZyhvKS5wYWRTdGFydCgyLCIwIikpLmpvaW4oIjoiKS5yZXBsYWNlKC8wMDAwMDBcZCokLywiIil9dmFyIHF3LGp3LHkzLGQzZT1nKCgpPT57UDkoKTtpKGMzZSwicGFyc2VTZXhhZ2VzaW1hbCIpO2koXzV0LCJzdHJpbmdpZnlTZXhhZ2VzaW1hbCIpO3F3PXtpZGVudGlmeTppKHM9PnR5cGVvZiBzPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihzKSwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6IlRJTUUiLHRlc3Q6L15bLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrJC8scmVzb2x2ZTppKChzLGUse2ludEFzQmlnSW50OnR9KT0+YzNlKHMsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6XzV0fSxqdz17aWRlbnRpZnk6aShzPT50eXBlb2Ygcz09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iixmb3JtYXQ6IlRJTUUiLHRlc3Q6L15bLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXC5bMC05X10qJC8scmVzb2x2ZTppKHM9PmMzZShzLCExKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpfNXR9LHkzPXtpZGVudGlmeTppKHM9PnMgaW5zdGFuY2VvZiBEYXRlLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLHRlc3Q6UmVnRXhwKCJeKFswLTldezR9KS0oWzAtOV17MSwyfSktKFswLTldezEsMn0pKD86KD86dHxUfFsgXFx0XSspKFswLTldezEsMn0pOihbMC05XXsxLDJ9KTooWzAtOV17MSwyfShcXC5bMC05XSspPykoPzpbIFxcdF0qKFp8Wy0rXVswMTJdP1swLTldKD86OlswLTldezJ9KT8pKT8pPyQiKSxyZXNvbHZlKHMpe2xldCBlPXMubWF0Y2goeTMudGVzdCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCIhIXRpbWVzdGFtcCBleHBlY3RzIGEgZGF0ZSwgc3RhcnRpbmcgd2l0aCB5eXl5LW1tLWRkIik7bGV0Wyx0LGEscixuLG8sbF09ZS5tYXAoTnVtYmVyKSxwPWVbN10/TnVtYmVyKChlWzddKyIwMCIpLnN1YnN0cigxLDMpKTowLGQ9RGF0ZS5VVEModCxhLTEscixufHwwLG98fDAsbHx8MCxwKSx1PWVbOF07aWYodSYmdSE9PSJaIil7bGV0IGM9YzNlKHUsITEpO01hdGguYWJzKGMpPDMwJiYoYyo9NjApLGQtPTZlNCpjfXJldHVybiBuZXcgRGF0ZShkKX0sc3RyaW5naWZ5OmkoKHt2YWx1ZTpzfSk9PnM/LnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKFQwMDowMDowMCk/XC4wMDBaJC8sIiIpPz8iIiwic3RyaW5naWZ5Iil9fSk7dmFyIE9zZSxNNXQ9ZygoKT0+e0Q5KCk7JHNlKCk7TDkoKTtJdygpO1E0ZSgpO3c1dCgpO2s1dCgpO1M1dCgpO3pzZSgpO0o0ZSgpO0lzZSgpO2wzZSgpO2QzZSgpO09zZT1bJGMsRGMsTTAsRnAsQXNlLE5zZSxpM2UscjNlLG8zZSxuM2UsZTNlLHQzZSxhM2UsSTksVGMsTjksQTksUjkscXcsancseTNdfSk7ZnVuY3Rpb24gVncocyxlLHQpe2xldCBhPXo1dC5nZXQoZSk7aWYoYSYmIXMpcmV0dXJuIHQmJiFhLmluY2x1ZGVzKFRjKT9hLmNvbmNhdChUYyk6YS5zbGljZSgpO2xldCByPWE7aWYoIXIpaWYoQXJyYXkuaXNBcnJheShzKSlyPVtdO2Vsc2V7bGV0IG49QXJyYXkuZnJvbSh6NXQua2V5cygpKS5maWx0ZXIobz0+byE9PSJ5YW1sMTEiKS5tYXAobz0+SlNPTi5zdHJpbmdpZnkobykpLmpvaW4oIiwgIik7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHNjaGVtYSAiJHtlfSI7IHVzZSBvbmUgb2YgJHtufSBvciBkZWZpbmUgY3VzdG9tVGFncyBhcnJheWApfWlmKEFycmF5LmlzQXJyYXkocykpZm9yKGxldCBuIG9mIHMpcj1yLmNvbmNhdChuKTtlbHNlIHR5cGVvZiBzPT0iZnVuY3Rpb24iJiYocj1zKHIuc2xpY2UoKSkpO3JldHVybiB0JiYocj1yLmNvbmNhdChUYykpLHIucmVkdWNlKChuLG8pPT57bGV0IGw9dHlwZW9mIG89PSJzdHJpbmciP0M1dFtvXTpvO2lmKCFsKXtsZXQgcD1KU09OLnN0cmluZ2lmeShvKSxkPU9iamVjdC5rZXlzKEM1dCkubWFwKHU9PkpTT04uc3RyaW5naWZ5KHUpKS5qb2luKCIsICIpO3Rocm93IG5ldyBFcnJvcihgVW5rbm93biBjdXN0b20gdGFnICR7cH07IHVzZSBvbmUgb2YgJHtkfWApfXJldHVybiBuLmluY2x1ZGVzKGwpfHxuLnB1c2gobCksbn0sW10pfXZhciB6NXQsQzV0LHUzZSxUNXQ9ZygoKT0+e0Q5KCk7JHNlKCk7TDkoKTtJdygpO1c0ZSgpO0c0ZSgpO1k0ZSgpO2I1dCgpO3g1dCgpO1E0ZSgpO3pzZSgpO0o0ZSgpO0lzZSgpO001dCgpO2wzZSgpO2QzZSgpO3o1dD1uZXcgTWFwKFtbImNvcmUiLFo0ZV0sWyJmYWlsc2FmZSIsWyRjLERjLE0wXV0sWyJqc29uIixYNGVdLFsieWFtbDExIixPc2VdLFsieWFtbC0xLjEiLE9zZV1dKSxDNXQ9e2JpbmFyeTpJOSxib29sOkU5LGZsb2F0OlJ3LGZsb2F0RXhwOk53LGZsb2F0TmFOOkF3LGZsb2F0VGltZTpqdyxpbnQ6RncsaW50SGV4OkJ3LGludE9jdDpPdyxpbnRUaW1lOnF3LG1hcDokYyxtZXJnZTpUYyxudWxsOkZwLG9tYXA6TjkscGFpcnM6QTksc2VxOkRjLHNldDpSOSx0aW1lc3RhbXA6eTN9LHUzZT17InRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSI6STksInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIjpUYywidGFnOnlhbWwub3JnLDIwMDI6b21hcCI6TjksInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIjpBOSwidGFnOnlhbWwub3JnLDIwMDI6c2V0IjpSOSwidGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wIjp5M307aShWdywiZ2V0VGFncyIpfSk7dmFyIERBYSxCcCxwM2U9ZygoKT0+e3VzKCk7RDkoKTtMOSgpO0l3KCk7VDV0KCk7REFhPWkoKHMsZSk9PnMua2V5PGUua2V5Py0xOnMua2V5PmUua2V5PzE6MCwic29ydE1hcEVudHJpZXNCeUtleSIpLEJwPWNsYXNzIHN7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3Ioe2NvbXBhdDplLGN1c3RvbVRhZ3M6dCxtZXJnZTphLHJlc29sdmVLbm93blRhZ3M6cixzY2hlbWE6bixzb3J0TWFwRW50cmllczpvLHRvU3RyaW5nRGVmYXVsdHM6bH0pe3RoaXMuY29tcGF0PUFycmF5LmlzQXJyYXkoZSk/VncoZSwiY29tcGF0Iik6ZT9WdyhudWxsLGUpOm51bGwsdGhpcy5uYW1lPXR5cGVvZiBuPT0ic3RyaW5nIiYmbnx8ImNvcmUiLHRoaXMua25vd25UYWdzPXI/dTNlOnt9LHRoaXMudGFncz1Wdyh0LHRoaXMubmFtZSxhKSx0aGlzLnRvU3RyaW5nT3B0aW9ucz1sPz9udWxsLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHpjLHt2YWx1ZTokY30pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGJsLHt2YWx1ZTpNMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHVkLHt2YWx1ZTpEY30pLHRoaXMuc29ydE1hcEVudHJpZXM9dHlwZW9mIG89PSJmdW5jdGlvbiI/bzpvPT09ITA/REFhOm51bGx9Y2xvbmUoKXtsZXQgZT1PYmplY3QuY3JlYXRlKHMucHJvdG90eXBlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHRoaXMpKTtyZXR1cm4gZS50YWdzPXRoaXMudGFncy5zbGljZSgpLGV9fX0pO2Z1bmN0aW9uIGgzZShzLGUpe2xldCB0PVtdLGE9ZS5kaXJlY3RpdmVzPT09ITA7aWYoZS5kaXJlY3RpdmVzIT09ITEmJnMuZGlyZWN0aXZlcyl7bGV0IHA9cy5kaXJlY3RpdmVzLnRvU3RyaW5nKHMpO3A/KHQucHVzaChwKSxhPSEwKTpzLmRpcmVjdGl2ZXMuZG9jU3RhcnQmJihhPSEwKX1hJiZ0LnB1c2goIi0tLSIpO2xldCByPSR3KHMsZSkse2NvbW1lbnRTdHJpbmc6bn09ci5vcHRpb25zO2lmKHMuY29tbWVudEJlZm9yZSl7dC5sZW5ndGghPT0xJiZ0LnVuc2hpZnQoIiIpO2xldCBwPW4ocy5jb21tZW50QmVmb3JlKTt0LnVuc2hpZnQocWwocCwiIikpfWxldCBvPSExLGw9bnVsbDtpZihzLmNvbnRlbnRzKXtpZihJYShzLmNvbnRlbnRzKSl7aWYocy5jb250ZW50cy5zcGFjZUJlZm9yZSYmYSYmdC5wdXNoKCIiKSxzLmNvbnRlbnRzLmNvbW1lbnRCZWZvcmUpe2xldCB1PW4ocy5jb250ZW50cy5jb21tZW50QmVmb3JlKTt0LnB1c2gocWwodSwiIikpfXIuZm9yY2VCbG9ja0luZGVudD0hIXMuY29tbWVudCxsPXMuY29udGVudHMuY29tbWVudH1sZXQgcD1sP3ZvaWQgMDooKT0+bz0hMCxkPW1kKHMuY29udGVudHMsciwoKT0+bD1udWxsLHApO2wmJihkKz1MMShkLCIiLG4obCkpKSwoZFswXT09PSJ8Inx8ZFswXT09PSI+IikmJnRbdC5sZW5ndGgtMV09PT0iLS0tIj90W3QubGVuZ3RoLTFdPWAtLS0gJHtkfWA6dC5wdXNoKGQpfWVsc2UgdC5wdXNoKG1kKHMuY29udGVudHMscikpO2lmKHMuZGlyZWN0aXZlcz8uZG9jRW5kKWlmKHMuY29tbWVudCl7bGV0IHA9bihzLmNvbW1lbnQpO3AuaW5jbHVkZXMoYApgKT8odC5wdXNoKCIuLi4iKSx0LnB1c2gocWwocCwiIikpKTp0LnB1c2goYC4uLiAke3B9YCl9ZWxzZSB0LnB1c2goIi4uLiIpO2Vsc2V7bGV0IHA9cy5jb21tZW50O3AmJm8mJihwPXAucmVwbGFjZSgvXlxuKy8sIiIpKSxwJiYoKCFvfHxsKSYmdFt0Lmxlbmd0aC0xXSE9PSIiJiZ0LnB1c2goIiIpLHQucHVzaChxbChuKHApLCIiKSkpfXJldHVybiB0LmpvaW4oYApgKStgCmB9dmFyICQ1dD1nKCgpPT57dXMoKTtEdygpO013KCk7aShoM2UsInN0cmluZ2lmeURvY3VtZW50Iil9KTtmdW5jdGlvbiBPOShzKXtpZihkcyhzKSlyZXR1cm4hMDt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGEgWUFNTCBjb2xsZWN0aW9uIGFzIGRvY3VtZW50IGNvbnRlbnRzIil9dmFyIExjLFV3PWcoKCk9PntrdygpO3hzZSgpO3VzKCk7TnAoKTtBcCgpO3AzZSgpOyQ1dCgpO2dzZSgpO040ZSgpO193KCk7STRlKCk7TGM9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEb2N1bWVudCIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmNvbW1lbnRCZWZvcmU9bnVsbCx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEpvLHt2YWx1ZTp2d30pO2xldCByPW51bGw7dHlwZW9mIHQ9PSJmdW5jdGlvbiJ8fEFycmF5LmlzQXJyYXkodCk/cj10OmE9PT12b2lkIDAmJnQmJihhPXQsdD12b2lkIDApO2xldCBuPU9iamVjdC5hc3NpZ24oe2ludEFzQmlnSW50OiExLGtlZXBTb3VyY2VUb2tlbnM6ITEsbG9nTGV2ZWw6Indhcm4iLHByZXR0eUVycm9yczohMCxzdHJpY3Q6ITAsc3RyaW5nS2V5czohMSx1bmlxdWVLZXlzOiEwLHZlcnNpb246IjEuMiJ9LGEpO3RoaXMub3B0aW9ucz1uO2xldHt2ZXJzaW9uOm99PW47YT8uX2RpcmVjdGl2ZXM/KHRoaXMuZGlyZWN0aXZlcz1hLl9kaXJlY3RpdmVzLmF0RG9jdW1lbnQoKSx0aGlzLmRpcmVjdGl2ZXMueWFtbC5leHBsaWNpdCYmKG89dGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbikpOnRoaXMuZGlyZWN0aXZlcz1uZXcgRDEoe3ZlcnNpb246b30pLHRoaXMuc2V0U2NoZW1hKG8sYSksdGhpcy5jb250ZW50cz1lPT09dm9pZCAwP251bGw6dGhpcy5jcmVhdGVOb2RlKGUscixhKX1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUocy5wcm90b3R5cGUse1tKb106e3ZhbHVlOnZ3fX0pO3JldHVybiBlLmNvbW1lbnRCZWZvcmU9dGhpcy5jb21tZW50QmVmb3JlLGUuY29tbWVudD10aGlzLmNvbW1lbnQsZS5lcnJvcnM9dGhpcy5lcnJvcnMuc2xpY2UoKSxlLndhcm5pbmdzPXRoaXMud2FybmluZ3Muc2xpY2UoKSxlLm9wdGlvbnM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLm9wdGlvbnMpLHRoaXMuZGlyZWN0aXZlcyYmKGUuZGlyZWN0aXZlcz10aGlzLmRpcmVjdGl2ZXMuY2xvbmUoKSksZS5zY2hlbWE9dGhpcy5zY2hlbWEuY2xvbmUoKSxlLmNvbnRlbnRzPUlhKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuY2xvbmUoZS5zY2hlbWEpOnRoaXMuY29udGVudHMsdGhpcy5yYW5nZSYmKGUucmFuZ2U9dGhpcy5yYW5nZS5zbGljZSgpKSxlfWFkZChlKXtPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5hZGQoZSl9YWRkSW4oZSx0KXtPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5hZGRJbihlLHQpfWNyZWF0ZUFsaWFzKGUsdCl7aWYoIWUuYW5jaG9yKXtsZXQgYT1mc2UodGhpcyk7ZS5hbmNob3I9IXR8fGEuaGFzKHQpP21zZSh0fHwiYSIsYSk6dH1yZXR1cm4gbmV3IENjKGUuYW5jaG9yKX1jcmVhdGVOb2RlKGUsdCxhKXtsZXQgcjtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIillPXQuY2FsbCh7IiI6ZX0sIiIsZSkscj10O2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGY9aShNPT50eXBlb2YgTT09Im51bWJlciJ8fE0gaW5zdGFuY2VvZiBTdHJpbmd8fE0gaW5zdGFuY2VvZiBOdW1iZXIsImtleVRvU3RyIikseT10LmZpbHRlcihmKS5tYXAoU3RyaW5nKTt5Lmxlbmd0aD4wJiYodD10LmNvbmNhdCh5KSkscj10fWVsc2UgYT09PXZvaWQgMCYmdCYmKGE9dCx0PXZvaWQgMCk7bGV0e2FsaWFzRHVwbGljYXRlT2JqZWN0czpuLGFuY2hvclByZWZpeDpvLGZsb3c6bCxrZWVwVW5kZWZpbmVkOnAsb25UYWdPYmo6ZCx0YWc6dX09YT8/e30se29uQW5jaG9yOmMsc2V0QW5jaG9yczpiLHNvdXJjZU9iamVjdHM6dn09QTRlKHRoaXMsb3x8ImEiKSx4PXthbGlhc0R1cGxpY2F0ZU9iamVjdHM6bj8/ITAsa2VlcFVuZGVmaW5lZDpwPz8hMSxvbkFuY2hvcjpjLG9uVGFnT2JqOmQscmVwbGFjZXI6cixzY2hlbWE6dGhpcy5zY2hlbWEsc291cmNlT2JqZWN0czp2fSxtPWhkKGUsdSx4KTtyZXR1cm4gbCYmZHMobSkmJihtLmZsb3c9ITApLGIoKSxtfWNyZWF0ZVBhaXIoZSx0LGE9e30pe2xldCByPXRoaXMuY3JlYXRlTm9kZShlLG51bGwsYSksbj10aGlzLmNyZWF0ZU5vZGUodCxudWxsLGEpO3JldHVybiBuZXcgY2kocixuKX1kZWxldGUoZSl7cmV0dXJuIE85KHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZGVsZXRlKGUpOiExfWRlbGV0ZUluKGUpe3JldHVybiBnMyhlKT90aGlzLmNvbnRlbnRzPT1udWxsPyExOih0aGlzLmNvbnRlbnRzPW51bGwsITApOk85KHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZGVsZXRlSW4oZSk6ITF9Z2V0KGUsdCl7cmV0dXJuIGRzKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZ2V0KGUsdCk6dm9pZCAwfWdldEluKGUsdCl7cmV0dXJuIGczKGUpPyF0JiZsYSh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLnZhbHVlOnRoaXMuY29udGVudHM6ZHModGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5nZXRJbihlLHQpOnZvaWQgMH1oYXMoZSl7cmV0dXJuIGRzKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuaGFzKGUpOiExfWhhc0luKGUpe3JldHVybiBnMyhlKT90aGlzLmNvbnRlbnRzIT09dm9pZCAwOmRzKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuaGFzSW4oZSk6ITF9c2V0KGUsdCl7dGhpcy5jb250ZW50cz09bnVsbD90aGlzLmNvbnRlbnRzPXo5KHRoaXMuc2NoZW1hLFtlXSx0KTpPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5zZXQoZSx0KX1zZXRJbihlLHQpe2czKGUpP3RoaXMuY29udGVudHM9dDp0aGlzLmNvbnRlbnRzPT1udWxsP3RoaXMuY29udGVudHM9ejkodGhpcy5zY2hlbWEsQXJyYXkuZnJvbShlKSx0KTpPOSh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5zZXRJbihlLHQpfXNldFNjaGVtYShlLHQ9e30pe3R5cGVvZiBlPT0ibnVtYmVyIiYmKGU9U3RyaW5nKGUpKTtsZXQgYTtzd2l0Y2goZSl7Y2FzZSIxLjEiOnRoaXMuZGlyZWN0aXZlcz90aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uPSIxLjEiOnRoaXMuZGlyZWN0aXZlcz1uZXcgRDEoe3ZlcnNpb246IjEuMSJ9KSxhPXtyZXNvbHZlS25vd25UYWdzOiExLHNjaGVtYToieWFtbC0xLjEifTticmVhaztjYXNlIjEuMiI6Y2FzZSJuZXh0Ijp0aGlzLmRpcmVjdGl2ZXM/dGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbj1lOnRoaXMuZGlyZWN0aXZlcz1uZXcgRDEoe3ZlcnNpb246ZX0pLGE9e3Jlc29sdmVLbm93blRhZ3M6ITAsc2NoZW1hOiJjb3JlIn07YnJlYWs7Y2FzZSBudWxsOnRoaXMuZGlyZWN0aXZlcyYmZGVsZXRlIHRoaXMuZGlyZWN0aXZlcyxhPW51bGw7YnJlYWs7ZGVmYXVsdDp7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZSk7dGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAnMS4xJywgJzEuMicgb3IgbnVsbCBhcyBmaXJzdCBhcmd1bWVudCwgYnV0IGZvdW5kOiAke3J9YCl9fWlmKHQuc2NoZW1hIGluc3RhbmNlb2YgT2JqZWN0KXRoaXMuc2NoZW1hPXQuc2NoZW1hO2Vsc2UgaWYoYSl0aGlzLnNjaGVtYT1uZXcgQnAoT2JqZWN0LmFzc2lnbihhLHQpKTtlbHNlIHRocm93IG5ldyBFcnJvcigiV2l0aCBhIG51bGwgWUFNTCB2ZXJzaW9uLCB0aGUgeyBzY2hlbWE6IFNjaGVtYSB9IG9wdGlvbiBpcyByZXF1aXJlZCIpfXRvSlMoe2pzb246ZSxqc29uQXJnOnQsbWFwQXNNYXA6YSxtYXhBbGlhc0NvdW50OnIsb25BbmNob3I6bixyZXZpdmVyOm99PXt9KXtsZXQgbD17YW5jaG9yczpuZXcgTWFwLGRvYzp0aGlzLGtlZXA6IWUsbWFwQXNNYXA6YT09PSEwLG1hcEtleVdhcm5lZDohMSxtYXhBbGlhc0NvdW50OnR5cGVvZiByPT0ibnVtYmVyIj9yOjEwMH0scD1Tcih0aGlzLmNvbnRlbnRzLHQ/PyIiLGwpO2lmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKWZvcihsZXR7Y291bnQ6ZCxyZXM6dX1vZiBsLmFuY2hvcnMudmFsdWVzKCkpbih1LGQpO3JldHVybiB0eXBlb2Ygbz09ImZ1bmN0aW9uIj9rMChvLHsiIjpwfSwiIixwKTpwfXRvSlNPTihlLHQpe3JldHVybiB0aGlzLnRvSlMoe2pzb246ITAsanNvbkFyZzplLG1hcEFzTWFwOiExLG9uQW5jaG9yOnR9KX10b1N0cmluZyhlPXt9KXtpZih0aGlzLmVycm9ycy5sZW5ndGg+MCl0aHJvdyBuZXcgRXJyb3IoIkRvY3VtZW50IHdpdGggZXJyb3JzIGNhbm5vdCBiZSBzdHJpbmdpZmllZCIpO2lmKCJpbmRlbnQiaW4gZSYmKCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZW50KXx8TnVtYmVyKGUuaW5kZW50KTw9MCkpe2xldCB0PUpTT04uc3RyaW5naWZ5KGUuaW5kZW50KTt0aHJvdyBuZXcgRXJyb3IoYCJpbmRlbnQiIG9wdGlvbiBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgbm90ICR7dH1gKX1yZXR1cm4gaDNlKHRoaXMsZSl9fTtpKE85LCJhc3NlcnRDb2xsZWN0aW9uIil9KTt2YXIgSHAsa24scXAsRjksV3c9ZygoKT0+e0hwPWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiWUFNTEVycm9yIil9Y29uc3RydWN0b3IoZSx0LGEscil7c3VwZXIoKSx0aGlzLm5hbWU9ZSx0aGlzLmNvZGU9YSx0aGlzLm1lc3NhZ2U9cix0aGlzLnBvcz10fX0sa249Y2xhc3MgZXh0ZW5kcyBIcHtzdGF0aWN7aSh0aGlzLCJZQU1MUGFyc2VFcnJvciIpfWNvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcigiWUFNTFBhcnNlRXJyb3IiLGUsdCxhKX19LHFwPWNsYXNzIGV4dGVuZHMgSHB7c3RhdGlje2kodGhpcywiWUFNTFdhcm5pbmciKX1jb25zdHJ1Y3RvcihlLHQsYSl7c3VwZXIoIllBTUxXYXJuaW5nIixlLHQsYSl9fSxGOT1pKChzLGUpPT50PT57aWYodC5wb3NbMF09PT0tMSlyZXR1cm47dC5saW5lUG9zPXQucG9zLm1hcChsPT5lLmxpbmVQb3MobCkpO2xldHtsaW5lOmEsY29sOnJ9PXQubGluZVBvc1swXTt0Lm1lc3NhZ2UrPWAgYXQgbGluZSAke2F9LCBjb2x1bW4gJHtyfWA7bGV0IG49ci0xLG89cy5zdWJzdHJpbmcoZS5saW5lU3RhcnRzW2EtMV0sZS5saW5lU3RhcnRzW2FdKS5yZXBsYWNlKC9bXG5ccl0rJC8sIiIpO2lmKG4+PTYwJiZvLmxlbmd0aD44MCl7bGV0IGw9TWF0aC5taW4obi0zOSxvLmxlbmd0aC03OSk7bz0iXHUyMDI2IitvLnN1YnN0cmluZyhsKSxuLT1sLTF9aWYoby5sZW5ndGg+ODAmJihvPW8uc3Vic3RyaW5nKDAsNzkpKyJcdTIwMjYiKSxhPjEmJi9eICokLy50ZXN0KG8uc3Vic3RyaW5nKDAsbikpKXtsZXQgbD1zLnN1YnN0cmluZyhlLmxpbmVTdGFydHNbYS0yXSxlLmxpbmVTdGFydHNbYS0xXSk7bC5sZW5ndGg+ODAmJihsPWwuc3Vic3RyaW5nKDAsNzkpK2BcdTIwMjYKYCksbz1sK299aWYoL1teIF0vLnRlc3Qobykpe2xldCBsPTEscD10LmxpbmVQb3NbMV07cD8ubGluZT09PWEmJnAuY29sPnImJihsPU1hdGgubWF4KDEsTWF0aC5taW4ocC5jb2wtciw4MC1uKSkpO2xldCBkPSIgIi5yZXBlYXQobikrIl4iLnJlcGVhdChsKTt0Lm1lc3NhZ2UrPWA6Cgoke299CiR7ZH0KYH19LCJwcmV0dGlmeUVycm9yIil9KTtmdW5jdGlvbiBFMShzLHtmbG93OmUsaW5kaWNhdG9yOnQsbmV4dDphLG9mZnNldDpyLG9uRXJyb3I6bixwYXJlbnRJbmRlbnQ6byxzdGFydE9uTmV3bGluZTpsfSl7bGV0IHA9ITEsZD1sLHU9bCxjPSIiLGI9IiIsdj0hMSx4PSExLG09bnVsbCxmPW51bGwseT1udWxsLE09bnVsbCx6PW51bGwsTj1udWxsLEM9bnVsbDtmb3IobGV0ICQgb2Ygcylzd2l0Y2goeCYmKCQudHlwZSE9PSJzcGFjZSImJiQudHlwZSE9PSJuZXdsaW5lIiYmJC50eXBlIT09ImNvbW1hIiYmbigkLm9mZnNldCwiTUlTU0lOR19DSEFSIiwiVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlIikseD0hMSksbSYmKGQmJiQudHlwZSE9PSJjb21tZW50IiYmJC50eXBlIT09Im5ld2xpbmUiJiZuKG0sIlRBQl9BU19JTkRFTlQiLCJUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvbiIpLG09bnVsbCksJC50eXBlKXtjYXNlInNwYWNlIjohZSYmKHQhPT0iZG9jLXN0YXJ0Inx8YT8udHlwZSE9PSJmbG93LWNvbGxlY3Rpb24iKSYmJC5zb3VyY2UuaW5jbHVkZXMoIgkiKSYmKG09JCksdT0hMDticmVhaztjYXNlImNvbW1lbnQiOnt1fHxuKCQsIk1JU1NJTkdfQ0hBUiIsIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMiKTtsZXQgRT0kLnNvdXJjZS5zdWJzdHJpbmcoMSl8fCIgIjtjP2MrPWIrRTpjPUUsYj0iIixkPSExO2JyZWFrfWNhc2UibmV3bGluZSI6ZD9jP2MrPSQuc291cmNlOighTnx8dCE9PSJzZXEtaXRlbS1pbmQiKSYmKHA9ITApOmIrPSQuc291cmNlLGQ9ITAsdj0hMCwoZnx8eSkmJihNPSQpLHU9ITA7YnJlYWs7Y2FzZSJhbmNob3IiOmYmJm4oJCwiTVVMVElQTEVfQU5DSE9SUyIsIkEgbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSBhbmNob3IiKSwkLnNvdXJjZS5lbmRzV2l0aCgiOiIpJiZuKCQub2Zmc2V0KyQuc291cmNlLmxlbmd0aC0xLCJCQURfQUxJQVMiLCJBbmNob3IgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzIiwhMCksZj0kLEM/PyhDPSQub2Zmc2V0KSxkPSExLHU9ITEseD0hMDticmVhaztjYXNlInRhZyI6e3kmJm4oJCwiTVVMVElQTEVfVEFHUyIsIkEgbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSB0YWciKSx5PSQsQz8/KEM9JC5vZmZzZXQpLGQ9ITEsdT0hMSx4PSEwO2JyZWFrfWNhc2UgdDooZnx8eSkmJm4oJCwiQkFEX1BST1BfT1JERVIiLGBBbmNob3JzIGFuZCB0YWdzIG11c3QgYmUgYWZ0ZXIgdGhlICR7JC5zb3VyY2V9IGluZGljYXRvcmApLE4mJm4oJCwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgJHskLnNvdXJjZX0gaW4gJHtlPz8iY29sbGVjdGlvbiJ9YCksTj0kLGQ9dD09PSJzZXEtaXRlbS1pbmQifHx0PT09ImV4cGxpY2l0LWtleS1pbmQiLHU9ITE7YnJlYWs7Y2FzZSJjb21tYSI6aWYoZSl7eiYmbigkLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAsIGluICR7ZX1gKSx6PSQsZD0hMSx1PSExO2JyZWFrfWRlZmF1bHQ6bigkLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAkeyQudHlwZX0gdG9rZW5gKSxkPSExLHU9ITF9bGV0IF89c1tzLmxlbmd0aC0xXSxPPV8/Xy5vZmZzZXQrXy5zb3VyY2UubGVuZ3RoOnI7cmV0dXJuIHgmJmEmJmEudHlwZSE9PSJzcGFjZSImJmEudHlwZSE9PSJuZXdsaW5lIiYmYS50eXBlIT09ImNvbW1hIiYmKGEudHlwZSE9PSJzY2FsYXIifHxhLnNvdXJjZSE9PSIiKSYmbihhLm9mZnNldCwiTUlTU0lOR19DSEFSIiwiVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlIiksbSYmKGQmJm0uaW5kZW50PD1vfHxhPy50eXBlPT09ImJsb2NrLW1hcCJ8fGE/LnR5cGU9PT0iYmxvY2stc2VxIikmJm4obSwiVEFCX0FTX0lOREVOVCIsIlRhYnMgYXJlIG5vdCBhbGxvd2VkIGFzIGluZGVudGF0aW9uIikse2NvbW1hOnosZm91bmQ6TixzcGFjZUJlZm9yZTpwLGNvbW1lbnQ6YyxoYXNOZXdsaW5lOnYsYW5jaG9yOmYsdGFnOnksbmV3bGluZUFmdGVyUHJvcDpNLGVuZDpPLHN0YXJ0OkM/P099fXZhciBHdz1nKCgpPT57aShFMSwicmVzb2x2ZVByb3BzIil9KTtmdW5jdGlvbiB6MChzKXtpZighcylyZXR1cm4gbnVsbDtzd2l0Y2gocy50eXBlKXtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6aWYocy5zb3VyY2UuaW5jbHVkZXMoYApgKSlyZXR1cm4hMDtpZihzLmVuZCl7Zm9yKGxldCBlIG9mIHMuZW5kKWlmKGUudHlwZT09PSJuZXdsaW5lIilyZXR1cm4hMH1yZXR1cm4hMTtjYXNlImZsb3ctY29sbGVjdGlvbiI6Zm9yKGxldCBlIG9mIHMuaXRlbXMpe2ZvcihsZXQgdCBvZiBlLnN0YXJ0KWlmKHQudHlwZT09PSJuZXdsaW5lIilyZXR1cm4hMDtpZihlLnNlcCl7Zm9yKGxldCB0IG9mIGUuc2VwKWlmKHQudHlwZT09PSJuZXdsaW5lIilyZXR1cm4hMH1pZih6MChlLmtleSl8fHowKGUudmFsdWUpKXJldHVybiEwfXJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciBGc2U9ZygoKT0+e2koejAsImNvbnRhaW5zTmV3bGluZSIpfSk7ZnVuY3Rpb24gQjkocyxlLHQpe2lmKGU/LnR5cGU9PT0iZmxvdy1jb2xsZWN0aW9uIil7bGV0IGE9ZS5lbmRbMF07YS5pbmRlbnQ9PT1zJiYoYS5zb3VyY2U9PT0iXSJ8fGEuc291cmNlPT09In0iKSYmejAoZSkmJnQoYSwiQkFEX0lOREVOVCIsIkZsb3cgZW5kIGluZGljYXRvciBzaG91bGQgYmUgbW9yZSBpbmRlbnRlZCB0aGFuIHBhcmVudCIsITApfX12YXIgZjNlPWcoKCk9PntGc2UoKTtpKEI5LCJmbG93SW5kZW50Q2hlY2siKX0pO2Z1bmN0aW9uIEt3KHMsZSx0KXtsZXR7dW5pcXVlS2V5czphfT1zLm9wdGlvbnM7aWYoYT09PSExKXJldHVybiExO2xldCByPXR5cGVvZiBhPT0iZnVuY3Rpb24iP2E6KG4sbyk9Pm49PT1vfHxsYShuKSYmbGEobykmJm4udmFsdWU9PT1vLnZhbHVlO3JldHVybiBlLnNvbWUobj0+cihuLmtleSx0KSl9dmFyIG0zZT1nKCgpPT57dXMoKTtpKEt3LCJtYXBJbmNsdWRlcyIpfSk7ZnVuY3Rpb24gZzNlKHtjb21wb3NlTm9kZTpzLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxhLHIsbil7bGV0IG89bj8ubm9kZUNsYXNzPz95aSxsPW5ldyBvKHQuc2NoZW1hKTt0LmF0Um9vdCYmKHQuYXRSb290PSExKTtsZXQgcD1hLm9mZnNldCxkPW51bGw7Zm9yKGxldCB1IG9mIGEuaXRlbXMpe2xldHtzdGFydDpjLGtleTpiLHNlcDp2LHZhbHVlOnh9PXUsbT1FMShjLHtpbmRpY2F0b3I6ImV4cGxpY2l0LWtleS1pbmQiLG5leHQ6Yj8/dj8uWzBdLG9mZnNldDpwLG9uRXJyb3I6cixwYXJlbnRJbmRlbnQ6YS5pbmRlbnQsc3RhcnRPbk5ld2xpbmU6ITB9KSxmPSFtLmZvdW5kO2lmKGYpe2lmKGImJihiLnR5cGU9PT0iYmxvY2stc2VxIj9yKHAsIkJMT0NLX0FTX0lNUExJQ0lUX0tFWSIsIkEgYmxvY2sgc2VxdWVuY2UgbWF5IG5vdCBiZSB1c2VkIGFzIGFuIGltcGxpY2l0IG1hcCBrZXkiKToiaW5kZW50ImluIGImJmIuaW5kZW50IT09YS5pbmRlbnQmJnIocCwiQkFEX0lOREVOVCIsRDV0KSksIW0uYW5jaG9yJiYhbS50YWcmJiF2KXtkPW0uZW5kLG0uY29tbWVudCYmKGwuY29tbWVudD9sLmNvbW1lbnQrPWAKYCttLmNvbW1lbnQ6bC5jb21tZW50PW0uY29tbWVudCk7Y29udGludWV9KG0ubmV3bGluZUFmdGVyUHJvcHx8ejAoYikpJiZyKGI/P2NbYy5sZW5ndGgtMV0sIk1VTFRJTElORV9JTVBMSUNJVF9LRVkiLCJJbXBsaWNpdCBrZXlzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZSIpfWVsc2UgbS5mb3VuZD8uaW5kZW50IT09YS5pbmRlbnQmJnIocCwiQkFEX0lOREVOVCIsRDV0KTt0LmF0S2V5PSEwO2xldCB5PW0uZW5kLE09Yj9zKHQsYixtLHIpOmUodCx5LGMsbnVsbCxtLHIpO3Quc2NoZW1hLmNvbXBhdCYmQjkoYS5pbmRlbnQsYixyKSx0LmF0S2V5PSExLEt3KHQsbC5pdGVtcyxNKSYmcih5LCJEVVBMSUNBVEVfS0VZIiwiTWFwIGtleXMgbXVzdCBiZSB1bmlxdWUiKTtsZXQgej1FMSh2Pz9bXSx7aW5kaWNhdG9yOiJtYXAtdmFsdWUtaW5kIixuZXh0Ongsb2Zmc2V0Ok0ucmFuZ2VbMl0sb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohYnx8Yi50eXBlPT09ImJsb2NrLXNjYWxhciJ9KTtpZihwPXouZW5kLHouZm91bmQpe2YmJih4Py50eXBlPT09ImJsb2NrLW1hcCImJiF6Lmhhc05ld2xpbmUmJnIocCwiQkxPQ0tfQVNfSU1QTElDSVRfS0VZIiwiTmVzdGVkIG1hcHBpbmdzIGFyZSBub3QgYWxsb3dlZCBpbiBjb21wYWN0IG1hcHBpbmdzIiksdC5vcHRpb25zLnN0cmljdCYmbS5zdGFydDx6LmZvdW5kLm9mZnNldC0xMDI0JiZyKE0ucmFuZ2UsIktFWV9PVkVSXzEwMjRfQ0hBUlMiLCJUaGUgOiBpbmRpY2F0b3IgbXVzdCBiZSBhdCBtb3N0IDEwMjQgY2hhcnMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIGFuIGltcGxpY2l0IGJsb2NrIG1hcHBpbmcga2V5IikpO2xldCBOPXg/cyh0LHgseixyKTplKHQscCx2LG51bGwseixyKTt0LnNjaGVtYS5jb21wYXQmJkI5KGEuaW5kZW50LHgscikscD1OLnJhbmdlWzJdO2xldCBDPW5ldyBjaShNLE4pO3Qub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoQy5zcmNUb2tlbj11KSxsLml0ZW1zLnB1c2goQyl9ZWxzZXtmJiZyKE0ucmFuZ2UsIk1JU1NJTkdfQ0hBUiIsIkltcGxpY2l0IG1hcCBrZXlzIG5lZWQgdG8gYmUgZm9sbG93ZWQgYnkgbWFwIHZhbHVlcyIpLHouY29tbWVudCYmKE0uY29tbWVudD9NLmNvbW1lbnQrPWAKYCt6LmNvbW1lbnQ6TS5jb21tZW50PXouY29tbWVudCk7bGV0IE49bmV3IGNpKE0pO3Qub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoTi5zcmNUb2tlbj11KSxsLml0ZW1zLnB1c2goTil9fXJldHVybiBkJiZkPHAmJnIoZCwiSU1QT1NTSUJMRSIsIk1hcCBjb21tZW50IHdpdGggdHJhaWxpbmcgY29udGVudCIpLGwucmFuZ2U9W2Eub2Zmc2V0LHAsZD8/cF0sbH12YXIgRDV0LEw1dD1nKCgpPT57TnAoKTtScCgpO0d3KCk7RnNlKCk7ZjNlKCk7bTNlKCk7RDV0PSJBbGwgbWFwcGluZyBpdGVtcyBtdXN0IHN0YXJ0IGF0IHRoZSBzYW1lIGNvbHVtbiI7aShnM2UsInJlc29sdmVCbG9ja01hcCIpfSk7ZnVuY3Rpb24gYjNlKHtjb21wb3NlTm9kZTpzLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxhLHIsbil7bGV0IG89bj8ubm9kZUNsYXNzPz9WcixsPW5ldyBvKHQuc2NoZW1hKTt0LmF0Um9vdCYmKHQuYXRSb290PSExKSx0LmF0S2V5JiYodC5hdEtleT0hMSk7bGV0IHA9YS5vZmZzZXQsZD1udWxsO2ZvcihsZXR7c3RhcnQ6dSx2YWx1ZTpjfW9mIGEuaXRlbXMpe2xldCBiPUUxKHUse2luZGljYXRvcjoic2VxLWl0ZW0taW5kIixuZXh0OmMsb2Zmc2V0OnAsb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMH0pO2lmKCFiLmZvdW5kKWlmKGIuYW5jaG9yfHxiLnRhZ3x8YyljPy50eXBlPT09ImJsb2NrLXNlcSI/cihiLmVuZCwiQkFEX0lOREVOVCIsIkFsbCBzZXF1ZW5jZSBpdGVtcyBtdXN0IHN0YXJ0IGF0IHRoZSBzYW1lIGNvbHVtbiIpOnIocCwiTUlTU0lOR19DSEFSIiwiU2VxdWVuY2UgaXRlbSB3aXRob3V0IC0gaW5kaWNhdG9yIik7ZWxzZXtkPWIuZW5kLGIuY29tbWVudCYmKGwuY29tbWVudD1iLmNvbW1lbnQpO2NvbnRpbnVlfWxldCB2PWM/cyh0LGMsYixyKTplKHQsYi5lbmQsdSxudWxsLGIscik7dC5zY2hlbWEuY29tcGF0JiZCOShhLmluZGVudCxjLHIpLHA9di5yYW5nZVsyXSxsLml0ZW1zLnB1c2godil9cmV0dXJuIGwucmFuZ2U9W2Eub2Zmc2V0LHAsZD8/cF0sbH12YXIgRTV0PWcoKCk9PntPcCgpO0d3KCk7ZjNlKCk7aShiM2UsInJlc29sdmVCbG9ja1NlcSIpfSk7ZnVuY3Rpb24gUDEocyxlLHQsYSl7bGV0IHI9IiI7aWYocyl7bGV0IG49ITEsbz0iIjtmb3IobGV0IGwgb2Ygcyl7bGV0e3NvdXJjZTpwLHR5cGU6ZH09bDtzd2l0Y2goZCl7Y2FzZSJzcGFjZSI6bj0hMDticmVhaztjYXNlImNvbW1lbnQiOnt0JiYhbiYmYShsLCJNSVNTSU5HX0NIQVIiLCJDb21tZW50cyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHRva2VucyBieSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzIik7bGV0IHU9cC5zdWJzdHJpbmcoMSl8fCIgIjtyP3IrPW8rdTpyPXUsbz0iIjticmVha31jYXNlIm5ld2xpbmUiOnImJihvKz1wKSxuPSEwO2JyZWFrO2RlZmF1bHQ6YShsLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAke2R9IGF0IG5vZGUgZW5kYCl9ZSs9cC5sZW5ndGh9fXJldHVybntjb21tZW50OnIsb2Zmc2V0OmV9fXZhciBIOT1nKCgpPT57aShQMSwicmVzb2x2ZUVuZCIpfSk7ZnVuY3Rpb24geTNlKHtjb21wb3NlTm9kZTpzLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxhLHIsbil7bGV0IG89YS5zdGFydC5zb3VyY2U9PT0ieyIsbD1vPyJmbG93IG1hcCI6ImZsb3cgc2VxdWVuY2UiLHA9bj8ubm9kZUNsYXNzPz8obz95aTpWciksZD1uZXcgcCh0LnNjaGVtYSk7ZC5mbG93PSEwO2xldCB1PXQuYXRSb290O3UmJih0LmF0Um9vdD0hMSksdC5hdEtleSYmKHQuYXRLZXk9ITEpO2xldCBjPWEub2Zmc2V0K2Euc3RhcnQuc291cmNlLmxlbmd0aDtmb3IobGV0IGY9MDtmPGEuaXRlbXMubGVuZ3RoOysrZil7bGV0IHk9YS5pdGVtc1tmXSx7c3RhcnQ6TSxrZXk6eixzZXA6Tix2YWx1ZTpDfT15LF89RTEoTSx7ZmxvdzpsLGluZGljYXRvcjoiZXhwbGljaXQta2V5LWluZCIsbmV4dDp6Pz9OPy5bMF0sb2Zmc2V0OmMsb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMX0pO2lmKCFfLmZvdW5kKXtpZighXy5hbmNob3ImJiFfLnRhZyYmIU4mJiFDKXtmPT09MCYmXy5jb21tYT9yKF8uY29tbWEsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICwgaW4gJHtsfWApOmY8YS5pdGVtcy5sZW5ndGgtMSYmcihfLnN0YXJ0LCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCBlbXB0eSBpdGVtIGluICR7bH1gKSxfLmNvbW1lbnQmJihkLmNvbW1lbnQ/ZC5jb21tZW50Kz1gCmArXy5jb21tZW50OmQuY29tbWVudD1fLmNvbW1lbnQpLGM9Xy5lbmQ7Y29udGludWV9IW8mJnQub3B0aW9ucy5zdHJpY3QmJnowKHopJiZyKHosIk1VTFRJTElORV9JTVBMSUNJVF9LRVkiLCJJbXBsaWNpdCBrZXlzIG9mIGZsb3cgc2VxdWVuY2UgcGFpcnMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lIil9aWYoZj09PTApXy5jb21tYSYmcihfLmNvbW1hLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAsIGluICR7bH1gKTtlbHNlIGlmKF8uY29tbWF8fHIoXy5zdGFydCwiTUlTU0lOR19DSEFSIixgTWlzc2luZyAsIGJldHdlZW4gJHtsfSBpdGVtc2ApLF8uY29tbWVudCl7bGV0IE89IiI7ZTpmb3IobGV0ICQgb2YgTSlzd2l0Y2goJC50eXBlKXtjYXNlImNvbW1hIjpjYXNlInNwYWNlIjpicmVhaztjYXNlImNvbW1lbnQiOk89JC5zb3VyY2Uuc3Vic3RyaW5nKDEpO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfWlmKE8pe2xldCAkPWQuaXRlbXNbZC5pdGVtcy5sZW5ndGgtMV07Q2EoJCkmJigkPSQudmFsdWU/PyQua2V5KSwkLmNvbW1lbnQ/JC5jb21tZW50Kz1gCmArTzokLmNvbW1lbnQ9TyxfLmNvbW1lbnQ9Xy5jb21tZW50LnN1YnN0cmluZyhPLmxlbmd0aCsxKX19aWYoIW8mJiFOJiYhXy5mb3VuZCl7bGV0IE89Qz9zKHQsQyxfLHIpOmUodCxfLmVuZCxOLG51bGwsXyxyKTtkLml0ZW1zLnB1c2goTyksYz1PLnJhbmdlWzJdLHgzZShDKSYmcihPLnJhbmdlLCJCTE9DS19JTl9GTE9XIix2M2UpfWVsc2V7dC5hdEtleT0hMDtsZXQgTz1fLmVuZCwkPXo/cyh0LHosXyxyKTplKHQsTyxNLG51bGwsXyxyKTt4M2UoeikmJnIoJC5yYW5nZSwiQkxPQ0tfSU5fRkxPVyIsdjNlKSx0LmF0S2V5PSExO2xldCBFPUUxKE4/P1tdLHtmbG93OmwsaW5kaWNhdG9yOiJtYXAtdmFsdWUtaW5kIixuZXh0OkMsb2Zmc2V0OiQucmFuZ2VbMl0sb25FcnJvcjpyLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMX0pO2lmKEUuZm91bmQpe2lmKCFvJiYhXy5mb3VuZCYmdC5vcHRpb25zLnN0cmljdCl7aWYoTilmb3IobGV0IFMgb2YgTil7aWYoUz09PUUuZm91bmQpYnJlYWs7aWYoUy50eXBlPT09Im5ld2xpbmUiKXtyKFMsIk1VTFRJTElORV9JTVBMSUNJVF9LRVkiLCJJbXBsaWNpdCBrZXlzIG9mIGZsb3cgc2VxdWVuY2UgcGFpcnMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lIik7YnJlYWt9fV8uc3RhcnQ8RS5mb3VuZC5vZmZzZXQtMTAyNCYmcihFLmZvdW5kLCJLRVlfT1ZFUl8xMDI0X0NIQVJTIiwiVGhlIDogaW5kaWNhdG9yIG11c3QgYmUgYXQgbW9zdCAxMDI0IGNoYXJzIGFmdGVyIHRoZSBzdGFydCBvZiBhbiBpbXBsaWNpdCBmbG93IHNlcXVlbmNlIGtleSIpfX1lbHNlIEMmJigic291cmNlImluIEMmJkMuc291cmNlPy5bMF09PT0iOiI/cihDLCJNSVNTSU5HX0NIQVIiLGBNaXNzaW5nIHNwYWNlIGFmdGVyIDogaW4gJHtsfWApOnIoRS5zdGFydCwiTUlTU0lOR19DSEFSIixgTWlzc2luZyAsIG9yIDogYmV0d2VlbiAke2x9IGl0ZW1zYCkpO2xldCBIPUM/cyh0LEMsRSxyKTpFLmZvdW5kP2UodCxFLmVuZCxOLG51bGwsRSxyKTpudWxsO0g/eDNlKEMpJiZyKEgucmFuZ2UsIkJMT0NLX0lOX0ZMT1ciLHYzZSk6RS5jb21tZW50JiYoJC5jb21tZW50PyQuY29tbWVudCs9YApgK0UuY29tbWVudDokLmNvbW1lbnQ9RS5jb21tZW50KTtsZXQgaz1uZXcgY2koJCxIKTtpZih0Lm9wdGlvbnMua2VlcFNvdXJjZVRva2VucyYmKGsuc3JjVG9rZW49eSksbyl7bGV0IFM9ZDtLdyh0LFMuaXRlbXMsJCkmJnIoTywiRFVQTElDQVRFX0tFWSIsIk1hcCBrZXlzIG11c3QgYmUgdW5pcXVlIiksUy5pdGVtcy5wdXNoKGspfWVsc2V7bGV0IFM9bmV3IHlpKHQuc2NoZW1hKTtTLmZsb3c9ITAsUy5pdGVtcy5wdXNoKGspO2xldCBJPShIPz8kKS5yYW5nZTtTLnJhbmdlPVskLnJhbmdlWzBdLElbMV0sSVsyXV0sZC5pdGVtcy5wdXNoKFMpfWM9SD9ILnJhbmdlWzJdOkUuZW5kfX1sZXQgYj1vPyJ9IjoiXSIsW3YsLi4ueF09YS5lbmQsbT1jO2lmKHY/LnNvdXJjZT09PWIpbT12Lm9mZnNldCt2LnNvdXJjZS5sZW5ndGg7ZWxzZXtsZXQgZj1sWzBdLnRvVXBwZXJDYXNlKCkrbC5zdWJzdHJpbmcoMSkseT11P2Ake2Z9IG11c3QgZW5kIHdpdGggYSAke2J9YDpgJHtmfSBpbiBibG9jayBjb2xsZWN0aW9uIG11c3QgYmUgc3VmZmljaWVudGx5IGluZGVudGVkIGFuZCBlbmQgd2l0aCBhICR7Yn1gO3IoYyx1PyJNSVNTSU5HX0NIQVIiOiJCQURfSU5ERU5UIix5KSx2JiZ2LnNvdXJjZS5sZW5ndGghPT0xJiZ4LnVuc2hpZnQodil9aWYoeC5sZW5ndGg+MCl7bGV0IGY9UDEoeCxtLHQub3B0aW9ucy5zdHJpY3Qscik7Zi5jb21tZW50JiYoZC5jb21tZW50P2QuY29tbWVudCs9YApgK2YuY29tbWVudDpkLmNvbW1lbnQ9Zi5jb21tZW50KSxkLnJhbmdlPVthLm9mZnNldCxtLGYub2Zmc2V0XX1lbHNlIGQucmFuZ2U9W2Eub2Zmc2V0LG0sbV07cmV0dXJuIGR9dmFyIHYzZSx4M2UsUDV0PWcoKCk9Pnt1cygpO05wKCk7UnAoKTtPcCgpO0g5KCk7R3coKTtGc2UoKTttM2UoKTt2M2U9IkJsb2NrIGNvbGxlY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gZmxvdyBjb2xsZWN0aW9ucyIseDNlPWkocz0+cyYmKHMudHlwZT09PSJibG9jay1tYXAifHxzLnR5cGU9PT0iYmxvY2stc2VxIiksImlzQmxvY2siKTtpKHkzZSwicmVzb2x2ZUZsb3dDb2xsZWN0aW9uIil9KTtmdW5jdGlvbiB3M2UocyxlLHQsYSxyLG4pe2xldCBvPXQudHlwZT09PSJibG9jay1tYXAiP2czZShzLGUsdCxhLG4pOnQudHlwZT09PSJibG9jay1zZXEiP2IzZShzLGUsdCxhLG4pOnkzZShzLGUsdCxhLG4pLGw9by5jb25zdHJ1Y3RvcjtyZXR1cm4gcj09PSIhInx8cj09PWwudGFnTmFtZT8oby50YWc9bC50YWdOYW1lLG8pOihyJiYoby50YWc9ciksbyl9ZnVuY3Rpb24gazNlKHMsZSx0LGEscil7bGV0IG49YS50YWcsbz1uP2UuZGlyZWN0aXZlcy50YWdOYW1lKG4uc291cmNlLGI9PnIobiwiVEFHX1JFU09MVkVfRkFJTEVEIixiKSk6bnVsbDtpZih0LnR5cGU9PT0iYmxvY2stc2VxIil7bGV0e2FuY2hvcjpiLG5ld2xpbmVBZnRlclByb3A6dn09YSx4PWImJm4/Yi5vZmZzZXQ+bi5vZmZzZXQ/YjpuOmI/P247eCYmKCF2fHx2Lm9mZnNldDx4Lm9mZnNldCkmJnIoeCwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBuZXdsaW5lIGFmdGVyIGJsb2NrIHNlcXVlbmNlIHByb3BzIil9bGV0IGw9dC50eXBlPT09ImJsb2NrLW1hcCI/Im1hcCI6dC50eXBlPT09ImJsb2NrLXNlcSI/InNlcSI6dC5zdGFydC5zb3VyY2U9PT0ieyI/Im1hcCI6InNlcSI7aWYoIW58fCFvfHxvPT09IiEifHxvPT09eWkudGFnTmFtZSYmbD09PSJtYXAifHxvPT09VnIudGFnTmFtZSYmbD09PSJzZXEiKXJldHVybiB3M2UocyxlLHQscixvKTtsZXQgcD1lLnNjaGVtYS50YWdzLmZpbmQoYj0+Yi50YWc9PT1vJiZiLmNvbGxlY3Rpb249PT1sKTtpZighcCl7bGV0IGI9ZS5zY2hlbWEua25vd25UYWdzW29dO2lmKGI/LmNvbGxlY3Rpb249PT1sKWUuc2NoZW1hLnRhZ3MucHVzaChPYmplY3QuYXNzaWduKHt9LGIse2RlZmF1bHQ6ITF9KSkscD1iO2Vsc2UgcmV0dXJuIGI/cihuLCJCQURfQ09MTEVDVElPTl9UWVBFIixgJHtiLnRhZ30gdXNlZCBmb3IgJHtsfSBjb2xsZWN0aW9uLCBidXQgZXhwZWN0cyAke2IuY29sbGVjdGlvbj8/InNjYWxhciJ9YCwhMCk6cihuLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGBVbnJlc29sdmVkIHRhZzogJHtvfWAsITApLHczZShzLGUsdCxyLG8pfWxldCBkPXczZShzLGUsdCxyLG8scCksdT1wLnJlc29sdmU/LihkLGI9PnIobiwiVEFHX1JFU09MVkVfRkFJTEVEIixiKSxlLm9wdGlvbnMpPz9kLGM9SWEodSk/dTpuZXcgTHQodSk7cmV0dXJuIGMucmFuZ2U9ZC5yYW5nZSxjLnRhZz1vLHA/LmZvcm1hdCYmKGMuZm9ybWF0PXAuZm9ybWF0KSxjfXZhciBJNXQ9ZygoKT0+e3VzKCk7X3IoKTtScCgpO09wKCk7TDV0KCk7RTV0KCk7UDV0KCk7aSh3M2UsInJlc29sdmVDb2xsZWN0aW9uIik7aShrM2UsImNvbXBvc2VDb2xsZWN0aW9uIil9KTtmdW5jdGlvbiBZdyhzLGUsdCl7bGV0IGE9ZS5vZmZzZXQscj1MQWEoZSxzLm9wdGlvbnMuc3RyaWN0LHQpO2lmKCFyKXJldHVybnt2YWx1ZToiIix0eXBlOm51bGwsY29tbWVudDoiIixyYW5nZTpbYSxhLGFdfTtsZXQgbj1yLm1vZGU9PT0iPiI/THQuQkxPQ0tfRk9MREVEOkx0LkJMT0NLX0xJVEVSQUwsbz1lLnNvdXJjZT9FQWEoZS5zb3VyY2UpOltdLGw9by5sZW5ndGg7Zm9yKGxldCBtPW8ubGVuZ3RoLTE7bT49MDstLW0pe2xldCBmPW9bbV1bMV07aWYoZj09PSIifHxmPT09IlxyIilsPW07ZWxzZSBicmVha31pZihsPT09MCl7bGV0IG09ci5jaG9tcD09PSIrIiYmby5sZW5ndGg+MD9gCmAucmVwZWF0KE1hdGgubWF4KDEsby5sZW5ndGgtMSkpOiIiLGY9YStyLmxlbmd0aDtyZXR1cm4gZS5zb3VyY2UmJihmKz1lLnNvdXJjZS5sZW5ndGgpLHt2YWx1ZTptLHR5cGU6bixjb21tZW50OnIuY29tbWVudCxyYW5nZTpbYSxmLGZdfX1sZXQgcD1lLmluZGVudCtyLmluZGVudCxkPWUub2Zmc2V0K3IubGVuZ3RoLHU9MDtmb3IobGV0IG09MDttPGw7KyttKXtsZXRbZix5XT1vW21dO2lmKHk9PT0iInx8eT09PSJcciIpci5pbmRlbnQ9PT0wJiZmLmxlbmd0aD5wJiYocD1mLmxlbmd0aCk7ZWxzZXtmLmxlbmd0aDxwJiZ0KGQrZi5sZW5ndGgsIk1JU1NJTkdfQ0hBUiIsIkJsb2NrIHNjYWxhcnMgd2l0aCBtb3JlLWluZGVudGVkIGxlYWRpbmcgZW1wdHkgbGluZXMgbXVzdCB1c2UgYW4gZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yIiksci5pbmRlbnQ9PT0wJiYocD1mLmxlbmd0aCksdT1tLHA9PT0wJiYhcy5hdFJvb3QmJnQoZCwiQkFEX0lOREVOVCIsIkJsb2NrIHNjYWxhciB2YWx1ZXMgaW4gY29sbGVjdGlvbnMgbXVzdCBiZSBpbmRlbnRlZCIpO2JyZWFrfWQrPWYubGVuZ3RoK3kubGVuZ3RoKzF9Zm9yKGxldCBtPW8ubGVuZ3RoLTE7bT49bDstLW0pb1ttXVswXS5sZW5ndGg+cCYmKGw9bSsxKTtsZXQgYz0iIixiPSIiLHY9ITE7Zm9yKGxldCBtPTA7bTx1OysrbSljKz1vW21dWzBdLnNsaWNlKHApK2AKYDtmb3IobGV0IG09dTttPGw7KyttKXtsZXRbZix5XT1vW21dO2QrPWYubGVuZ3RoK3kubGVuZ3RoKzE7bGV0IE09eVt5Lmxlbmd0aC0xXT09PSJcciI7aWYoTSYmKHk9eS5zbGljZSgwLC0xKSkseSYmZi5sZW5ndGg8cCl7bGV0IE49YEJsb2NrIHNjYWxhciBsaW5lcyBtdXN0IG5vdCBiZSBsZXNzIGluZGVudGVkIHRoYW4gdGhlaXIgJHtyLmluZGVudD8iZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yIjoiZmlyc3QgbGluZSJ9YDt0KGQteS5sZW5ndGgtKE0/MjoxKSwiQkFEX0lOREVOVCIsTiksZj0iIn1uPT09THQuQkxPQ0tfTElURVJBTD8oYys9YitmLnNsaWNlKHApK3ksYj1gCmApOmYubGVuZ3RoPnB8fHlbMF09PT0iCSI/KGI9PT0iICI/Yj1gCmA6IXYmJmI9PT1gCmAmJihiPWAKCmApLGMrPWIrZi5zbGljZShwKSt5LGI9YApgLHY9ITApOnk9PT0iIj9iPT09YApgP2MrPWAKYDpiPWAKYDooYys9Yit5LGI9IiAiLHY9ITEpfXN3aXRjaChyLmNob21wKXtjYXNlIi0iOmJyZWFrO2Nhc2UiKyI6Zm9yKGxldCBtPWw7bTxvLmxlbmd0aDsrK20pYys9YApgK29bbV1bMF0uc2xpY2UocCk7Y1tjLmxlbmd0aC0xXSE9PWAKYCYmKGMrPWAKYCk7YnJlYWs7ZGVmYXVsdDpjKz1gCmB9bGV0IHg9YStyLmxlbmd0aCtlLnNvdXJjZS5sZW5ndGg7cmV0dXJue3ZhbHVlOmMsdHlwZTpuLGNvbW1lbnQ6ci5jb21tZW50LHJhbmdlOlthLHgseF19fWZ1bmN0aW9uIExBYSh7b2Zmc2V0OnMscHJvcHM6ZX0sdCxhKXtpZihlWzBdLnR5cGUhPT0iYmxvY2stc2NhbGFyLWhlYWRlciIpcmV0dXJuIGEoZVswXSwiSU1QT1NTSUJMRSIsIkJsb2NrIHNjYWxhciBoZWFkZXIgbm90IGZvdW5kIiksbnVsbDtsZXR7c291cmNlOnJ9PWVbMF0sbj1yWzBdLG89MCxsPSIiLHA9LTE7Zm9yKGxldCBiPTE7YjxyLmxlbmd0aDsrK2Ipe2xldCB2PXJbYl07aWYoIWwmJih2PT09Ii0ifHx2PT09IisiKSlsPXY7ZWxzZXtsZXQgeD1OdW1iZXIodik7IW8mJng/bz14OnA9PT0tMSYmKHA9cytiKX19cCE9PS0xJiZhKHAsIlVORVhQRUNURURfVE9LRU4iLGBCbG9jayBzY2FsYXIgaGVhZGVyIGluY2x1ZGVzIGV4dHJhIGNoYXJhY3RlcnM6ICR7cn1gKTtsZXQgZD0hMSx1PSIiLGM9ci5sZW5ndGg7Zm9yKGxldCBiPTE7YjxlLmxlbmd0aDsrK2Ipe2xldCB2PWVbYl07c3dpdGNoKHYudHlwZSl7Y2FzZSJzcGFjZSI6ZD0hMDtjYXNlIm5ld2xpbmUiOmMrPXYuc291cmNlLmxlbmd0aDticmVhaztjYXNlImNvbW1lbnQiOnQmJiFkJiZhKHYsIk1JU1NJTkdfQ0hBUiIsIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMiKSxjKz12LnNvdXJjZS5sZW5ndGgsdT12LnNvdXJjZS5zdWJzdHJpbmcoMSk7YnJlYWs7Y2FzZSJlcnJvciI6YSh2LCJVTkVYUEVDVEVEX1RPS0VOIix2Lm1lc3NhZ2UpLGMrPXYuc291cmNlLmxlbmd0aDticmVhaztkZWZhdWx0OntsZXQgeD1gVW5leHBlY3RlZCB0b2tlbiBpbiBibG9jayBzY2FsYXIgaGVhZGVyOiAke3YudHlwZX1gO2EodiwiVU5FWFBFQ1RFRF9UT0tFTiIseCk7bGV0IG09di5zb3VyY2U7bSYmdHlwZW9mIG09PSJzdHJpbmciJiYoYys9bS5sZW5ndGgpfX19cmV0dXJue21vZGU6bixpbmRlbnQ6byxjaG9tcDpsLGNvbW1lbnQ6dSxsZW5ndGg6Y319ZnVuY3Rpb24gRUFhKHMpe2xldCBlPXMuc3BsaXQoL1xuKCAqKS8pLHQ9ZVswXSxhPXQubWF0Y2goL14oICopLyksbj1bYT8uWzFdP1thWzFdLHQuc2xpY2UoYVsxXS5sZW5ndGgpXTpbIiIsdF1dO2ZvcihsZXQgbz0xO288ZS5sZW5ndGg7bys9MiluLnB1c2goW2Vbb10sZVtvKzFdXSk7cmV0dXJuIG59dmFyIFMzZT1nKCgpPT57X3IoKTtpKFl3LCJyZXNvbHZlQmxvY2tTY2FsYXIiKTtpKExBYSwicGFyc2VCbG9ja1NjYWxhckhlYWRlciIpO2koRUFhLCJzcGxpdExpbmVzIil9KTtmdW5jdGlvbiBadyhzLGUsdCl7bGV0e29mZnNldDphLHR5cGU6cixzb3VyY2U6bixlbmQ6b309cyxsLHAsZD1pKChiLHYseCk9PnQoYStiLHYseCksIl9vbkVycm9yIik7c3dpdGNoKHIpe2Nhc2Uic2NhbGFyIjpsPUx0LlBMQUlOLHA9UEFhKG4sZCk7YnJlYWs7Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6bD1MdC5RVU9URV9TSU5HTEUscD1JQWEobixkKTticmVhaztjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpsPUx0LlFVT1RFX0RPVUJMRSxwPUFBYShuLGQpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHQocywiVU5FWFBFQ1RFRF9UT0tFTiIsYEV4cGVjdGVkIGEgZmxvdyBzY2FsYXIgdmFsdWUsIGJ1dCBmb3VuZDogJHtyfWApLHt2YWx1ZToiIix0eXBlOm51bGwsY29tbWVudDoiIixyYW5nZTpbYSxhK24ubGVuZ3RoLGErbi5sZW5ndGhdfX1sZXQgdT1hK24ubGVuZ3RoLGM9UDEobyx1LGUsdCk7cmV0dXJue3ZhbHVlOnAsdHlwZTpsLGNvbW1lbnQ6Yy5jb21tZW50LHJhbmdlOlthLHUsYy5vZmZzZXRdfX1mdW5jdGlvbiBQQWEocyxlKXtsZXQgdD0iIjtzd2l0Y2goc1swXSl7Y2FzZSIJIjp0PSJhIHRhYiBjaGFyYWN0ZXIiO2JyZWFrO2Nhc2UiLCI6dD0iZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVyICwiO2JyZWFrO2Nhc2UiJSI6dD0iZGlyZWN0aXZlIGluZGljYXRvciBjaGFyYWN0ZXIgJSI7YnJlYWs7Y2FzZSJ8IjpjYXNlIj4iOnt0PWBibG9jayBzY2FsYXIgaW5kaWNhdG9yICR7c1swXX1gO2JyZWFrfWNhc2UiQCI6Y2FzZSJgIjp7dD1gcmVzZXJ2ZWQgY2hhcmFjdGVyICR7c1swXX1gO2JyZWFrfX1yZXR1cm4gdCYmZSgwLCJCQURfU0NBTEFSX1NUQVJUIixgUGxhaW4gdmFsdWUgY2Fubm90IHN0YXJ0IHdpdGggJHt0fWApLEE1dChzKX1mdW5jdGlvbiBJQWEocyxlKXtyZXR1cm4oc1tzLmxlbmd0aC0xXSE9PSInInx8cy5sZW5ndGg9PT0xKSYmZShzLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBjbG9zaW5nICdxdW90ZSIpLEE1dChzLnNsaWNlKDEsLTEpKS5yZXBsYWNlKC8nJy9nLCInIil9ZnVuY3Rpb24gQTV0KHMpe2xldCBlLHQ7dHJ5e2U9bmV3IFJlZ0V4cChgKC4qPykoPzwhWyAJXSlbIAldKlxyPwpgLCJzeSIpLHQ9bmV3IFJlZ0V4cChgWyAJXSooLio/KSg/Oig/PCFbIAldKVsgCV0qKT9ccj8KYCwic3kiKX1jYXRjaHtlPS8oLio/KVsgXHRdKlxyP1xuL3N5LHQ9L1sgXHRdKiguKj8pWyBcdF0qXHI/XG4vc3l9bGV0IGE9ZS5leGVjKHMpO2lmKCFhKXJldHVybiBzO2xldCByPWFbMV0sbj0iICIsbz1lLmxhc3RJbmRleDtmb3IodC5sYXN0SW5kZXg9bzthPXQuZXhlYyhzKTspYVsxXT09PSIiP249PT1gCmA/cis9bjpuPWAKYDoocis9bithWzFdLG49IiAiKSxvPXQubGFzdEluZGV4O2xldCBsPS9bIFx0XSooLiopL3N5O3JldHVybiBsLmxhc3RJbmRleD1vLGE9bC5leGVjKHMpLHIrbisoYT8uWzFdPz8iIil9ZnVuY3Rpb24gQUFhKHMsZSl7bGV0IHQ9IiI7Zm9yKGxldCBhPTE7YTxzLmxlbmd0aC0xOysrYSl7bGV0IHI9c1thXTtpZighKHI9PT0iXHIiJiZzW2ErMV09PT1gCmApKWlmKHI9PT1gCmApe2xldHtmb2xkOm4sb2Zmc2V0Om99PU5BYShzLGEpO3QrPW4sYT1vfWVsc2UgaWYocj09PSJcXCIpe2xldCBuPXNbKythXSxvPVJBYVtuXTtpZihvKXQrPW87ZWxzZSBpZihuPT09YApgKWZvcihuPXNbYSsxXTtuPT09IiAifHxuPT09IgkiOyluPXNbKythKzFdO2Vsc2UgaWYobj09PSJcciImJnNbYSsxXT09PWAKYClmb3Iobj1zWysrYSsxXTtuPT09IiAifHxuPT09IgkiOyluPXNbKythKzFdO2Vsc2UgaWYobj09PSJ4Inx8bj09PSJ1Inx8bj09PSJVIil7bGV0IGw9bj09PSJ4Ij8yOm49PT0idSI/NDo4O3QrPU9BYShzLGErMSxsLGUpLGErPWx9ZWxzZXtsZXQgbD1zLnN1YnN0cihhLTEsMik7ZShhLTEsIkJBRF9EUV9FU0NBUEUiLGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke2x9YCksdCs9bH19ZWxzZSBpZihyPT09IiAifHxyPT09IgkiKXtsZXQgbj1hLG89c1thKzFdO2Zvcig7bz09PSIgInx8bz09PSIJIjspbz1zWysrYSsxXTtvIT09YApgJiYhKG89PT0iXHIiJiZzW2ErMl09PT1gCmApJiYodCs9YT5uP3Muc2xpY2UobixhKzEpOnIpfWVsc2UgdCs9cn1yZXR1cm4oc1tzLmxlbmd0aC0xXSE9PSciJ3x8cy5sZW5ndGg9PT0xKSYmZShzLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwnTWlzc2luZyBjbG9zaW5nICJxdW90ZScpLHR9ZnVuY3Rpb24gTkFhKHMsZSl7bGV0IHQ9IiIsYT1zW2UrMV07Zm9yKDsoYT09PSIgInx8YT09PSIJInx8YT09PWAKYHx8YT09PSJcciIpJiYhKGE9PT0iXHIiJiZzW2UrMl0hPT1gCmApOylhPT09YApgJiYodCs9YApgKSxlKz0xLGE9c1tlKzFdO3JldHVybiB0fHwodD0iICIpLHtmb2xkOnQsb2Zmc2V0OmV9fWZ1bmN0aW9uIE9BYShzLGUsdCxhKXtsZXQgcj1zLnN1YnN0cihlLHQpLG89ci5sZW5ndGg9PT10JiYvXlswLTlhLWZBLUZdKyQvLnRlc3Qocik/cGFyc2VJbnQociwxNik6TmFOO3RyeXtyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQobyl9Y2F0Y2h7bGV0IGw9cy5zdWJzdHIoZS0yLHQrMik7cmV0dXJuIGEoZS0yLCJCQURfRFFfRVNDQVBFIixgSW52YWxpZCBlc2NhcGUgc2VxdWVuY2UgJHtsfWApLGx9fXZhciBSQWEsXzNlPWcoKCk9PntfcigpO0g5KCk7aShadywicmVzb2x2ZUZsb3dTY2FsYXIiKTtpKFBBYSwicGxhaW5WYWx1ZSIpO2koSUFhLCJzaW5nbGVRdW90ZWRWYWx1ZSIpO2koQTV0LCJmb2xkTGluZXMiKTtpKEFBYSwiZG91YmxlUXVvdGVkVmFsdWUiKTtpKE5BYSwiZm9sZE5ld2xpbmUiKTtSQWE9ezA6IlwwIixhOiJceDA3IixiOiJcYiIsZToiXHgxQiIsZjoiXGYiLG46YApgLHI6IlxyIix0OiIJIix2OiJcdiIsTjoiXHg4NSIsXzoiXHhBMCIsTDoiXHUyMDI4IixQOiJcdTIwMjkiLCIgIjoiICIsJyInOiciJywiLyI6Ii8iLCJcXCI6IlxcIiwiCSI6IgkifTtpKE9BYSwicGFyc2VDaGFyQ29kZSIpfSk7ZnVuY3Rpb24gQnNlKHMsZSx0LGEpe2xldHt2YWx1ZTpyLHR5cGU6bixjb21tZW50Om8scmFuZ2U6bH09ZS50eXBlPT09ImJsb2NrLXNjYWxhciI/WXcocyxlLGEpOlp3KGUscy5vcHRpb25zLnN0cmljdCxhKSxwPXQ/cy5kaXJlY3RpdmVzLnRhZ05hbWUodC5zb3VyY2UsYz0+YSh0LCJUQUdfUkVTT0xWRV9GQUlMRUQiLGMpKTpudWxsLGQ7cy5vcHRpb25zLnN0cmluZ0tleXMmJnMuYXRLZXk/ZD1zLnNjaGVtYVtibF06cD9kPUZBYShzLnNjaGVtYSxyLHAsdCxhKTplLnR5cGU9PT0ic2NhbGFyIj9kPUJBYShzLHIsZSxhKTpkPXMuc2NoZW1hW2JsXTtsZXQgdTt0cnl7bGV0IGM9ZC5yZXNvbHZlKHIsYj0+YSh0Pz9lLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGIpLHMub3B0aW9ucyk7dT1sYShjKT9jOm5ldyBMdChjKX1jYXRjaChjKXtsZXQgYj1jIGluc3RhbmNlb2YgRXJyb3I/Yy5tZXNzYWdlOlN0cmluZyhjKTthKHQ/P2UsIlRBR19SRVNPTFZFX0ZBSUxFRCIsYiksdT1uZXcgTHQocil9cmV0dXJuIHUucmFuZ2U9bCx1LnNvdXJjZT1yLG4mJih1LnR5cGU9bikscCYmKHUudGFnPXApLGQuZm9ybWF0JiYodS5mb3JtYXQ9ZC5mb3JtYXQpLG8mJih1LmNvbW1lbnQ9byksdX1mdW5jdGlvbiBGQWEocyxlLHQsYSxyKXtpZih0PT09IiEiKXJldHVybiBzW2JsXTtsZXQgbj1bXTtmb3IobGV0IGwgb2Ygcy50YWdzKWlmKCFsLmNvbGxlY3Rpb24mJmwudGFnPT09dClpZihsLmRlZmF1bHQmJmwudGVzdCluLnB1c2gobCk7ZWxzZSByZXR1cm4gbDtmb3IobGV0IGwgb2YgbilpZihsLnRlc3Q/LnRlc3QoZSkpcmV0dXJuIGw7bGV0IG89cy5rbm93blRhZ3NbdF07cmV0dXJuIG8mJiFvLmNvbGxlY3Rpb24/KHMudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sbyx7ZGVmYXVsdDohMSx0ZXN0OnZvaWQgMH0pKSxvKToocihhLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGBVbnJlc29sdmVkIHRhZzogJHt0fWAsdCE9PSJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiKSxzW2JsXSl9ZnVuY3Rpb24gQkFhKHthdEtleTpzLGRpcmVjdGl2ZXM6ZSxzY2hlbWE6dH0sYSxyLG4pe2xldCBvPXQudGFncy5maW5kKGw9PihsLmRlZmF1bHQ9PT0hMHx8cyYmbC5kZWZhdWx0PT09ImtleSIpJiZsLnRlc3Q/LnRlc3QoYSkpfHx0W2JsXTtpZih0LmNvbXBhdCl7bGV0IGw9dC5jb21wYXQuZmluZChwPT5wLmRlZmF1bHQmJnAudGVzdD8udGVzdChhKSk/P3RbYmxdO2lmKG8udGFnIT09bC50YWcpe2xldCBwPWUudGFnU3RyaW5nKG8udGFnKSxkPWUudGFnU3RyaW5nKGwudGFnKSx1PWBWYWx1ZSBtYXkgYmUgcGFyc2VkIGFzIGVpdGhlciAke3B9IG9yICR7ZH1gO24ociwiVEFHX1JFU09MVkVfRkFJTEVEIix1LCEwKX19cmV0dXJuIG99dmFyIE41dD1nKCgpPT57dXMoKTtfcigpO1MzZSgpO18zZSgpO2koQnNlLCJjb21wb3NlU2NhbGFyIik7aShGQWEsImZpbmRTY2FsYXJUYWdCeU5hbWUiKTtpKEJBYSwiZmluZFNjYWxhclRhZ0J5VGVzdCIpfSk7ZnVuY3Rpb24gTTNlKHMsZSx0KXtpZihlKXt0Pz8odD1lLmxlbmd0aCk7Zm9yKGxldCBhPXQtMTthPj0wOy0tYSl7bGV0IHI9ZVthXTtzd2l0Y2goci50eXBlKXtjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6cy09ci5zb3VyY2UubGVuZ3RoO2NvbnRpbnVlfWZvcihyPWVbKythXTtyPy50eXBlPT09InNwYWNlIjspcys9ci5zb3VyY2UubGVuZ3RoLHI9ZVsrK2FdO2JyZWFrfX1yZXR1cm4gc312YXIgUjV0PWcoKCk9PntpKE0zZSwiZW1wdHlTY2FsYXJQb3NpdGlvbiIpfSk7ZnVuY3Rpb24gSHNlKHMsZSx0LGEpe2xldCByPXMuYXRLZXkse3NwYWNlQmVmb3JlOm4sY29tbWVudDpvLGFuY2hvcjpsLHRhZzpwfT10LGQsdT0hMDtzd2l0Y2goZS50eXBlKXtjYXNlImFsaWFzIjpkPXFBYShzLGUsYSksKGx8fHApJiZhKGUsIkFMSUFTX1BST1BTIiwiQW4gYWxpYXMgbm9kZSBtdXN0IG5vdCBzcGVjaWZ5IGFueSBwcm9wZXJ0aWVzIik7YnJlYWs7Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2UiYmxvY2stc2NhbGFyIjpkPUJzZShzLGUscCxhKSxsJiYoZC5hbmNob3I9bC5zb3VyY2Uuc3Vic3RyaW5nKDEpKTticmVhaztjYXNlImJsb2NrLW1hcCI6Y2FzZSJibG9jay1zZXEiOmNhc2UiZmxvdy1jb2xsZWN0aW9uIjp0cnl7ZD1rM2UoSEFhLHMsZSx0LGEpLGwmJihkLmFuY2hvcj1sLnNvdXJjZS5zdWJzdHJpbmcoMSkpfWNhdGNoKGMpe2xldCBiPWMgaW5zdGFuY2VvZiBFcnJvcj9jLm1lc3NhZ2U6U3RyaW5nKGMpO2EoZSwiUkVTT1VSQ0VfRVhIQVVTVElPTiIsYil9YnJlYWs7ZGVmYXVsdDp7bGV0IGM9ZS50eXBlPT09ImVycm9yIj9lLm1lc3NhZ2U6YFVuc3VwcG9ydGVkIHRva2VuICh0eXBlOiAke2UudHlwZX0pYDthKGUsIlVORVhQRUNURURfVE9LRU4iLGMpLHU9ITF9fXJldHVybiBkPz8oZD1YdyhzLGUub2Zmc2V0LHZvaWQgMCxudWxsLHQsYSkpLGwmJmQuYW5jaG9yPT09IiImJmEobCwiQkFEX0FMSUFTIiwiQW5jaG9yIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmciKSxyJiZzLm9wdGlvbnMuc3RyaW5nS2V5cyYmKCFsYShkKXx8dHlwZW9mIGQudmFsdWUhPSJzdHJpbmcifHxkLnRhZyYmZC50YWchPT0idGFnOnlhbWwub3JnLDIwMDI6c3RyIikmJmEocD8/ZSwiTk9OX1NUUklOR19LRVkiLCJXaXRoIHN0cmluZ0tleXMsIGFsbCBrZXlzIG11c3QgYmUgc3RyaW5ncyIpLG4mJihkLnNwYWNlQmVmb3JlPSEwKSxvJiYoZS50eXBlPT09InNjYWxhciImJmUuc291cmNlPT09IiI/ZC5jb21tZW50PW86ZC5jb21tZW50QmVmb3JlPW8pLHMub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiZ1JiYoZC5zcmNUb2tlbj1lKSxkfWZ1bmN0aW9uIFh3KHMsZSx0LGEse3NwYWNlQmVmb3JlOnIsY29tbWVudDpuLGFuY2hvcjpvLHRhZzpsLGVuZDpwfSxkKXtsZXQgdT17dHlwZToic2NhbGFyIixvZmZzZXQ6TTNlKGUsdCxhKSxpbmRlbnQ6LTEsc291cmNlOiIifSxjPUJzZShzLHUsbCxkKTtyZXR1cm4gbyYmKGMuYW5jaG9yPW8uc291cmNlLnN1YnN0cmluZygxKSxjLmFuY2hvcj09PSIiJiZkKG8sIkJBRF9BTElBUyIsIkFuY2hvciBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nIikpLHImJihjLnNwYWNlQmVmb3JlPSEwKSxuJiYoYy5jb21tZW50PW4sYy5yYW5nZVsyXT1wKSxjfWZ1bmN0aW9uIHFBYSh7b3B0aW9uczpzfSx7b2Zmc2V0OmUsc291cmNlOnQsZW5kOmF9LHIpe2xldCBuPW5ldyBDYyh0LnN1YnN0cmluZygxKSk7bi5zb3VyY2U9PT0iIiYmcihlLCJCQURfQUxJQVMiLCJBbGlhcyBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nIiksbi5zb3VyY2UuZW5kc1dpdGgoIjoiKSYmcihlK3QubGVuZ3RoLTEsIkJBRF9BTElBUyIsIkFsaWFzIGVuZGluZyBpbiA6IGlzIGFtYmlndW91cyIsITApO2xldCBvPWUrdC5sZW5ndGgsbD1QMShhLG8scy5zdHJpY3Qscik7cmV0dXJuIG4ucmFuZ2U9W2UsbyxsLm9mZnNldF0sbC5jb21tZW50JiYobi5jb21tZW50PWwuY29tbWVudCksbn12YXIgSEFhLE81dD1nKCgpPT57a3coKTt1cygpO0k1dCgpO041dCgpO0g5KCk7UjV0KCk7SEFhPXtjb21wb3NlTm9kZTpIc2UsY29tcG9zZUVtcHR5Tm9kZTpYd307aShIc2UsImNvbXBvc2VOb2RlIik7aShYdywiY29tcG9zZUVtcHR5Tm9kZSIpO2kocUFhLCJjb21wb3NlQWxpYXMiKX0pO2Z1bmN0aW9uIHozZShzLGUse29mZnNldDp0LHN0YXJ0OmEsdmFsdWU6cixlbmQ6bn0sbyl7bGV0IGw9T2JqZWN0LmFzc2lnbih7X2RpcmVjdGl2ZXM6ZX0scykscD1uZXcgTGModm9pZCAwLGwpLGQ9e2F0S2V5OiExLGF0Um9vdDohMCxkaXJlY3RpdmVzOnAuZGlyZWN0aXZlcyxvcHRpb25zOnAub3B0aW9ucyxzY2hlbWE6cC5zY2hlbWF9LHU9RTEoYSx7aW5kaWNhdG9yOiJkb2Mtc3RhcnQiLG5leHQ6cj8/bj8uWzBdLG9mZnNldDp0LG9uRXJyb3I6byxwYXJlbnRJbmRlbnQ6MCxzdGFydE9uTmV3bGluZTohMH0pO3UuZm91bmQmJihwLmRpcmVjdGl2ZXMuZG9jU3RhcnQ9ITAsciYmKHIudHlwZT09PSJibG9jay1tYXAifHxyLnR5cGU9PT0iYmxvY2stc2VxIikmJiF1Lmhhc05ld2xpbmUmJm8odS5lbmQsIk1JU1NJTkdfQ0hBUiIsIkJsb2NrIGNvbGxlY3Rpb24gY2Fubm90IHN0YXJ0IG9uIHNhbWUgbGluZSB3aXRoIGRpcmVjdGl2ZXMtZW5kIG1hcmtlciIpKSxwLmNvbnRlbnRzPXI/SHNlKGQscix1LG8pOlh3KGQsdS5lbmQsYSxudWxsLHUsbyk7bGV0IGM9cC5jb250ZW50cy5yYW5nZVsyXSxiPVAxKG4sYywhMSxvKTtyZXR1cm4gYi5jb21tZW50JiYocC5jb21tZW50PWIuY29tbWVudCkscC5yYW5nZT1bdCxjLGIub2Zmc2V0XSxwfXZhciBGNXQ9ZygoKT0+e1V3KCk7TzV0KCk7SDkoKTtHdygpO2koejNlLCJjb21wb3NlRG9jIil9KTtmdW5jdGlvbiBRdyhzKXtpZih0eXBlb2Ygcz09Im51bWJlciIpcmV0dXJuW3MscysxXTtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBzLmxlbmd0aD09PTI/czpbc1swXSxzWzFdXTtsZXR7b2Zmc2V0OmUsc291cmNlOnR9PXM7cmV0dXJuW2UsZSsodHlwZW9mIHQ9PSJzdHJpbmciP3QubGVuZ3RoOjEpXX1mdW5jdGlvbiBCNXQocyl7bGV0IGU9IiIsdD0hMSxhPSExO2ZvcihsZXQgcj0wO3I8cy5sZW5ndGg7KytyKXtsZXQgbj1zW3JdO3N3aXRjaChuWzBdKXtjYXNlIiMiOmUrPShlPT09IiI/IiI6YT9gCgpgOmAKYCkrKG4uc3Vic3RyaW5nKDEpfHwiICIpLHQ9ITAsYT0hMTticmVhaztjYXNlIiUiOnNbcisxXT8uWzBdIT09IiMiJiYocis9MSksdD0hMTticmVhaztkZWZhdWx0OnR8fChhPSEwKSx0PSExfX1yZXR1cm57Y29tbWVudDplLGFmdGVyRW1wdHlMaW5lOmF9fXZhciBDMCxDM2U9ZygoKT0+e0k0ZSgpO1V3KCk7V3coKTt1cygpO0Y1dCgpO0g5KCk7aShRdywiZ2V0RXJyb3JQb3MiKTtpKEI1dCwicGFyc2VQcmVsdWRlIik7QzA9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29tcG9zZXIiKX1jb25zdHJ1Y3RvcihlPXt9KXt0aGlzLmRvYz1udWxsLHRoaXMuYXREaXJlY3RpdmVzPSExLHRoaXMucHJlbHVkZT1bXSx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdLHRoaXMub25FcnJvcj0odCxhLHIsbik9PntsZXQgbz1Rdyh0KTtuP3RoaXMud2FybmluZ3MucHVzaChuZXcgcXAobyxhLHIpKTp0aGlzLmVycm9ycy5wdXNoKG5ldyBrbihvLGEscikpfSx0aGlzLmRpcmVjdGl2ZXM9bmV3IEQxKHt2ZXJzaW9uOmUudmVyc2lvbnx8IjEuMiJ9KSx0aGlzLm9wdGlvbnM9ZX1kZWNvcmF0ZShlLHQpe2xldHtjb21tZW50OmEsYWZ0ZXJFbXB0eUxpbmU6cn09QjV0KHRoaXMucHJlbHVkZSk7aWYoYSl7bGV0IG49ZS5jb250ZW50cztpZih0KWUuY29tbWVudD1lLmNvbW1lbnQ/YCR7ZS5jb21tZW50fQoke2F9YDphO2Vsc2UgaWYocnx8ZS5kaXJlY3RpdmVzLmRvY1N0YXJ0fHwhbillLmNvbW1lbnRCZWZvcmU9YTtlbHNlIGlmKGRzKG4pJiYhbi5mbG93JiZuLml0ZW1zLmxlbmd0aD4wKXtsZXQgbz1uLml0ZW1zWzBdO0NhKG8pJiYobz1vLmtleSk7bGV0IGw9by5jb21tZW50QmVmb3JlO28uY29tbWVudEJlZm9yZT1sP2Ake2F9CiR7bH1gOmF9ZWxzZXtsZXQgbz1uLmNvbW1lbnRCZWZvcmU7bi5jb21tZW50QmVmb3JlPW8/YCR7YX0KJHtvfWA6YX19dD8oQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS5lcnJvcnMsdGhpcy5lcnJvcnMpLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUud2FybmluZ3MsdGhpcy53YXJuaW5ncykpOihlLmVycm9ycz10aGlzLmVycm9ycyxlLndhcm5pbmdzPXRoaXMud2FybmluZ3MpLHRoaXMucHJlbHVkZT1bXSx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdfXN0cmVhbUluZm8oKXtyZXR1cm57Y29tbWVudDpCNXQodGhpcy5wcmVsdWRlKS5jb21tZW50LGRpcmVjdGl2ZXM6dGhpcy5kaXJlY3RpdmVzLGVycm9yczp0aGlzLmVycm9ycyx3YXJuaW5nczp0aGlzLndhcm5pbmdzfX0qY29tcG9zZShlLHQ9ITEsYT0tMSl7Zm9yKGxldCByIG9mIGUpeWllbGQqdGhpcy5uZXh0KHIpO3lpZWxkKnRoaXMuZW5kKHQsYSl9Km5leHQoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJkaXJlY3RpdmUiOnRoaXMuZGlyZWN0aXZlcy5hZGQoZS5zb3VyY2UsKHQsYSxyKT0+e2xldCBuPVF3KGUpO25bMF0rPXQsdGhpcy5vbkVycm9yKG4sIkJBRF9ESVJFQ1RJVkUiLGEscil9KSx0aGlzLnByZWx1ZGUucHVzaChlLnNvdXJjZSksdGhpcy5hdERpcmVjdGl2ZXM9ITA7YnJlYWs7Y2FzZSJkb2N1bWVudCI6e2xldCB0PXozZSh0aGlzLm9wdGlvbnMsdGhpcy5kaXJlY3RpdmVzLGUsdGhpcy5vbkVycm9yKTt0aGlzLmF0RGlyZWN0aXZlcyYmIXQuZGlyZWN0aXZlcy5kb2NTdGFydCYmdGhpcy5vbkVycm9yKGUsIk1JU1NJTkdfQ0hBUiIsIk1pc3NpbmcgZGlyZWN0aXZlcy1lbmQvZG9jLXN0YXJ0IGluZGljYXRvciBsaW5lIiksdGhpcy5kZWNvcmF0ZSh0LCExKSx0aGlzLmRvYyYmKHlpZWxkIHRoaXMuZG9jKSx0aGlzLmRvYz10LHRoaXMuYXREaXJlY3RpdmVzPSExO2JyZWFrfWNhc2UiYnl0ZS1vcmRlci1tYXJrIjpjYXNlInNwYWNlIjpicmVhaztjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6dGhpcy5wcmVsdWRlLnB1c2goZS5zb3VyY2UpO2JyZWFrO2Nhc2UiZXJyb3IiOntsZXQgdD1lLnNvdXJjZT9gJHtlLm1lc3NhZ2V9OiAke0pTT04uc3RyaW5naWZ5KGUuc291cmNlKX1gOmUubWVzc2FnZSxhPW5ldyBrbihRdyhlKSwiVU5FWFBFQ1RFRF9UT0tFTiIsdCk7dGhpcy5hdERpcmVjdGl2ZXN8fCF0aGlzLmRvYz90aGlzLmVycm9ycy5wdXNoKGEpOnRoaXMuZG9jLmVycm9ycy5wdXNoKGEpO2JyZWFrfWNhc2UiZG9jLWVuZCI6e2lmKCF0aGlzLmRvYyl7bGV0IGE9IlVuZXhwZWN0ZWQgZG9jLWVuZCB3aXRob3V0IHByZWNlZGluZyBkb2N1bWVudCI7dGhpcy5lcnJvcnMucHVzaChuZXcga24oUXcoZSksIlVORVhQRUNURURfVE9LRU4iLGEpKTticmVha310aGlzLmRvYy5kaXJlY3RpdmVzLmRvY0VuZD0hMDtsZXQgdD1QMShlLmVuZCxlLm9mZnNldCtlLnNvdXJjZS5sZW5ndGgsdGhpcy5kb2Mub3B0aW9ucy5zdHJpY3QsdGhpcy5vbkVycm9yKTtpZih0aGlzLmRlY29yYXRlKHRoaXMuZG9jLCEwKSx0LmNvbW1lbnQpe2xldCBhPXRoaXMuZG9jLmNvbW1lbnQ7dGhpcy5kb2MuY29tbWVudD1hP2Ake2F9CiR7dC5jb21tZW50fWA6dC5jb21tZW50fXRoaXMuZG9jLnJhbmdlWzJdPXQub2Zmc2V0O2JyZWFrfWRlZmF1bHQ6dGhpcy5lcnJvcnMucHVzaChuZXcga24oUXcoZSksIlVORVhQRUNURURfVE9LRU4iLGBVbnN1cHBvcnRlZCB0b2tlbiAke2UudHlwZX1gKSl9fSplbmQoZT0hMSx0PS0xKXtpZih0aGlzLmRvYyl0aGlzLmRlY29yYXRlKHRoaXMuZG9jLCEwKSx5aWVsZCB0aGlzLmRvYyx0aGlzLmRvYz1udWxsO2Vsc2UgaWYoZSl7bGV0IGE9T2JqZWN0LmFzc2lnbih7X2RpcmVjdGl2ZXM6dGhpcy5kaXJlY3RpdmVzfSx0aGlzLm9wdGlvbnMpLHI9bmV3IExjKHZvaWQgMCxhKTt0aGlzLmF0RGlyZWN0aXZlcyYmdGhpcy5vbkVycm9yKHQsIk1JU1NJTkdfQ0hBUiIsIk1pc3NpbmcgZGlyZWN0aXZlcy1lbmQgaW5kaWNhdG9yIGxpbmUiKSxyLnJhbmdlPVswLHQsdF0sdGhpcy5kZWNvcmF0ZShyLCExKSx5aWVsZCByfX19fSk7ZnVuY3Rpb24gJDNlKHMsZT0hMCx0KXtpZihzKXtsZXQgYT1pKChyLG4sbyk9PntsZXQgbD10eXBlb2Ygcj09Im51bWJlciI/cjpBcnJheS5pc0FycmF5KHIpP3JbMF06ci5vZmZzZXQ7aWYodCl0KGwsbixvKTtlbHNlIHRocm93IG5ldyBrbihbbCxsKzFdLG4sbyl9LCJfb25FcnJvciIpO3N3aXRjaChzLnR5cGUpe2Nhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpyZXR1cm4gWncocyxlLGEpO2Nhc2UiYmxvY2stc2NhbGFyIjpyZXR1cm4gWXcoe29wdGlvbnM6e3N0cmljdDplfX0scyxhKX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gRDNlKHMsZSl7bGV0e2ltcGxpY2l0S2V5OnQ9ITEsaW5kZW50OmEsaW5GbG93OnI9ITEsb2Zmc2V0Om49LTEsdHlwZTpvPSJQTEFJTiJ9PWUsbD1mZCh7dHlwZTpvLHZhbHVlOnN9LHtpbXBsaWNpdEtleTp0LGluZGVudDphPjA/IiAiLnJlcGVhdChhKToiIixpbkZsb3c6cixvcHRpb25zOntibG9ja1F1b3RlOiEwLGxpbmVXaWR0aDotMX19KSxwPWUuZW5kPz9be3R5cGU6Im5ld2xpbmUiLG9mZnNldDotMSxpbmRlbnQ6YSxzb3VyY2U6YApgfV07c3dpdGNoKGxbMF0pe2Nhc2UifCI6Y2FzZSI+Ijp7bGV0IGQ9bC5pbmRleE9mKGAKYCksdT1sLnN1YnN0cmluZygwLGQpLGM9bC5zdWJzdHJpbmcoZCsxKStgCmAsYj1be3R5cGU6ImJsb2NrLXNjYWxhci1oZWFkZXIiLG9mZnNldDpuLGluZGVudDphLHNvdXJjZTp1fV07cmV0dXJuIEg1dChiLHApfHxiLnB1c2goe3R5cGU6Im5ld2xpbmUiLG9mZnNldDotMSxpbmRlbnQ6YSxzb3VyY2U6YApgfSkse3R5cGU6ImJsb2NrLXNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEscHJvcHM6Yixzb3VyY2U6Y319Y2FzZSciJzpyZXR1cm57dHlwZToiZG91YmxlLXF1b3RlZC1zY2FsYXIiLG9mZnNldDpuLGluZGVudDphLHNvdXJjZTpsLGVuZDpwfTtjYXNlIiciOnJldHVybnt0eXBlOiJzaW5nbGUtcXVvdGVkLXNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmwsZW5kOnB9O2RlZmF1bHQ6cmV0dXJue3R5cGU6InNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmwsZW5kOnB9fX1mdW5jdGlvbiBMM2UocyxlLHQ9e30pe2xldHthZnRlcktleTphPSExLGltcGxpY2l0S2V5OnI9ITEsaW5GbG93Om49ITEsdHlwZTpvfT10LGw9ImluZGVudCJpbiBzP3MuaW5kZW50Om51bGw7aWYoYSYmdHlwZW9mIGw9PSJudW1iZXIiJiYobCs9MiksIW8pc3dpdGNoKHMudHlwZSl7Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6bz0iUVVPVEVfU0lOR0xFIjticmVhaztjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpvPSJRVU9URV9ET1VCTEUiO2JyZWFrO2Nhc2UiYmxvY2stc2NhbGFyIjp7bGV0IGQ9cy5wcm9wc1swXTtpZihkLnR5cGUhPT0iYmxvY2stc2NhbGFyLWhlYWRlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJsb2NrIHNjYWxhciBoZWFkZXIiKTtvPWQuc291cmNlWzBdPT09Ij4iPyJCTE9DS19GT0xERUQiOiJCTE9DS19MSVRFUkFMIjticmVha31kZWZhdWx0Om89IlBMQUlOIn1sZXQgcD1mZCh7dHlwZTpvLHZhbHVlOmV9LHtpbXBsaWNpdEtleTpyfHxsPT09bnVsbCxpbmRlbnQ6bCE9PW51bGwmJmw+MD8iICIucmVwZWF0KGwpOiIiLGluRmxvdzpuLG9wdGlvbnM6e2Jsb2NrUXVvdGU6ITAsbGluZVdpZHRoOi0xfX0pO3N3aXRjaChwWzBdKXtjYXNlInwiOmNhc2UiPiI6akFhKHMscCk7YnJlYWs7Y2FzZSciJzpUM2UocyxwLCJkb3VibGUtcXVvdGVkLXNjYWxhciIpO2JyZWFrO2Nhc2UiJyI6VDNlKHMscCwic2luZ2xlLXF1b3RlZC1zY2FsYXIiKTticmVhaztkZWZhdWx0OlQzZShzLHAsInNjYWxhciIpfX1mdW5jdGlvbiBqQWEocyxlKXtsZXQgdD1lLmluZGV4T2YoYApgKSxhPWUuc3Vic3RyaW5nKDAsdCkscj1lLnN1YnN0cmluZyh0KzEpK2AKYDtpZihzLnR5cGU9PT0iYmxvY2stc2NhbGFyIil7bGV0IG49cy5wcm9wc1swXTtpZihuLnR5cGUhPT0iYmxvY2stc2NhbGFyLWhlYWRlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJsb2NrIHNjYWxhciBoZWFkZXIiKTtuLnNvdXJjZT1hLHMuc291cmNlPXJ9ZWxzZXtsZXR7b2Zmc2V0Om59PXMsbz0iaW5kZW50ImluIHM/cy5pbmRlbnQ6LTEsbD1be3R5cGU6ImJsb2NrLXNjYWxhci1oZWFkZXIiLG9mZnNldDpuLGluZGVudDpvLHNvdXJjZTphfV07SDV0KGwsImVuZCJpbiBzP3MuZW5kOnZvaWQgMCl8fGwucHVzaCh7dHlwZToibmV3bGluZSIsb2Zmc2V0Oi0xLGluZGVudDpvLHNvdXJjZTpgCmB9KTtmb3IobGV0IHAgb2YgT2JqZWN0LmtleXMocykpcCE9PSJ0eXBlIiYmcCE9PSJvZmZzZXQiJiZkZWxldGUgc1twXTtPYmplY3QuYXNzaWduKHMse3R5cGU6ImJsb2NrLXNjYWxhciIsaW5kZW50Om8scHJvcHM6bCxzb3VyY2U6cn0pfX1mdW5jdGlvbiBINXQocyxlKXtpZihlKWZvcihsZXQgdCBvZiBlKXN3aXRjaCh0LnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6cy5wdXNoKHQpO2JyZWFrO2Nhc2UibmV3bGluZSI6cmV0dXJuIHMucHVzaCh0KSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBUM2UocyxlLHQpe3N3aXRjaChzLnR5cGUpe2Nhc2Uic2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpzLnR5cGU9dCxzLnNvdXJjZT1lO2JyZWFrO2Nhc2UiYmxvY2stc2NhbGFyIjp7bGV0IGE9cy5wcm9wcy5zbGljZSgxKSxyPWUubGVuZ3RoO3MucHJvcHNbMF0udHlwZT09PSJibG9jay1zY2FsYXItaGVhZGVyIiYmKHItPXMucHJvcHNbMF0uc291cmNlLmxlbmd0aCk7Zm9yKGxldCBuIG9mIGEpbi5vZmZzZXQrPXI7ZGVsZXRlIHMucHJvcHMsT2JqZWN0LmFzc2lnbihzLHt0eXBlOnQsc291cmNlOmUsZW5kOmF9KTticmVha31jYXNlImJsb2NrLW1hcCI6Y2FzZSJibG9jay1zZXEiOntsZXQgcj17dHlwZToibmV3bGluZSIsb2Zmc2V0OnMub2Zmc2V0K2UubGVuZ3RoLGluZGVudDpzLmluZGVudCxzb3VyY2U6YApgfTtkZWxldGUgcy5pdGVtcyxPYmplY3QuYXNzaWduKHMse3R5cGU6dCxzb3VyY2U6ZSxlbmQ6W3JdfSk7YnJlYWt9ZGVmYXVsdDp7bGV0IGE9ImluZGVudCJpbiBzP3MuaW5kZW50Oi0xLHI9ImVuZCJpbiBzJiZBcnJheS5pc0FycmF5KHMuZW5kKT9zLmVuZC5maWx0ZXIobj0+bi50eXBlPT09InNwYWNlInx8bi50eXBlPT09ImNvbW1lbnQifHxuLnR5cGU9PT0ibmV3bGluZSIpOltdO2ZvcihsZXQgbiBvZiBPYmplY3Qua2V5cyhzKSluIT09InR5cGUiJiZuIT09Im9mZnNldCImJmRlbGV0ZSBzW25dO09iamVjdC5hc3NpZ24ocyx7dHlwZTp0LGluZGVudDphLHNvdXJjZTplLGVuZDpyfSl9fX12YXIgcTV0PWcoKCk9PntTM2UoKTtfM2UoKTtXdygpO1R3KCk7aSgkM2UsInJlc29sdmVBc1NjYWxhciIpO2koRDNlLCJjcmVhdGVTY2FsYXJUb2tlbiIpO2koTDNlLCJzZXRTY2FsYXJWYWx1ZSIpO2koakFhLCJzZXRCbG9ja1NjYWxhclZhbHVlIik7aShINXQsImFkZEVuZHRvQmxvY2tQcm9wcyIpO2koVDNlLCJzZXRGbG93U2NhbGFyVmFsdWUiKX0pO2Z1bmN0aW9uIHFzZShzKXtzd2l0Y2gocy50eXBlKXtjYXNlImJsb2NrLXNjYWxhciI6e2xldCBlPSIiO2ZvcihsZXQgdCBvZiBzLnByb3BzKWUrPXFzZSh0KTtyZXR1cm4gZStzLnNvdXJjZX1jYXNlImJsb2NrLW1hcCI6Y2FzZSJibG9jay1zZXEiOntsZXQgZT0iIjtmb3IobGV0IHQgb2Ygcy5pdGVtcyllKz1qc2UodCk7cmV0dXJuIGV9Y2FzZSJmbG93LWNvbGxlY3Rpb24iOntsZXQgZT1zLnN0YXJ0LnNvdXJjZTtmb3IobGV0IHQgb2Ygcy5pdGVtcyllKz1qc2UodCk7Zm9yKGxldCB0IG9mIHMuZW5kKWUrPXQuc291cmNlO3JldHVybiBlfWNhc2UiZG9jdW1lbnQiOntsZXQgZT1qc2Uocyk7aWYocy5lbmQpZm9yKGxldCB0IG9mIHMuZW5kKWUrPXQuc291cmNlO3JldHVybiBlfWRlZmF1bHQ6e2xldCBlPXMuc291cmNlO2lmKCJlbmQiaW4gcyYmcy5lbmQpZm9yKGxldCB0IG9mIHMuZW5kKWUrPXQuc291cmNlO3JldHVybiBlfX19ZnVuY3Rpb24ganNlKHtzdGFydDpzLGtleTplLHNlcDp0LHZhbHVlOmF9KXtsZXQgcj0iIjtmb3IobGV0IG4gb2YgcylyKz1uLnNvdXJjZTtpZihlJiYocis9cXNlKGUpKSx0KWZvcihsZXQgbiBvZiB0KXIrPW4uc291cmNlO3JldHVybiBhJiYocis9cXNlKGEpKSxyfXZhciBFM2UsajV0PWcoKCk9PntFM2U9aShzPT4idHlwZSJpbiBzP3FzZShzKTpqc2UocyksInN0cmluZ2lmeSIpO2kocXNlLCJzdHJpbmdpZnlUb2tlbiIpO2koanNlLCJzdHJpbmdpZnlJdGVtIil9KTtmdW5jdGlvbiBUMChzLGUpeyJ0eXBlImluIHMmJnMudHlwZT09PSJkb2N1bWVudCImJihzPXtzdGFydDpzLnN0YXJ0LHZhbHVlOnMudmFsdWV9KSxVNXQoT2JqZWN0LmZyZWV6ZShbXSkscyxlKX1mdW5jdGlvbiBVNXQocyxlLHQpe2xldCBhPXQoZSxzKTtpZih0eXBlb2YgYT09InN5bWJvbCIpcmV0dXJuIGE7Zm9yKGxldCByIG9mWyJrZXkiLCJ2YWx1ZSJdKXtsZXQgbj1lW3JdO2lmKG4mJiJpdGVtcyJpbiBuKXtmb3IobGV0IG89MDtvPG4uaXRlbXMubGVuZ3RoOysrbyl7bGV0IGw9VTV0KE9iamVjdC5mcmVlemUocy5jb25jYXQoW1tyLG9dXSkpLG4uaXRlbXNbb10sdCk7aWYodHlwZW9mIGw9PSJudW1iZXIiKW89bC0xO2Vsc2V7aWYobD09PVAzZSlyZXR1cm4gUDNlO2w9PT1WNXQmJihuLml0ZW1zLnNwbGljZShvLDEpLG8tPTEpfX10eXBlb2YgYT09ImZ1bmN0aW9uIiYmcj09PSJrZXkiJiYoYT1hKGUscykpfX1yZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiI/YShlLHMpOmF9dmFyIFAzZSxWQWEsVjV0LFc1dD1nKCgpPT57UDNlPVN5bWJvbCgiYnJlYWsgdmlzaXQiKSxWQWE9U3ltYm9sKCJza2lwIGNoaWxkcmVuIiksVjV0PVN5bWJvbCgicmVtb3ZlIGl0ZW0iKTtpKFQwLCJ2aXNpdCIpLFQwLkJSRUFLPVAzZSxUMC5TS0lQPVZBYSxUMC5SRU1PVkU9VjV0LFQwLml0ZW1BdFBhdGg9KHMsZSk9PntsZXQgdD1zO2ZvcihsZXRbYSxyXW9mIGUpe2xldCBuPXQ/LlthXTtpZihuJiYiaXRlbXMiaW4gbil0PW4uaXRlbXNbcl07ZWxzZSByZXR1cm59cmV0dXJuIHR9LFQwLnBhcmVudENvbGxlY3Rpb249KHMsZSk9PntsZXQgdD1UMC5pdGVtQXRQYXRoKHMsZS5zbGljZSgwLC0xKSksYT1lW2UubGVuZ3RoLTFdWzBdLHI9dD8uW2FdO2lmKHImJiJpdGVtcyJpbiByKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigiUGFyZW50IGNvbGxlY3Rpb24gbm90IGZvdW5kIil9O2koVTV0LCJfdmlzaXQiKX0pO3ZhciBKdz17fTt5dChKdyx7Qk9NOigpPT5xOSxET0NVTUVOVDooKT0+ajksRkxPV19FTkQ6KCk9PlY5LFNDQUxBUjooKT0+dzMsY3JlYXRlU2NhbGFyVG9rZW46KCk9PkQzZSxpc0NvbGxlY3Rpb246KCk9Pkc1dCxpc1NjYWxhcjooKT0+SzV0LHByZXR0eVRva2VuOigpPT5ZNXQscmVzb2x2ZUFzU2NhbGFyOigpPT4kM2Usc2V0U2NhbGFyVmFsdWU6KCk9PkwzZSxzdHJpbmdpZnk6KCk9PkUzZSx0b2tlblR5cGU6KCk9PlZzZSx2aXNpdDooKT0+VDB9KTtmdW5jdGlvbiBZNXQocyl7c3dpdGNoKHMpe2Nhc2UgcTk6cmV0dXJuIjxCT00+IjtjYXNlIGo5OnJldHVybiI8RE9DPiI7Y2FzZSBWOTpyZXR1cm4iPEZMT1dfRU5EPiI7Y2FzZSB3MzpyZXR1cm4iPFNDQUxBUj4iO2RlZmF1bHQ6cmV0dXJuIEpTT04uc3RyaW5naWZ5KHMpfX1mdW5jdGlvbiBWc2Uocyl7c3dpdGNoKHMpe2Nhc2UgcTk6cmV0dXJuImJ5dGUtb3JkZXItbWFyayI7Y2FzZSBqOTpyZXR1cm4iZG9jLW1vZGUiO2Nhc2UgVjk6cmV0dXJuImZsb3ctZXJyb3ItZW5kIjtjYXNlIHczOnJldHVybiJzY2FsYXIiO2Nhc2UiLS0tIjpyZXR1cm4iZG9jLXN0YXJ0IjtjYXNlIi4uLiI6cmV0dXJuImRvYy1lbmQiO2Nhc2UiIjpjYXNlYApgOmNhc2VgXHIKYDpyZXR1cm4ibmV3bGluZSI7Y2FzZSItIjpyZXR1cm4ic2VxLWl0ZW0taW5kIjtjYXNlIj8iOnJldHVybiJleHBsaWNpdC1rZXktaW5kIjtjYXNlIjoiOnJldHVybiJtYXAtdmFsdWUtaW5kIjtjYXNlInsiOnJldHVybiJmbG93LW1hcC1zdGFydCI7Y2FzZSJ9IjpyZXR1cm4iZmxvdy1tYXAtZW5kIjtjYXNlIlsiOnJldHVybiJmbG93LXNlcS1zdGFydCI7Y2FzZSJdIjpyZXR1cm4iZmxvdy1zZXEtZW5kIjtjYXNlIiwiOnJldHVybiJjb21tYSJ9c3dpdGNoKHNbMF0pe2Nhc2UiICI6Y2FzZSIJIjpyZXR1cm4ic3BhY2UiO2Nhc2UiIyI6cmV0dXJuImNvbW1lbnQiO2Nhc2UiJSI6cmV0dXJuImRpcmVjdGl2ZS1saW5lIjtjYXNlIioiOnJldHVybiJhbGlhcyI7Y2FzZSImIjpyZXR1cm4iYW5jaG9yIjtjYXNlIiEiOnJldHVybiJ0YWciO2Nhc2UiJyI6cmV0dXJuInNpbmdsZS1xdW90ZWQtc2NhbGFyIjtjYXNlJyInOnJldHVybiJkb3VibGUtcXVvdGVkLXNjYWxhciI7Y2FzZSJ8IjpjYXNlIj4iOnJldHVybiJibG9jay1zY2FsYXItaGVhZGVyIn1yZXR1cm4gbnVsbH12YXIgcTksajksVjksdzMsRzV0LEs1dCxVc2U9ZygoKT0+e3E1dCgpO2o1dCgpO1c1dCgpO3E5PSJcdUZFRkYiLGo5PSICIixWOT0iGCIsdzM9Ih8iLEc1dD1pKHM9PiEhcyYmIml0ZW1zImluIHMsImlzQ29sbGVjdGlvbiIpLEs1dD1pKHM9PiEhcyYmKHMudHlwZT09PSJzY2FsYXIifHxzLnR5cGU9PT0ic2luZ2xlLXF1b3RlZC1zY2FsYXIifHxzLnR5cGU9PT0iZG91YmxlLXF1b3RlZC1zY2FsYXIifHxzLnR5cGU9PT0iYmxvY2stc2NhbGFyIiksImlzU2NhbGFyIik7aShZNXQsInByZXR0eVRva2VuIik7aShWc2UsInRva2VuVHlwZSIpfSk7ZnVuY3Rpb24gSTEocyl7c3dpdGNoKHMpe2Nhc2Ugdm9pZCAwOmNhc2UiICI6Y2FzZWAKYDpjYXNlIlxyIjpjYXNlIgkiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciBaNXQsVUFhLFdzZSxXQWEsSTNlLGpwLEEzZT1nKCgpPT57VXNlKCk7aShJMSwiaXNFbXB0eSIpO1o1dD1uZXcgU2V0KCIwMTIzNDU2Nzg5QUJDREVGYWJjZGVmIiksVUFhPW5ldyBTZXQoIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LSM7Lz86QCY9KyRfLiF+KicoKSIpLFdzZT1uZXcgU2V0KCIsW117fSIpLFdBYT1uZXcgU2V0KGAgLFtde30KXHIJYCksSTNlPWkocz0+IXN8fFdBYS5oYXMocyksImlzTm90QW5jaG9yQ2hhciIpLGpwPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxleGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmF0RW5kPSExLHRoaXMuYmxvY2tTY2FsYXJJbmRlbnQ9LTEsdGhpcy5ibG9ja1NjYWxhcktlZXA9ITEsdGhpcy5idWZmZXI9IiIsdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsPTAsdGhpcy5pbmRlbnROZXh0PTAsdGhpcy5pbmRlbnRWYWx1ZT0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1udWxsLHRoaXMucG9zPTB9KmxleChlLHQ9ITEpe2lmKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBUeXBlRXJyb3IoInNvdXJjZSBpcyBub3QgYSBzdHJpbmciKTt0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlcj90aGlzLmJ1ZmZlcitlOmUsdGhpcy5saW5lRW5kUG9zPW51bGx9dGhpcy5hdEVuZD0hdDtsZXQgYT10aGlzLm5leHQ/PyJzdHJlYW0iO2Zvcig7YSYmKHR8fHRoaXMuaGFzQ2hhcnMoMSkpOylhPXlpZWxkKnRoaXMucGFyc2VOZXh0KGEpfWF0TGluZUVuZCgpe2xldCBlPXRoaXMucG9zLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0PT09IiAifHx0PT09IgkiOyl0PXRoaXMuYnVmZmVyWysrZV07cmV0dXJuIXR8fHQ9PT0iIyJ8fHQ9PT1gCmA/ITA6dD09PSJcciI/dGhpcy5idWZmZXJbZSsxXT09PWAKYDohMX1jaGFyQXQoZSl7cmV0dXJuIHRoaXMuYnVmZmVyW3RoaXMucG9zK2VdfWNvbnRpbnVlU2NhbGFyKGUpe2xldCB0PXRoaXMuYnVmZmVyW2VdO2lmKHRoaXMuaW5kZW50TmV4dD4wKXtsZXQgYT0wO2Zvcig7dD09PSIgIjspdD10aGlzLmJ1ZmZlclsrK2ErZV07aWYodD09PSJcciIpe2xldCByPXRoaXMuYnVmZmVyW2ErZSsxXTtpZihyPT09YApgfHwhciYmIXRoaXMuYXRFbmQpcmV0dXJuIGUrYSsxfXJldHVybiB0PT09YApgfHxhPj10aGlzLmluZGVudE5leHR8fCF0JiYhdGhpcy5hdEVuZD9lK2E6LTF9aWYodD09PSItInx8dD09PSIuIil7bGV0IGE9dGhpcy5idWZmZXIuc3Vic3RyKGUsMyk7aWYoKGE9PT0iLS0tInx8YT09PSIuLi4iKSYmSTEodGhpcy5idWZmZXJbZSszXSkpcmV0dXJuLTF9cmV0dXJuIGV9Z2V0TGluZSgpe2xldCBlPXRoaXMubGluZUVuZFBvcztyZXR1cm4odHlwZW9mIGUhPSJudW1iZXIifHxlIT09LTEmJmU8dGhpcy5wb3MpJiYoZT10aGlzLmJ1ZmZlci5pbmRleE9mKGAKYCx0aGlzLnBvcyksdGhpcy5saW5lRW5kUG9zPWUpLGU9PT0tMT90aGlzLmF0RW5kP3RoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyk6bnVsbDoodGhpcy5idWZmZXJbZS0xXT09PSJcciImJihlLT0xKSx0aGlzLmJ1ZmZlci5zdWJzdHJpbmcodGhpcy5wb3MsZSkpfWhhc0NoYXJzKGUpe3JldHVybiB0aGlzLnBvcytlPD10aGlzLmJ1ZmZlci5sZW5ndGh9c2V0TmV4dChlKXtyZXR1cm4gdGhpcy5idWZmZXI9dGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKSx0aGlzLnBvcz0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1lLG51bGx9cGVlayhlKXtyZXR1cm4gdGhpcy5idWZmZXIuc3Vic3RyKHRoaXMucG9zLGUpfSpwYXJzZU5leHQoZSl7c3dpdGNoKGUpe2Nhc2Uic3RyZWFtIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVN0cmVhbSgpO2Nhc2UibGluZS1zdGFydCI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VMaW5lU3RhcnQoKTtjYXNlImJsb2NrLXN0YXJ0IjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKTtjYXNlImRvYyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VEb2N1bWVudCgpO2Nhc2UiZmxvdyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VGbG93Q29sbGVjdGlvbigpO2Nhc2UicXVvdGVkLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtjYXNlImJsb2NrLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhcigpO2Nhc2UicGxhaW4tc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZVN0cmVhbSgpe2xldCBlPXRoaXMuZ2V0TGluZSgpO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoInN0cmVhbSIpO2lmKGVbMF09PT1xOSYmKHlpZWxkKnRoaXMucHVzaENvdW50KDEpLGU9ZS5zdWJzdHJpbmcoMSkpLGVbMF09PT0iJSIpe2xldCB0PWUubGVuZ3RoLGE9ZS5pbmRleE9mKCIjIik7Zm9yKDthIT09LTE7KXtsZXQgbj1lW2EtMV07aWYobj09PSIgInx8bj09PSIJIil7dD1hLTE7YnJlYWt9ZWxzZSBhPWUuaW5kZXhPZigiIyIsYSsxKX1mb3IoOzspe2xldCBuPWVbdC0xXTtpZihuPT09IiAifHxuPT09IgkiKXQtPTE7ZWxzZSBicmVha31sZXQgcj0oeWllbGQqdGhpcy5wdXNoQ291bnQodCkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKTtyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtciksdGhpcy5wdXNoTmV3bGluZSgpLCJzdHJlYW0ifWlmKHRoaXMuYXRMaW5lRW5kKCkpe2xldCB0PXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7cmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpLHlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSwic3RyZWFtIn1yZXR1cm4geWllbGQgajkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpfSpwYXJzZUxpbmVTdGFydCgpe2xldCBlPXRoaXMuY2hhckF0KDApO2lmKCFlJiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJsaW5lLXN0YXJ0Iik7aWYoZT09PSItInx8ZT09PSIuIil7aWYoIXRoaXMuYXRFbmQmJiF0aGlzLmhhc0NoYXJzKDQpKXJldHVybiB0aGlzLnNldE5leHQoImxpbmUtc3RhcnQiKTtsZXQgdD10aGlzLnBlZWsoMyk7aWYoKHQ9PT0iLS0tInx8dD09PSIuLi4iKSYmSTEodGhpcy5jaGFyQXQoMykpKXJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgzKSx0aGlzLmluZGVudFZhbHVlPTAsdGhpcy5pbmRlbnROZXh0PTAsdD09PSItLS0iPyJkb2MiOiJzdHJlYW0ifXJldHVybiB0aGlzLmluZGVudFZhbHVlPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMSksdGhpcy5pbmRlbnROZXh0PnRoaXMuaW5kZW50VmFsdWUmJiFJMSh0aGlzLmNoYXJBdCgxKSkmJih0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSkseWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKX0qcGFyc2VCbG9ja1N0YXJ0KCl7bGV0W2UsdF09dGhpcy5wZWVrKDIpO2lmKCF0JiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zdGFydCIpO2lmKChlPT09Ii0ifHxlPT09Ij8ifHxlPT09IjoiKSYmSTEodCkpe2xldCBhPSh5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpO3JldHVybiB0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSsxLHRoaXMuaW5kZW50VmFsdWUrPWEseWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKX1yZXR1cm4iZG9jIn0qcGFyc2VEb2N1bWVudCgpe3lpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7bGV0IGU9dGhpcy5nZXRMaW5lKCk7aWYoZT09PW51bGwpcmV0dXJuIHRoaXMuc2V0TmV4dCgiZG9jIik7bGV0IHQ9eWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpO3N3aXRjaChlW3RdKXtjYXNlIiMiOnlpZWxkKnRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpO2Nhc2Ugdm9pZCAwOnJldHVybiB5aWVsZCp0aGlzLnB1c2hOZXdsaW5lKCkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpO2Nhc2UieyI6Y2FzZSJbIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsPTEsImZsb3ciO2Nhc2UifSI6Y2FzZSJdIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksImRvYyI7Y2FzZSIqIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwoSTNlKSwiZG9jIjtjYXNlJyInOmNhc2UiJyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtjYXNlInwiOmNhc2UiPiI6cmV0dXJuIHQrPXlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhckhlYWRlcigpLHQrPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkseWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtdCkseWllbGQqdGhpcy5wdXNoTmV3bGluZSgpLHlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhcigpO2RlZmF1bHQ6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VQbGFpblNjYWxhcigpfX0qcGFyc2VGbG93Q29sbGVjdGlvbigpe2xldCBlLHQsYT0tMTtkbyBlPXlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSxlPjA/KHQ9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCExKSx0aGlzLmluZGVudFZhbHVlPWE9dCk6dD0wLHQrPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7d2hpbGUoZSt0PjApO2xldCByPXRoaXMuZ2V0TGluZSgpO2lmKHI9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoImZsb3ciKTtpZigoYSE9PS0xJiZhPHRoaXMuaW5kZW50TmV4dCYmclswXSE9PSIjInx8YT09PTAmJihyLnN0YXJ0c1dpdGgoIi0tLSIpfHxyLnN0YXJ0c1dpdGgoIi4uLiIpKSYmSTEoclszXSkpJiYhKGE9PT10aGlzLmluZGVudE5leHQtMSYmdGhpcy5mbG93TGV2ZWw9PT0xJiYoclswXT09PSJdInx8clswXT09PSJ9IikpKXJldHVybiB0aGlzLmZsb3dMZXZlbD0wLHlpZWxkIFY5LHlpZWxkKnRoaXMucGFyc2VMaW5lU3RhcnQoKTtsZXQgbj0wO2Zvcig7cltuXT09PSIsIjspbis9eWllbGQqdGhpcy5wdXNoQ291bnQoMSksbis9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSx0aGlzLmZsb3dLZXk9ITE7c3dpdGNoKG4rPXlpZWxkKnRoaXMucHVzaEluZGljYXRvcnMoKSxyW25dKXtjYXNlIHZvaWQgMDpyZXR1cm4iZmxvdyI7Y2FzZSIjIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoci5sZW5ndGgtbiksImZsb3ciO2Nhc2UieyI6Y2FzZSJbIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsKz0xLCJmbG93IjtjYXNlIn0iOmNhc2UiXSI6cmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KDEpLHRoaXMuZmxvd0tleT0hMCx0aGlzLmZsb3dMZXZlbC09MSx0aGlzLmZsb3dMZXZlbD8iZmxvdyI6ImRvYyI7Y2FzZSIqIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwoSTNlKSwiZmxvdyI7Y2FzZSciJzpjYXNlIiciOnJldHVybiB0aGlzLmZsb3dLZXk9ITAseWllbGQqdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO2Nhc2UiOiI6e2xldCBvPXRoaXMuY2hhckF0KDEpO2lmKHRoaXMuZmxvd0tleXx8STEobyl8fG89PT0iLCIpcmV0dXJuIHRoaXMuZmxvd0tleT0hMSx5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSx5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApLCJmbG93In1kZWZhdWx0OnJldHVybiB0aGlzLmZsb3dLZXk9ITEseWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZVF1b3RlZFNjYWxhcigpe2xldCBlPXRoaXMuY2hhckF0KDApLHQ9dGhpcy5idWZmZXIuaW5kZXhPZihlLHRoaXMucG9zKzEpO2lmKGU9PT0iJyIpZm9yKDt0IT09LTEmJnRoaXMuYnVmZmVyW3QrMV09PT0iJyI7KXQ9dGhpcy5idWZmZXIuaW5kZXhPZigiJyIsdCsyKTtlbHNlIGZvcig7dCE9PS0xOyl7bGV0IG49MDtmb3IoO3RoaXMuYnVmZmVyW3QtMS1uXT09PSJcXCI7KW4rPTE7aWYobiUyPT09MClicmVhazt0PXRoaXMuYnVmZmVyLmluZGV4T2YoJyInLHQrMSl9bGV0IGE9dGhpcy5idWZmZXIuc3Vic3RyaW5nKDAsdCkscj1hLmluZGV4T2YoYApgLHRoaXMucG9zKTtpZihyIT09LTEpe2Zvcig7ciE9PS0xOyl7bGV0IG49dGhpcy5jb250aW51ZVNjYWxhcihyKzEpO2lmKG49PT0tMSlicmVhaztyPWEuaW5kZXhPZihgCmAsbil9ciE9PS0xJiYodD1yLShhW3ItMV09PT0iXHIiPzI6MSkpfWlmKHQ9PT0tMSl7aWYoIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dCgicXVvdGVkLXNjYWxhciIpO3Q9dGhpcy5idWZmZXIubGVuZ3RofXJldHVybiB5aWVsZCp0aGlzLnB1c2hUb0luZGV4KHQrMSwhMSksdGhpcy5mbG93TGV2ZWw/ImZsb3ciOiJkb2MifSpwYXJzZUJsb2NrU2NhbGFySGVhZGVyKCl7dGhpcy5ibG9ja1NjYWxhckluZGVudD0tMSx0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMTtsZXQgZT10aGlzLnBvcztmb3IoOzspe2xldCB0PXRoaXMuYnVmZmVyWysrZV07aWYodD09PSIrIil0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMDtlbHNlIGlmKHQ+IjAiJiZ0PD0iOSIpdGhpcy5ibG9ja1NjYWxhckluZGVudD1OdW1iZXIodCktMTtlbHNlIGlmKHQhPT0iLSIpYnJlYWt9cmV0dXJuIHlpZWxkKnRoaXMucHVzaFVudGlsKHQ9PkkxKHQpfHx0PT09IiMiKX0qcGFyc2VCbG9ja1NjYWxhcigpe2xldCBlPXRoaXMucG9zLTEsdD0wLGE7ZTpmb3IobGV0IG49dGhpcy5wb3M7YT10aGlzLmJ1ZmZlcltuXTsrK24pc3dpdGNoKGEpe2Nhc2UiICI6dCs9MTticmVhaztjYXNlYApgOmU9bix0PTA7YnJlYWs7Y2FzZSJcciI6e2xldCBvPXRoaXMuYnVmZmVyW24rMV07aWYoIW8mJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXNjYWxhciIpO2lmKG89PT1gCmApYnJlYWt9ZGVmYXVsdDpicmVhayBlfWlmKCFhJiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zY2FsYXIiKTtpZih0Pj10aGlzLmluZGVudE5leHQpe3RoaXMuYmxvY2tTY2FsYXJJbmRlbnQ9PT0tMT90aGlzLmluZGVudE5leHQ9dDp0aGlzLmluZGVudE5leHQ9dGhpcy5ibG9ja1NjYWxhckluZGVudCsodGhpcy5pbmRlbnROZXh0PT09MD8xOnRoaXMuaW5kZW50TmV4dCk7ZG97bGV0IG49dGhpcy5jb250aW51ZVNjYWxhcihlKzEpO2lmKG49PT0tMSlicmVhaztlPXRoaXMuYnVmZmVyLmluZGV4T2YoYApgLG4pfXdoaWxlKGUhPT0tMSk7aWYoZT09PS0xKXtpZighdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zY2FsYXIiKTtlPXRoaXMuYnVmZmVyLmxlbmd0aH19bGV0IHI9ZSsxO2ZvcihhPXRoaXMuYnVmZmVyW3JdO2E9PT0iICI7KWE9dGhpcy5idWZmZXJbKytyXTtpZihhPT09IgkiKXtmb3IoO2E9PT0iCSJ8fGE9PT0iICJ8fGE9PT0iXHIifHxhPT09YApgOylhPXRoaXMuYnVmZmVyWysrcl07ZT1yLTF9ZWxzZSBpZighdGhpcy5ibG9ja1NjYWxhcktlZXApZG97bGV0IG49ZS0xLG89dGhpcy5idWZmZXJbbl07bz09PSJcciImJihvPXRoaXMuYnVmZmVyWy0tbl0pO2xldCBsPW47Zm9yKDtvPT09IiAiOylvPXRoaXMuYnVmZmVyWy0tbl07aWYobz09PWAKYCYmbj49dGhpcy5wb3MmJm4rMSt0PmwpZT1uO2Vsc2UgYnJlYWt9d2hpbGUoITApO3JldHVybiB5aWVsZCB3Myx5aWVsZCp0aGlzLnB1c2hUb0luZGV4KGUrMSwhMCkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpfSpwYXJzZVBsYWluU2NhbGFyKCl7bGV0IGU9dGhpcy5mbG93TGV2ZWw+MCx0PXRoaXMucG9zLTEsYT10aGlzLnBvcy0xLHI7Zm9yKDtyPXRoaXMuYnVmZmVyWysrYV07KWlmKHI9PT0iOiIpe2xldCBuPXRoaXMuYnVmZmVyW2ErMV07aWYoSTEobil8fGUmJldzZS5oYXMobikpYnJlYWs7dD1hfWVsc2UgaWYoSTEocikpe2xldCBuPXRoaXMuYnVmZmVyW2ErMV07aWYocj09PSJcciImJihuPT09YApgPyhhKz0xLHI9YApgLG49dGhpcy5idWZmZXJbYSsxXSk6dD1hKSxuPT09IiMifHxlJiZXc2UuaGFzKG4pKWJyZWFrO2lmKHI9PT1gCmApe2xldCBvPXRoaXMuY29udGludWVTY2FsYXIoYSsxKTtpZihvPT09LTEpYnJlYWs7YT1NYXRoLm1heChhLG8tMil9fWVsc2V7aWYoZSYmV3NlLmhhcyhyKSlicmVhazt0PWF9cmV0dXJuIXImJiF0aGlzLmF0RW5kP3RoaXMuc2V0TmV4dCgicGxhaW4tc2NhbGFyIik6KHlpZWxkIHczLHlpZWxkKnRoaXMucHVzaFRvSW5kZXgodCsxLCEwKSxlPyJmbG93IjoiZG9jIil9KnB1c2hDb3VudChlKXtyZXR1cm4gZT4wPyh5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsZSksdGhpcy5wb3MrPWUsZSk6MH0qcHVzaFRvSW5kZXgoZSx0KXtsZXQgYT10aGlzLmJ1ZmZlci5zbGljZSh0aGlzLnBvcyxlKTtyZXR1cm4gYT8oeWllbGQgYSx0aGlzLnBvcys9YS5sZW5ndGgsYS5sZW5ndGgpOih0JiYoeWllbGQiIiksMCl9KnB1c2hJbmRpY2F0b3JzKCl7c3dpdGNoKHRoaXMuY2hhckF0KDApKXtjYXNlIiEiOnJldHVybih5aWVsZCp0aGlzLnB1c2hUYWcoKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpO2Nhc2UiJiI6cmV0dXJuKHlpZWxkKnRoaXMucHVzaFVudGlsKEkzZSkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKSsoeWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpKTtjYXNlIi0iOmNhc2UiPyI6Y2FzZSI6Ijp7bGV0IGU9dGhpcy5mbG93TGV2ZWw+MCx0PXRoaXMuY2hhckF0KDEpO2lmKEkxKHQpfHxlJiZXc2UuaGFzKHQpKXJldHVybiBlP3RoaXMuZmxvd0tleSYmKHRoaXMuZmxvd0tleT0hMSk6dGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUrMSwoeWllbGQqdGhpcy5wdXNoQ291bnQoMSkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKSsoeWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpKX19cmV0dXJuIDB9KnB1c2hUYWcoKXtpZih0aGlzLmNoYXJBdCgxKT09PSI8Iil7bGV0IGU9dGhpcy5wb3MrMix0PXRoaXMuYnVmZmVyW2VdO2Zvcig7IUkxKHQpJiZ0IT09Ij4iOyl0PXRoaXMuYnVmZmVyWysrZV07cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgodD09PSI+Ij9lKzE6ZSwhMSl9ZWxzZXtsZXQgZT10aGlzLnBvcysxLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0OylpZihVQWEuaGFzKHQpKXQ9dGhpcy5idWZmZXJbKytlXTtlbHNlIGlmKHQ9PT0iJSImJlo1dC5oYXModGhpcy5idWZmZXJbZSsxXSkmJlo1dC5oYXModGhpcy5idWZmZXJbZSsyXSkpdD10aGlzLmJ1ZmZlcltlKz0zXTtlbHNlIGJyZWFrO3JldHVybiB5aWVsZCp0aGlzLnB1c2hUb0luZGV4KGUsITEpfX0qcHVzaE5ld2xpbmUoKXtsZXQgZT10aGlzLmJ1ZmZlclt0aGlzLnBvc107cmV0dXJuIGU9PT1gCmA/eWllbGQqdGhpcy5wdXNoQ291bnQoMSk6ZT09PSJcciImJnRoaXMuY2hhckF0KDEpPT09YApgP3lpZWxkKnRoaXMucHVzaENvdW50KDIpOjB9KnB1c2hTcGFjZXMoZSl7bGV0IHQ9dGhpcy5wb3MtMSxhO2RvIGE9dGhpcy5idWZmZXJbKyt0XTt3aGlsZShhPT09IiAifHxlJiZhPT09IgkiKTtsZXQgcj10LXRoaXMucG9zO3JldHVybiByPjAmJih5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsciksdGhpcy5wb3M9dCkscn0qcHVzaFVudGlsKGUpe2xldCB0PXRoaXMucG9zLGE9dGhpcy5idWZmZXJbdF07Zm9yKDshZShhKTspYT10aGlzLmJ1ZmZlclsrK3RdO3JldHVybiB5aWVsZCp0aGlzLnB1c2hUb0luZGV4KHQsITEpfX19KTt2YXIgVnAsTjNlPWcoKCk9PntWcD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMaW5lQ291bnRlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5saW5lU3RhcnRzPVtdLHRoaXMuYWRkTmV3TGluZT1lPT50aGlzLmxpbmVTdGFydHMucHVzaChlKSx0aGlzLmxpbmVQb3M9ZT0+e2xldCB0PTAsYT10aGlzLmxpbmVTdGFydHMubGVuZ3RoO2Zvcig7dDxhOyl7bGV0IG49dCthPj4xO3RoaXMubGluZVN0YXJ0c1tuXTxlP3Q9bisxOmE9bn1pZih0aGlzLmxpbmVTdGFydHNbdF09PT1lKXJldHVybntsaW5lOnQrMSxjb2w6MX07aWYodD09PTApcmV0dXJue2xpbmU6MCxjb2w6ZX07bGV0IHI9dGhpcy5saW5lU3RhcnRzW3QtMV07cmV0dXJue2xpbmU6dCxjb2w6ZS1yKzF9fX19fSk7ZnVuY3Rpb24gVXAocyxlKXtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoOysrdClpZihzW3RdLnR5cGU9PT1lKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFg1dChzKXtmb3IobGV0IGU9MDtlPHMubGVuZ3RoOysrZSlzd2l0Y2goc1tlXS50eXBlKXtjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gZX1yZXR1cm4tMX1mdW5jdGlvbiBRNXQocyl7c3dpdGNoKHM/LnR5cGUpe2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImZsb3ctY29sbGVjdGlvbiI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gR3NlKHMpe3N3aXRjaChzLnR5cGUpe2Nhc2UiZG9jdW1lbnQiOnJldHVybiBzLnN0YXJ0O2Nhc2UiYmxvY2stbWFwIjp7bGV0IGU9cy5pdGVtc1tzLml0ZW1zLmxlbmd0aC0xXTtyZXR1cm4gZS5zZXA/P2Uuc3RhcnR9Y2FzZSJibG9jay1zZXEiOnJldHVybiBzLml0ZW1zW3MuaXRlbXMubGVuZ3RoLTFdLnN0YXJ0O2RlZmF1bHQ6cmV0dXJuW119fWZ1bmN0aW9uIFU5KHMpe2lmKHMubGVuZ3RoPT09MClyZXR1cm5bXTtsZXQgZT1zLmxlbmd0aDtlOmZvcig7LS1lPj0wOylzd2l0Y2goc1tlXS50eXBlKXtjYXNlImRvYy1zdGFydCI6Y2FzZSJleHBsaWNpdC1rZXktaW5kIjpjYXNlIm1hcC12YWx1ZS1pbmQiOmNhc2Uic2VxLWl0ZW0taW5kIjpjYXNlIm5ld2xpbmUiOmJyZWFrIGV9Zm9yKDtzWysrZV0/LnR5cGU9PT0ic3BhY2UiOyk7cmV0dXJuIHMuc3BsaWNlKGUscy5sZW5ndGgpfWZ1bmN0aW9uIEo1dChzKXtpZihzLnN0YXJ0LnR5cGU9PT0iZmxvdy1zZXEtc3RhcnQiKWZvcihsZXQgZSBvZiBzLml0ZW1zKWUuc2VwJiYhZS52YWx1ZSYmIVVwKGUuc3RhcnQsImV4cGxpY2l0LWtleS1pbmQiKSYmIVVwKGUuc2VwLCJtYXAtdmFsdWUtaW5kIikmJihlLmtleSYmKGUudmFsdWU9ZS5rZXkpLGRlbGV0ZSBlLmtleSxRNXQoZS52YWx1ZSk/ZS52YWx1ZS5lbmQ/QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS52YWx1ZS5lbmQsZS5zZXApOmUudmFsdWUuZW5kPWUuc2VwOkFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUuc3RhcnQsZS5zZXApLGRlbGV0ZSBlLnNlcCl9dmFyICQwLFIzZT1nKCgpPT57VXNlKCk7QTNlKCk7aShVcCwiaW5jbHVkZXNUb2tlbiIpO2koWDV0LCJmaW5kTm9uRW1wdHlJbmRleCIpO2koUTV0LCJpc0Zsb3dUb2tlbiIpO2koR3NlLCJnZXRQcmV2UHJvcHMiKTtpKFU5LCJnZXRGaXJzdEtleVN0YXJ0UHJvcHMiKTtpKEo1dCwiZml4Rmxvd1NlcUl0ZW1zIik7JDA9Y2xhc3N7c3RhdGlje2kodGhpcywiUGFyc2VyIil9Y29uc3RydWN0b3IoZSl7dGhpcy5hdE5ld0xpbmU9ITAsdGhpcy5hdFNjYWxhcj0hMSx0aGlzLmluZGVudD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5vbktleUxpbmU9ITEsdGhpcy5zdGFjaz1bXSx0aGlzLnNvdXJjZT0iIix0aGlzLnR5cGU9IiIsdGhpcy5sZXhlcj1uZXcganAsdGhpcy5vbk5ld0xpbmU9ZX0qcGFyc2UoZSx0PSExKXt0aGlzLm9uTmV3TGluZSYmdGhpcy5vZmZzZXQ9PT0wJiZ0aGlzLm9uTmV3TGluZSgwKTtmb3IobGV0IGEgb2YgdGhpcy5sZXhlci5sZXgoZSx0KSl5aWVsZCp0aGlzLm5leHQoYSk7dHx8KHlpZWxkKnRoaXMuZW5kKCkpfSpuZXh0KGUpe2lmKHRoaXMuc291cmNlPWUsdGhpcy5hdFNjYWxhcil7dGhpcy5hdFNjYWxhcj0hMSx5aWVsZCp0aGlzLnN0ZXAoKSx0aGlzLm9mZnNldCs9ZS5sZW5ndGg7cmV0dXJufWxldCB0PVZzZShlKTtpZih0KWlmKHQ9PT0ic2NhbGFyIil0aGlzLmF0TmV3TGluZT0hMSx0aGlzLmF0U2NhbGFyPSEwLHRoaXMudHlwZT0ic2NhbGFyIjtlbHNle3N3aXRjaCh0aGlzLnR5cGU9dCx5aWVsZCp0aGlzLnN0ZXAoKSx0KXtjYXNlIm5ld2xpbmUiOnRoaXMuYXROZXdMaW5lPSEwLHRoaXMuaW5kZW50PTAsdGhpcy5vbk5ld0xpbmUmJnRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0K2UubGVuZ3RoKTticmVhaztjYXNlInNwYWNlIjp0aGlzLmF0TmV3TGluZSYmZVswXT09PSIgIiYmKHRoaXMuaW5kZW50Kz1lLmxlbmd0aCk7YnJlYWs7Y2FzZSJleHBsaWNpdC1rZXktaW5kIjpjYXNlIm1hcC12YWx1ZS1pbmQiOmNhc2Uic2VxLWl0ZW0taW5kIjp0aGlzLmF0TmV3TGluZSYmKHRoaXMuaW5kZW50Kz1lLmxlbmd0aCk7YnJlYWs7Y2FzZSJkb2MtbW9kZSI6Y2FzZSJmbG93LWVycm9yLWVuZCI6cmV0dXJuO2RlZmF1bHQ6dGhpcy5hdE5ld0xpbmU9ITF9dGhpcy5vZmZzZXQrPWUubGVuZ3RofWVsc2V7bGV0IGE9YE5vdCBhIFlBTUwgdG9rZW46ICR7ZX1gO3lpZWxkKnRoaXMucG9wKHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YSxzb3VyY2U6ZX0pLHRoaXMub2Zmc2V0Kz1lLmxlbmd0aH19KmVuZCgpe2Zvcig7dGhpcy5zdGFjay5sZW5ndGg+MDspeWllbGQqdGhpcy5wb3AoKX1nZXQgc291cmNlVG9rZW4oKXtyZXR1cm57dHlwZTp0aGlzLnR5cGUsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpzdGVwKCl7bGV0IGU9dGhpcy5wZWVrKDEpO2lmKHRoaXMudHlwZT09PSJkb2MtZW5kIiYmZT8udHlwZSE9PSJkb2MtZW5kIil7Zm9yKDt0aGlzLnN0YWNrLmxlbmd0aD4wOyl5aWVsZCp0aGlzLnBvcCgpO3RoaXMuc3RhY2sucHVzaCh7dHlwZToiZG9jLWVuZCIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX0pO3JldHVybn1pZighZSlyZXR1cm4geWllbGQqdGhpcy5zdHJlYW0oKTtzd2l0Y2goZS50eXBlKXtjYXNlImRvY3VtZW50IjpyZXR1cm4geWllbGQqdGhpcy5kb2N1bWVudChlKTtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMuc2NhbGFyKGUpO2Nhc2UiYmxvY2stc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5ibG9ja1NjYWxhcihlKTtjYXNlImJsb2NrLW1hcCI6cmV0dXJuIHlpZWxkKnRoaXMuYmxvY2tNYXAoZSk7Y2FzZSJibG9jay1zZXEiOnJldHVybiB5aWVsZCp0aGlzLmJsb2NrU2VxdWVuY2UoZSk7Y2FzZSJmbG93LWNvbGxlY3Rpb24iOnJldHVybiB5aWVsZCp0aGlzLmZsb3dDb2xsZWN0aW9uKGUpO2Nhc2UiZG9jLWVuZCI6cmV0dXJuIHlpZWxkKnRoaXMuZG9jdW1lbnRFbmQoZSl9eWllbGQqdGhpcy5wb3AoKX1wZWVrKGUpe3JldHVybiB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLWVdfSpwb3AoZSl7bGV0IHQ9ZT8/dGhpcy5zdGFjay5wb3AoKTtpZighdCl5aWVsZHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZToiIixtZXNzYWdlOiJUcmllZCB0byBwb3AgYW4gZW1wdHkgc3RhY2sifTtlbHNlIGlmKHRoaXMuc3RhY2subGVuZ3RoPT09MCl5aWVsZCB0O2Vsc2V7bGV0IGE9dGhpcy5wZWVrKDEpO3N3aXRjaCh0LnR5cGU9PT0iYmxvY2stc2NhbGFyIj90LmluZGVudD0iaW5kZW50ImluIGE/YS5pbmRlbnQ6MDp0LnR5cGU9PT0iZmxvdy1jb2xsZWN0aW9uIiYmYS50eXBlPT09ImRvY3VtZW50IiYmKHQuaW5kZW50PTApLHQudHlwZT09PSJmbG93LWNvbGxlY3Rpb24iJiZKNXQodCksYS50eXBlKXtjYXNlImRvY3VtZW50IjphLnZhbHVlPXQ7YnJlYWs7Y2FzZSJibG9jay1zY2FsYXIiOmEucHJvcHMucHVzaCh0KTticmVhaztjYXNlImJsb2NrLW1hcCI6e2xldCByPWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV07aWYoci52YWx1ZSl7YS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6dCxzZXA6W119KSx0aGlzLm9uS2V5TGluZT0hMDtyZXR1cm59ZWxzZSBpZihyLnNlcClyLnZhbHVlPXQ7ZWxzZXtPYmplY3QuYXNzaWduKHIse2tleTp0LHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSFyLmV4cGxpY2l0S2V5O3JldHVybn1icmVha31jYXNlImJsb2NrLXNlcSI6e2xldCByPWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV07ci52YWx1ZT9hLml0ZW1zLnB1c2goe3N0YXJ0OltdLHZhbHVlOnR9KTpyLnZhbHVlPXQ7YnJlYWt9Y2FzZSJmbG93LWNvbGxlY3Rpb24iOntsZXQgcj1hLml0ZW1zW2EuaXRlbXMubGVuZ3RoLTFdOyFyfHxyLnZhbHVlP2EuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5OnQsc2VwOltdfSk6ci5zZXA/ci52YWx1ZT10Ok9iamVjdC5hc3NpZ24ocix7a2V5OnQsc2VwOltdfSk7cmV0dXJufWRlZmF1bHQ6eWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnBvcCh0KX1pZigoYS50eXBlPT09ImRvY3VtZW50Inx8YS50eXBlPT09ImJsb2NrLW1hcCJ8fGEudHlwZT09PSJibG9jay1zZXEiKSYmKHQudHlwZT09PSJibG9jay1tYXAifHx0LnR5cGU9PT0iYmxvY2stc2VxIikpe2xldCByPXQuaXRlbXNbdC5pdGVtcy5sZW5ndGgtMV07ciYmIXIuc2VwJiYhci52YWx1ZSYmci5zdGFydC5sZW5ndGg+MCYmWDV0KHIuc3RhcnQpPT09LTEmJih0LmluZGVudD09PTB8fHIuc3RhcnQuZXZlcnkobj0+bi50eXBlIT09ImNvbW1lbnQifHxuLmluZGVudDx0LmluZGVudCkpJiYoYS50eXBlPT09ImRvY3VtZW50Ij9hLmVuZD1yLnN0YXJ0OmEuaXRlbXMucHVzaCh7c3RhcnQ6ci5zdGFydH0pLHQuaXRlbXMuc3BsaWNlKC0xLDEpKX19fSpzdHJlYW0oKXtzd2l0Y2godGhpcy50eXBlKXtjYXNlImRpcmVjdGl2ZS1saW5lIjp5aWVsZHt0eXBlOiJkaXJlY3RpdmUiLG9mZnNldDp0aGlzLm9mZnNldCxzb3VyY2U6dGhpcy5zb3VyY2V9O3JldHVybjtjYXNlImJ5dGUtb3JkZXItbWFyayI6Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOnlpZWxkIHRoaXMuc291cmNlVG9rZW47cmV0dXJuO2Nhc2UiZG9jLW1vZGUiOmNhc2UiZG9jLXN0YXJ0Ijp7bGV0IGU9e3R5cGU6ImRvY3VtZW50IixvZmZzZXQ6dGhpcy5vZmZzZXQsc3RhcnQ6W119O3RoaXMudHlwZT09PSJkb2Mtc3RhcnQiJiZlLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbiksdGhpcy5zdGFjay5wdXNoKGUpO3JldHVybn19eWllbGR7dHlwZToiZXJyb3IiLG9mZnNldDp0aGlzLm9mZnNldCxtZXNzYWdlOmBVbmV4cGVjdGVkICR7dGhpcy50eXBlfSB0b2tlbiBpbiBZQU1MIHN0cmVhbWAsc291cmNlOnRoaXMuc291cmNlfX0qZG9jdW1lbnQoZSl7aWYoZS52YWx1ZSlyZXR1cm4geWllbGQqdGhpcy5saW5lRW5kKGUpO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiZG9jLXN0YXJ0Ijp7WDV0KGUuc3RhcnQpIT09LTE/KHlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCkpOmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm59Y2FzZSJhbmNob3IiOmNhc2UidGFnIjpjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6ZS5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybn1sZXQgdD10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTt0P3RoaXMuc3RhY2sucHVzaCh0KTp5aWVsZHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgZG9jdW1lbnRgLHNvdXJjZTp0aGlzLnNvdXJjZX19KnNjYWxhcihlKXtpZih0aGlzLnR5cGU9PT0ibWFwLXZhbHVlLWluZCIpe2xldCB0PUdzZSh0aGlzLnBlZWsoMikpLGE9VTkodCkscjtlLmVuZD8ocj1lLmVuZCxyLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIGUuZW5kKTpyPVt0aGlzLnNvdXJjZVRva2VuXTtsZXQgbj17dHlwZToiYmxvY2stbWFwIixvZmZzZXQ6ZS5vZmZzZXQsaW5kZW50OmUuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6YSxrZXk6ZSxzZXA6cn1dfTt0aGlzLm9uS2V5TGluZT0hMCx0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdPW59ZWxzZSB5aWVsZCp0aGlzLmxpbmVFbmQoZSl9KmJsb2NrU2NhbGFyKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjplLnByb3BzLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2Uic2NhbGFyIjppZihlLnNvdXJjZT10aGlzLnNvdXJjZSx0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lKXtsZXQgdD10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCkrMTtmb3IoO3QhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCt0KSx0PXRoaXMuc291cmNlLmluZGV4T2YoYApgLHQpKzF9eWllbGQqdGhpcy5wb3AoKTticmVhaztkZWZhdWx0OnlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9fSpibG9ja01hcChlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UibmV3bGluZSI6aWYodGhpcy5vbktleUxpbmU9ITEsdC52YWx1ZSl7bGV0IGE9ImVuZCJpbiB0LnZhbHVlP3QudmFsdWUuZW5kOnZvaWQgMDsoQXJyYXkuaXNBcnJheShhKT9hW2EubGVuZ3RoLTFdOnZvaWQgMCk/LnR5cGU9PT0iY29tbWVudCI/YT8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pfWVsc2UgdC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6aWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2UgaWYodC5zZXApdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtlbHNle2lmKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQodC5zdGFydCxlLmluZGVudCkpe2xldCByPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMl0/LnZhbHVlPy5lbmQ7aWYoQXJyYXkuaXNBcnJheShyKSl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkocix0LnN0YXJ0KSxyLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZS5pdGVtcy5wb3AoKTtyZXR1cm59fXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKX1yZXR1cm59aWYodGhpcy5pbmRlbnQ+PWUuaW5kZW50KXtsZXQgYT0hdGhpcy5vbktleUxpbmUmJnRoaXMuaW5kZW50PT09ZS5pbmRlbnQscj1hJiYodC5zZXB8fHQuZXhwbGljaXRLZXkpJiZ0aGlzLnR5cGUhPT0ic2VxLWl0ZW0taW5kIixuPVtdO2lmKHImJnQuc2VwJiYhdC52YWx1ZSl7bGV0IG89W107Zm9yKGxldCBsPTA7bDx0LnNlcC5sZW5ndGg7KytsKXtsZXQgcD10LnNlcFtsXTtzd2l0Y2gocC50eXBlKXtjYXNlIm5ld2xpbmUiOm8ucHVzaChsKTticmVhaztjYXNlInNwYWNlIjpicmVhaztjYXNlImNvbW1lbnQiOnAuaW5kZW50PmUuaW5kZW50JiYoby5sZW5ndGg9MCk7YnJlYWs7ZGVmYXVsdDpvLmxlbmd0aD0wfX1vLmxlbmd0aD49MiYmKG49dC5zZXAuc3BsaWNlKG9bMV0pKX1zd2l0Y2godGhpcy50eXBlKXtjYXNlImFuY2hvciI6Y2FzZSJ0YWciOnJ8fHQudmFsdWU/KG4ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om59KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UiZXhwbGljaXQta2V5LWluZCI6IXQuc2VwJiYhdC5leHBsaWNpdEtleT8odC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHQuZXhwbGljaXRLZXk9ITApOnJ8fHQudmFsdWU/KG4ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om4sZXhwbGljaXRLZXk6ITB9KSk6dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl0sZXhwbGljaXRLZXk6ITB9XX0pLHRoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlIm1hcC12YWx1ZS1pbmQiOmlmKHQuZXhwbGljaXRLZXkpaWYodC5zZXApaWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtlbHNlIGlmKFVwKHQuc2VwLCJtYXAtdmFsdWUtaW5kIikpdGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpuLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pO2Vsc2UgaWYoUTV0KHQua2V5KSYmIVVwKHQuc2VwLCJuZXdsaW5lIikpe2xldCBvPVU5KHQuc3RhcnQpLGw9dC5rZXkscD10LnNlcDtwLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIHQua2V5LGRlbGV0ZSB0LnNlcCx0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Om8sa2V5Omwsc2VwOnB9XX0pfWVsc2Ugbi5sZW5ndGg+MD90LnNlcD10LnNlcC5jb25jYXQobix0aGlzLnNvdXJjZVRva2VuKTp0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2Vsc2UgaWYoVXAodC5zdGFydCwibmV3bGluZSIpKU9iamVjdC5hc3NpZ24odCx7a2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2V7bGV0IG89VTkodC5zdGFydCk7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpvLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pfWVsc2UgdC5zZXA/dC52YWx1ZXx8cj9lLml0ZW1zLnB1c2goe3N0YXJ0Om4sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pOlVwKHQuc2VwLCJtYXAtdmFsdWUtaW5kIik/dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbXSxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfV19KTp0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOk9iamVjdC5hc3NpZ24odCx7a2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO3RoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6e2xldCBvPXRoaXMuZmxvd1NjYWxhcih0aGlzLnR5cGUpO3J8fHQudmFsdWU/KGUuaXRlbXMucHVzaCh7c3RhcnQ6bixrZXk6byxzZXA6W119KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dGhpcy5zdGFjay5wdXNoKG8pOihPYmplY3QuYXNzaWduKHQse2tleTpvLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwKTtyZXR1cm59ZGVmYXVsdDp7bGV0IG89dGhpcy5zdGFydEJsb2NrVmFsdWUoZSk7aWYobyl7aWYoby50eXBlPT09ImJsb2NrLXNlcSIpe2lmKCF0LmV4cGxpY2l0S2V5JiZ0LnNlcCYmIVVwKHQuc2VwLCJuZXdsaW5lIikpe3lpZWxkKnRoaXMucG9wKHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6IlVuZXhwZWN0ZWQgYmxvY2stc2VxLWluZCBvbiBzYW1lIGxpbmUgd2l0aCBrZXkiLHNvdXJjZTp0aGlzLnNvdXJjZX0pO3JldHVybn19ZWxzZSBhJiZlLml0ZW1zLnB1c2goe3N0YXJ0Om59KTt0aGlzLnN0YWNrLnB1c2gobyk7cmV0dXJufX19fXlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9KmJsb2NrU2VxdWVuY2UoZSl7bGV0IHQ9ZS5pdGVtc1tlLml0ZW1zLmxlbmd0aC0xXTtzd2l0Y2godGhpcy50eXBlKXtjYXNlIm5ld2xpbmUiOmlmKHQudmFsdWUpe2xldCBhPSJlbmQiaW4gdC52YWx1ZT90LnZhbHVlLmVuZDp2b2lkIDA7KEFycmF5LmlzQXJyYXkoYSk/YVthLmxlbmd0aC0xXTp2b2lkIDApPy50eXBlPT09ImNvbW1lbnQiP2E/LnB1c2godGhpcy5zb3VyY2VUb2tlbik6ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KX1lbHNlIHQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjppZih0LnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtpZih0aGlzLmF0SW5kZW50ZWRDb21tZW50KHQuc3RhcnQsZS5pbmRlbnQpKXtsZXQgcj1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTJdPy52YWx1ZT8uZW5kO2lmKEFycmF5LmlzQXJyYXkocikpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHIsdC5zdGFydCksci5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucG9wKCk7cmV0dXJufX10LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbil9cmV0dXJuO2Nhc2UiYW5jaG9yIjpjYXNlInRhZyI6aWYodC52YWx1ZXx8dGhpcy5pbmRlbnQ8PWUuaW5kZW50KWJyZWFrO3Quc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzZXEtaXRlbS1pbmQiOmlmKHRoaXMuaW5kZW50IT09ZS5pbmRlbnQpYnJlYWs7dC52YWx1ZXx8VXAodC5zdGFydCwic2VxLWl0ZW0taW5kIik/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWlmKHRoaXMuaW5kZW50PmUuaW5kZW50KXtsZXQgYT10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihhKXt0aGlzLnN0YWNrLnB1c2goYSk7cmV0dXJufX15aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpfSpmbG93Q29sbGVjdGlvbihlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO2lmKHRoaXMudHlwZT09PSJmbG93LWVycm9yLWVuZCIpe2xldCBhO2RvIHlpZWxkKnRoaXMucG9wKCksYT10aGlzLnBlZWsoMSk7d2hpbGUoYT8udHlwZT09PSJmbG93LWNvbGxlY3Rpb24iKX1lbHNlIGlmKGUuZW5kLmxlbmd0aD09PTApe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2UiZXhwbGljaXQta2V5LWluZCI6IXR8fHQuc2VwP2UuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybjtjYXNlIm1hcC12YWx1ZS1pbmQiOiF0fHx0LnZhbHVlP2UuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pOnQuc2VwP3Quc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik6T2JqZWN0LmFzc2lnbih0LHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7cmV0dXJuO2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjpjYXNlImFuY2hvciI6Y2FzZSJ0YWciOiF0fHx0LnZhbHVlP2UuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjp7bGV0IHI9dGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7IXR8fHQudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6cixzZXA6W119KTp0LnNlcD90aGlzLnN0YWNrLnB1c2gocik6T2JqZWN0LmFzc2lnbih0LHtrZXk6cixzZXA6W119KTtyZXR1cm59Y2FzZSJmbG93LW1hcC1lbmQiOmNhc2UiZmxvdy1zZXEtZW5kIjplLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybn1sZXQgYT10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTthP3RoaXMuc3RhY2sucHVzaChhKTooeWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKSl9ZWxzZXtsZXQgYT10aGlzLnBlZWsoMik7aWYoYS50eXBlPT09ImJsb2NrLW1hcCImJih0aGlzLnR5cGU9PT0ibWFwLXZhbHVlLWluZCImJmEuaW5kZW50PT09ZS5pbmRlbnR8fHRoaXMudHlwZT09PSJuZXdsaW5lIiYmIWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV0uc2VwKSl5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpO2Vsc2UgaWYodGhpcy50eXBlPT09Im1hcC12YWx1ZS1pbmQiJiZhLnR5cGUhPT0iZmxvdy1jb2xsZWN0aW9uIil7bGV0IHI9R3NlKGEpLG49VTkocik7SjV0KGUpO2xldCBvPWUuZW5kLnNwbGljZSgxLGUuZW5kLmxlbmd0aCk7by5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2xldCBsPXt0eXBlOiJibG9jay1tYXAiLG9mZnNldDplLm9mZnNldCxpbmRlbnQ6ZS5pbmRlbnQsaXRlbXM6W3tzdGFydDpuLGtleTplLHNlcDpvfV19O3RoaXMub25LZXlMaW5lPSEwLHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV09bH1lbHNlIHlpZWxkKnRoaXMubGluZUVuZChlKX19Zmxvd1NjYWxhcihlKXtpZih0aGlzLm9uTmV3TGluZSl7bGV0IHQ9dGhpcy5zb3VyY2UuaW5kZXhPZihgCmApKzE7Zm9yKDt0IT09MDspdGhpcy5vbk5ld0xpbmUodGhpcy5vZmZzZXQrdCksdD10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCx0KSsxfXJldHVybnt0eXBlOmUsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxzb3VyY2U6dGhpcy5zb3VyY2V9fXN0YXJ0QmxvY2tWYWx1ZShlKXtzd2l0Y2godGhpcy50eXBlKXtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6cmV0dXJuIHRoaXMuZmxvd1NjYWxhcih0aGlzLnR5cGUpO2Nhc2UiYmxvY2stc2NhbGFyLWhlYWRlciI6cmV0dXJue3R5cGU6ImJsb2NrLXNjYWxhciIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxwcm9wczpbdGhpcy5zb3VyY2VUb2tlbl0sc291cmNlOiIifTtjYXNlImZsb3ctbWFwLXN0YXJ0IjpjYXNlImZsb3ctc2VxLXN0YXJ0IjpyZXR1cm57dHlwZToiZmxvdy1jb2xsZWN0aW9uIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHN0YXJ0OnRoaXMuc291cmNlVG9rZW4saXRlbXM6W10sZW5kOltdfTtjYXNlInNlcS1pdGVtLWluZCI6cmV0dXJue3R5cGU6ImJsb2NrLXNlcSIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX1dfTtjYXNlImV4cGxpY2l0LWtleS1pbmQiOnt0aGlzLm9uS2V5TGluZT0hMDtsZXQgdD1Hc2UoZSksYT1VOSh0KTtyZXR1cm4gYS5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDphLGV4cGxpY2l0S2V5OiEwfV19fWNhc2UibWFwLXZhbHVlLWluZCI6e3RoaXMub25LZXlMaW5lPSEwO2xldCB0PUdzZShlKSxhPVU5KHQpO3JldHVybnt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDphLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX19fXJldHVybiBudWxsfWF0SW5kZW50ZWRDb21tZW50KGUsdCl7cmV0dXJuIHRoaXMudHlwZSE9PSJjb21tZW50Inx8dGhpcy5pbmRlbnQ8PXQ/ITE6ZS5ldmVyeShhPT5hLnR5cGU9PT0ibmV3bGluZSJ8fGEudHlwZT09PSJzcGFjZSIpfSpkb2N1bWVudEVuZChlKXt0aGlzLnR5cGUhPT0iZG9jLW1vZGUiJiYoZS5lbmQ/ZS5lbmQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLmVuZD1bdGhpcy5zb3VyY2VUb2tlbl0sdGhpcy50eXBlPT09Im5ld2xpbmUiJiYoeWllbGQqdGhpcy5wb3AoKSkpfSpsaW5lRW5kKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2UiZG9jLXN0YXJ0IjpjYXNlImRvYy1lbmQiOmNhc2UiZmxvdy1zZXEtZW5kIjpjYXNlImZsb3ctbWFwLWVuZCI6Y2FzZSJtYXAtdmFsdWUtaW5kIjp5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpO2JyZWFrO2Nhc2UibmV3bGluZSI6dGhpcy5vbktleUxpbmU9ITE7ZGVmYXVsdDplLmVuZD9lLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuZW5kPVt0aGlzLnNvdXJjZVRva2VuXSx0aGlzLnR5cGU9PT0ibmV3bGluZSImJih5aWVsZCp0aGlzLnBvcCgpKX19fX0pO2Z1bmN0aW9uIGU4dChzKXtsZXQgZT1zLnByZXR0eUVycm9ycyE9PSExO3JldHVybntsaW5lQ291bnRlcjpzLmxpbmVDb3VudGVyfHxlJiZuZXcgVnB8fG51bGwscHJldHR5RXJyb3JzOmV9fWZ1bmN0aW9uIEtzZShzLGU9e30pe2xldHtsaW5lQ291bnRlcjp0LHByZXR0eUVycm9yczphfT1lOHQoZSkscj1uZXcgJDAodD8uYWRkTmV3TGluZSksbj1uZXcgQzAoZSksbz1BcnJheS5mcm9tKG4uY29tcG9zZShyLnBhcnNlKHMpKSk7aWYoYSYmdClmb3IobGV0IGwgb2YgbylsLmVycm9ycy5mb3JFYWNoKEY5KHMsdCkpLGwud2FybmluZ3MuZm9yRWFjaChGOShzLHQpKTtyZXR1cm4gby5sZW5ndGg+MD9vOk9iamVjdC5hc3NpZ24oW10se2VtcHR5OiEwfSxuLnN0cmVhbUluZm8oKSl9ZnVuY3Rpb24gZWsocyxlPXt9KXtsZXR7bGluZUNvdW50ZXI6dCxwcmV0dHlFcnJvcnM6YX09ZTh0KGUpLHI9bmV3ICQwKHQ/LmFkZE5ld0xpbmUpLG49bmV3IEMwKGUpLG89bnVsbDtmb3IobGV0IGwgb2Ygbi5jb21wb3NlKHIucGFyc2UocyksITAscy5sZW5ndGgpKWlmKCFvKW89bDtlbHNlIGlmKG8ub3B0aW9ucy5sb2dMZXZlbCE9PSJzaWxlbnQiKXtvLmVycm9ycy5wdXNoKG5ldyBrbihsLnJhbmdlLnNsaWNlKDAsMiksIk1VTFRJUExFX0RPQ1MiLCJTb3VyY2UgY29udGFpbnMgbXVsdGlwbGUgZG9jdW1lbnRzOyBwbGVhc2UgdXNlIFlBTUwucGFyc2VBbGxEb2N1bWVudHMoKSIpKTticmVha31yZXR1cm4gYSYmdCYmKG8uZXJyb3JzLmZvckVhY2goRjkocyx0KSksby53YXJuaW5ncy5mb3JFYWNoKEY5KHMsdCkpKSxvfWZ1bmN0aW9uIFlzZShzLGUsdCl7bGV0IGE7dHlwZW9mIGU9PSJmdW5jdGlvbiI/YT1lOnQ9PT12b2lkIDAmJmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHQ9ZSk7bGV0IHI9ZWsocyx0KTtpZighcilyZXR1cm4gbnVsbDtpZihyLndhcm5pbmdzLmZvckVhY2gobj0+THcoci5vcHRpb25zLmxvZ0xldmVsLG4pKSxyLmVycm9ycy5sZW5ndGg+MCl7aWYoci5vcHRpb25zLmxvZ0xldmVsIT09InNpbGVudCIpdGhyb3cgci5lcnJvcnNbMF07ci5lcnJvcnM9W119cmV0dXJuIHIudG9KUyhPYmplY3QuYXNzaWduKHtyZXZpdmVyOmF9LHQpKX1mdW5jdGlvbiBac2UocyxlLHQpe2xldCBhPW51bGw7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiJ8fEFycmF5LmlzQXJyYXkoZSk/YT1lOnQ9PT12b2lkIDAmJmUmJih0PWUpLHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQ9dC5sZW5ndGgpLHR5cGVvZiB0PT0ibnVtYmVyIil7bGV0IHI9TWF0aC5yb3VuZCh0KTt0PXI8MT92b2lkIDA6cj44P3tpbmRlbnQ6OH06e2luZGVudDpyfX1pZihzPT09dm9pZCAwKXtsZXR7a2VlcFVuZGVmaW5lZDpyfT10Pz9lPz97fTtpZighcilyZXR1cm59cmV0dXJuIHhsKHMpJiYhYT9zLnRvU3RyaW5nKHQpOm5ldyBMYyhzLGEsdCkudG9TdHJpbmcodCl9dmFyIHQ4dD1nKCgpPT57QzNlKCk7VXcoKTtXdygpO0g0ZSgpO3VzKCk7TjNlKCk7UjNlKCk7aShlOHQsInBhcnNlT3B0aW9ucyIpO2koS3NlLCJwYXJzZUFsbERvY3VtZW50cyIpO2koZWssInBhcnNlRG9jdW1lbnQiKTtpKFlzZSwicGFyc2UiKTtpKFpzZSwic3RyaW5naWZ5Iil9KTt2YXIgTzNlPXt9O3l0KE8zZSx7QWxpYXM6KCk9PkNjLENTVDooKT0+SncsQ29tcG9zZXI6KCk9PkMwLERvY3VtZW50OigpPT5MYyxMZXhlcjooKT0+anAsTGluZUNvdW50ZXI6KCk9PlZwLFBhaXI6KCk9PmNpLFBhcnNlcjooKT0+JDAsU2NhbGFyOigpPT5MdCxTY2hlbWE6KCk9PkJwLFlBTUxFcnJvcjooKT0+SHAsWUFNTE1hcDooKT0+eWksWUFNTFBhcnNlRXJyb3I6KCk9PmtuLFlBTUxTZXE6KCk9PlZyLFlBTUxXYXJuaW5nOigpPT5xcCxpc0FsaWFzOigpPT52bCxpc0NvbGxlY3Rpb246KCk9PmRzLGlzRG9jdW1lbnQ6KCk9PnhsLGlzTWFwOigpPT55bCxpc05vZGU6KCk9PklhLGlzUGFpcjooKT0+Q2EsaXNTY2FsYXI6KCk9PmxhLGlzU2VxOigpPT53bCxwYXJzZTooKT0+WXNlLHBhcnNlQWxsRG9jdW1lbnRzOigpPT5Lc2UscGFyc2VEb2N1bWVudDooKT0+ZWssc3RyaW5naWZ5OigpPT5ac2UsdmlzaXQ6KCk9PkhsLHZpc2l0QXN5bmM6KCk9PmYzfSk7dmFyIEYzZT1nKCgpPT57QzNlKCk7VXcoKTtwM2UoKTtXdygpO2t3KCk7dXMoKTtOcCgpO19yKCk7UnAoKTtPcCgpO1VzZSgpO0EzZSgpO04zZSgpO1IzZSgpO3Q4dCgpO3l3KCl9KTt2YXIgazM9e307eXQoazMse0FsaWFzOigpPT5DYyxDU1Q6KCk9Pkp3LENvbXBvc2VyOigpPT5DMCxEb2N1bWVudDooKT0+TGMsTGV4ZXI6KCk9PmpwLExpbmVDb3VudGVyOigpPT5WcCxQYWlyOigpPT5jaSxQYXJzZXI6KCk9PiQwLFNjYWxhcjooKT0+THQsU2NoZW1hOigpPT5CcCxZQU1MRXJyb3I6KCk9PkhwLFlBTUxNYXA6KCk9PnlpLFlBTUxQYXJzZUVycm9yOigpPT5rbixZQU1MU2VxOigpPT5WcixZQU1MV2FybmluZzooKT0+cXAsZGVmYXVsdDooKT0+R0FhLGlzQWxpYXM6KCk9PnZsLGlzQ29sbGVjdGlvbjooKT0+ZHMsaXNEb2N1bWVudDooKT0+eGwsaXNNYXA6KCk9PnlsLGlzTm9kZTooKT0+SWEsaXNQYWlyOigpPT5DYSxpc1NjYWxhcjooKT0+bGEsaXNTZXE6KCk9PndsLHBhcnNlOigpPT5Zc2UscGFyc2VBbGxEb2N1bWVudHM6KCk9PktzZSxwYXJzZURvY3VtZW50OigpPT5layxzdHJpbmdpZnk6KCk9PlpzZSx2aXNpdDooKT0+SGwsdmlzaXRBc3luYzooKT0+ZjN9KTt2YXIgR0FhLGE4dD1nKCgpPT57RjNlKCk7RjNlKCk7R0FhPU8zZX0pO3ZhciBzOHQ9ZygoKT0+e2E4dCgpfSk7dmFyIHRrPXt9O3l0KHRrLHtnZXRZYW1sRG9jRnJvbVN0cmluZzooKT0+WEFhLG9iamVjdFRvWWFtbFN0cmluZzooKT0+WkFhLHlhbWxTdHJpbmdUb09iamVjdDooKT0+WUFhfSk7dmFyIFlBYSxaQWEsWEFhLGk4dD1nKCgpPT57czh0KCk7WUFhPWkoYXN5bmMgcz0+azMucGFyc2UocyksInlhbWxTdHJpbmdUb09iamVjdCIpLFpBYT1pKGFzeW5jIHM9PmszLnN0cmluZ2lmeShzKSwib2JqZWN0VG9ZYW1sU3RyaW5nIiksWEFhPWkoYXN5bmMgcz0+azMucGFyc2VEb2N1bWVudChzKSwiZ2V0WWFtbERvY0Zyb21TdHJpbmciKX0pO2Z1bmN0aW9uIEIzZShzKXtpZihzKXRocm93IHN9dmFyIHI4dD1nKCgpPT57aShCM2UsImJhaWwiKX0pO3ZhciBmOHQ9cGwoKFdzaSxoOHQpPT57InVzZSBzdHJpY3QiO3ZhciBYc2U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxvOHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxuOHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LGw4dD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGM4dD1pKGZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXkuaXNBcnJheT09ImZ1bmN0aW9uIj9BcnJheS5pc0FycmF5KGUpOm84dC5jYWxsKGUpPT09IltvYmplY3QgQXJyYXldIn0sImlzQXJyYXkiKSxkOHQ9aShmdW5jdGlvbihlKXtpZighZXx8bzh0LmNhbGwoZSkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgdD1Yc2UuY2FsbChlLCJjb25zdHJ1Y3RvciIpLGE9ZS5jb25zdHJ1Y3RvciYmZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJlhzZS5jYWxsKGUuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIik7aWYoZS5jb25zdHJ1Y3RvciYmIXQmJiFhKXJldHVybiExO3ZhciByO2ZvcihyIGluIGUpO3JldHVybiB0eXBlb2Ygcj4idSJ8fFhzZS5jYWxsKGUscil9LCJpc1BsYWluT2JqZWN0IiksdTh0PWkoZnVuY3Rpb24oZSx0KXtuOHQmJnQubmFtZT09PSJfX3Byb3RvX18iP244dChlLHQubmFtZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6dC5uZXdWYWx1ZSx3cml0YWJsZTohMH0pOmVbdC5uYW1lXT10Lm5ld1ZhbHVlfSwic2V0UHJvcGVydHkiKSxwOHQ9aShmdW5jdGlvbihlLHQpe2lmKHQ9PT0iX19wcm90b19fIilpZihYc2UuY2FsbChlLHQpKXtpZihsOHQpcmV0dXJuIGw4dChlLHQpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiBlW3RdfSwiZ2V0UHJvcGVydHkiKTtoOHQuZXhwb3J0cz1pKGZ1bmN0aW9uIHMoKXt2YXIgZSx0LGEscixuLG8sbD1hcmd1bWVudHNbMF0scD0xLGQ9YXJndW1lbnRzLmxlbmd0aCx1PSExO2Zvcih0eXBlb2YgbD09ImJvb2xlYW4iJiYodT1sLGw9YXJndW1lbnRzWzFdfHx7fSxwPTIpLChsPT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCImJnR5cGVvZiBsIT0iZnVuY3Rpb24iKSYmKGw9e30pO3A8ZDsrK3ApaWYoZT1hcmd1bWVudHNbcF0sZSE9bnVsbClmb3IodCBpbiBlKWE9cDh0KGwsdCkscj1wOHQoZSx0KSxsIT09ciYmKHUmJnImJihkOHQocil8fChuPWM4dChyKSkpPyhuPyhuPSExLG89YSYmYzh0KGEpP2E6W10pOm89YSYmZDh0KGEpP2E6e30sdTh0KGwse25hbWU6dCxuZXdWYWx1ZTpzKHUsbyxyKX0pKTp0eXBlb2YgcjwidSImJnU4dChsLHtuYW1lOnQsbmV3VmFsdWU6cn0pKTtyZXR1cm4gbH0sImV4dGVuZCIpfSk7dmFyIFdwPWcoKCk9Pnt9KTtmdW5jdGlvbiBhayhzKXtpZih0eXBlb2YgcyE9Im9iamVjdCJ8fHM9PT1udWxsKXJldHVybiExO2xldCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZihzKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gcykmJiEoU3ltYm9sLml0ZXJhdG9yIGluIHMpfXZhciBtOHQ9ZygoKT0+e2koYWssImlzUGxhaW5PYmplY3QiKX0pO2Z1bmN0aW9uIEgzZSgpe2xldCBzPVtdLGU9e3J1bjp0LHVzZTphfTtyZXR1cm4gZTtmdW5jdGlvbiB0KC4uLnIpe2xldCBuPS0xLG89ci5wb3AoKTtpZih0eXBlb2YgbyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIitvKTtsKG51bGwsLi4ucik7ZnVuY3Rpb24gbChwLC4uLmQpe2xldCB1PXNbKytuXSxjPS0xO2lmKHApe28ocCk7cmV0dXJufWZvcig7KytjPHIubGVuZ3RoOykoZFtjXT09PW51bGx8fGRbY109PT12b2lkIDApJiYoZFtjXT1yW2NdKTtyPWQsdT9nOHQodSxsKSguLi5kKTpvKG51bGwsLi4uZCl9aShsLCJuZXh0Iil9ZnVuY3Rpb24gYShyKXtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrcik7cmV0dXJuIHMucHVzaChyKSxlfX1mdW5jdGlvbiBnOHQocyxlKXtsZXQgdDtyZXR1cm4gYTtmdW5jdGlvbiBhKC4uLm8pe2xldCBsPXMubGVuZ3RoPm8ubGVuZ3RoLHA7bCYmby5wdXNoKHIpO3RyeXtwPXMuYXBwbHkodGhpcyxvKX1jYXRjaChkKXtsZXQgdT1kO2lmKGwmJnQpdGhyb3cgdTtyZXR1cm4gcih1KX1sfHwocCYmcC50aGVuJiZ0eXBlb2YgcC50aGVuPT0iZnVuY3Rpb24iP3AudGhlbihuLHIpOnAgaW5zdGFuY2VvZiBFcnJvcj9yKHApOm4ocCkpfWZ1bmN0aW9uIHIobywuLi5sKXt0fHwodD0hMCxlKG8sLi4ubCkpfWZ1bmN0aW9uIG4obyl7cihudWxsLG8pfX12YXIgYjh0PWcoKCk9PntpKEgzZSwidHJvdWdoIik7aShnOHQsIndyYXAiKX0pO3ZhciB2OHQ9ZygoKT0+e2I4dCgpfSk7ZnVuY3Rpb24gR3Aocyl7cmV0dXJuIXN8fHR5cGVvZiBzIT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gc3x8InR5cGUiaW4gcz94OHQocy5wb3NpdGlvbik6InN0YXJ0ImluIHN8fCJlbmQiaW4gcz94OHQocyk6ImxpbmUiaW4gc3x8ImNvbHVtbiJpbiBzP3EzZShzKToiIn1mdW5jdGlvbiBxM2Uocyl7cmV0dXJuIHk4dChzJiZzLmxpbmUpKyI6Iit5OHQocyYmcy5jb2x1bW4pfWZ1bmN0aW9uIHg4dChzKXtyZXR1cm4gcTNlKHMmJnMuc3RhcnQpKyItIitxM2UocyYmcy5lbmQpfWZ1bmN0aW9uIHk4dChzKXtyZXR1cm4gcyYmdHlwZW9mIHM9PSJudW1iZXIiP3M6MX12YXIgdzh0PWcoKCk9PntpKEdwLCJzdHJpbmdpZnlQb3NpdGlvbiIpO2kocTNlLCJwb2ludCIpO2koeDh0LCJwb3NpdGlvbiIpO2koeTh0LCJpbmRleCIpfSk7dmFyIGozZT1nKCgpPT57dzh0KCl9KTt2YXIgY28sazh0PWcoKCk9PntqM2UoKTtjbz1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIlZGaWxlTWVzc2FnZSIpfWNvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcigpLHR5cGVvZiB0PT0ic3RyaW5nIiYmKGE9dCx0PXZvaWQgMCk7bGV0IHI9IiIsbj17fSxvPSExO2lmKHQmJigibGluZSJpbiB0JiYiY29sdW1uImluIHQ/bj17cGxhY2U6dH06InN0YXJ0ImluIHQmJiJlbmQiaW4gdD9uPXtwbGFjZTp0fToidHlwZSJpbiB0P249e2FuY2VzdG9yczpbdF0scGxhY2U6dC5wb3NpdGlvbn06bj17Li4udH0pLHR5cGVvZiBlPT0ic3RyaW5nIj9yPWU6IW4uY2F1c2UmJmUmJihvPSEwLHI9ZS5tZXNzYWdlLG4uY2F1c2U9ZSksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBhPT0ic3RyaW5nIil7bGV0IHA9YS5pbmRleE9mKCI6Iik7cD09PS0xP24ucnVsZUlkPWE6KG4uc291cmNlPWEuc2xpY2UoMCxwKSxuLnJ1bGVJZD1hLnNsaWNlKHArMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBwPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtwJiYobi5wbGFjZT1wLnBvc2l0aW9uKX1sZXQgbD1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1sP2wuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPXIsdGhpcy5saW5lPWw/bC5saW5lOnZvaWQgMCx0aGlzLm5hbWU9R3Aobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtjby5wcm90b3R5cGUuZmlsZT0iIixjby5wcm90b3R5cGUubmFtZT0iIixjby5wcm90b3R5cGUucmVhc29uPSIiLGNvLnByb3RvdHlwZS5tZXNzYWdlPSIiLGNvLnByb3RvdHlwZS5zdGFjaz0iIixjby5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxjby5wcm90b3R5cGUubGluZT12b2lkIDAsY28ucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsY28ucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxjby5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLGNvLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsY28ucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsY28ucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgUzh0PWcoKCk9PntrOHQoKX0pO2Z1bmN0aW9uIFFBYShzLGUpe2lmKGUhPT12b2lkIDAmJnR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7c2socyk7bGV0IHQ9MCxhPS0xLHI9cy5sZW5ndGgsbjtpZihlPT09dm9pZCAwfHxlLmxlbmd0aD09PTB8fGUubGVuZ3RoPnMubGVuZ3RoKXtmb3IoO3ItLTspaWYocy5jb2RlUG9pbnRBdChyKT09PTQ3KXtpZihuKXt0PXIrMTticmVha319ZWxzZSBhPDAmJihuPSEwLGE9cisxKTtyZXR1cm4gYTwwPyIiOnMuc2xpY2UodCxhKX1pZihlPT09cylyZXR1cm4iIjtsZXQgbz0tMSxsPWUubGVuZ3RoLTE7Zm9yKDtyLS07KWlmKHMuY29kZVBvaW50QXQocik9PT00Nyl7aWYobil7dD1yKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPXIrMSksbD4tMSYmKHMuY29kZVBvaW50QXQocik9PT1lLmNvZGVQb2ludEF0KGwtLSk/bDwwJiYoYT1yKToobD0tMSxhPW8pKTtyZXR1cm4gdD09PWE/YT1vOmE8MCYmKGE9cy5sZW5ndGgpLHMuc2xpY2UodCxhKX1mdW5jdGlvbiBKQWEocyl7aWYoc2socykscy5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgZT0tMSx0PXMubGVuZ3RoLGE7Zm9yKDstLXQ7KWlmKHMuY29kZVBvaW50QXQodCk9PT00Nyl7aWYoYSl7ZT10O2JyZWFrfX1lbHNlIGF8fChhPSEwKTtyZXR1cm4gZTwwP3MuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOmU9PT0xJiZzLmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjpzLnNsaWNlKDAsZSl9ZnVuY3Rpb24gZU5hKHMpe3NrKHMpO2xldCBlPXMubGVuZ3RoLHQ9LTEsYT0wLHI9LTEsbj0wLG87Zm9yKDtlLS07KXtsZXQgbD1zLmNvZGVQb2ludEF0KGUpO2lmKGw9PT00Nyl7aWYobyl7YT1lKzE7YnJlYWt9Y29udGludWV9dDwwJiYobz0hMCx0PWUrMSksbD09PTQ2P3I8MD9yPWU6biE9PTEmJihuPTEpOnI+LTEmJihuPS0xKX1yZXR1cm4gcjwwfHx0PDB8fG49PT0wfHxuPT09MSYmcj09PXQtMSYmcj09PWErMT8iIjpzLnNsaWNlKHIsdCl9ZnVuY3Rpb24gdE5hKC4uLnMpe2xldCBlPS0xLHQ7Zm9yKDsrK2U8cy5sZW5ndGg7KXNrKHNbZV0pLHNbZV0mJih0PXQ9PT12b2lkIDA/c1tlXTp0KyIvIitzW2VdKTtyZXR1cm4gdD09PXZvaWQgMD8iLiI6YU5hKHQpfWZ1bmN0aW9uIGFOYShzKXtzayhzKTtsZXQgZT1zLmNvZGVQb2ludEF0KDApPT09NDcsdD1zTmEocywhZSk7cmV0dXJuIHQubGVuZ3RoPT09MCYmIWUmJih0PSIuIiksdC5sZW5ndGg+MCYmcy5jb2RlUG9pbnRBdChzLmxlbmd0aC0xKT09PTQ3JiYodCs9Ii8iKSxlPyIvIit0OnR9ZnVuY3Rpb24gc05hKHMsZSl7bGV0IHQ9IiIsYT0wLHI9LTEsbj0wLG89LTEsbCxwO2Zvcig7KytvPD1zLmxlbmd0aDspe2lmKG88cy5sZW5ndGgpbD1zLmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYobD09PTQ3KWJyZWFrO2w9NDd9aWYobD09PTQ3KXtpZighKHI9PT1vLTF8fG49PT0xKSlpZihyIT09by0xJiZuPT09Mil7aWYodC5sZW5ndGg8Mnx8YSE9PTJ8fHQuY29kZVBvaW50QXQodC5sZW5ndGgtMSkhPT00Nnx8dC5jb2RlUG9pbnRBdCh0Lmxlbmd0aC0yKSE9PTQ2KXtpZih0Lmxlbmd0aD4yKXtpZihwPXQubGFzdEluZGV4T2YoIi8iKSxwIT09dC5sZW5ndGgtMSl7cDwwPyh0PSIiLGE9MCk6KHQ9dC5zbGljZSgwLHApLGE9dC5sZW5ndGgtMS10Lmxhc3RJbmRleE9mKCIvIikpLHI9byxuPTA7Y29udGludWV9fWVsc2UgaWYodC5sZW5ndGg+MCl7dD0iIixhPTAscj1vLG49MDtjb250aW51ZX19ZSYmKHQ9dC5sZW5ndGg+MD90KyIvLi4iOiIuLiIsYT0yKX1lbHNlIHQubGVuZ3RoPjA/dCs9Ii8iK3Muc2xpY2UocisxLG8pOnQ9cy5zbGljZShyKzEsbyksYT1vLXItMTtyPW8sbj0wfWVsc2UgbD09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiB0fWZ1bmN0aW9uIHNrKHMpe2lmKHR5cGVvZiBzIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkocykpfXZhciBBMSxfOHQ9ZygoKT0+e0ExPXtiYXNlbmFtZTpRQWEsZGlybmFtZTpKQWEsZXh0bmFtZTplTmEsam9pbjp0TmEsc2VwOiIvIn07aShRQWEsImJhc2VuYW1lIik7aShKQWEsImRpcm5hbWUiKTtpKGVOYSwiZXh0bmFtZSIpO2kodE5hLCJqb2luIik7aShhTmEsIm5vcm1hbGl6ZSIpO2koc05hLCJub3JtYWxpemVTdHJpbmciKTtpKHNrLCJhc3NlcnRQYXRoIil9KTtmdW5jdGlvbiBpTmEoKXtyZXR1cm4iLyJ9dmFyIE04dCx6OHQ9ZygoKT0+e004dD17Y3dkOmlOYX07aShpTmEsImN3ZCIpfSk7ZnVuY3Rpb24gVzkocyl7cmV0dXJuISEocyE9PW51bGwmJnR5cGVvZiBzPT0ib2JqZWN0IiYmImhyZWYiaW4gcyYmcy5ocmVmJiYicHJvdG9jb2wiaW4gcyYmcy5wcm90b2NvbCYmcy5hdXRoPT09dm9pZCAwKX12YXIgVjNlPWcoKCk9PntpKFc5LCJpc1VybCIpfSk7ZnVuY3Rpb24gQzh0KHMpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIilzPW5ldyBVUkwocyk7ZWxzZSBpZighVzkocykpe2xldCBlPW5ldyBUeXBlRXJyb3IoJ1RoZSAicGF0aCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnK3MrImAiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX0FSR19UWVBFIixlfWlmKHMucHJvdG9jb2whPT0iZmlsZToiKXtsZXQgZT1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLGV9cmV0dXJuIHJOYShzKX1mdW5jdGlvbiByTmEocyl7aWYocy5ob3N0bmFtZSE9PSIiKXtsZXQgYT1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgYS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixhfWxldCBlPXMucGF0aG5hbWUsdD0tMTtmb3IoOysrdDxlLmxlbmd0aDspaWYoZS5jb2RlUG9pbnRBdCh0KT09PTM3JiZlLmNvZGVQb2ludEF0KHQrMSk9PT01MCl7bGV0IGE9ZS5jb2RlUG9pbnRBdCh0KzIpO2lmKGE9PT03MHx8YT09PTEwMil7bGV0IHI9bmV3IFR5cGVFcnJvcigiRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzIik7dGhyb3cgci5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIIixyfX1yZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUpfXZhciBUOHQ9ZygoKT0+e1YzZSgpO1YzZSgpO2koQzh0LCJ1cmxUb1BhdGgiKTtpKHJOYSwiZ2V0UGF0aEZyb21VUkxQb3NpeCIpfSk7ZnVuY3Rpb24gVzNlKHMsZSl7aWYocyYmcy5pbmNsdWRlcyhBMS5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIitBMS5zZXArImAiKX1mdW5jdGlvbiBHM2UocyxlKXtpZighcyl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGVtcHR5Iil9ZnVuY3Rpb24gJDh0KHMsZSl7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nIGAiK2UrImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28iKX1mdW5jdGlvbiBvTmEocyl7cmV0dXJuISEocyYmdHlwZW9mIHM9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBzJiYiYnl0ZU9mZnNldCJpbiBzKX12YXIgVTNlLGlrLEQ4dD1nKCgpPT57Uzh0KCk7Xzh0KCk7ejh0KCk7VDh0KCk7VTNlPVsiaGlzdG9yeSIsInBhdGgiLCJiYXNlbmFtZSIsInN0ZW0iLCJleHRuYW1lIiwiZGlybmFtZSJdLGlrPWNsYXNze3N0YXRpY3tpKHRoaXMsIlZGaWxlIil9Y29uc3RydWN0b3IoZSl7bGV0IHQ7ZT9XOShlKT90PXtwYXRoOmV9OnR5cGVvZiBlPT0ic3RyaW5nInx8b05hKGUpP3Q9e3ZhbHVlOmV9OnQ9ZTp0PXt9LHRoaXMuY3dkPSJjd2QiaW4gdD8iIjpNOHQuY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IGE9LTE7Zm9yKDsrK2E8VTNlLmxlbmd0aDspe2xldCBuPVUzZVthXTtuIGluIHQmJnRbbl0hPT12b2lkIDAmJnRbbl0hPT1udWxsJiYodGhpc1tuXT1uPT09Imhpc3RvcnkiP1suLi50W25dXTp0W25dKX1sZXQgcjtmb3IociBpbiB0KVUzZS5pbmNsdWRlcyhyKXx8KHRoaXNbcl09dFtyXSl9Z2V0IGJhc2VuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0ExLmJhc2VuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBiYXNlbmFtZShlKXtHM2UoZSwiYmFzZW5hbWUiKSxXM2UoZSwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9QTEuam9pbih0aGlzLmRpcm5hbWV8fCIiLGUpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0ExLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUoZSl7JDh0KHRoaXMuYmFzZW5hbWUsImRpcm5hbWUiKSx0aGlzLnBhdGg9QTEuam9pbihlfHwiIix0aGlzLmJhc2VuYW1lKX1nZXQgZXh0bmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9BMS5leHRuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBleHRuYW1lKGUpe2lmKFczZShlLCJleHRuYW1lIiksJDh0KHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLGUpe2lmKGUuY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYoZS5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD1BMS5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKGV8fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgoZSl7VzkoZSkmJihlPUM4dChlKSksRzNlKGUsInBhdGgiKSx0aGlzLnBhdGghPT1lJiZ0aGlzLmhpc3RvcnkucHVzaChlKX1nZXQgc3RlbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9BMS5iYXNlbmFtZSh0aGlzLnBhdGgsdGhpcy5leHRuYW1lKTp2b2lkIDB9c2V0IHN0ZW0oZSl7RzNlKGUsInN0ZW0iKSxXM2UoZSwic3RlbSIpLHRoaXMucGF0aD1BMS5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSsodGhpcy5leHRuYW1lfHwiIikpfWZhaWwoZSx0LGEpe2xldCByPXRoaXMubWVzc2FnZShlLHQsYSk7dGhyb3cgci5mYXRhbD0hMCxyfWluZm8oZSx0LGEpe2xldCByPXRoaXMubWVzc2FnZShlLHQsYSk7cmV0dXJuIHIuZmF0YWw9dm9pZCAwLHJ9bWVzc2FnZShlLHQsYSl7bGV0IHI9bmV3IGNvKGUsdCxhKTtyZXR1cm4gdGhpcy5wYXRoJiYoci5uYW1lPXRoaXMucGF0aCsiOiIrci5uYW1lLHIuZmlsZT10aGlzLnBhdGgpLHIuZmF0YWw9ITEsdGhpcy5tZXNzYWdlcy5wdXNoKHIpLHJ9dG9TdHJpbmcoZSl7cmV0dXJuIHRoaXMudmFsdWU9PT12b2lkIDA/IiI6dHlwZW9mIHRoaXMudmFsdWU9PSJzdHJpbmciP3RoaXMudmFsdWU6bmV3IFRleHREZWNvZGVyKGV8fHZvaWQgMCkuZGVjb2RlKHRoaXMudmFsdWUpfX07aShXM2UsImFzc2VydFBhcnQiKTtpKEczZSwiYXNzZXJ0Tm9uRW1wdHkiKTtpKCQ4dCwiYXNzZXJ0UGF0aCIpO2kob05hLCJpc1VpbnQ4QXJyYXkiKX0pO3ZhciBMOHQ9ZygoKT0+e0Q4dCgpfSk7dmFyIEU4dCxQOHQ9ZygoKT0+e0U4dD1pKChmdW5jdGlvbihzKXtsZXQgYT10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxyPWFbc10sbj1pKGZ1bmN0aW9uKCl7cmV0dXJuIHIuYXBwbHkobixhcmd1bWVudHMpfSwiYXBwbHkiKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG4sYSksbn0pLCJDYWxsYWJsZUluc3RhbmNlIil9KTtmdW5jdGlvbiBZM2UocyxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrcysiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24gWjNlKHMsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK3MrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gWDNlKHMsZSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK3MrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiBJOHQocyl7aWYoIWFrKHMpfHx0eXBlb2Ygcy50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrcysiYCIpfWZ1bmN0aW9uIEE4dChzLGUsdCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJgIitzKyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrZSsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gUXNlKHMpe3JldHVybiBsTmEocyk/czpuZXcgaWsocyl9ZnVuY3Rpb24gbE5hKHMpe3JldHVybiEhKHMmJnR5cGVvZiBzPT0ib2JqZWN0IiYmIm1lc3NhZ2UiaW4gcyYmIm1lc3NhZ2VzImluIHMpfWZ1bmN0aW9uIGNOYShzKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmcifHxkTmEocyl9ZnVuY3Rpb24gZE5hKHMpe3JldHVybiEhKHMmJnR5cGVvZiBzPT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gcyYmImJ5dGVPZmZzZXQiaW4gcyl9dmFyIEpzZSxuTmEsSzNlLHJrLE44dD1nKCgpPT57cjh0KCk7SnNlPXhuKGY4dCgpLDEpO1dwKCk7bTh0KCk7djh0KCk7TDh0KCk7UDh0KCk7bk5hPXt9Lmhhc093blByb3BlcnR5LEszZT1jbGFzcyBzIGV4dGVuZHMgRTh0e3N0YXRpY3tpKHRoaXMsIlByb2Nlc3NvciIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPUgzZSgpfWNvcHkoKXtsZXQgZT1uZXcgcyx0PS0xO2Zvcig7Kyt0PHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBhPXRoaXMuYXR0YWNoZXJzW3RdO2UudXNlKC4uLmEpfXJldHVybiBlLmRhdGEoKDAsSnNlLmRlZmF1bHQpKCEwLHt9LHRoaXMubmFtZXNwYWNlKSksZX1kYXRhKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9hcmd1bWVudHMubGVuZ3RoPT09Mj8oWDNlKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2VbZV09dCx0aGlzKTpuTmEuY2FsbCh0aGlzLm5hbWVzcGFjZSxlKSYmdGhpcy5uYW1lc3BhY2VbZV18fHZvaWQgMDplPyhYM2UoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZT1lLHRoaXMpOnRoaXMubmFtZXNwYWNlfWZyZWV6ZSgpe2lmKHRoaXMuZnJvemVuKXJldHVybiB0aGlzO2xldCBlPXRoaXM7Zm9yKDsrK3RoaXMuZnJlZXplSW5kZXg8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0W3QsLi4uYV09dGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF07aWYoYVswXT09PSExKWNvbnRpbnVlO2FbMF09PT0hMCYmKGFbMF09dm9pZCAwKTtsZXQgcj10LmNhbGwoZSwuLi5hKTt0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmdGhpcy50cmFuc2Zvcm1lcnMudXNlKHIpfXJldHVybiB0aGlzLmZyb3plbj0hMCx0aGlzLmZyZWV6ZUluZGV4PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0aGlzfXBhcnNlKGUpe3RoaXMuZnJlZXplKCk7bGV0IHQ9UXNlKGUpLGE9dGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyO3JldHVybiBZM2UoInBhcnNlIixhKSxhKFN0cmluZyh0KSx0KX1wcm9jZXNzKGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gdGhpcy5mcmVlemUoKSxZM2UoInByb2Nlc3MiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksWjNlKCJwcm9jZXNzIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSx0P3Iodm9pZCAwLHQpOm5ldyBQcm9taXNlKHIpO2Z1bmN0aW9uIHIobixvKXtsZXQgbD1Rc2UoZSkscD1hLnBhcnNlKGwpO2EucnVuKHAsbCxmdW5jdGlvbih1LGMsYil7aWYodXx8IWN8fCFiKXJldHVybiBkKHUpO2xldCB2PWMseD1hLnN0cmluZ2lmeSh2LGIpO2NOYSh4KT9iLnZhbHVlPXg6Yi5yZXN1bHQ9eCxkKHUsYil9KTtmdW5jdGlvbiBkKHUsYyl7dXx8IWM/byh1KTpuP24oYyk6dCh2b2lkIDAsYyl9aShkLCJyZWFsRG9uZSIpfWkociwiZXhlY3V0b3IiKX1wcm9jZXNzU3luYyhlKXtsZXQgdD0hMSxhO3JldHVybiB0aGlzLmZyZWV6ZSgpLFkzZSgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksWjNlKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKGUsciksQTh0KCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLHQpLGE7ZnVuY3Rpb24gcihuLG8pe3Q9ITAsQjNlKG4pLGE9b31pKHIsInJlYWxEb25lIil9cnVuKGUsdCxhKXtJOHQoZSksdGhpcy5mcmVlemUoKTtsZXQgcj10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4hYSYmdHlwZW9mIHQ9PSJmdW5jdGlvbiImJihhPXQsdD12b2lkIDApLGE/bih2b2lkIDAsYSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLGwpe2xldCBwPVFzZSh0KTtyLnJ1bihlLHAsZCk7ZnVuY3Rpb24gZCh1LGMsYil7bGV0IHY9Y3x8ZTt1P2wodSk6bz9vKHYpOmEodm9pZCAwLHYsYil9aShkLCJyZWFsRG9uZSIpfWkobiwiZXhlY3V0b3IiKX1ydW5TeW5jKGUsdCl7bGV0IGE9ITEscjtyZXR1cm4gdGhpcy5ydW4oZSx0LG4pLEE4dCgicnVuU3luYyIsInJ1biIsYSkscjtmdW5jdGlvbiBuKG8sbCl7QjNlKG8pLHI9bCxhPSEwfWkobiwicmVhbERvbmUiKX1zdHJpbmdpZnkoZSx0KXt0aGlzLmZyZWV6ZSgpO2xldCBhPVFzZSh0KSxyPXRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXI7cmV0dXJuIFozZSgic3RyaW5naWZ5IixyKSxJOHQoZSkscihlLGEpfXVzZShlLC4uLnQpe2xldCBhPXRoaXMuYXR0YWNoZXJzLHI9dGhpcy5uYW1lc3BhY2U7aWYoWDNlKCJ1c2UiLHRoaXMuZnJvemVuKSxlIT1udWxsKWlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXAoZSx0KTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilBcnJheS5pc0FycmF5KGUpP2woZSk6byhlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2UrImAiKTtyZXR1cm4gdGhpcztmdW5jdGlvbiBuKGQpe2lmKHR5cGVvZiBkPT0iZnVuY3Rpb24iKXAoZCxbXSk7ZWxzZSBpZih0eXBlb2YgZD09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShkKSl7bGV0W3UsLi4uY109ZDtwKHUsYyl9ZWxzZSBvKGQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZCsiYCIpfWZ1bmN0aW9uIG8oZCl7aWYoISgicGx1Z2lucyJpbiBkKSYmISgic2V0dGluZ3MiaW4gZCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlciIpO2woZC5wbHVnaW5zKSxkLnNldHRpbmdzJiYoci5zZXR0aW5ncz0oMCxKc2UuZGVmYXVsdCkoITAsci5zZXR0aW5ncyxkLnNldHRpbmdzKSl9ZnVuY3Rpb24gbChkKXtsZXQgdT0tMTtpZihkIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoZCkpZm9yKDsrK3U8ZC5sZW5ndGg7KXtsZXQgYz1kW3VdO24oYyl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2QrImAiKX1mdW5jdGlvbiBwKGQsdSl7bGV0IGM9LTEsYj0tMTtmb3IoOysrYzxhLmxlbmd0aDspaWYoYVtjXVswXT09PWQpe2I9YzticmVha31pZihiPT09LTEpYS5wdXNoKFtkLC4uLnVdKTtlbHNlIGlmKHUubGVuZ3RoPjApe2xldFt2LC4uLnhdPXUsbT1hW2JdWzFdO2FrKG0pJiZhayh2KSYmKHY9KDAsSnNlLmRlZmF1bHQpKCEwLG0sdikpLGFbYl09W2QsdiwuLi54XX19fX0scms9bmV3IEszZSgpLmZyZWV6ZSgpO2koWTNlLCJhc3NlcnRQYXJzZXIiKTtpKFozZSwiYXNzZXJ0Q29tcGlsZXIiKTtpKFgzZSwiYXNzZXJ0VW5mcm96ZW4iKTtpKEk4dCwiYXNzZXJ0Tm9kZSIpO2koQTh0LCJhc3NlcnREb25lIik7aShRc2UsInZmaWxlIik7aShsTmEsImxvb2tzTGlrZUFWRmlsZSIpO2koY05hLCJsb29rc0xpa2VBVmFsdWUiKTtpKGROYSwiaXNVaW50OEFycmF5Iil9KTt2YXIgUjh0PWcoKCk9PntOOHQoKX0pO2Z1bmN0aW9uIEs5KHMsZSl7bGV0IHQ9U3RyaW5nKHMpO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgYT0wLHI9dC5pbmRleE9mKGUpO2Zvcig7ciE9PS0xOylhKysscj10LmluZGV4T2YoZSxyK2UubGVuZ3RoKTtyZXR1cm4gYX12YXIgUTNlPWcoKCk9PntpKEs5LCJjY291bnQiKX0pO2Z1bmN0aW9uIFMzKHMpe3JldHVybiBzIT09bnVsbCYmKHM8MzJ8fHM9PT0xMjcpfWZ1bmN0aW9uIHZ0KHMpe3JldHVybiBzIT09bnVsbCYmczwtMn1mdW5jdGlvbiBBYShzKXtyZXR1cm4gcyE9PW51bGwmJihzPDB8fHM9PT0zMil9ZnVuY3Rpb24gSHQocyl7cmV0dXJuIHM9PT0tMnx8cz09PS0xfHxzPT09MzJ9ZnVuY3Rpb24gS3Aocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCE9PW51bGwmJnQ+LTEmJnMudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKX19dmFyIFVyLEJpLE84dCxvayxGOHQsQjh0LF8zLGdkLFZhPWcoKCk9PntVcj1LcCgvW0EtWmEtel0vKSxCaT1LcCgvW1xkQS1aYS16XS8pLE84dD1LcCgvWyMtJyorXC0tOT0/QS1aXi1+XS8pO2koUzMsImFzY2lpQ29udHJvbCIpO29rPUtwKC9cZC8pLEY4dD1LcCgvW1xkQS1GYS1mXS8pLEI4dD1LcCgvWyEtLzotQFstYHstfl0vKTtpKHZ0LCJtYXJrZG93bkxpbmVFbmRpbmciKTtpKEFhLCJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIik7aShIdCwibWFya2Rvd25TcGFjZSIpO18zPUtwKC9ccHtQfXxccHtTfS91KSxnZD1LcCgvXHMvKTtpKEtwLCJyZWdleENoZWNrIil9KTtmdW5jdGlvbiB1TmEocyl7bGV0IGU9W10sdD0tMTtmb3IoOysrdDxzLmxlbmd0aDspZVt0XT1EMChzW3RdKTtyZXR1cm4gZWllKGEpO2Z1bmN0aW9uIGEoLi4ucil7bGV0IG49LTE7Zm9yKDsrK248ZS5sZW5ndGg7KWlmKGVbbl0uYXBwbHkodGhpcyxyKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gcE5hKHMpe2xldCBlPXM7cmV0dXJuIGVpZSh0KTtmdW5jdGlvbiB0KGEpe2xldCByPWEsbjtmb3IobiBpbiBzKWlmKHJbbl0hPT1lW25dKXJldHVybiExO3JldHVybiEwfX1mdW5jdGlvbiBoTmEocyl7cmV0dXJuIGVpZShlKTtmdW5jdGlvbiBlKHQpe3JldHVybiB0JiZ0LnR5cGU9PT1zfX1mdW5jdGlvbiBlaWUocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0LGEscil7cmV0dXJuISEoSDh0KHQpJiZzLmNhbGwodGhpcyx0LHR5cGVvZiBhPT0ibnVtYmVyIj9hOnZvaWQgMCxyfHx2b2lkIDApKX19ZnVuY3Rpb24gZk5hKCl7cmV0dXJuITB9ZnVuY3Rpb24gSDh0KHMpe3JldHVybiBzIT09bnVsbCYmdHlwZW9mIHM9PSJvYmplY3QiJiYidHlwZSJpbiBzfXZhciBxOHQsRDAsajh0PWcoKCk9PntxOHQ9aSgoZnVuY3Rpb24ocyxlLHQsYSxyKXtsZXQgbj1EMChlKTtpZih0IT1udWxsJiYodHlwZW9mIHQhPSJudW1iZXIifHx0PDB8fHQ9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4Iik7aWYoYSE9bnVsbCYmKCFxOHQoYSl8fCFhLmNoaWxkcmVuKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCBub2RlIik7aWYoYT09bnVsbCE9KHQ9PW51bGwpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4Iik7cmV0dXJuIEg4dChzKT9uLmNhbGwocixzLHQsYSk6ITF9KSwiaXMiKSxEMD1pKChmdW5jdGlvbihzKXtpZihzPT1udWxsKXJldHVybiBmTmE7aWYodHlwZW9mIHM9PSJmdW5jdGlvbiIpcmV0dXJuIGVpZShzKTtpZih0eXBlb2Ygcz09Im9iamVjdCIpcmV0dXJuIEFycmF5LmlzQXJyYXkocyk/dU5hKHMpOnBOYShzKTtpZih0eXBlb2Ygcz09InN0cmluZyIpcmV0dXJuIGhOYShzKTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0Iil9KSwiY29udmVydCIpO2kodU5hLCJhbnlGYWN0b3J5Iik7aShwTmEsInByb3BlcnRpZXNGYWN0b3J5Iik7aShoTmEsInR5cGVGYWN0b3J5Iik7aShlaWUsImNhc3RGYWN0b3J5Iik7aShmTmEsIm9rIik7aShIOHQsImxvb2tzTGlrZUFOb2RlIil9KTt2YXIgdGllPWcoKCk9PntqOHQoKX0pO3ZhciBWOHQ9ZygoKT0+e30pO2Z1bmN0aW9uIG5rKHMsZSx0LGEpe2xldCByO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIj8oYT10LHQ9ZSk6cj1lO2xldCBuPUQwKHIpLG89YT8tMToxO2wocyx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gbChwLGQsdSl7bGV0IGM9cCYmdHlwZW9mIHA9PSJvYmplY3QiP3A6e307aWYodHlwZW9mIGMudHlwZT09InN0cmluZyIpe2xldCB2PXR5cGVvZiBjLnRhZ05hbWU9PSJzdHJpbmciP2MudGFnTmFtZTp0eXBlb2YgYy5uYW1lPT0ic3RyaW5nIj9jLm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKHAudHlwZSsodj8iPCIrdisiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gYjtmdW5jdGlvbiBiKCl7bGV0IHY9VTh0LHgsbSxmO2lmKCghZXx8bihwLGQsdVt1Lmxlbmd0aC0xXXx8dm9pZCAwKSkmJih2PW1OYSh0KHAsdSkpLHZbMF09PT1NMykpcmV0dXJuIHY7aWYoImNoaWxkcmVuImluIHAmJnAuY2hpbGRyZW4pe2xldCB5PXA7aWYoeS5jaGlsZHJlbiYmdlswXSE9PXNpZSlmb3IobT0oYT95LmNoaWxkcmVuLmxlbmd0aDotMSkrbyxmPXUuY29uY2F0KHkpO20+LTEmJm08eS5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgTT15LmNoaWxkcmVuW21dO2lmKHg9bChNLG0sZikoKSx4WzBdPT09TTMpcmV0dXJuIHg7bT10eXBlb2YgeFsxXT09Im51bWJlciI/eFsxXTptK299fXJldHVybiB2fX1pKGwsImZhY3RvcnkiKX1mdW5jdGlvbiBtTmEocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/czp0eXBlb2Ygcz09Im51bWJlciI/W2FpZSxzXTpzPT1udWxsP1U4dDpbc119dmFyIFU4dCxhaWUsTTMsc2llLFc4dD1nKCgpPT57dGllKCk7Vjh0KCk7VTh0PVtdLGFpZT0hMCxNMz0hMSxzaWU9InNraXAiO2kobmssInZpc2l0UGFyZW50cyIpO2kobU5hLCJ0b1Jlc3VsdCIpfSk7dmFyIGlpZT1nKCgpPT57Vzh0KCl9KTtmdW5jdGlvbiBKM2UocyxlLHQpe2xldCByPUQwKCh0fHx7fSkuaWdub3JlfHxbXSksbj1nTmEoZSksbz0tMTtmb3IoOysrbzxuLmxlbmd0aDspbmsocywidGV4dCIsbCk7ZnVuY3Rpb24gbChkLHUpe2xldCBjPS0xLGI7Zm9yKDsrK2M8dS5sZW5ndGg7KXtsZXQgdj11W2NdLHg9Yj9iLmNoaWxkcmVuOnZvaWQgMDtpZihyKHYseD94LmluZGV4T2Yodik6dm9pZCAwLGIpKXJldHVybjtiPXZ9aWYoYilyZXR1cm4gcChkLHUpfWkobCwidmlzaXRvciIpO2Z1bmN0aW9uIHAoZCx1KXtsZXQgYz11W3UubGVuZ3RoLTFdLGI9bltvXVswXSx2PW5bb11bMV0seD0wLGY9Yy5jaGlsZHJlbi5pbmRleE9mKGQpLHk9ITEsTT1bXTtiLmxhc3RJbmRleD0wO2xldCB6PWIuZXhlYyhkLnZhbHVlKTtmb3IoO3o7KXtsZXQgTj16LmluZGV4LEM9e2luZGV4OnouaW5kZXgsaW5wdXQ6ei5pbnB1dCxzdGFjazpbLi4udSxkXX0sXz12KC4uLnosQyk7aWYodHlwZW9mIF89PSJzdHJpbmciJiYoXz1fLmxlbmd0aD4wP3t0eXBlOiJ0ZXh0Iix2YWx1ZTpffTp2b2lkIDApLF89PT0hMT9iLmxhc3RJbmRleD1OKzE6KHghPT1OJiZNLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2UoeCxOKX0pLEFycmF5LmlzQXJyYXkoXyk/TS5wdXNoKC4uLl8pOl8mJk0ucHVzaChfKSx4PU4relswXS5sZW5ndGgseT0hMCksIWIuZ2xvYmFsKWJyZWFrO3o9Yi5leGVjKGQudmFsdWUpfXJldHVybiB5Pyh4PGQudmFsdWUubGVuZ3RoJiZNLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2UoeCl9KSxjLmNoaWxkcmVuLnNwbGljZShmLDEsLi4uTSkpOk09W2RdLGYrTS5sZW5ndGh9aShwLCJoYW5kbGVyIil9ZnVuY3Rpb24gZ05hKHMpe2xldCBlPVtdO2lmKCFBcnJheS5pc0FycmF5KHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZpbmQgYW5kIHJlcGxhY2UgdHVwbGUgb3IgbGlzdCBvZiB0dXBsZXMiKTtsZXQgdD0hc1swXXx8QXJyYXkuaXNBcnJheShzWzBdKT9zOltzXSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOyl7bGV0IHI9dFthXTtlLnB1c2goW2JOYShyWzBdKSx2TmEoclsxXSldKX1yZXR1cm4gZX1mdW5jdGlvbiBiTmEocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9uZXcgUmVnRXhwKFc0KHMpLCJnIik6c31mdW5jdGlvbiB2TmEocyl7cmV0dXJuIHR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6ZnVuY3Rpb24oKXtyZXR1cm4gc319dmFyIEc4dD1nKCgpPT57JGVlKCk7aWllKCk7dGllKCk7aShKM2UsImZpbmRBbmRSZXBsYWNlIik7aShnTmEsInRvUGFpcnMiKTtpKGJOYSwidG9FeHByZXNzaW9uIik7aSh2TmEsInRvRnVuY3Rpb24iKX0pO3ZhciBLOHQ9ZygoKT0+e0c4dCgpfSk7ZnVuY3Rpb24gc2ZlKCl7cmV0dXJue3RyYW5zZm9ybXM6W19OYV0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazp4TmEsbGl0ZXJhbEF1dG9saW5rRW1haWw6YWZlLGxpdGVyYWxBdXRvbGlua0h0dHA6YWZlLGxpdGVyYWxBdXRvbGlua1d3dzphZmV9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazpTTmEsbGl0ZXJhbEF1dG9saW5rRW1haWw6a05hLGxpdGVyYWxBdXRvbGlua0h0dHA6eU5hLGxpdGVyYWxBdXRvbGlua1d3dzp3TmF9fX1mdW5jdGlvbiBpZmUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OmVmZSxub3RJbkNvbnN0cnVjdDp0ZmV9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6ZWZlLG5vdEluQ29uc3RydWN0OnRmZX0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDplZmUsbm90SW5Db25zdHJ1Y3Q6dGZlfV19fWZ1bmN0aW9uIHhOYShzKXt0aGlzLmVudGVyKHt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX0scyl9ZnVuY3Rpb24gYWZlKHMpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIHlOYShzKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIHdOYShzKXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLHMpO2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZS50eXBlLGUudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKHMpfWZ1bmN0aW9uIGtOYShzKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIFNOYShzKXt0aGlzLmV4aXQocyl9ZnVuY3Rpb24gX05hKHMpe0ozZShzLFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSxNTmFdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3Usek5hXV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiBNTmEocyxlLHQsYSxyKXtsZXQgbj0iIjtpZighWTh0KHIpfHwoL153L2kudGVzdChlKSYmKHQ9ZSt0LGU9IiIsbj0iaHR0cDovLyIpLCFDTmEodCkpKXJldHVybiExO2xldCBvPVROYSh0K2EpO2lmKCFvWzBdKXJldHVybiExO2xldCBsPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpuK2Urb1swXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrb1swXX1dfTtyZXR1cm4gb1sxXT9bbCx7dHlwZToidGV4dCIsdmFsdWU6b1sxXX1dOmx9ZnVuY3Rpb24gek5hKHMsZSx0LGEpe3JldHVybiFZOHQoYSwhMCl8fC9bLVxkX10kLy50ZXN0KHQpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrZSsiQCIrdCxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrIkAiK3R9XX19ZnVuY3Rpb24gQ05hKHMpe2xldCBlPXMuc3BsaXQoIi4iKTtyZXR1cm4hKGUubGVuZ3RoPDJ8fGVbZS5sZW5ndGgtMV0mJigvXy8udGVzdChlW2UubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMV0pKXx8ZVtlLmxlbmd0aC0yXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBUTmEocyl7bGV0IGU9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWMocyk7aWYoIWUpcmV0dXJuW3Msdm9pZCAwXTtzPXMuc2xpY2UoMCxlLmluZGV4KTtsZXQgdD1lWzBdLGE9dC5pbmRleE9mKCIpIikscj1LOShzLCIoIiksbj1LOShzLCIpIik7Zm9yKDthIT09LTEmJnI+bjspcys9dC5zbGljZSgwLGErMSksdD10LnNsaWNlKGErMSksYT10LmluZGV4T2YoIikiKSxuKys7cmV0dXJuW3MsdF19ZnVuY3Rpb24gWTh0KHMsZSl7bGV0IHQ9cy5pbnB1dC5jaGFyQ29kZUF0KHMuaW5kZXgtMSk7cmV0dXJuKHMuaW5kZXg9PT0wfHxnZCh0KXx8XzModCkpJiYoIWV8fHQhPT00Nyl9dmFyIGVmZSx0ZmUsWjh0PWcoKCk9PntRM2UoKTtXcCgpO1ZhKCk7Szh0KCk7ZWZlPSJwaHJhc2luZyIsdGZlPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdO2koc2ZlLCJnZm1BdXRvbGlua0xpdGVyYWxGcm9tTWFya2Rvd24iKTtpKGlmZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93biIpO2koeE5hLCJlbnRlckxpdGVyYWxBdXRvbGluayIpO2koYWZlLCJlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlIik7aSh5TmEsImV4aXRMaXRlcmFsQXV0b2xpbmtIdHRwIik7aSh3TmEsImV4aXRMaXRlcmFsQXV0b2xpbmtXd3ciKTtpKGtOYSwiZXhpdExpdGVyYWxBdXRvbGlua0VtYWlsIik7aShTTmEsImV4aXRMaXRlcmFsQXV0b2xpbmsiKTtpKF9OYSwidHJhbnNmb3JtR2ZtQXV0b2xpbmtMaXRlcmFscyIpO2koTU5hLCJmaW5kVXJsIik7aSh6TmEsImZpbmRFbWFpbCIpO2koQ05hLCJpc0NvcnJlY3REb21haW4iKTtpKFROYSwic3BsaXRVcmwiKTtpKFk4dCwicHJldmlvdXMiKX0pO3ZhciBYOHQ9ZygoKT0+e1o4dCgpfSk7ZnVuY3Rpb24gSGkocyl7cmV0dXJuIHMucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfXZhciBZcD1nKCgpPT57aShIaSwibm9ybWFsaXplSWRlbnRpZmllciIpfSk7ZnVuY3Rpb24gJE5hKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBETmEocyl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVSZWZlcmVuY2UiLGlkZW50aWZpZXI6IiIsbGFiZWw6IiJ9LHMpfWZ1bmN0aW9uIExOYSgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gRU5hKHMpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlRGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDoiIixjaGlsZHJlbjpbXX0scyl9ZnVuY3Rpb24gUE5hKHMpe2xldCBlPXRoaXMucmVzdW1lKCksdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3QudHlwZSx0LmlkZW50aWZpZXI9SGkodGhpcy5zbGljZVNlcmlhbGl6ZShzKSkudG9Mb3dlckNhc2UoKSx0LmxhYmVsPWV9ZnVuY3Rpb24gSU5hKHMpe3RoaXMuZXhpdChzKX1mdW5jdGlvbiBBTmEocyl7bGV0IGU9dGhpcy5yZXN1bWUoKSx0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dC50eXBlLHQuaWRlbnRpZmllcj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKHMpKS50b0xvd2VyQ2FzZSgpLHQubGFiZWw9ZX1mdW5jdGlvbiBOTmEocyl7dGhpcy5leGl0KHMpfWZ1bmN0aW9uIFJOYSgpe3JldHVybiJbIn1mdW5jdGlvbiBROHQocyxlLHQsYSl7bGV0IHI9dC5jcmVhdGVUcmFja2VyKGEpLG49ci5tb3ZlKCJbXiIpLG89dC5lbnRlcigiZm9vdG5vdGVSZWZlcmVuY2UiKSxsPXQuZW50ZXIoInJlZmVyZW5jZSIpO3JldHVybiBuKz1yLm1vdmUodC5zYWZlKHQuYXNzb2NpYXRpb25JZChzKSx7YWZ0ZXI6Il0iLGJlZm9yZTpufSkpLGwoKSxvKCksbis9ci5tb3ZlKCJdIiksbn1mdW5jdGlvbiByZmUoKXtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzokTmEsZ2ZtRm9vdG5vdGVDYWxsOkROYSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpMTmEsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOkVOYX0sZXhpdDp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOlBOYSxnZm1Gb290bm90ZUNhbGw6SU5hLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOkFOYSxnZm1Gb290bm90ZURlZmluaXRpb246Tk5hfX19ZnVuY3Rpb24gb2ZlKHMpe2xldCBlPSExO3JldHVybiBzJiZzLmZpcnN0TGluZUJsYW5rJiYoZT0hMCkse2hhbmRsZXJzOntmb290bm90ZURlZmluaXRpb246dCxmb290bm90ZVJlZmVyZW5jZTpROHR9LHVuc2FmZTpbe2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInBocmFzaW5nIiwicmVmZXJlbmNlIl19XX07ZnVuY3Rpb24gdChhLHIsbixvKXtsZXQgbD1uLmNyZWF0ZVRyYWNrZXIobykscD1sLm1vdmUoIlteIiksZD1uLmVudGVyKCJmb290bm90ZURlZmluaXRpb24iKSx1PW4uZW50ZXIoImxhYmVsIik7cmV0dXJuIHArPWwubW92ZShuLnNhZmUobi5hc3NvY2lhdGlvbklkKGEpLHtiZWZvcmU6cCxhZnRlcjoiXSJ9KSksdSgpLHArPWwubW92ZSgiXToiKSxhLmNoaWxkcmVuJiZhLmNoaWxkcmVuLmxlbmd0aD4wJiYobC5zaGlmdCg0KSxwKz1sLm1vdmUoKGU/YApgOiIgIikrbi5pbmRlbnRMaW5lcyhuLmNvbnRhaW5lckZsb3coYSxsLmN1cnJlbnQoKSksZT9KOHQ6T05hKSkpLGQoKSxwfWkodCwiZm9vdG5vdGVEZWZpbml0aW9uIil9ZnVuY3Rpb24gT05hKHMsZSx0KXtyZXR1cm4gZT09PTA/czpKOHQocyxlLHQpfWZ1bmN0aW9uIEo4dChzLGUsdCl7cmV0dXJuKHQ/IiI6IiAgICAiKStzfXZhciBlZ3Q9ZygoKT0+e1dwKCk7WXAoKTtROHQucGVlaz1STmE7aSgkTmEsImVudGVyRm9vdG5vdGVDYWxsU3RyaW5nIik7aShETmEsImVudGVyRm9vdG5vdGVDYWxsIik7aShMTmEsImVudGVyRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtpKEVOYSwiZW50ZXJGb290bm90ZURlZmluaXRpb24iKTtpKFBOYSwiZXhpdEZvb3Rub3RlQ2FsbFN0cmluZyIpO2koSU5hLCJleGl0Rm9vdG5vdGVDYWxsIik7aShBTmEsImV4aXRGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpO2koTk5hLCJleGl0Rm9vdG5vdGVEZWZpbml0aW9uIik7aShSTmEsImZvb3Rub3RlUmVmZXJlbmNlUGVlayIpO2koUTh0LCJmb290bm90ZVJlZmVyZW5jZSIpO2kocmZlLCJnZm1Gb290bm90ZUZyb21NYXJrZG93biIpO2kob2ZlLCJnZm1Gb290bm90ZVRvTWFya2Rvd24iKTtpKE9OYSwibWFwRXhjZXB0Rmlyc3QiKTtpKEo4dCwibWFwQWxsIil9KTt2YXIgdGd0PWcoKCk9PntlZ3QoKX0pO2Z1bmN0aW9uIG5mZSgpe3JldHVybntjYW5Db250YWluRW9sczpbImRlbGV0ZSJdLGVudGVyOntzdHJpa2V0aHJvdWdoOkJOYX0sZXhpdDp7c3RyaWtldGhyb3VnaDpITmF9fX1mdW5jdGlvbiBsZmUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJ+IixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OkZOYX1dLGhhbmRsZXJzOntkZWxldGU6YWd0fX19ZnVuY3Rpb24gQk5hKHMpe3RoaXMuZW50ZXIoe3R5cGU6ImRlbGV0ZSIsY2hpbGRyZW46W119LHMpfWZ1bmN0aW9uIEhOYShzKXt0aGlzLmV4aXQocyl9ZnVuY3Rpb24gYWd0KHMsZSx0LGEpe2xldCByPXQuY3JlYXRlVHJhY2tlcihhKSxuPXQuZW50ZXIoInN0cmlrZXRocm91Z2giKSxvPXIubW92ZSgifn4iKTtyZXR1cm4gbys9dC5jb250YWluZXJQaHJhc2luZyhzLHsuLi5yLmN1cnJlbnQoKSxiZWZvcmU6byxhZnRlcjoifiJ9KSxvKz1yLm1vdmUoIn5+IiksbigpLG99ZnVuY3Rpb24gcU5hKCl7cmV0dXJuIn4ifXZhciBGTmEsc2d0PWcoKCk9PntGTmE9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdO2FndC5wZWVrPXFOYTtpKG5mZSwiZ2ZtU3RyaWtldGhyb3VnaEZyb21NYXJrZG93biIpO2kobGZlLCJnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93biIpO2koQk5hLCJlbnRlclN0cmlrZXRocm91Z2giKTtpKEhOYSwiZXhpdFN0cmlrZXRocm91Z2giKTtpKGFndCwiaGFuZGxlRGVsZXRlIik7aShxTmEsInBlZWtEZWxldGUiKX0pO3ZhciBpZ3Q9ZygoKT0+e3NndCgpfSk7ZnVuY3Rpb24gak5hKHMpe3JldHVybiBzLmxlbmd0aH1mdW5jdGlvbiBvZ3QocyxlKXtsZXQgdD1lfHx7fSxhPSh0LmFsaWdufHxbXSkuY29uY2F0KCkscj10LnN0cmluZ0xlbmd0aHx8ak5hLG49W10sbz1bXSxsPVtdLHA9W10sZD0wLHU9LTE7Zm9yKDsrK3U8cy5sZW5ndGg7KXtsZXQgbT1bXSxmPVtdLHk9LTE7Zm9yKHNbdV0ubGVuZ3RoPmQmJihkPXNbdV0ubGVuZ3RoKTsrK3k8c1t1XS5sZW5ndGg7KXtsZXQgTT1WTmEoc1t1XVt5XSk7aWYodC5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IHo9cihNKTtmW3ldPXosKHBbeV09PT12b2lkIDB8fHo+cFt5XSkmJihwW3ldPXopfW0ucHVzaChNKX1vW3VdPW0sbFt1XT1mfWxldCBjPS0xO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmImxlbmd0aCJpbiBhKWZvcig7KytjPGQ7KW5bY109cmd0KGFbY10pO2Vsc2V7bGV0IG09cmd0KGEpO2Zvcig7KytjPGQ7KW5bY109bX1jPS0xO2xldCBiPVtdLHY9W107Zm9yKDsrK2M8ZDspe2xldCBtPW5bY10sZj0iIix5PSIiO209PT05OT8oZj0iOiIseT0iOiIpOm09PT0xMDg/Zj0iOiI6bT09PTExNCYmKHk9IjoiKTtsZXQgTT10LmFsaWduRGVsaW1pdGVycz09PSExPzE6TWF0aC5tYXgoMSxwW2NdLWYubGVuZ3RoLXkubGVuZ3RoKSx6PWYrIi0iLnJlcGVhdChNKSt5O3QuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJihNPWYubGVuZ3RoK00reS5sZW5ndGgsTT5wW2NdJiYocFtjXT1NKSx2W2NdPU0pLGJbY109en1vLnNwbGljZSgxLDAsYiksbC5zcGxpY2UoMSwwLHYpLHU9LTE7bGV0IHg9W107Zm9yKDsrK3U8by5sZW5ndGg7KXtsZXQgbT1vW3VdLGY9bFt1XTtjPS0xO2xldCB5PVtdO2Zvcig7KytjPGQ7KXtsZXQgTT1tW2NdfHwiIix6PSIiLE49IiI7aWYodC5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IEM9cFtjXS0oZltjXXx8MCksXz1uW2NdO189PT0xMTQ/ej0iICIucmVwZWF0KEMpOl89PT05OT9DJTI/KHo9IiAiLnJlcGVhdChDLzIrLjUpLE49IiAiLnJlcGVhdChDLzItLjUpKTooej0iICIucmVwZWF0KEMvMiksTj16KTpOPSIgIi5yZXBlYXQoQyl9dC5kZWxpbWl0ZXJTdGFydCE9PSExJiYhYyYmeS5wdXNoKCJ8IiksdC5wYWRkaW5nIT09ITEmJiEodC5hbGlnbkRlbGltaXRlcnM9PT0hMSYmTT09PSIiKSYmKHQuZGVsaW1pdGVyU3RhcnQhPT0hMXx8YykmJnkucHVzaCgiICIpLHQuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaCh6KSx5LnB1c2goTSksdC5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE4pLHQucGFkZGluZyE9PSExJiZ5LnB1c2goIiAiKSwodC5kZWxpbWl0ZXJFbmQhPT0hMXx8YyE9PWQtMSkmJnkucHVzaCgifCIpfXgucHVzaCh0LmRlbGltaXRlckVuZD09PSExP3kuam9pbigiIikucmVwbGFjZSgvICskLywiIik6eS5qb2luKCIiKSl9cmV0dXJuIHguam9pbihgCmApfWZ1bmN0aW9uIFZOYShzKXtyZXR1cm4gcz09bnVsbD8iIjpTdHJpbmcocyl9ZnVuY3Rpb24gcmd0KHMpe2xldCBlPXR5cGVvZiBzPT0ic3RyaW5nIj9zLmNvZGVQb2ludEF0KDApOjA7cmV0dXJuIGU9PT02N3x8ZT09PTk5Pzk5OmU9PT03Nnx8ZT09PTEwOD8xMDg6ZT09PTgyfHxlPT09MTE0PzExNDowfXZhciBuZ3Q9ZygoKT0+e2koak5hLCJkZWZhdWx0U3RyaW5nTGVuZ3RoIik7aShvZ3QsIm1hcmtkb3duVGFibGUiKTtpKFZOYSwic2VyaWFsaXplIik7aShyZ3QsInRvQWxpZ25tZW50Iil9KTtmdW5jdGlvbiByaWUocyxlKXtsZXQgdD1lfHx7fTtmdW5jdGlvbiBhKHIsLi4ubil7bGV0IG89YS5pbnZhbGlkLGw9YS5oYW5kbGVycztpZihyJiZsZ3QuY2FsbChyLHMpKXtsZXQgcD1TdHJpbmcocltzXSk7bz1sZ3QuY2FsbChsLHApP2xbcF06YS51bmtub3dufWlmKG8pcmV0dXJuIG8uY2FsbCh0aGlzLHIsLi4ubil9cmV0dXJuIGkoYSwib25lIiksYS5oYW5kbGVycz10LmhhbmRsZXJzfHx7fSxhLmludmFsaWQ9dC5pbnZhbGlkLGEudW5rbm93bj10LnVua25vd24sYX12YXIgbGd0LGNmZT1nKCgpPT57bGd0PXt9Lmhhc093blByb3BlcnR5O2kocmllLCJ6d2l0Y2giKX0pO2Z1bmN0aW9uIGRmZShzLGUpe2xldCB0PS0xLGE7aWYoZS5leHRlbnNpb25zKWZvcig7Kyt0PGUuZXh0ZW5zaW9ucy5sZW5ndGg7KWRmZShzLGUuZXh0ZW5zaW9uc1t0XSk7Zm9yKGEgaW4gZSlpZihVTmEuY2FsbChlLGEpKXN3aXRjaChhKXtjYXNlImV4dGVuc2lvbnMiOmJyZWFrO2Nhc2UidW5zYWZlIjp7Y2d0KHNbYV0sZVthXSk7YnJlYWt9Y2FzZSJqb2luIjp7Y2d0KHNbYV0sZVthXSk7YnJlYWt9Y2FzZSJoYW5kbGVycyI6e1dOYShzW2FdLGVbYV0pO2JyZWFrfWRlZmF1bHQ6cy5vcHRpb25zW2FdPWVbYV19cmV0dXJuIHN9ZnVuY3Rpb24gY2d0KHMsZSl7ZSYmcy5wdXNoKC4uLmUpfWZ1bmN0aW9uIFdOYShzLGUpe2UmJk9iamVjdC5hc3NpZ24ocyxlKX12YXIgVU5hLGRndD1nKCgpPT57VU5hPXt9Lmhhc093blByb3BlcnR5O2koZGZlLCJjb25maWd1cmUiKTtpKGNndCwibGlzdCIpO2koV05hLCJtYXAiKX0pO2Z1bmN0aW9uIHVndChzLGUsdCxhKXtsZXQgcj10LmVudGVyKCJibG9ja3F1b3RlIiksbj10LmNyZWF0ZVRyYWNrZXIoYSk7bi5tb3ZlKCI+ICIpLG4uc2hpZnQoMik7bGV0IG89dC5pbmRlbnRMaW5lcyh0LmNvbnRhaW5lckZsb3cocyxuLmN1cnJlbnQoKSksR05hKTtyZXR1cm4gcigpLG99ZnVuY3Rpb24gR05hKHMsZSx0KXtyZXR1cm4iPiIrKHQ/IiI6IiAiKStzfXZhciBwZ3Q9ZygoKT0+e2kodWd0LCJibG9ja3F1b3RlIik7aShHTmEsIm1hcCIpfSk7ZnVuY3Rpb24gb2llKHMsZSl7cmV0dXJuIGhndChzLGUuaW5Db25zdHJ1Y3QsITApJiYhaGd0KHMsZS5ub3RJbkNvbnN0cnVjdCwhMSl9ZnVuY3Rpb24gaGd0KHMsZSx0KXtpZih0eXBlb2YgZT09InN0cmluZyImJihlPVtlXSksIWV8fGUubGVuZ3RoPT09MClyZXR1cm4gdDtsZXQgYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspaWYocy5pbmNsdWRlcyhlW2FdKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgdWZlPWcoKCk9PntpKG9pZSwicGF0dGVybkluU2NvcGUiKTtpKGhndCwibGlzdEluU2NvcGUiKX0pO2Z1bmN0aW9uIHBmZShzLGUsdCxhKXtsZXQgcj0tMTtmb3IoOysrcjx0LnVuc2FmZS5sZW5ndGg7KWlmKHQudW5zYWZlW3JdLmNoYXJhY3Rlcj09PWAKYCYmb2llKHQuc3RhY2ssdC51bnNhZmVbcl0pKXJldHVybi9bIFx0XS8udGVzdChhLmJlZm9yZSk/IiI6IiAiO3JldHVybmBcXApgfXZhciBmZ3Q9ZygoKT0+e3VmZSgpO2kocGZlLCJoYXJkQnJlYWsiKX0pO2Z1bmN0aW9uIG1ndChzLGUpe2xldCB0PVN0cmluZyhzKSxhPXQuaW5kZXhPZihlKSxyPWEsbj0wLG89MDtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDthIT09LTE7KWE9PT1yPysrbj5vJiYobz1uKTpuPTEscj1hK2UubGVuZ3RoLGE9dC5pbmRleE9mKGUscik7cmV0dXJuIG99dmFyIGdndD1nKCgpPT57aShtZ3QsImxvbmdlc3RTdHJlYWsiKX0pO2Z1bmN0aW9uIGxrKHMsZSl7cmV0dXJuISEoZS5vcHRpb25zLmZlbmNlcz09PSExJiZzLnZhbHVlJiYhcy5sYW5nJiYvW14gXHJcbl0vLnRlc3Qocy52YWx1ZSkmJiEvXltcdCBdKig/OltcclxuXXwkKXwoPzpefFtcclxuXSlbXHQgXSokLy50ZXN0KHMudmFsdWUpKX12YXIgaGZlPWcoKCk9PntpKGxrLCJmb3JtYXRDb2RlQXNJbmRlbnRlZCIpfSk7ZnVuY3Rpb24gYmd0KHMpe2xldCBlPXMub3B0aW9ucy5mZW5jZXx8ImAiO2lmKGUhPT0iYCImJmUhPT0ifiIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gIik7cmV0dXJuIGV9dmFyIHZndD1nKCgpPT57aShiZ3QsImNoZWNrRmVuY2UiKX0pO2Z1bmN0aW9uIHhndChzLGUsdCxhKXtsZXQgcj1iZ3QodCksbj1zLnZhbHVlfHwiIixvPXI9PT0iYCI/IkdyYXZlQWNjZW50IjoiVGlsZGUiO2lmKGxrKHMsdCkpe2xldCBjPXQuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGI9dC5pbmRlbnRMaW5lcyhuLEtOYSk7cmV0dXJuIGMoKSxifWxldCBsPXQuY3JlYXRlVHJhY2tlcihhKSxwPXIucmVwZWF0KE1hdGgubWF4KG1ndChuLHIpKzEsMykpLGQ9dC5lbnRlcigiY29kZUZlbmNlZCIpLHU9bC5tb3ZlKHApO2lmKHMubGFuZyl7bGV0IGM9dC5lbnRlcihgY29kZUZlbmNlZExhbmcke299YCk7dSs9bC5tb3ZlKHQuc2FmZShzLmxhbmcse2JlZm9yZTp1LGFmdGVyOiIgIixlbmNvZGU6WyJgIl0sLi4ubC5jdXJyZW50KCl9KSksYygpfWlmKHMubGFuZyYmcy5tZXRhKXtsZXQgYz10LmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7b31gKTt1Kz1sLm1vdmUoIiAiKSx1Kz1sLm1vdmUodC5zYWZlKHMubWV0YSx7YmVmb3JlOnUsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSxjKCl9cmV0dXJuIHUrPWwubW92ZShgCmApLG4mJih1Kz1sLm1vdmUobitgCmApKSx1Kz1sLm1vdmUocCksZCgpLHV9ZnVuY3Rpb24gS05hKHMsZSx0KXtyZXR1cm4odD8iIjoiICAgICIpK3N9dmFyIHlndD1nKCgpPT57Z2d0KCk7aGZlKCk7dmd0KCk7aSh4Z3QsImNvZGUiKTtpKEtOYSwibWFwIil9KTtmdW5jdGlvbiBZOShzKXtsZXQgZT1zLm9wdGlvbnMucXVvdGV8fCciJztpZihlIT09JyInJiZlIT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIGV9dmFyIG5pZT1nKCgpPT57aShZOSwiY2hlY2tRdW90ZSIpfSk7ZnVuY3Rpb24gd2d0KHMsZSx0LGEpe2xldCByPVk5KHQpLG49cj09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXQuZW50ZXIoImRlZmluaXRpb24iKSxsPXQuZW50ZXIoImxhYmVsIikscD10LmNyZWF0ZVRyYWNrZXIoYSksZD1wLm1vdmUoIlsiKTtyZXR1cm4gZCs9cC5tb3ZlKHQuc2FmZSh0LmFzc29jaWF0aW9uSWQocykse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5wLmN1cnJlbnQoKX0pKSxkKz1wLm1vdmUoIl06ICIpLGwoKSwhcy51cmx8fC9bXDAtIFx1MDA3Rl0vLnRlc3Qocy51cmwpPyhsPXQuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPXAubW92ZSgiPCIpLGQrPXAubW92ZSh0LnNhZmUocy51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5wLmN1cnJlbnQoKX0pKSxkKz1wLm1vdmUoIj4iKSk6KGw9dC5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1wLm1vdmUodC5zYWZlKHMudXJsLHtiZWZvcmU6ZCxhZnRlcjpzLnRpdGxlPyIgIjpgCmAsLi4ucC5jdXJyZW50KCl9KSkpLGwoKSxzLnRpdGxlJiYobD10LmVudGVyKGB0aXRsZSR7bn1gKSxkKz1wLm1vdmUoIiAiK3IpLGQrPXAubW92ZSh0LnNhZmUocy50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6ciwuLi5wLmN1cnJlbnQoKX0pKSxkKz1wLm1vdmUociksbCgpKSxvKCksZH12YXIga2d0PWcoKCk9PntuaWUoKTtpKHdndCwiZGVmaW5pdGlvbiIpfSk7ZnVuY3Rpb24gU2d0KHMpe2xldCBlPXMub3B0aW9ucy5lbXBoYXNpc3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBfZ3Q9ZygoKT0+e2koU2d0LCJjaGVja0VtcGhhc2lzIil9KTtmdW5jdGlvbiBqbChzKXtyZXR1cm4iJiN4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgWjk9ZygoKT0+e2koamwsImVuY29kZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gTDAocyl7aWYocz09PW51bGx8fEFhKHMpfHxnZChzKSlyZXR1cm4gMTtpZihfMyhzKSlyZXR1cm4gMn12YXIgbGllPWcoKCk9PntWYSgpO2koTDAsImNsYXNzaWZ5Q2hhcmFjdGVyIil9KTtmdW5jdGlvbiBYOShzLGUsdCl7bGV0IGE9TDAocykscj1MMChlKTtyZXR1cm4gYT09PXZvaWQgMD9yPT09dm9pZCAwP3Q9PT0iXyI/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiEwfTphPT09MT9yPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06cj09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpyPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITF9OntpbnNpZGU6ITEsb3V0c2lkZTohMX19dmFyIGZmZT1nKCgpPT57bGllKCk7aShYOSwiZW5jb2RlSW5mbyIpfSk7ZnVuY3Rpb24gbWZlKHMsZSx0LGEpe2xldCByPVNndCh0KSxuPXQuZW50ZXIoImVtcGhhc2lzIiksbz10LmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocikscD1vLm1vdmUodC5jb250YWluZXJQaHJhc2luZyhzLHthZnRlcjpyLGJlZm9yZTpsLC4uLm8uY3VycmVudCgpfSkpLGQ9cC5jaGFyQ29kZUF0KDApLHU9WDkoYS5iZWZvcmUuY2hhckNvZGVBdChhLmJlZm9yZS5sZW5ndGgtMSksZCxyKTt1Lmluc2lkZSYmKHA9amwoZCkrcC5zbGljZSgxKSk7bGV0IGM9cC5jaGFyQ29kZUF0KHAubGVuZ3RoLTEpLGI9WDkoYS5hZnRlci5jaGFyQ29kZUF0KDApLGMscik7Yi5pbnNpZGUmJihwPXAuc2xpY2UoMCwtMSkramwoYykpO2xldCB2PW8ubW92ZShyKTtyZXR1cm4gbigpLHQuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpiLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0sbCtwK3Z9ZnVuY3Rpb24gWU5hKHMsZSx0KXtyZXR1cm4gdC5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9dmFyIE1ndD1nKCgpPT57X2d0KCk7WjkoKTtmZmUoKTttZmUucGVlaz1ZTmE7aShtZmUsImVtcGhhc2lzIik7aShZTmEsImVtcGhhc2lzUGVlayIpfSk7ZnVuY3Rpb24gY2socyxlLHQsYSl7bGV0IHIsbixvO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIj8obj12b2lkIDAsbz1lLHI9dCk6KG49ZSxvPXQscj1hKSxuayhzLG4sbCxyKTtmdW5jdGlvbiBsKHAsZCl7bGV0IHU9ZFtkLmxlbmd0aC0xXSxjPXU/dS5jaGlsZHJlbi5pbmRleE9mKHApOnZvaWQgMDtyZXR1cm4gbyhwLGMsdSl9aShsLCJvdmVybG9hZCIpfXZhciB6Z3Q9ZygoKT0+e2lpZSgpO2lpZSgpO2koY2ssInZpc2l0Iil9KTt2YXIgZ2ZlPWcoKCk9Pnt6Z3QoKX0pO2Z1bmN0aW9uIHozKHMsZSl7bGV0IHQ9ZXx8Wk5hLGE9dHlwZW9mIHQuaW5jbHVkZUltYWdlQWx0PT0iYm9vbGVhbiI/dC5pbmNsdWRlSW1hZ2VBbHQ6ITAscj10eXBlb2YgdC5pbmNsdWRlSHRtbD09ImJvb2xlYW4iP3QuaW5jbHVkZUh0bWw6ITA7cmV0dXJuIENndChzLGEscil9ZnVuY3Rpb24gQ2d0KHMsZSx0KXtpZihYTmEocykpe2lmKCJ2YWx1ZSJpbiBzKXJldHVybiBzLnR5cGU9PT0iaHRtbCImJiF0PyIiOnMudmFsdWU7aWYoZSYmImFsdCJpbiBzJiZzLmFsdClyZXR1cm4gcy5hbHQ7aWYoImNoaWxkcmVuImluIHMpcmV0dXJuIFRndChzLmNoaWxkcmVuLGUsdCl9cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/VGd0KHMsZSx0KToiIn1mdW5jdGlvbiBUZ3QocyxlLHQpe2xldCBhPVtdLHI9LTE7Zm9yKDsrK3I8cy5sZW5ndGg7KWFbcl09Q2d0KHNbcl0sZSx0KTtyZXR1cm4gYS5qb2luKCIiKX1mdW5jdGlvbiBYTmEocyl7cmV0dXJuISEocyYmdHlwZW9mIHM9PSJvYmplY3QiKX12YXIgWk5hLCRndD1nKCgpPT57Wk5hPXt9O2koejMsInRvU3RyaW5nIik7aShDZ3QsIm9uZSIpO2koVGd0LCJhbGwiKTtpKFhOYSwibm9kZSIpfSk7dmFyIGNpZT1nKCgpPT57JGd0KCl9KTtmdW5jdGlvbiBkaWUocyxlKXtsZXQgdD0hMTtyZXR1cm4gY2socyxmdW5jdGlvbihhKXtpZigidmFsdWUiaW4gYSYmL1xyP1xufFxyLy50ZXN0KGEudmFsdWUpfHxhLnR5cGU9PT0iYnJlYWsiKXJldHVybiB0PSEwLE0zfSksISEoKCFzLmRlcHRofHxzLmRlcHRoPDMpJiZ6MyhzKSYmKGUub3B0aW9ucy5zZXRleHR8fHQpKX12YXIgYmZlPWcoKCk9PntnZmUoKTtjaWUoKTtpKGRpZSwiZm9ybWF0SGVhZGluZ0FzU2V0ZXh0Iil9KTtmdW5jdGlvbiBEZ3QocyxlLHQsYSl7bGV0IHI9TWF0aC5tYXgoTWF0aC5taW4oNixzLmRlcHRofHwxKSwxKSxuPXQuY3JlYXRlVHJhY2tlcihhKTtpZihkaWUocyx0KSl7bGV0IHU9dC5lbnRlcigiaGVhZGluZ1NldGV4dCIpLGM9dC5lbnRlcigicGhyYXNpbmciKSxiPXQuY29udGFpbmVyUGhyYXNpbmcocyx7Li4ubi5jdXJyZW50KCksYmVmb3JlOmAKYCxhZnRlcjpgCmB9KTtyZXR1cm4gYygpLHUoKSxiK2AKYCsocj09PTE/Ij0iOiItIikucmVwZWF0KGIubGVuZ3RoLShNYXRoLm1heChiLmxhc3RJbmRleE9mKCJcciIpLGIubGFzdEluZGV4T2YoYApgKSkrMSkpfWxldCBvPSIjIi5yZXBlYXQociksbD10LmVudGVyKCJoZWFkaW5nQXR4IikscD10LmVudGVyKCJwaHJhc2luZyIpO24ubW92ZShvKyIgIik7bGV0IGQ9dC5jb250YWluZXJQaHJhc2luZyhzLHtiZWZvcmU6IiMgIixhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KTtyZXR1cm4vXltcdCBdLy50ZXN0KGQpJiYoZD1qbChkLmNoYXJDb2RlQXQoMCkpK2Quc2xpY2UoMSkpLGQ9ZD9vKyIgIitkOm8sdC5vcHRpb25zLmNsb3NlQXR4JiYoZCs9IiAiK28pLHAoKSxsKCksZH12YXIgTGd0PWcoKCk9PntaOSgpO2JmZSgpO2koRGd0LCJoZWFkaW5nIil9KTtmdW5jdGlvbiB2ZmUocyl7cmV0dXJuIHMudmFsdWV8fCIifWZ1bmN0aW9uIFFOYSgpe3JldHVybiI8In12YXIgRWd0PWcoKCk9Pnt2ZmUucGVlaz1RTmE7aSh2ZmUsImh0bWwiKTtpKFFOYSwiaHRtbFBlZWsiKX0pO2Z1bmN0aW9uIHhmZShzLGUsdCxhKXtsZXQgcj1ZOSh0KSxuPXI9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbz10LmVudGVyKCJpbWFnZSIpLGw9dC5lbnRlcigibGFiZWwiKSxwPXQuY3JlYXRlVHJhY2tlcihhKSxkPXAubW92ZSgiIVsiKTtyZXR1cm4gZCs9cC5tb3ZlKHQuc2FmZShzLmFsdCx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLnAuY3VycmVudCgpfSkpLGQrPXAubW92ZSgiXSgiKSxsKCksIXMudXJsJiZzLnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHMudXJsKT8obD10LmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxkKz1wLm1vdmUoIjwiKSxkKz1wLm1vdmUodC5zYWZlKHMudXJsLHtiZWZvcmU6ZCxhZnRlcjoiPiIsLi4ucC5jdXJyZW50KCl9KSksZCs9cC5tb3ZlKCI+IikpOihsPXQuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksZCs9cC5tb3ZlKHQuc2FmZShzLnVybCx7YmVmb3JlOmQsYWZ0ZXI6cy50aXRsZT8iICI6IikiLC4uLnAuY3VycmVudCgpfSkpKSxsKCkscy50aXRsZSYmKGw9dC5lbnRlcihgdGl0bGUke259YCksZCs9cC5tb3ZlKCIgIityKSxkKz1wLm1vdmUodC5zYWZlKHMudGl0bGUse2JlZm9yZTpkLGFmdGVyOnIsLi4ucC5jdXJyZW50KCl9KSksZCs9cC5tb3ZlKHIpLGwoKSksZCs9cC5tb3ZlKCIpIiksbygpLGR9ZnVuY3Rpb24gSk5hKCl7cmV0dXJuIiEifXZhciBQZ3Q9ZygoKT0+e25pZSgpO3hmZS5wZWVrPUpOYTtpKHhmZSwiaW1hZ2UiKTtpKEpOYSwiaW1hZ2VQZWVrIil9KTtmdW5jdGlvbiB5ZmUocyxlLHQsYSl7bGV0IHI9cy5yZWZlcmVuY2VUeXBlLG49dC5lbnRlcigiaW1hZ2VSZWZlcmVuY2UiKSxvPXQuZW50ZXIoImxhYmVsIiksbD10LmNyZWF0ZVRyYWNrZXIoYSkscD1sLm1vdmUoIiFbIiksZD10LnNhZmUocy5hbHQse2JlZm9yZTpwLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3ArPWwubW92ZShkKyJdWyIpLG8oKTtsZXQgdT10LnN0YWNrO3Quc3RhY2s9W10sbz10LmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgYz10LnNhZmUodC5hc3NvY2lhdGlvbklkKHMpLHtiZWZvcmU6cCxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtyZXR1cm4gbygpLHQuc3RhY2s9dSxuKCkscj09PSJmdWxsInx8IWR8fGQhPT1jP3ArPWwubW92ZShjKyJdIik6cj09PSJzaG9ydGN1dCI/cD1wLnNsaWNlKDAsLTEpOnArPWwubW92ZSgiXSIpLHB9ZnVuY3Rpb24gZVJhKCl7cmV0dXJuIiEifXZhciBJZ3Q9ZygoKT0+e3lmZS5wZWVrPWVSYTtpKHlmZSwiaW1hZ2VSZWZlcmVuY2UiKTtpKGVSYSwiaW1hZ2VSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiB3ZmUocyxlLHQpe2xldCBhPXMudmFsdWV8fCIiLHI9ImAiLG49LTE7Zm9yKDtuZXcgUmVnRXhwKCIoXnxbXmBdKSIrcisiKFteYF18JCkiKS50ZXN0KGEpOylyKz0iYCI7Zm9yKC9bXiBcclxuXS8udGVzdChhKSYmKC9eWyBcclxuXS8udGVzdChhKSYmL1sgXHJcbl0kLy50ZXN0KGEpfHwvXmB8YCQvLnRlc3QoYSkpJiYoYT0iICIrYSsiICIpOysrbjx0LnVuc2FmZS5sZW5ndGg7KXtsZXQgbz10LnVuc2FmZVtuXSxsPXQuY29tcGlsZVBhdHRlcm4obykscDtpZihvLmF0QnJlYWspZm9yKDtwPWwuZXhlYyhhKTspe2xldCBkPXAuaW5kZXg7YS5jaGFyQ29kZUF0KGQpPT09MTAmJmEuY2hhckNvZGVBdChkLTEpPT09MTMmJmQtLSxhPWEuc2xpY2UoMCxkKSsiICIrYS5zbGljZShwLmluZGV4KzEpfX1yZXR1cm4gcithK3J9ZnVuY3Rpb24gdFJhKCl7cmV0dXJuImAifXZhciBBZ3Q9ZygoKT0+e3dmZS5wZWVrPXRSYTtpKHdmZSwiaW5saW5lQ29kZSIpO2kodFJhLCJpbmxpbmVDb2RlUGVlayIpfSk7ZnVuY3Rpb24ga2ZlKHMsZSl7bGV0IHQ9ejMocyk7cmV0dXJuISEoIWUub3B0aW9ucy5yZXNvdXJjZUxpbmsmJnMudXJsJiYhcy50aXRsZSYmcy5jaGlsZHJlbiYmcy5jaGlsZHJlbi5sZW5ndGg9PT0xJiZzLmNoaWxkcmVuWzBdLnR5cGU9PT0idGV4dCImJih0PT09cy51cmx8fCJtYWlsdG86Iit0PT09cy51cmwpJiYvXlthLXpdW2EteisuLV0rOi9pLnRlc3Qocy51cmwpJiYhL1tcMC0gPD5cdTAwN0ZdLy50ZXN0KHMudXJsKSl9dmFyIE5ndD1nKCgpPT57Y2llKCk7aShrZmUsImZvcm1hdExpbmtBc0F1dG9saW5rIil9KTtmdW5jdGlvbiBTZmUocyxlLHQsYSl7bGV0IHI9WTkodCksbj1yPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89dC5jcmVhdGVUcmFja2VyKGEpLGwscDtpZihrZmUocyx0KSl7bGV0IHU9dC5zdGFjazt0LnN0YWNrPVtdLGw9dC5lbnRlcigiYXV0b2xpbmsiKTtsZXQgYz1vLm1vdmUoIjwiKTtyZXR1cm4gYys9by5tb3ZlKHQuY29udGFpbmVyUGhyYXNpbmcocyx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLGMrPW8ubW92ZSgiPiIpLGwoKSx0LnN0YWNrPXUsY31sPXQuZW50ZXIoImxpbmsiKSxwPXQuZW50ZXIoImxhYmVsIik7bGV0IGQ9by5tb3ZlKCJbIik7cmV0dXJuIGQrPW8ubW92ZSh0LmNvbnRhaW5lclBocmFzaW5nKHMse2JlZm9yZTpkLGFmdGVyOiJdKCIsLi4uby5jdXJyZW50KCl9KSksZCs9by5tb3ZlKCJdKCIpLHAoKSwhcy51cmwmJnMudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3Qocy51cmwpPyhwPXQuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPW8ubW92ZSgiPCIpLGQrPW8ubW92ZSh0LnNhZmUocy51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIj4iKSk6KHA9dC5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1vLm1vdmUodC5zYWZlKHMudXJsLHtiZWZvcmU6ZCxhZnRlcjpzLnRpdGxlPyIgIjoiKSIsLi4uby5jdXJyZW50KCl9KSkpLHAoKSxzLnRpdGxlJiYocD10LmVudGVyKGB0aXRsZSR7bn1gKSxkKz1vLm1vdmUoIiAiK3IpLGQrPW8ubW92ZSh0LnNhZmUocy50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6ciwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUocikscCgpKSxkKz1vLm1vdmUoIikiKSxsKCksZH1mdW5jdGlvbiBhUmEocyxlLHQpe3JldHVybiBrZmUocyx0KT8iPCI6IlsifXZhciBSZ3Q9ZygoKT0+e25pZSgpO05ndCgpO1NmZS5wZWVrPWFSYTtpKFNmZSwibGluayIpO2koYVJhLCJsaW5rUGVlayIpfSk7ZnVuY3Rpb24gX2ZlKHMsZSx0LGEpe2xldCByPXMucmVmZXJlbmNlVHlwZSxuPXQuZW50ZXIoImxpbmtSZWZlcmVuY2UiKSxvPXQuZW50ZXIoImxhYmVsIiksbD10LmNyZWF0ZVRyYWNrZXIoYSkscD1sLm1vdmUoIlsiKSxkPXQuY29udGFpbmVyUGhyYXNpbmcocyx7YmVmb3JlOnAsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7cCs9bC5tb3ZlKGQrIl1bIiksbygpO2xldCB1PXQuc3RhY2s7dC5zdGFjaz1bXSxvPXQuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBjPXQuc2FmZSh0LmFzc29jaWF0aW9uSWQocykse2JlZm9yZTpwLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBvKCksdC5zdGFjaz11LG4oKSxyPT09ImZ1bGwifHwhZHx8ZCE9PWM/cCs9bC5tb3ZlKGMrIl0iKTpyPT09InNob3J0Y3V0Ij9wPXAuc2xpY2UoMCwtMSk6cCs9bC5tb3ZlKCJdIikscH1mdW5jdGlvbiBzUmEoKXtyZXR1cm4iWyJ9dmFyIE9ndD1nKCgpPT57X2ZlLnBlZWs9c1JhO2koX2ZlLCJsaW5rUmVmZXJlbmNlIik7aShzUmEsImxpbmtSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiBROShzKXtsZXQgZT1zLm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYoZSE9PSIqIiYmZSE9PSIrIiYmZSE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIGV9dmFyIHVpZT1nKCgpPT57aShROSwiY2hlY2tCdWxsZXQiKX0pO2Z1bmN0aW9uIEZndChzKXtsZXQgZT1ROShzKSx0PXMub3B0aW9ucy5idWxsZXRPdGhlcjtpZighdClyZXR1cm4gZT09PSIqIj8iLSI6IioiO2lmKHQhPT0iKiImJnQhPT0iKyImJnQhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrdCsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYodD09PWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrZSsiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK3QrImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiB0fXZhciBCZ3Q9ZygoKT0+e3VpZSgpO2koRmd0LCJjaGVja0J1bGxldE90aGVyIil9KTtmdW5jdGlvbiBIZ3Qocyl7bGV0IGU9cy5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZihlIT09Ii4iJiZlIT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIGV9dmFyIHFndD1nKCgpPT57aShIZ3QsImNoZWNrQnVsbGV0T3JkZXJlZCIpfSk7ZnVuY3Rpb24gcGllKHMpe2xldCBlPXMub3B0aW9ucy5ydWxlfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSItIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlYCwgZXhwZWN0ZWQgYCpgLCBgLWAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBNZmU9ZygoKT0+e2kocGllLCJjaGVja1J1bGUiKX0pO2Z1bmN0aW9uIGpndChzLGUsdCxhKXtsZXQgcj10LmVudGVyKCJsaXN0Iiksbj10LmJ1bGxldEN1cnJlbnQsbz1zLm9yZGVyZWQ/SGd0KHQpOlE5KHQpLGw9cy5vcmRlcmVkP289PT0iLiI/IikiOiIuIjpGZ3QodCkscD1lJiZ0LmJ1bGxldExhc3RVc2VkP289PT10LmJ1bGxldExhc3RVc2VkOiExO2lmKCFzLm9yZGVyZWQpe2xldCB1PXMuY2hpbGRyZW4/cy5jaGlsZHJlblswXTp2b2lkIDA7aWYoKG89PT0iKiJ8fG89PT0iLSIpJiZ1JiYoIXUuY2hpbGRyZW58fCF1LmNoaWxkcmVuWzBdKSYmdC5zdGFja1t0LnN0YWNrLmxlbmd0aC0xXT09PSJsaXN0IiYmdC5zdGFja1t0LnN0YWNrLmxlbmd0aC0yXT09PSJsaXN0SXRlbSImJnQuc3RhY2tbdC5zdGFjay5sZW5ndGgtM109PT0ibGlzdCImJnQuc3RhY2tbdC5zdGFjay5sZW5ndGgtNF09PT0ibGlzdEl0ZW0iJiZ0LmluZGV4U3RhY2tbdC5pbmRleFN0YWNrLmxlbmd0aC0xXT09PTAmJnQuaW5kZXhTdGFja1t0LmluZGV4U3RhY2subGVuZ3RoLTJdPT09MCYmdC5pbmRleFN0YWNrW3QuaW5kZXhTdGFjay5sZW5ndGgtM109PT0wJiYocD0hMCkscGllKHQpPT09byYmdSl7bGV0IGM9LTE7Zm9yKDsrK2M8cy5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgYj1zLmNoaWxkcmVuW2NdO2lmKGImJmIudHlwZT09PSJsaXN0SXRlbSImJmIuY2hpbGRyZW4mJmIuY2hpbGRyZW5bMF0mJmIuY2hpbGRyZW5bMF0udHlwZT09PSJ0aGVtYXRpY0JyZWFrIil7cD0hMDticmVha319fX1wJiYobz1sKSx0LmJ1bGxldEN1cnJlbnQ9bztsZXQgZD10LmNvbnRhaW5lckZsb3cocyxhKTtyZXR1cm4gdC5idWxsZXRMYXN0VXNlZD1vLHQuYnVsbGV0Q3VycmVudD1uLHIoKSxkfXZhciBWZ3Q9ZygoKT0+e3VpZSgpO0JndCgpO3FndCgpO01mZSgpO2koamd0LCJsaXN0Iil9KTtmdW5jdGlvbiBVZ3Qocyl7bGV0IGU9cy5vcHRpb25zLmxpc3RJdGVtSW5kZW50fHwib25lIjtpZihlIT09InRhYiImJmUhPT0ib25lIiYmZSE9PSJtaXhlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMubGlzdEl0ZW1JbmRlbnRgLCBleHBlY3RlZCBgdGFiYCwgYG9uZWAsIG9yIGBtaXhlZGAiKTtyZXR1cm4gZX12YXIgV2d0PWcoKCk9PntpKFVndCwiY2hlY2tMaXN0SXRlbUluZGVudCIpfSk7ZnVuY3Rpb24gR2d0KHMsZSx0LGEpe2xldCByPVVndCh0KSxuPXQuYnVsbGV0Q3VycmVudHx8UTkodCk7ZSYmZS50eXBlPT09Imxpc3QiJiZlLm9yZGVyZWQmJihuPSh0eXBlb2YgZS5zdGFydD09Im51bWJlciImJmUuc3RhcnQ+LTE/ZS5zdGFydDoxKSsodC5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOmUuY2hpbGRyZW4uaW5kZXhPZihzKSkrbik7bGV0IG89bi5sZW5ndGgrMTsocj09PSJ0YWIifHxyPT09Im1peGVkIiYmKGUmJmUudHlwZT09PSJsaXN0IiYmZS5zcHJlYWR8fHMuc3ByZWFkKSkmJihvPU1hdGguY2VpbChvLzQpKjQpO2xldCBsPXQuY3JlYXRlVHJhY2tlcihhKTtsLm1vdmUobisiICIucmVwZWF0KG8tbi5sZW5ndGgpKSxsLnNoaWZ0KG8pO2xldCBwPXQuZW50ZXIoImxpc3RJdGVtIiksZD10LmluZGVudExpbmVzKHQuY29udGFpbmVyRmxvdyhzLGwuY3VycmVudCgpKSx1KTtyZXR1cm4gcCgpLGQ7ZnVuY3Rpb24gdShjLGIsdil7cmV0dXJuIGI/KHY/IiI6IiAiLnJlcGVhdChvKSkrYzoodj9uOm4rIiAiLnJlcGVhdChvLW4ubGVuZ3RoKSkrY31pKHUsIm1hcCIpfXZhciBLZ3Q9ZygoKT0+e3VpZSgpO1dndCgpO2koR2d0LCJsaXN0SXRlbSIpfSk7ZnVuY3Rpb24gWWd0KHMsZSx0LGEpe2xldCByPXQuZW50ZXIoInBhcmFncmFwaCIpLG49dC5lbnRlcigicGhyYXNpbmciKSxvPXQuY29udGFpbmVyUGhyYXNpbmcocyxhKTtyZXR1cm4gbigpLHIoKSxvfXZhciBaZ3Q9ZygoKT0+e2koWWd0LCJwYXJhZ3JhcGgiKX0pO3ZhciB6ZmUsWGd0PWcoKCk9Pnt0aWUoKTt6ZmU9RDAoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIFFndD1nKCgpPT57WGd0KCl9KTtmdW5jdGlvbiBKZ3QocyxlLHQsYSl7cmV0dXJuKHMuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gemZlKG8pfSk/dC5jb250YWluZXJQaHJhc2luZzp0LmNvbnRhaW5lckZsb3cpLmNhbGwodCxzLGEpfXZhciBlN3Q9ZygoKT0+e1FndCgpO2koSmd0LCJyb290Iil9KTtmdW5jdGlvbiB0N3Qocyl7bGV0IGU9cy5vcHRpb25zLnN0cm9uZ3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHN0cm9uZyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnN0cm9uZ2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIGE3dD1nKCgpPT57aSh0N3QsImNoZWNrU3Ryb25nIil9KTtmdW5jdGlvbiBDZmUocyxlLHQsYSl7bGV0IHI9dDd0KHQpLG49dC5lbnRlcigic3Ryb25nIiksbz10LmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocityKSxwPW8ubW92ZSh0LmNvbnRhaW5lclBocmFzaW5nKHMse2FmdGVyOnIsYmVmb3JlOmwsLi4uby5jdXJyZW50KCl9KSksZD1wLmNoYXJDb2RlQXQoMCksdT1YOShhLmJlZm9yZS5jaGFyQ29kZUF0KGEuYmVmb3JlLmxlbmd0aC0xKSxkLHIpO3UuaW5zaWRlJiYocD1qbChkKStwLnNsaWNlKDEpKTtsZXQgYz1wLmNoYXJDb2RlQXQocC5sZW5ndGgtMSksYj1YOShhLmFmdGVyLmNoYXJDb2RlQXQoMCksYyxyKTtiLmluc2lkZSYmKHA9cC5zbGljZSgwLC0xKStqbChjKSk7bGV0IHY9by5tb3ZlKHIrcik7cmV0dXJuIG4oKSx0LmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6Yi5vdXRzaWRlLGJlZm9yZTp1Lm91dHNpZGV9LGwrcCt2fWZ1bmN0aW9uIGlSYShzLGUsdCl7cmV0dXJuIHQub3B0aW9ucy5zdHJvbmd8fCIqIn12YXIgczd0PWcoKCk9PnthN3QoKTtaOSgpO2ZmZSgpO0NmZS5wZWVrPWlSYTtpKENmZSwic3Ryb25nIik7aShpUmEsInN0cm9uZ1BlZWsiKX0pO2Z1bmN0aW9uIGk3dChzLGUsdCxhKXtyZXR1cm4gdC5zYWZlKHMudmFsdWUsYSl9dmFyIHI3dD1nKCgpPT57aShpN3QsInRleHQiKX0pO2Z1bmN0aW9uIG83dChzKXtsZXQgZT1zLm9wdGlvbnMucnVsZVJlcGV0aXRpb258fDM7aWYoZTwzKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCIrZSsiYCBmb3IgYG9wdGlvbnMucnVsZVJlcGV0aXRpb25gLCBleHBlY3RlZCBgM2Agb3IgbW9yZSIpO3JldHVybiBlfXZhciBuN3Q9ZygoKT0+e2kobzd0LCJjaGVja1J1bGVSZXBldGl0aW9uIil9KTtmdW5jdGlvbiBsN3QocyxlLHQpe2xldCBhPShwaWUodCkrKHQub3B0aW9ucy5ydWxlU3BhY2VzPyIgIjoiIikpLnJlcGVhdChvN3QodCkpO3JldHVybiB0Lm9wdGlvbnMucnVsZVNwYWNlcz9hLnNsaWNlKDAsLTEpOmF9dmFyIGM3dD1nKCgpPT57bjd0KCk7TWZlKCk7aShsN3QsInRoZW1hdGljQnJlYWsiKX0pO3ZhciBDMyxUZmU9ZygoKT0+e3BndCgpO2ZndCgpO3lndCgpO2tndCgpO01ndCgpO0xndCgpO0VndCgpO1BndCgpO0lndCgpO0FndCgpO1JndCgpO09ndCgpO1ZndCgpO0tndCgpO1pndCgpO2U3dCgpO3M3dCgpO3I3dCgpO2M3dCgpO0MzPXtibG9ja3F1b3RlOnVndCxicmVhazpwZmUsY29kZTp4Z3QsZGVmaW5pdGlvbjp3Z3QsZW1waGFzaXM6bWZlLGhhcmRCcmVhazpwZmUsaGVhZGluZzpEZ3QsaHRtbDp2ZmUsaW1hZ2U6eGZlLGltYWdlUmVmZXJlbmNlOnlmZSxpbmxpbmVDb2RlOndmZSxsaW5rOlNmZSxsaW5rUmVmZXJlbmNlOl9mZSxsaXN0OmpndCxsaXN0SXRlbTpHZ3QscGFyYWdyYXBoOllndCxyb290OkpndCxzdHJvbmc6Q2ZlLHRleHQ6aTd0LHRoZW1hdGljQnJlYWs6bDd0fX0pO2Z1bmN0aW9uIHJSYShzLGUsdCxhKXtpZihlLnR5cGU9PT0iY29kZSImJmxrKGUsYSkmJihzLnR5cGU9PT0ibGlzdCJ8fHMudHlwZT09PWUudHlwZSYmbGsocyxhKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiB0JiZ0eXBlb2YgdC5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gcy50eXBlPT09InBhcmFncmFwaCImJihzLnR5cGU9PT1lLnR5cGV8fGUudHlwZT09PSJkZWZpbml0aW9uInx8ZS50eXBlPT09ImhlYWRpbmciJiZkaWUoZSxhKSk/dm9pZCAwOnQuc3ByZWFkPzE6MH12YXIgZDd0LHU3dD1nKCgpPT57aGZlKCk7YmZlKCk7ZDd0PVtyUmFdO2koclJhLCJqb2luRGVmYXVsdHMiKX0pO3ZhciBUMyxwN3QsaDd0PWcoKCk9PntUMz1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl0scDd0PVt7Y2hhcmFjdGVyOiIJIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjpgCmAsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOiIgIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiISIsYWZ0ZXI6IlxcWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpUM30se2NoYXJhY3RlcjonIicsaW5Db25zdHJ1Y3Q6InRpdGxlUXVvdGUifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IiMifSx7Y2hhcmFjdGVyOiIjIixpbkNvbnN0cnVjdDoiaGVhZGluZ0F0eCIsYWZ0ZXI6YCg/OltccgpdfCQpYH0se2NoYXJhY3RlcjoiJiIsYWZ0ZXI6IlsjQS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiJyIsaW5Db25zdHJ1Y3Q6InRpdGxlQXBvc3Ryb3BoZSJ9LHtjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHtiZWZvcmU6IlxcXSIsY2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlQzfSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiKSJ9LHtjaGFyYWN0ZXI6IikiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKiIsYWZ0ZXI6YCg/OlsgCVxyCipdKWB9LHtjaGFyYWN0ZXI6IioiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6VDN9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKyIsYWZ0ZXI6YCg/OlsgCVxyCl0pYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjpgKD86WyAJXHIKLV0pYH0se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6Ii4iLGFmdGVyOmAoPzpbIAlccgpdfCQpYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0ifSx7Y2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6VDN9LHtjaGFyYWN0ZXI6IjwiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij4ifSx7Y2hhcmFjdGVyOiI+IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJbIn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpUM30se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7Y2hhcmFjdGVyOiJcXCIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiJdIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiXyJ9LHtjaGFyYWN0ZXI6Il8iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6VDN9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiYCJ9LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiXX0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpUM30se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ+In1dfSk7ZnVuY3Rpb24gWnAocyl7bGV0IGU9IiYiK3MrIjsiO2Y3dC5pbm5lckhUTUw9ZTtsZXQgdD1mN3QudGV4dENvbnRlbnQ7cmV0dXJuIHQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKT09PTU5JiZzIT09InNlbWkifHx0PT09ZT8hMTp0fXZhciBmN3QsZGs9ZygoKT0+e2Y3dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aShacCwiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIEo5KHMsZSl7bGV0IHQ9TnVtYmVyLnBhcnNlSW50KHMsZSk7cmV0dXJuIHQ8OXx8dD09PTExfHx0PjEzJiZ0PDMyfHx0PjEyNiYmdDwxNjB8fHQ+NTUyOTUmJnQ8NTczNDR8fHQ+NjQ5NzUmJnQ8NjUwMDh8fCh0JjY1NTM1KT09PTY1NTM1fHwodCY2NTUzNSk9PT02NTUzNHx8dD4xMTE0MTExPyJcdUZGRkQiOlN0cmluZy5mcm9tQ29kZVBvaW50KHQpfXZhciBoaWU9ZygoKT0+e2koSjksImRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIGZpZShzKXtyZXR1cm4gcy5yZXBsYWNlKG9SYSxuUmEpfWZ1bmN0aW9uIG5SYShzLGUsdCl7aWYoZSlyZXR1cm4gZTtpZih0LmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IHI9dC5jaGFyQ29kZUF0KDEpLG49cj09PTEyMHx8cj09PTg4O3JldHVybiBKOSh0LnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gWnAodCl8fHN9dmFyIG9SYSwkZmU9ZygoKT0+e2RrKCk7aGllKCk7b1JhPS9cXChbIS0vOi1AWy1gey1+XSl8JigjKD86XGR7MSw3fXx4W1xkYS1mXXsxLDZ9KXxbXGRhLXpdezEsMzF9KTsvZ2k7aShmaWUsImRlY29kZVN0cmluZyIpO2koblJhLCJkZWNvZGUiKX0pO2Z1bmN0aW9uIG03dChzKXtyZXR1cm4gcy5sYWJlbHx8IXMuaWRlbnRpZmllcj9zLmxhYmVsfHwiIjpmaWUocy5pZGVudGlmaWVyKX12YXIgZzd0PWcoKCk9PnskZmUoKTtpKG03dCwiYXNzb2NpYXRpb24iKX0pO2Z1bmN0aW9uIGI3dChzKXtpZighcy5fY29tcGlsZWQpe2xldCBlPShzLmF0QnJlYWs/IltcXHJcXG5dW1xcdCBdKiI6IiIpKyhzLmJlZm9yZT8iKD86IitzLmJlZm9yZSsiKSI6IiIpO3MuX2NvbXBpbGVkPW5ldyBSZWdFeHAoKGU/IigiK2UrIikiOiIiKSsoL1t8XFx7fSgpW1xdXiQrKj8uLV0vLnRlc3Qocy5jaGFyYWN0ZXIpPyJcXCI6IiIpK3MuY2hhcmFjdGVyKyhzLmFmdGVyPyIoPzoiK3MuYWZ0ZXIrIikiOiIiKSwiZyIpfXJldHVybiBzLl9jb21waWxlZH12YXIgdjd0PWcoKCk9PntpKGI3dCwiY29tcGlsZVBhdHRlcm4iKX0pO2Z1bmN0aW9uIHg3dChzLGUsdCl7bGV0IGE9ZS5pbmRleFN0YWNrLHI9cy5jaGlsZHJlbnx8W10sbj1bXSxvPS0xLGw9dC5iZWZvcmUscDthLnB1c2goLTEpO2xldCBkPWUuY3JlYXRlVHJhY2tlcih0KTtmb3IoOysrbzxyLmxlbmd0aDspe2xldCB1PXJbb10sYztpZihhW2EubGVuZ3RoLTFdPW8sbysxPHIubGVuZ3RoKXtsZXQgeD1lLmhhbmRsZS5oYW5kbGVyc1tyW28rMV0udHlwZV07eCYmeC5wZWVrJiYoeD14LnBlZWspLGM9eD94KHJbbysxXSxzLGUse2JlZm9yZToiIixhZnRlcjoiIiwuLi5kLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIGM9dC5hZnRlcjtuLmxlbmd0aD4wJiYobD09PSJcciJ8fGw9PT1gCmApJiZ1LnR5cGU9PT0iaHRtbCImJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIiksbD0iICIsZD1lLmNyZWF0ZVRyYWNrZXIodCksZC5tb3ZlKG4uam9pbigiIikpKTtsZXQgYj1lLmhhbmRsZSh1LHMsZSx7Li4uZC5jdXJyZW50KCksYWZ0ZXI6YyxiZWZvcmU6bH0pO3AmJnA9PT1iLnNsaWNlKDAsMSkmJihiPWpsKHAuY2hhckNvZGVBdCgwKSkrYi5zbGljZSgxKSk7bGV0IHY9ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLHA9dm9pZCAwLHYmJihuLmxlbmd0aD4wJiZ2LmJlZm9yZSYmbD09PW5bbi5sZW5ndGgtMV0uc2xpY2UoLTEpJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK2psKGwuY2hhckNvZGVBdCgwKSkpLHYuYWZ0ZXImJihwPWMpKSxkLm1vdmUoYiksbi5wdXNoKGIpLGw9Yi5zbGljZSgtMSl9cmV0dXJuIGEucG9wKCksbi5qb2luKCIiKX12YXIgeTd0PWcoKCk9PntaOSgpO2koeDd0LCJjb250YWluZXJQaHJhc2luZyIpfSk7ZnVuY3Rpb24gdzd0KHMsZSx0KXtsZXQgYT1lLmluZGV4U3RhY2sscj1zLmNoaWxkcmVufHxbXSxuPWUuY3JlYXRlVHJhY2tlcih0KSxvPVtdLGw9LTE7Zm9yKGEucHVzaCgtMSk7KytsPHIubGVuZ3RoOyl7bGV0IHA9cltsXTthW2EubGVuZ3RoLTFdPWwsby5wdXNoKG4ubW92ZShlLmhhbmRsZShwLHMsZSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KSkpLHAudHlwZSE9PSJsaXN0IiYmKGUuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxsPHIubGVuZ3RoLTEmJm8ucHVzaChuLm1vdmUobFJhKHAscltsKzFdLHMsZSkpKX1yZXR1cm4gYS5wb3AoKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIGxSYShzLGUsdCxhKXtsZXQgcj1hLmpvaW4ubGVuZ3RoO2Zvcig7ci0tOyl7bGV0IG49YS5qb2luW3JdKHMsZSx0LGEpO2lmKG49PT0hMHx8bj09PTEpYnJlYWs7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStuKTtpZihuPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBrN3Q9ZygoKT0+e2kodzd0LCJjb250YWluZXJGbG93Iik7aShsUmEsImJldHdlZW4iKX0pO2Z1bmN0aW9uIFM3dChzLGUpe2xldCB0PVtdLGE9MCxyPTAsbjtmb3IoO249Y1JhLmV4ZWMocyk7KW8ocy5zbGljZShhLG4uaW5kZXgpKSx0LnB1c2goblswXSksYT1uLmluZGV4K25bMF0ubGVuZ3RoLHIrKztyZXR1cm4gbyhzLnNsaWNlKGEpKSx0LmpvaW4oIiIpO2Z1bmN0aW9uIG8obCl7dC5wdXNoKGUobCxyLCFsKSl9aShvLCJvbmUiKX12YXIgY1JhLF83dD1nKCgpPT57Y1JhPS9ccj9cbnxcci9nO2koUzd0LCJpbmRlbnRMaW5lcyIpfSk7ZnVuY3Rpb24gejd0KHMsZSx0KXtsZXQgYT0odC5iZWZvcmV8fCIiKSsoZXx8IiIpKyh0LmFmdGVyfHwiIikscj1bXSxuPVtdLG89e30sbD0tMTtmb3IoOysrbDxzLnVuc2FmZS5sZW5ndGg7KXtsZXQgdT1zLnVuc2FmZVtsXTtpZighb2llKHMuc3RhY2ssdSkpY29udGludWU7bGV0IGM9cy5jb21waWxlUGF0dGVybih1KSxiO2Zvcig7Yj1jLmV4ZWMoYSk7KXtsZXQgdj0iYmVmb3JlImluIHV8fCEhdS5hdEJyZWFrLHg9ImFmdGVyImluIHUsbT1iLmluZGV4Kyh2P2JbMV0ubGVuZ3RoOjApO3IuaW5jbHVkZXMobSk/KG9bbV0uYmVmb3JlJiYhdiYmKG9bbV0uYmVmb3JlPSExKSxvW21dLmFmdGVyJiYheCYmKG9bbV0uYWZ0ZXI9ITEpKTooci5wdXNoKG0pLG9bbV09e2JlZm9yZTp2LGFmdGVyOnh9KX19ci5zb3J0KGRSYSk7bGV0IHA9dC5iZWZvcmU/dC5iZWZvcmUubGVuZ3RoOjAsZD1hLmxlbmd0aC0odC5hZnRlcj90LmFmdGVyLmxlbmd0aDowKTtmb3IobD0tMTsrK2w8ci5sZW5ndGg7KXtsZXQgdT1yW2xdO3U8cHx8dT49ZHx8dSsxPGQmJnJbbCsxXT09PXUrMSYmb1t1XS5hZnRlciYmIW9bdSsxXS5iZWZvcmUmJiFvW3UrMV0uYWZ0ZXJ8fHJbbC0xXT09PXUtMSYmb1t1XS5iZWZvcmUmJiFvW3UtMV0uYmVmb3JlJiYhb1t1LTFdLmFmdGVyfHwocCE9PXUmJm4ucHVzaChNN3QoYS5zbGljZShwLHUpLCJcXCIpKSxwPXUsL1shLS86LUBbLWB7LX5dLy50ZXN0KGEuY2hhckF0KHUpKSYmKCF0LmVuY29kZXx8IXQuZW5jb2RlLmluY2x1ZGVzKGEuY2hhckF0KHUpKSk/bi5wdXNoKCJcXCIpOihuLnB1c2goamwoYS5jaGFyQ29kZUF0KHUpKSkscCsrKSl9cmV0dXJuIG4ucHVzaChNN3QoYS5zbGljZShwLGQpLHQuYWZ0ZXIpKSxuLmpvaW4oIiIpfWZ1bmN0aW9uIGRSYShzLGUpe3JldHVybiBzLWV9ZnVuY3Rpb24gTTd0KHMsZSl7bGV0IHQ9L1xcKD89WyEtLzotQFstYHstfl0pL2csYT1bXSxyPVtdLG49cytlLG89LTEsbD0wLHA7Zm9yKDtwPXQuZXhlYyhuKTspYS5wdXNoKHAuaW5kZXgpO2Zvcig7KytvPGEubGVuZ3RoOylsIT09YVtvXSYmci5wdXNoKHMuc2xpY2UobCxhW29dKSksci5wdXNoKCJcXCIpLGw9YVtvXTtyZXR1cm4gci5wdXNoKHMuc2xpY2UobCkpLHIuam9pbigiIil9dmFyIEM3dD1nKCgpPT57WjkoKTt1ZmUoKTtpKHo3dCwic2FmZSIpO2koZFJhLCJudW1lcmljYWwiKTtpKE03dCwiZXNjYXBlQmFja3NsYXNoZXMiKX0pO2Z1bmN0aW9uIFQ3dChzKXtsZXQgZT1zfHx7fSx0PWUubm93fHx7fSxhPWUubGluZVNoaWZ0fHwwLHI9dC5saW5lfHwxLG49dC5jb2x1bW58fDE7cmV0dXJue21vdmU6cCxjdXJyZW50Om8sc2hpZnQ6bH07ZnVuY3Rpb24gbygpe3JldHVybntub3c6e2xpbmU6cixjb2x1bW46bn0sbGluZVNoaWZ0OmF9fWZ1bmN0aW9uIGwoZCl7YSs9ZH1mdW5jdGlvbiBwKGQpe2xldCB1PWR8fCIiLGM9dS5zcGxpdCgvXHI/XG58XHIvZyksYj1jW2MubGVuZ3RoLTFdO3JldHVybiByKz1jLmxlbmd0aC0xLG49Yy5sZW5ndGg9PT0xP24rYi5sZW5ndGg6MStiLmxlbmd0aCthLHV9fXZhciAkN3Q9ZygoKT0+e2koVDd0LCJ0cmFjayIpfSk7ZnVuY3Rpb24gRGZlKHMsZSl7bGV0IHQ9ZXx8e30sYT17YXNzb2NpYXRpb25JZDptN3QsY29udGFpbmVyUGhyYXNpbmc6ZlJhLGNvbnRhaW5lckZsb3c6bVJhLGNyZWF0ZVRyYWNrZXI6VDd0LGNvbXBpbGVQYXR0ZXJuOmI3dCxlbnRlcjpuLGhhbmRsZXJzOnsuLi5DM30saGFuZGxlOnZvaWQgMCxpbmRlbnRMaW5lczpTN3QsaW5kZXhTdGFjazpbXSxqb2luOlsuLi5kN3RdLG9wdGlvbnM6e30sc2FmZTpnUmEsc3RhY2s6W10sdW5zYWZlOlsuLi5wN3RdfTtkZmUoYSx0KSxhLm9wdGlvbnMudGlnaHREZWZpbml0aW9ucyYmYS5qb2luLnB1c2goaFJhKSxhLmhhbmRsZT1yaWUoInR5cGUiLHtpbnZhbGlkOnVSYSx1bmtub3duOnBSYSxoYW5kbGVyczphLmhhbmRsZXJzfSk7bGV0IHI9YS5oYW5kbGUocyx2b2lkIDAsYSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsbm93OntsaW5lOjEsY29sdW1uOjF9LGxpbmVTaGlmdDowfSk7cmV0dXJuIHImJnIuY2hhckNvZGVBdChyLmxlbmd0aC0xKSE9PTEwJiZyLmNoYXJDb2RlQXQoci5sZW5ndGgtMSkhPT0xMyYmKHIrPWAKYCkscjtmdW5jdGlvbiBuKG8pe3JldHVybiBhLnN0YWNrLnB1c2gobyksbDtmdW5jdGlvbiBsKCl7YS5zdGFjay5wb3AoKX1pKGwsImV4aXQiKX1pKG4sImVudGVyIil9ZnVuY3Rpb24gdVJhKHMpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB2YWx1ZSBgIitzKyJgLCBleHBlY3RlZCBub2RlIil9ZnVuY3Rpb24gcFJhKHMpe2xldCBlPXM7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHVua25vd24gbm9kZSBgIitlLnR5cGUrImAiKX1mdW5jdGlvbiBoUmEocyxlKXtpZihzLnR5cGU9PT0iZGVmaW5pdGlvbiImJnMudHlwZT09PWUudHlwZSlyZXR1cm4gMH1mdW5jdGlvbiBmUmEocyxlKXtyZXR1cm4geDd0KHMsdGhpcyxlKX1mdW5jdGlvbiBtUmEocyxlKXtyZXR1cm4gdzd0KHMsdGhpcyxlKX1mdW5jdGlvbiBnUmEocyxlKXtyZXR1cm4gejd0KHRoaXMscyxlKX12YXIgRDd0PWcoKCk9PntjZmUoKTtkZ3QoKTtUZmUoKTt1N3QoKTtoN3QoKTtnN3QoKTt2N3QoKTt5N3QoKTtrN3QoKTtfN3QoKTtDN3QoKTskN3QoKTtpKERmZSwidG9NYXJrZG93biIpO2kodVJhLCJpbnZhbGlkIik7aShwUmEsInVua25vd24iKTtpKGhSYSwiam9pbkRlZmluaXRpb24iKTtpKGZSYSwiY29udGFpbmVyUGhyYXNpbmdCb3VuZCIpO2kobVJhLCJjb250YWluZXJGbG93Qm91bmQiKTtpKGdSYSwic2FmZUJvdW5kIil9KTt2YXIgbWllPWcoKCk9PntEN3QoKTtUZmUoKX0pO2Z1bmN0aW9uIEVmZSgpe3JldHVybntlbnRlcjp7dGFibGU6YlJhLHRhYmxlRGF0YTpMN3QsdGFibGVIZWFkZXI6TDd0LHRhYmxlUm93OnhSYX0sZXhpdDp7Y29kZVRleHQ6eVJhLHRhYmxlOnZSYSx0YWJsZURhdGE6TGZlLHRhYmxlSGVhZGVyOkxmZSx0YWJsZVJvdzpMZmV9fX1mdW5jdGlvbiBiUmEocyl7bGV0IGU9cy5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOmUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0PT09Im5vbmUiP251bGw6dH0pLGNoaWxkcmVuOltdfSxzKSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiB2UmEocyl7dGhpcy5leGl0KHMpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiB4UmEocyl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSxzKX1mdW5jdGlvbiBMZmUocyl7dGhpcy5leGl0KHMpfWZ1bmN0aW9uIEw3dChzKXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSxzKX1mdW5jdGlvbiB5UmEocyl7bGV0IGU9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyx3UmEpKTtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3QudHlwZSx0LnZhbHVlPWUsdGhpcy5leGl0KHMpfWZ1bmN0aW9uIHdSYShzLGUpe3JldHVybiBlPT09InwiP2U6c31mdW5jdGlvbiBQZmUocyl7bGV0IGU9c3x8e30sdD1lLnRhYmxlQ2VsbFBhZGRpbmcsYT1lLnRhYmxlUGlwZUFsaWduLHI9ZS5zdHJpbmdMZW5ndGgsbj10PyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpiLHRhYmxlOm8sdGFibGVDZWxsOnAsdGFibGVSb3c6bH19O2Z1bmN0aW9uIG8odix4LG0sZil7cmV0dXJuIGQodSh2LG0sZiksdi5hbGlnbil9ZnVuY3Rpb24gbCh2LHgsbSxmKXtsZXQgeT1jKHYsbSxmKSxNPWQoW3ldKTtyZXR1cm4gTS5zbGljZSgwLE0uaW5kZXhPZihgCmApKX1mdW5jdGlvbiBwKHYseCxtLGYpe2xldCB5PW0uZW50ZXIoInRhYmxlQ2VsbCIpLE09bS5lbnRlcigicGhyYXNpbmciKSx6PW0uY29udGFpbmVyUGhyYXNpbmcodix7Li4uZixiZWZvcmU6bixhZnRlcjpufSk7cmV0dXJuIE0oKSx5KCksen1mdW5jdGlvbiBkKHYseCl7cmV0dXJuIG9ndCh2LHthbGlnbjp4LGFsaWduRGVsaW1pdGVyczphLHBhZGRpbmc6dCxzdHJpbmdMZW5ndGg6cn0pfWZ1bmN0aW9uIHUodix4LG0pe2xldCBmPXYuY2hpbGRyZW4seT0tMSxNPVtdLHo9eC5lbnRlcigidGFibGUiKTtmb3IoOysreTxmLmxlbmd0aDspTVt5XT1jKGZbeV0seCxtKTtyZXR1cm4geigpLE19ZnVuY3Rpb24gYyh2LHgsbSl7bGV0IGY9di5jaGlsZHJlbix5PS0xLE09W10sej14LmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt5PGYubGVuZ3RoOylNW3ldPXAoZlt5XSx2LHgsbSk7cmV0dXJuIHooKSxNfWZ1bmN0aW9uIGIodix4LG0pe2xldCBmPUMzLmlubGluZUNvZGUodix4LG0pO3JldHVybiBtLnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKGY9Zi5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLGZ9fXZhciBFN3Q9ZygoKT0+e1dwKCk7bmd0KCk7bWllKCk7aShFZmUsImdmbVRhYmxlRnJvbU1hcmtkb3duIik7aShiUmEsImVudGVyVGFibGUiKTtpKHZSYSwiZXhpdFRhYmxlIik7aSh4UmEsImVudGVyUm93Iik7aShMZmUsImV4aXQiKTtpKEw3dCwiZW50ZXJDZWxsIik7aSh5UmEsImV4aXRDb2RlVGV4dCIpO2kod1JhLCJyZXBsYWNlIik7aShQZmUsImdmbVRhYmxlVG9NYXJrZG93biIpfSk7dmFyIFA3dD1nKCgpPT57RTd0KCl9KTtmdW5jdGlvbiBJZmUoKXtyZXR1cm57ZXhpdDp7dGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZDpJN3QsdGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkOkk3dCxwYXJhZ3JhcGg6a1JhfX19ZnVuY3Rpb24gQWZlKCl7cmV0dXJue3Vuc2FmZTpbe2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2xpc3RJdGVtOlNSYX19fWZ1bmN0aW9uIEk3dChzKXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2UudHlwZSxlLmNoZWNrZWQ9cy50eXBlPT09InRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQifWZ1bmN0aW9uIGtSYShzKXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2lmKGUmJmUudHlwZT09PSJsaXN0SXRlbSImJnR5cGVvZiBlLmNoZWNrZWQ9PSJib29sZWFuIil7bGV0IHQ9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt0LnR5cGU7bGV0IGE9dC5jaGlsZHJlblswXTtpZihhJiZhLnR5cGU9PT0idGV4dCIpe2xldCByPWUuY2hpbGRyZW4sbj0tMSxvO2Zvcig7KytuPHIubGVuZ3RoOyl7bGV0IGw9cltuXTtpZihsLnR5cGU9PT0icGFyYWdyYXBoIil7bz1sO2JyZWFrfX1vPT09dCYmKGEudmFsdWU9YS52YWx1ZS5zbGljZSgxKSxhLnZhbHVlLmxlbmd0aD09PTA/dC5jaGlsZHJlbi5zaGlmdCgpOnQucG9zaXRpb24mJmEucG9zaXRpb24mJnR5cGVvZiBhLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldD09Im51bWJlciImJihhLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbisrLGEucG9zaXRpb24uc3RhcnQub2Zmc2V0KyssdC5wb3NpdGlvbi5zdGFydD1PYmplY3QuYXNzaWduKHt9LGEucG9zaXRpb24uc3RhcnQpKSl9fXRoaXMuZXhpdChzKX1mdW5jdGlvbiBTUmEocyxlLHQsYSl7bGV0IHI9cy5jaGlsZHJlblswXSxuPXR5cGVvZiBzLmNoZWNrZWQ9PSJib29sZWFuIiYmciYmci50eXBlPT09InBhcmFncmFwaCIsbz0iWyIrKHMuY2hlY2tlZD8ieCI6IiAiKSsiXSAiLGw9dC5jcmVhdGVUcmFja2VyKGEpO24mJmwubW92ZShvKTtsZXQgcD1DMy5saXN0SXRlbShzLGUsdCx7Li4uYSwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBuJiYocD1wLnJlcGxhY2UoL14oPzpbKistXXxcZCtcLikoW1xyXG5dfCB7MSwzfSkvLGQpKSxwO2Z1bmN0aW9uIGQodSl7cmV0dXJuIHUrb31pKGQsImNoZWNrIil9dmFyIEE3dD1nKCgpPT57V3AoKTttaWUoKTtpKElmZSwiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIik7aShBZmUsImdmbVRhc2tMaXN0SXRlbVRvTWFya2Rvd24iKTtpKEk3dCwiZXhpdENoZWNrIik7aShrUmEsImV4aXRQYXJhZ3JhcGhXaXRoVGFza0xpc3RJdGVtIik7aShTUmEsImxpc3RJdGVtV2l0aFRhc2tMaXN0SXRlbSIpfSk7dmFyIE43dD1nKCgpPT57QTd0KCl9KTtmdW5jdGlvbiBOZmUoKXtyZXR1cm5bc2ZlKCkscmZlKCksbmZlKCksRWZlKCksSWZlKCldfWZ1bmN0aW9uIFJmZShzKXtyZXR1cm57ZXh0ZW5zaW9uczpbaWZlKCksb2ZlKHMpLGxmZSgpLFBmZShzKSxBZmUoKV19fXZhciBSN3Q9ZygoKT0+e1g4dCgpO3RndCgpO2lndCgpO1A3dCgpO043dCgpO2koTmZlLCJnZm1Gcm9tTWFya2Rvd24iKTtpKFJmZSwiZ2ZtVG9NYXJrZG93biIpfSk7dmFyIE83dD1nKCgpPT57Ujd0KCl9KTtmdW5jdGlvbiBzcihzLGUsdCxhKXtsZXQgcj1zLmxlbmd0aCxuPTAsbztpZihlPDA/ZT0tZT5yPzA6citlOmU9ZT5yP3I6ZSx0PXQ+MD90OjAsYS5sZW5ndGg8MWU0KW89QXJyYXkuZnJvbShhKSxvLnVuc2hpZnQoZSx0KSxzLnNwbGljZSguLi5vKTtlbHNlIGZvcih0JiZzLnNwbGljZShlLHQpO248YS5sZW5ndGg7KW89YS5zbGljZShuLG4rMWU0KSxvLnVuc2hpZnQoZSwwKSxzLnNwbGljZSguLi5vKSxuKz0xZTQsZSs9MWU0fWZ1bmN0aW9uIE1yKHMsZSl7cmV0dXJuIHMubGVuZ3RoPjA/KHNyKHMscy5sZW5ndGgsMCxlKSxzKTplfXZhciBiZD1nKCgpPT57aShzciwic3BsaWNlIik7aShNciwicHVzaCIpfSk7ZnVuY3Rpb24gZ2llKHMpe2xldCBlPXt9LHQ9LTE7Zm9yKDsrK3Q8cy5sZW5ndGg7KV9SYShlLHNbdF0pO3JldHVybiBlfWZ1bmN0aW9uIF9SYShzLGUpe2xldCB0O2Zvcih0IGluIGUpe2xldCByPShPZmUuY2FsbChzLHQpP3NbdF06dm9pZCAwKXx8KHNbdF09e30pLG49ZVt0XSxvO2lmKG4pZm9yKG8gaW4gbil7T2ZlLmNhbGwocixvKXx8KHJbb109W10pO2xldCBsPW5bb107TVJhKHJbb10sQXJyYXkuaXNBcnJheShsKT9sOmw/W2xdOltdKX19fWZ1bmN0aW9uIE1SYShzLGUpe2xldCB0PS0xLGE9W107Zm9yKDsrK3Q8ZS5sZW5ndGg7KShlW3RdLmFkZD09PSJhZnRlciI/czphKS5wdXNoKGVbdF0pO3NyKHMsMCwwLGEpfWZ1bmN0aW9uIGJpZShzKXtsZXQgZT17fSx0PS0xO2Zvcig7Kyt0PHMubGVuZ3RoOyl6UmEoZSxzW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiB6UmEocyxlKXtsZXQgdDtmb3IodCBpbiBlKXtsZXQgcj0oT2ZlLmNhbGwocyx0KT9zW3RdOnZvaWQgMCl8fChzW3RdPXt9KSxuPWVbdF0sbztpZihuKWZvcihvIGluIG4pcltvXT1uW29dfX12YXIgT2ZlLHZpZT1nKCgpPT57YmQoKTtPZmU9e30uaGFzT3duUHJvcGVydHk7aShnaWUsImNvbWJpbmVFeHRlbnNpb25zIik7aShfUmEsInN5bnRheEV4dGVuc2lvbiIpO2koTVJhLCJjb25zdHJ1Y3RzIik7aShiaWUsImNvbWJpbmVIdG1sRXh0ZW5zaW9ucyIpO2koelJhLCJodG1sRXh0ZW5zaW9uIil9KTtmdW5jdGlvbiBIZmUoKXtyZXR1cm57dGV4dDp2ZH19ZnVuY3Rpb24gJFJhKHMsZSx0KXtsZXQgYT10aGlzLHIsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybiFGZmUoYyl8fCFXN3QuY2FsbChhLGEucHJldmlvdXMpfHxCZmUoYS5ldmVudHMpP3QoYyk6KHMuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLHMuZW50ZXIoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksbChjKSl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gRmZlKGMpPyhzLmNvbnN1bWUoYyksbCk6Yz09PTY0PyhzLmNvbnN1bWUoYykscCk6dChjKX1mdW5jdGlvbiBwKGMpe3JldHVybiBjPT09NDY/cy5jaGVjayhUUmEsdSxkKShjKTpjPT09NDV8fGM9PT05NXx8QmkoYyk/KG49ITAscy5jb25zdW1lKGMpLHApOnUoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gcy5jb25zdW1lKGMpLHI9ITAscH1mdW5jdGlvbiB1KGMpe3JldHVybiBuJiZyJiZVcihhLnByZXZpb3VzKT8ocy5leGl0KCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShjKSk6dChjKX19ZnVuY3Rpb24gRFJhKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIG8hPT04NyYmbyE9PTExOXx8IVY3dC5jYWxsKGEsYS5wcmV2aW91cyl8fEJmZShhLmV2ZW50cyk/dChvKToocy5lbnRlcigibGl0ZXJhbEF1dG9saW5rIikscy5lbnRlcigibGl0ZXJhbEF1dG9saW5rV3d3Iikscy5jaGVjayhDUmEscy5hdHRlbXB0KEY3dCxzLmF0dGVtcHQoQjd0LG4pLHQpLHQpKG8pKX1mdW5jdGlvbiBuKG8pe3JldHVybiBzLmV4aXQoImxpdGVyYWxBdXRvbGlua1d3dyIpLHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShvKX19ZnVuY3Rpb24gTFJhKHMsZSx0KXtsZXQgYT10aGlzLHI9IiIsbj0hMTtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybihjPT09NzJ8fGM9PT0xMDQpJiZVN3QuY2FsbChhLGEucHJldmlvdXMpJiYhQmZlKGEuZXZlbnRzKT8ocy5lbnRlcigibGl0ZXJhbEF1dG9saW5rIikscy5lbnRlcigibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHIrPVN0cmluZy5mcm9tQ29kZVBvaW50KGMpLHMuY29uc3VtZShjKSxsKTp0KGMpfWZ1bmN0aW9uIGwoYyl7aWYoVXIoYykmJnIubGVuZ3RoPDUpcmV0dXJuIHIrPVN0cmluZy5mcm9tQ29kZVBvaW50KGMpLHMuY29uc3VtZShjKSxsO2lmKGM9PT01OCl7bGV0IGI9ci50b0xvd2VyQ2FzZSgpO2lmKGI9PT0iaHR0cCJ8fGI9PT0iaHR0cHMiKXJldHVybiBzLmNvbnN1bWUoYykscH1yZXR1cm4gdChjKX1mdW5jdGlvbiBwKGMpe3JldHVybiBjPT09NDc/KHMuY29uc3VtZShjKSxuP2Q6KG49ITAscCkpOnQoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gYz09PW51bGx8fFMzKGMpfHxBYShjKXx8Z2QoYyl8fF8zKGMpP3QoYyk6cy5hdHRlbXB0KEY3dCxzLmF0dGVtcHQoQjd0LHUpLHQpKGMpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHMuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShjKX19ZnVuY3Rpb24gRVJhKHMsZSx0KXtsZXQgYT0wO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuKG89PT04N3x8bz09PTExOSkmJmE8Mz8oYSsrLHMuY29uc3VtZShvKSxyKTpvPT09NDYmJmE9PT0zPyhzLmNvbnN1bWUobyksbik6dChvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09bnVsbD90KG8pOmUobyl9fWZ1bmN0aW9uIFBSYShzLGUsdCl7bGV0IGEscixuO3JldHVybiBvO2Z1bmN0aW9uIG8oZCl7cmV0dXJuIGQ9PT00Nnx8ZD09PTk1P3MuY2hlY2soSDd0LHAsbCkoZCk6ZD09PW51bGx8fEFhKGQpfHxnZChkKXx8ZCE9PTQ1JiZfMyhkKT9wKGQpOihuPSEwLHMuY29uc3VtZShkKSxvKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09OTU/YT0hMDoocj1hLGE9dm9pZCAwKSxzLmNvbnN1bWUoZCksb31mdW5jdGlvbiBwKGQpe3JldHVybiByfHxhfHwhbj90KGQpOmUoZCl9fWZ1bmN0aW9uIElSYShzLGUpe2xldCB0PTAsYT0wO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIG89PT00MD8odCsrLHMuY29uc3VtZShvKSxyKTpvPT09NDEmJmE8dD9uKG8pOm89PT0zM3x8bz09PTM0fHxvPT09Mzh8fG89PT0zOXx8bz09PTQxfHxvPT09NDJ8fG89PT00NHx8bz09PTQ2fHxvPT09NTh8fG89PT01OXx8bz09PTYwfHxvPT09NjN8fG89PT05M3x8bz09PTk1fHxvPT09MTI2P3MuY2hlY2soSDd0LGUsbikobyk6bz09PW51bGx8fEFhKG8pfHxnZChvKT9lKG8pOihzLmNvbnN1bWUobykscil9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTQxJiZhKysscy5jb25zdW1lKG8pLHJ9fWZ1bmN0aW9uIEFSYShzLGUsdCl7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gbD09PTMzfHxsPT09MzR8fGw9PT0zOXx8bD09PTQxfHxsPT09NDJ8fGw9PT00NHx8bD09PTQ2fHxsPT09NTh8fGw9PT01OXx8bD09PTYzfHxsPT09OTV8fGw9PT0xMjY/KHMuY29uc3VtZShsKSxhKTpsPT09Mzg/KHMuY29uc3VtZShsKSxuKTpsPT09OTM/KHMuY29uc3VtZShsKSxyKTpsPT09NjB8fGw9PT1udWxsfHxBYShsKXx8Z2QobCk/ZShsKTp0KGwpfWZ1bmN0aW9uIHIobCl7cmV0dXJuIGw9PT1udWxsfHxsPT09NDB8fGw9PT05MXx8QWEobCl8fGdkKGwpP2UobCk6YShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBVcihsKT9vKGwpOnQobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbD09PTU5PyhzLmNvbnN1bWUobCksYSk6VXIobCk/KHMuY29uc3VtZShsKSxvKTp0KGwpfX1mdW5jdGlvbiBOUmEocyxlLHQpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHMuY29uc3VtZShuKSxyfWZ1bmN0aW9uIHIobil7cmV0dXJuIEJpKG4pP3Qobik6ZShuKX19ZnVuY3Rpb24gVjd0KHMpe3JldHVybiBzPT09bnVsbHx8cz09PTQwfHxzPT09NDJ8fHM9PT05NXx8cz09PTkxfHxzPT09OTN8fHM9PT0xMjZ8fEFhKHMpfWZ1bmN0aW9uIFU3dChzKXtyZXR1cm4hVXIocyl9ZnVuY3Rpb24gVzd0KHMpe3JldHVybiEocz09PTQ3fHxGZmUocykpfWZ1bmN0aW9uIEZmZShzKXtyZXR1cm4gcz09PTQzfHxzPT09NDV8fHM9PT00Nnx8cz09PTk1fHxCaShzKX1mdW5jdGlvbiBCZmUocyl7bGV0IGU9cy5sZW5ndGgsdD0hMTtmb3IoO2UtLTspe2xldCBhPXNbZV1bMV07aWYoKGEudHlwZT09PSJsYWJlbExpbmsifHxhLnR5cGU9PT0ibGFiZWxJbWFnZSIpJiYhYS5fYmFsYW5jZWQpe3Q9ITA7YnJlYWt9aWYoYS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50byl7dD0hMTticmVha319cmV0dXJuIHMubGVuZ3RoPjAmJiF0JiYoc1tzLmxlbmd0aC0xXVsxXS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50bz0hMCksdH12YXIgQ1JhLEY3dCxCN3QsSDd0LFRSYSxxN3Qsajd0LEUwLHZkLEc3dD1nKCgpPT57VmEoKTtDUmE9e3Rva2VuaXplOkVSYSxwYXJ0aWFsOiEwfSxGN3Q9e3Rva2VuaXplOlBSYSxwYXJ0aWFsOiEwfSxCN3Q9e3Rva2VuaXplOklSYSxwYXJ0aWFsOiEwfSxIN3Q9e3Rva2VuaXplOkFSYSxwYXJ0aWFsOiEwfSxUUmE9e3Rva2VuaXplOk5SYSxwYXJ0aWFsOiEwfSxxN3Q9e25hbWU6Ind3d0F1dG9saW5rIix0b2tlbml6ZTpEUmEscHJldmlvdXM6Vjd0fSxqN3Q9e25hbWU6InByb3RvY29sQXV0b2xpbmsiLHRva2VuaXplOkxSYSxwcmV2aW91czpVN3R9LEUwPXtuYW1lOiJlbWFpbEF1dG9saW5rIix0b2tlbml6ZTokUmEscHJldmlvdXM6Vzd0fSx2ZD17fTtpKEhmZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsIik7Zm9yKHZhciAkMz00ODskMzwxMjM7KXZkWyQzXT1FMCwkMysrLCQzPT09NTg/JDM9NjU6JDM9PT05MSYmKCQzPTk3KTt2ZFs0M109RTAsdmRbNDVdPUUwLHZkWzQ2XT1FMCx2ZFs5NV09RTAsdmRbNzJdPVtFMCxqN3RdLHZkWzEwNF09W0UwLGo3dF0sdmRbODddPVtFMCxxN3RdLHZkWzExOV09W0UwLHE3dF07aSgkUmEsInRva2VuaXplRW1haWxBdXRvbGluayIpO2koRFJhLCJ0b2tlbml6ZVd3d0F1dG9saW5rIik7aShMUmEsInRva2VuaXplUHJvdG9jb2xBdXRvbGluayIpO2koRVJhLCJ0b2tlbml6ZVd3d1ByZWZpeCIpO2koUFJhLCJ0b2tlbml6ZURvbWFpbiIpO2koSVJhLCJ0b2tlbml6ZVBhdGgiKTtpKEFSYSwidG9rZW5pemVUcmFpbCIpO2koTlJhLCJ0b2tlbml6ZUVtYWlsRG9tYWluRG90VHJhaWwiKTtpKFY3dCwicHJldmlvdXNXd3ciKTtpKFU3dCwicHJldmlvdXNQcm90b2NvbCIpO2koVzd0LCJwcmV2aW91c0VtYWlsIik7aShGZmUsImdmbUF0ZXh0Iik7aShCZmUsInByZXZpb3VzVW5iYWxhbmNlZCIpfSk7ZnVuY3Rpb24geGllKHMpe3JldHVybiBzLnJlcGxhY2UoL1siJjw+XS9nLGUpO2Z1bmN0aW9uIGUodCl7cmV0dXJuIiYiK1JSYVt0XSsiOyJ9fXZhciBSUmEscWZlPWcoKCk9PntSUmE9eyciJzoicXVvdCIsIiYiOiJhbXAiLCI8IjoibHQiLCI+IjoiZ3QifTtpKHhpZSwiZW5jb2RlIil9KTtmdW5jdGlvbiB4ZChzLGUpe2xldCB0PXhpZShWbChzfHwiIikpO2lmKCFlKXJldHVybiB0O2xldCBhPXQuaW5kZXhPZigiOiIpLHI9dC5pbmRleE9mKCI/Iiksbj10LmluZGV4T2YoIiMiKSxvPXQuaW5kZXhPZigiLyIpO3JldHVybiBhPDB8fG8+LTEmJmE+b3x8cj4tMSYmYT5yfHxuPi0xJiZhPm58fGUudGVzdCh0LnNsaWNlKDAsYSkpP3Q6IiJ9ZnVuY3Rpb24gVmwocyl7bGV0IGU9W10sdD0tMSxhPTAscj0wO2Zvcig7Kyt0PHMubGVuZ3RoOyl7bGV0IG49cy5jaGFyQ29kZUF0KHQpLG89IiI7aWYobj09PTM3JiZCaShzLmNoYXJDb2RlQXQodCsxKSkmJkJpKHMuY2hhckNvZGVBdCh0KzIpKSlyPTI7ZWxzZSBpZihuPDEyOCkvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuKSl8fChvPVN0cmluZy5mcm9tQ2hhckNvZGUobikpO2Vsc2UgaWYobj41NTI5NSYmbjw1NzM0NCl7bGV0IGw9cy5jaGFyQ29kZUF0KHQrMSk7bjw1NjMyMCYmbD41NjMxOSYmbDw1NzM0ND8obz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4sbCkscj0xKTpvPSJcdUZGRkQifWVsc2Ugbz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pO28mJihlLnB1c2gocy5zbGljZShhLHQpLGVuY29kZVVSSUNvbXBvbmVudChvKSksYT10K3IrMSxvPSIiKSxyJiYodCs9cixyPTApfXJldHVybiBlLmpvaW4oIiIpK3Muc2xpY2UoYSl9dmFyIHlkPWcoKCk9PntWYSgpO3FmZSgpO2koeGQsInNhbml0aXplVXJpIik7aShWbCwibm9ybWFsaXplVXJpIil9KTtmdW5jdGlvbiBWZmUoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6RlJhLGxpdGVyYWxBdXRvbGlua0h0dHA6QlJhLGxpdGVyYWxBdXRvbGlua1d3dzpPUmF9fX1mdW5jdGlvbiBPUmEocyl7amZlLmNhbGwodGhpcyxzLCJodHRwOi8vIil9ZnVuY3Rpb24gRlJhKHMpe2pmZS5jYWxsKHRoaXMscywibWFpbHRvOiIpfWZ1bmN0aW9uIEJSYShzKXtqZmUuY2FsbCh0aGlzLHMpfWZ1bmN0aW9uIGpmZShzLGUpe2xldCB0PXRoaXMuc2xpY2VTZXJpYWxpemUocyk7dGhpcy50YWcoJzxhIGhyZWY9IicreGQoKGV8fCIiKSt0KSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZSh0KSksdGhpcy50YWcoIjwvYT4iKX12YXIgSzd0PWcoKCk9Pnt5ZCgpO2koVmZlLCJnZm1BdXRvbGlua0xpdGVyYWxIdG1sIik7aShPUmEsImxpdGVyYWxBdXRvbGlua1d3dyIpO2koRlJhLCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpO2koQlJhLCJsaXRlcmFsQXV0b2xpbmtIdHRwIik7aShqZmUsImFuY2hvckZyb21Ub2tlbiIpfSk7dmFyIFk3dD1nKCgpPT57Rzd0KCk7Szd0KCl9KTtmdW5jdGlvbiBYcChzLGUsdCl7bGV0IGE9W10scj0tMTtmb3IoOysrcjxzLmxlbmd0aDspe2xldCBuPXNbcl0ucmVzb2x2ZUFsbDtuJiYhYS5pbmNsdWRlcyhuKSYmKGU9bihlLHQpLGEucHVzaChuKSl9cmV0dXJuIGV9dmFyIHVrPWcoKCk9PntpKFhwLCJyZXNvbHZlQWxsIil9KTtmdW5jdGlvbiBIUmEocyxlKXtsZXQgdD0tMSxhLHIsbixvLGwscCxkLHU7Zm9yKDsrK3Q8cy5sZW5ndGg7KWlmKHNbdF1bMF09PT0iZW50ZXIiJiZzW3RdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZzW3RdWzFdLl9jbG9zZSl7Zm9yKGE9dDthLS07KWlmKHNbYV1bMF09PT0iZXhpdCImJnNbYV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnNbYV1bMV0uX29wZW4mJmUuc2xpY2VTZXJpYWxpemUoc1thXVsxXSkuY2hhckNvZGVBdCgwKT09PWUuc2xpY2VTZXJpYWxpemUoc1t0XVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKHNbYV1bMV0uX2Nsb3NlfHxzW3RdWzFdLl9vcGVuKSYmKHNbdF1bMV0uZW5kLm9mZnNldC1zW3RdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgoc1thXVsxXS5lbmQub2Zmc2V0LXNbYV1bMV0uc3RhcnQub2Zmc2V0K3NbdF1bMV0uZW5kLm9mZnNldC1zW3RdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7cD1zW2FdWzFdLmVuZC5vZmZzZXQtc1thXVsxXS5zdGFydC5vZmZzZXQ+MSYmc1t0XVsxXS5lbmQub2Zmc2V0LXNbdF1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBjPXsuLi5zW2FdWzFdLmVuZH0sYj17Li4uc1t0XVsxXS5zdGFydH07Wjd0KGMsLXApLFo3dChiLHApLG89e3R5cGU6cD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmMsZW5kOnsuLi5zW2FdWzFdLmVuZH19LGw9e3R5cGU6cD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi5zW3RdWzFdLnN0YXJ0fSxlbmQ6Yn0sbj17dHlwZTpwPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi5zW2FdWzFdLmVuZH0sZW5kOnsuLi5zW3RdWzFdLnN0YXJ0fX0scj17dHlwZTpwPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uby5zdGFydH0sZW5kOnsuLi5sLmVuZH19LHNbYV1bMV0uZW5kPXsuLi5vLnN0YXJ0fSxzW3RdWzFdLnN0YXJ0PXsuLi5sLmVuZH0sZD1bXSxzW2FdWzFdLmVuZC5vZmZzZXQtc1thXVsxXS5zdGFydC5vZmZzZXQmJihkPU1yKGQsW1siZW50ZXIiLHNbYV1bMV0sZV0sWyJleGl0IixzW2FdWzFdLGVdXSkpLGQ9TXIoZCxbWyJlbnRlciIscixlXSxbImVudGVyIixvLGVdLFsiZXhpdCIsbyxlXSxbImVudGVyIixuLGVdXSksZD1NcihkLFhwKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHMuc2xpY2UoYSsxLHQpLGUpKSxkPU1yKGQsW1siZXhpdCIsbixlXSxbImVudGVyIixsLGVdLFsiZXhpdCIsbCxlXSxbImV4aXQiLHIsZV1dKSxzW3RdWzFdLmVuZC5vZmZzZXQtc1t0XVsxXS5zdGFydC5vZmZzZXQ/KHU9MixkPU1yKGQsW1siZW50ZXIiLHNbdF1bMV0sZV0sWyJleGl0IixzW3RdWzFdLGVdXSkpOnU9MCxzcihzLGEtMSx0LWErMyxkKSx0PWErZC5sZW5ndGgtdS0yO2JyZWFrfX1mb3IodD0tMTsrK3Q8cy5sZW5ndGg7KXNbdF1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJihzW3RdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gc31mdW5jdGlvbiBxUmEocyxlKXtsZXQgdD10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxhPXRoaXMucHJldmlvdXMscj1MMChhKSxuO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuIG49cCxzLmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLGwocCl9ZnVuY3Rpb24gbChwKXtpZihwPT09bilyZXR1cm4gcy5jb25zdW1lKHApLGw7bGV0IGQ9cy5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLHU9TDAocCksYz0hdXx8dT09PTImJnJ8fHQuaW5jbHVkZXMocCksYj0hcnx8cj09PTImJnV8fHQuaW5jbHVkZXMoYSk7cmV0dXJuIGQuX29wZW49ISEobj09PTQyP2M6YyYmKHJ8fCFiKSksZC5fY2xvc2U9ISEobj09PTQyP2I6YiYmKHV8fCFjKSksZShwKX19ZnVuY3Rpb24gWjd0KHMsZSl7cy5jb2x1bW4rPWUscy5vZmZzZXQrPWUscy5fYnVmZmVySW5kZXgrPWV9dmFyIHBrLFg3dD1nKCgpPT57YmQoKTtsaWUoKTt1aygpO3BrPXtuYW1lOiJhdHRlbnRpb24iLHJlc29sdmVBbGw6SFJhLHRva2VuaXplOnFSYX07aShIUmEsInJlc29sdmVBbGxBdHRlbnRpb24iKTtpKHFSYSwidG9rZW5pemVBdHRlbnRpb24iKTtpKFo3dCwibW92ZVBvaW50Iil9KTtmdW5jdGlvbiBqUmEocyxlLHQpe2xldCBhPTA7cmV0dXJuIHI7ZnVuY3Rpb24gcih2KXtyZXR1cm4gcy5lbnRlcigiYXV0b2xpbmsiKSxzLmVudGVyKCJhdXRvbGlua01hcmtlciIpLHMuY29uc3VtZSh2KSxzLmV4aXQoImF1dG9saW5rTWFya2VyIikscy5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLG59ZnVuY3Rpb24gbih2KXtyZXR1cm4gVXIodik/KHMuY29uc3VtZSh2KSxvKTp2PT09NjQ/dCh2KTpkKHYpfWZ1bmN0aW9uIG8odil7cmV0dXJuIHY9PT00M3x8dj09PTQ1fHx2PT09NDZ8fEJpKHYpPyhhPTEsbCh2KSk6ZCh2KX1mdW5jdGlvbiBsKHYpe3JldHVybiB2PT09NTg/KHMuY29uc3VtZSh2KSxhPTAscCk6KHY9PT00M3x8dj09PTQ1fHx2PT09NDZ8fEJpKHYpKSYmYSsrPDMyPyhzLmNvbnN1bWUodiksbCk6KGE9MCxkKHYpKX1mdW5jdGlvbiBwKHYpe3JldHVybiB2PT09NjI/KHMuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLHMuZW50ZXIoImF1dG9saW5rTWFya2VyIikscy5jb25zdW1lKHYpLHMuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxzLmV4aXQoImF1dG9saW5rIiksZSk6dj09PW51bGx8fHY9PT0zMnx8dj09PTYwfHxTMyh2KT90KHYpOihzLmNvbnN1bWUodikscCl9ZnVuY3Rpb24gZCh2KXtyZXR1cm4gdj09PTY0PyhzLmNvbnN1bWUodiksdSk6Tzh0KHYpPyhzLmNvbnN1bWUodiksZCk6dCh2KX1mdW5jdGlvbiB1KHYpe3JldHVybiBCaSh2KT9jKHYpOnQodil9ZnVuY3Rpb24gYyh2KXtyZXR1cm4gdj09PTQ2PyhzLmNvbnN1bWUodiksYT0wLHUpOnY9PT02Mj8ocy5leGl0KCJhdXRvbGlua1Byb3RvY29sIikudHlwZT0iYXV0b2xpbmtFbWFpbCIscy5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxzLmNvbnN1bWUodikscy5leGl0KCJhdXRvbGlua01hcmtlciIpLHMuZXhpdCgiYXV0b2xpbmsiKSxlKTpiKHYpfWZ1bmN0aW9uIGIodil7aWYoKHY9PT00NXx8QmkodikpJiZhKys8NjMpe2xldCB4PXY9PT00NT9iOmM7cmV0dXJuIHMuY29uc3VtZSh2KSx4fXJldHVybiB0KHYpfX12YXIgVWZlLFE3dD1nKCgpPT57VmEoKTtVZmU9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTpqUmF9O2koalJhLCJ0b2tlbml6ZUF1dG9saW5rIil9KTtmdW5jdGlvbiBLdChzLGUsdCxhKXtsZXQgcj1hP2EtMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuIEh0KHApPyhzLmVudGVyKHQpLGwocCkpOmUocCl9ZnVuY3Rpb24gbChwKXtyZXR1cm4gSHQocCkmJm4rKzxyPyhzLmNvbnN1bWUocCksbCk6KHMuZXhpdCh0KSxlKHApKX19dmFyIGlyPWcoKCk9PntWYSgpO2koS3QsImZhY3RvcnlTcGFjZSIpfSk7ZnVuY3Rpb24gVlJhKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBIdChuKT9LdChzLHIsImxpbmVQcmVmaXgiKShuKTpyKG4pfWZ1bmN0aW9uIHIobil7cmV0dXJuIG49PT1udWxsfHx2dChuKT9lKG4pOnQobil9fXZhciB3ZCx5aWU9ZygoKT0+e2lyKCk7VmEoKTt3ZD17cGFydGlhbDohMCx0b2tlbml6ZTpWUmF9O2koVlJhLCJ0b2tlbml6ZUJsYW5rTGluZSIpfSk7ZnVuY3Rpb24gVVJhKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7aWYobz09PTYyKXtsZXQgbD1hLmNvbnRhaW5lclN0YXRlO3JldHVybiBsLm9wZW58fChzLmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLGwub3Blbj0hMCkscy5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLHMuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSxzLmNvbnN1bWUobykscy5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksbn1yZXR1cm4gdChvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBIdChvKT8ocy5lbnRlcigiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSxzLmNvbnN1bWUobykscy5leGl0KCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHMuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUpOihzLmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKG8pKX19ZnVuY3Rpb24gV1JhKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIEh0KG8pP0t0KHMsbiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShvKTpuKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIHMuYXR0ZW1wdCh3aWUsZSx0KShvKX19ZnVuY3Rpb24gR1JhKHMpe3MuZXhpdCgiYmxvY2tRdW90ZSIpfXZhciB3aWUsSjd0PWcoKCk9PntpcigpO1ZhKCk7d2llPXtjb250aW51YXRpb246e3Rva2VuaXplOldSYX0sZXhpdDpHUmEsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6VVJhfTtpKFVSYSwidG9rZW5pemVCbG9ja1F1b3RlU3RhcnQiKTtpKFdSYSwidG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9uIik7aShHUmEsImV4aXQiKX0pO2Z1bmN0aW9uIEtSYShzLGUsdCl7cmV0dXJuIGE7ZnVuY3Rpb24gYShuKXtyZXR1cm4gcy5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIikscy5lbnRlcigiZXNjYXBlTWFya2VyIikscy5jb25zdW1lKG4pLHMuZXhpdCgiZXNjYXBlTWFya2VyIikscn1mdW5jdGlvbiByKG4pe3JldHVybiBCOHQobik/KHMuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIikscy5jb25zdW1lKG4pLHMuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxzLmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLGUpOnQobil9fXZhciBraWUsZTl0PWcoKCk9PntWYSgpO2tpZT17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTpLUmF9O2koS1JhLCJ0b2tlbml6ZUNoYXJhY3RlckVzY2FwZSIpfSk7ZnVuY3Rpb24gWVJhKHMsZSx0KXtsZXQgYT10aGlzLHI9MCxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChjKXtyZXR1cm4gcy5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIikscy5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIikscy5jb25zdW1lKGMpLHMuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIikscH1mdW5jdGlvbiBwKGMpe3JldHVybiBjPT09MzU/KHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxzLmNvbnN1bWUoYykscy5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksZCk6KHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPUJpLHUoYykpfWZ1bmN0aW9uIGQoYyl7cmV0dXJuIGM9PT04OHx8Yz09PTEyMD8ocy5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxzLmNvbnN1bWUoYykscy5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89Rjh0LHUpOihzLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPW9rLHUoYykpfWZ1bmN0aW9uIHUoYyl7aWYoYz09PTU5JiZyKXtsZXQgYj1zLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1CaSYmIVpwKGEuc2xpY2VTZXJpYWxpemUoYikpP3QoYyk6KHMuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHMuY29uc3VtZShjKSxzLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHMuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksZSl9cmV0dXJuIG8oYykmJnIrKzxuPyhzLmNvbnN1bWUoYyksdSk6dChjKX19dmFyIFNpZSx0OXQ9ZygoKT0+e2RrKCk7VmEoKTtTaWU9e25hbWU6ImNoYXJhY3RlclJlZmVyZW5jZSIsdG9rZW5pemU6WVJhfTtpKFlSYSwidG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIFpSYShzLGUsdCl7bGV0IGE9dGhpcyxyPXtwYXJ0aWFsOiEwLHRva2VuaXplOkN9LG49MCxvPTAsbDtyZXR1cm4gcDtmdW5jdGlvbiBwKF8pe3JldHVybiBkKF8pfWZ1bmN0aW9uIGQoXyl7bGV0IE89YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBuPU8mJk9bMV0udHlwZT09PSJsaW5lUHJlZml4Ij9PWzJdLnNsaWNlU2VyaWFsaXplKE9bMV0sITApLmxlbmd0aDowLGw9XyxzLmVudGVyKCJjb2RlRmVuY2VkIikscy5lbnRlcigiY29kZUZlbmNlZEZlbmNlIikscy5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSx1KF8pfWZ1bmN0aW9uIHUoXyl7cmV0dXJuIF89PT1sPyhvKysscy5jb25zdW1lKF8pLHUpOm88Mz90KF8pOihzLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksSHQoXyk/S3QocyxjLCJ3aGl0ZXNwYWNlIikoXyk6YyhfKSl9ZnVuY3Rpb24gYyhfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pPyhzLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLGEuaW50ZXJydXB0P2UoXyk6cy5jaGVjayhhOXQsbSxOKShfKSk6KHMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksYihfKSl9ZnVuY3Rpb24gYihfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksYyhfKSk6SHQoXyk/KHMuZXhpdCgiY2h1bmtTdHJpbmciKSxzLmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxLdChzLHYsIndoaXRlc3BhY2UiKShfKSk6Xz09PTk2JiZfPT09bD90KF8pOihzLmNvbnN1bWUoXyksYil9ZnVuY3Rpb24gdihfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pP2MoXyk6KHMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSkseChfKSl9ZnVuY3Rpb24geChfKXtyZXR1cm4gXz09PW51bGx8fHZ0KF8pPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksYyhfKSk6Xz09PTk2JiZfPT09bD90KF8pOihzLmNvbnN1bWUoXykseCl9ZnVuY3Rpb24gbShfKXtyZXR1cm4gcy5hdHRlbXB0KHIsTixmKShfKX1mdW5jdGlvbiBmKF8pe3JldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKF8pLHMuZXhpdCgibGluZUVuZGluZyIpLHl9ZnVuY3Rpb24geShfKXtyZXR1cm4gbj4wJiZIdChfKT9LdChzLE0sImxpbmVQcmVmaXgiLG4rMSkoXyk6TShfKX1mdW5jdGlvbiBNKF8pe3JldHVybiBfPT09bnVsbHx8dnQoXyk/cy5jaGVjayhhOXQsbSxOKShfKToocy5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHooXykpfWZ1bmN0aW9uIHooXyl7cmV0dXJuIF89PT1udWxsfHx2dChfKT8ocy5leGl0KCJjb2RlRmxvd1ZhbHVlIiksTShfKSk6KHMuY29uc3VtZShfKSx6KX1mdW5jdGlvbiBOKF8pe3JldHVybiBzLmV4aXQoImNvZGVGZW5jZWQiKSxlKF8pfWZ1bmN0aW9uIEMoXyxPLCQpe2xldCBFPTA7cmV0dXJuIEg7ZnVuY3Rpb24gSChSKXtyZXR1cm4gXy5lbnRlcigibGluZUVuZGluZyIpLF8uY29uc3VtZShSKSxfLmV4aXQoImxpbmVFbmRpbmciKSxrfWZ1bmN0aW9uIGsoUil7cmV0dXJuIF8uZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLEh0KFIpP0t0KF8sUywibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShSKTpTKFIpfWZ1bmN0aW9uIFMoUil7cmV0dXJuIFI9PT1sPyhfLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLEkoUikpOiQoUil9ZnVuY3Rpb24gSShSKXtyZXR1cm4gUj09PWw/KEUrKyxfLmNvbnN1bWUoUiksSSk6RT49bz8oXy5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLEh0KFIpP0t0KF8sUCwid2hpdGVzcGFjZSIpKFIpOlAoUikpOiQoUil9ZnVuY3Rpb24gUChSKXtyZXR1cm4gUj09PW51bGx8fHZ0KFIpPyhfLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLE8oUikpOiQoUil9fX1mdW5jdGlvbiBYUmEocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gbz09PW51bGw/dChvKToocy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShvKSxzLmV4aXQoImxpbmVFbmRpbmciKSxuKX1mdW5jdGlvbiBuKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChvKTplKG8pfX12YXIgYTl0LF9pZSxzOXQ9ZygoKT0+e2lyKCk7VmEoKTthOXQ9e3BhcnRpYWw6ITAsdG9rZW5pemU6WFJhfSxfaWU9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOlpSYX07aShaUmEsInRva2VuaXplQ29kZUZlbmNlZCIpO2koWFJhLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIEpSYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKGQpe3JldHVybiBzLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxLdChzLG4sImxpbmVQcmVmaXgiLDUpKGQpfWZ1bmN0aW9uIG4oZCl7bGV0IHU9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB1JiZ1WzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnVbMl0uc2xpY2VTZXJpYWxpemUodVsxXSwhMCkubGVuZ3RoPj00P28oZCk6dChkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBkPT09bnVsbD9wKGQpOnZ0KGQpP3MuYXR0ZW1wdChRUmEsbyxwKShkKToocy5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLGwoZCkpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT1udWxsfHx2dChkKT8ocy5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhkKSk6KHMuY29uc3VtZShkKSxsKX1mdW5jdGlvbiBwKGQpe3JldHVybiBzLmV4aXQoImNvZGVJbmRlbnRlZCIpLGUoZCl9fWZ1bmN0aW9uIGVPYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChvKTp2dChvKT8ocy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShvKSxzLmV4aXQoImxpbmVFbmRpbmciKSxyKTpLdChzLG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBsJiZsWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJmxbMl0uc2xpY2VTZXJpYWxpemUobFsxXSwhMCkubGVuZ3RoPj00P2Uobyk6dnQobyk/cihvKTp0KG8pfX12YXIgaGssUVJhLGk5dD1nKCgpPT57aXIoKTtWYSgpO2hrPXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOkpSYX0sUVJhPXtwYXJ0aWFsOiEwLHRva2VuaXplOmVPYX07aShKUmEsInRva2VuaXplQ29kZUluZGVudGVkIik7aShlT2EsInRva2VuaXplRnVydGhlclN0YXJ0Iil9KTtmdW5jdGlvbiB0T2Eocyl7bGV0IGU9cy5sZW5ndGgtNCx0PTMsYSxyO2lmKChzW3RdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHNbdF1bMV0udHlwZT09PSJzcGFjZSIpJiYoc1tlXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxzW2VdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGE9dDsrK2E8ZTspaWYoc1thXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe3NbdF1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixzW2VdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIsdCs9MixlLT0yO2JyZWFrfX1mb3IoYT10LTEsZSsrOysrYTw9ZTspcj09PXZvaWQgMD9hIT09ZSYmc1thXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYocj1hKTooYT09PWV8fHNbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJihzW3JdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsYSE9PXIrMiYmKHNbcl1bMV0uZW5kPXNbYS0xXVsxXS5lbmQscy5zcGxpY2UocisyLGEtci0yKSxlLT1hLXItMixhPXIrMikscj12b2lkIDApO3JldHVybiBzfWZ1bmN0aW9uIGFPYShzKXtyZXR1cm4gcyE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIHNPYShzLGUsdCl7bGV0IGE9dGhpcyxyPTAsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoYil7cmV0dXJuIHMuZW50ZXIoImNvZGVUZXh0Iikscy5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLHAoYil9ZnVuY3Rpb24gcChiKXtyZXR1cm4gYj09PTk2PyhzLmNvbnN1bWUoYikscisrLHApOihzLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxkKGIpKX1mdW5jdGlvbiBkKGIpe3JldHVybiBiPT09bnVsbD90KGIpOmI9PT0zMj8ocy5lbnRlcigic3BhY2UiKSxzLmNvbnN1bWUoYikscy5leGl0KCJzcGFjZSIpLGQpOmI9PT05Nj8obz1zLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLGMoYikpOnZ0KGIpPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKGIpLHMuZXhpdCgibGluZUVuZGluZyIpLGQpOihzLmVudGVyKCJjb2RlVGV4dERhdGEiKSx1KGIpKX1mdW5jdGlvbiB1KGIpe3JldHVybiBiPT09bnVsbHx8Yj09PTMyfHxiPT09OTZ8fHZ0KGIpPyhzLmV4aXQoImNvZGVUZXh0RGF0YSIpLGQoYikpOihzLmNvbnN1bWUoYiksdSl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gYj09PTk2PyhzLmNvbnN1bWUoYiksbisrLGMpOm49PT1yPyhzLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxzLmV4aXQoImNvZGVUZXh0IiksZShiKSk6KG8udHlwZT0iY29kZVRleHREYXRhIix1KGIpKX19dmFyIFdmZSxyOXQ9ZygoKT0+e1ZhKCk7V2ZlPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6YU9hLHJlc29sdmU6dE9hLHRva2VuaXplOnNPYX07aSh0T2EsInJlc29sdmVDb2RlVGV4dCIpO2koYU9hLCJwcmV2aW91cyIpO2koc09hLCJ0b2tlbml6ZUNvZGVUZXh0Iil9KTtmdW5jdGlvbiBmayhzLGUpe2xldCB0PTA7aWYoZS5sZW5ndGg8MWU0KXMucHVzaCguLi5lKTtlbHNlIGZvcig7dDxlLmxlbmd0aDspcy5wdXNoKC4uLmUuc2xpY2UodCx0KzFlNCkpLHQrPTFlNH12YXIgbWssR2ZlPWcoKCk9Pnttaz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTcGxpY2VCdWZmZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmxlZnQ9ZT9bLi4uZV06W10sdGhpcy5yaWdodD1bXX1nZXQoZSl7aWYoZTwwfHxlPj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK2UrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIGU8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbZV06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UoZSx0KXtsZXQgYT10Pz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UoZSxhKTplPnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1hK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKGUpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWErdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UoZSx0LGEpe2xldCByPXR8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyhlKSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtcixOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBhJiZmayh0aGlzLmxlZnQsYSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2goZSl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaChlKX1wdXNoTWFueShlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGZrKHRoaXMubGVmdCxlKX11bnNoaWZ0KGUpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaChlKX11bnNoaWZ0TWFueShlKXt0aGlzLnNldEN1cnNvcigwKSxmayh0aGlzLnJpZ2h0LGUucmV2ZXJzZSgpKX1zZXRDdXJzb3IoZSl7aWYoIShlPT09dGhpcy5sZWZ0Lmxlbmd0aHx8ZT50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fGU8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKGU8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHQ9dGhpcy5sZWZ0LnNwbGljZShlLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7ZmsodGhpcy5yaWdodCx0LnJldmVyc2UoKSl9ZWxzZXtsZXQgdD10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLWUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtmayh0aGlzLmxlZnQsdC5yZXZlcnNlKCkpfX19O2koZmssImNodW5rZWRQdXNoIil9KTtmdW5jdGlvbiBNaWUocyl7bGV0IGU9e30sdD0tMSxhLHIsbixvLGwscCxkLHU9bmV3IG1rKHMpO2Zvcig7Kyt0PHUubGVuZ3RoOyl7Zm9yKDt0IGluIGU7KXQ9ZVt0XTtpZihhPXUuZ2V0KHQpLHQmJmFbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZ1LmdldCh0LTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYocD1hWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPHAubGVuZ3RoJiZwW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48cC5sZW5ndGgmJnBbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248cC5sZW5ndGgmJnBbbl1bMV0udHlwZSE9PSJjb250ZW50IjspcFtuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihwW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGFbMF09PT0iZW50ZXIiKWFbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKGUsaU9hKHUsdCkpLHQ9ZVt0XSxkPSEwKTtlbHNlIGlmKGFbMV0uX2NvbnRhaW5lcil7Zm9yKG49dCxyPXZvaWQgMDtuLS07KWlmKG89dS5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKHImJih1LmdldChyKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLHI9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7ciYmKGFbMV0uZW5kPXsuLi51LmdldChyKVsxXS5zdGFydH0sbD11LnNsaWNlKHIsdCksbC51bnNoaWZ0KGEpLHUuc3BsaWNlKHIsdC1yKzEsbCkpfX1yZXR1cm4gc3IocywwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1LnNsaWNlKDApKSwhZH1mdW5jdGlvbiBpT2EocyxlKXtsZXQgdD1zLmdldChlKVsxXSxhPXMuZ2V0KGUpWzJdLHI9ZS0xLG49W10sbz10Ll90b2tlbml6ZXI7b3x8KG89YS5wYXJzZXJbdC5jb250ZW50VHlwZV0odC5zdGFydCksdC5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBsPW8uZXZlbnRzLHA9W10sZD17fSx1LGMsYj0tMSx2PXQseD0wLG09MCxmPVttXTtmb3IoO3Y7KXtmb3IoO3MuZ2V0KCsrcilbMV0hPT12Oyk7bi5wdXNoKHIpLHYuX3Rva2VuaXplcnx8KHU9YS5zbGljZVN0cmVhbSh2KSx2Lm5leHR8fHUucHVzaChudWxsKSxjJiZvLmRlZmluZVNraXAodi5zdGFydCksdi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUodSksdi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksYz12LHY9di5uZXh0fWZvcih2PXQ7KytiPGwubGVuZ3RoOylsW2JdWzBdPT09ImV4aXQiJiZsW2ItMV1bMF09PT0iZW50ZXIiJiZsW2JdWzFdLnR5cGU9PT1sW2ItMV1bMV0udHlwZSYmbFtiXVsxXS5zdGFydC5saW5lIT09bFtiXVsxXS5lbmQubGluZSYmKG09YisxLGYucHVzaChtKSx2Ll90b2tlbml6ZXI9dm9pZCAwLHYucHJldmlvdXM9dm9pZCAwLHY9di5uZXh0KTtmb3Ioby5ldmVudHM9W10sdj8odi5fdG9rZW5pemVyPXZvaWQgMCx2LnByZXZpb3VzPXZvaWQgMCk6Zi5wb3AoKSxiPWYubGVuZ3RoO2ItLTspe2xldCB5PWwuc2xpY2UoZltiXSxmW2IrMV0pLE09bi5wb3AoKTtwLnB1c2goW00sTSt5Lmxlbmd0aC0xXSkscy5zcGxpY2UoTSwyLHkpfWZvcihwLnJldmVyc2UoKSxiPS0xOysrYjxwLmxlbmd0aDspZFt4K3BbYl1bMF1dPXgrcFtiXVsxXSx4Kz1wW2JdWzFdLXBbYl1bMF0tMTtyZXR1cm4gZH12YXIgS2ZlPWcoKCk9PntiZCgpO0dmZSgpO0dmZSgpO2koTWllLCJzdWJ0b2tlbml6ZSIpO2koaU9hLCJzdWJjb250ZW50Iil9KTtmdW5jdGlvbiBvT2Eocyl7cmV0dXJuIE1pZShzKSxzfWZ1bmN0aW9uIG5PYShzLGUpe2xldCB0O3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIHMuZW50ZXIoImNvbnRlbnQiKSx0PXMuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLHIobCl9ZnVuY3Rpb24gcihsKXtyZXR1cm4gbD09PW51bGw/bihsKTp2dChsKT9zLmNoZWNrKHJPYSxvLG4pKGwpOihzLmNvbnN1bWUobCkscil9ZnVuY3Rpb24gbihsKXtyZXR1cm4gcy5leGl0KCJjaHVua0NvbnRlbnQiKSxzLmV4aXQoImNvbnRlbnQiKSxlKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIHMuY29uc3VtZShsKSxzLmV4aXQoImNodW5rQ29udGVudCIpLHQubmV4dD1zLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6dH0pLHQ9dC5uZXh0LHJ9fWZ1bmN0aW9uIGxPYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG8pe3JldHVybiBzLmV4aXQoImNodW5rQ29udGVudCIpLHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUobykscy5leGl0KCJsaW5lRW5kaW5nIiksS3QocyxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8dnQobykpcmV0dXJuIHQobyk7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJmwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShvKTpzLmludGVycnVwdChhLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csdCxlKShvKX19dmFyIFlmZSxyT2Esbzl0PWcoKCk9PntpcigpO1ZhKCk7S2ZlKCk7WWZlPXtyZXNvbHZlOm9PYSx0b2tlbml6ZTpuT2F9LHJPYT17cGFydGlhbDohMCx0b2tlbml6ZTpsT2F9O2kob09hLCJyZXNvbHZlQ29udGVudCIpO2kobk9hLCJ0b2tlbml6ZUNvbnRlbnQiKTtpKGxPYSwidG9rZW5pemVDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIHppZShzLGUsdCxhLHIsbixvLGwscCl7bGV0IGQ9cHx8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9MDtyZXR1cm4gYztmdW5jdGlvbiBjKHkpe3JldHVybiB5PT09NjA/KHMuZW50ZXIoYSkscy5lbnRlcihyKSxzLmVudGVyKG4pLHMuY29uc3VtZSh5KSxzLmV4aXQobiksYik6eT09PW51bGx8fHk9PT0zMnx8eT09PTQxfHxTMyh5KT90KHkpOihzLmVudGVyKGEpLHMuZW50ZXIobykscy5lbnRlcihsKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksbSh5KSl9ZnVuY3Rpb24gYih5KXtyZXR1cm4geT09PTYyPyhzLmVudGVyKG4pLHMuY29uc3VtZSh5KSxzLmV4aXQobikscy5leGl0KHIpLHMuZXhpdChhKSxlKToocy5lbnRlcihsKSxzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksdih5KSl9ZnVuY3Rpb24gdih5KXtyZXR1cm4geT09PTYyPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KGwpLGIoeSkpOnk9PT1udWxsfHx5PT09NjB8fHZ0KHkpP3QoeSk6KHMuY29uc3VtZSh5KSx5PT09OTI/eDp2KX1mdW5jdGlvbiB4KHkpe3JldHVybiB5PT09NjB8fHk9PT02Mnx8eT09PTkyPyhzLmNvbnN1bWUoeSksdik6dih5KX1mdW5jdGlvbiBtKHkpe3JldHVybiF1JiYoeT09PW51bGx8fHk9PT00MXx8QWEoeSkpPyhzLmV4aXQoImNodW5rU3RyaW5nIikscy5leGl0KGwpLHMuZXhpdChvKSxzLmV4aXQoYSksZSh5KSk6dTxkJiZ5PT09NDA/KHMuY29uc3VtZSh5KSx1KyssbSk6eT09PTQxPyhzLmNvbnN1bWUoeSksdS0tLG0pOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MHx8UzMoeSk/dCh5KToocy5jb25zdW1lKHkpLHk9PT05Mj9mOm0pfWZ1bmN0aW9uIGYoeSl7cmV0dXJuIHk9PT00MHx8eT09PTQxfHx5PT09OTI/KHMuY29uc3VtZSh5KSxtKTptKHkpfX12YXIgWmZlPWcoKCk9PntWYSgpO2koemllLCJmYWN0b3J5RGVzdGluYXRpb24iKX0pO2Z1bmN0aW9uIENpZShzLGUsdCxhLHIsbil7bGV0IG89dGhpcyxsPTAscDtyZXR1cm4gZDtmdW5jdGlvbiBkKHYpe3JldHVybiBzLmVudGVyKGEpLHMuZW50ZXIocikscy5jb25zdW1lKHYpLHMuZXhpdChyKSxzLmVudGVyKG4pLHV9ZnVuY3Rpb24gdSh2KXtyZXR1cm4gbD45OTl8fHY9PT1udWxsfHx2PT09OTF8fHY9PT05MyYmIXB8fHY9PT05NCYmIWwmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIG8ucGFyc2VyLmNvbnN0cnVjdHM/dCh2KTp2PT09OTM/KHMuZXhpdChuKSxzLmVudGVyKHIpLHMuY29uc3VtZSh2KSxzLmV4aXQocikscy5leGl0KGEpLGUpOnZ0KHYpPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKHYpLHMuZXhpdCgibGluZUVuZGluZyIpLHUpOihzLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksYyh2KSl9ZnVuY3Rpb24gYyh2KXtyZXR1cm4gdj09PW51bGx8fHY9PT05MXx8dj09PTkzfHx2dCh2KXx8bCsrPjk5OT8ocy5leGl0KCJjaHVua1N0cmluZyIpLHUodikpOihzLmNvbnN1bWUodikscHx8KHA9IUh0KHYpKSx2PT09OTI/YjpjKX1mdW5jdGlvbiBiKHYpe3JldHVybiB2PT09OTF8fHY9PT05Mnx8dj09PTkzPyhzLmNvbnN1bWUodiksbCsrLGMpOmModil9fXZhciBYZmU9ZygoKT0+e1ZhKCk7aShDaWUsImZhY3RvcnlMYWJlbCIpfSk7ZnVuY3Rpb24gVGllKHMsZSx0LGEscixuKXtsZXQgbztyZXR1cm4gbDtmdW5jdGlvbiBsKGIpe3JldHVybiBiPT09MzR8fGI9PT0zOXx8Yj09PTQwPyhzLmVudGVyKGEpLHMuZW50ZXIocikscy5jb25zdW1lKGIpLHMuZXhpdChyKSxvPWI9PT00MD80MTpiLHApOnQoYil9ZnVuY3Rpb24gcChiKXtyZXR1cm4gYj09PW8/KHMuZW50ZXIocikscy5jb25zdW1lKGIpLHMuZXhpdChyKSxzLmV4aXQoYSksZSk6KHMuZW50ZXIobiksZChiKSl9ZnVuY3Rpb24gZChiKXtyZXR1cm4gYj09PW8/KHMuZXhpdChuKSxwKG8pKTpiPT09bnVsbD90KGIpOnZ0KGIpPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKGIpLHMuZXhpdCgibGluZUVuZGluZyIpLEt0KHMsZCwibGluZVByZWZpeCIpKToocy5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHUoYikpfWZ1bmN0aW9uIHUoYil7cmV0dXJuIGI9PT1vfHxiPT09bnVsbHx8dnQoYik/KHMuZXhpdCgiY2h1bmtTdHJpbmciKSxkKGIpKToocy5jb25zdW1lKGIpLGI9PT05Mj9jOnUpfWZ1bmN0aW9uIGMoYil7cmV0dXJuIGI9PT1vfHxiPT09OTI/KHMuY29uc3VtZShiKSx1KTp1KGIpfX12YXIgUWZlPWcoKCk9PntpcigpO1ZhKCk7aShUaWUsImZhY3RvcnlUaXRsZSIpfSk7ZnVuY3Rpb24gRDMocyxlKXtsZXQgdDtyZXR1cm4gYTtmdW5jdGlvbiBhKHIpe3JldHVybiB2dChyKT8ocy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShyKSxzLmV4aXQoImxpbmVFbmRpbmciKSx0PSEwLGEpOkh0KHIpP0t0KHMsYSx0PyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKHIpOmUocil9fXZhciBKZmU9ZygoKT0+e2lyKCk7VmEoKTtpKEQzLCJmYWN0b3J5V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gZE9hKHMsZSx0KXtsZXQgYT10aGlzLHI7cmV0dXJuIG47ZnVuY3Rpb24gbih2KXtyZXR1cm4gcy5lbnRlcigiZGVmaW5pdGlvbiIpLG8odil9ZnVuY3Rpb24gbyh2KXtyZXR1cm4gQ2llLmNhbGwoYSxzLGwsdCwiZGVmaW5pdGlvbkxhYmVsIiwiZGVmaW5pdGlvbkxhYmVsTWFya2VyIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIikodil9ZnVuY3Rpb24gbCh2KXtyZXR1cm4gcj1IaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLHY9PT01OD8ocy5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLHMuY29uc3VtZSh2KSxzLmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxwKTp0KHYpfWZ1bmN0aW9uIHAodil7cmV0dXJuIEFhKHYpP0QzKHMsZCkodik6ZCh2KX1mdW5jdGlvbiBkKHYpe3JldHVybiB6aWUocyx1LHQsImRlZmluaXRpb25EZXN0aW5hdGlvbiIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWwiLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3IiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nIikodil9ZnVuY3Rpb24gdSh2KXtyZXR1cm4gcy5hdHRlbXB0KGNPYSxjLGMpKHYpfWZ1bmN0aW9uIGModil7cmV0dXJuIEh0KHYpP0t0KHMsYiwid2hpdGVzcGFjZSIpKHYpOmIodil9ZnVuY3Rpb24gYih2KXtyZXR1cm4gdj09PW51bGx8fHZ0KHYpPyhzLmV4aXQoImRlZmluaXRpb24iKSxhLnBhcnNlci5kZWZpbmVkLnB1c2gociksZSh2KSk6dCh2KX19ZnVuY3Rpb24gdU9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKGwpe3JldHVybiBBYShsKT9EMyhzLHIpKGwpOnQobCl9ZnVuY3Rpb24gcihsKXtyZXR1cm4gVGllKHMsbix0LCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBIdChsKT9LdChzLG8sIndoaXRlc3BhY2UiKShsKTpvKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT1udWxsfHx2dChsKT9lKGwpOnQobCl9fXZhciBlbWUsY09hLG45dD1nKCgpPT57WmZlKCk7WGZlKCk7aXIoKTtRZmUoKTtKZmUoKTtWYSgpO1lwKCk7ZW1lPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpkT2F9LGNPYT17cGFydGlhbDohMCx0b2tlbml6ZTp1T2F9O2koZE9hLCJ0b2tlbml6ZURlZmluaXRpb24iKTtpKHVPYSwidG9rZW5pemVUaXRsZUJlZm9yZSIpfSk7ZnVuY3Rpb24gcE9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBzLmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSxzLmNvbnN1bWUobikscn1mdW5jdGlvbiByKG4pe3JldHVybiB2dChuKT8ocy5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSxlKG4pKTp0KG4pfX12YXIgdG1lLGw5dD1nKCgpPT57VmEoKTt0bWU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6cE9hfTtpKHBPYSwidG9rZW5pemVIYXJkQnJlYWtFc2NhcGUiKX0pO2Z1bmN0aW9uIGhPYShzLGUpe2xldCB0PXMubGVuZ3RoLTIsYT0zLHIsbjtyZXR1cm4gc1thXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoYSs9MiksdC0yPmEmJnNbdF1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHQtPTIpLHNbdF1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoYT09PXQtMXx8dC00PmEmJnNbdC0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHQtPWErMT09PXQ/Mjo0KSx0PmEmJihyPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6c1thXVsxXS5zdGFydCxlbmQ6c1t0XVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6c1thXVsxXS5zdGFydCxlbmQ6c1t0XVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxzcihzLGEsdC1hKzEsW1siZW50ZXIiLHIsZV0sWyJlbnRlciIsbixlXSxbImV4aXQiLG4sZV0sWyJleGl0IixyLGVdXSkpLHN9ZnVuY3Rpb24gZk9hKHMsZSx0KXtsZXQgYT0wO3JldHVybiByO2Z1bmN0aW9uIHIodSl7cmV0dXJuIHMuZW50ZXIoImF0eEhlYWRpbmciKSxuKHUpfWZ1bmN0aW9uIG4odSl7cmV0dXJuIHMuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8odSl9ZnVuY3Rpb24gbyh1KXtyZXR1cm4gdT09PTM1JiZhKys8Nj8ocy5jb25zdW1lKHUpLG8pOnU9PT1udWxsfHxBYSh1KT8ocy5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKHUpKTp0KHUpfWZ1bmN0aW9uIGwodSl7cmV0dXJuIHU9PT0zNT8ocy5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIikscCh1KSk6dT09PW51bGx8fHZ0KHUpPyhzLmV4aXQoImF0eEhlYWRpbmciKSxlKHUpKTpIdCh1KT9LdChzLGwsIndoaXRlc3BhY2UiKSh1KToocy5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxkKHUpKX1mdW5jdGlvbiBwKHUpe3JldHVybiB1PT09MzU/KHMuY29uc3VtZSh1KSxwKToocy5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKHUpKX1mdW5jdGlvbiBkKHUpe3JldHVybiB1PT09bnVsbHx8dT09PTM1fHxBYSh1KT8ocy5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLGwodSkpOihzLmNvbnN1bWUodSksZCl9fXZhciBhbWUsYzl0PWcoKCk9PntpcigpO1ZhKCk7YmQoKTthbWU9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6aE9hLHRva2VuaXplOmZPYX07aShoT2EsInJlc29sdmVIZWFkaW5nQXR4Iik7aShmT2EsInRva2VuaXplSGVhZGluZ0F0eCIpfSk7dmFyIGQ5dCxzbWUsdTl0PWcoKCk9PntkOXQ9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxzbWU9WyJwcmUiLCJzY3JpcHQiLCJzdHlsZSIsInRleHRhcmVhIl19KTtmdW5jdGlvbiBiT2Eocyl7bGV0IGU9cy5sZW5ndGg7Zm9yKDtlLS0mJiEoc1tlXVswXT09PSJlbnRlciImJnNbZV1bMV0udHlwZT09PSJodG1sRmxvdyIpOyk7cmV0dXJuIGU+MSYmc1tlLTJdWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJihzW2VdWzFdLnN0YXJ0PXNbZS0yXVsxXS5zdGFydCxzW2UrMV1bMV0uc3RhcnQ9c1tlLTJdWzFdLnN0YXJ0LHMuc3BsaWNlKGUtMiwyKSksc31mdW5jdGlvbiB2T2EocyxlLHQpe2xldCBhPXRoaXMscixuLG8sbCxwO3JldHVybiBkO2Z1bmN0aW9uIGQoRil7cmV0dXJuIHUoRil9ZnVuY3Rpb24gdShGKXtyZXR1cm4gcy5lbnRlcigiaHRtbEZsb3ciKSxzLmVudGVyKCJodG1sRmxvd0RhdGEiKSxzLmNvbnN1bWUoRiksY31mdW5jdGlvbiBjKEYpe3JldHVybiBGPT09MzM/KHMuY29uc3VtZShGKSxiKTpGPT09NDc/KHMuY29uc3VtZShGKSxuPSEwLG0pOkY9PT02Mz8ocy5jb25zdW1lKEYpLHI9MyxhLmludGVycnVwdD9lOkIpOlVyKEYpPyhzLmNvbnN1bWUoRiksbz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpLGYpOnQoRil9ZnVuY3Rpb24gYihGKXtyZXR1cm4gRj09PTQ1PyhzLmNvbnN1bWUoRikscj0yLHYpOkY9PT05MT8ocy5jb25zdW1lKEYpLHI9NSxsPTAseCk6VXIoRik/KHMuY29uc3VtZShGKSxyPTQsYS5pbnRlcnJ1cHQ/ZTpCKTp0KEYpfWZ1bmN0aW9uIHYoRil7cmV0dXJuIEY9PT00NT8ocy5jb25zdW1lKEYpLGEuaW50ZXJydXB0P2U6Qik6dChGKX1mdW5jdGlvbiB4KEYpe2xldCBqPSJDREFUQVsiO3JldHVybiBGPT09ai5jaGFyQ29kZUF0KGwrKyk/KHMuY29uc3VtZShGKSxsPT09ai5sZW5ndGg/YS5pbnRlcnJ1cHQ/ZTpTOngpOnQoRil9ZnVuY3Rpb24gbShGKXtyZXR1cm4gVXIoRik/KHMuY29uc3VtZShGKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoRiksZik6dChGKX1mdW5jdGlvbiBmKEYpe2lmKEY9PT1udWxsfHxGPT09NDd8fEY9PT02Mnx8QWEoRikpe2xldCBqPUY9PT00Nyx1ZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIWomJiFuJiZzbWUuaW5jbHVkZXModWUpPyhyPTEsYS5pbnRlcnJ1cHQ/ZShGKTpTKEYpKTpkOXQuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKT8ocj02LGo/KHMuY29uc3VtZShGKSx5KTphLmludGVycnVwdD9lKEYpOlMoRikpOihyPTcsYS5pbnRlcnJ1cHQmJiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChGKTpuP00oRik6eihGKSl9cmV0dXJuIEY9PT00NXx8QmkoRik/KHMuY29uc3VtZShGKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpLGYpOnQoRil9ZnVuY3Rpb24geShGKXtyZXR1cm4gRj09PTYyPyhzLmNvbnN1bWUoRiksYS5pbnRlcnJ1cHQ/ZTpTKTp0KEYpfWZ1bmN0aW9uIE0oRil7cmV0dXJuIEh0KEYpPyhzLmNvbnN1bWUoRiksTSk6SChGKX1mdW5jdGlvbiB6KEYpe3JldHVybiBGPT09NDc/KHMuY29uc3VtZShGKSxIKTpGPT09NTh8fEY9PT05NXx8VXIoRik/KHMuY29uc3VtZShGKSxOKTpIdChGKT8ocy5jb25zdW1lKEYpLHopOkgoRil9ZnVuY3Rpb24gTihGKXtyZXR1cm4gRj09PTQ1fHxGPT09NDZ8fEY9PT01OHx8Rj09PTk1fHxCaShGKT8ocy5jb25zdW1lKEYpLE4pOkMoRil9ZnVuY3Rpb24gQyhGKXtyZXR1cm4gRj09PTYxPyhzLmNvbnN1bWUoRiksXyk6SHQoRik/KHMuY29uc3VtZShGKSxDKTp6KEYpfWZ1bmN0aW9uIF8oRil7cmV0dXJuIEY9PT1udWxsfHxGPT09NjB8fEY9PT02MXx8Rj09PTYyfHxGPT09OTY/dChGKTpGPT09MzR8fEY9PT0zOT8ocy5jb25zdW1lKEYpLHA9RixPKTpIdChGKT8ocy5jb25zdW1lKEYpLF8pOiQoRil9ZnVuY3Rpb24gTyhGKXtyZXR1cm4gRj09PXA/KHMuY29uc3VtZShGKSxwPW51bGwsRSk6Rj09PW51bGx8fHZ0KEYpP3QoRik6KHMuY29uc3VtZShGKSxPKX1mdW5jdGlvbiAkKEYpe3JldHVybiBGPT09bnVsbHx8Rj09PTM0fHxGPT09Mzl8fEY9PT00N3x8Rj09PTYwfHxGPT09NjF8fEY9PT02Mnx8Rj09PTk2fHxBYShGKT9DKEYpOihzLmNvbnN1bWUoRiksJCl9ZnVuY3Rpb24gRShGKXtyZXR1cm4gRj09PTQ3fHxGPT09NjJ8fEh0KEYpP3ooRik6dChGKX1mdW5jdGlvbiBIKEYpe3JldHVybiBGPT09NjI/KHMuY29uc3VtZShGKSxrKTp0KEYpfWZ1bmN0aW9uIGsoRil7cmV0dXJuIEY9PT1udWxsfHx2dChGKT9TKEYpOkh0KEYpPyhzLmNvbnN1bWUoRiksayk6dChGKX1mdW5jdGlvbiBTKEYpe3JldHVybiBGPT09NDUmJnI9PT0yPyhzLmNvbnN1bWUoRiksSyk6Rj09PTYwJiZyPT09MT8ocy5jb25zdW1lKEYpLFYpOkY9PT02MiYmcj09PTQ/KHMuY29uc3VtZShGKSxVKTpGPT09NjMmJnI9PT0zPyhzLmNvbnN1bWUoRiksQik6Rj09PTkzJiZyPT09NT8ocy5jb25zdW1lKEYpLG1lKTp2dChGKSYmKHI9PT02fHxyPT09Nyk/KHMuZXhpdCgiaHRtbEZsb3dEYXRhIikscy5jaGVjayhtT2EsaGUsSSkoRikpOkY9PT1udWxsfHx2dChGKT8ocy5leGl0KCJodG1sRmxvd0RhdGEiKSxJKEYpKToocy5jb25zdW1lKEYpLFMpfWZ1bmN0aW9uIEkoRil7cmV0dXJuIHMuY2hlY2soZ09hLFAsaGUpKEYpfWZ1bmN0aW9uIFAoRil7cmV0dXJuIHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUoRikscy5leGl0KCJsaW5lRW5kaW5nIiksUn1mdW5jdGlvbiBSKEYpe3JldHVybiBGPT09bnVsbHx8dnQoRik/SShGKToocy5lbnRlcigiaHRtbEZsb3dEYXRhIiksUyhGKSl9ZnVuY3Rpb24gSyhGKXtyZXR1cm4gRj09PTQ1PyhzLmNvbnN1bWUoRiksQik6UyhGKX1mdW5jdGlvbiBWKEYpe3JldHVybiBGPT09NDc/KHMuY29uc3VtZShGKSxvPSIiLFcpOlMoRil9ZnVuY3Rpb24gVyhGKXtpZihGPT09NjIpe2xldCBqPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4gc21lLmluY2x1ZGVzKGopPyhzLmNvbnN1bWUoRiksVSk6UyhGKX1yZXR1cm4gVXIoRikmJm8ubGVuZ3RoPDg/KHMuY29uc3VtZShGKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpLFcpOlMoRil9ZnVuY3Rpb24gbWUoRil7cmV0dXJuIEY9PT05Mz8ocy5jb25zdW1lKEYpLEIpOlMoRil9ZnVuY3Rpb24gQihGKXtyZXR1cm4gRj09PTYyPyhzLmNvbnN1bWUoRiksVSk6Rj09PTQ1JiZyPT09Mj8ocy5jb25zdW1lKEYpLEIpOlMoRil9ZnVuY3Rpb24gVShGKXtyZXR1cm4gRj09PW51bGx8fHZ0KEYpPyhzLmV4aXQoImh0bWxGbG93RGF0YSIpLGhlKEYpKToocy5jb25zdW1lKEYpLFUpfWZ1bmN0aW9uIGhlKEYpe3JldHVybiBzLmV4aXQoImh0bWxGbG93IiksZShGKX19ZnVuY3Rpb24geE9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIHZ0KG8pPyhzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKG8pLHMuZXhpdCgibGluZUVuZGluZyIpLG4pOnQobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3Qobyk6ZShvKX19ZnVuY3Rpb24geU9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKHIpe3JldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKHIpLHMuZXhpdCgibGluZUVuZGluZyIpLHMuYXR0ZW1wdCh3ZCxlLHQpfX12YXIgaW1lLG1PYSxnT2EscDl0PWcoKCk9PntWYSgpO3U5dCgpO3lpZSgpO2ltZT17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzpiT2EsdG9rZW5pemU6dk9hfSxtT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6eU9hfSxnT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6eE9hfTtpKGJPYSwicmVzb2x2ZVRvSHRtbEZsb3ciKTtpKHZPYSwidG9rZW5pemVIdG1sRmxvdyIpO2koeE9hLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb25TdGFydCIpO2koeU9hLCJ0b2tlbml6ZUJsYW5rTGluZUJlZm9yZSIpfSk7ZnVuY3Rpb24gd09hKHMsZSx0KXtsZXQgYT10aGlzLHIsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoQil7cmV0dXJuIHMuZW50ZXIoImh0bWxUZXh0Iikscy5lbnRlcigiaHRtbFRleHREYXRhIikscy5jb25zdW1lKEIpLHB9ZnVuY3Rpb24gcChCKXtyZXR1cm4gQj09PTMzPyhzLmNvbnN1bWUoQiksZCk6Qj09PTQ3PyhzLmNvbnN1bWUoQiksQyk6Qj09PTYzPyhzLmNvbnN1bWUoQikseik6VXIoQik/KHMuY29uc3VtZShCKSwkKTp0KEIpfWZ1bmN0aW9uIGQoQil7cmV0dXJuIEI9PT00NT8ocy5jb25zdW1lKEIpLHUpOkI9PT05MT8ocy5jb25zdW1lKEIpLG49MCx4KTpVcihCKT8ocy5jb25zdW1lKEIpLE0pOnQoQil9ZnVuY3Rpb24gdShCKXtyZXR1cm4gQj09PTQ1PyhzLmNvbnN1bWUoQiksdik6dChCKX1mdW5jdGlvbiBjKEIpe3JldHVybiBCPT09bnVsbD90KEIpOkI9PT00NT8ocy5jb25zdW1lKEIpLGIpOnZ0KEIpPyhvPWMsVihCKSk6KHMuY29uc3VtZShCKSxjKX1mdW5jdGlvbiBiKEIpe3JldHVybiBCPT09NDU/KHMuY29uc3VtZShCKSx2KTpjKEIpfWZ1bmN0aW9uIHYoQil7cmV0dXJuIEI9PT02Mj9LKEIpOkI9PT00NT9iKEIpOmMoQil9ZnVuY3Rpb24geChCKXtsZXQgVT0iQ0RBVEFbIjtyZXR1cm4gQj09PVUuY2hhckNvZGVBdChuKyspPyhzLmNvbnN1bWUoQiksbj09PVUubGVuZ3RoP206eCk6dChCKX1mdW5jdGlvbiBtKEIpe3JldHVybiBCPT09bnVsbD90KEIpOkI9PT05Mz8ocy5jb25zdW1lKEIpLGYpOnZ0KEIpPyhvPW0sVihCKSk6KHMuY29uc3VtZShCKSxtKX1mdW5jdGlvbiBmKEIpe3JldHVybiBCPT09OTM/KHMuY29uc3VtZShCKSx5KTptKEIpfWZ1bmN0aW9uIHkoQil7cmV0dXJuIEI9PT02Mj9LKEIpOkI9PT05Mz8ocy5jb25zdW1lKEIpLHkpOm0oQil9ZnVuY3Rpb24gTShCKXtyZXR1cm4gQj09PW51bGx8fEI9PT02Mj9LKEIpOnZ0KEIpPyhvPU0sVihCKSk6KHMuY29uc3VtZShCKSxNKX1mdW5jdGlvbiB6KEIpe3JldHVybiBCPT09bnVsbD90KEIpOkI9PT02Mz8ocy5jb25zdW1lKEIpLE4pOnZ0KEIpPyhvPXosVihCKSk6KHMuY29uc3VtZShCKSx6KX1mdW5jdGlvbiBOKEIpe3JldHVybiBCPT09NjI/SyhCKTp6KEIpfWZ1bmN0aW9uIEMoQil7cmV0dXJuIFVyKEIpPyhzLmNvbnN1bWUoQiksXyk6dChCKX1mdW5jdGlvbiBfKEIpe3JldHVybiBCPT09NDV8fEJpKEIpPyhzLmNvbnN1bWUoQiksXyk6TyhCKX1mdW5jdGlvbiBPKEIpe3JldHVybiB2dChCKT8obz1PLFYoQikpOkh0KEIpPyhzLmNvbnN1bWUoQiksTyk6SyhCKX1mdW5jdGlvbiAkKEIpe3JldHVybiBCPT09NDV8fEJpKEIpPyhzLmNvbnN1bWUoQiksJCk6Qj09PTQ3fHxCPT09NjJ8fEFhKEIpP0UoQik6dChCKX1mdW5jdGlvbiBFKEIpe3JldHVybiBCPT09NDc/KHMuY29uc3VtZShCKSxLKTpCPT09NTh8fEI9PT05NXx8VXIoQik/KHMuY29uc3VtZShCKSxIKTp2dChCKT8obz1FLFYoQikpOkh0KEIpPyhzLmNvbnN1bWUoQiksRSk6SyhCKX1mdW5jdGlvbiBIKEIpe3JldHVybiBCPT09NDV8fEI9PT00Nnx8Qj09PTU4fHxCPT09OTV8fEJpKEIpPyhzLmNvbnN1bWUoQiksSCk6ayhCKX1mdW5jdGlvbiBrKEIpe3JldHVybiBCPT09NjE/KHMuY29uc3VtZShCKSxTKTp2dChCKT8obz1rLFYoQikpOkh0KEIpPyhzLmNvbnN1bWUoQiksayk6RShCKX1mdW5jdGlvbiBTKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTYwfHxCPT09NjF8fEI9PT02Mnx8Qj09PTk2P3QoQik6Qj09PTM0fHxCPT09Mzk/KHMuY29uc3VtZShCKSxyPUIsSSk6dnQoQik/KG89UyxWKEIpKTpIdChCKT8ocy5jb25zdW1lKEIpLFMpOihzLmNvbnN1bWUoQiksUCl9ZnVuY3Rpb24gSShCKXtyZXR1cm4gQj09PXI/KHMuY29uc3VtZShCKSxyPXZvaWQgMCxSKTpCPT09bnVsbD90KEIpOnZ0KEIpPyhvPUksVihCKSk6KHMuY29uc3VtZShCKSxJKX1mdW5jdGlvbiBQKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTM0fHxCPT09Mzl8fEI9PT02MHx8Qj09PTYxfHxCPT09OTY/dChCKTpCPT09NDd8fEI9PT02Mnx8QWEoQik/RShCKToocy5jb25zdW1lKEIpLFApfWZ1bmN0aW9uIFIoQil7cmV0dXJuIEI9PT00N3x8Qj09PTYyfHxBYShCKT9FKEIpOnQoQil9ZnVuY3Rpb24gSyhCKXtyZXR1cm4gQj09PTYyPyhzLmNvbnN1bWUoQikscy5leGl0KCJodG1sVGV4dERhdGEiKSxzLmV4aXQoImh0bWxUZXh0IiksZSk6dChCKX1mdW5jdGlvbiBWKEIpe3JldHVybiBzLmV4aXQoImh0bWxUZXh0RGF0YSIpLHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUoQikscy5leGl0KCJsaW5lRW5kaW5nIiksV31mdW5jdGlvbiBXKEIpe3JldHVybiBIdChCKT9LdChzLG1lLCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEIpOm1lKEIpfWZ1bmN0aW9uIG1lKEIpe3JldHVybiBzLmVudGVyKCJodG1sVGV4dERhdGEiKSxvKEIpfX12YXIgcm1lLGg5dD1nKCgpPT57aXIoKTtWYSgpO3JtZT17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOndPYX07aSh3T2EsInRva2VuaXplSHRtbFRleHQiKX0pO2Z1bmN0aW9uIE1PYShzKXtsZXQgZT0tMSx0PVtdO2Zvcig7KytlPHMubGVuZ3RoOyl7bGV0IGE9c1tlXVsxXTtpZih0LnB1c2goc1tlXSksYS50eXBlPT09ImxhYmVsSW1hZ2UifHxhLnR5cGU9PT0ibGFiZWxMaW5rInx8YS50eXBlPT09ImxhYmVsRW5kIil7bGV0IHI9YS50eXBlPT09ImxhYmVsSW1hZ2UiPzQ6MjthLnR5cGU9ImRhdGEiLGUrPXJ9fXJldHVybiBzLmxlbmd0aCE9PXQubGVuZ3RoJiZzcihzLDAscy5sZW5ndGgsdCksc31mdW5jdGlvbiB6T2EocyxlKXtsZXQgdD1zLmxlbmd0aCxhPTAscixuLG8sbDtmb3IoO3QtLTspaWYocj1zW3RdWzFdLG4pe2lmKHIudHlwZT09PSJsaW5rInx8ci50eXBlPT09ImxhYmVsTGluayImJnIuX2luYWN0aXZlKWJyZWFrO3NbdF1bMF09PT0iZW50ZXIiJiZyLnR5cGU9PT0ibGFiZWxMaW5rIiYmKHIuX2luYWN0aXZlPSEwKX1lbHNlIGlmKG8pe2lmKHNbdF1bMF09PT0iZW50ZXIiJiYoci50eXBlPT09ImxhYmVsSW1hZ2UifHxyLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFyLl9iYWxhbmNlZCYmKG49dCxyLnR5cGUhPT0ibGFiZWxMaW5rIikpe2E9MjticmVha319ZWxzZSByLnR5cGU9PT0ibGFiZWxFbmQiJiYobz10KTtsZXQgcD17dHlwZTpzW25dWzFdLnR5cGU9PT0ibGFiZWxMaW5rIj8ibGluayI6ImltYWdlIixzdGFydDp7Li4uc1tuXVsxXS5zdGFydH0sZW5kOnsuLi5zW3MubGVuZ3RoLTFdWzFdLmVuZH19LGQ9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4uc1tuXVsxXS5zdGFydH0sZW5kOnsuLi5zW29dWzFdLmVuZH19LHU9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLnNbbithKzJdWzFdLmVuZH0sZW5kOnsuLi5zW28tMl1bMV0uc3RhcnR9fTtyZXR1cm4gbD1bWyJlbnRlciIscCxlXSxbImVudGVyIixkLGVdXSxsPU1yKGwscy5zbGljZShuKzEsbithKzMpKSxsPU1yKGwsW1siZW50ZXIiLHUsZV1dKSxsPU1yKGwsWHAoZS5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwscy5zbGljZShuK2ErNCxvLTMpLGUpKSxsPU1yKGwsW1siZXhpdCIsdSxlXSxzW28tMl0sc1tvLTFdLFsiZXhpdCIsZCxlXV0pLGw9TXIobCxzLnNsaWNlKG8rMSkpLGw9TXIobCxbWyJleGl0IixwLGVdXSksc3IocyxuLHMubGVuZ3RoLGwpLHN9ZnVuY3Rpb24gQ09hKHMsZSx0KXtsZXQgYT10aGlzLHI9YS5ldmVudHMubGVuZ3RoLG4sbztmb3IoO3ItLTspaWYoKGEuZXZlbnRzW3JdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGEuZXZlbnRzW3JdWzFdLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFhLmV2ZW50c1tyXVsxXS5fYmFsYW5jZWQpe249YS5ldmVudHNbcl1bMV07YnJlYWt9cmV0dXJuIGw7ZnVuY3Rpb24gbChiKXtyZXR1cm4gbj9uLl9pbmFjdGl2ZT9jKGIpOihvPWEucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmEubm93KCl9KSkpLHMuZW50ZXIoImxhYmVsRW5kIikscy5lbnRlcigibGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUoYikscy5leGl0KCJsYWJlbE1hcmtlciIpLHMuZXhpdCgibGFiZWxFbmQiKSxwKTp0KGIpfWZ1bmN0aW9uIHAoYil7cmV0dXJuIGI9PT00MD9zLmF0dGVtcHQoa09hLHUsbz91OmMpKGIpOmI9PT05MT9zLmF0dGVtcHQoU09hLHUsbz9kOmMpKGIpOm8/dShiKTpjKGIpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHMuYXR0ZW1wdChfT2EsdSxjKShiKX1mdW5jdGlvbiB1KGIpe3JldHVybiBlKGIpfWZ1bmN0aW9uIGMoYil7cmV0dXJuIG4uX2JhbGFuY2VkPSEwLHQoYil9fWZ1bmN0aW9uIFRPYShzLGUsdCl7cmV0dXJuIGE7ZnVuY3Rpb24gYShjKXtyZXR1cm4gcy5lbnRlcigicmVzb3VyY2UiKSxzLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHMuY29uc3VtZShjKSxzLmV4aXQoInJlc291cmNlTWFya2VyIikscn1mdW5jdGlvbiByKGMpe3JldHVybiBBYShjKT9EMyhzLG4pKGMpOm4oYyl9ZnVuY3Rpb24gbihjKXtyZXR1cm4gYz09PTQxP3UoYyk6emllKHMsbyxsLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikoYyl9ZnVuY3Rpb24gbyhjKXtyZXR1cm4gQWEoYyk/RDMocyxwKShjKTp1KGMpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIHQoYyl9ZnVuY3Rpb24gcChjKXtyZXR1cm4gYz09PTM0fHxjPT09Mzl8fGM9PT00MD9UaWUocyxkLHQsInJlc291cmNlVGl0bGUiLCJyZXNvdXJjZVRpdGxlTWFya2VyIiwicmVzb3VyY2VUaXRsZVN0cmluZyIpKGMpOnUoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gQWEoYyk/RDMocyx1KShjKTp1KGMpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGM9PT00MT8ocy5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSxzLmNvbnN1bWUoYykscy5leGl0KCJyZXNvdXJjZU1hcmtlciIpLHMuZXhpdCgicmVzb3VyY2UiKSxlKTp0KGMpfX1mdW5jdGlvbiAkT2EocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihsKXtyZXR1cm4gQ2llLmNhbGwoYSxzLG4sbywicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikobCl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gYS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhIaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpKT9lKGwpOnQobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gdChsKX19ZnVuY3Rpb24gRE9hKHMsZSx0KXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBzLmVudGVyKCJyZWZlcmVuY2UiKSxzLmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSxzLmNvbnN1bWUobikscy5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxyfWZ1bmN0aW9uIHIobil7cmV0dXJuIG49PT05Mz8ocy5lbnRlcigicmVmZXJlbmNlTWFya2VyIikscy5jb25zdW1lKG4pLHMuZXhpdCgicmVmZXJlbmNlTWFya2VyIikscy5leGl0KCJyZWZlcmVuY2UiKSxlKTp0KG4pfX12YXIgTDMsa09hLFNPYSxfT2EsJGllPWcoKCk9PntaZmUoKTtYZmUoKTtRZmUoKTtKZmUoKTtWYSgpO2JkKCk7WXAoKTt1aygpO0wzPXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDpNT2EscmVzb2x2ZVRvOnpPYSx0b2tlbml6ZTpDT2F9LGtPYT17dG9rZW5pemU6VE9hfSxTT2E9e3Rva2VuaXplOiRPYX0sX09hPXt0b2tlbml6ZTpET2F9O2koTU9hLCJyZXNvbHZlQWxsTGFiZWxFbmQiKTtpKHpPYSwicmVzb2x2ZVRvTGFiZWxFbmQiKTtpKENPYSwidG9rZW5pemVMYWJlbEVuZCIpO2koVE9hLCJ0b2tlbml6ZVJlc291cmNlIik7aSgkT2EsInRva2VuaXplUmVmZXJlbmNlRnVsbCIpO2koRE9hLCJ0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZCIpfSk7ZnVuY3Rpb24gTE9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobCl7cmV0dXJuIHMuZW50ZXIoImxhYmVsSW1hZ2UiKSxzLmVudGVyKCJsYWJlbEltYWdlTWFya2VyIikscy5jb25zdW1lKGwpLHMuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLG59ZnVuY3Rpb24gbihsKXtyZXR1cm4gbD09PTkxPyhzLmVudGVyKCJsYWJlbE1hcmtlciIpLHMuY29uc3VtZShsKSxzLmV4aXQoImxhYmVsTWFya2VyIikscy5leGl0KCJsYWJlbEltYWdlIiksbyk6dChsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGEucGFyc2VyLmNvbnN0cnVjdHM/dChsKTplKGwpfX12YXIgb21lLGY5dD1nKCgpPT57JGllKCk7b21lPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6TDMucmVzb2x2ZUFsbCx0b2tlbml6ZTpMT2F9O2koTE9hLCJ0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZSIpfSk7ZnVuY3Rpb24gRU9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIHMuZW50ZXIoImxhYmVsTGluayIpLHMuZW50ZXIoImxhYmVsTWFya2VyIikscy5jb25zdW1lKG8pLHMuZXhpdCgibGFiZWxNYXJrZXIiKSxzLmV4aXQoImxhYmVsTGluayIpLG59ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBhLnBhcnNlci5jb25zdHJ1Y3RzP3Qobyk6ZShvKX19dmFyIG5tZSxtOXQ9ZygoKT0+eyRpZSgpO25tZT17bmFtZToibGFiZWxTdGFydExpbmsiLHJlc29sdmVBbGw6TDMucmVzb2x2ZUFsbCx0b2tlbml6ZTpFT2F9O2koRU9hLCJ0b2tlbml6ZUxhYmVsU3RhcnRMaW5rIil9KTtmdW5jdGlvbiBQT2EocyxlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KGEpe3JldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nIikscy5jb25zdW1lKGEpLHMuZXhpdCgibGluZUVuZGluZyIpLEt0KHMsZSwibGluZVByZWZpeCIpfX12YXIgZ2ssZzl0PWcoKCk9PntpcigpO1ZhKCk7Z2s9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOlBPYX07aShQT2EsInRva2VuaXplTGluZUVuZGluZyIpfSk7ZnVuY3Rpb24gSU9hKHMsZSx0KXtsZXQgYT0wLHI7cmV0dXJuIG47ZnVuY3Rpb24gbihkKXtyZXR1cm4gcy5lbnRlcigidGhlbWF0aWNCcmVhayIpLG8oZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gcj1kLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXI/KHMuZW50ZXIoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLHAoZCkpOmE+PTMmJihkPT09bnVsbHx8dnQoZCkpPyhzLmV4aXQoInRoZW1hdGljQnJlYWsiKSxlKGQpKTp0KGQpfWZ1bmN0aW9uIHAoZCl7cmV0dXJuIGQ9PT1yPyhzLmNvbnN1bWUoZCksYSsrLHApOihzLmV4aXQoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLEh0KGQpP0t0KHMsbCwid2hpdGVzcGFjZSIpKGQpOmwoZCkpfX12YXIgRTMsbG1lPWcoKCk9PntpcigpO1ZhKCk7RTM9e25hbWU6InRoZW1hdGljQnJlYWsiLHRva2VuaXplOklPYX07aShJT2EsInRva2VuaXplVGhlbWF0aWNCcmVhayIpfSk7ZnVuY3Rpb24gUk9hKHMsZSx0KXtsZXQgYT10aGlzLHI9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdLG49ciYmclsxXS50eXBlPT09ImxpbmVQcmVmaXgiP3JbMl0uc2xpY2VTZXJpYWxpemUoclsxXSwhMCkubGVuZ3RoOjAsbz0wO3JldHVybiBsO2Z1bmN0aW9uIGwodil7bGV0IHg9YS5jb250YWluZXJTdGF0ZS50eXBlfHwodj09PTQyfHx2PT09NDN8fHY9PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYoeD09PSJsaXN0VW5vcmRlcmVkIj8hYS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fHY9PT1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpvayh2KSl7aWYoYS5jb250YWluZXJTdGF0ZS50eXBlfHwoYS5jb250YWluZXJTdGF0ZS50eXBlPXgscy5lbnRlcih4LHtfY29udGFpbmVyOiEwfSkpLHg9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIHMuZW50ZXIoImxpc3RJdGVtUHJlZml4Iiksdj09PTQyfHx2PT09NDU/cy5jaGVjayhFMyx0LGQpKHYpOmQodik7aWYoIWEuaW50ZXJydXB0fHx2PT09NDkpcmV0dXJuIHMuZW50ZXIoImxpc3RJdGVtUHJlZml4Iikscy5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLHAodil9cmV0dXJuIHQodil9ZnVuY3Rpb24gcCh2KXtyZXR1cm4gb2sodikmJisrbzwxMD8ocy5jb25zdW1lKHYpLHApOighYS5pbnRlcnJ1cHR8fG88MikmJihhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj92PT09YS5jb250YWluZXJTdGF0ZS5tYXJrZXI6dj09PTQxfHx2PT09NDYpPyhzLmV4aXQoImxpc3RJdGVtVmFsdWUiKSxkKHYpKTp0KHYpfWZ1bmN0aW9uIGQodil7cmV0dXJuIHMuZW50ZXIoImxpc3RJdGVtTWFya2VyIikscy5jb25zdW1lKHYpLHMuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8dixzLmNoZWNrKHdkLGEuaW50ZXJydXB0P3Q6dSxzLmF0dGVtcHQoQU9hLGIsYykpfWZ1bmN0aW9uIHUodil7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxuKyssYih2KX1mdW5jdGlvbiBjKHYpe3JldHVybiBIdCh2KT8ocy5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIikscy5jb25zdW1lKHYpLHMuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksYik6dCh2KX1mdW5jdGlvbiBiKHYpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLnNpemU9bithLnNsaWNlU2VyaWFsaXplKHMuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLGUodil9fWZ1bmN0aW9uIE9PYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxzLmNoZWNrKHdkLHIsbik7ZnVuY3Rpb24gcihsKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1hLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsS3QocyxlLCJsaXN0SXRlbUluZGVudCIsYS5jb250YWluZXJTdGF0ZS5zaXplKzEpKGwpfWkociwib25CbGFuayIpO2Z1bmN0aW9uIG4obCl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFIdChsKT8oYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxvKGwpKTooYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxzLmF0dGVtcHQoTk9hLGUsbykobCkpfWkobiwibm90QmxhbmsiKTtmdW5jdGlvbiBvKGwpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9ITAsYS5pbnRlcnJ1cHQ9dm9pZCAwLEt0KHMscy5hdHRlbXB0KGVuLGUsdCksImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkobCl9aShvLCJub3RJbkN1cnJlbnRJdGVtIil9ZnVuY3Rpb24gRk9hKHMsZSx0KXtsZXQgYT10aGlzO3JldHVybiBLdChzLHIsImxpc3RJdGVtSW5kZW50IixhLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gcihuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG8mJm9bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09YS5jb250YWluZXJTdGF0ZS5zaXplP2Uobik6dChuKX19ZnVuY3Rpb24gQk9hKHMpe3MuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIEhPYShzLGUsdCl7bGV0IGE9dGhpcztyZXR1cm4gS3QocyxyLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gcihuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIUh0KG4pJiZvJiZvWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj9lKG4pOnQobil9fXZhciBlbixBT2EsTk9hLGI5dD1nKCgpPT57aXIoKTtWYSgpO3lpZSgpO2xtZSgpO2VuPXtjb250aW51YXRpb246e3Rva2VuaXplOk9PYX0sZXhpdDpCT2EsbmFtZToibGlzdCIsdG9rZW5pemU6Uk9hfSxBT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6SE9hfSxOT2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6Rk9hfTtpKFJPYSwidG9rZW5pemVMaXN0U3RhcnQiKTtpKE9PYSwidG9rZW5pemVMaXN0Q29udGludWF0aW9uIik7aShGT2EsInRva2VuaXplSW5kZW50Iik7aShCT2EsInRva2VuaXplTGlzdEVuZCIpO2koSE9hLCJ0b2tlbml6ZUxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gcU9hKHMsZSl7bGV0IHQ9cy5sZW5ndGgsYSxyLG47Zm9yKDt0LS07KWlmKHNbdF1bMF09PT0iZW50ZXIiKXtpZihzW3RdWzFdLnR5cGU9PT0iY29udGVudCIpe2E9dDticmVha31zW3RdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKHI9dCl9ZWxzZSBzW3RdWzFdLnR5cGU9PT0iY29udGVudCImJnMuc3BsaWNlKHQsMSksIW4mJnNbdF1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKG49dCk7bGV0IG89e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi5zW2FdWzFdLnN0YXJ0fSxlbmQ6ey4uLnNbcy5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIHNbcl1bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLG4/KHMuc3BsaWNlKHIsMCxbImVudGVyIixvLGVdKSxzLnNwbGljZShuKzEsMCxbImV4aXQiLHNbYV1bMV0sZV0pLHNbYV1bMV0uZW5kPXsuLi5zW25dWzFdLmVuZH0pOnNbYV1bMV09byxzLnB1c2goWyJleGl0IixvLGVdKSxzfWZ1bmN0aW9uIGpPYShzLGUsdCl7bGV0IGE9dGhpcyxyO3JldHVybiBuO2Z1bmN0aW9uIG4oZCl7bGV0IHU9YS5ldmVudHMubGVuZ3RoLGM7Zm9yKDt1LS07KWlmKGEuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJmEuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZVByZWZpeCImJmEuZXZlbnRzW3VdWzFdLnR5cGUhPT0iY29udGVudCIpe2M9YS5ldmVudHNbdV1bMV0udHlwZT09PSJwYXJhZ3JhcGgiO2JyZWFrfXJldHVybiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0mJihhLmludGVycnVwdHx8Yyk/KHMuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lIikscj1kLG8oZCkpOnQoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gcy5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXI/KHMuY29uc3VtZShkKSxsKToocy5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksSHQoZCk/S3QocyxwLCJsaW5lU3VmZml4IikoZCk6cChkKSl9ZnVuY3Rpb24gcChkKXtyZXR1cm4gZD09PW51bGx8fHZ0KGQpPyhzLmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksZShkKSk6dChkKX19dmFyIERpZSx2OXQ9ZygoKT0+e2lyKCk7VmEoKTtEaWU9e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOnFPYSx0b2tlbml6ZTpqT2F9O2kocU9hLCJyZXNvbHZlVG9TZXRleHRVbmRlcmxpbmUiKTtpKGpPYSwidG9rZW5pemVTZXRleHRVbmRlcmxpbmUiKX0pO3ZhciBMaWU9ZygoKT0+e1g3dCgpO1E3dCgpO3lpZSgpO0o3dCgpO2U5dCgpO3Q5dCgpO3M5dCgpO2k5dCgpO3I5dCgpO285dCgpO245dCgpO2w5dCgpO2M5dCgpO3A5dCgpO2g5dCgpOyRpZSgpO2Y5dCgpO205dCgpO2c5dCgpO2I5dCgpO3Y5dCgpO2xtZSgpfSk7ZnVuY3Rpb24gY21lKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpLT2EsY29udGludWF0aW9uOnt0b2tlbml6ZTpZT2F9LGV4aXQ6Wk9hfX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6R09hfSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpVT2EscmVzb2x2ZVRvOldPYX19fX1mdW5jdGlvbiBVT2EocyxlLHQpe2xldCBhPXRoaXMscj1hLmV2ZW50cy5sZW5ndGgsbj1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG87Zm9yKDtyLS07KXtsZXQgcD1hLmV2ZW50c1tyXVsxXTtpZihwLnR5cGU9PT0ibGFiZWxJbWFnZSIpe289cDticmVha31pZihwLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8cC50eXBlPT09ImxhYmVsTGluayJ8fHAudHlwZT09PSJsYWJlbCJ8fHAudHlwZT09PSJpbWFnZSJ8fHAudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKHApe2lmKCFvfHwhby5fYmFsYW5jZWQpcmV0dXJuIHQocCk7bGV0IGQ9SGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6by5lbmQsZW5kOmEubm93KCl9KSk7cmV0dXJuIGQuY29kZVBvaW50QXQoMCkhPT05NHx8IW4uaW5jbHVkZXMoZC5zbGljZSgxKSk/dChwKToocy5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUocCkscy5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUocCkpfX1mdW5jdGlvbiBXT2EocyxlKXtsZXQgdD1zLmxlbmd0aCxhO2Zvcig7dC0tOylpZihzW3RdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJnNbdF1bMF09PT0iZW50ZXIiKXthPXNbdF1bMV07YnJlYWt9c1t0KzFdWzFdLnR5cGU9ImRhdGEiLHNbdCszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IHI9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxzW3QrM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHNbcy5sZW5ndGgtMV1bMV0uZW5kKX0sbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHNbdCszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHNbdCszXVsxXS5lbmQpfTtuLmVuZC5jb2x1bW4rKyxuLmVuZC5vZmZzZXQrKyxuLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG4uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxzW3MubGVuZ3RoLTFdWzFdLnN0YXJ0KX0sbD17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sby5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sby5lbmQpfSxwPVtzW3QrMV0sc1t0KzJdLFsiZW50ZXIiLHIsZV0sc1t0KzNdLHNbdCs0XSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImVudGVyIixvLGVdLFsiZW50ZXIiLGwsZV0sWyJleGl0IixsLGVdLFsiZXhpdCIsbyxlXSxzW3MubGVuZ3RoLTJdLHNbcy5sZW5ndGgtMV0sWyJleGl0IixyLGVdXTtyZXR1cm4gcy5zcGxpY2UodCxzLmxlbmd0aC10KzEsLi4ucCksc31mdW5jdGlvbiBHT2EocyxlLHQpe2xldCBhPXRoaXMscj1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwoYyl7cmV0dXJuIHMuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLHMuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIikscy5jb25zdW1lKGMpLHMuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxwfWZ1bmN0aW9uIHAoYyl7cmV0dXJuIGMhPT05ND90KGMpOihzLmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxzLmNvbnN1bWUoYykscy5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxzLmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSxzLmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGQpfWZ1bmN0aW9uIGQoYyl7aWYobj45OTl8fGM9PT05MyYmIW98fGM9PT1udWxsfHxjPT09OTF8fEFhKGMpKXJldHVybiB0KGMpO2lmKGM9PT05Myl7cy5leGl0KCJjaHVua1N0cmluZyIpO2xldCBiPXMuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIHIuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZShiKSkpPyhzLmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHMuY29uc3VtZShjKSxzLmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIikscy5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSxlKTp0KGMpfXJldHVybiBBYShjKXx8KG89ITApLG4rKyxzLmNvbnN1bWUoYyksYz09PTkyP3U6ZH1mdW5jdGlvbiB1KGMpe3JldHVybiBjPT09OTF8fGM9PT05Mnx8Yz09PTkzPyhzLmNvbnN1bWUoYyksbisrLGQpOmQoYyl9fWZ1bmN0aW9uIEtPYShzLGUsdCl7bGV0IGE9dGhpcyxyPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbixvPTAsbDtyZXR1cm4gcDtmdW5jdGlvbiBwKHgpe3JldHVybiBzLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLHMuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIikscy5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUoeCkscy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGR9ZnVuY3Rpb24gZCh4KXtyZXR1cm4geD09PTk0PyhzLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxzLmNvbnN1bWUoeCkscy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxzLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLHMuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsdSk6dCh4KX1mdW5jdGlvbiB1KHgpe2lmKG8+OTk5fHx4PT09OTMmJiFsfHx4PT09bnVsbHx8eD09PTkxfHxBYSh4KSlyZXR1cm4gdCh4KTtpZih4PT09OTMpe3MuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgbT1zLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIG49SGkoYS5zbGljZVNlcmlhbGl6ZShtKSkscy5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxzLmNvbnN1bWUoeCkscy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHMuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxifXJldHVybiBBYSh4KXx8KGw9ITApLG8rKyxzLmNvbnN1bWUoeCkseD09PTkyP2M6dX1mdW5jdGlvbiBjKHgpe3JldHVybiB4PT09OTF8fHg9PT05Mnx8eD09PTkzPyhzLmNvbnN1bWUoeCksbysrLHUpOnUoeCl9ZnVuY3Rpb24gYih4KXtyZXR1cm4geD09PTU4PyhzLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIikscy5jb25zdW1lKHgpLHMuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLHIuaW5jbHVkZXMobil8fHIucHVzaChuKSxLdChzLHYsImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6dCh4KX1mdW5jdGlvbiB2KHgpe3JldHVybiBlKHgpfX1mdW5jdGlvbiBZT2EocyxlLHQpe3JldHVybiBzLmNoZWNrKHdkLGUscy5hdHRlbXB0KFZPYSxlLHQpKX1mdW5jdGlvbiBaT2Eocyl7cy5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBYT2EocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIEt0KHMsciwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiByKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09ND9lKG4pOnQobil9fXZhciBWT2EseDl0PWcoKCk9PntMaWUoKTtpcigpO1ZhKCk7WXAoKTtWT2E9e3Rva2VuaXplOlhPYSxwYXJ0aWFsOiEwfTtpKGNtZSwiZ2ZtRm9vdG5vdGUiKTtpKFVPYSwidG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwiKTtpKFdPYSwicmVzb2x2ZVRvUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsIik7aShHT2EsInRva2VuaXplR2ZtRm9vdG5vdGVDYWxsIik7aShLT2EsInRva2VuaXplRGVmaW5pdGlvblN0YXJ0Iik7aShZT2EsInRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvbiIpO2koWk9hLCJnZm1Gb290bm90ZURlZmluaXRpb25FbmQiKTtpKFhPYSwidG9rZW5pemVJbmRlbnQiKX0pO2Z1bmN0aW9uIHk5dChzLGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhzKzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIGRtZShzKXtsZXQgZT1zfHxKT2EsdD1lLmxhYmVsfHwiRm9vdG5vdGVzIixhPWUubGFiZWxUYWdOYW1lfHwiaDIiLHI9ZS5sYWJlbEF0dHJpYnV0ZXM9PT1udWxsfHxlLmxhYmVsQXR0cmlidXRlcz09PXZvaWQgMD8nY2xhc3M9InNyLW9ubHkiJzplLmxhYmVsQXR0cmlidXRlcyxuPWUuYmFja0xhYmVsfHx5OXQsbz1lLmNsb2JiZXJQcmVmaXg9PT1udWxsfHxlLmNsb2JiZXJQcmVmaXg9PT12b2lkIDA/InVzZXItY29udGVudC0iOmUuY2xvYmJlclByZWZpeDtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe3RoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLnB1c2goITEpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9fSxleGl0OntnZm1Gb290bm90ZURlZmluaXRpb24oKXtsZXQgbD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKSxwPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKSxkPXRoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLHU9cC5wb3AoKSxjPXRoaXMucmVzdW1lKCk7bHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIixsPXt9KSxRT2EuY2FsbChsLHUpfHwobFt1XT1jKSxkLnBvcCgpLHRoaXMuc2V0RGF0YSgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCksdGhpcy5zZXREYXRhKCJsYXN0V2FzVGFnIil9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKGwpe2xldCBwPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKTtwfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIixwPVtdKSxwLnB1c2goSGkodGhpcy5zbGljZVNlcmlhbGl6ZShsKSkpLHRoaXMucmVzdW1lKCksdGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKGwpe2xldCBwPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIiksdT1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKGwpKSxjO3RoaXMucmVzdW1lKCkscHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIscD1bXSksZHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiLGQ9e30pO2xldCBiPXAuaW5kZXhPZih1KSx2PXhkKHUudG9Mb3dlckNhc2UoKSk7Yj09PS0xPyhwLnB1c2godSksZFt1XT0xLGM9cC5sZW5ndGgpOihkW3VdKyssYz1iKzEpO2xldCB4PWRbdV07dGhpcy50YWcoJzxzdXA+PGEgaHJlZj0iIycrbysiZm4tIit2KyciIGlkPSInK28rImZucmVmLSIrdisoeD4xPyItIit4OiIiKSsnIiBkYXRhLWZvb3Rub3RlLXJlZj0iIiBhcmlhLWRlc2NyaWJlZGJ5PSJmb290bm90ZS1sYWJlbCI+JytTdHJpbmcoYykrIjwvYT48L3N1cD4iKX0sbnVsbCgpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKXx8W10scD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpfHx7fSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpfHx7fSx1PS0xO2ZvcihsLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9IiIgY2xhc3M9ImZvb3Rub3RlcyI+PCcrYSsnIGlkPSJmb290bm90ZS1sYWJlbCInKyhyPyIgIityOiIiKSsiPiIpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHQpKSx0aGlzLnRhZygiPC8iK2ErIj4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8b2w+IikpOysrdTxsLmxlbmd0aDspe2xldCBjPWxbdV0sYj14ZChjLnRvTG93ZXJDYXNlKCkpLHY9MCx4PVtdO2Zvcig7Kyt2PD1wW2NdOyl4LnB1c2goJzxhIGhyZWY9IiMnK28rImZucmVmLSIrYisodj4xPyItIit2OiIiKSsnIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9IiIgYXJpYS1sYWJlbD0iJyt0aGlzLmVuY29kZSh0eXBlb2Ygbj09InN0cmluZyI/bjpuKHUsdikpKyciIGNsYXNzPSJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiPlx1MjFBOScrKHY+MT8iPHN1cD4iK3YrIjwvc3VwPiI6IiIpKyI8L2E+Iik7bGV0IG09eC5qb2luKCIgIiksZj0hMTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8bGkgaWQ9IicrbysiZm4tIitiKyciPicpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoZFtjXS5yZXBsYWNlKC88XC9wPig/OlxyP1xufFxyKT8kLyxmdW5jdGlvbih5KXtyZXR1cm4gZj0hMCwiICIrbSt5fSkpLGZ8fCh0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKG0pKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L2xpPiIpfWwubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L29sPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvc2VjdGlvbj4iKSl9fX19dmFyIFFPYSxKT2Esdzl0PWcoKCk9PntZcCgpO3lkKCk7UU9hPXt9Lmhhc093blByb3BlcnR5LEpPYT17fTtpKHk5dCwiZGVmYXVsdEJhY2tMYWJlbCIpO2koZG1lLCJnZm1Gb290bm90ZUh0bWwiKX0pO3ZhciBrOXQ9ZygoKT0+e3g5dCgpO3c5dCgpfSk7ZnVuY3Rpb24gdW1lKCl7cmV0dXJue2VudGVyOntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjxkZWw+Iil9fSxleGl0OntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjwvZGVsPiIpfX19fXZhciBTOXQ9ZygoKT0+e2kodW1lLCJnZm1TdHJpa2V0aHJvdWdoSHRtbCIpfSk7ZnVuY3Rpb24gcG1lKHMpe2xldCB0PShzfHx7fSkuc2luZ2xlVGlsZGUsYT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6bixyZXNvbHZlQWxsOnJ9O3JldHVybiB0PT1udWxsJiYodD0hMCkse3RleHQ6ezEyNjphfSxpbnNpZGVTcGFuOntudWxsOlthXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIHIobyxsKXtsZXQgcD0tMTtmb3IoOysrcDxvLmxlbmd0aDspaWYob1twXVswXT09PSJlbnRlciImJm9bcF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZvW3BdWzFdLl9jbG9zZSl7bGV0IGQ9cDtmb3IoO2QtLTspaWYob1tkXVswXT09PSJleGl0IiYmb1tkXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bZF1bMV0uX29wZW4mJm9bcF1bMV0uZW5kLm9mZnNldC1vW3BdWzFdLnN0YXJ0Lm9mZnNldD09PW9bZF1bMV0uZW5kLm9mZnNldC1vW2RdWzFdLnN0YXJ0Lm9mZnNldCl7b1twXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG9bZF1bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgdT17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvW2RdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW3BdWzFdLmVuZCl9LGM9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bZF1bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW3BdWzFdLnN0YXJ0KX0sYj1bWyJlbnRlciIsdSxsXSxbImVudGVyIixvW2RdWzFdLGxdLFsiZXhpdCIsb1tkXVsxXSxsXSxbImVudGVyIixjLGxdXSx2PWwucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO3YmJnNyKGIsYi5sZW5ndGgsMCxYcCh2LG8uc2xpY2UoZCsxLHApLGwpKSxzcihiLGIubGVuZ3RoLDAsW1siZXhpdCIsYyxsXSxbImVudGVyIixvW3BdWzFdLGxdLFsiZXhpdCIsb1twXVsxXSxsXSxbImV4aXQiLHUsbF1dKSxzcihvLGQtMSxwLWQrMyxiKSxwPWQrYi5sZW5ndGgtMjticmVha319Zm9yKHA9LTE7KytwPG8ubGVuZ3RoOylvW3BdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG9bcF1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBvfWkociwicmVzb2x2ZUFsbFN0cmlrZXRocm91Z2giKTtmdW5jdGlvbiBuKG8sbCxwKXtsZXQgZD10aGlzLnByZXZpb3VzLHU9dGhpcy5ldmVudHMsYz0wO3JldHVybiBiO2Z1bmN0aW9uIGIoeCl7cmV0dXJuIGQ9PT0xMjYmJnVbdS5sZW5ndGgtMV1bMV0udHlwZSE9PSJjaGFyYWN0ZXJFc2NhcGUiP3AoeCk6KG8uZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLHYoeCkpfWZ1bmN0aW9uIHYoeCl7bGV0IG09TDAoZCk7aWYoeD09PTEyNilyZXR1cm4gYz4xP3AoeCk6KG8uY29uc3VtZSh4KSxjKyssdik7aWYoYzwyJiYhdClyZXR1cm4gcCh4KTtsZXQgZj1vLmV4aXQoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLHk9TDAoeCk7cmV0dXJuIGYuX29wZW49IXl8fHk9PT0yJiYhIW0sZi5fY2xvc2U9IW18fG09PT0yJiYhIXksbCh4KX19aShuLCJ0b2tlbml6ZVN0cmlrZXRocm91Z2giKX12YXIgXzl0PWcoKCk9PntiZCgpO2xpZSgpO3VrKCk7aShwbWUsImdmbVN0cmlrZXRocm91Z2giKX0pO3ZhciBNOXQ9ZygoKT0+e1M5dCgpO185dCgpfSk7ZnVuY3Rpb24gZm1lKCl7cmV0dXJue2VudGVyOnt0YWJsZShzKXtsZXQgZT1zLl9hbGlnbjt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGFibGU+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIixlKX0sdGFibGVCb2R5KCl7dGhpcy50YWcoIjx0Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHM9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIiksdD1obWVbc1tlXV07dD09PXZvaWQgMD90aGlzLmJ1ZmZlcigpOih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK3QrIj4iKSl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgcz10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSx0PWhtZVtzW2VdXTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGgiK3QrIj4iKX0sdGFibGVSb3coKXt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIiwwKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dHI+Iil9fSxleGl0Ontjb2RlVGV4dERhdGEocyl7bGV0IGU9dGhpcy5zbGljZVNlcmlhbGl6ZShzKTt0aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxlRmEpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShlKSl9LHRhYmxlKCl7dGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIiksdGhpcy5zZXREYXRhKCJzbHVycEFsbExpbmVFbmRpbmdzIiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90YWJsZT4iKX0sdGFibGVCb2R5KCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHM9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7ZSBpbiBzPyh0aGlzLnRhZygiPC90ZD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKzEpKTp0aGlzLnJlc3VtZSgpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCBzPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTt0aGlzLnRhZygiPC90aD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixzKzEpfSx0YWJsZVJvdygpe2xldCBzPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2Zvcig7ZTxzLmxlbmd0aDspdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIitobWVbc1tlXV0rIj48L3RkPiIpLGUrKzt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RyPiIpfX19fWZ1bmN0aW9uIGVGYShzLGUpe3JldHVybiBlPT09InwiP2U6c312YXIgaG1lLHo5dD1nKCgpPT57aG1lPXtub25lOiIiLGxlZnQ6JyBhbGlnbj0ibGVmdCInLHJpZ2h0OicgYWxpZ249InJpZ2h0IicsY2VudGVyOicgYWxpZ249ImNlbnRlciInfTtpKGZtZSwiZ2ZtVGFibGVIdG1sIik7aShlRmEsInJlcGxhY2UiKX0pO2Z1bmN0aW9uIHRGYShzLGUsdCxhKXtsZXQgcj0wO2lmKCEodD09PTAmJmEubGVuZ3RoPT09MCkpe2Zvcig7cjxzLm1hcC5sZW5ndGg7KXtpZihzLm1hcFtyXVswXT09PWUpe3MubWFwW3JdWzFdKz10LHMubWFwW3JdWzJdLnB1c2goLi4uYSk7cmV0dXJufXIrPTF9cy5tYXAucHVzaChbZSx0LGFdKX19dmFyIEVpZSxDOXQ9ZygoKT0+e0VpZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFZGl0TWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1bXX1hZGQoZSx0LGEpe3RGYSh0aGlzLGUsdCxhKX1jb25zdW1lKGUpe2lmKHRoaXMubWFwLnNvcnQoZnVuY3Rpb24obixvKXtyZXR1cm4gblswXS1vWzBdfSksdGhpcy5tYXAubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9dGhpcy5tYXAubGVuZ3RoLGE9W107Zm9yKDt0PjA7KXQtPTEsYS5wdXNoKGUuc2xpY2UodGhpcy5tYXBbdF1bMF0rdGhpcy5tYXBbdF1bMV0pLHRoaXMubWFwW3RdWzJdKSxlLmxlbmd0aD10aGlzLm1hcFt0XVswXTthLnB1c2goZS5zbGljZSgpKSxlLmxlbmd0aD0wO2xldCByPWEucG9wKCk7Zm9yKDtyOyl7Zm9yKGxldCBuIG9mIHIpZS5wdXNoKG4pO3I9YS5wb3AoKX10aGlzLm1hcC5sZW5ndGg9MH19O2kodEZhLCJhZGRJbXBsZW1lbnRhdGlvbiIpfSk7ZnVuY3Rpb24gVDl0KHMsZSl7bGV0IHQ9ITEsYT1bXTtmb3IoO2U8cy5sZW5ndGg7KXtsZXQgcj1zW2VdO2lmKHQpe2lmKHJbMF09PT0iZW50ZXIiKXJbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiJiZhLnB1c2goc1tlKzFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiPyJsZWZ0Ijoibm9uZSIpO2Vsc2UgaWYoclsxXS50eXBlPT09InRhYmxlQ29udGVudCIpe2lmKHNbZS0xXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIil7bGV0IG49YS5sZW5ndGgtMTthW25dPWFbbl09PT0ibGVmdCI/ImNlbnRlciI6InJpZ2h0In19ZWxzZSBpZihyWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciKWJyZWFrfWVsc2UgclswXT09PSJlbnRlciImJnJbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyImJih0PSEwKTtlKz0xfXJldHVybiBhfXZhciAkOXQ9ZygoKT0+e2koVDl0LCJnZm1UYWJsZUFsaWduIil9KTtmdW5jdGlvbiBtbWUoKXtyZXR1cm57Zmxvdzp7bnVsbDp7bmFtZToidGFibGUiLHRva2VuaXplOmFGYSxyZXNvbHZlQWxsOnNGYX19fX1mdW5jdGlvbiBhRmEocyxlLHQpe2xldCBhPXRoaXMscj0wLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwoSCl7bGV0IGs9YS5ldmVudHMubGVuZ3RoLTE7Zm9yKDtrPi0xOyl7bGV0IFA9YS5ldmVudHNba11bMV0udHlwZTtpZihQPT09ImxpbmVFbmRpbmcifHxQPT09ImxpbmVQcmVmaXgiKWstLTtlbHNlIGJyZWFrfWxldCBTPWs+LTE/YS5ldmVudHNba11bMV0udHlwZTpudWxsLEk9Uz09PSJ0YWJsZUhlYWQifHxTPT09InRhYmxlUm93Ij9fOnA7cmV0dXJuIEk9PT1fJiZhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/dChIKTpJKEgpfWZ1bmN0aW9uIHAoSCl7cmV0dXJuIHMuZW50ZXIoInRhYmxlSGVhZCIpLHMuZW50ZXIoInRhYmxlUm93IiksZChIKX1mdW5jdGlvbiBkKEgpe3JldHVybiBIPT09MTI0fHwobz0hMCxuKz0xKSx1KEgpfWZ1bmN0aW9uIHUoSCl7cmV0dXJuIEg9PT1udWxsP3QoSCk6dnQoSCk/bj4xPyhuPTAsYS5pbnRlcnJ1cHQ9ITAscy5leGl0KCJ0YWJsZVJvdyIpLHMuZW50ZXIoImxpbmVFbmRpbmciKSxzLmNvbnN1bWUoSCkscy5leGl0KCJsaW5lRW5kaW5nIiksdik6dChIKTpIdChIKT9LdChzLHUsIndoaXRlc3BhY2UiKShIKToobis9MSxvJiYobz0hMSxyKz0xKSxIPT09MTI0PyhzLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLG89ITAsdSk6KHMuZW50ZXIoImRhdGEiKSxjKEgpKSl9ZnVuY3Rpb24gYyhIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0xMjR8fEFhKEgpPyhzLmV4aXQoImRhdGEiKSx1KEgpKToocy5jb25zdW1lKEgpLEg9PT05Mj9iOmMpfWZ1bmN0aW9uIGIoSCl7cmV0dXJuIEg9PT05Mnx8SD09PTEyND8ocy5jb25zdW1lKEgpLGMpOmMoSCl9ZnVuY3Rpb24gdihIKXtyZXR1cm4gYS5pbnRlcnJ1cHQ9ITEsYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3QoSCk6KHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93Iiksbz0hMSxIdChIKT9LdChzLHgsImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoSCk6eChIKSl9ZnVuY3Rpb24geChIKXtyZXR1cm4gSD09PTQ1fHxIPT09NTg/ZihIKTpIPT09MTI0PyhvPSEwLHMuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSxzLmNvbnN1bWUoSCkscy5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksbSk6QyhIKX1mdW5jdGlvbiBtKEgpe3JldHVybiBIdChIKT9LdChzLGYsIndoaXRlc3BhY2UiKShIKTpmKEgpfWZ1bmN0aW9uIGYoSCl7cmV0dXJuIEg9PT01OD8obis9MSxvPSEwLHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx5KTpIPT09NDU/KG4rPTEseShIKSk6SD09PW51bGx8fHZ0KEgpP04oSCk6QyhIKX1mdW5jdGlvbiB5KEgpe3JldHVybiBIPT09NDU/KHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksTShIKSk6QyhIKX1mdW5jdGlvbiBNKEgpe3JldHVybiBIPT09NDU/KHMuY29uc3VtZShIKSxNKTpIPT09NTg/KG89ITAscy5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHMuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx6KToocy5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHooSCkpfWZ1bmN0aW9uIHooSCl7cmV0dXJuIEh0KEgpP0t0KHMsTiwid2hpdGVzcGFjZSIpKEgpOk4oSCl9ZnVuY3Rpb24gTihIKXtyZXR1cm4gSD09PTEyND94KEgpOkg9PT1udWxsfHx2dChIKT8hb3x8ciE9PW4/QyhIKToocy5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLHMuZXhpdCgidGFibGVIZWFkIiksZShIKSk6QyhIKX1mdW5jdGlvbiBDKEgpe3JldHVybiB0KEgpfWZ1bmN0aW9uIF8oSCl7cmV0dXJuIHMuZW50ZXIoInRhYmxlUm93IiksTyhIKX1mdW5jdGlvbiBPKEgpe3JldHVybiBIPT09MTI0PyhzLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIikscy5jb25zdW1lKEgpLHMuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLE8pOkg9PT1udWxsfHx2dChIKT8ocy5leGl0KCJ0YWJsZVJvdyIpLGUoSCkpOkh0KEgpP0t0KHMsTywid2hpdGVzcGFjZSIpKEgpOihzLmVudGVyKCJkYXRhIiksJChIKSl9ZnVuY3Rpb24gJChIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0xMjR8fEFhKEgpPyhzLmV4aXQoImRhdGEiKSxPKEgpKToocy5jb25zdW1lKEgpLEg9PT05Mj9FOiQpfWZ1bmN0aW9uIEUoSCl7cmV0dXJuIEg9PT05Mnx8SD09PTEyND8ocy5jb25zdW1lKEgpLCQpOiQoSCl9fWZ1bmN0aW9uIHNGYShzLGUpe2xldCB0PS0xLGE9ITAscj0wLG49WzAsMCwwLDBdLG89WzAsMCwwLDBdLGw9ITEscD0wLGQsdSxjLGI9bmV3IEVpZTtmb3IoOysrdDxzLmxlbmd0aDspe2xldCB2PXNbdF0seD12WzFdO3ZbMF09PT0iZW50ZXIiP3gudHlwZT09PSJ0YWJsZUhlYWQiPyhsPSExLHAhPT0wJiYoRDl0KGIsZSxwLGQsdSksdT12b2lkIDAscD0wKSxkPXt0eXBlOiJ0YWJsZSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx4LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx4LmVuZCl9LGIuYWRkKHQsMCxbWyJlbnRlciIsZCxlXV0pKTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhhPSEwLGM9dm9pZCAwLG49WzAsMCwwLDBdLG89WzAsdCsxLDAsMF0sbCYmKGw9ITEsdT17dHlwZToidGFibGVCb2R5IixzdGFydDpPYmplY3QuYXNzaWduKHt9LHguc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHguZW5kKX0sYi5hZGQodCwwLFtbImVudGVyIix1LGVdXSkpLHI9eC50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8yOnU/MzoxKTpyJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKT8oYT0hMSxvWzJdPT09MCYmKG5bMV0hPT0wJiYob1swXT1vWzFdLGM9UGllKGIsZSxuLHIsdm9pZCAwLGMpLG49WzAsMCwwLDBdKSxvWzJdPXQpKTp4LnR5cGU9PT0idGFibGVDZWxsRGl2aWRlciImJihhP2E9ITE6KG5bMV0hPT0wJiYob1swXT1vWzFdLGM9UGllKGIsZSxuLHIsdm9pZCAwLGMpKSxuPW8sbz1bblsxXSx0LDAsMF0pKTp4LnR5cGU9PT0idGFibGVIZWFkIj8obD0hMCxwPXQpOngudHlwZT09PSJ0YWJsZVJvdyJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KHA9dCxuWzFdIT09MD8ob1swXT1vWzFdLGM9UGllKGIsZSxuLHIsdCxjKSk6b1sxXSE9PTAmJihjPVBpZShiLGUsbyxyLHQsYykpLHI9MCk6ciYmKHgudHlwZT09PSJkYXRhInx8eC50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8eC50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIikmJihvWzNdPXQpfWZvcihwIT09MCYmRDl0KGIsZSxwLGQsdSksYi5jb25zdW1lKGUuZXZlbnRzKSx0PS0xOysrdDxlLmV2ZW50cy5sZW5ndGg7KXtsZXQgdj1lLmV2ZW50c1t0XTt2WzBdPT09ImVudGVyIiYmdlsxXS50eXBlPT09InRhYmxlIiYmKHZbMV0uX2FsaWduPVQ5dChlLmV2ZW50cyx0KSl9cmV0dXJuIHN9ZnVuY3Rpb24gUGllKHMsZSx0LGEscixuKXtsZXQgbz1hPT09MT8idGFibGVIZWFkZXIiOmE9PT0yPyJ0YWJsZURlbGltaXRlciI6InRhYmxlRGF0YSIsbD0idGFibGVDb250ZW50Ijt0WzBdIT09MCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30sZWIoZS5ldmVudHMsdFswXSkpLHMuYWRkKHRbMF0sMCxbWyJleGl0IixuLGVdXSkpO2xldCBwPWViKGUuZXZlbnRzLHRbMV0pO2lmKG49e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LHApLGVuZDpPYmplY3QuYXNzaWduKHt9LHApfSxzLmFkZCh0WzFdLDAsW1siZW50ZXIiLG4sZV1dKSx0WzJdIT09MCl7bGV0IGQ9ZWIoZS5ldmVudHMsdFsyXSksdT1lYihlLmV2ZW50cyx0WzNdKSxjPXt0eXBlOmwsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxkKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx1KX07aWYocy5hZGQodFsyXSwwLFtbImVudGVyIixjLGVdXSksYSE9PTIpe2xldCBiPWUuZXZlbnRzW3RbMl1dLHY9ZS5ldmVudHNbdFszXV07aWYoYlsxXS5lbmQ9T2JqZWN0LmFzc2lnbih7fSx2WzFdLmVuZCksYlsxXS50eXBlPSJjaHVua1RleHQiLGJbMV0uY29udGVudFR5cGU9InRleHQiLHRbM10+dFsyXSsxKXtsZXQgeD10WzJdKzEsbT10WzNdLXRbMl0tMTtzLmFkZCh4LG0sW10pfX1zLmFkZCh0WzNdKzEsMCxbWyJleGl0IixjLGVdXSl9cmV0dXJuIHIhPT12b2lkIDAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LGViKGUuZXZlbnRzLHIpKSxzLmFkZChyLDAsW1siZXhpdCIsbixlXV0pLG49dm9pZCAwKSxufWZ1bmN0aW9uIEQ5dChzLGUsdCxhLHIpe2xldCBuPVtdLG89ZWIoZS5ldmVudHMsdCk7ciYmKHIuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIscixlXSkpLGEuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsYSxlXSkscy5hZGQodCsxLDAsbil9ZnVuY3Rpb24gZWIocyxlKXtsZXQgdD1zW2VdLGE9dFswXT09PSJlbnRlciI/InN0YXJ0IjoiZW5kIjtyZXR1cm4gdFsxXVthXX12YXIgTDl0PWcoKCk9PntpcigpO1ZhKCk7Qzl0KCk7JDl0KCk7aShtbWUsImdmbVRhYmxlIik7aShhRmEsInRva2VuaXplVGFibGUiKTtpKHNGYSwicmVzb2x2ZVRhYmxlIik7aShQaWUsImZsdXNoQ2VsbCIpO2koRDl0LCJmbHVzaFRhYmxlRW5kIik7aShlYiwiZ2V0UG9pbnQiKX0pO3ZhciBFOXQ9ZygoKT0+e3o5dCgpO0w5dCgpfSk7ZnVuY3Rpb24gZ21lKCl7cmV0dXJue2V4aXQ6e2h0bWxGbG93RGF0YShzKXtJOXQuY2FsbCh0aGlzLHMsUDl0KX0saHRtbFRleHREYXRhKHMpe0k5dC5jYWxsKHRoaXMscyxpRmEpfX19fWZ1bmN0aW9uIEk5dChzLGUpe2xldCB0PXRoaXMuc2xpY2VTZXJpYWxpemUocyk7dGhpcy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCYmKHQ9dC5yZXBsYWNlKGUsIiZsdDskMSQyIikpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHQpKX12YXIgUDl0LGlGYSxBOXQ9ZygoKT0+e1A5dD0vPChcLz8pKGlmcmFtZXxub2VtYmVkfG5vZnJhbWVzfHBsYWludGV4dHxzY3JpcHR8c3R5bGV8dGl0bGV8dGV4dGFyZWF8eG1wKSg/PVtcdFxuXGZcciAvPl0pL2dpLGlGYT1uZXcgUmVnRXhwKCJeIitQOXQuc291cmNlLCJpIik7aShnbWUsImdmbVRhZ2ZpbHRlckh0bWwiKTtpKEk5dCwiZXhpdEh0bWxEYXRhIil9KTt2YXIgTjl0PWcoKCk9PntBOXQoKX0pO2Z1bmN0aW9uIGJtZSgpe3JldHVybntlbnRlcjp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPSIiICcpfX0sZXhpdDp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCIvPiIpfSx0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCl7dGhpcy50YWcoJ2NoZWNrZWQ9IiIgJyl9fX19dmFyIFI5dD1nKCgpPT57aShibWUsImdmbVRhc2tMaXN0SXRlbUh0bWwiKX0pO2Z1bmN0aW9uIHZtZSgpe3JldHVybnt0ZXh0Ons5MTpyRmF9fX1mdW5jdGlvbiBvRmEocyxlLHQpe2xldCBhPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihwKXtyZXR1cm4gYS5wcmV2aW91cyE9PW51bGx8fCFhLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/dChwKToocy5lbnRlcigidGFza0xpc3RDaGVjayIpLHMuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxzLmNvbnN1bWUocCkscy5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbil9ZnVuY3Rpb24gbihwKXtyZXR1cm4gQWEocCk/KHMuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLHMuY29uc3VtZShwKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLG8pOnA9PT04OHx8cD09PTEyMD8ocy5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLHMuY29uc3VtZShwKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxvKTp0KHApfWZ1bmN0aW9uIG8ocCl7cmV0dXJuIHA9PT05Mz8ocy5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHMuY29uc3VtZShwKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxzLmV4aXQoInRhc2tMaXN0Q2hlY2siKSxsKTp0KHApfWZ1bmN0aW9uIGwocCl7cmV0dXJuIHZ0KHApP2UocCk6SHQocCk/cy5jaGVjayh7dG9rZW5pemU6bkZhfSxlLHQpKHApOnQocCl9fWZ1bmN0aW9uIG5GYShzLGUsdCl7cmV0dXJuIEt0KHMsYSwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIGEocil7cmV0dXJuIHI9PT1udWxsP3Qocik6ZShyKX19dmFyIHJGYSxPOXQ9ZygoKT0+e2lyKCk7VmEoKTtyRmE9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOm9GYX07aSh2bWUsImdmbVRhc2tMaXN0SXRlbSIpO2kob0ZhLCJ0b2tlbml6ZVRhc2tsaXN0Q2hlY2siKTtpKG5GYSwic3BhY2VUaGVuTm9uU3BhY2UiKX0pO3ZhciBGOXQ9ZygoKT0+e1I5dCgpO085dCgpfSk7ZnVuY3Rpb24gQjl0KHMpe3JldHVybiBnaWUoW0hmZSgpLGNtZSgpLHBtZShzKSxtbWUoKSx2bWUoKV0pfWZ1bmN0aW9uIGowaShzKXtyZXR1cm4gYmllKFtWZmUoKSxkbWUocyksdW1lKCksZm1lKCksZ21lKCksYm1lKCldKX12YXIgSDl0PWcoKCk9Pnt2aWUoKTtZN3QoKTtrOXQoKTtNOXQoKTtFOXQoKTtOOXQoKTtGOXQoKTtpKEI5dCwiZ2ZtIik7aShqMGksImdmbUh0bWwiKX0pO2Z1bmN0aW9uIHRiKHMpe2xldCBlPXRoaXMsdD1zfHxsRmEsYT1lLmRhdGEoKSxyPWEubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGEubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1hLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChhLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89YS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGEudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3IucHVzaChCOXQodCkpLG4ucHVzaChOZmUoKSksby5wdXNoKFJmZSh0KSl9dmFyIGxGYSxxOXQ9ZygoKT0+e083dCgpO0g5dCgpO2xGYT17fTtpKHRiLCJyZW1hcmtHZm0iKX0pO3ZhciBqOXQ9ZygoKT0+e3E5dCgpfSk7ZnVuY3Rpb24geG1lKHMpe2xldCBlPXN8fHt9LHQ9ITAsYT17fSxyPVtbXV0sbj1bXSxvPVtdLHA9YmllKFt7ZW50ZXI6e2Jsb2NrUXVvdGU6Uixjb2RlRmVuY2VkOm1lLGNvZGVGZW5jZWRGZW5jZUluZm86Zixjb2RlRmVuY2VkRmVuY2VNZXRhOmYsY29kZUluZGVudGVkOmhlLGNvZGVUZXh0OmNlLGNvbnRlbnQ6VGUsZGVmaW5pdGlvbjp5ZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6QSxkZWZpbml0aW9uTGFiZWxTdHJpbmc6ZixkZWZpbml0aW9uVGl0bGVTdHJpbmc6ZixlbXBoYXNpczpnZSxodG1sRmxvdzpXZSxodG1sVGV4dDpNZSxpbWFnZTpqLGxhYmVsOmYsbGluazp1ZSxsaXN0SXRlbU1hcmtlcjprLGxpc3RJdGVtVmFsdWU6SCxsaXN0T3JkZXJlZDokLGxpc3RVbm9yZGVyZWQ6RSxwYXJhZ3JhcGg6VixyZWZlcmVuY2U6ZixyZXNvdXJjZTp0ZSxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOmVlLHJlc291cmNlVGl0bGVTdHJpbmc6ZixzZXRleHRIZWFkaW5nOkJlLHN0cm9uZzpJZX0sZXhpdDp7YXR4SGVhZGluZzpEZSxhdHhIZWFkaW5nU2VxdWVuY2U6UmUsYXV0b2xpbmtFbWFpbDpqYSxhdXRvbGlua1Byb3RvY29sOlp0LGJsb2NrUXVvdGU6SyxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTp2ZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpvdCxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOm90LGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOlV0LGNvZGVGZW5jZWQ6Rixjb2RlRmVuY2VkRmVuY2U6VSxjb2RlRmVuY2VkRmVuY2VJbmZvOkIsY29kZUZlbmNlZEZlbmNlTWV0YTpPLGNvZGVGbG93VmFsdWU6RWUsY29kZUluZGVudGVkOkYsY29kZVRleHQ6ZGUsY29kZVRleHREYXRhOnZlLGRhdGE6dmUsZGVmaW5pdGlvbjphZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6c2UsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOnEsZGVmaW5pdGlvblRpdGxlU3RyaW5nOm9lLGVtcGhhc2lzOkxlLGhhcmRCcmVha0VzY2FwZTpqZSxoYXJkQnJlYWtUcmFpbGluZzpqZSxodG1sRmxvdzpzdCxodG1sRmxvd0RhdGE6dmUsaHRtbFRleHQ6c3QsaHRtbFRleHREYXRhOnZlLGltYWdlOlosbGFiZWw6USxsYWJlbFRleHQ6bGUsbGluZUVuZGluZzpiZSxsaW5rOlosbGlzdE9yZGVyZWQ6UyxsaXN0VW5vcmRlcmVkOkkscGFyYWdyYXBoOlcscmVmZXJlbmNlOk8scmVmZXJlbmNlU3RyaW5nOmllLHJlc291cmNlOk8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzprZSxyZXNvdXJjZVRpdGxlU3RyaW5nOlgsc2V0ZXh0SGVhZGluZzpDZSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOl9lLHNldGV4dEhlYWRpbmdUZXh0OkdlLHN0cm9uZzpLZSx0aGVtYXRpY0JyZWFrOlllfX0sLi4uZS5odG1sRXh0ZW5zaW9uc3x8W11dKSxkPXtkZWZpbml0aW9uczphLHRpZ2h0U3RhY2s6b30sdT17YnVmZmVyOmYsZW5jb2RlOl8sZ2V0RGF0YTptLGxpbmVFbmRpbmdJZk5lZWRlZDpDLG9wdGlvbnM6ZSxyYXc6eixyZXN1bWU6eSxzZXREYXRhOngsdGFnOk19LGM9ZS5kZWZhdWx0TGluZUVuZGluZztyZXR1cm4gYjtmdW5jdGlvbiBiKGV0KXtsZXQgYnQ9LTEseWE9MCxlcz1bXSxycz1bXSxwcz1bXTtmb3IoOysrYnQ8ZXQubGVuZ3RoOykhYyYmKGV0W2J0XVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxldFtidF1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKSYmKGM9ZXRbYnRdWzJdLnNsaWNlU2VyaWFsaXplKGV0W2J0XVsxXSkpLChldFtidF1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fGV0W2J0XVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKSYmKGV0W2J0XVswXT09PSJlbnRlciI/ZXMucHVzaChidCk6dihldC5zbGljZShlcy5wb3AoKSxidCkpKSxldFtidF1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKGV0W2J0XVswXT09PSJlbnRlciI/KHBzPU1yKHBzLGV0LnNsaWNlKHlhLGJ0KSkseWE9YnQpOihycz1NcihycyxldC5zbGljZSh5YSxidCsxKSkseWE9YnQrMSkpO3JzPU1yKHJzLHBzKSxycz1NcihycyxldC5zbGljZSh5YSkpLGJ0PS0xO2xldCBucz1ycztmb3IocC5lbnRlci5udWxsJiZwLmVudGVyLm51bGwuY2FsbCh1KTsrK2J0PGV0Lmxlbmd0aDspe2xldCB0aT1wW25zW2J0XVswXV0sYWk9bnNbYnRdWzFdLnR5cGUsemU9dGlbYWldO1Y5dC5jYWxsKHRpLGFpKSYmemUmJnplLmNhbGwoe3NsaWNlU2VyaWFsaXplOm5zW2J0XVsyXS5zbGljZVNlcmlhbGl6ZSwuLi51fSxuc1tidF1bMV0pfXJldHVybiBwLmV4aXQubnVsbCYmcC5leGl0Lm51bGwuY2FsbCh1KSxyWzBdLmpvaW4oIiIpfWZ1bmN0aW9uIHYoZXQpe2xldCBidD1ldC5sZW5ndGgseWE9MCxlcz0wLHJzPSExLHBzO2Zvcig7Kyt5YTxidDspe2xldCBucz1ldFt5YV07aWYobnNbMV0uX2NvbnRhaW5lcilwcz12b2lkIDAsbnNbMF09PT0iZW50ZXIiP2VzKys6ZXMtLTtlbHNlIHN3aXRjaChuc1sxXS50eXBlKXtjYXNlImxpc3RJdGVtUHJlZml4Ijp7bnNbMF09PT0iZXhpdCImJihwcz0hMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpicmVhaztjYXNlImxpbmVFbmRpbmdCbGFuayI6e25zWzBdPT09ImVudGVyIiYmIWVzJiYocHM/cHM9dm9pZCAwOnJzPSEwKTticmVha31kZWZhdWx0OnBzPXZvaWQgMH19ZXRbMF1bMV0uX2xvb3NlPXJzfWZ1bmN0aW9uIHgoZXQsYnQpe2RbZXRdPWJ0fWZ1bmN0aW9uIG0oZXQpe3JldHVybiBkW2V0XX1mdW5jdGlvbiBmKCl7ci5wdXNoKFtdKX1mdW5jdGlvbiB5KCl7cmV0dXJuIHIucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gTShldCl7dCYmKHgoImxhc3RXYXNUYWciLCEwKSxyW3IubGVuZ3RoLTFdLnB1c2goZXQpKX1mdW5jdGlvbiB6KGV0KXt4KCJsYXN0V2FzVGFnIikscltyLmxlbmd0aC0xXS5wdXNoKGV0KX1mdW5jdGlvbiBOKCl7eihjfHxgCmApfWZ1bmN0aW9uIEMoKXtsZXQgZXQ9cltyLmxlbmd0aC0xXSxidD1ldFtldC5sZW5ndGgtMV0seWE9YnQ/YnQuY2hhckNvZGVBdChidC5sZW5ndGgtMSk6bnVsbDt5YT09PTEwfHx5YT09PTEzfHx5YT09PW51bGx8fE4oKX1mdW5jdGlvbiBfKGV0KXtyZXR1cm4gbSgiaWdub3JlRW5jb2RlIik/ZXQ6eGllKGV0KX1mdW5jdGlvbiBPKCl7eSgpfWZ1bmN0aW9uICQoZXQpe28ucHVzaCghZXQuX2xvb3NlKSxDKCksTSgiPG9sIikseCgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gRShldCl7by5wdXNoKCFldC5fbG9vc2UpLEMoKSxNKCI8dWwiKSx4KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBIKGV0KXtpZihtKCJleHBlY3RGaXJzdEl0ZW0iKSl7bGV0IGJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKGV0KSwxMCk7YnQhPT0xJiZNKCcgc3RhcnQ9IicrXyhTdHJpbmcoYnQpKSsnIicpfX1mdW5jdGlvbiBrKCl7bSgiZXhwZWN0Rmlyc3RJdGVtIik/TSgiPiIpOlAoKSxDKCksTSgiPGxpPiIpLHgoImV4cGVjdEZpcnN0SXRlbSIpLHgoImxhc3RXYXNUYWciKX1mdW5jdGlvbiBTKCl7UCgpLG8ucG9wKCksTigpLE0oIjwvb2w+Iil9ZnVuY3Rpb24gSSgpe1AoKSxvLnBvcCgpLE4oKSxNKCI8L3VsPiIpfWZ1bmN0aW9uIFAoKXttKCJsYXN0V2FzVGFnIikmJiFtKCJzbHVycEFsbExpbmVFbmRpbmdzIikmJkMoKSxNKCI8L2xpPiIpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBSKCl7by5wdXNoKCExKSxDKCksTSgiPGJsb2NrcXVvdGU+Iil9ZnVuY3Rpb24gSygpe28ucG9wKCksQygpLE0oIjwvYmxvY2txdW90ZT4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gVigpe29bby5sZW5ndGgtMV18fChDKCksTSgiPHA+IikpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBXKCl7b1tvLmxlbmd0aC0xXT94KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCk6TSgiPC9wPiIpfWZ1bmN0aW9uIG1lKCl7QygpLE0oIjxwcmU+PGNvZGUiKSx4KCJmZW5jZXNDb3VudCIsMCl9ZnVuY3Rpb24gQigpe2xldCBldD15KCk7TSgnIGNsYXNzPSJsYW5ndWFnZS0nK2V0KyciJyl9ZnVuY3Rpb24gVSgpe2xldCBldD1tKCJmZW5jZXNDb3VudCIpfHwwO2V0fHwoTSgiPiIpLHgoInNsdXJwT25lTGluZUVuZGluZyIsITApKSx4KCJmZW5jZXNDb3VudCIsZXQrMSl9ZnVuY3Rpb24gaGUoKXtDKCksTSgiPHByZT48Y29kZT4iKX1mdW5jdGlvbiBGKCl7bGV0IGV0PW0oImZlbmNlc0NvdW50Iik7ZXQhPT12b2lkIDAmJmV0PDImJmQudGlnaHRTdGFjay5sZW5ndGg+MCYmIW0oImxhc3RXYXNUYWciKSYmTigpLG0oImZsb3dDb2RlU2VlbkRhdGEiKSYmQygpLE0oIjwvY29kZT48L3ByZT4iKSxldCE9PXZvaWQgMCYmZXQ8MiYmQygpLHgoImZsb3dDb2RlU2VlbkRhdGEiKSx4KCJmZW5jZXNDb3VudCIpLHgoInNsdXJwT25lTGluZUVuZGluZyIpfWZ1bmN0aW9uIGooKXtuLnB1c2goe2ltYWdlOiEwfSksdD12b2lkIDB9ZnVuY3Rpb24gdWUoKXtuLnB1c2goe30pfWZ1bmN0aW9uIGxlKGV0KXtuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShldCl9ZnVuY3Rpb24gUSgpe25bbi5sZW5ndGgtMV0ubGFiZWw9eSgpfWZ1bmN0aW9uIGllKGV0KXtuW24ubGVuZ3RoLTFdLnJlZmVyZW5jZUlkPXRoaXMuc2xpY2VTZXJpYWxpemUoZXQpfWZ1bmN0aW9uIHRlKCl7ZigpLG5bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249IiJ9ZnVuY3Rpb24gZWUoKXtmKCkseCgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24ga2UoKXtuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXkoKSx4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBYKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gWigpe2xldCBldD1uLmxlbmd0aC0xLGJ0PW5bZXRdLHlhPWJ0LnJlZmVyZW5jZUlkfHxidC5sYWJlbElkLGVzPWJ0LmRlc3RpbmF0aW9uPT09dm9pZCAwP2FbSGkoeWEpXTpidDtmb3IodD0hMDtldC0tOylpZihuW2V0XS5pbWFnZSl7dD12b2lkIDA7YnJlYWt9YnQuaW1hZ2U/KE0oJzxpbWcgc3JjPSInK3hkKGVzLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6Y0ZhKSsnIiBhbHQ9IicpLHooYnQubGFiZWwpLE0oJyInKSk6TSgnPGEgaHJlZj0iJyt4ZChlcy5kZXN0aW5hdGlvbixlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOlU5dCkrJyInKSxNKGVzLnRpdGxlPycgdGl0bGU9IicrZXMudGl0bGUrJyInOiIiKSxidC5pbWFnZT9NKCIgLz4iKTooTSgiPiIpLHooYnQubGFiZWwpLE0oIjwvYT4iKSksbi5wb3AoKX1mdW5jdGlvbiB5ZSgpe2YoKSxuLnB1c2goe30pfWZ1bmN0aW9uIHEoZXQpe3koKSxuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShldCl9ZnVuY3Rpb24gQSgpe2YoKSx4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBzZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHgoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIG9lKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gYWUoKXtsZXQgZXQ9bltuLmxlbmd0aC0xXSxidD1IaShldC5sYWJlbElkKTt5KCksVjl0LmNhbGwoYSxidCl8fChhW2J0XT1uW24ubGVuZ3RoLTFdKSxuLnBvcCgpfWZ1bmN0aW9uIFRlKCl7eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIFJlKGV0KXttKCJoZWFkaW5nUmFuayIpfHwoeCgiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoZXQpLmxlbmd0aCksQygpLE0oIjxoIittKCJoZWFkaW5nUmFuayIpKyI+IikpfWZ1bmN0aW9uIEJlKCl7ZigpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBHZSgpe3goInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBEZSgpe00oIjwvaCIrbSgiaGVhZGluZ1JhbmsiKSsiPiIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gX2UoZXQpe3goImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKGV0KS5jaGFyQ29kZUF0KDApPT09NjE/MToyKX1mdW5jdGlvbiBDZSgpe2xldCBldD15KCk7QygpLE0oIjxoIittKCJoZWFkaW5nUmFuayIpKyI+IikseihldCksTSgiPC9oIittKCJoZWFkaW5nUmFuayIpKyI+IikseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gdmUoZXQpe3ooXyh0aGlzLnNsaWNlU2VyaWFsaXplKGV0KSkpfWZ1bmN0aW9uIGJlKGV0KXtpZighbSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZihtKCJzbHVycE9uZUxpbmVFbmRpbmciKSl7eCgic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKG0oImluQ29kZVRleHQiKSl7eigiICIpO3JldHVybn16KF8odGhpcy5zbGljZVNlcmlhbGl6ZShldCkpKX19ZnVuY3Rpb24gRWUoZXQpe3ooXyh0aGlzLnNsaWNlU2VyaWFsaXplKGV0KSkpLHgoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBqZSgpe00oIjxiciAvPiIpfWZ1bmN0aW9uIFdlKCl7QygpLE1lKCl9ZnVuY3Rpb24gc3QoKXt4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBNZSgpe2UuYWxsb3dEYW5nZXJvdXNIdG1sJiZ4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBnZSgpe00oIjxlbT4iKX1mdW5jdGlvbiBJZSgpe00oIjxzdHJvbmc+Iil9ZnVuY3Rpb24gY2UoKXt4KCJpbkNvZGVUZXh0IiwhMCksTSgiPGNvZGU+Iil9ZnVuY3Rpb24gZGUoKXt4KCJpbkNvZGVUZXh0IiksTSgiPC9jb2RlPiIpfWZ1bmN0aW9uIExlKCl7TSgiPC9lbT4iKX1mdW5jdGlvbiBLZSgpe00oIjwvc3Ryb25nPiIpfWZ1bmN0aW9uIFllKCl7QygpLE0oIjxociAvPiIpfWZ1bmN0aW9uIG90KGV0KXt4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixldC50eXBlKX1mdW5jdGlvbiBVdChldCl7bGV0IGJ0PXRoaXMuc2xpY2VTZXJpYWxpemUoZXQpLHlhPW0oImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT9KOShidCxtKCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpOlpwKGJ0KTt6KF8oeWEpKSx4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIil9ZnVuY3Rpb24gWnQoZXQpe2xldCBidD10aGlzLnNsaWNlU2VyaWFsaXplKGV0KTtNKCc8YSBocmVmPSInK3hkKGJ0LGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6VTl0KSsnIj4nKSx6KF8oYnQpKSxNKCI8L2E+Iil9ZnVuY3Rpb24gamEoZXQpe2xldCBidD10aGlzLnNsaWNlU2VyaWFsaXplKGV0KTtNKCc8YSBocmVmPSInK3hkKCJtYWlsdG86IitidCkrJyI+JykseihfKGJ0KSksTSgiPC9hPiIpfX12YXIgVjl0LFU5dCxjRmEseW1lPWcoKCk9PntkaygpO2JkKCk7dmllKCk7aGllKCk7cWZlKCk7WXAoKTt5ZCgpO1Y5dD17fS5oYXNPd25Qcm9wZXJ0eSxVOXQ9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxjRmE9L15odHRwcz8kL2k7aSh4bWUsImNvbXBpbGUiKX0pO2Z1bmN0aW9uIGRGYShzKXtsZXQgZT1zLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCxhLHIpLHQ7cmV0dXJuIGU7ZnVuY3Rpb24gYShsKXtpZihsPT09bnVsbCl7cy5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gcy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShsKSxzLmV4aXQoImxpbmVFbmRpbmciKSxLdChzLGUsImxpbmVQcmVmaXgiKX1mdW5jdGlvbiByKGwpe3JldHVybiBzLmVudGVyKCJwYXJhZ3JhcGgiKSxuKGwpfWZ1bmN0aW9uIG4obCl7bGV0IHA9cy5lbnRlcigiY2h1bmtUZXh0Iix7Y29udGVudFR5cGU6InRleHQiLHByZXZpb3VzOnR9KTtyZXR1cm4gdCYmKHQubmV4dD1wKSx0PXAsbyhsKX1mdW5jdGlvbiBvKGwpe2lmKGw9PT1udWxsKXtzLmV4aXQoImNodW5rVGV4dCIpLHMuZXhpdCgicGFyYWdyYXBoIikscy5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gdnQobCk/KHMuY29uc3VtZShsKSxzLmV4aXQoImNodW5rVGV4dCIpLG4pOihzLmNvbnN1bWUobCksbyl9fXZhciBXOXQsRzl0PWcoKCk9PntpcigpO1ZhKCk7Vzl0PXt0b2tlbml6ZTpkRmF9O2koZEZhLCJpbml0aWFsaXplQ29udGVudCIpfSk7ZnVuY3Rpb24gdUZhKHMpe2xldCBlPXRoaXMsdD1bXSxhPTAscixuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbCh6KXtpZihhPHQubGVuZ3RoKXtsZXQgTj10W2FdO3JldHVybiBlLmNvbnRhaW5lclN0YXRlPU5bMV0scy5hdHRlbXB0KE5bMF0uY29udGludWF0aW9uLHAsZCkoeil9cmV0dXJuIGQoeil9ZnVuY3Rpb24gcCh6KXtpZihhKyssZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KXtlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLHImJk0oKTtsZXQgTj1lLmV2ZW50cy5sZW5ndGgsQz1OLF87Zm9yKDtDLS07KWlmKGUuZXZlbnRzW0NdWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tDXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe189ZS5ldmVudHNbQ11bMV0uZW5kO2JyZWFrfXkoYSk7bGV0IE89Tjtmb3IoO088ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1tPXVsxXS5lbmQ9ey4uLl99LE8rKztyZXR1cm4gc3IoZS5ldmVudHMsQysxLDAsZS5ldmVudHMuc2xpY2UoTikpLGUuZXZlbnRzLmxlbmd0aD1PLGQoeil9cmV0dXJuIGwoeil9ZnVuY3Rpb24gZCh6KXtpZihhPT09dC5sZW5ndGgpe2lmKCFyKXJldHVybiBiKHopO2lmKHIuY3VycmVudENvbnN0cnVjdCYmci5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKXJldHVybiB4KHopO2UuaW50ZXJydXB0PSEhKHIuY3VycmVudENvbnN0cnVjdCYmIXIuX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2spfXJldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHMuY2hlY2soSzl0LHUsYykoeil9ZnVuY3Rpb24gdSh6KXtyZXR1cm4gciYmTSgpLHkoYSksYih6KX1mdW5jdGlvbiBjKHope3JldHVybiBlLnBhcnNlci5sYXp5W2Uubm93KCkubGluZV09YSE9PXQubGVuZ3RoLG89ZS5ub3coKS5vZmZzZXQseCh6KX1mdW5jdGlvbiBiKHope3JldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHMuYXR0ZW1wdChLOXQsdix4KSh6KX1mdW5jdGlvbiB2KHope3JldHVybiBhKyssdC5wdXNoKFtlLmN1cnJlbnRDb25zdHJ1Y3QsZS5jb250YWluZXJTdGF0ZV0pLGIoeil9ZnVuY3Rpb24geCh6KXtpZih6PT09bnVsbCl7ciYmTSgpLHkoMCkscy5jb25zdW1lKHopO3JldHVybn1yZXR1cm4gcj1yfHxlLnBhcnNlci5mbG93KGUubm93KCkpLHMuZW50ZXIoImNodW5rRmxvdyIse190b2tlbml6ZXI6cixjb250ZW50VHlwZToiZmxvdyIscHJldmlvdXM6bn0pLG0oeil9ZnVuY3Rpb24gbSh6KXtpZih6PT09bnVsbCl7ZihzLmV4aXQoImNodW5rRmxvdyIpLCEwKSx5KDApLHMuY29uc3VtZSh6KTtyZXR1cm59cmV0dXJuIHZ0KHopPyhzLmNvbnN1bWUoeiksZihzLmV4aXQoImNodW5rRmxvdyIpKSxhPTAsZS5pbnRlcnJ1cHQ9dm9pZCAwLGwpOihzLmNvbnN1bWUoeiksbSl9ZnVuY3Rpb24gZih6LE4pe2xldCBDPWUuc2xpY2VTdHJlYW0oeik7aWYoTiYmQy5wdXNoKG51bGwpLHoucHJldmlvdXM9bixuJiYobi5uZXh0PXopLG49eixyLmRlZmluZVNraXAoei5zdGFydCksci53cml0ZShDKSxlLnBhcnNlci5sYXp5W3ouc3RhcnQubGluZV0pe2xldCBfPXIuZXZlbnRzLmxlbmd0aDtmb3IoO18tLTspaWYoci5ldmVudHNbX11bMV0uc3RhcnQub2Zmc2V0PG8mJighci5ldmVudHNbX11bMV0uZW5kfHxyLmV2ZW50c1tfXVsxXS5lbmQub2Zmc2V0Pm8pKXJldHVybjtsZXQgTz1lLmV2ZW50cy5sZW5ndGgsJD1PLEUsSDtmb3IoOyQtLTspaWYoZS5ldmVudHNbJF1bMF09PT0iZXhpdCImJmUuZXZlbnRzWyRdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7aWYoRSl7SD1lLmV2ZW50c1skXVsxXS5lbmQ7YnJlYWt9RT0hMH1mb3IoeShhKSxfPU87XzxlLmV2ZW50cy5sZW5ndGg7KWUuZXZlbnRzW19dWzFdLmVuZD17Li4uSH0sXysrO3NyKGUuZXZlbnRzLCQrMSwwLGUuZXZlbnRzLnNsaWNlKE8pKSxlLmV2ZW50cy5sZW5ndGg9X319ZnVuY3Rpb24geSh6KXtsZXQgTj10Lmxlbmd0aDtmb3IoO04tLSA+ejspe2xldCBDPXRbTl07ZS5jb250YWluZXJTdGF0ZT1DWzFdLENbMF0uZXhpdC5jYWxsKGUscyl9dC5sZW5ndGg9en1mdW5jdGlvbiBNKCl7ci53cml0ZShbbnVsbF0pLG49dm9pZCAwLHI9dm9pZCAwLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDB9fWZ1bmN0aW9uIHBGYShzLGUsdCl7cmV0dXJuIEt0KHMscy5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZG9jdW1lbnQsZSx0KSwibGluZVByZWZpeCIsdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KX12YXIgWTl0LEs5dCxaOXQ9ZygoKT0+e2lyKCk7VmEoKTtiZCgpO1k5dD17dG9rZW5pemU6dUZhfSxLOXQ9e3Rva2VuaXplOnBGYX07aSh1RmEsImluaXRpYWxpemVEb2N1bWVudCIpO2kocEZhLCJ0b2tlbml6ZUNvbnRhaW5lciIpfSk7ZnVuY3Rpb24gaEZhKHMpe2xldCBlPXRoaXMsdD1zLmF0dGVtcHQod2QsYSxzLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxyLEt0KHMscy5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxyLHMuYXR0ZW1wdChZZmUscikpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gdDtmdW5jdGlvbiBhKG4pe2lmKG49PT1udWxsKXtzLmNvbnN1bWUobik7cmV0dXJufXJldHVybiBzLmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSxzLmNvbnN1bWUobikscy5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHR9ZnVuY3Rpb24gcihuKXtpZihuPT09bnVsbCl7cy5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gcy5lbnRlcigibGluZUVuZGluZyIpLHMuY29uc3VtZShuKSxzLmV4aXQoImxpbmVFbmRpbmciKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHR9fXZhciBYOXQsUTl0PWcoKCk9PntMaWUoKTtpcigpO1ZhKCk7WDl0PXt0b2tlbml6ZTpoRmF9O2koaEZhLCJpbml0aWFsaXplRmxvdyIpfSk7ZnVuY3Rpb24gSjl0KHMpe3JldHVybntyZXNvbHZlQWxsOmVidChzPT09InRleHQiP2ZGYTp2b2lkIDApLHRva2VuaXplOmV9O2Z1bmN0aW9uIGUodCl7bGV0IGE9dGhpcyxyPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbc10sbj10LmF0dGVtcHQocixvLGwpO3JldHVybiBvO2Z1bmN0aW9uIG8odSl7cmV0dXJuIGQodSk/bih1KTpsKHUpfWZ1bmN0aW9uIGwodSl7aWYodT09PW51bGwpe3QuY29uc3VtZSh1KTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImRhdGEiKSx0LmNvbnN1bWUodSkscH1mdW5jdGlvbiBwKHUpe3JldHVybiBkKHUpPyh0LmV4aXQoImRhdGEiKSxuKHUpKToodC5jb25zdW1lKHUpLHApfWZ1bmN0aW9uIGQodSl7aWYodT09PW51bGwpcmV0dXJuITA7bGV0IGM9clt1XSxiPS0xO2lmKGMpZm9yKDsrK2I8Yy5sZW5ndGg7KXtsZXQgdj1jW2JdO2lmKCF2LnByZXZpb3VzfHx2LnByZXZpb3VzLmNhbGwoYSxhLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fWZ1bmN0aW9uIGVidChzKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQsYSl7bGV0IHI9LTEsbjtmb3IoOysrcjw9dC5sZW5ndGg7KW49PT12b2lkIDA/dFtyXSYmdFtyXVsxXS50eXBlPT09ImRhdGEiJiYobj1yLHIrKyk6KCF0W3JdfHx0W3JdWzFdLnR5cGUhPT0iZGF0YSIpJiYociE9PW4rMiYmKHRbbl1bMV0uZW5kPXRbci0xXVsxXS5lbmQsdC5zcGxpY2UobisyLHItbi0yKSxyPW4rMiksbj12b2lkIDApO3JldHVybiBzP3ModCxhKTp0fX1mdW5jdGlvbiBmRmEocyxlKXtsZXQgdD0wO2Zvcig7Kyt0PD1zLmxlbmd0aDspaWYoKHQ9PT1zLmxlbmd0aHx8c1t0XVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmc1t0LTFdWzFdLnR5cGU9PT0iZGF0YSIpe2xldCBhPXNbdC0xXVsxXSxyPWUuc2xpY2VTdHJlYW0oYSksbj1yLmxlbmd0aCxvPS0xLGw9MCxwO2Zvcig7bi0tOyl7bGV0IGQ9cltuXTtpZih0eXBlb2YgZD09InN0cmluZyIpe2ZvcihvPWQubGVuZ3RoO2QuY2hhckNvZGVBdChvLTEpPT09MzI7KWwrKyxvLS07aWYobylicmVhaztvPS0xfWVsc2UgaWYoZD09PS0yKXA9ITAsbCsrO2Vsc2UgaWYoZCE9PS0xKXtuKys7YnJlYWt9fWlmKGUuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiZ0PT09cy5sZW5ndGgmJihsPTApLGwpe2xldCBkPXt0eXBlOnQ9PT1zLmxlbmd0aHx8cHx8bDwyPyJsaW5lU3VmZml4IjoiaGFyZEJyZWFrVHJhaWxpbmciLHN0YXJ0OntfYnVmZmVySW5kZXg6bj9vOmEuc3RhcnQuX2J1ZmZlckluZGV4K28sX2luZGV4OmEuc3RhcnQuX2luZGV4K24sbGluZTphLmVuZC5saW5lLGNvbHVtbjphLmVuZC5jb2x1bW4tbCxvZmZzZXQ6YS5lbmQub2Zmc2V0LWx9LGVuZDp7Li4uYS5lbmR9fTthLmVuZD17Li4uZC5zdGFydH0sYS5zdGFydC5vZmZzZXQ9PT1hLmVuZC5vZmZzZXQ/T2JqZWN0LmFzc2lnbihhLGQpOihzLnNwbGljZSh0LDAsWyJlbnRlciIsZCxlXSxbImV4aXQiLGQsZV0pLHQrPTIpfXQrK31yZXR1cm4gc312YXIgdGJ0LGFidCxzYnQsd21lPWcoKCk9Pnt0YnQ9e3Jlc29sdmVBbGw6ZWJ0KCl9LGFidD1KOXQoInN0cmluZyIpLHNidD1KOXQoInRleHQiKTtpKEo5dCwiaW5pdGlhbGl6ZUZhY3RvcnkiKTtpKGVidCwiY3JlYXRlUmVzb2x2ZXIiKTtpKGZGYSwicmVzb2x2ZUFsbExpbmVTdWZmaXhlcyIpfSk7dmFyIGttZT17fTt5dChrbWUse2F0dGVudGlvbk1hcmtlcnM6KCk9PmtGYSxjb250ZW50SW5pdGlhbDooKT0+Z0ZhLGRpc2FibGU6KCk9PlNGYSxkb2N1bWVudDooKT0+bUZhLGZsb3c6KCk9PnZGYSxmbG93SW5pdGlhbDooKT0+YkZhLGluc2lkZVNwYW46KCk9PndGYSxzdHJpbmc6KCk9PnhGYSx0ZXh0OigpPT55RmF9KTt2YXIgbUZhLGdGYSxiRmEsdkZhLHhGYSx5RmEsd0ZhLGtGYSxTRmEsaWJ0PWcoKCk9PntMaWUoKTt3bWUoKTttRmE9ezQyOmVuLDQzOmVuLDQ1OmVuLDQ4OmVuLDQ5OmVuLDUwOmVuLDUxOmVuLDUyOmVuLDUzOmVuLDU0OmVuLDU1OmVuLDU2OmVuLDU3OmVuLDYyOndpZX0sZ0ZhPXs5MTplbWV9LGJGYT17Wy0yXTpoayxbLTFdOmhrLDMyOmhrfSx2RmE9ezM1OmFtZSw0MjpFMyw0NTpbRGllLEUzXSw2MDppbWUsNjE6RGllLDk1OkUzLDk2Ol9pZSwxMjY6X2llfSx4RmE9ezM4OlNpZSw5MjpraWV9LHlGYT17Wy01XTpnayxbLTRdOmdrLFstM106Z2ssMzM6b21lLDM4OlNpZSw0Mjpwayw2MDpbVWZlLHJtZV0sOTE6bm1lLDkyOlt0bWUsa2llXSw5MzpMMyw5NTpwayw5NjpXZmV9LHdGYT17bnVsbDpbcGssdGJ0XX0sa0ZhPXtudWxsOls0Miw5NV19LFNGYT17bnVsbDpbXX19KTtmdW5jdGlvbiByYnQocyxlLHQpe2xldCBhPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTp0JiZ0LmxpbmV8fDEsY29sdW1uOnQmJnQuY29sdW1ufHwxLG9mZnNldDp0JiZ0Lm9mZnNldHx8MH0scj17fSxuPVtdLG89W10sbD1bXSxwPSEwLGQ9e2F0dGVtcHQ6RShPKSxjaGVjazpFKCQpLGNvbnN1bWU6TixlbnRlcjpDLGV4aXQ6XyxpbnRlcnJ1cHQ6RSgkLHtpbnRlcnJ1cHQ6ITB9KX0sdT17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eSxldmVudHM6W10sbm93OmYscGFyc2VyOnMscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp4LHNsaWNlU3RyZWFtOm0sd3JpdGU6dn0sYz1lLnRva2VuaXplLmNhbGwodSxkKSxiO3JldHVybiBlLnJlc29sdmVBbGwmJm4ucHVzaChlKSx1O2Z1bmN0aW9uIHYoSSl7cmV0dXJuIG89TXIobyxJKSxNKCksb1tvLmxlbmd0aC0xXSE9PW51bGw/W106KEgoZSwwKSx1LmV2ZW50cz1YcChuLHUuZXZlbnRzLHUpLHUuZXZlbnRzKX1pKHYsIndyaXRlIik7ZnVuY3Rpb24geChJLFApe3JldHVybiBNRmEobShJKSxQKX1pKHgsInNsaWNlU2VyaWFsaXplIik7ZnVuY3Rpb24gbShJKXtyZXR1cm4gX0ZhKG8sSSl9aShtLCJzbGljZVN0cmVhbSIpO2Z1bmN0aW9uIGYoKXtsZXR7X2J1ZmZlckluZGV4OkksX2luZGV4OlAsbGluZTpSLGNvbHVtbjpLLG9mZnNldDpWfT1hO3JldHVybntfYnVmZmVySW5kZXg6SSxfaW5kZXg6UCxsaW5lOlIsY29sdW1uOkssb2Zmc2V0OlZ9fWkoZiwibm93Iik7ZnVuY3Rpb24geShJKXtyW0kubGluZV09SS5jb2x1bW4sUygpfWkoeSwiZGVmaW5lU2tpcCIpO2Z1bmN0aW9uIE0oKXtsZXQgSTtmb3IoO2EuX2luZGV4PG8ubGVuZ3RoOyl7bGV0IFA9b1thLl9pbmRleF07aWYodHlwZW9mIFA9PSJzdHJpbmciKWZvcihJPWEuX2luZGV4LGEuX2J1ZmZlckluZGV4PDAmJihhLl9idWZmZXJJbmRleD0wKTthLl9pbmRleD09PUkmJmEuX2J1ZmZlckluZGV4PFAubGVuZ3RoOyl6KFAuY2hhckNvZGVBdChhLl9idWZmZXJJbmRleCkpO2Vsc2UgeihQKX19aShNLCJtYWluIik7ZnVuY3Rpb24geihJKXtwPXZvaWQgMCxiPUksYz1jKEkpfWkoeiwiZ28iKTtmdW5jdGlvbiBOKEkpe3Z0KEkpPyhhLmxpbmUrKyxhLmNvbHVtbj0xLGEub2Zmc2V0Kz1JPT09LTM/MjoxLFMoKSk6SSE9PS0xJiYoYS5jb2x1bW4rKyxhLm9mZnNldCsrKSxhLl9idWZmZXJJbmRleDwwP2EuX2luZGV4Kys6KGEuX2J1ZmZlckluZGV4KyssYS5fYnVmZmVySW5kZXg9PT1vW2EuX2luZGV4XS5sZW5ndGgmJihhLl9idWZmZXJJbmRleD0tMSxhLl9pbmRleCsrKSksdS5wcmV2aW91cz1JLHA9ITB9aShOLCJjb25zdW1lIik7ZnVuY3Rpb24gQyhJLFApe2xldCBSPVB8fHt9O3JldHVybiBSLnR5cGU9SSxSLnN0YXJ0PWYoKSx1LmV2ZW50cy5wdXNoKFsiZW50ZXIiLFIsdV0pLGwucHVzaChSKSxSfWkoQywiZW50ZXIiKTtmdW5jdGlvbiBfKEkpe2xldCBQPWwucG9wKCk7cmV0dXJuIFAuZW5kPWYoKSx1LmV2ZW50cy5wdXNoKFsiZXhpdCIsUCx1XSksUH1pKF8sImV4aXQiKTtmdW5jdGlvbiBPKEksUCl7SChJLFAuZnJvbSl9aShPLCJvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QiKTtmdW5jdGlvbiAkKEksUCl7UC5yZXN0b3JlKCl9aSgkLCJvbnN1Y2Nlc3NmdWxjaGVjayIpO2Z1bmN0aW9uIEUoSSxQKXtyZXR1cm4gUjtmdW5jdGlvbiBSKEssVixXKXtsZXQgbWUsQixVLGhlO3JldHVybiBBcnJheS5pc0FycmF5KEspP2ooSyk6InRva2VuaXplImluIEs/aihbS10pOkYoSyk7ZnVuY3Rpb24gRihpZSl7cmV0dXJuIHRlO2Z1bmN0aW9uIHRlKGVlKXtsZXQga2U9ZWUhPT1udWxsJiZpZVtlZV0sWD1lZSE9PW51bGwmJmllLm51bGwsWj1bLi4uQXJyYXkuaXNBcnJheShrZSk/a2U6a2U/W2tlXTpbXSwuLi5BcnJheS5pc0FycmF5KFgpP1g6WD9bWF06W11dO3JldHVybiBqKFopKGVlKX19ZnVuY3Rpb24gaihpZSl7cmV0dXJuIG1lPWllLEI9MCxpZS5sZW5ndGg9PT0wP1c6dWUoaWVbQl0pfWZ1bmN0aW9uIHVlKGllKXtyZXR1cm4gdGU7ZnVuY3Rpb24gdGUoZWUpe3JldHVybiBoZT1rKCksVT1pZSxpZS5wYXJ0aWFsfHwodS5jdXJyZW50Q29uc3RydWN0PWllKSxpZS5uYW1lJiZ1LnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcyhpZS5uYW1lKT9RKGVlKTppZS50b2tlbml6ZS5jYWxsKFA/T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKHUpLFApOnUsZCxsZSxRKShlZSl9fWZ1bmN0aW9uIGxlKGllKXtyZXR1cm4gcD0hMCxJKFUsaGUpLFZ9ZnVuY3Rpb24gUShpZSl7cmV0dXJuIHA9ITAsaGUucmVzdG9yZSgpLCsrQjxtZS5sZW5ndGg/dWUobWVbQl0pOld9fX1pKEUsImNvbnN0cnVjdEZhY3RvcnkiKTtmdW5jdGlvbiBIKEksUCl7SS5yZXNvbHZlQWxsJiYhbi5pbmNsdWRlcyhJKSYmbi5wdXNoKEkpLEkucmVzb2x2ZSYmc3IodS5ldmVudHMsUCx1LmV2ZW50cy5sZW5ndGgtUCxJLnJlc29sdmUodS5ldmVudHMuc2xpY2UoUCksdSkpLEkucmVzb2x2ZVRvJiYodS5ldmVudHM9SS5yZXNvbHZlVG8odS5ldmVudHMsdSkpfWkoSCwiYWRkUmVzdWx0Iik7ZnVuY3Rpb24gaygpe2xldCBJPWYoKSxQPXUucHJldmlvdXMsUj11LmN1cnJlbnRDb25zdHJ1Y3QsSz11LmV2ZW50cy5sZW5ndGgsVj1BcnJheS5mcm9tKGwpO3JldHVybntmcm9tOksscmVzdG9yZTpXfTtmdW5jdGlvbiBXKCl7YT1JLHUucHJldmlvdXM9UCx1LmN1cnJlbnRDb25zdHJ1Y3Q9Uix1LmV2ZW50cy5sZW5ndGg9SyxsPVYsUygpfX1pKGssInN0b3JlIik7ZnVuY3Rpb24gUygpe2EubGluZSBpbiByJiZhLmNvbHVtbjwyJiYoYS5jb2x1bW49clthLmxpbmVdLGEub2Zmc2V0Kz1yW2EubGluZV0tMSl9aShTLCJhY2NvdW50Rm9yUG90ZW50aWFsU2tpcCIpfWZ1bmN0aW9uIF9GYShzLGUpe2xldCB0PWUuc3RhcnQuX2luZGV4LGE9ZS5zdGFydC5fYnVmZmVySW5kZXgscj1lLmVuZC5faW5kZXgsbj1lLmVuZC5fYnVmZmVySW5kZXgsbztpZih0PT09cilvPVtzW3RdLnNsaWNlKGEsbildO2Vsc2V7aWYobz1zLnNsaWNlKHQsciksYT4tMSl7bGV0IGw9b1swXTt0eXBlb2YgbD09InN0cmluZyI/b1swXT1sLnNsaWNlKGEpOm8uc2hpZnQoKX1uPjAmJm8ucHVzaChzW3JdLnNsaWNlKDAsbikpfXJldHVybiBvfWZ1bmN0aW9uIE1GYShzLGUpe2xldCB0PS0xLGE9W10scjtmb3IoOysrdDxzLmxlbmd0aDspe2xldCBuPXNbdF0sbztpZih0eXBlb2Ygbj09InN0cmluZyIpbz1uO2Vsc2Ugc3dpdGNoKG4pe2Nhc2UtNTp7bz0iXHIiO2JyZWFrfWNhc2UtNDp7bz1gCmA7YnJlYWt9Y2FzZS0zOntvPWBccgpgO2JyZWFrfWNhc2UtMjp7bz1lPyIgIjoiCSI7YnJlYWt9Y2FzZS0xOntpZighZSYmciljb250aW51ZTtvPSIgIjticmVha31kZWZhdWx0Om89U3RyaW5nLmZyb21DaGFyQ29kZShuKX1yPW49PT0tMixhLnB1c2gobyl9cmV0dXJuIGEuam9pbigiIil9dmFyIG9idD1nKCgpPT57VmEoKTtiZCgpO3VrKCk7aShyYnQsImNyZWF0ZVRva2VuaXplciIpO2koX0ZhLCJzbGljZUNodW5rcyIpO2koTUZhLCJzZXJpYWxpemVDaHVua3MiKX0pO2Z1bmN0aW9uIGJrKHMpe2xldCBhPXtjb25zdHJ1Y3RzOmdpZShba21lLC4uLihzfHx7fSkuZXh0ZW5zaW9uc3x8W11dKSxjb250ZW50OnIoVzl0KSxkZWZpbmVkOltdLGRvY3VtZW50OnIoWTl0KSxmbG93OnIoWDl0KSxsYXp5Ont9LHN0cmluZzpyKGFidCksdGV4dDpyKHNidCl9O3JldHVybiBhO2Z1bmN0aW9uIHIobil7cmV0dXJuIG87ZnVuY3Rpb24gbyhsKXtyZXR1cm4gcmJ0KGEsbixsKX19fXZhciBTbWU9ZygoKT0+e3ZpZSgpO0c5dCgpO1o5dCgpO1E5dCgpO3dtZSgpO2lidCgpO29idCgpO2koYmssInBhcnNlIil9KTtmdW5jdGlvbiB2ayhzKXtmb3IoOyFNaWUocyk7KTtyZXR1cm4gc312YXIgX21lPWcoKCk9PntLZmUoKTtpKHZrLCJwb3N0cHJvY2VzcyIpfSk7ZnVuY3Rpb24geGsoKXtsZXQgcz0xLGU9IiIsdD0hMCxhO3JldHVybiByO2Z1bmN0aW9uIHIobixvLGwpe2xldCBwPVtdLGQsdSxjLGIsdjtmb3Iobj1lKyh0eXBlb2Ygbj09InN0cmluZyI/bi50b1N0cmluZygpOm5ldyBUZXh0RGVjb2RlcihvfHx2b2lkIDApLmRlY29kZShuKSksYz0wLGU9IiIsdCYmKG4uY2hhckNvZGVBdCgwKT09PTY1Mjc5JiZjKyssdD12b2lkIDApO2M8bi5sZW5ndGg7KXtpZihuYnQubGFzdEluZGV4PWMsZD1uYnQuZXhlYyhuKSxiPWQmJmQuaW5kZXghPT12b2lkIDA/ZC5pbmRleDpuLmxlbmd0aCx2PW4uY2hhckNvZGVBdChiKSwhZCl7ZT1uLnNsaWNlKGMpO2JyZWFrfWlmKHY9PT0xMCYmYz09PWImJmEpcC5wdXNoKC0zKSxhPXZvaWQgMDtlbHNlIHN3aXRjaChhJiYocC5wdXNoKC01KSxhPXZvaWQgMCksYzxiJiYocC5wdXNoKG4uc2xpY2UoYyxiKSkscys9Yi1jKSx2KXtjYXNlIDA6e3AucHVzaCg2NTUzMykscysrO2JyZWFrfWNhc2UgOTp7Zm9yKHU9TWF0aC5jZWlsKHMvNCkqNCxwLnB1c2goLTIpO3MrKzx1OylwLnB1c2goLTEpO2JyZWFrfWNhc2UgMTA6e3AucHVzaCgtNCkscz0xO2JyZWFrfWRlZmF1bHQ6YT0hMCxzPTF9Yz1iKzF9cmV0dXJuIGwmJihhJiZwLnB1c2goLTUpLGUmJnAucHVzaChlKSxwLnB1c2gobnVsbCkpLHB9fXZhciBuYnQsTW1lPWcoKCk9PntuYnQ9L1tcMFx0XG5ccl0vZztpKHhrLCJwcmVwcm9jZXNzIil9KTtmdW5jdGlvbiBLdWkocyxlLHQpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyImJih0PWUsZT12b2lkIDApLHhtZSh0KSh2ayhiayh0KS5kb2N1bWVudCgpLndyaXRlKHhrKCkocyxlLCEwKSkpKX12YXIgbGJ0PWcoKCk9Pnt5bWUoKTtTbWUoKTtfbWUoKTtNbWUoKTt5bWUoKTtTbWUoKTtfbWUoKTtNbWUoKTtpKEt1aSwibWljcm9tYXJrIil9KTtmdW5jdGlvbiB6bWUocyxlLHQpe3JldHVybiBlJiZ0eXBlb2YgZT09Im9iamVjdCImJih0PWUsZT12b2lkIDApLHpGYSh0KSh2ayhiayh0KS5kb2N1bWVudCgpLndyaXRlKHhrKCkocyxlLCEwKSkpKX1mdW5jdGlvbiB6RmEocyl7bGV0IGU9e3RyYW5zZm9ybXM6W10sY2FuQ29udGFpbkVvbHM6WyJlbXBoYXNpcyIsImZyYWdtZW50IiwiaGVhZGluZyIsInBhcmFncmFwaCIsInN0cm9uZyJdLGVudGVyOnthdXRvbGluazpuKGFlKSxhdXRvbGlua1Byb3RvY29sOkUsYXV0b2xpbmtFbWFpbDpFLGF0eEhlYWRpbmc6bihxKSxibG9ja1F1b3RlOm4oZWUpLGNoYXJhY3RlckVzY2FwZTpFLGNoYXJhY3RlclJlZmVyZW5jZTpFLGNvZGVGZW5jZWQ6bihrZSksY29kZUZlbmNlZEZlbmNlSW5mbzpvLGNvZGVGZW5jZWRGZW5jZU1ldGE6byxjb2RlSW5kZW50ZWQ6bihrZSxvKSxjb2RlVGV4dDpuKFgsbyksY29kZVRleHREYXRhOkUsZGF0YTpFLGNvZGVGbG93VmFsdWU6RSxkZWZpbml0aW9uOm4oWiksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOm8sZGVmaW5pdGlvbkxhYmVsU3RyaW5nOm8sZGVmaW5pdGlvblRpdGxlU3RyaW5nOm8sZW1waGFzaXM6bih5ZSksaGFyZEJyZWFrRXNjYXBlOm4oQSksaGFyZEJyZWFrVHJhaWxpbmc6bihBKSxodG1sRmxvdzpuKHNlLG8pLGh0bWxGbG93RGF0YTpFLGh0bWxUZXh0Om4oc2UsbyksaHRtbFRleHREYXRhOkUsaW1hZ2U6bihvZSksbGFiZWw6byxsaW5rOm4oYWUpLGxpc3RJdGVtOm4oUmUpLGxpc3RJdGVtVmFsdWU6YixsaXN0T3JkZXJlZDpuKFRlLGMpLGxpc3RVbm9yZGVyZWQ6bihUZSkscGFyYWdyYXBoOm4oQmUpLHJlZmVyZW5jZTpGLHJlZmVyZW5jZVN0cmluZzpvLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6byxyZXNvdXJjZVRpdGxlU3RyaW5nOm8sc2V0ZXh0SGVhZGluZzpuKHEpLHN0cm9uZzpuKEdlKSx0aGVtYXRpY0JyZWFrOm4oX2UpfSxleGl0OnthdHhIZWFkaW5nOnAoKSxhdHhIZWFkaW5nU2VxdWVuY2U6QyxhdXRvbGluazpwKCksYXV0b2xpbmtFbWFpbDp0ZSxhdXRvbGlua1Byb3RvY29sOmllLGJsb2NrUXVvdGU6cCgpLGNoYXJhY3RlckVzY2FwZVZhbHVlOkgsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6dWUsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzp1ZSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpsZSxjaGFyYWN0ZXJSZWZlcmVuY2U6USxjb2RlRmVuY2VkOnAoZiksY29kZUZlbmNlZEZlbmNlOm0sY29kZUZlbmNlZEZlbmNlSW5mbzp2LGNvZGVGZW5jZWRGZW5jZU1ldGE6eCxjb2RlRmxvd1ZhbHVlOkgsY29kZUluZGVudGVkOnAoeSksY29kZVRleHQ6cChSKSxjb2RlVGV4dERhdGE6SCxkYXRhOkgsZGVmaW5pdGlvbjpwKCksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOk4sZGVmaW5pdGlvbkxhYmVsU3RyaW5nOk0sZGVmaW5pdGlvblRpdGxlU3RyaW5nOnosZW1waGFzaXM6cCgpLGhhcmRCcmVha0VzY2FwZTpwKFMpLGhhcmRCcmVha1RyYWlsaW5nOnAoUyksaHRtbEZsb3c6cChJKSxodG1sRmxvd0RhdGE6SCxodG1sVGV4dDpwKFApLGh0bWxUZXh0RGF0YTpILGltYWdlOnAoViksbGFiZWw6bWUsbGFiZWxUZXh0OlcsbGluZUVuZGluZzprLGxpbms6cChLKSxsaXN0SXRlbTpwKCksbGlzdE9yZGVyZWQ6cCgpLGxpc3RVbm9yZGVyZWQ6cCgpLHBhcmFncmFwaDpwKCkscmVmZXJlbmNlU3RyaW5nOmoscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpCLHJlc291cmNlVGl0bGVTdHJpbmc6VSxyZXNvdXJjZTpoZSxzZXRleHRIZWFkaW5nOnAoJCksc2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZTpPLHNldGV4dEhlYWRpbmdUZXh0Ol8sc3Ryb25nOnAoKSx0aGVtYXRpY0JyZWFrOnAoKX19O2RidChlLChzfHx7fSkubWRhc3RFeHRlbnNpb25zfHxbXSk7bGV0IHQ9e307cmV0dXJuIGE7ZnVuY3Rpb24gYShDZSl7bGV0IHZlPXt0eXBlOiJyb290IixjaGlsZHJlbjpbXX0sYmU9e3N0YWNrOlt2ZV0sdG9rZW5TdGFjazpbXSxjb25maWc6ZSxlbnRlcjpsLGV4aXQ6ZCxidWZmZXI6byxyZXN1bWU6dSxkYXRhOnR9LEVlPVtdLGplPS0xO2Zvcig7KytqZTxDZS5sZW5ndGg7KWlmKENlW2plXVsxXS50eXBlPT09Imxpc3RPcmRlcmVkInx8Q2VbamVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoQ2VbamVdWzBdPT09ImVudGVyIilFZS5wdXNoKGplKTtlbHNle2xldCBXZT1FZS5wb3AoKTtqZT1yKENlLFdlLGplKX1mb3IoamU9LTE7KytqZTxDZS5sZW5ndGg7KXtsZXQgV2U9ZVtDZVtqZV1bMF1dO2NidC5jYWxsKFdlLENlW2plXVsxXS50eXBlKSYmV2VbQ2VbamVdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6Q2VbamVdWzJdLnNsaWNlU2VyaWFsaXplfSxiZSksQ2VbamVdWzFdKX1pZihiZS50b2tlblN0YWNrLmxlbmd0aD4wKXtsZXQgV2U9YmUudG9rZW5TdGFja1tiZS50b2tlblN0YWNrLmxlbmd0aC0xXTsoV2VbMV18fHVidCkuY2FsbChiZSx2b2lkIDAsV2VbMF0pfWZvcih2ZS5wb3NpdGlvbj17c3RhcnQ6UXAoQ2UubGVuZ3RoPjA/Q2VbMF1bMV0uc3RhcnQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pLGVuZDpRcChDZS5sZW5ndGg+MD9DZVtDZS5sZW5ndGgtMl1bMV0uZW5kOntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KX0samU9LTE7KytqZTxlLnRyYW5zZm9ybXMubGVuZ3RoOyl2ZT1lLnRyYW5zZm9ybXNbamVdKHZlKXx8dmU7cmV0dXJuIHZlfWZ1bmN0aW9uIHIoQ2UsdmUsYmUpe2xldCBFZT12ZS0xLGplPS0xLFdlPSExLHN0LE1lLGdlLEllO2Zvcig7KytFZTw9YmU7KXtsZXQgY2U9Q2VbRWVdO3N3aXRjaChjZVsxXS50eXBlKXtjYXNlImxpc3RVbm9yZGVyZWQiOmNhc2UibGlzdE9yZGVyZWQiOmNhc2UiYmxvY2tRdW90ZSI6e2NlWzBdPT09ImVudGVyIj9qZSsrOmplLS0sSWU9dm9pZCAwO2JyZWFrfWNhc2UibGluZUVuZGluZ0JsYW5rIjp7Y2VbMF09PT0iZW50ZXIiJiYoc3QmJiFJZSYmIWplJiYhZ2UmJihnZT1FZSksSWU9dm9pZCAwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmNhc2UibGlzdEl0ZW1WYWx1ZSI6Y2FzZSJsaXN0SXRlbU1hcmtlciI6Y2FzZSJsaXN0SXRlbVByZWZpeCI6Y2FzZSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiOmJyZWFrO2RlZmF1bHQ6SWU9dm9pZCAwfWlmKCFqZSYmY2VbMF09PT0iZW50ZXIiJiZjZVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4Inx8amU9PT0tMSYmY2VbMF09PT0iZXhpdCImJihjZVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQifHxjZVsxXS50eXBlPT09Imxpc3RPcmRlcmVkIikpe2lmKHN0KXtsZXQgZGU9RWU7Zm9yKE1lPXZvaWQgMDtkZS0tOyl7bGV0IExlPUNlW2RlXTtpZihMZVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxMZVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpe2lmKExlWzBdPT09ImV4aXQiKWNvbnRpbnVlO01lJiYoQ2VbTWVdWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIsV2U9ITApLExlWzFdLnR5cGU9ImxpbmVFbmRpbmciLE1lPWRlfWVsc2UgaWYoIShMZVsxXS50eXBlPT09ImxpbmVQcmVmaXgifHxMZVsxXS50eXBlPT09ImJsb2NrUXVvdGVQcmVmaXgifHxMZVsxXS50eXBlPT09ImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlInx8TGVbMV0udHlwZT09PSJibG9ja1F1b3RlTWFya2VyInx8TGVbMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCIpKWJyZWFrfWdlJiYoIU1lfHxnZTxNZSkmJihzdC5fc3ByZWFkPSEwKSxzdC5lbmQ9T2JqZWN0LmFzc2lnbih7fSxNZT9DZVtNZV1bMV0uc3RhcnQ6Y2VbMV0uZW5kKSxDZS5zcGxpY2UoTWV8fEVlLDAsWyJleGl0IixzdCxjZVsyXV0pLEVlKyssYmUrK31pZihjZVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4Iil7bGV0IGRlPXt0eXBlOiJsaXN0SXRlbSIsX3NwcmVhZDohMSxzdGFydDpPYmplY3QuYXNzaWduKHt9LGNlWzFdLnN0YXJ0KSxlbmQ6dm9pZCAwfTtzdD1kZSxDZS5zcGxpY2UoRWUsMCxbImVudGVyIixkZSxjZVsyXV0pLEVlKyssYmUrKyxnZT12b2lkIDAsSWU9ITB9fX1yZXR1cm4gQ2VbdmVdWzFdLl9zcHJlYWQ9V2UsYmV9ZnVuY3Rpb24gbihDZSx2ZSl7cmV0dXJuIGJlO2Z1bmN0aW9uIGJlKEVlKXtsLmNhbGwodGhpcyxDZShFZSksRWUpLHZlJiZ2ZS5jYWxsKHRoaXMsRWUpfX1mdW5jdGlvbiBvKCl7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJmcmFnbWVudCIsY2hpbGRyZW46W119KX1mdW5jdGlvbiBsKENlLHZlLGJlKXt0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLnB1c2goQ2UpLHRoaXMuc3RhY2sucHVzaChDZSksdGhpcy50b2tlblN0YWNrLnB1c2goW3ZlLGJlfHx2b2lkIDBdKSxDZS5wb3NpdGlvbj17c3RhcnQ6UXAodmUuc3RhcnQpLGVuZDp2b2lkIDB9fWZ1bmN0aW9uIHAoQ2Upe3JldHVybiB2ZTtmdW5jdGlvbiB2ZShiZSl7Q2UmJkNlLmNhbGwodGhpcyxiZSksZC5jYWxsKHRoaXMsYmUpfX1mdW5jdGlvbiBkKENlLHZlKXtsZXQgYmU9dGhpcy5zdGFjay5wb3AoKSxFZT10aGlzLnRva2VuU3RhY2sucG9wKCk7aWYoRWUpRWVbMF0udHlwZSE9PUNlLnR5cGUmJih2ZT92ZS5jYWxsKHRoaXMsQ2UsRWVbMF0pOihFZVsxXXx8dWJ0KS5jYWxsKHRoaXMsQ2UsRWVbMF0pKTtlbHNlIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK0NlLnR5cGUrImAgKCIrR3Aoe3N0YXJ0OkNlLnN0YXJ0LGVuZDpDZS5lbmR9KSsiKTogaXRcdTIwMTlzIG5vdCBvcGVuIik7YmUucG9zaXRpb24uZW5kPVFwKENlLmVuZCl9ZnVuY3Rpb24gdSgpe3JldHVybiB6Myh0aGlzLnN0YWNrLnBvcCgpKX1mdW5jdGlvbiBjKCl7dGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT0hMH1mdW5jdGlvbiBiKENlKXtpZih0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlKXtsZXQgdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTt2ZS5zdGFydD1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShDZSksMTApLHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9dm9pZCAwfX1mdW5jdGlvbiB2KCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS5sYW5nPUNlfWZ1bmN0aW9uIHgoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLm1ldGE9Q2V9ZnVuY3Rpb24gbSgpe3RoaXMuZGF0YS5mbG93Q29kZUluc2lkZXx8KHRoaXMuYnVmZmVyKCksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPSEwKX1mdW5jdGlvbiBmKCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS52YWx1ZT1DZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9dm9pZCAwfWZ1bmN0aW9uIHkoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIE0oQ2Upe2xldCB2ZT10aGlzLnJlc3VtZSgpLGJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07YmUubGFiZWw9dmUsYmUuaWRlbnRpZmllcj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKENlKSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB6KCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS50aXRsZT1DZX1mdW5jdGlvbiBOKCl7bGV0IENlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS51cmw9Q2V9ZnVuY3Rpb24gQyhDZSl7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYoIXZlLmRlcHRoKXtsZXQgYmU9dGhpcy5zbGljZVNlcmlhbGl6ZShDZSkubGVuZ3RoO3ZlLmRlcHRoPWJlfX1mdW5jdGlvbiBfKCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9ITB9ZnVuY3Rpb24gTyhDZSl7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUuZGVwdGg9dGhpcy5zbGljZVNlcmlhbGl6ZShDZSkuY29kZVBvaW50QXQoMCk9PT02MT8xOjJ9ZnVuY3Rpb24gJCgpe3RoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nPXZvaWQgMH1mdW5jdGlvbiBFKENlKXtsZXQgYmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXS5jaGlsZHJlbixFZT1iZVtiZS5sZW5ndGgtMV07KCFFZXx8RWUudHlwZSE9PSJ0ZXh0IikmJihFZT1EZSgpLEVlLnBvc2l0aW9uPXtzdGFydDpRcChDZS5zdGFydCksZW5kOnZvaWQgMH0sYmUucHVzaChFZSkpLHRoaXMuc3RhY2sucHVzaChFZSl9ZnVuY3Rpb24gSChDZSl7bGV0IHZlPXRoaXMuc3RhY2sucG9wKCk7dmUudmFsdWUrPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpLHZlLnBvc2l0aW9uLmVuZD1RcChDZS5lbmQpfWZ1bmN0aW9uIGsoQ2Upe2xldCB2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5hdEhhcmRCcmVhayl7bGV0IGJlPXZlLmNoaWxkcmVuW3ZlLmNoaWxkcmVuLmxlbmd0aC0xXTtiZS5wb3NpdGlvbi5lbmQ9UXAoQ2UuZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJmUuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXModmUudHlwZSkmJihFLmNhbGwodGhpcyxDZSksSC5jYWxsKHRoaXMsQ2UpKX1mdW5jdGlvbiBTKCl7dGhpcy5kYXRhLmF0SGFyZEJyZWFrPSEwfWZ1bmN0aW9uIEkoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlfWZ1bmN0aW9uIFAoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlfWZ1bmN0aW9uIFIoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnZhbHVlPUNlfWZ1bmN0aW9uIEsoKXtsZXQgQ2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCB2ZT10aGlzLmRhdGEucmVmZXJlbmNlVHlwZXx8InNob3J0Y3V0IjtDZS50eXBlKz0iUmVmZXJlbmNlIixDZS5yZWZlcmVuY2VUeXBlPXZlLGRlbGV0ZSBDZS51cmwsZGVsZXRlIENlLnRpdGxlfWVsc2UgZGVsZXRlIENlLmlkZW50aWZpZXIsZGVsZXRlIENlLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBWKCl7bGV0IENlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlKXtsZXQgdmU9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Q2UudHlwZSs9IlJlZmVyZW5jZSIsQ2UucmVmZXJlbmNlVHlwZT12ZSxkZWxldGUgQ2UudXJsLGRlbGV0ZSBDZS50aXRsZX1lbHNlIGRlbGV0ZSBDZS5pZGVudGlmaWVyLGRlbGV0ZSBDZS5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gVyhDZSl7bGV0IHZlPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpLGJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07YmUubGFiZWw9ZmllKHZlKSxiZS5pZGVudGlmaWVyPUhpKHZlKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIG1lKCl7bGV0IENlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0sdmU9dGhpcy5yZXN1bWUoKSxiZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZT0hMCxiZS50eXBlPT09ImxpbmsiKXtsZXQgRWU9Q2UuY2hpbGRyZW47YmUuY2hpbGRyZW49RWV9ZWxzZSBiZS5hbHQ9dmV9ZnVuY3Rpb24gQigpe2xldCBDZT10aGlzLnJlc3VtZSgpLHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUudXJsPUNlfWZ1bmN0aW9uIFUoKXtsZXQgQ2U9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLnRpdGxlPUNlfWZ1bmN0aW9uIGhlKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBGKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gaihDZSl7bGV0IHZlPXRoaXMucmVzdW1lKCksYmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtiZS5sYWJlbD12ZSxiZS5pZGVudGlmaWVyPUhpKHRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiB1ZShDZSl7dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9Q2UudHlwZX1mdW5jdGlvbiBsZShDZSl7bGV0IHZlPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpLGJlPXRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlLEVlO2JlPyhFZT1KOSh2ZSxiZT09PSJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIj8xMDoxNiksdGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9dm9pZCAwKTpFZT1acCh2ZSk7bGV0IGplPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07amUudmFsdWUrPUVlfWZ1bmN0aW9uIFEoQ2Upe2xldCB2ZT10aGlzLnN0YWNrLnBvcCgpO3ZlLnBvc2l0aW9uLmVuZD1RcChDZS5lbmQpfWZ1bmN0aW9uIGllKENlKXtILmNhbGwodGhpcyxDZSk7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUudXJsPXRoaXMuc2xpY2VTZXJpYWxpemUoQ2UpfWZ1bmN0aW9uIHRlKENlKXtILmNhbGwodGhpcyxDZSk7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dmUudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKENlKX1mdW5jdGlvbiBlZSgpe3JldHVybnt0eXBlOiJibG9ja3F1b3RlIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24ga2UoKXtyZXR1cm57dHlwZToiY29kZSIsbGFuZzpudWxsLG1ldGE6bnVsbCx2YWx1ZToiIn19ZnVuY3Rpb24gWCgpe3JldHVybnt0eXBlOiJpbmxpbmVDb2RlIix2YWx1ZToiIn19ZnVuY3Rpb24gWigpe3JldHVybnt0eXBlOiJkZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOm51bGwsdGl0bGU6bnVsbCx1cmw6IiJ9fWZ1bmN0aW9uIHllKCl7cmV0dXJue3R5cGU6ImVtcGhhc2lzIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gcSgpe3JldHVybnt0eXBlOiJoZWFkaW5nIixkZXB0aDowLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBBKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gc2UoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIG9lKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gYWUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIFRlKENlKXtyZXR1cm57dHlwZToibGlzdCIsb3JkZXJlZDpDZS50eXBlPT09Imxpc3RPcmRlcmVkIixzdGFydDpudWxsLHNwcmVhZDpDZS5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBSZShDZSl7cmV0dXJue3R5cGU6Imxpc3RJdGVtIixzcHJlYWQ6Q2UuX3NwcmVhZCxjaGVja2VkOm51bGwsY2hpbGRyZW46W119fWZ1bmN0aW9uIEJlKCl7cmV0dXJue3R5cGU6InBhcmFncmFwaCIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEdlKCl7cmV0dXJue3R5cGU6InN0cm9uZyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIERlKCl7cmV0dXJue3R5cGU6InRleHQiLHZhbHVlOiIifX1mdW5jdGlvbiBfZSgpe3JldHVybnt0eXBlOiJ0aGVtYXRpY0JyZWFrIn19fWZ1bmN0aW9uIFFwKHMpe3JldHVybntsaW5lOnMubGluZSxjb2x1bW46cy5jb2x1bW4sb2Zmc2V0OnMub2Zmc2V0fX1mdW5jdGlvbiBkYnQocyxlKXtsZXQgdD0tMTtmb3IoOysrdDxlLmxlbmd0aDspe2xldCBhPWVbdF07QXJyYXkuaXNBcnJheShhKT9kYnQocyxhKTpDRmEocyxhKX19ZnVuY3Rpb24gQ0ZhKHMsZSl7bGV0IHQ7Zm9yKHQgaW4gZSlpZihjYnQuY2FsbChlLHQpKXN3aXRjaCh0KXtjYXNlImNhbkNvbnRhaW5Fb2xzIjp7bGV0IGE9ZVt0XTthJiZzW3RdLnB1c2goLi4uYSk7YnJlYWt9Y2FzZSJ0cmFuc2Zvcm1zIjp7bGV0IGE9ZVt0XTthJiZzW3RdLnB1c2goLi4uYSk7YnJlYWt9Y2FzZSJlbnRlciI6Y2FzZSJleGl0Ijp7bGV0IGE9ZVt0XTthJiZPYmplY3QuYXNzaWduKHNbdF0sYSk7YnJlYWt9fX1mdW5jdGlvbiB1YnQocyxlKXt0aHJvdyBzP25ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK3MudHlwZSsiYCAoIitHcCh7c3RhcnQ6cy5zdGFydCxlbmQ6cy5lbmR9KSsiKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitHcCh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBvcGVuIik6bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitHcCh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBzdGlsbCBvcGVuIil9dmFyIGNidCxwYnQ9ZygoKT0+e2NpZSgpO2xidCgpO2hpZSgpOyRmZSgpO1lwKCk7ZGsoKTtqM2UoKTtjYnQ9e30uaGFzT3duUHJvcGVydHk7aSh6bWUsImZyb21NYXJrZG93biIpO2koekZhLCJjb21waWxlciIpO2koUXAsInBvaW50Iik7aShkYnQsImNvbmZpZ3VyZSIpO2koQ0ZhLCJleHRlbnNpb24iKTtpKHVidCwiZGVmYXVsdE9uRXJyb3IiKX0pO3ZhciBoYnQ9ZygoKT0+e3BidCgpfSk7ZnVuY3Rpb24gYWIocyl7bGV0IGU9dGhpcztlLnBhcnNlcj10O2Z1bmN0aW9uIHQoYSl7cmV0dXJuIHptZShhLHsuLi5lLmRhdGEoInNldHRpbmdzIiksLi4ucyxleHRlbnNpb25zOmUuZGF0YSgibWljcm9tYXJrRXh0ZW5zaW9ucyIpfHxbXSxtZGFzdEV4dGVuc2lvbnM6ZS5kYXRhKCJmcm9tTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9aSh0LCJwYXJzZXIiKX12YXIgZmJ0PWcoKCk9PntoYnQoKTtpKGFiLCJyZW1hcmtQYXJzZSIpfSk7dmFyIG1idD1nKCgpPT57ZmJ0KCl9KTt2YXIgZ2J0PXBsKChicGksQ21lKT0+eyhmdW5jdGlvbigpe3ZhciBzO3R5cGVvZiBDbWU8InUiP3M9Q21lLmV4cG9ydHM9YTpzPShmdW5jdGlvbigpe3JldHVybiB0aGlzfHwoMCxldmFsKSgidGhpcyIpfSkoKSxzLmZvcm1hdD1hLHMudnNwcmludGY9dCx0eXBlb2YgY29uc29sZTwidSImJnR5cGVvZiBjb25zb2xlLmxvZz09ImZ1bmN0aW9uIiYmKHMucHJpbnRmPWUpO2Z1bmN0aW9uIGUoKXtjb25zb2xlLmxvZyhhLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9aShlLCJwcmludGYiKTtmdW5jdGlvbiB0KHIsbil7cmV0dXJuIGEuYXBwbHkobnVsbCxbcl0uY29uY2F0KG4pKX1pKHQsInZzcHJpbnRmIik7ZnVuY3Rpb24gYShyKXtmb3IodmFyIG49MSxvPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxsPTAscD1yLmxlbmd0aCxkPSIiLHUsYz0hMSxiLHYseD0hMSxtLGY9aShmdW5jdGlvbigpe3JldHVybiBvW24rK119LCJuZXh0QXJnIikseT1pKGZ1bmN0aW9uKCl7Zm9yKHZhciBNPSIiOy9cZC8udGVzdChyW2xdKTspTSs9cltsKytdLHU9cltsXTtyZXR1cm4gTS5sZW5ndGg+MD9wYXJzZUludChNKTpudWxsfSwic2x1cnBOdW1iZXIiKTtsPHA7KytsKWlmKHU9cltsXSxjKXN3aXRjaChjPSExLHU9PSIuIj8oeD0hMSx1PXJbKytsXSk6dT09IjAiJiZyW2wrMV09PSIuIj8oeD0hMCxsKz0yLHU9cltsXSk6eD0hMCxtPXkoKSx1KXtjYXNlImIiOmQrPXBhcnNlSW50KGYoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpiPWYoKSx0eXBlb2YgYj09InN0cmluZyJ8fGIgaW5zdGFuY2VvZiBTdHJpbmc/ZCs9YjpkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGIsMTApKTticmVhaztjYXNlImQiOmQrPXBhcnNlSW50KGYoKSwxMCk7YnJlYWs7Y2FzZSJmIjp2PVN0cmluZyhwYXJzZUZsb2F0KGYoKSkudG9GaXhlZChtfHw2KSksZCs9eD92OnYucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmQrPUpTT04uc3RyaW5naWZ5KGYoKSk7YnJlYWs7Y2FzZSJvIjpkKz0iMCIrcGFyc2VJbnQoZigpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmQrPWYoKTticmVhaztjYXNlIngiOmQrPSIweCIrcGFyc2VJbnQoZigpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpkKz0iMHgiK3BhcnNlSW50KGYoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpkKz11O2JyZWFrfWVsc2UgdT09PSIlIj9jPSEwOmQrPXU7cmV0dXJuIGR9aShhLCJmb3JtYXQiKX0pKCl9KTtmdW5jdGlvbiBQMyhzKXtyZXR1cm4gZS5kaXNwbGF5TmFtZT1zLmRpc3BsYXlOYW1lfHxzLm5hbWUsZTtmdW5jdGlvbiBlKHQsLi4uYSl7bGV0IHI9dCYmKDAsYmJ0LmRlZmF1bHQpKHQsLi4uYSk7cmV0dXJuIG5ldyBzKHIpfWkoZSwiRm9ybWF0dGVkRXJyb3IiKX12YXIgYmJ0LHlrLHZidD1nKCgpPT57YmJ0PXhuKGdidCgpLDEpLHlrPU9iamVjdC5hc3NpZ24oUDMoRXJyb3IpLHtldmFsOlAzKEV2YWxFcnJvcikscmFuZ2U6UDMoUmFuZ2VFcnJvcikscmVmZXJlbmNlOlAzKFJlZmVyZW5jZUVycm9yKSxzeW50YXg6UDMoU3ludGF4RXJyb3IpLHR5cGU6UDMoVHlwZUVycm9yKSx1cmk6UDMoVVJJRXJyb3IpfSk7aShQMywiY3JlYXRlIil9KTtmdW5jdGlvbiBzYihzKXtsZXQgZT1bXSx0PS0xLGE9QXJyYXkuaXNBcnJheShzKT9zOnM/W3NdOlsieWFtbCJdO2Zvcig7Kyt0PGEubGVuZ3RoOyllW3RdPVRGYShhW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiBURmEocyl7bGV0IGU9cztpZih0eXBlb2YgZT09InN0cmluZyIpe2lmKCFJaWUuY2FsbCh4YnQsZSkpdGhyb3cgeWsoIk1pc3NpbmcgbWF0dGVyIGRlZmluaXRpb24gZm9yIGAlc2AiLGUpO2U9e3R5cGU6ZSxtYXJrZXI6eGJ0W2VdfX1lbHNlIGlmKHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyB5aygiRXhwZWN0ZWQgbWF0dGVyIHRvIGJlIGFuIG9iamVjdCwgbm90IGAlamAiLGUpO2lmKCFJaWUuY2FsbChlLCJ0eXBlIikpdGhyb3cgeWsoIk1pc3NpbmcgYHR5cGVgIGluIG1hdHRlciBgJWpgIixlKTtpZighSWllLmNhbGwoZSwiZmVuY2UiKSYmIUlpZS5jYWxsKGUsIm1hcmtlciIpKXRocm93IHlrKCJNaXNzaW5nIGBtYXJrZXJgIG9yIGBmZW5jZWAgaW4gbWF0dGVyIGAlamAiLGUpO3JldHVybiBlfXZhciBJaWUseGJ0LFRtZT1nKCgpPT57dmJ0KCk7SWllPXt9Lmhhc093blByb3BlcnR5LHhidD17eWFtbDoiLSIsdG9tbDoiKyJ9O2koc2IsInRvTWF0dGVycyIpO2koVEZhLCJtYXR0ZXIiKX0pO2Z1bmN0aW9uIERtZShzKXtsZXQgZT1zYihzKSx0PXt9LGE9LTE7Zm9yKDsrK2E8ZS5sZW5ndGg7KXtsZXQgcj1lW2FdLG49JG1lKHIsIm9wZW4iKS5jaGFyQ29kZUF0KDApLG89JEZhKHIpLGw9dFtuXTtBcnJheS5pc0FycmF5KGwpP2wucHVzaChvKTp0W25dPVtvXX1yZXR1cm57Zmxvdzp0fX1mdW5jdGlvbiAkRmEocyl7bGV0IGU9cy5hbnl3aGVyZSx0PXMudHlwZSxhPXQrIkZlbmNlIixyPWErIlNlcXVlbmNlIixuPXQrIlZhbHVlIixvPXt0b2tlbml6ZTp1LHBhcnRpYWw6ITB9LGwscD0wO3JldHVybnt0b2tlbml6ZTpkLGNvbmNyZXRlOiEwfTtmdW5jdGlvbiBkKGMsYix2KXtsZXQgeD10aGlzO3JldHVybiBtO2Z1bmN0aW9uIG0oTyl7bGV0ICQ9eC5ub3coKTtyZXR1cm4gJC5jb2x1bW49PT0xJiYoJC5saW5lPT09MXx8ZSkmJihsPSRtZShzLCJvcGVuIikscD0wLE89PT1sLmNoYXJDb2RlQXQocCkpPyhjLmVudGVyKHQpLGMuZW50ZXIoYSksYy5lbnRlcihyKSxmKE8pKTp2KE8pfWZ1bmN0aW9uIGYoTyl7cmV0dXJuIHA9PT1sLmxlbmd0aD8oYy5leGl0KHIpLEh0KE8pPyhjLmVudGVyKCJ3aGl0ZXNwYWNlIikseShPKSk6TShPKSk6Tz09PWwuY2hhckNvZGVBdChwKyspPyhjLmNvbnN1bWUoTyksZik6dihPKX1mdW5jdGlvbiB5KE8pe3JldHVybiBIdChPKT8oYy5jb25zdW1lKE8pLHkpOihjLmV4aXQoIndoaXRlc3BhY2UiKSxNKE8pKX1mdW5jdGlvbiBNKE8pe3JldHVybiB2dChPKT8oYy5leGl0KGEpLGMuZW50ZXIoImxpbmVFbmRpbmciKSxjLmNvbnN1bWUoTyksYy5leGl0KCJsaW5lRW5kaW5nIiksbD0kbWUocywiY2xvc2UiKSxwPTAsYy5hdHRlbXB0KG8sXyx6KSk6dihPKX1mdW5jdGlvbiB6KE8pe3JldHVybiBPPT09bnVsbHx8dnQoTyk/QyhPKTooYy5lbnRlcihuKSxOKE8pKX1mdW5jdGlvbiBOKE8pe3JldHVybiBPPT09bnVsbHx8dnQoTyk/KGMuZXhpdChuKSxDKE8pKTooYy5jb25zdW1lKE8pLE4pfWZ1bmN0aW9uIEMoTyl7cmV0dXJuIE89PT1udWxsP3YoTyk6KGMuZW50ZXIoImxpbmVFbmRpbmciKSxjLmNvbnN1bWUoTyksYy5leGl0KCJsaW5lRW5kaW5nIiksYy5hdHRlbXB0KG8sXyx6KSl9ZnVuY3Rpb24gXyhPKXtyZXR1cm4gYy5leGl0KHQpLGIoTyl9fWZ1bmN0aW9uIHUoYyxiLHYpe2xldCB4PTA7cmV0dXJuIG07ZnVuY3Rpb24gbSh6KXtyZXR1cm4gej09PWwuY2hhckNvZGVBdCh4KT8oYy5lbnRlcihhKSxjLmVudGVyKHIpLGYoeikpOnYoeil9ZnVuY3Rpb24gZih6KXtyZXR1cm4geD09PWwubGVuZ3RoPyhjLmV4aXQociksSHQoeik/KGMuZW50ZXIoIndoaXRlc3BhY2UiKSx5KHopKTpNKHopKTp6PT09bC5jaGFyQ29kZUF0KHgrKyk/KGMuY29uc3VtZSh6KSxmKTp2KHopfWZ1bmN0aW9uIHkoeil7cmV0dXJuIEh0KHopPyhjLmNvbnN1bWUoeikseSk6KGMuZXhpdCgid2hpdGVzcGFjZSIpLE0oeikpfWZ1bmN0aW9uIE0oeil7cmV0dXJuIHo9PT1udWxsfHx2dCh6KT8oYy5leGl0KGEpLGIoeikpOnYoeil9fX1mdW5jdGlvbiAkbWUocyxlKXtyZXR1cm4gcy5tYXJrZXI/eWJ0KHMubWFya2VyLGUpLnJlcGVhdCgzKTp5YnQocy5mZW5jZSxlKX1mdW5jdGlvbiB5YnQocyxlKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmciP3M6c1tlXX12YXIgd2J0PWcoKCk9PntWYSgpO1RtZSgpO2koRG1lLCJmcm9udG1hdHRlciIpO2koJEZhLCJjcmVhdGVDb25zdHJ1Y3QiKTtpKCRtZSwiZmVuY2UiKTtpKHlidCwicGljayIpfSk7dmFyIGtidD1nKCgpPT57fSk7dmFyIExtZT1nKCgpPT57d2J0KCk7a2J0KCk7VG1lKCl9KTtmdW5jdGlvbiBQbWUocyl7bGV0IGU9c2IocyksdD17fSxhPXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXtsZXQgbj1lW3JdO3Rbbi50eXBlXT1ERmEobiksYVtuLnR5cGVdPUxGYSxhW24udHlwZSsiVmFsdWUiXT1FRmF9cmV0dXJue2VudGVyOnQsZXhpdDphfX1mdW5jdGlvbiBERmEocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0KXt0aGlzLmVudGVyKHt0eXBlOnMudHlwZSx2YWx1ZToiIn0sdCksdGhpcy5idWZmZXIoKX19ZnVuY3Rpb24gTEZhKHMpe2xldCBlPXRoaXMucmVzdW1lKCksdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdOyJ2YWx1ZSJpbiB0LHRoaXMuZXhpdChzKSx0LnZhbHVlPWUucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gRUZhKHMpe3RoaXMuY29uZmlnLmVudGVyLmRhdGEuY2FsbCh0aGlzLHMpLHRoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMscyl9ZnVuY3Rpb24gSW1lKHMpe2xldCBlPVtdLHQ9e30sYT1zYihzKSxyPS0xO2Zvcig7KytyPGEubGVuZ3RoOyl7bGV0IG49YVtyXTt0W24udHlwZV09UEZhKG4pO2xldCBvPUVtZShuLCJvcGVuIik7ZS5wdXNoKHthdEJyZWFrOiEwLGNoYXJhY3RlcjpvLmNoYXJBdCgwKSxhZnRlcjpXNChvLmNoYXJBdCgxKSl9KX1yZXR1cm57dW5zYWZlOmUsaGFuZGxlcnM6dH19ZnVuY3Rpb24gUEZhKHMpe2xldCBlPUVtZShzLCJvcGVuIiksdD1FbWUocywiY2xvc2UiKTtyZXR1cm4gYTtmdW5jdGlvbiBhKHIpe3JldHVybiBlKyhyLnZhbHVlP2AKYCtyLnZhbHVlOiIiKStgCmArdH19ZnVuY3Rpb24gRW1lKHMsZSl7cmV0dXJuIHMubWFya2VyP1NidChzLm1hcmtlcixlKS5yZXBlYXQoMyk6U2J0KHMuZmVuY2UsZSl9ZnVuY3Rpb24gU2J0KHMsZSl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9zOnNbZV19dmFyIF9idD1nKCgpPT57V3AoKTtMbWUoKTskZWUoKTtpKFBtZSwiZnJvbnRtYXR0ZXJGcm9tTWFya2Rvd24iKTtpKERGYSwib3BlbmVyIik7aShMRmEsImNsb3NlIik7aShFRmEsInZhbHVlIik7aShJbWUsImZyb250bWF0dGVyVG9NYXJrZG93biIpO2koUEZhLCJoYW5kbGVyIik7aShFbWUsImZlbmNlIik7aShTYnQsInBpY2siKX0pO3ZhciBNYnQ9ZygoKT0+e19idCgpfSk7ZnVuY3Rpb24gaWIocyl7bGV0IGU9dGhpcyx0PXN8fElGYSxhPWUuZGF0YSgpLHI9YS5taWNyb21hcmtFeHRlbnNpb25zfHwoYS5taWNyb21hcmtFeHRlbnNpb25zPVtdKSxuPWEuZnJvbU1hcmtkb3duRXh0ZW5zaW9uc3x8KGEuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucz1bXSksbz1hLnRvTWFya2Rvd25FeHRlbnNpb25zfHwoYS50b01hcmtkb3duRXh0ZW5zaW9ucz1bXSk7ci5wdXNoKERtZSh0KSksbi5wdXNoKFBtZSh0KSksby5wdXNoKEltZSh0KSl9dmFyIElGYSx6YnQ9ZygoKT0+e01idCgpO0xtZSgpO0lGYT0ieWFtbCI7aShpYiwicmVtYXJrRnJvbnRtYXR0ZXIiKX0pO3ZhciBDYnQ9ZygoKT0+e3pidCgpfSk7dmFyIEFtZT1nKCgpPT57fSk7dmFyIEFGYSxUYnQsTkZhLEZpZSwkYnQ9ZygoKT0+e0FtZSgpO0FGYT10eXBlb2Ygc2VsZj09Im9iamVjdCI/c2VsZjpnbG9iYWxUaGlzLFRidD1pKChzLGUpPT57c3dpdGNoKHMpe2Nhc2UiRnVuY3Rpb24iOmNhc2UiU2hhcmVkV29ya2VyIjpjYXNlIldvcmtlciI6Y2FzZSJldmFsIjpjYXNlInNldEludGVydmFsIjpjYXNlInNldFRpbWVvdXQiOnRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBkZXNlcmlhbGl6ZSAiK3MpfXJldHVybiBuZXcgQUZhW3NdKGUpfSwiZ3VhcmQiKSxORmE9aSgocyxlKT0+e2xldCB0PWkoKHIsbik9PihzLnNldChuLHIpLHIpLCJhcyIpLGE9aShyPT57aWYocy5oYXMocikpcmV0dXJuIHMuZ2V0KHIpO2xldFtuLG9dPWVbcl07c3dpdGNoKG4pe2Nhc2UgMDpjYXNlLTE6cmV0dXJuIHQobyxyKTtjYXNlIDE6e2xldCBsPXQoW10scik7Zm9yKGxldCBwIG9mIG8pbC5wdXNoKGEocCkpO3JldHVybiBsfWNhc2UgMjp7bGV0IGw9dCh7fSxyKTtmb3IobGV0W3AsZF1vZiBvKWxbYShwKV09YShkKTtyZXR1cm4gbH1jYXNlIDM6cmV0dXJuIHQobmV3IERhdGUobykscik7Y2FzZSA0OntsZXR7c291cmNlOmwsZmxhZ3M6cH09bztyZXR1cm4gdChuZXcgUmVnRXhwKGwscCkscil9Y2FzZSA1OntsZXQgbD10KG5ldyBNYXAscik7Zm9yKGxldFtwLGRdb2YgbylsLnNldChhKHApLGEoZCkpO3JldHVybiBsfWNhc2UgNjp7bGV0IGw9dChuZXcgU2V0LHIpO2ZvcihsZXQgcCBvZiBvKWwuYWRkKGEocCkpO3JldHVybiBsfWNhc2UgNzp7bGV0e25hbWU6bCxtZXNzYWdlOnB9PW87cmV0dXJuIHQoVGJ0KGwscCkscil9Y2FzZSA4OnJldHVybiB0KEJpZ0ludChvKSxyKTtjYXNlIkJpZ0ludCI6cmV0dXJuIHQoT2JqZWN0KEJpZ0ludChvKSkscik7Y2FzZSJBcnJheUJ1ZmZlciI6cmV0dXJuIHQobmV3IFVpbnQ4QXJyYXkobykuYnVmZmVyLG8pO2Nhc2UiRGF0YVZpZXciOntsZXR7YnVmZmVyOmx9PW5ldyBVaW50OEFycmF5KG8pO3JldHVybiB0KG5ldyBEYXRhVmlldyhsKSxvKX19cmV0dXJuIHQoVGJ0KG4sbykscil9LCJ1bnBhaXIiKTtyZXR1cm4gYX0sImRlc2VyaWFsaXplciIpLEZpZT1pKHM9Pk5GYShuZXcgTWFwLHMpKDApLCJkZXNlcmlhbGl6ZSIpfSk7dmFyIG9iLFJGYSxPRmEsU2ssQmllLEZGYSxIaWUsRGJ0PWcoKCk9PntBbWUoKTtvYj0iIix7dG9TdHJpbmc6UkZhfT17fSx7a2V5czpPRmF9PU9iamVjdCxTaz1pKHM9PntsZXQgZT10eXBlb2YgcztpZihlIT09Im9iamVjdCJ8fCFzKXJldHVyblswLGVdO2xldCB0PVJGYS5jYWxsKHMpLnNsaWNlKDgsLTEpO3N3aXRjaCh0KXtjYXNlIkFycmF5IjpyZXR1cm5bMSxvYl07Y2FzZSJPYmplY3QiOnJldHVyblsyLG9iXTtjYXNlIkRhdGUiOnJldHVyblszLG9iXTtjYXNlIlJlZ0V4cCI6cmV0dXJuWzQsb2JdO2Nhc2UiTWFwIjpyZXR1cm5bNSxvYl07Y2FzZSJTZXQiOnJldHVybls2LG9iXTtjYXNlIkRhdGFWaWV3IjpyZXR1cm5bMSx0XX1yZXR1cm4gdC5pbmNsdWRlcygiQXJyYXkiKT9bMSx0XTp0LmluY2x1ZGVzKCJFcnJvciIpP1s3LHRdOlsyLHRdfSwidHlwZU9mIiksQmllPWkoKFtzLGVdKT0+cz09PTAmJihlPT09ImZ1bmN0aW9uInx8ZT09PSJzeW1ib2wiKSwic2hvdWxkU2tpcCIpLEZGYT1pKChzLGUsdCxhKT0+e2xldCByPWkoKG8sbCk9PntsZXQgcD1hLnB1c2gobyktMTtyZXR1cm4gdC5zZXQobCxwKSxwfSwiYXMiKSxuPWkobz0+e2lmKHQuaGFzKG8pKXJldHVybiB0LmdldChvKTtsZXRbbCxwXT1TayhvKTtzd2l0Y2gobCl7Y2FzZSAwOntsZXQgdT1vO3N3aXRjaChwKXtjYXNlImJpZ2ludCI6bD04LHU9by50b1N0cmluZygpO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjppZihzKXRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBzZXJpYWxpemUgIitwKTt1PW51bGw7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiByKFstMV0sbyl9cmV0dXJuIHIoW2wsdV0sbyl9Y2FzZSAxOntpZihwKXtsZXQgYj1vO3JldHVybiBwPT09IkRhdGFWaWV3Ij9iPW5ldyBVaW50OEFycmF5KG8uYnVmZmVyKTpwPT09IkFycmF5QnVmZmVyIiYmKGI9bmV3IFVpbnQ4QXJyYXkobykpLHIoW3AsWy4uLmJdXSxvKX1sZXQgdT1bXSxjPXIoW2wsdV0sbyk7Zm9yKGxldCBiIG9mIG8pdS5wdXNoKG4oYikpO3JldHVybiBjfWNhc2UgMjp7aWYocClzd2l0Y2gocCl7Y2FzZSJCaWdJbnQiOnJldHVybiByKFtwLG8udG9TdHJpbmcoKV0sbyk7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOnJldHVybiByKFtwLG8udmFsdWVPZigpXSxvKX1pZihlJiYidG9KU09OImluIG8pcmV0dXJuIG4oby50b0pTT04oKSk7bGV0IHU9W10sYz1yKFtsLHVdLG8pO2ZvcihsZXQgYiBvZiBPRmEobykpKHN8fCFCaWUoU2sob1tiXSkpKSYmdS5wdXNoKFtuKGIpLG4ob1tiXSldKTtyZXR1cm4gY31jYXNlIDM6cmV0dXJuIHIoW2wsby50b0lTT1N0cmluZygpXSxvKTtjYXNlIDQ6e2xldHtzb3VyY2U6dSxmbGFnczpjfT1vO3JldHVybiByKFtsLHtzb3VyY2U6dSxmbGFnczpjfV0sbyl9Y2FzZSA1OntsZXQgdT1bXSxjPXIoW2wsdV0sbyk7Zm9yKGxldFtiLHZdb2Ygbykoc3x8IShCaWUoU2soYikpfHxCaWUoU2sodikpKSkmJnUucHVzaChbbihiKSxuKHYpXSk7cmV0dXJuIGN9Y2FzZSA2OntsZXQgdT1bXSxjPXIoW2wsdV0sbyk7Zm9yKGxldCBiIG9mIG8pKHN8fCFCaWUoU2soYikpKSYmdS5wdXNoKG4oYikpO3JldHVybiBjfX1sZXR7bWVzc2FnZTpkfT1vO3JldHVybiByKFtsLHtuYW1lOnAsbWVzc2FnZTpkfV0sbyl9LCJwYWlyIik7cmV0dXJuIG59LCJzZXJpYWxpemVyIiksSGllPWkoKHMse2pzb246ZSxsb3NzeTp0fT17fSk9PntsZXQgYT1bXTtyZXR1cm4gRkZhKCEoZXx8dCksISFlLG5ldyBNYXAsYSkocyksYX0sInNlcmlhbGl6ZSIpfSk7dmFyIEpwLHFpZT1nKCgpPT57JGJ0KCk7RGJ0KCk7SnA9dHlwZW9mIHN0cnVjdHVyZWRDbG9uZT09ImZ1bmN0aW9uIj8ocyxlKT0+ZSYmKCJqc29uImluIGV8fCJsb3NzeSJpbiBlKT9GaWUoSGllKHMsZSkpOnN0cnVjdHVyZWRDbG9uZShzKToocyxlKT0+RmllKEhpZShzLGUpKX0pO2Z1bmN0aW9uIExidChzKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQpe2xldCBhPXQmJnQucG9zaXRpb24mJnQucG9zaXRpb25bc118fHt9O2lmKHR5cGVvZiBhLmxpbmU9PSJudW1iZXIiJiZhLmxpbmU+MCYmdHlwZW9mIGEuY29sdW1uPT0ibnVtYmVyIiYmYS5jb2x1bW4+MClyZXR1cm57bGluZTphLmxpbmUsY29sdW1uOmEuY29sdW1uLG9mZnNldDp0eXBlb2YgYS5vZmZzZXQ9PSJudW1iZXIiJiZhLm9mZnNldD4tMT9hLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBfayhzKXtsZXQgZT1WaWUocyksdD1qaWUocyk7aWYoZSYmdClyZXR1cm57c3RhcnQ6ZSxlbmQ6dH19dmFyIGppZSxWaWUsRWJ0PWcoKCk9PntqaWU9TGJ0KCJlbmQiKSxWaWU9TGJ0KCJzdGFydCIpO2koTGJ0LCJwb2ludCIpO2koX2ssInBvc2l0aW9uIil9KTt2YXIgVWllPWcoKCk9PntFYnQoKX0pO3ZhciBJMyxXaWUsRm1lPWcoKCk9PntJMz1bImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5Il0sV2llPXthbmNlc3RvcnM6e3Rib2R5OlsidGFibGUiXSx0ZDpbInRhYmxlIl0sdGg6WyJ0YWJsZSJdLHRoZWFkOlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sdHI6WyJ0YWJsZSJdfSxhdHRyaWJ1dGVzOnthOlsuLi5JMywiZGF0YUZvb3Rub3RlQmFja3JlZiIsImRhdGFGb290bm90ZVJlZiIsWyJjbGFzc05hbWUiLCJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXSwiaHJlZiJdLGJsb2NrcXVvdGU6WyJjaXRlIl0sY29kZTpbWyJjbGFzc05hbWUiLC9ebGFuZ3VhZ2UtLi9dXSxkZWw6WyJjaXRlIl0sZGl2OlsiaXRlbVNjb3BlIiwiaXRlbVR5cGUiXSxkbDpbLi4uSTNdLGgyOltbImNsYXNzTmFtZSIsInNyLW9ubHkiXV0saW1nOlsuLi5JMywibG9uZ0Rlc2MiLCJzcmMiXSxpbnB1dDpbWyJkaXNhYmxlZCIsITBdLFsidHlwZSIsImNoZWNrYm94Il1dLGluczpbImNpdGUiXSxsaTpbWyJjbGFzc05hbWUiLCJ0YXNrLWxpc3QtaXRlbSJdXSxvbDpbLi4uSTMsWyJjbGFzc05hbWUiLCJjb250YWlucy10YXNrLWxpc3QiXV0scTpbImNpdGUiXSxzZWN0aW9uOlsiZGF0YUZvb3Rub3RlcyIsWyJjbGFzc05hbWUiLCJmb290bm90ZXMiXV0sc291cmNlOlsic3JjU2V0Il0sc3VtbWFyeTpbLi4uSTNdLHRhYmxlOlsuLi5JM10sdWw6Wy4uLkkzLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLCIqIjpbImFiYnIiLCJhY2NlcHQiLCJhY2NlcHRDaGFyc2V0IiwiYWNjZXNzS2V5IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJheGlzIiwiYm9yZGVyIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYXIiLCJjaGFyT2ZmIiwiY2hhclNldCIsImNoZWNrZWQiLCJjbGVhciIsImNvbFNwYW4iLCJjb2xvciIsImNvbHMiLCJjb21wYWN0IiwiY29vcmRzIiwiZGF0ZVRpbWUiLCJkaXIiLCJlbmNUeXBlIiwiZnJhbWUiLCJoU3BhY2UiLCJoZWFkZXJzIiwiaGVpZ2h0IiwiaHJlZkxhbmciLCJodG1sRm9yIiwiaWQiLCJpc01hcCIsIml0ZW1Qcm9wIiwibGFiZWwiLCJsYW5nIiwibWF4TGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtdWx0aXBsZSIsIm5hbWUiLCJub0hyZWYiLCJub1NoYWRlIiwibm9XcmFwIiwib3BlbiIsInByb21wdCIsInJlYWRPbmx5IiwicmV2Iiwicm93U3BhbiIsInJvd3MiLCJydWxlcyIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzcGFuIiwic3RhcnQiLCJzdW1tYXJ5IiwidGFiSW5kZXgiLCJ0aXRsZSIsInVzZU1hcCIsInZBbGlnbiIsInZhbHVlIiwid2lkdGgiXX0sY2xvYmJlcjpbImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbGxlZEJ5IiwiaWQiLCJuYW1lIl0sY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscHJvdG9jb2xzOntjaXRlOlsiaHR0cCIsImh0dHBzIl0saHJlZjpbImh0dHAiLCJodHRwcyIsImlyYyIsImlyY3MiLCJtYWlsdG8iLCJ4bXBwIl0sbG9uZ0Rlc2M6WyJodHRwIiwiaHR0cHMiXSxzcmM6WyJodHRwIiwiaHR0cHMiXX0scmVxdWlyZWQ6e2lucHV0OntkaXNhYmxlZDohMCx0eXBlOiJjaGVja2JveCJ9fSxzdHJpcDpbInNjcmlwdCJdLHRhZ05hbWVzOlsiYSIsImIiLCJibG9ja3F1b3RlIiwiYnIiLCJjb2RlIiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaHIiLCJpIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQiLCJsaSIsIm9sIiwicCIsInBpY3R1cmUiLCJwcmUiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNlY3Rpb24iLCJzb3VyY2UiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRmb290IiwidGgiLCJ0aGVhZCIsInRyIiwidHQiLCJ1bCIsInZhciJdfX0pO2Z1bmN0aW9uIEJtZShzLGUpe2xldCB0PXt0eXBlOiJyb290IixjaGlsZHJlbjpbXX0sYT17c2NoZW1hOmU/ey4uLldpZSwuLi5lfTpXaWUsc3RhY2s6W119LHI9UGJ0KGEscyk7cmV0dXJuIHImJihBcnJheS5pc0FycmF5KHIpP3IubGVuZ3RoPT09MT90PXJbMF06dC5jaGlsZHJlbj1yOnQ9ciksdH1mdW5jdGlvbiBQYnQocyxlKXtpZihlJiZ0eXBlb2YgZT09Im9iamVjdCIpe2xldCB0PWU7c3dpdGNoKHR5cGVvZiB0LnR5cGU9PSJzdHJpbmciP3QudHlwZToiIil7Y2FzZSJjb21tZW50IjpyZXR1cm4gQkZhKHMsdCk7Y2FzZSJkb2N0eXBlIjpyZXR1cm4gSEZhKHMsdCk7Y2FzZSJlbGVtZW50IjpyZXR1cm4gcUZhKHMsdCk7Y2FzZSJyb290IjpyZXR1cm4gakZhKHMsdCk7Y2FzZSJ0ZXh0IjpyZXR1cm4gVkZhKHMsdCk7ZGVmYXVsdDp9fX1mdW5jdGlvbiBCRmEocyxlKXtpZihzLnNjaGVtYS5hbGxvd0NvbW1lbnRzKXtsZXQgdD10eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIixhPXQuaW5kZXhPZigiLS0+Iiksbj17dHlwZToiY29tbWVudCIsdmFsdWU6YTwwP3Q6dC5zbGljZSgwLGEpfTtyZXR1cm4gTWsobixlKSxufX1mdW5jdGlvbiBIRmEocyxlKXtpZihzLnNjaGVtYS5hbGxvd0RvY3R5cGVzKXtsZXQgdD17dHlwZToiZG9jdHlwZSJ9O3JldHVybiBNayh0LGUpLHR9fWZ1bmN0aW9uIHFGYShzLGUpe2xldCB0PXR5cGVvZiBlLnRhZ05hbWU9PSJzdHJpbmciP2UudGFnTmFtZToiIjtzLnN0YWNrLnB1c2godCk7bGV0IGE9SWJ0KHMsZS5jaGlsZHJlbikscj1VRmEocyxlLnByb3BlcnRpZXMpO3Muc3RhY2sucG9wKCk7bGV0IG49ITE7aWYodCYmdCE9PSIqIiYmKCFzLnNjaGVtYS50YWdOYW1lc3x8cy5zY2hlbWEudGFnTmFtZXMuaW5jbHVkZXModCkpJiYobj0hMCxzLnNjaGVtYS5hbmNlc3RvcnMmJmVoLmNhbGwocy5zY2hlbWEuYW5jZXN0b3JzLHQpKSl7bGV0IGw9cy5zY2hlbWEuYW5jZXN0b3JzW3RdLHA9LTE7Zm9yKG49ITE7KytwPGwubGVuZ3RoOylzLnN0YWNrLmluY2x1ZGVzKGxbcF0pJiYobj0hMCl9aWYoIW4pcmV0dXJuIHMuc2NoZW1hLnN0cmlwJiYhcy5zY2hlbWEuc3RyaXAuaW5jbHVkZXModCk/YTp2b2lkIDA7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6dCxwcm9wZXJ0aWVzOnIsY2hpbGRyZW46YX07cmV0dXJuIE1rKG8sZSksb31mdW5jdGlvbiBqRmEocyxlKXtsZXQgYT17dHlwZToicm9vdCIsY2hpbGRyZW46SWJ0KHMsZS5jaGlsZHJlbil9O3JldHVybiBNayhhLGUpLGF9ZnVuY3Rpb24gVkZhKHMsZSl7bGV0IGE9e3R5cGU6InRleHQiLHZhbHVlOnR5cGVvZiBlLnZhbHVlPT0ic3RyaW5nIj9lLnZhbHVlOiIifTtyZXR1cm4gTWsoYSxlKSxhfWZ1bmN0aW9uIElidChzLGUpe2xldCB0PVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPWUscj0tMTtmb3IoOysrcjxhLmxlbmd0aDspe2xldCBuPVBidChzLGFbcl0pO24mJihBcnJheS5pc0FycmF5KG4pP3QucHVzaCguLi5uKTp0LnB1c2gobikpfX1yZXR1cm4gdH1mdW5jdGlvbiBVRmEocyxlKXtsZXQgdD1zLnN0YWNrW3Muc3RhY2subGVuZ3RoLTFdLGE9cy5zY2hlbWEuYXR0cmlidXRlcyxyPXMuc2NoZW1hLnJlcXVpcmVkLG49YSYmZWguY2FsbChhLHQpP2FbdF06dm9pZCAwLG89YSYmZWguY2FsbChhLCIqIik/YVsiKiJdOnZvaWQgMCxsPWUmJnR5cGVvZiBlPT0ib2JqZWN0Ij9lOnt9LHA9e30sZDtmb3IoZCBpbiBsKWlmKGVoLmNhbGwobCxkKSl7bGV0IHU9bFtkXSxjPUFidChzLFJidChuLGQpLGQsdSk7Yz09bnVsbCYmKGM9QWJ0KHMsUmJ0KG8sZCksZCx1KSksYyE9bnVsbCYmKHBbZF09Yyl9aWYociYmZWguY2FsbChyLHQpKXtsZXQgdT1yW3RdO2ZvcihkIGluIHUpZWguY2FsbCh1LGQpJiYhZWguY2FsbChwLGQpJiYocFtkXT11W2RdKX1yZXR1cm4gcH1mdW5jdGlvbiBBYnQocyxlLHQsYSl7cmV0dXJuIGU/QXJyYXkuaXNBcnJheShhKT9XRmEocyxlLHQsYSk6TmJ0KHMsZSx0LGEpOnZvaWQgMH1mdW5jdGlvbiBXRmEocyxlLHQsYSl7bGV0IHI9LTEsbj1bXTtmb3IoOysrcjxhLmxlbmd0aDspe2xldCBvPU5idChzLGUsdCxhW3JdKTsodHlwZW9mIG89PSJudW1iZXIifHx0eXBlb2Ygbz09InN0cmluZyIpJiZuLnB1c2gobyl9cmV0dXJuIG59ZnVuY3Rpb24gTmJ0KHMsZSx0LGEpe2lmKCEodHlwZW9mIGEhPSJib29sZWFuIiYmdHlwZW9mIGEhPSJudW1iZXIiJiZ0eXBlb2YgYSE9InN0cmluZyIpJiZHRmEocyx0LGEpKXtpZih0eXBlb2YgZT09Im9iamVjdCImJmUubGVuZ3RoPjEpe2xldCByPSExLG49MDtmb3IoOysrbjxlLmxlbmd0aDspe2xldCBvPWVbbl07aWYobyYmdHlwZW9mIG89PSJvYmplY3QiJiYiZmxhZ3MiaW4gbyl7aWYoby50ZXN0KFN0cmluZyhhKSkpe3I9ITA7YnJlYWt9fWVsc2UgaWYobz09PWEpe3I9ITA7YnJlYWt9fWlmKCFyKXJldHVybn1yZXR1cm4gcy5zY2hlbWEuY2xvYmJlciYmcy5zY2hlbWEuY2xvYmJlclByZWZpeCYmcy5zY2hlbWEuY2xvYmJlci5pbmNsdWRlcyh0KT9zLnNjaGVtYS5jbG9iYmVyUHJlZml4K2E6YX19ZnVuY3Rpb24gR0ZhKHMsZSx0KXtsZXQgYT1zLnNjaGVtYS5wcm90b2NvbHMmJmVoLmNhbGwocy5zY2hlbWEucHJvdG9jb2xzLGUpP3Muc2NoZW1hLnByb3RvY29sc1tlXTp2b2lkIDA7aWYoIWF8fGEubGVuZ3RoPT09MClyZXR1cm4hMDtsZXQgcj1TdHJpbmcodCksbj1yLmluZGV4T2YoIjoiKSxvPXIuaW5kZXhPZigiPyIpLGw9ci5pbmRleE9mKCIjIikscD1yLmluZGV4T2YoIi8iKTtpZihuPDB8fHA+LTEmJm4+cHx8bz4tMSYmbj5vfHxsPi0xJiZuPmwpcmV0dXJuITA7bGV0IGQ9LTE7Zm9yKDsrK2Q8YS5sZW5ndGg7KXtsZXQgdT1hW2RdO2lmKG49PT11Lmxlbmd0aCYmci5zbGljZSgwLHUubGVuZ3RoKT09PXUpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gTWsocyxlKXtsZXQgdD1fayhlKTtlLmRhdGEmJihzLmRhdGE9SnAoZS5kYXRhKSksdCYmKHMucG9zaXRpb249dCl9ZnVuY3Rpb24gUmJ0KHMsZSl7bGV0IHQsYT0tMTtpZihzKWZvcig7KythPHMubGVuZ3RoOyl7bGV0IHI9c1thXSxuPXR5cGVvZiByPT0ic3RyaW5nIj9yOnJbMF07aWYobj09PWUpcmV0dXJuIHI7bj09PSJkYXRhKiImJih0PXIpfWlmKGUubGVuZ3RoPjQmJmUuc2xpY2UoMCw0KS50b0xvd2VyQ2FzZSgpPT09ImRhdGEiKXJldHVybiB0fXZhciBlaCxPYnQ9ZygoKT0+e3FpZSgpO1VpZSgpO0ZtZSgpO2VoPXt9Lmhhc093blByb3BlcnR5O2koQm1lLCJzYW5pdGl6ZSIpO2koUGJ0LCJ0cmFuc2Zvcm0iKTtpKEJGYSwiY29tbWVudCIpO2koSEZhLCJkb2N0eXBlIik7aShxRmEsImVsZW1lbnQiKTtpKGpGYSwicm9vdCIpO2koVkZhLCJ0ZXh0Iik7aShJYnQsImNoaWxkcmVuIik7aShVRmEsInByb3BlcnRpZXMiKTtpKEFidCwicHJvcGVydHlWYWx1ZSIpO2koV0ZhLCJwcm9wZXJ0eVZhbHVlTWFueSIpO2koTmJ0LCJwcm9wZXJ0eVZhbHVlUHJpbWl0aXZlIik7aShHRmEsInNhZmVQcm90b2NvbCIpO2koTWssInBhdGNoIik7aShSYnQsImZpbmREZWZpbml0aW9uIil9KTt2YXIgRmJ0PWcoKCk9PntPYnQoKTtGbWUoKX0pO2Z1bmN0aW9uIEJidChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJibG9ja3F1b3RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChzLmFsbChlKSwhMCl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgSGJ0PWcoKCk9PntpKEJidCwiYmxvY2txdW90ZSIpfSk7ZnVuY3Rpb24gcWJ0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gcy5wYXRjaChlLHQpLFtzLmFwcGx5RGF0YShlLHQpLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX12YXIgamJ0PWcoKCk9PntpKHFidCwiaGFyZEJyZWFrIil9KTtmdW5jdGlvbiBWYnQocyxlKXtsZXQgdD1lLnZhbHVlP2UudmFsdWUrYApgOiIiLGE9e30scj1lLmxhbmc/ZS5sYW5nLnNwbGl0KC9ccysvKTpbXTtyLmxlbmd0aD4wJiYoYS5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK3JbMF1dKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczphLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6dH1dfTtyZXR1cm4gZS5tZXRhJiYobi5kYXRhPXttZXRhOmUubWV0YX0pLHMucGF0Y2goZSxuKSxuPXMuYXBwbHlEYXRhKGUsbiksbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicHJlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltuXX0scy5wYXRjaChlLG4pLG59dmFyIFVidD1nKCgpPT57aShWYnQsImNvZGUiKX0pO2Z1bmN0aW9uIFdidChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJkZWwiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46cy5hbGwoZSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgR2J0PWcoKCk9PntpKFdidCwic3RyaWtldGhyb3VnaCIpfSk7ZnVuY3Rpb24gS2J0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImVtIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIFlidD1nKCgpPT57aShLYnQsImVtcGhhc2lzIil9KTtmdW5jdGlvbiBaYnQocyxlKXtsZXQgdD10eXBlb2Ygcy5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP3Mub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixhPVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCkscj1WbChhLnRvTG93ZXJDYXNlKCkpLG49cy5mb290bm90ZU9yZGVyLmluZGV4T2YoYSksbyxsPXMuZm9vdG5vdGVDb3VudHMuZ2V0KGEpO2w9PT12b2lkIDA/KGw9MCxzLmZvb3Rub3RlT3JkZXIucHVzaChhKSxvPXMuZm9vdG5vdGVPcmRlci5sZW5ndGgpOm89bisxLGwrPTEscy5mb290bm90ZUNvdW50cy5zZXQoYSxsKTtsZXQgcD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczp7aHJlZjoiIyIrdCsiZm4tIityLGlkOnQrImZucmVmLSIrcisobD4xPyItIitsOiIiKSxkYXRhRm9vdG5vdGVSZWY6ITAsYXJpYURlc2NyaWJlZEJ5OlsiZm9vdG5vdGUtbGFiZWwiXX0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTdHJpbmcobyl9XX07cy5wYXRjaChlLHApO2xldCBkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdXAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3BdfTtyZXR1cm4gcy5wYXRjaChlLGQpLHMuYXBwbHlEYXRhKGUsZCl9dmFyIFhidD1nKCgpPT57eWQoKTtpKFpidCwiZm9vdG5vdGVSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIFFidChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJoIitlLmRlcHRoLHByb3BlcnRpZXM6e30sY2hpbGRyZW46cy5hbGwoZSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgSmJ0PWcoKCk9PntpKFFidCwiaGVhZGluZyIpfSk7ZnVuY3Rpb24gZXZ0KHMsZSl7aWYocy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCl7bGV0IHQ9e3R5cGU6InJhdyIsdmFsdWU6ZS52YWx1ZX07cmV0dXJuIHMucGF0Y2goZSx0KSxzLmFwcGx5RGF0YShlLHQpfX12YXIgdHZ0PWcoKCk9PntpKGV2dCwiaHRtbCIpfSk7ZnVuY3Rpb24gR2llKHMsZSl7bGV0IHQ9ZS5yZWZlcmVuY2VUeXBlLGE9Il0iO2lmKHQ9PT0iY29sbGFwc2VkIj9hKz0iW10iOnQ9PT0iZnVsbCImJihhKz0iWyIrKGUubGFiZWx8fGUuaWRlbnRpZmllcikrIl0iKSxlLnR5cGU9PT0iaW1hZ2VSZWZlcmVuY2UiKXJldHVyblt7dHlwZToidGV4dCIsdmFsdWU6IiFbIitlLmFsdCthfV07bGV0IHI9cy5hbGwoZSksbj1yWzBdO24mJm4udHlwZT09PSJ0ZXh0Ij9uLnZhbHVlPSJbIituLnZhbHVlOnIudW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IlsifSk7bGV0IG89cltyLmxlbmd0aC0xXTtyZXR1cm4gbyYmby50eXBlPT09InRleHQiP28udmFsdWUrPWE6ci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTphfSkscn12YXIgSG1lPWcoKCk9PntpKEdpZSwicmV2ZXJ0Iil9KTtmdW5jdGlvbiBhdnQocyxlKXtsZXQgdD1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGE9cy5kZWZpbml0aW9uQnlJZC5nZXQodCk7aWYoIWEpcmV0dXJuIEdpZShzLGUpO2xldCByPXtzcmM6VmwoYS51cmx8fCIiKSxhbHQ6ZS5hbHR9O2EudGl0bGUhPT1udWxsJiZhLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1hLnRpdGxlKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiBzLnBhdGNoKGUsbikscy5hcHBseURhdGEoZSxuKX12YXIgc3Z0PWcoKCk9Pnt5ZCgpO0htZSgpO2koYXZ0LCJpbWFnZVJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gaXZ0KHMsZSl7bGV0IHQ9e3NyYzpWbChlLnVybCl9O2UuYWx0IT09bnVsbCYmZS5hbHQhPT12b2lkIDAmJih0LmFsdD1lLmFsdCksZS50aXRsZSE9PW51bGwmJmUudGl0bGUhPT12b2lkIDAmJih0LnRpdGxlPWUudGl0bGUpO2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbWciLHByb3BlcnRpZXM6dCxjaGlsZHJlbjpbXX07cmV0dXJuIHMucGF0Y2goZSxhKSxzLmFwcGx5RGF0YShlLGEpfXZhciBydnQ9ZygoKT0+e3lkKCk7aShpdnQsImltYWdlIil9KTtmdW5jdGlvbiBvdnQocyxlKXtsZXQgdD17dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIil9O3MucGF0Y2goZSx0KTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbdF19O3JldHVybiBzLnBhdGNoKGUsYSkscy5hcHBseURhdGEoZSxhKX12YXIgbnZ0PWcoKCk9PntpKG92dCwiaW5saW5lQ29kZSIpfSk7ZnVuY3Rpb24gbHZ0KHMsZSl7bGV0IHQ9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPXMuZGVmaW5pdGlvbkJ5SWQuZ2V0KHQpO2lmKCFhKXJldHVybiBHaWUocyxlKTtsZXQgcj17aHJlZjpWbChhLnVybHx8IiIpfTthLnRpdGxlIT09bnVsbCYmYS50aXRsZSE9PXZvaWQgMCYmKHIudGl0bGU9YS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6cixjaGlsZHJlbjpzLmFsbChlKX07cmV0dXJuIHMucGF0Y2goZSxuKSxzLmFwcGx5RGF0YShlLG4pfXZhciBjdnQ9ZygoKT0+e3lkKCk7SG1lKCk7aShsdnQsImxpbmtSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIGR2dChzLGUpe2xldCB0PXtocmVmOlZsKGUudXJsKX07ZS50aXRsZSE9PW51bGwmJmUudGl0bGUhPT12b2lkIDAmJih0LnRpdGxlPWUudGl0bGUpO2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnQsY2hpbGRyZW46cy5hbGwoZSl9O3JldHVybiBzLnBhdGNoKGUsYSkscy5hcHBseURhdGEoZSxhKX12YXIgdXZ0PWcoKCk9Pnt5ZCgpO2koZHZ0LCJsaW5rIil9KTtmdW5jdGlvbiBodnQocyxlLHQpe2xldCBhPXMuYWxsKGUpLHI9dD9LRmEodCk6cHZ0KGUpLG49e30sbz1bXTtpZih0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCB1PWFbMF0sYzt1JiZ1LnR5cGU9PT0iZWxlbWVudCImJnUudGFnTmFtZT09PSJwIj9jPXU6KGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119LGEudW5zaGlmdChjKSksYy5jaGlsZHJlbi5sZW5ndGg+MCYmYy5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxjLmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImlucHV0Iixwcm9wZXJ0aWVzOnt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDplLmNoZWNrZWQsZGlzYWJsZWQ6ITB9LGNoaWxkcmVuOltdfSksbi5jbGFzc05hbWU9WyJ0YXNrLWxpc3QtaXRlbSJdfWxldCBsPS0xO2Zvcig7KytsPGEubGVuZ3RoOyl7bGV0IHU9YVtsXTsocnx8bCE9PTB8fHUudHlwZSE9PSJlbGVtZW50Inx8dS50YWdOYW1lIT09InAiKSYmby5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSx1LnR5cGU9PT0iZWxlbWVudCImJnUudGFnTmFtZT09PSJwIiYmIXI/by5wdXNoKC4uLnUuY2hpbGRyZW4pOm8ucHVzaCh1KX1sZXQgcD1hW2EubGVuZ3RoLTFdO3AmJihyfHxwLnR5cGUhPT0iZWxlbWVudCJ8fHAudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7bGV0IGQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOm4sY2hpbGRyZW46b307cmV0dXJuIHMucGF0Y2goZSxkKSxzLmFwcGx5RGF0YShlLGQpfWZ1bmN0aW9uIEtGYShzKXtsZXQgZT0hMTtpZihzLnR5cGU9PT0ibGlzdCIpe2U9cy5zcHJlYWR8fCExO2xldCB0PXMuY2hpbGRyZW4sYT0tMTtmb3IoOyFlJiYrK2E8dC5sZW5ndGg7KWU9cHZ0KHRbYV0pfXJldHVybiBlfWZ1bmN0aW9uIHB2dChzKXtsZXQgZT1zLnNwcmVhZDtyZXR1cm4gZT8/cy5jaGlsZHJlbi5sZW5ndGg+MX12YXIgZnZ0PWcoKCk9PntpKGh2dCwibGlzdEl0ZW0iKTtpKEtGYSwibGlzdExvb3NlIik7aShwdnQsImxpc3RJdGVtTG9vc2UiKX0pO2Z1bmN0aW9uIG12dChzLGUpe2xldCB0PXt9LGE9cy5hbGwoZSkscj0tMTtmb3IodHlwZW9mIGUuc3RhcnQ9PSJudW1iZXIiJiZlLnN0YXJ0IT09MSYmKHQuc3RhcnQ9ZS5zdGFydCk7KytyPGEubGVuZ3RoOyl7bGV0IG89YVtyXTtpZihvLnR5cGU9PT0iZWxlbWVudCImJm8udGFnTmFtZT09PSJsaSImJm8ucHJvcGVydGllcyYmQXJyYXkuaXNBcnJheShvLnByb3BlcnRpZXMuY2xhc3NOYW1lKSYmby5wcm9wZXJ0aWVzLmNsYXNzTmFtZS5pbmNsdWRlcygidGFzay1saXN0LWl0ZW0iKSl7dC5jbGFzc05hbWU9WyJjb250YWlucy10YXNrLWxpc3QiXTticmVha319bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ZS5vcmRlcmVkPyJvbCI6InVsIixwcm9wZXJ0aWVzOnQsY2hpbGRyZW46cy53cmFwKGEsITApfTtyZXR1cm4gcy5wYXRjaChlLG4pLHMuYXBwbHlEYXRhKGUsbil9dmFyIGd2dD1nKCgpPT57aShtdnQsImxpc3QiKX0pO2Z1bmN0aW9uIGJ2dChzLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIHZ2dD1nKCgpPT57aShidnQsInBhcmFncmFwaCIpfSk7ZnVuY3Rpb24geHZ0KHMsZSl7bGV0IHQ9e3R5cGU6InJvb3QiLGNoaWxkcmVuOnMud3JhcChzLmFsbChlKSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgeXZ0PWcoKCk9PntpKHh2dCwicm9vdCIpfSk7ZnVuY3Rpb24gd3Z0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN0cm9uZyIscHJvcGVydGllczp7fSxjaGlsZHJlbjpzLmFsbChlKX07cmV0dXJuIHMucGF0Y2goZSx0KSxzLmFwcGx5RGF0YShlLHQpfXZhciBrdnQ9ZygoKT0+e2kod3Z0LCJzdHJvbmciKX0pO2Z1bmN0aW9uIFN2dChzLGUpe2xldCB0PXMuYWxsKGUpLGE9dC5zaGlmdCgpLHI9W107aWYoYSl7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRoZWFkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChbYV0sITApfTtzLnBhdGNoKGUuY2hpbGRyZW5bMF0sbyksci5wdXNoKG8pfWlmKHQubGVuZ3RoPjApe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpzLndyYXAodCwhMCl9LGw9VmllKGUuY2hpbGRyZW5bMV0pLHA9amllKGUuY2hpbGRyZW5bZS5jaGlsZHJlbi5sZW5ndGgtMV0pO2wmJnAmJihvLnBvc2l0aW9uPXtzdGFydDpsLGVuZDpwfSksci5wdXNoKG8pfWxldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0YWJsZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpzLndyYXAociwhMCl9O3JldHVybiBzLnBhdGNoKGUsbikscy5hcHBseURhdGEoZSxuKX12YXIgX3Z0PWcoKCk9PntVaWUoKTtpKFN2dCwidGFibGUiKX0pO2Z1bmN0aW9uIE12dChzLGUsdCl7bGV0IGE9dD90LmNoaWxkcmVuOnZvaWQgMCxuPShhP2EuaW5kZXhPZihlKToxKT09PTA/InRoIjoidGQiLG89dCYmdC50eXBlPT09InRhYmxlIj90LmFsaWduOnZvaWQgMCxsPW8/by5sZW5ndGg6ZS5jaGlsZHJlbi5sZW5ndGgscD0tMSxkPVtdO2Zvcig7KytwPGw7KXtsZXQgYz1lLmNoaWxkcmVuW3BdLGI9e30sdj1vP29bcF06dm9pZCAwO3YmJihiLmFsaWduPXYpO2xldCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczpiLGNoaWxkcmVuOltdfTtjJiYoeC5jaGlsZHJlbj1zLmFsbChjKSxzLnBhdGNoKGMseCkseD1zLmFwcGx5RGF0YShjLHgpKSxkLnB1c2goeCl9bGV0IHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChkLCEwKX07cmV0dXJuIHMucGF0Y2goZSx1KSxzLmFwcGx5RGF0YShlLHUpfXZhciB6dnQ9ZygoKT0+e2koTXZ0LCJ0YWJsZVJvdyIpfSk7ZnVuY3Rpb24gQ3Z0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIFR2dD1nKCgpPT57aShDdnQsInRhYmxlQ2VsbCIpfSk7ZnVuY3Rpb24gRHZ0KHMpe2xldCBlPVN0cmluZyhzKSx0PS9ccj9cbnxcci9nLGE9dC5leGVjKGUpLHI9MCxuPVtdO2Zvcig7YTspbi5wdXNoKCR2dChlLnNsaWNlKHIsYS5pbmRleCkscj4wLCEwKSxhWzBdKSxyPWEuaW5kZXgrYVswXS5sZW5ndGgsYT10LmV4ZWMoZSk7cmV0dXJuIG4ucHVzaCgkdnQoZS5zbGljZShyKSxyPjAsITEpKSxuLmpvaW4oIiIpfWZ1bmN0aW9uICR2dChzLGUsdCl7bGV0IGE9MCxyPXMubGVuZ3RoO2lmKGUpe2xldCBuPXMuY29kZVBvaW50QXQoYSk7Zm9yKDtuPT09OXx8bj09PTMyOylhKyssbj1zLmNvZGVQb2ludEF0KGEpfWlmKHQpe2xldCBuPXMuY29kZVBvaW50QXQoci0xKTtmb3IoO249PT05fHxuPT09MzI7KXItLSxuPXMuY29kZVBvaW50QXQoci0xKX1yZXR1cm4gcj5hP3Muc2xpY2UoYSxyKToiIn12YXIgbTRpLGc0aSxMdnQ9ZygoKT0+e200aT05LGc0aT0zMjtpKER2dCwidHJpbUxpbmVzIik7aSgkdnQsInRyaW1MaW5lIil9KTtmdW5jdGlvbiBFdnQocyxlKXtsZXQgdD17dHlwZToidGV4dCIsdmFsdWU6RHZ0KFN0cmluZyhlLnZhbHVlKSl9O3JldHVybiBzLnBhdGNoKGUsdCkscy5hcHBseURhdGEoZSx0KX12YXIgUHZ0PWcoKCk9PntMdnQoKTtpKEV2dCwidGV4dCIpfSk7ZnVuY3Rpb24gSXZ0KHMsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImhyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gcy5wYXRjaChlLHQpLHMuYXBwbHlEYXRhKGUsdCl9dmFyIEF2dD1nKCgpPT57aShJdnQsInRoZW1hdGljQnJlYWsiKX0pO2Z1bmN0aW9uIEtpZSgpe312YXIgcW1lLGptZT1nKCgpPT57SGJ0KCk7amJ0KCk7VWJ0KCk7R2J0KCk7WWJ0KCk7WGJ0KCk7SmJ0KCk7dHZ0KCk7c3Z0KCk7cnZ0KCk7bnZ0KCk7Y3Z0KCk7dXZ0KCk7ZnZ0KCk7Z3Z0KCk7dnZ0KCk7eXZ0KCk7a3Z0KCk7X3Z0KCk7enZ0KCk7VHZ0KCk7UHZ0KCk7QXZ0KCk7cW1lPXtibG9ja3F1b3RlOkJidCxicmVhazpxYnQsY29kZTpWYnQsZGVsZXRlOldidCxlbXBoYXNpczpLYnQsZm9vdG5vdGVSZWZlcmVuY2U6WmJ0LGhlYWRpbmc6UWJ0LGh0bWw6ZXZ0LGltYWdlUmVmZXJlbmNlOmF2dCxpbWFnZTppdnQsaW5saW5lQ29kZTpvdnQsbGlua1JlZmVyZW5jZTpsdnQsbGluazpkdnQsbGlzdEl0ZW06aHZ0LGxpc3Q6bXZ0LHBhcmFncmFwaDpidnQscm9vdDp4dnQsc3Ryb25nOnd2dCx0YWJsZTpTdnQsdGFibGVDZWxsOkN2dCx0YWJsZVJvdzpNdnQsdGV4dDpFdnQsdGhlbWF0aWNCcmVhazpJdnQsdG9tbDpLaWUseWFtbDpLaWUsZGVmaW5pdGlvbjpLaWUsZm9vdG5vdGVEZWZpbml0aW9uOktpZX07aShLaWUsImlnbm9yZSIpfSk7ZnVuY3Rpb24gTnZ0KHMsZSl7bGV0IHQ9W3t0eXBlOiJ0ZXh0Iix2YWx1ZToiXHUyMUE5In1dO3JldHVybiBlPjEmJnQucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKGUpfV19KSx0fWZ1bmN0aW9uIFJ2dChzLGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhzKzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIE92dChzKXtsZXQgZT10eXBlb2Ygcy5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP3Mub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIix0PXMub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxOdnQsYT1zLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWx8fFJ2dCxyPXMub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIixuPXMub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixvPXMub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0sbD1bXSxwPS0xO2Zvcig7KytwPHMuZm9vdG5vdGVPcmRlci5sZW5ndGg7KXtsZXQgZD1zLmZvb3Rub3RlQnlJZC5nZXQocy5mb290bm90ZU9yZGVyW3BdKTtpZighZCljb250aW51ZTtsZXQgdT1zLmFsbChkKSxjPVN0cmluZyhkLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksYj1WbChjLnRvTG93ZXJDYXNlKCkpLHY9MCx4PVtdLG09cy5mb290bm90ZUNvdW50cy5nZXQoYyk7Zm9yKDttIT09dm9pZCAwJiYrK3Y8PW07KXt4Lmxlbmd0aD4wJiZ4LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCBNPXR5cGVvZiB0PT0ic3RyaW5nIj90OnQocCx2KTt0eXBlb2YgTT09InN0cmluZyImJihNPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpNfSkseC5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIitlKyJmbnJlZi0iK2IrKHY+MT8iLSIrdjoiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIGE9PSJzdHJpbmciP2E6YShwLHYpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KE0pP006W01dfSl9bGV0IGY9dVt1Lmxlbmd0aC0xXTtpZihmJiZmLnR5cGU9PT0iZWxlbWVudCImJmYudGFnTmFtZT09PSJwIil7bGV0IE09Zi5jaGlsZHJlbltmLmNoaWxkcmVuLmxlbmd0aC0xXTtNJiZNLnR5cGU9PT0idGV4dCI/TS52YWx1ZSs9IiAiOmYuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZi5jaGlsZHJlbi5wdXNoKC4uLngpfWVsc2UgdS5wdXNoKC4uLngpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6ZSsiZm4tIitifSxjaGlsZHJlbjpzLndyYXAodSwhMCl9O3MucGF0Y2goZCx5KSxsLnB1c2goeSl9aWYobC5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6bixwcm9wZXJ0aWVzOnsuLi5KcChvKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnJ9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMud3JhcChsLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX12YXIgVm1lPWcoKCk9PntxaWUoKTt5ZCgpO2koTnZ0LCJkZWZhdWx0Rm9vdG5vdGVCYWNrQ29udGVudCIpO2koUnZ0LCJkZWZhdWx0Rm9vdG5vdGVCYWNrTGFiZWwiKTtpKE92dCwiZm9vdGVyIil9KTtmdW5jdGlvbiBCdnQocyxlKXtsZXQgdD1lfHxZRmEsYT1uZXcgTWFwLHI9bmV3IE1hcCxuPW5ldyBNYXAsbz17Li4ucW1lLC4uLnQuaGFuZGxlcnN9LGw9e2FsbDpkLGFwcGx5RGF0YTpYRmEsZGVmaW5pdGlvbkJ5SWQ6YSxmb290bm90ZUJ5SWQ6cixmb290bm90ZUNvdW50czpuLGZvb3Rub3RlT3JkZXI6W10saGFuZGxlcnM6byxvbmU6cCxvcHRpb25zOnQscGF0Y2g6WkZhLHdyYXA6SkZhfTtyZXR1cm4gY2socyxmdW5jdGlvbih1KXtpZih1LnR5cGU9PT0iZGVmaW5pdGlvbiJ8fHUudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtsZXQgYz11LnR5cGU9PT0iZGVmaW5pdGlvbiI/YTpyLGI9U3RyaW5nKHUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKTtjLmhhcyhiKXx8Yy5zZXQoYix1KX19KSxsO2Z1bmN0aW9uIHAodSxjKXtsZXQgYj11LnR5cGUsdj1sLmhhbmRsZXJzW2JdO2lmKFVtZS5jYWxsKGwuaGFuZGxlcnMsYikmJnYpcmV0dXJuIHYobCx1LGMpO2lmKGwub3B0aW9ucy5wYXNzVGhyb3VnaCYmbC5vcHRpb25zLnBhc3NUaHJvdWdoLmluY2x1ZGVzKGIpKXtpZigiY2hpbGRyZW4iaW4gdSl7bGV0e2NoaWxkcmVuOm0sLi4uZn09dSx5PUpwKGYpO3JldHVybiB5LmNoaWxkcmVuPWwuYWxsKHUpLHl9cmV0dXJuIEpwKHUpfXJldHVybihsLm9wdGlvbnMudW5rbm93bkhhbmRsZXJ8fFFGYSkobCx1LGMpfWkocCwib25lIik7ZnVuY3Rpb24gZCh1KXtsZXQgYz1bXTtpZigiY2hpbGRyZW4iaW4gdSl7bGV0IGI9dS5jaGlsZHJlbix2PS0xO2Zvcig7Kyt2PGIubGVuZ3RoOyl7bGV0IHg9bC5vbmUoYlt2XSx1KTtpZih4KXtpZih2JiZiW3YtMV0udHlwZT09PSJicmVhayImJighQXJyYXkuaXNBcnJheSh4KSYmeC50eXBlPT09InRleHQiJiYoeC52YWx1ZT1GdnQoeC52YWx1ZSkpLCFBcnJheS5pc0FycmF5KHgpJiZ4LnR5cGU9PT0iZWxlbWVudCIpKXtsZXQgbT14LmNoaWxkcmVuWzBdO20mJm0udHlwZT09PSJ0ZXh0IiYmKG0udmFsdWU9RnZ0KG0udmFsdWUpKX1BcnJheS5pc0FycmF5KHgpP2MucHVzaCguLi54KTpjLnB1c2goeCl9fX1yZXR1cm4gY31pKGQsImFsbCIpfWZ1bmN0aW9uIFpGYShzLGUpe3MucG9zaXRpb24mJihlLnBvc2l0aW9uPV9rKHMpKX1mdW5jdGlvbiBYRmEocyxlKXtsZXQgdD1lO2lmKHMmJnMuZGF0YSl7bGV0IGE9cy5kYXRhLmhOYW1lLHI9cy5kYXRhLmhDaGlsZHJlbixuPXMuZGF0YS5oUHJvcGVydGllcztpZih0eXBlb2YgYT09InN0cmluZyIpaWYodC50eXBlPT09ImVsZW1lbnQiKXQudGFnTmFtZT1hO2Vsc2V7bGV0IG89ImNoaWxkcmVuImluIHQ/dC5jaGlsZHJlbjpbdF07dD17dHlwZToiZWxlbWVudCIsdGFnTmFtZTphLHByb3BlcnRpZXM6e30sY2hpbGRyZW46b319dC50eXBlPT09ImVsZW1lbnQiJiZuJiZPYmplY3QuYXNzaWduKHQucHJvcGVydGllcyxKcChuKSksImNoaWxkcmVuImluIHQmJnQuY2hpbGRyZW4mJnIhPT1udWxsJiZyIT09dm9pZCAwJiYodC5jaGlsZHJlbj1yKX1yZXR1cm4gdH1mdW5jdGlvbiBRRmEocyxlKXtsZXQgdD1lLmRhdGF8fHt9LGE9InZhbHVlImluIGUmJiEoVW1lLmNhbGwodCwiaFByb3BlcnRpZXMiKXx8VW1lLmNhbGwodCwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTplLnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnMuYWxsKGUpfTtyZXR1cm4gcy5wYXRjaChlLGEpLHMuYXBwbHlEYXRhKGUsYSl9ZnVuY3Rpb24gSkZhKHMsZSl7bGV0IHQ9W10sYT0tMTtmb3IoZSYmdC5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTsrK2E8cy5sZW5ndGg7KWEmJnQucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksdC5wdXNoKHNbYV0pO3JldHVybiBlJiZzLmxlbmd0aD4wJiZ0LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHR9ZnVuY3Rpb24gRnZ0KHMpe2xldCBlPTAsdD1zLmNoYXJDb2RlQXQoZSk7Zm9yKDt0PT09OXx8dD09PTMyOyllKyssdD1zLmNoYXJDb2RlQXQoZSk7cmV0dXJuIHMuc2xpY2UoZSl9dmFyIFVtZSxZRmEsSHZ0PWcoKCk9PntxaWUoKTtnZmUoKTtVaWUoKTtqbWUoKTtVbWU9e30uaGFzT3duUHJvcGVydHksWUZhPXt9O2koQnZ0LCJjcmVhdGVTdGF0ZSIpO2koWkZhLCJwYXRjaCIpO2koWEZhLCJhcHBseURhdGEiKTtpKFFGYSwiZGVmYXVsdFVua25vd25IYW5kbGVyIik7aShKRmEsIndyYXAiKTtpKEZ2dCwidHJpbU1hcmtkb3duU3BhY2VTdGFydCIpfSk7ZnVuY3Rpb24gV21lKHMsZSl7bGV0IHQ9QnZ0KHMsZSksYT10Lm9uZShzLHZvaWQgMCkscj1PdnQodCksbj1BcnJheS5pc0FycmF5KGEpP3t0eXBlOiJyb290IixjaGlsZHJlbjphfTphfHx7dHlwZToicm9vdCIsY2hpbGRyZW46W119O3JldHVybiByJiYoImNoaWxkcmVuImluIG4sbi5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LHIpKSxufXZhciBxdnQ9ZygoKT0+e1dwKCk7Vm1lKCk7SHZ0KCk7aShXbWUsInRvSGFzdCIpfSk7dmFyIGp2dD1nKCgpPT57am1lKCk7cXZ0KCk7Vm1lKCl9KTt2YXIgVnZ0LFV2dD1nKCgpPT57VnZ0PVsiYXJlYSIsImJhc2UiLCJiYXNlZm9udCIsImJnc291bmQiLCJiciIsImNvbCIsImNvbW1hbmQiLCJlbWJlZCIsImZyYW1lIiwiaHIiLCJpbWFnZSIsImltZyIsImlucHV0Iiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJwYXJhbSIsInNvdXJjZSIsInRyYWNrIiwid2JyIl19KTt2YXIgUDAsR21lPWcoKCk9PntQMD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5ub3JtYWw9dCx0aGlzLnByb3BlcnR5PWUsYSYmKHRoaXMuc3BhY2U9YSl9fTtQMC5wcm90b3R5cGUubm9ybWFsPXt9LFAwLnByb3RvdHlwZS5wcm9wZXJ0eT17fSxQMC5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gS21lKHMsZSl7bGV0IHQ9e30sYT17fTtmb3IobGV0IHIgb2YgcylPYmplY3QuYXNzaWduKHQsci5wcm9wZXJ0eSksT2JqZWN0LmFzc2lnbihhLHIubm9ybWFsKTtyZXR1cm4gbmV3IFAwKHQsYSxlKX12YXIgV3Z0PWcoKCk9PntHbWUoKTtpKEttZSwibWVyZ2UiKX0pO2Z1bmN0aW9uIG5iKHMpe3JldHVybiBzLnRvTG93ZXJDYXNlKCl9dmFyIFlpZT1nKCgpPT57aShuYiwibm9ybWFsaXplIil9KTt2YXIgdW8sWW1lPWcoKCk9Pnt1bz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbmZvIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmF0dHJpYnV0ZT10LHRoaXMucHJvcGVydHk9ZX19O3VvLnByb3RvdHlwZS5hdHRyaWJ1dGU9IiIsdW8ucHJvdG90eXBlLmJvb2xlYW5pc2g9ITEsdW8ucHJvdG90eXBlLmJvb2xlYW49ITEsdW8ucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZD0hMSx1by5wcm90b3R5cGUuY29tbWFTZXBhcmF0ZWQ9ITEsdW8ucHJvdG90eXBlLmRlZmluZWQ9ITEsdW8ucHJvdG90eXBlLm11c3RVc2VQcm9wZXJ0eT0hMSx1by5wcm90b3R5cGUubnVtYmVyPSExLHVvLnByb3RvdHlwZS5vdmVybG9hZGVkQm9vbGVhbj0hMSx1by5wcm90b3R5cGUucHJvcGVydHk9IiIsdW8ucHJvdG90eXBlLnNwYWNlU2VwYXJhdGVkPSExLHVvLnByb3RvdHlwZS5zcGFjZT12b2lkIDB9KTt2YXIgems9e307eXQoemsse2Jvb2xlYW46KCk9PnBhLGJvb2xlYW5pc2g6KCk9PnFpLGNvbW1hT3JTcGFjZVNlcGFyYXRlZDooKT0+U2wsY29tbWFTZXBhcmF0ZWQ6KCk9PnRoLG51bWJlcjooKT0+bnQsb3ZlcmxvYWRlZEJvb2xlYW46KCk9PlppZSxzcGFjZVNlcGFyYXRlZDooKT0+QnN9KTtmdW5jdGlvbiBBMygpe3JldHVybiAyKiorK2VCYX12YXIgZUJhLHBhLHFpLFppZSxudCxCcyx0aCxTbCxDaz1nKCgpPT57ZUJhPTAscGE9QTMoKSxxaT1BMygpLFppZT1BMygpLG50PUEzKCksQnM9QTMoKSx0aD1BMygpLFNsPUEzKCk7aShBMywiaW5jcmVtZW50Iil9KTtmdW5jdGlvbiBHdnQocyxlLHQpe3QmJihzW2VdPXQpfXZhciBabWUsTjMsWG1lPWcoKCk9PntZbWUoKTtDaygpO1ptZT1PYmplY3Qua2V5cyh6ayksTjM9Y2xhc3MgZXh0ZW5kcyB1b3tzdGF0aWN7aSh0aGlzLCJEZWZpbmVkSW5mbyIpfWNvbnN0cnVjdG9yKGUsdCxhLHIpe2xldCBuPS0xO2lmKHN1cGVyKGUsdCksR3Z0KHRoaXMsInNwYWNlIixyKSx0eXBlb2YgYT09Im51bWJlciIpZm9yKDsrK248Wm1lLmxlbmd0aDspe2xldCBvPVptZVtuXTtHdnQodGhpcyxabWVbbl0sKGEmemtbb10pPT09emtbb10pfX19O04zLnByb3RvdHlwZS5kZWZpbmVkPSEwO2koR3Z0LCJtYXJrIil9KTtmdW5jdGlvbiBFYyhzKXtsZXQgZT17fSx0PXt9O2ZvcihsZXRbYSxyXW9mIE9iamVjdC5lbnRyaWVzKHMucHJvcGVydGllcykpe2xldCBuPW5ldyBOMyhhLHMudHJhbnNmb3JtKHMuYXR0cmlidXRlc3x8e30sYSkscixzLnNwYWNlKTtzLm11c3RVc2VQcm9wZXJ0eSYmcy5tdXN0VXNlUHJvcGVydHkuaW5jbHVkZXMoYSkmJihuLm11c3RVc2VQcm9wZXJ0eT0hMCksZVthXT1uLHRbbmIoYSldPWEsdFtuYihuLmF0dHJpYnV0ZSldPWF9cmV0dXJuIG5ldyBQMChlLHQscy5zcGFjZSl9dmFyIFIzPWcoKCk9PntZaWUoKTtYbWUoKTtHbWUoKTtpKEVjLCJjcmVhdGUiKX0pO3ZhciBRbWUsS3Z0PWcoKCk9PntSMygpO0NrKCk7UW1lPUVjKHtwcm9wZXJ0aWVzOnthcmlhQWN0aXZlRGVzY2VuZGFudDpudWxsLGFyaWFBdG9taWM6cWksYXJpYUF1dG9Db21wbGV0ZTpudWxsLGFyaWFCdXN5OnFpLGFyaWFDaGVja2VkOnFpLGFyaWFDb2xDb3VudDpudCxhcmlhQ29sSW5kZXg6bnQsYXJpYUNvbFNwYW46bnQsYXJpYUNvbnRyb2xzOkJzLGFyaWFDdXJyZW50Om51bGwsYXJpYURlc2NyaWJlZEJ5OkJzLGFyaWFEZXRhaWxzOm51bGwsYXJpYURpc2FibGVkOnFpLGFyaWFEcm9wRWZmZWN0OkJzLGFyaWFFcnJvck1lc3NhZ2U6bnVsbCxhcmlhRXhwYW5kZWQ6cWksYXJpYUZsb3dUbzpCcyxhcmlhR3JhYmJlZDpxaSxhcmlhSGFzUG9wdXA6bnVsbCxhcmlhSGlkZGVuOnFpLGFyaWFJbnZhbGlkOm51bGwsYXJpYUtleVNob3J0Y3V0czpudWxsLGFyaWFMYWJlbDpudWxsLGFyaWFMYWJlbGxlZEJ5OkJzLGFyaWFMZXZlbDpudCxhcmlhTGl2ZTpudWxsLGFyaWFNb2RhbDpxaSxhcmlhTXVsdGlMaW5lOnFpLGFyaWFNdWx0aVNlbGVjdGFibGU6cWksYXJpYU9yaWVudGF0aW9uOm51bGwsYXJpYU93bnM6QnMsYXJpYVBsYWNlaG9sZGVyOm51bGwsYXJpYVBvc0luU2V0Om50LGFyaWFQcmVzc2VkOnFpLGFyaWFSZWFkT25seTpxaSxhcmlhUmVsZXZhbnQ6bnVsbCxhcmlhUmVxdWlyZWQ6cWksYXJpYVJvbGVEZXNjcmlwdGlvbjpCcyxhcmlhUm93Q291bnQ6bnQsYXJpYVJvd0luZGV4Om50LGFyaWFSb3dTcGFuOm50LGFyaWFTZWxlY3RlZDpxaSxhcmlhU2V0U2l6ZTpudCxhcmlhU29ydDpudWxsLGFyaWFWYWx1ZU1heDpudCxhcmlhVmFsdWVNaW46bnQsYXJpYVZhbHVlTm93Om50LGFyaWFWYWx1ZVRleHQ6bnVsbCxyb2xlOm51bGx9LHRyYW5zZm9ybShzLGUpe3JldHVybiBlPT09InJvbGUiP2U6ImFyaWEtIitlLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCl9fSl9KTtmdW5jdGlvbiBYaWUocyxlKXtyZXR1cm4gZSBpbiBzP3NbZV06ZX12YXIgSm1lPWcoKCk9PntpKFhpZSwiY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybSIpfSk7ZnVuY3Rpb24gUWllKHMsZSl7cmV0dXJuIFhpZShzLGUudG9Mb3dlckNhc2UoKSl9dmFyIGU2ZT1nKCgpPT57Sm1lKCk7aShRaWUsImNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSIpfSk7dmFyIFl2dCxadnQ9ZygoKT0+e2U2ZSgpO1IzKCk7Q2soKTtZdnQ9RWMoe2F0dHJpYnV0ZXM6e2FjY2VwdGNoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0IixjbGFzc25hbWU6ImNsYXNzIixodG1sZm9yOiJmb3IiLGh0dHBlcXVpdjoiaHR0cC1lcXVpdiJ9LG11c3RVc2VQcm9wZXJ0eTpbImNoZWNrZWQiLCJtdWx0aXBsZSIsIm11dGVkIiwic2VsZWN0ZWQiXSxwcm9wZXJ0aWVzOnthYmJyOm51bGwsYWNjZXB0OnRoLGFjY2VwdENoYXJzZXQ6QnMsYWNjZXNzS2V5OkJzLGFjdGlvbjpudWxsLGFsbG93Om51bGwsYWxsb3dGdWxsU2NyZWVuOnBhLGFsbG93UGF5bWVudFJlcXVlc3Q6cGEsYWxsb3dVc2VyTWVkaWE6cGEsYWx0Om51bGwsYXM6bnVsbCxhc3luYzpwYSxhdXRvQ2FwaXRhbGl6ZTpudWxsLGF1dG9Db21wbGV0ZTpCcyxhdXRvRm9jdXM6cGEsYXV0b1BsYXk6cGEsYmxvY2tpbmc6QnMsY2FwdHVyZTpudWxsLGNoYXJTZXQ6bnVsbCxjaGVja2VkOnBhLGNpdGU6bnVsbCxjbGFzc05hbWU6QnMsY29sczpudCxjb2xTcGFuOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRFZGl0YWJsZTpxaSxjb250cm9sczpwYSxjb250cm9sc0xpc3Q6QnMsY29vcmRzOm50fHRoLGNyb3NzT3JpZ2luOm51bGwsZGF0YTpudWxsLGRhdGVUaW1lOm51bGwsZGVjb2Rpbmc6bnVsbCxkZWZhdWx0OnBhLGRlZmVyOnBhLGRpcjpudWxsLGRpck5hbWU6bnVsbCxkaXNhYmxlZDpwYSxkb3dubG9hZDpaaWUsZHJhZ2dhYmxlOnFpLGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmZXRjaFByaW9yaXR5Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTpwYSxmb3JtVGFyZ2V0Om51bGwsaGVhZGVyczpCcyxoZWlnaHQ6bnQsaGlkZGVuOlppZSxoaWdoOm50LGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGh0bWxGb3I6QnMsaHR0cEVxdWl2OkJzLGlkOm51bGwsaW1hZ2VTaXplczpudWxsLGltYWdlU3JjU2V0Om51bGwsaW5lcnQ6cGEsaW5wdXRNb2RlOm51bGwsaW50ZWdyaXR5Om51bGwsaXM6bnVsbCxpc01hcDpwYSxpdGVtSWQ6bnVsbCxpdGVtUHJvcDpCcyxpdGVtUmVmOkJzLGl0ZW1TY29wZTpwYSxpdGVtVHlwZTpCcyxraW5kOm51bGwsbGFiZWw6bnVsbCxsYW5nOm51bGwsbGFuZ3VhZ2U6bnVsbCxsaXN0Om51bGwsbG9hZGluZzpudWxsLGxvb3A6cGEsbG93Om50LG1hbmlmZXN0Om51bGwsbWF4Om51bGwsbWF4TGVuZ3RoOm50LG1lZGlhOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbWluTGVuZ3RoOm50LG11bHRpcGxlOnBhLG11dGVkOnBhLG5hbWU6bnVsbCxub25jZTpudWxsLG5vTW9kdWxlOnBhLG5vVmFsaWRhdGU6cGEsb25BYm9ydDpudWxsLG9uQWZ0ZXJQcmludDpudWxsLG9uQXV4Q2xpY2s6bnVsbCxvbkJlZm9yZU1hdGNoOm51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVmb3JlVG9nZ2xlOm51bGwsb25CZWZvcmVVbmxvYWQ6bnVsbCxvbkJsdXI6bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db250ZXh0TG9zdDpudWxsLG9uQ29udGV4dE1lbnU6bnVsbCxvbkNvbnRleHRSZXN0b3JlZDpudWxsLG9uQ29weTpudWxsLG9uQ3VlQ2hhbmdlOm51bGwsb25DdXQ6bnVsbCxvbkRibENsaWNrOm51bGwsb25EcmFnOm51bGwsb25EcmFnRW5kOm51bGwsb25EcmFnRW50ZXI6bnVsbCxvbkRyYWdFeGl0Om51bGwsb25EcmFnTGVhdmU6bnVsbCxvbkRyYWdPdmVyOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyb3A6bnVsbCxvbkR1cmF0aW9uQ2hhbmdlOm51bGwsb25FbXB0aWVkOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb3JtRGF0YTpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTGFuZ3VhZ2VDaGFuZ2U6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkRW5kOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1lc3NhZ2VFcnJvcjpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVqZWN0aW9uSGFuZGxlZDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TY3JvbGxFbmQ6bnVsbCxvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2xvdENoYW5nZTpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVuaGFuZGxlZFJlamVjdGlvbjpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvbldoZWVsOm51bGwsb3BlbjpwYSxvcHRpbXVtOm50LHBhdHRlcm46bnVsbCxwaW5nOkJzLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6cGEscG9wb3ZlcjpudWxsLHBvcG92ZXJUYXJnZXQ6bnVsbCxwb3BvdmVyVGFyZ2V0QWN0aW9uOm51bGwscG9zdGVyOm51bGwscHJlbG9hZDpudWxsLHJlYWRPbmx5OnBhLHJlZmVycmVyUG9saWN5Om51bGwscmVsOkJzLHJlcXVpcmVkOnBhLHJldmVyc2VkOnBhLHJvd3M6bnQscm93U3BhbjpudCxzYW5kYm94OkJzLHNjb3BlOm51bGwsc2NvcGVkOnBhLHNlYW1sZXNzOnBhLHNlbGVjdGVkOnBhLHNoYWRvd1Jvb3RDbG9uYWJsZTpwYSxzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6cGEsc2hhZG93Um9vdE1vZGU6bnVsbCxzaGFwZTpudWxsLHNpemU6bnQsc2l6ZXM6bnVsbCxzbG90Om51bGwsc3BhbjpudCxzcGVsbENoZWNrOnFpLHNyYzpudWxsLHNyY0RvYzpudWxsLHNyY0xhbmc6bnVsbCxzcmNTZXQ6bnVsbCxzdGFydDpudCxzdGVwOm51bGwsc3R5bGU6bnVsbCx0YWJJbmRleDpudCx0YXJnZXQ6bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHR5cGU6bnVsbCx0eXBlTXVzdE1hdGNoOnBhLHVzZU1hcDpudWxsLHZhbHVlOnFpLHdpZHRoOm50LHdyYXA6bnVsbCx3cml0aW5nU3VnZ2VzdGlvbnM6bnVsbCxhbGlnbjpudWxsLGFMaW5rOm51bGwsYXJjaGl2ZTpCcyxheGlzOm51bGwsYmFja2dyb3VuZDpudWxsLGJnQ29sb3I6bnVsbCxib3JkZXI6bnQsYm9yZGVyQ29sb3I6bnVsbCxib3R0b21NYXJnaW46bnQsY2VsbFBhZGRpbmc6bnVsbCxjZWxsU3BhY2luZzpudWxsLGNoYXI6bnVsbCxjaGFyT2ZmOm51bGwsY2xhc3NJZDpudWxsLGNsZWFyOm51bGwsY29kZTpudWxsLGNvZGVCYXNlOm51bGwsY29kZVR5cGU6bnVsbCxjb2xvcjpudWxsLGNvbXBhY3Q6cGEsZGVjbGFyZTpwYSxldmVudDpudWxsLGZhY2U6bnVsbCxmcmFtZTpudWxsLGZyYW1lQm9yZGVyOm51bGwsaFNwYWNlOm50LGxlZnRNYXJnaW46bnQsbGluazpudWxsLGxvbmdEZXNjOm51bGwsbG93U3JjOm51bGwsbWFyZ2luSGVpZ2h0Om50LG1hcmdpbldpZHRoOm50LG5vUmVzaXplOnBhLG5vSHJlZjpwYSxub1NoYWRlOnBhLG5vV3JhcDpwYSxvYmplY3Q6bnVsbCxwcm9maWxlOm51bGwscHJvbXB0Om51bGwscmV2Om51bGwscmlnaHRNYXJnaW46bnQscnVsZXM6bnVsbCxzY2hlbWU6bnVsbCxzY3JvbGxpbmc6cWksc3RhbmRieTpudWxsLHN1bW1hcnk6bnVsbCx0ZXh0Om51bGwsdG9wTWFyZ2luOm50LHZhbHVlVHlwZTpudWxsLHZlcnNpb246bnVsbCx2QWxpZ246bnVsbCx2TGluazpudWxsLHZTcGFjZTpudCxhbGxvd1RyYW5zcGFyZW5jeTpudWxsLGF1dG9Db3JyZWN0Om51bGwsYXV0b1NhdmU6bnVsbCxkaXNhYmxlUGljdHVyZUluUGljdHVyZTpwYSxkaXNhYmxlUmVtb3RlUGxheWJhY2s6cGEscHJlZml4Om51bGwscHJvcGVydHk6bnVsbCxyZXN1bHRzOm50LHNlY3VyaXR5Om51bGwsdW5zZWxlY3RhYmxlOm51bGx9LHNwYWNlOiJodG1sIix0cmFuc2Zvcm06UWllfSl9KTt2YXIgWHZ0LFF2dD1nKCgpPT57Sm1lKCk7UjMoKTtDaygpO1h2dD1FYyh7YXR0cmlidXRlczp7YWNjZW50SGVpZ2h0OiJhY2NlbnQtaGVpZ2h0IixhbGlnbm1lbnRCYXNlbGluZToiYWxpZ25tZW50LWJhc2VsaW5lIixhcmFiaWNGb3JtOiJhcmFiaWMtZm9ybSIsYmFzZWxpbmVTaGlmdDoiYmFzZWxpbmUtc2hpZnQiLGNhcEhlaWdodDoiY2FwLWhlaWdodCIsY2xhc3NOYW1lOiJjbGFzcyIsY2xpcFBhdGg6ImNsaXAtcGF0aCIsY2xpcFJ1bGU6ImNsaXAtcnVsZSIsY29sb3JJbnRlcnBvbGF0aW9uOiJjb2xvci1pbnRlcnBvbGF0aW9uIixjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLGNvbG9yUHJvZmlsZToiY29sb3ItcHJvZmlsZSIsY29sb3JSZW5kZXJpbmc6ImNvbG9yLXJlbmRlcmluZyIsY3Jvc3NPcmlnaW46ImNyb3Nzb3JpZ2luIixkYXRhVHlwZToiZGF0YXR5cGUiLGRvbWluYW50QmFzZWxpbmU6ImRvbWluYW50LWJhc2VsaW5lIixlbmFibGVCYWNrZ3JvdW5kOiJlbmFibGUtYmFja2dyb3VuZCIsZmlsbE9wYWNpdHk6ImZpbGwtb3BhY2l0eSIsZmlsbFJ1bGU6ImZpbGwtcnVsZSIsZmxvb2RDb2xvcjoiZmxvb2QtY29sb3IiLGZsb29kT3BhY2l0eToiZmxvb2Qtb3BhY2l0eSIsZm9udEZhbWlseToiZm9udC1mYW1pbHkiLGZvbnRTaXplOiJmb250LXNpemUiLGZvbnRTaXplQWRqdXN0OiJmb250LXNpemUtYWRqdXN0Iixmb250U3RyZXRjaDoiZm9udC1zdHJldGNoIixmb250U3R5bGU6ImZvbnQtc3R5bGUiLGZvbnRWYXJpYW50OiJmb250LXZhcmlhbnQiLGZvbnRXZWlnaHQ6ImZvbnQtd2VpZ2h0IixnbHlwaE5hbWU6ImdseXBoLW5hbWUiLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIixnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIixocmVmTGFuZzoiaHJlZmxhbmciLGhvcml6QWR2WDoiaG9yaXotYWR2LXgiLGhvcml6T3JpZ2luWDoiaG9yaXotb3JpZ2luLXgiLGhvcml6T3JpZ2luWToiaG9yaXotb3JpZ2luLXkiLGltYWdlUmVuZGVyaW5nOiJpbWFnZS1yZW5kZXJpbmciLGxldHRlclNwYWNpbmc6ImxldHRlci1zcGFjaW5nIixsaWdodGluZ0NvbG9yOiJsaWdodGluZy1jb2xvciIsbWFya2VyRW5kOiJtYXJrZXItZW5kIixtYXJrZXJNaWQ6Im1hcmtlci1taWQiLG1hcmtlclN0YXJ0OiJtYXJrZXItc3RhcnQiLG5hdkRvd246Im5hdi1kb3duIixuYXZEb3duTGVmdDoibmF2LWRvd24tbGVmdCIsbmF2RG93blJpZ2h0OiJuYXYtZG93bi1yaWdodCIsbmF2TGVmdDoibmF2LWxlZnQiLG5hdk5leHQ6Im5hdi1uZXh0IixuYXZQcmV2OiJuYXYtcHJldiIsbmF2UmlnaHQ6Im5hdi1yaWdodCIsbmF2VXA6Im5hdi11cCIsbmF2VXBMZWZ0OiJuYXYtdXAtbGVmdCIsbmF2VXBSaWdodDoibmF2LXVwLXJpZ2h0IixvbkFib3J0OiJvbmFib3J0IixvbkFjdGl2YXRlOiJvbmFjdGl2YXRlIixvbkFmdGVyUHJpbnQ6Im9uYWZ0ZXJwcmludCIsb25CZWZvcmVQcmludDoib25iZWZvcmVwcmludCIsb25CZWdpbjoib25iZWdpbiIsb25DYW5jZWw6Im9uY2FuY2VsIixvbkNhblBsYXk6Im9uY2FucGxheSIsb25DYW5QbGF5VGhyb3VnaDoib25jYW5wbGF5dGhyb3VnaCIsb25DaGFuZ2U6Im9uY2hhbmdlIixvbkNsaWNrOiJvbmNsaWNrIixvbkNsb3NlOiJvbmNsb3NlIixvbkNvcHk6Im9uY29weSIsb25DdWVDaGFuZ2U6Im9uY3VlY2hhbmdlIixvbkN1dDoib25jdXQiLG9uRGJsQ2xpY2s6Im9uZGJsY2xpY2siLG9uRHJhZzoib25kcmFnIixvbkRyYWdFbmQ6Im9uZHJhZ2VuZCIsb25EcmFnRW50ZXI6Im9uZHJhZ2VudGVyIixvbkRyYWdFeGl0OiJvbmRyYWdleGl0IixvbkRyYWdMZWF2ZToib25kcmFnbGVhdmUiLG9uRHJhZ092ZXI6Im9uZHJhZ292ZXIiLG9uRHJhZ1N0YXJ0OiJvbmRyYWdzdGFydCIsb25Ecm9wOiJvbmRyb3AiLG9uRHVyYXRpb25DaGFuZ2U6Im9uZHVyYXRpb25jaGFuZ2UiLG9uRW1wdGllZDoib25lbXB0aWVkIixvbkVuZDoib25lbmQiLG9uRW5kZWQ6Im9uZW5kZWQiLG9uRXJyb3I6Im9uZXJyb3IiLG9uRm9jdXM6Im9uZm9jdXMiLG9uRm9jdXNJbjoib25mb2N1c2luIixvbkZvY3VzT3V0OiJvbmZvY3Vzb3V0Iixvbkhhc2hDaGFuZ2U6Im9uaGFzaGNoYW5nZSIsb25JbnB1dDoib25pbnB1dCIsb25JbnZhbGlkOiJvbmludmFsaWQiLG9uS2V5RG93bjoib25rZXlkb3duIixvbktleVByZXNzOiJvbmtleXByZXNzIixvbktleVVwOiJvbmtleXVwIixvbkxvYWQ6Im9ubG9hZCIsb25Mb2FkZWREYXRhOiJvbmxvYWRlZGRhdGEiLG9uTG9hZGVkTWV0YWRhdGE6Im9ubG9hZGVkbWV0YWRhdGEiLG9uTG9hZFN0YXJ0OiJvbmxvYWRzdGFydCIsb25NZXNzYWdlOiJvbm1lc3NhZ2UiLG9uTW91c2VEb3duOiJvbm1vdXNlZG93biIsb25Nb3VzZUVudGVyOiJvbm1vdXNlZW50ZXIiLG9uTW91c2VMZWF2ZToib25tb3VzZWxlYXZlIixvbk1vdXNlTW92ZToib25tb3VzZW1vdmUiLG9uTW91c2VPdXQ6Im9ubW91c2VvdXQiLG9uTW91c2VPdmVyOiJvbm1vdXNlb3ZlciIsb25Nb3VzZVVwOiJvbm1vdXNldXAiLG9uTW91c2VXaGVlbDoib25tb3VzZXdoZWVsIixvbk9mZmxpbmU6Im9ub2ZmbGluZSIsb25PbmxpbmU6Im9ub25saW5lIixvblBhZ2VIaWRlOiJvbnBhZ2VoaWRlIixvblBhZ2VTaG93OiJvbnBhZ2VzaG93IixvblBhc3RlOiJvbnBhc3RlIixvblBhdXNlOiJvbnBhdXNlIixvblBsYXk6Im9ucGxheSIsb25QbGF5aW5nOiJvbnBsYXlpbmciLG9uUG9wU3RhdGU6Im9ucG9wc3RhdGUiLG9uUHJvZ3Jlc3M6Im9ucHJvZ3Jlc3MiLG9uUmF0ZUNoYW5nZToib25yYXRlY2hhbmdlIixvblJlcGVhdDoib25yZXBlYXQiLG9uUmVzZXQ6Im9ucmVzZXQiLG9uUmVzaXplOiJvbnJlc2l6ZSIsb25TY3JvbGw6Im9uc2Nyb2xsIixvblNlZWtlZDoib25zZWVrZWQiLG9uU2Vla2luZzoib25zZWVraW5nIixvblNlbGVjdDoib25zZWxlY3QiLG9uU2hvdzoib25zaG93IixvblN0YWxsZWQ6Im9uc3RhbGxlZCIsb25TdG9yYWdlOiJvbnN0b3JhZ2UiLG9uU3VibWl0OiJvbnN1Ym1pdCIsb25TdXNwZW5kOiJvbnN1c3BlbmQiLG9uVGltZVVwZGF0ZToib250aW1ldXBkYXRlIixvblRvZ2dsZToib250b2dnbGUiLG9uVW5sb2FkOiJvbnVubG9hZCIsb25Wb2x1bWVDaGFuZ2U6Im9udm9sdW1lY2hhbmdlIixvbldhaXRpbmc6Im9ud2FpdGluZyIsb25ab29tOiJvbnpvb20iLG92ZXJsaW5lUG9zaXRpb246Im92ZXJsaW5lLXBvc2l0aW9uIixvdmVybGluZVRoaWNrbmVzczoib3ZlcmxpbmUtdGhpY2tuZXNzIixwYWludE9yZGVyOiJwYWludC1vcmRlciIscGFub3NlMToicGFub3NlLTEiLHBvaW50ZXJFdmVudHM6InBvaW50ZXItZXZlbnRzIixyZWZlcnJlclBvbGljeToicmVmZXJyZXJwb2xpY3kiLHJlbmRlcmluZ0ludGVudDoicmVuZGVyaW5nLWludGVudCIsc2hhcGVSZW5kZXJpbmc6InNoYXBlLXJlbmRlcmluZyIsc3RvcENvbG9yOiJzdG9wLWNvbG9yIixzdG9wT3BhY2l0eToic3RvcC1vcGFjaXR5IixzdHJpa2V0aHJvdWdoUG9zaXRpb246InN0cmlrZXRocm91Z2gtcG9zaXRpb24iLHN0cmlrZXRocm91Z2hUaGlja25lc3M6InN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIixzdHJva2VEYXNoQXJyYXk6InN0cm9rZS1kYXNoYXJyYXkiLHN0cm9rZURhc2hPZmZzZXQ6InN0cm9rZS1kYXNob2Zmc2V0IixzdHJva2VMaW5lQ2FwOiJzdHJva2UtbGluZWNhcCIsc3Ryb2tlTGluZUpvaW46InN0cm9rZS1saW5lam9pbiIsc3Ryb2tlTWl0ZXJMaW1pdDoic3Ryb2tlLW1pdGVybGltaXQiLHN0cm9rZU9wYWNpdHk6InN0cm9rZS1vcGFjaXR5IixzdHJva2VXaWR0aDoic3Ryb2tlLXdpZHRoIix0YWJJbmRleDoidGFiaW5kZXgiLHRleHRBbmNob3I6InRleHQtYW5jaG9yIix0ZXh0RGVjb3JhdGlvbjoidGV4dC1kZWNvcmF0aW9uIix0ZXh0UmVuZGVyaW5nOiJ0ZXh0LXJlbmRlcmluZyIsdHJhbnNmb3JtT3JpZ2luOiJ0cmFuc2Zvcm0tb3JpZ2luIix0eXBlT2Y6InR5cGVvZiIsdW5kZXJsaW5lUG9zaXRpb246InVuZGVybGluZS1wb3NpdGlvbiIsdW5kZXJsaW5lVGhpY2tuZXNzOiJ1bmRlcmxpbmUtdGhpY2tuZXNzIix1bmljb2RlQmlkaToidW5pY29kZS1iaWRpIix1bmljb2RlUmFuZ2U6InVuaWNvZGUtcmFuZ2UiLHVuaXRzUGVyRW06InVuaXRzLXBlci1lbSIsdkFscGhhYmV0aWM6InYtYWxwaGFiZXRpYyIsdkhhbmdpbmc6InYtaGFuZ2luZyIsdklkZW9ncmFwaGljOiJ2LWlkZW9ncmFwaGljIix2TWF0aGVtYXRpY2FsOiJ2LW1hdGhlbWF0aWNhbCIsdmVjdG9yRWZmZWN0OiJ2ZWN0b3ItZWZmZWN0Iix2ZXJ0QWR2WToidmVydC1hZHYteSIsdmVydE9yaWdpblg6InZlcnQtb3JpZ2luLXgiLHZlcnRPcmlnaW5ZOiJ2ZXJ0LW9yaWdpbi15Iix3b3JkU3BhY2luZzoid29yZC1zcGFjaW5nIix3cml0aW5nTW9kZToid3JpdGluZy1tb2RlIix4SGVpZ2h0OiJ4LWhlaWdodCIscGxheWJhY2tPcmRlcjoicGxheWJhY2tvcmRlciIsdGltZWxpbmVCZWdpbjoidGltZWxpbmViZWdpbiJ9LHByb3BlcnRpZXM6e2Fib3V0OlNsLGFjY2VudEhlaWdodDpudCxhY2N1bXVsYXRlOm51bGwsYWRkaXRpdmU6bnVsbCxhbGlnbm1lbnRCYXNlbGluZTpudWxsLGFscGhhYmV0aWM6bnQsYW1wbGl0dWRlOm50LGFyYWJpY0Zvcm06bnVsbCxhc2NlbnQ6bnQsYXR0cmlidXRlTmFtZTpudWxsLGF0dHJpYnV0ZVR5cGU6bnVsbCxhemltdXRoOm50LGJhbmR3aWR0aDpudWxsLGJhc2VsaW5lU2hpZnQ6bnVsbCxiYXNlRnJlcXVlbmN5Om51bGwsYmFzZVByb2ZpbGU6bnVsbCxiYm94Om51bGwsYmVnaW46bnVsbCxiaWFzOm50LGJ5Om51bGwsY2FsY01vZGU6bnVsbCxjYXBIZWlnaHQ6bnQsY2xhc3NOYW1lOkJzLGNsaXA6bnVsbCxjbGlwUGF0aDpudWxsLGNsaXBQYXRoVW5pdHM6bnVsbCxjbGlwUnVsZTpudWxsLGNvbG9yOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczpudWxsLGNvbG9yUHJvZmlsZTpudWxsLGNvbG9yUmVuZGVyaW5nOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRTY3JpcHRUeXBlOm51bGwsY29udGVudFN0eWxlVHlwZTpudWxsLGNyb3NzT3JpZ2luOm51bGwsY3Vyc29yOm51bGwsY3g6bnVsbCxjeTpudWxsLGQ6bnVsbCxkYXRhVHlwZTpudWxsLGRlZmF1bHRBY3Rpb246bnVsbCxkZXNjZW50Om50LGRpZmZ1c2VDb25zdGFudDpudCxkaXJlY3Rpb246bnVsbCxkaXNwbGF5Om51bGwsZHVyOm51bGwsZGl2aXNvcjpudCxkb21pbmFudEJhc2VsaW5lOm51bGwsZG93bmxvYWQ6cGEsZHg6bnVsbCxkeTpudWxsLGVkZ2VNb2RlOm51bGwsZWRpdGFibGU6bnVsbCxlbGV2YXRpb246bnQsZW5hYmxlQmFja2dyb3VuZDpudWxsLGVuZDpudWxsLGV2ZW50Om51bGwsZXhwb25lbnQ6bnQsZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDpudWxsLGZpbGw6bnVsbCxmaWxsT3BhY2l0eTpudCxmaWxsUnVsZTpudWxsLGZpbHRlcjpudWxsLGZpbHRlclJlczpudWxsLGZpbHRlclVuaXRzOm51bGwsZmxvb2RDb2xvcjpudWxsLGZsb29kT3BhY2l0eTpudWxsLGZvY3VzYWJsZTpudWxsLGZvY3VzSGlnaGxpZ2h0Om51bGwsZm9udEZhbWlseTpudWxsLGZvbnRTaXplOm51bGwsZm9udFNpemVBZGp1c3Q6bnVsbCxmb250U3RyZXRjaDpudWxsLGZvbnRTdHlsZTpudWxsLGZvbnRWYXJpYW50Om51bGwsZm9udFdlaWdodDpudWxsLGZvcm1hdDpudWxsLGZyOm51bGwsZnJvbTpudWxsLGZ4Om51bGwsZnk6bnVsbCxnMTp0aCxnMjp0aCxnbHlwaE5hbWU6dGgsZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6bnVsbCxnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6bnVsbCxnbHlwaFJlZjpudWxsLGdyYWRpZW50VHJhbnNmb3JtOm51bGwsZ3JhZGllbnRVbml0czpudWxsLGhhbmRsZXI6bnVsbCxoYW5naW5nOm50LGhhdGNoQ29udGVudFVuaXRzOm51bGwsaGF0Y2hVbml0czpudWxsLGhlaWdodDpudWxsLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGhvcml6QWR2WDpudCxob3Jpek9yaWdpblg6bnQsaG9yaXpPcmlnaW5ZOm50LGlkOm51bGwsaWRlb2dyYXBoaWM6bnQsaW1hZ2VSZW5kZXJpbmc6bnVsbCxpbml0aWFsVmlzaWJpbGl0eTpudWxsLGluOm51bGwsaW4yOm51bGwsaW50ZXJjZXB0Om50LGs6bnQsazE6bnQsazI6bnQsazM6bnQsazQ6bnQsa2VybmVsTWF0cml4OlNsLGtlcm5lbFVuaXRMZW5ndGg6bnVsbCxrZXlQb2ludHM6bnVsbCxrZXlTcGxpbmVzOm51bGwsa2V5VGltZXM6bnVsbCxrZXJuaW5nOm51bGwsbGFuZzpudWxsLGxlbmd0aEFkanVzdDpudWxsLGxldHRlclNwYWNpbmc6bnVsbCxsaWdodGluZ0NvbG9yOm51bGwsbGltaXRpbmdDb25lQW5nbGU6bnQsbG9jYWw6bnVsbCxtYXJrZXJFbmQ6bnVsbCxtYXJrZXJNaWQ6bnVsbCxtYXJrZXJTdGFydDpudWxsLG1hcmtlckhlaWdodDpudWxsLG1hcmtlclVuaXRzOm51bGwsbWFya2VyV2lkdGg6bnVsbCxtYXNrOm51bGwsbWFza0NvbnRlbnRVbml0czpudWxsLG1hc2tVbml0czpudWxsLG1hdGhlbWF0aWNhbDpudWxsLG1heDpudWxsLG1lZGlhOm51bGwsbWVkaWFDaGFyYWN0ZXJFbmNvZGluZzpudWxsLG1lZGlhQ29udGVudEVuY29kaW5nczpudWxsLG1lZGlhU2l6ZTpudCxtZWRpYVRpbWU6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtb2RlOm51bGwsbmFtZTpudWxsLG5hdkRvd246bnVsbCxuYXZEb3duTGVmdDpudWxsLG5hdkRvd25SaWdodDpudWxsLG5hdkxlZnQ6bnVsbCxuYXZOZXh0Om51bGwsbmF2UHJldjpudWxsLG5hdlJpZ2h0Om51bGwsbmF2VXA6bnVsbCxuYXZVcExlZnQ6bnVsbCxuYXZVcFJpZ2h0Om51bGwsbnVtT2N0YXZlczpudWxsLG9ic2VydmVyOm51bGwsb2Zmc2V0Om51bGwsb25BYm9ydDpudWxsLG9uQWN0aXZhdGU6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWdpbjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb2N1c0luOm51bGwsb25Gb2N1c091dDpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk1vdXNlV2hlZWw6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVwZWF0Om51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TaG93Om51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvblpvb206bnVsbCxvcGFjaXR5Om51bGwsb3BlcmF0b3I6bnVsbCxvcmRlcjpudWxsLG9yaWVudDpudWxsLG9yaWVudGF0aW9uOm51bGwsb3JpZ2luOm51bGwsb3ZlcmZsb3c6bnVsbCxvdmVybGF5Om51bGwsb3ZlcmxpbmVQb3NpdGlvbjpudCxvdmVybGluZVRoaWNrbmVzczpudCxwYWludE9yZGVyOm51bGwscGFub3NlMTpudWxsLHBhdGg6bnVsbCxwYXRoTGVuZ3RoOm50LHBhdHRlcm5Db250ZW50VW5pdHM6bnVsbCxwYXR0ZXJuVHJhbnNmb3JtOm51bGwscGF0dGVyblVuaXRzOm51bGwscGhhc2U6bnVsbCxwaW5nOkJzLHBpdGNoOm51bGwscGxheWJhY2tPcmRlcjpudWxsLHBvaW50ZXJFdmVudHM6bnVsbCxwb2ludHM6bnVsbCxwb2ludHNBdFg6bnQscG9pbnRzQXRZOm50LHBvaW50c0F0WjpudCxwcmVzZXJ2ZUFscGhhOm51bGwscHJlc2VydmVBc3BlY3RSYXRpbzpudWxsLHByaW1pdGl2ZVVuaXRzOm51bGwscHJvcGFnYXRlOm51bGwscHJvcGVydHk6U2wscjpudWxsLHJhZGl1czpudWxsLHJlZmVycmVyUG9saWN5Om51bGwscmVmWDpudWxsLHJlZlk6bnVsbCxyZWw6U2wscmV2OlNsLHJlbmRlcmluZ0ludGVudDpudWxsLHJlcGVhdENvdW50Om51bGwscmVwZWF0RHVyOm51bGwscmVxdWlyZWRFeHRlbnNpb25zOlNsLHJlcXVpcmVkRmVhdHVyZXM6U2wscmVxdWlyZWRGb250czpTbCxyZXF1aXJlZEZvcm1hdHM6U2wscmVzb3VyY2U6bnVsbCxyZXN0YXJ0Om51bGwscmVzdWx0Om51bGwscm90YXRlOm51bGwscng6bnVsbCxyeTpudWxsLHNjYWxlOm51bGwsc2VlZDpudWxsLHNoYXBlUmVuZGVyaW5nOm51bGwsc2lkZTpudWxsLHNsb3BlOm51bGwsc25hcHNob3RUaW1lOm51bGwsc3BlY3VsYXJDb25zdGFudDpudCxzcGVjdWxhckV4cG9uZW50Om50LHNwcmVhZE1ldGhvZDpudWxsLHNwYWNpbmc6bnVsbCxzdGFydE9mZnNldDpudWxsLHN0ZERldmlhdGlvbjpudWxsLHN0ZW1oOm51bGwsc3RlbXY6bnVsbCxzdGl0Y2hUaWxlczpudWxsLHN0b3BDb2xvcjpudWxsLHN0b3BPcGFjaXR5Om51bGwsc3RyaWtldGhyb3VnaFBvc2l0aW9uOm50LHN0cmlrZXRocm91Z2hUaGlja25lc3M6bnQsc3RyaW5nOm51bGwsc3Ryb2tlOm51bGwsc3Ryb2tlRGFzaEFycmF5OlNsLHN0cm9rZURhc2hPZmZzZXQ6bnVsbCxzdHJva2VMaW5lQ2FwOm51bGwsc3Ryb2tlTGluZUpvaW46bnVsbCxzdHJva2VNaXRlckxpbWl0Om50LHN0cm9rZU9wYWNpdHk6bnQsc3Ryb2tlV2lkdGg6bnVsbCxzdHlsZTpudWxsLHN1cmZhY2VTY2FsZTpudCxzeW5jQmVoYXZpb3I6bnVsbCxzeW5jQmVoYXZpb3JEZWZhdWx0Om51bGwsc3luY01hc3RlcjpudWxsLHN5bmNUb2xlcmFuY2U6bnVsbCxzeW5jVG9sZXJhbmNlRGVmYXVsdDpudWxsLHN5c3RlbUxhbmd1YWdlOlNsLHRhYkluZGV4Om50LHRhYmxlVmFsdWVzOm51bGwsdGFyZ2V0Om51bGwsdGFyZ2V0WDpudCx0YXJnZXRZOm50LHRleHRBbmNob3I6bnVsbCx0ZXh0RGVjb3JhdGlvbjpudWxsLHRleHRSZW5kZXJpbmc6bnVsbCx0ZXh0TGVuZ3RoOm51bGwsdGltZWxpbmVCZWdpbjpudWxsLHRpdGxlOm51bGwsdHJhbnNmb3JtQmVoYXZpb3I6bnVsbCx0eXBlOm51bGwsdHlwZU9mOlNsLHRvOm51bGwsdHJhbnNmb3JtOm51bGwsdHJhbnNmb3JtT3JpZ2luOm51bGwsdTE6bnVsbCx1MjpudWxsLHVuZGVybGluZVBvc2l0aW9uOm50LHVuZGVybGluZVRoaWNrbmVzczpudCx1bmljb2RlOm51bGwsdW5pY29kZUJpZGk6bnVsbCx1bmljb2RlUmFuZ2U6bnVsbCx1bml0c1BlckVtOm50LHZhbHVlczpudWxsLHZBbHBoYWJldGljOm50LHZNYXRoZW1hdGljYWw6bnQsdmVjdG9yRWZmZWN0Om51bGwsdkhhbmdpbmc6bnQsdklkZW9ncmFwaGljOm50LHZlcnNpb246bnVsbCx2ZXJ0QWR2WTpudCx2ZXJ0T3JpZ2luWDpudCx2ZXJ0T3JpZ2luWTpudCx2aWV3Qm94Om51bGwsdmlld1RhcmdldDpudWxsLHZpc2liaWxpdHk6bnVsbCx3aWR0aDpudWxsLHdpZHRoczpudWxsLHdvcmRTcGFjaW5nOm51bGwsd3JpdGluZ01vZGU6bnVsbCx4Om51bGwseDE6bnVsbCx4MjpudWxsLHhDaGFubmVsU2VsZWN0b3I6bnVsbCx4SGVpZ2h0Om50LHk6bnVsbCx5MTpudWxsLHkyOm51bGwseUNoYW5uZWxTZWxlY3RvcjpudWxsLHo6bnVsbCx6b29tQW5kUGFuOm51bGx9LHNwYWNlOiJzdmciLHRyYW5zZm9ybTpYaWV9KX0pO3ZhciB0NmUsSnZ0PWcoKCk9PntSMygpO3Q2ZT1FYyh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybShzLGUpe3JldHVybiJ4bGluazoiK2Uuc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBhNmUsZXh0PWcoKCk9PntSMygpO2U2ZSgpO2E2ZT1FYyh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06UWllfSl9KTt2YXIgczZlLHR4dD1nKCgpPT57UjMoKTtzNmU9RWMoe3Byb3BlcnRpZXM6e3htbEJhc2U6bnVsbCx4bWxMYW5nOm51bGwseG1sU3BhY2U6bnVsbH0sc3BhY2U6InhtbCIsdHJhbnNmb3JtKHMsZSl7cmV0dXJuInhtbDoiK2Uuc2xpY2UoMykudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBheHQ9ZygoKT0+e30pO2Z1bmN0aW9uIGk2ZShzLGUpe2xldCB0PW5iKGUpLGE9ZSxyPXVvO2lmKHQgaW4gcy5ub3JtYWwpcmV0dXJuIHMucHJvcGVydHlbcy5ub3JtYWxbdF1dO2lmKHQubGVuZ3RoPjQmJnQuc2xpY2UoMCw0KT09PSJkYXRhIiYmYUJhLnRlc3QoZSkpe2lmKGUuY2hhckF0KDQpPT09Ii0iKXtsZXQgbj1lLnNsaWNlKDUpLnJlcGxhY2Uoc3h0LGlCYSk7YT0iZGF0YSIrbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStuLnNsaWNlKDEpfWVsc2V7bGV0IG49ZS5zbGljZSg0KTtpZighc3h0LnRlc3Qobikpe2xldCBvPW4ucmVwbGFjZSh0QmEsc0JhKTtvLmNoYXJBdCgwKSE9PSItIiYmKG89Ii0iK28pLGU9ImRhdGEiK299fXI9TjN9cmV0dXJuIG5ldyByKGEsZSl9ZnVuY3Rpb24gc0JhKHMpe3JldHVybiItIitzLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gaUJhKHMpe3JldHVybiBzLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpfXZhciB0QmEsc3h0LGFCYSxpeHQ9ZygoKT0+e1htZSgpO1ltZSgpO1lpZSgpO3RCYT0vW0EtWl0vZyxzeHQ9Ly1bYS16XS9nLGFCYT0vXmRhdGFbLVx3LjpdKyQvaTtpKGk2ZSwiZmluZCIpO2koc0JhLCJrZWJhYiIpO2koaUJhLCJjYW1lbGNhc2UiKX0pO3ZhciByeHQsSmllLHI2ZT1nKCgpPT57V3Z0KCk7S3Z0KCk7WnZ0KCk7UXZ0KCk7SnZ0KCk7ZXh0KCk7dHh0KCk7YXh0KCk7aXh0KCk7WWllKCk7cnh0PUttZShbUW1lLFl2dCx0NmUsYTZlLHM2ZV0sImh0bWwiKSxKaWU9S21lKFtRbWUsWHZ0LHQ2ZSxhNmUsczZlXSwic3ZnIil9KTtmdW5jdGlvbiBvNmUocyxlKXtpZihzPXMucmVwbGFjZShlLnN1YnNldD9jQmEoZS5zdWJzZXQpOnJCYSxhKSxlLnN1YnNldHx8ZS5lc2NhcGVPbmx5KXJldHVybiBzO3JldHVybiBzLnJlcGxhY2Uob0JhLHQpLnJlcGxhY2UobkJhLGEpO2Z1bmN0aW9uIHQocixuLG8pe3JldHVybiBlLmZvcm1hdCgoci5jaGFyQ29kZUF0KDApLTU1Mjk2KSoxMDI0K3IuY2hhckNvZGVBdCgxKS01NjMyMCs2NTUzNixvLmNoYXJDb2RlQXQobisyKSxlKX1mdW5jdGlvbiBhKHIsbixvKXtyZXR1cm4gZS5mb3JtYXQoci5jaGFyQ29kZUF0KDApLG8uY2hhckNvZGVBdChuKzEpLGUpfX1mdW5jdGlvbiBjQmEocyl7bGV0IGU9b3h0LmdldChzKTtyZXR1cm4gZXx8KGU9ZEJhKHMpLG94dC5zZXQocyxlKSksZX1mdW5jdGlvbiBkQmEocyl7bGV0IGU9W10sdD0tMTtmb3IoOysrdDxzLmxlbmd0aDspZS5wdXNoKHNbdF0ucmVwbGFjZShsQmEsIlxcJCYiKSk7cmV0dXJuIG5ldyBSZWdFeHAoIig/OiIrZS5qb2luKCJ8IikrIikiLCJnIil9dmFyIHJCYSxvQmEsbkJhLGxCYSxveHQsbnh0PWcoKCk9PntyQmE9L1siJic8PmBdL2csb0JhPS9bXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl0vZyxuQmE9L1tceDAxLVx0XHZcZlx4MEUtXHgxRlx4N0ZceDgxXHg4RFx4OEZceDkwXHg5RFx4QTAtXHVGRkZGXS9nLGxCYT0vW3xcXHt9KClbXF1eJCsqPy5dL2csb3h0PW5ldyBXZWFrTWFwO2kobzZlLCJjb3JlIik7aShjQmEsImNoYXJhY3RlcnNUb0V4cHJlc3Npb25DYWNoZWQiKTtpKGRCYSwiY2hhcmFjdGVyc1RvRXhwcmVzc2lvbiIpfSk7ZnVuY3Rpb24gbHh0KHMsZSx0KXtsZXQgYT0iJiN4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiB0JiZlJiYhdUJhLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlKSk/YTphKyI7In12YXIgdUJhLGN4dD1nKCgpPT57dUJhPS9bXGRBLUZhLWZdLztpKGx4dCwidG9IZXhhZGVjaW1hbCIpfSk7ZnVuY3Rpb24gZHh0KHMsZSx0KXtsZXQgYT0iJiMiK1N0cmluZyhzKTtyZXR1cm4gdCYmZSYmIXBCYS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2E6YSsiOyJ9dmFyIHBCYSx1eHQ9ZygoKT0+e3BCYT0vXGQvO2koZHh0LCJ0b0RlY2ltYWwiKX0pO3ZhciBweHQsaHh0PWcoKCk9PntweHQ9WyJBRWxpZyIsIkFNUCIsIkFhY3V0ZSIsIkFjaXJjIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJBdW1sIiwiQ09QWSIsIkNjZWRpbCIsIkVUSCIsIkVhY3V0ZSIsIkVjaXJjIiwiRWdyYXZlIiwiRXVtbCIsIkdUIiwiSWFjdXRlIiwiSWNpcmMiLCJJZ3JhdmUiLCJJdW1sIiwiTFQiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyYyIsIk9ncmF2ZSIsIk9zbGFzaCIsIk90aWxkZSIsIk91bWwiLCJRVU9UIiwiUkVHIiwiVEhPUk4iLCJVYWN1dGUiLCJVY2lyYyIsIlVncmF2ZSIsIlV1bWwiLCJZYWN1dGUiLCJhYWN1dGUiLCJhY2lyYyIsImFjdXRlIiwiYWVsaWciLCJhZ3JhdmUiLCJhbXAiLCJhcmluZyIsImF0aWxkZSIsImF1bWwiLCJicnZiYXIiLCJjY2VkaWwiLCJjZWRpbCIsImNlbnQiLCJjb3B5IiwiY3VycmVuIiwiZGVnIiwiZGl2aWRlIiwiZWFjdXRlIiwiZWNpcmMiLCJlZ3JhdmUiLCJldGgiLCJldW1sIiwiZnJhYzEyIiwiZnJhYzE0IiwiZnJhYzM0IiwiZ3QiLCJpYWN1dGUiLCJpY2lyYyIsImlleGNsIiwiaWdyYXZlIiwiaXF1ZXN0IiwiaXVtbCIsImxhcXVvIiwibHQiLCJtYWNyIiwibWljcm8iLCJtaWRkb3QiLCJuYnNwIiwibm90IiwibnRpbGRlIiwib2FjdXRlIiwib2NpcmMiLCJvZ3JhdmUiLCJvcmRmIiwib3JkbSIsIm9zbGFzaCIsIm90aWxkZSIsIm91bWwiLCJwYXJhIiwicGx1c21uIiwicG91bmQiLCJxdW90IiwicmFxdW8iLCJyZWciLCJzZWN0Iiwic2h5Iiwic3VwMSIsInN1cDIiLCJzdXAzIiwic3psaWciLCJ0aG9ybiIsInRpbWVzIiwidWFjdXRlIiwidWNpcmMiLCJ1Z3JhdmUiLCJ1bWwiLCJ1dW1sIiwieWFjdXRlIiwieWVuIiwieXVtbCJdfSk7dmFyIGVyZSxmeHQ9ZygoKT0+e2VyZT17bmJzcDoiXHhBMCIsaWV4Y2w6Ilx4QTEiLGNlbnQ6Ilx4QTIiLHBvdW5kOiJceEEzIixjdXJyZW46Ilx4QTQiLHllbjoiXHhBNSIsYnJ2YmFyOiJceEE2IixzZWN0OiJceEE3Iix1bWw6Ilx4QTgiLGNvcHk6Ilx4QTkiLG9yZGY6Ilx4QUEiLGxhcXVvOiJceEFCIixub3Q6Ilx4QUMiLHNoeToiXHhBRCIscmVnOiJceEFFIixtYWNyOiJceEFGIixkZWc6Ilx4QjAiLHBsdXNtbjoiXHhCMSIsc3VwMjoiXHhCMiIsc3VwMzoiXHhCMyIsYWN1dGU6Ilx4QjQiLG1pY3JvOiJceEI1IixwYXJhOiJceEI2IixtaWRkb3Q6Ilx4QjciLGNlZGlsOiJceEI4IixzdXAxOiJceEI5IixvcmRtOiJceEJBIixyYXF1bzoiXHhCQiIsZnJhYzE0OiJceEJDIixmcmFjMTI6Ilx4QkQiLGZyYWMzNDoiXHhCRSIsaXF1ZXN0OiJceEJGIixBZ3JhdmU6Ilx4QzAiLEFhY3V0ZToiXHhDMSIsQWNpcmM6Ilx4QzIiLEF0aWxkZToiXHhDMyIsQXVtbDoiXHhDNCIsQXJpbmc6Ilx4QzUiLEFFbGlnOiJceEM2IixDY2VkaWw6Ilx4QzciLEVncmF2ZToiXHhDOCIsRWFjdXRlOiJceEM5IixFY2lyYzoiXHhDQSIsRXVtbDoiXHhDQiIsSWdyYXZlOiJceENDIixJYWN1dGU6Ilx4Q0QiLEljaXJjOiJceENFIixJdW1sOiJceENGIixFVEg6Ilx4RDAiLE50aWxkZToiXHhEMSIsT2dyYXZlOiJceEQyIixPYWN1dGU6Ilx4RDMiLE9jaXJjOiJceEQ0IixPdGlsZGU6Ilx4RDUiLE91bWw6Ilx4RDYiLHRpbWVzOiJceEQ3IixPc2xhc2g6Ilx4RDgiLFVncmF2ZToiXHhEOSIsVWFjdXRlOiJceERBIixVY2lyYzoiXHhEQiIsVXVtbDoiXHhEQyIsWWFjdXRlOiJceEREIixUSE9STjoiXHhERSIsc3psaWc6Ilx4REYiLGFncmF2ZToiXHhFMCIsYWFjdXRlOiJceEUxIixhY2lyYzoiXHhFMiIsYXRpbGRlOiJceEUzIixhdW1sOiJceEU0IixhcmluZzoiXHhFNSIsYWVsaWc6Ilx4RTYiLGNjZWRpbDoiXHhFNyIsZWdyYXZlOiJceEU4IixlYWN1dGU6Ilx4RTkiLGVjaXJjOiJceEVBIixldW1sOiJceEVCIixpZ3JhdmU6Ilx4RUMiLGlhY3V0ZToiXHhFRCIsaWNpcmM6Ilx4RUUiLGl1bWw6Ilx4RUYiLGV0aDoiXHhGMCIsbnRpbGRlOiJceEYxIixvZ3JhdmU6Ilx4RjIiLG9hY3V0ZToiXHhGMyIsb2NpcmM6Ilx4RjQiLG90aWxkZToiXHhGNSIsb3VtbDoiXHhGNiIsZGl2aWRlOiJceEY3Iixvc2xhc2g6Ilx4RjgiLHVncmF2ZToiXHhGOSIsdWFjdXRlOiJceEZBIix1Y2lyYzoiXHhGQiIsdXVtbDoiXHhGQyIseWFjdXRlOiJceEZEIix0aG9ybjoiXHhGRSIseXVtbDoiXHhGRiIsZm5vZjoiXHUwMTkyIixBbHBoYToiXHUwMzkxIixCZXRhOiJcdTAzOTIiLEdhbW1hOiJcdTAzOTMiLERlbHRhOiJcdTAzOTQiLEVwc2lsb246Ilx1MDM5NSIsWmV0YToiXHUwMzk2IixFdGE6Ilx1MDM5NyIsVGhldGE6Ilx1MDM5OCIsSW90YToiXHUwMzk5IixLYXBwYToiXHUwMzlBIixMYW1iZGE6Ilx1MDM5QiIsTXU6Ilx1MDM5QyIsTnU6Ilx1MDM5RCIsWGk6Ilx1MDM5RSIsT21pY3JvbjoiXHUwMzlGIixQaToiXHUwM0EwIixSaG86Ilx1MDNBMSIsU2lnbWE6Ilx1MDNBMyIsVGF1OiJcdTAzQTQiLFVwc2lsb246Ilx1MDNBNSIsUGhpOiJcdTAzQTYiLENoaToiXHUwM0E3IixQc2k6Ilx1MDNBOCIsT21lZ2E6Ilx1MDNBOSIsYWxwaGE6Ilx1MDNCMSIsYmV0YToiXHUwM0IyIixnYW1tYToiXHUwM0IzIixkZWx0YToiXHUwM0I0IixlcHNpbG9uOiJcdTAzQjUiLHpldGE6Ilx1MDNCNiIsZXRhOiJcdTAzQjciLHRoZXRhOiJcdTAzQjgiLGlvdGE6Ilx1MDNCOSIsa2FwcGE6Ilx1MDNCQSIsbGFtYmRhOiJcdTAzQkIiLG11OiJcdTAzQkMiLG51OiJcdTAzQkQiLHhpOiJcdTAzQkUiLG9taWNyb246Ilx1MDNCRiIscGk6Ilx1MDNDMCIscmhvOiJcdTAzQzEiLHNpZ21hZjoiXHUwM0MyIixzaWdtYToiXHUwM0MzIix0YXU6Ilx1MDNDNCIsdXBzaWxvbjoiXHUwM0M1IixwaGk6Ilx1MDNDNiIsY2hpOiJcdTAzQzciLHBzaToiXHUwM0M4IixvbWVnYToiXHUwM0M5Iix0aGV0YXN5bToiXHUwM0QxIix1cHNpaDoiXHUwM0QyIixwaXY6Ilx1MDNENiIsYnVsbDoiXHUyMDIyIixoZWxsaXA6Ilx1MjAyNiIscHJpbWU6Ilx1MjAzMiIsUHJpbWU6Ilx1MjAzMyIsb2xpbmU6Ilx1MjAzRSIsZnJhc2w6Ilx1MjA0NCIsd2VpZXJwOiJcdTIxMTgiLGltYWdlOiJcdTIxMTEiLHJlYWw6Ilx1MjExQyIsdHJhZGU6Ilx1MjEyMiIsYWxlZnN5bToiXHUyMTM1IixsYXJyOiJcdTIxOTAiLHVhcnI6Ilx1MjE5MSIscmFycjoiXHUyMTkyIixkYXJyOiJcdTIxOTMiLGhhcnI6Ilx1MjE5NCIsY3JhcnI6Ilx1MjFCNSIsbEFycjoiXHUyMUQwIix1QXJyOiJcdTIxRDEiLHJBcnI6Ilx1MjFEMiIsZEFycjoiXHUyMUQzIixoQXJyOiJcdTIxRDQiLGZvcmFsbDoiXHUyMjAwIixwYXJ0OiJcdTIyMDIiLGV4aXN0OiJcdTIyMDMiLGVtcHR5OiJcdTIyMDUiLG5hYmxhOiJcdTIyMDciLGlzaW46Ilx1MjIwOCIsbm90aW46Ilx1MjIwOSIsbmk6Ilx1MjIwQiIscHJvZDoiXHUyMjBGIixzdW06Ilx1MjIxMSIsbWludXM6Ilx1MjIxMiIsbG93YXN0OiJcdTIyMTciLHJhZGljOiJcdTIyMUEiLHByb3A6Ilx1MjIxRCIsaW5maW46Ilx1MjIxRSIsYW5nOiJcdTIyMjAiLGFuZDoiXHUyMjI3IixvcjoiXHUyMjI4IixjYXA6Ilx1MjIyOSIsY3VwOiJcdTIyMkEiLGludDoiXHUyMjJCIix0aGVyZTQ6Ilx1MjIzNCIsc2ltOiJcdTIyM0MiLGNvbmc6Ilx1MjI0NSIsYXN5bXA6Ilx1MjI0OCIsbmU6Ilx1MjI2MCIsZXF1aXY6Ilx1MjI2MSIsbGU6Ilx1MjI2NCIsZ2U6Ilx1MjI2NSIsc3ViOiJcdTIyODIiLHN1cDoiXHUyMjgzIixuc3ViOiJcdTIyODQiLHN1YmU6Ilx1MjI4NiIsc3VwZToiXHUyMjg3IixvcGx1czoiXHUyMjk1IixvdGltZXM6Ilx1MjI5NyIscGVycDoiXHUyMkE1IixzZG90OiJcdTIyQzUiLGxjZWlsOiJcdTIzMDgiLHJjZWlsOiJcdTIzMDkiLGxmbG9vcjoiXHUyMzBBIixyZmxvb3I6Ilx1MjMwQiIsbGFuZzoiXHUyMzI5IixyYW5nOiJcdTIzMkEiLGxvejoiXHUyNUNBIixzcGFkZXM6Ilx1MjY2MCIsY2x1YnM6Ilx1MjY2MyIsaGVhcnRzOiJcdTI2NjUiLGRpYW1zOiJcdTI2NjYiLHF1b3Q6JyInLGFtcDoiJiIsbHQ6IjwiLGd0OiI+IixPRWxpZzoiXHUwMTUyIixvZWxpZzoiXHUwMTUzIixTY2Fyb246Ilx1MDE2MCIsc2Nhcm9uOiJcdTAxNjEiLFl1bWw6Ilx1MDE3OCIsY2lyYzoiXHUwMkM2Iix0aWxkZToiXHUwMkRDIixlbnNwOiJcdTIwMDIiLGVtc3A6Ilx1MjAwMyIsdGhpbnNwOiJcdTIwMDkiLHp3bmo6Ilx1MjAwQyIsendqOiJcdTIwMEQiLGxybToiXHUyMDBFIixybG06Ilx1MjAwRiIsbmRhc2g6Ilx1MjAxMyIsbWRhc2g6Ilx1MjAxNCIsbHNxdW86Ilx1MjAxOCIscnNxdW86Ilx1MjAxOSIsc2JxdW86Ilx1MjAxQSIsbGRxdW86Ilx1MjAxQyIscmRxdW86Ilx1MjAxRCIsYmRxdW86Ilx1MjAxRSIsZGFnZ2VyOiJcdTIwMjAiLERhZ2dlcjoiXHUyMDIxIixwZXJtaWw6Ilx1MjAzMCIsbHNhcXVvOiJcdTIwMzkiLHJzYXF1bzoiXHUyMDNBIixldXJvOiJcdTIwQUMifX0pO3ZhciBteHQsZ3h0PWcoKCk9PntteHQ9WyJjZW50IiwiY29weSIsImRpdmlkZSIsImd0IiwibHQiLCJub3QiLCJwYXJhIiwidGltZXMiXX0pO2Z1bmN0aW9uIHZ4dChzLGUsdCxhKXtsZXQgcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpO2lmKGJ4dC5jYWxsKG42ZSxyKSl7bGV0IG49bjZlW3JdLG89IiYiK247cmV0dXJuIHQmJnB4dC5pbmNsdWRlcyhuKSYmIW14dC5pbmNsdWRlcyhuKSYmKCFhfHxlJiZlIT09NjEmJmhCYS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpKT9vOm8rIjsifXJldHVybiIifXZhciBieHQsbjZlLHRyZSxoQmEseHh0PWcoKCk9PntoeHQoKTtmeHQoKTtneHQoKTtieHQ9e30uaGFzT3duUHJvcGVydHksbjZlPXt9O2Zvcih0cmUgaW4gZXJlKWJ4dC5jYWxsKGVyZSx0cmUpJiYobjZlW2VyZVt0cmVdXT10cmUpO2hCYT0vW15cZEEtWmEtel0vO2kodnh0LCJ0b05hbWVkIil9KTtmdW5jdGlvbiB5eHQocyxlLHQpe2xldCBhPWx4dChzLGUsdC5vbWl0T3B0aW9uYWxTZW1pY29sb25zKSxyO2lmKCh0LnVzZU5hbWVkUmVmZXJlbmNlc3x8dC51c2VTaG9ydGVzdFJlZmVyZW5jZXMpJiYocj12eHQocyxlLHQub21pdE9wdGlvbmFsU2VtaWNvbG9ucyx0LmF0dHJpYnV0ZSkpLCh0LnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8IXIpJiZ0LnVzZVNob3J0ZXN0UmVmZXJlbmNlcyl7bGV0IG49ZHh0KHMsZSx0Lm9taXRPcHRpb25hbFNlbWljb2xvbnMpO24ubGVuZ3RoPGEubGVuZ3RoJiYoYT1uKX1yZXR1cm4gciYmKCF0LnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8ci5sZW5ndGg8YS5sZW5ndGgpP3I6YX12YXIgd3h0PWcoKCk9PntjeHQoKTt1eHQoKTt4eHQoKTtpKHl4dCwiZm9ybWF0U21hcnQiKX0pO2Z1bmN0aW9uIGt4dChzKXtyZXR1cm4iJiN4IitzLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgU3h0PWcoKCk9PntpKGt4dCwiZm9ybWF0QmFzaWMiKX0pO2Z1bmN0aW9uIEkwKHMsZSl7cmV0dXJuIG82ZShzLE9iamVjdC5hc3NpZ24oe2Zvcm1hdDp5eHR9LGUpKX1mdW5jdGlvbiBWZmkocyxlKXtyZXR1cm4gbzZlKHMsT2JqZWN0LmFzc2lnbih7Zm9ybWF0Omt4dH0sZSkpfXZhciBfeHQ9ZygoKT0+e254dCgpO3d4dCgpO1N4dCgpO2koSTAsInN0cmluZ2lmeUVudGl0aWVzIik7aShWZmksInN0cmluZ2lmeUVudGl0aWVzTGlnaHQiKX0pO3ZhciBhcmU9ZygoKT0+e194dCgpfSk7ZnVuY3Rpb24gTXh0KHMsZSx0LGEpe3JldHVybiBhLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/IitJMChzLnZhbHVlLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6bUJhfSkpKyI+IjoiPCEtLSIrcy52YWx1ZS5yZXBsYWNlKGZCYSxyKSsiLS0+IjtmdW5jdGlvbiByKG4pe3JldHVybiBJMChuLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6Z0JhfSkpfX12YXIgZkJhLG1CYSxnQmEsenh0PWcoKCk9PnthcmUoKTtmQmE9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyxtQmE9WyI+Il0sZ0JhPVsiPCIsIj4iXTtpKE14dCwiY29tbWVudCIpfSk7ZnVuY3Rpb24gQ3h0KHMsZSx0LGEpe3JldHVybiI8ISIrKGEuc2V0dGluZ3MudXBwZXJEb2N0eXBlPyJET0NUWVBFIjoiZG9jdHlwZSIpKyhhLnNldHRpbmdzLnRpZ2h0RG9jdHlwZT8iIjoiICIpKyJodG1sPiJ9dmFyIFR4dD1nKCgpPT57aShDeHQsImRvY3R5cGUiKX0pO2Z1bmN0aW9uIGVtaShzKXtsZXQgZT1bXSx0PVN0cmluZyhzfHwiIiksYT10LmluZGV4T2YoIiwiKSxyPTAsbj0hMTtmb3IoOyFuOyl7YT09PS0xJiYoYT10Lmxlbmd0aCxuPSEwKTtsZXQgbz10LnNsaWNlKHIsYSkudHJpbSgpOyhvfHwhbikmJmUucHVzaChvKSxyPWErMSxhPXQuaW5kZXhPZigiLCIscil9cmV0dXJuIGV9ZnVuY3Rpb24gJHh0KHMsZSl7bGV0IHQ9ZXx8e307cmV0dXJuKHNbcy5sZW5ndGgtMV09PT0iIj9bLi4ucywiIl06cykuam9pbigodC5wYWRSaWdodD8iICI6IiIpKyIsIisodC5wYWRMZWZ0PT09ITE/IiI6IiAiKSkudHJpbSgpfXZhciBEeHQ9ZygoKT0+e2koZW1pLCJwYXJzZSIpO2koJHh0LCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIHNtaShzKXtsZXQgZT1TdHJpbmcoc3x8IiIpLnRyaW0oKTtyZXR1cm4gZT9lLnNwbGl0KC9bIFx0XG5cclxmXSsvZyk6W119ZnVuY3Rpb24gTHh0KHMpe3JldHVybiBzLmpvaW4oIiAiKS50cmltKCl9dmFyIEV4dD1nKCgpPT57aShzbWksInBhcnNlIik7aShMeHQsInN0cmluZ2lmeSIpfSk7ZnVuY3Rpb24gTzMocyl7cmV0dXJuIHR5cGVvZiBzPT0ib2JqZWN0Ij9zLnR5cGU9PT0idGV4dCI/UHh0KHMudmFsdWUpOiExOlB4dChzKX1mdW5jdGlvbiBQeHQocyl7cmV0dXJuIHMucmVwbGFjZShiQmEsIiIpPT09IiJ9dmFyIGJCYSxJeHQ9ZygoKT0+e2JCYT0vWyBcdFxuXGZccl0vZztpKE8zLCJ3aGl0ZXNwYWNlIik7aShQeHQsImVtcHR5Iil9KTt2YXIgc3JlPWcoKCk9PntJeHQoKX0pO2Z1bmN0aW9uIEF4dChzKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQsYSxyKXtsZXQgbj10P3QuY2hpbGRyZW46dkJhLG89KGF8fDApK3MsbD1uW29dO2lmKCFyKWZvcig7bCYmTzMobCk7KW8rPXMsbD1uW29dO3JldHVybiBsfX12YXIgcnIsbDZlLHZCYSxjNmU9ZygoKT0+e3NyZSgpO3JyPUF4dCgxKSxsNmU9QXh0KC0xKSx2QmE9W107aShBeHQsInNpYmxpbmdzIil9KTtmdW5jdGlvbiBpcmUocyl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0LGEscil7cmV0dXJuIHhCYS5jYWxsKHMsdC50YWdOYW1lKSYmc1t0LnRhZ05hbWVdKHQsYSxyKX19dmFyIHhCYSxkNmU9ZygoKT0+e3hCYT17fS5oYXNPd25Qcm9wZXJ0eTtpKGlyZSwib21pc3Npb24iKX0pO2Z1bmN0aW9uIHU2ZShzLGUsdCl7bGV0IGE9cnIodCxlLCEwKTtyZXR1cm4hYXx8YS50eXBlIT09ImNvbW1lbnQiJiYhKGEudHlwZT09PSJ0ZXh0IiYmTzMoYS52YWx1ZS5jaGFyQXQoMCkpKX1mdW5jdGlvbiB5QmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiB3QmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBrQmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIGE/YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09ImFkZHJlc3MifHxhLnRhZ05hbWU9PT0iYXJ0aWNsZSJ8fGEudGFnTmFtZT09PSJhc2lkZSJ8fGEudGFnTmFtZT09PSJibG9ja3F1b3RlInx8YS50YWdOYW1lPT09ImRldGFpbHMifHxhLnRhZ05hbWU9PT0iZGl2Inx8YS50YWdOYW1lPT09ImRsInx8YS50YWdOYW1lPT09ImZpZWxkc2V0Inx8YS50YWdOYW1lPT09ImZpZ2NhcHRpb24ifHxhLnRhZ05hbWU9PT0iZmlndXJlInx8YS50YWdOYW1lPT09ImZvb3RlciJ8fGEudGFnTmFtZT09PSJmb3JtInx8YS50YWdOYW1lPT09ImgxInx8YS50YWdOYW1lPT09ImgyInx8YS50YWdOYW1lPT09ImgzInx8YS50YWdOYW1lPT09Img0Inx8YS50YWdOYW1lPT09Img1Inx8YS50YWdOYW1lPT09Img2Inx8YS50YWdOYW1lPT09ImhlYWRlciJ8fGEudGFnTmFtZT09PSJoZ3JvdXAifHxhLnRhZ05hbWU9PT0iaHIifHxhLnRhZ05hbWU9PT0ibWFpbiJ8fGEudGFnTmFtZT09PSJtZW51Inx8YS50YWdOYW1lPT09Im5hdiJ8fGEudGFnTmFtZT09PSJvbCJ8fGEudGFnTmFtZT09PSJwInx8YS50YWdOYW1lPT09InByZSJ8fGEudGFnTmFtZT09PSJzZWN0aW9uInx8YS50YWdOYW1lPT09InRhYmxlInx8YS50YWdOYW1lPT09InVsIik6IXR8fCEodC50eXBlPT09ImVsZW1lbnQiJiYodC50YWdOYW1lPT09ImEifHx0LnRhZ05hbWU9PT0iYXVkaW8ifHx0LnRhZ05hbWU9PT0iZGVsInx8dC50YWdOYW1lPT09ImlucyJ8fHQudGFnTmFtZT09PSJtYXAifHx0LnRhZ05hbWU9PT0ibm9zY3JpcHQifHx0LnRhZ05hbWU9PT0idmlkZW8iKSl9ZnVuY3Rpb24gU0JhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJsaSJ9ZnVuY3Rpb24gX0JhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiEhKGEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJkdCJ8fGEudGFnTmFtZT09PSJkZCIpKX1mdW5jdGlvbiBNQmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJkdCJ8fGEudGFnTmFtZT09PSJkZCIpfWZ1bmN0aW9uIE54dChzLGUsdCl7bGV0IGE9cnIodCxlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InJwInx8YS50YWdOYW1lPT09InJ0Iil9ZnVuY3Rpb24gekJhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJvcHRncm91cCJ9ZnVuY3Rpb24gQ0JhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0ib3B0aW9uInx8YS50YWdOYW1lPT09Im9wdGdyb3VwIil9ZnVuY3Rpb24gVEJhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiEhKGEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0Ym9keSJ8fGEudGFnTmFtZT09PSJ0Zm9vdCIpKX1mdW5jdGlvbiAkQmEocyxlLHQpe2xldCBhPXJyKHQsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0Ym9keSJ8fGEudGFnTmFtZT09PSJ0Zm9vdCIpfWZ1bmN0aW9uIERCYShzLGUsdCl7cmV0dXJuIXJyKHQsZSl9ZnVuY3Rpb24gTEJhKHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJ0ciJ9ZnVuY3Rpb24gUnh0KHMsZSx0KXtsZXQgYT1ycih0LGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGQifHxhLnRhZ05hbWU9PT0idGgiKX12YXIgVGsscDZlPWcoKCk9PntzcmUoKTtjNmUoKTtkNmUoKTtUaz1pcmUoe2JvZHk6d0JhLGNhcHRpb246dTZlLGNvbGdyb3VwOnU2ZSxkZDpNQmEsZHQ6X0JhLGhlYWQ6dTZlLGh0bWw6eUJhLGxpOlNCYSxvcHRncm91cDp6QmEsb3B0aW9uOkNCYSxwOmtCYSxycDpOeHQscnQ6Tnh0LHRib2R5OiRCYSx0ZDpSeHQsdGZvb3Q6REJhLHRoOlJ4dCx0aGVhZDpUQmEsdHI6TEJhfSk7aSh1NmUsImhlYWRPckNvbGdyb3VwT3JDYXB0aW9uIik7aSh5QmEsImh0bWwiKTtpKHdCYSwiYm9keSIpO2koa0JhLCJwIik7aShTQmEsImxpIik7aShfQmEsImR0Iik7aShNQmEsImRkIik7aShOeHQsInJ1YnlFbGVtZW50Iik7aSh6QmEsIm9wdGdyb3VwIik7aShDQmEsIm9wdGlvbiIpO2koVEJhLCJ0aGVhZCIpO2koJEJhLCJ0Ym9keSIpO2koREJhLCJ0Zm9vdCIpO2koTEJhLCJ0ciIpO2koUnh0LCJjZWxscyIpfSk7ZnVuY3Rpb24gRUJhKHMpe2xldCBlPXJyKHMsLTEpO3JldHVybiFlfHxlLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gUEJhKHMpe2xldCBlPW5ldyBTZXQ7Zm9yKGxldCBhIG9mIHMuY2hpbGRyZW4paWYoYS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09ImJhc2UifHxhLnRhZ05hbWU9PT0idGl0bGUiKSl7aWYoZS5oYXMoYS50YWdOYW1lKSlyZXR1cm4hMTtlLmFkZChhLnRhZ05hbWUpfWxldCB0PXMuY2hpbGRyZW5bMF07cmV0dXJuIXR8fHQudHlwZT09PSJlbGVtZW50In1mdW5jdGlvbiBJQmEocyl7bGV0IGU9cnIocywtMSwhMCk7cmV0dXJuIWV8fGUudHlwZSE9PSJjb21tZW50IiYmIShlLnR5cGU9PT0idGV4dCImJk8zKGUudmFsdWUuY2hhckF0KDApKSkmJiEoZS50eXBlPT09ImVsZW1lbnQiJiYoZS50YWdOYW1lPT09Im1ldGEifHxlLnRhZ05hbWU9PT0ibGluayJ8fGUudGFnTmFtZT09PSJzY3JpcHQifHxlLnRhZ05hbWU9PT0ic3R5bGUifHxlLnRhZ05hbWU9PT0idGVtcGxhdGUiKSl9ZnVuY3Rpb24gQUJhKHMsZSx0KXtsZXQgYT1sNmUodCxlKSxyPXJyKHMsLTEsITApO3JldHVybiB0JiZhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJjb2xncm91cCImJlRrKGEsdC5jaGlsZHJlbi5pbmRleE9mKGEpLHQpPyExOiEhKHImJnIudHlwZT09PSJlbGVtZW50IiYmci50YWdOYW1lPT09ImNvbCIpfWZ1bmN0aW9uIE5CYShzLGUsdCl7bGV0IGE9bDZlKHQsZSkscj1ycihzLC0xKTtyZXR1cm4gdCYmYSYmYS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InRoZWFkInx8YS50YWdOYW1lPT09InRib2R5IikmJlRrKGEsdC5jaGlsZHJlbi5pbmRleE9mKGEpLHQpPyExOiEhKHImJnIudHlwZT09PSJlbGVtZW50IiYmci50YWdOYW1lPT09InRyIil9dmFyIE94dCxGeHQ9ZygoKT0+e3NyZSgpO2M2ZSgpO3A2ZSgpO2Q2ZSgpO094dD1pcmUoe2JvZHk6SUJhLGNvbGdyb3VwOkFCYSxoZWFkOlBCYSxodG1sOkVCYSx0Ym9keTpOQmF9KTtpKEVCYSwiaHRtbCIpO2koUEJhLCJoZWFkIik7aShJQmEsImJvZHkiKTtpKEFCYSwiY29sZ3JvdXAiKTtpKE5CYSwidGJvZHkiKX0pO2Z1bmN0aW9uIEJ4dChzLGUsdCxhKXtsZXQgcj1hLnNjaGVtYSxuPXIuc3BhY2U9PT0ic3ZnIj8hMTphLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3Msbz1yLnNwYWNlPT09InN2ZyI/YS5zZXR0aW5ncy5jbG9zZUVtcHR5RWxlbWVudHM6YS5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSksbD1bXSxwO3Iuc3BhY2U9PT0iaHRtbCImJnMudGFnTmFtZT09PSJzdmciJiYoYS5zY2hlbWE9SmllKTtsZXQgZD1SQmEoYSxzLnByb3BlcnRpZXMpLHU9YS5hbGwoci5zcGFjZT09PSJodG1sIiYmcy50YWdOYW1lPT09InRlbXBsYXRlIj9zLmNvbnRlbnQ6cyk7cmV0dXJuIGEuc2NoZW1hPXIsdSYmKG89ITEpLChkfHwhbnx8IU94dChzLGUsdCkpJiYobC5wdXNoKCI8IixzLnRhZ05hbWUsZD8iICIrZDoiIiksbyYmKHIuc3BhY2U9PT0ic3ZnInx8YS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKSYmKHA9ZC5jaGFyQXQoZC5sZW5ndGgtMSksKCFhLnNldHRpbmdzLnRpZ2h0U2VsZkNsb3Npbmd8fHA9PT0iLyJ8fHAmJnAhPT0nIicmJnAhPT0iJyIpJiZsLnB1c2goIiAiKSxsLnB1c2goIi8iKSksbC5wdXNoKCI+IikpLGwucHVzaCh1KSwhbyYmKCFufHwhVGsocyxlLHQpKSYmbC5wdXNoKCI8LyIrcy50YWdOYW1lKyI+IiksbC5qb2luKCIiKX1mdW5jdGlvbiBSQmEocyxlKXtsZXQgdD1bXSxhPS0xLHI7aWYoZSl7Zm9yKHIgaW4gZSlpZihlW3JdIT09bnVsbCYmZVtyXSE9PXZvaWQgMCl7bGV0IG49T0JhKHMscixlW3JdKTtuJiZ0LnB1c2gobil9fWZvcig7KythPHQubGVuZ3RoOyl7bGV0IG49cy5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXM/dFthXS5jaGFyQXQodFthXS5sZW5ndGgtMSk6dm9pZCAwO2EhPT10Lmxlbmd0aC0xJiZuIT09JyInJiZuIT09IiciJiYodFthXSs9IiAiKX1yZXR1cm4gdC5qb2luKCIiKX1mdW5jdGlvbiBPQmEocyxlLHQpe2xldCBhPWk2ZShzLnNjaGVtYSxlKSxyPXMuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyYmcy5zY2hlbWEuc3BhY2U9PT0iaHRtbCI/MDoxLG49cy5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM/MDoxLG89cy5xdW90ZSxsO2lmKGEub3ZlcmxvYWRlZEJvb2xlYW4mJih0PT09YS5hdHRyaWJ1dGV8fHQ9PT0iIik/dD0hMDooYS5ib29sZWFufHxhLm92ZXJsb2FkZWRCb29sZWFuKSYmKHR5cGVvZiB0IT0ic3RyaW5nInx8dD09PWEuYXR0cmlidXRlfHx0PT09IiIpJiYodD0hIXQpLHQ9PW51bGx8fHQ9PT0hMXx8dHlwZW9mIHQ9PSJudW1iZXIiJiZOdW1iZXIuaXNOYU4odCkpcmV0dXJuIiI7bGV0IHA9STAoYS5hdHRyaWJ1dGUsT2JqZWN0LmFzc2lnbih7fSxzLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpycmUubmFtZVtyXVtuXX0pKTtyZXR1cm4gdD09PSEwfHwodD1BcnJheS5pc0FycmF5KHQpPyhhLmNvbW1hU2VwYXJhdGVkPyR4dDpMeHQpKHQse3BhZExlZnQ6IXMuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzfSk6U3RyaW5nKHQpLHMuc2V0dGluZ3MuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMmJiF0KT9wOihzLnNldHRpbmdzLnByZWZlclVucXVvdGVkJiYobD1JMCh0LE9iamVjdC5hc3NpZ24oe30scy5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHthdHRyaWJ1dGU6ITAsc3Vic2V0OnJyZS51bnF1b3RlZFtyXVtuXX0pKSksbCE9PXQmJihzLnNldHRpbmdzLnF1b3RlU21hcnQmJks5KHQsbyk+SzkodCxzLmFsdGVybmF0aXZlKSYmKG89cy5hbHRlcm5hdGl2ZSksbD1vK0kwKHQsT2JqZWN0LmFzc2lnbih7fSxzLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDoobz09PSInIj9ycmUuc2luZ2xlOnJyZS5kb3VibGUpW3JdW25dLGF0dHJpYnV0ZTohMH0pKStvKSxwKyhsJiYiPSIrbCkpfXZhciBycmUsSHh0PWcoKCk9PntRM2UoKTtEeHQoKTtyNmUoKTtFeHQoKTthcmUoKTtwNmUoKTtGeHQoKTtycmU9e25hbWU6W1tgCQpcZlxyICYvPT5gLnNwbGl0KCIiKSxgCQpcZlxyICImJy89PlxgYC5zcGxpdCgiIildLFtgXDAJClxmXHIgIiYnLzw9PmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJicvPD0+XGBgLnNwbGl0KCIiKV1dLHVucXVvdGVkOltbYAkKXGZcciAmPmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIiksYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIildXSxzaW5nbGU6W1siJiciLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWyJcMCYnIi5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dLGRvdWJsZTpbWyciJicuc3BsaXQoIiIpLCJcIiYnYCIuc3BsaXQoIiIpXSxbJ1wwIiYnLnNwbGl0KCIiKSwiXDBcIiYnYCIuc3BsaXQoIiIpXV19O2koQnh0LCJlbGVtZW50Iik7aShSQmEsInNlcmlhbGl6ZUF0dHJpYnV0ZXMiKTtpKE9CYSwic2VyaWFsaXplQXR0cmlidXRlIil9KTtmdW5jdGlvbiBvcmUocyxlLHQsYSl7cmV0dXJuIHQmJnQudHlwZT09PSJlbGVtZW50IiYmKHQudGFnTmFtZT09PSJzY3JpcHQifHx0LnRhZ05hbWU9PT0ic3R5bGUiKT9zLnZhbHVlOkkwKHMudmFsdWUsT2JqZWN0LmFzc2lnbih7fSxhLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpGQmF9KSl9dmFyIEZCYSxoNmU9ZygoKT0+e2FyZSgpO0ZCYT1bIjwiLCImIl07aShvcmUsInRleHQiKX0pO2Z1bmN0aW9uIHF4dChzLGUsdCxhKXtyZXR1cm4gYS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWw/cy52YWx1ZTpvcmUocyxlLHQsYSl9dmFyIGp4dD1nKCgpPT57aDZlKCk7aShxeHQsInJhdyIpfSk7ZnVuY3Rpb24gVnh0KHMsZSx0LGEpe3JldHVybiBhLmFsbChzKX12YXIgVXh0PWcoKCk9PntpKFZ4dCwicm9vdCIpfSk7ZnVuY3Rpb24gQkJhKHMpe3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm90IGAiK3MrImAiKX1mdW5jdGlvbiBIQmEocyl7bGV0IGU9czt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgIitlLnR5cGUrImAiKX12YXIgV3h0LEd4dD1nKCgpPT57Y2ZlKCk7enh0KCk7VHh0KCk7SHh0KCk7anh0KCk7VXh0KCk7aDZlKCk7V3h0PXJpZSgidHlwZSIse2ludmFsaWQ6QkJhLHVua25vd246SEJhLGhhbmRsZXJzOntjb21tZW50Ok14dCxkb2N0eXBlOkN4dCxlbGVtZW50OkJ4dCxyYXc6cXh0LHJvb3Q6Vnh0LHRleHQ6b3JlfX0pO2koQkJhLCJpbnZhbGlkIik7aShIQmEsInVua25vd24iKX0pO2Z1bmN0aW9uIGY2ZShzLGUpe2xldCB0PWV8fHFCYSxhPXQucXVvdGV8fCciJyxyPWE9PT0nIic/IiciOiciJztpZihhIT09JyInJiZhIT09IiciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBxdW90ZSBgIithKyJgLCBleHBlY3RlZCBgJ2Agb3IgYFwiYCIpO3JldHVybntvbmU6VUJhLGFsbDpXQmEsc2V0dGluZ3M6e29taXRPcHRpb25hbFRhZ3M6dC5vbWl0T3B0aW9uYWxUYWdzfHwhMSxhbGxvd1BhcnNlRXJyb3JzOnQuYWxsb3dQYXJzZUVycm9yc3x8ITEsYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOnQuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzfHwhMSxxdW90ZVNtYXJ0OnQucXVvdGVTbWFydHx8ITEscHJlZmVyVW5xdW90ZWQ6dC5wcmVmZXJVbnF1b3RlZHx8ITEsdGlnaHRBdHRyaWJ1dGVzOnQudGlnaHRBdHRyaWJ1dGVzfHwhMSx1cHBlckRvY3R5cGU6dC51cHBlckRvY3R5cGV8fCExLHRpZ2h0RG9jdHlwZTp0LnRpZ2h0RG9jdHlwZXx8ITEsYm9ndXNDb21tZW50czp0LmJvZ3VzQ29tbWVudHN8fCExLHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czp0LnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c3x8ITEsdGlnaHRTZWxmQ2xvc2luZzp0LnRpZ2h0U2VsZkNsb3Npbmd8fCExLGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOnQuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXN8fCExLGFsbG93RGFuZ2Vyb3VzSHRtbDp0LmFsbG93RGFuZ2Vyb3VzSHRtbHx8ITEsdm9pZHM6dC52b2lkc3x8VnZ0LGNoYXJhY3RlclJlZmVyZW5jZXM6dC5jaGFyYWN0ZXJSZWZlcmVuY2VzfHxqQmEsY2xvc2VTZWxmQ2xvc2luZzp0LmNsb3NlU2VsZkNsb3Npbmd8fCExLGNsb3NlRW1wdHlFbGVtZW50czp0LmNsb3NlRW1wdHlFbGVtZW50c3x8ITF9LHNjaGVtYTp0LnNwYWNlPT09InN2ZyI/SmllOnJ4dCxxdW90ZTphLGFsdGVybmF0aXZlOnJ9Lm9uZShBcnJheS5pc0FycmF5KHMpP3t0eXBlOiJyb290IixjaGlsZHJlbjpzfTpzLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIFVCYShzLGUsdCl7cmV0dXJuIFd4dChzLGUsdCx0aGlzKX1mdW5jdGlvbiBXQmEocyl7bGV0IGU9W10sdD1zJiZzLmNoaWxkcmVufHxWQmEsYT0tMTtmb3IoOysrYTx0Lmxlbmd0aDspZVthXT10aGlzLm9uZSh0W2FdLGEscyk7cmV0dXJuIGUuam9pbigiIil9dmFyIHFCYSxqQmEsVkJhLEt4dD1nKCgpPT57VXZ0KCk7cjZlKCk7R3h0KCk7cUJhPXt9LGpCYT17fSxWQmE9W107aShmNmUsInRvSHRtbCIpO2koVUJhLCJvbmUiKTtpKFdCYSwiYWxsIil9KTt2YXIgWXh0PWcoKCk9PntLeHQoKX0pO2Z1bmN0aW9uIGxiKHMpe2xldCBlPXRoaXMse2hhbmRsZXJzOnQsc2FuaXRpemU6YSwuLi5yfT1zfHxHQmEsbj0hMSxvO3R5cGVvZiBhPT0iYm9vbGVhbiI/bj0hYTphJiYobz1hKSxlLmNvbXBpbGVyPWw7ZnVuY3Rpb24gbChwLGQpe2xldCB1PVdtZShwLHtoYW5kbGVyczp0LGFsbG93RGFuZ2Vyb3VzSHRtbDpufSksYz1uP3U6Qm1lKHUsbyksYj1mNmUoYyx7Li4ucixhbGxvd0Rhbmdlcm91c0h0bWw6bn0pO3JldHVybiBkLmV4dG5hbWUmJihkLmV4dG5hbWU9Ii5odG1sIikscCYmcC50eXBlPT09InJvb3QiJiZiJiYvW15cclxuXS8udGVzdChiLmNoYXJBdChiLmxlbmd0aC0xKSk/YitgCmA6Yn1pKGwsImNvbXBpbGVyIil9dmFyIEdCYSxaeHQ9ZygoKT0+e0ZidCgpO2p2dCgpO1l4dCgpO0dCYT17fTtpKGxiLCJyZW1hcmtIdG1sIil9KTt2YXIgWHh0PWcoKCk9PntaeHQoKX0pO2Z1bmN0aW9uIGNiKHMpe2xldCBlPXRoaXM7ZS5jb21waWxlcj10O2Z1bmN0aW9uIHQoYSl7cmV0dXJuIERmZShhLHsuLi5lLmRhdGEoInNldHRpbmdzIiksLi4ucyxleHRlbnNpb25zOmUuZGF0YSgidG9NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX1pKHQsImNvbXBpbGVyIil9dmFyIFF4dD1nKCgpPT57bWllKCk7aShjYiwicmVtYXJrU3RyaW5naWZ5Iil9KTt2YXIgSnh0PWcoKCk9PntReHQoKX0pO2Z1bmN0aW9uIEtCYShzKXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgdD1hcmd1bWVudHNbZV07Zm9yKHZhciBhIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJihzW2FdPXRbYV0pfXJldHVybiBzfWZ1bmN0aW9uIG02ZShzLGUpe3JldHVybiBBcnJheShlKzEpLmpvaW4ocyl9ZnVuY3Rpb24gZXl0KHMpe3JldHVybiBzLnJlcGxhY2UoL15cbiovLCIiKX1mdW5jdGlvbiB0eXQocyl7Zm9yKHZhciBlPXMubGVuZ3RoO2U+MCYmc1tlLTFdPT09YApgOyllLS07cmV0dXJuIHMuc3Vic3RyaW5nKDAsZSl9ZnVuY3Rpb24gYXl0KHMpe3JldHVybiB0eXQoZXl0KHMpKX1mdW5jdGlvbiBnNmUocyl7cmV0dXJuIGI2ZShzLFlCYSl9ZnVuY3Rpb24gaXl0KHMpe3JldHVybiBiNmUocyxzeXQpfWZ1bmN0aW9uIFpCYShzKXtyZXR1cm4gb3l0KHMsc3l0KX1mdW5jdGlvbiBYQmEocyl7cmV0dXJuIGI2ZShzLHJ5dCl9ZnVuY3Rpb24gUUJhKHMpe3JldHVybiBveXQocyxyeXQpfWZ1bmN0aW9uIGI2ZShzLGUpe3JldHVybiBlLmluZGV4T2Yocy5ub2RlTmFtZSk+PTB9ZnVuY3Rpb24gb3l0KHMsZSl7cmV0dXJuIHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmUuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gcy5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KS5sZW5ndGh9KX1mdW5jdGlvbiBueXQocyl7cmV0dXJuIEpCYS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yZXBsYWNlKHRbMF0sdFsxXSl9LHMpfWZ1bmN0aW9uIG5yZShzKXtyZXR1cm4gcz9zLnJlcGxhY2UoLyhcbitccyopKy9nLGAKYCk6IiJ9ZnVuY3Rpb24gdjZlKHMpe3ZhciBlPXMucmVwbGFjZSgvKFs8PigpXSkvZywiXFwkMSIpO3JldHVybiBlLmluZGV4T2YoIiAiKT49MD8iPCIrZSsiPiI6ZX1mdW5jdGlvbiB4NmUocyl7cmV0dXJuIHMucmVwbGFjZSgvIi9nLCdcXCInKX1mdW5jdGlvbiBseXQocyl7dGhpcy5vcHRpb25zPXMsdGhpcy5fa2VlcD1bXSx0aGlzLl9yZW1vdmU9W10sdGhpcy5ibGFua1J1bGU9e3JlcGxhY2VtZW50OnMuYmxhbmtSZXBsYWNlbWVudH0sdGhpcy5rZWVwUmVwbGFjZW1lbnQ9cy5rZWVwUmVwbGFjZW1lbnQsdGhpcy5kZWZhdWx0UnVsZT17cmVwbGFjZW1lbnQ6cy5kZWZhdWx0UmVwbGFjZW1lbnR9LHRoaXMuYXJyYXk9W107Zm9yKHZhciBlIGluIHMucnVsZXMpdGhpcy5hcnJheS5wdXNoKHMucnVsZXNbZV0pfWZ1bmN0aW9uIHk2ZShzLGUsdCl7Zm9yKHZhciBhPTA7YTxzLmxlbmd0aDthKyspe3ZhciByPXNbYV07aWYoZUhhKHIsZSx0KSlyZXR1cm4gcn19ZnVuY3Rpb24gZUhhKHMsZSx0KXt2YXIgYT1zLmZpbHRlcjtpZih0eXBlb2YgYT09InN0cmluZyIpe2lmKGE9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuITB9ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmluZGV4T2YoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT4tMSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXtpZihhLmNhbGwocyxlLHQpKXJldHVybiEwfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbiIpfWZ1bmN0aW9uIHRIYShzKXt2YXIgZT1zLmVsZW1lbnQsdD1zLmlzQmxvY2ssYT1zLmlzVm9pZCxyPXMuaXNQcmV8fGZ1bmN0aW9uKGMpe3JldHVybiBjLm5vZGVOYW1lPT09IlBSRSJ9O2lmKCEoIWUuZmlyc3RDaGlsZHx8cihlKSkpe2Zvcih2YXIgbj1udWxsLG89ITEsbD1udWxsLHA9Y3l0KGwsZSxyKTtwIT09ZTspe2lmKHAubm9kZVR5cGU9PT0zfHxwLm5vZGVUeXBlPT09NCl7dmFyIGQ9cC5kYXRhLnJlcGxhY2UoL1sgXHJcblx0XSsvZywiICIpO2lmKCghbnx8LyAkLy50ZXN0KG4uZGF0YSkpJiYhbyYmZFswXT09PSIgIiYmKGQ9ZC5zdWJzdHIoMSkpLCFkKXtwPXc2ZShwKTtjb250aW51ZX1wLmRhdGE9ZCxuPXB9ZWxzZSBpZihwLm5vZGVUeXBlPT09MSl0KHApfHxwLm5vZGVOYW1lPT09IkJSIj8obiYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSksbj1udWxsLG89ITEpOmEocCl8fHIocCk/KG49bnVsbCxvPSEwKTpuJiYobz0hMSk7ZWxzZXtwPXc2ZShwKTtjb250aW51ZX12YXIgdT1jeXQobCxwLHIpO2w9cCxwPXV9biYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSxuLmRhdGF8fHc2ZShuKSl9fWZ1bmN0aW9uIHc2ZShzKXt2YXIgZT1zLm5leHRTaWJsaW5nfHxzLnBhcmVudE5vZGU7cmV0dXJuIHMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzKSxlfWZ1bmN0aW9uIGN5dChzLGUsdCl7cmV0dXJuIHMmJnMucGFyZW50Tm9kZT09PWV8fHQoZSk/ZS5uZXh0U2libGluZ3x8ZS5wYXJlbnROb2RlOmUuZmlyc3RDaGlsZHx8ZS5uZXh0U2libGluZ3x8ZS5wYXJlbnROb2RlfWZ1bmN0aW9uIGFIYSgpe3ZhciBzPWs2ZS5ET01QYXJzZXIsZT0hMTt0cnl7bmV3IHMoKS5wYXJzZUZyb21TdHJpbmcoIiIsInRleHQvaHRtbCIpJiYoZT0hMCl9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIHNIYSgpe3ZhciBzPWkoZnVuY3Rpb24oKXt9LCJQYXJzZXIiKTtyZXR1cm4gaUhhKCk/cy5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTtyZXR1cm4gdC5kZXNpZ25Nb2RlPSJvbiIsdC5vcGVuKCksdC53cml0ZShlKSx0LmNsb3NlKCksdH06cy5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIHQub3BlbigpLHQud3JpdGUoZSksdC5jbG9zZSgpLHR9LHN9ZnVuY3Rpb24gaUhhKCl7dmFyIHM9ITE7dHJ5e2RvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikub3BlbigpfWNhdGNoe2s2ZS5BY3RpdmVYT2JqZWN0JiYocz0hMCl9cmV0dXJuIHN9ZnVuY3Rpb24gb0hhKHMsZSl7dmFyIHQ7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt2YXIgYT1uSGEoKS5wYXJzZUZyb21TdHJpbmcoJzx4LXR1cm5kb3duIGlkPSJ0dXJuZG93bi1yb290Ij4nK3MrIjwveC10dXJuZG93bj4iLCJ0ZXh0L2h0bWwiKTt0PWEuZ2V0RWxlbWVudEJ5SWQoInR1cm5kb3duLXJvb3QiKX1lbHNlIHQ9cy5jbG9uZU5vZGUoITApO3JldHVybiB0SGEoe2VsZW1lbnQ6dCxpc0Jsb2NrOmc2ZSxpc1ZvaWQ6aXl0LGlzUHJlOmUucHJlZm9ybWF0dGVkQ29kZT9sSGE6bnVsbH0pLHR9ZnVuY3Rpb24gbkhhKCl7cmV0dXJuIFM2ZT1TNmV8fG5ldyBySGEsUzZlfWZ1bmN0aW9uIGxIYShzKXtyZXR1cm4gcy5ub2RlTmFtZT09PSJQUkUifHxzLm5vZGVOYW1lPT09IkNPREUifWZ1bmN0aW9uIGNIYShzLGUpe3JldHVybiBzLmlzQmxvY2s9ZzZlKHMpLHMuaXNDb2RlPXMubm9kZU5hbWU9PT0iQ09ERSJ8fHMucGFyZW50Tm9kZS5pc0NvZGUscy5pc0JsYW5rPWRIYShzKSxzLmZsYW5raW5nV2hpdGVzcGFjZT11SGEocyxlKSxzfWZ1bmN0aW9uIGRIYShzKXtyZXR1cm4haXl0KHMpJiYhWEJhKHMpJiYvXlxzKiQvaS50ZXN0KHMudGV4dENvbnRlbnQpJiYhWkJhKHMpJiYhUUJhKHMpfWZ1bmN0aW9uIHVIYShzLGUpe2lmKHMuaXNCbG9ja3x8ZS5wcmVmb3JtYXR0ZWRDb2RlJiZzLmlzQ29kZSlyZXR1cm57bGVhZGluZzoiIix0cmFpbGluZzoiIn07dmFyIHQ9cEhhKHMudGV4dENvbnRlbnQpO3JldHVybiB0LmxlYWRpbmdBc2NpaSYmZHl0KCJsZWZ0IixzLGUpJiYodC5sZWFkaW5nPXQubGVhZGluZ05vbkFzY2lpKSx0LnRyYWlsaW5nQXNjaWkmJmR5dCgicmlnaHQiLHMsZSkmJih0LnRyYWlsaW5nPXQudHJhaWxpbmdOb25Bc2NpaSkse2xlYWRpbmc6dC5sZWFkaW5nLHRyYWlsaW5nOnQudHJhaWxpbmd9fWZ1bmN0aW9uIHBIYShzKXt2YXIgZT1zLm1hdGNoKC9eKChbIFx0XHJcbl0qKShccyopKSg/Oig/PVxTKVtcc1xTXSpcUyk/KChccyo/KShbIFx0XHJcbl0qKSkkLyk7cmV0dXJue2xlYWRpbmc6ZVsxXSxsZWFkaW5nQXNjaWk6ZVsyXSxsZWFkaW5nTm9uQXNjaWk6ZVszXSx0cmFpbGluZzplWzRdLHRyYWlsaW5nTm9uQXNjaWk6ZVs1XSx0cmFpbGluZ0FzY2lpOmVbNl19fWZ1bmN0aW9uIGR5dChzLGUsdCl7dmFyIGEscixuO3JldHVybiBzPT09ImxlZnQiPyhhPWUucHJldmlvdXNTaWJsaW5nLHI9LyAkLyk6KGE9ZS5uZXh0U2libGluZyxyPS9eIC8pLGEmJihhLm5vZGVUeXBlPT09Mz9uPXIudGVzdChhLm5vZGVWYWx1ZSk6dC5wcmVmb3JtYXR0ZWRDb2RlJiZhLm5vZGVOYW1lPT09IkNPREUiP249ITE6YS5ub2RlVHlwZT09PTEmJiFnNmUoYSkmJihuPXIudGVzdChhLnRleHRDb250ZW50KSkpLG59ZnVuY3Rpb24gYWgocyl7aWYoISh0aGlzIGluc3RhbmNlb2YgYWgpKXJldHVybiBuZXcgYWgocyk7dmFyIGU9e3J1bGVzOnRuLGhlYWRpbmdTdHlsZToic2V0ZXh0IixocjoiKiAqICoiLGJ1bGxldExpc3RNYXJrZXI6IioiLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsZmVuY2U6ImBgYCIsZW1EZWxpbWl0ZXI6Il8iLHN0cm9uZ0RlbGltaXRlcjoiKioiLGxpbmtTdHlsZToiaW5saW5lZCIsbGlua1JlZmVyZW5jZVN0eWxlOiJmdWxsIixicjoiICAiLHByZWZvcm1hdHRlZENvZGU6ITEsYmxhbmtSZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsYSl7cmV0dXJuIGEuaXNCbG9jaz9gCgpgOiIifSwiYmxhbmtSZXBsYWNlbWVudCIpLGtlZXBSZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsYSl7cmV0dXJuIGEuaXNCbG9jaz9gCgpgK2Eub3V0ZXJIVE1MK2AKCmA6YS5vdXRlckhUTUx9LCJrZWVwUmVwbGFjZW1lbnQiKSxkZWZhdWx0UmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGEpe3JldHVybiBhLmlzQmxvY2s/YAoKYCt0K2AKCmA6dH0sImRlZmF1bHRSZXBsYWNlbWVudCIpfTt0aGlzLm9wdGlvbnM9S0JhKHt9LGUscyksdGhpcy5ydWxlcz1uZXcgbHl0KHRoaXMub3B0aW9ucyl9ZnVuY3Rpb24gdXl0KHMpe3ZhciBlPXRoaXM7cmV0dXJuIGhIYS5jYWxsKHMuY2hpbGROb2RlcyxmdW5jdGlvbih0LGEpe2E9bmV3IGNIYShhLGUub3B0aW9ucyk7dmFyIHI9IiI7cmV0dXJuIGEubm9kZVR5cGU9PT0zP3I9YS5pc0NvZGU/YS5ub2RlVmFsdWU6ZS5lc2NhcGUoYS5ub2RlVmFsdWUpOmEubm9kZVR5cGU9PT0xJiYocj1tSGEuY2FsbChlLGEpKSxweXQodCxyKX0sIiIpfWZ1bmN0aW9uIGZIYShzKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnJ1bGVzLmZvckVhY2goZnVuY3Rpb24odCl7dHlwZW9mIHQuYXBwZW5kPT0iZnVuY3Rpb24iJiYocz1weXQocyx0LmFwcGVuZChlLm9wdGlvbnMpKSl9KSxzLnJlcGxhY2UoL15bXHRcclxuXSsvLCIiKS5yZXBsYWNlKC9bXHRcclxuXHNdKyQvLCIiKX1mdW5jdGlvbiBtSGEocyl7dmFyIGU9dGhpcy5ydWxlcy5mb3JOb2RlKHMpLHQ9dXl0LmNhbGwodGhpcyxzKSxhPXMuZmxhbmtpbmdXaGl0ZXNwYWNlO3JldHVybihhLmxlYWRpbmd8fGEudHJhaWxpbmcpJiYodD10LnRyaW0oKSksYS5sZWFkaW5nK2UucmVwbGFjZW1lbnQodCxzLHRoaXMub3B0aW9ucykrYS50cmFpbGluZ31mdW5jdGlvbiBweXQocyxlKXt2YXIgdD10eXQocyksYT1leXQoZSkscj1NYXRoLm1heChzLmxlbmd0aC10Lmxlbmd0aCxlLmxlbmd0aC1hLmxlbmd0aCksbj1gCgpgLnN1YnN0cmluZygwLHIpO3JldHVybiB0K24rYX1mdW5jdGlvbiBnSGEocyl7cmV0dXJuIHMhPW51bGwmJih0eXBlb2Ygcz09InN0cmluZyJ8fHMubm9kZVR5cGUmJihzLm5vZGVUeXBlPT09MXx8cy5ub2RlVHlwZT09PTl8fHMubm9kZVR5cGU9PT0xMSkpfXZhciBZQmEsc3l0LHJ5dCxKQmEsdG4sazZlLHJIYSxTNmUsaEhhLGh5dD1nKCgpPT57aShLQmEsImV4dGVuZCIpO2kobTZlLCJyZXBlYXQiKTtpKGV5dCwidHJpbUxlYWRpbmdOZXdsaW5lcyIpO2kodHl0LCJ0cmltVHJhaWxpbmdOZXdsaW5lcyIpO2koYXl0LCJ0cmltTmV3bGluZXMiKTtZQmE9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07aShnNmUsImlzQmxvY2siKTtzeXQ9WyJBUkVBIiwiQkFTRSIsIkJSIiwiQ09MIiwiQ09NTUFORCIsIkVNQkVEIiwiSFIiLCJJTUciLCJJTlBVVCIsIktFWUdFTiIsIkxJTksiLCJNRVRBIiwiUEFSQU0iLCJTT1VSQ0UiLCJUUkFDSyIsIldCUiJdO2koaXl0LCJpc1ZvaWQiKTtpKFpCYSwiaGFzVm9pZCIpO3J5dD1bIkEiLCJUQUJMRSIsIlRIRUFEIiwiVEJPRFkiLCJURk9PVCIsIlRIIiwiVEQiLCJJRlJBTUUiLCJTQ1JJUFQiLCJBVURJTyIsIlZJREVPIl07aShYQmEsImlzTWVhbmluZ2Z1bFdoZW5CbGFuayIpO2koUUJhLCJoYXNNZWFuaW5nZnVsV2hlbkJsYW5rIik7aShiNmUsImlzIik7aShveXQsImhhcyIpO0pCYT1bWy9cXC9nLCJcXFxcIl0sWy9cKi9nLCJcXCoiXSxbL14tL2csIlxcLSJdLFsvXlwrIC9nLCJcXCsgIl0sWy9eKD0rKS9nLCJcXCQxIl0sWy9eKCN7MSw2fSkgL2csIlxcJDEgIl0sWy9gL2csIlxcYCJdLFsvXn5+fi9nLCJcXH5+fiJdLFsvXFsvZywiXFxbIl0sWy9cXS9nLCJcXF0iXSxbL14+L2csIlxcPiJdLFsvXy9nLCJcXF8iXSxbL14oXGQrKVwuIC9nLCIkMVxcLiAiXV07aShueXQsImVzY2FwZU1hcmtkb3duIik7dG49e307dG4ucGFyYWdyYXBoPXtmaWx0ZXI6InAiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyl7cmV0dXJuYAoKYCtzK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx0bi5saW5lQnJlYWs9e2ZpbHRlcjoiYnIiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiB0LmJyK2AKYH0sInJlcGxhY2VtZW50Iil9LHRuLmhlYWRpbmc9e2ZpbHRlcjpbImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3ZhciBhPU51bWJlcihlLm5vZGVOYW1lLmNoYXJBdCgxKSk7aWYodC5oZWFkaW5nU3R5bGU9PT0ic2V0ZXh0IiYmYTwzKXt2YXIgcj1tNmUoYT09PTE/Ij0iOiItIixzLmxlbmd0aCk7cmV0dXJuYAoKYCtzK2AKYCtyK2AKCmB9ZWxzZSByZXR1cm5gCgpgK202ZSgiIyIsYSkrIiAiK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmJsb2NrcXVvdGU9e2ZpbHRlcjoiYmxvY2txdW90ZSIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzKXtyZXR1cm4gcz1heXQocykucmVwbGFjZSgvXi9nbSwiPiAiKSxgCgpgK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmxpc3Q9e2ZpbHRlcjpbInVsIiwib2wiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHMsZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0Lm5vZGVOYW1lPT09IkxJIiYmdC5sYXN0RWxlbWVudENoaWxkPT09ZT9gCmArczpgCgpgK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmxpc3RJdGVtPXtmaWx0ZXI6ImxpIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHMsZSx0KXt2YXIgYT10LmJ1bGxldExpc3RNYXJrZXIrIiAgICIscj1lLnBhcmVudE5vZGU7aWYoci5ub2RlTmFtZT09PSJPTCIpe3ZhciBuPXIuZ2V0QXR0cmlidXRlKCJzdGFydCIpLG89QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChyLmNoaWxkcmVuLGUpO2E9KG4/TnVtYmVyKG4pK286bysxKSsiLiAgIn12YXIgbD0vXG4kLy50ZXN0KHMpO3JldHVybiBzPWF5dChzKSsobD9gCmA6IiIpLHM9cy5yZXBsYWNlKC9cbi9nbSxgCmArIiAiLnJlcGVhdChhLmxlbmd0aCkpLGErcysoZS5uZXh0U2libGluZz9gCmA6IiIpfSwicmVwbGFjZW1lbnQiKX0sdG4uaW5kZW50ZWRDb2RlQmxvY2s9e2ZpbHRlcjppKGZ1bmN0aW9uKHMsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iaW5kZW50ZWQiJiZzLm5vZGVOYW1lPT09IlBSRSImJnMuZmlyc3RDaGlsZCYmcy5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUsdCl7cmV0dXJuYAoKICAgIGArZS5maXJzdENoaWxkLnRleHRDb250ZW50LnJlcGxhY2UoL1xuL2csYAogICAgYCkrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmZlbmNlZENvZGVCbG9jaz17ZmlsdGVyOmkoZnVuY3Rpb24ocyxlKXtyZXR1cm4gZS5jb2RlQmxvY2tTdHlsZT09PSJmZW5jZWQiJiZzLm5vZGVOYW1lPT09IlBSRSImJnMuZmlyc3RDaGlsZCYmcy5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiLHI9KGEubWF0Y2goL2xhbmd1YWdlLShcUyspLyl8fFtudWxsLCIiXSlbMV0sbj1lLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQsbz10LmZlbmNlLmNoYXJBdCgwKSxsPTMscD1uZXcgUmVnRXhwKCJeIitvKyJ7Myx9IiwiZ20iKSxkO2Q9cC5leGVjKG4pOylkWzBdLmxlbmd0aD49bCYmKGw9ZFswXS5sZW5ndGgrMSk7dmFyIHU9bTZlKG8sbCk7cmV0dXJuYAoKYCt1K3IrYApgK24ucmVwbGFjZSgvXG4kLywiIikrYApgK3UrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmhvcml6b250YWxSdWxlPXtmaWx0ZXI6ImhyIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHMsZSx0KXtyZXR1cm5gCgpgK3QuaHIrYAoKYH0sInJlcGxhY2VtZW50Iil9LHRuLmlubGluZUxpbms9e2ZpbHRlcjppKGZ1bmN0aW9uKHMsZSl7cmV0dXJuIGUubGlua1N0eWxlPT09ImlubGluZWQiJiZzLm5vZGVOYW1lPT09IkEiJiZzLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUpe3ZhciB0PXY2ZShlLmdldEF0dHJpYnV0ZSgiaHJlZiIpKSxhPXg2ZShucmUoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpKSxyPWE/JyAiJythKyciJzoiIjtyZXR1cm4iWyIrcysiXSgiK3QrcisiKSJ9LCJyZXBsYWNlbWVudCIpfSx0bi5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbihzLGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJyZWZlcmVuY2VkIiYmcy5ub2RlTmFtZT09PSJBIiYmcy5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3ZhciBhPXY2ZShlLmdldEF0dHJpYnV0ZSgiaHJlZiIpKSxyPW5yZShlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSk7ciYmKHI9JyAiJyt4NmUocikrJyInKTt2YXIgbixvO3N3aXRjaCh0LmxpbmtSZWZlcmVuY2VTdHlsZSl7Y2FzZSJjb2xsYXBzZWQiOm49IlsiK3MrIl1bXSIsbz0iWyIrcysiXTogIithK3I7YnJlYWs7Y2FzZSJzaG9ydGN1dCI6bj0iWyIrcysiXSIsbz0iWyIrcysiXTogIithK3I7YnJlYWs7ZGVmYXVsdDp2YXIgbD10aGlzLnJlZmVyZW5jZXMubGVuZ3RoKzE7bj0iWyIrcysiXVsiK2wrIl0iLG89IlsiK2wrIl06ICIrYStyfXJldHVybiB0aGlzLnJlZmVyZW5jZXMucHVzaChvKSxufSwicmVwbGFjZW1lbnQiKSxyZWZlcmVuY2VzOltdLGFwcGVuZDppKGZ1bmN0aW9uKHMpe3ZhciBlPSIiO3JldHVybiB0aGlzLnJlZmVyZW5jZXMubGVuZ3RoJiYoZT1gCgpgK3RoaXMucmVmZXJlbmNlcy5qb2luKGAKYCkrYAoKYCx0aGlzLnJlZmVyZW5jZXM9W10pLGV9LCJhcHBlbmQiKX0sdG4uZW1waGFzaXM9e2ZpbHRlcjpbImVtIiwiaSJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiBzLnRyaW0oKT90LmVtRGVsaW1pdGVyK3MrdC5lbURlbGltaXRlcjoiIn0sInJlcGxhY2VtZW50Iil9LHRuLnN0cm9uZz17ZmlsdGVyOlsic3Ryb25nIiwiYiJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlLHQpe3JldHVybiBzLnRyaW0oKT90LnN0cm9uZ0RlbGltaXRlcitzK3Quc3Ryb25nRGVsaW1pdGVyOiIifSwicmVwbGFjZW1lbnQiKX0sdG4uY29kZT17ZmlsdGVyOmkoZnVuY3Rpb24ocyl7dmFyIGU9cy5wcmV2aW91c1NpYmxpbmd8fHMubmV4dFNpYmxpbmcsdD1zLnBhcmVudE5vZGUubm9kZU5hbWU9PT0iUFJFIiYmIWU7cmV0dXJuIHMubm9kZU5hbWU9PT0iQ09ERSImJiF0fSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzKXtpZighcylyZXR1cm4iIjtzPXMucmVwbGFjZSgvXHI/XG58XHIvZywiICIpO2Zvcih2YXIgZT0vXmB8XiAuKj9bXiBdLiogJHxgJC8udGVzdChzKT8iICI6IiIsdD0iYCIsYT1zLm1hdGNoKC9gKy9nbSl8fFtdO2EuaW5kZXhPZih0KSE9PS0xOyl0PXQrImAiO3JldHVybiB0K2UrcytlK3R9LCJyZXBsYWNlbWVudCIpfSx0bi5pbWFnZT17ZmlsdGVyOiJpbWciLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlKXt2YXIgdD1ueXQobnJlKGUuZ2V0QXR0cmlidXRlKCJhbHQiKSkpLGE9djZlKGUuZ2V0QXR0cmlidXRlKCJzcmMiKXx8IiIpLHI9bnJlKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxuPXI/JyAiJyt4NmUocikrJyInOiIiO3JldHVybiBhPyIhWyIrdCsiXSgiK2ErbisiKSI6IiJ9LCJyZXBsYWNlbWVudCIpfTtpKG5yZSwiY2xlYW5BdHRyaWJ1dGUiKTtpKHY2ZSwiZXNjYXBlTGlua0Rlc3RpbmF0aW9uIik7aSh4NmUsImVzY2FwZUxpbmtUaXRsZSIpO2kobHl0LCJSdWxlcyIpLGx5dC5wcm90b3R5cGU9e2FkZDppKGZ1bmN0aW9uKHMsZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpfSwiYWRkIiksa2VlcDppKGZ1bmN0aW9uKHMpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOnMscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0sImtlZXAiKSxyZW1vdmU6aShmdW5jdGlvbihzKXt0aGlzLl9yZW1vdmUudW5zaGlmdCh7ZmlsdGVyOnMscmVwbGFjZW1lbnQ6aShmdW5jdGlvbigpe3JldHVybiIifSwicmVwbGFjZW1lbnQiKX0pfSwicmVtb3ZlIiksZm9yTm9kZTppKGZ1bmN0aW9uKHMpe2lmKHMuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIGU7cmV0dXJuKGU9eTZlKHRoaXMuYXJyYXkscyx0aGlzLm9wdGlvbnMpKXx8KGU9eTZlKHRoaXMuX2tlZXAscyx0aGlzLm9wdGlvbnMpKXx8KGU9eTZlKHRoaXMuX3JlbW92ZSxzLHRoaXMub3B0aW9ucykpP2U6dGhpcy5kZWZhdWx0UnVsZX0sImZvck5vZGUiKSxmb3JFYWNoOmkoZnVuY3Rpb24ocyl7Zm9yKHZhciBlPTA7ZTx0aGlzLmFycmF5Lmxlbmd0aDtlKyspcyh0aGlzLmFycmF5W2VdLGUpfSwiZm9yRWFjaCIpfTtpKHk2ZSwiZmluZFJ1bGUiKTtpKGVIYSwiZmlsdGVyVmFsdWUiKTtpKHRIYSwiY29sbGFwc2VXaGl0ZXNwYWNlIik7aSh3NmUsInJlbW92ZSIpO2koY3l0LCJuZXh0Iik7azZlPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fTtpKGFIYSwiY2FuUGFyc2VIVE1MTmF0aXZlbHkiKTtpKHNIYSwiY3JlYXRlSFRNTFBhcnNlciIpO2koaUhhLCJzaG91bGRVc2VBY3RpdmVYIik7ckhhPWFIYSgpP2s2ZS5ET01QYXJzZXI6c0hhKCk7aShvSGEsIlJvb3ROb2RlIik7aShuSGEsImh0bWxQYXJzZXIiKTtpKGxIYSwiaXNQcmVPckNvZGUiKTtpKGNIYSwiTm9kZSIpO2koZEhhLCJpc0JsYW5rIik7aSh1SGEsImZsYW5raW5nV2hpdGVzcGFjZSIpO2kocEhhLCJlZGdlV2hpdGVzcGFjZSIpO2koZHl0LCJpc0ZsYW5rZWRCeVdoaXRlc3BhY2UiKTtoSGE9QXJyYXkucHJvdG90eXBlLnJlZHVjZTtpKGFoLCJUdXJuZG93blNlcnZpY2UiKSxhaC5wcm90b3R5cGU9e3R1cm5kb3duOmkoZnVuY3Rpb24ocyl7aWYoIWdIYShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKHMrIiBpcyBub3QgYSBzdHJpbmcsIG9yIGFuIGVsZW1lbnQvZG9jdW1lbnQvZnJhZ21lbnQgbm9kZS4iKTtpZihzPT09IiIpcmV0dXJuIiI7dmFyIGU9dXl0LmNhbGwodGhpcyxuZXcgb0hhKHMsdGhpcy5vcHRpb25zKSk7cmV0dXJuIGZIYS5jYWxsKHRoaXMsZSl9LCJ0dXJuZG93biIpLHVzZTppKGZ1bmN0aW9uKHMpe2lmKEFycmF5LmlzQXJyYXkocykpZm9yKHZhciBlPTA7ZTxzLmxlbmd0aDtlKyspdGhpcy51c2Uoc1tlXSk7ZWxzZSBpZih0eXBlb2Ygcz09ImZ1bmN0aW9uIilzKHRoaXMpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigicGx1Z2luIG11c3QgYmUgYSBGdW5jdGlvbiBvciBhbiBBcnJheSBvZiBGdW5jdGlvbnMiKTtyZXR1cm4gdGhpc30sInVzZSIpLGFkZFJ1bGU6aShmdW5jdGlvbihzLGUpe3JldHVybiB0aGlzLnJ1bGVzLmFkZChzLGUpLHRoaXN9LCJhZGRSdWxlIiksa2VlcDppKGZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnJ1bGVzLmtlZXAocyksdGhpc30sImtlZXAiKSxyZW1vdmU6aShmdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5ydWxlcy5yZW1vdmUocyksdGhpc30sInJlbW92ZSIpLGVzY2FwZTppKGZ1bmN0aW9uKHMpe3JldHVybiBueXQocyl9LCJlc2NhcGUiKX07aSh1eXQsInByb2Nlc3MiKTtpKGZIYSwicG9zdFByb2Nlc3MiKTtpKG1IYSwicmVwbGFjZW1lbnRGb3JOb2RlIik7aShweXQsImpvaW4iKTtpKGdIYSwiY2FuQ29udmVydCIpfSk7dmFyICQ2ZT17fTt5dCgkNmUse2dmbTooKT0+Z3l0LGhpZ2hsaWdodGVkQ29kZUJsb2NrOigpPT5NNmUsc3RyaWtldGhyb3VnaDooKT0+ejZlLHRhYmxlczooKT0+QzZlLHRhc2tMaXN0SXRlbXM6KCk9PlQ2ZX0pO2Z1bmN0aW9uIE02ZShzKXtzLmFkZFJ1bGUoImhpZ2hsaWdodGVkQ29kZUJsb2NrIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5maXJzdENoaWxkO3JldHVybiBlLm5vZGVOYW1lPT09IkRJViImJmZ5dC50ZXN0KGUuY2xhc3NOYW1lKSYmdCYmdC5ub2RlTmFtZT09PSJQUkUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlLHQsYSl7dmFyIHI9dC5jbGFzc05hbWV8fCIiLG49KHIubWF0Y2goZnl0KXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2EuZmVuY2UrbitgCmArdC5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCthLmZlbmNlK2AKCmB9LCJyZXBsYWNlbWVudCIpfSl9ZnVuY3Rpb24gejZlKHMpe3MuYWRkUnVsZSgic3RyaWtldGhyb3VnaCIse2ZpbHRlcjpbImRlbCIsInMiLCJzdHJpa2UiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUpe3JldHVybiJ+IitlKyJ+In0sInJlcGxhY2VtZW50Iil9KX1mdW5jdGlvbiBfNmUocyl7dmFyIGU9cy5wYXJlbnROb2RlO3JldHVybiBlLm5vZGVOYW1lPT09IlRIRUFEInx8ZS5maXJzdENoaWxkPT09cyYmKGUubm9kZU5hbWU9PT0iVEFCTEUifHx4SGEoZSkpJiZ2SGEuY2FsbChzLmNoaWxkTm9kZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEgifSl9ZnVuY3Rpb24geEhhKHMpe3ZhciBlPXMucHJldmlvdXNTaWJsaW5nO3JldHVybiBzLm5vZGVOYW1lPT09IlRCT0RZIiYmKCFlfHxlLm5vZGVOYW1lPT09IlRIRUFEIiYmL15ccyokL2kudGVzdChlLnRleHRDb250ZW50KSl9ZnVuY3Rpb24gbXl0KHMsZSl7dmFyIHQ9YkhhLmNhbGwoZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMsZSksYT0iICI7cmV0dXJuIHQ9PT0wJiYoYT0ifCAiKSxhK3MrIiB8In1mdW5jdGlvbiBDNmUocyl7cy5rZWVwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlRBQkxFIiYmIV82ZSh0LnJvd3NbMF0pfSk7Zm9yKHZhciBlIGluIGRiKXMuYWRkUnVsZShlLGRiW2VdKX1mdW5jdGlvbiBUNmUocyl7cy5hZGRSdWxlKCJ0YXNrTGlzdEl0ZW1zIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJjaGVja2JveCImJmUucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJMSSJ9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQuY2hlY2tlZD8iW3hdIjoiWyBdIikrIiAifSwicmVwbGFjZW1lbnQiKX0pfWZ1bmN0aW9uIGd5dChzKXtzLnVzZShbTTZlLHo2ZSxDNmUsVDZlXSl9dmFyIGZ5dCxiSGEsdkhhLGRiLGJ5dD1nKCgpPT57Znl0PS9oaWdobGlnaHQtKD86dGV4dHxzb3VyY2UpLShbYS16MC05XSspLztpKE02ZSwiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siKTtpKHo2ZSwic3RyaWtldGhyb3VnaCIpO2JIYT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZix2SGE9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LGRiPXt9O2RiLnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyxlKXtyZXR1cm4gbXl0KHMsZSl9LCJyZXBsYWNlbWVudCIpfSxkYi50YWJsZVJvdz17ZmlsdGVyOiJ0ciIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzLGUpe3ZhciB0PSIiLGE9e2xlZnQ6IjotLSIscmlnaHQ6Ii0tOiIsY2VudGVyOiI6LToifTtpZihfNmUoZSkpZm9yKHZhciByPTA7cjxlLmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl7dmFyIG49Ii0tLSIsbz0oZS5jaGlsZE5vZGVzW3JdLmdldEF0dHJpYnV0ZSgiYWxpZ24iKXx8IiIpLnRvTG93ZXJDYXNlKCk7byYmKG49YVtvXXx8biksdCs9bXl0KG4sZS5jaGlsZE5vZGVzW3JdKX1yZXR1cm5gCmArcysodD9gCmArdDoiIil9LCJyZXBsYWNlbWVudCIpfSxkYi50YWJsZT17ZmlsdGVyOmkoZnVuY3Rpb24ocyl7cmV0dXJuIHMubm9kZU5hbWU9PT0iVEFCTEUiJiZfNmUocy5yb3dzWzBdKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocyl7cmV0dXJuIHM9cy5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK3MrYAoKYH0sInJlcGxhY2VtZW50Iil9LGRiLnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbihzKXtyZXR1cm4gc30sInJlcGxhY2VtZW50Iil9O2koXzZlLCJpc0hlYWRpbmdSb3ciKTtpKHhIYSwiaXNGaXJzdFRib2R5Iik7aShteXQsImNlbGwiKTtpKEM2ZSwidGFibGVzIik7aShUNmUsInRhc2tMaXN0SXRlbXMiKTtpKGd5dCwiZ2ZtIil9KTt2YXIgRDZlLEw2ZT1nKCgpPT57aTh0KCk7Ujh0KCk7ajl0KCk7bWJ0KCk7Q2J0KCk7WHh0KCk7Snh0KCk7aHl0KCk7Ynl0KCk7RDZlPSQ2ZX0pO3ZhciB5SGEsbHJlLHh5dD1nKCgpPT57TDZlKCk7eUhhPWkocz0+cy50eXBlPT09InlhbWwiJiYidmFsdWUiaW4gcyYmdHlwZW9mIHMudmFsdWU9PSJzdHJpbmciLCJpc1lhbWxOb2RlIiksbHJlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiTWRQYXJzZWRSZXN1bHQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMub3JpZ2luYWxTdHJpbmc9IiIsdGhpcy50aXRsZT0iIix0aGlzLmh0bWw9IiIsdGhpcy5mcm9udG1hdHRlckRhdGE9e319c3RhdGljIGFzeW5jIGNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKXtsZXQgdD1uZXcgcztyZXR1cm4gYXdhaXQgdC51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSksdH1hc3luYyB1cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7dGhpcy5vcmlnaW5hbFN0cmluZz1lO2xldCB0LGE9YXdhaXQgcmsoKS51c2UoYWIpLnVzZSh0YikudXNlKGliLFsieWFtbCIsInRvbWwiXSkudXNlKGNiKS51c2UobGIpLnVzZSgoKT0+cj0+e2xldCBuPXIuY2hpbGRyZW4uZmluZCh5SGEpO24mJih0PW4udmFsdWUpfSkucHJvY2VzcyhlKTt0aGlzLmh0bWw9YS50b1N0cmluZygpLHQ/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgdGsueWFtbFN0cmluZ1RvT2JqZWN0KHQpOnRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fX19KTt2YXIgJGs9e307eXQoJGsse1NtYXJ0TWFya2Rvd246KCk9PkU2ZX0pO3ZhciBFNmUseXl0PWcoKCk9PntMNmUoKTt4eXQoKTtFNmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTbWFydE1hcmtkb3duIil9c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbChlKXtyZXR1cm4oYXdhaXQgbmV3IHMoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKXtyZXR1cm4gYXdhaXQgbHJlLmNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKX1odG1sVG9NYXJrZG93bihlKXtsZXQgdD1uZXcgYWgoe2hlYWRpbmdTdHlsZToiYXR4Iixjb2RlQmxvY2tTdHlsZToiZmVuY2VkIn0pO3JldHVybiB0LnVzZShENmUuZ2ZtKSx0LnR1cm5kb3duKGUpfX19KTt2YXIgenl0PXBsKE4xPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShOMSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTjEuUGF0aEVycm9yPU4xLlRva2VuRGF0YT12b2lkIDAsTjEucGFyc2U9QTZlLE4xLmNvbXBpbGU9X0hhLE4xLm1hdGNoPXpIYSxOMS5wYXRoVG9SZWdleHA9U3l0LE4xLnN0cmluZ2lmeT1USGE7dmFyIFA2ZT0iLyIsSTZlPWkocz0+cywiTk9PUF9WQUxVRSIpLHdIYT0vXlskX1xwe0lEX1N0YXJ0fV0kL3Usd3l0PS9eWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dJC91LGtIYT0vXlskX1xwe0lEX1N0YXJ0fV1bJFx1MjAwY1x1MjAwZFxwe0lEX0NvbnRpbnVlfV0qJC91O2Z1bmN0aW9uIFNIYShzKXtyZXR1cm4gcy5yZXBsYWNlKC9be30oKVxbXF0rPyE6KlxcXS9nLCJcXCQmIil9aShTSGEsImVzY2FwZVRleHQiKTtmdW5jdGlvbiBBMChzKXtyZXR1cm4gcy5yZXBsYWNlKC9bLisqP14ke30oKVtcXXwvXFxdL2csIlxcJCYiKX1pKEEwLCJlc2NhcGUiKTt2YXIgY3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRva2VuRGF0YSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy50b2tlbnM9ZSx0aGlzLm9yaWdpbmFsUGF0aD10fX07TjEuVG9rZW5EYXRhPWNyZTt2YXIga2Q9Y2xhc3MgZXh0ZW5kcyBUeXBlRXJyb3J7c3RhdGlje2kodGhpcywiUGF0aEVycm9yIil9Y29uc3RydWN0b3IoZSx0KXtsZXQgYT1lO3QmJihhKz1gOiAke3R9YCksYSs9IjsgdmlzaXQgaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yIGZvciBpbmZvIixzdXBlcihhKSx0aGlzLm9yaWdpbmFsUGF0aD10fX07TjEuUGF0aEVycm9yPWtkO2Z1bmN0aW9uIEE2ZShzLGU9e30pe2xldHtlbmNvZGVQYXRoOnQ9STZlfT1lLGE9Wy4uLnNdLHI9MDtmdW5jdGlvbiBuKG8pe2xldCBsPVtdLHA9IiI7ZnVuY3Rpb24gZCgpe3AmJihsLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOnQocCl9KSxwPSIiKX1mb3IoaShkLCJ3cml0ZVBhdGgiKTtyPGEubGVuZ3RoOyl7bGV0IHU9YVtyKytdO2lmKHU9PT1vKXJldHVybiBkKCksbDtpZih1PT09IlxcIil7aWYocj09PWEubGVuZ3RoKXRocm93IG5ldyBrZChgVW5leHBlY3RlZCBlbmQgYWZ0ZXIgXFwgYXQgaW5kZXggJHtyfWAscyk7cCs9YVtyKytdO2NvbnRpbnVlfWlmKHU9PT0iOiJ8fHU9PT0iKiIpe2xldCBjPXU9PT0iOiI/InBhcmFtIjoid2lsZGNhcmQiLGI9IiI7aWYod0hhLnRlc3QoYVtyXSkpZG8gYis9YVtyKytdO3doaWxlKHd5dC50ZXN0KGFbcl0pKTtlbHNlIGlmKGFbcl09PT0nIicpe2xldCB2PXI7Zm9yKDtyPGEubGVuZ3RoOyl7aWYoYVsrK3JdPT09JyInKXtyKyssdj0wO2JyZWFrfWFbcl09PT0iXFwiJiZyKyssYis9YVtyXX1pZih2KXRocm93IG5ldyBrZChgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7dn1gLHMpfWlmKCFiKXRocm93IG5ldyBrZChgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBpbmRleCAke3J9YCxzKTtkKCksbC5wdXNoKHt0eXBlOmMsbmFtZTpifSk7Y29udGludWV9aWYodT09PSJ7Iil7ZCgpLGwucHVzaCh7dHlwZToiZ3JvdXAiLHRva2VuczpuKCJ9Iil9KTtjb250aW51ZX1pZih1PT09In0ifHx1PT09IigifHx1PT09IikifHx1PT09IlsifHx1PT09Il0ifHx1PT09IisifHx1PT09Ij8ifHx1PT09IiEiKXRocm93IG5ldyBrZChgVW5leHBlY3RlZCAke3V9IGF0IGluZGV4ICR7ci0xfWAscyk7cCs9dX1pZihvKXRocm93IG5ldyBrZChgVW5leHBlY3RlZCBlbmQgYXQgaW5kZXggJHtyfSwgZXhwZWN0ZWQgJHtvfWAscyk7cmV0dXJuIGQoKSxsfXJldHVybiBpKG4sImNvbnN1bWVVbnRpbCIpLG5ldyBjcmUobigiIikscyl9aShBNmUsInBhcnNlIik7ZnVuY3Rpb24gX0hhKHMsZT17fSl7bGV0e2VuY29kZTp0PWVuY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6YT1QNmV9PWUscj10eXBlb2Ygcz09Im9iamVjdCI/czpBNmUocyxlKSxuPWt5dChyLnRva2VucyxhLHQpO3JldHVybiBpKGZ1bmN0aW9uKGw9e30pe2xldCBwPVtdLGQ9bihsLHApO2lmKHAubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyczogJHtwLmpvaW4oIiwgIil9YCk7cmV0dXJuIGR9LCJwYXRoIil9aShfSGEsImNvbXBpbGUiKTtmdW5jdGlvbiBreXQocyxlLHQpe2xldCBhPXMubWFwKHI9Pk1IYShyLGUsdCkpO3JldHVybihyLG4pPT57bGV0IG89IiI7Zm9yKGxldCBsIG9mIGEpbys9bChyLG4pO3JldHVybiBvfX1pKGt5dCwidG9rZW5zVG9GdW5jdGlvbiIpO2Z1bmN0aW9uIE1IYShzLGUsdCl7aWYocy50eXBlPT09InRleHQiKXJldHVybigpPT5zLnZhbHVlO2lmKHMudHlwZT09PSJncm91cCIpe2xldCByPWt5dChzLnRva2VucyxlLHQpO3JldHVybihuLG8pPT57bGV0IGw9by5sZW5ndGgscD1yKG4sbyk7cmV0dXJuIG8ubGVuZ3RoPT09bD9wOihvLmxlbmd0aD1sLCIiKX19bGV0IGE9dHx8STZlO3JldHVybiBzLnR5cGU9PT0id2lsZGNhcmQiJiZ0IT09ITE/KHIsbik9PntsZXQgbz1yW3MubmFtZV07aWYobz09bnVsbClyZXR1cm4gbi5wdXNoKHMubmFtZSksIiI7aWYoIUFycmF5LmlzQXJyYXkobyl8fG8ubGVuZ3RoPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtzLm5hbWV9IiB0byBiZSBhIG5vbi1lbXB0eSBhcnJheWApO2xldCBsPSIiO2ZvcihsZXQgcD0wO3A8by5sZW5ndGg7cCsrKXtpZih0eXBlb2Ygb1twXSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7cy5uYW1lfS8ke3B9IiB0byBiZSBhIHN0cmluZ2ApO3A+MCYmKGwrPWUpLGwrPWEob1twXSl9cmV0dXJuIGx9OihyLG4pPT57bGV0IG89cltzLm5hbWVdO2lmKG89PW51bGwpcmV0dXJuIG4ucHVzaChzLm5hbWUpLCIiO2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtzLm5hbWV9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVybiBhKG8pfX1pKE1IYSwidG9rZW5Ub0Z1bmN0aW9uIik7ZnVuY3Rpb24gekhhKHMsZT17fSl7bGV0e2RlY29kZTp0PWRlY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6YT1QNmV9PWUse3JlZ2V4cDpyLGtleXM6bn09U3l0KHMsZSksbz1uLm1hcChsPT50PT09ITE/STZlOmwudHlwZT09PSJwYXJhbSI/dDpwPT5wLnNwbGl0KGEpLm1hcCh0KSk7cmV0dXJuIGkoZnVuY3Rpb24ocCl7bGV0IGQ9ci5leGVjKHApO2lmKCFkKXJldHVybiExO2xldCB1PWRbMF0sYz1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgYj0xO2I8ZC5sZW5ndGg7YisrKXtpZihkW2JdPT09dm9pZCAwKWNvbnRpbnVlO2xldCB2PW5bYi0xXSx4PW9bYi0xXTtjW3YubmFtZV09eChkW2JdKX1yZXR1cm57cGF0aDp1LHBhcmFtczpjfX0sIm1hdGNoIil9aSh6SGEsIm1hdGNoIik7ZnVuY3Rpb24gU3l0KHMsZT17fSl7bGV0e2RlbGltaXRlcjp0PVA2ZSxlbmQ6YT0hMCxzZW5zaXRpdmU6cj0hMSx0cmFpbGluZzpuPSEwfT1lLG89W10sbD0iIixwPTA7ZnVuY3Rpb24gZChjKXtpZihBcnJheS5pc0FycmF5KGMpKXtmb3IobGV0IHYgb2YgYylkKHYpO3JldHVybn1sZXQgYj10eXBlb2YgYz09Im9iamVjdCI/YzpBNmUoYyxlKTtONmUoYi50b2tlbnMsMCxbXSx2PT57aWYocD49MjU2KXRocm93IG5ldyBrZCgiVG9vIG1hbnkgcGF0aCBjb21iaW5hdGlvbnMiLGIub3JpZ2luYWxQYXRoKTtwPjAmJihsKz0ifCIpLGwrPUNIYSh2LHQsbyxiLm9yaWdpbmFsUGF0aCkscCsrfSl9aShkLCJwcm9jZXNzIiksZChzKTtsZXQgdT1gXig/OiR7bH0pYDtyZXR1cm4gbiYmKHUrPSIoPzoiK0EwKHQpKyIkKT8iKSx1Kz1hPyIkIjoiKD89IitBMCh0KSsifCQpIix7cmVnZXhwOm5ldyBSZWdFeHAodSxyPyIiOiJpIiksa2V5czpvfX1pKFN5dCwicGF0aFRvUmVnZXhwIik7ZnVuY3Rpb24gTjZlKHMsZSx0LGEpe2Zvcig7ZTxzLmxlbmd0aDspe2xldCByPXNbZSsrXTtpZihyLnR5cGU9PT0iZ3JvdXAiKXtsZXQgbj10Lmxlbmd0aDtONmUoci50b2tlbnMsMCx0LG89Pk42ZShzLGUsbyxhKSksdC5sZW5ndGg9bjtjb250aW51ZX10LnB1c2gocil9YSh0KX1pKE42ZSwiZmxhdHRlbiIpO2Z1bmN0aW9uIENIYShzLGUsdCxhKXtsZXQgcj0iIixuPSIiLG89IiIsbD0wLHA9MCxkPTA7ZnVuY3Rpb24gdShiLHYpe2Zvcig7YjxzLmxlbmd0aDspe2xldCB4PXNbYisrXTtpZih4LnR5cGU9PT12KXJldHVybiEwO2lmKHgudHlwZT09PSJ0ZXh0IiYmeC52YWx1ZS5pbmNsdWRlcyhlKSlicmVha31yZXR1cm4hMX1pKHUsImhhc0luU2VnbWVudCIpO2Z1bmN0aW9uIGMoYil7bGV0IHY9IiI7Zm9yKDtiPHMubGVuZ3RoOyl7bGV0IHg9c1tiKytdO2lmKHgudHlwZSE9PSJ0ZXh0IilicmVhazt2Kz14LnZhbHVlfXJldHVybiB2fWZvcihpKGMsInBlZWtUZXh0Iik7ZDxzLmxlbmd0aDspe2xldCBiPXNbZCsrXTtpZihiLnR5cGU9PT0idGV4dCIpe3IrPUEwKGIudmFsdWUpLG4rPWIudmFsdWUsbD09PTImJihvKz1iLnZhbHVlKSxiLnZhbHVlLmluY2x1ZGVzKGUpJiYocD0wKTtjb250aW51ZX1pZihiLnR5cGU9PT0icGFyYW0ifHxiLnR5cGU9PT0id2lsZGNhcmQiKXtpZihsJiYhbil0aHJvdyBuZXcga2QoYE1pc3NpbmcgdGV4dCBiZWZvcmUgIiR7Yi5uYW1lfSIgJHtiLnR5cGV9YCxhKTtiLnR5cGU9PT0icGFyYW0iPyhyKz1wJjI/YCgke3NoKGUsbil9KylgOnUoZCwid2lsZGNhcmQiKT9gKCR7c2goZSxjKGQpKX0rKWA6cCYxP2AoJHtzaChlLG4pfSt8JHtBMChuKX0pYDpgKCR7c2goZSwiIil9KylgLHB8PWw9MSk6KHIrPXAmMj9gKCR7c2gobiwiIil9KylgOm8/YCgke3NoKG8sIiIpfSt8JHtzaChlLCIiKX0rKWA6IihbXl0rKSIsbz0iIixwfD1sPTIpLHQucHVzaChiKSxuPSIiO2NvbnRpbnVlfXRocm93IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdG9rZW4gdHlwZTogJHtiLnR5cGV9YCl9cmV0dXJuIHJ9aShDSGEsInRvUmVnRXhwU291cmNlIik7ZnVuY3Rpb24gc2gocyxlKXtyZXR1cm4gZS5sZW5ndGg+cy5sZW5ndGg/c2goZSxzKToocz09PWUmJihlPSIiKSxlLmxlbmd0aD4xP2AoPzooPyEke0EwKHMpfXwke0EwKGUpfSlbXl0pYDpzLmxlbmd0aD4xP2AoPzooPyEke0EwKHMpfSlbXiR7QTAoZSl9XSlgOmBbXiR7QTAocytlKX1dYCl9aShzaCwibmVnYXRlIik7ZnVuY3Rpb24gX3l0KHMsZSl7bGV0IHQ9IiI7Zm9yKDtlPHMubGVuZ3RoOyl7bGV0IGE9c1tlKytdO2lmKGEudHlwZT09PSJ0ZXh0Iil7dCs9U0hhKGEudmFsdWUpO2NvbnRpbnVlfWlmKGEudHlwZT09PSJncm91cCIpe3QrPSJ7IitfeXQoYS50b2tlbnMsMCkrIn0iO2NvbnRpbnVlfWlmKGEudHlwZT09PSJwYXJhbSIpe3QrPSI6IitNeXQoYS5uYW1lLHNbZV0pO2NvbnRpbnVlfWlmKGEudHlwZT09PSJ3aWxkY2FyZCIpe3QrPSIqIitNeXQoYS5uYW1lLHNbZV0pO2NvbnRpbnVlfXRocm93IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdG9rZW4gdHlwZTogJHthLnR5cGV9YCl9cmV0dXJuIHR9aShfeXQsInN0cmluZ2lmeVRva2VucyIpO2Z1bmN0aW9uIFRIYShzKXtyZXR1cm4gX3l0KHMudG9rZW5zLDApfWkoVEhhLCJzdHJpbmdpZnkiKTtmdW5jdGlvbiBNeXQocyxlKXtyZXR1cm4ha0hhLnRlc3Qocyl8fGU/LnR5cGU9PT0idGV4dCImJnd5dC50ZXN0KGUudmFsdWVbMF0pP0pTT04uc3RyaW5naWZ5KHMpOnN9aShNeXQsInN0cmluZ2lmeU5hbWUiKX0pO3ZhciBSNmUsTzZlPWcoKCk9Pnt1OSgpO1oyKCk7UjZlPXhuKHp5dCgpLDEpfSk7dmFyIGRyZSxDeXQ9ZygoKT0+e082ZSgpO2RyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJRdWVyeVBhcmFtcyIpfWNvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUsdCxhPSJyZXBsYWNlIil7dmFyIHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyLnNldChlLHQpLGE9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IityLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrci50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUsdD0icmVwbGFjZSIpe3ZhciBhPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7YS5kZWxldGUoZSksdD09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2EudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyIFI2aSxGNmUsVHl0PWcoKCk9PntPNmUoKTtDeXQoKTtSNmk9aShzPT57Y29uc29sZS5sb2coYCVjW1JvdXRlcl0lYyAke3N9YCwiY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsiLCJjb2xvcjogaW5oZXJpdCIpfSwicm91dGVMb2ciKSxGNmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTbWFydFJvdXRlciIpfWNvbnN0cnVjdG9yKGUsdD0iIil7dGhpcy5vcHRpb25zPXtkZWJ1ZzohMX0sdGhpcy5xdWVyeVBhcmFtcz1uZXcgZHJlLHRoaXMucm91dGVzPVtdLHRoaXMub3B0aW9ucz17Li4udGhpcy5vcHRpb25zLC4uLmV9LHRoaXMuYmFzZVBhdGg9dCx0aGlzLnBvcHN0YXRlTGlzdGVuZXI9YT0+e2EucHJldmVudERlZmF1bHQoKSx0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKX1jcmVhdGVTdWJSb3V0ZXIoZSx0KXtsZXQgYT1gJHt0aGlzLmJhc2VQYXRofSR7ZX1gO3JldHVybiBuZXcgcyh7Li4udGhpcy5vcHRpb25zLC4uLnR9LGEpfWFzeW5jIHB1c2hVcmwoZT0iLyIsdD17fSl7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDthIT09d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lP3dpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh0LHdpbmRvdy5kb2N1bWVudC50aXRsZSxhKTp3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUodCx3aW5kb3cuZG9jdW1lbnQudGl0bGUsYSksYXdhaXQgdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfW9uKGUsdCl7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YCxyPXttYXRjaEZ1bmN0aW9uOlI2ZS5tYXRjaChhKSxoYW5kbGVyOnR9O3JldHVybiB0aGlzLnJvdXRlcy5wdXNoKHIpLGkoKCk9Pnt0aGlzLnJvdXRlcy5zcGxpY2UodGhpcy5yb3V0ZXMuaW5kZXhPZihyKSwxKX0sInJlbW92ZUZ1bmN0aW9uIil9YXN5bmMgX2hhbmRsZVJvdXRlU3RhdGUoKXtsZXQgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsdD10aGlzLnJvdXRlcy5maWx0ZXIoYT0+ISFhLm1hdGNoRnVuY3Rpb24oZSkpO2ZvcihsZXQgYSBvZiB0KXtsZXQgcj1hLm1hdGNoRnVuY3Rpb24oZSk7YS5oYW5kbGVyKHsuLi5yLnZhbHVlT2YoKSxxdWVyeVBhcmFtczp0aGlzLnF1ZXJ5UGFyYW1zLmdldEFsbEFzT2JqZWN0KCl9KX19ZGVzdHJveSgpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKSx0aGlzLnJvdXRlcz1bXX19fSk7dmFyIEYzPXt9O3l0KEYzLHtTbWFydFJvdXRlcjooKT0+RjZlfSk7dmFyICR5dD1nKCgpPT57VHl0KCl9KTt2YXIgRHl0PWcoKCk9PntzdygpO2c5KCl9KTtmdW5jdGlvbiBTZChzLGUpe3JldHVybiBzPj4+ZXxzPDwzMi1lfWZ1bmN0aW9uIFBIYShzLGUpe2xldCB0PWVbMF0sYT1lWzFdLHI9ZVsyXSxuPWVbM10sbz1lWzRdLGw9ZVs1XSxwPWVbNl0sZD1lWzddO2ZvcihsZXQgdT0wO3U8NjQ7dSsrKXtpZih1Pj0xNil7bGV0IHk9U2Qoc1t1LTE1XSw3KV5TZChzW3UtMTVdLDE4KV5zW3UtMTVdPj4+MyxNPVNkKHNbdS0yXSwxNyleU2Qoc1t1LTJdLDE5KV5zW3UtMl0+Pj4xMDtzW3VdPXNbdS0xNl0reStzW3UtN10rTT4+PjB9bGV0IGM9U2Qobyw2KV5TZChvLDExKV5TZChvLDI1KSxiPW8mbF5+byZwLHY9ZCtjK2IrTEhhW3VdK3NbdV0+Pj4wLHg9U2QodCwyKV5TZCh0LDEzKV5TZCh0LDIyKSxtPXQmYV50JnJeYSZyLGY9eCttPj4+MDtkPXAscD1sLGw9byxvPW4rdj4+PjAsbj1yLHI9YSxhPXQsdD12K2Y+Pj4wfWVbMF09ZVswXSt0Pj4+MCxlWzFdPWVbMV0rYT4+PjAsZVsyXT1lWzJdK3I+Pj4wLGVbM109ZVszXStuPj4+MCxlWzRdPWVbNF0rbz4+PjAsZVs1XT1lWzVdK2w+Pj4wLGVbNl09ZVs2XStwPj4+MCxlWzddPWVbN10rZD4+PjB9ZnVuY3Rpb24gQjZlKHMpe2xldCBlPVsuLi5FSGFdLHQ9cy5sZW5ndGgsYT10Kjgscj10JTY0PDU2PzU2LXQlNjQ6MTIwLXQlNjQsbj1uZXcgVWludDhBcnJheSh0K3IrOCk7bi5zZXQocyksblt0XT0xMjg7bGV0IG89bmV3IERhdGFWaWV3KG4uYnVmZmVyKTtvLnNldFVpbnQzMihuLmxlbmd0aC04LDAsITEpLG8uc2V0VWludDMyKG4ubGVuZ3RoLTQsYT4+PjAsITEpO2ZvcihsZXQgcD0wO3A8bi5sZW5ndGg7cCs9NjQpe2xldCBkPW5ldyBBcnJheSg2NCk7Zm9yKGxldCB1PTA7dTwxNjt1KyspZFt1XT1vLmdldFVpbnQzMihwK3UqNCwhMSk7UEhhKGQsZSl9bGV0IGw9IiI7Zm9yKGxldCBwPTA7cDw4O3ArKylsKz1lW3BdLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIik7cmV0dXJuIGx9dmFyIExIYSxFSGEsTHl0PWcoKCk9PntMSGE9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sRUhhPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07aShTZCwicm90ciIpO2koUEhhLCJzaGEyNTZUcmFuc2Zvcm0iKTtpKEI2ZSwic2hhMjU2RmFsbGJhY2siKX0pO3ZhciBEaz17fTt5dChEayx7bWQ1RnJvbVN0cmluZzooKT0+RkhhLHNoYTI1NkZyb21CdWZmZXI6KCk9PkFIYSxzaGEyNTZGcm9tRmlsZTooKT0+T0hhLHNoYTI1NkZyb21TdHJlYW06KCk9PlJIYSxzaGEyNTZGcm9tU3RyaW5nOigpPT5JeXQsc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PklIYSxzaGEyNjVGcm9tT2JqZWN0OigpPT5OSGF9KTt2YXIgRXl0LFB5dCxJeXQsSUhhLEFIYSxOSGEsUkhhLE9IYSxGSGEsQXl0PWcoKCk9PntEeXQoKTtMeXQoKTtFeXQ9aShzPT57bGV0IGU9W10sdD1uZXcgRGF0YVZpZXcocyk7Zm9yKGxldCBhPTA7YTx0LmJ5dGVMZW5ndGg7YSs9NCl7bGV0IG49dC5nZXRVaW50MzIoYSkudG9TdHJpbmcoMTYpLG89IjAwMDAwMDAwIixsPShvK24pLnNsaWNlKC1vLmxlbmd0aCk7ZS5wdXNoKGwpfXJldHVybiBlLmpvaW4oIiIpfSwiaGV4IiksUHl0PWkoKCk9PnR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8uc3VidGxlIT09dm9pZCAwLCJpc0NyeXB0b1N1YnRsZUF2YWlsYWJsZSIpLEl5dD1pKGFzeW5jIHM9PntsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocyk7aWYoUHl0KCkpe2xldCB0PWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4gRXl0KHQpfWVsc2UgcmV0dXJuIEI2ZShlKX0sInNoYTI1NkZyb21TdHJpbmciKSxJSGE9aShzPT57dGhyb3cgY29uc29sZS53YXJuKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3QgdHJ1bHkgc3luY2hyb25vdXMgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpLG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBVc2Ugc2hhMjU2RnJvbVN0cmluZyBpbnN0ZWFkLiIpfSwic2hhMjU2RnJvbVN0cmluZ1N5bmMiKSxBSGE9aShhc3luYyBzPT57aWYoUHl0KCkpe2xldCBlO2lmKHMgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcj1zO2U9ci5idWZmZXIuc2xpY2Uoci5ieXRlT2Zmc2V0LHIuYnl0ZU9mZnNldCtyLmJ5dGVMZW5ndGgpfWVsc2UgZT1zO2xldCB0PWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4gRXl0KHQpfWVsc2V7bGV0IGU9cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/czpuZXcgVWludDhBcnJheShzKTtyZXR1cm4gQjZlKGUpfX0sInNoYTI1NkZyb21CdWZmZXIiKSxOSGE9aShhc3luYyBzPT57bGV0IGU9anIuc3RyaW5naWZ5KHMpO3JldHVybiBhd2FpdCBJeXQoZSl9LCJzaGEyNjVGcm9tT2JqZWN0IiksUkhhPWkocz0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21TdHJlYW0iKSxPSGE9aShhc3luYyBzPT57dGhyb3cgbmV3IEVycm9yKCJzaGEyNTZGcm9tRmlsZSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21GaWxlIiksRkhhPWkoYXN5bmMgcz0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfSwibWQ1RnJvbVN0cmluZyIpfSk7dmFyIHVyZT1nKCgpPT57QXl0KCk7ZzkoKTtpbygpO1oyKCk7S2FlKCl9KTt2YXIgTGssSDZlPWcoKCk9PntwcmUoKTtMaz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZUFjdGlvbiIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdGF0ZVBhcnRSZWY9ZSx0aGlzLmFjdGlvbkRlZj10fXRyaWdnZXIoZSl7cmV0dXJuIHRoaXMuc3RhdGVQYXJ0UmVmLmRpc3BhdGNoQWN0aW9uKHRoaXMsZSl9fX0pO2Z1bmN0aW9uIEhIYSgpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ+InUiP3E0KCEwKTpuZXcgcmEocz0+e3MubmV4dCghZG9jdW1lbnQuaGlkZGVuKTtsZXQgZT1pKCgpPT5zLm5leHQoIWRvY3VtZW50LmhpZGRlbiksImhhbmRsZXIiKTtyZXR1cm4gZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZSksKCk9PmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGUpfSl9dmFyIHViLHE2ZT1nKCgpPT57UjcoKTtpKEhIYSwiY3JlYXRlVmlzaWJpbGl0eU9ic2VydmFibGUiKTt1Yj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZVByb2Nlc3MiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RhdHVzU3ViamVjdD1uZXcgQzcoImlkbGUiKSx0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCx0aGlzLnByb2Nlc3NpbmdRdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnN0YXRlUGFydFJlZj1lLHRoaXMucHJvZHVjZXJGbj10LnByb2R1Y2VyLHRoaXMucmVkdWNlcj10LnJlZHVjZXIsdGhpcy5zaWRlRWZmZWN0PXQuc2lkZUVmZmVjdCx0aGlzLmF1dG9QYXVzZU9wdGlvbj10LmF1dG9QYXVzZT8/ITF9Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuZ2V0VmFsdWUoKX1nZXQgc3RhdHVzJCgpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc3RhcnQgYSBkaXNwb3NlZCBwcm9jZXNzIik7dGhpcy5zdGF0dXMhPT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSx0aGlzLnNldHVwQXV0b1BhdXNlKCkpfXBhdXNlKCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBhdXNlIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInBhdXNlZCIpLHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzdW1lIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InBhdXNlZCImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSl9ZGlzcG9zZSgpe3RoaXMuc3RhdHVzIT09ImRpc3Bvc2VkIiYmKHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpLHRoaXMudGVhcmRvd25BdXRvUGF1c2UoKSx0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgiZGlzcG9zZWQiKSx0aGlzLnN0YXR1c1N1YmplY3QuY29tcGxldGUoKSx0aGlzLnN0YXRlUGFydFJlZi5fcmVtb3ZlUHJvY2Vzcyh0aGlzKSl9c3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKTtsZXQgZT10aGlzLnByb2R1Y2VyRm4oKTt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPWUuc3Vic2NyaWJlKHtuZXh0OmkodD0+e3RoaXMucHJvY2Vzc2luZ1F1ZXVlPXRoaXMucHJvY2Vzc2luZ1F1ZXVlLnRoZW4oYXN5bmMoKT0+e3RyeXtpZih0aGlzLnNpZGVFZmZlY3QpYXdhaXQgdGhpcy5zaWRlRWZmZWN0KHQpO2Vsc2UgaWYodGhpcy5yZWR1Y2VyKXtsZXQgYT10aGlzLnN0YXRlUGFydFJlZi5nZXRTdGF0ZSgpO2EhPT12b2lkIDAmJmF3YWl0IHRoaXMuc3RhdGVQYXJ0UmVmLnNldFN0YXRlKHRoaXMucmVkdWNlcihhLHQpKX19Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHZhbHVlIGhhbmRsaW5nIGVycm9yOiIsYSl9fSl9LCJuZXh0IiksZXJyb3I6aSh0PT57Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHByb2R1Y2VyIGVycm9yOiIsdCksdGhpcy5zdGF0dXM9PT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicGF1c2VkIiksdGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCkpfSwiZXJyb3IiKX0pfXVuc3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uJiYodGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucHJvZHVjZXJTdWJzY3JpcHRpb249bnVsbCl9c2V0dXBBdXRvUGF1c2UoKXtpZih0aGlzLnRlYXJkb3duQXV0b1BhdXNlKCksIXRoaXMuYXV0b1BhdXNlT3B0aW9uKXJldHVybjtsZXQgZT10aGlzLmF1dG9QYXVzZU9wdGlvbj09PSJ2aXNpYmlsaXR5Ij9ISGEoKTp0aGlzLmF1dG9QYXVzZU9wdGlvbjt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbj1lLnN1YnNjcmliZSh0PT57IXQmJnRoaXMuc3RhdHVzPT09InJ1bm5pbmciP3RoaXMucGF1c2UoKTp0JiZ0aGlzLnN0YXR1cz09PSJwYXVzZWQiJiZ0aGlzLnJlc3VtZSgpfSl9dGVhcmRvd25BdXRvUGF1c2UoKXt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbiYmKHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCl9fX0pO2Z1bmN0aW9uIHFIYShzKXtyZXR1cm4gbmV3IHJhKGU9PntpZihzLmFib3J0ZWQpe2UubmV4dCgpLGUuY29tcGxldGUoKTtyZXR1cm59bGV0IHQ9aSgoKT0+e2UubmV4dCgpLGUuY29tcGxldGUoKX0sImhhbmRsZXIiKTtyZXR1cm4gcy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsdCksKCk9PnMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHQpfSl9dmFyIEVrLHByZT1nKCgpPT57dXJlKCk7UjcoKTtINmUoKTtxNmUoKTtpKHFIYSwiZnJvbUFib3J0U2lnbmFsIik7RWs9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZVBhcnQiKX1zdGF0aWN7dGhpcy5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIPTEwfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdGF0ZT1uZXcgQzcodm9pZCAwKSx0aGlzLmRpc3Bvc2VkPSExLHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkPW10LmN1bXVsYXRpdmVEZWZlcigpLHRoaXMubXV0YXRpb25RdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5wcm9jZXNzZXM9W10sdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLm5hbWU9ZSx0JiYodGhpcy53ZWJTdG9yZU9wdGlvbnM9dCl9YXN5bmMgaW5pdCgpe2lmKHRoaXMud2ViU3RvcmVPcHRpb25zKXt0aGlzLndlYlN0b3JlPW5ldyBrMS5XZWJTdG9yZSh0aGlzLndlYlN0b3JlT3B0aW9ucyksYXdhaXQgdGhpcy53ZWJTdG9yZS5pbml0KCk7bGV0IGU9YXdhaXQgdGhpcy53ZWJTdG9yZS5nZXQoU3RyaW5nKHRoaXMubmFtZSkpO2UmJnRoaXMudmFsaWRhdGVTdGF0ZShlKSYmKHRoaXMuc3RhdGVTdG9yZT1lLGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCkpfX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlU3RvcmV9YWRkTWlkZGxld2FyZShlKXtyZXR1cm4gdGhpcy5taWRkbGV3YXJlcy5wdXNoKGUpLCgpPT57bGV0IHQ9dGhpcy5taWRkbGV3YXJlcy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5taWRkbGV3YXJlcy5zcGxpY2UodCwxKX19YXN5bmMgc2V0U3RhdGUoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO3JldHVybiB0aGlzLm11dGF0aW9uUXVldWU9dGhpcy5tdXRhdGlvblF1ZXVlLnRoZW4oKCk9PnRoaXMuYXBwbHlTdGF0ZShlKSwoKT0+dGhpcy5hcHBseVN0YXRlKGUpKX1hc3luYyBhcHBseVN0YXRlKGUpe2xldCB0PWU7Zm9yKGxldCBhIG9mIHRoaXMubWlkZGxld2FyZXMpdD1hd2FpdCBhKHQsdGhpcy5zdGF0ZVN0b3JlKTtpZighdGhpcy52YWxpZGF0ZVN0YXRlKHQpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy53ZWJTdG9yZSYmYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksdCksdGhpcy5zdGF0ZVN0b3JlPXQsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtsZXQgZT10aGlzLnN0YXRlU3RvcmU7aWYoZT09PXZvaWQgMClyZXR1cm47aWYodGhpcy5zbWFydHN0YXRlUmVmPy5pc0JhdGNoaW5nKXt0aGlzLnNtYXJ0c3RhdGVSZWYucmVnaXN0ZXJQZW5kaW5nTm90aWZpY2F0aW9uKHRoaXMpO3JldHVybn1sZXQgdD1pKGFzeW5jIGE9PmF3YWl0IERrLnNoYTI1NkZyb21TdHJpbmcoanIuc3RhYmxlT25lV2F5U3RyaW5naWZ5KGEpKSwiY3JlYXRlU3RhdGVIYXNoIik7dHJ5e2xldCBhPWF3YWl0IHQoZSk7aWYodGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmYT09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gpcmV0dXJuO3RoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2g9YX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBTdGF0ZSBoYXNoIGNvbXB1dGF0aW9uIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxhKX10aGlzLnN0YXRlLm5leHQoZSl9bm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSgpe3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJmNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPXNldFRpbWVvdXQoKCk9Pnt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy5zdGF0ZVN0b3JlIT09dm9pZCAwJiZ0aGlzLm5vdGlmeUNoYW5nZSgpLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGBub3RpZnlDaGFuZ2VDdW11bGF0aXZlIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxlKX0pfSwwKX1zZWxlY3QoZSx0KXtsZXQgYT10Py5zaWduYWwhPW51bGw7aWYoIWEpe2lmKGUpe2lmKHRoaXMuc2VsZWN0b3JDYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuc2VsZWN0b3JDYWNoZS5nZXQoZSl9ZWxzZSBpZih0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlKXJldHVybiB0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlfWxldCByPWV8fChwPT5wKSxuPVN5bWJvbCgic2VsZWN0b3ItZXJyb3IiKSxvPXRoaXMuc3RhdGUucGlwZShscy5yeGpzLm9wcy5maWx0ZXIocD0+cCE9PXZvaWQgMCksbHMucnhqcy5vcHMubWFwKHA9Pnt0cnl7cmV0dXJuIHIocCl9Y2F0Y2goZCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYFNlbGVjdG9yIGVycm9yIGluIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSc6YCxkKSxufX0pLGxzLnJ4anMub3BzLmZpbHRlcihwPT5wIT09biksQTcoKHAsZCk9PkpTT04uc3RyaW5naWZ5KHApPT09SlNPTi5zdHJpbmdpZnkoZCkpKTtpZihhKXJldHVybiBvPW8ucGlwZShONyhxSGEodC5zaWduYWwpKSksbztsZXQgbD1vLnBpcGUod2VlKHtidWZmZXJTaXplOjEscmVmQ291bnQ6ITB9KSk7cmV0dXJuIGU/dGhpcy5zZWxlY3RvckNhY2hlLnNldChlLGwpOnRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bCxsfWNyZWF0ZUFjdGlvbihlKXtyZXR1cm4gbmV3IExrKHRoaXMsZSl9Y3JlYXRlQWN0aW9uQ29udGV4dChlKXtsZXQgdD10aGlzO3JldHVybntkaXNwYXRjaDppKGFzeW5jKGEscik9PntpZihlPj1zLk1BWF9ORVNURURfRElTUEFUQ0hfREVQVEgpdGhyb3cgbmV3IEVycm9yKGBNYXhpbXVtIG5lc3RlZCBhY3Rpb24gZGlzcGF0Y2ggZGVwdGggKCR7cy5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIfSkgZXhjZWVkZWQuIENoZWNrIGZvciBjaXJjdWxhciBhY3Rpb24gZGlzcGF0Y2hlcy5gKTtsZXQgbj10LmNyZWF0ZUFjdGlvbkNvbnRleHQoZSsxKSxvPWF3YWl0IGEuYWN0aW9uRGVmKHQscixuKTtyZXR1cm4gdC5hcHBseVN0YXRlKG8pfSwiZGlzcGF0Y2giKX19YXN5bmMgZGlzcGF0Y2hBY3Rpb24oZSx0KXtpZih0aGlzLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihgU3RhdGVQYXJ0ICcke3RoaXMubmFtZX0nIGhhcyBiZWVuIGRpc3Bvc2VkYCk7YXdhaXQgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQucHJvbWlzZTtsZXQgYT1pKGFzeW5jKCk9PntsZXQgcj10aGlzLmNyZWF0ZUFjdGlvbkNvbnRleHQoMCksbj1hd2FpdCBlLmFjdGlvbkRlZih0aGlzLHQscik7cmV0dXJuIHRoaXMuYXBwbHlTdGF0ZShuKX0sImV4ZWN1dGUiKTtyZXR1cm4gdGhpcy5tdXRhdGlvblF1ZXVlPXRoaXMubXV0YXRpb25RdWV1ZS50aGVuKGEsYSl9YXN5bmMgd2FpdFVudGlsUHJlc2VudChlLHQpe2xldCBhLHI7dHlwZW9mIHQ9PSJudW1iZXIiP2E9dDp0JiYoYT10LnRpbWVvdXRNcyxyPXQuc2lnbmFsKTtsZXQgbj1tdC5kZWZlcigpLG89dGhpcy5zZWxlY3QoZSksbD0hMTtpZihyPy5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiQWJvcnRlZCIpO2xldCBwPW8uc3Vic2NyaWJlKGM9PntjIT1udWxsJiYhbCYmKGw9ITAsbi5yZXNvbHZlKGMpKX0pLGQ7YSYmKGQ9c2V0VGltZW91dCgoKT0+e2x8fChsPSEwLHAudW5zdWJzY3JpYmUoKSxuLnJlamVjdChuZXcgRXJyb3IoYHdhaXRVbnRpbFByZXNlbnQgdGltZWQgb3V0IGFmdGVyICR7YX1tc2ApKSl9LGEpKTtsZXQgdT1yPygpPT57bHx8KGw9ITAscC51bnN1YnNjcmliZSgpLGQmJmNsZWFyVGltZW91dChkKSxuLnJlamVjdChuZXcgRXJyb3IoIkFib3J0ZWQiKSkpfTp2b2lkIDA7ciYmdSYmci5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsdSk7dHJ5e3JldHVybiBhd2FpdCBuLnByb21pc2V9ZmluYWxseXtwLnVuc3Vic2NyaWJlKCksZCYmY2xlYXJUaW1lb3V0KGQpLHImJnUmJnIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHUpfX1hc3luYyBzdGF0ZVNldHVwKGUpe2xldCB0PWUodGhpcyk7dGhpcy5jdW11bGF0aXZlRGVmZXJyZWQuYWRkUHJvbWlzZSh0KSxhd2FpdCB0aGlzLnNldFN0YXRlKGF3YWl0IHQpfWNyZWF0ZVByb2Nlc3MoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCB0PW5ldyB1Yih0aGlzLGUpO3JldHVybiB0aGlzLnByb2Nlc3Nlcy5wdXNoKHQpLGUuYXV0b1N0YXJ0JiZ0LnN0YXJ0KCksdH1jcmVhdGVTY2hlZHVsZWRBY3Rpb24oZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCB0PW5ldyB1Yih0aGlzLHtwcm9kdWNlcjppKCgpPT5KZGUoZS5pbnRlcnZhbE1zKSwicHJvZHVjZXIiKSxzaWRlRWZmZWN0OmkoYXN5bmMoKT0+e2F3YWl0IGUuYWN0aW9uLnRyaWdnZXIoZS5wYXlsb2FkKX0sInNpZGVFZmZlY3QiKSxhdXRvUGF1c2U6ZS5hdXRvUGF1c2U/PyExfSk7cmV0dXJuIHRoaXMucHJvY2Vzc2VzLnB1c2godCksdC5zdGFydCgpLHR9X3JlbW92ZVByb2Nlc3MoZSl7bGV0IHQ9dGhpcy5wcm9jZXNzZXMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMucHJvY2Vzc2VzLnNwbGljZSh0LDEpfWRpc3Bvc2UoKXtpZighdGhpcy5kaXNwb3NlZCl7dGhpcy5kaXNwb3NlZD0hMDtmb3IobGV0IGUgb2ZbLi4udGhpcy5wcm9jZXNzZXNdKWUuZGlzcG9zZSgpO3RoaXMucHJvY2Vzc2VzLmxlbmd0aD0wLHRoaXMuc3RhdGUuY29tcGxldGUoKSx0aGlzLm11dGF0aW9uUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiYmKGNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwpLHRoaXMubWlkZGxld2FyZXMubGVuZ3RoPTAsdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLndlYlN0b3JlPW51bGwsdGhpcy5zbWFydHN0YXRlUmVmPXZvaWQgMCx0aGlzLnN0YXRlU3RvcmU9dm9pZCAwfX19fSk7ZnVuY3Rpb24gajZlKHMsZSl7cmV0dXJuIFhkZShzLm1hcCh0PT50LnNlbGVjdCgpKSkucGlwZShZMih0PT5lKC4uLnQpKSxBNygodCxhKT0+SlNPTi5zdHJpbmdpZnkodCk9PT1KU09OLnN0cmluZ2lmeShhKSkpfXZhciBWNmU9ZygoKT0+e3VyZSgpO1I3KCk7aShqNmUsImNvbXB1dGVkIil9KTt2YXIgVTZlLE55dD1nKCgpPT57dXJlKCk7cHJlKCk7VjZlKCk7VTZlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0c3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXAsdGhpcy5iYXRjaERlcHRoPTAsdGhpcy5pc0ZsdXNoaW5nPSExLHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnM9bmV3IFNldH1nZXQgaXNCYXRjaGluZygpe3JldHVybiB0aGlzLmJhdGNoRGVwdGg+MH1yZWdpc3RlclBlbmRpbmdOb3RpZmljYXRpb24oZSl7dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5hZGQoZSl9YXN5bmMgYmF0Y2goZSl7dGhpcy5iYXRjaERlcHRoKys7dHJ5e2F3YWl0IGUoKX1maW5hbGx5e2lmKHRoaXMuYmF0Y2hEZXB0aC0tLHRoaXMuYmF0Y2hEZXB0aD09PTAmJiF0aGlzLmlzRmx1c2hpbmcpe3RoaXMuaXNGbHVzaGluZz0hMDt0cnl7Zm9yKDt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLnNpemU+MDspe2xldCB0PVsuLi50aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zXTt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCk7Zm9yKGxldCBhIG9mIHQpdHJ5e2F3YWl0IGEubm90aWZ5Q2hhbmdlKCl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcigiRXJyb3IgZmx1c2hpbmcgbm90aWZpY2F0aW9uIGZvciBzdGF0ZSBwYXJ0OiIscil9fX1maW5hbGx5e3RoaXMuaXNGbHVzaGluZz0hMX19fX1jb21wdXRlZChlLHQpe3JldHVybiBqNmUoZSx0KX1kaXNwb3NlKCl7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHRoaXMuc3RhdGVQYXJ0TWFwKSl7bGV0IHQ9dGhpcy5zdGF0ZVBhcnRNYXBbZV07dCYmdC5kaXNwb3NlKCl9dGhpcy5zdGF0ZVBhcnRNYXA9e30sdGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uY2xlYXIoKSx0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCl9YXN5bmMgZ2V0U3RhdGVQYXJ0KGUsdCxhPSJzb2Z0Iil7bGV0IHI9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KGUpO2lmKHIpcmV0dXJuIHI7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbZV07aWYobilzd2l0Y2goYSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOm4uZGlzcG9zZSgpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZih0PT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgZG9lcyBub3QgZXhpc3QgYW5kIG5vIGluaXRpYWwgc3RhdGUgcHJvdmlkZWRgKTtsZXQgbz10aGlzLmNyZWF0ZVN0YXRlUGFydChlLHQsYSk7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uc2V0KGUsbyk7dHJ5e3JldHVybiBhd2FpdCBvfWZpbmFsbHl7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZGVsZXRlKGUpfX1hc3luYyBjcmVhdGVTdGF0ZVBhcnQoZSx0LGE9InNvZnQiKXtsZXQgcj1uZXcgRWsoZSxhPT09InBlcnNpc3RlbnQiP3tkYk5hbWU6InNtYXJ0c3RhdGUiLHN0b3JlTmFtZTplfTp2b2lkIDApO3Iuc21hcnRzdGF0ZVJlZj10aGlzLGF3YWl0IHIuaW5pdCgpO2xldCBuPXIuZ2V0U3RhdGUoKTtyZXR1cm4gYT09PSJwZXJzaXN0ZW50IiYmbiE9PXZvaWQgMD9hd2FpdCByLnNldFN0YXRlKHsuLi50LC4uLm59KTphd2FpdCByLnNldFN0YXRlKHQpLHRoaXMuc3RhdGVQYXJ0TWFwW2VdPXIscn19fSk7ZnVuY3Rpb24gakhhKHMsZSl7bGV0e2NvbnRleHQ6dCxzdGF0ZVBhcnQ6YSxzZWxlY3RvckZuOnJ9PWUsbj1uZXcgU2V0LG89YS5zZWxlY3Qocikuc3Vic2NyaWJlKGQ9Pntmb3IobGV0IHUgb2Ygbil1KGQpfSksbD1pKCgpPT57bGV0IGQ9YS5nZXRTdGF0ZSgpO2lmKGQhPT12b2lkIDApcmV0dXJuIHI/cihkKTpkfSwiZ2V0VmFsdWUiKSxwPWkoZD0+e2xldCB1PWQsYz11LmRldGFpbDtpZighKCFjfHxjLmNvbnRleHQhPT10KSlpZih1LnN0b3BQcm9wYWdhdGlvbigpLGMuc3Vic2NyaWJlKXtsZXQgYj1jLmNhbGxiYWNrO24uYWRkKGIpO2xldCB2PWkoKCk9Pm4uZGVsZXRlKGIpLCJ1bnN1YnNjcmliZSIpO2IobCgpLHYpfWVsc2UgYy5jYWxsYmFjayhsKCkpfSwiaGFuZGxlciIpO3JldHVybiBzLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIscCksKCk9PntzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIscCksby51bnN1YnNjcmliZSgpLG4uY2xlYXIoKX19dmFyIFJ5dD1nKCgpPT57aShqSGEsImF0dGFjaENvbnRleHRQcm92aWRlciIpfSk7dmFyIEIzPXt9O3l0KEIzLHtTbWFydHN0YXRlOigpPT5VNmUsU3RhdGVBY3Rpb246KCk9PkxrLFN0YXRlUGFydDooKT0+RWssU3RhdGVQcm9jZXNzOigpPT51YixhdHRhY2hDb250ZXh0UHJvdmlkZXI6KCk9PmpIYSxjb21wdXRlZDooKT0+ajZlfSk7dmFyIE95dD1nKCgpPT57Tnl0KCk7cHJlKCk7SDZlKCk7VjZlKCk7Unl0KCk7cTZlKCl9KTt2YXIgRnl0PWcoKCk9Pnt9KTt2YXIgVzZlLEJ5dD1nKCgpPT57Rnl0KCk7VzZlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiU21hcnR1cmwiKX1zdGF0aWMgY3JlYXRlRnJvbVVybChlLHQpe2xldCBhPW5ldyBVUkwoZSkscj17fSxuPVtdO2Euc2VhcmNoJiZhLnNlYXJjaC5yZXBsYWNlKCI/IiwiIikuc3BsaXQoIiYiKS5tYXAoZD0+e24ucHVzaCh7a2V5OmQuc3BsaXQoIj0iKVswXSx2YWx1ZTpkLnNwbGl0KCI9IilbMV19KX0pO2ZvcihsZXQgZCBvZiBuKXJbZC5rZXldPWQudmFsdWU7aWYodD8uc2VhcmNoUGFyYW1zKWZvcihsZXQgZCBvZiBPYmplY3Qua2V5cyh0LnNlYXJjaFBhcmFtcykpcltkXT10LnNlYXJjaFBhcmFtc1tkXTtsZXQgbz1hLnBhdGhuYW1lfHwiIjtpZihPYmplY3Qua2V5cyhyKS5sZW5ndGg+MCl7bys9Ij8iO2xldCBkPSEwO2ZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyhyKSlkP2Q9ITE6bys9IiYiLG8rPWAke3V9PSR7clt1XX1gfWxldCBsPXsuLi5hLGhyZWY6YS5ocmVmLG9yaWdpbjphLm9yaWdpbixwcm90b2NvbDphLnByb3RvY29sLHVzZXJuYW1lOmEudXNlcm5hbWUscGFzc3dvcmQ6YS5wYXNzd29yZCxob3N0OmEuaG9zdCxob3N0bmFtZTphLmhvc3RuYW1lLHBvcnQ6YS5wb3J0LHBhdGg6byxwYXRobmFtZTphLnBhdGhuYW1lLHNlYXJjaDphLnNlYXJjaCxzZWFyY2hQYXJhbXM6cixoYXNoOmEuaGFzaH07IWwucG9ydCYmbC5wcm90b2NvbD09PSJodHRwczoiJiYobC5wb3J0PSI0NDMiKSwhbC5wb3J0JiZsLnByb3RvY29sPT09Imh0dHA6IiYmKGwucG9ydD0iODAiKTtsZXQgcD1uZXcgcztyZXR1cm4gT2JqZWN0LmFzc2lnbihwLGwpLHB9c3RhdGljIGNyZWF0ZUZyb21QYXJzZWRVcmwoZSl7bGV0IHQ9bmV3IHM7cmV0dXJuIE9iamVjdC5hc3NpZ24odCxlKSx0fWNvbnN0cnVjdG9yKCl7dGhpcy5zZWFyY2hQYXJhbXM9e319Y2xvbmUoKXtsZXQgZT1uZXcgcztyZXR1cm4gT2JqZWN0LmFzc2lnbihlLHRoaXMpLGUuc2VhcmNoUGFyYW1zPXsuLi50aGlzLnNlYXJjaFBhcmFtc30sZX1zZXQoZSx0KXtyZXR1cm4gdGhpc1tlXT10LHRoaXN9dG9TdHJpbmcoKXtsZXQgZT0iIjtyZXR1cm4gdGhpcy51c2VybmFtZSYmIXRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9QGApLHRoaXMudXNlcm5hbWUmJnRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9OiR7dGhpcy5wYXNzd29yZH1AYCksYCR7dGhpcy5wcm90b2NvbH0vLyR7ZX0ke3RoaXMuaG9zdG5hbWV9OiR7dGhpcy5wb3J0fSR7dGhpcy5wYXRofWB9fX0pO3ZhciBSMT17fTt5dChSMSx7U21hcnR1cmw6KCk9Plc2ZX0pO3ZhciBHNmU9ZygoKT0+e0J5dCgpfSk7dmFyIEh5dD1nKCgpPT57fSk7dmFyIEs2ZT1nKCgpPT57U24oKTtTbigpfSk7dmFyIHF5dD1nKCgpPT57fSk7dmFyIGp5dD1nKCgpPT57fSk7dmFyIFZ5dD1nKCgpPT57fSk7dmFyIFV5dD1nKCgpPT57fSk7dmFyIFk2ZT17fTt2YXIgWjZlPWcoKCk9PntxeXQoKTtqeXQoKTtWeXQoKTtVeXQoKX0pO3ZhciBXeXQ9ZygoKT0+e1o2ZSgpO2hyZSgpfSk7dmFyIEd5dD1nKCgpPT57U24oKX0pO3ZhciBLeXQ9ZygoKT0+e30pO3ZhciBZeXQ9ZygoKT0+e1NuKCl9KTt2YXIgWnl0PWcoKCk9PntTbigpfSk7dmFyIFh5dD1nKCgpPT57fSk7dmFyIFF5dD1nKCgpPT57fSk7dmFyIEp5dD1nKCgpPT57fSk7dmFyIFg2ZT17fTt2YXIgZnJlPWcoKCk9PntHeXQoKTtLeXQoKTtZeXQoKTtaeXQoKTtYeXQoKTtReXQoKTtKeXQoKX0pO3ZhciBld3Q9ZygoKT0+e2ZyZSgpO0s2ZSgpfSk7dmFyIHR3dD1nKCgpPT57aHJlKCk7ZnJlKCl9KTt2YXIgYXd0PWcoKCk9Pnt9KTt2YXIgc3d0PWcoKCk9Pnt9KTt2YXIgUTZlPXt9O3ZhciBocmU9ZygoKT0+e0h5dCgpO0s2ZSgpO1d5dCgpO2V3dCgpO3R3dCgpO2F3dCgpO3N3dCgpfSk7dmFyIGl3dD1nKCgpPT57fSk7dmFyIHJ3dD1nKCgpPT57fSk7dmFyIEo2ZT17fTt2YXIgb3d0PWcoKCk9Pntpd3QoKTtyd3QoKX0pO3ZhciBud3Q9ZygoKT0+e30pO3ZhciBsd3Q9ZygoKT0+e30pO3ZhciBlNWU9e307dmFyIGN3dD1nKCgpPT57bnd0KCk7bHd0KCl9KTt2YXIgdDVlPXt9O3ZhciBkd3Q9ZygoKT0+e30pO3ZhciBhNWU9ZygoKT0+e1NuKCl9KTt2YXIgdXd0PWcoKCk9PntTbigpfSk7dmFyIHB3dD1nKCgpPT57YTVlKCl9KTt2YXIgczVlPXt9O3ZhciBod3Q9ZygoKT0+e2E1ZSgpO3V3dCgpO3B3dCgpfSk7dmFyIGZ3dD1nKCgpPT57fSk7dmFyIG13dD1nKCgpPT57fSk7dmFyIGk1ZT17fTt2YXIgZ3d0PWcoKCk9Pntmd3QoKTttd3QoKX0pO3ZhciByNWU9ZygoKT0+e30pO3ZhciBvNWUsYnd0PWcoKCk9PntyNWUoKTtvNWU9Y2xhc3N7c3RhdGlje2kodGhpcywiSUNuYW1lRGVzY3JpcHRvciIpfX19KTt2YXIgdnd0PWcoKCk9Pnt9KTt2YXIgeHd0PWcoKCk9Pnt9KTt2YXIgeXd0PWcoKCk9Pnt9KTt2YXIgd3d0PWcoKCk9Pnt9KTt2YXIga3d0PWcoKCk9Pnt9KTt2YXIgU3d0PWcoKCk9Pnt9KTt2YXIgX3d0PWcoKCk9Pnt9KTt2YXIgTXd0PWcoKCk9Pnt9KTt2YXIgend0PWcoKCk9Pnt9KTt2YXIgQ3d0PWcoKCk9Pnt9KTt2YXIgbXJlPXt9O3l0KG1yZSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+bzVlfSk7dmFyIFR3dD1nKCgpPT57cjVlKCk7Ynd0KCk7dnd0KCk7eHd0KCk7eXd0KCk7d3d0KCk7a3d0KCk7U3d0KCk7X3d0KCk7TXd0KCk7end0KCk7Q3d0KCl9KTt2YXIgbjVlPWcoKCk9Pnt9KTt2YXIgJHd0PWcoKCk9PntuNWUoKX0pO3ZhciBsNWU9e307dmFyIER3dD1nKCgpPT57JHd0KCk7bjVlKCl9KTt2YXIgYzVlPXt9O3ZhciBMd3Q9ZygoKT0+e30pO3ZhciBFd3Q9ZygoKT0+e30pO3ZhciBQd3Q9ZygoKT0+e30pO3ZhciBJd3Q9ZygoKT0+e30pO3ZhciBkNWU9e307dmFyIEF3dD1nKCgpPT57RXd0KCk7UHd0KCk7SXd0KCl9KTt2YXIgTnd0PWcoKCk9Pnt9KTt2YXIgSDM9e307eXQoSDMse2J1c2luZXNzOigpPT5RNmUsY29kZTooKT0+SjZlLGNvbnRhaW5lcjooKT0+ZTVlLGNvbnRlbnQ6KCk9PnM1ZSxkYXRhYmFzZTooKT0+WTZlLGRlc2NyaXB0b3JzOigpPT50NWUsZmluYW5jZTooKT0+WDZlLGdlbmVyYWw6KCk9Pmk1ZSxuZXR3b3JrOigpPT5tcmUsc2FhczooKT0+bDVlLHN0b3JhZ2U6KCk9PmM1ZSx3ZWJzaXRlOigpPT5kNWV9KTt2YXIgU249ZygoKT0+e2hyZSgpO293dCgpO2N3dCgpO1o2ZSgpO2R3dCgpO2ZyZSgpO2h3dCgpO2d3dCgpO1R3dCgpO0R3dCgpO0x3dCgpO0F3dCgpO053dCgpfSk7dmFyIE4wPWcoKCk9PntpbygpO1NuKCl9KTt2YXIgZ3JlPWcoKCk9PntOMCgpfSk7dmFyIGloLFBrPWcoKCk9PntOMCgpO2loPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZyIpfWNvbnN0cnVjdG9yKCl7dGhpcy50YWdMZXZlbD0ibGV2ZWxib3VuZCJ9YXBwZW5kVG9Eb20oKXshdGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQmJiF0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfXJlbW92ZUZyb21Eb20oKXt0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudD90aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpOnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZ0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfX19KTt2YXIgcTMsYnJlPWcoKCk9PntOMCgpO2dyZSgpO1BrKCk7cTM9Y2xhc3MgcyBleHRlbmRzIGloe3N0YXRpY3tpKHRoaXMsIkpzb25MZFRhZyIpfXN0YXRpYyBjcmVhdGVDb21wYW55SnNvbkxkKGUpe2xldCB0PXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkNvcnBvcmF0aW9uIixuYW1lOmUubmFtZSxhbHRlcm5hdGVOYW1lOmUubmFtZS5yZXBsYWNlKCIgR21iSCIsIiIpLHVybDplLndlYnNpdGUsbG9nbzplLmxvZ29VcmwsY29udGFjdFBvaW50OnsiQHR5cGUiOiJDb250YWN0UG9pbnQiLHRlbGVwaG9uZTplLnBob25lLGNvbnRhY3RUeXBlOiJjdXN0b21lciBzZXJ2aWNlIixhcmVhU2VydmVkOiJERSIsYXZhaWxhYmxlTGFuZ3VhZ2U6WyJlbiIsIkdlcm1hbiJdfSxzYW1lQXM6W119LGE9ZS5zb2NpYWxzPy5maW5kKG89Pm8udHlwZT09PSJmYWNlYm9vayIpPy51cmw7YSYmdC5zYW1lQXMucHVzaChhKTtsZXQgcj1lLnNvY2lhbHM/LmZpbmQobz0+by50eXBlPT09InR3aXR0ZXIiKT8udXJsO3JldHVybiByJiZ0LnNhbWVBcy5wdXNoKHIpLG5ldyBzKHQpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZChlKXtsZXQgdD17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbZS5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHtlLmF1dGhvci5maXJzdE5hbWV9ICR7ZS5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTplLmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6ZS5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOmUuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyBzKHQpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKGUsdCl7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTplLm5hbWUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06ZS5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OmUuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjp0P3RoaXMuY3JlYXRlQ29tcGFueUpzb25MZCh0KS5lbGVtZW50UmVmLnRleHRDb250ZW50OnZvaWQgMCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgcyhhKX1jb25zdHJ1Y3RvcihlKXtzdXBlcigpO2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3QudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsdC50ZXh0PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuZWxlbWVudFJlZj10fX19KTt2YXIgX24sdnJlPWcoKCk9PntOMCgpO1BrKCk7X249Y2xhc3MgcyBleHRlbmRzIGloe3N0YXRpY3tpKHRoaXMsIk9wZW5ncmFwaFRhZyIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgdD1bXTtyZXR1cm4gdC5wdXNoKG5ldyBzKCJvZzp1cmwiLGUudXJsPz9nbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSx0LnB1c2gobmV3IHMoIm9nOnRpdGxlIixlLnRpdGxlKSksdC5wdXNoKG5ldyBzKCJvZzpkZXNjcmlwdGlvbiIsZS5jb250ZW50KSksdC5wdXNoKG5ldyBzKCJvZzppbWFnZSIsZS5mZWF0dXJlZEltYWdlVXJsPz8iIikpLHR9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IHQ9W107cmV0dXJuIHQucHVzaChuZXcgcygib2c6dHlwZSIsInByb2R1Y3QiKSksdC5wdXNoKG5ldyBzKCJvZzp1cmwiLGdsb2JhbFRoaXMubG9jYXRpb24uaHJlZikpLHQucHVzaChuZXcgcygib2c6dGl0bGUiLGAke2UubmFtZX0gLSAke2Uuc2xvZ2FufWApKSx0LnB1c2gobmV3IHMoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksdC5wdXNoKG5ldyBzKCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHQucHVzaChuZXcgcygib2c6aW1hZ2UiLGUubG9nb0xpbmspKSx0fXN0YXRpYyBjcmVhdGVDb21wYW55T2dUYWdzKGUpe2xldCB0PVtdO3JldHVybiB0LnB1c2gobmV3IHMoIm9nOnR5cGUiLCJjb21wYW55IikpLHQucHVzaChuZXcgcygib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSx0LnB1c2gobmV3IHMoIm9nOnRpdGxlIixlLm5hbWUpKSx0LnB1c2gobmV3IHMoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksdC5wdXNoKG5ldyBzKCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHQucHVzaChuZXcgcygib2c6aW1hZ2UiLGUubG9nb1VybD8/IiIpKSx0fWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7YS5zZXRBdHRyaWJ1dGUoInByb3BlcnR5IixlKSxhLmNvbnRlbnQ9dCx0aGlzLmVsZW1lbnRSZWY9YX19fSk7dmFyIHBiLHU1ZT1nKCgpPT57UGsoKTticmUoKTt2cmUoKTtwNWUoKTtOMCgpO3BiPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZ0xldmVsIil9c2V0IHRpdGxlKGUpe3RoaXMudGl0bGVTdG9yZT1lLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlU3RvcmUpfWdldCB0aXRsZSgpe3JldHVybiB0aGlzLnRpdGxlU3RvcmV9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnRhZ3M9W10sdGhpcy5zdGF0ZT0iZGlzYWJsZWQiLHRoaXMudGFnTWFuYWdlclJlZj1lLHRoaXMudHlwZT10fWFkZFRhZyhlKXtpZihlIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCB0IG9mIGUpdGhpcy5hZGRUYWcodCk7ZWxzZSB0aGlzLnRhZ3MucHVzaChlKSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiZlLmFwcGVuZFRvRG9tKCl9YXN5bmMgYWRkQ29tcGFueUluZm8oZSl7dGhpcy5hZGRUYWcocTMuY3JlYXRlQ29tcGFueUpzb25MZChlKSksdGhpcy5hZGRUYWcobmV3IF9uKCJvZzp0eXBlIiwiYnVzaW5lc3MuYnVzaW5lc3MiKSksdGhpcy5hZGRUYWcobmV3IF9uKCJvZzp0aXRsZSIsZS5uYW1lKSksdGhpcy5hZGRUYWcobmV3IF9uKCJvZzp1cmwiLGUud2Vic2l0ZT8/IiIpKSx0aGlzLmFkZFRhZyhuZXcgX24oIm9nOmltYWdlIixlLmxvZ29Vcmw/PyIiKSksdGhpcy5hZGRUYWcobmV3IF9uKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuYWRkcmVzcy5zdHJlZXROYW1lfSAke2UuYWRkcmVzcy5ob3VzZU51bWJlcn1gKSksdGhpcy5hZGRUYWcobmV3IF9uKCJidXNpbmVzczpjb250YWN0X2RhdGE6bG9jYWxpdHkiLGUuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IF9uKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBfbigiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIixlLmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBfbigiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmNvdW50cnlfbmFtZSIsZS5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcocTMuY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKF9uLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLHQpe3RoaXMuYWRkVGFnKHEzLmNyZWF0ZVByb2R1Y3RKc29uTGQoZSx0KSksdGhpcy5hZGRUYWcoX24uY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIFBjLGg1ZT1nKCgpPT57UGsoKTtQYz1jbGFzcyBleHRlbmRzIGloe3N0YXRpY3tpKHRoaXMsIk1ldGFUYWciKX1jb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2EubmFtZT1lLGEuY29udGVudD10LHRoaXMuZWxlbWVudFJlZj1hfX19KTt2YXIgeHJlLHA1ZT1nKCgpPT57dTVlKCk7TjAoKTtncmUoKTtoNWUoKTticmUoKTt2cmUoKTt4cmU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGFnTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcgcGIodGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IHBiKHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cChlKXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBjKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGMoInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksZS50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBjKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBQYygidHdpdHRlcjpzaXRlIixlLnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGMoInR3aXR0ZXI6Y3JlYXRvciIsZS50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQYygiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxlLmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQYygiY2Fub25pY2FsIixlLmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKGUubGRDb21wYW55JiYhZS5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKGUubGRDb21wYW55KTticmVhaztjYXNlISFlLmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyhlLmxkUHJvZHVjdCxlLmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKGUpe2xldCB0PW5ldyBwYih0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHQudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZ0LmFkZFRhZyhuZXcgUGMoImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10LGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCksdH1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBJayxSd3Q9ZygoKT0+e04wKCk7Z3JlKCk7cDVlKCk7dTVlKCk7SWs9Y2xhc3N7c3RhdGlje2kodGhpcywiV2ViU2V0dXAiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRhZ01hbmFnZXI9bmV3IHhyZSx0aGlzLnJlYWR5RGVmZXJyZWQ9bXQuZGVmZXIoKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZD1tdC5kZWZlcigpLHRoaXMucmVhZHlQcm9taXNlPXRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMucmVhZHlGb3JTbWFydHNzclByb21pc2U9dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucHJvbWlzZSx0aGlzLm9wdGlvbnM9ZSx0aGlzLnNldHVwKCkudGhlbigoKT0+e3RoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9KX1hc3luYyBzZXR1cChlKXtlJiYodGhpcy5vcHRpb25zPWUpLGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXR1cCh0aGlzLm9wdGlvbnMubWV0YU9iamVjdCl9cmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLnRhZ01hbmFnZXIucmV2ZXJ0VG9CYXNlTGV2ZWwoKX1hc3luYyBzZXRTdWJMZXZlbChlKXtyZXR1cm4gYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldFN1YlBhZ2VMZXZlbChlKX1mbGFzaFRpdGxlKGUpe31pbmZvcm1SZWFkeUZvclNtYXJ0c3NyKCl7dGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHxjb25zb2xlLmVycm9yKCJZb3UgaGF2ZSBub3QgaW5kaWNhdGVkIHRoYXQgeW91IGluZm9ybSBzbWFydHNzciBieSBhIGRlZGljYXRlZCBzaWduYWwhIFBsZWFzZSBjb25zaWRlciBkb2luZyBzbyEiKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9fX0pO3ZhciBmNWUsT3d0PWcoKCk9PntOMCgpO2Y1ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaXRsZSIpfX19KTt2YXIgbTVlPXt9O3l0KG01ZSx7SnNvbkxkVGFnOigpPT5xMyxNZXRhVGFnOigpPT5QYyxPcGVuZ3JhcGhUYWc6KCk9Pl9uLFRpdGxlOigpPT5mNWUsV2ViU2V0dXA6KCk9PklrfSk7dmFyIHlyZT1nKCgpPT57Und0KCk7aDVlKCk7dnJlKCk7YnJlKCk7T3d0KCl9KTtmdW5jdGlvbiBGd3QocyxlLHQpe3JldHVybiBNYXRoLm1heChzLE1hdGgubWluKGUsdCkpfWZ1bmN0aW9uIFdIYShzLGUsdCl7cmV0dXJuKDEtdCkqcyt0KmV9ZnVuY3Rpb24gR0hhKHMsZSx0LGEpe3JldHVybiBXSGEocyxlLDEtTWF0aC5leHAoLXQqYSkpfWZ1bmN0aW9uIEtIYShzLGUpe3JldHVybihzJWUrZSklZX1mdW5jdGlvbiBaSGEocyxlKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24oLi4uYSl7bGV0IHI9dGhpcztjbGVhclRpbWVvdXQodCksdD1zZXRUaW1lb3V0KCgpPT57dD12b2lkIDAscy5hcHBseShyLGEpfSxlKX19dmFyIFVIYSxZSGEsWEhhLEJ3dCxId3QscmgsUUhhLHF3dCxBayxqd3Q9ZygoKT0+e1VIYT0iMS4zLjE3IjtpKEZ3dCwiY2xhbXAiKTtpKFdIYSwibGVycCIpO2koR0hhLCJkYW1wIik7aShLSGEsIm1vZHVsbyIpO1lIYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBbmltYXRlIil9aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHMpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXM7bGV0IHQ9Rnd0KDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9dD49MTtsZXQgYT1lPzE6dGhpcy5lYXNpbmcodCk7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSphfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPUdIYSh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHMpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8ocyxlLHtsZXJwOnQsZHVyYXRpb246YSxlYXNpbmc6cixvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXMsdGhpcy50bz1lLHRoaXMubGVycD10LHRoaXMuZHVyYXRpb249YSx0aGlzLmVhc2luZz1yLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTtpKFpIYSwiZGVib3VuY2UiKTtYSGE9Y2xhc3N7c3RhdGlje2kodGhpcywiRGltZW5zaW9ucyIpfWNvbnN0cnVjdG9yKHMsZSx7YXV0b1Jlc2l6ZTp0PSEwLGRlYm91bmNlOmE9MjUwfT17fSl7dGhpcy53cmFwcGVyPXMsdGhpcy5jb250ZW50PWUsdCYmKHRoaXMuZGVib3VuY2VkUmVzaXplPVpIYSh0aGlzLnJlc2l6ZSxhKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT1pKCgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfSwicmVzaXplIik7b25XcmFwcGVyUmVzaXplPWkoKCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9LCJvbldyYXBwZXJSZXNpemUiKTtvbkNvbnRlbnRSZXNpemU9aSgoKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfSwib25Db250ZW50UmVzaXplIik7Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0sQnd0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkVtaXR0ZXIiKX1ldmVudHM9e307ZW1pdChzLC4uLmUpe2xldCB0PXRoaXMuZXZlbnRzW3NdfHxbXTtmb3IobGV0IGE9MCxyPXQubGVuZ3RoO2E8cjthKyspdFthXT8uKC4uLmUpfW9uKHMsZSl7cmV0dXJuIHRoaXMuZXZlbnRzW3NdPy5wdXNoKGUpfHwodGhpcy5ldmVudHNbc109W2VdKSwoKT0+e3RoaXMuZXZlbnRzW3NdPXRoaXMuZXZlbnRzW3NdPy5maWx0ZXIodD0+ZSE9PXQpfX1vZmYocyxlKXt0aGlzLmV2ZW50c1tzXT10aGlzLmV2ZW50c1tzXT8uZmlsdGVyKHQ9PmUhPT10KX1kZXN0cm95KCl7dGhpcy5ldmVudHM9e319fSxId3Q9MTAwLzYscmg9e3Bhc3NpdmU6ITF9LFFIYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU2Nyb2xsIil9Y29uc3RydWN0b3IocyxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD1zLHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxyaCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHJoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHJoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxyaCl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IEJ3dDtvbihzLGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24ocyxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxyaCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHJoKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHJoKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxyaCl9b25Ub3VjaFN0YXJ0PWkocz0+e2xldHtjbGllbnRYOmUsY2xpZW50WTp0fT1zLnRhcmdldFRvdWNoZXM/cy50YXJnZXRUb3VjaGVzWzBdOnM7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT10LHRoaXMubGFzdERlbHRhPXt4OjAseTowfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOjAsZGVsdGFZOjAsZXZlbnQ6c30pfSwib25Ub3VjaFN0YXJ0Iik7b25Ub3VjaE1vdmU9aShzPT57bGV0e2NsaWVudFg6ZSxjbGllbnRZOnR9PXMudGFyZ2V0VG91Y2hlcz9zLnRhcmdldFRvdWNoZXNbMF06cyxhPS0oZS10aGlzLnRvdWNoU3RhcnQueCkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcixyPS0odC10aGlzLnRvdWNoU3RhcnQueSkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcjt0aGlzLnRvdWNoU3RhcnQueD1lLHRoaXMudG91Y2hTdGFydC55PXQsdGhpcy5sYXN0RGVsdGE9e3g6YSx5OnJ9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6YSxkZWx0YVk6cixldmVudDpzfSl9LCJvblRvdWNoTW92ZSIpO29uVG91Y2hFbmQ9aShzPT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OnN9KX0sIm9uVG91Y2hFbmQiKTtvbldoZWVsPWkocz0+e2xldHtkZWx0YVg6ZSxkZWx0YVk6dCxkZWx0YU1vZGU6YX09cyxyPWE9PT0xP0h3dDphPT09Mj90aGlzLndpbmRvdy53aWR0aDoxLG49YT09PTE/SHd0OmE9PT0yP3RoaXMud2luZG93LmhlaWdodDoxO2UqPXIsdCo9bixlKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHQqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIsdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTp0LGV2ZW50OnN9KX0sIm9uV2hlZWwiKTtvbldpbmRvd1Jlc2l6ZT1pKCgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fSwib25XaW5kb3dSZXNpemUiKX0scXd0PWkocz0+TWF0aC5taW4oMSwxLjAwMS1NYXRoLnBvdygyLC0xMCpzKSksImRlZmF1bHRFYXNpbmciKSxBaz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMZW5pcyIpfV9pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IFlIYTtlbWl0dGVyPW5ldyBCd3Q7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnM9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnQ9cyxzbW9vdGhXaGVlbDphPSEwLHN5bmNUb3VjaDpyPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOmwsZWFzaW5nOnAsbGVycDpkPS4xLGluZmluaXRlOnU9ITEsb3JpZW50YXRpb246Yz0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpiPWM9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOnY9MSx3aGVlbE11bHRpcGxpZXI6eD0xLGF1dG9SZXNpemU6bT0hMCxwcmV2ZW50OmYsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6TT0hMCxhdXRvUmFmOno9ITEsYW5jaG9yczpOPSExLGF1dG9Ub2dnbGU6Qz0hMSxhbGxvd05lc3RlZFNjcm9sbDpfPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tz0hMSxuYWl2ZURpbWVuc2lvbnM6JD1PLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpFPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1VSGEsKCFzfHxzPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHM9d2luZG93KSx0eXBlb2YgbD09Im51bWJlciImJnR5cGVvZiBwIT0iZnVuY3Rpb24iP3A9cXd0OnR5cGVvZiBwPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbCE9Im51bWJlciImJihsPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjpzLGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6dCxzbW9vdGhXaGVlbDphLHN5bmNUb3VjaDpyLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOmwsZWFzaW5nOnAsbGVycDpkLGluZmluaXRlOnUsZ2VzdHVyZU9yaWVudGF0aW9uOmIsb3JpZW50YXRpb246Yyx0b3VjaE11bHRpcGxpZXI6dix3aGVlbE11bHRpcGxpZXI6eCxhdXRvUmVzaXplOm0scHJldmVudDpmLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOk0sYXV0b1JhZjp6LGFuY2hvcnM6TixhdXRvVG9nZ2xlOkMsYWxsb3dOZXN0ZWRTY3JvbGw6XyxuYWl2ZURpbWVuc2lvbnM6JCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6RX0sdGhpcy5kaW1lbnNpb25zPW5ldyBYSGEocyxlLHthdXRvUmVzaXplOm19KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IFFIYSh0LHt0b3VjaE11bHRpcGxpZXI6dix3aGVlbE11bHRpcGxpZXI6eH0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbihzLGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24ocyxlKX1vZmYocyxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZihzLGUpfW9uU2Nyb2xsRW5kPWkocz0+e3MgaW5zdGFuY2VvZiBDdXN0b21FdmVudHx8KHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoInx8dGhpcy5pc1Njcm9sbGluZz09PSExKSYmcy5zdG9wUHJvcGFnYXRpb24oKX0sIm9uU2Nyb2xsRW5kIik7ZGlzcGF0Y2hTY3JvbGxlbmRFdmVudD1pKCgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9LCJkaXNwYXRjaFNjcm9sbGVuZEV2ZW50Iik7Z2V0IG92ZXJmbG93KCl7bGV0IHM9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVtzXX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9aShzPT57cy5wcm9wZXJ0eU5hbWUuaW5jbHVkZXMoIm92ZXJmbG93IikmJnRoaXMuY2hlY2tPdmVyZmxvdygpfSwib25UcmFuc2l0aW9uRW5kIik7c2V0U2Nyb2xsKHMpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnMsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDpzLGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9aShzPT57bGV0IHQ9cy5jb21wb3NlZFBhdGgoKS5maWx0ZXIoYT0+YSBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTtpZih0aGlzLm9wdGlvbnMuYW5jaG9ycyl7bGV0IGE9dC5maW5kKHI9PnIuZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCIjIikpO2lmKGEpe2xldCByPWEuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYocil7bGV0IG49dHlwZW9mIHRoaXMub3B0aW9ucy5hbmNob3JzPT0ib2JqZWN0IiYmdGhpcy5vcHRpb25zLmFuY2hvcnM/dGhpcy5vcHRpb25zLmFuY2hvcnM6dm9pZCAwLG89YCMke3Iuc3BsaXQoIiMiKVsxXX1gO3RoaXMuc2Nyb2xsVG8obyxuKX19fXRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUmJnQuZmluZChyPT5yLmhvc3Q9PT13aW5kb3cubG9jYXRpb24uaG9zdCkmJnRoaXMucmVzZXQoKX0sIm9uQ2xpY2siKTtvblBvaW50ZXJEb3duPWkocz0+e3MuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfSwib25Qb2ludGVyRG93biIpO29uVmlydHVhbFNjcm9sbD1pKHM9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKHMpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6ZSxkZWx0YVk6dCxldmVudDphfT1zO2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTp0LGV2ZW50OmF9KSxhLmN0cmxLZXl8fGEubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCByPWEudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWEudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9YS50eXBlPT09InRvdWNoc3RhcnQifHxhLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz1lPT09MCYmdD09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmciYmYS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBwPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZ0PT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmZT09PTA7aWYob3x8cClyZXR1cm47bGV0IGQ9YS5jb21wb3NlZFBhdGgoKTtkPWQuc2xpY2UoMCxkLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCB1PXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGQuZmluZChmPT5mIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgdT09ImZ1bmN0aW9uIiYmdT8uKGYpfHxmLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8ciYmZi5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmYuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoZix7ZGVsdGFYOmUsZGVsdGFZOnR9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7YS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmcnx8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGEubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBiPXQ7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9iPU1hdGguYWJzKHQpPk1hdGguYWJzKGUpP3Q6ZTp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoYj1lKSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnQ+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnQ8MCkpJiYoYS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksYS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9ciYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCxtPXImJmEudHlwZT09PSJ0b3VjaGVuZCI7bSYmKGI9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwrYix7cHJvZ3JhbW1hdGljOiExLC4uLnY/e2xlcnA6bT90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9LCJvblZpcnR1YWxTY3JvbGwiKTtyZXNpemUoKXt0aGlzLmRpbWVuc2lvbnMucmVzaXplKCksdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmVtaXQoKX1lbWl0KCl7dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIsdGhpcyl9b25OYXRpdmVTY3JvbGw9aSgoKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCBzPXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC1zLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLXMpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fSwib25OYXRpdmVTY3JvbGwiKTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9aShzPT57bGV0IGU9cy0odGhpcy50aW1lfHxzKTt0aGlzLnRpbWU9cyx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9LCJyYWYiKTtzY3JvbGxUbyhzLHtvZmZzZXQ6ZT0wLGltbWVkaWF0ZTp0PSExLGxvY2s6YT0hMSxwcm9ncmFtbWF0aWM6cj0hMCxsZXJwOm49cj90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1yP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOmw9cj90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0OnAsb25Db21wbGV0ZTpkLGZvcmNlOnU9ITEsdXNlckRhdGE6Y309e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIXUpKXtpZih0eXBlb2Ygcz09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKHMpKXM9MDtlbHNlIGlmKHR5cGVvZiBzPT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKHMpKXM9dGhpcy5saW1pdDtlbHNle2xldCBiO2lmKHR5cGVvZiBzPT0ic3RyaW5nIj8oYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHMpLGJ8fChzPT09IiN0b3AiP3M9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIixzKSkpOnMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmcz8ubm9kZVR5cGUmJihiPXMpLGIpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgeD10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2UtPXRoaXMuaXNIb3Jpem9udGFsP3gubGVmdDp4LnRvcH1sZXQgdj1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3M9KHRoaXMuaXNIb3Jpem9udGFsP3YubGVmdDp2LnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIHM9PSJudW1iZXIiKXtpZihzKz1lLHM9TWF0aC5yb3VuZChzKSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKHIpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGI9cy10aGlzLmFuaW1hdGVkU2Nyb2xsO2I+dGhpcy5saW1pdC8yP3M9cy10aGlzLmxpbWl0OmI8LXRoaXMubGltaXQvMiYmKHM9cyt0aGlzLmxpbWl0KX19ZWxzZSBzPUZ3dCgwLHMsdGhpcy5saW1pdCk7aWYocz09PXRoaXMudGFyZ2V0U2Nyb2xsKXtwPy4odGhpcyksZD8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPWM/P3t9LHQpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9cyx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGQ/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufXJ8fCh0aGlzLnRhcmdldFNjcm9sbD1zKSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9cXd0OnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCxzLHtkdXJhdGlvbjpvLGVhc2luZzpsLGxlcnA6bixvblN0YXJ0OmkoKCk9PnthJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixwPy4odGhpcyl9LCJvblN0YXJ0Iiksb25VcGRhdGU6aSgoYix2KT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWItdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1iLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxyJiYodGhpcy50YXJnZXRTY3JvbGw9Yiksdnx8dGhpcy5lbWl0KCksdiYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxkPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX0sIm9uVXBkYXRlIil9KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbChzLHtkZWx0YVg6ZSxkZWx0YVk6dH0pe2xldCBhPURhdGUubm93KCkscj1zLl9sZW5pcz8/PXt9LG4sbyxsLHAsZCx1LGMsYix2PXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoYS0oci50aW1lPz8wKT4yZTMpe3IudGltZT1EYXRlLm5vdygpO2xldCBDPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHMpO3IuY29tcHV0ZWRTdHlsZT1DO2xldCBfPUMub3ZlcmZsb3dYLE89Qy5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoXyksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTyksci5oYXNPdmVyZmxvd1g9bixyLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8dj09PSJ2ZXJ0aWNhbCImJiFvfHx2PT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtkPXMuc2Nyb2xsV2lkdGgsdT1zLnNjcm9sbEhlaWdodCxjPXMuY2xpZW50V2lkdGgsYj1zLmNsaWVudEhlaWdodCxsPWQ+YyxwPXU+YixyLmlzU2Nyb2xsYWJsZVg9bCxyLmlzU2Nyb2xsYWJsZVk9cCxyLnNjcm9sbFdpZHRoPWQsci5zY3JvbGxIZWlnaHQ9dSxyLmNsaWVudFdpZHRoPWMsci5jbGllbnRIZWlnaHQ9Yn1lbHNlIGw9ci5pc1Njcm9sbGFibGVYLHA9ci5pc1Njcm9sbGFibGVZLG49ci5oYXNPdmVyZmxvd1gsbz1yLmhhc092ZXJmbG93WSxkPXIuc2Nyb2xsV2lkdGgsdT1yLnNjcm9sbEhlaWdodCxjPXIuY2xpZW50V2lkdGgsYj1yLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFsJiYhcHx8dj09PSJ2ZXJ0aWNhbCImJighb3x8IXApfHx2PT09Imhvcml6b250YWwiJiYoIW58fCFsKSlyZXR1cm4hMTtsZXQgeDtpZih2PT09Imhvcml6b250YWwiKXg9IngiO2Vsc2UgaWYodj09PSJ2ZXJ0aWNhbCIpeD0ieSI7ZWxzZXtsZXQgQz1lIT09MCxfPXQhPT0wO0MmJm4mJmwmJih4PSJ4IiksXyYmbyYmcCYmKHg9InkiKX1pZigheClyZXR1cm4hMTtsZXQgbSxmLHksTSx6O2lmKHg9PT0ieCIpbT1zLnNjcm9sbExlZnQsZj1kLWMseT1lLE09bix6PWw7ZWxzZSBpZih4PT09InkiKW09cy5zY3JvbGxUb3AsZj11LWIseT10LE09byx6PXA7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP208ZjptPjApJiZNJiZ6fWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IHM9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP3Muc2Nyb2xsWD8/cy5zY3JvbGxMZWZ0OnMuc2Nyb2xsWT8/cy5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/S0hhKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcocyl7dGhpcy5faXNTY3JvbGxpbmchPT1zJiYodGhpcy5faXNTY3JvbGxpbmc9cyx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKHMpe3RoaXMuX2lzU3RvcHBlZCE9PXMmJih0aGlzLl9pc1N0b3BwZWQ9cyx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKHMpe3RoaXMuX2lzTG9ja2VkIT09cyYmKHRoaXMuX2lzTG9ja2VkPXMsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IHM9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJihzKz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKHMrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJihzKz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJihzKz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKHMrPSIgbGVuaXMtc21vb3RoIiksc311cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIFZ3dD1wbCgoZzVlLGI1ZSk9PnsoZnVuY3Rpb24ocyxlKXt0eXBlb2YgZzVlPT0ib2JqZWN0IiYmdHlwZW9mIGI1ZTwidSI/YjVlLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOihzPXN8fHNlbGYscy5Td2VldFNjcm9sbD1lKCkpfSkoZzVlLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBzPWkoZnVuY3Rpb24oKXtyZXR1cm4gcz1PYmplY3QuYXNzaWdufHxpKGZ1bmN0aW9uKGllKXtmb3IodmFyIHRlLGVlPTEsa2U9YXJndW1lbnRzLmxlbmd0aDtlZTxrZTtlZSsrKXt0ZT1hcmd1bWVudHNbZWVdO2Zvcih2YXIgWCBpbiB0ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsWCkmJihpZVtYXT10ZVtYXSl9cmV0dXJuIGllfSwiX19hc3NpZ24iKSxzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIl9fYXNzaWduIiksZT0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksdD1lP3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGE9KGZ1bmN0aW9uKCl7dmFyIFE9ITE7aWYoIWUpcmV0dXJuIFE7dHJ5e3ZhciBpZT13aW5kb3csdGU9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmkoZnVuY3Rpb24oKXtRPSEwfSwiZ2V0Iil9KTtpZS5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLHRlKSxpZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLHRlKX1jYXRjaHt9cmV0dXJuIFF9KSgpLHI9aShmdW5jdGlvbihRKXtyZXR1cm4gdHlwZW9mIFE9PSJzdHJpbmcifSwiaXNTdHJpbmciKSxuPWkoZnVuY3Rpb24oUSl7cmV0dXJuIHR5cGVvZiBRPT0iZnVuY3Rpb24ifSwiaXNGdW5jdGlvbiIpLG89aShmdW5jdGlvbihRKXtyZXR1cm4gQXJyYXkuaXNBcnJheShRKX0sImlzQXJyYXkiKSxsPWkoZnVuY3Rpb24oUSl7cmV0dXJuIW8oUSkmJlEtcGFyc2VGbG9hdChRKSsxPj0wfSwiaXNOdW1lcmljIikscD1pKGZ1bmN0aW9uKFEsaWUpe3JldHVybiBRJiZRLmhhc093blByb3BlcnR5KGllKX0sImhhc1Byb3AiKSxkPWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCx1PWU/d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLGM9TWF0aC5jb3MsYj1NYXRoLnNpbix2PU1hdGgucG93LHg9TWF0aC5zcXJ0LG09TWF0aC5QSSxmPXtsaW5lYXI6aShmdW5jdGlvbihRKXtyZXR1cm4gUX0sImxpbmVhciIpLGVhc2VJblF1YWQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKGllLz1rZSkqaWUrdGV9LCJlYXNlSW5RdWFkIiksZWFzZU91dFF1YWQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4tZWUqKGllLz1rZSkqKGllLTIpK3RlfSwiZWFzZU91dFF1YWQiKSxlYXNlSW5PdXRRdWFkOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuKGllLz1rZS8yKTwxP2VlLzIqaWUqaWUrdGU6LWVlLzIqKC0taWUqKGllLTIpLTEpK3RlfSwiZWFzZUluT3V0UXVhZCIpLGVhc2VJbkN1YmljOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuIGVlKihpZS89a2UpKmllKmllK3RlfSwiZWFzZUluQ3ViaWMiKSxlYXNlT3V0Q3ViaWM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKChpZT1pZS9rZS0xKSppZSppZSsxKSt0ZX0sImVhc2VPdXRDdWJpYyIpLGVhc2VJbk91dEN1YmljOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuKGllLz1rZS8yKTwxP2VlLzIqaWUqaWUqaWUrdGU6ZWUvMiooKGllLT0yKSppZSppZSsyKSt0ZX0sImVhc2VJbk91dEN1YmljIiksZWFzZUluUXVhcnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKGllLz1rZSkqaWUqaWUqaWUrdGV9LCJlYXNlSW5RdWFydCIpLGVhc2VPdXRRdWFydDppKGZ1bmN0aW9uKFEsaWUsdGUsZWUsa2Upe3JldHVybi1lZSooKGllPWllL2tlLTEpKmllKmllKmllLTEpK3RlfSwiZWFzZU91dFF1YXJ0IiksZWFzZUluT3V0UXVhcnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4oaWUvPWtlLzIpPDE/ZWUvMippZSppZSppZSppZSt0ZTotZWUvMiooKGllLT0yKSppZSppZSppZS0yKSt0ZX0sImVhc2VJbk91dFF1YXJ0IiksZWFzZUluUXVpbnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqKGllLz1rZSkqaWUqaWUqaWUqaWUrdGV9LCJlYXNlSW5RdWludCIpLGVhc2VPdXRRdWludDppKGZ1bmN0aW9uKFEsaWUsdGUsZWUsa2Upe3JldHVybiBlZSooKGllPWllL2tlLTEpKmllKmllKmllKmllKzEpK3RlfSwiZWFzZU91dFF1aW50IiksZWFzZUluT3V0UXVpbnQ6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4oaWUvPWtlLzIpPDE/ZWUvMippZSppZSppZSppZSppZSt0ZTplZS8yKigoaWUtPTIpKmllKmllKmllKmllKzIpK3RlfSwiZWFzZUluT3V0UXVpbnQiKSxlYXNlSW5TaW5lOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuLWVlKmMoaWUva2UqKG0vMikpK2VlK3RlfSwiZWFzZUluU2luZSIpLGVhc2VPdXRTaW5lOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuIGVlKmIoaWUva2UqKG0vMikpK3RlfSwiZWFzZU91dFNpbmUiKSxlYXNlSW5PdXRTaW5lOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuLWVlLzIqKGMobSppZS9rZSktMSkrdGV9LCJlYXNlSW5PdXRTaW5lIiksZWFzZUluRXhwbzppKGZ1bmN0aW9uKFEsaWUsdGUsZWUsa2Upe3JldHVybiBpZT09PTA/dGU6ZWUqdigyLDEwKihpZS9rZS0xKSkrdGV9LCJlYXNlSW5FeHBvIiksZWFzZU91dEV4cG86aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gaWU9PT1rZT90ZStlZTplZSooLXYoMiwtMTAqaWUva2UpKzEpK3RlfSwiZWFzZU91dEV4cG8iKSxlYXNlSW5PdXRFeHBvOmkoZnVuY3Rpb24oUSxpZSx0ZSxlZSxrZSl7cmV0dXJuIGllPT09MD90ZTppZT09PWtlP3RlK2VlOihpZS89a2UvMik8MT9lZS8yKnYoMiwxMCooaWUtMSkpK3RlOmVlLzIqKC12KDIsLTEwKi0taWUpKzIpK3RlfSwiZWFzZUluT3V0RXhwbyIpLGVhc2VJbkNpcmM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4tZWUqKHgoMS0oaWUvPWtlKSppZSktMSkrdGV9LCJlYXNlSW5DaXJjIiksZWFzZU91dENpcmM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4gZWUqeCgxLShpZT1pZS9rZS0xKSppZSkrdGV9LCJlYXNlT3V0Q2lyYyIpLGVhc2VJbk91dENpcmM6aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXtyZXR1cm4oaWUvPWtlLzIpPDE/LWVlLzIqKHgoMS1pZSppZSktMSkrdGU6ZWUvMiooeCgxLShpZS09MikqaWUpKzEpK3RlfSwiZWFzZUluT3V0Q2lyYyIpfSx5PWkoZnVuY3Rpb24oUSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFE/ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChRKTpbXSl9LCIkJCIpLE09aShmdW5jdGlvbihRKXtyZXR1cm4geShRKS5zaGlmdCgpfHxudWxsfSwiJCIpLHo9aShmdW5jdGlvbihRKXtyZXR1cm4gUSBpbnN0YW5jZW9mIEVsZW1lbnR9LCJpc0VsZW1lbnQiKSxOPWkoZnVuY3Rpb24oUSl7cmV0dXJuIFE9PT13aW5kb3d9LCJpc1dpbmRvdyIpLEM9aShmdW5jdGlvbihRKXtyZXR1cm4gUT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8UT09PWRvY3VtZW50LmJvZHl9LCJpc1Jvb3RDb250YWluZXIiKSxfPWkoZnVuY3Rpb24oUSxpZSl7aWYoeihpZSkpcmV0dXJuIFE9PT1pZTtmb3IodmFyIHRlPXkoaWUpLGVlPXRlLmxlbmd0aDstLWVlPj0wJiZ0ZVtlZV0hPT1ROyk7cmV0dXJuIGVlPi0xfSwibWF0Y2hlcyIpLE89aShmdW5jdGlvbihRKXtyZXR1cm4gTWF0aC5tYXgoUS5zY3JvbGxIZWlnaHQsUS5jbGllbnRIZWlnaHQsUS5vZmZzZXRIZWlnaHQpfSwiZ2V0SGVpZ2h0IiksJD1pKGZ1bmN0aW9uKFEpe3JldHVybiBNYXRoLm1heChRLnNjcm9sbFdpZHRoLFEuY2xpZW50V2lkdGgsUS5vZmZzZXRXaWR0aCl9LCJnZXRXaWR0aCIpLEU9aShmdW5jdGlvbihRKXtyZXR1cm57d2lkdGg6JChRKSxoZWlnaHQ6TyhRKX19LCJnZXRTaXplIiksSD1pKGZ1bmN0aW9uKFEpe3ZhciBpZT1OKFEpfHxDKFEpO3JldHVybnt2aWV3cG9ydDp7d2lkdGg6aWU/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpRLmNsaWVudFdpZHRoLGhlaWdodDppZT93aW5kb3cuaW5uZXJIZWlnaHQ6US5jbGllbnRIZWlnaHR9LHNpemU6aWU/e3dpZHRoOk1hdGgubWF4KCQoZG9jdW1lbnQuYm9keSksJChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSxoZWlnaHQ6TWF0aC5tYXgoTyhkb2N1bWVudC5ib2R5KSxPKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfTpFKFEpfX0sImdldFZpZXdwb3J0QW5kRWxlbWVudFNpemVzIiksaz17eToic2Nyb2xsVG9wIix4OiJzY3JvbGxMZWZ0In0sUz17eToicGFnZVlPZmZzZXQiLHg6InBhZ2VYT2Zmc2V0In0sST1pKGZ1bmN0aW9uKFEsaWUpe3JldHVybiBOKFEpP1FbU1tpZV1dOlFba1tpZV1dfSwiZ2V0U2Nyb2xsIiksUD1pKGZ1bmN0aW9uKFEsaWUsdGUpe2lmKE4oUSkpe3ZhciBlZT10ZT09PSJ5IjtRLnNjcm9sbFRvKGVlP1EucGFnZVhPZmZzZXQ6aWUsZWU/aWU6US5wYWdlWU9mZnNldCl9ZWxzZSBRW2tbdGVdXT1pZX0sInNldFNjcm9sbCIpLFI9aShmdW5jdGlvbihRLGllKXt2YXIgdGU9US5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0ZS53aWR0aHx8dGUuaGVpZ2h0KXt2YXIgZWU9e3RvcDowLGxlZnQ6MH0sa2U9dm9pZCAwO2lmKE4oaWUpfHxDKGllKSlrZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZWUudG9wPXdpbmRvd1tTLnldLGVlLmxlZnQ9d2luZG93W1MueF07ZWxzZXtrZT1pZTt2YXIgWD1rZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlZS50b3A9WC50b3AqLTEra2Vbay55XSxlZS5sZWZ0PVgubGVmdCotMStrZVtrLnhdfXJldHVybnt0b3A6dGUudG9wK2VlLnRvcC1rZS5jbGllbnRUb3AsbGVmdDp0ZS5sZWZ0K2VlLmxlZnQta2UuY2xpZW50TGVmdH19cmV0dXJuIHRlfSwiZ2V0T2Zmc2V0IiksSz0oZnVuY3Rpb24oKXtyZXR1cm4gZT8ib253aGVlbCJpbiBkb2N1bWVudD8id2hlZWwiOiJtb3VzZXdoZWVsIjoid2hlZWwifSkoKSxWPWkoZnVuY3Rpb24oUSl7cmV0dXJuIFE9PT0id2hlZWwiP0s6UX0sImV2ZW50TmFtZSIpLFc9aShmdW5jdGlvbihRLGllLHRlLGVlLGtlKXt0ZS5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oWCl7UVtpZV0oVihYKSxlZSxhP3twYXNzaXZlOmtlfTohMSl9KX0sImFwcGx5IiksbWU9aShmdW5jdGlvbihRLGllLHRlLGVlKXtyZXR1cm4gVyhRLCJhZGRFdmVudExpc3RlbmVyIixpZSx0ZSxlZSl9LCJhZGRFdmVudCIpLEI9aShmdW5jdGlvbihRLGllLHRlLGVlKXtyZXR1cm4gVyhRLCJyZW1vdmVFdmVudExpc3RlbmVyIixpZSx0ZSxlZSl9LCJyZW1vdmVFdmVudCIpLFU9L14oXCt8LSk9KFxkKyg/OlwuXGQrKT8pJC8saGU9aShmdW5jdGlvbihRLGllKXt2YXIgdGU9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYocChRLCJ0b3AiKXx8cChRLCJsZWZ0IikpdGU9cyh7fSx0ZSxRKTtlbHNlIGlmKG8oUSkpaWYoUS5sZW5ndGg+MSl0ZS50b3A9UVswXSx0ZS5sZWZ0PVFbMV07ZWxzZSBpZihRLmxlbmd0aD09PTEpdGUudG9wPWllP1FbMF06MCx0ZS5sZWZ0PWllPzA6UVswXTtlbHNlIHJldHVybiBudWxsO2Vsc2UgaWYobChRKSlpZT90ZS50b3A9UTp0ZS5sZWZ0PVE7ZWxzZSBpZihyKFEpKXt2YXIgZWU9US50cmltKCkubWF0Y2goVSk7aWYoIWVlKXJldHVybiBudWxsO3ZhciBrZT1lZVsxXSxYPXBhcnNlSW50KGVlWzJdLDEwKTtrZT09PSIrIj8odGUudG9wPWllP1g6MCx0ZS5sZWZ0PWllPzA6WCk6KHRlLnRvcD1pZT8tWDowLHRlLmxlZnQ9aWU/MDotWCksdGUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gdGV9LCJwYXJzZUNvb3JkaW5hdGUiKSxGPXt0cmlnZ2VyOiJbZGF0YS1zY3JvbGxdIixoZWFkZXI6IltkYXRhLXNjcm9sbC1oZWFkZXJdIixkdXJhdGlvbjoxZTMsZWFzaW5nOiJlYXNlT3V0UXVpbnQiLG9mZnNldDowLHZlcnRpY2FsOiEwLGhvcml6b250YWw6ITEsY2FuY2VsbGFibGU6ITAsdXBkYXRlVVJMOiExLHByZXZlbnREZWZhdWx0OiEwLHN0b3BQcm9wYWdhdGlvbjohMCxiZWZvcmU6bnVsbCxhZnRlcjpudWxsLGNhbmNlbDpudWxsLGNvbXBsZXRlOm51bGwsc3RlcDpudWxsfSxqPSJjbGljayIsdWU9IndoZWVsIHRvdWNoc3RhcnQgdG91Y2htb3ZlIixsZT0oZnVuY3Rpb24oKXtmdW5jdGlvbiBRKGllLHRlKXt2YXIgZWU9dGhpczt0aGlzLiRlbD1udWxsLHRoaXMuY3R4PXskdHJpZ2dlcjpudWxsLG9wdHM6bnVsbCxwcm9ncmVzczohMSxwb3M6bnVsbCxzdGFydFBvczpudWxsLGVhc2luZzpudWxsLHN0YXJ0OjAsaWQ6MCxjYW5jZWw6ITEsaGFzaDpudWxsfSx0aGlzLmxvb3A9ZnVuY3Rpb24oWCl7dmFyIFo9ZWUseWU9Wi4kZWwscT1aLmN0eDtpZihxLnN0YXJ0fHwocS5zdGFydD1YKSwhcS5wcm9ncmVzc3x8IXllKXtlZS5zdG9wKCk7cmV0dXJufXZhciBBPXEub3B0cyxzZT1xLnBvcyxvZT1xLnN0YXJ0LGFlPXEuc3RhcnRQb3MsVGU9cS5lYXNpbmcsUmU9QS5kdXJhdGlvbixCZT17dG9wOiJ5IixsZWZ0OiJ4In0sR2U9WC1vZSxEZT1NYXRoLm1pbigxLE1hdGgubWF4KEdlL1JlLDApKTtPYmplY3Qua2V5cyhzZSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIENlPXNlW19lXSx2ZT1hZVtfZV0sYmU9Q2UtdmU7aWYoYmUhPT0wKXt2YXIgRWU9VGUoRGUsUmUqRGUsMCwxLFJlKTtQKHllLE1hdGgucm91bmQodmUrYmUqRWUpLEJlW19lXSl9fSksR2U8PVJlPyhlZS5ob29rKEEsInN0ZXAiLERlKSxxLmlkPVEucmFmKGVlLmxvb3ApKTplZS5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihYKXtmb3IodmFyIFo9ZWUub3B0cyx5ZT1YLnRhcmdldDt5ZSYmeWUhPT1kb2N1bWVudDt5ZT15ZS5wYXJlbnROb2RlKWlmKF8oeWUsWi50cmlnZ2VyKSl7dmFyIHE9SlNPTi5wYXJzZSh5ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsLW9wdGlvbnMiKXx8Int9IiksQT15ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksc2U9QXx8eWUuZ2V0QXR0cmlidXRlKCJocmVmIiksb2U9cyh7fSxaLHEpLGFlPW9lLnByZXZlbnREZWZhdWx0LFRlPW9lLnN0b3BQcm9wYWdhdGlvbixSZT1vZS52ZXJ0aWNhbCxCZT1vZS5ob3Jpem9udGFsO2FlJiZYLnByZXZlbnREZWZhdWx0KCksVGUmJlguc3RvcFByb3BhZ2F0aW9uKCksZWUuY3R4LiR0cmlnZ2VyPXllLEJlJiZSZT9lZS50byhzZSxvZSk6UmU/ZWUudG9Ub3Aoc2Usb2UpOkJlJiZlZS50b0xlZnQoc2Usb2UpO2JyZWFrfX0sdGhpcy5oYW5kbGVTdG9wPWZ1bmN0aW9uKFgpe3ZhciBaPWVlLmN0eCx5ZT1aLm9wdHM7eWUmJnllLmNhbmNlbGxhYmxlPyhaLmNhbmNlbD0hMCxlZS5zdG9wKCkpOlgucHJldmVudERlZmF1bHQoKX0sdGhpcy5vcHRzPXMoe30sRixpZXx8e30pO3ZhciBrZT1udWxsO2UmJih0eXBlb2YgdGU9PSJzdHJpbmciP2tlPU0odGUpOnRlIT1udWxsP2tlPXRlOmtlPXdpbmRvdyksdGhpcy4kZWw9a2Usa2UmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIGkoUSwiU3dlZXRTY3JvbGwiKSxRLmNyZWF0ZT1mdW5jdGlvbihpZSx0ZSl7cmV0dXJuIG5ldyBRKGllLHRlKX0sUS5wcm90b3R5cGUudG89ZnVuY3Rpb24oaWUsdGUpe2lmKGUpe3ZhciBlZT10aGlzLGtlPWVlLiRlbCxYPWVlLmN0eCxaPWVlLm9wdHMseWU9WC4kdHJpZ2dlcixxPXMoe30sWix0ZXx8e30pLEE9cS5vZmZzZXQsc2U9cS52ZXJ0aWNhbCxvZT1xLmhvcml6b250YWwsYWU9eihxLmhlYWRlcik/cS5oZWFkZXI6TShxLmhlYWRlciksVGU9L14jLyxSZT1yKGllKSYmVGUudGVzdChpZSk/aWU6bnVsbDtpZihYLm9wdHM9cSxYLmNhbmNlbD0hMSxYLmhhc2g9UmUsdGhpcy5zdG9wKCksISFrZSl7dmFyIEJlPWhlKEEsc2UpLEdlPWhlKGllLHNlKSxEZT17dG9wOjAsbGVmdDowfTtpZihHZSlpZihHZS5yZWxhdGl2ZSl7dmFyIF9lPUkoa2Usc2U/InkiOiJ4Iik7RGUudG9wPXNlP19lK0dlLnRvcDpHZS50b3AsRGUubGVmdD1zZT9HZS5sZWZ0Ol9lK0dlLmxlZnR9ZWxzZSBEZT1HZTtlbHNlIGlmKHIoaWUpJiZpZSE9PSIjIil7dmFyIENlPU0oaWUpO2lmKCFDZSlyZXR1cm47RGU9UihDZSxrZSl9QmUmJihEZS50b3ArPUJlLnRvcCxEZS5sZWZ0Kz1CZS5sZWZ0KSxhZSYmKERlLnRvcD1NYXRoLm1heCgwLERlLnRvcC1FKGFlKS5oZWlnaHQpKTt2YXIgdmU9SChrZSksYmU9dmUudmlld3BvcnQsRWU9dmUuc2l6ZTtpZihEZS50b3A9c2U/TWF0aC5tYXgoMCxNYXRoLm1pbihFZS5oZWlnaHQtYmUuaGVpZ2h0LERlLnRvcCkpOkkoa2UsInkiKSxEZS5sZWZ0PW9lP01hdGgubWF4KDAsTWF0aC5taW4oRWUud2lkdGgtYmUud2lkdGgsRGUubGVmdCkpOkkoa2UsIngiKSx0aGlzLmhvb2socSwiYmVmb3JlIixEZSx5ZSk9PT0hMSl7WC5vcHRzPW51bGw7cmV0dXJufVgucG9zPURlLHRoaXMuc3RhcnQocSksdGhpcy5iaW5kKCExLCEwKX19fSxRLnByb3RvdHlwZS50b1RvcD1mdW5jdGlvbihpZSx0ZSl7dGhpcy50byhpZSxzKHt9LHRlfHx7fSx7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMX0pKX0sUS5wcm90b3R5cGUudG9MZWZ0PWZ1bmN0aW9uKGllLHRlKXt0aGlzLnRvKGllLHMoe30sdGV8fHt9LHt2ZXJ0aWNhbDohMSxob3Jpem9udGFsOiEwfSkpfSxRLnByb3RvdHlwZS50b0VsZW1lbnQ9ZnVuY3Rpb24oaWUsdGUpe3ZhciBlZT10aGlzLiRlbDshZXx8IWVlfHx0aGlzLnRvKFIoaWUsZWUpLHRlfHx7fSl9LFEucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oaWUpe2llPT09dm9pZCAwJiYoaWU9ITEpO3ZhciB0ZT10aGlzLGVlPXRlLiRlbCxrZT10ZS5jdHgsWD1rZS5wb3M7IWVlfHwha2UucHJvZ3Jlc3N8fChRLmNhZihrZS5pZCksa2UucHJvZ3Jlc3M9ITEsa2Uuc3RhcnQ9MCxrZS5pZD0wLGllJiZYJiYoUChlZSxYLmxlZnQsIngiKSxQKGVlLFgudG9wLCJ5IikpLHRoaXMuY29tcGxldGUoKSl9LFEucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihpZSl7aWYodGhpcy4kZWwpe3ZhciB0ZT1zKHt9LHRoaXMub3B0cyxpZSk7dGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMub3B0cz10ZSx0aGlzLmJpbmQoITAsITEpfX0sUS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxRLnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihpZSx0ZSl7cmV0dXJuITB9LFEucHJvdG90eXBlLm9uU3RlcD1mdW5jdGlvbihpZSl7fSxRLnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKGllLHRlKXt9LFEucHJvdG90eXBlLm9uQ2FuY2VsPWZ1bmN0aW9uKCl7fSxRLnByb3RvdHlwZS5vbkNvbXBsZXRlPWZ1bmN0aW9uKGllKXt9LFEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKGllKXt2YXIgdGU9dGhpcy5jdHg7dGUub3B0cz1pZSx0ZS5wcm9ncmVzcz0hMCx0ZS5lYXNpbmc9bihpZS5lYXNpbmcpP2llLmVhc2luZzpmW2llLmVhc2luZ107dmFyIGVlPXRoaXMuJGVsLGtlPXt0b3A6SShlZSwieSIpLGxlZnQ6SShlZSwieCIpfTt0ZS5zdGFydFBvcz1rZSx0ZS5pZD1RLnJhZih0aGlzLmxvb3ApfSxRLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBpZT10aGlzLHRlPWllLiRlbCxlZT1pZS5jdHgsa2U9ZWUuaGFzaCxYPWVlLmNhbmNlbCxaPWVlLm9wdHMseWU9ZWUucG9zLHE9ZWUuJHRyaWdnZXI7aWYoISghdGV8fCFaKSl7aWYoa2UhPW51bGwmJmtlIT09d2luZG93LmxvY2F0aW9uLmhhc2gpe3ZhciBBPVoudXBkYXRlVVJMO2UmJnQmJkEhPT0hMSYmd2luZG93Lmhpc3RvcnlbQT09PSJyZXBsYWNlIj8icmVwbGFjZVN0YXRlIjoicHVzaFN0YXRlIl0obnVsbCwiIixrZSl9dGhpcy51bmJpbmQoITEsITApLGVlLm9wdHM9bnVsbCxlZS4kdHJpZ2dlcj1udWxsLFg/dGhpcy5ob29rKFosImNhbmNlbCIpOnRoaXMuaG9vayhaLCJhZnRlciIseWUscSksdGhpcy5ob29rKFosImNvbXBsZXRlIixYKX19LFEucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oaWUsdGUpe2Zvcih2YXIgZWU9W10sa2U9MjtrZTxhcmd1bWVudHMubGVuZ3RoO2tlKyspZWVba2UtMl09YXJndW1lbnRzW2tlXTt2YXIgWCxaPWllW3RlXSx5ZSxxO3JldHVybiBuKFopJiYoeWU9Wi5hcHBseSh0aGlzLGVlLmNvbmNhdChbdGhpc10pKSkscT0oWD10aGlzKVsib24iKyh0ZVswXS50b1VwcGVyQ2FzZSgpK3RlLnNsaWNlKDEpKV0uYXBwbHkoWCxlZSkseWUhPT12b2lkIDA/eWU6cX0sUS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihpZSx0ZSl7dmFyIGVlPXRoaXMsa2U9ZWUuJGVsLFg9ZWUuY3R4Lm9wdHM7a2UmJihpZSYmbWUoa2Usaix0aGlzLmhhbmRsZUNsaWNrLCExKSx0ZSYmbWUoa2UsdWUsdGhpcy5oYW5kbGVTdG9wLFg/WC5jYW5jZWxsYWJsZTohMCkpfSxRLnByb3RvdHlwZS51bmJpbmQ9ZnVuY3Rpb24oaWUsdGUpe3ZhciBlZT10aGlzLGtlPWVlLiRlbCxYPWVlLmN0eC5vcHRzO2tlJiYoaWUmJkIoa2Usaix0aGlzLmhhbmRsZUNsaWNrLCExKSx0ZSYmQihrZSx1ZSx0aGlzLmhhbmRsZVN0b3AsWD9YLmNhbmNlbGxhYmxlOiEwKSl9LFEucmFmPWQsUS5jYWY9dSxRfSkoKTtyZXR1cm4gbGV9KX0pO3ZhciBoYixKSGEsZmI9ZygoKT0+e2k1dCgpO3BzZSgpO2QwKCk7ZzkoKTt5eXQoKTtpbygpOyR5dCgpO1oyKCk7T3l0KCk7bzMoKTtHNmUoKTthc2UoKTt5cmUoKTtLYWUoKTtLeSgpO01oZSgpO0FhZSgpO2p3dCgpO2hiPXhuKFZ3dCgpLDEpLEpIYT17T2JqZWN0TWFwOmIwLFN0cmluZ21hcDpaeSxGYXN0TWFwOnIzfX0pO3ZhciBNaT17fTt5dChNaSx7Y29udGFpbmVyQ29udGV4dFN0eWxlczooKT0+YXFhLGNzc0ZvckNvbnN0cmFpbnQ6KCk9PmVxYSxjc3NGb3JDb25zdHJhaW50Q29udGFpbmVyOigpPT50cWEsY3NzRm9yQ29udGFpbmVyOigpPT5Yd3QsY3NzRm9yRGVza3RvcDooKT0+c3FhLGNzc0Zvck5vdGVib29rOigpPT5pcWEsY3NzRm9yUGhhYmxldDooKT0+b3FhLGNzc0ZvclBob25lOigpPT5ucWEsY3NzRm9yVGFibGV0OigpPT5ycWEsY3NzRm9yVmlld3BvcnQ6KCk9PmozLGRlc2t0b3A6KCk9Pld3dCxub3RlYm9vazooKT0+R3d0LHBoYWJsZXQ6KCk9Pll3dCxwaG9uZTooKT0+Wnd0LHRhYmxldDooKT0+S3d0fSk7dmFyIFd3dCxHd3QsS3d0LFl3dCxad3QsVXd0LGozLFh3dCxlcWEsdHFhLGFxYSxzcWEsaXFhLHJxYSxvcWEsbnFhLHY1ZT1nKCgpPT57bWIoKTt2YygpO1d3dD0xNjAwLEd3dD0xMjQwLEt3dD0xMDI0LFl3dD02MDAsWnd0PTQwMCxVd3Q9aShzPT57bGV0IGU9W107cmV0dXJuIHMubWluV2lkdGgmJmUucHVzaChgKG1pbi13aWR0aDogJHtzLm1pbldpZHRofXB4KWApLHMubWF4V2lkdGgmJmUucHVzaChgKG1heC13aWR0aDogJHtzLm1heFdpZHRofXB4KWApLGUuam9pbigiIGFuZCAiKX0sImJ1aWxkQ29uZGl0aW9uIiksajM9aSgocyxlKT0+YWEoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0ICR7ZX0gewogICAgICAke3MuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAke2V9IHsKICAgICAgJHtzLmNzc1RleHR9CiAgICB9CiAgYCksImNzc0ZvclZpZXdwb3J0IiksWHd0PWkoKHMsZSx0KT0+YWEoYAogICAgQGNvbnRhaW5lciAke3R9ICR7ZX0gewogICAgICAke3MuY3NzVGV4dH0KICAgIH0KICBgKSwiY3NzRm9yQ29udGFpbmVyIiksZXFhPWkocz0+ZT0+ajMoZSxVd3QocykpLCJjc3NGb3JDb25zdHJhaW50IiksdHFhPWkoKHMsZSk9PnQ9Plh3dCh0LFV3dChzKSxlKSwiY3NzRm9yQ29uc3RyYWludENvbnRhaW5lciIpLGFxYT1pKHM9PkpgCiAgOmhvc3QgewogICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplOwogICAgY29udGFpbmVyLW5hbWU6ICR7YWEocyl9OwogIH0KYCwiY29udGFpbmVyQ29udGV4dFN0eWxlcyIpLHNxYT1pKHM9PmozKHMsYChtaW4td2lkdGg6ICR7V3d0fXB4KWApLCJjc3NGb3JEZXNrdG9wIiksaXFhPWkocz0+ajMocyxgKG1heC13aWR0aDogJHtHd3R9cHgpYCksImNzc0Zvck5vdGVib29rIikscnFhPWkocz0+ajMocyxgKG1heC13aWR0aDogJHtLd3R9cHgpYCksImNzc0ZvclRhYmxldCIpLG9xYT1pKHM9PmozKHMsYChtYXgtd2lkdGg6ICR7WXd0fXB4KWApLCJjc3NGb3JQaGFibGV0IiksbnFhPWkocz0+ajMocyxgKG1heC13aWR0aDogJHtad3R9cHgpYCksImNzc0ZvclBob25lIil9KTt2YXIga3JlLFF3dD1nKCgpPT57ZmIoKTtrcmU9Y2xhc3N7c3RhdGlje2kodGhpcywiU2Nyb2xsZXIiKX1kb210b29sc0luc3RhbmNlO2Rpc3Bvc2VkPSExO3Njcm9sbENhbGxiYWNrcz1bXTtsZW5pc0luc3RhbmNlPW51bGw7bGVuaXNTY3JvbGxVbnN1YnNjcmliZT1udWxsO25hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQ9ITE7aGFuZGxlTmF0aXZlU2Nyb2xsPWkoZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfSwiaGFuZGxlTmF0aXZlU2Nyb2xsIik7aGFuZGxlTGVuaXNTY3JvbGw9aShlPT57dGhpcy5leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl9LCJoYW5kbGVMZW5pc1Njcm9sbCIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNJbnN0YW5jZT1lLHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKX1zd2VldFNjcm9sbGVyPW5ldyBoYi5kZWZhdWx0KHt9KTthc3luYyB0b0VsZW1lbnQoZSx0KXt0aGlzLnN3ZWV0U2Nyb2xsZXIudG9FbGVtZW50KGUsdCksdD8uZHVyYXRpb24mJmF3YWl0IFh0LmRlbGF5Rm9yKHQuZHVyYXRpb24pfWFzeW5jIGRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpe2xldCBlPWdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5zY3JvbGxCZWhhdmlvcix0PWRvY3VtZW50LmJvZHk/Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5zY3JvbGxCZWhhdmlvcjoiYXV0byI7aWYoZT09PSJzbW9vdGgifHx0PT09InNtb290aCIpcmV0dXJuITA7bGV0IGE9bXQuZGVmZXIoKSxyPTEyLG49MyxvPS43NSxsPTEyMDAscD1bXSxkPWkodj0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdSksd2luZG93LmNsZWFyVGltZW91dChiKSxhLnJlc29sdmUodil9LCJmaW5hbGl6ZSIpO2Z1bmN0aW9uIHUodil7cC5wdXNoKHYuZGVsdGFZKSxwLmxlbmd0aD49ciYmYygpfWkodSwib25XaGVlbCIpO2Z1bmN0aW9uIGMoKXtpZihwLmxlbmd0aDwyKXtkKCExKTtyZXR1cm59bGV0IHY9cC5sZW5ndGgtMSx4PTA7Zm9yKGxldCBmPTA7Zjx2O2YrKylNYXRoLmFicyhwW2YrMV0tcFtmXSk8PW4mJngrKztsZXQgbT14L3Y7ZChtPj1vKX1pKGMsImFuYWx5emVFdmVudHMiKTtsZXQgYj13aW5kb3cuc2V0VGltZW91dCgoKT0+e2MoKX0sbCk7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsdSx7cGFzc2l2ZTohMH0pLGEucHJvbWlzZX1hc3luYyBlbmFibGVMZW5pc1Njcm9sbChlKXtpZih0aGlzLmRpc3Bvc2VkKXJldHVybjt0aGlzLmxlbmlzSW5zdGFuY2UmJnRoaXMuZGlzYWJsZUxlbmlzU2Nyb2xsKCk7bGV0IHQ9bmV3IEFrKHthdXRvUmFmOiEwfSk7aWYoZT8uZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsJiZhd2FpdCB0aGlzLmRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpKXt0LmRlc3Ryb3koKTtyZXR1cm59dGhpcy5sZW5pc0luc3RhbmNlPXQsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpfWRpc2FibGVMZW5pc1Njcm9sbCgpe3RoaXMubGVuaXNJbnN0YW5jZSYmKHRoaXMuZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpLHRoaXMubGVuaXNJbnN0YW5jZS5kZXN0cm95KCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGwsdGhpcy5hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpKX1vblNjcm9sbChlKXtyZXR1cm4gdGhpcy5zY3JvbGxDYWxsYmFja3MucHVzaChlKSwoKT0+e3RoaXMuc2Nyb2xsQ2FsbGJhY2tzPXRoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZpbHRlcih0PT50IT09ZSl9fWV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKXt0aGlzLnNjcm9sbENhbGxiYWNrcy5mb3JFYWNoKGU9Pnt0cnl7ZSgpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHNjcm9sbCBjYWxsYmFjazoiLHQpfX0pfWF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl7dGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkfHx0aGlzLmRpc3Bvc2VkfHwod2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVOYXRpdmVTY3JvbGwpLHRoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZD0hMCl9ZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCksdGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkPSExKX1hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl7dGhpcy5sZW5pc0luc3RhbmNlJiYhdGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlJiYodGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlPXRoaXMubGVuaXNJbnN0YW5jZS5vbigic2Nyb2xsIix0aGlzLmhhbmRsZUxlbmlzU2Nyb2xsKSl9ZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZSYmKHRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZSgpLHRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZT1udWxsKX1kaXNwb3NlKCl7dGhpcy5kaXNwb3NlZHx8KHRoaXMuZGlzcG9zZWQ9ITAsdGhpcy5kZXRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlPy5kZXN0cm95KCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGwsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuc2Nyb2xsQ2FsbGJhY2tzPVtdLHRoaXMuc3dlZXRTY3JvbGxlci5kZXN0cm95KCkpfX19KTt2YXIgU3JlLEp3dD1nKCgpPT57bWIoKTtmYigpO1NyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaGVtZU1hbmFnZXIiKX1kb210b29sc1JlZjtnb0JyaWdodEJvb2xlYW49ITE7cHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpO3RoZW1lT2JzZXJ2YWJsZT1uZXcgbHMucnhqcy5SZXBsYXlTdWJqZWN0KDEpO2F1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGw7cHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyPWkoZT0+e3RoaXMuZ29CcmlnaHRCb29sZWFuPWUubWF0Y2hlcyx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9LCJwcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXIiKTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzUmVmPWUsdGhpcy5nb0JyaWdodEJvb2xlYW49dGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2gubWF0Y2hlcyx0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyKSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9YXN5bmMgZW5hYmxlQXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2UoKXthd2FpdCB0aGlzLmRvbXRvb2xzUmVmLmRvbVJlYWR5LnByb21pc2UsdGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb249dGhpcy50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKHtuZXh0OmkoZT0+e2RvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZD1lPyIjZmZmIjoiIzAwMCJ9LCJuZXh0Iil9KSl9dXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKXt0aGlzLmRvbXRvb2xzUmVmLmRpc3Bvc2VkfHx0aGlzLnRoZW1lT2JzZXJ2YWJsZS5uZXh0KHRoaXMuZ29CcmlnaHRCb29sZWFuKX1nb0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSEwLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1nb0RhcmsoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9dG9nZ2xlRGFya0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSF0aGlzLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9ZGlzcG9zZSgpe3RoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXIpLHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj1udWxsLHRoaXMudGhlbWVPYnNlcnZhYmxlLmNvbXBsZXRlKCl9fX0pO3ZhciBaZSxfcmUsZWt0PWcoKCk9PntmYigpOyhmdW5jdGlvbihzKXtzW3MuQmFja3NwYWNlPThdPSJCYWNrc3BhY2UiLHNbcy5UYWI9OV09IlRhYiIsc1tzLkVudGVyPTEzXT0iRW50ZXIiLHNbcy5TaGlmdD0xNl09IlNoaWZ0IixzW3MuQ3RybD0xN109IkN0cmwiLHNbcy5BbHQ9MThdPSJBbHQiLHNbcy5QYXVzZUJyZWFrPTE5XT0iUGF1c2VCcmVhayIsc1tzLkNhcHNMb2NrPTIwXT0iQ2Fwc0xvY2siLHNbcy5Fc2NhcGU9MjddPSJFc2NhcGUiLHNbcy5TcGFjZT0zMl09IlNwYWNlIixzW3MuUGFnZVVwPTMzXT0iUGFnZVVwIixzW3MuUGFnZURvd249MzRdPSJQYWdlRG93biIsc1tzLkVuZD0zNV09IkVuZCIsc1tzLkhvbWU9MzZdPSJIb21lIixzW3MuTGVmdEFycm93PTM3XT0iTGVmdEFycm93IixzW3MuVXBBcnJvdz0zOF09IlVwQXJyb3ciLHNbcy5SaWdodEFycm93PTM5XT0iUmlnaHRBcnJvdyIsc1tzLkRvd25BcnJvdz00MF09IkRvd25BcnJvdyIsc1tzLkluc2VydD00NV09Ikluc2VydCIsc1tzLkRlbGV0ZT00Nl09IkRlbGV0ZSIsc1tzLlplcm89NDhdPSJaZXJvIixzW3MuQ2xvc2VkUGFyZW49NDhdPSJDbG9zZWRQYXJlbiIsc1tzLk9uZT00OV09Ik9uZSIsc1tzLkV4Y2xhbWF0aW9uTWFyaz00OV09IkV4Y2xhbWF0aW9uTWFyayIsc1tzLlR3bz01MF09IlR3byIsc1tzLkF0U2lnbj01MF09IkF0U2lnbiIsc1tzLlRocmVlPTUxXT0iVGhyZWUiLHNbcy5Qb3VuZFNpZ249NTFdPSJQb3VuZFNpZ24iLHNbcy5IYXNoPTUxXT0iSGFzaCIsc1tzLkZvdXI9NTJdPSJGb3VyIixzW3MuRG9sbGFyU2lnbj01Ml09IkRvbGxhclNpZ24iLHNbcy5GaXZlPTUzXT0iRml2ZSIsc1tzLlBlcmNlbnRTaWduPTUzXT0iUGVyY2VudFNpZ24iLHNbcy5TaXg9NTRdPSJTaXgiLHNbcy5DYXJldD01NF09IkNhcmV0IixzW3MuSGF0PTU0XT0iSGF0IixzW3MuU2V2ZW49NTVdPSJTZXZlbiIsc1tzLkFtcGVyc2FuZD01NV09IkFtcGVyc2FuZCIsc1tzLkVpZ2h0PTU2XT0iRWlnaHQiLHNbcy5TdGFyPTU2XT0iU3RhciIsc1tzLkFzdGVyaWs9NTZdPSJBc3RlcmlrIixzW3MuTmluZT01N109Ik5pbmUiLHNbcy5PcGVuUGFyZW49NTddPSJPcGVuUGFyZW4iLHNbcy5BPTY1XT0iQSIsc1tzLkI9NjZdPSJCIixzW3MuQz02N109IkMiLHNbcy5EPTY4XT0iRCIsc1tzLkU9NjldPSJFIixzW3MuRj03MF09IkYiLHNbcy5HPTcxXT0iRyIsc1tzLkg9NzJdPSJIIixzW3MuST03M109IkkiLHNbcy5KPTc0XT0iSiIsc1tzLks9NzVdPSJLIixzW3MuTD03Nl09IkwiLHNbcy5NPTc3XT0iTSIsc1tzLk49NzhdPSJOIixzW3MuTz03OV09Ik8iLHNbcy5QPTgwXT0iUCIsc1tzLlE9ODFdPSJRIixzW3MuUj04Ml09IlIiLHNbcy5TPTgzXT0iUyIsc1tzLlQ9ODRdPSJUIixzW3MuVT04NV09IlUiLHNbcy5WPTg2XT0iViIsc1tzLlc9ODddPSJXIixzW3MuWD04OF09IlgiLHNbcy5ZPTg5XT0iWSIsc1tzLlo9OTBdPSJaIixzW3MuTGVmdFdpbmRvd0tleT05MV09IkxlZnRXaW5kb3dLZXkiLHNbcy5SaWdodFdpbmRvd0tleT05Ml09IlJpZ2h0V2luZG93S2V5IixzW3MuU2VsZWN0S2V5PTkzXT0iU2VsZWN0S2V5IixzW3MuTnVtcGFkMD05Nl09Ik51bXBhZDAiLHNbcy5OdW1wYWQxPTk3XT0iTnVtcGFkMSIsc1tzLk51bXBhZDI9OThdPSJOdW1wYWQyIixzW3MuTnVtcGFkMz05OV09Ik51bXBhZDMiLHNbcy5OdW1wYWQ0PTEwMF09Ik51bXBhZDQiLHNbcy5OdW1wYWQ1PTEwMV09Ik51bXBhZDUiLHNbcy5OdW1wYWQ2PTEwMl09Ik51bXBhZDYiLHNbcy5OdW1wYWQ3PTEwM109Ik51bXBhZDciLHNbcy5OdW1wYWQ4PTEwNF09Ik51bXBhZDgiLHNbcy5OdW1wYWQ5PTEwNV09Ik51bXBhZDkiLHNbcy5NdWx0aXBseT0xMDZdPSJNdWx0aXBseSIsc1tzLkFkZD0xMDddPSJBZGQiLHNbcy5TdWJ0cmFjdD0xMDldPSJTdWJ0cmFjdCIsc1tzLkRlY2ltYWxQb2ludD0xMTBdPSJEZWNpbWFsUG9pbnQiLHNbcy5EaXZpZGU9MTExXT0iRGl2aWRlIixzW3MuRjE9MTEyXT0iRjEiLHNbcy5GMj0xMTNdPSJGMiIsc1tzLkYzPTExNF09IkYzIixzW3MuRjQ9MTE1XT0iRjQiLHNbcy5GNT0xMTZdPSJGNSIsc1tzLkY2PTExN109IkY2IixzW3MuRjc9MTE4XT0iRjciLHNbcy5GOD0xMTldPSJGOCIsc1tzLkY5PTEyMF09IkY5IixzW3MuRjEwPTEyMV09IkYxMCIsc1tzLkYxMT0xMjJdPSJGMTEiLHNbcy5GMTI9MTIzXT0iRjEyIixzW3MuTnVtTG9jaz0xNDRdPSJOdW1Mb2NrIixzW3MuU2Nyb2xsTG9jaz0xNDVdPSJTY3JvbGxMb2NrIixzW3MuU2VtaUNvbG9uPTE4Nl09IlNlbWlDb2xvbiIsc1tzLkVxdWFscz0xODddPSJFcXVhbHMiLHNbcy5Db21tYT0xODhdPSJDb21tYSIsc1tzLkRhc2g9MTg5XT0iRGFzaCIsc1tzLlBlcmlvZD0xOTBdPSJQZXJpb2QiLHNbcy5VbmRlclNjb3JlPTE4OV09IlVuZGVyU2NvcmUiLHNbcy5QbHVzU2lnbj0xODddPSJQbHVzU2lnbiIsc1tzLkZvcndhcmRTbGFzaD0xOTFdPSJGb3J3YXJkU2xhc2giLHNbcy5UaWxkZT0xOTJdPSJUaWxkZSIsc1tzLkdyYXZlQWNjZW50PTE5Ml09IkdyYXZlQWNjZW50IixzW3MuT3BlbkJyYWNrZXQ9MjE5XT0iT3BlbkJyYWNrZXQiLHNbcy5DbG9zZWRCcmFja2V0PTIyMV09IkNsb3NlZEJyYWNrZXQiLHNbcy5RdW90ZT0yMjJdPSJRdW90ZSJ9KShaZXx8KFplPXt9KSk7X3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIktleWJvYXJkIil9ZG9tTm9kZTttYXBDb21ib3NUb0hhbmRsZXJzPW5ldyBNYXA7cHJlc3NlZEtleXM9bmV3IFNldDtsaXN0ZW5pbmc9ITE7Y29uc3RydWN0b3IoZSl7dGhpcy5kb21Ob2RlPWUsdGhpcy5zdGFydExpc3RlbmluZygpfWtleUVudW09WmU7b24oZSl7bGV0IHQ9bmV3IGxzLnJ4anMuU3ViamVjdDtyZXR1cm4gdGhpcy5yZWdpc3RlcktleXMoZSx0KSx0fXRyaWdnZXJLZXlQcmVzcyhlKXtsZXQgdD10aGlzLm5vcm1hbGl6ZUtleXMoZSk7Zm9yKGxldCBhIG9mIHQpdGhpcy5wcmVzc2VkS2V5cy5hZGQoYSk7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyh0aGlzLmNyZWF0ZUtleWJvYXJkRXZlbnQodCkpO2ZvcihsZXQgYSBvZiB0KXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKGEpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5saXN0ZW5pbmd8fCh0aGlzLmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApLHRoaXMubGlzdGVuaW5nPSEwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5saXN0ZW5pbmcmJih0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApLHRoaXMubGlzdGVuaW5nPSExKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpO2ZvcihsZXQgZSBvZiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMudmFsdWVzKCkpZm9yKGxldCB0IG9mIGUuc3ViamVjdHMpdC5jb21wbGV0ZSgpO3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1kaXNwb3NlKCl7dGhpcy5jbGVhcigpfWhhbmRsZUtleURvd249aShlPT57bGV0IHQ9dGhpcy5yZXNvbHZlS2V5KGUpO3QhPT1udWxsJiYodGhpcy5wcmVzc2VkS2V5cy5hZGQodCksdGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhlKSl9LCJoYW5kbGVLZXlEb3duIik7Y2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoZSl7dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmZvckVhY2godD0+e2lmKHRoaXMuYXJlQWxsS2V5c1ByZXNzZWQodC5rZXlzKSlmb3IobGV0IGEgb2YgdC5zdWJqZWN0cylhLm5leHQoZSl9KX1oYW5kbGVLZXlVcD1pKGU9PntsZXQgdD10aGlzLnJlc29sdmVLZXkoZSk7dCE9PW51bGwmJnRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHQpfSwiaGFuZGxlS2V5VXAiKTthcmVBbGxLZXlzUHJlc3NlZChlKXtsZXQgdD0hMDtyZXR1cm4gZS5mb3JFYWNoKGE9Pnt0aGlzLnByZXNzZWRLZXlzLmhhcyhhKXx8KHQ9ITEpfSksdH1yZWdpc3RlcktleXMoZSx0KXtsZXQgYT10aGlzLm5vcm1hbGl6ZUtleXMoZSkscj1hLmpvaW4oIisiKSxuPXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5nZXQocik7aWYoIW4pe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQocix7a2V5czphLHN1YmplY3RzOlt0XX0pO3JldHVybn1uLnN1YmplY3RzLnB1c2godCl9bm9ybWFsaXplS2V5cyhlKXtyZXR1cm5bLi4ubmV3IFNldChlKV0uc29ydCgodCxhKT0+dC1hKX1yZXNvbHZlS2V5KGUpe3JldHVybiB0aGlzLnJlc29sdmVLZXlGcm9tQ29kZShlLmNvZGUpPz90aGlzLnJlc29sdmVLZXlGcm9tS2V5KGUua2V5KT8/dGhpcy5yZXNvbHZlS2V5RnJvbUtleUNvZGUoZS5rZXlDb2RlKX1yZXNvbHZlS2V5RnJvbUNvZGUoZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5zdGFydHNXaXRoKCJLZXkiKSYmZS5sZW5ndGg9PT00KXJldHVybiBaZVtlLnNsaWNlKDMpXT8/bnVsbDtpZihlLnN0YXJ0c1dpdGgoIkRpZ2l0IikmJmUubGVuZ3RoPT09NilyZXR1cm4gdGhpcy5yZXNvbHZlS2V5RnJvbUtleShlLnNsaWNlKDUpKTtzd2l0Y2goZSl7Y2FzZSJCYWNrc3BhY2UiOnJldHVybiBaZS5CYWNrc3BhY2U7Y2FzZSJUYWIiOnJldHVybiBaZS5UYWI7Y2FzZSJFbnRlciI6Y2FzZSJOdW1wYWRFbnRlciI6cmV0dXJuIFplLkVudGVyO2Nhc2UiU2hpZnRMZWZ0IjpjYXNlIlNoaWZ0UmlnaHQiOnJldHVybiBaZS5TaGlmdDtjYXNlIkNvbnRyb2xMZWZ0IjpjYXNlIkNvbnRyb2xSaWdodCI6cmV0dXJuIFplLkN0cmw7Y2FzZSJBbHRMZWZ0IjpjYXNlIkFsdFJpZ2h0IjpyZXR1cm4gWmUuQWx0O2Nhc2UiUGF1c2UiOnJldHVybiBaZS5QYXVzZUJyZWFrO2Nhc2UiQ2Fwc0xvY2siOnJldHVybiBaZS5DYXBzTG9jaztjYXNlIkVzY2FwZSI6cmV0dXJuIFplLkVzY2FwZTtjYXNlIlNwYWNlIjpyZXR1cm4gWmUuU3BhY2U7Y2FzZSJQYWdlVXAiOnJldHVybiBaZS5QYWdlVXA7Y2FzZSJQYWdlRG93biI6cmV0dXJuIFplLlBhZ2VEb3duO2Nhc2UiRW5kIjpyZXR1cm4gWmUuRW5kO2Nhc2UiSG9tZSI6cmV0dXJuIFplLkhvbWU7Y2FzZSJBcnJvd0xlZnQiOnJldHVybiBaZS5MZWZ0QXJyb3c7Y2FzZSJBcnJvd1VwIjpyZXR1cm4gWmUuVXBBcnJvdztjYXNlIkFycm93UmlnaHQiOnJldHVybiBaZS5SaWdodEFycm93O2Nhc2UiQXJyb3dEb3duIjpyZXR1cm4gWmUuRG93bkFycm93O2Nhc2UiSW5zZXJ0IjpyZXR1cm4gWmUuSW5zZXJ0O2Nhc2UiRGVsZXRlIjpyZXR1cm4gWmUuRGVsZXRlO2Nhc2UiTWV0YUxlZnQiOnJldHVybiBaZS5MZWZ0V2luZG93S2V5O2Nhc2UiTWV0YVJpZ2h0IjpyZXR1cm4gWmUuUmlnaHRXaW5kb3dLZXk7Y2FzZSJDb250ZXh0TWVudSI6cmV0dXJuIFplLlNlbGVjdEtleTtjYXNlIk51bXBhZDAiOnJldHVybiBaZS5OdW1wYWQwO2Nhc2UiTnVtcGFkMSI6cmV0dXJuIFplLk51bXBhZDE7Y2FzZSJOdW1wYWQyIjpyZXR1cm4gWmUuTnVtcGFkMjtjYXNlIk51bXBhZDMiOnJldHVybiBaZS5OdW1wYWQzO2Nhc2UiTnVtcGFkNCI6cmV0dXJuIFplLk51bXBhZDQ7Y2FzZSJOdW1wYWQ1IjpyZXR1cm4gWmUuTnVtcGFkNTtjYXNlIk51bXBhZDYiOnJldHVybiBaZS5OdW1wYWQ2O2Nhc2UiTnVtcGFkNyI6cmV0dXJuIFplLk51bXBhZDc7Y2FzZSJOdW1wYWQ4IjpyZXR1cm4gWmUuTnVtcGFkODtjYXNlIk51bXBhZDkiOnJldHVybiBaZS5OdW1wYWQ5O2Nhc2UiTnVtcGFkTXVsdGlwbHkiOnJldHVybiBaZS5NdWx0aXBseTtjYXNlIk51bXBhZEFkZCI6cmV0dXJuIFplLkFkZDtjYXNlIk51bXBhZFN1YnRyYWN0IjpyZXR1cm4gWmUuU3VidHJhY3Q7Y2FzZSJOdW1wYWREZWNpbWFsIjpyZXR1cm4gWmUuRGVjaW1hbFBvaW50O2Nhc2UiTnVtcGFkRGl2aWRlIjpyZXR1cm4gWmUuRGl2aWRlO2Nhc2UiRjEiOnJldHVybiBaZS5GMTtjYXNlIkYyIjpyZXR1cm4gWmUuRjI7Y2FzZSJGMyI6cmV0dXJuIFplLkYzO2Nhc2UiRjQiOnJldHVybiBaZS5GNDtjYXNlIkY1IjpyZXR1cm4gWmUuRjU7Y2FzZSJGNiI6cmV0dXJuIFplLkY2O2Nhc2UiRjciOnJldHVybiBaZS5GNztjYXNlIkY4IjpyZXR1cm4gWmUuRjg7Y2FzZSJGOSI6cmV0dXJuIFplLkY5O2Nhc2UiRjEwIjpyZXR1cm4gWmUuRjEwO2Nhc2UiRjExIjpyZXR1cm4gWmUuRjExO2Nhc2UiRjEyIjpyZXR1cm4gWmUuRjEyO2Nhc2UiTnVtTG9jayI6cmV0dXJuIFplLk51bUxvY2s7Y2FzZSJTY3JvbGxMb2NrIjpyZXR1cm4gWmUuU2Nyb2xsTG9jaztjYXNlIlNlbWljb2xvbiI6cmV0dXJuIFplLlNlbWlDb2xvbjtjYXNlIkVxdWFsIjpyZXR1cm4gWmUuRXF1YWxzO2Nhc2UiQ29tbWEiOnJldHVybiBaZS5Db21tYTtjYXNlIk1pbnVzIjpyZXR1cm4gWmUuRGFzaDtjYXNlIlBlcmlvZCI6cmV0dXJuIFplLlBlcmlvZDtjYXNlIlNsYXNoIjpyZXR1cm4gWmUuRm9yd2FyZFNsYXNoO2Nhc2UiQmFja3F1b3RlIjpyZXR1cm4gWmUuVGlsZGU7Y2FzZSJCcmFja2V0TGVmdCI6cmV0dXJuIFplLk9wZW5CcmFja2V0O2Nhc2UiQnJhY2tldFJpZ2h0IjpyZXR1cm4gWmUuQ2xvc2VkQnJhY2tldDtjYXNlIlF1b3RlIjpyZXR1cm4gWmUuUXVvdGU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19cmVzb2x2ZUtleUZyb21LZXkoZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5sZW5ndGg9PT0xKXtsZXQgdD1lLnRvVXBwZXJDYXNlKCk7aWYodD49IkEiJiZ0PD0iWiIpcmV0dXJuIFplW3RdPz9udWxsO3N3aXRjaChlKXtjYXNlIjAiOnJldHVybiBaZS5aZXJvO2Nhc2UiMSI6cmV0dXJuIFplLk9uZTtjYXNlIjIiOnJldHVybiBaZS5Ud287Y2FzZSIzIjpyZXR1cm4gWmUuVGhyZWU7Y2FzZSI0IjpyZXR1cm4gWmUuRm91cjtjYXNlIjUiOnJldHVybiBaZS5GaXZlO2Nhc2UiNiI6cmV0dXJuIFplLlNpeDtjYXNlIjciOnJldHVybiBaZS5TZXZlbjtjYXNlIjgiOnJldHVybiBaZS5FaWdodDtjYXNlIjkiOnJldHVybiBaZS5OaW5lO2Nhc2UiICI6cmV0dXJuIFplLlNwYWNlO2Nhc2UiOyI6cmV0dXJuIFplLlNlbWlDb2xvbjtjYXNlIj0iOnJldHVybiBaZS5FcXVhbHM7Y2FzZSIsIjpyZXR1cm4gWmUuQ29tbWE7Y2FzZSItIjpyZXR1cm4gWmUuRGFzaDtjYXNlIi4iOnJldHVybiBaZS5QZXJpb2Q7Y2FzZSIvIjpyZXR1cm4gWmUuRm9yd2FyZFNsYXNoO2Nhc2UiYCI6cmV0dXJuIFplLlRpbGRlO2Nhc2UiWyI6cmV0dXJuIFplLk9wZW5CcmFja2V0O2Nhc2UiXSI6cmV0dXJuIFplLkNsb3NlZEJyYWNrZXQ7Y2FzZSInIjpyZXR1cm4gWmUuUXVvdGU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19c3dpdGNoKGUpe2Nhc2UiQmFja3NwYWNlIjpyZXR1cm4gWmUuQmFja3NwYWNlO2Nhc2UiVGFiIjpyZXR1cm4gWmUuVGFiO2Nhc2UiRW50ZXIiOnJldHVybiBaZS5FbnRlcjtjYXNlIlNoaWZ0IjpyZXR1cm4gWmUuU2hpZnQ7Y2FzZSJDb250cm9sIjpyZXR1cm4gWmUuQ3RybDtjYXNlIkFsdCI6cmV0dXJuIFplLkFsdDtjYXNlIlBhdXNlIjpyZXR1cm4gWmUuUGF1c2VCcmVhaztjYXNlIkNhcHNMb2NrIjpyZXR1cm4gWmUuQ2Fwc0xvY2s7Y2FzZSJFc2NhcGUiOnJldHVybiBaZS5Fc2NhcGU7Y2FzZSJQYWdlVXAiOnJldHVybiBaZS5QYWdlVXA7Y2FzZSJQYWdlRG93biI6cmV0dXJuIFplLlBhZ2VEb3duO2Nhc2UiRW5kIjpyZXR1cm4gWmUuRW5kO2Nhc2UiSG9tZSI6cmV0dXJuIFplLkhvbWU7Y2FzZSJBcnJvd0xlZnQiOnJldHVybiBaZS5MZWZ0QXJyb3c7Y2FzZSJBcnJvd1VwIjpyZXR1cm4gWmUuVXBBcnJvdztjYXNlIkFycm93UmlnaHQiOnJldHVybiBaZS5SaWdodEFycm93O2Nhc2UiQXJyb3dEb3duIjpyZXR1cm4gWmUuRG93bkFycm93O2Nhc2UiSW5zZXJ0IjpyZXR1cm4gWmUuSW5zZXJ0O2Nhc2UiRGVsZXRlIjpyZXR1cm4gWmUuRGVsZXRlO2Nhc2UiTWV0YSI6cmV0dXJuIFplLkxlZnRXaW5kb3dLZXk7Y2FzZSJDb250ZXh0TWVudSI6cmV0dXJuIFplLlNlbGVjdEtleTtjYXNlIk51bUxvY2siOnJldHVybiBaZS5OdW1Mb2NrO2Nhc2UiU2Nyb2xsTG9jayI6cmV0dXJuIFplLlNjcm9sbExvY2s7ZGVmYXVsdDpyZXR1cm4gbnVsbH19cmVzb2x2ZUtleUZyb21LZXlDb2RlKGUpe3JldHVybiB0eXBlb2YgZSE9Im51bWJlciI/bnVsbDp0eXBlb2YgWmVbZV08InUiP2U6bnVsbH1jcmVhdGVLZXlib2FyZEV2ZW50KGUpe2xldCB0PWVbZS5sZW5ndGgtMV0/P1plLkVudGVyLGE9dGhpcy5nZXRLZXlEZXNjcmlwdG9yKHQpO3JldHVybiBuZXcgS2V5Ym9hcmRFdmVudCgia2V5ZG93biIse2tleTphLmtleSxjb2RlOmEuY29kZSxjdHJsS2V5OmUuaW5jbHVkZXMoWmUuQ3RybCksc2hpZnRLZXk6ZS5pbmNsdWRlcyhaZS5TaGlmdCksYWx0S2V5OmUuaW5jbHVkZXMoWmUuQWx0KSxtZXRhS2V5OmUuaW5jbHVkZXMoWmUuTGVmdFdpbmRvd0tleSl8fGUuaW5jbHVkZXMoWmUuUmlnaHRXaW5kb3dLZXkpfSl9Z2V0S2V5RGVzY3JpcHRvcihlKXtzd2l0Y2goZSl7Y2FzZSBaZS5DdHJsOnJldHVybntrZXk6IkNvbnRyb2wiLGNvZGU6IkNvbnRyb2xMZWZ0In07Y2FzZSBaZS5TaGlmdDpyZXR1cm57a2V5OiJTaGlmdCIsY29kZToiU2hpZnRMZWZ0In07Y2FzZSBaZS5BbHQ6cmV0dXJue2tleToiQWx0Iixjb2RlOiJBbHRMZWZ0In07Y2FzZSBaZS5FbnRlcjpyZXR1cm57a2V5OiJFbnRlciIsY29kZToiRW50ZXIifTtjYXNlIFplLlNwYWNlOnJldHVybntrZXk6IiAiLGNvZGU6IlNwYWNlIn07ZGVmYXVsdDp7bGV0IHQ9WmVbZV07aWYodCYmdC5sZW5ndGg9PT0xJiZ0Pj0iQSImJnQ8PSJaIilyZXR1cm57a2V5OnQudG9Mb3dlckNhc2UoKSxjb2RlOmBLZXkke3R9YH07aWYoZT49WmUuWmVybyYmZTw9WmUuTmluZSl7bGV0IGE9U3RyaW5nKGUtWmUuWmVybyk7cmV0dXJue2tleTphLGNvZGU6YERpZ2l0JHthfWB9fXJldHVybntrZXk6dD8/IlVuaWRlbnRpZmllZCIsY29kZToiVW5pZGVudGlmaWVkIn19fX19fSk7dmFyIGppLG1iPWcoKCk9PntmYigpO3Y1ZSgpO1F3dCgpO3lyZSgpO0p3dCgpO2VrdCgpO2ppPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRG9tVG9vbHMiKX1zdGF0aWMgaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGw7c3RhdGljIGFzeW5jIHNldHVwRG9tVG9vbHMoZT17fSl7aWYoZS5pZ25vcmVHbG9iYWwpe2xldCB0PW5ldyBzKGUpO3JldHVybiBhd2FpdCB0LmluaXRpYWxpemF0aW9uUHJvbWlzZSx0fWlmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzJiYhZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMuZGlzcG9zZWQpcmV0dXJuIGF3YWl0IGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzLmluaXRpYWxpemF0aW9uUHJvbWlzZSxnbG9iYWxUaGlzLmRlZXNEb21Ub29scztpZighcy5pbml0aWFsaXphdGlvblByb21pc2Upe2xldCB0PW5ldyBzKGUpO2dsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPXQscy5pbml0aWFsaXphdGlvblByb21pc2U9dC5pbml0aWFsaXphdGlvblByb21pc2UudGhlbigoKT0+dCkuY2F0Y2goYT0+e3Rocm93IGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPT09dCYmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPXZvaWQgMCkscy5pbml0aWFsaXphdGlvblByb21pc2U9bnVsbCxhfSl9cmV0dXJuIGF3YWl0IHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlfXN0YXRpYyBnZXRHbG9iYWxEb21Ub29sc1N5bmMoKXtsZXQgZT1nbG9iYWxUaGlzLmRlZXNEb21Ub29scztpZighZXx8ZS5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoIllvdSB0cmllZCB0byBhY2Nlc3MgZG9tdG9vbHMgc3luY2hyb25vdXNseSB0b28gZWFybHkiKTtyZXR1cm4gZX1lbGVtZW50cz17aGVhZEVsZW1lbnQ6bnVsbCxib2R5RWxlbWVudDpudWxsfTt3ZWJzZXR1cD1uZXcgSWsoe21ldGFPYmplY3Q6e3RpdGxlOiIifX0pO3NtYXJ0c3RhdGU9bmV3IEIzLlNtYXJ0c3RhdGU7ZG9tVG9vbHNTdGF0ZVBhcnQ9dGhpcy5zbWFydHN0YXRlLmdldFN0YXRlUGFydCgiZG9tdG9vbHMiLHt2aXJ0dWFsVmlld3BvcnQ6Im5hdGl2ZSIsand0OiIifSk7cm91dGVyPW5ldyBGMy5TbWFydFJvdXRlcih7ZGVidWc6ITF9KTtjb252ZW5pZW5jZT17dHlwZWRyZXF1ZXN0OmdsLHNtYXJ0ZGVsYXk6WHQsc21hcnRqc29uOmpyLHNtYXJ0dXJsOlIxfTtkZWVzQ29tbXM9bmV3IGZ3LkRlZXNDb21tcztzY3JvbGxlcj1uZXcga3JlKHRoaXMpO3RoZW1lTWFuYWdlcj1uZXcgU3JlKHRoaXMpO2tleWJvYXJkPW51bGw7ZGlzcG9zZWQ9ITE7ZG9tVG9vbHNSZWFkeT1tdC5kZWZlcigpO2RvbVJlYWR5PW10LmRlZmVyKCk7Z2xvYmFsU3R5bGVzUmVhZHk9bXQuZGVmZXIoKTtpbml0aWFsaXphdGlvblByb21pc2U7bWFuYWdlZERvbU5vZGVzPVtdO3JlYWR5U3RhdGVDaGFuZ2VkRnVuYz1pKCgpPT57dGhpcy50cnlNYXJrRG9tUmVhZHkoKX0sInJlYWR5U3RhdGVDaGFuZ2VkRnVuYyIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlPXRoaXMuaW5pdGlhbGl6ZSgpfXJ1bk9uY2VQcm9taXNlTWFwPW5ldyBNYXA7YXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMudHJ5TWFya0RvbVJlYWR5KCksdGhpcy5kb21SZWFkeS5zdGF0dXM9PT0icGVuZGluZyImJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMucmVhZHlTdGF0ZUNoYW5nZWRGdW5jKSx0aGlzLmRvbVRvb2xzUmVhZHkuc3RhdHVzPT09InBlbmRpbmciJiZ0aGlzLmRvbVRvb2xzUmVhZHkucmVzb2x2ZSgpfXRyeU1hcmtEb21SZWFkeSgpe3RoaXMuZGlzcG9zZWR8fHRoaXMuZG9tUmVhZHkuc3RhdHVzIT09InBlbmRpbmcifHxkb2N1bWVudC5yZWFkeVN0YXRlIT09ImludGVyYWN0aXZlIiYmZG9jdW1lbnQucmVhZHlTdGF0ZSE9PSJjb21wbGV0ZSJ8fCFkb2N1bWVudC5oZWFkfHwhZG9jdW1lbnQuYm9keXx8KHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQ9ZG9jdW1lbnQuaGVhZCx0aGlzLmVsZW1lbnRzLmJvZHlFbGVtZW50PWRvY3VtZW50LmJvZHksdGhpcy5rZXlib2FyZHx8KHRoaXMua2V5Ym9hcmQ9bmV3IF9yZShkb2N1bWVudC5ib2R5KSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsdGhpcy5yZWFkeVN0YXRlQ2hhbmdlZEZ1bmMpLHRoaXMuZG9tUmVhZHkucmVzb2x2ZSgpKX10cmFja01hbmFnZWREb21Ob2RlKGUpe3JldHVybiB0aGlzLm1hbmFnZWREb21Ob2Rlcy5wdXNoKGUpLGV9Z2V0SGVhZE9yQm9keUVsZW1lbnQoKXtsZXQgZT10aGlzLmVsZW1lbnRzLmhlYWRFbGVtZW50fHxkb2N1bWVudC5oZWFkfHx0aGlzLmVsZW1lbnRzLmJvZHlFbGVtZW50fHxkb2N1bWVudC5ib2R5O2lmKCFlKXRocm93IG5ldyBFcnJvcigiRG9tVG9vbHMgY291bGQgbm90IGZpbmQgYSBET00gdGFyZ2V0IGVsZW1lbnQgdG8gYXR0YWNoIHJlc291cmNlcyB0byIpO3JldHVybiBlfWFzeW5jIHJ1bk9uY2UoZSx0KXtsZXQgYT10aGlzLnJ1bk9uY2VQcm9taXNlTWFwLmdldChlKTtyZXR1cm4gYXx8KGE9UHJvbWlzZS5yZXNvbHZlKCkudGhlbihhc3luYygpPT5hd2FpdCB0KCkpLHRoaXMucnVuT25jZVByb21pc2VNYXAuc2V0KGUsYSkpLGF3YWl0IGF9YXN5bmMgc2V0R2xvYmFsU3R5bGVzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgdD10aGlzLnRyYWNrTWFuYWdlZERvbU5vZGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSk7dC50eXBlPSJ0ZXh0L2NzcyIsdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5nZXRIZWFkT3JCb2R5RWxlbWVudCgpLmFwcGVuZENoaWxkKHQpfWFzeW5jIHNldEV4dGVybmFsU2NyaXB0KGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgdD1tdC5kZWZlcigpLGE9dGhpcy50cmFja01hbmFnZWREb21Ob2RlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKTthLnNyYz1lLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt0LnJlc29sdmUoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57dC5yZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBzY3JpcHQ6ICR7ZX1gKSl9KSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kKGEpLGF3YWl0IHQucHJvbWlzZX1hc3luYyBzZXRFeHRlcm5hbENzcyhlKXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHQ9bXQuZGVmZXIoKSxhPXRoaXMudHJhY2tNYW5hZ2VkRG9tTm9kZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikpO2EucmVsPSJzdHlsZXNoZWV0IixhLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGEuaHJlZj1lLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt0LnJlc29sdmUoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57dC5yZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBzdHlsZXNoZWV0OiAke2V9YCkpfSksdGhpcy5nZXRIZWFkT3JCb2R5RWxlbWVudCgpLmFwcGVuZChhKSxhd2FpdCB0LnByb21pc2V9YXN5bmMgc2V0V2Vic2l0ZUluZm8oZSl7YXdhaXQgdGhpcy53ZWJzZXR1cC5zZXR1cChlKSxhd2FpdCB0aGlzLndlYnNldHVwLnJlYWR5UHJvbWlzZX1kaXNwb3NlKCl7aWYoIXRoaXMuZGlzcG9zZWQpe3RoaXMuZGlzcG9zZWQ9ITAsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsdGhpcy5yZWFkeVN0YXRlQ2hhbmdlZEZ1bmMpLHRoaXMua2V5Ym9hcmQ/LmRpc3Bvc2UoKSx0aGlzLmtleWJvYXJkPW51bGwsdGhpcy5zY3JvbGxlci5kaXNwb3NlKCksdGhpcy50aGVtZU1hbmFnZXIuZGlzcG9zZSgpO2ZvcihsZXQgZSBvZiB0aGlzLm1hbmFnZWREb21Ob2RlcyllLnJlbW92ZSgpO3RoaXMubWFuYWdlZERvbU5vZGVzLmxlbmd0aD0wLGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPT09dGhpcyYmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPXZvaWQgMCxzLmluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsKX19fX0pO3ZhciBNcmUsdGt0LGFrdD1nKCgpPT57bWIoKTt2YygpO01yZT0oKCk9PntsZXQgcz1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyBPUyBYIik9PT0tMT9KYGAuY3NzVGV4dDoiIjtyZXR1cm4gSmAKICAgIC8qIHdpZHRoICovCiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgd2lkdGg6IDBweDsKICAgIH0KICAgIGJvZHkgewogICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7CiAgICB9CiAgYC5jc3NUZXh0fSkoKSx0a3Q9SmAKICAvKgogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsaWNvbnMvdjQyL2ZsVWhScTZ0elpjbFFFSi1WZGctSXVpYURzTmNJaFE4dFEud29mZjIpCiAgICAgIGZvcm1hdCgnd29mZjInKTsKICB9ICovCgogIC8qIGdsb2JhbCBib2R5IHN0eWxlcyAqLwogIGJvZHkgewogICAgbWFyZ2luOiAwcHg7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIHNjcm9sbCBiYXIgc3R5bGVzICovCiAgJHthYShNcmUpfQpgLmNzc1RleHR9KTt2YXIgdGE9e307eXQodGEse3NldHVwOigpPT5kcWEsc3RhdGljU3R5bGVzOigpPT5scWEsc3R5bGVzOigpPT5jcWF9KTt2YXIgbHFhLGNxYSxkcWEsc2t0PWcoKCk9PnttYigpO2FrdCgpO3ZjKCk7bHFhPUpgCiAgKiB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgfQoKICAke2FhKE1yZSl9CmAsY3FhPXdgCiAgPHN0eWxlPgogICAgKiB7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICB9CgogICAgJHtNcmV9CiAgPC9zdHlsZT4KYCxkcWE9aShhc3luYyhzLGU9e30pPT57bGV0IHQ9YXdhaXQgamkuc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYXdhaXQgdC5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2F3YWl0IHQuc2V0R2xvYmFsU3R5bGVzKHRrdCl9KSx0Lmdsb2JhbFN0eWxlc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmdC5nbG9iYWxTdHlsZXNSZWFkeS5yZXNvbHZlKCksYXdhaXQgdC5nbG9iYWxTdHlsZXNSZWFkeS5wcm9taXNlLHR9LCJzZXR1cCIpfSk7dmFyIHpyZT17fTt5dCh6cmUse2Nzc0dyaWRDb2x1bW5zOigpPT51cWF9KTt2YXIgdXFhLGlrdD1nKCgpPT57dXFhPWkoKHMsZSk9PntsZXQgdD0iIjtmb3IobGV0IGE9MDthPHM7YSsrKXQrPWAgY2FsYygoMTAwJS8ke3N9KSAtICgke2UqKHMtMSl9cHgvJHtzfSkpYDtyZXR1cm4gdH0sImNzc0dyaWRDb2x1bW5zIil9KTt2YXIgdXQ9e307eXQodXQse1N3ZWV0U2Nyb2xsOigpPT5oYi5kZWZhdWx0LHNtYXJ0ZGVsYXk6KCk9Plh0LHNtYXJ0bWFya2Rvd246KCk9PiRrLHNtYXJ0cHJvbWlzZTooKT0+bXQsc21hcnRyb3V0ZXI6KCk9PkYzLHNtYXJ0cng6KCk9PmxzLHNtYXJ0c3RhdGU6KCk9PkIzLHNtYXJ0c3RyaW5nOigpPT5hcixzbWFydHVybDooKT0+UjEsdHlwZWRyZXF1ZXN0OigpPT5nbH0pO3ZhciBya3Q9ZygoKT0+e2ZiKCl9KTt2YXIgbHQ9e307eXQobHQse0RvbVRvb2xzOigpPT5qaSxUeXBlZFJlcXVlc3Q6KCk9Pmd3LGJyZWFrcG9pbnRzOigpPT5NaSxjc3M6KCk9PnpyZSxlbGVtZW50QmFzaWM6KCk9PnRhLHBsdWdpbnM6KCk9PnV0fSk7dmFyIGt0PWcoKCk9PntxZHQoKTtza3QoKTt2NWUoKTtpa3QoKTttYigpO3BzZSgpO3lyZSgpO3JrdCgpfSk7dmFyIHg1ZSxvaCx5NWU9ZygoKT0+e3g1ZT14bihpeSgpLDEpO1oyKCk7dmMoKTtIZHQoKTtrdCgpO29oPXtjc3M6Six1bnNhZmVDU1M6YWEsTGl0RWxlbWVudDpvMCxwcm9wZXJ0eTpMfX0pO3ZhciBDcmUsbmt0PWcoKCk9Pnt2YygpO3k1ZSgpO2t0KCk7Q3JlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiQ3NzTWFuYWdlciIpfXN0YXRpYyBpbnN0YW5jZT1udWxsO3N0YXRpYyBnZXRTaW5nbGV0b24oKXtyZXR1cm4gcy5pbnN0YW5jZXx8KHMuaW5zdGFuY2U9bmV3IHMpLHMuaW5zdGFuY2V9ZG9tdG9vbHNQcm9taXNlPWppLnNldHVwRG9tVG9vbHMoKTtnb0JyaWdodD0hMTtiZFZhclRyaXBsZXRTdG9yZT1bXTtjb25zdHJ1Y3Rvcigpe3RoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYXN5bmMgZT0+e2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYXN5bmMgdD0+e3RoaXMuZ29CcmlnaHQ9dCxhd2FpdCBlLmRvbVJlYWR5LnByb21pc2U7Zm9yKGxldCBhIG9mIHRoaXMuYmRWYXJUcmlwbGV0U3RvcmUpZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShhLmNzc1Zhck5hbWUsdGhpcy5nb0JyaWdodD9hLmJyaWdodFZhbHVlOmEuZGFya1ZhbHVlKX0pfSl9Z2V0IGRlZmF1bHRTdHlsZXMoKXtyZXR1cm4gdGEuc3RhdGljU3R5bGVzfWdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MoZSl7cmV0dXJuIGUuaXN8fGUubmFtZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9Y3NzRm9yRGVza3RvcChlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWluLXdpZHRoOiAke01pLmRlc2t0b3B9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3ModCkpKTphYShNaS5jc3NGb3JEZXNrdG9wKGUpKX1jc3NGb3JOb3RlYm9vayhlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLm5vdGVib29rfXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHQpKSk6YWEoTWkuY3NzRm9yTm90ZWJvb2soZSkpfWNzc0ZvclRhYmxldChlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLnRhYmxldH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyh0KSkpOmFhKE1pLmNzc0ZvclRhYmxldChlKSl9Y3NzRm9yUGhhYmxldChlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLnBoYWJsZXR9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3ModCkpKTphYShNaS5jc3NGb3JQaGFibGV0KGUpKX1jc3NGb3JQaG9uZShlLHQpe3JldHVybiB0P2FhKE1pLmNzc0ZvckNvbnRhaW5lcihlLGAobWF4LXdpZHRoOiAke01pLnBob25lfXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHQpKSk6YWEoTWkuY3NzRm9yUGhvbmUoZSkpfWNzc0ZvckNvbnN0cmFpbnQoZSl7cmV0dXJuIHQ9PmFhKE1pLmNzc0ZvckNvbnN0cmFpbnQoZSkodCkpfWJkVGhlbWUoZSx0KXtsZXQgYSxyO2ppLmdldEdsb2JhbERvbVRvb2xzU3luYygpP3I9amkuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj9lOnQ6cj10O2xldCBuPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChvPT5vLmRhcmtWYWx1ZT09PXQmJm8uYnJpZ2h0VmFsdWU9PT1lKTtpZihuKWE9bi5jc3NWYXJOYW1lO2Vsc2V7bGV0IG89e2Nzc1Zhck5hbWU6YC0tJHt4NWUudW5pKCl9YCxicmlnaHRWYWx1ZTplLGRhcmtWYWx1ZTp0fTt0aGlzLmJkVmFyVHJpcGxldFN0b3JlLnB1c2gobyksdGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBsPT57YXdhaXQgbC5kb21SZWFkeS5wcm9taXNlLGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoby5jc3NWYXJOYW1lLHIpfSksYT1vLmNzc1Zhck5hbWV9cmV0dXJuIG9oLnVuc2FmZUNTUyhgdmFyKCR7YX0sICR7cn0pYCl9Y3NzR3JpZENvbHVtbnM9aSgoZSx0KT0+e2xldCBhPSIiO2ZvcihsZXQgcj0wO3I8ZTtyKyspYSs9YCBjYWxjKCgxMDAlLyR7ZX0pIC0gKCR7dCooZS0xKX1weC8ke2V9KSlgO3JldHVybiBvaC51bnNhZmVDU1MoYSl9LCJjc3NHcmlkQ29sdW1ucyIpfX0pO3ZhciB3NWUscHFhLGs1ZSxocWEsbGt0LFRyZSxNbixmcWEsbXFhLGNrdD1nKCgpPT57ZjEoKTt3NWU9U3ltYm9sLmZvcigiIikscHFhPWkocz0+e2lmKHM/LnI9PT13NWUpcmV0dXJuIHM/Ll8kbGl0U3RhdGljJH0sIm8iKSxrNWU9aShzPT4oe18kbGl0U3RhdGljJDpzLHI6dzVlfSksInMiKSxocWE9aSgocywuLi5lKT0+KHtfJGxpdFN0YXRpYyQ6ZS5yZWR1Y2UoKHQsYSxyKT0+dCsobj0+e2lmKG4uXyRsaXRTdGF0aWMkIT09dm9pZCAwKXJldHVybiBuLl8kbGl0U3RhdGljJDt0aHJvdyBFcnJvcihgVmFsdWUgcGFzc2VkIHRvICdsaXRlcmFsJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2xpdGVyYWwnIHJlc3VsdDogJHtufS4gVXNlICd1bnNhZmVTdGF0aWMnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQKICAgICAgICAgICAgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LmApfSkoYSkrc1tyKzFdLHNbMF0pLHI6dzVlfSksImkiKSxsa3Q9bmV3IE1hcCxUcmU9aShzPT4oZSwuLi50KT0+e2xldCBhPXQubGVuZ3RoLHIsbixvPVtdLGw9W10scCxkPTAsdT0hMTtmb3IoO2Q8YTspe2ZvcihwPWVbZF07ZDxhJiYobj10W2RdLChyPXBxYShuKSkhPT12b2lkIDApOylwKz1yK2VbKytkXSx1PSEwO2QhPT1hJiZsLnB1c2gobiksby5wdXNoKHApLGQrK31pZihkPT09YSYmby5wdXNoKGVbYV0pLHUpe2xldCBjPW8uam9pbigiJCRsaXQkJCIpOyhlPWxrdC5nZXQoYykpPT09dm9pZCAwJiYoby5yYXc9byxsa3Quc2V0KGMsZT1vKSksdD1sfXJldHVybiBzKGUsLi4udCl9LCJuIiksTW49VHJlKHcpLGZxYT1UcmUoSzJlKSxtcWE9VHJlKFkyZSl9KTt2YXIgZGt0PWcoKCk9Pntja3QoKX0pO3ZhciBfZCx6cixJYyxSMD1nKCgpPT57X2Q9e0FUVFJJQlVURToxLENISUxEOjIsUFJPUEVSVFk6MyxCT09MRUFOX0FUVFJJQlVURTo0LEVWRU5UOjUsRUxFTUVOVDo2fSx6cj1pKHM9PiguLi5lKT0+KHtfJGxpdERpcmVjdGl2ZSQ6cyx2YWx1ZXM6ZX0pLCJlIiksSWM9Y2xhc3N7c3RhdGlje2kodGhpcywiaSIpfWNvbnN0cnVjdG9yKGUpe31nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFUKGUsdCxhKXt0aGlzLl8kQ3Q9ZSx0aGlzLl8kQU09dCx0aGlzLl8kQ2k9YX1fJEFTKGUsdCl7cmV0dXJuIHRoaXMudXBkYXRlKGUsdCl9dXBkYXRlKGUsdCl7cmV0dXJuIHRoaXMucmVuZGVyKC4uLnQpfX19KTt2YXIgZ2IsVjMsdWt0PWcoKCk9PntmMSgpO1IwKCk7Z2I9Y2xhc3MgZXh0ZW5kcyBJY3tzdGF0aWN7aSh0aGlzLCJlIil9Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD14aSxlLnR5cGUhPT1fZC5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PXhpfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PW9pKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgdD1bZV07cmV0dXJuIHQucmF3PXQsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczp0LHZhbHVlczpbXX19fTtnYi5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIixnYi5yZXN1bHRUeXBlPTE7VjM9enIoZ2IpfSk7dmFyIHBrdD1nKCgpPT57dWt0KCl9KTt2YXIgUzVlLF81ZT1nKCgpPT57UzVlPWkocz0+KGUsdCk9Pnt0IT09dm9pZCAwP3QuYWRkSW5pdGlhbGl6ZXIoKCk9PntjdXN0b21FbGVtZW50cy5kZWZpbmUocyxlKX0pOmN1c3RvbUVsZW1lbnRzLmRlZmluZShzLGUpfSwidCIpfSk7dmFyIGhrdD1nKCgpPT57XzVlKCl9KTtmdW5jdGlvbiBuZShzKXtyZXR1cm4oZSx0KT0+e2lmKGUuaXM9cyxlLm5hbWUpe2xldCBhPWdxYShlLm5hbWUpO2EhPT1zJiZjb25zb2xlLndhcm4oYFtkZWVzLWVsZW1lbnRdIENsYXNzICIke2UubmFtZX0iIGtlYmFiLWNhc2VzIHRvICIke2F9IiBidXQgdGFnIGlzICIke3N9Ii4gQ29udGFpbmVyIHF1ZXJpZXMgdXNlIC5pcyAoIiR7c30iKS5gKX1yZXR1cm4gUzVlKHMpKGUsdCl9fXZhciBncWEsZmt0PWcoKCk9Pntoa3QoKTtncWE9aShzPT5zLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSwiY2FtZWxUb0tlYmFiIik7aShuZSwiY3VzdG9tRWxlbWVudCIpfSk7ZnVuY3Rpb24gWShzKXtyZXR1cm4gTCh7Li4ucyxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgbWt0PWcoKCk9PntDZWUoKTtpKFksInIiKX0pO2Z1bmN0aW9uIGJxYShzKXtyZXR1cm4oZSx0KT0+e2xldCBhPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZVt0XTtPYmplY3QuYXNzaWduKGEscyl9fXZhciBna3Q9ZygoKT0+e2koYnFhLCJ0Iil9KTt2YXIgQWMsYmI9ZygoKT0+e0FjPWkoKHMsZSx0KT0+KHQuY29uZmlndXJhYmxlPSEwLHQuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgZSE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGUsdCksdCksImUiKX0pO2Z1bmN0aW9uIE01ZShzLGUpe3JldHVybih0LGEscik9PntsZXQgbj1pKG89Pm8ucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihzKT8/bnVsbCwibyIpO2lmKGUpe2xldHtnZXQ6byxzZXQ6bH09dHlwZW9mIGE9PSJvYmplY3QiP3Q6cj8/KCgpPT57bGV0IHA9U3ltYm9sKCk7cmV0dXJue2dldCgpe3JldHVybiB0aGlzW3BdfSxzZXQoZCl7dGhpc1twXT1kfX19KSgpO3JldHVybiBBYyh0LGEse2dldCgpe2xldCBwPW8uY2FsbCh0aGlzKTtyZXR1cm4gcD09PXZvaWQgMCYmKHA9bih0aGlzKSwocCE9PW51bGx8fHRoaXMuaGFzVXBkYXRlZCkmJmwuY2FsbCh0aGlzLHApKSxwfX0pfXJldHVybiBBYyh0LGEse2dldCgpe3JldHVybiBuKHRoaXMpfX0pfX12YXIgYmt0PWcoKCk9PntiYigpO2koTTVlLCJlIil9KTtmdW5jdGlvbiB6NWUocyl7cmV0dXJuKGUsdCk9PkFjKGUsdCx7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KHZxYT8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwocyl9fSl9dmFyIHZxYSx2a3Q9ZygoKT0+e2JiKCk7aSh6NWUsInIiKX0pO2Z1bmN0aW9uIEM1ZShzKXtyZXR1cm4oZSx0KT0+QWMoZSx0LHthc3luYyBnZXQoKXtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocyk/P251bGx9fSl9dmFyIHhrdD1nKCgpPT57YmIoKTtpKEM1ZSwiciIpfSk7ZnVuY3Rpb24geHFhKHMpe3JldHVybihlLHQpPT57bGV0e3Nsb3Q6YSxzZWxlY3RvcjpyfT1zPz97fSxuPSJzbG90IisoYT9gW25hbWU9JHthfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gQWMoZSx0LHtnZXQoKXtsZXQgbz10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IobiksbD1vPy5hc3NpZ25lZEVsZW1lbnRzKHMpPz9bXTtyZXR1cm4gcj09PXZvaWQgMD9sOmwuZmlsdGVyKHA9PnAubWF0Y2hlcyhyKSl9fSl9fXZhciB5a3Q9ZygoKT0+e2JiKCk7aSh4cWEsIm8iKX0pO2Z1bmN0aW9uIHlxYShzKXtyZXR1cm4oZSx0KT0+e2xldHtzbG90OmF9PXM/P3t9LHI9InNsb3QiKyhhP2BbbmFtZT0ke2F9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBBYyhlLHQse2dldCgpe3JldHVybiB0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocik/LmFzc2lnbmVkTm9kZXMocyk/P1tdfX0pfX12YXIgd2t0PWcoKCk9PntiYigpO2koeXFhLCJuIil9KTt2YXIga2t0PWcoKCk9PntfNWUoKTtDZWUoKTtta3QoKTtna3QoKTtia3QoKTt2a3QoKTt4a3QoKTt5a3QoKTt3a3QoKX0pO3ZhciBTa3QsJHJlLHdlLF9rdD1nKCgpPT57eTVlKCk7dmMoKTtTa3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LCRyZT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sd2U9KCgpPT57bGV0IHM9b2guTGl0RWxlbWVudCxlLHQ9W10sYT1bXSxyLG49W10sbz1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNFbGVtZW50Iil9c3RhdGlje2xldCBwPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W29oLnByb3BlcnR5KHt0eXBlOkJvb2xlYW59KV0scj1bb2gucHJvcGVydHkoKV0sU2t0KHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ29CcmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImdvQnJpZ2h0ImluIGQsImhhcyIpLGdldDppKGQ9PmQuZ29CcmlnaHQsImdldCIpLHNldDppKChkLHUpPT57ZC5nb0JyaWdodD11fSwic2V0Iil9LG1ldGFkYXRhOnB9LHQsYSksU2t0KHRoaXMsbnVsbCxyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tdG9vbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImRvbXRvb2xzImluIGQsImhhcyIpLGdldDppKGQ9PmQuZG9tdG9vbHMsImdldCIpLHNldDppKChkLHUpPT57ZC5kb210b29scz11fSwic2V0Iil9LG1ldGFkYXRhOnB9LG4sbykscCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpwfSl9c3RhdGljIGdldENvbnRhaW5lck5hbWUoKXtyZXR1cm4gdGhpcy5pc3x8dGhpcy5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1zdGF0aWMgY3NzRm9yQ29uc3RyYWludChwKXtyZXR1cm4gZD0+bHQuYnJlYWtwb2ludHMuY3NzRm9yQ29uc3RyYWludENvbnRhaW5lcihwLHRoaXMuZ2V0Q29udGFpbmVyTmFtZSgpKShkKX0jZT0kcmUodGhpcyx0LCExKTtnZXQgZ29CcmlnaHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ29CcmlnaHQocCl7dGhpcy4jZT1wfWRvbXRvb2xzUHJvbWlzZT0kcmUodGhpcyxhKTsjdD0kcmUodGhpcyxuLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKHApe3RoaXMuI3Q9cH1yeFN1YnNjcmlwdGlvbnM9KCRyZSh0aGlzLG8pLFtdKTt0aGVtZVN1YnNjcmlwdGlvbjtlbGVtZW50RG9tUmVhZHlEZWZlcnJlZD1sdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2VsZW1lbnREb21SZWFkeT10aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IocD17fSl7c3VwZXIoKSx0aGlzLmRvbXRvb2xzUHJvbWlzZT1sdC5lbGVtZW50QmFzaWMuc2V0dXAodGhpcyxwKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGQ9Pnt0aGlzLmRvbXRvb2xzPWR9KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7bGV0IHA9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy50aGVtZVN1YnNjcmlwdGlvbj1wLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGQ9Pnt0aGlzLmdvQnJpZ2h0PWQsdGhpcy50aGVtZUNoYW5nZWQmJnRoaXMudGhlbWVDaGFuZ2VkKGQpfSksdGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRoZW1lU3Vic2NyaXB0aW9uKTtmb3IobGV0IGQgb2YgdGhpcy5zdGFydHVwRnVuY3Rpb25zKWF3YWl0IGQoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudENvbm5lY3RlZCIpKX1maXJzdFVwZGF0ZWQocCl7c3VwZXIuZmlyc3RVcGRhdGVkKHApLHRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXJ0dXBGdW5jdGlvbnM9W107cmVnaXN0ZXJTdGFydHVwRnVuY3Rpb24ocCl7dGhpcy5zdGFydHVwRnVuY3Rpb25zLnB1c2gocCl9Z2FyYmFnZUZ1bmN0aW9ucz1bXTtyZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihwKXt0aGlzLmdhcmJhZ2VGdW5jdGlvbnMucHVzaChwKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7Zm9yKGxldCBwIG9mIHRoaXMucnhTdWJzY3JpcHRpb25zKXAudW5zdWJzY3JpYmUoKTtmb3IobGV0IHAgb2YgdGhpcy5nYXJiYWdlRnVuY3Rpb25zKWF3YWl0IHAoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudERpc2Nvbm5lY3RlZCIpKX19fSkoKX0pO2Z1bmN0aW9uIHZiKCl7cmV0dXJuIGZ1bmN0aW9uKHMpe2xldCBlPXMuaXN8fHMubmFtZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksdD1zLm5hbWU/d3FhKHMubmFtZSk6bnVsbDtpZih0JiZ0IT09ZSl7bGV0IG49aShsPT5sJiZsLmNzc1RleHQmJmwuY3NzVGV4dC5pbmNsdWRlcyhgQGNvbnRhaW5lciAke3R9YCk/YWEobC5jc3NUZXh0LnJlcGxhY2VBbGwoYEBjb250YWluZXIgJHt0fWAsYEBjb250YWluZXIgJHtlfWApKTpsLCJmaXhTdHlsZSIpLG89cy5zdHlsZXM7QXJyYXkuaXNBcnJheShvKT9zLnN0eWxlcz1vLm1hcChuKTpvJiYocy5zdHlsZXM9bihvKSl9bGV0IGE9TWkuY29udGFpbmVyQ29udGV4dFN0eWxlcyhlKSxyPXMuc3R5bGVzO3JldHVybiBBcnJheS5pc0FycmF5KHIpP3Muc3R5bGVzPVsuLi5yLGFdOnI/cy5zdHlsZXM9W3IsYV06cy5zdHlsZXM9W2FdLHN9fXZhciB3cWEsTWt0PWcoKCk9Pnt2YygpO2t0KCk7d3FhPWkocz0+cy5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksImNhbWVsVG9LZWJhYiIpO2kodmIsImNvbnRhaW5lclJlc3BvbnNpdmUiKX0pO3ZhciBrcWEsemt0LFQ1ZSxTcWEsX3FhLE1xYSx6cWEsQ3FhLCQ1ZSxDa3QsTzAsTzEsVHFhLE5rLEQ1ZSxSayxMNWUseGI9ZygoKT0+e2YxKCk7KHtJOmtxYX09WjJlKSx6a3Q9aShzPT5zLCJpIiksVDVlPWkocz0+cz09PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0IiYmdHlwZW9mIHMhPSJmdW5jdGlvbiIsIm4iKSxTcWE9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sX3FhPWkoKHMsZSk9PmU9PT12b2lkIDA/cz8uXyRsaXRUeXBlJCE9PXZvaWQgMDpzPy5fJGxpdFR5cGUkPT09ZSwibCIpLE1xYT1pKHM9PnM/Ll8kbGl0VHlwZSQ/LmghPW51bGwsImQiKSx6cWE9aShzPT5zPy5fJGxpdERpcmVjdGl2ZSQhPT12b2lkIDAsImMiKSxDcWE9aShzPT5zPy5fJGxpdERpcmVjdGl2ZSQsImYiKSwkNWU9aShzPT5zLnN0cmluZ3M9PT12b2lkIDAsInIiKSxDa3Q9aSgoKT0+ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIiksInMiKSxPMD1pKChzLGUsdCk9PntsZXQgYT1zLl8kQUEucGFyZW50Tm9kZSxyPWU9PT12b2lkIDA/cy5fJEFCOmUuXyRBQTtpZih0PT09dm9pZCAwKXtsZXQgbj1hLmluc2VydEJlZm9yZShDa3QoKSxyKSxvPWEuaW5zZXJ0QmVmb3JlKENrdCgpLHIpO3Q9bmV3IGtxYShuLG8scyxzLm9wdGlvbnMpfWVsc2V7bGV0IG49dC5fJEFCLm5leHRTaWJsaW5nLG89dC5fJEFNLGw9byE9PXM7aWYobCl7bGV0IHA7dC5fJEFRPy4ocyksdC5fJEFNPXMsdC5fJEFQIT09dm9pZCAwJiYocD1zLl8kQVUpIT09by5fJEFVJiZ0Ll8kQVAocCl9aWYobiE9PXJ8fGwpe2xldCBwPXQuXyRBQTtmb3IoO3AhPT1uOyl7bGV0IGQ9emt0KHApLm5leHRTaWJsaW5nO3prdChhKS5pbnNlcnRCZWZvcmUocCxyKSxwPWR9fX1yZXR1cm4gdH0sInYiKSxPMT1pKChzLGUsdD1zKT0+KHMuXyRBSShlLHQpLHMpLCJ1IiksVHFhPXt9LE5rPWkoKHMsZT1UcWEpPT5zLl8kQUg9ZSwicCIpLEQ1ZT1pKHM9PnMuXyRBSCwiTSIpLFJrPWkocz0+e3MuXyRBUigpLHMuXyRBQS5yZW1vdmUoKX0sImgiKSxMNWU9aShzPT57cy5fJEFSKCl9LCJqIil9KTtmdW5jdGlvbiAkcWEocyl7dGhpcy5fJEFOIT09dm9pZCAwPyhEcmUodGhpcyksdGhpcy5fJEFNPXMsVGt0KHRoaXMpKTp0aGlzLl8kQU09c31mdW5jdGlvbiBEcWEocyxlPSExLHQ9MCl7bGV0IGE9dGhpcy5fJEFILHI9dGhpcy5fJEFOO2lmKHIhPT12b2lkIDAmJnIuc2l6ZSE9PTApaWYoZSlpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgbj10O248YS5sZW5ndGg7bisrKU9rKGFbbl0sITEpLERyZShhW25dKTtlbHNlIGEhPW51bGwmJihPayhhLCExKSxEcmUoYSkpO2Vsc2UgT2sodGhpcyxzKX12YXIgT2ssRHJlLFRrdCxMcWEsVWwsTHJlPWcoKCk9Pnt4YigpO1IwKCk7UjAoKTtPaz1pKChzLGUpPT57bGV0IHQ9cy5fJEFOO2lmKHQ9PT12b2lkIDApcmV0dXJuITE7Zm9yKGxldCBhIG9mIHQpYS5fJEFPPy4oZSwhMSksT2soYSxlKTtyZXR1cm4hMH0sInMiKSxEcmU9aShzPT57bGV0IGUsdDtkb3tpZigoZT1zLl8kQU0pPT09dm9pZCAwKWJyZWFrO3Q9ZS5fJEFOLHQuZGVsZXRlKHMpLHM9ZX13aGlsZSh0Py5zaXplPT09MCl9LCJvIiksVGt0PWkocz0+e2ZvcihsZXQgZTtlPXMuXyRBTTtzPWUpe2xldCB0PWUuXyRBTjtpZih0PT09dm9pZCAwKWUuXyRBTj10PW5ldyBTZXQ7ZWxzZSBpZih0LmhhcyhzKSlicmVhazt0LmFkZChzKSxMcWEoZSl9fSwiciIpO2koJHFhLCJoIik7aShEcWEsIm4iKTtMcWE9aShzPT57cy50eXBlPT1fZC5DSElMRCYmKHMuXyRBUD8/PURxYSxzLl8kQVE/Pz0kcWEpfSwiYyIpLFVsPWNsYXNzIGV4dGVuZHMgSWN7c3RhdGlje2kodGhpcywiZiIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSx0LGEpe3N1cGVyLl8kQVQoZSx0LGEpLFRrdCh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPWUuXyRBVX1fJEFPKGUsdD0hMCl7ZSE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPWUsZT90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHQmJihPayh0aGlzLGUpLERyZSh0aGlzKSl9c2V0VmFsdWUoZSl7aWYoJDVlKHRoaXMuXyRDdCkpdGhpcy5fJEN0Ll8kQUkoZSx0aGlzKTtlbHNle2xldCB0PVsuLi50aGlzLl8kQ3QuXyRBSF07dFt0aGlzLl8kQ2ldPWUsdGhpcy5fJEN0Ll8kQUkodCx0aGlzLDApfX1kaXNjb25uZWN0ZWQoKXt9cmVjb25uZWN0ZWQoKXt9fX0pO3ZhciBFcmU9ZygoKT0+e0xyZSgpfSk7dmFyIEU1ZSwka3QsRXFhLERrdD1nKCgpPT57dmMoKTtFcmUoKTtFNWU9Y2xhc3MgZXh0ZW5kcyBVbHtzdGF0aWN7aSh0aGlzLCJSZXNvbHZlRGlyZWN0aXZlIil9cHJvbWlzZTtoYXNQcm9taXNlU2V0dGxlZD0hMTtyZW5kZXIoZSl7cmV0dXJuIHRoaXMucHJvbWlzZSE9PWUmJih0aGlzLnByb21pc2U9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLmhhbmRsZVByb21pc2UoZSkpLG9pfWhhbmRsZVByb21pc2UoZSl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMSxlLnRoZW4odD0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZSh0KSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pLmNhdGNoKHQ9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUodCksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwfXJlY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZHx8dGhpcy5oYW5kbGVQcm9taXNlKHRoaXMucHJvbWlzZSl9fSwka3Q9enIoRTVlKSxFcWE9aShzPT4ka3QocygpKSwicmVzb2x2ZUV4ZWMiKX0pO3ZhciBQNWUsUHFhLExrdD1nKCgpPT57dmMoKTtFcmUoKTtaMigpO1A1ZT1jbGFzcyBleHRlbmRzIFVse3N0YXRpY3tpKHRoaXMsIlN1YnNjcmliZURpcmVjdGl2ZSIpfW9ic2VydmFibGU7c3ViPW51bGw7cmVuZGVyKGUpe3JldHVybiB0aGlzLm9ic2VydmFibGUhPT1lJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdWJzY3JpYmUoZSkpLG9pfXN1YnNjcmliZShlKXt0aGlzLnN1Yj1lLnN1YnNjcmliZSh0PT57dGhpcy5zZXRWYWx1ZSh0KX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdWJzY3JpYmUodGhpcy5vYnNlcnZhYmxlKX19LFBxYT16cihQNWUpfSk7dmFyIEk1ZSxFa3QsUGt0PWcoKCk9Pnt2YygpO0VyZSgpO1oyKCk7STVlPWNsYXNzIGV4dGVuZHMgVWx7c3RhdGlje2kodGhpcywiU3Vic2NyaWJlV2l0aFRlbXBsYXRlRGlyZWN0aXZlIil9b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcihlLHQpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT1lfHx0aGlzLnRlbXBsYXRlRm4hPT10KSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMudGVtcGxhdGVGbj10LHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksb2l9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKGU9PntsZXQgdD10aGlzLnRlbXBsYXRlRm4oZSk7dGhpcy5zZXRWYWx1ZSh0KX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sRWt0PXpyKEk1ZSl9KTt2YXIgQTVlLFUzLFczLE41ZT1nKCgpPT57QTVlPWkoYXN5bmMocyxlKT0+e2ZvciBhd2FpdChsZXQgdCBvZiBzKWlmKGF3YWl0IGUodCk9PT0hMSlyZXR1cm59LCJ0IiksVTM9Y2xhc3N7c3RhdGlje2kodGhpcywicyIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuRz1lfWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdChlKXt0aGlzLkc9ZX1kZXJlZigpe3JldHVybiB0aGlzLkd9fSxXMz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXt0aGlzLlk9dm9pZCAwLHRoaXMuWj12b2lkIDB9Z2V0KCl7cmV0dXJuIHRoaXMuWX1wYXVzZSgpe3RoaXMuWT8/PW5ldyBQcm9taXNlKGU9PnRoaXMuWj1lKX1yZXN1bWUoKXt0aGlzLlo/LigpLHRoaXMuWT10aGlzLlo9dm9pZCAwfX19KTt2YXIgSWt0LEFrdCxQcmUsUjVlLE5rdD1nKCgpPT57ZjEoKTt4YigpO0xyZSgpO041ZSgpO1IwKCk7SWt0PWkocz0+IVQ1ZShzKSYmdHlwZW9mIHMudGhlbj09ImZ1bmN0aW9uIiwibiIpLEFrdD0xMDczNzQxODIzLFByZT1jbGFzcyBleHRlbmRzIFVse3N0YXRpY3tpKHRoaXMsImMiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1Ba3QsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IFUzKHRoaXMpLHRoaXMuXyRDWD1uZXcgVzN9cmVuZGVyKC4uLmUpe3JldHVybiBlLmZpbmQodD0+IUlrdCh0KSk/P29pfXVwZGF0ZShlLHQpe2xldCBhPXRoaXMuXyRDYnQscj1hLmxlbmd0aDt0aGlzLl8kQ2J0PXQ7bGV0IG49dGhpcy5fJENLLG89dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBsPTA7bDx0Lmxlbmd0aCYmIShsPnRoaXMuXyRDd3QpO2wrKyl7bGV0IHA9dFtsXTtpZighSWt0KHApKXJldHVybiB0aGlzLl8kQ3d0PWwscDtsPHImJnA9PT1hW2xdfHwodGhpcy5fJEN3dD1Ba3Qscj0wLFByb21pc2UucmVzb2x2ZShwKS50aGVuKGFzeW5jIGQ9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IHU9bi5kZXJlZigpO2lmKHUhPT12b2lkIDApe2xldCBjPXUuXyRDYnQuaW5kZXhPZihwKTtjPi0xJiZjPHUuXyRDd3QmJih1Ll8kQ3d0PWMsdS5zZXRWYWx1ZShkKSl9fSkpfXJldHVybiBvaX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxSNWU9enIoUHJlKX0pO3ZhciBSa3Q9ZygoKT0+e05rdCgpfSk7dmFyIHliLElxYSxPa3Q9ZygoKT0+e2YxKCk7THJlKCk7TjVlKCk7UjAoKTt5Yj1jbGFzcyBleHRlbmRzIFVse3N0YXRpY3tpKHRoaXMsIm8iKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJENLPW5ldyBVMyh0aGlzKSx0aGlzLl8kQ1g9bmV3IFczfXJlbmRlcihlLHQpe3JldHVybiBvaX11cGRhdGUoZSxbdCxhXSl7aWYodGhpcy5pc0Nvbm5lY3RlZHx8dGhpcy5kaXNjb25uZWN0ZWQoKSx0PT09dGhpcy5fJENKKXJldHVybiBvaTt0aGlzLl8kQ0o9dDtsZXQgcj0wLHtfJENLOm4sXyRDWDpvfT10aGlzO3JldHVybiBBNWUodCxhc3luYyBsPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCBwPW4uZGVyZWYoKTtpZihwIT09dm9pZCAwKXtpZihwLl8kQ0ohPT10KXJldHVybiExO2EhPT12b2lkIDAmJihsPWEobCxyKSkscC5jb21taXRWYWx1ZShsLHIpLHIrK31yZXR1cm4hMH0pLG9pfWNvbW1pdFZhbHVlKGUsdCl7dGhpcy5zZXRWYWx1ZShlKX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxJcWE9enIoeWIpfSk7dmFyIE81ZSxGa3Q9ZygoKT0+e1IwKCk7T2t0KCk7eGIoKTtPNWU9enIoY2xhc3MgZXh0ZW5kcyB5Yntjb25zdHJ1Y3RvcihzKXtpZihzdXBlcihzKSxzLnR5cGUhPT1fZC5DSElMRCl0aHJvdyBFcnJvcigiYXN5bmNBcHBlbmQgY2FuIG9ubHkgYmUgdXNlZCBpbiBjaGlsZCBleHByZXNzaW9ucyIpfXVwZGF0ZShzLGUpe3JldHVybiB0aGlzLl8kQ3R0PXMsc3VwZXIudXBkYXRlKHMsZSl9Y29tbWl0VmFsdWUocyxlKXtlPT09MCYmTDVlKHRoaXMuXyRDdHQpO2xldCB0PU8wKHRoaXMuXyRDdHQpO08xKHQscyl9fSl9KTt2YXIgQmt0PWcoKCk9PntGa3QoKX0pO3ZhciBGNWUsSGt0PWcoKCk9PntmMSgpO1IwKCk7eGIoKTtGNWU9enIoY2xhc3MgZXh0ZW5kcyBJY3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5rZXk9eGl9cmVuZGVyKHMsZSl7cmV0dXJuIHRoaXMua2V5PXMsZX11cGRhdGUocyxbZSx0XSl7cmV0dXJuIGUhPT10aGlzLmtleSYmKE5rKHMpLHRoaXMua2V5PWUpLHR9fSl9KTt2YXIgcWt0PWcoKCk9PntIa3QoKX0pO3ZhciBqa3QsQjVlLFZrdD1nKCgpPT57ZjEoKTtSMCgpO3hiKCk7amt0PWkoKHMsZSx0KT0+e2xldCBhPW5ldyBNYXA7Zm9yKGxldCByPWU7cjw9dDtyKyspYS5zZXQoc1tyXSxyKTtyZXR1cm4gYX0sInUiKSxCNWU9enIoY2xhc3MgZXh0ZW5kcyBJY3tjb25zdHJ1Y3RvcihzKXtpZihzdXBlcihzKSxzLnR5cGUhPT1fZC5DSElMRCl0aHJvdyBFcnJvcigicmVwZWF0KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiB0ZXh0IGV4cHJlc3Npb25zIil9ZHQocyxlLHQpe2xldCBhO3Q9PT12b2lkIDA/dD1lOmUhPT12b2lkIDAmJihhPWUpO2xldCByPVtdLG49W10sbz0wO2ZvcihsZXQgbCBvZiBzKXJbb109YT9hKGwsbyk6byxuW29dPXQobCxvKSxvKys7cmV0dXJue3ZhbHVlczpuLGtleXM6cn19cmVuZGVyKHMsZSx0KXtyZXR1cm4gdGhpcy5kdChzLGUsdCkudmFsdWVzfXVwZGF0ZShzLFtlLHQsYV0pe2xldCByPUQ1ZShzKSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KGUsdCxhKTtpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IGw9dGhpcy51dD8/PVtdLHA9W10sZCx1LGM9MCxiPXIubGVuZ3RoLTEsdj0wLHg9bi5sZW5ndGgtMTtmb3IoO2M8PWImJnY8PXg7KWlmKHJbY109PT1udWxsKWMrKztlbHNlIGlmKHJbYl09PT1udWxsKWItLTtlbHNlIGlmKGxbY109PT1vW3ZdKXBbdl09TzEocltjXSxuW3ZdKSxjKyssdisrO2Vsc2UgaWYobFtiXT09PW9beF0pcFt4XT1PMShyW2JdLG5beF0pLGItLSx4LS07ZWxzZSBpZihsW2NdPT09b1t4XSlwW3hdPU8xKHJbY10sblt4XSksTzAocyxwW3grMV0scltjXSksYysrLHgtLTtlbHNlIGlmKGxbYl09PT1vW3ZdKXBbdl09TzEocltiXSxuW3ZdKSxPMChzLHJbY10scltiXSksYi0tLHYrKztlbHNlIGlmKGQ9PT12b2lkIDAmJihkPWprdChvLHYseCksdT1qa3QobCxjLGIpKSxkLmhhcyhsW2NdKSlpZihkLmhhcyhsW2JdKSl7bGV0IG09dS5nZXQob1t2XSksZj1tIT09dm9pZCAwP3JbbV06bnVsbDtpZihmPT09bnVsbCl7bGV0IHk9TzAocyxyW2NdKTtPMSh5LG5bdl0pLHBbdl09eX1lbHNlIHBbdl09TzEoZixuW3ZdKSxPMChzLHJbY10sZiksclttXT1udWxsO3YrK31lbHNlIFJrKHJbYl0pLGItLTtlbHNlIFJrKHJbY10pLGMrKztmb3IoO3Y8PXg7KXtsZXQgbT1PMChzLHBbeCsxXSk7TzEobSxuW3ZdKSxwW3YrK109bX1mb3IoO2M8PWI7KXtsZXQgbT1yW2MrK107bSE9PW51bGwmJlJrKG0pfXJldHVybiB0aGlzLnV0PW8sTmsocyxwKSxvaX19KX0pO3ZhciBVa3Q9ZygoKT0+e1ZrdCgpfSk7dmFyIFZpPXt9O3l0KFZpLHthc3luY0FwcGVuZDooKT0+TzVlLGtleWVkOigpPT5GNWUscmVwZWF0OigpPT5CNWUscmVzb2x2ZTooKT0+JGt0LHJlc29sdmVFeGVjOigpPT5FcWEsc3Vic2NyaWJlOigpPT5QcWEsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5Fa3QsdW50aWw6KCk9PlI1ZX0pO3ZhciBXa3Q9ZygoKT0+e0RrdCgpO0xrdCgpO1BrdCgpO1JrdCgpO0JrdCgpO3FrdCgpO1VrdCgpfSk7dmFyIEczPXt9O3l0KEczLHtEZWVzRWxlbWVudDooKT0+d2UsY29udGFpbmVyUmVzcG9uc2l2ZTooKT0+dmIsY3NzOigpPT5KLGNzc01hbmFnZXI6KCk9PmgsY3VzdG9tRWxlbWVudDooKT0+bmUsZGlyZWN0aXZlczooKT0+VmksZG9tdG9vbHM6KCk9Pmx0LGh0bWw6KCk9PncscHJvcGVydHk6KCk9PkwscXVlcnk6KCk9Pk01ZSxxdWVyeUFsbDooKT0+ejVlLHF1ZXJ5QXN5bmM6KCk9PkM1ZSxyZW5kZXI6KCk9PmgxLHN0YXRlOigpPT5ZLHN0YXRpYzooKT0+TW4sdW5zYWZlQ1NTOigpPT5hYSx1bnNhZmVIVE1MOigpPT5WMyx1bnNhZmVTdGF0aWM6KCk9Pms1ZX0pO3ZhciBoLHBlPWcoKCk9Pntua3QoKTt2YygpO2RrdCgpO3BrdCgpO2ZrdCgpO2trdCgpO2t0KCk7X2t0KCk7TWt0KCk7V2t0KCk7aD1DcmUuZ2V0U2luZ2xldG9uKCl9KTtmdW5jdGlvbiBBcWEocyxlKXtsZXQgdD1XcltzXTtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZlP3RbZV18fCJhdXRvIjp0eXBlb2YgdD09Im51bWJlciI/dDoiYXV0byJ9dmFyIFdyLE5xYSxJcmUseGEsem49ZygoKT0+e1dyPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07aShBcWEsImdldFpJbmRleCIpO05xYT17ImRlZXMtbW9kYWwiOldyLm92ZXJsYXkubW9kYWwsImRlZXMtd2luZG93bGF5ZXIiOldyLm92ZXJsYXkuZHJvcGRvd24sImRlZXMtY29udGV4dG1lbnUiOldyLm92ZXJsYXkuY29udGV4dE1lbnUsImRlZXMtdG9hc3QiOldyLm92ZXJsYXkudG9hc3QsImRlZXMtYXBwdWktbWFpbm1lbnUiOldyLmZpeGVkLmFwcEJhciwiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIjpXci5maXhlZC5tb2JpbGVOYXYsImRlZXMtc2xhc2gtbWVudSI6V3Iud3lzaXd5Z01lbnVzLCJkZWVzLWZvcm1hdHRpbmctbWVudSI6V3Iud3lzaXd5Z01lbnVzfSxJcmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJaSW5kZXhSZWdpc3RyeSIpfXN0YXRpYyBpbnN0YW5jZTthY3RpdmVFbGVtZW50cz1uZXcgU2V0O2VsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXA7Y3VycmVudFpJbmRleD0xZTM7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHMuaW5zdGFuY2V8fChzLmluc3RhbmNlPW5ldyBzKSxzLmluc3RhbmNlfWdldE5leHRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4Kz0xMCx0aGlzLmN1cnJlbnRaSW5kZXh9cmVnaXN0ZXIoZSx0KXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmFkZChlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuc2V0KGUsdCl9dW5yZWdpc3RlcihlKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmRlbGV0ZShlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZGVsZXRlKGUpLHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZT09PTAmJih0aGlzLmN1cnJlbnRaSW5kZXg9MWUzKX1nZXRFbGVtZW50WkluZGV4KGUpe3JldHVybiB0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGUpfWdldEFjdGl2ZUNvdW50KCl7cmV0dXJuIHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZX1nZXRDdXJyZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleH1jbGVhcigpe3RoaXMuYWN0aXZlRWxlbWVudHMuY2xlYXIoKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXAsdGhpcy5jdXJyZW50WkluZGV4PTFlM31nZXRBY3RpdmVFbGVtZW50c0luT3JkZXIoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFjdGl2ZUVsZW1lbnRzKS5zb3J0KChlLHQpPT57bGV0IGE9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKXx8MCxyPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQodCl8fDA7cmV0dXJuIGEtcn0pfX0seGE9SXJlLmdldEluc3RhbmNlKCl9KTt2YXIgV2wsVWksV2ksSGUscHQ9ZygoKT0+e3BlKCk7V2w9e2NvbG9yczp7bGlnaHQ6e2JnUHJpbWFyeToiaHNsKDAgMCUgMTAwJSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSA5OCUpIixiZ1RlcnRpYXJ5OiJoc2woMCAwJSA5NiUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLHRleHRTZWNvbmRhcnk6ImhzbCgwIDAlIDIwJSkiLHRleHRNdXRlZDoiaHNsKDAgMCUgNDUlKSIsdGV4dFdhcm06IiM3ODcxNmMiLGJvcmRlckRlZmF1bHQ6ImhzbCgwIDAlIDg5LjglKSIsYm9yZGVyU3VidGxlOiJoc2woMCAwJSA5MyUpIixib3JkZXJTdHJvbmc6ImhzbCgwIDAlIDgwJSkiLGFjY2VudFByaW1hcnk6IiMzYjgyZjYiLGFjY2VudFN1Y2Nlc3M6IiMyMmM1NWUiLGFjY2VudFdhcm5pbmc6IiNmNTllMGIiLGFjY2VudEVycm9yOiIjZWY0NDQ0IixiYWRnZURlZmF1bHRCZzoiI2Y0ZjRmNSIsYmFkZ2VEZWZhdWx0Rmc6IiMzZjNmNDYiLGJhZGdlU3VjY2Vzc0JnOiIjZGNmY2U3IixiYWRnZVN1Y2Nlc3NGZzoiIzE2NjUzNCIsYmFkZ2VXYXJuaW5nQmc6IiNmZWYzYzciLGJhZGdlV2FybmluZ0ZnOiIjOTI0MDBlIixiYWRnZUVycm9yQmc6IiNmZWUyZTIiLGJhZGdlRXJyb3JGZzoiIzk5MWIxYiJ9LGRhcms6e2JnUHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSAzLjklKSIsYmdUZXJ0aWFyeToiaHNsKDAgMCUgNyUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgOTglKSIsdGV4dFNlY29uZGFyeToiaHNsKDAgMCUgNjMuOSUpIix0ZXh0TXV0ZWQ6ImhzbCgwIDAlIDU1JSkiLHRleHRXYXJtOiIjYjVhOTlhIixib3JkZXJEZWZhdWx0OiJoc2woMCAwJSAxNC45JSkiLGJvcmRlclN1YnRsZToiaHNsKDAgMCUgMTElKSIsYm9yZGVyU3Ryb25nOiJoc2woMCAwJSAyMCUpIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCIsYmFkZ2VEZWZhdWx0Qmc6IiMyNzI3MmEiLGJhZGdlRGVmYXVsdEZnOiIjYTFhMWFhIixiYWRnZVN1Y2Nlc3NCZzoiIzE0NTMyZCIsYmFkZ2VTdWNjZXNzRmc6IiM0YWRlODAiLGJhZGdlV2FybmluZ0JnOiIjNDUxYTAzIixiYWRnZVdhcm5pbmdGZzoiI2ZiYmYyNCIsYmFkZ2VFcnJvckJnOiIjNDUwYTBhIixiYWRnZUVycm9yRmc6IiNmODcxNzEifX0sc3BhY2luZzp7eHM6IjRweCIsc206IjhweCIsbWQ6IjEycHgiLGxnOiIxNnB4Iix4bDoiMjRweCIsIjJ4bCI6IjMycHgiLCIzeGwiOiI0OHB4In0scmFkaXVzOnt4czoiMnB4IixzbToiNHB4IixtZDoiNnB4IixsZzoiOHB4Iix4bDoiMTJweCIsZnVsbDoiOTk5cHgifSxzaGFkb3dzOnt4czoiMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSkiLHNtOiIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIixtZDoiMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLGxnOiIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkifSx0cmFuc2l0aW9uczp7ZmFzdDoiMC4xcyIsZGVmYXVsdDoiMC4xNXMiLHNsb3c6IjAuMnMiLHNsb3dlcjoiMC4zcyJ9LGNvbnRyb2xIZWlnaHRzOntzbToiMzJweCIsbWQ6IjM2cHgiLGxnOiI0MHB4Iix4bDoiNDhweCJ9fSxVaT1XbC5jb2xvcnMubGlnaHQsV2k9V2wuY29sb3JzLmRhcmssSGU9SmAKICA6aG9zdCB7CiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJhY2tncm91bmQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5OiAke2guYmRUaGVtZShVaS5iZ1ByaW1hcnksV2kuYmdQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5OiAke2guYmRUaGVtZShVaS5iZ1NlY29uZGFyeSxXaS5iZ1NlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5OiAke2guYmRUaGVtZShVaS5iZ1RlcnRpYXJ5LFdpLmJnVGVydGlhcnkpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFRleHQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnk6ICR7aC5iZFRoZW1lKFVpLnRleHRQcmltYXJ5LFdpLnRleHRQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnk6ICR7aC5iZFRoZW1lKFVpLnRleHRTZWNvbmRhcnksV2kudGV4dFNlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQ6ICR7aC5iZFRoZW1lKFVpLnRleHRNdXRlZCxXaS50ZXh0TXV0ZWQpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJvcmRlciAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0OiAke2guYmRUaGVtZShVaS5ib3JkZXJEZWZhdWx0LFdpLmJvcmRlckRlZmF1bHQpfTsKICAgIC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlOiAke2guYmRUaGVtZShVaS5ib3JkZXJTdWJ0bGUsV2kuYm9yZGVyU3VidGxlKX07CiAgICAtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZzogJHtoLmJkVGhlbWUoVWkuYm9yZGVyU3Ryb25nLFdpLmJvcmRlclN0cm9uZyl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgV2FybSBUZXh0IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdGV4dC13YXJtOiAke2guYmRUaGVtZShVaS50ZXh0V2FybSxXaS50ZXh0V2FybSl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQWNjZW50IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnk6ICR7aC5iZFRoZW1lKFVpLmFjY2VudFByaW1hcnksV2kuYWNjZW50UHJpbWFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzOiAke2guYmRUaGVtZShVaS5hY2NlbnRTdWNjZXNzLFdpLmFjY2VudFN1Y2Nlc3MpfTsKICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZzogJHtoLmJkVGhlbWUoVWkuYWNjZW50V2FybmluZyxXaS5hY2NlbnRXYXJuaW5nKX07CiAgICAtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yOiAke2guYmRUaGVtZShVaS5hY2NlbnRFcnJvcixXaS5hY2NlbnRFcnJvcil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQmFkZ2UgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnOiAke2guYmRUaGVtZShVaS5iYWRnZURlZmF1bHRCZyxXaS5iYWRnZURlZmF1bHRCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmc6ICR7aC5iZFRoZW1lKFVpLmJhZGdlRGVmYXVsdEZnLFdpLmJhZGdlRGVmYXVsdEZnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1iZzogJHtoLmJkVGhlbWUoVWkuYmFkZ2VTdWNjZXNzQmcsV2kuYmFkZ2VTdWNjZXNzQmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnOiAke2guYmRUaGVtZShVaS5iYWRnZVN1Y2Nlc3NGZyxXaS5iYWRnZVN1Y2Nlc3NGZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctYmc6ICR7aC5iZFRoZW1lKFVpLmJhZGdlV2FybmluZ0JnLFdpLmJhZGdlV2FybmluZ0JnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZzogJHtoLmJkVGhlbWUoVWkuYmFkZ2VXYXJuaW5nRmcsV2kuYmFkZ2VXYXJuaW5nRmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZzogJHtoLmJkVGhlbWUoVWkuYmFkZ2VFcnJvckJnLFdpLmJhZGdlRXJyb3JCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWZnOiAke2guYmRUaGVtZShVaS5iYWRnZUVycm9yRmcsV2kuYmFkZ2VFcnJvckZnKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBJbnRlcmFjdGl2ZSBTdGF0ZXMKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1ob3ZlcjogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgLS1kZWVzLWNvbG9yLWFjdGl2ZTogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgLS1kZWVzLWNvbG9yLXByZXNzZWQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgIC0tZGVlcy1jb2xvci1yb3ctaG92ZXI6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgRm9jdXMgUmluZwogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWZvY3VzLXJpbmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC40KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgVG9vbHRpcCAoaW52ZXJ0ZWQgY29udHJhc3QpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdG9vbHRpcC1iZzogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgLS1kZWVzLWNvbG9yLXRvb2x0aXAtZmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIExpbmsKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1saW5rOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAtLWRlZXMtY29sb3ItbGluay1ob3ZlcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjOTNiYmZkIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQ29kZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmxvY2stYmc6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFNlbGVjdGlvbgogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXNlbGVjdGlvbjogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBTY3JvbGxiYXIKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTcGFjaW5nIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc3BhY2luZy14czogNHB4OwogICAgLS1kZWVzLXNwYWNpbmctc206IDhweDsKICAgIC0tZGVlcy1zcGFjaW5nLW1kOiAxMnB4OwogICAgLS1kZWVzLXNwYWNpbmctbGc6IDE2cHg7CiAgICAtLWRlZXMtc3BhY2luZy14bDogMjRweDsKICAgIC0tZGVlcy1zcGFjaW5nLTJ4bDogMzJweDsKICAgIC0tZGVlcy1zcGFjaW5nLTN4bDogNDhweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBCb3JkZXIgUmFkaXVzIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtcmFkaXVzLXhzOiAycHg7CiAgICAtLWRlZXMtcmFkaXVzLXNtOiA0cHg7CiAgICAtLWRlZXMtcmFkaXVzLW1kOiA2cHg7CiAgICAtLWRlZXMtcmFkaXVzLWxnOiA4cHg7CiAgICAtLWRlZXMtcmFkaXVzLXhsOiAxMnB4OwogICAgLS1kZWVzLXJhZGl1cy1mdWxsOiA5OTlweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTaGFkb3cgRWxldmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgIC0tZGVlcy1zaGFkb3ctc206IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAtLWRlZXMtc2hhZG93LW1kOiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgIC0tZGVlcy1zaGFkb3ctbGc6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBUcmFuc2l0aW9uIER1cmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0OiAwLjFzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDogMC4xNXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93OiAwLjJzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyOiAwLjNzOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbnRyb2wgSGVpZ2h0IFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtc206IDMycHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQ6IDM2cHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbGc6IDQwcHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQteGw6IDQ4cHg7CiAgfQpgfSk7dmFyIHBvPWcoKCk9PntpbygpO1NuKCl9KTt2YXIgR2t0LEtrdD1nKCgpPT57cGUoKTtwbygpO29yKCk7R2t0PWkoKCk9PndgCjxzdHlsZT4KICAud2l0aE1hcmdpbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMjBweDsKICB9CiAgLmRlbW8tY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAyMHB4OwogICAgcGFkZGluZzogMjBweDsKICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogIH0KICAuZGVtby1hcmVhIHsKICAgIHBhZGRpbmc6IDQwcHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IGNvbnRleHQtbWVudTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICB9CiAgLmRlbW8tYXJlYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpOwogIH0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkJhc2ljIENvbnRleHQgTWVudSB3aXRoIE5lc3RlZCBTdWJtZW51cyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PntrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRmlsZSIsaWNvbk5hbWU6ImZpbGVUZXh0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyIsaWNvbk5hbWU6ImZpbGVQbHVzIixzaG9ydGN1dDoiQ21kK04iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4iLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIixpY29uTmFtZToic2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHBvcnQgYXMgUERGIixpY29uTmFtZToiZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHBvcnQgUERGIiksImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IGFzIEhUTUwiLGljb25OYW1lOiJjb2RlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IEhUTUwiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJlZGl0MyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsaWNvbk5hbWU6InNlYXJjaCIsc2hvcnRjdXQ6IkNtZCtGIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLGljb25OYW1lOiJyZXBlYXQiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiWm9vbSBJbiIsaWNvbk5hbWU6Inpvb21JbiIsc2hvcnRjdXQ6IkNtZCsrIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBpbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gT3V0IixpY29uTmFtZToiem9vbU91dCIsc2hvcnRjdXQ6IkNtZCstIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBvdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCBab29tIixpY29uTmFtZToibWF4aW1pemUyIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXNldCB6b29tIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZ1bGwgU2NyZWVuIixpY29uTmFtZToibWF4aW1pemUiLHNob3J0Y3V0OiJGMTEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsIHNjcmVlbiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se25hbWU6IkhlbHAiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRhdGlvbiIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0IiksImFjdGlvbiIpfV19XSl9fT4KICAgICAgPGgzPlJpZ2h0LWNsaWNrIGFueXdoZXJlIGluIHRoaXMgYXJlYTwvaDM+CiAgICAgIDxwPkEgY29udGV4dCBtZW51IHdpdGggbmVzdGVkIHN1Ym1lbnVzIHdpbGwgYXBwZWFyPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkNvbXBvbmVudC1TcGVjaWZpYyBDb250ZXh0IE1lbnUiPgogICAgPGRlZXMtYnV0dG9uIHN0eWxlPSJtYXJnaW46IDIwcHg7IiBAY29udGV4dG1lbnU9JHtzPT57a2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMocyxbe25hbWU6IkJ1dHRvbiBBY3Rpb25zIixpY29uTmFtZToibW91c2VQb2ludGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkNsaWNrIixpY29uTmFtZToibW91c2UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDbGljayBhY3Rpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJEb3VibGUgQ2xpY2siLGljb25OYW1lOiJ6YXAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb3VibGUgY2xpY2siKSwiYWN0aW9uIil9LHtuYW1lOiJMb25nIFByZXNzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb25nIHByZXNzIiksImFjdGlvbiIpfV19LHtuYW1lOiJCdXR0b24gU3RhdGUiLGljb25OYW1lOiJ0b2dnbGVMZWZ0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkVuYWJsZSIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRW5hYmxlIiksImFjdGlvbiIpfSx7bmFtZToiRGlzYWJsZSIsaWNvbk5hbWU6InhDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEaXNhYmxlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNob3ciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG93IiksImFjdGlvbiIpfSx7bmFtZToiSGlkZSIsaWNvbk5hbWU6ImV5ZU9mZiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhpZGUiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEaXNhYmxlZCBBY3Rpb24iLGljb25OYW1lOiJiYW4iLGRpc2FibGVkOiEwLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUaGlzIHNob3VsZCBub3QgcnVuIiksImFjdGlvbiIpfSx7bmFtZToiUHJvcGVydGllcyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQnV0dG9uIHByb3BlcnRpZXMiKSwiYWN0aW9uIil9XSl9fT5SaWdodC1jbGljayBvbiB0aGlzIGJ1dHRvbjwvZGVlcy1idXR0b24+CiAgPC9kZWVzLXBhbmVsPgoKICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJBZHZhbmNlZCBDb250ZXh0IE1lbnUgRXhhbXBsZSI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PntrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRm9ybWF0IixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJCb2xkIixpY29uTmFtZToiYm9sZCIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQm9sZCIpLCJhY3Rpb24iKX0se25hbWU6Ikl0YWxpYyIsaWNvbk5hbWU6Iml0YWxpYyIsc2hvcnRjdXQ6IkNtZCtJIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSXRhbGljIiksImFjdGlvbiIpfSx7bmFtZToiVW5kZXJsaW5lIixpY29uTmFtZToidW5kZXJsaW5lIixzaG9ydGN1dDoiQ21kK1UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRlcmxpbmUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRm9udCBTaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZvbnQgc2l6ZSBtZW51IiksImFjdGlvbiIpfSx7bmFtZToiRm9udCBDb2xvciIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IGNvbG9yIG1lbnUiKSwiYWN0aW9uIil9XX0se25hbWU6IlRyYW5zZm9ybSIsaWNvbk5hbWU6InNodWZmbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG8gVXBwZXJjYXNlIixpY29uTmFtZToiYXJyb3dVcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVwcGVyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IlRvIExvd2VyY2FzZSIsaWNvbk5hbWU6ImFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkxvd2VyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IkNhcGl0YWxpemUiLGljb25OYW1lOiJ0eXBlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ2FwaXRhbGl6ZSIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRlbGV0ZSIpLCJhY3Rpb24iKX1dKX19PgogICAgICA8aDM+QWR2YW5jZWQgTmVzdGVkIE1lbnUgRXhhbXBsZTwvaDM+CiAgICAgIDxwPlRoaXMgc2hvd3MgZGVlcGx5IG5lc3RlZCBzdWJtZW51cyBhbmQgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnM8L3A+CiAgICA8L2Rpdj4KICA8L2RlZXMtcGFuZWw+CiAgCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iU3RhdGljIENvbnRleHQgTWVudSAoQWx3YXlzIFZpc2libGUpIj4KICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgIGNsYXNzPSJ3aXRoTWFyZ2luIgogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyUGx1cyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtOIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IHByb2plY3QiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIFByb2plY3QiLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK1NoaWZ0K08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHByb2plY3QiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiUHJvamVjdCBBbHBoYSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gQWxwaGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEJldGEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEJldGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEdhbW1hIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBHYW1tYSIpLCJhY3Rpb24iKX1dfV19LHtuYW1lOiJUb29scyIsaWNvbk5hbWU6InRvb2wiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVGVybWluYWwiLGljb25OYW1lOiJ0ZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtUIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVGVybWluYWwiKSwiYWN0aW9uIil9LHtuYW1lOiJDb25zb2xlIixpY29uTmFtZToibW9uaXRvciIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29uc29sZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHRlbnNpb25zIixpY29uTmFtZToicGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4dGVuc2lvbnMiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6InNsaWRlcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcmVmZXJlbmNlcyIpLCJhY3Rpb24iKX1dfQogICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICA8L2RlZXMtcGFuZWw+CjwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEZrLEYwLGhvLEYxPWcoKCk9PntwZSgpO3puKCk7Rms9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEYwPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxobz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd2luZG93bGF5ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0xheWVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bTCh7dHlwZTpCb29sZWFufSldLEZrKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3B0aW9ucyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm9wdGlvbnMsImdldCIpLHNldDppKCh6LE4pPT57ei5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxGayh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2tkcm9wWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJiYWNrZHJvcFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJhY2tkcm9wWkluZGV4LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYmFja2Ryb3BaSW5kZXg9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLEZrKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29udGVudFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRlbnRaSW5kZXgsImdldCIpLHNldDppKCh6LE4pPT57ei5jb250ZW50WkluZGV4PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxGayh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InZpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksRmsobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdpbmRvd2xheWVyPjwvZGVlcy13aW5kb3dsYXllcj5gLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coTSl7bGV0IHo9bHQuRG9tVG9vbHMuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCksTj1uZXcgeTtyZXR1cm4gTi5vcHRpb25zPXsuLi5OLm9wdGlvbnMsLi4uTX0sZG9jdW1lbnQuYm9keS5hcHBlbmQoTiksYXdhaXQgei5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLE4uc2hvdygpLE59I2U9RjAodGhpcyxvLHtibHVyOiExfSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhNKXt0aGlzLiNlPU19I3Q9KEYwKHRoaXMsbCksRjAodGhpcyxkLDFlMykpO2dldCBiYWNrZHJvcFpJbmRleCgpe3JldHVybiB0aGlzLiN0fXNldCBiYWNrZHJvcFpJbmRleChNKXt0aGlzLiN0PU19I2E9KEYwKHRoaXMsdSksRjAodGhpcyxiLDEwMDEpKTtnZXQgY29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBjb250ZW50WkluZGV4KE0pe3RoaXMuI2E9TX0jcz0oRjAodGhpcyx2KSxGMCh0aGlzLG0sITEpKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCB2aXNpYmxlKE0pe3RoaXMuI3M9TX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksRjAodGhpcyxmKSxsdC5lbGVtZW50QmFzaWMuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtsdC5lbGVtZW50QmFzaWMuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgLndpbmRvd092ZXJsYXkgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxKSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDBweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmJhY2tkcm9wWkluZGV4fTsKICAgICAgICB9CiAgICAgICAgLnNsb3RDb250ZW50IHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmNvbnRlbnRaSW5kZXh9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zbG90Q29udGVudCA+ICogewogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aXNpYmxlIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygwLjkpICR7dGhpcy5vcHRpb25zLmJsdXI/ImJsdXIoMnB4KSI6IiJ9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5kaXNwYXRjaENsaWNrZWR9IGNsYXNzPSJ3aW5kb3dPdmVybGF5ICR7dGhpcy52aXNpYmxlPyJ2aXNpYmxlIjpudWxsfSI+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7c2V0VGltZW91dCgoKT0+e3RoaXMudmlzaWJsZT0hMH0sMTAwKX1kaXNwYXRjaENsaWNrZWQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIikpfXRvZ2dsZVZpc2liaWxpdHkoKXt0aGlzLnZpc2libGU9IXRoaXMudmlzaWJsZX1nZXRDb250ZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY29udGVudFpJbmRleH1hc3luYyBzaG93KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5iYWNrZHJvcFpJbmRleD14YS5nZXROZXh0WkluZGV4KCksdGhpcy5jb250ZW50WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMuYmFja2Ryb3BaSW5kZXgpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITB9YXN5bmMgaGlkZSgpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMX1hc3luYyBkZXN0cm95KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7YXdhaXQgdGhpcy5oaWRlKCksYXdhaXQgTS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCkseGEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnJlbW92ZSgpfXN0YXRpY3tGMChhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTtmdW5jdGlvbiBINWUocyxlKXsoZT09bnVsbHx8ZT5zLmxlbmd0aCkmJihlPXMubGVuZ3RoKTtmb3IodmFyIHQ9MCxhPUFycmF5KGUpO3Q8ZTt0KyspYVt0XT1zW3RdO3JldHVybiBhfWZ1bmN0aW9uIE9xYShzKXtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBzfWZ1bmN0aW9uIEZxYShzKXtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBINWUocyl9ZnVuY3Rpb24gQnFhKHMsZSl7aWYoIShzIGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gWWt0KHMsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBhPWVbdF07YS5lbnVtZXJhYmxlPWEuZW51bWVyYWJsZXx8ITEsYS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGEmJihhLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxYa3QoYS5rZXkpLGEpfX1mdW5jdGlvbiBIcWEocyxlLHQpe3JldHVybiBlJiZZa3Qocy5wcm90b3R5cGUsZSksdCYmWWt0KHMsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksc31mdW5jdGlvbiBBcmUocyxlKXt2YXIgdD10eXBlb2YgU3ltYm9sPCJ1IiYmc1tTeW1ib2wuaXRlcmF0b3JdfHxzWyJAQGl0ZXJhdG9yIl07aWYoIXQpe2lmKEFycmF5LmlzQXJyYXkocyl8fCh0PXE1ZShzKSl8fGUmJnMmJnR5cGVvZiBzLmxlbmd0aD09Im51bWJlciIpe3QmJihzPXQpO3ZhciBhPTAscj1pKGZ1bmN0aW9uKCl7fSwiRiIpO3JldHVybntzOnIsbjppKGZ1bmN0aW9uKCl7cmV0dXJuIGE+PXMubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpzW2ErK119fSwibiIpLGU6aShmdW5jdGlvbihwKXt0aHJvdyBwfSwiZSIpLGY6cn19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIG4sbz0hMCxsPSExO3JldHVybntzOmkoZnVuY3Rpb24oKXt0PXQuY2FsbChzKX0sInMiKSxuOmkoZnVuY3Rpb24oKXt2YXIgcD10Lm5leHQoKTtyZXR1cm4gbz1wLmRvbmUscH0sIm4iKSxlOmkoZnVuY3Rpb24ocCl7bD0hMCxuPXB9LCJlIiksZjppKGZ1bmN0aW9uKCl7dHJ5e298fHQucmV0dXJuPT1udWxsfHx0LnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyBufX0sImYiKX19ZnVuY3Rpb24gaGEocyxlLHQpe3JldHVybihlPVhrdChlKSlpbiBzP09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGUse3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpzW2VdPXQsc31mdW5jdGlvbiBxcWEocyxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cyx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmTnJlKHMsZSl9ZnVuY3Rpb24ganFhKHMpe2lmKHR5cGVvZiBTeW1ib2w8InUiJiZzW1N5bWJvbC5pdGVyYXRvcl0hPW51bGx8fHNbIkBAaXRlcmF0b3IiXSE9bnVsbClyZXR1cm4gQXJyYXkuZnJvbShzKX1mdW5jdGlvbiBWcWEocyxlKXt2YXIgdD1zPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDwidSImJnNbU3ltYm9sLml0ZXJhdG9yXXx8c1siQEBpdGVyYXRvciJdO2lmKHQhPW51bGwpe3ZhciBhLHIsbixvLGw9W10scD0hMCxkPSExO3RyeXtpZihuPSh0PXQuY2FsbChzKSkubmV4dCxlPT09MCl7aWYoT2JqZWN0KHQpIT09dClyZXR1cm47cD0hMX1lbHNlIGZvcig7IShwPShhPW4uY2FsbCh0KSkuZG9uZSkmJihsLnB1c2goYS52YWx1ZSksbC5sZW5ndGghPT1lKTtwPSEwKTt9Y2F0Y2godSl7ZD0hMCxyPXV9ZmluYWxseXt0cnl7aWYoIXAmJnQucmV0dXJuIT1udWxsJiYobz10LnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGQpdGhyb3cgcn19cmV0dXJuIGx9fWZ1bmN0aW9uIFVxYSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBXcWEoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIFprdChzLGUpe3ZhciB0PU9iamVjdC5rZXlzKHMpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7ZSYmKGE9YS5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxyKS5lbnVtZXJhYmxlfSkpLHQucHVzaC5hcHBseSh0LGEpfXJldHVybiB0fWZ1bmN0aW9uIGR0KHMpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciB0PWFyZ3VtZW50c1tlXSE9bnVsbD9hcmd1bWVudHNbZV06e307ZSUyP1prdChPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24oYSl7aGEocyxhLHRbYV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6Wmt0KE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihhKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocyxhLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxhKSl9KX1yZXR1cm4gc31mdW5jdGlvbiBOcmUocyxlKXtyZXR1cm4gTnJlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsYSl7cmV0dXJuIHQuX19wcm90b19fPWEsdH0sTnJlKHMsZSl9ZnVuY3Rpb24gUnJlKHMsZSl7cmV0dXJuIE9xYShzKXx8VnFhKHMsZSl8fHE1ZShzLGUpfHxVcWEoKX1mdW5jdGlvbiBCMShzKXtyZXR1cm4gRnFhKHMpfHxqcWEocyl8fHE1ZShzKXx8V3FhKCl9ZnVuY3Rpb24gR3FhKHMsZSl7aWYodHlwZW9mIHMhPSJvYmplY3QifHwhcylyZXR1cm4gczt2YXIgdD1zW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodCE9PXZvaWQgMCl7dmFyIGE9dC5jYWxsKHMsZXx8ImRlZmF1bHQiKTtpZih0eXBlb2YgYSE9Im9iamVjdCIpcmV0dXJuIGE7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oZT09PSJzdHJpbmciP1N0cmluZzpOdW1iZXIpKHMpfWZ1bmN0aW9uIFhrdChzKXt2YXIgZT1HcWEocywic3RyaW5nIik7cmV0dXJuIHR5cGVvZiBlPT0ic3ltYm9sIj9lOmUrIiJ9ZnVuY3Rpb24gT3JlKHMpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIE9yZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sT3JlKHMpfWZ1bmN0aW9uIHE1ZShzLGUpe2lmKHMpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIilyZXR1cm4gSDVlKHMsZSk7dmFyIHQ9e30udG9TdHJpbmcuY2FsbChzKS5zbGljZSg4LC0xKTtyZXR1cm4gdD09PSJPYmplY3QiJiZzLmNvbnN0cnVjdG9yJiYodD1zLmNvbnN0cnVjdG9yLm5hbWUpLHQ9PT0iTWFwInx8dD09PSJTZXQiP0FycmF5LmZyb20ocyk6dD09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KT9INWUocyxlKTp2b2lkIDB9fWZ1bmN0aW9uIGFuKCl7YW49aShmdW5jdGlvbihyLG4pe3JldHVybiBuZXcgdChyLHZvaWQgMCxuKX0sIl93cmFwUmVnRXhwIik7dmFyIHM9UmVnRXhwLnByb3RvdHlwZSxlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHQocixuLG8pe3ZhciBsPVJlZ0V4cChyLG4pO3JldHVybiBlLnNldChsLG98fGUuZ2V0KHIpKSxOcmUobCx0LnByb3RvdHlwZSl9aSh0LCJCYWJlbFJlZ0V4cCIpO2Z1bmN0aW9uIGEocixuKXt2YXIgbz1lLmdldChuKTtyZXR1cm4gT2JqZWN0LmtleXMobykucmVkdWNlKGZ1bmN0aW9uKGwscCl7dmFyIGQ9b1twXTtpZih0eXBlb2YgZD09Im51bWJlciIpbFtwXT1yW2RdO2Vsc2V7Zm9yKHZhciB1PTA7cltkW3VdXT09PXZvaWQgMCYmdSsxPGQubGVuZ3RoOyl1Kys7bFtwXT1yW2RbdV1dfXJldHVybiBsfSxPYmplY3QuY3JlYXRlKG51bGwpKX1yZXR1cm4gaShhLCJidWlsZEdyb3VwcyIpLHFxYSh0LFJlZ0V4cCksdC5wcm90b3R5cGUuZXhlYz1mdW5jdGlvbihyKXt2YXIgbj1zLmV4ZWMuY2FsbCh0aGlzLHIpO2lmKG4pe24uZ3JvdXBzPWEobix0aGlzKTt2YXIgbz1uLmluZGljZXM7byYmKG8uZ3JvdXBzPWEobyx0aGlzKSl9cmV0dXJuIG59LHQucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXT1mdW5jdGlvbihyLG4pe2lmKHR5cGVvZiBuPT0ic3RyaW5nIil7dmFyIG89ZS5nZXQodGhpcyk7cmV0dXJuIHNbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxyLG4ucmVwbGFjZSgvXCQ8KFtePl0rKSg+fCQpL2csZnVuY3Rpb24ocCxkLHUpe2lmKHU9PT0iIilyZXR1cm4gcDt2YXIgYz1vW2RdO3JldHVybiBBcnJheS5pc0FycmF5KGMpPyIkIitjLmpvaW4oIiQiKTp0eXBlb2YgYz09Im51bWJlciI/IiQiK2M6IiJ9KSl9aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpe3ZhciBsPXRoaXM7cmV0dXJuIHNbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxyLGZ1bmN0aW9uKCl7dmFyIHA9YXJndW1lbnRzO3JldHVybiB0eXBlb2YgcFtwLmxlbmd0aC0xXSE9Im9iamVjdCImJihwPVtdLnNsaWNlLmNhbGwocCkpLnB1c2goYShwLGwpKSxuLmFwcGx5KHRoaXMscCl9KX1yZXR1cm4gc1tTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHIsbil9LGFuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBIayhzKXtyZXR1cm4gbmV3IFByb3h5KHMse2dldDppKGZ1bmN0aW9uKHQsYSl7cmV0dXJuIGEgaW4gdD90W2FdOnRbX29dfSwiZ2V0Iil9KX1mdW5jdGlvbiBBVmEocyl7dmFyIGU9ZGkucXVlcnlTZWxlY3Rvcigic2NyaXB0WyIrcysiXSIpO2lmKGUpcmV0dXJuIGUuZ2V0QXR0cmlidXRlKHMpfWZ1bmN0aW9uIE5WYShzKXtyZXR1cm4gcz09PSIiPyEwOnM9PT0iZmFsc2UiPyExOnM9PT0idHJ1ZSI/ITA6c31mdW5jdGlvbiBSVmEocyl7cmV0dXJuIGprLnB1c2gocyksZnVuY3Rpb24oKXtqay5zcGxpY2UoamsuaW5kZXhPZihzKSwxKX19ZnVuY3Rpb24gT1ZhKHMpe2lmKCEoIXN8fCFCMCkpe3ZhciBlPWRpLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLGUuaW5uZXJIVE1MPXM7Zm9yKHZhciB0PWRpLmhlYWQuY2hpbGROb2RlcyxhPW51bGwscj10Lmxlbmd0aC0xO3I+LTE7ci0tKXt2YXIgbj10W3JdLG89KG4udGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk7WyJTVFlMRSIsIkxJTksiXS5pbmRleE9mKG8pPi0xJiYoYT1uKX1yZXR1cm4gZGkuaGVhZC5pbnNlcnRCZWZvcmUoZSxhKSxzfX1mdW5jdGlvbiBIU3QoKXtmb3IodmFyIHM9MTIsZT0iIjtzLS0gPjA7KWUrPUZWYVtNYXRoLnJhbmRvbSgpKjYyfDBdO3JldHVybiBlfWZ1bmN0aW9uIGtiKHMpe2Zvcih2YXIgZT1bXSx0PShzfHxbXSkubGVuZ3RoPj4+MDt0LS07KWVbdF09c1t0XTtyZXR1cm4gZX1mdW5jdGlvbiBhOGUocyl7cmV0dXJuIHMuY2xhc3NMaXN0P2tiKHMuY2xhc3NMaXN0KToocy5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pfWZ1bmN0aW9uIHFTdChzKXtyZXR1cm4iIi5jb25jYXQocykucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpfWZ1bmN0aW9uIEJWYShzKXtyZXR1cm4gT2JqZWN0LmtleXMoc3x8e30pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlKyIiLmNvbmNhdCh0LCc9IicpLmNvbmNhdChxU3Qoc1t0XSksJyIgJyl9LCIiKS50cmltKCl9ZnVuY3Rpb24gSHJlKHMpe3JldHVybiBPYmplY3Qua2V5cyhzfHx7fSkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUrIiIuY29uY2F0KHQsIjogIikuY29uY2F0KHNbdF0udHJpbSgpLCI7Iil9LCIiKX1mdW5jdGlvbiBzOGUocyl7cmV0dXJuIHMuc2l6ZSE9PU1kLnNpemV8fHMueCE9PU1kLnh8fHMueSE9PU1kLnl8fHMucm90YXRlIT09TWQucm90YXRlfHxzLmZsaXBYfHxzLmZsaXBZfWZ1bmN0aW9uIEhWYShzKXt2YXIgZT1zLnRyYW5zZm9ybSx0PXMuY29udGFpbmVyV2lkdGgsYT1zLmljb25XaWR0aCxyPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdCh0LzIsIiAyNTYpIil9LG49InRyYW5zbGF0ZSgiLmNvbmNhdChlLngqMzIsIiwgIikuY29uY2F0KGUueSozMiwiKSAiKSxvPSJzY2FsZSgiLmNvbmNhdChlLnNpemUvMTYqKGUuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWT8tMToxKSwiKSAiKSxsPSJyb3RhdGUoIi5jb25jYXQoZS5yb3RhdGUsIiAwIDApIikscD17dHJhbnNmb3JtOiIiLmNvbmNhdChuLCIgIikuY29uY2F0KG8sIiAiKS5jb25jYXQobCl9LGQ9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGEvMiotMSwiIC0yNTYpIil9O3JldHVybntvdXRlcjpyLGlubmVyOnAscGF0aDpkfX1mdW5jdGlvbiBxVmEocyl7dmFyIGU9cy50cmFuc2Zvcm0sdD1zLndpZHRoLGE9dD09PXZvaWQgMD9HNWU6dCxyPXMuaGVpZ2h0LG49cj09PXZvaWQgMD9HNWU6cixvPXMuc3RhcnRDZW50ZXJlZCxsPW89PT12b2lkIDA/ITE6byxwPSIiO3JldHVybiBsJiZyU3Q/cCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvbGgtYS8yLCJlbSwgIikuY29uY2F0KGUueS9saC1uLzIsImVtKSAiKTpsP3ArPSJ0cmFuc2xhdGUoY2FsYygtNTAlICsgIi5jb25jYXQoZS54L2xoLCJlbSksIGNhbGMoLTUwJSArICIpLmNvbmNhdChlLnkvbGgsImVtKSkgIik6cCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvbGgsImVtLCAiKS5jb25jYXQoZS55L2xoLCJlbSkgIikscCs9InNjYWxlKCIuY29uY2F0KGUuc2l6ZS9saCooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplL2xoKihlLmZsaXBZPy0xOjEpLCIpICIpLHArPSJyb3RhdGUoIi5jb25jYXQoZS5yb3RhdGUsImRlZykgIikscH1mdW5jdGlvbiBqU3QoKXt2YXIgcz1MU3QsZT1FU3QsdD1XdC5jc3NQcmVmaXgsYT1XdC5yZXBsYWNlbWVudENsYXNzLHI9alZhO2lmKHQhPT1zfHxhIT09ZSl7dmFyIG49bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQocywiXFwtIiksImciKSxvPW5ldyBSZWdFeHAoIlxcLS0iLmNvbmNhdChzLCJcXC0iKSwiZyIpLGw9bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQoZSksImciKTtyPXIucmVwbGFjZShuLCIuIi5jb25jYXQodCwiLSIpKS5yZXBsYWNlKG8sIi0tIi5jb25jYXQodCwiLSIpKS5yZXBsYWNlKGwsIi4iLmNvbmNhdChhKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gaThlKCl7V3QuYXV0b0FkZENzcyYmIVZTdCYmKE9WYShqU3QoKSksVlN0PSEwKX1mdW5jdGlvbiBVVmEocyl7QjAmJihxcmU/c2V0VGltZW91dChzLDApOlVTdC5wdXNoKHMpKX1mdW5jdGlvbiBWayhzKXt2YXIgZT1zLnRhZyx0PXMuYXR0cmlidXRlcyxhPXQ9PT12b2lkIDA/e306dCxyPXMuY2hpbGRyZW4sbj1yPT09dm9pZCAwP1tdOnI7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9xU3Qocyk6IjwiLmNvbmNhdChlLCIgIikuY29uY2F0KEJWYShhKSwiPiIpLmNvbmNhdChuLm1hcChWaykuam9pbigiIiksIjwvIikuY29uY2F0KGUsIj4iKX1mdW5jdGlvbiBHU3QocyxlLHQpe2lmKHMmJnNbZV0mJnNbZV1bdF0pcmV0dXJue3ByZWZpeDplLGljb25OYW1lOnQsaWNvbjpzW2VdW3RdfX1mdW5jdGlvbiBLU3Qocyl7cmV0dXJuIEIxKHMpLmxlbmd0aCE9PTE/bnVsbDpzLmNvZGVQb2ludEF0KDApLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBZU3Qocyl7cmV0dXJuIE9iamVjdC5rZXlzKHMpLnJlZHVjZShmdW5jdGlvbihlLHQpe3ZhciBhPXNbdF0scj0hIWEuaWNvbjtyZXR1cm4gcj9lW2EuaWNvbk5hbWVdPWEuaWNvbjplW3RdPWEsZX0se30pfWZ1bmN0aW9uIG84ZShzLGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxhPXQuc2tpcEhvb2tzLHI9YT09PXZvaWQgMD8hMTphLG49WVN0KGUpO3R5cGVvZiBIMS5ob29rcy5hZGRQYWNrPT0iZnVuY3Rpb24iJiYhcj9IMS5ob29rcy5hZGRQYWNrKHMsWVN0KGUpKTpIMS5zdHlsZXNbc109ZHQoZHQoe30sSDEuc3R5bGVzW3NdfHx7fSksbikscz09PSJmYXMiJiZvOGUoImZhIixlKX1mdW5jdGlvbiBZVmEocyl7cmV0dXJufklWYS5pbmRleE9mKHMpfWZ1bmN0aW9uIFpWYShzLGUpe3ZhciB0PWUuc3BsaXQoIi0iKSxhPXRbMF0scj10LnNsaWNlKDEpLmpvaW4oIi0iKTtyZXR1cm4gYT09PXMmJnIhPT0iIiYmIVlWYShyKT9yOm51bGx9ZnVuY3Rpb24gYzhlKHMsZSl7cmV0dXJuKFhTdFtzXXx8e30pW2VdfWZ1bmN0aW9uIFhWYShzLGUpe3JldHVybihRU3Rbc118fHt9KVtlXX1mdW5jdGlvbiBZMyhzLGUpe3JldHVybih0X3Rbc118fHt9KVtlXX1mdW5jdGlvbiBzX3Qocyl7cmV0dXJuIEpTdFtzXXx8e3ByZWZpeDpudWxsLGljb25OYW1lOm51bGx9fWZ1bmN0aW9uIFFWYShzKXt2YXIgZT1lX3Rbc10sdD1jOGUoImZhcyIscyk7cmV0dXJuIGV8fCh0P3twcmVmaXg6ImZhcyIsaWNvbk5hbWU6dH06bnVsbCl8fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiBjaCgpe3JldHVybiBsOGV9ZnVuY3Rpb24gSlZhKHMpe3ZhciBlPV9vLHQ9WlN0LnJlZHVjZShmdW5jdGlvbihhLHIpe3JldHVybiBhW3JdPSIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQociksYX0se30pO3JldHVybiBNU3QuZm9yRWFjaChmdW5jdGlvbihhKXsocy5pbmNsdWRlcyh0W2FdKXx8cy5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiBLVmFbYV0uaW5jbHVkZXMocil9KSkmJihlPWEpfSksZX1mdW5jdGlvbiBqcmUocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHQ9ZS5mYW1pbHksYT10PT09dm9pZCAwP19vOnQscj0kVmFbYV1bc107aWYoYT09PUJrJiYhcylyZXR1cm4iZmFkIjt2YXIgbj1SU3RbYV1bc118fFJTdFthXVtyXSxvPXMgaW4gSDEuc3R5bGVzP3M6bnVsbCxsPW58fG98fG51bGw7cmV0dXJuIGx9ZnVuY3Rpb24gZVVhKHMpe3ZhciBlPVtdLHQ9bnVsbDtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciByPVpWYShXdC5jc3NQcmVmaXgsYSk7cj90PXI6YSYmZS5wdXNoKGEpfSkse2ljb25OYW1lOnQscmVzdDplfX1mdW5jdGlvbiByX3Qocyl7cmV0dXJuIHMuc29ydCgpLmZpbHRlcihmdW5jdGlvbihlLHQsYSl7cmV0dXJuIGEuaW5kZXhPZihlKT09PXR9KX1mdW5jdGlvbiBWcmUocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHQ9ZS5za2lwTG9va3VwcyxhPXQ9PT12b2lkIDA/ITE6dCxyPW51bGwsbj1yX3Qocy5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIG9fdC5pbmNsdWRlcyh2KX0pKSxvPXJfdChzLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4hb190LmluY2x1ZGVzKHYpfSkpLGw9bi5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHI9diwhblN0LmluY2x1ZGVzKHYpfSkscD1ScmUobCwxKSxkPXBbMF0sdT1kPT09dm9pZCAwP251bGw6ZCxjPUpWYShuKSxiPWR0KGR0KHt9LGVVYShvKSkse30se3ByZWZpeDpqcmUodSx7ZmFtaWx5OmN9KX0pO3JldHVybiBkdChkdChkdCh7fSxiKSxpVWEoe3ZhbHVlczpzLGZhbWlseTpjLHN0eWxlczpVayxjb25maWc6V3QsY2Fub25pY2FsOmIsZ2l2ZW5QcmVmaXg6cn0pKSx0VWEoYSxyLGIpKX1mdW5jdGlvbiB0VWEocyxlLHQpe3ZhciBhPXQucHJlZml4LHI9dC5pY29uTmFtZTtpZihzfHwhYXx8IXIpcmV0dXJue3ByZWZpeDphLGljb25OYW1lOnJ9O3ZhciBuPWU9PT0iZmEiP3NfdChyKTp7fSxvPVkzKGEscik7cmV0dXJuIHI9bi5pY29uTmFtZXx8b3x8cixhPW4ucHJlZml4fHxhLGE9PT0iZmFyIiYmIVVrLmZhciYmVWsuZmFzJiYhV3QuYXV0b0ZldGNoU3ZnJiYoYT0iZmFzIikse3ByZWZpeDphLGljb25OYW1lOnJ9fWZ1bmN0aW9uIGlVYShzKXt2YXIgZT1zLnZhbHVlcyx0PXMuZmFtaWx5LGE9cy5jYW5vbmljYWwscj1zLmdpdmVuUHJlZml4LG49cj09PXZvaWQgMD8iIjpyLG89cy5zdHlsZXMsbD1vPT09dm9pZCAwP3t9Om8scD1zLmNvbmZpZyxkPXA9PT12b2lkIDA/e306cCx1PXQ9PT1CayxjPWUuaW5jbHVkZXMoImZhLWR1b3RvbmUiKXx8ZS5pbmNsdWRlcygiZmFkIiksYj1kLmZhbWlseURlZmF1bHQ9PT0iZHVvdG9uZSIsdj1hLnByZWZpeD09PSJmYWQifHxhLnByZWZpeD09PSJmYS1kdW90b25lIjtpZighdSYmKGN8fGJ8fHYpJiYoYS5wcmVmaXg9ImZhZCIpLChlLmluY2x1ZGVzKCJmYS1icmFuZHMiKXx8ZS5pbmNsdWRlcygiZmFiIikpJiYoYS5wcmVmaXg9ImZhYiIpLCFhLnByZWZpeCYmYVVhLmluY2x1ZGVzKHQpKXt2YXIgeD1PYmplY3Qua2V5cyhsKS5maW5kKGZ1bmN0aW9uKGYpe3JldHVybiBzVWEuaW5jbHVkZXMoZil9KTtpZih4fHxkLmF1dG9GZXRjaFN2Zyl7dmFyIG09eGphLmdldCh0KS5kZWZhdWx0U2hvcnRQcmVmaXhJZDthLnByZWZpeD1tLGEuaWNvbk5hbWU9WTMoYS5wcmVmaXgsYS5pY29uTmFtZSl8fGEuaWNvbk5hbWV9fXJldHVybihhLnByZWZpeD09PSJmYSJ8fG49PT0iZmEiKSYmKGEucHJlZml4PWNoKCl8fCJmYXMiKSxhfWZ1bmN0aW9uIG5VYShzLGUpe3ZhciB0PWUubWl4b3V0c1RvO3JldHVybiBuX3Q9cyxTYj17fSxPYmplY3Qua2V5cyhfYikuZm9yRWFjaChmdW5jdGlvbihhKXtvVWEuaW5kZXhPZihhKT09PS0xJiZkZWxldGUgX2JbYV19KSxuX3QuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgcj1hLm1peG91dD9hLm1peG91dCgpOnt9O2lmKE9iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24obyl7dHlwZW9mIHJbb109PSJmdW5jdGlvbiImJih0W29dPXJbb10pLE9yZShyW29dKT09PSJvYmplY3QiJiZPYmplY3Qua2V5cyhyW29dKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3Rbb118fCh0W29dPXt9KSx0W29dW2xdPXJbb11bbF19KX0pLGEuaG9va3Mpe3ZhciBuPWEuaG9va3MoKTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe1NiW29dfHwoU2Jbb109W10pLFNiW29dLnB1c2gobltvXSl9KX1hLnByb3ZpZGVzJiZhLnByb3ZpZGVzKF9iKX0pLHR9ZnVuY3Rpb24gZDhlKHMsZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkodD4yP3QtMjowKSxyPTI7cjx0O3IrKylhW3ItMl09YXJndW1lbnRzW3JdO3ZhciBuPVNiW3NdfHxbXTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe2U9by5hcHBseShudWxsLFtlXS5jb25jYXQoYSkpfSksZX1mdW5jdGlvbiBaMyhzKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlPjE/ZS0xOjApLGE9MTthPGU7YSsrKXRbYS0xXT1hcmd1bWVudHNbYV07dmFyIHI9U2Jbc118fFtdO3IuZm9yRWFjaChmdW5jdGlvbihuKXtuLmFwcGx5KG51bGwsdCl9KX1mdW5jdGlvbiBkaCgpe3ZhciBzPWFyZ3VtZW50c1swXSxlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gX2Jbc10/X2Jbc10uYXBwbHkobnVsbCxlKTp2b2lkIDB9ZnVuY3Rpb24gdThlKHMpe3MucHJlZml4PT09ImZhIiYmKHMucHJlZml4PSJmYXMiKTt2YXIgZT1zLmljb25OYW1lLHQ9cy5wcmVmaXh8fGNoKCk7aWYoZSlyZXR1cm4gZT1ZMyh0LGUpfHxlLEdTdChsX3QuZGVmaW5pdGlvbnMsdCxlKXx8R1N0KEgxLnN0eWxlcyx0LGUpfWZ1bmN0aW9uIFVyZShzLGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocywiYWJzdHJhY3QiLHtnZXQ6ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJodG1sIix7Z2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gcy5hYnN0cmFjdC5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIFZrKGEpfSl9LCJnZXQiKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJub2RlIix7Z2V0OmkoZnVuY3Rpb24oKXtpZihCMCl7dmFyIGE9ZGkuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEuaW5uZXJIVE1MPXMuaHRtbCxhLmNoaWxkcmVufX0sImdldCIpfSksc31mdW5jdGlvbiBwVWEocyl7dmFyIGU9cy5jaGlsZHJlbix0PXMubWFpbixhPXMubWFzayxyPXMuYXR0cmlidXRlcyxuPXMuc3R5bGVzLG89cy50cmFuc2Zvcm07aWYoczhlKG8pJiZ0LmZvdW5kJiYhYS5mb3VuZCl7dmFyIGw9dC53aWR0aCxwPXQuaGVpZ2h0LGQ9e3g6bC9wLzIseTouNX07ci5zdHlsZT1IcmUoZHQoZHQoe30sbikse30seyJ0cmFuc2Zvcm0tb3JpZ2luIjoiIi5jb25jYXQoZC54K28ueC8xNiwiZW0gIikuY29uY2F0KGQueStvLnkvMTYsImVtIil9KSl9cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczpyLGNoaWxkcmVuOmV9XX1mdW5jdGlvbiBoVWEocyl7dmFyIGU9cy5wcmVmaXgsdD1zLmljb25OYW1lLGE9cy5jaGlsZHJlbixyPXMuYXR0cmlidXRlcyxuPXMuc3ltYm9sLG89bj09PSEwPyIiLmNvbmNhdChlLCItIikuY29uY2F0KFd0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdCh0KTpuO3JldHVyblt7dGFnOiJzdmciLGF0dHJpYnV0ZXM6e3N0eWxlOiJkaXNwbGF5OiBub25lOyJ9LGNoaWxkcmVuOlt7dGFnOiJzeW1ib2wiLGF0dHJpYnV0ZXM6ZHQoZHQoe30scikse30se2lkOm99KSxjaGlsZHJlbjphfV19XX1mdW5jdGlvbiBmVWEocyl7dmFyIGU9WyJhcmlhLWxhYmVsIiwiYXJpYS1sYWJlbGxlZGJ5IiwidGl0bGUiLCJyb2xlIl07cmV0dXJuIGUuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdCBpbiBzfSl9ZnVuY3Rpb24gcDhlKHMpe3ZhciBlPXMuaWNvbnMsdD1lLm1haW4sYT1lLm1hc2sscj1zLnByZWZpeCxuPXMuaWNvbk5hbWUsbz1zLnRyYW5zZm9ybSxsPXMuc3ltYm9sLHA9cy5tYXNrSWQsZD1zLmV4dHJhLHU9cy53YXRjaGFibGUsYz11PT09dm9pZCAwPyExOnUsYj1hLmZvdW5kP2E6dCx2PWIud2lkdGgseD1iLmhlaWdodCxtPVtXdC5yZXBsYWNlbWVudENsYXNzLG4/IiIuY29uY2F0KFd0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChuKToiIl0uZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBkLmNsYXNzZXMuaW5kZXhPZihDKT09PS0xfSkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBDIT09IiJ8fCEhQ30pLmNvbmNhdChkLmNsYXNzZXMpLmpvaW4oIiAiKSxmPXtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOmR0KGR0KHt9LGQuYXR0cmlidXRlcykse30seyJkYXRhLXByZWZpeCI6ciwiZGF0YS1pY29uIjpuLGNsYXNzOm0scm9sZTpkLmF0dHJpYnV0ZXMucm9sZXx8ImltZyIsdmlld0JveDoiMCAwICIuY29uY2F0KHYsIiAiKS5jb25jYXQoeCl9KX07IWZVYShkLmF0dHJpYnV0ZXMpJiYhZC5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdJiYoZi5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdPSJ0cnVlIiksYyYmKGYuYXR0cmlidXRlc1tLM109IiIpO3ZhciB5PWR0KGR0KHt9LGYpLHt9LHtwcmVmaXg6cixpY29uTmFtZTpuLG1haW46dCxtYXNrOmEsbWFza0lkOnAsdHJhbnNmb3JtOm8sc3ltYm9sOmwsc3R5bGVzOmR0KHt9LGQuc3R5bGVzKX0pLE09YS5mb3VuZCYmdC5mb3VuZD9kaCgiZ2VuZXJhdGVBYnN0cmFjdE1hc2siLHkpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX06ZGgoImdlbmVyYXRlQWJzdHJhY3RJY29uIix5KXx8e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319LHo9TS5jaGlsZHJlbixOPU0uYXR0cmlidXRlcztyZXR1cm4geS5jaGlsZHJlbj16LHkuYXR0cmlidXRlcz1OLGw/aFVhKHkpOnBVYSh5KX1mdW5jdGlvbiBjX3Qocyl7dmFyIGU9cy5jb250ZW50LHQ9cy53aWR0aCxhPXMuaGVpZ2h0LHI9cy50cmFuc2Zvcm0sbj1zLmV4dHJhLG89cy53YXRjaGFibGUsbD1vPT09dm9pZCAwPyExOm8scD1kdChkdCh7fSxuLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczpuLmNsYXNzZXMuam9pbigiICIpfSk7bCYmKHBbSzNdPSIiKTt2YXIgZD1kdCh7fSxuLnN0eWxlcyk7czhlKHIpJiYoZC50cmFuc2Zvcm09cVZhKHt0cmFuc2Zvcm06cixzdGFydENlbnRlcmVkOiEwLHdpZHRoOnQsaGVpZ2h0OmF9KSxkWyItd2Via2l0LXRyYW5zZm9ybSJdPWQudHJhbnNmb3JtKTt2YXIgdT1IcmUoZCk7dS5sZW5ndGg+MCYmKHAuc3R5bGU9dSk7dmFyIGM9W107cmV0dXJuIGMucHVzaCh7dGFnOiJzcGFuIixhdHRyaWJ1dGVzOnAsY2hpbGRyZW46W2VdfSksY31mdW5jdGlvbiBtVWEocyl7dmFyIGU9cy5jb250ZW50LHQ9cy5leHRyYSxhPWR0KGR0KHt9LHQuYXR0cmlidXRlcykse30se2NsYXNzOnQuY2xhc3Nlcy5qb2luKCIgIil9KSxyPUhyZSh0LnN0eWxlcyk7ci5sZW5ndGg+MCYmKGEuc3R5bGU9cik7dmFyIG49W107cmV0dXJuIG4ucHVzaCh7dGFnOiJzcGFuIixhdHRyaWJ1dGVzOmEsY2hpbGRyZW46W2VdfSksbn1mdW5jdGlvbiBmOGUocyl7dmFyIGU9c1swXSx0PXNbMV0sYT1zLnNsaWNlKDQpLHI9UnJlKGEsMSksbj1yWzBdLG89bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9vPXt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQodDhlLkdST1VQKX0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQodDhlLlNFQ09OREFSWSksZmlsbDoiY3VycmVudENvbG9yIixkOm5bMF19fSx7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntjbGFzczoiIi5jb25jYXQoV3QuY3NzUHJlZml4LCItIikuY29uY2F0KHQ4ZS5QUklNQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6blsxXX19XX06bz17dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntmaWxsOiJjdXJyZW50Q29sb3IiLGQ6bn19LHtmb3VuZDohMCx3aWR0aDplLGhlaWdodDp0LGljb246b319ZnVuY3Rpb24gYlVhKHMsZSl7IUFTdCYmIVd0LnNob3dNaXNzaW5nSWNvbnMmJnMmJmNvbnNvbGUuZXJyb3IoJ0ljb24gd2l0aCBuYW1lICInLmNvbmNhdChzLCciIGFuZCBwcmVmaXggIicpLmNvbmNhdChlLCciIGlzIG1pc3NpbmcuJykpfWZ1bmN0aW9uIG04ZShzLGUpe3ZhciB0PWU7cmV0dXJuIGU9PT0iZmEiJiZXdC5zdHlsZURlZmF1bHQhPT1udWxsJiYoZT1jaCgpKSxuZXcgUHJvbWlzZShmdW5jdGlvbihhLHIpe2lmKHQ9PT0iZmEiKXt2YXIgbj1zX3Qocyl8fHt9O3M9bi5pY29uTmFtZXx8cyxlPW4ucHJlZml4fHxlfWlmKHMmJmUmJmg4ZVtlXSYmaDhlW2VdW3NdKXt2YXIgbz1oOGVbZV1bc107cmV0dXJuIGEoZjhlKG8pKX1iVWEocyxlKSxhKGR0KGR0KHt9LGdVYSkse30se2ljb246V3Quc2hvd01pc3NpbmdJY29ucyYmcz9kaCgibWlzc2luZ0ljb25BYnN0cmFjdCIpfHx7fTp7fX0pKX0pfWZ1bmN0aW9uIHBfdChzKXt2YXIgZT1zLmdldEF0dHJpYnV0ZT9zLmdldEF0dHJpYnV0ZShLMyk6bnVsbDtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIHhVYShzKXt2YXIgZT1zLmdldEF0dHJpYnV0ZT9zLmdldEF0dHJpYnV0ZShZNWUpOm51bGwsdD1zLmdldEF0dHJpYnV0ZT9zLmdldEF0dHJpYnV0ZShaNWUpOm51bGw7cmV0dXJuIGUmJnR9ZnVuY3Rpb24geVVhKHMpe3JldHVybiBzJiZzLmNsYXNzTGlzdCYmcy5jbGFzc0xpc3QuY29udGFpbnMmJnMuY2xhc3NMaXN0LmNvbnRhaW5zKFd0LnJlcGxhY2VtZW50Q2xhc3MpfWZ1bmN0aW9uIHdVYSgpe2lmKFd0LmF1dG9SZXBsYWNlU3ZnPT09ITApcmV0dXJuIEdyZS5yZXBsYWNlO3ZhciBzPUdyZVtXdC5hdXRvUmVwbGFjZVN2Z107cmV0dXJuIHN8fEdyZS5yZXBsYWNlfWZ1bmN0aW9uIGtVYShzKXtyZXR1cm4gZGkuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIscyl9ZnVuY3Rpb24gU1VhKHMpe3JldHVybiBkaS5jcmVhdGVFbGVtZW50KHMpfWZ1bmN0aW9uIGhfdChzKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sdD1lLmNlRm4sYT10PT09dm9pZCAwP3MudGFnPT09InN2ZyI/a1VhOlNVYTp0O2lmKHR5cGVvZiBzPT0ic3RyaW5nIilyZXR1cm4gZGkuY3JlYXRlVGV4dE5vZGUocyk7dmFyIHI9YShzLnRhZyk7T2JqZWN0LmtleXMocy5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihvKXtyLnNldEF0dHJpYnV0ZShvLHMuYXR0cmlidXRlc1tvXSl9KTt2YXIgbj1zLmNoaWxkcmVufHxbXTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe3IuYXBwZW5kQ2hpbGQoaF90KG8se2NlRm46YX0pKX0pLHJ9ZnVuY3Rpb24gX1VhKHMpe3ZhciBlPSIgIi5jb25jYXQocy5vdXRlckhUTUwsIiAiKTtyZXR1cm4gZT0iIi5jb25jYXQoZSwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSAiKSxlfWZ1bmN0aW9uIGZfdChzKXtzKCl9ZnVuY3Rpb24gbV90KHMsZSl7dmFyIHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpXcmU7aWYocy5sZW5ndGg9PT0wKXQoKTtlbHNle3ZhciBhPWZfdDtXdC5tdXRhdGVBcHByb2FjaD09PUNWYSYmKGE9bmgucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxmX3QpLGEoZnVuY3Rpb24oKXt2YXIgcj13VWEoKSxuPWI4ZS5iZWdpbigibXV0YXRlIik7cy5tYXAociksbigpLHQoKX0pfX1mdW5jdGlvbiBnX3QoKXt2OGU9ITB9ZnVuY3Rpb24geDhlKCl7djhlPSExfWZ1bmN0aW9uIGJfdChzKXtpZihpU3QmJld0Lm9ic2VydmVNdXRhdGlvbnMpe3ZhciBlPXMudHJlZUNhbGxiYWNrLHQ9ZT09PXZvaWQgMD9XcmU6ZSxhPXMubm9kZUNhbGxiYWNrLHI9YT09PXZvaWQgMD9XcmU6YSxuPXMucHNldWRvRWxlbWVudHNDYWxsYmFjayxvPW49PT12b2lkIDA/V3JlOm4sbD1zLm9ic2VydmVNdXRhdGlvbnNSb290LHA9bD09PXZvaWQgMD9kaTpsO0tyZT1uZXcgaVN0KGZ1bmN0aW9uKGQpe2lmKCF2OGUpe3ZhciB1PWNoKCk7a2IoZCkuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLnR5cGU9PT0iY2hpbGRMaXN0IiYmYy5hZGRlZE5vZGVzLmxlbmd0aD4wJiYhcF90KGMuYWRkZWROb2Rlc1swXSkmJihXdC5zZWFyY2hQc2V1ZG9FbGVtZW50cyYmbyhjLnRhcmdldCksdChjLnRhcmdldCkpLGMudHlwZT09PSJhdHRyaWJ1dGVzIiYmYy50YXJnZXQucGFyZW50Tm9kZSYmV3Quc2VhcmNoUHNldWRvRWxlbWVudHMmJm8oW2MudGFyZ2V0XSwhMCksYy50eXBlPT09ImF0dHJpYnV0ZXMiJiZwX3QoYy50YXJnZXQpJiZ+UFZhLmluZGV4T2YoYy5hdHRyaWJ1dGVOYW1lKSlpZihjLmF0dHJpYnV0ZU5hbWU9PT0iY2xhc3MiJiZ4VWEoYy50YXJnZXQpKXt2YXIgYj1WcmUoYThlKGMudGFyZ2V0KSksdj1iLnByZWZpeCx4PWIuaWNvbk5hbWU7Yy50YXJnZXQuc2V0QXR0cmlidXRlKFk1ZSx2fHx1KSx4JiZjLnRhcmdldC5zZXRBdHRyaWJ1dGUoWjVlLHgpfWVsc2UgeVVhKGMudGFyZ2V0KSYmcihjLnRhcmdldCl9KX19KSxCMCYmS3JlLm9ic2VydmUocCx7Y2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSl9fWZ1bmN0aW9uIE1VYSgpe0tyZSYmS3JlLmRpc2Nvbm5lY3QoKX1mdW5jdGlvbiB6VWEocyl7dmFyIGU9cy5nZXRBdHRyaWJ1dGUoInN0eWxlIiksdD1bXTtyZXR1cm4gZSYmKHQ9ZS5zcGxpdCgiOyIpLnJlZHVjZShmdW5jdGlvbihhLHIpe3ZhciBuPXIuc3BsaXQoIjoiKSxvPW5bMF0sbD1uLnNsaWNlKDEpO3JldHVybiBvJiZsLmxlbmd0aD4wJiYoYVtvXT1sLmpvaW4oIjoiKS50cmltKCkpLGF9LHt9KSksdH1mdW5jdGlvbiBDVWEocyl7dmFyIGU9cy5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlZml4IiksdD1zLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIiksYT1zLmlubmVyVGV4dCE9PXZvaWQgMD9zLmlubmVyVGV4dC50cmltKCk6IiIscj1WcmUoYThlKHMpKTtyZXR1cm4gci5wcmVmaXh8fChyLnByZWZpeD1jaCgpKSxlJiZ0JiYoci5wcmVmaXg9ZSxyLmljb25OYW1lPXQpLHIuaWNvbk5hbWUmJnIucHJlZml4fHwoci5wcmVmaXgmJmEubGVuZ3RoPjAmJihyLmljb25OYW1lPVhWYShyLnByZWZpeCxzLmlubmVyVGV4dCl8fGM4ZShyLnByZWZpeCxLU3Qocy5pbm5lclRleHQpKSksIXIuaWNvbk5hbWUmJld0LmF1dG9GZXRjaFN2ZyYmcy5maXJzdENoaWxkJiZzLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKHIuaWNvbk5hbWU9cy5maXJzdENoaWxkLmRhdGEpKSxyfWZ1bmN0aW9uIFRVYShzKXt2YXIgZT1rYihzLmF0dHJpYnV0ZXMpLnJlZHVjZShmdW5jdGlvbih0LGEpe3JldHVybiB0Lm5hbWUhPT0iY2xhc3MiJiZ0Lm5hbWUhPT0ic3R5bGUiJiYodFthLm5hbWVdPWEudmFsdWUpLHR9LHt9KTtyZXR1cm4gZX1mdW5jdGlvbiAkVWEoKXtyZXR1cm57aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCx0cmFuc2Zvcm06TWQsc3ltYm9sOiExLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsZXh0cmE6e2NsYXNzZXM6W10sc3R5bGVzOnt9LGF0dHJpYnV0ZXM6e319fX1mdW5jdGlvbiB2X3Qocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOntzdHlsZVBhcnNlcjohMH0sdD1DVWEocyksYT10Lmljb25OYW1lLHI9dC5wcmVmaXgsbj10LnJlc3Qsbz1UVWEocyksbD1kOGUoInBhcnNlTm9kZUF0dHJpYnV0ZXMiLHt9LHMpLHA9ZS5zdHlsZVBhcnNlcj96VWEocyk6W107cmV0dXJuIGR0KHtpY29uTmFtZTphLHByZWZpeDpyLHRyYW5zZm9ybTpNZCxtYXNrOntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHJlc3Q6W119LG1hc2tJZDpudWxsLHN5bWJvbDohMSxleHRyYTp7Y2xhc3NlczpuLHN0eWxlczpwLGF0dHJpYnV0ZXM6b319LGwpfWZ1bmN0aW9uIHhfdChzKXt2YXIgZT1XdC5hdXRvUmVwbGFjZVN2Zz09PSJuZXN0Ij92X3Qocyx7c3R5bGVQYXJzZXI6ITF9KTp2X3Qocyk7cmV0dXJufmUuZXh0cmEuY2xhc3Nlcy5pbmRleE9mKE9TdCk/ZGgoImdlbmVyYXRlTGF5ZXJzVGV4dCIscyxlKTpkaCgiZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uIixzLGUpfWZ1bmN0aW9uIExVYSgpe3JldHVybltdLmNvbmNhdChCMSh6U3QpLEIxKCRTdCkpfWZ1bmN0aW9uIHlfdChzKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtpZighQjApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB0PWRpLmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QsYT1pKGZ1bmN0aW9uKGMpe3JldHVybiB0LmFkZCgiIi5jb25jYXQoUFN0LCItIikuY29uY2F0KGMpKX0sImhjbEFkZCIpLHI9aShmdW5jdGlvbihjKXtyZXR1cm4gdC5yZW1vdmUoIiIuY29uY2F0KFBTdCwiLSIpLmNvbmNhdChjKSl9LCJoY2xSZW1vdmUiKSxuPVd0LmF1dG9GZXRjaFN2Zz9MVWEoKTpuU3QuY29uY2F0KE9iamVjdC5rZXlzKERVYSkpO24uaW5jbHVkZXMoImZhIil8fG4ucHVzaCgiZmEiKTt2YXIgbz1bIi4iLmNvbmNhdChPU3QsIjpub3QoWyIpLmNvbmNhdChLMywiXSkiKV0uY29uY2F0KG4ubWFwKGZ1bmN0aW9uKHUpe3JldHVybiIuIi5jb25jYXQodSwiOm5vdChbIikuY29uY2F0KEszLCJdKSIpfSkpLmpvaW4oIiwgIik7aWYoby5sZW5ndGg9PT0wKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgbD1bXTt0cnl7bD1rYihzLnF1ZXJ5U2VsZWN0b3JBbGwobykpfWNhdGNoe31pZihsLmxlbmd0aD4wKWEoInBlbmRpbmciKSxyKCJjb21wbGV0ZSIpO2Vsc2UgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBwPWI4ZS5iZWdpbigib25UcmVlIiksZD1sLnJlZHVjZShmdW5jdGlvbih1LGMpe3RyeXt2YXIgYj14X3QoYyk7YiYmdS5wdXNoKGIpfWNhdGNoKHYpe0FTdHx8di5uYW1lPT09Ik1pc3NpbmdJY29uIiYmY29uc29sZS5lcnJvcih2KX1yZXR1cm4gdX0sW10pO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1LGMpe1Byb21pc2UuYWxsKGQpLnRoZW4oZnVuY3Rpb24oYil7bV90KGIsZnVuY3Rpb24oKXthKCJhY3RpdmUiKSxhKCJjb21wbGV0ZSIpLHIoInBlbmRpbmciKSx0eXBlb2YgZT09ImZ1bmN0aW9uIiYmZSgpLHAoKSx1KCl9KX0pLmNhdGNoKGZ1bmN0aW9uKGIpe3AoKSxjKGIpfSl9KX1mdW5jdGlvbiBFVWEocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOm51bGw7eF90KHMpLnRoZW4oZnVuY3Rpb24odCl7dCYmbV90KFt0XSxlKX0pfWZ1bmN0aW9uIFBVYShzKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9KGV8fHt9KS5pY29uP2U6dThlKGV8fHt9KSxyPXQubWFzaztyZXR1cm4gciYmKHI9KHJ8fHt9KS5pY29uP3I6dThlKHJ8fHt9KSkscyhhLGR0KGR0KHt9LHQpLHt9LHttYXNrOnJ9KSl9fWZ1bmN0aW9uIEJVYShzKXt2YXIgZT1zLnJlcGxhY2Uod190LCIiKTtyZXR1cm4gS1N0KEIxKGUpWzBdfHwiIil9ZnVuY3Rpb24gSFVhKHMpe3ZhciBlPXMuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mZWF0dXJlLXNldHRpbmdzIikuaW5jbHVkZXMoInNzMDEiKSx0PXMuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLGE9dC5yZXBsYWNlKHdfdCwiIikscj1hLmNvZGVQb2ludEF0KDApLG49cj49a190WzBdJiZyPD1rX3RbMV0sbz1hLmxlbmd0aD09PTI/YVswXT09PWFbMV06ITE7cmV0dXJuIG58fG98fGV9ZnVuY3Rpb24gcVVhKHMsZSl7dmFyIHQ9cy5yZXBsYWNlKC9eWyciXXxbJyJdJC9nLCIiKS50b0xvd2VyQ2FzZSgpLGE9cGFyc2VJbnQoZSkscj1pc05hTihhKT8ibm9ybWFsIjphO3JldHVybih5OGVbdF18fHt9KVtyXXx8RlVhW3RdfWZ1bmN0aW9uIF9fdChzLGUpe3ZhciB0PSIiLmNvbmNhdCh6VmEpLmNvbmNhdChlLnJlcGxhY2UoIjoiLCItIikpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLHIpe2lmKHMuZ2V0QXR0cmlidXRlKHQpIT09bnVsbClyZXR1cm4gYSgpO3ZhciBuPWtiKHMuY2hpbGRyZW4pLG89bi5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIF8uZ2V0QXR0cmlidXRlKEs1ZSk9PT1lfSlbMF0sbD1uaC5nZXRDb21wdXRlZFN0eWxlKHMsZSkscD1sLmdldFByb3BlcnR5VmFsdWUoImZvbnQtZmFtaWx5IiksZD1wLm1hdGNoKExWYSksdT1sLmdldFByb3BlcnR5VmFsdWUoImZvbnQtd2VpZ2h0IiksYz1sLmdldFByb3BlcnR5VmFsdWUoImNvbnRlbnQiKTtpZihvJiYhZClyZXR1cm4gcy5yZW1vdmVDaGlsZChvKSxhKCk7aWYoZCYmYyE9PSJub25lIiYmYyE9PSIiKXt2YXIgYj1sLmdldFByb3BlcnR5VmFsdWUoImNvbnRlbnQiKSx2PXFVYShwLHUpLHg9QlVhKGIpLG09ZFswXS5zdGFydHNXaXRoKCJGb250QXdlc29tZSIpLGY9SFVhKGwpLHk9YzhlKHYseCksTT15O2lmKG0pe3ZhciB6PVFWYSh4KTt6Lmljb25OYW1lJiZ6LnByZWZpeCYmKHk9ei5pY29uTmFtZSx2PXoucHJlZml4KX1pZih5JiYhZiYmKCFvfHxvLmdldEF0dHJpYnV0ZShZNWUpIT09dnx8by5nZXRBdHRyaWJ1dGUoWjVlKSE9PU0pKXtzLnNldEF0dHJpYnV0ZSh0LE0pLG8mJnMucmVtb3ZlQ2hpbGQobyk7dmFyIE49JFVhKCksQz1OLmV4dHJhO0MuYXR0cmlidXRlc1tLNWVdPWUsbThlKHksdikudGhlbihmdW5jdGlvbihfKXt2YXIgTz1wOGUoZHQoZHQoe30sTikse30se2ljb25zOnttYWluOl8sbWFzazppX3QoKX0scHJlZml4OnYsaWNvbk5hbWU6TSxleHRyYTpDLHdhdGNoYWJsZTohMH0pKSwkPWRpLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTtlPT09Ijo6YmVmb3JlIj9zLmluc2VydEJlZm9yZSgkLHMuZmlyc3RDaGlsZCk6cy5hcHBlbmRDaGlsZCgkKSwkLm91dGVySFRNTD1PLm1hcChmdW5jdGlvbihFKXtyZXR1cm4gVmsoRSl9KS5qb2luKGAKYCkscy5yZW1vdmVBdHRyaWJ1dGUodCksYSgpfSkuY2F0Y2gocil9ZWxzZSBhKCl9ZWxzZSBhKCl9KX1mdW5jdGlvbiBqVWEocyl7cmV0dXJuIFByb21pc2UuYWxsKFtfX3QocywiOjpiZWZvcmUiKSxfX3QocywiOjphZnRlciIpXSl9ZnVuY3Rpb24gVlVhKHMpe3JldHVybiBzLnBhcmVudE5vZGUhPT1kb2N1bWVudC5oZWFkJiYhflRWYS5pbmRleE9mKHMudGFnTmFtZS50b1VwcGVyQ2FzZSgpKSYmIXMuZ2V0QXR0cmlidXRlKEs1ZSkmJighcy5wYXJlbnROb2RlfHxzLnBhcmVudE5vZGUudGFnTmFtZSE9PSJzdmciKX1mdW5jdGlvbiBNX3Qocyl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO2lmKEIwKXt2YXIgdDtpZihlKXQ9cztlbHNlIGlmKFd0LnNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4pdD1zLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKTtlbHNle3ZhciBhPW5ldyBTZXQscj1BcmUoZG9jdW1lbnQuc3R5bGVTaGVldHMpLG47dHJ5e2ZvcihyLnMoKTshKG49ci5uKCkpLmRvbmU7KXt2YXIgbz1uLnZhbHVlO3RyeXt2YXIgbD1BcmUoby5jc3NSdWxlcykscDt0cnl7Zm9yKGwucygpOyEocD1sLm4oKSkuZG9uZTspe3ZhciBkPXAudmFsdWUsdT1XVWEoZC5zZWxlY3RvclRleHQpLGM9QXJlKHUpLGI7dHJ5e2ZvcihjLnMoKTshKGI9Yy5uKCkpLmRvbmU7KXt2YXIgdj1iLnZhbHVlO2EuYWRkKHYpfX1jYXRjaChtKXtjLmUobSl9ZmluYWxseXtjLmYoKX19fWNhdGNoKG0pe2wuZShtKX1maW5hbGx5e2wuZigpfX1jYXRjaChtKXtXdC5zZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzJiZjb25zb2xlLndhcm4oIkZvbnQgQXdlc29tZTogY2Fubm90IHBhcnNlIHN0eWxlc2hlZXQ6ICIuY29uY2F0KG8uaHJlZiwiICgiKS5jb25jYXQobS5tZXNzYWdlLGApCklmIGl0IGRlY2xhcmVzIGFueSBGb250IEF3ZXNvbWUgQ1NTIHBzZXVkby1lbGVtZW50cywgdGhleSB3aWxsIG5vdCBiZSByZW5kZXJlZCBhcyBTVkcgaWNvbnMuIEFkZCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiB0byB0aGUgPGxpbms+LCBlbmFibGUgc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiBmb3Igc2xvd2VyIGJ1dCBtb3JlIHRob3JvdWdoIERPTSBwYXJzaW5nLCBvciBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgYnkgc2V0dGluZyBzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIHRvIGZhbHNlLmApKX19fWNhdGNoKG0pe3IuZShtKX1maW5hbGx5e3IuZigpfWlmKCFhLnNpemUpcmV0dXJuO3ZhciB4PUFycmF5LmZyb20oYSkuam9pbigiLCAiKTt0cnl7dD1zLnF1ZXJ5U2VsZWN0b3JBbGwoeCl9Y2F0Y2h7fX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obSxmKXt2YXIgeT1rYih0KS5maWx0ZXIoVlVhKS5tYXAoalVhKSxNPWI4ZS5iZWdpbigic2VhcmNoUHNldWRvRWxlbWVudHMiKTtnX3QoKSxQcm9taXNlLmFsbCh5KS50aGVuKGZ1bmN0aW9uKCl7TSgpLHg4ZSgpLG0oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7TSgpLHg4ZSgpLGYoKX0pfSl9fWZ1bmN0aW9uIFRfdChzKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITA7cmV0dXJuIHMuYXR0cmlidXRlcyYmKHMuYXR0cmlidXRlcy5maWxsfHxlKSYmKHMuYXR0cmlidXRlcy5maWxsPSJibGFjayIpLHN9ZnVuY3Rpb24gWlVhKHMpe3JldHVybiBzLnRhZz09PSJnIj9zLmNoaWxkcmVuOltzXX12YXIgUWt0LGo1ZSxKa3QsZVN0LHRTdCxLcWEsYVN0LHNTdCxuaCxkaSxpU3QsRnJlLEx2aSxCMCxyU3QsVjVlLFlxYSxacWEsb1N0LFhxYSxuU3QsX28sQmssbFN0LGNTdCxkU3QsdVN0LHBTdCxoU3QsZlN0LG1TdCxnU3QsYlN0LHZTdCx4U3QseVN0LHdTdCxrU3QsU1N0LF9TdCxRcWEsSnFhLGVqYSx0amEsYWphLHNqYSxpamEscmphLG9qYSxuamEsbGphLGNqYSxkamEsdWphLHBqYSxoamEsZmphLG1qYSxnamEsTVN0LEV2aSxiamEsdmphLHhqYSx5amEselN0LENTdCx3amEsa2phLFNqYSxfamEsTWphLFB2aSx6amEsQ2phLFRqYSxUU3QsVTVlLEJyZSwkamEsRGphLExqYSxFamEsUGphLElqYSxBamEsTmphLFJqYSxPamEsRmphLEJqYSxIamEscWphLGpqYSxWamEsVWphLFdqYSxHamEsS2phLFlqYSxaamEsWGphLFFqYSxKamEsZVZhLHRWYSxhVmEsc1ZhLGlWYSxyVmEsb1ZhLG5WYSxsVmEsY1ZhLGRWYSx1VmEscFZhLGhWYSxJdmksZlZhLG1WYSxnVmEsYlZhLEF2aSx2VmEseFZhLFc1ZSx5VmEsJFN0LHdWYSxEU3Qsa1ZhLFNWYSxfVmEsTVZhLEgwLEc1ZSxMU3QsRVN0LEszLEs1ZSx6VmEsWTVlLFo1ZSxQU3QsQ1ZhLFRWYSxJU3QsQVN0LE5TdCwkVmEsWDVlLFJTdCxRNWUsSjVlLGU4ZSxOdmksRFZhLE9TdCxMVmEsRVZhLFJ2aSxQVmEsdDhlLElWYSxxayxCU3Qsd2IsV3QsamssbGgsTWQsRlZhLGpWYSxWU3QsVlZhLHEwLEgxLFVTdCxXU3QscXJlLFdWYSxyOGUsbjhlLHExLE92aSxGdmksVWssR1ZhLFpTdCxLVmEsbDhlLFhTdCxRU3QsSlN0LGVfdCx0X3QsYV90LGlfdCxvX3QsYVVhLHNVYSxyVWEsbl90LFNiLF9iLG9VYSxsX3QsbFVhLGNVYSxkVWEsX2wsdVVhLGg4ZSxnVWEsZF90LGc4ZSxXayx2VWEsdV90LGI4ZSxXcmUsR3JlLHY4ZSxLcmUsRFVhLElVYSxBVWEsTlVhLFJVYSxPVWEsd190LGtfdCxTX3QseThlLEZVYSxVVWEsV1VhLEdVYSx6X3QsS1VhLENfdCxZVWEsdzhlLFhVYSxRVWEsSlVhLGVXYSx0V2EsYVdhLHNXYSxpV2EscldhLG9XYSxuV2EsR2ssbFdhLGNXYSxkV2EsRlN0LGs4ZT1nKCgpPT57aShINWUsIl9hcnJheUxpa2VUb0FycmF5Iik7aShPcWEsIl9hcnJheVdpdGhIb2xlcyIpO2koRnFhLCJfYXJyYXlXaXRob3V0SG9sZXMiKTtpKEJxYSwiX2NsYXNzQ2FsbENoZWNrIik7aShZa3QsIl9kZWZpbmVQcm9wZXJ0aWVzIik7aShIcWEsIl9jcmVhdGVDbGFzcyIpO2koQXJlLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIpO2koaGEsIl9kZWZpbmVQcm9wZXJ0eSIpO2kocXFhLCJfaW5oZXJpdHMiKTtpKGpxYSwiX2l0ZXJhYmxlVG9BcnJheSIpO2koVnFhLCJfaXRlcmFibGVUb0FycmF5TGltaXQiKTtpKFVxYSwiX25vbkl0ZXJhYmxlUmVzdCIpO2koV3FhLCJfbm9uSXRlcmFibGVTcHJlYWQiKTtpKFprdCwib3duS2V5cyIpO2koZHQsIl9vYmplY3RTcHJlYWQyIik7aShOcmUsIl9zZXRQcm90b3R5cGVPZiIpO2koUnJlLCJfc2xpY2VkVG9BcnJheSIpO2koQjEsIl90b0NvbnN1bWFibGVBcnJheSIpO2koR3FhLCJfdG9QcmltaXRpdmUiKTtpKFhrdCwiX3RvUHJvcGVydHlLZXkiKTtpKE9yZSwiX3R5cGVvZiIpO2kocTVlLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiKTtpKGFuLCJfd3JhcFJlZ0V4cCIpO1FrdD1pKGZ1bmN0aW9uKCl7fSwibm9vcCIpLGo1ZT17fSxKa3Q9e30sZVN0PW51bGwsdFN0PXttYXJrOlFrdCxtZWFzdXJlOlFrdH07dHJ5e3R5cGVvZiB3aW5kb3c8InUiJiYoajVlPXdpbmRvdyksdHlwZW9mIGRvY3VtZW50PCJ1IiYmKEprdD1kb2N1bWVudCksdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI8InUiJiYoZVN0PU11dGF0aW9uT2JzZXJ2ZXIpLHR5cGVvZiBwZXJmb3JtYW5jZTwidSImJih0U3Q9cGVyZm9ybWFuY2UpfWNhdGNoe31LcWE9ajVlLm5hdmlnYXRvcnx8e30sYVN0PUtxYS51c2VyQWdlbnQsc1N0PWFTdD09PXZvaWQgMD8iIjphU3Qsbmg9ajVlLGRpPUprdCxpU3Q9ZVN0LEZyZT10U3QsTHZpPSEhbmguZG9jdW1lbnQsQjA9ISFkaS5kb2N1bWVudEVsZW1lbnQmJiEhZGkuaGVhZCYmdHlwZW9mIGRpLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiImJnR5cGVvZiBkaS5jcmVhdGVFbGVtZW50PT0iZnVuY3Rpb24iLHJTdD1+c1N0LmluZGV4T2YoIk1TSUUiKXx8fnNTdC5pbmRleE9mKCJUcmlkZW50LyIpLFlxYT0vZmEoa3xrZHxzfHJ8bHx0fGR8ZHJ8ZGx8ZHR8YnxzbHJ8c2xwcnx3c2J8dGx8bnN8bmRzfGVzfGd0fGpyfGpmcnxqZHJ8dXNifHVmc2J8dWRzYnxjcnxzc3xzcnxzbHxzdHxzZHN8c2RyfHNkbHxzZHQpP1tcLVwgXS8sWnFhPS9Gb250ID9Bd2Vzb21lID8oWzU2NyBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0fE5vdGRvZyBEdW98Tm90ZG9nfENoaXNlbHxFdGNofEdyYXBoaXRlfFRodW1icHJpbnR8SmVsbHkgRmlsbHxKZWxseSBEdW98SmVsbHl8VXRpbGl0eXxVdGlsaXR5IEZpbGx8VXRpbGl0eSBEdW98U2xhYiBQcmVzc3xTbGFifFdoaXRlYm9hcmQpPy4qL2ksb1N0PXtjbGFzc2ljOntmYToic29saWQiLGZhczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIixmYWI6ImJyYW5kcyIsImZhLWJyYW5kcyI6ImJyYW5kcyJ9LGR1b3RvbmU6e2ZhOiJzb2xpZCIsZmFkOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLCJmYS1kdW90b25lIjoic29saWQiLGZhZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYWR0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzaGFycDp7ZmE6InNvbGlkIixmYXNzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc3I6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXN0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2ZhOiJzb2xpZCIsZmFzZHM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNsYWI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHI6InJlZ3VsYXIifSwic2xhYi1wcmVzcyI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHByOiJyZWd1bGFyIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoibGlnaHQiLGZhdGw6ImxpZ2h0In0sd2hpdGVib2FyZDp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhd3NiOiJzZW1pYm9sZCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoic29saWQiLGZhbnM6InNvbGlkIn0sIm5vdGRvZy1kdW8iOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuZHM6InNvbGlkIn0sZXRjaDp7ImZhLXNvbGlkIjoic29saWQiLGZhZXM6InNvbGlkIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoidGhpbiIsZmFndDoidGhpbiJ9LGplbGx5OnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhanI6InJlZ3VsYXIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZnI6InJlZ3VsYXIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpkcjoicmVndWxhciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWNyOiJyZWd1bGFyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdXNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVkc2I6InNlbWlib2xkIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVmc2I6InNlbWlib2xkIn19LFhxYT17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LG5TdD1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxfbz0iY2xhc3NpYyIsQms9ImR1b3RvbmUiLGxTdD0ic2hhcnAiLGNTdD0ic2hhcnAtZHVvdG9uZSIsZFN0PSJjaGlzZWwiLHVTdD0iZXRjaCIscFN0PSJncmFwaGl0ZSIsaFN0PSJqZWxseSIsZlN0PSJqZWxseS1kdW8iLG1TdD0iamVsbHktZmlsbCIsZ1N0PSJub3Rkb2ciLGJTdD0ibm90ZG9nLWR1byIsdlN0PSJzbGFiIix4U3Q9InNsYWItcHJlc3MiLHlTdD0idGh1bWJwcmludCIsd1N0PSJ1dGlsaXR5IixrU3Q9InV0aWxpdHktZHVvIixTU3Q9InV0aWxpdHktZmlsbCIsX1N0PSJ3aGl0ZWJvYXJkIixRcWE9IkNsYXNzaWMiLEpxYT0iRHVvdG9uZSIsZWphPSJTaGFycCIsdGphPSJTaGFycCBEdW90b25lIixhamE9IkNoaXNlbCIsc2phPSJFdGNoIixpamE9IkdyYXBoaXRlIixyamE9IkplbGx5IixvamE9IkplbGx5IER1byIsbmphPSJKZWxseSBGaWxsIixsamE9Ik5vdGRvZyIsY2phPSJOb3Rkb2cgRHVvIixkamE9IlNsYWIiLHVqYT0iU2xhYiBQcmVzcyIscGphPSJUaHVtYnByaW50IixoamE9IlV0aWxpdHkiLGZqYT0iVXRpbGl0eSBEdW8iLG1qYT0iVXRpbGl0eSBGaWxsIixnamE9IldoaXRlYm9hcmQiLE1TdD1bX28sQmssbFN0LGNTdCxkU3QsdVN0LHBTdCxoU3QsZlN0LG1TdCxnU3QsYlN0LHZTdCx4U3QseVN0LHdTdCxrU3QsU1N0LF9TdF0sRXZpPShWNWU9e30saGEoaGEoaGEoaGEoaGEoaGEoaGEoaGEoaGEoaGEoVjVlLF9vLFFxYSksQmssSnFhKSxsU3QsZWphKSxjU3QsdGphKSxkU3QsYWphKSx1U3Qsc2phKSxwU3QsaWphKSxoU3QscmphKSxmU3Qsb2phKSxtU3QsbmphKSxoYShoYShoYShoYShoYShoYShoYShoYShoYShWNWUsZ1N0LGxqYSksYlN0LGNqYSksdlN0LGRqYSkseFN0LHVqYSkseVN0LHBqYSksd1N0LGhqYSksa1N0LGZqYSksU1N0LG1qYSksX1N0LGdqYSkpLGJqYT17Y2xhc3NpYzp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sZHVvdG9uZTp7OTAwOiJmYWQiLDQwMDoiZmFkciIsMzAwOiJmYWRsIiwxMDA6ImZhZHQifSxzaGFycDp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sc2xhYjp7NDAwOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7NDAwOiJmYXNscHIifSx3aGl0ZWJvYXJkOns2MDA6ImZhd3NiIn0sdGh1bWJwcmludDp7MzAwOiJmYXRsIn0sbm90ZG9nOns5MDA6ImZhbnMifSwibm90ZG9nLWR1byI6ezkwMDoiZmFuZHMifSxldGNoOns5MDA6ImZhZXMifSxncmFwaGl0ZTp7MTAwOiJmYWd0In0sY2hpc2VsOns0MDA6ImZhY3IifSxqZWxseTp7NDAwOiJmYWpyIn0sImplbGx5LWZpbGwiOns0MDA6ImZhamZyIn0sImplbGx5LWR1byI6ezQwMDoiZmFqZHIifSx1dGlsaXR5Ons2MDA6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7NjAwOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7NjAwOiJmYXVmc2IifX0sdmphPXsiRm9udCBBd2Vzb21lIDcgRnJlZSI6ezkwMDoiZmFzIiw0MDA6ImZhciJ9LCJGb250IEF3ZXNvbWUgNyBQcm8iOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSwiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA3IER1b3RvbmUiOns5MDA6ImZhZCIsNDAwOiJmYWRyIixub3JtYWw6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIjp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLG5vcm1hbDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLG5vcm1hbDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkiOns0MDA6ImZhanIiLG5vcm1hbDoiZmFqciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsIjp7NDAwOiJmYWpmciIsbm9ybWFsOiJmYWpmciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8iOns0MDA6ImZhamRyIixub3JtYWw6ImZhamRyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIiOns0MDA6ImZhc2xyIixub3JtYWw6ImZhc2xyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MiOns0MDA6ImZhc2xwciIsbm9ybWFsOiJmYXNscHIifSwiRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCI6ezMwMDoiZmF0bCIsbm9ybWFsOiJmYXRsIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI6ezkwMDoiZmFucyIsbm9ybWFsOiJmYW5zIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOns5MDA6ImZhbmRzIixub3JtYWw6ImZhbmRzIn0sIkZvbnQgQXdlc29tZSA3IEV0Y2giOns5MDA6ImZhZXMiLG5vcm1hbDoiZmFlcyJ9LCJGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSI6ezEwMDoiZmFndCIsbm9ybWFsOiJmYWd0In0sIkZvbnQgQXdlc29tZSA3IENoaXNlbCI6ezQwMDoiZmFjciIsbm9ybWFsOiJmYWNyIn0sIkZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQiOns2MDA6ImZhd3NiIixub3JtYWw6ImZhd3NiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkiOns2MDA6ImZhdXNiIixub3JtYWw6ImZhdXNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvIjp7NjAwOiJmYXVkc2IiLG5vcm1hbDoiZmF1ZHNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCI6ezYwMDoiZmF1ZnNiIixub3JtYWw6ImZhdWZzYiJ9fSx4amE9bmV3IE1hcChbWyJjbGFzc2ljIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImJyYW5kcyJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZHVvdG9uZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWQiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc3MiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwLWR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzZHMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImNoaXNlbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWNyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJldGNoIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZ3JhcGhpdGUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFndCIsZGVmYXVsdFN0eWxlSWQ6InRoaW4iLHN0eWxlSWRzOlsidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjEwMH1dLFsiamVsbHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamRyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJqZWxseS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamZyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJub3Rkb2ciLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFucyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJub3Rkb2ctZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbmRzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNsYWIiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbInNsYWItcHJlc3MiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHByIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJ0aHVtYnByaW50Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdGwiLGRlZmF1bHRTdHlsZUlkOiJsaWdodCIsc3R5bGVJZHM6WyJsaWdodCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjMwMH1dLFsidXRpbGl0eSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ1dGlsaXR5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVkc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdWZzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ3aGl0ZWJvYXJkIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhd3NiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XV0pLHlqYT17Y2hpc2VsOntyZWd1bGFyOiJmYWNyIn0sY2xhc3NpYzp7YnJhbmRzOiJmYWIiLGxpZ2h0OiJmYWwiLHJlZ3VsYXI6ImZhciIsc29saWQ6ImZhcyIsdGhpbjoiZmF0In0sZHVvdG9uZTp7bGlnaHQ6ImZhZGwiLHJlZ3VsYXI6ImZhZHIiLHNvbGlkOiJmYWQiLHRoaW46ImZhZHQifSxldGNoOntzb2xpZDoiZmFlcyJ9LGdyYXBoaXRlOnt0aGluOiJmYWd0In0samVsbHk6e3JlZ3VsYXI6ImZhanIifSwiamVsbHktZHVvIjp7cmVndWxhcjoiZmFqZHIifSwiamVsbHktZmlsbCI6e3JlZ3VsYXI6ImZhamZyIn0sbm90ZG9nOntzb2xpZDoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7c29saWQ6ImZhbmRzIn0sc2hhcnA6e2xpZ2h0OiJmYXNsIixyZWd1bGFyOiJmYXNyIixzb2xpZDoiZmFzcyIsdGhpbjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7bGlnaHQ6ImZhc2RsIixyZWd1bGFyOiJmYXNkciIsc29saWQ6ImZhc2RzIix0aGluOiJmYXNkdCJ9LHNsYWI6e3JlZ3VsYXI6ImZhc2xyIn0sInNsYWItcHJlc3MiOntyZWd1bGFyOiJmYXNscHIifSx0aHVtYnByaW50OntsaWdodDoiZmF0bCJ9LHV0aWxpdHk6e3NlbWlib2xkOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6e3NlbWlib2xkOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7c2VtaWJvbGQ6ImZhdWZzYiJ9LHdoaXRlYm9hcmQ6e3NlbWlib2xkOiJmYXdzYiJ9fSx6U3Q9WyJmYWsiLCJmYS1raXQiLCJmYWtkIiwiZmEta2l0LWR1b3RvbmUiXSxDU3Q9e2tpdDp7ZmFrOiJraXQiLCJmYS1raXQiOiJraXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJraXQtZHVvdG9uZSIsImZhLWtpdC1kdW90b25lIjoia2l0LWR1b3RvbmUifX0sd2phPVsia2l0Il0sa2phPSJraXQiLFNqYT0ia2l0LWR1b3RvbmUiLF9qYT0iS2l0IixNamE9IktpdCBEdW90b25lIixQdmk9aGEoaGEoe30sa2phLF9qYSksU2phLE1qYSksemphPXtraXQ6eyJmYS1raXQiOiJmYWsifSwia2l0LWR1b3RvbmUiOnsiZmEta2l0LWR1b3RvbmUiOiJmYWtkIn19LENqYT17IkZvbnQgQXdlc29tZSBLaXQiOns0MDA6ImZhayIsbm9ybWFsOiJmYWsifSwiRm9udCBBd2Vzb21lIEtpdCBEdW90b25lIjp7NDAwOiJmYWtkIixub3JtYWw6ImZha2QifX0sVGphPXtraXQ6e2ZhazoiZmEta2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoiZmEta2l0LWR1b3RvbmUifX0sVFN0PXtraXQ6e2tpdDoiZmFrIn0sImtpdC1kdW90b25lIjp7ImtpdC1kdW90b25lIjoiZmFrZCJ9fSxCcmU9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSwkamE9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sRGphPSJjbGFzc2ljIixMamE9ImR1b3RvbmUiLEVqYT0ic2hhcnAiLFBqYT0ic2hhcnAtZHVvdG9uZSIsSWphPSJjaGlzZWwiLEFqYT0iZXRjaCIsTmphPSJncmFwaGl0ZSIsUmphPSJqZWxseSIsT2phPSJqZWxseS1kdW8iLEZqYT0iamVsbHktZmlsbCIsQmphPSJub3Rkb2ciLEhqYT0ibm90ZG9nLWR1byIscWphPSJzbGFiIixqamE9InNsYWItcHJlc3MiLFZqYT0idGh1bWJwcmludCIsVWphPSJ1dGlsaXR5IixXamE9InV0aWxpdHktZHVvIixHamE9InV0aWxpdHktZmlsbCIsS2phPSJ3aGl0ZWJvYXJkIixZamE9IkNsYXNzaWMiLFpqYT0iRHVvdG9uZSIsWGphPSJTaGFycCIsUWphPSJTaGFycCBEdW90b25lIixKamE9IkNoaXNlbCIsZVZhPSJFdGNoIix0VmE9IkdyYXBoaXRlIixhVmE9IkplbGx5IixzVmE9IkplbGx5IER1byIsaVZhPSJKZWxseSBGaWxsIixyVmE9Ik5vdGRvZyIsb1ZhPSJOb3Rkb2cgRHVvIixuVmE9IlNsYWIiLGxWYT0iU2xhYiBQcmVzcyIsY1ZhPSJUaHVtYnByaW50IixkVmE9IlV0aWxpdHkiLHVWYT0iVXRpbGl0eSBEdW8iLHBWYT0iVXRpbGl0eSBGaWxsIixoVmE9IldoaXRlYm9hcmQiLEl2aT0oVTVlPXt9LGhhKGhhKGhhKGhhKGhhKGhhKGhhKGhhKGhhKGhhKFU1ZSxEamEsWWphKSxMamEsWmphKSxFamEsWGphKSxQamEsUWphKSxJamEsSmphKSxBamEsZVZhKSxOamEsdFZhKSxSamEsYVZhKSxPamEsc1ZhKSxGamEsaVZhKSxoYShoYShoYShoYShoYShoYShoYShoYShoYShVNWUsQmphLHJWYSksSGphLG9WYSkscWphLG5WYSksamphLGxWYSksVmphLGNWYSksVWphLGRWYSksV2phLHVWYSksR2phLHBWYSksS2phLGhWYSkpLGZWYT0ia2l0IixtVmE9ImtpdC1kdW90b25lIixnVmE9IktpdCIsYlZhPSJLaXQgRHVvdG9uZSIsQXZpPWhhKGhhKHt9LGZWYSxnVmEpLG1WYSxiVmEpLHZWYT17Y2xhc3NpYzp7ImZhLWJyYW5kcyI6ImZhYiIsImZhLWR1b3RvbmUiOiJmYWQiLCJmYS1saWdodCI6ImZhbCIsImZhLXJlZ3VsYXIiOiJmYXIiLCJmYS1zb2xpZCI6ImZhcyIsImZhLXRoaW4iOiJmYXQifSxkdW90b25lOnsiZmEtcmVndWxhciI6ImZhZHIiLCJmYS1saWdodCI6ImZhZGwiLCJmYS10aGluIjoiZmFkdCJ9LHNoYXJwOnsiZmEtc29saWQiOiJmYXNzIiwiZmEtcmVndWxhciI6ImZhc3IiLCJmYS1saWdodCI6ImZhc2wiLCJmYS10aGluIjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7ImZhLXNvbGlkIjoiZmFzZHMiLCJmYS1yZWd1bGFyIjoiZmFzZHIiLCJmYS1saWdodCI6ImZhc2RsIiwiZmEtdGhpbiI6ImZhc2R0In0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJmYXNscHIifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJmYXdzYiJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImZhdGwifSxub3Rkb2c6eyJmYS1zb2xpZCI6ImZhbnMifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6ImZhbmRzIn0sZXRjaDp7ImZhLXNvbGlkIjoiZmFlcyJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6ImZhZ3QifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJmYWpyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6ImZhamZyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoiZmFqZHIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoiZmFjciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7ImZhLXNlbWlib2xkIjoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6ImZhdWZzYiJ9fSx4VmE9e2NsYXNzaWM6WyJmYXMiLCJmYXIiLCJmYWwiLCJmYXQiLCJmYWQiXSxkdW90b25lOlsiZmFkciIsImZhZGwiLCJmYWR0Il0sc2hhcnA6WyJmYXNzIiwiZmFzciIsImZhc2wiLCJmYXN0Il0sInNoYXJwLWR1b3RvbmUiOlsiZmFzZHMiLCJmYXNkciIsImZhc2RsIiwiZmFzZHQiXSxzbGFiOlsiZmFzbHIiXSwic2xhYi1wcmVzcyI6WyJmYXNscHIiXSx3aGl0ZWJvYXJkOlsiZmF3c2IiXSx0aHVtYnByaW50OlsiZmF0bCJdLG5vdGRvZzpbImZhbnMiXSwibm90ZG9nLWR1byI6WyJmYW5kcyJdLGV0Y2g6WyJmYWVzIl0sZ3JhcGhpdGU6WyJmYWd0Il0samVsbHk6WyJmYWpyIl0sImplbGx5LWZpbGwiOlsiZmFqZnIiXSwiamVsbHktZHVvIjpbImZhamRyIl0sY2hpc2VsOlsiZmFjciJdLHV0aWxpdHk6WyJmYXVzYiJdLCJ1dGlsaXR5LWR1byI6WyJmYXVkc2IiXSwidXRpbGl0eS1maWxsIjpbImZhdWZzYiJdfSxXNWU9e2NsYXNzaWM6e2ZhYjoiZmEtYnJhbmRzIixmYWQ6ImZhLWR1b3RvbmUiLGZhbDoiZmEtbGlnaHQiLGZhcjoiZmEtcmVndWxhciIsZmFzOiJmYS1zb2xpZCIsZmF0OiJmYS10aGluIn0sZHVvdG9uZTp7ZmFkcjoiZmEtcmVndWxhciIsZmFkbDoiZmEtbGlnaHQiLGZhZHQ6ImZhLXRoaW4ifSxzaGFycDp7ZmFzczoiZmEtc29saWQiLGZhc3I6ImZhLXJlZ3VsYXIiLGZhc2w6ImZhLWxpZ2h0IixmYXN0OiJmYS10aGluIn0sInNoYXJwLWR1b3RvbmUiOntmYXNkczoiZmEtc29saWQiLGZhc2RyOiJmYS1yZWd1bGFyIixmYXNkbDoiZmEtbGlnaHQiLGZhc2R0OiJmYS10aGluIn0sc2xhYjp7ZmFzbHI6ImZhLXJlZ3VsYXIifSwic2xhYi1wcmVzcyI6e2Zhc2xwcjoiZmEtcmVndWxhciJ9LHdoaXRlYm9hcmQ6e2Zhd3NiOiJmYS1zZW1pYm9sZCJ9LHRodW1icHJpbnQ6e2ZhdGw6ImZhLWxpZ2h0In0sbm90ZG9nOntmYW5zOiJmYS1zb2xpZCJ9LCJub3Rkb2ctZHVvIjp7ZmFuZHM6ImZhLXNvbGlkIn0sZXRjaDp7ZmFlczoiZmEtc29saWQifSxncmFwaGl0ZTp7ZmFndDoiZmEtdGhpbiJ9LGplbGx5OntmYWpyOiJmYS1yZWd1bGFyIn0sImplbGx5LWZpbGwiOntmYWpmcjoiZmEtcmVndWxhciJ9LCJqZWxseS1kdW8iOntmYWpkcjoiZmEtcmVndWxhciJ9LGNoaXNlbDp7ZmFjcjoiZmEtcmVndWxhciJ9LHV0aWxpdHk6e2ZhdXNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6e2ZhdWRzYjoiZmEtc2VtaWJvbGQifSwidXRpbGl0eS1maWxsIjp7ZmF1ZnNiOiJmYS1zZW1pYm9sZCJ9fSx5VmE9WyJmYS1zb2xpZCIsImZhLXJlZ3VsYXIiLCJmYS1saWdodCIsImZhLXRoaW4iLCJmYS1kdW90b25lIiwiZmEtYnJhbmRzIiwiZmEtc2VtaWJvbGQiXSwkU3Q9WyJmYSIsImZhcyIsImZhciIsImZhbCIsImZhdCIsImZhZCIsImZhZHIiLCJmYWRsIiwiZmFkdCIsImZhYiIsImZhc3MiLCJmYXNyIiwiZmFzbCIsImZhc3QiLCJmYXNkcyIsImZhc2RyIiwiZmFzZGwiLCJmYXNkdCIsImZhc2xyIiwiZmFzbHByIiwiZmF3c2IiLCJmYXRsIiwiZmFucyIsImZhbmRzIiwiZmFlcyIsImZhZ3QiLCJmYWpyIiwiZmFqZnIiLCJmYWpkciIsImZhY3IiLCJmYXVzYiIsImZhdWRzYiIsImZhdWZzYiJdLmNvbmNhdCgkamEseVZhKSx3VmE9WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iLCJkdW90b25lIiwiYnJhbmRzIiwic2VtaWJvbGQiXSxEU3Q9WzEsMiwzLDQsNSw2LDcsOCw5LDEwXSxrVmE9RFN0LmNvbmNhdChbMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjBdKSxTVmE9WyJhdyIsImZ3IiwicHVsbC1sZWZ0IiwicHVsbC1yaWdodCJdLF9WYT1bXS5jb25jYXQoQjEoT2JqZWN0LmtleXMoeFZhKSksd1ZhLFNWYSxbIjJ4cyIsInhzIiwic20iLCJsZyIsInhsIiwiMnhsIiwiYmVhdCIsImJvcmRlciIsImZhZGUiLCJiZWF0LWZhZGUiLCJib3VuY2UiLCJmbGlwLWJvdGgiLCJmbGlwLWhvcml6b250YWwiLCJmbGlwLXZlcnRpY2FsIiwiZmxpcCIsImludmVyc2UiLCJsYXllcnMiLCJsYXllcnMtYm90dG9tLWxlZnQiLCJsYXllcnMtYm90dG9tLXJpZ2h0IiwibGF5ZXJzLWNvdW50ZXIiLCJsYXllcnMtdGV4dCIsImxheWVycy10b3AtbGVmdCIsImxheWVycy10b3AtcmlnaHQiLCJsaSIsInB1bGwtZW5kIiwicHVsbC1zdGFydCIsInB1bHNlIiwicm90YXRlLTE4MCIsInJvdGF0ZS0yNzAiLCJyb3RhdGUtOTAiLCJyb3RhdGUtYnkiLCJzaGFrZSIsInNwaW4tcHVsc2UiLCJzcGluLXJldmVyc2UiLCJzcGluIiwic3RhY2stMXgiLCJzdGFjay0yeCIsInN0YWNrIiwidWwiLCJ3aWR0aC1hdXRvIiwid2lkdGgtZml4ZWQiLEJyZS5HUk9VUCxCcmUuU1dBUF9PUEFDSVRZLEJyZS5QUklNQVJZLEJyZS5TRUNPTkRBUlldKS5jb25jYXQoRFN0Lm1hcChmdW5jdGlvbihzKXtyZXR1cm4iIi5jb25jYXQocywieCIpfSkpLmNvbmNhdChrVmEubWFwKGZ1bmN0aW9uKHMpe3JldHVybiJ3LSIuY29uY2F0KHMpfSkpLE1WYT17IkZvbnQgQXdlc29tZSA1IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDUgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwifSwiRm9udCBBd2Vzb21lIDUgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA1IER1b3RvbmUiOns5MDA6ImZhZCJ9fSxIMD0iX19fRk9OVF9BV0VTT01FX19fIixHNWU9MTYsTFN0PSJmYSIsRVN0PSJzdmctaW5saW5lLS1mYSIsSzM9ImRhdGEtZmEtaTJzdmciLEs1ZT0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudCIselZhPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmciLFk1ZT0iZGF0YS1wcmVmaXgiLFo1ZT0iZGF0YS1pY29uIixQU3Q9ImZvbnRhd2Vzb21lLWkyc3ZnIixDVmE9ImFzeW5jIixUVmE9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0sSVN0PVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLEFTdD0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtpKEhrLCJmYW1pbHlQcm94eSIpO05TdD1kdCh7fSxvU3QpO05TdFtfb109ZHQoZHQoZHQoZHQoe30seyJmYS1kdW90b25lIjoiZHVvdG9uZSJ9KSxvU3RbX29dKSxDU3Qua2l0KSxDU3RbImtpdC1kdW90b25lIl0pOyRWYT1IayhOU3QpLFg1ZT1kdCh7fSx5amEpO1g1ZVtfb109ZHQoZHQoZHQoZHQoe30se2R1b3RvbmU6ImZhZCJ9KSxYNWVbX29dKSxUU3Qua2l0KSxUU3RbImtpdC1kdW90b25lIl0pO1JTdD1IayhYNWUpLFE1ZT1kdCh7fSxXNWUpO1E1ZVtfb109ZHQoZHQoe30sUTVlW19vXSksVGphLmtpdCk7SjVlPUhrKFE1ZSksZThlPWR0KHt9LHZWYSk7ZThlW19vXT1kdChkdCh7fSxlOGVbX29dKSx6amEua2l0KTtOdmk9SGsoZThlKSxEVmE9WXFhLE9TdD0iZmEtbGF5ZXJzLXRleHQiLExWYT1acWEsRVZhPWR0KHt9LGJqYSksUnZpPUhrKEVWYSksUFZhPVsiY2xhc3MiLCJkYXRhLXByZWZpeCIsImRhdGEtaWNvbiIsImRhdGEtZmEtdHJhbnNmb3JtIiwiZGF0YS1mYS1tYXNrIl0sdDhlPVhxYSxJVmE9W10uY29uY2F0KEIxKHdqYSksQjEoX1ZhKSkscWs9bmguRm9udEF3ZXNvbWVDb25maWd8fHt9O2koQVZhLCJnZXRBdHRyQ29uZmlnIik7aShOVmEsImNvZXJjZSIpLGRpJiZ0eXBlb2YgZGkucXVlcnlTZWxlY3Rvcj09ImZ1bmN0aW9uIiYmKEZTdD1bWyJkYXRhLWZhbWlseS1wcmVmaXgiLCJmYW1pbHlQcmVmaXgiXSxbImRhdGEtY3NzLXByZWZpeCIsImNzc1ByZWZpeCJdLFsiZGF0YS1mYW1pbHktZGVmYXVsdCIsImZhbWlseURlZmF1bHQiXSxbImRhdGEtc3R5bGUtZGVmYXVsdCIsInN0eWxlRGVmYXVsdCJdLFsiZGF0YS1yZXBsYWNlbWVudC1jbGFzcyIsInJlcGxhY2VtZW50Q2xhc3MiXSxbImRhdGEtYXV0by1yZXBsYWNlLXN2ZyIsImF1dG9SZXBsYWNlU3ZnIl0sWyJkYXRhLWF1dG8tYWRkLWNzcyIsImF1dG9BZGRDc3MiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cyIsInNlYXJjaFBzZXVkb0VsZW1lbnRzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtd2FybmluZ3MiLCJzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtZnVsbC1zY2FuIiwic2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiJdLFsiZGF0YS1vYnNlcnZlLW11dGF0aW9ucyIsIm9ic2VydmVNdXRhdGlvbnMiXSxbImRhdGEtbXV0YXRlLWFwcHJvYWNoIiwibXV0YXRlQXBwcm9hY2giXSxbImRhdGEta2VlcC1vcmlnaW5hbC1zb3VyY2UiLCJrZWVwT3JpZ2luYWxTb3VyY2UiXSxbImRhdGEtbWVhc3VyZS1wZXJmb3JtYW5jZSIsIm1lYXN1cmVQZXJmb3JtYW5jZSJdLFsiZGF0YS1zaG93LW1pc3NpbmctaWNvbnMiLCJzaG93TWlzc2luZ0ljb25zIl1dLEZTdC5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBlPVJyZShzLDIpLHQ9ZVswXSxhPWVbMV0scj1OVmEoQVZhKHQpKTtyIT1udWxsJiYocWtbYV09cil9KSk7QlN0PXtzdHlsZURlZmF1bHQ6InNvbGlkIixmYW1pbHlEZWZhdWx0Ol9vLGNzc1ByZWZpeDpMU3QscmVwbGFjZW1lbnRDbGFzczpFU3QsYXV0b1JlcGxhY2VTdmc6ITAsYXV0b0FkZENzczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50czohMSxzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46ITEsb2JzZXJ2ZU11dGF0aW9uczohMCxtdXRhdGVBcHByb2FjaDoiYXN5bmMiLGtlZXBPcmlnaW5hbFNvdXJjZTohMCxtZWFzdXJlUGVyZm9ybWFuY2U6ITEsc2hvd01pc3NpbmdJY29uczohMH07cWsuZmFtaWx5UHJlZml4JiYocWsuY3NzUHJlZml4PXFrLmZhbWlseVByZWZpeCk7d2I9ZHQoZHQoe30sQlN0KSxxayk7d2IuYXV0b1JlcGxhY2VTdmd8fCh3Yi5vYnNlcnZlTXV0YXRpb25zPSExKTtXdD17fTtPYmplY3Qua2V5cyhCU3QpLmZvckVhY2goZnVuY3Rpb24ocyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFd0LHMse2VudW1lcmFibGU6ITAsc2V0OmkoZnVuY3Rpb24odCl7d2Jbc109dCxqay5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKFd0KX0pfSwic2V0IiksZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gd2Jbc119LCJnZXQiKX0pfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFd0LCJmYW1pbHlQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLHNldDppKGZ1bmN0aW9uKGUpe3diLmNzc1ByZWZpeD1lLGprLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQoV3QpfSl9LCJzZXQiKSxnZXQ6aShmdW5jdGlvbigpe3JldHVybiB3Yi5jc3NQcmVmaXh9LCJnZXQiKX0pLG5oLkZvbnRBd2Vzb21lQ29uZmlnPVd0O2prPVtdO2koUlZhLCJvbkNoYW5nZSIpO2xoPUc1ZSxNZD17c2l6ZToxNix4OjAseTowLHJvdGF0ZTowLGZsaXBYOiExLGZsaXBZOiExfTtpKE9WYSwiaW5zZXJ0Q3NzIik7RlZhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7aShIU3QsIm5leHRVbmlxdWVJZCIpO2koa2IsInRvQXJyYXkiKTtpKGE4ZSwiY2xhc3NBcnJheSIpO2kocVN0LCJodG1sRXNjYXBlIik7aShCVmEsImpvaW5BdHRyaWJ1dGVzIik7aShIcmUsImpvaW5TdHlsZXMiKTtpKHM4ZSwidHJhbnNmb3JtSXNNZWFuaW5nZnVsIik7aShIVmEsInRyYW5zZm9ybUZvclN2ZyIpO2kocVZhLCJ0cmFuc2Zvcm1Gb3JDc3MiKTtqVmE9YDpyb290LCA6aG9zdCB7CiAgLS1mYS1mb250LXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBGcmVlJzsKICAtLWZhLWZvbnQtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRnJlZSc7CiAgLS1mYS1mb250LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC1kdW90b25lOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWJyYW5kczogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQnJhbmRzJzsKICAtLWZhLWZvbnQtc2hhcnAtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2xhYi1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiJzsKICAtLWZhLWZvbnQtc2xhYi1wcmVzcy1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzJzsKICAtLWZhLWZvbnQtd2hpdGVib2FyZC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgV2hpdGVib2FyZCc7CiAgLS1mYS1mb250LXRodW1icHJpbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFRodW1icHJpbnQnOwogIC0tZmEtZm9udC1ub3Rkb2ctc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyc7CiAgLS1mYS1mb250LW5vdGRvZy1kdW8tc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8nOwogIC0tZmEtZm9udC1ldGNoLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBFdGNoJzsKICAtLWZhLWZvbnQtZ3JhcGhpdGUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgR3JhcGhpdGUnOwogIC0tZmEtZm9udC1qZWxseS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSc7CiAgLS1mYS1mb250LWplbGx5LWZpbGwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHkgRmlsbCc7CiAgLS1mYS1mb250LWplbGx5LWR1by1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8nOwogIC0tZmEtZm9udC1jaGlzZWwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQ2hpc2VsJzsKICAtLWZhLWZvbnQtdXRpbGl0eS1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSc7CiAgLS1mYS1mb250LXV0aWxpdHktZHVvLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5IER1byc7CiAgLS1mYS1mb250LXV0aWxpdHktZmlsbC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBGaWxsJzsKfQoKLnN2Zy1pbmxpbmUtLWZhIHsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKICBkaXNwbGF5OiB2YXIoLS1mYS1kaXNwbGF5LCBpbmxpbmUtYmxvY2spOwogIGhlaWdodDogMWVtOwogIG92ZXJmbG93OiB2aXNpYmxlOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4cyB7CiAgdmVydGljYWwtYWxpZ246IDAuMWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14cyB7CiAgdmVydGljYWwtYWxpZ246IDBlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtc20gewogIHZlcnRpY2FsLWFsaWduOiAtMC4wNzE0Mjg1NzE0ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxnIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMmVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjMxMjVlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtcHVsbC1sZWZ0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtc3RhcnQgewogIGZsb2F0OiBpbmxpbmUtc3RhcnQ7CiAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtcmlnaHQsCi5zdmctaW5saW5lLS1mYSAuZmEtcHVsbC1lbmQgewogIGZsb2F0OiBpbmxpbmUtZW5kOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxpIHsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSkpOwogIGluc2V0LWJsb2NrLXN0YXJ0OiAwLjI1ZW07IC8qIHN5bmNpbmcgdmVydGljYWwgYWxpZ25tZW50IHdpdGggV2ViIEZvbnQgcmVuZGVyaW5nICovCn0KCi5mYS1sYXllcnMtY291bnRlciwgLmZhLWxheWVycy10ZXh0IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLmZhLWxheWVycyB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMWVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCwgMS4yNWVtKTsKfQouZmEtbGF5ZXJzIC5zdmctaW5saW5lLS1mYSB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLXRleHQgewogIGxlZnQ6IDUwJTsKICB0b3A6IDUwJTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZhLWNvdW50ZXItYmFja2dyb3VuZC1jb2xvciwgI2ZmMjUzYSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtY291bnRlci1ib3JkZXItcmFkaXVzLCAxZW0pOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS1mYS1jb3VudGVyLWxpbmUtaGVpZ2h0LCAxKTsKICBtYXgtd2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWF4LXdpZHRoLCA1ZW0pOwogIG1pbi13aWR0aDogdmFyKC0tZmEtY291bnRlci1taW4td2lkdGgsIDEuNWVtKTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBhZGRpbmc6IHZhcigtLWZhLWNvdW50ZXItcGFkZGluZywgMC4yNWVtIDAuNWVtKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWNvdW50ZXItc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLXJpZ2h0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLWxlZnQgewogIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDsKfQoKLmZhLWxheWVycy10b3AtcmlnaHQgewogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLXRvcC1sZWZ0IHsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoKLmZhLTF4IHsKICBmb250LXNpemU6IDFlbTsKfQoKLmZhLTJ4IHsKICBmb250LXNpemU6IDJlbTsKfQoKLmZhLTN4IHsKICBmb250LXNpemU6IDNlbTsKfQoKLmZhLTR4IHsKICBmb250LXNpemU6IDRlbTsKfQoKLmZhLTV4IHsKICBmb250LXNpemU6IDVlbTsKfQoKLmZhLTZ4IHsKICBmb250LXNpemU6IDZlbTsKfQoKLmZhLTd4IHsKICBmb250LXNpemU6IDdlbTsKfQoKLmZhLTh4IHsKICBmb250LXNpemU6IDhlbTsKfQoKLmZhLTl4IHsKICBmb250LXNpemU6IDllbTsKfQoKLmZhLTEweCB7CiAgZm9udC1zaXplOiAxMGVtOwp9CgouZmEtMnhzIHsKICBmb250LXNpemU6IGNhbGMoMTAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteHMgewogIGZvbnQtc2l6ZTogY2FsYygxMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDEyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1zbSB7CiAgZm9udC1zaXplOiBjYWxjKDE0IC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDE0cHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTQgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDE0IC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLWxnIHsKICBmb250LXNpemU6IGNhbGMoMjAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteGwgewogIGZvbnQtc2l6ZTogY2FsYygyNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAyNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDI0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAyNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS0yeGwgewogIGZvbnQtc2l6ZTogY2FsYygzMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAzMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDMyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAzMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS13aWR0aC1hdXRvIHsKICAtLWZhLXdpZHRoOiBhdXRvOwp9CgouZmEtZncsCi5mYS13aWR0aC1maXhlZCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwp9CgouZmEtdWwgewogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1saS1tYXJnaW4sIDIuNWVtKTsKICBwYWRkaW5nLWlubGluZS1zdGFydDogMDsKfQouZmEtdWwgPiBsaSB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouZmEtbGkgewogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTsKICBsaW5lLWhlaWdodDogaW5oZXJpdDsKfQoKLyogSGVhZHMgVXA6IEJvcmRlcmVkIEljb25zIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiB0aGUgZnV0dXJlIQogIC0gVGhpcyBmZWF0dXJlIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlIG9mIEZvbnQgQXdlc29tZSAodjgpIQogIC0gWW91IG1heSBjb250aW51ZSB0byB1c2UgaXQgaW4gdGhpcyB2ZXJzaW9uICp2NyksIGJ1dCBpdCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gRm9udCBBd2Vzb21lIHY4LgoqLwovKiBOb3RlczoKKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXdpZHRoID0gMS8xNiBieSBkZWZhdWx0ICh0byByZW5kZXIgYXMgfjFweCBiYXNlZCBvbiBhIDE2cHggZGVmYXVsdCBmb250LXNpemUpCiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci1wYWRkaW5nID0KICAqKiAzLzE2IGZvciB2ZXJ0aWNhbCBwYWRkaW5nICh0byBnaXZlIH4ycHggb2YgdmVydGljYWwgd2hpdGVzcGFjZSBhcm91bmQgYW4gaWNvbiBjb25zaWRlcmluZyBpdCdzIHZlcnRpY2FsIGFsaWdubWVudCkKICAqKiA0LzE2IGZvciBob3Jpem9udGFsIHBhZGRpbmcgKHRvIGdpdmUgfjRweCBvZiBob3Jpem9udGFsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24pCiovCi5mYS1ib3JkZXIgewogIGJvcmRlci1jb2xvcjogdmFyKC0tZmEtYm9yZGVyLWNvbG9yLCAjZWVlKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1ib3JkZXItcmFkaXVzLCAwLjFlbSk7CiAgYm9yZGVyLXN0eWxlOiB2YXIoLS1mYS1ib3JkZXItc3R5bGUsIHNvbGlkKTsKICBib3JkZXItd2lkdGg6IHZhcigtLWZhLWJvcmRlci13aWR0aCwgMC4wNjI1ZW0pOwogIGJveC1zaXppbmc6IHZhcigtLWZhLWJvcmRlci1ib3gtc2l6aW5nLCBjb250ZW50LWJveCk7CiAgcGFkZGluZzogdmFyKC0tZmEtYm9yZGVyLXBhZGRpbmcsIDAuMTg3NWVtIDAuMjVlbSk7Cn0KCi5mYS1wdWxsLWxlZnQsCi5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtcHVsbC1yaWdodCwKLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtYmVhdCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQ7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLWJvdW5jZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJvdW5jZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuMjgsIDAuODQsIDAuNDIsIDEpKTsKfQoKLmZhLWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1mYWRlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTsKfQoKLmZhLWJlYXQtZmFkZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1mbGlwIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmxpcDsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpOwp9CgouZmEtc2hha2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zaGFrZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4gewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMnMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpOwp9CgouZmEtc3Bpbi1yZXZlcnNlIHsKICAtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7Cn0KCi5mYS1wdWxzZSwKLmZhLXNwaW4tcHVsc2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgc3RlcHMoOCkpOwp9CgpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogIC5mYS1iZWF0LAogIC5mYS1ib3VuY2UsCiAgLmZhLWZhZGUsCiAgLmZhLWJlYXQtZmFkZSwKICAuZmEtZmxpcCwKICAuZmEtcHVsc2UsCiAgLmZhLXNoYWtlLAogIC5mYS1zcGluLAogIC5mYS1zcGluLXB1bHNlIHsKICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJlYXQgewogIDAlLCA5MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNDUlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYmVhdC1zY2FsZSwgMS4yNSkpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJvdW5jZSB7CiAgMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KICAxMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwgMS4xKSwgdmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXksIDAuOSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDMwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsIDAuOSksIHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksIDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLWhlaWdodCwgLTAuNWVtKSk7CiAgfQogIDUwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsIDEuMDUpLCB2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS15LCAwLjk1KSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgNTclIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwgLTAuMTI1ZW0pKTsKICB9CiAgNjQlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmFkZSB7CiAgNTAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWZhZGUtb3BhY2l0eSwgMC40KTsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0LWZhZGUgewogIDAlLCAxMDAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWJlYXQtZmFkZS1vcGFjaXR5LCAwLjQpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNTAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtZmFkZS1zY2FsZSwgMS4xMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1mbGlwIHsKICA1MCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUzZCh2YXIoLS1mYS1mbGlwLXgsIDApLCB2YXIoLS1mYS1mbGlwLXksIDEpLCB2YXIoLS1mYS1mbGlwLXosIDApLCB2YXIoLS1mYS1mbGlwLWFuZ2xlLCAtMTgwZGVnKSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtc2hha2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7CiAgfQogIDQlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsKICB9CiAgOCUsIDI0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMThkZWcpOwogIH0KICAxMiUsIDI4JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxOGRlZyk7CiAgfQogIDE2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjJkZWcpOwogIH0KICAyMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMjJkZWcpOwogIH0KICAzMiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyZGVnKTsKICB9CiAgMzYlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDEyZGVnKTsKICB9CiAgNDAlLCAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNwaW4gewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9Ci5mYS1yb3RhdGUtOTAgewogIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKfQoKLmZhLXJvdGF0ZS0xODAgewogIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMjcwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOwp9CgouZmEtZmxpcC1ob3Jpem9udGFsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsKfQoKLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOwp9CgouZmEtZmxpcC1ib3RoLAouZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTsKfQoKLmZhLXJvdGF0ZS1ieSB7CiAgdHJhbnNmb3JtOiByb3RhdGUodmFyKC0tZmEtcm90YXRlLWFuZ2xlLCAwKSk7Cn0KCi5zdmctaW5saW5lLS1mYSAuZmEtcHJpbWFyeSB7CiAgZmlsbDogdmFyKC0tZmEtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogdmFyKC0tZmEtc2Vjb25kYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpOwogIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1wcmltYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtc2Vjb25kYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtcHJpbWFyeSwKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogYmxhY2s7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1pbnZlcnNlIHsKICBmaWxsOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKfQoKLmZhLXN0YWNrIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiAyZW07CiAgbGluZS1oZWlnaHQ6IDJlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICB3aWR0aDogMi41ZW07Cn0KCi5mYS1pbnZlcnNlIHsKICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0xeCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwogIGhlaWdodDogMWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTJ4IHsKICAtLWZhLXdpZHRoOiAyLjVlbTsKICBoZWlnaHQ6IDJlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9CgouZmEtc3RhY2stMXgsCi5mYS1zdGFjay0yeCB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiB2YXIoLS1mYS1zdGFjay16LWluZGV4LCBhdXRvKTsKfWA7aShqU3QsImNzcyIpO1ZTdD0hMTtpKGk4ZSwiZW5zdXJlQ3NzIik7VlZhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntkb206e2NzczpqU3QsaW5zZXJ0Q3NzOmk4ZX19fSwibWl4b3V0IiksaG9va3M6aShmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246aShmdW5jdGlvbigpe2k4ZSgpfSwiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIiksYmVmb3JlSTJzdmc6aShmdW5jdGlvbigpe2k4ZSgpfSwiYmVmb3JlSTJzdmciKX19LCJob29rcyIpfSxxMD1uaHx8e307cTBbSDBdfHwocTBbSDBdPXt9KSxxMFtIMF0uc3R5bGVzfHwocTBbSDBdLnN0eWxlcz17fSkscTBbSDBdLmhvb2tzfHwocTBbSDBdLmhvb2tzPXt9KSxxMFtIMF0uc2hpbXN8fChxMFtIMF0uc2hpbXM9W10pO0gxPXEwW0gwXSxVU3Q9W10sV1N0PWkoZnVuY3Rpb24oKXtkaS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixXU3QpLHFyZT0xLFVTdC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pfSwibGlzdGVuZXIiKSxxcmU9ITE7QjAmJihxcmU9KGRpLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KGRpLnJlYWR5U3RhdGUpLHFyZXx8ZGkuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsV1N0KSk7aShVVmEsImRvbXJlYWR5Iik7aShWaywidG9IdG1sIik7aShHU3QsImljb25Gcm9tTWFwcGluZyIpO1dWYT1pKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGEscixuLG8pe3JldHVybiBlLmNhbGwodCxhLHIsbixvKX19LCJiaW5kSW50ZXJuYWw0IikscjhlPWkoZnVuY3Rpb24oZSx0LGEscil7dmFyIG49T2JqZWN0LmtleXMoZSksbz1uLmxlbmd0aCxsPXIhPT12b2lkIDA/V1ZhKHQscik6dCxwLGQsdTtmb3IoYT09PXZvaWQgMD8ocD0xLHU9ZVtuWzBdXSk6KHA9MCx1PWEpO3A8bztwKyspZD1uW3BdLHU9bCh1LGVbZF0sZCxlKTtyZXR1cm4gdX0sImZhc3RSZWR1Y2VPYmplY3QiKTtpKEtTdCwidG9IZXgiKTtpKFlTdCwibm9ybWFsaXplSWNvbnMiKTtpKG84ZSwiZGVmaW5lSWNvbnMiKTtuOGU9MSxxMT0yLE92aT1bW3ExLGFuKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi4qcGF0aC4qZD0iKFteIl0qKSIvLHtkMjoyLGQxOjN9KV0sW3ExLGFuKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi8se2QyOjJ9KV0sW244ZSxhbigvcGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiLipkPSIoW14iXSspIi8se2QxOjF9KV1dLEZ2aT1bW3ExLGFuKC9wYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyLGF0dHIxOjMsZDE6NH0pXSxbcTEsYW4oL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjIsYXR0cjI6MyxkMjo0fSldLFtxMSxhbigvcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyfSldLFtxMSxhbigvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMjoxLGQyOjJ9KV0sW3ExLGFuKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyLGQxOjMsYXR0cjE6NH0pXSxbcTEsYW4oL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMToxLGF0dHIxOjIsZDI6MyxhdHRyMjo0fSldLFtxMSxhbigvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyfSldLFtxMSxhbigvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMjoxLGF0dHIyOjJ9KV0sW3ExLGFuKC9wYXRoIGQ9IihbXiJdKykiLipwYXRoIGQ9IihbXiJdKykiLyx7ZDE6MSxkMjoyfSldLFtuOGUsYW4oL3BhdGggZD0iKFteIl0rKSIvLHtkMToxfSldLFtuOGUsYW4oL3BhdGggc3R5bGU9IihbXiJdKykiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXV0sVWs9SDEuc3R5bGVzLEdWYT1IMS5zaGltcyxaU3Q9T2JqZWN0LmtleXMoSjVlKSxLVmE9WlN0LnJlZHVjZShmdW5jdGlvbihzLGUpe3JldHVybiBzW2VdPU9iamVjdC5rZXlzKEo1ZVtlXSksc30se30pLGw4ZT1udWxsLFhTdD17fSxRU3Q9e30sSlN0PXt9LGVfdD17fSx0X3Q9e307aShZVmEsImlzUmVzZXJ2ZWQiKTtpKFpWYSwiZ2V0SWNvbk5hbWUiKTthX3Q9aShmdW5jdGlvbigpe3ZhciBlPWkoZnVuY3Rpb24obil7cmV0dXJuIHI4ZShVayxmdW5jdGlvbihvLGwscCl7cmV0dXJuIG9bcF09cjhlKGwsbix7fSksb30se30pfSwibG9va3VwIik7WFN0PWUoZnVuY3Rpb24ocixuLG8pe2lmKG5bM10mJihyW25bM11dPW8pLG5bMl0pe3ZhciBsPW5bMl0uZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiB0eXBlb2YgcD09Im51bWJlciJ9KTtsLmZvckVhY2goZnVuY3Rpb24ocCl7cltwLnRvU3RyaW5nKDE2KV09b30pfXJldHVybiByfSksUVN0PWUoZnVuY3Rpb24ocixuLG8pe2lmKHJbb109byxuWzJdKXt2YXIgbD1uWzJdLmZpbHRlcihmdW5jdGlvbihwKXtyZXR1cm4gdHlwZW9mIHA9PSJzdHJpbmcifSk7bC5mb3JFYWNoKGZ1bmN0aW9uKHApe3JbcF09b30pfXJldHVybiByfSksdF90PWUoZnVuY3Rpb24ocixuLG8pe3ZhciBsPW5bMl07cmV0dXJuIHJbb109byxsLmZvckVhY2goZnVuY3Rpb24ocCl7cltwXT1vfSkscn0pO3ZhciB0PSJmYXIiaW4gVWt8fFd0LmF1dG9GZXRjaFN2ZyxhPXI4ZShHVmEsZnVuY3Rpb24ocixuKXt2YXIgbz1uWzBdLGw9blsxXSxwPW5bMl07cmV0dXJuIGw9PT0iZmFyIiYmIXQmJihsPSJmYXMiKSx0eXBlb2Ygbz09InN0cmluZyImJihyLm5hbWVzW29dPXtwcmVmaXg6bCxpY29uTmFtZTpwfSksdHlwZW9mIG89PSJudW1iZXIiJiYoci51bmljb2Rlc1tvLnRvU3RyaW5nKDE2KV09e3ByZWZpeDpsLGljb25OYW1lOnB9KSxyfSx7bmFtZXM6e30sdW5pY29kZXM6e319KTtKU3Q9YS5uYW1lcyxlX3Q9YS51bmljb2RlcyxsOGU9anJlKFd0LnN0eWxlRGVmYXVsdCx7ZmFtaWx5Old0LmZhbWlseURlZmF1bHR9KX0sImJ1aWxkIik7UlZhKGZ1bmN0aW9uKHMpe2w4ZT1qcmUocy5zdHlsZURlZmF1bHQse2ZhbWlseTpXdC5mYW1pbHlEZWZhdWx0fSl9KSxhX3QoKTtpKGM4ZSwiYnlVbmljb2RlIik7aShYVmEsImJ5TGlnYXR1cmUiKTtpKFkzLCJieUFsaWFzIik7aShzX3QsImJ5T2xkTmFtZSIpO2koUVZhLCJieU9sZFVuaWNvZGUiKTtpKGNoLCJnZXREZWZhdWx0VXNhYmxlUHJlZml4Iik7aV90PWkoZnVuY3Rpb24oKXtyZXR1cm57cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbCxyZXN0OltdfX0sImVtcHR5Q2Fub25pY2FsSWNvbiIpO2koSlZhLCJnZXRGYW1pbHlJZCIpO2koanJlLCJnZXRDYW5vbmljYWxQcmVmaXgiKTtpKGVVYSwibW92ZU5vbkZhQ2xhc3Nlc1RvUmVzdCIpO2kocl90LCJzb3J0ZWRVbmlxdWVWYWx1ZXMiKTtvX3Q9JFN0LmNvbmNhdCh6U3QpO2koVnJlLCJnZXRDYW5vbmljYWxJY29uIik7aSh0VWEsImFwcGx5U2hpbUFuZEFsaWFzIik7YVVhPU1TdC5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT1fb3x8cyE9PUJrfSksc1VhPU9iamVjdC5rZXlzKFc1ZSkuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzIT09X299KS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIE9iamVjdC5rZXlzKFc1ZVtzXSl9KS5mbGF0KCk7aShpVWEsImdldERlZmF1bHRDYW5vbmljYWxQcmVmaXgiKTtyVWE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcygpe0JxYSh0aGlzLHMpLHRoaXMuZGVmaW5pdGlvbnM9e319cmV0dXJuIGkocywiTGlicmFyeSIpLEhxYShzLFt7a2V5OiJhZGQiLHZhbHVlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxhPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoYSksbj0wO248YTtuKyspcltuXT1hcmd1bWVudHNbbl07dmFyIG89ci5yZWR1Y2UodGhpcy5fcHVsbERlZmluaXRpb25zLHt9KTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3QuZGVmaW5pdGlvbnNbbF09ZHQoZHQoe30sdC5kZWZpbml0aW9uc1tsXXx8e30pLG9bbF0pLG84ZShsLG9bbF0pO3ZhciBwPUo1ZVtfb11bbF07cCYmbzhlKHAsb1tsXSksYV90KCl9KX0sImFkZCIpfSx7a2V5OiJyZXNldCIsdmFsdWU6aShmdW5jdGlvbigpe3RoaXMuZGVmaW5pdGlvbnM9e319LCJyZXNldCIpfSx7a2V5OiJfcHVsbERlZmluaXRpb25zIix2YWx1ZTppKGZ1bmN0aW9uKHQsYSl7dmFyIHI9YS5wcmVmaXgmJmEuaWNvbk5hbWUmJmEuaWNvbj97MDphfTphO3JldHVybiBPYmplY3Qua2V5cyhyKS5tYXAoZnVuY3Rpb24obil7dmFyIG89cltuXSxsPW8ucHJlZml4LHA9by5pY29uTmFtZSxkPW8uaWNvbix1PWRbMl07dFtsXXx8KHRbbF09e30pLHUubGVuZ3RoPjAmJnUuZm9yRWFjaChmdW5jdGlvbihjKXt0eXBlb2YgYz09InN0cmluZyImJih0W2xdW2NdPWQpfSksdFtsXVtwXT1kfSksdH0sIl9wdWxsRGVmaW5pdGlvbnMiKX1dKX0pKCksbl90PVtdLFNiPXt9LF9iPXt9LG9VYT1PYmplY3Qua2V5cyhfYik7aShuVWEsInJlZ2lzdGVyUGx1Z2lucyIpO2koZDhlLCJjaGFpbkhvb2tzIik7aShaMywiY2FsbEhvb2tzIik7aShkaCwiY2FsbFByb3ZpZGVkIik7aSh1OGUsImZpbmRJY29uRGVmaW5pdGlvbiIpO2xfdD1uZXcgclVhLGxVYT1pKGZ1bmN0aW9uKCl7V3QuYXV0b1JlcGxhY2VTdmc9ITEsV3Qub2JzZXJ2ZU11dGF0aW9ucz0hMSxaMygibm9BdXRvIil9LCJub0F1dG8iKSxjVWE9e2kyc3ZnOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuIEIwPyhaMygiYmVmb3JlSTJzdmciLGUpLGRoKCJwc2V1ZG9FbGVtZW50czJzdmciLGUpLGRoKCJpMnN2ZyIsZSkpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiT3BlcmF0aW9uIHJlcXVpcmVzIGEgRE9NIG9mIHNvbWUga2luZC4iKSl9LCJpMnN2ZyIpLHdhdGNoOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sdD1lLmF1dG9SZXBsYWNlU3ZnUm9vdDtXdC5hdXRvUmVwbGFjZVN2Zz09PSExJiYoV3QuYXV0b1JlcGxhY2VTdmc9ITApLFd0Lm9ic2VydmVNdXRhdGlvbnM9ITAsVVZhKGZ1bmN0aW9uKCl7dVVhKHthdXRvUmVwbGFjZVN2Z1Jvb3Q6dH0pLFozKCJ3YXRjaCIsZSl9KX0sIndhdGNoIil9LGRVYT17aWNvbjppKGZ1bmN0aW9uKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2lmKE9yZShlKT09PSJvYmplY3QiJiZlLnByZWZpeCYmZS5pY29uTmFtZSlyZXR1cm57cHJlZml4OmUucHJlZml4LGljb25OYW1lOlkzKGUucHJlZml4LGUuaWNvbk5hbWUpfHxlLmljb25OYW1lfTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTIpe3ZhciB0PWVbMV0uaW5kZXhPZigiZmEtIik9PT0wP2VbMV0uc2xpY2UoMyk6ZVsxXSxhPWpyZShlWzBdKTtyZXR1cm57cHJlZml4OmEsaWNvbk5hbWU6WTMoYSx0KXx8dH19aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZS5pbmRleE9mKCIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi0iKSk+LTF8fGUubWF0Y2goRFZhKSkpe3ZhciByPVZyZShlLnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDpyLnByZWZpeHx8Y2goKSxpY29uTmFtZTpZMyhyLnByZWZpeCxyLmljb25OYW1lKXx8ci5pY29uTmFtZX19aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgbj1jaCgpO3JldHVybntwcmVmaXg6bixpY29uTmFtZTpZMyhuLGUpfHxlfX19LCJpY29uIil9LF9sPXtub0F1dG86bFVhLGNvbmZpZzpXdCxkb206Y1VhLHBhcnNlOmRVYSxsaWJyYXJ5OmxfdCxmaW5kSWNvbkRlZmluaXRpb246dThlLHRvSHRtbDpWa30sdVVhPWkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sdD1lLmF1dG9SZXBsYWNlU3ZnUm9vdCxhPXQ9PT12b2lkIDA/ZGk6dDsoT2JqZWN0LmtleXMoSDEuc3R5bGVzKS5sZW5ndGg+MHx8V3QuYXV0b0ZldGNoU3ZnKSYmQjAmJld0LmF1dG9SZXBsYWNlU3ZnJiZfbC5kb20uaTJzdmcoe25vZGU6YX0pfSwiYXV0b1JlcGxhY2UiKTtpKFVyZSwiZG9tVmFyaWFudHMiKTtpKHBVYSwiYXNJY29uIik7aShoVWEsImFzU3ltYm9sIik7aShmVWEsImlzTGFiZWxlZCIpO2kocDhlLCJtYWtlSW5saW5lU3ZnQWJzdHJhY3QiKTtpKGNfdCwibWFrZUxheWVyc1RleHRBYnN0cmFjdCIpO2kobVVhLCJtYWtlTGF5ZXJzQ291bnRlckFic3RyYWN0Iik7aDhlPUgxLnN0eWxlcztpKGY4ZSwiYXNGb3VuZEljb24iKTtnVWE9e2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyfTtpKGJVYSwibWF5YmVOb3RpZnlNaXNzaW5nIik7aShtOGUsImZpbmRJY29uIik7ZF90PWkoZnVuY3Rpb24oKXt9LCJub29wIiksZzhlPVd0Lm1lYXN1cmVQZXJmb3JtYW5jZSYmRnJlJiZGcmUubWFyayYmRnJlLm1lYXN1cmU/RnJlOnttYXJrOmRfdCxtZWFzdXJlOmRfdH0sV2s9J0ZBICI3LjIuMCInLHZVYT1pKGZ1bmN0aW9uKGUpe3JldHVybiBnOGUubWFyaygiIi5jb25jYXQoV2ssIiAiKS5jb25jYXQoZSwiIGJlZ2lucyIpKSxmdW5jdGlvbigpe3JldHVybiB1X3QoZSl9fSwiYmVnaW4iKSx1X3Q9aShmdW5jdGlvbihlKXtnOGUubWFyaygiIi5jb25jYXQoV2ssIiAiKS5jb25jYXQoZSwiIGVuZHMiKSksZzhlLm1lYXN1cmUoIiIuY29uY2F0KFdrLCIgIikuY29uY2F0KGUpLCIiLmNvbmNhdChXaywiICIpLmNvbmNhdChlLCIgYmVnaW5zIiksIiIuY29uY2F0KFdrLCIgIikuY29uY2F0KGUsIiBlbmRzIikpfSwiZW5kIiksYjhlPXtiZWdpbjp2VWEsZW5kOnVfdH0sV3JlPWkoZnVuY3Rpb24oKXt9LCJub29wIik7aShwX3QsImlzV2F0Y2hlZCIpO2koeFVhLCJoYXNQcmVmaXhBbmRJY29uIik7aSh5VWEsImhhc0JlZW5SZXBsYWNlZCIpO2kod1VhLCJnZXRNdXRhdG9yIik7aShrVWEsImNyZWF0ZUVsZW1lbnROUyIpO2koU1VhLCJjcmVhdGVFbGVtZW50Iik7aShoX3QsImNvbnZlcnRTVkciKTtpKF9VYSwibm9kZUFzQ29tbWVudCIpO0dyZT17cmVwbGFjZTppKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF07aWYodC5wYXJlbnROb2RlKWlmKGVbMV0uZm9yRWFjaChmdW5jdGlvbihyKXt0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGhfdChyKSx0KX0pLHQuZ2V0QXR0cmlidXRlKEszKT09PW51bGwmJld0LmtlZXBPcmlnaW5hbFNvdXJjZSl7dmFyIGE9ZGkuY3JlYXRlQ29tbWVudChfVWEodCkpO3QucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoYSx0KX1lbHNlIHQucmVtb3ZlKCl9LCJyZXBsYWNlIiksbmVzdDppKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sYT1lWzFdO2lmKH5hOGUodCkuaW5kZXhPZihXdC5yZXBsYWNlbWVudENsYXNzKSlyZXR1cm4gR3JlLnJlcGxhY2UoZSk7dmFyIHI9bmV3IFJlZ0V4cCgiIi5jb25jYXQoV3QuY3NzUHJlZml4LCItLioiKSk7aWYoZGVsZXRlIGFbMF0uYXR0cmlidXRlcy5pZCxhWzBdLmF0dHJpYnV0ZXMuY2xhc3Mpe3ZhciBuPWFbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihsLHApe3JldHVybiBwPT09V3QucmVwbGFjZW1lbnRDbGFzc3x8cC5tYXRjaChyKT9sLnRvU3ZnLnB1c2gocCk6bC50b05vZGUucHVzaChwKSxsfSx7dG9Ob2RlOltdLHRvU3ZnOltdfSk7YVswXS5hdHRyaWJ1dGVzLmNsYXNzPW4udG9Tdmcuam9pbigiICIpLG4udG9Ob2RlLmxlbmd0aD09PTA/dC5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik6dC5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLnRvTm9kZS5qb2luKCIgIikpfXZhciBvPWEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBWayhsKX0pLmpvaW4oYApgKTt0LnNldEF0dHJpYnV0ZShLMywiIiksdC5pbm5lckhUTUw9b30sIm5lc3QiKX07aShmX3QsInBlcmZvcm1PcGVyYXRpb25TeW5jIik7aShtX3QsInBlcmZvcm0iKTt2OGU9ITE7aShnX3QsImRpc2FibGVPYnNlcnZhdGlvbiIpO2koeDhlLCJlbmFibGVPYnNlcnZhdGlvbiIpO0tyZT1udWxsO2koYl90LCJvYnNlcnZlIik7aShNVWEsImRpc2Nvbm5lY3QiKTtpKHpVYSwic3R5bGVQYXJzZXIiKTtpKENVYSwiY2xhc3NQYXJzZXIiKTtpKFRVYSwiYXR0cmlidXRlc1BhcnNlciIpO2koJFVhLCJibGFua01ldGEiKTtpKHZfdCwicGFyc2VNZXRhIik7RFVhPUgxLnN0eWxlcztpKHhfdCwiZ2VuZXJhdGVNdXRhdGlvbiIpO2koTFVhLCJnZXRLbm93blByZWZpeGVzIik7aSh5X3QsIm9uVHJlZSIpO2koRVVhLCJvbk5vZGUiKTtpKFBVYSwicmVzb2x2ZUljb25zIik7SVVhPWkoZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9dC50cmFuc2Zvcm0scj1hPT09dm9pZCAwP01kOmEsbj10LnN5bWJvbCxvPW49PT12b2lkIDA/ITE6bixsPXQubWFzayxwPWw9PT12b2lkIDA/bnVsbDpsLGQ9dC5tYXNrSWQsdT1kPT09dm9pZCAwP251bGw6ZCxjPXQuY2xhc3NlcyxiPWM9PT12b2lkIDA/W106Yyx2PXQuYXR0cmlidXRlcyx4PXY9PT12b2lkIDA/e306dixtPXQuc3R5bGVzLGY9bT09PXZvaWQgMD97fTptO2lmKGUpe3ZhciB5PWUucHJlZml4LE09ZS5pY29uTmFtZSx6PWUuaWNvbjtyZXR1cm4gVXJlKGR0KHt0eXBlOiJpY29uIn0sZSksZnVuY3Rpb24oKXtyZXR1cm4gWjMoImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2ljb25EZWZpbml0aW9uOmUscGFyYW1zOnR9KSxwOGUoe2ljb25zOnttYWluOmY4ZSh6KSxtYXNrOnA/ZjhlKHAuaWNvbik6e2ZvdW5kOiExLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsaWNvbjp7fX19LHByZWZpeDp5LGljb25OYW1lOk0sdHJhbnNmb3JtOmR0KGR0KHt9LE1kKSxyKSxzeW1ib2w6byxtYXNrSWQ6dSxleHRyYTp7YXR0cmlidXRlczp4LHN0eWxlczpmLGNsYXNzZXM6Yn19KX0pfX0sInJlbmRlciIpLEFVYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57aWNvbjpQVWEoSVVhKX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6aShmdW5jdGlvbih0KXtyZXR1cm4gdC50cmVlQ2FsbGJhY2s9eV90LHQubm9kZUNhbGxiYWNrPUVVYSx0fSwibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmkyc3ZnPWZ1bmN0aW9uKHQpe3ZhciBhPXQubm9kZSxyPWE9PT12b2lkIDA/ZGk6YSxuPXQuY2FsbGJhY2ssbz1uPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpuO3JldHVybiB5X3QocixvKX0sZS5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb249ZnVuY3Rpb24odCxhKXt2YXIgcj1hLmljb25OYW1lLG49YS5wcmVmaXgsbz1hLnRyYW5zZm9ybSxsPWEuc3ltYm9sLHA9YS5tYXNrLGQ9YS5tYXNrSWQsdT1hLmV4dHJhO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihjLGIpe1Byb21pc2UuYWxsKFttOGUocixuKSxwLmljb25OYW1lP204ZShwLmljb25OYW1lLHAucHJlZml4KTpQcm9taXNlLnJlc29sdmUoe2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyLGljb246e319KV0pLnRoZW4oZnVuY3Rpb24odil7dmFyIHg9UnJlKHYsMiksbT14WzBdLGY9eFsxXTtjKFt0LHA4ZSh7aWNvbnM6e21haW46bSxtYXNrOmZ9LHByZWZpeDpuLGljb25OYW1lOnIsdHJhbnNmb3JtOm8sc3ltYm9sOmwsbWFza0lkOmQsZXh0cmE6dSx3YXRjaGFibGU6ITB9KV0pfSkuY2F0Y2goYil9KX0sZS5nZW5lcmF0ZUFic3RyYWN0SWNvbj1mdW5jdGlvbih0KXt2YXIgYT10LmNoaWxkcmVuLHI9dC5hdHRyaWJ1dGVzLG49dC5tYWluLG89dC50cmFuc2Zvcm0sbD10LnN0eWxlcyxwPUhyZShsKTtwLmxlbmd0aD4wJiYoci5zdHlsZT1wKTt2YXIgZDtyZXR1cm4gczhlKG8pJiYoZD1kaCgiZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nIix7bWFpbjpuLHRyYW5zZm9ybTpvLGNvbnRhaW5lcldpZHRoOm4ud2lkdGgsaWNvbldpZHRoOm4ud2lkdGh9KSksYS5wdXNoKGR8fG4uaWNvbikse2NoaWxkcmVuOmEsYXR0cmlidXRlczpyfX19LCJwcm92aWRlcyIpfSxOVWE9e21peG91dDppKGZ1bmN0aW9uKCl7cmV0dXJue2xheWVyOmkoZnVuY3Rpb24odCl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHI9YS5jbGFzc2VzLG49cj09PXZvaWQgMD9bXTpyO3JldHVybiBVcmUoe3R5cGU6ImxheWVyIn0sZnVuY3Rpb24oKXtaMygiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7YXNzZW1ibGVyOnQscGFyYW1zOmF9KTt2YXIgbz1bXTtyZXR1cm4gdChmdW5jdGlvbihsKXtBcnJheS5pc0FycmF5KGwpP2wubWFwKGZ1bmN0aW9uKHApe289by5jb25jYXQocC5hYnN0cmFjdCl9KTpvPW8uY29uY2F0KGwuYWJzdHJhY3QpfSksW3t0YWc6InNwYW4iLGF0dHJpYnV0ZXM6e2NsYXNzOlsiIi5jb25jYXQoV3QuY3NzUHJlZml4LCItbGF5ZXJzIildLmNvbmNhdChCMShuKSkuam9pbigiICIpfSxjaGlsZHJlbjpvfV19KX0sImxheWVyIil9fSwibWl4b3V0Iil9LFJVYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57Y291bnRlcjppKGZ1bmN0aW9uKHQpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWEudGl0bGUsbj1yPT09dm9pZCAwP251bGw6cixvPWEuY2xhc3NlcyxsPW89PT12b2lkIDA/W106byxwPWEuYXR0cmlidXRlcyxkPXA9PT12b2lkIDA/e306cCx1PWEuc3R5bGVzLGM9dT09PXZvaWQgMD97fTp1O3JldHVybiBVcmUoe3R5cGU6ImNvdW50ZXIiLGNvbnRlbnQ6dH0sZnVuY3Rpb24oKXtyZXR1cm4gWjMoImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2NvbnRlbnQ6dCxwYXJhbXM6YX0pLG1VYSh7Y29udGVudDp0LnRvU3RyaW5nKCksdGl0bGU6bixleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpjLGNsYXNzZXM6WyIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi1sYXllcnMtY291bnRlciIpXS5jb25jYXQoQjEobCkpfX0pfSl9LCJjb3VudGVyIil9fSwibWl4b3V0Iil9LE9VYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57dGV4dDppKGZ1bmN0aW9uKHQpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWEudHJhbnNmb3JtLG49cj09PXZvaWQgMD9NZDpyLG89YS5jbGFzc2VzLGw9bz09PXZvaWQgMD9bXTpvLHA9YS5hdHRyaWJ1dGVzLGQ9cD09PXZvaWQgMD97fTpwLHU9YS5zdHlsZXMsYz11PT09dm9pZCAwP3t9OnU7cmV0dXJuIFVyZSh7dHlwZToidGV4dCIsY29udGVudDp0fSxmdW5jdGlvbigpe3JldHVybiBaMygiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDp0LHBhcmFtczphfSksY190KHtjb250ZW50OnQsdHJhbnNmb3JtOmR0KGR0KHt9LE1kKSxuKSxleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpjLGNsYXNzZXM6WyIiLmNvbmNhdChXdC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoQjEobCkpfX0pfSl9LCJ0ZXh0Iil9fSwibWl4b3V0IikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlTGF5ZXJzVGV4dD1mdW5jdGlvbih0LGEpe3ZhciByPWEudHJhbnNmb3JtLG49YS5leHRyYSxvPW51bGwsbD1udWxsO2lmKHJTdCl7dmFyIHA9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS5mb250U2l6ZSwxMCksZD10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO289ZC53aWR0aC9wLGw9ZC5oZWlnaHQvcH1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFt0LGNfdCh7Y29udGVudDp0LmlubmVySFRNTCx3aWR0aDpvLGhlaWdodDpsLHRyYW5zZm9ybTpyLGV4dHJhOm4sd2F0Y2hhYmxlOiEwfSldKX19LCJwcm92aWRlcyIpfSx3X3Q9bmV3IFJlZ0V4cCgnIicsInVnIiksa190PVsxMTA1OTIwLDExMTIzMTldLFNfdD1kdChkdChkdChkdCh7fSx7Rm9udEF3ZXNvbWU6e25vcm1hbDoiZmFzIiw0MDA6ImZhcyJ9fSksdmphKSxNVmEpLENqYSkseThlPU9iamVjdC5rZXlzKFNfdCkucmVkdWNlKGZ1bmN0aW9uKHMsZSl7cmV0dXJuIHNbZS50b0xvd2VyQ2FzZSgpXT1TX3RbZV0sc30se30pLEZVYT1PYmplY3Qua2V5cyh5OGUpLnJlZHVjZShmdW5jdGlvbihzLGUpe3ZhciB0PXk4ZVtlXTtyZXR1cm4gc1tlXT10WzkwMF18fEIxKE9iamVjdC5lbnRyaWVzKHQpKVswXVsxXSxzfSx7fSk7aShCVWEsImhleFZhbHVlRnJvbUNvbnRlbnQiKTtpKEhVYSwiaXNTZWNvbmRhcnlMYXllciIpO2kocVVhLCJnZXRQcmVmaXgiKTtpKF9fdCwicmVwbGFjZUZvclBvc2l0aW9uIik7aShqVWEsInJlcGxhY2UiKTtpKFZVYSwicHJvY2Vzc2FibGUiKTtVVWE9aShmdW5jdGlvbihlKXtyZXR1cm4hIWUmJklTdC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBlLmluY2x1ZGVzKHQpfSl9LCJoYXNQc2V1ZG9FbGVtZW50IiksV1VhPWkoZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107dmFyIHQ9bmV3IFNldCxhPWUuc3BsaXQoLywoPyFbXigpXSpcKSkvKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAudHJpbSgpfSk7YT1hLmZsYXRNYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaW5jbHVkZXMoIigiKT9wOnAuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQudHJpbSgpfSl9KTt2YXIgcj1BcmUoYSksbjt0cnl7Zm9yKHIucygpOyEobj1yLm4oKSkuZG9uZTspe3ZhciBvPW4udmFsdWU7aWYoVVVhKG8pKXt2YXIgbD1JU3QucmVkdWNlKGZ1bmN0aW9uKHAsZCl7cmV0dXJuIHAucmVwbGFjZShkLCIiKX0sbyk7bCE9PSIiJiZsIT09IioiJiZ0LmFkZChsKX19fWNhdGNoKHApe3IuZShwKX1maW5hbGx5e3IuZigpfXJldHVybiB0fSwicGFyc2VDU1NSdWxlRm9yUHNldWRvcyIpO2koTV90LCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO0dVYT17aG9va3M6aShmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQucHNldWRvRWxlbWVudHNDYWxsYmFjaz1NX3QsdH0sIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiKX19LCJob29rcyIpLHByb3ZpZGVzOmkoZnVuY3Rpb24oZSl7ZS5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24odCl7dmFyIGE9dC5ub2RlLHI9YT09PXZvaWQgMD9kaTphO1d0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZNX3Qocil9fSwicHJvdmlkZXMiKX0sel90PSExLEtVYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57ZG9tOnt1bndhdGNoOmkoZnVuY3Rpb24oKXtnX3QoKSx6X3Q9ITB9LCJ1bndhdGNoIil9fX0sIm1peG91dCIpLGhvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmkoZnVuY3Rpb24oKXtiX3QoZDhlKCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIix7fSkpfSwiYm9vdHN0cmFwIiksbm9BdXRvOmkoZnVuY3Rpb24oKXtNVWEoKX0sIm5vQXV0byIpLHdhdGNoOmkoZnVuY3Rpb24odCl7dmFyIGE9dC5vYnNlcnZlTXV0YXRpb25zUm9vdDt6X3Q/eDhlKCk6Yl90KGQ4ZSgibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIse29ic2VydmVNdXRhdGlvbnNSb290OmF9KSl9LCJ3YXRjaCIpfX0sImhvb2tzIil9LENfdD1pKGZ1bmN0aW9uKGUpe3ZhciB0PXtzaXplOjE2LHg6MCx5OjAsZmxpcFg6ITEsZmxpcFk6ITEscm90YXRlOjB9O3JldHVybiBlLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYSxyKXt2YXIgbj1yLnRvTG93ZXJDYXNlKCkuc3BsaXQoIi0iKSxvPW5bMF0sbD1uLnNsaWNlKDEpLmpvaW4oIi0iKTtpZihvJiZsPT09ImgiKXJldHVybiBhLmZsaXBYPSEwLGE7aWYobyYmbD09PSJ2IilyZXR1cm4gYS5mbGlwWT0hMCxhO2lmKGw9cGFyc2VGbG9hdChsKSxpc05hTihsKSlyZXR1cm4gYTtzd2l0Y2gobyl7Y2FzZSJncm93IjphLnNpemU9YS5zaXplK2w7YnJlYWs7Y2FzZSJzaHJpbmsiOmEuc2l6ZT1hLnNpemUtbDticmVhaztjYXNlImxlZnQiOmEueD1hLngtbDticmVhaztjYXNlInJpZ2h0IjphLng9YS54K2w7YnJlYWs7Y2FzZSJ1cCI6YS55PWEueS1sO2JyZWFrO2Nhc2UiZG93biI6YS55PWEueStsO2JyZWFrO2Nhc2Uicm90YXRlIjphLnJvdGF0ZT1hLnJvdGF0ZStsO2JyZWFrfXJldHVybiBhfSx0KX0sInBhcnNlVHJhbnNmb3JtU3RyaW5nIiksWVVhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmkoZnVuY3Rpb24odCl7cmV0dXJuIENfdCh0KX0sInRyYW5zZm9ybSIpfX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbih0LGEpe3ZhciByPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLXRyYW5zZm9ybSIpO3JldHVybiByJiYodC50cmFuc2Zvcm09Q190KHIpKSx0fSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbih0KXt2YXIgYT10Lm1haW4scj10LnRyYW5zZm9ybSxuPXQuY29udGFpbmVyV2lkdGgsbz10Lmljb25XaWR0aCxsPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChuLzIsIiAyNTYpIil9LHA9InRyYW5zbGF0ZSgiLmNvbmNhdChyLngqMzIsIiwgIikuY29uY2F0KHIueSozMiwiKSAiKSxkPSJzY2FsZSgiLmNvbmNhdChyLnNpemUvMTYqKHIuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KHIuc2l6ZS8xNiooci5mbGlwWT8tMToxKSwiKSAiKSx1PSJyb3RhdGUoIi5jb25jYXQoci5yb3RhdGUsIiAwIDApIiksYz17dHJhbnNmb3JtOiIiLmNvbmNhdChwLCIgIikuY29uY2F0KGQsIiAiKS5jb25jYXQodSl9LGI9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG8vMiotMSwiIC0yNTYpIil9LHY9e291dGVyOmwsaW5uZXI6YyxwYXRoOmJ9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6ZHQoe30sdi5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6ZHQoe30sdi5pbm5lciksY2hpbGRyZW46W3t0YWc6YS5pY29uLnRhZyxjaGlsZHJlbjphLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpkdChkdCh7fSxhLmljb24uYXR0cmlidXRlcyksdi5wYXRoKX1dfV19fX0sInByb3ZpZGVzIil9LHc4ZT17eDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn07aShUX3QsImZpbGxCbGFjayIpO2koWlVhLCJkZUdyb3VwIik7WFVhPXtob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbih0LGEpe3ZhciByPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2siKSxuPXI/VnJlKHIuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8udHJpbSgpfSkpOmlfdCgpO3JldHVybiBuLnByZWZpeHx8KG4ucHJlZml4PWNoKCkpLHQubWFzaz1uLHQubWFza0lkPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2staWQiKSx0fSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RNYXNrPWZ1bmN0aW9uKHQpe3ZhciBhPXQuY2hpbGRyZW4scj10LmF0dHJpYnV0ZXMsbj10Lm1haW4sbz10Lm1hc2ssbD10Lm1hc2tJZCxwPXQudHJhbnNmb3JtLGQ9bi53aWR0aCx1PW4uaWNvbixjPW8ud2lkdGgsYj1vLmljb24sdj1IVmEoe3RyYW5zZm9ybTpwLGNvbnRhaW5lcldpZHRoOmMsaWNvbldpZHRoOmR9KSx4PXt0YWc6InJlY3QiLGF0dHJpYnV0ZXM6ZHQoZHQoe30sdzhlKSx7fSx7ZmlsbDoid2hpdGUifSl9LG09dS5jaGlsZHJlbj97Y2hpbGRyZW46dS5jaGlsZHJlbi5tYXAoVF90KX06e30sZj17dGFnOiJnIixhdHRyaWJ1dGVzOmR0KHt9LHYuaW5uZXIpLGNoaWxkcmVuOltUX3QoZHQoe3RhZzp1LnRhZyxhdHRyaWJ1dGVzOmR0KGR0KHt9LHUuYXR0cmlidXRlcyksdi5wYXRoKX0sbSkpXX0seT17dGFnOiJnIixhdHRyaWJ1dGVzOmR0KHt9LHYub3V0ZXIpLGNoaWxkcmVuOltmXX0sTT0ibWFzay0iLmNvbmNhdChsfHxIU3QoKSksej0iY2xpcC0iLmNvbmNhdChsfHxIU3QoKSksTj17dGFnOiJtYXNrIixhdHRyaWJ1dGVzOmR0KGR0KHt9LHc4ZSkse30se2lkOk0sbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3gseV19LEM9e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDp6fSxjaGlsZHJlbjpaVWEoYil9LE5dfTtyZXR1cm4gYS5wdXNoKEMse3RhZzoicmVjdCIsYXR0cmlidXRlczpkdCh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdCh6LCIpIiksbWFzazoidXJsKCMiLmNvbmNhdChNLCIpIil9LHc4ZSl9KSx7Y2hpbGRyZW46YSxhdHRyaWJ1dGVzOnJ9fX0sInByb3ZpZGVzIil9LFFVYT17cHJvdmlkZXM6aShmdW5jdGlvbihlKXt2YXIgdD0hMTtuaC5tYXRjaE1lZGlhJiYodD1uaC5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpLGUubWlzc2luZ0ljb25BYnN0cmFjdD1mdW5jdGlvbigpe3ZhciBhPVtdLHI9e2ZpbGw6ImN1cnJlbnRDb2xvciJ9LG49e2F0dHJpYnV0ZVR5cGU6IlhNTCIscmVwZWF0Q291bnQ6ImluZGVmaW5pdGUiLGR1cjoiMnMifTthLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpkdChkdCh7fSxyKSx7fSx7ZDoiTTE1Ni41LDQ0Ny43bC0xMi42LDI5LjVjLTE4LjctOS41LTM1LjktMjEuMi01MS41LTM0LjlsMjIuNy0yMi43QzEyNy42LDQzMC41LDE0MS41LDQ0MCwxNTYuNSw0NDcuN3ogTTQwLjYsMjcySDguNSBjMS40LDIxLjIsNS40LDQxLjcsMTEuNyw2MS4xTDUwLDMyMS4yQzQ1LjEsMzA1LjUsNDEuOCwyODksNDAuNiwyNzJ6IE00MC42LDI0MGMxLjQtMTguOCw1LjItMzcsMTEuMS01NC4xbC0yOS41LTEyLjYgQzE0LjcsMTk0LjMsMTAsMjE2LjcsOC41LDI0MEg0MC42eiBNNjQuMywxNTYuNWM3LjgtMTQuOSwxNy4yLTI4LjgsMjguMS00MS41TDY5LjcsOTIuM2MtMTMuNywxNS42LTI1LjUsMzIuOC0zNC45LDUxLjUgTDY0LjMsMTU2LjV6IE0zOTcsNDE5LjZjLTEzLjksMTItMjkuNCwyMi4zLTQ2LjEsMzAuNGwxMS45LDI5LjhjMjAuNy05LjksMzkuOC0yMi42LDU2LjktMzcuNkwzOTcsNDE5LjZ6IE0xMTUsOTIuNCBjMTMuOS0xMiwyOS40LTIyLjMsNDYuMS0zMC40bC0xMS45LTI5LjhjLTIwLjcsOS45LTM5LjgsMjIuNi01Ni44LDM3LjZMMTE1LDkyLjR6IE00NDcuNywzNTUuNWMtNy44LDE0LjktMTcuMiwyOC44LTI4LjEsNDEuNSBsMjIuNywyMi43YzEzLjctMTUuNiwyNS41LTMyLjksMzQuOS01MS41TDQ0Ny43LDM1NS41eiBNNDcxLjQsMjcyYy0xLjQsMTguOC01LjIsMzctMTEuMSw1NC4xbDI5LjUsMTIuNiBjNy41LTIxLjEsMTIuMi00My41LDEzLjYtNjYuOEg0NzEuNHogTTMyMS4yLDQ2MmMtMTUuNyw1LTMyLjIsOC4yLTQ5LjIsOS40djMyLjFjMjEuMi0xLjQsNDEuNy01LjQsNjEuMS0xMS43TDMyMS4yLDQ2MnogTTI0MCw0NzEuNGMtMTguOC0xLjQtMzctNS4yLTU0LjEtMTEuMWwtMTIuNiwyOS41YzIxLjEsNy41LDQzLjUsMTIuMiw2Ni44LDEzLjZWNDcxLjR6IE00NjIsMTkwLjhjNSwxNS43LDguMiwzMi4yLDkuNCw0OS4yaDMyLjEgYy0xLjQtMjEuMi01LjQtNDEuNy0xMS43LTYxLjFMNDYyLDE5MC44eiBNOTIuNCwzOTdjLTEyLTEzLjktMjIuMy0yOS40LTMwLjQtNDYuMWwtMjkuOCwxMS45YzkuOSwyMC43LDIyLjYsMzkuOCwzNy42LDU2LjkgTDkyLjQsMzk3eiBNMjcyLDQwLjZjMTguOCwxLjQsMzYuOSw1LjIsNTQuMSwxMS4xbDEyLjYtMjkuNUMzMTcuNywxNC43LDI5NS4zLDEwLDI3Miw4LjVWNDAuNnogTTE5MC44LDUwIGMxNS43LTUsMzIuMi04LjIsNDkuMi05LjRWOC41Yy0yMS4yLDEuNC00MS43LDUuNC02MS4xLDExLjdMMTkwLjgsNTB6IE00NDIuMyw5Mi4zTDQxOS42LDExNWMxMiwxMy45LDIyLjMsMjkuNCwzMC41LDQ2LjEgbDI5LjgtMTEuOUM0NzAsMTI4LjUsNDU3LjMsMTA5LjQsNDQyLjMsOTIuM3ogTTM5Nyw5Mi40bDIyLjctMjIuN2MtMTUuNi0xMy43LTMyLjgtMjUuNS01MS41LTM0LjlsLTEyLjYsMjkuNSBDMzcwLjQsNzIuMSwzODQuNCw4MS41LDM5Nyw5Mi40eiJ9KX0pO3ZhciBvPWR0KGR0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJvcGFjaXR5In0pLGw9e3RhZzoiY2lyY2xlIixhdHRyaWJ1dGVzOmR0KGR0KHt9LHIpLHt9LHtjeDoiMjU2IixjeToiMzY0IixyOiIyOCJ9KSxjaGlsZHJlbjpbXX07cmV0dXJuIHR8fGwuY2hpbGRyZW4ucHVzaCh7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOmR0KGR0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJyIix2YWx1ZXM6IjI4OzE0OzI4OzI4OzE0OzI4OyJ9KX0se3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpkdChkdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MTsxOzA7MTsifSl9KSxhLnB1c2gobCksYS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6ZHQoZHQoe30scikse30se29wYWNpdHk6IjEiLGQ6Ik0yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnoifSksY2hpbGRyZW46dD9bXTpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpkdChkdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MDswOzA7MTsifSl9XX0pLHR8fGEucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOmR0KGR0KHt9LHIpLHt9LHtvcGFjaXR5OiIwIixkOiJNMjMyLjUsMTM0LjVsNywxNjhjMC4zLDYuNCw1LjYsMTEuNSwxMiwxMS41aDljNi40LDAsMTEuNy01LjEsMTItMTEuNWw3LTE2OGMwLjMtNi44LTUuMi0xMi41LTEyLTEyLjVoLTIzIEMyMzcuNywxMjIsMjMyLjIsMTI3LjcsMjMyLjUsMTM0LjV6In0pLGNoaWxkcmVuOlt7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOmR0KGR0KHt9LG8pLHt9LHt2YWx1ZXM6IjA7MDsxOzE7MDswOyJ9KX1dfSkse3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6Im1pc3NpbmcifSxjaGlsZHJlbjphfX19LCJwcm92aWRlcyIpfSxKVWE9e2hvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57cGFyc2VOb2RlQXR0cmlidXRlczppKGZ1bmN0aW9uKHQsYSl7dmFyIHI9YS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtc3ltYm9sIiksbj1yPT09bnVsbD8hMTpyPT09IiI/ITA6cjtyZXR1cm4gdC5zeW1ib2w9bix0fSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIil9LGVXYT1bVlZhLEFVYSxOVWEsUlVhLE9VYSxHVWEsS1VhLFlVYSxYVWEsUVVhLEpVYV07blVhKGVXYSx7bWl4b3V0c1RvOl9sfSk7dFdhPV9sLm5vQXV0byxhV2E9X2wuY29uZmlnLHNXYT1fbC5saWJyYXJ5LGlXYT1fbC5kb20scldhPV9sLnBhcnNlLG9XYT1fbC5maW5kSWNvbkRlZmluaXRpb24sbldhPV9sLnRvSHRtbCxHaz1fbC5pY29uLGxXYT1fbC5sYXllcixjV2E9X2wudGV4dCxkV2E9X2wuY291bnRlcn0pO3ZhciB1V2EsUzhlLCRfdCxEX3QsTF90LEVfdCxfOGUsUF90LElfdCxBX3QsTl90LFJfdCxPX3QsRl90LEJfdCxIX3QscV90LGpfdCxWX3QsVV90LFdfdCxHX3QsS190LFlfdCxaX3QsWF90LFFfdCxKX3QsZU10LE04ZSx0TXQsYU10LHNNdCxpTXQsck10LG9NdCxuTXQsbE10LGNNdCxkTXQsdU10LHBNdCxoTXQsZk10LG1NdCxnTXQsYk10LHZNdCx4TXQsejhlLHlNdCx3TXQsa010LFNNdCxfTXQsTU10LHpNdCxDTXQsVE10LCRNdCxETXQsTE10LEVNdCxQTXQsSU10LEFNdCxOTXQsUk10LE9NdCxGTXQsQk10LEM4ZSxITXQscU10LGpNdCxWTXQsVU10LFdNdCxHTXQsS010LFlNdCxaTXQsWE10LFFNdCxKTXQsZXp0LHR6dCxhenQsc3p0LGl6dCxyenQsb3p0LG56dCxsenQsY3p0LGR6dCx1enQscHp0LGh6dCxmenQsbXp0LGd6dCxienQsdnp0LHh6dCx5enQsd3p0LGt6dCxTenQsX3p0LE16dCx6enQsQ3p0LE1iLFR6dCwkenQsVDhlLER6dCxMenQsRXp0LCQ4ZSxQenQsSXp0LFlyZSxBenQsTnp0LEQ4ZSxSenQsT3p0LEZ6dCxCenQsSHp0LEw4ZSxxenQsanp0LFZ6dCxVenQsV3p0LEd6dCxLenQsWXp0LFp6dCxYenQsRThlLFF6dCxKenQsZUN0LHRDdCxhQ3Qsc0N0LGlDdCxyQ3Qsb0N0LFA4ZSxuQ3QsbEN0LGNDdCxkQ3QsdUN0LHBDdCxoQ3QsZkN0LEk4ZSxtQ3QsZ0N0LGJDdCxBOGUsdkN0LHhDdCx5Q3Qsd0N0LGtDdCxTQ3QsX0N0LE1DdCx6Q3QsQ0N0LFRDdCwkQ3QsREN0LExDdCxFQ3QsUEN0LElDdCxBQ3QsTkN0LFJDdCxPQ3QsRkN0LEJDdCxIQ3QscUN0LGpDdCxWQ3QsTjhlLFVDdCxXQ3QsR0N0LEtDdCxZQ3QsWkN0LFhDdCxSOGUsUUN0LEpDdCxlVHQsdFR0LGFUdCxzVHQsaVR0LHJUdCxvVHQsblR0LGxUdCxjVHQsZFR0LHVUdCxwVHQsaFR0LGZUdCxtVHQsZ1R0LGJUdCx2VHQseFR0LHlUdCx3VHQsa1R0LFNUdCxfVHQsTVR0LHpUdCxDVHQsVFR0LCRUdCxEVHQsTFR0LEVUdCxQVHQsSVR0LEFUdCxOVHQsUlR0LE9UdCxGVHQsemIsQlR0LEhUdCxxVHQsalR0LFZUdCxPOGUsVVR0LFdUdCxHVHQsQ2IsS1R0LFlUdCxaVHQsWFR0LFFUdCxKVHQsRjhlLGUkdCx0JHQsYSR0LHMkdCxpJHQsciR0LG8kdCxuJHQsbCR0LGMkdCxkJHQsdSR0LHAkdCxoJHQsZiR0LG0kdCxYMyxnJHQsYiR0LHYkdCx4JHQseSR0LHckdCxrJHQsUyR0LF8kdCxNJHQseiR0LEMkdCxUJHQsJCR0LEQkdCxMJHQsRSR0LFAkdCxJJHQsQSR0LE4kdCxSJHQsTyR0LEYkdCxCJHQsSCR0LHEkdCxqJHQsViR0LFUkdCxXJHQsRyR0LEskdCxZJHQsWiR0LFgkdCxRJHQsSiR0LGVEdCxCOGUsdER0LGFEdCxzRHQsaUR0LHJEdCxvRHQsbkR0LGxEdCxjRHQsZER0LHVEdCxwRHQsaER0LGZEdCxtRHQsSDhlLGdEdCxiRHQsdkR0LHhEdCx5RHQsd0R0LHE4ZSxrRHQsU0R0LF9EdCxNRHQsekR0LENEdCxURHQsJER0LEREdCxMRHQsRUR0LFBEdCxJRHQsQUR0LE5EdCxSRHQsT0R0LEZEdCxCRHQsSER0LHFEdCxqRHQsVkR0LFVEdCxXRHQsR0R0LEtEdCxZRHQsajhlLFRiLFpEdCxYRHQsUUR0LEpEdCxlTHQsdEx0LGFMdCxzTHQsaUx0LHJMdCxvTHQsbkx0LFY4ZSxsTHQsY0x0LGRMdCx1THQscEx0LGhMdCxmTHQsbUx0LCRiLGdMdCxiTHQsdkx0LHhMdCx5THQsd0x0LGtMdCxTTHQsX0x0LE1MdCx6THQsQ0x0LFRMdCxVOGUsJEx0LERMdCxMTHQsRUx0LFBMdCxJTHQsQUx0LE5MdCxSTHQsT0x0LEZMdCxCTHQsSEx0LHFMdCxqTHQsVkx0LFVMdCxXOGUsV0x0LEdMdCxLTHQsRzhlLFlMdCxaTHQsWEx0LFFMdCxEYixKTHQsSzhlLGVFdCx0RXQsYUV0LHNFdCxpRXQsckV0LFk4ZSxvRXQsbkV0LGxFdCxjRXQsZEV0LHVFdCxwRXQsaEV0LGZFdCxtRXQsZ0V0LGJFdCx2RXQseEV0LHlFdCx3RXQsa0V0LFNFdCxfRXQsTUV0LHpFdCxDRXQsVEV0LCRFdCxERXQsWjhlLExFdCxFRXQsUEV0LElFdCxBRXQsTkV0LFJFdCxPRXQsWDhlLEZFdCxCRXQsSEV0LHFFdCxqRXQsVkV0LFVFdCxXRXQsR0V0LEtFdCxZRXQsWkV0LFhFdCxRRXQsUThlLEpFdCxlUHQsdFB0LGFQdCxzUHQsaVB0LHJQdCxvUHQsblB0LGxQdCxjUHQsZFB0LHVQdCxwUHQsaFB0LEo4ZSxmUHQsbVB0LGdQdCxiUHQsdlB0LHhQdCx5UHQsd1B0LGtQdCxTUHQsX1B0LE1QdCx6UHQsQ1B0LExiLFRQdCwkUHQsRFB0LExQdCxFUHQsUFB0LElQdCxBUHQsTlB0LFJQdCxlZ2UsT1B0LEZQdCxCUHQsSFB0LHFQdCxqUHQsVlB0LFVQdCxXUHQsR1B0LEtQdCxZUHQsWlB0LFhQdCxRUHQsSlB0LGVJdCx0SXQsYUl0LHNJdCxpSXQsckl0LG9JdCxuSXQsbEl0LGNJdCxkSXQsdUl0LHBJdCxoSXQsZkl0LG1JdCxnSXQsYkl0LHZJdCx4SXQseUl0LHdJdCx0Z2Usa0l0LFNJdCxfSXQsTUl0LHpJdCxhZ2UsQ0l0LFRJdCwkSXQsREl0LExJdCxFSXQscFdhLHNnZT1nKCgpPT57dVdhPSJmYWIiLFM4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0aHViIixpY29uOls0NDgsNTEyLFsiZ2l0aHViLXNxdWFyZSJdLCJmMDkyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNjUuOCA0MDcuN2MwLTEuOCAwLTYgLjEtMTEuNiAuMS0xMS40IC4xLTI4LjggLjEtNDMuNyAwLTE1LjYtNS4yLTI1LjUtMTEuMy0zMC43IDM3LTQuMSA3Ni05LjIgNzYtNzMuMSAwLTE4LjItNi41LTI3LjMtMTcuMS0zOSAxLjctNC4zIDcuNC0yMi0xLjctNDUtMTMuOS00LjMtNDUuNyAxNy45LTQ1LjcgMTcuOS0yNi42LTcuNS01Ni42LTcuNS04My4yIDAgMCAwLTMxLjgtMjIuMi00NS43LTE3LjktOS4xIDIyLjktMy41IDQwLjYtMS43IDQ1LTEwLjYgMTEuNy0xNS42IDIwLjgtMTUuNiAzOSAwIDYzLjYgMzcuMyA2OSA3NC4zIDczLjEtNC44IDQuMy05LjEgMTEuNy0xMC42IDIyLjMtOS41IDQuMy0zMy44IDExLjctNDguMy0xMy45LTkuMS0xNS44LTI1LjUtMTcuMS0yNS41LTE3LjEtMTYuMi0uMi0xLjEgMTAuMi0xLjEgMTAuMiAxMC44IDUgMTguNCAyNC4yIDE4LjQgMjQuMiA5LjcgMjkuNyA1Ni4xIDE5LjcgNTYuMSAxOS43IDAgOSAuMSAyMS43IC4xIDMwLjYgMCA0LjggLjEgOC42IC4xIDEwIDAgNC4zLTMgOS41LTExLjUgOC02Ni0yMi4xLTExMi4yLTg0LjktMTEyLjItMTU4LjMgMC05MS44IDcwLjItMTYxLjUgMTYyLTE2MS41UzM4OCAxNjUuNiAzODggMjU3LjRjLjEgNzMuNC00NC43IDEzNi4zLTExMC43IDE1OC4zLTguNCAxLjUtMTEuNS0zLjctMTEuNS04em0tOTAuNS01NC44Yy0uMi0xLjUgMS4xLTIuOCAzLTMuMiAxLjktLjIgMy43IC42IDMuOSAxLjkgLjMgMS4zLTEgMi42LTMgMy0xLjkgLjQtMy43LS40LTMuOS0xLjd6bS05LjEgMy4yYy0yLjIgLjItMy43LS45LTMuNy0yLjQgMC0xLjMgMS41LTIuNCAzLjUtMi40IDEuOS0uMiAzLjcgLjkgMy43IDIuNCAwIDEuMy0xLjUgMi40LTMuNSAyLjR6bS0xNC4zLTIuMmMtMS45LS40LTMuMi0xLjktMi44LTMuMnMyLjQtMS45IDQuMS0xLjVjMiAuNiAzLjMgMi4xIDIuOCAzLjQtLjQgMS4zLTIuNCAxLjktNC4xIDEuM3ptLTEyLjUtNy4zYy0xLjUtMS4zLTEuOS0zLjItLjktNC4xIC45LTEuMSAyLjgtLjkgNC4zIC42IDEuMyAxLjMgMS44IDMuMyAuOSA0LjEtLjkgMS4xLTIuOCAuOS00LjMtLjZ6bS04LjUtMTBjLTEuMS0xLjUtMS4xLTMuMiAwLTMuOSAxLjEtLjkgMi44LS4yIDMuNyAxLjMgMS4xIDEuNSAxLjEgMy4zIDAgNC4xLS45IC42LTIuNiAwLTMuNy0xLjV6bS02LjMtOC44Yy0xLjEtMS4zLTEuMy0yLjgtLjQtMy41IC45LS45IDIuNC0uNCAzLjUgLjYgMS4xIDEuMyAxLjMgMi44IC40IDMuNS0uOSAuOS0yLjQgLjQtMy41LS42em0tNi02LjRjLTEuMy0uNi0xLjktMS43LTEuNS0yLjYgLjQtLjYgMS41LS45IDIuOC0uNCAxLjMgLjcgMS45IDEuOCAxLjUgMi42LS40IC45LTEuNyAxLjEtMi44IC40eiJdfSwkX3Q9UzhlLERfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGluay1wZWFrcyIsaWNvbjpbNTc2LDUxMixbXSwiZjczMSIsIk00NjUuNCA0MDkuNGw4Ny4xLTE1MC4yLTMyLS4zLTU1LjEgOTUtMjA2LjItMzUzLjktMjM2LjIgNDA3LjQgMzIgLjMgMjA0LjItMzUyLjEgMjA2LjIgMzUzLjh6TTExMC4xIDM2NS4zbDMyLjEgMCAxMTcuNC0yMDIuNSAyMDMuNCAzNDkuMSAzMi41IC4xLTIzNS44LTQwNC42LTE0OS42IDI1Ny45eiJdfSxMX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLWRyaXZlIixpY29uOls1MTIsNTEyLFtdLCJmM2FhIiwiTTMzOSAzMTQuOUwxNzUuNCAzMiAzMzYuNiAzMiA1MDAuMiAzMTQuOSAzMzkgMzE0Ljl6TTIwMS41IDMzOC41bC04MC42IDE0MS41IDMxMC41IDAgODAuNi0xNDEuNS0zMTAuNSAwek0xNTQuMSA2Ny40TDAgMzM4LjUgODAuNiA0ODAgMjM3IDIwOC44IDE1NC4xIDY3LjR6Il19LEVfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdXRvcHJlZml4ZXIiLGljb246WzY0MCw1MTIsW10sImY0MWMiLCJNMzE4LjQgMTZsLTE2MSA0ODAgNzcuNSAwIDI1LjQtODEuNCAxMTkuNSAwIDI1LjIgODEuNCA3Ny41IDAtMTY0LjEtNDgwek0yNzguMSAzNTcuOWw0MS4yLTEzMC40IDEuNSAwIDQwLjkgMTMwLjQtODMuNiAwek02NDAgNDA1TDYzMCAzNzMuNiA0NjIuMSAzNTggNDgxLjUgNDE0LjUgNjQwIDQwNXpNMTc3LjkgMzU4TDEwIDM3My43IDAgNDA1IDE1OC41IDQxNC40IDE3Ny45IDM1OHoiXX0sXzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS12aWFkZW8iLGljb246WzQ0OCw1MTIsWyJ2aWFkZW8tc3F1YXJlIl0sImYyYWEiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTExOC4zIDM4MS4yYy02OC03My42LTE5LjgtMTk2LjEgODEuMi0xOTYuMSAxMy4zIDAgMjYuNiAyLjEgMzkuMSA2LjctNC4zIDguNC03LjMgMTcuNi04LjQgMjcuMS05LjctNC4xLTIwLjItNi0zMC43LTYtNDguOCAwLTg0LjYgNDEuNy04NC42IDg4LjkgMCA0MyAyOC41IDc4LjcgNjkuNSA4NS45IDYxLjUtMjQgNzIuOS0xMTcuNiA3Mi45LTE3NSAwLTcuMyAwLTE0LjgtLjYtMjIuMS0xMS4yLTMyLjktMjYuNi02NC42LTQ0LjItOTQuNSAyNy4xIDE4LjMgNDEuOSA2Mi41IDQ0LjIgOTQuMWwwIC40YzcuNyAyMi41IDExLjggNDYuMiAxMS44IDcwIDAgNTQuMS0yMS45IDk5LTY4LjMgMTI4LjJsLTIuNCAuMmM1MCAxIDg2LjItMzguNiA4Ni4yLTg3LjIgMC0xMi4yLTIuMS0yNC4zLTYuOS0zNS43IDkuNS0xLjkgMTguNS01LjYgMjYuNC0xMC41IDE1LjMgMzYuNiAxMi42IDg3LjMtMjIuOCAxMjUuNi00Mi40IDQ2LjItMTIwIDQ2LjYtMTYyLjQgMHpNMjc0LjYgMjE3LjZjMjEuOS0xMiA0OS42LTMwLjcgNjIuMy01MyAxLjUtMyA0LjEtOC42IDQuNS0xMi0xMi41IDI3LjktNDQuMiA0OS44LTczLjkgNTYuNy00LjctNy4zLTcuNS0xNS41LTcuNS0yNC4zIDAtMTAuMyA1LjItMjQuMSAxMi45LTMxLjYgOC4zLTcuOSAxOC0xMC45IDI3LjktMTQuMSAxNi01LjEgMzIuNS0xMC4zIDQ0LjUtMzUuOSAzMi41IDQ2LjIgMTMuMSAxMzAuMy0zNi4zIDEzMC4zLTEzLjMgMC0yNS4xLTcuMS0zNC40LTE2LjF6Il19LFBfdD1fOGUsSV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNwYW5lbCIsaWNvbjpbNjQwLDUxMixbXSwiZjM4OCIsIk0yMTAuMyAyMjAuMmMtNS42LTI0LjgtMjYuOS00MS4yLTUxLTQxLjJsLTM3IDBjLTcuMSAwLTEyLjUgNC41LTE0LjMgMTAuOUw3My4xIDMyMCA5Ny44IDMxOS45YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2wyNS44LTk1LjcgMTkuOCAwYzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZsLTEwLjMgMGMtNyAwLTEyLjUgNC42LTE0LjMgMTAuOGwtNi40IDIzLjggMzIgMGMzNy4yIDAgNTguMy0zNi4yIDUxLjctNjUuM3ptLTE1Ni41IDI4bDE4LjYgMGM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjYtNDAgMEMzMCAyMTMuNyA5IDIyNy44IDEuNyAyNTQuOC03IDI4OC42IDE4LjUgMzIwIDUyIDMyMGwxMi40IDAgNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNsLTExLjMgMGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhsLTc3LjkgMC0zLjUgMTMuNGMtMi40IDkuNiA0LjUgMTguNSAxNC4yIDE4LjVsNTcuNSAwYzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNsLTM0LjkgMGMtNS4zIDAtNS4zLTcuOSAwLTcuOWwyMS42IDBjNi44IDAgMTIuMy00LjYgMTQuMi0xMC44bDMuNS0xMy4yLTQ4LjQgMGMtMzkuMiAwLTQzLjYgNjMuOC0uNyA2My44bDU3LjUgLjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5bC0xOC45IDBjLTQuOSAwLTkuMiAzLjItMTAuNCA3LjlMNTY4LjIgMzIwYzIwLjcgMCAzOS44LTEzLjggNDQuOS0zNC41bDI2LjUtOTguMmMxLjItNC4zLTItOC4zLTYuNS04LjN6TTM5Ni44IDIxMy43bDAgLjEtNDguMyAwLTI2LjIgOThjLTEuMiA0LjQgMi4yIDguMyA2LjQgOC4zbDE4LjkgMGM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0IDE5LjggMGMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNsMTkuMSAwYzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmwzMi45IDBjMi42IDAgNC42IDIuNCAzLjkgNS4xbC0uNyAyLjZjLS42IDItMS45IDMtMy45IDNsLTIxLjYgMGMtNyAwLTEyLjYgNC42LTE0LjIgMTAuOGwtMy41IDEzIDUzLjQgMGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhsLTQ3LjMgMGMtMTcuOSAwLTMzLjggMTItMzguNiAyOS42bC0xMC44IDQwYy01IDE3LjcgOC4zIDM2LjcgMjguMyAzNi43bDY2LjcgMGM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsNS43LTIxLTczLjMgMHoiXX0sQV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lbmRlbGV5IixpY29uOls2NDAsNTEyLFtdLCJmN2IzIiwiTTYyNC42IDMyNS4yYy0xMi4zLTEyLjQtMjkuNy0xOS4yLTQ4LjQtMTcuMi00My4zLTEtNDkuNy0zNC45LTM3LjUtOTguOCAyMi44LTU3LjUtMTQuOS0xMzEuNS04Ny40LTEzMC44LTc3LjQgLjctODEuNyA4Mi0xMzAuOSA4Mi00OC4xIDAtNTQtODEuMy0xMzAuOS04Mi03Mi45LS44LTExMC4xIDczLjMtODcuNCAxMzAuOCAxMi4yIDYzLjkgNS44IDk3LjgtMzcuNSA5OC44LTIxLjItMi4zLTM3IDYuNS01MyAyMi41LTE5LjkgMTkuNy0xOS4zIDk0LjggNDIuNiAxMDIuNiA0Ny4xIDUuOSA4MS42LTQyLjkgNjEuMi04Ny44LTQ3LjMtMTAzLjcgMTg1LjktMTA2LjEgMTQ2LjUtOC4yLS4xIC4xLS4yIC4yLS4zIC40LTI2LjggNDIuOCA2LjggOTcuNCA1OC44IDk1LjIgNTIuMSAyLjEgODUuNC01Mi42IDU4LjgtOTUuMi0uMS0uMi0uMi0uMy0uMy0uNC0zOS40LTk3LjkgMTkzLjgtOTUuNSAxNDYuNSA4LjItNC42IDEwLTYuNyAyMS4zLTUuNyAzMyA0LjkgNTMuNCA2OC43IDc0LjEgMTA0LjkgMzUuMiAxNy44LTE0LjggMjMuMS02NS42IDAtODguM3pNMzIwLjcgMzA2LjFsLS42IDBjLTQzLjQgMC02Mi44LTM3LjUtNjIuOC02Mi44IDAtMzQuNyAyOC4yLTYyLjggNjIuOC02Mi44bC42IDBjMzQuNyAwIDYyLjggMjguMSA2Mi44IDYyLjggMCAyNS0xOS4yIDYyLjgtNjIuOCA2Mi44eiJdfSxOX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJhZnQyZGlnaXRhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM5NiIsIk00OTYgMzk4LjFsLTE0NC04Mi4yIDAgNjQuNy05MS4zIDBjMzAuOC0zNSA4MS44LTk1LjkgMTExLjgtMTQ5LjMgMzUuMi02Mi42IDE2LjEtMTIzLjQtMTIuOC0xNTMuMy00LjQtNC42LTYyLjItNjIuOS0xNjYtNDEuMi01OS4xIDEyLjQtODkuNCA0My40LTEwNC4zIDY3LjMtMTMuMSAyMC45LTE3IDM5LjgtMTguMiA0Ny43LTUuNSAzMyAxOS40IDY3LjEgNTYuNyA2Ny4xIDMxLjcgMCA1Ny4zLTI1LjcgNTcuMy01Ny40IDAtMjcuMS0xOS43LTUyLjEtNDgtNTYuOCAxLjgtNy4zIDE3LjctMjEuMSAyNi4zLTI0LjcgNDEuMS0xNy4zIDc4IDUuMiA4My4zIDMzLjUgOC4zIDQ0LjMtMzcuMSA5MC40LTY5LjcgMTI3LjYtNzYuNiA4Ny0xNDIuOCAxNTUuNy0xNjEuMSAxNzQuOGwzMzYtLjEgMCA2NC4yIDE0NC04MS45ek0zODUuOSAzNzFsNDcuMSAyNy4yLTQ3LjEgMjcuMiAwLTU0LjR6TTEwNS40IDE2MS40YTIyLjQgMjIuNCAwIDEgMSA0NC44IDAgMjIuNCAyMi40IDAgMSAxIC00NC44IDB6TTk4LjUgMzgwLjVjMjUuNi0yNy40IDk3LjctMTA0LjcgMTUwLjgtMTY5LjkgMzUuMS00My4xIDQwLjMtODIuNCAyOC40LTExMi43LTcuNC0xOC44LTE3LjUtMzAuMi0yNC4zLTM1LjcgNDUuMyAyLjEgNjggMjMuNCA4Mi4yIDM4LjMgMCAwIDQyLjQgNDguMiA1LjggMTEzLjMtMzcgNjUuOS0xMTAuOSAxNDcuNS0xMjguNSAxNjYuN2wtMTE0LjQgMHoiXX0sUl90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlcGx5ZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlNiIsIk0zMjAgNDgwbC0xOTIgMEM1Ny42IDQ4MCAwIDQyMi40IDAgMzUyTDAgMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmwxOTIgMGM3MC40IDAgMTI4IDU3LjYgMTI4IDEyOGwwIDE5MmMwIDcwLjQtNTcuNiAxMjgtMTI4IDEyOHpNMTkzLjQgMjczLjJjLTYuMS0yLTExLjYtMy4xLTE2LjQtMy4xLTcuMiAwLTEzLjUgMS45LTE4LjkgNS42cy05LjYgOS0xMi44IDE1LjhsLTEuMSAwLTQuMi0xOC4zLTI4IDAgMCAxMzguOSAzNi4xIDAgMC04OS43YzEuNS01LjQgNC40LTkuOCA4LjctMTMuMnM5LjgtNS4xIDE2LjItNS4xYzQuNiAwIDkuOCAxIDE1LjYgMy4xbDQuOC0zNHpNMzA4LjYgMzc2LjZjLTMuMiAyLjQtNy43IDQuOC0xMy43IDcuMXMtMTIuOCAzLjUtMjAuNCAzLjVjLTEyLjIgMC0yMS4xLTMtMjYuNS04LjktNS41LTUuOS04LjUtMTQuNy05LTI2LjRsODMuMyAwYy45LTQuOCAxLjYtOS40IDIuMS0xMy45IC41LTQuNCAuNy04LjYgLjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNnMxNy4xLTYuOCAyMi42LTExLjJsLTEyLTIzLjZ6bS0yMS44LTcwLjNjMy44IDUuNCA1LjMgMTMuMSA0LjYgMjMuMWwtNTEuNyAwYy45LTkuNCAzLjctMTcgOC4yLTIyLjZzMTEuNS04LjUgMjEtOC41YzguMi0uMSAxNC4xIDIuNiAxNy45IDh6bTc5LjkgMi41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40IDIgMTEuNyA2LjEgMTUuNnptMCAxMDAuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNGMwIDYuNiAyIDExLjcgNi4xIDE1LjZ6Il19LE9fdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbXBpcmUiLGljb246WzUxMiw1MTIsW10sImYxZDEiLCJNMjk1LjYgNTQuMmMtMTAuOC0yLjItMjIuMS0zLjMtMzMuNS0zLjZsMC0xOC4yYzc4LjEgMi4yIDE0Ni4xIDQ0IDE4NC42IDEwNi42bC0xNS44IDkuMWMtNi4xLTkuNy0xMi43LTE4LjgtMjAuMi0yNy4xbC0xOCAxNS41Yy0yNi0yOS42LTYxLjQtNTAuNy0xMDEuOS01OC40bDQuOC0yMy45ek02MS40IDMyMi40bDIzLTcuN2MtNi40LTE4LjMtMTAtMzguMi0xMC01OC43czMuMy00MC40IDkuNy01OC43bC0yMi43LTcuN2MzLjYtMTAuOCA4LjMtMjEuMyAxMy42LTMxbC0xNS44LTkuMUM0MiAxODEgMzIuMSAyMTcuNSAzMi4xIDI1NnMxMCA3NSAyNy4xIDEwNi42TDc1IDM1My41Yy01LjMtMTAtOS43LTIwLjMtMTMuNi0zMS4xek0yMjEuMSA0MzRjLTQwLjQtOC03NS44LTI5LjEtMTAxLjktNTguN2wtMTggMTUuOGMtNy41LTguNi0xNC40LTE3LjctMjAuMi0yNy40bC0xNiA5LjRjMzguNSA2Mi4zIDEwNi44IDEwNC4zIDE4NC45IDEwNi42bDAtMTguM2MtMTEuMy0uMy0yMi43LTEuNy0zMy41LTMuNmw0LjctMjMuOHpNMTAxLjMgMTIwLjlsMTggMTUuNWMyNi0yOS42IDYxLjQtNTAuNyAxMDEuOS01OC40bC00LjctMjMuOGMxMC44LTIuMiAyMi4xLTMuMyAzMy41LTMuNmwwLTE4LjJDMTcxLjkgMzQuNiAxMDMuOSA3Ni40IDY1LjQgMTM5bDE1LjggOS4xYzYtOS43IDEyLjYtMTguOSAyMC4xLTI3LjJ6TTQxMC43IDM5MS4xbC0xOC0xNS44Yy0yNiAyOS42LTYxLjQgNTAuNy0xMDEuOSA1OC43bDQuNyAyMy44Yy0xMC44IDEuOS0yMi4xIDMuMy0zMy41IDMuNmwwIDE4LjNjNzguMS0yLjIgMTQ2LjQtNDQuMyAxODQuOS0xMDYuNmwtMTYuMS05LjRjLTUuNyA5LjctMTIuNiAxOC44LTIwLjEgMjcuNHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDgzLjggMGEyMzUuOCAyMzUuOCAwIDEgMCAtNDcxLjYgMCAyMzUuOCAyMzUuOCAwIDEgMCA0NzEuNiAwem0tMzktMTA2LjZMNDM3IDE1OC41YzUuMyA5LjcgMTAgMjAuMiAxMy42IDMxbC0yMi43IDcuN2M2LjQgMTguMyA5LjcgMzguMiA5LjcgNTguN3MtMy42IDQwLjQtMTAgNTguN2wyMyA3LjdjLTMuOSAxMC44LTguMyAyMS0xMy42IDMxbDE1LjggOS4xQzQ3MCAzMzEgNDc5LjkgMjk0LjUgNDc5LjkgMjU2cy05LjktNzUtMjcuMS0xMDYuNnptLTE4MyAxNzcuN2MxNi4zLTMuMyAzMC40LTExLjYgNDAuNy0yMy41bDUxLjIgNDQuOGMxMS45LTEzLjYgMjEuMy0yOS4zIDI3LjEtNDYuOGwtNjQuMi0yMi4xYzIuNS03LjUgMy45LTE1LjIgMy45LTIzLjVzLTEuNC0xNi4xLTMuOS0yMy41bDY0LjUtMjIuMWMtNi4xLTE3LjQtMTUuNS0zMy4yLTI3LjQtNDYuOGwtNTEuMiA0NC44Yy0xMC4yLTExLjktMjQuNC0yMC41LTQwLjctMjMuOGwxMy4zLTY2LjRjLTguNi0xLjktMTcuNy0yLjgtMjcuMS0yLjhzLTE4LjUgLjgtMjcuMSAyLjhsMTMuMyA2Ni40Yy0xNi4zIDMuMy0zMC40IDExLjktNDAuNyAyMy44bC01MS4yLTQ0LjhjLTExLjkgMTMuNi0yMS4zIDI5LjMtMjcuNCA0Ni44bDY0LjUgMjIuMWMtMi41IDcuNS0zLjkgMTUuMi0zLjkgMjMuNXMxLjQgMTYuMSAzLjkgMjMuNWwtNjQuMiAyMi4xYzUuOCAxNy40IDE1LjIgMzMuMiAyNy4xIDQ2LjhsNTEuMi00NC44YzEwLjIgMTEuOSAyNC40IDIwLjIgNDAuNyAyMy41bC0xMy4zIDY2LjdjOC42IDEuNyAxNy43IDIuOCAyNy4xIDIuOHMxOC41LTEuMSAyNy4xLTIuOGwtMTMuMy02Ni43eiJdfSxGX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWNjZXNzaWJsZS1pY29uIixpY29uOls0NDgsNTEyLFs2MjEwN10sImYzNjgiLCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NkMxMDUuNSAxNjUuMyA2NC45IDEyMCA5NSA5My4xbDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNmwtNTguNCA2Ni41IDEwNi4xLTUuOWMxOC41LTEuMSAzMy42IDE0LjQgMzIuMSAzMi43ek0zNTkgMTAxLjhBNTAuOSA1MC45IDAgMSAwIDM1OSAwIDUwLjkgNTAuOSAwIDEgMCAzNTkgMTAxLjh6TTE3OS42IDQ1Ni41Yy04MC42IDAtMTI3LjQtOTAuNi04Mi43LTE1Ni4xTDU3LjIgMjYwLjdDMzYuNCAyODcgMjQgMzIwLjMgMjQgMzU2LjQgMjQgNDg3LjEgMTc0LjcgNTU3LjggMjc1LjQgNDc4LjlsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zeiJdfSxCX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVvcmEiLGljb246WzQ0OCw1MTIsW10sImYyYzQiLCJNNDQwLjcgMzg2LjdsLTI5LjMgMGMtMS41IDEzLjUtMTAuNSAzMC44LTMzIDMwLjgtMjAuNSAwLTM1LjMtMTQuMi00OS41LTM1LjggNDQuMi0zNC4yIDc0LjctODcuNSA3NC43LTE1MyAuMS0xMTcuNS05Ni42LTE5Ni43LTE5OC40LTE5Ni43LTk5LjcgMC0xOTcuNyA3OS43LTE5Ny43IDE5Ni43IDAgMTM0LjEgMTMxLjMgMjIxLjYgMjQ5IDE4OSAxOS43IDMzLjYgNDUuNyA2Mi4zIDk1LjIgNjIuMyA4MS44IDAgOTAuOC03NS4zIDg5LTkzLjN6TTI5Ny4yIDMyOS4yYy0xOS41LTI5LjItNDMuNy01Mi4yLTkxLjUtNTIuMi0zMC41IDAtNTQuMyAxMC02OSAyMi44bDEyLjIgMjQuM2M2LjItMyAxMy00IDE5LjgtNCAzNS41IDAgNTMuNyAzMC44IDY5LjIgNjEuMy0xMCAzLTIwLjcgNC4yLTMyLjcgNC4yLTc1IDAtMTA3LjUtNTMtMTA3LjUtMTU2LjcgMC0xMDQuNCAzMi41LTE1Ny45IDEwNy41LTE1Ny45IDc2LjIgMCAxMDguNyA1My41IDEwOC43IDE1Ny43IC4xIDQxLjgtNS40IDc1LjYtMTYuNyAxMDAuNXoiXX0sSF90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWpjYiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YiIsIk00MzEuNSAyNDQuM2wwLTMyLjNjNDEuMiAwIDM4LjUgLjIgMzguNSAuMiA3LjMgMS4zIDEzLjMgNy4zIDEzLjMgMTYgMCA4LjgtNiAxNC41LTEzLjMgMTUuOC0xLjIgLjQtMy4zIC4zLTM4LjUgLjN6bTQyLjggMjAuMmMtMi44LS43LTMuMy0uNS00Mi44LS41bDAgMzVjMzkuNiAwIDQwIC4yIDQyLjgtLjUgNy41LTEuNSAxMy41LTggMTMuNS0xNyAwLTguNy02LTE1LjUtMTMuNS0xN3pNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTgyIDE5Mi4zbC01NyAwYzAgNjcuMSAxMC43IDEwOS43LTM1LjggMTA5LjctMTkuNSAwLTM4LjgtNS43LTU3LjItMTQuOGwwIDI4YzMwIDguMyA2OCA4LjMgNjggOC4zIDk3LjkgMCA4Mi00Ny43IDgyLTEzMS4yem0xNzguNSA0LjVjLTYzLjQtMTYtMTY1LTE0LjktMTY1IDU5LjMgMCA3Ny4xIDEwOC4yIDczLjYgMTY1IDU5LjJsMC0yOC4zQzMxMi45IDMxMS43IDI1MyAzMDkgMjUzIDI1NnM1OS44LTU1LjYgMTA3LjUtMzEuMmwwLTI4ek01NDQgMjg2LjVjMC0xOC41LTE2LjUtMzAuNS0zOC0zMmwwLS44YzE5LjUtMi43IDMwLjMtMTUuNSAzMC4zLTMwLjIgMC0xOS0xNS43LTMwLTM3LTMxIDAgMCA2LjMtLjMtMTIwLjMtLjNsMCAxMjcuNSAxMjIuNyAwYzI0LjMgLjEgNDIuMy0xMi45IDQyLjMtMzMuMnoiXX0scV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5OCIsIk0wIDI1NS44Qy4xIDEzMi4yIDEwMC4zIDMyIDIyNCAzMlM0NDggMTMyLjMgNDQ4IDI1NiAzNDcuOCA0NzkuOSAyMjQuMSA0ODBMNTAuOSA0ODBDMjIuOCA0ODAgLjEgNDU3LjMgMCA0MjkuMmwwIDAgMC0xNzMuNCAwIDB6bTM0Mi42LTYzLjFjMC0zOS43LTM1LjYtNjguNS03My4yLTY4LjUtMzQuOSAwLTY1LjggMjYuMy03MC4xIDU5LjktLjIgMy44LS40IDUtLjQgOC41LS4xIDIxLjEgMCA0Mi44LS44IDY0LjQgLjkgMjYuMSAxIDUyLjEgMCA3Ni42IDAgMjcuMS0xOS40IDQ1LjUtNDQuNyA0NS41cy00NS44LTIwLjItNDUuOC00NS41Yy41LTI3LjcgMjIuNi00NS4zIDQ4LjUtNDYuMWwuMiAwIDI2LjMtLjIgMC0zNy4zLTI2LjMgLjJjLTQ3LjEtLjQtODQuNiAzNi41LTg1LjkgODMuNCAwIDQ1LjYgMzcuNSA4Mi45IDgzIDgyLjkgNDMgMCA3OC43LTMzLjYgODIuNi03NS42bC4yLTUzLjUgMzIuNi0uM2MyNS4zIC4yIDI1LTM3LjgtLjItMzcuM2wtMzIuNCAuM2MwLTYuNCAuMS0xMi44IC4xLTE5LjIgLjEtMTIuNyAuMS0yNS40LS4xLTM4LjIgLjEtMTYuNSAxNS44LTMxLjIgMzMuMi0zMS4yIDE3LjUgMCAzNS45IDguNyAzNS45IDMxLjIgMCAzLjItLjEgNS4xLS4zIDYuMy0xLjkgMTAuNSA1LjIgMjAuNCAxNS43IDIxLjkgMTAuNiAxLjUgMjAuMi02LjEgMjEuMi0xNi42IC42LTQuMiAuNy03LjkgLjctMTEuNnoiXX0sal90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR1b2xpbmdvIixpY29uOls1NzYsNTEyLFtdLCJlODEyIiwiTTUwNC4zIDIzMC41YzEwLjQgODguNS00My40IDE3Mi4xLTEyOC4yIDE5OXMtMTc2LjYtMTAuMy0yMTguOS04OC43Yy03MiAzLTEzNy40LTM5LjgtMTYzLjItMTA1LjUtMi42LTYuNi0xLjktMTQgMS45LTE5LjlzMTAuMi05LjcgMTcuMi0xMC4xbDk2LjEtNi0yMy44LTc1LjljLTYuMy0yMC0yLjItNDEuOSAxMS01OC4zczMzLjctMjUgNTQuNS0yM2M1Mi4yIDUgODYuOCA0LjggMTA0LS42UzMwMCAxNi43IDMzOS0xNi45YzE1LjktMTMuNyAzNy43LTE4LjUgNTcuOC0xMi43czM2LjEgMjEuMyA0Mi40IDQxLjRMNDYyLjggODcgNTQzLjYgMzcuM2M2LTMuNyAxMy40LTQuMyAxOS45LTEuNnMxMS4zIDguMyAxMi45IDE1LjJjMTYuMiA2OC4yLTEyLjQgMTQwLjMtNzIuMSAxNzkuNXpNMjU4LjUgNDc1LjlsMCAwYzE1LjEgNy41IDIxLjUgMjUuOCAxNC4yIDQxcy0yNS40IDIxLjktNDAuNyAxNC45bC00My45LTIxYy0xNS4xLTcuNS0yMS41LTI1LjgtMTQuMi00MXMyNS40LTIxLjkgNDAuNy0xNC45bDQzLjggMjF6TTU2NC42IDM0NS43YzE0LjggOC40IDIwIDI3LjMgMTEuNiA0Mi4ybC0yMy45IDQyLjRjLTguNyAxNC4zLTI3LjEgMTkuMi00MS42IDEwLjlzLTE5LjktMjYuNi0xMi00MS40bDIzLjktNDIuNGM0LTcuMSAxMC43LTEyLjQgMTguNi0xNC42czE2LjMtMS4yIDIzLjQgMi45eiJdfSxWX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3RkcmFmdCIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMSIsIk0zODQgMTkybC02NCAwIDAgMTI4LTEyOCAwIDAgMTI4LTE5MiAwIDAtMjUuNiAxNjYuNCAwIDAtMTI4IDEyOCAwIDAtMTI4IDg5LjYgMCAwIDI1LjZ6bS0yNS42IDM4LjRsMCAxMjgtMTI4IDAgMCAxMjgtMTY2LjQgMCAwIDI1LjYgMTkyIDAgMC0xMjggMTI4IDAgMC0xNTMuNi0yNS42IDB6bTI1LjYgMTkybC04OS42IDAgMCA4OS42IDI1LjYgMCAwLTY0IDY0IDAgMC0yNS42ek0wIDBsMCAzODQgMTI4IDAgMC0xMjggMTI4IDAgMC0xMjggMTI4IDAgMC0xMjgtMzg0IDB6Il19LFVfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlYnNkIixpY29uOls0NDgsNTEyLFtdLCJmM2E0IiwiTTMwMy43IDk2LjJjMTEuMS0xMS4xIDExNS41LTc3IDEzOS4yLTUzLjIgMjMuNyAyMy43LTQyLjEgMTI4LjEtNTMuMiAxMzkuMnMtMzkuNCAuOS02My4xLTIyLjljLTIzLjgtMjMuNy0zNC4xLTUyLTIyLjktNjMuMXpNMTA5LjkgNjguMUM3My42IDQ3LjUgMjIgMjQuNiA1LjYgNDEuMS0xMSA1Ny43IDEyLjcgMTEwLjUgMzMuNSAxNDYuOCA1MiAxMTQuNiA3OC4zIDg3LjUgMTA5LjkgNjguMXpNNDA2LjcgMTc0YzMuMyAxMS4zIDIuNyAyMC43LTIuNyAyNi4xLTIwLjMgMjAuMy04Ny41LTI3LTEwOS4zLTcwLjEtMTgtMzIuMy0xMS4xLTUzLjQgMTQuOS00OC43IDUuNy0zLjYgMTIuMy03LjYgMTkuNi0xMS42LTI5LjgtMTUuNS02My42LTI0LjMtOTkuNS0yNC4zLTExOS4xIDAtMjE1LjYgOTYuNS0yMTUuNiAyMTUuNiAwIDExOSA5Ni41IDIxNS42IDIxNS42IDIxNS42UzQ0NS4zIDM4MC4xIDQ0NS4zIDI2MWMwLTM4LjQtMTAuMS03NC41LTI3LjctMTA1LjgtMy45IDctNy42IDEzLjMtMTAuOSAxOC44eiJdfSxXX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2R5c2VlIixpY29uOls1MTIsNTEyLFtdLCJlNWM2IiwiTTQwNi43IDQ2M2MtNDIuMyAzMC44LTk0LjQgNDktMTUwLjcgNDktMTExLjEgMC0yMDUuNy03MC44LTI0MS4xLTE2OS44IDIuNCAxLjcgNS45IDMuNiA3LjkgNC40IDE2LjMgNy40IDQwLjEtNS40IDYyLjktMjguNyA2LjktNi45IDE0LjQtMTIuNCAyMi44LTE3LjMgMTguMy0xMS45IDM3LjYtMjAuOCA1OC40LTI3LjIgMCAwIDIyLjMgMzQuMiA0My4xIDc0LjhzLTIyLjMgNTQtMjcuMiA1NGMtLjMgMC0uOCAwLTEuNS0uMS0xMS0uNS03MC0zLTU2IDUxLjEgMTQuOSA1Ny40IDk3LjUgMzYuNiAxMzkuNiA4LjlzMzEuNy0xMTguMyAzMS43LTExOC4zYzQxLjEtNi40IDU0IDM3LjEgNTcuOSA1OS40IC44IDQuNiAxLjEgOS45IDEuNCAxNS41IDEuMSAyMS4yIDIuMyA0NS42IDM1LjMgNDYuNCA1LjMgMCAxMC42LS44IDE1LjUtMmwwLS4xem0tOTUuMy0yMy43Yy0yLS41LTMuNS0yLjUtMy01IDEtMi41IDMtMy41IDUtM3MzLjUgMyAzIDUtMi41IDMuNS01IDN6bS0yMDctOTUuNmMxLjUtLjUgMy41IDEgNCAzIDAgMi0xIDQtMyA0LTEuNSAuNS0zLjUtMS00LTMtLjUtMS41IDEtMy41IDMtNHpNNDUxLjggNDIxYzM3LjUtNDQuNiA2MC4yLTEwMi4yIDYwLjItMTY1IDAtNjcuNS0yNi4xLTEyOC45LTY4LjgtMTc0LjctLjEgMjMuNS02LjEgNDguMi0xNi44IDY5LjItMTEuOSAyMC4zLTQ5IDU4LjktNjkuOCA3OC43LS43IC4zLTEuMSAuOS0xLjUgMS40LS4yIC4yLS4zIC40LS41IC42LTUgNi45LTQgMTYuOCAzIDIxLjggMjEuMyAxNS44IDU2LjQgNDUuNiA1OS40IDcyLjggMy41IDM0LjkgMjcuOSA3NS42IDM0LjIgODYuMiAuOCAxLjMgMS4zIDIuMSAxLjQgMi40IDAgMi4yLS40IDQuMy0uOCA2LjVsMCAuMXpNMzkwLjcgMjUxYy0uNSAzIDEgNS45IDQgNi40czUuOS0xIDYuNC00LTEtNS45LTQtNi40Yy0zLTEtNS45IDEtNi40IDR6bTYxLjQtNjAuOWwtMTEuNCA1LjQtMyAxMi45LTUuNC0xMS40LTEyLjktMyAxMS40LTUuNCAzLTEyLjkgNS40IDExLjQgMTIuOSAzek0zOTUuNSA0MS4zYy0xNi4yIDguMi0yMi4xIDMyLjgtMjkgNjEuNC0uMyAxLjQtLjcgMi44LTEgNC4yLTkuNSAzOC41LTMwLjYgMzcuNi00MS43IDM3LjItMS4xIDAtMi0uMS0yLjktLjEtNS4xIDAtNi00LTguOS0xNy4xLTIuNi0xMi4xLTYuOS0zMi0xNy45LTYzLjYtMjIuNy02NS44LTgyLjctNDkuNC0xMjguMi0yMi4yLTU1LjMgMzMuMS0zNC40IDEwMS45LTE5LjggMTQ5LjQgLjcgMi4yIDEuNCA0LjQgMiA2LjYtNCA0LTEzLjggNy41LTI2IDExLjktMTIuMSA0LjMtMjYuNiA5LjUtNDAuMyAxNi45LTMzLjkgMTgtNzAuMyA0OS03OS44IDYyLjYtMS4zLTEwLjctMi0yMS41LTItMzIuNSAwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDUxLjQgMCA5OS40IDE1LjIgMTM5LjUgNDEuM3pNNTguOSAxODkuNmMtMS41LTItNC41LTMtNi40LTEuNXMtMyA0LjUtMS41IDYuNCA0LjUgMyA2LjQgMS41YzIuNS0xLjUgMy00LjUgMS41LTYuNHpNMzI3LjMgNjQuOWMyLTEuNSA1LS41IDYuNCAxLjUgMS41IDIuNSAxIDUuNC0xLjUgNi40LTIgMS41LTUgLjUtNi40LTEuNXMtLjUtNSAxLjUtNi40ek05NS4xIDEwNWMtLjUgMS41IC41IDMgMiAzIDEuNSAuNSAzLS41IDMtMiAuNS0xLjUtLjUtMy0yLTNzLTMgLjUtMyAyem04NC43LS41Yy0zLjUtNDMuMSAzNy4xLTU0IDM3LjEtNTQgNDQuMS0xNS40IDU2IDUuOSA2Ni40IDM3LjZzMyA0Mi42LTM4LjYgNTguOS02MS45LTQuNS02NC45LTQyLjZsMCAuMXptODkuNiAxNC45bDEgMGMyLjUgMCA1LTIgNS01IDItNi45IDEtMTQuNC0yLTIwLjgtMS41LTItNC0zLjUtNi40LTIuNS0zIDEtNC41IDQtMy41IDYuOSAyIDQuNSAzIDkuOSAxLjUgMTQuOS0uNSAzIDEuNSA1LjkgNC41IDYuNGwtLjEgLjF6bS05LjktNDEuNmMtMiAwLTQtMS01LTNzLTItMy41LTMtNWMtMi0yLTItNS40IDAtNy40czUuNC0yIDcuNCAwYzIgMi41IDMuNSA1IDUgNy40cy41IDUuOS0yLjUgNy40Yy0uNiAwLTEgLjItMS4zIC4zLS4yIC4xLS40IC4yLS42IC4ybDAgLjF6Il19LEdfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZy1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYyNjEiLCJNMjU3LjUgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTIwOCAzODIuOGwtMTI1LjctMTI1LjcgMTI1LjctMTI1LjcgMzUuMiAzNS40LTI0LjIgMjQuMi0xMS4xLTExLjEtNzcuMiA3Ny4yIDc3LjIgNzcuMiAyNi42LTI2LjYtNTMuMS01Mi45IDI0LjQtMjQuNCA3Ny4yIDc3LjItNzUgNzUuMnptOTktMi4ybC0zNS4yLTM1LjIgMjQuMS0yNC40IDExLjEgMTEuMSA3Ny4yLTc3LjItNzcuMi03Ny4yLTI2LjUgMjYuNSA1My4xIDUyLjktMjQuNCAyNC40LTc3LjItNzcuMiA3NS03NSAxMjUuNyAxMjUuNy0xMjUuNyAxMjUuNnoiXX0sS190PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkZmxhcmUiLGljb246WzY0MCw1MTIsW10sImUwN2QiLCJNNDA3LjkgMzE5LjlMMTc3LjEgMzE3Yy0uNyAwLTEuNC0uMi0yLS41cy0xLjItLjgtMS42LTEuNGMtLjQtLjYtLjctMS4zLS43LTJzMC0xLjQgLjItMi4xYy40LTEuMSAxLjEtMi4xIDIuMS0yLjhzMi4xLTEuMiAzLjMtMS4ybDIzMi45LTIuOWMyNy42LTEuMyA1Ny41LTIzLjYgNjgtNTAuOGwxMy4zLTM0LjVjLjQtLjkgLjUtMS45IC41LTIuOSAwLS41LS4xLTEuMS0uMi0xLjYtNy40LTMyLjItMjUtNjEuMS01MC4zLTgyLjNzLTU2LjctMzMuNy04OS43LTM1LjUtNjUuNiA3LjMtOTMgMjUuNy00OCA0NS4zLTU4LjggNzYuNWMtMTEuMy04LjUtMjQuOS0xMy4zLTM5LTEzLjdzLTI4IDMuNS0zOS44IDExLjQtMjAuOCAxOS4xLTI1LjkgMzIuMy01LjkgMjcuNi0yLjQgNDEuM2MtNTIuMyAxLjUtOTQuMiA0NC4xLTk0LjIgOTYuNSAwIDQuNyAuMyA5LjMgMSAxNCAuMiAxLjEgLjcgMi4xIDEuNSAyLjhzMS45IDEuMSAyLjkgMS4xbDQyNi4xIC4xYzAgMCAuMSAwIC4xIDAgMS4yIDAgMi4zLS40IDMuMy0xLjFzMS42LTEuNyAyLTIuOWwzLjMtMTEuM2MzLjktMTMuNCAyLjQtMjUuOC00LjEtMzQuOS02LTguNC0xNi4xLTEzLjMtMjguMi0xMy45em0xMDUuOS05OC44Yy0yLjEgMC00LjMgLjEtNi40IC4yLS44IC4xLTEuNSAuMy0yLjEgLjhzLTEgMS4xLTEuMyAxLjhsLTkuMSAzMS4yYy0zLjkgMTMuNC0yLjQgMjUuOCA0LjEgMzQuOSA2IDguNCAxNi4xIDEzLjMgMjguMiAxMy45bDQ5LjIgMi45Yy43IDAgMS40IC4yIDIgLjVzMS4xIC44IDEuNSAxLjRjLjQgLjYgLjcgMS4zIC44IDJzMCAxLjUtLjIgMi4xYy0uNCAxLjEtMS4xIDIuMS0yLjEgMi44cy0yLjEgMS4yLTMuMyAxLjJsLTUxLjEgMi45Yy0yNy44IDEuMy01Ny43IDIzLjYtNjguMSA1MC44bC0zLjcgOS42Yy0uMiAuNC0uMiAuOC0uMiAxLjNzLjIgLjggLjQgMS4yIC42IC43IC45IC45IC44IC4zIDEuMiAuM2MwIDAgLjEgMCAuMSAwbDE3NS45IDBjMSAwIDItLjMgMi44LS45czEuNC0xLjUgMS43LTIuNGMzLjEtMTEuMSA0LjctMjIuNSA0LjctMzQgMC02OS4zLTU2LjUtMTI1LjUtMTI2LjEtMTI1LjV6Il19LFlfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYWNrZXJyYW5rIixpY29uOls1MTIsNTEyLFtdLCJmNWY3IiwiTTQ3Ny45IDEyOEM0NjMuNCAxMDMgMjg1LjUgMCAyNTYuNSAwcy0yMDYuOSAxMDIuOC0yMjEuMyAxMjgtMTQuNSAyMzAuOCAwIDI1NiAxOTIuNCAxMjggMjIxLjMgMTI4IDIwNi44LTEwMi45IDIyMS4zLTEyOCAxNC41LTIzMSAwLTI1NnpNMzE2LjUgNDE0LjJjLTQgMC00MC45LTM1LjgtMzgtMzguNyAuOS0uOSA2LjMtMS41IDE3LjUtMS44IDAtMjYuMiAuNi02OC42IC45LTg2LjMgMC0yLS40LTMuNC0uNC01LjhsLTc5LjkgMGMwIDcuMS0uNSAzNi4yIDEuNCA3Mi45IC4yIDQuNS0xLjYgNi01LjcgNS45LTEwLjEgMC0yMC4zLS4xLTMwLjQtLjEtNC4xIDAtNS45LTEuNS01LjctNi4xIC45LTMzLjQgMy04NC0uMi0yMTIuN2wwLTMuMmMtOS43LS40LTE2LjQtMS0xNy4zLTEuOC0yLjktMi45IDM0LjUtMzguNyAzOC41LTM4LjdzNDEuMiAzNS44IDM4LjMgMzguN2MtLjkgLjktNy45IDEuNS0xNi44IDEuOGwwIDMuMmMtMi40IDI1LjgtMiA3OS42LTIuNiAxMDUuNGw4MC4zIDBjMC00LjYgLjQtMzQuNy0xLjItODMuNi0uMS0zLjQgMS01LjIgNC4yLTUuMiAxMS4xLS4xIDIyLjItLjEgMzMuMi0uMSAzLjUgMCA0LjYgMS43IDQuNSA1LjQtMy43IDE5MS4zLS43IDE3Ny45LS43IDIxMC4zIDguOSAuNCAxNi44IDEgMTcuNyAxLjggMi45IDIuOS0zMy42IDM4LjctMzcuNiAzOC43bDAgMHoiXX0sWl90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNreWF0bGFzIixpY29uOls2NDAsNTEyLFtdLCJmMjE2IiwiTTY0MCAzMjkuM2MwIDY1LjktNTIuNSAxMTQuNC0xMTcuNSAxMTQuNC0xNjUuOSAwLTE5Ni42LTI0OS43LTM1OS43LTI0OS43LTE0Ni45IDAtMTQ3LjEgMjEyLjIgNS42IDIxMi4yIDQyLjUgMCA5MC45LTE3LjggMTI1LjMtNDIuNSA1LjYtNC4xIDE2LjktMTYuMyAyMi44LTE2LjNzMTAuOSA1IDEwLjkgMTAuOWMwIDcuOC0xMy4xIDE5LjEtMTguNyAyNC4xLTQwLjkgMzUuNi0xMDAuMyA2MS4yLTE1NC43IDYxLjItODMuNCAuMS0xNTQtNTktMTU0LTE0NC45UzY3LjUgMTQ5LjYgMTUyLjggMTQ5LjZjMTg1LjMgMCAyMjIuNSAyNDUuOSAzNjEuOSAyNDUuOSA5OS45IDAgOTQuOC0xMzkuNyAzLjQtMTM5LjctMTcuNSAwLTM1IDExLjYtNDYuOSAxMS42LTguNCAwLTE1LjktNy4yLTE1LjktMTUuNiAwLTExLjYgNS4zLTIzLjcgNS4zLTM2LjMgMC02Ni42LTUwLjktMTE0LjctMTE2LjktMTE0LjctNTMuMSAwLTgwIDM2LjktODguOCAzNi45LTYuMiAwLTExLjItNS0xMS4yLTExLjIgMC01LjYgNC4xLTEwLjMgNy44LTE0LjQgMjUuMy0yOC44IDY0LjctNDMuNyAxMDIuOC00My43IDc5LjQgMCAxMzkuMSA1OC40IDEzOS4xIDEzNy44IDAgNi45LS4zIDEzLjctMS4yIDIwLjYgMTEuOS0zLjEgMjQuMS00LjcgMzUuOS00LjcgNjAuNyAwIDExMS45IDQ1LjMgMTExLjkgMTA3LjJ6Il19LFhfdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXNrcHJvIixpY29uOls0NDgsNTEyLFtdLCJmMzhmIiwiTTEyMiA0MDYuMmw4NCAwYzIzLjEgMCA0My45LTMuNSA2Mi42LTEwLjcgMTguNy03LjEgMzQuNy0xNy4xIDQ4LTMwLjEgMTMuMy0xMy40IDIzLjYtMjkuMiAzMC43LTQ3LjUgMy45LTkuNiA2LjgtMTkuOCA4LjYtMzAuNmw3My43IDBjLTIuNSAyMS4zLTcuNyA0MS4zLTE1LjUgNjAtMTEuMSAyNy4yLTI2LjkgNTAuOC00Ny4zIDcwLjktMjAgMTkuNi00NC4yIDM0LjgtNzIuNiA0NS40cy02MCAxNi05NC43IDE2bC0xNDkuOCAuMiAwLTE5Mi40IDcyLjMtLjIgMCAxMTguOHpNMTk5LjQgMzJjMzQuNyAwIDY2LjIgNS40IDk0LjcgMTYgMjguNSAxMC43IDUyLjkgMjYuMSA3My4zIDQ2LjIgMjAuNCAxOS42IDM2LjIgNDMuMiA0Ny4zIDcwLjkgNy41IDE4LjMgMTIuNCAzOC4xIDE0LjkgNTkuM2wtNzMuNy0uMWMtMS45LTEwLjUtNC43LTIwLjUtOC42LTI5LjktNy4xLTE4LjctMTcuMy0zNC41LTMwLjctNDcuNS0xMy4zLTEzLjQtMjkuMy0yMy42LTQ4LTMwLjgtMTguNi03LjEtMzkuNS0xMC43LTYyLjctMTAuN2wtODQgMCAwIDExOC44LTcyLjIgLjIgMC0xOTIuMyAxNDkuNy0uMXoiXX0sUV90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc29sdmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlNyIsIk0yODkuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMyMiAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOGwtMTg4LjIgNTQuMSAyOC42IDk4LjYgMTk3LjktNTcuMnpNMjU2LjUgOEMxMzkuNCA4IDQxLjIgODguNyAxNS4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMmwtOTIuNiAyNi42IDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMkMxNjYgNDkxLjMgMjA5LjUgNTA0IDI1NS41IDUwNCAzOTIuNSA1MDQgNTA0IDM5Mi42IDUwNCAyNTUuNyA1MDUgMTE5LjQgMzkzLjUgOCAyNTYuNSA4ek00Ni4zIDM4OC42TDggMjU2LjhjMCA0OC41IDE0LjMgOTMuNCAzOC4zIDEzMS44eiJdfSxKX3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2tiZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjM3YiIsIk0xNjYgMTE2LjljMCAyMy40LTE2LjQgNDkuMS03Mi41IDQ5LjFsLTcwLjEgMCAyMS04OC44IDY3LjggMGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3pNMjkyLjIgNzcuMmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xbC02Ny44IDAtMjEgODguOCA3MC4xIDBjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6bS0yOCAxMzcuOWwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43eiJdfSxlTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlLXMiLGljb246WzM4NCw1MTIsW10sImY0MmEiLCJNMTU1LjYgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43bDAtMTM0LjNjLTQ3LjMtMTguOS05NC41LTI2LjEtMTQxLjgtMjYuMS0xMTUuNyAwLTE5Mi44IDYwLjQtMTkyLjggMTYxLjQgMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41bDAgMTI4LjVjNDkuMyAyMS4zIDEwMi4zIDMyLjMgMTU2IDMyLjQgMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6Il19LE04ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtYmVoYW5jZSIsaWNvbjpbNDQ4LDUxMixbImJlaGFuY2Utc3F1YXJlIl0sImYxYjUiLCJNMTU1LjMgMzE4LjRjMTcuMiAwIDMxLjItNi4xIDMxLjItMjUuNCAwLTE5LjctMTEuNy0yNy40LTMwLjMtMjcuNWwtNDYgMCAwIDUyLjkgNDUuMSAwem0tNS40LTEyOS42bC0zOS42IDAgMCA0NC44IDQyLjcgMGMxNS4xIDAgMjUuOC02LjYgMjUuOC0yMi45IDAtMTcuNy0xMy43LTIxLjktMjguOS0yMS45em0xMjkuNSA3NC44bDYyLjIgMGMtMS43LTE4LjUtMTEuMy0yOS43LTMwLjUtMjkuNy0xOC4zIDAtMzAuNSAxMS40LTMxLjcgMjkuN3pNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTM0OS41IDE4NWwtNzcuOCAwIDAtMTguOSA3Ny44IDAgMCAxOC45ek0xOTMuNyAyNDMuN2MyMy42IDYuNyAzNSAyNy41IDM1IDUxLjYgMCAzOS0zMi43IDU1LjctNjcuNiA1NS45bC05My4xIDAgMC0xOTIgOTAuNSAwYzMyLjkgMCA2MS40IDkuMyA2MS40IDQ3LjUgMCAxOS4zLTkgMjguOC0yNi4yIDM3em0xMTguNy0zOC42YzQzLjUgMCA2Ny42IDM0LjMgNjcuNiA3NS40IDAgMS42LS4xIDMuMy0uMiA1IDAgLjgtLjEgMS41LS4xIDIuMmwtMTAwLjIgMGMwIDIyLjIgMTEuNyAzNS4zIDM0LjEgMzUuMyAxMS42IDAgMjYuNS02LjIgMzAuMi0xOC4xbDMzLjcgMGMtMTAuNCAzMS45LTMxLjkgNDYuOC02NS4xIDQ2LjgtNDMuOCAwLTcxLjEtMjkuNy03MS4xLTczIDAtNDEuOCAyOC43LTczLjYgNzEuMS03My42eiJdfSx0TXQ9TThlLGFNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZXJ2aWNlc3RhY2siLGljb246WzUxMiw1MTIsW10sImYzZWMiLCJNOTYgMjE2YzgxLjcgMTAuMiAyNzMuNyAxMDIuMyAzMDQgMjMyTDggNDQ4Yzk5LjUtOC4xIDE4NC41LTEzNyA4OC0yMzJ6TTEyOCA2NGMzMi4zIDM1LjYgNDcuNyA4My45IDQ2LjQgMTMzLjYgODIuOSAzMy43IDIwNy4zIDEyMy43IDIzMy42IDI1MC40bDk2IDBDNDYzLjMgMjMxLjkgMjMwLjggNzkuNSAxMjggNjR6Il19LHNNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyb2NrZXRjaGF0IixpY29uOls1NzYsNTEyLFtdLCJmM2U4IiwiTTI4NC41IDIyNC44Yy02LjcgMC0xMy4zIDIuMS0xOC45IDUuOHMtOS45IDkuMS0xMi41IDE1LjQtMy4yIDEzLjEtMS45IDE5LjcgNC42IDEyLjcgOS40IDE3LjQgMTAuOSA4IDE3LjUgOS4zIDEzLjUgLjYgMTkuNy0yIDExLjUtNyAxNS4zLTEyLjYgNS43LTEyLjIgNS43LTE4LjljMC05LjEtMy43LTE3LjgtMTAuMS0yNC4ycy0xNS4xLTEwLTI0LjItOS45em0tMTEwLjQgMGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTEwbDAgMHptMjIwLjkgMGEzNC4xIDM0LjEgMCAxIDAgLjQgNjguMiAzNC4xIDM0LjEgMCAxIDAgLS40LTY4LjJ6bTE1My44LTU1LjNjLTE1LjUtMjQuMi0zNy4zLTQ1LjYtNjQuNy02My42LTUyLjktMzQuOC0xMjIuNC01NC0xOTUuNy01NC0yNC4yIDAtNDguMyAyLjEtNzIgNi40LTE0LjktMTQuMy0zMS41LTI2LjYtNDkuNS0zNi42LTY2LjgtMzMuMy0xMjUuNi0yMC45LTE1NS4zLTEwLjItMi4zIC44LTQuMyAyLjEtNS45IDMuOXMtMi43IDMuOS0zLjMgNi4yLS41IDQuNyAuMSA3LjEgMS44IDQuNCAzLjUgNi4xQzI3IDU2LjUgNjEuNiA5OS4zIDUzLjEgMTM4LjMgMjAgMTcyLjIgMiAyMTMgMiAyNTUuNiAyIDI5OSAyMCAzMzkuOCA1My4xIDM3My43IDYxLjYgNDEyLjcgMjcgNDU1LjYgNiA0NzcuMiA0LjMgNDc5IDMuMiA0ODEuMSAyLjUgNDgzLjRzLS43IDQuNy0uMSA3IDEuNyA0LjUgMy4zIDYuMiAzLjYgMy4xIDUuOSAzLjljMjkuNyAxMC43IDg4LjUgMjMuMSAxNTUuMy0xMC4yIDE4LTEwIDM0LjctMjIuMyA0OS41LTM2LjYgMjMuOCA0LjMgNDcuOSA2LjQgNzIgNi40IDczLjMgMCAxNDIuOC0xOS4yIDE5NS43LTU0IDI3LjQtMTggNDkuMS0zOS40IDY0LjctNjMuNiAxNy4zLTI2LjkgMjYuMS01NS45IDI2LjEtODYuMSAwLTMxLTguOC02MC0yNi4xLTg2LjlsMCAwek0yODUuNCA0MDkuOWMtMzAuMiAuMS02MC4zLTMuOC04OS40LTExLjVsLTIwLjEgMTkuNGMtMTEuMiAxMC43LTIzLjYgMjAtMzcuMSAyNy42LTE2LjQgOC4yLTM0LjIgMTMuMy01Mi41IDE0LjkgMS0xLjggMS45LTMuNiAyLjgtNS40IDIwLjItMzcuMSAyNS42LTcwLjUgMTYuMy0xMDAuMS0zMy0yNi01Mi44LTU5LjItNTIuOC05NS40IDAtODMuMSAxMDQuMy0xNTAuNSAyMzIuOC0xNTAuNXMyMzIuOSA2Ny40IDIzMi45IDE1MC41YzAgODMuMS0xMDQuMyAxNTAuNS0yMzIuOSAxNTAuNXoiXX0saU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYmVsIixpY29uOls1MTIsNTEyLFtdLCJmMWQwIiwiTTI1Ni45IDUwNGMtMTM5LjMgMC0yNDcuNS0xMTYuMi0yNDMuMy0yNTQuMSAyLjgtNzkuMiA0My4yLTE1Mi4yIDExNi41LTIwMC40IC4zIDAgMS45LS42IDEuMSAuOC01LjggNS41LTExMS4zIDEyOS44LTE0LjEgMjI2LjQgNDkuOCA0OS41IDkwIDIuNSA5MCAyLjUgMzguNS01MC4xLS42LTEyNS45LS42LTEyNS45LTEwLTI0LjktNDUuNy00MC4xLTQ1LjctNDAuMWwyOC44LTMxLjhjMjQuNCAxMC41IDQzLjIgMzguNyA0My4yIDM4LjcgLjgtMjkuNi0yMS45LTYxLjQtMjEuOS02MS40TDI1NS41IDggMjk5LjggNTguMWMtMjAuNSAyOC44LTIxLjkgNjIuNi0yMS45IDYyLjYgMTMuOC0yMyA0My41LTM5LjMgNDMuNS0zOS4zbDI4LjUgMzEuOGMtMjcuNCA4LjktNDUuNCAzOS45LTQ1LjQgMzkuOS0xNS44IDI4LjUtMjcuMSA4OS40IC42IDEyNy4zIDMyLjQgNDQuNiA4Ny43LTIuOCA4Ny43LTIuOCAxMDIuNy05MS45LTEwLjUtMjI1LTEwLjUtMjI1LTYuMS01LjUgLjgtMi44IC44LTIuOCA1MC4xIDM2LjUgMTE0LjYgODQuNCAxMTYuMiAyMDQuOCAyIDE0NS42LTk5LjkgMjQ5LjQtMjQyLjQgMjQ5LjR6Il19LHJNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2ViLWF3ZXNvbWUiLGljb246WzQ0OCw1MTIsW10sImU2ODMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjM1IDE3Ny42bDUzIDQ2LjQgNTIuMi0xMC40Yy0yLjYtMy45LTQuMi04LjUtNC4yLTEzLjYgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLTEwLjMgMjMuNi0yMy4yIDI0TDMwNC41IDM0OS4xYy01LjIgMTEuNS0xNi42IDE4LjktMjkuMiAxOC45bC0xMDIuNiAwYy0xMi42IDAtMjQtNy40LTI5LjItMTguOUw4Ny4yIDIyNGMtMTIuOS0uNC0yMy4yLTExLTIzLjItMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDUtMS41IDkuNy00LjIgMTMuNkwxNjAgMjI0IDIxMy4xIDE3Ny42Yy04LjktNC4xLTE1LTEzLjEtMTUtMjMuNiAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2YzAgMTAuNS02LjIgMTkuNS0xNS4xIDIzLjZ6Il19LG9NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rdHJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkOCIsIk0xNiAxNzMuNGwxMjUuOCAwLTg5LjQtODUuNCA0OS41LTUxIDg1LjIgODcuOCAwLTEyNC44IDczLjkgMCAwIDEyNC44IDg1LjItODcuNiA0OS40IDUwLjgtODkuNCA4NS4yIDEyNS43IDAgMCA3MC41LTEyNi40IDAgOTAgODcuNi00OS4zIDQ5LjgtMTIyLjItMTIzLTEyMi4yIDEyMy00OS41LTQ5LjYgOTAtODcuNi0xMjYuNCAwIDAtNzAuNXpNMTg2LjkgMzQ0LjhsNzMuOSAwIDAgMTY3LjItNzMuOSAwIDAtMTY3LjJ6Il19LG5NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaW1wbHlidWlsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjIxNSIsIk00ODEuNiA2NGwtMTA2IDBDMzYxLjEgNjQgMzQ5IDc1LjggMzQ5IDkwLjNsMCAzOS42LTE4NS4zIDAgMC0zOS42YzAtMTQuNS0xMi0yNi4zLTI2LjYtMjYuM2wtMTA2IDBDMTYuNSA2NCA0LjcgNzUuOCA0LjcgOTAuM2wwIDMzMS40YzAgMTQuNSAxMS44IDI2LjMgMjYuNiAyNi4zbDQ1MC40IDBjMTQuOCAwIDI2LjYtMTEuOCAyNi42LTI2LjNsMC0zMzEuNGMtLjItMTQuNS0xMi0yNi4zLTI2LjctMjYuM3pNMTUwLjUgMjIyLjdhNjYuNSA2Ni41IDAgMSAxIC0uMyAxMzMuMSA2Ni41IDY2LjUgMCAxIDEgLjMtMTMzLjF6bTIxMS45IC4xYTY2LjUgNjYuNSAwIDEgMSAuMyAxMzIuOSA2Ni41IDY2LjUgMCAxIDEgLS4zLTEzMi45eiJdfSxsTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1YmJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTVjNyIsIk0xMzYuNSAyOTQuMmw1OC44IDIyLjljOS4xLTM2LjggMjUuNC02MS4xIDU1LTYxLjEgNDkuNCAwIDcxLjQgNjMuNiAxNDIuNCA2My42IDE1LjYgMCAzNS45LTIuOCA1NS4zLTEzLjNsMCA2MS43YzAgNjEuOC01MC40IDExMi0xMTIuMyAxMTJMMCA0ODAgNDEuOCA0MjQgMCAzNjggNDEuNyAzMTIgMCAyNTYuMSA0MS44IDIwMC4xIDAgMTQ0LjEgNDEuOCA4OCAwIDMyIDMzNS43IDMyQzM5Ny42IDMyIDQ0OCA4Mi4zIDQ0OCAxNDQuMWwwIDUxLjNjLTkuMiAzNi4zLTI1LjkgNjAuNi01NSA2MC42LTQ5LjYgMC03MS42LTYzLjUtMTQyLjQtNjMuNS0zNS45IDAtOTUuMiAxNC42LTExNC4xIDEwMS42bDAgLjF6Il19LGNNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBlciIsaWNvbjpbNjQwLDUxMixbXSwiZjM3MSIsIk00Mi4xIDIzOS4xYzIyLjIgMCAyOSAyLjggMzMuNSAxNC42bC44IDAgMC0yMi45YzAtMTEuMy00LjgtMTUuNC0xNy45LTE1LjQtMTEuMyAwLTE0LjQgMi41LTE1LjEgMTIuOGwtMzguNiAwYy4zLTEzLjkgMS41LTE5LjEgNS44LTI0LjQgNy4zLTguOCAxOC45LTExLjggNDYuMS0xMS44IDMzIDAgNDcuMSA1IDUzLjkgMTguOSAyIDQuMyA0IDE1LjYgNCAyMy43bDAgNzYuMy0zOC4zIDAgMS4zLTE5LjEtMSAwYy01LjMgMTUuNi0xMy42IDIwLjQtMzUuNSAyMC40LTMwLjMgMC00MS4xLTEwLjEtNDEuMS0zNy4zIDAtMjUuMiAxMi4zLTM1LjggNDIuMS0zNS44em0xNy4xIDQ4LjFjMTMuMSAwIDE2LjktMyAxNi45LTEzLjQgMC05LjEtNC4zLTExLjYtMTkuNi0xMS42LTEzLjEgMC0xNy45IDMtMTcuOSAxMi4xLS4xIDEwLjQgMy43IDEyLjkgMjAuNiAxMi45ek0xMzcgMTkyLjNsMzguMyAwLTEuNSAyMC42IC44IDBjOS4xLTE3LjEgMTUuOS0yMC45IDM3LjUtMjAuOSAxNC40IDAgMjQuNyAzIDMxLjUgOS4xIDkuOCA4LjYgMTIuOCAyMC40IDEyLjggNDguMSAwIDMwLTMgNDMuMS0xMi4xIDUyLjktNi44IDcuMy0xNi40IDEwLjEtMzMuMiAxMC4xLTIwLjQgMC0yOS4yLTUuNS0zMy44LTIxLjJsLS44IDAgMCA3MC4zLTM5LjUgMCAwLTE2OXpNMjE3LjkgMjUzYzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTcuOS02MC43bDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjMgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjkgLjEgMHpNMzU2LjcgMjUzYzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTMuOC0zLjhjMC0yNS40IDMuMy0zNy44IDEyLjMtNDUuOCA4LjgtOC4xIDIyLjItMTEuMyA0NS4xLTExLjMgNDIuOCAwIDU1LjcgMTIuOCA1NS43IDU1LjdsMCAxMS4xLTc1LjMgMGMtLjMgMi0uMyA0LS4zIDQuOCAwIDE2LjkgNC41IDIxLjkgMjAuMSAyMS45IDEzLjkgMCAxNy45LTMgMTcuOS0xMy45bDM3LjUgMCAwIDIuM2MwIDkuOC0yLjUgMTguOS02LjggMjQuNy03LjMgOS44LTE5LjYgMTMuNi00NC4zIDEzLjYtMjcuNSAwLTQxLjYtMy4zLTUwLjYtMTIuMy04LjUtOC41LTExLjMtMjEuMy0xMS4zLTUwLjh6bTc2LjQtMTEuNmMtLjMtMS44LS4zLTMuMy0uMy0zLjggMC0xMi4zLTMuMy0xNC42LTE5LjYtMTQuNi0xNC40IDAtMTcuMSAzLTE4LjEgMTUuMWwtLjMgMy4zIDM4LjMgMHptNTUuNi00NS4zbDM4LjMgMC0xLjggMTkuOSAuNyAwYzYuOC0xNC45IDE0LjQtMjAuMiAyOS43LTIwLjIgMTAuOCAwIDE5LjEgMy4zIDIzLjQgOS4zIDUuMyA3LjMgNi44IDE0LjQgNi44IDM0IDAgMS41IDAgNSAuMiA5LjNsLTM1IDBjLjMtMS44IC4zLTMuMyAuMy00IDAtMTUuNC0yLTE5LjQtMTAuMy0xOS40LTYuMyAwLTEwLjggMy4zLTEzLjEgOS4zLTEgMy0xIDQuMy0xIDEyLjNsMCA2OC0zOC4zIDAgMC0xMTguNSAuMSAweiJdfSxkTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXNjaG9sYXIiLGljb246WzUxMiw1MTIsW10sImU2M2IiLCJNMzkwLjkgMjk4LjVzMCAuMSAuMSAuMWM5LjIgMTkuNCAxNC40IDQxLjEgMTQuNCA2NC0uMSA4Mi41LTY2LjkgMTQ5LjQtMTQ5LjQgMTQ5LjRTMTA2LjcgNDQ1LjEgMTA2LjcgMzYyLjdjMC0yMi45IDUuMi00NC42IDE0LjQtNjQgMS43LTMuNiAzLjYtNy4yIDUuNi0xMC43IDQuNC03LjYgOS40LTE0LjcgMTUtMjEuMyAyNy40LTMyLjYgNjguNS01My4zIDExNC40LTUzLjMgMzMuNiAwIDY0LjYgMTEuMSA4OS42IDI5LjkgOS4xIDYuOSAxNy40IDE0LjcgMjQuOCAyMy41IDUuNiA2LjYgMTAuNiAxMy44IDE1IDIxLjMgMiAzLjQgMy44IDcgNS41IDEwLjVsLS4xLS4xem0yNi40LTE4LjhjLTMwLjEtNTguNC05MS05OC40LTE2MS4zLTk4LjRzLTEzMS4yIDQwLTE2MS4zIDk4LjRsLTk0LjctNzcgMjU2LTIwMi43IDI1NiAyMDIuNy05NC43IDc3LjEgMC0uMXoiXX0sdU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inlhcm4iLGljb246WzUxMiw1MTIsW10sImY3ZTMiLCJNNDAxLjkgMzQ1LjJjLTM5IDkuMy00OC40IDMyLjEtMTA0IDQ3LjQgMCAwLTIuNyA0LTEwLjQgNS44LTEzLjQgMy4zLTYzLjkgNi02OC41IDYuMS0xMi40IC4xLTE5LjktMy4yLTIyLTguMi02LjQtMTUuMyA5LjItMjIgOS4yLTIyLTguMS01LTktOS45LTkuOC04LjEtMi40IDUuOC0zLjYgMjAuMS0xMC4xIDI2LjUtOC44IDguOS0yNS41IDUuOS0zNS4zIC44LTEwLjgtNS43IC44LTE5LjIgLjgtMTkuMnMtNS44IDMuNC0xMC41LTMuNmMtNi05LjMtMTcuMS0zNy4zIDExLjUtNjItMS4zLTEwLjEtNC42LTUzLjcgNDAuNi04NS42IDAgMC0yMC42LTIyLjgtMTIuOS00My4zIDUtMTMuNCA3LTEzLjMgOC42LTEzLjkgNS43LTIuMiAxMS4zLTQuNiAxNS40LTkuMSAyMC42LTIyLjIgNDYuOC0xOCA0Ni44LTE4czEyLjQtMzcuOCAyMy45LTMwLjRjMy41IDIuMyAxNi4zIDMwLjYgMTYuMyAzMC42czEzLjYtNy45IDE1LjEtNWM4LjIgMTYgOS4yIDQ2LjUgNS42IDY1LjEtNi4xIDMwLjYtMjEuNCA0Ny4xLTI3LjYgNTcuNS0xLjQgMi40IDE2LjUgMTAgMjcuOCA0MS4zIDEwLjQgMjguNiAxLjEgNTIuNyAyLjggNTUuMyAuOCAxLjQgMTMuNyAuOCAzNi40LTEzLjIgMTIuOC03LjkgMjguMS0xNi45IDQ1LjQtMTcgMTYuNy0uNSAxNy42IDE5LjIgNC45IDIyLjJ6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQxNi43IDc1LjJjLTEuNy0xMy42LTEzLjItMjMtMjgtMjIuOC0yMiAuMy00MC41IDExLjctNTIuOCAxOS4yLTQuOCAzLTguOSA1LjItMTIuNCA2LjggMy4xLTQ0LjUtMjIuNS03My4xLTI4LjctNzkuNCA3LjgtMTEuMyAxOC40LTI3LjggMjMuNC01My4yIDQuMy0yMS43IDMtNTUuNS02LjktNzQuNS0xLjYtMy4xLTcuNC0xMS4yLTIxLTcuNC05LjctMjAtMTMtMjIuMS0xNS42LTIzLjgtMS4xLS43LTIzLjYtMTYuNC00MS40IDI4LTEyLjIgLjktMzEuMyA1LjMtNDcuNSAyMi44LTIgMi4yLTUuOSAzLjgtMTAuMSA1LjRsLjEgMGMtOC40IDMtMTIuMyA5LjktMTYuOSAyMi4zLTYuNSAxNy40IC4yIDM0LjYgNi44IDQ1LjctMTcuOCAxNS45LTM3IDM5LjgtMzUuNyA4Mi41LTM0IDM2LTExLjggNzMtNS42IDc5LjYtMS42IDExLjEgMy43IDE5LjQgMTIgMjMuOCAxMi42IDYuNyAzMC4zIDkuNiA0My45IDIuOCA0LjkgNS4yIDEzLjggMTAuMSAzMCAxMC4xIDYuOCAwIDU4LTIuOSA3Mi42LTYuNSA2LjgtMS42IDExLjUtNC41IDE0LjYtNy4xIDkuOC0zLjEgMzYuOC0xMi4zIDYyLjItMjguNyAxOC0xMS43IDI0LjItMTQuMiAzNy42LTE3LjQgMTIuOS0zLjIgMjEtMTUuMSAxOS40LTI4LjJ6Il19LHBNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1vdmVyZmxvdyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2YyIsIk0yOTEgMzExbC0xOTUuNy00MS4zLTguMiAzOS4zIDE5NS43IDQxIDguMi0zOXptNTEtODdMMTg4LjUgOTUuNyAxNjMgMTI2LjUgMzE2LjUgMjU0LjggMzQyIDIyNHptLTMxLjIgMzkuN0wxMjkuNSAxNzkgMTEyLjggMjE1LjUgMjk0IDMwMCAzMTAuOCAyNjMuN3pNMjYyLjMgMzJsLTMyIDI0IDExOS4zIDE2MC4zIDMyLTI0LTExOS4zLTE2MC4zem0yMC41IDMyOGwtMjAwIDAgMCAzOS43IDIwMCAwIDAtMzkuN3ptMzkuNyA4MGwtMjc5LjUgMCAwLTEyMC00MCAwIDAgMTYwIDM1OS41IDAgMC0xNjAtNDAgMCAwIDEyMHoiXX0saE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aCIsaWNvbjpbMzg0LDUxMixbXSwiZjI5MyIsIk0yNjAuNiAxNzEuMWwtNDIuOSA0Mi45LS4zLTg2IDQzLjIgNDMuMXpNMjE3LjQgMzkwLjlsNDMuMS00My4xLTQyLjktNDIuOS0uMiA4NnpNMzg0IDI1OS40QzM4NCA0NjUgMzEyLjEgNTEyIDE5OC45IDUxMlMwIDQ2NSAwIDI1OS40IDgzLjQgMCAxOTYuNiAwIDM4NCA1My45IDM4NCAyNTkuNHptLTE1OC41IDBsNzkuNC04OC42LTEyNS4xLTEzNC4zIDAgMTc2LjktNzMuOC03My44LTI3IDI2LjkgOTIuNyA5My05Mi43IDkzIDI2LjkgMjYuOSA3My44LTczLjggMi4zIDE3MCAxMjcuNC0xMjcuNS04My45LTg4Ljd6Il19LGZNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jLWpwIixpY29uOls1MTIsNTEyLFtdLCJmNGVhIiwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjQgMTE5LjggNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4yIDUwNCAyNTYgNTA0IDExNy4yIDM5Ni41IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMS4xIDMtNDEuMiA5LTYwLjNsMTI3IDU2LjUtMjcuOSAwIDAgMzguNiA1OC4xIDAgNS43IDExLjggMCAxOC43LTYzLjggMCAwIDM4LjcgNjMuOCAwIDAgNTYgNjEuNyAwIDAtNTYgNjQuMiAwIDAtMzUuNyA4MSAzNi4xYy0xLjUgMi4yLTU3LjEgOTguMy0xNzUuMiA5OC4zem04Ny42LTEzNy4zbC01Ny42IDAgMC0xOC43IDIuOS01LjYgNTQuNyAyNC4zem02LjUtNTEuNGwwLTE3LjgtMzguNiAwIDYzLTExNi02NS44IDAtNDMuNCA5Ni0yMy0xMC4yLTM5LjYtODUuNy02NS44IDAgMjcuMyA1MS04MS45LTM2LjVjMjcuOC00NC4xIDgyLjYtOTguMSAxNzMuNy05OC4xIDExMi44IDAgMjAzIDkwIDIwMyAyMDMuNCAwIDIxLTIuNyA0MC42LTcuOSA1OUwzNTAuNCAyNzB6Il19LG1NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRkaXQiLGljb246WzUxMiw1MTIsW10sImYxYTEiLCJNMCAyNTZDMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2IDM5Ny40IDUxMiAyNTYgNTEyTDM3LjEgNTEyYy0xMy43IDAtMjAuNS0xNi41LTEwLjktMjYuMkw3NSA0MzdDMjguNyAzOTAuNyAwIDMyNi43IDAgMjU2ek0zNDkuNiAxNTMuNmMyMy42IDAgNDIuNy0xOS4xIDQyLjctNDIuN3MtMTkuMS00Mi43LTQyLjctNDIuN2MtMjAuNiAwLTM3LjggMTQuNi00MS44IDM0LTM0LjUgMy43LTYxLjQgMzMtNjEuNCA2OC40bDAgLjJjLTM3LjUgMS42LTcxLjggMTIuMy05OSAyOS4xLTEwLjEtNy44LTIyLjgtMTIuNS0zNi41LTEyLjUtMzMgMC01OS44IDI2LjgtNTkuOCA1OS44IDAgMjQgMTQuMSA0NC42IDM0LjQgNTQuMSAyIDY5LjQgNzcuNiAxMjUuMiAxNzAuNiAxMjUuMnMxNjguNy01NS45IDE3MC42LTEyNS4zYzIwLjItOS42IDM0LjEtMzAuMiAzNC4xLTU0IDAtMzMtMjYuOC01OS44LTU5LjgtNTkuOC0xMy43IDAtMjYuMyA0LjYtMzYuNCAxMi40LTI3LjQtMTctNjIuMS0yNy43LTEwMC0yOS4xbDAtLjJjMC0yNS40IDE4LjktNDYuNSA0My40LTQ5LjkgNC40IDE4LjggMjEuMyAzMi44IDQxLjUgMzIuOGwuMSAuMnpNMTc3LjEgMjQ2LjljMTYuNyAwIDI5LjUgMTcuNiAyOC41IDM5LjNzLTEzLjUgMjkuNi0zMC4zIDI5LjYtMzEuNC04LjgtMzAuNC0zMC41IDE1LjQtMzguMyAzMi4xLTM4LjNsLjEtLjF6bTE5MC4xIDM4LjNjMSAyMS43LTEzLjcgMzAuNS0zMC40IDMwLjVzLTI5LjMtNy45LTMwLjMtMjkuNiAxMS44LTM5LjMgMjguNS0zOS4zIDMxLjIgMTYuNiAzMi4xIDM4LjNsLjEgLjF6bS00OC4xIDU2LjdjLTEwLjMgMjQuNi0zNC42IDQxLjktNjMgNDEuOXMtNTIuNy0xNy4zLTYzLTQxLjljLTEuMi0yLjkgLjgtNi4yIDMuOS02LjUgMTguNC0xLjkgMzguMy0yLjkgNTkuMS0yLjlzNDAuNyAxIDU5LjEgMi45YzMuMSAuMyA1LjEgMy42IDMuOSA2LjV6Il19LGdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25uZWN0ZGV2ZWxvcCIsaWNvbjpbNTc2LDUxMixbXSwiZjIwZSIsIk01NTAuOCAyNDFsLTUwLjEtODYuOGMxLjEtMi4xIDEuOS00LjYgMS45LTcuMiAwLTgtNi43LTE0LjctMTQuNy0xNUw0MzIuNCAzNi4xYy41LTEuNiAxLjEtMy4yIDEuMS00LjggMC04LjYtNy0xNS4zLTE1LjMtMTUuMy00LjggMC04LjggMi4xLTExLjggNS42bC0xMDYuNiAwYy0yLjctMy41LTYuNy01LjYtMTEuNS01LjZzLTguOCAyLjEtMTEuNSA1LjZsLTEwNi4xIDBjLTIuOS0zLjUtNy01LjYtMTEuOC01LjYtOC4zIDAtMTUuMyA2LjctMTUuMyAxNS4zIDAgMS42IC41IDMuNSAxLjEgNC44bC01NiA5Ny4yYy01LjQgMi40LTkuMSA3LjUtOS4xIDEzLjcgMCAuNSAuMyAxLjEgLjMgMS42TDI2LjYgMjQwLjdjLTcuMiAxLjMtMTIuNiA3LjUtMTIuNiAxNSAwIDcuMiA1LjEgMTMuNCAxMi4xIDE1bDU1LjIgOTUuNGMtLjUgMS42LS44IDIuOS0uOCA0LjggMCA3LjIgNS4xIDEzLjQgMTIuMSAxNC43bDUxLjcgODkuN2MtLjUgMS42LTEuMSAzLjUtMS4xIDUuNCAwIDguNiA3IDE1LjMgMTUuMyAxNS4zIDQuOCAwIDguOC0yLjEgMTEuNS01LjRsMTA2LjkgMGMyLjcgMy4yIDcgNS40IDExLjUgNS40czguOC0yLjEgMTEuNS01LjRsMTA3LjEgMGMyLjcgMi45IDYuNyA0LjggMTEgNC44IDguNiAwIDE1LjMtNyAxNS4zLTE1LjMgMC0xLjYtLjMtMi45LS44LTQuM2w1MS43LTkwLjNjNy0xLjMgMTIuMS03LjUgMTIuMS0xNC43IDAtMS42LS4zLTMuMi0uOC00LjhsNTQuOS05NS40YzctMS4zIDEyLjMtNy41IDEyLjMtMTUgMC03LjItNS4xLTEzLjQtMTEuOC0xNC43em0tMzk3IDIwOS43bC00My43LTc1LjggNDMuNyAwIDAgNzUuOHptMC04My44bC00My43IDBjLS4zLTEuMS0uOC0yLjEtMS4zLTMuMmw0NS00Ny40IDAgNTAuNnptMC02Mi40bC01MC40IDUzLjNjLTEuMy0uNS0yLjctMS4zLTQtMS42TDQzLjcgMjU5LjhjLjUtMS4zIC41LTIuNyAuNS00czAtMi40LS4zLTMuNWw1Mi05MGMyLjctLjMgNS40LTEuMSA3LjgtMi43bDUwLjEgNTIgMCA5Mi45em0wLTEwMi4zTDEwOCAxNTQuOGMxLjMtMi4xIDIuMS00LjggMi4xLTcuOCAwLS4zLS4zLS44LS4zLTEuMWw0My45LTE1LjggMCA3Mi4xem0wLTgwLjZsLTQzLjcgMTUuOCA0My43LTc1LjUgMCA1OS43em0zMjYuNSAzOS4xbC44IDEuMy0zNS40IDE2Ny4xLTYzLjgtNjcuMiA5OC0xMDEuNSAuMyAuM3pNMjkyLjEgMzU1LjFsMTEuNSAxMS44LTIyLjggMCAxMS4zLTExLjh6bS0uMy0xMS4zbC04My4zLTg1LjQgNzkuNi04NC40IDgzIDg3LjYtNzkuMyA4Mi4yem01LjQgNS45bDc5LjMtODIuMiA2Ny41IDcxLjMtNS45IDI4LjEtMTI0IDAtMTYuOS0xNy4xek00MTAuNyA0NC40YzEuMSAuNSAyLjEgMS4xIDMuNSAxLjNsNTcuOSAxMDAuNyAwIC41YzAgMi45IC44IDUuNiAyLjEgNy44bC05Ny41IDEwMS4yLTgzLTg3LjYgMTE3LjEtMTI0em0tOS4xLTIuMWwtMTEzLjYgMTIwLjMtNTcuMS02MC4zIDE2Ni4zLTYwIDQuMyAwem0tMTIzLjUgMGMyLjcgMi43IDYuMiA0LjMgMTAuMiA0LjNzNy41LTEuNiAxMC4yLTQuM2w3NSAwLTE0OC40IDUzLjYtNTAuOS01My42IDEwMy45IDB6TTE2MS45IDQ3LjlsMS4xLTIuMWMuOS0uMiAxLjgtLjUgMi43LS44bDUxLjIgNTMuOC01NC45IDE5LjggMC03MC43em0wIDc5LjNsNjAuOC0yMiA1OS43IDYzLjItNzkuNiA4NC4xLTQxLTQyLjEgMC04My4zem0wIDkyLjdsMzYuNCAzNy44LTM2LjQgMzguMyAwLTc2LjF6bTAgODcuOWw0Mi4xLTQ0LjUgODIuOCA4Ni0xNy4xIDE3LjctMTA3LjcgMCAwLTU5LjJ6bTcgMTYyLjFjLTEuNi0xLjYtMy41LTIuNy01LjktMy41bC0xLjEtMS42IDAtODkuNyA5OS45IDAtOTEuNiA5NC44LTEuMyAwem0xMjkuOSAwYy0yLjctMi40LTYuNC00LjMtMTAuNC00LjNzLTcuOCAxLjktMTAuNCA0LjNsLTk2LjQgMCA5MS42LTk0LjggMzguMyAwIDkxLjYgOTQuOC0xMDQuMiAwem0xMjAtMTEuOGwtNC4zIDcuNWMtMS4zIC4zLTIuNCAuOC0zLjUgMS4zbC04OS4yLTkxLjkgMTE0LjQgMC0xNy40IDgzem0xMi45LTIyLjJsMTIuOS02MC44IDIyIDAtMzQuOCA2MC44em0zNC44LTY4LjhsLTIwLjQgMCA0LjYtMjEuMiAxNy4xIDE4LjJjLS41IC44LTEuMSAxLjktMS4zIDIuOXptNjYuMi0xMDcuNGwtNTUuNCA5Ni43Yy0xLjMgLjUtMi43IDEuMS00IDEuOWwtMjAuNi0yMiAzNC42LTE2My45IDQ1LjggNzkuM2MtLjMgMS4zLS44IDIuNy0uOCA0LjMgMCAxLjMgLjMgMi40IC41IDMuN3oiXX0sYk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc2VhcmNoZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmOCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNjIuMiAzNjYuNGMtNi42IDMtMzMuMiA2LTUwLTE0LjItOS4yLTEwLjYtMjUuMy0zMy4zLTQyLjItNjMuNi04LjkgMC0xNC43IDAtMjEuNC0uNmwwIDQ2LjRjMCAyMy41IDYgMjEuMiAyNS44IDIzLjlsMCA4LjFjLTYuOS0uMy0yMy4xLS44LTM1LjYtLjgtMTMuMSAwLTI2LjEgLjYtMzMuNiAuOGwwLTguMWMxNS41LTIuOSAyMi0xLjMgMjItMjMuOWwwLTEwOS40YzAtMjIuNi02LjQtMjEtMjItMjMuOWwwLTguMWMyNS44IDEgNTMuMS0uNiA3MC45LS42IDMxLjcgMCA1NS45IDE0LjQgNTUuOSA0NS42IDAgMjEuMS0xNi43IDQyLjItMzkuMiA0Ny41IDEzLjYgMjQuMiAzMCA0NS42IDQyLjIgNTguOSA3LjIgNy44IDE3LjIgMTQuNyAyNy4yIDE0LjdsMCA3LjN6bTIyLjktMTM1Yy0yMy4zIDAtMzIuMi0xNS43LTMyLjItMzIuMmwwLTMyLjJjMC0xMi4yIDguOC0zMC40IDM0LTMwLjRzMzAuNCAxNy45IDMwLjQgMTcuOWwtMTAuNyA3LjJzLTUuNS0xMi41LTE5LjctMTIuNWMtNy45IDAtMTkuNyA3LjMtMTkuNyAxOS43bDAgMjYuOGMwIDEzLjQgNi42IDIzLjMgMTcuOSAyMy4zIDE0LjEgMCAyMS41LTEwLjkgMjEuNS0yNi44bC0xNy45IDAgMC0xMC43IDMwLjQgMGMwIDIwLjUgNC43IDQ5LjktMzQgNDkuOXpNMTY4LjYgMjc2LjFjLTkuNCAwLTEzLjYtLjMtMjAtLjhsMC02OS43YzYuNC0uNiAxNS0uNiAyMi41LS42IDIzLjMgMCAzNy4yIDEyLjIgMzcuMiAzNC41IDAgMjEuOS0xNSAzNi42LTM5LjcgMzYuNnoiXX0sdk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpZ25hbC1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImU2NjMiLCJNMjU2IDBjLTEzLjMgMC0yNi4zIDEtMzkuMSAzbDMuNyAyMy43QzIzMi4xIDI0LjkgMjQ0IDI0IDI1NiAyNHMyMy45IC45IDM1LjQgMi43TDI5NS4xIDNDMjgyLjMgMSAyNjkuMyAwIDI1NiAwem02MC44IDcuM2wtNS43IDIzLjNjMjMuNCA1LjcgNDUuNCAxNC45IDY1LjQgMjcuMWwxMi41LTIwLjVjLTIyLjEtMTMuNC00Ni40LTIzLjYtNzIuMi0yOS45em03Ni40IDYxLjZjMTkuMSAxNCAzNiAzMC45IDUwLjEgNTAuMWwxOS40LTE0LjJDNDQ3IDgzLjYgNDI4LjQgNjUgNDA3LjMgNDkuNUwzOTMuMSA2OC44em04MS43IDU0LjJsLTIwLjUgMTIuNWMxMi4yIDIwIDIxLjQgNDIgMjcuMSA2NS40bDIzLjMtNS43Yy02LjMtMjUuOC0xNi41LTUwLjEtMjkuOS03Mi4yem0xMC41IDk3LjVjMS44IDExLjUgMi43IDIzLjQgMi43IDM1LjRzLS45IDIzLjktMi43IDM1LjRsMjMuNyAzLjdjMS45LTEyLjcgMy0yNS44IDMtMzkuMXMtMS0yNi4zLTMtMzkuMWwtMjMuNyAzLjd6bS0zMSAxNTUuOWwyMC41IDEyLjVjMTMuNC0yMi4xIDIzLjYtNDYuNCAyOS45LTcyLjJsLTIzLjMtNS43Yy01LjcgMjMuNC0xNC45IDQ1LjQtMjcuMSA2NS40em04LjIgMzAuOGwtMTkuNC0xNC4yYy0xNCAxOS4xLTMwLjkgMzYtNTAuMSA1MC4xbDE0LjIgMTkuNGMyMS4xLTE1LjUgMzkuOC0zNC4xIDU1LjItNTUuMnptLTg2LjEgNDdjLTIwIDEyLjItNDIgMjEuNC02NS40IDI3LjFsNS43IDIzLjNjMjUuOC02LjMgNTAuMS0xNi41IDcyLjItMjkuOWwtMTIuNS0yMC41ek0yOTUuMSA1MDlsLTMuNy0yMy43QzI3OS45IDQ4Ny4xIDI2OCA0ODggMjU2IDQ4OHMtMjMuOS0uOS0zNS40LTIuN0wyMTYuOSA1MDljMTIuNyAxLjkgMjUuOCAzIDM5LjEgM3MyNi4zLTEgMzkuMS0zem0tOTQuMS0yNy42Yy0xNy42LTQuMy0zNC40LTEwLjYtNTAuMS0xOC42bC03LjgtNC0zMi44IDcuNyA1LjUgMjMuNCAyNC4zLTUuN2MxNy40IDguOSAzNS45IDE1LjggNTUuMyAyMC41bDUuNy0yMy4zek05NS40IDQ5NC42TDkwIDQ3MS4zIDQ4LjMgNDgxYy0xMC40IDIuNC0xOS43LTYuOS0xNy4zLTE3LjNsOS43LTQxLjYtMjMuNC01LjUtOS43IDQxLjZDMS4yIDQ4NiAyNiA1MTAuOCA1My44IDUwNC40bDQxLjYtOS43em0tNTAtOTIuOWw3LjctMzIuOC00LTcuOGMtOC0xNS43LTE0LjMtMzIuNS0xOC42LTUwLjFMNy4zIDMxNi43QzEyIDMzNi4xIDE4LjkgMzU0LjcgMjcuNyAzNzJsLTUuNyAyNC4zIDIzLjQgNS41ek0zIDI5NS4xbDIzLjctMy43QzI0LjkgMjc5LjkgMjQgMjY4IDI0IDI1NnMuOS0yMy45IDIuNy0zNS40TDMgMjE2LjlDMSAyMjkuNyAwIDI0Mi43IDAgMjU2czEgMjYuMyAzIDM5LjF6bTI3LjYtOTQuMWM1LjctMjMuNCAxNC45LTQ1LjQgMjcuMS02NS40TDM3LjIgMTIzLjFjLTEzLjQgMjIuMS0yMy42IDQ2LjQtMjkuOSA3Mi4ybDIzLjMgNS43em0xOC45LTk2LjJsMTkuNCAxNC4yYzE0LTE5LjEgMzAuOS0zNiA1MC4xLTUwLjFMMTA0LjcgNDkuNUM4My42IDY1IDY1IDgzLjYgNDkuNSAxMDQuN3ptODYuMS00N2MyMC0xMi4yIDQyLTIxLjQgNjUuNC0yNy4xTDE5NS4yIDcuM2MtMjUuOCA2LjMtNTAuMSAxNi41LTcyLjIgMjkuOWwxMi41IDIwLjV6TTI1NiA0NjRjMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4UzM3MC45IDQ4IDI1NiA0OCA0OCAxNDEuMSA0OCAyNTZjMCAzNi40IDkuNCA3MC43IDI1LjggMTAwLjUgMS42IDIuOSAyLjEgNi4yIDEuNCA5LjRsLTIxLjYgOTIuNSA5Mi41LTIxLjZjMy4yLS43IDYuNS0uMiA5LjQgMS40IDI5LjggMTYuNSA2NCAyNS44IDEwMC41IDI1Ljh6Il19LHhNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4aW5nIixpY29uOlszODQsNTEyLFtdLCJmMTY4IiwiTTE2Mi43IDIxMGMtMS44IDMuMy0yNS4yIDQ0LjQtNzAuMSAxMjMuNS00LjkgOC4zLTEwLjggMTIuNS0xNy43IDEyLjVMOS44IDM0NmMtNy43IDAtMTIuMS03LjUtOC41LTE0LjRsNjktMTIxLjNjLjIgMCAuMi0uMSAwLS4zTDI2LjQgMTM0LjRjLTQuMy03LjggLjMtMTQuMSA4LjUtMTQuMWw2NS4xIDBjNy4zIDAgMTMuMyA0LjEgMTggMTIuMkwxNjIuNyAyMTB6TTM4Mi42IDQ2LjFsLTE0NCAyNTMgMCAuMyA5MS42IDE2Ni42YzMuOSA3LjEgLjIgMTQuMS04LjUgMTQuMWwtNjUuMiAwYy03LjYgMC0xMy42LTQtMTgtMTIuMkwxNDYuMSAyOTkuNGMzLjMtNS44IDUxLjUtOTAuOCAxNDQuOC0yNTUuMiA0LjYtOC4xIDEwLjQtMTIuMiAxNy41LTEyLjJsNjUuNyAwYzggMCAxMi4zIDYuNyA4LjUgMTQuMXoiXX0sejhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1qcyIsaWNvbjpbNDQ4LDUxMixbImpzLXNxdWFyZSJdLCJmM2I5IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xODAuOSA0NDQuOWMtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41em04NS44LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjYtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzeiJdfSx5TXQ9ejhlLHdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250aWNvbnMiLGljb246WzQ0OCw1MTIsW10sImYyODAiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMTg3IDE3Mi45Yy0xOC40IDAtMTkgOS45LTE5IDI3LjRsMCAyMy4zYzAgMi40LTMuNSA0LjQtLjYgNC40bDY3LjQgMC0xMS4xIDM3LjMtNTUuNyAwIDAgMTEyLjljMCA1LjgtMiA2LjcgMy4yIDcuM2w0My41IDQuMSAwIDI1LjEtMTMwLjcgMCAwLTI1LjcgMjEuMy0yYzUuMi0uNiA2LjctMi4zIDYuNy03LjlsMC0xMTEuNGMwLTIuMy0yLjktMi4zLTUuOC0yLjNsLTIyLjIgMCAwLTM3LjQgMjggMCAwLTIxYzAtNDkuNiAyNi41LTcwIDc3LjMtNzAgMzQuMSAwIDY0LjcgOC4yIDY0LjcgNTIuOGwtNTAuNyA2LjFjLjMtMTguNy00LjQtMjMtMTYuMy0yM3ptNzQuMyAyNDEuOGwwLTI1LjEgMjAuNC0yLjZjNS4yLS42IDcuNi0xLjcgNy42LTcuM2wwLTEwNy45YzAtNC4xLTIuOS02LjctNi43LTcuOWwtMjQuMi02LjQgNi43LTI5LjUgODAuMiAwIDAgMTUxLjdjMCA1LjgtMi42IDYuNCAyLjkgNy4zbDE1LjcgMi42IDAgMjUuMS0xMDIuNiAwem04MC44LTI1NS41bDkgMzMuMi03LjMgNy4zLTMxLjItMTYuNi0zMS4yIDE2LjYtNy4zLTcuMyA5LTMzLjItMjEuOC0yNC4yIDMuNS05LjYgMjcuNyAwIDE1LjUtMjggOS4zIDAgMTUuNSAyOCAyNy43IDAgMy41IDkuNi0yMS45IDI0LjJ6Il19LGtNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHMiLGljb246WzM4NCw1MTIsW10sImY3ZTAiLCJNMTAzLjIgMzAzYy01LjIgMy42LTMyLjYgMTMuMS0zMi42LTE5bDAtMTA0LTMyLjcgMCAwIDEwMi42YzAgNzQuOSA4MC4yIDUxLjEgOTcuOSAzOWwwLTE0MS42LTMyLjYgMCAwIDEyM3pNNCA3NC44TDQgMjk1LjdjMCAxMDMuNyA3NC45IDEzNS4yIDE4Ny43IDE4NC4xIDExMi40LTQ4LjkgMTg3LjctODAuMiAxODcuNy0xODQuMWwwLTIyMC45QzI2My4xIDEzLjIgOTcuNiAyNS4yIDQgNzQuOHpNMzYyLjEgMjk1LjdjMCA4Ni42LTUzLjIgMTEzLjYtMTcwLjQgMTY1LjMtMTE3LjUtNTEuOC0xNzAuNS03OC43LTE3MC41LTE2NS4zbDAtMTI2LjRjMTAyLjMtOTMuOCAyMzEuNi0xMDAgMzQwLjktODkuOGwwIDIxNi4yek0xNTIuNSAxODguM2wwIDIxMi44IDMyLjcgMCAwLTY4LjdjMjQuNCA3LjMgNzEuNy0yLjYgNzEuNy03OC41IDAtOTcuNC04MC43LTgwLjktMTA0LjQtNjUuNnptMzIuNyAxMTcuM2wwLTEwMC4zYzguNC00LjIgMzguNC0xMi43IDM4LjQgNDkuMyAwIDY3LjktMzYuNCA1MS44LTM4LjQgNTF6bTc5LjEtODYuNGMuMSA0Ny4zIDUxLjYgNDIuNSA1Mi4yIDcwLjQgLjYgMjMuNS0zMC40IDIzLTUwLjggNC45bDAgMzAuMWMzNi4yIDIxLjUgODEuOSA4LjEgODMuMi0zMy41IDEuNy01MS41LTU0LjEtNDYuNi01My40LTczLjIgLjYtMjAuMyAzMC42LTIwLjUgNDguNS0yLjJsMC0yOC40Yy0yOC41LTIyLTc5LjktOS4yLTc5LjcgMzEuOXoiXX0sU010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFtYXpvbi1wYXkiLGljb246WzY0MCw1MTIsW10sImY0MmMiLCJNMTQgMzI1LjNjMi4zLTQuMiA1LjItNC45IDkuNy0yLjUgMTAuNCA1LjYgMjAuNiAxMS40IDMxLjIgMTYuNyA0MC42IDIwLjIgODMuMyAzNS44IDEyNy40IDQ2LjMgMjAuOCA1IDQxLjkgOSA2My4yIDExLjggMzEuNSA0LjIgNjMuMiA2IDk1IDUuMiAxNy40LS40IDM0LjgtMS44IDUyLjEtMy44IDU2LjItNi42IDExMS4xLTIxIDE2My4zLTQyLjggMi45LTEuMiA1LjktMiA5LjEtMS4yIDYuNyAxLjggOSA5IDQuMSAxMy45LTMgMi43LTYuMiA1LjItOS42IDcuNC0zMC43IDIxLjEtNjQuMiAzNi40LTk5LjYgNDcuOS0yNC41IDcuOS00OS42IDEzLjgtNzUuMSAxNy42LTE3LjYgMi43LTM1LjQgNC4zLTUzLjIgNC44LS44IDAtMS43IC4yLTIuNSAuM2wtMjEuMSAwYy0uOC0uMS0xLjctLjItMi41LS4zLTMuNi0uMi03LjItLjMtMTAuNy0uNC0xNi45LS44LTMzLjctMi41LTUwLjQtNS4zLTI3LjQtNC41LTU0LjMtMTEuNS04MC40LTIwLjktNTMuNy0xOS40LTEwMy4xLTQ4LjktMTQ1LjYtODctMS44LTEuNi0zLTMuOC00LjQtNS43bDAtMnpNMTcyIDY1LjFsLTQuMyAuNmMtMTMuOCAxLjctMjYuOCA2LjktMzggMTUuMS0yLjQgMS43LTQuNiAzLjUtNy4xIDUuNC0uMi0uNC0uMy0uOS0uNC0xLjQtLjQtMi43LS44LTUuNS0xLjMtOC4yLS43LTQuNi0zLTYuNi03LjYtNi42bC0xMS41IDBjLTYuOSAwLTguMiAxLjMtOC4yIDguMmwwIDIwOS4zYzAgMSAwIDIgLjEgMyAuMiAzIDIgNC45IDQuOSA1IDcgLjEgMTQuMSAuMSAyMS4xIDAgMi45IDAgNC43LTIgNS01IC4xLTEgLjEtMiAuMS0zbDAtNzIuNGMxLjEgLjkgMS43IDEuNCAyLjIgMS45IDE3LjkgMTQuOSAzOC41IDE5LjggNjEgMTUuNCAyMC40LTQgMzQuNi0xNi41IDQzLjgtMzQuOSA3LTEzLjkgOS45LTI4LjcgMTAuMy00NC4xIC41LTE3LjEtMS4yLTMzLjktOC4xLTQ5LjgtOC41LTE5LjYtMjIuNi0zMi41LTQzLjktMzYuOS0zLjItLjctNi41LTEtOS44LTEuNS0yLjgtLjEtNS41LS4xLTguMy0uMXpNMTI0LjYgMTA3Yy0uMS0uNyAuMS0xLjMgLjQtMS45cy44LTEuMSAxLjMtMS40YzEzLjctOS41IDI4LjgtMTQuNSA0NS42LTEzLjIgMTQuOSAxLjEgMjcuMSA4LjQgMzMuNSAyNS45IDMuOSAxMC43IDQuOSAyMS44IDQuOSAzMyAwIDEwLjQtLjggMjAuNi00IDMwLjYtNi44IDIxLjMtMjIuNCAyOS40LTQyLjYgMjguNS0xNC0uNi0yNi4yLTYtMzcuNC0xMy45LS42LS4zLTEtLjgtMS4zLTEuNHMtLjQtMS4yLS40LTEuOWMuMS0xNC4xIDAtMjguMSAwLTQyLjJzLjEtMjggMC00Mi4xek0zMzAuMyA2NS4xYy0xIC4xLTIgLjMtMi45IC40LTkuNyAuNC0xOS40IDEuOC0yOC45IDQuMS02LjEgMS42LTEyIDMuOC0xNy45IDUuOC0zLjYgMS4yLTUuNCAzLjgtNS4zIDcuNyAuMSAzLjMtLjEgNi42IDAgOS45IC4xIDQuOCAyLjEgNi4xIDYuOCA0LjkgNy44LTIgMTUuNi00LjIgMjMuNS01LjcgMTIuMy0yLjMgMjQuNy0zLjMgMzcuMi0xLjQgNi41IDEgMTIuNiAyLjkgMTYuOCA4LjQgMy43IDQuOCA1LjEgMTAuNSA1LjMgMTYuNCAuMyA4LjMgLjIgMTYuNiAuMyAyNC45IDAgLjUtLjEgLjktLjIgMS40LS41LS4xLS45IDAtMS4zLS4xLTEwLjUtMi42LTIxLjItNC4yLTMyLTQuOS0xMS4zLS42LTIyLjUgLjEtMzMuMyAzLjktMTIuOSA0LjUtMjMuMyAxMi4zLTI5LjQgMjQuOS00LjcgOS44LTUuNCAyMC4yLTMuOSAzMC43IDIgMTQgOSAyNC44IDIxLjQgMzEuNyAxMS45IDYuNiAyNC44IDcuNCAzNy45IDUuNCAxNS4xLTIuMyAyOC41LTguNyA0MC4zLTE4LjQgLjUtLjQgMS0uOCAxLjYtMS4xIC42IDMuOCAxLjEgNy40IDEuOCAxMSAuNiAzLjEgMi41IDUuMSA1LjQgNS4yIDUuNCAuMSAxMC45IC4xIDE2LjMgMCAxLjMgMCAyLjUtLjUgMy40LTEuNHMxLjQtMi4xIDEuNS0zLjNjLjEtLjkgLjEtMS45IC4xLTIuOGwwLTEwNmMwLTQuMy0uMy04LjYtLjktMTIuOS0xLjktMTIuOS03LjQtMjMuNS0xOS0zMC40LTYuNy00LTE0LjEtNi0yMS44LTcuMS0zLjYtLjUtNy4yLS44LTEwLjgtMS4zLTMuOSAuMS03LjkgLjEtMTEuOSAuMXptMzUgMTI3LjdjMCAuNi0uMSAxLjItLjMgMS43cy0uNyAxLTEuMiAxLjNjLTExLjIgOC4xLTIzLjUgMTMuNS0zNy40IDE0LjktNS43IC42LTExLjQgLjQtMTYuOC0xLjgtMy0xLjEtNS42LTIuOS03LjgtNS4ycy0zLjctNS4xLTQuNi04LjFjLTItNi4zLTItMTMuMS0uMS0xOS40IDIuNS04LjMgOC40LTEzIDE2LjQtMTUuNiA4LTIuNCAxNi41LTMuMiAyNC44LTIuMiA4LjQgLjcgMTYuNiAyLjMgMjUgMy40IDEuNiAuMiAyLjEgMSAyLjEgMi42LS4xIDQuOCAwIDkuNSAwIDE0LjNzLS4yIDkuNC0uMSAxNC4xek02MjUuMiAzMjIuMmMtMS01LTQuOC02LjktOS4xLTguMy02LjgtMi4xLTEzLjktMy41LTIxLTMuOS0xMy4xLTEuMS0yNi4zLS41LTM5LjIgMS45LTE0LjMgMi43LTI3LjkgNy4zLTQwIDE1LjYtMS40IC45LTIuNyAyLjEtMy43IDMuNS0uNCAuNi0uNiAxLjMtLjcgMS45czAgMS40IC4yIDIuMWMuNCAxLjUgMi4xIDEuOSAzLjYgMS44IC43IDAgMS41IDAgMi4yLS4xIDcuOC0uOCAxNS41LTEuNyAyMy4zLTIuNSAxMS40LTEuMSAyMi45LTEuOCAzNC4zLS45IDQuOSAuNCA5LjcgMS4zIDE0LjQgMi43IDUuMSAxLjQgNy40IDUuMiA3LjYgMTAuNCAuNCA4LTEuNCAxNS43LTMuNSAyMy4zLTQuMSAxNS40LTEwIDMwLjMtMTUuOCA0NS4xLS40IDEtLjggMi0xIDMtLjUgMi45IDEuMiA0LjggNC4xIDQuMSAxLjgtLjQgMy40LTEuMyA0LjgtMi41IDQuNS00LjIgOC44LTguNyAxMi43LTEzLjQgMTIuOC0xNi40IDIwLjMtMzUuMyAyNC43LTU1LjYgLjgtMy42IDEuNC03LjMgMi4xLTEwLjlsMC0xNy4zek00OTMuMSAxOTljLTEyLjktMzUuNy0yNS44LTcxLjQtMzguNy0xMDcuMi0yLTUuNy00LjItMTEuMy02LjMtMTYuOS0xLjEtMi45LTMuMi00LjgtNi40LTQuOC03LjYtLjEtMTUuMi0uMi0yMi45LS4xLTIuNSAwLTMuNyAyLTMuMiA0LjUgLjUgMi4xIDEuMSA0LjEgMS45IDYuMSAxOS42IDQ4LjUgMzkuMyA5NyA1OS4xIDE0NS41IDEuNyA0LjEgMi4xIDcuNiAuMiAxMS44LTMuMyA3LjMtNS45IDE1LTkuMyAyMi4zLTMgNi41LTggMTEuNC0xNS4yIDEzLjMtNSAxLjMtMTAuMiAxLjctMTUuNCAxLjEtMi41LS4yLTUtLjgtNy41LTEtMy40LS4yLTUuMSAxLjMtNS4yIDQuOC0uMSAzLjMtLjEgNi42IDAgOS45IC4xIDUuNSAyIDggNy40IDguOSA1LjYgMS4xIDExLjIgMS44IDE2LjkgMiAxNy4xIC40IDMwLjctNi41IDM5LjUtMjEuNCAzLjUtNS45IDYuNi0xMiA5LjItMTguNCAyMy43LTU5LjggNDcuMi0xMTkuNyA3MC42LTE3OS42IC43LTEuOCAxLjMtMy42IDEuNi01LjUgLjQtMi44LS45LTQuNC0zLjctNC40LTYuNi0uMS0xMy4zIDAtMTkuOSAwLTEuNy0uMS0zLjQgLjMtNC43IDEuM3MtMi40IDIuMy0zIDMuOWMtLjUgMS40LTEuMSAyLjctMS42IDQuMWwtMzQuOCAxMDBjLTIuNSA3LjItNS4xIDE0LjUtNy43IDIyLjItLjQtMS4xLS42LTEuNy0uOS0yLjR6Il19LF9NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYW5kb3JhIixpY29uOlszODQsNTEyLFtdLCJlN2RhIiwiTTIwMS4zIDMyTDAgMzIgMCA0ODAgMTIwLjIgNDgwYzExLjIgMCAyMC4zLTkuMSAyMC4zLTIwLjNsMC04Ni4xIDMwLjEgMGMxNDcuMSAwIDIwNy4zLTgyLjkgMjA3LjMtMTc5LjkgMC0xMTkuNy05MC45LTE2MS44LTE3Ni41LTE2MS44eiJdfSxNTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmlkIixpY29uOls0NDgsNTEyLFtdLCJmMTliIiwiTTI3MS41IDQzMmwtNjggMzJDODguNSA0NTMuNyAwIDM5Mi41IDAgMzE4LjIgMCAyNDYuNyA4Mi41IDE4Ny4yIDE5MS43IDE3My45bDAgNDNjLTcxLjUgMTIuNS0xMjQgNTMtMTI0IDEwMS4zIDAgNTEgNTguNSA5My4zIDEzNS43IDEwM2wwLTM0MCA2OC0zMy4yIDAgMzg0IC4xIDB6TTQ0OCAyOTFsLTEzMS4zLTI4LjUgMzYuOC0yMC43Yy0xOS41LTExLjUtNDMuNS0yMC03MC0yNC44bDAtNDNjNDYuMiA1LjUgODcuNyAxOS41IDEyMC4zIDM5LjNsMzUtMTkuOCA5LjIgOTcuNXoiXX0sek10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZzY28iLGljb246WzUxMiw1MTIsW10sImU3ZGQiLCJNMzU3LjYgMjU2YzAtMjcuMS0xMC42LTUyLjUtMjkuNy03MS43cy00NC42LTI5LjctNzEuNy0yOS43bC0uMSAwYy0yNy4xIDAtNTIuNiAxMC42LTcxLjcgMjkuN3MtMjkuNyA0NC42LTI5LjcgNzEuN2MwIDI3LjEgMTAuNiA1Mi41IDI5LjcgNzEuNyAxOS4yIDE5LjIgNDQuNiAyOS43IDcxLjcgMjkuN2wuMSAwYzI3LjEgMCA1Mi42LTEwLjYgNzEuNy0yOS43IDE5LjItMTkuMiAyOS43LTQ0LjYgMjkuNy03MS43ek0xNzYuMyA0ODIuMWMyMyA4LjEgNDcgMTIuNiA3MS42IDEzLjRsMC01OS4xYy0xNy4xLS43LTMzLjUtMy44LTQ5LTguOWwtMjIuNiA1NC42em0xMzctNTQuNmMtMTUuNSA1LjEtMzIgOC4yLTQ5IDguOWwwIDU5LjFjMjQuNi0uOCA0OC42LTUuMyA3MS42LTEzLjRsLTIyLjYtNTQuNnpNOTIuNSA0MzEuMmMyMC4yIDE4LjkgNDMuMyAzNCA2OC43IDQ1bDIyLjUtNTQuNWMtMTguMy03LjktMzUuMS0xOC44LTQ5LjgtMzEuOUw5Mi41IDQzMS4yem0yODUuOS00MS40Yy0xNC42IDEzLjItMzEuNCAyNC00OS44IDMxLjlsMjIuNSA1NC41YzI1LjQtMTEgNDguNC0yNi4xIDY4LjctNDVsLTQxLjQtNDEuNHpNMTQ1LjQgMzc4LjJjMTMuNiAxMi4xIDI5IDIxLjkgNDUuOCAyOSAxOCA3LjYgMzcuMSAxMiA1Ni43IDEyLjlsMC00Ni44Yy0yNi40LTEuOC01MC4zLTEyLjMtNjkuMS0yOC42bC0zMy40IDMzLjR6bTE4OC0zMy40Yy0xOC44IDE2LjMtNDIuNyAyNi44LTY5LjEgMjguNmwwIDQ2LjhjMTkuNi0uOSAzOC43LTUuMyA1Ni43LTEyLjkgMTYuOC03LjEgMzIuMi0xNi45IDQ1LjgtMjlsLTMzLjQtMzMuNHpNMzguNSAzNTYuNmMxMC43IDIzLjIgMjUgNDQuMyA0Mi41IDYzLjFsNDEuMy00MS4zYy0xMi40LTEzLjQtMjIuOS0yOC42LTMwLjktNDUuMkwzOC41IDM1Ni42em0zODIuNC0yMy41Yy04IDE2LjYtMTguNSAzMS45LTMwLjkgNDUuMmw0MS4zIDQxLjNjMTcuNS0xOC43IDMxLjgtMzkuOSA0Mi41LTYzLjFsLTUyLjktMjMuNXptLTMzMS02OWMxLjEgMTguOCA1LjQgMzcuMiAxMi44IDU0LjUgNy41IDE3LjggMTggMzQgMzEuMiA0OC4ybDMzLjUtMzMuNWMtMTYuNC0xOC44LTI2LjktNDIuOC0yOC43LTY5LjJsLTQ4LjggMHptMjgzLjcgMGMtMS44IDI2LjQtMTIuMyA1MC40LTI4LjcgNjkuMmwzMy41IDMzLjVjMTMuMS0xNC4yIDIzLjYtMzAuNCAzMS4yLTQ4LjIgNy4zLTE3LjQgMTEuNi0zNS43IDEyLjctNTQuNWwtNDguNyAwem0tMzU3LjEgMGMuOSAyNi43IDYuMSA1Mi43IDE1LjYgNzcuNUw4NSAzMTguMmMtNi40LTE3LTEwLjMtMzUuMS0xMS4zLTU0bC01Ny4xIDB6bTQyMi4xIDBjLTEgMTguOS01IDM3LjEtMTEuMyA1NGw1Mi44IDIzLjVjOS41LTI0LjggMTQuNy01MC44IDE1LjYtNzcuNWwtNTcuMSAwek0zMi4xIDE3MC40Yy05LjUgMjQuOC0xNC43IDUwLjgtMTUuNiA3Ny41bDU3LjEgMGMxLTE4LjkgNS0zNy4xIDExLjMtNTRMMzIuMSAxNzAuNHptMTAxLjctMjUuMmMtMTMuMSAxNC4yLTIzLjYgMzAuNC0zMS4yIDQ4LjItNy4zIDE3LjQtMTEuNiAzNS43LTEyLjggNTQuNWw0OC44IDBjMS44LTI2LjQgMTIuMy01MC40IDI4LjctNjkuMmwtMzMuNS0zMy41em0yMTEuMSAzMy41YzE2LjQgMTguOCAyNi45IDQyLjggMjguNyA2OS4ybDQ4LjcgMGMtMS4xLTE4LjgtNS40LTM3LjItMTIuNy01NC41LTcuNS0xNy44LTE4LTM0LTMxLjItNDguMmwtMzMuNSAzMy41em04Mi40IDE1LjJjNi40IDE3IDEwLjMgMzUuMSAxMS4zIDU0bDU3LjEgMGMtLjktMjYuNy02LjEtNTIuNy0xNS42LTc3LjVsLTUyLjggMjMuNXpNODEgOTIuM0M2My40IDExMSA0OS4yIDEzMi4yIDM4LjUgMTU1LjRsNTIuOSAyMy41YzgtMTYuNiAxOC41LTMxLjkgMzAuOS00NS4yTDgxIDkyLjN6bTMwOSA0MS4zYzEyLjQgMTMuNCAyMi45IDI4LjYgMzAuOSA0NS4ybDUyLjktMjMuNWMtMTAuNy0yMy4yLTI1LTQ0LjMtNDIuNS02My4xTDM5MCAxMzMuN3pNMjQ4IDkxLjhjLTE5LjYgLjktMzguNyA1LjMtNTYuNyAxMi45LTE2LjggNy4xLTMyLjIgMTYuOS00NS44IDI5bDMzLjQgMzMuNGMxOC44LTE2LjMgNDIuNy0yNi44IDY5LjEtMjguNmwwLTQ2Ljd6bTE2LjMgNDYuN2MyNi40IDEuOCA1MC4zIDEyLjMgNjkuMSAyOC42bDMzLjQtMzMuNGMtMTMuNi0xMi4xLTI5LTIxLjktNDUuOC0yOS0xOC03LjYtMzcuMS0xMi01Ni43LTEyLjlsMCA0Ni43ek0xNjEuMiAzNS44Yy0yNS40IDExLTQ4LjQgMjYuMS02OC43IDQ1bDQxLjQgNDEuNGMxNC43LTEzLjIgMzEuNC0yNCA0OS44LTMxLjlMMTYxLjIgMzUuOHpNMzI4LjYgOTAuM2MxOC4zIDcuOSAzNS4xIDE4LjggNDkuOCAzMS45bDQxLjQtNDEuNGMtMjAuMi0xOC45LTQzLjMtMzQtNjguNy00NUwzMjguNiA5MC4zek0yNDggMTYuNGMtMjQuNiAuOC00OC42IDUuMy03MS42IDEzLjRsMjIuNiA1NC42YzE1LjUtNS4xIDMyLTguMiA0OS04LjlsMC01OS4xem0xNi4zIDU5LjFjMTcuMSAuNyAzMy41IDMuOCA0OSA4LjlsMjIuNi01NC42Yy0yMy04LjEtNDctMTIuNi03MS42LTEzLjRsMCA1OS4xek01MTIuMiAyNjQuMmwtLjIgMEM1MDcuOCAzOTkgMzk5LjIgNTA3LjcgMjY0LjMgNTExLjlsMCAuMS0xNi4zIDAgMC0uMUMxMTMuMSA1MDcuNyA0LjUgMzk5IC4yIDI2NC4xbC0uMiAwIDAtMTYuMyAuMiAwQzQuNSAxMTMgMTEzLjEgNC4zIDI0OCAuMWwwLS4xIDE2LjMgMCAwIC4xQzM5OS4yIDQuMyA1MDcuOCAxMTMgNTEyIDI0Ny45bC4yIDAgMCAxNi4zeiJdfSxDTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xvYmFsZWFrcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg1ZCIsIk00MTEuMiAzMi4yYzIwLjIgMCAzNi44IDE2LjYgMzYuOCAzNi45bDAgMzczLjhjMCAyMC4yLTE2LjYgMzYuOS0zNi44IDM2LjlsLTk0LjQgMCAyOC03OS40YzMuMS04LjgtMS42LTE4LjctMTAuNC0yMS44LTEuNi0uNS0yLjYtMS00LjItMXMtMy42IDAtNS4yIC41Yy01LjIgMS05LjkgNS4yLTExLjkgMTAuOWwtNi4yIDE2LjYgMC02Ny41YzAtMTAuOS03LjgtMTkuNy0xOC4yLTIxLjhsLTcuMiAwYy0uNSAwLTEgMC0xLjYgLjUtLjUgMC0xIC41LTEuNiAuNS0yLjYgMS01LjIgMi42LTcuMiA0LjFsMC00LjFjMC01LjctMi42LTEwLjQtNS43LTE0bC0xLTFjLTEtMS0yLjYtMi4xLTQuMi0yLjZsMC0yNi41YzAtNS4yLTQuMS05LjMtOS4zLTkuM2wtMzkuOSAwYy02LjcgMC0xMS40LTcuMy04LjMtMTMuNUwyODMuMSA4NC4xYzE0LjUtMzEuMSA0NS42LTUxLjQgODAuNC01MS45bDQ3LjcgMHptLTE2NiAwYzE3LjYgMCAzMC4xIDE2LjEgMjggMzIuMi0yLjYgMy42LTQuNyA3LjgtNi4yIDEwLjlMMTg2LjYgMjQxLjVjLTguOCAxOC43IDQuMiA0MCAyNC40IDQwbDMwLjYgMCAwIDE2LjFjLTcuOCAzLjEtMTMgMTAuOS0xMyAxOS43bDAgMy42Yy0zLjYtMy42LTguOC01LjctMTQuNS01LjctMTEuOSAwLTIxLjggOS45LTIxLjggMjEuOGwwIDE5LjItMy4xIDBjLTkuMyAwLTE3LjEgNy44LTE3LjEgMTcuMWwwIDEwNS45LTk1LjQgMGMtNDIgMC03Mi42LTQwLjUtNjEuMi04MS41IDEtMy4xIDQuMi01LjIgNy4zLTQuN2wyMS4yIDBjMjQuNCAwIDQ0LjYtMjAuMiA0NC42LTQ1LjJsMC00LjJjMC0yNC45LTE5LjctNDUuMi00NC42LTQ1LjItLjUgMC0xLS41LTEtMWw4LjgtMzIuN2MyLjEtNi4yLTIuNi0xMS45LTguOC0xMS45bC0zMy4yIDBjLTYuNyAwLTExLjQtNy4zLTguMy0xMy41TDc2LjcgODQuN2MxNi4xLTMyLjIgNDguMi01Mi40IDg0LTUyLjRsODQuNSAwek0xMzMuNyAxNDQuNGMtMTAuNCAwLTE4LjcgOC4zLTE4LjcgMTguNyAwIDkuOSA4LjMgMTguNyAxOC43IDE4LjcgMTAuNCAwIDE4LjctOC4zIDE4LjctMTguN3MtOC4zLTE4LjctMTguNy0xOC43em0yMDIuOCAwYTE4LjYgMTguNiAwIDEgMCAtLjIgMzcuMiAxOC42IDE4LjYgMCAxIDAgLjItMzcuMnoiXX0sVE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZlbm1vIixpY29uOls2NDAsNTEyLFtdLCJlODVhIiwiTTY3LjggMjAyLjdjMi40IDUgMy45IDExIDMuOSAxOS44IDAgMTYuMi0xMS41IDM5LjgtMjAuNyA1NC45bC05LjktNzkuNy00MSAzLjkgMTguOCAxMTIgNDYuOSAwYzIwLjUtMjYuOSA0NS44LTY1LjMgNDUuOC05NC44IDAtOS4zLTEuOS0xNi42LTYuMy0yMy43bC0zNy40IDcuNXptMTEzLTcuMWMtNDIuOCAwLTYzLjUgMzctNjMuNSA3MS45IDAgMjYuOSAxMi44IDQ4LjUgNDguNCA0OC41IDE0IDAgMjguNS0zIDM3LjgtNy41bDUtMzMuNmMtMTMuMiA2LjctMjMuMyA5LjMtMzMuOSA5LjMtOS43IDAtMTcuMS01LjItMTcuMS0xOC4zIDIyLS4yIDYwLTkuMyA2MC0zOC44IDAtMTguMy0xMy4yLTMxLjUtMzYuNy0zMS41bDAgMHptLTIyLjUgNDguOWMxLjEtMTIuOSAxMS0yMiAxOC42LTIyIDQuMyAwIDggMi42IDggNy43IDAgMTAuOC0xOSAxNC4yLTI2LjYgMTQuMmwwIDB6bTE1MC4yLTQ4LjljLTE1LjMgMC0yNi4xIDUuOC0zNC4zIDExLjJsLS40LTkuMy0zNC44IDAtMTguNCAxMTYuMSA0MC4yIDAgMTIuNy04MS40YzMuNS0xLjcgOC42LTQuMSAxMy44LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA2LjUgMCAyLjItLjcgNi0uOSA4bC0xMS4yIDcxLjEgNDAgMCAxMi4zLTc3LjVjLjctNC4xIDEuMy0xMC4zIDEuMy0xNC42IDAtMTUuNS03LjEtMjUuOS0yNy40LTI1Ljl6bTE4My4yIDBjLTE0LjkgMC0yNS43IDQuNS0zNy4yIDEyLjctNC4xLTcuMy0xMi4zLTEyLjctMjQuOC0xMi43LTE0LjUgMC0yNS4zIDUuOC0zMy4zIDExLjZsLTEuMS05LjctMzQuNCAwLTE4LjQgMTE2LjEgNDAuMiAwIDEyLjgtODEuNGMzLjUtMS43IDguNi00LjEgMTMuOC00LjEgMy45IDAgNy4xIDEuMyA3LjEgNy4xIDAgMS41LS40IDMuOS0uNiA1LjhsLTExLjQgNzIuNiA0MCAwIDEyLjctODEuNGMzLjctMS45IDguNi00LjEgMTMuNi00LjEgMy45IDAgNy4xIDEuMyA3LjEgNy4xIDAgMS41LS40IDMuOS0uNyA1LjhsLTExLjQgNzIuNiA0MCAwIDEyLjMtNzcuNWMuNy00LjEgMS4zLTEwLjMgMS4zLTE0LjYgMC0xNS41LTcuMS0yNS45LTI3LjctMjUuOWwwIDB6bTEwMi4yIDBjLTQ0LjcgMC02NC4yIDM0LjMtNjQuMiA3MC45IDAgMjcuOCAxMS4yIDUwIDQ1LjEgNTAgNDUuOCAwIDY1LTM3LjUgNjUtNzMuNyAwLTI3LjQtMTIuMy00Ny4yLTQ2LTQ3LjJ6bS0xMy40IDkwYy03LjEgMC0xMC4xLTYuNy0xMC4xLTE3LjUgMC0xNC4yIDMuMi00MiAxOS00MiA3LjEgMCA5LjUgNi41IDkuNSAxNS45IDAgMTQuMi0zLjUgNDMuNS0xOC40IDQzLjV6Il19LCRNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1YnVudHUiLGljb246WzU3Niw1MTIsW10sImY3ZGYiLCJNNDY5LjIgNzVjMC0yMC4xLTgtMzkuMy0yMi4yLTUzLjVzLTMzLjQtMjIuMi01My41LTIyLjItMzkuMyA4LTUzLjUgMjIuMi0yMi4yIDMzLjQtMjIuMiA1My41YzAgMjAuMSA4IDM5LjMgMjIuMSA1My41czMzLjQgMjIuMSA1My41IDIyLjEgMzkuMy04IDUzLjUtMjIuMSAyMi4xLTMzLjQgMjIuMS01My41bC4xIDB6bS0zMTUgMTY1LjdhNzUuNiA3NS42IDAgMSAwIC0xNTEuMiAwIDc1LjYgNzUuNiAwIDEgMCAxNTEuMiAwek01NyAzNDZjMTguNiA0Ni45IDUxIDg3IDkzIDExNS4xczkxLjUgNDIuNiAxNDIgNDEuN2MtMTQuNy0xOC42LTIyLjktNDEuNS0yMy4yLTY1LjItNi44LS45LTEzLjMtMi4xLTE5LjUtMy40LTI2LjgtNS43LTUxLjktMTcuMy03My42LTM0cy0zOS4zLTM4LjEtNTEuNy02Mi41Yy0yMC45IDkuOS00NC41IDEyLjgtNjcuMSA4LjJsLjEgLjF6bTM5NS4xIDg5LjhhNzUuNiA3NS42IDAgMSAwIC0xNTEuMiAwIDc1LjYgNzUuNiAwIDEgMCAxNTEuMiAwek00NDQgMzUxLjZjMTguNSAxNC44IDMxLjYgMzUuMiAzNy4yIDU4LjIgMzMuMy00MS4zIDUyLjYtOTIuMiA1NC44LTE0NS4ycy0xMi41LTEwNS40LTQyLjItMTQ5LjRjLTguNiAyMS41LTI0IDM5LjYtNDMuOCA1MS42IDE1LjQgMjguNiAyMi45IDYwLjggMjEuOSA5My4ycy0xMC43IDY0LTI4IDkxLjZsLjEgMHpNMTAxLjEgMTM1LjRjMTIuNCAyLjcgMjQuMyA3LjUgMzUuMSAxNC4zIDE2LjYtMjQuMiAzOC45LTQ0LjEgNjQuOC01OFMyNTUuOCA3MC40IDI4NS4yIDcwYy4yLTUuOSAuOS0xMS45IDItMTcuNyAzLjYtMTYuNyAxMS4xLTMyLjMgMjEuOC00NS41LTQ3LjctMy44LTk1LjQgNi0xMzcuNiAyOC41Uzk0LjMgOTEuNyA3MC44IDEzMy40YzIuNy0uMiA1LjMtLjMgOC0uMyA3LjUgMCAxNSAuOCAyMi40IDIuM2wtLjEgMHoiXX0sRE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYWNvaW4iLGljb246WzM4NCw1MTIsW10sImYyMzciLCJNMzg0IDMybC02NCAwLTgwLjcgMTkyLTk0LjUgMC04MC44LTE5Mi02NCAwIDQ4IDExMi00OCAwIDAgNDggNjguNSAwIDEzLjggMzItODIuMyAwIDAgNDggMTAyLjggMCA4OS4yIDIwOCA4OS4yLTIwOCAxMDIuOCAwIDAtNDgtODIuMyAwIDEzLjgtMzIgNjguNSAwIDAtNDgtNDggMCA0OC0xMTJ6TTE5MiAzMzZsLTI3LTY0IDU0IDAtMjcgNjR6Il19LExNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6aGlodSIsaWNvbjpbNjQwLDUxMixbXSwiZjYzZiIsIk0xNzAuNSAxNDguMWwwIDIxNy41IDIzLjQgMCA3LjcgMjYuNCA0Mi0yNi40IDQ5LjUgMCAwLTIxNy41LTEyMi43IDB6bTk3LjggMTkzLjlsLTI3LjkgMC0yNy45IDE3LjUtNS4xLTE3LjUtMTEuOSAwIDAtMTcwLjMgNzIuOCAwIDAgMTcwLjN6TTE0OS44IDI0Ny43bC01Mi4zIDBjMS43LTI3LjEgMi4yLTUxLjYgMi4yLTczLjVsNTEuMiAwczItMjIuNi04LjYtMjIuM2wtODguNSAwYzMuNS0xMy4xIDcuOS0yNi43IDEzLjEtNDAuNyAwIDAtMjQuMSAwLTMyLjMgMjEuNi0zLjQgOC45LTEzLjIgNDMuMS0zMC43IDc4LjEgNS45LS42IDI1LjQtMS4yIDM2LjgtMjIuMiAyLjEtNS45IDIuNS02LjcgNS4xLTE0LjVsMjguOSAwYzAgMTAuNS0xLjIgNjYuOS0xLjcgNzMuNGwtNTIuMyAwYy0xMS43IDAtMTUuNiAyMy42LTE1LjYgMjMuNmw2NS42IDBjLTQuNCA0OS45LTI4IDkxLjktNzAuOCAxMjUuMSAyMC41IDUuOSA0MC45LS45IDUxLTkuOSAwIDAgMjMtMjAuOSAzNS42LTY5LjNsNTQgNjQuOXM3LjktMjYuOS0xLjItNDBjLTcuNi04LjktMjguMS0zMy4xLTM2LjgtNDEuOEw4Ny45IDMxMmM0LjQtMTQgNy0yNy42IDcuOS00MC43bDYxLjYgMHMtLjEtMjMuNi03LjYtMjMuNmwwIDB6bTQxMi0xLjZjMjAuOC0yNS42IDQ1LTU4LjYgNDUtNTguNnMtMTguNi0xNC44LTI3LjQtNC4xYy02IDguMi0zNi44IDQ4LjItMzYuOCA0OC4ybDE5LjIgMTQuNHpNNDExLjggMTg3Yy05LTguMi0yNS45IDIuMS0yNS45IDIuMXMzOS41IDU1IDQxLjEgNTcuNGwxOS41LTEzLjdzLTI1LjctMzcuNi0zNC43LTQ1LjlsMCAwIDAgMHpNNjQwIDI1OC40Yy0xOS44IDAtMTMwLjkgLjktMTMxLjEgLjlsMC0xMDFjNC44IDAgMTIuNC0uNCAyMi44LTEuMiA0MC45LTIuNCA3MC4xLTQgODcuOC00LjggMCAwIDEyLjItMjcuMi0uNi0zMy40LTMuMS0xLjItMjMuMiA0LjYtMjMuMiA0LjZzLTE2NS4yIDE2LjUtMjMyLjQgMThjMS42IDguOCA3LjYgMTcuMSAxNS44IDE5LjYgMTMuMyAzLjUgMjIuNyAxLjcgNDkuMiAuOSAyNC44LTEuNiA0My43LTIuNCA1Ni41LTIuNGwwIDk5LjgtMTMzLjUgMHMyLjggMjIuMyAyNS41IDIyLjlsMTA3LjkgMCAwIDcwLjljMCAxNC0xMS4yIDIyLTI0LjUgMjEuMS0xNC4xIC4xLTI2LjEtMS4xLTQxLjctMS44IDIgNCA2LjMgMTQuNCAxOS4zIDIxLjggOS45IDQuOCAxNi4yIDYuNiAyNiA2LjYgMjkuNiAwIDQ1LjctMTcuMyA0NC45LTQ1LjNsMC03My4zIDEyMi40IDBjOS43IDAgOC43LTIzLjggOC43LTIzLjhsMCAweiJdfSxFTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFuZGV4IixpY29uOlsyNTYsNTEyLFtdLCJmNDEzIiwiTTE1My4xIDMxNS44TDY1LjcgNTEyIDIgNTEyIDk4IDMwMi4yQzUyLjkgMjc5LjMgMjIuOCAyMzcuOCAyMi44IDE2MS4xIDIyLjcgNTMuNyA5MC44IDAgMTcxLjcgMGw4Mi4zIDAgMCA1MTItNTUuMSAwIDAtMTk2LjItNDUuOCAwek0xOTguOSA0Ni41bC0yOS40IDBjLTQ0LjQgMC04Ny40IDI5LjQtODcuNCAxMTQuNiAwIDgyLjMgMzkuNCAxMDguOCA4Ny40IDEwOC44bDI5LjQgMCAwLTIyMy40eiJdfSxQTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGl4aXYiLGljb246WzQ0OCw1MTIsW10sImU2NDAiLCJNOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05Nkw5NiAzMnptNzcuNyAyMTcuM2E2MC4xIDYwLjEgMCAxIDAgMTIwLjMgMCA2MC4xIDYwLjEgMCAxIDAgLTEyMC4zIDB6TTExOS4xIDM4Ny44Yy0uMy0uOC0uNS0xLjctLjUtMi42bDAtMjQ0LjNjMC0xLjggLjctMy42IDItNC45czMtMiA0LjktMmwxNi45IDBjMS4yIDAgMi4zIC4zIDMuMyAuOHMxLjkgMS4zIDIuNSAyLjNsMTQgMjEuOGMxOS43LTE1LjYgNDQuNS0yNSA3MS42LTI1IDYzLjYgMCAxMTUuMiA1MS42IDExNS4yIDExNS4yUzI5Ny41IDM2NC41IDIzMy44IDM2NC41Yy0yMiAwLTQyLjYtNi4yLTYwLjEtMTYuOWwwIDM3LjZjMCAuOS0uMiAxLjgtLjUgMi42cy0uOSAxLjYtMS41IDIuMi0xLjQgMS4xLTIuMiAxLjUtMS43IC41LTIuNiAuNWwtNDEuMyAwYy0uOSAwLTEuOC0uMi0yLjYtLjVzLTEuNi0uOS0yLjItMS41LTEuMS0xLjQtMS41LTIuMnoiXX0sSU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5haSIsaWNvbjpbNTEyLDUxMixbXSwiZTdjZiIsIk0xOTYuNCAxODUuOGwwLTQ4LjZjMC00LjEgMS41LTcuMiA1LjEtOS4ybDk3LjgtNTYuM2MxMy4zLTcuNyAyOS4yLTExLjMgNDUuNi0xMS4zIDYxLjQgMCAxMDAuNCA0Ny42IDEwMC40IDk4LjMgMCAzLjYgMCA3LjctLjUgMTEuOEwzNDMuMyAxMTEuMWMtNi4xLTMuNi0xMi4zLTMuNi0xOC40IDBMMTk2LjQgMTg1Ljh6TTQyNC43IDM3NS4ybDAtMTE2LjJjMC03LjItMy4xLTEyLjMtOS4yLTE1LjlMMjg3IDE2OC40IDMyOSAxNDQuM2MzLjYtMiA2LjctMiAxMC4yIDBMNDM3IDIwMC43YzI4LjIgMTYuNCA0Ny4xIDUxLjIgNDcuMSA4NSAwIDM4LjktMjMgNzQuOC01OS40IDg5LjZsMCAwek0xNjYuMiAyNzIuOGwtNDItMjQuNmMtMy42LTItNS4xLTUuMS01LjEtOS4ybDAtMTEyLjZjMC01NC44IDQyLTk2LjMgOTguOC05Ni4zIDIxLjUgMCA0MS41IDcuMiA1OC40IDIwTDE3NS40IDEwOC41Yy02LjEgMy42LTkuMiA4LjctOS4yIDE1LjlsMCAxNDguNSAwIDB6bTkwLjQgNTIuMmwtNjAuMi0zMy44IDAtNzEuNyA2MC4yLTMzLjggNjAuMiAzMy44IDAgNzEuNy02MC4yIDMzLjh6bTM4LjcgMTU1LjdjLTIxLjUgMC00MS41LTcuMi01OC40LTIwbDEwMC45LTU4LjRjNi4xLTMuNiA5LjItOC43IDkuMi0xNS45bDAtMTQ4LjUgNDIuNSAyNC42YzMuNiAyIDUuMSA1LjEgNS4xIDkuMmwwIDExMi42YzAgNTQuOC00Mi41IDk2LjMtOTkuMyA5Ni4zbDAgMHpNMTczLjggMzY2LjVMNzYuMSAzMTAuMmMtMjguMi0xNi40LTQ3LjEtNTEuMi00Ny4xLTg1IDAtMzkuNCAyMy42LTc0LjggNTkuOS04OS42bDAgMTE2LjdjMCA3LjIgMy4xIDEyLjMgOS4yIDE1LjlsMTI4IDc0LjItNDIgMjQuMWMtMy42IDItNi43IDItMTAuMiAwem0tNS42IDg0Yy01Ny45IDAtMTAwLjQtNDMuNS0xMDAuNC05Ny4zIDAtNC4xIC41LTguMiAxLTEyLjNsMTAwLjkgNTguNGM2LjEgMy42IDEyLjMgMy42IDE4LjQgMGwxMjguNS03NC4yIDAgNDguNmMwIDQuMS0xLjUgNy4yLTUuMSA5LjJsLTk3LjggNTYuM2MtMTMuMyA3LjctMjkuMiAxMS4zLTQ1LjYgMTEuM2wwIDB6bTEyNyA2MC45YzYyIDAgMTEzLjctNDQgMTI1LjQtMTAyLjQgNTcuMy0xNC45IDk0LjItNjguNiA5NC4yLTEyMy40IDAtMzUuOC0xNS40LTcwLjctNDMtOTUuNyAyLjYtMTAuOCA0LjEtMjEuNSA0LjEtMzIuMyAwLTczLjItNTkuNC0xMjgtMTI4LTEyOC0xMy44IDAtMjcuMSAyLTQwLjQgNi43LTIzLTIyLjUtNTQuOC0zNi45LTg5LjYtMzYuOS02MiAwLTExMy43IDQ0LTEyNS40IDEwMi40LTU3LjMgMTQuOC05NC4yIDY4LjYtOTQuMiAxMjMuNCAwIDM1LjggMTUuNCA3MC43IDQzIDk1LjctMi42IDEwLjgtNC4xIDIxLjUtNC4xIDMyLjMgMCA3My4yIDU5LjQgMTI4IDEyOCAxMjggMTMuOCAwIDI3LjEtMiA0MC40LTYuNyAyMyAyMi41IDU0LjggMzYuOSA4OS42IDM2Ljl6Il19LEFNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXRoIixpY29uOls0NDgsNTEyLFtdLCJmNTEyIiwiTTAgMzJsNjkuNyAxMTguOC01OC45LTExLjUgNjkuOCA5MWMtMyAxNy0zIDM0LjQgMCA1MS40bC02OS44IDkxIDU4LjktMTEuNS02OS43IDExOC44IDExOC44LTY5LjctMTEuNSA1OC45IDkxLTY5LjhjMTcgMyAzNC41IDMgNTEuNSAwbDkxIDY5LjgtMTEuNS01OC45IDExOC43IDY5LjctNjkuNy0xMTguOCA1OC45IDExLjUtNjkuOC05MWMzLTE3IDMtMzQuNCAwLTUxLjRsNjkuOC05MS01OC45IDExLjUgNjkuNy0xMTguOC0xMTguNyA2OS43IDExLjUtNTguOS05MS4xIDY5LjljLTguNS0xLjUtMTcuMS0yLjMtMjUuNy0yLjNzLTE3LjIgLjgtMjUuNyAyLjNMMTA3LjIgNDIuOCAxMTguOCAxMDEuNyAwIDMyek0yMjQgMzgwLjJhMTI0LjIgMTI0LjIgMCAxIDEgMC0yNDguNCAxMjQuMiAxMjQuMiAwIDEgMSAwIDI0OC40em0wLTIxMS44YTg3LjYgODcuNiAwIDEgMCAwIDE3NS4xIDg3LjYgODcuNiAwIDEgMCAwLTE3NS4xeiJdfSxOTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianVsaWEiLGljb246WzY0MCw1MTIsW10sImU4NTIiLCJNMTI0IDQwNi41YzAgMTYuMS0xLjggMjkuMS01LjQgMzlzLTguOCAxNy42LTE1LjUgMjMuMS0xNC43IDkuMS0yNC4xIDExLTE5LjggMi44LTMxLjIgMi44Yy0xNS41IDAtMjcuMy0yLjQtMzUuNS03LjNTMCA0NjQuNSAwIDQ1Ny43YzAtNS42IDIuMy0xMC40IDYuOS0xNC4zczEwLjgtNS44IDE4LjUtNS44YzUuOCAwIDEwLjQgMS42IDEzLjkgNC43czYuMyA2LjIgOC42IDkuM2MyLjYgMy40IDQuOCA1LjYgNi41IDYuOHMzLjQgMS43IDQuOCAxLjdjMy4xIDAgNS40LTEuOCA3LTUuNHMyLjQtMTAuNyAyLjQtMjEuMmwwLTE5OC43IDU1LjQtMTUuMiAwIDE4Ni45em03OC45LTE4MS42bDAgMTI3LjljMCAzLjYgLjcgNi45IDIuMSAxMHMzLjMgNS44IDUuNyA4LjEgNS4yIDQuMSA4LjUgNS40IDYuNyAyLjEgMTAuNCAyLjFjNC4yIDAgOC45LTIuMyAxNC43LTYuNCA5LjItNi40IDE0LjctMTAuOSAxNC43LTE2LjFsMC0xMzEgNTUuMSAwIDAgMTgxLjYtNTUuMSAwIDAtMTYuOWMtNy4zIDYuMS0xNSAxMS0yMy4yIDE0LjdzLTE2LjIgNS42LTIzLjkgNS42Yy05IDAtMTcuNC0xLjUtMjUuMS00LjVzLTE0LjUtNy0yMC4zLTEyLjItMTAuNC0xMS4yLTEzLjctMTguMWMtMy4zLTYuOS01LTE0LjMtNS0yMi4ybDAtMTI3LjkgNTUuMSAwek0zOTEuNCA0MDYuNWwtNTQuOSAwIDAtMjU0LjYgNTQuOS0xNS4yIDAgMjY5Ljh6bTIyLjktMTcxLjdsNTUuMS0xNS4yIDAgMTg2LjktNTUuMSAwIDAtMTcxLjd6bTE3MC4zIDc3LjljLTUuMyAyLjMtMTAuNyA0LjktMTYuMSA3LjlzLTEwLjMgNi4yLTE0LjcgOS44LTggNy4zLTEwLjggMTEuNC00LjEgOC4yLTQuMSAxMi42YzAgMy40IC40IDYuNiAxLjMgOS44czIuMSA1LjggMy44IDguMSAzLjQgNC4xIDUuMyA1LjQgNCAyLjEgNi4zIDIuMWM0LjUgMCA5LjEtMS40IDEzLjctNC4xczkuNy02LjIgMTUuNC0xMC40bDAtNTIuNXpNNjQwIDQwNi41bC01NS40IDAgMC0xNC41Yy0zLjEgMi42LTYgNS04LjkgNy4xcy02LjIgNC4xLTkuOCA1LjctNy43IDIuOS0xMi4yIDMuOGMtNC41IC45LTkuOCAxLjMtMTUuOSAxLjMtOC40IDAtMTUuOS0xLjItMjIuNi0zLjYtNi43LTIuNC0xMi40LTUuNy0xNy05LjlzLTguMy05LjEtMTAuOC0xNC45Yy0yLjUtNS43LTMuOC0xMi0zLjgtMTguNyAwLTYuOSAxLjMtMTMuMiA0LTE4LjkgMi43LTUuNiA2LjMtMTAuNyAxMC45LTE1LjIgNC42LTQuNSA5LjktOC41IDE2LjEtMTIuMXMxMi43LTYuOCAxOS43LTkuOCAxNC4zLTUuNyAyMS45LTguMiAxNS4xLTQuOSAyMi41LTcuMWw2LTEuNSAwLTE3LjljMC0xMS42LTIuMi0xOS44LTYuNi0yNC43cy0xMC40LTcuMy0xNy44LTcuM2MtOC43IDAtMTQuOCAyLjEtMTguMSA2LjNzLTUuMSA5LjMtNS4xIDE1LjJjMCAzLjQtLjQgNi43LTEuMSA5LjktLjcgMy4yLTIgNi0zLjcgOC41cy00LjMgNC40LTcuNiA1LjhjLTMuMyAxLjUtNy41IDIuMi0xMi41IDIuMi03LjcgMC0xNC0yLjItMTguOS02LjYtNC44LTQuNC03LjMtMTAtNy4zLTE2LjggMC02LjMgMi4xLTEyLjEgNi40LTE3LjUgNC4zLTUuNCAxMC0xMCAxNy4zLTEzLjkgNy4zLTMuOSAxNS42LTYuOSAyNS4xLTkuMnMxOS42LTMuNCAzMC4yLTMuNGMxMy4xIDAgMjQuMyAxLjIgMzMuNyAzLjVzMTcuMiA1LjcgMjMuMyAxMCAxMC42IDkuNiAxMy41IDE1LjcgNC40IDEzIDQuNCAyMC42bDAgMTM2LjF6TTYwIDE3Mi45YTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6TTQ1Mi4yIDk1YTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6bTQ1IDc3LjlhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHptLTg5LjkgMGEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAweiJdfSxSTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmZjLWRpcmVjdGlvbmFsIixpY29uOls1MTIsNTEyLFtdLCJlNTMwIiwiTTIxMS44IDQ4OC42YzEuNiAyLjUgMi4xIDUuNiAxLjQgOC41LS42IDIuOS0yLjQgNS41LTQuOSA3LjEtMi42IDEuNi01LjYgMi4xLTguNiAxLjUtNjEuNC0xMy45LTExNS42LTQ5LjktMTUyLjItMTAxLjJTLTUuNCAyOTAuMyAxLjYgMjI3LjdjNy02Mi43IDM2LjgtMTIwLjUgODMuNy0xNjIuNSA0Ni45LTQyIDEwNy43LTY1LjIgMTcwLjctNjUuMiAxLjUgMCAyLjEgLjMgNC4zIC45IDEuNCAuNiAxLjggMS40IDMuNyAyLjUgMS4xIDEuMSAxLjkgMi4zIDIuNSAzLjcgLjUgMS40IC44IDIuOCAuOCA0LjNsMCAxMDEgMjQuNS0yNS45YzEtMS4xIDIuMi0yIDMuNi0yLjYgMS4zLS42IDIuOC0uOSA0LjMtMSAxLjUtLjEgMi45IC4yIDQuMyAuN3MyLjcgMS4zIDMuOCAyLjRjMSAxIDEuOSAyLjIgMi41IDMuNiAuNiAxLjMgMSAyLjggMSA0LjNzLS4yIDMtLjcgNC4zYy0uNiAxLjQtMS40IDIuNi0yLjQgMy43bC00NCA0Ni42Yy0xLjEgMS4xLTIuMyAyLTMuNyAyLjYtMS41IC42LTMgLjktNS40IC45LS42IDAtMi4yLS4zLTMuNi0uOXMtMi43LTEuNS0zLjctMi42bC00NC4xLTQ2LjZjLTItMi4yLTMuMS01LjEtMy04LjEgMC0zIDEuMy02LjcgMy41LTcuOSAyLjItMi4xIDUuMS0zLjIgOC4xLTMuMSAzIC4xIDUuOCAxLjMgNy45IDMuNWwyNC41IDI2IDAtODkuNWMtNTYuNCAyLjgtMTA5LjggMjUuOC0xNTAuNSA2NS00MC42IDM5LjEtNjUuNyA5MS43LTcwLjYgMTQ3LjlTMzQuNCAzNDguMSA2Ny43IDM5My43YzMyLjQgNDUuNSA4MiA3Ny41IDEzNyA4OS45IDIuOSAuNyA1LjUgMi41IDcuMSA1ek0xNzEuNCAxMjYuMWMtLjggMS4zLTEuOSAyLjQtMy4xIDMuMi0yMC41IDEzLjktMzcuMiAzMi42LTQ4LjggNTQuNXMtMTcuNyA0Ni4zLTE3LjcgNzEuMSA2LjEgNDkuMiAxNy43IDcwLjJjMTEuNiAyMi44IDI4LjMgNDEuNSA0OC44IDU1LjQgMi41IDEuNyA0LjIgNC4zIDQuNyA3LjMgLjYgMi45LS45IDYtMS43IDguNC0xLjcgMi41LTUuMiA0LjItNy4zIDMuOS0yLjkgMS40LTYgLjgtOC40LS45LTIzLjYtMTYtNDIuOC0zNy41LTU2LjEtNjIuNy0xMy4zLTI1LjEtMjAuMy01My4xLTIwLjMtODEuNiAwLTI4LjQgNy01Ni41IDIwLjMtODEuNiAxMy4zLTI1LjIgMzIuNS00Ni43IDU2LjEtNjIuNyAxLjItLjggMi42LTEuNCA0LTEuOCAxLjUtLjMgMy0uMyA0LjUgMCAxLjQgLjIgMi44IC44IDQuMSAxLjZzMi4zIDEuOSAzLjIgMy4xYy44IDEuMiAxLjQgMi42IDEuNyA0LjFzLjMgMyAwIDQuNGMtLjMgMS41LS44IDIuOS0xLjcgNC4xek0zNDAuOSAzODMuNWMuOC0xLjIgMS45LTIuMyAyLjItMy4xbDAtLjFjMjEuMy0xNCAzOC0zMi43IDQ5LjYtNTQuNiAxMS41LTIxLjggMTcuNS00Ni4yIDE3LjUtNzAuOXMtNi00OS4xLTE3LjUtNzFjLTExLjYtMjIuNy0yOC4zLTQwLjUtNDkuNi01NC41LS4zLS44LTEuNC0xLjktMi4yLTMuMS0uOC0xLjMtMS40LTIuNy0xLjYtNC4xLTEuMi0xLjUtLjMtMyAwLTQuNCAuMy0xLjUgLjktMi45IDEuNy00LjEgLjktMS4yIDEuMS0yLjMgMy4yLTMuMSAxLjItLjggMi42LTEuMyA0LjEtMS42czIuOS0uMyA0LjQgMCAyLjggLjkgNC4xIDEuOGMyMy40IDE2IDQyLjcgMzcuNSA1NS45IDYyLjYgMTMuMyAyNS4xIDE5LjQgNTMuMSAxOS40IDgxLjUgMCAyOC41LTYuMSA1Ni41LTE5LjQgODEuNi0xMy4yIDI1LjEtMzIuNSA0Ni42LTU1LjkgNjIuNi0xLjMgLjktMi42IDEuNS00LjEgMS44cy0yLjkgLjMtNC40IDAtMi45LTEuNy00LjEtMS42Yy0yLjEtLjgtMi4zLTEuOS0zLjItMy4xLS44LTEuMi0xLjQtMi42LTEuNy00LjEtLjMtMS40LTEuMi0yLjkgMC00LjQgLjItMS40IC44LTIuOCAxLjYtNC4xek0zMTIuMyA2LjNjNTYuMiAxMi43IDEwNi40IDQ0IDE0Mi43IDg4LjcgMzAuNCAzNy42IDQ5LjYgODMgNTUuMyAxMzEgNS42IDQ4LTIuNCA5Ni43LTIzLjIgMTQwLjMtMjAuOSA0My42LTUzLjYgODAuNS05NC41IDEwNi4zLTQwLjkgMjUuNy04OC4yIDM5LjQtMTM2LjYgMzkuNC0xLjUgMC0yLjktLjMtNC4zLS45LTEuNC0uNS0yLjYtMS40LTMuNy0yLjQtMS45LTEuMS0xLjktMi4zLTIuNC0zLjctLjYtMS40LS45LTIuOC0uOS00LjNsMC05OS4yLTI0LjUgMjZjLTIuMSAyLjItNC45IDIuNi03LjkgMy42LTMgLjEtNS45LTEuMS04LjEtNC0yLjItMS4yLTMuNS00LTMuNS03LS4xLTMgMS01LjkgMy04LjFsNDQuMS00Ni42YzEuMy0yLjIgNS4xLTMuNCA3LjMtMy40IDQgMCA2LjkgMS4yIDkuMSAzLjRsNDQgNDYuNmMyLjEgMi4yIDMuMiA1LjEgMy4xIDguMXMtMS40IDUuOC0zLjUgN2MtMi4yIDIuOS01LjEgNC4xLTguMSA0LTMtMS01LjktMS40LTcuOS0zLjZsLTI0LjUtMjUuOSAwIDg3LjVjNTYuNC0yLjggMTA5LjgtMjUuOCAxNTAuNS02NSA0MC43LTQwIDY1LjgtOTEuNyA3MC43LTE0Ny45IDQuOC01Ny4xLTEwLjgtMTEyLjMtNDQuMS0xNTcuOS0zMy4zLTQ1LjYtODItNzcuNS0xMzctODkuOS0xLjUtLjMtMi44LS45LTQuMS0xLjgtMS4yLS45LTIuMi0xLjktMy0zLjItLjgtMS4yLTIuMi0yLjYtMS42LTQuMS0uMi0xLjUtLjItMyAuMS00LjQgLjQtMS40IDEtMi44IDEuOC00IC45LTEuMiAyLTIuMiAzLjItMyAxLjMtLjggMi43LTEuMyA0LjEtMS42IDEuNS0uMyAzLS4yIDQuNCAuMXptNDAuOCAyNDkuOGMwIDMxLjQtMTcuNSA2MS4xLTQ5LjMgODMuNS0yLjEgMS41LTQuOCAyLjMtNy40IDItMi43LS4yLTUuMi0xLjMtNy0zLjJsLTcwLjEtNjkuOGMtMi4yLTIuMS00LjItNS0zLjQtOCAwLTMgMS4yLTUuOSAzLjMtOCAyLjItMi4xIDUtMy4zIDgtMy4zczUuOSAxLjIgOCAzLjNsNjMuMSA2Mi44YzIwLjgtMTcuMSAzMi4yLTM3LjkgMzIuMi01OS4zIDAtMjMuOS0xNC4xLTQ3LTM5LjctNjUuMS0yLjUtMS43LTQuMS00LjMtNC42LTcuMy0uNS0yLjkgLjEtNiAxLjktOC40IDEuNy0yLjUgNC4zLTQuMSA3LjMtNC42IDIuOS0uNSA2IC4xIDguNCAxLjkgMzEuOCAyMi40IDQ5LjMgNTIuMSA0OS4zIDgzLjV6TTIxNi43IDM0MS41Yy0zIC41LTYtLjItOC41LTEuOS0zMS43LTIyLjQtNTAuMS01Mi4xLTUwLjEtODMuNXMxOC40LTYxLjEgNTAuMS04My41YzIuMi0xLjYgNC45LTIuMyA3LjUtMi4xIDIuNyAuMyA1LjEgMS40IDcgMy4zbDcwLjEgNjkuOGMyLjEgMi4xIDMuMyA1IDMuMyA4cy0yIDUuOC0zLjMgOGMtMi4xIDIuMS01IDMuMy03LjkgMy4zLTMgMC02LjgtMS4yLTgtMy4zbC02My4xLTYyLjljLTIwLjkgMTcuMy0zMi4yIDM4LTMyLjIgNTkuNCAwIDIzIDE0LjEgNDcgMzkuNyA2NSAyLjQgMS44IDQuMSA0LjQgNC42IDcuNCAuNSAyLjktLjIgNS45LTEuOSA4LjQtMS43IDIuNC00LjQgNC4xLTcuMyA0LjZ6Il19LE9NdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLWJ5IixpY29uOls1MTIsNTEyLFtdLCJmNGU3IiwiTTMyMi45IDE5NC40bDAgMTAxLjQtMjguMyAwIDAgMTIwLjUtNzcuMSAwIDAtMTIwLjQtMjguMyAwIDAtMTAxLjVjMC00LjQgMS42LTguMiA0LjYtMTEuMyAzLjEtMy4xIDYuOS00LjcgMTEuMy00LjdsMTAxLjkgMGM0LjEgMCA3LjggMS42IDExLjEgNC43IDMuMSAzLjIgNC44IDYuOSA0LjggMTEuM3ptLTMyLjUtNjQuNWEzNC41IDM0LjUgMCAxIDEgLTY5IC44IDM0LjUgMzQuNSAwIDEgMSA2OS0uOHpNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zeiJdfSxGTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW1icmFjbyIsaWNvbjpbNTEyLDUxMixbXSwiZjhlOCIsIk0yNTYuMyA4YTI0OCAyNDggMCAxIDAgLS43IDQ5NiAyNDggMjQ4IDAgMSAwIC43LTQ5NnptMTQ1IDI2NmMtLjggMjcuMS01LjQgNDguOC0xNCA2NXMtMjMuMSAyNy45LTQzLjUgMzVjLTIwLjQgNy4xLTQ4LjkgMTAuNi04NS40IDEwLjVsLTQuNiAwYy0zNi41IC4xLTY1LTMuMy04NS40LTEwLjVzLTM0LjktMTguOC00My41LTM1Yy04LjYtMTYuMi0xMy4yLTM3LjktMTQtNjUtLjctMTAuMi0uNy0yMC41IDAtMzAuNyAuNC0xNC43IDEuNi0yOS4zIDMuNi00My45IDEuOS0xMy40IDMuNi0yMi42IDUuNC0zMiAxLTQuOSAxLjMtNi40IDEuOC04LjQgLjMtMS4xIC45LTIuMSAxLjgtMi44czItMS4xIDMuMS0xLjFsLjcgMCAzMiA1YzEuMiAuMiAyLjIgLjggMyAxLjdzMS4yIDIuMSAxLjIgMy4zYzAgLjMgMCAuNSAwIC44bC0xLjcgOC44Yy0xLjYgOC44LTMuMiAyMC4xLTQuOCAzMy43LTEuNyAxNC0yLjUgMjguMS0yLjYgNDIuMi0uMiAyNyAyLjUgNDYuOSA4LjEgNTkuOCAyLjggNi40IDcuMiAxMiAxMi42IDE2LjRzMTEuOSA3LjQgMTguNyA4LjhjMTguOCA0IDM4LjEgNS43IDU3LjMgNS4xbDEwLjMgMGMxOS4yIC42IDM4LjUtMS4yIDU3LjMtNS4yIDYuOC0xLjQgMTMuMi00LjUgMTguNi04LjhzOS43LTEwIDEyLjUtMTYuNGM1LjctMTIuOSA4LjQtMzIuOSA4LjEtNTkuOC0uMS0xNC4xLTEtMjguMi0yLjYtNDIuMS0xLjctMTMuNi0zLjMtMjQuOC00LjktMzMuN2wtMS43LTguOGMwLS4zIDAtLjUgMC0uOCAwLTEuMiAuNC0yLjQgMS4yLTMuM3MxLjgtMS41IDMtMS43bDMyLTUgLjggMGMxLjEgMCAyLjIgLjQgMy4xIDEuMXMxLjUgMS43IDEuOCAyLjhjLjYgMiAuOCAzLjYgMS44IDguNCAxLjggOS42IDMuNSAxOC44IDUuNCAzMiAyIDE0LjYgMy4yIDI5LjIgMy42IDQzLjkgLjcgMTAuMiAuNyAyMC41IDAgMzAuN2wwIDB6Il19LEJNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob29saSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyNyIsIk0xNDQuNSAzNTJsMzguMyAuOGMtMTMuMi00LjYtMjYtMTAuMi0zOC4zLTE2LjhsMCAxNnptNTcuNy01LjNsMCA1LjMtMTkuNCAuOGMzNi41IDEyLjUgNjkuOSAxNC4yIDk0LjcgNy4yLTE5LjkgLjItNDUuOC0yLjYtNzUuMy0xMy4zek02MTEuMSAyMzEuNWMxNS45IDAgMjguOS0xMi45IDI4LjktMjguOXMtMTIuOS0yNC41LTI4LjktMjQuNWMtMTUuOSAwLTI4LjkgOC42LTI4LjkgMjQuNXMxMi45IDI4LjkgMjguOSAyOC45ek01ODIuMSAzNTJsNTcuOSAwIDAtMTEwLjUtNTcuOSAwIDAgMTEwLjV6bS03My43IDBsNTcuOSAwIDAtMTk1LjMtNTcuOSAyNy4zIDAgMTY4em0tMzEtMTE5LjRjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4zLTEuMS01MC40IDE3LjFjLTE4LjIgMTguMi0xNi44IDMzLjktMTYuOCA1Mi42cy0xLjQgMzQuMyAxNi44IDUyLjUgNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjgtMzMuOCAxNi44LTUyLjUtLjEtMTguOCAxLjMtMzQuNS0xNi44LTUyLjZ6bS0zOS44IDcxLjljMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjVsMC00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjlsMCA0MC40ek0zMzEuNCAyMzIuNmMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjItMS4xLTUwLjQgMTcuMWMtMS45IDEuOS0zLjcgMy45LTUuMyA2LTM4LjItMjkuNi03Mi41LTQ2LjUtMTAyLjEtNjEuMWwwLTIwLjctMjIuNSAxMC42Yy01NC40LTIyLjEtODktMTguMi05Ny4zIC4xIDAgMC0yNC45IDMyLjggNjEuOCAxMTAuOGwwIDczLjcgNTcuOSAwIDAtMjguNmMtNi41LTQuMi0xMy04LjctMTkuNC0xMy42LTE0LjgtMTEuMi0yNy40LTIxLjYtMzguNC0zMS40bDAtMzFjMTMuMSAxNC43IDMwLjUgMzEuNCA1My40IDUwLjNsNC41IDMuNiAwLTI5LjhjMC02LjkgMS43LTE4LjIgMTAuOC0xOC4yczEwLjYgNi45IDEwLjYgMTVsMCA0OC43YzE4IDEyLjIgMzcuMyAyMi4xIDU3LjcgMjkuNmwwLTkzLjljMC0xOC43LTEzLjQtMzcuNC00MC42LTM3LjQtMTUuOC0uMS0zMC41IDguMi0zOC41IDIxLjlsMC01NC4zYzQxLjkgMjAuOSA4My45IDQ2LjUgOTkuOSA1OC4zLTEwLjIgMTQuNi05LjMgMjguMS05LjMgNDMuNyAwIDE4LjctMS40IDM0LjMgMTYuOCA1Mi41czUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi43LTMzLjggMTYuNy01Mi41IDAtMTguNSAxLjUtMzQuMi0xNi43LTUyLjN6TTY1LjIgMTg0bDAgNjMuM2MtNDguNy01NC41LTM4LjktNzYtMzUuMi03OS4xIDEzLjUtMTEuNCAzNy41LTggNjQuNCAyLjFMNjUuMiAxODR6TTI5MS43IDMwNC41YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41bDAtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45bDAgNDAuNHoiXX0sQzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1naXQiLGljb246WzQ0OCw1MTIsWyJnaXQtc3F1YXJlIl0sImYxZDIiLCJNMTIwLjggMzM1LjVjLTUuOS0uNC0xMi42LS44LTIwLjItMS4zLTMuMyA0LjEtNi42IDguNC02LjYgMTMuNSAwIDE4LjUgNjUuNSAxOC41IDY1LjUtMS41IDAtOC4zLTcuNC04LjctMzguOC0xMC43bC4xIDB6bTcuOC0xMTcuOWMtMzIuMyAwLTMzLjcgNDQuNS0uNyA0NC41IDMyLjUgMCAzMS43LTQ0LjUgLjctNDQuNXpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTI0My45IDE3Mi4yYy0xNC41IDAtMjIuOS04LjQtMjIuOS0yMi45czguNC0yMi4zIDIyLjktMjIuM2MxNC43IDAgMjMuMSA3LjggMjMuMSAyMi4zcy04LjQgMjIuOS0yMy4xIDIyLjl6TTE0OS42IDE5NWw0OS41IDAgMCAyMS42LTIzLjQgMS44YzQuNiA1LjggOS40IDE0IDkuNCAyNS43IDAgNDguNy01Ny4yIDQ3LjItNzQuMiA0Mi40bC04LjQgMTMuNGM1IC4zIDkuOCAuNiAxNC4zIC44IDU2LjMgMy4yIDgwLjUgNC42IDgwLjUgMzguNSAwIDI5LjItMjUuNyA0NS43LTY5LjkgNDUuNy00NiAwLTYzLjUtMTEuNi02My41LTMxLjcgMC0xMS40IDUuMS0xNy41IDE0LTI1LjktOC40LTMuNS0xMS4yLTkuOS0xMS4yLTE2LjggMC05LjYgNy40LTE2LjMgMjMtMzAuNmwuMi0uMmMtMTIuNC02LjEtMjEuOC0xOS4zLTIxLjgtMzguMSAwLTUxLjYgNTYuNi01My4zIDgxLjYtNDYuOGwtLjEgLjJ6TTI3MC41IDMwMy4xbDEzIDEuOCAwIDIwLjEtNzIuNCAwIDAtMjAuMWMyLjctLjQgNS0uNyA2LjktLjkgOS45LTEuMiAxMC4xLTEuMyAxMC4xLTZsMC03NC43YzAtNC40LS45LTQuNy0xMC4xLTcuOC0xLjktLjctNC4yLTEuNC02LjktMi40bDIuOC0yMC42IDUyLjYgMCAwIDEwNS41YzAgNC4xIC4yIDQuNiA0LjEgNS4xbC0uMSAwem0xMDYuNi0xMC40TDM4NCAzMTVjLTEwLjkgNS40LTI2LjkgMTAuMi00MS40IDEwLjItMzAuMiAwLTQxLjctMTIuMi00MS43LTQwLjlsMC02Ni42YzAtLjggMC0xLjQtLjItMS44LS44LTEuMi00LjItLjctMTkuNi0uN2wwLTIyLjZjMjIuMy0yLjUgMzEuMi0xMy43IDM0LTQxLjRsMjQuMiAwYzAgMzMuMy0uNiAzOCAuNyAzOC42IC4zIC4xIC43IDAgMS4zIDBsMzUuOCAwIDAgMjUuNC0zNy44IDAgMCA2MS42Yy0uMiA2LjMtLjkgMzAuNCAzNy45IDE1LjlsLS4xIDB6Il19LEhNdD1DOGUscU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9kbm9rbGFzc25pa2kiLGljb246WzMyMCw1MTIsW10sImYyNjMiLCJNMjc1LjEgMzM0Yy0yNy40IDE3LjQtNjUuMSAyNC4zLTkwIDI2LjlsMjAuOSAyMC42IDc2LjMgNzYuM2MyNy45IDI4LjYtMTcuNSA3My4zLTQ1LjcgNDUuNy0xOS4xLTE5LjQtNDcuMS00Ny40LTc2LjMtNzYuNkw4NCA1MDMuNGMtMjguMiAyNy41LTczLjYtMTcuNi00NS40LTQ1LjcgMTkuNC0xOS40IDQ3LjEtNDcuNCA3Ni4zLTc2LjNsMjAuNi0yMC42Yy0yNC42LTIuNi02Mi45LTkuMS05MC42LTI2LjktMzIuNi0yMS00Ni45LTMzLjMtMzQuMy01OSA3LjQtMTQuNiAyNy43LTI2LjkgNTQuNi01LjcgMCAwIDM2LjMgMjguOSA5NC45IDI4LjlTMjU1IDI2OS4yIDI1NSAyNjkuMmMyNi45LTIxLjEgNDcuMS04LjkgNTQuNiA1LjcgMTIuNCAyNS43LTEuOSAzOC0zNC41IDU5LjF6bTE0LjYtMjA0LjdhMTI5LjcgMTI5LjcgMCAxIDEgLTI1OS40IC40IDEyOS43IDEyOS43IDAgMSAxIDI1OS40LS40em0tMTkzLjQgLjRhNjMuNyA2My43IDAgMSAwIDEyNy40LS40IDYzLjcgNjMuNyAwIDEgMCAtMTI3LjQgLjR6Il19LGpNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcnVwYWwiLGljb246WzM4NCw1MTIsW10sImYxYTkiLCJNMjcyLjMgMTA4LjFDMjM2LjUgNzIuNSAyMDIuNSAzOC40IDE5Mi40IDAgMTgyLjQgMzguNCAxNDguMSA3Mi41IDExMi40IDEwOC4xIDU4LjggMTYxLjctMS45IDIyMi40LTEuOSAzMTMuNC00LjMgNDIwLjcgODAuOCA1MDkuNiAxODguMSA1MTJzMTk2LjItODIuOCAxOTguNS0xOTAuMWMuMS0yLjggLjEtNS42IDAtOC41IDAtOTEuMS02MC44LTE1MS43LTExNC4zLTIwNS4zek05OCAzMzEuMWMtNS45IDcuNS0xMSAxNS42LTE1LjIgMjQuMi0uMyAuNy0uOCAxLjMtMS4zIDEuOHMtMS4yIC44LTIgMWwtMS43IDBjLTQuMyAwLTkuMi04LjUtOS4yLTguNS0xLjMtMi0yLjUtNC4yLTMuNy02LjRsLS44LTEuOGMtMTEuMi0yNS43LTEuNS02Mi4zLTEuNS02Mi4zIDQuOC0xNy44IDEyLjctMzQuNyAyMy4yLTQ5LjkgNi40LTkuNiAxMy41LTE4LjkgMjEtMjcuN2w5LjIgOS4yIDQzLjUgNDQuNGMuOCAuOSAxLjMgMi4xIDEuMyAzLjNzLS41IDIuNC0xLjMgMy4zTDExNC4xIDMxMi4zIDk4IDMzMS4xem05Ni42IDEyNy4zYy0xMi45LS4xLTI1LjYtMy45LTM2LjQtMTFzLTE5LjQtMTcuMS0yNC42LTI4LjktNy0yNC45LTUtMzcuNyA3LjYtMjQuNyAxNi4yLTM0LjRjMTQuMi0xNi45IDMxLjUtMzMuNSA1MC4zLTU1LjMgMjIuMyAyMy44IDM2LjkgNDAuMSA1MS4yIDU4IDEuMSAxLjQgMi4xIDIuOSAzIDQuNCA3LjggMTEuMSAxMiAyNC40IDEyIDM4IDAgOC44LTEuNyAxNy40LTUgMjUuNXMtOC4yIDE1LjUtMTQuNCAyMS43LTEzLjUgMTEuMS0yMS42IDE0LjUtMTYuNyA1LjEtMjUuNSA1LjFsLS4yIDB6TTMyMC43IDM1MS42Yy0uNCAxLjQtMS4yIDIuNi0yLjMgMy42cy0yLjQgMS42LTMuOCAxLjhsLTEuMyAwYy0yLjYtLjktNC45LTIuNy02LjMtNS4xLTExLjYtMTcuNS0yNC45LTMzLjktMzkuNS00OWwtMTcuOC0xOC40LTU5LjEtNjEuM2MtMTIuNC0xMS41LTI0LjItMjMuNi0zNS40LTM2LjMtLjMtLjUtLjYtLjktLjktMS40LTItMi44LTMuNi01LjktNC43LTkuMmwwLTEuOGMtLjgtNS0uNC0xMC4xIDEuMi0xNXM0LjQtOS4yIDgtMTIuN2MxMS40LTExLjQgMjMtMjMgMzMuOC0zNC45IDEyIDEzLjMgMjQuOCAyNiAzNy40IDM4LjYgMjUuOCAyNCA0OS4xIDUwLjUgNjkuNiA3OS4xIDE3LjMgMjQuNSAyNi43IDUzLjggMjcgODMuOC0uMSAxMi45LTIuMiAyNS44LTYgMzguMnoiXX0sVk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXItYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3ZCIsIk00NDYuNiAyMjIuN2MtMS44LTgtNi44LTE1LjQtMTIuNS0xOC41LTEuOC0xLTEzLTIuMi0yNS0yLjctMjAuMS0uOS0yMi4zLTEuMy0yOC43LTUtMTAuMS01LjktMTIuOC0xMi4zLTEyLjktMjkuNS0uMS0zMy0xMy44LTYzLjctNDAuOS05MS4zLTE5LjMtMTkuNy00MC45LTMzLTY1LjUtNDAuNS01LjktMS44LTE5LjEtMi40LTYzLjMtMi45LTY5LjQtLjgtODQuOCAuNi0xMDguNCAxMC00My41IDE3LjItNzQuNyA1My44LTg2LjEgMTAwLjYtMi4xIDguOC0yLjYgMjIuOS0zLjEgMTAzLjktLjYgMTAxLjUgLjEgMTE2LjQgNi40IDEzNi41IDE1LjYgNDkuNiA1OS45IDg2LjMgMTA0LjQgOTQuMyAxNC44IDIuNyAxOTcuMyAzLjMgMjE2IC44IDMyLjUtNC40IDU4LTE3LjUgODEuOS00MS45IDE3LjMtMTcuNyAyOC4xLTM2LjggMzUuMi02Mi4xIDQuOS0xNy42IDQuNS0xNDIuOCAyLjUtMTUxLjd6TTEyNC41IDE1OS4xYzcuOC03LjkgMTAtOC4yIDU4LjgtOC4yIDQzLjkgMCA0NS40IC4xIDUxLjggMy40IDkuMyA0LjcgMTMuNCAxMS4zIDEzLjQgMjEuOSAwIDkuNS0zLjggMTYuMi0xMi4zIDIxLjYtNC42IDIuOS03LjMgMy4xLTUwLjMgMy4zLTI2LjUgLjItNDcuNy0uNC01MC44LTEuMi0xNi42LTQuNy0yMi44LTI4LjUtMTAuNi00MC44ek0zMTYuMyAzNTguOWwtMTQuOSAyLjQtNzcuNSAuOWMtNjguMSAuOC04Ny4zLS40LTkwLjktMi03LjEtMy4xLTEzLjgtMTEuNy0xNC45LTE5LjQtMS4xLTcuMyAyLjYtMTcuMyA4LjItMjIuNCA3LjEtNi40IDEwLjItNi42IDk3LjMtNi43IDg5LjYtLjEgODkuMS0uMSA5Ny42IDcuOCAxMi4xIDExLjMgOS41IDMxLjItNC45IDM5LjR6Il19LFVNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnZpc2lvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiMCIsIk00MDcuNCAzMkw0MC42IDMyQzE4LjIgMzIgMCA1MC4yIDAgNzIuNkwwIDQzOS40QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBsMzY2LjggMGMyMi40IDAgNDAuNi0xOC4yIDQwLjYtNDAuNmwwLTM2Ni44QzQ0OCA1MC4yIDQyOS44IDMyIDQwNy40IDMyek0xNzYuMSAxNDUuNmMuNCAyMy40LTIyLjQgMjcuMy0yNi42IDI3LjQtMTQuOSAwLTI3LjEtMTItMjcuMS0yNyAuMS0zNS4yIDUzLjEtMzUuNSA1My43LS40ek0zMzIuOCAzNzdjLTY1LjYgMC0zNC4xLTc0LTI1LTEwNi42IDE0LjEtNDYuNC00NS4yLTU5LTU5LjkgLjdsLTI1LjggMTAzLjMtNDUuMSAwIDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zIC4xLTE0LjMgLjktMTQgMjMtMTA0LjFsLTMxLjggMCA5LjctMzUuNiA3Ni40IDBjLTMzLjYgMTMzLjctMzIuNiAxMjYuOS0zMi45IDEzOC4yIDAgMjAuOSA0MC45IDEzLjUgNTcuNC0yMy4ybDE5LjgtNzkuNC0zMi4zIDAgOS43LTM1LjYgNjguOCAwLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6Il19LFdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1mIixpY29uOlszMjAsNTEyLFtdLCJmMzllIiwiTTgwIDI5OS4zbDAgMjEyLjcgMTE2IDAgMC0yMTIuNyA4Ni41IDAgMTgtOTcuOC0xMDQuNSAwIDAtMzQuNmMwLTUxLjcgMjAuMy03MS41IDcyLjctNzEuNSAxNi4zIDAgMjkuNCAuNCAzNyAxLjJsMC04OC43QzI5MS40IDQgMjU2LjQgMCAyMzYuMiAwIDEyOS4zIDAgODAgNTAuNSA4MCAxNTkuNGwwIDQyLjEtNjYgMCAwIDk3LjggNjYgMHoiXX0sR010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNlbnRvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4OSIsIk0yODkuNiA5Ny41bDMxLjYgMzEuNy03Ni4zIDc2LjUgMC0xMDguMiA0NC43IDB6TTEyNy4yIDEyOS4ybDc2LjMgNzYuNSAwLTEwOC4yLTQ0LjcgMC0zMS42IDMxLjd6bTQxLjUtNDEuNmw0NC43IDAgMCAxMjcuOSAxMC44IDEwLjggMTAuOC0xMC44IDAtMTI3LjkgNDQuNyAwLTU1LjUtNTUuNi01NS41IDU1LjZ6bTI2LjIgMTY4LjFsLTEwLjgtMTAuOC0xMjguNiAwIDAtNDQuOC01NS41IDU1LjYgNTUuNSA1NS42IDAtNDQuOCAxMjguNiAwIDEwLjgtMTAuOHpNMjc0LjIgMjM1bDEwNy45IDAgMC00NC44LTMxLjYtMzEuNy03Ni4zIDc2LjV6bTE3My4zIDIwLjdsLTU1LjUtNTUuNiAwIDQ0LjgtMTI3LjcgMC0xMC44IDEwLjggMTAuOCAxMC44IDEyNy43IDAgMCA0NC44IDU1LjUtNTUuNnpNNjUuNCAxNzYuMmwzMi41LTMxLjcgOTAuMyA5MC41IDE1LjMgMCAwLTE1LjMtOTAuMy05MC41IDMxLjYtMzEuNy03OS40IDAgMCA3OC43ek0zODIuMSA5Ny41bC03OC41IDAgMzEuNiAzMS43LTkwLjMgOTAuNSAwIDE1LjMgMTUuMyAwIDkwLjMtOTAuNSAzMS42IDMxLjcgMC03OC43ek0yMDMuNSA0MTMuOWwwLTEwOC4xLTc2LjMgNzYuNSAzMS42IDMxLjcgNDQuNyAwIDAtLjF6TTY1LjQgMjM1bDEwOC44IDAtNzYuMy03Ni41LTMyLjUgMzEuNyAwIDQ0Ljh6TTM4Mi4xIDMzNS4ybC0zMS42IDMxLjctOTAuMy05MC41LTE1LjMgMCAwIDE1LjMgOTAuMyA5MC41LTMxLjYgMzEuNyA3OC41IDAgMC03OC43em0wLTU4LjhsLTEwNy45IDAgNzYuMyA3Ni41IDMxLjYtMzEuNyAwLTQ0Ljh6TTMyMS4yIDM4Mi4ybC03Ni4zLTc2LjUgMCAxMDguMSA0NC43IDAgMzEuNi0zMS42ek05Ny45IDM1Mi45bDc2LjMtNzYuNS0xMDguOCAwIDAgNDQuOCAzMi41IDMxLjd6bTE4MS44IDcwLjlsLTQ0LjcgMCAwLTEyNy45LTEwLjgtMTAuOC0xMC44IDEwLjggMCAxMjcuOS00NC43IDAgNTUuNSA1NS42IDU1LjUtNTUuNnpNMTEzLjIgMzgyLjJsOTAuMy05MC41IDAtMTUuMy0xNS4zIDAtOTAuMyA5MC41LTMyLjUtMzEuNyAwIDc4LjcgNzkuNCAwLTMxLjYtMzEuN3oiXX0sS010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjYWxld2F5IixpY29uOls0NDgsNTEyLFtdLCJlODU5IiwiTTI0My40IDExNy4zbC04NC4zIDBjLTE4LjUgMi4xLTMyLjcgMTcuNS0zMy40IDM2bDAgMTIxLjljMCA4LjIgMy4yIDE1LjMgOC41IDIwLjdzMTIuNSA4LjYgMjAuNiA4LjZjMTYgMCAyOS4yLTEzLjIgMjkuMi0yOS4ybDAtNzcuNGMwLTEyLjEgMTAtMjIuMSAyMi4xLTIyLjFsMzguMSAwYzguMiAwIDE1LjMtMy4yIDIwLjYtOC42czguNS0xMi44IDguNS0yMWMwLTE2LTEzLjktMjguOS0yOS45LTI4Ljl6TTIwNS4zIDM5NS40bDg0LjMgMGMxOC41LTIuMSAzMi43LTE3LjUgMzMuNC0zNmwwLTEyMS45YzAtOC4yLTMuMi0xNS4zLTguNS0yMC43cy0xMi41LTguNi0yMC42LTguNmMtMTYgMC0yOS4yIDEzLjItMjkuMiAyOS4ybDAgNzcuNGMwIDEyLjEtMTAgMjIuMS0yMi4xIDIyLjFsLTM4LjEgMGMtOC4yIDAtMTUuMyAzLjItMjAuNiA4LjZzLTguNSAxMi44LTguNSAyMWMuNCAxNiAxMy45IDI4LjkgMjkuOSAyOC45ek0xMDQuMyAwTDI1Ny42IDBjMTAxIDAgMTgyLjUgODEuNiAxODIuMSAxODIuOWwwIDI0Mi44Yy00LjYgNDYtNDIgODIuNC04OC4yIDg2LjNMMTkwIDUxMkM4OS4zIDUxMiA3LjUgNDMwIDcuNSAzMjkuMUw3LjUgOTdjMC01My41IDQzLjQtOTcgOTYuOC05N3pNMzgxLjcgMTgyLjljMC02OC41LTU1LjktMTI0LjQtMTI0LjItMTI0LjRsLTE1MyAwQzgzLjMgNTguNSA2Ni4yIDc1LjYgNjYuMiA5N2wwIDIzMi4xYzAgNjguOCA1NS41IDEyNC40IDEyNC4yIDEyNC40bDE1OC43IDBjMTYuNy0yLjEgMjkuOS0xNSAzMi43LTMxLjRsMC0yMzkuMnoiXX0sWU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFtYXpvbi1wYXkiLGljb246WzU3Niw1MTIsW10sImY0MmQiLCJNMTI0LjcgMjAxLjhjLjEtMTEuOCAwLTIzLjUgMC0zNS4zbDAtMzUuM2MwLTEuMyAuNC0yIDEuNC0yLjcgMTEuNS04IDI0LjEtMTIuMSAzOC4yLTExLjEgMTIuNSAuOSAyMi43IDcgMjguMSAyMS43IDMuMyA4LjkgNC4xIDE4LjIgNC4xIDI3LjcgMCA4LjctLjcgMTcuMy0zLjQgMjUuNi01LjcgMTcuOC0xOC43IDI0LjctMzUuNyAyMy45LTExLjctLjUtMjEuOS01LTMxLjQtMTEuNy0uOS0uOC0xLjQtMS42LTEuMy0yLjh6bTE1NC45IDE0LjZjNC42IDEuOCA5LjMgMiAxNC4xIDEuNSAxMS42LTEuMiAyMS45LTUuNyAzMS4zLTEyLjUgLjktLjYgMS4zLTEuMyAxLjMtMi41LS4xLTMuOSAwLTcuOSAwLTExLjggMC00LS4xLTggMC0xMiAwLTEuNC0uNC0yLTEuOC0yLjItNy0uOS0xMy45LTIuMi0yMC45LTIuOS03LS42LTE0LS4zLTIwLjggMS45LTYuNyAyLjItMTEuNyA2LjItMTMuNyAxMy4xLTEuNiA1LjQtMS42IDEwLjggLjEgMTYuMiAxLjYgNS41IDUuMiA5LjIgMTAuNCAxMS4yek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zNjguNSAxMDMuOWMuNCAxLjcgLjkgMy40IDEuNiA1LjEgMTYuNSA0MC42IDMyLjkgODEuMyA0OS41IDEyMS45IDEuNCAzLjUgMS43IDYuNCAuMiA5LjktMi44IDYuMi00LjkgMTIuNi03LjggMTguNy0yLjYgNS41LTYuNyA5LjUtMTIuNyAxMS4yLTQuMiAxLjEtOC41IDEuMy0xMi45IC45LTIuMS0uMi00LjItLjctNi4zLS44LTIuOC0uMi00LjIgMS4xLTQuMyA0LS4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC42IDEuNiA2LjcgNi4yIDcuNSA0LjcgLjggOS40IDEuNiAxNC4yIDEuNyAxNC4zIC4zIDI1LjctNS40IDMzLjEtMTcuOSAyLjktNC45IDUuNi0xMC4xIDcuNy0xNS40IDE5LjgtNTAuMSAzOS41LTEwMC4zIDU5LjItMTUwLjUgLjYtMS41IDEuMS0zIDEuMy00LjYgLjQtMi40LS43LTMuNi0zLjEtMy43LTUuNi0uMS0xMS4xIDAtMTYuNyAwLTMuMSAwLTUuMyAxLjQtNi40IDQuMy0uNCAxLjEtLjkgMi4zLTEuMyAzLjRsLTI5LjEgODMuN2MtMi4xIDYuMS00LjIgMTIuMS02LjUgMTguNi0uNC0uOS0uNi0xLjQtLjgtMS45LTEwLjgtMjkuOS0yMS42LTU5LjktMzIuNC04OS44LTEuNy00LjctMy41LTkuNS01LjMtMTQuMi0uOS0yLjUtMi43LTQtNS40LTQtNi40LS4xLTEyLjgtLjItMTkuMi0uMS0yLjIgMC0zLjMgMS42LTIuOCAzLjd6TTI0Mi40IDIwNmMxLjcgMTEuNyA3LjYgMjAuOCAxOCAyNi42IDkuOSA1LjUgMjAuNyA2LjIgMzEuNyA0LjYgMTIuNy0xLjkgMjMuOS03LjMgMzMuOC0xNS41IC40LS4zIC44LS42IDEuNC0xIC41IDMuMiAuOSA2LjIgMS41IDkuMiAuNSAyLjYgMi4xIDQuMyA0LjUgNC40IDQuNiAuMSA5LjEgLjEgMTMuNyAwIDIuMy0uMSAzLjgtMS42IDQtMy45IC4xLS44IC4xLTEuNiAuMS0yLjNsMC04OC44YzAtMy42LS4yLTcuMi0uNy0xMC44LTEuNi0xMC44LTYuMi0xOS43LTE1LjktMjUuNC01LjYtMy4zLTExLjgtNS0xOC4yLTUuOS0zLS40LTYtLjctOS4xLTEuMWwtMTAgMGMtLjggLjEtMS42IC4zLTIuNSAuMy04LjIgLjQtMTYuMyAxLjQtMjQuMiAzLjUtNS4xIDEuMy0xMCAzLjItMTUgNC45LTMgMS00LjUgMy4yLTQuNCA2LjUgLjEgMi44LS4xIDUuNiAwIDguMyAuMSA0LjEgMS44IDUuMiA1LjcgNC4xIDYuNS0xLjcgMTMuMS0zLjUgMTkuNy00LjggMTAuMy0xLjkgMjAuNy0yLjcgMzEuMS0xLjIgNS40IC44IDEwLjUgMi40IDE0LjEgNyAzLjEgNCA0LjIgOC44IDQuNCAxMy43IC4zIDYuOSAuMiAxMy45IC4zIDIwLjggMCAuNC0uMSAuNy0uMiAxLjItLjQgMC0uOCAwLTEuMS0uMS04LjgtMi4xLTE3LjctMy42LTI2LjgtNC4xLTkuNS0uNS0xOC45IC4xLTI3LjkgMy4yLTEwLjggMy44LTE5LjUgMTAuMy0yNC42IDIwLjgtNC4xIDguMy00LjYgMTctMy40IDI1Ljh6TTk4LjcgMTA2LjlsMCAxNzUuM2MwIC44IDAgMS43IC4xIDIuNSAuMiAyLjUgMS43IDQuMSA0LjEgNC4yIDUuOSAuMSAxMS44IC4xIDE3LjcgMCAyLjUgMCA0LTEuNyA0LjEtNC4xIC4xLS44IC4xLTEuNyAuMS0yLjVsMC02MC43Yy45IC43IDEuNCAxLjIgMS45IDEuNiAxNSAxMi41IDMyLjIgMTYuNiA1MS4xIDEyLjkgMTcuMS0zLjQgMjguOS0xMy45IDM2LjctMjkuMiA1LjgtMTEuNiA4LjMtMjQuMSA4LjctMzcgLjUtMTQuMy0xLTI4LjQtNi44LTQxLjctNy4xLTE2LjQtMTguOS0yNy4zLTM2LjctMzAuOS0yLjctLjYtNS41LS44LTguMi0xLjJsLTcgMGMtMS4yIC4yLTIuNCAuMy0zLjYgLjUtMTEuNyAxLjQtMjIuMyA1LjgtMzEuOCAxMi43LTIgMS40LTMuOSAzLTUuOSA0LjUtLjEtLjUtLjMtLjgtLjQtMS4yLS40LTIuMy0uNy00LjYtMS4xLTYuOS0uNi0zLjktMi41LTUuNS02LjQtNS42bC05LjcgMGMtNS45LS4xLTYuOSAxLTYuOSA2Ljh6TTQ5My42IDMzOWMtMi43LS43LTUuMSAwLTcuNiAxLTQzLjkgMTguNC04OS41IDMwLjItMTM2LjggMzUuOC0xNC41IDEuNy0yOS4xIDIuOC00My43IDMuMi0yNi42IC43LTUzLjItLjgtNzkuNi00LjMtMTcuOC0yLjQtMzUuNS01LjctNTMtOS45LTM3LTguOS03Mi43LTIxLjctMTA2LjctMzguOC04LjgtNC40LTE3LjQtOS4zLTI2LjEtMTQtMy44LTIuMS02LjItMS41LTguMiAyLjFsMCAxLjdjMS4yIDEuNiAyLjIgMy40IDMuNyA0LjggMzYgMzIuMiA3Ni42IDU2LjUgMTIyIDcyLjkgMjEuOSA3LjkgNDQuNCAxMy43IDY3LjMgMTcuNSAxNCAyLjMgMjggMy44IDQyLjIgNC41IDMgLjEgNiAuMiA5IC40IC43IDAgMS40IC4yIDIuMSAuM2wxNy43IDBjLjctLjEgMS40LS4zIDIuMS0uMyAxNC45LS40IDI5LjgtMS44IDQ0LjYtNCAyMS40LTMuMiA0Mi40LTguMSA2Mi45LTE0LjcgMjkuNi05LjYgNTcuNy0yMi40IDgzLjQtNDAuMSAyLjgtMS45IDUuNy0zLjggOC02LjIgNC4zLTQuNCAyLjMtMTAuNC0zLjMtMTEuOXpNNTQ0IDMxMS4zYy0uOC00LjItNC01LjgtNy42LTctNS43LTEuOS0xMS42LTIuOC0xNy42LTMuMy0xMS0uOS0yMi0uNC0zMi44IDEuNi0xMiAyLjItMjMuNCA2LjEtMzMuNSAxMy4xLTEuMiAuOC0yLjQgMS44LTMuMSAzLS42IC45LS43IDIuMy0uNSAzLjQgLjMgMS4zIDEuNyAxLjYgMyAxLjUgLjYgMCAxLjIgMCAxLjgtLjFsMTkuNS0yLjFjOS42LS45IDE5LjItMS41IDI4LjgtLjggNC4xIC4zIDguMSAxLjIgMTIgMi4yIDQuMyAxLjEgNi4yIDQuNCA2LjQgOC43IC4zIDYuNy0xLjIgMTMuMS0yLjkgMTkuNS0zLjUgMTIuOS04LjMgMjUuNC0xMy4zIDM3LjgtLjMgLjgtLjcgMS43LS44IDIuNS0uNCAyLjUgMSA0IDMuNCAzLjUgMS40LS4zIDMtMS4xIDQtMi4xIDMuNy0zLjYgNy41LTcuMiAxMC42LTExLjIgMTAuNy0xMy44IDE3LTI5LjYgMjAuNy00Ni42IC43LTMgMS4yLTYuMSAxLjctOS4xIC4yLTQuNyAuMi05LjYgLjItMTQuNXoiXX0sWk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImViYXkiLGljb246WzY0MCw1MTIsW10sImY0ZjQiLCJNNjA2LjUgMTg5LjVsLTU0LjggMTA5LjktNTQuOS0xMDkuOS0zNy41IDAgMTAuOSAyMC42Yy0xMS41LTE5LTM1LjktMjYtNjMuMy0yNi0zMS44IDAtNjcuOSA4LjctNzEuNSA0My4xbDMzLjcgMGMxLjQtMTMuOCAxNS43LTIxLjggMzUtMjEuOCAyNiAwIDQxIDkuNiA0MSAzM2wwIDMuNGMtMTIuNyAwLTI4IC4xLTQxLjcgLjQtNDIuNCAuOS02OS42IDEwLTc2LjcgMzQuNCAxLTUuMiAxLjUtMTAuNiAxLjUtMTYuMiAwLTUyLjEtMzkuNy03Ni4yLTc1LjQtNzYuMi0yMS4zIDAtNDMgNS41LTU4LjcgMjQuMmwwLTgwLjYtMzIuMSAwIDAgMTY5LjVjMCAxMC4zLS42IDIyLjktMS4xIDMzLjFsMzEuNSAwYy43LTYuMyAxLjEtMTIuOSAxLjEtMTkuNSAxMy42IDE2LjYgMzUuNCAyNC45IDU4LjcgMjQuOSAzNi45IDAgNjQuOS0yMS45IDczLjMtNTQuMi0uNSAyLjgtLjcgNS44LS43IDkgMCAyNC4xIDIxLjEgNDUgNjAuNiA0NSAyNi42IDAgNDUuOC01LjcgNjEuOS0yNS41IDAgNi42IC4zIDEzLjMgMS4xIDIwLjJsMjkuOCAwYy0uNy04LjItMS0xNy41LTEtMjYuOGwwLTY1LjZjMC05LjMtMS43LTE3LjItNC44LTIzLjhsNjEuNSAxMTYuMS0yOC41IDU0LjEgMzUuOSAwIDk5LjItMTk0LjgtMzQgMHpNMjQ0LjIgMzEzLjhjLTI5LjYgMC01MC4yLTIxLjUtNTAuMi01My44IDAtMzIuNCAyMC42LTUzLjggNTAuMi01My44IDI5LjggMCA1MC4yIDIxLjQgNTAuMiA1My44IDAgMzIuMy0yMC40IDUzLjgtNTAuMiA1My44em0yMDAuOS00Ny4zYzAgMzAtMTcuOSA0OC40LTUxLjYgNDguNC0yNS4xIDAtMzUtMTMuNC0zNS0yNS44IDAtMTkuMSAxOC4xLTI0LjQgNDcuMi0yNS4zIDEzLjEtLjUgMjcuNi0uNiAzOS40LS42bDAgMy4zek0zMy4yIDI2OC4xbDEyOC44IDAgMC04LjVjMC01MS43LTMzLjEtNzUuNC03OC40LTc1LjQtNTYuOCAwLTgzIDMwLjgtODMgNzcuNiAwIDQyLjUgMjUuMyA3NCA4Mi41IDc0IDMxLjQgMCA2OC0xMS43IDc0LjQtNDYuMWwtMzMuMSAwYy0xMiAzNS44LTg3LjcgMzYuNy05MS4yLTIxLjZ6bTk1LTIxLjRsLTk0LjQgMGM2LjktNTYuNiA5Mi4xLTU0LjcgOTQuNCAweiJdfSxYTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29udGFvIixpY29uOls1MTIsNTEyLFtdLCJmMjZkIiwiTTQ1LjQgMzA1YzE0LjQgNjcuMSAyNi40IDEyOSA2OC4yIDE3NUwzNCA0ODBjLTE4LjcgMC0zNC0xNS4yLTM0LTM0TDAgNjZDMCA0Ny4zIDE1LjIgMzIgMzQgMzJsNTcuNyAwYy0xMy44IDEyLjYtMjYuMSAyNy4yLTM2LjkgNDMuNi00NS40IDcwLTI3IDE0Ni44LTkuNCAyMjkuNHpNNDc4IDMybC05MC4yIDBjMjEuNCAyMS40IDM5LjIgNDkuNSA1Mi43IDg0LjFMMzAzLjQgMTQ1LjRjLTE0LjktMjktMzcuOC01My4zLTgyLjYtNDMuOS0yNC42IDUuMy00MSAxOS4zLTQ4LjMgMzQuNi04LjggMTguNy0xMy4yIDM5LjggOC4yIDE0MC4zIDIxLjEgMTAwLjIgMzMuNyAxMTcuNyA0OS41IDEzMS4yIDEyLjkgMTEuMSAzMy40IDE3IDU4LjMgMTEuNyA0NC41LTkuNCA1NS43LTQwLjcgNTcuNC03My4ybDEzNy40LTI5LjZjMy4yIDcxLjUtMTguNyAxMjUuMi01Ny40IDE2My42bDUyLjEgMGMxOC43IDAgMzQtMTUuMiAzNC0zNEw1MTIgNjZjMC0xOC44LTE1LjItMzQtMzQtMzR6Il19LFFNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGxvIixpY29uOls1MTIsNTEyLFtdLCJmNWYxIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzk5LjggMjkzLjJDMzgzLjMgMzU4LjUgMzIzLjggNDA0LjggMjU2IDQwNC44UzEyOC43IDM1OC41IDExMi4yIDI5My4yYy0xLjYtNy40IDIuNS0xNS43IDkuOS0xNy40czE1LjcgMi41IDE3LjQgOS45YzE0IDUyLjkgNjIgOTAuMSAxMTYuNiA5MC4xczEwMi41LTM3LjIgMTE2LjYtOTAuMWMxLjctNy40IDkuOS0xMi40IDE3LjQtOS45IDcuNCAxLjcgMTIuNCA5LjkgOS45IDE3LjR6Il19LEpNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXN0cml4IixpY29uOls0NDgsNTEyLFtdLCJmM2VlIiwiTTQ0OCA0NDlMMzAxLjIgMzAwLjJjMjAtMjcuOSAzMS45LTYyLjIgMzEuOS05OS4yIDAtOTMuMS03NC43LTE2OC45LTE2Ni41LTE2OC45LTkxLjktLjEtMTY2LjYgNzUuNy0xNjYuNiAxNjguOFM3NC43IDM2OS44IDE2Ni41IDM2OS44YzM5LjggMCA3Ni4zLTE0LjIgMTA1LTM3LjlMNDE3LjUgNDgwIDQ0OCA0NDl6TTE2Ni41IDMzMC44Yy03MC42IDAtMTI4LjEtNTguMy0xMjguMS0xMjkuOVM5NS45IDcxIDE2Ni41IDcxIDI5NC42IDEyOS4zIDI5NC42IDIwMC45IDIzNy4yIDMzMC44IDE2Ni41IDMzMC44eiJdfSxlenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGVyaXNjb3BlIixpY29uOls0NDgsNTEyLFtdLCJmM2RhIiwiTTM3MCA2My42Yy0zOC42LTQxLTg5LjUtNjMuNi0xNDMuNC02My42LTExNC43IDAtMjA4LjEgOTYuMi0yMDguMSAyMTQuNCAwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43IDM2LjYgNDguNCA5MS40IDEwNC45IDEyNS40IDEwNC45IDQxLjYgMCAxMTIuOS05NC4yIDEyMC45LTEwNSAyNC42LTMzLjEgODItMTE4LjMgODItMTkyLjYgMC01Ni41LTIxLjEtMTEwLjEtNTkuNS0xNTAuOHpNMjI2LjYgNDkzLjljLTQyLjUgMC0xOTAtMTY3LjMtMTkwLTI3OS40IDAtMTA3LjQgODMuOS0xOTYuMyAxOTAtMTk2LjMgMTAwLjggMCAxODQuNyA4OSAxODQuNyAxOTYuMyAuMSAxMTIuMS0xNDcuNCAyNzkuNC0xODQuNyAyNzkuNHpNMzM4IDIwNi44YzAgNTkuMS01MS4xIDEwOS43LTExMC44IDEwOS43LTEwMC42IDAtMTUwLjctMTA4LjItOTIuOS0xODEuOGwwIC40YzAgMjQuNSAyMC4xIDQ0LjQgNDQuOCA0NC40czQ0LjgtMTkuOSA0NC44LTQ0LjRjMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHoiXX0sdHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV4cGVkaXRlZHNzbCIsaWNvbjpbNTEyLDUxMixbXSwiZjIzZSIsIk0yNTYgNDMuNGEyMTIuNiAyMTIuNiAwIDEgMCAwIDQyNS4yIDIxMi42IDIxMi42IDAgMSAwIDAtNDI1LjJ6TTE1OC42IDE3Ni4zYzAtNTMuNyA0My43LTk3LjQgOTcuNC05Ny40czk3LjQgNDMuNyA5Ny40IDk3LjRsMCAyNi42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjZjMC04Mi4xLTEyNC04Mi4xLTEyNCAwbDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42IC4yIDB6TTM5Ny43IDM4MGMwIDkuNy04IDE3LjctMTcuNyAxNy43bC0yNDggMGMtOS43IDAtMTcuNy04LTE3LjctMTcuN2wwLTE0MS43YzAtOS43IDgtMTcuNyAxNy43LTE3LjdsMjQ4IDBjOS43IDAgMTcuNyA4IDE3LjcgMTcuN2wwIDE0MS43em0tMjQ4LTEzNy4zbDAgMTMyLjljMCAyLjUtMS45IDQuNC00LjQgNC40bC04LjkgMGMtMi41IDAtNC40LTEuOS00LjQtNC40bDAtMTMyLjljMC0yLjUgMS45LTQuNCA0LjQtNC40bDguOSAwYzIuNSAwIDQuNCAxLjkgNC40IDQuNHptMTQxLjcgNDguN2MwIDEzLTcuMiAyNC40LTE3LjcgMzAuNGwwIDMxLjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMzEuNmMtMTAuNS02LjEtMTcuNy0xNy40LTE3LjctMzAuNCAwLTE5LjcgMTUuOC0zNS40IDM1LjQtMzUuNHMzNS41IDE1LjggMzUuNSAzNS40ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTcuN2EyMzAuMyAyMzAuMyAwIDEgMSAwIDQ2MC42IDIzMC4zIDIzMC4zIDAgMSAxIDAtNDYwLjZ6Il19LGF6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuYXBzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2QyIiwiTTMwNi4zIDM3My42Yy0xNC4yIDEzLjYtMzEuMyAyNC4xLTUwLjQgMzAuNS0xOS02LjQtMzYuMi0xNi45LTUwLjMtMzAuNWwxMDAuNyAwem00NC0xOTkuNmMyMC0xNi45IDQzLjYtMjkuMiA2OS42LTM2LjJsMCAxNjEuMmMwIDIxOS40LTMyOCAyMTcuNi0zMjggLjNsMC0xNjEuNmMyNS45IDYuOSA0OS42IDE5LjYgNjkuNSAzNi40IDU2LjgtNDAgMTMyLjUtMzkuOSAxODguOS0uMXpNMTQxLjUgMTE1LjVjNjQuNC02MCAxNjQuMy02MC4xIDIyOC45LS4yLTcuMSAzLjUtMTMuOSA3LjMtMjAuNiAxMS41LTU4LjctMzAuNS0xMjkuMi0zMC40LTE4Ny45IC4xLTYuMy00LTEzLjktOC4yLTIwLjQtMTEuNHpNNTEuOCA5My4ybDAgNjkuM2MtNTguNCAzNi41LTU4LjQgMTIxLjEgLjEgMTU4LjMgMjYuNCAyNDUuMSAzODEuNyAyNDAuMyA0MDcuNiAxLjVsLjMtMS43YzU4LjctMzYuMyA1OC45LTEyMS43IC4yLTE1OC4ybDAtNjkuMmMtMTcuMyAuNS0zNCAzLTUwLjEgNy40LTgyLTkxLjUtMjI1LjUtOTEuNS0zMDcuNSAuMS0xNi4zLTQuNC0zMy4xLTctNTAuNi03LjV6TTI2Ny4yIDM1MnMzNi0uMyA2MS4zLTEuNWMxMC4yLS41IDIxLjEtNCAyNS41LTYuNSAyNi4zLTE1LjEgMjUuNC0zOS4yIDI2LjItNDcuNC03OS41LS42LTk5LjktMy45LTExMyA1NS40ek0xMzEuNyAyOTYuN2MuOCA4LjItLjEgMzIuMyAyNi4yIDQ3LjQgNC40IDIuNSAxNS4yIDYgMjUuNSA2LjUgMjUuMyAxLjEgNjEuMyAxLjUgNjEuMyAxLjUtMTMuMi01OS40LTMzLjctNTYuMS0xMTMtNTUuNHpNMzAwLjggNDIwLjFjLTMuMi01LjMtNi45LTcuMy02LjktNy4zLTI0LjggNy4zLTUyLjIgNi45LTc1LjkgMCAwIDAtMi45IDEuNS02LjQgNi42LTIuOCA0LjEtMy43IDkuNi0zLjcgOS42IDI5LjEgMTcuNiA2Ny4xIDE3LjYgOTYuMiAwLS4xLS4xLS4zLTQtMy4zLTguOXoiXX0sc3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlbGljaW91cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhNSIsIk00NDYuNiA2OGMtLjQtMS41LS45LTMtMS40LTQuNS0uOS0yLjUtMi00LjgtMy4zLTcuMS0xLjQtMi40LTMtNC44LTQuNy02LjktMi4xLTIuNS00LjQtNC44LTYuOS02LjgtMS4xLS45LTIuMi0xLjctMy4zLTIuNS0xLjMtLjktMi42LTEuNy00LTIuNC0xLjgtMS0zLjYtMS44LTUuNS0yLjUtMS43LS43LTMuNS0xLjMtNS40LTEuNy0zLjgtMS03LjktMS41LTEyLTEuNWwtMzUyIDBDMjEuNiAzMiAuMSA1My41IC4xIDgwbDAgMzUyYzAgNC4xIC41IDguMiAxLjUgMTIgMiA3LjcgNS44IDE0LjYgMTEgMjAuMyAxIDEuMSAyLjEgMi4yIDMuMyAzLjMgNS43IDUuMiAxMi42IDkgMjAuMyAxMSAzLjggMSA3LjkgMS41IDEyIDEuNWwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1Mi4xYy0uMS00LjEtLjYtOC4yLTEuNi0xMnpNNDE2LjEgNDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC0xOTItMTkyIDAgMC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDE3NiAwIDAgMTkyIDE5MiAwIDAgMTc2eiJdfSxpenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3VpbGRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3ZSIsIk00NDMuOSA2NEw1IDY0YzAgMTAzLjMgMjIuMiAxODAuMSA0My40IDIyMi40IDY0LjEgMTI3LjggMTc2IDE2MS42IDE3Ny4zIDE2MS42IDU1LjctMjAuNSAxMDQuNS01Ni4zIDE0MC42LTEwMy41IDI1LjktMzMuOSA1My4xLTg3LjIgNjUuOS0xNDUuOGwtMjU5LjkgMGM0LjEgMzYuNCAyMi4yIDY3LjkgNDUuMSA4Ni45bDg4LjYgMGMtMTcgMjguMi00OC4yIDU0LjQtODAuNSA2OS41LTMxLjItMTMuMy02OS4xLTQ2LjUtOTYuNS05OC40LTI2LjctNTMuOC0yNy4xLTEwNS45LTI3LjEtMTA1LjlsMzM2LjEgMGM0LTI4LjggNS45LTU3LjkgNS45LTg2Ljl6Il19LHJ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvYnNpZGlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZTg3OSIsIk0xNDIuMyAzMjAuM2MzNi4xLTguMiA3MC4zLTExIDEwMS4zIC43IDMxLjggMTEuOSA2MS43IDM5LjYgODYuNyA5Ni04LjEgMTcuNy0xMi40IDM2LjktMTQuNyA1My44LTMuMSAyMi45LTI1LjQgNDAuNy00Ny43IDM0LjYtMzEuNy04LjctNjguMy0yMi4zLTEwMS4zLTI0LjktNC40LS4zLTUwLjYtMy44LTUwLjYtMy44LTEuNy0uMS0zLjQtLjQtNS4xLS44IDMxLjUtNjQuMiAzOC4yLTExNS4xIDMxLjMtMTU1LjR6TTU1IDIxOS41YzIyLjMgMTQuOCA0OS41IDM3LjggNjQuMSA3My42IDE2LjEgMzkuNCAxNy44IDk1LjctMjEuNiAxNzYuMS0xLS44LTIuMS0xLjctMy0yLjdMNy40IDM3Ni44Yy05LjUtOS44LTEyLjEtMjQuNC02LjUtMzYuOSAuNi0xLjMgNDQuNi05OC4zIDU0LjEtMTIwLjR6bTI2NC4zLTkxLjNjNC45IDYuMiA3LjQgMTQgNy40IDIxLjkgLjEgMjAuOCAxLjggNjMuNiAxMy4zIDkxLjIgMTEuMiAyNi44IDMxLjggNTUuOCA0Mi41IDcwIDQuMSA1LjUgNC44IDEyLjkgMS4zIDE4LjctNy42IDEyLjgtMjIuNiAzNy41LTQzLjggNjkuMi0uMyAuNC0uNiAuOS0uOCAxLjMtMjUuMi01Mi4yLTU1LjktODAuNy05MC40LTkzLjYtOS42LTMuNi0xOS41LTYtMjkuNC03LjMtMTcuOC00NS44LTIzLjItNzkuNy0yMi0xMDYuNCAxLjItMjcuNCA5LjItNDcuOCAxOC4yLTY2LjMgOC45LTE4LjEgMTkuOC0zNS45IDI0LjktNTUuNyAzLjItMTIuNSA0LjItMjUuOCAxLjctNDAuOWw3Ny4xIDk4ek0xODQuMiAxNC4xYzEwLjMtOS4yIDI0LjYtMTAuOCAzNi4zLTUuNSA5LjYgMjQuNiA5LjcgNDIuOCA1LjYgNTguOC00LjYgMTcuOC0xNC4xIDMzLTIzLjkgNTIuOC05LjYgMTkuNS0xOC40IDQyLTE5LjcgNzIuMy0xLjIgMjcuOSA0LjEgNjEuOSAyMC40IDEwNS44LTIxLS42LTQyLjUgMi42LTYzLjcgNy40LTEuNy02LjQtMy44LTEyLjQtNi4xLTE4LjItMTcuMy00Mi4yLTQ5LjktNjcuOS03NC4xLTgzLjMgMy4xLTE4LjcgOC4yLTU1LjQgMTEuNi03Ny41IDEuMi03LjYgNC45LTE0LjYgMTAuNy0xOS44TDE4NC4yIDE0LjF6Il19LG96dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4Ym94IixpY29uOls1MTIsNTEyLFtdLCJmNDEyIiwiTTM2OS45IDMxOC4yYzQ0LjMgNTQuMyA2NC43IDk4LjggNTQuNCAxMTguNy03LjkgMTUuMS01Ni43IDQ0LjYtOTIuNiA1NS45LTI5LjYgOS4zLTY4LjQgMTMuMy0xMDAuNCAxMC4yLTM4LjItMy43LTc2LjktMTcuNC0xMTAuMS0zOS0yNy45LTE4LjItMzQuMi0yNS43LTM0LjItNDAuNiAwLTI5LjkgMzIuOS04Mi4zIDg5LjItMTQyLjEgMzItMzMuOSA3Ni41LTczLjcgODEuNC03Mi42IDkuNCAyLjEgODQuMyA3NS4xIDExMi4zIDEwOS41ek0xODguNiAxNDMuOGMtMjkuNy0yNi45LTU4LjEtNTMuOS04Ni40LTYzLjQtMTUuMi01LjEtMTYuMy00LjgtMjguNyA4LjEtMjkuMiAzMC40LTUzLjUgNzkuNy02MC4zIDEyMi40LTUuNCAzNC4yLTYuMSA0My44LTQuMiA2MC41IDUuNiA1MC41IDE3LjMgODUuNCA0MC41IDEyMC45IDkuNSAxNC42IDEyLjEgMTcuMyA5LjMgOS45LTQuMi0xMS0uMy0zNy41IDkuNS02NCAxNC4zLTM5IDUzLjktMTEyLjkgMTIwLjMtMTk0LjR6bTMxMS42IDYzLjVjLTE2LjktODAtNjcuNS0xMzAuMy03NC42LTEzMC4zLTcuMyAwLTI0LjIgNi41LTM2IDEzLjktMjMuMyAxNC41LTQxIDMxLjQtNjQuMyA1Mi44IDQyLjQgNTMuMyAxMDIuMiAxMzkuNCAxMjIuOSAyMDIuMyA2LjggMjAuNyA5LjcgNDEuMSA3LjQgNTIuMy0xLjcgOC41LTEuNyA4LjUgMS40IDQuNiA2LjEtNy43IDE5LjktMzEuMyAyNS40LTQzLjUgNy40LTE2LjIgMTUtNDAuMiAxOC42LTU4LjcgNC4zLTIyLjUgMy45LTcwLjgtLjgtOTMuNHpNMTQxLjMgNDNjNDcuNy0yLjUgMTA5LjcgMzQuNSAxMTQuMyAzNS40IC43IC4xIDEwLjQtNC4yIDIxLjYtOS43IDYzLjktMzEuMSA5NC0yNS44IDEwNy40LTI1LjItNjMuOS0zOS4zLTE1Mi43LTUwLTIzMy45LTExLjctMjMuNCAxMS4xLTI0IDExLjktOS40IDExLjJ6Il19LG56dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnRhcHBkIixpY29uOls2NDAsNTEyLFtdLCJmNDA1IiwiTTQwMS41IDQ5LjlDMzIxLjcgMjEwIDMxNi45IDIwMi40IDMxMy42IDIyMy4xbC01LjIgMzIuOGMtMS45IDEyLTYuNiAyMy41LTEzLjcgMzMuNEwxNDUuOCA0OTcuMWMtNy42IDEwLjYtMjAuNCAxNi4yLTMzLjQgMTQuNi00MC4zLTUtNzcuOC0zMi4yLTk1LjMtNjguNS01LjctMTEuOC00LjUtMjUuOCAzLjEtMzYuNEwxNjkuMSAxOTguOWM3LjEtOS45IDE2LjQtMTggMjcuMi0yMy43bDI5LjMtMTUuNWMxOC41LTkuOCA5LjctMTEuOSAxMzUuNi0xMzguOSAxLTQuOCAxLTcuMyAzLjYtOCAzLS43IDYuNi0xIDYuMy00LjZsLS40LTQuNmMtLjItMS45IDEuMy0zLjYgMy4yLTMuNiA0LjUtLjEgMTMuMiAxLjIgMjUuNiAxMCAxMi4zIDguOSAxNi40IDE2LjggMTcuNyAyMS4xIC42IDEuOC0uNiAzLjctMi40IDQuMmwtNC41IDEuMWMtMy40IC45LTIuNSA0LjQtMi4zIDcuNCAuMSAyLjgtMi4zIDMuNi02LjUgNi4xek0yMzAuMyAzNi40YzMuNCAuOSAyLjUgNC40IDIuMyA3LjQtLjIgMi43IDIuMSAzLjUgNi40IDYgNy45IDE1LjkgMTUuMyAzMC41IDIyLjIgNDQgLjcgMS4zIDIuMyAxLjUgMy4zIC41IDExLjItMTIgMjQuNi0yNi4yIDQwLjUtNDIuNiAxLjMtMS40IDEuNC0zLjUgLjEtNC45LTgtOC4yLTE2LjUtMTYuOS0yNS42LTI2LjEtMS00LjctMS03LjMtMy42LTgtMy0uOC02LjYtMS02LjMtNC42IC4zLTMuMyAxLjQtOC4xLTIuOC04LjItNC41LS4xLTEzLjIgMS4xLTI1LjYgMTAtMTIuMyA4LjktMTYuNCAxNi44LTE3LjcgMjEuMS0xLjQgNC4yIDMuNiA0LjYgNi44IDUuNHpNNjIwLjIgNDA2LjdMNDcxLjQgMTk4LjhjLTEzLjItMTguNS0yNi42LTIzLjQtNTYuNC0zOS4xLTExLjItNS45LTE0LjItMTAuOS0zMC41LTI4LjktMS0xLjEtMi45LS45LTMuNiAuNS00Ni4zIDg4LjgtNDcuMSA4Mi44LTQ5IDk0LjgtMS43IDEwLjctMS4zIDIwIC4zIDI5LjggMS45IDEyIDYuNiAyMy41IDEzLjcgMzMuNEw0OTQuOCA0OTcuMmM3LjYgMTAuNiAyMC4yIDE2LjIgMzMuMSAxNC43IDQwLjMtNC45IDc4LTMyIDk1LjctNjguNiA1LjQtMTEuOSA0LjMtMjUuOS0zLjQtMzYuNnoiXX0sbHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbHVzLWciLGljb246WzY0MCw1MTIsW10sImYwZDUiLCJNMzg2LjMgMjI4LjVjMS44IDkuNyAzLjEgMTkuNCAzLjEgMzIgMCAxMDkuOC03My42IDE4Ny41LTE4NC40IDE4Ny41LTEwNi4xIDAtMTkyLTg1LjktMTkyLTE5MlM5OC45IDY0IDIwNSA2NGM1MS45IDAgOTUuMSAxOC45IDEyOC42IDUwLjNsLTUyLjEgNTBjLTE0LjEtMTMuNi0zOS0yOS42LTc2LjUtMjkuNi02NS41IDAtMTE4LjkgNTQuMi0xMTguOSAxMjEuM1MxMzkuNSAzNzcuMyAyMDUgMzc3LjNjNzYgMCAxMDQuNS01NC43IDEwOS04Mi44bC0xMDkgMCAwLTY2IDE4MS4zIDAgMCAwem0xODUuNCA2LjRsMC01NS43LTU2IDAgMCA1NS43LTU1LjcgMCAwIDU2IDU1LjcgMCAwIDU1LjcgNTYgMCAwLTU1LjcgNTUuNyAwIDAtNTYtNTUuNyAweiJdfSxjenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjExMyIsIk0yMDIuMSAzMjguN2MwIDIwLjktMTAuOSA1NS4xLTM2LjcgNTUuMXMtMzYuNy0zNC4yLTM2LjctNTUuMSAxMC45LTU1LjEgMzYuNy01NS4xIDM2LjcgMzQuMiAzNi43IDU1LjF6TTQ5NiAyNzguMmMwIDMxLjktMy4yIDY1LjctMTcuNSA5NS0zNy45IDc2LjYtMTQyLjEgNzQuOC0yMTYuNyA3NC44LTc1LjggMC0xODYuMiAyLjctMjI1LjYtNzQuOC0xNC42LTI5LTIwLjItNjMuMS0yMC4yLTk1IDAtNDEuOSAxMy45LTgxLjUgNDEuNS0xMTMuNi01LjItMTUuOC03LjctMzIuNC03LjctNDguOCAwLTIxLjUgNC45LTMyLjMgMTQuNi01MS44IDQ1LjMgMCA3NC4zIDkgMTA4LjggMzYgMjktNi45IDU4LjgtMTAgODguNy0xMCAyNyAwIDU0LjIgMi45IDgwLjQgOS4yIDM0LTI2LjcgNjMtMzUuMiAxMDcuOC0zNS4yIDkuOCAxOS41IDE0LjYgMzAuMyAxNC42IDUxLjggMCAxNi40LTIuNiAzMi43LTcuNyA0OC4yIDI3LjUgMzIuNCAzOSA3Mi4zIDM5IDExNC4yem0tNjQuMyA1MC41YzAtNDMuOS0yNi43LTgyLjYtNzMuNS04Mi42LTE4LjkgMC0zNyAzLjQtNTYgNi0xNC45IDIuMy0yOS44IDMuMi00NS4xIDMuMi0xNS4yIDAtMzAuMS0uOS00NS4xLTMuMi0xOC43LTIuNi0zNy02LTU2LTYtNDYuOCAwLTczLjUgMzguNy03My41IDgyLjYgMCA4Ny44IDgwLjQgMTAxLjMgMTUwLjQgMTAxLjNsNDguMiAwYzcwLjMgMCAxNTAuNi0xMy40IDE1MC42LTEwMS4zem0tODIuNi01NS4xYy0yNS44IDAtMzYuNyAzNC4yLTM2LjcgNTUuMXMxMC45IDU1LjEgMzYuNyA1NS4xIDM2LjctMzQuMiAzNi43LTU1LjEtMTAuOS01NS4xLTM2LjctNTUuMXoiXX0sZHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdldC1wb2NrZXQiLGljb246WzQ0OCw1MTIsW10sImYyNjUiLCJNNDA3LjYgNjRsLTM2NyAwQzE4LjUgNjQgMCA4Mi41IDAgMTA0LjZMMCAyMzkuOEMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NCAzNDguMiA0NjQgNDQ4IDM2NC41IDQ0OCAyMzkuOGwwLTEzNS4yQzQ0OCA4Mi4yIDQzMC4zIDY0IDQwNy42IDY0em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMC0xMTMuNy0xMDguOS0xMTQuOS0xMDUuMS0xMTQuOS0xMjMuMiAwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zczMwLjcgMTMuOCAzMC43IDMwLjdjMCAxNy44LTIuOSAxNS43LTExNC44IDEyMy4yeiJdfSx1enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xpZGUiLGljb246WzQ0OCw1MTIsW10sImYyYTUiLCJNMjUyLjggMTQ4LjZjMCA4LjgtMS42IDE3LjctMy40IDI2LjQtNS44IDI3LjgtMTEuNiA1NS44LTE3LjMgODMuNi0xLjQgNi4zLTguMyA0LjktMTMuNyA0LjktMjMuOCAwLTMwLjUtMjYtMzAuNS00NS41IDAtMjkuMyAxMS4yLTY4LjEgMzguNS04My4xIDQuMy0yLjUgOS4yLTQuMiAxNC4xLTQuMiAxMS40IDAgMTIuMyA4LjMgMTIuMyAxNy45ek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODQgMjY3YzAtNS4xLTIwLjgtMzcuNy0yNS41LTM5LjUtMi4yLS45LTcuMi0yLjMtOS42LTIuMy0yMy4xIDAtMzguNyAxMC41LTU4LjIgMjEuNWwtLjUtLjVjNC4zLTI5LjQgMTQuNi01Ny4yIDE0LjYtODcuNCAwLTQ0LjYtMjMuOC02Mi43LTY3LjUtNjIuNy03MS43IDAtMTA4IDcwLjgtMTA4IDEyMy41IDAgNTQuNyAzMiA4NSA4Ni4zIDg1IDcuNSAwIDYuOS0uNiA2LjkgMi4zLTEwLjUgODAuMy01Ni41IDgyLjktNTYuNSA1OC45IDAtMjQuNCAyOC0zNi41IDI4LjMtMzgtLjItNy42LTI5LjMtMTcuMi0zNi43LTE3LjItMjEuMSAwLTMyLjcgMzMtMzIuNyA1MC42IDAgMzIuMyAyMC40IDU0LjcgNTMuMyA1NC43IDQ4LjIgMCA4My40LTQ5LjcgOTQuMy05MS43IDkuNC0zNy43IDctMzkuNCAxMi4zLTQyLjEgMjAtMTAuMSAzNS44LTE2LjggNTguNC0xNi44IDExLjEgMCAxOSAyLjMgMzYuNyA1LjIgMS44IC4xIDQuMS0xLjcgNC4xLTMuNXoiXX0scHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdHkiLGljb246WzUxMiw1MTIsW10sImYzN2EiLCJNODYuNSA2Ny4yYzk1LjQtODkuMiAyNDYuMS05MS4yIDM0My4xIDMuOCAxNC4zIDE0LjEtNi40IDM3LjEtMjIuNCAyMS41LTg0LjgtODIuNC0yMTUuOC04MC4zLTI5OC45LTMuMi0xNi4zIDE1LjEtMzYuNS04LjMtMjEuOC0yMi4xem05OC45IDQxOC42YzE5LjMgNS43IDI5LjMtMjMuNiA3LjktMzAtMTEyLjItMzMuOS0xNzUuOC0xNDkuNy0xNDcuNS0yNjEgNS0xOS42LTI0LjktMjguMS0zMC4yLTcuMS0zMi4xIDEyNy40IDQxLjEgMjU5LjggMTY5LjggMjk4LjF6bTE0OC4xLTJjMTIxLjktNDAuMiAxOTIuOS0xNjYuOSAxNjQuNC0yOTEtNC41LTE5LjctMzQuOS0xMy44LTMwIDcuOSAyNC4yIDEwNy43LTM3LjEgMjE3LjktMTQzLjIgMjUzLjQtMjEuMiA3LTEwLjQgMzYgOC44IDI5Ljd6bS02Mi45LTc5bC4yLTcxLjhjMC04LjItNi42LTE0LjgtMTQuOC0xNC44cy0xNC44IDYuNy0xNC44IDE0LjhsLS4yIDcxLjhjMCA4LjIgNi42IDE0LjggMTQuOCAxNC44czE0LjgtNi42IDE0LjgtMTQuOHptNzEtMjY5YzIuMSA5MC45IDQuNyAxMzEuOS04NS41IDEzMi41LTkyLjUtLjctODYuOS00NC4zLTg1LjUtMTMyLjUgMC0yMS44LTMyLjUtMTkuNi0zMi41IDBsMCA3MS42YzAgNjkuMyA2MC43IDkwLjkgMTE4IDkwLjEgNTcuMyAuOCAxMTgtMjAuOCAxMTgtOTAuMWwwLTcxLjZjMC0xOS42LTMyLjUtMjEuOC0zMi41IDB6Il19LGh6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMmRlIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ4MCAwYTIyNCAyMjQgMCAxIDAgLTQ0OCAwIDIyNCAyMjQgMCAxIDAgNDQ4IDB6TTE2MC45IDEyNC42bDg2LjkgMzcuMS0zNy4xIDg2LjktODYuOS0zNy4xIDM3LjEtODYuOXptMTEwIDE2OS4xbDQ2LjYgOTQtMTQuNiAwLTUwLTEwMC00OC45IDEwMC0xNCAwIDUxLjEtMTA2LjktMjIuMy05LjQgNi0xNCA2OC42IDI5LjEtNiAxNC4zLTE2LjUtNy4xek0yNTkuMSAxNzcuNGw2OC42IDI5LjQtMjkuNCA2OC4zLTY4LjMtMjkuMSAyOS4xLTY4LjZ6bTgwLjMgNDIuOWw1NC42IDIzLjEtMjMuNCA1NC4zLTU0LjMtMjMuMSAyMy4xLTU0LjN6Il19LGZ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWdhcG9ydCIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMyIsIk0yMjIuNSAyMDkuNmwwIDY2LjIgMzMuNSAzMy41IDMzLjMtMzMuMyAwLTY2LjQtMzMuNC0zMy40LTMzLjQgMzMuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MDEuMSA0MjIuNGwtMjYuMSAxOS4yLTI2LTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy40IDMzLjQgMCA2NS41LTI2LjIgMTkuMi0yNi4xLTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy41IDMzLjQgMCA2NS41LTI2LjEgMTkuMi0yNi4xLTE5LjIgMC04NyA1OS41LTU5LjUgMC04Ny45IDU5LjUtNTkuNSAwLTc1LjYgMjYuMS0xOS4yIDI2LjEgMTkuMiAwIDc1LjYgNTkuNSA1OS41IDAgODcuNiA1OS43IDU5LjcgMCA4Ny4xLS4xIDB6Il19LG16dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZWV0Y29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg2YSIsIk0yMzUuNCA5LjNDMjQ2LjUtMi41IDI2NS4xLTMuMiAyNzcgNy45czEyLjUgMjkuOCAxLjQgNDEuNmwtNDMgNDZjMjEuNSAzLjMgNDIuMSAxMS44IDU5LjEgMjUuNmw3NC42IDYwLjNjMTIuNiAxMC4yIDE0LjYgMjguOCA0LjQgNDEuNHMtMjguNyAxNC42LTQxLjQgNC40bC03NC42LTYwLjNjLTI2LjItMjEuMS03MS45LTE4LjItOTQuNSA1LjlMODEgMjYxYy0yMS41IDIzLTE5LjEgNjAgNS42IDg0LjJsOTEuMiA4OS40YzI0LjkgMjQgNjUuNiAyNCA5MC4xLS40bDUxLjEtNTFjMTEuNS0xMS41IDMwLjEtMTEuNSA0MS42IC4xczExLjQgMzAuMi0uMSA0MS43bC01MS4xIDUxYy00Ny4xIDQ3LjEtMTI0IDQ3LjctMTcxLjkgMS42bC05Mi05MC4yQy0xLjQgMzQxLjMtNiAyNjcuOSAzOCAyMjAuN0wyMzUuNCA5LjN6TTQxMS43IDI3My4yYzE2LjIgMCAyOS40IDEzLjIgMjkuNCAyOS41cy0xMy4yIDI5LjUtMjkuNCAyOS41bC0yMTYuOSAwYy0xNi4yIDAtMjkuNC0xMy4yLTI5LjQtMjkuNXMxMy4yLTI5LjUgMjkuNC0yOS41bDIxNi45IDB6Il19LGd6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZGIiLGljb246WzU3Niw1MTIsW10sImY4Y2EiLCJNMTcuNCAxNjAuNGwtMTAuNCAxOTEuNiA0My45IDAgNS42LTc5LjggMjcuOSA3OS44IDQ0LjcgMCAyNS41LTc3LjQgNC44IDc3LjQgNDUuNSAwLTEyLjgtMTkxLjYtNDUuNSAwLTQwLjcgMTE3LjMtNDIuMy0xMTcuMy00Ni4zIDB6bTI4MSAwbC00Ny45IDAgMCAxOTEuNiA0Ny45IDBzOTUgLjggOTQuMi05NS44Yy0uOC05NC4yLTk0LjItOTUuOC05NC4yLTk1LjhsMCAwem0tMS4yIDE0Ni41bDAtMTAyLjFzNDYgNC4zIDQ2LjggNTAuNi00Ni44IDUxLjUtNDYuOCA1MS41bDAgMHptMjM4LjMtNzQuMmM3LjItMTEuNCAxMC0yNSA4LTM4LjMtNS4zLTM1LjgtNTUuMS0zNC4zLTU1LjEtMzQuM2wtNTEuOSAwIDAgMTkxLjYgNDUuNSAwczg3IDQuOCA4Ny02My44YzAtNDMuMS0zMy41LTU1LjEtMzMuNS01NS4xbDAgMHptLTUxLjktMzEuOXMxMy42LTEuNiAxNiA5LjZjMS40IDYuNy00IDEyLTQgMTJsLTEyIDAgMC0yMS42em0tLjEgMTA5LjVsLjEtMjQuOSAwLTE4LjIgLjEgMHM0MS42LTQuNyA0MS4yIDIyLjRjLS4zIDI1LjctNDEuMyAyMC43LTQxLjMgMjAuN2wwIDB6Il19LGJ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlNCIsaWNvbjpbNTEyLDUxMixbXSwiZjNkNyIsIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhjMjAuOSAwIDQxLjMgMi42IDYwLjcgNy41TDUwLjMgMzkyIDI1NiAzOTIgMjU2IDUwNHptMC0xNDMuNmwwLTIxMy42LTE0OS40IDIxMy42IDE0OS40IDB6TTM1MiAzOTJsMCA5Mi43YzQ1LjctMTkuMiA4NC41LTUxLjcgMTExLjQtOTIuN0wzNTIgMzkyem01Ny40LTEzOC4ybC0yMS4yIDguNCAyMS4yIDguMyAwLTE2Ljd6bS0yMC4zIDU0LjVjLTYuNyAwLTggNi4zLTggMTIuOWwwIDcuNyAxNi4yIDAgMC0xMGMwLTUuOS0yLjMtMTAuNi04LjItMTAuNnpNNTA0IDI1NmMwIDM3LjMtOC4yIDcyLjctMjMgMTA0LjRsLTEyOSAwIDAtMzMzLjFDNDQxLjMgNjQuOCA1MDQgMTUzLjEgNTA0IDI1NnpNMzY4LjQgMTQzLjZsNjguMiAwIDAtNDcuNi0xMy45IDAgMCAzMi42LTEzLjkgMCAwLTI5LjYtMTMuOSAwIDAgMjkuNi0xMi43IDAgMC0zMi42LTEzLjkgMCAwIDQ3LjYgLjEgMHptNjguMSAxODUuM2wtMjYuNSAwIDAtMTFjMC0xNS40LTUuNi0yNS4yLTIwLjktMjUuMi0xNS40IDAtMjAuNyAxMC42LTIwLjcgMjUuOWwwIDI1LjMgNjguMiAwIDAtMTUtLjEgMHptMC0xMDNsLTY4LjIgMjkuNyAwIDEyLjQgNjguMiAyOS41IDAtMTYuNi0xNC40LTUuNyAwLTI2LjUgMTQuNC01LjkgMC0xNi45em0tNC44LTY4LjVsLTM1LjYgMCAwIDI2LjYgMTMuOSAwIDAtMTIuMiAxMSAwYzguNiAxNS44IDEuMyAzNS4zLTE4LjYgMzUuMy0yMi41IDAtMjguMy0yNS4zLTE1LjUtMzcuN2wtMTEuNi0xMC42Yy0xNi4yIDE3LjUtMTIuMiA2My45IDI3LjEgNjMuOSAzNCAwIDQ0LjctMzUuOSAyOS4zLTY1LjN6Il19LHZ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGUtcmVkLXlldGkiLGljb246WzUxMiw1MTIsW10sImY2OWQiLCJNNDg4LjcgMjQxLjdsMjAuNyA3LjFjLTkuNi0yMy45LTIzLjktMzctMzEuNy00NC44bDcuMS0xOC4yYy4yIDAgMTIuMy0yNy44LTIuNS0zMC43LS42LTExLjMtNi42LTI3LTE4LjQtMjctNy42LTEwLjYtMTcuNy0xMi4zLTMwLjctNS45LTkuMSA0LjQtMTcuNiAxMC0yNS4zIDE2LjUtNS4zLTYuNC0zIC40LTMtMjkuOC0zNy4xLTI0LjMtNDUuNC0xMS43LTc0LjggM2wuNSAuNWMtMjItNy43LTQ1LjEtMTIuMi02OC40LTEzLjMtNS41LTguNy0xOC42LTE5LjEtMjUuMS0yNS4xbDI0LjggNy4xYy01LjUtNS41LTI2LjgtMTIuOS0zNC4yLTE1LjIgMTguMi00LjEgMjkuOC0yMC44IDQyLjUtMzMtMzQuOS0xMC4xLTY3LjktNS45LTk3LjkgMTEuOGwxMi00NC4yLTEuOC0uNWMtMzEuNiAyNC4yLTMzIDQxLjktMzMuNyA0NS41LS45LTIuNC02LjMtMTkuNi0xNS4yLTI3LTMuMyA4LjEtMy41IDE3LjEtLjUgMjUuMyAzIDguNCA1LjkgMTQuOCA4LjQgMTguOS0xNi0zLjMtMjguMy00LjktNDkuMiAwbC0zLjcgMCAzMyAxNC4zYy0yMC4yIDE4LjktMzYuMSA0MS45LTQ2LjcgNjcuNGwtMS43IDguNCAxLjcgMS43IDcuNi00LjdjLTMuMyAxMS42LTUuMyAxOS40LTYuNiAyNS44LTEwLjkgMTIuMi0yMC4yIDI1LjgtMjcuOCA0MC4zLTE1IDEtMzEuOCAxMC44LTQwLjMgMTQuM2wzIDMuNCAyOC44IDFjLS41IDEtLjcgMi4yLTEuMiAzLjItNy4zIDYuNC0zOS44IDM3LjctMzMgODAuN2wyMC4yLTIyLjRjLjUgMS43IC43IDMuNCAxLjIgNS4yIDAgMjUuNSAuNCA4OS42IDY0LjkgMTUwLjUgNDMuNiA0MCA5NiA2MC4yIDE1Ny41IDYwLjIgMTIxLjcgMCAyMjMtODcuMyAyMjMtMjExLjUgNi44LTkuNy0xLjIgMyAxNi43LTI1LjFsMTMgMTQuMyAyLjUtLjVjLTEuOC0xMS43LTQuOC0yMy4xLTguOS0zNC4yLTEuNS00LjgtMy44LTkuMy02LjgtMTMuM2wwIDB6TTM5OC41IDExMS4ybC0uNSAyMS45YzUuNSAxOC4xIDE2LjkgMTcuMiAyMi40IDE3LjJsLTMuNC00LjcgMjIuNC01LjRjLTkgLjUtMTggLjUtMjcgMCAxMi44LTIuMSAzMy4zLTI5IDQzLTExLjMgMy40IDcuNiA2LjQgMTcuMiA5LjMgMjcuOGwxLjctNS45Yy0xLjMtNS0xLjgtMTAuMS0xLjctMTUuMiA1LjQgLjUgOC44IDMuNCA5LjMgMTAuMSAuNSA2LjQgMS43IDE0LjggMy40IDI1LjNsNC43LTExLjNjNC42IDAgNC41LTMuNi0yLjUgMjAuNy0yMC45LTguNy0zNS4xLTguNC00Ni41LTguNGwxOC4yLTE2Yy0yNS4zIDguMi0zMyAxMC44LTU0LjggMjAuOS0xLjEtNS40LTUtMTMuNS0xNi0xOS45LTMuMiAzLjgtMi44IC45LS43IDE0LjhsLTIuNSAwYy0xLjItOC4yLTQuMS0xNi04LjQtMjMuMWw0LjItMy40YzguNC03LjEgMTEuOC0xNC4zIDEwLjYtMjEuOS0uNS02LjQtNS40LTEzLjUtMTMuNS0yMC43IDUuNi0zLjQgMTUuMi0uNCAyOC4zIDguNXptLTM5LjYtMTAuMWMyLjcgMS45IDExLjQgNS40IDE4LjkgMTcuMiA0LjIgOC40IDQgOS44IDMuNCAxMS4xLS41IDIuNC0uNSA0LjMtMyA3LjEtMS43IDIuNS01LjQgNC43LTExLjggNy42LTcuNi0xMy0xNi41LTIzLjYtMjcuOC0zMS4ybDIwLjMtMTEuOHptLTI2Ny40IDQybDEuMi0xLjdjMS4yLTIuOSA0LjItNy42IDkuMy0xNS4ybDIuNS0zLjQtMTMgMTIuMyA1LjQtNC43LTEwLjEgOS4zLTQuMiAxLjJjMTIuMy0yNC4xIDIzLjEtNDEuMyAzMi41LTUwLjIgOS4zLTkuMyAxNi0xNiAyMC4yLTE5LjRsLTYuNCAxLjJjLTExLjMtNC4yLTE5LjQtNy4xLTI0LjgtOC40IDIuNS0uNSAzLjctLjUgMy4yLS41IDEwLjMgMCAxNy41IC41IDIwLjkgMS4yIDUuMiAxLjcgMTAuNiAyLjUgMTYgMi41bC41LTEuNy04LjQtMzUuOCAxMy41IDI5YzIuOC00LjQgNC44LTkuMiA1LjktMTQuMyAxLjctNi40IDUuNC0xMyAxMC4xLTE5LjRzNy42LTEwLjYgOS4zLTExLjNjLTIuNiA4LjMtNC43IDE2LjgtNi40IDI1LjNsLTEuNyA3LjEtLjUgNC43IDIuNSAyLjVjMjEuOS0xMy41IDQ1LjUtMTkuNCA3MS4zLTE4LjlsMjEuMSAuNWMtMTEuOCAxMy41LTI3LjggMjEuOS00OC41IDI0LjgtNy43IDEuNC0xNS42IDIuNC0yMy40IDIuOWwtLjItLjUtMi41LTEuMmMtNC44LTEtOS43LS4zLTE0IDItMi41LS4yLTQuOS0uNS03LjEtLjdsLTIuNSAxLjcgLjUgMS4yYzIgLjIgMy45IC41IDYuMiAuN2wtMiAzLjQgMy40LS41LTEwLjYgMTEuM2MtNC4yIDMtNS40IDYuNC00LjIgOS4zbDUuNC0zLjQgMS4yIDBjNi4xLTguMiAxNS4yLTEzLjYgMjUuMy0xNS4ybDAtM2M2LjQgLjUgMTMgMSAxOS40IDEuMiA2LjQgMCA4LjQgLjUgNS40IDEuMiA3LjIgNCAxNC4xIDguNiAyMC43IDEzLjUgMTMuNSAxMC4xIDIzLjYgMjEuOSAzMCAzNS40IDguOCAxOC4yIDEzLjUgMzcuMSAxMy41IDU2LjYgMCA5LjUtMSAxOS0zIDI4LjMtMy41IDE1LjktOC45IDMxLjMtMTYgNDZsMi41IC41YzE4LjItMTkuNyA0MS45LTE2IDQ5LjItMTZsLTYuNCA1LjkgMjIuNCAxNy43LTEuNyAzMC43Yy01LjQtMTIuMy0xNi41LTIxLjEtMzMtMjcuOCAxNi41IDE0LjggMjMuNiAyMS4xIDIxLjkgMjAuMi00LjgtMi44LTMuNS0xLjktMTAuOC0zLjcgNC4xIDQuMSAxNy41IDE4LjggMTguMiAyMC43bC4yIC4yLS4yIC4yYzAgMS44IDEuNi0xLjItMTQgMjIuOS03NS4yLTE1LjMtMTA2LjMtNDIuNy0xNDEuMi02My4ybDExLjggMS4yYy0xMS44LTE4LjUtMTUuNi0xNy43LTM4LjQtMjYuMWwxMC42LTguNGMtOC44LTMtMTguMi0zLTI4LjMgLjVsNy42LTEwLjYtMS4yLTEuN2MtMTQuOSA0LjMtMTkuOCA5LjItMjIuNiAxMS4zLTEuMS01LjUtMi44LTEyLjQtMTIuMy0yOC44bC0xLjIgMjctMTMuMi01YzEuNS0yNS4yIDUuNC01MC41IDEzLjItNzQuNnpNMzY4IDQ3My4xYy00OS45IDI1LTU2LjEgMjIuNC01OSAyMy45LTI5LjgtMTEuOC01MC45LTMxLjctNjMuNS01OC44bDMwIDE2LjVjLTkuOC05LjMtMTguMy0xNi41LTM4LjQtNDQuM2wxMS44IDIzLjEtMTcuNy03LjZjMTQuMiAyMS4xIDIzLjUgNTEuNyA2Ni42IDczLjUtMTIwLjggMjQuMi0xOTktNzIuMS0yMDAuOS03NC4zIDExLjEgOS4yIDIyLjkgMTcuNSAzNS40IDI0LjggMy40IDEuNyA3LjEgMi41IDEwLjEgMS4ybC0xNi0yMC43YzkuMiA0LjIgOS41IDQuNSA2OS4xIDI5LTQyLjUtMjAuNy03My44LTQwLjgtOTMuMi02MC4yLS41IDYuNC0xLjIgMTAuMS0xLjIgMTAuMSA4LjcgNy4zIDE1LjggMTYuNCAyMC43IDI2LjYtMzktMTguOS01Ny42LTQ3LjYtNzEuMy04Mi42IDQ5LjkgNTUuMSAxMTguOSAzNy41IDEyMC41IDM3LjEgMzQuOCAxNi40IDY5LjkgMjMuNiAxMTMuOSAxMC42IDMuMyAwIDIwLjMgMTcgMjUuMyAzOS4xbDQuMi0zLTIuNS0yMy42YzkgOSAyNC45IDIyLjYgMzQuNCAxMy0xNS42LTUuMy0yMy41LTkuNS0yOS41LTMxLjcgNC42IDQuMiA3LjYgOSAyNy44IDE1bDEuMi0xLjItMTAuNS0xNC4yYzExLjctNC44LTMuNSAxIDMyLTEwLjggNC4zIDM0LjMgOSA0OS4yIC43IDg5LjV6TTQ4My4zIDI1OC43bC0yLjUgLjUgMyA5LjNjLTMuNSA1LjktMjMuNyA0NC4zLTcxLjYgNzkuNy0zOS41IDI5LjgtNzYuNiAzOS4xLTgwLjkgNDAuM2wtNy42LTcuMS0xLjIgMyAxNC4zIDE2LTcuMS00LjcgMy40IDQuMi0xLjIgMC0yMS45LTEzLjUgOS4zIDI2LjYtMTktMjcuOS0xLjIgMi41IDcuNiAyOWMtNi4xLTguMi0yMS0zMi42LTU2LjgtMzkuNmwzMi41IDIxLjJjLTMxLjIgNC43LTYzIDIuNS05My4yLTYuNC00LjItMS4yLTguOS0yLjUtMTMuNS00LjJsMS4yLTMtNDQuOC0yMi40IDI2LjEgMjIuNGMtNTcuNyA5LjEtMTEzLTI1LjQtMTI2LjQtODMuNEwyOS4zIDI4NC44IDcgMzA3LjFjMTkuNS01Ny41IDI1LjYtNTcuOSA1MS40LTcwLjEtOS4xLTUuMy0xLjYtMy4zLTM4LjQtOS4zIDE1LjgtNS44IDMzLTE1LjQgNzMgNS4yIDEuMi0uNyAyLjQtMS4zIDMuNy0xLjcgLjYtMy4yIC40LS44IDEtMTEuOCAzLjkgMTAgMy42IDguNyAzIDkuM2wxLjcgLjVjMTIuNy02LjUgOC45LTQuNSAxNy04LjlsLTUuNCAxMy41IDIyLjMtNS44LTguNCA4LjQgMi41IDIuNWM0LjUtMS44IDMwLjMgMy40IDQwLjggMTZsLTIzLjYtMi41YzM5LjQgMjMgNTEuNSA1NCA1NS44IDY5LjZsMS43LTEuMmMtMi44LTIyLjMtMTIuNC0zMy45LTE2LTQwLjEgNC4yIDUgMzkuMiAzNC42IDExMC40IDQ2LTExLjMtLjUtMjMuMSA1LjQtMzQuOSAxOC45bDQ2LjctMjAuMi05LjMgMjEuOWM3LjYtMTAuMSAxNC44LTIzLjYgMjEuMi0zOS42bDAtLjUgMS4yLTMtMS4yIDE2YzEzLjUtNDEuOCAyNS4zLTc4LjUgMzUuNC0xMDkuN2wxMy41LTI3LjggMC0yLTUuNC00LjIgMTAuMSAwIDUuOSA0LjIgMi41LTEuMi0zLjQtMTYgMTIuMyAxOC45IDQxLjgtMjAuMi0xNC44IDEzIC41IDIuOSAxNy43LS41YzExLjEgLjQgMjIuMSAxLjggMzMgNC4ybC0yMy42IDIuNS0xLjIgMyAyNi42IDIzLjFjOS45IDkuOSAxOC45IDIwLjYgMjcgMzItMTEuMi0zLjMtMTAuMy0zLjQtMjEuMi0zLjRsMTIuMyAzMi41LTguOS0xMi44em0tNi4xLTcxLjNsLTMuOSAxMy0xNC4zLTExLjggMTguMi0xLjJ6bS0yNTQuOCA3LjFjMS43IDEwLjYgNC43IDE3LjcgOC44IDIxLjktOS4zIDYuNi0yNy41IDEzLjktNDYuNSAxNmwuNSAxLjJjOC4zIDEuMyAxNi45IC40IDI0LjgtMi41bC03LjEgMTNjNC4yLTEuNyAxMC4xLTcuMSAxNy43LTE0LjggMTEuOS01LjUgMTIuNy01LjEgMjAuMi0xNi0xMi43LTYuNC0xNS43LTEzLjctMTguNC0xOC44em0zLjctMTAyLjNjLTYuNC0zLjQtMTAuNiAzLTEyLjMgMTguOXMyLjUgMjkuNSAxMS44IDM5LjYgMTguMiAxMC42IDI2LjEgMyAzLjQtMjMuNi0xMS4zLTQ3LjdjLTMuNS01LjctOC40LTEwLjUtMTQuMy0xMy44bDAgMHptLTQuNyA0Ni4zYzUuNCAyLjIgMTAuNSAxLjkgMTIuMy0xMC42bDAtNC43LTEuMiAuNWMtNC4zLTMuMS0yLjUtNC41LTEuNy02LjJsLjUtLjVjLS45LTEuMi01LTguMS0xMi41IDQuNy0uNS0xMy41IC41LTIxLjkgMy0yNC44IDEuMi0yLjUgNC43LTEuMiAxMS4zIDQuMiA2LjQgNS40IDExLjMgMTYgMTUuMiAzMi41IDYuNSAyOC0xOS44IDI2LjItMjYuOSA0Ljl6bS00NS01LjVjMS42IC4zIDkuMy0xLjEgOS4zLTE0LjhsLS41IDBjLTUuNC0xLjEtMi4yLTUuNS0uNy01LjktMS43LTMtMy40LTQuMi01LjQtNC43LTguMSAwLTExLjYgMTIuNy04LjEgMjEuMiAuNSAxLjEgMS4zIDIgMi4yIDIuOHMyIDEuMiAzLjIgMS40bDAgMHptNDAuMS01MC4xbC0yLjUgLjUgLjUgM2M5LjEtLjUgMTguMSAxLjUgMjYuMSA1LjktMi41LTUuNS0xMC0xNC4zLTI4LjMtMTQuM2wuNSAyLjUgMy43IDIuNHptLTcxLjggNDkuNGMyMS43IDE2LjggMTYuNSAyMS40IDQ2LjUgMjMuNmwtMi45LTQuN2M4LjQtNy4yIDEzLjctMTcuMyAxNC44LTI4LjMgMS43LTE2LTEuMi0yOS41LTguOC00MS4zbDEzLTcuNmMwLS4zIDAtLjYtLjEtLjlzLS4yLS42LS40LS44Yy0yLjItLjktNC42LTEuMi03LS45cy00LjYgMS4yLTYuNSAyLjZjLTEyLjcgNi43LTI4IDIwLjktMjkgMjIuNC0xLjcgMS43LTMuNCA1LjktNS40IDEzLjUtMS45IDcuNy0yLjkgMTUuNi0yLjkgMjMuNi00LjctOC0xMC41LTYuNC0xOS45LTUuOWw3LjEgNy42Yy0xNi41IDAtMjMuMyAxNS40LTIzLjYgMTYgNi44IDAgNC42LTcuNiAzMC0xMi4zLTQuMy02LjMtMy4zLTUtNC45LTYuNnptMTguNy0xOC43YzEuMi03LjYgMy40LTEzIDYuNC0xNy4yIDUuNC02LjQgMTAuNi0xMC4xIDE2LTExLjggNC4yLTEuNyA3LjEgMS4yIDEwLjEgOS4zIDIuNSA4LjIgMy41IDE2LjggMyAyNS4zLS41IDkuMy0zLjQgMTcuMi04LjQgMjMuMS0yLjkgMy40LTUuNCA1LjktNi40IDcuNi0zLjggLjQtNy42IC4yLTExLjMtLjVsLTcuMS0zLjQtNS40LTYuNGMuOC0xMCAxLjMtMTguOCAzLjEtMjZ6bTQyIDU2LjFjLTM0LjggMTQuNC0zNC43IDE0LTM2LjEgMTQuMy0yMC44IDQuNy0xOS0yNC40LTE4LjktMjQuOGw1LjktMS4yLS41LTIuNWMtMjAuMi0yLjYtMzEgNC4yLTMyLjUgNC45IC41IC41IDMgMy40IDUuOSA5LjMgNC4yLTYuNCA4LjgtMTAuMSAxNS4yLTEwLjYtMS43IDExLjItMS4yIDIyLjcgMS43IDMzLjcgLjEgLjUgMi42IDE3LjQgMjcuNSAyNC4xIDExLjMgMyAyNyAxLjIgNDguOS01LjRsLTkuMiAuNWMtNC4yLTE0LjgtNi40LTI0LjgtNS45LTI5LjUgMTEuMy04LjggMjEuOS0xMS4zIDMwLjctNy42bDIuNSAwLTExLjgtNy42LTcuMSAuNWMtNS45IDEuMi0xMi4zIDQuMi0xOS40IDguNGwzLjEtNi41eiJdfSx4enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamlyYSIsaWNvbjpbNTEyLDUxMixbXSwiZjdiMSIsIk00OTguNSAyNDEuN2MtNzIuOS03Mi43LTE2OS40LTE2OS45LTI0MS41LTI0MS43LTE2NS41IDE2NC45LTI0Mi41IDI0MS43LTI0Mi41IDI0MS43LTcuOSA3LjktNy45IDIwLjcgMCAyOC43IDEzMi44IDEzMi4zIDYxLjggNjEuNSAyNDIuNSAyNDEuNiAzNzkuNC0zNzggMTUuNy0xNi43IDI0MS41LTI0MS43IDgtNy45IDgtMjAuNyAwLTI4LjZ6TTI1NyAzMzEuN2wtNzYtNzUuNyA3Ni03NS43IDc2IDc1LjctNzYgNzUuN3oiXX0seXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZGV4IixpY29uOls2NDAsNTEyLFtdLCJmNzk3IiwiTTU4NiAyODQuNWw1My4zLTU5LjktNjIuNCAwLTIxLjcgMjQuOC0yMi41LTI0LjgtMTE4LjcgMCAwLTE2IDU2LjEgMCAwLTQ4LjEtMTUxLjIgMCAwIDc1LjUtLjUgMGMtOS42LTExLTIxLjUtMTQuOC0zNS40LTE0LjgtMjguNCAwLTQ5LjggMTkuNC01Ny4zIDQ0LjktMTgtNTkuNC05Ny40LTU3LjYtMTIxLjktMTRsMC0yNC4yLTU0LjggMCAwLTI2LjIgNjAgMCAwLTQxLjEtMTA5IDAgMCAxODQuNCA0OSAwIDAtNzcuNSA0OC45IDBjLTEuNSA1LjctMi4zIDExLjgtMi4zIDE4LjIgMCA3My4xIDEwMi42IDkxLjQgMTMwLjIgMjMuN2wtNDIgMGMtMTQuNyAyMC45LTQ1LjggOC45LTQ1LjgtMTQuNmw4NS41IDBjMy43IDMwLjUgMjcuNCA1Ni45IDYwLjEgNTYuOSAxNC4xIDAgMjctNi45IDM0LjktMTguNmwuNSAwIDAgMTEuOSAyMTIuMiAwIDIyLjEtMjUgMjIuMyAyNSA2NC40IDAtNTQtNjAuNXpNMTM5LjMgMjY3LjljNi4xLTI2LjMgNDEuNy0yNS42IDQ2LjUgMGwtNDYuNSAwem0xNTMuNCA0OC45Yy0zNC42IDAtMzQtNjIuOCAwLTYyLjggMzIuNiAwIDM0LjUgNjIuOCAwIDYyLjh6bTE2Ny44IDE5LjFsLTk0LjQgMCAwLTE2Ni41IDk1IDAgMCAzMC4yLTU2LjEgMCAwIDMzLjkgNTUuNSAwIDAgMjguMS01Ni4xIDAgMCA0NC43IDU2LjEgMCAwIDI5LjZ6bS00NS45LTM5LjhsMC0yNC40IDU2LjEgMCAwLTQ0IDUwLjcgNTctNTAuNyA1NyAwLTQ1LjYtNTYuMSAwem0xMzguNiAxMC4zbC0yNi4xIDI5LjUtMzguMSAwIDQ1LjYtNTEuMi00NS42LTUxLjIgMzkuNyAwIDI2LjYgMjkuMyAyNS42LTI5LjMgMzguNSAwLTQ1LjQgNTEgNDYgNTEuNC00MC41IDAtMjYuMy0yOS41eiJdfSx3enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXZlcm5vdGUiLGljb246WzM4NCw1MTIsW10sImY4MzkiLCJNMTIxLjEgMTMyLjJjMS42IDIyLjMtMTcuNiAyMS42LTIxLjYgMjEuNi02OC45IDAtNzMuNi0xLTgzLjYgMy4zLS42IC4yLS43IDAtLjQtLjRMMTI0LjEgNDYuNGMuNC0uNCAuNi0uMiAuNCAuNC00LjQgMTAtMy40IDE1LjEtMy40IDg1LjR6bTc5IDMwOGMtMTQuNy0zNy4xIDEzLTc2LjkgNTIuNS03Ni42IDE3LjUgMCAyMi42IDIzLjIgNy45IDMxLjQtNi4yIDMuMy0yNC45IDEuNy0yNS4xIDE5LjIgMCAxNy4xIDE5LjcgMjUgMzEuMiAyNC45IDYgMCAxMS45LTEuMiAxNy41LTMuNXMxMC42LTUuNyAxNC44LTkuOSA3LjYtOS4zIDkuOS0xNC44IDMuNS0xMS41IDMuNS0xNy41bDAtLjFjMC0xMS42LTcuOC00Ny4yLTQ3LjUtNTUuMy03LjctMS41LTY1LTYuMy02OC40LTUwLjUtMy43IDE2LjktMTcuNCA2My41LTQzLjEgNjkuMS04LjcgMS45LTY5LjcgNy42LTExMi45LTM2LjggMCAwLTE4LjYtMTUuMi0yOC4yLTU4LTMuNC0xNS43LTkuMy0zOS43LTExLjEtNjIgMC0xOCAxMS4xLTMwLjQgMjUuMS0zMi4yIDgxIDAgOTAgMi4zIDEwMS03LjggOS44LTkuMiA3LjgtMTUuNSA3LjgtMTAyLjggMS04LjMgNy44LTMwLjggNTMuNC0yNC4xIDYgLjkgMzEuOSA0LjIgMzcuNSAzMC42TDI5MCA3NC44YzIwLjQgMy43IDcwLjkgNyA4MC42IDU3LjkgMjIuNyAxMjEuMSA4LjkgMjM4LjUgNy44IDIzOC41LTE2IDExNC40LTExMS4xIDEwOC45LTExMS4xIDEwOC45LTE5LS4yLTU0LjItOS40LTY3LjMtMzkuOGwwIDB6TTI4MSAyMzUuNGMtMSAxLjktMi4yIDYgLjkgNyAxNC4xIDQuOSAzOS44IDYuOCA0NS45IDUuNSAzLjEtLjIgMy4xLTQuNCAyLjUtNi42LTMuNS0yMS44LTQwLjgtMjYuNS00OS4yLTUuOWwwIDB6Il19LGt6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c2IiLGljb246WzY0MCw1MTIsW10sImYyODciLCJNNjMzLjUgMjU2YzAgMy4xLTEuNyA2LjEtNC41IDcuNUw1MzkuOSAzMTdjLTEuNCAuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03LjhsMC0zNS42LTIzMC43IDBjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOWwyNi43IDAgMC0yNi44YzAtNSAzLjktOC45IDguOS04LjlsODkuMSAwYzUgMCA4LjkgMy45IDguOSA4LjlsMCA4OS4xYzAgNS0zLjkgOC45LTguOSA4LjlsLTg5LjEgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjctMjYuNyAwYy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNWwtMTAwLjMgMGMtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjUtMzkuMy0uMS03MS4zLTMyLjEtNzEuMy03MS40czMyLTcxLjMgNzEuMy03MS4zYzMzLjEgMCA2MSAyMi44IDY5IDUzLjUgMzkuMSAwIDQzLjkgOS41IDc0LjYtNjAuNCA0MC4xLTg5LjEgNTguMS04Mi4xIDEwOC45LTgyLjEgNy41LTIwLjkgMjctMzUuNiA1MC40LTM1LjYgMjkuNSAwIDUzLjUgMjMuOSA1My41IDUzLjVzLTIzLjkgNTMuNS01My41IDUzLjVjLTIzLjQgMC00Mi45LTE0LjgtNTAuNC0zNS42bC0yOS44IDBjLTI5LjEgMC00NC4zIDY3LjQtNjkuNiAxMDYuOWwzMDIuMSAwIDAtMzUuNmMwLTMuMyAxLjctNi4xIDQuNS03LjhzNi40LTEuNCA4LjkgLjNMNjI5IDI0OC44YzIuOCAxLjEgNC41IDQuMSA0LjUgNy4yeiJdfSxTenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5ncnljcmVhdGl2ZSIsaWNvbjpbNjQwLDUxMixbXSwiZjM2ZSIsIk02NDAgMjM4LjJsLTMuMiAyOC4yLTM0LjUgMi4zLTIgMTguMSAzNC41LTIuMy0zLjIgMjguMi0zNC40IDIuMi0yLjMgMjAuMSAzNC40LTIuMi0zIDI2LjEtNjQuNyA0LjEgMTIuNy0xMTMuMi00Ny4zIDExNS40LTMxLjkgMi0yMy44LTExNy44IDMwLjMtMiAxMy42IDc5LjQgMzEuNy04Mi40IDkzLjEtNi4yek00MjYuOCAzNzEuNWwyOC4zLTEuOCAxMi45LTEyMC4xLTI4LjQgMS45LTEyLjggMTIwek0xNjIgMzg4LjFsLTE5LjQtMzYtMy41IDM3LjQtMjguMiAxLjcgMi43LTI5LjFjLTExIDE4LTMyIDM0LjMtNTYuOSAzNS44LTMyLjggMi01OS43LTIwLjktNTYuNC01OC4yIDIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjYgMzIuMSAxMTAuNiA4LjktODUuNi0yMi4zIDEuNCAyLjktMjcuOSA3NS00LjktMyAyOC0yNC4zIDEuNi05LjcgOTEuOS01OCAzLjctNC4zLTE1LjYtMzkuNCAyLjUtOCAxNi4zLTEyNi4yIDcuN3ptLTQ0LjMtNzAuMmwtMjYuNCAxLjdjLTYuNy0xMi40LTE0LjQtMTYuNi0yNi4zLTE1LjgtMTkgMS4yLTMzLjMgMTcuNS0zNC42IDMzLjMtMS40IDE2IDcuMyAzMi41IDI4LjcgMzEuMiAxMi44LS44IDIxLjMtOC42IDI4LjktMTguOWwyNy0xLjcgMi43LTI5Ljh6bTU2LjEtNy43YzEuMi0xMi45LTcuNi0xMy42LTI2LjEtMTIuNEwxNDUgMzI2LjNjMTQuMi0uOSAyNy41LTIuMSAyOC44LTE2LjF6TTE5NC45IDM4MWw1LjgtNjBjLTUgMTMuNS0xNC43IDIxLjEtMjcuOSAyNi42TDE5NC45IDM4MXptMTM1LjQtNDVsLTcuOS0zNy44LTE1LjggMzkuMyAyMy43LTEuNXpNMTYwLjIgMjYxLjRsLTQuMy0xNy41LTM5LjYgMi42LTguMSAxOC4yLTMxLjkgMi4xIDU3LTEyMS45IDIzLjktMS42IDMwLjcgMTAyIDkuOS0xMDQuNyAyNy0xLjggMzcuOCA2My42IDYuNS02Ni42IDI4LjUtMS45LTQgNDEuMmM3LjQtMTMuNSAyMi45LTQ0LjcgNjMuNi00Ny41IDQwLjUtMi44IDUyLjQgMjkuMyA1My40IDMwLjNsMy4zLTMyIDM5LjMtMi43YzEyLjctLjkgMjcuOCAuMyAzNi4zIDkuN2wtNC40LTExLjkgMzIuMi0yLjIgMTIuOSA0My4yIDIzLTQ1LjcgMzEtMi4yLTQzLjYgNzguNC00LjggNDQuMy0yOC40IDEuOSA0LjgtNDQuMy0xNS44LTQzYzEgMjIuMy05LjIgNDAuMS0zMiA0OS42bDI1LjIgMzguOC0zNi40IDIuNC0xOS4yLTM2LjgtNCAzOC4zLTI4LjQgMS45IDMuMy0zMS41Yy02LjcgOS4zLTE5LjcgMzUuNC01OS42IDM4LTI2LjIgMS43LTQ1LjYtMTAuMy01NS40LTM5LjJsLTQgNDAuMy0yNSAxLjYtMzcuNi02My4zLTYuMyA2Ni4yLTU2LjggMy43em0yNzYuNi04Mi4xYzEwLjItLjcgMTcuNS0yLjEgMjEuNi00LjMgNC41LTIuNCA3LTYuNCA3LjYtMTIuMSAuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yeiJdfSxfenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl6dW5pIixpY29uOls1MTIsNTEyLFtdLCJmM2NjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc2IDM1OS45Yy0zMS40IDEwLjYtNTguOCAyNy4zLTgwIDQ4LjJMOTYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMjMuOXpNMjk2IDM1MGMtMTIuOS0yLTI2LjItMy4xLTM5LjgtMy4xLTEzLjggMC0yNy4yIDEuMS00MC4yIDMuMWwwLTIxNGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjE0em0xMjAgNTcuN2MtMjEuMi0yMC44LTQ4LjYtMzcuNC04MC00OEwzMzYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyNzEuN3oiXX0sTXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Iml0Y2gtaW8iLGljb246WzUxMiw1MTIsW10sImY4M2EiLCJNNzEuOSAzNC44QzUwLjIgNDcuNyA3LjQgOTYuOCA3IDEwOS43bDAgMjEuM2MwIDI3LjEgMjUuMyA1MC44IDQ4LjIgNTAuOCAyNy42IDAgNTAuNS0yMi44IDUwLjUtNTAgMCAyNy4xIDIyLjIgNTAgNDkuOCA1MHM0OS0yMi44IDQ5LTUwYzAgMjcuMSAyMy42IDUwIDUxLjIgNTBsLjUgMGMyNy42IDAgNTEuMi0yMi44IDUxLjItNTAgMCAyNy4xIDIxLjUgNTAgNDkgNTBzNDkuOC0yMi44IDQ5LjgtNTBjMCAyNy4xIDIzIDUwIDUwLjUgNTAgMjMgMCA0OC4zLTIzLjggNDguMy01MC44bDAtMjEuM2MtLjQtMTIuOS00My4yLTYyLjEtNjQuOS03NS02Ny40LTIuMy0xMTQuMi0yLjctMTg0LTIuN1M5MS4xIDMzLjEgNzEuOSAzNC44ek0yMDQuMiAxNjkuMmMtMjIgMzguNC03Ny45IDM4LjctOTkuOCAuMi0xMy4yIDIzLjEtNDMuMiAzMi4xLTU2IDI3LjctMy45IDQwLjItMTMuNyAyMzcuMSAxNy43IDI2OS4yIDgwIDE4LjcgMzAyLjEgMTguMSAzNzkuOCAwIDMxLjYtMzIuMyAyMS4zLTIzMiAxNy43LTI2OS4yLTEyLjkgNC40LTQyLjktNC42LTU2LTI3LjctMjIgMzguNS03Ny44IDM4LjEtOTkuOC0uMi03LjEgMTIuNS0yMyAyOC45LTUxLjggMjguOS0xMC40IC4zLTIwLjgtMi4yLTI5LjktNy4zcy0xNi43LTEyLjYtMjEuOS0yMS42bDAgMHptLTQxLjYgNTMuOGMxNi41IDAgMzEuMSAwIDQ5LjIgMTkuOCAyOS4zLTMgNTguOS0zIDg4LjIgMCAxOC4yLTE5LjcgMzIuOC0xOS43IDQ5LjItMTkuNyA1Mi4zIDAgNjUuMiA3Ny41IDgzLjkgMTQ0LjQgMTcuMyA2Mi4yLTUuNSA2My43LTM0IDYzLjctNDIuMS0xLjYtNjUuNS0zMi4yLTY1LjUtNjIuOC0zOS4zIDYuNC0xMDEuOSA4LjgtMTU1LjYgMCAwIDMwLjYtMjMuMyA2MS4yLTY1LjUgNjIuOC0yOC40LS4xLTUxLjItMS42LTMzLjktNjMuNyAxOC43LTY3IDMxLjYtMTQ0LjQgODMuOS0xNDQuNGwwLS4xek0yNTYgMjcwLjhzLTQ0LjQgNDAuOC01Mi40IDU1LjJsMjktMS4yIDAgMjUuM2MwIDEuNSAyMS4zIC4yIDIzLjMgLjIgMTEuNiAuNSAyMy4zIDEgMjMuMy0uMmwwLTI1LjMgMjkgMS4yYy04LTE0LjUtNTIuNC01NS4yLTUyLjQtNTUuMmwuMSAweiJdfSx6enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2luZG93cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YSIsIk0wIDkzLjdsMTgzLjYtMjUuMyAwIDE3Ny40LTE4My42IDAgMC0xNTIuMXpNMCA0MTguM2wxODMuNiAyNS4zIDAtMTc1LjItMTgzLjYgMCAwIDE0OS45em0yMDMuOCAyOGwyNDQuMiAzMy43IDAtMjExLjYtMjQ0LjIgMCAwIDE3Ny45em0wLTM4MC42bDAgMTgwLjEgMjQ0LjIgMCAwLTIxMy44LTI0NC4yIDMzLjd6Il19LEN6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNCIsIk01MDIuOSAyNjZsMCA2OS43YzAgNjIuMS01MC4zIDExMi40LTExMi40IDExMi40LTYxLjggMC0xMTIuNC00OS44LTExMi40LTExMS4zbDAtNzAuMiAzNC4zIDE2IDUxLjEtMTUuMiAwIDcwLjZjMCAxNC43IDEyIDI2LjUgMjYuNyAyNi41UzQxNyAzNTIuNyA0MTcgMzM4bDAtNzIgODUuOSAwek0yNzguMiAyMDcuOGwzNC4zIDE2IDUxLjEtMTUuMiAwLTM1LjZjMC02MC41LTUxLjEtMTA5LTExMi4xLTEwOS02MC44IDAtMTEyLjEgNDguMi0xMTIuMSAxMDguMmwwIDE2Mi40YzAgMTQuOS0xMiAyNi43LTI2LjcgMjYuN1M4NiAzNDkuNSA4NiAzMzQuNmwwLTY4LjYtODYgMCAwIDY5LjdjMCA2MiA1MC4zIDExMi4zIDExMi40IDExMi4zIDYxLjYgMCAxMTIuNC00OS41IDExMi40LTExMC44bDAtMTYwLjNjMC0xNC43IDEyLTI2LjcgMjYuNy0yNi43czI2LjcgMTIgMjYuNyAyNi43bDAgMzAuOXoiXX0sTWI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEwIiwiTTUwMCAyNjEuOEM1MDAgNDAzLjMgNDAzLjEgNTA0IDI2MCA1MDQgMTIyLjggNTA0IDEyIDM5My4yIDEyIDI1NlMxMjIuOCA4IDI2MCA4YzY2LjggMCAxMjMgMjQuNSAxNjYuMyA2NC45bC02Ny41IDY0LjljLTg4LjMtODUuMi0yNTIuNS0yMS4yLTI1Mi41IDExOC4yIDAgODYuNSA2OS4xIDE1Ni42IDE1My43IDE1Ni42IDk4LjIgMCAxMzUtNzAuNCAxNDAuOC0xMDYuOWwtMTQwLjggMCAwLTg1LjMgMjM2LjEgMGMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHoiXX0sVHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvcmQiLGljb246WzU3Niw1MTIsW10sImYzOTIiLCJNNDkyLjUgNjkuOGMtLjItLjMtLjQtLjYtLjgtLjctMzguMS0xNy41LTc4LjQtMzAtMTE5LjctMzcuMS0uNC0uMS0uOCAwLTEuMSAuMXMtLjYgLjQtLjggLjhjLTUuNSA5LjktMTAuNSAyMC4yLTE0LjkgMzAuNi00NC42LTYuOC04OS45LTYuOC0xMzQuNCAwLTQuNS0xMC41LTkuNS0yMC43LTE1LjEtMzAuNi0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjItMS4xLS4yYy00MS4zIDcuMS04MS42IDE5LjYtMTE5LjcgMzcuMS0uMyAuMS0uNiAuNC0uOCAuNy03Ni4yIDExMy44LTk3LjEgMjI0LjktODYuOSAzMzQuNSAwIC4zIC4xIC41IC4yIC44cy4zIC40IC41IC42YzQ0LjQgMzIuOSA5NCA1OCAxNDYuOCA3NC4yIC40IC4xIC44IC4xIDEuMSAwcy43LS40IC45LS43YzExLjMtMTUuNCAyMS40LTMxLjggMzAtNDguOCAuMS0uMiAuMi0uNSAuMi0uOHMwLS41LS4xLS44LS4yLS41LS40LS42LS40LS4zLS43LS40Yy0xNS44LTYuMS0zMS4yLTEzLjQtNDUuOS0yMS45LS4zLS4yLS41LS40LS43LS42cy0uMy0uNi0uMy0uOSAwLS42IC4yLS45IC4zLS41IC42LS43YzMuMS0yLjMgNi4yLTQuNyA5LjEtNy4xIC4zLS4yIC42LS40IC45LS40cy43IDAgMSAuMWM5Ni4yIDQzLjkgMjAwLjQgNDMuOSAyOTUuNSAwIC4zLS4xIC43LS4yIDEtLjJzLjcgLjIgLjkgLjRjMi45IDIuNCA2IDQuOSA5LjEgNy4yIC4yIC4yIC40IC40IC42IC43cy4yIC42IC4yIC45LS4xIC42LS4zIC45LS40IC41LS42IC42Yy0xNC43IDguNi0zMCAxNS45LTQ1LjkgMjEuOC0uMiAuMS0uNSAuMi0uNyAuNHMtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjggLjEgLjUgLjIgLjhjOC44IDE3IDE4LjggMzMuMyAzMCA0OC44IC4yIC4zIC42IC42IC45IC43cy44IC4xIDEuMSAwYzUyLjktMTYuMiAxMDIuNi00MS4zIDE0Ny4xLTc0LjIgLjItLjIgLjQtLjQgLjUtLjZzLjItLjUgLjItLjhjMTIuMy0xMjYuOC0yMC41LTIzNi45LTg2LjktMzM0LjV6bS0zMDIgMjY3LjdjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy40IDU5LjItNTIuOCA1OS4yem0xOTUuNCAwYy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuMiA1OS4yLTUyLjggNTkuMnoiXX0sJHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFtdLCJmMWQ0IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTIxLjIgMjI5LjJsLS4yIDBjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40em0yMTggNTMuOWwwIDEwMC45LTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42bDM0LjggMC04MC44IDE1NS4xeiJdfSxUOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxldmVudHkiLGljb246WzY0MCw1MTIsWyIxMXR5Il0sImU3ZDYiLCJNNjE1LjMgMTY4LjVjMi4zIDAgNC42IC43IDYuNiAyLjIgMS45IDEuNCAzLjEgMy4zIDMuOCA1IDEuNCAzLjMgMS44IDcuMyAxLjggMTEuMyAwIDIuMi0uMyA0LjktLjcgNy42bDAgLjQtNTAuOSAyNjQuOSAwIDBjLTQgMjIuMS04LjUgMzkuNC0xMy42IDUxLjctNSAxMi4xLTEwLjkgMjEuNi0xOC42IDI3bDAgMGMtNy41IDUuMy0xNi45IDcuNy0yNy42IDhsLTMgMGMtMTYgMC0yOS4zLTQuMi0zNi45LTE0LjgtLjEtLjEtLjEtLjEtLjItLjItLjEtLjItLjMtLjQtLjUtLjZsMCAwYy0xLjgtMi40LTIuNS01LjItMi45LTcuNC0uNS0yLjgtLjctNi4xLS43LTkuOCAwLTcuMyAuNi0xMy41IDIuMS0xOC4yIDEuNC00LjQgNC44LTEwLjQgMTIuMi0xMC40bDEuMyAuMWMuMiAwIC40IC4xIC41IC4xIC4zIC4xIC42IC4xIC44IC4yIC42IC4xIDEuMyAuMyAyLjIgLjZsNy42IDIuMiAuMSAwIDcuNiAyLjFjLjkgLjIgMS43IC40IDIuMiAuNSAuNCAuMSAuNiAuMSAuNyAuMSAwIDAgLjEgMCAuMi0uMSAuMS0uMSAuNC0uMiAuOC0uNiAuOS0uOSAyLjItMi42IDMuNi01LjcgMi42LTUuOCA0LjItMTQuNyA0LjItMjcuNCAwLS43LS4zLTMuNC0xLjMtOC45LS45LTUuMS0yLjMtMTIuMi00LjItMjEuMWwtNTYtMjMyLjktLjEtLjQgMC0uM2MtLjQtMi43LS43LTUuMy0uNy03LjMgMC0zLjcgLjQtNy41IDEuNy0xMC42IC43LTEuNiAxLjgtMy40IDMuNS00LjkgMS45LTEuNSA0LjItMi4zIDYuNS0yLjNsMzQuNiAwYzQuNiAwIDguNyAxLjcgMTEuOSA1bDEuMyAxLjVjMS4yIDEuNiAyIDMuNCAyLjcgNS4yIC45IDIuNCAxLjUgNS4xIDIgOC4xbDMwLjQgMTYxLjIgMjMuOC0xNjBjLjgtNS44IDIuMi0xMS40IDUuMS0xNS4xIDMtMy44IDcuMi01LjggMTItNS44bDI0IDB6TTM3NS4xIDM0LjZjMi42IDAgNS4xIC43IDcuNCAyLjMgMi4yIDEuNSAzLjcgMy42IDQuNyA1LjcgMS45IDQgMi41IDkuMSAyLjUgMTQuNWwwIDExMS4yYzAgLjEgMCAuMiAwIC4zbDMyLjQgMGMyLjUgMCA1IC42IDcuMiAyLjEgMi4yIDEuNCAzLjcgMy40IDQuOCA1LjUgMiAzLjkgMi42IDguOCAyLjYgMTMuOWwwIDE1LjRjMCA1LS42IDkuOC0yLjYgMTMuNy0xLjEgMi0yLjYgNC00LjggNS40LTIuMiAxLjQtNC43IDItNy4xIDJsLTMyLjUgMCAwIDE0NS44YzAgMTAuOCAuNyAxOS41IDIgMjYuMiAxLjQgNi45IDMuMSAxMC45IDQuNyAxMi45IDEuMiAxLjUgMi4yIDIuNSAzLjEgMy4ybDIuMiAxLjQgLjEgLjEgMi45IC44YzEuMiAuMiAyLjYgLjMgNC4zIC4zbDIwLjMgMGM0LjUgMCA4LjkgMS43IDExLjggNS44IDIuNiAzLjYgMy4zIDguMSAzLjMgMTIuMmwwIDE3LjJjMCA0LjUtLjggOS4zLTMuNCAxMy4xLTMgNC4yLTcuNSA2LTEyLjMgNmwwIDAtMjkuMSAuMWMtOCAwLTE1LS42LTIxLjItMS43LTYuNy0xLjMtMTMuNC00LjEtMjAuMS04LjEtNy4yLTQuNC0xMy0xMC4zLTE3LjUtMTcuOC00LjUtNy41LTcuOS0xNy41LTEwLjUtMjkuNS0yLjYtMTIuMi0zLjktMjYuNi0zLjktNDNsMC0xNDQuOS0xMy40IDBjLTIuNCAwLTQuOS0uNi03LjEtMi0yLjItMS40LTMuNy0zLjQtNC44LTUuNC0yLTMuOS0yLjYtOC43LTIuNi0xMy43bDAtMTUuNGMwLTUuMSAuNi0xMCAyLjYtMTMuOSAxLjEtMi4xIDIuNi00IDQuOC01LjUgMi4yLTEuNSA0LjctMi4xIDcuMi0yLjFsMTMuNCAwIDAtLjYgNS4yLTExMS4yIDAtLjEgLjMtMy45Yy41LTMuOCAxLjMtNy40IDIuNy0xMC4zIDIuMS00LjIgNi03LjkgMTEuOC03LjlsMjguNiAwem0tMjY4IDExLjdjMS44IC4zIDMuNiAuOSA1LjMgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4zIDguNCAyLjMgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xIDAgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjMgMC0uNCAwLS4xIDAtLjIgMC0uMiAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjQtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjggMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNS0xOS41YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXptMTQzLjgtLjVjMS44IC4zIDMuNiAuOSA1LjIgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4yIDguNCAyLjIgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xLS4xIDAtLjIgMC0uMyAwIDAgMC0uMiAwLS40IDBsMCAwYy0uMSAwLS4yIDAtLjMgMC0uMSAwLS4yIDAtLjMgMC0yLjIgLjEtNC41LS40LTYuNi0xLjctMi4zLTEuNC0zLjgtMy40LTQuNy01LjMtMS44LTMuNy0yLjMtOC4zLTIuMy0xM2wwLTI3LjRjMC00LjQgLjctOC43IDIuNi0xMi40IDIuMS0zLjkgNS41LTYuNiA5LjgtNy42bDc1LjQtMTkuNGMxLjQtLjQgMi45LS41IDQuNC0uNWwxLjggLjF6Il19LER6dD1UOGUsTHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlYW1zcGVhayIsaWNvbjpbNTc2LDUxMixbXSwiZjRmOSIsIk0xNTIuOCAzNy4yYy0zMi4yIDM4LjEtNTYuMSA4Mi42LTY5LjkgMTMwLjUgMCAuMi0uMSAuMy0uMSAuNS0zOS4zIDE2LjItNjYuOCA1NC44LTY2LjggOTkuOCAwIDU5LjYgNDguNCAxMDggMTA4IDEwOHMxMDgtNDguNCAxMDgtMTA4YzAtNTMuNS0zOC45LTk3LjktOTAtMTA2LjUgMTUuNy00MS44IDQwLjQtNzkuNiA3Mi4zLTExMC43IDEuOC0xLjYgNC0yLjYgNi4zLTMuMSAzNy4yLTExLjUgNzYuNy0xMy4zIDExNC44LTUuMiAxMTkuMyAyNS4xIDE5OC42IDEzOC4yIDE4MS43IDI1OC44LTguNCA2Mi42LTM4LjYgMTEyLjctODcuNyAxNTEuNC01MC4xIDM5LjctMTA3LjUgNTQuMy0xNzAuMiA1Mi4ybC0yNC0xYzEyLjQgMi44IDI1IDQuOSAzNy42IDYuMyA0MC43IDQuMiA4MS40IDIuMSAxMjAuMS0xMi41IDk0LTM1LjUgMTQ5LjMtMTAyLjMgMTYyLjktMjAyLjUgNC44LTUyLjYtNS44LTEwNS40LTMwLjgtMTUyLTcwLjQtMTMxLjktMjM0LjItMTgxLjYtMzY2LTExMS4yLTIuNCAxLjQtNC41IDMuMS02LjMgNS4ybC4xIDB6TTMwOS40IDQzMy45Yy0yLjEgMTEuNS00LjIgMjEuOS0xNC42IDMxLjMgNTMuMi0xIDEyMy4yLTI5LjIgMTYxLjgtOTcuMSAzOS43LTY5LjkgMzcuNi0xMzkuOS02LjMtMjA3LjgtMzYuNS01NS4zLTg5LjgtODIuNC0xNTYuNi04Ni42IDEuNSAyLjMgMy4yIDQuNCA1LjIgNi4zbDUuMiA2LjNjMjUuMSAzMS4zIDM3LjYgNjcuOSA0Mi44IDEwNy41IDIuMSAxNS43LTEgMzAuMy0xMy42IDQxLjgtNC4yIDMuMS01LjIgNi4zLTQuMiAxMC40bDcuMyAxNy43IDI5LjMgNTQuM2M1LjIgMTEuNSA0LjIgMTkuOC02LjMgMjguMi0zLjIgMi41LTYuNyA0LjYtMTAuNCA2LjNsLTE4LjggOC40IDMuMSAxMy42YzMuMSA2LjMgMSAxMi41LTMuMSAxNy43LTIuNSAyLjQtMy44IDUuOS0zLjEgOS40IDIuMSAxMS41LTIuMSAxOS44LTEyLjUgMjUuMS0yLjEgMS00LjIgNS4yLTUuMiA3LjNsMC0uMXptLTEzMy42LTMuMWMxNi43IDExLjUgMzQuNSAyMC45IDUzLjIgMjYuMSAyNCA1LjIgNDEuOC02LjMgNDQuOS0zMC4zIDEtOC40IDUuMi0xNC42IDEyLjUtMTcuNyA3LjMtNC4yIDguNC03LjMgMi4xLTEzLjZsLTkuNC04LjQgMTMuNi00LjJjNi4zLTIuMSA3LjMtNS4yIDUuMi0xMS41LTEuNC0zLTIuNC02LjItMy4xLTkuNC0zLjEtMTQuNi0yLjEtMTUuNyAxMS41LTE4LjggOC40LTMuMSAxNS43LTYuMyAyMS45LTEyLjUgMy4xLTIuMSAzLjEtNC4yIDEtOC40bC0xNi43LTMwLjNjLTEtMS45LTIuMS0zLjgtMy4xLTUuNy02LjQtMTEuNy0xMy0yMy42LTE1LjctMzcuMS0yLjEtOS40LTEtMTcuNyA4LjQtMjQgNS4yLTQuMiA4LjQtOS40IDguNC0xNi43LS40LTEwLjEtMS41LTIwLjMtMy4xLTMwLjMtNi4zLTM3LjYtMjMtNjguOS01MS4yLTk1LTUuMi00LjItOS40LTYuMy0xNi43LTQuMmwtMzUuNiAxMi43IDYgMy42YzYuMyAzLjcgMTIuMiA3LjMgMTcgMTIuMSAzMC4zIDI2LjEgNDEuOCA2MS42IDQ1LjkgMTAwLjIgMSA4LjQgMCAxNi43LTcuMyAyMS45LTguNCA1LjItMTAuNCAxMi41LTcuMyAyMC45IDQuOSAxMy4yIDEwLjQgMjYgMTYuNyAzOC42TDI5MS42IDMxOGMtNi4zIDguNC0xMy42IDExLjUtMjEuOSAxNC42LTEyLjUgMy4xLTE0LjYgNy4zLTEwLjQgMjAuOSAuNiAxLjUgMS40IDIuOCAyLjEgNC4yIDIuMSA1LjIgMSA4LjQtNC4yIDEwLjRsLTEyLjUgMy4xIDUuMiA0LjIgNC4yIDQuMmM0LjIgNS4yIDQuMiA4LjQtMi4xIDEwLjQtNy4zIDQuMi0xMS41IDkuNC0xMS41IDE3LjcgMCAxMi41LTcuMyAxOS44LTE4LjggMjQtMy44IDEtNy42IDEuNS0xMS41IDFsLTM0LjUtMi4xIC4xIC4yeiJdfSxFenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VwcGxlIixpY29uOls2NDAsNTEyLFtdLCJmM2Y5IiwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43IC40IDE1LjUgLjYgMjMuNCAuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42IC4yIDIzLjMgLjUtMjIuNS0zLjItNDYuMy00LjktNzEtNC45LTEzNC41IC40LTI0My40IDUyLjYtMjQzLjMgMTE2LjcgLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45UzExOC40IDI4MSAxMzcuMiAyODFjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZsMCAzLjkgMTQuMiAwIDAtNy45YzAtMTIuMS0xNS40LTE2LjgtMjUuNC0xNi44LTE2LjUgMC0yOC41IDEwLjItMjguNSAyNC4xIDAgMjYuNiA0MC4yIDI1LjQgNDAuMiAzOS45IDAgNi42LTUuOCAxMC4xLTEyLjMgMTAuMS0xMS45IDAtMjAuNy0xMC4xLTIwLjctMTAuMWwtOC44IDEwLjl6bTEyMC44LTczLjZsMCA1NC40YzAgMTEuMy03LjEgMTcuOC0xNy44IDE3LjhzLTE3LjgtNi41LTE3LjgtMTcuN2wwLTU0LjUtMTUuOCAwIDAgNTVjMCAxOC45IDEzLjQgMzEuOSAzMy43IDMxLjkgMjAuMSAwIDMzLjQtMTMgMzMuNC0zMS45bDAtNTUtMTUuNyAwem0zNC40IDg1LjRsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjgtNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNS4xIDE0LjctMTQgMTQuN2wtMTIuNiAwem01NyA0M2wxNS44IDAgMC0yOS41IDE1LjUgMGMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhsLTM5LjEgMCAwIDEzLjQgNy44IDAgMCA3MnptMTUuNy00M2wwLTI5LjEgMTIuOSAwYzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01IDE0LjctMTQgMTQuN2wtMTIuNiAwem01Ny4xIDM0LjhjMCA1LjggMi40IDguMiA4LjIgOC4ybDM3LjYgMGM1LjggMCA4LjItMi40IDguMi04LjJsMC0xMy0xNC4zIDAgMCA1LjJjMCAxLjctMSAyLjYtMi42IDIuNmwtMTguNiAwYy0xLjcgMC0yLjYtMS0yLjYtMi42bDAtNjEuMmMwLTUuNy0yLjQtOC4yLTguMi04LjJsLTE1LjQgMCAwIDEzLjQgNS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDYxLjItLjEgMHptNjMuNCAwYzAgNS44IDIuNCA4LjIgOC4yIDguMmwzOC43IDBjNS43IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE5LjcgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTIwLjMgMjcuNyAwIDAtMTMuNC0yNy43IDAgMC0yMi40IDE5LjIgMGMxLjcgMCAyLjYgMSAyLjYgMi42bDAgNS4yIDE0LjIgMCAwLTEzYzAtNS43LTIuNS04LjItOC4yLTguMmwtNTEuNiAwIDAgMTMuNCA3LjggMCAwIDYzLjkgLjEgMHptNTguOS03NmwwIDUuOSAxLjYgMCAwLTUuOSAyLjcgMCAwLTEuMi03IDAgMCAxLjIgMi43IDB6bTUuNy0xLjJsMCA3LjEgMS41IDAgMC01LjcgMi4zIDUuNyAxLjMgMCAyLjMtNS43IDAgNS43IDEuNSAwIDAtNy4xLTIuMyAwLTIuMSA1LjEtMi4xLTUuMS0yLjQgMHoiXX0sJDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10d2l0dGVyIixpY29uOls0NDgsNTEyLFsidHdpdHRlci1zcXVhcmUiXSwiZjA4MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNTEuMyAxOTkuM2MwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjYtMzcuMiAwLTcxLjctMTAuOC0xMDAuNy0yOS40IDUuMyAuNiAxMC40IC44IDE1LjggLjggMzAuNyAwIDU4LjktMTAuNCA4MS40LTI4LTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjUgMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjItMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjRsMC0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zLTktNi0xNi40LTE0LjEtMjEuNS0yMy42cy03LjgtMjAuMi03LjctMzFjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xIDMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNi05LjMtNDQuNSAyNC04MC42IDY0LTgwLjYgMTguOSAwIDM1LjkgNy45IDQ3LjkgMjAuNyAxNC44LTIuOCAyOS04LjMgNDEuNi0xNS44LTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xIDEzLjItMS40IDI2LTUuMSAzNy44LTEwLjItOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzQgLjIgMi44IC4yIDUuNyAuMiA4LjV6Il19LFB6dD0kOGUsSXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbSIsaWNvbjpbNTEyLDUxMixbXSwiZTg4YSIsIk0zMDMuMyA1NC41bDAtMTIuMyA0LTMuNyA3LjktNy4yIDMuNS0zLjIgMTY4IDAgMTUuMSAxNS4xIDAgMzguOS0zLjUgMy42LTgwLjkgODIuOSA4Ni45IDg2LjktOTEuMiA5MS4yIDguOSAwIDcuNi04LjMgMS0uOWMxLjEtLjggMi41LTEuMiAzLjktMS4ybDI4LjkgMCAxLjUgLjJjMS41IC40IDIuOCAxLjIgMy44IDIuNWw3LjYgMTAuMmMxLjMgMS43IDEuNiAzLjkgMSA1LjlsLTIyLjMgNzIuNSAxLjIgMGMyLjIgMCA0LjIgMS4xIDUuNSAyLjlzMS41IDQuMSAuNyA2LjFMNDU5IDQ0NWMtMSAyLjYtMy40IDQuMi02LjIgNC4ybC00MC40IDBjLTIuMSAwLTQuMS0xLTUuMy0yLjdzLTEuNi0zLjktMS01LjlsMjAtNjMuMi0yMi4yIDAtMTYuMiA1MC43YzIuMSAuMSA0LjEgMS4xIDUuMyAyLjkgMS4yIDEuOCAxLjQgNC4yIC42IDYuMmwtMy4zIDcuOWMtMSAyLjUtMy41IDQuMS02LjEgNC4xbC0zNi44IDBjLTIuMSAwLTQuMS0xLTUuNC0yLjdzLTEuNi0zLjktMS01LjlsMTAtMzIuMS0yMy45IDIzLjhjLjMgMS4yIC4zIDIuNS0uMSAzLjhsLTIuOSA4LjZjLS45IDIuNy0zLjQgNC41LTYuMyA0LjVsLTcuNCAwLTU0LjYgNTQuNi04My44LTgzLjgtMzEuNiAzMi41LTMuNiAzLjctNDkuMiAwLTIuOC0xLjdjLTguOC01LjEtMTQuOC04LjUtMTcuOS0xMC4zbDAtMTI5LjMtNTguNS01OC41IDIuNi0yLjYgNTUuOS01NiAwLTk5LjQtMTIuNiAwLTEwLjgtMTAuOC0zLjYtMy42IDAtNDAuNyAzLjItMy41IDcuOS04LjUgMy43LTMuOSAxNjYuNiAwIDggOCAyNy40LTI3LjQgNDYuNCA0Ni40em0tMjUxLTUuNmwwIDMwLjMgOS40IDcuOCAxOC45IDAgMCAzNDcuOSAxMS40IDEwLjMgMzguMiAwIDkxLTkzYzAtLjQgLjEtLjggLjItMS4xbDIuNi0xMC41Yy43LTIuOSAzLjQtNSA2LjQtNWw3LjEgMCAxNS41LTE1LjktMi0yYy0xLjgtMS44LTIuNC00LjUtMS41LTYuOWw2LjktMTkuM2MuNC0xLjEgMS4xLTIgMS45LTIuOGw2LjktNS45YzEuMi0xIDIuOC0xLjYgNC4zLTEuNmwxOS43IDAgMS4zIC4yYy4xIDAgLjEgLjEgLjIgLjFsMTk5LjItMjAzLjUgMC0yOC43LTguMi03LjQtMTU2LjIgMC03LjggNy44IDAgMzAuNSA4LjIgNy40IDIxIDAtMTQ3IDE0Ni40IDAtMTQ2LjYgMTYuOSAwIDguNy04LjcgMC0yNy43LTcuNC05LjktMTU3LjYgMC04IDh6TTIyNy42IDM1Mi43bDE0LjggMC0zMS44IDkwLjkgNDUuMyAwIDMtOS42LTEyLjUgMCAzMS41LTkxLjktNDcuNiAwLTIuNiAxMC41em0xMzYuOSAxbC0xNi40IDAtMTAuNS0xMC44LTM1LjggMC0zLjMgOS44IDExLjggMC0zMC41IDg5LjkgMzguMSAwIDIuOS04LjYtOC44IDAgMjAtNjMgMzcuOCAwLTIyLjMgNzEuNiAzNi44IDAgMy4zLTcuOS04LjggMCAyMC4zLTY0IDM2LjEgMC0yMi43IDcxLjkgNDAuNCAwIDMuMy04LjYtMTAuMiAwIDI1LTgxLjEtNy41LTEwLjItMjguOSAwLTkuNSAxMC41LTE3LjQgMC05LjktMTAuOC0yMy4zIDAtOS44IDExLjJ6TTI2Mi41IDI5My42bC02LjkgMTkuMyA1LjMgNS4zIDIxLjMgMCA1LjYtNS42IDUuOS0yMC4zLTQuNi00LjYtMTkuNyAwLTYuOSA1Ljl6Il19LFlyZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sQXp0PVlyZSxOenQ9WXJlLEQ4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXJzaW5kaGFuZHdlcmsiLGljb246WzQ0OCw1MTIsWyJ3c2giXSwiZTJkMCIsIk0xOC45IDQ3OS44bDgzLjQgMCAwLTExMi04My40IDQ3IDAgNjV6bTMyOSAwbDgyLjQgMCAwLTY1LTgyLjQtNDcgMCAxMTJ6bTAtNDQ4bDAgMjE5LjgtMTIzLjYtNzIuNC0xMjEuNyA3Mi40IDAtMjE5LjgtODMuNyAwIDAgMzYwLjggMjA1LjQtMTIyLjMgMjA2IDEyMi4zIDAtMzYwLjgtODIuMyAweiJdfSxSenQ9RDhlLE96dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6b29tIixpY29uOls2NDAsNTEyLFtdLCJlODdiIiwiTTEzNC4yIDMyNi42bC0xMTQuNCAwYy04IDAtMTUuMi00LjgtMTguMy0xMi4yUy4xIDI5OC42IDUuOCAyOTIuOWw3OS4zLTc5LjMtNTYuOCAwQzEyLjcgMjEzLjYgMCAyMDEgMCAxODUuNGwxMDUuNSAwYzggMCAxNS4yIDQuOCAxOC4zIDEyLjJzMS40IDE1LjktNC4zIDIxLjZsLTc5LjMgNzkuMyA2NS43IDBjMTUuNiAwIDI4LjMgMTIuNiAyOC4zIDI4LjN6TTY0MCAyMzguM2MwLTMwLjQtMjQuNy01NS4xLTU1LjEtNTUuMS0xNi4yIDAtMzAuOSA3LjEtNDEgMTguMy0xMC4xLTExLjItMjQuNy0xOC4zLTQxLTE4LjMtMzAuNCAwLTU1LjEgMjQuNy01NS4xIDU1LjFsMCA4OC4zYzE1LjYgMCAyOC4zLTEyLjcgMjguMy0yOC4zbDAtNjBjMC0xNC44IDEyLTI2LjggMjYuOC0yNi44czI2LjggMTIgMjYuOCAyNi44bDAgNjBjMCAxNS42IDEyLjYgMjguMyAyOC4zIDI4LjNsMC04OC4zYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM3pNMjg4LjIgMjU2YTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6bS0yNzQuMSAwYTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6Il19LEZ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25mbHVlbmNlIixpY29uOls1MTIsNTEyLFtdLCJmNzhkIiwiTTIuOCA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMSAuMS0uMiAuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjggLjQgMjEuNy03LjcgLjEtLjEgLjEtLjMgLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zLTI0Ny45LTEyMC42LTMzMC44IDQ1LjctMzczLjEgMTEyLjZ6TTUxMC4yIDEwMC4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjkgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIgLjMtLjQgLjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNiAuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEgLjEtLjEgLjMtLjIgLjRMMjIuNyAxNDEuM2MtMy42IDguMSAuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45eiJdfSxCenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNiIsIk04MS43IDE3Mi4zbC04MS43IDAgMCAxNzQuNCAxMzIuNyAwIDAtMjUwLjctNTEgMCAwIDc2LjN6bTAgMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3pNMzc4LjkgMTcyLjNsMCAxNzQuNCA4MS44IDAgMCAyOC41LTgxLjggMCAwIDQwLjggMTMzLjEgMCAwLTI0My43LTEzMy4xIDB6bTgxLjggMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3ptLTIzNS42IDQxbDgyLjEgMCAwIDI4LjUtODIuMSAwIDAgNDAuOCAxMzMuMyAwIDAtMjQzLjctMTMzLjMgMCAwIDE3NC40em01MS4yLTEzMy4zbDMwLjggMCAwIDkyLjMtMzAuOCAwIDAtOTIuM3pNMTUzLjMgOTZsNTEuMyAwIDAgNTEtNTEuMyAwIDAtNTF6bTAgNzYuM2w1MS4zIDAgMCAxNzQuNC01MS4zIDAgMC0xNzQuNHoiXX0sSHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTgiLCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOCAyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNCAxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjItMzYuMiAzNi4yLTgwLjMgNTIuNS0xNDIuNiA1M2wtLjMgMGMtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjItMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNmwwLS41QzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yIDEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmwuMyAwYzcwLjMgLjUgMTI0LjkgMjQgMTYyLjMgNjkuOSAxOC40IDIyLjcgMzIgNTAgNDAuNiA4MS43bC00MC40IDEwLjhjLTcuMS0yNS44LTE3LjgtNDcuOC0zMi4yLTY1LjQtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNi01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjQtMjYuMiAzMy4zLTM5LjggODEuNS00MC4zIDE0My4yIC41IDYxLjcgMTQuMSAxMDkuOSA0MC4zIDE0My4zIDI4IDM1LjYgNzEuMiA1My45IDEyOC4yIDU0LjQgNTEuNC0uNCA4NS40LTEyLjYgMTEzLjctNDAuOSAzMi4zLTMyLjIgMzEuNy03MS44IDIxLjQtOTUuOS02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOS0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44LTE3LjEgMjEuOC00MS40IDMzLjYtNzIuNyAzNS4zLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTYtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zLTIuNS00OC4zIDM1LjctODMgOTUuMi04Ni40IDIxLjEtMS4yIDQwLjktLjMgNTkuMiAyLjgtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOGwtLjcgMGMtMTYuNiAwLTM5IDQuNi01My4zIDI2LjNsLTM0LjQtMjMuNmMxOS4yLTI5LjEgNTAuMy00NS4xIDg3LjgtNDUuMWwuOCAwYzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMiAuMSAwem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuMyAyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yLTEzLjItMi45LTI3LjgtNC40LTQzLjQtNC40LTQuOCAwLTkuNiAuMS0xNC40IC40LTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xeiJdfSxMOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3ByZXNzciIsaWNvbjpbNTEyLDUxMixbInJlbmRhY3QiXSwiZjNlNCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQyNy4zIDE2Ni42Yy0xNS4yIDM0LjUtMzAuNCA2OS00NS42IDEwMy41LTIuNCA1LjUtNi45IDguMi0xMyA4LjItMjMgMC00NiAuMS02OSAwLTUuMSAwLTguMiAxLjktMTAuMyA2LjctMTAuMiAyMy42LTIwLjYgNDctMzEgNzAuNS0xLjUgMy41LTQuMSA1LjMtNy45IDUuMy00NS45IDAtOTEuOSAwLTEzNy44IDAtMy4xIDAtNS42LTEuMS03LjctMy40LTExLjItMTIuMy0yMi41LTI0LjYtMzMuNy0zNi45LTIuNy0zLTIuOC02LjItMS4yLTkuNyA4LjctMTkuNSAxNy4zLTM5LjEgMjUuOS01OC43IDEyLjktMjkuNCAyNS45LTU4LjcgMzguNy04OC4xIDEuNy0zLjkgNC4zLTUuNyA4LjUtNS43IDE0LjIgLjEgMjguNSAwIDQyLjcgMCA2LjIgMCA5LjIgNC44IDYuNyAxMC42LTEzLjYgMzAuOC0yNy4yIDYxLjYtNDAuNyA5Mi4zLTUuNyAxMy0xMS40IDI2LTE3LjEgMzktMy45IDkgNy4xIDEyIDExIDUuNiAuMi0uNC0xLjQgNC4yIDMwLTY3LjcgMS40LTMuMSAzLjQtNC40IDYuOC00LjQgMTUuMiAuMSAzMC40IDAgNDUuNiAwIDUuNiAwIDcuOSAzLjYgNS43IDguNy04LjMgMTktMTYuNyAzNy45LTI1IDU2LjktNSAxMS40IDguMSAxMi41IDExLjMgNS4zIDAtLjEgMjcuOS02My4zIDMyLjItNzMuMiAyLTQuNiA1LjQtNi41IDEwLjMtNi41IDI2LjQgLjEgNTIuOSAwIDc5LjMgMCAxMi40IDAgMTMuOS0xMy42IDMuOS0xMy42LTI1LjMgMC01MC41IDAtNzUuOCAwLTYuMyAwLTcuOC0yLjUtNS4zLTguMyA1LjgtMTMuMSAxMS42LTI2LjEgMTcuMy0zOS4yIDEuNy00IDQuNS01LjggOC44LTUuOCAyMy4xIC4xIDI2IDAgMTMwLjggMCA2LjEgMCA4IDIuOCA1LjYgOC4zeiJdfSxxenQ9TDhlLGp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5b2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJiMSIsIk05MS4zIDc2bDE4NiAwLTcgMTguOS0xNzkgMGMtMzkuNyAwLTcxLjkgMzEuNi03MS45IDcwLjNsMCAyMDUuNGMwIDM1LjQgMjQuOSA3MC4zIDg0IDcwLjNsMCAxOS4xLTEyLjEgMEM0MS4yIDQ2MCAwIDQxOS44IDAgMzcwLjVMMCAxNjUuMkMwIDExNS45IDQwLjcgNzYgOTEuMyA3NnpNMzIwLjQgMjBsNjYuNSAwYy0xNDMuOCAzNzguMS0xNDUuNyAzOTguOS0xODQuNyA0MzkuMy0yMC44IDIxLjYtNDkuMyAzMS43LTc4LjMgMzIuN2wwLTUxLjFjNDkuMi03LjcgNjQuNi00OS45IDY0LjYtNzUuMyAwLTIwLjEgLjYtMTIuNi04Mi4xLTIyMy4ybDYxLjQgMCA1MC40IDE1Ni42IDEwMi4yLTI3OXpNNDQ4IDE2MS41bDAgMjk4LjUtMjE0IDBjNi42LTkuNiAxMC43LTE2LjMgMTIuMS0xOS40bDE4Mi41IDAgMC0yNzkuMWMwLTMyLjUtMTcuMS01MS45LTQ4LjItNjIuOUwzODcuMSA4MWM0MS43IDEzLjYgNjAuOSA0My4xIDYwLjkgODAuNXoiXX0sVnp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5pbWJsciIsaWNvbjpbMzg0LDUxMixbXSwiZjVhOCIsIk0yNDYuNiAzNTMuM2EyNyAyNyAwIDEgMSAwLTU0IDI3IDI3IDAgMSAxIDAgNTR6bS03OS40LTI3YTI3LjEgMjcuMSAwIDEgMSAtNTQuMyAwIDI3LjEgMjcuMSAwIDEgMSA1NC4zIDB6TTE5MS44IDE1OUMxNTcgMTU5IDg5LjQgMTc4LjggNTkuMiAyMjdMMTQgMCAxNCAzMzUuNUMxNCA0MzMuMSA5My42IDUxMiAxOTEuOCA1MTJTMzY5LjUgNDMzIDM2OS41IDMzNS41IDI5MC4xIDE1OSAxOTEuOCAxNTl6bTAgMzA4LjFjLTczLjMgMC0xMzIuNS01OC45LTEzMi41LTEzMS42czU5LjItMTMxLjYgMTMyLjUtMTMxLjYgMTMyLjUgNTguOSAxMzIuNSAxMzEuNS01OS4zIDEzMS42LTEzMi41IDEzMS42bDAgLjF6Il19LFV6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhlbGZlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTdkYiIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzNS43IDMxMS45bDQ3IDBjNDQuMiAwIDgwLjEtMzQuOSA4MC4xLTc4cy0zNS45LTc4LTgwLjEtNzhsLTY3LjggMGMtMjUuNSAwLTQ2LjIgMjAuMS00Ni4yIDQ1bDAgMTc1LjEgNjctNjQuMXoiXX0sV3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhaG9vIixpY29uOls1MTIsNTEyLFtdLCJmMTllIiwiTTIyMy44IDE0MS4xbC01Ni43IDE0My4yLTU2LTE0My4yLTk2LjEgMCAxMDUuOCAyNDkuMS0zOC42IDg5LjggOTQuMiAwIDE0MC45LTMzOC45LTkzLjYgMHpNMzI5LjIgMjc2LjlhNTguMiA1OC4yIDAgMSAwIDAgMTE2LjQgNTguMiA1OC4yIDAgMSAwIDAtMTE2LjR6TTM5NC43IDMybC05MyAyMjMuNSAxMDQuOCAwIDkyLjYtMjIzLjUtMTA0LjQgMHoiXX0sR3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWVza3kiLGljb246WzU3Niw1MTIsW10sImU2NzEiLCJNNDA3LjggMjk0LjdjLTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zek0yODggMjI3LjFDMjYxLjkgMTc2LjQgMTkwLjkgODEuOSAxMjQuOSAzNS4zIDYxLjYtOS40IDM3LjUtMS43IDIxLjYgNS41IDMuMyAxMy44IDAgNDEuOSAwIDU4LjRTOS4xIDE5NCAxNSAyMTMuOWMxOS41IDY1LjcgODkuMSA4Ny45IDE1My4yIDgwLjcgMy4zLS41IDYuNi0uOSAxMC0xLjQtMy4zIC41LTYuNiAxLTEwIDEuNC05My45IDE0LTE3Ny4zIDQ4LjItNjcuOSAxNjkuOSAxMjAuMyAxMjQuNiAxNjQuOC0yNi43IDE4Ny43LTEwMy40IDIyLjkgNzYuNyA0OS4yIDIyMi41IDE4NS42IDEwMy40IDEwMi40LTEwMy40IDI4LjEtMTU2LTY1LjgtMTY5LjktMy4zLS40LTYuNy0uOC0xMC0xLjMgMy40IC40IDYuNyAuOSAxMCAxLjMgNjQuMSA3LjEgMTMzLjYtMTUuMSAxNTMuMi04MC43IDUuOS0xOS45IDE1LTEzOC45IDE1LTE1NS41cy0zLjMtNDQuNy0yMS42LTUyLjljLTE1LjgtNy4xLTQwLTE0LjktMTAzLjIgMjkuOC02Ni4xIDQ2LjYtMTM3LjEgMTQxLjEtMTYzLjIgMTkxLjh6Il19LEt6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY3JpYmQiLGljb246WzM4NCw1MTIsW10sImYyOGEiLCJNNDIuNiAyNTIuN2MtMTYuMS0xOS0yNC43LTQ1LjktMjQuOC03OS45IDAtMTAwLjQgNzUuMi0xNTMuMSAxNjcuMi0xNTMuMSA5OC42LTEuNiAxNTYuOCA0OSAxODQuMyA3MC42bC01MC41IDcyLjEtMzcuMy0yNC42IDI2LjktMzguNmMtMzYuNS0yNC03OS40LTM2LjUtMTIzLTM1LjgtNTAuNy0uOC0xMTEuNyAyNy4yLTExMS43IDc2LjIgMCAxOC43IDExLjIgMjAuNyAyOC42IDE1LjYgMjMuMy01LjMgNDEuOSAuNiA1NS44IDE0IDI2LjQgMjQuMyAyMy4yIDY3LjYtLjcgOTEuOS0yOS4yIDI5LjUtODUuMiAyNy4zLTExNC44LTguNHptMzE3LjcgNS45Yy0xNS41LTE4LjgtMzguOS0yOS40LTYzLjItMjguNi0zOC4xLTItNzEuMSAyOC03MC41IDY3LjItLjcgMTYuOCA2IDMzIDE4LjQgNDQuMyAxNC4xIDEzLjkgMzMgMTkuNyA1Ni4zIDE0LjQgMTcuNC01LjEgMjguNi0zLjEgMjguNiAxNS42IDAgNC4zLS41IDguNS0xLjQgMTIuNy0xNi43IDQwLjktNTkuNSA2NC40LTEyMS40IDY0LjQtNTEuOSAuMi0xMDIuNC0xNi40LTE0NC4xLTQ3LjNsMzMuNy0zOS40LTM1LjYtMjcuNC02MC44IDcxLjggMTUuNCAxMy44YzUyLjUgNDYuOCAxMjAuNCA3Mi41IDE5MC43IDcyLjIgNTEuNCAwIDk0LjQtMTAuNSAxMzMuNi00NC4xIDU3LjEtNTEuNCA1NC4yLTE0OS4yIDIwLjMtMTg5LjZ6Il19LFl6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkIixpY29uOls1MTIsNTEyLFtdLCJmNGVjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA0NDkuNWMtMTM5LjIgMC0yMzUuOC0xMzgtMTkwLjItMjY3LjlsNzguOCAzNS4xYy0yLjEgMTAuNS0zLjMgMjEuNS0zLjMgMzIuOSAwIDk5IDczLjkgMTI2LjkgMTIwLjQgMTI2LjkgMjIuOSAwIDUzLjUtNi43IDc5LjQtMjkuNUwzMDUgMzExLjFjLTUuNSA2LjMtMTcuNiAxNi43LTM2LjMgMTYuNy0zNy44IDAtNTMuNy0zOS45LTUzLjktNzEuOSAyMzAuNCAxMDIuNiAyMTYuNSA5Ni41IDIxNy45IDk2LjgtMzQuMyA2Mi40LTEwMC42IDEwNC44LTE3Ni43IDEwNC44em0xOTQuMi0xNTBsLTIyNC0xMDBjMTguOC0zNCA1NC45LTMwLjcgNzQuNy0xMWw0MC40LTQxLjZjLTI3LjEtMjMuMy01OC0yNy41LTc4LjEtMjcuNS00Ny40IDAtODAuOSAyMC41LTEwMC43IDUxLjZMODcuNiAxNDUuNmMzNi4xLTU0LjkgOTguMS05MS4yIDE2OC41LTkxLjIgMTExLjEgMCAyMDEuNSA5MC40IDIwMS41IDIwMS41IDAgMTgtMi40IDM1LjQtNi44IDUyLS4zLS4xLS40LS4yLS42LS40eiJdfSxaenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWFybHliaXJkcyIsaWNvbjpbNTEyLDUxMixbXSwiZjM5YSIsIk0zMjkuMyA0Ny41YzEuMi0xMyAyMS4zLTE0IDM2LjYtOC43IC45IC4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMzUuNSAxNjBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyem0tMTU5LjcgMGExNiAxNiAwIDEgMCAwIDMyIDE2IDE2IDAgMSAwIDAtMzJ6TTQ5NC4zIDMyMy4yYy05LjkgMjQtNDAuNyAxMS02My45LTEuMi0xMy41IDY5LjEtNTguMSAxMTEuNC0xMjYuMyAxMjQuMiAuMyAuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMiAuOCAxNy45LTI3LjEgMjEuOC0yOC40LTFsLS41IDUuM2MtLjcgMTguNC0yOC40IDE3LjktMjguMy0uNi03LjUgMTMuNS0yOC4xIDYuOC0yNi40LTguNWwxLjItMTIuNGMtMzYuNyAuOS01OS43IDMuMS02MS44IDMuMS0yMC45IDAtMjAuOS0zMS42IDAtMzEuNiAyLjQgMCAyNy43IDEuMyA2My4yIDIuOC02MS4xLTE1LjUtMTAzLjctNTUtMTE0LjktMTE4LjItMjUgMTIuOC01Ny41IDI2LjgtNjguMiAuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNCAuNy02LjYgMS42LTEzLjMgMi43LTE5LjgtMTQuNC0xOS42LTExLjYtMzYuMy0xNi4xLTYwLjQtMTYuOCAyLjQtMjMuMi05LjEtMjMuNi0yMy4xIC4zLTcuMyAyLjEtMTQuOSAyLjQtMTUuNCAxLjEtMS44IDEwLjEtMiAxMi43LTIuNiA2LTMxLjcgNTAuNi0zMy4yIDkwLjktMzQuNSAxOS43LTIxLjggNDUuMi00MS41IDgwLjktNDguMy0xNS4zLTE5LjQtMy40LTM5LjktMi40LTQwLjQgMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xIC42IDYuNCAxNS00LjkgMjUuOSA0MC4zIDMuNSA3Mi4yIDI0LjcgOTYgNTAuNyAzNi4xIDEuNSA3MS44IDUuOSA3Ny4xIDM0IDIuNyAuNiAxMS42IC44IDEyLjcgMi42IC4zIC41IDIuMSA4LjEgMi40IDE1LjQtLjUgMTMuOS02LjggMjUuNC0yMy42IDIzLjEtMy4yIDE3LjMtMi43IDMyLjktOC43IDQ3LjcgMi40IDExLjcgNCAyMy44IDQuOCAzNi40IDM3IDI1LjQgNzAuMyA0Mi41IDYwLjMgNjYuOXpNMjIzLjUgMTU5LjljLjktNDQtMzcuOS00Mi4yLTc4LjYtNDAuMy0yMS43IDEtMzguOSAxLjktNDUuNSAxMy45LTExLjQgMjAuOSA1LjkgOTIuOSAyMy4yIDEwMS4yIDkuOCA0LjcgNzMuNCA3LjkgODYuMy03LjEgOC4yLTkuNCAxNS00OS40IDE0LjYtNjcuN3ptNTIgNTguM2MtNC4zLTEyLjQtNi0zMC4xLTE1LjMtMzIuNy0yLS41LTktLjUtMTEgMC0xMCAyLjgtMTAuOCAyMi4xLTE3IDM3LjIgMTUuNCAwIDE5LjMgOS43IDIzLjcgOS43IDQuMyAwIDYuMy0xMS4zIDE5LjYtMTQuMnptMTM1LjctODQuN2MtNi42LTEyLjEtMjQuOC0xMi45LTQ2LjUtMTMuOS00MC4yLTEuOS03OC4yLTMuOC03Ny4zIDQwLjMtLjUgMTguMyA1IDU4LjMgMTMuMiA2Ny44IDEzIDE0LjkgNzYuNiAxMS44IDg2LjMgNy4xIDE1LjgtNy42IDM2LjUtNzguOSAyNC4zLTEwMS4zeiJdfSxYenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueWNhc3RzIixpY29uOls1NzYsNTEyLFtdLCJlOGFiIiwiTTI5My44IDM0Mi41YzMuNC0xLjUgNi44LTEuNSAxMC4yIDBsNTQuMiAyMi42YzIuNiAuOSA0LjcgMi42IDYuMiA0LjhzMi4zIDQuOCAyLjMgNy42YzAgMTkuNC0zLjYgMzcuMi0xMC43IDUzLjQtNi4yIDEzLjYtMTQuNSAyNS40LTI0LjggMzUuNi04LjcgOC41LTE3LjcgMTQuNi0yNy4xIDE4LjQtMy40IDEuNS02LjggMS41LTEwLjIgMC0xMC43LTQuMy0yMC42LTExLjMtMjkuNy0yMC45LTEwLTEwLjQtMTcuOC0yMi41LTIzLjUtMzYuNC02LjQtMTUuNi05LjYtMzIuMy05LjYtNTAgMC0yLjggLjctNS40IDIuMi03LjYgMS41LTIuMyAzLjYtMy45IDYuMi00LjhsNTQuMi0yMi42ek00NzkuNyA0ODMuOGE3MC4xIDcwLjEgMCAxIDEgMC0xNDAuMiA3MC4xIDcwLjEgMCAxIDEgMCAxNDAuMnpNMjQ0LjYgMzc3LjZjMCAxNS4zIDIuNiAyOS43IDcuOSA0My4yIDQuOSAxMi40IDExLjYgMjMuMyAyMC4xIDMyLjUgOC4xIDguOSAxNi45IDE1LjMgMjYuMyAxOS4yIDkuMi0zLjggMTcuOC0xMCAyNS43LTE4LjcgOC43LTkuMiAxNS40LTE5LjkgMjAuMy0zMi4yIDUuNS0xMy43IDguMi0yOC40IDguMi00NC4xbC01NC4yLTIyLjYtNTQuMiAyMi42em0yMzUuMS0yMC4zYTU2LjUgNTYuNSAwIDEgMCAwIDExMyA1Ni41IDU2LjUgMCAxIDAgMC0xMTN6bS0zNTIuOCAyLjNjNC4xIDAgNy42IDEuMyAxMC40IDMuOSAyLjggMi42IDQuMiA1LjkgNC4yIDkuNmwwIDE2LjQgMzEuMS0xOS4yYzEuNS0xLjEgMy4yLTEuNyA1LjEtMS43IDIuNCAwIDQuNiAuOCA2LjMgMi41czIuNyAzLjggMi43IDYuMmwwIDcyLjZjMCAyLjYtLjkgNC44LTIuNyA2LjVzLTMuOSAyLjUtNi4zIDIuNWMtMS45IDAtMy42LS42LTUuMS0xLjdsLTMxLjEtMTkuMiAwIDE2LjRjMCAzLjgtMS40IDctNC4yIDkuNnMtNi4zIDQtMTAuNCA0bC04OC4yIDBjLTQuMSAwLTcuNi0xLjMtMTAuNS00cy00LjItNS44LTQuMi05LjZsMC04MS4zYzAtMy44IDEuNC03IDQuMi05LjZzNi4zLTMuOSAxMC41LTMuOWw4OC4yIDB6bTE3MiA5Ny44Yy0xMS4zLTctMjAuNC0xNi40LTI3LjQtMjguMy03LjUtMTIuNC0xMS45LTI2LjYtMTMtNDIuNGw0MC40LTE3IDAgODcuNnpNMzcuNSAzNzMuNGwwIDgwLjhjLjIgLjIgLjYgLjMgMS4yIC4zbDg4LjIgMGMuNCAwIC43LS4xIDEuMS0uM2wwLTgwLjhjLS4yLS4yLS42LS4zLTEuMi0uM2wtODguMSAwYy0uNCAwLS44IC4xLTEuMiAuM3ptNDE4LjQgNS4xYzIuMy0xLjMgNC41LTEuMyA2LjggMGw0OS44IDMwLjJjMi4zIDEuMyAzLjQgMy4zIDMuNCA1LjlzLTEuMSA0LjYtMy40IDUuOWwtNDkuOCAyOC42Yy0yLjMgMS4zLTQuNSAxLjMtNi44IDBzLTMuNC0zLjMtMy40LTUuOWwwLTU4LjhjMC0yLjYgMS4xLTQuNiAzLjQtNS45ek0xNDEuNSA0MDUuNWwwIDE2LjQgMzEuNyAxOS44IDAtNTYtMzEuNyAxOS44ek00NTEuMSA1LjJjMzUuOC0xLjIgNjIuOSAxNS4xIDYzLjggNDAuOCAuNCAxMC45LTUuOSAzMi4yLTI3LjggMzMtMTYuMyAuNi0yNy42LTkuMi0yOC4xLTI0LjEtLjItNS40IDEuMi0xMC4yIDQuOS0xNS44IDMuNi03LjEgNC40LTcuOSA0LjMtMTEtLjMtOS40LTE0LjUtOS43LTE4LjMtOS41LTUzIDEuOC02Ni45IDczLjMtNzguMiAxMzEuNWwtNS42IDMwLjdjMzAuNSA0LjUgNTIuMi0xIDY0LjItOC44IDE3LTExLTQuOC0yMi40LTItMzUgMi44LTEyLjggMTQuNC0xOSAyMy43LTE5LjIgMTIuOS0uMyAyMi4yIDEzLjEgMjEuOSAyNi43LS41IDIyLjYtMzAuNCA1My42LTkwLjIgNTIuMy03LjMtLjItMTQtLjctMjAuMi0xLjRsLTExLjMgNjIuM2MtMyAxNC02LjMgMjkuNS0xMC43IDQ1LjhsMjA0IDAgLjkgLjFjLjMgLjEgLjYgLjEgLjggLjIgMi4yIC42IDQgMi41IDQuNSA0LjggLjYgMi44LTEgNi0zLjcgNy4yLS41IC4yLTEuMSAuNC0xLjcgLjUtLjMgMC0uNiAwLS45IC4xbC01MTUuMyAwYy0uNy0uMS0uOSAwLTEuNy0uMi0yLjUtLjctNC40LTMuMS00LjYtNS43LS4yLTIuMyAxLTQuNiAzLTUuOCAuNy0uNSAxLjYtLjggMi40LS45IC4zIDAgLjYgMCAuOC0uMWw0OC40IDBjLTE3LjItMTYuOC0yMC0zNy4yLTE2LTUwLjUgNS40LTE3LjYgMTkuNC0yMC45IDMzLTE2LjcgMTQuNiA0LjUgMjAuMyAyMi4zIDE2LjIgMzYtLjUgMS41LTEuMiAzLjktMi44IDcuMi0xLjcgMy44LTQuOCA3LjEtNi4yIDExLjUtMS41IDQuOSAuNyA5LjEgNC41IDEyLjZsNTguOSAwYzQuMi00IDcuNC05IDkuMS0xNC42IDUuMy0xNy01LjUtMjguOS0xMC0zMy41bC0yMS43LTIzLjJjLTkuOS0xMS4xLTMxLjctNDEuOS0yMS4xLTc2LjUgNC4xLTEzLjQgMTIuOC0yNy41IDI1LjMtMzYuOSAyNi41LTE5LjcgNTUuMy0yMyA4Mi43LTE1LjEgMzUuNSAxMC4yIDUyLjUgMzMuNyA3NC42IDUxLjggMTIuNC0zNi4zIDI5LjUtNzEuOSA1NS4zLTEwMS45IDIzLjMtMjcuMyA1NC42LTQ3LjEgOTAuNC00OC4zek0yMjkuNiAxMjEuM2MtMjIuMi02LTM1LjctLjktNDUuMiAxMS4yLTExLjMgMTQuMy03LjUgMzIuOCAzLjMgNDMuN2wxOCAxOS45YzIyIDI1LjUgMzQuMSA0NS4zIDI5LjYgNzItMi4yIDEzLjEtOC41IDI1LjItMTcuOSAzNS4zbDU0LjIgMGMxLTUuMSAyLTEwLjQgMy4xLTE1LjhsMy42LTIxLjljNS45LTI5LjQgMTIuNC02Mi4yIDIyLjMtOTQuOC0yNC4xLTE4LjEtMzguNS00MC43LTcwLjktNDkuNXoiXX0sRThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1vZG5va2xhc3NuaWtpIixpY29uOls0NDgsNTEyLFsib2Rub2tsYXNzbmlraS1zcXVhcmUiXSwiZjI2NCIsIk0yMjQgMTM3LjFjLTUuNC0uMy0xMC44IC42LTE1LjkgMi40cy05LjcgNC44LTEzLjYgOC41LTcgOC4yLTkuMiAxMy4yLTMuMiAxMC4zLTMuMiAxNS43IDEuMSAxMC44IDMuMiAxNS43IDUuMyA5LjUgOS4yIDEzLjIgOC42IDYuNiAxMy42IDguNSAxMC41IDIuNyAxNS45IDIuNGM1LjQgLjMgMTAuOC0uNiAxNS45LTIuNHM5LjctNC44IDEzLjYtOC41IDctOC4yIDkuMi0xMy4yIDMuMi0xMC4zIDMuMi0xNS43LTEuMS0xMC44LTMuMi0xNS43LTUuMy05LjUtOS4yLTEzLjItOC42LTYuNi0xMy42LTguNS0xMC41LTIuNy0xNS45LTIuNHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMSA4MSA4MSAwIDEgMSAwIDE2Mi4xem01OS4zIDYuMmMxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjYgNy44IDE2LTEuMSAyMy43LTIxLjUgMzctMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42LTEyLTEyLjItMjkuNS0yOS43LTQ3LjctNDcuOWwtNDcuNyA0Ny45Yy0xNy43IDE3LjItNDYtMTEtMjguNC0yOC42IDMuNy0zLjcgNy45LTcuOSAxMi41LTEyLjUgMTAuNC0xMC40IDIyLjYtMjIuNyAzNS4yLTM1LjJsMTIuOS0xMi45Yy0xNS40LTEuNi0zOS4zLTUuNy01Ni42LTE2LjgtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3IDQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42IDAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4eiJdfSxRenQ9RThlLEp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXJrZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjYwZiIsIk01OTMuOCA1OS4xbC01NDcuNiAwQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMkwwIDQwNi43YzAgMjUuNSAyMC43IDQ2LjIgNDYuMiA0Ni4ybDU0Ny43IDBjMjUuNSAwIDQ2LjItMjAuNyA0Ni4xLTQ2LjFsMC0zMDEuNmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZsLTYxLjUgMCAwLTEyMC02MS41IDc2LjktNjEuNS03Ni45IDAgMTIwLTYxLjcgMCAwLTIwOS4yIDYxLjUgMCA2MS41IDc2LjkgNjEuNS03Ni45IDYxLjUgMCAwIDIwOS4yIC4yIDB6bTEzNS4zIDMuMWwtOTIuMy0xMDcuNyA2MS41IDAgMC0xMDQuNiA2MS41IDAgMCAxMDQuNiA2MS41IDAtOTIuMiAxMDcuN3oiXX0sZUN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR5cG8zIixpY29uOls0NDgsNTEyLFtdLCJmNDJiIiwiTTE3OC43IDc4LjRjMC0yNC43IDUuNC0zMi40IDEzLjktMzkuNC02OS41IDguNS0xNDkuMyAzNC0xNzYuMyA2Ni40LTUuNCA3LjctOS4zIDIwLjgtOS4zIDM3LjEgMCAxMDMuNSAxMDYuOCAzMzcuNSAxODQuMSAzMzcuNSAzNi4zIDAgOTcuMy01OS41IDE0Ni43LTEzOS03IDIuMy0xMS42IDIuMy0xOC41IDIuMy01Ny4yIDAtMTQwLjYtMTk4LjUtMTQwLjYtMjY0Ljl6TTMwMS41IDMyYy0zMC4xIDAtNDEuNyA1LjQtNDEuNyAzNi4zIDAgNjYuNCA1My44IDE5OC41IDEwMS43IDE5OC41IDI2LjMgMCA3OC44LTk5LjcgNzguOC0xODIuMyAwLTQwLjktNjctNTIuNS0xMzguOC01Mi41eiJdfSx0Q3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiam9vbWxhIixpY29uOls0NDgsNTEyLFtdLCJmMWFhIiwiTS42IDkyLjFjMC0zMy4zIDI2LjgtNjAuMSA1OS44LTYwLjEgMzAgMCA1NC41IDIxLjkgNTkuMiA1MC4yIDMyLjYtNy42IDY3LjEgLjYgOTYuNSAzMGwtNDQuMyA0NC4zYy0yMC41LTIwLjUtNDIuNi0xNi4zLTU1LjQtMy41LTE0LjMgMTQuMy0xNC4zIDM3LjkgMCA1Mi4ybDk5LjUgOTkuNS00NCA0NC4zYy04Ny43LTg3LjItNDkuNy00OS43LTk5LjgtOTkuNy0yNi44LTI2LjUtMzUtNjQuOC0yNC44LTk4LjktMjYuOS01LjgtNDYuNy0yOS43LTQ2LjctNTguM3pNMTMwLjEgMjA4LjVsNDQuMyA0NC4zYzEwLTEwIDg5LjctODkuNyA5OS43LTk5LjggMTQuMy0xNC4zIDM3LjYtMTQuMyA1MS45IDAgMTIuOCAxMi44IDE3IDM1LTMuNSA1NS40bDQ0IDQ0LjNjMzEuMi0zMS4yIDM4LjUtNjcuNiAyOC45LTEwMS4yIDI5LjItNC4xIDUxLjktMjkuMiA1MS45LTU5LjUgMC0zMy4yLTI2LjgtNjAuMS01OS44LTYwLjEtMzAuMyAwLTU1LjQgMjIuNS01OS41IDUxLjYtMzMuOC05LjktNzEuNy0xLjUtOTguMyAyNS4xLTE4LjMgMTkuMS03MS4xIDcxLjUtOTkuNiA5OS45ek0zOTYuNCAzNjAuN2M4LjItMzIuNy0uOS02OC41LTI2LjMtOTMuOS0xMS44LTEyLjIgNSA0LjctOTkuNS05OS43bC00NC4zIDQ0LjMgOTkuNyA5OS43YzE0LjMgMTQuMyAxNC4zIDM3LjYgMCA1MS45LTEyLjggMTIuOC0zNSAxNy01NS40LTMuNWwtNDQgNDQuM2MyNy42IDMwLjIgNjggMzguOCAxMDIuNyAyOCA1LjUgMjcuNCAyOS43IDQ4LjEgNTguOSA0OC4xIDMzIDAgNTkuOC0yNi44IDU5LjgtNjAuMSAwLTMwLjItMjIuNS01NS01MS42LTU5LjF6bS04NC4zLTUzLjFsLTQ0LTQ0LjNjLTg3IDg2LjQtNTAuNCA1MC40LTk5LjcgOTkuOC0xNC4zIDE0LjMtMzcuNiAxNC4zLTUxLjkgMC0xMy4xLTEzLjQtMTYuOS0zNS4zIDMuMi01NS40bC00NC00NC4zYy0zMC4yIDMwLjItMzggNjUuMi0yOS41IDk4LjMtMjYuNyA2LTQ2LjIgMjkuOS00Ni4yIDU4LjIgMCAzMy4zIDI2LjggNjAuMSA1OS44IDYwLjEgMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3oiXX0sYUN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlaXhpbiIsaWNvbjpbNTc2LDUxMixbXSwiZjFkNyIsIk0zODUuMiAxNjcuNmM2LjQgMCAxMi42IC4zIDE4LjggMS4xLTE2LjYtNzguNC0xMDAuNy0xMzYuNy0xOTYuMy0xMzYuNy0xMDcuMiAwLTE5NC43IDcyLjgtMTk0LjcgMTY1LjQgMCA1My40IDI5LjMgOTcuNSA3Ny45IDEzMS42bC0xOS4zIDU4LjYgNjgtMzQuMWMyNC40IDQuOCA0My44IDkuNyA2OC4yIDkuNyA2LjIgMCAxMi4xLS4zIDE4LjMtLjgtNC0xMi45LTYuMi0yNi42LTYuMi00MC44LS4xLTg0LjkgNzIuOS0xNTQgMTY1LjMtMTU0ek0yODAuNyAxMTQuN2MxNC41IDAgMjQuMiA5LjcgMjQuMiAyNC40IDAgMTQuNS05LjcgMjQuMi0yNC4yIDI0LjItMTQuOCAwLTI5LjMtOS43LTI5LjMtMjQuMiAuMS0xNC43IDE0LjYtMjQuNCAyOS4zLTI0LjR6TTE0NC4zIDE2My4zYy0xNC41IDAtMjkuMy05LjctMjkuMy0yNC4yIDAtMTQuOCAxNC44LTI0LjQgMjkuMy0yNC40IDE0LjggMCAyNC40IDkuNyAyNC40IDI0LjQgMCAxNC42LTkuNiAyNC4yLTI0LjQgMjQuMnpNNTYzIDMxOS40YzAtNzcuOS03Ny45LTE0MS4zLTE2NS40LTE0MS4zLTkyLjcgMC0xNjUuNCA2My40LTE2NS40IDE0MS4zUzMwNSA0NjAuNyAzOTcuNiA0NjAuN2MxOS4zIDAgMzguOS01LjEgNTguNi05LjlsNTMuNCAyOS4zLTE0LjgtNDguNkM1MzQgNDAyLjEgNTYzIDM2My4yIDU2MyAzMTkuNHpNMzQzLjkgMjk0LjljLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuOCAwIDI0LjQgOS43IDI0LjQgMTkuMyAwIDEwLTkuNyAxOS42LTI0LjQgMTkuNnptMTA3LjEgMGMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC41IDAgMjQuNCA5LjcgMjQuNCAxOS4zIC4xIDEwLTkuOSAxOS42LTI0LjQgMTkuNnoiXX0sc0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdydW50IixpY29uOlszODQsNTEyLFtdLCJmM2FkIiwiTTYxLjYgMTg5LjNjLTEuMSAxMCA1LjIgMTkuMSA1LjIgMTkuMSAuNy03LjUgMi4yLTEyLjggNC0xNi42IC40IDEwLjMgMy4yIDIzLjUgMTIuOCAzNC4xIDYuOSA3LjYgMzUuNiAyMy4zIDU0LjkgNi4xIDEgMi40IDIuMSA1LjMgMyA4LjUgMi45IDEwLjMtMi43IDI1LjMtMi43IDI1LjNzMTUuMS0xNy4xIDEzLjktMzIuNWMxMC44LS41IDIxLjQtOC40IDIxLjEtMTkuNSAwIDAtMTguOSAxMC40LTM1LjUtOC44LTkuNy0xMS4yLTQwLjktNDItODMuMS0zMS44IDQuMyAxIDguOSAyLjQgMTMuNSA0LjFsLS4xIDBjLTQuMiAyLTYuNSA3LjEtNyAxMnptMjguMy0xLjhjMTkuNSAxMSAzNy40IDI1LjcgNDQuOSAzNy01LjcgMy4zLTIxLjcgMTAuNC0zOC0xLjctMTAuMy03LjYtOS44LTI2LjItNi45LTM1LjN6TTIzMiAyMzMuM2MtMS4yIDE1LjUgMTMuOSAzMi41IDEzLjkgMzIuNXMtNS42LTE1LTIuNy0yNS4zYy45LTMuMiAyLTYgMy04LjUgMTkuMyAxNy4zIDQ4IDEuNSA1NC44LTYuMSA5LjYtMTAuNiAxMi4zLTIzLjggMTIuOC0zNC4xIDEuOCAzLjggMy40IDkuMSA0IDE2LjYgMCAwIDYuNC05LjEgNS4yLTE5LjEtLjYtNS0yLjktMTAtNy0xMS44bC0uMSAwYzQuNi0xLjggOS4yLTMuMiAxMy41LTQuMS00Mi4zLTEwLjItNzMuNCAyMC42LTgzLjEgMzEuOC0xNi43IDE5LjItMzUuNSA4LjgtMzUuNSA4LjgtLjIgMTAuOSAxMC40IDE4LjkgMjEuMiAxOS4zem02Mi43LTQ1LjhjMyA5LjEgMy40IDI3LjctNyAzNS40LTE2LjMgMTIuMS0zMi4yIDUtMzcuOSAxLjYgNy41LTExLjQgMjUuNC0yNiA0NC45LTM3em0tMTM0LjQgMjMxbC0yOS40IDBjLTUuNSAwLTguMiAxLjYtOS41IDIuOS0xLjkgMi0yLjIgNC43LS45IDguMSAzLjUgOS4xIDExLjQgMTYuNSAxMy43IDE4LjYgMy4xIDIuNyA3LjUgNC4zIDExLjggNC4zIDQuNCAwIDguMy0xLjcgMTEtNC42IDcuNS04LjIgMTEuOS0xNy4xIDEzLTE5LjggLjYtMS41IDEuMy00LjUtLjktNi44LTEuOC0xLjgtNC43LTIuNy04LjgtMi43ek0zNDkuNSAzMTcuM2MtMi40IDE3LjktMTMgMzMuOC0yNC42IDQzLjctMy4xLTIyLjctMy43LTU1LjUtMy43LTYyLjQgMC0xNC43IDkuNS0yNC41IDEyLjItMjYuMSAyLjUtMS41IDUuNC0zIDguMy00LjYgMTgtOS42IDQwLjQtMjEuNiA0MC40LTQzLjcgMC0xNi4yLTkuMy0yMy4yLTE1LjQtMjcuOC0uOC0uNi0xLjUtMS4xLTIuMi0xLjctMi4xLTEuNy0zLjctMy00LjMtNC40LTQuNC05LjgtMy42LTM0LjItMS43LTM3LjYgLjYtLjYgMTYuNy0yMC45IDExLjgtMzkuMi0yLTcuNC02LjktMTMuMy0xNC4xLTE3LTUuMy0yLjctMTEuOS00LjItMTkuNS00LjUtLjEtMi0uNS0zLjktLjktNS45LS42LTIuNi0xLjEtNS4zLS45LTguMSAuNC00LjcgLjgtOSAyLjItMTEuMyA4LjQtMTMuMyAyOC44LTE3LjYgMjktMTcuNmwxMi4zLTIuNC04LjEtOS41Yy0uMS0uMi0xNy4zLTE3LjUtNDYuMy0xNy41LTcuOSAwLTE2IDEuMy0yNC4xIDMuOS0yNC4yIDcuOC00Mi45IDMwLjUtNDkuNCAzOS4zLTMuMS0xLTYuMy0xLjktOS42LTIuNy00LjItMTUuOCA5LTM4LjUgOS0zOC41cy0xMy42LTMtMzMuNyAxNS4yYy0yLjYtNi41LTguMS0yMC41LTEuOC0zNy4yLTI5LjUgMTAuNC0zNi45IDI2LjMtMzkuMSA0MC43LTcuNi01LjQtNi43LTIzLjEtNy4yLTI3LjYtNy41IC45LTI5LjIgMjEuOS0yOC4yIDQ4LjMtMiAuNS0zLjkgMS4xLTUuOSAxLjctNi41LTguOC0yNS4xLTMxLjUtNDkuNC0zOS4zLTcuOS0yLjItMTYtMy41LTIzLjktMy41LTI5IDAtNDYuMSAxNy4zLTQ2LjMgMTcuNWwtOC4xIDkuNCAxMi4zIDIuNGMuMiAwIDIwLjYgNC4zIDI5IDE3LjYgMS40IDIuMiAxLjggNi42IDIuMiAxMS4zIC4yIDIuOC0uNCA1LjUtLjkgOC4xLS40IDEuOS0uOCAzLjktLjkgNS45LTcuNyAuMy0xNC4yIDEuOC0xOS41IDQuNS03LjIgMy43LTEyLjEgOS42LTE0LjEgMTctNSAxOC4yIDExLjIgMzguNSAxMS44IDM5LjIgMS45IDMuNCAyLjcgMjcuOC0xLjcgMzcuNi0uNiAxLjQtMi4yIDIuNy00LjMgNC40LS43IC41LTEuNCAxLjEtMi4yIDEuNy02LjEgNC42LTE1LjQgMTEuNy0xNS40IDI3LjggMCAyMi4xIDIyLjQgMzQuMSA0MC40IDQzLjcgMyAxLjYgNS44IDMuMSA4LjMgNC42IDIuNyAxLjYgMTIuMiAxMS40IDEyLjIgMjYuMSAwIDYuOS0uNiAzOS43LTMuNyA2Mi40LTExLjYtOS45LTIyLjItMjUuOS0yNC42LTQzLjggMCAwLTI5LjIgMjIuNi0yMC42IDcwLjggNS4yIDI5LjUgMjMuMiA0Ni4xIDQ3IDU0LjcgOC44IDE5LjEgMjkuNCA0NS43IDY3LjMgNDkuNiAxNC40IDExLjggMzQuNCAxOS41IDYzLjYgMTkuNWwuMiAwYzI5LjEgMCA0OS4xLTcuNyA2My42LTE5LjUgMzcuOS0zLjkgNTguNS0zMC41IDY3LjMtNDkuNiAyMy44LTguNyA0MS43LTI1LjIgNDctNTQuNyA4LjItNDguNC0yMS4xLTcwLjktMjEuMS03MC45ek0zMDYgMzcuN2M1LjYtMS44IDExLjYtMi43IDE3LjctMi43IDExIDAgMTkuOSAzIDI0LjcgNS0zLjEgMS40LTYuNCAzLjItOS43IDUuMy0yLjQtLjQtNS42LS44LTkuMi0uOC0xMC41IDAtMjAuNSAzLjEtMjguNyA4LjktMTIuMyA4LjctMTggMTYuOS0yMC43IDIyLjQtMi4yLTEuMy00LjUtMi41LTcuMS0zLjctMS42LS44LTMuMS0xLjUtNC43LTIuMiA2LjEtOS4xIDE5LjktMjYuNSAzNy43LTMyLjJ6bTIxIDE4LjJjLS44IDEtMS42IDIuMS0yLjMgMy4yLTMuMyA1LjItMy45IDExLjYtNC40IDE3LjgtLjUgNi40LTEuMSAxMi41LTQuNCAxNy00LjIgLjgtOC4xIDEuNy0xMS41IDIuNy0yLjMtMy4xLTUuNi03LTEwLjUtMTEuMiAxLjQtNC44IDUuNS0xNi4xIDEzLjUtMjIuNSA1LjYtNC4zIDEyLjItNi43IDE5LjYtN3pNNDUuOSA0NS4zYy0zLjMtMi4yLTYuNi00LTkuNy01LjMgNC44LTIgMTMuNy01IDI0LjctNSA2LjEgMCAxMiAuOSAxNy43IDIuNyAxNy44IDUuOCAzMS42IDIzLjIgMzcuNyAzMi4xLTEuNiAuNy0zLjIgMS40LTQuOCAyLjItMi41IDEuMi00LjkgMi41LTcuMSAzLjctMi42LTUuNC04LjMtMTMuNy0yMC43LTIyLjQtOC4zLTUuOC0xOC4yLTguOS0yOC44LTguOS0zLjQgLjEtNi42IC41LTkgLjl6TTkwLjYgODUuNGMtNC45IDQuMi04LjMgOC0xMC41IDExLjItMy40LS45LTcuMy0xLjktMTEuNS0yLjctMy4zLTQuNC0zLjgtMTAuNS00LjMtMTYuOS0uNS02LjItMS4xLTEyLjYtNC40LTE3LjgtLjctMS4xLTEuNS0yLjItMi4zLTMuMiA3LjQgLjMgMTQgMi42IDE5LjUgNyA4IDYuMyAxMi4xIDE3LjYgMTMuNSAyMi40ek01OC40IDI1OS45Yy0yLjctMS42LTUuNi0zLjEtOC40LTQuNi0xNC45LTgtMzAuMi0xNi4zLTMwLjItMzAuNSAwLTExLjEgNC4zLTE0LjYgOC45LTE4LjJsLjUtLjRjLjctLjYgMS40LTEuMiAyLjItMS44LS45IDcuMi0xLjkgMTMuMy0yLjcgMTQuOSAwIDAgMTIuMS0xNSAxNS43LTQ0LjMgMS40LTExLjUtMS4xLTM0LjMtNS4xLTQzIC4yIDQuOSAwIDkuOC0uMyAxNC40LS40LS44LS44LTEuNi0xLjMtMi4yLTMuMi00LTExLjgtMTcuNS05LjQtMjYuNiAuOS0zLjUgMy4xLTYgNi43LTcuOCAzLjgtMS45IDguOC0yLjkgMTUuMS0yLjkgMTIuMyAwIDI1LjkgMy43IDMyLjkgNiAyNS4xIDggNTUuNCAzMC45IDY0LjEgMzcuNyAuMiAuMiAuNCAuMyAuNCAuM2w1LjYgMy45LTMuNS01LjhjLS4yLS4zLTE5LjEtMzEuNC01My4yLTQ2LjUgMi0yLjkgNy40LTguMSAyMS42LTE1LjEgMjEuNC0xMC41IDQ2LjUtMTUuOCA3NC4zLTE1LjggMjcuOSAwIDUyLjkgNS4zIDc0LjMgMTUuOCAxNC4yIDYuOSAxOS42IDEyLjIgMjEuNiAxNS4xLTM0IDE1LjEtNTIuOSA0Ni4yLTUzLjEgNDYuNWwtMy41IDUuOCA1LjYtMy45cy4yLS4xIC40LS4zYzguNy02LjggMzktMjkuOCA2NC4xLTM3LjcgNy0yLjIgMjAuNi02IDMyLjktNiA2LjMgMCAxMS4zIDEgMTUuMSAyLjkgMy41IDEuOCA1LjcgNC40IDYuNyA3LjggMi41IDkuMS02LjEgMjIuNi05LjQgMjYuNi0uNSAuNi0uOSAxLjMtMS4zIDIuMi0uMy00LjYtLjUtOS41LS4zLTE0LjQtNCA4LjgtNi41IDMxLjUtNS4xIDQzIDMuNiAyOS4zIDE1LjcgNDQuMyAxNS43IDQ0LjMtLjgtMS42LTEuOC03LjctMi43LTE0LjkgLjcgLjYgMS41IDEuMiAyLjIgMS44bC41IC40YzQuNiAzLjcgOC45IDcuMSA4LjkgMTguMiAwIDE0LjItMTUuNCAyMi41LTMwLjIgMzAuNS0yLjkgMS41LTUuNyAzLjEtOC40IDQuNi04LjcgNS0xOCAxNi43LTE5LjEgMzQuMi0uOSAxNC42IC45IDQ5LjkgMy40IDc1LjktMTIuNCA0LjgtMjYuNyA2LjQtMzkuNyA2LjgtMi00LjEtMy45LTguNS01LjUtMTMuMS0uNy0yLTE5LjYtNTEuMS0yNi40LTYyLjIgNS41IDM5IDE3LjUgNzMuNyAyMy41IDg5LjYtMy41LS41LTcuMy0uNy0xMS43LS43bC0xMTcgMGMtNC40IDAtOC4zIC4zLTExLjcgLjcgNi0xNS45IDE4LjEtNTAuNiAyMy41LTg5LjYtNi44IDExLjItMjUuNyA2MC4zLTI2LjQgNjIuMi0xLjYgNC42LTMuNSA5LTUuNSAxMy4xLTEzLS40LTI3LjItMi0zOS43LTYuOCAyLjUtMjYgNC4zLTYxLjIgMy40LTc1LjktLjktMTcuNC0xMC4zLTI5LjItMTktMzQuMnpNMzUuMSA0MDQuNmMtMTIuMS0yMC04LjctNTQuMS0zLjctNTkuMSAxMC45IDM0LjQgNDcuMiA0NC4zIDc0LjQgNDUuNC0yLjcgNC4yLTUuMiA3LjYtNyAxMGwtMS40IDEuNGMtNy4yIDcuOC04LjYgMTguNS00LjEgMzEuOC0yMi43LS4xLTQ2LjMtOS44LTU4LjItMjkuNXptNDUuNyA0My41YzYgMS4xIDEyLjIgMS45IDE4LjYgMi40IDMuNSA4IDcuNCAxNS45IDEyLjMgMjMuMS0xNC40LTUuOS0yNC40LTE2LTMwLjktMjUuNXptMTExLjUgNTAuMWMtNjAuNi0uMS03OC4zLTQ1LjgtODQuOS02NC43LTMuNy0xMC41LTMuNC0xOC4yIC45LTIzLjEgMi45LTMuMyA5LjUtNy4yIDI0LjYtNy4ybDExOC44IDBjMTUuMSAwIDIxLjggMy45IDI0LjYgNy4yIDQuMiA0LjggNC41IDEyLjYgLjkgMjMuMS02LjYgMTguOC0yNC4zIDY0LjYtODQuOSA2NC43em04MC42LTI0LjZjNC45LTcuMiA4LjgtMTUuMSAxMi4zLTIzLjEgNi40LS41IDEyLjYtMS4zIDE4LjYtMi40LTYuNSA5LjUtMTYuNSAxOS42LTMwLjkgMjUuNXptNzYuNi02OWMtMTIgMTkuNy0zNS42IDI5LjMtNTguMSAyOS43IDQuNS0xMy4zIDMuMS0yNC4xLTQuMS0zMS44LS40LS41LS45LTEtMS40LTEuNS0xLjgtMi40LTQuMy01LjgtNy0xMCAyNy4yLTEuMiA2My41LTExIDc0LjQtNDUuNCA1IDUgOC40IDM5LjEtMy44IDU5ek0xOTIuMiAxODcuN2wuMiAwYzEyLjctLjEgMjcuMi0xNy44IDI3LjItMTcuOC05LjkgNi0xOC44IDguMS0yNy4zIDguMy04LjUtLjItMTcuNC0yLjMtMjcuMy04LjMgMCAwIDE0LjUgMTcuNiAyNy4yIDE3Ljh6bTYxLjcgMjMwLjdsLTI5LjQgMGMtNC4yIDAtNy4yIC45LTguOSAyLjctMi4yIDIuMy0xLjUgNS4yLS45IDYuNyAxIDIuNiA1LjUgMTEuMyAxMyAxOS4zIDIuNyAyLjkgNi42IDQuNSAxMSA0LjVzOC43LTEuNiAxMS44LTQuMmMyLjMtMiAxMC4yLTkuMiAxMy43LTE4LjEgMS4zLTMuMyAxLTYtLjktNy45LTEuMy0xLjMtNC0yLjktOS40LTN6Il19LGlDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXBwb3J0bm93IixpY29uOls2NDAsNTEyLFtdLCJlODMzIiwiTTAgMTkxLjlsMjAzLjktLjFjMS44LS42IDIuNS05LjUgMy4yLTEyLjIgMy4zLTEzLjUgOC40LTI2LjQgMTQuOC0zOC43bC0xNjAuMiAwIDAtNDguMiAyMzQuNSAwIDAgMzljLTUxLjIgMzYuMS01Ni40IDkyLjYtMjMuNiAxNDMuOSAzMy4xIDUxLjcgOTMuNCA4OC4xIDE0OS41IDExMC41IDY3LjgtMjUuMiAxNjQuOS04OS45IDE2OS40LTE2OS42IDMuMS01NS4zLTQyLjItMTAxLjgtOTguNy05MS44LTQxLjUgNy40LTYyLjEgNDYuNy01NC44IDg2LjRsLTQ4LjIgMGMtNy4zLTU2LjYgMjIuOC0xMTIuNiA3OC40LTEzMC4zIDc4LjctMjUuMSAxNTkuNSAyOCAxNzAuNCAxMDguOCAxNS4yIDExMi4zLTk1LjUgMTk5LjktMTg4LjEgMjM3LjgtNC40IDEuOC0yNC40IDEwLjEtMjcuNSAxMC4xbC0yODAuMyAwIDAtNDguMiAxNzguNSAwLTM4LjEtMjguOS0yMy4yLTIyLjEtMTk4LjMgMCAwLTQ4LjIgMTYzLjEgMGMtNy4xLTExLjYtMTIuMy0yNC4zLTE2LjEtMzcuNC0uNy0yLjUtMi4xLTEyLTMuOC0xMi42bC0yMDQuOS0uMSAwLTQ4LjIgMCAweiJdfSxyQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja3JtcyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlOSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQxMy40IDQyNy41bC05MCAwLTExMi0xMzEuM2MtMTcuOS0yMC40LTMuOS01Ni4xIDI2LjYtNTYuMWw3NS4zIDAtODQuNi05OS4zLTg0LjMgOTguOS05MCAwIDE0Ny4xLTE3Mi41YzE0LjQtMTguNCA0MS4zLTE3LjMgNTQuNSAwTDQxMy43IDI1Mi4zYzE5IDIyLjggMiA1Ny4yLTI3LjYgNTYuMS0uNiAwLTc0LjIgLjItNzQuMiAuMkw0MTMuNCA0MjcuNXoiXX0sb0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuc3BsYXNoIixpY29uOls0NDgsNTEyLFtdLCJlMDdjIiwiTTQ0OCAyMzAuMmwwIDI0OS44LTQ0OCAwIDAtMjQ5LjggMTQxLjEgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOSAxNDEuMSAwek0zMDYuOSAzMmwtMTY1LjcgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOXoiXX0sUDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1pbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsWyJpbnN0YWdyYW0tc3F1YXJlIl0sImUwNTUiLCJNMTk0LjQgMjExLjdhNTMuMyA1My4zIDAgMSAwIDU5LjIgODguNiA1My4zIDUzLjMgMCAxIDAgLTU5LjItODguNnptMTQyLjMtNjguNGMtNS4yLTUuMi0xMS41LTkuMy0xOC40LTEyLTE4LjEtNy4xLTU3LjYtNi44LTgzLjEtNi41LTQuMSAwLTcuOSAuMS0xMS4yIC4xcy03LjIgMC0xMS40LS4xYy0yNS41LS4zLTY0LjgtLjctODIuOSA2LjUtNi45IDIuNy0xMy4xIDYuOC0xOC40IDEycy05LjMgMTEuNS0xMiAxOC40Yy03LjEgMTguMS02LjcgNTcuNy02LjUgODMuMiAwIDQuMSAuMSA3LjkgLjEgMTEuMXMwIDctLjEgMTEuMWMtLjIgMjUuNS0uNiA2NS4xIDYuNSA4My4yIDIuNyA2LjkgNi44IDEzLjEgMTIgMTguNHMxMS41IDkuMyAxOC40IDEyYzE4LjEgNy4xIDU3LjYgNi44IDgzLjEgNi41IDQuMSAwIDcuOS0uMSAxMS4yLS4xczcuMiAwIDExLjQgLjFjMjUuNSAuMyA2NC44IC43IDgyLjktNi41IDYuOS0yLjcgMTMuMS02LjggMTguNC0xMnM5LjMtMTEuNSAxMi0xOC40YzcuMi0xOCA2LjgtNTcuNCA2LjUtODMgMC00LjItLjEtOC4xLS4xLTExLjRzMC03LjEgLjEtMTEuNGMuMy0yNS41IC43LTY0LjktNi41LTgzLTIuNy02LjktNi44LTEzLjEtMTItMTguNGwwIC4yem0tNjcuMSA0NC41YzE4LjEgMTIuMSAzMC42IDMwLjkgMzQuOSA1Mi4ycy0uMiA0My41LTEyLjMgNjEuNmMtNiA5LTEzLjcgMTYuNi0yMi42IDIyLjZzLTE5IDEwLjEtMjkuNiAxMi4yYy0yMS4zIDQuMi00My41LS4yLTYxLjYtMTIuM3MtMzAuNi0zMC45LTM0LjktNTIuMiAuMi00My41IDEyLjItNjEuNiAzMC45LTMwLjYgNTIuMi0zNC45IDQzLjUgLjIgNjEuNiAxMi4ybC4xIDB6bTI5LjItMS4zYy0zLjEtMi4xLTUuNi01LjEtNy4xLTguNnMtMS44LTcuMy0xLjEtMTEuMSAyLjYtNy4xIDUuMi05LjggNi4xLTQuNSA5LjgtNS4yIDcuNi0uNCAxMS4xIDEuMSA2LjUgMy45IDguNiA3IDMuMiA2LjggMy4yIDEwLjZjMCAyLjUtLjUgNS0xLjQgNy4zcy0yLjQgNC40LTQuMSA2LjItMy45IDMuMi02LjIgNC4yLTQuOCAxLjUtNy4zIDEuNWMtMy44IDAtNy41LTEuMS0xMC42LTMuMmwtLjEgMHpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTM1NyAzODljLTE4LjcgMTguNy00MS40IDI0LjYtNjcgMjUuOS0yNi40IDEuNS0xMDUuNiAxLjUtMTMyIDAtMjUuNi0xLjMtNDguMy03LjItNjctMjUuOXMtMjQuNi00MS40LTI1LjgtNjdjLTEuNS0yNi40LTEuNS0xMDUuNiAwLTEzMiAxLjMtMjUuNiA3LjEtNDguMyAyNS44LTY3czQxLjUtMjQuNiA2Ny0yNS44YzI2LjQtMS41IDEwNS42LTEuNSAxMzIgMCAyNS42IDEuMyA0OC4zIDcuMSA2NyAyNS44czI0LjYgNDEuNCAyNS44IDY3YzEuNSAyNi4zIDEuNSAxMDUuNCAwIDEzMS45LTEuMyAyNS42LTcuMSA0OC4zLTI1LjggNjdsMCAuMXoiXX0sbkN0PVA4ZSxsQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmNTBhIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA3LjhhMjQwLjIgMjQwLjIgMCAxIDEgMCA0ODAuNCAyNDAuMiAyNDAuMiAwIDEgMSAwLTQ4MC40em0wIDIwLjVhMjE5LjcgMjE5LjcgMCAxIDAgMCA0MzkuNCAyMTkuNyAyMTkuNyAwIDEgMCAwLTQzOS40em0wIDguMmEyMTEuNSAyMTEuNSAwIDEgMSAwIDQyMyAyMTEuNSAyMTEuNSAwIDEgMSAwLTQyM3ptMTg2LjIgMjYwYy00LjQgMTcuMS0xMS4yIDMzLjUtMjAuMSA0OC43bC03NC4xLTM1LjkgNjEuNSA1NC44Yy0xMC42IDE0LjEtMjMuMiAyNi42LTM3LjIgMzcuM2wtNTQuOC02MS42IDM1LjkgNzQuM2MtMTUuMiA5LTMxLjYgMTUuOC00OC42IDIwLjJsLTI3LjMtNzguNSA0LjggODIuOWMtOC42IDEuMi0xNy40IDEuOC0yNi4zIDEuOHMtMTcuNy0uNi0yNi4zLTEuOGw0LjgtODIuNS0yNy4yIDc4Yy0xNy4xLTQuNS0zMy40LTExLjMtNDguNy0yMC4ybDM1LjktNzQuMy01NC45IDYxLjZjLTE0LTEwLjctMjYuNi0yMy4yLTM3LjItMzcuM2w2MS42LTU0LjktNzQuMyAzNS45QzgwLjcgMzM4IDc0IDMyMS43IDY5LjUgMzA0LjZsNzcuOC0yNy4xLTgyLjIgNC44Yy0xLjItOC42LTEuOC0xNy4zLTEuOC0yNi4yIDAtOSAuNi0xNy44IDEuOC0yNi41bDgyLjQgNC44LTc3LjktMjcuMmM0LjUtMTcuMSAxMS4zLTMzLjUgMjAuMi00OC43bDc0LjIgMzUuOS02MS41LTU0LjljMTAuNy0xNCAyMy4yLTI2LjYgMzcuMy0zNy4ybDU0LjggNjEuNS0zNS44LTc0LjJjMTUuMi04LjkgMzEuNi0xNS43IDQ4LjYtMjAuMWwyNi45IDc3LjItNC43LTgxLjZjOC42LTEuMiAxNy40LTEuOCAyNi4zLTEuOHMxNy43IC42IDI2LjMgMS44bC00LjcgODIuMiAyNy03Ny44YzE3LjMgNC41IDMzLjYgMTEuNCA0OC42IDIwLjJsLTM1LjggNzQuMSA1NC43LTYxLjVjMTQuMSAxMC43IDI2LjYgMjMuMiAzNy4yIDM3LjJsLTYxLjQgNTQuOCA3NC4xLTM1LjljOC45IDE1LjIgMTUuNyAzMS42IDIwLjIgNDguNmwtNzcuOCAyNy4xIDgyLjItNC43YzEuMiA4LjcgMS44IDE3LjUgMS44IDI2LjUgMCA4LjktLjYgMTcuNi0xLjggMjYuMmwtODIuMS00LjcgNzcuNyAyNy4xeiJdfSxjQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnVsY3J1bSIsaWNvbjpbMjU2LDUxMixbXSwiZjUwYiIsIk02My44IDE2NC4xTDI4LjQgMjA3LjctNyAxNjQuMSAyOC40IDEyMC42IDYzLjggMTY0LjF6TTExMi4yIDBsLTIwLjUgMTk4LjItNTEgNTcuOCA1MSA1Ny44IDIwLjUgMTk4LjIgMC0yMTEuMS00MS4xLTQ0LjkgNDEuMS00NC45IDAtMjExLjF6bTc5LjcgMTY0LjFsMzUuNCA0My42IDM1LjQtNDMuNi0zNS40LTQzLjUtMzUuNCA0My41em0tNDguNSA0N2w0MS4xIDQ0LjktNDEuMSA0NC45IDAgMjExLjEgMjAuNi0xOTguMiA1MS01Ny44LTUxLTU3LjgtMjAuNi0xOTguMiAwIDIxMS4xeiJdfSxkQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJjaC1saW51eCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NyIsIk0yODguNy03LjhjLTI0LjEgNTktMzguNiA5Ny43LTY1LjQgMTU1IDE2LjQgMTcuNCAzNi42IDM3LjYgNjkuNCA2MC41LTM1LjItMTQuNS01OS4yLTI4LjktNzcuMi00NC0zNC4zIDcxLjYtODguMSAxNzMuNS0xOTcuMiAzNjkuNCA4NS43LTQ5LjUgMTUyLjItODAgMjE0LjEtOTEuNi0yLjctMTEuNC00LjEtMjMuOC00LTM2LjdsLjEtMi43YzEuNC01NC45IDI5LjktOTcuMiA2My44LTk0LjRzNjAuMiA0OS44IDU4LjggMTA0LjdjLS4zIDEwLjMtMS40IDIwLjItMy40IDI5LjQgNjEuMiAxMiAxMjcgNDIuNCAyMTEuNiA5MS4yLTE2LjctMzAuNy0zMS42LTU4LjMtNDUuOC04NC43LTIyLjQtMTcuNC00NS43LTM5LjktOTMuMy02NC40IDMyLjcgOC41IDU2LjMgMTguMyA3NC41IDI5LjMtMTQ0LjUtMjY5LjEtMTU2LjItMzA0LjgtMjA1LjgtNDIxLjF6Il19LHVDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRpdmVyc2UiLGljb246WzU3Niw1MTIsW10sImU4NjUiLCJNMzk0LjggNTI2LjlhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6bS01MC4xLTgwLjZjLTUuNSAxMC45LTcuNCAyMy4zLTUuNiAzNS40TDE2OC43IDQ1NC40YzUuNS0xMC45IDcuNS0yMy4zIDUuNy0zNS40bDE3MC4zIDI3LjN6TTExMi43IDQ4MS42YTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44em0yNTcuNy02MS40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zbC03MC42LTcwLjkgMzMuNi0xNyA2Mi40IDYyLjd6TTQ4Ni4xIDI2MWM4LjcgOC42IDE5LjggMTQuMyAzMS45IDE2LjRMNDM5LjQgNDMwLjhjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuNEw0ODYuMSAyNjF6TTM3Ni43IDIxOS4zbDMwLjUgMTk1LjFjLTEyLjEtMS45LTI0LjUtLjEtMzUuNCA1LjNsLTMyLjItMjA2LjMgMzcuMiA2ek0zNTAuNCAzMjguOUwxNzQuMiA0MTguMmMtMi0xMi4xLTcuNi0yMy4yLTE2LjItMzJsMTg2LjYtOTQuNiA1LjggMzcuMnptLTE1Mi43LTIybC00MC4zIDc4LjdjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuM2w0NS42LTg5IDI2LjYgMjYuN3pNMTI0LjcgMzY5Yy0xMi4xLTEuOC0yNC40IC4yLTM1LjQgNS42TDYyLjcgMjA0LjNjMTIuMSAxLjggMjQuNS0uMSAzNS40LTUuNkwxMjQuNyAzNjl6bTE0Ny4xLTQ3LjhsLTMzLjYgMTctMTM5LjQtMTM5LjljMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0wyNzEuOCAzMjEuMnptMTk3LjUtOTIuOGMyIDEyLjEgNy42IDIzLjIgMTYuMiAzMS45bC04OS4zIDQ1LjItNS44LTM3LjIgNzguOS00MHptNTUuNiA0NC4zYTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44ek0yODQuNiA1OC43YzguNyA4LjYgMTkuOCAxNC4zIDMxLjggMTYuM2wtOTUuMyAxODYuMS0yNi42LTI2LjcgOTAtMTc1Ljh6TTQ3NC45IDE5Mi4xYy01LjUgMTAuOS03LjUgMjMuMy01LjcgMzUuM2wtMjA2LjQtMzMuMSAxNy4yLTMzLjUgMTk1IDMxLjN6TTY4LjcgMTk5LjZBNTQgNTQgMCAxIDEgNzQuNiA5MS44IDU0IDU0IDAgMSAxIDY4LjcgMTk5LjZ6bTQzMi0zMy40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zTDM1My41IDY5LjNjMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0w1MDAuNiAxNjYuMnpNMjI5LjMgMTUyLjZsLTE3LjIgMzMuNS04Ny40LTE0YzUuNC0xMC45IDcuNC0yMy4zIDUuNS0zNS40bDk5IDE1Ljl6bTEzOS41IDE1LjlsLTM3LjItNi0xMy42LTg3LjJjMTIuMSAxLjcgMjQuNS0uMyAzNS4zLTUuOWwxNS41IDk5LjF6TTI2Ny44IDI2LjJjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtMTUzLjkgNzhjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMxLjlsMTUzLjktNzh6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjgtMTA3LjggNTQgNTQgMCAxIDEgLTUuOCAxMDcuOHoiXX0scEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlLXJldmVyc2UiLGljb246WzQ0OCw1MTIsW10sImU2M2QiLCJNMjk4LjUgMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjMgOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMiAxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjkgNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42IDIuNSAyLjcgNC45IDUuMiA2LjkgNy40IC43IC44IDEuNCAxLjUgMS45IDIgMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yLS4xIC40LS4xIC40LS41IDIuMWwtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOS01LjYgMjEuNi0xMS4yIDQzLjItMTYuNCA2My40LTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45LTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuMy0yNC45IDE3LjgtNzYuOCA1My42LTg2LjggNjAtMSAuNi0yIDEuMy0zLjQgMi4zLS41IC40LTMuMiAyLjItMy45IDIuNy00LjkgMy4zLTguMyA1LjUtMTIuMSA3LjMtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjMtLjgtLjUtMy40LTIuNC0zLjktMi43LTEuNC0xLTIuNS0xLjctMy40LTIuMy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjAtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjMtMi04LjItMTAuNS00MS0yMy4zLTkwLjUtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOC0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWwtMS41LTUuOC0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjEtOS45LTI0LjVjLTEuNS0zLjgtLjctOC4yIDItMTEuMiAxLjItMS4zIDEuOC0yIDIuNi0yLjggMi0yLjIgNC40LTQuNyA2LjktNy40IDcuMy03LjcgMTUtMTUuNyAyMi43LTIzLjUgNy40LTcuNSAxNy4zLTExLjYgMjguOS0xMi45IDkuMS0xLjEgMTguNS0uNSAyNy43IDEuMiAuNSAuMSAxIC4yIDEuNSAuM2wzOC4xLTQ0YzItMi40IDQuOC0zLjcgNy44LTMuN2wxNDggMHptLTQuNyAyMS4xbC0xMzguNiAwLTM5LjEgNDUuMWMtMi42IDMtNi43IDQuMy0xMC42IDMuMi0uMi0uMS0uNy0uMi0xLjUtLjQtMS4zLS4zLTIuOS0uNi00LjUtLjktNy40LTEuMy0xNC45LTEuOC0yMS43LTEtNy4zIC45LTEzIDMuMi0xNi42IDYuOS03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjMtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuNyAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjggMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOSA1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40IDEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTEgMTAuMSA0MC4xIDE2LjQgNTEuMyA0MC4yIDY4LjMgMjQuNiAxNy42IDc2LjMgNTMuMiA4NS45IDU5LjMgMS4yIC44IDIuNSAxLjYgNCAyLjcgLjYgLjQgMy4yIDIuMiAzLjkgMi43IDQgMi44IDYuNyA0LjQgOS4yIDUuNiAyLjIgMSAzLjkgMS41IDUuMSAxLjVzMi45LS41IDUuMS0xLjVjMi41LTEuMiA1LjItMi44IDkuMi01LjYgLjctLjUgMy4zLTIuMyAzLjktMi43IDEuNi0xLjEgMi44LTEuOSA0LTIuNyA5LjYtNi4xIDYxLjMtNDEuNyA4NS45LTU5LjMgMjMuOC0xNy4xIDMwLjItMjguMiA0MC4xLTY4LjMgMi4xLTguMyAxMC41LTQxLjEgMjMuMy05MC43IDUuMy0yMC42IDEwLjktNDIuMiAxNi41LTYzLjggMi03LjYgMy44LTE0LjYgNS40LTIwLjkgLjctMi45IC45LTMuNCAxLjItNC44bC0xMy4zLTM4LjhjLS44LTIuNC0uOC01LjEgLjItNy41bDguOC0yMmMtMS41LTEuNi0zLjEtMy4zLTQuOC01LjEtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zLTMuNy0zLjctOS4zLTYtMTYuNi02LjktNi44LS44LTE0LjQtLjMtMjEuNyAxLTEuNyAuMy0zLjIgLjYtNC41IC45LS44IC4yLTEuMyAuMy0xLjUgLjQtMy44IDEuMS03LjktLjItMTAuNi0zLjJMMjkzLjggMjEuMXpNMjI0LjUgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjIgMS4zIDYuMi0xLjcgOC40LTQ0LjEgMzQuNi00OC4xIDM4LjItOS44IDkuNS0xMy44IDkuNS05LjgtNS45LTEzLjgtOS41LTQ1LjEtMzYtNDguMS0zOC4yLTUuMS02LjItMS43LTguNCAxMy45LTcuNSAyOC4zLTE1LjIgMzIuNS0xNC4xIDM1LjQtMTQuMWwtLjIgMHptLjEtMjMwLjdjLjcgMCA4LjggLjIgMjAuNSA0LjIgMTIuMyA0LjIgMjUuNyA5LjQgMzEuOSA5LjRzNTEuOS04LjkgNTEuOS04LjkgNTQuMiA2Ni43IDU0LjIgODEtNi44IDE4LTEzLjcgMjUuNC0zNi44IDM5LjgtNDAuNyA0My45LTExLjkgMTAuNS03LjEgMjEuOCAxMS43IDI1LjggMy45IDQwLjQtMjEgMjQuNC0yOS40IDIyLjgtMjguNC0xMi4yLTM1LjctMTcuMS0zMC41LTI0LjMtMzAuNS0zMS44IDI0LTIwLjggMjguNC0yMy45IDI0LjctMTQuOCAyNS4xLTE5LjQgLjMtNi01LjctMTcuNC0xNi43LTI2LjctMTQuOS0zNi44IDE5LjEtMTUuNCAzMS41LTIwLjIgMzYuMi0xMy43IDM5LjItMTUuMSAyLjItMi43LTYuOC0zLjYtMzQuNi00LjMtNDYuMS0xLjEtMzEuMiA4LjItMzIuOCAxMC45LTMgMi43LTEuNCAxMS44IDEwLjEgNTIuOCAxMC45IDYwLjYgMi40IDEyLjktNS44IDE0LjgtMjIuMSA1LjItMjYuOCA1LjItMTguNi0zLjMtMjYuOC01LjItNi42LTctNS44LTE0LjggOS4zLTUxLjUgMTAuOS02MC42IC4yLTkuMi0xLjQtMTEuOC0yMS4zLTcuNi0zMi44LTEwLjktMzcuMSAuMi00Ni4xIDEuMS05LjggMi4yLTYuOCAzLjYgMjYuOCAxMC40IDM5LjIgMTUuMSAyOS43IDEwIDMxLjUgMjAuMi05IDI1LjQtMTQuOSAzNi44LTYuMSAxMi44LTUuNyAxNy40IDIwLjYgMTYuNCAyNS4xIDE5LjQgMjguNCAxNi40IDI4LjQgMjMuOS0yMy4yIDI3LTMwLjUgMzEuOC0yNy4yIDE1LjQtMzUuNyAxNy4xLTIxLjctOC4yLTI5LjQtMjIuOC0uOC0yOS4xIDMuOS00MC40LTMuMy0xNy43LTcuMS0yMS44LTMzLjgtMzYuNS00MC43LTQzLjktMTMuNy0xMS4yLTEzLjctMjUuNCA1NC4yLTgxIDU0LjItODEgNDUuOCA4LjkgNTEuOSA4LjkgMTkuNS01LjIgMzEuOS05LjQgMjAuNi00LjIgMjAuNi00LjJsLS4zIDB6Il19LGhDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhbmV4IixpY29uOls1MTIsNTEyLFtdLCJmMzc0IiwiTTQ1My4yIDMybC0zMTIgMEMxMDIuMyAzMiA2NSA2My4yIDU3LjkgMTAxLjdMMS4zIDQxMC4zQy01LjggNDQ4LjggMjAgNDgwIDU5IDQ4MGwzMTIgMGMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN0w1MTEgMTAxLjhDNTE4IDYzLjIgNDkyLjIgMzIgNDUzLjIgMzJ6TTM5NSAzNzkuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlsLTIwLjUtMjkuNi02OC44LTk5LjggMTguOC0yOC45IDguOS00LjggMTAzLjEgMTEyLjQgNC45IDQuNWMxOS40LTE4LjggMzMuOC0zMi40IDMzLjgtMzIuNCA3LjctNi41IDIxLjUtMi45IDMwLjcgNy45IDkgMTAuNSAxMC42IDI0LjcgMi43IDMxLjMtMS44IDEuMy0xNS41IDExLjQtMzUuMyAyNS42bDQuNSA3LjMgOTQuOSAxMTkuNC02LjMgNy45eiJdfSxmQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnM4IixpY29uOls2NDAsNTEyLFtdLCJmM2Q1IiwiTTEwNC4zIDI2OS4ybDI2LjEgMCAwLTI2LjItMjYuMSAwIDAgMjYuMnpNMTU2LjggMjQzbC0uMS0yNi4yIDAtLjljLS4yLTEwLjQtNC40LTIwLjMtMTEuOS0yNy42cy0xNy41LTExLjMtMjcuOS0xMS4xLTIwLjMgNC40LTI3LjYgMTEuOC0xMS4zIDE3LjUtMTEuMiAyNy45bDAgLjIgMjYuNCAwIDAtLjJjLjEtMy40IDEuNS02LjYgMy45LTlzNS43LTMuNyA5LjEtMy43IDYuNyAxLjMgOS4xIDMuNyAzLjggNS42IDMuOSA5bDAgMjYuMiAyNi4zIDB6bTUyLjQgMjUuOGMwIDEyLTIuNCAyMy44LTYuOSAzNC45cy0xMS4zIDIxLjEtMTkuNyAyOS42LTE4LjUgMTUuMi0yOS42IDE5LjctMjIuOSA2LjktMzQuOSA2LjlsLS42IDBjLTI0LjIgMC00Ny4zLTkuNi02NC40LTI2LjdTMjYuMyAyOTMgMjYuMyAyNjguOGwtMjYuMyAwIDAgLjJjMCAxNS40IDMuMSAzMC43IDkgNDQuOXMxNC42IDI3LjIgMjUuNSAzOC4xIDIzLjkgMTkuNSAzOC4xIDI1LjQgMjkuNSA4LjkgNDQuOSA4LjlsLjggMGMxNS40IDAgMzAuNy0zIDQ0LjktOXMyNy4yLTE0LjYgMzguMS0yNS41IDE5LjUtMjMuOCAyNS40LTM4LjEgOC45LTI5LjUgOC45LTQ0LjlsMC0yNi0yNi4zIDAgMCAyNnptLTE1Ny4yIDBjLjEgMTcuMyA3IDMzLjkgMTkuMiA0Ni4xczI4LjggMTkuMSA0Ni4xIDE5LjEgMzMuOS02LjkgNDYuMS0xOS4xIDE5LjItMjguOCAxOS4yLTQ2LjFsLTI2LjMgMGMtLjIgMTAuMi00LjQgMjAtMTEuNyAyNy4ycy0xNy4xIDExLjItMjcuNCAxMS4yLTIwLjEtNC0yNy40LTExLjItMTEuNS0xNi45LTExLjctMjcuMmwwLTI2LTI2LjMgMCAwLTI2LjZjLjMtMTcuMyA3LjQtMzMuOCAxOS43LTQ1LjhzMjktMTguOCA0Ni4zLTE4LjYgMzMuOCA3LjIgNDUuOSAxOS41IDE4LjkgMjguOSAxOC45IDQ2LjJsMCAyNS4zIDI2LjMgMCAwLTI1LjNjMC0yNC4zLTkuNy00Ny43LTI2LjktNjQuOXMtNDAuNS0yNi45LTY0LjktMjYuOS00Ny43IDkuNy02NC45IDI2LjktMjYuOSA0MC41LTI2LjkgNjQuOWwwIDI1LjQgMjYuMyAwIDAgMjZ6bTQxOC40LTcxLjJjMTMuNyAwIDI0LjYgNi42IDMwLjEgMTguM2wuNyAxLjUgMjMuMi0xMS41LS42LTEuNGMtOC0xOS4zLTI4LjUtMzEuMy01My40LTMxLjMtMjMuMSAwLTQzLjYgMTEuNC01MSAyOC40LS4xIDI2LjktLjIgMjMuOSAwIDI0LjggNC43IDExIDE0LjYgMTkuNCAyOC43IDI0LjIgNi41IDIgMTMuMSAzLjMgMTkuOCA0IDUuNSAuNyAxMC42IDEuNCAxNS44IDMuMSA2LjQgMi4xIDEwLjUgNS4zIDEyLjggOS44bDAgOS45Yy0zLjcgNy41LTEzLjggMTIuMy0yNS44IDEyLjMtMTQuMyAwLTI2LTYuOS0zMS45LTE5bC0uNy0xLjUtMjMgMTEuNSAuNiAxLjRjNy45IDE5LjQgMjkuNiAzMiA1NS4zIDMyIDIzLjYgMCA0NC42LTExLjQgNTIuMy0yOC40bC4yLTI1LjktLjItLjdjLTQuOS0xMS0xNS4yLTE5LjYtMjguOS0yNC4yLTcuNy0yLjctMTQuMy0zLjYtMjAuNy00LjQtNS0uNS0xMC0xLjUtMTQuOC0yLjktNi4zLTEuOS0xMC40LTUuMS0xMi42LTkuNmwwLTguNGMzLjQtNy40IDEyLjktMTIuMSAyNC4yLTEyLjFsMCAwek0yODcuNiAzMTEuM2wyNi4xIDAgMC02OC40LTI2LjEgMCAwIDY4LjR6TTYzOS44IDI1OGMtMi45LTYuMy04LjMtMTItMTUuNC0xNi43IDUuNi0zLjggMTAuMS05LjEgMTMtMTUuM2wuMi0yNS4zLS4yLS43Yy03LjQtMTYtMjYuNy0yNi43LTQ4LjItMjYuN1M1NDguNSAxODQgNTQxLjEgMjAwbC0uMiAyNS4zIC4yIC43YzIuOSA2LjEgNy40IDExLjQgMTMgMTUuMy03LjIgNC43LTEyLjUgMTAuNS0xNS40IDE2LjdsLS4yIDI4LjkgLjIgLjdjNy42IDE2IDI3LjkgMjYuNyA1MC42IDI2LjdzNDMuMS0xMC43IDUwLjYtMjYuN2wuMi0yOC45LS4yLS43em0tNzMuMi01MC44YzMuNi02LjMgMTIuNi0xMC41IDIyLjYtMTAuNXMxOSA0LjIgMjIuNiAxMC41bDAgMTMuN2MtMy41IDYuMi0xMi42IDEwLjMtMjIuNiAxMC4zcy0xOS4xLTQuMi0yMi42LTEwLjNsMC0xMy43em00Ny4zIDcyLjJjLTMuOCA2LjYtMTMuMyAxMC45LTI0LjcgMTAuOS0xMS4xIDAtMjEtNC40LTI0LjctMTAuOWwwLTE2LjJjMy43LTYuMyAxMy41LTEwLjUgMjQuNy0xMC41IDExLjMgMCAyMC45IDQuMSAyNC43IDEwLjVsMCAxNi4yek0zNzYuNCAyNjZsLTU5LjgtODkuNy0yOSAwIDAgNDAuNiAyNi41IDAgMCAuNCA2Mi41IDk0LjEgMjUuNyAwIDAtMTM1LjEtMjUuOSAwIDAgODkuN3oiXX0sSThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1waW50ZXJlc3QiLGljb246WzQ0OCw1MTIsWyJwaW50ZXJlc3Qtc3F1YXJlIl0sImYwZDMiLCJNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNzIuNiAwLTIuMi0uOGMtNS40LTQ4LjEtMy4xLTU3LjUgMTUuNy0xMzQuNyAzLjktMTYgOC41LTM1IDEzLjktNTcuOSAwIDAtNy4zLTE0LjgtNy4zLTM2LjUgMC03MC43IDc1LjUtNzggNzUuNS0yNSAwIDEzLjUtNS40IDMxLjEtMTEuMiA0OS44LTMuMyAxMC42LTYuNiAyMS41LTkuMSAzMi01LjcgMjQuNSAxMi4zIDQ0LjQgMzYuNCA0NC40IDQzLjcgMCA3Ny4yLTQ2IDc3LjItMTEyLjQgMC01OC44LTQyLjMtOTkuOS0xMDIuNi05OS45LTY5LjkgMC0xMTAuOSA1Mi40LTExMC45IDEwNi42IDAgMjEuMSA4LjIgNDMuNyAxOC4zIDU2IDIgMi40IDIuMyA0LjUgMS43IDctMS4xIDQuNy0zLjEgMTIuOS00LjcgMTkuMi0xIDQtMS44IDcuMy0yLjEgOC42LTEuMSA0LjUtMy41IDUuNS04LjIgMy4zLTMwLjYtMTQuMy00OS44LTU5LjEtNDkuOC05NS4xIDAtNzcuNSA1Ni4yLTE0OC42IDE2Mi4yLTE0OC42IDg1LjIgMCAxNTEuNCA2MC43IDE1MS40IDE0MS44IDAgODQuNi01My4zIDE1Mi43LTEyNy40IDE1Mi43LTI0LjkgMC00OC4zLTEyLjktNTYuMy0yOC4yIDAgMC0xMi4zIDQ2LjktMTUuMyA1OC40LTUgMTkuMy0xNy42IDQyLjktMjcuNCA1OS4zTDM4NCA0ODBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6Il19LG1DdD1JOGUsZ0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aC1iIixpY29uOlsyNTYsNTEyLFtdLCJmMjk0IiwiTTE2NC45IDI2MEwyNTcuNSAxNTYuNyAxMTEuNiAwIDExMS42IDIwNi4zIDI1LjQgMTIwLjItNiAxNTEuNiAxMDIuMSAyNjAtNiAzNjguNCAyNS40IDM5OS44IDExMS42IDMxMy43IDExNC4zIDUxMiAyNjIuOCAzNjMuNCAxNjQuOSAyNjB6bTQwLjktMTAzbC01MCA1MC0uMy0xMDAuMyA1MC4zIDUwLjN6bS01MCAxNTZsNTAgNTAtNTAuMyA1MC4zIC4zLTEwMC4zeiJdfSxiQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JpcGZpcmUiLGljb246WzMyMCw1MTIsW10sImYzYWMiLCJNODAuNSAzMDEuNGMwLTczLjggMTA1LjEtMTIyLjUgMTA1LjEtMjAzIDAtNDcuMS0zNC04OC0zOS4xLTkwLjQgLjQgMy4zIC42IDYuNyAuNiAxMCAwIDkyLjEtMTQ3LjEgMTUzLjktMTQ3LjEgMjY4LjYgMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6Il19LEE4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ29vZ2xlLXBsdXMiLGljb246WzQ0OCw1MTIsWyJnb29nbGUtcGx1cy1zcXVhcmUiXSwiZjBkNCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwIDI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjQtMzQuMSAwLTYxLjkgMjguMi02MS45IDYzLjIgMCAzNC45IDI3LjggNjMuMiA2MS45IDYzLjIgMzkuNiAwIDU0LjQtMjguNSA1Ni44LTQzLjFsLTU2LjkgMCAwLTM0LjQgOTQuNCAwYzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjYtNTUuMyAwLTEwMC00NC43LTEwMC0xMDB6bTI5MSAxOC4ybDAgMjktMjkuMiAwIDAtMjktMjkgMCAwLTI5LjIgMjkgMCAwLTI5IDI5LjIgMCAwIDI5IDI5IDAgMCAyOS4yLTI5IDB6Il19LHZDdD1BOGUseEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGVlIixpY29uOls1MTIsNTEyLFtdLCJlODYzIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zODUuNiAxMTMuOGwwIDAtMTc3IDBjLTUyLjQgMC05NC44IDQyLjQtOTQuOCA5NC44bDAgMTc3YzAgNyA1LjcgMTIuNiAxMi42IDEyLjZsMTg2LjUgMGM0Ny4xIDAgODUuMy0zOC4yIDg1LjMtODUuM2wwLTcyLjdjMC03LTUuNy0xMi42LTEyLjYtMTIuNmwtMTQ1LjQgMGMtNyAwLTEyLjYgNS43LTEyLjYgMTIuNmwwIDMxLjZjMCA2LjYgNS4xIDEyLjEgMTEuNiAxMi42bDEgMCA4OC41IDBjNi42IDAgMTIuMSA1LjEgMTIuNiAxMS42bDAgMSAwIDYuM2MwIDIwLjktMTcgMzcuOS0zNy45IDM3LjlsLTEyMC4xIDBjLTcgMC0xMi42LTUuNy0xMi42LTEyLjZsMC0xMjAuMWMwLTIwLjQgMTYuMS0zNy4xIDM2LjQtMzcuOWwxLjYgMCAxNzcgMGM3IDAgMTIuNi01LjcgMTIuNi0xMi42bDAtMzEuNmMwLTctNS42LTEyLjYtMTIuNi0xMi42eiJdfSx5Q3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieG1wcCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NCIsIk0wIDQ3LjJjMy41IDEzNy4xIDExNy4xIDI3OC42IDI1Mi45IDM1Ni43LTMxLjUgMjUtNjcuMiA0NC4xLTEwNi4yIDUzLjlsMCA1LjRjNTYuNC0yLjMgOTguMS0yMC4xIDE0MS4zLTQwLjcgNjUuNyAzNC42IDEyMi4yIDM5LjkgMTQxLjQgNDAuN2wwLTUuNGMtMzktOS44LTc0LjctMjguOC0xMDYuMi01My44IDEzNS43LTc4LjIgMjQ5LjMtMjE5LjggMjUyLjgtMzU2LjgtNTguNCAyNS43LTExOS4xIDQ0LjItMTgwLjEgNjIuM2wwIDBjMy40IDU5LTIwLjIgMTcwLjQtMTA3LjkgMjYyLjMtODguNC05Mi4zLTExMS4yLTIwNC4xLTEwNy44LTI2Mi4zbDAgMEMxMTcuNyA5Mi42IDU5LjMgNzAuMiAwIDQ3LjJ6TTkzLjkgOTdsNzMuNiAyMS44QzE2NS40IDIxNiAyMjYuOCAzNTggMzQxLjMgNDMyLjIgMTkwLjUgMzc2LjkgODkuOSAyMTUuNyA5My45IDk3em0zODguMyAwYzMuMyA5OS02NS42IDIyNC43LTE3MS43IDI5Ni40LTQuNy00LjEtOS4zLTguNC0xMy44LTEyLjcgNzctODAuMiAxMTMuMi0xODYuMyAxMTEuOS0yNjEuOUw0ODIuMSA5N3pNMjY0LjUgNDEwLjVjMyAxLjYgNS45IDMuMiA4LjkgNC43LTEyLjUgNi40LTI1LjQgMTIuMS0zOC42IDE3IDEwLjMtNi43IDIwLjItMTMuOSAyOS43LTIxLjd6Il19LHdDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUiLGljb246WzUxMiw1MTIsW10sImYzNmYiLCJNMjU1LjkgMTIwLjlsOS4xLTE1LjdjNS42LTkuOCAxOC4xLTEzLjEgMjcuOS03LjVzMTMuMSAxOC4xIDcuNSAyNy45bC04Ny41IDE1MS41IDYzLjMgMGMyMC41IDAgMzIgMjQuMSAyMy4xIDQwLjhsLTE4NS41IDBjLTExLjMgMC0yMC40LTkuMS0yMC40LTIwLjRzOS4xLTIwLjQgMjAuNC0yMC40bDUyIDAgNjYuNi0xMTUuNC0yMC44LTM2LjFjLTUuNi05LjgtMi4zLTIyLjIgNy41LTI3LjkgOS44LTUuNiAyMi4yLTIuMyAyNy45IDcuNWw4LjkgMTUuN3ptLTc4LjcgMjE4bC0xOS42IDM0Yy01LjYgOS44LTE4LjEgMTMuMS0yNy45IDcuNXMtMTMuMS0xOC4xLTcuNS0yNy45bDE0LjYtMjUuMmMxNi40LTUuMSAyOS44LTEuMiA0MC40IDExLjZ6bTE2OC45LTYxLjdsNTMuMSAwYzExLjMgMCAyMC40IDkuMSAyMC40IDIwLjRTNDEwLjUgMzE4IDM5OS4yIDMxOGwtMjkuNSAwIDE5LjkgMzQuNWM1LjYgOS44IDIuMyAyMi4yLTcuNSAyNy45LTkuOCA1LjYtMjIuMiAyLjMtMjcuOS03LjUtMzMuNS01OC4xLTU4LjctMTAxLjYtNzUuNC0xMzAuNi0xNy4xLTI5LjUtNC45LTU5LjEgNy4yLTY5LjEgMTMuNCAyMyAzMy40IDU3LjcgNjAuMSAxMDR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAgMjU2YTIxNiAyMTYgMCAxIDEgNDMyIDAgMjE2IDIxNiAwIDEgMSAtNDMyIDB6Il19LGtDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXgiLGljb246WzY0MCw1MTIsW10sImY1Y2YiLCJNMzkzLjQgMTMxLjdjMCAxMyAyLjEgMzIuNy0yOC43IDQzLjgtOS41IDMuNC0xNiA5LjctMTYgOS43IDAtMzEgNC43LTQyLjIgMTcuNC00OC45IDkuOC01LjEgMjcuMi00LjYgMjcuMi00LjZ6TTI3Ny42IDE2Ny4ybC0zNC4yIDEzMi43LTI4LjUtMTA4LjZjLTcuNy0zMi0yMC44LTQ4LjUtNDguNC00OC41LTI3LjQgMC00MC43IDE2LjItNDguNCA0OC41TDg5LjUgMjk5LjkgNTUuMyAxNjcuMkM0OS43IDE0MC41IDIzLjkgMTI5IDAgMTMyTDY1LjYgMzc5LjlzMjEuNiAxLjYgMzIuNS00YzE0LjItNy4yIDIxLTEyLjggMjkuNi00Ni42IDcuNy0zMC4xIDI5LjEtMTE4LjQgMzEuMS0xMjQuNyA0LjgtMTQuOSAxMS4xLTEzLjggMTUuNCAwIDIgNi4zIDIzLjUgOTQuNiAzMS4xIDEyNC43IDguNiAzMy43IDE1LjQgMzkuMyAyOS42IDQ2LjYgMTAuOCA1LjUgMzIuNSA0IDMyLjUgNEwzMzIuOSAxMzJjLTI0LjQtMy4xLTQ5LjggOC45LTU1LjMgMzUuM3ptMTE1LjggNS4ycy00LjEgNi4zLTEzLjUgMTEuNmMtNiAzLjQtMTEuOCA1LjYtMTggOC42LTE1LjEgNy4zLTEzLjIgMTMuOS0xMy4yIDM1LjJsMCAxNTIuMXMxNi42IDIuMSAyNy40LTMuNGMxMy45LTcuMSAxNy4xLTE0IDE3LjMtNDQuOGwwLTE1MC4zIDAgMCAwLTl6bTE2My40IDg0LjFMNjQwIDEzMi44cy0zNS4xLTYtNTIuNSA5LjhjLTEzLjMgMTIuMS0yNC40IDI5LjYtNTQuMiA3Mi41LS41IC43LTYuMyAxMC41LTEzLjEgMC0yOS4zLTQyLjItNDAuOC02MC4zLTU0LjItNzIuNS0xNy40LTE1LjgtNTIuNS05LjgtNTIuNS05LjhsODMuMiAxMjMuNy04MyAxMjMuNHMzNi42IDQuNiA1NC0xMS4yYzExLjUtMTAuNSAxNy42LTIwLjQgNTIuNS03MC43IDYuOC0xMC41IDEyLjYtLjggMTMuMSAwIDI5LjQgNDIuNCAzOS4yIDU4LjEgNTMuMSA3MC43IDE3LjQgMTUuOCA1My4zIDExLjIgNTMuMyAxMS4ybC04My0xMjMuNHoiXX0sU0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVyY29tIixpY29uOls0NDgsNTEyLFtdLCJmN2FmIiwiTTM5MiAzMkw1NiAzMkMyNS4xIDMyIDAgNTcuMSAwIDg4TDAgNDI0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMzM2YzAtMzAuOS0yNS4xLTU2LTU2LTU2ek0yODMuNyAxMTQuMWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6bS03NC42LTcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDIxNi41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMjE2LjV6bS03NC43IDcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6TTU5LjcgMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjNjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM3pNMzgzLjEgMzcxLjhjLTcyLjggNjMtMjQxLjcgNjUuNC0zMTguMSAwLTE1LTEyLjggNC40LTM1LjUgMTkuNC0yMi43IDY1LjkgNTUuMyAyMTYuMSA1My45IDI3OS4zIDAgMTQuOS0xMi45IDM0LjMgOS44IDE5LjQgMjIuN3ptNS4yLTkzLjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM2MwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDEzNC4zeiJdfSxfQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3RldXJvcGUiLGljb246WzU3Niw1MTIsW10sImY3NWQiLCJNMjUwLjcgMjExLjdsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTIgNi44em02My43IDBsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjItLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTEuOSA2Ljh6bS05MS4zIDUwLjVsLTMuNCAwYy00LjggMC0zLjggNC0zLjggMTIuMSAwIDQuNy0yLjMgNi4xLTUuOCA2LjFzLTUuOC0xLjQtNS44LTYuMWwwLTM2LjZjMC00LjcgMi4zLTYuMSA1LjgtNi4xczUuOCAxLjQgNS44IDYuMWMwIDcuMi0uNyAxMC41IDMuOCAxMC41bDMuNCAwYzQuNy0uMSAzLjgtMy45IDMuOC0xMi4zIDAtOS45LTYuNy0xNC4xLTE2LjgtMTQuMWwtLjIgMGMtMTAuMSAwLTE2LjggNC4yLTE2LjggMTQuMWwwIDQwLjFjMCAxMC40IDYuNyAxNC4xIDE2LjggMTQuMWwuMiAwYzEwLjEgMCAxNi44LTMuOCAxNi44LTE0LjEgMC05LjkgMS4xLTEzLjgtMy44LTEzLjh6bS04MC43IDE3LjRsLTE0LjcgMCAwLTE5LjMgMTEuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTExLjQgMCAwLTE4LjMgMTQuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTIxLjcgMGMtMi40LS4xLTMuNyAxLjMtMy43IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDIxLjkgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44em0tNDItMTguNWM0LjYtMiA3LjMtNiA3LjMtMTIuNGwwLTExLjljMC0xMC4xLTYuNy0xNC4xLTE2LjgtMTQuMWwtMTMuNCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCA1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yMi45IDUuNiAwIDcuNCAyMy41Yy4yIDEgLjggMS44IDEuNiAyLjRzMS44IC45IDIuNyAuOGwzLjMgMGMyLjggMCA0LTEuOCAzLjItNC40bC04LjEtMjMuOXptLTMuOC0xNGMwIDQuOC0yLjUgNi4xLTYuMSA2LjFsLTUuOCAwIDAtMjAuOSA1LjggMGMzLjYgMCA2LjEgMS4zIDYuMSA2LjFsMCA4Ljd6TTE3Ni4xIDIyNmMtLjEtLjUtLjItMS0uNC0xLjRzLS42LS44LTEtMS4xLS44LS42LTEuMy0uNy0xLS4yLTEuNS0uMWwtNi45IDBjLS41IDAtMSAwLTEuNCAuMnMtLjkgLjQtMS4zIC43LS43IC43LS45IDEuMS0uNCAuOS0uNCAxLjRsLTExIDU5LjJjLS41IDIuNyAuOSA0LjEgMy40IDQuMWwzIDBjLjUgLjEgMSAwIDEuNS0uMnMuOS0uNCAxLjMtLjcgLjctLjcgLjktMS4yIC40LS45IC40LTEuNGwxLjgtMTEuMyAxMi4yIDAgMS44IDExLjNjMCAuNSAuMiAxIC40IDEuNHMuNSAuOSAuOSAxLjIgLjggLjYgMS4zIC43IDEgLjIgMS41IC4ybDMuNSAwYzIuNiAwIDMuOS0xLjQgMy40LTQuMUwxNzYuMSAyMjZ6bS0xMi4zIDM5LjNsNC43LTI5LjcgNC43IDI5LjctOS40IDB6bTg5LjMgMjAuMmwwLTUzLjIgNy41IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjUuOCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCAyLjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDcuMyAwIDAgNTMuMmMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMy40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAgMHptMjQ4LS44bC0xOS40IDAgMC0yNi43IDE2LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xNi4xIDAgMC0yNS44IDE5LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0yMi4yIDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbDAgMHpNNDA4IDIyMS44bC0uOCAwYy0xMC4xIDAtMTUuMyA0LjctMTUuMyAxNC4xbDAgNDAuMWMwIDkuMyA1LjIgMTQuMSAxNS4zIDE0LjFsLjggMGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xbDAtNDAuMWMwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFsMCAwem0xMC4yIDUyLjRjLS4xIDgtMyAxMS4xLTEwLjUgMTEuMXMtMTAuNS0zLjEtMTAuNS0xMS4xbDAtMzYuNmMwLTcuOSAzLTExLjEgMTAuNS0xMS4xczEwLjUgMy4yIDEwLjUgMTEuMWwwIDM2LjZ6bS00Ni41LTE0LjVjNi4xLTEuNiA5LjItNi4xIDkuMi0xMy4zbDAtOS43YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwtMTMuNyAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjkgMTEuNiAwIDEwLjQgMjcuMmMuMiAuNSAuNSAuOSAuOSAxLjFzLjkgLjQgMS40IC40bDEuNSAwYzEuNCAwIDItMSAxLjUtMi4zbC0xMC42LTI3LjN6bS02LjQtMy45bC0xMC4yIDAgMC0yOC41IDEwLjIgMGM3LjUgMCAxMC41IDMuMSAxMC41IDExLjFsMCA2LjRjMCA3LjgtMyAxMS0xMC41IDExbDAgMHptODUuOS0zMy4xbC0xMy43IDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjEgMTAuNiAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC0xMC41YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMXptMTAuMiAyMi44YzAgNy45LTMgMTEuMS0xMC41IDExLjFsLTEwLjIgMCAwLTI5LjIgMTAuMiAwYzcuNS0uMSAxMC41IDMuMSAxMC41IDExbDAgNy4xek0yNTkuNiAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xek00ODcuMiAxNzEuOWMtMTEuNy00LjQtMjMuNS04LjEtMzUuNi0xMS4zIDE5LjYtNzggMTEuNi0xMzQuNy0yMi4zLTE1My45LTM0LjUtMTkuNC04NS45IDQuMy0xMzguMiA1NS4yIDMuNCAzLjMgNi44IDYuNyAxMC4yIDEwLjIgODIuNS04MCAxMTkuNi01My41IDEyMC45LTUyLjggMjIuNCAxMi43IDM2IDU1LjggMTUuNSAxMzcuOC0yNy44LTYuNC01Ni4xLTEwLjctODQuNi0xMy03MS45LTEwMC41LTE0MC42LTE0Mi4xLTE4Mi4yLTE0Mi4xLTMwLjggMC00My44IDIxLTQ3LjYgMjcuNy0xOC4xIDMyLTEzLjMgODQuMiAuMSAxMzMuOC03MC41IDIwLjMtMTIwLjcgNTQuMS0xMjAuMyA5NSAuNSA1OS42IDEwMy4yIDg3LjggMTIyLjEgOTIuOC0yMC41IDgxLjktMTAuMSAxMzUuNiAyMi4zIDE1My45IDI4IDE1LjggNzUuMSA2IDEzOC4yLTU1LjItMy40LTMuMy02LjgtNi43LTEwLjItMTAuMi04Mi41IDgwLTExOS43IDUzLjUtMTIwLjkgNTIuOC0yMi4zLTEyLjYtMzYtNTUuNi0xNS41LTEzNy45IDEyLjQgMi45IDQxLjggOS41IDg0LjYgMTMgNzEuOSAxMDAuNCAxNDAuNiAxNDIgMTgyLjEgMTQyIDMwLjggMCA0My44LTIxIDQ3LjYtMjcuNyAxOC0zMS45IDEzLjMtODQuMS0uMS0xMzMuOCAxNTIuMy00My44IDE1Ni4yLTEzMC4yIDMzLjktMTc2LjNsMCAwek0xMzYgMzYuOGMyLjktNS4xIDExLjktMjAuMyAzNC45LTIwLjMgMzYuOCAwIDk4LjggMzkuNiAxNjMuMyAxMjYuMi0zMS4zLTEuOC02Mi43LTEuNS05My45IC45IDEzLTE4LjMgMjcuMS0zNS44IDQyLjItNTIuNC0zLjQtMy41LTYuOC02LjktMTAuMi0xMC4yLTE4LjMgMjAuMi0zNS4zIDQxLjctNTAuNyA2NC4yLTI4LjUgMi43LTU2LjcgNy42LTg0LjQgMTQuNi0uMi0xLjQtMjQuMy04Mi4yLTEuMi0xMjNsMCAwek00NDAuOCA0NzUuMWMtMi45IDUuMS0xMS44IDIwLjMtMzQuOSAyMC4zLTM2LjcgMC05OC43LTM5LjQtMTYzLjMtMTI2LjIgMzEuMyAxLjggNjIuNyAxLjUgOTMuOS0uOS0xMyAxOC4zLTI3LjEgMzUuOC00Mi4yIDUyLjQgMy40IDMuNSA2LjggNi45IDEwLjIgMTAuMiAxOC40LTIwLjIgMzUuMy00MS43IDUwLjctNjQuMiA0Ny4zLTQuNyA4MC4zLTEzLjUgODQuNC0xNC42IDIyLjcgODQuNCA0LjUgMTE3IDEuMiAxMjN6bTkuMS0xMzguNmMtMy42LTExLjktNy43LTI0LjEtMTIuNC0zNi40LTIuMSAwLTQuMi0uNS02LjEtMS41cy0zLjUtMi40LTQuNi00LjJsLS4xIC4xYy0xLjYgMS41LTMuNCAyLjctNS40IDMuNiA1LjcgMTQuMyAxMC42IDI4LjQgMTQuNyA0Mi4yLTIzLjcgNi00Ny43IDEwLjMtNzIgMTMgMy41LTUuMyAxNy4yLTI2LjIgMzIuMi01NC4yLTIuMS0uOC00LjItMS45LTYtMy4yLTEuMSAxLjItMy42IDQuMi0xMC45IDQuMi02LjIgMTEuMi0xNy40IDMwLjktMzMuOSA1NS4yLTM3LjQgMy4zLTc1IDMuNi0xMTIuNCAxLTcuOS0xMS4yLTIxLjUtMzEuMS0zNi44LTU3LjgtMS0uNC0yLS45LTMtMS41LTEuOSAxLjYtMy45IDMuMi0xMi42IDMuMiA2LjMgMTEuMiAxNy41IDMwLjcgMzMuOCA1NC42LTI0LjMtMi4zLTQ4LjQtNi4yLTcyLjItMTEuNyAzLjktMTQgOC42LTI4LjMgMTQuMS00Mi45LTMuMiAwLTUuNCAuMi04LjQtMS0yLjIgLjgtNC42IDEuMS02LjkgMS00LjkgMTMuNC05LjEgMjYuNS0xMi43IDM5LjQtMTU5LjktNDIuNi0xNDAuMy0xMjMuNi0xLjUtMTY0IDMuNiAxMS45IDcuNyAyNC4xIDEyLjQgMzYuNCAxMC40IDAgMTIuOSAzLjQgMTQuNCA1LjMgLjctLjggMS40LTEuNiAyLjMtMi4yLTUuOC0xNC43LTEwLjktMjkuMi0xNS4yLTQzLjMgNy0xLjggMzIuNC04LjQgNzItMTMtMTUuOSAyNC4zLTI2LjcgNDMuOS0zMi44IDU1LjMgMy4xIDEuOCA1LjMgNC42IDYuNCA4IDIuNS0zLjcgNi4xLTYuNiAxMC4yLTguNCA2LjUtMTEuNyAxNy45LTMxLjkgMzQuOC01Ni45IDM3LjQtMy4zIDc1LTMuNiAxMTIuNC0xIDMxLjUgNDQuNiAyOC45IDQ4LjEgNDIuNSA2NC41IDIuNi0zLjUgNi4zLTYgMTAuNC03LjQtNi40LTExLjQtMTcuNi0zMS0zNC4zLTU1LjUgNDAuNCA0LjEgNjUgMTAgNzIuMiAxMS43LTQgMTQuNC04LjkgMjkuMi0xNC42IDQ0LjIgMi41IDEgNC44IDIuNCA2LjggNC4zbC4xIC4xYzEtMS41IDIuMy0yLjggMy44LTMuOHMzLjMtMS42IDUuMS0xLjhjNC45LTEzLjQgOS4yLTI2LjYgMTIuOC0zOS41IDExLjcgMy4xIDIzLjIgNi44IDM0LjUgMTEgMTA2LjEgMzkuOSA3NCA4Ny45IDcyLjYgOTAuNC0xOS44IDM1LjEtODAuMSA1NS4yLTEwNS43IDYyLjV6bS0xMTQuNC0xMTRsLTEuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS42IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNDkuOGMwIDcuOS0yLjYgMTEuMS0xMC4xIDExLjFzLTEwLjEtMy4xLTEwLjEtMTEuMWwwLTQ5LjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA1MS41YzAgOS42IDUgMTQuMSAxNS4xIDE0LjFsLjQgMGMxMC4xIDAgMTUuMS00LjYgMTUuMS0xNC4xbDAtNTEuNWMwLS4zLS4xLS41LS4yLS44cy0uMy0uNS0uNS0uNi0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMXpNMzIxLjggMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptLTMxLjEgNy40bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptNS4xLTMwLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwyMi41IDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS42LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uNC0uNy0uNC0uNS0uMS0uOC0uMWwwIDB6bS03LjQtOTkuNGwtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02Ljh6Il19LE1DdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXplIixpY29uOls1MTIsNTEyLFtdLCJmODNmIiwiTTUwMi42IDIwMS43YzE0LjUgODUuOS0zMC45IDE2Ny45LTExMy4yIDIwOC4xIDEzIDM0LjEtMTIuNCA3MC4yLTQ4LjMgNzAuMi0xMy4yIDAtMjYtNS4xLTM1LjYtMTQuMnMtMTUuMy0yMS42LTE2LTM0LjhjLTYuNCAuMi02NC4yIDAtNzYuMy0uNi0uMyA2LjgtMS45IDEzLjUtNC43IDE5LjZzLTYuOSAxMS43LTExLjkgMTYuMy0xMC44IDguMi0xNy4yIDEwLjUtMTMuMiAzLjQtMTkuOSAzLjFjLTMzLjktMS40LTU4LTM0LjgtNDctNjcuOS0zNy4yLTEzLjEtNzIuNS0zNC45LTk5LjYtNzAuOC0xMy0xNy4zLS41LTQxLjggMjAuOC00MS44IDQ2LjMgMCAzMi4yLTU0LjIgNDMuMi0xMTAuMyAxOC40LTkzLjkgMTE2LjgtMTU3LjEgMjExLjctMTU3LjEgMTAyLjUgMCAxOTcuMiA3MC43IDIxNC4xIDE2OS43ek0zNzMuOSAzODguM2M0Mi0xOS4yIDgxLjMtNTYuNyA5Ni4zLTEwMi4xIDQwLjUtMTIzLjEtNjQuMi0yMjgtMTgxLjctMjI4LTgzLjQgMC0xNzAuMyA1NS40LTE4Ni4xIDEzNi05LjUgNDguOSA1IDEzMS40LTY4LjcgMTMxLjQgMjQuOSAzMy4xIDU4LjMgNTIuNiA5My43IDY0IDI0LjctMjEuOCA2My45LTE1LjUgNzkuOCAxNC4zIDE0LjIgMSA3OS4yIDEuMiA4Ny45IC44IDMuNS02LjkgOC41LTEyLjkgMTQuNy0xNy41czEzLjItNy45IDIwLjgtOS41IDE1LjQtMS40IDIyLjkgLjQgMTQuNSA1LjMgMjAuNSAxMC4yek0yMDUuNSAxODcuMWMwLTM0LjcgNTAuOC0zNC43IDUwLjggMHMtNTAuOCAzNC43LTUwLjggMHptMTE2LjYgMGMwLTM0LjcgNTAuOS0zNC43IDUwLjkgMHMtNTAuOSAzNC44LTUwLjkgMHpNMTk5LjUgMjU3LjhjLTMuNC0xNi45IDIyLjItMjIuMiAyNS42LTUuMmwuMSAuM2M0LjEgMjEuNCAyOS44IDQ0IDY0LjEgNDMuMSAzNS43LS45IDU5LjMtMjIuMiA2NC4xLTQyLjggNC41LTE2LjEgMjguNi0xMC40IDI1LjUgNi01LjIgMjIuMi0zMS4yIDYyLTkxLjUgNjIuOS00Mi42IDAtODAuOS0yNy44LTg3LjktNjQuMmwwIDB6Il19LHpDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXJlbWl4IixpY29uOls1MTIsNTEyLFtdLCJmNGVlIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNNDE4LjEgMjYwLjRsNC45IDIuMiAwIDcwYy03LjIgMy42LTYzLjQgMjcuNS02Ny4zIDI4LjgtNi41LTEuOC0xMTMuNy00Ni44LTEzNy4zLTU2LjJsLTY0LjIgMjYuNi02My4zLTI3LjUgMC02My44IDU5LjMtMjQuOGMtLjctLjctLjQgNS0uNC03MC40bDY3LjMtMjkuNyAxNTEuOSA2Mi45IDAgNjEuNiA0OS4xIDIwLjN6bS03MC40IDgxLjVsMC00My44LS40IDAgMC0xLjgtMTEzLjgtNDYuNSAwIDQ1LjIgMTEzLjggNDYuOSAwLS40IC40IC40em03LjUtNTcuNmwzOS45LTE2LjQtMzYuOC0xNS41LTM5IDE2LjQgMzUuOSAxNS41em01Mi4zIDM4LjFsMC00My00NC4zIDE4LjYgMCA0My40IDQ0LjMtMTl6Il19LENDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYW5kY2FtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTQ4LjIgMzI2LjFsLTE4MSAwIDg0LjctMTU2LjEgMTgxIDAtODQuNyAxNTYuMXoiXX0sVEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13ZWItYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsW10sImU2ODQiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMjM1IDgxLjZsNTMgNDYuNCA1Mi4yLTEwLjRjLTIuNi0zLjktNC4yLTguNS00LjItMTMuNiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMtMTAuMyAyMy42LTIzLjIgMjRMMzA0LjUgMzQ5LjFjLTUuMiAxMS41LTE2LjYgMTguOS0yOS4yIDE4LjlsLTEwMi42IDBjLTEyLjYgMC0yNC03LjQtMjkuMi0xOC45TDg3LjIgMjI0Yy0xMi45LS40LTIzLjItMTEtMjMuMi0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgNS0xLjUgOS43LTQuMiAxMy42TDE2MCAyMjQgMjEzLjEgMTc3LjZjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnoiXX0sJEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbWVvLXYiLGljb246WzQ0OCw1MTIsW10sImYyN2QiLCJNNDQ3LjggMTUzLjZjLTIgNDMuNi0zMi40IDEwMy4zLTkxLjQgMTc5LjEtNjAuOSA3OS4yLTExMi40IDExOC44LTE1NC42IDExOC44LTI2LjEgMC00OC4yLTI0LjEtNjYuMy03Mi4zLTM1LjItMTI5LjItNTAuMi0yMDQuOS03OS4zLTIwNC45LTMuNCAwLTE1LjEgNy4xLTM1LjIgMjEuMUwwIDE2OC4yYzUxLjYtNDUuMyAxMDAuOS05NS43IDEzMS44LTk4LjUgMzQuOS0zLjQgNTYuMyAyMC41IDY0LjQgNzEuNSAyOC43IDE4MS41IDQxLjQgMjA4LjkgOTMuNiAxMjYuNyAxOC43LTI5LjYgMjguOC01Mi4xIDMwLjItNjcuNiA0LjgtNDUuOS0zNS44LTQyLjgtNjMuMy0zMSAyMi03Mi4xIDY0LjEtMTA3LjEgMTI2LjItMTA1LjEgNDUuOCAxLjIgNjcuNSAzMS4xIDY0LjkgODkuNHoiXX0sREN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmF2YSIsaWNvbjpbMzg0LDUxMixbXSwiZjQyOCIsIk0xNTguNCAwTDcgMjkyIDk2LjIgMjkyIDE1OC40IDE3NS45IDIyMC4xIDI5MiAzMDguNiAyOTIgMTU4LjQgMHpNMzA4LjYgMjkybC00My45IDg4LjItNDQuNi04OC4yLTY3LjYgMCAxMTIuMiAyMjAgMTExLjUtMjIwLTY3LjYgMHoiXX0sTEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuaXJlZ2lzdHJ5IixpY29uOlszODQsNTEyLFtdLCJmNDA0IiwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ybC0yMTMuNSAwQzExNS44IDQ2OC4yIDE1Mi41IDQ4MCAxOTIgNDgwek0xMDIuOSAyODYuOWwwLTEyLjQtMTAyLjkgMCAwIDEyLjRjMCAyLjUgMCA1IC4xIDcuNGwxMDMuMSAwYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N2wtMTE0LjkgMGMyLjYgOC41IDUuOCAxNi44IDkuNiAyNC44bDEzOC4zIDBjLTEyLjktNS43LTI0LjEtMTQuMi0zMy0yNC44em0tMTcuNy0zNC43bC0xMDQuNCAwYy45IDcuNiAyLjIgMTUgMy45IDIyLjNsMTA5LjcgMGMtNC02LjktNy4yLTE0LjQtOS4yLTIyLjN6bS0yLjgtNjkuM2wtMTAyLjkgMCAwIDE3LjMgMTAyLjkgMCAwLTE3LjN6bTAtMTczLjJsLTEwMi45IDAgMCA0LjkgMTAyLjkgMCAwLTQuOXptMC0zNC43bC0xMDIuOSAwIDAgMi41IDEwMi45IDAgMC0yLjV6bTAgNjkuM2wtMTAyLjkgMCAwIDcuNCAxMDIuOSAwIDAtNy40em0wIDEwNGwtMTAyLjkgMCAwIDE0LjggMTAyLjkgMCAwLTE0Ljh6bTAtNjkuM2wtMTAyLjkgMCAwIDkuOSAxMDIuOSAwIDAtOS45em0wIDM0LjZsLTEwMi45IDAgMCAxMi40IDEwMi45IDAgMC0xMi40ek0yNjkuMSAzMzEuNWwxMDkuNyAwYzEuOC03LjMgMy4xLTE0LjcgMy45LTIyLjNsLTEwNC40IDBjLTIuMSA3LjktNS4yIDE1LjQtOS4yIDIyLjN6bTEyLTE4NS43bDEwMi45IDAgMC05LjgtMTAyLjkgMCAwIDkuOHptMCAzNy4ybDEwMi45IDAgMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTc0LjNsMTAyLjkgMCAwLTcuNC0xMDIuOSAwIDAgNy40em0wLTc2LjdsMCAyLjUgMTAyLjkgMCAwLTIuNS0xMDIuOSAwek03OC4xIDQ0Mi45bDIyNy43IDBjMTEuOC04LjcgMjIuNy0xOC42IDMyLjItMjkuN2wtMjkzLjEgMGM5LjYgMTEgMjEuNCAyMSAzMy4yIDI5Ljd6bTIwMy0zNzEuM2wxMDIuOSAwIDAtNC45LTEwMi45IDAgMCA0Ljl6bTAgMTQ4LjVsMTAyLjkgMCAwLTE0LjgtMTAyLjkgMCAwIDE0Ljh6TTM4LjggNDA1LjdsMzA1LjMgMGM2LjctOC41IDEyLjYtMTcuNiAxNy44LTI3LjJMMjMgMzc4LjVjNS4yIDkuNiA5LjIgMTguNyAxNS44IDI3LjJ6bTE4OC44LTM3LjFsMTM5LjQgMGMzLjctOCA1LjgtMTYuMiA4LjUtMjQuOGwtMTE1IDBjLTguOCAxMC43LTIwLjEgMTkuMi0zMi45IDI0Ljh6bTUzLjUtODEuN2MwIDIuNS0uMSA1LS40IDcuNGwxMDMuMSAwYy4xLTIuNSAuMi00LjkgLjItNy40bDAtMTIuNC0xMDIuOSAwIDAgMTIuNHptMC0yOS43bDEwMi45IDAgMC0xNy4zLTEwMi45IDAgMCAxNy4zeiJdfSxFQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGluZXJzLWNsdWIiLGljb246WzU3Niw1MTIsW10sImYyNGMiLCJNMjM5LjcgNzkuOWExNzUuOCAxNzUuOCAwIDEgMCAwIDM1MS42IDE3NS44IDE3NS44IDAgMSAwIDAtMzUxLjZ6TTE5OS44IDM1OS41Yy00MS43LTE1LjktNzEuNC01Ni40LTcxLjQtMTAzLjhzMjkuNy04Ny45IDcxLjQtMTA0LjFsMCAyMDcuOXptNzkuOCAuM2wwLTIwOC4yYzQxLjcgMTYuMiA3MS40IDU2LjcgNzEuNCAxMDQuMXMtMjkuNyA4Ny45LTcxLjQgMTA0LjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0zMjkuNyA0NDhsLTkwLjMgMEMxMzMuMiA0NDggNDUuNiAzNjIuNSA0NS42IDI1Ny44IDQ1LjYgMTQzLjIgMTMzLjIgNjQgMjM5LjQgNjRsOTAuMyAwYzEwNSAwIDIwMC43IDc5LjIgMjAwLjcgMTkzLjggMCAxMDQuNy05NS43IDE5MC4yLTIwMC43IDE5MC4yeiJdfSxQQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia3ViZXJuZXRlcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg1NyIsIk0yNTYgMzE2LjFjMy41LS4xIDcuMiAyIDguOSA1LjFMMjkzIDM3MS43Yy0zLjYgMS4yLTcuMyAyLjMtMTEuMiAzLjEtMjEuNCA0LjktNDIuNyAzLjQtNjItMy4ybDI3LjktNTAuNGMxLjctMy4xIDQuOS01IDguMi01LjF6bTUwLjUtMjMuNGw1Ny4yIDkuN2MtOC40IDIzLjUtMjQuNCA0My45LTQ1LjggNTcuNWwtMjIuMi01My42Yy0yLTQuNyAuMS0xMC40IDQuOC0xMi42IDEuOS0uOSA0LjEtMS4zIDYtLjl6bS04OS4xIDcuN2MuNSAyLjEgLjMgNC4yLS41IDZsLTIxLjggNTMuM2MtMjAuNS0xMy4yLTM2LjktMzIuOS00NS43LTU3LjFsNTYuNy05LjZjNS4xLS45IDEwLjEgMi40IDExLjMgNy41em01OC44LTQxbC0zLjkgMTcuMS0xNS44IDcuNi0xNS45LTcuNy00LTE3LjEgMTEtMTMuNyAxNy43IDAgMTEgMTMuN3ptLTczLjctMTYuN2MzLjkgMy40IDQuNCA5LjUgMS4yIDEzLjYtMS4zIDEuNy0zLjEgMi44LTUgMy4zbC01NS4zIDE2LjJjLTIuOC0yNS43IDMuMy01MC43IDE2LjEtNzEuNmw0My4xIDM4LjZ6bTE1MC43LTM4LjVjNi40IDEwLjQgMTEuMiAyMiAxNC4xIDM0LjYgMi45IDEyLjQgMy42IDI0LjggMi40IDM2LjhsLTU1LjYtMTZjLTUtMS40LTguMS02LjctNi45LTExLjcgLjUtMi4xIDEuNi0zLjggMy4xLTUuMWw0Mi45LTM4LjV6bS0xMTMuOCA0LjRjLS4yIDUuMi00LjcgOS40LTkuOSA5LjQtMi4xIDAtNC4xLS43LTUuNy0xLjhsLTQ3LjMtMzMuNGMxNC41LTE0LjMgMzMuMS0yNC44IDU0LjUtMjkuNyAzLjktLjkgNy44LTEuNiAxMS43LTJsLTMuMyA1Ny42em0zMC44LTU3LjZjMjUgMy4xIDQ4LjEgMTQuNCA2NS44IDMxLjdsLTQ3LjEgMzMuMmMtNC4yIDMtMTAgMi4zLTEzLjMtMS44LTEuMy0xLjctMi0zLjYtMi4xLTUuNmwtMy4zLTU3LjV6TTI1NC41LTEuM2M1LjktLjMgMTEuNyAuOSAxNyAzLjRMNDU1IDg5LjdjNC43IDIuMyA4LjkgNS42IDEyLjIgOS43czUuNiA4LjggNi44IDEzLjlsNDUuMyAxOTYuOWMxLjIgNS4xIDEuMiAxMC40IDAgMTUuNXMtMy41IDkuOS02LjggMTMuOUwzODUuNiA0OTcuNmMtMy4zIDQuMS03LjUgNy40LTEyLjIgOS42cy0xMCAzLjQtMTUuMiAzLjRsLTIwMy42IDBjLTUuMyAwLTEwLjUtMS4yLTE1LjItMy40cy04LjktNS41LTEyLjItOS42TC4yIDMzOS43Yy0uNy0uOS0xLjQtMS44LTItMi44LTIuNi0zLjktNC4zLTguMy01LjEtMTIuOXMtLjctOS4zIC4zLTEzLjhMMzguNyAxMTMuNGMxLjItNS4xIDMuNS05LjkgNi44LTEzLjlzNy41LTcuNCAxMi4yLTkuN0wyNDEuMSAyLjFjNC4yLTIgOC44LTMuMiAxMy40LTMuNHptMS44IDY3Yy02LjEgMC0xMSA1LjUtMTEgMTIuMiAwIC4xIDAgLjIgMCAuMyAwIC45LS4xIDIgMCAyLjggLjEgMy45IDEgNi45IDEuNSAxMC40IC45IDcuNyAxLjcgMTQgMS4yIDE5LjktLjUgMi4yLTIuMSA0LjMtMy42IDUuN2wtLjIgNC42Yy02LjYgLjUtMTMuMiAxLjYtMTkuOCAzLjEtMjguNSA2LjUtNTMuMSAyMS4xLTcxLjggNDEtMS4yLS44LTMuMy0yLjMtNC0yLjgtMiAuMy00IC45LTYuNS0uNi00LjktMy4zLTkuNC03LjktMTQuOC0xMy40LTIuNS0yLjYtNC4zLTUuMS03LjItNy43LS43LS42LTEuNy0xLjQtMi40LTItMi4zLTEuOC01LTIuOC03LjctMi45LTMuNC0uMS02LjYgMS4yLTguOCAzLjktMy44IDQuNy0yLjUgMTIgMi43IDE2LjIgLjEgMCAuMSAuMSAuMiAuMSAuNyAuNiAxLjYgMS4zIDIuMyAxLjggMy4xIDIuMyA2IDMuNSA5LjEgNS4zIDYuNiA0LjEgMTIgNy40IDE2LjMgMTEuNSAxLjcgMS44IDIgNC45IDIuMiA2LjNsMy41IDMuMmMtMTguOCAyOC40LTI3LjYgNjMuNC0yMi40IDk5LjFsLTQuNiAxLjNjLTEuMiAxLjYtMi45IDQtNC43IDQuNy01LjYgMS44LTEyIDIuNC0xOS43IDMuMy0zLjYgLjMtNi43IC4xLTEwLjUgLjgtLjggLjItMiAuNC0yLjkgLjdsLS4xIDAtLjIgLjFjLTYuNSAxLjYtMTAuNyA3LjUtOS4zIDEzLjQgMS4zIDUuOSA3LjcgOS40IDE0LjIgOGwuMiAwYy4xIDAgLjEtLjEgLjItLjEgLjktLjIgMi4xLS40IDIuOC0uNiAzLjgtMSA2LjUtMi41IDkuOC0zLjggNy4zLTIuNiAxMy4zLTQuOCAxOS4yLTUuNiAyLjQtLjIgNSAxLjUgNi4zIDIuMmw0LjgtLjhjMTEgMzQuMSAzNC4xIDYxLjcgNjMuMyA3OS4xbC0yIDQuOGMuNyAxLjkgMS41IDQuNCAxIDYuMi0yLjEgNS41LTUuOCAxMS40LTkuOSAxNy45LTIgMy00LjEgNS4zLTUuOSA4LjgtLjQgLjgtMSAyLjEtMS40IDMtMi44IDYtLjggMTMgNC43IDE1LjYgNS41IDIuNiAxMi4yLS4xIDE1LjItNi4ybDAgMGMuNC0uOSAxLTIgMS40LTIuOCAxLjYtMy42IDIuMS02LjYgMy4yLTEwLjEgMi45LTcuMyA0LjUtMTQuOSA4LjUtMTkuNyAxLjEtMS4zIDIuOS0xLjggNC44LTIuM2wyLjUtNC41YzI1LjUgOS44IDU0IDEyLjQgODIuNSA1LjkgNi41LTEuNSAxMi44LTMuNCAxOC44LTUuNyAuNyAxLjIgMiAzLjYgMi4zIDQuMiAxLjkgLjYgMy45IC45IDUuNiAzLjQgMyA1LjEgNSAxMS4yIDcuNSAxOC41IDEuMSAzLjQgMS42IDYuNSAzLjIgMTAuMSAuNCAuOCAxIDIgMS40IDIuOCAyLjkgNi4xIDkuNyA4LjggMTUuMiA2LjIgNS40LTIuNiA3LjUtOS42IDQuNy0xNS42LS40LS45LTEtMi4xLTEuNC0zLTEuOC0zLjQtMy45LTUuNy01LjktOC43LTQuMi02LjUtNy42LTExLjktOS44LTE3LjQtLjktMi44IC4yLTQuNiAuOC02LjUtLjQtLjUtMS4zLTMuMi0xLjgtNC40IDMwLjQtMTcuOSA1Mi44LTQ2LjYgNjMuMy03OS42IDEuNCAuMiAzLjkgLjcgNC43IC44IDEuNy0xLjEgMy4yLTIuNSA2LjItMi4zIDUuOSAuOCAxMS45IDMgMTkuMiA1LjYgMy40IDEuMyA2LjEgMi44IDkuOCAzLjggLjggLjIgMS45IC40IDIuOCAuNiAuMSAwIC4xIDAgLjIgLjFsLjIgMGM2LjUgMS40IDEyLjgtMi4yIDE0LjItOHMtMi44LTExLjgtOS4zLTEzLjRjLS45LS4yLTIuMy0uNi0zLjItLjctMy44LS43LTYuOS0uNS0xMC41LS44LTcuNy0uOC0xNC0xLjQtMTkuNy0zLjItMi4zLS45LTQtMy43LTQuOC00LjhsLTQuNC0xLjNjMi4zLTE2LjYgMS43LTMzLjktMi4zLTUxLjMtNC0xNy41LTExLjEtMzMuNS0yMC42LTQ3LjYgMS4xLTEgMy4zLTIuOSAzLjktMy41IC4yLTIgMC00IDIuMS02LjIgNC4zLTQuMSA5LjgtNy40IDE2LjMtMTEuNSAzLjEtMS44IDYtMyA5LjEtNS4zIC43LS41IDEuNy0xLjMgMi40LTEuOSA1LjMtNC4yIDYuNS0xMS40IDIuNy0xNi4ycy0xMS4xLTUuMi0xNi40LTFjLS43IC42LTEuOCAxLjQtMi40IDItMi45IDIuNS00LjggNS03LjIgNy43LTUuNCA1LjUtOS45IDEwLjEtMTQuOCAxMy40LTIuMSAxLjItNS4zIC44LTYuNyAuN2wtNC4yIDNjLTIzLjgtMjUtNTYuMi00MS05MS4yLTQ0LjEtLjEtMS41LS4yLTQuMS0uMi00LjktMS40LTEuNC0zLjItMi41LTMuNi01LjUtLjUtNS45IC4zLTEyLjMgMS4zLTE5LjkgLjUtMy42IDEuNC02LjYgMS41LTEwLjQgMC0uOSAwLTIuMiAwLTMuMSAwLTYuNy00LjktMTIuMi0xMS0xMi4yeiJdfSxJQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0IixpY29uOls1MTIsNTEyLFtdLCJmMGQyIiwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4LTI1LjYgMC01MC4yLTMuOS03My40LTExLjEgMTAuMS0xNi41IDI1LjItNDMuNSAzMC44LTY1IDMtMTEuNiAxNS40LTU5IDE1LjQtNTkgOC4xIDE1LjQgMzEuNyAyOC41IDU2LjggMjguNSA3NC44IDAgMTI4LjctNjguOCAxMjguNy0xNTQuMyAwLTgxLjktNjYuOS0xNDMuMi0xNTIuOS0xNDMuMi0xMDcgMC0xNjMuOSA3MS44LTE2My45IDE1MC4xIDAgMzYuNCAxOS40IDgxLjcgNTAuMyA5Ni4xIDQuNyAyLjIgNy4yIDEuMiA4LjMtMy4zIC44LTMuNCA1LTIwLjMgNi45LTI4LjEgLjYtMi41IC4zLTQuNy0xLjctNy4xLTEwLjEtMTIuNS0xOC4zLTM1LjMtMTguMy01Ni42IDAtNTQuNyA0MS40LTEwNy42IDExMi0xMDcuNiA2MC45IDAgMTAzLjYgNDEuNSAxMDMuNiAxMDAuOSAwIDY3LjEtMzMuOSAxMTMuNi03OCAxMTMuNi0yNC4zIDAtNDIuNi0yMC4xLTM2LjctNDQuOCA3LTI5LjUgMjAuNS02MS4zIDIwLjUtODIuNiAwLTE5LTEwLjItMzQuOS0zMS40LTM0LjktMjQuOSAwLTQ0LjkgMjUuNy00NC45IDYwLjIgMCAyMiA3LjQgMzYuOCA3LjQgMzYuOHMtMjQuNSAxMDMuOC0yOSAxMjMuMkMxNjEuNSA0MzcuMiAxNjMuNSA0NjcuNCAxNjUuNiA0ODcgNzMuNCA0NTAuOSA4IDM2MS4xIDggMjU2IDggMTE5IDExOSA4IDI1NiA4UzUwNCAxMTkgNTA0IDI1NnoiXX0sQUN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFsZ29saWEiLGljb246WzUxMiw1MTIsW10sImYzNmMiLCJNMjU2IDBjLTEzOS45IDAtMjU0IDExMi43LTI1NiAyNTIuMS0yIDE0MS41IDExMi45IDI1OC43IDI1NC41IDI1OS41IDQzLjcgLjMgODUuOS0xMC40IDEyMy4zLTMwLjcgMy42LTIgNC4yLTcgMS4xLTkuN2wtMjQtMjEuMmMtNC45LTQuMy0xMS44LTUuNS0xNy44LTMtMjYuMSAxMS4xLTU0LjUgMTYuOC04My43IDE2LjQtMTE0LjQtMS41LTIwNi45LTk2LjYtMjA1LjEtMjExIDEuOC0xMTIuOSA5NC4zLTIwNC4yIDIwNy43LTIwNC4ybDIwNy43IDAgMCAzNjktMTE3LjgtMTA0LjdjLTMuOC0zLjQtOS43LTIuNy0xMi43IDEuMy0xOC45IDI1LTQ5LjcgNDAuNi04My45IDM4LjItNDcuNS0zLjMtODUuOS00MS41LTg5LjUtODguOS00LjItNTYuNiA0MC42LTEwMy45IDk2LjMtMTAzLjkgNTAuNCAwIDkxLjkgMzguOCA5Ni4yIDg4IC40IDQuNCAyLjQgOC41IDUuNyAxMS40bDMwLjcgMjcuMmMzLjUgMy4xIDkgMS4yIDkuOS0zLjQgMi4yLTExLjggMy0yNC4yIDIuMS0zNi44LTQuOS03Mi02My4zLTEzMC0xMzUuNC0xMzQuNC04Mi43LTUuMS0xNTEuOCA1OS41LTE1NCAxNDAuNi0yLjEgNzguOSA2Mi42IDE0NyAxNDEuNiAxNDguNyAzMyAuNyA2My42LTkuNiA4OC4zLTI3LjZMNDk1IDUwOS40YzYuNiA1LjggMTcgMS4yIDE3LTcuN2wwLTQ5MmMwLTUuNC00LjQtOS43LTkuNy05LjdMMjU2IDB6Il19LE5DdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFja3BhdGgiLGljb246WzQ0OCw1MTIsW10sImY4NDIiLCJNMjQ0LjYgMjMyLjRjMCA4LjUtNC4zIDIwLjUtMjEuMyAyMC41bC0xOS42IDAgMC00MS41IDE5LjYgMGMxNy4xIDAgMjEuMyAxMi40IDIxLjMgMjF6TTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMTUxLjMgMjg3LjhjMC0yMS4yLTEyLjEtMzQuNS00Ni43LTQ0LjgtMjAuNi03LjQtMjYtMTAuOS0yNi0xOC42czctMTQuNiAyMC40LTE0LjZjMTQuMSAwIDIwLjggOC40IDIwLjggMTguNGwzMC43IDAgLjItLjZjLjUtMTkuNi0xNS4xLTQxLjYtNTEuMS00MS42LTIzLjQgMC01Mi42IDEwLjgtNTIuNiAzOC4zIDAgMTkuNCA5LjIgMzEuMyA1MC43IDQ0LjQgMTcuMyA2LjIgMjEuOSAxMC40IDIxLjkgMTkuNSAwIDE1LjItMTkuMSAxNC4yLTE5LjUgMTQuMi0yMC40IDAtMjUuNy05LjEtMjUuNy0yMS45bC0zMC44IDAtLjIgLjZjLS43IDMxLjMgMjguNCA0NS4yIDU2LjYgNDUuMiAzMCAwIDUxLjEtMTMuNiA1MS4xLTM4LjN6bTEyNS40LTU1LjZjMC0yNS4zLTE4LjQtNDUuNS01My40LTQ1LjVsLTUxLjggMCAwIDEzOC4yIDMyLjIgMCAwLTQ3LjQgMTkuNiAwYzMwLjMgMCA1My40LTE2IDUzLjQtNDUuNHpNMjk3LjkgMzI1bDQ5LjEtMTM4LjItMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwek00MDQuNSAxODYuOGwtMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwIDQ5LjEtMTM4LjJ6Il19LFJDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvY3RvcHVzLWRlcGxveSIsaWNvbjpbNTEyLDUxMixbXSwiZTA4MiIsIk00NTUuNyAzNDkuMmMtNDUuOS0zOS4xLTM2LjctNzcuOS0xNi4xLTEyOC4xIDM1LjctODctMjMuNS0xODYuOS0xMDkuNi0yMTIuOC05Mi45LTI3LjktMTk1LjcgMTYtMjMwLjMgMTA4LjgtOC43IDIzLjUtMTIuNSA0OC41LTExIDczLjUgMS43IDI5LjUgMTQuNyA1MyAyNC4xIDgwLjMgMTcuMiA1MC4yLTI4LjEgOTIuNy02Ni43IDExNy42LTQ2LjggMzAuMi0zNi4zIDM5LjktOC40IDQxLjkgMjMuNCAxLjcgNDQuNS00LjUgNjUuMy0xNSA5LjItNC42IDQwLjctMTguOSA0NS4xLTI4LjYtMTIuMiAyNi42LTM3IDcyLjctMjEuNSAxMDIuMSAxOS4xIDM2LjIgNjcuMS0zMS44IDc2LjctNDUuOCA4LjYtMTIuNiA0My04MS4zIDYzLjYtNDYuOSAxOC45IDMxLjQgOC42IDc2LjQgMzUuNyAxMDQuNiAzMi45IDM0LjIgNTEuMi0xOC4zIDUxLjQtNDQuMiAuMi0xNi40LTYuMS05NS45IDI5LjktNTkuOSAyMS40IDIxLjQgNTIuOSA3MS4yIDg4LjYgNjcgMzguNy00LjUtMjIuMS02OC0yOC4zLTc4LjcgNS40IDQuMyA1My43IDM0LjEgNTMuOCA5LjUgLjEtMTguOC0zMC4xLTM0LjctNDIuNS00NS4zeiJdfSxPQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFtbWVyIixpY29uOls1MTIsNTEyLFtdLCJmODQwIiwiTTUwMC43IDE1OS41Yy0uNC0xLjgtMS4yLTMuNC0yLjMtNC44cy0yLjUtMi42LTQuMS0zLjVjLTMuMS0xLjYtNi43LTItMTAuMS0xLjFsLTI2LjQgNi42IDAtLjItMjIuMyA1LjgtMS4yIC4zLS42LTIuMmMtMTUuNS01OC4zLTQ1LTExMS45LTg2LjEtMTU2LjItMi42LTIuNy02LjEtNC4yLTkuOC00LjNzLTcuMyAxLjMtMTAgMy44bC0xMDIuOSAxMDIuNy0xOTkuOSAwYy02LjYgMC0xMi45IDIuNi0xNy42IDcuM1MwIDEyNC44IDAgMTMxLjRsMCAyNDlDMCAzODcgMi42IDM5My4zIDcuMyAzOThzMTEgNy4zIDE3LjYgNy4zTDIyNSA0MDUuMyAzMjguMSA1MDhjMi42IDIuNiA2IDQgOS43IDRzNy4xLTEuNCA5LjctNGMuMS0uMSAuMi0uMyAuNC0uNCAyOS4zLTMxLjUgNTIuOC02Ny44IDY5LjYtMTA3LjQgNi45LTE2LjUgMTIuNy0zMy41IDE3LjMtNTAuOGwwIDAgMjAuNCA1LjMgMC0uMSAyOC4zIDcuM2MuOSAuMiAxLjcgLjQgMi42IC41IDEuNCAuMiAyLjggLjIgNC4xLS4xIDIuNS0uNSA0LjgtMS43IDYuNy0zLjRzMy4yLTQgMy44LTYuNWMxNS4yLTYzLjQgMTUuMi0xMjkuNiAuMS0xOTNsMCAwek0zMzcuMSAyNC43bDAgMCAwIDAgMCAwek0yMjYuOSAxODkuOGwtNTIuNiA5MS4zYy0xIDEuNy0xLjUgMy43LTEuNSA1LjdsMCA0Ni4yYzAgNS44LTIuMyAxMS40LTYuNSAxNS42cy05LjcgNi40LTE1LjYgNi40bC0zLjQgMGMtNS44IDAtMTEuNC0yLjMtMTUuNi02LjRzLTYuNS05LjctNi41LTE1LjZsMC00NS43YzAtMS45LS41LTMuOC0xLjQtNS41TDcyLjMgMTg5LjZjLTEuOS0zLjQtMi44LTcuMS0yLjgtMTFzMS4xLTcuNiAzLTEwLjkgNC43LTYuMSA4LjEtOCA3LjEtMi45IDExLTIuOWwzLjMgMGM0IDAgOCAxLjEgMTEuNSAzLjJzNi4zIDUuMSA4LjEgOC43bDM2LjQgNzAuMyAzNy41LTcwLjVjMS44LTMuNSA0LjYtNi40IDcuOS04LjRzNy4yLTMuMiAxMS4xLTMuMiA3LjggLjkgMTEuMiAyLjggNi4zIDQuNyA4LjIgOC4xYzIgMy4zIDMgNy4xIDMgMTFzLTEgNy43LTMgMTFsMCAwek0zMzcuMSAyNC43YzM1LjkgNDAuNiA2MS45IDg5IDc1LjggMTQxLjNsLjYgMi0xMTQuMSAyOS42IDAtNjYuMWMwLTYuNi0yLjctMTIuOS03LjMtMTcuNnMtMTEtNy4zLTE3LjYtNy4zbC0xOS40IDAgODIuMS04MS44ek0zOTcuNiAzOTJsMCAwIDAgMGMtMTQuNyAzNC44LTM1LjEgNjctNjAuMiA5NS4ybC04Mi4yLTgxLjkgMTkuMiAwYzYuNiAwIDEyLjktMi42IDE3LjYtNy4zczcuMy0xMSA3LjMtMTcuNmwwLTY2LjIgMTE0LjYgMjkuOWMtNC40IDE2LjMtOS44IDMyLjMtMTYuMyA0Ny45bDAgMHptODQtNTIuNGwwIDAtNTAuNi0xMy4xLTEzMS43LTM0LjMgMC03Mi41IDExOS43LTMxIDQuNS0xLjJjMjkuOS03LjcgNDkuMi0xMi44IDU4LjEtMTUuMSAxMiA1NS4xIDEyIDExMi4xIDAgMTY3LjJ6Il19LEZDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb2R4IixpY29uOls0NDgsNTEyLFtdLCJmMjg1IiwiTTM1NiAyNDEuOGwzNi43IDIzLjcgMCAyMTQuNS0xMzMtODMuOCA5Ni4zLTE1NC40ek00NDAgNzVsLTIxMy43IDAtMjMgMzcuOCAxNTMuNSA5Ni41IDgzLjItMTM0LjN6TTM1MSAyMTcuOGwtMjk1LjgtMTg1LjggMCAyMTQuNSA0NiAyOSAyNDkuOC01Ny43ek05NyAyOTQuMkw4IDQzNyAyMjEuNyA0MzcgMzQ2LjcgMjM2LjUgOTcgMjk0LjJ6Il19LEJDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdGhyZWFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxOSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yOTQuMiAyNDQuM2MxOS41IDkuMyAzMy43IDIzLjUgNDEuMiA0MC45IDEwLjQgMjQuMyAxMS40IDYzLjktMjAuMiA5NS40LTI0LjIgMjQuMS01My41IDM1LTk1LjEgMzUuM2wtLjIgMGMtNDYuOC0uMy04Mi44LTE2LjEtMTA2LjktNDYuOC0yMS41LTI3LjMtMzIuNi02NS40LTMzLTExMy4xbDAtLjJjLjQtNDcuNyAxMS41LTg1LjcgMzMtMTEzLjEgMjQuMi0zMC43IDYwLjItNDYuNSAxMDYuOS00Ni44bC4yIDBjNDYuOSAuMyA4My4zIDE2IDEwOC4yIDQ2LjYgMTIuMyAxNS4xIDIxLjMgMzMuMyAyNyA1NC40bC0yNi45IDcuMmMtNC43LTE3LjItMTEuOS0zMS45LTIxLjQtNDMuNi0xOS40LTIzLjktNDguNy0zNi4xLTg3LTM2LjQtMzggLjMtNjYuOCAxMi41LTg1LjUgMzYuMi0xNy41IDIyLjMtMjYuNiA1NC40LTI2LjkgOTUuNSAuMyA0MS4xIDkuNCA3My4zIDI2LjkgOTUuNSAxOC43IDIzLjggNDcuNCAzNiA4NS41IDM2LjIgMzQuMy0uMyA1Ni45LTguNCA3NS44LTI3LjMgMjEuNS0yMS41IDIxLjEtNDcuOSAxNC4yLTY0LTQtOS40LTExLjQtMTcuMy0yMS4zLTIzLjMtMi40IDE4LTcuOSAzMi4yLTE2LjUgNDMuMi0xMS40IDE0LjUtMjcuNyAyMi40LTQ4LjQgMjMuNS0xNS43IC45LTMwLjgtMi45LTQyLjYtMTAuNy0xMy45LTkuMi0yMi0yMy4yLTIyLjktMzkuNS0xLjctMzIuMiAyMy44LTU1LjMgNjMuNS01Ny42IDE0LjEtLjggMjcuMy0uMiAzOS41IDEuOS0xLjYtOS45LTQuOS0xNy43LTkuOC0yMy40LTYuNy03LjgtMTcuMS0xMS44LTMwLjgtMTEuOWwtLjQgMGMtMTEgMC0yNiAzLjEtMzUuNiAxNy42bC0yMy0xNS44YzEyLjgtMTkuNCAzMy42LTMwLjEgNTguNS0zMC4xbC42IDBjNDEuOCAuMyA2Ni42IDI2LjMgNjkuMSA3MS44IDEuNCAuNiAyLjggMS4yIDQuMiAxLjlsLjEgLjV6bS03MS44IDY3LjVjMTctLjkgMzYuNC03LjYgMzkuNy00OC44LTguOC0xLjktMTguNi0yLjktMjktMi45LTMuMiAwLTYuNCAuMS05LjYgLjMtMjguNiAxLjYtMzguMSAxNS41LTM3LjQgMjcuOSAuOSAxNi43IDE5IDI0LjUgMzYuNCAyMy42bC0uMS0uMXoiXX0sSEN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9sZC1yZXB1YmxpYyIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMCIsIk0yNDMuOCAxMC4yYzcuNS0uMyAxNS0uMyAyMi41LS4xIDMuNiAuMSA3LjIgLjQgMTAuOCAuNyA0LjkgLjMgOS44IDEgMTQuNyAxLjYgMi45IC40IDUuOCAxIDguNyAxLjUgNy45IDEuMyAxNS43IDMuMyAyMy40IDUuNCAxMi4yIDMuNSAyNC4yIDcuOSAzNS44IDEzLjIgMjYuNiAxMi4yIDUwLjkgMjkuMiA3MS42IDQ5LjkgMjAgMjAuMSAzNi43IDQzLjUgNDguOSA2OS4yIDEuMSAyLjYgMi40IDUuMSAzLjUgNy43IDIuOCA2LjQgNS40IDEzIDcuNiAxOS42IDQuMSAxMi4zIDcuMyAyNSA5LjQgMzcuOCAuNiAzLjEgMSA2LjMgMS40IDkuNSAuNSAzLjggLjkgNy43IDEuMiAxMS42IC44IDguMyAuOCAxNi43IC44IDI1LjEtLjEgNS0uMyA5LjktLjcgMTQuOS0uMiAzLjQtLjUgNi44LTEgMTAuMS0uNCAyLjctLjYgNS41LTEuMSA4LjItLjkgNS4xLTEuNyAxMC4zLTIuOSAxNS40LTQuMSAxOC41LTEwLjMgMzYuNi0xOC41IDUzLjYtMTUuOCAzMi44LTM4LjggNjIuMi02Ny4xIDg1LjEtMTcuMyAxNC4xLTM2LjQgMjUuOS01Ni45IDM0LjktNi4yIDIuNy0xMi41IDUuMy0xOC45IDcuNC0zLjUgMS4yLTcgMi40LTEwLjYgMy40LTYuNiAxLjktMTMuMyAzLjYtMjAgNS00LjcgLjktOS4zIDEuNy0xNCAyLjUtNS4zIC43LTEwLjUgMS40LTE1LjggMS43LTYuNyAuNy0xMy40IC44LTIwLjEgLjgtNi44IDAtMTMuNi0uMS0yMC40LS44LTMuMy0uMi02LjYtLjUtOS44LTEtMi43LS40LTUuNS0uNi04LjItMS4xLTQuMS0uNy04LjItMS40LTEyLjQtMi4yLTQuMi0uOS04LjUtMS45LTEyLjctMy04LjYtMi4yLTE3LjEtNS0yNS40LTguMS0xMC41LTQuMS0yMC44LTguNy0zMC42LTE0LjItMi4xLTEuMi00LjMtMi4zLTYuNC0zLjYtMTEuMi02LjYtMjEuOS0xNC4xLTMxLjktMjIuMy0zNC43LTI4LjQtNjEuNC02Ni40LTc2LjQtMTA4LjctMy4xLTguNy01LjctMTcuNi03LjgtMjYuNy0xLjUtNi4yLTIuNS0xMi40LTMuNi0xOC43LS40LTIuMy0uNi00LjctMS03LjEtLjYtNC0uOC04LTEuMi0xMS45LS44LTkuNS0uNy0xOS0uNS0yOC41IC4xLTMuNSAuMy03IC43LTEwLjUgLjMtMy4yIC41LTYuNCAuOS05LjUgLjQtMi44IC43LTUuNiAxLjItOC40IC43LTMuOSAxLjMtNy45IDIuMS0xMS44IDMuNC0xNi41IDguNS0zMi43IDE1LjMtNDguMiAxLjItMi45IDIuNi01LjcgMy45LTguNiA4LjEtMTYuNyAxNy45LTMyLjYgMjkuNS00Ny4xIDIwLTI1LjQgNDUuMS00Ni43IDczLjMtNjIuNSA3LjUtNC4yIDE1LjItOCAyMy4xLTExLjQgMTUuOC02LjkgMzIuNC0xMiA0OS4zLTE1LjQgMy41LS43IDctMS4yIDEwLjYtMS44IDIuNi0uNSA1LjMtLjcgNy45LTEuMSAzLjUtLjUgNy4xLS43IDEwLjYtMSAyLjUtLjIgNC45LS40IDcuNC0uNXptOC42IDI0LjRjLTkuMiAuMS0xOC40IDEtMjcuNiAyLjItNy4zIDEuMS0xNC41IDIuNi0yMS43IDQuMy0xMy45IDMuNS0yNy41IDguMy00MC41IDE0LjQtMTAuNSA1LTIwLjYgMTAuNy0zMC4yIDE3LjItNC4yIDIuOS04LjQgNS44LTEyLjMgOS01LjEgNC0xMCA4LjItMTQuNyAxMi42LTIuNSAyLjItNC44IDQuNy03LjIgNy4xLTI4LjIgMjguOC00OC40IDY1LjQtNTcuNSAxMDQuNy0yIDguNC0zLjUgMTctNC40IDI1LjYtMS4xIDguOS0xLjQgMTcuOS0xLjQgMjYuOCAuMSA3LjEgLjQgMTQuMyAxLjIgMjEuNCAuNiA3LjEgMS45IDE0LjIgMy4yIDIxLjIgMS4xIDQuNiAyIDkuMyAzLjMgMTMuOSA2LjMgMjMuNCAxNi41IDQ1LjcgMzAuMSA2NS44IDguNiAxMyAxOC44IDI0LjkgMzAgMzUuOCAxNi4zIDE1LjggMzUgMjkgNTUuMyAzOS4yIDcuMyAzLjUgMTQuNyA2LjkgMjIuMyA5LjYgNSAxLjggMTAuMSAzLjYgMTUuMiA1IDExLjMgMy4yIDIyLjggNS42IDM0LjQgNy4xIDIuOSAuMyA1LjggLjYgOC43IC45IDEzLjggMS4xIDI3LjcgMSA0MS41LS40IDQuNC0uNiA4LjktMSAxMy4zLTEuOCAzLjYtLjcgNy4zLTEuMiAxMC45LTIuMSA0LjEtMSA4LjMtMS45IDEyLjQtMy4xIDI2LjUtNy4zIDUxLjYtMTkuNyA3My42LTM2LjIgMTUuOC0xMS44IDMwLTI1LjggNDIuMS00MS4zIDMuMy00IDYuMi04LjMgOS4xLTEyLjYgMy40LTUuMSA2LjYtMTAuMiA5LjYtMTUuNSAyLjQtNC40IDQuNy04LjkgNy0xMy40IDUuNy0xMi4xIDEwLjMtMjQuNiAxMy44LTM3LjUgMi42LTEwIDQuNy0yMC4yIDUuOS0zMC40IDEuOC0xMy41IDEuOS0yNy4xIDEuMy00MC43LS4zLTMuOS0uNy03LjgtMS0xMS43LTIuMi0xOS4xLTYuOC0zNy45LTEzLjgtNTUuOC02LTE1LjEtMTMuNS0yOS42LTIyLjYtNDMuMS0xMi43LTE4LjgtMjguMi0zNS43LTQ2LTQ5LjgtMjUtMjAtNTQuNS0zNC41LTg1LjYtNDIuMS03LjgtMS45LTE1LjctMy4zLTIzLjYtNC40LTMuOS0uNi03LjgtLjgtMTEuOC0xLjItNy40LS42LTE0LjgtLjctMjIuMi0uNnpNMTQ3LjMgODMuNWMxMy4zLTguOSAyOC4xLTE1LjQgNDMuMy0yMC4yLTMuMiAxLjgtNi40IDMuNC05LjUgNS4zLTExLjIgNi43LTIxLjUgMTQuOS0zMC40IDI0LjUtNi44IDcuNC0xMi44IDE1LjctMTcgMjQuOS0zLjMgNi45LTUuNiAxNC4yLTYuOSAyMS43LS45IDQuOC0xLjMgOS44LTEuMiAxNC44IC4xIDEzLjcgNC40IDI3LjEgMTEuMyAzOC44IDUuOSAxMC4yIDEzLjYgMTkuMyAyMi40IDI3LjMgNC45IDQuNCAxMC4yIDguMSAxNSAxMi42IDIuMyAyLjIgNC41IDQuNCA2LjQgNi45IDIuNiAzLjMgNC45IDcgNiAxMS4xIC45IDMgLjcgNi4yIC43IDkuMyAwIDQuMSAwIDguMiAwIDEyLjMgLjEgMy41IDAgNy4xIC4xIDEwLjYgLjEgMi40IDAgNC44IC4xIDcuMSAuMiA1LjggLjEgMTEuNSAuMSAxNy4zIC4xIDIuOSAwIDUuOCAuMSA4LjcgMCAxLjYgLjEgMy4zIDAgNC45LS45IC4xLTEuOCAuMi0yLjcgLjItMTEgMC0yMS45LTIuNi0zMi02LjktNi0yLjctMTEuOC01LjktMTcuMS05LjgtNS44LTQuMi0xMS4xLTktMTUuOC0xNC4zLTYuNS03LjItMTItMTUuNC0xNi42LTIzLjktMS4xLTItMi4yLTQtMy4yLTYuMS0xLjItMi42LTIuNi01LjEtMy43LTcuOC00LTkuNy02LjYtMTkuOS04LjEtMzAuMy0uNS00LjQtMS4xLTguOS0xLjItMTMuMy0uNy0xNS43IC44LTMxLjYgNC43LTQ2LjggMi4xLTguMiA0LjgtMTYuMiA4LjMtMjMuOCA2LjMtMTQuMiAxNS4zLTI3LjIgMjYuMy0zOC4yIDYuMy02LjIgMTMuMS0xMS44IDIwLjUtMTYuN3pNMzIyLjcgNjMuNGMyLjcgLjcgNS40IDEuNyA4LjEgMi43IDYuNCAyLjMgMTIuNyA0LjggMTguNyA4IDEzLjEgNi40IDI1LjMgMTQuOCAzNS44IDI1IDEwLjIgMTAgMTguNyAyMS42IDI1LjEgMzQuMyAxLjMgMi43IDIuNiA1LjUgMy44IDguMyA2LjMgMTUuMSAxMCAzMS4zIDExLjIgNDcuNiAuNCA0LjUgLjQgOS4xIC41IDEzLjYgLjEgMTEuNi0xLjUgMjMuMy00LjMgMzQuNS0yIDcuMy00LjMgMTQuNS03LjkgMjEuMi0zLjIgNi42LTYuNyAxMy4yLTEwLjggMTkuMi02LjkgMTAuNS0xNS42IDE5LjktMjUuOCAyNy4yLTEwLjUgNy42LTIyLjYgMTMtMzUuNCAxNS40LTMuNSAuNy03LjEgMS4xLTEwLjcgMS4yLTEuOCAuMS0zLjcgLjItNS42LS4xLS4zLTIuMSAwLTQuMyAwLTYuNSAwLTMuNyAuMS03LjQgLjEtMTEuMiAuMi03IDAtMTQuMSAuMi0yMS4xIDAtMi40IDAtNC44IDAtNy4xIC4yLTUuMSAwLTEwLjEgLjEtMTUuMiAuMS0zLS4yLTYgLjUtOSAuNy0yLjUgMS44LTQuOSAzLjEtNy4xIDQuNS03LjMgMTEuMS0xMyAxNy43LTE4LjMgNS40LTQuMiAxMC41LTguOCAxNS0xMy44IDcuNy04LjQgMTQuMi0xNy45IDE4LjgtMjguMyAyLjUtNS45IDQuNS0xMi4xIDUuNS0xOC41IC45LTQuNCAxLjEtOC44IDEtMTMuMyAwLTcuOC0xLjQtMTUuNi0zLjYtMjMuMi0xLjgtNS43LTQuMy0xMS4yLTcuMS0xNi40LTMuOS02LjktOC42LTEzLjMtMTQtMTkuMi05LjktMTAuOC0yMS44LTE5LjktMzQuNi0yNy4xLTEuOC0xLTMuOC0xLjgtNS42LTN6TTIyMS45IDEyMS45YzEtMS4yIDItMi4zIDMuMS0zLjQtLjYgLjktMS4zIDEuOC0yIDIuNy0zLjEgMy45LTUuNSA4LjMtNyAxMy4xLS45IDMuMy0xLjcgNi42LTEuNyAxMC0uMSAyLjUtLjEgNS4xIC4zIDcuNiAxLjEgNy42IDQuMyAxNC45IDguOCAyMS4xIDIgMi43IDQuMiA1LjMgNi45IDcuMyAxLjYgMS4zIDMuNSAyLjEgNS4zIDMgMy4xIDEuNyA2LjMgMy4yIDkuMSA1LjUgMi43IDIuMSA0LjYgNS4zIDQuNCA4LjggMCA3My43IDAgMTQ3LjMgMCAyMjEgMCAxLjQtLjEgMi43IDAgNCAuMSAxLjUgLjggMi44IDEuNSA0LjEgLjkgMS43IDEuOCAzLjMgMy4yIDQuNiAuOSAuOCAyIDEuNCAzLjIgMS4yIDEuNS0uMiAyLjctMS40IDMuNC0yLjYgMS0xLjUgMS43LTMuMiAyLjMtNC45IC44LTIuMSAuNC00LjQgLjUtNi42IC4xLTQgMC04LjEgLjEtMTIuMSAwLTUuOSAwLTExLjggLjEtMTcuNyAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMi00IDAtOC4xIC4xLTEyLjEgMC02IDAtMTIgLjEtMTggLjEtMy42IDAtNy4yIC4xLTEwLjkgLjEtMy45IDAtNy45IC4xLTExLjggMC02IDAtMTIgLjEtMTggLjItMy45IDAtNy45IC4yLTExLjggLjMgMS40IC4xIDIuOSAuMiA0LjQgLjIgMy42IC40IDcuMiAuOCAxMC44IC4zIDMuNCAuNCA2LjkgLjkgMTAuMyAuNCAzLjEgLjUgNi4yIDEgOS4zIC42IDQuMSAuOSA4LjIgMS41IDEyLjMgMS41IDkgMi44IDE4LjEgNS4xIDI3IDEuMSA0LjggMi40IDkuNiA0IDE0LjMgMi41IDcuOSA1LjcgMTUuNyAxMC4zIDIyLjYgMS43IDIuNiAzLjkgNSA2LjEgNy4yIC4zIC4yIC42IC41IC45IC43IC42IC4zIDEuMy0uMSAxLjctLjYgLjctLjkgMS4yLTEuOSAxLjctMi45IDQuMS03LjggOC4yLTE1LjYgMTIuMy0yMy4zIC43LTEuMyAxLjQtMi42IDIuNi0zLjYgMS44LTEuNiAzLjgtMi43IDYtMy42IDIuOS0xLjIgNS45LTIuMiA5LTIuNCA2LjYtLjYgMTMuMSAuNyAxOS42IDEuOCAzLjcgLjYgNy40IDEuMiAxMS4xIDEuNCAzLjcgLjEgNy41IC4xIDExLjItLjMgOC42LS45IDE3LTMgMjQuOS02LjIgNS4zLTIuMiAxMC41LTQuOCAxNS4zLTcuOSAxMS41LTcuMiAyMS41LTE2LjYgMzAtMjcgMS4yLTEuNCAyLjItMi45IDMuNS00LjMtMS4yIDMuMi0yLjcgNi40LTQuMiA5LjUtMS4zIDIuOS0yLjggNS42LTQuMyA4LjQtNS4yIDkuNi0xMSAxOC45LTE3LjggMjcuNS00IDUuMi04LjUgMTAuMS0xMy4zIDE0LjYtNi42IDYuMS0xNC4xIDExLjQtMjIuNCAxNC44LTguMiAzLjQtMTcuMyA0LjYtMjYuMSAzLjMtMy42LS42LTctMS43LTEwLjQtMi45LTIuOC0xLTUuNC0yLjQtOC0zLjctMy40LTEuNy02LjYtMy44LTkuNy02LjEgMi43IDMuMSA1LjcgNS45IDguNyA4LjYgNC4zIDMuOCA4LjcgNy4zIDEzLjYgMTAuMiA0IDIuNSA4LjMgNC40IDEyLjggNS41IDEuNSAuNCAzIC41IDQuNSAuNi0xLjMgMS4xLTIuNiAyLTQgMy05LjYgNi41LTIwIDExLjktMzAuNyAxNi40LTIwLjkgOC43LTQzLjIgMTQtNjUuNyAxNS4zLTQuNyAuMi05LjMgLjQtMTQgLjQtNS0uMS0xMC0uMS0xNC45LS43LTExLjItLjgtMjIuMy0yLjctMzMuMi01LjQtMTAuNC0yLjctMjAuNi02LjEtMzAuMy0xMC42LTguNy0zLjktMTcuMS04LjQtMjUtMTMuOC0xLjgtMS4zLTMuNy0yLjUtNS40LTQuMSA2LjYtMS4yIDEzLTMuNCAxOS02LjUgNS43LTIuOSAxMS02LjcgMTUuNi0xMS4xIDIuMi0yLjIgNC4zLTQuNiA2LjItNy4xLTMuNCAyLjEtNi45IDQuMi0xMC42IDUuOC00LjQgMi4yLTkuMSAzLjgtMTMuOCA1LTUuNyAxLjUtMTEuNyAxLjctMTcuNiAxLjEtOC4xLTEtMTUuOS00LjMtMjIuNS05LTQuMy0yLjktOC4yLTYuNC0xMi0xMC4xLTkuOS0xMC4yLTE4LjItMjEuOC0yNS43LTMzLjktMy45LTYuMy03LjUtMTIuNy0xMS4xLTE5LjItMS0yLTIuMS00LjEtMy4yLTYuMSAyLjggMi45IDUuNiA2IDguNCA4LjkgMTkuMiAxOS4yIDM3LjYgMzIuMyA1My43IDM1LjUgMy4xIC43IDYuMyAuNSA5LjUgLjggMi44IC4zIDUuNiAuMiA4LjMgLjMgNSAuMSAxMC4xIDAgMTUuMi0uMiAzLjYtLjIgNy4zLS43IDEwLjktMS4xIDIuMS0uMiA0LjEtLjcgNi4xLTEuMiAzLjktMSA4LjEtMSAxMS44IC42IDQuOCAxLjggOC40IDUuNiAxMS40IDkuNyAyLjIgMyA0LjEgNi4yIDUuNyA5LjYgMS4yIDIuNCAyLjUgNC44IDMuNiA3LjMgMSAyLjIgMi4yIDQuNCAzLjQgNi41IC43IDEgMS40IDIuMiAyLjYgMi42IDEuMS0uOCAxLjctMS45IDIuMy0zIDIuMS00LjIgMy40LTguNiA0LjktMTMgMi02LjYgMy44LTEzLjMgNS4yLTIwIDIuMi05LjMgMy4yLTE4LjcgNC41LTI4LjEgLjYtNCAuOC04IDEuMy0xMiAuOS0xMC42IDEuOS0yMS4zIDIuMi0zMS45IC4xLTEuOSAuMi0zLjcgLjMtNS42IDAtNC4zIC4yLTguNyAuMi0xMyAwLTIuNCAwLTQuOCAwLTcuMSAwLTUuMS0uMi0xMC4xLS4yLTE1LjItLjItNi42LS43LTEzLjItMS4zLTE5LjgtLjctNS45LTEuNS0xMS44LTMuMS0xNy41LTItNy43LTUuNi0xNS05LjgtMjEuOC0zLjItNS4xLTYuOC05LjktMTEuMS0xNC0zLjktMy45LTguNi03LjEtMTMuOS04LjQtMS41LS40LTMuMS0uNC00LjYtLjYgLjEtMyAuNy01LjkgMS4zLTguOCAxLjYtNy43IDMuOC0xNS4zIDYuOC0yMi42IDEuNS00IDMuNC03LjkgNS40LTExLjcgMy40LTYuNiA3LjYtMTIuOCAxMi41LTE4LjV6bTMxLjMgMS43Yy40LS4xIC43LS4xIDEuMS0uMiAuMiAxLjggLjEgMy42IC4xIDUuNGwwIDM4LjFjMCAxLjcgLjEgMy41LS4yIDUuMi0uNCAwLS43IDAtMS4xIDAtLjktMy44LTEuNy03LjYtMi42LTExLjMtLjQtMS41LS42LTMuMS0xLjEtNC42LTEuNy0uMi0zLjQtLjItNS4yLS4yLTUuMSAwLTEwLjEgMC0xNS4yIDAtMS43IDAtMy4zIC4xLTUgMCAwLS40LS4zLS45IC4yLTEuMiAxLjMtLjcgMi43LS45IDQuMS0xLjQgMy40LTEuMSA2LjktMi4yIDEwLjMtMy4zIDEuNC0uNSAyLjktLjcgNC4yLTEuNSAwLS42IDAtMS4xIDAtMS43LTEuMi0uNi0yLjUtLjktMy44LTEuMy0zLjEtMS02LjMtMi05LjQtMy0xLjgtLjYtMy43LTEtNS40LTEuOCAwLS40LS4xLS43LS4xLTEuMSA1LjEtLjIgMTAuMiAuMSAxNS4zLS4xIDMuNC0uMSA2LjcgLjEgMTAuMS0uMSAuMS0uNCAuMy0uOCAuNC0xLjIgMS4xLTQuOSAyLjMtOS44IDMuNC0xNC43em02LS4yYy40IDAgLjcgLjEgMS4xIC4yIDEgMy44IDEuNyA3LjggMi43IDExLjYgLjQgMS40IC42IDIuOSAxIDQuMyAyLjUgLjIgNS4xIDAgNy42IDAgNS4yIC4xIDEwLjMgLjEgMTUuNSAuMSAuOCAwIDEuNSAwIDIuMyAuMSAwIC40LS4xIC43LS4xIDEuMS0xLjggLjgtMy44IDEuMi01LjcgMS45LTMuNyAxLjItNy41IDIuNC0xMS4yIDMuNi0uNiAuMi0xLjEgLjQtMS43IC42LS4yIC42LS4yIDEuMS0uMSAxLjcgLjkgLjUgMS44IC44IDIuOCAxLjEgNC45IDEuNSA5LjcgMy4xIDE0LjYgNC42IC40IC4xIC44IC4zIDEuMSAuNSAuNCAuMyAuMiAuOCAuMiAxLjItMS43IC4xLTMuMyAwLTUgMC01LjIgMC0xMC4zIDAtMTUuNSAwLTEuNiAwLTMuMiAwLTQuOCAuMi0uNSAxLjctLjcgMy40LTEuMiA1LjEtLjkgMy42LTEuNSA3LjItMi41IDEwLjgtLjQgMC0uNyAwLTEuMSAuMS0uMy0xLjctLjItMy41LS4yLTUuMmwwLTM4LjFjMC0xLjgtLjEtMy42IC4xLTUuNHptLTE4NiA0NWMxLjEtMi4yIDIuMS00LjQgMy40LTYuNS0xLjggNy42LTIuOSAxNS4zLTMuNiAyMy0uOCA3LjctLjggMTUuNS0uNSAyMy4yIDEuMSAxOS45IDUuNSAzOS44IDE0LjIgNTcuOSAzIDYgNi40IDExLjggMTAuNSAxNy4xIDYuMSA3LjUgMTIuNSAxNC44IDE5LjggMjEuMSA0LjggNC4xIDEwIDcuOCAxNS41IDEwLjggMy4zIDEuNyA2LjUgMy40IDkuOSA0LjcgNSAyIDEwLjIgMy42IDE1LjQgNC45IDMuOCAxIDcuOCAxLjQgMTEuNSAyLjcgNSAxLjYgOS41IDQuNiAxMyA4LjQgNC45IDUuMiA4LjEgMTEuOSAxMC4yIDE4LjcgMSAyLjkgMS42IDUuOSAyLjIgOC45IC4yIC44IC4yIDEuNSAuMiAyLjMtNi41IDIuOC0xMy4zIDUuMS0yMC4zIDYuMi00LjEgLjgtOC4zIDEtMTIuNSAxLjEtMTAuMiAuMi0yMC41LTEuOC0zMC4xLTUuMS0zLjctMS40LTcuNS0yLjktMTEtNC43LTguMS0zLjgtMTUuNi04LjctMjIuNS0xNC41LTIuOS0yLjYtNS44LTUuMS04LjQtOC05LjItOS44LTE2LjMtMjEuNC0yMS44LTMzLjctMi40LTUuNS00LjYtMTEuMi02LjQtMTctMS4yLTMuOS0yLjQtNy45LTMuMy0xMS45LS43LTIuOS0xLjItNS45LTEuOS04LjktLjUtMi4xLS43LTQuMy0xLTYuNS0uOC01LjQtMS4zLTEwLjktMS4zLTE2LjQgLjEtNi4yIC4yLTEyLjQgMS4xLTE4LjUgLjQtMi45IC43LTUuNyAxLjItOC42IDEtNS43IDIuMS0xMS40IDMuNy0xNi45IDMuMS0xMS42IDcuNS0yMyAxMi43LTMzLjh6bTM2My43LTYuNGMxLjEgMS43IDEuOSAzLjUgMi44IDUuMyAyLjEgNC41IDQuMiA4LjkgNiAxMy41IDcuNiAxOC44IDEyLjMgMzguOCAxMyA1OSAwIDEuOCAuMSAzLjUgLjEgNS4zIC4xIDkuNi0xLjMgMTkuMS0zLjIgMjguNS0uNyAzLjYtMS41IDcuMi0yLjYgMTAuNy00IDE0LjctMTAgMjktMTguNCA0MS44LTguMiAxMi42LTE5IDIzLjUtMzEuOCAzMS40LTUuNyAzLjYtMTEuOCA2LjYtMTggOS4yLTUuOCAyLjItMTEuNyA0LTE3LjggNS4xLTYuNCAxLTEyLjkgMS41LTE5LjQgMS4yLTcuOS0uNS0xNS44LTIuMS0yMy4yLTQuOC0xLjktLjgtMy45LTEuNS01LjgtMi4zLS4yLTEuNSAuMi0zIC41LTQuNSAxLjItNS43IDMtMTEuNCA1LjctMTYuNiAyLjQtNC41IDUuNS04LjcgOS41LTExLjkgMi40LTIuMSA1LjItMy42IDguMi00LjggMy42LTEuNSA3LjUtMiAxMS4yLTIuOCA3LjItMS43IDE0LjQtMy45IDIxLjItNyAxMC4zLTQuNyAxOS43LTExLjQgMjcuNi0xOS41IDEuNi0xLjYgMy4yLTMuMiA0LjctNC45IDMuNC0zLjggNi43LTcuNiA5LjgtMTEuNSA3LjUtMTAuMSAxMi44LTIxLjYgMTYuNy0zMy41IDEuNi01LjMgMy4yLTEwLjYgNC4yLTE2LjEgLjYtMi45IDEtNS44IDEuNS04LjcgLjktNi4xIDEuNi0xMi4yIDEuNy0xOC40IC4xLTYuNiAuMS0xMy4zLS41LTE5LjktLjctOC0xLjktMTYtMy43LTIzLjh6Il19LHFDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXNlIixpY29uOls2NDAsNTEyLFtdLCJmN2Q2IiwiTTYwNC41IDIxMGExMC40IDEwLjQgMCAxIDEgLTExLjQtMTcuNCAxMC40IDEwLjQgMCAxIDEgMTEuNCAxNy40ek02MjEgMTg3LjJhMzguNSAzOC41IDAgMSAxIC03NSAxNy42IDM4LjUgMzguNSAwIDEgMSA3NS0xNy42ek00MzMuNyAzMzYuN2MzLjIgNC42IDUuOCA5IDcuMyAxMy40IDEgMy4xIDIuNCA3LjMgNS41IDguOSAuMiAuMSAuMyAuMiAuNSAuMiA1LjcgMi4xIDIwLjMgMS43IDIwLjMgMS43bDI2LjggMGMyLjMgMCAyMi40IDAgMjEuOS0yLjMtMi40LTEwLjgtMTQuOS0xMi43LTI0LjQtMTguMy04LjctNS4yLTE3LTExLjEtMjAuOC0yMS4zLTItNS4yLS44LTE3LjQgMi42LTIxLjggMi41LTMuMiA2LjEtNS4zIDEwLTYuMiA0LjMtLjkgOC44LS4xIDEzLjEgLjMgNS4zIC41IDEwLjYgMS41IDE1LjkgMi4yIDEwLjMgMS4zIDIwLjYgMS45IDMxIDEuNiAxNy4xLS41IDM0LjItMy4yIDUwLjQtOC43IDExLjMtMy44IDIyLjQtOC45IDMyLTE2LjEgMTAuOS04LjEgOC4xLTcuNC0zLTYuMi0xMy4zIDEuNC0yNi42IDEuNi0zOS45IC44LTEyLjQtLjctMjQuNy0yLjItMzUuOS03LjktOC44LTQuNi0xNi40LTkuMS0yMy40LTE2LjItMS0xLjEtMS43LTQuMiAuMi02LjIgMS45LTEuOSA1LjgtLjggNyAuMiAxMi4yIDEwLjIgMzAuNSAxOC42IDQ5LjMgMTkuNSAxMC4yIC41IDIwLjEgLjcgMzAuNCAuMyA1LjEtLjIgMTIuOC0uMiAxNy45LS4zIDIuNiAwIDkuOCAuNyAxMS4yLTIuMSAuNC0uOCAuNC0xLjggLjMtMi43LTEuNS00MC45LTQuNS04Ni45LTQ3LjMtMTA2LjUtMzEuOS0xNC42LTc5LjctMzcuMi05OS45LTQ2LjYtNC43LTIuMi0xMC4yIDEuMy0xMC4yIDYuNSAwIDEzLjYgLjcgMzMuMyAuNyA1MS4xLTkuNy05LjktMjYtMTYuMS0zOC40LTIxLjgtMTQuMS02LjUtMjguNy0xMi00My41LTE2LjYtMjkuOC05LjItNjAuNy0xNC45LTkxLjctMTgtMzUuMi0zLjUtNzEtMS44LTEwNS43IDUuMy01Ni45IDEyLjItMTEzLjEgMzkuNy0xNTUuNyA3OS44LTI2LjEgMjQuNi00Ni42IDU5LjctNDggOTUuMi0yIDUwLjMgMTIuMSA3Ny4zIDM4IDEwNS4yIDQxLjMgNDQuNCAxMzAuMiA1MC42IDE2Ni4yLTIgMTYuMi0yMy43IDE5LjctNTUuOCA4LTgyLTExLjgtMjYuMi0zOC44LTQ1LjEtNjcuNC00Ni0yMi4yLS43LTQ1LjkgMTAuNi01NC41IDMxLjEtNi41IDE1LjctMi44IDM1LjEgOSA0Ny4zIDQuNiA0LjggMTAuOSA4LjcgMTcuNyA3LjEgNC0uOSA3LjQtMy45IDgtOCAuOS02LTQuNC05LjktNy42LTE0LjUtNS44LTguMy00LjctMjAuOSAyLjctMjcuOSA2LjItNiAxNS4zLTcuOCAyMy45LTcuNyA4IDAgMTYuMiAxLjQgMjMuMSA1LjUgOS43IDUuNyAxNi4yIDE2LjIgMTguNCAyNy4yIDYuNyAzMy0yMC4yIDU5LjktNTYuNiA2Mi0xOC42IDEuMS0zNy42LTMuOC01Mi4xLTE1LjUtMzYuOS0yOS44LTQ1LjktOTAuMy0zLjgtMTIyLjcgNDAtMzAuNyA5MC40LTIyLjggMTIwLjItNi44IDIzLjggMTIuOCA0MS41IDMzLjYgNTUgNTYuNyA2LjcgMTEuNiAxMi41IDIzLjcgMTcuOCAzNi4xIDUuMSAxMS44IDkuOSAyMy44IDIwLjIgMzIuNSA2LjggNS44IDE1LjIgNS42IDI0LjEgNS42bDUwLjggMGM2LjkgMCA1LjItNC42IDIuMi03LjctNi43LTYuOS0xNi40LTguNC0yNS40LTEwLjktMjAuNS01LjYtMTguNC0zMi44LTEyLjctMzIuOCAxOC4zIDAgMTguOSAuNiAzNC45IC4zIDIzLjItLjMgMzAuMi0xLjcgNDguMyA1IDkuNyAzLjYgMTkgMTMuMSAyNS4xIDIxLjd6Il19LGpDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUtaW9zIixpY29uOls0NDgsNTEyLFtdLCJmMzcwIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjcgMzg0LjVjLTUuNSA5LjYtMTcuOCAxMi44LTI3LjMgNy4zLTkuNi01LjUtMTIuOC0xNy44LTcuMy0yNy4zbDE0LjMtMjQuN2MxNi4xLTQuOSAyOS4zLTEuMSAzOS42IDExLjRMMTI3IDM4NC41em0xMzguOS01My45TDg0IDMzMC42Yy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1MSAwIDY1LjQtMTEzLjItMjAuNS0zNS40Yy01LjUtOS42LTIuMi0yMS44IDcuMy0yNy4zIDkuNi01LjUgMjEuOC0yLjIgMjcuMyA3LjNsOC45IDE1LjQgOC45LTE1LjRjNS41LTkuNiAxNy44LTEyLjggMjcuMy03LjMgOS42IDUuNSAxMi44IDE3LjggNy4zIDI3LjNsLTg1LjggMTQ4LjYgNjIuMSAwYzIwLjIgMCAzMS41IDIzLjcgMjIuNyA0MHptOTguMSAwbC0yOSAwIDE5LjYgMzMuOWM1LjUgOS42IDIuMiAyMS44LTcuMyAyNy4zLTkuNiA1LjUtMjEuOCAyLjItMjcuMy03LjMtMzIuOS01Ni45LTU3LjUtOTkuNy03NC0xMjguMS0xNi43LTI5LTQuOC01OCA3LjEtNjcuOCAxMy4xIDIyLjcgMzIuNyA1Ni43IDU4LjkgMTAybDUyIDBjMTEgMCAyMCA5IDIwIDIwIDAgMTEuMS05IDIwLTIwIDIweiJdfSxWQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MteW9sbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZiIsIk0zODMuNSAxMC44YzYxLjgtLjIgMTEyLjMgNTAuNiAxMTIuMyAxMTIuOS0uMiAyLjcgMCAwLS4xIDMuM2wuMyAuM2MtMS41IDg5LjktNTMgMTY4LjQtMTI3LjQgMjA4LjVsMCA1Mi44YzAgNjIuNi01MS4xIDExMy41LTExMy43IDExMi45LTYyLS42LTExMS40LTUyLjItMTExLjQtMTE0LjNsMC01MS4yYy00MC43LTIxLjktNzQuNS01NS4yLTk3LTk1LjYgMjMuMiAxNi41IDUxLjcgMjYgODIgMjUuOSA3OC42LS4yIDE0Mi4yLTY0IDE0Mi4zLTE0Mi41IC4xLTYyLjMgNTAuNS0xMTIuNyAxMTIuOS0xMTIuOXptLTI1NSAyMjUuOGExMTIuOSAxMTIuOSAwIDEgMSAwLTIyNS44IDExMi45IDExMi45IDAgMSAxIDAgMjI1Ljh6Il19LE44ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZHJpYmJibGUiLGljb246WzQ0OCw1MTIsWyJkcmliYmJsZS1zcXVhcmUiXSwiZjM5NyIsIk0xNjUuOSAxMzIuNWMtMzguMyAxOC02Ni44IDUzLjMtNzUuNyA5NS43IDYuMSAuMSA2Mi40IC4zIDEyNi40LTE2LjctMjIuNy00MC4yLTQ3LjEtNzQuMS01MC43LTc5em0yNi4xLTkuMWMzLjggNS4xIDI4LjYgMzguOSA1MSA4MCA0OC42LTE4LjMgNjkuMS00NS45IDcxLjYtNDkuNC0zMy42LTI5LjgtNzkuMy00MS4xLTEyMi42LTMwLjZ6TTI3Ny40IDM4MmMtMi0xMi0xMC01My44LTI5LjItMTAzLjYtNTUuMSAxOC44LTkzLjggNTYuNC0xMDguMSA4NS42IDQwLjUgMzEuNiA5My4zIDM2LjcgMTM3LjMgMTh6TTIyNy44IDIzMi42QzE1OS42IDI1MyA5My40IDI1Mi4yIDg3LjQgMjUybDAgNC4yYzAgMzUuMSAxMy4zIDY3LjEgMzUuMSA5MS40IDIyLjItMzcuOSA2Ny4xLTc3LjkgMTE2LjUtOTEuOC0zLjQtNy44LTcuMi0xNS41LTExLjEtMjMuMmwtLjEgMHptNzIuNSAxMzYuOWMzMC43LTIwLjcgNTIuNS01My42IDU4LjYtOTEuNi00LjYtMS41LTQyLjMtMTIuNy04NS4xLTUuOCAxNy45IDQ5LjEgMjUuMSA4OS4xIDI2LjUgOTcuNHptLTM0LjgtMTE5YzQ1LjUtNS43IDkwLjcgMy40IDk1LjIgNC40LS4zLTMyLjMtMTEuOC02MS45LTMwLjktODUuMS0yLjkgMy45LTI1LjggMzMuMi03Ni4zIDUzLjkgNC44IDkuOCA4LjMgMTcuOCAxMiAyNi44ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDk2YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sVUN0PU44ZSxXQ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWlraXQiLGljb246WzQ0OCw1MTIsW10sImY0MDMiLCJNNDQzLjkgMTI4bDAgMjU2LTIyNS45IDEyOC0yMTgtMTI4IDAtMjE0LjMgODcuNiA0NS4xIDAgMTE3IDEzMy41IDc1LjUgMTM1LjgtNzUuNSAwLTE1MS0xMDEuMS01Ny42IDg3LjYtNTMuMSAxMDAuNSA1Ny45ek0zMDguNiA0OS4xbC04NC44LTQ5LjEtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3oiXX0sR0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cGVycG93ZXJzIixpY29uOls0NDgsNTEyLFtdLCJmMmRkIiwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyek0zNjguMyAyNjQuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXoiXX0sS0N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvdXR1YmUiLGljb246WzU3Niw1MTIsWzYxODAyXSwiZjE2NyIsIk01NDkuNyAxMjQuMUM1NDMuNSAxMDAuNCA1MjQuOSA4MS44IDUwMS40IDc1LjUgNDU4LjkgNjQgMjg4LjEgNjQgMjg4LjEgNjRTMTE3LjMgNjQgNzQuNyA3NS41QzUxLjIgODEuOCAzMi43IDEwMC40IDI2LjQgMTI0LjEgMTUgMTY3IDE1IDI1Ni40IDE1IDI1Ni40czAgODkuNCAxMS40IDEzMi4zYzYuMyAyMy42IDI0LjggNDEuNSA0OC4zIDQ3LjggNDIuNiAxMS41IDIxMy40IDExLjUgMjEzLjQgMTEuNXMxNzAuOCAwIDIxMy40LTExLjVjMjMuNS02LjMgNDItMjQuMiA0OC4zLTQ3LjggMTEuNC00Mi45IDExLjQtMTMyLjMgMTEuNC0xMzIuM3MwLTg5LjQtMTEuNC0xMzIuM3pNMjMyLjIgMzM3LjZsMC0xNjIuNCAxNDIuNyA4MS4yLTE0Mi43IDgxLjJ6Il19LFlDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbWJlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMyIsIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnoiXX0sWkN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvb3RzdHJhcCIsaWNvbjpbNTc2LDUxMixbXSwiZjgzNiIsIk0zMzMuNSAyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNsLTUwLjQgMCAwIDcxLjIgNDIuNSAwYzMyLjgtLjEgNTAuOS0xMy4zIDUwLjktMzYuOXpNNTE3IDE4OC42Yy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjEgMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUwxMjMuNyAzMmMtMzIuMSAwLTU1LjggMjguMS01NC43IDU4LjUgMSAyOS4zLS4zIDY3LjItOS44IDk4LjEtOS42IDMxLTI1LjcgNTAuNi01Mi4yIDUzLjFsMCAyOC41YzI2LjQgMi41IDQyLjYgMjIuMSA1Mi4yIDUzLjEgOS41IDMwLjkgMTAuOSA2OC44IDkuOCA5OC4xLTEuMSAzMC41IDIyLjcgNTguNSA1NC43IDU4LjVsMzI4LjcgMGMzMi4xIDAgNTUuOC0yOC4xIDU0LjctNTguNS0xLTI5LjMgLjMtNjcuMiA5LjgtOTguMSA5LjYtMzEgMjUuNy01MC42IDUyLjEtNTMuMWwwLTI4LjVjLTI2LjMtMi41LTQyLjUtMjIuMS01Mi01My4xek0zMDAuMiAzNzUuMWwtOTcuOSAwIDAtMjM4LjMgOTcuNCAwYzQzLjMgMCA3MS43IDIzLjQgNzEuNyA1OS40IDAgMjUuMy0xOS4xIDQ3LjktNDMuNSA1MS44bDAgMS4zYzMzLjIgMy42IDU1LjUgMjYuNiA1NS41IDU4LjMgMCA0Mi4xLTMxLjMgNjcuNS04My4yIDY3LjV6bS0xMC0xMDguN2wtNTAuMSAwIDAgNzguNCA1Mi4zIDBjMzQuMiAwIDUyLjMtMTMuNyA1Mi4zLTM5LjUgMC0yNS43LTE4LjYtMzguOS01NC41LTM4Ljl6Il19LFhDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMiLGljb246WzQ0OCw1MTIsW10sImYzYjQiLCJNMjIzLjYgODAuM2ExNzEuMyAxNzEuMyAwIDEgMCAuMiAzNDIuNSAxNzEuMyAxNzEuMyAwIDEgMCAtLjItMzQyLjV6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEgLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcgLjktMTI3IDIuNi0xMzMuNyAuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNiAuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkwxMDIuOCAzMkM0NS45IDMyIDAgNzcuOSAwIDEzNC44TDAgMzc3LjJDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBsMjQyLjQgMGM1NyAwIDEwMi44LTQ1LjkgMTAyLjgtMTAyLjhsMC0yNDIuNEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNTlhMTkyLjUgMTkyLjUgMCAxIDEgMCAzODUgMTkyLjUgMTkyLjUgMCAxIDEgMC0zODV6Il19LFI4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteGluZyIsaWNvbjpbNDQ4LDUxMixbInhpbmctc3F1YXJlIl0sImYxNjkiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTkzLjggMzIwLjJjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42IC4yLTEwLjEgNi0xMC4xbDQ2LjYgMGM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjFsLTQ2LjYgMHptMTYzLjUtMzMuNGwwIC4yIDY1LjUgMTE5YzIuOCA1LjEgLjEgMTAuMS02IDEwLjFsLTQ2LjYgMGMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMS44LTMuMiAyMi45LTQwLjQgNjMuMy0xMTEuNiAxMS43LTIwLjcgMjUuMS00NC4zIDQwLjEtNzAuOCAzLjMtNS44IDcuNC04LjcgMTIuNS04LjdsNDYuOSAwYzUuNy0uMSA4LjggNC43IDYgMTBMMjU3LjMgMjg2Ljh6Il19LFFDdD1SOGUsSkN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMtYWx0IixpY29uOlszODQsNTEyLFtdLCJmMzhiIiwiTTAgMzJMMzQuOSA0MjcuOCAxOTIgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyem0zMTMuMSA4MGwtNC44IDQ3LjMtMTE1LjMgNDkuMy0uMyAuMSAxMTEuNSAwLTEyLjggMTQ2LjYtOTguMiAyOC43LTk4LjgtMjkuMi02LjQtNzMuOSA0OC45IDAgMy4yIDM4LjMgNTIuNiAxMy4zIDU0LjctMTUuNCAzLjctNjEuNi0xNjYuMy0uNSAwLS4xLS4yIC4xLTMuNi00Ni4zIDExMi4xLTQ2LjcgNi41LTIuNy0xMjIuOSAwLTUuOC00Ny4zIDI0Mi4yIDB6Il19LGVUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmVzcGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViZSIsIk0xODYuMSAzNDMuM2MtOS43IDkuNy05LjcgMjUuMyAwIDM0LjlzMjUuMyA5LjYgMzQuOSAwTDM3OC4zIDIyMS4xYzE5LjMtMTkuMyA1MC42LTE5LjMgNjkuOSAwczE5LjMgNTAuNiAwIDY5LjlMMjk0IDQ0NS4xYzE5LjMgMTkuMyA1MC41IDE5LjMgNjkuOCAwbDAgMCAxMTkuMy0xMTkuMmMzOC42LTM4LjYgMzguNi0xMDEuMSAwLTEzOS43LTM4LjYtMzguNi0xMDEuMi0zOC42LTEzOS43IDBMMTg2LjEgMzQzLjN6TTQzMC43IDIzOC41Yy05LjctOS43LTI1LjMtOS43LTM0LjkgMEwyMzguNSAzOTUuN2MtMTkuMyAxOS4zLTUwLjUgMTkuMy02OS44IDBsMCAwYy05LjYtOS42LTI1LjMtOS43LTM0LjkgMGwwIDBjLTkuNyA5LjYtOS43IDI1LjMgMCAzNC45bDAgMGMzOC42IDM4LjYgMTAxLjEgMzguNiAxMzkuNyAwTDQzMC43IDI3My41YzkuNi05LjcgOS42LTI1LjMgMC0zNC45em0tMjYyIDg3LjNMMzI1LjkgMTY4LjdjOS42LTkuNiA5LjYtMjUuMyAwLTM0LjktOS42LTkuNi0yNS4zLTkuNi0zNC45IDBMMTMzLjcgMjkwLjljLTE5LjMgMTkuMy01MC42IDE5LjMtNjkuOSAwbDAgMGMtMTkuMy0xOS4zLTE5LjMtNTAuNSAwLTY5LjhsMCAwIDE1NC4yLTE1NC4yYy0xOS4zLTE5LjMtNTAuNS0xOS4zLTY5LjggMGwwIDAtMTE5LjIgMTE5LjNjLTM4LjYgMzguNi0zOC42IDEwMS4xIDAgMTM5LjcgMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMHpNODEuMyAyNzMuNWM5LjYgOS42IDI1LjMgOS42IDM0LjkgMEwyNzMuNSAxMTYuM2MxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjggMGwwIDBjOS43IDkuNiAyNS4zIDkuNiAzNC45IDBzOS42LTI1LjMgMC0zNC45Yy0zOC42LTM4LjYtMTAxLjEtMzguNi0xMzkuNyAwTDgxLjMgMjM4LjVjLTkuNiA5LjYtOS42IDI1LjMgMCAzNC45bDAgMHoiXX0sdFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyZWxsbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4MSIsIk0zOTIuMyAzMkw1Ni4xIDMyYy0zMSAwLTU2LjEgMjUuMS01Ni4xIDU2LS4xIDAgMC00IDAgMzM2IDAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNi4yIDBjMzAuOC0uMiA1NS43LTI1LjIgNTUuNy01NmwwLTMzNmMuMS0zMC44LTI0LjgtNTUuOC01NS42LTU2ek0xOTcgMzcxLjNjLS4yIDE0LjctMTIuMSAyNi42LTI2LjkgMjYuNmwtODIuNyAwYy0xNC44IC4xLTI2LjktMTEuOC0yNy0yNi42bDAtMjU0LjJjMC0xNC44IDEyLTI2LjkgMjYuOS0yNi45bDgyLjkgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAyNTQuMi0uMSAwem0xOTMuMS0xMTJjMCAxNC44LTEyIDI2LjktMjYuOSAyNi45bC04MSAwYy0xNC44IDAtMjYuOS0xMi0yNi45LTI2LjlsMC0xNDIuMWMwLTE0LjggMTItMjYuOSAyNi44LTI2LjlsODEuMSAwYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOWwwIDE0Mi4xeiJdfSxhVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhZGVvIixpY29uOls0NDgsNTEyLFtdLCJmMmE5IiwiTTI3Ni40IDE1MC41bDAgLjdjLTE3LjktNTIuNi00Mi42LTEwMy40LTcwLjgtMTUxLjIgNDMuMyAyOS4yIDY3IDEwMCA3MC44IDE1MC41em0zMi43IDEyMS43YzcuNiAxOC4yIDExIDM3LjUgMTEgNTcgMCA3Ny43LTU3LjggMTQxLTEzNy44IDEzOS40bDMuOC0uM2M3NC4yLTQ2LjcgMTA5LjMtMTE4LjYgMTA5LjMtMjA1LjEgMC0zOC4xLTYuNS03NS45LTE4LjktMTEyIDEgMTEuNyAxIDIzLjcgMSAzNS40IDAgOTEuOC0xOC4xIDI0MS42LTExNi42IDI4MC02NS43LTExLjQtMTExLjMtNjguNi0xMTEuMy0xMzcuNCAwLTc1LjYgNTcuNC0xNDIuMyAxMzUuNC0xNDIuMyAxNi44IDAgMzMuNyAzLjEgNDkuMSA5LjYgMS43LTE1LjEgNi41LTI5LjkgMTMuNC00My4zLTE5LjktNy4yLTQxLjItMTAuNy02Mi41LTEwLjctMTYxLjUgMC0yMzguNyAxOTUuOS0xMjkuOSAzMTMuNyA2Ny45IDc0LjYgMTkyIDczLjkgMjU5LjggMCA1Ni42LTYxLjMgNjAuOS0xNDIuNCAzNi40LTIwMS0xMi43IDgtMjcuMSAxMy45LTQyLjIgMTd6TTQxOC4zIDExLjdjLTMxIDY2LjUtODEuMyA0Ny4yLTExNS44IDgwLjEtMTIuNCAxMi0yMC42IDM0LTIwLjYgNTAuNSAwIDE0LjEgNC41IDI3LjEgMTIgMzguOCA0Ny40LTExIDk4LjMtNDYgMTE4LjItOTAuNy0uNyA1LjUtNC44IDE0LjQtNy4yIDE5LjItMjAuMyAzNS43LTY0LjYgNjUuNi05OS43IDg0LjkgMTQuOCAxNC40IDMzLjcgMjUuOCA1NSAyNS44IDc5IDAgMTEwLjEtMTM0LjYgNTguMS0yMDguNnoiXX0sc1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlYXJjaGVuZ2luIixpY29uOls0NDgsNTEyLFtdLCJmM2ViIiwiTTIxNC42IDEzMC4zbC02Ny4yIDI4LjIgMC0xMTUuMy01NC43IDE5MC4zIDU0LjctMjQuMiAwIDEzMC4zIDY3LjItMjA5LjN6TTEzMS40IDMzLjZsLTEuMyA0LjctMTUuMiA1Mi45Qzc0LjYgMTA2LjcgNDYgMTQ1LjggNDYgMTkxLjUgNDYgMjQzLjggODAuMyAyODcuNCAxMjkuNCAyOTdsMCA1My42QzUxLjUgMzQwLjEtNiAyNzIuNC02IDE5MS42LTYgMTExLjEgNTMuOCA0NC40IDEzMS40IDMzLjZ6TTQ0Mi44IDQ4MC44Yy0xMS4yIDExLjItMjMuMSAxMi4zLTI4LjYgMTAuNS01LjQtMS44LTI3LjEtMTkuOS02MC40LTQ0LjQtMzMuMy0yNC42LTMzLjYtMzUuNy00My01Ni43LTkuNC0yMC45LTMwLjQtNDIuNi01Ny41LTUyLjRsLTkuNy0xNC43Yy0yNC43IDE2LjktNTMgMjYuOS04MS4zIDI4LjdsMi4xLTYuNiAxNS45LTQ5LjVjNDYuNS0xMS45IDgwLjktNTQgODAuOS0xMDQuMiAwLTU0LjUtMzguNC0xMDIuMS05Ni0xMDcuMWwwLTUyLjFjODMuMiA1LjEgMTQ4LjggNzQuNSAxNDguOCAxNTkuMyAwIDMzLjYtMTEuMiA2NC43LTI5IDkwLjRsMTQuNiA5LjZjOS44IDI3LjEgMzEuNSA0OCA1Mi40IDU3LjRzMzIuMiA5LjcgNTYuOCA0M2MyNC42IDMzLjIgNDIuNyA1NC45IDQ0LjUgNjAuM3MuNyAxNy4zLTEwLjUgMjguNXptLTkuOS0xNy45YzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4IDMuNiA4IDggOCA4LTMuNiA4LTh6Il19LGlUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnJlYWwtZW5naW5lIixpY29uOls1MTIsNTEyLFtdLCJlODVjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem02NS41LTExMy43bC0yNS4xLTI4LjMtNDIuNCA0Mi42Yy0yNC4xLS4zLTQ3LjktNi4yLTY5LjMtMTcuMnMtNDAuMS0yNi45LTU0LjUtNDYuM2M0LjUgMS40IDkuMiAyLjMgMTMuOSAyLjYgNi45IC4xIDE0LjUtMi40IDE0LjUtMTQuMWwwLTExNS4xYy4xLTMtLjUtNS45LTEuNy04LjZzLTMuMS01LTUuNC02LjktNS0zLjEtNy45LTMuNy01LjktLjUtOC44IC4yYy0xOS42IDQuNS0zNS4zIDUzLjUtMzUuMyA1My41LS4yLTIyLjYgNC41LTQ1IDEzLjgtNjUuNnMyMy0zOSA0MC4xLTUzLjhjMjIuNS0xOS41IDUwLjEtMzIuMiA3OS42LTM2LjctMjEuNCAxMi4yLTMzLjUgMzIuMS0zMy41IDQ4LjkgMCAyNi45IDE2LjIgMjMuNiAyMSAxOS43bDAgMTU1LjNjLjggMS45IDEuOSAzLjggMy4yIDUuNSAyLjEgMyA1IDUuNCA4LjIgN3M2LjkgMi41IDEwLjUgMi41YzE2LjIgMCAzNy4zLTE4LjUgMzcuMy0xOC41bDAtMTI1LjdjMC0xMi44LTkuNi0yOC4yLTE5LjMtMzMuNSAwIDAgMTcuOS0zLjIgMzEuNyA3LjQgMi42LTMuMiA1LjMtNi4yIDguMi05LjEgMzIuMi0zMS42IDYyLjUtNDAuNiA4Ny43LTQ1LjEgMCAwLTQ1LjkgMzYuMS00NS45IDg0LjUgMCAzNiAuOSAxMjMuOCAuOSAxMjMuOCAxNyAxNi40IDQyLjQtNy4zIDY1LjItMzAuOC00LjQgMjEuMy0yNCA3NS45LTg2LjYgMTA1LjR6Il19LHJUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYXlwYWwiLGljb246WzM4NCw1MTIsW10sImYxZWQiLCJNMTExLjkgMjk1LjljLTMuNSAxOS4yLTE3LjQgMTA4LjctMjEuNSAxMzQtLjMgMS44LTEgMi41LTMgMi41bC03NC42IDBjLTcuNiAwLTEzLjEtNi42LTEyLjEtMTMuOUw1OS4zIDQ2LjZjMS41LTkuNiAxMC4xLTE2LjkgMjAtMTYuOSAxNTIuMyAwIDE2NS4xLTMuNyAyMDQgMTEuNCA2MC4xIDIzLjMgNjUuNiA3OS41IDQ0IDE0MC4zLTIxLjUgNjIuNi03Mi41IDg5LjUtMTQwLjEgOTAuMy00My40IC43LTY5LjUtNy03NS4zIDI0LjJ6TTM1Ny42IDE1MmMtMS44LTEuMy0yLjUtMS44LTMgMS4zLTIgMTEuNC01LjEgMjIuNS04LjggMzMuNi0zOS45IDExMy44LTE1MC41IDEwMy45LTIwNC41IDEwMy45LTYuMSAwLTEwLjEgMy4zLTEwLjkgOS40LTIyLjYgMTQwLjQtMjcuMSAxNjkuNy0yNy4xIDE2OS43LTEgNy4xIDMuNSAxMi45IDEwLjYgMTIuOWw2My41IDBjOC42IDAgMTUuNy02LjMgMTcuNC0xNC45IC43LTUuNC0xLjEgNi4xIDE0LjQtOTEuMyA0LjYtMjIgMTQuMy0xOS43IDI5LjMtMTkuNyA3MSAwIDEyNi40LTI4LjggMTQyLjktMTEyLjMgNi41LTM0LjggNC42LTcxLjQtMjMuOC05Mi42eiJdfSxvVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJsdWVza3kiLGljb246WzQ0OCw1MTIsW10sImU2YTMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDI0Ny40YzE0LjUtMzAgNTQtODUuOCA5MC43LTExMy4zIDI2LjUtMTkuOSA2OS4zLTM1LjIgNjkuMyAxMy43IDAgOS44LTUuNiA4Mi4xLTguOSA5My44LTExLjQgNDAuOC01MyA1MS4yLTkwIDQ0LjkgNjQuNyAxMSA4MS4yIDQ3LjUgNDUuNiA4NC02Ny41IDY5LjMtOTctMTcuNC0xMDQuNi0zOS42bC0uMy0uOWMtLjktMi42LTEuNC00LjEtMS44LTQuMXMtLjkgMS41LTEuOCA0LjFjLS4xIC4zLS4yIC42LS4zIC45LTcuNiAyMi4yLTM3LjEgMTA4LjgtMTA0LjYgMzkuNi0zNS41LTM2LjUtMTkuMS03MyA0NS42LTg0LTM3IDYuMy03OC42LTQuMS05MC00NC45LTMuMy0xMS43LTguOS04NC04LjktOTMuOCAwLTQ4LjkgNDIuOS0zMy41IDY5LjMtMTMuNyAzNi43IDI3LjUgNzYuMiA4My40IDkwLjcgMTEzLjN6Il19LG5UdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkLWFuZC1kLWJleW9uZCIsaWNvbjpbNjQwLDUxMixbXSwiZjZjYSIsIk0zMTMuOCAyNDEuNWMxMy44IDAgMjEtMTAuMSAyNC44LTE3LjktMS0xLjEtNS00LjItNy40LTYuNi0yLjQgNC4zLTguMiAxMC43LTEzLjkgMTAuNy0xMC4yIDAtMTUuNC0xNC43LTMuMi0yNi42LS41LS4yLTQuMy0xLjgtOCAyLjQgMC0zIDEtNS4xIDIuMS02LjYtMy41IDEuMy05LjggNS42LTExLjQgNy45IC4yLTUuOCAxLjYtNy41IC42LTlsLS4yLS4ycy04LjUgNS42LTkuMyAxNC43YzAgMCAxLjEtMS42IDIuMS0xLjkgLjYtLjMgMS4zIDAgLjYgMS45LS4yIC42LTUuOCAxNS43IDUuMSAyNi0uNi0xLjYtMS45LTcuNiAyLjQtMS45LS4zIC4xIDUuOCA3LjEgMTUuNyA3LjF6bTUyLjQtMjEuMWMwLTQtNC45LTQuNC01LjYtNC41IDIgMy45IC45IDcuNSAuMiA5IDIuNS0uNCA1LjQtMS42IDUuNC00LjV6bTEwLjMgNS4yYzAtNi40LTYuMi0xMS40LTEzLjUtMTAuNyA4IDEuMyA1LjYgMTMuOC01IDExLjQgMy43LTIuNiAzLjItOS45LTEuMy0xMi41IDEuNCA0LjItMyA4LjItNy40IDQuNi0yLjQtMS45LTgtNi42LTEwLjYtOC42LTIuNC0yLjEtNS41LTEtNi42LTEuOC0xLjMtMS4xLS41LTMuOC0yLjItNS0xLjYtLjgtMy0uMy00LjgtMS0xLjYtLjYtMi43LTEuOS0yLjYtMy41LTIuNSA0LjQgMy40IDYuMyA0LjUgOC41IDEgMS45LS44IDQuOCA0IDguNSAxNC44IDExLjYgOS4xIDggMTAuNCAxOC4xIC42IDQuMyA0LjIgNi43IDYuNCA3LjQtMi4xLTEuOS0yLjktNi40IDAtOS4zIDAgMTMuOSAxOS4yIDEzLjMgMjMuMSA2LjQtMi40IDEuMS03LS4yLTktMS45IDcuNyAxIDE0LjItNC4xIDE0LjYtMTAuNnptLTM5LjQtMTguNGMyIC44IDEuNiAuNyA2LjQgNC41IDEwLjItMjQuNSAyMS43LTE1LjcgMjItMTUuNSAyLjItMS45IDkuOC0zLjggMTMuOC0yLjctMi40LTIuNy03LjUtNi4yLTEzLjMtNi4yLTQuNyAwLTcuNCAyLjItOCAxLjMtLjgtMS40IDMuMi0zLjQgMy4yLTMuNC01LjQgLjItOS42IDYuNy0xMS4yIDUuOS0xLjEtLjUgMS40LTMuNyAxLjQtMy43LTUuMSAyLjktOS4zIDkuMS0xMC4yIDEzIDQuNi01LjggMTMuOC05LjggMTkuNy05LTEwLjUgLjUtMTkuNSA5LjctMjMuOCAxNS44em0yNDIuNSA1MS45Yy0yMC43IDAtNDAgMS4zLTUwLjMgMi4xbDcuNCA4LjIgMCA3Ny4yLTcuNCA4LjJjMTAuNCAuOCAzMC45IDIuMSA1MS42IDIuMSA0Mi4xIDAgNTkuMS0yMC43IDU5LjEtNDguOSAwLTI5LjMtMjMuMi00OC45LTYwLjQtNDguOXptLTE1LjEgNzUuNmwwLTUzLjNjMzAuMS0zLjMgNDYuOCAzLjggNDYuOCAyNi4zIDAgMjUuNi0yMS40IDMwLjItNDYuOCAyN3pNMzAxLjYgMTgxYy0xLTMuNC0uMi02LjkgMS4xLTkuNCAxIDMgMi42IDYuNCA3LjUgOS0uNS0yLjQtLjItNS42IC41LTgtMS40LTUuNCAyLjEtOS45IDYuNC05LjkgNi45IDAgOC41IDguOCA0LjcgMTQuNCAyLjEgMy4yIDUuNSA1LjYgNy43IDcuOCAzLjItMy43IDUuNS05LjUgNS41LTEzLjggMC04LjItNS41LTE1LjktMTYuNy0xNi41LTIwLS45LTIwLjIgMTYuNi0yMCAxOC45IC41IDUuMiAzLjQgNy44IDMuMyA3LjV6bS0uNCA2Yy0uNSAxLjgtNyAzLjctMTAuMiA2LjkgNC44LTEgNy0uMiA3LjggMS44IC41IDEuNC0uMiAzLjQtLjUgNS42IDEuNi0xLjggNy01LjUgMTEtNi4yLTEtLjMtMy40LS44LTQuMy0uOCAyLjktMy40IDkuMy00LjUgMTIuOC0zLjctMi4yLS4yLTYuNyAxLjEtOC41IDIuNiAxLjYgLjMgMyAuNiA0LjMgMS4xLTIuMSAuOC00LjggMy40LTUuOCA2LjEgNy01IDEzLjEgNS4yIDcgOC4yIC44IC4yIDIuNyAwIDMuNS0uNS0uMyAxLjEtMS45IDMtMyAzLjQgMi45IDAgNy0xLjkgOC4yLTQuNiAwIDAtMS44IC42LTIuNi0uMnMuMy00LjMgLjMtNC4zYy0yLjMgMi45LTMuNC0xLjMtMS4zLTQuMi0xLS4zLTMuNS0uNi00LjYtLjUgMy4yLTEuMSAxMC40LTEuOCAxMS4yLS4zIC42IDEuMS0xIDMuNC0xIDMuNCA0LS41IDguMyAxLjEgNi43IDUuMSAyLjktMS40IDUuNS01LjkgNC44LTEwLjQtLjMgMS0xLjYgMi40LTIuOSAyLjcgLjItMS40LTEtMi4yLTEuOS0yLjYgMS43LTkuNi0xNC42LTE0LjItMTQuMS0yMy45LTEgMS4zLTEuOCA1LS44IDcuMSAyLjcgMy4yIDguNyA2LjcgMTAuMSAxMi4yLTIuNi02LjQtMTUuMS0xMS40LTE0LjYtMjAuMi0xLjYgMS42LTIuNiA3LjgtMS4zIDExIDIuNCAxLjQgNC41IDMuOCA0LjggNi4xLTIuMi01LjEtMTEuNC02LjEtMTMuOS0xMi4yLS42IDIuMi0uMyA1IDEgNi43IDAgMC0yLjItLjgtNy0uNiAxLjcgLjYgNS4xIDMuNSA0LjggNS4yem0yNS45IDcuNGMtMi43IDAtMy41LTIuMS00LjItNC4zIDMuMyAxLjMgNC4yIDQuMyA0LjIgNC4zem0zOC45IDMuN2wtMS0uNmMtMS4xLTEtMi45LTEuNC00LjctMS40LTIuOSAwLTUuOCAxLjMtNy41IDMuNC0uOCAuOC0xLjQgMS44LTIuMSAyLjZsMCAxNS43YzMuNSAyLjYgNy4xLTIuOSAzLTcuMiAxLjUgLjMgNC42IDIuNyA1LjEgMy4yIDAgMCAyLjYtLjUgNS0uNSAyLjEgMCAzLjkgLjMgNS42IDEuMWwwLTE4LjRjLTEuMSAuNS0yLjIgMS0yLjcgMS40bC0uNyAuN3pNNzkuOSAzMDUuOWMxNy4yLTQuNiAxNi4yLTE4IDE2LjItMTkuOSAwLTIwLjYtMjQuMS0yNS0zNy0yNWwtNTYuMSAwIDguMyA4LjYgMCAyOS41LTExLjMgMCAxMS40IDE0LjYgMCAzMi4zLTguNCA4LjZjNjEuNyAwIDczLjggMS41IDg2LjQtNS45IDYuNy00IDkuOS05LjggOS45LTE3LjYgMC01LjEgMi42LTE4LjgtMTkuNC0yNS4yek0zOC42IDI3OC40YzIwIDAgMjkuNi0uOCAyOS42IDkuMWwwIDNjMCAxMi4xLTE5IDguOC0yOS42IDguOGwwLTIwLjl6bTAgNTkuMmwwLTIyLjZjMTIuMiAwIDMyLjctMi4zIDMyLjcgOC44bDAgNC41IC4yIDBjMCAxMS4yLTEyLjUgOS4zLTMyLjkgOS4zem0xMDEuMi0xOS4zbDIzLjEgLjIgMC0uMiAxNC4xLTIxLjItMzcuMiAwIDAtMTQuOSA1Mi40IDAtMTQuMS0yMSAwLS4yLTczLjUgLjIgNy40IDguMiAwIDc3LjEtNy40IDguMiA4MS4yIDAgMTQuMS0yMS4yLTYwLjEgLjIgMC0xNS40em0yMTQuNy02MC4xYy03My45IDAtNzcuNSA5OS4zLS4zIDk5LjMgNzcuOSAwIDc0LjEtOTkuMyAuMy05OS4zem0tLjMgNzcuNWMtMzcuNCAwLTM2LjktNTUuMyAuMi01NS4zIDM2LjggLjEgMzguOCA1NS4zLS4yIDU1LjN6bS05MS4zLTguM2w0NC4xLTY2LjItNDEuNyAwIDYuMSA3LjItMjAuNSAzNy4yLS4zIDAtMjEtMzcuMiA2LjQtNy4yLTQ0LjkgMCA0NC4xIDY1LjggLjIgMTkuNC03LjcgOC4yIDQyLjYgMC03LjItOC4yLS4yLTE5ek0yMzQuNSAxNzYuMWMxLjYgMS4zIDIuOSAyLjQgMi45IDYuNmwwIDM4LjhjMCA0LjItLjggNS4zLTIuNyA2LjQtLjEgLjEtNy41IDQuNS03LjkgNC42bDM1LjEgMGMxMCAwIDE3LjQtMS41IDI2LTguNi0uNi01IC4yLTkuNSAuOC0xMiAwLS4yLTEuOCAxLjQtMi43IDMuNSAwLTUuNyAxLjYtMTUuNCA5LjYtMjAuNS0uMSAwLTMuNy0uOC05IDEuMSAyLTMuMSAxMC03LjkgMTAuNC03LjktOC4yLTI2LTM4LTIyLjktMzIuMi0yMi45LTMwLjkgMC0zMi42IC4zLTM5LjktNCAuMSAuOCAuNSA4LjIgOS42IDE0Ljl6bTIxLjUgNS41YzQuNiAwIDIzLjEtMy4zIDIzLjEgMTcuMyAwIDIwLjctMTguNCAxNy4zLTIzLjEgMTcuM2wwLTM0LjZ6bTIyOC45IDc5LjZsNyA4LjMgMCA0Mi41LS4zIDBjLTUuNC0xNC40LTQyLjMtNDEuNS00NS4yLTUwLjlsLTMxLjYgMCA3LjQgOC41IDAgNzYuOS03LjIgOC4zIDM5IDAtNy40LTguMiAwLTQ3LjQgLjMgMGMzLjcgMTAuNiA0NC41IDQyLjkgNDguNSA1NS42bDIxLjMgMCAwLTg1LjIgNy40LTguMy0zOS4yLS4xek0zNzguMiAxNjUuMWMtMzIuMiAwLTMyLjggLjItMzkuOS00IC4xIC43IC41IDguMyA5LjYgMTQuOSAzLjEgMiAyLjkgNC4zIDIuOSA5LjUgMS44LTEuMSAzLjgtMi4yIDYuMS0zLTEuMSAxLjEtMi43IDIuNy0zLjUgNC41IDEtMS4xIDcuNS01LjEgMTQuNi0zLjUtMS42IC4zLTQgMS4xLTYuMSAyLjkgLjEgMCAyLjEtMS4xIDcuNS0uM2wwLTQuM2M0LjcgMCAyMy4xLTMuNCAyMy4xIDE3LjMgMCAyMC41LTE4LjUgMTcuMy0xOS43IDE3LjMgNS43IDQuNCA1LjggMTIgMi4yIDE2LjNsLjMgMGMzMy40IDAgMzYuNy0yNy4zIDM2LjctMzQgMC0zLjgtMS4xLTMyLTMzLjgtMzMuNnoiXX0sbFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3Jvc29mdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjYSIsIk0wIDMybDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6bTIzMy40IDBsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnpNMCAyNjUuNGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6Il19LGNUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHkiLGljb246WzMyMCw1MTIsW10sImY0MTciLCJNMTY1LjkgNDI3LjhjMTIuOSAxMS43IDMzLjcgMzMuMyAzMy4yIDUwLjcgMCAuOC0uMSAxLjYtLjEgMi41LTEuOCAxOS44LTE4LjggMzEuMS0zOS4xIDMxLTI1LS4xLTM5LjktMTYuOC0zOC43LTM1LjggMS0xNi4yIDIwLjUtMzYuNyAzMi40LTQ3LjYgMi4zLTIuMSAyLjctMi43IDUuNi0zLjYgMy40IDAgMy45IC4zIDYuNyAyLjh6TTMwMCA2Ny4zYy0xNi4zLTI1LjctMzguNi00MC42LTYzLjMtNTIuMS0yNS41LTEwLjctNTQuNi0xNS40LTc2LjYtMTUuMi00NC4xIDAtNzEuMiAxMy4yLTgxLjEgMTcuMy01My42IDI3LjktODQuNCA2OS45LTgyLjkgMTQxLjMgNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMyAuMWMyLjEtLjcgMS44LS41IDMuNS0yLjEgNTIuMy00OS4yIDE0MC43LTE0NS44IDE1NS45LTIxNS43IDctMzkuMiAzLjEtNzIuNS0yMC44LTExMi41ek0xNTQuOSAzNTEuOWMtMjgtNTEuMS02NS4yLTEzMC43LTY5LjMtMTg5LTMuNC00Ny41IDExLjQtMTMxLjIgNjkuMy0xMzYuN2wwIDMyNS43ek0yOTYuOCAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuMyAyNy44LTUxLjkgNjUuMi0xMzMuMyA2Ny4yLTE5MS45IDEuNi00NS45LTkuOC0xMDUuOC00OC0xMzEuNCA4OC44IDE4LjMgMTE1LjUgOTguMSA5OS43IDE1M3oiXX0sZFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXN0cmlwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFmNSIsIk00OTIuNCAyMjAuOGMtOC45IDAtMTguNyA2LjctMTguNyAyMi43bDM2LjcgMGMwLTE2LTkuMy0yMi43LTE4LTIyLjd6TTM3NSAyMjMuNGMtOC4yIDAtMTMuMyAyLjktMTcgN2wuMiA1Mi44YzMuNSAzLjcgOC41IDYuNyAxNi44IDYuNyAxMy4xIDAgMjEuOS0xNC4zIDIxLjktMzMuNCAwLTE4LjYtOS0zMy4yLTIxLjktMzMuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyMi4yIDI4MS4xYzAgMjUuNi0yMC4zIDQwLjEtNDkuOSA0MC4zLTEyLjIgMC0yNS42LTIuNC0zOC44LTguMWwwLTMzLjljMTIgNi40IDI3LjEgMTEuMyAzOC45IDExLjMgNy45IDAgMTMuNi0yLjEgMTMuNi04LjcgMC0xNy01NC0xMC42LTU0LTQ5LjkgMC0yNS4yIDE5LjItNDAuMiA0OC00MC4yIDExLjggMCAyMy41IDEuOCAzNS4zIDYuNWwwIDMzLjRjLTEwLjgtNS44LTI0LjUtOS4xLTM1LjMtOS4xLTcuNSAwLTEyLjEgMi4yLTEyLjEgNy43IDAgMTYgNTQuMyA4LjQgNTQuMyA1MC43ek0xOTEgMjI0LjVsLTI3IDAgMCA1MC41YzAgMjAuOSAyMi41IDE0LjQgMjcgMTIuNmwwIDI4LjljLTQuNyAyLjYtMTMuMyA0LjctMjQuOSA0LjctMjEuMSAwLTM2LjktMTUuNS0zNi45LTM2LjVsLjItMTEzLjkgMzQuNy03LjQgMCAzMC44IDI2LjkgMCAwIDMwLjN6bTc0IDIuNGMtNC41LTEuNS0xOC43LTMuNi0yNy4xIDcuNGwwIDg0LjQtMzUuNSAwIDAtMTI0LjUgMzAuNyAwIDIuMiAxMC41YzguMy0xNS4zIDI0LjktMTIuMiAyOS42LTEwLjVsLjEgMCAwIDMyLjd6bTQ0LjEgOTEuOGwtMzUuNyAwIDAtMTI0LjUgMzUuNyAwIDAgMTI0LjV6bTAtMTQyLjlsLTM1LjcgNy42IDAtMjguOSAzNS43LTcuNiAwIDI4Ljl6bTc0LjEgMTQ1LjVjLTEyLjQgMC0yMC01LjMtMjUuMS05bC0uMSA0MC4yLTM1LjUgNy41IDAtMTY1LjggMzEuMyAwIDEuOCA4LjhjNC45LTQuNSAxMy45LTExLjEgMjcuOC0xMS4xIDI0LjkgMCA0OC40IDIyLjUgNDguNCA2My44IDAgNDUuMS0yMy4yIDY1LjUtNDguNiA2NS42em0xNjAuNC01MS41bC02OS41IDBjMS42IDE2LjYgMTMuOCAyMS41IDI3LjYgMjEuNSAxNC4xIDAgMjUuMi0zIDM0LjktNy45bDAgMjguNmMtOS43IDUuMy0yMi40IDkuMi0zOS40IDkuMi0zNC42IDAtNTguOC0yMS43LTU4LjgtNjQuNSAwLTM2LjIgMjAuNS02NC45IDU0LjMtNjQuOSAzMy43IDAgNTEuMyAyOC43IDUxLjMgNjUuMSAwIDMuNS0uMyAxMC45LS40IDEyLjl6Il19LHVUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3Mtc2ltcGxlIixpY29uOls1MTIsNTEyLFtdLCJmNDExIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43TDE1OC43IDQ1Ni43Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2ek0yNTYgNDc5Yy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yLTQ4LjggMTQ2LjMtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zIDM5LjktNjAuNSAxMDguNC0xMDAuNSAxODYuMy0xMDAuNSA1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3oiXX0scFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxzeSIsaWNvbjpbNjQwLDUxMixbXSwiZjIxMyIsIk01NDAgMjM3LjNjMy4xLTEyLjMgNC4zLTI0LjggNC4zLTM3LjQgMC05Mi41LTc1LjQtMTY3LjktMTY3LjktMTY3LjktNzcuMiAwLTE0NC42IDUzLTE2MyAxMjcuOC0xNS4zLTEzLjItMzQuOS0yMC41LTU1LjItMjAuNS00Ni4zIDAtODQgMzcuNy04NCA4NCAwIDcuNCAuOSAxNSAzLjEgMjIuNC00Mi45IDIwLjItNzAuOCA2My43LTcwLjggMTExLjIgMCA2OCA1NS41IDEyMy4yIDEyMy4yIDEyMy4ybDM4MS4yIDBjNjcuNyAwIDEyMy4yLTU1LjIgMTIzLjItMTIzLjIgMC01Ni40LTM4LjktMTA2LTk0LjEtMTE5LjV6TTIwMC4yIDQwMS42YzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTExMC45YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMTAuOXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTEzMS41YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMzEuNXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMxIDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xNjIuN2MwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMxIDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDE2Mi43em04NyAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTI4LjUgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTIyNC42YzAtOC42IDctMTUuNiAxNS4zLTE1LjZsMjguNSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjZsMCAyMjQuNnoiXX0saFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhc2hjdWJlIixpY29uOls0NDgsNTEyLFtdLCJmMjEwIiwiTTMyNi45IDEwNGwtMjE2LjIgMGMtNTEuMSAwLTkxLjIgNDMuMy05MS4yIDkzLjVsMCAyMjkuNWMwIDUwLjUgNDAuMSA4NSA5MS4yIDg1bDIyNy4yIDBjNTEuMSAwIDkxLjItMzQuNSA5MS4yLTg1bDAtNDI3LTEwMi4yIDEwNHpNMTU0LjIgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44bDAtMTQyLjljMC0xNy43IDE0LjctMzIuNSAzMi40LTMyLjVsMTQwLjcgMGMxNy43IDAgMzIgMTQuOCAzMiAzMi41bDAgMTIzLjUgNTEuMSA1Mi4zLTIyMy44IDAgMC0uMXoiXX0sZlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdHRlciIsaWNvbjpbMzg0LDUxMixbXSwiZjQyNiIsIk02Ni40IDMyMi41bC01MC40IDAgMC0zMjIuNSA1MC40IDAgMCAzMjIuNXpNMTY2LjkgNzYuMWwtNTAuNCAwIDAgNDM1LjkgNTAuNCAwIDAtNDM1Ljl6bTEwMC42IDBsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45ek0zNjggNzZsLTUwLjQgMCAwIDI0NyA1MC40IDAgMC0yNDd6Il19LG1UdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2xmLXBhY2stYmF0dGFsaW9uIixpY29uOls0NDgsNTEyLFtdLCJmNTE0IiwiTTIzNi4yIDQ3MS41bDEwLjYgMTUuOCA1LjMtMTIuMyA1LjMgNyAwIDI5LjljMjEuMS03LjkgMjEuMS02Ni45IDI1LjUtOTcuMiA0LjYtMzEuOS0uOS05Mi44IDgxLjQtMTQ5LjEtOC45LTIzLjYtMTItNDkuNC0yLjYtODAgMjcuOSAzLjQgNTMuOSAxMC42IDYzLjMgNTQuMWwtMzAuMyA4LjRjMTEuMSAyMyAxNyA0Ni44IDEzLjIgNzIuMWwtMjcuMy03LTYuMiAzMy40LTE4LjUtNy04LjggMzMuNC0xOS40LTcgMjYuNCAyMS4xIDguOC0yOC4yIDI0LjYgNS4yIDctMzUuNiAyNi40IDE0LjVjLjItMjAgNy01OC4xLTguOC04NC41bDI2LjQgNS4zYzQtMjIuMS0yLjQtMzkuMi03LjktNTYuN2wyMi40IDkuN2MtLjQtMjUuMS0yOS45LTU2LjgtNjEuNi01OC41LTIwLjItMS4xLTU2LjctMjUuMi01NC4xLTUxLjkgMi0xOS45IDE3LjQtNDIuNiA0My4xLTQ5LjctNDQgMzYuNS05LjcgNjcuMyA1LjMgNzMuNSA0LjQtMTEuNCAxNy41LTY5LjEgMC0xMzAuMi00MC40IDIyLjktODkuNyA2NS4xLTkzLjIgMTQ3LjhsLTU4IDM4LjctMy41IDkzLjIgMTA3LjMtNTkuOCA3IDctMTcuNiAzLjUtNDQgMzguNy0xNS44LTUuMy0yOC4xIDQ5LjMtMy41IDExOS42IDIxLjEgMTUuOC0zMi41IDE1LjgtMzIuNi0xNS44IDIxLjEtMTUuOC0zLjUtMTE5LjYtMjguMi00OS4zLTE1LjggNS4zLTQ0LTM4LjctMTcuNi0zLjUgNy03IDEwNy4zIDU5LjgtMy41LTkzLjMtNTguMS0zOC43Yy0zLjUtODIuOC01Mi43LTEyNS05My4yLTE0Ny45LTE3LjUgNjEuMS00LjQgMTE4LjggMCAxMzAuMiAxNS02LjIgNDkuMy0zNyA1LjMtNzMuNSAyNS43IDcuMSA0MS4xIDI5LjggNDMuMSA0OS43IDIuNiAyNi43LTMzLjkgNTAuOC01NC4xIDUxLjktMzEuNyAxLjctNjEuMiAzMy40LTYxLjYgNTguNWwyMi40LTkuN0MxMy40IDIyNC43IDcgMjQxLjggMTEgMjYzLjlsMjYuNC01LjNjLTE1LjggMjYuNC05LjEgNjQuNC04LjggODQuNGwyNi40LTE0LjUgNyAzNS42IDI0LjYtNS4zIDguOCAyOC4yIDI2LjQtMjEuMS0xOS40IDctOC44LTMzLjQtMTguNSA3LTYuMi0zMy40LTI3LjMgN0MzOCAyOTQuOCA0My44IDI3MSA1NSAyNDhsLTMwLjMtOC40YzkuNC00My41IDM1LjUtNTAuOCA2My4zLTU0LjEgOS40IDMwLjYgNi4yIDU2LjUtMi42IDgwLjEgODIuMyA1Ni4zIDc2LjggMTE3LjIgODEuNCAxNDkuMSA0LjQgMzAuMyA0LjQgODkuMyAyNS41IDk3LjJsMC0yOS44IDUuMy03IDUuMyAxMi4zIDEwLjYtMTUuOCAxMS40IDIxLjEgMTEuNC0yMS4xIDAgMHptNzkuMi05NUwyOTkuNSAzNjZjNy41LTQuNCAxMy44LTguNCAxOS40LTEyLjMtLjYgNy4yLS4zIDEzLjgtMy41IDIyLjhsMCAwem0yOC4yLTQ5LjNjLS40IDEwLjktLjkgMjEuNy0xLjggMzEuNy03LjgtMS45LTE1LjYtMy44LTIxLjEtNyA4LjItNy45IDE1LjYtMTYuMyAyMi45LTI0LjdsMCAwem0yNC42IDUuM2MwLTEzLjQtMi4xLTI0LjItNS4zLTMzLjQtNS41IDkuNS0xMS43IDE4LjYtMTguNSAyNy4zbDIzLjggNi4yem0zLjUtODAuOWMxOS40IDEyLjggMjcuOCAzMy43IDI5LjkgNTYuMy0xMi4zLTQuNS0yNC42LTkuMy0zNy0xMC42IDUuMS0xMiA2LjYtMjguMSA3LTQ1LjdsMCAwem0tMS44LTQ1LjdjLjggMTQuMyAxLjggMjguOCAxLjggNDIuMiAxOS4yLTguMSAyOS44LTkuNyA0NC0xNC4xLTEwLjYtMTktMjcuMi0yNS41LTQ1LjgtMjguMmwwIDB6TTEzNC4yIDM3Ni41TDE1MCAzNjZjLTcuNS00LjQtMTMuOC04LjQtMTkuNC0xMi4zIC42IDcuMyAuMyAxMy45IDMuNSAyMi45bDAgMHpNMTA2IDMyNy4zYy40IDEwLjkgLjkgMjEuNyAxLjggMzEuNyA3LjgtMS45IDE1LjYtMy44IDIxLjEtNy04LjItNy45LTE1LjYtMTYuMy0yMi45LTI0Ljd6bS0yNC42IDUuM2MwLTEzLjQgMi0yNC4yIDUuMy0zMy40IDUuNSA5LjUgMTEuNyAxOC42IDE4LjUgMjcuM2wtMjMuOCA2LjJ6bS0zLjUtODAuOWMtMTkuNCAxMi44LTI3LjggMzMuNy0yOS45IDU2LjMgMTIuMy00LjUgMjQuNi05LjMgMzctMTAuNi01LTEyLTYuNi0yOC4xLTctNDUuN2wtLjEgMHptMS44LTQ1LjdjLS44IDE0LjMtMS44IDI4LjgtMS44IDQyLjItMTkuMi04LjEtMjkuOC05LjctNDQtMTQuMSAxMC42LTE5IDI3LjItMjUuNSA0NS44LTI4LjF6Il19LGdUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXN0Zm0iLGljb246WzUxMiw1MTIsW10sImYyMDIiLCJNMjI1LjggMzY3LjFsLTE4LjgtNTFzLTMwLjUgMzQtNzYuMiAzNGMtNDAuNSAwLTY5LjItMzUuMi02OS4yLTkxLjUgMC03Mi4xIDM2LjQtOTcuOSA3Mi4xLTk3LjkgNjYuNSAwIDc0LjggNTMuMyAxMDAuOSAxMzQuOSAxOC44IDU2LjkgNTQgMTAyLjYgMTU1LjQgMTAyLjYgNzIuNyAwIDEyMi0yMi4zIDEyMi04MC45IDAtNzIuOS02Mi43LTgwLjYtMTE1LTkyLjEtMjUuOC01LjktMzMuNC0xNi40LTMzLjQtMzQgMC0xOS45IDE1LjgtMzEuNyA0MS42LTMxLjcgMjguMiAwIDQzLjQgMTAuNiA0NS43IDM1LjhsNTguNi03Yy00LjctNTIuOC00MS4xLTc0LjUtMTAwLjktNzQuNS01Mi44IDAtMTA0LjQgMTkuOS0xMDQuNCA4My45IDAgMzkuOSAxOS40IDY1LjEgNjggNzYuOCA0NC45IDEwLjYgNzkuOCAxMy44IDc5LjggNDUuNyAwIDIxLjctMjEuMSAzMC41LTYxIDMwLjUtNTkuMiAwLTgzLjktMzEuMS05Ny45LTczLjktMzItOTYuOC00My42LTE2My0xNjEuMy0xNjMtODYuMSAwLTEzMS44IDU0LjUtMTMxLjggMTQ3LjIgMCA4OS4xIDQ1LjcgMTM3LjIgMTI3LjkgMTM3LjIgNjYuMiAwIDk3LjktMzEuMSA5Ny45LTMxLjF6Il19LGJUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9wd2FyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViNSIsIk00MDMuNSA0NTUuNGMtNDIuNiAzMS43LTk0LjQgNDguNy0xNDcuNSA0OC42LTEzNy4yIDAtMjQ4LTExMS0yNDgtMjQ4IDAtMTM3LjIgMTExLTI0OCAyNDgtMjQ4IDYxLjItLjEgMTIwLjIgMjIuNiAxNjUuNyA2My41IC42IC41IC45IDEuMiAxLjEgMS45cy4xIDEuNS0uMyAyLjItLjggMS4zLTEuNSAxLjYtMS40IC41LTIuMiAuNGMtMTguOC0yLjUtMzcuNy0zLjctNTYuNy0zLjctMTI5LjQgMC0yMjIuNCA1My41LTIyMi40IDE1NS40IDAgMTA5IDkyLjEgMTQ1LjkgMTc2LjggMTc4LjcgMzMuNiAxMyA2NS40IDI1LjQgODcgNDEuNiAuNCAuMyAuOCAuOCAxLjEgMS4zcy40IDEgLjQgMS42LS4xIDEuMS0uNCAxLjYtLjYgLjktMS4xIDEuM2wtLjEgMHpNNTAzIDIzMy4xYy0uMS0uOS0uNS0xLjgtMS4zLTIuNC01MS44LTQzLTkzLjYtNjAuNS0xNDQuNS02MC41LTg0LjEgMC04MC4zIDUyLjItODAuMyA1My42IDAgNDIuNiA1Mi4xIDYyIDExMi4zIDg0LjUgMzEuMSAxMS42IDYzLjIgMjMuNiA5Mi43IDM5LjkgLjQgLjIgLjkgLjQgMS40IC40czEgMCAxLjUtLjIgLjktLjQgMS4zLS44IC42LS44IC44LTEuMmMxNC4xLTM2IDE5LjUtNzQuOCAxNi0xMTMuM3oiXX0sdlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXIiLGljb246WzQ0OCw1MTIsW10sImYzN2MiLCJNMTYyLjQgMTk2YzQuOC00LjkgNi4yLTUuMSAzNi40LTUuMSAyNy4yIDAgMjguMSAuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNCAuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44IC4yLTYwLjIgNC4xLTMuNSAzLjEtNS43IDkuNC01LjEgMTMuOSAuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3pNNDQ3LjIgNDIwLjZjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJTMCA0MjAuMyAwIDI1Ni4zYzAtMTYzLjEgMC0xNjYuNiAxLjgtMTczLjcgNi4zLTI0LjcgMjUuOS00My42IDUxLjItNDkuMiA3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYgLjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXpNMzYxLjggMjM1LjRjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41IC40LTY3LjEgNi4yLTI3IDEwLjctNDYuMyAzMy40LTUzLjQgNjIuNC0xLjMgNS40LTEuNiAxNC4yLTEuOSA2NC4zLS40IDYyLjggMCA3Mi4xIDQgODQuNSA5LjcgMzAuNyAzNy4xIDUzLjQgNjQuNiA1OC40IDkuMiAxLjcgMTIyLjIgMi4xIDEzMy43IC41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6Il19LHhUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlZGdlIixpY29uOls1MTIsNTEyLFtdLCJmMjgyIiwiTTEyMC4xIDM3LjRjNDEtMjUuMiA4Ny42LTM4LjIgMTM0LjktMzcuNCAxNjggMCAyNTcgMTIzLjggMjU3IDIxOS41LS4xIDMyLjctMTMgNjMuOS0zNS45IDg3LjItMjIuOSAyMy4yLTU0IDM2LjUtODYuNyAzNy03NS4yIDAtOTEuNS0yMy4xLTkxLjUtMzIgMC0zLjggMS4yLTYuMiA0LjgtOS40bDEtMS4yIC40LTEuNmMxMC41LTExLjUgMTUuOS0yNi4yIDE1LjktNDEuNiAwLTc4LjctODIuMi0xNDIuNy0xODQtMTQyLjctMzcuNS0uMy03NC41IDguOS0xMDcuNSAyNi45IDI3LTU3LjUgODIuNy05Ny42IDkxLjMtMTAzLjggLjgtLjYgLjMtLjggLjMtLjh6bTE1LjYgMzE4LjFjLTEuNCAzMCA0LjYgNjAgMTYuNCA4Ny4yIDEzLjYgMjYuNCAzMi43IDUxIDU2LjUgNjkuMy01OS41LTExLjUtMTExLjUtNDMuOS0xNDkuNC04OS4zLTM4LjEtNDYuNC01OS4yLTEwNC4zLTU5LjItMTY0LjggMC01MS4yIDYyLjQtOTQuNCAxMzYtOTQuNCAzNi42LS42IDcyLjQgMTAuOSAxMDEuOCAzMi43bC0zLjYgMS4yYy01MS41IDE3LjYtOTguNSA5MC43LTk4LjUgMTU4LjF6TTQ2OS44IDQwMGwtLjcgLjFjLTExLjggMTguOC0yNS45IDM1LjEtNDIuMiA0OS41LTMwLjggMjgtNjguMSA0NS41LTEwOC44IDQ5LjktMTguNiAuMy0zNi44LTMuMi01My44LTExLjQtMjUuNi0xMC4zLTQ3LjEtMzAtNjEuNi01My0xNC40LTIzLjktMjEuMS01MS43LTE5LTc5LjYtLjYtMjAuMSA1LjQtNDAuMyAxNS01OC4yIDEzLjkgMzMuMSAzNy41IDYxLjMgNjcuNiA4MC44czY1LjUgMjkuNSAxMDEuNCAyOC42YzMxIC4zIDYyLjEtNi43IDkwLjItMjAuNWwxLjktLjljMy45LTIuMyA3LjctMy45IDExLjYgMCA0LjUgNC45IDEuOCA5LjItMS4yIDE0LS4yIC4yLS4zIC41LS40IC43eiJdfSx5VHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW94aG9zdCIsaWNvbjpbNjQwLDUxMixbXSwiZjIwOCIsIk02MTYgMTYwbC02Ny4zIDBDNTExLjIgNzAuNyA0MjIuOSA4IDMyMCA4IDE4MyA4IDcyIDExOSA3MiAyNTYgNzIgMjcyLjQgNzMuNiAyODguNSA3Ni43IDMwNEwyNCAzMDRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDY3LjMgMGMzNy41IDg5LjMgMTI1LjggMTUyIDIyOC43IDE1MiAxMzcgMCAyNDgtMTExIDI0OC0yNDggMC0xNi40LTEuNi0zMi41LTQuNy00OGw1Mi43IDBjMTMuMyAwIDI0LTEwLjggMjQtMjQgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS05NiA5NmMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDAtNzUuNyAwLTE0MS42LTQyLTE3NS41LTEwNEw0MjQgMzUyYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yOTguMiAwYy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRMMjE2IDE2MGMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjk4LjIgMGMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6TTIxNiAyMzJsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMy4yLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEzLjIgMTAuNy0yNCAyNC0yNHoiXX0sd1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjaGxpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYSIsIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xIDE3LjIgMjguNC0zNi43IDIyLjUtMTIuNC0yOC44em0tMjMuMyA4OC4ybC04LjgtMzQuOCAyOS42LTE4LjMgMTMuMSAzNS4zLTMzLjkgMTcuOHpNODIuNCAxMzMuMmwyMy45LTE4LjEgOC45IDI0LTI2LjcgMTguMy02LjEtMjQuMnpNNTkgMjA2LjVsLTMuNi0yOC40IDIyLjMtMTUuNSA2LjEgMjguNy0yNC44IDE1LjJ6TTI4LjQgMjIzLjFsMjAuOC0xMi44IDMuMyAzMy40LTIyLjkgMTItMS4yLTMyLjZ6TTEuNCAyNjhMMjAuNiAyNTcuOCAyMSAyOTYgMCAzMDQuOCAxLjQgMjY4em01OS4xIDU5LjNsLTI4LjMgOC4zLTEuNi00Ni44IDI1LjEtMTAuNyA0LjggNDkuMnpNOTkgMjYzLjJsLTMxLjEgMTMtNS4yLTQwLjggMjcuNC0xNC40IDguOSA0Mi4yek0xMjMuMiAzNzdsLTQxLjYgNS45LTguMS02My41IDM1LjItMTAuOCAxNC41IDY4LjR6bTI4LjUtMTM5LjlsMjEuMiA1Ny4xLTQ2LjIgMTMuNi0xMy43LTU0LjEgMzguNy0xNi42em04NS43IDIzMC41bC03MC45LTMuMy0yNC4zLTk1LjggNTUuMi04LjYgNDAgMTA3Ljd6TTE1Mi41IDE4Ny45bDQyLjItMjIuNCAyOCA0NS45LTUwLjggMjEuMy0xOS40LTQ0Ljh6bTQxIDk0LjlsNjEuMy0xOC43IDUyLjggODYuNi03OS44IDExLjMtMzQuMy03OS4yem01MS40LTg1LjZsNjcuMy0yOC44IDY1LjUgNjUuNC04OC42IDI2LjItNDQuMi02Mi44eiJdfSxrVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4ZCIsIk04Mi45IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMiAuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMSAuNyA0NS04LjMgNjYuNC01LjIgMTIuNC0xMiAyNC40LTIwLjcgMzUuMS0yLTEuOS0zLjktMy44LTUuOC01LjYtNDIuOC00MC44LTI2LjgtMjUuMi0zNy40LTM3LjQtMS4xLTEuMi0xLTIuMi0uMS0zLjYgOC4zLTEzLjUgMTEuOC0yOC4yIDEwLTQ0LTEuMS05LjgtNC4zLTE4LjktMTEuMy0yNi4yLTE0LjUtMTUuMy0zOS4yLTE1LTUzLjUgLjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYgLjIgMS4zIC40IDIuNyAwIDMuOS0zLjQgMTMuNy00LjYgMjcuNi0yLjUgNDEuNiAuMSAuNSAuMSAxLjEgLjEgMS42IDAgLjMtLjEgLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnpNNTUyLjUgMjIyLjFjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNSAuOS01LjEgMS42LTcuNyAyLjItNC45IDEuMi03LjMtMy4xLTQuNy02LjggMy4yLTQuNiAzLjQtNC4yIDE1LTEyIC42LS40IDEuMi0uOCAyLjItMS41bC0yLjUgMGMtLjYgMC0xLjIgLjItMS45IC4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zIC4zIC4zIC43IC42IDEgLjkgLjMtLjYgLjUtMS4yIC45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44IC43LTMuNSAuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMgLjQtLjQgLjktLjcgMS4zIDE0LjUgNS4zIDI0IDE3LjMgMzYuMSAyNS42IC4yLS4xIC4zLS4yIC40LS40bDEuMi0yLjdjMTIuMi0yNi45IDI3LTUyLjMgNDYuNy03NC41IDE2LjctMTguOCAzOC0yNS4zIDYyLjUtMjAgNS45IDEuMyAxMS40IDQuNCAxNy4yIDYuOCAyLjMtMS40IDUuMS0zLjIgOC00LjcgOC40LTQuMyAxNy40LTcgMjYuNy05IDE0LjctMy4xIDI5LjUtNC45IDQ0LjUtMS4zbDAtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTcuMSAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44IC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkgLjgtMTMuOSA0LjMtMjYuMiAxMS44LTM3LjMtMjQuMyAxMC42LTQ1LjkgMjUtNjQuOCA0My45LS4zLTUuOCA1LjQtNDMuNyA1LjYtNDQuNyAuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMyAuMi0uMiAuNC0uMyAuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOCAuNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMSAuMSAyLjggNC4yIDE2LjYtOC4xIDMyLjQtMjQuOCAzMS44LTcuNi0uMy0xMy45LTMuOC0xOS42LTguNS0xOS41LTE2LjEtMzkuMS0zMi4xLTU4LjUtNDguMy01LjktNC45LTEyLjUtOC4xLTIwLjEtOC43LTQuNi0uNC05LjMtLjYtMTMuOS0uOS01LjktLjQtOC44LTIuOC0xMC40LTguNC0uOS0zLjQtMS41LTYuOC0yLjItMTAuMi0xLjUtOC4xLTYuMi0xMy0xNC4zLTE0LjItNC40LS43LTguOS0xLTEzLjMtMS41LTEzLTEuNC0xOS44LTcuNC0yMi42LTIwLjMtNSAxMS0xLjYgMjIuNCA3LjMgMjkuOSA0LjUgMy44IDkuMyA3LjMgMTMuOCAxMS4yIDQuNiAzLjggNy40IDguNyA3LjkgMTQuOCAuNCA0LjcgLjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xIC43LTUyLjMgLjMgMi4yIC40IDQuMyAuOSA2LjQgOS40IDQ0LjEgNDUuNCA2NC4yIDg1IDU2LjkgMTYtMi45IDMwLjYtOC45IDQyLjktMTkuOCAyLTEuOCAzLjctNC4xIDUuOS02LjUtMTkuMyA0LjYtMzUuOCAuMS01MC45LTEwLjYgLjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS44IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42IC4yIDM5LjYgMy43LTctMTIuMi04LjUtMjQuNy01LTM4LjcgNS4zIDExLjkgMTMuNyAyMC4xIDIzLjYgMjYuOCAxOS43IDEzLjIgMzUuNyAxOS42IDQ2LjcgMzAuMiAzLjQgMy4zIDYuMyA3LjEgOS42IDEwLjktLjgtMi4xLTEuNC00LjEtMi4yLTYtNS0xMC42LTEzLTE4LjYtMjIuNi0yNS0xLjgtMS4yLTIuOC0yLjUtMy40LTQuNS0zLjMtMTIuNS0zLTI1LjEtLjctMzcuNiAxLTUuNSAyLjgtMTAuOSA0LjUtMTYuMyAuOC0yLjQgMi4zLTQuNiA0LTYuNiAuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yIC41LTEgMS4xLTIgMS45LTMuMyAuNSA0LjIgLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEgLjYgLjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcgLjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYgLjUtMjIuNC0yNC45LTQuNi01Mi44IDEuOS01Ny44IDQuNiA4LjIgLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMyAuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNSAuOC0xMi45IDEuNi0xOS4yIDIuNGwtLjMtLjljNC43LTMuNCA4LTcuOCAxMC4yLTEzLjEgOC43LTIxLjEtMy42LTM4LTI1LTM5LjktOS4xLS44LTE3LjggLjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zIC42LTQuNSAuOC05LjIgLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNiAuMS0yMy4zIDEuMy0uOSAuMS0xLjcgLjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6Il19LFNUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2dWVqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQxZiIsIk0zNTYuOSA2NC4zbC03Ni45IDAtNTYgODguNi00OC04OC42LTE3NiAwIDIyNCAzODMuNyAyMjQtMzgzLjctOTEuMSAwek01NS43IDk2LjNsNTMuOCAwIDExNC41IDE5OC4yIDExNC40LTE5OC4yIDUzLjggMC0xNjguMiAyODguMi0xNjguMy0yODguMnoiXX0sX1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1ldGEiLGljb246WzY0MCw1MTIsW10sImU0OWIiLCJNNjQwIDMxNy45YzAgOTEuMy0zOS40IDE0OC41LTExMC4zIDE0OC41LTYyLjYgMC05NS44LTM0LjYtMTU2LjktMTM2LjZsLTMxLjQtNTIuNmMtOC4zLTEyLjUtMTQuNS0yNC4yLTIxLjItMzUtMjAuMSAzMy44LTQ3LjEgODMtNDcuMSA4My02NyAxMTYuNi0xMDQuNiAxNDEuMi0xNTYuOSAxNDEuMi03Mi44IDAtMTE2LjItNTcuMy0xMTYuMi0xNDUuOSAwLTE0MyA3OS44LTI3OC4xIDE4My45LTI3OC4xIDUwLjIgMCA5My44IDI0LjcgMTQ0LjggODkuNSAzNy4xLTUwLjEgNzguMS04OS41IDEzMC42LTg5LjUgOTkuMSAwIDE4MC43IDEyNS43IDE4MC43IDI3NS41ek0yODcuNCAxOTIuMmMtNDIuOS02Mi4xLTcwLjktODAuNS0xMDQuNC04MC41LTYxLjkgMC0xMTMuOCAxMDYuMS0xMTMuOCAyMTAgMCA0OC41IDE4LjUgNzUuNyA0OS42IDc1LjcgMzAuMiAwIDQ5LTE5IDEwMy4yLTEwMy44IDAgMCAyNC43LTM5LjEgNjUuNC0xMDEuNHpNNTMxLjIgMzk3LjRjMzIuMiAwIDQ2LjktMjcuNSA0Ni45LTc0LjkgMC0xMjQuMi01NC4zLTIyNS40LTEyMy4yLTIyNS40LTMzLjIgMC02MS4xIDI1LjktOTQuOSA3OCA5LjQgMTMuOCAxOS4xIDI5IDI5LjMgNDUuNGwzNy41IDYyLjRjNTguNyA5NC4xIDczLjUgMTE0LjUgMTA0LjQgMTE0LjV6Il19LE1UdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNoYXJlIixpY29uOls1MTIsNTEyLFtdLCJmNGYyIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTAxIDEzMi40YzcuOCAwIDEzLjcgNi4xIDEzLjcgMTMuN2wwIDE4Mi41YzAgNy43LTYuMSAxMy43LTEzLjcgMTMuN2wtMTM1LjEgMGMtNy43IDAtMTMuNy02LTEzLjctMTMuN2wwLTU0LTU0IDBjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdsMC0xODIuNWMwLTguMiA2LjYtMTIuNyAxMi40LTEzLjdsMTM2LjQgMGM3LjcgMCAxMy43IDYgMTMuNyAxMy43bDAgNTQgNTQgMHpNMTY3LjkgMzAwLjNsNDAuNyAwIDAtMTAxLjRjMC03LjQgNS44LTEyLjYgMTItMTMuN2w1NS44IDAgMC00MC4zLTEwOC41IDAgMCAxNTUuNHptMTc2LjItODguMWwtMTA4LjUgMCAwIDE1NS40IDEwOC41IDAgMC0xNTUuNHoiXX0selR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWRpb3ZpbmFyaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNmOCIsIk00ODAuNyAxODcuN2w0LjIgMjggMCAyOC0yNS4xIDQ0LjEtMzkuOCA3OC40LTU2LjEgNjcuNS03OS4xIDM3LjgtMTcuNyAyNC41LTcuNyAxMi05LjYgNHMxNy4zLTYzLjYgMTkuNC02My42IDIwLjMgLjcgMjAuMyAuN2w2Ni43LTM4LjYtOTIuNSAyNi4xLTU1LjkgMzYuOC0yMi44IDI4LTYuNiAxLjQgMjAuOC03My42IDYuOS01LjUgMjAuNyAxMi45IDg4LjMtNDUuMiA1Ni44LTUxLjUgMTQuOC02OC40LTEyNS40IDIzLjMgMTUuMi0xOC4yLTE3My40LTUzLjMgODEuOS0xMC41LTE2Ni0xMjIuOSAxMTQuOSAxOC4xLTEwMS4zLTEwOCAyNTIuOSAxMjYuNi0zMS41LTM4IDEyNC40IDc0LjQtMTQzLjMtOTkgMTguNyAzOC40LTQ5LjYtMTguMS00NS41LTg0LjMgMTk0LjYgMTIyLTQyLjktNTUuOCAxMDggOTYuNCAxMi04LjktMjEtMTYuNCA0LjItMzcuOCAzNy44LTEwLjQgMjkuMiAyNC43IDExLjUgNC4yLTcgNi4yIDguNSAxMi0xMy4xIDcuNC0xMC4zIDIwLjIgMTAuNSAyMy45eiJdfSxDVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0YnVja2V0IixpY29uOls1MTIsNTEyLFs2MTgxMF0sImYxNzEiLCJNMjIuMiAzMmMtMi4xIDAtNC4yIC40LTYuMSAxLjFzLTMuNyAxLjktNS4yIDMuNC0yLjcgMy4yLTMuNSA1LjEtMS4zIDQtMS4zIDYuMWMwIC45IC4xIDEuOSAuMiAyLjhMNzQuMSA0NjIuN2MuOCA1LjEgMy40IDkuNyA3LjMgMTNzOC44IDUuMiAxNCA1LjJsMzI1LjcgMGMzLjggLjEgNy41LTEuMyAxMC41LTMuN3M0LjktNS45IDUuNS05LjdMNTA1IDUwLjdjLjctNC4yLS4zLTguNC0yLjgtMTEuOXMtNi4yLTUuNy0xMC40LTYuNGMtLjktLjEtMS45LS4yLTIuOC0uMkwyMi4yIDMyek0zMDguMSAzMjkuOGwtMTA0IDAtMjguMS0xNDcgMTU3LjMgMC0yNS4yIDE0N3oiXX0sVFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZrIixpY29uOls0NDgsNTEyLFtdLCJmMTg5IiwiTTMxLjUgNjMuNUMwIDk1IDAgMTQ1LjcgMCAyNDdMMCAyNjVDMCAzNjYuMyAwIDQxNyAzMS41IDQ0OC41UzExMy43IDQ4MCAyMTUgNDgwbDE3LjkgMGMxMDEuNCAwIDE1Mi4xIDAgMTgzLjUtMzEuNVM0NDggMzY2LjMgNDQ4IDI2NWwwLTE3LjljMC0xMDEuNCAwLTE1Mi4xLTMxLjUtMTgzLjVTMzM0LjMgMzIgMjMzIDMyTDIxNSAzMkMxMTMuNyAzMiA2MyAzMiAzMS41IDYzLjV6TTc1LjYgMTY4LjNsNTEuMSAwYzEuNyA4NS41IDM5LjQgMTIxLjcgNjkuMyAxMjkuMmwwLTEyOS4yIDQ4LjIgMCAwIDczLjdjMjkuNS0zLjIgNjAuNS0zNi44IDcwLjktNzMuN2w0OC4yIDBjLTMuOSAxOS4yLTExLjggMzcuMy0yMy4xIDUzLjNzLTI1LjcgMjkuNS00Mi41IDM5LjZjMTguNyA5LjMgMzUuMiAyMi40IDQ4LjQgMzguNXMyMi45IDM0LjkgMjguMyA1NWwtNTMgMGMtNC45LTE3LjUtMTQuOC0zMy4xLTI4LjYtNDVzLTMwLjctMTkuNC00OC43LTIxLjZsMCA2Ni42LTUuOCAwYy0xMDIuMSAwLTE2MC4zLTcwLTE2Mi44LTE4Ni41eiJdfSwkVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViIixpY29uOls1MTIsNTEyLFtdLCJmMDliIiwiTTE3My45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zIC4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUgLjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOSAuNy00LjkgMi42LTQuNiA0LjkgLjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjUyLjggOGMtMTM4LjcgMC0yNDQuOCAxMDUuMy0yNDQuOCAyNDQgMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xIDEwMC0zMy4yIDE2Ny44LTEyOC4xIDE2Ny44LTIzOSAwLTEzOC43LTExMi41LTI0NC0yNTEuMi0yNDR6TTEwNS4yIDM1Mi45Yy0xLjMgMS0xIDMuMyAuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zIC4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNiAuNyA0LjMtLjcgLjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMyAuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMgLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45czQuMyAzLjMgNS42IDIuM2MxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnoiXX0sRFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGllcGllIixpY29uOls1MTIsNTEyLFtdLCJmMjg0IiwiTTQ0Mi41IDIwMi45YzMwLjcgMCAzMy41IDUzLjEtLjMgNTMuMWwtMTAuOCAwIDAgNDQuMy0yNi42IDAgMC05Ny40IDM3LjcgMHpNNDkyIDM1Mi42QzQ0OS45IDQ0NC41IDM3MC40IDUwNCAyNjggNTA0IDEzMSA1MDQgMjAgMzkzIDIwIDI1NlMxMzEgOCAyNjggOGM5Ny40IDAgMTcyLjggNTMuNyAyMTguMiAxMzguNEwzMDAuMiAyNTUuMiA0OTIgMzUyLjZ6bS0zOC41IDEyLjVsLTYwLjMtMzAuN2MtMjcuMSA0NC4zLTcwLjQgNzEuNC0xMjIuNCA3MS40LTgyLjUgMC0xNDkuMi02Ni43LTE0OS4yLTE0OC45IDAtODIuNSA2Ni43LTE0OS4yIDE0OS4yLTE0OS4yIDQ4LjQgMCA4OC45IDIzLjUgMTE2LjkgNjMuNGw1OS41LTM0LjZDNDA2LjUgNzMuOSAzNDIuNSAzNi41IDI2OCAzNi41IDE0Ni44IDM2LjUgNDguNSAxMzQuOCA0OC41IDI1NlMxNDYuOCA0NzUuNSAyNjggNDc1LjVjNzguNiAwIDE0Ni41LTQyLjEgMTg1LjUtMTEwLjR6Il19LExUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmFlIiwiTTQ0MC4yIDIzLjJjLTI2LjcgNi44LTY4LjEgMjguNS0xMTQuNiA2Ny41LTMwLjktMTcuNS02NS44LTI2LjctMTAxLjQtMjYuNy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOCAyMDgtOTMuMSAyMDgtMjA4Yy4xLTU0LjEtMjEtMTA2LjEtNTguNy0xNDQuOC02LjYgOC41LTEyLjMgMTcuNy0xNyAyNy40IDI4LjkgMzIuMyA0NC44IDc0LjEgNDQuOSAxMTcuNCAwIDk3LjctNzkuNCAxNzcuMS0xNzcuMSAxNzcuMS0zMC44IDAtNjEtOC4xLTg3LjYtMjMuNCA4Mi45LTEwNy4zIDE1MC44LTM3LjggMTg0LjMtMjI2LjYgNS44LTMyLjYgMjgtOTQuMyAxMjYuMi0xNjAuMiA4LjEtNS40IDIuNC0xOC4xLTctMTUuN3pNMTA5LjMgNDA2LjRDODkuOCAzODkuOCA3NC4yIDM2OS4yIDYzLjUgMzQ2cy0xNi4zLTQ4LjUtMTYuMy03NGMwLTk3LjcgNzkuNC0xNzcuMSAxNzcuMS0xNzcuMSAyNi42IDAgNTIuOCA2LjEgNzYuNiAxNy44LTY2IDYyLjEtMTI2LjkgMTUyLjktMTkxLjYgMjkzLjh6Il19LEVUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXNwYmVycnktcGkiLGljb246WzQ0OCw1MTIsW10sImY3YmIiLCJNMzkyLjUgMjMyLjVsLTMuNy02LjVjLjEtNDYuNC0yMS40LTY1LjMtNDYuNS03OS43IDcuNi0yIDE1LjQtMy42IDE3LjYtMTMuMiAxMy4xLTMuMyAxNS44LTkuNCAxNy4xLTE1LjggMy40LTIuMyAxNC44LTguNyAxMy42LTE5LjcgNi40LTQuNCAxMC0xMC4xIDguMS0xOC4xIDYuOS03LjUgOC43LTEzLjcgNS44LTE5LjQgOC4zLTEwLjMgNC42LTE1LjYgMS4xLTIwLjkgNi4yLTExLjIgLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42IC44LTExLjMtMy42LTEzLjkgMS4zLTE5LjQgMy40LTEyLjMtMi42LTE2LjEgMy0yMiA4LjlsLTYuOS0uMWMtMTguNiAxMC44LTI3LjggMzIuOC0zMS4xIDQ0LjEtMy4zLTExLjMtMTIuNS0zMy4zLTMxLjEtNDQuMWwtNi45IC4xYy01LjktNS45LTkuNy0xMS41LTIyLTguOS01LjYtMi04LjEtNy0xOS40LTMuNC00LjYtMS40LTguOS00LjQtMTMuOS00LjMtMi42IC4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOC0xNy4zLTItMjIuNyAxMC0xNi41IDIxLjItMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yIDIwLjMgMjAuNiA0Mi4zIDI4LjQgNjQuMyAyOC40bDEgMGMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODAgNTkuOC01LjYgNzguOCAyMi44IDE0LjYgNjQuMi05LjkgODB6TTI1OS40IDI5LjNjLjggNC4yIDEuOCA2LjggMi45IDcuNiA1LjQtNS44IDkuOC0xMS43IDE2LjgtMTcuMyAwIDMuMy0xLjcgNi44IDIuNSA5LjQgMy43LTUgOC44LTkuNSAxNS41LTEzLjMtMy4yIDUuNi0uNiA3LjMgMS4yIDkuNiA1LjEtNC40IDEwLTguOCAxOS40LTEyLjMtMi42IDMuMS02LjIgNi4yLTIuNCA5LjggNS4zLTMuMyAxMC42LTYuNiAyMy4xLTguOS0yLjggMy4xLTguNyA2LjMtNS4xIDkuNCA2LjYtMi41IDE0LTQuNCAyMi4xLTUuNC0zLjkgMy4yLTcuMSA2LjMtMy45IDguOCA3LjEtMi4yIDE2LjktNS4xIDI2LjQtMi42bC02IDYuMWMtLjcgLjggMTQuMSAuNiAyMy45IC44LTMuNiA1LTcuMiA5LjctOS4zIDE4LjIgMSAxIDUuOCAuNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yIC4xLTMuNCA2LjktMTAuNCAxMS43LTE2IDE3LjMgMS40IDEgMy45IDEuNiA5LjcgLjktNS4yIDUuNS0xMS40IDEwLjUtMTguOCAxNSAxLjMgMS41IDUuOCAxLjUgMTAgMS42LTYuNyA2LjUtMTUuMyA5LjktMjMuNCAxNC4yIDQgMi43IDYuOSAyLjEgMTAgMi4xLTUuNyA0LjctMTUuNCA3LjEtMjQuNCAxMCAxLjcgMi43IDMuNCAzLjQgNy4xIDQuMS05LjUgNS4zLTIzLjIgMi45LTI3IDUuNiAuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQgLjktNTcuMy0uNi02NS40LTMyLjMgMTUuNy0xNy4zIDQ0LjQtMzcuNSA5My43LTYyLjYtMzguNCAxMi44LTczIDMwLTEwMiA1My41LTM0LjMtMTUuOS0xMC44LTU1LjkgNS44LTcxLjh6TTIyNSAxNDMuOWMyNC4yLS4zIDU0LjEgMTcuOCA1NCAzNC43LS4xIDE1LTIxIDI3LjEtNTMuOCAyNi45LTMyLjEtLjQtNTMuNy0xNS4yLTUzLjYtMjkuOCAwLTExLjkgMjYuMi0zMi41IDUzLjQtMzEuOHpNMTAyIDEzMS4xYzMuNy0uNyA1LjQtMS41IDcuMS00LjEtOS0yLjgtMTguNy01LjMtMjQuNC0xMCAzLjEgMCA2IC43IDEwLTIuMS04LjEtNC4zLTE2LjctNy43LTIzLjQtMTQuMiA0LjItLjEgOC43IDAgMTAtMS42LTcuNC00LjUtMTMuNi05LjUtMTguOC0xNSA1LjggLjcgOC4zIC4xIDkuNy0uOS01LjYtNS42LTEyLjctMTAuNC0xNi0xNy4zIDQuMyAxLjUgOC4zIDIgMTEuMi0uMS0xLjktNC4yLTEwLTYuNy0xNC43LTE2LjYgNC42IC40IDkuNCAxIDEwLjQgMC0yLjEtOC41LTUuOC0xMy4zLTkuMy0xOC4yIDkuOC0uMSAyNC42IDAgMjMuOS0uOGwtNi02LjFjOS41LTIuNSAxOS4zIC40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42IC4yLTYuNy0yLjQtOS44IDkuNCAzLjQgMTQuMyA3LjkgMTkuNCAxMi4zIDEuNy0yLjMgNC40LTQgMS4yLTkuNiA2LjcgMy44IDExLjggOC4zIDE1LjUgMTMuMyA0LjEtMi42IDIuNS02LjIgMi41LTkuNCA3IDUuNiAxMS40IDExLjUgMTYuOCAxNy4zIDEuMS0uOCAyLTMuNCAyLjktNy42IDE2LjYgMTUuOSA0MC4xIDU1LjkgNiA3MS44LTI5LTIzLjUtNjMuNi00MC43LTEwMi01My41IDQ5LjMgMjUgNzggNDUuMyA5My43IDYyLjYtOCAzMS44LTUwIDMzLjItNjUuNCAzMi4zIDMuMS0xLjQgNS44LTMuMiA2LjctNS44LTQtMi44LTE3LjYtLjQtMjcuMi01LjZ6bTYwLjEgMjQuMWMxNi44IDIuOC04MC42IDg2LjUtODIuMSA2Ny45LTEuNS00OC43IDM2LjUtNzUuNSA4Mi4xLTY3Ljl6TTU4LjcgMzQyYy0yMy43LTE4LjgtMzEuMy03My43IDEyLjYtOTguMyAyNi41LTcgOSAxMDcuOC0xMi42IDk4LjN6bTkxIDk4LjJjLTEzLjMgNy45LTQ1LjggNC43LTY4LjgtMjcuOS0xNS41LTI3LjQtMTMuNS01NS4yLTIuNi02My40IDE2LjMtOS44IDQxLjUgMy40IDYwLjkgMjUuNiAxNi45IDIwIDI0LjYgNTUuMyAxMC41IDY1Ljd6TTEyMy4zIDMyMC41Yy0yNC41LTE1LjgtMjguOS01MS42LTkuOS04MHM1NC4zLTM4LjYgNzguOC0yMi44IDI4LjkgNTEuNiA5LjkgODBjLTE5LjEgMjguNC01NC40IDM4LjYtNzguOCAyMi44ek0yMjUuNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45IC41IDExLTI4LjggMzUuOS01Ny4yIDM1LjR6bTU4LjktMTI0LjljLjIgMjkuNy0yNi4yIDUzLjgtNTguOCA1NHMtNTkuMi0yMy44LTU5LjQtNTMuNGwwLS42Yy0uMi0yOS43IDI2LjItNTMuOCA1OC44LTU0czU5LjIgMjMuOCA1OS40IDUzLjRsMCAuNnptODIuMiA0Mi43Yy0yNS4zIDM0LjYtNTkuNiAzNS45LTcyLjMgMjYuMy0xMy4zLTEyLjQtMy4yLTUwLjkgMTUuMS03MiAyMC45LTIzLjMgNDMuMy0zOC41IDU4LjktMjYuNiAxMC41IDEwLjMgMTYuNyA0OS4xLTEuNyA3Mi4zem0yMi45LTczLjJjLTIxLjUgOS40LTM5LTEwNS4zLTEyLjYtOTguMyA0My45IDI0LjcgMzYuMyA3OS42IDEyLjYgOTguM3oiXX0sUFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMiLGljb246WzUxMiw1MTIsW10sImYxM2MiLCJNNDgwIDMybC02NCAzNjgtMjIzLjMgODAtMTkyLjctODAgMTkuNi05NC44IDgyIDAtOCA0MC42IDExNi40IDQ0LjQgMTM0LjEtNDQuNCAxOC44LTk3LjEtMzMzLjQgMCAxNi04MiAzMzMuNyAwIDEwLjUtNTIuNy0zMzMuNCAwIDE2LjMtODIgNDA3LjQgMHoiXX0sSVR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1YnNwb3QiLGljb246WzQ0OCw1MTIsW10sImYzYjIiLCJNMjM1LjggMjExLjZjLTI1LjEgMjMuNy00MC44IDU3LjMtNDAuOCA5NC42IDAgMjkuMyA5LjcgNTYuMyAyNiA3OEwxNzEuNSA0MzRjLTQuNC0xLjYtOS4xLTIuNS0xNC0yLjUtMTAuOCAwLTIwLjkgNC4yLTI4LjUgMTEuOHMtMTEuOCAxNy44LTExLjggMjguNiA0LjIgMjAuOSAxMS44IDI4LjUgMTcuOCAxMS42IDI4LjUgMTEuNmMxMC44IDAgMjAuOS0zLjkgMjguNi0xMS42IDcuNi03LjYgMTEuOC0xNy44IDExLjgtMjguNSAwLTQuMi0uNi04LjItMS45LTEyLjFsNTAtNTAuMmMyMiAxNi45IDQ5LjQgMjYuOSA3OS4zIDI2LjkgNzEuOSAwIDEzMC01OC4zIDEzMC0xMzAuMiAwLTY1LjItNDcuNy0xMTkuMi0xMTAuMi0xMjguN2wwLTYxLjZjMTcuNS03LjQgMjguMi0yMy44IDI4LjItNDIuOSAwLTI2LjEtMjAuOS00Ny45LTQ3LTQ3LjlTMjc5LjYgNDcgMjc5LjYgNzMuMWMwIDE5LjEgMTAuNyAzNS41IDI4LjIgNDIuOWwwIDYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjggMC0yOC44LTIzLjUtNTIuMi01Mi40LTUyLjItMjguOCAwLTUyLjIgMjMuNC01Mi4yIDUyLjIgMCAyOC45IDIzLjQgNTIuMyA1Mi4yIDUyLjMgOS44IDAgMTguOS0yLjkgMjYuOC03LjZMMjM1LjggMjExLjZ6bTg5LjUgMjUuNmE2OSA2OSAwIDEgMSAwIDEzOCA2OSA2OSAwIDEgMSAwLTEzOHoiXX0sQVR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNtcGxpZCIsaWNvbjpbNjQwLDUxMixbXSwiZTM2MCIsIk0yMjYuMSAzODguMmMwLS43LS4yLTEuNS0uNi0yLjFzLTEtMS4xLTEuNy0xLjRjLS41LS4yLTEuMS0uNC0xLjYtLjRsLTE0OS42IDBjLTMuMSAwLTYuMi0uOC04LjktMi4ycy01LjEtMy41LTYuOS02LjEtMi45LTUuNS0zLjMtOC42IDAtNi4yIDEuMS05LjFMODEuNiAyNTUuN2MyLTcuMiA2LjItMTMuNSAxMi0xOC4yczEyLjktNy40IDIwLjQtNy44bDE0OC42IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuNC0xIC4zLTItLjEtMi45cy0xLjItMS42LTIuMS0yYy0uNC0uMi0uOS0uMy0xLjQtLjMtLjEgMC0uMSAwLS4yIDBsLTE0OC41IDBjLTIyLjIgMS4yLTQzLjQgOS4yLTYwLjggMjNzLTMwIDMyLjctMzYuMiA1NC4xTDMuNSAzNTguOGMtMy4yIDguNy00LjIgMTgtMyAyNy4xczQuNiAxNy45IDkuOSAyNS41IDEyLjMgMTMuOCAyMC41IDE4IDE3LjMgNi41IDI2LjUgNi42YzEgMCAxLjkgMCAyLjktLjFsMTQ4LjYgMGMxLjUtLjEgMi45LS43IDQtMS42czItMi4yIDIuNC0zLjZsMTAuNy00MS4xYy4yLS41IC4zLS45IC4zLTEuNHptODAuNS0zMDdjLjItLjQgLjMtLjkgLjMtMS40IDAtLjUtLjEtMS0uMy0xLjVzLS41LS45LS44LTEuMi0uOC0uNi0xLjItLjgtMS0uMy0xLjUtLjNsLTQxLjIgMGMtMS41IC4xLTIuOSAuNi00IDEuNnMtMiAyLjItMi40IDMuNmwtMjEuMyA4MC45IDUxLjEgMCAyMS40LTgwLjl6bS0xMjYuMyAyODdsNTEuMSAwIDMyLTEyMi42LTUxLjEgMC0zMiAxMjIuNnpNNTExLjkgNzkuN2MwLTEtLjUtMS45LTEuMi0yLjZzLTEuNy0xLjEtMi42LTEuMWMtLjEgMC0uMSAwLS4yIDBsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNC4xIDEuNXMtMiAyLjItMi41IDMuNkwzNjguOSA0MzAuNmMtLjIgLjQtLjMgLjktLjMgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjIgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNTExLjUgODEuMmMuMi0uNSAuMy0xIC4zLTEuNXpNMzI0LjYgMzg0LjVsLTQxIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjcgNDEuMWMtLjIgLjQtLjMgLjktLjMgMS40IDAgLjUgLjEgMSAuMyAxLjVzLjUgLjkgLjggMS4yIC44IC42IDEuMiAuOCAxIC4zIDEuNSAuM2MuMSAwIC4yIDAgLjMgMGw0MC45IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuMi0uNiAuMy0xLjIgLjMtMS44cy0uMy0xLjItLjYtMS43LS44LS45LTEuMy0xLjItMS4yLS40LTEuOC0uNGMtLjEgMC0uMiAwLS4zIDBsMCAwek02MzYgNzYuMWwtNDEgMGMtMS41IC4xLTIuOSAuNi00IDEuNXMtMiAyLjItMi40IDMuNkw0OTcuMSA0MzAuNmMtLjIgLjQtLjIgLjktLjIgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNjM5LjcgODEuMmMuMi0uNSAuMy0xIC4zLTEuNS0uMS0xLS41LTEuOS0xLjItMi41cy0xLjYtMS0yLjYtMWMtLjEgMC0uMSAwLS4yIDBsMC0uMXpNMzcxLjYgMjI1LjJsMTAuOC00MS4xYy4yLS40IC4yLS45IC4yLTEuNCAwLTEtLjQtMi0xLjEtMi43cy0xLjctMS4xLTIuNy0xLjFsLTQxLjMgMGMtMS41IC4xLTIuOSAuNy00IDEuNnMtMiAyLjItMi40IDMuNmwtMTAuOCA0MS4xYy0uMiAuNS0uMyAxLS4zIDEuNWwwIC4yYy4xIDEgLjUgMS44IDEuMiAyLjVzMS42IDEgMi42IDFjLjEgMCAuMiAwIC4zIDBsNDEuMSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNnoiXX0sTlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR5YWxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5OSIsIk0xNiAzMmwwIDExOS4yIDY0IDAgMC01NS4yIDEwNy4yIDBDMzAwLjYgOTYgMzY4IDE3Ni4yIDM2OCAyNTUuOSAzNjggMzMyIDMwOS40IDQxNiAxODcuMiA0MTZsLTE3MS4yIDAgMCA2NCAxNzEuMiAwQzM0Ny45IDQ4MCA0MzIgMzY3LjMgNDMyIDI1NS45IDQzMiAxOTcuMiA0MDkuOSAxNDIuNSAzNjkuNyAxMDEuNiAzMjQuOSA1NiAyNjEuNyAzMiAxODcuMiAzMkwxNiAzMnoiXX0sUlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZW1lbnRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjQzMCIsIk0uNSAyNTZjMCAxNDEgMTEzLjYgMjU1IDI1NC42IDI1NSAxNDIgMCAyNTYtMTE0IDI1Ni0yNTUgMC0xNDAtMTE0LTI1My45LTI1Ni0yNTMuOS0xNDEgMC0yNTQuNiAxMTMuOS0yNTQuNiAyNTMuOXpNMTkyLjEgMTUwbDAgMjEzLTQzIDAgMC0yMTMgNDMgMHptNDIgMGwxMjggMCAwIDQzLTEyOCAwIDAtNDN6bTEyOCA4NWwwIDQzLTEyOCAwIDAtNDMgMTI4IDB6bS0xMjggODVsMTI4IDAgMCA0My0xMjggMCAwLTQzeiJdfSxPVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImYyYjAiLCJNMTMuMyAyMjkuMmMuMS0uMSAuMi0uMyAuMy0uNCAwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIyNC40IDk2LjZjLTcuMSAwLTE0LjYgLjYtMjEuNCAxLjdsMy43IDY3LjQtMjItNjRjLTE0LjMgMy43LTI3LjcgOS40LTQwIDE2LjZsMjkuNCA2MS40LTQ1LjEtNTAuOWMtMTEuNCA4LjktMjEuNyAxOS4xLTMwLjYgMzAuOWw1MC42IDQ1LjQtNjEuMS0yOS43Yy03LjEgMTIuMy0xMi45IDI1LjctMTYuNiA0MGw2NC4zIDIyLjYtNjgtNGMtLjkgNy4xLTEuNCAxNC42LTEuNCAyMnMuNiAxNC42IDEuNCAyMS43bDY3LjctNC02NCAyMi42YzMuNyAxNC4zIDkuNCAyNy43IDE2LjYgNDAuM0wxNDkgMzA2LjkgOTguMSAzNTJjOC45IDExLjcgMTkuMSAyMi4zIDMwLjkgMzAuOWw0NC45LTUwLjktMjkuNSA2MS40YzEyLjMgNy40IDI1LjcgMTMuMSA0MCAxNi45bDIyLjMtNjQuNi00IDY4YzcuMSAxLjEgMTQuNiAxLjcgMjEuNyAxLjcgNy40IDAgMTQuNi0uNiAyMS43LTEuN2wtNC02OC42IDIyLjYgNjUuMWMxNC4zLTQgMjcuNy05LjQgNDAtMTYuOWwtMjkuNC02MS4zIDQ0LjkgNTAuOWMxMS43LTguOSAyMi0xOS4xIDMwLjYtMzAuOWwtNTAuNi00NS4xIDYxLjEgMjkuNGM3LjEtMTIuMyAxMi45LTI1LjcgMTYuNi00MC4zbC02NC0yMi4zIDY3LjQgNGMxLjEtNy4xIDEuNC0xNC4zIDEuNC0yMS43cy0uMy0xNC45LTEuNC0yMmwtNjcuNyA0IDY0LTIyLjNjLTMuNy0xNC4zLTkuMS0yOC0xNi42LTQwLjNsLTYwLjkgMjkuNyA1MC42LTQ1LjRjLTguOS0xMS43LTE5LjEtMjItMzAuNi0zMC45bC00NS4xIDUwLjkgMjkuNC02MS4xYy0xMi4zLTcuNC0yNS43LTEzLjEtNDAtMTYuOWwtMjIuMyA2NC4zIDQtNjcuN2MtNy4xLTEuMi0xNC4zLTEuNy0yMS43LTEuN3pNNDQzLjggMTI4TDQ0My44IDM4NCAyMjQuNCA1MTIgNSAzODQgNSAxMjggMjI0LjQgMCA0NDMuOCAxMjh6bS0xNy4xIDEwLjNsLTIwMi4zLTExNy40LTIwMi4zIDExNy40IDAgMjM1LjEgMjAyLjMgMTE3LjcgMjAyLjMtMTE3LjcgMC0yMzUuMXpNMjI0LjQgMzcuMWwxODcuNyAxMDkuNCAwIDIxOC45LTE4Ny43IDEwOS41LTE4Ny43LTEwOS41IDAtMjE4LjggMTg3LjctMTA5LjV6bTAgNTAuOWMtOTIuMyAwLTE2Ni45IDc1LjEtMTY2LjkgMTY4IDAgOTIuNiA3NC42IDE2Ny43IDE2Ni45IDE2Ny43IDkyIDAgMTY2LjktNzUuMSAxNjYuOS0xNjcuNyAwLTkyLjktNzQuOS0xNjgtMTY2LjktMTY4eiJdfSxGVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJpYmJibGUiLGljb246WzUxMiw1MTIsW10sImYxN2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjAgMTIyLjRjMjkuNSAzNiA0Ny40IDgyIDQ3LjggMTMyLTctMS41LTc3LTE1LjctMTQ3LjUtNi44LTUuOC0xNC0xMS4yLTI2LjQtMTguNi00MS42IDc4LjMtMzIgMTEzLjgtNzcuNSAxMTguMy04My41ek0zOTYuNCA5Ny45Yy0zLjggNS40LTM1LjcgNDguMy0xMTEgNzYuNS0zNC43LTYzLjgtNzMuMi0xMTYuMi03OS0xMjQgNjcuMi0xNi4yIDEzOCAxLjMgMTkwLjEgNDcuNXpNMTY1LjkgNjQuNmM1LjYgNy43IDQzLjQgNjAuMSA3OC41IDEyMi41LTk5LjEgMjYuMy0xODYuNCAyNS45LTE5NS44IDI1LjggMTMuNy02NS43IDU4LTEyMC40IDExNy4zLTE0OC4zek00NC4yIDI1Ni4zYzAtMi4yIDAtNC4zIC4xLTYuNSA5LjMgLjIgMTExLjkgMS41IDIxNy43LTMwLjEgNi4xIDExLjkgMTEuOSAyMy45IDE3LjIgMzUuOS03Ni42IDIxLjYtMTQ2LjIgODMuNS0xODAuNSAxNDIuMy0zMy44LTM3LjYtNTQuNS04Ny4yLTU0LjUtMTQxLjZ6TTEyNiA0MjMuNGMyMi4xLTQ1LjIgODIuMi0xMDMuNiAxNjcuNi0xMzIuOCAyOS43IDc3LjMgNDIgMTQyLjEgNDUuMiAxNjAuNi02OC4xIDI5LTE1MCAyMS4xLTIxMi44LTI3Ljl6bTI0OC40IDguNWMtMi4yLTEyLjktMTMuNC03NC45LTQxLjItMTUxIDY2LjQtMTAuNiAxMjQuNyA2LjggMTMxLjkgOS4xLTkuNCA1OC45LTQzLjMgMTA5LjgtOTAuOCAxNDJ6Il19LHpiPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluIixpY29uOls0NDgsNTEyLFtdLCJmMDhjIiwiTTQxNiAzMkwzMS45IDMyQzE0LjMgMzIgMCA0Ni41IDAgNjQuM0wwIDQ0Ny43QzAgNDY1LjUgMTQuMyA0ODAgMzEuOSA0ODBMNDE2IDQ4MGMxNy42IDAgMzItMTQuNSAzMi0zMi4zbDAtMzgzLjRDNDQ4IDQ2LjUgNDMzLjYgMzIgNDE2IDMyek0xMzUuNCA0MTZsLTY2LjQgMCAwLTIxMy44IDY2LjUgMCAwIDIxMy44LS4xIDB6TTEwMi4yIDk2YTM4LjUgMzguNSAwIDEgMSAwIDc3IDM4LjUgMzguNSAwIDEgMSAwLTc3ek0zODQuMyA0MTZsLTY2LjQgMCAwLTEwNGMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45bDAgMTA1LjgtNjYuNCAwIDAtMjEzLjggNjMuNyAwIDAgMjkuMiAuOSAwYzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45bDAgMTE3LjJ6Il19LEJUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1wYXlwYWwiLGljb246WzU3Niw1MTIsW10sImYxZjQiLCJNMTg2LjMgMjU4LjJjMCAxMi4yLTkuNyAyMS41LTIyIDIxLjUtOS4yIDAtMTYtNS4yLTE2LTE1IDAtMTIuMiA5LjUtMjIgMjEuNy0yMiA5LjMgMCAxNi4zIDUuNyAxNi4zIDE1LjV6TTgwLjUgMjA5LjdsLTQuNyAwYy0xLjUgMC0zIDEtMy4yIDIuN2wtNC4zIDI2LjcgOC4yLS4zYzExIDAgMTkuNS0xLjUgMjEuNS0xNC4yIDIuMy0xMy40LTYuMi0xNC45LTE3LjUtMTQuOXptMjg0IDBsLTQuNSAwYy0xLjggMC0zIDEtMy4yIDIuN2wtNC4yIDI2LjcgOC0uM2MxMyAwIDIyLTMgMjItMTgtLjEtMTAuNi05LjYtMTEuMS0xOC4xLTExLjF6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTEyOC4zIDIxNS40YzAtMjEtMTYuMi0yOC0zNC43LTI4bC00MCAwYy0yLjUgMC01IDItNS4yIDQuN0wzMiAyOTQuMmMtLjMgMiAxLjIgNCAzLjIgNGwxOSAwYzIuNyAwIDUuMi0yLjkgNS41LTUuN2w0LjUtMjYuNmMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNiAwIDQ2LjEtMTcgNDYuMS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4yIDguMi01LjgtOC41LTE0LjItMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5IDAgMjAuMi00LjkgMjYuNS0xMS45LS41IDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMiAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTI1MyAzMjIuMWw2My43LTkyLjZjLjUtLjUgLjUtMSAuNS0xLjcgMC0xLjctMS41LTMuNS0zLjItMy41bC0xOS4yIDBjLTEuNyAwLTMuNSAxLTQuNSAyLjVsLTI2LjUgMzktMTEtMzcuNWMtLjgtMi4yLTMtNC01LjUtNGwtMTguNyAwYy0xLjcgMC0zLjIgMS44LTMuMiAzLjUgMCAxLjIgMTkuNSA1Ni44IDIxLjIgNjIuMS0yLjcgMy44LTIwLjUgMjguNi0yMC41IDMxLjYgMCAxLjggMS41IDMuMiAzLjIgMy4ybDE5LjIgMGMxLjgtLjEgMy41LTEuMSA0LjUtMi42ek00MTIuMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtMzkuNyAwYy0yLjcgMC01LjIgMi01LjUgNC43bC0xNi4yIDEwMmMtLjIgMiAxLjMgNCAzLjIgNGwyMC41IDBjMiAwIDMuNS0xLjUgNC0zLjJsNC41LTI5YzEtNy4yIDEzLjItNC43IDE4LTQuNyAyOC40IDAgNDUuOS0xNyA0NS45LTQ1Ljh6bTg0LjIgOC44bC0xOSAwYy0zLjggMC00IDUuNS00LjMgOC4yLTUuNS04LjUtMTQtMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5LjMgMCAyMC41LTQuOSAyNi41LTExLjktLjMgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNGwxNy4zIDBjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXpNNTQ0IDE5MC45YzAtMi0xLjUtMy41LTMuMi0zLjVsLTE4LjUgMGMtMS41IDAtMyAxLjItMy4yIDIuN2wtMTYuMiAxMDQtLjMgLjVjMCAxLjggMS41IDMuNSAzLjUgMy41bDE2LjUgMGMyLjUgMCA1LTIuOSA1LjItNS43bDE2LjItMTAxLjIgMC0uM3ptLTkwIDUxLjhjLTEyLjIgMC0yMS43IDkuNy0yMS43IDIyIDAgOS43IDcgMTUgMTYuMiAxNSAxMiAwIDIxLjctOS4yIDIxLjctMjEuNSAuMS05LjgtNi45LTE1LjUtMTYuMi0xNS41eiJdfSxIVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGhsIixpY29uOls2NDAsNTEyLFtdLCJmNzkwIiwiTTIzOCAzMDEuMmw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMC0yMi4zIDMwLjJ6TTAgMjgyLjlsMCA2LjQgODEuOCAwIDQuNy02LjQtODYuNSAwek0xNzIuOSAyNzFjLTguNyAwLTYtMy42LTQuNi01LjUgMi44LTMuOCA3LjYtMTAuNCAxMC40LTE0LjFzMi44LTUuOS0yLjgtNS45bC01MSAwLTQxLjEgNTUuOCAxMDAuMSAwYzMzLjEgMCA1MS41LTIyLjUgNTcuMi0zMC4zbC02OC4yIDB6bTMxNy41LTYuOWwzOS4zLTUzLjQtNjIuMiAwLTM5LjMgNTMuNCA2Mi4yIDB6TTk1LjMgMjcxbC05NS4zIDAgMCA2LjQgOTAuNiAwIDQuNy02LjR6bTExMS0yNi42Yy0yLjggMy44LTcuNSAxMC40LTEwLjMgMTQuMi0xLjQgMi00LjEgNS41IDQuNiA1LjVsNDUuNiAwczcuMy0xMCAxMy41LTE4LjRjOC40LTExLjQgLjctMzUtMjkuMi0zNWwtMTE3LjkgMC0yMC40IDI3LjggMTExLjQgMGM1LjYgMCA1LjUgMi4yIDIuNyA1Ljl6TTAgMzAxLjJsNzMuMSAwIDQuNy02LjQtNzcuOCAwIDAgNi40em0zMjMgMGw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMGMtLjEgMC0yMi4zIDMwLjItMjIuMyAzMC4yem0yMjIgLjFsOTUgMCAwLTYuNC05MC4zIDAtNC43IDYuNHpNNTY3LjMgMjcxbC00LjcgNi40IDc3LjQgMCAwLTYuNC03Mi43IDB6bS0xMy41IDE4LjNsODYuMiAwIDAtNi40LTgxLjUgMC00LjcgNi40ek0zODkuNiAyMTAuN2wtMjIuNSAzMC42LTI2LjIgMCAyMi41LTMwLjYtNTguNyAwLTM5LjMgNTMuNCAxNDMuNiAwIDM5LjMtNTMuNC01OC43IDB6TTQyMy4xIDI3MXMtNC4zIDUuOS02LjQgOC43Yy03LjQgMTAtLjkgMjEuNiAyMy4yIDIxLjZsOTQuMyAwIDIyLjMtMzAuMy0xMzMuNCAweiJdfSxxVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGV4IixpY29uOls2NDAsNTEyLFtdLCJlN2ZmIiwiTTYyMC44IDk1LjRjLTMwLjggLjQtNDIuMSAxNi42LTQ3LjcgMjQuNWwtLjEgLjEtNTUuNyA4MC41IDgyLjggMTIxLjFjNy41IDEwLjYgMTEuMyAxMi41IDM1LjQgMTIuNWwwIDkuMWMtOS4xLS43LTI4LS43LTM3LjctLjctMTIuNCAwLTMwLjggMC00Mi45IC43bDAtOS4xYzEzLjItLjggMTYuNi03LjMgMTYuNi0xMC4yIDAtMS4xIDAtMi4zLTMtNi40bC02NS41LTk2LjMtNjAuMiA4Ny45Yy0xLjkgMi43LTMuOCA1LjQtMy44IDEwLjIgMCA2LjEgMy40IDEzLjYgMTUgMTQuN2wwIDkuMWMtOS40LS43LTI3LjEtLjctMzcuMi0uN2wtMi44IDAtMTEuNyA4Mi42LTE5NS45IDAgMC05LjFjMjYuNyAwIDMwLjkgMCAzMC45LTE2LjlsMC0yMDMuMmMwLTE2LjktNC4zLTE2LjktMzAuOS0xNi45bDAtMTAuMyAxOS44IDBjLTQuOC02MS4xLTEwLjgtNzEuNy02OC03MS44bC0yMC43IDBjLTYuOCAxLjUtNi44IDYuMS02LjggMTQuNGwwIDIwNWMwIDEzLjYgMS4xIDE3LjggMzIuNCAxNy44bDEwLjUgMCAwIDkuMS0uNCAwYy0xNy45LS4zLTM2LjctLjctNTQuOS0uN3MtMzYuOSAuMy01NC44IC43bC0uNiAwIDAtOS4xIDEwLjcgMGMzMS43IDAgMzIuOC00LjEgMzIuOC0xNy44bDAtMjA1YzAtOC43IDAtMTMuMi03LjItMTQuM2wtMjAuOCAwYy01OC40IDAtNjMuNyAxMC45LTY4LjYgNzMuM2wtNi44IDAgNi4zLTgzLjMgMjE3LjUgMCA2LjEgODEuOCAxNjQuMSAwIDkgODMuMy02LjggMGMtNS4zLTQ5LjgtMTIuMS03My03MC4zLTczbC01MS41IDBjLTE1IDAtMTUuOCAxLjktMTUuOCAxNC42bDAgOTMuMyAzNS41IDBjMzUuNSAwIDM4LjktMTIuOCAzOC45LTQ0bDYgMCAwIDk3LjktNiAwYzAtMzEuOC0zLjQtNDQuOC0zOC45LTQ0LjhsLTM1LjUgMCAwIDEwNS4yYzAgMTMgLjcgMTQuOCAxNS44IDE0LjhsNTIuMiAwYzYxLjEgMCA2OS45LTI1LjggNzcuNC03My42LTcuNyAwLTE2LjMgLjItMjIuMiAuN2wwLTkuMWM3LjIgMCAzMS43LS40IDQ3LjgtMjMuOGw2NS41LTk1LjctNzIuNy0xMDYuN2MtOC4zLTExLjctMTUuMS0xMi41LTM1LjgtMTIuNWwwLTkuMWM5LjEgLjcgMjcuOSAuNyAzNy43IC43IDEyLjQgMCAzMC44IDAgNDIuOS0uN2wwIDkuMWMtMTIuNSAuNC0xNi42IDYuOC0xNi42IDEwLjIgMCAxLjEgLjQgMi4zIDMgNi40bDU1LjcgODEuNiA0OS43LTcyLjFjMi43LTMuNyA0LjUtNi44IDQuNS0xMS4zIDAtNi4xLTMtMTMuNi0xNS0xNC44bDAtOS4xYzkuNCAuNyAyNC44IC43IDM3LjIgLjcgOSAwIDIzLjMgMCAzMi0uN2wwIDkuMXoiXX0salR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsYXVkZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg2MSIsIk0xMDAuNCAzNDAuNWwxMDAuNy01Ni41IDEuNy00LjktMS43LTIuNy00LjkgMC0xNi44LTEtNTcuNS0xLjYtNDkuOS0yLjEtNDguMy0yLjYtMTIuMi0yLjYtMTEuNC0xNSAxLjItNy41IDEwLjItNi45IDE0LjcgMS4zYzE4LjkgMS4zIDQ1LjkgMy4xIDgxIDUuNmwzNS4yIDIuMSA1Mi4yIDUuNCA4LjMgMCAxLjItMy40LTIuOC0yLjEtMi4yLTIuMS01MC4zLTM0LjEtNTQuNC0zNi0yOC41LTIwLjctMTUuNC0xMC41LTcuOC05LjgtMy40LTIxLjUgMTQtMTUuNCAxOC44IDEuMyA0LjggMS4zIDE5IDE0LjcgNDAuNyAzMS41IDUzLjEgMzkuMSA3LjggNi41IDMuMS0yLjIgLjQtMS42LTMuNS01LjgtMjguOS01Mi4yLTMwLjgtNTMuMS0xMy43LTIyLTMuNi0xMy4yYy0xLjMtNS40LTIuMi0xMC0yLjItMTUuNWwxNS45LTIxLjYgOC44LTIuOCAyMS4yIDIuOCA4LjkgNy44IDEzLjIgMzAuMiAyMS40IDQ3LjUgMzMuMiA2NC42IDkuNyAxOS4yIDUuMiAxNy44IDEuOSA1LjQgMy40IDAgMC0zLjEgMi43LTM2LjQgNS00NC43IDQuOS01Ny41IDEuNy0xNi4yIDgtMTkuNCAxNS45LTEwLjUgMTIuNCA1LjkgMTAuMiAxNC43LTEuNCA5LjUtNi4xIDM5LjUtMTEuOSA2MS45LTcuOCA0MS41IDQuNSAwIDUuMi01LjIgMjEtMjcuOCAzNS4yLTQ0LjEgMTUuNS0xNy41IDE4LjEtMTkuMyAxMS42LTkuMiAyMiAwIDE2LjIgMjQuMS03LjMgMjQuOS0yMi43IDI4LjctMTguOCAyNC40LTI3IDM2LjMtMTYuOCAyOSAxLjYgMi4zIDQtLjQgNjAuOS0xMyAzMi45LTUuOSAzOS4zLTYuNyAxNy44IDguMyAxLjkgOC40LTcgMTcuMi00MiAxMC40LTQ5LjIgOS44LTczLjMgMTcuMy0uOSAuNyAxIDEuMyAzMyAzLjEgMTQuMSAuOCAzNC42IDAgNjQuNCA0LjggMTYuOCAxMS4xIDEwLjEgMTMuNi0xLjcgMTAuNC0yNS45IDEzLjJjLTE1LjUtMy43LTU0LjQtMTIuOS0xMTYuNi0yNy43bC0yOC03LTMuOSAwIDAgMi4zIDIzLjMgMjIuOCA0Mi43IDM4LjYgNTMuNSA0OS44IDIuNyAxMi4zLTYuOSA5LjctNy4zLTEtNDctMzUuNC0xOC4xLTE1LjktNDEuMS0zNC42LTIuNyAwIDAgMy42IDkuNSAxMy45IDUwIDc1LjIgMi42IDIzLTMuNiA3LjUtMTMgNC41LTE0LjItMi42LTI5LjMtNDEuMS0zMC4yLTQ2LjMtMjQuNC00MS41LTMgMS43LTE0LjQgMTU0LjgtNi43IDcuOS0xNS41IDUuOS0xMy05LjgtNi45LTE1LjkgNi45LTMxLjUgOC4zLTQxLjEgNi43LTMyLjcgNi4xLTQwLjYgMy42LTEzLjUtLjItLjktMyAuNC0zMC42IDQyLTQ2LjUgNjIuOS0zNi44IDM5LjQtOC44IDMuNS0xNS4zLTcuOSAxLjQtMTQuMSA4LjUtMTIuNiA1MC45LTY0LjggMzAuNy00MC4yIDE5LjgtMjMuMi0uMS0zLjQtMS4yIDAtMTM1LjMgODcuOC0yNC4xIDMuMS0xMC40LTkuNyAxLjMtMTUuOSA0LjktNS4yIDQwLjctMjgtLjEgLjEgMCAuMXoiXX0sVlR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob3BpZnkiLGljb246WzQ0OCw1MTIsW10sImUwNTciLCJNMzg4LjUgMTA0LjFjLS4yLTEuMS0uNy0yLjEtMS41LTIuOHMtMS44LTEuMi0yLjktMS4yYy0yIDAtMzcuMi0uOC0zNy4yLS44cy0yMS42LTIwLjgtMjkuNi0yOC44bDAgNDMyLjcgMTI1LjctMzEuMnMtNTQtMzY1LjUtNTQuNC0zNjcuOXpNMjg4LjkgNzAuNWMtMS45LTYuMS00LjMtMTEuOS03LjItMTcuNi0xMC40LTIwLTI2LTMwLjktNDQuNC0zMC45LTEuMyAwLTIuNyAuMS00IC40LS40LS44LTEuMi0xLjItMS42LTItOC04LjgtMTguNC0xMi44LTMwLjgtMTIuNC0yNCAuOC00OCAxOC02Ny4yIDQ4LjgtMTMuNiAyMS42LTI0IDQ4LjgtMjYuOCA3MC4xLTI3LjYgOC40LTQ2LjggMTQuNC00Ny4yIDE0LjgtMTQgNC40LTE0LjQgNC44LTE2IDE4LTEuMiAxMC0zOCAyOTEuOC0zOCAyOTEuOGwzMDIuNiA1Mi41IDAtNDM4LjNjLTEuNSAuMS0yLjkgLjItNC40IC40IDAgMC01LjYgMS42LTE0LjggNC40ek0yMzMuNiA4Ny43Yy0xNiA0LjgtMzMuNiAxMC40LTUwLjggMTUuNiA0LjgtMTguOCAxNC40LTM3LjYgMjUuNi01MCA0LjQtNC40IDEwLjQtOS42IDE3LjItMTIuOCA2LjggMTQuNCA4LjQgMzQgOCA0Ny4yek0yMDAuOCAyNC40YzUtLjIgMTAgMS4xIDE0LjQgMy42LTYuNCAzLjItMTIuOCA4LjQtMTguOCAxNC40LTE1LjIgMTYuNC0yNi44IDQyLTMxLjYgNjYuNS0xNC40IDQuNC0yOC44IDguOC00MiAxMi44IDguOC0zOC40IDQxLjItOTYuNCA3OC05Ny4yek0xNTQuNCAyNDQuNmMxLjYgMjUuNiA2OS4yIDMxLjIgNzMuMiA5MS43IDIuOCA0Ny42LTI1LjIgODAuMS02NS42IDgyLjUtNDguOCAzLjItNzUuNi0yNS42LTc1LjYtMjUuNmwxMC40LTQ0czI2LjggMjAuNCA0OC40IDE4LjhjMTQtLjggMTkuMi0xMi40IDE4LjgtMjAuNC0yLTMzLjYtNTcuMi0zMS42LTYwLjgtODYuOS0zLjItNDYuNCAyNy4yLTkzLjMgOTQuNS05Ny43IDI2LTEuNiAzOS4yIDQuOCAzOS4yIDQuOGwtMTUuMiA1Ny42cy0xNy4yLTgtMzcuNi02LjRjLTI5LjYgMi0zMCAyMC44LTI5LjYgMjUuNnpNMjQ5LjYgODIuOWMwLTEyLTEuNi0yOS4yLTcuMi00My42IDE4LjQgMy42IDI3LjIgMjQgMzEuMiAzNi40LTcuMiAyLTE1LjIgNC40LTI0IDcuMnoiXX0sTzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1yZWRkaXQiLGljb246WzQ0OCw1MTIsWyJyZWRkaXQtc3F1YXJlIl0sImYxYTIiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0zMDUuOSAxNjYuNGMyMC42IDAgMzcuMy0xNi43IDM3LjMtMzcuM3MtMTYuNy0zNy4zLTM3LjMtMzcuM2MtMTggMC0zMy4xIDEyLjgtMzYuNiAyOS44LTMwLjIgMy4yLTUzLjggMjguOC01My44IDU5LjlsMCAuMmMtMzIuOCAxLjQtNjIuOCAxMC43LTg2LjYgMjUuNS04LjgtNi44LTE5LjktMTAuOS0zMi0xMC45LTI4LjkgMC01Mi4zIDIzLjQtNTIuMyA1Mi4zIDAgMjEgMTIuMyAzOSAzMC4xIDQ3LjQgMS43IDYwLjcgNjcuOSAxMDkuNiAxNDkuMyAxMDkuNnMxNDcuNi00OC45IDE0OS4zLTEwOS43YzE3LjctOC40IDI5LjktMjYuNCAyOS45LTQ3LjMgMC0yOC45LTIzLjQtNTIuMy01Mi4zLTUyLjMtMTIgMC0yMyA0LTMxLjkgMTAuOC0yNC0xNC45LTU0LjMtMjQuMi04Ny41LTI1LjRsMC0uMWMwLTIyLjIgMTYuNS00MC43IDM3LjktNDMuNyAzLjkgMTYuNSAxOC43IDI4LjcgMzYuMyAyOC43bC4yLS4yek0xNTUgMjQ4LjFjMTQuNiAwIDI1LjggMTUuNCAyNSAzNC40cy0xMS44IDI1LjktMjYuNSAyNS45LTI3LjUtNy43LTI2LjYtMjYuNyAxMy41LTMzLjUgMjguMS0zMy41bDAtLjF6bTE2Ni40IDMzLjVjLjkgMTktMTIgMjYuNy0yNi42IDI2LjdzLTI1LjYtNi45LTI2LjUtMjUuOSAxMC4zLTM0LjQgMjUtMzQuNCAyNy4zIDE0LjYgMjguMSAzMy41bDAgLjF6bS00Mi4xIDQ5LjZjLTkgMjEuNS0zMC4zIDM2LjctNTUuMSAzNi43cy00Ni4xLTE1LjEtNTUuMS0zNi43Yy0xLjEtMi42IC43LTUuNCAzLjQtNS43IDE2LjEtMS42IDMzLjUtMi41IDUxLjctMi41czM1LjYgLjkgNTEuNyAyLjVjMi43IC4zIDQuNSAzLjEgMy40IDUuN3oiXX0sVVR0PU84ZSxXVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYyIsaWNvbjpbNTEyLDUxMixbXSwiZjRlOCIsIk0yNTUuNiA4QzM5NS40IDggNTA0IDExNS45IDUwNCAyNTYgNTA0IDQwMy4yIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjEgNTA0IDggMzkzLjIgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6TTYzLjggMTg5LjFjLTcuNCAyMC40LTExLjEgNDIuNy0xMS4xIDY2LjkgMCAxMTAuOSA5Mi4xIDIwMi40IDIwMy43IDIwMi40IDEyMi40IDAgMTc3LjItMTAxLjggMTc4LjUtMTA0LjFsLTkzLjQtNDEuNmMtNy43IDM3LjEtNDEuMiA1My02OC4yIDU1LjRsMCAzOC4xLTI4LjggMCAwLTM4LjJjLTI3LjUtLjMtNTIuNi0xMC4yLTc1LjMtMjkuN2wzNC4xLTM0LjVjMzEuNyAyOS40IDg2LjQgMzEuOCA4Ni40LTIuMiAwLTYuMi0yLjItMTEuMi02LjYtMTUuMS0xNC4yLTYtMS44LS4xLTIxOS4zLTk3LjR6TTI1Ni40IDUyLjNDMjE4IDUyLjMgMTQ0IDYxIDg1LjkgMTQ1LjNsOTQuOCA0Mi41YzEwLTMxLjMgNDAuNC00Mi45IDYzLjgtNDQuM2wwLTM4LjEgMjguOCAwIDAgMzguMWMyMi43IDEuMiA0My40IDguOSA2MiAyM0wzMDMgMTk5LjdjLTQyLjctMjkuOS04My41LTgtNzAgMTEuMSA1My40IDI0LjEgNDMuOCAxOS44IDkzIDQxLjZsMTI3LjEgNTYuN2M0LjEtMTcuNCA2LjItMzUuMSA2LjItNTMuMSAwLTU3LTE5LjgtMTA1LTU5LjMtMTQzLjktMzkuMy0zOS45LTg3LjItNTkuOC0xNDMuNi01OS44eiJdfSxHVHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtcmVwdWJsaWMiLGljb246WzUxMiw1MTIsW10sImY1MGMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMSAwIDQ5NiAyNDggMjQ4IDAgMSAxIDAtNDk2em0wIDE2LjVhMjMxLjUgMjMxLjUgMCAxIDAgMCA0NjIuOSAyMzEuNSAyMzEuNSAwIDEgMCAwLTQ2Mi45em0yNy42IDIxLjhsMCAyNC42YzMwLjMgNC41IDU5IDE2LjMgODMuNiAzNC41bDE3LjQtMTcuNGMtMjguNy0yMi4xLTYzLjMtMzYuOS0xMDEtNDEuOHptLTU1LjQgLjFjLTM3LjYgNC45LTcyLjIgMTkuOC0xMDAuOSA0MS45bDE3LjMgMTcuNCAuMSAwYzI0LjEtMTcuOCA1Mi42LTMwLjEgODMuNS0zNC43bDAtMjQuNXptMTIuMiA1MC4ybDAgODIuOWMtMTAgMi0xOS40IDUuOS0yNy43IDExLjRsLTU4LjYtNTguNi0yMS45IDIxLjkgNTguNyA1OC43Yy01LjUgOC4yLTkuNCAxNy42LTExLjUgMjcuNmwtODIuOSAwIDAgMzEgODIuOSAwYzIgMTAgNiAxOS4zIDExLjUgMjcuNWwtNTguNyA1OC43IDIxLjkgMjEuOSA1OC42LTU4LjZjOC40IDUuNiAxNy44IDkuNSAyNy43IDExLjVsMCA4Mi45IDMxIDAgMC04Mi45YzEwLTIgMTkuNC02LjEgMjcuNi0xMS41bDU4LjcgNTguNyAyMS45LTIxLjktNTguNy01OC43YzUuNS04LjIgOS41LTE3LjUgMTEuNS0yNy41bDgyLjkgMCAwLTMxLTgyLjkgMGMtMi0xMC02LTE5LjQtMTEuNS0yNy42bDU4LjctNTguNy0yMS45LTIxLjktNTguNyA1OC43Yy04LjItNS41LTE3LjYtOS41LTI3LjYtMTEuNWwwLTgyLjktMzEgMHptMTgzLjIgMzAuN2wtMTcuNCAxNy40YzE4LjMgMjQuNiAzMC4yIDUzLjQgMzQuNyA4My43bDI0LjYgMGMtNS0zNy43LTE5LjgtNzIuMy00MS45LTEwMXptLTMzNS42IC4xYy0yMi4xIDI4LjctMzYuOSA2My4zLTQxLjggMTAwLjlsMjQuNiAwYzQuNi0zMSAxNi44LTU5LjQgMzQuNi04My41TDg4LjIgMTI3LjR6TTQ2LjMgMjgzLjdjNC45IDM3LjYgMTkuNyA3Mi4yIDQxLjggMTAwLjlsMTcuNC0xNy40Qzg3LjcgMzQzLjEgNzUuNiAzMTQuNiA3MSAyODMuN2wtMjQuNiAwIDAgMHptMzk0LjcgMGMtNC42IDMxLTE2LjggNTkuNS0zNC43IDgzLjZsMTcuNCAxNy40YzIyLjEtMjguNyAzNy02My4zIDQxLjktMTAxbC0yNC42IDB6TTE0NC43IDQwNi40bC0xNy40IDE3LjRjMjguNyAyMi4xIDYzLjMgMzcgMTAxIDQxLjlsMC0yNC42Yy0zMS00LjYtNTkuNS0xNi44LTgzLjYtMzQuNnptMjIyLjUgMGMtMjQuMSAxNy44LTUyLjYgMzAuMS04My42IDM0LjdsMCAyNC42YzM3LjctNC45IDcyLjItMTkuOCAxMDEtNDEuOGwtMTcuMy0xNy40LS4xIDB6Il19LENiPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhY2Vib29rIixpY29uOls1MTIsNTEyLFs2MmUzXSwiZjA5YSIsIk01MTIgMjU2QzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZDMCAzNzYgODIuNyA0NzYuOCAxOTQuMiA1MDQuNWwwLTE3MC4zLTUyLjggMCAwLTc4LjIgNTIuOCAwIDAtMzMuN2MwLTg3LjEgMzkuNC0xMjcuNSAxMjUtMTI3LjUgMTYuMiAwIDQ0LjIgMy4yIDU1LjcgNi40bDAgNzAuOGMtNi0uNi0xNi41LTEtMjkuNi0xLTQyIDAtNTguMiAxNS45LTU4LjIgNTcuMmwwIDI3LjggODMuNiAwLTE0LjQgNzguMi02OS4zIDAgMCAxNzUuOUM0MTMuOCA0OTQuOCA1MTIgMzg2LjkgNTEyIDI1NnoiXX0sS1R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGxhYiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5NiIsIk01MDQgMjA0LjZsLS43LTEuOC02OS43LTE4MS44Yy0xLjQtMy42LTMuOS02LjYtNy4yLTguNi0yLjQtMS42LTUuMS0yLjUtOC0yLjhzLTUuNyAuMS04LjQgMS4xLTUuMSAyLjctNy4xIDQuOGMtMS45IDIuMS0zLjMgNC43LTQuMSA3LjRsLTQ3IDE0NC0xOTAuNSAwLTQ3LjEtMTQ0Yy0uOC0yLjgtMi4yLTUuMy00LjEtNy40LTItMi4xLTQuNC0zLjctNy4xLTQuOC0yLjYtMS01LjUtMS40LTguNC0xLjFzLTUuNiAxLjItOCAyLjhjLTMuMiAyLTUuOCA1LjEtNy4yIDguNkw5LjggMjAyLjggOSAyMDQuNmMtMTAgMjYuMi0xMS4zIDU1LTMuNSA4MiA3LjcgMjYuOSAyNCA1MC43IDQ2LjQgNjcuNmwuMyAuMiAuNiAuNCAxMDYgNzkuNWMzOC41IDI5LjEgNjYuNyA1MC4zIDg0LjYgNjMuOSAzLjcgMS45IDguMyA0LjMgMTMgNC4zczkuMy0yLjQgMTMtNC4zYzE3LjktMTMuNSA0Ni4xLTM0LjkgODQuNi02My45bDEwNi43LTc5LjkgLjMtLjNjMjIuNC0xNi45IDM4LjctNDAuNiA0NS42LTY3LjUgOC42LTI3IDcuNC01NS44LTIuNi04MnoiXX0sWVR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InFxIixpY29uOls0NDgsNTEyLFtdLCJmMWQ2IiwiTTQzNC4xIDQyMC40Yy0xMS41IDEuNC00NC45LTUyLjctNDQuOS01Mi43IDAgMzEuMy0xNi4xIDcyLjItNTEgMTAxLjggMTYuOCA1LjIgNTQuOCAxOS4yIDQ1LjggMzQuNC03LjMgMTIuMy0xMjUuNSA3LjktMTU5LjYgNC0zNC4xIDMuOC0xNTIuMyA4LjMtMTU5LjYtNC05LTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNC45LTI5LjUtNTEuMS03MC40LTUxLjEtMTAxLjggMCAwLTMzLjMgNTQuMS00NC45IDUyLjctNS40LS42LTEyLjQtMjkuNiA5LjMtOTkuNyAxMC4zLTMzIDIyLTYwLjUgNDAuMS0xMDUuOC0zLjEtMTE2LjkgNDUuMi0yMTUgMTYwLjMtMjE1IDExMy43IDAgMTYzLjIgOTYuMSAxNjAuMyAyMTUgMTguMSA0NS4yIDI5LjkgNzIuOSA0MC4xIDEwNS44IDIxLjggNzAuMSAxNC43IDk5LjEgOS4zIDk5Ljd6Il19LFpUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHJpcGUiLGljb246WzY0MCw1MTIsW10sImY0MjkiLCJNMTY1IDE0NC43bC00My4zIDkuMi0uMiAxNDIuNGMwIDI2LjMgMTkuOCA0My4zIDQ2LjEgNDMuMyAxNC42IDAgMjUuMy0yLjcgMzEuMi01LjlsMC0zMy44Yy01LjcgMi4zLTMzLjcgMTAuNS0zMy43LTE1LjdsMC02My4yIDMzLjcgMCAwLTM3LjgtMzMuNyAwLS4xLTM4LjV6bTg5LjEgNTEuNmwtMi43LTEzLjEtMzguNCAwIDAgMTUzLjIgNDQuMyAwIDAtMTAzLjFjMTAuNS0xMy44IDI4LjItMTEuMSAzMy45LTkuM2wwLTQwLjhjLTYtMi4xLTI2LjctNi0zNy4xIDEzLjF6TTM0Ni40IDEyNGwtNDQuNiA5LjUgMCAzNi4yIDQ0LjYtOS41IDAtMzYuMnpNNDQuOSAyMjguM2MwLTYuOSA1LjgtOS42IDE1LjEtOS43IDEzLjUgMCAzMC43IDQuMSA0NC4yIDExLjRsMC00MS44Yy0xNC43LTUuOC0yOS40LTguMS00NC4xLTguMS0zNiAwLTYwIDE4LjgtNjAgNTAuMiAwIDQ5LjIgNjcuNSA0MS4yIDY3LjUgNjIuNCAwIDguMi03LjEgMTAuOS0xNyAxMC45LTE0LjcgMC0zMy43LTYuMS00OC42LTE0LjJsMCA0MGMxNi41IDcuMSAzMy4yIDEwLjEgNDguNSAxMC4xIDM2LjkgMCA2Mi4zLTE1LjggNjIuMy00Ny44IDAtNTIuOS02Ny45LTQzLjQtNjcuOS02My40ek02NDAgMjYxLjZjMC00NS41LTIyLTgxLjQtNjQuMi04MS40cy02Ny45IDM1LjktNjcuOSA4MS4xYzAgNTMuNSAzMC4zIDc4LjIgNzMuNSA3OC4yIDIxLjIgMCAzNy4xLTQuOCA0OS4yLTExLjVsMC0zMy40Yy0xMi4xIDYuMS0yNiA5LjgtNDMuNiA5LjgtMTcuMyAwLTMyLjUtNi4xLTM0LjUtMjYuOWw4Ni45IDBjLjItMi4zIC42LTExLjYgLjYtMTUuOXptLTg3LjktMTYuOGMwLTIwIDEyLjMtMjguNCAyMy40LTI4LjQgMTAuOSAwIDIyLjUgOC40IDIyLjUgMjguNGwtNDUuOSAwek00MzkuMiAxODAuMmMtMTcuNCAwLTI4LjYgOC4yLTM0LjggMTMuOWwtMi4zLTExLTM5LjEgMCAwIDIwNC44IDQ0LjQtOS40IC4xLTUwLjJjNi40IDQuNyAxNS45IDExLjIgMzEuNCAxMS4yIDMxLjggMCA2MC44LTIzLjIgNjAuOC03OS42IC4xLTUxLjYtMjkuMy03OS43LTYwLjUtNzkuN3pNNDI4LjYgMzAyLjdjLTEwLjQgMC0xNi42LTMuOC0yMC45LTguNGwtLjMtNjZjNC42LTUuMSAxMS04LjggMjEuMi04LjggMTYuMiAwIDI3LjQgMTguMiAyNy40IDQxLjQgLjEgMjMuOS0xMC45IDQxLjgtMjcuNCA0MS44ek0zMDEuOSAzMzYuNGw0NC42IDAgMC0xNTMuMi00NC42IDAgMCAxNTMuMnoiXX0sWFR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhaWx5bW90aW9uIixpY29uOls0NDgsNTEyLFtdLCJlMDUyIiwiTTI5OC45IDI2N2MtNy40LTQuMi0xNS44LTYuMy0yNC40LTYuMi0xMy4yIDAtMjQuNCA0LjQtMzMuNCAxMy4zcy0xMy42IDIwLTEzLjYgMzMuNGMwIDE0LjEgNC40IDI1LjYgMTMuMyAzNC42czIwIDEzLjQgMzMuNCAxMy40YzEzLjcgMCAyNS00LjYgMzQuMS0xMy44UzMyMiAzMjEuMSAzMjIgMzA3LjVjMC04LjItMi4xLTE2LjMtNi4xLTIzLjUtNC03LjEtOS44LTEzLTE3LTE3ek0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zNzQuNyA0MDUuM2wtNTMuMSAwIDAtMjMuOS0uNyAwYy0xMC41IDE3LjUtMjkuMSAyNi4yLTU1LjggMjYuMi0xOC40IDAtMzQuNy00LjQtNDguOS0xMy4xLTE0LjEtOC42LTI1LjUtMjEtMzIuOS0zNS44LTcuNy0xNS4xLTExLjYtMzIuMS0xMS42LTUwLjkgMC0xOC40IDMuOS0zNS4xIDExLjgtNTAuMiA3LjUtMTQuNyAxOC45LTI3LjEgMzIuOS0zNS44IDE0LjEtOC43IDMwLTEzLjEgNDcuNy0xMy4xIDEwLjItLjEgMjAuMiAxLjYgMjkuNyA1LjIgOC45IDMuNSAxNy4yIDkuMSAyNSAxN2wwLTc3LjkgNTUuOC0xMi4xIDAgMjY0LjR6Il19LFFUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiNiIsIk01MDQgMjU2YzAgMTM3LTExMS4yIDI0OC0yNDguNCAyNDgtMTEzLjggMC0yMDkuNi03Ni4zLTIzOS0xODAuNGw5NS4yIDM5LjNjNi40IDMyLjEgMzQuOSA1Ni40IDY4LjkgNTYuNCAzOS4yIDAgNzEuOS0zMi40IDcwLjItNzMuNWw4NC41LTYwLjJjNTIuMSAxLjMgOTUuOC00MC45IDk1LjgtOTMuNSAwLTUxLjYtNDItOTMuNS05My43LTkzLjVzLTkzLjcgNDItOTMuNyA5My41bDAgMS4yLTU5LjIgODUuN2MtMTUuNS0uOS0zMC43IDMuNC00My41IDEyLjFMOCAyMzYuMUMxOC4yIDEwOC40IDEyNS4xIDggMjU1LjYgOCAzOTIuOCA4IDUwNCAxMTkgNTA0IDI1NnpNMTYzLjcgMzg0LjNsLTMwLjUtMTIuNmM1LjYgMTEuNiAxNS4zIDIwLjggMjcuMiAyNS44IDI2LjkgMTEuMiA1Ny44LTEuNiA2OS0yOC40IDUuNC0xMyA1LjUtMjcuMyAuMS00MC4zUzIxNCAzMDUuNiAyMDEgMzAwLjJjLTEyLjktNS40LTI2LjctNS4yLTM4LjktLjZsMzEuNSAxM2MxOS44IDguMiAyOS4yIDMwLjkgMjAuOSA1MC43LTguMyAxOS45LTMxIDI5LjItNTAuOCAyMXpNMzM3LjUgMTI5LjhhNjIuMyA2Mi4zIDAgMSAxIDAgMTI0LjYgNjIuMyA2Mi4zIDAgMSAxIDAtMTI0LjZ6bS4xIDEwOWE0Ni44IDQ2LjggMCAxIDAgMC05My42IDQ2LjggNDYuOCAwIDEgMCAwIDkzLjZ6Il19LEpUdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ZW5tby12IixpY29uOls1MTIsNTEyLFtdLCJlODViIiwiTTQ2Ni41IDE0LjhjMTcuNCAyOC43IDI1LjMgNTguMiAyNS4zIDk1LjUgMCAxMTktMTAxLjkgMjczLjUtMTg0LjcgMzgyLjFsLTE4OC45IDAtNzUuOC00NTEuNSAxNjUuNC0xNS43IDQwLjEgMzIxLjNjMzcuNC02MC44IDgzLjYtMTU2LjMgODMuNi0yMjEuNCAwLTM1LjYtNi4xLTU5LjktMTUuNy03OS45TDQ2Ni41IDE0Ljh6Il19LEY4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbmFwY2hhdCIsaWNvbjpbNTEyLDUxMixbNjIxMjQsInNuYXBjaGF0LWdob3N0Il0sImYyYWIiLCJNNDk3LjEgMzY2LjZjLTMuNC05LjItOS44LTE0LjEtMTcuMS0xOC4yLTEuNC0uOC0yLjYtMS41LTMuNy0xLjktMi4yLTEuMS00LjQtMi4yLTYuNi0zLjQtMjIuOC0xMi4xLTQwLjYtMjcuMy01My00NS40LTMuNS01LjEtNi42LTEwLjUtOS4xLTE2LjEtMS4xLTMtMS00LjctLjItNi4zIC44LTEuMiAxLjctMi4yIDIuOS0zIDMuOS0yLjYgOC01LjIgMTAuNy03IDQuOS0zLjIgOC44LTUuNyAxMS4yLTcuNCA5LjQtNi41IDE1LjktMTMuNSAyMC0yMS4zIDIuOS01LjQgNC41LTExLjMgNC45LTE3LjRzLS42LTEyLjItMi44LTE3LjhjLTYuMi0xNi4zLTIxLjYtMjYuNC00MC4zLTI2LjQtMy45IDAtNy45IC40LTExLjcgMS4yLTEgLjItMi4xIC41LTMuMSAuNyAuMi0xMS4yLS4xLTIyLjktMS4xLTM0LjUtMy41LTQwLjgtMTcuOC02Mi4xLTMyLjctNzkuMi05LjUtMTAuNy0yMC43LTE5LjctMzMuMi0yNi43LTIyLjYtMTIuOS00OC4yLTE5LjQtNzYuMS0xOS40cy01My40IDYuNS03NiAxOS40Yy0xMi41IDctMjMuNyAxNi4xLTMzLjMgMjYuOC0xNC45IDE3LTI5LjIgMzguNC0zMi43IDc5LjItMSAxMS42LTEuMiAyMy40LTEuMSAzNC41LTEtLjMtMi0uNS0zLjEtLjctMy45LS44LTcuOC0xLjItMTEuNy0xLjItMTguNyAwLTM0LjEgMTAuMS00MC4zIDI2LjQtMi4yIDUuNy0zLjIgMTEuOC0yLjggMTcuOHMyIDEyIDQuOSAxNy40YzQuMSA3LjggMTAuNyAxNC43IDIwIDIxLjMgMi41IDEuNyA2LjQgNC4yIDExLjIgNy40IDIuNiAxLjcgNi41IDQuMiAxMC4zIDYuNyAxLjMgLjkgMi40IDIgMy4zIDMuMyAuOCAxLjYgLjggMy40LS40IDYuNi0yLjUgNS41LTUuNSAxMC44LTguOSAxNS44LTEyLjEgMTcuNy0yOS40IDMyLjYtNTEuNCA0NC42LTExLjcgNi4yLTIzLjkgMTAuMy0yOSAyNC4zLTMuOSAxMC41LTEuMyAyMi41IDguNSAzMi42IDMuNiAzLjggNy44IDYuOSAxMi40IDkuNCA5LjYgNS4zIDE5LjggOS4zIDMwLjMgMTIuMSAyLjIgLjYgNC4zIDEuNSA2LjEgMi43IDMuNiAzLjEgMy4xIDcuOSA3LjggMTQuOCAyLjQgMy42IDUuNCA2LjcgOSA5LjEgMTAgNi45IDIxLjMgNy40IDMzLjIgNy44IDEwLjggLjQgMjMgLjkgMzYuOSA1LjUgNS44IDEuOSAxMS44IDUuNiAxOC43IDkuOSAxNi43IDEwLjMgMzkuNiAyNC4zIDc3LjggMjQuM3M2MS4zLTE0LjEgNzguMS0yNC40YzYuOS00LjIgMTIuOS03LjkgMTguNS05LjggMTMuOS00LjYgMjYuMi01LjEgMzYuOS01LjUgMTEuOS0uNSAyMy4yLS45IDMzLjItNy44IDQuMi0yLjkgNy43LTYuNyAxMC4yLTExLjIgMy40LTUuOCAzLjQtOS45IDYuNi0xMi44IDEuOC0xLjIgMy43LTIuMSA1LjgtMi42IDEwLjctMi44IDIxLTYuOSAzMC44LTEyLjIgNC45LTIuNiA5LjMtNi4xIDEzLTEwLjJsLjEtLjJjOS4yLTkuOSAxMS41LTIxLjUgNy44LTMxLjh6bS0zNCAxOC4zYy0yMC43IDExLjUtMzQuNSAxMC4yLTQ1LjMgMTcuMS05LjEgNS45LTMuNyAxOC41LTEwLjMgMjMuMS04LjEgNS42LTMyLjItLjQtNjMuMiA5LjktMjUuNiA4LjUtNDIgMzIuOC04OCAzMi44cy02Mi0yNC4zLTg4LjEtMzIuOWMtMzEtMTAuMy01NS4xLTQuMi02My4yLTkuOS02LjYtNC42LTEuMi0xNy4yLTEwLjMtMjMuMS0xMC43LTYuOS0yNC41LTUuNy00NS4zLTE3LjEtMTMuMi03LjMtNS43LTExLjgtMS4zLTEzLjkgNzUuMS0zNi40IDg3LjEtOTIuNiA4Ny43LTk2LjcgLjYtNSAxLjQtOS00LjItMTQuMS01LjQtNS0yOS4yLTE5LjctMzUuOC0yNC4zLTEwLjktNy42LTE1LjctMTUuMy0xMi4yLTI0LjYgMi41LTYuNSA4LjUtOC45IDE0LjktOC45IDIgMCA0IC4yIDYgLjcgMTIgMi42IDIzLjcgOC42IDMwLjQgMTAuMiAuOCAuMiAxLjYgLjMgMi41IC4zIDMuNiAwIDQuOS0xLjggNC42LTUuOS0uOC0xMy4xLTIuNi0zOC43LS42LTYyLjYgMi44LTMyLjkgMTMuNC00OS4yIDI2LTYzLjYgNi4xLTYuOSAzNC41LTM3IDg4LjktMzdTMzM5IDc0LjIgMzQ1IDgxLjFjMTIuNiAxNC40IDIzLjIgMzAuNyAyNiA2My42IDIuMSAyMy45IC4zIDQ5LjUtLjYgNjIuNi0uMyA0LjMgMSA1LjkgNC42IDUuOSAuOCAwIDEuNy0uMSAyLjUtLjMgNi43LTEuNiAxOC40LTcuNiAzMC40LTEwLjIgMi0uNCA0LS43IDYtLjcgNi40IDAgMTIuNCAyLjUgMTQuOSA4LjkgMy41IDkuNC0xLjIgMTctMTIuMiAyNC42LTYuNiA0LjYtMzAuNCAxOS4zLTM1LjggMjQuMy01LjYgNS4xLTQuOCA5LjEtNC4yIDE0LjIgLjUgNC4yIDEyLjUgNjAuNCA4Ny43IDk2LjcgNC40IDIuMiAxMS45IDYuNy0xLjMgMTQuMXoiXX0sZSR0PUY4ZSx0JHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtc2VuYXRlIixpY29uOls1MTIsNTEyLFtdLCJmNTBkIiwiTTI0OS45IDMzLjVsMCAyNi4xYy0xMy42IDIwLjYtMjMuOSAxMDguNi0yNC41IDIxNS4zIDExLjctMTUuNiAxOS4xLTMzLjMgMTkuMS00OC4ybDAtMTYuOWMwLTUuMyAuOC0xMC41IDIuMi0xNS42IC42LTIuMSAxLjQtNC4xIDIuNi01LjhzMy40LTMuOCA2LjctMy44IDUuNCAyLjEgNi43IDMuOGMxLjIgMS44IDIgMy43IDIuNiA1LjggMS40IDUuMSAyLjIgMTAuMyAyLjIgMTUuNmwwIDE2LjljMCAxNC45IDcuNCAzMi42IDE5LjEgNDguMi0uNi0xMDYuOC0xMC45LTE5NC43LTI0LjUtMjE1LjNsMC0yNi4xLTEyLjMgMHpNMjIzLjUgMTgxLjNjLTkuNSAyLjEtMTguNyA1LjItMjcuNSA5LjEgOC45IDE2LjEgOS44IDMyLjYgMS43IDM3LjMtOCA0LjYtMjEuOC00LjItMzEuNC0xOS44LTExLjYgOC44LTIxLjkgMTkuMy0zMC42IDMxLjEgMTQuNyA5LjYgMjIuOSAyMi45IDE4LjMgMzAuNy00LjUgNy43LTIwIDcuMS0zNS41LTEtNS44IDEzLjItOS43IDI3LjUtMTEuNiA0Mi40IDkuNyAuMiAxOC43IDIuNCAyNi4yIDYgMTcuOC0uMyAzMi44LTIgNDAuNS00LjIgNS42LTI2LjQgMjMtNDguMiA0Ni4zLTU5LjUgLjctMjUuNiAxLjktNDkuNyAzLjUtNzIuMXptNjUgMGMxLjYgMjIuNCAyLjcgNDYuNSAzLjUgNzIuMSAyMy4zIDExLjMgNDAuOCAzMy4yIDQ2LjMgNTkuNSA3LjcgMi4zIDIyLjcgMy45IDQwLjUgNC4yIDcuNS0zLjcgMTYuNS01LjggMjYuMi02LTEuOS0xNC45LTUuOS0yOS4yLTExLjctNDIuNC0xNS40IDguMS0zMC45IDguNy0zNS41IDEtNC42LTcuNyAzLjYtMjEuMSAxOC4zLTMwLjctOC43LTExLjgtMTktMjIuMy0zMC42LTMxLjEtOS41IDE1LjYtMjMuNCAyNC40LTMxLjQgMTkuOC04LjEtNC42LTcuMi0yMS4yIDEuNy0zNy4zLTguOC0zLjktMTgtNy0yNy40LTkuMXpNMjU2IDE4OS45Yy0zLjIgMC01LjkgOC44LTYuMSAxOS45bDAgMCAwIDE2LjljMCA0MS40LTQ5IDk1LTkzLjUgOTUtNTIgMC0xMjIuOC0xLjQtMTU2LjQgMjkuMmwwIDIuNWM5LjQgMTcuMSAyMC42IDMzLjIgMzMuMiA0OCAxMi41LTIxLjEgNTEuNi00MSAxMDgtNDEuNCA0NS43IDEgNzkgMjAuMyA5MC44IDQwLjkgMCAwIDAgMCAwIC4xIDcuNyAyLjEgMTUuOCAzLjIgMjQgMy4yIDguMiAwIDE2LjQtMS4xIDI0LTMuMiAwIDAgMCAwIDAtLjEgMTEuNy0yMC41IDQ1LjEtMzkuOCA5MC44LTQwLjkgNTYuNCAuNCA5NS41IDIwLjMgMTA4IDQxLjQgMTIuNi0xNC44IDIzLjgtMzAuOSAzMy4yLTQ4bDAtMi41Yy0zMy42LTMwLjYtMTA0LjQtMjkuMi0xNTYuNC0yOS4yLTQ0LjUgMC05My41LTUzLjYtOTMuNS05NWwwLTE2LjktLjEgMGMtLjItMTEuMS0yLjktMTkuOS02LjEtMTkuOXptMCAxNzcuOWE0MC42IDQwLjYgMCAxIDEgMC04MS4zIDQwLjYgNDAuNiAwIDEgMSAwIDgxLjN6bTAtNzMuNmEzMyAzMyAwIDEgMCAwIDY1LjkgMzMgMzMgMCAxIDAgMC02NS45em0wIDU5LjhhMjYuOCAyNi44IDAgMSAxIDAtNTMuNiAyNi44IDI2LjggMCAxIDEgMCA1My42em0tMTE0LjggMTNjLTEwLjIgLjEtMjEuNiAuNC0zMC41IDEuNyAuNCA0LjQgMS41IDE4LjYgNy4xIDI5LjggOS4xLTIuNiAxOC40LTMuOSAyNy42LTMuOSA0MS4zIC45IDcxLjUgMzQuNCA3OC4zIDc0LjVsLjEgNC43YzEwLjQgMS45IDIxLjIgMi45IDMyLjIgMi45IDExIDAgMjEuOC0xIDMyLjItMi45bC4xLTQuN2M2LjgtNDAuMSAzNy03My41IDc4LjMtNzQuNSA5LjMgMCAxOC41IDEuMyAyNy42IDMuOSA1LjYtMTEuMSA2LjctMjUuMyA3LjEtMjkuOC04LjktMS4zLTIwLjMtMS42LTMwLjUtMS43LTE4LjggLjQtMzUuMiA0LjItNDguNiA5LjctMTIuNSAxNi0yOS4yIDMwLTQ5LjYgMzMuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjEgMC0uMiAuMS01LjIgMS4xLTEwLjYgMS42LTE2LjIgMS42LTUuNSAwLTEwLjktLjUtMTYuMi0xLjYtLjEgMC0uMSAwLS4yLS4xLS4xIDAtLjIgMC0uMyAwLTIwLjQtMy0zNy0xNy00OS42LTMzLjEtMTMuNC01LjUtMjkuOS05LjItNDguNi05Ljd6Il19LGEkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LWZyYW1ld29yayIsaWNvbjpbNjQwLDUxMixbXSwiZjNkYyIsIk0yMTIuOSAzNDQuM2MzLjgtLjEgMjIuOC0xLjQgMjUuNi0yLjItMi40LTIuNi00My42LTEtNjgtNDkuNi00LjMtOC42LTcuNS0xNy42LTYuNC0yNy42IDIuOS0yNS41IDMyLjktMzAgNTItMTguNSAzNiAyMS42IDYzLjMgOTEuMyAxMTMuNyA5Ny41IDM3IDQuNSA4NC42LTE3IDEwOC4yLTQ1LjQtLjYtLjEtLjgtLjItMS0uMS0uNCAuMS0uOCAuMi0xLjEgLjMtMzMuMyAxMi4xLTk0LjMgOS43LTEzNC43LTE0LjgtMzcuNi0yMi44LTUzLjEtNTguNy01MS44LTc0LjYgMS44LTIxLjMgMjIuOS0yMy4yIDM1LjktMTkuNiAxNC40IDMuOSAyNC40IDE3LjYgMzguOSAyNy40IDE1LjYgMTAuNCAzMi45IDEzLjcgNTEuMyAxMC4zIDE0LjktMi43IDM0LjQtMTIuMyAzNi41LTE0LjUtMS4xLS4xLTEuOC0uMS0yLjUtLjItNi4yLS42LTEyLjQtLjgtMTguNS0xLjctMTExLjItMTYuNS0xMjguOS0xNjMuNi0yNTIuNS0xNzMuMS00NC4zLTMuNC05OS40IDguMS0xMzYuMyAzNS0uOCAuNi0xLjUgMS4yLTIuMiAxLjggLjEgLjIgLjEgLjMgLjIgLjUgLjggMCAxLjYtLjEgMi40LS4yIDYuMy0xIDEyLjUtLjggMTguNyAuMyAyMy44IDQuMyA0Ny43IDIzLjEgNTUuOSA3Ni41IDUuMyAzNC4zLS43IDUwLjggOCA4Ni4xIDE5IDc3LjEgOTEgMTA3LjYgMTI3LjcgMTA2LjR6TTc1LjMgNjQuOWMtLjktMS0uOS0xLjItMS4zLTIgMTIuMS0yLjYgMjQuMi00LjEgMzYuNi00LjgtMS4xIDE0LjctMjIuMiAyMS4zLTM1LjMgNi44ek0yNzIuMiA0MTUuNGMtNDIuOCAxLjItOTItMjYuNy0xMjMuNS02MS40LTQuNi01LTE2LjgtMjAuMi0xOC42LTIzLjRsLjQtLjRjNi42IDQuMSAyNS43IDE4LjYgNTQuOCAyNyAyNC4yIDcgNDguMSA2LjMgNzEuNi0zLjMgMjIuNy05LjMgNDEtLjUgNDMuMSAyLjktMTguNSAzLjgtMjAuMSA0LjQtMjQgNy45LTUuMSA0LjQtNC42IDExLjcgNyAxNy4yIDI2LjIgMTIuNCA2My0yLjggOTcuMiAyNS40IDIuNCAyIDguMSA3LjggMTAuMSAxMC43LS4xIC4yLS4zIC4zLS40IC41LTQuOC0xLjUtMTYuNC03LjUtNDAuMi05LjMtMjQuNy0yLTQ2LjMgNS4zLTc3LjUgNi4yek00NDcgMTYzLjRjMTYuNC01LjIgNDEuMy0xMy40IDY2LjUtMy4zIDE2LjEgNi41IDI2LjIgMTguNyAzMi4xIDM0LjYgMy41IDkuNCA1LjEgMTkuNyA1LjEgMjguNy0uMiAwLS40IDAtLjYgLjEtLjItLjQtLjQtLjktLjUtMS4zLTUtMjItMjkuOS00My44LTY3LjYtMjkuOS01MC4yIDE4LjYtMTMwLjQgOS43LTE3Ni45LTQ4LS43LS45LTIuNC0xLjctMS4zLTMuMiAuMS0uMiAyLjEgLjYgMyAxLjMgMTguMSAxMy40IDM4LjMgMjEuOSA2MC4zIDI2LjIgMzAuNSA2LjEgNTQuNiAyLjkgNzkuOS01LjJ6TTU0OS43IDI4MC45Yy0zMi40IC4yLTMzLjggNTAuMS0xMDMuNiA2NC40LTE4LjIgMy43LTM4LjcgNC42LTQ0LjkgNC4ybDAtLjRjMi44LTEuNSAxNC43LTIuNiAyOS43LTE2LjYgNy45LTcuMyAxNS4zLTE1LjEgMjIuOC0yMi45IDE5LjUtMjAuMiA0MS40LTQyLjIgODEuOS0zOSAyMy4xIDEuOCAyOS4zIDguMiAzNi4xIDEyLjcgLjMgLjIgLjQgLjUgLjcgLjktLjUgMC0uNyAuMS0uOSAwLTctMi43LTE0LjMtMy4zLTIxLjgtMy4zem0tMTIuMy0yNC4xYy0uMSAuMi0uMSAuNC0uMiAuNi0yOC45LTQuNC00OC03LjktNjguNSA0LTE3IDkuOS0zMS40IDIwLjUtNjIgMjQuNC0yNy4xIDMuNC00NS4xIDIuNC02Ni4xLTgtLjMtLjItLjYtLjQtMS0uNiAwLS4yIC4xLS4zIC4xLS41IDI0LjkgMy44IDM2LjQgNS4xIDU1LjUtNS44IDIyLjMtMTIuOSA0MC4xLTI2LjYgNzEuMy0zMSAyOS42LTQuMSA1MS4zIDIuNSA3MC45IDE2Ljl6TTI2OC42IDk3LjNjLS42LS42LTEuMS0xLjItMi4xLTIuMyA3LjYgMCAyOS43LTEuMiA1My40IDguNCAxOS43IDggMzIuMiAyMSA1MC4yIDMyLjkgMTEuMSA3LjMgMjMuNCA5LjMgMzYuNCA4LjEgNC4zLS40IDguNS0xLjIgMTIuOC0xLjcgLjQtLjEgLjkgMCAxLjUgLjMtLjYgLjQtMS4yIC45LTEuOCAxLjItOC4xIDQtMTYuNyA2LjMtMjUuNiA3LjEtMjYuMSAyLjYtNTAuMy0zLjctNzMuNC0xNS40LTE5LjMtOS45LTM2LjQtMjIuOS01MS40LTM4LjZ6TTY0MCAzMzUuN2MtMy41IDMuMS0yMi43IDExLjYtNDIuNyA1LjMtMTIuMy0zLjktMTkuNS0xNC45LTMxLjYtMjQuMS0xMC03LjYtMjAuOS03LjktMjguMS04LjQgLjYtLjggLjktMS4yIDEuMi0xLjQgMTQuOC05LjIgMzAuNS0xMi4yIDQ3LjMtNi41IDEyLjUgNC4yIDE5LjIgMTMuNSAzMC40IDI0LjIgMTAuOCAxMC40IDIxIDkuOSAyMy4xIDEwLjUgLjEtLjEgLjIgMCAuNCAuNHptLTIxMi41IDEzN2MyLjIgMS4yIDEuNiAxLjUgMS41IDItMTguNS0xLjQtMzMuOS03LjYtNDYuOC0yMi4yLTIxLjgtMjQuNy00MS43LTI3LjktNDguNi0yOS43IC41LS4yIC44LS40IDEuMS0uNCAxMy4xIC4xIDI2LjEgLjcgMzguOSAzLjkgMjUuMyA2LjQgMzUgMjUuNCA0MS42IDM1LjMgMy4yIDQuOCA3LjMgOC4zIDEyLjMgMTEuMXoiXX0scyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMyIsIk0yMTYuMyAxNTguNGwtNzkuMyAwYy00MC0xMC41LTEzMC41LTcuOC0xMzAuNSA3NC44IDAgMzAuMSAxNSA1MS4yIDM1IDYxLTI1LjEgMjMtMzcgMzMuOC0zNyA0OS4yIDAgMTEgNC41IDIxLjEgMTcuOSAyNi44LTE0LjMgMTMuNC0yMi40IDIzLjEtMjIuNCA0MS40IDAgMzIuMSAyOCA1MC44IDEwMS42IDUwLjggNzAuOCAwIDExMS44LTI2LjQgMTExLjgtNzMuMiAwLTU4LjctNDUuMi01Ni41LTE1MS42LTYzbDEzLjQtMjEuNmMyNy4zIDcuNiAxMTguNyAxMCAxMTguNy02Ny45IDAtMTguNy03LjctMzEuNy0xNS00MS4xbDM3LjQtMi44IDAtMzQuNXpNMTUyLjkgNDAwLjNjMCAzMi4xLTEwNC45IDMyLjEtMTA0LjkgMi40IDAtOC4xIDUuMy0xNSAxMC42LTIxLjUgNzcuNyA1LjMgOTQuMyAzLjQgOTQuMyAxOS4xek0xMDIuMSAyNjUuN2MtNTIuOCAwLTUwLjUtNzEuMiAxLjItNzEuMiA0OS41IDAgNTAuOCA3MS4yLTEuMiA3MS4yek0yMzUuNCAzNjYuMmwwLTMyLjFjMjYuNy0zLjcgMjcuMi0yIDI3LjItMTFsMC0xMTkuNWMwLTguNS0yLjEtNy40LTI3LjItMTYuM2w0LjUtMzIuOSA4NC4yIDAgMCAxNjguN2MwIDYuNSAuNCA3LjMgNi41IDguMWwyMC43IDIuOCAwIDMyLjEtMTE1LjkgMHptNTIuNS0yNDQuM2MtMjMuMiAwLTM2LjYtMTMuNC0zNi42LTM2LjZzMTMuNC0zNS44IDM2LjYtMzUuOGMyMy42IDAgMzcgMTIuNiAzNyAzNS44cy0xMy40IDM2LjYtMzcgMzYuNnpNNTEyIDM1MC41Yy0xNy41IDguNS00My4xIDE2LjMtNjYuMyAxNi4zLTQ4LjQgMC02Ni43LTE5LjUtNjYuNy02NS41bDAtMTA2LjVjMC01LjQgMS00LjEtMzEuNy00LjFsMC0zNi4yYzM1LjgtNC4xIDUwLTIyIDU0LjUtNjYuM2wzOC42IDBjMCA2NS44LTEuMyA2MS44IDMuMyA2MS44bDU3LjMgMCAwIDQwLjYtNjAuNiAwIDAgOTcuMWMwIDYuOS00LjkgNTEuNCA2MC42IDI2LjhsMTEgMzUuOHoiXX0saSR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wdGluLW1vbnN0ZXIiLGljb246WzU3Niw1MTIsW10sImYyM2MiLCJNNTcyLjggNDIxLjRjNS42LTkuNSA0LjctMTUuMi01LjQtMTEuNi0zLTQuOS03LTkuNS0xMS4xLTEzLjggMi45LTkuNy0uNy0xNC4yLTEwLjgtOS4yLTQuNi0zLjItMTAuMy02LjUtMTUuOS05LjIgMC0xNS4xLTExLjYtMTEuNi0xNy42LTUuNy0xMC40LTEuNS0xOC43LS4zLTI2LjggNS43IC4zLTYuNSAuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42bDAtMi44YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwLTY5LjYtNTkuNy0xNjcuNy01My44LTI0NC4yLTM3LjYgMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjggLjktMjMuOC01LjMtMjYuMi0yNS45LTEuMS0xMC41LTE0LjMtMTUuNC0yMi43LTkuNy0yOC4xIDE5LjktMzMuNSA3OS45LTEyLjIgMTAzLjUgMTAuOCAxMi4yIDM1LjEgMTcuMyA1NC45IDE3LjgtLjMgMS4xLS4zIDEuOS0uMyAyLjcgMTAuOCAuNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNCAuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMmwwIDE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMyAuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEgLjItMy43LS43LTcuMi0xLjctMTAuN3pNNDk5IDE2Ny40YzEuMS0zIDIuNC04LjQgMi40LTE0LjYgMC01LjkgNi44LTguMSAxNC4xLS44IDExLjEgMTEuNiAxNC45IDQwLjUgMTMuOCA1MS4xLTQuMS0xMy42LTEzLTI5LTMwLjMtMzUuN3ptLTQuNiA2LjdjMTkuNSA2LjIgMjguNiAyNy42IDI5LjcgNDguOS0xLjEgMi43LTMgNS40LTQuOSA3LjYtNS43IDUuOS0xNS40IDEwLTI2LjIgMTIuMiA0LjMtMjEuMyAuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMSAuNS04LjEgLjgtMTEuNiAuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNyAuMyA4LjEgLjMgMTEuOCAuM3pNNDcuNyAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xIC44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M2wwIC4zIDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTEwLjVhNzYuMSA3Ni4xIDAgMSAxIDAtMTUyLjIgNzYuMSA3Ni4xIDAgMSAxIDAgMTUyLjJ6bTExNS42IDIyLjFjLS4zIDE3LjgtNyA0OC45LTIzIDU3LTEzLjIgNi42LTYuNS03LjUtMTYuNS01OC4xIDEzLjMgLjMgMjYuNiAuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xbDAgLjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC41IDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjhsMCAuM2MxLjEgOC4zIDMuMyA1MS4yLTEuMyA1My43ek0xNzIgMjU3LjljMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYgLjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41ek0xMTUgNDYxLjdjLTMuOCAxNy44LTIxLjkgMjkuNy0zOS43IDI4LjktMTkuMi0uOC00Ni41LTE3LTU5LjItMzYuNS0yLjctMzEuMSA0My44LTYxLjMgNjYuMi01NC42IDE0LjkgNC4zIDI3LjggMzAuOCAzMy41IDU0IDAgMy0uMyA1LjctLjggOC4yem0tOC43LTY2Yy0uNS0xMy41LS41LTI3LS4zLTQwLjVsLjMgMGMyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMgLjNsMC0uMyAuMyAwYzM1LjEtMjEuNiA3Mi4yLTM5LjIgMTEyLjQtNTAuOCAxMS42IDUuMSAyMyA5LjUgMzQuOSAxMy4yIDIuMiAuOCAyLjIgLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjggLjMgMS45IC41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zIC45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3My4xIDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzUgNDA3LjFjLTE1LjcgMS42LTQ5LjUgMjUuNC00OS41IDQzLjIgMCAxMS42IDE1LjcgMTkuNSAzMi4yIDE0LjkgMTIuMi0zLjIgMzEuMS0xNy42IDM1LjktMjcuMyA2LTExLjYtMy43LTMyLjctMTguNi0zMC44ek0yOTAuOSAyMzAuOWMyOC42IDAgNTEuOS0yMS42IDUxLjktNDguNCAwLTM2LjEtNDAuNS01OC4xLTcyLjItNDQuMyA5LjUgMyAxNi41IDExLjYgMTYuNSAyMS42IDAgMjMuMy0zMy4zIDMyLTQ2LjUgMTEuMy03LjMgMzQuMSAxOS40IDU5LjggNTAuMyA1OS44ek02OC4yIDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzkgNDQ5Yy04LjQtMS42LTEyLjQgMTEuMy05LjUgMTguNCAyLjQgNS43IDEwLjMgMTMuNSAxNy4zIDE2LjIgOS4yIDMuMiAyMS4xLTMgMjEuMy05LjUgLjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6Il19LHIkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZW5raW5zIixpY29uOls0NDgsNTEyLFtdLCJmM2I2IiwiTTQ1NS40IDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44IC4yIDcgNC4xIDE1LjggMi43IDIyLjQtLjcgMy4zLTUuMiA3LjYtNi4xIDkuOC0xMS42IDI3LjctMi4zIDY0IDExLjEgODMuNyA4LjEgMTEuOSAyMS41IDIyLjQgMzkuMiAyNS4yIC43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42LTIxLjEgMTIuNS0zNi40IDIwLjMtNTUuOSAzNC4zLTEyLjYgOS0zMi4zIDEwLjItMjkuMiAzMS4xIDIuMSAxNC4xIDEwLjEgMzEuNiAxNC43IDQ1LjggLjcgMiAxLjQgNC4xIDIuMSA2bDQyMiAwYzQuOS0xNS4zIDkuNy0zMC45IDE0LjYtNDcuMiAzLjQtMTEuNCAxMC4yLTI3LjggOC43LTM5Ljd6TTE3NC4yIDMzLjdjMS44LS41IDMuNCAuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40IC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6TTY5LjQgMTI3LjNjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43IC4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIgLjUgMjIuNS0uNCAyNi45LTcuNi0uNi0xNy41LTguOC0zMS42LTguMi00Ny43IDEtMzAuMyAxNy41LTU3LjYgNC44LTg3LjQgMTMuNi0zMC45IDUzLjUtNTUuMyA4My4xLTcwIDM2LjYtMTguMyA5NC45LTMuNyAxMjkuMyAxNS44IDE5LjcgMTEuMSAzNC40IDMyLjcgNDguMyA1MC43LTE5LjUtNS44LTM2LjEgNC4yLTMzLjEgMjAuMyAxNi4zLTE0LjkgNDQuMi0uMiA1Mi41IDE2LjQgNy45IDE1LjggNy44IDM5LjMgOSA2Mi44IDIuOSA1Ny0xMC40IDExNS45LTM5LjEgMTU3LjEtNy43IDExLTE0LjEgMjMtMjQuOSAzMC42LTI2IDE4LjItNjUuNCAzNC43LTk5LjIgMjMuNC00NC43LTE1LTY1LTQ0LjgtODkuNS03OC44IC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMSAuNi0xNi41em0tMTcuMi0yMGMtMTYuOCAuOC0yNi0xLjItMzguMy0xMC44IC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTE5NC4zIDQzOC42Yy0xMS42LS43LTQ4LjEtMTQtMzguNS0yMy43IDkuNCA2LjUgMjcuNSA0LjkgNDEuMyA3LjMgLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek0yNiA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41IC43IDIuMyAxLjQgNC43IDIuMiA3LjJsLTE4MC43IDAgMC0uMXptMjQwLjYgNS43bC0uOCAwYy4zLS4yIC41LS40IC44LS41bDAgLjV6bTcuNS01LjdjMi4xLTEuNCA0LjMtMi44IDYuNC00LjMgMS4xIDEuNCAyLjIgMi44IDMuMiA0LjNsLTkuNiAwem0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41IC40IDE3IDIuNyAyMy41IDUuOS0uMSAzLjQtLjMgNy0uNCAxMC42em01My40IDI0LjdsLTE0IDBjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGwtMTcuNCAwYy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkgLjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44IC42LTExLjUgMTUuNi03LjMgMjkgMS4zIDM1LjcgMTEuNWwtMzYuMyAwem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFsLTI3LjkgMGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMSAuOCA1LjUtMi42IDE4LjktMy44IDI1LjF6TTE5MC41IDEzMC41YzUuNC0xNC45IDI3LjItMzQuNyA0NS0zMiA3LjcgMS4yIDE4IDguMiAxMi4yIDE3LjctMzAuMi03LTQ1LjIgMTIuNi01NC40IDMzLjEtOC4xLTItNC45LTEzLjEtMi44LTE4Ljh6bTE4NC4xIDYzLjFjOC4yLTMuNiAyMi40LS43IDI5LjYtNS4zLTQuMi0xMS41LTEwLjMtMjEuNC05LjMtMzcuNyAuNSAwIDEgMCAxLjQgLjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bS05Ni44IDIuN2MtNi44LTEwLjktMTktMzIuNS0xNC41LTQ1LjMgNi41IDExLjkgOC42IDI0LjQgMTcuOCAzMy4zIDQuMSA0IDEyLjIgOSA4LjIgMjAuMi0uOSAyLjctNy44IDguNi0xMS43IDkuNy0xNC40IDQuMy00Ny45IC45LTM2LjYtMTcuMSAxMS45IC43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6TTI2MS41IDI5OC4zYzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6TTM1My43IDM0NWMtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xeiJdfSxvJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xpZGVzaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNyIsIk0xODcuOSAxNTMuN2MtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43czYxLjctMjYgNjEuNy01Ny43YzAtMzItMjcuNy01Ny43LTYxLjctNTcuN3ptMTQzLjQgMGMtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43IDM0LjMgMCA2MS43LTI2IDYxLjctNTcuNyAuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjMgMC0xOTguM2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdMNzYuOCAwYy0yNS40IDAtNDYgMjIuMy00NiA0OS43bDAgMTk4LjNjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3Mi01Ni4zIDE5MS43IDEzNy40IDIyMi4zIDEzNC4zIDEyNC4xIDAtLjcgLjMtNTYuNiAuMy05Ni42IDUuMSAxLjEgOS40IDIuMyAxMy43IDMuMSAwIDM5LjcgLjMgOTIuOCAuMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhsMC0xOTIuNGMwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43bDMxNy43IDBjMzAuMyAwIDQwLjkgMTIuOSA0MC45IDQ1LjdsMCAxOTAuNi0uMSAweiJdfSxuJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwMiIsIk00MTQuMSAzMkwzMy45IDMyQzE1LjIgMzIgMCA0Ny4yIDAgNjUuOUwwIDQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0TDQxNCA0ODBjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlsMC0zODAuMkM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmw5NC40IDAgMCAyMC40YzAgMy43IDMgNi44IDYuOCA2LjhsNjcuOSAwYzMuNyAwIDYuOC0zIDYuOC02LjhsMC02Ny45YzAtMy43LTMtNi44LTYuOC02LjhsLTY3LjkgMGMtMy43IDAtNi44IDMtNi44IDYuOGwwIDIwLjQtOTQuNCAwYzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yczEyOC4xIDUyLjggMTM1LjEgMTIyLjJjNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnoiXX0sbCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpZ2l0YWwtb2NlYW4iLGljb246WzUxMiw1MTIsW10sImYzOTEiLCJNODcgNDgxLjhsNzMuNyAwIDAtNzMuNi03My43IDAgMCA3My42ek0yNS40IDM0Ni42bDAgNjEuNiA2MS42IDAgMC02MS42LTYxLjYgMHpNNDkxLjYgMTc2LjlDNDY4LjYgMTAyLjcgNDA5LjIgNDMuNiAzMzUgMjAuMyAxNjQuOS0zMi44IDggOTMuNyA4IDI1NS45bDk1LjggMGMwLTEwMS44IDEwMS0xODAuNSAyMDguMS0xNDEuNyAzOS43IDE0LjMgNzEuNSA0Ni4xIDg1LjggODUuNyAzOS4xIDEwNy0zOS43IDIwNy44LTE0MS40IDIwOGwwIC4zLS4zIDAgMCA5NS44YzE2Mi42IDAgMjg4LjgtMTU2LjggMjM1LjYtMzI3LjF6bS0yMzUuMyAyMzFsMC05NS4zLTk1LjYgMCAwIDk1LjYgOTUuMyAwIDAtLjMgLjMgMHoiXX0sYyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvdW5kY2xvdWQiLGljb246WzY0MCw1MTIsW10sImYxYmUiLCJNNjQwLjIgMjk4LjZjLTEuMyAyMy4xLTExLjUgNDQuOC0yOC40IDYwLjVzLTM5LjIgMjQuNC02Mi4zIDI0LjFsLTIxOCAwYy00LjggMC05LjQtMi0xMi44LTUuNHMtNS4zLTgtNS4zLTEyLjhsMC0yMzQuOGMtLjItNCAuOS04IDMuMS0xMS40czUuMy02LjEgOS03LjdjMCAwIDIwLjEtMTMuOSA2Mi4zLTEzLjkgMjUuOCAwIDUxLjEgNi45IDczLjMgMjAuMSAxNy4zIDEwLjIgMzIuMyAyMy44IDQ0LjEgNDAuMXMyMCAzNC44IDI0LjIgNTQuNGM3LjUtMi4xIDE1LjMtMy4yIDIzLjEtMy4yIDExLjctLjEgMjMuMyAyLjIgMzQuMiA2LjdzMjAuNSAxMS4zIDI4LjcgMTkuNyAxNC42IDE4LjMgMTguOSAyOS4zIDYuMyAyMi42IDUuOSAzNC4zem0tMzU0LTE1My41Yy4xLTEgMC0yLS4zLTIuOXMtLjgtMS44LTEuNS0yLjYtMS41LTEuMy0yLjQtMS43Yy0xLjgtLjgtNC0uOC01LjggMC0uOSAuNC0xLjcgMS0yLjQgMS43cy0xLjIgMS42LTEuNSAyLjYtLjQgMS45LS4zIDIuOWMtNiA3OC45LTEwLjYgMTUyLjkgMCAyMzEuNiAuMiAxLjcgMSAzLjMgMi4zIDQuNSAyLjYgMi40IDYuOCAyLjQgOS40IDAgMS4zLTEuMiAyLjEtMi44IDIuMy00LjUgMTEuMy03OS40IDYuNi0xNTIgMC0yMzEuNmwuMiAwem0tNDQgMjcuM2MtLjItMS44LTEuMS0zLjUtMi40LTQuN3MtMy4xLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC43Yy03LjkgNjcuOS03LjkgMTM2LjUgMCAyMDQuNCAuMyAxLjggMS4yIDMuNCAyLjUgNC41czMuMSAxLjggNC44IDEuOCAzLjUtLjYgNC44LTEuOCAyLjItMi44IDIuNS00LjVjOC44LTY3LjggOC44LTEzNi41IC4xLTIwNC40bC4xIDB6bS00NC4zLTYuOWMtLjItMS44LTEtMy40LTIuMy00LjZzLTMtMS44LTQuOC0xLjgtMy41IC43LTQuOCAxLjgtMi4xIDIuOC0yLjMgNC42Yy02LjcgNzItMTAuMiAxMzkuMyAwIDIxMS4xIDAgMS45IC43IDMuNyAyLjEgNXMzLjEgMi4xIDUgMi4xIDMuNy0uNyA1LTIuMSAyLjEtMy4xIDIuMS01YzEwLjUtNzIuOCA3LjMtMTM4LjIgLjEtMjExLjFsLS4xIDB6bS00NCAyMC42YzAtMS45LS44LTMuOC0yLjEtNS4ycy0zLjItMi4xLTUuMi0yLjEtMy44IC44LTUuMiAyLjEtMi4xIDMuMi0yLjEgNS4yYy04LjEgNjMuMy04LjEgMTI3LjUgMCAxOTAuOCAuMiAxLjggMSAzLjQgMi40IDQuNnMzLjEgMS45IDQuOCAxLjkgMy41LS43IDQuOC0xLjkgMi4yLTIuOCAyLjQtNC42YzguOC02My4zIDguOS0xMjcuNSAuMy0xOTAuOGwtLjEgMHptLTQ0LjUgNDcuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMXMtMy4yLTIuMS01LjEtMi4xLTMuOCAuOC01LjEgMi4xLTIuMSAzLjItMi4xIDUuMWMtMTAuNSA0OS4yLTUuNSA5My45IC40IDE0My42IC4zIDEuNiAxLjEgMy4xIDIuMyA0LjJzMi44IDEuNyA0LjUgMS43IDMuMi0uNiA0LjUtMS43IDIuMS0yLjUgMi4zLTQuMmM2LjYtNTAuNCAxMS42LTk0LjEgLjQtMTQzLjZ6bS00NC4xLTcuNWMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC44Yy05LjMgNTAuMi02LjIgOTQuNCAuMyAxNDQuNSAuNyA3LjYgMTMuNiA3LjUgMTQuNCAwIDcuMi01MC45IDEwLjUtOTMuOCAuMy0xNDQuNWwtLjIgMHpNMjAuNyAyNTAuOGMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4zIDIuOS0yLjQgNC44Yy04LjUgMzMuNy01LjkgNjEuNiAuNiA5NS40IC4yIDEuNyAxIDMuMyAyLjMgNC40czIuOSAxLjggNC43IDEuOCAzLjQtLjYgNC43LTEuOCAyLjEtMi43IDIuMy00LjRjNy41LTM0LjUgMTEuMi02MS44IC40LTk1LjRsLS4yIDB6Il19LGQkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZmlnbWEiLGljb246WzQ0OCw1MTIsW10sImU3ZTQiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTczLjcgOTZjLTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDIxIDEwLjggMzkuNCAyNy4yIDUwLjEtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjFzMTAuOCAzOS41IDI3LjIgNTAuMWMtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjEgMCAzMy4xIDI3LjEgNTkuOCA2MC4xIDU5LjggMzMuMiAwIDYwLjYtMjYuOSA2MC42LTYwLjNsMC01NS43YzEwLjYgOS44IDI0LjggMTUuOCA0MC40IDE1LjhsMS4xIDBjMzMgMCA1OS44LTI2LjggNTkuOC01OS44IDAtMjEtMTAuOC0zOS41LTI3LjItNTAuMSAxNi40LTEwLjcgMjcuMi0yOS4xIDI3LjItNTAuMSAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjhMMTczLjcgOTZ6bTQxLjYgMjE5LjhsMCAzOS45YzAgMjIuNi0xOC42IDQxLTQxLjMgNDEtMjIuNCAwLTQwLjctMTguMi00MC43LTQwLjUgMC0yMi4zIDE4LjEtNDAuNCA0MC4zLTQwLjRsNDEuNyAwem0wLTEwMC4zbDAgODAuOS00MS43IDBjLTIyLjMtLjEtNDAuMy0xOC4yLTQwLjMtNDAuNSAwLTIyLjMgMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDB6bTYwLjggMGMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC41LTQwLjUgNDAuNWwtMS4xIDBjLTIyLjMgMC00MC40LTE4LjEtNDAuNC00MC41czE4LjEtNDAuNSA0MC40LTQwLjVsMS4xIDB6bS02MC44LTE5LjNsLTQxLjYgMGMtMjIuMyAwLTQwLjUtMTguMS00MC41LTQwLjRzMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDAgMCA4MC45em02MC44LTgwLjljMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNC00MC41IDQwLjRsLTQxLjUgMCAwLTgwLjkgNDEuNSAweiJdfSx1JHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTE0NS43IDIyMWMxMy04My45IDgwLjUtOTUuNyAxMDguOS05NS43IDk5LjggMCAxMjcuNSA4Mi41IDEyNy41IDEzNC4yIDAgNjMuNi00MSAxMzIuOS0xMjguOSAxMzIuOS0zOC45IDAtOTkuMS0yMC0xMDkuNC05N2w2Mi41IDBjMS41IDMwLjEgMTkuNiA0NS4yIDU0LjUgNDUuMiAyMy4zIDAgNTgtMTguMiA1OC04Mi44IDAtODIuNS00OS4xLTgwLjYtNTYuNy04MC42LTMzLjEgMC01MS43IDE0LjYtNTUuOCA0My44bDE4LjIgMC00OS4yIDQ5LjItNDktNDkuMiAxOS40IDB6Il19LHAkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWUiLGljb246WzUxMiw1MTIsW10sImYyNjgiLCJNMCAyNTZjMC00Ni42IDEyLjUtOTAuNCAzNC4zLTEyOC45TDE0NC4xIDMxOC4zYzIxLjkgMzkuMiA2My44IDY1LjcgMTExLjkgNjUuNyAxNC4zIDAgMjcuMS0yLjMgNDAuOC02LjZMMjIwLjUgNTA5LjZDOTUuOSA0OTIuMyAwIDM4NS4zIDAgMjU2em0zNjUuMSA2NS42YzEyLjMtMTkuMiAxOC45LTQyLjUgMTguOS02NS42IDAtMzguMi0xNi44LTcyLjUtNDMuMy05NmwxNTIuNyAwYzEyIDI5LjYgMTguNiA2Mi4xIDE4LjYgOTYgMCAxNDEuNC0xMTQuNiAyNTUuMS0yNTYgMjU2TDM2NS4xIDMyMS42ek00NzcuOCAxMjhMMjU2IDEyOGMtNjIuOSAwLTExMy43IDQ0LjEtMTI1LjUgMTAyLjdMNTQuMiA5OC41QzEwMSAzOC41IDE3NCAwIDI1NiAwIDM1MC44IDAgNDMzLjUgNTEuNSA0NzcuOCAxMjh6TTM0NCAyNTZhODggODggMCAxIDEgLTE3NiAwIDg4IDg4IDAgMSAxIDE3NiAweiJdfSxoJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHJhZGUtZmVkZXJhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMyIsIk0yNTYgOC44YTI0Ny4yIDI0Ny4yIDAgMSAwIDAgNDk0LjQgMjQ3LjIgMjQ3LjIgMCAxIDAgMC00OTQuNHptMCAxMS42YTIzNS42IDIzNS42IDAgMSAxIDAgNDcxLjIgMjM1LjYgMjM1LjYgMCAxIDEgMC00NzEuMnpNNDExLjEgMTYzLjFsMC00Ni44LTE5My44IDAgMCA4MS43LTE1NS4xIDAgMzYuNyA0NiAxMTcuNyAwIDAgMTk2LjggNDguOCAwIDAtMTk1LjggODMuMyAwIDAtNDctODMuMyAwIDAtMzQuOCAxNDUuNyAwIDAtLjF6bS03My4zIDQ1LjFsMCAyMy45LTgyLjkgMCAwIDE5Ny40LTI2LjggMCAwLTE5Ny40LTEyMy44IDAtMjAuMS0yMy45IDE0My45IDAgMC04MC42IDE3MS44IDAgMCAyNC40LTE0NSAwIDAgNTYuMiA4Mi45IDB6bS0xNjEuMy02OWwtMTIuNC0yMC43IDIuMSAyMy44LTIzLjUgNS40IDIzLjMgNS40LTIuMSAyNCAxMi4zLTIwLjUgMjIuMiA5LjUtMTUuNy0xOC4xIDE1LjgtMTguMS0yMiA5LjN6bS0yOS42LTE5LjdsOS4zLTExLjUtMTIuNyA1LjktOC0xMi40IDEuNyAxMy45LTE0LjMgMy44IDEzLjcgMi43LS44IDE0LjcgNi44LTEyLjIgMTMuOCA1LjMtOS41LTEwLjJ6TTMxMi4zIDI2NC43bC0xMy4xIDUuNi03LjMtMTIuMiAxLjMgMTQuMi0xMy45IDMuMiAxMy45IDMuMi0xLjIgMTQuMiA3LjMtMTIuMiAxMy4xIDUuNS05LjQtMTAuNyA5LjMtMTAuOHptMTA2LjktNzcuMmwtMjAuOSA5LjEtMTItMTkuNiAyLjIgMjIuNy0yMi4zIDUuNCAyMi4yIDQuOS0xLjggMjIuOSAxMS41LTE5LjYgMjEuMiA4LjgtMTUuMS0xNyAxNS0xNy42ek0yNTYgMjkuOWEyMjYuMSAyMjYuMSAwIDEgMCAwIDQ1Mi4yIDIyNi4xIDIyNi4xIDAgMSAwIDAtNDUyLjJ6TTM1MC42IDE5NmwwIDUxLTgzLjMgMCAwIDE5NS43LTUyLjcgMCAwLTE5Ni44LTExNi43IDAtNDAtNDkuOSAxNTcuNCAwIDAtODEuNiAxOTcuOCAwIDAgNTAuNy0xNDUuNyAwIDAgMzAuOSA4My4yIDB6TTI1NiA0My4yYzYwLjMgMCAxMTQuOCAyNSAxNTMuNiA2NS4ybC0xOTkuMSAwIDAgODEuNi0xNTcuNCAwQzgxLjEgMTA0LjggMTYxLjQgNDMuMiAyNTYgNDMuMnptMCA0MjcuMWMtMTE3LjkgMC0yMTMuNi05NS42LTIxMy42LTIxMy41IDAtMjEuMiAzLjEtNDEuOCA4LjktNjEuMWw0My44IDU2LjMgMTE0LjcgMCAwIDE5Ni44IDY0LjYgMCAwLTE5NS44IDgzLjMgMCAwLTYyLjctODMuMiAwIDAtMTkuMiAxNDUuNiAwIDAtNTAuOGMzMC44IDM3IDQ5LjMgODQuNiA0OS4zIDEzNi41IC4xIDExNy45LTk1LjUgMjEzLjUtMjEzLjQgMjEzLjV6TTE4Ni44IDI3NWwtMTEtMjEuNCAxLjcgMjQuNS0yMy43IDMuOSAyMy44IDUuOS0zLjcgMjMuOCAxMy0yMC45IDIxLjUgMTAuOC0xNS44LTE4LjggMTYuOS0xNy4xLTIyLjcgOS4zeiJdfSxmJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmFhZGluIixpY29uOls0NDgsNTEyLFtdLCJmNDA4IiwiTTIyNC41IDE0MC43QzIyNiAxMjMuMSAyMjkuNCA4OCAyNzQuMyA4OGw5OC42IDBjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNmwwLTEyLjNjMC0xMi4yIDkuMy0yMi4xIDIxLjUtMjIuMVM0NDggNDEuOSA0NDggNTQuMWwwIDM2LjVjMCA0Mi45LTIxLjUgNjItNjYuOCA2MmwtMTAwLjUgMGMtMzAuMSAwLTMzIDE0LjctMzMgMjcuMSAwIDEuMy0uMSAyLjUtLjIgMy43LS43IDEyLjMtMTAuOSAyMi4yLTIzLjQgMjIuMnMtMjIuNy05LjgtMjMuNC0yMi4yYy0uMS0xLjItLjItMi40LS4yLTMuNyAwLTEyLjMtMy0yNy4xLTMzLTI3LjFsLTEwMC43IDBDMjEuNSAxNTIuNiAwIDEzMy41IDAgOTAuNkwwIDU0LjFDMCA0MS45IDkuNCAzMiAyMS42IDMyczIxLjUgOS45IDIxLjUgMjIuMWwwIDEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGw5OC42IDBjNDQuOCAwIDQ4LjMgMzUuMSA0OS44IDUyLjdsLjkgMHpNMjI0IDQ1NmMxMS41IDAgMjEuNC03IDI1LjctMTYuMyAxLjEtMS44IDk3LjEtMTY5LjYgOTguMi0xNzEuNCAxMS45LTE5LjYtMy4yLTQ0LjMtMjcuMi00NC4zLTEzLjkgMC0yMy4zIDYuNC0yOS44IDIwLjNMMjI0IDM2MiAxNTcuMSAyNDQuM2MtNi40LTEzLjktMTUuOS0yMC4zLTI5LjgtMjAuMy0yNCAwLTM5LjEgMjQuNi0yNy4yIDQ0LjMgMS4xIDEuOSA5Ny4xIDE2OS42IDk4LjIgMTcxLjQgNC4zIDkuMyAxNC4yIDE2LjMgMjUuNyAxNi4zeiJdfSxtJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2aWFudGFydCIsaWNvbjpbMzIwLDUxMixbXSwiZjFiZCIsIk0zMjAgOTMuMmwtOTguMiAxNzkuMSA3LjQgOS41IDkwLjggMCAwIDEyNy43LTE2MC45IDAtMTMuNSA5LjItNDMuNyA4NGMtLjMgMC04LjYgOC42LTkuMiA5LjJsLTkyLjcgMCAwLTkzLjIgOTMuMi0xNzkuNC03LjQtOS4yLTg1LjggMCAwLTEyNy42IDE1NiAwIDEzLjUtOS4yIDQzLjctODRjLjMgMCA4LjYtOC42IDkuMi05LjJsOTcuNiAwIDAgOTMuMXoiXX0sWDM9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkaXVtIixpY29uOls0NDgsNTEyLFs2MjQwNywibWVkaXVtLW0iXSwiZjIzYSIsIk0zNjkuNCAzMmM0My40IDAgNzguNiAzNS4yIDc4LjYgNzguNmwwIDgzLjhjLTEuOS0uMS0zLjgtLjItNS43LS4ybC0uNCAwYy0xMCAwLTIyLjMgMi40LTMxLjEgNi44LTEwIDQuNi0xOC43IDExLjUtMjYgMjAuNi0xMS44IDE0LjYtMTguOSAzNC4zLTIwLjYgNTYuNC0uMSAuNy0uMSAxLjMtLjIgMnMtLjEgMS4yLS4xIDEuOWMtLjEgMS4yLS4xIDIuNC0uMSAzLjYgMCAxLjktLjEgMy44IDAgNS44IDEuMiA1MC4xIDI4LjIgOTAuMiA3Ni4zIDkwLjIgMi43IDAgNS4zLS4xIDcuOS0uNGwwIDIwLjRjMCA0My40LTM1LjIgNzguNi03OC42IDc4LjZMNzguNiA0ODBDMzUuMiA0ODAgMCA0NDQuOCAwIDQwMS40TDAgMTEwLjZDMCA2Ny4yIDM1LjIgMzIgNzguNiAzMmwyOTAuOCAwek04Mi4zIDEzOC45bC4zIC4xYzEzLjIgMyAxOS44IDcuNCAxOS44IDIzLjRsMCAxODcuMmMwIDE2LTYuNyAyMC40LTE5LjkgMjMuNGwtLjMgLjEgMCAyLjggNTIuOCAwIDAtMi44LS4zLS4xYy0xMy4yLTMtMTkuOS03LjQtMTkuOS0yMy40bDAtMTc2LjMgODYuMSAyMDIuNSA0LjkgMCA4OC42LTIwOC4yIDAgMTg2LjZjLTEuMSAxMi42LTcuOCAxNi41LTE5LjcgMTkuMmwtLjMgLjEgMCAyLjcgOTEuOSAwIDAtMi43LS4zLS4xYy0xMS45LTIuNy0xOC43LTYuNi0xOS45LTE5LjJsLS4xLTE5MS44IC4xIDBjMC0xNiA2LjctMjAuNCAxOS45LTIzLjRsLjMtLjEgMC0yLjctNzIuMiAwLTY3IDE1Ny40LTY3LTE1Ny40LTc3LjggMCAwIDIuN3pNNDQ4IDM0MC4zYy0yNS4xLTcuNC00My0zNS4xLTQxLjItNjcuOGwwIDAgNDEuMSAwIDAgNjcuOHptLTYuNC0xMzUuNmMyLjMgMCA0LjQgLjMgNi40IC45bDAgNTcuNC00MC4yIDBjMS41LTMzLjYgMTMuNi01Ny45IDMzLjgtNTguM3oiXX0sZyR0PVgzLGIkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuY2FydCIsaWNvbjpbNjQwLDUxMixbXSwiZjIzZCIsIk0zMzEuOCA0NDAuNGE0NS44IDQ1LjggMCAxIDEgOTEuNSAuMyA0NS44IDQ1LjggMCAxIDEgLTkxLjUtLjN6TTE2OS40IDM5NC45YTQ1LjcgNDUuNyAwIDEgMCAuMyA5MS4zIDQ1LjcgNDUuNyAwIDEgMCAtLjMtOTEuM3ptMjkxLjctMjcwYy0zMDIuMiAwLTM3OS4yLTEyLjgtNDYxLjEtOTkuMiAzNC40IDUxLjcgNTMuMyAxNDguOSAzNzMuMSAxNDQuMiAzMzMuMy01IDEzMCA4Ni4xIDcwLjggMTg4LjkgMTg2LjctMTY2LjcgMzE5LjQtMjMzLjkgMTcuMi0yMzMuOXoiXX0sdiR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InktY29tYmluYXRvciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzYiIsIk00NDggMzJsMCA0NDgtNDQ4IDAgMC00NDggNDQ4IDB6TTIzNiAyODcuNWw3Ny41LTE0NS41LTMyLjcgMC00NS44IDkxYy00LjcgOS4zLTkgMTguMy0xMi44IDI2LjhsLTEyLjItMjYuOC00NS4yLTkxLTM1IDAgNzYuNyAxNDMuOCAwIDk0LjUgMjkuNSAwIDAtOTIuOHoiXX0seCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmUiLGljb246WzUxMiw1MTIsW10sImYzYzAiLCJNMzExIDE5Ni44bDAgODEuM2MwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTEuMyAwLTIuNC0uNy0zLTEuNUwyNTQgMjMwIDI1NCAyNzguMmMwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTIuMSAwLTMuNy0xLjYtMy43LTMuN2wwLTgxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDEyLjkgMGMxLjEgMCAyLjQgLjYgMyAxLjZsMzcuMyA1MC4zIDAtNDguMmMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTMgMGMyLjEtLjEgMy44IDEuNiAzLjggMy41bDAgLjF6bS05My43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMTMgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC04MS4zYzAtMS45LTEuNi0zLjctMy43LTMuN3ptLTMxLjQgNjguMWwtMzUuNiAwIDAtNjQuNGMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxIC4zIDEuOCAxIDIuNSAuNyAuNiAxLjUgMSAyLjUgMWw1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjMC0xLjktMS42LTMuNy0zLjUtMy43bC4xIDB6bTE5My43LTY4LjFsLTUyLjMgMGMtMS45IDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEuOSAxLjYgMy43IDMuNyAzLjdsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy42IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNyAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjLS4xLTEuOS0xLjctMy43LTMuNy0zLjdsLjEgMHpNNTEyIDkzLjRsMCAzMjZjLS4xIDUxLjItNDIuMSA5Mi43LTkzLjQgOTIuNmwtMzI2IDBDNDEuNCA1MTEuOS0uMSA0NjkuOCAwIDQxOC42bDAtMzI2Qy4xIDQxLjQgNDIuMi0uMSA5My40IDBsMzI2IDBjNTEuMiAuMSA5Mi43IDQyLjEgOTIuNiA5My40ek00NDEuNiAyMzMuNWMwLTgzLjQtODMuNy0xNTEuMy0xODYuNC0xNTEuM1M2OC44IDE1MC4xIDY4LjggMjMzLjVjMCA3NC43IDY2LjMgMTM3LjQgMTU1LjkgMTQ5LjMgMjEuOCA0LjcgMTkuMyAxMi43IDE0LjQgNDIuMS0uOCA0LjctMy44IDE4LjQgMTYuMSAxMC4xczEwNy4zLTYzLjIgMTQ2LjUtMTA4LjJjMjctMjkuNyAzOS45LTU5LjggMzkuOS05My4xbDAtLjJ6Il19LHkkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWlsaWEiLGljb246WzQ0OCw1MTIsW10sImYzNmQiLCJNMjQwLjIgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjFsMCAzOC41QzIwMy4xIDIyNy43IDc4LjMgMjUxIDQ2LjggMjY0LjIgMTEuMyAyODAuNSAxNi40IDM1Ny43IDE2LjQgMzc2UzMxLjYgNDgwIDE0MS4zIDQ4MGM0Ny44IDAgMTEzLjctMjAuNyAxNTMuMy00Mi4xbDAgMjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNSAuMyA2Ni41LS43YzQuMS0xIDUuMS02LjEgNS4xLTkuMWwwLTI5Ni42Yy0uMS04MC4zLTU3LjktMTM2LTE5Mi0xMzZ6bTUwLjIgMzQ4Yy0yMS40IDEzLjItNDguNyAyNC40LTc5LjEgMjQuNC01Mi44IDAtNTguOS0zMy41LTU5LTQ0LjcgMC0xMi4yLTMtNDIuNyAxOC4zLTUyLjkgMjQuMy0xMy4yIDc1LjEtMjkuNCAxMTkuOC0zMy41bDAgMTA2Ljd6Il19LHckdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhc3ltbWV0cmlrIixpY29uOls1NzYsNTEyLFtdLCJmMzcyIiwiTTUxNy41IDMwOS4yYzM4LjgtNDAgNTguMS04MCA1OC41LTExNi4xIC44LTY1LjUtNTkuNC0xMTguMi0xNjkuNC0xMzUtMTI4LjctMTkuNy0yODguNSAxNS41LTQwNi42IDgyLjQgNTItMjYuNSAxMTAuNi00OC4yIDE3MC43LTU4LjIgNzQuNS0yMC41IDE1My0yNS40IDIyMS4zLTE0LjggMTUyLjUgMjMuOCAxOTYuOCAxMjcuNSA5OC44IDIzMS43LTEwLjIgMTAuOC0yMiAyMS4xLTM1IDMwLjZMMzA0LjkgMTAzLjQgMTE0LjcgMzg4LjljLTY1LjYtMjkuNC03Ni41LTkwLjItMTkuMS0xNTEuMiAyMC44LTIyLjIgNDguMy00MS45IDc5LjUtNTguMSAyMC0xMi4yIDM5LjctMjIuNiA2Mi0zMC43LTY1LjEgMjAuMy0xMjIuNyA1Mi45LTE2MS42IDkyLjktMjcuNyAyOC42LTQxLjQgNTcuMS00MS43IDgyLjktLjUgMzUuMSAyMy40IDY1LjEgNjguNCA4M2wtMzQuNSA1MS43IDEwMS42IDAgMjItMzQuNGMyMi4yIDEgNDUuMyAwIDY4LjYtMi43bC0yMi44IDM3LjEgMTM1LjUgMC0zMi42LTUzLjFjMTguNi01LjMgMzYuOS0xMS41IDU0LjUtMTguN2w0NS45IDcxLjggMTAxLjYgMC03My40LTExMC40YzE4LjUtMTIuMSAzNS0yNS41IDQ4LjktMzkuOHpNMzI5LjkgMzg5LjdsLTI1LTQwLjYtMzIuNyA1My4zYy0yMy40IDMuNS00Ni43IDUuMS02OS4yIDQuNGwxMDEuOS0xNTkuMyA3OC43IDEyM2MtMTcuMiA3LjQtMzUuMyAxMy45LTUzLjcgMTkuMnoiXX0sayR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBoYWJyaWNhdG9yIixpY29uOls1MTIsNTEyLFtdLCJmM2RiIiwiTTMzMS4xIDI2Mi4xbC0uMS0xM3MyMS43LTE5LjggMjEuMS0yMS4ybC05LjUtMjBjLS42LTEuNC0yOS41LS41LTI5LjUtLjVsLTkuNC05LjNzLjItMjguNS0xLjItMjkuMWwtMjAuMS05LjJjLTEuNC0uNi0yMC43IDIxLTIwLjcgMjFsLTEzLjEtLjJzLTIwLjUtMjEuNC0yMS45LTIwLjhsLTIwIDguM2MtMS40IC41IC4yIDI4LjkgLjIgMjguOWwtOS4xIDkuMXMtMjkuMi0uOS0yOS43IC40TDE2MCAyMjYuM2MtLjYgMS40IDIxIDIxIDIxIDIxbC4xIDEyLjlTMTU5LjQgMjgwIDE2MCAyODEuNGw5LjUgMjBjLjYgMS40IDI5LjUgLjUgMjkuNSAuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNCAuNiAyMC43LTIzLjUgMjAuNy0yMy41bDEzLjEgLjJzMjAuNSAyMy44IDIxLjggMjMuM2wyMC03LjVjMS40LS42LS4yLTMyLjEtLjItMzIuMWw5LjEtOS4xczI5LjIgLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNHMtMzIuMS0xMi41LTMyLjgtMjkuNiAxMi44LTMxLjYgMzAuMS0zMi4zYzE3LjMtLjggMzIuMSAxMi41IDMyLjggMjkuNXptMjAxLjItMzcuOWwtOTctOTctLjEgLjFjLTc1LjEtNzMuMy0xOTUuNC03Mi44LTI2OS44IDEuNi01MC45IDUxLTI3LjggMjcuOS05NS43IDk1LjMtMjIuMyAyMi4zLTIyLjMgNTguNyAwIDgxIDY5LjkgNjkuNCA0Ni40IDQ2IDk3LjQgOTdsLjEtLjFjNzUuMSA3My4zIDE5NS40IDcyLjkgMjY5LjgtMS42IDUxLTUwLjkgMjcuOS0yNy45IDk1LjMtOTUuMyAyMi4zLTIyLjMgMjIuMy01OC43IDAtODF6TTM2My41IDE0OC4yYTE1Mi4zIDE1Mi4zIDAgMSAxIC0yMTUgMjE1LjYgMTUyLjMgMTUyLjMgMCAxIDEgMjE1LTIxNS42eiJdfSxTJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYm90cyIsaWNvbjpbNjQwLDUxMixbXSwiZTM0MCIsIk04Ni4zIDE5Ny44Yy04LS4xLTE1LjkgMS43LTIzLjEgNS4xcy0xMy41IDguNi0xOC40IDE0LjlsMC02MS45YzAtMi4yLS45LTQuMy0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjQgMGMtMi4yIDAtNC4zIC45LTUuOCAyLjRTMCAxNTMuOCAwIDE1NkwwIDMzMy42YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNyAxLjcgMS40IDIuNyAxLjggMi4xIC42IDMuMSAuNmwyOC40IDBjMS4xIDAgMi4xLS4yIDMuMS0uNnMxLjktMSAyLjctMS44IDEuNC0xLjcgMS44LTIuNyAuNi0yLjEgLjYtMy4xbDAtOC4xYzExLjYgMTMuNCAyNS45IDE5LjggNDEuNiAxOS44IDM0LjYgMCA2MS45LTI2LjIgNjEuOS03My44IDAtNDUuOS0yNy03My42LTYxLjktNzMuNnpNNzEuNSAzMDUuN2MtOS42IDAtMjEuMi00LjktMjYuNy0xMi41bDAtNDNjNS41LTcuNiAxNy4yLTEyLjggMjYuNy0xMi44IDE3LjcgMCAzMS4xIDEzLjEgMzEuMSAzNCAwIDIxLjItMTMuNCAzNC4zLTMxLjEgMzQuM3ptMTU2LjQtNTlhMTcuNCAxNy40IDAgMSAwIDAgMzQuOCAxNy40IDE3LjQgMCAxIDAgMC0zNC44em00Ni4xLTkwbDAtNDQuN2MyLjgtMS4yIDUuMi0zLjMgNi42LTZzMS45LTUuOCAxLjMtOC45LTIuMi01LjctNC42LTcuNy01LjQtMy04LjQtMy02LjEgMS4xLTguNCAzLTQgNC43LTQuNiA3LjctLjEgNi4xIDEuMyA4LjkgMy44IDQuOCA2LjYgNmwwIDQ0LjdjLTI4IDEuMy01NC40IDEzLjYtNzMuNiAzNC4xcy0yOS41IDQ3LjctMjguOCA3NS44IDEyLjMgNTQuNyAzMi40IDc0LjMgNDcgMzAuNiA3NS4xIDMwLjYgNTUtMTEgNzUuMS0zMC42IDMxLjctNDYuMyAzMi40LTc0LjMtOS43LTU1LjMtMjguOC03NS44LTQ1LjUtMzIuOC03My42LTM0LjF6bTg2IDEwNy40YzAgMzAuNS00MC44IDU1LjMtOTEuMSA1NS4zcy05MS4xLTI0LjctOTEuMS01NS4zIDQwLjgtNTUuMyA5MS4xLTU1LjMgOTEuMSAyNC43IDkxLjEgNTUuM2wwIDB6bS01MC4yIDE3LjRjMy40IDAgNi44LTEgOS43LTIuOXM1LjEtNC42IDYuNC03LjggMS43LTYuNyAxLTEwLjEtMi4zLTYuNS00LjgtOC45LTUuNS00LjEtOC45LTQuOC02LjktLjMtMTAuMSAxLTUuOSAzLjUtNy44IDYuNC0yLjkgNi4yLTIuOSA5LjdjMCA0LjYgMS44IDkgNS4xIDEyLjNzNy43IDUuMSAxMi4zIDUuMWwwIDB6bTI3MC45LTMxYy0xNC44LTIuNi0yMi40LTMuOC0yMi40LTkuOSAwLTUuNSA3LjMtOS45IDE3LjctOS45IDEyLjIgLjEgMjQuMiAzLjYgMzQuNSAxMC4xIDEuOCAxLjIgNCAxLjYgNi4yIDEuMXM0LTEuNyA1LjEtMy42Yy4xLS4xIC4xLS4yIC4yLS4zbDguNi0xNC45YzEuMS0xLjkgMS40LTQuMSAuOC02LjFzLTEuOS0zLjktMy43LTVjLTE1LjctOS40LTMzLjctMTQuMy01Mi0xNC4xLTM5IDAtNjAuMiAyMS41LTYwLjIgNDYuMiAwIDM2LjMgMzMuNyA0MS45IDU3LjYgNDUuNiAxMy40IDIuMyAyNC4xIDQuNCAyNC4xIDExIDAgNi40LTUuNSAxMC44LTE4LjkgMTAuOC0xMy42IDAtMzEtNi4yLTQyLjYtMTMuNi0uOS0uNi0xLjktMS0zLTEuMnMtMi4xLS4yLTMuMiAuMS0yLjEgLjctMi45IDEuMy0xLjYgMS40LTIuMiAyLjNjMCAuMS0uMSAuMS0uMSAuMmwtMTAuMiAxNi45Yy0xLjEgMS44LTEuNCA0LTEgNnMxLjcgMy45IDMuNSA1YzE1LjIgMTAuMyAzNy43IDE2LjcgNTkuNCAxNi43IDQwLjQgMCA2NC0xOS44IDY0LTQ2LjUgMC0zOC4xLTM1LjUtNDMuOS01OS4zLTQ4LjN6bS05NS45IDYwLjhjLS41LTItMS44LTMuNy0zLjYtNC44cy0zLjktMS41LTUuOS0xLjFjLTEuNCAuMy0yLjggLjQtNC4yIC40LTcuOCAwLTEyLjUtNi4xLTEyLjUtMTQuMmwwLTUxLjIgMjAuMyAwYzIuMiAwIDQuMi0uOSA1LjgtMi40czIuNC0zLjYgMi40LTUuOGwwLTIyLjdjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjAuMyAwIDAtMzAuMmMwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC4yIDBjLTIuMiAwLTQuMiAuOS01LjggMi40cy0yLjQgMy42LTIuNCA1LjhsMCAzMC4yLTE1LjEgMGMtMS4xIDAtMi4xIC4yLTMuMSAuNnMtMS45IDEtMi42IDEuOC0xLjQgMS43LTEuOCAyLjYtLjYgMi0uNiAzLjFsMCAyMi43YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNiAxLjcgMS40IDIuNiAxLjggMiAuNiAzLjEgLjZsMTUuMSAwIDAgNjMuN2MwIDI3IDE1LjQgNDEuMyA0My45IDQxLjMgMTIuMiAwIDIxLjQtMi4yIDI3LjYtNS40IDEuNi0uOCAyLjktMi4yIDMuNy0zLjlzLjktMy42IC41LTUuNGwtNS0xOS4zeiJdfSxfJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjFjYSIsIk0zODQgMjU0LjdsMCA1Mi4xYy0xOC40IDQuMi0zNi45IDYuMS01Mi4xIDYuMS0zNi45IDc3LjQtMTAzIDE0My44LTEyNS4xIDE1Ni4yLTE0IDcuOS0yNy4xIDguNC00Mi43LS44LTI3LjEtMTYuMy0xMjkuOS0xMDAuNi0xNjQuMS0zNjUuNmw3NC41IDBjMTguNyAxNTkuMSA2NC41IDI0MC43IDExNC44IDMwMS44IDI3LjktMjcuOSA1NC44LTY1LjEgNzUuNi0xMDYuOS00OS44LTI1LjMtODAuMS04MC45LTgwLjEtMTQ1LjYgMC02NS42IDM3LjctMTE1LjEgMTAyLjItMTE1LjEgMTE0LjkgMCAxMDYuMiAxMjcuOSA4MS42IDE4MS41IDAgMC00Ni40IDkuMi02My41LTIwLjUgMy40LTExLjMgOC4yLTMwLjggOC4yLTQ4LjUgMC0zMS4zLTExLjMtNDYuNi0yOC40LTQ2LjYtMTguMiAwLTMwLjggMTcuMS0zMC44IDUwIC4xIDc5LjIgNTkuNCAxMTguNyAxMjkuOSAxMDEuOXoiXX0sTSR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZHJ0IixpY29uOls1NzYsNTEyLFtdLCJmM2M4IiwiTTEyOS43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjktMTM3LjYgMC0yNDktMTExLTI0OS0yNDhTMTI3LjQgOCAyNjQuOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOS0xMDkuNiAxOC4zLTE5My40IDExOS4zLTE5My40IDI0MS4xek00MjcuMSAzNTYuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0N3MxMDguMS0xODQuMyA0Ni41LTI3Mi42Yy05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOXptLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44ek0zMTIgMjI0Yy00LjQgMC04LTMuNi04LThsMC00MGMwLTQuNC0zLjYtOC04LThsLTQ4IDBjLTQuNCAwLTggMy42LTggOGwwIDQwYzAgNC40LTMuNiA4LTggOGwtNDAgMGMtNC40IDAtOCAzLjYtOCA4bDAgNDhjMCA0LjQgMy42IDggOCA4bDQwIDBjNC40IDAgOCAzLjYgOCA4bDAgNDBjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC0zLjYgOC04bDAtNDBjMC00LjQgMy42LTggOC04bDQwIDBjNC40IDAgOC0zLjYgOC04bDAtNDhjMC00LjQtMy42LTgtOC04bC00MCAweiJdfSx6JHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3NpIixpY29uOls1MTIsNTEyLFtdLCJmNDFhIiwiTTggMjY2LjRjMi4zLTEzNS44IDk3LjQtMjMyLjQgMjEzLjgtMjQ4LjEgMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjctMTcuOC00Ni4zLTM1LjYtOTIuNi01My40LTEzOS0zLjEtOC4xLTEtMTMuMiA3LTE2LjggMjQuMi0xMSAzOS4zLTI5LjQgNDMuMy01NS44IDEuNS05LjcgMS0xOS42LTEuNS0yOS4xcy02LjktMTguNC0xMi45LTI2LjEtMTMuNi0xNC4xLTIyLjItMTguOC0xOC4xLTcuNS0yNy45LTguM2MtMzktMy40LTcxLjggMjMuNy03Ny41IDU5LjctNS4yIDMzIDExLjEgNjMuNyA0MS45IDc3LjcgOS42IDQuNCAxMS41IDguNiA3LjggMTguNC0xNy45IDQ2LjYtMzUuOCA5My4yLTUzLjcgMTM5LjktMi42IDYuOS04LjMgOS4zLTE1LjUgNi41LTUyLjYtMjAuMy0xMDEuNC02MS0xMzAuOC0xMTktMjQuOS00OS4yLTI1LjItODcuNy0yNi44LTEwOC43em0yMC45LTEuOWMuNCA2LjYgLjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNCAuOCA1LjYtMi4zIDE0LjktMzkuMSAyOS45LTc4LjIgNDUtMTE3LjMgMS4zLTMuMyAuNi00LjgtMi40LTYuNy0zMS42LTE5LjktNDcuMy00OC41LTQ1LjYtODYgMS0yMS42IDkuMy00MC41IDIzLjgtNTYuMyAzMC0zMi43IDc3LTM5LjggMTE1LjUtMTcuNiAxNS42IDkgMjguMiAyMi4zIDM2LjIgMzguNHMxMS4yIDM0LjIgOSA1MmMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDYgMTUuMiAzOS4yIDMwLjMgNzguNCA0NS4yIDExNy43IDEuMiAzLjEgMi40IDMuOCA1LjYgMi4zIDM1LjUtMTYuNiA2NS4yLTQwLjMgODguMS03MiAzNC44LTQ4LjIgNDkuMS0xMDEuOSA0Mi4zLTE2MS0xMy43LTExNy41LTExOS40LTIxNC44LTI1NS41LTE5OC0xMDYuMSAxMy0xOTUuMyAxMDIuNS0xOTcuMSAyMjUuOHoiXX0sQyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnIixpY29uOls1MTIsNTEyLFtdLCJmMjYwIiwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40LTE3OS4yLTE3OS4yIDE3OS4yLTE3OS4yIDQ0LjggNDQuOC0yNS42IDI1LjYtMTkuMi0xOS4yLTEyOCAxMjggMTI4IDEyOCA1MS41LTUxLjUtNzcuMS03Ni41IDI1LjYtMjUuNnpNMzMyLjggNzYuOGwtMTAyLjQgMTAyLjQgMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44IDE3OS4yLTE3OS4yLTE3OS4yLTE3OS4yeiJdfSxUJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnV5c2VsbGFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjIwZCIsIk0yMjQgMTUwLjdsNDIuOSAxNjAuNy04NS44IDAgNDIuOS0xNjAuN3pNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzgyLjcgNDA1LjNsLTk0LjUtMjk4LjctMTI4LjQgMC05NC41IDI5OC43IDkwLjcgMCAxMTEuNy05MS42IDI0LjIgOTEuNiA5MC44IDB6Il19LCQkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE4NS4zIDM4MGMtMzIuOSAwLTY0LjQtMTMuMS04Ny43LTM2LjNzLTM2LjMtNTQuOC0zNi4zLTg3LjcgMTMuMS02NC40IDM2LjMtODcuNyA1NC44LTM2LjMgODcuNy0zNi4zYzMxLjMgMCA2MC4xIDExIDgzIDMyLjNsLTMzLjYgMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSAwLTc3LjIgMzUuNS03Ny4yIDc4LjFTMTQyLjMgMzM0IDE4NS4zIDMzNGMzMi42IDAgNjQuOS0xOS4xIDcwLjEtNTMuM2wtNzAuMSAwIDAtNDIuNiAxMTYuOSAwYzEuMyA2LjggMS45IDEzLjggMS45IDIwLjcgMCA3MC44LTQ3LjUgMTIxLjItMTE4LjggMTIxLjJ6TTQxNS41IDI3My44bDAgMzUuNS0zNS41IDAgMC0zNS41LTM1LjUgMCAwLTM1LjUgMzUuNSAwIDAtMzUuNSAzNS41IDAgMCAzNS41IDM1LjIgMCAwIDM1LjUtMzUuMiAweiJdfSxEJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyZWVucGFsIixpY29uOls1MTIsNTEyLFtdLCJlNTcwIiwiTTI3OC42IDIyLjVhMjIuNSAyMi41IDAgMSAxIC00NSAwIDIyLjUgMjIuNSAwIDEgMSA0NSAwek0xOTguNyAyNTlhNTcuNCA1Ny40IDAgMSAxIDExNC44IDAgNTcuNCA1Ny40IDAgMSAxIC0xMTQuOCAwem0xMzguNiA5MWMyMi4zLTE5LjkgMzYuNS00Ny4zIDM5LjktNzdsMTE5LjUgMGMtMy41IDYxLjQtMzAuNCAxMTkuMi03NS4yIDE2MS40LTQ0LjcgNDIuMi0xMDMuOSA2NS44LTE2NS40IDY1LjhTMTM1LjQgNDc2LjYgOTAuNyA0MzQuNEM0NS45IDM5Mi4yIDE5LjEgMzM0LjQgMTUuNSAyNzNsMTE5LjcgMGMzLjQgMjkuNyAxNy42IDU3LjEgMzkuOSA3N3M1MS4yIDMwLjkgODEuMSAzMC45YzI5IDAgNTguNy0xMSA4MS4xLTMwLjl6TTI4LjMgMTQxLjdhMjIuNSAyMi41IDAgMSAxIDQ1LTEuNCAyMi41IDIyLjUgMCAxIDEgLTQ1IDEuNHptNDU1LjYtLjdhMjIuNCAyMi40IDAgMSAxIC00NC45IDAgMjIuNCAyMi40IDAgMSAxIDQ0LjkgMHpNMzE4IDk1LjNjLTE3LjMgMTMuOC0zOS4yIDIyLjgtNjEuOSAyMi44cy00NC42LTktNjEuOS0yMi44Yy0xNy4zLTE0LjctMjguOC0zNS4xLTMyLjQtNTcuNSAxNS4xLTYuNCAzMC44LTExLjMgNDYuOS0xNC41IDAgMTIuNiA1IDI0LjYgMTMuOSAzMy41czIwLjkgMTMuOSAzMy41IDEzLjkgMjQuNi01IDMzLjUtMTMuOSAxMy45LTIwLjkgMTMuOS0zMy41YzE2LjEgMy4yIDMxLjggOC4xIDQ2LjkgMTQuNS0zLjYgMjIuNC0xNS4xIDQyLjgtMzIuNCA1Ny41ek04Mi45IDIzMWMtMjEuNCA3LjYtNDQuNyA3LjQtNjUuOS0uNiAyLTE2LjMgNS42LTMyLjMgMTAuOC00Ny45IDUuNCAzLjEgMTEuMyA1LjEgMTcuNSA2IDYuMiAuOCAxMi40IC40IDE4LjUtMS4yIDYtMS43IDExLjYtNC40IDE2LjYtOC4yczkuMS04LjUgMTIuMi0xMy45IDUuMS0xMS40IDYtMTcuNWMuOC02LjIgLjQtMTIuNS0xLjItMTguNXMtNC40LTExLjYtOC4yLTE2LjZjLTMuOC00LjktOC41LTkuMS0xMy45LTEyLjIgMTAuOC0xMi4zIDIyLjktMjMuNSAzNi0zMy4zIDE3LjYgMTQuMyAyOS41IDM0LjUgMzMuNiA1Ni44cy4xIDQ1LjQtMTEuMiA2NWMtMTEuNCAxOS42LTI5LjQgMzQuNS01MC43IDQyLjF6bTM0Ni40IC4xYy0yMS4zLTcuNi0zOS4zLTIyLjYtNTAuNy00Mi4yLTExLjMtMTkuNi0xNS4yLTQyLjctMTEuMS02NSA0LjEtMjIuMiAxNi00Mi40IDMzLjUtNTYuNyAxMy4xIDkuOCAyNS4yIDIxIDM2IDMzLjMtMTAuNyA2LjQtMTguNCAxNi43LTIxLjUgMjguOC0zLjIgMTItMi4zIDI0LjggNC44IDM1LjYgNi4yIDEwLjggMTYuNCAxOC43IDI4LjQgMjJzMjQuOSAxLjcgMzUuNy00LjNjNS4zIDE1LjUgOC45IDMxLjYgMTAuOSA0Ny44LTIyLjEgOC4xLTQ0LjYgOC4zLTY2IC43eiJdfSxMJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0Y29pbiIsaWNvbjpbNTEyLDUxMixbXSwiZjM3OSIsIk04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNTQuMy0zNS4zYzQuOS0zMy0yMC4yLTUwLjctNTQuNi02Mi42bDExLjEtNDQuNy0yNy4yLTYuOC0xMC45IDQzLjVjLTcuMi0xLjgtMTQuNS0zLjUtMjEuOC01LjFsMTAuOS00My44LTI3LjItNi44LTExLjIgNDQuN2MtNS45LTEuMy0xMS43LTIuNy0xNy40LTQuMWwwLS4xLTM3LjUtOS40LTcuMiAyOS4xczIwLjIgNC42IDE5LjggNC45YzExIDIuOCAxMyAxMCAxMi43IDE1LjhsLTEyLjcgNTAuOWMuOCAuMiAxLjcgLjUgMi44IC45LS45LS4yLTEuOS0uNS0yLjktLjdsLTE3LjggNzEuM2MtMS4zIDMuMy00LjggOC40LTEyLjUgNi41IC4zIC40LTE5LjgtNC45LTE5LjgtNC45bC0xMy41IDMxLjEgMzUuNCA4LjhjNi42IDEuNyAxMyAzLjQgMTkuNCA1bC0xMS4zIDQ1LjIgMjcuMiA2LjggMTEuMi00NC43YzcuMiAyIDE0LjQgMy44IDIxLjcgNS42bC0xMS4xIDQ0LjUgMjcuMiA2LjggMTEuMy00NS4xYzQ2LjQgOC44IDgxLjMgNS4yIDk2LTM2LjcgMTEuOC0zMy44LS42LTUzLjMtMjUtNjYgMTcuOC00LjEgMzEuMi0xNS44IDM0LjctMzkuOXptLTYyLjIgODcuMmMtOC40IDMzLjgtNjUuMyAxNS41LTgzLjggMTAuOWwxNC45LTU5LjljMTguNCA0LjYgNzcuNiAxMy43IDY4LjggNDl6bTguNC04Ny43Yy03LjcgMzAuNy01NSAxNS4xLTcwLjQgMTEuM2wxMy41LTU0LjNjMTUuNCAzLjggNjQuOCAxMSA1Ni44IDQzeiJdfSxFJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3dpZnQiLGljb246WzQ0OCw1MTIsW10sImY4ZTEiLCJNNDQ4IDE1Ni4xYzAtNC41LS4xLTktLjItMTMuNS0uMS05LjktMS0xOS43LTIuNi0yOS40LTEuNy05LjctNC44LTE5LjItOS4yLTI4LTktMTcuNy0yMy40LTMyLjEtNDEuMi00MS4xLTguOC00LjUtMTguMy03LjYtMjgtOS4yLTkuNy0xLjYtMTkuNi0yLjUtMjkuNC0yLjYtNC41LS4xLTktLjItMTMuNS0uMkwxMjQuMSAzMmMtNC41IDAtOSAuMS0xMy41IC4yLTIuNCAuMS00LjkgLjItNy40IC4zLTcuNCAuMy0xNC44IDEuMS0yMi4xIDIuMy03LjMgMS4zLTE0LjQgMy4zLTIxLjIgNi4xLTIuMyAxLTQuNiAyLTYuOCAzLjEtNi42IDMuNC0xMi44IDcuNS0xOC40IDEyLjMtMS45IDEuNi0zLjcgMy4zLTUuNCA1LTcgNy0xMi45IDE1LTE3LjQgMjMuOC00LjQgOC44LTcuNiAxOC4zLTkuMiAyOC0xLjYgOS43LTIuNCAxOS42LTIuNSAyOS40LS4xIDQuNS0uMiA5LS4yIDEzLjVMMCAzNTUuOWMwIDQuNSAuMSA5IC4yIDEzLjUgLjEgOS45IDEgMTkuNyAyLjYgMjkuNCAxLjcgOS43IDQuOCAxOS4yIDkuMiAyOCA5IDE3LjcgMjMuNCAzMi4xIDQxLjEgNDEuMSA4LjggNC40IDE4LjMgNy41IDI4IDkuMiA5LjcgMS42IDE5LjYgMi41IDI5LjQgMi42IDQuNSAuMSA5IC4yIDEzLjUgLjJsMTk5LjggMGM0LjUgMCA5LS4xIDEzLjUtLjIgOS45LS4xIDE5LjctMSAyOS40LTIuNiA5LjctMS43IDE5LjItNC44IDI4LTkuMiAxNy43LTkgMzIuMS0yMy40IDQxLjEtNDEuMiA0LjQtOC44IDcuNi0xOC4zIDkuMi0yOCAxLjYtOS43IDIuNS0xOS42IDIuNi0yOS40IC4xLTQuNSAuMi05IC4yLTEzLjVsMC0xODMuOGMwLTUuNCAwLTEwLjcgMC0xNnptLTY5LjkgMjQxYy0yMC0zOC45LTU3LjItMjkuMy03Ni4zLTE5LjUtMS43IDEtMy41IDItNS4yIDNsLS40IC4yYy0zOS41IDIxLTkyLjUgMjIuNS0xNDUuOC0uNC00My40LTE4LjgtODAuMS01MC4zLTEwNS4zLTkwLjQgMTIuMyA5LjEgMjUuNCAxNi45IDM5LjIgMjMuNCA1Ni40IDI2LjQgMTEzIDI0LjUgMTUzIDAtNTctNDMuOC0xMDQuNi0xMDEtMTQxLjEtMTQ3LjItNy04LjEtMTMuMi0xNi44LTE4LjgtMjUuOSA0My43IDQwIDExMi43IDkwLjIgMTM3LjUgMTA0LjEtNTIuNi01NS41LTk4LjktMTIzLjktOTYuNy0xMjEuNyA4Mi44IDgzLjQgMTU5LjIgMTMwLjYgMTU5LjIgMTMwLjYgMi45IDEuNiA1IDIuOCA2LjcgNCAxLjYtNC4xIDMtOC4yIDQuMi0xMi41IDEzLjItNDguMy0xLjctMTAzLjYtMzUuMy0xNDkuMiA3Ni44IDQ2LjEgMTIyLjIgMTMzLjcgMTAzLjYgMjA3LjgtLjQgMS43LTEgMy40LTEuNCA1LjEgMzguNSA0Ny40IDI4IDk4LjIgMjMuMSA4OC42bDAgMHoiXX0sUCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpbGVzLXBpbndoZWVsIixpY29uOls1MTIsNTEyLFtdLCJlNjlmIiwiTTI1My41IDI0Ni40TDEzNy4yIDEzMC4yYy0uNi0uNi0xLTEuMy0xLjQtMnMtLjUtMS42LS41LTIuNCAuMi0xLjYgLjUtMi40IC44LTEuNCAxLjQtMkwyNTMuNiA1LjFjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAyMzIuNWMwIDEuMy0uMyAyLjUtMSAzLjZzLTEuNyAxLjktMi45IDIuNC0yLjUgLjYtMy43IC4zLTIuNC0uOS0zLjItMS45em00MC4zLTQuNGwwLTEzNC40YzAtLjggLjEtMS42IC41LTIuNHMuOC0xLjUgMS4zLTIuMSAxLjMtMS4xIDItMS40IDEuNi0uNSAyLjQtLjVsMTM0LjQgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOSAyLjMtMS43IDMuMkwzMDQuMyAyNDYuNGMtLjkgLjgtMiAxLjQtMy4yIDEuNnMtMi40IC4xLTMuNS0uNC0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy40bC4xIC4xem0zMC42IDM1Yy0xLjIgMC0yLjUtLjMtMy41LTFzLTEuOS0xLjYtMi40LTIuOC0uNi0yLjQtLjQtMy42IC44LTIuMyAxLjctMy4yTDQwNCAxODIuMmMuNi0uNiAxLjMtMSAyLTEuNHMxLjYtLjUgMi40LS41IDEuNiAuMiAyLjQgLjUgMS40IC44IDIgMS40bDg0LjQgODQuMmMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTY4LjUgMCAuMS0uMXptOTAuNyAxMzFsLTk1LjMtOTUuMmMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNyAxLjMtMi4xIDIuNC0yLjggMi4zLTEgMy41LTFsOTUuMiAwYzEuNyAwIDMuMiAuNyA0LjQgMS44czEuOCAyLjggMS44IDQuNGwwIDk1LjNjMCAxLjItLjQgMi41LTEuMSAzLjVzLTEuNyAxLjgtMi44IDIuMy0yLjQgLjYtMy42IC4zLTIuMy0uOS0zLjItMS43ek0xNi44IDMwMi4xbDIxNi45IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjggMi4zLTEuNyAzLjJMMTI5LjcgNDIxLjJjLS42IC42LTEuMyAxLTIgMS40cy0xLjYgLjUtMi40IC41LTEuNi0uMi0yLjQtLjUtMS40LS44LTItMS40TDEyLjMgMzEyLjhjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjYgMS4zLTIuMSAyLjMtMi44IDIuMy0xIDMuNS0xbDAtLjF6TTI2NC4zIDQ2NS4zYzAgLjgtLjIgMS42LS41IDIuNHMtLjggMS41LTEuNCAyLTEuMyAxLTIgMS40LTEuNiAuNS0yLjQgLjVsLTEyOCAwYy0xLjIgMC0yLjUtLjQtMy41LTEuMXMtMS44LTEuNy0yLjMtMi44LS42LTIuNC0uMy0zLjYgLjgtMi4zIDEuNy0zLjJsMTI4LTEyOGMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDEyOHptNDAtMTMyLjVsODIuOCA4Mi43Yy42IC42IDEgMS4zIDEuNCAycy41IDEuNiAuNSAyLjQtLjIgMS42LS41IDIuNC0uOCAxLjQtMS40IDJMMzA0LjMgNTA3Yy0uOSAuOS0yIDEuNS0zLjIgMS43cy0yLjUgLjEtMy42LS4zLTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjVsMC0xNjUuNGMwLTEuMiAuNC0yLjUgMS4xLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uMyAyLjMgLjggMy4yIDEuN3pNNzkgMTIyLjRjMC0xLjIgLjMtMi41IDEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS40IDIuMyAuOCAzLjIgMS43TDIzOC4xIDI2Ni40Yy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNDguNCAwYy0xLjcgMC0zLjItLjctNC40LTEuOHMtMS44LTIuOC0xLjgtNC40bDAtMTQ4LjQtLjEtLjF6Il19LEkkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXJhdmVsIixpY29uOls1MTIsNTEyLFtdLCJmM2JkIiwiTTUwNC42IDExNS44Yy0uMS0uMi0uMi0uNS0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjItLjItLjMtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMNDA0LjYgNTUuNWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwzMDAuMyAxMTFjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4yLS40IC40LS41IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMTA1LjItODAuMiA0Ni4yIDAtMjA1LjljMC0uNy0uMS0xLjQtLjMtMi4xLS4xLS4yLS4yLS40LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMS0uMy0uNC0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0wxMTUuOCAxLjFjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMTEuNSA1Ni41Yy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMy0uNCAuNS0uNiAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDMyOS43YzAgMS40IC40IDIuOCAxLjEgNHMxLjcgMi4yIDIuOSAyLjlMMjA0IDUxMC45Yy40IC4yIC45IC40IDEuMyAuNSAuMiAuMSAuNCAuMiAuNiAuMyAxLjMgLjQgMi44IC40IDQuMSAwIC4yLS4xIC40LS4yIC42LS4yIC41LS4yIDEtLjMgMS40LS42TDQwNC42IDQwMC4xYzEuMi0uNyAyLjItMS43IDIuOS0yLjlzMS4xLTIuNiAxLjEtNGwwLTEwNS4zIDkyLjItNTMuMWMxLjItLjcgMi4yLTEuNyAyLjktM3MxLjEtMi42IDEuMS00bDAtMTA5LjhjMC0uNy0uMS0xLjQtLjItMi4xek0xMTEuOCAxNy4zbDgwLjIgNDYuMS04MC4yIDQ2LjItODAuMi00Ni4yIDgwLjItNDYuMnptODguMiA2MGwwIDIwMS4zYy0zMy4yIDE5LjEtNTkuOSAzNC41LTgwLjIgNDYuMmwwLTIwMS4zQzE1MyAxMDQuNCAxNzkuNyA4OSAyMDAgNzcuM3ptMCA0MTIuOEwyMy41IDM4OC41IDIzLjUgNzcuM2MyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDIxNS4yYzAgLjMgLjEgLjYgLjEgLjkgMCAuNCAuMSAuOCAuMiAxLjIgLjEgLjMgLjIgLjYgLjQgLjkgLjEgLjMgLjMgLjcgLjQgMSAuMiAuMyAuNCAuNSAuNiAuOCAuMiAuMyAuNCAuNiAuNyAuOCAuMiAuMiAuNSAuNCAuOCAuNiAuMyAuMiAuNiAuNSAuOSAuN2w5Mi4yIDUyLjIgLjEgOTIuNHptOC0xMDYuMkwxMjggMzM4LjZjNTQuNy0zMS41IDExMy41LTY1LjMgMTc2LjMtMTAxLjVsODAuMSA0Ni4xQzM1NSAzMDAgMjk2LjIgMzMzLjUgMjA4IDM4My45em0xODQuNSA0LjZsLTE3Ni41IDEwMS42IDAtOTIuM0MzMTcuNCAzNDAgMzc2LjIgMzA2LjQgMzkyLjUgMjk3bDAgOTEuNHptMC0xMTkuMWMtMjAuMy0xMS42LTQ3LjEtMjctODAuMi00Ni4xbDAtOTEuNGMyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDkxLjN6bTgtMTA1LjNsLTgwLjItNDYuMiA4MC4yLTQ2LjIgODAuMiA0Ni4xLTgwLjIgNDYuMnptOCAxMDUuM2wwLTkxLjNjMzMuMi0xOS4xIDYwLTM0LjUgODAuMy00Ni4ybDAgOTEuNC04MC4zIDQ2LjJ6Il19LEEkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGZvcm1zIixpY29uOls0NDgsNTEyLFtdLCJmMjk4IiwiTTQ0OCA3NS4ybDAgMzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ybC0zNjEuNiAwQzE5LjMgNDgwIDAgNDYxLjQgMCA0MzYuOEwwIDc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmwzNjEuNyAwYzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnpNNDEwLjcgNDM2LjhsMC0zNjEuNmMwLTMtMi42LTUuOC01LjgtNS44bC05LjMgMC0xMTAuMyA3NC42LTYxLjMtNDkuOS02MS4yIDQ5LjktMTEwLjMtNzQuNy05LjMgMGMtMy4yIDAtNS44IDIuOC01LjggNS44bDAgMzYxLjdjMCAzIDIuNiA1LjggNS44IDUuOGwzNjEuNyAwYzMuMiAuMSA1LjgtMi43IDUuOC01Ljh6TTE1MC4yIDE4NmwwIDM3LTczLjUgMCAwLTM3IDczLjUgMHptMCA3NC40bDAgMzcuMy03My41IDAgMC0zNy4zIDczLjUgMHptMTEuMS0xNDcuM2w1NC00My43LTExOC41IDAgNjQuNSA0My43em0yMTAgNzIuOWwwIDM3LTE5NiAwIDAtMzcgMTk2IDB6bTAgNzQuNGwwIDM3LjMtMTk2IDAgMC0zNy4zIDE5NiAwek0yODYuNyAxMTMuMWw2NC41LTQzLjctMTE4LjQgMCA1My45IDQzLjd6TTM3MS4zIDMzNWwwIDM3LjMtOTkuNCAwIDAtMzcuMyA5OS40IDB6Il19LE4kdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2VyLWRlY2siLGljb246WzUxMiw1MTIsW10sImY4M2MiLCJNMjEzLjkgMjk2TDEwMCAyOTZjLTI2LjUgMC01Mi0xMC41LTcwLjctMjkuM1MwIDIyMi41IDAgMTk2IDEwLjUgMTQ0IDI5LjMgMTI1LjMgNzMuNSA5NiAxMDAgOTZsMTMyLjggMGMxMC42IDAgMjAuOCA0LjIgMjguMyAxMS43czExLjcgMTcuNyAxMS43IDI4LjMtNC4yIDIwLjgtMTEuNyAyOC4zLTE3LjcgMTEuNy0yOC4zIDExLjdMOTggMTc2Yy0yNi41IDAtMjYuNCA0MCAwIDQwbDExMy44IDBjMjYuNSAwIDUyIDEwLjUgNzAuNyAyOS4zczI5LjMgNDQuMiAyOS4zIDcwLjctMTAuNSA1Mi0yOS4zIDcwLjctNDQuMiAyOS4zLTcwLjcgMjkuM0w0MCA0MTZjLTEwLjYgMC0yMC44LTQuMi0yOC4zLTExLjdTMCAzODYuNiAwIDM3NiA0LjIgMzU1LjIgMTEuNyAzNDcuNyAyOS40IDMzNiA0MCAzMzZsMTczLjkgMGMyNi41IDAgMjYuNS00MCAwLTQwek0yOTggNDE2YzEzLjUtOS4yIDI1LTIxIDMzLjgtMzQuN3MxNC43LTI5LjIgMTcuMy00NS4zbDY0LjYgMGMyLjYgMCA1LjItLjYgNy42LTEuNnM0LjYtMi41IDYuNC00LjQgMy4zLTQuMSA0LjItNi41IDEuNS01IDEuNC03LjZsMC0xMjBjMC0yLjYtLjUtNS4yLTEuNC03LjZzLTIuNC00LjYtNC4yLTYuNS00LTMuMy02LjQtNC40LTUtMS42LTcuNi0xLjZsLTExNy4yIDBjOS43LTExLjEgMTUtMjUuMyAxNS00MHMtNS4zLTI4LjktMTUtNDBsMTM2LjkgMGM0My40IDAgNzguNiAzNS44IDc4LjYgODBsMCAxNjBjMCA0NC4yLTM1LjIgODAtNzguNiA4MEwyOTggNDE2eiJdfSxSJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpY2tyIixpY29uOls0NDgsNTEyLFtdLCJmMTZlIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAxOTJhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3ptMTU5IDBhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3oiXX0sTyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXZpc2EiLGljb246WzU3Niw1MTIsW10sImYxZjAiLCJNNDcwLjEgMjMxLjNzNy42IDM3LjIgOS4zIDQ1bC0zMy40IDBjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIgLjMgMy4zLTkuMSA1LjMtMTQuOWwyLjggMTMuNHpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTUyLjUgMzMxLjJsNjMuMi0xNTUuMi00Mi41IDAtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFsLTY0LjcgMC0uNyAzLjFjMTUuOCA0IDI5LjkgOS44IDQyLjIgMTcuMWwzNS44IDEzNSA0Mi41IDB6bTk0LjQgLjJsMjUuMi0xNTUuNC00MC4yIDAtMjUuMSAxNTUuNCA0MC4xIDB6bTEzOS45LTUwLjhjLjItMTcuNy0xMC42LTMxLjItMzMuNy00Mi4zLTE0LjEtNy4xLTIyLjctMTEuOS0yMi43LTE5LjIgLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIgLjEgNjkuNy0yMC44IDcwLTUzek01MjggMzMxLjRsLTMyLjQtMTU1LjQtMzEuMSAwYy05LjYgMC0xNi45IDIuOC0yMSAxMi45bC01OS43IDE0Mi41IDQyLjIgMHM2LjktMTkuMiA4LjQtMjMuM2w1MS42IDBjMS4yIDUuNSA0LjggMjMuMyA0LjggMjMuM2wzNy4yIDB6Il19LEYkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHdvcmsiLGljb246WzY0MCw1MTIsW10sImU2NDEiLCJNNDkzLjkgMjk1LjZjLTUwLjMgMC04My41LTM4LjktOTIuOC01My45IDExLjktOTUuMyA0Ni44LTEyNS40IDkyLjgtMTI1LjQgNDUuNSAwIDgwLjkgMzYuNCA4MC45IDg5LjdzLTM1LjQgODkuNy04MC45IDg5LjdsMC0uMXptMC0yMzcuOGMtODEuOSAwLTEyNy44IDUzLjQtMTQxIDEwOC40LTE0LjktMjgtMjUuOS02NS41LTM0LjUtMTAwLjNsLTExMy4yIDAgMCAxNDFjMCA1MS4xLTIzLjMgODktNjguOCA4OXMtNzEuNi0zNy44LTcxLjYtODlsLjUtMTQxLTY1LjMgMCAwIDE0MWMwIDQxLjEgMTMuMyA3OC40IDM3LjYgMTA1LjEgMjUgMjcuNSA1OS4yIDQxLjggOTguOCA0MS44IDc4LjggMCAxMzMuOC02MC40IDEzMy44LTE0Ni45bDAtOTQuOGM4LjIgMzEuMiAyNy44IDkxLjEgNjUuMyAxNDMuNmwtMzUgMTk5LjQgNjYuNCAwIDIzLjEtMTQxLjNjNy42IDYuMyAxNS43IDEyIDI0LjIgMTcgMjIuMiAxNCA0Ny43IDIxLjkgNzMuOSAyMi44IDAgMCA0IC4yIDYuMSAuMiA4MS4yIDAgMTQ1LjktNjIuOSAxNDUuOS0xNDcuOFM1NzUuMyA1Ny45IDQ5NC4xIDU3LjlsLS4yLS4xeiJdfSxCJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FrYW8tdGFsayIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNyIsIk0yODggMi41YzE1OS4xIDAgMjg4IDEwMS43IDI4OCAyMjcuMSAwIDEyNS40LTEyOC45IDIyNy4xLTI4OCAyMjcuMS0xNy41IDAtMzQuNi0xLjItNTEuMi0zLjYtMTYuNiAxMS43LTExMi42IDc5LjEtMTIxLjcgODAuNCAwIDAtMy43IDEuNC02LjktLjRzLTIuNi02LjctMi42LTYuN0MxMDYuNiA1MTkuOCAxMzAuNiA0MzcuMiAxMzUgNDIxLjkgNTMuOSAzODEuOCAwIDMxMC42IDAgMjI5LjUgMCAxMDQuMSAxMjguOSAyLjUgMjg4IDIuNXpNODYuMiAxNjEuN2MtOSAwLTE2LjMgNy4zLTE2LjMgMTYuM3M3LjMgMTYuMyAxNi4zIDE2LjNsMjUuOSAwIDAgOTguN2MwIDguOCA3LjUgMTUuOSAxNi42IDE1LjlzMTYuNi03LjEgMTYuNi0xNS45bDAtOTguNyAyNS45IDBjOSAwIDE2LjMtNy4zIDE2LjMtMTYuM3MtNy4zLTE2LjMtMTYuMy0xNi4zbC04NS4xIDB6bTE0MC44IDBjLTEwLjggLjItMTkuMyA4LjQtMjIuMSAxNi40TDE2NS4yIDI4Mi43Yy01IDE1LjctLjYgMjEuNSAzLjkgMjMuNiAzLjIgMS41IDYuOSAyLjMgMTAuNiAyLjMgNi45IDAgMTIuMi0yLjggMTMuOC03LjNsOC4yLTIxLjYgNTAuNyAwIDguMiAyMS41YzEuNiA0LjUgNi45IDcuMyAxMy44IDcuMyAzLjcgMCA3LjMtLjggMTAuNi0yLjMgNC42LTIuMSA5LTcuOSAzLjktMjMuNkwyNDkuMiAxNzguMWMtMi44LTgtMTEuMy0xNi4yLTIyLjItMTYuNHptMTgwLjkgMGMtOS4yIDAtMTYuNiA3LjUtMTYuNiAxNi42bDAgMTEzLjdjMCA5LjIgNy41IDE2LjYgMTYuNiAxNi42czE2LjYtNy41IDE2LjYtMTYuNmwwLTM2LjIgNS44LTUuOCAzOC45IDUxLjZjMy4yIDQuMiA4IDYuNiAxMy4zIDYuNiAzLjYgMCA3LjEtMS4xIDEwLTMuMyAzLjUtMi43IDUuOC02LjYgNi40LTExcy0uNS04LjgtMy4yLTEyLjNsLTQwLjktNTQuMiAzNy45LTM3LjhjMi42LTIuNiAzLjktNi4yIDMuNy0xMC4xLS4yLTMuOS0yLTcuNi00LjktMTAuNS0zLjEtMy4xLTcuMy00LjktMTEuNC00LjktMy42IDAtNi44IDEuMy05LjIgMy43bC00Ni4zIDQ2LjQgMC0zNS43YzAtOS4yLTcuNS0xNi42LTE2LjYtMTYuNnptLTkxLjMgMGMtOS4zIDAtMTYuOSA3LjUtMTYuOSAxNi42bDAgMTEyLjhjMCA4LjQgNy4xIDE1LjIgMTUuOSAxNS4zbDUzLjMgMGM4LjggMCAxNS45LTYuOSAxNS45LTE1LjNzLTcuMi0xNS4yLTE1LjktMTUuMmwtMzUuMyAwIDAtOTcuNmMwLTkuMi03LjYtMTYuNi0xNy0xNi42em0tNzMgODguNmwtMzMuMiAwIDE2LjYtNDcuMSAxNi42IDQ3LjF6Il19LEgkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHV0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjk0IiwiTTQyOS41IDIzNi4zTDI5MS43IDM3NC4xIDQyOS41IDUxMiAyNzIgNTEyYy0zNi4xLTM2LjEtODIuMS04Mi4xLTEzNy45LTEzNy45bDEzNy45LTEzNy44IDE1Ny41IDB6TTI3MiAwTDE2IDI1NiA5NC44IDMzNC44IDQyOS41IDAgMjcyIDB6Il19LHEkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidWZmZXIiLGljb246WzQ0OCw1MTIsW10sImY4MzciLCJNNDI4LjIgMzgwLjdMMjMxLjcgNDc4LjVjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDIwLjUgMzgwLjdjLTQtMi00LTUuMyAwLTcuM0w2Ny42IDM1MGMyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDEzNC44IDY3YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTM0LjgtNjdjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWw0Ny4xIDIzLjRjNCAyIDQgNS4yIDAgNy4yem0wLTEzNi41bC00Ny4xLTIzLjRjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIzMS43IDI4Ny44Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUw4Mi4zIDIyMC43Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMC41IDI0NC4xYy00IDItNCA1LjMgMCA3LjNsMTk2LjUgOTcuOGMyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDE5Ni41LTk3LjhjNC0yIDQtNS4zIDAtNy4zek0yMC41IDEzMC40TDIxNyAyMjAuN2M0LjcgMS45IDEwIDEuOSAxNC43IDBsMTk2LjUtOTAuM2M0LTEuOSA0LTQuOSAwLTYuN0wyMzEuNyAzMy40Yy00LjctMS45LTEwLTEuOS0xNC43IDBMMjAuNSAxMjMuN2MtNCAxLjgtNCA0LjkgMCA2Ljd6Il19LGokdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF0aXBheSIsaWNvbjpbNTEyLDUxMixbXSwiZjE4NCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTM3NC4zIDIzMy43TDI1Ny43IDM5MS4zIDE0MS4zIDIzMy43Yy05LTEyLjMtMTkuNy01MiAxNC03NC4zIDI5LTE4LjcgNTYuNC00LjMgNzAuNyAxMi4zIDE2LjQgMTguNSA0OC4xIDE3LjQgNjMuNyAwIDE0LjMtMTYuNiA0MS43LTMxIDcwLjMtMTIuMyAzNCAyMi4zIDIzLjMgNjEuOSAxNC4yIDc0LjN6Il19LFYkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJlMDc5IiwiTTEwNS43IDIxNWwwIDQxLjIgNTcuMSAwYy0xLjIgNi42LTMuNiAxMi45LTcuMiAxOC41cy04LjQgMTAuNC0xMy45IDE0LjFjLTkuNSA2LjYtMjEuNyAxMC4zLTM2IDEwLjMtMjcuNiAwLTUwLjktMTguOS01OS4zLTQ0LjItNC40LTEzLjMtNC40LTI3LjcgMC00MSA4LjQtMjUuNSAzMS43LTQ0LjQgNTkuMy00NC40IDcuNS0uMSAxNC45IDEuMiAyMS45IDRzMTMuMyA2LjkgMTguNiAxMi4xTDE3Ni41IDE1NWMtMTkuMS0xOC4xLTQ0LjQtMjguMS03MC43LTI3LjgtMTkuNyAuMS0zOC45IDUuNy01NS42IDE2LjFzLTMwLjEgMjUuMy0zOC44IDQzQzMuOSAyMDEuMiAwIDIxNy43IDAgMjM0LjRzMy45IDMzLjIgMTEuMyA0OC4xbDAgLjJjOC43IDE3LjcgMjIuMSAzMi41IDM4LjggNDNzMzUuOSAxNiA1NS42IDE2YzI4LjUgMCA1Mi41LTkuNSA3MC0yNS45IDIwLTE4LjYgMzEuNC00Ni4yIDMxLjQtNzguOSAwLTcuMy0uNi0xNC42LTEuOC0yMS44bC05OS43IDB6bTM4OS40LTRjLTEwLjEtOS40LTIzLjktMTQuMS00MS40LTE0LjEtMjIuNSAwLTM5LjMgOC4zLTUwLjUgMjQuOUw0MjQuMSAyMzVjNy42LTExLjMgMTguMS0xNyAzMS4zLTE3IDguNCAwIDE2LjUgMy4yIDIyLjcgOC44IDMgMi42IDUuNSA1LjkgNy4xIDkuNnMyLjUgNy42IDIuNSAxMS43bDAgNS41Yy05LjEtNS4xLTIwLjYtNy44LTM0LjYtNy44LTE2LjQgMC0yOS42IDMuOS0zOS41IDExLjhzLTE0LjggMTguMy0xNC44IDMxLjZjLS4yIDUuOSAxIDExLjggMy40IDE3LjJzNiAxMC4yIDEwLjUgMTQuMWM5LjIgOC4zIDIxIDEyLjUgMzQuOCAxMi41IDE2LjMgMCAyOS4yLTcuMyAzOS0yMS45bDEgMCAwIDE3LjcgMjIuNiAwIDAtNzguN2MuMS0xNi42LTQuOS0yOS43LTE1LTM5em0tMTkuMiA4OS4zYy0zLjUgMy41LTcuNiA2LjMtMTIuMiA4LjJzLTkuNSAyLjktMTQuNCAyLjljLTYuNyAuMS0xMy4xLTIuMS0xOC4zLTYuMi0yLjQtMS44LTQuNC00LjItNS43LTYuOXMtMi01LjctMi04LjdjMC03IDMuMi0xMi44IDkuNS0xNy40czE0LjUtNyAyNC4xLTdjMTMuMi0uMiAyMy41IDIuOCAzMC44IDguOCAwIDEwLjEtNCAxOC45LTExLjcgMjYuNHptLTkzLjctMTQyYy01LjMtNS4zLTExLjYtOS41LTE4LjYtMTIuM3MtMTQuNC00LjItMjEuOS00bC02Mi43IDAgMCAxODYuNyAyMy42IDAgMC03NS42IDM5IDBjMTYgMCAyOS41LTUuNCA0MC41LTE1LjkgLjktLjkgMS44LTEuOCAyLjYtMi43IDkuNi0xMC41IDE0LjgtMjQuNCAxNC4zLTM4LjZzLTYuNi0yNy43LTE2LjktMzcuNmwwIDB6bS0xNi42IDYyLjJjLTMgMy4yLTYuNiA1LjctMTAuNiA3LjRzLTguNCAyLjUtMTIuNyAyLjNsLTM5LjYgMCAwLTY1LjIgMzkuNiAwYzguNSAwIDE2LjYgMy4zIDIyLjYgOS4yIDYuMSA2LjEgOS42IDE0LjMgOS44IDIzcy0zLjEgMTctOSAyMy4zbDAgMHpNNjE0LjMgMjAxbC0zNi41IDkxLjctLjUgMC0zNy40LTkxLjctMjUuNyAwIDUxLjggMTE5LjYtMjkuNCA2NC4zIDI0LjMgMCA3OS0xODMuOS0yNS43IDB6Il19LFUkdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjE3OSIsIk0zMTkuMSAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuNy01NS44IC45LTExNS4xIDQ0LjUtMTE1LjEgMTMzLjIgMCAyNi4yIDQuOCA1My4zIDE0LjQgODEuMiAxMi44IDM2LjcgNTkgMTI2LjcgMTA3LjIgMTI1LjIgMjUuMi0uNiA0My0xNy45IDc1LjgtMTcuOSAzMS44IDAgNDguMyAxNy45IDc2LjQgMTcuOSA0OC42LS43IDkwLjQtODIuNSAxMDIuNi0xMTkuMy02NS4yLTMwLjctNjEuNy05MC02MS43LTkxLjl6TTI2Mi41IDEwNC41YzI3LjMtMzIuNCAyNC44LTYxLjkgMjQtNzIuNS0yNC4xIDEuNC01MiAxNi40LTY3LjkgMzQuOS0xNy41IDE5LjgtMjcuOCA0NC4zLTI1LjYgNzEuOSAyNi4xIDIgNDkuOS0xMS40IDY5LjUtMzQuM3oiXX0sVyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR1bWJsciIsaWNvbjpbMzIwLDUxMixbXSwiZjE3MyIsIk0zMDkuOSA0ODAuM2MtMTMuNiAxNC41LTUwIDMxLjctOTcuNCAzMS43LTEyMC44IDAtMTQ3LTg4LjgtMTQ3LTE0MC42bDAtMTQ0LTQ3LjUgMGMtNS41IDAtMTAtNC41LTEwLTEwbDAtNjhjMC03LjIgNC41LTEzLjYgMTEuMy0xNiA2Mi0yMS44IDgxLjUtNzYgODQuMy0xMTcuMSAuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNsNzAuOSAwYzUuNSAwIDEwIDQuNSAxMCAxMGwwIDExNS4yIDgzIDBjNS41IDAgMTAgNC40IDEwIDkuOWwwIDgxLjdjMCA1LjUtNC41IDEwLTEwIDEwbC04My40IDAgMCAxMzMuMmMwIDM0LjIgMjMuNyA1My42IDY4IDM1LjggNC44LTEuOSA5LTMuMiAxMi43LTIuMiAzLjUgLjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXoiXX0sRyR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBob2VuaXgtc3F1YWRyb24iLGljb246WzUxMiw1MTIsW10sImY1MTEiLCJNOTYgNjMuNGM0Ni41LTM2LjEgMTA1LjYtNTYuMSAxNjQuNS01NC42IDI5LjYtLjQgNTkuMSA1LjQgODYuOSAxNS4zLTI0LjEtNC42LTQ5LTYuMy03My40LTIuNS00Mi45IDUuMy04MyAyNy4yLTExMS44IDU5LjIgNS43LTEgMTAuOC0zLjcgMTYtNS45IDE4LjEtNy45IDM3LjUtMTMuMyA1Ny4yLTE0LjggMTkuNy0yLjEgMzkuNi0uNCA1OS4zIDEuOS0xNC40IDIuOC0yOS4xIDQuNi00MyA5LjYtMzQuNCAxMS4xLTY1LjMgMzMuMi04Ni4zIDYyLjYtMTMuOCAxOS43LTIzLjYgNDIuOS0yNC43IDY3LjEtLjQgMTYuNSA1LjIgMzQuOCAxOS44IDQ0IDExLjIgNi44IDI0LjYgOS4yIDM3LjUgNi43IDE1LjQtMi41IDMwLjEtOC42IDQzLjYtMTYuMyAxMS41LTYuOCAyMi43LTE0LjYgMzItMjQuMyAzLjgtMy4yIDIuNS04LjQgMi42LTEyLjgtMi4xLS4zLTQuNC0xLjEtNi4zIC4zLTExLjQgNi4zLTIzLjQgMTEuNC0zNS44IDE1LjQtMjAgNi4yLTQyLjIgOC41LTYyLjEgLjggMTIuOCAxLjcgMjYuMSAuMyAzNy43LTUuNCAyMC4yLTkuNyAzNi44LTI1LjIgNTQuNC0zOC44IDI3LjctMjEuMyA1Ny41LTM5LjkgODguOS01NS4zIDI1LjctMTIgNTIuOS0yMi44IDgxLjYtMjQuMS0xNS42IDEzLjctMzIuMSAyNi41LTQ2LjggNDEuNC0xNC41IDE0LTI3LjUgMjkuNS00MC4xIDQ1LjItMy41IDQuNi05IDYuOS0xMy42IDEwLjItMjIuNCAxNS00MC4zIDM1LjgtNTEuOSA2MC4xLTkuMyAxOS43LTE0LjUgNDEuOS0xMS44IDYzLjYgMS45IDEzLjcgOC43IDI3LjYgMjAuOSAzNC45IDEyLjkgOCAyOSA4LjEgNDMuNSA1LjEgMzIuOC03LjQgNjEuNC0yOC45IDgxLTU1LjggMjAuNC0yNy41IDMwLjUtNjIuMiAyOS4yLTk2LjMtLjUtNy41LTEuNi0xNS0xLjctMjIuNSA4IDE5LjUgMTQuOCAzOS43IDE2LjYgNjAuOCAyIDE0LjMgLjcgMjguOC0xLjYgNDIuOS0xLjkgMTEtNS43IDIxLjUtNy44IDMyLjQgMjAuNC0yMi45IDM0LTUwLjkgMzkuMy04MS4xIDUuNi0zNS41IC43LTcxLjktMTQuMi0xMDQuNiAyMC44IDMyIDMyLjMgNjkuNiAzNS43IDEwNy41IC41IDEyLjcgLjUgMjUuNSAwIDM4LjItMi44IDM0LjMtMTIuOSA2Ny42LTI5LjYgOTcuOC0yNi4xIDQ3LjMtNjggODUuNi0xMTcuMiAxMDgtNzguMyAzNi4yLTE3NC43IDMxLjMtMjQ4LTE0LjctMzktMjMuOC03MC42LTU4LTkxLjQtOTguNy0xNC43LTI4LjktMjMuMy02MC41LTI1LjQtOTIuOWwwLTMxLjNDMy45IDE3MiA0MC45IDEwNS44IDk2IDYzLjR6bTIyMiA4MC4zYzUuNS0uOSAxMC44LTIuNCAxNi00LjUgNS0xLjggOS4yLTUuOSAxMC4zLTExLjItOSA1LTE4IDkuOS0yNi4zIDE1Ljd6Il19LEskdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50ZXJjb2RlIixpY29uOls1MTIsNTEyLFtdLCJmMzgwIiwiTTIwMS44IDI1NC44YTY0LjEgNjQuMSAwIDEgMSAxMjcuNCAxMy44IDY0LjEgNjQuMSAwIDEgMSAtMTI3LjQtMTMuOHptNDEuNiAyNDguOUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuMyAyMS4zIDEzNy43IDc1LjkgNjcuNCAxNDkuMiAzMi4zIDMxMC4yLTQ0LjggNDk4LjkgNjkuNyA1MDMuOSAyNDguOSA1MDggMzk1LjkgMzg1LjUgNTExLjEgMjQzLjQgNTAzLjd6bTE3OS45LTE4MGMyNy45LTExOC0xNjAuNS0yMDUuOS0yMzcuMi0yMzQuMi01Ny41IDU2LjMtNjkuMSAxODguNi0zMy44IDM0NC40IDY4LjggMTUuOCAxNjkuMS0yNi40IDI3MS0xMTAuMnoiXX0sWSR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlYmlhbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTYwYiIsIk0zODAuNCAyNDUuNmMzLTcuNiA1LjUtMTQgNS4yLTI0LjRsLTQuMyA5YzQuNC0xMy4yIDQtMjcuMSAzLjYtNDAuNC0uMi02LS4zLTExLjggMC0xNy40bC0xLjgtLjVjLTEuNS00NS4yLTQwLjYtOTMuMS03NS4zLTEwOS40LTMwLTEzLjgtNzYuMS0xNi4yLTk3LjMtNS44IDEuMy0xLjEgNC4yLTIgNi44LTIuN2wuMy0uMWMzLjMtMSA2LTEuNyA0LTIuOS0xOS4yIDEuOS0yNC45IDUuNS0zMS4xIDkuNGwtLjEgMGMtNC42IDIuOS05LjUgNi0yMC4zIDguNy0zLjUgMy40IDEuNyAyIDUuOCAuOXM3LjItMS45LS4xIDIuNGMtMy41IDEtNi42IDEuMy05LjYgMS42bC0uMSAwYy04LjMgLjgtMTUuOCAxLjYtMzAuNyAxNyAuOCAxLjMgMy40LS4yIDUuMy0xLjNsLjEtLjFjMi4zLTEuNCAzLjQtMi0xLjcgNC40LTE5LjEtMi40LTYwLjMgNDMuNy02OS4xIDU5bDQuNiAuOGMtMy4yIDgtNi44IDE0LjgtMTAgMjAuOC00LjMgOC4xLTcuOSAxNC45LTguNyAyMS4zLS4zIDUuMS0xIDExLTEuNyAxNy4zLS4xIDEtLjIgMi0uMyAzbC0uMSAuNmMtMyAyNy4zLTYuNyA2MC44IDMuOSA3M2wtMS4zIDEzYy42IDEuMiAxLjEgMi4zIDEuNiAzLjUgLjIgLjQgLjQgLjggLjUgMS4xIDEgMi4xIDIgNC4yIDMuMyA2LjJsLTMgLjJjNyAyMi4xIDEwLjggMjIuNSAxNS4xIDIyLjkgNC40IC40IDkuMyAuOSAxOC43IDI0LjItMi43LS45LTUuNS0xLjktOS40LTcuMi0uNSA0LjEgNS44IDE2LjMgMTMuMSAyNS44bC0zLjEgMy42YzIuMSAzLjcgNC44IDYuMiA3LjYgOC44IDEgLjkgMi4xIDEuOSAzLjEgMi45LTExLjktNi41IDMuMiAxMy43IDExLjkgMjUuMiAuOCAxLjEgMS41IDIgMi4yIDIuOSAxLjQgMS45IDIuNSAzLjQgMi45IDQuMWwyLjQtNC4yYy0uMyA2LjEgNC4zIDEzLjkgMTMuMSAyNC43bDcuMy0uM2MzIDYgMTQgMTYuNyAyMC43IDE3LjJsLTQuNCA1LjhjOC4xIDIuNiAxMC4zIDQuMyAxMi43IDYuMiAyLjYgMi4xIDUuNCA0LjMgMTYuMSA4LjFsLTQuMi03LjRjMy41IDMgNi4yIDUuOSA4LjggOC43bC4xIC4xYzUuMiA1LjYgOS45IDEwLjYgMTkuNyAxNS4zIDEwLjcgMy43IDE2LjYgNC43IDIyLjcgNS44IC4zIDAgLjYgLjEgLjkgLjEgNS40IC44IDExLjIgMS44IDIwLjggNC41LTEuMS0uMS0yLjItLjEtMy4zLS4xLTIuMy0uMS00LjctLjEtNy0uMS0xNC40LS4yLTI5LjItLjQtNDIuNy01LjItOTYuNi0yNS43LTE4NC45LTEzOS0xNzguNC0yNTUuNi0uNi05LjktLjMtMjAuOSAwLTMwLjcgLjQtMTMuNSAuNy0yNC44LTEuNi0yOC4zbDEtMy4xYzUuMy0xNy40IDExLjctMzguMiAyMy44LTYyLjhsLS4xLS4yIDAtLjFjLjQgLjQgMy40IDMuNCA4LjgtNS44IC44LTEuOCAxLjYtMy43IDIuNC01LjYgLjUtMS4xIC45LTIuMiAxLjQtMy4yIDIuNS02LjEgNS4xLTEyLjMgOC40LTE3LjlsMi42LS42YzEuNy0xMC4xIDE3LTIzLjggMjkuOC0zNS4ybDEuMS0xYzUuNy01LjEgMTAuNy05LjcgMTMuNi0xMy4xbC43IDQuNGMxNy0xNS45IDQ0LjYtMjcuNSA2NS42LTM2LjRsLjUtLjJjNC44LTIgOS4zLTMuOSAxMy4zLTUuNy0zLjQgMy44IDIuMiAyLjcgMTAgMSA0LjgtMSAxMC40LTIuMSAxNS4zLTIuNGwtMy45IDIuMWMtMi43IDEuNC01LjQgMi44LTggNC42IDguMS0yIDExLjctMS40IDE1LjctLjhsLjMgMGMzLjUgLjYgNy4zIDEuMiAxNC42IC4yLTUuNiAuOC0xMi4zIDMtMTEuMiAzLjggNy45IC45IDEyLjgtLjEgMTcuMi0xbC4yIDBjNS41LTEuMSAxMC4zLTIgMTkuMyAuOWwtMS00LjhjNy4zIDIuNiAxMi43IDQuMyAxNy41IDUuOGwuNSAuMWMxMCAzIDE3LjYgNS4zIDM0LjIgMTQuMSAzLjIgLjIgNS4zLS41IDcuNC0xLjJsLjEgMGMzLjYtMS4xIDctMi4xIDE1LjIgMS4yIC4zIC41IC41IDEgLjcgMS40IC4xIC4yIC4yIC41IC4zIC43bDAgLjFjMSAyLjYgMS44IDQuNiAxNC42IDEyLjEgMS43LS43LTIuNy00LjctNi40LTguMmwtLjEtLjFjLS4yLS4xLS4zLS4zLS41LS40IDMyLjIgMTcuMyA2Ny4zIDU0LjEgNzggOTMuNS02LTExLjEtNS4yLTUuNS00LjMgLjUgLjYgNCAxLjIgOC4xLS4yIDcuNSA0LjUgMTIuMSA4LjEgMjQuNSAxMC40IDM3LjRsLS44LTIuOS0uMS0uM2MtMy4zLTExLjktOS42LTM0LjMtMTkuOS00OS4zLS40IDQuMy0yLjggMy45LTUuMiAzLjVsLS4xIDBjLTMuMy0uNi02LjItMS4xLTEuOSAxMi42IDIuNiAzLjggMy4xIDIuNCAzLjUgMS4xIC41LTEuNSAuOS0yLjcgNC43IDUuMiAuMSA0LjEgMSA4LjIgMi4xIDEyLjdsLjEgLjZjLjEgLjMgLjEgLjUgLjIgLjhsLjEgLjZjLjYgMi42IDEuMyA1LjQgMS44IDguNC0xLjEtLjItMi4zLTIuMi0zLjQtNC4yLTEuNC0yLjQtMi44LTQuNy0zLjctMy4yIDIuNCAxMS41IDYuNSAxNy40IDggMTguMy0uMyAuNi0uNiAuNy0xLjEgLjctLjggMC0xLjggLjEtMS45IDUuMyAuNyAxMy43IDMuMyAxMi41IDUuMyAxMS42IC42LS4zIDEuMi0uNiAxLjctLjQtLjYgMi41LTEuNiA1LjEtMi43IDcuOS0yLjggNy4xLTYgMTUuNC0zLjQgMjYuMS0uOC0zLTItNi0zLjEtOC45bC0uMS0uNGMtLjItLjUtLjQtMS0uNi0xLjUtLjMtLjgtLjYtMS42LS45LTIuMy0uNiA0LjQtLjMgNy43LS4xIDEwLjZsMCAuN2MuNCA1LjMgLjcgMTAtMyAxOS45IDQuMy0xNC4yIDMuOC0yNi45LS4yLTIwLjggMSAxMC45LTMuNyAyMC40LTggMjguOWwtLjEgLjJjLTMuNiA3LjEtNi44IDEzLjUtNS45IDE5LjNsLTUuMi03LjFjLTcuNSAxMC45LTcgMTMuMy02LjUgMTUuNWwwIC4xYy41IDEuOSAxIDMuOC0zLjQgMTAuOCAxLjctMi45IDEuMy0zLjYgMS00LjItLjQtLjgtLjctMS41IDEuNy01LjEtMS42IC4xLTUuNSAzLjktMTAuMSA4LjUtMy45IDMuOS04LjUgOC40LTEyLjggMTEuOC0zNy41IDMwLjEtODIuMyAzNC0xMjUuNiAxNy44IC4yLTEtLjItMi4xLTMuMS00LjEtMzYuOC0yOC4yLTU4LjUtNTIuMS01MC45LTEwNy41IDIuMS0xLjYgMy42LTUuOCA1LjMtMTAuOGwuMi0uNCAuMS0uMyAwLS4xYzIuOS04LjQgNi41LTE4LjggMTQuMy0yMy44IDcuOC0xNy4zIDMxLjMtMzMuMyA1Ni40LTMzLjcgMjUuNi0xLjQgNDcuMiAxMy43IDU4LjEgMjcuOS0xOS44LTE4LjQtNTIuMS0yNC03OS43LTEwLjQtMjguMiAxMi43LTQ1IDQzLjgtNDIuNSA3NC43IC4zLS40IC42LS42IC45LS44bC4yLS4yYy42LS41IDEuMS0uOSAxLjQtMy4zLS45IDYwLjIgNjQuOCAxMDQuMyAxMTIuMSA4MmwuNiAxLjNjMTIuNy0zLjUgMTUuOS02LjUgMjAuMy0xMC43bC4xLS4xYzIuMi0yLjEgNC43LTQuNSA4LjktNy4zLS4zIC43LTEuMyAxLjctMi40IDIuNy0yLjIgMi4xLTQuNiA0LjUtMS42IDQuNiA1LTEuMyAxOC41LTEzLjQgMjguNS0yMi4zIC42LS41IDEuMi0xIDEuNy0xLjUgMS41LTEuMyAyLjgtMi41IDQtMy42bC4zLS4zYzEuOS00LjIgMS42LTUuNiAxLjMtN2wwLS4xYy0uNC0xLjYtLjgtMy4zIDIuNC05LjZsNy4zLTMuN2MuOC0yLjEgMS41LTQuMSAyLjItNiAuMi0uNiAuNS0xLjIgLjctMS44bC0uNC0uMi0uMS0uMXpNMjQ4IDMzNC4xYy02LTMtMTMuNy04LjktMTQuOC0xMS40bC0uNCAuM2MtLjMgLjYtLjUgMS4zLS4yIDIuMi0xMi4yLTUuNy0yMy40LTE0LjMtMzIuNi0yNC45IDQuOSA3LjEgMTAuMSAxNC4xIDE3IDE5LjUtNi45LTIuMy0xNS4xLTExLjgtMjEuNi0xOS4zbC0uMS0uMWMtNC4zLTUtNy45LTkuMS05LjctOS41IDE5LjggMzUuNSA4MC41IDYyLjMgMTEyLjMgNDktMTQuNyAuNS0zMy40IC4zLTQ5LjktNS44em03OS4zLTExOS43bC0uMS0uMmMtLjUtMS41LTEuMS0zLjEtMS43LTMuNCAxLjQtNS44IDUuNC0xMC43IDQuNCA0LjYtMSAzLjgtMS44IDEuNS0yLjYtMXptLTQuMiAyMi4yYy0xLjMgNy45LTUgMTUuNS0xMC4xIDIyLjUgLjItMi0xLjItMi40LTIuNi0yLjgtMi45LS44LTUuOS0xLjYgNS42LTE2LjEtLjUgMS45LTIuMSA0LjYtMy43IDcuM2wtLjMgLjRjLTMuNiA1LjktNi43IDExIDQgNC4zbDEtMS44YzIuNi00LjUgNS04LjggNi0xMy44bC4xIDB6bS01NS42IDMzLjljNy4xIC42IDE0LjEgLjYgMjEtMS4xLTIuNSAyLjQtNS4yIDQuOC04LjMgNy4yLTExLjEtMS43LTIxLjItNi0xMi43LTYuMXptLTkyLjYgMTEuNmMzLjYgNy4xIDYuNCAxMS41IDkgMTUuN2wuMSAuMmMyLjMgMy43IDQuNCA3LjEgNi44IDExLjctNS4xLTQuMi04LjctOS41LTEyLjUtMTVsLS4zLS41Yy0xLjQtMi4xLTIuOC00LjItNC40LTYuMmwxLjItNS45IC4xIDB6bTcuNS05LjZjMS42IDMuMyAzLjIgNi40IDUuNyA5LjFsMi42IDcuNy0xLjMtMi4xYy0zLjItNS4zLTYuMy0xMC42LTgtMTYuN2wxIDJ6bTIzOC45LTQxLjZjLTIuMyAxNy40LTcuNyAzNC42LTE2IDUwLjMgNy42LTE0LjkgMTIuNS0zMC45IDE0LjgtNDcuMmwxLjItMy4xek0zNS44IDExMC42Yy40IC44IDEuNCAuNSAyLjMgLjMgMS45LS41IDMuNi0uOS0uMSA3LjYtLjUgLjMtMSAuNy0xLjUgMS0xLjQgLjktMi44IDEuOS0zLjkgMyAxLjktMy44IDMuNS03LjQgMy4yLTExLjl6TTI1LjUgMTUyLjNjLS43IDMuNy0xLjUgNy45LTMuNCAxMy45IC4yLTEuOSAwLTMuNS0uMi00LjlsMC0uMWMtLjQtMy40LS43LTYuMyA0LjMtMTIuOC0uMyAxLjItLjUgMi41LS43IDMuOGwwIC4xeiJdfSxaJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFzdG9kb24iLGljb246WzQ0OCw1MTIsW10sImY0ZjYiLCJNNDMzIDE3OS4xYzAtOTcuMi02My43LTEyNS43LTYzLjctMTI1LjctNjIuNS0yOC43LTIyOC42LTI4LjQtMjkwLjUgMCAwIDAtNjMuNyAyOC41LTYzLjcgMTI1LjcgMCAxMTUuNy02LjYgMjU5LjQgMTA1LjYgMjg5LjEgNDAuNSAxMC43IDc1LjMgMTMgMTAzLjMgMTEuNCA1MC44LTIuOCA3OS4zLTE4LjEgNzkuMy0xOC4xbC0xLjctMzYuOXMtMzYuMyAxMS40LTc3LjEgMTAuMWMtNDAuNC0xLjQtODMtNC40LTg5LjYtNTQtLjYtNC42LS45LTkuMy0uOS0xMy45IDg1LjYgMjAuOSAxNTguNyA5LjEgMTc4LjcgNi43IDU2LjEtNi43IDEwNS00MS4zIDExMS4yLTcyLjkgOS44LTQ5LjggOS0xMjEuNSA5LTEyMS41ek0zNTcuOSAzMDQuM2wtNDYuNiAwIDAtMTE0LjJjMC00OS43LTY0LTUxLjYtNjQgNi45bDAgNjIuNS00Ni4zIDAgMC02Mi41YzAtNTguNS02NC01Ni42LTY0LTYuOWwwIDExNC4yLTQ2LjcgMGMwLTEyMi4xLTUuMi0xNDcuOSAxOC40LTE3NSAyNS45LTI4LjkgNzkuOC0zMC44IDEwMy44IDYuMWwxMS42IDE5LjUgMTEuNi0xOS41YzI0LjEtMzcuMSA3OC4xLTM0LjggMTAzLjgtNi4xIDIzLjcgMjcuMyAxOC40IDUzIDE4LjQgMTc1bDAgMHoiXX0sWCR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNrZXRjaCIsaWNvbjpbNTEyLDUxMixbXSwiZjdjNiIsIk0yNy44IDE2Mi4ybC0xOC41IDI0LjkgOTAuNSAwIDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuNiA0NS43TDI2OCAzMiA0MDMuNyAxNzkuMiAzOTYuNiA0NS43ek0xMTIuNSAyMTguM2wtMTEuMi0yMi05MS4xIDAgMjI0LjkgMjYxLjctMTIyLjYtMjM5Ljd6bTItMzEuMmwyODQgMEMzNDAuNiAxMjQuMyAyOTMuMyA3Mi45IDI1Ni42IDMzTDExNC41IDE4Ny4xem0yOTcuMyA5LjFsLTEzMy45IDI2MS44IDIyNC44LTI2MS43LTkwLjkgMCAwLS4xek00MTUuNyA2OWwtOS40LTEyLjYgLjkgMTcuMyA2LjEgMTEzLjQgOTAuMyAwLTg3LjktMTE4LjF6TTExMy44IDkzLjVMMTA5LjIgMTc5LjEgMjQ1IDMyIDExNi40IDQ1LjcgMTEzLjggOTMuNXpNNDAxLjUgMTk2LjJsLTI5MCAwYzE4LjIgMzUuNiA2Ni42IDEzMC4yIDE0NS4xIDI4My44TDQwMS41IDE5Ni4yeiJdfSxRJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwuMSAweiJdfSxKJHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FzcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQxZSIsIk0zMDEuOCAzNzguOWwwIDB6bTI0OS4xLTg3Yy0yMC4xIDAtNDAgNC42LTU4IDEzLjUtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjljLTIuMyA2LjItNC4xIDEyLjYtNS4zIDE5LjEtMi4zIDExLjctMjUuOCA1My41LTM5LjEgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOS0yLjcgMTEuNC01LjMgMTkuMS0zMy45IDc3LjMtNDIuMSA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNCAuOC0uNyAxLjMtLjkgMS43IC4zLS41IC41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2LjdsMCAuMWMtMS43IDMuMi0zLjYgNi4xLTQuNSA2LjEtLjYgMC0xLjktOC40IC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS40LTQyLjRjLTE4LjQgMC00NCAyMC4yLTU2LjYgMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1LjgtMzguMi0xMDEuOS02NS4yLTk5LjEtMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4xLTEyNy40IDk4LTQ4LjggMTc2LjMtMzUuNCAxODkuOC01LjYgMTkuNCA0Mi41LTQxLjkgMTIxLjYtMTQzLjcgMTMzLTM4LjggNC4zLTU5LjItMTAuNy02NC4zLTE2LjMtNS4zLTUuOS02LjEtNi4yLTguMS01LjEtMy4zIDEuOC0xLjIgNyAwIDEwLjEgMyA3LjkgMTUuNSAyMS45IDM2LjggMjguOSAxOC43IDYuMSA2NC4yIDkuNSAxMTkuMi0xMS44IDYxLjgtMjMuOCAxMDkuOS05MC4xIDk1LjgtMTQ1LjYtMTQuNC01Ni40LTEwNy45LTc0LjktMTk2LjMtNDMuNS01Mi43IDE4LjctMTA5LjcgNDguMS0xNTAuNyA4Ni40LTQ4LjcgNDUuNi01Ni41IDg1LjMtNTMuMyAxMDEuOSAxMS40IDU4LjkgOTIuNiA5Ny4zIDEyNS4xIDEyNS43LTEuNiAuOS0zLjEgMS43LTQuNSAyLjUtMTYuMyA4LjEtNzguMiA0MC41LTkzLjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMyA3MC40IDQxLjggMTEuNiA4NC42LTkuMyAxMDcuNi00My42czIwLjItNzkuMSA5LjYtOTkuNWMtLjEtLjMtLjMtLjUtLjQtLjggNC4yLTIuNSA4LjUtNSAxMi44LTcuNSA4LjMtNC45IDE2LjQtOS40IDIzLjUtMTMuMy00IDEwLjgtNi45IDIzLjgtOC40IDQyLjYtMS44IDIyIDcuMyA1MC41IDE5LjEgNjEuNyA1LjIgNC45IDExLjUgNSAxNS40IDUgMTMuOCAwIDIwLTExLjQgMjYuOS0yNSA4LjUtMTYuNiAxNi0zNS45IDE2LTM1LjlzLTkuNCA1Mi4yIDE2LjMgNTIuMmM5LjQgMCAxOC44LTEyLjEgMjMtMTguM2wwIC4xcy4yLS40IC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjRsMC0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC42LTQ2IDE2LjItMzEuOCAzMS43LTcxLjUgMzEuNy03MS41IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yIDAgLjEgMCAuMSAuMSAuMi0zIDQtNi40IDguMy05LjkgMTIuNS0xMi44IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS43IDIuNSAxMS41LS44IDE5LjYtMy42IDIzLjUtNS40IDcuMi0yLjYgMTQtNi4xIDIwLjItMTAuNiAxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTUgMTkuOC0yOC45IDM1LjEtNjAuNiAzNS4xLTYwLjYgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjQgOC4xIDcuMSAxNyAxMS40IDI1LjctMTguNiAxNS4xLTMwLjEgMzIuNi0zNC4xIDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjUgNy43LTIuNiAxNS02LjMgMjEuNi0xMS4xIDEyLjUtOS4yIDI0LjYtMjIuMSAyMy44LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjEtMTAuMiA2Mi4xLTcuMiA1NS43IDYuNSA2Ni42IDQxLjMgNjQuNSA1NS44cy0xMy44IDIyLjYtMTcuNyAyNS01LjEgMy4zLTQuOCA1LjFjLjUgMi42IDIuMyAyLjUgNS42IDEuOSA0LjYtLjggMjkuMi0xMS44IDMwLjMtMzguNyAxLjYtMzQtMzEuMS03MS40LTg5LTcxLjFsMCAwek0xMjEuOCA0MzYuNmMtMTguNCAyMC4xLTQ0LjIgMjcuNy01NS4zIDIxLjMtMTEuOS02LjktNy4yLTM2LjUgMTUuNS01Ny45IDEzLjgtMTMgMzEuNi0yNSA0My40LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOSAuOC0uNSAxLjItLjcgMS4yLS43IC45LS42IDEuOS0xLjEgMi45LTEuNyA4LjMgMzAuNCAuMyA1Ny4yLTE5LjEgNzguM2wwIDB6bTEzNC40LTkxLjRjLTYuNCAxNS43LTE5LjkgNTUuNy0yOC4xIDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjEtMTEuMyAyMS4yLTE0LjkgMjMuOC0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjktMTMuOSAwIC41IC4xIDEgLjEgMS42LS4xIDE3LjktMTcuMyAzMC0yNS4xIDM0LjhsMCAwem04NS42LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC42LTE1LjMgMTktMjQuNSAxLjIgMy41IDEuOCA3LjEgMS45IDEwLjgtLjEgMjIuNS0xNi4yIDMwLjktMjUuOSAzNC40bDAgMHoiXX0sZUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVlbWEiLGljb246WzM4NCw1MTIsW10sImU4NWYiLCJNODcuNCA0NDUuMWMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRTMTA1LjkgNTEyIDg3LjQgNTEyIDU0IDQ5NyA1NCA0NzguNSA2OSA0NDUuMSA4Ny40IDQ0NS4xem0xMDkuMiAwYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNHMtMTUgMzMuNS0zMy41IDMzLjUtMzMuNC0xNS0zMy40LTMzLjUgMTUtMzMuNCAzMy40LTMzLjR6bTEwOS4zIDBjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40cy0xNSAzMy41LTMzLjUgMzMuNS0zMy41LTE1LTMzLjUtMzMuNSAxNS0zMy40IDMzLjUtMzMuNHpNMTkyLjMgLjNjMTA5LjggMCAxOTkuMiA4OS4zIDE5OS4yIDE5OS4xUzMwMi4yIDM5OC41IDE5Mi40IDM5OC41Yy00MC41IDAtNzguMS0xMi4xLTEwOS42LTMyLjlsLTc2LjUgMjQuNSAyNC44LTc0QzcuMyAyODMuNC02LjggMjQzLTYuOCAxOTkuNC02LjggODkuNyA4Mi41IC4zIDE5Mi4zIC4zem0uMSA5My43Yy0zMS42IDAtNTcuMyAyNS44LTU3LjMgNTcuM2wwIDI2LjctMS44IDBjLTEwIDAtMTggOC0xOCAxOGwwIDcyLjNjMCAxMCA4IDE4IDE4IDE4bDExOC4xIDBjMTAgMCAxOC04IDE4LTE4bC4xIDAgMC03Mi4zYzAtMTAtOC4xLTE4LTE4LTE4bC0xLjggMCAwLTI2LjdjMC0zMS42LTI1LjgtNTcuMy01Ny4zLTU3LjN6bS0uMSAyMy41YzE4LjYgMCAzMy44IDE1LjEgMzMuOCAzMy44bDAgMjYuNy02Ny42IDAgMC0yNi43YzAtMTguNiAxNS4xLTMzLjggMzMuOC0zMy44eiJdfSxCOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdoYXRzYXBwIixpY29uOls0NDgsNTEyLFsid2hhdHNhcHAtc3F1YXJlIl0sImY0MGMiLCJNOTIuMSAyNTQuNmMwIDI0LjkgNyA0OS4yIDIwLjIgNzAuMWwzLjEgNS0xMy4zIDQ4LjYgNDkuOS0xMy4xIDQuOCAyLjljMjAuMiAxMiA0My40IDE4LjQgNjcuMSAxOC40bC4xIDBjNzIuNiAwIDEzMy4zLTU5LjEgMTMzLjMtMTMxLjggMC0zNS4yLTE1LjItNjguMy00MC4xLTkzLjItMjUtMjUtNTgtMzguNy05My4yLTM4LjctNzIuNyAwLTEzMS44IDU5LjEtMTMxLjkgMTMxLjh6TTI3NC44IDMzMGMtMTIuNiAxLjktMjIuNCAuOS00Ny41LTkuOS0zNi44LTE1LjktNjEuOC01MS41LTY2LjktNTguNy0uNC0uNi0uNy0uOS0uOC0xLjEtMi0yLjYtMTYuMi0yMS41LTE2LjItNDEgMC0xOC40IDktMjcuOSAxMy4yLTMyLjMgLjMtLjMgLjUtLjUgLjctLjggMy42LTQgNy45LTUgMTAuNi01IDIuNiAwIDUuMyAwIDcuNiAuMWwuOCAwYzIuMyAwIDUuMiAwIDguMSA2LjggMS4yIDIuOSAzIDcuMyA0LjkgMTEuOCAzLjMgOCA2LjcgMTYuMyA3LjMgMTcuNiAxIDIgMS43IDQuMyAuMyA2LjktMy40IDYuOC02LjkgMTAuNC05LjMgMTMtMy4xIDMuMi00LjUgNC43LTIuMyA4LjYgMTUuMyAyNi4zIDMwLjYgMzUuNCA1My45IDQ3LjEgNCAyIDYuMyAxLjcgOC42LTEgMi4zLTIuNiA5LjktMTEuNiAxMi41LTE1LjUgMi42LTQgNS4zLTMuMyA4LjktMnMyMy4xIDEwLjkgMjcuMSAxMi45Yy44IC40IDEuNSAuNyAyLjEgMSAyLjggMS40IDQuNyAyLjMgNS41IDMuNiAuOSAxLjkgLjkgOS45LTIuNCAxOS4xLTMuMyA5LjMtMTkuMSAxNy43LTI2LjcgMTguOHpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTE0OC4xIDM5My45TDY0IDQxNiA4Ni41IDMzMy44Yy0xMy45LTI0LTIxLjItNTEuMy0yMS4yLTc5LjMgLjEtODcuNCA3MS4yLTE1OC41IDE1OC42LTE1OC41IDQyLjQgMCA4Mi4yIDE2LjUgMTEyLjIgNDYuNSAyOS45IDMwIDQ3LjkgNjkuOCA0Ny45IDExMi4yIDAgODcuNC03Mi43IDE1OC41LTE2MC4xIDE1OC41LTI2LjYgMC01Mi43LTYuNy03NS44LTE5LjN6Il19LHREdD1COGUsYUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNreXBlIixpY29uOls0NDgsNTEyLFtdLCJmMTdlIiwiTTQyNC43IDI5OS44YzIuOS0xNCA0LjctMjguOSA0LjctNDMuOCAwLTExMy41LTkxLjktMjA1LjMtMjA1LjMtMjA1LjMtMTQuOSAwLTI5LjcgMS43LTQzLjggNC43LTE5LTE0LjctNDIuNi0yMy40LTY4LjMtMjMuNC02MS44IDAtMTEyIDUwLjItMTEyIDExMiAwIDI1LjcgOC43IDQ5LjMgMjMuMyA2OC4yLTIuOSAxNC00LjcgMjguOS00LjcgNDMuOCAwIDExMy41IDkxLjkgMjA1LjMgMjA1LjMgMjA1LjMgMTQuOSAwIDI5LjctMS43IDQzLjgtNC43IDE5IDE0LjYgNDIuNiAyMy4zIDY4LjIgMjMuMyA2MS44IDAgMTEyLTUwLjIgMTEyLTExMiAuMS0yNS42LTguNi00OS4yLTIzLjItNjguMXpNMjMwLjEgMzkxLjNjLTY1LjYgMC0xMjAuNS0yOS4yLTEyMC41LTY1IDAtMTYgOS0zMC42IDI5LjUtMzAuNiAzMS4yIDAgMzQuMSA0NC45IDg4LjEgNDQuOSAyNS43IDAgNDIuMy0xMS40IDQyLjMtMjYuMyAwLTE4LjctMTYtMjEuNi00Mi0yOC02Mi41LTE1LjQtMTE3LjgtMjItMTE3LjgtODcuMiAwLTU5LjIgNTguNi04MS4xIDEwOS4xLTgxLjEgNTUuMSAwIDExMC44IDIxLjkgMTEwLjggNTUuNCAwIDE2LjktMTEuNCAzMS44LTMwLjMgMzEuOC0yOC4zIDAtMjkuMi0zMy41LTc1LTMzLjUtMjUuNyAwLTQyIDctNDIgMjIuNSAwIDE5LjggMjAuOCAyMS44IDY5LjEgMzMgNDEuNCA5LjMgOTAuNyAyNi44IDkwLjcgNzcuNiAwIDU5LjEtNTcuMSA4Ni41LTExMiA4Ni41eiJdfSxzRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5ndWxhciIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyMCIsIk0xODUuNyAyNjguMWw3Ni4yIDAtMzguMS05MS42LTM4LjEgOTEuNnpNMjIzLjggMzJMMTYgMTA2LjQgNDcuOCAzODIuMSAyMjMuOCA0ODAgMzk5LjggMzgyLjEgNDMxLjYgMTA2LjQgMjIzLjggMzJ6TTM1NCAzNzMuOGwtNDguNiAwLTI2LjItNjUuNC0xMTAuNiAwLTI2LjIgNjUuNC00OC43IDAgMTMwLjEtMjkyLjMgMTMwLjIgMjkyLjN6Il19LGlEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaXJjbGUtenVsaXAiLGljb246WzUxMiw1MTIsW10sImU4NTEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTI0My41IDI0MGMxLjItMS45LS45LTQuMi0yLjYtMi44bC04OSA3OS41Yy05LjIgNy4yLTE1LjIgMTkuMS0xNS4yIDMyLjUgMCAyMS45IDE2IDM5LjggMzUuNyAzOS44bDE2Ny4zIDBjMTkuNiAwIDM1LjctMTcuOSAzNS43LTM5LjggMC0yMS45LTE2LjEtMzkuNy0zNS43LTM5LjhsLTEyNi42IDBjLTEuOSAwLTMtMi4zLTIuMS00LjFMMjQzLjUgMjQwek0xNzIuNCAxMjMuMWMtMTkuNiAwLTM1LjcgMTcuOS0zNS43IDM5LjhzMTYgMzkuOCAzNS43IDM5LjhsMTI2LjYgMGMxLjkgMCAzLjEgMi4yIDIuMiA0LjFMMjY4LjUgMjcyYy0xLjIgMS45IC45IDQuMiAyLjYgMi44bDg5LTc5LjVjOS4yLTcuMiAxNS4yLTE5LjEgMTUuMi0zMi41IDAtMjEuOS0xNi0zOS43LTM1LjctMzkuOGwtMTY3LjMgMHoiXX0sckR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5zdXNlIixpY29uOls2NDAsNTEyLFtdLCJlNjJiIiwiTTQ3MS4xIDEwMi43cy0uMyAxOC4zLS4zIDIwLjNjLTkuMS0zLTc0LjQtMjQuMS0xMzUuNy0yNi4zLTUxLjktMS44LTEyMi44LTQuMy0yMjMgNTcuMy0xOS40IDEyLjQtNzMuOSA0Ni4xLTk5LjYgMTA5LjctNS41IDEzLjMtMTIuNiA0My4zLTUuNSA3MS40IDMuMyAxMi44IDguOSAyNC45IDE2LjUgMzUuNyAxNy40IDI1IDQ2LjYgNDEuNiA3OC4xIDQ0LjQgNDQuNCAzLjkgNzguMS0xNiA5MC01My4zIDguMi0yNS44IDAtNjMuNi0zMS41LTgyLjktMjUuNi0xNS43LTUzLjMtMTIuMS02OS4yLTEuNi0xMy45IDkuMi0yMS44IDIzLjUtMjEuNiAzOS4yIC4zIDI3LjggMjQuMyA0Mi42IDQxLjUgNDIuNiA1LjQgMCAxMC43LS45IDE1LjgtMi43IDYuNS0xLjggMTMuMy02LjUgMTMuMy0xNC45IDAtMTIuMS0xMS42LTE0LjgtMTYuOC0xMy45LTIuOSAuNS00LjUgMi0xMS44IDIuNC0yLS4yLTEyLTMuMS0xMi0xNGwwLS4xYy4yLTEyLjMgMTMuMi0xOCAyNS41LTE2LjkgMzIuMyAyLjggNDcuNyA0MC43IDI4LjUgNjUuNy0xOC4zIDIzLjctNzYuNiAyMy4yLTk5LjctMjAuNC0yNi00OS4yIDEyLjctMTExLjIgODctOTguNCAzMy4yIDUuNyA4My42IDM1LjUgMTAyLjQgMTA0LjNsNDUuOSAwYy01LjctMTcuNi04LjktNjguMyA0Mi43LTY4LjMgNTYuNyAwIDYzLjkgMzkuOSA3OS44IDY4LjNsNDguNiAwYy0xMi44LTE4LjMtMjEuNy0zOC43LTE4LjktNTUuOCA1LjYtMzMuOCAzOS43LTE4LjQgODIuNC0xNy40IDY2LjUgLjQgMTAyLjEtMjcgMTAzLjEtMjggMy43LTMuMSA2LjUtMTUuOCA3LTE3LjcgMS4zLTUuMS0zLjItMi40LTMuMi0yLjQtOC43IDUuMi0zMC41IDE1LjItNTAuOSAxNS42LTI1LjMgLjUtNzYuMi0yNS40LTgxLjYtMjguMi0uMy0uNCAuMSAxLjItMTEtMjUuNSA4OC40IDU4LjMgMTE4LjMgNDAuNSAxNDUuMiAyMS43IC44LS42IDQuMy0yLjkgMy42LTUuNy0xMy44LTQ4LjEtMjIuNC02Mi43LTM0LjUtNjkuNi0zNy0yMS42LTEyNS0zNC43LTEyOS4yLTM1LjMgLjEtLjEtLjktLjMtLjkgLjd6bTYwLjQgNzIuOGEzNy42IDM3LjYgMCAxIDEgNzUuMiAyLjYgMzcuNiAzNy42IDAgMSAxIC03NS4yLTIuNnptMzguNi0yNS4zYy0zLjYtLjMtNy4xIC4xLTEwLjUgMS4ycy02LjUgMi45LTkuMiA1LjMtNC44IDUuMy02LjMgOC41LTIuNCA2LjctMi41IDEwLjMgLjUgNy4xIDEuOCAxMC40IDMuMyA2LjMgNS44IDguOSA1LjUgNC41IDguOCA1LjkgNi45IDIgMTAuNCAxLjljMy42IC4zIDcuMS0uMSAxMC41LTEuMnM2LjUtMi45IDkuMi01LjMgNC44LTUuMyA2LjMtOC41IDIuNC02LjcgMi41LTEwLjMtLjUtNy4xLTEuOC0xMC40LTMuMy02LjMtNS44LTguOS01LjUtNC41LTguOC01LjktNi45LTItMTAuNC0xLjl6bTQuMyAyOC44Yy0xNS40IDAtMTUuNC0xNS42IDAtMTUuNnMxNS40IDE1LjYgMCAxNS42eiJdfSxvRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJvcGJveCIsaWNvbjpbNTc2LDUxMixbXSwiZjE2YiIsIk0yODguNCAxMTYuM2wtMTMyIDg0LjMgMTMyIDg0LjMtMTMyIDg0LjMtMTMyLjQtODUuMSAxMzIuMy04NC4zLTEzMi4zLTgzLjUgMTMyLjMtODQuMyAxMzIuMSA4NC4zek0xNTUuNiAzOTUuN2wxMzItODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzItODQuM3pNMjg4LjQgMjg0LjFsMTMyLTg0LjMtMTMyLTgzLjYgMTMxLjMtODQuMiAxMzIuMyA4NC4zLTEzMi4zIDg0LjMgMTMyLjMgODQuMi0xMzIuMyA4NC4zLTEzMS4zLTg1eiJdfSxuRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVlemVyIixpY29uOls1MTIsNTEyLFtdLCJlMDc3IiwiTTE0LjggMTAxLjFDNi42IDEwMS4xIDAgMTI3LjYgMCAxNjAuM3M2LjYgNTkuMiAxNC44IDU5LjIgMTQuOC0yNi41IDE0LjgtNTkuMi02LjYtNTkuMi0xNC44LTU5LjJ6TTQ0OC43IDQwLjljLTcuNyAwLTE0LjUgMTcuMS0xOS40IDQ0LjEtNy43LTQ2LjctMjAuMi03Ny0zNC4yLTc3LTE2LjggMC0zMS4xIDQyLjktMzggMTA1LjQtNi42LTQ1LjQtMTYuOC03NC4yLTI4LjMtNzQuMi0xNi4xIDAtMjkuNiA1Ni45LTM0LjcgMTM2LjItOS40LTQwLjgtMjMuMi02Ni4zLTM4LjMtNjYuM3MtMjguOCAyNS41LTM4LjMgNjYuM2MtNS4xLTc5LjMtMTguNi0xMzYuMi0zNC43LTEzNi4yLTExLjUgMC0yMS43IDI4LjgtMjguMyA3NC4yLTYuNi02Mi41LTIxLjItMTA1LjQtMzcuOC0xMDUuNC0xNCAwLTI2LjUgMzAuNC0zNC4yIDc3LTQuOC0yNy0xMS43LTQ0LjEtMTkuNC00NC4xLTE0LjMgMC0yNiA1OS4yLTI2IDEzMi4xUzQ5IDMwNS4yIDYzLjMgMzA1LjJjNS45IDAgMTEuNS05LjkgMTUuOC0yNi44IDYuOSA2MS43IDIxLjIgMTA0LjEgMzggMTA0LjEgMTMgMCAyNC41LTI1LjUgMzIuMS02NS42IDUuNCA3Ni4zIDE4LjYgMTMwLjQgMzQuMiAxMzAuNCA5LjcgMCAxOC42LTIxLjQgMjUuMy01Ni40IDcuOSA3Mi4yIDI2LjMgMTIyLjcgNDcuNyAxMjIuN3MzOS41LTUwLjUgNDcuNy0xMjIuN2M2LjYgMzUgMTUuNiA1Ni40IDI1LjMgNTYuNCAxNS42IDAgMjguOC01NC4xIDM0LjItMTMwLjQgNy43IDQwLjEgMTkuNCA2NS42IDMyLjEgNjUuNiAxNi42IDAgMzAuOS00Mi4zIDM4LTEwNC4xIDQuMyAxNi44IDkuNyAyNi44IDE1LjggMjYuOCAxNC4zIDAgMjYtNTkuMiAyNi0xMzIuMVM0NjMgNDAuOSA0NDguNyA0MC45em00OC41IDYwLjJjLTguMiAwLTE0LjggMjYuNS0xNC44IDU5LjJzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yeiJdfSxsRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMCIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTMuNiA1My4yYzIuOC0uMyAxMS41IDEgMTEuNSAxMS41bDYuNiAxMDcuMiA0LjktNTkuM2MwLTYgNC43LTEwLjYgMTAuNi0xMC42czEwLjYgNC43IDEwLjYgMTAuNmMwIDIuNS0uNS01LjcgNS43IDgxLjVsNS44LTY0LjJjLjMtMi45IDIuOS05LjMgMTAuMi05LjMgMy44IDAgOS45IDIuMyAxMC42IDguOWwxMS41IDk2LjUgNS4zLTEyLjhjMS44LTQuNCA1LjItNi42IDEwLjItNi42bDU4IDAgMCAyMS4zLTUwLjkgMC0xOC4yIDQ0LjNjLTMuOSA5LjktMTkuNSA5LjEtMjAuOC0zLjFsLTQtMzEuOS03LjUgOTIuNmMtLjMgMy0zIDkuMy0xMC4yIDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLTEuOSAuNiA1LjgtNi4yLTc3LjlsLTUuMyA3Mi4yYy0xLjEgNC44LTQuOCA5LjMtMTAuNiA5LjMtMi45IDAtOS44LTItMTAuNi05LjMgMC0xLjkgLjUgNi43LTUuOC04Ny43TDI1NSAzODMuOWMwIDYuMy0zLjYgMTIuNC0xMC42IDEyLjQtNS4yIDAtMTAuNi00LjEtMTAuNi0xMkwyMjggMjk2LjZjLTUuOCA5Mi41LTUuMyA4NC01LjMgODUuOS0xLjEgNC44LTQuOCA5LjMtMTAuNiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0uNy0uNC0xLjEtLjQtMi42bC02LjItODguNi00LjkgNTYuN2MtLjcgNi41LTYuNyA5LjMtMTAuNiA5LjMtNS44IDAtOS42LTQuMS0xMC42LTguOUwxNTcuNyAyNzJjLTIgNC0zLjUgOC40LTExLjEgOC40bC01MS40IDAgMC0yMS4zIDQ0LjggMCAxMy43LTI3LjljNC40LTkuOSAxOC4yLTcuMiAxOS45IDIuN2wzLjEgMjAuNCA4LjQtOTcuOWMwLTYgNC44LTEwLjYgMTAuNi0xMC42IC41IDAgMTAuNi0uMiAxMC42IDEyLjRsNC45IDY5LjEgNi42LTkyLjZjMC0xMC4xIDkuNS0xMC42IDEwLjItMTAuNiAuNiAwIDEwLjYgLjcgMTAuNiAxMC42bDUuMyA4MC42IDYuMi05Ny45Yy4xLTEuMS0uNi0xMC4zIDkuOS0xMS41eiJdfSxjRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamVkaS1vcmRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwZSIsIk0zOTguOSAzNzMuNmM5NS45LTEyMi4xIDE3LjItMjMzLjEgMTcuMi0yMzMuMSA0NS40IDg1LjgtNDEuNCAxNzAuNS00MS40IDE3MC41IDEwNS0xNzEuNS02MC41LTI3MS41LTYwLjUtMjcxLjUgOTYuOSA3Mi43LTEwLjEgMTkwLjctMTAuMSAxOTAuNyA4NS44IDE1OC40LTY4LjYgMjMwLjEtNjguNiAyMzAuMXMtLjQtMTYuOS0yLjItODUuN2M0LjMgNC41IDM0LjUgMzYuMiAzNC41IDM2LjJsLTI0LjItNDcuNCA2Mi42LTkuMS02Mi42LTkuMSAyMC4yLTU1LjUtMzEuNCA0NS45Yy0yLjItODcuNy03LjgtMzA1LjEtNy45LTMwNi45IDAgMS01LjYgMjE5LTcuOSAzMDYuOWwtMzEuNC00NS45IDIwLjIgNTUuNS02Mi42IDkuMSA2Mi42IDkuMS0yNC4yIDQ3LjQgMzQuNS0zNi4yYy0xLjggNjguOC0yLjIgODUuNy0yLjIgODUuN1M1OS4xIDM4OC42IDE0NC45IDIzMC4yYzAgMC0xMDctMTE4LjEtMTAuMS0xOTAuNyAwIDAtMTY1LjUgOTkuOS02MC41IDI3MS41IDAgMC04Ni44LTg0LjgtNDEuNC0xNzAuNSAwIDAtNzguNyAxMTEgMTcuMiAyMzMuMSAwIDAtMjYuMi0xNi4xLTQ5LjQtNzcuNyAwIDAgMTYuOSAxODMuMyAyMjIgMTg1LjdsNC4xIDBjMjA1LTIuNCAyMjItMTg1LjcgMjIyLTE4NS43LTIzLjYgNjEuNS00OS45IDc3LjctNDkuOSA3Ny43eiJdfSxkRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToici1wcm9qZWN0IixpY29uOls1NzYsNTEyLFtdLCJmNGY3IiwiTTU3OC41IDIyNi42QzU3OC41IDExOS4xIDQ0OC40IDMyIDI4OCAzMlMtMi41IDExOS4xLTIuNSAyMjYuNmMwIDk1LjggMTAzLjMgMTc1LjQgMjM5LjQgMTkxLjVsMCA2MS45IDk5LjEgMCAwLTYxLjVjMjQuMy0yLjcgNDcuNi03LjQgNjkuNC0xMy45bDQwLjEgNzUuNCAxMTIgMC02Ny40LTExMy43YzU0LjUtMzUuNCA4OC40LTg0LjkgODguNC0xMzkuN3pNMTExLjcgMjQxLjFjMC03My41IDk4LjktMTMzIDIyMC44LTEzM3MyMTEuOSA0MC43IDIxMS45IDEzM2MwIDUwLjEtMjYuNSA4NS03MC4zIDEwNi40LTIuNC0xLjYtNC43LTIuOS02LjQtMy43LTEwLjItNS4yLTI3LjgtMTAuNS0yNy44LTEwLjVzODYuNi02LjQgODYuNi05Mi43LTkwLjYtODcuOS05MC42LTg3LjlsLTE5OSAwIDAgMjA4LjNjLTc0LjEtMjEuNS0xMjUuMi02Ny4xLTEyNS4yLTExOS45em0yMjUuMSAzOC4zbDAtNTUuNmM1Ny44IDAgODcuOC02LjggODcuOCAyNy4zIDAgMzYuNS0zOC4yIDI4LjMtODcuOCAyOC4zem0tLjkgNzIuNWwyNi42IDBjMTAuOCAwIDE4LjkgMTEuNyAyNCAxOS4yLTE2LjEgMS45LTMzIDIuOC01MC42IDIuOWwwLTIyLjF6Il19LHVEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnN0YWxvZCIsaWNvbjpbNTEyLDUxMixbXSwiZTA4MSIsIk0xNTMuNiA0ODBsMjMzLjcgMCAxMTUuNC0yMDQuMi0yOTguMyA1Ny40LTUwLjggMTQ2Ljh6TTUwNSAyNDAuMUwzODcuNCAzMiAxNTUuOSAzMiAzNjAuNSAyNjcuOSA1MDUgMjQwLjF6TTEyNC42IDQ4LjhMNy41IDI1NiAxMjMuNSA0NjEuMiAyMjUuOSAxNjUuNiAxMjQuNiA0OC44eiJdfSxwRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2FuYWRpYW4tbWFwbGUtbGVhZiIsaWNvbjpbNTEyLDUxMixbXSwiZjc4NSIsIk0zODMuOCAzNTEuN2MyLjUtMi41IDEwNS4yLTkyLjQgMTA1LjItOTIuNGwtMTcuNS03LjVjLTEwLTQuOS03LjQtMTEuNS01LTE3LjQgMi40LTcuNiAyMC4xLTY3LjMgMjAuMS02Ny4zcy00Ny43IDEwLTU3LjcgMTIuNWMtNy41IDIuNC0xMC0yLjUtMTIuNS03LjVzLTE1LTMyLjQtMTUtMzIuNC01Mi42IDU5LjktNTUuMSA2Mi4zYy0xMCA3LjUtMjAuMSAwLTE3LjYtMTAgMC0xMCAyNy42LTEyOS42IDI3LjYtMTI5LjZzLTMwLjEgMTcuNC00MC4xIDIyLjRjLTcuNSA1LTEyLjYgNS0xNy42LTUtNS4xLTcuNS00Mi43LTc5LjgtNDIuNy03OS44cy0zNy41IDcyLjMtNDIuNSA3OS44Yy01IDEwLTEwIDEwLTE3LjYgNS0xMC01LTQwLjEtMjIuNC00MC4xLTIyLjRTMTgzLjMgMTgyIDE4My4zIDE5MmMyLjUgMTAtNy41IDE3LjUtMTcuNiAxMC0yLjUtMi41LTU1LjEtNjIuMy01NS4xLTYyLjNzLTEyLjUgMjcuMy0xNSAzMi4zLTUgOS45LTEyLjUgNy41QzczIDE3NyAyNS40IDE2NyAyNS40IDE2N1M0MyAyMjYuNyA0NS41IDIzNC4zYzIuNCA2IDUgMTIuNS01IDE3LjRMMjMgMjU5LjNzMTAyLjYgODkuOSAxMDUuMiA5Mi40YzUuMSA1IDEwIDcuNSA1LjEgMjIuNS01LjEgMTUtMTAuMSAzNS4xLTEwLjEgMzUuMXM5NS4yLTIwLjEgMTA1LjMtMjIuNmM4LjctLjkgMTguMyAyLjUgMTguMyAxMi41UzI0MSA1MTIgMjQxIDUxMmwzMCAwcy01LjgtMTAyLjctNS44LTExMi44IDkuNS0xMy40IDE4LjQtMTIuNWMxMCAyLjUgMTA1LjIgMjIuNiAxMDUuMiAyMi42cy01LTIwLjEtMTAtMzUuMSAwLTE3LjUgNS0yMi41eiJdfSxoRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXRoZXJldW0iLGljb246WzMyMCw1MTIsW10sImY0MmUiLCJNMzExLjkgMjYwLjhMMTYwIDM1My42IDggMjYwLjggMTYwIDAgMzExLjkgMjYwLjh6TTE2MCAzODMuNEw4IDI5MC42IDE2MCA1MTIgMzEyIDI5MC42IDE2MCAzODMuNHoiXX0sZkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhvdXp6IixpY29uOls0NDgsNTEyLFtdLCJmMjdjIiwiTTI3NiAzMzAuN2wtMTA0LjYgMCAwIDE0OS4zLTE1NC4zIDAgMC00NDggMTA5LjUgMCAwIDEwNC41IDMwNS4xIDg1LjYgMCAyNTcuOS0xNTUuNyAwIDAtMTQ5LjN6Il19LG1EdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aWJlciIsaWNvbjpbNTEyLDUxMixbXSwiZjQwOSIsIk00NDQuMyA0OS45Yy0xMi43LTExLjctNjQuMS00OS0xNzguNy00OS41IDAgMC0xMzUuMS04LjEtMjAwLjkgNTIuMy0zNi42IDM2LjYtNDkuNSA5MC4zLTUwLjkgMTU2LjhzLTMuMSAxOTEuMSAxMTcgMjI0LjlsLjEgMC0uMSA1MS42cy0uOCAyMC45IDEzIDI1LjFjMTYuNiA1LjIgMjYuNC0xMC43IDQyLjMtMjcuOCA4LjctOS40IDIwLjctMjMuMiAyOS44LTMzLjcgODIuMiA2LjkgMTQ1LjMtOC45IDE1Mi41LTExLjIgMTYuNi01LjQgMTEwLjUtMTcuNCAxMjUuNy0xNDIgMTUuOC0xMjguNi03LjYtMjA5LjgtNDkuOC0yNDYuNXpNNDU4LjIgMjg3Yy0xMi45IDEwNC04OSAxMTAuNi0xMDMgMTE1LjEtNiAxLjktNjEuNSAxNS43LTEzMS4yIDExLjIgMCAwLTUyIDYyLjctNjguMiA3OS01LjMgNS4zLTExLjEgNC44LTExLTUuNyAwLTYuOSAuNC04NS43IC40LTg1LjdsMCAwQzQzLjQgMzcyLjcgNDkuNCAyNjYuNiA1MC41IDIxMS4xczExLjYtMTAxIDQyLjYtMTMxLjZjNTUuNy01MC41IDE3MC40LTQzIDE3MC40LTQzIDk2LjkgLjQgMTQzLjMgMjkuNiAxNTQuMSAzOS40IDM1LjcgMzAuNiA1My45IDEwMy44IDQwLjYgMjExLjF6bS0xMzktODAuOGMuNCA4LjYtMTIuNSA5LjItMTIuOSAuNi0xLjEtMjItMTEuNC0zMi43LTMyLjYtMzMuOS04LjYtLjUtNy44LTEzLjQgLjctMTIuOSAyNy45IDEuNSA0My40IDE3LjUgNDQuOCA0Ni4yem0yMC4zIDExLjNjMS00Mi40LTI1LjUtNzUuNi03NS44LTc5LjMtOC41LS42LTcuNi0xMy41IC45LTEyLjkgNTggNC4yIDg4LjkgNDQuMSA4Ny44IDkyLjUtLjEgOC42LTEzLjEgOC4yLTEyLjktLjN6bTQ3IDEzLjRjLjEgOC42LTEyLjkgOC43LTEyLjkgLjEtLjYtODEuNS01NC45LTEyNS45LTEyMC44LTEyNi40LTguNS0uMS04LjUtMTIuOSAwLTEyLjkgNzMuNyAuNSAxMzMgNTEuNCAxMzMuNyAxMzkuMnpNMzc1LjIgMzI5bDAgLjJjLTEwLjggMTktMzEgNDAtNTEuOCAzMy4zbC0uMi0uM2MtMjEuMS01LjktNzAuOC0zMS41LTEwMi4yLTU2LjUtMTYuMi0xMi44LTMxLTI3LjktNDIuNC00Mi40LTEwLjMtMTIuOS0yMC43LTI4LjItMzAuOC00Ni42LTIxLjMtMzguNS0yNi01NS43LTI2LTU1LjctNi43LTIwLjggMTQuMi00MSAzMy4zLTUxLjhsLjIgMGM5LjItNC44IDE4LTMuMiAyMy45IDMuOSAwIDAgMTIuNCAxNC44IDE3LjcgMjIuMSA1IDYuOCAxMS43IDE3LjcgMTUuMiAyMy44IDYuMSAxMC45IDIuMyAyMi0zLjcgMjYuNmwtMTIgOS42Yy02LjEgNC45LTUuMyAxNC01LjMgMTRzMTcuOCA2Ny4zIDg0LjMgODQuM2MwIDAgOS4xIC44IDE0LTUuM2w5LjYtMTJjNC42LTYgMTUuNy05LjggMjYuNi0zLjcgMTQuNyA4LjMgMzMuNCAyMS4yIDQ1LjggMzIuOSA3IDUuNyA4LjYgMTQuNCAzLjggMjMuNnoiXX0sSDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtpY2tzdGFydGVyIixpY29uOls0NDgsNTEyLFsic3F1YXJlLWtpY2tzdGFydGVyIl0sImYzYmIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzIwLjggMjMzbC0yMy4zIDIzLjEgMjMuMyAyMi45YzI0LjEgMjMuOSAyNC4xIDYzIDAgODYuOXMtNjMuNCAyMy45LTg3LjYgMGwtOC41LTguNGMtMTEuMyAxNi0yOS43IDI2LjUtNTAuOSAyNi41LTM0LjEgMC02MS45LTI3LjUtNjEuOS02MS40bDAtMTMzLjJjMC0zMy44IDI3LjctNjEuNCA2MS45LTYxLjQgMjEuMSAwIDM5LjYgMTAuNSA1MC45IDI2LjVsOC41LTguNGMyNC4xLTIzLjkgNjMuNC0yMy45IDg3LjYgMHMyNC4xIDYzIDAgODYuOXoiXX0sZ0R0PUg4ZSxiRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BvdGlmeSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM1Ni43IDM3Mi45Yy00LjIgMC02LjgtMS4zLTEwLjctMy42LTYyLjQtMzcuNi0xMzUtMzkuMi0yMDYuNy0yNC41LTMuOSAxLTkgMi42LTExLjkgMi42LTkuNyAwLTE1LjgtNy43LTE1LjgtMTUuOCAwLTEwLjMgNi4xLTE1LjIgMTMuNi0xNi44IDgxLjktMTguMSAxNjUuNi0xNi41IDIzNyAyNi4yIDYuMSAzLjkgOS43IDcuNCA5LjcgMTYuNXMtNy4xIDE1LjQtMTUuMiAxNS40em0yNi45LTY1LjZjLTUuMiAwLTguNy0yLjMtMTIuMy00LjItNjIuNS0zNy0xNTUuNy01MS45LTIzOC42LTI5LjQtNC44IDEuMy03LjQgMi42LTExLjkgMi42LTEwLjcgMC0xOS40LTguNy0xOS40LTE5LjRzNS4yLTE3LjggMTUuNS0yMC43YzI3LjgtNy44IDU2LjItMTMuNiA5Ny44LTEzLjYgNjQuOSAwIDEyNy42IDE2LjEgMTc3IDQ1LjUgOC4xIDQuOCAxMS4zIDExIDExLjMgMTkuNy0uMSAxMC44LTguNSAxOS41LTE5LjQgMTkuNXptMzEtNzYuMmMtNS4yIDAtOC40LTEuMy0xMi45LTMuOS03MS4yLTQyLjUtMTk4LjUtNTIuNy0yODAuOS0yOS43LTMuNiAxLTguMSAyLjYtMTIuOSAyLjYtMTMuMiAwLTIzLjMtMTAuMy0yMy4zLTIzLjYgMC0xMy42IDguNC0yMS4zIDE3LjQtMjMuOSAzNS4yLTEwLjMgNzQuNi0xNS4yIDExNy41LTE1LjIgNzMgMCAxNDkuNSAxNS4yIDIwNS40IDQ3LjggNy44IDQuNSAxMi45IDEwLjcgMTIuOSAyMi42IDAgMTMuNi0xMSAyMy4zLTIzLjIgMjMuM3oiXX0sdkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxlYW5wdWIiLGljb246WzU3Niw1MTIsW10sImYyMTIiLCJNMzg2LjYgMTExLjVsMTUuMSAyNDktMTEtLjNjLTM2LjItLjgtNzEuNiA4LjgtMTAyLjcgMjgtMzEtMTkuMi02Ni40LTI4LTEwMi43LTI4LTQ1LjYgMC04Mi4xIDEwLjctMTIzLjUgMjcuN0w5My4yIDEyOS42YzI4LjUtMTEuOCA2MS41LTE4LjEgOTIuMi0xOC4xIDQxLjIgMCA3My44IDEzLjIgMTAyLjcgNDIuNSAyNy43LTI4LjMgNTktNDEuNyA5OC41LTQyLjV6TTU2OS4yIDQ0OGMtMjUuNSAwLTQ3LjUtNS4yLTcwLjUtMTUuNi0zNC4zLTE1LjYtNzAtMjUtMTA3LjktMjUtMzkgMC03NC45IDEyLjktMTAyLjcgNDAuNi0yNy43LTI3LjctNjMuNy00MC42LTEwMi43LTQwLjYtMzcuOSAwLTczLjYgOS4zLTEwNy45IDI1LTIyLjIgOS45LTQ0LjcgMTUuNi02OS4yIDE1LjZMNyA0NDggNDkuNiA5OC45YzM5LjMtMjIuMiA4Ny0zNC45IDEzMi4zLTM0LjkgMzcuMSAwIDc1LjIgNy43IDEwNi4yIDI5LjEgMzEtMjEuNCA2OS4yLTI5LjEgMTA2LjItMjkuMSA0NS4zIDAgOTMgMTIuNiAxMzIuMyAzNC45TDU2OS4yIDQ0OHptLTQzLjQtNDQuN0w0OTEuOCAxMjNjLTMwLjctMTQtNjcuMi0yMS40LTEwMS0yMS40LTM4LjQgMC03NC40IDEyLjEtMTAyLjcgMzguNy0yOC4zLTI2LjYtNjQuMi0zOC43LTEwMi43LTM4LjctMzMuOCAwLTcwLjMgNy40LTEwMSAyMS40bC0zNCAyODAuMmM0Ny4yLTE5LjUgODIuOS0zMy41IDEzNS0zMy41IDM3LjYgMCA3MC44IDkuNiAxMDIuNyAyOS42IDMxLjgtMjAgNjUuMS0yOS42IDEwMi43LTI5LjYgNTIuMiAwIDg3LjggMTQgMTM1IDMzLjV6Il19LHhEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqYXZhIixpY29uOlszODQsNTEyLFtdLCJmNGU0IiwiTTI3Ny44IDMxMi45YzkuOC02LjcgMjMuNC0xMi41IDIzLjQtMTIuNXMtMzguNyA3LTc3LjIgMTAuMmMtNDcuMSAzLjktOTcuNyA0LjctMTIzLjEgMS4zLTYwLjEtOCAzMy0zMC4xIDMzLTMwLjFzLTM2LjEtMi40LTgwLjYgMTljLTUyLjUgMjUuNCAxMzAgMzcgMjI0LjUgMTIuMXptLTg1LjQtMzIuMWMtMTktNDIuNy04My4xLTgwLjIgMC0xNDUuOCAxMDMuNy04MS44IDUwLjUtMTM1IDUwLjUtMTM1IDIxLjUgODQuNS03NS42IDExMC4xLTExMC43IDE2Mi42LTIzLjkgMzUuOSAxMS43IDc0LjQgNjAuMiAxMTguMnpNMzA3IDEwNC42Yy4xIDAtMTc1LjIgNDMuOC05MS41IDE0MC4yIDI0LjcgMjguNC02LjUgNTQtNi41IDU0czYyLjctMzIuNCAzMy45LTcyLjlDMjE2IDE4OC4xIDE5NS40IDE2OS4zIDMwNyAxMDQuNnptLTYuMSAyNzAuNWMtLjUgMS0xLjIgMS44LTIgMi42IDEyOC4zLTMzLjcgODEuMS0xMTguOSAxOS44LTk3LjMtMy4zIDEuMi02LjIgMy40LTguMiA2LjMgMy42LTEuMyA3LjMtMi4zIDExLTMgMzEtNi41IDc1LjUgNDEuNS0yMC42IDkxLjR6TTM0OCA0MzcuNHMxNC41IDExLjktMTUuOSAyMS4yYy01Ny45IDE3LjUtMjQwLjggMjIuOC0yOTEuNiAuNy0xOC4zLTcuOSAxNi0xOSAyNi44LTIxLjMgMTEuMi0yLjQgMTcuNy0yIDE3LjctMi0yMC4zLTE0LjMtMTMxLjMgMjguMS01Ni40IDQwLjIgMjA0LjIgMzMuMiAzNzIuNC0xNC45IDMxOS40LTM4Ljh6TTEyNC41IDM5NmMtNzguNyAyMiA0Ny45IDY3LjQgMTQ4LjEgMjQuNS05LjgtMy44LTE5LjItOC40LTI4LjItMTMuOC00NC43IDguNS02NS40IDkuMS0xMDYgNC41LTMzLjUtMy44LTEzLjktMTUuMi0xMy45LTE1LjJ6bTE3OS44IDk3LjJjLTc4LjcgMTQuOC0xNzUuOCAxMy4xLTIzMy4zIDMuNiAwLS4xIDExLjggOS43IDcyLjQgMTMuNiA5Mi4yIDUuOSAyMzMuOC0zLjMgMjM3LjEtNDYuOSAwIDAtNi40IDE2LjUtNzYuMiAyOS43ek0yNjAuNyAzNTNjLTU5LjIgMTEuNC05My41IDExLjEtMTM2LjggNi42LTMzLjUtMy41LTExLjYtMTkuNy0xMS42LTE5LjctODYuOCAyOC44IDQ4LjIgNjEuNCAxNjkuNSAyNS45LTcuOC0yLjgtMTUtNy4xLTIxLjEtMTIuOHoiXX0seUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5mYy1zeW1ib2wiLGljb246WzUxMiw1MTIsW10sImU1MzEiLCJNMzYwLjkgMzIuNGM3LjctMS4zIDE1LjcgLjUgMjEuMiA1IDg0LjEgNTguNyAxMjkuOSAxMzYuMyAxMjkuOSAyMTcuNyAwIDgzLjEtNDUuOCAxNjAuOC0xMjkuOSAyMTkuNS00LjggNC0xMS43IDUuOS0xOC42IDUuMy03LS42LTEzLjUtMy42LTE4LjQtOC41TDE2MS43IDI4OC43Yy01LjYtNS41LTguNy0xMy05LjYtMjAuOSAwLTcuOCA0LTE1LjMgOS41LTIwLjkgNS42LTUuNSAxMy4xLTguNyAyMC45LTguNyA3LjkgMCAxNS40IDMuMSAyMC45IDguNkwzNjguNSA0MTEuMmM1NC42LTQ0LjcgODQuMy05OS4yIDg0LjMtMTU2LjEgMC02MS42LTM2LjktMTIyLjItMTAzLjktMTY5LjMtNi40LTQuNS0xMC44LTExLjQtMTIuMS0xOS4xLTEuNC03LjcgLjQtMTUuNyA1LTIyLjEgNC41LTYuNCAxMS40LTEwLjggMTkuMS0xMi4xem0tMjA2IDQ0Ny4yYy03LjcgMS4zLTE1LjYtLjUtMjIuMS01LTgzLjEtNTguNy0xMjktMTM2LjQtMTI5LTIxOS41IDAtODEuNCA0NS44LTE1OSAxMjktMjE3LjcgNS43LTQgMTIuNi01LjkgMTkuNi01LjMgNi45IC42IDEzLjQgMy42IDE4LjMgOC41TDM1NC4xIDIyMy4zYzUuNiA1LjUgOC43IDEzIDguNyAyMC45IC4xIDYuOS0zIDE1LjMtOC42IDIwLjktNS41IDUuNS0xMyA4LjctMjAuOSA4LjctNy44IDAtMTYuMi0zLjEtMjAuOS04LjZMMTQ3LjMgMTAwLjdjLTU0LjYgNDUuMi04NC4zIDk5LjItODQuMyAxNTQuNCAwIDYzLjQgMzYuOSAxMjQgMTAzLjEgMTcxLjEgNy4zIDQuNiAxMS42IDExLjQgMTMgMTkuMiAxLjMgNy43LS41IDE1LjctNSAyMi4xcy0xMS40IDEwLjctMTkuMiAxMi4xeiJdfSx3RHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29kdSIsaWNvbjpbNjQwLDUxMixbXSwiZTA4OCIsIk0xNzguNCAzMzkuN2wtMzcuMyAwLTI4LjktMTE2LjItLjUgMC0yOC41IDExNi4yLTM4IDAtNDUuMi0xNzAuOCAzNy41IDAgMjcgMTE2LjIgLjUgMCAyOS43LTExNi4yIDM1LjIgMCAyOS4yIDExNy43IC41IDAgMjgtMTE3LjcgMzYuOCAwLTQ1LjkgMTcwLjh6bTkzLTEyN2MzOSAwIDY0LjEgMjUuOCA2NC4xIDY1LjMgMCAzOS4yLTI1LjEgNjUtNjQuMSA2NS0zOC43IDAtNjMuOS0yNS44LTYzLjktNjUgMC0zOS41IDI1LjEtNjUuMyA2My45LTY1LjN6bTAgMTA0LjhjMjMuMiAwIDMwLjEtMTkuOSAzMC4xLTM5LjUgMC0xOS45LTYuOS0zOS43LTMwLjEtMzkuNy0yNy43IDAtMjkuOSAxOS45LTI5LjkgMzkuNyAwIDE5LjYgNi45IDM5LjUgMjkuOSAzOS41em0xNjMuNyA2LjVsLS41IDBjLTcuOSAxMy40LTIxLjggMTkuMS0zNy41IDE5LjEtMzcuMyAwLTU1LjUtMzItNTUuNS02Ni4yIDAtMzMuMiAxOC40LTY0LjEgNTQuOC02NC4xIDE0LjYgMCAyOC45IDYuMiAzNi44IDE4LjRsLjIgMCAwLTYyLjIgMzQgMCAwIDE3MC44LTMyLjMgMCAwLTE1Ljh6bS0yOS43LTg1LjZjLTIyLjIgMC0yOS45IDE5LjEtMjkuOSAzOS41IDAgMTkuNCA4LjggMzkuNyAyOS45IDM5LjcgMjIuNSAwIDI5LjItMTkuNiAyOS4yLTM5LjkgMC0yMC4xLTcuMi0zOS4yLTI5LjItMzkuMnpNNTkzIDMzOS43bC0zMi4zIDAgMC0xNy4yLS43IDBjLTguNiAxMy45LTIzLjQgMjAuNi0zNy44IDIwLjYtMzYuMSAwLTQ1LjItMjAuMy00NS4yLTUwLjlsMC03Ni4xIDM0IDAgMCA2OS44YzAgMjAuMyA2IDMwLjQgMjEuOCAzMC40IDE4LjQgMCAyNi4zLTEwLjMgMjYuMy0zNS40bDAtNjQuOCAzNCAwIDAgMTIzLjZ6bTkuNS0zNi44bDM3LjUgMCAwIDM2LjgtMzcuNSAwIDAtMzYuOHoiXX0scThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1zdGVhbSIsaWNvbjpbNDQ4LDUxMixbInN0ZWFtLXNxdWFyZSJdLCJmMWI3IiwiTTE2NS42IDMwOS4xYzE4LjYgNy43IDI3LjMgMjguOSAxOS42IDQ3LjRzLTI5IDI3LjItNDcuNiAxOS40bC0yOC41LTExLjhjNSAxMC42IDEzLjggMTkuNCAyNS40IDI0LjIgMjUuMiAxMC41IDU0LjEtMS40IDY0LjYtMjYuNSA1LjEtMTIuMSA1LjEtMjUuNSAuMS0zNy43LTUuMS0xMi4xLTE0LjUtMjEuNi0yNi43LTI2LjctMTIuMS01LTI1LTQuOC0zNi40LS41bDI5LjUgMTIuMnpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCAxNDQuNyAxMTYuNiA0OC4xYzEyLTguMiAyNi4yLTEyLjEgNDAuNy0xMS4zbDU1LjQtODAuMiAwLTEuMWMwLTQ4LjIgMzkuMy04Ny41IDg3LjYtODcuNXM4Ny42IDM5LjMgODcuNiA4Ny41YzAgNDkuMi00MC45IDg4LjctODkuNiA4Ny41bC03OSA1Ni4zYzEuNiAzOC41LTI5LjEgNjguOC02NS43IDY4LjgtMzEuOCAwLTU4LjUtMjIuNy02NC41LTUyLjdMMCAzMTkuMiAwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjQxLjkgMTk2LjJhNTguNCA1OC40IDAgMSAwIDExNi44IDAgNTguNCA1OC40IDAgMSAwIC0xMTYuOCAwem0xMDIuNC0uMWE0My45IDQzLjkgMCAxIDEgLTg3LjggMCA0My45IDQzLjkgMCAxIDEgODcuOCAweiJdfSxrRHQ9cThlLFNEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jLWV1IixpY29uOls1MTIsNTEyLFtdLCJmNGU5IiwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjMgMTE5LjcgNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4xIDUwNCAyNTYgNTA0IDExNyAzOTYuNCA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjMuMiAzLjctNDUuMiAxMC45LTY2bDY1LjcgMjkuMS00LjcgMCAwIDI5LjUgMjMuMyAwYzAgNi4yLS40IDMuMi0uNCAxOS41bC0yMi44IDAgMCAyOS41IDI3IDBjMTEuNCA2NyA2Ny4yIDEwMS4zIDEyNC42IDEwMS4zIDI2LjYgMCA1MC42LTcuOSA2NC44LTE1LjhsLTEwLTQ2LjFjLTguNyA0LjYtMjguMiAxMC44LTQ3LjMgMTAuOC0yOC4yIDAtNTguMS0xMC45LTY3LjMtNTAuMmw5MC4zIDAgMTI4LjMgNTYuOGMtMS41IDIuMS01Ni4yIDEwNC4zLTE3OC44IDEwNC4zek0yMzkuNiAyNjguMWwtLjUtLjQgLjkgLjQtLjQgMHptNzcuMi0xOS41bDMuNyAwIDAtMjkuNS03MC4zIDAtMjguNi0xMi42YzIuNS01LjUgNS40LTEwLjUgOC44LTE0LjMgMTIuOS0xNS44IDMxLjEtMjIuNCA1MS4xLTIyLjQgMTguMyAwIDM1LjMgNS40IDQ2LjEgMTBsMTEuNi00Ny4zYy0xNS02LjYtMzctMTIuNC02Mi4zLTEyLjQtMzkgMC03Mi4yIDE1LjgtOTUuOSA0Mi4zLTUuMyA2LjEtOS44IDEyLjktMTMuOSAyMC4xTDg1LjUgMTQ2LjRjNjQuNi05Ni44IDE1Ny43LTkzLjYgMTcwLjctOTMuNiAxMTMgMCAyMDMgOTAuMiAyMDMgMjAzLjQgMCAxOC43LTIuMSAzNi4zLTYuMyA1Mi45TDMxNi44IDI0OC42eiJdfSxfRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnBtIixpY29uOls1NzYsNTEyLFtdLCJmM2Q0IiwiTTI4OCAyODhsLTMyIDAgMC02NCAzMiAwIDAgNjR6TTU3NiAxNjBsMCAxOTItMjg4IDAgMCAzMi0xMjggMCAwLTMyLTE2MCAwIDAtMTkyIDU3NiAwek0xNjAgMTkybC0xMjggMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC0xMjh6bTE2MCAwbC0xMjggMCAwIDE2MCA2NCAwIDAtMzIgNjQgMCAwLTEyOHptMjI0IDBsLTE5MiAwIDAgMTI4IDY0IDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4eiJdfSxNRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzY2FsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4MyIsIk0zMTguMSAxNTRsLTkuNCA3LjZjLTIyLjUtMTkuMy01MS41LTMzLjYtODMuMy0zMy42LTcxLjYgMC0xMjkuNCA2MC44LTEyOS40IDEzMi4zIDAgNi42IC40IDEzLjEgMS40IDE5LjQtMi01NiA0MS44LTk3LjQgOTIuNi05Ny40IDI0LjIgMCA0Ni4yIDkuNCA2Mi42IDI0LjdsLTI1LjIgMjAuNGMtOC4zLS45LTE2LjggMS44LTIzLjEgOC4xLTExLjEgMTEtMTEuMSAyOC45IDAgNDAgMTEuMSAxMSAyOC45IDExIDQwIDAgNi4zLTYuMyA5LTE0LjkgOC4xLTIzLjFsNzUuMi04OC44YzYuMy02LjUtMy4zLTE1LjktOS41LTkuNnpNMjEzLjcgMjQ2LjVhMTQgMTQgMCAxIDEgMjAuNiAxOSAxNCAxNCAwIDEgMSAtMjAuNi0xOXpNMjI0IDMyYTIyNCAyMjQgMCAxIDAgMCA0NDggMjI0IDIyNCAwIDEgMCAwLTQ0OHptMCA2NGExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LHpEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGVtZWNvIixpY29uOls0NDgsNTEyLFtdLCJmNWM2IiwiTTIwMi45IDguNGM5LjktNS43IDI2LTUuOCAzNi0uMkw0MzAgMTE1LjljMTAgNS42IDE4IDE5LjQgMTggMzAuOUw0NDggMzY0YzAgMTEuNC04LjEgMjUuMy0xOCAzMUwyMzguOCA1MDMuN2MtOS45IDUuNy0yNiA1LjYtMzUuOC0uMkwxNy45IDM5NS4xQzggMzg5LjMgMCAzNzUuNCAwIDM2NEwwIDE0Ni43YzAtMTEuNCA4LTI1LjQgMTcuOS0zMS4xTDIwMi45IDguNHpNMTI1LjUgMjA4LjNjLTE1LjkgMC0zMS45IC4xLTQ3LjggLjFsMCAxMDEuNCAxOS4xIDAgMC0yOS44IDI4LjcgMGM0OS43IDAgNDkuNi03MS43IDAtNzEuN3pNMjY1LjYgMzA4LjZsLTMwLjctMzQuNmMzNy03LjUgMzQuOC02NS4yLTEwLjktNjUuNS0xNi4xIDAtMzIuMi0uMS00OC4zLS4xbDAgMTAxLjYgMTkuMSAwIDAtMzMuOSAxOC40IDAgMjkuNiAzMy45IDIyLjggMCAwLTEuM3ptLTQxLjYtODIuM2MyMy4zIDAgMjMuMyAzMi41IDAgMzIuNWwtMjkuMSAwIDAtMzIuNSAyOS4xIDB6bS05NS42LTEuNmMyMS4yIDAgMjEuMSAzOC45IDAgMzguOWwtMzIuMyAwIDAtMzguOCAzMi4zIDB6bTE5Mi42LTE4LjJjLTY4LjUgMC03MSAxMDUuOCAwIDEwNS44IDY5LjUgMCA2OS40LTEwNS44IDAtMTA1Ljh6bTAgMTcuNGM0NC4xIDAgNDQuOCA3MC45IDAgNzAuOXMtNDQuNC03MC45IDAtNzAuOXoiXX0sQ0R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbGF5IixpY29uOls0NDgsNTEyLFtdLCJmM2FiIiwiTTI5My42IDIzNC4zTDcyLjkgMTMgMzUzLjcgMTc0LjIgMjkzLjYgMjM0LjN6TTE1LjMgMEMyLjMgNi44LTYuNCAxOS4yLTYuNCAzNS4zbDAgNDQxLjNjMCAxNi4xIDguNyAyOC41IDIxLjcgMzUuM0wyNzEuOSAyNTUuOSAxNS4zIDB6TTQ0MC41IDIyNS42bC01OC45LTM0LjEtNjUuNyA2NC41IDY1LjcgNjQuNSA2MC4xLTM0LjFjMTgtMTQuMyAxOC00Ni41LTEuMi02MC44ek03Mi45IDQ5OUwzNTMuNyAzMzcuOCAyOTMuNiAyNzcuNyA3Mi45IDQ5OXoiXX0sVER0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvcnZ1ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyZiIsIk0zODcuNiAzNGwtMzI3IDBDMjcuOSAzNCAxLjEgNjAuOCAxLjEgOTMuNWwwIDMyNy4xYzAgMzIuNiAyNi44IDU5LjQgNTkuNSA1OS40bDMyNy4xIDBjMzMgMCA1OS41LTI2LjggNTkuNS01OS41bDAtMzI3QzQ0Ny4xIDYwLjggNDIwLjMgMzQgMzg3LjYgMzR6TTg4LjIgMTIwLjhsOTYgMCAwIDExNiA2MS44LTExNiAxMTAuOSAwLTgxLjIgMTMyLTE4Ny41IDAgMC0xMzJ6TTI1MCAzOTIuOWwtNjUuNy0xMTMuNiAwIDExMy42LTk2IDAgMC0xMzAuOCAxOTEuNSAwIDg4LjYgMTMwLjgtMTE4LjQgMHoiXX0sJER0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InczYyIsaWNvbjpbNjQwLDUxMixbXSwiZTdkZSIsIk0xMDUuMiAzMDUuM2wzMC45LTEwNC43YzcuOS0yNi43IDguNi00MC42IC4yLTY4LjhsLTEwLjEtMzMuOSA0NC4xIDAgNjEgMjA3LjQgNDUuNy0xNTUuNWMxMy4zLTQ1LjMgMjEuMS01MS45IDU5LjQtNTEuOWwxMzIuOCAwYy0yNC4yIDQyLjktNDkuMyA4NS4yLTczLjkgMTI3LjkgMi42IC44IDUuMiAxLjggNy43IDIuOCAxNy4zIDcuMSAzMi4yIDE5LjQgNDIgMzUuNSAxMS4yIDE4LjUgMTYuOCA0MC4yIDE2LjggNjUuMiAwIDMwLjgtOC4yIDU2LjgtMjQuNiA3Ny44LTE0LjUgMTguNi0zNSAyOS41LTU4LjIgMzEuMiAwIC4zLTUuMiAuNC01LjggLjQtMzkuNy0uMS03MC44LTMyLjEtODMuMS02OC43bDQyLjkgMGMzLjUgNS4zIDYuOCAxMC43IDExLjIgMTUuNSA4LjEgNy4zIDE4LjUgMTAuOSAyOS4zIDExLjEgMTMuMSAwIDIzLjMtOS4xIDI5LjktMTkuOCA4LjEtMTMuMiAxMi4yLTI5IDEyLjItNDcuNSAwLTEzLjEtMS44LTI0LjMtNS4zLTMzLjYtLjktMi4zLTEuOS00LjUtMy02LjYtMS40LTIuNi0yLjktNS4xLTQuNy03LjQtMTAuMS0xMy4yLTI5LjMtMTkuNy00Ny41LTE5LjhsLTI4LjIgMCA3MC4zLTEyMi0zNS42IDBjLTQzLjEgMC0zNS45LTUuNC01MC40IDQzLjNsLTc1LjcgMjU1LjMtNC4yIDAtNjMuMS0yMTEuMS02My4xIDIxMS4xLTQuMiAwLTEwMS0zNDAuNyA0NC4yIDAgNjEgMjA3LjR6TTQ2NyAzMzUuN2MuMyAuNiAxMS4zIDIwLjMgMTguMyAzMC4zIDcuMSAxMC4xIDE5LjggMjAuOSAyNC44IDI0LjZzMTkuMSAxMi41IDM0LjMgMTMuOWMxNS4yIDEuNSAyMy4zIC4yIDM4LjctNi42IDE1LjQtNi44IDI3LjktMjAuNCAzNC45LTI4LjEgNi45LTcuNiAxNy45LTI3LjMgMTguMi0yNy43bDMuMyAxNi44YzEuNyA5LTEgMjMuNy00LjEgMzAtNC4zIDguNi03LjYgMTMuNS0xNCAyMC4zLTYuMSA2LjUtMTYuNyAxMy41LTIxLjMgMTYuNC00LjYgMi45LTIzLjEgMTUuMS01MC4xIDEwLjNzLTQ0LjctMjUuOS01My45LTM4LjJjLTkuOC0xMy4yLTE2LjctMjguMy0xOS0zMy4yLTMuOC04LjQtOS45LTI4LjItMTAuMS0yOC44em0xNjkuNy0yMThjMy4zIDIwLjMtLjEgMjguNy05LjEgNDZsLTEyLjcgMjQuMmMtLjMtLjYtMTAtMjAuNy0yNS45LTMxLjktMTMuNi05LjYtMjIuNS0xMS43LTM2LjMtOC44LTE3LjggMy43LTM4IDI1LTQ2LjggNTEuMi0xMC41IDMxLjQtMTAuNyA0Ni42LTExIDYwLjYtLjYgMjIuNCAyLjkgMzUuNiAyLjkgMzUuNnMtMTUuNC0yOC41LTE1LjItNzAuMWMuMS0yOS43IDQuOC01Ni43IDE4LjUtODMuMyAxMi4xLTIzLjQgMzAuMS0zNy40IDQ2LjEtMzkuMSAxNi41LTEuNyAyOS42IDYuMyAzOS43IDE0LjkgMTAuNiA5IDIxLjMgMjguOCAyMS4zIDI4LjhsMjQuOS00OS44IDMuNiAyMS44eiJdfSxERHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JhdiIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNiIsIk0zMDIuNiAyMTAuNmM0LjUgNC41IDQuNSAxMi4zIDAgMTYuOGwtMTAgMTBjLTQuNSA0LjktMTIuMyA0LjktMTcuMSAwbC0xMC44LTEwLjhjLTQuNS00LjktNC41LTEyLjMgMC0xNy4xbDEwLTEwYzQuNS00LjUgMTIuMy00LjUgMTcuMSAwbDEwLjggMTEuMXptLTMxLjItMjAuM2E3LjcgNy43IDAgMSAwIC0xMC42LTExIDcuNyA3LjcgMCAxIDAgMTAuNiAxMXptLTI2LjggNS41YTcuNSA3LjUgMCAxIDAgMTAuNyAxMC41IDcuNSA3LjUgMCAxIDAgLTEwLjctMTAuNXpNMzE5LjQgMTgyYy0yMC41LTE0LjktMzQuOS00NC42LTEyLjMtNzAuMyAyMi4zLTI1LjcgNDItMTcuOCA2MS43IC44IDEyLjMgMTEuNyAzMC4yIDI1LjcgMTcuOCA0OS44LTEyLjkgMjQuMy00Ni42IDM0LjMtNjcuMiAxOS43em00OS4yLTQ1LjljLTkuMi0xMC4zLTI0LjEgNy4xLTE2IDE2LjYgNy42IDkuMyAzMy4xIDIuNSAxNi0xNi42ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00NDMuNyA0NGMyLjYtMTYuNi0yMC45LTE3LjEtMjYtMjYuNS0xNC0yNC45LTI4LjYtMzgtNTYuMy0zMS40IDEyLTguMyAyNC4zLTYuMyAyNC4zLTYuMyAuMy02LjYgMC0xMy40LTkuNy0yNS43IDQtMTIuOSAuMy0yMy4xIC4zLTIzLjEgMTYtOC45IDI3LjctMjUuMiAzMC00NC42IDMuNy0zMi0xOS40LTYxLjEtNTEuNC02NC44LTIyLjgtMi42LTQ1LjEgNy45LTU2LjEgMjYuNS0yMy45IDQxLjQgMS40IDczLjIgMjMuMSA4NC0xNC45LTEuNC0zNS40LTEyLjMtNDEuNC0zNS40LTYuOC0yNi41IDIuOS01MS40IDkuMi02My40IDAgMC00LjUtNi04LjMtOS4yIDAgMC0xNC4yIDAtMjUuNCA1LjUgMTIuMy0xNS43IDI2LTE0LjkgMjYtMTQuOSAwLTYuNi0uNi0xNS40LTMuNy0yMi4zLTUuNi0xMS40LTI0LjYtMTMuMy0zMi43IDIuOSAuMS0uMiAuMy0uNCAuNC0uNS01LjIgMTIuMy0xLjEgNTcuNyAxNy40IDkwLTIuNiAxLjQtOS40IDYuMy0xMy40IDEwLjMtMjIuMyAxMC01OCA2Mi4yLTU4IDYyLjItMjkuMSAxMS4xLTc5LjcgNTIuNS03Mi45IDgyLjMgLjMgMy4xIDEuNCA1LjcgMy4xIDcuNy0yLjkgMi4zLTUuNyA1LjItOC42IDguNi0xMi4zIDE0LjItNS41IDM2LjMgMTguMyAyNS4yIDE2LjMtNy40IDMwLjYtMjAuOSAzNy41LTMxLjQgMCAwLTUuNy01LjItMTYuOC00LjUgMjguNi02LjggMzUuNC05LjcgNDcuNy05LjQgOC4zIDQgOC4zLTM1LjQgOC4zLTM1LjQgMC0xNS4yLTIuMy0zMi0xMS41LTQyLjggMTIuOSAxMi42IDMwIDMzLjggMjguOSA2Mi42LS44IDE4LjktMTUuNyAyMy43LTE1LjcgMjMuNy05LjQgMTcuMS00NC42IDY4LTMxLjQgMTA5LjQgMCAwLTEwLTE1LjQtMTAuNS0yMi44LTE4IDIwLTQ4IDU0LTI1LjQgNjYuNiAyNy41IDE1LjIgMTEyLjMtOTEuNSAxMzAuMy0xNDYuOSAzNS43LTIxLjUgNTcuMi00OC44IDY2LTY3LjEgMjIuNyA0NC45IDk4LjQgOTcuNSAxMDQuNCA2MC45eiJdfSxMRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXdzIixpY29uOls2NDAsNTEyLFtdLCJmMzc1IiwiTTE4MC40IDIwM2MtLjcgMjIuNiAxMC42IDMyLjcgMTAuOSAzOS0uMSAxLjMtLjYgMi41LTEuMyAzLjZzLTEuNyAyLTIuOCAyLjZsLTEyLjggOWMtMS43IDEuMi0zLjYgMS44LTUuNiAxLjktLjQgMC04LjIgMS44LTIwLjUtMjUuNi03LjUgOS40LTE3IDE2LjktMjcuOSAyMnMtMjIuNyA3LjctMzQuNyA3LjVjLTE2LjMgLjktNjAuNC05LjItNTguMS01Ni4yLTEuNi0zOC4zIDM0LjEtNjIuMSA3MC45LTYwIDcuMSAwIDIxLjYgLjQgNDcgNi4zbDAtMTUuNmMyLjctMjYuNS0xNC43LTQ3LTQ0LjgtNDMuOS0yLjQgMC0xOS40LS41LTQ1LjggMTAuMS03LjQgMy40LTguMyAyLjgtMTAuOCAyLjgtNy40IDAtNC40LTIxLjUtMi45LTI0LjIgNS4yLTYuNCAzNS45LTE4LjQgNjUuOS0xOC4yIDIwLjEtMS44IDQwLjEgNC40IDU1LjcgMTcuMyA2LjMgNy4xIDExLjIgMTUuNCAxNC4yIDI0LjRzNC4yIDE4LjUgMy41IDI4bDAgNjkuM3pNOTQgMjM1LjRjMzIuNC0uNSA0Ni4yLTIwIDQ5LjMtMzAuNSAyLjUtMTAuMSAyLjEtMTYuNCAyLjEtMjcuNC05LjctMi4zLTIzLjYtNC45LTM5LjYtNC45LTE1LjItMS4xLTQyLjggNS42LTQxLjcgMzIuMy0xLjIgMTYuOCAxMS4xIDMxLjQgMzAgMzAuNXptMTcwLjkgMjMuMWMtNy45IC43LTExLjUtNC45LTEyLjctMTAuNEwyMDIuNCA4My40Yy0xLTIuOC0xLjYtNS42LTEuOS04LjYtLjItMS4yIC4xLTIuNCAuOC0zLjRzMS44LTEuNiAzLTEuOGMuMiAwLTIuMSAwIDIyLjIgMCA4LjgtLjkgMTEuNiA2IDEyLjYgMTAuNEwyNzQuOSAyMjAuOCAzMDguMSA4MGMuNS0zLjIgMi45LTExLjEgMTIuOC0xMC4ybDE3LjIgMGMyLjItLjIgMTEuMS0uNSAxMi43IDEwLjRMMzg0LjEgMjIyLjcgNDIxIDgwLjFjLjUtMi4yIDIuNy0xMS40IDEyLjctMTAuNGwxOS43IDBjLjktLjEgNi4yLS44IDUuMyA4LjYtLjQgMS44IDMuNC0xMC43LTUyLjggMTY5LjktMS4xIDUuNS00LjggMTEuMS0xMi43IDEwLjRsLTE4LjcgMGMtMTAuOSAxLjItMTIuNS05LjctMTIuNy0xMC43bC0zMy4yLTEzNy4xLTMyLjggMTM3Yy0uMiAxLjEtMS43IDExLjktMTIuNyAxMC43bC0xOC4zIDAgMCAwem0yNzMuNSA1LjZjLTUuOSAwLTMzLjktLjMtNTcuNC0xMi4zLTIuMy0xLTQuMy0yLjYtNS43LTQuOHMtMi4xLTQuNi0yLjEtNy4xbDAtMTAuN2MwLTguNSA2LjItNi45IDguOC01LjkgMTAgNC4xIDE2LjUgNy4xIDI4LjggOS42IDM2LjcgNy41IDUyLjgtMi4zIDU2LjctNC41IDEzLjItNy44IDE0LjItMjUuNyA1LjMtMzQuOS0xMC41LTguOC0xNS41LTkuMS01My4xLTIxLTQuNi0xLjMtNDMuNy0xMy42LTQzLjgtNTIuNC0uNi0yOC4yIDI1LTU2LjIgNjkuNS01NiAxMi43IDAgNDYuNCA0LjEgNTUuNiAxNS42IDEuNCAyLjEgMiA0LjYgMS45IDdsMCAxMC4xYzAgNC40LTEuNiA2LjctNC45IDYuNy03LjctLjktMjEuNC0xMS4yLTQ5LjItMTAuOC02LjktLjQtMzkuOSAuOS0zOC40IDI1LS40IDE5IDI2LjYgMjYuMSAyOS43IDI2LjkgMzYuNSAxMSA0OC42IDEyLjggNjMuMSAyOS42IDE3LjEgMjIuMiA3LjkgNDguMyA0LjMgNTUuNC0xOS4xIDM3LjUtNjguNCAzNC40LTY5LjMgMzQuNHptNDAuMiAxMDQuOWMtNzAgNTEuNy0xNzEuNyA3OS4yLTI1OC41IDc5LjItMTE3LjEgLjgtMjMwLjMtNDIuMy0zMTcuMy0xMjAuNy02LjUtNS45LS44LTE0IDcuMi05LjUgOTYuNSA1NS4yIDIwNS43IDg0LjIgMzE2LjkgODQuMSA4My0uNCAxNjUuMS0xNy4zIDI0MS42LTQ5LjUgMTEuOC01IDIxLjggNy44IDEwLjEgMTYuNHptMjkuMi0zMy4zYy05LTExLjUtNTkuMy01LjQtODEuOC0yLjctNi44IC44LTcuOS01LjEtMS44LTkuNSA0MC4xLTI4LjIgMTA1LjktMjAuMSAxMTMuNC0xMC42IDcuNSA5LjUtMi4xIDc1LjQtMzkuNiAxMDYuOS01LjggNC45LTExLjMgMi4zLTguNy00LjEgOC40LTIxLjMgMjcuNC02OC41IDE4LjQtODB6Il19LEVEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbGlkZS1nIixpY29uOls0NDgsNTEyLFtdLCJmMmE2IiwiTTQwNy4xIDIxMS4yYy0zLjUtMS40LTExLjYtMy44LTE1LjQtMy44LTM3LjEgMC02Mi4yIDE2LjgtOTMuNSAzNC41bC0uOS0uOWM3LTQ3LjMgMjMuNS05MS45IDIzLjUtMTQwLjQgMC03MS41LTM4LjItMTAwLjYtMTA4LjQtMTAwLjYtMTE1LjEgMC0xNzMuNCAxMTMuNy0xNzMuNCAxOTguNCAwIDg3LjkgNTEuMyAxMzYuNiAxMzguNiAxMzYuNiAxMiAwIDExLTEgMTEgMy44LTE2LjkgMTI4LjktOTAuOCAxMzMuMS05MC44IDk0LjYgMC0zOS4yIDQ1LTU4LjYgNDUuNS02MS0uMy0xMi4yLTQ3LTI3LjYtNTguOS0yNy42LTMzLjkgLjEtNTIuNCA1MS4yLTUyLjQgNzkuMyAwIDUxLjkgMzIuOCA4Ny45IDg1LjUgODcuOSA3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40ek0yMzEuOCAxMjYuOGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHoiXX0sUER0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpzZmlkZGxlIixpY29uOls1NzYsNTEyLFtdLCJmMWNjIiwiTTUxMS4xIDIzNy41Yy00LjctMi42LTUuNy01LjctNi40LTEwLjgtMi40LTE2LjUtMy41LTMzLjYtOS4xLTQ5LjEtMzUuOS0xMDAtMTU0LTE0My40LTI0Ni44LTkxLjYtMjcuNCAxNS4yLTQ5IDM2LjQtNjUuNSA2My45LTMuMi0xLjUtNS41LTIuNy03LjgtMy43LTMwLjEtMTIuNC01OS0xMC4xLTg1LjMgOS4yLTI1LjUgMTguNy0zNi40IDQ0LjUtMzIuNyA3Ni40IC40IDMtMiA3LjYtNC41IDkuNS0zOS43IDMwLTU2IDc4LjEtNDEuOSAxMjQuNiAxMy44IDQ1LjYgNTcuNSA3OS44IDEwNS42IDgxLjQgMzAuMyAxIDYwLjYgLjUgOTEgLjUgODQgMCAxNjguMSAuNSAyNTIuMS0uNSA1Mi43LS42IDk2LjEtMzYuOSAxMDguMi04Ny4zIDExLjUtNDguMS0xMS4xLTk3LjMtNTYuOC0xMjIuNnptMjEuMSAxNTYuOWMtMTguMiAyMi40LTQyLjMgMzUuMy03MS4zIDM1LjctNTYuOSAuOC0xMTMuOCAuMi0xNzAuNyAuMiAwIC43LTE2MyAuMi0xNjMuNyAuMi00My45LS4zLTc2LjctMTkuOC05NS4yLTYwLTE4LjktNDEuMi00LTkwLjggMzQuMi0xMTYuMSA5LjItNi4xIDEyLjUtMTEuNiAxMC4xLTIzLjEtNS41LTI2LjQgNC41LTQ4IDI2LjQtNjMgMjMtMTUuNyA0Ny40LTE2LjEgNzItMy4xIDEwLjMgNS40IDE0LjYgMTEuNiAyMi4yLTIuNSAxNC4yLTI2LjQgMzQuNi00Ni43IDYwLjctNjEuMyA5Ny41LTU0LjQgMjI4LjQgNy42IDIzMC4yIDEzMi43IC4xIDguMiAyLjQgMTIuNCA5LjggMTUuOSA1Ny42IDI2LjggNzQuNSA5Ni4xIDM1LjEgMTQ0LjV6bS04Ny44LTgwLjVjLTUuOCAzMS4yLTM0LjYgNTUuMS02Ni43IDU1LjEtMTcgMC0zMi4xLTYuNS00NC4xLTE3LjctMjcuNy0yNS43LTcxLjEtNzUtOTUuOS05My40LTIwLjEtMTQuOS00Mi0xMi4zLTYwLjMgMy44LTUwIDQ0LjEgMTUuOSAxMjEuOCA2Ny4xIDc3LjIgNC41LTQgNy44LTkuNSAxMi43LTEyLjggOC4yLTUuNSAyMC44LS45IDEzLjIgMTAuNi0xNy40IDI2LjMtNDkuMyAzOC4yLTc4LjkgMjkuMy0yOC45LTguNy00OC44LTM2LTQ4LjYtNzAuMiAxLjItMjIuNSAxMi40LTQzLjEgMzUuNC01NiAyMi42LTEyLjYgNDYuNC0xMy4xIDY3IDIuNSA1MC44IDM4LjUgNzUuNiA4MS43IDEwNy4zIDEwMS4yIDI0LjYgMTUuMSA1NC4zIDcuNCA2OC44LTE3LjUgMjguOC00OS4yLTM0LjYtMTA1LTc4LjktNjMuNS00IDMuNy02LjkgOC45LTExLjQgMTEuNy0xMSA2LjgtMTcuMy00LjEtMTIuOC0xMC40IDIwLjctMjguNiA1MC41LTQwLjQgODMuMy0yOC4yIDMxLjQgMTEuNyA0OS4xIDQ0LjQgNDIuOCA3OC4yeiJdfSxJRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5YmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmNSIsIk0yODYuMiA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2ek0zOTguMSAyNzEuNGMtOS41LTE0LjYtMzkuNC01Mi40LTg3LjMtNzMuNy02LjEtMi43LTEyLjItNS4xLTE4LjQtNy4zIDQuMS05LjkgNi0yMC42IDUuOC0zMS40cy0yLjctMjEuMy03LjItMzEuMS0xMC45LTE4LjUtMTguOS0yNS43LTE3LjQtMTIuNi0yNy42LTE2Yy0xMi40LTQuMS0yMy4zLTYtMzIuNC01LjgtLjYtMi0xLjktMTEgOS40LTM1bC0yMi45LTEzLjUtNS41IDcuNmMtOC43IDEyLjEtMTYuOSAyMy42LTI0LjMgMzQuOS0yLjctLjYtNS41LTEuMS04LjMtMS4yLTQxLjUtMi40LTM5LTIuMy00MS4xLTIuMy01MC42IDAtNTAuOCA1Mi4xLTUwLjggNDUuOWwtMi40IDM2LjdjLTEuNiAyNyAxOS44IDUwLjIgNDcuNiA1MS44bDguOSAuNUMxMDYgMjE1LjUgOTAuNCAyMjcuNSA3Ni42IDI0MS40IDE0IDMwNC43IDE0IDM3NCAxNCA0MjkuOGwwIDMzLjYgMjMuMy0yOS44YzMuMSAxMy4xIDggMjUuOCAxNC42IDM3LjYgNS44IDEwLjEgMTQuOSA5LjQgMTkuNiA3LjMgNC4yLTEuOSAxMC02LjkgMy44LTIwLjEtOC0xNi44LTEzLjMtMzQuNy0xNS44LTUzLjFsNDYuOC01OS44LTI0LjcgNzQuMWM1OC4yLTQyLjQgMTU3LjQtNjEuOCAyMzYuMi0zOC42IDM0LjIgMTAuMSA2Ny40IC43IDg0LjctMjMuOCAuNy0xIDEuMi0yLjIgMS44LTMuMiAxLjggOS40IDIuNyAxOC45IDIuOCAyOC40IDAgMjMuMy0zLjcgNTIuOS0xNC45IDgxLjYtMi41IDYuNSAxLjggMTQuNSA4LjYgMTUuNyA3LjQgMS42IDE1LjMtMy4xIDE4LjQtMTEuMSA5LjYtMjUuNSAxNC42LTU0LjYgMTQuNi04Ni4yIDAtMzguNi0xMy03Ny41LTM1LjktMTEwLjl6TTE0Mi40IDEyOC42bC0xNS43LS45LTEuNCAyMS44IDEzLjEgLjhjLS42IDYuNS0uNSAxMy4xIC4zIDE5LjZsLTIyLjQtMS4zYy0xLjYtLjEtMy4yLS41LTQuNy0xLjFzLTIuOC0xLjYtMy45LTIuOC0xLjktMi42LTIuNS00LjEtLjgtMy4xLS43LTQuN0wxMDcgMTE5YzEtMTIuMiAxMy45LTExLjMgMTMuMy0xMS4zbDI5LjEgMS43Yy0yLjggNi4yLTUuMSAxMi42LTcgMTkuMnpNMjkwLjggMzAwLjhjLTIuMSAxLjYtNC44IDIuNC03LjUgMi4ycy01LjEtMS41LTYuOS0zLjVsLTkuNy0xMS41LTM0LjQgMjdjLTEuNiAxLjMtMy43IDEuOS01LjggMS43cy00LTEuMi01LjMtMi44bC0xNS44LTE4LjZjLTEuMi0xLjYtMS43LTMuNS0xLjUtNS40czEuMy0zLjcgMi44LTQuOWwzNC42LTI3LjItMTQuMS0xNi43LTE3LjEgMTMuNWMtMS42IDEuMi0zLjUgMS44LTUuNSAxLjZzLTMuOC0xLjEtNS4xLTIuNmMwIDAtMy43LTQuNC0zLjgtNC41LTEuMi0xLjYtMS43LTMuNS0xLjUtNS41czEuMy0zLjcgMi44LTQuOUwyMTQgMjI1LjJzLTE4LjUtMjItMTguNi0yMi4xYy0uOC0xLTEuMy0yLjEtMS43LTMuM3MtLjQtMi41LS4zLTMuNyAuNi0yLjQgMS4yLTMuNSAxLjUtMiAyLjUtMi44YzIuMS0xLjcgNC44LTIuNCA3LjQtMi4yczUuMSAxLjUgNi45IDMuNmw4MS4xIDk2LjNjLjggMSAxLjMgMi4xIDEuNyAzLjNzLjQgMi41IC4zIDMuNy0uNiAyLjUtMS4yIDMuNS0xLjUgMi4xLTIuNSAyLjh6TTE4Ny40IDQxOWExOCAxOCAwIDEgMCAwIDM2IDE4IDE4IDAgMSAwIDAtMzZ6Il19LEFEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbi1kcm9wIixpY29uOls1NzYsNTEyLFtdLCJlN2UzIiwiTTQ4MCAzMmM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZMOTYgNDQ4Yy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzg0IDB6TTMwMi40IDExNC43Yy05LjgtMTYuNC0yMC41LTE2LjQtMjkuNiAwbC02OC45IDExNGMtMTAuNyAxNS42LTE2LjQgMzIuOC0xNi40IDUyLjUgMCA1MC45IDQ0LjMgOTQuMyAxMDAuMSA5NC4zIDU1IDAgMTAwLjktNDMuNSAxMDAuOS05NC4zIDAtMTkuNy02LjYtMzcuOC0xNy4yLTUyLjVsLTY4LjktMTE0eiJdfSxORHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9yZ2VqbyIsaWNvbjpbMzIwLDUxMixbXSwiZTg2MCIsIk0yNjEuNSAxLjJjMzQgMCA2MS42IDI3LjYgNjEuNiA2MS42cy0yNy42IDYxLjYtNjEuNiA2MS42Yy0yMyAwLTQzLjEtMTIuNy01My43LTMxLjRsLTI4LjUgMGMtMjQgMC00NyA5LjUtNjQgMjYuNXMtMjYuNSA0MC0yNi41IDY0bDAgNDMuNWMyNi0xOS41IDU3LjctMzAuMiA5MC42LTMwLjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40IDM0IDAgNjEuNiAyNy42IDYxLjYgNjEuNnMtMjcuNiA2MS42LTYxLjYgNjEuNmMtMjMgMC00My4xLTEyLjctNTMuNy0zMS40bC0yOC41IDBjLTI0IDAtNDcgOS41LTY0IDI2LjVzLTI2LjUgNDAtMjYuNSA2NGwwIDQ3LjhjMTguNyAxMC42IDMxLjQgMzAuNiAzMS40IDUzLjYgMCAzNC0yNy42IDYxLjYtNjEuNiA2MS42Uy0zIDQ4My4yLTMgNDQ5LjJjMC0yMyAxMi43LTQzLjEgMzEuNC01My42bDAtMjEyYzAtNDAgMTUuOS03OC40IDQ0LjItMTA2LjdzNjYuNy00NC4yIDEwNi43LTQ0LjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40ek01OC42IDQyMy45Yy0xNCAwLTI1LjMgMTEuMy0yNS4zIDI1LjNzMTEuMyAyNS40IDI1LjMgMjUuNCAyNS40LTExLjQgMjUuNC0yNS40LTExLjQtMjUuMy0yNS40LTI1LjN6TTI2MS41IDIwMS43YTI1LjQgMjUuNCAwIDEgMCAwIDUwLjcgMjUuNCAyNS40IDAgMSAwIDAtNTAuN3ptMC0xNjQuMmEyNS40IDI1LjQgMCAxIDAgMCA1MC43IDI1LjQgMjUuNCAwIDEgMCAwLTUwLjd6Il19LFJEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwb3N0Z3Jlc3FsIixpY29uOls1MTIsNTEyLFtdLCJlODU4IiwiTTIxOS44IDE3MS4zYzMuOSAuNSAxMy4xIDIuNyAxMi4zIDguNS0uOCA1LjktOS4yIDkuMS0xNC4yIDguNC00LjctLjctMTMuMi02LjEtMTIuMy0xMi4xbC4zLTIuMWM0LjIgMCA4LjMtMy41IDEzLjktMi43em0xNjguMS0zLjRjMTAuOCAyLjYtMS4xIDEzLjUtNi44IDE0LjMtNC4zIC42LTEyLjEtMi4yLTEyLjgtNy40LTEtNy40IDE1LjctNy45IDE5LjctNi45em0tMjItMTQwLjhjMzUuNy0uMyA4MS4zIDkuNCAxMTQuMyA1MS43IDcuMiA5LjIgMTAgMjQgOS43IDQwLjktLjggNDkuNi0yNiAxMjkuNC03MC43IDE5Ny40IDQuNSAyLjkgMTcuNiA3LjQgNTEuMSAuNSA1LjYtMS4yIDEyLjctMi4yIDE3LjYgMS42IDE4LjIgMTMuOS0xOS42IDM1LjEtMjguNCAzOS4yLTEzLjIgNi4yLTM0LjggOS41LTUxLjIgOC43LTIuMS0uMi00LjMtLjItNi4zLS42LTUuMS0xLjEtNy40LTEtOC4zLS43LTEuMSAuMy0xLjQgMi45LTEuNiAzLjgtMi44IDI0LjktNy43IDY0LjctMTAuNyA4Mi0yLjggMTYuMy03LjcgMjkuMy0xNy4yIDM5LjItOS41IDkuOS0yMi44IDE1LjctNDAuNiAxOS41LTIyLjMgNC44LTM3LjktLjEtNDguNy05LjEtMTAuMy04LjctMTUuMi0yMC40LTE4LTI3LjQtMS44LTQuNS0zLTExLjUtNC0xOS44LTIuMy0xOS44LTMuMy01MC40LTMtODMuMy0yNC42IDIyLjEtNTUgMTcuMi02OC4yIDEzLjktMTAuNS0yLjYtMzMtMTYuMS0xNy41LTI4LjcgMTEuOS05LjcgMzAuMy01LjUgNDIuMi0xNSAyLjQtMS45IDExLjQtMTAuNiAxMS40LTEzLjUtMTAtLjMtMTkuNi0yLjktMjguMS03LjUtMTMuNSAxNC41LTI2LjQgMjkuNS0zOS4zIDQ0LjYtOC4zIDkuOS0xNy40IDE1LjgtMjcuNCAxNi4yLTkuOSAuNC0xOC43LTQuNi0yNi4xLTExLjgtNy4zLTcuMS0xNC4xLTE3LjItMjAuNC0yOS0xOS0zNS41LTMzLjItODYuMS00Mi4zLTEyNi40LTYtMjYuNy05LjYtNDkuMS0xMC4xLTU5LTIuMi00NC4zIDgtNzQuMSAyNi05My4yIDE3LjktMTkgNDIuNC0yNiA2Ni4xLTI3LjQgMzUuNi0yIDcxIDguNSA4Ni42IDEzLjhsNSAxLjhjMTUuOS0xMC44IDM2LjEtMTcuNCA2MS43LTE3IDEzLjIgLjIgMjUuNSAyLjIgMzYuNyA0LjIgMTguNi03LjEgMzkuOC05LjUgNTkuNC05Ljd6bS05NiAyMC41Yy0yNC43LS40LTQyLjkgNi41LTU2LjYgMTYuOC0uOCAuNi0xLjggMS0yLjggMS4yLTE0LjQgMTEuOC0yMy45IDI4LTMwLjMgNDQuOC03LjIgMTkuMS0xMCAzOC41LTExLjEgNTEuNSA3LjYtNC4zIDE3LjktOC43IDI4LjctMTEuMiAxMC41LTIuNCAyMi40LTMuMiAzMi43IC44IDEwLjkgNC4yIDE5IDEzLjMgMjIuMiAyOC4xIDcuNSAzNC43IDYuNyA1OC4yIDIuNyA3NS45LTQuOCAyMS0xNi44IDM5LjUtMjEuOSA2MC40IDMuNS0uOSA3LjEtLjYgOS44IC4xbDcuMiAyLjljNy43IDQuNCAxMi44IDEzIDE0IDIxLjcgMiA2IC4xIDE0LjMgMCAyMC42IDYuNyAxNi4zIDcuMiAzNi4xIDYuNyA1My4zLS43IDI1LTEgNDAuMiAzLjIgNTEuNyAyLjkgNy45IDQuNyAxNi40IDEwLjQgMjIuOCAyLjYgMyA2LjEgNS41IDEwLjkgNi44IDE4LjUgNS4xIDQ0LTQuNyA1Ni42LTE4LjIgNy43LTguMiAxMi4zLTE5LjMgMTMuNC0zMy45IDEuMS0xMy42IDQuMi0yNy42IDYuMy00MS4xbDIuOS04LjhjMS43LTE0LjggMy40LTI5LjYgNS00NC40LS40LTkuMSAuOS0xNi4xIDMuOS0yMS41IDMuMS01LjcgNy42LTguOSAxMS44LTEwLjggMS44LS44IDMuOS0xLjIgNS42LTItMS42LTIuNC0zLjYtNC42LTUuMy02LjgtOC4yLTEwLjQtMTMuMy0yMi4zLTE5LjctMzMuOC04LjUtMTUuMi0yMy44LTQyLjItMzAuMS02Ny41LTQuMS0xNi40LTQuOS0zNC41IDYtNDcgOS44LTExLjIgMjYuOS0xNS41IDUxLjktMTMtMy40LTEwLTExLjQtMjcuNS0yNC44LTQ0LjctMTgtMjMtNDUuNy00NS45LTg1LjctNTMuMS03LjMtLjktMTUuMi0xLjUtMjMuNi0xLjd6bS0zMi4yIDI4MmMtOCAuNy0xNS41IDE4LjItMjEuNyAyMy4xLTYuMiA0LjktMTQuNSA3LjYtMzAgMTAuNy00LjUgLjktNy43IDEuOS05LjcgMi44IDIyLjMgMTUuOCA1OC4zIDMuMiA3Mi42LTE2LjggMS43LTIuNCAyLjEtNiAuNS0xMC4yLTEuNy00LjUtNi40LTEwLjEtMTEuOS05LjZ6TTExNy42IDQ5LjJjLTIxLjYgMS4yLTQyIDcuNS01Ni40IDIyLjgtMTQuNCAxNS4yLTI0LjIgNDAuNi0yMi4xIDgyLjUgLjQgOC41IDMuOCAzMCA5LjggNTYuNiA4LjkgMzkuOCAyMy43IDkwLjMgNDAuNiAxMjIuMiA2IDExLjEgMTcuNCAzMyAzMi44IDMyLjMgNC40LS4yIDEwLjEtMi44IDE3LTExIDEyLjYtMTQuOCAyNS4yLTI5LjUgMzguNS00My43LTE3LjktMTUuNC0yOC41LTQwLjMtMjQuOC02Ny4yIDMuNC0yNC4zIC41LTQ4LjIgMS4yLTcyLjUgLjQtMTEuOSAyLjMtMzguNyAxMi42LTY1LjggNS45LTE1LjUgMTQuNS0zMS4zIDI3LjQtNDQuMi0xNi40LTUuNC00Ny4xLTEzLjUtNzYuNi0xMS45ek00MDUuMSAzMjguOWMtMy44IDEuMS02LjcgMi4yLTguNyA1LjgtMS4zIDIuNC0yLjUgNi43LTIuMiAxNC4yIDQuOCAzLjkgMTQuMSAzLjMgMTkuOCAzLjIgMTMuOS0uMiAyOS45LTMuMSAzOS4zLTcuNSA3LjktMy43IDE0LjctOC4zIDE5LTEyLjItMzguMiA3LjctNTUuNCAyLjEtNjMuMi00LjgtMS4zIC40LTIuOSAuOS0zLjkgMS4yek0yMjUuMyAxNjQuOWMtMTUuNC01LjktMzUuNCAxLjgtNDguOSA5LjQtMy42IDItNi41IDQtNy45IDUuMiAuNCA4LjggMi44IDM2LjEtMS40IDY2LjMtNS4xIDM2LjYgMjEuNyA2Ni42IDUyLjUgNjYuNyA1LjEtMjAuOCAxNy0zOS4yIDIxLjgtNjAuMSAzLjUtMTUuMyA0LjUtMzYuNi0yLjctNjkuNy0yLjMtMTAuNS03LjQtMTUuNC0xMy40LTE3Ljd6TTM3MC4xIDQyLjJjLTE1LjItLjItMjguOCAxLjctMzkuMiAzLjggMjYgMTEuOCA0NS42IDI5LjcgNTkuNiA0Ny42IDE3LjQgMjIuMiAyNi4zIDQ0LjEgMjkgNTUgLjcgMi43IDEuMyA1LjcgLjUgOC40IC42IDE4LjktNCAzMS4zLTQuNiA0OS4yLS40IDEyLjkgMi45IDI4LjEgMy43IDQ0LjcgLjggMTUuNy0xIDMyLjUtMTEuMiA0OS41IC44IDEgMS42IDIuMSAyLjQgMy4xIDI2LjgtNDIuMiA0Ni04OC42IDU2LjMtMTI4LjUgNS41LTIxLjQgOC40LTQwLjcgOC43LTU2LjEgLjItMTUuMi0yLTI1LjQtNS44LTMwLjQtMjguMy0zNi4xLTY2LjgtNDUuOC05OS4zLTQ2LjJ6bTM1LjYgMTE5LjVjLTI1LjMtMy4yLTM3LjMgMS41LTQyLjggNy43LTYgNi44LTYuOCAxOC41LTIuOSAzNC4xIDUuNyAyMi42IDIwLjEgNDguNiAyOC43IDY0IDMuNiA2LjQgNi40IDEzLjEgMTAgMTkuNCA1LjUtMTEuNyA2LjYtMjMuNSA2LTM1LjUtLjctMTUtNC4yLTMwLjMtMy43LTQ1LjhsLjQtNy40YzEuMi0xNC4zIDQuMS0yNC42IDQuMi0zNi41eiJdfSxPRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VlYmx5IixpY29uOls1MTIsNTEyLFtdLCJmNWNjIiwiTTQyNS4xIDY1LjhjLTM5LjkgMC03My4zIDI1LjctODMuNyA2NC4zLTE4LjItNTguMS02NS41LTY0LjMtODUtNjQuMy0xOS44IDAtNjYuOCA2LjMtODUuMyA2NC4zLTEwLjQtMzguNi00My40LTY0LjMtODMuNy02NC4zLTQ5IDAtODcuNSAzMy45LTg3LjUgNzcuMiAwIDI5IDQuMiAzMy4zIDc3LjIgMjMzLjUgMjIuNCA2MC42IDY3LjggNjkuNCA5Mi43IDY5LjQgMzkuMiAwIDcwLTE5LjUgODUuOS01NCAxNS45IDM0LjggNDYuNyA1NC4zIDg1LjkgNTQuMyAyNSAwIDcwLjQtOS4xIDkyLjctNjkuNyA3Ni42LTIwOC42IDc3LjUtMjA1LjYgNzcuNS0yMjcuMiAuNi00OC4zLTM2LTgzLjUtODYuOS04My41em0yNi4zIDExNC44TDM4NS45IDM1Ny4xYy03LjkgMjEuNS0yMS4yIDM3LjItNDYuMiAzNy4yLTIzLjQgMC0zNy40LTEyLjQtNDQtMzMuOWwtMzkuMy0xMTcuNC0xIDAtMzkuMyAxMTcuNGMtNyAyMS41LTIwLjkgMzMuNi00NCAzMy42LTI1IDAtMzguMy0xNS43LTQ2LjItMzcuMkw2MC45IDE4MS42Yy01LjQtMTQuOC03LjktMjMuOS03LjktMzQuNSAwLTE2LjMgMTUuOC0yOS40IDM4LjMtMjkuNCAxOC43IDAgMzIgMTEuOCAzNi4xIDI5LjFsNDQgMTM5LjggMSAwIDQ0LjctMTM2LjhjNi0xOS43IDE2LjUtMzIuMSAzOS0zMi4xczMyLjkgMTIuMSAzOSAzMi4xbDQ0LjcgMTM2LjggMSAwIDQ0LTEzOS44YzQuMS0xNy4yIDE3LjQtMjkuMSAzNi4xLTI5LjEgMjIuMiAwIDM4LjMgMTMuMyAzOC4zIDM1LjctLjMgNy45LTQuMSAxNi03LjYgMjcuMnoiXX0sRkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRvY2tlciIsaWNvbjpbNjQwLDUxMixbXSwiZjM5NSIsIk0zNDkuOSAyMzYuM2wtNjYuMSAwIDAtNTkuNCA2Ni4xIDAgMCA1OS40em0wLTIwNC4zbC02Ni4xIDAgMCA2MC43IDY2LjEgMCAwLTYwLjd6bTc4LjIgMTQ0LjhsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHpNMjcxLjggMTA0LjdsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXptNzguMSAwbC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTI3Ni44IDEwMGMtMTQuNC05LjctNDcuNi0xMy4yLTczLjEtOC40LTMuMy0yNC0xNi43LTQ0LjktNDEuMS02My43bC0xNC05LjMtOS4zIDE0Yy0xOC40IDI3LjgtMjMuNCA3My42LTMuNyAxMDMuOC04LjcgNC43LTI1LjggMTEuMS00OC40IDEwLjdsLTQzNC43IDBjLTguNyA1MC44IDUuOCAxMTYuOCA0NCAxNjIuMSAzNy4xIDQzLjkgOTIuNyA2Ni4yIDE2NS40IDY2LjIgMTU3LjQgMCAyNzMuOS03Mi41IDMyOC40LTIwNC4yIDIxLjQgLjQgNjcuNiAuMSA5MS4zLTQ1LjIgMS41LTIuNSA2LjYtMTMuMiA4LjUtMTcuMWwtMTMuMy04Ljl6TTExNS42IDE3Ni44bC02NiAwIDAgNTkuNCA2Ni4xIDAgMC01OS40LS4xIDB6bTc4LjEgMGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40em03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptLTc4LjEtNzIuMWwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xeiJdfSxCRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFnZW50byIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjNCIsIk00NDUuOSAxMjcuOWwwIDI1Ni4xLTYzLjQgMzYuNSAwLTI1NS44LTE1OC41LTkxLjYtMTU4LjYgOTEuNiAuNCAyNTUuOS02My4zLTM2LjYgMC0yNTUuOSAyMjEuOS0xMjguMSAyMjEuNSAxMjcuOXpNMjU1LjggNDIwLjVsLTMxLjYgMTguNC0zMS44LTE4LjIgMC0yNTYtNjMuMyAzNi42IC4xIDI1NS45IDk0LjkgNTQuOSA5NS4xLTU0LjkgMC0yNTYtNjMuNC0zNi42IDAgMjU1Ljl6Il19LEhEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0b3ItYnJvd3NlciIsaWNvbjpbNTEyLDUxMixbXSwiZTgzOCIsIk0yNTYuNSA0NjUuNGwwLTMxYzk4LjMtLjMgMTc3LjktODAgMTc3LjktMTc4LjRTMzU0LjggNzcuOSAyNTYuNSA3Ny42bDAtMzFDMzcyIDQ2LjggNDY1LjQgMTQwLjUgNDY1LjQgMjU2UzM3MiA0NjUuMiAyNTYuNSA0NjUuNHptMC0xMDguNmM1NS40LS4zIDEwMC4zLTQ1LjMgMTAwLjMtMTAwLjhTMzEyIDE1NS41IDI1Ni41IDE1NS4ybDAtMzFjNzIuNiAuMyAxMzEuNCA1OS4yIDEzMS40IDEzMS44UzMyOS4xIDM4Ny42IDI1Ni41IDM4Ny44bDAtMzF6bTAtMTU1LjFjMjkuNyAuMyA1My44IDI0LjUgNTMuOCA1NC4zcy0yNCA1NC01My44IDU0LjNsMC0xMDguNnpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHoiXX0scUR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdC1hbHQiLGljb246WzQ0OCw1MTIsW10sImY4NDEiLCJNNDM5LjYgMjM2LjFMMjQ0IDQwLjVDMjM4LjYgMzUgMjMxLjIgMzIgMjIzLjYgMzJzLTE1IDMtMjAuNCA4LjRsLTQwLjcgNDAuNiA1MS41IDUxLjVjMjcuMS05LjEgNTIuNyAxNi44IDQzLjQgNDMuN2w0OS43IDQ5LjdjMzQuMi0xMS44IDYxLjIgMzEgMzUuNSA1Ni43LTI2LjUgMjYuNS03MC4yLTIuOS01Ni0zNy4zbC00Ni4zLTQ2LjMgMCAxMjEuOWMyNS4zIDEyLjUgMjIuMyA0MS44IDkuMSA1NS02LjQgNi40LTE1LjIgMTAuMS0yNC4zIDEwLjFzLTE3LjgtMy42LTI0LjMtMTAuMWMtMTcuNi0xNy42LTExLjEtNDYuOSAxMS4yLTU2bDAtMTIzYy0yMC44LTguNS0yNC42LTMwLjctMTguNi00NUwxNDIuNiAxMDEgOC41IDIzNS4xQzMgMjQwLjYgMCAyNDcuOSAwIDI1NS41czMgMTUgOC41IDIwLjRMMjA0LjEgNDcxLjZjNS40IDUuNCAxMi43IDguNCAyMC40IDguNHMxNS0zIDIwLjQtOC40TDQzOS42IDI3Ni45YzUuNC01LjQgOC40LTEyLjggOC40LTIwLjRzLTMtMTUtOC40LTIwLjR6Il19LGpEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJlZm94LWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImUwMDciLCJNMTMwLjIgMTI3LjVsMCAwem0zNTEuNCA0NS40Yy0xMC42LTI1LjUtMzIuMS01My00OC45LTYxLjcgMTMuNyAyNi45IDIxLjcgNTMuOSAyNC43IDc0IDAgLjEgMCAuMyAuMSAuNC0yNy42LTY4LjgtNzQuNC05Ni41LTExMi42LTE1Ni44LTE1LTIzLjctMTAuOS0yNS4yLTEzLjEtMjQuN2wtLjEgLjFjLTQ2LjcgMjYtNzUuMyA3OC40LTgyLjYgMTIyLjctMTYuNiAuOS0zMi45IDUtNDcuOSAxMi4xLTEuNCAuNi0yLjUgMS43LTMuMSAzcy0uOSAyLjgtLjYgNC4zYy4yIC44IC42IDEuNiAxLjEgMi4zczEuMiAxLjMgMS45IDEuNyAxLjYgLjcgMi40IC44IDEuNyAwIDIuNS0uM2wuNS0uMmMxNS41LTcuMyAzMi40LTExLjIgNDkuNS0xMS4zIDYyLjgtLjYgOTcuMiA0NCAxMDcuNiA2Mi4zLTEzLTkuMi0zNi40LTE4LjItNTguOC0xNC4zIDg3LjcgNDMuOSA2NC4yIDE5NC41LTU3LjQgMTg5LjItNTkuNS0yLjYtOTcuMS01MS0xMDAuNS05MC44IDAgMCAxMS4yLTQxLjkgODAuNi00MS45IDcuNSAwIDI4LjktMjAuOSAyOS4zLTI3LS4xLTItNDIuNS0xOC45LTU5LjEtMzUuMi04LjgtOC43LTEzLjEtMTIuOS0xNi44LTE2LjEtMi0xLjctNC4xLTMuMy02LjMtNC44LTUuNi0xOS41LTUuOC00MC0uNy01OS42LTI1LjEgMTEuNC00NC42IDI5LjQtNTguNyA0NS40bC0uMSAwYy05LjctMTIuMi05LTUyLjYtOC40LTYxLjEtLjEtLjUtNy4yIDMuNy04LjIgNC4zLTguNiA2LjEtMTYuNSAxMi45LTIzLjggMjAuNC0xNi4zIDE2LjYtNDQuMSA1MC4yLTU1LjUgMTAxLjItNC41IDIwLjQtNi44IDQ0LjQtNi44IDUyLjMgMCAxMzQuNyAxMDkuMiAyNDMuOSAyNDMuOSAyNDMuOSAxMjAuNiAwIDIyMy04Ny4yIDI0MC40LTIwMi42IDExLjYtNzYuNy0xNC43LTEzMS4xLTE0LjctMTMyeiJdfSxWRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzbWl0aCIsaWNvbjpbNTEyLDUxMixbXSwiZjM4NCIsIk01MTIgMjI3LjZMNTEyIDI4NC41IDI4NC40IDUxMiAyMjcuNiA1MTIgMCAyODQuNCAwIDIyNy42IDIyNy42IDAgMjg0LjUgMCA1MTIgMjI3LjZ6bS0yNTYgMTYyYzE3LjggLjUgMzUuNi0yLjYgNTIuMi05LjFzMzEuOC0xNi4yIDQ0LjYtMjguNyAyMy0yNy4zIDI5LjktNDMuOCAxMC41LTM0LjEgMTAuNS01Mi0zLjYtMzUuNS0xMC41LTUyLTE3LjEtMzEuMy0yOS45LTQzLjgtMjgtMjIuMi00NC42LTI4LjctMzQuNC05LjYtNTIuMi05LjFjLTE3LjgtLjUtMzUuNiAyLjYtNTIuMiA5LjFzLTMxLjggMTYuMy00NC42IDI4LjctMjMgMjcuMy0yOS45IDQzLjgtMTAuNSAzNC4xLTEwLjUgNTIgMy42IDM1LjUgMTAuNSA1MiAxNy4xIDMxLjMgMjkuOSA0My44IDI4IDIyLjIgNDQuNiAyOC43IDM0LjQgOS42IDUyLjIgOS4xeiJdfSxVRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2l6YXJkcy1vZi10aGUtY29hc3QiLGljb246WzY0MCw1MTIsW10sImY3MzAiLCJNMjE5LjIgMzQ1LjdjLTEuOSAxLjQtMTEuMSA4LjQtLjMgMjMuNiA0LjYgNi40IDE0LjEgMTIuOCAyMS43IDYuNiA2LjUtNC45IDcuNC0xMi45IC4zLTIzLTUuNS03LjgtMTQuMy0xMi45LTIxLjctNy4xem0zMzYuOCA3NS45Yy0uMyAxLjctLjYgMS43IC44IDAgMi4xLTQuMiA0LjItMTAuMiA1LTE5LjkgMy4xLTM4LjUtNDAuMy03MS41LTEwMS4zLTc4LTU0LjctNi0xMjQuNCA5LjItMTg4LjggNjAuNWwtLjMgMS42YzIuNiA1IDUgMTAuNyAzLjQgMjEuMmwuOCAuM2M2My45LTU4LjQgMTMxLjItNzcuMiAxODQuNC03My44IDU4LjQgMy43IDEwMCAzNCAxMDAgNjguMSAwIDEwLTIuNiAxNS43LTMuOSAyMC4yek0zOTIuMyAyNDAuNGMuOCA3LjEgNC4yIDEwLjIgOS4yIDEwLjUgNS41IC4zIDkuNC0yLjYgMTAuNS02LjYgLjgtMy40IDIuMS0yOS44IDIuMS0yOS44UzQwMi44IDIyMSAzOTkuMSAyMjVjLTMuNyAzLjctNy4zIDguNC02LjggMTUuNXptLTUwLTE1MS4xYy0yMDQuNSAwLTMyOS4yIDEzNy41LTM0MS41IDE1MS45LTEgLjUtMS4zIC44IC44IDEuMyA2MC41IDE2LjUgMTU1LjggODEuMiAxOTYuMSAyMDIuMmwxIC4zYzU1LjItNjkuOSAxNDAuOS0xMjguMSAyMzctMTI4LjEgODAuOSAwIDEzMC4yIDQyLjIgMTMwLjIgODAuNCAwIDE4LjMtNi42IDMzLjUtMjIuMyA0Ni4zIDAgMS0uMiAuOCAuOCAuOCAxNC43LTEwLjcgMjcuNS0yOC44IDI3LjUtNDguMiAwLTIyLjgtMTIuMS0zOC4yLTEyLjEtMzguMiA3LjEgNy4xIDEwLjcgMTYuMiAxMC43IDE2LjIgNS44LTQwLjkgMjctNjIuMyAyNy02Mi4zLTIuNC05LjctNi44LTE3LjgtNi44LTE3LjggNy42IDguMSAxNC40IDI3LjUgMTQuNCA0MS40IDAgMTAuNS0zLjQgMjIuOC0xMi42IDMxLjlsLjMgLjVjOC4xLTUgMTYuNS0xNi44IDE2LjUtMzggMC0xNS43LTQuNy0yNS45LTQuNy0yNS45IDUuOC01LjIgMTEuMy05LjIgMTYtMTEuOCAuOCAzLjQgMi4xIDkuNyAyLjQgMTQuOSAwIDEgLjggMS44IDEgMCAuOC01LjgtLjMtMTYuMi0uMy0xNi41IDYtMy4xIDkuNy00LjUgOS43LTQuNS0xNS43LTExMC4zLTE0NC0xOTYuOS0yOTEuMi0xOTYuOXpNMjQzIDM3OC45Yy0xMS4xIDktMjQuMiA0LjEtMzAuNi00LjItNy40LTkuNi02LjgtMjQuMSA0LjItMzIuNSAxNC44LTExLjQgMjcuMS0uNSAzMS4yIDUuNSAuMyAuNCAxMi4xIDE2LjYtNC43IDMxLjJ6bTIuMS0xMzYuNGw5LjQtMTcuOCAxMS44IDcxLTEyLjYgNi0yNC42LTI4LjggMTQuMS0yNi43IDMuNyA0LjQtMS44LTguMXptMTguNiAxMTcuNmwtLjMtLjNjMi00LjEtMi41LTYuNi0xNy41LTMxLjctMS4zLTIuNC0zLjEtMi45LTQuNC0yLjZsLS4zLS41YzcuOS01LjggMTUuNC0xMC4yIDI1LjQtMTUuN2wuNSAuM2MxLjMgMS44IDIuMSAyLjkgMy40IDQuN2wtLjMgLjVjLTEtLjMtMi40LS44LTUuMiAuMy0yLjEgLjgtNy45IDMuNy0xMi4zIDcuNmwwIDEuM2MxLjYgMi40IDMuOSA2LjYgNS44IDkuN2wuMyAwYzEwLTYuMyA3LjYtNC41IDExLjUtNy45bC4zIDBjLjUgMS44IC41IDEuOCAxLjggNS41bC0uMyAuM2MtMy4xIC42LTQuNyAuMy0xMS41IDUuNWwwIC4zYzkuNSAxNyAxMSAxNi44IDEyLjYgMTZsLjMgLjNjLTIuMyAxLjYtNi4zIDQuMi05LjcgNi42ek0zMTkgMzI3LjZjLTMuMSAxLjYtNiAyLjktMTAgNWwtLjMtLjNjMS4zLTIuNiAxLjItMi43LTExLjgtMzIuNWwtLjMtLjNjLS4yIDAtOC45IDMuNy0xMCA3LjNsLS41IDAtMS01LjggLjMtLjVjNy4zLTQuNiAyNS41LTExLjYgMjcuOC0xMi42bC41IC4zIDMuMSA1LS4zIC41Yy0zLjUtMS44LTcuNCAuOC0xMi4zIDIuNmwwIC4zYzEyLjMgMzIgMTIuNyAzMC42IDE0LjcgMzAuNmwwIC4yem00NC44LTE2LjVjLTQuMiAxLTUuMiAxLjMtOS43IDIuOWwtLjMtLjMgLjUtNC41Yy0xLTMuNC0zLjEtMTEuNS0zLjctMTMuNmwtLjMtLjNjLTMuNCAuOC04LjkgMi42LTEyLjggMy45bC0uMyAuM2MuOCAyLjYgMy4xIDkuOSA0LjIgMTMuOSAuOCAyLjQgMS44IDIuOSAyLjkgMy4xbDAgLjVjLTMuNyAxLTcuMSAyLjYtMTAuMiAzLjlsLS4zLS4zYzEtMS4zIDEtMi45IC4zLTUtMS0zLjEtOC4xLTIzLjgtOS4yLTI3LjItLjUtMS44LTEuNi0zLjEtMi42LTMuMWwwLS41YzMuMS0xIDYtMi4xIDEwLjctMy40bC4zIC4zLS4zIDQuN2MxLjMgMy45IDIuNCA3LjYgMy4xIDkuN2wuMyAwYzMuOS0xLjMgOS40LTIuOSAxMi44LTMuOWwuMy0uMy0yLjYtOS40Yy0uNS0xLjgtMS0zLjQtMi42LTMuOWwwLS4zYzQuNC0xIDcuMy0xLjggMTAuNy0yLjRsLjMgLjNjLTEgMS4zLTEgMi45LS41IDQuNCAxLjYgNi4zIDQuNyAyMC40IDYuMyAyNi41IC41IDIuNiAxLjggMy40IDIuNiAzLjl6bTMyLjItNi44bC0uMyAuM2MtNC43IC41LTE0LjEgMi40LTIyLjUgNC4ybC0uMy0uMyAuOC00LjJjLTEuNi03LjktMy40LTE4LjYtNS0yNi4yLS4zLTEuOC0uOC0yLjktMi42LTMuN2wuOC0uNWM5LjItMS42IDIwLjItMi40IDI0LjktMi42bC4zIC4zYy41IDIuNCAuOCAzLjEgMS42IDUuNWwtLjMgLjNjLTEuMS0xLjEtMy4zLTMuMi0xNi4yLS44bC0uMyAuM2MuMyAxLjYgMSA2LjYgMS42IDkuOWwuMyAuM2M5LjUtMS43IDQuOC0uMSAxMC43LTIuNGwuMyAwYzAgMS42LS4zIDEuOC0uMyA1LjJsLS4zIDBjLTQuOC0xLTIuMi0uOS0xMC4yIDBsLS4zIC4zYy4zIDIuMSAxLjYgOS40IDIuMSAxMi42bC4zIC4zYzEuMiAuNCAxNC4yLS42IDE2LjItNC43bC4zIDBjLS41IDIuNC0xIDQuMi0xLjYgNnptMTAuNy00NC41Yy00LjUgMi40LTguMSAyLjktMTEgMi45LS4yIDAtMTEuNCAxLjEtMTcuNS0xMC02LjctMTAuOC0xLTI1LjIgNS41LTMxLjcgOC44LTguMSAyMy40LTEwLjEgMjguNS0xNyA4LTEwLjMtMTMtMjIuMy0yOS42LTUuOGwtMi42LTIuOSA1LjItMTYuMmMyNS42LTEuNiA0NS4yLTMgNTAgMTYuMiAuOCAzLjEgMCA5LjQtLjMgMTIuMSAwIDIuNi0xLjggMTguOC0yLjEgMjMtLjUgNC4yLS44IDE4LjMtLjggMjAuNyAuMyAyLjQgLjUgNC4yIDEuNiA1LjUgMS42IDEuOCA1LjggMS44IDUuOCAxLjhsLS44IDQuN2MtMTEuOC0xLjEtMTAuMy0uNi0yMC40LTEtMy4yLTUuMS0yLjItMy4zLTQuMi03LjkgMCAwLTQuMiAzLjktNy4zIDUuNXpNNDQzLjkgMjgxYy02LjQtMTAuNi0xOS44LTcuMi0yMS43IDUuNS0yLjYgMTcuMSAxNC4zIDE5LjggMjAuNyAxMC4ybC4zIC4zYy0uNSAxLjgtMS44IDYtMS44IDYuM2wtLjUgLjVjLTEwLjMgNi45LTI4LjUtMi41LTI1LjctMTguNiAxLjktMTAuOSAxNC40LTE4LjkgMjguOC05LjlsLjMgLjVjMCAxLjEtLjMgMy40LS4zIDUuM3ptNS44LTg3LjdsMC02LjZjLjcgMCAxOS42IDMuMyAyNy44IDcuM2wtMS42IDE3LjVzMTAuMi05LjQgMTUuNC0xMC43YzUuMi0xLjYgMTQuOSA3LjMgMTQuOSA3LjNsLTExLjMgMTEuM2MtMTIuMS02LjQtMTkuNi0uMS0yMC43IC44LTUuMyAzOC43LTguNiA0Mi4yIDQuNCA0Ni4xbC0uNSA0LjdjLTE3LjYtNC4zLTE4LjUtNC41LTM2LjktNy4zbC44LTQuN2M3LjMgMCA3LjUtNS4zIDcuNi02LjggMCAwIDUtNTMuMiA1LTU1LjMgMC0yLjktNS0zLjctNS0zLjd6bTExIDExNC40Yy04LjEtMi4xLTE0LjEtMTEtMTAuNy0yMC43IDMuMS05LjQgMTIuMy0xMi4zIDE4LjktMTAuMiA5LjIgMi42IDEyLjggMTEuOCAxMC43IDE5LjQtMi42IDguOS05LjQgMTMuOS0xOC45IDExLjV6bTQyLjIgOS43Yy0yLjQtLjUtNy4xLTIuNC04LjYtMi45bDAtLjMgMS42LTEuOGMuNi04LjIgLjYtNy4zIC4zLTcuNi00LjgtMS44LTYuNy0yLjQtNy4xLTIuNC0xLjMgMS44LTIuOSA0LjUtMy43IDUuNWwtLjggMy40IDAgLjNjLTEuMy0uMy0zLjktMS4zLTYtMS42bDAtLjMgMi42LTEuOGMzLjQtNC43IDEwLTE0LjEgMTMuOS0yMC4ybDAtMi4xIC41LS4zYzIuMSAuOCA1LjUgMi4xIDcuNiAyLjkgLjUgLjUgLjItMS45LTEgMjUuMS0uMiAxLjggMCAyLjYgLjggMy45em0tNC43LTg5LjhjMTEuMy0xOC4zIDMwLjgtMTYuMiAzNC0zLjRsNy42LTI2LjJjMi4zLTYuMi0yLjgtOS45LTQuNS0xMS4zbDEuOC0zLjdjMTIuMiAxMC40IDE2LjQgMTQgMjIuNSAyMC40LTI1LjkgNzMuMS0zMC44IDgwLjgtMjQuNiA4NC4zbC0xLjggNC40Yy02LjQtMy4zLTguOS00LjQtMTcuOC04LjZsMi4xLTYuOGMtLjMtLjMtMy45IDMuOS05LjcgMy43LTE5LjEtMS4zLTIyLjktMzEuNy05LjctNTIuOXptMjkuMyA3OS4zYzAtNS43LTYuMy03LjktNy45LTUuMi0xLjMgMi4xIDEgNSAyLjkgOC40IDEuNiAyLjYgMi42IDYuMyAxIDkuNC0yLjYgNi4zLTEyLjQgNS4zLTE1LjQtLjggMC0uNy0uMyAuMSAxLjgtNC43bC44LS4zYy0uNiA1LjcgNi4xIDkuNiA4LjQgNSAxLTIuMS0uNS01LjUtMi4xLTguNC0xLjYtMi42LTMuNy02LjMtMS44LTkuNyAyLjctNS4xIDExLjMtNC41IDE0LjcgMi40bDAgLjUtMi40IDMuNHptMjEuMiAxMy40Yy0yLTMuMy0uOS0yLjEtNC41LTQuN2wtLjMgMGMtMi40IDQuMi01LjggMTAuNS04LjYgMTYuMi0xLjMgMi40LTEgMy40LS44IDMuOWwtLjMgLjMtNS44LTQuNCAuMy0uMyAyLjEtMS4zYzMuMS01LjggNi42LTEyLjEgOS4yLTE3bDAtLjNjLTIuNi0yLTEuMi0xLjUtNi0xLjhsMC0uMyAzLjEtMy40IC4zIDBjMy43IDIuNCAxMCA2LjggMTIuMyA4LjlsLjMgLjMtMS4zIDMuOXpNNTc1LjggMjc2bC0yLjktMi45Yy44LTIuNCAxLjgtNSAyLjEtNy42IC43LTkuNy0xMS41LTExLjgtMTEuNS01IDAgNSA3LjkgMTkuNCA3LjkgMjcuOCAwIDEwLjItNS44IDE1LjctMTMuOSAxNi41LTguNCAuOC0yMC4yLTEwLjUtMjAuMi0xMC41bDUtMTQuNCAyLjkgMi4xYy0zIDE3LjggMTcuNyAyMC40IDEzLjMgNS4yLTEuMS00LTE4LjctMzQuMiAyLjEtMzguMiAxMy42LTIuNCAyMyAxNi41IDIzIDE2LjVMNTc1LjggMjc2em0zNS42LTEwLjJjLTExLTMwLjQtNjAuNS0xMjcuNS0xOTItMTI5LjYtNTMuNC0xLTk0LjMgMTUuNC0xMzIuOCAzOGw4NS42LTkuMi05MS40IDIwLjcgMjUuMSAxOS42LTMuOS0xNi41YzcuNS0xLjcgMzkuMS04LjUgNjYuOC04LjlsLTIyLjMgODAuNGMxMy42LS43IDE5LTkgMTkuNi0yMi44bDUtMSAuMyAyNi43Yy0yMi41IDMuMi0zNy4zIDYuNy00OS41IDkuOWwxMy4xLTQzLjItNjEuNS0zNi43IDIuNCA4LjEgMTAuMiA1YzYuMyAxOC42IDE5LjQgNTYuNiAyMC40IDU4LjcgMiA0LjMgMy4yIDUuOCAxMiA0LjVsMS4xIDVjLTE2LjEgNC45LTIzLjcgNy42LTM5IDE0LjRsLTIuNC00LjdjNC40LTIuOSA4LjctMy45IDUuNS0xMi44LTIzLjctNjIuNS0yMS41LTU4LjEtMjIuOC01OS40bDIuNC00LjQgMzMuNSA2Ny4zYy0zLjgtMTEuOSAxLjcgMS43LTMzLTc4LjhsLTQxLjkgODguNSA0LjctMTMuOS0zNS45LTQyLjIgMjcuOCA5My41LTExLjggOC40Yy0xMTEuOS0xMDEuNy0xMDUuOC05OC40LTExMy43LTk4LjctNS41LS4zLTEzLjYgNS41LTEzLjYgNS41bC01LTZjMzAuNi0yMy41IDMxLjYtMjQuMyA1OC40LTQyLjdsNC4yIDcuMXMtNS44IDQuMi03LjkgNy4xYy01LjkgOS4zIDEuNyAxMy4zIDYxLjggNzUuN2wtMTguOC01OC45IDM5LjgtMTAuMiAyNS43IDMwLjYgNC40LTEyLjMtNS0yNC42IDEzLjEtMy40IC41IDMuMSAzLjctMTAuNS05NC4zIDI5LjMgMTEuMy01LTEzLjYtNDIuNCAxNy4zLTkuMiAzMC4xIDM2LjEgMjguNS0xMy4xYy0xLjQtNy41LTIuNS0xNC41LTQuNy0xOS42bDE3LjMgMTMuOSA0LjctMi4xLTU5LjItNDIuNyAyMy4xIDExLjVjMTktNi4xIDI1LjItNy41IDMyLjItOS43bDIuNiAxMWMtMTIuNiAxMi42IDEuNCAxNi44IDYuNSAxOS40bC0xMy42LTYxIDEyIDI4LjNjNC4yLTEuMyA3LjMtMi4xIDcuMy0yLjFsMi42IDguNnMtMy4xIDEtNi4zIDIuMWw4LjkgMjEgMzMuOC02NS43LTIwLjcgNjFjNDIuNC0yNC4xIDgxLjQtMzYuNyAxMzItMzUuOSA2NyAxIDE2Ny4zIDQwLjggMTk5LjggMTM5LjggLjggMi4xIDAgMi42LS44IC4zem0tNDA4LTExMy40czEuOC0uNSA0LjItMS4zbDkuNCA3LjZjLS40IDAtMy40LS4zLTExLjMgMi40bC0yLjQtOC42em0xNDMuOCAzOC41Yy0xLjYtLjYtMjYuNS00LjgtMzMuMyAyMC43bDIxLjcgMTcgMTEuNS0zNy43ek0zMTguNCA2Ny4xYy01OC40IDAtMTA2LjEgMTItMTE1IDE0LjRsMCAuOGM4LjQgMi4xIDE0LjQgNC4yIDIxLjIgMTEuOGwxLjYgLjNjNi42LTEuOCA0OS0xMy45IDExMC4yLTEzLjkgMTgwLjIgMCAzMDEuNyAxMTYuOCAzMDEuNyAyMjMuNGwwIDEwYzAgMS4zIC44IDIuNiAxLjEgLjUgLjUtMi4xIC44LTguNiAuOC0xOS42IC4zLTgzLjgtOTYuNi0yMjcuNi0zMjEuNi0yMjcuNnpNNTI5LjUgMjM2LjhjMS4zLTUuOCAwLTEyLjMtNy4zLTEzLjEtOS42LTEuMS0xNi4xIDIzLjgtMTcgMzMuNS0uOCA1LjUtMS4zIDE0LjkgNiAxNC45IDQuNyAwIDkuNy0uOSAxOC4zLTM1LjR6TTQ2OCAyNzkuN2MtMi42LS44LTkuNC0uOC0xMi42IDEwLjUtMS44IDYuOCAuNSAxMy40IDYgMTQuNyAzLjcgMS4xIDguOSAuNSAxMS44LTEwLjcgMi42LTkuOS0xLjgtMTMuNi01LjItMTQuNHptMjMgMjFjMS44IC41IDMuMSAxIDUuOCAxLjggMC0xLjggLjUtOC40IC44LTEyLjEtMSAxLjMtNS41IDguMS02LjYgMTBsMCAuM3oiXX0sV0R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmQiLGljb246WzUxMiw1MTIsW10sImY0ZWIiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem05NCAxNDQuM2wwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHptMCA3OS44bDAgNDIuNS0xODAuMyAwIDAtNDIuNSAxODAuMyAweiJdfSxHRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNwcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdlMSIsIk00MjguMyAyNDEuN2MyNS44LTQxLjMgMTUuMi00OC44LTExLjctNDguOGwtMjcgMGMtLjEgMC0xLjUtMS40LTEwLjkgOC0xMS4yIDUuNi0zNy45IDYuMy0zNy45IDguNyAwIDQuNSA3MC4zLTMuMSA4OC4xIDAgOS41IDEuNS0xLjUgMjAuNC00LjQgMzItLjUgNC41IDIuNCAyLjMgMy44IC4xek0zMTYuMiAyNjQuM2M2NC0yMS4zIDk3LjMtMjMuOSAxMDItMjYuMiA0LjQtMi45LTQuNC02LjYtMjYuMi01LjgtNTEuNyAyLjItMTM3LjYgMzcuMS0xNzIuNiA1My45bC0zMC43LTkzLjMgMTk2LjYgMGMtMi43LTI4LjItMTUyLjktMjIuNi0zMzcuOS0yMi42TC01IDQxNS44YzE5Ni40LTk3LjMgMjU4LjktMTMwLjMgMzIxLjItMTUxLjV6TTYyLjcgOTZjMjUzLjMgNTMuNyAzMzAgNjUuNyAzMzIuMSA4NS4yIDM2LjQgMCA0NS45IDAgNTIuNCA2LjYgMjEuMSAxOS43LTE0LjYgNjcuNy0xNC42IDY3LjctNC40IDIuOS00MDYuNCAxNjAuMi00MDYuNCAxNjAuMkw0NDkuMyA0MTUuNyA1MTcgOTYgNjIuNyA5NnoiXX0sS0R0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sZXR0ZXJib3hkIixpY29uOls0NDgsNTEyLFtdLCJlNjJlIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTEwNS4xIDE4N0M2Ni40IDE4NyAzNSAyMTguMyAzNSAyNTdzMzEuNCA3MCA3MC4xIDcwYzI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNSAwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xLTEyLjQtMTkuOC0zNC40LTMyLjktNTkuNS0zMi45ek0yMjQgMTg3Yy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjUgMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMSAxMi40IDE5LjcgMzQuNCAzMi45IDU5LjUgMzIuOSAyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjctMzQuNC0zMi45LTU5LjUtMzIuOXptMTE4LjkgMGMtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS44IDM0LjQgMzIuOSA1OS41IDMyLjkgMzguNyAwIDcwLjEtMzEuMyA3MC4xLTcwcy0zMS40LTcwLTcwLjEtNzB6Il19LFlEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYW5kYWxvcmlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZjUwZiIsIk0yMDAuNiA1MTEuOWMtMS0zLjMtMS43LTE1LjgtMS40LTI0LjYgLjYtMTUuOSAxLTI0LjcgMS40LTI4LjggLjYtNi4yIDIuOS0yMC43IDMuMy0yMS40IC42LTEgLjQtMjcuOS0uMi0zMy4xLS4zLTIuNi0uNi0xMS45LS43LTIwLjctLjEtMTYuNS0uNS0yMC4xLTIuNy0yNC44LTEuMS0yLjMtMS4yLTMuOC0xLTExLjQgLjItNC4yIC4xLTguNS0uMy0xMi43LTItMTMtMy41LTI3LjctMy4yLTMzLjlzLjQtNy4xIDIuMS05LjdjMy4xLTQuNyA2LjUtMTQgOC42LTIzLjMgMi4zLTkuOSAzLjktMTcuMiA0LjYtMjAuNyAxLjEtNS4xIDIuNi0xMC4xIDQuNC0xNS4xIDIuMy02LjIgMi41LTE1LjQgLjQtMTUuNC0uMyAwLTEuNCAxLjItMi40IDIuN3MtNC44IDQuOC04LjMgNy40Yy04LjQgNi4xLTExLjcgOS40LTEyLjcgMTIuNnMtMSA3LjItLjIgNy44Yy4zIC4yIDEuMyAyLjQgMi4xIDQuOSAxLjYgNSAxLjkgMTAuMyAuNyAxNS40LS40IDEuOC0xIDUuNS0xLjUgOC4ycy0xIDYuNS0xLjMgOC4yYy0uMiAxLjUtLjcgMy0xLjUgNC4zLTEgMS0xLjEgLjktMi4xLS41LS43LTEuNS0xLjItMy4xLTEuNC00LjctLjItMS43LTEuNi03LjEtMy4xLTExLjktMy4zLTEwLjktMy41LTE2LjItMS0yMSAuOC0xLjQgMS40LTMgMS43LTQuNiAwLTIuNC0yLjItNS4zLTcuNC05LjktNy02LjItOC42LTcuOS0xMC4yLTExLjMtMS43LTMuNi0zLjEtNC4xLTQuNS0xLjUtMS44IDMtMi42IDkuMS0zIDIybC0uMyAxMi4yIDIgMi4yYzMuMiAzLjcgMTIuMSAxNi41IDEzLjggMTkuOCAzLjQgNi43IDQuMyAxMS43IDQuNCAyMy42czEgMjIuOCAyIDI0LjdjLjQgLjcgLjUgMS40IC4zIDEuNXMuNCAyLjEgMS4zIDQuM2MxIDIuOSAxLjcgNS45IDIuMSA5IC40IDMuNSAuOSA3IDEuNyAxMC40IDIuMiA5LjYgMi44IDE0LjEgMi40IDIwLjEtLjIgMy4zLS41IDExLjEtLjcgMTcuMy0xLjMgNDEuOC0xLjggNTgtMiA2MS4yLS4xIDItLjQgMTEuNS0uNiAyMS4xLS40IDE2LjMtMS4zIDI3LjQtMi40IDI4LjYtLjYgLjctOC4xLTQuOS0xMi41LTkuNS0zLjgtMy45LTQtNC44LTIuOC05LjkgLjctMyAyLjMtMTguMyAzLjMtMzIuNiAuNC00LjggLjgtMTAuNSAxLTEyLjcgLjgtOS40IDEuNy0yMC4zIDIuNi0zNC44IC42LTguNSAxLjMtMTYuNCAxLjctMTcuN3MuOS05LjkgMS4xLTE5LjFsLjQtMTYuOC0yLjMtNC4zYy0xLjctMy4zLTQuOS02LjktMTMuMi0xNS4zLTYtNi4xLTExLjgtMTIuMy0xMi45LTEzLjhsLTItMi44IC44LTEwLjljMS4xLTE1LjcgMS4xLTQ4LjYgMC01OS4xbC0uOS04LjctMy4zLTQuNWMtNS45LTguMS01LjgtNy43LTYuMi0zMy4zLS4xLTYuMS0uNC0xMS41LS42LTEyLjEtLjgtMS45LTMtMi43LTguNS0zLTguOS0uNi0xMS0xLjktMjMuOC0xNC42LTYuMi02LTEyLjMtMTItMTMuOC0xMy4yLTIuOC0yLjQtMi44LTItLjYtOS42bDEuNC00LjYtMS43LTNjLS44LTEuNC0xLjYtMi44LTIuNi00LjEtMS4zLTEuNS01LjUtMTAuOS02LTEzLjUtLjItLjctLjItMS40LS4xLTIuMXMuNS0xLjMgLjktMS44YzIuMi0yLjkgMy40LTUuNyA0LjUtMTAuNyAyLjMtMTEuMiA3LjctMjYuMSAxMC42LTI5LjIgMy4yLTMuNSA3LjctMSA5LjQgNSAxLjMgNC44IDEuNCA5LjggLjEgMTguNi0uNSAzLjctLjkgNy40LTEgMTEuMSAwIDQgLjIgNC43IDIuMyA3LjQgMy4zIDQuNCA3LjcgNy40IDE1LjIgMTAuNSAxLjcgLjcgMy4zIDEuNyA0LjcgMi44IDExLjIgMTAuNyAxOC42IDE2LjIgMjIuOSAxNi45IDUuMiAuOCA4IDQuNSAxMCAxMy40IDEuMyA1LjcgNCAxMS4xIDUuNSAxMS4xIDEuMi0uMiAyLjMtLjcgMy4zLTEuNCAyLTEuMiAyLjItMS43IDIuMi00LjItLjMtNi0uOS0xMS45LTItMTcuOC0uNC0xLjctLjgtNC4xLS45LTUuNHMtLjYtMy44LTEtNS43Yy0yLjYtMTEuMi0zLjYtMTUuNS00LjEtMTYtMS42LTItNC4xLTEwLjItNC45LTE1LjktMS42LTExLjEtNC0xNC4yLTEyLjktMTcuNC00LjktMS44LTkuNC00LjUtMTMuMy03LjktMS4yLTEtNC0zLjItNi40LTUuMXMtNC40LTMuNS00LjYtMy44Yy0uOC0uNy0xLjctMS40LTIuNy0yLTYuMi00LjItOC44LTctMTEuMy0xMmwtMi40LTVjLS4xLTguNy0uMy0xNy4zLS40LTI2bDYuOS02LjZjNC0zLjggOC41LTcuNCAxMC42LTguNCAzLjMtMS43IDQuNC0xLjkgMTEuNC0yIDguNS0uMiAxMC4xIDAgMTEuNyAxLjZzMS40IDYuNC0uMyA4LjVjLS42IC43LTEuMSAxLjUtMS4zIDIuMyAwIC42LTIuNiA0LjktNS40IDktMS4xIDIuMi0xLjkgNC41LTIuNCA2LjggMjAuNCAxMy40IDIxLjYgMy44IDE0LjEgMjlsMTEuNCAyLjVjMy4xLTguNyA2LjUtMTcuMyA4LjYtMjYuMiAuMy03LjYtMTItNC4yLTE1LjQtOC43LTIuMy01LjkgMy4xLTE0LjIgNi4xLTE5LjIgMS42LTIuMyA2LjYtNC43IDguOC00LjEgLjkgLjIgNC4yLS40IDcuNC0xLjMgMi41LS44IDUtMS4zIDcuNS0xLjcgMi0uMiA0LjEtLjcgNi0xLjMgMy43LTEuMSA0LjUtMS4yIDYuMy0uNCAxLjkgLjYgMy44IDEuMSA1LjggMS40IDIuMSAuMyA0LjEgLjkgNiAxLjkgMS42IC45IDMuMyAxLjcgNSAyLjIgMi41IC43IDMgLjYgNy0xLjdMMjI2IDUuNCAyMzYuNyA1YzEwLjQtLjQgMTAuOC0uNSAxNS4zLTIuN0wyNTYuNSAwIDI1OSAxLjRjMS44IDEgMy4xIDIuNyA0LjkgNiAyLjQgNC41IDIuNCA0LjYgMS40IDcuNC0uOSAyLjQtLjkgMy4zLS4xIDYuNCAuNSAyIDEuMiA0IDIuMSA1LjkgLjYgMS4zIDEuMSAyLjYgMS4zIDQgLjMgNC4zIDAgNS4zLTIuNCA2LjktMi4yIDEuNS03IDcuOS03IDkuMy0uMiAxLS42IDItMS4xIDMtNSAxMS41LTYuOCAxMy42LTE0LjMgMTctOS4yIDQuMi0xMi4zIDUuMi0xNi4yIDUuMi0zLjEgMC00IC4yLTQuNSAxLjMtMS4yIDEuNC0yLjUgMi43LTQuMSAzLjctMS44IDEuMi0zLjMgMi45LTQuNCA0LjgtLjUgMS4yLTEuNCAyLjItMi41IDIuOS0uOSAuNC0xLjggMS0yLjUgMS43LTIuMiAxLjktNC42IDMuNy03IDUuNC0zLjMgMi4zLTYuOSA1LTcuOSA2LS43IC43LTEuNSAxLjMtMi40IDEuNy0uOCAuNC0xLjYgLjktMi4xIDEuNi0xLjMgMS40LTEuNSAyLjEtMS4xIDQuNiAuMyAyIC44IDQgMS40IDUuOSAxLjMgMy44IDEuMyA3LjkgMCAxMC42cy0uOSA2LjcgMS40IDkuNmMyIDIuNiAyLjIgNC42IC43IDguOC0uOCAyLjktMS4xIDUuOS0xLjEgOC45IDAgNC45IC4yIDYuMyAxLjUgOC40czEuOCAyLjUgMy4yIDIuM2MyLS4yIDIuMy0xLjEgNC43LTEyLjEgMi4yLTEwIDMuNy0xMS45IDEzLjgtMTcuMSAyLjktMS41IDcuNS00IDEwLTUuNHM2LjgtMy43IDkuNC00LjljNS45LTIuNiAxMS4yLTYuNiAxNS4yLTExLjcgNy4xLTguOCAxMC0xNi4yIDEyLjgtMzMuMyAuNC0yLjggMS4zLTUuNCAyLjktNy43IDEuNC0yLjIgMi40LTQuNyAyLjktNy4zIDEtNS4zIDIuOS05LjEgNS42LTExLjUgNC43LTQuMiA2LTEuMSA0LjYgMTAuOS0uNSAzLjktMS4xIDEwLjMtMS40IDE0LjRsLS42IDcuNGMzIDIuNyA1LjkgNS41IDguOSA4LjJsLjEgOC40Yy4xIDQuNiAuNSA5LjUgLjkgMTAuOWwuOCAyLjUtNi40IDYuM2MtOC41IDguMy0xMi45IDEzLjktMTYuOCAyMS42LTEuOCAzLjUtMy43IDcuMS00LjQgOC0yLjIgMy4xLTYuNSAxMy04LjggMjAuM2wtMi4zIDcuMi03IDYuNWMtMy44IDMuNi04IDcuMi05LjIgOC4yLTMgMi4zLTQuMyA1LjEtNC4zIDEwLS4xIDIuNSAuNCA1IDEuNiA3LjMgLjggMS42IDEuNSAzLjIgMi4xIDQuOCAuMyAxIC45IDIgMS42IDIuOSAxLjQgMS42IDEuOSAxNi4xIC44IDIzLjItLjcgNC41LTMuNiAxMi00LjcgMTItMS44IDAtNC4xIDkuMy01LjEgMjAuNy0uMiAyLS42IDUuOS0xIDguN3MtMSAxMC0xLjQgMTZjLS44IDEyLjItLjIgMTguOCAyIDIzLjIgMy40IDYuNyAuNSAxMi43LTExIDIyLjhsLTQgMy41IC4xIDUuMmMuMSAzIC40IDYgMS4xIDguOSA0LjYgMTYgNC43IDE2LjkgNC40IDM3LjEtLjUgMjYuNC0uMyA0MC4zIC42IDQ0LjIgLjUgMi4zIC45IDQuNiAxLjEgNyAuMiAyIC43IDUuMyAxLjEgNy40IC41IDIuMyAuOCAxMSAuOCAyMi43bDAgMTkuMS0xLjggMi42Yy0yLjcgMy45LTE1LjEgMTMuNS0xNS41IDEyLjNsLjEgMHptMjkuNS00NS4xYy0uMi0uMy0uMy02LjktLjMtMTQuNiAwLTE0LjEtLjktMjcuNS0yLjMtMzQuNC0uNC0yLS44LTkuNy0uOS0xNy4xLS4yLTExLjktMS40LTI0LjQtMi42LTI2LjQtLjctMS4xLTMtMTcuNy0zLTIxLjMgMC00LjIgMS02IDUuMy05LjFzNC45LTMuMSA1LjUtLjdjLjMgMS4xIDEuNCA1LjYgMi42IDEwIDMuOSAxNS4xIDQuMSAxNi4zIDQgMjEuNy0uMSA1LjgtLjEgNi4xLTEuNyAxNy43LTEgNy4xLTEuMiAxMi40LTEgMjguNCAuMiAxOS40LS42IDM1LjctMiA0MS4zLS43IDIuOC0yLjggNS41LTMuNCA0LjRsLS4xIDB6bS03MS0zNy42Yy0uOC0zLjYtMS4zLTcuMi0xLjctMTAuOHMtMS03LjItMS43LTEwLjhjLS41LTIuMS0uOS00LjMtMS02LjUtLjMtMy4yLS45LTcuNS0xLjMtOS41LTEtNC44LTMuMy0xOS40LTMuNC0yMS4xIDAtLjctLjMtNC0uNy03LjQtLjctNi4yLS44LTI3LjctLjItMjguMyAxLTEgNi42IDIuOCAxMS4zIDcuNGw1LjMgNS4zLS40IDYuNWMtLjIgMy42LS42IDEwLjItLjggMTQuOC0uNSAxMy4zLS43IDguNy0xLjYgMjguNC0uOCAxNy40LTEuOSAzMS4zLTIuNiAzMi0uMSAuMS0uMiAuMS0uMiAuMnMtLjIgMC0uMyAwLS4yIDAtLjMtLjEtLjEtLjEtLjItLjJsMCAwek03MiAxNjIuNmMyMS4xIDEyLjggMTcuOCAxNC4yIDI4LjUgMTcuNyAxMyA0LjMgMTguOSA3LjEgMjMuMiAxNi45LTQzLjcgMzYuMS02OSA1Ny45LTc2LjcgNzAuOS0zMSA1Mi02IDEwMS42IDYyLjggODcuMi0xNC4yIDI5LjItNzggMjguNi05OC43LTQuOS0yNC43LTQwLTIyLjEtMTE4LjMgNjEtMTg3LjdsMCAwem0yMTAuOCAxNzljNTYuNyA2LjkgODIuMy0zNy43IDQ2LjUtODkuMiAwIDAtMjYuOS0yOS4zLTY0LjMtNjggMy0xNS41IDkuNS0zMi4xIDMwLjYtNTMuOCA4OS4yIDYzLjUgOTIgMTQxLjYgOTIuNSAxNDkuNCA0LjMgNzAuNi03OC43IDkxLjItMTA1LjMgNjEuN2wwIDB6Il19LGo4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbGFjayIsaWNvbjpbNDQ4LDUxMixbNjI0NDcsInNsYWNrLWhhc2giXSwiZjE5OCIsIk05NC4xIDMxNS4xYzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xUzAgMzQxIDAgMzE1LjEgMjEuMiAyNjggNDcuMSAyNjhsNDcuMSAwIDAgNDcuMXptMjMuNyAwYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzIxMiAyODkuMiAyMTIgMzE1LjFsMCAxMTcuOGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMXMtNDcuMS0yMS4yLTQ3LjEtNDcuMWwwLTExNy44em00Ny4xLTE4OWMtMjUuOSAwLTQ3LjEtMjEuMi00Ny4xLTQ3LjFTMTM5IDMyIDE2NC45IDMyIDIxMiA1My4yIDIxMiA3OS4xbDAgNDcuMS00Ny4xIDB6bTAgMjMuN2MyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMVMxOTAuOCAyNDQgMTY0LjkgMjQ0TDQ3LjEgMjQ0QzIxLjIgMjQ0IDAgMjIyLjggMCAxOTYuOXMyMS4yLTQ3LjEgNDcuMS00Ny4xbDExNy44IDB6bTE4OSA0Ny4xYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzQ0OCAxNzEgNDQ4IDE5Ni45IDQyNi44IDI0NCA0MDAuOSAyNDRsLTQ3LjEgMCAwLTQ3LjF6bS0yMy43IDBjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMjM2IDIyMi44IDIzNiAxOTYuOWwwLTExNy44QzIzNiA1My4yIDI1Ny4yIDMyIDI4My4xIDMyczQ3LjEgMjEuMiA0Ny4xIDQ3LjFsMCAxMTcuOHptLTQ3LjEgMTg5YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzMwOSA0ODAgMjgzLjEgNDgwIDIzNiA0NTguOCAyMzYgNDMyLjlsMC00Ny4xIDQ3LjEgMHptMC0yMy43Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMyNTcuMiAyNjggMjgzLjEgMjY4bDExNy44IDBjMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFzLTIxLjIgNDcuMS00Ny4xIDQ3LjFsLTExNy44IDB6Il19LFRiPWo4ZSxaRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5nZWxsaXN0IixpY29uOlszODQsNTEyLFtdLCJmMjA5IiwiTTMxNS42IDIxNS40YzExLjctMzIuNiA0NS40LTEyNi45IDQ1LjQtMTU3LjEgMC0yNi42LTE1LjctNDguOS00My43LTQ4LjktNDQuNiAwLTg0LjYgMTMxLjctOTcuMSAxNjMuMS05LjctMjguNS01NS4xLTE3Mi41LTk1LjEtMTcyLjUtMzEuMSAwLTQ1LjcgMjIuOS00NS43IDUxLjcgMCAzNS4zIDM0LjIgMTI2LjggNDYuNiAxNjItNi4zLTIuMy0xMy4xLTQuMy0yMC00LjMtMjMuNCAwLTQ4LjMgMjkuMS00OC4zIDUyLjYgMCA4LjkgNC45IDIxLjQgOCAyOS43LTM2LjkgMTAtNTEuMSAzNC42LTUxLjEgNzEuNy0uMSA3Mi4yIDY4LjMgMTQ4LjYgMTY0LjUgMTQ4LjYgMTE4IDAgMTkxLjQtODguNiAxOTEuNC0yMDIuOSAwLTQzLjEtNi45LTgyLTU0LjktOTMuN3pNMjgwLjIgMTA4YzQtMTIuMyAyMS4xLTY0LjMgMzcuMS02NC4zIDguNiAwIDEwLjkgOC45IDEwLjkgMTYgMCAxOS4xLTM4LjYgMTI0LjYtNDcuMSAxNDhsLTM0LTYgMzMuMS05My43ek0xMTAuOCA0OC4zYzAtMTEuOSAxNC41LTQ1LjcgNDYuMyA0Ny4xbDM0LjYgMTAwLjNjLTE1LjYtMS4zLTI3LjctMy0zNS40IDEuNC0xMC45LTI4LjgtNDUuNS0xMTkuNy00NS41LTE0OC44ek0xMDguNSAyNDRjMjkuMyAwIDY3LjEgOTQuNiA2Ny4xIDEwNy40IDAgNS4xLTQuOSAxMS40LTEwLjYgMTEuNC0yMC45IDAtNzYuOS03Ni45LTc2LjktOTcuNyAuMS03LjcgMTIuNy0yMS4xIDIwLjQtMjEuMXpNMjkyLjggNDMwLjNjLTI5LjEgMzItNjYuMyA0OC42LTEwOS43IDQ4LjYtNTkuNCAwLTEwNi4zLTMyLjYtMTI4LjktODguMy0xNy4xLTQzLjQgMy44LTY4LjMgMjAuNi02OC4zIDExLjQgMCA1NC4zIDYwLjMgNTQuMyA3My4xIDAgNC45LTcuNyA4LjMtMTEuNyA4LjMtMTYuMSAwLTIyLjQtMTUuNS01MS4xLTUxLjQtMjkuNyAyOS43IDIwLjUgODYuOSA1OC4zIDg2LjkgMjYuMSAwIDQzLjEtMjQuMiAzOC00MiAzLjcgMCA4LjMgLjMgMTEuNy0uNiAxLjEgMjcuMSA5LjEgNTkuNCA0MS43IDYxLjcgMC0uOSAyLTcuMSAyLTcuNCAwLTE3LjQtMTAuNi0zMi42LTEwLjYtNTAuMyAwLTI4LjMgMjEuNy01NS43IDQzLjctNzEuNyA4LTYgMTcuNy05LjcgMjcuMS0xMy4xIDkuNy0zLjcgMjAtOCAyNy40LTE1LjQtMS4xLTExLjItNS43LTIxLjEtMTYuOS0yMS4xLTI3LjcgMC0xMjAuNiA0LTEyMC42LTM5LjcgMC02LjcgLjEtMTMuMSAxNy40LTEzLjEgMzIuMyAwIDExNC4zIDggMTM4LjMgMjkuMSAxOC4xIDE2LjEgMjQuMyAxMTMuMi0zMSAxNzQuN3ptLTk4LjYtMTI2YzkuNyAzLjEgMTkuNyA0IDI5LjcgNi03LjQgNS40LTE0IDEyLTIwLjMgMTkuMS0yLjgtOC41LTYuMi0xNi44LTkuNC0yNS4xeiJdfSxYRHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5kcm9pZCIsaWNvbjpbNTc2LDUxMixbXSwiZjE3YiIsIk00MjAuNSAyNTMuOWEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS0yNjUuMSAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjczLjctOTYuNWw0Ny45LTgzYy44LTEuMSAxLjMtMi40IDEuNS0zLjhzLjItMi43LS4xLTQuMS0uOS0yLjYtMS43LTMuNy0xLjgtMi0zLTIuNy0yLjUtMS4xLTMuOS0xLjMtMi43IDAtNCAuNC0yLjUgMS4xLTMuNiAxLjktMS45IDItMi41IDMuMmwtNDguNSA4NC4xYy0zOC44LTE3LjQtODAuOC0yNi40LTEyMy4zLTI2LjRzLTg0LjUgOS0xMjMuMyAyNi40TDExNi4yIDY0LjRjLS42LTEuMi0xLjUtMi4zLTIuNS0zLjJzLTIuMy0xLjUtMy42LTEuOS0yLjctLjUtNC0uNC0yLjcgLjYtMy45IDEuMy0yLjIgMS42LTMgMi43LTEuNCAyLjQtMS43IDMuNy0uMyAyLjctLjEgNC4xIC44IDIuNiAxLjUgMy44bDQ3LjkgODNDNjQuNSAyMDIuMiA4LjIgMjg1LjUgMCAzODRsNTc2IDBjLTguMi05OC41LTY0LjUtMTgxLjgtMTQ2LjktMjI2LjZ6Il19LFFEdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWV0dXAiLGljb246WzU3Niw1MTIsW10sImYyZTAiLCJNMTMxLjEgNDE0LjNjMS4xIDUuNy0yLjMgMTEuMS04IDEyLjMtNS40IDEuMS0xMC45LTIuMy0xMi04LTEuMS01LjQgMi4zLTExLjEgNy43LTEyLjNzMTEuMSAyLjMgMTIuMyA4em0xNDMuMSA3MS40Yy02LjMgNC42LTggMTMuNC0zLjcgMjAgNC42IDYuNiAxMy40IDguMyAyMCAzLjcgNi4zLTQuNiA4LTEzLjQgMy40LTIwLTQuMi02LjUtMTMuMS04LjMtMTkuNy0zLjd6bS04Ni00NjIuM2ExMS44IDExLjggMCAxIDAgLTQuOS0yMyAxMS44IDExLjggMCAxIDAgNC45IDIzek02Ni41IDIyNi4zYTIyLjIgMjIuMiAwIDEgMCAtMjQuNyAzNi45IDIyLjIgMjIuMiAwIDEgMCAyNC43LTM2Ljl6bTI3Mi0xNzAuOWEyMi4xIDIyLjEgMCAxIDAgLTIyLjQtMzggMjIuMSAyMi4xIDAgMSAwIDIyLjQgMzh6bS0xOTEuMSA1OGExNi45IDE2LjkgMCAxIDAgLTE4LjgtMjggMTYuOSAxNi45IDAgMSAwIDE4LjggMjh6bTM3Mi4zIDE1NmMtNy40IDEuNy0xMi4zIDkuMS0xMC42IDE2LjkgMS40IDcuNCA4LjkgMTIuMyAxNi4zIDEwLjYgNy40LTEuNCAxMi4zLTguOSAxMC42LTE2LjYtMS41LTcuNC04LjktMTIuMy0xNi4zLTEwLjl6bTM5LjctNTYuOGExMC4xIDEwLjEgMCAxIDAgLTE5LjggNC4zIDEwLjEgMTAuMSAwIDEgMCAxOS44LTQuM3ptLTgwLjMtNzMuN2ExOC44IDE4LjggMCAxIDAgMjAuNyAzMS4zIDE4LjggMTguOCAwIDEgMCAtMjAuNy0zMS4zem0tNi4zIDEzOS40YzI2LjMgNDMuMSAxNS4xIDEwMC0yNi4zIDEyOS4xLTE3LjQgMTIuMy0zNy4xIDE3LjctNTYuOSAxNy4xLTEyIDQ3LjEtNjkuNCA2NC42LTEwNS4xIDMyLjYtMS4xIC45LTIuNiAxLjctMy43IDIuOS0zOS4xIDI3LjEtOTIuMyAxNy40LTExOS40LTIyLjMtOS43LTE0LjMtMTQuNi0zMC42LTE1LjEtNDYuOS02NS40LTEwLjktOTAtOTQtNDEuMS0xMzkuNy0yOC4zLTQ2LjkgLjYtMTA3LjQgNTMuNC0xMTQuOSAyNS4xLTY2LjIgMTA3LjYtOTcuNiAxNjMuNi01NC4yIDY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zIC45IDcuMSAxMC45LTEuNCA5LjQtMzUuMSA3Mi4zLTM4LjkgODcuNy00LjYgMjAuNiA2LjYgNDEuNCAyNC45IDUwLjYgMTEuNCA1LjcgNjIuNSAxNS43IDU4LjUtMTEuMXptNS43IDkyLjNhMjMuMyAyMy4zIDAgMSAwIDI2LjIgMzguNCAyMy4zIDIzLjMgMCAxIDAgLTI2LjItMzguNHoiXX0sSkR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucy1maSIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMiIsIk0xMTQuNCAyMjRsOTIuNCAwLTE1LjIgNTEuMi03Ni40IDAgMCAxNTcuOGMwIDgtMi44IDkuMiA0LjQgMTBsNTkuNiA1LjYgMCAzNC40LTE3OS4yIDAgMC0zNS4yIDI5LjItMi44YzcuMi0uOCA5LjItMy4yIDkuMi0xMC44bDAtMTU1LjhjMC0zLjItNC0zLjItOC0zLjJsLTMwLjQgMCAwLTUxLjIgMzguNCAwIDAtMjguOGMwLTY4IDM2LjQtOTYgMTA2LTk2IDQ2LjggMCA4OC44IDExLjIgODguOCA3Mi40TDE2My42IDE4MGMuNC0yNS42LTYtMzEuNi0yMi40LTMxLjYtMjUuMiAwLTI2IDEzLjYtMjYgMzcuNmwwIDMyYzAgMy4yLTQuOCA2LS44IDZ6TTM4NCA0ODNsLTE0MC44IDAgMC0zNC40IDI4LTMuNmM3LjItLjggMTAuNC0yLjQgMTAuNC0xMGwwLTE0OGMwLTUuNi00LTkuMi05LjItMTAuOGwtMzMuMi04LjggOS4yLTQwLjQgMTEwIDAgMCAyMDhjMCA4LTMuNiA4LjggNCAxMGwyMS42IDMuNiAwIDM0LjR6TTM1NCAxMzUuOGwxMi40IDQ1LjYtMTAgMTAtNDIuOC0yMi44LTQyLjggMjIuOC0xMC0xMCAxMi40LTQ1LjYtMzAtMzYuNCA0LjgtMTAgMzggMCAyMS4yLTM4LjQgMTIuOCAwIDIxLjIgMzguNCAzOCAwIDQuOCAxMy4yLTMwIDMzLjJ6Il19LGVMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWxmZWQiLGljb246WzU3Niw1MTIsW10sImYzZDgiLCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOCAuNyAyLjggMi42IDYuMiAxNS4xIDYuMiAzNi44IDAgODMuNC00Mi44IDgzLjMtOTYuMnpNMTkwLjQgMjY2LjFjLjIgMCA2LjUtMi43IDExLjItMi43IDI2LjYgMCAyMC43IDQ0LjEtMTQuNCA0NC4xLTIxLjUgMC0zNy4xLTE4LjEtMzcuMS00MyAwLTQyIDQyLjktOTUuNiAxMDAuNy0xMjYuNSAxLTEyLjQgMy0yMiAxMC41LTI4LjIgMTEuMi05IDI2LjYtMy41IDI5LjUgMTEuMSA3Mi4yLTIyLjIgMTM1LjIgMSAxMzUuMiA3MiAwIDc3LjktNzkuMyAxNTIuNi0xNDAuMSAxMzguMi0uMSAzOS40IC45IDc0LjQgMi43IDEwMGwwIC4yYy4yIDMuNCAuNiAxMi41LTUuMyAxOS4xLTkuNiAxMC42LTMzLjQgMTAtMzYuNC0yMi4zLTQuMS00NC40IC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkgLjIgMi41IC40IDQgLjYgNC42ek04IDE4MS4xcy0uMSAzNy40IDM4LjQgMzcuNGwzMCAwIDIyLjQgMjE3LjJzMCA0NC4zIDQ0LjcgNDQuM2wyODguOSAwczQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjIgMzAgMHMzOC40IDEuMiAzOC40LTM3LjRjMCAwIC4xLTM3LjQtMzguNC0zNy40bC0zMC4xIDBjLTcuMy0yNS42LTMwLjItNzQuMy0xMTkuNC03NC4zbC0yOCAwIDAtMTkuMXMtMi43LTE4LjQtMjEuMS0xOC40bC04NS44IDBTMjI0IDMxLjkgMjI0IDUwLjNsMCAxOS4xLTI4LjEgMHMtMTA1IDQuMi0xMjAuNSA3NC4zbC0yOSAwUzggMTQyLjUgOCAxODEuMXoiXX0sdEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwYmVnaW5uZXIiLGljb246WzUxMiw1MTIsW10sImYyOTciLCJNNDYzLjIgMzIyLjRjNTYuMiA2NC4zIDQuMiAxNTcuNi05MS45IDE1Ny42LTM5LjYgMC03OC44LTE3LjctMTAwLjEtNTAtNi45IC40LTIyLjcgLjQtMjkuNiAwLTIxLjQgMzIuNC02MC42IDUwLTEwMC4xIDUwLTk1LjUgMC0xNDguMy05My05MS45LTE1Ny42LTc5LjEtMTMxLjkgMzEuMy0yOTAuNCAyMDYuOC0yOTAuNCAxNzUuNiAwIDI4NS45IDE1OC42IDIwNi44IDI5MC40em0tMzM5LjYtODNsNDEuNSAwIDAtNTguMS00MS41IDAgMCA1OC4xem0yMTcuMiA4Ni4xbDAtMjMuOGMtNjAuNSAyMC45LTEzMi40IDkuMi0xODcuNi0zNGwuMiAyNC45YzUxLjEgNDYuNCAxMzEuNyA1Ny45IDE4Ny4zIDMyLjl6TTE5MCAyMzkuNGwxNjYuMSAwIDAtNTguMS0xNjYuMSAwIDAgNTguMXoiXX0sYUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpYXNwb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzkxIiwiTTIxOS43IDM1NC42Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45UzQ0LjQgNDE0IDQ0IDQxMy4zIDEzMC42IDI4Ny41IDEzMC42IDI4NS44YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMSAuNi0uNyAxNDQuNCA0NyAxNDUuNSA0NyAuNCAwIC45LS42IDEtMS4zIC40LTIgMS0xNDguNiAxLjctMTQ5LjYgLjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMyAuOCAuOSAzMS45IDEwMi4yIDMxLjUgMTAyLjYtLjkgLjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNWwwIDB6Il19LHNMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwcm9kdWN0LWh1bnQiLGljb246WzUxMiw1MTIsW10sImYyODgiLCJNMzI2LjMgMjE4LjhjMCAyMC41LTE2LjcgMzcuMi0zNy4yIDM3LjJsLTcwLjMgMCAwLTc0LjQgNzAuMyAwYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNjcuOS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44bC0xMTkuOSAwIDAgMjQ4IDQ5LjYgMCAwLTc0LjQgNzAuMyAwYzQ3LjkgMCA4Ni44LTM4LjkgODYuOC04Ni44eiJdfSxpTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXVwd29yayIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YyIsIk01NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJ6TTI3MC45IDI3NC4yYzYuNi01Mi45IDI1LjktNjkuNSA1MS40LTY5LjUgMjUuMyAwIDQ0LjkgMjAuMiA0NC45IDQ5LjdzLTE5LjcgNDkuNy00NC45IDQ5LjdjLTI3LjkgMC00Ni4zLTIxLjUtNTEuNC0yOS45em0tMjYuNy00MS44Yy04LjItMTUuNS0xNC4zLTM2LjMtMTkuMi01NS42bC02Mi45IDAgMCA3OC4xYzAgMjguNC0xMi45IDQ5LjQtMzguMiA0OS40Uzg0LjEgMjgzLjQgODQuMSAyNTVsLjMtNzguMS0zNi4yIDAgMCA3OC4xYzAgMjIuOCA3LjQgNDMuNSAyMC45IDU4LjIgMTMuOSAxNS4yIDMyLjggMjMuMiA1NC44IDIzLjIgNDMuNyAwIDc0LjItMzMuNSA3NC4yLTgxLjVsMC01Mi41YzQuNiAxNy4zIDE1LjQgNTAuNSAzNi4yIDc5LjdsLTE5LjMgMTEwLjUgMzYuOCAwIDEyLjgtNzguNGM0LjIgMy41IDguNyA2LjYgMTMuNCA5LjQgMTIuMyA3LjggMjYuNCAxMi4yIDQwLjkgMTIuNmwzLjQgMGM0NS4xIDAgODAuOS0zNC45IDgwLjktODEuOXMtMzUuOS04Mi4yLTgwLjktODIuMmMtNDUuNCAwLTcwLjkgMjkuNy03OC4xIDYwLjFsMCAuMnoiXX0sckx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImN1dHRsZWZpc2giLGljb246WzQ0OCw1MTIsW10sImYzOGMiLCJNMzQ4IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOC00NS4zLTQ5LjYtMTEwLjUtODAuNy0xODMtODAuNy0xMzcgMC0yNDggMTExLTI0OCAyNDhTMTE1IDUwNCAyNTIgNTA0YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6Il19LG9MdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRhcHBzIixpY29uOlszMjAsNTEyLFtdLCJmM2M2IiwiTTExOC4zIDIzOC40YzMuNS0xMi41IDYuOS0zMy42IDEzLjItMzMuNiA4LjMgMS44IDkuNiAyMy40IDE4LjYgMzYuNiA0LjYtMjMuNSA1LjMtODUuMSAxNC4xLTg2LjcgOS0uNyAxOS43IDY2LjUgMjIgNzcuNSA5LjkgNC4xIDQ4LjkgNi42IDQ4LjkgNi42IDEuOSA3LjMtMjQgNy42LTQwIDcuOC00LjYgMTQuOC01LjQgMjcuNy0xMS40IDI4LTQuNyAuMi04LjItMjguOC0xNy41LTQ5LjZsLTkuNCA2NS41Yy00LjQgMTMtMTUuNS0yMi41LTIxLjktMzkuMy0zLjMtLjEtNjIuNC0xLjYtNDcuNi03LjhsMzEtNXpNMjI4IDQ0OGMyMS4yIDAgMjEuMi0zMiAwLTMyTDkyIDQxNmMtMjEuMiAwLTIxLjIgMzIgMCAzMmwxMzYgMHptLTI0IDY0YzIxLjIgMCAyMS4yLTMyIDAtMzJsLTg4IDBjLTIxLjIgMC0yMS4yIDMyIDAgMzJsODggMHptMzQuMi0xNDEuNWMzLjItMTguOSA1LjItMzYuNCAxMS45LTQ4LjggNy45LTE0LjcgMTYuMS0yOC4xIDI0LTQxIDI0LjYtNDAuNCA0NS45LTc1LjIgNDUuOS0xMjUuNSAwLTg1LjYtNzEuOC0xNTUuMi0xNjAtMTU1LjJTMCA2OS42IDAgMTU1LjJjMCA1MC4yIDIxLjMgODUuMSA0NS45IDEyNS41IDcuOSAxMi45IDE2IDI2LjMgMjQgNDEgNi43IDEyLjUgOC43IDI5LjggMTEuOSA0OC45IDMuNSAyMSAzNi4xIDE1LjcgMzIuNi01LjEtMy42LTIxLjctNS42LTQwLjctMTUuMy01OC42LTMyLjYtNjAuNC02Ni4xLTk1LjYtNjYuMS0xNTEuNyAwLTY3LjkgNTctMTIzLjIgMTI3LTEyMy4yUzI4NyA4Ny4zIDI4NyAxNTUuMmMwIDU2LjEtMzMuNSA5MS4zLTY2LjEgMTUxLjYtOS43IDE4LTExLjcgMzcuNC0xNS4zIDU4LjYtMy40IDIwLjYgMjkgMjYuNCAzMi42IDUuMXoiXX0sbkx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeCIsaWNvbjpbNTEyLDUxMixbXSwiZTQzYSIsIk0yNDIuNCAyOTIuNWM1LjQtNS40IDE0LjctNS40IDIwLjEgMGw3NyA3N2MxNC4yIDE0LjIgMzMuMSAyMiA1My4xIDIybDE1LjEgMC05Ny4xIDk3LjFjLTMwLjMgMjkuNS03OS41IDI5LjUtMTA5LjggMGwtOTcuNS05Ny40IDkuMyAwYzIwIDAgMzguOS03LjggNTMuMS0yMmw3Ni43LTc2Ljd6bTIwLjEtNzMuNmMtNi40IDUuNS0xNC42IDUuNi0yMC4xIDBsLTc2LjctNzYuN2MtMTQuMi0xNS4xLTMzLjEtMjItNTMuMS0yMmwtOS4zIDAgOTcuNC05Ny40YzMwLjQtMzAuMyA3OS42LTMwLjMgMTA5LjkgMGw5Ny4yIDk3LjEtMTUuMiAwYy0yMCAwLTM4LjkgNy44LTUzLjEgMjJsLTc3IDc3ek0xMTIuNiAxNDIuN2MxMy44IDAgMjYuNSA1LjYgMzcuMSAxNS40bDc2LjcgNzYuN2M3LjIgNi4zIDE2LjYgMTAuOCAyNi4xIDEwLjggOS40IDAgMTguOC00LjUgMjYtMTAuOGw3Ny03N2M5LjgtOS43IDIzLjMtMTUuMyAzNy4xLTE1LjNsMzcuNyAwIDU4LjMgNTguM2MzMC4zIDMwLjMgMzAuMyA3OS41IDAgMTA5LjhsLTU4LjMgNTguMy0zNy43IDBjLTEzLjggMC0yNy4zLTUuNi0zNy4xLTE1LjRsLTc3LTc3Yy0xMy45LTEzLjktMzguMi0xMy45LTUyLjEgLjFsLTc2LjcgNzYuNmMtMTAuNiA5LjgtMjMuMyAxNS40LTM3LjEgMTUuNGwtMzEuOCAwLTU4LTU4Yy0zMC4zLTMwLjMtMzAuMy03OS41IDAtMTA5LjhsNTgtNTguMSAzMS44IDB6Il19LFY4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHVtYmxyIixpY29uOls0NDgsNTEyLFsidHVtYmxyLXNxdWFyZSJdLCJmMTc0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45bDAtOTAtMjkuNyAwYy0zLjQgMC02LjItMi44LTYuMi02LjJsMC00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yIC41LTYuOSA0LjEtMTAuMiAxMC0xMC4ybDQ0LjMgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA3MiA1MS45IDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJsLTUyLjEgMCAwIDgzLjNjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yIC41IDMuNiAyLjEgNC42IDQuOUwzMTggMzg3LjFjMSAzLjIgMiA2LjctLjMgOS4xLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHoiXX0sbEx0PVY4ZSxjTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3QiLGljb246WzUxMiw1MTIsW10sImY0MWIiLCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEgLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yIC42LTExMi42IDM4LjQtNC4zIDMuNy04LjUgNy42LTEyLjUgMTEuNS0yLjctMi42LTUuNS01LjItOC4zLTcuNy00NS41LTQwLjQtOTEuMS01Ny40LTExOC40LTQxLjUtMjYuMiAxNS4yLTM0IDYwLjMtMjMgMTE2LjcgMS4xIDUuNiAyLjMgMTEuMSAzLjcgMTYuNy02LjQgMS44LTEyLjcgMy44LTE4LjYgNS45LTUzLjQgMTguNS05MS43IDQ3LjctOTEuNyA3Ny45IDAgMzEuMiA0MC44IDYyLjUgOTYuMyA4MS41IDQuNSAxLjUgOSAzIDEzLjYgNC4zLTEuNSA2LTIuOCAxMS45LTQgMTgtMTAuNSA1NS41LTIuMyA5OS41IDIzLjkgMTE0LjYgMjcgMTUuNiA3Mi40LS40IDExNi42LTM5LjEgMy41LTMuMSA3LTYuMyAxMC41LTkuNyA0LjQgNC4zIDkgOC40IDEzLjYgMTIuNCA0Mi44IDM2LjggODUuMSA1MS43IDExMS4yIDM2LjYgMjctMTUuNiAzNS44LTYyLjkgMjQuNC0xMjAuNS0uOS00LjQtMS45LTguOS0zLTEzLjUgMy4yLS45IDYuMy0xLjkgOS40LTIuOSA1Ny43LTE5LjEgOTkuNS01MCA5OS41LTgxLjcgMC0zMC4zLTM5LjQtNTkuNy05My44LTc4LjR6TTI4Mi45IDkyLjNjMzcuMi0zMi40IDcxLjktNDUuMSA4Ny43LTM2IDE2LjkgOS43IDIzLjQgNDguOSAxMi44IDEwMC40LS43IDMuNC0xLjQgNi43LTIuMyAxMC0yMi4yLTUtNDQuNy04LjYtNjcuMy0xMC42LTEzLTE4LjYtMjcuMi0zNi40LTQyLjYtNTMuMSAzLjktMy43IDcuNy03LjIgMTEuNy0xMC43ek0xNjcuMiAzMDcuNWM1LjEgOC43IDEwLjMgMTcuNCAxNS44IDI1LjktMTUuNi0xLjctMzEuMS00LjItNDYuNC03LjUgNC40LTE0LjQgOS45LTI5LjMgMTYuMy00NC41IDQuNiA4LjggOS4zIDE3LjUgMTQuMyAyNi4xek0xMzYuOSAxODcuMmMxNC40LTMuMiAyOS43LTUuOCA0NS42LTcuOC01LjMgOC4zLTEwLjUgMTYuOC0xNS40IDI1LjQtNC45IDguNS05LjcgMTcuMi0xNC4yIDI2LTYuMy0xNC45LTExLjYtMjkuNS0xNi00My42em0yNy40IDY4LjljNi42LTEzLjggMTMuOC0yNy4zIDIxLjQtNDAuNnMxNS44LTI2LjIgMjQuNC0zOC45YzE1LTEuMSAzMC4zLTEuNyA0NS45LTEuN3MzMSAuNiA0NS45IDEuN2M4LjUgMTIuNiAxNi42IDI1LjUgMjQuMyAzOC43czE0LjkgMjYuNyAyMS43IDQwLjRjLTYuNyAxMy44LTEzLjkgMjcuNC0yMS42IDQwLjgtNy42IDEzLjMtMTUuNyAyNi4yLTI0LjIgMzktMTQuOSAxLjEtMzAuNCAxLjYtNDYuMSAxLjZzLTMwLjktLjUtNDUuNi0xLjRjLTguNy0xMi43LTE2LjktMjUuNy0yNC42LTM5cy0xNC44LTI2LjgtMjEuNS00MC42em0xODAuNiA1MS4yYzUuMS04LjggOS45LTE3LjcgMTQuNi0yNi43IDYuNCAxNC41IDEyIDI5LjIgMTYuOSA0NC4zLTE1LjUgMy41LTMxLjIgNi4yLTQ3IDggNS40LTguNCAxMC41LTE3IDE1LjUtMjUuNnptMTQuNC03Ni41Yy00LjctOC44LTkuNS0xNy42LTE0LjUtMjYuMi00LjktOC41LTEwLTE2LjktMTUuMy0yNS4yIDE2LjEgMiAzMS41IDQuNyA0NS45IDgtNC42IDE0LjgtMTAgMjkuMi0xNi4xIDQzLjR6TTI1Ni4yIDExOC4zYzEwLjUgMTEuNCAyMC40IDIzLjQgMjkuNiAzNS44LTE5LjgtLjktMzkuNy0uOS01OS41IDAgOS44LTEyLjkgMTkuOS0yNC45IDI5LjktMzUuOHpNMTQwLjIgNTdjMTYuOC05LjggNTQuMSA0LjIgOTMuNCAzOSAyLjUgMi4yIDUgNC42IDcuNiA3LTE1LjUgMTYuNy0yOS44IDM0LjUtNDIuOSA1My4xLTIyLjYgMi00NSA1LjUtNjcuMiAxMC40LTEuMy01LjEtMi40LTEwLjMtMy41LTE1LjUtOS40LTQ4LjQtMy4yLTg0LjkgMTIuNi05NHpNMTE1LjcgMzIwLjZjLTQuMi0xLjItOC4zLTIuNS0xMi40LTMuOS0yMS4zLTYuNy00NS41LTE3LjMtNjMtMzEuMi0xMC4xLTctMTYuOS0xNy44LTE4LjgtMjkuOSAwLTE4LjMgMzEuNi00MS43IDc3LjItNTcuNiA1LjctMiAxMS41LTMuOCAxNy4zLTUuNSA2LjggMjEuNyAxNSA0MyAyNC41IDYzLjYtOS42IDIwLjktMTcuOSA0Mi41LTI0LjggNjQuNXptMTE2LjYgOThjLTE2LjUgMTUuMS0zNS42IDI3LjEtNTYuNCAzNS4zLTExLjEgNS4zLTIzLjkgNS44LTM1LjMgMS4zLTE1LjktOS4yLTIyLjUtNDQuNS0xMy41LTkyIDEuMS01LjYgMi4zLTExLjIgMy43LTE2LjcgMjIuNCA0LjggNDUgOC4xIDY3LjkgOS44IDEzLjIgMTguNyAyNy43IDM2LjYgNDMuMiA1My40LTMuMiAzLjEtNi40IDYuMS05LjYgOC45em0yNC41LTI0LjNjLTEwLjItMTEtMjAuNC0yMy4yLTMwLjMtMzYuMyA5LjYgLjQgMTkuNSAuNiAyOS41IC42IDEwLjMgMCAyMC40LS4yIDMwLjQtLjctOS4yIDEyLjctMTkuMSAyNC44LTI5LjYgMzYuNHptMTMwLjcgMzBjLS45IDEyLjItNi45IDIzLjYtMTYuNSAzMS4zLTE1LjkgOS4yLTQ5LjgtMi44LTg2LjQtMzQuMi00LjItMy42LTguNC03LjUtMTIuNy0xMS41IDE1LjMtMTYuOSAyOS40LTM0LjggNDIuMi01My42IDIyLjktMS45IDQ1LjctNS40IDY4LjItMTAuNSAxIDQuMSAxLjkgOC4yIDIuNyAxMi4yIDQuOSAyMS42IDUuNyA0NC4xIDIuNSA2Ni4zem0xOC4yLTEwNy41Yy0yLjggLjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHpNMjU2IDMwMS44YTQ1LjggNDUuOCAwIDEgMCAwLTkxLjYgNDUuOCA0NS44IDAgMSAwIDAgOTEuNnoiXX0sZEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1Z2dpbmctZmFjZSIsaWNvbjpbNTc2LDUxMixbXSwiZTg2OSIsIk0yODYuOCA4LjJjMTMwIDAgMjM1LjQgMTA1LjggMjM1LjQgMjM2LjMgMCAxNy43LTEuOSAzNS01LjYgNTEuNy0xLjQgNi41LTMuMSAxMi44LTUuMSAxOS4xIDYuNS0uNiAxMyAuNiAxOC43IDMuNSAxMi42IDYuNSAyMC4yIDIxLjcgMTguMiAzNS43LS43IDQuOS0yLjQgOS40LTQuOCAxMy41IDUuMiA0LjIgOSAxMC4xIDEwLjggMTcuMSAxLjQgNS41IDIuOSAxNy4xLTQuOCAyOC45IDUuOCA5LjIgNi42IDIwLjYgMi4yIDMwLjYtNi4yIDE0LjEtMjEuNyAyNS4zLTUxLjcgMzcuMy0zMi41IDEzLTY3LjEgMjEuOS0xMDIuMyAyMS45LTMyIDAtNTUuOS04LjktNzEtMjYuNC0xMyAyLjItMjYuMyAzLjQtNDAgMy40LTEyLjcgMC0yNS4yLTEtMzcuMy0yLjktMTUuMSAxNy4yLTM4LjggMjUuOS03MC42IDI1LjktMzUuMSAwLTcwLTktMTAyLjQtMjEuOS0zMC0xMi00NS41LTIzLjEtNTEuNy0zNy4zLTQuNC05LjktMy42LTIxLjQgMi4yLTMwLjYtNy43LTExLjktNi4zLTIzLjQtNC44LTI4LjkgMS44LTcgNS43LTEyLjkgMTAuOC0xNy4xLTIuNS00LjEtNC4xLTguNi00LjgtMTMuNS0xLjUtMTAuNCAyLTIwLjcgOS43LTI5LjIgNi4xLTYuNyAxNS4xLTEwLjMgMjQuMi0xMC4yLTEuOS02LjEtMy42LTEyLjQtNS0xOC43LTMuNy0xNi43LTUuNy0zNC01LjctNTEuOCAwLTEzMC41IDEwNS40LTIzNi4zIDIzNS40LTIzNi4zek0xMTcuNSAzMTFjLTEzLTguMi0yMi4xLTMuNi0xOSAxMy40czU3LjIgNTguMiA1MiA2Ny4yYy01LjIgOC44LTIzLjUtMTAuMS0yMy44LTEwLjUgMCAwLTU4LjItNTMuMS03MC44LTM5LjMtMTIuNiAxMy44IDkuNiAyNS40IDQxLjMgNDQuN3MzNC4yIDI0LjQgMjkuNyAzMS43LTc0LjUtNTItODEuMS0yNi44Yy02LjUgMjUuMSA3MS40IDMyLjQgNjYuNyA0OS44LTQuOCAxNy40LTU0LjktMzIuOC02NS4yLTEzLjMtMTAuMyAxOS42IDcwLjggNDIuNiA3MS40IDQyLjcgMjYuMiA2LjggOTIuNiAyMS4zIDExNS45LTEyLjkgMTYuNy0yNC42IDE1LjYtNDMuMS03LjQtNjYuMXMtMzYuMy01Ni43LTM2LjMtNTYuN2MwLS4yLTUtMTkuNS0xNi4zLTE3LjgtMTEuNCAxLjgtMTkuNyAzMSA0LjEgNDguOSAyMy44IDE3LjktNC43IDMwLTEzLjkgMTMuMy05LjItMTYuOC0zNC4yLTU5LjktNDcuMS02OC4yem0zNjAuNiAxMy40YzMuMS0xNy02LjEtMjEuNi0xOS0xMy40LTEzIDguMy0zNy45IDUxLjQtNDcuMSA2OC4ycy0zNy43IDQuNi0xMy45LTEzLjMgMTUuNC00Ny4xIDQuMS00OC45LTE2LjMgMTcuOC0xNi4zIDE3LjhjLS4xIC4yLTEzLjQgMzMuNy0zNi4zIDU2LjctMjIuOSAyMy0yNC4xIDQxLjUtNy40IDY2LjEgMjMuMiAzNC4yIDg5LjcgMTkuNyAxMTUuOSAxMi45IDEuNS0uNCA4MS42LTIzLjMgNzEuNC00Mi43LTEwLjMtMTkuNS02MC40IDMwLjYtNjUuMyAxMy4zLTQuOC0xNy4zIDczLjItMjQuNiA2Ni43LTQ5LjgtNi42LTI1LjEtNzYuNiAzNC4xLTgxLjEgMjYuOC00LjUtNy4zLTItMTIuNCAyOS43LTMxLjcgMzEuNy0xOS4zIDU0LTMwLjkgNDEuMy00NC43LTEyLjctMTMuOC03MC44IDM5LjMtNzAuOCAzOS4zLS40IC40LTE4LjYgMTkuMy0yMy44IDEwLjUtNS4zLTguOSA0OC45LTUwLjEgNTItNjcuMnpNMjg2LjggMzIuNmMtMTE2LjYgMC0yMTEuMSA5NC45LTIxMS4xIDIxMS45IDAgMTcuMSAyIDMzLjggNS44IDQ5LjcgMC0uMSAuMS0uMSAuMi0uMiA2LjEtNy40IDE0LjktMTEuNCAyNC43LTExLjQgMTcuNyAwIDMxLjEgMTEuOSA0MS41IDI0LjkgNi44LTkuNCAxNy4xLTE1IDI3LjktMTUgMjAuNyAwIDMzLjIgMTguMSAzNy45IDM0LjMgMi4zIDUuNSAxMy42IDMwLjUgMzAuNCA0Ny40IDI1LjcgMjUuOCAzMi4yIDUyLjQgMTkuNCA4MC45IDE2IDEuOCAzMi44IDEuNyA0OS4yLS4zLTEyLjUtMjguNC02LTU0LjkgMTkuNi04MC42IDE2LjktMTYuOSAyOC4xLTQxLjkgMzAuNS00Ny40IDQuNy0xNi4yIDE3LjItMzQuMyAzNy45LTM0LjMgMTAuOSAwIDIxLjIgNS42IDI3LjkgMTUgMTAuNC0xMyAyMy44LTI0LjkgNDEuNS0yNC45IDguNyAwIDE2LjYgMy4xIDIyLjUgOC45IDUtMjIgNi40LTQ1LjggNC4xLTY4LjctMTAuOC0xMDYuOS0xMDAuNy0xOTAuMy0yMTAtMTkwLjN6bTEuNSAyMzQuMmM0My42IDAgNzktNDIgNzktMTQuNSAwIDI3LjQtMTkuMiA4MC45LTc4LjggODAuOS0xOS4yIDAtMzQuMi01LjUtNDUuOC0xMy45LTIzLjItMTkuNC0zMy40LTQ4LjItMzMuNC02Ni45IDAtMjcuNCAzNS40IDE0LjUgNzkgMTQuNXptLTEzLjMgMjVjLTguMiAyLjQtMTUuNSA2LjgtMjEuNSAxMi42IDIyIDEyLjggNTAuNCAxMi45IDcxLjctMS4zLTUuNS00LjktMTItOC43LTE5LjEtMTEtNS4xLTEuNi0xMC40IDE1LjgtMTYgMTUuOC01LjIgMC0xMC4zLTE3LjYtMTUuMS0xNi4yek0xNDcuMSAyMTUuNWExOS44IDE5LjggMCAxIDEgMC0zOS42IDE5LjggMTkuOCAwIDEgMSAwIDM5LjZ6bTI4Mi40IDBhMTkuOCAxOS44IDAgMSAxIDAtMzkuNiAxOS44IDE5LjggMCAxIDEgMCAzOS42em0tMjQ0LTU1LjRjNy45LTE0LjkgMjYuMy0yMC41IDQxLjEtMTIuNnMyMC40IDI2LjQgMTIuNiA0MS4yYy0zLjcgNy0xNS41LTQuNC0yMi40LTEuOS03LjcgMi43LTEwLjggMTguNy0xOC42IDE0LjYtMTQuOC03LjktMjAuNC0yNi40LTEyLjYtNDEuMnptMTY0LjQtMTIuNmMxNC44LTcuOSAzMy4yLTIuMyA0MS4xIDEyLjZzMi4yIDMzLjMtMTIuNiA0MS4yYy03LjggNC4yLTEwLjktMTEuOC0xOC43LTE0LjYtNi45LTIuNC0xOC43IDktMjIuNCAxLjktNy45LTE0LjktMi4yLTMzLjMgMTIuNi00MS4yeiJdfSx1THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianhsIixpY29uOls0NDgsNTEyLFtdLCJlNjdiIiwiTTQxMi4yIDMyTDM1LjggMzJDMTYgMzIgMCA0OCAwIDY3LjhMMCA0NDQuMkMwIDQ2NCAxNiA0ODAgMzUuOCA0ODBsMzc2LjQgMGMxOS44IDAgMzUuOC0xNiAzNS44LTM1LjhsMC0zNzYuNEM0NDggNDggNDMyIDMyIDQxMi4yIDMyek0zNzguNiAzMzMuN2MwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHoiXX0scEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1saW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem01IDE3MC4ybDY2LjUgMCAwIDIxMy44LTY2LjUgMCAwLTIxMy44em03MS43LTY3LjdhMzguNSAzOC41IDAgMSAxIC03NyAwIDM4LjUgMzguNSAwIDEgMSA3NyAwek0zMTcuOSA0MTZsMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yLTY2LjQgMHoiXX0saEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTZhMiIsIk0zNzYuMyAzMkwwIDMyIDAgNDA4LjNjMCAxOSA3LjYgMzcuMiAyMSA1MC43czMxLjcgMjEgNTAuNyAyMWwzMDQuNiAwYzE5IDAgMzcuMi03LjYgNTAuNy0yMXMyMS0zMS43IDIxLTUwLjdsMC0zMDQuNmMwLTE5LTcuNi0zNy4yLTIxLTUwLjdzLTMxLjctMjEtNTAuNy0yMXpNMzMyLjQgNDMxLjRjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNS00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTQtMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDM1MS4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjUgMTIuNWM3LjUgOC40IDExLjUgMjAuMyAxMS44IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00IDI3LjQtMTIuMyAzNS43Yy04LjIgOC4zLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwMSAwYy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjQtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS0zLjktMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDI1MC4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjQgMTIuNWM3LjYgOC40IDExLjUgMjAuMyAxMS45IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00LjEgMjcuNC0xMi4zIDM1LjdzLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwNS42IDEuMWMtOC40LTcuNy0xMi41LTE5LjItMTIuNS0zNC41bDAtNzUuNGMwLTE1LjIgNC40LTI2LjcgMTMuMi0zNC42YzguOS03LjggMjAuNy0xMS44IDM1LjItMTEuOGMxNC4xIDAgMjUuMiA0IDMzLjQgMTJjOC4zIDggMTIuNSAyMCAxMi41IDM1LjlsMCA2LTMzLjEgMCAwLTUuOGMwLTYuMS0xLjMtMTAuNy00LTEzLjZjLTEuMS0xLjUtMi42LTIuNy00LjMtMy41cy0zLjUtMS4yLTUuNC0xLjFjLTUuNCAwLTkuMiAxLjgtMTEuNCA1LjZjLTIuMyA1LjItMy4zIDEwLjgtMyAxNi40bDAgNjUuNWMwIDEzLjcgNC44IDIwLjYgMTQuNCAyMC44YzQuNSAwIDcuOS0xLjYgMTAuMi00LjhjMi41LTQuMSAzLjctOC44IDMuNS0xMy42bDAtNC45IDMzLjEgMCAwIDUuMWMwIDEwLjYtMi4xIDE5LjUtNi4yIDI2LjZjLTQgNi45LTkuOSAxMi41LTE3LjEgMTZjLTcuNyAzLjctMTYuMSA1LjUtMjQuNiA1LjNjLTE0LjIgMC0yNS41LTMuOS0zMy44LTExLjZ6Il19LGZMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYXNobm9kZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ5OSIsIk0zNS43IDE3MS4xYy00Ni45IDQ2LTQ2LjkgMTIyLjkgMCAxNjkuOEwxNzEuNiA0NzYuOGM0NiA0Ni45IDEyMi45IDQ2LjkgMTY5LjggMEw0NzcuMyAzNDAuOWM0Ni45LTQ2LjkgNDYuOS0xMjMuOCAwLTE2OS44TDM0MS40IDM1LjJjLTQ2LjktNDYuOS0xMjMuOC00Ni45LTE2OS44IDBMMzUuNyAxNzEuMXpNMTk2IDE5Ni41YTg0LjUgODQuNSAwIDEgMSAxMjAgMTE5IDg0LjUgODQuNSAwIDEgMSAtMTIwLTExOXoiXX0sbUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGRpdC1hbGllbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MSIsIk0zNzMgMTM4LjZjLTI1LjIgMC00Ni4zLTE3LjUtNTEuOS00MS0zMC42IDQuMy01NC4yIDMwLjctNTQuMiA2Mi40bDAgLjJjNDcuNCAxLjggOTAuNiAxNS4xIDEyNC45IDM2LjMgMTIuNi05LjcgMjguNC0xNS41IDQ1LjUtMTUuNSA0MS4zIDAgNzQuNyAzMy40IDc0LjcgNzQuNyAwIDI5LjgtMTcuNCA1NS41LTQyLjcgNjcuNS0yLjQgODYuOC05NyAxNTYuNi0yMTMuMiAxNTYuNlM0NS41IDQxMC4xIDQzIDMyMy40Yy0yNS40LTExLjktNDMtMzcuNy00My02Ny43IDAtNDEuMyAzMy40LTc0LjcgNzQuNy03NC43IDE3LjIgMCAzMyA1LjggNDUuNyAxNS42IDM0LTIxLjEgNzYuOC0zNC40IDEyMy43LTM2LjRsMC0uM2MwLTQ0LjMgMzMuNy04MC45IDc2LjgtODUuNSA0LjktMjQuMiAyNi4zLTQyLjQgNTIuMS00Mi40IDI5LjQgMCA1My4zIDIzLjkgNTMuMyA1My4zcy0yMy45IDUzLjMtNTMuMyA1My4zek0xNTcuNSAyNTUuM2MtMjAuOSAwLTM4LjkgMjAuOC00MC4yIDQ3LjlzMTcuMSAzOC4xIDM4IDM4LjEgMzYuNi05LjggMzcuOC0zNi45LTE0LjctNDkuMS0zNS43LTQ5LjFsLjEgMHpNMzk1IDMwMy4xYy0xLjItMjcuMS0xOS4yLTQ3LjktNDAuMi00Ny45cy0zNi45IDIyLTM1LjcgNDkuMSAxNi45IDM2LjkgMzcuOCAzNi45IDM5LjMtMTEgMzgtMzguMWwuMSAwem0tNjAuMSA3MC44YzEuNS0zLjYtMS03LjctNC45LTguMS0yMy0yLjMtNDcuOS0zLjYtNzMuOC0zLjZzLTUwLjggMS4zLTczLjggMy42Yy0zLjkgLjQtNi40IDQuNS00LjkgOC4xIDEyLjkgMzAuOCA0My4zIDUyLjQgNzguNyA1Mi40czY1LjgtMjEuNiA3OC43LTUyLjR6Il19LCRiPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRpa3RvayIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3YiIsIk00NDguNSAyMDkuOWMtNDQgLjEtODctMTMuNi0xMjIuOC0zOS4ybDAgMTc4LjdjMCAzMy4xLTEwLjEgNjUuNC0yOSA5Mi42cy00NS42IDQ4LTc2LjYgNTkuNi02NC44IDEzLjUtOTYuOSA1LjMtNjAuOS0yNS45LTgyLjctNTAuOC0zNS4zLTU2LTM5LTg4LjkgMi45LTY2LjEgMTguNi05NS4yIDQwLTUyLjcgNjkuNi02Ny43IDYyLjktMjAuNSA5NS43LTE2bDAgODkuOWMtMTUtNC43LTMxLjEtNC42LTQ2IC40cy0yNy45IDE0LjYtMzcgMjcuMy0xNCAyOC4xLTEzLjkgNDMuOSA1LjIgMzEgMTQuNSA0My43IDIyLjQgMjIuMSAzNy40IDI2LjkgMzEuMSA0LjggNDYtLjEgMjgtMTQuNCAzNy4yLTI3LjEgMTQuMi0yOC4xIDE0LjItNDMuOGwwLTM0OS40IDg4IDBjLS4xIDcuNCAuNiAxNC45IDEuOSAyMi4yIDMuMSAxNi4zIDkuNCAzMS45IDE4LjcgNDUuN3MyMS4zIDI1LjYgMzUuMiAzNC42YzE5LjkgMTMuMSA0My4yIDIwLjEgNjcgMjAuMWwwIDg3LjR6Il19LGdMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3MiLGljb246WzUxMiw1MTIsW10sImYxOWEiLCJNNjEuNyAxNjkuNGwxMDEuNSAyNzhjLTcxLTM0LjQtMTE5LjktMTA3LjItMTE5LjktMTkxLjQgMC0zMC45IDYuNi02MC4xIDE4LjQtODYuNnptMzM3LjkgNzUuOWMwLTI2LjMtOS40LTQ0LjUtMTcuNS01OC43LTEwLjgtMTcuNS0yMC45LTMyLjQtMjAuOS00OS45IDAtMTkuNiAxNC44LTM3LjggMzUuNy0zNy44IC45IDAgMS44IC4xIDIuOCAuMi0zNy45LTM0LjctODguMy01NS45LTE0My43LTU1LjktNzQuMyAwLTEzOS43IDM4LjEtMTc3LjggOTUuOSA1IC4yIDkuNyAuMyAxMy43IC4zIDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc3LjUgMjMwLjQgNDYuNi0xMzkuNi0zMy4xLTkwLjhjLTExLjUtLjctMjIuMy0yLTIyLjMtMi0xMS41LS43LTEwLjEtMTguMiAxLjMtMTcuNSAwIDAgMzUuMSAyLjcgNTYgMi43IDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc2LjkgMjI4LjcgMjEuMi03MC45YzktMjkuNCAxNi01MC41IDE2LTY4Ljd6TTI1OS43IDI3NC42TDE5NS45IDQ2MC4xYzE5LjEgNS42IDM5LjIgOC43IDYwLjEgOC43IDI0LjggMCA0OC41LTQuMyA3MC42LTEyLjEtLjYtLjktMS4xLTEuOS0xLjUtMi45TDI1OS43IDI3NC42em0xODMtMTIwLjdjLjkgNi44IDEuNCAxNCAxLjQgMjEuOSAwIDIxLjYtNCA0NS44LTE2LjIgNzYuMmwtNjUgMTg3LjljNjMuMy0zNi45IDEwNS44LTEwNS40IDEwNS44LTE4My45IDAtMzctOS40LTcxLjgtMjYtMTAyLjF6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQ4NC42IDBhMjM2LjYgMjM2LjYgMCAxIDAgLTQ3My4yIDAgMjM2LjYgMjM2LjYgMCAxIDAgNDczLjIgMHoiXX0sYkx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImlkZWFsIixpY29uOls1MTIsNTEyLFtdLCJlMDEzIiwiTTkzLjggMTY1LjVhNDkuMSA0OS4xIDAgMSAwIDAgOTguMSA0OS4xIDQ5LjEgMCAxIDAgMC05OC4xek01NC4zIDQyNS44bDc4LjkgMCAwLTE0MC41LTc4LjkgMCAwIDE0MC41ek0yMDUuOCAyMTQuMmMwLTIwLTEwLTIyLjUtMTguNy0yMi41bC0xNCAwIDAgNDUuOCAxNCAwYzkuNyAwIDE4LjctMi44IDE4LjctMjMuM3ptMjAxLjcgNDZsMC05MS4zIDIyLjggMCAwIDY4LjYgMzMuNyAwQzQ1NC42IDExMy4xIDM1Ni44IDg2LjIgMjY3LjggODYuMmwtOTQuOCAwIDAgODIuOCAxNCAwYzI1LjYgMCA0MS41IDE3LjQgNDEuNSA0NS4zIDAgMjguOC0xNS41IDQ2LTQxLjUgNDZsLTE0IDAgMCAxNjUuNiA5NC44IDBjMTQ0LjYgMCAxOTQuOS02Ny4yIDE5Ni43LTE2NS42bC01Ny4xIDB6bS0xMDkuOCAwbC01Ni4yIDAgMC05MS4yIDU0LjQgMCAwIDIyLjctMzEuNyAwIDAgMTAuNiAzMCAwIDAgMjIuNy0zMCAwIDAgMTIuNSAzMy41IDAgMCAyMi43em03NC43IDBsLTUuMi0xNy43LTI5LjcgMC01LjIgMTcuNy0yMy43IDAgMjcuNS05MS4zIDMyLjMgMCAyNy41IDkxLjMtMjMuNyAwek0yNjcuOCAzMkwuMSAzMiAuMSA0ODAgMjY3LjggNDgwYzE2MS44IDAgMjUxLTc5LjcgMjUxLTIyNC41IDAtODMuNS0zMi42LTIyMy41LTI1MS0yMjMuNXptMCA0MjYuOWwtMjQ2LjYgMCAwLTQwNS45IDI0Ni42IDBjMTQyLjEgMCAyMjkuOSA2NC42IDIyOS45IDIwMi40IDAgMTM0LjEtODEgMjAzLjQtMjI5LjkgMjAzLjR6bTgzLjktMjY0LjlsLTcuNSAyNS44IDE2LjQgMC03LjUtMjUuOC0xLjQgMHoiXX0sdkx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItcHAiLGljb246WzQ0OCw1MTIsW10sImYxYTciLCJNMjA1LjMgMTc0LjZjMCAyMS4xLTE0LjIgMzguMS0zMS43IDM4LjEtNy4xIDAtMTIuOC0xLjItMTcuMi0zLjdsMC02OGM0LjQtMi43IDEwLjEtNC4yIDE3LjItNC4yIDE3LjUgMCAzMS43IDE2LjkgMzEuNyAzNy44em01Mi42IDY3Yy03LjEgMC0xMi44IDEuNS0xNy4yIDQuMmwwIDY4YzQuNCAyLjUgMTAuMSAzLjcgMTcuMiAzLjcgMTcuNCAwIDMxLjctMTYuOSAzMS43LTM3LjggMC0yMS4xLTE0LjMtMzguMS0zMS43LTM4LjF6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4NSAyNTUuMWM0MSAwIDc0LjItMzUuNiA3NC4yLTc5LjZTMjI2IDk1LjkgMTg1IDk1LjljLTEyIDAtMjQuMSAzLjItMzQuNiA4LjhsLTQ1LjcgMCAwIDIwNi4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMSAxOC4xIDQuOCAyOC41IDQuOHptMTU4LjQgMjUuM2MwLTQ0LTMzLjItNzkuNi03My45LTc5LjYtMy4yIDAtNi40IC4yLTkuNiAuNy0zLjcgMTIuNS0xMC4xIDIzLjgtMTkuMiAzMy40LTEzLjggMTUtMzIuMiAyMy44LTUxLjggMjQuOGwwIDE1Ni4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMiAxOC4yIDQuNyAyOC43IDQuNyA0MC44IDAgNzQtMzUuNiA3NC03OS42eiJdfSx4THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNzdW5uYWgiLGljb246WzUxMiw1MTIsW10sImY0MDciLCJNNDk2LjkgMjY4LjFjMCA2My45LTI1LjQgMTI1LjItNzAuNiAxNzAuM1MzMTkuOSA1MDkgMjU2IDUwOSAxMzAuOCA0ODMuNSA4NS43IDQzOC40IDE1LjEgMzMxLjkgMTUuMSAyNjhjMC02My45IDI1LjQtMTI1LjIgNzAuNi0xNzAuNFMxOTIuMiAyNy4xIDI1Ni4xIDI3LjEgMzgxLjMgNTIuNCA0MjYuNSA5Ny42IDQ5NyAyMDQuMSA0OTcgMjY4bC0uMSAuMXpNMzkuNSAyNjhjLS42IDI4LjggNC41IDU3LjUgMTUuMSA4NC4zczI2LjQgNTEuMiA0Ni42IDcxLjggNDQuMiAzNyA3MC44IDQ4LjEgNTUuMSAxNi45IDgzLjkgMTYuOSA1Ny40LTUuOCA4My45LTE2LjkgNTAuNi0yNy41IDcwLjgtNDguMSAzNi00NSA0Ni42LTcxLjggMTUuNy01NS41IDE1LjEtODQuM2MuNi0yOC44LTQuNS01Ny41LTE1LjEtODQuM3MtMjYuNC01MS4yLTQ2LjYtNzEuOC00NC4yLTM3LTcwLjgtNDguMS01NS4xLTE2LjktODMuOS0xNi45LTU3LjQgNS44LTgzLjkgMTYuOS01MC42IDI3LjUtNzAuOCA0OC4xLTM2IDQ1LTQ2LjYgNzEuOC0xNS43IDU1LjUtMTUuMSA4NC4zem0zODUuOSA2My4zYy0xMi43IDAtMjEuNi0xLjktMjYuNy01LjktNS41LTQuMy04LjItMTIuMy04LjItMjMuOGwwLTk2LjVjMC02LjUtNS4yLTIwLjItMTUuNy00MS4yIDcgMCAxNy05LjEgMzAtMjcuMmwwIDE0Ny44YzAgMTEgMi40IDE5LjQgNyAyNS4zIDMuNyA0LjcgMTAuMSA4LjkgMTkgMTIuNiAxLjIgLjQgMi42IC45IDQuMSAxLjQgMi45IC45IDYuMyAyLjEgMTAuMyAzLjUtMS44IDIuNy04LjMgNC0xOS45IDRsLjEgMHptLTIxOSAwYy0xLjMgMi40LTMuNiA1LjUtNi44IDkuNGwtMTguNSAyMi41Yy0xLTYuMS00LTEzLTkuMy0yMC42cy05LjctMTEuNC0xMy40LTExLjRsLTg5LjggMGMzLjMtNS4zIDQuOS04LjggNC45LTEwLjhzLS44LTUuMy0yLjQtOS43Yy0xLjUtNC40LTIuNC04LjUtMi40LTEyLjQgMC03LjQgMi4xLTEzLjkgNi4zLTE5LjNsMjAtMjUuNi03LjEtMTcuNyAxNi4xLTE5LjggNi43IDE2LjggOC0xMC4zYy0xLjggNi40LTIuNiAxMi4zLTIuNiAxNy43IDAgNC4yIDIuOCAxMy4zIDguMyAyNy4zbDE2LjIgNDAuNyAxNy43IDBjMi44IC40IDcuNyA1IDE0LjYgMTMuOSAxLjggMi40IDQuMyA1LjggNy43IDEwLjIgMS40IDEuOSAyLjkgMy45IDQuNiA2LjEgMS4zLTIuMyAyLTQuNiAyLTcuMSAwLTItMS4zLTYuNi00LTEzLjRMMTc4IDMwNC4xYy00LTEwLjYtNi4xLTE3LjctNi4xLTIxLjMgMC02LjMgMS45LTEyLjMgNS44LTE3LjkgLjUtLjYgMS0xLjMgMS41LTEuOSA0LjQtNS42IDguOC0xMS4xIDEzLjMtMTYuNS0xLjEgNC42LTEuNyA4LjctMS43IDEyIDAgMy43IDEuNyA5LjkgNS4xIDE4LjhsNy45IDIwLjRjMS45IDQuNyAzIDguMiAzLjcgMTAuM2wyNS45IDAtLjktMi42Yy0xLjQtMy45LTQtNy03LjctOS4zbDE1LjYtMjAuMSAxMi4zIDMyIDEzLjQgMC02LjEtMTUuOGMtMS41LTMuOS00LTctNy43LTkuM2wxNS43LTIwLjEgMTcuMyA0NS4yIDEzLjQgMC0xMS40LTI5LjRjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNi0yMCAyMi40IDU4LjcgMjYuMiAwYzEuNSAwIDMtMS4xIDQuNS0zLjFzMi4yLTQuMSAyLjItNi4zbDAtOTMuNWMwLTYuNS00LjUtMjAuMy0xMy43LTQxLjIgNS40IDAgMTQuMS05LjEgMjYuMi0yNy4ybDAgMTYzLjVjMCA3LjIgLjYgMTIgMS43IDE0LjYgMS42IDMuNCA1LjMgNi4yIDExLjEgOC4yLTMuOSA1LjYtOC43IDguNS0xNC41IDguNWwtMTU0LjggMC0uMS0uMnptLTk4LTQ0Yy0yLjctNi43LTQtMTEuNy00LTE1LS42IDEuMi0yLjQgMy43LTUuNCA3LjYtMS40IDEuOS0yLjIgMy43LTIuMiA1LjMgMCAyLjYgLjggNS43IDIuMiA5LjNsNS42IDEzLjljNSAwIDkgMCAxMS45LS4xbC04LjItMjAuOSAuMS0uMXptMTMuNS03Mi40Yy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bS0yNy42IDBjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHptODcgMjcuNWMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAweiJdfSx5THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydC1hd2Vzb21lLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjNhMyIsIk0yMDggMjM3LjRsLTIyLjIgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgNTEuN2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMjIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTUxLjdjMC0yLjEtMS42LTMuNy0zLjctMy43em0xMTguMiAwbC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43Yy0uMS0yLjEtMS43LTMuNy0zLjctMy43em0xMzItMTI1LjFjLTIuMy0zLjItNC42LTYuNC03LjEtOS41LTkuOC0xMi41LTIwLjgtMjQtMzIuOC0zNC40LTQuNS0zLjktOS4xLTcuNi0xMy45LTExLjItMS42LTEuMi0zLjItMi4zLTQuOC0zLjUtMjcuNi0xOS42LTU5LjMtMzMuNy05My42LTQwLjctMTYuMi0zLjMtMzIuOS01LTUwLTVzLTMzLjkgMS43LTUwIDVjLTM0LjMgNy4xLTY2IDIxLjItOTMuMyA0MC44LTEuNiAxLjEtMy4yIDIuMy00LjggMy41LTQuOCAzLjYtOS40IDcuMy0xMy45IDExLjItMyAyLjYtNS45IDUuMy04LjggOHMtNS43IDUuNS04LjQgOC40Yy01LjUgNS43LTEwLjcgMTEuOC0xNS42IDE4LTIuNCAzLjEtNC44IDYuMy03LjEgOS41LTI4LjkgNDAuNi00NS44IDkwLjEtNDUuOCAxNDMuNiAwIDIgLjEgNCAuMSA2IC4xIC43IC4xIDEuMyAuMSAyIC4xIDEuMyAuMSAyLjcgLjIgNCAwIC44IC4xIDEuNSAuMSAyLjMgMCAxLjMgLjEgMi41IC4yIDMuNyAuMSAuOCAuMSAxLjYgLjIgMi40IC4xIDEuMSAuMiAyLjMgLjMgMy41IDAgLjggLjEgMS42IC4yIDIuNCAuMSAxLjIgLjMgMi40IC40IDMuNiAuMSAuOCAuMiAxLjUgLjMgMi4zIC4xIDEuMyAuMyAyLjYgLjUgMy45IC4xIC42IC4yIDEuMyAuMyAxLjlsLjkgNS43Yy4xIC42IC4yIDEuMSAuMyAxLjcgLjMgMS4zIC41IDIuNyAuOCA0IC4yIC44IC4zIDEuNiAuNSAyLjQgLjIgMSAuNSAyLjEgLjcgMy4yIC4yIC45IC40IDEuNyAuNiAyLjYgLjIgMSAuNCAyIC43IDMgLjIgLjkgLjUgMS44IC43IDIuNyAuMyAxIC41IDEuOSAuOCAyLjkgLjMgLjkgLjUgMS44IC44IDIuNyAuMiAuOSAuNSAxLjkgLjggMi44cy41IDEuOCAuOCAyLjdjLjMgMSAuNiAxLjkgLjkgMi44IC42IDEuNiAxLjEgMy4zIDEuNyA0LjkgLjQgMSAuNyAxLjkgMSAyLjggLjMgMSAuNyAyIDEuMSAzIC4zIC44IC42IDEuNSAuOSAyLjNsMS4yIDNjLjMgLjcgLjYgMS41IC45IDIuMiAuNCAxIC45IDIgMS4zIDNsLjkgMi4xYy41IDEgLjkgMiAxLjQgMyAuMyAuNyAuNiAxLjMgLjkgMiAuNSAxIDEgMi4xIDEuNSAzLjEgLjIgLjYgLjUgMS4xIC44IDEuNyAuNiAxLjEgMS4xIDIuMiAxLjcgMy4zIC4xIC4yIC4yIC4zIC4zIC41IDIuMiA0LjEgNC40IDguMiA2LjggMTIuMiAuMiAuNCAuNSAuOCAuNyAxLjIgLjcgMS4xIDEuMyAyLjIgMiAzLjMgLjMgLjUgLjYgLjkgLjkgMS40IC42IDEuMSAxLjMgMi4xIDIgMy4yIC4zIC41IC42IC45IC45IDEuNCAuNyAxLjEgMS40IDIuMSAyLjEgMy4yIC4yIC40IC41IC44IC44IDEuMiAuNyAxLjEgMS41IDIuMiAyLjMgMy4zIC4yIC4yIC4zIC41IC41IC43IDM3LjUgNTEuNyA5NC40IDg4LjUgMTYwIDk5LjQgLjkgLjEgMS43IC4zIDIuNiAuNCAxIC4yIDIuMSAuNCAzLjEgLjVzMS45IC4zIDIuOCAuNGMxIC4yIDIgLjMgMyAuNCAuOSAuMSAxLjkgLjIgMi45IC4zczEuOSAuMiAyLjkgLjMgMi4xIC4yIDMuMSAuM2MuOSAuMSAxLjggLjEgMi43IC4yIDEuMSAuMSAyLjMgLjEgMy40IC4yIC44IDAgMS43IC4xIDIuNSAuMSAxLjMgMCAyLjYgLjEgMy45IC4xIC43IC4xIDEuNCAuMSAyLjEgLjEgMiAuMSA0IC4xIDYgLjFzNC0uMSA2LS4xYy43IDAgMS40LS4xIDIuMS0uMSAxLjMgMCAyLjYgMCAzLjktLjEgLjggMCAxLjctLjEgMi41LS4xIDEuMS0uMSAyLjMtLjEgMy40LS4yIC45IDAgMS44LS4xIDIuNy0uMiAxLS4xIDIuMS0uMiAzLjEtLjNzMS45LS4yIDIuOS0uM2MuOS0uMSAxLjktLjIgMi45LS4zczItLjMgMy0uNCAxLjktLjMgMi44LS40YzEtLjIgMi4xLS4zIDMuMS0uNSAuOS0uMSAxLjctLjMgMi42LS40IDY1LjYtMTEgMTIyLjUtNDcuNyAxNjAuMS0xMDIuNCAuMi0uMiAuMy0uNSAuNS0uNyAuOC0xLjEgMS41LTIuMiAyLjMtMy4zIC4yLS40IC41LS44IC44LTEuMiAuNy0xLjEgMS40LTIuMSAyLjEtMy4yIC4zLS41IC42LS45IC45LTEuNCAuNi0xLjEgMS4zLTIuMSAyLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjctMS4xIDEuMy0yLjIgMi0zLjMgLjItLjQgLjUtLjggLjctMS4yIDIuNC00IDQuNi04LjEgNi44LTEyLjIgLjEtLjIgLjItLjMgLjMtLjUgLjYtMS4xIDEuMS0yLjIgMS43LTMuMyAuMi0uNiAuNS0xLjEgLjgtMS43IC41LTEgMS0yLjEgMS41LTMuMSAuMy0uNyAuNi0xLjMgLjktMiAuNS0xIDEtMiAxLjQtM2wuOS0yLjFjLjUtMSAuOS0yIDEuMy0zIC4zLS43IC42LTEuNSAuOS0yLjJsMS4yLTNjLjMtLjggLjYtMS41IC45LTIuMyAuNC0xIC43LTIgMS4xLTNzLjctMS45IDEtMi44Yy42LTEuNiAxLjItMy4zIDEuNy00LjkgLjMtMSAuNi0xLjkgLjktMi44cy41LTEuOCAuOC0yLjdjLjItLjkgLjUtMS45IC44LTIuOHMuNi0xLjggLjgtMi43Yy4zLTEgLjUtMS45IC44LTIuOSAuMi0uOSAuNS0xLjggLjctMi43IC4yLTEgLjUtMiAuNy0zIC4yLS45IC40LTEuNyAuNi0yLjYgLjItMSAuNS0yLjEgLjctMy4yIC4yLS44IC4zLTEuNiAuNS0yLjQgLjMtMS4zIC42LTIuNyAuOC00IC4xLS42IC4yLTEuMSAuMy0xLjdsLjktNS43Yy4xLS42IC4yLTEuMyAuMy0xLjkgLjEtMS4zIC4zLTIuNiAuNS0zLjkgLjEtLjggLjItMS41IC4zLTIuMyAuMS0xLjIgLjMtMi40IC40LTMuNiAwLS44IC4xLTEuNiAuMi0yLjQgLjEtMS4xIC4yLTIuMyAuMy0zLjUgLjEtLjggLjEtMS42IC4yLTIuNCAuMSAxLjcgLjEgLjUgLjItLjcgMC0uOCAuMS0xLjUgLjEtMi4zIC4xLTEuMyAuMi0yLjcgLjItNCAuMS0uNyAuMS0xLjMgLjEtMiAuMS0yIC4xLTQgLjEtNiAwLTUzLjUtMTYuOS0xMDMtNDUuOC0xNDMuN3pNNDQ4IDM3MS41Yy05LjQgMTUuNS0yMC42IDI5LjktMzMuNiA0Mi45LTIwLjYgMjAuNi00NC41IDM2LjctNzEuMiA0OC0xMy45IDUuOC0yOC4yIDEwLjMtNDIuOSAxMy4ybDAtNzUuOGMwLTU4LjYtODguNi01OC42LTg4LjYgMGwwIDc1LjhjLTE0LjctMi45LTI5LTcuMy00Mi45LTEzLjItMjYuNy0xMS4zLTUwLjYtMjcuNC03MS4yLTQ4LTEzLTEzLTI0LjItMjcuNC0zMy42LTQyLjlsMC03MS4zYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOCAyOS42IDAgMC0xNDRjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC00LjggNi41LTMuNyA5LjUtMy43bDAtOTAuMmMtNC40LTItNy40LTYuNy03LjQtMTEuNSAwLTE2LjggMjUuNC0xNi44IDI1LjQgMCAwIDQuOC0zIDkuNC03LjQgMTEuNWwwIDMuOWM2LjMtMS40IDEyLjctMi4zIDE5LjItMi4zIDkuNCAwIDE4LjQgMy41IDI2LjMgMy41IDcuMiAwIDE1LjItMy41IDE5LjQtMy41IDIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDQ4LjRjMCA1LjYtMTguNyA2LjUtMjIuNCA2LjUtOC42IDAtMTYuNi0zLjUtMjUuNC0zLjUtNyAwLTE0LjEgMS4yLTIwLjggMi44bDAgMzAuN2MzIDAgOS41LTEuMSA5LjUgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMTQ0IDI5LjUgMCAwLTI1LjhjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA3MS4zeiJdfSx3THQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnVyb21vYmVsZXhwZXJ0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3ZiIsIk0wIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMTYwIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMzIwIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAxOTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTQ0MCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0wIDM1MmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDQ3MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDQ3MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHoiXX0sa0x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpbGliaWxpIixpY29uOls1MTIsNTEyLFtdLCJlM2Q5IiwiTTQ4OC42IDEwNC4xYzE2LjcgMTguMSAyNC40IDM5LjcgMjMuMyA2NS43bDAgMjAyLjRjLS40IDI2LjQtOS4yIDQ4LjEtMjYuNSA2NS4xLTE3LjIgMTctMzkuMSAyNS45LTY1LjUgMjYuN0w5MiA0NjRjLTI2LjQtLjgtNDguMi05LjgtNjUuMy0yNy4yLTE3LjEtMTcuNC0yNi00MC4zLTI2LjctNjguNkwwIDE2OS44Yy44LTI2IDkuNy00Ny42IDI2LjctNjUuNyAxNy4xLTE2LjMgMzguOC0yNS4zIDY1LjMtMjYuMWwyOS40IDAtMjUuNC0yNS44Yy01LjctNS43LTguNi0xMy04LjYtMjEuOHMyLjktMTYuMSA4LjYtMjEuOCAxMy04LjYgMjEuOS04LjYgMTYuMSAyLjkgMjEuOSA4LjZsNzMuMyA2OS40IDg4IDAgNzQuNS02OS40QzM4MS43IDIuOSAzODkuMiAwIDM5OCAwczE2LjEgMi45IDIxLjkgOC42YzUuNyA1LjcgOC42IDEzIDguNiAyMS44cy0yLjkgMTYuMS04LjYgMjEuOEwzOTQuNiA3OCA0MjMuOSA3OGMyNi40IC44IDQ4IDkuOCA2NC43IDI2LjF6bS0zOC44IDY5LjdjLS40LTkuNi0zLjctMTcuNC0xMC43LTIzLjUtNS4yLTYuMS0xNC05LjQtMjIuNy05LjhsLTMyMC40IDBjLTkuNiAuNC0xNy40IDMuNy0yMy42IDkuOC02LjEgNi4xLTkuNCAxMy45LTkuOCAyMy41bDAgMTk0LjRjMCA5LjIgMy4zIDE3IDkuOCAyMy41czE0LjQgOS44IDIzLjYgOS44bDMyMC40IDBjOS4yIDAgMTctMy4zIDIzLjMtOS44czkuNy0xNC4zIDEwLjEtMjMuNWwwLTE5NC40ek0xODUuNSAyMTYuNWM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMi02LjIgNi4zLTE0IDkuNS0yMy42IDkuNXMtMTcuNS0zLjItMjMuNi05LjUtOS40LTE0LTkuOC0yMy4ybDAtMzMuM2MuNC05LjEgMy44LTE2LjkgMTAuMS0yMy4yczEzLjItOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEwem0xOTEuNSAwYzYuMyA2LjMgOS43IDE0LjEgMTAuMSAyMy4ybDAgMzMuM2MtLjQgOS4yLTMuNyAxNi45LTkuOCAyMy4ycy0xNCA5LjUtMjMuNiA5LjUtMTcuNC0zLjItMjMuNi05LjVjLTctNi4zLTkuNC0xNC05LjctMjMuMmwwLTMzLjNjLjMtOS4xIDMuNy0xNi45IDEwLTIzLjJzMTQuMS05LjYgMjMuMy0xMGM5LjIgLjQgMTcgMy43IDIzLjMgMTB6Il19LFNMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZW9zIixpY29uOls0NDgsNTEyLFtdLCJmNjEyIiwiTTM4My44IDUxMmwtOTUuMSAwLTEwOC4yLTE1NC41IDAgOTEuMS04Ni40IDYzLjQtOTcuNyAwIDAtNDgyLjIgNDAuNS0yOS44IDEwOCAwIDEyMy43IDE3Ni4xIDAtMTEyLjcgODYuNC02My40IDk3LjcgMCAwIDQ2MS41LTY4LjkgNTAuNXpNNy4yIDM1LjNsMCA0NjAuNyA3Mi01Mi45IDAtMjQ5LjEgMjE1LjUgMzA3LjYgODQuOCAwIDUyLjQtMzguMi03OC4zIDAtMzE2LjEtNDUwLjUtMzAuMiAyMi4zek04OS43IDUwMS45bDgwLTU4LjggMC0xMDEtNzkuOC0xMTQuNCAwIDIyMC45LTcyLjYgNTMuMyA3Mi4zIDAgMCAwek00OSAxMC44bDMxMC42IDQ0Mi42IDgyLjQgMCAwLTQ0Mi42LTc5LjggMCAwIDMxNy42LTIyMi45LTMxNy42LTkwLjMgMHpNMjc5LjQgMTkxLjZsNzIgMTAyLjggMC0yNzguNS03MiA1MyAwIDEyMi43eiJdfSxfTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2IixpY29uOls0NDgsNTEyLFtdLCJmNmNjIiwiTTEyMC4xIDIwOC4zYy0zLjktMi45LTcuOC00LjMtMTEuNi00LjNsLTE3LjQgMCAwIDEwNC41IDE3LjQgMGMzLjkgMCA3LjgtMS40IDExLjYtNC4zczUuOC03LjMgNS44LTEzLjFsMC02OS43YzAtNS44LTItMTAuMi01LjgtMTMuMXpNNDA0LjEgMzJMNDMuOSAzMkMxOS43IDMyIC4xIDUxLjYgMCA3NS44TDAgNDM2LjJDLjEgNDYwLjQgMTkuNyA0ODAgNDMuOSA0ODBsMzYwLjIgMGMyNC4yIDAgNDMuOC0xOS42IDQzLjktNDMuOGwwLTM2MC40QzQ0Ny45IDUxLjYgNDI4LjMgMzIgNDA0LjEgMzJ6TTE1NC4yIDI5MS4yYzAgMTguOC0xMS42IDQ3LjMtNDguNCA0Ny4zbC00Ni40IDAgMC0xNjUuNSA0Ny40IDBjMzUuNCAwIDQ3LjQgMjguNSA0Ny40IDQ3LjNsMCA3MC45em0xMDAuNy04OC43bC01My4zIDAgMCAzOC40IDMyLjYgMCAwIDI5LjYtMzIuNiAwIDAgMzguNCA1My4zIDAgMCAyOS42LTYyLjIgMGMtMTEuMiAuMy0yMC40LTguNS0yMC43LTE5LjdsMC0xMjUuMWMtLjMtMTEuMSA4LjYtMjAuNCAxOS43LTIwLjdsNjMuMiAwIDAgMjkuNXpNMzU4LjUgMzE3LjhjLTEzLjIgMzAuNy0zNi44IDI0LjYtNDcuNCAwbC0zOC41LTE0NC44IDMyLjYgMCAyOS43IDExMy43IDI5LjYtMTEzLjcgMzIuNiAwLTM4LjUgMTQ0Ljh6Il19LE1MdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3RqYXIiLGljb246WzUxMiw1MTIsW10sImYzYjEiLCJNMzYxLjggMGMwIDEzMS42LTgwLjcgMTc2LjgtMTQwLjIgMjA5LjQtLjYgLjMtMS4xIC42LTEuNiAuOS01My44IDMwLjItODguNyA0OS44LTg5LjYgMTIybC05OC4xIDBjMC0xMzEuNSA4MC43LTE3Ni43IDE0MC4yLTIwOS4zIDU0LjgtMjkuOCA5MC4zLTUwIDkwLjMtMTIzbDk5IDB6TTMwMS4zIDMwMi42YzU0LjgtMjkuOCA5MC4zLTUwIDkwLjMtMTIzbDk4IDBjMCAxMzEuNi04MC43IDE3Ni43LTE0MC4yIDIwOS40LTU0LjggMjkuOC05MC4zIDUwLTkwLjMgMTIzbC05OCAwYzAtMTMxLjYgODAuNy0xNzYuOCAxNDAuMi0yMDkuNHoiXX0sekx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRvY2h1YiIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5NCIsIk00MTMuOSAxNjBMMjcyIDE2MCAyNzIgMTkuNiA0MTMuOSAxNjB6TTMyMCAxOTJsMCAxMzBjMCA2Ni44LTM2LjUgMTAwLjEtMTEzLjMgMTAwLjFsLTk0LjcgMCAwLTMzNy4zIDk0LjcgMGMxMiAwIDIzLjEgLjggMzMuMSAyLjVsMC04NEMyMjguOSAxLjEgMjE3LjQgMCAyMDUuMiAwTDE2IDAgMTYgNTEyIDIwNS4yIDUxMkMzNDUuNyA1MTIgNDE2IDQ0Ny40IDQxNiAzMTguMWwwLTEyNi4xLTk2IDB6Il19LENMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW1lbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwYSIsIk00MDMuMiAzMkw0NC44IDMyQzIwLjEgMzIgMCA1Mi4xIDAgNzYuOEwwIDQzNS4yQzAgNDU5LjkgMjAuMSA0ODAgNDQuOCA0ODBsMzU4LjQgMGMyNC43IDAgNDQuOC0yMC4xIDQ0LjgtNDQuOGwwLTM1OC40QzQ0OCA1Mi4xIDQyNy45IDMyIDQwMy4yIDMyek0zNzcgMTgwLjhjLTEuNCAzMS41LTIzLjQgNzQuNy02NiAxMjkuNC00NCA1Ny4yLTgxLjMgODUuOC0xMTEuNyA4NS44LTE4LjkgMC0zNC44LTE3LjQtNDcuOS01Mi4zLTI1LjUtOTMuMy0zNi40LTE0OC01Ny40LTE0OC0yLjQgMC0xMC45IDUuMS0yNS40IDE1LjJMNTMuNCAxOTEuM2MzNy4zLTMyLjggNzIuOS02OS4yIDk1LjItNzEuMiAyNS4yLTIuNCA0MC43IDE0LjggNDYuNSA1MS43IDIwLjcgMTMxLjIgMjkuOSAxNTEgNjcuNiA5MS42IDEzLjUtMjEuNCAyMC44LTM3LjcgMjEuOC00OC45IDMuNS0zMy4yLTI1LjktMzAuOS00NS44LTIyLjQgMTUuOS01Mi4xIDQ2LjMtNzcuNCA5MS4yLTc2IDMzLjMgLjkgNDkgMjIuNSA0Ny4xIDY0Ljd6Il19LFRMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXhjZG4iLGljb246WzUxMiw1MTIsW10sImYxMzYiLCJNNDYxLjEgNDQyLjdsLTk3LjQgMCA1MS45LTI0Mi43YzIuMy0xMC4yIC45LTE5LjUtNC40LTI1LjctNS02LjEtMTMuNy05LjYtMjQuMi05LjZsLTQ5LjMgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtODMuNCAwLTU5LjUgMjc4LTk3LjQgMCA1OS41LTI3OC00NC42LTk1LjQgMzcyLjEgMGMzOS40IDAgNzUuMyAxNi4zIDk4LjMgNDQuOSAyMy4zIDI4LjYgMzEuOCA2Ny40IDIzLjYgMTA1LjlMNDYxLjEgNDQyLjd6Il19LFU4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZm9udC1hd2Vzb21lLXN0cm9rZSIsaWNvbjpbNDQ4LDUxMixbImZvbnQtYXdlc29tZS1hbHQiXSwiZjM1YyIsIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNTQgNThjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy44IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSwkTHQ9VThlLERMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2FwIixpY29uOls0NDgsNTEyLFtdLCJmM2YzIiwiTTY0LjQgMzkxLjhDLTE1IDMwMy42LTcuNiAxNjcuNCA4MS4xIDg3LjZzMjI0LjgtNzMgMzA0LjIgMTUuMiA3MiAyMjQuNC0xNi42IDMwNC4xYy0xOC43IDE2LjkgNjQgNDMuMSA0MiA1Mi4zLTgyLjEgMzQuMi0yNTMuOSAzNS0zNDYuMi02Ny41bDAgMHpNMjc3LjcgMTgwLjJsMzguNS00MC45Yy05LjYtOC45LTMyLTI2LjgtNzYuMi0yNy42LTUyLjMtLjktOTUuOSAyOC4zLTk2LjggODAtLjIgMTEuMyAuMyAzNi43IDI5LjQgNTQuOCAzNC41IDIxLjQgODYuNSAyMS41IDg2IDUyLjMtLjQgMjEuMy0yNi40IDI1LjgtMzguNiAyNS42LTMgMC0zMC4yLS41LTQ3LjYtMjQuNmwtNDAgNDIuNmMyOC4yIDI3IDU5IDMyLjYgODMuNSAzMyAxMC4yIC4yIDk2LjQgLjMgOTcuOC04MSAuMy0xNS44LTIuMS0zOS43LTI4LjktNTYuNi0zNC40LTIxLjYtODUtMTkuNC04NC40LTQ5LjcgLjQtMjMuMyAzMS0yNS40IDM3LjUtMjUuMyAuNCAwIDI2LjYgLjMgMzkuNiAxNy40bDAgMHoiXX0sTEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhbnRhc3ktZmxpZ2h0LWdhbWVzIixpY29uOls1MTIsNTEyLFtdLCJmNmRjIiwiTTI1NiAzMi45TDMyLjkgMjU2IDI1NiA0NzkuMSA0NzkuMSAyNTYgMjU2IDMyLjl6TTg4LjMgMjU1LjhjMi0yIDExLjktMTIuMyA5Ni41LTk3LjUgNDEuNC00MS44IDg2LjItNDMuOCAxMTkuOC0xOC43IDI0LjYgMTguNCA2Mi4xIDU4LjkgNjIuMSA1OSAuNyAuNyAxLjEgMi45IC42IDMuNC0xMS4zIDExLjgtMjIuNyAyMy41LTMzLjUgMzQuNy0zNC4yLTMyLjMtNDAuNS0zOC4yLTQ4LjUtNDQtMTcuOC0xMi43LTQxLjQtMTAuMS01NyA1LjEtMi4yIDIuMS0xLjggMy40IC4xIDUuNCAyLjkgMi45IDI4LjEgMjguMyAzNS4xIDM1LjgtMTEuOSAxMS42LTIzLjcgMjMtMzUuNyAzNC43LTEyLTEyLjUtMjQuNS0yNS41LTM2LjUtMzguMS0yMS40IDIxLjEtNDEuNyA0MS4xLTYxLjggNjFMODguMyAyNTUuOHpNMzIzLjIgMzU3LjRjLTM1LjUgMzUuNC03OC4xIDM4LjEtMTA3IDIwLjUtMjIuMS0xMy41LTM5LjQtMzIuMS03Mi45LTY2LjggMTItMTIuNCAyMy44LTI0LjQgMzUuNC0zNi4zIDMzIDMxLjkgMzcuMSAzNiA0NC43IDQyLjEgMTguNSAxNC43IDQyLjUgMTMuNyA1OS4zLTEuOCAzLjctMy40IDMuNy0zLjYgLjEtNy4yLTEwLjYtMTAuNy0yMS4yLTIxLjQtMzEuOC0zMi4yLTEuMy0xLjMtMy0yLjUtLjgtNC43IDEwLjgtMTAuNyAyMS41LTIxLjUgMzIuMi0zMi4zIC4zLS4zIC42LS40IDEuOS0xLjEgMTIuNCAxMi45IDI0LjkgMjUuOSAzNy4yIDM4LjggMjEtMjAuNyA0MS4yLTQwLjcgNjEuMy02MC40IDEzLjcgMTMuNCAyNy4xIDI2LjYgNDAuOSA0MC0yMC4yIDIwLjktODEuNyA4Mi43LTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NiAyNTYgNTEyIDUxMiAyNTYgMjU2IDB6TTE2IDI1NkwyNTYgMTYgNDk2IDI1NiAyNTYgNDk2IDE2IDI1NnoiXX0sRUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbnV4IixpY29uOls0NDgsNTEyLFtdLCJmMTdjIiwiTTIyMC45IDEyMy4zYzEgLjUgMS44IDEuNyAzIDEuNyAxLjEgMCAyLjgtLjQgMi45LTEuNSAuMi0xLjQtMS45LTIuMy0zLjItMi45LTEuNy0uNy0zLjktMS01LjUtLjEtLjQgLjItLjggLjctLjYgMS4xIC4zIDEuMyAyLjMgMS4xIDMuNCAxLjd6TTE5OSAxMjVjMS4yIDAgMi0xLjIgMy0xLjcgMS4xLS42IDMuMS0uNCAzLjUtMS42IC4yLS40LS4yLS45LS42LTEuMS0xLjYtLjktMy44LS42LTUuNSAuMS0xLjMgLjYtMy40IDEuNS0zLjIgMi45IC4xIDEgMS44IDEuNSAyLjggMS40ek00MjAgNDAzLjhjLTMuNi00LTUuMy0xMS42LTcuMi0xOS43LTEuOC04LjEtMy45LTE2LjgtMTAuNS0yMi40LTEuMy0xLjEtMi42LTIuMS00LTIuOS0xLjMtLjgtMi43LTEuNS00LjEtMiA5LjItMjcuMyA1LjYtNTQuNS0zLjctNzkuMS0xMS40LTMwLjEtMzEuMy01Ni40LTQ2LjUtNzQuNC0xNy4xLTIxLjUtMzMuNy00MS45LTMzLjQtNzIgLjUtNDUuOSA1LjEtMTMxLjItNzUuOC0xMzEuMy0xMDIuNC0uMi03Ni44IDEwMy40LTc3LjkgMTM1LjItMS43IDIzLjQtNi40IDQxLjgtMjIuNSA2NC43LTE4LjkgMjIuNS00NS41IDU4LjgtNTguMSA5Ni43LTYgMTcuOS04LjggMzYuMS02LjIgNTMuMy02LjUgNS44LTExLjQgMTQuNy0xNi42IDIwLjItNC4yIDQuMy0xMC4zIDUuOS0xNyA4LjNzLTE0IDYtMTguNSAxNC41Yy0yLjEgMy45LTIuOCA4LjEtMi44IDEyLjQgMCAzLjkgLjYgNy45IDEuMiAxMS44IDEuMiA4LjEgMi41IDE1LjcgLjggMjAuOC01LjIgMTQuNC01LjkgMjQuNC0yLjIgMzEuNyAzLjggNy4zIDExLjQgMTAuNSAyMC4xIDEyLjMgMTcuMyAzLjYgNDAuOCAyLjcgNTkuMyAxMi41IDE5LjggMTAuNCAzOS45IDE0LjEgNTUuOSAxMC40IDExLjYtMi42IDIxLjEtOS42IDI1LjktMjAuMiAxMi41LS4xIDI2LjMtNS40IDQ4LjMtNi42IDE0LjktMS4yIDMzLjYgNS4zIDU1LjEgNC4xIC42IDIuMyAxLjQgNC42IDIuNSA2LjdsMCAuMWM4LjMgMTYuNyAyMy44IDI0LjMgNDAuMyAyMyAxNi42LTEuMyAzNC4xLTExIDQ4LjMtMjcuOSAxMy42LTE2LjQgMzYtMjMuMiA1MC45LTMyLjIgNy40LTQuNSAxMy40LTEwLjEgMTMuOS0xOC4zIC40LTguMi00LjQtMTcuMy0xNS41LTI5Ljd6TTIyMy44IDg3LjNjOS44LTIyLjIgMzQuMi0yMS44IDQ0LS40IDYuNSAxNC4yIDMuNiAzMC45LTQuMyA0MC40LTEuNi0uOC01LjktMi42LTEyLjYtNC45IDEuMS0xLjIgMy4xLTIuNyAzLjktNC42IDQuOC0xMS44LS4yLTI3LTkuMS0yNy4zLTcuMy0uNS0xMy45IDEwLjgtMTEuOCAyMy00LjEtMi05LjQtMy41LTEzLTQuNC0xLTYuOS0uMy0xNC42IDIuOS0yMS44ek0xODMuMSA3NS44YzEwLjEgMCAyMC44IDE0LjIgMTkuMSAzMy41LTMuNSAxLTcuMSAyLjUtMTAuMiA0LjYgMS4yLTguOS0zLjMtMjAuMS05LjYtMTkuNi04LjQgLjctOS44IDIxLjItMS44IDI4LjEgMSAuOCAxLjktLjItNS45IDUuNS0xNS42LTE0LjYtMTAuNS01Mi4xIDguNC01Mi4xem0tMTMuNiA2MC43YzYuMi00LjYgMTMuNi0xMCAxNC4xLTEwLjUgNC43LTQuNCAxMy41LTE0LjIgMjcuOS0xNC4yIDcuMSAwIDE1LjYgMi4zIDI1LjkgOC45IDYuMyA0LjEgMTEuMyA0LjQgMjIuNiA5LjMgOC40IDMuNSAxMy43IDkuNyAxMC41IDE4LjItMi42IDcuMS0xMSAxNC40LTIyLjcgMTguMS0xMS4xIDMuNi0xOS44IDE2LTM4LjIgMTQuOS0zLjktLjItNy0xLTkuNi0yLjEtOC0zLjUtMTIuMi0xMC40LTIwLTE1LTguNi00LjgtMTMuMi0xMC40LTE0LjctMTUuMy0xLjQtNC45IDAtOSA0LjItMTIuM3ptMy4zIDMzNGMtMi43IDM1LjEtNDMuOSAzNC40LTc1LjMgMTgtMjkuOS0xNS44LTY4LjYtNi41LTc2LjUtMjEuOS0yLjQtNC43LTIuNC0xMi43IDIuNi0yNi40bDAtLjJjMi40LTcuNiAuNi0xNi0uNi0yMy45LTEuMi03LjgtMS44LTE1IC45LTIwIDMuNS02LjcgOC41LTkuMSAxNC44LTExLjMgMTAuMy0zLjcgMTEuOC0zLjQgMTkuNi05LjkgNS41LTUuNyA5LjUtMTIuOSAxNC4zLTE4IDUuMS01LjUgMTAtOC4xIDE3LjctNi45IDguMSAxLjIgMTUuMSA2LjggMjEuOSAxNmwxOS42IDM1LjZjOS41IDE5LjkgNDMuMSA0OC40IDQxIDY4Ljl6bS0xLjQtMjUuOWMtNC4xLTYuNi05LjYtMTMuNi0xNC40LTE5LjYgNy4xIDAgMTQuMi0yLjIgMTYuNy04LjkgMi4zLTYuMiAwLTE0LjktNy40LTI0LjktMTMuNS0xOC4yLTM4LjMtMzIuNS0zOC4zLTMyLjUtMTMuNS04LjQtMjEuMS0xOC43LTI0LjYtMjkuOXMtMy0yMy4zLS4zLTM1LjJjNS4yLTIyLjkgMTguNi00NS4yIDI3LjItNTkuMiAyLjMtMS43IC44IDMuMi04LjcgMjAuOC04LjUgMTYuMS0yNC40IDUzLjMtMi42IDgyLjQgLjYtMjAuNyA1LjUtNDEuOCAxMy44LTYxLjUgMTItMjcuNCAzNy4zLTc0LjkgMzkuMy0xMTIuNyAxLjEgLjggNC42IDMuMiA2LjIgNC4xIDQuNiAyLjcgOC4xIDYuNyAxMi42IDEwLjMgMTIuNCAxMCAyOC41IDkuMiA0Mi40IDEuMiA2LjItMy41IDExLjItNy41IDE1LjktOSA5LjktMy4xIDE3LjgtOC42IDIyLjMtMTUgNy43IDMwLjQgMjUuNyA3NC4zIDM3LjIgOTUuNyA2LjEgMTEuNCAxOC4zIDM1LjUgMjMuNiA2NC42IDMuMy0uMSA3IC40IDEwLjkgMS40IDEzLjgtMzUuNy0xMS43LTc0LjItMjMuMy04NC45LTQuNy00LjYtNC45LTYuNi0yLjYtNi41IDEyLjYgMTEuMiAyOS4yIDMzLjcgMzUuMiA1OSAyLjggMTEuNiAzLjMgMjMuNyAuNCAzNS43IDE2LjQgNi44IDM1LjkgMTcuOSAzMC43IDM0LjgtMi4yLS4xLTMuMiAwLTQuMiAwIDMuMi0xMC4xLTMuOS0xNy42LTIyLjgtMjYuMS0xOS42LTguNi0zNi04LjYtMzguMyAxMi41LTEyLjEgNC4yLTE4LjMgMTQuNy0yMS40IDI3LjMtMi44IDExLjItMy42IDI0LjctNC40IDM5LjktLjUgNy43LTMuNiAxOC02LjggMjktMzIuMSAyMi45LTc2LjcgMzIuOS0xMTQuMyA3LjJ6bTI1Ny40LTExLjVjLS45IDE2LjgtNDEuMiAxOS45LTYzLjIgNDYuNS0xMy4yIDE1LjctMjkuNCAyNC40LTQzLjYgMjUuNXMtMjYuNS00LjgtMzMuNy0xOS4zYy00LjctMTEuMS0yLjQtMjMuMSAxLjEtMzYuMyAzLjctMTQuMiA5LjItMjguOCA5LjktNDAuNiAuOC0xNS4yIDEuNy0yOC41IDQuMi0zOC43IDIuNi0xMC4zIDYuNi0xNy4yIDEzLjctMjEuMSAuMy0uMiAuNy0uMyAxLS41IC44IDEzLjIgNy4zIDI2LjYgMTguOCAyOS41IDEyLjYgMy4zIDMwLjctNy41IDM4LjQtMTYuMyA5LS4zIDE1LjctLjkgMjIuNiA1LjEgOS45IDguNSA3LjEgMzAuMyAxNy4xIDQxLjYgMTAuNiAxMS42IDE0IDE5LjUgMTMuNyAyNC42ek0xNzMuNCAxNDguN2MyIDEuOSA0LjcgNC41IDggNy4xIDYuNiA1LjIgMTUuOCAxMC42IDI3LjMgMTAuNiAxMS42IDAgMjIuNS01LjkgMzEuOC0xMC44IDQuOS0yLjYgMTAuOS03IDE0LjgtMTAuNHM1LjktNi4zIDMuMS02LjYtMi42IDIuNi02IDUuMWMtNC40IDMuMi05LjcgNy40LTEzLjkgOS44LTcuNCA0LjItMTkuNSAxMC4yLTI5LjkgMTAuMnMtMTguNy00LjgtMjQuOS05LjdjLTMuMS0yLjUtNS43LTUtNy43LTYuOS0xLjUtMS40LTEuOS00LjYtNC4zLTQuOS0xLjQtLjEtMS44IDMuNyAxLjcgNi41eiJdfSxQTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY290dG9uLWJ1cmVhdSIsaWNvbjpbNTEyLDUxMixbXSwiZjg5ZSIsIk00NzQuMyAzMzAuNEM0NTAuNiA0MjIuMyAzODAuMSA0NzUgMjcyLjQgNDc4LjhsMC00OS4yYzAtNDggMjYuNC03NC40IDc0LjQtNzQuNCA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIgMC02MS40LTM2LjUtOTguMy05Ny40LTk5LjEtMzMtNjkuMy0xNDYuNS02NC43LTE3Ny4yIDAtNjAuOSAuOC05Ny40IDM3LjctOTcuNCA5OS4xIDAgNjIuMSAzNy4zIDk5LjQgOTkuNCA5OS40IDQ4IDAgNzQuNiAyNi4yIDc0LjYgNzQuNGwwIDQ5LjJjLTEzNC40LTUtMjExLjEtODUuMS0yMTEuMS0yMjMgMC0xNDEuOCA4MS40LTIyMy4yIDIyMy4yLTIyMy4yIDExNC44IDAgMTg5LjggNTMuMiAyMTQuNyAxNDguOGwyNS4zIDBDNDczLjkgNzEuNSAzODguMiA4IDI1OS44IDggMTA1IDggMTIgMTAxLjIgMTIgMjU1LjggMTIgNDExLjEgMTA1LjIgNTA0LjMgMjU5LjggNTA0IDM4OC4xIDUwNCA0NzMuNyA0NDAuMiA0OTkuNSAzMzAuNGwtMjUuMiAwek0zNTcgMTgyLjNjNDEuNCAzLjQgNjQuMiAyOSA2NC4yIDczLjcgMCA0OC0yNi40IDc0LjQtNzQuNCA3NC40LTI4LjYgMC00OS4zLTkuNi02MS42LTI3LjMgODMuMS0xNi41IDc1LjYtOTkuNyA3MS44LTEyMC43em0tODEuNyA5Ny40Yy0yLjUtMTAuMy0xNi4zLTg3IDU2LjItOTcgMi4zIDEwLjEgMTYuNSA4Ny4xLTU2LjMgOTdsMCAwek0yNjAgMTMyYzI4LjYgMCA0OSA5LjcgNjEuNCAyNy42LTI4LjQgNS41LTQ5LjQgMjAuNi02MS42IDQzLjQtMTIuMi0yMi45LTMzLjItMzgtNjEuNi00My40IDEyLjQtMTcuNyAzMy4zLTI3LjQgNjEuNi0yNy40bC4yLS4zem0tNzEuNSA1MC43YzczLjIgMTAuNiA1OC45IDg2LjggNTYuNSA5Ny03Mi40LTkuOC01OS04Ny01Ni4yLTk3bC0uMiAwek0xNzMuMiAzMzAuNGMtNDggMC03NC40LTI2LjQtNzQuNC03NC40IDAtNDQuNCAyMi45LTcwIDY0LjItNzMuNy02LjggMzcuMi0xLjQgMTA2LjUgNzEuNiAxMjAuNy0xMi4xIDE3LjYtMzIuOCAyNy4zLTYxLjEgMjcuM2wtLjMgMHptNTMuMiAxMi40YzE0LjMtNy42IDI2LTE5LjMgMzMuNi0zMy41IDcuOCAxNC41IDE5LjMgMjUuNSAzMy44IDMzLjUtMTQuNCA3LjYtMjYuMSAxOS40LTMzLjYgMzMuOC04LTE0LjUtMTkuMS0yNi4yLTMzLjYtMzMuOGwtLjMgMHoiXX0sSUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS13YWxsZXQiLGljb246WzQ0OCw1MTIsW10sImYxZWUiLCJNMTU2LjggMTI2LjhjMzcuNiA2MC42IDY0LjIgMTEzLjEgODQuMyAxNjIuNS04LjMgMzMuOC0xOC44IDY2LjUtMzEuMyA5OC4zLTEzLjItNTIuMy0yNi41LTEwMS4zLTU2LTE0OC41IDYuNS0zNi40IDIuMy03My42IDMtMTEyLjN6TTEwOS4zIDIwMGwtOTMuMiAwYy02LjUgMC0xMC41IDcuNS02LjUgMTIuNyA0Mi4yIDU0LjMgNzEuNyAxMTcuOCA5MS43IDE4Ny4zbDEwMy41IDBjLTE2LjItNjkuNy0zOC43LTEzMy43LTgyLjUtMTkzLjUtMy00LTgtNi41LTEzLTYuNXptNDcuOC04OGM2OC41IDEwOCAxMzAgMjM0LjUgMTM4LjIgMzY4TDQwOSA0ODBjLTEyLTEzOC02OC40LTI2NS0xNDMuMi0zNjhsLTEwOC43IDB6TTQwOC45IDQzLjVjLTEuOC02LjgtOC4yLTExLjUtMTUuMi0xMS41bC04OC4zIDBjLTUuMyAwLTkgNS03LjggMTAuMyAxMy4yIDQ2LjUgMjIuMyA5NS41IDI2LjUgMTQ2IDQ4LjIgODYuMiA3OS43IDE3OC4zIDkwLjYgMjcwLjggMTUuOC02MC41IDI1LjMtMTMzLjUgMjUuMy0yMDMgMC03My42LTEyLjEtMTQ1LjEtMzEuMS0yMTIuNnoiXX0sQUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvdXJzcXVhcmUiLGljb246WzM4NCw1MTIsW10sImYxODAiLCJNMzMxLjEgM0w1Ny45IDNDMjAuNCAzIDggMzEuMyA4IDQ5LjFMOCA0ODIuOWMwIDIwLjMgMTIuMSAyNy43IDE4LjIgMzAuMSA2LjIgMi41IDIyLjggNC42IDMyLjktNy4xIDEyOC45LTE0OS40IDEzMS4xLTE1MS45IDEzMS4xLTE1MS45IDMuMS0zLjQgMy40LTMuMSA2LjgtMy4xbDgzLjQgMGMzNS4xIDAgNDAuNi0yNS4yIDQ0LjMtMzkuN2w0OC42LTI0M0MzODEuOCAyNS44IDM3MS4xIDMgMzMxLjEgM3pNMzE0LjggNzYuOGwtMTEuNCA1OS43Yy0xLjIgNi41LTkuNSAxMy4yLTE2LjkgMTMuMmwtMTA2LjQgMGMtMTIgMC0yMC42IDguMy0yMC42IDIwLjNsMCAxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmw5MC40IDBjOC4zIDAgMTYuNiA5LjIgMTQuOCAxOC4yLTEuOCA4LjktMTAuNSA1My44LTExLjQgNTguOC0uOSA0LjktNi44IDEzLjUtMTYuOSAxMy41bC03My41IDBjLTEzLjUgMC0xNy4yIDEuOC0yNi41IDEyLjYgMCAwLTguOSAxMS40LTg5LjUgMTA4LjMtLjkgLjktMS44IC42LTEuOC0uM2wwLTMzOC44YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmwyMTkgMGM4LjIgMCAxNS42IDcuNyAxMy41IDE3LjV6Il19LE5MdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaGlydHNpbmJ1bGsiLGljb246WzQ0OCw1MTIsW10sImYyMTQiLCJNMTAwIDQxMC4zbDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0zOS40IDE3LjVsMzAuNiAxMy40IDQuNC05LjktMzAuNi0xMy40LTQuNCA5Ljl6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40ek0xNzkuMSA0NDVsMzAuMyAxMy43IDQuNC05LjktMzAuMy0xMy40LTQuNCA5LjZ6TTYwLjQgMzkyLjhsMzAuNiAxMy40IDQuNC05LjYtMzAuNi0xMy43LTQuNCA5Ljl6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjR6bS0zOS4zIDE3LjVsNC40IDkuOSAzMC42LTEzLjctNC40LTkuNi0zMC42IDEzLjR6bTExOC40LTUyLjJsNC40IDkuNiAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjd6TTE3MCA0Ni42bC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bS00Ny4yIDBsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS00Ny4zIDBsLTMzLjIgMCAwIDEwLjUgMzMuMyAwLS4xLTEwLjV6bTE0MS41IDBsLTMzLjIgMCAwIDEwLjUgMzMuMiAwIDAtMTAuNXptOTQuNSAwbC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tOTQuNiAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTE0MS41IDBsLTMzLjMgMCAwIDEwLjUgMzMuMyAwIDAtMTAuNXpNNTIuOCAzNTEuMWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em03MC0yMTUuOWwtMzMuNiAwIDAgMTAuNSAzMy41IDAgLjEtMTAuNXptLTcwIDEwLjZsMjIuOCAwIDAtMTAuNS0zMy42IDAgMCAzMy41IDEwLjggMCAwLTIzek0yMjEuNyAzNzQuNGE5MS4zIDkxLjMgMCAxIDAgMC0xODIuNiA5MS4zIDkxLjMgMCAxIDAgMCAxODIuNnpNMTczLjUgMjYzLjNjMC0yNS40IDI5LjUtMzEuOCA0OS42LTMxLjggMTYuOSAwIDI5LjIgNS44IDQ0LjMgMTJsLTguOCAxNi45LS45IDBjLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNCAuOSAwYzYuMSAxMi4yIDIzLjYgMTQuOSAzNS45IDE0LjkgOC43IDAgMzIuNy0xLjIgMzIuNy0xNC4zIDAtMjYuMS03Ny42IDYuMy03Ny42LTM4ek01Mi44IDE3OC40bC0xMC44IDAgMCAzMy42IDEwLjggMCAwLTMzLjZ6TTM5NS4yIDM4NC42bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNNTIuOCAzMDcuOWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41ek0wIDMuN2wwIDQwNiAyMjEuNyA5OC42IDIyNi4zLTk4LjYgMC00MDYtNDQ4IDB6TTQxOC44IDM5MC44bC0xOTYuOCA4NS43LTE5Mi44LTg1LjcgMC0yNzAuMSAzODkuNyAwIDAgMjcwLjEtLjEgMHptMC0yOTkuM2wtMzg5LjYgMCAwLTU4LjYgMzg5LjcgMCAwIDU4LjYtLjEgMHpNNTIuOCAyMjEuNmwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em0wIDQzLjJsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMTcwIDEzNS4ybC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6TTM5NS4yIDI5OC4zbDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptMC00My4ybDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNMjE3IDEzNS4ybC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6TTM5NS4yIDIxMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAgMTI5LjVsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0tMTMxLTIwNi4zbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em04My43IDMzLjZsMTAuOCAwIDAtMzMuNS0zMy41IDAgMCAxMC41IDIyLjggMC0uMSAyM3ptLTM2LjQtMzMuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41eiJdfSxSTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWludGJpdCIsaWNvbjpbNTEyLDUxMixbXSwiZTYyZiIsIk03My4yIDUxMmwwLTczLjEgMjkyLjUgMCAwLTczLjIgNzMuMiAwIDAtMTQ2LjMgNzMuMSAwIDAtMjE5LjQtMjE5LjQgMCAwIDczLjEtMTQ2LjMgMCAwIDczLjItNzMuMSAwIDAgMjkyLjYtNzMuMiAwIDAgNzMuMSA3My4yIDB6bTczLjEtMjE5LjRsNzMuMiAwIDAgNzMuMS03My4yIDAgMC03My4xem03My4yLTczLjFsNzMuMSAwIDAgNzMuMS03My4yIDAgMC03My4yIC4xIC4xem03My4xIDBsMC03My4yIDczLjIgMCAwIDczLjEtNzMuMiAwIDAgLjF6TTM2NS43IDczLjFsNzMuMiAwIDAgNzMuMi03My4yIDAgMC03My4yeiJdfSxPTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToienVsaXAiLGljb246WzQ0OCw1MTIsW10sImU4NTMiLCJNNDI0IDk5YzAgMjIuNi0xMC4xIDQyLjYtMjUuNSA1NC44TDI0OS4zIDI4Ny43Yy0yLjggMi40LTYuNC0xLjUtNC40LTQuN2w1NC43LTExMC4xYzEuNS0zLjEtLjUtNi45LTMuNi02LjlMODMuOCAxNjZDNTAuOSAxNjYgMjQgMTM1LjkgMjQgOTkgMjQgNjIuMSA1MC45IDMyIDgzLjggMzJsMjgwLjQgMEMzOTcuMSAzMiA0MjQgNjIuMSA0MjQgOTl6TTgzLjggNDgwbDI4MC40IDBjMzIuOSAwIDU5LjgtMzAuMiA1OS44LTY3cy0yNi45LTY3LTU5LjgtNjdsLTIxMi4zIDBjLTMuMSAwLTUuMS0zLjgtMy42LTYuOUwyMDMuMSAyMjljMi0zLjItMS42LTcuMS00LjQtNC43TDQ5LjUgMzU4LjJDMzQuMSAzNzAuNCAyNCAzOTAuNCAyNCA0MTMgMjQgNDQ5LjggNTAuOSA0ODAgODMuOCA0ODB6Il19LEZMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGF5bGlua2VkIixpY29uOls0NDgsNTEyLFtdLCJmM2Y1IiwiTTM4Ni43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDguMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjcuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDcuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxNSA1MTAuN3M3LjQgNi44IDE3LjMtLjhMNDMwLjMgMzQ2YzQtMy4yIDQuNC04LjcgLjctMTIuMmwtNDQuMy00MS4zem01NC41LTgzLjRMMjMwLjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDcuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMgLjRsNTAuMi0zOC44LS4zLS4zIDcuNy02YzQuMi0zLjIgNC42LTguNyAuOS0xMi4ybC01Ny4xLTU0LjRjLTMuNi0zLjUtMTAtMy43LTE0LjItLjVsLS4xIC4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTEzIDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkgLjVsMTYwLjQgMTU5YzMuNyAzLjUgMTAgMy43IDE0LjEgLjVsNDUuOC0zNS44YzQuMS0zLjIgNC40LTguNyAuNy0xMi4yeiJdfSxCTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViZmxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZTY1YyIsIk02NDAgNjRsLTIwNC4yIDM5OS4yLTE5MS44IDAgODUuNS0xNjUuNS0zLjggMEMyNTUuMSAzODkuMyAxNDkuOSA0NDkuNSAwIDQ2My4yTDAgMzAwLjFzOTUuOS01LjcgMTUyLjMtNjQuOWwtMTUyLjMgMCAwLTE3MS4yIDE3MS4xIDAgMCAxNDAuOCAzLjggMCA3MC0xNDAuOCAxMjkuNCAwIDAgMTM5LjkgMy44IDAgNzIuNi0xMzkuOSAxODkuMyAweiJdfSxITHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVucmVuIixpY29uOls1MTIsNTEyLFtdLCJmMThiIiwiTTIxNCAxNjkuMUMyMTQgMjc5LjUgMTUzIDM3NC41IDY2LjQgNDE2LjUgMzAgMzczLjIgOCAzMTcuNyA4IDI1Ni42IDggMTMzLjkgOTcuMSAzMi4yIDIxNCAxMi41bDAgMTU2LjZ6TTI1NSA1MDRjLTQyLjkgMC04My4zLTExLTExOC41LTMwLjQgNTcuMi0zNi4xIDEwMy40LTkwLjcgMTE4LjUtMTU0LjYgMTUuNSA2My45IDYxLjcgMTE4LjUgMTE4LjggMTU0LjctMzUuMSAxOS4zLTc1LjUgMzAuMy0xMTguOCAzMC4zem0xOTAuNi04Ny41QzM1OSAzNzQuNSAyOTggMjc5LjYgMjk4IDE2OS4xbDAtMTU2LjZjMTE2LjkgMTkuNyAyMDYgMTIxLjQgMjA2IDI0NC4xIDAgNjEuMS0yMiAxMTYuNi01OC40IDE1OS45eiJdfSxxTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia28tZmkiLGljb246WzUxMiw1MTIsW10sImU4NTYiLCJNMjQ5LjggNzVjODkuOCAwIDExMyAxLjEgMTQ2LjMgNC40IDc4LjEgNy44IDEyMy42IDU2IDEyMy42IDEyNS4ybDAgOC45YzAgNjQuMy00Ny4xIDExNi45LTExMC44IDEyMi40LTUgMTYuNi0xMi44IDMzLjItMjMuMyA0OS45LTI0LjQgMzcuNy03My4xIDg1LjMtMTYyLjkgODUuM2wtMTcuNyAwYy03My4xIDAtMTI5LjctMzEuNi0xNjMuNS04OS4yLTI5LjktNTAuNC0zMy44LTEwNi40LTMzLjgtMTgxLjIgMC03My43IDQ0LjQtMTEzLjYgOTYuNC0xMjAuMiAzOS4zLTUgODguMS01LjUgMTQ1LjctNS41em0wIDQxLjZjLTYwLjQgMC0xMDMuNiAuNS0xMzYuMyA1LjUtNDYgNi43LTY0LjMgMzIuNy02NC4zIDc5LjJsLjIgMjUuN2MxLjIgNTcuMyA3LjEgOTcuMSAyNy41IDEzNC41IDI2LjYgNDkuMyA3NC44IDY4LjIgMTI5LjcgNjguMmwxNy4yIDBjNzIgMCAxMDctMzQuOSAxMjYuMy02NS40IDkuNC0xNS41IDE3LjctMzIuNyAyMi4yLTU0LjNsMy4zLTEzLjggMTkuOSAwYzQ0LjMgMCA4Mi42LTM2IDgyLjYtODJsMC04LjNjMC01MS41LTMyLjItNzguNy04OC4xLTg1LjMtMzEuNi0yLjgtNTAuNC0zLjktMTQwLjItMy45ek0yNjcgMTY5LjJjMzguMiAwIDY0LjggMzEuNiA2NC44IDY3IDAgMzIuNy0xOC4zIDYxLTQyLjEgODMuMS0xNSAxNS0zOS4zIDMwLjUtNTUuOSA0MC41LTQuNCAyLjgtMTAgNC40LTE2LjcgNC40LTUuNSAwLTEwLjUtMS43LTE1LjUtNC40LTE2LjYtMTAtNDEtMjUuNS01Ni41LTQwLjUtMjEuOC0yMC44LTM5LjItNDYuOS00MS4zLTc3bC0uMi02LjFjMC0zNS41IDI1LjUtNjcgNjQuMy02NyAyMi43IDAgMzguOCAxMS42IDQ5LjMgMjcuNyAxMS42LTE2LjEgMjcuMi0yNy43IDQ5LjktMjcuN3ptMTIyLjUtMy45YzI4LjMgMCA0My44IDE2LjYgNDMuOCA0My4ycy0xNS41IDQyLjctNDMuOCA0Mi43Yy04LjkgMC0xMy44LTUtMTMuOC0xMS43bDAtNjIuNmMwLTYuNyA1LTExLjYgMTMuOC0xMS42eiJdfSxqTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmV2IixpY29uOls0NDgsNTEyLFtdLCJmNWIyIiwiTTE1OC43IDI3NC45YTY1LjYgNjUuNiAwIDEgMSAxMzEuMiAwIDY1LjYgNjUuNiAwIDEgMSAtMTMxLjIgMHptMjcwLjctNS4xbC0uMSAwYy0uNy0yOS4zLTcuNy01OC4yLTIwLjUtODQuNnMtMzEuMi00OS43LTUzLjgtNjguNEwzMDkuNiAxNDNjMjIgMTQuMiA0MC4xIDMzLjggNTIuNyA1Ni44czE5LjEgNDguOCAxOS4xIDc1LjFjMCA4Ni42LTcwLjUgMTU3LjEtMTU3LjEgMTU3LjFTNjcuMiAzNjEuNSA2Ny4yIDI3NC45YzAtODEuOSA2My0xNDkuMyAxNDMtMTU2LjRsMCAzOS4xIDEwOC44LTYyLjgtMTA4LjgtNjIuOCAwIDM4LjNjLTEwNi43IDcuMi0xOTEgOTYtMTkxIDIwNC42IDAgMTExLjYgODkuMSAyMDIuMyAyMDAuMSAyMDVsMCAuMSAyMTAuMiAwIDAtMjEwLjJ6Il19LFZMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXljZG4iLGljb246WzUxMiw1MTIsW10sImYzYmEiLCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNSAuNyA2MC4zLTcgODYuNC0yMi40IDUuMSA1LjMgMTguNSAxOS41IDIwLjkgMjItMzIuMiAyMC43LTY5LjYgMzEuMS0xMDguMSAzMC4yLTQzLjMtMS4xLTg0LjYtMTYuNy0xMTcuNy00NC40IC4zLS42LTM4LjIgMzcuNS0zOC42IDM3LjkgOS41IDI5LjgtMTMuMSA2Mi40LTQ2LjMgNjIuNC0yNi44LS4xLTQ3LjUtMjEuNy00Ny41LTQ4LjUgMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6TTQxOC43IDE1Ni45YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMyAuMyAyMy44IDI1LjIgMjQuMSAyNS41IDkuNi0xLjMgMTkuMiAyIDI1LjkgOS4xIDExLjMgMTIgMTAuOSAzMC45LTEuMSA0Mi40LTEyIDExLjMtMzAuOSAxMC45LTQyLjQtMS4xLTYuNy03LTkuNC0xNi44LTcuNi0yNi4zLTI0LjktMjYuNi00NC40LTQ3LjItNDQuNC00Ny4yIDQyLjctMzQuMSA2My4zLTc5LjYgNjQuNC0xMjQuMiAuNy0yOC45LTcuMi01Ny4yLTIxLjEtODIuMmwyMi4xLTIxek0xMDQgNTMuMWM2LjcgNyA5LjQgMTYuOCA3LjYgMjYuM2w0NS45IDQ4LjFjLTQuNyAzLjgtMTMuMyAxMC40LTIyLjggMjEuMy0yNS40IDI4LjUtMzkuNiA2NC44LTQwLjcgMTAyLjktLjcgMjguOSA2LjEgNTcuMiAyMCA4Mi40TDkyIDM1NS42Yy0xOS4zLTMxLjYtMjguOS02Ny43LTI3LjgtMTA0LjcgMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xTDg2LjQgMTAzLjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40IDExLjktMTEuMiAzMC42LTEwLjkgNDIuNCAxLjJ6TTQ2NC45IDhjMjYgMCA0Ny4xIDIyLjQgNDcuMSA0OC4zUzQ5MC45IDEwNCA0NjQuOSAxMDRjLTYuMyAuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjkgMzAzLjMgNjYgMzQ0LjYgODEuNiAzNzcuNyAxMDkuNWw0MS4xLTM4LjZjLTEuNS00LjctMi4yLTkuNi0yLjItMTQuNS0uMS0yNi43IDIyLjMtNDguNCA0OC4zLTQ4LjR6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkgLjQgMTYuNCAxLjEgNzguMSA5LjggMTMzLjQgODEuMSAxMjMuOCAxNTkuMS05LjggNzguMS04MS4xIDEzMy40LTE1OS4xIDEyMy44LTc4LjEtOS44LTEzMy40LTgxLjEtMTIzLjgtMTU5LjIgOS4zLTcyLjQgNzAuMS0xMjQuNiAxNDIuNy0xMjQuOHptLTU5IDExOS40Yy42IDIyLjcgMTIuMiA0MS44IDMyLjQgNTIuMmwtMTEgNTEuNyA3My43IDAtMTEtNTEuN2MyMC4xLTEwLjkgMzIuMS0yOSAzMi40LTUyLjItLjQtMzIuOC0yNS44LTU3LjUtNTguMy01OC4zLTMyLjEgLjgtNTcuMyAyNC44LTU4LjIgNTguM3oiXX0sVUx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpcmUtYS1oZWxwZXIiLGljb246WzUxMiw1MTIsW10sImYzYjAiLCJNNDQzLjEgMEw3MS45IDBDNjcuOSAzNy4zIDM3LjQgNjcuOCAwIDcxLjdMMCA0NDMuMmMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGwzNzIuMiAwYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44bDAtMzcwLjVDNDc1LjYgNjUuOCA0NDcgMzYuNCA0NDMuMSAwem0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOGwtMTExLjIgMGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhsMC0xMDEuMmMwLTIyLjItMTIuMi0yOC4zLTI4LjYtMzIuNC04LjgtMi4yLTQtMTEuOCAxLTExLjggMzYuNSAwIDIwLjYgMiA1Ny4xIDIgMzIuNyAwIDE2LjUtMiA0OS4yLTIgMy4zIDAgOC41IDguMyAxIDEwLjgtNC45IDEuNi0yNy42IDMuNy0yNy42IDM5LjMgMCA0NS42LS4yIDU1LjggMSA2OC44IDAgMS4zIDIuMyAxMi44IDEyLjggMTIuOGwxMDkuMiAwYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjRsMCAxMDEuMmMwIDgzLjQgLjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44eiJdfSxXOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFsiaGFja2VyLW5ld3Mtc3F1YXJlIl0sImYzYWYiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTIxIDIyOS4ycy4xLS4xIC4xLS4yIC4xLS4yIC4yLS4yYzAgLjEgMCAuMy0uMSAuNGwtLjIgMHpNMjM5LjIgMzg0bC0zMS40IDAgMC0xMDIuNy03OS44LTE1My4zIDM3LjMgMGM0MS41IDc3LjcgNDguMSA5NS44IDU0LjEgMTEyIDEuNiA0LjMgMy4xIDguNSA1LjIgMTMuNiAzLjItNyA1LjEtMTEuOSA3LjEtMTcuMyA1LjktMTUuMyAxMi44LTMzLjIgNTMuNS0xMDguM2wzNC44IDAtODAuOCAxNTUuMSAwIDEwMC45eiJdfSxXTHQ9VzhlLEdMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZCIsIk0yNTUuNiA4QzExMi43IDggOCAxMjMuMSA4IDI1NiA4IDM5NC41IDEyMS42IDUwNCAyNTUuNiA1MDQgMzg1LjUgNTA0IDUwNCA0MDMuMSA1MDQgMjU2IDUwNCAxMTguMSAzOTcuNCA4IDI1NS42IDh6bS44IDQ1MC44Yy0xMTIuNSAwLTIwMy43LTkzLTIwMy43LTIwMi44IDAtMTA1LjQgODUuNS0yMDMuMyAyMDMuNy0yMDMuMyAxMTIuNiAwIDIwMi45IDg5LjUgMjAyLjggMjAzLjMgMCAxMjEuNy05OS42IDIwMi44LTIwMi44IDIwMi44ek0zMjQuNyAxODZsLTUzLjIgMCAwIDEzNy4yIDUzLjIgMGMyMS40IDAgNzAtNS4xIDcwLTY4LjYgMC02My40LTQ4LjYtNjguNi03MC02OC42em0uOCAxMDguNWwtMTkuOSAwIDAtNzkuNyAxOS40LS4xYzMuOCAwIDM1LTIuMSAzNSAzOS45IDAgMjQuNi0xMC41IDM5LjktMzQuNSAzOS45ek0yMTEuNyAxODZsLTY4LjIgMCAwIDEzNy4zIDM0LjYgMCAwLTQ0LjMgMjcgMGM1NC4xIDAgNTcuMS0zNy41IDU3LjEtNDYuNSAwLTMxLTE2LjgtNDYuNS01MC41LTQ2LjV6bS00LjkgNjcuM2wtMjkuMiAwIDAtNDEuNiAyOC4zIDBjMzAuOSAwIDI4LjggNDEuNiAuOSA0MS42eiJdfSxLTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3JjaWQiLGljb246WzUxMiw1MTIsW10sImY4ZDIiLCJNMjk0LjcgMTg4LjJsLTQ1LjkgMCAwIDE1My44IDQ3LjUgMGM2Ny42IDAgODMuMS01MS4zIDgzLjEtNzYuOSAwLTQxLjYtMjYuNS03Ni45LTg0LjctNzYuOXpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xNzUuMiAzNjguOGwtMjkuOCAwIDAtMjA3LjUgMjkuOCAwIDAgMjA3LjV6TTE2MC4zIDk4LjVhMTkuNiAxOS42IDAgMSAxIDAgMzkuMiAxOS42IDE5LjYgMCAxIDEgMC0zOS4yek0zMDAgMzY5bC04MSAwIDAtMjA3LjcgODAuNiAwYzc2LjcgMCAxMTAuNCA1NC44IDExMC40IDEwMy45IDAgNTMuMy00MS43IDEwMy45LTExMCAxMDMuOXoiXX0sRzhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvYXJkLWdhbWUtZ2VlayIsaWNvbjpbNjQwLDUxMixbImJnZyJdLCJlODU1IiwiTTE2OC44IDE2OC4zbDMwLjEtOC4yLTEyLjMgOTguOCAxNi43IDE2LjEtMzguOSA5MS4yLTExMS44IDQxLjItNTIuNi0xMzEuOCAxNy43LTE3LTEwLjUtODQuMyAxOTEuMi03MC4zLTI5LjUgNjQuM3ptMTgwLjYgMTYuNWMxMS42IDAgMTkgNy40IDE5IDE3LjlsMCAzMS41YzAgOS43LTYuMyAxOC45LTE5LjUgMjIuMSAxMy4xIDMuMSAyMC41IDEyIDIwLjUgMjEuNGwwIDMwLjljMCAxMS4xLTcuNCAxOC4xLTE5IDE4LjFsLTg5LjEgMCAwLTE0MS44IDg4IDB6TTI5OCAyOTkuOGwzMyAwYzEuNSAwIDIuMS0xIDIuMS0yLjFsMC0yNi45YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDMxLjN6bTAtNTcuM2wzMyAwYzEuNSAwIDIuMS0xLjEgMi4xLTIuM2wwLTI0LjhjMC0xLS42LTIuMy0yLjEtMi4zbC0zMyAwIDAgMjkuNHptMjA0LjEtMjcuMmwtNjUuNiAwYy0xIDAtMi4xIDEuMS0yLjEgMi4zbDAgNzYuMWMwIDEuMyAxIDIuMSAyLjEgMi4xbDI5LjcgMGMxLjUgMCAyLjMtLjggMi4zLTIuMWwwLTI0LTE5LjMgMCAxMi44LTMwIDQwLjEgMCAwIDcwLjhjMCA5LjItNy4yIDE2LjItMTYuMyAxNi4ybC03MS41IDBjLTkuMSAwLTE2LjUtNy0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41em0xMzIuNiAwbC02NS42IDBjLTEuMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS42IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4yIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTYuOS0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41eiJdfSxZTHQ9RzhlLFpMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiZWhhbmNlIixpY29uOls1NzYsNTEyLFtdLCJmMWI0IiwiTTIzMiAyMzcuMmMzMS44LTE1LjIgNDguNC0zOC4yIDQ4LjQtNzQgMC03MC42LTUyLjYtODcuOC0xMTMuMy04Ny44bC0xNjcuMSAwIDAgMzU0LjQgMTcxLjggMGM2NC40IDAgMTI0LjktMzAuOSAxMjQuOS0xMDIuOSAwLTQ0LjUtMjEuMS03Ny40LTY0LjctODkuN3pNNzcuOSAxMzUuOWw3My4xIDBjMjguMSAwIDUzLjQgNy45IDUzLjQgNDAuNSAwIDMwLjEtMTkuNyA0Mi4yLTQ3LjUgNDIuMmwtNzkgMCAwLTgyLjd6bTgzLjMgMjMzLjdsLTgzLjMgMCAwLTk3LjYgODQuOSAwYzM0LjMgMCA1NiAxNC4zIDU2IDUwLjYgMCAzNS44LTI1LjkgNDctNTcuNiA0N3pNNTE5LjcgMTI4LjlsLTE0My43IDAgMC0zNC45IDE0My43IDAgMCAzNC45ek01NzYgMzA1LjJjMC03NS45LTQ0LjQtMTM5LjItMTI0LjktMTM5LjItNzguMiAwLTEzMS4zIDU4LjgtMTMxLjMgMTM1LjggMCA3OS45IDUwLjMgMTM0LjcgMTMxLjMgMTM0LjcgNjEuMyAwIDEwMS0yNy42IDEyMC4xLTg2LjNsLTYyLjIgMGMtNi43IDIxLjktMzQuMyAzMy41LTU1LjcgMzMuNS00MS4zIDAtNjMtMjQuMi02My02NS4zbDE4NS4xIDBjLjMtNC4yIC42LTguNyAuNi0xMy4yek0zOTAuNCAyNzRjMi4zLTMzLjcgMjQuNy01NC44IDU4LjUtNTQuOCAzNS40IDAgNTMuMiAyMC44IDU2LjIgNTQuOGwtMTE0LjcgMHoiXX0sWEx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1vbmVybyIsaWNvbjpbNTEyLDUxMixbXSwiZjNkMCIsIk0zNjAgMzg0bDEwOC40IDBDNDI1IDQ1NS45IDM0Ni4xIDUwNCAyNTYgNTA0Uzg3IDQ1NS45IDQzLjYgMzg0bDEwOC40IDAgMC0xMjcuOCAxMDQgMTA0LjggMTA0LTEwNSAwIDEyOHpNOTYgMzM2bDAtMjA4IDE1OS40IDE1OS40IDE2MC42LTE1OS40IDAgMjA4IDc0LjggMGM4LjUtMjUuMSAxMy4yLTUyIDEzLjItODAgMC0xMzctMTExLTI0OC0yNDgtMjQ4UzggMTE5IDggMjU2YzAgMjggNC42IDU0LjkgMTMuMiA4MEw5NiAzMzZ6Il19LFFMdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaWdtYSIsaWNvbjpbMzg0LDUxMixbXSwiZjc5OSIsIk0xNCA5NS44QzE0IDQyLjkgNTYuOSAwIDEwOS44IDBMMjc0LjIgMGM1Mi45IDAgOTUuOCA0Mi45IDk1LjggOTUuOCAwIDMzLjUtMTcuMiA2My00My4yIDgwLjEgMjYgMTcuMSA0My4yIDQ2LjYgNDMuMiA4MC4xIDAgNTIuOS00Mi45IDk1LjgtOTUuOCA5NS44bC0yLjEgMGMtMjQuOCAwLTQ3LjQtOS40LTY0LjQtMjQuOWwwIDg4LjNjMCA1My42LTQ0IDk2LjgtOTcuNCA5Ni44LTUyLjggMC05Ni4zLTQyLjgtOTYuMy05NS44IDAtMzMuNSAxNy4yLTYzIDQzLjItODAuMS0yNi0xNy4xLTQzLjItNDYuNi00My4yLTgwLjFzMTcuMi02MyA0My4yLTgwLjFDMzEuMiAxNTguOCAxNCAxMjkuMyAxNCA5NS44em0xNjIuMyA5NS44bC02Ni41IDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40IDAgMzUuNCAyOC42IDY0LjIgNjQgNjQuNGw2Ni45IDAgMC0xMjguOHpNMjA3LjcgMjU2YzAgMzUuNiAyOC44IDY0LjQgNjQuNCA2NC40bDIuMSAwYzM1LjYgMCA2NC40LTI4LjggNjQuNC02NC40cy0yOC44LTY0LjQtNjQuNC02NC40bC0yLjEgMGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjR6bS05Ny45IDk1LjhsLS40IDBjLTM1LjQgLjItNjQgMjktNjQgNjQuNHMyOS4yIDY0LjQgNjQuOSA2NC40YzM2LjMgMCA2Ni0yOS40IDY2LTY1LjVsMC02My40LTY2LjUgMHptMC0zMjAuNGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjRzMjguOCA2NC40IDY0LjQgNjQuNGw2Ni41IDAgMC0xMjguOC02Ni41IDB6bTk3LjkgMTI4LjhsNjYuNSAwYzM1LjYgMCA2NC40LTI4LjggNjQuNC02NC40cy0yOC44LTY0LjQtNjQuNC02NC40bC02Ni41IDAgMCAxMjguOHoiXX0sRGI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW5zdGFncmFtIixpY29uOls0NDgsNTEyLFtdLCJmMTZkIiwiTTIyNC4zIDE0MWExMTUgMTE1IDAgMSAwIC0uNiAyMzAgMTE1IDExNSAwIDEgMCAuNi0yMzB6bS0uNiA0MC40YTc0LjYgNzQuNiAwIDEgMSAuNiAxNDkuMiA3NC42IDc0LjYgMCAxIDEgLS42LTE0OS4yem05My40LTQ1LjFhMjYuOCAyNi44IDAgMSAxIDUzLjYgMCAyNi44IDI2LjggMCAxIDEgLTUzLjYgMHptMTI5LjcgMjcuMmMtMS43LTM1LjktOS45LTY3LjctMzYuMi05My45LTI2LjItMjYuMi01OC0zNC40LTkzLjktMzYuMi0zNy0yLjEtMTQ3LjktMi4xLTE4NC45IDAtMzUuOCAxLjctNjcuNiA5LjktOTMuOSAzNi4xcy0zNC40IDU4LTM2LjIgOTMuOWMtMi4xIDM3LTIuMSAxNDcuOSAwIDE4NC45IDEuNyAzNS45IDkuOSA2Ny43IDM2LjIgOTMuOXM1OCAzNC40IDkzLjkgMzYuMmMzNyAyLjEgMTQ3LjkgMi4xIDE4NC45IDAgMzUuOS0xLjcgNjcuNy05LjkgOTMuOS0zNi4yIDI2LjItMjYuMiAzNC40LTU4IDM2LjItOTMuOSAyLjEtMzcgMi4xLTE0Ny44IDAtMTg0Ljh6TTM5OSAzODhjLTcuOCAxOS42LTIyLjkgMzQuNy00Mi42IDQyLjYtMjkuNSAxMS43LTk5LjUgOS0xMzIuMSA5cy0xMDIuNyAyLjYtMTMyLjEtOWMtMTkuNi03LjgtMzQuNy0yMi45LTQyLjYtNDIuNi0xMS43LTI5LjUtOS05OS41LTktMTMyLjFzLTIuNi0xMDIuNyA5LTEzMi4xYzcuOC0xOS42IDIyLjktMzQuNyA0Mi42LTQyLjYgMjkuNS0xMS43IDk5LjUtOSAxMzIuMS05czEwMi43LTIuNiAxMzIuMSA5YzE5LjYgNy44IDM0LjcgMjIuOSA0Mi42IDQyLjYgMTEuNyAyOS41IDkgOTkuNSA5IDEzMi4xczIuNyAxMDIuNy05IDEzMi4xeiJdfSxKTHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGVyYnl0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4MyIsIk0zMDUuMyAyODQuNmwtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6TTE0OS40IDEyOC43bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpNMzY2LjYgMzJMODEuNCAzMmMtMjEuNiAwLTQyLjIgOC42LTU3LjUgMjMuOVMwIDkxLjggMCAxMTMuNEwwIDM5OC42YzAgMjEuNiA4LjYgNDIuMiAyMy45IDU3LjVTNTkuOCA0ODAgODEuNCA0ODBsMjg1LjMgMGMyMS42IDAgNDIuMi04LjYgNTcuNS0yMy45UzQ0OCA0MjAuMiA0NDggMzk4LjZsMC0yODUuM2MwLTIxLjYtOC42LTQyLjItMjMuOS01Ny41UzM4OC4yIDMyIDM2Ni42IDMyem02My42IDM2Ni42YzAgMTYuOS02LjcgMzMtMTguNyA0NXMtMjguMSAxOC42LTQ1IDE4LjdsLTI4NS4zIDBjLTE2LjkgMC0zMy02LjctNDUtMTguN3MtMTguNi0yOC4xLTE4LjctNDVsMC0yODUuM2MwLTE2LjkgNi43LTMzIDE4LjctNDVzMjguMS0xOC42IDQ1LTE4LjdsMjg1LjMgMGMxNi45IDAgMzMgNi43IDQ1IDE4LjdzMTguNiAyOC4xIDE4LjcgNDVsMCAyODUuM3ptLTEyNS0yNjkuOWwtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6Il19LEs4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdmltZW8iLGljb246WzQ0OCw1MTIsWyJ2aW1lby1zcXVhcmUiXSwiZjE5NCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMzE4LjUgMzA5LjVjLTQzLjUgNTYuNS04MC4zIDg0LjgtMTEwLjQgODQuOC0xOC43IDAtMzQuNC0xNy4yLTQ3LjMtNTEuNi0zLjgtMTMuOS03LjMtMjYuOS0xMC41LTM5LTE4LjItNjguMy0yOC42LTEwNy40LTQ2LjItMTA3LjQtMi40IDAtMTAuOCA1LTI1LjEgMTUuMUw2NCAxOTJjNy02LjEgMTMuOS0xMi40IDIwLjYtMTguNSAyOS4xLTI2LjMgNTUuNi01MC4zIDczLjUtNTEuOSAyNC45LTIuNCA0MC4yIDE0LjYgNDYgNTEuMSAyMC41IDEyOS42IDI5LjYgMTQ5LjIgNjYuOCA5MC41IDEzLjQtMjEuMiAyMC42LTM3LjIgMjEuNS00OC4zIDMuNC0zMi44LTI1LjYtMzAuNi00NS4yLTIyLjIgMTUuNy01MS41IDQ1LjgtNzYuNSA5MC4xLTc1LjEgMzIuOSAxIDQ4LjQgMjIuNCA0Ni41IDY0LTEuNCAzMS4xLTIzLjIgNzMuOC02NS4zIDEyNy45eiJdfSxlRXQ9SzhlLHRFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwdXNoZWQiLGljb246WzQ0OCw1MTIsW10sImYzZTEiLCJNNDE1LjEgMTExLjlsLTk4LjUtOSAxNC0zMy40YzEwLjQtMjMuNS0xMC44LTQwLjQtMjguNy0zN0wzMC42IDc2LjljLTE1LjEgMi43LTI2IDE4LjMtMjEuNCAzNi42TDExNC4zIDQ2MS44YzYuNSAyMS4zIDM2LjcgMjQuMiA0Ny43IDdMMTk3LjMgMzg4IDQzMi41IDE1Ni43YzE2LjQtMTYuOCA0LjMtNDIuOS0xNy40LTQ0Ljh6TTMwNS43IDUzLjZjNS4xLS43IDcuNSAyLjUgNS4yIDcuNGwtMTYuOCAzOS45LTE3Ny40LTE2LjMgMTg5LTMxek0zMC44IDEwNy45Yy0zLjEtNS4xIDEtMTAgNi4xLTkuMWwyNDguNyAyMi43LTk2LjkgMjMwLjctMTU3LjktMjQ0LjN6TTE0NC4xIDQ1Ni40Yy0yLjYgNC03LjkgMy4xLTkuNC0xLjJMNTEuNiAxNzkuNyAxNzkuMyAzNzcuM2MtNyAxNS0zNS4yIDc5LjEtMzUuMiA3OS4xek00MTYuOSAxNDEuOWwtMTk4LjcgMTk1LjQgODkuNy0yMTMuNyAxMDYuNCA5LjdjNCAxLjEgNS43IDUuMyAyLjYgOC42eiJdfSxhRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4Y2xvdWQiLGljb246WzY0MCw1MTIsW10sImYyODkiLCJNMjEzIDM0Ni42bC0zMy4yIDAgMC0xNTEuNSA2LjItMjEuNi0xMC43IDAtMzguMSAxNzMuMS02MSAwLTM4LjQtMTczLjEtMTAuNSAwIDUuOSAyMS42IDAgMTUxLjUtMzMuMiAwIDAtMTgxLjYgNjUuNyAwIDM2LjYgMTczLjEgOC41IDAgMzYuNi0xNzMuMSA2NS43IDAgMCAxODEuNnptMzMxLjUtNjNsLTg2IDYyLjEgMC0zOC4xIDcyLjktNTEuOC03Mi45LTUxLjggMC0zOC4xIDg2IDYyLjMgOS4zIDAgODYuMy02Mi4zIDAgMzguMS03My4xIDUxLjggNzMuMSA1MS44IDAgMzguMS04Ni4zLTYyLjEtOS4zIDB6TTQzMC4yIDI3Mi4zbC0xODIgMCAwLTMzLjEgMTgyIDAgMCAzMy4xeiJdfSxzRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFuZGV4LWludGVybmF0aW9uYWwiLGljb246WzMyMCw1MTIsW10sImY0MTQiLCJNMTI5LjUgNTEybDAtMTY2LjEtMTExLTI5Ny45IDU1LjggMCA4MS44IDIyOS43IDk0LjEtMjc3LjcgNTEuMyAwLTEyMC43IDM0Ny44IDAgMTY0LjItNTEuMyAweiJdfSxpRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGl2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTA3ZiIsIk0yNjAuNCAyNTQuOUwxMzEuNSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zLS44IC4xLTEuMSAuMy0uNiAuNS0uOCAuOEwuMyAyNTQuOWMtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMUwxMjkuMSA0NzguOWMuMiAuMyAuNSAuNiAuOCAuOHMuNyAuMyAxLjEgLjMgLjgtLjEgMS4xLS4zIC42LS41IC44LS44TDI2MC40IDI1Ny4xYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xem0zOS4xLTI1LjdjLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOCAuMy0uNyAuMy0xLjEtLjEtLjgtLjMtMS4xTDI1OS4xIDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjUgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMMjk5LjQgMjI5LjJ6bTIxMi4zIDI1LjdMMzg0LjkgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uM2wtNjYuNiAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjgtLjMgLjctLjMgMS4xIC4xIC44IC4zIDEuMUw0NDAuNyAyNTYgMzE0LjUgNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjYgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEw1MTEuNyAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXpNMzY2IDI4NC45bC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOEwxODguOCA0NzYuN2MtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMSAuNSAuNiAuOCAuOCAuNyAuMyAxLjEgLjNsNjYuNSAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44TDM2Ny45IDI4OC4zYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xLS41LS42LS44LS44LS43LS4zLTEuMS0uM3oiXX0sckV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtemVybyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMyIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bS0uNCA2MC41Yy04MS45IDAtMTAyLjUgNzcuMy0xMDIuNSAxNDIuOFMxNzQuMSAzOTguOCAyNTYgMzk4LjggMzU4LjUgMzIxLjUgMzU4LjUgMjU2IDMzNy45IDExMy4yIDI1NiAxMTMuMnptMCA1My45YzMuMyAwIDYuNCAuNSA5LjIgMS4yIDUuOSA1LjEgOC44IDEyLjEgMy4xIDIxLjlMMjEzLjggMjkwLjRjLTEuNy0xMi43LTEuOS0yNS4xLTEuOS0zNC40IDAtMjguOCAyLTg4LjkgNDQuMS04OC45em00MC44IDQ2LjJjMi45IDE1LjQgMy4zIDMxLjQgMy4zIDQyLjcgMCAyOC45LTIgODguOS00NC4xIDg4LjktMTMuNSAwLTMyLjYtNy43LTIwLjEtMjYuNGw2MC45LTEwNS4yeiJdfSxZOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXNuYXBjaGF0IixpY29uOls0NDgsNTEyLFsic25hcGNoYXQtc3F1YXJlIl0sImYyYWQiLCJNMzg0IDMyTDY0IDMyYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN1MwIDc5IDAgOTZMMCA0MTZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNTNDcgNDgwIDY0IDQ4MGwzMjAgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN1M0NDggNDMzIDQ0OCA0MTZsMC0zMjBjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNTNDAxIDMyIDM4NCAzMnptLTMuOSAzMTkuM2wtLjEgLjFjLTIuNSAyLjgtNS40IDUuMS04LjcgNi44LTYuNSAzLjYtMTMuNCA2LjMtMjAuNiA4LjItMS40IC40LTIuNyAxLTMuOSAxLjgtMi4yIDEuOS0yLjEgNC42LTQuNCA4LjYtMS43IDMtNCA1LjUtNi44IDcuNS02LjcgNC42LTE0LjIgNC45LTIyLjIgNS4yLTcuMiAuMy0xNS40IC42LTI0LjcgMy43LTMuOCAxLjItNy44IDMuNy0xMi40IDYuNS0xMS4zIDYuOS0yNi43IDE2LjQtNTIuMyAxNi40cy00MC45LTkuNC01Mi4xLTE2LjNjLTQuNy0yLjktOC43LTUuNC0xMi41LTYuNi05LjMtMy4xLTE3LjUtMy40LTI0LjctMy43LTgtLjMtMTUuNS0uNi0yMi4yLTUuMi0yLjQtMS42LTQuNC0zLjctNi02LjEtMy4yLTQuNi0yLjktNy44LTUuMy05LjktMS4zLS44LTIuNi0xLjUtNC4xLTEuOC03LjEtMS45LTEzLjktNC42LTIwLjMtOC4xLTMuMS0xLjYtNS45LTMuOC04LjMtNi4zLTYuNi02LjgtOC4zLTE0LjgtNS43LTIxLjggMy40LTkuMyAxMS42LTEyLjEgMTkuNC0xNi4zIDE0LjgtOCAyNi4zLTE4LjEgMzQuNC0yOS45IDIuMy0zLjMgNC4zLTYuOSA2LTEwLjYgLjgtMi4yIC44LTMuMyAuMi00LjQtLjYtLjktMS4zLTEuNi0yLjItMi4yLTIuNS0xLjctNS4xLTMuNC02LjktNC41LTMuMy0yLjEtNS45LTMuOC03LjUtNS02LjMtNC40LTEwLjYtOS0xMy40LTE0LjItMS45LTMuNi0zLTcuNi0zLjMtMTEuNnMuNC04LjEgMS45LTExLjljNC4xLTEwLjkgMTQuNS0xNy43IDI3LTE3LjcgMi42IDAgNS4zIC4zIDcuOCAuOCAuNyAuMiAxLjQgLjMgMiAuNS0uMS03LjQgLjEtMTUuNCAuNy0yMy4xIDIuNC0yNy4zIDExLjktNDEuNiAyMS45LTUzIDYuNC03LjIgMTMuOS0xMy4yIDIyLjMtMTcuOSAxNS4xLTguNiAzMi4yLTEzIDUwLjktMTNzMzUuOCA0LjQgNTAuOSAxM2M4LjMgNC43IDE1LjkgMTAuOCAyMi4yIDE3LjkgMTAgMTEuNCAxOS41IDI1LjcgMjEuOSA1MyAuNiA3LjcgLjkgMTUuNCAuNyAyMy4xIC43LS4yIDEuNC0uMyAyLjEtLjUgMi42LS42IDUuMi0uOCA3LjgtLjggMTIuNSAwIDIyLjggNi44IDI3IDE3LjcgMS41IDMuOCAyLjEgNy45IDEuOSAxMS45cy0xLjQgOC0zLjMgMTEuNmMtMi43IDUuMi03LjEgOS45LTEzLjQgMTQuMi0xLjcgMS4yLTQuMyAyLjktNy41IDUtMS44IDEuMi00LjUgMi45LTcuMiA0LjctLjggLjUtMS40IDEuMi0xLjkgMi0uNSAxLS41IDIuMiAuMiA0LjIgMS43IDMuOCAzLjcgNy40IDYuMSAxMC44IDguMyAxMi4xIDIwLjIgMjIuMyAzNS41IDMwLjQgMS41IC44IDMgMS41IDQuNCAyLjMgLjcgLjMgMS42IC44IDIuNSAxLjMgNC45IDIuNyA5LjIgNiAxMS41IDEyLjIgMi41IDYuOSAxIDE0LjctNS4yIDIxLjN6bS0xNi43LTE4LjVjLTUwLjMtMjQuMy01OC4zLTYxLjktNTguNy02NC43LS40LTMuNC0uOS02IDIuOC05LjUgMy42LTMuMyAxOS41LTEzLjIgMjQtMTYuMyA3LjMtNS4xIDEwLjUtMTAuMiA4LjItMTYuNS0xLjctNC4zLTUuNy02LTEwLTYtMS4zIDAtMi43IC4yLTQgLjQtOCAxLjctMTUuOCA1LjgtMjAuNCA2LjktLjUgLjEtMS4xIC4yLTEuNyAuMi0yLjQgMC0zLjMtMS4xLTMuMS00IC42LTguOCAxLjgtMjUuOSAuNC00MS45LTEuOS0yMi05LTMyLjktMTcuNC00Mi42LTQuMS00LjYtMjMuMS0yNC43LTU5LjUtMjQuN3MtNTUuNCAyMC4xLTU5LjUgMjQuOGMtOC40IDkuNy0xNS41IDIwLjYtMTcuNCA0Mi42LTEuNCAxNi0uMSAzMy4xIC40IDQxLjkgLjIgMi44LS43IDQtMy4xIDQtLjYgMC0xLjEtLjEtMS43LS4yLTQuNS0xLjEtMTIuMy01LjEtMjAuMy02LjktMS4zLS4zLTIuNi0uNC00LS40LTQuMyAwLTguMyAxLjYtMTAgNi0yLjQgNi4zIC44IDExLjQgOC4yIDE2LjUgNC40IDMuMSAyMC40IDEzIDI0IDE2LjMgMy43IDMuNCAzLjIgNi4xIDIuOCA5LjUtLjQgMi44LTguNCA0MC40LTU4LjcgNjQuNy0yLjkgMS40LTggNC40IC45IDkuMyAxMy45IDcuNiAyMy4xIDYuOCAzMC4zIDExLjQgNi4xIDMuOSAyLjUgMTIuNCA2LjkgMTUuNCA1LjUgMy44IDIxLjYtLjMgNDIuMyA2LjYgMTcuNCA1LjcgMjguMSAyMiA1OSAyMnM0MS44LTE2LjMgNTguOS0yMmMyMC44LTYuOSAzNi45LTIuOCA0Mi4zLTYuNiA0LjQtMy4xIC44LTExLjUgNi45LTE1LjQgNy4yLTQuNiAxNi40LTMuOCAzMC4zLTExLjUgOC44LTQuOSAzLjgtNy45IC45LTkuNHoiXX0sb0V0PVk4ZSxuRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlbWVpc2xlIixpY29uOls1MTIsNTEyLFtdLCJmMmIyIiwiTTIwOCA4OC4zYzAtMTAgNi4zLTIxLjcgMTcuNy0yMS43IDExLjEgMCAxNy43IDExLjcgMTcuNyAyMS43IDAgMTAuMy02LjYgMjEuNy0xNy43IDIxLjctMTEuNCAwLTE3LjctMTEuNC0xNy43LTIxLjd6bTMwNCAxNjBjMCAzNi0xMS40IDEwMi4zLTM2LjMgMTI5LjctMjIuOSAyNC45LTg3LjQgNjEuMS0xMjAuOSA3MC42bC0xLjEgLjMgMCAzMi42YzAgMTYuMy0xMi42IDMwLjYtMjkuMSAzMC42LTEwIDAtMTkuNC01LjctMjQuNi0xNC4zLTUuNCA4LjYtMTQuOSAxNC4zLTI0LjkgMTQuM3MtMTkuNC01LjctMjQuOS0xNC4zYy01LjEgOC42LTE0LjYgMTQuMy0yNC42IDE0LjMtMTAuMyAwLTE5LjQtNS43LTI0LjktMTQuMy01LjEgOC42LTE0LjYgMTQuMy0yNC42IDE0LjMtMTguOSAwLTI5LjQtMTUuNy0yOS40LTMyLjktMTYuMyAxMi4zLTM1LjcgMTkuNC01Ni42IDE5LjQtMjIgMC00My40LTguMy02MC4zLTIyLjkgMTAuMy0uMyAyMC42LTIuMyAzMC4zLTUuNy0yMC45LTUuNy0zOS40LTE4LjktNTItMzYuMyAyMS40IDQuNiA0Ni4yIDEuNyA2Ny4xLTExLjEtMjItMjItNTYuNi01OC45LTY4LjYtODcuNC01LjctMTMuNC02LjktMzEuNC02LjktNDUuNyAwLTQ5LjcgMjAuMy0xNjAgODYuMy0xNjAgMTAuNiAwIDE4LjkgNC45IDIzLjEgMTQuOSAzLjctNS40IDcuNy0xMC41IDEyLTE1LjQgMi0yLjYgNS43LTUuNCA3LjEtOC4zIDgtMTIuNiAxMS43LTIxLjEgMjEuNy0zNCAzMi4zLTQxLjEgODEuNy02OS40IDEzNC45LTY5LjQgNiAwIDEyIC4zIDE3LjcgMS4xIDEwLjktMTEuNyAyNi0xOC4zIDQxLjctMTguMyAxNC42IDAgMjkuNyA2IDQwIDE2LjMgLjkgLjkgMS40IDIuMyAxLjQgMy40IDAgMy43LTEwLjMgMTMuNC0xMi45IDE2LjMgNC4zIDEuNCAxNS43IDYuOSAxNS43IDEyIDAgMi45LTIuOSA1LjEtNC42IDcuMSAzMS40IDI3LjcgNDkuNCA2Ny4xIDU2LjMgMTA4IDQuMy01LjEgMTAuMy04LjYgMTcuMS04LjYgMTAuNiAwIDIwLjkgNy4xIDI4LjYgMTQgMjAuOSAxOC42IDI1LjcgNTMuMSAyNS43IDc5Ljd6TTE4OCA4OS40YzAgMTguMyAxMi42IDM3LjEgMzIuMyAzNy4xczMyLjMtMTguOSAzMi4zLTM3LjFjMC0xOC0xMi42LTM2LjktMzIuMy0zNi45UzE4OCA3MS40IDE4OCA4OS40ek0yMzcuNyAxOTRjMC0xOS43IDMuNy0zOS4xIDguNi01OC4zLTUyIDc5LjUtMTMuNSAxODQuNiA2OC45IDE4NC42IDIxLjQgMCA0Mi42LTcuNyA2MC0yMCAyLTcuNCAzLjctMTQuOSAzLjctMjIuNiAwLTE0LjMtNi4zLTIxLjQtMjAuNi0yMS40LTQuNiAwLTkuMSAuOS0xMy40IDEuNy02My4zIDEyLjctMTA3LjEgMy43LTEwNy4xLTY0ek0xOTYuNiA0NDguOWMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMCA5LjctMjAgMjAuOWwwIDMyLjZjMCAxMS4xIDguNiAyMS4xIDIwIDIxLjFzMjAuMy05LjcgMjAuMy0yMS4xbDAtMzIuNnptNDkuMSAwYzAtMTEuMS04LjYtMjAuOS0yMC0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAtMTAgMjAtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy05LjcgMjAuMy0yMS4xbDAtMzIuNnptNDkuNyAwYzAtMTEuMS04LjktMjAuOS0yMC4zLTIwLjlzLTIwLjMgOS43LTIwLjMgMjAuOWwwIDMyLjZjMCAxMS4xIDguOSAyMS4xIDIwLjMgMjEuMXMyMC4zLTEwIDIwLjMtMjEuMWwwLTMyLjZ6TTQyMS43IDI4NmMtMzAuOSA1OS4xLTkwLjMgMTAyLjYtMTU4LjYgMTAyLjYtOTYuNiAwLTE2MC42LTg0LjYtMTYwLjYtMTc2LjYgMC0xNi45IDItMzMuNCA2LTQ5LjctMjAgMzMuNy0yOS43IDcyLjYtMjkuNyAxMTEuNCAwIDYwLjMgMjQuOSAxMjEuNyA3MS40IDE2MC45IDUuMS05LjcgMTQuOS0xNi4zIDI2LTE2LjMgMTAgMCAxOS40IDUuNyAyNC42IDE0LjMgNS40LTguNiAxNC42LTE0LjMgMjQuOS0xNC4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuOS0xNC4zIDI0LjktMTQuM3MxOS40IDUuNyAyNC45IDE0LjNjNS4xLTguNiAxNC42LTE0LjMgMjQuNi0xNC4zIDEwLjkgMCAyMC45IDYuNiAyNS43IDE2IDQzLjQtMzYuMyA2OC42LTkyIDcxLjQtMTQ4LjN6bTEwLjYtOTkuN2MwLTUzLjctMzQuNi0xMDUuNy05Mi42LTEwNS43LTMwLjMgMC01OC42IDE1LjEtNzguOSAzNi45LTIwIDY2LjQtMjcuNCAxMzYuNiA0MS40IDEzNi42IDI4LjggMCA5Ny40LTI4LjUgODQuMyAzNi45IDI4LjktMjYgNDUuNy02NS43IDQ1LjctMTA0LjZ6Il19LGxFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYXJ0LWxhbmciLGljb246WzUxMiw1MTIsW10sImU2OTMiLCJNMzc4LjYgNzguOWMtMi44LS4xLTUuNi0uMi04LjUtLjJsLTI2NC4xIDAgMTQzLjItNzJjNy40LTQuNCAxOC44LTYuNyAzMC40LTYuNyAxMy41IDAgMjkuNCA5LjIgMzcgMTYuOGw2MiA2MiAwIC4xek0xMDcuMyA5Ni41bDI2Mi44IDBjMTYgMCAyNS40IDEuNCAzNS40IDkuM2wxMDYuNSAxMDYuNCAwIDIwOC44LTc5LjMgLjctMzI1LjQtMzI1LjJ6TTk2LjUgMzczbDAtMjYyLjIgMzIzLjggMzIzLjggLjcgNzcuNC0yMTIuMiAwLTk4LjEtOTguMkM5OS40IDQwMi41IDk2LjUgMzk4LjUgOTYuNSAzNzN6TTc4LjcgMTA1LjNsMCAyNjcuN2MwIDMuMyAuMSA2LjMgLjIgOS4xbC02Mi02MkM2LjUgMzA5LjMgMCAyOTQuMyAwIDI3OS42IDAgMjcyLjggMy45IDI2Mi4xIDYuNyAyNTZsNzItMTUwLjd6Il19LGNFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXBsb3lkb2ciLGljb246WzUxMiw1MTIsW10sImYzOGUiLCJNMzgyLjIgMTM2bDUxLjcgMCAwIDIzOS42LTUxLjcgMCAwLTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlsMC0xMDMuOXpNMzE3LjUgMjk3LjhhMzMuMiAzMy4yIDAgMSAwIDY2LjQgMSAzMy4yIDMzLjIgMCAxIDAgLTY2LjQtMXpNMTg4LjUgMTM2bDUxLjcgMCAwIDIzOS42LTUxLjcgMCAwLTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlsMC0xMDMuOXpNMTIzLjggMjk3LjhhMzMuMiAzMy4yIDAgMSAwIDY2LjQgMSAzMy4yIDMzLjIgMCAxIDAgLTY2LjQtMXpNNDQ4IDk2YzE3LjUgMCAzMiAxNC40IDMyIDMybDAgMjU2YzAgMTcuNS0xNC40IDMyLTMyIDMyTDY0IDQxNmMtMTcuNSAwLTMyLTE0LjQtMzItMzJsMC0yNTZjMC0xNy41IDE0LjQtMzIgMzItMzJsMzg0IDB6bTAtMzJMNjQgNjRDMjguOCA2NCAwIDkyLjggMCAxMjhMMCAzODRjMCAzNS4yIDI4LjggNjQgNjQgNjRsMzg0IDBjMzUuMiAwIDY0LTI4LjggNjQtNjRsMC0yNTZjMC0zNS4yLTI4LjgtNjQtNjQtNjR6Il19LGRFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbGlwYm9hcmQiLGljb246WzQ0OCw1MTIsW10sImY0NGQiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMzU4LjQgMjExLjJsLTg5LjYgMCAwIDg5LjYtODkuNiAwIDAgODkuNi04OS42IDAgMC0yNjguOCAyNjguOCAwIDAgODkuNnoiXX0sdUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1eS1uLWxhcmdlIixpY29uOls1NzYsNTEyLFtdLCJmOGE2IiwiTTI4OC4yIDMyQzEzMy41IDMyIDggMTMyLjMgOCAyNTZTMTMzLjUgNDgwIDI4OC4yIDQ4MCA1NjguNCAzNzkuNyA1NjguNCAyNTYgNDQyLjkgMzIgMjg4LjIgMzJ6TTIwMi44IDM4OS4ybC0xMzguNSAxLjQgNzcuMi0yOTAuNyAxMzMuNCAwYzYzLjIgMCA4NC45IDI4LjYgNzggNzIuOC0uNCAyLjMtLjkgNC42LTEuNSA2LjktNS42LTEuMy0xMS40LTEuOS0xNy4yLTEuOS00Mi4zIDAtNzYuNyAzMy45LTc2LjcgNzUuNyAwIDM3LjEgMjcuMSA2OCA2Mi45IDc0LjUtMTguMiAzNy4yLTU2LjIgNjAuOS0xMTcuNyA2MS41ek0zNTguMiAyMDcuMWwzMiAwLTIyLjIgOTAuMy0zNS40IDAtMTEuMi0zNS42LTcuOCAzNS42LTM3LjggMCAyNi42LTkwLjMgMzEuMyAwIDE1IDM2LjggOS40LTM2Ljh6TTUwNC4xIDM4OS4ybC0xOTcuMSAwIDE1LjgtNjEuMmMzLjggLjYgNy42IC44IDExLjUgLjggNDIuMyAwIDc2LjctMzMuOSA3Ni43LTc1LjYgMC0zMi42LTIxLTYwLjUtNTAuNC03MS4xbDIxLjMtODIuNCA5Mi41IDAtNTMgMjA1LjQgMTAzLjkgMC0yMS4yIDg0LjF6TTIxMS45IDI2OS40bC0yNC43IDAtMTMuOCA1Ni41IDI0LjcgMGMxNi4xIDAgMzIuMS0zLjIgMzcuOS0yNi42IDUuNi0yMi4zLTgtMjkuOC0yNC4xLTI5Ljh6TTIzMy4yIDE3MGwtMjEuMyAwLTExLjcgNDcuNyAyMS40IDBjMTggMCAzNS40LTE0LjYgMzkuMi0zMC4xIDQuNi0xOC45LTkuNS0xNy42LTI3LjYtMTcuNnoiXX0scEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndhdGNobWFuLW1vbml0b3JpbmciLGljb246WzUxMiw1MTIsW10sImUwODciLCJNMjU2IDE2YTI0MCAyNDAgMCAxIDAgMCA0ODAgMjQwIDI0MCAwIDEgMCAwLTQ4MHpNMTIxLjcgNDI5LjFjLTUxLjYtNDAuMi04NC45LTEwMi44LTg0LjktMTczLjEgMC0yMS43IDMuMi00My4zIDkuNi02NC4xbDEwMi45LTE3LjktLjEgMTEtMTMuOSAycy0uMSAxMi41LS4xIDE5LjVjMCAyIC40IDQgMS4yIDUuOHMyLjEgMy40IDMuNyA0LjZsOS41IDcuNC0yNy43IDIwNC45ek0yMjcuNCAxNDUuOWw4LjUtNy42czYuOS01LjQtLjEtOS4zYy03LjItNC0zOS41LTM0LjUtMzkuNS0zNC41LTUuMy01LjUtOC4zLTcuMy0xNS41IDAgMCAwLTMyLjMgMzAuNS0zOS41IDM0LjUtNy4xIDQtLjEgOS4zLS4xIDkuM2w4LjUgNy42IDAgNC40LTczLjUtMTkuMmMzOS42LTU2LjkgMTA1LjUtOTQuMyAxODAtOTQuMyAzMS4zIDAgNjIuMiA2LjcgOTAuNiAxOS42czUzLjggMzEuOCA3NC4zIDU1LjRsLTE5My41IDM3LjcgMC0zLjZ6bTM0LjEgMzI5LjNsLTMzLjktMjUwLjkgOS41LTcuNGMxLjYtMS4yIDIuOC0yLjggMy43LTQuNnMxLjMtMy44IDEuMi01LjhjMC03LS4xLTE5LjUtLjEtMTkuNWwtMTMuOS0yLS4xLTEwLjUgMjQxLjcgMzEuNGMzLjkgMTYuNCA1LjggMzMuMyA1LjggNTAuMSAwIDExOS4xLTk1LjQgMjE2LjItMjEzLjggMjE5LjF6Il19LGhFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXBzIixpY29uOls2NDAsNTEyLFtdLCJmNDUyIiwiTTI1MS42IDE1Ny42YzAtMS45LS45LTIuOC0yLjgtMi44bC00MC45IDBjLTEuNiAwLTIuNyAxLjQtMi43IDIuOGwwIDIwMS44YzAgMS40IDEuMSAyLjggMi43IDIuOGw0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0yMDEuOHpNMTU2LjUgMTY4Yy0xNi4xLTExLjgtMzYuMy0xNy45LTYwLjMtMTgtMTguMS0uMS0zNC42IDMuNy00OS44IDExLjRsMC04MS4yYzAtMS44LS45LTIuNy0yLjgtMi43bC00MC45IDBDLjkgNzcuNSAwIDc4LjQgMCA4MC4yTDAgMzU5LjRjMCAxLjkgLjkgMi44IDIuNyAyLjhsNDEgMGMxLjkgMCAyLjgtLjkgMi44LTIuOGwwLTEzNi4xYzAtLjgtMi44LTI3IDQ1LjgtMjcgNDguNSAwIDQ1LjggMjYuMSA0NS44IDI3bDAgMTIyLjZjMCA5IDcuMyAxNi4zIDE2LjQgMTYuM2wyNy4zIDBjMS44IDAgMi43LS45IDIuNy0yLjhsMC0xMzYuMWMwLTIzLjQtOS4zLTQxLjgtMjgtNTUuM3pNNjM0LjkgMjc4LjFjLTYuOC0xNS43LTE4LjQtMjctMzQuOS0zNC4xbC01Ny42LTI1LjNjLTguNi0zLjYtOS4yLTExLjItMi42LTE2LjEgNy40LTUuNSA0NC4zLTEzLjkgODQgNi44IDEuNyAxIDQtLjMgNC0yLjRsMC00NC43YzAtMS4zLS42LTIuMS0xLjktMi42LTE3LjctNi42LTM2LjEtOS45LTU1LjEtOS45LTI2LjUgMC00NS4zIDUuOC01OC41IDE1LjQtLjUgLjQtMjguNCAyMC0yMi43IDUzLjcgMy40IDE5LjYgMTUuOCAzNC4yIDM3LjIgNDMuNkw1ODAuNCAyODZjMTEuNiA1LjEgMTUuMiAxMy4zIDEyLjIgMjEuMi0zLjcgOS4xLTEzLjIgMTMuNi0zNi41IDEzLjYtMjQuMyAwLTQ0LjctOC45LTU4LjQtMTkuMS0yLjEtMS40LTQuNCAuMi00LjQgMi4zbDAgMzQuNGMwIDEwLjQgNC45IDE3LjMgMTQuNiAyMC43IDE1LjYgNS41IDMxLjYgOC4yIDQ4LjIgOC4yIDEyLjcgMCAyNS44LTEuMiAzNi4zLTQuMyAuNy0uMyAzNi04LjkgNDUuNi00NS44IDMuNS0xMy41IDIuNC0yNi41LTMuMS0zOS4xek0zNzYuMiAxNDkuOGMtMzEuNyAwLTEwNC4yIDIwLjEtMTA0LjIgMTAzLjVsMCAxODMuNWMwIC44IC42IDIuNyAyLjcgMi43bDQwLjkgMGMxLjkgMCAyLjgtLjkgMi44LTIuN2wwLTg4LjhjMTYuNSAxMi43IDM1LjggMTkuMSA1Ny43IDE5LjEgNjAuNSAwIDEwOC43LTQ4LjUgMTA4LjctMTA4LjcgLjEtNjAuMy00OC4yLTEwOC42LTEwOC42LTEwOC42em0wIDQ2LjZhNjIuMiA2Mi4yIDAgMSAxIDAgMTI0LjMgNjIuMiA2Mi4yIDAgMSAxIDAtMTI0LjN6TTIyOC4zIDcyLjVjLTE1LjkgMC0yOC44IDEyLjktMjguOSAyOC45IDAgMTUuNiAxMi43IDI4LjkgMjguOSAyOC45czI4LjktMTMuMSAyOC45LTI4LjljMC0xNi4yLTEzLTI4LjktMjguOS0yOC45eiJdfSxmRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWR2ZXJzaWZ5IixpY29uOls2NDAsNTEyLFtdLCJmMzg1IiwiTTE2MC42IDMwNGM4LjIgNjguNSA2Ny40IDExNS41IDE0NiAxMTEuMyA1MS4yIDQzLjMgMTM2LjggNDUuOCAxODYuNC01LjYgNjkuMiAxLjEgMTE4LjUtNDQuNiAxMzEuNS05OS41IDE0LjgtNjIuNS0xOC4yLTEzMi41LTkyLjEtMTU1LjEtMzMtODguMS0xMzEuNC0xMDEuNS0xODYuNS04NS01Ny4zIDE3LjMtODQuMyA1My4yLTk5LjMgMTA5LjctNy44IDIuNy0yNi41IDguOS00NSAyNC4xIDExLjcgMCAxNS4yIDguOSAxNS4yIDE5LjVsMCAyMC40YzAgMTAuNy04LjcgMTkuNS0xOS41IDE5LjVsLTIwLjIgMGMtMTAuNyAwLTE5LjUtNi0xOS41LTE2LjdsMC02LjYtNDYuOCAwYy0zLjggMC0xMC44IDQuMy0xMC44IDExLjlsMCA0MC40YzAgNi40IDUuMyAxMS44IDExLjcgMTEuOGw0OC45IDAgMC0uMXpNMzg4IDMxMmMtMTAuNyA0Ni4zIDIxLjcgNzIuNCA1NS4zIDg2LjgtMTA3LjIgMzMuOC0xNzEuNi01MC44LTEzNS4zLTExMC44LTMzLjIgMjEuNi0zMy43IDcxLjItMjkuMiA5Mi45LTE3LjktMTIuNC01My44LTMyLjQtNTcuNC03OS44LTMtMzkuOSAyMS41LTc1LjcgNTctOTMuOSAzMC42LTE1LjggMTAzLjUtOC41IDEzMy42IDQwLjgtMTQuMS00OC01My44LTcwLjEtMTAxLjgtNzQuOCAzMC45LTMwLjcgNjQuNC01MC4zIDExNC4yLTQzLjcgNjkuOCA5LjMgMTMzLjIgODIuOCA2Ny43IDE1MC41IDM1LTE2LjMgNDguNy01NC40IDQ3LjUtNzYuOWwxMC41IDE5LjZjMTEuOCAyMiAxNS4yIDQ3LjYgOS40IDcyLTkuMiAzOS00MC42IDY4LjgtNzkuNyA3Ni41LTMyLjEgNi4zLTgzLjEtNS4xLTkxLjgtNTkuMnpNMTQwIDIwOGwtMzkuOCAwYy04LjkgMC0xNi4yLTcuMy0xNi4yLTE2LjJsMC0zOS42YzAtOC45IDcuMy0xNi4yIDE2LjItMTYuMmwzOS44IDBjOC45IDAgMTYuMiA3LjMgMTYuMiAxNi4ybDAgMzkuNmMwIDguOS03LjMgMTYuMi0xNi4yIDE2LjJ6TTIyLjEgMTY4Yy01LjYgMC0xMC4xLTQuNS0xMC4xLTEwLjFsMC0yNy44YzAtNS42IDQuNS0xMC4xIDEwLjEtMTAuMWwyNy43IDBjNS41IDAgMTAuMSA0LjUgMTAuMSAxMC4xbDAgMjcuOGMwIDUuNi00LjUgMTAuMS0xMC4xIDEwLjFsLTI3LjcgMHpNMTgwIDE0Mi43bDAtMjEuNGMwLTUuMSA0LjItOS4zIDkuMy05LjNsMjEuNCAwYzUuMSAwIDkuMyA0LjIgOS4zIDkuM2wwIDIxLjRjMCA1LjEtNC4yIDkuMy05LjMgOS4zbC0yMS40IDBjLTUuMSAwLTkuMy00LjItOS4zLTkuM3pNNjggMjM1LjVsMCAyNWMwIDYuMy01LjEgMTEuNS0xMS40IDExLjVsLTI1LjIgMGMtNi4zIDAtMTEuNC01LjItMTEuNC0xMS41bDAtMjVjMC02LjMgNS4xLTExLjUgMTEuNC0xMS41bDI1LjEgMGM2LjQgMCAxMS41IDUuMiAxMS41IDExLjV6Il19LG1FdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29kcmVhZHMiLGljb246WzQ0OCw1MTIsW10sImYzYTgiLCJNMjk5LjkgMTkxLjJjNS4xIDM3LjMtNC43IDc5LTM1LjkgMTAwLjctMjIuMyAxNS41LTUyLjggMTQuMS03MC44IDUuNy0zNy4xLTE3LjMtNDkuNS01OC42LTQ2LjgtOTcuMiA0LjMtNjAuOSA0MC45LTg3LjkgNzUuMy04Ny41IDQ2LjktLjIgNzEuOCAzMS44IDc4LjIgNzguM3pNNDQ4IDg4bDAgMzM2YzAgMzAuOS0yNS4xIDU2LTU2IDU2TDU2IDQ4MGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA4OEMwIDU3LjEgMjUuMSAzMiA1NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnpNMzMwIDMxMy4ycy0uMS0zNC0uMS0yMTcuM2wtMjkgMCAwIDQwLjNjLS44IC4zLTEuMi0uNS0xLjYtMS4yLTkuNi0yMC43LTM1LjktNDYuMy03Ni00Ni01MS45IC40LTg3LjIgMzEuMi0xMDAuNiA3Ny44LTQuMyAxNC45LTUuOCAzMC4xLTUuNSA0NS42IDEuNyA3Ny45IDQ1LjEgMTE3LjggMTEyLjQgMTE1LjIgMjguOS0xLjEgNTQuNS0xNyA2OS00NS4yIC41LTEgMS4xLTEuOSAxLjctMi45IC4yIC4xIC40IC4xIC42IC4yIC4zIDMuOCAuMiAzMC43IC4xIDM0LjUtLjIgMTQuOC0yIDI5LjUtNy4yIDQzLjUtNy44IDIxLTIyLjMgMzQuNy00NC41IDM5LjUtMTcuOCAzLjktMzUuNiAzLjgtNTMuMi0xLjItMjEuNS02LjEtMzYuNS0xOS00MS4xLTQxLjgtLjMtMS42LTEuMy0xLjMtMi4zLTEuM2wtMjYuOCAwYy44IDEwLjYgMy4yIDIwLjMgOC41IDI5LjIgMjQuMiA0MC41IDgyLjcgNDguNSAxMjguMiAzNy40IDQ5LjktMTIuMyA2Ny4zLTU0LjkgNjcuNC0xMDYuM3oiXX0sZ0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRpZGFsIixpY29uOls2NDAsNTEyLFtdLCJlN2RjIiwiTTEwNy4yIDQ4bC0xLjMgMGMtMzIuMyAzMy4xLTY1LjQgNjUuNS05OCA5OC41LTIuNiAyLjgtNi4xIDUuMS03LjkgOC42IDM1LjYgMzUuNCA3MSA3MSAxMDYuNiAxMDYuNCAzNS40LTM1LjMgNzAuNy03MC44IDEwNi4xLTEwNi4xbDAtMS4zLTczLjItNzMuMkMxMjguOCA2OS44IDExNy4zIDU5LjYgMTA3LjIgNDh6bTIxMy41IDBsLTEuMyAwYy0zNC45IDM2LjEtNzEuNSA3MS0xMDYuMyAxMDcuMiAzNS45IDM1LjEgNzEgNzEgMTA2LjcgMTA2LjMgMzQuMy0zNC4xIDY4LjQtNjguNCAxMDIuNi0xMDIuNCAxLjUtMS41IDMuMy0yLjggNC4xLTQuOC0zNC42LTMzLjgtNjguNC02OC4yLTEwMi42LTEwMi4xLTEuMy0xLjMtMi4zLTIuNi0zLjMtNC4xem0yMTMuNSAwbC0xLjMgMGMtMTcuMiAxOC0zNS4xIDM1LjMtNTIuNiA1My0xNy45IDE3LjctMzUuNCAzNS43LTUzLjUgNTMuMyAuOCAyLjMgMyAzLjYgNC42IDUuNUw1MzMuMyAyNjEuNWMzNi4xLTM0LjkgNzAuOC03MS4yIDEwNi43LTEwNi4xLS41LTIuMi0yLjYtMy41LTQtNUw1NTUuOCA3MC4yYy03LjEtNy40LTE0LjktMTQuMi0yMS41LTIyLjJ6TTMxOS42IDI2MS43Yy0zNC45IDM1LjEtNzAgNzAtMTA0LjkgMTA0LjktLjMgLjctLjcgMS43LTEgMi4zIDI0IDIzLjcgNDcuNyA0Ny41IDcxLjUgNzEuMyAxMS44IDExLjMgMjIuOCAyMy41IDM0LjkgMzQuNCA4LjQtNy40IDE2LjQtMTYuNCAyNC43LTI0LjMgMjUuNS0yNS4zIDUxLTUxIDc2LjUtNzYuMyAxLjgtMi4yIDQuMy0zLjYgNS41LTYuMy0zNS40LTM0LjktNzAuNS03MC4yLTEwNS42LTEwNS40bC0xLjUtLjd6Il19LGJFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bml0eSIsaWNvbjpbNDQ4LDUxMixbXSwiZTA0OSIsIk0yNDMuNiA5MS42bDgwLjEgNDYuOGMyLjkgMS42IDMgNi4yIDAgNy44bC05NS4yIDU1LjZjLTIuOSAxLjctNi4zIDEuNi05IDBsLTk1LjItNTUuNmMtMi45LTEuNi0zLTYuMyAwLTcuOGw4MC4xLTQ2LjggMC05MS42LTIwNC40IDExOS40IDAgMjM4LjggNzguNC00NS44IDAtOTMuNmMtLjEtMy4zIDMuOC01LjcgNi43LTMuOWw5NS4yIDU1LjZjMi45IDEuNyA0LjUgNC43IDQuNSA3LjhsMCAxMTEuMmMuMSAzLjMtMy44IDUuNy02LjcgMy45TDk4IDM0Ni44IDE5LjYgMzkyLjYgMjI0IDUxMiA0MjguNCAzOTIuNiAzNTAgMzQ2LjggMjY5LjkgMzkzLjZjLTIuOCAxLjctNi44LS41LTYuNy0zLjlsMC0xMTEuMmMwLTMuMyAxLjgtNi4zIDQuNS03LjhMMzYyLjkgMjE1YzIuOC0xLjcgNi44IC41IDYuNyAzLjlsMCA5My42IDc4LjQgNDUuOCAwLTIzOC44LTIwNC40LTExOS40IDAgOTEuNnoiXX0sdkV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlbmNlbnQtd2VpYm8iLGljb246WzMyMCw1MTIsW10sImYxZDUiLCJNNDAuNSA0OTUuOGMxLjQgMTkuOS0yNy42IDIyLjItMjkuNyAyLjktMTEuNi0xMjkuOSAzMS4xLTIzOS41IDEwMS40LTMxMy4yLTE1LjYtMzQgOS4yLTc3LjEgNTAuNi03Ny4xIDMwLjMgMCA1NS4xIDI0LjYgNTUuMSA1NS4xIDAgNDQtNDkuNSA3MC44LTg2LjkgNDUuMS02NS43IDcxLjMtMTAxLjQgMTY5LjgtOTAuNSAyODcuMnpNMTYwLjIgLjFjLTEyNS45IDAtMjA0LjMgMTM0LjItMTQ4LjMgMjQyLjMgOC43IDE3LjQgMzUuMyA0LjUgMjYuMy0xMy40LTQ2LjMtOTIuNiAyMS0xOTkuMiAxMjItMTk5LjIgNzUuNCAwIDEzNi45IDYxLjQgMTM2LjkgMTM2LjkgMCA5MC44LTg2LjkgMTUzLjktMTY3LjcgMTMzLjEtMTkuMS00LjEtMjUuNiAyNC40LTYuNiAyOS4xIDExMC43IDIzLjIgMjA0LTYwIDIwNC0xNjIuMyAwLTkxLjktNzQuNi0xNjYuNS0xNjYuNi0xNjYuNXoiXX0seEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZyZWUtY29kZS1jYW1wIixpY29uOls1NzYsNTEyLFtdLCJmMmM1IiwiTTk3LjQgOTYuMmMxMC40LTEwLjYgMTYtMTcuMSAxNi0yMS45IDAtMi44LTEuOS01LjUtMy44LTcuNC0yLjQtMS44LTUuNC0yLjgtOC40LTIuOC04LjUgMC0yMC45IDguOC0zNS44IDI1LjctNDEuNSA0Ny4zLTYyLjcgOTMuMS02MS44IDE2MC42UzIxIDM2Ny4zIDU3LjYgNDEyLjJjMTguOCAyMy42IDMzLjIgMzUuOCA0My41IDM1LjggMy4yLS4zIDYuMS0xLjYgOC40LTMuOCAxLjktMi44IDMuOC01LjYgMy44LTguNCAwLTUuNi0zLjktMTIuMi0xMy4yLTIwLjYtNDQuNS00Mi4zLTY3LjMtOTctNjcuNS0xNjUtLjItNjEuNCAyMS42LTExMi40IDY0LjgtMTU0ek0yMzkuNiA0MjAuMWMuNiAuNCAuOSAuNiAuOSAuNmwtLjktLjZ6bTkzLjggLjZsLjItLjFjLS4yIC4xLS4zIC4yLS4yIC4xem0zLjEtMTU4LjJjLTE2LjItNC4yIDUwLjQtODIuOS02OC4xLTE3Ny4yIDAgMCAxNS41IDQ5LjQtNjIuOCAxNTkuNi03NC4zIDEwNC40IDIzLjUgMTY4LjcgMzQgMTc1LjItNi43LTQuMy00Ny40LTM1LjcgOS42LTEyOC42IDExLTE4LjMgMjUuNS0zNC45IDQzLjUtNzIuMiAwIDAgMTUuOSAyMi40IDcuNiA3MS4xLTEyLjUgNzMuNiA1My44IDUyLjUgNTQuOCA1My41IDIyLjggMjYuOC0xNy43IDczLjUtMjEuNiA3Ni42IDUuNS0zLjcgMTE3LjctNzggMzMtMTg4LjEtNiA2LTEzLjggMzQuMi0zMCAzMC4xek01MTEgODkuN2MtMTQuOS0xNi45LTI3LjQtMjUuNy0zNS45LTI1LjctMyAuMS01LjkgMS4xLTguNCAyLjgtMS45IDEuOS0zLjggNC43LTMuOCA3LjQgMCA0LjggNS42IDExLjMgMTYgMjEuOSA0My4yIDQxLjYgNjUgOTIuNiA2NC44IDE1NC4xLS4yIDY4LTIzIDEyMi42LTY3LjUgMTY1LTkuMyA4LjQtMTMuMiAxNC45LTEzLjIgMjAuNiAwIDIuNyAxLjkgNS42IDMuOCA4LjQgMi4zIDIuMiA1LjIgMy42IDguNCAzLjggMTAuMyAwIDI0LjctMTIuMSA0My41LTM1LjggMzYuNi00NC45IDUzLjEtOTQuNCA1NC4xLTE2MS45UzU1Mi41IDEzNyA1MTEgODkuN3oiXX0seUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IngtdHdpdHRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxYiIsIk0zNTcuMiA0OEw0MjcuOCA0OCAyNzMuNiAyMjQuMiA0NTUgNDY0IDMxMyA0NjQgMjAxLjcgMzE4LjYgNzQuNSA0NjQgMy44IDQ2NCAxNjguNyAyNzUuNS01LjIgNDggMTQwLjQgNDggMjQwLjkgMTgwLjkgMzU3LjIgNDh6TTMzMi40IDQyMS44bDM5LjEgMC0yNTIuNC0zMzMuOC00MiAwIDI1NS4zIDMzMy44eiJdfSx3RXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RpY2tlci1tdWxlIixpY29uOls1NzYsNTEyLFtdLCJmM2Y3IiwiTTU2MS43IDE5OS42bDAgMHptLTYuMi03Ny40Yy03LjctMjIuMy01LjEtNy4yLTEzLjQtMzYuOS0xLjYtNi41LTMuNi0xNC41LTYuMi0yMC00LjQtOC43LTQuNi03LjUtNC42LTkuNSAwLTUuMyAzMC43LTQ1LjMgMTktNDYuOS01LjctLjYtMTIuMiAxMS42LTIwLjYgMTctOC42IDQuMi04IDUtMTAuMyA1LTIuNiAwLTUuNy0zLTYuMi01LTItNS43IDEuOS0yNS45LTMuNi0yNS45LTMuNiAwLTEyLjMgMjQuOC0xNyAyNS44LTUuMiAxLjMtMjcuOS0xMS40LTc1LjEgMTgtMjUuMyAxMy4yLTg2LjkgNjUuMi04NyA2NS4zLTYuNyA0LjctMjAgNC43LTM1LjUgMTYtNDQuNCAzMC4xLTEwOS42IDkuNC0xMTAuNyA5LTExMC42LTI2LjgtMTI4LTE1LjItMTU5IDExLjUtMjAuOCAxNy45LTIzLjcgMzYuNS0yNC4yIDM4LjktNC4yIDIwLjQgNS4yIDQ4LjMgNi43IDY0LjMgMS44IDE5LjMtMi43IDE3LjcgNy43IDk4LjMgLjUgMSA0LjEgMCA1LjEgMS41IDAgOC40LTMuOCAxMi4xLTQuMSAxMy0xLjUgNC41LTEuNSAxMC41IDAgMTYgMi4zIDguMiA4LjIgMzcuMiA4LjIgNDYuOSAwIDQxLjggLjQgNDQgMi42IDQ5LjQgMy45IDEwIDEyLjUgOS4xIDE3IDEyIDMuMSAzLjUtLjUgOC41IDEgMTIuNSAuNSAyIDMuNiA0IDYuMiA1IDkuMiAzLjYgMjcgLjMgMjkuOS0yLjUgMS42LTEuNSAuNS00LjUgMy4xLTUgNS4xIDAgMTAuOC0uNSAxNC40LTIuNSA1LjEtMi41IDQuMS02IDEuNS0xMC41LS40LS44LTctMTMuMy05LjgtMTYtMi4xLTItNS4xLTMtNy4yLTQuNS01LjgtNC45LTEwLjMtMTkuNC0xMC4zLTE5LjUtNC42LTE5LjQtMTAuMy00Ni4zLTQuMS02Ni44IDQuNi0xNy4yIDM5LjUtODcuNyAzOS42LTg3LjggNC4xLTYuNSAxNy0xMS41IDI3LjMtNyA2IDEuOSAxOS4zIDIyIDY1LjQgMzAuOSA0Ny45IDguNyA5Ny40LTIgMTEyLjItMiAyLjggMi0xLjkgMTMtLjUgMzguOSAwIDI2LjQtLjQgMTMuNy00LjEgMjkuOS0yLjIgOS43IDMuNCAyMy4yLTEuNSA0Ni45LTEuNCA5LjgtOS45IDMyLjctOC4yIDQzLjQgLjUgMSAxIDIgMS41IDMuNSAuNSA0LjUgMS41IDguNSA0LjYgMTAgNy4zIDMuNiAxMi0zLjUgOS44IDExLjUtLjcgMy4xLTIuNiAxMiAxLjUgMTUgNC40IDMuNyAzMC42IDMuNCAzNi41IC41IDIuNi0xLjUgMS42LTQuNSA2LjQtNy40IDEuOS0uOSAxMS4zLS40IDExLjMtNi41IC4zLTEuOC05LjItMTkuOS05LjMtMjAtMi42LTMuNS05LjItNC41LTExLjMtOC02LjktMTAuMS0xLjctNTIuNiAuNS01OS40IDMtMTEgNS42LTIyLjQgOC43LTMyLjQgMTEtNDIuNSAxMC4zLTUwLjYgMTYuNS02OC4zIC44LTEuOCA2LjQtMjMuMSAxMC4zLTI5LjkgOS4zLTE3IDIxLjctMzIuNCAzMy41LTQ3LjQgMTgtMjIuOSAzNC00Ni45IDUyLTY5LjggNi4xLTcgOC4yLTEzLjcgMTgtOCAxMC44IDUuNyAyMS42IDcgMzEuOSAxNyAxNC42IDEyLjggMTAuMiAxOC4yIDExLjggMjIuOSAxLjUgNSA3LjcgMTAuNSAxNC45IDkuNSAxMC40LTIgMTMtMi41IDEzLjQtMi41IDIuNi0uNSA1LjctNSA3LjItOCAzLjEtNS41IDcuMi05IDcuMi0xNi41IDAtNy43LS40LTIuOC0yMC42LTUyLjl6Il19LGtFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0d2l0Y2giLGljb246WzQ0OCw1MTIsW10sImYxZTgiLCJNMzU5LjQgMTAzLjVsLTM4LjYgMCAwIDEwOS43IDM4LjYgMCAwLTEwOS43ek0yNTMuMiAxMDNsLTM4LjYgMCAwIDEwOS44IDM4LjYgMCAwLTEwOS44ek04OSAwbC05Ni41IDkxLjQgMCAzMjkuMiAxMTUuOCAwIDAgOTEuNCA5Ni41LTkxLjQgNzcuMyAwIDE3My44LTE2NC42IDAtMjU2LTM2Ni45IDB6TTQxNy4zIDIzNy44bC03Ny4yIDczLjEtNzcuMiAwLTY3LjYgNjQgMC02NC04Ni45IDAgMC0yNzQuMyAzMDguOSAwIDAgMjAxLjJ6Il19LFNFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJraWNrc3RhcnRlci1rIixpY29uOls0NDgsNTEyLFtdLCJmM2JjIiwiTTM1Ni43IDI1Ni4ybDQwLjgtNDAuNWM0Mi4yLTQxLjkgNDIuMi0xMTAuMyAwLTE1Mi4xcy0xMTEtNDEuOS0xNTMuMiAwTDIyOS4zIDc4LjRDMjA5LjYgNTAuMyAxNzcuMSAzMiAxNDAuMiAzMiA4MC41IDMyIDMyIDgwLjIgMzIgMTM5LjVsMCAyMzNjMCA1OS40IDQ4LjUgMTA3LjUgMTA4LjIgMTA3LjUgMzcuMSAwIDY5LjMtMTguMyA4OS00Ni40bDE0LjkgMTQuN2M0Mi4yIDQxLjkgMTExIDQxLjkgMTUzLjIgMHM0Mi4yLTExMC4zIDAtMTUyLjFsLTQwLjgtNDAgLjEgMHoiXX0sX0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyaXRpY2FsLXJvbGUiLGljb246WzQ0OCw1MTIsW10sImY2YzkiLCJNMjI1LjggMGMuMyAuMiAyMTYuNiAxMjQuNSAyMTcuMSAxMjQuNyAzIDEuMiAzLjcgMy41IDMuNyA2LjYtLjEgODMuNC0uMSAxNjYuOSAwIDI1MC40IC4xIDEuMi0uMiAyLjQtLjggMy40cy0xLjUgMS45LTIuNiAyLjRjLTIxLjQgMTItMjA3LjkgMTE4LjMtMjE4LjkgMTI0LjZsLTMgMGMtNzkuMy00NS43LTIxOC4zLTEyNS40LTIxOC40LTEyNS41LS42LS4zLTEuMS0uNy0xLjQtMS4zcy0uNS0xLjItLjQtMS45YzAtLjkgMC0yMjUuOS0uMS0yNTMuMS0uMS0xIC4yLTIgLjctMi45czEuMy0xLjYgMi4yLTJDMjcuMiAxMTIuMSAyMTMuMiA2IDIyNC4xIDBsMS44IDB6TTIxNS40IDIwLjRsLS4yLS4yYy02NC43IDM2LjktMTI5LjUgNzMuNy0xOTQuMiAxMTAuNiAwIC4xIC4xIC4yIC4xIC40TDUyIDE0Mi45Yy03LjcgNi04LjMgNi0xMC42IDUuMS0uMSAwLTI0LjItOS4zLTI2LjgtMTBsMCAyMzAuNGMuOS0xLjQgNjQuMS0xMTAuOSA2NC4xLTExMSAxLjYtMi44IDMtMS45IDkuMS0xLjUgMS40IC4xIDEuNSAuMiAuOCAxLjQtNDEuMiA3MS4zLTM2LjQgNjMtNjcuNSAxMTYuOS0uOCAxLjQtLjYgMS4xIDEuMiAxLjFsMTg2LjUgMGMxLjQgMCAxLjctLjIgMS43LTEuNmwwLTguOWMwLTEuMyAyLjQtLjgtMTguNC0xLTcuNS0uMS0xNC4xLTMuMi0yMS40LTEyLjctNy40LTkuNy0xNC42LTE5LjQtMjEuOC0yOS4yLTIuMy0zLjEtMy40LTIuNC0xNi44LTIuNC0xLjggMC0xLjggMC0xLjggMS44IC4zIDI2LjIgLjIgMjUuMyAxIDMyLjcgLjUgNC40IDIuMiA0LjIgOS43IDQuOCAzLjEgLjMgMy45IDQuMSAuNSA0LjktMS42IC40LTMxLjYgLjUtMzMuNy0uMS0uNS0uMS0xLS41LTEuMy0uOXMtLjUtMS0uNC0xLjYgLjMtMS4xIC42LTEuNSAuOS0uNyAxLjQtLjhjMy4zLS44IDYuMiAuOCA2LjctNC40IDEuMy0xMy43IDEuMi05IDEuMS03OS40IDAtMTAuOC0uNC0xMi42LTUuNC0xMy42LTEuMi0uMi0zLjUtLjItNC43LS42LTIuOS0xLTItNC44IDEuOC00LjggMzMuNyAwIDQ2LjEtMS4xIDU2LjEgNC45IDcuNyA0LjYgMTIgMTEuNSAxMi41IDIwLjQgLjkgMTQuNi02LjUgMjIuMy0xNSAzMi42LS4yIC4xLS4zIC4zLS40IC41cy0uMSAuNC0uMSAuNiAwIC40IC4xIC42IC4yIC40IC40IC41YzIuNiAzLjIgNSA2LjYgNy43IDkuOCAyNy42IDMzLjIgMjQuMSAzMC41IDQxLjMgMzMuMSAuOSAuMSAxLS40IDEtMS4ybDAtMTFjMC0xIC4zLTEuNCAxLjQtMS4zIDcuOCAxLjIgMTUuOCAxLjEgMjMuNi0uMyAxLjEtLjEgMS41IC4yIDEuNSAxLjMgMCAuMSAuOSAyNi43IC45IDI2LjggMCAxLjUgLjcgMS42IDEuOSAxLjZsMTg2LjcgMGMtMjcuMi00Ny01NC4yLTk0LTgxLjItMTQwLjggMi4zLS43LS40IDAgNi43LTEuNCAyLS40IDIuMS0uNCAzLjEgMS40IDcuMyAxMi42IDc3LjMgMTM0IDc3LjQgMTM0LjFsMC0yMzAuNGMtMS43IC41LTEwMy4zIDM4LjctMTA1LjggMzkuNy0xLjEgLjQtMS41IC4yLTEuOS0uOS0uNi0xLjktMS4zLTMuOC0yLjEtNS42LS4zLS44LS4xLTEuMSAuNi0xLjQgLjEgMCA5NS41LTM1LjggMTAzLTM4LjgtNjUuNC0zNy42LTEzMC42LTc1LTE5Ni0xMTIuNmw4Ni44IDE1MC40LS4zIC4zYy05LjYtLjktMTAuNS0xLjYtMTEuOC0zLjktMS0xLjctNzMuNS0xMjcuNy04Mi0xNDIuMi05LjEgMTQuNy04My42IDE0Ni4yLTg1LjQgMTQ2LjMtMi45IC4yLTUuOSAuMS05LjIgLjEgMjguOC00OS44IDU3LjYtOTkuNSA4Ni4yLTE0OWwwIDB6bTUxLjkgMTI5LjljMS45LS4xIDMuNy0uNCA1LjUtLjggMS43LS4zIDIuNSAuMiAyLjYgMS45IDAgLjEgLjEgMTkuMS0uOSAyMC41cy0xLjkgMS4yLTIuNi0uMmMtNS05LjcgNi4yLTkuNy0zOS4xLTEyLS43IDAtMSAuMi0xIC45IDAgLjEgMy43IDEyMiAzLjcgMTIyLjEgMCAuOSAuNSAxLjIgMS4yIDEuNSAzIDEuMiA1LjkgMi41IDguNyA0IDcuMyA0LjMgMTEuNCAxMC44IDEyLjQgMTkuMyAxLjQgMTEuOC0yLjggMzUuOC0zMi4yIDM3LjEtMi44IC4xLTI4LjMgMS4xLTM0LjEtMjMuMy00LjctMTkuMyA4LjMtMzIuNyAxOS45LTM2LjQgLjYtLjEgMS4yLS40IDEuNS0uOXMuNS0xLjEgLjUtMS43Yy4xLTUuNiAzLTEwNy4xIDMuNy0xMjEuMyAwLTEuMS0uNi0xLjItMS40LTEuMS0zMi4zIC41LTM2LjctLjMtNDAuMiA4LjUtMi40IDYuMi00LjEgMS4zLTQgLjIgMS4xLTYgMi4yLTEyIDMuMy0xOCAuNC0yLjEgMS40LTIuNiAzLjQtMS45IDUuNiAyLjEgNi43IDEuNyAzNy4yIDEuOSAxLjcgMCAxLjgtLjEgMS44LTEuOCAuNy0yNy41IC42LTIyLjYgMS0yOS42IC4xLS42LS4xLTEuMi0uMy0xLjdzLS43LS45LTEuMy0xLjFjLTUuNi0yLjktOC44LTcuNi04LjktMTMuOS0uNC0xNC44IDE3LjctMjEuNyAyNy40LTExLjUgNi44IDcuMiA1LjggMTguOS0yLjUgMjQuMi0uOCAuNC0xLjQgMS4xLTEuOCAxLjhzLS42IDEuNi0uNCAyLjVjMCAuNi0uMS00LjMgMSAzMCAwIC45IC40IDEuMSAxLjIgMS4xIC4xIDAgMjMtLjEgMzQuNS0uNGwwLS4xek02OC4zIDE0MS43YzE5LjgtNC41IDMyLjctLjYgNTIuNSAxLjcgMi44IC4zIDMuNyAxLjIgMy42IDQtLjIgNS0xLjIgMjIuMy0xLjIgMjMuMSAwIC41LS4yIDEtLjUgMS40cy0uNyAuNy0xLjIgLjljLTQuMSAxLjctMy42LTQuNC00LTcuMy0zLjEtMjIuNC03My45LTMyLjctNzQuNiAyNS40LS4zIDIzLjkgMTcgNTMuNiA1NC4xIDUwLjkgMjcuMi0yIDE5LTIwLjIgMjQuOC0yMC41IC40LS4xIC45IDAgMS4zIC4xcy44IC40IDEuMSAuNyAuNSAuNyAuNiAxLjIgLjEgLjkgMCAxLjNjLTEuOCAxMC44LTMuNCAxOS0zLjQgMTkuMi0xLjUgOS4yLTg2LjcgMjIuMS05My40LTQyLjEtMi43LTI1LjggMTAuNC01My40IDQwLjMtNjAuMnptODAgODcuN2wtMTkuNSAwYy0uNiAwLTEuMi0uMS0xLjYtLjRzLS44LS44LTEtMS40YzIuNC0zLjggNS45IC45IDUuOS02LjEtLjEtMjUuOCAuMi0zOCAuMi00MC4xIDAtMy40LS41LTQuNi0zLjMtNC45LTctLjctMy4xLTMuNC0xLjEtMy40IDExLjgtLjEgMjIuNi0uMiAzMCAuNyA4LjggMS4xIDE2LjcgMTIuNiA3LjkgMjIuNi0yIDIuMi00IDQuNC02LjEgNi43IDEgMS4yIDYuOSA4LjggMTcuMyAxOS43IDIuNyAyLjggNi4yIDMuNSA5LjkgMy4xIC42IDAgMS4xLS4yIDEuNS0uNnMuNy0uOSAuNy0xLjVjLjMtMy40IC4zIDQuNyAuNC00MC42IDAtNS42LS4zLTYuNi0zLjItNi44LTQtLjQtNC0yLjMtLjctMy40bDE5LjEtLjFjLjMgMCA0LjUgLjUgMSAzLjQgMCAwLS4yIDAtLjIgMC0zLjYgLjMtMy45IDEtNCA0LjYtLjMgNDMuOSAuMSA0MC4yIC40IDQyLjggLjEgLjggLjMgMi4yIDUuMSAyLjEgMi41IDAgMy45IDMuNCAwIDMuNC0xMC40IC4xLTIwLjcgMC0zMS4xIC4xLTEwLjcgMC0xMy41LTYuMi0yNC4yLTIwLjgtMS42LTIuMi04LjMtMi40LTguMi0uNCAuOSAxNi41IDAgMTcuOCA0IDE3LjcgNC44LS4xIDQuNyAzLjYgLjggMy41bC4xIDB6bTI3NS0xMC4xYy0xLjIgNy4xIC4yIDEwLjQtNS4zIDEwLjMtNjEuNS0uNC00Ny44LS4yLTUwLjctLjMtMS4yLS4xLTIuNC0uNC0zLjYtLjctMi41LS42IDEuNS0xLjItLjQtNS42LTEuNC0zLjQtMi44LTYuOC00LjEtMTAuMi0uMS0uNC0uNC0uOC0uNy0xLjFzLS44LS40LTEuMy0uNGMtNC45LS4yLTkuNy0uMi0xNC42IC4xLS4zIDAtLjYgLjItLjkgLjNzLS41IC40LS43IC43Yy0xLjYgMy42LTMuMSA3LjMtNC41IDExLTEuMyAzLjIgNy45IDEuMyAxMi4yIDIuMiAzIC42IDQuNSAzLjcgLjcgMy43bC0yNi40IDBjLTIuOSAwLTMuMS0zLjItLjctMy4yIDEuMiAuMSAyLjQtLjIgMy41LS45czEuOS0xLjUgMi40LTIuNmMxLjUtMyAyLjgtNiA0LjEtOS4xIDE4LjItNDIuMSAxNy4xLTQwLjIgMTguNC00MS42IC4yLS4yIC40LS40IC43LS42cy42LS4yIC44LS4yIC42IC4xIC44IC4yIC41IC4zIC43IC42YzIuOSAzLjMgMTguNCA0NC43IDIzLjYgNTEuOSAyIDIuNyA1LjcgMiA2LjQgMiAzLjYgLjEgNC0xLjEgNC4xLTQuMyAuMS0xLjkgLjEgMS4yIC4xLTQxLjIgMC00LjUtMi40LTMuNy01LjYtNC4zLS4zIDAtMi42LS42LS4xLTMuMSAuMi0uMi0uOS0uMiAyMS43LS4yIDIuMyAwIDUuMyAyLjgtMS4yIDMuNC0uNCAwLS43IDAtMS4xIC4ycy0uNiAuMy0uOSAuNi0uNCAuNi0uNiAuOS0uMiAuNy0uMSAxLjFjLS4xIDEuNi0uMiAzOC45IC4zIDQxLjIgLjIgLjcgLjYgMS40IDEuMiAxLjhzMS4zIC43IDIuMSAuNmMxMy4zIC40IDE0LjkgLjQgMTYtMy40IDEuNy01LjggNC4xLTIuNSAzLjctLjJsMCAuMXpNMzE4LjYgMjgzLjZjLTQuMiAwLTQuNC0zLjQtLjYtMy40IDM1LjktLjIgMjguMSAuNCAzNy4yLS42IDEuNy0uMiAyLjQgLjIgMi4zIDEuOS0uMyAzLjQtLjYgNi44LTEgMTAuMi0uMiAyLjItMy4yIDIuNi0zLjQtLjItLjQtNS4zLTIuMi00LjUtMTUuNi01LjEtMS42LS4xLTEuNiAwLTEuNiAxLjVsMCAxNi4xYzAgMS43IDAgMS42IDEuNiAxLjUgMy4xLS4yIDEwLjMgLjMgMTUuNy0xLjUgLjUtLjIgMy4zLTEuOCAzLjEgMS44IDAgLjItLjggMTAuNC0xLjIgMTEuNC0uNSAxLjMtMS45IDEuNS0yLjYgLjMtMS4yLTIgMC01LjEtMy43LTUuMy0xNS40LS45LTEyLjktMi41LTEyLjkgNiAwIDEyLjMtLjggMTYuMSAzLjkgMTYuMiAxNi42IC41IDE0LjQgMCAxNi40LTUuNyAuOC0yLjQgMy41LTEuOCAzLjIgLjYtLjQgMy4yLS44IDYuNC0xLjIgOS42IDAgLjQtLjIgMi40LTQuNyAyLjQtMzcuMi0uMS0zNC41LS4yLTM1LjItLjMtMi43LS41LTIuMi0zIC4yLTMuNCAxLjEtLjIgNCAuNSA0LjItMi42IDIuNC01Ni4yLS4xLTUxLjMtMy45LTUxLjNsMCAwem0tLjQtMTA5LjVjMi41IC42IDMuMSAxLjggMyA0LjYtLjMgNS4zLS4zIDktLjYgOS43LS43IDIuMi0zLjEgMi4xLTMuMy0uMy0uNC00LjgtMy03LjgtNy42LTkuMS0yNi4zLTcuNy0zMi44IDE1LjUtMjcuMiAzMC4yIDUuOSAxNS40IDIyIDE1LjkgMjguOSAxMy44IDUuOS0xLjkgNS45LTYuNSA2LjktNy42IDEuMi0xLjMgMi4yLTEuOCAzLjEgMS4xIDAgLjEgLjYgMTEuOS02IDEyLjctMS42IC4yLTE5LjQgMy43LTMyLjctMy40LTIxLTExLjItMTYuNy0zNS41LTYuOS00NS4zIDE0LTE0LjEgMzkuOS03LjEgNDIuMy02LjVsMCAwek0yODkuOCAyODAuMWMzLjMgMCAzLjcgMyAuMiAzLjQtMi42IC4zLTUtLjQtNSA1LjUgMCAyLS4yIDI5IC40IDQxLjQgLjEgMi4zIDEuMiAzLjUgMy40IDMuNyAyMiAxLjIgMTUtMS43IDE4LjgtNi4zIDEuOC0yLjIgMi44IC44IDIuOCAxLjEgLjMgMTMuNi00IDEyLjQtNS4yIDEyLjRsLTM4LjItLjJjLTEuOS0uMi0yLjEtMy0uNC0zLjQgMi0uNSA0LjkgLjQgNS4xLTIuOCAxLTE1LjkgLjYtNDQuNiAuMy00Ny44LS4zLTMuOC0yLjgtMy4zLTUuNy0zLjctMi41LS40LTItMy4yIC4zLTMuMiAxLjQgMCAxOCAwIDIzLjEgMHptLTMxLjYtNTcuOGMuMSA0LjEgMi45IDMuNSA2IDMuNiAyLjYgLjEgMi41IDMuNC0uMSAzLjQtNi41IDAtMTMuNyAwLTIxLjYtLjEtMy44IDAtMy40LTMuNCAwLTMuNCA0LjUgMCAzLjIgMS42IDMuNC00NS41IDAtNS4xLTMuMy0zLjUtNC43LTQuMi0yLjYtMS4yLTEuNC0zLjEgLjQtMy4yIDEuMyAwIDIwLjItLjQgMjEuMiAuMnMxLjkgMS42LS40IDIuOWMtMSAuNS0zLjktLjMtNC4yIDIuNSAwIC4yLS44IDEuNi0uMSA0My44bDAgMHpNMjIxLjMgNDk2LjZjLjUgLjMgMSAuNSAxLjYgLjVzMS4xLS4yIDEuNi0uNWMxNy05LjggMTgyLTEwMy42IDE5Ny40LTExMi41LS4xLS40IDExLjMtLjItMTgxLjUtLjMtMS4yIDAtMS42IC40LTEuNSAxLjYgMCAuMSAxLjMgNDQuNSAxLjIgNTAuNC0uMSAyLjYtLjYgNS4yLTEuNCA3LjctLjYgMS44IC40LS41LTEzLjUgMzIuMi0uNyAxLjctMSAyLjItMi0uMS00LjItMTAuMy04LjMtMjAuNy0xMi42LTMxLTEuNS0zLjQtMi4yLTcuMS0yLTEwLjggLjItMi41IC44LTE2LjEgMS41LTQ4IDAtMS45IDAtMi0yLTJsLTE4MyAwYzIuNiAxLjYgMTc4LjMgMTAyLjYgMTk2IDExMi44bC4xIDB6TTEzMC40IDMwNy45YzAgMi40IC40IDIuOCAyLjggMyAxMS41IDEuMiAyMSAzLjcgMjUuNi03LjMgNi0xNC41IDIuNy0zNC40LTEyLjUtMzguOC0yLS42LTE2LTIuOC0xNS45IDEuNSAwIDggMCAxMS42IDAgNDEuNnptMTA1LjgtMTVjMCAyLjEgMS4xIDM4LjcgMS4xIDM5LjEgLjMgOS45LTI1LjYgNS44LTI1LjItMi42IC4xLTIgMS40LTM3LjQgMS4xLTM5LjQtMTQuMSA3LjQtMTQuNCA0MC4yIDYuNCA0OC44IDQgMS43IDguNCAxLjkgMTIuNSAuNnM3LjYtNCA5LjktNy43YzQuOS03LjggNi44LTI5LjUtNS40LTM5LS4xIC4xLS4yIC4xLS40IC4xbDAgMHptLTEyLjMtMTk4Yy05LjggMC05LjcgMTQuOC0uMSAxNC45czEwLjEtMTQuOSAuMS0xNC45bDAgMHpNMTQzLjcgMTk4LjZjMCAxLjggLjQgMi40IDIuMiAyLjYgMTMuNiAxLjQgMTIuNS0xMSAxMi4yLTEzLjQtMS43LTExLjItMTQuNC0xMC4yLTE0LjQtNy44IDAgNC41IDAgMTMuNyAwIDE4LjZ6TTM1NiAyMDVsLTYuMS0xNS44Yy0yLjIgNS41LTQuMiAxMC42LTYuMiAxNS44bDEyLjMgMHoiXX0sTUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0ZWFtLXN5bWJvbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmNiIsIk0yNzMuNSAxNzcuNWE2MSA2MSAwIDEgMSAxMjIgMCA2MSA2MSAwIDEgMSAtMTIyIDB6bTE3NC41IC4yYzAgNjMtNTEgMTEzLjgtMTEzLjcgMTEzLjhMMjI1IDM3MS4zYy00IDQzLTQwLjUgNzYuOC04NC41IDc2LjgtNDAuNSAwLTc0LjctMjguOC04My02N0wwIDM1OCAwIDI1MC43IDk3LjIgMjkwYzE1LjEtOS4yIDMyLjItMTMuMyA1Mi0xMS41bDcxLTEwMS43QzIyMC43IDExNC41IDI3MS43IDY0IDMzNC4yIDY0IDM5NyA2NCA0NDggMTE1IDQ0OCAxNzcuN3pNMjAzIDM2M2MwLTM0LjctMjcuOC02Mi41LTYyLjUtNjIuNS00LjUgMC05IC41LTEzLjUgMS41bDI2IDEwLjVjMjUuNSAxMC4yIDM4IDM5IDI3LjcgNjQuNS0xMC4yIDI1LjUtMzkuMiAzOC02NC43IDI3LjUtMTAuMi00LTIwLjUtOC4zLTMwLjctMTIuMiAxMC41IDE5LjcgMzEuMiAzMy4yIDU1LjIgMzMuMiAzNC43IDAgNjIuNS0yNy44IDYyLjUtNjIuNXpNNDEwLjUgMTc3LjdhNzYuNCA3Ni40IDAgMSAwIC0xNTIuOCAwIDc2LjQgNzYuNCAwIDEgMCAxNTIuOCAweiJdfSx6RXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFpbGNoaW1wIixpY29uOls0NDgsNTEyLFtdLCJmNTllIiwiTTMzMSAyNDMuNWMzLjEtLjQgNi4yLS40IDkuMyAwIDEuNy0zLjggMi0xMC40IC41LTE3LjYtMi4yLTEwLjctNS4zLTE3LjEtMTEuNS0xNi4xcy02LjUgOC43LTQuMiAxOS40YzEuMyA2IDMuNSAxMS4xIDYgMTQuM2wwIDB6TTI3Ny40IDI1MmM0LjUgMiA3LjIgMy4zIDguMyAyLjEgMS45LTEuOS0zLjUtOS40LTEyLjEtMTMuMS01LTIuMS0xMC40LTIuOC0xNS44LTIuMnMtMTAuNSAyLjctMTQuOCA1LjhjLTMgMi4yLTUuOCA1LjItNS40IDcuMSAuOSAzLjcgMTAtMi43IDIyLjYtMy41IDctLjQgMTIuOCAxLjggMTcuMyAzLjdsMCAwem0tOSA1LjFjLTkuMSAxLjQtMTUgNi41LTEzLjUgMTAuMSAuOSAuMyAxLjIgLjggNS4yLS44IDYtMi4zIDEyLjQtMi45IDE4LjctMS45IDIuOSAuMyA0LjMgLjUgNC45LS41IDEuNS0yLjItNS43LTgtMTUuNC02LjlsMCAwem01NC4yIDE3LjFjMy40LTYuOS0xMC45LTEzLjktMTQuMy03czEwLjkgMTMuOSAxNC4zIDdsMCAwem0xNS43LTIwLjVjLTcuNy0uMS04IDE1LjgtLjMgMTUuOXM4LTE1LjggLjMtMTZsMCAwek0xMTkuNSAzMzIuN2MtMS4zIC4zLTYgMS41LTguNS0yLjMtNS4yLTggMTEuMS0yMC40IDMtMzUuOC05LjEtMTcuNS0yNy44LTEzLjUtMzUtNS41LTguNyA5LjYtOC43IDIzLjUtNSAyNC4xIDQuMyAuNiA0LjEtNi41IDcuNC0xMS42IC45LTEuNCAyLjEtMi42IDMuNS0zLjZzMy0xLjYgNC42LTIgMy40LS40IDUgMCAzLjMgMSA0LjcgMS45YzExLjYgNy42IDEuNCAxNy44IDIuMyAyOC42IDEuNCAxNi43IDE4LjQgMTYuNCAyMS42IDkgLjItLjQgLjMtLjggLjMtMS4ycy0uMi0uOC0uNS0xLjFjMCAuOSAuNy0xLjMtMy40LS40bDAgMHptMjk5LjctMTcuMWMtMy4zLTExLjctMi42LTkuMi02LjgtMjAuNSAyLjQtMy43IDE1LjMtMjQtMy4xLTQzLjMtMTAuNC0xMC45LTMzLjktMTYuNS00MS4xLTE4LjUtMS41LTExLjQgNC42LTU4LjctMjEuNS04MyAyMC44LTIxLjYgMzMuOC00NS4zIDMzLjctNjUuNy0uMS0zOS4yLTQ4LjItNTEtMTA3LjQtMjYuNWwtMTIuNSA1LjNjLS4xIDAtMjIuNy0yMi4zLTIzLjEtMjIuNi02Ny41LTU4LjktMjc4LjggMTc1LjktMjExLjMgMjMyLjlsMTQuOCAxMi41Yy00IDEwLjctNS40IDIyLjItNC4xIDMzLjUgMy40IDMzLjQgMzYgNjAuNCA2Ny41IDYwLjQgNTcuNyAxMzMuMSAyNjcuOSAxMzMuMyAzMjIuMyAzIDEuNy00LjUgOS4xLTI0LjYgOS4xLTQyLjRzLTEwLjEtMjUuMy0xNi41LTI1LjNsMCAwem0tMzE2IDQ4LjJjLTIyLjgtLjYtNDcuNS0yMS4xLTQ5LjktNDUuNS02LjItNjEuMyA3NC4zLTc1LjMgODQtMTIuMyA0LjUgMjkuNi00LjcgNTguNS0zNC4xIDU3LjhsMCAwek04NC43IDI0OS42Yy0xNS4yIDMtMjguNSAxMS41LTM2LjcgMjMuNS00LjktNC4xLTE0LTEyLTE1LjYtMTUtMTMtMjQuOCAxNC4yLTczIDMzLjMtMTAwLjIgNDcuMS02Ny4yIDEyMC45LTExOC4xIDE1NS0xMDguOSA1LjUgMS42IDIzLjkgMjIuOSAyMy45IDIyLjlzLTM0LjEgMTguOS02NS44IDQ1LjNDMTM2LjIgMTUwIDEwNCAxOTcuNyA4NC43IDI0OS42ek0zMjMuNiAzNTAuN3MtMzUuNyA1LjMtNjkuNS03LjFjNi4yLTIwLjIgMjcgNi4xIDk2LjQtMTMuOCAxNS4zLTQuNCAzNS40LTEzIDUxLTI1LjQgMy40IDcuOCA1LjggMTUuOSA3LjEgMjQuMyAzLjctLjcgMTQuMi0uNSAxMS40IDE4LjEtMy4zIDE5LjktMTEuNyAzNi0yNS45IDUwLjgtOC45IDkuNi0xOS40IDE3LjUtMzEuMiAyMy4zLTYuNSAzLjQtMTMuMyA2LjMtMjAuMyA4LjYtNTMuNSAxNy41LTEwOC4zLTEuNy0xMjYtNDMtMS40LTMuMS0yLjYtNi40LTMuNi05LjctNy41LTI3LjItMS4xLTU5LjggMTguOC04MC40IDEuMi0xLjMgMi41LTIuOSAyLjUtNC44LS4yLTEuNy0uOC0zLjMtMS45LTQuNS03LTEwLjEtMzEuMi0yNy40LTI2LjMtNjAuOCAzLjUtMjQgMjQuNS00MC45IDQ0LjEtMzkuOWw1IC4zYzguNSAuNSAxNS45IDEuNiAyMi45IDEuOSAxMS43IC41IDIyLjItMS4yIDM0LjYtMTEuNiA0LjItMy41IDcuNi02LjUgMTMuMy03LjUgMi4zLS42IDQuNy0uNyA3LS4zczQuNiAxLjIgNi42IDIuNWMxMCA2LjYgMTEuNCAyMi43IDExLjkgMzQuNSAuMyA2LjcgMS4xIDIzIDEuNCAyNy42IC42IDEwLjcgMy40IDEyLjIgOS4xIDE0IDMuMiAxIDYuMiAxLjggMTAuNSAzLjEgMTMuMiAzLjcgMjEgNy41IDI2IDEyLjMgMi41IDIuNSA0LjIgNS44IDQuNyA5LjMgMS42IDExLjQtOC44IDI1LjQtMzYuMyAzOC4yLTQ2LjcgMjEuNy05My43IDE0LjQtMTAwLjUgMTMuNy0yMC4yLTIuNy0zMS42IDIzLjMtMTkuNSA0MS4xIDIyLjYgMzMuNCAxMjIuNCAyMCAxNTEuNC0yMS40IC43LTEgLjEtMS42LS43LTEtNDEuOCAyOC42LTk3LjEgMzguMi0xMjguNSAyNi00LjgtMS44LTE0LjctNi40LTE1LjktMTYuNyA0My42IDEzLjUgNzEgLjcgNzEgLjdzMi0yLjgtLjYtMi41ek0xNzEuNyAxNTcuNWMxNi43LTE5LjQgMzcuNC0zNi4yIDU1LjgtNDUuNiAuMS0uMSAuMy0uMSAuNS0uMXMuMyAuMSAuNCAuMiAuMiAuMyAuMiAuNCAwIC4zLS4xIC41Yy0xLjUgMi43LTQuMyA4LjMtNS4yIDEyLjcgMCAuMSAwIC4zIDAgLjRzLjIgLjMgLjMgLjQgLjMgLjEgLjQgLjEgLjMgMCAuNC0uMWMxMS41LTcuOCAzMS41LTE2LjIgNDktMTcuMyAuMiAwIC4zIDAgLjUgLjFzLjIgLjIgLjMgLjQgLjEgLjMgMCAuNS0uMSAuMy0uMyAuNGMtMi45IDIuMi01LjUgNC44LTcuNyA3LjctLjEgLjEtLjEgLjItLjEgLjRzMCAuMyAuMSAuNCAuMiAuMiAuMyAuMyAuMiAuMSAuNCAuMWMxMi4zIC4xIDI5LjcgNC40IDQxIDEwLjcgLjggLjQgLjIgMS45LS42IDEuNy02OS41LTE1LjktMTIzLjEgMTguNS0xMzQuNSAyNi44LS4yIC4xLS4zIC4xLS41IC4xcy0uMy0uMS0uNS0uMi0uMi0uMy0uMi0uNSAuMS0uNCAuMi0uNWwtLjEgMHoiXX0sQ0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx1bW9uIixpY29uOls2NDAsNTEyLFtdLCJlN2UyIiwiTTQ1Mi41IDIyMy41YzkuOCAwIDE2LjUgNi4zIDE2LjUgMTYuNmwwIDMxLjhjMCAxMC4zLTYuNiAxNi42LTE2LjYgMTYuNmwtNTYuMiAwYy05LjggMC0xNi41LTYuMy0xNi41LTE2LjZsMC0zMS44YzAtMTAuMyA2LjctMTYuNiAxNi41LTE2LjZsNTYuMyAwem0tMjUuNyAxMy4xYy0xLjUtMi42LTMuMi0yLjYtNC42IDBsLTEwLjcgMTcuNmMtMS43IDIuNC0yLjYgNS4xLTIuNiA4LjIgMCA3LjkgNi45IDE0LjYgMTUuNiAxNC42IDguNSAwIDE1LjYtNi43IDE1LjYtMTQuNiAwLTMtMS01LjgtMi43LTguMmwtMTAuNy0xNy42ek04NS44IDIyMy44YzEgMCAxLjUgLjYgMS41IDEuNWwwIDUwLjMgNjQuNiAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDkuN2MwIC45LS42IDEuNS0xLjYgMS41bC03OC40IDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTYxLjRjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDB6bTg4LjMgMGMxIDAgMS41IC42IDEuNSAxLjVsMCA0NWMwIDQgMiA1LjIgNS43IDUuMmw0Ni45IDBjMy44IDAgNS43LTEuMyA1LjctNS4ybDAtNDVjMC0uOSAuNS0xLjUgMS41LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNDZjMCAxMC41LTUuMyAxNi44LTE3LjYgMTYuOGwtNTQgMGMtMTIuMyAwLTE3LjYtNi4zLTE3LjYtMTYuOGwwLTQ2YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem0xMDguMiAwYzEgMCAxLjYgLjUgMi4yIDEuNGwzMC41IDQ2LjQgMS40IDAgMzAuNS00Ni40Yy42LS45IDEuMi0xLjQgMi4yLTEuNGwxOCAwYzEgMCAxLjUgLjYgMS41IDEuNWwwIDYxLjRjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC00My44LTEuMSAwLTI4LjcgNDMuOGMtLjYgLjktMS4zIDEuNS0yLjQgMS41bC0xMC43IDBjLTEgMC0xLjctLjYtMi4zLTEuNWwtMjguNy00My44LTEuMSAwIDAgNDMuOGMwIC45LS41IDEuNS0xLjUgMS41bC0xMi4zIDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTYxLjRjMC0uOSAuNi0xLjUgMS42LTEuNWwxNy45IDB6bTIxNC40IDBjLjkgMCAxLjMgLjQgMi4yIDEuMWw1Mi43IDQ2LjMgMS4zIDAgMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA2MS40YzAgLjktLjYgMS41LTEuNiAxLjVsLTE0LjQgMGMtMSAwLTEuNC0uNC0yLjMtMS4xbC01Mi42LTQ2LjMtMS40IDAgMCA0NmMwIC45LS41IDEuNS0xLjUgMS41bC0xMi4zIDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTYxLjRjMC0uOSAuNi0xLjUgMS42LTEuNWwxNC40IDB6TTMyMCAxMTQuMWM4Ny45IDAgMTY3LjcgMTUuNyAyMjUuNSA0MWwyLjcgMS4yQzU4Ny4xIDE3My44IDY0MCAyMDYuNSA2NDAgMjU2cy01Mi45IDgyLjItOTEuOCA5OS42bC0yLjcgMS4yYy01Ny44IDI1LjQtMTM3LjYgNDEtMjI1LjUgNDEtNzYuMiAwLTE1NS4xLTEwLjUtMjI1LjUtNDEtMzkuNi0xNy40LTk0LjUtNTAuMy05NC41LTEwMC44czU0LjktODMuNSA5NC41LTEwMC44YzcwLjQtMzAuNSAxNDkuMy00MSAyMjUuNS00MXptLTg4LjkgMjI5YzIwLjMgMjkgNTIuOCA0OS42IDg4LjkgNDkuNiAzNi4yIDAgNjguNy0yMC42IDg5LTQ5LjdsLTE3Ny45IC4xem0tOTYuMSAwYzQzLjMgMjkuNyA5Ni43IDQzLjUgMTQ4LjQgNDgtMjQuMi05LjEtNDQuNC0yNi43LTU4LjYtNDguMWwtODkuOSAwem0yODAuMy0uMWMtMTQuMiAyMS40LTM0LjQgMzkuMS01OC42IDQ4LjEgNTEuOC00LjUgMTA1LjMtMTguMyAxNDguNi00OC4ybC05MCAwem0tMzM3LjQgLjFjNDQuMSAyMy4xIDkzLjcgMzUuNCAxNDIuNyA0Mi42LTMzLjQtOC42LTY2LjUtMjEuOS05NC40LTQyLjZsLTQ4LjMgMHptNDM2LjItLjJjLTI3LjkgMjAuOC02MS4xIDM0LjItOTQuNiA0Mi44IDQ3LjMtNi45IDg5LjYtMTguNSAxMjMuOS0zMy42bDEuNy0uOGM2LjEtMi43IDExLjktNS41IDE3LjQtOC40bC00OC41IDB6TTUyMCAxNzMuNmMxMC43IDguNyAxOS44IDE4LjEgMjcgMjguMiAuNCAuNiAuNSAxLjMgLjEgMnMtMSAxLTEuNyAxbC0xLjYgMGMtLjYgMC0xLjItLjMtMS41LS44LTcuOS0xMC45LTE4LjItMjEuMS0zMC42LTMwLjRsLTkzLjUgMGM1LjQgOC44IDkuOSAxOC41IDEzLjQgMjguNiAuMiAuNiAuMSAxLjItLjIgMS43cy0uOSAuOC0xLjYgLjhsLTEuNCAwYy0uOCAwLTEuNS0uNS0xLjgtMS4zLTMuOC0xMC43LTguNy0yMC44LTE0LjUtMjkuOWwtMTg0LjMgLjFjLTUuOCA5LjEtMTAuNyAxOS4xLTE0LjQgMjkuOC0uMyAuOC0xIDEuMy0xLjggMS4zbC0xLjQgMGMtLjYgMC0xLjItLjMtMS42LS44cy0uNS0xLjEtLjItMS43YzMuNS0xMC4yIDgtMTkuNyAxMy40LTI4LjZsLTkzLjYgMGMtMTIuMyA5LjMtMjIuNiAxOS40LTMwLjQgMzAuMy0uNCAuNS0uOSAuOC0xLjUgLjhsLTEuNiAwYy0uNyAwLTEuNC0uNC0xLjctMXMtLjMtMS40IC4xLTJjNy42LTEwLjUgMTYuNy0xOS45IDI2LjgtMjhsLTUxIDBjLTI4LjkgMTYuNi02MiA0My4zLTYzLjUgNzkuN2w0NC43IDBjLjUgMCAxIC4yIDEuMyAuNnMuNiAuOCAuNiAxLjNsMCAxLjNjMCAxLjEtLjkgMS45LTEuOSAxLjlsLTQ0LjcgMEM2LjggMjk1IDQwIDMyMS43IDY5IDMzOC4zbDUwLjkgMGMtMTAuMy04LjQtMTkuMS0xNy40LTI2LjEtMjdsLS44LTEuMWMtLjQtLjYtLjUtMS4zLS4xLTJzMS0xIDEuNy0xbDEuNiAwIC4yIDBjLjUgLjEgMSAuMyAxLjMgLjggNy45IDEwLjkgMTguMSAyMSAzMC41IDMwLjNsOTMuNiAwYy01LjMtOC44LTkuOC0xOC40LTEzLjQtMjguNS0uMi0uNi0uMS0xLjIgLjItMS43cy45LS44IDEuNi0uOGwxLjQgMCAuMiAwYy43IC4xIDEuNCAuNiAxLjcgMS4zIDMuOCAxMC43IDguNiAyMC43IDE0LjQgMjkuOGwxODQuNS0uMWM1LjgtOS4xIDEwLjYtMTkuMSAxNC40LTI5LjdsLjEtLjFjLjMtLjcgMS0xLjEgMS43LTEuMWwxLjQgMGMuNiAwIDEuMiAuMyAxLjYgLjhzLjUgMS4yIC4yIDEuN2MtMy41IDEwLjEtOCAxOS43LTEzLjMgMjguNWw5My43IDBjMTIuMy05LjMgMjIuNS0xOS40IDMwLjMtMzAuMmwuMS0uMmMuNC0uNCAuOS0uNiAxLjQtLjZsMS42IDBjLjcgMCAxLjQgLjQgMS43IDFzLjMgMS40LS4xIDJjLTcuMSAxMC0xNi4xIDE5LjMtMjYuNyAyNy45bDUxLjEgMGMyOC44LTE2LjYgNjEuOC00My4zIDYzLjQtNzkuNmwtNDQuNyAwYy0xIDAtMS45LS45LTEuOS0xLjlsMC0xLjNjMC0xLjEgLjktMS45IDEuOS0xLjlsNDQuNyAwYy0xLjYtMzYuNS0zNC45LTYzLjMtNjMuOS03OS45bC01MC45IDB6TTIyMC41IDEyNi4yYy00OS4xIDcuMS05OC43IDE5LjUtMTQzIDQyLjdsNDguNCAwYzI3LjktMjAuOCA2MS0zNC4xIDk0LjUtNDIuN3ptNjIuOC01LjRjLTUxLjggNC41LTEwNS4yIDE4LjMtMTQ4LjYgNDguMWw5MCAwYzE0LjItMjEuNCAzNC40LTM5IDU4LjYtNDguMXptMzYuNi0xLjZjLTM2LjIgMC02OC43IDIwLjYtODkgNDkuN2wxNzcuOS0uMWMtMjAuMy0yOS4xLTUyLjctNDkuNi04OC45LTQ5LjZ6bTM2LjYgMS42YzI0LjIgOS4xIDQ0LjQgMjYuNiA1OC41IDQ4bDg5LjggMGMtNDMuMy0yOS43LTk2LjYtNDMuNS0xNDguMy00OHptNjIuOCA1LjRjMzMuNCA4LjUgNjYuNCAyMS45IDk0LjMgNDIuNWw0OC4zIDBjLTQ0LjEtMjMuMS05My42LTM1LjQtMTQyLjYtNDIuNXoiXX0sVEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im51dHJpdGlvbml4IixpY29uOls0NDgsNTEyLFtdLCJmM2Q2IiwiTTExMiA4LjFTMjQ1LjQtLjEgMjMzIDExMi41YzAgMCAxOS4xLTc0LjkgMTAzLTQwLjYgMCAwLTE3LjcgNzQtODggNTYgMCAwIDE0LjYtNTQuNiA2Ni4xLTU2LjYgMCAwLTM5LjktMTAuMy04Mi4xIDQ4LjggMCAwLTE5LjgtOTQuNS05My42LTk5LjcgMCAwIDc1LjIgMTkuNCA3Ny42IDEwNy41IDAgLjEtMTA2LjQgNy0xMDQtMTE5Ljh6TTQyNCAzMjMuN2MwIDQ4LjUtOS43IDk1LjMtMzIgMTMyLjMtNDIuMiAzMC45LTEwNSA0OC0xNjggNDgtNjIuOSAwLTEyNS44LTE3LjEtMTY4LTQ4LTIyLjMtMzctMzItODMuOC0zMi0xMzIuMyAwLTQ4LjQgMTcuNy05NC43IDQwLTEzMS43IDQyLjItMzAuOSA5Ny4xLTQ4LjYgMTYwLTQ4LjYgNjMgMCAxMTcuOCAxNy42IDE2MCA0OC42IDIyLjMgMzcgNDAgODMuMyA0MCAxMzEuN3pNMTQ0IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTIxNiA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yODggNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMzYwIDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM4NCAyNTZjLTQuOC0yMi4zLTcuNC0zNi45LTE2LTU2LTM4LjgtMTkuOS05MC41LTMyLTE0NC0zMlMxMTguOCAxODAuMSA4MCAyMDBjLTguOCAxOS41LTExLjIgMzMuOS0xNiA1NiA0Mi4yLTcuOSA5OC43LTE0LjggMTYwLTE0LjhzMTE3LjggNi45IDE2MCAxNC44eiJdfSwkRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZy1wbHVzIixpY29uOls1MTIsNTEyLFtdLCJmNGYxIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTA3IDIwNS42Yy00LjcgMC05IDIuOC0xMC43IDcuMmwtNCA5LjUtMTEtOTIuOGMtMS43LTEzLjktMjItMTMuNC0yMy4xIC40bC00LjMgNTEuNC01LjItNjguOGMtMS4xLTE0LjMtMjIuMS0xNC4yLTIzLjIgMGwtMy41IDQ0LjktNS45LTk0LjNjLS45LTE0LjUtMjIuMy0xNC40LTIzLjIgMGwtNS4xIDgzLjctNC4zLTY2LjNjLS45LTE0LjQtMjIuMi0xNC40LTIzLjIgMGwtNS4zIDgwLjItNC4xLTU3Yy0xLjEtMTQuMy0yMi0xNC4zLTIzLjItLjJsLTcuNyA4OS44LTEuOC0xMi4yYy0xLjctMTEuNC0xNy4xLTEzLjYtMjItMy4zbC0xMy4yIDI3LjctNDMuOSAwIDAgMjMuMiA1MS4zIDBjNC40IDAgOC40LTIuNSAxMC40LTYuNGwxMC43IDczLjFjMiAxMy41IDIxLjkgMTMgMjMuMS0uN2wzLjgtNDMuNiA1LjcgNzguM2MxLjEgMTQuNCAyMi4zIDE0LjIgMjMuMi0uMWw0LjYtNzAuNCA0LjggNzMuM2MuOSAxNC40IDIyLjMgMTQuNCAyMy4yLS4xbDQuOS04MC41IDQuNSA3MS44Yy45IDE0LjMgMjIuMSAxNC41IDIzLjIgLjJsNC42LTU4LjYgNC45IDY0LjRjMS4xIDE0LjMgMjIgMTQuMiAyMy4xIC4xbDYuOC04MyAyLjcgMjIuM2MxLjQgMTEuOCAxNy43IDE0LjEgMjIuMyAzLjFsMTgtNDMuNCA1MC41IDAgMC0yMy4yLTU4LjQgLjN6bS03OCA1LjJsLTIxLjkgMCAwIDIxLjljMCA0LjEtMy4zIDcuNS03LjUgNy41LTQuMSAwLTcuNS0zLjMtNy41LTcuNWwwLTIxLjktMjEuOSAwYy00LjEgMC03LjUtMy4zLTcuNS03LjUgMC00LjEgMy40LTcuNSA3LjUtNy41bDIxLjkgMCAwLTIxLjljMC00LjEgMy40LTcuNSA3LjUtNy41czcuNSAzLjMgNy41IDcuNWwwIDIxLjkgMjEuOSAwYzQuMSAwIDcuNSAzLjMgNy41IDcuNSAwIDQuMS0zLjQgNy41LTcuNSA3LjV6Il19LERFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRoYXQiLGljb246WzUxMiw1MTIsW10sImY3YmMiLCJNMzQxLjUgMjg1LjZjMzMuNyAwIDgyLjMtNi45IDgyLjMtNDcgLjItNi43IC45LTEuOC0yMC45LTk2LjItNC42LTE5LjEtOC43LTI3LjgtNDIuMy00NC42LTI2LjEtMTMuMy04Mi45LTM1LjQtOTkuNy0zNS40LTE1LjcgMC0yMC4yIDIwLjItMzguOSAyMC4yLTE4IDAtMzEuMy0xNS4xLTQ4LjEtMTUuMS0xNi4xIDAtMjYuNyAxMS0zNC44IDMzLjYtMjcuNSA3Ny42LTI2LjMgNzQuMy0yNi4xIDc4LjMgMCAyNC44IDk3LjYgMTA2LjEgMjI4LjUgMTA2LjF6TTQyOSAyNTQuOGM0LjcgMjIgNC43IDI0LjMgNC43IDI3LjIgMCAzNy43LTQyLjMgNTguNi05OCA1OC42LTEyNS43IC4xLTIzNS45LTczLjYtMjM1LjktMTIyLjMgMC02LjggMS40LTEzLjUgNC4xLTE5LjctNDUuMiAyLjMtMTAzLjggMTAuMy0xMDMuOCA2MiAwIDg0LjcgMjAwLjYgMTg5IDM1OS41IDE4OSAxMjEuOCAwIDE1Mi41LTU1LjEgMTUyLjUtOTguNiAwLTM0LjItMjkuNi03My04Mi45LTk2LjJ6Il19LFo4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbInBpZWQtcGlwZXItc3F1YXJlIl0sImUwMWUiLCJNMzIuMSA0MTlsLTMyIDYwLjIgLjgtMzI4Qy45IDg1LjMgNTQuMSAzMiAxMjAuMSAzMmwzMjcuMiAwQzM1NC4zIDYwLjkgMjU3LjQgMTI2LjIgMTkzLjQgMjAwLjYgMTIyLjggMjgyIDgyLjcgMzM4IDMyLjEgNDE5em00MTYtMzg3UzMwNS4zIDk4LjggMjYxLjcgMTk5LjFjLTIzLjIgNTMuNi0yOC45IDExOC4xLTcxIDE1OC42LTI4LjkgMjcuOC02OS44IDM4LjItMTA1LjMgNTYuMy0yMy4yIDEyLTY2LjQgNDAuNS04NC45IDY2bDMyOC40IDBjNjYgMCAxMTkuMy01My4zIDExOS4zLTExOS4yLS4xIDAtLjEtMzI4LjgtLjEtMzI4Ljh6Il19LExFdD1aOGUsRUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndoYXRzYXBwIixpY29uOls0NDgsNTEyLFtdLCJmMjMyIiwiTTM4MC45IDk3LjFjLTQxLjktNDItOTcuNy02NS4xLTE1Ny02NS4xLTEyMi40IDAtMjIyIDk5LjYtMjIyIDIyMiAwIDM5LjEgMTAuMiA3Ny4zIDI5LjYgMTExTDAgNDgwIDExNy43IDQ0OS4xYzMyLjQgMTcuNyA2OC45IDI3IDEwNi4xIDI3bC4xIDBjMTIyLjMgMCAyMjQuMS05OS42IDIyNC4xLTIyMiAwLTU5LjMtMjUuMi0xMTUtNjcuMS0xNTd6bS0xNTcgMzQxLjZjLTMzLjIgMC02NS43LTguOS05NC0yNS43bC02LjctNC02OS44IDE4LjMgMTguNi02OC4xLTQuNC03Yy0xOC41LTI5LjQtMjguMi02My4zLTI4LjItOTguMiAwLTEwMS43IDgyLjgtMTg0LjUgMTg0LjYtMTg0LjUgNDkuMyAwIDk1LjYgMTkuMiAxMzAuNCA1NC4xczU2LjIgODEuMiA1Ni4xIDEzMC41YzAgMTAxLjgtODQuOSAxODQuNi0xODYuNiAxODQuNnpNMzI1LjEgMzAwLjVjLTUuNS0yLjgtMzIuOC0xNi4yLTM3LjktMTgtNS4xLTEuOS04LjgtMi44LTEyLjUgMi44cy0xNC4zIDE4LTE3LjYgMjEuOGMtMy4yIDMuNy02LjUgNC4yLTEyIDEuNC0zMi42LTE2LjMtNTQtMjkuMS03NS41LTY2LTUuNy05LjggNS43LTkuMSAxNi4zLTMwLjMgMS44LTMuNyAuOS02LjktLjUtOS43cy0xMi41LTMwLjEtMTcuMS00MS4yYy00LjUtMTAuOC05LjEtOS4zLTEyLjUtOS41LTMuMi0uMi02LjktLjItMTAuNi0uMnMtOS43IDEuNC0xNC44IDYuOWMtNS4xIDUuNi0xOS40IDE5LTE5LjQgNDYuM3MxOS45IDUzLjcgMjIuNiA1Ny40YzIuOCAzLjcgMzkuMSA1OS43IDk0LjggODMuOCAzNS4yIDE1LjIgNDkgMTYuNSA2Ni42IDEzLjkgMTAuNy0xLjYgMzIuOC0xMy40IDM3LjQtMjYuNHM0LjYtMjQuMSAzLjItMjYuNGMtMS4zLTIuNS01LTMuOS0xMC41LTYuNnoiXX0sUEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImltZGIiLGljb246WzQ0OCw1MTIsW10sImYyZDgiLCJNODkuNSAzMjMuNmwtMzUuNiAwIDAtMTM3LjQgMzUuNiAwIDAgMTM3LjR6bTY2LjYtNzMuMWw5LjEtNjQuMyA0Ni4zIDAgMCAxMzcuNC0zMSAwIDAtOTIuNy0xMy40IDkyLjctMjEuMyAwLTEzLTkwLjctLjEgOTAuNy0zMS4yIDAgMC0xMzcuNCA0Ni4xIDBjLjUgOC4zIDIuOCAxOC4xIDQuMyAyOS40bDQuMiAzNC45em02Ny42IDczLjFsMC0xMzcuNCAyNi42IDBjMTcgMCAyNyAuOSAzMyAyLjQgNi4xIDEuNyAxMC43IDQuMiAxMy45IDcuOSAzLjEgMy4zIDUuMSA2LjYgNS44IDEyIC45IDQuNCAxLjQgMTMuMSAxLjQgMjYuMmwwIDQ4LjJjMCAxMi4zLS43IDIwLjUtMS45IDI0LjctMS4xIDQuMS0zLjEgNy40LTYgOS43LTIuOCAyLjQtNi40IDQuMS0xMC43IDUtNC4yIC44LTEwLjYgMS4zLTE5LjEgMS4zbC00MyAwem0zNS41LTExMy45bDAgODkuNGM1LjEgMCA4LjMtMSA5LjQtMi4zIDEuMS0yIDEuOC03LjYgMS44LTE2LjdsMC01My4zYzAtNi4yLS4xLTEwLjItLjctMTItLjMtMS44LTEuMi0zLTIuNi00LjctMS40IDAtNC4xLS40LTcuOS0uNHptNTcuMyAxMTMuOWwwLTEzNy40IDM0LjEgMCAwIDQzLjljMi45LTIuNCA2LjEtNC45IDkuNS02LjYgMy42LTEuNSA4LjgtMi40IDEyLjgtMi40IDQuOCAwIDguOSAuOCAxMi4zIDIuMiAzLjQgMS41IDYgMy41IDggNi4yIDEuNyAyLjYgMi43IDUuMyAzLjEgNy44IC40IDIuNi0uMiA4LS4yIDE2LjJsMCAzOC42YzAgOC4yIC4yIDE0LjMtLjggMTguNC0xLjEgNC0zLjggNy42LTcuOCA5LjYtNC4xIDMuOS04LjkgNS4zLTE0LjYgNS4zLTQgMC05LjItLjktMTIuNy0yLjUtMy41LTEuOC02LjctNC41LTkuNi04bC0yLjEgOC43LTMyIDB6bTQ1LjEtMjAuN2MuNy0xLjggMS02IDEtMTIuNWwwLTM1LjRjMC01LjYtLjMtOS41LTEuMS0xMS4yLS43LTEuOS0zLjctMi43LTUuOC0yLjctMiAwLTMuNCAuOC00LjEgMi4zLS42IDEuNS0xIDUuNC0xIDExLjZsMCAzNi40YzAgNi4xIC40IDEwIDEuMiAxMS42IC42IDEuNyAyLjEgMi41IDQuMSAyLjUgMi4yIDAgNC4yLS44IDUuNy0yLjZ6TTQxOC40IDMyYzE1LjcgMS4yIDI4LjcgMTUuMiAyOC43IDMxLjlsMCAzODQuMmMwIDE2LjQtMTEuOSAzMC40LTI4LjIgMzEtLjMgMC0uNSAuOS0uOCAuOUwyOS45IDQ4MGMtLjMgMC0uNi0uOS0uOC0uMS0xNS43LTEuNC0yNy45LTEzLjgtMjktMzAuMkwwIDYxLjhDMS4xIDQ1LjkgMTMuOCAzMy4xIDMwLjMgMzEuMWwzODcuNCAwYy4yIDAgLjUgLjkgLjcgLjl6TTMwLjMgNDEuM0MxOSA0MiAxMCA1MSA5LjMgNjIuNGwwIDM4Ny4zYy40IDUuNCAyLjcgMTAuNSA2LjQgMTQuMyAzLjggMy45IDguOCA2LjMgMTQuMiA2LjdsMzg4LjIgMGMxMS41LTEgMjAuNi0xMS42IDIwLjYtMjIuNmwwLTM4NC4yYzAtNS43LTIuMS0xMS4zLTYtMTUuNXMtOS4zLTYuOC0xNS03LjJsLTM4Ny40IDB6Il19LElFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJweXRob24iLGljb246WzQ0OCw1MTIsW10sImYzZTIiLCJNNDM5LjggMjAwLjVjLTcuNy0zMC45LTIyLjMtNTQuMi01My40LTU0LjJsLTQwLjEgMCAwIDQ3LjRjMCAzNi44LTMxLjIgNjcuOC02Ni44IDY3LjhsLTEwNi44IDBjLTI5LjIgMC01My40IDI1LTUzLjQgNTQuM2wwIDEwMS44YzAgMjkgMjUuMiA0NiA1My40IDU0LjMgMzMuOCA5LjkgNjYuMyAxMS43IDEwNi44IDAgMjYuOS03LjggNTMuNC0yMy41IDUzLjQtNTQuM2wwLTQwLjctMTA2LjcgMCAwLTEzLjYgMTYwLjIgMGMzMS4xIDAgNDIuNi0yMS43IDUzLjQtNTQuMiAxMS4yLTMzLjUgMTAuNy02NS43IDAtMTA4LjZ6TTI4Ni4yIDQ0NC43YTIwLjQgMjAuNCAwIDEgMSAwLTQwLjcgMjAuNCAyMC40IDAgMSAxIDAgNDAuN3pNMTY3LjggMjQ4LjFsMTA2LjggMGMyOS43IDAgNTMuNC0yNC41IDUzLjQtNTQuM2wwLTEwMS45YzAtMjktMjQuNC01MC43LTUzLjQtNTUuNi0zNS44LTUuOS03NC43LTUuNi0xMDYuOCAuMS00NS4yIDgtNTMuNCAyNC43LTUzLjQgNTUuNmwwIDQwLjcgMTA2LjkgMCAwIDEzLjYtMTQ3IDBjLTMxLjEgMC01OC4zIDE4LjctNjYuOCA1NC4yLTkuOCA0MC43LTEwLjIgNjYuMSAwIDEwOC42IDcuNiAzMS42IDI1LjcgNTQuMiA1Ni44IDU0LjJsMzYuNyAwIDAtNDguOGMwLTM1LjMgMzAuNS02Ni40IDY2LjgtNjYuNHpNMTYxLjIgNjQuN2EyMC40IDIwLjQgMCAxIDEgMCA0MC44IDIwLjQgMjAuNCAwIDEgMSAwLTQwLjh6Il19LEFFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYXNoLWFwcCIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkNCIsIk00NDAuMyA5Ni45Yy05LjQtMjYuNS0zMC4zLTQ3LjQtNTYuOC01Ny0yNC4xLTcuOS00Ni4zLTcuOS05MS42LTcuOUwxNTYgMzJjLTQ0LjggMC02Ny4yIDAtOTEuMyA3LjUtMjYuNSA5LjYtNDcuNCAzMC41LTU3IDU3LTcuNyAyNC4zLTcuNyA0Ni43LTcuNyA5MS43TDAgMzIzLjhjMCA0NS4yIDAgNjcuNCA3LjUgOTEuNSA5LjYgMjYuNSAzMC41IDQ3LjQgNTcgNTcgMjQuMyA3LjcgNDYuNyA3LjcgOTEuNiA3LjdsMTM1LjcgMGM0NSAwIDY3LjQgMCA5MS42LTcuNyAyNi41LTkuNiA0Ny40LTMwLjUgNTctNTcgNy43LTI0LjMgNy43LTQ2LjcgNy43LTkxLjVsMC0xMzUuNWMwLTQ1IDAtNjcuNC03LjctOTEuNXpNMzIzLjEgMTg1LjRsLTI1LjggMjEuMWMtMi4zIDEuOS01LjUgMS41LTcuMy0uOS0xMy4yLTE2LjItMzMuNy0yNS40LTU2LjEtMjUuNC0yNSAwLTQwLjYgMTAuOS00MC42IDI2LjItLjQgMTIuOCAxMS43IDE5LjYgNDkuMSAyNy43IDQ3LjIgMTAgNjguNyAyOS43IDY4LjcgNjIuNyAwIDQxLjQtMzMuNyA3MS45LTg2LjQgNzUuM2wtNS4xIDI0LjVjLS40IDIuMy0yLjYgNC4xLTUuMSA0LjFsLTQwLjYgMGMtMy40IDAtNS44LTMuMi01LjEtNi40bDYuNC0yNy4zYy0yNi03LjUtNDcuMi0yMi01OS4zLTM5LjctMS41LTIuMy0xLjEtNS4zIDEuMS03bDI4LjItMjJjMi4zLTEuOSA1LjgtMS4zIDcuNSAxLjEgMTQuOSAyMC45IDM4IDMzLjMgNjUuNyAzMy4zIDI1IDAgNDMuOC0xMi4yIDQzLjgtMjkuNyAwLTEzLjQtOS40LTE5LjYtNDEuMi0yNi4yLTU0LjItMTEuNy03NS44LTMxLjgtNzUuOC02NC45IDAtMzguNCAzMi4yLTY3LjIgODAuOS03MWw1LjMtMjUuNGMuNC0yLjMgMi42LTQuMSA1LjEtNC4xbDM5LjkgMGMzLjIgMCA1LjggMyA1LjEgNi4ybC02LjIgMjguNGMyMC45IDYuNCAzOCAxNy45IDQ4LjcgMzIuMiAxLjcgMi4xIDEuMyA1LjMtLjkgN3oiXX0sTkV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpbnRlcmVzdC1wIixpY29uOlszODQsNTEyLFtdLCJmMjMxIiwiTTIwNCA2LjVjLTEwMi42IDAtMjA0IDY4LjQtMjA0IDE3OS4xIDAgNzAuNCAzOS42IDExMC40IDYzLjYgMTEwLjQgOS45IDAgMTUuNi0yNy42IDE1LjYtMzUuNCAwLTkuMy0yMy43LTI5LjEtMjMuNy02Ny44IDAtODAuNCA2MS4yLTEzNy40IDE0MC40LTEzNy40IDY4LjEgMCAxMTguNSAzOC43IDExOC41IDEwOS44IDAgNTMuMS0yMS4zIDE1Mi43LTkwLjMgMTUyLjctMjQuOSAwLTQ2LjItMTgtNDYuMi00My44IDAtMzcuOCAyNi40LTc0LjQgMjYuNC0xMTMuNCAwLTY2LjItOTMuOS01NC4yLTkzLjkgMjUuOCAwIDE2LjggMi4xIDM1LjQgOS42IDUwLjctMTMuOCA1OS40LTQyIDE0Ny45LTQyIDIwOS4xIDAgMTguOSAyLjcgMzcuNSA0LjUgNTYuNCAzLjQgMy44IDEuNyAzLjQgNi45IDEuNSA1MC40LTY5IDQ4LjYtODIuNSA3MS40LTE3Mi44IDEyLjMgMjMuNCA0NC4xIDM2IDY5LjMgMzYgMTA2LjIgMCAxNTMuOS0xMDMuNSAxNTMuOS0xOTYuOCAwLTk5LjMtODUuOC0xNjQuMS0xODAtMTY0LjF6Il19LFJFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aG1jcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwZCIsIk00NDggMTYxbDAtMjEuMy0yOC41LTguOC0yLjItMTAuNCAyMC4xLTIwLjctMTAuNC0xOS40LTI5IDcuNS03LjItNy41IDcuNS0yOC4yLTE5LjEtMTEuNi0yMS4zIDIxLTEwLjctMy4yLTctMjYuNC0yMi42IDAtNi4yIDI2LjQtMTIuMSAzLjItMTkuNy0yMS0xOS40IDExIDguMSAyNy43LTguMSA4LjQtMjguNS03LjUtMTEgMTkuMSAyMC43IDIxLTIuOSAxMC40LTI4LjUgNy44LS4zIDIxLjcgMjguOCA3LjUgMi40IDEyLjEtMjAuMSAxOS45IDEwLjQgMTguNSAyOS42LTcuNSA3LjIgOC42LTguMSAyNi45IDE5LjkgMTEuNiAxOS40LTIwLjQgMTEuNiAyLjkgNi43IDI4LjUgMjIuNiAuMyA2LjctMjguOCAxMS42LTMuNSAyMC43IDIxLjYgMjAuNC0xMi4xLTguOC0yOCA3LjgtOC4xIDI4LjggOC44IDEwLjMtMjAuMS0yMC45LTE4LjggMi4yLTEyLjEgMjkuMS03ek0zMjguOCA5Mi42YTU2LjggNTYuOCAwIDEgMSAwIDExMy42IDU2LjggNTYuOCAwIDEgMSAwLTExMy42em03Mi4zIDEzMGw0Ni45IDE0LjUgMCAzOS45LTU1LjEgMTMuNC00LjEgMjIuNyAzOC45IDM1LjMtMTkuMiAzNy45LTU0LTE2LjctMTQuNiAxNS4yIDE2LjcgNTIuNS0zOC4zIDIyLjctMzguOS00MC41LTIxLjcgNi42LTEyLjYgNTQtNDIuNC0uNS0xMi42LTUzLjYtMjEuNy01LjYtMzYuNCAzOC40LTM3LjQtMjEuNyAxNS4yLTUwLjUtMTMuNy0xNi4xLTU1LjUgMTQuMS0xOS43LTM0LjggMzcuOS0zNy40LTQuOC0yMi44LTU0LTE0LjEgLjUtNDAuOSA1My41LTE0LjcgNS43LTE5LjctMzguOS0zOS40IDIwLjctMzUuOCA1My42IDE0LjEgMTUuMi0xNS43LTE1LjItNTIgMzYuNC0yMC43IDM2LjggMzkuNCAyMi43LTYuMSAxMS42LTUyIDQyLjQgMCAxMS42IDQ1LjktMjIuNi01LjktNi4zLTEuNy0zLjMgNS43LTExIDE5LjEtMy4zIDUuNiA0LjYgNC42IDE3LjIgMTcuNC0uMyAxLTIzLjggNi41LTYuMiAxLjdjMCAzLjItLjEgOS42LS4zIDE5LjMtNDcuNSAxMC40LTgzLjMgNTIuOC04My4zIDEwMy41IDAgNTguMyA0Ny4zIDEwNS43IDEwNS43IDEwNS43IDUwLjUgMCA5Mi43LTM1LjQgMTAzLjItODIuOCA5LjkgLjEgMTYuNiAuMiAyMC4xIC4zbDEuNi02LjcgNS42LTI0IDEuOS0uNiAxNy4xIDE3LjggNC43IDQuOSA1LjgtMy40IDIwLjQtMTIuMSA1LjgtMy41LTItNi41LTYuOC0yMS4yeiJdfSxPRXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiam9nZXQiLGljb246WzUxMiw1MTIsW10sImYzYjciLCJNMzg2LjEgNDVDMzQ1LjYgMTkuOSAzMDAuNiA4IDI1Ni4yIDggMTczIDggOTEuOCA0OS45IDQ0LjkgMTI1LjktMjcgMjQyLjUgOS4zIDM5NS4yIDEyNS45IDQ2Ny4xczI2OS4zIDM1LjYgMzQxLjItODAuOUM1MzkgMjY5LjYgNTAyLjcgMTE2LjggMzg2LjEgNDV6bTUxLjggMzIzLjJjLTQwLjQgNjUuNS0xMTAuNCAxMDEuNS0xODIgMTAxLjUtNi44IDAtMTMuNi0uNC0yMC40LTEtOS0xMy42LTE5LjktMzMuMy0yMy43LTQyLjQtNS43LTEzLjctMjcuMi00NS42IDMxLjItNjcuMSA1MS43LTE5LjEgMTc2LjctMTYuNSAyMDguOC0xNy42LTQgOS04LjYgMTcuOS0xMy45IDI2LjZ6TTIzNy4xIDI4MS45Yy01NS41LTEuNC04MS43LTIwLjgtNTguNS00OC4yczUxLjEtNDAuNyA2OC45LTUxLjJjMTcuOS0xMC41IDI3LjMtMzMuNy0yMy42LTI5LjctMTI4LjYgOC43LTE2Ny4zIDk5LjMtMTc4LjMgMTQwLjItOC44LTQ5LjctLjEtMTAyLjcgMjguNS0xNDkuMSA2MS45LTEwMC41IDE5My41LTEzMS43IDI5NC02OS44IDc0LjggNDYuMSAxMTEuMiAxMzAuOSA5OS4zIDIxMi43LTI0LjktLjUtMTc5LjMtMy42LTIzMC4zLTQuOXptMTgzLjgtNTQuOGMtMjIuNy02LTU3IDExLjMtODYuNyAyNy4yLTI5LjcgMTUuOC0zMS4xIDguMi0zMS4xIDguMnM0MC4yLTI4LjEgNTAuNy0zNC41IDMxLjktMTQgMTMuNC0yNC42Yy0zLjItMS44LTYuNy0yLjctMTAuNC0yLjctMTcuOCAwLTQxLjUgMTguNy02Ny41IDM1LjYtMzEuNSAyMC41LTY1LjMgMzEuMy02NS4zIDMxLjNMMzkzLjUgMjY2IDQ0MCAyNDIuNnMzLjYtOS41LTE5LjEtMTUuNXoiXX0sWDhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS15b3V0dWJlIixpY29uOls0NDgsNTEyLFs2MTc5OCwieW91dHViZS1zcXVhcmUiXSwiZjQzMSIsIk0yODIgMjU2LjJsLTk1LjItNTQuMSAwIDEwOC4yIDk1LjItNTQuMXpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTE0LjQgMTM2LjFjNy42IDI4LjYgNy42IDg4LjIgNy42IDg4LjJzMCA1OS42LTcuNiA4OC4xYy00LjIgMTUuOC0xNi41IDI3LjctMzIuMiAzMS45LTI4LjMgNy43LTE0Mi4yIDcuNy0xNDIuMiA3LjdzLTExMy45IDAtMTQyLjItNy42Yy0xNS43LTQuMi0yOC0xNi4xLTMyLjItMzEuOS03LjYtMjguNi03LjYtODguMi03LjYtODguMnMwLTU5LjcgNy42LTg4LjJjNC4yLTE1LjggMTYuNS0yOC4yIDMyLjItMzIuNCAyOC4zLTcuNyAxNDIuMi03LjcgMTQyLjItNy43czExMy45IDAgMTQyLjIgNy43YzE1LjcgNC4yIDI4IDE2LjYgMzIuMiAzMi40eiJdfSxGRXQ9WDhlLEJFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdGxhc3NpYW4iLGljb246WzUxMiw1MTIsW10sImY3N2IiLCJNMTUyLjIgMjM2LjRjLTcuNy04LjItMTkuNy03LjctMjQuOCAyLjhMMS42IDQ5MC4yYy01IDEwIDIuNCAyMS43IDEzLjQgMjEuN2wxNzUgMGM1LjggLjEgMTEtMy4yIDEzLjQtOC40IDM3LjktNzcuOCAxNS4xLTE5Ni4zLTUxLjItMjY3LjF6TTI0NC40IDguMWMtMTIyLjMgMTkzLjQtOC41IDM0OC42IDY1IDQ5NS41IDIuNSA1LjEgNy43IDguNCAxMy40IDguNEw0OTcgNTEyYzExLjIgMCAxOC40LTExLjggMTMuNC0yMS43IDAgMC0yMzQuNS00NzAuNi0yNDAuNC00ODIuMy01LjMtMTAuNi0xOC44LTEwLjgtMjUuNiAuMXoiXX0sSEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItaGF0IixpY29uOls2NDAsNTEyLFtdLCJmNGU1IiwiTTY0MCAyNC45Yy04MC44IDUzLjYtODkuNCA5Mi41LTk2LjQgMTA0LjQtNi43IDEyLjItMTEuNyA2MC4zLTIzLjMgODMuNi0xMS43IDIzLjYtNTQuMiA0Mi4yLTY2LjEgNTAtMTEuNyA3LjgtMjguMyAzOC4xLTQxLjkgNjQuMi0xMDguMS00LjQtMTY3LjQgMzguOC0yNTkuMiA5My42IDI5LjQtOS43IDQzLjMtMTYuNyA0My4zLTE2LjcgOTQuMi0zNiAxMzkuMy02OC4zIDI4MS4xLTQ5LjIgMS4xIDAgMS45IC42IDIuOCAuOCAzLjkgMi4yIDUuMyA2LjkgMy4xIDEwLjhsLTUzLjkgOTUuOGMtMi41IDQuNy03LjggNy4yLTEzLjEgNi4xLTEyNi44LTIzLjgtMjI2LjkgMTcuMy0zMTguOSAxOC42LTczLjQgMS4xLTk3LjUtMzMuNS05Ny41LTM1LjEgMC0xLjEgLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zIDczLjYtMTQwLjMgMTM5LjItMTg5LjQgMjEwLjYtMTg5LjQgMCAwIDcxLjcgMCA5MC42IDYxLjkgMjIuOC0zOS43IDI4LjMtNDkuMiAyOC4zLTQ5LjIgNS4zLTkuNCAzNS03Ny4yIDg2LjQtMTQxLjQgNTEuNS02NCA5MC40LTc5LjkgMTE5LjMtOTEuOHoiXX0scUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVybmV0LWV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjZiIiwiTTQ4My4xIDE1OS43YzEwLjktMjQuNiAyMS40LTYwLjQgMjEuNC04Ny45IDAtNzIuNy03OS42LTk4LjQtMjA5LjctMzguNi0xMDcuNi03LjItMjExLjIgNzMuNy0yMzcuMSAxODYuNSAzMC45LTM0LjkgNzguMy04Mi4zIDEyMi0xMDEuMi01NC4zIDQ4LjMtMTAwLjYgMTA5LjQtMTM1LjcgMTczLjItMjAuNyAzNy45LTQ0IDk5LjItNDQgMTQ1IDAgOTguNiA5Mi45IDg2LjUgMTgwLjMgNDIgMzEuNCAxNS40IDY2LjYgMTUuNiAxMDEuNyAxNS42IDk3LjEgMCAxODQuMi01NC4zIDIxNi44LTE0NmwtMTIwLjggMGMtNTIuNSA4OC42LTE5Ni44IDUzLTE5Ni44LTQ3LjRsMzI4LjggMGM2LjQtNDMuNi0xLjctOTUuNy0yNi45LTE0MS4yek02NC42IDM0Ni45QzgyLjMgMzk4IDExOC4zIDQ0Mi43IDE2NC44IDQ3MC4yIDc2LjEgNTE5LjEtOC40IDQ5OS4zIDY0LjYgMzQ2Ljl6TTE4MC41IDIzOGMyLTU1LjIgNTAuMy05NC45IDEwNC05NC45IDUzLjQgMCAxMDIgMzkuNyAxMDQgOTQuOWwtMjA4IDB6TTM2NS4xIDUwLjRjMjEuNC0xMC4zIDQ4LjYtMjIgNzIuNi0yMiAzMS40IDAgNTQuMyAyMS43IDU0LjMgNTMuNyAwIDIwLTcuNCA0OS0xNC42IDY3LjktMjYuMy00Mi4zLTY2LTgxLjYtMTEyLjMtOTkuNnoiXX0sakV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFpcmJuYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjgzNCIsIk0yMjQuNSAzNzMuMWMtMjUuMi0zMS43LTQwLjEtNTkuNC00NS04My4yLTIyLjUtODggMTEyLjYtODggOTAuMSAwLTUuNCAyNC4yLTIwLjMgNTItNDUgODMuMmwtLjEgMHptMTM4LjIgNzMuMmMtNDIuMSAxOC4zLTgzLjctMTAuOS0xMTkuMy01MC41IDEwMy45LTEzMC4xIDQ2LjEtMjAwLTE4LjgtMjAwLTU0LjkgMC04NS4yIDQ2LjUtNzMuMyAxMDAuNSA2LjkgMjkuMiAyNS4yIDYyLjQgNTQuNCA5OS41LTMyLjUgMzYtNjAuNSA1Mi43LTg1LjIgNTQuOS01MCA3LjQtODkuMS00MS4xLTcxLjMtOTEuMSAxNS4xLTM5LjIgMTExLjctMjMxLjIgMTE1LjktMjQxLjYgMTUuOC0zMC4xIDI1LjYtNTcuNCA1OS40LTU3LjQgMzIuMyAwIDQzLjQgMjUuOSA2MC40IDU5LjkgMzYgNzAuNiA4OS40IDE3Ny41IDExNC44IDIzOS4xIDEzLjIgMzMuMS0xLjQgNzEuMy0zNyA4Ni42em00Ny0xMzYuMWMtMTI4LjktMjc0LjMtMTM2LTI3OC4yLTE4NS4xLTI3OC4yLTQ1LjUgMC02NC45IDMxLjctODQuNyA3Mi44LTEwNi4yIDIxMi4zLTExNi40IDI0Mi40LTExNy4zIDI0NS0yNS4yIDY5LjMgMjYuNyAxMzAuMiA4OS42IDEzMC4yIDIxLjcgMCA2MC42LTYuMSAxMTIuNC02Mi40IDU4LjcgNjMuOCAxMDEuMyA2Mi40IDExMi40IDYyLjQgNjIuOSAuMSAxMTQuOS02MC45IDg5LjYtMTMwLjIgMC0zLjktMTYuOC0zOC45LTE2LjgtMzkuNmwwIDB6Il19LFZFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiOCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNDMuOCAzODEuNGMwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNS0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41bDAtMTQzLjEgNDIuMSAwIDAgMTQzLjd6bTk5LjYgNjMuNWMtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZ6Il19LFVFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxdWluc2NhcGUiLGljb246WzUxMiw1MTIsW10sImY0NTkiLCJNMzEzLjcgNDc0LjZsLTEgMGMtNDEuOSAwLTgyLjEtMTYuNy0xMTEuOC00Ni4zcy00Ni4zLTY5LjktNDYuMy0xMTEuOCAxNi43LTgyLjEgNDYuMy0xMTEuOCA2OS45LTQ2LjMgMTExLjgtNDYuM2M5NC45IDAgMTY4LjIgODMuMSAxNTcgMTc2LjYgNCA1LjEgOC4yIDkuNiAxMS4yIDE1LjMgMTMuNC0zMC4zIDIwLjMtNjIuNCAyMC4zLTk3LjcgMC0xMzUuMS0xMDkuNS0yNDQuNi0yNDQuNi0yNDQuNlMxMi4xIDExNy41IDEyLjEgMjUyLjYgMTIxLjYgNDk3LjIgMjU2LjYgNDk3LjJjMjMuOCAuMiA0Ny42LTMuMiA3MC40LTEwLjEtNS4yLTMuNS04LjktOC4xLTEzLjMtMTIuNXptNzguMy0xNjlhOTkuMiA5OS4yIDAgMSAwIDAgMTk4LjQgOTkuMiA5OS4yIDAgMSAwIDAtMTk4LjR6Il19LFdFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZHZlcnNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YSIsIk00ODIuMSAzMkwyOC43IDMyQzUuOCAzMiAwIDM3LjkgMCA2MC45TDAgNDUxLjFDMCA0NzQuNCA1LjggNDgwIDI4LjcgNDgwbDQ1My40IDBjMjQuNCAwIDI5LjktNS4yIDI5LjktMjkuN2wwLTM4OC4xYzAtMjQuNi01LjQtMzAuMi0yOS45LTMwLjJ6TTE3OC40IDIyMC4zYy0yNy41LTIwLjItNzIuMS04LjctODQuMiAyMy40LTQuMyAxMS4xLTkuMyA5LjUtMTcuNSA4LjMtOS43LTEuNS0xNy4yLTMuMi0yMi41LTUuNS0yOC44LTExLjQgOC42LTU1LjMgMjQuOS02NC4zIDQxLjEtMjEuNCA4My40LTIyLjIgMTI1LjMtNC44IDQwLjkgMTYuOCAzNC41IDU5LjIgMzQuNSAxMjguNSAyLjcgMjUuOC00LjMgNTguMyA5LjMgODguOCAxLjkgNC40IC40IDcuOS0yLjcgMTAuNy04LjQgNi43LTM5LjMgMi4yLTQ2LjYtNy40LTEuOS0yLjItMS44LTMuNi0zLjktNi4yLTMuNi0zLjktNy4zLTIuMi0xMS45IDEtNTcuNCAzNi40LTE0MC4zIDIxLjQtMTQ3LTQzLjMtMy4xLTI5LjMgMTIuNC01Ny4xIDM5LjYtNzEgMzguMi0xOS41IDExMi4yLTExLjggMTE0LTMwLjkgMS4xLTEwLjItMS45LTIwLjEtMTEuMy0yNy4zem0yODYuNyAyMjJjMCAxNS4xLTExLjEgOS45LTE3LjggOS45bC0zOTQuOSAwYy03LjQgMC0xOC4yIDQuOC0xNy44LTEwLjcgLjQtMTMuOSAxMC41LTkuMSAxNy4xLTkuMSAxMzIuMy0uNCAyNjQuNS0uNCAzOTYuOCAwIDYuOCAwIDE2LjYtNC40IDE2LjYgOS45em0zLjgtMzQwLjVsMCAyOTFjMCA1LjctLjcgMTMuOS04LjEgMTMuOS0xMi40LS40LTI3LjUgNy4xLTM2LjEtNS42LTUuOC04LjctNy44LTQtMTIuNC0xLjItNTMuNCAyOS43LTEyOC4xIDcuMS0xNDQuNC04NS4yLTYuMS0zMy40LS43LTY3LjEgMTUuNy0xMDAgMTEuOC0yMy45IDU2LjktNzYuMSAxMzYuMS0zMC41bDAtNzFjMC0yNi4yLS4xLTI2LjIgMjYtMjYuMiAzLjEgMCA2LjYgLjQgOS43IDAgMTAuMS0uOCAxMy42IDQuNCAxMy42IDE0LjMtLjEgLjItLjEgLjMtLjEgLjV6TTQxNy40IDMzNC4xYy0xOS41IDQ3LjYtNzIuOSA0My4zLTkwIDUuMi0xNS4xLTMzLjMtMTUuNS02OC4yIC40LTEwMS41IDE2LjMtMzQuMSA1OS43LTM1LjcgODEuNS00LjggMjAuNiAyOC44IDE0LjkgODQuNiA4LjEgMTAxLjF6TTEyMi42IDM2OS40Yy03LjUtMS4zLTMzLTMuMy0zMy43LTI3LjgtLjQtMTMuOSA3LjgtMjMgMTkuOC0yNS44IDI0LjQtNS45IDQ5LjMtOS45IDczLjctMTQuNyA4LjktMiA3LjQgNC40IDcuOCA5LjUgMS40IDMzLTI2LjEgNTkuMi02Ny42IDU4Ljh6Il19LEdFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zIixpY29uOls1MTIsNTEyLFtdLCJmMjVlIiwiTTI1My44IDIxNC45bC0zMy4yIDE3LjNjLTkuNC0xOS42LTI1LjItMTkuOS0yNy41LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy42IDkuMiA0My44IDMzLjIgNDMuOCAxNC41IDAgMjQuNi03LjEgMzAuNi0yMS4zbDMwLjYgMTUuNWMtNi4yIDExLjUtMjUuNyAzOS02NS4xIDM5LTIyLjYgMC03NC0xMC4zLTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNyAxMS45IDY2IDM1Ljl6bTE0MyAwbC0zMi44IDE3LjNjLTkuNS0xOS44LTI1LjctMTkuOS0yNy45LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy41IDkuMiA0My44IDMzLjIgNDMuOCAxNC40IDAgMjQuNi03LjEgMzAuNS0yMS4zbDMxIDE1LjVjLTIuMSAzLjgtMjEuNCAzOS02NS4xIDM5LTIyLjcgMC03NC05LjktNzQtNzcgMC01OC43IDQzLTc3LjEgNzIuNi03Ny4xIDMwLjcgMCA1Mi42IDExLjkgNjUuNiAzNS45ek0yNTUuNiA4QzExMi43IDggOCAxMjMuMSA4IDI1Ni4xIDggMzk0LjUgMTIxLjYgNTA0LjEgMjU1LjYgNTA0LjEgMzg1LjUgNTA0LjEgNTA0IDQwMy4yIDUwNCAyNTYuMSA1MDQgMTE4LjIgMzk3LjQgOCAyNTUuNiA4em0uOSA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjQtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjUgMCAyMDIuOCA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNyAyMDIuOC0yMDIuOCAyMDIuOHoiXX0sS0V0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTdkOSIsIk05NC45IDEwMC4yYzE0LjkgMTIuMSAyMC41IDExLjIgNDguNiA5LjNMNDA3LjggOTMuNmM1LjYgMCAuOS01LjYtLjktNi41TDM2Mi45IDU1LjRjLTguNC02LjUtMTkuNi0xNC00MS4xLTEyLjFMNjUuOSA2MS45Yy05LjMgLjktMTEuMiA1LjYtNy41IDkuM2wzNi40IDI4Ljl6bTE1LjkgNjEuNmwwIDI3OC4xYzAgMTQuOSA3LjUgMjAuNSAyNC4zIDE5LjZsMjkwLjUtMTYuOGMxNi44LS45IDE4LjctMTEuMiAxOC43LTIzLjNsMC0yNzYuMmMwLTEyLjEtNC43LTE4LjctMTUtMTcuN0wxMjUuNyAxNDMuMWMtMTEuMiAuOS0xNC45IDYuNS0xNC45IDE4Ljd6bTI4Ni43IDE0LjljMS45IDguNCAwIDE2LjgtOC40IDE3LjhsLTE0IDIuOCAwIDIwNS4zYy0xMi4yIDYuNS0yMy40IDEwLjMtMzIuNyAxMC4zLTE1IDAtMTguNy00LjctMjkuOS0xOC43bC05MS41LTE0My43IDAgMTM5IDI5IDYuNXMwIDE2LjgtMjMuNCAxNi44bC02NC40IDMuN2MtMS45LTMuNyAwLTEzLjEgNi41LTE0LjlsMTYuOC00LjcgMC0xODMuOC0yMy4zLTEuOWMtMS45LTguNCAyLjgtMjAuNSAxNS45LTIxLjVsNjkuMS00LjcgOTUuMyAxNDUuNiAwLTEyOC44LTI0LjMtMi44Yy0xLjktMTAuMyA1LjYtMTcuNyAxNC45LTE4LjdsNjQuNS0zLjh6TTQ0LjQgMzYuN0wzMTAuNiAxNy4xYzMyLjctMi44IDQxLjEtLjkgNjEuNiAxNGw4NSA1OS43YzE0IDEwLjMgMTguNyAxMy4xIDE4LjcgMjQuM2wwIDMyNy42YzAgMjAuNS03LjUgMzIuNy0zMy42IDM0LjVMMTMzLjIgNDk1LjhjLTE5LjYgLjktMjktMS45LTM5LjItMTQuOUwzMS40IDM5OS43Yy0xMS4yLTE0LjktMTUuOS0yNi4xLTE1LjktMzkuMmwwLTI5MS4yYzAtMTYuOCA3LjUtMzAuOCAyOC45LTMyLjd6Il19LFlFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWVjYXN0IixpY29uOls1MTIsNTEyLFtdLCJmODM4IiwiTTQ0OCA2NEw2NC4yIDY0Yy0yMy42IDAtNDIuNyAxOS4xLTQyLjcgNDIuN2wwIDYzLjkgNDIuNyAwIDAtNjMuOSAzODMuOCAwIDAgMjk4LjYtMTQ5LjIgMCAwIDQyLjcgMTQ5LjQgMGMyMy42IDAgNDIuNy0xOS4xIDQyLjctNDIuN2wwLTI5OC42QzQ5MC45IDgzLjEgNDcxLjYgNjQgNDQ4IDY0ek0yMS41IDM4My42bDAgNjMuOSA2My45IDBjMC0zNS4zLTI4LjYtNjMuOS02My45LTYzLjl6bTAtODVsMCA0Mi40YzU4LjkgMCAxMDYuNiA0OC4xIDEwNi42IDEwN2w0Mi43IDBjLjEtODIuNC02Ni45LTE0OS4zLTE0OS4zLTE0OS40ek0yMTMuNiA0NDhsNDIuNyAwQzI1NS44IDMxOC41IDE1MSAyMTMuNyAyMS41IDIxMy40bDAgNDIuNGMxMDYtLjIgMTkyIDg2LjIgMTkyLjEgMTkyLjJ6Il19LFpFdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcy1odWIiLGljb246WzUxMiw1MTIsW10sImU4NmUiLCJNMTMwLjQgMTZjNjAuOSAwIDExMC40IDQ5LjUgMTEwLjQgMTEwLjRsMCAyNC45YzQuOC0uNyA5LjctMSAxNC42LTEgODguMS0uMiAxNjUuMSA0OSAyMDUuNCAxMjEuMi0yMi44LTE2LjItNTAuNy0yNS40LTgwLjQtMjUuMy03Ny4xIC4yLTEzOS41IDYyLjYtMTM5LjYgMTM5LjQtLjEgNjAuOS00OS41IDExMC4zLTExMC43IDExMC41LTYwLjYgLjItMTEwLjItNDkuNS0xMTAuMi0xMTAuNSAuMi0yLjYgMCAwIC4xLTMuMmwwLTI1NkMyMC4xIDY1LjUgNjkuNSAxNiAxMzAuNCAxNnpNMzgwLjMgNDk2YTExMC40IDExMC40IDAgMSAxIDAtMjIwLjkgMTEwLjQgMTEwLjQgMCAxIDEgMCAyMjAuOXoiXX0sWEV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Indpa2lwZWRpYS13IixpY29uOls2NDAsNTEyLFtdLCJmMjY2IiwiTTY0MCA1MS4ybC0uMyAxMi4yYy0yOC4xIC44LTQ1IDE1LjgtNTUuOCA0MC4zLTI1IDU3LjgtMTAzLjMgMjQwLTE1NS4zIDM1OC42bC0xMy42IDAtODEuOS0xOTMuMWMtMzIuNSA2My42LTY4LjMgMTMwLTk5LjIgMTkzLjEtLjMgLjMtMTUgMC0xNS0uMy00Ni45LTEwOS43LTk2LjEtMjE4LjYtMTQzLjEtMzI4LjYtMTEuNC0yNi43LTQ5LjQtNzAtNzUuNi02OS43IDAtMy4xLS4zLTEwLS4zLTE0LjJsMTYxLjkgMCAwIDEzLjljLTE5LjIgMS4xLTUyLjggMTMuMy00My4zIDM0LjIgMjEuOSA0OS43IDEwMy42IDI0MC4zIDEyNS42IDI4OC42IDE1LTI5LjcgNTcuOC0xMDkuMiA3NS4zLTE0Mi44LTEzLjktMjguMy01OC42LTEzMy45LTcyLjgtMTYwLTkuNy0xNy44LTM2LjEtMTkuNC01NS44LTE5LjdsMC0xMy45IDE0Mi41IC4zIDAgMTMuMWMtMTkuNCAuNi0zOC4xIDcuOC0yOS40IDI2LjEgMTguOSA0MCAzMC42IDY4LjEgNDguMSAxMDQuNyA1LjYtMTAuOCAzNC43LTY5LjQgNDguMS0xMDAuOCA4LjktMjAuNi0zLjktMjguNi0zOC42LTI5LjQgLjMtMy42IDAtMTAuMyAuMy0xMy42IDQ0LjQtLjMgMTExLjEtLjMgMTIzLjEtLjZsMCAxMy42QzQ2Mi40IDY0IDQzOS4xIDc2IDQyNi44IDk0LjlMMzY3LjYgMjE3LjdjNi40IDE2LjEgNjMuMyAxNDIuOCA2OS4yIDE1Ni43TDU1OS4yIDkxLjhjLTguNi0yMy4xLTM2LjQtMjguMS00Ny4yLTI4LjNsMC0xMy45IDEyNy44IDEuMSAuMiAuNXoiXX0sUUV0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdHJveCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ0YSIsIk0yMTIuNCAwbDAgMCAyMzUuNiAwIDAgMTI4LTM4NCAwQzY0IDU3LjYgMTQxLjggLjUgMjEyLjQgMHptMjQuOCAxOTJsMCAwYzY5LjkgLjUgMTQ2LjcgNTcuNiAxNDYuNyAxMjhsLTE3My4yIDAgMCAwQzE0MC45IDMxOS42IDY0IDI2Mi40IDY0IDE5MmwxNzMuMyAwem0tMS43IDMyMGM3MC43LS41IDE0OC40LTU3LjYgMTQ4LjQtMTI4bC0zODQgMCAwIDEyOCAyMzUuNiAwIDAgMHoiXX0sUThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1naXRsYWIiLGljb246WzQ0OCw1MTIsWyJnaXRsYWItc3F1YXJlIl0sImU1YWUiLCJNMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2em0zMzcuNSAxMi41bDQ0LjYgMTE2LjQgLjQgMS4yYzUuNiAxNi44IDcuMiAzNS4yIDIuMyA1Mi41LTUgMTcuMi0xNS40IDMyLjQtMjkuOCA0My4zbC0uMiAuMS02OC40IDUxLjItNTQuMSA0MC45Yy0uNSAuMi0xLjEgLjUtMS43IC44LTIgMS00LjQgMi02LjcgMi0zIDAtNi44LTEuOC04LjMtMi44bC01NC4yLTQwLjktNjcuOS01MC45LS40LS4zLS4yLS4xYy0xNC4zLTEwLjgtMjQuOC0yNi0yOS43LTQzLjNzLTQuMi0zNS43IDIuMi01Mi41bC41LTEuMiA0NC43LTExNi40Yy45LTIuMyAyLjUtNC4zIDQuNS01LjYgMS42LTEgMy40LTEuNiA1LjItMS44IDEuMy0uNyAyLjEtLjQgMy40IC4xIC42IC4yIDEuMiAuNSAyIC43IDEgLjQgMS42IC45IDIuNCAxLjUgLjYgLjQgMS4yIDEgMi4xIDEuNSAxLjIgMS40IDIuMiAzIDIuNyA0LjhsMjkuMiA5Mi4yIDEyMi45IDAgMzAuMi05Mi4yYy41LTEuOCAxLjQtMy40IDIuNi00LjhzMi44LTIuNCA0LjUtMy4xYzEuNy0uNiAzLjYtLjkgNS40LS43czMuNiAuOCA1LjIgMS44YzIgMS4zIDMuNyAzLjMgNC42IDUuNnoiXX0sSkV0PVE4ZSxlUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hvZWxhY2UiLGljb246WzUxMiw1MTIsW10sImU2MGMiLCJNNDA1LjIgMzMxYzIuMi0xLjEgNC40LTIuMyA2LjUtMy43bDguMy00LjhjMS41LTEuMSA0LjQtMy40IDguNy02LjdsLjUtLjVjMy40LTMuNCA3LjItNSAxMS4zLTQuOSAxLjggMCAzLjkgLjUgNi40IDEuNWwzMS0yNy41Yy45LS43IDEuNy0xLjMgMi42LTEuOGwuMiAwYzMuMy0xLjkgNi0xLjggOC4yIC40IDMuOSAyLjEgNC4yIDUuNiAuOSAxMC42TDQ1Ny4yIDMyMmMuMiAuNSAuNCAxIC40IDEuNSAuNSAyLjIgLjMgNC40LS41IDYuNi0uNyAxLjUtMS44IDIuOS0zLjEgNC4yLTEuNCAxLjQtMi43IDIuOC00LjIgNC4yTDQzMSAzNTIuMmMtMS43IDEuMi0zLjQgMi4zLTUuMSAzLjMtMi4xIDEuMy00LjMgMi41LTYuNiAzLjYtMSAuNC0xLjkgLjktMi45IDEuMy01LjkgMi41LTExLjkgNC4yLTE4LjIgNS0yLjkgMjQuNS0xMS4zIDQ3LjEtMjUuMSA2Ny44LTE3LjUgMjUuNy00MS40IDQ1LjQtNzEuOCA1OC44LTMwLjIgMTMuNS02MyAyMC4yLTk4LjIgMjAuMi00OC42LS41LTg4LTExLjQtMTE4LjItMzIuOC0zNS4xLTI1LTUyLjYtNTcuOS01Mi42LTk5LjFsMC01LjZjMS4yLTI4LjEgOS41LTU0LjYgMjQuOC03OS44IDE1LjEtMjQuOSAzNy4xLTQxLjcgNjYuMS01MC41IDE0LjktNC40IDI5LjktNi42IDQ1LTYuNiAxNS41IDAgMzEuNiAyLjkgNDguMSA4LjZzMzUuMiAxNS41IDU1LjkgMjkuNWw1NC4xIDM2LjNjMTUuMSA5LjggMjguOCAxNi41IDQxLjIgMjAtMi42LTI1LjEtMTEuNy00Ni42LTI3LjMtNjQuNS0xNS43LTE4LjEtMzUuNi0zMS4zLTU5LjktMzkuN0wyNTcgMjIwYy0yMS40LTcuNS0zNy4zLTE0LjktNDcuNy0yMi4yLTI4LjItMTkuMS00My44LTQ1LjItNDctNzguNWwtLjUtOS44YzAtMzIuMSAxMy01OC45IDM5LTgwLjUgMjMtMTkuMyA1MC42LTI5IDgyLjUtMjkgMjQgMCA0NS42IDYuOSA2NC43IDIwLjggMTkuMiAxNCAzMC4xIDMzLjggMzIuNiA1OS40bC41IDEwYzAgMTguNi00LjggMzQuNS0xNC40IDQ3LjctOS44IDEzLjItMTguNSAxOS45LTI2IDE5LjktMS42LS4xLTMuMS0uMy00LjUtLjZsLTM0IDMyYy01LjUgMy05LjIgMi41LTExLjEtMS42LTEuOS0yLjItMS44LTQuOSAuNS04LjJsLjItLjJjLjUtLjcgMS4yLTEuNSAyLTIuNGwzMS42LTMwYy0uNC0xLjUtLjYtMy4xLS42LTQuOCAwLTQuMSAxLjYtNy42IDQuOS0xMC40IDEzLjgtMTIuNCAyMC44LTI2LjcgMjAuOC00Mi44IDAtMTYtNi4xLTI5LjUtMTguMi00MC40cy0yOC43LTE2LjUtNDkuNy0xNi44Yy0yNi4yIDAtNDcuOCA3LjktNjQuNyAyMy43UzE5Mi42IDg5LjkgMTkyLjYgMTEyYzAgMTcuOCA2LjkgMzMuOSAyMC42IDQ4LjMgMTMuNiAxNC4yIDM0LjYgMjUuNCA2MyAzMy41IDM5LjggMTEuNSA3MC4yIDMxIDkxLjMgNTguMyAxOC43IDI0LjIgMjkuMSA1MS4zIDMxLjMgODEuNCAyLjItLjcgNC4zLTEuNSA2LjUtMi42bC0uMSAuMXpNMjk0LjQgMTc4LjdjMCAxLjEgLjYgMS42IDEuOCAxLjYgLjEgMCA5LjctOC45IDI4LjgtMjYuNiAwLTIuNC01LjEgLjktMTUuMyAxMC0xMC4yIDkuMi0xNS4zIDE0LjItMTUuMyAxNC45bDAgLjF6bTggNi40YzAtMS0uNS0xLjUtMS41LTEuNS0xLjEgMC0yLjEgLjUtMi45IDEuNi0xLjktLjEtMy4zIC4xLTQuMiAuNy0uNCAuMi0uNSAuNS0uNSAuNyAwIC43IC41IDEuMyAxLjUgMS42bDMuMyAwYzIuOS0xLjEgNC40LTIuMiA0LjQtMy4zbC0uMSAuMnpNMzI1IDE2NS4yYzAtMi44LTEuNi0yLjgtNC45IDAtMS42IDEuNS0zLjYgMy41LTYgNi4yLS44IC42LTIuNiAyLjItNS4zIDQuOS0yLjggMi45LTQuMiA0LjctNC4yIDUuM2wuMiAxLjNjLjcgLjIgMS4yIC40IDEuNSAuNCAuMSAwIDMuMy0yLjkgOS41LTguN3M5LjMtOC45IDkuMy05LjNsLS4xLS4xem0xNTkuNyAxMjBsLTMwLjYgMjdjMS44IDEgMy4yIDIuNCA0IDQuMmwzMC4yLTI3Yy4yLTEuMiAuMS0yLjItLjUtMi45LS42LS41LTEuNi0uOS0zLjEtMS4zem0tMS42LS45bC0uNy0uNy0yNyAyMS45IDEuNiAyIDI2LTIzLjEgLjEtLjF6TTM2Ni45IDM2My45Yy04LTIuMS0xNS40LTQuNi0yMi4yLTcuNS0xNS4zLTYuMi0zNC4zLTE3LTU3LTMyLjRsLTM3LjQtMjUuM2MtMTUuOC0xMC4xLTMwLjItMTcuNi00My4yLTIyLjYtMTMuMS00LjktMjYtNy4zLTM4LjYtNy4zbC01LjUgMGMtMzIuMiAxLjctNTcuMiAxMy44LTc1IDM2LjItMTYuNiAyMC44LTI1IDQ1LjMtMjUgNzMuNiAwIDMxLjggMTIuOCA1Ni43IDM4LjIgNzQuNyAyNS40IDE4LjEgNjAuMiAyNy4xIDEwNC40IDI3LjEgMzQuNyAwIDY0LTYuMiA4Ny44LTE4LjYgMjMuNy0xMi40IDQyLjEtMjguOCA1NS4yLTQ5LjIgOS44LTE1LjUgMTUuOS0zMS44IDE4LjItNDguOGwuMSAuMXoiXX0sdFB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5zdHJlZXRtYXAiLGljb246WzUxMiw1MTIsW10sImU4NmIiLCJNNjEgNDk4LjdjLTcuMS0xLjgtMTAuOC00LjctMjkuNi0yMy42LTIyLjUtMjIuNC0yMy45LTI0LjYtMjMuOS0zNi4zIDAtMTMtMy45LTguNCA2Ny45LTgwLjMgNzIuNS03Mi43IDY4LjctNjkuNSA4MS45LTY5LjUgNi4xIDAgNy42IC40IDEyLjUgMi44bDUuNiAyLjhjMTEuNy0xMS43IDIzLjQtMjMuNCAzNS4xLTM1LjFsLTQuNC02LjljLTguNi0xMy4zLTE2LjYtMzIuOC0yMC4zLTQ4LjktMTAuMi00NS40IC44LTkzLjMgMjkuOC0xMjkuNyA1MC4xLTYyLjggMTQwLjEtNzYuNyAyMDYuNi0zMiAzNi41IDI0LjUgNjAuMyA2Mi41IDY3IDEwNyAxLjQgOS40IDEuNCAzMS44IDAgNDEuOC00LjkgMzQuNi0xOS43IDY0LTQ0LjQgODguNy0xMi43IDEyLjctMjMgMjAuMS0zOS4yIDI4LjItMTkuMyA5LjctMzUuNyAxNC4zLTU4IDE2LjEtMzEuNyAyLjYtNjYuOS02LjEtOTMuOC0yMy40bC02LjktNC40Yy0xMS43IDExLjctMjMuNCAyMy40LTM1LjEgMzUuMWwyLjggNS42YzIuNSA0LjkgMi44IDYuNCAyLjggMTIuNSAwIDEzLjEgMy4xIDkuNC02OSA4MS41LTU1LjYgNTUuNS02NC4xIDYzLjctNjguNCA2NS43LTUuNSAyLjUtMTMuOSAzLjQtMTkgMi4xek0zNTkuNCAyOTYuOWM0MC4xLTcuMyA3NS4xLTM0IDkyLjctNzAuNyAyOC01OC40IDkuMi0xMjctNDQuOC0xNjMuMy0xMi45LTguNy0zMC44LTE2LTQ3LjctMTkuNC0xMS43LTIuNC0zNi40LTIuMS00OC42IC41LTE4LjIgMy45LTM0LjkgMTEuMS00OS40IDIxLjQtOC45IDYuNC0yMy43IDIxLjEtMjkuOSAyOS45LTM0LjYgNDktMzEuNSAxMTQuMSA3LjcgMTU5LjMgMjAuMSAyMy4yIDQ3LjggMzguNCA3OC42IDQzIDEwLjIgMS41IDMxIDEuMiA0MS41LS44em0tMzUuNS0xNy40Yy0xMy44LTIuMi0yNS42LTUuNy0zNS4xLTEwLjVsLTUuNC0yLjcgMC00OS45LTkuNSAwYy04LjIgMC0xOS41IDEuNi0yNy43IDQtMS4xIC4zLTEuNSAxLjYtMS43IDQuOGwtLjMgNC40LTQuMS03LjhjLTktMTcuMi0xMi4yLTMwLjctMTIuMi01MS40IDAtMTYgMS4xLTIzLjQgNS42LTM2LjMgMi40LTYuOCA4LjItMTguOSAxMC44LTIyLjMgMS4xLTEuNSAxLjItMS4xIDEuMyAzLjNsMCA1YzE4LjgtLjIgMzcuNi0uMyA1Ni40LS41IC4yLTQuNyAuMy05LjUgLjUtMTQuMmwtMTkgMCAwLTMxIDMuNC0xLjdjNS42LTIuOCAxNS45LTYuNyAyMS43LTguMiAzLS44IDYuMS0xLjYgNi45LTEuOCAxLjItLjQgMS4zIC4xIC43IDMuMy0xLjIgNi4xLS45IDIzIC41IDI5IDIuOCAxMS45IDkuOCAyMC43IDE5LjIgMjQuMyA1LjYgMi4xIDE2LjMgMi42IDIyLjUgLjkgNS45LTEuNiAxMi41LTYuNCAxNS45LTExLjUgNS03LjUgNi43LTE0LjEgNy4yLTI3LjFsLjQtMTEuNCA3IDMuNmM4IDQuMiAxNy44IDExLjIgMjQuOSAxOCA0LjggNC42IDUgNC44IDUgOS4ybDAgNC41LTE4LjkgMCAwIDE0LjYgMzUgMGMxLjMgMi42IDIuNSA1LjIgMy44IDcuN2wtOS43IDBjLTYuNyAwLTEyLjcgLjYtMTkuNCAxLjlsLTkuNyAxLjkgMCA3LjFjMCAzLjkgLjIgNy4xIC4zIDcuMXM0LjEtLjggOC43LTEuNyA4LjctMS43IDkuMS0xLjdjLjQgMCAuOCAxMS4zIC44IDI1LjhsMCAyNS44Yy02LjIgLjItMTIuMyAuMy0xOC41IC41LS4yIDQuNy0uMyA5LjQtLjUgMTQuMiAxMy41IC4yIDI3IC4zIDQwLjQgLjUtMSAyLjMtMiA0LjUtMyA2LjhsLTEwLjcgLjFjLTkuOSAuMS0xMS4xIC4yLTE1LjYgMi41LTExLjggNS44LTE4LjEgMTguOS0xOC4zIDM3LjlsLS4xIDkuMy01LjggM2MtNSAyLjYtMjIuNiA5LTI0LjkgOS0uNSAwLS44LTEyLS44LTMwLjZsMC0zMC42LTkuNCAwYy02IDAtMTIuNCAuNi0xNy45IDEuNy0xMi42IDIuNi0xMS41IDEuNy0xMS41IDkuNSAwIDUgLjMgNi44IDEuMSA2LjggLjYgMCA0LjYtLjggOC44LTEuN3M4LTEuNyA4LjMtMS43IC42IDExIC42IDI0LjVsMCAyNC41LTcuNS0uMWMtNC4xLS4xLTguNS0uMy05LjctLjV6bS0zOS40LTcxLjZjOC45LTMuOSAxNS42LTEyLjkgMTguMy0yNC40IDEuNi02LjkgMS43LTIyLjYgMC0zMC4yLTIuNS0xMi05LjYtMjEuMS0xOS4zLTI0LjgtNi45LTIuNi0xOC40LTIuNi0yNS4zIDAtOS43IDMuNy0xNi40IDEyLjgtMTkuMiAyNS42LTEuNiA3LjUtMS42IDIxLjQgMCAyOC45IDIuNiAxMi41IDEwLjUgMjIuMyAyMC42IDI1LjYgNyAyLjMgMTguOSAyIDI0LjktLjd6bS0xOS45LTE0LjVjLTMuNS0zLTUuMi04LjktNS44LTIwLjYtLjYtMTAuNSAuNi0yMS4zIDIuOS0yNiAyLTQuMyA1LjgtNi40IDEwLjQtNiA3LjQgLjggMTAuMyA2LjUgMTEuMSAyMi41IC45IDE2LjctMS45IDI4LjktNyAzMS4zLTMuOSAxLjgtOC42IDEuMy0xMS42LTEuMnptOTQuOSAxNS4xYzE1LTQuNiAyMi44LTIwLjEgMjEuOS00My41LS44LTE5LjktNy45LTMyLjEtMjEuNS0zNy4yLTUuNy0yLjEtMTgtMS44LTI0IC41LTkuNiAzLjctMTYuNCAxMi40LTE5LjMgMjQuNy0yIDguNi0xLjMgMjggMS4zIDM1LjIgNCAxMS4zIDExLjYgMTguNyAyMS40IDIxIDUuOCAxLjQgMTQuNCAxIDIwLjMtLjh6bS0xNi43LTE0LjJjLTUtMi43LTcuMy0xMy4yLTYuNS0zMC4xIC42LTEyLjggMS41LTE2LjcgNC44LTIwLjQgNC43LTUuMyAxMy42LTMuOCAxNi43IDIuOCAzLjQgNy4zIDQgMzAuMSAxIDQwLjItMS43IDUuNy01LjIgOC44LTEwLjEgOC43LTIgMC00LjYtLjYtNS44LTEuM3ptLTg1LjIgNTEuNWMtNy4zLTcuNi05LjktMTEuNC04LjQtMTEuOSAyLjktLjkgMTMuOS0zLjEgMTQuMi0yLjggLjIgLjIgLjIgNC45IC4xIDEwLjRsLS4yIDEwLjEtNS42LTUuOXptMTU2LjQtMS4yYy43LTYgMy4xLTExLjUgNS43LTEzLjIgMi45LTEuOCA2LjQtMi42IDgtMS43IDEuMiAuNyAuOSAxLjUtMi40IDUuOS0yLjEgMi44LTUuNiA3LTcuOCA5LjRsLTQgNC4zIC41LTQuN3pNNDM4LjQgMTYxbC4xLTMyLjkgMi42IDcuN2M1LjEgMTUuMyA2LjkgMzEuOCA1LjEgNDYuNi0xLjQgMTEuNi0xLjQgMTEuNS00LjkgMTEuNWwtMyAwIC4xLTMyLjl6TTM0NCAxMDYuMmMtMi42LTEtNS4zLTQuOC02LjUtOS0xLjItNC0xLjUtMjguNS0uNC0zMy41IC42LTMgLjktMy4yIDMuOC0zLjIgNi4yIDAgMTguMyAyIDE4LjcgMy4xIC4yIC42IC43IDQuOSAxIDkuNSAuNyA5LjctLjcgMjMuMi0yLjggMjcuNi0yLjQgNS4xLTguNSA3LjUtMTMuNyA1LjN6bS05NC4zLTIuNGMuNC0uOCAzLjctNC42IDcuMy04LjRsNi41LTYuOWMwIDUuNiAwIDExLjIgLjEgMTYuOGwtNy4zIDBjLTYuNyAwLTcuMy0uMS02LjUtMS41em0zNC40IDM0MS43Yy0yNC02LjktNDMuOS0xMi45LTQ0LjItMTMuMS0uNS0uNiAyNC4zLTg4LjUgMjUuMy04OS42IC41LS41IDg1LjQgMjMuMyA4OC45IDI0LjkgMS4yIC42LS4xIDUuOC0xMC42IDQyLjQtNi42IDIzLTEyLjQgNDMuMi0xMi44IDQ1cy0xLjQgMy4yLTEuOSAzLjEtMjAuNy01LjgtNDQuNy0xMi43ek0zNDIuOCA0NTZjMC0xLjEgMjQuNy04Ny4zIDI1LjEtODcuNiAuOS0uNyA4Ny4xLTI0LjcgODcuNC0yNC40IC40IC40LTI0LjEgODcuMy0yNC43IDg3LjktLjQgLjMtODMuMiAyNC04NS44IDI0LjUtMS4xIC4yLTEuOSAuMS0xLjktLjR6TTE5OS42IDQxNy41YzE3LTE3LjEgMzIuMi0zMi43IDMzLjctMzQuNyAzLjQtNC41IDguMi0xNC44IDkuNS0yMC41IC41LTIuNCAxLjEtNy4xIDEuMi0xMC41bC4yLTYuMiAzLjctMWMyLS42IDMuOC0uOSA0LS43IC41IC41LTI0LjMgODctMjUuMSA4Ny44LS40IC4zLTEzLjYgNC4zLTI5LjQgOC44bC0yOC43IDguMiAzMS0zMS4xem0xNjYuOS02MS42Yy0uMi0uMy0uNy0yLTEuMi0zLjdsLS45LTMuMiAzLjItLjVjMjctNC42IDU1LjktMTcuMyA3OC43LTM0LjUgMy4zLTIuNSA1LjEtMy40IDUuMy0yLjcgMS4xIDMuMyA1LjUgMTkuMSA1LjQgMTkuMy0uNyAuNy05MC4yIDI1LjgtOTAuNSAyNS40ek02Mi45IDMyOS44Yy0xLS44LTIzLjgtNzcuOS0yNS41LTg2LjQtLjMtMS43IDMtLjkgNDMuOCAxMC44IDQyLjcgMTIuMiA0NC4yIDEyLjcgNDQuOCAxNC45IC41IDIgLjIgMi42LTIuNSA0LjUtMS43IDEuMi0xNS41IDE0LjYtMzAuNyAyOS44cy0yNy44IDI3LjYtMjggMjcuNi0xLjEtLjUtMS44LTEuMXptMTYuNS04OC4yYy0yMy45LTYuOS00My41LTEyLjYtNDMuNi0xMi42LS4zLS4yIDI1LjMtODkuMyAyNS45LTg5LjggLjQtLjQgODkuMSAyNC40IDkwIDI1LjIgLjIgLjItNS40IDIwLjUtMTIuNCA0NS4xLTExLjYgNDAuNy0xMi45IDQ0LjgtMTQuNSA0NC43LTEgMC0yMS4zLTUuNy00NS4yLTEyLjZ6bTU5LjYgMTAuOGMuMi0uNiA0LjMtMTQuNSA4LjktMzAuOWw4LjUtMjkuNyAxLjEgNi41YzEuOSAxMS4yIDUuMyAyMy45IDkuMyAzNS4xIDIuMSA1LjkgMy44IDEwLjkgMy42IDExcy02LjcgMi0xNC41IDQuMy0xNC45IDQuMi0xNS44IDQuNWMtMS4xIC4zLTEuNSAuMS0xLjItLjd6TTEwNiAxMzkuMWMtMjMuOS02LjktNDMuNy0xMi44LTQzLjktMTMuMi0uOC0xLjMtMjUuMS04Ny0yNC43LTg3LjQgLjUtLjUgODYuOCAyNC4zIDg3LjYgMjUuMSAuOSAxIDI1LjggODguMiAyNS4xIDg4LS4zIDAtMjAuMS01LjctNDQtMTIuNnptNDMuMi0zNC41QzEzNi41IDYwIDEzOSA2OC44IDEzNy4yIDYyLjVsMzQuMS05LjdjMTguOC01LjQgMzQuNy05LjkgMzUuNC0xMC4ycy0xLjYgMi44LTUuMiA2LjhjLTE5LjEgMjEuMy0zMS41IDQ0LTM5LjQgNzEuOS0xLjUgNS4yLTIuNyAxMC4zLTIuNyAxMS4zIDAgNS45LTIuMy0uNS0xMC4yLTI4eiJdfSxhUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VsbGNhc3QiLGljb246WzQ0OCw1MTIsW10sImYyZGEiLCJNMzUzLjUgMzJMOTQuOCAzMkM0Mi43IDMyIC4xIDc0LjYgLjEgMTI2LjZsMCAyNTguN0MuMSA0MzcuNCA0Mi43IDQ4MCA5NC44IDQ4MGwyNTguNyAwYzUyLjEgMCA5NC43LTQyLjYgOTQuNy05NC42bDAtMjU4LjhjMC01Mi00Mi42LTk0LjYtOTQuNy05NC42em0tNTAgMzE2LjRjLTI3LjkgNDguMi04OS45IDY0LjktMTM4LjIgMzcuMi0yMi45IDM5LjgtNTQuOSA4LjYtNDIuMy0xMy4ybDE1LjctMjcuMmM1LjktMTAuMyAxOS4yLTEzLjkgMjkuNS03LjkgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyAyNy42IDE1LjkgNjMuNCA2LjMgNzkuNC0yMS4zIDE1LjktMjcuNiA2LjMtNjMuNC0yMS4zLTc5LjQtMTcuOC0xMC4yLS42LS40LTE4LjYtMTAuNi0yNC42LTE0LjItMy40LTUxLjkgMjEuNi0zNy41IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgNDguNCAyOCA2NS4xIDkwLjMgMzcuMiAxMzguNXptMjEuOC0yMDguOGMtMTcgMjkuNS0xNi4zIDI4LjgtMTkgMzEuNS02LjUgNi41LTE2LjMgOC43LTI2LjUgMy42LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctMjcuNi0xNS45LTYzLjQtNi4zLTc5LjQgMjEuM3MtNi4zIDYzLjQgMjEuMyA3OS40YzAgMCAxOC41IDEwLjYgMTguNiAxMC42IDI0LjYgMTQuMiAzLjQgNTEuOS0yMS42IDM3LjUtMTguNi0xMC44IC4xIC4xLTE4LjUtMTAuNy00OC4yLTI3LjgtNjQuOS05MC4xLTM3LjEtMTM4LjQgMjcuOS00OC4yIDg5LjktNjQuOSAxMzguMi0zNy4ybDQuOC04LjRjMTQuMy0yNC45IDUyLTMuMyAzNy43IDIxLjV6Il19LHNQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXgiLGljb246WzQ0OCw1MTIsW10sImYzY2IiLCJNMCA2NEwwIDQxMi45YzAgNTYuMiA4OCA1OC4xIDg4IDBsMC0yMzguNmM3LjktNTIuOSA4OC01MC40IDg4IDYuNWwwIDE3NS4zYzAgNTcuOSA5NiA1OCA5NiAwTDI3MiAyNDBjNS4zLTU0LjcgODgtNTIuNSA4OCA0LjNsMCAyMy44YzAgNTkuOSA4OCA1Ni42IDg4IDBMNDQ4IDY0IDAgNjR6Il19LGlQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hcHBsZS1wYXkiLGljb246WzU3Niw1MTIsW10sImY0MTYiLCJNMzAyLjIgMjE4LjRjMCAxNy4yLTEwLjUgMjcuMS0yOSAyNy4xbC0yNC4zIDAgMC01NC4yIDI0LjQgMGMxOC40IDAgMjguOSA5LjggMjguOSAyNy4xek0zNDkuNyAyODFjMCA4LjMgNy4yIDEzLjcgMTguNSAxMy43IDE0LjQgMCAyNS4yLTkuMSAyNS4yLTIxLjlsMC03LjctMjMuNSAxLjVjLTEzLjMgLjktMjAuMiA1LjgtMjAuMiAxNC40ek01NzYgNzlsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDc5Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDc5QzAgNTIuNSAyMS41IDMxIDQ4IDMxbDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjcuOCAxOTcuMmM4LjQgLjcgMTYuOC00LjIgMjIuMS0xMC40IDUuMi02LjQgOC42LTE1IDcuNy0yMy43LTcuNCAuMy0xNi42IDQuOS0yMS45IDExLjMtNC44IDUuNS04LjkgMTQuNC03LjkgMjIuOHptNjAuNiA3NC41Yy0uMi0uMi0xOS42LTcuNi0xOS44LTMwLS4yLTE4LjcgMTUuMy0yNy43IDE2LTI4LjItOC44LTEzLTIyLjQtMTQuNC0yNy4xLTE0LjctMTIuMi0uNy0yMi42IDYuOS0yOC40IDYuOS01LjkgMC0xNC43LTYuNi0yNC4zLTYuNC0xMi41IC4yLTI0LjIgNy4zLTMwLjUgMTguNi0xMy4xIDIyLjYtMy40IDU2IDkuMyA3NC40IDYuMiA5LjEgMTMuNyAxOS4xIDIzLjUgMTguNyA5LjMtLjQgMTMtNiAyNC4yLTYgMTEuMyAwIDE0LjUgNiAyNC4zIDUuOSAxMC4yLS4yIDE2LjUtOS4xIDIyLjgtMTguMiA2LjktMTAuNCA5LjgtMjAuNCAxMC0yMXptMTM1LjQtNTMuNGMwLTI2LjYtMTguNS00NC44LTQ0LjktNDQuOGwtNTEuMiAwIDAgMTM2LjQgMjEuMiAwIDAtNDYuNiAyOS4zIDBjMjYuOCAwIDQ1LjYtMTguNCA0NS42LTQ1em05MCAyMy43YzAtMTkuNy0xNS44LTMyLjQtNDAtMzIuNC0yMi41IDAtMzkuMSAxMi45LTM5LjcgMzAuNWwxOS4xIDBjMS42LTguNCA5LjQtMTMuOSAyMC0xMy45IDEzIDAgMjAuMiA2IDIwLjIgMTcuMmwwIDcuNS0yNi40IDEuNmMtMjQuNiAxLjUtMzcuOSAxMS42LTM3LjkgMjkuMSAwIDE3LjcgMTMuNyAyOS40IDMzLjQgMjkuNCAxMy4zIDAgMjUuNi02LjcgMzEuMi0xNy40bC40IDAgMCAxNi40IDE5LjYgMCAwLTY4IC4xIDB6TTUxNiAyMTAuOWwtMjEuNSAwLTI0LjkgODAuNi0uNCAwLTI0LjktODAuNi0yMi4zIDAgMzUuOSA5OS4zLTEuOSA2Yy0zLjIgMTAuMi04LjUgMTQuMi0xNy45IDE0LjItMS43IDAtNC45LS4yLTYuMi0uM2wwIDE2LjRjMS4yIC40IDYuNSAuNSA4LjEgLjUgMjAuNyAwIDMwLjQtNy45IDM4LjktMzEuOEw1MTYgMjEwLjl6Il19LHJQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb2xhbmEiLGljb246WzUxMiw1MTIsW10sImU4NWUiLCJNNTEwLjUgMzg1LjJsLTg0LjkgODguN2MtMS44IDEuOS00LjEgMy41LTYuNiA0LjVzLTUuMiAxLjYtNy45IDEuNkw4LjkgNDgwYy0xLjkgMC0zLjgtLjUtNS40LTEuNnMtMi45LTIuNS0zLjYtNC4yLTEtMy42LS43LTUuNSAxLjItMy42IDIuNS00LjlsODQuOS04OC43YzEuOC0xLjkgNC4xLTMuNSA2LjUtNC41czUuMS0xLjYgNy44LTEuNmw0MDIuNCAwYzEuOSAwIDMuOCAuNSA1LjQgMS42czIuOSAyLjUgMy42IDQuMiAxIDMuNiAuNyA1LjUtMS4yIDMuNi0yLjUgNC45ek00MjUuNyAyMDYuNmMtMS44LTEuOS00LjEtMy41LTYuNi00LjVzLTUuMi0xLjYtNy45LTEuNmwtNDAyLjQgMGMtMS45IDAtMy44IC41LTUuNCAxLjZzLTIuOSAyLjUtMy42IDQuMi0xIDMuNi0uNyA1LjUgMS4yIDMuNiAyLjUgNC45bDg0LjkgODguN2MxLjggMS45IDQuMSAzLjUgNi41IDQuNXM1LjEgMS42IDcuOCAxLjZsNDAyLjQgMGMxLjkgMCAzLjgtLjUgNS40LTEuNnMyLjktMi41IDMuNi00LjIgMS0zLjYgLjctNS41LTEuMi0zLjYtMi41LTQuOWwtODQuOS04OC43ek04LjkgMTQyLjlsNDAyLjQgMGMyLjcgMCA1LjQtLjUgNy45LTEuNnM0LjctMi42IDYuNi00LjVsODQuOS04OC43YzEuMy0xLjQgMi4yLTMuMSAyLjUtNC45cy4xLTMuNy0uNy01LjUtMi0zLjItMy42LTQuMi0zLjUtMS42LTUuNC0xLjZMMTAxIDMyYy0yLjcgMC01LjQgLjUtNy44IDEuNnMtNC43IDIuNi02LjUgNC41TDEuNyAxMjYuOGMtMS4zIDEuNC0yLjIgMy4xLTIuNSA0LjlzLS4xIDMuNyAuNyA1LjUgMiAzLjIgMy42IDQuMiAzLjUgMS42IDUuNCAxLjZ6Il19LG9QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0eXBlc2NyaXB0IixpY29uOls0NDgsNTEyLFtdLCJlODQwIiwiTTE2LjggMzJsNDE0LjQgMGM5LjMgMCAxNi44IDcuNSAxNi44IDE2LjhsMCA0MTQuNGMwIDkuMy03LjUgMTYuOC0xNi44IDE2LjhMMTYuOCA0ODBDNy41IDQ4MCAwIDQ3Mi41IDAgNDYzLjJMMCA0OC44QzAgMzkuNSA3LjUgMzIgMTYuOCAzMnpNMjQ5IDI3MC4zbDAtMzYuNy0xNTkuNCAwIDAgMzYuNyA1Ni45IDAgMCAxNjMuNiA0NS4zIDAgMC0xNjMuNiA1Ny4yIDB6bTE4LjEgMTU5LjNjNy4zIDMuNyAxNS45IDYuNSAyNS45IDguNHMyMC41IDIuOCAzMS41IDIuOGMxMC44IDAgMjEtMSAzMC43LTMuMXMxOC4yLTUuNCAyNS41LTEwLjEgMTMuMS0xMC45IDE3LjQtMTguNCA2LjQtMTcgNi40LTI4LjJjMC04LjEtMS4yLTE1LjItMy43LTIxLjNzLTUuOS0xMS41LTEwLjUtMTYuMy0xMC4xLTktMTYuNS0xMi44LTEzLjctNy4zLTIxLjctMTAuN2MtNS45LTIuNC0xMS4yLTQuOC0xNS45LTcuMXMtOC43LTQuNi0xMS45LTctNS44LTQuOS03LjYtNy41LTIuNy01LjctMi43LTljMC0zLjEgLjgtNS44IDIuNC04LjNzMy44LTQuNiA2LjctNi40IDYuNS0zLjEgMTAuNy00LjEgOC45LTEuNSAxNC4xLTEuNWMzLjcgMCA3LjcgLjMgMTEuOSAuOHM4LjQgMS40IDEyLjYgMi42IDguMyAyLjYgMTIuMyA0LjQgNy43IDMuOCAxMSA2LjFsMC00MS44Yy02LjgtMi42LTE0LjMtNC41LTIyLjQtNS44cy0xNy40LTEuOS0yNy45LTEuOWMtMTAuNyAwLTIwLjggMS4xLTMwLjQgMy40cy0xOCA1LjgtMjUuMiAxMC43LTEzIDExLTE3LjIgMTguNS02LjMgMTYuNS02LjMgMjYuOWMwIDEzLjMgMy45IDI0LjcgMTEuNiAzNC4xczE5LjUgMTcuNCAzNS4yIDIzLjljNi4yIDIuNSAxMS45IDUgMTcuMyA3LjRzMTAgNC45IDEzLjggNy41IDcgNS40IDkuMiA4LjUgMy40IDYuNiAzLjQgMTAuNWMwIDIuOS0uNyA1LjYtMi4xIDhzLTMuNSA0LjYtNi40IDYuNC02LjQgMy4yLTEwLjcgNC4zLTkuMyAxLjUtMTUgMS41Yy05LjcgMC0xOS40LTEuNy0yOC45LTUuMXMtMTguNC04LjUtMjYuNi0xNS4zbDAgNDQuN3oiXX0sblB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlIixpY29uOls0NDgsNTEyLFtdLCJlNjNjIiwiTTE0NS42IDBsMTU3IDAgNDQuNyA1MC44czM5LjMtMTAuOSA1Ny44IDcuNiAzMy44IDM0LjkgMzMuOCAzNC45bC0xMiAyOS41IDE1LjMgNDMuN3MtNDQuOSAxNzAuMi01MC4xIDE5MWMtMTAuNCA0MC45LTE3LjQgNTYuOC00Ni45IDc3LjVzLTgyLjkgNTYuOC05MS42IDYyLjJjLTEuOSAxLjItMy45IDIuNS01LjkgMy45LTcuNSA1LjEtMTUuOCAxMC44LTIzLjUgMTAuOHMtMTYuMS01LjctMjMuNS0xMC44Yy0yLTEuNC00LTIuOC01LjktMy45LTguNy01LjUtNjIuMS00MS41LTkxLjYtNjIuMnMtMzYuNS0zNi42LTQ2LjktNzcuNWMtNS4zLTIwLjgtNTAuMS0xOTEtNTAuMS0xOTFMMjEuNSAxMjIuOCA5LjMgOTMuM3MxNS4zLTE2LjQgMzMuOC0zNC45IDU3LjgtNy42IDU3LjgtNy42TDE0NS42IDB6bTc4LjUgNDA3LjZjMy43IDAgOC45LTQuNyAxMy04LjQgLjYtLjUgMS4yLTEuMSAxLjctMS41IDQuMi0zLjcgNDcuOC0zNy41IDUxLTM5LjhzNS40LTYuNSAxLjktOC43Yy0yLjgtMS43LTEwLTUuNS0yMC4zLTEwLjgtMy0xLjYtNi4zLTMuMi05LjctNS0xNS40LTgtMzQuNS0xNC43LTM3LjUtMTQuN3MtMjIuMSA2LjgtMzcuNSAxNC43Yy0zLjUgMS44LTYuNyAzLjUtOS43IDUtMTAuMyA1LjMtMTcuNiA5LjEtMjAuMyAxMC44LTMuNiAyLjItMS40IDYuNCAxLjkgOC43czQ2LjggMzYuMSA1MSAzOS44Yy41IC41IDEuMSAxIDEuNyAxLjUgNC4xIDMuNyA5LjMgOC40IDEzIDguNGwtLjIgMHptMC0xNjUuN2M0LjcgMCAxNy42LTMgMjYuNC01bDItLjVjNy44LTEuOCA3LjMtNi4zIDYuNC0xMy0uMS0uOC0uMi0xLjYtLjMtMi40LS42LTYuMS01LjgtMzMuMS05LjEtNTAuMy0xLjEtNS44LTItMTAuNS0yLjQtMTIuOS0xLjUtOC4xLS42LTkuNCAuNy0xMS4zIC4yLS4zIC41LS43IC43LTEuMSAxLjQtMi4zIDE2LTYuMiAyNy45LTkuNSAyLjUtLjcgNC44LTEuMyA2LjktMS45IDEwLjYtMyAzMi40LS42IDQ0LjIgLjYgMS44IC4yIDMuNCAuNCA0LjcgLjUgOS42IC45IDEwLjQgMi4zIDcuMiAzLjgtMi4zIDEuMS0xNi4yIDYuMy0yOC43IDEwLjktNC43IDEuOC05LjIgMy41LTEyLjggNC44LTEuNSAuNS0zIDEuMS00LjUgMS43LTEyLjUgNC42LTI3LjIgMTAtMjguOSAxOS40LTEuNSA4LjMgNS4yIDE5LjkgMTEuMyAzMC4zIDEuNiAyLjggMy4yIDUuNSA0LjYgOC4xIDYuMyAxMS45IDYuNSAxMy4zIDYuMSAxOC4xLS40IDMuOS0xNC41IDEyLjctMjIuNCAxNy42LTEuOCAxLjEtMy4zIDIuMS00LjIgMi43LS44IC41LTIuMSAxLjQtMy44IDIuNC04LjYgNS4yLTI2LjMgMTYtMjYuMyAyMi41IDAgNy44IDI0LjYgMjguMSAzMi40IDMzLjJzMjguOSAxNi4xIDM3LjkgMTcuOCAyMy04LjUgMzEuMi0yMy44YzcuNy0xNC40IDEuNy0yOC41LTMuMi00MGwtLjktMi4yYy00LjUtMTAuNiAxLjktMTcgNi4yLTIxLjMgLjUtLjUgMS0xIDEuNC0xLjRsNDMtNDUuN2MxLjMtMS4zIDIuNS0yLjYgMy43LTMuOCA1LjgtNS43IDEwLjgtMTAuNSAxMC44LTIyLjggMC0xNC45LTU3LjUtODQuNS01Ny41LTg0LjVzLTQ4LjUgOS4zLTU1LjEgOS4zYy01LjIgMC0xNS4zLTMuNS0yNS44LTcuMS0yLjctLjktNS40LTEuOS04LTIuNy0xMy00LjMtMjEuOC00LjQtMjEuOC00LjRzLTguNyAwLTIxLjggNC40Yy0yLjcgLjktNS40IDEuOC04IDIuNy0xMC41IDMuNi0yMC42IDcuMS0yNS44IDcuMS02LjUgMC01NS4xLTkuMy01NS4xLTkuM3MtNTcuNSA2OS42LTU3LjUgODQuNWMwIDEyLjMgNC45IDE3LjEgMTAuOCAyMi44IDEuMiAxLjIgMi41IDIuNCAzLjcgMy44bDQzLjEgNDUuOGMuNCAuNSAuOSAuOSAxLjQgMS40IDQuMyA0LjMgMTAuNiAxMC43IDYuMiAyMS4zbC0uOSAyLjJjLTQuOSAxMS41LTExIDI1LjYtMy4yIDQwIDguMiAxNS4zIDIyLjIgMjUuNSAzMS4yIDIzLjhzMzAuMS0xMi43IDM3LjktMTcuOCAzMi40LTI1LjQgMzIuNC0zMy4yYzAtNi41LTE3LjctMTcuMy0yNi4zLTIyLjUtMS43LTEtMy4xLTEuOS0zLjgtMi40LS45LS42LTIuNC0xLjUtNC4yLTIuNy03LjktNC45LTIyLTEzLjctMjIuNC0xNy42LS40LTQuOC0uMy02LjIgNi4xLTE4LjEgMS4zLTIuNSAyLjktNS4zIDQuNi04LjEgNi0xMC40IDEyLjgtMjIgMTEuMy0zMC4zLTEuNy05LjQtMTYuNC0xNC44LTI4LjktMTkuNC0xLjYtLjYtMy4xLTEuMS00LjUtMS43LTMuNi0xLjQtOC4xLTMuMS0xMi44LTQuOGwtLjEgMGMtMTIuNS00LjctMjYuNC05LjktMjguNy0xMC45LTMuMi0xLjUtMi4zLTIuOCA3LjItMy44IDEuMy0uMSAyLjktLjMgNC43LS41IDExLjgtMS4zIDMzLjYtMy42IDQ0LjItLjYgMi4xIC42IDQuNCAxLjIgNi45IDEuOSAxMS45IDMuMiAyNi41IDcuMiAyNy45IDkuNSAuMiAuNCAuNSAuNyAuNyAxLjEgMS4zIDEuOSAyLjIgMy4yIC43IDExLjMtLjQgMi40LTEuMyA3LjEtMi40IDEyLjktMy4zIDE3LjItOC41IDQ0LjItOS4xIDUwLjMtLjEgLjgtLjIgMS43LS4zIDIuNC0uOCA2LjctMS40IDExLjIgNi40IDEzbDIgLjVjOC44IDIgMjEuOCA1IDI2LjQgNWwwLS4xeiJdfSxsUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXRzeSIsaWNvbjpbMzg0LDUxMixbXSwiZjJkNyIsIk0zODQgMzQ4Yy0xLjggMTAuNy0xMy44IDExMC0xNS41IDEzMi0xMTcuOS00LjMtMjE5LjktNC43LTM2OC41IDBsMC0yNS41YzQ1LjUtOC45IDYwLjYtOCA2MS0zNS4yIDEuOC03Mi4zIDMuNS0yNDQuMSAwLTMyMi0xLTI4LjUtMTIuMS0yNi44LTYxLTM2TDAgMzUuOGM3My45IDIuNCAyNTUuOSA4LjYgMzYzLTMuOC0zLjUgMzguMi03LjggMTI2LjUtNy44IDEyNi41bC0yMy4yIDBDMzIwLjkgMTE1LjcgMzEzLjIgNjggMjc3LjMgNjhsLTEzNyAwYy0xMC4yIDAtMTAuNyAzLjUtMTAuNyA5LjhsMCAxNjMuOGM1OCAuNSA4OC41LTIuNSA4OC41LTIuNSAyOS44LTEgMjcuNi04LjUgNDAuNy02NS4zbDI1LjggMGMtNC40IDEwMS40LTMuOSA2MS44LTEuOCAxNjAuM0wyNTcgMzM0Yy05LjItNDAuMS05LjEtNjEtMzkuNS02MS41IDAgMC0yMS41LTItODgtMmwwIDEzOWMwIDI2IDE0LjMgMzguMyA0NC4zIDM4LjNsODkuMyAwYzYzLjYgMCA2Ni42LTI1IDk4LjctOTkuOGwyMi4yIDB6Il19LGNQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidGMiLGljb246WzM4NCw1MTIsW10sImYxNWEiLCJNMzEwLjQgMjQyLjZjMjcuNy0xNC4yIDQ1LjQtMzkuNCA0MS4zLTgxLjMtNS40LTU3LjQtNTIuNS03Ni42LTExNC44LTgxLjlsMC03OS40LTQ4LjUgMCAwIDc3LjJjLTEyLjYgMC0yNS41IC4zLTM4LjQgLjZsMC03Ny44LTQ4LjUgMCAwIDc5LjRjLTE3LjggLjUtMzguNiAuMy05Ny40IDBsMCA1MS43YzM4LjMtLjcgNTguNC0zLjEgNjMgMjEuNGwwIDIxNy40Yy0yLjkgMTkuNS0xOC41IDE2LjctNTMuMyAxNi4xTDQgNDQzLjdjODguNSAwIDk3LjQgLjMgOTcuNCAuM2wwIDY4IDQ4LjUgMCAwLTY3LjFjMTMuMiAuMyAyNi4yIC4zIDM4LjQgLjNsMCA2Ni43IDQ4LjUgMCAwLTY4YzgxLjMtNC40IDEzNS42LTI0LjkgMTQyLjktMTAxLjUgNS43LTYxLjQtMjMuMy04OC45LTY5LjMtOTkuOXpNMTUwLjggMTM0LjZjMjcuNCAwIDExMy4xLTguNSAxMTMuMSA0OC41IDAgNTQuNS04NS43IDQ4LjItMTEzLjEgNDguMmwwLTk2Ljd6bTAgMjUxLjhsMC0xMDYuNWMzMi44IDAgMTMzLjEtOS4xIDEzMy4xIDUzLjMgMCA2MC4yLTEwMC40IDUzLjMtMTMzLjEgNTMuM3oiXX0sZFB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFkbiIsaWNvbjpbNTEyLDUxMixbXSwiZjE3MCIsIk0yNTYgMTY3LjVsNjQuOSA5OC44LTEyOS44IDAgNjQuOS05OC44ek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zOTYuMiA4Mi43bC0xNDguMi0yMjMuMi0xNDguMiAyMjMuMiAzMC40IDAgMzMuNi01MS43IDE2OC42IDAgMzMuNiA1MS43IDMwLjIgMHoiXX0sdVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS14LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjk3LjEgODRsLTEwMy44IDExOC42IDEyMi4xIDE2MS40LTk1LjYgMC03NC44LTk3LjktODUuNyA5Ny45LTQ3LjUgMCAxMTEtMTI2LjktMTE3LjEtMTUzLjEgOTggMCA2Ny43IDg5LjUgNzguMi04OS41IDQ3LjUgMHpNMzIzLjMgMzY3LjZsLTE2OS45LTIyNC43LTI4LjMgMCAxNzEuOCAyMjQuNyAyNi40IDB6Il19LHBQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZm9udC1hd2Vzb21lIixpY29uOls0NDgsNTEyLFtdLCJlNWFkIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTkwIDEyMmMwIDkuMy00LjggMTcuNC0xMi4xIDIybDE4OC45IDBjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgMS44LS40IDMuNy0xLjEgNS40TDMxMiAyNjQgMzQyLjkgMzMzLjRjLjcgMS43IDEuMSAzLjUgMS4xIDUuNCAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJsLTE4Ni44IDAgMCAzMi0zMiAwIDAtMjA5LjVjLTYuMS00LjgtMTAtMTIuMi0xMC0yMC41IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZ6Il19LGhQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J1bWJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjIxMSIsIk01LjggMzA5LjdDMiAyOTIuNyAwIDI3NS41IDAgMjU4LjMgMCAxMzUgOTkuOCAzNSAyMjMuMSAzNSAyMzkuNyAzNSAyNTYuNCAzNyAyNzIuNCA0MC41IDE0OSA4Ny41IDUxLjkgMTg2IDUuOCAzMDkuN3pNMzk4LjcgMTIwLjVjLTEzLjctMTcuNS0yOS43LTMyLjctNDcuOC00NS4zLTE0OS42IDQ0LjMtMjY2LjMgMTYyLjEtMzA5LjcgMzEyIDEyLjUgMTguMSAyOCAzNS42IDQ1LjIgNDkgNDMuMS0xNTEuMyAxNjEuMi0yNzEuNyAzMTIuMy0zMTUuN3ptMTUuOCAyNTIuN2MxNS4yLTI1LjEgMjUuNC01My43IDI5LjUtODIuOC03OS40IDQyLjktMTQ1IDExMC42LTE4Ny42IDE5MC4zIDMwLTQuNCA1OC45LTE1LjMgODQuNi0zMS4zIDM1IDEzLjEgNzAuOSAyNC4zIDEwNyAzMy42LTkuMy0zNi41LTIwLjQtNzQuNS0zMy41LTEwOS44em0yOS43LTE0NS41Yy0yLjYtMTkuNS03LjktMzguNy0xNS44LTU2LjgtMTM3LjkgNDUuOC0yNDYuNCAxNTYuNi0yOTEuMyAyOTUuMSAxOC4xIDcuNiAzNyAxMi41IDU2LjYgMTUuMiA0Ni4zLTExNC4xIDEzNi44LTIwNi44IDI1MC41LTI1My41eiJdfSxKOGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNDItZ3JvdXAiLGljb246WzY0MCw1MTIsWyJpbm5vc29mdCJdLCJlMDgwIiwiTTMyMCA5NmwwIDMyMGMyMSAwIDQxLjgtNC4xIDYxLjItMTIuMnMzNy0xOS44IDUxLjktMzQuNyAyNi42LTMyLjUgMzQuNy01MS45IDEyLjItNDAuMiAxMi4yLTYxLjItNC4xLTQxLjgtMTIuMi02MS4yLTE5LjgtMzcuMS0zNC43LTUxLjktMzIuNS0yNi42LTUxLjktMzQuNy00MC4yLTEyLjItNjEuMi0xMi4yek0wIDI1NkwxNjAgNDE2IDMyMCAyNTYgMTYwIDk2IDAgMjU2em00ODAgMGMwIDIxIDQuMSA0MS44IDEyLjIgNjEuMnMxOS44IDM3IDM0LjcgNTEuOSAzMi41IDI2LjYgNTEuOSAzNC43IDQwLjIgMTIuMiA2MS4yIDEyLjJsMC0zMjBjLTQyLjQgMC04My4xIDE2LjktMTEzLjEgNDYuOVM0ODAgMjEzLjYgNDgwIDI1NnoiXX0sZlB0PUo4ZSxtUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1bWJsZXVwb24tY2lyY2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEzIiwiTTI2NCA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCAxNzcuNWMtOS44IDAtMTcuOCA4LTE3LjggMTcuOGwwIDEwNi45YzAgNDAuOS0zMy45IDczLjktNzQuOSA3My45LTQxLjQgMC03NC45LTMzLjUtNzQuOS03NC45bDAtNDYuNSA1Ny4zIDAgMCA0NS44YzAgMTAgOCAxNy44IDE3LjggMTcuOHMxNy44LTcuOSAxNy44LTE3LjhsMC0xMDguNGMwLTQwIDM0LjItNzIuMSA3NC43LTcyLjEgNDAuNyAwIDc0LjcgMzIuMyA3NC43IDcyLjZsMCAyMy43LTM0LjEgMTAuMS0yMi45LTEwLjcgMC0yMC42Yy4xLTkuNi03LjktMTcuNi0xNy43LTE3LjZ6TTQzMS42IDMwOS4xYzAgNDEuNC0zMy41IDc0LjktNzQuOSA3NC45LTQxLjIgMC03NC45LTMzLjItNzQuOS03NC4ybDAtNDYuOCAyMi45IDEwLjcgMzQuMS0xMC4xIDAgNDcuMWMwIDkuOCA4IDE3LjYgMTcuOCAxNy42czE3LjgtNy45IDE3LjgtMTcuNmwwLTQ4IDU3LjMgMGMtLjEgNDUuOS0uMSA0Ni40LS4xIDQ2LjR6Il19LGdQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzeW1mb255IixpY29uOls1MTIsNTEyLFtdLCJmODNkIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzg5LjcgMTUxLjVjLTExLjUgLjQtMTkuNC02LjQtMTkuOC0xNi45LS4zLTkuMiA2LjctMTMuNCA2LjUtMTguOS0uMi02LjUtMTAuMi02LjgtMTIuOS02LjctMzkuOCAxLjMtNDguNiA1Ny01OC45IDExMy44IDIxLjQgMy4yIDM2LjYtLjcgNDUuMS02LjIgMTItNy43LTMuMy0xNS43LTEuNC0yNC42IDQtMTguMiAzMi42LTE5IDMyIDUuMy0uNCAxNy45LTI1LjkgNDEuOC03Ny42IDM1LjctMTAuOCA1OS41LTE4LjQgMTE1LTU4LjIgMTYxLjctMjkgMzQuNS01OC40IDM5LjgtNzEuNiA0MC4zLTI0LjYgLjktNDEtMTIuMy00MS42LTI5LjgtLjYtMTcgMTQuNC0yNi4zIDI0LjMtMjYuNiAyMS45LS44IDMwLjEgMjUuNyAxNC45IDM0LTEyLjEgOS43IC4xIDEyLjYgMi4xIDEyLjYgMTAuNC0uNCAxNy4zLTUuNSAyMi4yLTkgMjQtMjAgMzMuMi01NC45IDQ1LjQtMTE4LjMgOC4yLTQ5LjcgMTctNzggMTguMi04Mi0xNi45LTEyLjctMjcuMS0yOC42LTQ5LjgtMzQuNy0xNS42LTQuMi0yNS4xLS42LTMxLjggNy44LTcuOSAxMC01LjMgMjMgMi40IDMwLjdsMTIuNiAxNGMxNS41IDE3LjkgMjQgMzEuOSAyMC44IDUwLjYtNS4xIDI5LjktNDAuNyA1Mi45LTgyLjkgMzkuOS0zNi0xMS4xLTQyLjctMzYuNi0zOC40LTUwLjYgNy41LTI0LjIgNDIuNC0xMS43IDM0LjYgMTMuNi0yLjggOC42LTQuOSA4LjctNi4zIDEzLjEtNC42IDE0LjggNDEuOCAyOC40IDUxLTEuNCA0LjUtMTQuNS01LjMtMjEuNy0yMi4yLTM5LjktMjguNS0zMS43LTE2LTY1LjUgMi45LTc5LjcgNTIuOC0zOS40IDEwMC41IDE3LjUgMTEwLjYgMjUuOCAzNy4yLTEwOSAxMDAuNS0xMDUuNSAxMDIuNC0xMDUuNSAyNS4yLS44IDQ0LjIgMTAuNiA0NC44IDI4LjYgLjIgNy43LTQuMiAyMi42LTE5LjUgMjMuMXoiXX0sYlB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNhbGVzZm9yY2UiLGljb246WzY0MCw1MTIsW10sImY4M2IiLCJNMjQ5LjQgMjQ1LjZsLTI2LjQgMGMuNy01LjIgMy4zLTE0LjEgMTMuNi0xNC4xIDYuOCAwIDEyIDMuOCAxMi43IDE0LjF6TTM4NiAyMzEuOGMtLjUgMC0xNC4xLTEuOC0xNC4xIDIwczEzLjYgMjAgMTQuMSAyMGMxMyAwIDE0LjEtMTMuNSAxNC4xLTIwIDAtMjEuOC0xMy43LTIwLTE0LjEtMjB6TTE0Mi44IDI1NS41Yy0xLjEgLjktMiAyLTIuNSAzLjJzLS44IDIuNy0uNyA0YzAgNC44IDIuMSA2LjEgMy4zIDcgNC43IDMuNyAxNS4xIDIuMSAyMC45IDFsMC0xNi45Yy01LjMtMS4xLTE2LjctMi0yMC45IDEuNnpNNjQwLjUgMjMyYzAgODcuNi04MCAxNTQuNC0xNjUuNCAxMzYuNC0xOC40IDMzLTcwLjcgNzAuOC0xMzIuMiA0MS42LTQxLjIgOTYtMTc3LjkgOTIuMi0yMTMuOC01LjItMTE5LjcgMjMuOS0xNzguOC0xMzguNC03NS4zLTE5OS4zLTM0LjgtNzkuNCAyMi42LTE3My42IDExNC4zLTE3My42IDE5LjEgMCAzNy45IDQuNCA1NSAxMi45czMyIDIwLjcgNDMuNiAzNS44YzIwLjctMjEuNCA0OS40LTM0LjggODEuMS0zNC44IDQyLjMgMCA3OSAyMy41IDk4LjggNTguNiA5Mi44LTQwLjcgMTkzLjggMjguMiAxOTMuOCAxMjcuNXpNMTIwLjkgMjYzLjhjMC0xMS44LTExLjctMTUuMi0xNy45LTE3LjItNS4zLTIuMS0xMy40LTMuNS0xMy40LTguOSAwLTkuNSAxNy02LjcgMjUuMi0yLjEgMCAwIDEuMiAuNyAxLjYtLjUgLjItLjcgMi40LTYuNiAyLjYtNy4zIC4xLS4zIC4xLS42LS4xLS44cy0uNC0uNS0uNi0uNmMtMTIuMy03LjYtNDAuNy04LjUtNDAuNyAxMi43IDAgMTIuNSAxMS41IDE1LjQgMTcuOSAxNy4yIDQuNyAxLjYgMTMuMiAzIDEzLjIgOC43IDAgNC0zLjUgNy4xLTkuMiA3LjEtNi45IDAtMTMuNS0yLjItMTktNi4zLS41LS4yLTEuNC0uNy0xLjYgLjdsLTIuNCA3LjVjLS41IC45IC4yIDEuMiAuMiAxLjQgMS44IDEuNCAxMC4zIDYuNiAyMi44IDYuNiAxMy4yIDAgMjEuNC03LjEgMjEuNC0xOC4xbDAgMHptMzItNDIuNmMtMTAuMSAwLTE4LjcgMy4yLTIxLjQgNS4yLS4xIC4xLS4yIC4yLS4zIC4zcy0uMSAuMi0uMSAuNCAwIC4zIDAgLjQgLjEgLjMgLjIgLjRsMi42IDcuMWMuMSAuMiAuMiAuNSAuNSAuNnMuNSAuMiAuNyAuMWMuNiAwIDYuOC00IDE2LjktNCA0IDAgNy4xIC43IDkuMiAyLjQgMy42IDIuOCAzLjEgOC4zIDMuMSAxMC42LTQuOC0uMy0xOS4xLTMuNC0yOS40IDMuOC0yLjMgMS42LTQuMyAzLjgtNS41IDYuM3MtMS45IDUuNC0xLjggOC4yYzAgNS45IDEuNSAxMC40IDYuNiAxNC40IDEyLjIgOC4yIDM2LjMgMiAzOC4xIDEuNCAxLjYtLjMgMy41LS43IDMuNS0xLjlsMC0zMy45YzAtNC42IC4zLTIxLjYtMjIuOC0yMS42bDAgLjF6bTQ2LjYtMjFjMC0uMiAwLS4zLS4xLS41cy0uMS0uMy0uMy0uNC0uMi0uMi0uNC0uMy0uMy0uMS0uNS0uMWwtOS44IDBjLS4yIDAtLjMgMC0uNSAuMXMtLjMgLjEtLjQgLjMtLjIgLjItLjMgLjQtLjEgLjMtLjEgLjVsMCA3OWMwIC4yIDAgLjMgLjEgLjVzLjEgLjMgLjMgLjQgLjIgLjIgLjQgLjMgLjMgLjEgLjUgLjFsOS45IDBjLjIgMCAuMyAwIC41LS4xcy4zLS4xIC40LS4zIC4yLS4yIC4zLS40IC4xLS4zIC4xLS41bC0uMS03OXptNTUuNyAyOC45Yy0yLjEtMi4zLTYuOC03LjUtMTcuNi03LjUtMy41IDAtMTQuMiAuMi0yMC43IDguOS02LjQgNy42LTYuNiAxOC4xLTYuNiAyMS40IDAgMy4xIC4yIDE0LjMgNy4xIDIxLjIgMi42IDIuOSA5LjEgOC4yIDIyLjggOC4yIDEwLjggMCAxNi41LTIuMyAxOC42LTMuOCAuNS0uMiAuNy0uNyAuMi0xLjlsLTIuMy02LjhjLS4xLS4zLS4zLS41LS42LS42cy0uNS0uMi0uOC0uMWMtMi42IC45LTYuMyAyLjgtMTUuMyAyLjgtMTcuNCAwLTE2LjgtMTQuNy0xNi45LTE2LjdsMzcuMiAwYy4zIDAgLjUtLjEgLjctLjNzLjQtLjQgLjQtLjdjLS4zIDAgMi4xLTE0LjctNi4xLTI0LjJsMCAwem0zNi43IDUyLjdjMTMuMiAwIDIxLjQtNy4xIDIxLjQtMTguMSAwLTExLjgtMTEuNy0xNS4yLTE3LjktMTcuMi00LjEtMS43LTEzLjQtMy40LTEzLjQtOC45IDAtMy44IDMuMy02LjQgOC41LTYuNCA1LjggLjEgMTEuNSAxLjYgMTYuNyA0LjIgMCAwIDEuMiAuNyAxLjYtLjUgLjItLjcgMi40LTYuNiAyLjYtNy4zIC4xLS4zIC4xLS42LS4xLS44cy0uNC0uNS0uNi0uNmMtNy45LTQuOS0xNi43LTQuOS0yMC4yLTQuOS0xMiAwLTIwLjUgNy4zLTIwLjUgMTcuNiAwIDEyLjUgMTEuNSAxNS40IDE3LjkgMTcuMiA2LjEgMiAxMy4yIDMuMyAxMy4yIDguNyAwIDQtMy41IDcuMS05LjIgNy4xLTYuOSAwLTEzLjUtMi4yLTE5LTYuNC0uMS0uMS0uMy0uMi0uNS0uMnMtLjQgMC0uNSAuMS0uMyAuMi0uNCAuMy0uMiAuMy0uMiAuNWwtMi4zIDcuNWMtLjUgLjkgLjIgMS4yIC4yIDEuNCAxLjcgMS40IDEwLjMgNi42IDIyLjggNi42bDAgMHpNMzU3LjYgMjI0YzAtLjctLjItMS4yLTEuMi0xLjJsLTExLjggMGMwLS4xIC45LTguOSA0LjUtMTIuNSA0LjItNC4yIDExLjgtMS42IDEyLTEuNiAxLjIgLjUgMS40IDAgMS42LS41bDIuOC03LjhjLjctLjkgMC0xLjItLjItMS40LTUuMS0yLTE3LjQtMi45LTI0LjUgNC4yLTUuNSA1LjUtNyAxMy45LTggMTkuNWwtOC41IDBjLS4zIDAtLjYgLjItLjggLjRzLS4zIC41LS40IC44bC0xLjQgNy44YzAgLjcgLjIgMS4yIDEuMiAxLjJsOC4yIDBjLTguNSA0Ny45LTguNyA1MC4yLTEwLjMgNTUuNS0xLjEgMy42LTMuMyA2LjktNS45IDcuOC0uMSAwLTMuOSAxLjctOS42LS4yIDAgMC0uOS0uNS0xLjQgLjctLjIgLjctMi42IDYuOC0yLjggNy41czAgMS40IC41IDEuNGM1LjEgMiAxMyAxLjggMTcuOSAwIDYuMy0yLjMgOS43LTcuOSAxMS41LTEyLjkgMi44LTcuNyAyLjgtOS44IDExLjgtNTkuN2wxMi4yIDBjLjMgMCAuNi0uMiAuOC0uNHMuMy0uNSAuNC0uOGwxLjQtNy44ek00MTEgMjQwYy0uNi0xLjctNS4xLTE4LjEtMjUuMi0xOC4xLTE1LjIgMC0yMyAxMC0yNS4yIDE4LjEtMSAzLTMuMiAxNCAwIDIzLjUgLjEgLjMgNC40IDE4LjEgMjUuMiAxOC4xIDE1IDAgMjIuOS05LjYgMjUuMi0xOC4xIDMuMi05LjYgMS0yMC41IDAtMjMuNXptNDUuNC0xNi43Yy01LTEuNy0xNi42LTEuOS0yMi4xIDUuNGwwLTQuNWMwLS4yIDAtLjMtLjEtLjVzLS4xLS4zLS4zLS40LS4yLS4yLS40LS4zLS4zLS4xLS41LS4xbC05LjQgMGMtLjIgMC0uMyAwLS41IC4xcy0uMyAuMS0uNCAuMy0uMiAuMi0uMyAuNC0uMSAuMy0uMSAuNWwwIDU1LjNjMCAuMiAwIC4zIC4xIC41cy4xIC4zIC4zIC40IC4yIC4yIC40IC4zIC4zIC4xIC41IC4xbDkuNiAwYy4yIDAgLjMgMCAuNS0uMXMuMy0uMSAuNC0uMyAuMi0uMiAuMy0uNCAuMS0uMyAuMS0uNWwwLTI3LjhjMC0yLjkgLjEtMTEuNCA0LjUtMTUuMSA0LjktNC45IDEyLTMuNCAxMy40LTMuMSAuMyAwIC42LS4xIC44LS4zcy40LS40IC42LS43YzEuMi0yLjYgMi4yLTUuMyAzLjEtOCAuMS0uMyAuMS0uNSAwLS44cy0uMy0uNS0uNS0uNmwwIDB6bTQ2LjggNTQuMWwtMi4xLTcuM2MtLjUtMS4yLTEuNC0uNy0xLjQtLjctNC4yIDEuOC0xMC4xIDEuOS0xMS4zIDEuOS00LjYgMC0xNy4yLTEuMS0xNy4yLTE5LjggMC02LjIgMS44LTE5LjggMTYuNS0xOS44IDMuOS0uMSA3LjggLjUgMTEuNSAxLjYgMCAwIC45IC41IDEuMi0uNyAuOS0yLjYgMS42LTQuNSAyLjYtNy41IC4yLS45LS41LTEuMi0uNy0xLjItMTEuNi0zLjktMjIuMy0yLjUtMjcuOCAwLTEuNiAuNy0xNi4yIDYuNS0xNi4yIDI3LjUgMCAyLjktLjYgMzAuMSAyOC45IDMwLjEgNS4zIDAgMTAuNi0xIDE1LjUtMi44IC4yLS4yIC40LS40IC41LS42cy4xLS41IDAtLjhsMCAwem01My45LTM5LjVjLS44LTMtNS40LTE2LjItMjIuMy0xNi4yLTE2IDAtMjMuNSAxMC4xLTI1LjYgMTguNi0xLjIgMy44LTEuNyA3LjgtMS43IDExLjggMCAyNS45IDE4LjggMjkuNCAyOS45IDI5LjQgMTAuOCAwIDE2LjUtMi4zIDE4LjYtMy44IC41LS4yIC43LS43IC4yLTEuOWwtMi40LTYuOGMtLjEtLjMtLjMtLjUtLjYtLjZzLS42LS4yLS44LS4xYy0yLjYgLjktNi4zIDIuOC0xNS4zIDIuOC0xNy40IDAtMTYuOS0xNC43LTE2LjktMTYuN2wzNy4yIDBjLjMgMCAuNS0uMSAuNy0uM3MuNC0uNCAuNC0uN2MtLjIgMCAuOS03LjEtMS40LTE1LjVsMCAwem0tMjMuMy02LjRjLTEwLjMgMC0xMyA5LTEzLjYgMTQuMWwyNi40IDBjLS45LTExLjktNy42LTE0LjEtMTIuNy0xNC4xbDAgMHoiXX0sdlB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvdXJjZXRyZWUiLGljb246WzQ0OCw1MTIsW10sImY3ZDMiLCJNNDI3LjQgMjAzYzAtMTEyLjEtOTAuOS0yMDMtMjAzLTIwMy0xMTIuMS0uMi0yMDMgOTAuNi0yMDMuMiAyMDIuNi0uMSA0MyAxMy41IDg0LjggMzguNyAxMTkuNnM2MC45IDYwLjYgMTAxLjggNzMuOGwwIDEwMS43YzAgMy44IDEuNSA3LjQgNC4yIDEwLjFzNi4zIDQuMiAxMC4xIDQuMmw5Ni40IDBjMy44IDAgNy40LTEuNSAxMC4xLTQuMnM0LjItNi4zIDQuMi0xMC4xbDAtMTAxLjZjNDAuOC0xMy4yIDc2LjUtMzkgMTAxLjctNzMuN3MzOC45LTc2LjUgMzktMTE5LjR6bS0yNzEuNiAwYzAtOTAuOCAxMzcuMy05MC44IDEzNy4zIDAtLjEgODkuOS0xMzcuMyA5MS0xMzcuMyAweiJdfSx4UHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlua2VkaW4taW4iLGljb246WzQ0OCw1MTIsW10sImYwZTEiLCJNMTAwLjMgNDQ4bC05Mi45IDAgMC0yOTkuMSA5Mi45IDAgMCAyOTkuMXpNNTMuOCAxMDguMUMyNC4xIDEwOC4xIDAgODMuNSAwIDUzLjggMCAzOS41IDUuNyAyNS45IDE1LjggMTUuOHMyMy44LTE1LjggMzgtMTUuOCAyNy45IDUuNyAzOCAxNS44IDE1LjggMjMuOCAxNS44IDM4YzAgMjkuNy0yNC4xIDU0LjMtNTMuOCA1NC4zek00NDcuOSA0NDhsLTkyLjcgMCAwLTE0NS42YzAtMzQuNy0uNy03OS4yLTQ4LjMtNzkuMi00OC4zIDAtNTUuNyAzNy43LTU1LjcgNzYuN2wwIDE0OC4xLTkyLjggMCAwLTI5OS4xIDg5LjEgMCAwIDQwLjggMS4zIDBjMTIuNC0yMy41IDQyLjctNDguMyA4Ny45LTQ4LjMgOTQgMCAxMTEuMyA2MS45IDExMS4zIDE0Mi4zbDAgMTY0LjMtLjEgMHoiXX0seVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh0bWw1IixpY29uOlszODQsNTEyLFtdLCJmMTNiIiwiTTAgMzJMMzQuOSA0MjcuOCAxOTEuNSA0ODAgMzQ5LjEgNDI3LjggMzg0IDMyIDAgMzJ6TTMwOC4yIDE1OS45bC0xODMuOCAwIDQuMSA0OS40IDE3NS42IDAtMTMuNiAxNDguNC05Ny45IDI3IDAgLjMtMS4xIDAtOTguNy0yNy4zLTYtNzUuOCA0Ny43IDAgMy41IDM4LjEgNTMuNSAxNC41IDUzLjctMTQuNSA2LTYyLjItMTY2LjkgMC0xMi44LTE0NS42IDI0MS4xIDAtNC40IDQ3Ljd6Il19LHdQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJydXN0IixpY29uOls1MTIsNTEyLFtdLCJlMDdhIiwiTTUwOC41IDI0OS44bC0yMS44LTEzLjVjLS4yLTItLjMtMy45LS41LTUuOWwxOC43LTE3LjVjLjktLjkgMS42LTEuOSAyLTMuMXMuNS0yLjUgLjItMy43LS44LTIuNC0xLjYtMy4zLTEuOC0xLjctMy0yLjFsLTI0LTljLS41LTEuOS0xLjEtMy44LTEuNy01LjZsMTUtMjAuOGMuNy0xIDEuMi0yLjIgMS4zLTMuNHMwLTIuNS0uNS0zLjctMS4yLTIuMi0yLjItMi45LTIuMS0xLjMtMy40LTEuNWwtMjUuNC00LjJjLS45LTEuNy0xLjgtMy40LTIuNy01LjJsMTAuNy0yMy40Yy41LTEuMSAuNy0yLjQgLjYtMy42cy0uNS0yLjQtMS4yLTMuNS0xLjYtMS45LTIuOC0yLjUtMi40LS44LTMuNi0uOGwtMjUuOCAuOWMtMS4yLTEuNS0yLjQtMi45LTMuNi00LjRMNDM5IDgxLjhjLjMtMS4yIC4zLTIuNS0uMS0zLjdzLTEtMi4zLTEuOS0zLjItMi0xLjUtMy4yLTEuOS0yLjUtLjQtMy43LS4xTDQwNSA3OC45Yy0xLjQtMS4yLTIuOS0yLjQtNC40LTMuNmwuOS0yNS44Yy4xLTEuMy0uMi0yLjUtLjgtMy42cy0xLjQtMi4xLTIuNS0yLjgtMi4yLTEuMS0zLjUtMS4yLTIuNSAuMS0zLjcgLjZMMzY3LjcgNTMuMmMtMS43LS45LTMuNC0xLjgtNS4xLTIuN2wtNC4yLTI1LjRjLS4yLTEuMi0uNy0yLjQtMS41LTMuNHMtMS44LTEuNy0yLjktMi4yLTIuNC0uNy0zLjctLjUtMi40IC42LTMuNCAxLjNMMzI2IDM1LjNjLTEuOS0uNi0zLjgtMS4xLTUuNi0xLjdsLTktMjRjLS40LTEuMi0xLjItMi4yLTIuMS0zcy0yLjEtMS40LTMuMy0xLjYtMi41LS4yLTMuNyAuMi0yLjMgMS4xLTMuMSAyTDI4MS42IDI1LjljLTItLjItMy45LS40LTUuOS0uNUwyNjIuMyAzLjVjLS43LTEuMS0xLjYtMS45LTIuNy0yLjZzLTIuMy0uOS0zLjYtLjktMi41IC4zLTMuNiAuOS0yIDEuNS0yLjcgMi42TDIzNi4yIDI1LjNjLTIgLjItMy45IC4zLTUuOSAuNkwyMTIuOSA3LjFjLS45LS45LTEuOS0xLjYtMy4xLTJzLTIuNS0uNS0zLjctLjItMi40IC44LTMuMyAxLjYtMS43IDEuOC0yLjEgM2wtOSAyNGMtMS45IC42LTMuOCAxLjEtNS43IDEuN2wtMjAuOC0xNWMtMS0uNy0yLjItMS4yLTMuNC0xLjNzLTIuNSAwLTMuNyAuNS0yLjIgMS4yLTIuOSAyLjItMS4zIDIuMS0xLjUgMy40bC00LjIgMjUuNGMtMS43IC45LTMuNCAxLjgtNS4yIDIuN0wxMjAuOSA0Mi42Yy0xLjEtLjUtMi40LS43LTMuNy0uNnMtMi41IC41LTMuNSAxLjItMS45IDEuNy0yLjUgMi44LS44IDIuNC0uOCAzLjZsLjkgMjUuOGMtMS41IDEuMi0zIDIuNC00LjQgMy42TDgxLjggNzNjLTEuMi0uMy0yLjUtLjMtMy43IC4xcy0yLjMgMS0zLjIgMS45LTEuNSAyLTEuOSAzLjItLjQgMi41LS4xIDMuN0w3OC45IDEwN2MtMS4yIDEuNC0yLjQgMi45LTMuNiA0LjRsLTI1LjgtLjljLTEuMyAwLTIuNSAuMi0zLjYgLjhzLTIuMSAxLjQtMi44IDIuNC0xLjEgMi4yLTEuMiAzLjUgLjEgMi41IC42IDMuNmwxMC43IDIzLjRjLS45IDEuNy0xLjggMy40LTIuNyA1LjJsLTI1LjQgNC4xYy0xLjIgLjItMi40IC43LTMuNCAxLjVzLTEuNyAxLjgtMi4yIDIuOS0uNyAyLjQtLjUgMy43IC42IDIuNCAxLjMgMy40bDE1IDIwLjhjLS42IDEuOS0xLjEgMy44LTEuNyA1LjdsLTI0IDljLTEuMiAuNC0yLjIgMS4yLTMgMi4xcy0xLjQgMi4xLTEuNiAzLjMtLjIgMi41IC4yIDMuNyAxLjEgMi4zIDIgMy4xbDE4LjcgMTcuNWMtLjIgMi0uNCAzLjktLjYgNS45TDMuNSAyNDkuOGMtMS4xIC43LTEuOSAxLjYtMi42IDIuN3MtLjkgMi4zLS45IDMuNiAuMyAyLjUgLjkgMy42IDEuNSAyIDIuNiAyLjdsMjEuOCAxMy41Yy4yIDIgLjMgMy45IC42IDUuOUw3LjEgMjk5LjFjLS45IC45LTEuNiAxLjktMiAzLjFzLS41IDIuNS0uMiAzLjcgLjggMi40IDEuNiAzLjMgMS44IDEuNyAzIDIuMWwyNCA5Yy42IDEuOSAxLjEgMy44IDEuNyA1LjZsLTE1IDIwLjhjLS43IDEtMS4yIDIuMi0xLjMgMy40czAgMi41IC41IDMuNyAxLjIgMi4yIDIuMiAyLjkgMi4xIDEuMyAzLjQgMS41bDI1LjQgNC4yYy45IDEuNyAxLjggMy40IDIuNyA1LjFMNDIuNiAzOTEuMWMtLjUgMS4xLS43IDIuNC0uNiAzLjZzLjUgMi41IDEuMiAzLjVjLjcgMS4xIDEuNiAxLjkgMi43IDIuNXMyLjQgLjggMy42IC44bDI1LjgtLjljMS4yIDEuNSAyLjQgMi45IDMuNiA0LjRMNzMgNDMwLjJjLS4zIDEuMi0uMyAyLjUgLjEgMy43czEgMi4zIDEuOSAzLjIgMiAxLjUgMy4yIDEuOSAyLjUgLjQgMy43IC4xbDI1LjItNS45YzEuNSAxLjIgMi45IDIuNCA0LjQgMy42bC0uOSAyNS44YzAgMS4zIC4yIDIuNSAuOCAzLjZzMS40IDIuMSAyLjUgMi44IDIuMiAxLjEgMy41IDEuMiAyLjUtLjEgMy42LS42bDIzLjQtMTAuN2MxLjcgLjkgMy40IDEuOCA1LjEgMi43bDQuMiAyNS40Yy4yIDEuMiAuNyAyLjQgMS41IDMuNHMxLjggMS44IDIuOSAyLjIgMi40IC43IDMuNyAuNSAyLjQtLjYgMy40LTEuM2wyMC44LTE1YzEuOSAuNiAzLjggMS4xIDUuNiAxLjdsOSAyNGMuNCAxLjIgMS4yIDIuMiAyLjEgM3MyLjEgMS40IDMuMyAxLjYgMi41IC4yIDMuNy0uMiAyLjMtMS4xIDMuMS0ybDE3LjUtMTguN2MyIC4yIDMuOSAuNCA1LjkgLjZsMTMuNSAyMS44Yy43IDEuMSAxLjYgMS45IDIuNyAyLjZzMi4zIC45IDMuNiAuOSAyLjUtLjMgMy42LS45IDItMS41IDIuNy0yLjZsMTMuNS0yMS44YzItLjIgMy45LS4zIDUuOS0uNmwxNy41IDE4LjdjLjkgLjkgMS45IDEuNiAzLjEgMnMyLjUgLjUgMy43IC4yIDIuNC0uOCAzLjMtMS42IDEuNy0xLjggMi4xLTNsOS0yNGMxLjktLjYgMy44LTEuMSA1LjYtMS43bDIwLjggMTVjMSAuNyAyLjIgMS4yIDMuNCAxLjNzMi41IDAgMy43LS41IDIuMi0xLjIgMi45LTIuMiAxLjMtMi4xIDEuNS0zLjRsNC4yLTI1LjRjMS43LS45IDMuNC0xLjggNS4xLTIuN2wyMy40IDEwLjdjMS4xIC41IDIuNCAuNyAzLjYgLjZzMi40LS41IDMuNS0xLjIgMS45LTEuNiAyLjUtMi44IC44LTIuNCAuOC0zLjZsLS45LTI1LjhjMS41LTEuMiAyLjktMi40IDQuNC0zLjZsMjUuMiA1LjljMS4yIC4zIDIuNSAuMyAzLjctLjFzMi4zLTEgMy4yLTEuOSAxLjUtMiAxLjktMy4yIC40LTIuNSAuMS0zLjdMNDMzLjEgNDA1YzEuMi0xLjQgMi40LTIuOSAzLjYtNC40bDI1LjggLjljMS4zIC4xIDIuNS0uMiAzLjYtLjhzMi4xLTEuNCAyLjgtMi41Yy43LTEgMS4xLTIuMiAxLjItMy41cy0uMS0yLjUtLjYtMy42bC0xMC43LTIzLjRjLjktMS43IDEuOC0zLjQgMi43LTUuMWwyNS40LTQuMmMxLjItLjIgMi40LS43IDMuNC0xLjVzMS44LTEuOCAyLjItMi45IC43LTIuNCAuNS0zLjctLjYtMi40LTEuMy0zLjRsLTE1LTIwLjhjLjYtMS45IDEuMS0zLjggMS43LTUuNmwyNC05YzEuMi0uNCAyLjItMS4yIDMtMi4xczEuNC0yLjEgMS42LTMuMyAuMi0yLjUtLjItMy43LTEuMS0yLjMtMi0zLjFsLTE4LjctMTcuNWMuMi0xLjkgLjQtMy45IC42LTUuOWwyMS44LTEzLjVjMS4xLS43IDEuOS0xLjYgMi42LTIuN3MuOS0yLjMgLjktMy42LS4zLTIuNS0uOS0zLjYtMS41LTItMi42LTIuN2wwIDB6bS0xNTEgMTI5LjFjLTMuNi0uOC03LjQtLjEtMTAuNSAxLjlzLTUuMyA1LjItNiA4LjhsLTcuNiAzNS43Yy0yNC42IDExLjEtNTEuMyAxNi44LTc4LjMgMTYuN3MtNTMuNi02LjEtNzguMS0xNy40bC03LjYtMzUuN2MtLjQtMS44LTEuMS0zLjUtMi4xLTVzLTIuNC0yLjgtMy45LTMuOC0zLjItMS43LTUtMi0zLjYtLjMtNS40IC4xbC0zMS41IDYuOGMtNS44LTYtMTEuMy0xMi41LTE2LjMtMTkuMmwxNTMuMiAwYzEuNyAwIDIuOS0uMyAyLjktMS45bDAtNTQuMmMwLTEuNi0xLjItMS45LTIuOS0xLjlsLTQ0LjggMCAwLTM0LjQgNDguNSAwYzQuNCAwIDIzLjcgMS4zIDI5LjggMjUuOSAxLjkgNy41IDYuMiAzMi4xIDkuMSA0MCAyLjkgOC44IDE0LjYgMjYuNSAyNy4xIDI2LjVsNzkgMGMtNS4zIDcuMS0xMS4xIDEzLjgtMTcuMyAyMC4xbC0zMi4xLTYuOXptMjUuOCAzNC41YzAgMy0uOSA2LTIuNiA4LjVzLTQgNC41LTYuOCA1LjYtNS44IDEuNS04LjggLjktNS43LTItNy44LTQuMi0zLjYtNC44LTQuMi03LjgtLjMtNiAuOC04LjggMy4xLTUuMiA1LjYtNi45IDUuNC0yLjYgOC41LTIuNmwuNCAwYzQgLjEgNy43IDEuOCAxMC41IDQuNnM0LjMgNi43IDQuMyAxMC42bC4xIDB6bS0yMjUuNi0uN2MwIDMtLjkgNi0yLjYgOC41cy00LjEgNC41LTYuOCA1LjYtNS44IDEuNS04LjggLjktNS43LTItNy44LTQuMi0zLjYtNC44LTQuMi03LjgtLjMtNiAuOS04LjggMy4xLTUuMiA1LjYtNi44IDUuNC0yLjYgOC41LTIuNmwuNSAwYzQgLjEgNy43IDEuOCAxMC41IDQuNnM0LjMgNi43IDQuMyAxMC42bC4xIDB6TTY5LjYgMjM0LjJsMzIuOC0xNC42YzEuNy0uNyAzLjItMS44IDQuNC0zLjFzMi4yLTIuOSAyLjktNC42IDEtMy41IC45LTUuMy0uNS0zLjYtMS4yLTUuM2wtNi44LTE1LjIgMjYuNiAwIDAgMTE5LjctNTMuNiAwYy02LjYtMjMuMi04LjctNDcuNi02LjEtNzEuNnpNNTguMyAxOTguMWMwLTIgLjQtNCAxLjItNS44czEuOS0zLjUgMy4zLTQuOSAzLjEtMi41IDQuOS0zLjMgMy44LTEuMiA1LjgtMS4ybC41IDBjMyAuMSA1LjkgMSA4LjMgMi44czQuMyA0LjEgNS40IDYuOSAxLjMgNS44IC43IDguOC0yLjEgNS42LTQuMyA3LjctNC45IDMuNS03LjggNC4xLTYgLjItOC43LS45LTUuMS0zLjEtNi44LTUuNi0yLjUtNS40LTIuNS04LjRsMCAwem0xNTUuMiAyNC41bDAtMzUuMyA2My4zIDBjMy4zIDAgMjMuMSAzLjggMjMuMSAxOC42IDAgMTIuMy0xNS4yIDE2LjctMjcuNyAxNi43bC01OC43IDB6TTM5OSAzMDYuN2MtOS44IDEuMS0yMC42LTQuMS0yMi0xMC4xLTUuOC0zMi41LTE1LjQtMzkuNC0zMC42LTUxLjQgMTguOS0xMiAzOC41LTI5LjYgMzguNS01My4zIDAtMjUuNS0xNy41LTQxLjYtMjkuNC00OS41LTE2LjgtMTEtMzUuMy0xMy4yLTQwLjMtMTMuMmwtMTk4LjkgMGMyNy41LTMwLjcgNjQuNC01MS41IDEwNC45LTU5LjJsMjMuNSAyNC42YzEuMyAxLjMgMi44IDIuNCA0LjQgMy4xczMuNSAxLjEgNS4zIDEuMiAzLjYtLjMgNS4zLS45IDMuMi0xLjcgNC42LTIuOWwyNi4zLTI1YzI2LjggNSA1Mi4xIDE1LjggNzQuMyAzMS42czQwLjYgMzYuMiA1NC4xIDU5LjlsLTE4IDQwLjZjLTEuNSAzLjQtMS41IDcuMi0uMiAxMC42czMuOSA2LjIgNy4zIDcuN2wzNC42IDE1LjNjMS4xIDEwLjggMS4yIDIxLjcgLjQgMzIuNWwtMTkuMyAwYy0xLjkgMC0yLjcgMS4zLTIuNyAzLjFsMCA4LjhjMCAyMC44LTExLjcgMjUuMy0yMiAyNi41ek0yNDAgNjAuMmMwLTQgMS42LTcuOSA0LjUtMTAuN3M2LjctNC41IDEwLjctNC41bC40IDBjMyAuMSA1LjkgMSA4LjQgMi44czQuMyA0LjEgNS40IDYuOSAxLjMgNS44IC43IDguOC0yLjEgNS42LTQuMyA3LjctNC45IDMuNS03LjggNC02IC4yLTguNy0uOS01LjEtMy4xLTYuOC01LjYtMi41LTUuNC0yLjUtOC40ek00MzYuOCAyMTRjLTIgMC00LS40LTUuOC0xLjJzLTMuNS0xLjktNC45LTMuMy0yLjUtMy4xLTMuMy00LjktMS4yLTMuOC0xLjItNS44IC40LTQgMS4yLTUuOCAxLjktMy41IDMuMy00LjkgMy4xLTIuNSA0LjktMy4zIDMuOC0xLjIgNS44LTEuMmwuNCAwYzQgLjEgNy45IDEuNyAxMC43IDQuNnM0LjQgNi44IDQuMyAxMC44LTEuNyA3LjktNC42IDEwLjctNi44IDQuNC0xMC44IDQuM3oiXX0sa1B0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhvcm5iaWxsIixpY29uOls1MTIsNTEyLFtdLCJmNTkyIiwiTTc2LjggMzcwLjNjMSA3LjgtLjQgMTUuOC00LjEgMjIuOHMtOS42IDEyLjYtMTYuNyAxNi4xLTE1LjEgNC43LTIyLjkgMy4zLTE1LTUuMS0yMC42LTEwLjctOS4yLTEyLjktMTAuNS0yMC43IDAtMTUuOCAzLjYtMjIuOSA5LjMtMTIuOCAxNi4zLTE2LjUgMTUtNSAyMi45LTMuOWMtNzguMy0xMTEuMyA1Mi0xOTAuNSA1Mi0xOTAuNS01LjkgNDMtOC4yIDkxLjItOC4yIDkxLjItNjcuMyA0MS41IC45IDY0LjEgMzkuOCA3Mi45IDkuOSAyNyAyNy44IDUwLjIgNTEuNCA2Ni43czUxLjYgMjUuMyA4MC4zIDI1LjNjMS45IDAgMy44LS4yIDUuNy0uM2wuMSAxOC45Yy05OS4yIDEuNC0xNTguNy0yOS4xLTE4OC45LTUxLjZ6bTEwOC0zMjcuN2MuOS03LjItLjItMTQuNi0zLjQtMjEuMi0zLTYuMi03LjYtMTEuNS0xMy40LTE1LjNzLTEyLjUtNS45LTE5LjQtNi4yLTEzLjggMS40LTE5LjggNC43LTExLjEgOC4zLTE0LjUgMTQuMy01LjIgMTIuOC01IDE5LjcgMi4yIDEzLjcgNS45IDE5LjUgOC45IDEwLjYgMTUuMSAxMy42IDEzLjEgNC40IDIwIDMuOWMtMjIuNiAyOS45LTUzLjggODkuNi01Mi40IDE5MGwyMS44LS4yYzAtLjktLjEtMS44LS4xLTIuNyAwLTI4IDguNC01NS4zIDI0LjEtNzguNXMzNy45LTQxLjIgNjMuOC01MS42YzgtMzcuNyAzMC43LTExNC4zIDczLjgtNDQuMyAwIDAgNDguMSAyLjQgOTEuMiA4LjIgMCAwLTc3LjgtMTI4LTE4Ny42LTU0LjFsMCAwek00ODkgMTc2LjhjNi4zLTMgMTEuNy03LjcgMTUuNS0xMy42czUuOS0xMi43IDYuMS0xOS44LTEuNi0xNC01LjItMjAtOC43LTExLTE0LjktMTQuMy0xMy4yLTQuOC0yMC4yLTQuNC0xMy44IDIuOC0xOS41IDYuOS0xMC4yIDkuNi0xMyAxNi4xLTMuNyAxMy42LTIuNyAyMC41Yy0zMS43LTIxLjktODkuOC00OS4xLTE4My40LTQ3LjdsLjEgMjIuNWMyLjctLjIgNS40LS40IDguMS0uNCAyOC4xIDAgNTUuNiA4LjUgNzguOSAyNC4zczQxLjIgMzguMyA1MS42IDY0LjVjMzkuMSA5IDEwNS4xIDMxLjYgMzguNSA3Mi41IDAgMC0yLjMgNDguMS04LjIgOTEuMiAwIDAgMTMzLjQtODEuMiA0OS0xOTQuNiA2LjYgLjYgMTMuMy0uNiAxOS4zLTMuNWwwIDB6TTM3NC40IDQzNi4yYzIxLjQtMzIuNSA0Ni40LTg5LjcgNDUuMS0xNzkuN2wtMTkuNSAuMWMuMSAyLjEgLjMgNC4xIC4zIDYuMiAwIDI4LjYtOC44IDU2LjUtMjUuMSA4MHMtMzkuNSA0MS40LTY2LjMgNTEuNGMtOC45IDM5LTMxLjQgMTA2LjctNzIuOCAzOS41IDAgMC00OC4xLTIuMy05MS4yLTguMiAwIDAgNzkuOSAxMzEuMyAxOTEuOSA1MSAuMyA0LjkgMS41IDkuNiAzLjYgMTQgMi45IDYuMSA3LjUgMTEuNCAxMy4xIDE1LjFzMTIuMiA2IDE5IDYuNCAxMy42LTEuMSAxOS42LTQuMiAxMS4xLTcuOCAxNC43LTEzLjYgNS42LTEyLjQgNS43LTE5LjItMS41LTEzLjUtNC44LTE5LjQtOC4yLTEwLjktMTQuMS0xNC4zLTEyLjYtNS4yLTE5LjQtNS4xbDAtLjF6Il19LFNQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaHAiLGljb246WzY0MCw1MTIsW10sImY0NTciLCJNMzIwIDEwNC41YzE3MS40IDAgMzAzLjIgNzIuMiAzMDMuMiAxNTEuNVM0OTEuMyA0MDcuNSAzMjAgNDA3LjVDMTQ4LjYgNDA3LjUgMTYuOCAzMzUuMyAxNi44IDI1NlMxNDguNyAxMDQuNSAzMjAgMTA0LjV6bTAtMTYuOEMxNDMuMyA4Ny43IDAgMTYzIDAgMjU2UzE0My4zIDQyNC4zIDMyMCA0MjQuMyA2NDAgMzQ5IDY0MCAyNTYgNDk2LjcgODcuNyAzMjAgODcuN3pNMjE4LjIgMjQyLjVjLTcuOSA0MC41LTM1LjggMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4IDAgNjMuOC00LjEgNTYuNCAzNC4zek05Ny40IDM1MC4zbDM2LjcgMCA4LjctNDQuOGM0MS4xIDAgNjYuNiAzIDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN2wtNzAuNyAwLTMyLjcgMTY4Ljd6TTI4My4xIDEzNi43bDM2LjUgMC04LjcgNDQuOGMzMS41IDAgNjAuNy0yLjMgNzQuOCAxMC43IDE0LjggMTMuNiA3LjcgMzEtOC4zIDExMy4xbC0zNyAwYzE1LjQtNzkuNCAxOC4zLTg2IDEyLjctOTItNS40LTUuOC0xNy43LTQuNi00Ny40LTQuNmwtMTguOCA5Ni42LTM2LjUgMCAzMi43LTE2OC42ek01MDUgMjQyLjVjLTggNDEuMS0zNi43IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOC4yIDAgNjMuOC00LjEgNTYuNCAzNC4zek0zODQuMiAzNTAuM2wzNi44IDAgOC43LTQ0LjhjNDMuMiAwIDY3LjEgMi41IDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN2wtNzAuNyAwLTMyLjggMTY4Ljd6Il19LF9QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNxdXMiLGljb246WzU3Niw1MTIsW10sImU3ZDUiLCJNMjkwLjIgNTEyYy02Mi42IDAtMTE5LjktMjIuOS0xNjQuMi02MC44TDE3IDQ2Ni4xIDU5LjEgMzYyLjJjLTE0LjctMzIuNC0yMi45LTY4LjMtMjIuOS0xMDYuMiAwLTE0MS40IDExMy43LTI1NiAyNTQtMjU2IDE0MC4zIDAgMjU0IDExNC42IDI1NCAyNTYgMCAxNDEuNC0xMTMuNyAyNTYtMjU0IDI1NnpNNDI4LjkgMjU1LjNsMC0uN0M0MjguOSAxODAuNyAzNzYuOCAxMjggMjg3IDEyOGwtOTcgMCAwIDI1NiA5NS42IDBjOTAuNSAwIDE0My40LTU0LjkgMTQzLjQtMTI4Ljd6TTI4OCAzMjEuMWwtMjguNCAwIDAtMTMwLjIgMjguNCAwYzQxLjcgMCA2OS4zIDIzLjggNjkuMyA2NC43bDAgLjdjMCA0MS4zLTI3LjcgNjQuNy02OS4zIDY0Ljd6Il19LE1QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiI1MDBweCIsaWNvbjpbMzg0LDUxMixbXSwiZjI2ZSIsIk03MS44IDM0NC4zYy02LjUtMTQuMi02LjktMTguMyA3LjQtMjMuMSAyNS42LTggOCA5LjIgNDMuMiA0OS4ybC4zIDAgMC05My45YzEuMi01MC4yIDQ0LTkyLjIgOTcuNy05Mi4yIDUzLjkgMCA5Ny43IDQzLjUgOTcuNyA5Ni44IDAgNjMuNC02MC44IDExMy4yLTEyOC41IDkzLjMtMTAuNS00LjItMi4xLTMxLjcgOC41LTI4LjYgNTMgMCA4OS40LTEwLjEgODkuNC02NC40IDAtNjEtNzcuMS04OS42LTExNi45LTQ0LjYtMjMuNSAyNi40LTE3LjYgNDIuMS0xNy42IDE1Ny42IDUwLjcgMzEgMTE4LjMgMjIgMTYwLjQtMjAuMSAyNC44LTI0LjggMzguNS01OCAzOC41LTkzIDAtMzUuMi0xMy44LTY4LjItMzguOC05My4zLTI0LjgtMjQuOC01Ny44LTM4LjUtOTMuMy0zOC41UzE1MSAxNjMuMyAxMjYuMyAxODhjLS4zIC4zLTE2IDE2LjUtMjEuMiAyMy45bC0uNSAuNmMtMy4zIDQuNy02LjMgOS4xLTIwLjEgNi4xLTYuOS0xLjctMTQuMy01LjgtMTQuMy0xMS44TDcwLjIgMjBjMC01IDMuOS0xMC41IDEwLjUtMTAuNUwzMjIgOS41YzguMyAwIDguMyAxMS42IDguMyAxNS4xIDAgMy45IDAgMTUuMS04LjMgMTUuMWwtMjIzLjIgMCAwIDEzMi45IC4zIDBjMTA0LjItMTA5LjggMjgyLjgtMzYgMjgyLjggMTA4LjkgMCAxNzguMS0yNDQuOCAyMjAuMy0zMTAuMSA2Mi44ek0xMzUuMSA4My41Yy0uNSA0LjIgNC42IDI0LjUgMTQuNiAyMC42IDEyNC44LTQ3LjUgMjAyLjggNDAuNCAyMDkuNCA0MC40IDQuOCAwIDIyLjgtMTUuMyAxNC4zLTIyLjgtOTMuMi04OS0yMzQuNS01Ny0yMzguMy0zOC4yek0zNjEuNSA0MTQuN2MtMTEwIDEwOS45LTI5OSA2MC44LTMzMi0xMDQuMiAwLTEyLjItMzAuNC03LjQtMjguOSAzLjMgMjQgMTczLjQgMjQ2IDI1Ni45IDM4MS42IDEyMS4zIDYuOS03LjgtMTIuNi0yOC40LTIwLjctMjAuNHpNMTgyLjEgMzA2LjZjMCA0IDQuMyA3LjMgNS41IDguNSAzIDMgNi4xIDQuNCA4LjUgNC40IDMuOCAwIDIuNiAuMiAyMi4zLTE5LjUgMTkuNiAxOS4zIDE5LjEgMTkuNSAyMi4zIDE5LjUgNS40IDAgMTguNS0xMC40IDEwLjctMTguMmwtMTcuMy0xNy4zIDE4LjItMTguMmM2LjMtNi44LTEwLjEtMjEuOC0xNi4yLTE1LjdMMjE4LjIgMjY4Yy0xOC42LTE4LjgtMTguNC0xOS41LTIxLjUtMTkuNS01IDAtMTggMTEuNy0xMi40IDE3LjNMMjAyLjUgMjg0Yy0xOC4xIDE3LjktMjAuNCAxOS4yLTIwLjQgMjIuNnoiXX0selB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFmZmlsaWF0ZXRoZW1lIixpY29uOls1MTIsNTEyLFtdLCJmMzZiIiwiTTE1OS43IDIzNy40QzEwOC40IDMwOC4zIDQzLjEgMzQ4LjIgMTQgMzI2LjYtMTUuMiAzMDQuOSAyLjggMjMwIDU0LjIgMTU5LjEgMTA1LjUgODguMiAxNzAuOCA0OC4zIDE5OS45IDY5LjlzMTEuMSA5Ni42LTQwLjIgMTY3LjV6bTM1MS4yLTU3LjNjLTczLjggMTIzLjQtMTkxLjkgMTg3LjctMjY0LjUgMTQzLjYtMjUtMTUuMi00MS4zLTQxLjItNDktNzMuOC0zMy42IDY0LjgtOTIuOCAxMTMuOC0xNjQuMSAxMzMuMiA0OS44IDU5LjMgMTI0LjEgOTYuOSAyMDcgOTYuOSAxNTAgMCAyNzEuNi0xMjMuMSAyNzEuNi0yNzQuOSAuMS04LjUtLjMtMTYuOC0xLTI1eiJdfSxDUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkLXJpdmVyIixpY29uOls0NDgsNTEyLFtdLCJmM2UzIiwiTTM1My4yIDMyTDk0LjggMzJDNDIuNCAzMiAwIDc0LjQgMCAxMjYuOEwwIDM4NS4yQzAgNDM3LjYgNDIuNCA0ODAgOTQuOCA0ODBsMjU4LjQgMGM1Mi40IDAgOTQuOC00Mi40IDk0LjgtOTQuOGwwLTI1OC40QzQ0OCA3NC40IDQwNS42IDMyIDM1My4yIDMyek0xNDQuOSAyMDAuOWwwIDU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bDAtMTU0LjJjMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjlsMTU0LjIgMGMwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsLTU2LjMgMGMtMTIuMy0uNi0yNC42IDExLjYtMjQgMjR6bTE3Ni4zIDcybC01Ni4zIDBjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0bDAgNTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsMC0xNTQuMmMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWwxNTQuMiAwYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOXoiXX0sTGI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdHRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjA5OSIsIk00NTkuNCAxNTEuN2MuMyA0LjUgLjMgOS4xIC4zIDEzLjYgMCAxMzguNy0xMDUuNiAyOTguNi0yOTguNiAyOTguNi01OS41IDAtMTE0LjctMTcuMi0xNjEuMS00Ny4xIDguNCAxIDE2LjYgMS4zIDI1LjMgMS4zIDQ5LjEgMCA5NC4yLTE2LjYgMTMwLjMtNDQuOC00Ni4xLTEtODQuOC0zMS4yLTk4LjEtNzIuOCA2LjUgMSAxMyAxLjYgMTkuOCAxLjYgOS40IDAgMTguOC0xLjMgMjcuNi0zLjYtNDguMS05LjctODQuMS01Mi04NC4xLTEwM2wwLTEuM2MxNCA3LjggMzAuMiAxMi43IDQ3LjQgMTMuMy0yOC4zLTE4LjgtNDYuOC01MS00Ni44LTg3LjQgMC0xOS41IDUuMi0zNy40IDE0LjMtNTMgNTEuNyA2My43IDEyOS4zIDEwNS4zIDIxNi40IDEwOS44LTEuNi03LjgtMi42LTE1LjktMi42LTI0IDAtNTcuOCA0Ni44LTEwNC45IDEwNC45LTEwNC45IDMwLjIgMCA1Ny41IDEyLjcgNzYuNyAzMy4xIDIzLjctNC41IDQ2LjUtMTMuMyA2Ni42LTI1LjMtNy44IDI0LjQtMjQuNCA0NC44LTQ2LjEgNTcuOCAyMS4xLTIuMyA0MS42LTguMSA2MC40LTE2LjItMTQuMyAyMC44LTMyLjIgMzkuMy01Mi42IDU0LjN6Il19LFRQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J0LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImYyODYiLCJNNDg5LjUgMjg3LjlsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTE3OC4zYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtNi04LTQuNi0xMS43LTQuNmwwLTM4YzguMy0yIDE3LjEtMy40IDI1LjctMy40IDEwLjkgMCAyMC45IDQuMyAzMS40IDQuMyA0LjYgMCAyNy43LTEuMSAyNy43LThsMC02MGMwLTIuNi0yLTQuNi00LjYtNC42LTUuMSAwLTE1LjEgNC4zLTI0IDQuMy05LjcgMC0yMC45LTQuMy0zMi42LTQuMy04IDAtMTYgMS4xLTIzLjcgMi45bDAtNC45YzUuNC0yLjYgOS4xLTguMyA5LjEtMTQuMyAwLTIwLjctMzEuNC0yMC44LTMxLjQgMCAwIDYgMy43IDExLjcgOS4xIDE0LjNsMCAxMTEuN2MtMy43IDAtMTEuNy0xLjQtMTEuNyA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi4zIDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAxNzguMy0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAyMTkuNSAxODIuOSAwIDAtOTZjMC03Mi42IDEwOS43LTcyLjYgMTA5LjcgMGwwIDk2IDE4Mi45IDAgMC0yMTkuNWMuMS0yLjYtMS45LTQuNi00LjUtNC42em0tMjg4LjEtNC41YzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHptMTQ2LjQgMGMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6Il19LCRQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXhlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTA1NiIsIk04Mi42IDc2LjFjLTMuOC01LjEtOC43LTkuNC0xNC4yLTEyLjVzLTExLjctNS4xLTE4LjEtNS43LTEyLjggLjEtMTguOCAyLjItMTEuNiA1LjMtMTYuMyA5LjZjLTE3LjYgMTYuMi0xOSA0My41LTQuOCA2Mi44bDkxLjggMTIzLTkyLjMgMTI0LjFjLTE0LjIgMTkuMy0xMy4xIDQ2LjYgNC43IDYyLjggNC43IDQuMyAxMC4zIDcuNiAxNi4zIDkuNnMxMi41IDIuOCAxOC44IDIuMiAxMi41LTIuNSAxOC4xLTUuNyAxMC40LTcuNCAxNC4yLTEyLjVMMjEwLjkgMjYyLjdjMS41LTIuMSAyLjMtNC42IDIuMy03LjFzLS44LTUtMi4zLTcuMUw4Mi42IDc2LjF6TTQzOC4yIDM3OS42bC05Mi4zLTEyNC4xIDkxLjgtMTIzYzE0LjItMTkuMiAxMi44LTQ2LjYtNC43LTYyLjgtNC43LTQuMy0xMC4zLTcuNi0xNi4zLTkuNnMtMTIuNS0yLjgtMTguOC0yLjItMTIuNSAyLjUtMTguMSA1LjctMTAuNCA3LjQtMTQuMiAxMi41bC0xMjggMTcyLjFjLTEuNSAyLjEtMi4zIDQuNi0yLjMgNy4xcy44IDUgMi4zIDcuMUwzNjYgNDM1LjljMy44IDUuMSA4LjcgOS40IDE0LjIgMTIuNXMxMS43IDUuMSAxOC4xIDUuNyAxMi44LS4xIDE4LjgtMi4yIDExLjYtNS4zIDE2LjMtOS42YzE3LjgtMTYuMiAxOS00My41IDQuNy02Mi44eiJdfSxEUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHlmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjNjMyIsIk0wIDgxLjFsNzcuOCAwIDAgMjA4LjdjMCAzMy4xIDE1IDUyLjggMjcuMiA2MS0xMi43IDExLjEtNTEuMiAyMC45LTgwLjItMi44LTE3LTE0LTI0LjgtMzcuMy0yNC44LTU5TDAgODEuMXpNNDg1LjkgMjU0LjZsMC0yMiAyMy44IDAgMC03Ni44LTI2LjEgMGMtMTAuMS00Ni4zLTUxLjItODAuNy0xMDAuMy04MC43LTU2LjYgMC0xMDIuNyA0Ni0xMDIuNyAxMDIuN2wwIDE3OS4yYzE2IDIuMyAzNS40LS4zIDUxLjctMTQgMTcuMS0xNCAyNC44LTM3LjIgMjQuOC01OWwwLTYuNyAzOC44IDAgMC03Ni44LTM4LjggMCAwLTIzLjNjMC0zNC42IDUyLjItMzQuNiA1Mi4yIDBsMCA3Ny4xYzAgNTYuNiA0NiAxMDIuNyAxMDIuNyAxMDIuN2wwLTc2LjVjLTE0LjUgMC0yNi4xLTExLjctMjYuMS0yNS45em0tMjk0LjMtOTlsMCAxMTNjMCAxNS40LTIzLjggMTUuNC0yMy44IDBsMC0xMTMtNzYuOCAwIDAgMTMyLjdjMCAyMy44IDggNTQgNDUgNjMuOSAzNyA5LjggNTguMi0xMC42IDU4LjItMTAuNi0yLjEgMTMuNC0xNC41IDIzLjMtMzQuOSAyNS4zLTE1LjUgMS42LTM1LjItMy42LTQ1LTcuOGwwIDcwLjNjMjUuMSA3LjUgNTEuNSA5LjggNzcuNiA0LjcgNDcuMS05LjEgNzYuOC00OC40IDc2LjgtMTAwLjhsMC0xNzguMi03Ny4xIDAgMCAuNXoiXX0sTFB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGxlLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxNSIsIk0xMTYuOSAxNTguNWMtNy41IDguOS0xOS41IDE1LjktMzEuNSAxNC45LTEuNS0xMiA0LjQtMjQuOCAxMS4zLTMyLjYgNy41LTkuMSAyMC42LTE1LjYgMzEuMy0xNi4xIDEuMiAxMi40LTMuNyAyNC43LTExLjEgMzMuOHptMTAuOSAxNy4yYy0xNy40LTEtMzIuMyA5LjktNDAuNSA5LjktOC40IDAtMjEtOS40LTM0LjgtOS4xLTE3LjkgLjMtMzQuNSAxMC40LTQzLjYgMjYuNS0xOC44IDMyLjMtNC45IDgwIDEzLjMgMTA2LjMgOC45IDEzIDE5LjUgMjcuMyAzMy41IDI2LjggMTMuMy0uNSAxOC41LTguNiAzNC41LTguNiAxNi4xIDAgMjAuOCA4LjYgMzQuOCA4LjQgMTQuNS0uMyAyMy42LTEzIDMyLjUtMjYgMTAuMS0xNC44IDE0LjMtMjkuMSAxNC41LTI5LjktLjMtLjMtMjgtMTAuOS0yOC4zLTQyLjktLjMtMjYuOCAyMS45LTM5LjUgMjIuOS00MC4zLTEyLjUtMTguNi0zMi0yMC42LTM4LjgtMjEuMXptMTAwLjQtMzYuMmwwIDE5NC45IDMwLjMgMCAwLTY2LjYgNDEuOSAwYzM4LjMgMCA2NS4xLTI2LjMgNjUuMS02NC4zcy0yNi40LTY0LTY0LjEtNjRsLTczLjIgMHpNMjU4LjUgMTY1bDM0LjkgMGMyNi4zIDAgNDEuMyAxNCA0MS4zIDM4LjZzLTE1IDM4LjgtNDEuNCAzOC44bC0zNC44IDAgMC03Ny40ek00MjAuNyAzMzUuOWMxOSAwIDM2LjYtOS42IDQ0LjYtMjQuOWwuNiAwIDAgMjMuNCAyOCAwIDAtOTdjMC0yOC4xLTIyLjUtNDYuMy01Ny4xLTQ2LjMtMzIuMSAwLTU1LjkgMTguNC01Ni44IDQzLjZsMjcuMyAwYzIuMy0xMiAxMy40LTE5LjkgMjguNi0xOS45IDE4LjUgMCAyOC45IDguNiAyOC45IDI0LjVsMCAxMC44LTM3LjggMi4zYy0zNS4xIDIuMS01NC4xIDE2LjUtNTQuMSA0MS41IC4xIDI1LjIgMTkuNyA0MiA0Ny44IDQyem04LjItMjMuMWMtMTYuMSAwLTI2LjQtNy44LTI2LjQtMTkuNiAwLTEyLjMgOS45LTE5LjQgMjguOC0yMC41bDMzLjYtMi4xIDAgMTFjMCAxOC4yLTE1LjUgMzEuMi0zNiAzMS4yem0xMDIuNSA3NC42YzI5LjUgMCA0My40LTExLjMgNTUuNS00NS40bDUzLjEtMTQ5LTMwLjggMC0zNS42IDExNS4xLS42IDAtMzUuNi0xMTUuMS0zMS42IDAgNTEuMiAxNDEuOS0yLjggOC42Yy00LjYgMTQuNi0xMi4xIDIwLjMtMjUuNSAyMC4zLTIuNCAwLTctLjMtOC45LS41bDAgMjMuNGMxLjggLjQgOS4zIC43IDExLjYgLjd6Il19LEVQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcnRzdGF0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmNzdhIiwiTTIuMSAzNzcuNGw0MyA3NC4zYzQuMyA4LjUgMTAuOCAxNS43IDE4LjkgMjAuN3MxNy40IDcuNiAyNyA3LjZsMjg1LjQgMC01OS4yLTEwMi42LTMxNS4xIDB6TTUwMS45IDM1MEwzMzUuNyA1OS4zYy00LjQtOC4yLTEwLjktMTUuMS0xOC45LTIwUzI5OS43IDMyIDI5MC40IDMybC04OC40IDAgMjU3LjMgNDQ3LjYgNDAuNy03MC41YzEuOS0zLjIgMjEtMjkuNyAyLTU5LjF6TTI3NS4yIDMwNC41bC0xMTUuNS0yMDAtMTE1LjUgMjAwIDIzMSAweiJdfSxQUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZS1qcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkMyIsIk0yMjQuNSA1MDhjLTYuNyAwLTEzLjUtMS44LTE5LjQtNS4ybC02MS43LTM2LjVjLTkuMi01LjItNC43LTctMS43LTggMTIuMy00LjMgMTQuOC01LjIgMjcuOS0xMi43IDEuNC0uOCAzLjItLjUgNC42IC40bDQ3LjQgMjguMWMxLjcgMSA0LjEgMSA1LjcgMEw0MTIgMzY3LjVjMS43LTEgMi44LTMgMi44LTVsMC0yMTMuMmMwLTIuMS0xLjEtNC0yLjktNS4xTDIyNy4zIDM3LjdjLTEuNy0xLTQtMS01LjcgMEwzNy4xIDE0NC4zYy0xLjggMS0yLjkgMy0yLjkgNS4xbDAgMjEzLjFjMCAyIDEuMSA0IDIuOSA0LjlsNTAuNiAyOS4yYzI3LjUgMTMuNyA0NC4zLTIuNCA0NC4zLTE4LjdsMC0yMTAuNGMwLTMgMi40LTUuMyA1LjQtNS4zbDIzLjQgMGMyLjkgMCA1LjQgMi4zIDUuNCA1LjNsMCAyMTAuNWMwIDM2LjYtMjAgNTcuNi01NC43IDU3LjYtMTAuNyAwLTE5LjEgMC00Mi41LTExLjZMMjAuNiAzOTYuMWMtMTItNi45LTE5LjQtMTkuOC0xOS40LTMzLjdsMC0yMTMuMWMwLTEzLjggNy40LTI2LjggMTkuNC0zMy43TDIwNS4xIDljMTEuNy02LjYgMjcuMi02LjYgMzguOCAwTDQyOC42IDExNS43YzEyIDYuOSAxOS40IDE5LjggMTkuNCAzMy43bDAgMjEzLjFjMCAxMy44LTcuNCAyNi43LTE5LjQgMzMuN0wyNDMuOSA1MDIuOGMtNS45IDMuNC0xMi42IDUuMi0xOS40IDUuMnpNMzczLjYgMjk3LjljMC0zOS45LTI3LTUwLjUtODMuNy01OC01Ny40LTcuNi02My4yLTExLjUtNjMuMi0yNC45IDAtMTEuMSA0LjktMjUuOSA0Ny40LTI1LjkgMzcuOSAwIDUxLjkgOC4yIDU3LjcgMzMuOCAuNSAyLjQgMi43IDQuMiA1LjIgNC4ybDI0IDBjMS41IDAgMi45LS42IDMuOS0xLjdzMS41LTIuNiAxLjQtNC4xYy0zLjctNDQuMS0zMy02NC42LTkyLjItNjQuNi01Mi43IDAtODQuMSAyMi4yLTg0LjEgNTkuNSAwIDQwLjQgMzEuMyA1MS42IDgxLjggNTYuNiA2MC41IDUuOSA2NS4yIDE0LjggNjUuMiAyNi43IDAgMjAuNi0xNi42IDI5LjQtNTUuNSAyOS40LTQ4LjkgMC01OS42LTEyLjMtNjMuMi0zNi42LS40LTIuNi0yLjYtNC41LTUuMy00LjVsLTIzLjkgMGMtMyAwLTUuMyAyLjQtNS4zIDUuMyAwIDMxLjEgMTYuOSA2OC4yIDk3LjggNjguMiA1OC40LS4xIDkyLTIzLjIgOTItNjMuNHoiXX0sSVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuY2hhcnRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NCIsIk0xNzEuOCAyMzIuOGMxLjEgMCAyLjEtLjMgMy0uOXMxLjYtMS40IDItMi40YzIuMi05LjggNy40LTE4LjYgMTQuOS0yNS4zIDEuMi0uOCAxLjctMi41IDEuNy00LjEtLjEtLjctLjMtMS4zLS42LTEuOXMtLjktMS4xLTEuNC0xLjRMNzQuNSAxMjguNSAxNDkuMSA4NWMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhjMC0xLjctLjQtMy40LTEuMy00LjlzLTIuMi0yLjctMy43LTMuNEwxMjYuNyA1NS42Yy0xLjUtLjgtMy4xLTEuMi00LjgtMS4ycy0zLjMgLjQtNC44IDEuMkwxNyAxMTMuNmMtMS41IC44LTIuNyAyLTMuNiAzLjVzLTEuNCAzLjEtMS40IDQuOEwxMiAyMzdjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDIyLjQgMTIuOGMxLjUgLjkgMy4yIDEuMyA1IDEuMiAyLjQgLjEgNC44LS44IDYuNi0yLjUgMS44LTEuOSAyLjgtNC40IDIuOS03bDAtODUuMyAxMTUuOSA2Ny45Yy42IC4zIDEuNCAuNCAyLjEgLjR6TTMyMy40IDM3Ny43Yy0xLjcgLjEtMy40IC41LTUgMS4ybC03NC41IDQzLjEgMC0xMzQuMmMwLTIuOS0yLjktNS44LTYuMi00LjYtOS40IDIuOC0xOS41IDMtMjkgLjQtLjctLjItMS41LS4yLTIuMi0uMXMtMS40IC40LTIgLjktMS4xIDEtMS40IDEuNy0uNSAxLjQtLjUgMi4xbDAgMTMzLjMtNzQuNS00My4xYy0xLjUtLjktMy4yLTEuMy01LTEuMi0yLjUgMC00LjkgMS02LjcgMi44cy0yLjggNC4yLTIuOCA2LjdsMCAyNi4xYzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwxMDAuMiA1Ny42YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDEuNyAwIDMuNC0uNCA1LTEuMmwxMDAuMi01Ny42YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGwwLTI2LjFjLS44LTQuNi01LjQtOS4xLTEwLjQtOS4xek0yODYuMSA3OGEyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bTYzLjYtMTAuMWEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bTYzLjIgODMuN2EyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bS02My4yLTkuMmEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bS02My42IDgzLjJjNC41IDAgOS0xLjMgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuOCA4LjhzMi45IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6TTIyNCAyNjJjNC41IDAgOS0xLjQgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuNyA4LjhzMi44IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6bTE4OC45LTgyLjRjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHptMCA3Mi4zYy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6Il19LEFQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwbGF5c3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNkZiIsIk01NzEgMzcyLjNjLTExLjMgMTQuMi0zOC44IDI0LjMtMzguOCAyNC4zbC0yMDUuMSA3My42IDAtNTQuMyAxNTAuOS01My44YzE3LjEtNi4xIDE5LjgtMTQuOCA1LjgtMTkuNC0xMy45LTQuNi0zOS4xLTMuMy01Ni4yIDIuOWwtMTAwLjUgMzUuNSAwLTU2LjRjMjMuMi03LjggNDcuMS0xMy42IDc1LjctMTYuOCA0MC45LTQuNSA5MC45IC42IDEzMC4yIDE1LjUgNDQuMiAxNCA0OS4yIDM0LjcgMzggNDguOXpNMzQ2LjYgMjc5LjhsMC0xMzljMC0xNi4zLTMtMzEuMy0xOC4zLTM1LjYtMTEuNy0zLjgtMTkgNy4xLTE5IDIzLjRsMCAzNDcuOS05My44LTI5LjggMC00MTQuN2MzOS45IDcuNCA5OCAyNC45IDEyOS4yIDM1LjQgNzkuNSAyNy4zIDEwNi40IDYxLjMgMTA2LjQgMTM3LjggMCA3NC41LTQ2IDEwMi44LTEwNC41IDc0LjZ6TTQzLjMgNDEwLjJjLTQ1LjQtMTIuOC01My0zOS41LTMyLjMtNTQuOCAxOS4xLTE0LjIgNTEuNy0yNC45IDUxLjctMjQuOWwxMzQuNS00Ny44IDAgNTQuNS05Ni44IDM0LjZjLTE3LjEgNi4xLTE5LjcgMTQuOC01LjggMTkuNHMzOS4xIDMuMyA1Ni4yLTIuOWw0Ni40LTE2LjkgMCA0OC44Yy01MS42IDkuMy0xMDEuNCA3LjMtMTUzLjktMTB6Il19LE5QdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb2Jsb2ciLGljb246WzQ0OCw1MTIsW10sImUwMWEiLCJNMzk5LjggMzYyLjJjMjkuNS0zNC43IDQ3LjEtNzguMyA0Ny4xLTEyNS44IDAtMTEzLTk5LjYtMjA0LjQtMjIyLjUtMjA0LjRTMiAxMjMuNSAyIDIzNi40IDEwMS42IDQ0MC45IDIyNC41IDQ0MC45YzI3IDAgNTMuOS00LjUgNzkuNC0xMy40IDEuNC0uNSAzLS41IDQuNS0uMXMyLjcgMS40IDMuNiAyLjZjMTguNiAyNS4xIDQ3LjYgNDIuNyA3OS45IDQ5LjkgMS4xIC4yIDIuMyAwIDMuMy0uNnMxLjctMS42IDEuOS0yLjhjLjEtLjYgLjEtMS4zIDAtMS45cy0uNC0xLjItLjgtMS43Yy0xMi4zLTE2LTE4LjctMzUuOC0xOC01NnM4LjQtMzkuNSAyMS43LTU0LjdsLS4yIC4xek0zMzAgMjEyLjRsLTU3LjMgNDMuNSAyMC44IDY4LjljLjQgMS4zIC40IDIuNy0uMSA0cy0xLjIgMi40LTIuMyAzLjItMi40IDEuMi0zLjggMS4yLTIuNy0uNC0zLjgtMS4ybC01OS4xLTQxLTU5LjEgNDEuMWMtMS4xIC44LTIuNCAxLjItMy44IDEuMnMtMi43LS40LTMuOC0xLjItMS45LTEuOS0yLjMtMy4yLS41LTIuNy0uMS00bDIwLjgtNjguOS01Ny4zLTQzLjVjLTEuMS0uOC0xLjktMS45LTIuMy0zLjJzLS40LTIuNyAwLTQgMS4yLTIuNCAyLjMtMy4yIDIuNC0xLjMgMy43LTEuM2w3MS45LTEuNSAyMy43LTY3LjljLjQtMS4zIDEuMy0yLjQgMi40LTMuMnMyLjQtMS4yIDMuOC0xLjIgMi43IC40IDMuOCAxLjIgMS45IDEuOSAyLjQgMy4ybDIzLjcgNjcuOSA3MS45IDEuNWMxLjQgMCAyLjcgLjQgMy44IDEuMnMxLjkgMS45IDIuMyAzLjIgLjQgMi43IDAgNC0xLjIgMi40LTIuMyAzLjNsMCAweiJdfSxSUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0a3Jha2VuIixpY29uOls1NzYsNTEyLFtdLCJmM2E2IiwiTTU1Ny43IDExOC4xYy0yLjMtNi4xLTkuMy05LjItMTUuMy02LjYtNS43IDIuNC04LjUgOC45LTYuMyAxNC42IDEwLjkgMjkgMTYuOSA2MC41IDE2LjkgOTMuMyAwIDEzNC42LTEwMC4zIDI0NS43LTIzMC4yIDI2Mi43bDAtMTIzLjdjNy45LTEuNSAxNS41LTMuNiAyMy02LjJsMCAxMDRjMTA2LjctMjUuOSAxODUuOS0xMjIuMSAxODUuOS0yMzYuOCAwLTkxLjgtNTAuOC0xNzEuOC0xMjUuOC0yMTMuMy01LjctMy4yLTEzLS45LTE1LjkgNS0yLjcgNS41LS42IDEyLjIgNC43IDE1LjEgNjcuOSAzNy42IDExMy45IDExMCAxMTMuOSAxOTMuMiAwIDkzLjMtNTcuOSAxNzMuMS0xMzkuOCAyMDUuNGwwLTkyLjJjMTQuMi00LjUgMjQuOS0xNy43IDI0LjktMzMuNSAwLTEzLjEtNi44LTI0LjQtMTcuMy0zMC41IDguMy03OS41IDQ0LjUtNTguNiA0NC41LTgzLjlsMC0xNC43YzAtMzgtODcuOS0xNjEuOC0xMjktMTY0LjctMi41LS4yLTUtLjItNy42IDAtNDEuMiAzLTEyOS4xIDEyNi43LTEyOS4xIDE2NC43bDAgMTQuOGMwIDI1LjMgMzYuMyA0LjMgNDQuNSA4My45LTEwLjYgNi4xLTE3LjMgMTcuNC0xNy4zIDMwLjUgMCAxNS44IDEwLjYgMjkgMjQuOCAzMy41bDAgOTIuMmMtODEuOS0zMi4yLTEzOS44LTExMi0xMzkuOC0yMDUuNCAwLTgzLjEgNDYtMTU1LjUgMTEzLjktMTkzLjIgNS40LTMgNy40LTkuNiA0LjctMTUuMS0yLjktNS45LTEwLjEtOC4yLTE1LjktNS03NSA0MS41LTEyNS44IDEyMS41LTEyNS44IDIxMy4zIDAgMTE0LjcgNzkuMiAyMTAuOCAxODUuOSAyMzYuOGwwLTEwNGM3LjYgMi41IDE1LjEgNC42IDIzIDYuMmwwIDEyMy43Yy0xMjkuOC0xNy0yMzAuMi0xMjguMS0yMzAuMi0yNjIuNyAwLTMyLjggNi02NC4zIDE2LjktOTMuMyAyLjItNS44LS42LTEyLjItNi4zLTE0LjYtNi0yLjYtMTMgLjQtMTUuMyA2LjYtMTEuOCAzMS41LTE4LjMgNjUuNi0xOC4zIDEwMS4zIDAgMTU1LjEgMTIyLjYgMjgxLjYgMjc2LjMgMjg3LjhsMC0xNDUuOWM2LjggLjQgMTUgLjUgMjMuNCAwbDAgMTQ1LjhjMTUzLjctNi4xIDI3Ni4zLTEzMi42IDI3Ni4zLTI4Ny43IDAtMzUuNy02LjUtNjkuOC0xOC4zLTEwMS40ek0zNTcuOSAzMjIuOWEyMy43IDIzLjcgMCAxIDEgMC00Ny40IDIzLjcgMjMuNyAwIDEgMSAwIDQ3LjR6TTIxOC4xIDI3NS40YTIzLjcgMjMuNyAwIDEgMSAwIDQ3LjQgMjMuNyAyMy43IDAgMSAxIDAtNDcuNHoiXX0sZWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlbGVncmFtIixpY29uOls1MTIsNTEyLFs2MjQ2MiwidGVsZWdyYW0tcGxhbmUiXSwiZjJjNiIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM3MSAxNzYuN2MtMy43IDM5LjItMTkuOSAxMzQuNC0yOC4xIDE3OC4zLTMuNSAxOC42LTEwLjMgMjQuOC0xNi45IDI1LjQtMTQuNCAxLjMtMjUuMy05LjUtMzkuMy0xOC43LTIxLjgtMTQuMy0zNC4yLTIzLjItNTUuMy0zNy4yLTI0LjUtMTYuMS04LjYtMjUgNS4zLTM5LjUgMy43LTMuOCA2Ny4xLTYxLjUgNjguMy02Ni43IC4yLS43IC4zLTMuMS0xLjItNC40cy0zLjYtLjgtNS4xLS41Yy0yLjIgLjUtMzcuMSAyMy41LTEwNC42IDY5LjEtOS45IDYuOC0xOC45IDEwLjEtMjYuOSA5LjktOC45LS4yLTI1LjktNS0zOC42LTkuMS0xNS41LTUtMjcuOS03LjctMjYuOC0xNi4zIC42LTQuNSA2LjctOSAxOC40LTEzLjcgNzIuMy0zMS41IDEyMC41LTUyLjMgMTQ0LjYtNjIuMyA2OC45LTI4LjYgODMuMi0zMy42IDkyLjUtMzMuOCAyLjEgMCA2LjYgLjUgOS42IDIuOSAyIDEuNyAzLjIgNC4xIDMuNSA2LjcgLjUgMy4yIC42IDYuNSAuNCA5Ljh6Il19LE9QdD1lZ2UsRlB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzIixpY29uOls1MTIsNTEyLFtdLCJlODZkIiwiTTM5MS40IDM5LjdjNjUuOC0uMiAxMTguNiA1MS44IDEyMC40IDExNi42IC43IDI2LjQtMS41IDU0LjEtMy44IDc0LjEtMTcuMiAxNDguNi0xMjIuNCAyNDItMjUyLjQgMjQyLTk1LjQtLjEtMTc5LjQtNTIuNy0yMjMuMi0xMzAuNiAyNC40IDE3LjQgNTQuNSAyNy40IDg3LjYgMjcuNCA4My4yIC4xIDE1MS40LTY3LjQgMTUxLjItMTUwbC4xLTYwLjZjLS4yLTY1LjcgNTMuOS0xMTkgMTIwLjEtMTE4Ljl6TTExOS45IDEwMC4yYzY2LjIgMCAxMTkuOSA1My4zIDExOS45IDExOVMxODYuMSAzMzguMyAxMTkuOSAzMzguMyAwIDI4NSAwIDIxOS4zYzAtNjUuNyA1My43LTExOSAxMTkuOS0xMTl6Il19LEJQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMtbm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjNiNSIsIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yIC44LTUuMiAzLTkuNiA3LjEtMTIuOSA0LjItMy41IDExLjgtNS41IDEzLjQtNS41IDIwNC0zOC4yIDIyOC45LTQzLjEgMjMyLjQtNDMuMSAxMS41LS44IDE4LjEgNiAxOC4xIDE3LjYgLjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6Il19LEhQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFkIiwiTTYxMy4yIDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJsLTIwLjUgMCAwIDI0LjIgNi4zIDBjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM2wwIDEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNmwwIC41LTYuMyAwIDAgMjUuMiAyMC41IDBjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNmwwLTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3pNNTA3LjYgMjUxYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6TTE0OC43IDMxMC40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xbDAtMTc4LjItNzQuNiAwYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZsMCAyNy4zYzIwLjUgLjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4ybDIwLjUgMCAwLTI0LjItNi4zIDBjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM2wwLTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFsMTQuMSAwIDAgMTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEgLjgtNC42IC44LTYuMiAuOHpNMzgwLjQgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOUwyNzEgMzAxLjVjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ybDk1LjIgMGMuNS0zLjcgMS42LTExIDEuNi0xOS40IC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFsLTU2LjggMHoiXX0scVB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3giLGljb246WzUxMiw1MTIsW10sImYyNjkiLCJNNTAzLjUgMjQxLjVjLS4xLTEuNi0uMi0zLjEtLjItNC43bDAtLjEtLjQtNC43IDAtLjFjLTEuMy0xMy45LTMuNy0yNy43LTcuMy00MS4yIDAtLjEgMC0uMS0uMS0uMmwtMS4xLTRjLS4xLS4yLS4xLS41LS4yLS42LS40LTEuMi0uNy0yLjUtMS4xLTMuNy0uMS0uMi0uMS0uNi0uMi0uOC0uNC0xLjItLjctMi40LTEuMS0zLjUtLjEtLjQtLjItLjYtLjQtMS0uNC0xLjItLjctMi4zLTEuMi0zLjVsLS40LTEuMWMtLjQtMS4xLS44LTIuMy0xLjItMy40LS4xLS4zLS4yLS43LS40LTEtLjUtMS4xLS44LTIuMy0xLjMtMy40LS4xLS4yLS4yLS42LS40LS44LS41LTEuMi0xLTIuMy0xLjQtMy41IDAtLjEtLjEtLjItLjEtLjQtMS42LTMuOC0zLjItNy43LTUtMTEuNGwtLjQtLjdjLS41LTEtLjgtMS44LTEuMy0yLjYtLjItLjUtLjUtMS4xLS43LTEuNi0uNC0uOC0uOC0xLjYtMS4yLTIuNC0uNC0uNi0uNi0xLjItMS0xLjhzLS44LTEuNC0xLjItMi4zYy0uNC0uNi0uNy0xLjMtMS4xLTEuOXMtLjgtMS40LTEuMi0yLjJjLS40LS43LS44LTEuNC0xLjItMi0uNC0uNy0uOC0xLjMtMS4yLTJzLS44LTEuMy0xLjItMi0uOC0xLjMtMS4yLTEuOS0uOC0xLjQtMS4zLTIuMmMtLjQtLjYtLjgtMS4yLTEuMi0xLjhsLTEuNC0yLjFjLS40LS42LS44LTEuMi0xLjItMS44LS41LS43LTEuMS0xLjYtMS42LTIuMy0uNC0uNS0uNy0xLjEtMS4xLTEuNmwtMS44LTIuNWMtLjQtLjUtLjYtLjgtMS0xLjMtMS0xLjMtMS44LTIuNS0yLjgtMy43LTcuMi05LjQtMTUtMTguMy0yMy41LTI2LjYtNS43LTYtMTEuOC0xMS41LTE4LjMtMTYuNy00LTMuNS04LjItNi43LTEyLjUtOS44LTcuNy01LjgtMTYtMTAuOC0yNC42LTE1LjEtMi40LTEuMy00LjgtMi41LTcuMi0zLjctMTcuNy04LjYtMzYuMy0xNS4yLTU1LjQtMTkuNi0xLjktLjQtMy44LS44LTUuNi0xLjJsLS4xIDBjLTEtLjEtMS44LS40LTIuOC0uNS0xMi41LTIuNC0yNS4yLTMuNy0zOC00bC0xMC42IDBjLTE1LjMgLjItMzAuNSAxLjktNDUuNSA1LTMzLjYgNy4xLTYzLjIgMjEuMi04Mi45IDM5LTEuMSAxLTEuOSAxLjctMi40IDIuMmwtLjUgLjUgLjEgMGMwIDAgLjEgMCAuMSAwczAtLjEgMC0uMWwtLjEgLjFjLjEtLjEgLjEtLjEgLjItLjEgMTQuNi04LjggMzQuOS0xNiA0OS40LTE5LjZsNS45LTEuNGMuNC0uMSAuOC0uMSAxLjItLjIgMS43LS40IDMuNC0uNyA1LjItMS4xIC4yIDAgLjYtLjEgLjgtLjEgNjQuMi0xMS43IDEzMi42IDcuNSAxODAuMiA1MyAxMC4zIDkuOCAxOS4zIDIwLjggMjYuOSAzMi44IDMwLjQgNDkuMiAyNy41IDExMS4xIDMuOCAxNDcuNi0zNC40IDUzLTExMS40IDcxLjMtMTU5IDI0LjgtMTYtMTUuNS0yNS4yLTM2LjctMjUuNi01OS0uMi0xMC43IDItMjEuMiA2LjItMzEgMS43LTMuOCAxMy4xLTI1LjcgMTguMi0yNC42LTEzLjEtMi44LTM3LjUgMi42LTU0LjcgMjguMi0xNS40IDIyLjktMTQuNSA1OC4yLTUgODMuMy02LTEyLjQtMTAuMS0yNS42LTEyLjEtMzkuMi0xMi4yLTgyLjYgNDMuMy0xNTMgOTQuMy0xNzAuNS0yNy41LTI0LTk2LjUtMjIuMy0xNDcuNyAxNS40LTI5LjkgMjItNTEuMiA1My4yLTYyLjUgOTAuNCAxLjctMjAuOSA5LjYtNTIuMSAyNS44LTgzLjktMTcuMiA4LjktMzkgMzctNDkuOCA2Mi45LTE1LjYgMzcuNC0yMSA4Mi4yLTE2LjEgMTI0LjggLjQgMy4yIC43IDYuNCAxLjEgOS42IDE5LjkgMTE3LjEgMTIyIDIwNi40IDI0NC44IDIwNi40IDEzNy4xIDAgMjQ4LjMtMTExLjIgMjQ4LjMtMjQ4LjQtLjEtNC41LS4yLTkuMS0uNS0xMy41eiJdfSxqUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FnZ2xlIixpY29uOlszMjAsNTEyLFtdLCJmNWZhIiwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41bC02OS4yIDBjLTMuNSAwLTcgMS44LTEwLjUgNS4zbC0xMzIuMyAxMzMuNyAwLTMwNmMwLTUtMi41LTcuNS03LjUtNy41TDIxLjUgMEMxNi41IDAgMTQgMi41IDE0IDcuNWwwIDQ5N2MwIDUgMi41IDcuNSA3LjUgNy41bDUxLjkgMGM1IDAgNy41LTIuNSA3LjUtNy41bDAtMTA5IDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zbDY2LjkgMGMzLjUgMCA1LjUtMSA2LTNsLTEuNC03LjZ6Il19LFZQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImYzOWYiLCJNMjU2LjYgOGMtMTQwIDAtMjQ4LjYgMTAyLjMtMjQ4LjYgMjQwLjYgMCA3Mi4zIDI5LjcgMTM0LjggNzguMSAxNzcuOSA4LjMgNy41IDYuNiAxMS45IDggNTguMiAuMSAzLjIgMSA2LjQgMi42IDkuMnMzLjkgNS4yIDYuNyA2LjkgNS45IDIuOCA5LjEgMyA2LjUtLjMgOS41LTEuNkMxNzQuOSA0NzkgMTc1LjYgNDc3LjIgMTg0LjYgNDc5LjYgMzM3LjggNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNiA1MDQgMTEwLjMgMzk2LjYgOCAyNTYuNiA4ek00MDUuOCAxOTMuMWwtNzMgMTE1LjZjLTIuOCA0LjMtNi40IDguMS0xMC42IDExcy05LjEgNC44LTE0LjEgNS44LTEwLjMgLjgtMTUuMy0uNC05LjctMy40LTEzLjgtNi40bC01OC4xLTQzLjVjLTIuNi0xLjktNS44LTMtOS0zcy02LjQgMS4xLTkgM2wtNzguNCA1OS40Yy0xMC41IDcuOS0yNC4yLTQuNi0xNy4xLTE1LjdsNzMtMTE1LjZjMi44LTQuMyA2LjQtOC4xIDEwLjYtMTFzOS4xLTQuOCAxNC4xLTUuOCAxMC4zLS44IDE1LjMgLjQgOS43IDMuNCAxMy45IDYuNGw1OC4xIDQzLjVjMi42IDEuOSA1LjggMyA5IDNzNi40LTEuMSA5LTNsNzguNC01OS40YzEwLjQtOCAyNC4xIDQuNSAxNy4xIDE1LjZ6Il19LFVQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdWRpYmxlIixpY29uOls2NDAsNTEyLFtdLCJmMzczIiwiTTY0MCAxOTkuOWwwIDU0LTMyMCAyMDAtMzIwLTE5OS45IDAtNTQgMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjZzLTEzNS41IDM2LjctMTcyLjYgOTIuNGwuMyAwYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6TTIyNS40IDI5MC43YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMUMyMzUuNCA1Ni44IDQyMS44IDg0LjcgNTIxLjEgMjIzLjJsLjcgMSA0OC44LTMwLjRjLTUzLjUtODEuNy0xNDUuOC0xMzUuNy0yNTAuNy0xMzUuNy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnoiXX0sV1B0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhdHJlb24iLGljb246WzUxMiw1MTIsW10sImYzZDkiLCJNNDkwIDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguMy03NC4yLTI0LTE3Mi0yMC41LTI0Mi45IDEyLjktODUuOCA0MC41LTExMi44IDEyOS4zLTExMy44IDIxNy44LS44IDcyLjggNi40IDI2NC40IDExNC42IDI2NS44IDgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zIDI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOSA3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MGwtLjEgMHoiXX0sR1B0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZudiIsaWNvbjpbNjQwLDUxMixbXSwiZjQwYiIsIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi44IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMMTg2LjQgMzIxLjZTMTc0LjIgMzUyIDE0MCAzNTJsLTM1LjEgMHptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDM5Ny42IDIxMC4xUzM4Ny4yIDE5MiA0MDggMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOSAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDU4MS41IDMyMS42UzU2OS4zIDM1MiA1MzUuMSAzNTJsLTM1LjIgMHpNMzM3LjYgMTkyYzM0LjEgMCA0Ni40IDMwLjQgNDYuNCAzMC40bDU1LjkgMTExLjVTNDUwLjMgMzUyIDQyOS41IDM1MmwtMzIuOCAwYy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMS0yMS4xIDEzLjEtMjEuMSAxMy4xbC0zNi43IDc0LjVjLTUuNiA5LjQtOC40IDE4LjEtMTguOCAxOC4xbC0zMi45IDBjLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVTMjY4LjMgMTkyIDMwMi41IDE5MmwzNS4xIDB6Il19LEtQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlbGluZXMiLGljb246WzM4NCw1MTIsW10sImYxOGMiLCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIweiJdfSxZUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uIixpY29uOls0NDgsNTEyLFtdLCJmMjcwIiwiTTI1Ny43IDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2cy0zMi4zLTI1LjMtMzIuMy01Mi44bDAtMTQ3LjFDMzQxLjUgODkgMzE3IDMyIDIyOS4yIDMyIDE0MS4yIDMyIDk0LjUgODcgOTQuNSAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44bDAgNDAuNnpNMzkzLjcgNDEzYy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuNyA0MDguNSAxMC4yIDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguMyA3My4zIDQ0LjUgMTg3LjggMTE3LjggMzcyLjUgMzAuMyA3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xeiJdfSxaUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW52aXJhIixpY29uOls0NDgsNTEyLFtdLCJmMjk5IiwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM2w4MC45IDgxLjctMjYgMC03MC40LTcxLjJDMzEyLjYgNDEzIDIyNy4yIDQ0My4zIDEzNy4yIDM3MS44IDQ3IDMwMC4zIDUyIDIxNC43IDAgMzJ6TTc5LjcgNzhjLTQ5LjctMjMuNS01LjIgOS4yLTUuMiA5LjIgNDUuMiAzMS4yIDY2IDczLjcgOTAuMiAxMTkuOSAzMS41IDYwLjIgNzkgMTM5LjcgMTQ0LjIgMTY3LjcgNjUgMjggMzQuMiAxMi41IDYtOC41LTI4LjItMjEuMi02OC4yLTg3LTkxLTEzMC4yLTMxLjctNjAtNjEtMTE4LjYtMTQ0LjItMTU4LjF6Il19LFhQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5vZGUiLGljb246WzQ0OCw1MTIsW10sImYyYjgiLCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6Il19LFFQdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2N1c29mdCIsaWNvbjpbNjQwLDUxMixbXSwiZjM2OSIsIk0zMjIuMSAyNTJsMC0xLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNyAuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNiAuNS0uNi0uMS0uMSAuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6TTQ4Mi4yIDM3Mi4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOCAuNS0xMTYuNSAuNi0xOS4yIC4xLTMyLjktLjMtMTkuMiAxNi45IDcuNyA5LjUgMjM0LjIgMjk5LjcgMjM5LjkgMzA2LjZ6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xIC4yLTkuNiAuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNiAuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcgLjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yeiJdfSxKUHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXJsYW5nIixpY29uOls2NDAsNTEyLFtdLCJmMzlkIiwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6Il19LGVJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlzb24iLGljb246WzUxMiw1MTIsW10sImU4NTQiLCJNNDM1LjEgMTYxLjdhMTMuOSAxMy45IDAgMSAxIDE5LjYtMTkuNyAxMy45IDEzLjkgMCAxIDEgLTE5LjYgMTkuN3pNMzY5LjcgOTcuOGMxMC40IDIuMSAyMC42IDUuMiAzMC40IDkuMiA2LjggMi44IDEwLjEgMTAuOCA3LjMgMTcuNy0yLjggNi43LTEwLjkgMTAuMS0xNy42IDcuMy04LjMtMy40LTE2LjgtNS44LTI1LjctNy44LTguNi0xLjctMTcuMy0yLjUtMjYtMi41LTE5LjMgMC0zNy4xLTEwLjMtNDYuNy0yNy04LjctMTUuMS0yMC42LTI4LjktMzQuNy0zOS43LTU5LjEtNDUuNS0xNDMuOC0zNC4zLTE4OS4yIDI1LTIuNiAzLjMtNi41IDUuMy0xMC43IDUuMy03LjQgMC0xMy41LTYuMS0xMy41LTEzLjUgMC0zLjIgMS4yLTYuMyAzLjItOC44IDEyLjktMTYuNyAyOC45LTMwLjcgNDcuMS00MS4yIDc3LjQtNDQuOCAxNzYuNC0xOC4yIDIyMS4xIDU5LjQgNC4zIDguMiAxMy43IDEzLjMgMjIuOCAxMy41IDEwLjggMCAyMS42IDEgMzIuMiAzLjF6TTM1IDI3MGM0LjYtOC4yIDQuNi0xOC4yIDAtMjYuNC0yMS45LTM2LjUtMjcuMy04Mi4zLTE2LjMtMTIzLjIgMS42LTUuOSA2LjktMTAgMTMtMTAgOC43IDAgMTUuMyA4LjcgMTMgMTctOS41IDM1LjQtMy40IDcxIDEzLjcgMTAyLjkgOS4zIDE2LjUgOS4zIDM2LjcgMCA1My4xLTguNyAxNS43LTE0LjggMzIuNC0xNy4yIDUwLjMtOS43IDczLjkgNDIuMyAxNDEuNyAxMTYuMiAxNTEuNCA3LjMgMSAxMi42IDcuOSAxMS42IDE1LjItMSA3LjMtNy44IDEyLjYtMTUuMSAxMS42LTIxLjEtMi44LTQxLjQtOS43LTU5LjgtMjAuMy03NS42LTQzLjYtMTA0LjktMTQ1LjgtNTkuMi0yMjEuNXpNMjE2LjkgNTA5Yy03LjQgMi0xNS4xLTIuNC0xNy4xLTkuOHMyLjUtMTUgOS45LTE2LjljOC41LTIuMiAxNy40IDQuNSAxNy40IDEzLjQgMCA2LjItNC4yIDExLjYtMTAuMiAxMy4zem0xMjIuMy05MWMtOS41IDAtMTguNCA1LTIzLjIgMTMuMi00LjkgOS40LTExLjcgMTguMi0xOC43IDI2LjJsMCAwYy03LjEgOC0xNC44IDE1LjItMjMuMiAyMS43LTUuOSA0LjUtMTQuNCAzLjQtMTktMi41cy0zLjQtMTQuNCAyLjUtMTguOWM3LTUuNCAxMy41LTExLjUgMTkuNC0xOC4xbDAgMGM1LjktNi42IDExLjEtMTMuOCAxNS41LTIxLjYgOS43LTE2LjcgMjcuNS0yNyA0Ni44LTI3IDE3LjggMCAzNS40LTMuNSA1MS44LTEwLjMgNjguMy0yOC4zIDEwMS4xLTEwOC4zIDczLjItMTc2LjUtLjYtMS42LTEtMy4zLTEtNSAwLTcuNCA2LjEtMTMuNSAxMy41LTEzLjUgNS40IDAgMTAuMyAzLjIgMTIuNCA4LjIgOC4yIDE5LjcgMTIuNCA0MC44IDEyLjQgNjIuMSAwIDg5LjUtNzIuNyAxNjIuMS0xNjIuNCAxNjIuMWwwIDB6bS0xMy4xLTI2OGMzLjktLjQgNy45LS42IDExLjktLjYgNTkuMyAwIDEwOC4yIDQ4LjcgMTA4LjIgMTA3LjhTMzk3LjMgMzY1IDMzOCAzNjVjLTQgMC03LjktLjItMTEuOC0uNi0yMi4yLTEuNy00My4zIDEwLjQtNTIuOSAzMC40LTE3LjIgMzkuMS01Ni4yIDY0LjUtOTkuMSA2NC41LTU5LjMgMC0xMDguMi00OC43LTEwOC4yLTEwNy44IDAtMjMuMiA3LjUtNDUuNyAyMS40LTY0LjMgMTIuMi0xOC4zIDEyLjEtNDIuMy0uNC02MC41LTEzLjYtMTguNS0yMC45LTQwLjgtMjAuOS02My43IDAtNTkuMSA0OC44LTEwNy44IDEwOC4yLTEwNy44IDQyLjggMCA4MS44IDI1LjQgOTkgNjQuNCA5LjYgMjAgMzAuNyAzMi4xIDUyLjkgMzAuNHpNMTA2LjggMzkzLjRjMTQuNCAyNS4yIDQxLjEgNDAuOCA2OS44IDQwLjggNDQuMiAwIDgwLjYtMzYuOCA4MC42LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjZjLTE0LjIgMC0yOC4xIDMuOC00MC4zIDEwLjktMzguMyAyMi40LTUxLjYgNzIuNy0yOS41IDExMS40ek0yNjggMjk4YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHptLTkxLjItNTQuNmM0NC4yIDAgODAuNS0zNi44IDgwLjUtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNi04MC42IDM2LjgtODAuNiA4MS42YzAgNDQuNyAzNi40IDgxLjYgODAuNiA4MS42eiJdfSx0SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGlzY292ZXIiLGljb246WzU3Niw1MTIsW10sImYxZjIiLCJNNTIwLjQgMTk2LjFjMC03LjktNS41LTEyLjEtMTUuNi0xMi4xbC00LjkgMCAwIDI0LjkgNC43IDBjMTAuMyAwIDE1LjgtNC40IDE1LjgtMTIuOHpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4My45IDE3MC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjQtMTkuNiAwLTIyLjItMzIuOC0yLjIgMCAwIDMyLjgtMTYgMCAwLTgyek00MjggMTcxbDQ1LjMgMCAwIDE0LTI5LjMgMCAwIDE4LjIgMjguMyAwIDAgMTMuOC0yOC4zIDAgMCAyMi4yIDI5LjMgMCAwIDEzLjgtNDUuMyAwIDAtODJ6bS02OC43IDBsMjEuOSA1NS4yIDIyLjItNTUuMiAxNy41IDAtMzUuNSA4NC4yLTguNiAwLTM1LTg0LjIgMTcuNSAwem0tNTUuOSA4Ni4yYTQ0LjYgNDQuNiAwIDEgMSAwLTg5LjIgNDQuNiA0NC42IDAgMSAxIDAgODkuMnptLTQ5LjMtODMuMWwwIDE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJsMCAxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNsLTIzLjQgMCAwLTgyIDIzLjQgMGMyNi4xIDAgNDQuMSAxNyA0NC4xIDQxLjEgMCAxOC41LTEzLjIgNDAuOS00NC4xIDQwLjl6bTY3LjUgMGwtMTYgMCAwLTgyIDE2IDAgMCA4MnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVsLTQwMSAwYzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MGwwIDE0NXpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNmwtNC4yIDAgMCA1NC4yIDQuMiAwYzEwLjMgMCAxNy0yIDIxLjktNi40IDUuNy01LjIgOC45LTEyLjggOC45LTIwLjdzLTMuMi0xNS41LTguOS0yMC41eiJdfSxhSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FmYXJpIixpY29uOls1MTIsNTEyLFtdLCJmMjY3IiwiTTI3NC43IDI3NC43TDIzNy4zIDIzNy4zIDE2NiAzNDYgMjc0LjcgMjc0Ljd6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDExLjggMTgyLjhsMTQuOC02LjFjMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOCAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS4zLTIuNiAxLjdMNDE4IDE5Ny42Yy0yIC44LTQuMiAuOC02LjEgMHMtMy41LTIuNC00LjMtNC4zLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjN6TTMxNC40IDk0bDYuMS0xNC44Yy44LTIgMi40LTMuNSA0LjMtNC4zczQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xbC02LjEgMTQuOGMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGMtMS0uNC0xLjktMS0yLjYtMS43cy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMXpNMjU2IDYwYzIuMSAwIDQuMiAuOCA1LjcgMi4zUzI2NCA2NS45IDI2NCA2OGwwIDE2YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTMjUzLjkgNjAgMjU2IDYwek0xODEgNzQuOWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjZMMTk3LjYgOTRjLjQgMSAuNyAyIC43IDMuMXMtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjQtMi42IDEuOC0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjgtMS4zLTEuNy0xLjctMi43bC02LjEtMTQuOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zem0tNjMuNiA0Mi41YzEuNS0xLjUgMy41LTIuMyA1LjctMi4zczQuMiAuOCA1LjcgMi4zTDE0MCAxMjguN2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM2wtMTEuMy0xMS4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNmwwIDB6TTYwIDI1NmMwLTIuMSAuOC00LjIgMi4zLTUuN1M2NS45IDI0OCA2OCAyNDhsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zbC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM1M2MCAyNTguMSA2MCAyNTZ6bTQwLjIgNzMuMmwtMTQuOCA2LjFjLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMSAxLTEuOSAxLjctMi42IDEuNi0xLjMgMi42LTEuN0w5NCAzMTQuNGMyLS44IDQuMi0uOCA2LjEgMHMzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xLTIuNCAzLjUtNC4zIDQuM3ptNC4zLTEzNmMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNmwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMGwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjFsMCAwek0xOTcuNiA0MThsLTYuMSAxNC44Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjFsNi4xLTE0LjhjLjQtMSAxLTEuOSAxLjctMi43czEuNi0xLjQgMi42LTEuOCAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjggMS4zIDEuNyAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNyAzLjF6TTI2NCA0NDRjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN3MzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjMgMi4zIDMuNSAyLjMgNS43bDAgMTZ6bTY3LTYuOWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNkwzMTQuNCA0MThjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zbDYuMSAxNC44Yy44IDIgLjggNC4yIDAgNi4xcy0yLjQgMy41LTQuMyA0LjN6bTYzLjYtNDIuNWMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zTDM3MiAzODMuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjYgMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zbDExLjMgMTEuM2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZsMCAwek0yODYuMiAyODYuMkwxMTAuMyA0MDEuNyAyMjUuOCAyMjUuOCA0MDEuNyAxMTAuMyAyODYuMiAyODYuMnpNNDM3LjEgMzMxYy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwbC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMWMuNC0xIDEtMS45IDEuNy0yLjZzMS42LTEuMyAyLjYtMS43IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjZsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xem02LjktNjdsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zcy0yLjMtMy41LTIuMy01LjcgLjgtNC4yIDIuMy01LjcgMy41LTIuMyA1LjctMi4zbDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM3oiXX0sc0l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwYWNlLWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImU1YWMiLCJNOTYgMjU2bDMyIDAgMCAyNTYtMTI4IDAgMC0xNjAgMzIgMCAwLTMyIDMyIDAgMC0zMiAzMiAwIDAtMzJ6bTQxNiA5NmwwIDE2MC0xMjggMCAwLTI1NiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwek0zMjAgNjRsMzIgMCAwIDM4NC0zMiAwIDAtMzItMTI4IDAgMCAzMi0zMiAwIDAtMzg0IDMyIDAgMC0zMiAzMiAwIDAtMzIgNjQgMCAwIDMyIDMyIDAgMCAzMnptLTMyIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxpSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxOSIsIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40IC4xbDE0LjggOC44Yy41IC4zIDEuMyAuMyAxLjggMEwzNzUgNDA4Yy41LS4zIC45LS45IC45LTEuNmwwLTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNiAuMy0uOSAxLS45IDEuNmwwIDY2LjdjMCAuNiAuNCAxLjIgLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOGwwLTY1LjljMC0uOSAuNy0xLjcgMS43LTEuN2w3LjMgMGMuOSAwIDEuNyAuNyAxLjcgMS43bDAgNjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41bDAtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjVsMCA2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43ek0zNjMgMzg2LjJjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42IC4yIC44IC44IDEuMyAxLjYgMS4zbDcuNSAwYy41IDAgLjktLjIgMS4yLS41IC4zLS40IC41LS44IC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40bC03LjUgMGMtLjkgMC0xLjcgLjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zczQuMiA5LjQgOS4zIDkuNGM1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmwtMi42IDBjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFsLTIuMiAwIDAgNS0yLjQgMCAwLTEyLjUgNC4zIDBjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43IC4xIDEuOCAxLjIgMi4xIDIuOCAuMSAxIC4zIDIuNyAuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2wtMiAwIDAgMy41IDEuOSAwYzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNEw3Mi4zIDE0OS4zYy0xLS42LTIuMi0uOS0zLjQtMWwtLjYgMGMtMS4yIDAtMi4zIC40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMyAuNyAyLjUgMS44IDMuMnMyLjUgLjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjRsMC00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTFzMi42IC4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40bDAgNDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMSAuNyAyLjYgLjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM2wwIDE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjRsMC03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ybDAtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYgLjMtLjkgLjktLjkgMS42bDAgMjQuM2MwIC43IC40IDEuMyAuOSAxLjZsMjEgMTIuMWMuNiAuMyAxLjMgLjMgMS44IDBsMjEtMTIuMWMuNi0uMyAuOS0uOSAuOS0xLjZsMC0yNC4zIC4xIDB6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40bDAtMTcuMWMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40bDAgNzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ybDAtMjIuMmMwLTEuMyAuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMEw1OTIuMSAyMTNjMS4xIC43IDEuOSAxLjkgMS45IDMuMmwwIDE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQgLjMtLjcgLjctLjcgMS4ybDAgMTMuNmMwIC41IC4zIDEgLjcgMS4ybDExLjggNi44Yy40IC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMyAuNy0uNyAuNy0xLjJsMC0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6TTMwNC44IDI2Mi41bDAtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNGwwIDcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43IC4xLS41IC4yLTEuMSAuMi0xLjd6TTIzMC41IDEzNy42bC0uOCAuNSAxLjEgMC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjcgMCAuOSAuNC0uMnoiXX0sckl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGVwZW4iLGljb246WzUxMiw1MTIsW10sImYxY2IiLCJNNTAyLjMgMTU5LjdsLTIzNC0xNTZjLTgtNC45LTE2LjUtNS0yNC42IDBsLTIzNCAxNTZjLTYgNC05LjcgMTEuMS05LjcgMTguM0wwIDMzNGMwIDcuMSAzLjcgMTQuMyA5LjcgMTguM2wyMzQgMTU2YzggNC45IDE2LjUgNSAyNC42IDBsMjM0LTE1NmM2LTQgOS43LTExLjEgOS43LTE4LjNsMC0xNTZjMC03LjEtMy43LTE0LjMtOS43LTE4LjN6TTI3OCA2My4xbDE3Mi4zIDExNC45LTc2LjkgNTEuNC05NS40LTYzLjcgMC0xMDIuNnptLTQ0IDBMMjM0IDE2NS43IDEzOC42IDIyOS40IDYxLjcgMTc4IDIzNCA2My4xek00NCAyMTkuMUw5OS4xIDI1NiA0NCAyOTIuOCA0NCAyMTkuMXpNMjM0IDQ0OC44TDYxLjcgMzM0IDEzOC42IDI4Mi42IDIzNCAzNDYuMyAyMzQgNDQ4Ljh6TTI1NiAzMDhsLTc3LjctNTIgNzcuNy01MiA3Ny43IDUyLTc3LjcgNTJ6bTIyIDE0MC45bDAtMTAyLjYgOTUuNC02My43IDc2LjkgNTEuNC0xNzIuMyAxMTQuOXptMTkwLTE1NmwtNTUuMS0zNi45IDU1LjEtMzYuOSAwIDczLjd6Il19LG9JdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXZlbHJ5IixpY29uOls1MTIsNTEyLFtdLCJmMmQ5IiwiTTQ5OC42IDIzNC4yYy0xLjItMTAuMy0xLjctMjAuOC0zLjctMzEtMi41LTEyLjQtNS43LTI0LjYtOS42LTM2LjYtNi44LTIwLjktMTcuMi00MC4zLTMwLjktNTcuNS01LjktNy42LTEyLjEtMTQuOC0xOC44LTIxLjctMTQuMS0xNC0zMC0yNi4xLTQ3LjEtMzYuMS0xNy44LTEwLjYtMzYuOC0xOC45LTU2LjctMjQuNy0xMS0zLjEtMjIuMy01LjQtMzMuNS03LjYtNi44LTEuMy0xMy43LTEuNy0yMC42LTIuNS0uMyAwLS42LS40LS45LS42LTEwLjggMC0yMS41IDAtMzIuMyAwLTIuNCAuNC00LjggLjktNy4yIDEuMi0xMS42IDEuMi0yMy4xIDMuNi0zNC4zIDcuMS0xMy44IDQuMS0yNy4xIDkuNi0zOS44IDE2LjQtMTMuMyA3LTI2LjEgMTUuMS0zOC4xIDI0LjItNi4yIDQuNi0xMi4zIDkuNC0xOCAxNC41LTEwLjIgOS4yLTIwLjQgMTguNC0yOS45IDI4LjMtMTIuOCAxMy4zLTI0LjEgMjguMS0zMy42IDQ0LTguNiAxNC0xNS41IDI5LTIwLjUgNDQuNi03LjIgMjIuNy0xMC4zIDQ2LjYtOS4yIDcwLjMgLjYgMTMuNSAyIDI2LjkgNC40IDQwLjIgMy40IDE4LjQgOSAzNi4zIDE2LjcgNTMuMyAxMy42IDI5LjIgMzIuMSA1MS41IDUwLjQgNjcuOSAxMi44IDExLjYgMjYuOCAyMS45IDQxLjggMzAuNiAxNy43IDEwLjQgMzYuNCAxOC45IDU1LjkgMjUuMyAxMy4zIDQuMyAyNi45IDcuNiA0MC42IDkuOCA2LjEgMSAxMi4zIDEuMyAxOC40IDEuOSAuNCAuMSAuOCAuMyAxLjIgLjZsMzIuMyAwYzIuNS0uNCA1LS45IDcuNS0xLjEgMTYuMy0xLjMgMzIuMS01LjMgNDcuNS0xMC43IDE3LjItNS45IDMzLjctMTMuOSA0OS0yMy44IDkuNy02LjQgMTkuNC0xMy4xIDI4LjctMjAuMSA1LjgtNC4zIDExLTkuNSAxNi4zLTE0LjUgNC0zLjcgNy44LTcuNiAxMS41LTExLjUgMTItMTIuNyAyMi42LTI2LjYgMzEuNC00MS42IDkuNS0xNiAxNy40LTMyLjkgMjIuMy01MC45IDIuOS0xMC40IDQuOS0yMSA3LTMxLjcgMS01LjMgMS4zLTEwLjcgMS45LTE2LjEgMC0uMyAuNC0uNiAuNi0uOWwwLTM3LjFjLS4yLS42LS40LTEuMi0uNi0xLjh6bS0xNjEuMS0xLjJzLTE2LjYtMy0yOC41LTNjLTI3LjIgMC0zMy42IDE0LjktMzMuNiAzN2wwIDkzLjctNzMuNSAwIDAtMTkwLjcgNzMuNSAwIDAgMzEuOWM4LjktMjYuOCAyNi44LTM2LjIgNjItMzYuMmwwIDY3LjN6Il19LG5JdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGlwYXkiLGljb246WzQ0OCw1MTIsW10sImY2NDIiLCJNMzc3LjcgMzJMNzAuMyAzMkMzMS40IDMyIDAgNjMuNCAwIDEwMi4zTDAgNDA5LjdDMCA0NDguNiAzMS40IDQ4MCA3MC4zIDQ4MGwzMDcuNSAwYzM4LjUgMCA2OS44LTMxLjEgNzAuMy02OS42LTQ2LTI1LjYtMTEwLjYtNjAuMy0xNzEuNi04OC40LTMyLjEgNDQtODQuMSA4MS0xNDguNiA4MS03MC42IDAtOTMuNy00NS4zLTk3LTc2LjQtNC0zOSAxNC45LTgxLjUgOTkuNS04MS41IDM1LjQgMCA3OS40IDEwLjIgMTI3LjEgMjUgMTYuNS0zMC4xIDI2LjUtNjAuMyAyNi41LTYwLjNsLTE3OC4yIDAgMC0xNi43IDkyLjEgMCAwLTMxLjItMTA5LjQgMCAwLTE5IDEwOS40IDAgMC01MC40IDUwLjkgMCAwIDUwLjQgMTA5LjQgMCAwIDE5LTEwOS40IDAgMCAzMS4yIDg4LjggMHMtMTUuMiA0Ni42LTM4LjMgOTAuOWM0OC45IDE2LjcgMTAwIDM2IDE0OC42IDUyLjdsMC0yMzQuNGMuMi0zOC43LTMxLjItNzAuMy02OS45LTcwLjN6TTQ3LjMgMzIzYzEgMjAuMiAxMC4yIDUzLjcgNjkuOSA1My43IDUyLjEgMCA5Mi42LTM5LjcgMTE3LjktNzIuOS00NC42LTE4LjctODQuNS0zMS40LTEwOS40LTMxLjQtNjcuNCAwLTc5LjQgMzMuMS03OC40IDUwLjZ6Il19LGxJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWV4IixpY29uOls1NzYsNTEyLFtdLCJmMWYzIiwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMS4xLTYxLjcgMC0zMS45LTM1LjEtMzEuOSAzNS4xLTIwMy43IDAgMC0xNjMuOC02NS44IDAgODEuNy0xODQuNyA3OC42IDAgMjguMSA2My4yIDAtNjMuMiA5Ny4yIDAgMTYuOSA0Ny42IDE3LTQ3LjYgNzUuNSAwIDAtMi40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJ6bTQ0MC40LTIxLjdsNDIuMi00Ni4zIDQyIDQ2LjMgNTEuNCAwLTY4LTcyLjEgNjgtNzIuMS01MC42IDAtNDIgNDYuNy00MS41LTQ2LjctNTEuNCAwIDY3LjUgNzIuNS02Ny40IDcxLjYgMC0zMy4xLTgzIDAgMC0yMi4yIDgwLjkgMCAwLTMyLjMtODAuOSAwIDAtMjIuNCA4MyAwIDAtMzMuMS0xMjIgMCAwIDE0My4yIDE3MS44IDB6bTk2LjMtNzJsMzkuMyA0MS45IDAtODMuMy0zOS4zIDQxLjR6bS0zNi4zLTkybDM2LjktMTAwLjYgMCAxMDAuNiAzOC43IDAgMC0xNDMuMy02MC4yIDAtMzIuMiA4OS4zLTMxLjktODkuMy02MS4yIDAgMCAxNDMuMS02My4yLTE0My4xLTUxLjIgMC02Mi40IDE0My4zIDQzIDAgMTEuOS0yOC43IDY1LjkgMCAxMiAyOC43IDgyLjcgMCAwLTEwMC4zIDM2LjggMTAwLjMgMzQuNCAwek0yODIgMTg1LjRsMTkuNS00Ni45IDE5LjQgNDYuOS0zOC45IDB6Il19LGNJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWFsdCIsaWNvbjpbNTc2LDUxMixbXSwiZjFhOCIsIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0LjkgMjcuNy01Ljd6TTM3OS45IDQ0My45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjcgNi4xLTEyLjYgMTEuOC0yNS44IDEyLjQtMzkuOWwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uMyAwLTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zIC45IC42LS42IC4zLTEuNHpNNDk2LjMgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOSAuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXpNMzAwLjEgNDI4LjJsMCAyNy4yIDExLjgtMy40LTIuOS0yMy44LTguOSAwek0yMzEuNCAyNzcuOGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjktMTMuOCAzLjV6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3oiXX0sZEl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxldHRlcmJveGQiLGljb246WzY0MCw1MTIsW10sImU2MmQiLCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42UzU4Ni45IDM2NS4yIDUyMS4zIDM2NS4yYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMGMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHoiXX0sdUl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZXJhIixpY29uOls1MTIsNTEyLFtdLCJmMjZhIiwiTTMyMS45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uMy0xMzEuNS02LjEtMjM2LjEtMTE0LjYtMjM2LjEtMjQ3LjcgMC0xMzcgMTExLTI0OCAyNDgtMjQ4bC44IDBjNjMuMSAuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40ek00MjMuNyA0MzAuNGMtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6Il19LHBJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWlibyIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YSIsIk00MDcgMTc3LjZjNy42LTI0LTEzLjQtNDYuOC0zNy40LTQxLjctMjIgNC44LTI4LjgtMjguMS03LjEtMzIuOCA1MC4xLTEwLjkgOTIuMyAzNy4xIDc2LjUgODQuOC02LjggMjEuMi0zOC44IDEwLjgtMzItMTAuM3pNMjE0LjggNDQ2LjdjLTEwNi4zIDAtMjE0LjgtNTEuNC0yMTQuOC0xMzYuMyAwLTQ0LjMgMjgtOTUuNCA3Ni4zLTE0My43IDk5LjctOTkuNyAyMDMuMi0xMDAuOSAxNzMuNi01LjctNCAxMy4xIDEyLjMgNS43IDEyLjMgNiA3OS41LTMzLjYgMTQwLjUtMTYuOCAxMTQgNTEuNC0zLjcgOS40IDEuMSAxMC45IDguMyAxMy4xIDEzNS43IDQyLjMgMzQuOCAyMTUuMi0xNjkuNyAyMTUuMnpNMzU4LjUgMzAwLjRjLTUuNC01NS43LTc4LjUtOTQtMTYzLjQtODUuNy04NC44IDguNi0xNDguOCA2MC4zLTE0My40IDExNnM3OC41IDk0IDE2My40IDg1LjdjODQuOC04LjYgMTQ4LjgtNjAuMyAxNDMuNC0xMTZ6TTM0Ny45IDM1LjFjLTI1LjkgNS42LTE2LjggNDMuNyA4LjMgMzguMyA3Mi4zLTE1LjIgMTM0LjggNTIuOCAxMTEuNyAxMjQtNy40IDI0LjIgMjkuMSAzNyAzNy40IDEyIDMxLjktOTkuOC01NS4xLTE5NS45LTE1Ny40LTE3NC4zem0tNzguNSAzMTFjLTE3LjEgMzguOC02Ni44IDYwLTEwOS4xIDQ2LjMtNDAuOC0xMy4xLTU4LTUzLjQtNDAuMy04OS43IDE3LjctMzUuNCA2My4xLTU1LjQgMTAzLjQtNDUuMSA0MiAxMC44IDYzLjEgNTAuMiA0NiA4OC41em0tODYuMy0zMGMtMTIuOS01LjQtMzAgLjMtMzggMTIuOS04LjMgMTIuOS00LjMgMjggOC42IDM0IDEzLjEgNiAzMC44IC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNCAuNi0xNC4zIDUuNC0yLjkgNS4xLTEuNCAxMC42IDMuNyAxMi45IDUuMSAyIDExLjctLjMgMTQuNi01LjQgMi44LTUuMiAxLjEtMTAuOS00LTEyLjl6Il19LGhJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFkbWUiLGljb246WzU3Niw1MTIsW10sImY0ZDUiLCJNNTI4LjMgNDYuNWwtMTM5LjggMGMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNMNDggNDYuNUMyMS41IDQ2LjUgMCA2OCAwIDk0LjVMMCAzNDAuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGw4OS43IDBjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NWw4OS43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNDUuN2MwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHpNNTAxLjMgMzExLjhjMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOC0uMSAweiJdfSxmSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29sYW5nIixpY29uOls2NDAsNTEyLFtdLCJlNDBmIiwiTTQwMC4xIDE5NC44Yy0xMC45IDIuOC0xOS45IDQuMy0yOS4xIDcuNi03LjMgMS45LTE0LjcgMy45LTIzLjIgNi4xbC0uNiAuMWMtNC4yIDEuMi00LjYgMS4zLTguNS0zLjItNC43LTUuMy04LjEtOC43LTE0LjYtMTEuOS0xOS43LTkuNi0zOC43LTYuOC01Ni40IDQuNy0yMS4yIDEzLjctMzIuMSAzNC0zMS44IDU5LjIgLjMgMjUgMTcuNCA0NS41IDQxLjIgNDguOSAyMiAyLjggMzkuOC00LjYgNTMuOC0yMC41IDIuMS0yLjYgNC01LjMgNi4xLTguMyAuOC0xIDEuNS0yLjEgMi4zLTMuM2wtNjAuMSAwYy02LjUgMC04LjEtNC01LjktOS4zIDQtOS43IDExLjUtMjUuOSAxNS45LTM0IC45LTEuOCAzLjEtNS44IDYuOS01LjhsMTAxLjEgMGM0LjUtMTMuNCAxMS44LTI2LjkgMjEuNi0zOS43IDIyLjctMjkuOSA0OS4zLTQ1LjUgODcuMi01MiAzMS44LTUuNiA2MS43LTIuNSA4OC45IDE1LjkgMjQuNiAxNi44IDM5LjggMzkuNiA0My45IDY5LjUgNS4zIDQyLjEtNi45IDc2LjMtMzYuNyAxMDUuNi0xOS43IDIwLjktNDQuOSAzNC03My45IDM5LjktNS42IDEtMTEuMSAxLjUtMTYuNSAyLTIuOSAuMi01LjcgLjUtOC41IC44LTI4LjMtLjYtNTQuMi04LjctNzYtMjcuNC0xNS4zLTEzLjMtMjUuOS0yOS42LTMxLjEtNDguNS0zLjcgNy4zLTggMTQuNC0xNCAyMS4xLTIxLjYgMjkuNi01MC45IDQ4LTg3LjkgNTIuOS0zMC42IDQuMS01OC45LTEuOC04My45LTIwLjUtMjMtMTcuNS0zNi4xLTQwLjUtMzkuNS02OS4yLTQuMS0zNCA1LjktNjUuNCAyNi40LTkxLjMgMjIuMi0yOSA1MS41LTQ3LjQgODcuMy01My45IDI5LjMtNi4yIDU3LjMtMS45IDgyLjYgMTUuMyAxNi41IDEwLjkgMjguMyAyNS44IDM2LjEgNDMuOSAxLjkgMi44IC42IDQuNC0zLjEgNS4zek00OC4zIDIwMC40Yy0xLjMgMC0xLjYtLjYtLjktMS42bDYuNi04LjRjLjYtLjkgMi4yLTEuNSAzLjQtMS41bDExMS4zIDBjMS4yIDAgMS41IC45IC45IDEuOGwtNS4zIDguMWMtLjYgMS0yLjIgMS45LTMuMSAxLjlsLTExMi44LS4zek0xLjIgMjI5LjFjLTEuMiAwLTEuNi0uNy0uOS0xLjZsNi41LTguNGMuNi0uOSAyLjItMS42IDMuNC0xLjZsMTQyLjEgMGMxLjIgMCAxLjggMSAxLjUgMS45bC0yLjUgNy41Yy0uMyAxLjItMS41IDEuOS0yLjggMS45TDEuMiAyMjkuMXptNzQuNSAyNi44Yy0uNiAuOS0uMyAxLjggLjkgMS44bDY4IC4zYy45IDAgMi4yLS45IDIuMi0yLjFsLjYtNy41YzAtMS4zLS42LTIuMi0xLjktMi4ybC02Mi4zIDBjLTEuMiAwLTIuNSAuOS0zLjEgMS45bC00LjQgNy44em01MDEuNS0xOGMtLjItMi42LS4zLTQuOC0uNy03LTUuNi0zMC44LTM0LTQ4LjMtNjMuNi00MS40LTI5IDYuNS00Ny43IDI0LjktNTQuNSA1NC4yLTUuNiAyNC4zIDYuMiA0OC45IDI4LjYgNTguOSAxNy4yIDcuNSAzNC4zIDYuNiA1MC44LTEuOSAyNC42LTEzLjYgMzgtMzIuNyAzOS42LTU5LjUtLjEtMS4yLS4xLTIuMy0uMi0zLjN6Il19LG1JdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1leGNoYW5nZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4ZCIsIk0xOC4xIDMzMi4zbDQxMi43IDAgMCAyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4bC0xOSAwLTg2LjggODkuNyAwLTg5LjctMTc2LjMgMGMtMzYgMC02NS4zLTMwLjMtNjUuMy02OGwwLTIyem0wLTIzLjZsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXptMC0xMDkuNGw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1ek0zNjUuNCAwTDgzLjQgMGMtMzYgMC02NS4zIDMwLjMtNjUuMyA2Ny43bDAgMjIuMyA0MTIuNyAwIDAtMjIuM0M0MzAuNyAzMC4zIDQwMS40IDAgMzY1LjQgMHoiXX0sZ0l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1bHAiLGljb246WzI1Niw1MTIsW10sImYzYWUiLCJNMjEwIDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6TTE0IDEzNy44TDI3LjYgMjYzLjNjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcgLjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zIC4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41IC45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOSAuMS0xLjggLjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42IC44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUgLjYgLjIgMS4xIC40IDEuNiAuNyAyLjYgMS44IDEuNiA0LjUgLjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zIC41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40IC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41IC40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45IC45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yIC40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMgLjUtLjQgLjktLjYgLjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMgLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43IC4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMgLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zIC4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44IC4xIDI2LjMgLjRMMTY3IDY1LjEgMjI4LjMgLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xIC4xLTU3LjMgNjAuNS0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yIC44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIgLjEtLjNsLjItLjdjLTEuOCAuNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNyAuMSAxMy45LTEuNiAxMy45LTMuN3oiXX0sYkl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InllbHAiLGljb246WzM4NCw1MTIsW10sImYxZTkiLCJNNDIuOSAyNDAuM2w5OS42IDQ4LjZjMTkuMiA5LjQgMTYuMiAzNy41LTQuNSA0Mi43TDMwLjUgMzU4LjVjLTMuMiAuOC02LjQgLjktOS42IC4zcy02LjItMS44LTguOS0zLjctNC45LTQuMy02LjYtNy4xLTIuNy01LjktMy4xLTkuMmMtMy4zLTI4LjgtLjItNTcuOSA5LTg1LjMgMS0zLjEgMi43LTUuOSA0LjktOC4zczQuOS00LjIgNy45LTUuNSA2LjItMS44IDkuNS0xLjggNi40IC45IDkuMyAyLjN6bTQ0IDIzOS4zYzIzLjggMTYuMyA1MC45IDI3LjMgNzkuNCAzMi4xIDMuMiAuNiA2LjUgLjQgOS42LS40czYuMS0yLjMgOC42LTQuNCA0LjYtNC42IDYtNy41IDIuMy02LjEgMi40LTkuNGwzLjktMTEwLjhjLjctMjEuMy0yNS41LTMxLjktMzkuOC0xNi4xTDgyLjggNDQ1LjVjLTIuMiAyLjQtMy44IDUuMy00LjggOC40cy0xLjMgNi40LS45IDkuNiAxLjUgNi4zIDMuMSA5LjEgMy45IDUuMiA2LjYgN2wwIDB6TTIzMi4yIDM2OS43bDU4LjggOTRjMS43IDIuOCA0IDUuMSA2LjggNi45czUuOCAzIDkgMy41IDYuNSAuMyA5LjctLjUgNi4xLTIuNCA4LjYtNC40YzIyLjMtMTguNCA0MC4zLTQxLjUgNTIuNy02Ny42IDEuNC0yLjkgMi4xLTYuMSAyLjItOS40cy0uNi02LjUtMS45LTkuNC0zLjItNS43LTUuNi03LjgtNS4yLTMuOS04LjMtNC45TDI1OC43IDMzNS43Yy0yMC4zLTYuNS0zNy44IDE1LjgtMjYuNSAzMy45ek0zODAuNiAyMzcuNGMtMTEuNS0yNi41LTI4LjctNTAuMi01MC40LTY5LjMtMi40LTIuMS01LjMtMy43LTguNC00LjdzLTYuNC0xLjItOS42LS44LTYuMyAxLjUtOS4xIDMuMi01LjEgNC02LjkgNi43bC02MiA5MS45Yy0xMS45IDE3LjcgNC43IDQwLjYgMjUuMiAzNC43TDM2NiAyNjguNmMzLjEtLjkgNi0yLjUgOC41LTQuNnM0LjUtNC43IDUuOC03LjcgMi4xLTYuMiAyLjItOS40LS42LTYuNS0xLjktOS41bDAgMHpNNjIuMSAzMC4yYy0yLjggMS40LTUuNCAzLjMtNy40IDUuN3MtMy42IDUuMi00LjUgOC4yLTEuMiA2LjItLjkgOS4zIDEuMyA2LjEgMi45IDguOUwxNTYuMyAyNDIuNmMxMS43IDIwLjIgNDIuNiAxMS45IDQyLjYtMTEuNGwwLTIwOC4zYzAtMy4xLS42LTYuMy0xLjgtOS4ycy0zLjEtNS41LTUuNC03LjYtNS0zLjgtOC00LjgtNi4xLTEuNC05LjMtMS4yYy0zOSAzLjEtNzcgMTMuMy0xMTIuMyAzMC4xeiJdfSx2SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29mb3JlIixpY29uOls0NDgsNTEyLFtdLCJmM2E3IiwiTTM0OCAzMTkuOGwtMTMuMiAwIDAgMzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM2MtNDEuOC00Mi4zLTk3LjEtNjUuNi0xNTYuMS02NS42LTEyMi43IDAtMjIwLjcgMTAwLjYtMjIwLjcgMjI0IDAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3pNMzM1LjkgMjA3LjNsLTEwNi4zIDAgMCA4OSAxMTguNCAwYzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOGwwLTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnoiXX0seEl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF2aWF0byIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMSIsIk0xMDcuMiAyODMuNWwtMTktNDEuOC01Mi4xIDAtMTkgNDEuOC0xNy4xIDAgNjIuMi0xMzEuNCA2Mi4yIDEzMS40LTE3LjIgMHptLTQ1LTk4LjFsLTE5LjYgNDIuNSAzOS4yIDAtMTkuNi00Mi41ek0xNzQuOSAyODcuOGwtNjIuMi0xMzEuNCAxNy4xIDAgNDUuMSA5NiA0NS4xLTk2IDE3IDAtNjIuMSAxMzEuNHptODAuNi00LjNsMC0xMjcuMSAxNS41IDAgMCAxMjcuMS0xNS41IDB6TTQ2NC42IDE2Ny45bDAgMTE1LjYtMTcuMyAwIDAtMTE1LjYtNDEuMiAwIDAtMTEuNSA5OS42IDAgMCAxMS41LTQxLjEgMHpNNjQwIDIxOC44YzAgOS4yLTEuNyAxNy44LTUuMSAyNS44cy04LjIgMTUuMS0xNC4yIDIxLjEtMTMuMSAxMC44LTIxLjEgMTQuMi0xNi42IDUuMS0yNS44IDUuMS0xNy44LTEuNy0yNS44LTUuMS0xNS4xLTguMi0yMS4xLTE0LjItMTAuOC0xMy0xNC4yLTIxLjFjLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44IDguMi0xNS4xIDE0LjItMjEuMSAxMy04LjQgMjEuMS0xMS45YzgtMy40IDE2LjYtNS4xIDI1LjgtNS4xczE3LjggMS43IDI1LjggNS4xIDE1LjEgNS44IDIxLjEgMTEuOWM2IDYgMTAuNyAxMy4xIDE0LjIgMjEuMSAzLjQgOCA1LjEgMTYuNiA1LjEgMjUuOHptLTE1LjUgMGMwLTcuMy0xLjMtMTQtMy45LTIwLjNzLTYuMi0xMS43LTEwLjgtMTYuMy0xMC04LjItMTYuMi0xMC45LTEyLjgtNC0xOS44LTQtMTMuNiAxLjMtMTkuOCA0LTExLjYgNi4zLTE2LjIgMTAuOS04LjIgMTAtMTAuOCAxNi4zLTMuOSAxMy4xLTMuOSAyMC4zYzAgNy4zIDEuMyAxNCAzLjkgMjAuM3M2LjIgMTEuNyAxMC44IDE2LjMgMTAgOC4yIDE2LjIgMTAuOSAxMi44IDQgMTkuOCA0IDEzLjYtMS4zIDE5LjgtNCAxMS42LTYuMyAxNi4yLTEwLjkgOC4yLTEwIDEwLjgtMTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN2wwLTYuMyA4OC45LTEwLTI0Mi45IDEzLjRjLjYtMi4yIDEuMS00LjYgMS40LTcuMiAuMy0yIC41LTQuMiAuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjMgMjMuOCAwIDE5IDQxLjggMTcuMSAwLTYyLjItMTMxLjQtNjIuMiAxMzEuNCAxNy4xIDAgMTktNDEuOCAyMy42IDAtMS4xIDI2LjRzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEgLjMtLjEgLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMgLjMgNC40IC42IDYuNSAuMyAyLjYgLjggNSAxLjQgNy4ybC0yNDIuOS0xMy41IDg4LjkgMTAgMCA2LjNjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjMC02LjItNC42LTExLjMtMTAuNS0xMi4ybDAtNS44IDgwLjMgOSAwIDUuNGMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTQuOSAyOC40IDMuMiAwIDIzLjctNS45IDAgMCAxMy45IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy4yIDM4LjMgNC4zYzguMSAxMS40IDE5IDEzLjYgMTkgMTMuNmwtLjEgNi43LTUuMSAuMi0uMSAxMi4xIDQuMSAwIC4xLTUgNS4yIDAgLjEgNSA0LjEgMC0uMS0xMi4xLTUuMS0uMi0uMS02LjdzMTAuOS0yLjEgMTktMTMuNmwzOC4zLTQuMyAwIDIzLjItNS45IDAgMCAxMy44IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy43IDI4LjQtMy4yIDAgNC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNS40IDgwLjMtOSAwIDUuOGMtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3pNMzI4LjkgMjI3LjlsMTkuNi00Mi41IDE5LjYgNDIuNS0xNy45IDAtMS43LTQwLjMtMS43IDQwLjMtMTcuOSAweiJdfSx5SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFkbGV0IixpY29uOls2NDAsNTEyLFtdLCJlNGEwIiwiTTI5Ny45IDBsLjEgMGM3LjYgLjEgMTQuNCA0LjcgMTcuNSAxMS44bDEzMiAzMDguNSAuMy0uMSAuMiAuNC0yLjggMTAtNDIuOSAxNThjLTMuNyAxNi4yLTE5LjcgMjYuMy0zNS44IDIyLjZsLTY4LjQtMTUuNi02OC41IDE1LjZjLTE2LjEgMy43LTMyLjEtNi40LTM1LjgtMjIuNmwtNDIuOS0xNTgtMi43LTEwIC4xLS40IDEzMi4xLTMwOC40YzMtNyA5LjktMTEuNiAxNy41LTExLjh6TTE2MC4xIDMyMi4xbDEzMSAzOS4xIDYuOSAxMjIuNSA3LjktMTIxLjUgMTMwLjYtMzkuMyAuMi0uMS0xMzEgMjUuMS04LjYtMzIwLjItNS4yIDMyMC4yLTEzMS44LTI1Ljh6TTQyNiAyMjIuNmw5NC40LTQxIDczLjggMC0xNTcgMjQ3LjYgMzEuNi0xMDktNDIuOC05Ny42em0xNzEuNS00MS4ybDQxLjQgNzYuMmM0IDcuNS0zLjkgMTUuOS0xMS42IDEyLjJsLTQ3LjYtMjIuNyAxNy44LTY1Ljd6TTEyNy4zIDMxOC41TDE1OC43IDQzMCAxLjYgMTU0LjVjLTUuOS0xMC40IDUuNS0yMiAxNS45LTE2LjJsMTUxLjggODQuMi00Mi4xIDk2eiJdfSx3SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZS1sZWdhY3kiLGljb246WzQ0OCw1MTIsW10sImUwNzgiLCJNLTYgMjI4LjJsLjQtLjVjMCAuMiAwIC4zLS4xIC41bC0uMyAwem00NjAuNiAxNS41YzAtNDQtNy44LTg0LjUtMjguOC0xMjIuNC00MS03My40LTExMy42LTExMy4zLTE5OC42LTExMy4zLTEzOS45LS4zLTIxOC4zIDEwNS4yLTIzMi44IDIxOS43IDQyLjQtNjEuMyAxMTcuMS0xMjEuNCAyMjAuNC0xMjUgMCAwIDEwOS43IDAgOTkuNCAxMDVsLTE3NS44IDBjNi40LTM3LjQgMTguNS01OSAzNC4zLTc4LjktNzUgMzQuOS0xMjEuOCA5Ni4xLTEyMC44IDE4OC4zIC44IDcxLjUgNTAuMSAxNDQuOCAxMjAuOCAxNzIgODMuNCAzMS44IDE5Mi44IDcuMiAyNDAuMS0yMS4zbDAtMTA0LjRjLTgwLjkgNTYuNS0yNzAuOSA2MC45LTI3Mi4zLTY3LjZsMzE0LjEgMCAwLTUyLjF6Il19LHRnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGFzdGZtIixpY29uOls0NDgsNTEyLFsibGFzdGZtLXNxdWFyZSJdLCJmMjAzIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMTAuNyAyODAuOGMtMS44LTUuNS0zLjQtMTAuOC01LTE1LjktMTIuOS00MS45LTIxLTY4LjQtNTgtNjguNC0yMi40IDAtNDUuMSAxNi4xLTQ1LjEgNjEuMiAwIDM1LjIgMTggNTcuMiA0My4zIDU3LjIgMjguNiAwIDQ3LjYtMjEuMyA0Ny42LTIxLjNsMTEuNyAzMS45cy0xOS44IDE5LjQtNjEuMiAxOS40Yy01MS4zIDAtNzkuOS0zMC4xLTc5LjktODUuOCAwLTU3LjkgMjguNi05MiA4Mi41LTkyIDY3LjkgMCA3OS4zIDM1LjMgOTYuNCA4OC40IDEuNCA0LjQgMi45IDguOSA0LjQgMTMuNSA4LjggMjYuOCAyNC4yIDQ2LjIgNjEuMiA0Ni4yIDI0LjkgMCAzOC4xLTUuNSAzOC4xLTE5LjEgMC0xNy41LTE2LjktMjEuMi00MC0yNi40LTMuMi0uNy02LjUtMS40LTkuOS0yLjItMzAuNC03LjMtNDIuNS0yMy4xLTQyLjUtNDggMC00MCAzMi4zLTUyLjQgNjUuMi01Mi40IDM3LjQgMCA2MC4xIDEzLjYgNjMgNDYuNmwtMzYuNyA0LjRjLTEuNS0xNS44LTExLTIyLjQtMjguNi0yMi40LTE2LjEgMC0yNiA3LjMtMjYgMTkuOCAwIDExIDQuOCAxNy42IDIwLjkgMjEuMyAyLjIgLjUgNC41IDEgNi43IDEuNCAzMS4xIDYuNSA2NS4xIDEzLjcgNjUuMSA1Ni4xIC4xIDM2LjctMzAuNyA1MC42LTc2LjEgNTAuNi02My40IDAtODUuNC0yOC42LTk3LjEtNjQuMXoiXX0sa0l0PXRnZSxTSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzLWciLGljb246WzMyMCw1MTIsW10sImYzYTkiLCJNMTAuOCA0MDMuM2wyLjggMGMxMi43IDAgMjUuNSAwIDM4LjIgLjEgMS42IDAgMy4xLS40IDMuNiAyLjEgNy4xIDM0LjkgMzAgNTQuNiA2Mi45IDYzLjkgMjYuOSA3LjYgNTQuMSA3LjggODEuMyAxLjggMzMuOC03LjQgNTYtMjguMyA2OC02MC40IDgtMjEuNSAxMC43LTQzLjggMTEtNjYuNSAuMS01LjggLjMtNDctLjItNTIuOGwtLjktLjNjLS44IDEuNS0xLjcgMi45LTIuNSA0LjQtMjIuMSA0My4xLTYxLjMgNjcuNC0xMDUuNCA2OS4xLTEwMyA0LTE2OS40LTU3LTE3Mi0xNzYuMi0uNS0yMy43IDEuOC00Ni45IDguMy02OS43IDIwLjYtNzEuMSA3NC42LTExOC4yIDE1My45LTExOC44IDYxLjMtLjQgMTAxLjUgMzguNyAxMTYuMiA3MC4zIC41IDEuMSAxLjMgMi4zIDIuNCAxLjlsMC02MS42IDQ0LjMgMGMwIDI4MC4zIC4xIDMzMi4yIC4xIDMzMi4yLS4xIDc4LjUtMjYuNyAxNDMuNy0xMDMgMTYyLjItNjkuNSAxNi45LTE1OSA0LjgtMTk2LTU3LjItOC0xMy41LTExLjgtMjguMy0xMy00NC41ek0xNTcuMSAzNi41Yy01Mi41LS41LTEwOC41IDQwLjctMTE1IDEzMy44LTQuMSA1OSAxNC44IDEyMi4yIDcxLjUgMTQ4LjYgMjcuNiAxMi45IDc0LjMgMTUgMTA4LjMtOC43IDQ3LjYtMzMuMiA2Mi43LTk3IDU0LjgtMTU0LTkuNy03MS4xLTQ3LjgtMTIwLTExOS42LTExOS43eiJdfSxfSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtbWFzdGVyY2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMSIsIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43czQuNC0xMS43IDExLjItMTEuN2M2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6TTE3Mi4xIDM5OC42Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjdTMTY1IDQyMiAxNzIuMSA0MjJjNi41IDAgMTAuOS00LjkgMTAuOS0xMS43LS4xLTYuNS00LjQtMTEuNy0xMC45LTExLjd6bTExNy41LS4zYy01LjQgMC04LjcgMy41LTkuNSA4LjdsMTkuMSAwYy0uOS01LjctNC40LTguNy05LjYtOC43em0xMDcuOCAuM2MtNi44IDAtMTAuOSA1LjItMTAuOSAxMS43czQuMSAxMS43IDEwLjkgMTEuNyAxMS4yLTQuOSAxMS4yLTExLjdjMC02LjUtNC40LTExLjctMTEuMi0xMS43em0xMDUuOSAyNi4xYzAgLjMgLjMgLjUgLjMgMS4xIDAgLjMtLjMgLjUtLjMgMS4xLS4zIC4zLS4zIC41LS41IC44LS4zIC4zLS41IC41LTEuMSAuNS0uMyAuMy0uNSAuMy0xLjEgLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjggLjMtMS4xIDAtLjUgLjMtLjggLjUtMS4xIC4zLS4zIC41LS4zIC44LS41IC41LS4zIC44LS4zIDEuMS0uMyAuNSAwIC44IDAgMS4xIC4zIC41IC4zIC44IC4zIDEuMSAuNXMuMiAuNiAuNSAxLjF6bS0yLjIgMS40Yy41IDAgLjUtLjMgLjgtLjMgLjMtLjMgLjMtLjUgLjMtLjhzMC0uNS0uMy0uOGMtLjMgMC0uNS0uMy0xLjEtLjNsLTEuNiAwIDAgMy41IC44IDAgMC0xLjQgLjMgMCAxLjEgMS40IC44IDAtMS4xLTEuM3pNNTc2IDgxbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MUMwIDU0LjUgMjEuNSAzMyA0OCAzM2w0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNjQgMjIwLjZjMCA3Ni41IDYyLjEgMTM4LjUgMTM4LjUgMTM4LjUgMjcuMiAwIDUzLjktOC4yIDc2LjUtMjMuMS03Mi45LTU5LjMtNzIuNC0xNzEuMiAwLTIzMC41LTIyLjYtMTUtNDkuMy0yMy4xLTc2LjUtMjMuMS03Ni40LS4xLTEzOC41IDYyLTEzOC41IDEzOC4yek0yODggMzI5LjRjNzAuNS01NSA3MC4yLTE2Mi4yIDAtMjE3LjUtNzAuMiA1NS4zLTcwLjUgMTYyLjYgMCAyMTcuNXpNMTQ1LjcgNDA1LjdjMC04LjctNS43LTE0LjQtMTQuNy0xNC43LTQuNiAwLTkuNSAxLjQtMTIuOCA2LjUtMi40LTQuMS02LjUtNi41LTEyLjItNi41LTMuOCAwLTcuNiAxLjQtMTAuNiA1LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4ybDcuOSAwYzAtMTguMy0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMCA4LjIgMzAuMmw4LjIgMCAwLTIzLS4yIDB6TTE5MC42IDM5MmwtNy45IDAgMCA0LjRjLTIuNy0zLjMtNi41LTUuNC0xMS43LTUuNC0xMC4zIDAtMTguMiA4LjItMTguMiAxOS4zIDAgMTEuMiA3LjkgMTkuMyAxOC4yIDE5LjMgNS4yIDAgOS0xLjkgMTEuNy01LjRsMCA0LjYgNy45IDAgMC0zNi44em00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNyAuOGwtMy41IDYuM2MxMS4yIDcuNiAzMi42IDYgMzIuNi03LjV6bTM1LjQgOS4zbC0yLjItNi44Yy0zLjggMi4xLTEyLjIgNC40LTEyLjItNC4xbDAtMTYuNiAxMy4xIDAgMC03LjQtMTMuMSAwIDAtMTEuMi04LjIgMCAwIDExLjItNy42IDAgMCA3LjMgNy42IDAgMCAxNi43YzAgMTcuNiAxNy4zIDE0LjQgMjIuNiAxMC45em0xMy4zLTEzLjRsMjcuNSAwYzAtMTYuMi03LjQtMjIuNi0xNy40LTIyLjYtMTAuNiAwLTE4LjIgNy45LTE4LjIgMTkuMyAwIDIwLjUgMjIuNiAyMy45IDMzLjggMTQuMmwtMy44LTZjLTcuOCA2LjQtMTkuNiA1LjgtMjEuOS00Ljl6TTMzOC45IDM5MmMtNC42LTItMTEuNi0xLjgtMTUuMiA0LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwIDAtMjAuN2MwLTExLjYgOS41LTEwLjEgMTIuOC04LjRsMi40LTcuNnptMTAuNiAxOC4zYzAtMTEuNCAxMS42LTE1LjEgMjAuNy04LjRsMy44LTYuNWMtMTEuNi05LjEtMzIuNy00LjEtMzIuNyAxNSAwIDE5LjggMjIuNCAyMy44IDMyLjcgMTVsLTMuOC02LjVjLTkuMiA2LjUtMjAuNyAyLjYtMjAuNy04LjZ6TTQxNi4yIDM5MmwtOC4yIDAgMCA0LjRjLTguMy0xMS0yOS45LTQuOC0yOS45IDEzLjkgMCAxOS4yIDIyLjQgMjQuNyAyOS45IDEzLjlsMCA0LjYgOC4yIDAgMC0zNi44em0zMy43IDBjLTIuNC0xLjItMTEtMi45LTE1LjIgNC40bDAtNC40LTcuOSAwIDAgMzYuNyA3LjkgMCAwLTIwLjdjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45bC03LjkgMCAwIDE5LjNjLTguMi0xMC45LTI5LjktNS4xLTI5LjkgMTMuOSAwIDE5LjQgMjIuNSAyNC42IDI5LjkgMTMuOWwwIDQuNiA3LjkgMCAwLTUxLjd6bTcuNi03NS4xbDAgNC42IC44IDAgMC00LjYgMS45IDAgMC0uOC00LjYgMCAwIC44IDEuOSAwem02LjYgMTIzLjhjMC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMtLjUtLjgtLjgtMS4xcy0uOC0uNS0xLjEtLjhjLS41IDAtMS4xLS4zLTEuNi0uMy0uMyAwLS44IC4zLTEuNCAuMy0uNSAuMy0uOCAuNS0xLjEgLjgtLjUgLjMtLjggLjgtLjggMS4xLS4zIC41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44IC4zIDEuNCAwIC4zIC4zIC44IC44IDEuMSAuMyAuMyAuNSAuNSAxLjEgLjggLjUgLjMgMS4xIC4zIDEuNCAuMyAuNSAwIDEuMSAwIDEuNi0uMyAuMy0uMyAuOC0uNSAxLjEtLjhzLjUtLjggLjgtMS4xYy4zLS42IC4zLTEuMSAuMy0xLjR6bTMuMi0xMjQuN2wtMS40IDAtMS42IDMuNS0xLjYtMy41LTEuNCAwIDAgNS40IC44IDAgMC00LjEgMS42IDMuNSAxLjEgMCAxLjQtMy41IDAgNC4xIDEuMSAwIDAtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQgLjEgMTM4LjUtNjEuOSAxMzguNS0xMzguNHoiXX0sTUl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvdXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5MyIsIk0yMjUuOSAzMkMxMDMuMyAzMiAwIDEzMC41IDAgMjUyLjEgMCAyNTYgLjEgNDgwIC4xIDQ4MGwyMjUuOC0uMkMzNDguNiA0NzkuOCA0NDggMzc3LjUgNDQ4IDI1NS45UzM0OC42IDMyIDIyNS45IDMyek0yMjQgMzg0Yy0xOS40IDAtMzcuOS00LjMtNTQuNC0xMi4xTDg4LjUgMzkyIDExMS40IDMxN2MtOS44LTE4LjEtMTUuNC0zOC45LTE1LjQtNjEgMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOC01Ny4zIDEyOC0xMjggMTI4eiJdfSx6SXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2stdGllIixpY29uOls0NDgsNTEyLFtdLCJmMjdlIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTMxNi41IDM1Ny4ybC05Mi41IDg4LjctOTIuNS04OC43IDY0LjUtMTg0LTY0LjUtODYuNiAxODQuOSAwLTY0LjQgODYuNiA2NC41IDE4NHoiXX0sYWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mYWNlYm9vayIsaWNvbjpbNDQ4LDUxMixbImZhY2Vib29rLXNxdWFyZSJdLCJmMDgyIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTguMiAwIDAtMTQ1LjgtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE0NS44IDEyOSAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxDSXQ9YWdlLFRJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYXR0bGUtbmV0IixpY29uOls1MTIsNTEyLFtdLCJmODM1IiwiTTQ0OC44IDIyNS42YzI2LjkgLjIgMzUuNi03LjQgMzguOS0xMi40IDEyLjUtMTYuMy03LjEtNDcuNi01Mi44LTcxLjMgMTcuOC0zMy42IDMwLjEtNjMuNyAzNi4zLTg1LjMgMy40LTExLjggMS4xLTE5IC41LTIwLjMtMS43IDEwLjUtMTUuOCA0OC41LTQ4LjIgMTAwLTI1LTExLjItNTYuNS0yMC4xLTkzLjgtMjMuOC04LjktMTYuOS0zNC45LTYzLjktNjAuNS04OC45LTE2LjgtMTYuNS0zMC4zLTIyLjYtNDAuOC0yMy41bDAgMGMtMTMuOC0xLjYtMjIuNyA1LjgtMjcuNCAxMS0xNy4yIDE4LjUtMjQuMyA0OC45LTI1IDg0LjEtNy4yLTEyLjMtMTcuMi0yNC42LTI4LjUtMjUuOWwtLjIgMGMtMjAuNy0zLjUtMzguNCAyOS4yLTM2IDgxLjMtMzguNCAxLjQtNzEgNS44LTkzIDExLjItOS45IDIuNC0xNi4yIDcuMy0xNy44IDkuNyAxLS40IDIyLjQtOS4yIDExMS42LTkuMiA1LjIgNTMgMjkuOCAxMDEuOCAyNiA5My4yLTkuNyAxNS40LTM4LjIgNjIuNC00Ny4zIDk3LjctNS45IDIyLjktNC40IDM3LjYgLjIgNDcuMSA1LjYgMTIuOCAxNi40IDE2LjcgMjMuMiAxOC4zIDI1IDUuNyA1NS40LTMuNiA4Ni43LTIxLjEtNy41IDEyLjgtMTMuOSAyOC41LTkuMSAzOS4zIDcuMyAxOS42IDQ0LjUgMTguNyA4OC40LTkuNCAyMC4yIDMyLjIgNDAuMSA1Ny45IDU1LjcgNzQuMSAyLjYgMi44IDUuNSA1LjIgOC44IDcuMSA1LjEgMy4yIDguNiAzLjQgOC42IDMuNC04LjItNi43LTM0LTM4LTYyLjUtOTEuOCAyMi4yLTE2IDQ1LjctMzguOSA2Ny41LTY5LjMgMTIyLjggNC42IDE0My4zLTI0LjggMTQ4LTMxLjYgMTQuNy0xOS45IDMuNC01Ny40LTU3LjMtOTMuN3pNMzcxIDMzMS44YzIzLjgtMzcuNyAzMC4zLTY3LjggMjkuNC05Mi4zIDI3LjkgMTcuNiA0Ny4yIDM3LjYgNDkuMSA1OC44IDEuMSAxMi45LTguMSAyOS4xLTc4LjUgMzMuNXpNMjE3LjEgMzg3LjdjOS44LTYuMiAxOS41LTEzLjEgMjkuMi0yMC41IDYuNyAxMy4zIDEzLjYgMjYuMSAyMC42IDM4LjItNDAuNiAyMS45LTY4LjggMTIuOC00OS44LTE3Ljd6bTIxNS0xNzEuM2MtMTAuMy01LjMtMjEuMi0xMC4zLTMyLjQtMTUgNy45LTEyLjEgMTUuNS0yNC40IDIyLjctMzYuOSAzOS4xIDI0LjEgNDUuOSA1My4yIDkuNiA1MS45ek0yNzkuNCAzOThjLTUuNS0xMS40LTExLTIzLjUtMTYuNS0zNi40IDQzLjIgMS4zIDYyLjQtMTguNyA2My4zLTIwLjQgMCAuMS0yNSAxNS42LTYyLjUgMTIuMiAzMC42LTI1LjYgNTkuMS01My43IDg1LjEtODQgOC43LTEwLjIgMTctMjAuNiAyNC45LTMxLjEtLjQtLjMtMS41LTMtMTYuNS0xMi01MS43IDYwLjMtMTAyLjMgOTgtMTMyLjggMTE1LjktMjAuNi0xMS4yLTQwLjgtMzEuOC01NS43LTYxLjUtMjAtMzkuOS0zMC04Mi40LTMxLjYtMTE2LjEgMTIuMyAuOSAyNS4zIDIuMiAzOC44IDMuOS0yMi4zIDM2LjgtMTQuNCA2My0xMy41IDY0LjIgMC0uMS0xLTI5LjIgMjAuMS01OS42IDkgNTIuNSAyNCAxMDMuOCA0NC43IDE1Mi44IC45LS40IDEuOCAuOSAxOC43LTguMi0yNi4zLTc0LjUtMzMuOC0xMzguMi0zNC0xNzMuNCAyMC0xMi40IDQ4LjItMTkuOCA4MS42LTE3LjggNDQuNiAyLjcgODYuNCAxNS4yIDExNi4zIDMwLjctNy4xIDEwLjQtMTQuOSAyMS4zLTIzLjMgMzIuNS0yMC43LTM3LjctNDcuMy00My45LTQ4LjktNDMuNyAuMSAwIDI1LjkgMTQuMSA0MS41IDQ3LjItMzcuNS0xMy44LTc2LjEtMjQuNC0xMTUuMy0zMS43LTEzLjEtMi40LTI2LjItNC40LTM5LjQtNi0uMSAuNC0xLjggMS44LTIuMiAyMC4zIDc3LjkgMTQuNSAxMzYuNiAzOS45IDE2Ny4yIDU3LjIgLjcgMjMuNi03IDUxLjYtMjUuNCA3OS42LTI0LjYgMzcuMy01Ni40IDY3LjItODQuOCA4NS40em0yNy40LTI4N2MtNDQuNi0xLjctNzMuNiA3LjQtOTQuNyAyMC43IDItNTIuMyAyMS4zLTc2LjQgMzguMi03NS4zIDE2LjktNC4yIDU0LjkgNTIuMiA1Ni41IDU0LjZ6bS0xMzAuNyAzLjFjLjUgMTIuMSAxLjYgMjQuNiAzLjIgMzcuMy0xNC42LS45LTI4LjctMS4zLTQyLjQtMS4zLS4xIDMuMi0uMS01MSAyNC43LTQ5LjZsLjEgMGM1LjggMS4xIDEwLjYgNi45IDE0LjQgMTMuNnptLTI4LjEgMTYyYzIwLjggMzkuNyA0My4zIDYwLjYgNjUuMyA3Mi4zLTQ2LjggMjQuOC03Ny41IDIwLTg0LjkgNC41LS4yLS4yLTExLjEtMTUuMyAxOS43LTc2LjhsMCAweiJdfSwkSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmltb2JqZWN0IixpY29uOls0NDgsNTEyLFtdLCJmMzc4IiwiTTQxNiAzMkwzMiAzMkMxNC40IDMyIDAgNDYuNCAwIDY0TDAgNDQ4YzAgMTcuNiAxNC40IDMyIDMyIDMybDM4NCAwYzE3LjYgMCAzMi0xNC40IDMyLTMybDAtMzg0YzAtMTcuNi0xNC40LTMyLTMyLTMyek0zNTIgMjg5LjRjMCA0OS40LTExLjQgODIuNi0xMDMuOCA4Mi42bC0xNi45IDBjLTQ0LjEgMC02Mi40LTE0LjktNzAuNC0zOC44bC0uOSAwIDAgMzQuOC02NCAwIDAtMjMyIDY0IDAgMCA3NC43IDEuMSAwYzQuNi0zMC41IDM5LjctMzguOCA2OS43LTM4LjhsMTcuMyAwYzkyLjQgMCAxMDMuOCAzMy4xIDEwMy44IDgyLjVsMCAzNSAuMSAwem0tNjQtMjguOWwwIDIyLjljMCAyMS43LTMuNCAzMy44LTM4LjQgMzMuOGwtNDUuMyAwYy0yOC45IDAtNDQuMS02LjUtNDQuMS0zNS43bDAtMTljMC0yOS4zIDE1LjItMzUuNyA0NC4xLTM1LjdsNDUuMyAwYzM1LS4yIDM4LjQgMTIgMzguNCAzMy43eiJdfSxESXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ZlbHRlIixpY29uOls0NDgsNTEyLFtdLCJlODY4IiwiTTIwMi4xIDI2LjRjNjYuOC00Mi42IDE1OS4zLTIyLjcgMjA2LjEgNDQuMyAxMS4xIDE1LjUgMTkgMzMuMSAyMy4yIDUxLjhzNC43IDM3LjkgMS4zIDU2LjdjLTMuMiAxOC0xMC4xIDM1LjEtMjAuMSA1MC4zIDE0LjYgMjcuOSAxOS42IDYwIDE0IDkxLTMuMyAxOC40LTEwLjQgMzYtMjAuOSA1MS41cy0yNC4xIDI4LjctMzkuOSAzOC43TDI0OC4zIDQ4NS42Yy02Ni44IDQyLjYtMTU5LjMgMjIuNy0yMDYuMS00NC4yLTExLjEtMTUuNS0xOS0zMy4yLTIzLjItNTEuOHMtNC43LTM3LjktMS4zLTU2LjdjMy4yLTE4IDEwLjEtMzUuMSAyMC4xLTUwLjMtMTQuNy0yNy45LTE5LjYtNjAtMTQtOTEuMSAzLjMtMTguNCAxMC40LTM2IDIwLjktNTEuNXMyNC4xLTI4LjcgMzkuOS0zOC43TDIwMi4xIDI2LjR6TTMxNS42IDY3LjJjLTE3LjktNi42LTM3LjQtNy42LTU1LjktMi44LTguNCAyLjMtMTYuNSA1LjgtMjMuOCAxMC41TDExOC41IDE0OS43Yy05LjUgNi0xNy43IDEzLjktMjQgMjMuM1M4NCAxOTIuOCA4MiAyMDMuOWMtMiAxMS4zLTEuNyAyMi45IC44IDM0LjFzNy4zIDIxLjggMTMuOSAzMS4yYzEwLjkgMTUuNyAyNi4zIDI3LjYgNDQuMiAzNC4zczM3LjQgNy42IDU1LjkgMi44YzguNC0yLjMgMTYuNS01LjggMjMuOC0xMC41bDQ0LjgtMjguNmMyLjItMS40IDQuNy0yLjUgNy4yLTMuMiA1LjYtMS40IDExLjQtMS4yIDE2LjggLjhzMTAgNS42IDEzLjMgMTAuM2MyIDIuOCAzLjUgNiA0LjIgOS40cy45IDYuOSAuMyAxMC4zYy0uNiAzLjMtMS45IDYuNS0zLjggOS4zLTEuOSAyLjgtNC40IDUuMi03LjIgN0wxNzguOCAzODYuMWMtMi4yIDEuNC00LjcgMi41LTcuMiAzLjItNS42IDEuNC0xMS40IDEuMi0xNi44LS44cy0xMC01LjYtMTMuMy0xMC4zYy0zLjYtNS4xLTUuMy0xMS4yLTQuNy0xNy40bC40LTQuNC00LjMtMS4zYy0xNi41LTUtMzIuMS0xMi43LTQ1LjktMjIuOWwtNi00LjQtMi4yIDYuN2MtMS4yIDMuNi0yLjEgNy4zLTIuOCAxMS0yIDExLjMtMS43IDIyLjkgLjggMzQuMXM3LjMgMjEuOCAxMy45IDMxLjFjMTAuOSAxNS43IDI2LjMgMjcuNiA0NC4yIDM0LjNzMzcuNCA3LjYgNTUuOCAyLjhjOC40LTIuMyAxNi41LTUuOCAyMy45LTEwLjVsMTE3LjMtNzQuOGM5LjUtNiAxNy43LTEzLjkgMjQtMjMuM3MxMC42LTE5LjkgMTIuNi0zMWMyLTExLjMgMS44LTIyLjktLjgtMzQuMXMtNy4zLTIxLjgtMTQtMzEuMWMtMTAuOS0xNS43LTI2LjMtMjcuNi00NC4yLTM0LjNzLTM3LjQtNy42LTU1LjktMi44Yy04LjQgMi4zLTE2LjUgNS44LTIzLjggMTAuNUwxODUgMjQ0LjhjLTIuMiAxLjQtNC42IDIuNS03LjIgMy4yLTUuNiAxLjQtMTEuNSAxLjItMTYuOC0uOHMtMTAtNS42LTEzLjMtMTAuM2MtMi0yLjgtMy40LTYtNC4yLTkuNHMtLjktNi45LS4yLTEwLjNjLjYtMy4zIDEuOS02LjUgMy44LTkuM3M0LjQtNS4yIDcuMi03bDExNy40LTc0LjhjMi4yLTEuNCA0LjctMi41IDcuMi0zLjIgNS42LTEuNCAxMS40LTEuMSAxNi44IC45czEwIDUuNiAxMy4zIDEwLjNjMy42IDUuMSA1LjIgMTEuMyA0LjcgMTcuNGwtLjQgNC40IDQuNCAxLjNjMTYuNSA1IDMyIDEyLjggNDUuOSAyM2w2IDQuNCAyLjItNi44YzEuMi0zLjYgMi4xLTcuMyAyLjgtMTEgMi0xMS4zIDEuOC0yMi45LS44LTM0LjFzLTcuMy0yMS44LTE0LTMxLjFjLTEwLjktMTUuNy0yNi4zLTI3LjYtNDQuMi0zNC4zeiJdfSxMSXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRlc2twcm8iLGljb246WzQ0OCw1MTIsW10sImU4NDQiLCJNNDA4LjggMzJDNDMwLjQgMzIgNDQ4IDQ5LjYgNDQ4IDcxLjJsMCAzNjkuNmMwIDIxLjYtMTcuNiAzOS4yLTM5LjIgMzkuMkwzOS4yIDQ4MEMxNy42IDQ4MCAwIDQ2Mi40IDAgNDQwLjhMMCA3MS4yQzAgNDkuNiAxNy42IDMyIDM5LjIgMzJsMzY5LjYgMHpNMTEwLjkgMjc0LjFsMCAxMTQuNCA4OS4xLS4xYzIwLjYgMCAzOS40LTMuMiA1Ni4zLTkuNXMzMS4zLTE1LjQgNDMuMi0yN2MxMi4yLTExLjkgMjEuNi0yNiAyOC4yLTQyLjEgNC42LTExLjEgNy43LTIzIDkuMi0zNS43bC00My44IDBjLTEuMSA2LjQtMi44IDEyLjQtNS4xIDE4LjItNC4yIDEwLjktMTAuMyAyMC4zLTE4LjIgMjguMi03LjkgNy43LTE3LjQgMTMuNy0yOC42IDE3LjktMTEuMSA0LjMtMjMuNSA2LjQtMzcuMyA2LjRsLTUwIDAgMC03MC42LTQzIC4xem0wLTE1MS40bDAgMTE0LjQgNDMtLjEgMC03MC43IDUwIDBjMTMuNyAwIDI2LjIgMi4xIDM3LjMgNi40IDExLjEgNC4zIDIwLjYgMTAuMyAyOC42IDE4LjMgNy45IDcuNyAxNCAxNy4xIDE4LjIgMjguMiAyLjMgNS42IDQgMTEuNSA1LjEgMTcuOGw0My45IC4xYy0xLjQtMTIuNi00LjQtMjQuNC04LjktMzUuMy02LjYtMTYuNC0xNi0zMC41LTI4LjEtNDIuMi0xMi4xLTExLjktMjYuNy0yMS4xLTQzLjYtMjcuNS0xNi45LTYuNC0zNS43LTkuNS01Ni4zLTkuNWwtODkgLjF6Il19LEVJdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0YWlsd2luZC1jc3MiLGljb246WzY0MCw1MTIsW10sImU4NjYiLCJNMzIwIDY0Yy04NS4zIDAtMTM4LjcgNDIuNy0xNjAgMTI4IDMyLTQyLjcgNjkuMy01OC43IDExMi00OCAyNC4zIDYuMSA0MS43IDIzLjggNjEgNDMuMyAzMS40IDMxLjggNjcuNyA2OC43IDE0NyA2OC43IDg1LjMgMCAxMzguNy00Mi43IDE2MC0xMjgtMzIgNDIuNy02OS4zIDU4LjctMTEyIDQ4LTI0LjMtNi4xLTQxLjctMjMuOC02MS00My4zLTMxLjQtMzEuOC02Ny43LTY4LjctMTQ3LTY4Ljd6TTE2MCAyNTZjLTg1LjMgMC0xMzguNyA0Mi43LTE2MCAxMjggMzItNDIuNyA2OS4zLTU4LjcgMTEyLTQ4IDI0LjMgNi4xIDQxLjcgMjMuOCA2MSA0My4zIDMxLjQgMzEuOCA2Ny43IDY4LjcgMTQ3IDY4LjcgODUuMyAwIDEzOC43LTQyLjcgMTYwLTEyOC0zMiA0Mi43LTY5LjMgNTguNy0xMTIgNDgtMjQuMy02LjEtNDEuNy0yMy44LTYxLTQzLjMtMzEuNC0zMS44LTY3LjctNjguNy0xNDctNjguN3oiXX0scFdhPXtmYVNxdWFyZUdpdGh1YjpTOGUsZmFHaXRodWJTcXVhcmU6JF90LGZhVGhpbmtQZWFrczpEX3QsZmFHb29nbGVEcml2ZTpMX3QsZmFBdXRvcHJlZml4ZXI6RV90LGZhU3F1YXJlVmlhZGVvOl84ZSxmYVZpYWRlb1NxdWFyZTpQX3QsZmFDcGFuZWw6SV90LGZhTWVuZGVsZXk6QV90LGZhRHJhZnQyZGlnaXRhbDpOX3QsZmFSZXBseWQ6Ul90LGZhRW1waXJlOk9fdCxmYUFjY2Vzc2libGVJY29uOkZfdCxmYVF1b3JhOkJfdCxmYUNjSmNiOkhfdCxmYUZlZG9yYTpxX3QsZmFEdW9saW5nbzpqX3QsZmFGaXJzdGRyYWZ0OlZfdCxmYUZyZWVic2Q6VV90LGZhT2R5c2VlOldfdCxmYUdnQ2lyY2xlOkdfdCxmYUNsb3VkZmxhcmU6S190LGZhSGFja2VycmFuazpZX3QsZmFTa3lhdGxhczpaX3QsZmFEZXNrcHJvOlhfdCxmYVJlc29sdmluZzpRX3QsZmFCbGFja2JlcnJ5OkpfdCxmYVN0cmlwZVM6ZU10LGZhU3F1YXJlQmVoYW5jZTpNOGUsZmFCZWhhbmNlU3F1YXJlOnRNdCxmYVNlcnZpY2VzdGFjazphTXQsZmFSb2NrZXRjaGF0OnNNdCxmYVJlYmVsOmlNdCxmYVNxdWFyZVdlYkF3ZXNvbWU6ck10LGZhTGlua3RyZWU6b010LGZhU2ltcGx5YnVpbHQ6bk10LGZhU3R1YmJlcjpsTXQsZmFBcHBlcjpjTXQsZmFHb29nbGVTY2hvbGFyOmRNdCxmYVlhcm46dU10LGZhU3RhY2tPdmVyZmxvdzpwTXQsZmFCbHVldG9vdGg6aE10LGZhQ3JlYXRpdmVDb21tb25zTmNKcDpmTXQsZmFSZWRkaXQ6bU10LGZhQ29ubmVjdGRldmVsb3A6Z010LGZhUmVzZWFyY2hnYXRlOmJNdCxmYVNpZ25hbE1lc3Nlbmdlcjp2TXQsZmFYaW5nOnhNdCxmYVNxdWFyZUpzOno4ZSxmYUpzU3F1YXJlOnlNdCxmYUZvbnRpY29uczp3TXQsZmFVcHM6a010LGZhQW1hem9uUGF5OlNNdCxmYVBhbmRvcmE6X010LGZhT3BlbmlkOk1NdCxmYVZzY286ek10LGZhR2xvYmFsZWFrczpDTXQsZmFWZW5tbzpUTXQsZmFVYnVudHU6JE10LGZhVmlhY29pbjpETXQsZmFaaGlodTpMTXQsZmFZYW5kZXg6RU10LGZhUGl4aXY6UE10LGZhT3BlbmFpOklNdCxmYVNpdGg6QU10LGZhSnVsaWE6Tk10LGZhTmZjRGlyZWN0aW9uYWw6Uk10LGZhQ3JlYXRpdmVDb21tb25zQnk6T010LGZhVW1icmFjbzpGTXQsZmFIb29saTpCTXQsZmFTcXVhcmVHaXQ6QzhlLGZhR2l0U3F1YXJlOkhNdCxmYU9kbm9rbGFzc25pa2k6cU10LGZhRHJ1cGFsOmpNdCxmYUJsb2dnZXJCOlZNdCxmYUludmlzaW9uOlVNdCxmYUZhY2Vib29rRjpXTXQsZmFDZW50b3M6R010LGZhU2NhbGV3YXk6S010LGZhQ2NBbWF6b25QYXk6WU10LGZhRWJheTpaTXQsZmFDb250YW86WE10LGZhRWxsbzpRTXQsZmFTaXN0cml4OkpNdCxmYVBlcmlzY29wZTplenQsZmFFeHBlZGl0ZWRzc2w6dHp0LGZhTmFwc3RlcjphenQsZmFEZWxpY2lvdXM6c3p0LGZhR3VpbGRlZDppenQsZmFPYnNpZGlhbjpyenQsZmFYYm94Om96dCxmYVVudGFwcGQ6bnp0LGZhR29vZ2xlUGx1c0c6bHp0LGZhR2l0aHViQWx0OmN6dCxmYUdldFBvY2tldDpkenQsZmFHbGlkZTp1enQsZmFCaXR5OnB6dCxmYVdwZXhwbG9yZXI6aHp0LGZhTWVnYXBvcnQ6Znp0LGZhTGVldGNvZGU6bXp0LGZhTWRiOmd6dCxmYVBhZ2U0OmJ6dCxmYVRoZVJlZFlldGk6dnp0LGZhSmlyYTp4enQsZmFGZWRleDp5enQsZmFFdmVybm90ZTp3enQsZmFVc2I6a3p0LGZhQW5ncnljcmVhdGl2ZTpTenQsZmFNaXp1bmk6X3p0LGZhSXRjaElvOk16dCxmYVdpbmRvd3M6enp0LGZhU3R1bWJsZXVwb246Q3p0LGZhR29vZ2xlOk1iLGZhRGlzY29yZDpUenQsZmFIYWNrZXJOZXdzOiR6dCxmYUVsZXZlbnR5OlQ4ZSxmYTExdHk6RHp0LGZhVGVhbXNwZWFrOkx6dCxmYVN1cHBsZTpFenQsZmFTcXVhcmVUd2l0dGVyOiQ4ZSxmYVR3aXR0ZXJTcXVhcmU6UHp0LGZhVmltOkl6dCxmYUZvbnRBd2Vzb21lOllyZSxmYUZvbnRBd2Vzb21lRmxhZzpBenQsZmFGb250QXdlc29tZUxvZ29GdWxsOk56dCxmYVdpcnNpbmRoYW5kd2VyazpEOGUsZmFXc2g6Unp0LGZhWm9vbTpPenQsZmFDb25mbHVlbmNlOkZ6dCxmYURpZ2c6Qnp0LGZhVGhyZWFkczpIenQsZmFXcHJlc3NyOkw4ZSxmYVJlbmRhY3Q6cXp0LGZhWW9hc3Q6anp0LGZhTmltYmxyOlZ6dCxmYVBpeGVsZmVkOlV6dCxmYVlhaG9vOld6dCxmYUJsdWVza3k6R3p0LGZhU2NyaWJkOkt6dCxmYUNyZWF0aXZlQ29tbW9uc1BkOll6dCxmYUVhcmx5YmlyZHM6Wnp0LGZhU3ltZm9ueWNhc3RzOlh6dCxmYVNxdWFyZU9kbm9rbGFzc25pa2k6RThlLGZhT2Rub2tsYXNzbmlraVNxdWFyZTpRenQsZmFNYXJrZG93bjpKenQsZmFUeXBvMzplQ3QsZmFKb29tbGE6dEN0LGZhV2VpeGluOmFDdCxmYUdydW50OnNDdCxmYVN1cHBvcnRub3c6aUN0LGZhUm9ja3JtczpyQ3QsZmFVbnNwbGFzaDpvQ3QsZmFTcXVhcmVJbnN0YWdyYW06UDhlLGZhSW5zdGFncmFtU3F1YXJlOm5DdCxmYUZpcnN0T3JkZXJBbHQ6bEN0LGZhRnVsY3J1bTpjQ3QsZmFBcmNoTGludXg6ZEN0LGZhRmVkaXZlcnNlOnVDdCxmYUJyYXZlUmV2ZXJzZTpwQ3QsZmFBdmlhbmV4OmhDdCxmYU5zODpmQ3QsZmFTcXVhcmVQaW50ZXJlc3Q6SThlLGZhUGludGVyZXN0U3F1YXJlOm1DdCxmYUJsdWV0b290aEI6Z0N0LGZhR3JpcGZpcmU6YkN0LGZhU3F1YXJlR29vZ2xlUGx1czpBOGUsZmFHb29nbGVQbHVzU3F1YXJlOnZDdCxmYUdpdGVlOnhDdCxmYVhtcHA6eUN0LGZhQXBwU3RvcmU6d0N0LGZhV2l4OmtDdCxmYUludGVyY29tOlNDdCxmYVJlYWN0ZXVyb3BlOl9DdCxmYVdhemU6TUN0LGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6ekN0LGZhQmFuZGNhbXA6Q0N0LGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpUQ3QsZmFWaW1lb1Y6JEN0LGZhU3RyYXZhOkRDdCxmYVVuaXJlZ2lzdHJ5OkxDdCxmYUNjRGluZXJzQ2x1YjpFQ3QsZmFLdWJlcm5ldGVzOlBDdCxmYVBpbnRlcmVzdDpJQ3QsZmFBbGdvbGlhOkFDdCxmYVN0YWNrcGF0aDpOQ3QsZmFPY3RvcHVzRGVwbG95OlJDdCxmYVlhbW1lcjpPQ3QsZmFNb2R4OkZDdCxmYVNxdWFyZVRocmVhZHM6QkN0LGZhT2xkUmVwdWJsaWM6SEN0LGZhU3VzZTpxQ3QsZmFBcHBTdG9yZUlvczpqQ3QsZmFVbHRyYWx5dGljc1lvbG86VkN0LGZhU3F1YXJlRHJpYmJibGU6TjhlLGZhRHJpYmJibGVTcXVhcmU6VUN0LGZhVWlraXQ6V0N0LGZhU3VwZXJwb3dlcnM6R0N0LGZhWW91dHViZTpLQ3QsZmFFbWJlcjpZQ3QsZmFCb290c3RyYXA6WkN0LGZhSXR1bmVzOlhDdCxmYVNxdWFyZVhpbmc6UjhlLGZhWGluZ1NxdWFyZTpRQ3QsZmFDc3MzQWx0OkpDdCxmYVNxdWFyZXNwYWNlOmVUdCxmYVRyZWxsbzp0VHQsZmFWaWFkZW86YVR0LGZhU2VhcmNoZW5naW46c1R0LGZhVW5yZWFsRW5naW5lOmlUdCxmYVBheXBhbDpyVHQsZmFTcXVhcmVCbHVlc2t5Om9UdCxmYURBbmREQmV5b25kOm5UdCxmYU1pY3Jvc29mdDpsVHQsZmFGbHk6Y1R0LGZhQ2NTdHJpcGU6ZFR0LGZhV29yZHByZXNzU2ltcGxlOnVUdCxmYVNlbGxzeTpwVHQsZmFEYXNoY3ViZTpoVHQsZmFHaXR0ZXI6ZlR0LGZhV29sZlBhY2tCYXR0YWxpb246bVR0LGZhTGFzdGZtOmdUdCxmYVNob3B3YXJlOmJUdCxmYUJsb2dnZXI6dlR0LGZhRWRnZTp4VHQsZmFJb3hob3N0OnlUdCxmYVNjaGxpeDp3VHQsZmFEQW5kRDprVHQsZmFWdWVqczpTVHQsZmFNZXRhOl9UdCxmYUNyZWF0aXZlQ29tbW9uc1NoYXJlOk1UdCxmYVN0dWRpb3ZpbmFyaTp6VHQsZmFCaXRidWNrZXQ6Q1R0LGZhVms6VFR0LGZhR2l0aHViOiRUdCxmYUNvZGllcGllOkRUdCxmYVBpZWRQaXBlcjpMVHQsZmFSYXNwYmVycnlQaTpFVHQsZmFDc3MzOlBUdCxmYUh1YnNwb3Q6SVR0LGZhQ21wbGlkOkFUdCxmYUR5YWxvZzpOVHQsZmFFbGVtZW50b3I6UlR0LGZhRmlyc3RPcmRlcjpPVHQsZmFEcmliYmJsZTpGVHQsZmFMaW5rZWRpbjp6YixmYUNjUGF5cGFsOkJUdCxmYURobDpIVHQsZmFUZXg6cVR0LGZhQ2xhdWRlOmpUdCxmYVNob3BpZnk6VlR0LGZhU3F1YXJlUmVkZGl0Ok84ZSxmYVJlZGRpdFNxdWFyZTpVVHQsZmFDcmVhdGl2ZUNvbW1vbnNOYzpXVHQsZmFHYWxhY3RpY1JlcHVibGljOkdUdCxmYUZhY2Vib29rOkNiLGZhR2l0bGFiOktUdCxmYVFxOllUdCxmYVN0cmlwZTpaVHQsZmFEYWlseW1vdGlvbjpYVHQsZmFTdGVhbTpRVHQsZmFWZW5tb1Y6SlR0LGZhU25hcGNoYXQ6RjhlLGZhU25hcGNoYXRHaG9zdDplJHQsZmFHYWxhY3RpY1NlbmF0ZTp0JHQsZmFQaG9lbml4RnJhbWV3b3JrOmEkdCxmYUdpdDpzJHQsZmFPcHRpbk1vbnN0ZXI6aSR0LGZhSmVua2luczpyJHQsZmFTbGlkZXNoYXJlOm8kdCxmYVViZXI6biR0LGZhRGlnaXRhbE9jZWFuOmwkdCxmYVNvdW5kY2xvdWQ6YyR0LGZhU3F1YXJlRmlnbWE6ZCR0LGZhQ3JlYXRpdmVDb21tb25zU2E6dSR0LGZhQ2hyb21lOnAkdCxmYVRyYWRlRmVkZXJhdGlvbjpoJHQsZmFWYWFkaW46ZiR0LGZhRGV2aWFudGFydDptJHQsZmFNZWRpdW06WDMsZmFNZWRpdW1NOmckdCxmYU9wZW5jYXJ0OmIkdCxmYVlDb21iaW5hdG9yOnYkdCxmYUxpbmU6eCR0LGZhQW1pbGlhOnkkdCxmYUFzeW1tZXRyaWs6dyR0LGZhUGhhYnJpY2F0b3I6ayR0LGZhQm90czpTJHQsZmFWaW5lOl8kdCxmYU1lZHJ0Ok0kdCxmYU9zaTp6JHQsZmFHZzpDJHQsZmFCdXlzZWxsYWRzOlQkdCxmYUdvb2dsZVBsdXM6JCR0LGZhU2NyZWVucGFsOkQkdCxmYUJpdGNvaW46TCR0LGZhU3dpZnQ6RSR0LGZhRmlsZXNQaW53aGVlbDpQJHQsZmFMYXJhdmVsOkkkdCxmYVdwZm9ybXM6QSR0LGZhU3BlYWtlckRlY2s6TiR0LGZhRmxpY2tyOlIkdCxmYUNjVmlzYTpPJHQsZmFVcHdvcms6RiR0LGZhS2FrYW9UYWxrOkIkdCxmYUZsdXR0ZXI6SCR0LGZhQnVmZmVyOnEkdCxmYUdyYXRpcGF5OmokdCxmYUdvb2dsZVBheTpWJHQsZmFBcHBsZTpVJHQsZmFUdW1ibHI6VyR0LGZhUGhvZW5peFNxdWFkcm9uOkckdCxmYUNlbnRlcmNvZGU6SyR0LGZhRGViaWFuOlkkdCxmYU1hc3RvZG9uOlokdCxmYVNrZXRjaDpYJHQsZmFXZWJBd2Vzb21lOlEkdCxmYVNhc3M6SiR0LGZhVGhyZWVtYTplRHQsZmFTcXVhcmVXaGF0c2FwcDpCOGUsZmFXaGF0c2FwcFNxdWFyZTp0RHQsZmFTa3lwZTphRHQsZmFBbmd1bGFyOnNEdCxmYUNpcmNsZVp1bGlwOmlEdCxmYU9wZW5zdXNlOnJEdCxmYURyb3Bib3g6b0R0LGZhRGVlemVyOm5EdCxmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nOmxEdCxmYUplZGlPcmRlcjpjRHQsZmFSUHJvamVjdDpkRHQsZmFJbnN0YWxvZDp1RHQsZmFDYW5hZGlhbk1hcGxlTGVhZjpwRHQsZmFFdGhlcmV1bTpoRHQsZmFIb3V6ejpmRHQsZmFWaWJlcjptRHQsZmFLaWNrc3RhcnRlcjpIOGUsZmFTcXVhcmVLaWNrc3RhcnRlcjpnRHQsZmFTcG90aWZ5OmJEdCxmYUxlYW5wdWI6dkR0LGZhSmF2YTp4RHQsZmFOZmNTeW1ib2w6eUR0LGZhV29kdTp3RHQsZmFTcXVhcmVTdGVhbTpxOGUsZmFTdGVhbVNxdWFyZTprRHQsZmFDcmVhdGl2ZUNvbW1vbnNOY0V1OlNEdCxmYU5wbTpfRHQsZmFDbG91ZHNjYWxlOk1EdCxmYVRoZW1lY286ekR0LGZhR29vZ2xlUGxheTpDRHQsZmFLb3J2dWU6VER0LGZhVzNjOiREdCxmYUdyYXY6RER0LGZhQXdzOkxEdCxmYUdsaWRlRzpFRHQsZmFKc2ZpZGRsZTpQRHQsZmFLZXliYXNlOklEdCxmYUx1bW9uRHJvcDpBRHQsZmFGb3JnZWpvOk5EdCxmYVBvc3RncmVzcWw6UkR0LGZhV2VlYmx5Ok9EdCxmYURvY2tlcjpGRHQsZmFNYWdlbnRvOkJEdCxmYVRvckJyb3dzZXI6SER0LGZhR2l0QWx0OnFEdCxmYUZpcmVmb3hCcm93c2VyOmpEdCxmYUNsb3Vkc21pdGg6VkR0LGZhV2l6YXJkc09mVGhlQ29hc3Q6VUR0LGZhQ3JlYXRpdmVDb21tb25zTmQ6V0R0LGZhVXNwczpHRHQsZmFTcXVhcmVMZXR0ZXJib3hkOktEdCxmYU1hbmRhbG9yaWFuOllEdCxmYVNsYWNrOmo4ZSxmYVNsYWNrSGFzaDpUYixmYUFuZ2VsbGlzdDpaRHQsZmFBbmRyb2lkOlhEdCxmYU1lZXR1cDpRRHQsZmFGb250aWNvbnNGaTpKRHQsZmFQYWxmZWQ6ZUx0LGZhV3BiZWdpbm5lcjp0THQsZmFEaWFzcG9yYTphTHQsZmFQcm9kdWN0SHVudDpzTHQsZmFTcXVhcmVVcHdvcms6aUx0LGZhQ3V0dGxlZmlzaDpyTHQsZmFNZWRhcHBzOm9MdCxmYVBpeDpuTHQsZmFTcXVhcmVUdW1ibHI6VjhlLGZhVHVtYmxyU3F1YXJlOmxMdCxmYVJlYWN0OmNMdCxmYUh1Z2dpbmdGYWNlOmRMdCxmYUp4bDp1THQsZmFTcXVhcmVMaW5rZWRpbjpwTHQsZmFDc3M6aEx0LGZhSGFzaG5vZGU6Zkx0LGZhUmVkZGl0QWxpZW46bUx0LGZhVGlrdG9rOiRiLGZhV29yZHByZXNzOmdMdCxmYUlkZWFsOmJMdCxmYVBpZWRQaXBlclBwOnZMdCxmYVVzc3VubmFoOnhMdCxmYUZvcnRBd2Vzb21lQWx0OnlMdCxmYUJ1cm9tb2JlbGV4cGVydGU6d0x0LGZhQmlsaWJpbGk6a0x0LGZhTmVvczpTTHQsZmFEZXY6X0x0LGZhSG90amFyOk1MdCxmYURvY2h1Yjp6THQsZmFWaW1lbzpDTHQsZmFNYXhjZG46VEx0LGZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2U6VThlLGZhRm9udEF3ZXNvbWVBbHQ6JEx0LGZhU3BlYWthcDpETHQsZmFGYW50YXN5RmxpZ2h0R2FtZXM6TEx0LGZhTGludXg6RUx0LGZhQ290dG9uQnVyZWF1OlBMdCxmYUdvb2dsZVdhbGxldDpJTHQsZmFGb3Vyc3F1YXJlOkFMdCxmYVNoaXJ0c2luYnVsazpOTHQsZmFNaW50Yml0OlJMdCxmYVp1bGlwOk9MdCxmYVN0YXlsaW5rZWQ6Rkx0LGZhV2ViZmxvdzpCTHQsZmFSZW5yZW46SEx0LGZhS29GaTpxTHQsZmFSZXY6akx0LGZhS2V5Y2RuOlZMdCxmYUhpcmVBSGVscGVyOlVMdCxmYVNxdWFyZUhhY2tlck5ld3M6VzhlLGZhSGFja2VyTmV3c1NxdWFyZTpXTHQsZmFDcmVhdGl2ZUNvbW1vbnNQZEFsdDpHTHQsZmFPcmNpZDpLTHQsZmFCb2FyZEdhbWVHZWVrOkc4ZSxmYUJnZzpZTHQsZmFCZWhhbmNlOlpMdCxmYU1vbmVybzpYTHQsZmFGaWdtYTpRTHQsZmFJbnN0YWdyYW06RGIsZmFQZXJieXRlOkpMdCxmYVNxdWFyZVZpbWVvOks4ZSxmYVZpbWVvU3F1YXJlOmVFdCxmYVB1c2hlZDp0RXQsZmFNaXhjbG91ZDphRXQsZmFZYW5kZXhJbnRlcm5hdGlvbmFsOnNFdCxmYUhpdmU6aUV0LGZhQ3JlYXRpdmVDb21tb25zWmVybzpyRXQsZmFTcXVhcmVTbmFwY2hhdDpZOGUsZmFTbmFwY2hhdFNxdWFyZTpvRXQsZmFUaGVtZWlzbGU6bkV0LGZhRGFydExhbmc6bEV0LGZhRGVwbG95ZG9nOmNFdCxmYUZsaXBib2FyZDpkRXQsZmFCdXlOTGFyZ2U6dUV0LGZhV2F0Y2htYW5Nb25pdG9yaW5nOnBFdCxmYUhpcHM6aEV0LGZhQ2xvdWR2ZXJzaWZ5OmZFdCxmYUdvb2RyZWFkczptRXQsZmFUaWRhbDpnRXQsZmFVbml0eTpiRXQsZmFUZW5jZW50V2VpYm86dkV0LGZhRnJlZUNvZGVDYW1wOnhFdCxmYVhUd2l0dGVyOnlFdCxmYVN0aWNrZXJNdWxlOndFdCxmYVR3aXRjaDprRXQsZmFLaWNrc3RhcnRlcks6U0V0LGZhQ3JpdGljYWxSb2xlOl9FdCxmYVN0ZWFtU3ltYm9sOk1FdCxmYU1haWxjaGltcDp6RXQsZmFMdW1vbjpDRXQsZmFOdXRyaXRpb25peDpURXQsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXM6JEV0LGZhUmVkaGF0OkRFdCxmYVNxdWFyZVBpZWRQaXBlcjpaOGUsZmFQaWVkUGlwZXJTcXVhcmU6TEV0LGZhV2hhdHNhcHA6RUV0LGZhSW1kYjpQRXQsZmFQeXRob246SUV0LGZhQ2FzaEFwcDpBRXQsZmFQaW50ZXJlc3RQOk5FdCxmYVdobWNzOlJFdCxmYUpvZ2V0Ok9FdCxmYVNxdWFyZVlvdXR1YmU6WDhlLGZhWW91dHViZVNxdWFyZTpGRXQsZmFBdGxhc3NpYW46QkV0LGZhUGllZFBpcGVySGF0OkhFdCxmYUludGVybmV0RXhwbG9yZXI6cUV0LGZhQWlyYm5iOmpFdCxmYUpzOlZFdCxmYVF1aW5zY2FwZTpVRXQsZmFBZHZlcnNhbDpXRXQsZmFDcmVhdGl2ZUNvbW1vbnM6R0V0LGZhTm90aW9uOktFdCxmYUNocm9tZWNhc3Q6WUV0LGZhVWx0cmFseXRpY3NIdWI6WkV0LGZhV2lraXBlZGlhVzpYRXQsZmFTaXRyb3g6UUV0LGZhU3F1YXJlR2l0bGFiOlE4ZSxmYUdpdGxhYlNxdWFyZTpKRXQsZmFTaG9lbGFjZTplUHQsZmFPcGVuc3RyZWV0bWFwOnRQdCxmYVNlbGxjYXN0OmFQdCxmYU1peDpzUHQsZmFDY0FwcGxlUGF5OmlQdCxmYVNvbGFuYTpyUHQsZmFUeXBlc2NyaXB0Om9QdCxmYUJyYXZlOm5QdCxmYUV0c3k6bFB0LGZhQnRjOmNQdCxmYUFkbjpkUHQsZmFTcXVhcmVYVHdpdHRlcjp1UHQsZmFTcXVhcmVGb250QXdlc29tZTpwUHQsZmFGb3J1bWJlZTpoUHQsZmE0Mkdyb3VwOko4ZSxmYUlubm9zb2Z0OmZQdCxmYVN0dW1ibGV1cG9uQ2lyY2xlOm1QdCxmYVN5bWZvbnk6Z1B0LGZhU2FsZXNmb3JjZTpiUHQsZmFTb3VyY2V0cmVlOnZQdCxmYUxpbmtlZGluSW46eFB0LGZhSHRtbDU6eVB0LGZhUnVzdDp3UHQsZmFIb3JuYmlsbDprUHQsZmFQaHA6U1B0LGZhRGlzcXVzOl9QdCxmYTUwMHB4Ok1QdCxmYUFmZmlsaWF0ZXRoZW1lOnpQdCxmYVJlZFJpdmVyOkNQdCxmYVR3aXR0ZXI6TGIsZmFGb3J0QXdlc29tZTpUUHQsZmFNaXhlcjokUHQsZmFMeWZ0OkRQdCxmYUFwcGxlUGF5OkxQdCxmYUFydHN0YXRpb246RVB0LGZhTm9kZUpzOlBQdCxmYVVuY2hhcnRlZDpJUHQsZmFQbGF5c3RhdGlvbjpBUHQsZmFNaWNyb2Jsb2c6TlB0LGZhR2l0a3Jha2VuOlJQdCxmYVRlbGVncmFtOmVnZSxmYVRlbGVncmFtUGxhbmU6T1B0LGZhVWx0cmFseXRpY3M6RlB0LGZhSXR1bmVzTm90ZTpCUHQsZmFMZXNzOkhQdCxmYUZpcmVmb3g6cVB0LGZhS2FnZ2xlOmpQdCxmYUZhY2Vib29rTWVzc2VuZ2VyOlZQdCxmYUF1ZGlibGU6VVB0LGZhUGF0cmVvbjpXUHQsZmFWbnY6R1B0LGZhUGFnZWxpbmVzOktQdCxmYUFtYXpvbjpZUHQsZmFFbnZpcmE6WlB0LGZhTGlub2RlOlhQdCxmYUFjY3Vzb2Z0OlFQdCxmYUVybGFuZzpKUHQsZmFVbmlzb246ZUl0LGZhQ2NEaXNjb3Zlcjp0SXQsZmFTYWZhcmk6YUl0LGZhU3BhY2VBd2Vzb21lOnNJdCxmYU5vZGU6aUl0LGZhQ29kZXBlbjpySXQsZmFSYXZlbHJ5Om9JdCxmYUFsaXBheTpuSXQsZmFDY0FtZXg6bEl0LGZhUGllZFBpcGVyQWx0OmNJdCxmYUxldHRlcmJveGQ6ZEl0LGZhT3BlcmE6dUl0LGZhV2VpYm86cEl0LGZhUmVhZG1lOmhJdCxmYUdvbGFuZzpmSXQsZmFTdGFja0V4Y2hhbmdlOm1JdCxmYUd1bHA6Z0l0LGZhWWVscDpiSXQsZmFHb2ZvcmU6dkl0LGZhQXZpYXRvOnhJdCxmYVBhZGxldDp5SXQsZmFFZGdlTGVnYWN5OndJdCxmYVNxdWFyZUxhc3RmbTp0Z2UsZmFMYXN0Zm1TcXVhcmU6a0l0LGZhR29vZHJlYWRzRzpTSXQsZmFDY01hc3RlcmNhcmQ6X0l0LGZhRGlzY291cnNlOk1JdCxmYUJsYWNrVGllOnpJdCxmYVNxdWFyZUZhY2Vib29rOmFnZSxmYUZhY2Vib29rU3F1YXJlOkNJdCxmYUJhdHRsZU5ldDpUSXQsZmFCaW1vYmplY3Q6JEl0LGZhU3ZlbHRlOkRJdCxmYVNxdWFyZURlc2twcm86TEl0LGZhVGFpbHdpbmRDc3M6RUl0fX0pO3ZhciBoV2EsaWdlLFBJdCxJSXQscmdlLEFJdCxRMyxOSXQsUkl0LE9JdCxGSXQsb2dlLEJJdCxISXQscUl0LEozLGpJdCxuZ2UsVkl0LGxnZSxVSXQsV0l0LEdJdCxLSXQsY2dlLFlJdCxkZ2UsWkl0LHVnZSxYSXQscGdlLFFJdCxoZ2UsSkl0LGZnZSxlQXQsbWdlLHRBdCxhQXQsZ2dlLHNBdCxiZ2UsaUF0LHZnZSxyQXQseGdlLG9BdCxuQXQseWdlLGxBdCx3Z2UsY0F0LGtnZSxkQXQsU2dlLHVBdCxfZ2UscEF0LGhBdCxmQXQsWnJlLG1BdCxnQXQsYkF0LHZBdCx4QXQseUF0LHdBdCxrQXQsWHJlLFNBdCxfQXQsTWdlLE1BdCx6QXQsQ0F0LFRBdCwkQXQsREF0LExBdCxFQXQsemdlLFBBdCxJQXQsQUF0LHVoLE5BdCxSQXQsQ2dlLE9BdCxGQXQsVGdlLEJBdCxFYixIQXQscUF0LFFyZSxqQXQsVkF0LCRnZSxVQXQsV0F0LEdBdCxEZ2UsS0F0LExnZSxZQXQsSnJlLFpBdCxYQXQsRWdlLFFBdCxQZ2UsSkF0LGVOdCx0TnQsSWdlLGFOdCxBZ2Usc050LE5nZSxpTnQsUmdlLHJOdCxvTnQsbk50LGxOdCxPZ2UsY050LGROdCxGZ2UsdU50LHBOdCxCZ2UsaE50LGZOdCxIZ2UsbU50LGdOdCxiTnQsS2ssdk50LHhOdCx5TnQsZWYsd050LGtOdCxTTnQscWdlLF9OdCxNTnQsamdlLHpOdCxWZ2UsQ050LFlrLFROdCwkTnQsRE50LFVnZSxMTnQsZW9lLEVOdCxQTnQsSU50LEFOdCxXZ2UsTk50LHRvZSxSTnQsT050LEdnZSxGTnQsS2dlLEJOdCxITnQsWWdlLHFOdCxaZ2Usak50LGFvZSxWTnQsVU50LFdOdCx0ZixHTnQsS050LFlOdCxaTnQsWGdlLFhOdCxRZ2UsUU50LEpnZSxKTnQsZTdlLGVSdCx0N2UsdFJ0LGE3ZSxhUnQsc29lLHNSdCxpUnQsclJ0LG9SdCxzN2UsblJ0LGk3ZSxsUnQscjdlLGNSdCxvN2UsZFJ0LHVSdCxwUnQsaFJ0LGZSdCxtUnQsZ1J0LG43ZSxiUnQsbDdlLHZSdCx4UnQsYzdlLHlSdCxkN2Usd1J0LHU3ZSxrUnQsUGIsU1J0LHA3ZSxfUnQsTVJ0LGg3ZSx6UnQsZjdlLENSdCxUUnQsJFJ0LG03ZSxEUnQsTFJ0LGc3ZSxFUnQsUFJ0LElSdCxBUnQsYjdlLE5SdCx2N2UsUlJ0LHg3ZSxPUnQsRlJ0LEJSdCx5N2UsSFJ0LHc3ZSxxUnQsazdlLGpSdCxWUnQsUzdlLFVSdCxfN2UsV1J0LEdSdCxNN2UsS1J0LFlSdCxaUnQsZldhLHo3ZT1nKCgpPT57aFdhPSJmYXIiLGlnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTM2IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFBJdD1pZ2UsSUl0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLWNoZWNrIixpY29uOls0NDgsNTEyLFtdLCJmMjc0IiwiTTMyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyem0yMzAuNyA2NS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjExLjQgMzc0LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSxyZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni00OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxBSXQ9cmdlLFEzPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhc3RlIixpY29uOls1MTIsNTEyLFsiZmlsZS1jbGlwYm9hcmQiXSwiZjBlYSIsIk02NCA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC00OC0xMTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnptMTc2IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDEwNCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDUuNiAwYzguOC04LjYgMTktMTUuOCAzMC4yLTIxLjEgLjEtLjkgLjItMS45IC4yLTIuOXpNNDQ4IDQ2NGwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsMTAxLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0NjQgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDIyNGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zbC01OC41LTU4LjVjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMjg4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6Il19LE5JdD1RMyxSSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTY0IDEyOGwxNzcuNiAwYy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZsMCAxNi0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMjI0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA0OGMwIDUyLjUtMzMuNyA5Ny4xLTgwLjcgMTEzLjQgLjUtMy4xIC43LTYuMiAuNy05LjQgMC0yMC05LjItMzcuOS0yMy42LTQ5LjcgNC45LTkgNy42LTE5LjQgNy42LTMwLjMgMC0xNS4xLTUuMy0yOS0xNC00MCA4LjgtMTEgMTQtMjQuOSAxNC00MGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MHptMzItODBsMCAwYy0xOCAwLTM0LjYgNi00OCAxNkw2NCA4MEMyOC43IDgwIDAgMTA4LjcgMCAxNDRzMjguNyA2NCA2NCA2NGw4MiAwYy0xLjMgNS4xLTIgMTAuNS0yIDE2IDAgMjUuMyAxNC43IDQ3LjIgMzYgNTcuNi0yLjYgNy00IDE0LjUtNCAyMi40IDAgMjAgOS4yIDM3LjkgMjMuNiA0OS43LTQuOSA5LTcuNiAxOS40LTcuNiAzMC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC00OGMwLTkyLjgtNzUuMi0xNjgtMTY4LTE2OGwtMjQgMHpNMjU2IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwek0yNDAgMjI0YzAgNS41IC43IDEwLjkgMiAxNmwtMzQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwzMiAwIDAgMTZ6bTI0IDY0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjQgMHoiXX0sT0l0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtZXhjZWwiLGljb246WzM4NCw1MTIsW10sImYxYzMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptOTkuMiAyNjUuNmMtOC0xMC42LTIzLTEyLjgtMzMuNi00LjhzLTEyLjggMjMtNC44IDMzLjZMMTYyIDM0NCAxMjQuOCAzOTMuNmMtOCAxMC42LTUuOCAyNS42IDQuOCAzMy42czI1LjYgNS44IDMzLjYtNC44TDE5MiAzODQgMjIwLjggNDIyLjRjOCAxMC42IDIzIDEyLjggMzMuNiA0LjhzMTIuOC0yMyA0LjgtMzMuNkwyMjIgMzQ0IDI1OS4yIDI5NC40YzgtMTAuNiA1LjgtMjUuNi00LjgtMzMuNnMtMjUuNi01LjgtMzMuNiA0LjhMMTkyIDMwNCAxNjMuMiAyNjUuNnoiXX0sRkl0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNjEuNCA2NEMyNy41IDY0IDAgOTEuNSAwIDEyNS40IDAgMTI2LjMgMCAxMjcuMSAuMSAxMjhMMCAxMjggMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTYtLjEgMGMwLS45IC4xLTEuNyAuMS0yLjYgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjRMNjEuNCA2NHpNNDY0IDE5Mi4zTDQ2NCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTkxLjcgMTU0LjggMTE3LjRjMzEuNCAyMy45IDc0LjkgMjMuOSAxMDYuNCAwTDQ2NCAxOTIuM3pNNDggMTI1LjRDNDggMTE4IDU0IDExMiA2MS40IDExMmwzODkuMiAwYzcuNCAwIDEzLjQgNiAxMy40IDEzLjQgMCA0LjItMiA4LjItNS4zIDEwLjdMMjgwLjIgMjcxLjVjLTE0LjMgMTAuOC0zNC4xIDEwLjgtNDguNCAwTDUzLjMgMTM2LjFjLTMuMy0yLjUtNS4zLTYuNS01LjMtMTAuN3oiXX0sb2dlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDB6bTY0LTE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMHpNMjI0IDM1MmMtNi43IDAtMTMtMi44LTE3LjYtNy43bC0xMDQtMTEyYy02LjUtNy04LjItMTcuMi00LjQtMjUuOVMxMTAuNSAxOTIgMTIwIDE5MmwyMDggMGM5LjUgMCAxOC4yIDUuNyAyMiAxNC40czIuMSAxOC45LTQuNCAyNS45bC0xMDQgMTEyYy00LjUgNC45LTEwLjkgNy43LTE3LjYgNy43eiJdfSxCSXQ9b2dlLEhJdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxxSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5LjdDMTE4LjYgNDUuMyA1NiAxMTUuNCA1NiAyMDBsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDUuMSAzNTkuMkMxLjggMzY1IDAgMzcxLjUgMCAzNzguMiAwIDM5OS4xIDE2LjkgNDE2IDM3LjggNDE2bDM3Mi40IDBjMjAuOSAwIDM3LjgtMTYuOSAzNy44LTM3LjggMC02LjctMS44LTEzLjMtNS4xLTE5TDQyMSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM5Mi40IDM2OGwtMzM2LjkgMCAxMi45LTIyLjFDOTEuNyAzMDYgMTA0IDI2MC42IDEwNCAyMTQuNWwwLTE0LjVjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBzMTIwIDUzLjcgMTIwIDEyMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40TDM5Mi40IDM2OHpNMTU2LjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sSjM9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWVzc2FnZSIsaWNvbjpbNTEyLDUxMixbImNvbW1lbnQtYWx0Il0sImYyN2EiLCJNMjAzLjcgNTEyLjlzMCAwIDAgMGwtMzcuOCAyNi43Yy03LjMgNS4yLTE2LjkgNS44LTI0LjkgMS43UzEyOCA1MjkgMTI4IDUyMGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzMjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZsLTEyMC40IDAtOTEuOSA2NC45em02NC4zLTEwNC4xYzguMS01LjcgMTcuOC04LjggMjcuNy04LjhMNDE2IDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiA4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTYgMGMxMC40IDAgMTkuMyA2LjYgMjIuNiAxNS45IC45IDIuNSAxLjQgNS4yIDEuNCA4LjFsMCA0OS43YzMyLjctMjMuMSA2My4zLTQ0LjcgOTEuOS02NC45eiJdfSxqSXQ9SjMsbmdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZGl6enkiLGljb246WzUxMiw1MTIsWyJkaXp6eSJdLCJmNTY3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxWSXQ9bmdlLGxnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0LTg4IDAgMCA4MCA3MiAwem0xNi0xMjhsMC04MC04OCAwIDAgODAgODggMHptLTEzNiAwbDAtODAtODAgMCAwIDgwIDgwIDB6bS0xMjggMGwwLTgwLTg4IDAgMCA4MCA4OCAwek00OCAzNTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNzIgMCAwLTgwLTg4IDB6bTEzNiAwbDAgODAgODAgMCAwLTgwLTgwIDB6TTEyMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHoiXX0sVUl0PWxnZSxXSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC11cCIsaWNvbjpbMzg0LDUxMixbOTc1N10sImYwYTYiLCJNNjQgNjRsMCAxNzcuNmM1LjItMSAxMC41LTEuNiAxNi0xLjZsMTYgMCAwLTE3NmMwLTguOC03LjItMTYtMTYtMTZTNjQgNTUuMiA2NCA2NHpNODAgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgNjYuMyA1My43IDEyMCAxMjAgMTIwbDQ4IDBjNTIuNSAwIDk3LjEtMzMuNyAxMTMuNC04MC43LTMuMSAuNS02LjIgLjctOS40IC43LTIwIDAtMzcuOS05LjItNDkuNy0yMy42LTkgNC45LTE5LjQgNy42LTMwLjMgNy42LTE1LjEgMC0yOS01LjMtNDAtMTQtMTEgOC44LTI0LjkgMTQtNDAgMTRsLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtODAgMHpNMCAzMjBsMCAwYzAtMTggNi0zNC42IDE2LTQ4TDE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBzNjQgMjguNyA2NCA2NGwwIDgyYzUuMS0xLjMgMTAuNS0yIDE2LTIgMjUuMyAwIDQ3LjIgMTQuNyA1Ny42IDM2IDctMi42IDE0LjUtNCAyMi40LTQgMjAgMCAzNy45IDkuMiA0OS43IDIzLjYgOS00LjkgMTkuNC03LjYgMzAuMy03LjYgMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDkyLjgtNzUuMiAxNjgtMTY4IDE2OGwtNDggMEM3NS4yIDUxMiAwIDQzNi44IDAgMzQ0bDAtMjR6bTMzNi02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNMTYwIDI0MGM1LjUgMCAxMC45IC43IDE2IDJsMC0zNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDMyIDE2IDB6bTY0IDI0bDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjR6Il19LEdJdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk03MiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTY4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwYzQuNSAwIDguOSAxLjMgMTIuNyAzLjZsNjQgNDBjNyA0LjQgMTEuMyAxMi4xIDExLjMgMjAuNGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAuNy00Ni45LTI5LjMtMTQ1LjEgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmwxMDQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkw3MiAyMDhjLTM5LjggMC03Mi0zMi4yLTcyLTcyUzMyLjIgNjQgNzIgNjRsMjA5LjYgMGM0Ni43IDAgOTAuOSAyMS41IDExOS43IDU4LjNsNzguNCAxMDAuMWMyMC45IDI2LjcgMzIuMyA1OS43IDMyLjMgOTMuN0w1MTIgNDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA3LjljMC0yMy4yLTcuOC00NS44LTIyLjEtNjQuMUwzNjMuNSAxNTEuOWMtMTkuNy0yNS4yLTQ5LjktMzkuOS04MS45LTM5LjlMNzIgMTEyeiJdfSxLSXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWZ1bGwiLGljb246WzUxMiw1MTIsWzEyODk5NywxMjg5OTgsMTI4OTk5LDEyOWUzLDEyOTAwMSwxMjkwMDIsMTI5MDAzLDExMDM1LDExMDM2XSwiZjQ1YyIsIk00NDggNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LGNnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHoiXX0sWUl0PWNnZSxkZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYyYzUuMS0xLjMgMTAuNS0yIDE2LTJsMzIwIDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMTYyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNNDggMzIwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAzMDRjLTguOCAwLTE2IDcuMi0xNiAxNnpNMCAzMjBMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTZ6bTIxNiA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxaSXQ9ZGdlLHVnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNTZsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxYSXQ9dWdlLHBnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0Mi43YzAtNC4yLTEuNy04LjMtNC43LTExLjNMMzIwIDg2LjYgMzIwIDE3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHptODAgMGwwIDgwIDEyOCAwIDAtODAtMTI4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjhjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDMyMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LFFJdD1wZ2UsaGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc1LjkgNDAuNyAxNDIuNCAxMDEuNSAxNzguNy0zLjYtMTAuOS01LjUtMjIuNi01LjUtMzQuN2wwLTM3LjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDM3LjVjMCAxMi4xLTEuOSAyMy44LTUuNSAzNC43IDYwLjgtMzYuMyAxMDEuNS0xMDIuNyAxMDEuNS0xNzguN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjgtNzUuN2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXMxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjN6bTI2My42LTIxLjFjNC41IDYuOCAzLjEgMTUuOS0zLjEgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41ek0zMjAgNDE2bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sSkl0PWhnZSxmZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE5My4xIDMyYy0xOC43IDAtMzYuMiA5LjQtNDYuNiAyNC45TDEyMC41IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNTYuNSAwLTI2LTM5LjFDMzU1LjEgNDEuNCAzMzcuNiAzMiAzMTguOSAzMkwxOTMuMSAzMnptLTYuNyA1MS42YzEuNS0yLjIgNC0zLjYgNi43LTMuNmwxMjUuNyAwYzIuNyAwIDUuMiAxLjMgNi43IDMuNmwzMy4yIDQ5LjhjNC41IDYuNyAxMS45IDEwLjcgMjAgMTAuN2w2OS4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsNjkuMyAwYzggMCAxNS41LTQgMjAtMTAuN2wzMy4yLTQ5Ljh6TTI1NiAzODRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0xOTIgMjcyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sZUF0PWZnZSxtZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0wIDI1NmMwLTI5LjYgNS01Ny45IDE0LjItODQuNGwxNy4zIDE2LjktNC42IDI3Yy00LjIgMjQuNCA1LjYgNDYuMiAyMiA1OS45IDkuOCAxMDUuOCA5OC44IDE4OC43IDIwNy4xIDE4OC43czE5Ny40LTgyLjggMjA3LjEtMTg4LjZjMTYuNC0xMy43IDI2LjEtMzUuNCAyMi01OS45bC00LjYtMjcgMTcuMy0xNi45YzkuMiAyNi40IDE0LjIgNTQuOCAxNC4yIDg0LjQgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2ek0yNTYgNDhjLTE1LjIgMC0zMCAxLjYtNDQuMyA0LjdMMjAxLjQgMzEuOEMxOTcgMjMgMTkxLjEgMTUuOCAxODQuMiAxMC4yIDIwNyAzLjYgMjMxLjEgMCAyNTYgMHM0OSAzLjYgNzEuOCAxMC4yQzMyMC45IDE1LjggMzE1IDIzIDMxMC42IDMxLjhMMzAwLjMgNTIuN0MyODYgNDkuNiAyNzEuMiA0OCAyNTYgNDh6TTM3Mi4yIDMwMi4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0zNTMuNyA1My4xYzUuOS0xMS45IDIyLjgtMTEuOSAyOC43IDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMzY4IDIxNiAzMjEuNSAyNDAuNWMtMTEuNyA2LjItMjUuNS0zLjgtMjMuMi0xNi45bDguOS01MS44LTM3LjctMzYuN2MtOS41LTkuMy00LjMtMjUuNCA4LjktMjcuM2w1Mi03LjYgMjMuMy00Ny4yem0tMTk1LjMgMGwyMy4zIDQ3LjIgNTIgNy42YzEzLjEgMS45IDE4LjQgMTggOC45IDI3LjNsLTM3LjcgMzYuNyA4LjkgNTEuOGMyLjIgMTMuMS0xMS41IDIzLTIzLjIgMTYuOUwxNDQgMjE2IDk3LjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMmM1LjktMTEuOSAyMi44LTExLjkgMjguNyAweiJdfSx0QXQ9bWdlLGFBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDgwQzIyMi44IDgwIDE2OS4yIDEwOS42IDEyOC4xIDE0Ny43IDg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOC4xIDM2NC4zIDE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NiA1MTMgMjI2IDQ4Ni40IDE4My41IDQ0Ny45IDE0Ny43IDQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xLTQ3LjEgNDMuNy0xMTEuOCA4MC42LTE5Mi42IDgwLjZTMTQyLjUgNDQzLjIgOTUuNCAzOTkuNGMtNDYuOC00My41LTc4LjEtOTUuNC05My0xMzEuMS0zLjMtNy45LTMuMy0xNi43IDAtMjQuNiAxNC45LTM1LjcgNDYuMi04Ny43IDkzLTEzMS4xek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuMy0xLjQgNTkuNy00OS42IDEwNy45LTEwOS4zIDEwOS4zIDEzLjggMjMuOSAzOS43IDQwIDY5LjMgNDB6bS03OS42LTg4LjRjMi41IC4zIDUgLjQgNy42IC40IDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMi42LS4yLTUuMS0uNC03LjYtMzcuNCAzLjktNjcuMiAzMy43LTcxLjEgNzEuMXptNDUuNi0xMTVjMTAuOC0zIDIyLjItNC41IDMzLjktNC41IDguOCAwIDE3LjUgLjkgMjUuOCAyLjYgLjMgLjEgLjUgLjEgLjggLjIgNTcuOSAxMi4yIDEwMS40IDYzLjcgMTAxLjQgMTI1LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNjEuNiAwLTExMy00My41LTEyNS4yLTEwMS40LTEuOC04LjYtMi44LTE3LjUtMi44LTI2LjYgMC0xMSAxLjQtMjEuOCA0LTMyIC4yLS43IC4zLTEuMyAuNS0xLjkgMTEuOS00My40IDQ2LjEtNzcuNiA4OS41LTg5LjV6Il19LGdnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNDEuOCAxMi4zIDgwLjcgMzMuNiAxMTMuMyA4LjIgNDQuNyA0Ny4zIDc4LjYgOTQuMyA3OC43IDI0LjcgMTAuMyA1MS43IDE2IDgwLjEgMTYgMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4ek0yODggMzUyYy01LjUgMC0xMC45IC42LTE2IDEuOCAwLS42IDAtMS4yIDAtMS44IDAtMTYuMi00LTMxLjUtMTEuMS00NC45IDguNy0yIDE3LjgtMy4xIDI3LjEtMy4xIDQwLjIgMCA3NS43IDE5LjggOTcuNSA1MCA3LjcgMTAuOCA1LjMgMjUuOC01LjUgMzMuNXMtMjUuOCA1LjMtMzMuNS01LjVjLTEzLjEtMTguMi0zNC40LTMwLTU4LjUtMzB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODUuNCAyNzYuOGM2LjUgNy44IDEyLjYgMTYuMSAxOC4zIDI0LjYgOSAxMy40IDIwLjMgMzAuMiAyMC4zIDQ3LjQgMCAyOC4zLTIxLjUgNTEuMi00OCA1MS4ycy00OC0yMi45LTQ4LTUxLjJjMC0xNy4yIDExLjItMzQgMjAuMy00Ny40IDUuNy04LjUgMTEuOS0xNi43IDE4LjMtMjQuNiAyLjQtMi45IDUuNy00LjggOS40LTQuOHM3IDEuOSA5LjQgNC44eiJdfSxzQXQ9Z2dlLGJnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNGwwIDU2LTQ4IDBjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNDYuNyAyMC43IDgwLjQgNDMuNiAxMDMuNCA4LjEgOC4yIDE2LjUgMTQuOSAyNC4zIDIwLjQgOS4yIDYuNSAyMS43IDUuNyAzMC4xLTEuOXMxMC4yLTIwIDQuNS0yOS44Yy0zLjYtNi4zLTYuNS0xNC45LTYuNS0yNi43IDAtMzYuMiAyOS4zLTY1LjUgNjUuNS02NS41bDQ2LjUgMCAwIDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDd6bTcgOTdsMC0yMi4xIDc4LjEgNzguMS03OC4xIDc4LjEgMC0yMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0TDMzOCAxOTJjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNi0zLjMtOS40LTUuMi0xOS44LTUuMi0zMS42IDAtNjEuOSA1MC4xLTExMiAxMTItMTEybDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bS0zMjAtOGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQgMHoiXX0saUF0PWJnZSx2Z2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTI0MCA0MzJMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE3Ni04OCAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDg4ek0zODAuMSAzMjBMMjg4IDQxMi4xIDI4OCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjguMSAwek0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQyOS4zIDMzOC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6Il19LHJBdD12Z2UseGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgNDAwek03My4yIDM1Mmw2NC42IDAtNzkuNS04OC4zQzUxLjcgMjU2LjMgNDggMjQ2LjggNDggMjM2LjlMNDggMjA0YzAtMTYuMSAxMS45LTI5LjUgMjcuNC0zMS43IDExLjgtMS43IDIwLjYtMTEuOCAyMC42LTIzLjhMOTYgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjQgNy4yIDAgMTMuNiAzLjEgMTggOC4xIDQuNiA1LjIgMTEuMSA4LjEgMTggOC4xczEzLjQtMyAxOC04LjFjNC40LTUgMTAuOC04LjEgMTgtOC4xIDguNSAwIDE1LjkgNC40IDIwLjIgMTEuMSA2LjkgMTAuNyAyMC45IDE0LjIgMzIgOCAzLjUtMS45IDcuNC0zLjEgMTEuOC0zLjEgMTAuNiAwIDE5LjcgNi45IDIyLjggMTYuNiAzLjggMTEuNyAxNS45IDE4LjcgMjggMTYgMS43LS40IDMuNC0uNiA1LjItLjYgMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA5Mi4yYzAgMTQuNC0zLjUgMjguNS0xMC4yIDQxLjJsLTUyLjIgOTguNiA1NC4zIDAgNDAuMy03Ni4yYzEwLjQtMTkuNiAxNS44LTQxLjUgMTUuOC02My42bDAtOTIuMmMwLTM4LjQtMzAuMS02OS44LTY4LjEtNzEuOS0xMi45LTE5LjMtMzQuOS0zMi4xLTU5LjktMzIuMS01LjcgMC0xMS4yIC43LTE2LjUgMS45LTEyLjctMTEuMS0yOS4zLTE3LjktNDcuNS0xNy45LTEzLjEgMC0yNS40IDMuNS0zNiA5LjYtMTAuNi02LjEtMjIuOS05LjYtMzYtOS42LTM5LjggMC03MiAzMi4yLTcyIDcybDAgNTguN0MxOS43IDE0MyAwIDE3MS4yIDAgMjA0bDAgMzIuOWMwIDIxLjcgOCA0Mi43IDIyLjYgNTguOUw3My4yIDM1MnoiXX0sb0F0PXhnZSxuQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTMyNS4zIDkwLjhjOS4xLTQuOCAyMC42LTMuMyAyOC4yIDQuM2wzOS44IDM5LjggMy43IDMuM2M5LjEgNy4xIDIwLjkgMTAgMzIuNCA3LjdsNDYuNC05LjMgMy41LS40YzgtLjQgMTUuOCAzLjIgMjAuNiA5LjggNS41IDcuNiA2LjEgMTcuNiAxLjYgMjUuOGwtMTEyLjYgMjAyLjYgNTEuNSA3MC45IDEuOCAyLjdjNCA2LjYgNi4yIDE0LjIgNi4yIDIyIDAgMjMuMy0xOC45IDQyLjEtNDIuMSA0Mi4xbC0yOTkuOCAwYy0yMS44IDAtMzkuOC0xNi42LTQxLjktMzcuOGwtLjItNC4zIC4xLTMuM2MuNi03LjcgMy40LTE1LjEgNy45LTIxLjRsNTEuNS03MC45LTExMi41LTIwMi42Yy00LjUtOC4yLTMuOS0xOC4zIDEuNi0yNS44czE0LjktMTEuMiAyNC4xLTkuNGw0Ni40IDkuM2MxMy4xIDIuNiAyNi43LTEuNSAzNi4xLTEwLjlMMTU5LjUgOTUgMTYzIDkyLjJjOC42LTUuOCAyMC4xLTUuNiAyOC41IDEuMWw0MCAzMiAyLjggMi4xYzE0LjQgOS42IDMzLjUgOC45IDQ3LjItMi4xbDQwLTMyIDMuOC0yLjV6TTE2NC43IDQwMGwtNDYuNiA2NCAyNzYuNyAwLTQ2LjYtNjQtMTgzLjYgMHpNMzExLjUgMTYyLjhjLTMwLjEgMjQuMS03Mi4xIDI1LjYtMTAzLjggNC41bC02LjItNC41LTIzLjMtMTguNi0yNC42IDI0LjZjLTE5LjggMTkuOC00Ny43IDI4LjktNzUuMSAyNC44bDg4LjEgMTU4LjUgMTc5LjggMCA4OC0xNTguNWMtMjUuNyAzLjgtNTEuNy0zLjktNzEuMS0yMWwtNC0zLjctMjQuNi0yNC42LTIzLjIgMTguNnpNMjU2LjUgNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgweiJdfSx5Z2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRlYXJzIixpY29uOls2NDAsNTEyLFsxMjg1MTQsImdyaW4tdGVhcnMiXSwiZjU4OCIsIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnoiXX0sbEF0PXlnZSx3Z2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGVuLXRvLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImVkaXQiXSwiZjA0NCIsIk00NDEgNTguOUw0NTMuMSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw0MjQgMTM0LjEgMzc3LjkgODggNDA3IDU4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6TTIwOS44IDI1Ni4yTDM0NCAxMjEuOSAzOTAuMSAxNjggMjU1LjggMzAyLjJjLTIuOSAyLjktNi41IDUtMTAuNCA2LjFsLTU4LjUgMTYuNyAxNi43LTU4LjVjMS4xLTMuOSAzLjItNy41IDYuMS0xMC40ek0zNzMuMSAyNUwxNzUuOCAyMjIuMmMtOC43IDguNy0xNSAxOS40LTE4LjMgMzEuMWwtMjguNiAxMDBjLTIuNCA4LjQtLjEgMTcuNCA2LjEgMjMuNnMxNS4yIDguNSAyMy42IDYuMWwxMDAtMjguNmMxMS44LTMuNCAyMi41LTkuNyAzMS4xLTE4LjNMNDg3IDEzOC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEw0NzQuOSAyNUM0NDYuOC0zLjEgNDAxLjItMy4xIDM3My4xIDI1ek04OCA2NEMzOS40IDY0IDAgMTAzLjQgMCAxNTJMMCA0MjRjMCA0OC42IDM5LjQgODggODggODhsMjcyIDBjNDguNiAwIDg4LTM5LjQgODgtODhsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBMODggNDY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTI3MmMwLTIyLjEgMTcuOS00MCA0MC00MGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NHoiXX0sY0F0PXdnZSxrZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTMwLjIgMTUuOWMtOC44LTEwLjctMTguNS0yMC45LTI5LTMwLTMtMi42LTcuNC0yLjYtMTAuNCAwLTEwLjUgOS4xLTIwLjEgMTkuMy0yOSAzMC0xNC43IDE3LjgtMjkuOCA0MC4xLTI5LjggNjQuMSAwIDM2LjQgMjcuNiA2NCA2NCA2NHM2NC0yNy42IDY0LTY0YzAtMjQtMTUuMi00Ni4zLTI5LjgtNjQuMXptLTEzMiA4LjlDMzY0LjggOC45IDMyNy40IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMTQuNiAzMiAyNTZTMTQ2LjYgNTEyIDI4OCA1MTIgNTQ0IDM5Ny40IDU0NCAyNTZjMC0yNC40LTMuNC00OC05LjgtNzAuNC0xMS45IDQuMi0yNC43IDYuNC0zOC4yIDYuNC0zLjQgMC02LjgtLjEtMTAuMi0uNCA2LjYgMjAuMyAxMC4yIDQxLjkgMTAuMiA2NC40IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM4MCAzNzAuOSA4MCAyNTYgMTczLjEgNDggMjg4IDQ4YzM0LjggMCA2Ny41IDguNSA5Ni4zIDIzLjYgMS40LTE3LjQgNi45LTMzLjEgMTMuOC00Ni44ek00MjMuOCAzMjBjNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDE5LjggNTUuOSA3My4xIDk1LjkgMTM1LjggOTUuOSA2Mi43IDAgMTE2LTQwLjEgMTM1LjgtOTZ6TTE4MCAyMDhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6bTE4OC0yOGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6Il19LGRBdD1rZ2UsU2dlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sdUF0PVNnZSxfZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LHBBdD1fZ2UsaEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNMjkwLjUgMjg3LjdMNDkxLjQgODYuOSAzNTkgNDU2LjMgMjkwLjUgMjg3Ljd6TTQ1Ny40IDUzTDI1Ni42IDI1My44IDg4IDE4NS4zIDQ1Ny40IDUzek0zOC4xIDIxNi44bDIwNS44IDgzLjYgODMuNiAyMDUuOGM1LjMgMTMuMSAxOC4xIDIxLjcgMzIuMyAyMS43IDE0LjcgMCAyNy44LTkuMiAzMi44LTIzLjFMNTcwLjYgOGMzLjUtOS44IDEtMjAuNi02LjMtMjhzLTE4LjItOS44LTI4LTYuM0wzOS40IDE1MS43Yy0xMy45IDUtMjMuMSAxOC4xLTIzLjEgMzIuOCAwIDE0LjIgOC42IDI3IDIxLjcgMzIuM3oiXX0sZkF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYXJ0IixpY29uOls1MTIsNTEyLFsxMjgxNTMsMTI4MTU0LDEyODE1NSwxMjgxNTYsMTI4NDIwLDEyOTI5MywxMjkyOTQsMTI5NTA1LDk4MjksMTAwODQsNjE1NzhdLCJmMDA0IiwiTTM3OC45IDgwYy0yNy4zIDAtNTMgMTMuMS02OSAzNS4ybC0zNC40IDQ3LjZjLTQuNSA2LjItMTEuNyA5LjktMTkuNCA5LjlzLTE0LjktMy43LTE5LjQtOS45bC0zNC40LTQ3LjZjLTE2LTIyLjEtNDEuNy0zNS4yLTY5LTM1LjItNDcgMC04NS4xIDM4LjEtODUuMSA4NS4xIDAgNDkuOSAzMiA5OC40IDY4LjEgMTQyLjMgNDEuMSA1MCA5MS40IDk0IDEyNS45IDEyMC4zIDMuMiAyLjQgNy45IDQuMiAxNCA0LjJzMTAuOC0xLjggMTQtNC4yYzM0LjUtMjYuMyA4NC44LTcwLjQgMTI1LjktMTIwLjMgMzYuMi00My45IDY4LjEtOTIuNCA2OC4xLTE0Mi4zIDAtNDctMzguMS04NS4xLTg1LjEtODUuMXpNMjcxIDg3LjFjMjUtMzQuNiA2NS4yLTU1LjEgMTA3LjktNTUuMSA3My41IDAgMTMzLjEgNTkuNiAxMzMuMSAxMzMuMSAwIDY4LjYtNDIuOSAxMjguOS03OS4xIDE3Mi44LTQ0LjEgNTMuNi05Ny4zIDEwMC4xLTEzMy44IDEyNy45LTEyLjMgOS40LTI3LjUgMTQuMS00My4xIDE0LjFzLTMwLjgtNC43LTQzLjEtMTQuMUMxNzYuNCA0MzggMTIzLjIgMzkxLjUgNzkuMSAzMzggNDIuOSAyOTQuMSAwIDIzMy43IDAgMTY1LjEgMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43eiJdfSxacmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6TTgwIDQwMGwwLTI1NiAzNTYuNCAwLTQ4LjIgMTA4LjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHoiXX0sbUF0PVpyZSxnQXQ9WnJlLGJBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0eiJdfSx2QXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTk3LjUgNDAwbDUwLTE2MCAzNzkuNCAwLTUwIDE2MC0zNzkuNCAwem0xOTAuNyA0OEw0NzcgNDQ4YzIxIDAgMzkuNi0xMy42IDQ1LjgtMzMuN2w1MC0xNjBjOS43LTMwLjktMTMuNC02Mi4zLTQ1LjgtNjIuM2wtMzc5LjQgMGMtMjEgMC0zOS42IDEzLjYtNDUuOCAzMy43TDgwLjIgMjk0LjQgODAuMiA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjgyLjkgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2bDExNy4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDQ4IDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzMwLjkgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI3My4zIDQ0LjhDMjYyLjIgMzYuNSAyNDguOCAzMiAyMzQuOSAzMkw5Ni4yIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMHoiXX0seEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSx5QXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMjg1LjctMTUuOGMxMC44IDIuNiAxOC40IDEyLjIgMTguNCAyMy4zbDAgMzg3LjFjMCA5LTUuMSAxNy4zLTEzLjEgMjEuNEwxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM0wxOTMuMSAxMjUuMyAyNTguOC0zLjNjNS05LjkgMTYuMi0xNSAyNy0xMi40ek0yNTYuMSAxMDcuNEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDkyLjItNDYuOSAwLTI3Mi42eiJdfSx3QXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTQwMi42IDUwLjJjLTUuNCAxLjctMTEuMyAxLjgtMTYuMi0uOS01LjgtMy4yLTExLjgtNi4yLTE3LjgtOC45LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMy44LTUuNS03LjgtMTAuOC0xMi0xNi0zLjUtNC40LTQuNS0xMC4yLTMuOC0xNS44IC4yLTEuOSAuNC0zLjkgLjQtNS45IDAtMjYuMS0yMS4yLTQ3LjItNDcuMi00Ny4yLTQuOSAwLTkuNyAuOC0xNC4yIDIuMnpNMzIuNSAxMzIuOWMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNi4xIDIuOC0xMiA1LjctMTcuOCA4LjktNC45IDIuNy0xMC45IDIuNi0xNi4yIC45LTQuNS0xLjQtOS4yLTIuMi0xNC4yLTIuMi0yNi4xIDAtNDcuMiAyMS4yLTQ3LjIgNDcuMiAwIDIgLjEgNCAuNCA1LjkgLjcgNS42LS4zIDExLjQtMy44IDE1LjgtNC4yIDUuMi04LjIgMTAuNS0xMiAxNnpNNDMyIDI4OGExNzYgMTc2IDAgMSAwIC0zNTIgMCAxNzYgMTc2IDAgMSAwIDM1MiAwek0zOTYuNSA0NjIuNUMzNTguMSA0OTMuNCAzMDkuMiA1MTIgMjU2IDUxMnMtMTAyLjEtMTguNi0xNDAuNS00OS41TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Mi41LTQyLjVDNTAuNiAzOTAuMSAzMiAzNDEuMiAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTMuMi0xOC42IDEwMi4xLTQ5LjUgMTQwLjVMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Mi41LTQyLjV6TTI4MCAxODRsMCA5NC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy00LjUtNC41LTctMTAuNi03LTE3bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LGtBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFhyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3NwaXRhbCIsaWNvbjpbNTc2LDUxMixbMTI3OTczLDYyNTg5LCJob3NwaXRhbC1hbHQiLCJob3NwaXRhbC13aWRlIl0sImYwZjgiLCJNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEwxNzYgMHpNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI3MmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI3MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTcyek0xMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTk2IDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMjAgMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNi0xMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDEwNGwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sU0F0PVhyZSxfQXQ9WHJlLE1nZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTkybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTQ4IDExMmwwLTk2IDk2IDAgMCA5Ni05NiAweiJdfSxNQXQ9TWdlLHpBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk00OC4yIDY2LjhjLS4xLS44LS4yLTEuNy0uMi0yLjVsMC0uMmMwLTguOCA3LjItMTYgMTYtMTYgLjkgMCAxLjkgLjEgMi44IC4yIDcuNSAxLjMgMTMuMiA3LjkgMTMuMiAxNS44IDAgOC44LTcuMiAxNi0xNiAxNi03LjkgMC0xNC41LTUuNy0xNS44LTEzLjJ6TTAgNjRjMCAyNi45IDE2LjUgNDkuOSA0MCA1OS4zbDAgMTA1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NHptMzY4IDBhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMzI0LjcgODhjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAxMDUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTIwMS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMTA1LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMjAxLjMgMHpNMzg0IDI3MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTgwIDI4OGMwIDcuOS01LjcgMTQuNS0xMy4yIDE1LjgtLjggLjEtMS43IC4yLTIuNSAuMmwtLjIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtLjkgLjEtMS45IC4yLTIuOCAxLjMtNy41IDcuOS0xMy4yIDE1LjgtMTMuMiA4LjggMCAxNiA3LjIgMTYgMTZ6bTQzNi43LTQwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTIwLjctNDggMCAwIDIwLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MGwtNTIuNyAwIDAgOS42YzEwLjcgMTAuOSAxOS4xIDIzLjkgMjQuNiAzOC40bDI4IDB6bTU5LjMtOGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6TTI3MS44IDQ1MC43YTE2IDE2IDAgMSAxIC0zMS41LTUuNSAxNiAxNiAwIDEgMSAzMS41IDUuNXptMzAxLjUgMTNjLTcuNS0xLjMtMTMuMi03LjktMTMuMi0xNS44IDAtOC44IDcuMi0xNiAxNi0xNiA3LjkgMCAxNC41IDUuNyAxNS44IDEzLjJsMCAuMWMuMSAuOSAuMiAxLjggLjIgMi43IDAgOC44LTcuMiAxNi0xNiAxNi0uOSAwLTEuOS0uMS0yLjgtLjJ6Il19LENBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50IixpY29uOls1MTIsNTEyLFsxMjg0ODksNjE2NjldLCJmMDc1IiwiTTUxLjkgMzg0LjlDMTkuMyAzNDQuNiAwIDI5NC40IDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MCAzOTcuNCA0ODAgMjU2IDQ4MGMtMzYuNSAwLTcxLjItNy4yLTEwMi42LTIwTDM3IDUwOS45Yy0zLjcgMS42LTcuNSAyLjEtMTEuNSAyLjEtMTQuMSAwLTI1LjUtMTEuNC0yNS41LTI1LjUgMC00LjMgMS4xLTguNSAzLjEtMTIuMmw0OC44LTg5LjR6bTM3LjMtMzAuMmMxMi4yIDE1LjEgMTQuMSAzNi4xIDQuOCA1My4ybC0xOCAzMy4xIDU4LjUtMjUuMWMxMS44LTUuMSAyNS4yLTUuMiAzNy4xLS4zIDI1LjcgMTAuNSA1NC4yIDE2LjQgODQuMyAxNi40IDExNy44IDAgMjA4LTg4LjggMjA4LTE5MlMzNzMuOCA0OCAyNTYgNDggNDggMTM2LjggNDggMjQwYzAgNDIuOCAxNS4xIDgyLjQgNDEuMiAxMTQuN3oiXX0sVEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LjYtOS4zIDUyLjktMjQuOSA3My4yIDkuOCAzIDE2LjkgMTIuMSAxNi45IDIyLjggMCAxMy4zLTEwLjcgMjQtMjQgMjRsLS42IDAgMjQuNiAxNjAgNTMuNiA2N2M2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNjMuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZsNTMuNi02NyAyNC42LTE2MC0uNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjggNy4xLTE5LjggMTYuOS0yMi44LTE1LjYtMjAuMy0yNC45LTQ1LjYtMjQuOS03My4yIDAtNjYuMyA1My43LTEyMCAxMjAtMTIwek0xMTUuOSA0MDBsLTUxLjIgNjQgMjU0LjcgMC01MS4yLTY0LTE1Mi4yIDB6bTM2LjItMTg0LjdsLTIxIDEzNi43IDEyMS45IDAtMjEtMTM2LjctMS4xLTcuMy03Ny42IDAtMS4xIDcuM3pNMTkyIDE2YTcyIDcyIDAgMSAwIDAgMTQ0IDcyIDcyIDAgMSAwIDAtMTQ0eiJdfSwkQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xMDQgNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sREF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0yMzIgOTZsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptMCA0OGMzNy4xIDAgNjcuNi0yOCA3MS42LTY0TDMyMCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzNTJjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNi40IDBjNCAzNiAzNC41IDY0IDcxLjYgNjRsODAgMHpNMjkxLjkgMzJDMjc5IDEyLjcgMjU3IDAgMjMyIDBMMTUyIDBjLTI1IDAtNDcgMTIuNy01OS45IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTI4LjEgMHoiXX0sTEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM2MCAzMmw3LjQgLjRjMzUgMy42IDYyLjUgMzIuMiA2NC40IDY3LjcgMTcuOCAxMS44IDMwLjEgMzEuNCAzMiA1My45bC4yIDZjMCA1LjctLjcgMTEuMi0yIDE2LjUgMTAuMiAxMS41IDE2LjggMjYuMyAxNy44IDQyLjdsLjIgNC44YzAgMTMuMi0zLjYgMjUuNC05LjggMzYgNC45IDguNCA4LjIgMTcuOSA5LjMgMjhsLjQgOGMwIDM3LjMtMjguMyA2Ny45LTY0LjYgNzEuNmwtNy40IC40LTEwOS43IDAgMTQuMSAzMCAzLjEgNy42YzEyLjUgMzUuNy0xLjggNzUuNS0zNC4yIDk1bC03LjIgMy45Yy0zNy41IDE3LjYtODEuNyAzLjYtMTAyLjYtMzEuMmwtLjYtLjktMi43LTUtLjYtMS4yLTMwLjEtNjRjLTkuNCAxNy44LTI4IDI5LjktNDkuNSAyOS45bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDE1MmMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEyLjQgMCAyMy45IDQuMSAzMy4yIDExIDEzLjItMjEuNCAzMi0zOS40IDU1LTUxLjZsMTIuMi02LjUgLjctLjMgNi42LTMuMiAuNy0uMyA3LjEtM2MxNi43LTYuNiAzNC41LTkuOSA1Mi42LTkuOUwzNjAgMzJ6TTI1NS45IDgwYy0xMiAwLTIzLjkgMi4zLTM1LjEgNi42bC00LjcgMi01LjMgMi42IDAgMC0xMi4yIDYuNWMtMjkuMiAxNS41LTQ4LjMgNDQuOS01MC43IDc3LjZsLS4yIDggMCAxMTIuOSAuMSA0LjFjLjUgOC4yIDIuNSAxNi4yIDYgMjMuN2w1Ni44IDEyMC45IDIuMSAzLjhjOC40IDEzLjcgMjYgMTkuMSA0MC44IDEyLjJsMi45LTEuNmMxMy03LjggMTguNy0yMy43IDEzLjctMzhsLTEuMi0zLTMwLjItNjQuMmMtMy41LTcuNC0yLjktMTYuMSAxLjUtMjMuMXMxMi0xMS4xIDIwLjItMTEuMWwxNDcuNSAwIDIuNC0uMWMxMS4zLTEuMSAyMC4zLTEwLjEgMjEuNC0yMS40bC4xLTIuNWMwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM0LjQtMy45IDcuNC05LjMgOC0xNS4zbC4yLTIuN2MwLTguNC00LjQtMTUuOS0xMS4yLTIwLjItMTAuNy02LjktMTQuMi0yMC45LTgtMzIgMS41LTIuNiAyLjUtNS42IDIuOS04LjZsLjItMy4yYzAtMTAuNi02LjktMTkuNi0xNi42LTIyLjgtMTEuNy0zLjgtMTguNy0xNS45LTE2LTI4IC4yLS45IC4zLTEuOCAuNC0yLjZsLjItMi42YzAtMTIuNC05LjUtMjIuNi0yMS42LTIzLjhMMzYwIDgwIDI1NS45IDgwek01NiAxNDRjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAweiJdfSxFQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNMjU2IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzMjBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDE2Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LHpnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sUEF0PXpnZSxJQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk0yMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCA4MS44IDk4LjFjMjQuNyAyOS42IDM4LjIgNjcgMzguMiAxMDUuNiAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZsLTguNiA4LjYgNDYuNSA1OC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw0Ny40IDUxMkMyMS4yIDUxMiAwIDQ5MC44IDAgNDY0LjYgMCA0NTMuOSAzLjcgNDQzLjQgMTAuNCA0MzVsNDYuNS01OC4yLTguNi04LjZDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTIwIDQ4IDEwNCA0OEM5MC43IDQ4IDgwIDM3LjMgODAgMjRTOTAuNyAwIDEwNCAwTDIxNiAwek05NC40IDQwNi44bC00NS43IDU3LjIgMjIyLjcgMC00NS43LTU3LjEtNS41LTYuOS0xMjAuMyAwLTUuNSA2Ljh6TTE1Ni45IDc4LjdMNzUuMSAxNzYuOGMtMTUuMyAxOC40LTI0LjYgNDEtMjYuNyA2NC43TDQ4IDI1MS43YzAgMzEgMTIuMyA2MC43IDM0LjIgODIuN2wxNy43IDE3LjcgMTIwLjIgMGM2LjItNi4yIDEyLjEtMTIuMSAxNy44LTE3LjcgMjEuOS0yMS45IDM0LjItNTEuNiAzNC4yLTgyLjZsLS40LTEwLjJjLTEuNS0xNy02LjctMzMuMy0xNS4yLTQ4TDIwOSAyNDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTEuOC01MS44LTYzLjctNzYuNS0zLjEtMy44LTMuMSAzLjh6Il19LEFBdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNTEyIDQxNmMwIDM1LjMtMjguNSA2NC02My45IDY0TDY0IDQ4MGMtMzUuNCAwLTY0LTI4LjctNjQtNjRMMCAxNjRjLjEtMTUuNSA3LjgtMzAgMjAuNS0zOC44TDIwNi0yLjdjMzAuMS0yMC43IDY5LjgtMjAuNyA5OS45IDBMNDkxLjUgMTI1LjJjMTIuOCA4LjggMjAuNCAyMy4zIDIwLjUgMzguOGwwIDI1MnpNNjQgNDMybDM4NC4xIDBjOC44IDAgMTUuOS03LjEgMTUuOS0xNmwwLTE5MS43LTE1NC44IDExNy40Yy0zMS40IDIzLjktNzQuOSAyMy45LTEwNi40IDBMNDggMjI0LjMgNDggNDE2YzAgOC45IDcuMiAxNiAxNiAxNnpNNDYzLjYgMTY0LjRMMjc4LjcgMzYuOGMtMTMuNy05LjQtMzEuNy05LjQtNDUuNCAwTDQ4LjQgMTY0LjQgMjMxLjggMzAzLjVjMTQuMyAxMC44IDM0LjEgMTAuOCA0OC40IDBMNDYzLjYgMTY0LjR6Il19LHVoPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sTkF0PXVoLFJBdD11aCxDZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIyNCA2NGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0sT0F0PUNnZSxGQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTkuNCA0MzJsLTEzNC44IDBjLTE1LjggMC0yOC42LTEyLjgtMjguNi0yOC42IDAtNi40IDIuMS0xMi41IDYtMTcuNmw2Ny42LTg2LjlDMTc1IDI5MiAxODMuMyAyODggMTkyIDI4OHMxNyA0IDIyLjQgMTAuOUwyODIgMzg1LjljMy45IDUgNiAxMS4yIDYgMTcuNiAwIDE1LjgtMTIuOCAyOC42LTI4LjYgMjguNnpNMTEyIDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFRnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtcmlnaHQiXSwiZjE1MiIsIk00MDAgOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMHpNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42eiJdfSxCQXQ9VGdlLEViPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN1biIsaWNvbjpbNTc2LDUxMixbOTcyOF0sImYxODUiLCJNMjg4LTMyYzggMCAxNS40IDQgMTkuOSAxMC42bDU4LjggODcuNCAxMDMuNC0yMC4yYzcuOC0xLjUgMTUuOSAuOSAyMS42IDYuNnM4LjEgMTMuOCA2LjYgMjEuNkw0NzggMTc3LjMgNTY1LjQgMjM2LjFDNTcyIDI0MC41IDU3NiAyNDggNTc2IDI1NnMtNCAxNS40LTEwLjYgMTkuOUw0NzggMzM0LjcgNDk4LjIgNDM4YzEuNSA3LjgtLjkgMTUuOS02LjYgMjEuNnMtMTMuOCA4LjEtMjEuNiA2LjZMMzY2LjcgNDQ2IDMwNy45IDUzMy40QzMwMy40IDU0MCAyOTYgNTQ0IDI4OCA1NDRzLTE1LjQtNC0xOS45LTEwLjZMMjA5LjMgNDQ2IDEwNS45IDQ2Ni4yYy03LjggMS41LTE1LjktLjktMjEuNi02LjZzLTguMS0xMy44LTYuNi0yMS42TDk4IDMzNC43IDEwLjYgMjc1LjlDNCAyNzEuNCAwIDI2NCAwIDI1NnM0LTE1LjQgMTAuNi0xOS45TDk4IDE3Ny4zIDc3LjggNzMuOWMtMS41LTcuOCAuOS0xNS45IDYuNi0yMS42czEzLjgtOC4xIDIxLjYtNi42bDEwMy4zIDIwLjIgNTguOC04Ny40IDEuOC0yLjNDMjc0LjQtMjkgMjgxLTMyIDI4OC0zMnptLTQ3LjggMTM4Yy01LjQgOC0xNSAxMi0yNC41IDEwLjJsLTg0LTE2LjQgMTYuNCA4NGMxLjggOS41LTIuMiAxOS4xLTEwLjIgMjQuNUw2NyAyNTYgMTM4IDMwMy44YzggNS40IDEyIDE1IDEwLjIgMjQuNWwtMTYuNCA4NCA4NC0xNi40IDMuNS0uNGM4LjMtLjQgMTYuMyAzLjYgMjEgMTAuNmw0Ny44IDcxIDQ3LjgtNzEgMi4yLTIuOGM1LjYtNi4xIDE0LTkgMjIuMy03LjNsODQgMTYuNC0xNi40LTg0Yy0xLjgtOS41IDIuMi0xOS4xIDEwLjItMjQuNWw3MS00Ny44LTcxLTQ3LjhjLTgtNS40LTEyLTE1LTEwLjItMjQuNWwxNi40LTg0LTg0IDE2LjRjLTkuNSAxLjgtMTkuMS0yLjItMjQuNS0xMC4ybC00Ny44LTcxLTQ3LjggNzF6TTI4OCAzNzZhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0wLTE5MmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHoiXX0sSEF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlIixpY29uOls0NDgsNTEyLFtdLCJmMDNlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xMjggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMzYgNzJjOC41IDAgMTYuNCA0LjUgMjAuNyAxMS44bDgwIDEzNmM0LjQgNy40IDQuNCAxNi42IC4xIDI0LjFTMzUyLjYgMzg0IDM0NCAzODRsLTI0MCAwYy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDE3LjIgMjQuNiA0Ni41LTc5YzQuMy03LjMgMTIuMi0xMS44IDIwLjctMTEuOHoiXX0scUF0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZ2h0YnVsYiIsaWNvbjpbMzg0LDUxMixbMTI4MTYxXSwiZjBlYiIsIk0yOTYuNSAyOTEuMUMzMjEgMjY1LjIgMzM2IDIzMC40IDMzNiAxOTIgMzM2IDExMi41IDI3MS41IDQ4IDE5MiA0OFM0OCAxMTIuNSA0OCAxOTJjMCAzOC40IDE1IDczLjIgMzkuNSA5OS4xIDIxLjMgMjIuNCA0NC45IDU0IDUzLjMgOTIuOWwxMDIuNCAwYzguNC0zOSAzMi03MC41IDUzLjMtOTIuOXptMzQuOCAzM0MzMDcuNyAzNDkgMjg4IDM3OS40IDI4OCA0MTMuN2wwIDE4LjNjMCA0NC4yLTM1LjggODAtODAgODBsLTMyIDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTguM0M5NiAzNzkuNCA3Ni4zIDM0OSA1Mi43IDMyNC4xIDIwIDI4OS43IDAgMjQzLjIgMCAxOTIgMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyYzAgNTEuMi0yMCA5Ny43LTUyLjcgMTMyLjF6TTE0NCAxODRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQweiJdfSxRcmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LGpBdD1RcmUsVkF0PVFyZSwkZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg0IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFVBdD0kZ2UsV0F0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1hcCIsaWNvbjpbNTEyLDUxMixbMTI4NTA2LDYyMDcyXSwiZjI3OSIsIk01MTIgNDhjMC04LjMtNC4zLTE2LTExLjMtMjAuNHMtMTUuOS00LjgtMjMuMy0xLjFMMzUyLjUgODguMSAxODAgMjkuNGMtMTMuNy00LjctMjguNy0zLjgtNDEuOSAyLjNMMTMuOCA5MC4zQzUuNCA5NC4yIDAgMTAyLjcgMCAxMTJMMCA0NjRjMCA4LjIgNC4yIDE1LjkgMTEuMSAyMC4zczE1LjYgNC45IDIzLjEgMS40bDEyNy4zLTU5LjkgMTcwLjcgNTYuOWMxMy43IDQuNiAyOC41IDMuNyA0MS42LTIuNWwxMjQuNC01OC41YzguNC00IDEzLjgtMTIuNCAxMy44LTIxLjdsMC0zNTJ6TTE0NCA4Mi4xbDAgMjk5LTk2IDQ1LjIgMC0yOTkgOTYtNDUuMnptNDggMzAzLjNsMC0zMDEuMSAxMjggNDMuNSAwIDMwMC4zLTEyOC00Mi43ek0zNjggMTM0bDk2LTQ3LjQgMCAyOTguMi05NiA0NS4yIDAtMjk2eiJdfSxHQXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTY0IDQ0OGwwLTE3Ny42YzUuMiAxIDEwLjUgMS42IDE2IDEuNmwxNiAwIDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2ek04MCAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsNDggMGM1Mi41IDAgOTcuMSAzMy43IDExMy40IDgwLjctMy4xLS41LTYuMi0uNy05LjQtLjctMjAgMC0zNy45IDkuMi00OS43IDIzLjYtOS00LjktMTkuNC03LjYtMzAuMy03LjYtMTUuMSAwLTI5IDUuMy00MCAxNC0xMS04LjgtMjQuOS0xNC00MC0xNGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC04MCAwek0wIDE5MmwwIDBjMCAxOCA2IDM0LjYgMTYgNDhsMCAyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTgyYzUuMSAxLjMgMTAuNSAyIDE2IDIgMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2IDcgMi42IDE0LjUgNCAyMi40IDQgMjAgMCAzNy45LTkuMiA0OS43LTIzLjYgOSA0LjkgMTkuNCA3LjYgMzAuMyA3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OEMzODQgNzUuMiAzMDguOCAwIDIxNiAwTDE2OCAwQzc1LjIgMCAwIDc1LjIgMCAxNjhsMCAyNHptMzM2IDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0ek0xNjAgMjcyYzUuNSAwIDEwLjktLjcgMTYtMmwwIDM0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzIgMTYgMHptNjQtMjRsMC00MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yNHoiXX0sRGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoLWJsYW5rIixpY29uOls1MTIsNTEyLFsxMjg1NjYsIm1laC1ibGFuayJdLCJmNWE0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZhMjU2IDI1NiAwIDEgMSAtNTEyIDAgMjU2IDI1NiAwIDEgMSA1MTIgMHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxLQXQ9RGdlLExnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNzQuMSAzOC44IDEzOS4yIDk3LjEgMTc2LS43LTUuMi0xLjEtMTAuNi0xLjEtMTZsMC01My41Yy0xMC4yLTEyLjYtMTguMy0yNi45LTIzLjgtNDIuNC00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTUuNSAxNS42LTEzLjYgMjkuOS0yMy44IDQyLjVsMCA1My41YzAgNS40LS40IDEwLjgtMS4xIDE2IDU4LjQtMzYuOCA5Ny4xLTEwMS45IDk3LjEtMTc2em00OCAwYzAgMTE2LjMtNzcuNiAyMTQuNi0xODMuOSAyNDUuNy0xOS41IDE2LjQtNDQuNiAyNi4zLTcyLjEgMjYuM3MtNTIuNi05LjktNzIuMS0yNi4zQzc3LjYgNDcwLjYgMCAzNzIuMyAwIDI1NiAwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYgMjA4bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sWUF0PUxnZSxKcmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNMzg3IDIyOC4zYy00LjQtMi44LTcuNi03LTkuMi0xMS45cy0xLjQtMTAuMiAuNS0xNUw0MTEuNiAxMThjLTE5LjktMjIuNC00NC42LTQwLjUtNzIuNC01Mi43bC02OS4xIDU3LjZjLTQgMy4zLTkgNS4xLTE0LjEgNS4xcy0xMC4yLTEuOC0xNC4xLTUuMUwxNzIuOCA2NS4zYy0yNy44IDEyLjItNTIuNSAzMC4zLTcyLjQgNTIuN2wzMy40IDgzLjRjMS45IDQuOCAyLjEgMTAuMSAuNSAxNXMtNC45IDkuMS05LjIgMTEuOUw0OSAyNzYuMmMzIDMwLjkgMTIuNyA1OS43IDI3LjYgODUuMmw4OS43LTZjNS4yLS4zIDEwLjMgMS4xIDE0LjUgNC4yczcuMiA3LjQgOC40IDEyLjVsMjIgODcuMmMxNC40IDMuMiAyOS40IDQuOCA0NC44IDQuOHMzMC4zLTEuNyA0NC44LTQuOGwyMi04Ny4yYzEuMy01IDQuMi05LjQgOC40LTEyLjVzOS4zLTQuNSAxNC41LTQuMmw4OS43IDZjMTUtMjUuNCAyNC43LTU0LjMgMjcuNi04NS4xTDM4NyAyMjguM3pNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyem02MiAyMjFjOC40IDYuMSAxMS45IDE2LjkgOC43IDI2LjhsLTE4LjMgNTYuM2MtMy4yIDkuOS0xMi40IDE2LjYtMjIuOCAxNi42bC01OS4yIDBjLTEwLjQgMC0xOS42LTYuNy0yMi44LTE2LjZsLTE4LjMtNTYuM2MtMy4yLTkuOSAuMy0yMC43IDguNy0yNi44bDQ3LjktMzQuOGM4LjQtNi4xIDE5LjgtNi4xIDI4LjIgMEwzMTggMjIxeiJdfSxaQXQ9SnJlLFhBdD1KcmUsRWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LFFBdD1FZ2UsUGdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlciIsaWNvbjpbNTEyLDUxMixbMTI4MTkzLDEyODQ0Nyw2MTcxNiwiZm9sZGVyLWJsYW5rIl0sImYwN2IiLCJNNjQgNDAwbDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MGMwLTguOC03LjItMTYtMTYtMTZsLTE0OS4zIDBjLTE3LjMgMC0zNC4yLTUuNi00OC0xNkwyMTIuMyA4My4yYy0yLjgtMi4xLTYuMS0zLjItOS42LTMuMkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNnptMzg0IDQ4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxKQXQ9UGdlLGVOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNODAgMTkyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwIDQ3LjEgMCA4OS40IDIwLjQgMTE4LjcgNTIuNyAxMC42LTMuMSAyMS44LTQuNyAzMy4zLTQuNyA2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDEzLjItMi4xIDI1LjktNi4xIDM3LjggNDEuNiAyMS4xIDcwLjEgNjQuMyA3MC4xIDExNC4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC01Ni44IDMyLjktMTA1LjkgODAuNy0xMjkuNC0uNC00LjgtLjctOS43LS43LTE0LjZ6TTI0MCA4MGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA4LjQgLjkgMTYuNiAyLjcgMjQuNSAyLjcgMTIuMS00LjMgMjQuMy0xNi4xIDI4LjEtMzguNyAxMi40LTY2LjYgNDguNy02Ni42IDkxLjQgMCA1MyA0MyA5NiA5NiA5NmwzMDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM3LjQtMjUuNy02OC45LTYwLjUtNzcuNi03LjUtMS45LTEzLjYtNy4yLTE2LjUtMTQuM3MtMi4xLTE1LjIgMi0yMS43YzctMTEuMSAxMS0yNC4yIDExLTM4LjMgMC0zOS44LTMyLjItNzItNzItNzItMTEuMSAwLTIxLjUgMi41LTMwLjggNi45LTEwLjUgNS0yMy4xIDEuNy0yOS44LTcuOC0yMC4zLTI4LjYtNTMuNy00Ny4xLTkxLjMtNDcuMXoiXX0sdE50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LElnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1MTgsImdyaW4tc3F1aW50Il0sImY1ODUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42em0tMjQ5LjYtMTQzYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGFOdD1JZ2UsQWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk00MDYuNSAzOTkuNkMzODcuNCAzNTIuOSAzNDEuNSAzMjAgMjg4IDMyMGwtNjQgMGMtNTMuNSAwLTk5LjQgMzIuOS0xMTguNSA3OS42LTM1LjYtMzcuMy01Ny41LTg3LjktNTcuNS0xNDMuNiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU1LjctMjEuOSAxMDYuMi01Ny41IDE0My42em0tNDAuMSAzMi43QzMzNC40IDQ1Mi40IDI5Ni42IDQ2NCAyNTYgNDY0cy03OC40LTExLjYtMTEwLjUtMzEuN2M3LjMtMzYuNyAzOS43LTY0LjMgNzguNS02NC4zbDY0IDBjMzguOCAwIDcxLjIgMjcuNiA3OC41IDY0LjN6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTI3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6bS04OC00MGE4OCA4OCAwIDEgMCAxNzYgMCA4OCA4OCAwIDEgMCAtMTc2IDB6Il19LHNOdD1BZ2UsTmdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlY3RhbmdsZS1saXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1hbHQiXSwiZjAyMiIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE2MCAzMjBhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTA0LTU2bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxpTnQ9TmdlLFJnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kIixpY29uOls1MTIsNTEyLFsxMjkzMDYsOTk5NSwiaGFuZC1wYXBlciJdLCJmMjU2IiwiTTI1Ni41IDBjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNi03LTIuNi0xNC41LTQtMjIuNC00LTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTY1LjUtMi43LTIuN2MtMjUtMjUtNjUuNS0yNS05MC41IDBzLTI1IDY1LjUgMCA5MC41TDEwNyA0MzdjNDggNDggMTEzLjEgNzUgMTgxIDc1bDE2LjUgMGMxLjUgMCAzLS4xIDQuNS0uNCA5MS43LTYuMiAxNjUtNzkuNCAxNzEuMS0xNzEuMSAuMy0xLjUgLjQtMyAuNC00LjVsMC0xNzZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNS41IDAtMTAuOSAuNy0xNiAybDAtMmMwLTM1LjMtMjguNy02NC02NC02NC03LjkgMC0xNS40IDEuNC0yMi40IDQtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNnptLTE2IDk2LjFsMC0uMSAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTcyLjljLS4xIC42LS4xIDEuMy0uMiAxLjktMy40IDY5LjctNTkuMyAxMjUuNi0xMjkgMTI5LS42IDAtMS4zIC4xLTEuOSAuMkwyODggNDY0QzIzMi45IDQ2NCAxODAgNDQyLjEgMTQxIDQwMy4xTDUzLjIgMzE1LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw0My43IDQzLjdjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4ybDAtMjIzLjRjMC04LjggNy4yLTE2IDE2LTE2IDguOCAwIDE2IDcuMSAxNiAxNS45bDAgMTM2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNS45eiJdfSxyTnQ9UmdlLG9OdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNMTcxLjUgMzguOEMxOTIuMyA0IDIzNi41LTEwIDI3NCA3LjZsNy4yIDMuOEMzMTYgMzIuMyAzMzAgNzYuNSAzMTIuNCAxMTRsMCAwLTE0LjEgMzAgMTA5LjcgMCA3LjQgLjRjMzYuMyAzLjcgNjQuNiAzNC40IDY0LjYgNzEuNiAwIDEzLjItMy42IDI1LjQtOS44IDM2IDYuMSAxMC42IDkuNyAyMi44IDkuOCAzNiAwIDE4LjMtNi45IDM0LjgtMTggNDcuNSAxLjMgNS4zIDIgMTAuOCAyIDE2LjUgMCAyNS4xLTEyLjkgNDctMzIuMiA1OS45LTEuOSAzNS41LTI5LjQgNjQuMi02NC40IDY3LjdsLTcuNCAuNC0xMDQuMSAwYy0xOCAwLTM1LjktMy40LTUyLjYtOS45bC03LjEtMy0uNy0uMy02LjYtMy4yLS43LS4zLTEyLjItNi41Yy0xMi4zLTYuNS0yMy4zLTE0LjctMzIuOS0yNC4xLTQuMSAyNi45LTI3LjMgNDcuNC01NS4zIDQ3LjRsLTMyIDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjAwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDMyIDBjMTAuOCAwIDIwLjkgMy4xIDI5LjUgOC41bDUwLjEtMTA2LjUgLjYtMS4yIDIuNy01IC42LS45ek01NiAxOTJjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAwek0yNTMuNiA1MWMtMTQuOC02LjktMzIuMy0xLjYtNDAuNyAxMmwtMi4yIDQtNTYuOCAxMjAuOWMtMy41IDcuNS01LjUgMTUuNS02IDIzLjdsLS4xIDQuMiAwIDExMi45IC4yIDcuOWMyLjQgMzIuNyAyMS40IDYyLjEgNTAuNyA3Ny43bDExLjUgNi4xIDYuMyAzLjFjMTIuNCA1LjYgMjUuOCA4LjUgMzkuNCA4LjVsMTA0LjEgMCAyLjQtLjFjMTIuMS0xLjIgMjEuNi0xMS41IDIxLjYtMjMuOWwtLjItMi42Yy0uMS0uOS0uMi0xLjctLjQtMi42LTIuNy0xMi4xIDQuMy0yNC4yIDE2LTI4IDkuNy0zLjEgMTYuNi0xMi4yIDE2LjYtMjIuOCAwLTQuMy0xLjEtOC4yLTMuMS0xMS44LTYuMy0xMS4xLTIuOC0yNS4yIDgtMzIgNi44LTQuMyAxMS4yLTExLjggMTEuMi0yMC4yIDAtNy4xLTMuMS0xMy41LTguMi0xOC01LjItNC42LTguMi0xMS4xLTguMi0xOHMzLTEzLjQgOC4yLTE4YzUuMS00LjUgOC4yLTEwLjkgOC4yLTE4bC0uMS0yLjRjLTEuMS0xMS4zLTEwLjEtMjAuMy0yMS40LTIxLjRsLTIuNC0uMS0xNDcuNSAwYy04LjIgMC0xNS44LTQuMi0yMC4yLTExLjEtNC40LTYuOS01LTE1LjctMS41LTIzLjFMMjY5IDkzLjZjNy0xNSAxLjQtMzIuNy0xMi41LTQxTDI1My42IDUxeiJdfSxuTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYnVpbGRpbmciLGljb246WzM4NCw1MTIsWzEyNzk3MCw2MTY4N10sImYxYWQiLCJNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsODAgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM4NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptOTYgNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sbE50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTM4LjdjMCAxMy44LTQuNSAyNy4zLTEyLjggMzguNGwtMzUuMiA0Ni45IDAgMTEyIDQwLjggNjguMWM0LjcgNy44IDcuMiAxNi43IDcuMiAyNS44IDAgMjcuNy0yMi40IDUwLjEtNTAuMSA1MC4xTDUwLjEgNTEyYy0yNy43IDAtNTAuMS0yMi40LTUwLjEtNTAuMSAwLTkuMSAyLjUtMTggNy4yLTI1LjhMNDggMzY4IDQ4IDI1NiAxMi44IDIwOS4xQzQuNSAxOTggMCAxODQuNSAwIDE3MC43TDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwek00OC4zIDQ2MC44bC0uMyAxLjFjMCAxLjIgMSAyLjEgMi4xIDIuMWwyODMuOCAwYzEuMiAwIDIuMS0xIDIuMS0yLjFsLS4zLTEuMS0zNi41LTYwLjgtMjE0LjQgMC0zNi41IDYwLjh6TTQ4IDE3MC43YzAgMi42IC42IDUuMSAxLjggNy40bDEuNCAyLjIgMCAwIDM1LjIgNDYuOSA5LjYgMTIuOCAwIDExMiAxOTIgMCAwLTExMiA5LjYtMTIuOCAzNS4yLTQ2LjkgMCAwIDEuNC0yLjJjMS4yLTIuMyAxLjgtNC44IDEuOC03LjRsMC0xMjIuNy02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMTIyLjd6Il19LE9nZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcXVlc3Rpb24iLGljb246WzUxMiw1MTIsWzYyMTA4LCJxdWVzdGlvbi1jaXJjbGUiXSwiZjA1OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni04MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LGNOdD1PZ2UsZE50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUiLGljb246WzM4NCw1MTIsWzEyODE5NiwxMjg0NTksNjE0NjJdLCJmMTViIiwiTTE3NiA0OEw2NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDAtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzE2LjEgMTYwTDIyNCA2Ny45IDIyNCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwxOTcuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LEZnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC1jcnkiLGljb246WzUxMiw1MTIsWzEyODU1Nywic2FkLWNyeSJdLCJmNWIzIiwiTTQwMCA0MDYuMUw0MDAgMjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTUyLjZjLTI4LjcgMTUtNjEuNCAyMy40LTk2IDIzLjRzLTY3LjMtOC41LTk2LTIzLjRMMTYwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExOC4xQzcyLjYgMzY4LjIgNDggMzE1IDQ4IDI1NiA0OCAxNDEuMSAxNDEuMSA0OCAyNTYgNDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU5LTI0LjYgMTEyLjItNjQgMTUwLjF6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSx1TnQ9RmdlLHBOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0zMiAxMzZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxCZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS10aXJlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTU1LCJ0aXJlZCJdLCJmNWM4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LjUgNjQuM0MxOTYuMSAzMDIuMSAyMjMuOCAyODggMjU2IDI4OHM1OS45IDE0LjEgNzkuNSAzMi4zYzE5IDE3LjggMzIuNSA0MS43IDMyLjUgNjMuNyAwIDUuNC0yLjcgMTAuNC03LjIgMTMuNHMtMTAuMiAzLjQtMTUuMiAxLjNsLTE3LjItNy41Yy0yMi44LTEwLTQ3LjUtMTUuMS03Mi40LTE1LjFzLTQ5LjYgNS4yLTcyLjQgMTUuMWwtMTcuMiA3LjVjLTQuOSAyLjItMTAuNyAxLjctMTUuMi0xLjNzLTcuMi04LTcuMi0xMy40YzAtMjIgMTMuNS00NS45IDMyLjUtNjMuN3pNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0saE50PUJnZSxmTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNCIsIk00NDggMTI4bC0xNzcuNiAwYzEgNS4yIDEuNiAxMC41IDEuNiAxNmwwIDE2IDE3NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2ek0yMjQgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwwIDQ4YzAgNTIuNSAzMy43IDk3LjEgODAuNyAxMTMuNC0uNS0zLjEtLjctNi4yLS43LTkuNCAwLTIwIDkuMi0zNy45IDIzLjYtNDkuNy00LjktOS03LjYtMTkuNC03LjYtMzAuMyAwLTE1LjEgNS4zLTI5IDE0LTQwLTguOC0xMS0xNC0yNC45LTE0LTQwbDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MHpNMTkyIDY0bDAgMGMxOCAwIDM0LjYgNiA0OCAxNmwyMDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtODIgMGMxLjMgNS4xIDIgMTAuNSAyIDE2IDAgMjUuMy0xNC43IDQ3LjItMzYgNTcuNiAyLjYgNyA0IDE0LjUgNCAyMi40IDAgMjAtOS4yIDM3LjktMjMuNiA0OS43IDQuOSA5IDcuNiAxOS40IDcuNiAzMC4zIDAgMzUuMy0yOC43IDY0LTY0IDY0bC04OCAwQzc1LjIgNDQ4IDAgMzcyLjggMCAyODBsMC00OEMwIDEzOS4yIDc1LjIgNjQgMTY4IDY0bDI0IDB6bTY0IDMzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwem0xNi0xNzZjMCA1LjUtLjcgMTAuOS0yIDE2bDM0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMCAxNnptLTI0IDY0bC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTI0IDB6Il19LEhnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTA0IDEwNGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45bDcyIDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEwNCA3MiAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0xMDQtMTA0eiJdfSxtTnQ9SGdlLGdOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTS4yIDI3Ni4zYy0xLjItMzUuMyAyNi40LTY1IDYxLjctNjYuMmwzLjMtLjEtOC4yLTEuOEMyMi41IDIwMC41IC43IDE2Ni4zIDguMyAxMzEuOFM1MC4yIDc1LjUgODQuNyA4My4ybDE3MyAzOC4zYzIuMy0yLjkgNC42LTUuNyA3LjEtOC41bDE4LjQtMjAuM0MyOTkuOSA3NC41IDMyMy41IDY0IDM0OC4zIDY0bDEwLjIgMGM1NC4xIDAgMTA0LjEgMjguNyAxMzEuMyA3NS40bDEuNSAyLjZjMTMuNiAyMy4yIDIwLjcgNDkuNyAyMC43IDc2LjZMNTEyIDM0NGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtMTA0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMi44IC4yLTUuNiAuNS04LjMtMTkuNC0xMS0zMi41LTMxLjgtMzIuNS01NS43IDAtLjggMC0xLjYgMC0yLjRMNjYuNCAzMzhjLTM1LjMgMS4yLTY1LTI2LjQtNjYuMi02MS43em02My40LTE4LjJjLTguOCAuMy0xNS43IDcuNy0xNS40IDE2LjZzNy43IDE1LjcgMTYuNSAxNS40bDE2MS41LTUuNmM5LjgtLjMgMTguNyA1LjMgMjIuNyAxNC4yczIuMiAxOS4zLTQuNSAyNi40Yy0yLjggMi45LTQuNCA2LjctNC40IDExIDAgOC44IDcuMiAxNiAxNiAxNiA5LjEgMCAxNy40IDUuMSAyMS41IDEzLjNzMy4yIDE3LjktMi4zIDI1LjFjLTIgMi43LTMuMiA2LTMuMiA5LjYgMCA4LjggNy4yIDE2IDE2IDE2bDEwNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtMTI1LjRjMC0xOC40LTQuOS0zNi41LTE0LjItNTIuNGwtMS41LTIuNmMtMTguNi0zMi01Mi44LTUxLjYtODkuOC01MS42bC0xMC4yIDBjLTExLjMgMC0yMiA0LjgtMjkuNiAxMy4xbDAgMC0xOC40IDIwLjNjLS42IC42LTEuMSAxLjMtMS43IDEuOWw1NyAxMy4yYzguNiAyIDE0IDEwLjYgMTIgMTkuMnMtMTAuNiAxNC0xOS4yIDEyTDI2Mi44IDE3MS44IDc0LjMgMTMwYy04LjYtMS45LTE3LjIgMy41LTE5LjEgMTIuMnMzLjUgMTcuMiAxMi4yIDE5LjFsMTg3LjUgNDEuNmMxMC4yIDIuMyAxNy44IDEwLjkgMTguNyAyMS40bC4xIDFjLjYgNi42LTEuNSAxMy4xLTUuOCAxOC4xcy0xMC42IDcuOS0xNy4yIDguMkw2My42IDI1OC4xeiJdfSxiTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTE2OC41IDcybDg3LjUgOTMgODcuNS05My0xNzUgMHpNMzgzLjkgOTkuMWwtNzIuMyA3Ni45IDEyOSAwLTU2LjYtNzYuOXptNTAgMTI0LjlMNzguMSAyMjQgMjU2IDQyMC4zIDQzMy45IDIyNHpNNzEuNSAxNzZsMTI5IDAtNzIuMy03Ni45LTU2LjYgNzYuOXptNDM0LjMgNDAuMWwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyYzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhsMjQwIDBjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40eiJdfSxLaz17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTMzNC4xIDQ5LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ0LjEgNDQuMSA0NC4xIDQ0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDQuMS00NC4xLTQ0LjEgNDQuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0NC4xLTQ0LjEtNDQuMS00NC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDQuMSA0NC4xIDQ0LjEtNDQuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sdk50PUtrLHhOdD1Layx5TnQ9S2ssZWY9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTY2LjItMTZjLTEzLjMgMC0yNS4zIDguMy0zMCAyMC44TDEyMCA0OCAyNCA0OEMxMC43IDQ4IDAgNTguNyAwIDcyUzEwLjcgOTYgMjQgOTZsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDAtMTYuMi00My4yQzMwNy4xLTcuNyAyOTUuMi0xNiAyODEuOC0xNkwxNjYuMi0xNnpNMzIgMTQ0bDAgMzA0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzA0LTQ4IDAgMCAzMDRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzA0LTQ4IDB6bTE2MCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2em0xMTIgMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2eiJdfSx3TnQ9ZWYsa050PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZmUtcmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFjZCIsIk0zODUuMSA0MTkuMUMzNDkuNyA0NDcuMiAzMDQuOCA0NjQgMjU2IDQ2NHMtOTMuNy0xNi44LTEyOS4xLTQ0LjlsODAuNC04MC40YzE0LjMgOC40IDMxIDEzLjMgNDguOCAxMy4zczM0LjUtNC44IDQ4LjgtMTMuM2w4MC40IDgwLjR6bTY4LjEgLjJDNDg5LjkgMzc0LjkgNTEyIDMxOC4xIDUxMiAyNTZTNDg5LjkgMTM3LjEgNDUzLjIgOTIuN0w0NjUgODFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMFMxMzcuMSAyMi4xIDkyLjcgNTguOEw4MSA0N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMzcuNyA3MS42IDQ3IDgxTDU4LjggOTIuN0MyMi4xIDEzNy4xIDAgMTkzLjkgMCAyNTZTMjIuMSAzNzQuOSA1OC44IDQxOS4zTDQ3IDQzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDExLjgtMTEuOEMxMzcuMSA0ODkuOSAxOTMuOSA1MTIgMjU2IDUxMnMxMTguOS0yMi4xIDE2My4zLTU4LjhMNDMxIDQ2NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTExLjgtMTEuOHptLTM0LjEtMzQuMWwtODAuNC04MC40YzguNC0xNC4zIDEzLjMtMzEgMTMuMy00OC44cy00LjgtMzQuNS0xMy4zLTQ4LjhsODAuNC04MC40QzQ0Ny4yIDE2Mi4zIDQ2NCAyMDcuMiA0NjQgMjU2cy0xNi44IDkzLjctNDQuOSAxMjkuMXpNMzg1LjEgOTIuOWwtODAuNCA4MC40Yy0xNC4zLTguNC0zMS0xMy4zLTQ4LjgtMTMuM3MtMzQuNSA0LjgtNDguOCAxMy4zTDEyNi45IDkyLjlDMTYyLjMgNjQuOCAyMDcuMiA0OCAyNTYgNDhzOTMuNyAxNi44IDEyOS4xIDQ0Ljl6TTE3My4zIDMwNC44TDkyLjkgMzg1LjFDNjQuOCAzNDkuNyA0OCAzMDQuOCA0OCAyNTZzMTYuOC05My43IDQ0LjktMTI5LjFsODAuNCA4MC40Yy04LjQgMTQuMy0xMy4zIDMxLTEzLjMgNDguOHM0LjggMzQuNSAxMy4zIDQ4Ljh6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sU050PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwNS4xIDMwNi45Yy0yOC4xLTI4LjEtMjguMS03My43IDAtMTAxLjhzNzMuNy0yOC4xIDEwMS44IDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy00Ni45LTQ2LjktMTIyLjgtNDYuOS0xNjkuNyAwcy00Ni45IDEyMi44IDAgMTY5LjcgMTIyLjggNDYuOSAxNjkuNyAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHoiXX0scWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNDggMjU2YTIwOCAyMDggMCAxIDEgNDE2IDAgMjA4IDIwOCAwIDEgMSAtNDE2IDB6bTQ2NCAwYTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTEyNC43IDI0NC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwxMDQgMTA0YzQuNiA0LjYgMTEuNSA1LjkgMTcuNCAzLjVzOS45LTguMyA5LjktMTQuOGwwLTcyIDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEwNCAwIDAtNzJjMC02LjUtMy45LTEyLjMtOS45LTE0LjhzLTEyLjktMS4xLTE3LjQgMy41bC0xMDQgMTA0eiJdfSxfTnQ9cWdlLE1OdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwek00OCAyMjRsMCAxOTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE5Mi0zNTIgMHoiXX0samdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sek50PWpnZSxWZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNNDggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCA0Mi43IDAgNTZMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODAgNDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMkw0OCA1NnptMTA0IDcybDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE1MiA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sQ050PVZnZSxZaz17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI0MCA2LjFjOS4xLTguMiAyMi45LTguMiAzMiAwbDIzMiAyMDhjOS45IDguOCAxMC43IDI0IDEuOCAzMy45cy0yNCAxMC43LTMzLjkgMS44bC04LTcuMiAwIDIwNS4zYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMDUuMy04IDcuMmMtOS45IDguOC0yNSA4LTMzLjktMS44cy04LTI1IDEuOC0zMy45TDI0MCA2LjF6bTE2IDUwLjFMOTYgMTk5LjcgOTYgNDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAtMTA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAxMDQgNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDguMy0xNjAtMTQzLjR6TTIwOCA0NjRsOTYgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDR6Il19LFROdD1ZaywkTnQ9WWssRE50PVlrLFVnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duIixpY29uOls1MTIsNTEyLFs5Nzg1LCJmcm93biJdLCJmMTE5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzM0LjcgMzg0LjZDMzE5LjcgMzY5IDI5My42IDM1MiAyNTYgMzUycy02My43IDE3LTc4LjcgMzIuNmMtOS4yIDkuNi0yNC40IDkuOS0zMy45IC43cy05LjktMjQuNC0uNy0zMy45YzIyLjEtMjMgNjAtNDcuNCAxMTMuMy00Ny40czkxLjIgMjQuNCAxMTMuMyA0Ny40YzkuMiA5LjYgOC45IDI0LjgtLjcgMzMuOXMtMjQuOCA4LjktMzMuOS0uN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMTnQ9VWdlLGVvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTE0NCAxMjhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwem0yMDggMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwek00OCA0ODBjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsOTYgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLThjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTk2IDBDNzguOCAzMDQgMCAzODIuOCAwIDQ4MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTh6Il19LEVOdD1lb2UsUE50PWVvZSxJTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjgwLjEtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDc4LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTcgNTcgMCA3Ni41LTY2LjItMzguMi0yMC45LTc3LjhjLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjIgOTggOTguNyAxMTAuOGw4LjQgMzEuNS02Ny42LTM5QzI4IDk2LjYgMTMuMyAxMDAuNSA2LjcgMTEyUzQgMTM4LjIgMTUuNSAxNDQuOGw2Ny42IDM5LTMxLjUgOC40Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w3Ny44LTIwLjkgNjYuMiAzOC4yLTY2LjIgMzguMi03Ny44LTIwLjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDMxLjUgOC40LTY3LjYgMzlDNCAzNzMuOCAuMSAzODguNSA2LjcgNDAwczIxLjMgMTUuNCAzMi44IDguOGw2Ny42LTM5LTguNCAzMS41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wyMC45LTc3LjggNjYuMi0zOC4yIDAgNzYuNS01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgNzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzguMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtNzYuNSA2Ni4yIDM4LjIgMjAuOSA3Ny44YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC04LjQtMzEuNSA2Ny42IDM5YzExLjUgNi42IDI2LjIgMi43IDMyLjgtOC44czIuNy0yNi4yLTguOC0zMi44bC02Ny42LTM5IDMxLjUtOC40YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNzcuOCAyMC45LTY2LjItMzguMiA2Ni4yLTM4LjIgNzcuOCAyMC45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMzEuNS04LjQgNjcuNi0zOWMxMS41LTYuNiAxNS40LTIxLjMgOC44LTMyLjhzLTIxLjMtMTUuNC0zMi44LTguOGwtNjcuNiAzOSA4LjQtMzEuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTIwLjkgNzcuOC02Ni4yIDM4LjIgMC03Ni41IDU3LTU3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtNzguMXoiXX0sQU50PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDE3LjFjMCAyNS42LTI4LjUgNDAuOC00OS44IDI2LjZMMTkyIDQxMi44IDQ5LjggNTA3LjdDMjguNSA1MjEuOSAwIDUwNi42IDAgNDgxLjFMMCA2NHpNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4Ny4yIDExNy40LTc4LjJjMTYuMS0xMC43IDM3LjEtMTAuNyA1My4yIDBMMzM2IDQ1MS4yIDMzNiA2NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6Il19LFdnZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNNDggNDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjB6bTE2IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MHptNjQtMjI0YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42eiJdfSxOTnQ9V2dlLHRvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzY0MCw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6Il19LFJOdD10b2UsT050PXRvZSxHZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LEZOdD1HZ2UsS2dlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzUxMiw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk00MDMuMSA0MDMuMWM2Ny4yLTY3LjIgNzguOC0xNjguOSAzNC45LTI0OGwzNi43LTUuMmM0LjUtLjYgOC44LTEuNiAxMy4xLTIuOCA0NC42IDk0LjkgMjcuNyAyMTEuNS01MC43IDI5MHMtMTk1LjEgOTUuMy0yOTAgNTAuN2MxLjItNC4yIDIuMS04LjYgMi44LTEzLjFsNS4yLTM2LjdjNzkuMSA0My45IDE4MC44IDMyLjMgMjQ4LTM0Ljl6TTc1IDc1Yzc4LjQtNzguNCAxOTUuMS05NS4zIDI5MC01MC43LTEuMiA0LjItMi4xIDguNi0yLjggMTMuMWwtNS4yIDM2LjdjLTc5LjEtNDMuOS0xODAuOC0zMi4zLTI0OCAzNC45cy03OC44IDE2OC45LTM0LjkgMjQ4bC0zNi43IDUuMmMtNC41IC42LTguOCAxLjYtMTMuMSAyLjgtNDQuNi05NC45LTI3LjctMjExLjUgNTAuNy0yOTB6TTM3MC45IDIwNi41YzUuOC0xMC45IDIxLjEtMTIuNCAyNi40LTEuMyAyNS42IDUzLjUgMTYuMiAxMTkuNi0yOC4yIDE2My45LTQ0LjMgNDQuMy0xMTAuMyA1My43LTE2My44IDI4LjItMTEuMS01LjMtOS42LTIwLjYgMS4zLTI2LjQgMzItMTcuMSA2NC4yLTQwLjggOTMuOC03MC40IDI5LjctMjkuNyA1My40LTYxLjkgNzAuNS05NHpNOTMuMyAyODEuOWMtMS43LTggMi45LTE1LjkgMTAuNi0xOC40bDg0LjYtMjhjNS43LTEuOSAxMi4xLS40IDE2LjMgMy45czUuOCAxMC42IDMuOSAxNi4zbC0yOCA4NC42Yy0yLjYgNy43LTEwLjUgMTIuMy0xOC40IDEwLjZzLTEzLjQtOS0xMi43LTE3LjFsMy45LTQzLjEtNDMuMSAzLjljLTguMSAuNy0xNS41LTQuNy0xNy4xLTEyLjd6TTI5NC42IDExMC40bC0zLjkgNDMuMSA0My4xLTMuOWM4LjEtLjcgMTUuNSA0LjcgMTcuMSAxMi43cy0yLjkgMTUuOS0xMC42IDE4LjRsLTg0LjYgMjhjLTUuNyAxLjktMTIuMSAuNC0xNi4zLTMuOXMtNS44LTEwLjYtMy45LTE2LjNsMjgtODQuNmMyLjYtNy43IDEwLjUtMTIuMyAxOC40LTEwLjZzMTMuNCA5IDEyLjcgMTcuMXpNNTEyIDUxLjRjMCAyNS42LTE4LjggNDcuMy00NC4xIDUwLjlMNDIxLjEgMTA5Yy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDEzLjMgMTguOCA0MzUgMCA0NjAuNiAwIDQ4OSAwIDUxMiAyMyA1MTIgNTEuNHpNNDQuMSA0MDkuN0w5MC45IDQwM2MxMC42LTEuNSAxOS42IDcuNSAxOC4xIDE4LjFsLTYuNyA0Ni43Qzk4LjcgNDkzLjIgNzcgNTEyIDUxLjQgNTEyIDIzIDUxMiAwIDQ4OSAwIDQ2MC42IDAgNDM1IDE4LjggNDEzLjMgNDQuMSA0MDkuN3oiXX0sQk50PUtnZSxITnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0yMjEuOSAyNjcuNmMtNC43IDEwLS4zIDIxLjkgOS43IDI2LjYgMTkuMiA4LjkgMzIuNCAyOC4zIDMyLjQgNTAuOHMtMTMuMiA0MS45LTMyLjQgNTAuOGMtMTAgNC43LTE0LjQgMTYuNi05LjcgMjYuNnMxNi42IDE0LjQgMjYuNiA5LjdDMjgxLjIgNDE2LjggMzA0IDM4My42IDMwNCAzNDVzLTIyLjgtNzEuOS01NS42LTg3LjFjLTEwLTQuNy0yMS45LS4zLTI2LjYgOS43ek0xMDQgMzA1Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0xNiAwek0yMjMuMyAzNzNjOS45LTUuNCAxNi43LTE2IDE2LjctMjguMXMtNi43LTIyLjctMTYuNy0yOC4xYy03LjgtNC4yLTE1LjMgMy4zLTE1LjMgMTIuMWwwIDMyYzAgOC44IDcuNiAxNi4zIDE1LjMgMTIuMXoiXX0sWWdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xNzEuOSA5Mi4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LHFOdD1ZZ2UsWmdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDQ2NGEyMDggMjA4IDAgMSAxIDAtNDE2IDIwOCAyMDggMCAxIDEgMCA0MTZ6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTA0LTEwNGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzM2Ni41IDI1NiAzNjAgMjU2bC03MiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNC03MiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsMTA0IDEwNHoiXX0sak50PVpnZSxhb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem01NiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sVk50PWFvZSxVTnQ9YW9lLFdOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50cyIsaWNvbjpbNTc2LDUxMixbMTI4NDkwLDYxNjcwXSwiZjA4NiIsIk03Ni4yIDI1OC43YzYuMS0xNS4yIDQtMzIuNi01LjYtNDUuOS0xNC41LTIwLjEtMjIuNi00My43LTIyLjYtNjguOCAwLTY2LjggNjAuNS0xMjggMTQ0LTEyOHMxNDQgNjEuMiAxNDQgMTI4LTYwLjUgMTI4LTE0NCAxMjhjLTE1LjkgMC0zMS4xLTIuMy00NS4zLTYuNS0xMC4zLTMuMS0yMS40LTIuNS0zMS40IDEuNWwtNTAuNCAyMC4yIDExLjQtMjguNXpNMCAxNDRjMCAzNS44IDExLjYgNjkuMSAzMS43IDk2LjhMMS45IDMxNS4yYy0xLjMgMy4yLTEuOSA2LjYtMS45IDEwIDAgMTQuOCAxMiAyNi44IDI2LjggMjYuOCAzLjQgMCA2LjgtLjcgMTAtMS45bDk2LjMtMzguNWMxOC42IDUuNSAzOC40IDguNCA1OC45IDguNCAxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0ek0zODQgNTEyYzIwLjYgMCA0MC4zLTMgNTguOS04LjRsOTYuMyAzOC41YzMuMiAxLjMgNi42IDEuOSAxMCAxLjkgMTQuOCAwIDI2LjgtMTIgMjYuOC0yNi44IDAtMy40LS43LTYuOC0xLjktMTBsLTI5LjctNzQuNGMyMC0yNy44IDMxLjctNjEuMSAzMS43LTk2LjggMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTEuNiAxNi4zLTUuMSAzMS45LTEwLjEgNDYuOSA2My45IDE0LjggMTA3LjIgNjcuMyAxMDcuMiAxMjMuOSAwIDI1LjEtOC4xIDQ4LjctMjIuNiA2OC44LTkuNiAxMy4zLTExLjcgMzAuNi01LjYgNDUuOWwxMS40IDI4LjUtNTAuNC0yMC4yYy0xMC00LTIxLjEtNC41LTMxLjQtMS41LTE0LjIgNC4yLTI5LjQgNi41LTQ1LjMgNi41LTcyLjIgMC0xMjcuMS00NS43LTE0MC43LTEwMS4yLTE1LjYgMy4yLTMxLjcgNS00OC4xIDUuMiAxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0eiJdfSx0Zj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtY2hlY2siLGljb246WzUxMiw1MTIsWzYxNTMzLCJjaGVjay1jaXJjbGUiXSwiZjA1OCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em03MC43IDEyMS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjQzLjQgMzY2LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSxHTnQ9dGYsS050PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1vb24iLGljb246WzUxMiw1MTIsWzEyNzc2OSw5MjE0XSwiZjE4NiIsIk0yMzkuMyA0OC43Yy0xMDcuMSA4LjUtMTkxLjMgOTguMS0xOTEuMyAyMDcuMyAwIDExNC45IDkzLjEgMjA4IDIwOCAyMDggMzMuMyAwIDY0LjctNy44IDkyLjYtMjEuNy0xMDMuNC0yMy40LTE4MC42LTExNS44LTE4MC42LTIyNi4zIDAtNjUuOCAyNy40LTEyNS4xIDcxLjMtMTY3LjN6TTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMTkuNCAwIDM4LjQgMi4yIDU2LjcgNi4zIDkuOSAyLjIgMTcuMyAxMC41IDE4LjUgMjAuNXMtNCAxOS44LTEzLjEgMjQuNGMtNjAuNiAzMC4yLTEwMi4xIDkyLjctMTAyLjEgMTY0LjggMCAxMDEuNiA4Mi40IDE4NCAxODQgMTg0IDUgMCA5LjktLjIgMTQuOC0uNiAxMC4xLS44IDE5LjYgNC44IDIzLjggMTQuMXMyIDIwLjEtNS4zIDI3LjFDMzg3LjMgNDg0LjggMzI0LjggNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6Il19LFlOdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk00NDggMTEyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptODggMTQ0bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgwYzAtNC40IDMuNi04IDgtOHptMTY4IDhjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgweiJdfSxaTnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTQ4MCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTgwIDExMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNDAuNyAzLjhjLTQuMy03LjMtMTIuMi0xMS44LTIwLjctMTEuOHMtMTYuNCA0LjUtMjAuNyAxMS44bC00Ni41IDc5LTE3LjItMjQuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzE5MS4xIDMyMCAyMDAgMzIwbDI0MCAwYzguNiAwIDE2LjYtNC42IDIwLjgtMTIuMXM0LjItMTYuNy0uMS0yNC4xbC04MC0xMzZ6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM2MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjk2eiJdfSxYZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs2MTgzOCwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodCJdLCJmMzVhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHptMzg3LjMgMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTA0LTEwNGMtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNVMyNTYgMTQ1LjUgMjU2IDE1MmwwIDcyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzJjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsMTA0LTEwNHoiXX0sWE50PVhnZSxRZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDcsImRyaXZlcnMtbGljZW5zZSJdLCJmMmMyIiwiTTQ4IDQxNmwwLTI1NiA0ODAgMCAwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDggMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNzYgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sUU50PVFnZSxKZ2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjEyLjUgMTQ3LjVjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNVMxNzYgMTU5LjMgMTc2IDE2OGwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OHpNMjk4IDI1NmwtNzQgNDUuMiAwLTkwLjQgNzQgNDUuMnoiXX0sSk50PUpnZSxlN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTMsImxhdWdoLWJlYW0iXSwiZjU5YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGVSdD1lN2UsdDdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFkZHJlc3MtYm9vayIsaWNvbjpbNTEyLDUxMixbNjIxMzgsImNvbnRhY3QtYm9vayJdLCJmMmI5IiwiTTM4NCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDgwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyODggMHpNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yNDAgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0tMzIgNDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0eiJdfSx0UnQ9dDdlLGE3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsOCAwIDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsODEuNSA4MS41LTgxLjUgODEuNUM0OCAzNjYgMzIgNDA0LjcgMzIgNDQ1bDAgMTktOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtODEuNS04MS41IDgxLjUtODEuNUMzMzYgMTQ2IDM1MiAxMDcuMyAzNTIgNjdsMC0xOSA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzczLjMgMCAzNjAgMEwyNCAwek0xOTIgMjg5LjlsODEuNSA4MS41QzI5MyAzOTEgMzA0IDQxNy40IDMwNCA0NDVsMCAxOS0yMjQgMCAwLTE5YzAtMjcuNiAxMS01NCAzMC41LTczLjVMMTkyIDI4OS45em0wLTY3LjlsLTgxLjUtODEuNUM5MSAxMjEgODAgOTQuNiA4MCA2N2wwLTE5IDIyNCAwIDAgMTljMCAyNy42LTExIDU0LTMwLjUgNzMuNUwxOTIgMjIyLjF6Il19LGFSdD1hN2Usc29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYWRwaG9uZXMiLGljb246WzQ0OCw1MTIsWzEyNzkxMSw2Mjg2MywiaGVhZHBob25lcy1hbHQiLCJoZWFkcGhvbmVzLXNpbXBsZSJdLCJmMDI1IiwiTTQ4IDIyNGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnMxNzYgNzguOCAxNzYgMTc2bDAgNDQuOGMtMTQuMS04LjItMzAuNS0xMi44LTQ4LTEyLjhsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTcuNSAwLTMzLjkgNC43LTQ4IDEyLjhMNDggMjI0em0wIDEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAgMTI4LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJ6bTM1MiAwbDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMC0xMjggMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHoiXX0sc1J0PXNvZSxpUnQ9c29lLHJSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptODggMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEyOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMjggMGMzNy42IDAgNjgtMzAuNCA2OC02OHMtMzAuNC02OC02OC02OGwtNTIgMHptNTIgODhsLTI4IDAgMC00MCAyOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMHoiXX0sb1J0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1tYXhpbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcwXSwiZjJkMCIsIk00OCAyMjRsMCAxNjBjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2MC00MTYgMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHoiXX0sczdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbW1lbnQtZG90cyIsaWNvbjpbNTEyLDUxMixbMTI4MTcyLDYyMDc1LCJjb21tZW50aW5nIl0sImY0YWQiLCJNMCAyNDBjMCA1NC40IDE5LjMgMTA0LjYgNTEuOSAxNDQuOUwzLjEgNDc0LjNjLTIgMy43LTMuMSA3LjktMy4xIDEyLjIgMCAxNC4xIDExLjQgMjUuNSAyNS41IDI1LjUgNCAwIDcuOC0uNiAxMS41LTIuMUwxNTMuNCA0NjBjMzEuNCAxMi45IDY2LjEgMjAgMTAyLjYgMjAgMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDB6TTk0IDQwNy45YzkuMy0xNy4xIDcuNC0zOC4xLTQuOC01My4yLTI2LjEtMzIuMy00MS4yLTcxLjktNDEuMi0xMTQuNyAwLTEwMy4yIDkwLjItMTkyIDIwOC0xOTJzMjA4IDg4LjggMjA4IDE5Mi05MC4yIDE5Mi0yMDggMTkyYy0zMC4yIDAtNTguNy01LjktODQuMy0xNi40LTExLjktNC45LTI1LjMtNC44LTM3LjEgLjNMNzYgNDQwLjkgOTQgNDA3Ljl6TTE0NCAyNzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNDQtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptODAgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxuUnQ9czdlLGk3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODU0MCwiZ3Jpbi10b25ndWUtd2luayJdLCJmNThiIiwiTTM2Ni45IDQzMmMuOC01LjIgMS4xLTEwLjYgMS4xLTE2bDAtNTMuNWMxMC4yLTEyLjYgMTguMy0yNi45IDIzLjgtNDIuNSA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggNS41IDE1LjUgMTMuNiAyOS45IDIzLjggNDIuNGwwIDUzLjVjMCA1LjQgLjQgMTAuOCAxLjEgMTYtNTguNC0zNi44LTk3LjEtMTAxLjktOTcuMS0xNzYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA3NC4xLTM4LjggMTM5LjItOTcuMSAxNzZ6bS0zOC44IDY5LjdDNDM0LjQgNDcwLjYgNTEyIDM3Mi4zIDUxMiAyNTYgNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3Mi4zIDc3LjYgNDcwLjYgMTgzLjkgNTAxLjcgMjAzLjQgNTE4LjEgMjI4LjUgNTI4IDI1NiA1MjhzNTIuNi05LjkgNzIuMS0yNi4zek0zMjAgMzc4LjZsMCAzNy40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtMzcuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0xMzIgMjMyYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwem0yMjguNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sbFJ0PWk3ZSxyN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwTDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAxOWMwIDQwLjMtMTYgNzktNDQuNSAxMDcuNWwtODEuNSA4MS41IDgxLjUgODEuNUMzMzYgMzY2IDM1MiA0MDQuNyAzNTIgNDQ1bDAgMTkgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0xOWMwLTQwLjMgMTYtNzkgNDQuNS0xMDcuNWw4MS41LTgxLjUtODEuNS04MS41QzQ4IDE0NiAzMiAxMDcuMyAzMiA2N2wwLTE5LTggMEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMTAuNSAzNzEuNWMtMy45IDMuOS03LjUgOC4xLTEwLjcgMTIuNWwxODQuNCAwYy0zLjItNC40LTYuOC04LjYtMTAuNy0xMi41bC04MS41LTgxLjUtODEuNSA4MS41ek04MC44IDQzMmMtLjUgNC4zLS44IDguNi0uOCAxM2wwIDE5IDIyNCAwIDAtMTljMC00LjQtLjMtOC43LS44LTEzTDgwLjggNDMyek0yNTQuMSAxNjBsLTEyNC4xIDAgNjIuMSA2Mi4xIDYyLjEtNjIuMXptMzkuNy00OEMzMDAuNCA5OC4xIDMwNCA4Mi43IDMwNCA2N2wwLTE5LTIyNCAwIDAgMTljMCAxNS43IDMuNiAzMS4xIDEwLjIgNDVsMjAzLjUgMHoiXX0sY1J0PXI3ZSxvN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY3JlZGl0LWNhcmQiLGljb246WzUxMiw1MTIsWzEyODE3OSw2MjA4MywiY3JlZGl0LWNhcmQtYWx0Il0sImYwOWQiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMi00MTYgMCAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHptMTYgMTEybDAgMTYwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2MCA0MTYgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTgwIDM0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMTQ0IDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LGRSdD1vN2UsdVJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMTM4LjMgODAuOGMtOS4yLTMzLjggMTAuNS02OC44IDQ0LjMtNzguNCAzNC05LjYgNjkuNCAxMC4yIDc5IDQ0LjJMMjkxLjkgMTUzLjcgMzA1LjEgODRjNi42LTM0LjcgNDAuMS01Ny41IDc0LjgtNTAuOSAzMS40IDYgNTMgMzMuOSA1MiA2NC45IDEwLTIuNiAyMC44LTIuOCAzMS41LS4xIDM0LjMgOC42IDU1LjEgNDMuMyA0Ni42IDc3LjZMNDU0LjcgMzk3LjJDNDM3LjggNDY0LjcgMzc3LjIgNTEyIDMwNy42IDUxMmwtMzMuNyAwYy01Ni45IDAtMTEyLjItMTktMTU3LjItNTMuOWwtOTItNzEuNmMtMjcuOS0yMS43LTMyLjktNjEuOS0xMS4yLTg5LjhzNjEuOS0zMi45IDg5LjgtMTEuMmwxNyAxMy4yLTUxLjgtMTMxLjJjLTEzLTMyLjkgMy4yLTcwLjEgMzYtODMgMTEuMS00LjQgMjIuNy01LjQgMzMuNy0zLjd6bTc3LjEtMjEuMmMtMi40LTguNS0xMS4yLTEzLjQtMTkuNy0xMXMtMTMuNCAxMS4yLTExIDE5LjdsNTQuOCAxODIuNGMzLjUgMTIuMy0zLjMgMjUuMi0xNS40IDI5LjNzLTI1LjMtMi0zMC0xMy45TDE0Mi45IDEzOC4xYy0zLjItOC4yLTEyLjUtMTIuMy0yMC44LTlzLTEyLjMgMTIuNS05IDIwLjhsNzMuMyAxODUuNmMxMiAzMC4zLTIzLjcgNTctNDkuNCAzN0w3My44IDMyMy40Yy03LTUuNC0xNy00LjItMjIuNSAyLjhzLTQuMiAxNyAyLjggMjIuNWw5MiA3MS42YzM2LjUgMjguNCA4MS40IDQzLjggMTI3LjcgNDMuOGwzMy43IDBjNDcuNSAwIDg5LTMyLjQgMTAwLjUtNzguNWw1NS40LTIyMS42YzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTI2IDEwNGMtMi45IDExLjctMTMuNCAxOS45LTI1LjUgMTkuOS0xNi41IDAtMjguOS0xNS0yNS44LTMxLjJMMzgzLjcgOTljMS43LTguNy00LTE3LjEtMTIuNy0xOC43UzM1NCA4NC4zIDM1Mi4zIDkzTDMyMC41IDI2MGMtMi4yIDExLjYtMTIuNCAyMC0yNC4yIDIwLTExIDAtMjAuNy03LjMtMjMuNy0xNy45TDIxNS40IDU5LjZ6Il19LHBSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjgtODcuOGMxNy41LTMuMyAzMC44LTE4LjcgMzAuOC0zNy4xIDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0ODUgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOS43Yy00Mi4yIDYtNzkuNCAyNy44LTEwNS40IDU5LjFMNDEtMjQuOXpNMTkyLjggMTI2LjlDMjE0LjcgOTguNCAyNDkuMiA4MCAyODggODAgMzU0LjMgODAgNDA4IDEzMy43IDQwOCAyMDBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNGwxMi45IDIyLjEtMjIuNiAwLTI0MS4xLTI0MS4xek0xMzIuNSAzNDUuOWMxOS41LTMzLjQgMzEuMy03MC43IDM0LjYtMTA5bC00Ni43LTQ2LjdjLS4yIDMuMy0uMyA2LjYtLjMgOS45bDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w2OS4xIDM1OS4yYy0zLjQgNS44LTUuMSAxMi4zLTUuMSAxOSAwIDIwLjkgMTYuOSAzNy44IDM3LjggMzcuOGwyNDQuNCAwLTQ4LTQ4LTE3OC42IDAgMTIuOS0yMi4xek0yMjAuMSA0NjRjOS45IDI4IDM2LjYgNDggNjcuOSA0OHM1OC0yMCA2Ny45LTQ4bC0xMzUuOCAweiJdfSxoUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTI4OC4xLTMyYzkgMCAxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4ycy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXptMCA3Ni44TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgMTEzLjMtNTcuNmM2LjgtMy41IDE0LjktMy41IDIxLjggMGwxMTMuMyA1Ny42LTE5LjgtMTI1LjVjLTEuMi03LjYgMS4zLTE1LjMgNi43LTIwLjdsODkuOC04OS45LTEyNS41LTIwYy03LjYtMS4yLTE0LjEtNi0xNy42LTEyLjhMMjg4LjEgNDQuOHoiXX0sZlJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAwIDgwLjMtMjAuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNCA0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjc5LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMC0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDQ4IDUyIDQ4IDI0em0wIDc3LjVsOTYuNi0yNC4yYzI3LTYuNyA1NS41LTMuNiA4MC40IDguOCA1NC45IDI3LjQgMTE4LjcgMjkuNyAxNzUgNi44bDAgMjQxLjgtMjQuNCA5LjFjLTMzLjcgMTIuNi03MS4yIDEwLjctMTAzLjQtNS40LTQ4LjItMjQuMS0xMDMuMy0zMC4xLTE1NS42LTE3LjFsLTY4LjYgMTcuMiAwLTIzN3oiXX0sbVJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTM2OCA4MGMtMy4yIDAtNi4yIC40LTguOSAxLjMtMTkuMSA1LjUtNDYuMSAxMC43LTc0LjMgMy4zLTU3LjQtMTQuOS0xMjQuNiA3LjQtMTc0LjcgNTcuNVMzNy43IDI1OS40IDUyLjYgMzE2LjhjNy4zIDI4LjIgMi4yIDU1LjItMy4zIDc0LjMtLjggMi44LTEuMyA1LjgtMS4zIDguOSAwIDE3LjcgMTQuMyAzMiAzMiAzMiAzLjIgMCA2LjItLjQgOC45LTEuMyAxOS4xLTUuNSA0Ni4xLTEwLjcgNzQuMy0zLjMgNTcuNCAxNC45IDEyNC42LTcuNCAxNzQuNy01Ny41czcyLjQtMTE3LjMgNTcuNS0xNzQuN2MtNy4zLTI4LjItMi4yLTU1LjIgMy4zLTc0LjMgLjgtMi44IDEuMy01LjggMS4zLTguOSAwLTE3LjctMTQuMy0zMi0zMi0zMnptMC00OGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNy0xLjEgMTUuMi0zLjEgMjIuMy00LjYgMTUuOC03LjEgMzIuOS0zIDQ4LjkgMjAuMSA3Ny42LTEwLjkgMTYxLjUtNzAgMjIwLjdzLTE0My4xIDkwLjItMjIwLjcgNzBjLTE2LTQuMS0zMy0xLjYtNDguOSAzLTcuMSAyLTE0LjYgMy4xLTIyLjMgMy4xLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtNy43IDEuMS0xNS4yIDMuMS0yMi4zIDQuNi0xNS44IDcuMS0zMi45IDMtNDguOS0yMC4xLTc3LjYgMTAuOS0xNjEuNSA3MC0yMjAuN1MyMTkuMyAxOCAyOTYuOCAzOC4xYzE2IDQuMSAzMyAxLjYgNDguOS0zIDcuMS0yIDE0LjYtMy4xIDIyLjMtMy4xek0yNDYuNyAxNjdjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzg1LjIgMjc4IDg5IDI2NS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxnUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDgwTDIyNCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYtNDggMCAwLTE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNjggMjg4bC0zMjAgMCAwIDEyOGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4ek02NCAxNjBsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sbjdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1oZWFydHMiLGljb246WzUxMiw1MTIsWzEyODUyNSwiZ3Jpbi1oZWFydHMiXSwiZjU4NCIsIk00NjQgMjU2YzAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM0OCAzNzAuOSA0OCAyNTZjMC0zLjUgLjEtNy4xIC4zLTEwLjYtMTQtMTMuOS0yOS43LTMzLjEtMzkuMy01Ni43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2UzUxMiAzOTcuNCA1MTIgMjU2YzAtMjMuMy0zLjEtNDUuOS04LjktNjcuMy05LjYgMjMuNy0yNS40IDQyLjgtMzkuMyA1Ni43IC4yIDMuNSAuMyA3IC4zIDEwLjZ6TTM2OCA1OC45YzExLjctNiAyNC41LTkuNiAzNy43LTEwLjYtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MxMy4yIDEgMjYgNC42IDM3LjcgMTAuNiAxMy44LTcuMSAyOS4zLTEwLjkgNDUuMS0xMC45bDIuOSAwYzguOSAwIDE3LjYgMS4yIDI1LjggMy41IDEyLjQtMi4zIDI1LjItMy41IDM4LjItMy41czI1LjggMS4yIDM4LjIgMy41YzguMi0yLjMgMTYuOS0zLjUgMjUuOC0zLjVsMi45IDBjMTUuOCAwIDMxLjMgMy44IDQ1LjEgMTAuOXptNC4yIDI0My40Yy0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCAxOS44IDU1LjkgNzMuMSA5NS45IDEzNS44IDk1LjkgNjIuNyAwIDExNi00MC4xIDEzNS44LTk2IDQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOHpNMzIyLjkgOTZMMzIwIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOXptLTE4OCAxNC45Yy05LjUtOS41LTIyLjUtMTQuOS0zNi0xNC45TDk2IDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMXoiXX0sYlJ0PW43ZSxsN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTY0LTkyYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sdlJ0PWw3ZSx4UnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wZGYiLGljb246WzU3Niw1MTIsW10sImYxYzEiLCJNMjA4IDQ4TDk2IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMCA0OC04MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDIyOS41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzk3LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDE0OS41LTQ4IDAgMC0xMjgtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzQ4LjEgMTYwTDI1NiA2Ny45IDI1NiAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0yNDAgMzgwbDMyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTEyIDAgMCAyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiA4MGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTEyIDAgMCA0MCAxMiAwem05Ni04MGwzMiAwYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJsLTMyIDBjLTExIDAtMjAtOS0yMC0yMGwwLTEyOGMwLTExIDktMjAgMjAtMjB6bTMyIDEyOGM2LjYgMCAxMi01LjQgMTItMTJsMC02NGMwLTYuNi01LjQtMTItMTItMTJsLTEyIDAgMCA4OCAxMiAwem03Ni0xMDhjMC0xMSA5LTIwIDIwLTIwbDQ4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgMjQgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTI4IDAgMCA0NGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjh6Il19LGM3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMjI0IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTk2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0seVJ0PWM3ZSxkN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTEyNS4yIDc2LjRjLTYuNS0xNCA1LTI4LjQgMjAuNC0yOC40bDIyMC44IDBjMTUuNCAwIDI2LjggMTQuNCAyMC40IDI4LjQtMjIuOCA0OS40LTcyLjggODMuNi0xMzAuOCA4My42cy0xMDcuOS0zNC4yLTEzMC44LTgzLjZ6bS0yLjYtMTczLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sd1J0PWQ3ZSx1N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLXdpbmstaGVhcnQiLGljb246WzY0MCw1MTIsWzEyODUzNiwia2lzcy13aW5rLWhlYXJ0Il0sImY1OTgiLCJNMzg2IDQzOS41Yy0yOS4yIDE1LjYtNjIuNSAyNC41LTk4IDI0LjUtMTE0LjkgMC0yMDgtOTMuMS0yMDgtMjA4UzE3My4yIDQ4IDI4OCA0OGMxMTMuMiAwIDIwNS4yIDkwLjQgMjA3LjkgMjAyLjkgMTQuMyAxLjUgMjguNiA2IDQxLjkgMTMuNyAyIDEuMiA0IDIuNCA1LjkgMy43IC4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy01LjgtMTIuOS0xMi0yOC41LTE3LjItNDUuMnpNMjU2IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC0xMi4zLTQuNi0yMy41LTEyLjItMzIgNy42LTguNSAxMi4yLTE5LjcgMTIuMi0zMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tNDgtNDhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNTItNDRsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxrUnQ9dTdlLFBiPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvcHkiLGljb246WzQ0OCw1MTIsW10sImYwYzUiLCJNMzg0IDMzNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTMzLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0MDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNnpNMTkyIDM4NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM3MC43IDE4LjdDMzU4LjcgNi43IDM0Mi41IDAgMzI1LjUgMEwxOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi00OCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMHoiXX0sU1J0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWtpbmciLGljb246WzQ0OCw1MTIsWzk4MThdLCJmNDNmIiwiTTIyNC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDAgMCA4MCAxNjEuOCAwYzIxLjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgNi40LTEuNiAxMi43LTQuNyAxOC4zTDM1Ny4yIDM3NC41IDQwNS42IDQzNWM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNzkuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZMOTAuOCAzNzQuNSA0LjcgMjE2LjZDMS42IDIxMC45IDAgMjA0LjYgMCAxOTguMiAwIDE3Ny4xIDE3LjEgMTYwIDM4LjIgMTYwbDE2MS44IDAgMC04MC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTMxLjggNDAwbC0zLjYgNC40LTQ3LjYgNTkuNiAyODYuNiAwLTQ3LjYtNTkuNi0zLjYtNC40LTE4NC4zIDB6bTEuMS00OC41bC4zIC41IDE4MS42IDAgLjMtLjUgNzguMy0xNDMuNS0zMzguNyAwIDc4LjMgMTQzLjV6Il19LHA3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbNjE4NDYsInBsdXMtc3F1YXJlIl0sImYwZmUiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxfUnQ9cDdlLE1SdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMTcwLjIgMjk1LjZjOC42LTEwLjEgNy41LTI1LjItMi42LTMzLjhzLTI1LjItNy41LTMzLjggMi42bC00OCA1NmMtNy43IDktNy43IDIyLjIgMCAzMS4ybDQ4IDU2YzguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhsLTM0LjYtNDAuNCAzNC42LTQwLjR6bTgwLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LGg3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4td2luayIsaWNvbjpbNTEyLDUxMixbImdyaW4td2luayJdLCJmNThjIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSx6UnQ9aDdlLGY3ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb25leS1iaWxsLTEiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLWFsdCJdLCJmM2QxIiwiTTExMiAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMjg4IDBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC0xNjBjLTM1LjMgMC02NC0yOC43LTY0LTY0bC0yODggMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMjU2IDE2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptLTE2IDQ0Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxDUnQ9ZjdlLFRSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0xNzYuOSAxMTEuMWMzMi4xLTE4LjkgNjkuMi0zMS4xIDExMS4xLTMxLjEgNjUuMiAwIDExOC44IDI5LjYgMTU5LjkgNjcuNyAzOC41IDM1LjcgNjUuMSA3OC4zIDc4LjYgMTA4LjMtMTMuNiAzMC00MC4yIDcyLjUtNzguNiAxMDguMy0zLjEgMi44LTYuMiA1LjYtOS40IDguNEwzOTMuOCAzMjhjMTQtMjAuNSAyMi4yLTQ1LjMgMjIuMi03MiAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOC0yNi43IDAtNTEuNSA4LjItNzIgMjIuMmwtMzkuMS0zOS4xem0xODIgMTgybC0xMDgtMTA4YzExLjEtNS44IDIzLjctOS4xIDM3LjEtOS4xIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTMuNC0zLjMgMjYtOS4xIDM3LjF6TTEwMy40IDE3My4ybC0zNC0zNGMtMzIuNiAzNi44LTU1IDc1LjgtNjYuOSAxMDQuNS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjYgMzcuMyAwIDcxLjItNy45IDEwMS41LTIwLjZMMzUyLjIgNDIyYy0yMCA2LjQtNDEuNCAxMC02NC4yIDEwLTY1LjIgMC0xMTguOC0yOS42LTE1OS45LTY3LjctMzguNS0zNS43LTY1LjEtNzguMy03OC42LTEwOC4zIDEwLjQtMjMuMSAyOC42LTUzLjYgNTQtODIuOHoiXX0sJFJ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem03MS4zIDI3NC4yYy0zLjItMTIuOS0xNi4yLTIwLjctMjkuMS0xNy41Uzg1LjUgMjczIDg4LjcgMjg1LjhsMzIgMTI4YzIuNSAxMC4yIDExLjQgMTcuNSAyMS45IDE4LjFzMjAuMS01LjcgMjMuOC0xNS41bDI1LjUtNjguMSAyNS41IDY4LjFjMy43IDkuOCAxMy4zIDE2LjEgMjMuOCAxNS41czE5LjQtNy45IDIxLjktMTguMWwzMi0xMjhjMy4yLTEyLjktNC42LTI1LjktMTcuNS0yOS4xcy0yNS45IDQuNi0yOS4xIDE3LjVsLTEzLjMgNTMuMi0yMC45LTU1LjhDMjExIDI2Mi4yIDIwMiAyNTYgMTkyIDI1NnMtMTkgNi4yLTIyLjUgMTUuNmwtMjAuOSA1NS44LTEzLjMtNTMuMnoiXX0sbTdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtYW5ncnkiLGljb246WzUxMiw1MTIsWzEyODU0NCwiYW5ncnkiXSwiZjU1NiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMTQ0YzI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwcy03NS43IDE5LjgtOTcuNSA1MGMtNy43IDEwLjgtNS4zIDI1LjggNS41IDMzLjVzMjUuOCA1LjMgMzMuNS01LjVjMTMuMS0xOC4yIDM0LjQtMzAgNTguNS0zMHptLTgwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtLjMgOS43IDMuMmMxMC41IDMuNSAyMS44LTIuMiAyNS4zLTEyLjZzLTIuMi0yMS44LTEyLjYtMjUuM2wtOTYtMzJjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNsMjguOSA5LjZjLTQuMSA1LjQtNi42IDEyLjEtNi42IDE5LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTcuMy0yLjQtMTQtNi42LTE5LjRsMjguOS05LjZjMTAuNS0zLjUgMTYuMS0xNC44IDEyLjYtMjUuM3MtMTQuOC0xNi4xLTI1LjMtMTIuNmwtOTYgMzJjLTEwLjUgMy41LTE2LjEgMTQuOC0xMi42IDI1LjNzMTQuOCAxNi4xIDI1LjMgMTIuNmw5LjctMy4yIDAgLjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnoiXX0sRFJ0PW03ZSxMUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOls0NDgsNTEyLFs5ODIyXSwiZjQ0MSIsIk0yMzItMzJjMTEwLjUgMCAyMDAgODkuNSAyMDAgMjAwbDAgMTI3LjdjMCAxOC45LTYuMSAzNy4xLTE3LjIgNTIuMmwtNS4xIDYuMi0zNi4zIDQwLjcgMzIuMSA0MC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNmwtLjIgNC44Yy0yLjQgMjMuOS0yMi42IDQyLjUtNDcuMSA0Mi41bC0yODkuMiAwLTQuOC0uMmMtMjMuOS0yLjQtNDIuNS0yMi42LTQyLjUtNDcuMSAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDM3LjYtNDcgMC0yNC4zYzAtMjQuMyAxMC4xLTQ3LjYgMjcuOC02NC4ybDYzLjUtNTkuNS0xNy40IDAtLjIgLjJjLTIwLjMgMjAuMy00OS42IDI4LjItNzcuMSAyMS4xbC01LjUtMS42Yy0zMC45LTEwLjMtNTIuMy0zOC01NC45LTcwLjFsLS4yLTYuNCAwLTEuNGMwLTE5LjcgNy4xLTM4LjggMTkuOS01My44bDc2LjEtODguOCAwLTQ3LjEgLjEtMi41QzExMy40LTIyLjYgMTIzLjYtMzIgMTM2LTMybDk2IDB6TTgwLjcgNDY0bDI4Ni42IDAtMzguNC00OC0yMDkuOSAwLTM4LjQgNDh6TTE2MCA0OGMwIDUuNy0yLjEgMTEuMy01LjggMTUuNkw3Mi4zIDE1OS4xQzY3IDE2NS40IDY0IDE3My40IDY0IDE4MS43bDAgMS40IC40IDUuMmMxLjkgMTEuOSAxMC4zIDIxLjkgMjEuOSAyNS44bDQuNSAxLjFjMTAuNSAxLjkgMjEuMy0xLjQgMjktOWw3LjItNy4yIDMuNy0zYzMuOS0yLjYgOC41LTQgMTMuMy00bDg4IDBjOS44IDAgMTguNyA2IDIyLjMgMTUuMnMxLjMgMTkuNi01LjkgMjYuM2wtMTA3LjggMTAxYy04LjEgNy42LTEyLjcgMTguMS0xMi43IDI5LjJsMCA0LjMgMjA1LjIgMCA0MC43LTQ1LjggMi4zLTIuOGM1LjEtNi44IDcuOC0xNS4yIDcuOC0yMy43TDM4NCAxNjhjMC04My45LTY4LjEtMTUyLTE1Mi0xNTJsLTcyIDAgMCAzMnptMzIgNzJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxnN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sRVJ0PWc3ZSxQUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wZWFjZSIsaWNvbjpbNDQ4LDUxMixbOTk5Nl0sImYyNWIiLCJNMjE5IDEuNGMtMzUuMi0zLjctNjYuNiAyMS44LTcwLjMgNTdsLTYuNCA2MC42LTE3LjQtNDkuNEMxMTMuMiAzNi4zIDc2LjYgMTguOCA0My4zIDMwLjVTLTcuNiA3OC44IDQuMSAxMTIuMUw1Ni45IDI2Mi4yQzQxLjcgMjc2LjcgMzIuMiAyOTcuMyAzMi4yIDMyMGwwIDI0YzAgOTIuOCA3NS4yIDE2OCAxNjggMTY4bDQ4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC0xMjBjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzYtLjcgMC0xLjUgMC0yLjIgMGw1LjktNTYuM2MzLjctMzUuMi0yMS44LTY2LjYtNTctNzAuM3ptLS4yIDE1NS40Yy02LjYgMTAuMS0xMC41IDIyLjItMTAuNSAzNS4ybDAgNDhjMCAuNyAwIDEuNCAwIDItNS4xLTEuMy0xMC41LTItMTYtMmwtNy40IDAtNS40LTE1LjMgMTctMTYxLjNjLjktOC44IDguOC0xNS4yIDE3LjYtMTQuMnMxNS4yIDguOCAxNC4yIDE3LjZsLTkuNSA5MC4xek03OS42IDg1LjZsNTQuMyAxNTQuNC0yMS43IDBjLTQgMC04IC4zLTExLjkgLjlMNDkuNCA5Ni4yYy0yLjktOC4zIDEuNS0xNy41IDkuOC0yMC40czE3LjUgMS41IDIwLjQgOS44ek0yNTYuMiAxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDh6bTM4LjQgMTA4YzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgNS41IDAgMTAuOS0uNyAxNi0ybDAgMTBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTQ4IDBjLTY2LjMgMC0xMjAtNTMuNy0xMjAtMTIwbDAtMjRjMC0xNy43IDE0LjMtMzIgMzItMzJsODAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtLjcgMC0xLjQgMC0yIDUuMSAxLjMgMTAuNSAyIDE2IDIgNy45IDAgMTUuNC0xLjQgMjIuNC00em03My42LTI4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4eiJdfSxJUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tcGFzcyIsaWNvbjpbNTEyLDUxMixbMTI5NTE3XSwiZjE0ZSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMwNi43IDY5LjFMMTYyLjQgMzgwLjZjLTE5LjQgNy41LTM4LjUtMTEuNi0zMS0zMWw1NS41LTE0NC4zYzMuMy04LjUgOS45LTE1LjEgMTguNC0xOC40bDE0NC4zLTU1LjVjMTkuNC03LjUgMzguNSAxMS42IDMxIDMxTDMyNS4xIDMwNi43Yy0zLjMgOC41LTkuOSAxNS4xLTE4LjQgMTguNHpNMjg4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxBUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlIixpY29uOls0NDgsNTEyLFs5NjMyLDk3MjMsOTcyNCw2MTU5MF0sImYwYzgiLCJNMzg0IDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxiN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluIixpY29uOls1MTIsNTEyLFsxMjg1MTIsImdyaW4iXSwiZjU4MCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sTlJ0PWI3ZSx2N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZSIsaWNvbjpbNTEyLDUxMixbMTI4NTc4LCJzbWlsZSJdLCJmMTE4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc3LjMgNjMuNEMxOTIuMyAzMzUgMjE4LjQgMzUyIDI1NiAzNTJzNjMuNy0xNyA3OC43LTMyLjZjOS4yLTkuNiAyNC40LTkuOSAzMy45LS43czkuOSAyNC40IC43IDMzLjljLTIyLjEgMjMtNjAgNDcuNC0xMTMuMyA0Ny40cy05MS4yLTI0LjQtMTEzLjMtNDcuNGMtOS4yLTkuNi04LjktMjQuOCAuNy0zMy45czI0LjgtOC45IDMzLjkgLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUlJ0PXY3ZSx4N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MjIsInNtaWxlLWJlYW0iXSwiZjViOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sT1J0PXg3ZSxGUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLWNsb3NlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTE4NSIsIk00NDggNDAwTDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTQ0IDQxNiAwIDAgMTQ0YzAgOC44LTcuMiAxNi0xNiAxNnptMTYtMjA4bC00MTYgMCAwLTk2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzguNyAwYzMuNSAwIDYuOCAxLjEgOS42IDMuMkwyNTAuNyAxMTJjMTMuOCAxMC40IDMwLjcgMTYgNDggMTZMNDQ4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OHpNNjQgNDQ4bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDI5OC43IDgwYy02LjkgMC0xMy43LTIuMi0xOS4yLTYuNEwyNDEuMSA0NC44QzIzMCAzNi41IDIxNi41IDMyIDIwMi43IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LEJSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJrZXlib2FyZCIsaWNvbjpbNTc2LDUxMixbOWUzXSwiZjExYyIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE3NiAzMjBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em0tNzItNzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0seTdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utcm9sbGluZy1leWVzIixpY29uOls1MTIsNTEyLFsxMjg1ODAsIm1laC1yb2xsaW5nLWV5ZXMiXSwiZjVhNSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMTYwIDI2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xOTItNDBjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sSFJ0PXk3ZSx3N2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmltYWNlIixpY29uOls1MTIsNTEyLFsxMjg1NTYsImdyaW1hY2UiXSwiZjU3ZiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE1MiAzNTJjMCAxMS45IDguNiAyMS44IDIwIDIzLjdsMC00Ny4zYy0xMS40IDEuOS0yMCAxMS44LTIwIDIzLjd6bTg0IDI0bDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTY0IDBsMC00OC0yNCAwIDAgNDggMjQgMHptNDAtLjNjMTEuNC0xLjkgMjAtMTEuOCAyMC0yMy43cy04LjYtMjEuOC0yMC0yMy43bDAgNDcuM3pNMTc2IDI4OGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTYwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6bTAtMTEyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHFSdD13N2UsazdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3QiLGljb246WzUxMiw1MTIsWzEyODI4MCwiZG90LWNpcmNsZSJdLCJmMTkyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTQ2NGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6bTAgMzA0YTk2IDk2IDAgMSAxIDAtMTkyIDk2IDk2IDAgMSAxIDAgMTkyeiJdfSxqUnQ9azdlLFZSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtZ3JvdXAiLGljb246WzU3Niw1MTIsW10sImYyNDciLCJNNDAgNjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDggNTkuM2MxNi02LjUgMjguOS0xOS4zIDM1LjMtMzUuM2wzMjkuMyAwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMjY1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0zMjkuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTI2NS4zek01MTIgMGMtMjYuOSAwLTQ5LjkgMTYuNS01OS4zIDQwTDEyMy4zIDQwQzExMy45IDE2LjUgOTAuOSAwIDY0IDAgMjguNyAwIDAgMjguNyAwIDY0IDAgOTAuOSAxNi41IDExMy45IDQwIDEyMy4zbDAgMjY1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMzI5LjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjY1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0ek00ODggNjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgNDI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDI0IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTE5MiAxNzZsODggMCAwIDU2LTg4IDAgMC01NnptLTgtNDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTA0IDB6bTcyIDE4NGwwIDI0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTI0IDBjMCAxNC42LTMuOSAyOC4yLTEwLjcgNDBsMjYuNyAwIDAgNTYtODggMCAwLTE2LjRjLTIuNiAuMy01LjMgLjQtOCAuNGwtMzIgMHoiXX0sUzdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE2MCAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6TTE2MCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0wIDEyOGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTQ0LTgwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sVVJ0PVM3ZSxfN2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmLXN0cm9rZSIsaWNvbjpbNTc2LDUxMixbInN0YXItaGFsZi1hbHQiXSwiZjVjMCIsIk0zMDkuNS0xOC45Yy00LjEtOC0xMi40LTEzLjEtMjEuNC0xMy4xcy0xNy4zIDUuMS0yMS40IDEzLjFMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyODguMSA0MTcuNiA0MzIuNCA0OTFjOCA0LjEgMTcuNyAzLjMgMjUtMnMxMS0xNC4yIDkuNi0yMy4yTDQ0MS43IDMwNS45IDU1Ni4xIDE5MS40YzYuNC02LjQgOC42LTE1LjggNS44LTI0LjRzLTEwLjEtMTQuOS0xOS4xLTE2LjNMMzgzIDEyNS4zIDMwOS41LTE4Ljl6TTI2NC4xIDkxLjhsMCAyODQuMS0xMDAuMSA1MC45IDE5LjgtMTI1LjVjMS4yLTcuNi0xLjMtMTUuMy02LjctMjAuN2wtODkuOC04OS45IDEyNS41LTIwYzcuNi0xLjIgMTQuMS02IDE3LjYtMTIuOGwzMy44LTY2LjJ6bTQ4IDI4NC4xbDAtMjg0LjEgMzMuOCA2Ni4yYzMuNSA2LjggMTAgMTEuNiAxNy42IDEyLjhsMTI1LjUgMjAtODkuOCA4OS45Yy01LjQgNS40LTcuOSAxMy4xLTYuNyAyMC43bDE5LjggMTI1LjUtMTAwLjEtNTAuOXoiXX0sV1J0PV83ZSxHUnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS12aWRlbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOCIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAyODhsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LE03ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxLUnQ9TTdlLFlSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYyNWEiLCJNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMzZjMCAxMC4zIDYuNiAxOS41IDE2LjQgMjIuOHMyMC42LS4xIDI2LjgtOC4zYzMtMy45IDcuNi02LjQgMTIuOC02LjQgOC44IDAgMTYgNy4yIDE2IDE2IDAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDcuOCAwIDE0LjMgNS42IDE1LjcgMTMgMS42IDguMiA3LjMgMTUuMSAxNS4xIDE4czE2LjcgMS42IDIzLjMtMy42YzIuNy0yLjEgNi4xLTMuNCA5LjktMy40IDguOCAwIDE2IDcuMiAxNiAxNmwwIDEyMGMwIDM5LjgtMzIuMiA3Mi03MiA3MmwtMTE2LjYgMGMtMzcuNCAwLTcyLjQtMTguNy05My4yLTQ5LjlMNTAuNyAzMTIuOWMtNC45LTcuNC0yLjktMTcuMyA0LjQtMjIuMnMxNy4zLTIuOSAyMi4yIDQuNEwxMTYgMzUzLjJjNS45IDguOCAxNi44IDEyLjcgMjYuOSA5LjdzMTctMTIuNCAxNy0yM0wxNjAgNjR6TTE3NiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE5Ny43QzkxLjIgMjM4IDU1LjUgMjMyLjggMjguNSAyNTAuNy0uOSAyNzAuNC04LjkgMzEwLjEgMTAuOCAzMzkuNUw3OC4zIDQ0MC44YzI5LjcgNDQuNSA3OS42IDcxLjIgMTMzLjEgNzEuMkwzMjggNTEyYzY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTQuNSAwLTguOCAuNS0xMyAxLjMtMTEuNy0xNS40LTMwLjItMjUuMy01MS0yNS4zLTYuOSAwLTEzLjUgMS4xLTE5LjcgMy4xLTExLjYtMTYuNC0zMC43LTI3LjEtNTIuMy0yNy4xLTIuNyAwLTUuNCAuMi04IC41TDI0MCA2NGMwLTM1LjMtMjguNy02NC02NC02NHptNDggMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6Il19LFpSdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWdpc3RlcmVkIixpY29uOls1MTIsNTEyLFsxNzRdLCJmMjVkIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTU2IDM0LjQgMCA0MSA2OC4zYzYuOCAxMS40IDIxLjYgMTUgMzIuOSA4LjJzMTUtMjEuNiA4LjItMzIuOWwtMzAuMi01MC4zYzI0LjYtMTEuNSA0MS42LTM2LjQgNDEuNi02NS4zIDAtMzkuOC0zMi4yLTcyLTcyLTcybC04MCAwem03MiA5NmwtNDggMCAwLTQ4IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMHoiXX0sZldhPXtmYVNxdWFyZU1pbnVzOmlnZSxmYU1pbnVzU3F1YXJlOlBJdCxmYUNhbGVuZGFyQ2hlY2s6SUl0LGZhRmFjZUtpc3M6cmdlLGZhS2lzczpBSXQsZmFQYXN0ZTpRMyxmYUZpbGVDbGlwYm9hcmQ6Tkl0LGZhSGFuZFBvaW50TGVmdDpSSXQsZmFGaWxlRXhjZWw6T0l0LGZhRW52ZWxvcGU6Rkl0LGZhU3F1YXJlQ2FyZXREb3duOm9nZSxmYUNhcmV0U3F1YXJlRG93bjpCSXQsZmFUcnVjazpISXQsZmFCZWxsOnFJdCxmYU1lc3NhZ2U6SjMsZmFDb21tZW50QWx0OmpJdCxmYUZhY2VEaXp6eTpuZ2UsZmFEaXp6eTpWSXQsZmFDYWxlbmRhckRheXM6bGdlLGZhQ2FsZW5kYXJBbHQ6VUl0LGZhSGFuZFBvaW50VXA6V0l0LGZhSGFuZExpemFyZDpHSXQsZmFTcXVhcmVGdWxsOktJdCxmYUNpcmNsZVBhdXNlOmNnZSxmYVBhdXNlQ2lyY2xlOllJdCxmYUhhcmREcml2ZTpkZ2UsZmFIZGQ6Wkl0LGZhRmlsZVppcHBlcjp1Z2UsZmFGaWxlQXJjaGl2ZTpYSXQsZmFGbG9wcHlEaXNrOnBnZSxmYVNhdmU6UUl0LGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQ6aGdlLGZhR3JpblRvbmd1ZVNxdWludDpKSXQsZmFDYW1lcmE6ZmdlLGZhQ2FtZXJhQWx0OmVBdCxmYUZhY2VHcmluU3RhcnM6bWdlLGZhR3JpblN0YXJzOnRBdCxmYUV5ZTphQXQsZmFGYWNlU2FkVGVhcjpnZ2UsZmFTYWRUZWFyOnNBdCxmYVNoYXJlRnJvbVNxdWFyZTpiZ2UsZmFTaGFyZVNxdWFyZTppQXQsZmFOb3RlU3RpY2t5OnZnZSxmYVN0aWNreU5vdGU6ckF0LGZhSGFuZEJhY2tGaXN0OnhnZSxmYUhhbmRSb2NrOm9BdCxmYUNoZXNzUXVlZW46bkF0LGZhRmFjZUdyaW5UZWFyczp5Z2UsZmFHcmluVGVhcnM6bEF0LGZhUGVuVG9TcXVhcmU6d2dlLGZhRWRpdDpjQXQsZmFGYWNlR3JpbkJlYW1Td2VhdDprZ2UsZmFHcmluQmVhbVN3ZWF0OmRBdCxmYUNsb2NrOlNnZSxmYUNsb2NrRm91cjp1QXQsZmFGYWNlTGF1Z2hXaW5rOl9nZSxmYUxhdWdoV2luazpwQXQsZmFQYXBlclBsYW5lOmhBdCxmYUhlYXJ0OmZBdCxmYUZvbnRBd2Vzb21lOlpyZSxmYUZvbnRBd2Vzb21lRmxhZzptQXQsZmFGb250QXdlc29tZUxvZ29GdWxsOmdBdCxmYUNsb25lOmJBdCxmYUZvbGRlck9wZW46dkF0LGZhV2luZG93TWluaW1pemU6eEF0LGZhU3RhckhhbGY6eUF0LGZhQWxhcm1DbG9jazp3QXQsZmFOZXdzcGFwZXI6a0F0LGZhSG9zcGl0YWw6WHJlLGZhSG9zcGl0YWxBbHQ6U0F0LGZhSG9zcGl0YWxXaWRlOl9BdCxmYUNpcmNsZVN0b3A6TWdlLGZhU3RvcENpcmNsZTpNQXQsZmFPYmplY3RVbmdyb3VwOnpBdCxmYUNvbW1lbnQ6Q0F0LGZhQ2hlc3NQYXduOlRBdCxmYUNhbGVuZGFyUGx1czokQXQsZmFDbGlwYm9hcmQ6REF0LGZhVGh1bWJzRG93bjpMQXQsZmFJZEJhZGdlOkVBdCxmYVNxdWFyZUNoZWNrOnpnZSxmYUNoZWNrU3F1YXJlOlBBdCxmYUNoZXNzQmlzaG9wOklBdCxmYUVudmVsb3BlT3BlbjpBQXQsZmFDaXJjbGVYbWFyazp1aCxmYVRpbWVzQ2lyY2xlOk5BdCxmYVhtYXJrQ2lyY2xlOlJBdCxmYVNxdWFyZUNhcmV0VXA6Q2dlLGZhQ2FyZXRTcXVhcmVVcDpPQXQsZmFGaWxlSW1hZ2U6RkF0LGZhU3F1YXJlQ2FyZXRSaWdodDpUZ2UsZmFDYXJldFNxdWFyZVJpZ2h0OkJBdCxmYVN1bjpFYixmYUltYWdlOkhBdCxmYUxpZ2h0YnVsYjpxQXQsZmFBZGRyZXNzQ2FyZDpRcmUsZmFDb250YWN0Q2FyZDpqQXQsZmFWY2FyZDpWQXQsZmFGYWNlTWVoOiRnZSxmYU1laDpVQXQsZmFNYXA6V0F0LGZhSGFuZFBvaW50RG93bjpHQXQsZmFGYWNlTWVoQmxhbms6RGdlLGZhTWVoQmxhbms6S0F0LGZhRmFjZUdyaW5Ub25ndWU6TGdlLGZhR3JpblRvbmd1ZTpZQXQsZmFGdXRib2w6SnJlLGZhRnV0Ym9sQmFsbDpaQXQsZmFTb2NjZXJCYWxsOlhBdCxmYUZhY2VTdXJwcmlzZTpFZ2UsZmFTdXJwcmlzZTpRQXQsZmFGb2xkZXI6UGdlLGZhRm9sZGVyQmxhbms6SkF0LGZhQ2xvdWQ6ZU50LGZhQ2lyY2xlOnROdCxmYUZhY2VHcmluU3F1aW50OklnZSxmYUdyaW5TcXVpbnQ6YU50LGZhQ2lyY2xlVXNlcjpBZ2UsZmFVc2VyQ2lyY2xlOnNOdCxmYVJlY3RhbmdsZUxpc3Q6TmdlLGZhTGlzdEFsdDppTnQsZmFIYW5kOlJnZSxmYUhhbmRQYXBlcjpyTnQsZmFUaHVtYnNVcDpvTnQsZmFCdWlsZGluZzpuTnQsZmFDaGVzc1Jvb2s6bE50LGZhQ2lyY2xlUXVlc3Rpb246T2dlLGZhUXVlc3Rpb25DaXJjbGU6Y050LGZhRmlsZTpkTnQsZmFGYWNlU2FkQ3J5OkZnZSxmYVNhZENyeTp1TnQsZmFDYWxlbmRhck1pbnVzOnBOdCxmYUZhY2VUaXJlZDpCZ2UsZmFUaXJlZDpoTnQsZmFIYW5kUG9pbnRSaWdodDpmTnQsZmFDaXJjbGVVcDpIZ2UsZmFBcnJvd0FsdENpcmNsZVVwOm1OdCxmYUhhbmRTY2lzc29yczpnTnQsZmFHZW06Yk50LGZhUmVjdGFuZ2xlWG1hcms6S2ssZmFSZWN0YW5nbGVUaW1lczp2TnQsZmFUaW1lc1JlY3RhbmdsZTp4TnQsZmFXaW5kb3dDbG9zZTp5TnQsZmFUcmFzaENhbjplZixmYVRyYXNoQWx0OndOdCxmYUxpZmVSaW5nOmtOdCxmYUNvcHlyaWdodDpTTnQsZmFDaXJjbGVMZWZ0OnFnZSxmYUFycm93QWx0Q2lyY2xlTGVmdDpfTnQsZmFDYWxlbmRhcjpNTnQsZmFGYWNlRnJvd25PcGVuOmpnZSxmYUZyb3duT3Blbjp6TnQsZmFDaGFydEJhcjpWZ2UsZmFCYXJDaGFydDpDTnQsZmFIb3VzZTpZayxmYUhvbWU6VE50LGZhSG9tZUFsdDokTnQsZmFIb21lTGdBbHQ6RE50LGZhRmFjZUZyb3duOlVnZSxmYUZyb3duOkxOdCxmYVVzZXI6ZW9lLGZhVXNlckFsdDpFTnQsZmFVc2VyTGFyZ2U6UE50LGZhU25vd2ZsYWtlOklOdCxmYUJvb2ttYXJrOkFOdCxmYVNxdWFyZUNhcmV0TGVmdDpXZ2UsZmFDYXJldFNxdWFyZUxlZnQ6Tk50LGZhSGFuZHNoYWtlOnRvZSxmYUhhbmRzaGFrZUFsdDpSTnQsZmFIYW5kc2hha2VTaW1wbGU6T050LGZhRmFjZVNtaWxlV2luazpHZ2UsZmFTbWlsZVdpbms6Rk50LGZhRmFjZUdyaW5TcXVpbnRUZWFyczpLZ2UsZmFHcmluU3F1aW50VGVhcnM6Qk50LGZhRmlsZUF1ZGlvOkhOdCxmYUNhbGVuZGFyWG1hcms6WWdlLGZhQ2FsZW5kYXJUaW1lczpxTnQsZmFDaXJjbGVEb3duOlpnZSxmYUFycm93QWx0Q2lyY2xlRG93bjpqTnQsZmFGaWxlTGluZXM6YW9lLGZhRmlsZUFsdDpWTnQsZmFGaWxlVGV4dDpVTnQsZmFDb21tZW50czpXTnQsZmFDaXJjbGVDaGVjazp0ZixmYUNoZWNrQ2lyY2xlOkdOdCxmYU1vb246S050LGZhQ2xvc2VkQ2FwdGlvbmluZzpZTnQsZmFJbWFnZXM6Wk50LGZhQ2lyY2xlUmlnaHQ6WGdlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpYTnQsZmFJZENhcmQ6UWdlLGZhRHJpdmVyc0xpY2Vuc2U6UU50LGZhQ2lyY2xlUGxheTpKZ2UsZmFQbGF5Q2lyY2xlOkpOdCxmYUZhY2VMYXVnaEJlYW06ZTdlLGZhTGF1Z2hCZWFtOmVSdCxmYUFkZHJlc3NCb29rOnQ3ZSxmYUNvbnRhY3RCb29rOnRSdCxmYUhvdXJnbGFzczphN2UsZmFIb3VyZ2xhc3NFbXB0eTphUnQsZmFIZWFkcGhvbmVzOnNvZSxmYUhlYWRwaG9uZXNBbHQ6c1J0LGZhSGVhZHBob25lc1NpbXBsZTppUnQsZmFGaWxlUG93ZXJwb2ludDpyUnQsZmFXaW5kb3dNYXhpbWl6ZTpvUnQsZmFDb21tZW50RG90czpzN2UsZmFDb21tZW50aW5nOm5SdCxmYUZhY2VHcmluVG9uZ3VlV2luazppN2UsZmFHcmluVG9uZ3VlV2luazpsUnQsZmFIb3VyZ2xhc3NIYWxmOnI3ZSxmYUhvdXJnbGFzczI6Y1J0LGZhQ3JlZGl0Q2FyZDpvN2UsZmFDcmVkaXRDYXJkQWx0OmRSdCxmYUhhbmRTcG9jazp1UnQsZmFCZWxsU2xhc2g6cFJ0LGZhU3RhcjpoUnQsZmFGbGFnOmZSdCxmYUxlbW9uOm1SdCxmYVdpbmRvd1Jlc3RvcmU6Z1J0LGZhRmFjZUdyaW5IZWFydHM6bjdlLGZhR3JpbkhlYXJ0czpiUnQsZmFGYWNlS2lzc0JlYW06bDdlLGZhS2lzc0JlYW06dlJ0LGZhRmlsZVBkZjp4UnQsZmFGYWNlR3JpbldpZGU6YzdlLGZhR3JpbkFsdDp5UnQsZmFGYWNlTGF1Z2hTcXVpbnQ6ZDdlLGZhTGF1Z2hTcXVpbnQ6d1J0LGZhRmFjZUtpc3NXaW5rSGVhcnQ6dTdlLGZhS2lzc1dpbmtIZWFydDprUnQsZmFDb3B5OlBiLGZhQ2hlc3NLaW5nOlNSdCxmYVNxdWFyZVBsdXM6cDdlLGZhUGx1c1NxdWFyZTpfUnQsZmFGaWxlQ29kZTpNUnQsZmFGYWNlR3Jpbldpbms6aDdlLGZhR3Jpbldpbms6elJ0LGZhTW9uZXlCaWxsMTpmN2UsZmFNb25leUJpbGxBbHQ6Q1J0LGZhRXllU2xhc2g6VFJ0LGZhRmlsZVdvcmQ6JFJ0LGZhRmFjZUFuZ3J5Om03ZSxmYUFuZ3J5OkRSdCxmYUNoZXNzS25pZ2h0OkxSdCxmYUZhY2VHcmluQmVhbTpnN2UsZmFHcmluQmVhbTpFUnQsZmFIYW5kUGVhY2U6UFJ0LGZhQ29tcGFzczpJUnQsZmFTcXVhcmU6QVJ0LGZhRmFjZUdyaW46YjdlLGZhR3JpbjpOUnQsZmFGYWNlU21pbGU6djdlLGZhU21pbGU6UlJ0LGZhRmFjZVNtaWxlQmVhbTp4N2UsZmFTbWlsZUJlYW06T1J0LGZhRm9sZGVyQ2xvc2VkOkZSdCxmYUtleWJvYXJkOkJSdCxmYUZhY2VSb2xsaW5nRXllczp5N2UsZmFNZWhSb2xsaW5nRXllczpIUnQsZmFGYWNlR3JpbWFjZTp3N2UsZmFHcmltYWNlOnFSdCxmYUNpcmNsZURvdDprN2UsZmFEb3RDaXJjbGU6alJ0LGZhT2JqZWN0R3JvdXA6VlJ0LGZhRmFjZUZsdXNoZWQ6UzdlLGZhRmx1c2hlZDpVUnQsZmFTdGFySGFsZlN0cm9rZTpfN2UsZmFTdGFySGFsZkFsdDpXUnQsZmFGaWxlVmlkZW86R1J0LGZhRmFjZUxhdWdoOk03ZSxmYUxhdWdoOktSdCxmYUhhbmRQb2ludGVyOllSdCxmYVJlZ2lzdGVyZWQ6WlJ0fX0pO3ZhciBtV2EsWFJ0LFFSdCxKUnQsZU90LHRPdCxhT3Qsc090LGlPdCxyT3Qsb090LGlvZSxuT3QsbE90LGNPdCxkT3QsQzdlLHVPdCxUN2UscE90LGhPdCxmT3QsJDdlLG1PdCxnT3QsYk90LHZPdCxhZix4T3QseU90LEQ3ZSx3T3Qsa090LFNPdCxfT3QsTU90LHpPdCxDT3QsVE90LEw3ZSwkT3QsRE90LExPdCxFN2UsRU90LFBPdCxJT3QsQU90LE5PdCxzZixST3QsUDdlLE9PdCxGT3Qscm9lLEJPdCxIT3QsSTdlLHFPdCxBN2Usak90LFZPdCxON2UsVU90LFI3ZSxXT3QsTzdlLEdPdCxLT3QsWU90LFpPdCxYT3QsUU90LEpPdCxGN2UsZUZ0LHRGdCxhRnQsc0Z0LEI3ZSxpRnQsckZ0LG9GdCxuRnQsbEZ0LGNGdCxvb2UsZEZ0LHVGdCxwRnQsbm9lLGhGdCxmRnQsbUZ0LEg3ZSxnRnQsYkZ0LHZGdCx4RnQscTdlLHlGdCxPYix3RnQsRmIsa0Z0LFNGdCxqN2UsX0Z0LFY3ZSxNRnQsekZ0LGxvZSxDRnQsVEZ0LCRGdCxERnQsTEZ0LEVGdCxQRnQsSUZ0LEJiLHJmLEFGdCxORnQsVTdlLFJGdCxPRnQsWmssRkZ0LEJGdCxIRnQsVzdlLHFGdCxqRnQsVkZ0LEc3ZSxVRnQsSzdlLFdGdCxHRnQsS0Z0LFlGdCxZN2UsWkZ0LFhGdCxRRnQsWjdlLEpGdCxYN2UsZUJ0LHRCdCxhQnQsc0J0LGNvZSxpQnQsckJ0LG9CdCxuQnQsbEJ0LGNCdCxkQnQsUTdlLHVCdCxwQnQsaEJ0LGZCdCxtQnQsSjdlLGdCdCxiQnQsWGssdkJ0LHhCdCx5QnQsd0J0LGtCdCxTQnQsZG9lLF9CdCxNQnQsekJ0LENCdCxUQnQsZTllLCRCdCxEQnQsTEJ0LEVCdCxQQnQsSUJ0LHQ5ZSxBQnQsTkJ0LFJCdCxPQnQsYTllLEZCdCxCQnQsSEJ0LHM5ZSxxQnQsakJ0LGk5ZSxWQnQscjllLFVCdCxXQnQsbzllLEdCdCxLQnQsbjllLFlCdCxsOWUsWkJ0LFhCdCxvZixRQnQsbmYsSkJ0LGVIdCx1b2UsdEh0LGFIdCxzSHQsYzllLGlIdCxySHQsZDllLG9IdCxuSHQsbEh0LGNIdCx1OWUsZEh0LHVIdCxwSHQsaEh0LGZIdCxwOWUsbUh0LGdIdCxiSHQsdkh0LGg5ZSx4SHQsZjllLHlIdCx3SHQsa0h0LFNIdCxfSHQsbTllLE1IdCx6SHQsQ0h0LFRIdCxnOWUsJEh0LERIdCxiOWUsTEh0LHY5ZSxFSHQsUEh0LElIdCxBSHQsTkh0LFJIdCx4OWUsT0h0LEZIdCxCSHQsSEh0LHFIdCx5OWUsakh0LFZIdCxVSHQsV0h0LHc5ZSxHSHQsazllLEtIdCxIYixxYixTOWUsWUh0LF85ZSxaSHQsWEh0LFFIdCxmaCxNOWUsSkh0LGVxdCx0cXQsYXF0LHNxdCxpcXQsejllLHJxdCxqYixvcXQsbnF0LGxxdCxjcXQsZHF0LEM5ZSx1cXQsVDllLHBxdCxocXQsZnF0LG1xdCwkOWUsZ3F0LHBvZSxicXQsdnF0LHhxdCxEOWUseXF0LHdxdCxrcXQsU3F0LEw5ZSxfcXQsTXF0LHpxdCxDcXQsRTllLFRxdCwkcXQsRHF0LExxdCxFcXQsUHF0LElxdCxBcXQsTnF0LFJxdCxPcXQsRnF0LEJxdCxQOWUsSHF0LHFxdCxqcXQsVnF0LFVxdCxXcXQsR3F0LEk5ZSxLcXQsWXF0LFpxdCxJYixYcXQsUXF0LEpxdCxlanQsdGp0LEE5ZSxhanQsTjllLHNqdCxSOWUsaWp0LE85ZSxyanQsRjllLG9qdCxsZixuanQsQjllLGxqdCxIOWUsY2p0LHE5ZSxkanQsdWp0LHBqdCxoanQsajllLGZqdCxtanQsVjllLGdqdCxianQsVTllLHZqdCx4anQseWp0LHdqdCxXOWUsa2p0LFNqdCxfanQsRzllLE1qdCx6anQsUWssQ2p0LFRqdCwkanQsRGp0LExqdCxFanQsSzllLFBqdCxZOWUsSWp0LEFqdCxOanQsWjllLFJqdCxPanQsRmp0LFg5ZSxCanQsUTllLEhqdCxob2UscWp0LGpqdCxWanQsVWp0LFdqdCxHanQsS2p0LFlqdCxaanQsWGp0LFFqdCxKanQsZVZ0LHRWdCxKayxhVnQsc1Z0LGlWdCxyVnQsb1Z0LG5WdCxsVnQsY1Z0LEo5ZSxkVnQsdVZ0LHBWdCxoVnQsZlZ0LG1WdCxnVnQsYlZ0LHZWdCx4VnQsZWJlLHlWdCx3VnQsa1Z0LFNWdCxfVnQsTVZ0LHpWdCx0YmUsQ1Z0LGFiZSxUVnQsJFZ0LHNiZSxEVnQsTFZ0LEVWdCxQVnQsaWJlLElWdCxBVnQsTlZ0LHJiZSxSVnQsb2JlLE9WdCxGVnQsbmJlLEJWdCxIVnQscVZ0LGpWdCxsYmUsVlZ0LFVWdCxXVnQsVmIsR1Z0LEtWdCxZVnQsY2JlLFpWdCxYVnQsUVZ0LEpWdCxlVXQsZGJlLHRVdCxhVXQsc1V0LGlVdCxyVXQsdWJlLG9VdCxuVXQsbFV0LHBiZSxjVXQsZFV0LGZvZSx1VXQscFV0LGhVdCxmVXQsaGJlLG1VdCxnVXQsYlV0LGZiZSx2VXQsbWJlLHhVdCx5VXQsd1V0LGtVdCxjZixTVXQsZ2JlLF9VdCxNVXQselV0LENVdCxUVXQsYmJlLCRVdCx2YmUsRFV0LHhiZSxMVXQsRVV0LG1vZSxQVXQsSVV0LHliZSxBVXQsZ29lLE5VdCxSVXQsT1V0LEZVdCxCVXQsSFV0LHFVdCxqVXQsd2JlLFZVdCxVVXQsV1V0LEdVdCxLVXQsa2JlLFlVdCxaVXQsWFV0LFNiZSxRVXQsX2JlLEpVdCxNYmUsZVd0LHRXdCxhV3Qsc1d0LGlXdCxyV3Qsb1d0LHpiZSxuV3QsbFd0LGNXdCxkV3QsQ2JlLHVXdCxwV3QsaFd0LGZXdCxtV3QsZ1d0LFRiZSxiV3Qsdld0LCRiZSx4V3QseVd0LERiZSx3V3Qsa1d0LFNXdCxfV3QsTGJlLE1XdCx6V3QsQ1d0LEViZSxUV3QsUGJlLCRXdCxEV3QsTFd0LEVXdCxJYmUsUFd0LElXdCxBV3QsTld0LFJXdCxBYmUsT1d0LE5iZSxGV3QsUmJlLEJXdCxIV3QsT2JlLHFXdCxGYmUsald0LFZXdCxVV3QsV1d0LEdXdCxLV3QsWVd0LFpXdCxYV3QsUVd0LEpXdCxib2UsZUd0LHRHdCxwaCxhR3Qsc0d0LGlHdCx2b2Usckd0LG9HdCxuR3QsbEd0LGNHdCxkR3QsdUd0LEJiZSxwR3QsSGJlLGhHdCxmR3QsbUd0LHFiZSxnR3QsamJlLGJHdCx2R3QseG9lLHhHdCx5R3Qsd0d0LGtHdCxBYixTR3QsX0d0LE1HdCx6R3QsQ0d0LFRHdCwkR3QsVmJlLERHdCxMR3QsRUd0LFBHdCxVYmUsSUd0LEFHdCxOR3QsUkd0LE9HdCxGR3QsQkd0LFdiZSxIR3QscUd0LGpHdCxWR3QsVUd0LFdHdCxHYmUsR0d0LFViLEtiZSxLR3QsWUd0LFpHdCxZYmUsWEd0LFpiZSxRR3QsSkd0LGVLdCxYYmUsdEt0LGFLdCxRYmUsc0t0LGlLdCxyS3Qsb0t0LEpiZSxuS3QsbEt0LGNLdCxkS3QsdUt0LHBLdCxldmUsaEt0LGZLdCxXYixtS3QsZ0t0LHR2ZSxiS3Qsdkt0LHhLdCxlUyx5S3Qsd0t0LGtLdCxTS3QsdFMsX0t0LE1LdCx6S3QsQ0t0LFRLdCwkS3QsYXZlLERLdCx5b2UsTEt0LEVLdCxQS3Qsc3ZlLElLdCxBS3QsTkt0LFJLdCxPS3QsRkt0LEJLdCxpdmUsSEt0LEdiLHFLdCxqS3QsVkt0LHJ2ZSxVS3Qsb3ZlLFdLdCxHS3QsbnZlLEtLdCxhUyxZS3QsWkt0LFhLdCxRS3QsSkt0LGVZdCx0WXQsYVl0LHNZdCxsdmUsaVl0LHJZdCxvWXQsbll0LHdvZSxsWXQsY1l0LGN2ZSxkWXQsdVl0LHBZdCxkdmUsaFl0LGZZdCxtWXQsdXZlLGdZdCxiWXQsdll0LHhZdCx5WXQsd1l0LGtZdCxTWXQsX1l0LHB2ZSxNWXQsaHZlLHpZdCxDWXQsVFl0LCRZdCxEWXQsTFl0LEVZdCxmdmUsUFl0LElZdCxBWXQsbXZlLE5ZdCxSWXQsZ3ZlLE9ZdCxidmUsRll0LHZ2ZSxCWXQsSFl0LHFZdCx4dmUsall0LHl2ZSxWWXQsd3ZlLFVZdCxXWXQsa3ZlLEdZdCxTdmUsS1l0LF92ZSxZWXQsWll0LE12ZSxYWXQsUVl0LEpZdCxlWnQsdFp0LGFadCxzWnQsaVp0LHJadCxvWnQsenZlLG5adCxDdmUsbFp0LFR2ZSxjWnQsZFp0LEtiLHVadCwkdmUscFp0LGhadCxmWnQsRHZlLG1adCxnWnQsTHZlLGJadCxkZix2WnQseFp0LHladCxFdmUsd1p0LFB2ZSxrWnQsU1p0LEl2ZSxfWnQsQXZlLE1adCxOdmUselp0LENadCxUWnQsJFp0LERadCxSdmUsTFp0LE92ZSxFWnQsUFp0LEladCxBWnQsRnZlLE5adCxSWnQsT1p0LEJ2ZSxGWnQsQlp0LEhadCxIdmUscVp0LGpadCxWWnQsVVp0LHF2ZSxXWnQsR1p0LGp2ZSxLWnQsWVp0LFpadCxWdmUsWFp0LFFadCxKWnQsVXZlLGVYdCxXdmUsdFh0LGtvZSxhWHQsc1h0LGlYdCxHdmUsclh0LG9YdCxuWHQsS3ZlLGxYdCxjWHQsZFh0LFl2ZSx1WHQscFh0LGhYdCxmWHQsbVh0LGdYdCxiWHQsdlh0LHhYdCx5WHQsd1h0LGtYdCxadmUsU1h0LFliLF9YdCxYdmUsTVh0LHpYdCxDWHQsVFh0LFF2ZSwkWHQsRFh0LExYdCxFWHQsUFh0LElYdCxBWHQsc1MsTlh0LFJYdCxPWHQsRlh0LHVmLEJYdCxKdmUsSFh0LHFYdCxqWHQsZXhlLFZYdCxVWHQsdHhlLFdYdCxHWHQsS1h0LFlYdCxaWHQsYXhlLFhYdCxzeGUsUVh0LEpYdCxlUXQsaXhlLHRRdCxhUXQsc1F0LHJ4ZSxpUXQsclF0LG9RdCxuUXQsbFF0LGNRdCxkUXQsb3hlLHVRdCxaYixwUXQsaFF0LGZRdCxueGUsbVF0LGdRdCxseGUsYlF0LGN4ZSx2UXQseFF0LHlRdCxkeGUsd1F0LHV4ZSxrUXQscHhlLFNRdCxfUXQsaHhlLE1RdCx6UXQsQ1F0LFRRdCxmeGUsJFF0LGlTLERRdCxMUXQsRVF0LFBRdCxteGUsSVF0LGd4ZSxBUXQsTlF0LFJRdCxPUXQsYnhlLEZRdCxyUyxCUXQsSFF0LHFRdCx2eGUsalF0LFZRdCxVUXQsV1F0LHh4ZSxHUXQseXhlLEtRdCxZUXQsWlF0LHd4ZSxYUXQsa3hlLFFRdCxKUXQsU3hlLGVKdCxfeGUsdEp0LE14ZSxhSnQsenhlLHNKdCxpSnQsckp0LG9KdCxDeGUsbkp0LGxKdCxjSnQsZEp0LHVKdCxwSnQsaEp0LGZKdCxUeGUsbUp0LCR4ZSxnSnQsYkp0LHZKdCx4SnQsRHhlLHlKdCx3SnQsU29lLGtKdCxTSnQsX0p0LE1KdCx6SnQsQ0p0LFRKdCxvUywkSnQsREp0LExKdCxFSnQsUEp0LElKdCxBSnQsTkp0LFJKdCxPSnQsRkp0LEJKdCxISnQsX29lLHFKdCxqSnQsVkp0LFVKdCxXSnQsR0p0LEx4ZSxLSnQsRXhlLFlKdCxaSnQsWEp0LE1vZSxRSnQsSkp0LGVlYSxQeGUsdGVhLHpvZSxhZWEsc2VhLGllYSxyZWEsWGIsQ29lLG9lYSxuZWEsSXhlLGxlYSxjZWEsZGVhLHVlYSxBeGUscGVhLGhlYSxOeGUsZmVhLG1lYSxSeGUsZ2VhLGJlYSx2ZWEseGVhLHllYSx3ZWEsVG9lLGtlYSxTZWEsT3hlLF9lYSxNZWEsemVhLENlYSxUZWEsJGVhLERlYSxMZWEsRnhlLEVlYSxQZWEsQnhlLEllYSxIeGUsQWVhLE5lYSx6ZCxSZWEsT2VhLEZlYSxCZWEscXhlLEhlYSxxZWEsamVhLFZlYSxqeGUsVWVhLFZ4ZSxXZWEsJG9lLEdlYSxLZWEsWWVhLFV4ZSxaZWEsUWIsWGVhLFFlYSxXeGUsSmVhLERvZSxldGEsdHRhLGF0YSxzdGEsaXRhLHJ0YSxwZixvdGEsbnRhLEd4ZSxsdGEsY3RhLGR0YSxLeGUsdXRhLFl4ZSxwdGEsblMsaHRhLGZ0YSxtdGEsZ3RhLGJ0YSx2dGEseHRhLFp4ZSx5dGEsd3RhLFh4ZSxrdGEsUXhlLFN0YSxKeGUsX3RhLE10YSx6dGEsQ3RhLFR0YSwkdGEsZXllLER0YSxMdGEsRXRhLFB0YSxJdGEsdHllLEF0YSxheWUsTnRhLHN5ZSxSdGEsT3RhLEZ0YSxMb2UsQnRhLEh0YSxxdGEsanRhLFZ0YSxpeWUsVXRhLHJ5ZSxXdGEsR3RhLEt0YSxZdGEsb3llLFp0YSxueWUsWHRhLFF0YSxFb2UsSnRhLGVhYSx0YWEsYWFhLHNhYSxseWUsaWFhLHJhYSxjeWUsb2FhLGR5ZSxuYWEsbGFhLGNhYSxkYWEsdWFhLHBhYSxoYWEsZmFhLG1hYSxnYWEsdXllLGJhYSx2YWEseGFhLHlhYSxQb2Usd2FhLGthYSxTYWEsX2FhLHB5ZSxNYWEsemFhLGh5ZSxDYWEsVGFhLCRhYSxEYWEsZnllLExhYSxFYWEsUGFhLGhmLElhYSxBYWEsSW9lLE5hYSxSYWEsbXllLE9hYSxGYWEsQmFhLEhhYSxxYWEsZ3llLGphYSxWYWEsYnllLFVhYSx2eWUsV2FhLEdhYSxLYWEsWWFhLFphYSx4eWUsWGFhLHl5ZSxRYWEsd3llLEphYSxlc2EsdHNhLGFzYSxreWUsc3NhLGlzYSxTeWUscnNhLG9zYSxuc2EsX3llLGxzYSxjc2EsQW9lLGRzYSx1c2EsTXllLHBzYSx6eWUsaHNhLEN5ZSxmc2EsSmIsVHllLG1zYSwkeWUsZ3NhLGJzYSx2c2EseHNhLHlzYSx3c2EsTm9lLGtzYSxTc2EsX3NhLER5ZSxNc2EsenNhLENzYSxSb2UsVHNhLCRzYSxEc2EsTHNhLE9vZSxFc2EsUHNhLElzYSxBc2EsTHllLE5zYSxFeWUsUnNhLE9zYSxGc2EsQnNhLEhzYSxGb2UscXNhLGpzYSxWc2EsVXNhLFdzYSxHc2EsQm9lLEtzYSxZc2EsWnNhLFB5ZSxYc2EsUXNhLEpzYSxlaWEsSXllLHRpYSxhaWEsc2lhLGlpYSxyaWEsb2lhLEF5ZSxuaWEsbGlhLGNpYSxkaWEsTnllLHVpYSxwaWEsbFMsaGlhLGZpYSxtaWEsUnllLGdpYSxiaWEsdmlhLHhpYSx5aWEsd2lhLGtpYSxTaWEsX2lhLE95ZSxNaWEsemlhLEZ5ZSxDaWEsVGlhLCRpYSxCeWUsRGlhLExpYSxFaWEsUGlhLElpYSxIeWUsQWlhLGV2LHF5ZSxOaWEsUmlhLE9pYSxGaWEsQmlhLGp5ZSxIaWEscWlhLGppYSxWaWEsVWlhLFZ5ZSxXaWEsR2lhLEtpYSxZaWEsWmlhLEhvZSxYaWEsUWlhLEppYSxlcmEsdHJhLFV5ZSxhcmEsV3llLHNyYSxpcmEscnJhLHFvZSxvcmEsbnJhLGxyYSxHeWUsY3JhLEt5ZSxkcmEsdXJhLHByYSxocmEsZnJhLG1yYSxZeWUsZ3JhLGJyYSxaeWUsdnJhLFh5ZSx4cmEsUXllLHlyYSx3cmEsSnllLGtyYSxld2UsU3JhLF9yYSxNcmEsenJhLENyYSxUcmEsJHJhLERyYSxMcmEsdHdlLEVyYSxQcmEsam9lLElyYSxBcmEsYXdlLE5yYSxScmEsT3JhLHN3ZSxGcmEsQnJhLEhyYSxxcmEsaXdlLGpyYSxWcmEsVXJhLFdyYSxHcmEscndlLEtyYSxZcmEsWnJhLFZvZSxYcmEsUXJhLEpyYSxlb2EsdG9hLGFvYSxVb2Usc29hLGlvYSxyb2Esb3dlLG9vYSxud2Usbm9hLGxvYSxjb2EsZG9hLGx3ZSx1b2EsY3dlLHBvYSxob2EsZHdlLGZvYSxtb2EsdXdlLGdvYSxib2Esdm9hLHhvYSxwd2UseW9hLHdvYSxrb2EsU29hLGZmLF9vYSx0dixNb2Esem9hLENvYSxUb2EsaHdlLCRvYSxmd2UsRG9hLExvYSxFb2EsUG9hLGNTLElvYSxBb2EsTm9hLGRTLFJvYSxPb2EsRm9hLG13ZSxCb2EsSG9hLFdvZSxxb2Esam9hLFZvYSxVb2EsZ3dlLFdvYSxHb2EsS29hLGJ3ZSxZb2EsWm9hLFhvYSxRb2EsSm9hLHZ3ZSxlbmEsR29lLHRuYSxhbmEsc25hLGluYSxybmEsb25hLHh3ZSxubmEseXdlLGxuYSx3d2UsY25hLGRuYSxrd2UsdW5hLGF2LFN3ZSxwbmEsaG5hLGZuYSxfd2UsbW5hLGduYSxzdixNd2UsYm5hLHZuYSx4bmEseW5hLE5iLHduYSxrbmEsU25hLF9uYSx6d2UsTW5hLHpuYSxDbmEsQ3dlLFRuYSwkbmEsRG5hLExuYSxUd2UsRW5hLFBuYSxJbmEsQW5hLE5uYSxLb2UsUm5hLE9uYSxtZixGbmEsJHdlLEJuYSxEd2UsSG5hLHFuYSxqbmEsVm5hLEx3ZSxVbmEsV25hLEduYSxLbmEsRXdlLFluYSxabmEsWG5hLFB3ZSxRbmEsSm5hLGVsYSx0bGEsSXdlLGFsYSxzbGEsaWxhLEF3ZSxybGEsb2xhLG5sYSxnZixsbGEsY2xhLE53ZSxkbGEsUndlLHVsYSxPd2UscGxhLEZ3ZSxobGEsZmxhLEJ3ZSxtbGEsZ2xhLGJsYSx2bGEseGxhLHlsYSxId2Usd2xhLGtsYSxxd2UsU2xhLF9sYSxqd2UsTWxhLHpsYSxDbGEsVndlLFRsYSwkbGEsRGxhLExsYSxFbGEsUmIsUGxhLElsYSxBbGEsTmxhLFJsYSxPbGEsRmxhLEJsYSxIbGEscWxhLGpsYSxWbGEsVWxhLFdsYSxHbGEsS2xhLFlsYSxVd2UsWmxhLFhsYSxRbGEsSmxhLFd3ZSxlY2EsdGNhLGFjYSx1UyxzY2EsaWNhLHJjYSxvY2EsbmNhLEd3ZSxsY2EsYmYsY2NhLGRjYSx1Y2EsS3dlLHBjYSxoY2EsZmNhLG1jYSxZd2UsZ2NhLGJjYSxad2UsdmNhLHhjYSx5Y2EsWHdlLHdjYSxrY2EsUXdlLFNjYSxKd2UsX2NhLE1jYSx6Y2EsQ2NhLFRjYSxla2UsJGNhLERjYSxMY2EsdGtlLEVjYSxQY2EsSWNhLEFjYSxOY2EsUmNhLE9jYSxha2UsRmNhLHNrZSxCY2EsaWtlLEhjYSxZb2UscWNhLGpjYSxya2UsVmNhLG9rZSxVY2EsbmtlLFdjYSxHY2EsS2NhLFljYSxaY2EsWGNhLGxrZSxRY2EsY2tlLEpjYSxlMWEsdDFhLGExYSxzMWEsZGtlLGkxYSx1a2UscjFhLHBrZSxvMWEsaGtlLG4xYSxsMWEsYzFhLGQxYSxma2UsdTFhLHAxYSxab2UsaDFhLGYxYSxta2UsbTFhLGcxYSxiMWEsdjFhLGdrZSx4MWEseTFhLHcxYSxrMWEsYmtlLFMxYSxoaCxfMWEsTTFhLHZrZSx6MWEseGtlLEMxYSxUMWEsJDFhLFhvZSxEMWEsTDFhLEUxYSx5a2UsUDFhLHdrZSxJMWEsa2tlLEExYSxTa2UsTjFhLFIxYSxPMWEsRjFhLEIxYSxIMWEscTFhLFFvZSxqMWEsVjFhLFUxYSxXMWEsRzFhLF9rZSxLMWEsWTFhLFoxYSxYMWEsUTFhLEoxYSxNa2UsZTJhLHQyYSx6a2UsYTJhLHMyYSxKb2UsaTJhLHIyYSxvMmEsdmYsbjJhLGwyYSxjMmEsQ2tlLGQyYSxUa2UsdTJhLHAyYSxoMmEsZjJhLG0yYSwka2UsZzJhLGIyYSx2MmEseDJhLHkyYSxlbmUsdzJhLGsyYSxTMmEsXzJhLE0yYSxEa2UsejJhLExrZSxDMmEsVDJhLEVrZSwkMmEsUGtlLEQyYSxJa2UsTDJhLEFrZSxFMmEsUDJhLE5rZSxJMmEsQTJhLE4yYSxSMmEsTzJhLEYyYSxnV2EsUmtlPWcoKCk9PnttV2E9ImZhcyIsWFJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjAiLGljb246WzMyMCw1MTIsW10sIjMwIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2eiJdfSxRUnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMSIsaWNvbjpbMjU2LDUxMixbXSwiMzEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sSlJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjIiLGljb246WzM4NCw1MTIsW10sIjMyIiwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0eiJdfSxlT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMyIsaWNvbjpbMzIwLDUxMixbXSwiMzMiLCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6Il19LHRPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI0IixpY29uOlszODQsNTEyLFtdLCIzNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0eiJdfSxhT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNSIsaWNvbjpbMzIwLDUxMixbXSwiMzUiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHoiXX0sc090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjYiLGljb246WzM4NCw1MTIsW10sIjM2IiwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LGlPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI3IixpY29uOlszMjAsNTEyLFtdLCIzNyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sck90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjgiLGljb246WzMyMCw1MTIsW10sIjM4IiwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHoiXX0sb090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjkiLGljb246WzM4NCw1MTIsW10sIjM5IiwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHoiXX0saW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGxhci1zaWduIixpY29uOlszMjAsNTEyLFsxMjgxNzgsNjE3ODEsImRvbGxhciIsInVzZCJdLCIyNCIsIk0xMzYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTExNC45IDBjLTI0LjkgMC00NS4xIDIwLjItNDUuMSA0NS4xIDAgMjIuNSAxNi41IDQxLjUgMzguNyA0NC43bDkxLjYgMTMuMWM1My44IDcuNyA5My43IDUzLjcgOTMuNyAxMDggMCA2MC4zLTQ4LjkgMTA5LjEtMTA5LjEgMTA5LjFsLTEwLjkgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtNzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMzAuOSAwYzI0LjkgMCA0NS4xLTIwLjIgNDUuMS00NS4xIDAtMjIuNS0xNi41LTQxLjUtMzguNy00NC43bC05MS42LTEzLjFDNTUuOSAyNzMuNSAxNiAyMjcuNCAxNiAxNzMuMSAxNiAxMTIuOSA2NC45IDY0IDEyNS4xIDY0bDEwLjkgMCAwLTQweiJdfSxuT3Q9aW9lLGxPdD1pb2UsY090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvZyIsaWNvbjpbNTc2LDUxMixbMTI4MDIxXSwiZjZkMyIsIk0zMiAxMTJjMTYuNiAwIDMwLjIgMTIuNiAzMS44IDI4LjdsLjMgNi42QzY1LjggMTYzLjQgNzkuNCAxNzYgOTYgMTc2bDE3OS4xIDAgMTQwLjkgNjAuNCAwIDI0My42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzMS4zQzI5NiAzNjEgMjY4LjggMzY4IDI0MCAzNjhzLTU2LTctODAtMTkuM0wxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0NS42Yy0zNy4zLTEzLjItNjQtNDguNi02NC05MC40IDAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTUuOC0zMmM3LjcgMCAxNC45IDMuNiAxOS42IDkuOEwzOTIgMCA0NDQuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDMyIDU1MiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC02NCAwLTcgMjgtMTI0LjctNTMuNCAzMS42LTE0Ny4yQzMzNC4zLTIzLjkgMzQ0LjItMzIgMzU1LjgtMzJ6TTQ0OCA0NGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LGRPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb3ZpbmciLGljb246WzY0MCw1MTIsW10sImY0ZGYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxDN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlIixpY29uOls1MTIsNTEyLFsxMjgyNjAsInN5bmMtYWx0Il0sImYyZjEiLCJNNDgwLjEgMTkybDcuOSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlM0NzcuOSAuMiA0NzEgN0w0MTkuMyA1OC44QzM3NSAyMi4xIDMxOCAwIDI1NiAwIDEyNyAwIDIwLjMgOTUuNCAyLjYgMjE5LjUgLjEgMjM3IDEyLjIgMjUzLjIgMjkuNyAyNTUuN3MzMy43LTkuNyAzNi4yLTI3LjFDNzkuMiAxMzUuNSAxNTkuMyA2NCAyNTYgNjQgMzAwLjQgNjQgMzQxLjIgNzkgMzczLjcgMTA0LjNMMzI3IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzMzQuMyAxOTIgMzQ0IDE5MmwxMzYuMSAwem0yOS40IDEwMC41YzIuNS0xNy41LTkuNy0zMy43LTI3LjEtMzYuMnMtMzMuNyA5LjctMzYuMiAyNy4xYy0xMy4zIDkzLTkzLjQgMTY0LjUtMTkwLjEgMTY0LjUtNDQuNCAwLTg1LjItMTUtMTE3LjctNDAuM0wxODUgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIwIDE2OCAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA1MTEuOCA0MSA1MDVsNTEuOC01MS44QzEzNyA0ODkuOSAxOTQgNTEyIDI1NiA1MTIgMzg1IDUxMiA0OTEuNyA0MTYuNiA1MDkuNCAyOTIuNXoiXX0sdU90PUM3ZSxUN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNzIgMjAwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0scE90PVQ3ZSxoT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tanVzdGlmeSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOSIsIk00NDggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQ0OCA0NDhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyeiJdfSxmT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItY2hlY2siLGljb246WzQ0OCw1MTIsW10sImYyNzQiLCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0yMiAxNjEuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzMxLjIgMTM3IDI3OS4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTk1LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LCQ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MiLGljb246WzUxMiw1MTIsWzEyODUzNSwia2lzcyJdLCJmNTk2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxtT3Q9JDdlLGdPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXRjaGVuLXNldCIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYSIsIk0yNDAgMTQ0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OCA2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJsNzEuOCAwYzguOC05LjggMjEuNi0xNiAzNS44LTE2bDEwNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2bC03MS44IDB6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTYgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRsMC0xMTIgMjI0IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwbDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAgMzIgMTYgMHpNMjQgNDY0bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sYk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRuYSIsaWNvbjpbMzg0LDUxMixbMTI5NTE2XSwiZjQ3MSIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU3LjgtMjQuNCAxMDQuOC01Ny40IDE0NC41LTI0LjEgMjguOS01My44IDU1LjEtODMuNiA3OS41IDI5LjggMjQuNSA1OS41IDUwLjYgODMuNiA3OS41IDMzIDM5LjYgNTcuNCA4Ni43IDU3LjQgMTQ0LjUgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBDMCA0MjIuMiAyNC40IDM3NS4yIDU3LjQgMzM1LjUgODEuNSAzMDYuNiAxMTEuMiAyODAuNSAxNDEgMjU2IDExMS4yIDIzMS41IDgxLjUgMjA1LjQgNTcuNCAxNzYuNSAyNC40IDEzNi44IDAgODkuOCAwIDMyIDAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDI1NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSAzODRsLTE4Mi45IDBjLTguMiAxMC41LTE1LjEgMjEuMS0yMC42IDMybDIyNC4yIDBjLTUuNi0xMC45LTEyLjUtMjEuNS0yMC42LTMyek0yMzggMzM2Yy0xNC4zLTEzLTI5LjgtMjUuOC00Ni0zOS0xNi4yIDEzLjEtMzEuNyAyNi00NiAzOWw5MiAwek0xMDAuNSAxMjhsMTgyLjkgMGM4LjItMTAuNSAxNS4xLTIxLjEgMjAuNi0zMkw3OS45IDk2YzUuNiAxMC45IDEyLjUgMjEuNSAyMC42IDMyek0xNDYgMTc2YzE0LjMgMTMgMjkuOCAyNS44IDQ2IDM5IDE2LjItMTMuMSAzMS43LTI2IDQ2LTM5bC05MiAweiJdfSx2T3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtcmVhY2hpbmciLGljb246WzM4NCw1MTIsW10sImU1OWQiLCJNMjU2IDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMTUyLjkgMTY5LjNjLTIzLjctOC40LTQ0LjUtMjQuMy01OC44LTQ1LjhMNzQuNiA5NC4yQzY0LjggNzkuNSA0NSA3NS42IDMwLjMgODUuNFMxMS42IDExNSAyMS40IDEyOS44TDQwLjkgMTU5YzE4LjEgMjcuMSA0Mi44IDQ4LjQgNzEuMSA2Mi40TDExMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU4LjRjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42LTEyLjYgMC0yNC45LTItMzYuNi01LjgtLjktLjMtMS44LS43LTIuNy0uOXoiXX0sYWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtMjI0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDY0IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yNDggMTEybC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptNDAgNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYweiJdfSx4T3Q9YWYseU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1ldGVvciIsaWNvbjpbNTEyLDUxMixbOTczMl0sImY3NTMiLCJNNDkzLjcgLjlsLTE5NC4yIDc0LjcgMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOSAwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTIgMjc1LjQgNTEyIDM0Mi4zIDQ3My40IDM3OC42IDQxMC43TDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuMyA3NC43LTE5NC4yYy42LTEuNSAuOS0zLjIgLjktNC44IDAtNy41LTYtMTMuNS0xMy41LTEzLjUtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxEN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhcnMiLGljb246WzY0MCw1MTIsWyJjb2dzIl0sImYwODUiLCJNNDE1LjkgMjEwLjVjMTIuMi0zLjMgMjUgMi41IDMwLjUgMTMuOEw0NjUgMjYxLjljMTAuMyAxLjQgMjAuNCA0LjIgMjkuOSA4LjFsMzUtMjMuM2MxMC41LTcgMjQuNC01LjYgMzMuMyAzLjNsMTkuMiAxOS4yYzguOSA4LjkgMTAuMyAyMi45IDMuMyAzMy4zbC0yMy4zIDM0LjljMS45IDQuNyAzLjYgOS42IDUgMTQuNyAxLjQgNS4xIDIuMyAxMC4xIDMgMTUuMmwzNy43IDE4LjZjMTEuMyA1LjYgMTcuMSAxOC40IDEzLjggMzAuNWwtNyAyNi4yYy0zLjMgMTIuMS0xNC42IDIwLjMtMjcuMiAxOS41bC00Mi0yLjdjLTYuMyA4LjEtMTMuNiAxNS42LTIxLjkgMjJsMi43IDQxLjljLjggMTIuNi03LjQgMjQtMTkuNSAyNy4ybC0yNi4yIDdjLTEyLjIgMy4zLTI0LjktMi41LTMwLjUtMTMuOGwtMTguNi0zNy42Yy0xMC4zLTEuNC0yMC40LTQuMi0yOS45LTguMWwtMzUgMjMuM2MtMTAuNSA3LTI0LjQgNS42LTMzLjMtMy4zbC0xOS4yLTE5LjJjLTguOS04LjktMTAuMy0yMi44LTMuMy0zMy4zbDIzLjMtMzVjLTEuOS00LjctMy42LTkuNi01LTE0LjdzLTIuMy0xMC4yLTMtMTUuMmwtMzcuNy0xOC42Yy0xMS4zLTUuNi0xNy0xOC40LTEzLjgtMzAuNWw3LTI2LjJjMy4zLTEyLjEgMTQuNi0yMC4zIDI3LjItMTkuNWw0MS45IDIuN2M2LjMtOC4xIDEzLjYtMTUuNiAyMS45LTIybC0yLjctNDEuOGMtLjgtMTIuNiA3LjQtMjQgMTkuNS0yNy4ybDI2LjItN3pNNDQ4LjQgMzQwYTQ0IDQ0IDAgMSAwIC4xIDg4IDQ0IDQ0IDAgMSAwIC0uMS04OHpNMjI0LjktNDUuNWwyNi4yIDdjMTIuMSAzLjMgMjAuMyAxNC43IDE5LjUgMjcuMmwtMi43IDQxLjhjOC4zIDYuNCAxNS42IDEzLjggMjEuOSAyMmw0Mi0yLjdjMTIuNS0uOCAyMy45IDcuNCAyNy4yIDE5LjVsNyAyNi4yYzMuMiAxMi4xLTIuNSAyNC45LTEzLjggMzAuNWwtMzcuNyAxOC42Yy0uNyA1LjEtMS43IDEwLjItMyAxNS4ycy0zLjEgMTAtNSAxNC43bDIzLjMgMzVjNyAxMC41IDUuNiAyNC40LTMuMyAzMy4zTDMwNy4zIDI2MmMtOC45IDguOS0yMi44IDEwLjMtMzMuMyAzLjNMMjM5IDI0MmMtOS41IDMuOS0xOS42IDYuNy0yOS45IDguMWwtMTguNiAzNy42Yy01LjYgMTEuMy0xOC40IDE3LTMwLjUgMTMuOGwtMjYuMi03Yy0xMi4yLTMuMy0yMC4zLTE0LjctMTkuNS0yNy4ybDIuNy00MS45Yy04LjMtNi40LTE1LjYtMTMuOC0yMS45LTIybC00MiAyLjdjLTEyLjUgLjgtMjMuOS03LjQtMjcuMi0xOS41bC03LTI2LjJjLTMuMi0xMi4xIDIuNS0yNC45IDEzLjgtMzAuNWwzNy43LTE4LjZjLjctNS4xIDEuNy0xMC4xIDMtMTUuMiAxLjQtNS4xIDMtMTAgNS0xNC43TDU1LjEgNDYuNWMtNy0xMC41LTUuNi0yNC40IDMuMy0zMy4zTDc3LjYtNmM4LjktOC45IDIyLjgtMTAuMyAzMy4zLTMuM2wzNSAyMy4zYzkuNS0zLjkgMTkuNi02LjcgMjkuOS04LjFsMTguNi0zNy42YzUuNi0xMS4zIDE4LjMtMTcgMzAuNS0xMy44ek0xOTIuNCA4NGE0NCA0NCAwIDEgMCAwIDg4IDQ0IDQ0IDAgMSAwIDAtODh6Il19LHdPdD1EN2Usa090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsWzU4NjA2XSwiZTQ5NCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDhsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSxTT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNpY2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdhZCIsIk03NS44IDMwNC44TDEgMzUuN0MuMyAzMy4yIDAgMzAuNyAwIDI4LjIgMCAxMi42IDEyLjYgMCAyOC4yIDBMNDgyLjQgMGMxNi4zIDAgMjkuNiAxMy4yIDI5LjYgMjkuNiAwIDEuNi0uMSAzLjMtLjQgNC45TDQzNC42IDQ5Ni4xYy0xLjUgOS4yLTkuNSAxNS45LTE4LjggMTUuOS05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xLTkuMiAwLTE3LjItNi4yLTE5LjQtMTUuMUwyNDAgMTkyIDIxMC42IDM2OC4yYy0xLjUgOS4xLTkuNCAxNS44LTE4LjYgMTUuOHMtMTcuMS02LjctMTguNi0xNS44TDE0NCAxOTIgMTE1LjkgMzA0LjNjLTIuMyA5LjItMTAuNiAxNS43LTIwLjEgMTUuNy05LjMgMC0xNy41LTYuMi0yMC0xNS4yeiJdfSxfT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHJlbmQtdXAiLGljb246WzU3Niw1MTIsW10sImUwOTgiLCJNMzg0IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgyLjctMTY5LjQgMTY5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDE5MiAyNjkuMyA1NC42IDQwNi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyMCAzMDYuNyA0NjYuNyAxNjAgMzg0IDE2MHoiXX0sTU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTY5YSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2YzMwLjcgMCA1NS42LTI0LjcgNTYtNTUuMmMtNy41LTEyLjktMTMuNS0yNi44LTE3LjYtNDEuNWMtNC4yLTQtOS4xLTcuMy0xNC40LTkuOWwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDEwLjUgNmM1LjUtMTUuMyAxMy4xLTI5LjUgMjIuNC00Mi41bC05LjEtNS4yYy4xLTEuNCAuMi0yLjggLjItNC4zYzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4Ljh6TTQ0MC41IDEzMkM0MjUgMTA1LjIgMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljLjQgLjMgLjggLjYgMS4zIC45YzIxLjctOS41IDQ1LjYtMTQuOCA3MC44LTE0LjhjMiAwIDQgMCA1LjkgLjFjMTIuMS0xNy4zIDEzLjgtNDAuNiAyLjYtNjAuMXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTQ3LjktMjI1YzQuMyAzLjcgNS40IDkuOSAyLjYgMTQuOUw0NTIuNCAzNTZsMzUuNiAwYzUuMiAwIDkuOCAzLjMgMTEuNCA4LjJzLS4xIDEwLjMtNC4yIDEzLjRsLTk2IDcyYy00LjUgMy40LTEwLjggMy4yLTE1LjEtLjZzLTUuNC05LjktMi42LTE0LjlMNDExLjYgMzgwIDM3NiAzODBjLTUuMiAwLTkuOC0zLjMtMTEuNC04LjJzLjEtMTAuMyA0LjItMTMuNGw5Ni03MmM0LjUtMy40IDEwLjgtMy4yIDE1LjEgLjZ6Il19LHpPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdWVzdGlvbiIsaWNvbjpbMzIwLDUxMixbMTAwNjcsMTAwNjgsNjE3MzZdLCIzZiIsIk02NCAxNjBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQyLjctMjcuOSA3OC45LTY2LjUgOTEuNC0yOC40IDkuMi02MS41IDM1LjMtNjEuNSA3Ni42bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0YzAtMS43IC42LTQuMSAzLjUtNy4zIDMtMy4zIDcuOS02LjUgMTMuNy04LjQgNjQuMy0yMC43IDExMC44LTgxIDExMC44LTE1Mi4zIDAtODguNC03MS42LTE2MC0xNjAtMTYwUzAgNzEuNiAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem05NiAzNTJjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDAtNDAgMTcuOS00MCA0MCAxNy45IDQwIDQwIDQweiJdfSxDT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYm91bmQiLGljb246WzU3Niw1MTIsW10sImU0ZjkiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDIxMy45YzAgMTQuMiA1LjEgMjcuOSAxNC4zIDM4LjdMOTkuNiAzNTIgOTYgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zLjYgMCA4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN0w1NzYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTIuOC02OS4zIDkyLjRjLTUuNyA3LjYtMTYuMSA5LjYtMjQuMiA0LjgtOS43LTUuNy0xMi4xLTE4LjctNS4xLTI3LjVMNDQxIDE4MGMxMC44LTEzLjUgOC45LTMzLjMtNC40LTQ0LjVzLTMzLTkuOC00NC41IDMuMmwtNDYuNyA1Mi41QzMyOSAyMDkuNyAzMjAgMjMzLjQgMzIwIDI1OC4xbDAgOTMuOS02NCAwIDAtOTMuOWMwLTI0LjYtOS00OC40LTI1LjQtNjYuOGwtNDYuNy01Mi41Yy0xMS41LTEzLTMxLjMtMTQuNC00NC41LTMuMlMxMjQuMiAxNjYuNCAxMzUgMTgwbDI3LjYgMzQuNWM3IDguOCA0LjcgMjEuOC01LjEgMjcuNS04LjEgNC44LTE4LjYgMi43LTI0LjItNC44TDY0IDE0NC44IDY0IDMyem02NCA0NDhsMCAzMiAxMjggMCAwLTMyIDY0IDAgMCAzMiAxMjggMCAwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMOTYgNDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDB6Il19LFRPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1sdWdnYWdlIixpY29uOls1MTIsNTEyLFtdLCJlNTU0IiwiTTI2NC4zIDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDEyLjMtNyAyMy0xNy4yIDI4LjQtLjkgNC4yLTIuNCA4LjQtNC4zIDEyLjNsLTY5IDEzOC4xLS44LS40LTI3LjcgNTUuM2MtOS45IDE5LjgtMzMuOSAyNy44LTUzLjcgMTcuOUwxNC42IDUyMWMtMTkuOC05LjktMjcuOC0zMy45LTE3LjktNTMuN0w0Ny4zIDM2Ni4zYzkuOS0xOS44IDMzLjktMjcuOCA1My43LTE3LjlsMzAuNyAxNS4zIDI4LjMtNTYuNmMuMy0uNiAuNC0xLjIgLjQtMS44bDAtMTYuOWMwLS4yIDAtLjMgMC0uNWwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDQyMi4xIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNMNDQ4IDUwNy41YzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4yTDM3MiA0MjguNGMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMzggNDIxLjFjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDI1Ni40IDM3MXoiXX0sTDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbImZpbGUtZG93bmxvYWQiXSwiZjU2ZCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTc1IDQ0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTg2LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4Ni4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0eiJdfSwkT3Q9TDdlLERPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYm9vdGgiLGljb246WzU3Niw1MTIsW10sImY3NTYiLCJNNDAgMjRBNTYgNTYgMCAxIDEgMTUyIDI0IDU2IDU2IDAgMSAxIDQwIDI0em01MS4xIDg4YzIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM2IDguNCAxNS43IDEzLjQgMjYgMTMuNGwzMS4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzIwOS44IDM3My4zIDIyNCA0MDEuOCAyMjQgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDcwLjQgMzQ4LjhDNDYuMiAzMzAuNyAzMiAzMDIuMiAzMiAyNzJsMC0xMDAuOUMzMiAxMzguNSA1OC41IDExMiA5MS4xIDExMnpNMzIgNTEybDAtMTMyLjdjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMOTYgNDI4IDk2IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptNTQ0LTg4bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi0xNjggMGMtNy4xIDAtMTMuOC0zLjEtMTguNC04LjZzLTYuNS0xMi42LTUuMy0xOS42bDMwLjctMTc2LjctNjMuMS0xMzcuNiAwIDcyYy01LjItMS0xMC41LTEuNi0xNi0xLjZsLTMyIDAgMC0xMjBjMC0zMC45IDI1LjEtNTYgNTYtNTZMNTIwIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzNjh6TTI4OCAzMzZjNS41IDAgMTAuOC0uNiAxNi0xLjZMMzA0IDUyMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE4NCAzMiAweiJdfSxMT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jdXN0IixpY29uOls1NzYsNTEyLFtdLCJlNTIwIiwiTTMyOCAzMmMxMzcgMCAyNDggMTExIDI0OCAyNDhsMCA0MC0uNCA4LjJDNTcxLjUgMzY4LjUgNTM3LjQgNDAwIDQ5NiA0MDBsLTEyLjMgMCAyNS4yIDQ0LjFjNi42IDExLjUgMi42IDI2LjItOC45IDMyLjhzLTI2LjIgMi42LTMyLjctOC45bC0zOC44LTY3LjktODAuNCAwLTQ4LjIgNjkuN2MtNy41IDEwLjktMjIuNSAxMy42LTMzLjQgNi4xcy0xMy42LTIyLjUtNi4xLTMzLjRsMjkuMy00Mi4zLTc0LjUgMC01MS43IDcwLjJjLTcuOSAxMC43LTIyLjkgMTIuOS0zMy42IDUuMXMtMTIuOS0yMi45LTUuMS0zMy42bDQwLjUtNTUtNDMtMTYuNC03OS4zIDEwMC41Yy04LjIgMTAuNC0yMy4zIDEyLjItMzMuNyA0cy0xMi4yLTIzLjMtNC0zMy43bDI0MC0zMDQgMi4xLTIuM2M1LjItNS4xIDEyLjUtNy41IDE5LjktNi42IDguNCAxLjEgMTUuNiA2LjUgMTguOSAxNC4zbDIxLjcgNTAuNyA0MC45LTU1LjUgMi4xLTIuNGM1LjEtNS4zIDEyLjUtOCAyMC03LjIgOC41IDEgMTUuOSA2LjUgMTkuMyAxNC40bDQxLjggOTcuNSA2NC4yIDBjMTAuMiAwIDIwIDIgMjkgNS41LTE2LjQtOTQtOTguMy0xNjUuNS0xOTctMTY1LjVsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMHpNNDg4IDI5NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTQzLjUgMzMxLjFDMzYuMiAzMjEuNCAzMiAzMDkuNSAzMiAyOTYuOCAzMiAyNjUuNSA1Ny41IDI0MCA4OC45IDI0MGwyNy42IDAtNzIuOSA5MS4xek0yMjUuMSAyNDBsNDguMiAwIDEuNC0xLjktMTYuOS0zOS41LTMyLjcgNDEuNXptMTA3LjggMGw0Ni43IDAtMTcuMi00MC0yOS41IDQweiJdfSxFN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LXJpZ2h0Il0sImYzMGIiLCJNNTY2LjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAzOTYuOSAzODQgMzg0bDAtNjQtMzM2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzM2IDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjh6Il19LEVPdD1FN2UsUE90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWRyb3BsZXQiLGljb246WzU3Niw1MTIsW10sImU1OGMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjA4IDMwNGMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zMy4yIDM0LjUtNzggNTUuOC0xMDIuNCA4LjctMTAgMjMuOC0xMCAzMi41IDAgMjEuMiAyNC40IDU1LjggNjkuMSA1NS44IDEwMi40IDAgNDgtMzIuMiA3Mi03MiA3MnoiXX0sSU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1tZWRpY2FsIixpY29uOls1NzYsNTEyLFtdLCJlMDVjIiwiTTI0MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNTYgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC01NiAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTYtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwIDAtNTZ6TTY2LjcgMzg0bDQyLjUtNDIuNWMyNC0yNCA1Ni42LTM3LjUgOTAuNS0zNy41TDM1MiAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyLjYgMCAxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXM5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM0LjcgMHoiXX0sQU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmwyMDggMCAwLTY0LTIwOCAwek0xOTIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bS02NC02NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bTg4LTk2bC0uNiAwYzUuNCA5LjQgOC42IDIwLjMgOC42IDMyIDAgMTMuMi00IDI1LjQtMTAuOCAzNS42IDI0LjkgOC43IDQyLjggMzIuNSA0Mi44IDYwLjQgMCAxMS43LTMuMSAyMi42LTguNiAzMmw4LjYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTYxLjdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC0xMS42LTExLjZDNDI5LjUgNzcuNSAzOTYuOSA2NCAzNjMgNjRsLTI3IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTU2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnoiXX0sTk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGN1bGF0b3IiLGljb246WzM4NCw1MTIsWzEyODQyNV0sImYxZWMiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNOTYgNjRsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDE2OGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek04OCAzNTJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjMyLTI0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHoiXX0sc2Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWludXMiLGljb246WzQ0OCw1MTIsWzgyMTEsODcyMiwxMDEzNCwic3VidHJhY3QiXSwiZjA2OCIsIk0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxST3Q9c2YsUDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXotYSIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAtYWx0Il0sImY4ODIiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0yODggNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgMjI0IDMyMCAyMjRsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYxIDMyIDQ0OCAzMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00MTIuNiAyNzMuN0M0MDcuMiAyNjIuOCAzOTYuMSAyNTYgMzg0IDI1NnMtMjMuMiA2LjgtMjguNiAxNy43bC04MCAxNjBjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC04MC0xNjB6TTM4NCAzNTkuNmwyMC4yIDQwLjQtNDAuNCAwIDIwLjItNDAuNHoiXX0sT090PVA3ZSxGT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjEzMSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQyNC43IDM1OC44QzQ1OC45IDMyNC4yIDQ4MCAyNzYuNiA0ODAgMjI0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDM5LjMtMTUuNyA3NC45LTQxLjMgMTAwLjlMMzU2LjggMjkxQzM3My42IDI3My43IDM4NCAyNTAgMzg0IDIyNGwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMwLjItMTUxLTE1MXptMjk4LjMgNDM0bC00MS40LTQxLjRjLTMuMyAuMi02LjUgLjMtOS44IC4zLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0bDAtMTAuMi00My42LTQzLjZjLTIuOCAzLjktNC40IDguNy00LjQgMTMuOGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOS4zLTEuMiAxOC40LTMgMjcuMy01LjR6Il19LHJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVuIixpY29uOls0NDgsNTEyLFsicGVuLXNxdWFyZSIsInBlbmNpbC1zcXVhcmUiXSwiZjE0YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjUuOCAxMzkuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIzLjggMjMuOC03MS03MSAyMy44LTIzLjhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTExOS45IDI4OWw5MS41LTkxLjYgNzEgNzEtOTEuNiA5MS41Yy00LjEgNC4xLTkuMiA3LTE0LjkgOC40bC02MC4xIDE1Yy01LjUgMS40LTExLjItLjItMTUuMi00LjJzLTUuNi05LjctNC4yLTE1LjJsMTUtNjAuMWMxLjQtNS42IDQuMy0xMC44IDguNC0xNC45eiJdfSxCT3Q9cm9lLEhPdD1yb2UsSTdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZmlzdCIsaWNvbjpbMzg0LDUxMixbOTk5NCwiZmlzdC1yYWlzZWQiXSwiZjZkZSIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMi02NCAwIDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgODAtNjQgMCAwLTgwem0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03OC40Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDM3LjUgMzU3LjVDMTMuNSAzMzMuNSAwIDMwMC45IDAgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxxT3Q9STdlLEE3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNtcyIsaWNvbjpbNTEyLDUxMixbInNtcyJdLCJmN2NkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xNDAuOCAxNzIuOGwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnMxOC42LTQxLjYgNDEuNi00MS42em0xODguOCA0MS42YzAtMjMgMTguNi00MS42IDQxLjYtNDEuNmwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnptLTk4LjMtMzMuOGwyNC43IDQxLjEgMjQuNy00MS4xYzMuNy02LjIgMTEuMS05LjEgMTgtNy4yczExLjcgOC4yIDExLjcgMTUuNGwwIDEwMi40YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDQuNi04LjcgMTQuNWMtMi45IDQuOC04LjEgNy44LTEzLjcgNy44cy0xMC44LTMtMTMuNy03LjhsLTguNy0xNC41IDAgNDQuNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTEwMi40YzAtNy4yIDQuOC0xMy41IDExLjctMTUuNHMxNC4zIDEgMTggNy4yeiJdfSxqT3Q9QTdlLFZPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW0tY2FyZCIsaWNvbjpbMzg0LDUxMixbXSwiZjdjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyNTguNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDgwYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MCAxMjggMCAwLTcyLTk2IDB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtNzItODAgMCAwIDQwem0yNTYgMGwwLTQwLTEyOCAwIDAgNzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDAgMCA3MiA4MCAwIDAtNDB6Il19LE43ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS1iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbOTg3OCwiYmFsYW5jZS1zY2FsZSJdLCJmMjRlIiwiTTM4NCAzMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzOTguNCA5NmMtNS4yIDI1LjgtMjIuOSA0Ny4xLTQ2LjQgNTcuM2wwIDI5NC43IDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMCAwLTI5NC43Yy0yMy41LTEwLjMtNDEuMi0zMS42LTQ2LjQtNTcuM0wxMjggOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDBjMTQuNi0xOS40IDM3LjgtMzIgNjQtMzJzNDkuNCAxMi42IDY0IDMyem01NS42IDI4OEw1ODQuNCAzMjAgNTEyIDE5NS44IDQzOS42IDMyMHpNNTEyIDQxNmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXpNMTI2LjggMTk1LjhMNTQuNCAzMjAgMTk5LjMgMzIwIDEyNi44IDE5NS44ek0uOSAzMzcuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45UzExLjcgMzgyIC45IDMzNy4xeiJdfSxVT3Q9TjdlLFI3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXIiLGljb246WzUxMiw1MTIsWzEyODY2NCwiYXV0b21vYmlsZSJdLCJmMWI5IiwiTTEzNS4yIDExNy40bC0yNi4xIDc0LjYgMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0zMjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDMwNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxXT3Q9UjdlLE83ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9wLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImNyb3AtYWx0Il0sImY1NjUiLCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMjA4IDAgMC0zNTJ6TTM4NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgNjQgMjA4IDAgMCAzNTJ6Il19LEdPdD1PN2UsS090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lZGFsIixpY29uOls0NDgsNTEyLFsxMjc5NDFdLCJmNWEyIiwiTTIyNC4zIDEyOEwxMzkuNy0xMi45Yy02LjUtMTAuOC0yMC4xLTE0LjctMzEuMy05LjFMMjEuOCAyMS4zQzkuOSAyNy4yIDUuMSA0MS42IDExIDUzLjVMODAuNiAxOTIuNmMtMzAuMSAzMy45LTQ4LjMgNzguNS00OC4zIDEyNy40IDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtNDguOS0xOC4zLTkzLjUtNDguMy0xMjcuNEw0MzcuNiA1My41YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMkwzNDAuMi0yMi4xYy0xMS4yLTUuNi0yNC45LTEuNi0zMS4zIDkuMUwyMjQuMyAxMjh6bTMwLjggMTQyLjVjMS40IDIuOCA0IDQuNyA3IDUuMWw1MC4xIDcuM2M3LjcgMS4xIDEwLjcgMTAuNSA1LjIgMTZsLTM2LjMgMzUuNGMtMi4yIDIuMi0zLjIgNS4yLTIuNyA4LjNsOC42IDQ5LjljMS4zIDcuNi02LjcgMTMuNS0xMy42IDkuOWwtNDQuOC0yMy42Yy0yLjctMS40LTYtMS40LTguNyAwbC00NC44IDIzLjZjLTYuOSAzLjYtMTQuOS0yLjItMTMuNi05LjlsOC42LTQ5LjljLjUtMy0uNS02LjEtMi43LTguM2wtMzYuMy0zNS40Yy01LjYtNS40LTIuNS0xNC44IDUuMi0xNmw1MC4xLTcuM2MzLS40IDUuNy0yLjQgNy01LjFsMjIuNC00NS40YzMuNC03IDEzLjMtNyAxNi44IDBsMjIuNCA0NS40eiJdfSxZT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsIixpY29uOls1NzYsNTEyLFsxMjgyMjBdLCJmNzBlIiwiTTAgMTEyQzAgNzAuNSAzMS42IDM2LjQgNzIgMzIuNGwwLS40IDI4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNzYtMTc2IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjBjMCAyNC4zLTE5LjcgNDQtNDQgNDRzLTQ0LTE5LjctNDQtNDRsMC0yMjgtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OHpNMjM2LjggNDgwYzcuMS0xMy4xIDExLjItMjguMSAxMS4yLTQ0bDAtNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjI3LjIgMHpNODAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxaT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyeiJdfSxYT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyIixpY29uOls1MTIsNTEyLFtdLCJmMGIwIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzMyMCA0OTIuOSAzMjAgNDgwbDAtMTc4LjcgMTgyLjYtMTgyLjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0eiJdfSxRT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bSIsaWNvbjpbNTEyLDUxMixbMTI5MzQ1XSwiZjU2OSIsIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NiAxMTQuNiA5NiAwIDEyOCAwIDIwOEwwIDM2OGMwIDMxLjMgMjcuNCA1OC44IDcyIDc4LjdMNzIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMTkuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xTDIzMiAzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMy41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMUwzOTIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDIuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43bDAtMTYwYzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjUgMzguOCAxNS4xIDQ0LjQgMzAuNiA0NC40IDQxLjMgMCAuOC0yLjcgMTcuMi00NiAzNS45LTM4LjkgMTYuOC05NiAyOC4xLTE2MiAyOC4xUzEzMi45IDI2MC43IDk0IDI0My45Yy00My4zLTE4LjctNDYtMzUuMS00Ni0zNS45IDAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjMgMzguMy0xNC45IDk1LjQtMjIuNyAxNjMuNi0yMi43IDE4IDAgMzUuMSAuNSA1MS40IDEuNnoiXX0sSk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1waW4iLGljb246WzMyMCw1MTIsWzEyODIwNV0sImYyNzYiLCJNMTkyIDI4NC40QzI1Ni4xIDI2OS45IDMwNCAyMTIuNSAzMDQgMTQ0IDMwNCA2NC41IDIzOS41IDAgMTYwIDBTMTYgNjQuNSAxNiAxNDRjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40TDEyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5NS42ek0xNjggOTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNCA0Ni42LTEwNCAxMDQtMTA0IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxGN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZC1mbGlwIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1yaWdodCJdLCJmNTE2IiwiTTExOC4yIDYyLjRDMTAxLjUgNTYuOCA5Mi40IDM4LjYgOTggMjEuOVMxMjEuNy0zLjkgMTM4LjUgMS42bDExMyAzNy43YzEzLjktMjMuNSAzOS42LTM5LjMgNjguOS0zOS4zIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNyAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4ybDAgMzI2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuOCAyODhMMTI4LjMgMTYzLjggNTUuOSAyODggMjAwLjggMjg4em0tNzIuNCA5NmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXptMzgyLjgtOTIuMmwtNzIuNCAxMjQuMiAxNDQuOSAwLTcyLjQtMTI0LjJ6bTEyNiAxNDEuM0M2MjYuNCA0NzggNTc0LjEgNTEyIDUxMS4yIDUxMnMtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjF6Il19LGVGdD1GN2UsdEZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImU0YmQiLCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxMjggODIuNyAxMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjcgMC03My40LTczLjRDLTMuMSA0Mi4xLTMuMSAyMS45IDkuNCA5LjR6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MDIuNiA1NC42TDQyOS4zIDEyOCA0NDggMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxOC43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tNDUuMyA0NDhMMzg0IDQyOS4zIDM4NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDAgNzMuNCA3My40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwek05LjQgNDU3LjRMODIuNyAzODQgNjQgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctNzMuNCA3My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3oiXX0sYUZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNDggNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMTUuMSA3LjEgMjkuMyAxOS4yIDM4LjRsMjA4IDE1NmMxNy4xIDEyLjggNDAuNSAxMi44IDU3LjYgMGwyMDgtMTU2YzEyLjEtOS4xIDE5LjItMjMuMyAxOS4yLTM4LjQgMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6TTAgMTk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTg4LTE5OC40IDE0OC44Yy0zNC4xIDI1LjYtODEuMSAyNS42LTExNS4yIDBMMCAxOTZ6Il19LHNGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWJ5IixpY29uOlszODQsNTEyLFtdLCJmNzdjIiwiTTEyMCA4OGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTcuNyAxNDQuNWMxMy0xNy45IDM4LTIxLjggNTUuOS04LjhMOTkuOCAxNjJjMjYuOCAxOS41IDU5LjEgMzAgOTIuMiAzMHM2NS40LTEwLjUgOTIuMi0zMGwzNi4yLTI2LjRjMTcuOS0xMyA0Mi45LTkgNTUuOSA4LjhzOSA0Mi45LTguOCA1NS45bC0zNi4yIDI2LjRjLTEzLjYgOS45LTI4LjEgMTguMi00My4zIDI1bDAgMzYuMy0xOTIgMCAwLTM2LjNjLTE1LjItNi43LTI5LjctMTUuMS00My4zLTI1TDE2LjUgMjAwLjNjLTE3LjktMTMtMjEuOC0zOC04LjgtNTUuOXpNOTcuNSAzMjkuM2w2MC42IDUzLTI2IDM3LjIgMjQuMyAyNC4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC00OC00OEMzOCA0MzguNiAzNi4xIDQxNyA0Ny4yIDQwMS4xbDUwLjItNzEuOHptMTI4LjUgNTNsNjAuNi01MyA1MC4yIDcxLjhjMTEuMSAxNS45IDkuMiAzNy41LTQuNSA1MS4ybC00OCA0OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjQuMy0yNC4zLTI2LTM3LjJ6Il19LEI3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LGlGdD1CN2UsckZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQiLGljb246WzUxMiw1MTIsW10sImU1N2QiLCJNMjYuOSAyMDYuOUwzLjcgNDQ0LjlDMS44IDQ2My43IDE2LjYgNDgwIDM1LjUgNDgwbDE3Mi43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjljMC04LjMgNi43LTE1IDE1LTE1IDUuNSAwIDEwLjYgMyAxMy4yIDcuOWw4Ni4xIDE1OWM4LjQgMTUuNSAyNC42IDI1LjEgNDIuMiAyNS4xbDY0LjEgMGMxOC45IDAgMzMuNy0xNi4zIDMxLjgtMzUuMUw0ODUuNiAyMDcuMWMtMS45LTE5LjYtMTIuOC0zNy4zLTI5LjUtNDcuOEwyODAuOSA0OC4zYy0xNS43LTEwLTM1LjgtOS45LTUxLjUgLjFMNTYuMSAxNTkuMmMtMTYuNSAxMC42LTI3LjMgMjguMi0yOS4yIDQ3Ljd6Il19LG9GdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhIixpY29uOlszODQsNTEyLFs5N10sIjQxIiwiTTIyMS41IDUxLjdDMjE2LjYgMzkuOCAyMDQuOSAzMiAxOTIgMzJzLTI0LjYgNy44LTI5LjUgMTkuN2MtOTMuMyAyMjQtMTQ2LjcgMzUyLTE2MCAzODQtNi44IDE2LjMgLjkgMzUgMTcuMiA0MS44czM1LS45IDQxLjgtMTcuMmwzMS44LTc2LjMgMTk3LjMgMCAzMS44IDc2LjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhjLTEzLjMtMzItNjYuNy0xNjAtMTYwLTM4NHpNMjY0IDMyMGwtMTQ0IDAgNzItMTcyLjggNzIgMTcyLjh6Il19LG5GdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhY2h1dGUtYm94IixpY29uOls1MTIsNTEyLFtdLCJmNGNkIiwiTTEyOCAyMjRDMTI4IDE1Mi4yIDE0NC4zIDg4LjQgMTY5LjUgNDMuNCAxOTUuMS0yLjQgMjI2LjYtMjQgMjU2LTI0czYwLjkgMjEuNiA4Ni41IDY3LjRDMzY3LjcgODguNCAzODQgMTUyLjIgMzg0IDIyNGwtMTA0IDAgMCA5NiA4IDBjOS4zIDAgMTguMSAyIDI2IDUuNWwxMTguNC0xMDEuNS0uNSAwYzAtNzguNC0xNy43LTE1MC42LTQ3LjYtMjA0LTYuMS0xMS0xMi45LTIxLjMtMjAuMy0zMC45IDg2LjUgMzUuOSAxNDcuOCAxMTUuMSAxNDcuOCAyMTguOSAwIDctMy4xIDEzLjctOC40IDE4LjJMMzQ3LjQgMzYwLjFjMyA3LjQgNC42IDE1LjQgNC42IDIzLjlsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTguNCAxLjYtMTYuNSA0LjYtMjMuOUw4LjQgMjI2LjJDMy4xIDIyMS43IDAgMjE1IDAgMjA4IDAgMTA0LjIgNjEuMyAyNC45IDE0Ny44LTEwLjkgMTQwLjUtMS40IDEzMy43IDkgMTI3LjYgMjAgOTcuNyA3My40IDgwIDE0NS42IDgwIDIyNGwtLjUgMCAxMTguNCAxMDEuNWM4LTMuNSAxNi44LTUuNSAyNi01LjVsOCAwIDAtOTYtMTA0IDB6Il19LGxGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWFycm93LWRvd24iLGljb246WzY0MCw1MTIsW10sImYyMTgiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsNDUuMyAwYzI3LjEgMCA1MC4zIDE5LjQgNTUuMSA0NmwuNCAyIDE4Ny4yIDAgMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xIDE3Ny40IDBjMjAgMCAzNS4xIDE4LjIgMzEuNCAzNy45TDUzNy44IDIzNS44Yy01LjcgMzAuMy0zMi4xIDUyLjItNjIuOSA1Mi4ybC0zMDMuNiAwIDUuMSAyOC4zYzIuMSAxMS40IDEyIDE5LjcgMjMuNiAxOS43TDQ1NiAzMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1NS45IDBjLTM0LjggMC02NC42LTI0LjktNzAuOC01OS4xTDc3LjIgMzguNmMtLjctMy44LTQtNi42LTcuOS02LjZMMjQgMzJDMTAuNyAzMiAwIDIxLjMgMCA4ek0xNjAgNDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTIyNCAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LGNGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGNhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sb29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWFycm93LXVwIixpY29uOls1NzYsNTEyLFs2MjMzOCwiY2xvdWQtdXBsb2FkIiwiY2xvdWQtdXBsb2FkLWFsdCJdLCJmMGVlIiwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzA1IDE5MWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sZEZ0PW9vZSx1RnQ9b29lLHBGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdCIsaWNvbjpbNTEyLDUxMixbNjE5NDZdLCI0MCIsIk0yNTYgNjRDMTUwIDY0IDY0IDE1MCA2NCAyNTZzODYgMTkyIDE5MiAxOTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NmwwIDMyYzAgNTMtNDMgOTYtOTYgOTYtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjktMjIuOCAyMS01My4zIDMzLjktODYuOCAzMy45LTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhjMjcuOSAwIDUzLjcgOC45IDc0LjcgMjQuMSA1LjctNSAxMy4xLTguMSAyMS4zLTguMSAxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC0xMDYtODYtMTkyLTE5Mi0xOTJ6bTY0IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LG5vZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmRpYW4tcnVwZWUtc2lnbiIsaWNvbjpbMzIwLDUxMixbImluZGlhbi1ydXBlZSIsImluciJdLCJlMWJjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTc2LjcgMGMxNy43IDE5LjggMzAuMSA0NC42IDM0LjcgNzJsNDIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDIgMGMtMTAuNCA2Mi4yLTYwLjggMTEwLjktMTIzLjggMTE4LjlMMjc0LjYgNDIyYzE0LjQgMTAuMyAxNy43IDMwLjMgNy40IDQ0LjZzLTMwLjMgMTcuNy00NC42IDcuNEwxMy40IDMxNEMyLjEgMzA2LTIuNyAyOTEuNSAxLjUgMjc4LjJTMTguMSAyNTYgMzIgMjU2bDgwIDBjMzUuOCAwIDY2LjEtMjMuNSA3Ni4zLTU2TDI0IDIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNjQuMyAwYy0xMC4yLTMyLjUtNDAuNS01Ni03Ni4zLTU2TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LGhGdD1ub2UsZkZ0PW5vZSxtRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2siLGljb246WzU3Niw1MTIsWzEyODY2Niw5OTUxXSwiZjBkMSIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU1Ny4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek01MTIgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMTkyIDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxIN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZC11c2VyIixpY29uOls2NDAsNTEyLFsiY2hhbGtib2FyZC10ZWFjaGVyIl0sImY1MWMiLCJNMTkyIDM4NGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01MyA0My05NiA5Ni05Nmw5NiAwek01NDQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzMy4xLTI1LjIgNjAuNC01Ny41IDYzLjdsLTYuNSAuMy0yMTEuMSAwYy01LjEtMjQuMi0xNi4zLTQ2LjEtMzIuMS02NGw1MS4yIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMCAwLTI4OC0zNTIgMCAwIDU3LjNjLTE0LjgtNi0zMS05LjMtNDgtOS4zLTUuNCAwLTEwLjggLjMtMTYgMWwwLTQ5YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM1MiAwek0xNDQgMzUyYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxnRnQ9SDdlLGJGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJmNGZjIiwiTTI4NiAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzggNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTU4NS43IDEwNS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVMNTIyLjEgMjc0LjljLTQuMiA1LjctMTAuNyA5LjQtMTcuNyA5LjhzLTE0LTIuMi0xOC45LTcuM2wtNDYuNC00OGMtOS4yLTkuNS05LTI0LjcgLjYtMzMuOSA5LjUtOS4yIDI0LjctOC45IDMzLjkgLjZsMjYuNSAyNy40IDg1LjYtMTE3Ljd6TTI1Ni4zIDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LHZGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW5pbmphIixpY29uOls0NDgsNTEyLFsxMjkzOTldLCJmNTA0IiwiTTM1MiAxMjhjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjMtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjgtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjEtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOCAxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjYgNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40LTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNC0xNS44LTE1LjgtMjAuNy0zOC44LTIyLjEtNTMuNi0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44IDE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMSA0LjggNC44IDguNyAxMC40IDExLjcgMTYuMSAyMS4zLTQxLjIgNjQuMy02OS40IDExMy44LTY5LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh6TTE0NCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMS40IDIxMWw2NyA1MC4yYzguNSA2LjQgMjAuMyA2LjQgMjguOCAwbDY3LTUwLjJjNi41LTQuOSAxNS4yLTYuMiAyMi42LTIuOCA2MS40IDI4LjIgMTA0LjEgOTAuMiAxMDQuMSAxNjIuMSAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0NS43IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC03MiA0Mi43LTEzNCAxMDQuMS0xNjIuMSA3LjQtMy40IDE2LjEtMi4xIDIyLjYgMi44eiJdfSx4RnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbnQtd2lsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYSIsIk0zNDQtMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA2LjJjMjkuMyAxMi4yIDQ4IDQxLjMgNDggNzYuOSAwIDI3LjktMjUuMyA3NC44LTY2IDExMS43LTMuOCAzLjUtOC44IDUuMy0xNCA1LjNzLTEwLjItMS44LTE0LTUuM2MtNDAuNy0zNi44LTY2LTgzLjctNjYtMTExLjcgMC0zNS42IDE4LjctNjQuNyA0OC03Ni45bDAtNi4yYzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgNDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgMzguMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zQzI1LjMgNDA1LjkgMCAzNTkgMCAzMzEuMSAwIDI5NS40IDE4LjcgMjY2LjQgNDggMjU0LjJMNDggMjE2YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDIwLjIgMCAzOS4zIDUgNTYgMTMuOEwyMjQgODhjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LHE3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtc2NhbGUiLGljb246WzQ0OCw1MTIsWyJ3ZWlnaHQiXSwiZjQ5NiIsIk0xMTYuNiAxOTJjLTMtMTAuMS00LjYtMjAuOS00LjYtMzIgMC02MS45IDUwLjEtMTEyIDExMi0xMTJTMzM2IDk4LjEgMzM2IDE2MGMwIDExLjEtMS42IDIxLjktNC42IDMybC03MSAwIDI0LjYtNDQuM2M2LjQtMTEuNiAyLjMtMjYuMi05LjMtMzIuNnMtMjYuMi0yLjMtMzIuNiA5LjNsLTM3LjYgNjcuNy04OC44IDB6TTEyOCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwQzI5My4zIDExLjkgMjYwIDAgMjI0IDBzLTY5LjMgMTEuOS05NiAzMnoiXX0seUZ0PXE3ZSxPYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1yaWdodCIsaWNvbjpbMjU2LDUxMixbXSwiZjBkYSIsIk0yNDkuMyAyMzUuOGMxMC4yIDEyLjYgOS41IDMxLjEtMi4yIDQyLjhsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzY0LjUgMzk2LjkgNjQuNSAzODRsMC0yNTZjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWwxMjggMTI4IDIuMiAyLjR6Il19LHdGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9yaW4tc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE4NCIsIk0zMTQuNyAzMmMtMzguOCAwLTczLjcgMjMuMy04OC42IDU5LjFMMTcwLjcgMjI0IDY0IDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4MCAwLTQ1LjEgMTA4LjNjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43TDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNy4zIDBjMzguOCAwIDczLjctMjMuMyA4OC42LTU5LjFMMjEzLjMgMjg4IDMyMCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgNDUuMS0xMDguM2M1LTExLjkgMTYuNi0xOS43IDI5LjUtMTkuN0wzNTIgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3LjMgMHoiXX0sRmI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzLjJDMTE5IDUwIDY0IDExNC42IDY0IDE5MmwwIDIxLjdjMCA0OC4xLTE2LjQgOTQuOC00Ni40IDEzMi40TDcuOCAzNTguM0MyLjcgMzY0LjYgMCAzNzIuNCAwIDM4MC41IDAgNDAwLjEgMTUuOSA0MTYgMzUuNSA0MTZsMzc2LjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtOS44LTEyLjJDNDAwLjQgMzA4LjUgMzg0IDI2MS44IDM4NCAyMTMuN2wwLTIxLjdjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhsMC0zLjJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTE2MiA0NjRjNy4xIDI3LjYgMzIuMiA0OCA2MiA0OHM1NC45LTIwLjQgNjItNDhsLTEyNCAweiJdfSxrRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFyaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWM4IiwiTTE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDEuNWM3LjktMSAxNS45LTEuNSAyNC0xLjVzMTYuMSAuNSAyNCAxLjVMMjE2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA1NGM1OC45IDIzLjggMTAzLjIgNzYgMTE2LjIgMTM5LjcgMy41IDE3LjMtNy43IDM0LjItMjUgMzcuN3MtMzQuMi03LjctMzcuNy0yNWMtNi43LTMzLjItMjYuNC02MS44LTUzLjQtODAuMmwwIDgxLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDEuOGMtNy44LTEuNS0xNS44LTIuMi0yNC0yLjJzLTE2LjIgLjgtMjQgMi4yTDE2OCAyMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04MS44Yy0zMy44IDIzLTU2IDYxLjktNTYgMTA1LjggMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2LjkgMEMxOC41IDM1MCAwIDMwNS4yIDAgMjU2IDAgMTc1LjQgNDkuNiAxMDYuNCAxMjAgNzhsMC01NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sU0Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pbGwtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTFlZCIsIk0yOTctMjIuMmMxMi4zIDUgMTguMiAxOSAxMy4yIDMxLjNsLTI5IDcxLjNDMzM4LjggODUuMSAzODQgMTMzLjMgMzg0IDE5MmwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OC02LjQgMC0xMi41IDEuMi0xOCAzLjVsLTMwIDczLjggMCAxNzguN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIxLjItNTcuOCAxNDIuMmMtNSAxMi4zLTE5IDE4LjItMzEuMyAxMy4ycy0xOC4yLTE5LTEzLjItMzEuM0wxNjAgMjUxLjMgMTYwIDE5MmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQxNy43IDAgNDAwTDAgMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyIDEwLjkgMCAyMC41IDUuNCAyNi4zIDEzLjcgMTYtOC43IDM0LjMtMTMuNyA1My43LTEzLjcgMzEuMyAwIDU5LjcgMTIuOSA4MCAzMy42IDkuNi05LjggMjAuOS0xNy44IDMzLjUtMjMuNUwyNjUuOC05YzUtMTIuMyAxOS0xOC4yIDMxLjMtMTMuMnoiXX0sajdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zbm93Ym9hcmRpbmciLGljb246WzU3Niw1MTIsWzEyNzkzOCwic25vd2JvYXJkaW5nIl0sImY3Y2UiLCJNNDI0LjUgMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2Ni40IDQ1LjVjMTAuMi0xNC40IDMwLjItMTcuOSA0NC42LTcuN2wyNzIgMTkyYzE0LjQgMTAuMiAxNy45IDMwLjIgNy43IDQ0LjZzLTMwLjIgMTcuOS00NC42IDcuN2wtOTIuMi02NS4xLTYyLjIgNTMuMyAzMi4xIDI2LjdjMTguMiAxNS4yIDI4LjggMzcuNyAyOC44IDYxLjVsMCA4Ny44IDc3LjUgMTUuMmM2LjIgMS4yIDEyLjYgLjkgMTguNy0uOGw0MS4yLTExLjhjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtNDEuMiAxMS44Yy0xMy40IDMuOC0yNy40IDQuNC00MS4xIDEuOEw4Ny4xIDQ0My4zYy0xNy4yLTMuNC0zMy0xMS44LTQ1LjMtMjQuMUwxNS41IDM5M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDI2LjIgMjYuMmM1LjYgNS42IDEyLjggOS40IDIwLjYgMTFsNjQuMiAxMi42IDAtMTIzLjdjMC0yNy43IDEyLTU0IDMyLjgtNzIuMmw2OS02MC40LTg4LjItNjIuM0MxNTkuNiA4MCAxNTYuMiA2MCAxNjYuNCA0NS41em01OC4xIDM3NS43bDY0IDEyLjUgMC03NS4zYzAtNC43LTIuMS05LjMtNS44LTEyLjNsLTU4LjItNDguNSAwIDEyMy42eiJdfSxfRnQ9ajdlLFY3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dHkiLGljb246WzUxMiw1MTIsWyJ0ZWxldHlwZSJdLCJmMWU0IiwiTTQ1MC4yIDI2Ni44YzE1LjggNi41IDM0LjEgLjMgNDIuNi0xNC42bDIuNC00LjJjMjcuOS00OC45IDIzLjYtMTE4LjgtMzEuMy0xNTQuNS0xMjYtODItMjg5LjYtODItNDE1LjYgMC01NC45IDM1LjctNTkuMyAxMDUuNy0zMS4zIDE1NC41bDIuNCA0LjJjOC41IDE0LjkgMjYuNyAyMS4xIDQyLjYgMTQuNmw4MS45LTMzLjdjMTMuOS01LjcgMjIuNC0xOS45IDIwLjktMzQuOWwtNS4xLTUxYzYyLjUtMjEgMTMwLjgtMTkuOSAxOTIuNiAzLjNsLTQuOCA0Ny43Yy0xLjUgMTUgNyAyOS4yIDIwLjkgMzQuOWw4MS45IDMzLjd6TTMyIDM1MmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem05NiAwYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTY0IDQxNmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTM1MiAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwek0yNTYgMzIwYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptNjQgMzJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptMTI4LTMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTI4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxNRnQ9VjdlLHpGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1yZWN0YW5nbGUiLGljb246WzU3Niw1MTIsW10sImU1OTQiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjI0IDcyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0wIDE1MmM1MyAwIDk2IDQzIDk2IDk2bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtNTMgNDMtOTYgOTYtOTZ6bTk2LTY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAyNzIuM2MtMTUuMiAyMi44LTI0IDUwLjItMjQgNzkuN2wwIDI0YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNDYuOCAwQzg5LjYgNDAwIDgwIDM5MC40IDgwIDM3OC43TDgwIDM2OGMwLTUwLjMgMzguNy05MS42IDg4LTk1Ljd6TTQyNy45IDQwMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLTI0YzAtMjkuNS04LjgtNTYuOS0yNC03OS43IDQ5LjMgNC4xIDg4IDQ1LjMgODggOTUuN2wwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNDYuOCAwek05NiAxOTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sbG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZSIsaWNvbjpbMzg0LDUxMixbMTI4MjQxLCJtb2JpbGUtYW5kcm9pZCIsIm1vYmlsZS1waG9uZSJdLCJmM2NlIiwiTTgwIDBDNDQuNyAwIDE2IDI4LjcgMTYgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMODAgMHptNzIgNDE2bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LENGdD1sb2UsVEZ0PWxvZSwkRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXR1cm4tdG8tZG90cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMSIsIk0yNjUuNC02LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wyODUuMyA2NCAzNTIgNjRjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTY2LjcgMCAyNS40IDI1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w4MC04MHptLTgyLjcgMjcybDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTYyLjcgNDAwIDk2IDQwMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ4MS43IDAgNDY0bDAtMzJjMC01MyA0My05NiA5Ni05Nmw2Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwek0zMjAgMzY4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjQgMTYwYTY0IDY0IDAgMSAxIDAtMTI4IDY0IDY0IDAgMSAxIDAgMTI4eiJdfSxERnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhjbGFtYXRpb24iLGljb246WzEyOCw1MTIsWzEwMDY5LDEwMDcxLDYxNzM4XSwiMjEiLCJNNjQgNDMyYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDBjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAuNiAwIDEuMSAwIDEuN2wtMTYgMzA0Yy0uOSAxNy0xNSAzMC4zLTMyIDMwLjNTMzMgMzcwLjcgMzIgMzUzLjdMMTYgNDkuN2MwLS42IDAtMS4xIDAtMS43IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxMRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2h1cmNoIixpY29uOls1MTIsNTEyLFs5OTYyXSwiZjUxZCIsIk0yODAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMzItMjEuMyAyMzItOGwwIDI0LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDQ4LTk4LjYgNjUuOEMxMjAgMTg2LjcgMTEyIDIwMS42IDExMiAyMTcuN2wwIDM4LjMtNzkuOCA0NS42QzEyLjMgMzEzIDAgMzM0LjIgMCAzNTcuMUwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05MC45YzAtMjMtMTIuMy00NC4yLTMyLjItNTUuNkw0MDAgMjU2IDQwMCAyMTcuN2MwLTE2LTgtMzEtMjEuNC0zOS45bC05OC42LTY1LjggMC00OCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMjR6TTI1NiAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxFRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9nZ2xlLW9mZiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNCIsIk0zODQgMTI4YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzQ1NC43IDM4NCAzODQgMzg0bC0xOTIgMGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGwxOTIgMHpNNTc2IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MkwxOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTE5MiAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Il19LFBGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9lLXByaW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZjU0YiIsIk0yOTYgMTkyYy0yMS4xLTEyLjEtNDIuMy0yNC4yLTcyLTI5LjNsMC0xNDAuM0MyNTcuNyAxMyAzMTEuNCAwIDM1MiAwIDQ0OCAwIDU3NiA0OCA1NzYgMTI4cy0xMTkuNiA5Ni0xNzYgOTZjLTQ4IDAtNzYtMTYtMTA0LTMyek0xMjggMzJsNDggMCAwIDEyOC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0ek0yMzIgMzIwYzI4LTE2IDU2LTMyIDEwNC0zMiA1Ni40IDAgMTc2IDE2IDE3NiA5NlMzODQgNTEyIDI4OCA1MTJjLTQwLjUgMC05NC4zLTEzLTEyOC0yMi40bDAtMTQwLjNjMjkuNy01LjIgNTAuOS0xNy4zIDcyLTI5LjR6TTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OCAwIDAgMTI4LTQ4IDB6Il19LElGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxCYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxsZXQiLGljb246WzUxMiw1MTIsW10sImY1NTUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw3MiAxMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgMzJ6TTQxNiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxyZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXNzYWdlIixpY29uOls1MTIsNTEyLFsiY29tbWVudC1hbHQiXSwiZjI3YSIsIk0wIDM1MkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDMyMCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5NmwtMTIwIDBjLTUuMiAwLTEwLjIgMS43LTE0LjQgNC44TDE2Ni40IDUzOS4yYy00LjIgMy4xLTkuMiA0LjgtMTQuNCA0LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2eiJdfSxBRnQ9cmYsTkZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3BoeSIsaWNvbjpbNTEyLDUxMixbMTI3OTQyXSwiZjA5MSIsIk0xNDQuMyAwbDIyNCAwYzI2LjUgMCA0OC4xIDIxLjggNDcuMSA0OC4yLS4yIDUuMy0uNCAxMC42LS43IDE1LjhsNDkuNiAwYzI2LjEgMCA0OS4xIDIxLjYgNDcuMSA0OS44LTcuNSAxMDMuNy02MC41IDE2MC43LTExOCAxOTAuNS0xNS44IDguMi0zMS45IDE0LjMtNDcuMiAxOC44LTIwLjIgMjguNi00MS4yIDQzLjctNTcuOSA1MS44bDAgNzMuMSA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtNzMuMWMtMTYtNy43LTM1LjktMjItNTUuMy00OC4zLTE4LjQtNC44LTM4LjQtMTIuMS01Ny45LTIzLjEtNTQuMS0zMC4zLTEwMi45LTg3LjQtMTA5LjktMTg5LjktMS45LTI4LjEgMjEtNDkuNyA0Ny4xLTQ5LjdsNDkuNiAwYy0uMy01LjItLjUtMTAuNC0uNy0xNS44LTEtMjYuNSAyMC42LTQ4LjIgNDcuMS00OC4yek0xMDEuNSAxMTJsLTUyLjQgMGM2LjIgODQuNyA0NS4xIDEyNy4xIDg1LjIgMTQ5LjYtMTQuNC0zNy4zLTI2LjMtODYtMzIuOC0xNDkuNnpNMzgwIDI1Ni44YzQwLjUtMjMuOCA3Ny4xLTY2LjEgODMuMy0xNDQuOEw0MTEgMTEyYy02LjIgNjAuOS0xNy40IDEwOC4yLTMxIDE0NC44eiJdfSxVN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1kaXp6eSIsaWNvbjpbNTEyLDUxMixbImRpenp5Il0sImY1NjciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNC4xIDE1My45bDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwem0xOTIgMGwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHpNMjU2IDMwNGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sUkZ0PVU3ZSxPRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaWEiLGljb246WzY0MCw1MTIsW10sImUwNTkiLCJNMjU2LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMMzExIDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02LjMgNi4zYzQuNiA3LjggOCAxNi4yIDEwLjMgMjQuOGwxMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMSAwYy0yLjIgOC42LTUuNiAxNi45LTEwLjMgMjQuOEwzNDUgMTUxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjEtMzAuMSAzMC4xIDQuMSA0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMWMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDIxNyAyNzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNi4zLTYuM2MtNy44IDQuNi0xNi4yIDgtMjQuOCAxMC4zbDAgMTFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMWMtOC42LTIuMi0xNi45LTUuNi0yNC44LTEwLjNMNzMgMzEzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDM5IDE2OWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDEwMyAxMDVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOVMxOTEuNi0yLjMgMjAxIDdsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTI4IDI1NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI0MCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjk2IDQwbDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMNTY3IDE5OWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDYwMSAzNDNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0wzMjkgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDI5NSAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xYzEwLTEwIDIwLTIwIDMwLjEtMzAuMUwzNTkgMjk3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMSAzMC4xLTMwLjEtNC4xLTQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDYuMyA2LjNjNy44LTQuNiAxNi4yLTggMjQuOC0xMC4zbDAtMTFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNDQ4IDM4NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxaaz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItZGVhZiIsaWNvbjpbNTEyLDUxMixbImRlYWYiLCJkZWFmbmVzcyIsImhhcmQtb2YtaGVhcmluZyJdLCJmMmE0IiwiTTUwMi42IDU0LjZsLTQwIDQwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MC00MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tMzIwIDMyMGwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sRkZ0PVprLEJGdD1aayxIRnQ9WmssVzdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1hcnJvd3MiLGljb246WzUxMiw1MTIsWyJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHQiXSwiZTA2OCIsIk0zMiA2NEE2NCA2NCAwIDEgMSAxNjAgNjQgNjQgNjQgMCAxIDEgMzIgNjR6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMy4yIDAgNi40IC4yIDkuNSAuN0w5My4xIDIwNS4xQzY1IDIzMy4yIDY1IDI3OC44IDkzLjEgMzA2LjlsNTYgNTZjMy40IDMuNCA3IDYuNCAxMC45IDlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyMC42QzEyLjkgMzMyLjQgMCAzMTEuNyAwIDI4OGwwLTY0ek0zNTIgNjRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem02Ni45IDE0MS4xbC00NC40LTQ0LjRjMy4xLS41IDYuMy0uNyA5LjUtLjdsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEw0ODAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFjMy45LTIuNiA3LjUtNS42IDEwLjktOWw1Ni01NmMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjh6TTMwMi44IDE3Ny44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggMzIxLjcgMjg4IDMxMmwwLTI0LTY0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgMTkwLjMgMjI0IDIwMGwwIDI0IDY0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6Il19LHFGdD1XN2UsakZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWNsYXBwaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMWE4IiwiTTM0NCA4bDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNFMzNDQtNS4zIDM0NCA4ek0yMjAgMTAuN2wzMiA0OGM3LjQgMTEgNC40IDI1LjktNi43IDMzLjNzLTI1LjkgNC40LTMzLjMtNi43bC0zMi00OGMtNy40LTExLTQuNC0yNS45IDYuNy0zMy4zUzIxMi42LS4zIDIyMCAxMC43ek0xMzUgMTE5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI5Mi43IDI0Mi43YzEwLjEgMTAuMSAyNy4zIDIuOSAyNy4zLTExLjNsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjQtNjQgMzguNC0xNDUuOCAyOC4zLTE5OC41LTI0LjRMNyAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1MyA1M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUwyMyAyNjVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw5MyA5M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUw1NSAxODVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMTcgMTE3YzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xbC05My05M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6TTQzMy4xIDQ4NC45Yy0yNC4yIDE0LjUtNTAuOSAyMi4xLTc3LjcgMjMuMSA0OC4xLTM5LjYgNzYuNi05OSA3Ni42LTE2Mi40bDAtOTguMWM4LjItLjEgMTYtNi40IDE2LTE2bDAtMzkuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTUzLjZjMCA1Ny4xLTMwIDExMC03OC45IDEzOS40ek00NTMuMyA0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6Il19LFZGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTRhOSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04My04MyAxMS40LTExLjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTEuMyAxMS4zLTIzLjgtMjMuOGMxNy45LTIzLjUgMjkuOS01MS43IDM0LjEtODIuM2wzMy42IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0zMy42IDBjLTQuMi0zMC43LTE2LjMtNTguOC0zNC4xLTgyLjNsMjMuOC0yMy44IDExLjMgMTEuM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDQwLjcgNDYuN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxMS4zIDExLjMtMjMuOCAyMy44QzM3MC44IDk3LjkgMzQyLjcgODUuOCAzMTIgODEuNmwwLTMzLjYgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzNDEuMyAwIDMyOCAwTDI0OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy42Yy0zMC43IDQuMi01OC44IDE2LjMtODIuMyAzNC4xTDE1Ny45IDkyIDE2OS4yIDgwLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwxMjMuOSA1OC4xIDQxLTI0Ljl6TTExMy42IDIzMmwtMzMuNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMzMuNiAwYzQuMiAzMC43IDE2LjMgNTguOCAzNC4xIDgyLjNsLTIzLjggMjMuOC0xMS4zLTExLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTYuNiA1Ni42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuMy0xMS4zIDIzLjgtMjMuOGMyMy41IDE3LjkgNTEuNyAyOS45IDgyLjMgMzQuMWwwIDMzLjYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwIDAtMzMuNmMxMy40LTEuOCAyNi40LTUuMiAzOC43LTkuOUwxMjMuNSAxOTMuM2MtNC43IDEyLjMtOCAyNS4yLTkuOSAzOC43eiJdfSxHN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItZGF5cyIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLWFsdCJdLCJmMDczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTEyOCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek02NCAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxVRnQ9RzdlLEs3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kLXR1cm4tcmlnaHQiLGljb246WzUxMiw1MTIsWyJkaXJlY3Rpb25zIl0sImY1ZWIiLCJNMjE1IDE3TDE3IDIxNUM2LjEgMjI1LjkgMCAyNDAuNiAwIDI1NnM2LjEgMzAuMSAxNyA0MUwyMTUgNDk1YzEwLjkgMTAuOSAyNS42IDE3IDQxIDE3czMwLjEtNi4xIDQxLTE3TDQ5NSAyOTdjMTAuOS0xMC45IDE3LTI1LjYgMTctNDFzLTYuMS0zMC4xLTE3LTQxTDI5NyAxN0MyODYuMSA2LjEgMjcxLjQgMCAyNTYgMHMtMzAuMSA2LjEtNDEgMTd6TTM4NSAyNTdsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTc4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwYzAtMzkuOCAzMi4yLTcyIDcyLTcybDc4LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45eiJdfSxXRnQ9SzdlLEdGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXVwIixpY29uOlszODQsNTEyLFs5NzU3XSwiZjBhNiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwUzk2IDE0LjMgOTYgMzJsMCAyMDgtNjQgMCAwLTIwOHpNMjI0IDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTY0LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDM3LjUgNDUzLjVDMTMuNSA0MjkuNSAwIDM5Ni45IDAgMzYzbDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxLRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmV6aWVyLWN1cnZlIixpY29uOls2NDAsNTEyLFtdLCJmNTViIiwiTTI5NiAxMzZsMC00OCA0OCAwIDAgNDgtNDggMHpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQtMTE4LjQgMEMxMTEuMiA2Mi43IDg5LjMgNDggNjQgNDggMjguNyA0OCAwIDc2LjcgMCAxMTJzMjguNyA2NCA2NCA2NGMyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzZsNjYuOSAwYy01OC45IDM5LjYtOTguOSAxMDUtMTA0IDE4MEw4MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zLjMgMGM1LjktNjcgNDguNS0xMjMuNCAxMDcuNS0xNDkuMSA4LjYgMTIuNyAyMy4yIDIxLjEgMzkuOCAyMS4xbDY0IDBjMTYuNiAwIDMxLjEtOC40IDM5LjgtMjEuMSA1OSAyNS43IDEwMS42IDgyLjEgMTA3LjUgMTQ5LjFsLTMuMyAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNC41IDBjLTUtNzUtNDUuMS0xNDAuNC0xMDQtMTgwbDY2LjkgMGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0Yy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzZsLTExOC40IDAgMC00YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek04OCAzNzZsNDggMCAwIDQ4LTQ4IDAgMC00OHptNDE2IDQ4bDAtNDggNDggMCAwIDQ4LTQ4IDB6Il19LFlGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGFsZi1kcmVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZTU0OCIsIk0xNDMuNC0zLjljOS43LTE2LjggMjcuOC0yOC4xIDQ4LjYtMjguMSAzMC45IDAgNTYgMjUuMSA1NiA1NiAwIDI1LjQtMTYuOSA0Ni44LTQwIDUzLjdsMCAwYy01LjEgMS41LTEwLjQgMi4zLTE2IDIuMy0zMC45IDAtNTYtMjUuMS01Ni01NmwwIDBjMC0xMC4xIDIuNy0xOS43IDcuNC0yNy45ek0zMTguMyAyOTkuMUwyNzIgMjM2LjcgMjcyIDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MCAwLS40IDAtMjM4LjZjMzYuMiA0LjQgNjkuMiAyMy40IDkxLjIgNTNsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0xNzYgMTEzbDAgMzk5YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTI1LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNDMtMTI5LTQ4LjMgNjUuMWMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjItMjkuNiA1NS4xLTQ4LjYgOTEuMi01M3oiXX0sWTdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLWhvcml6b250YWwiLGljb246WzQ0OCw1MTIsWyJwb2xsLWgiXSwiZjY4MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2IDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bTcyIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMDggMHpNMTkyIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxaRnQ9WTdlLFhGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTZkIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFFGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk0wIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwyMzguNSAwYzM2LjggMCA3MS4yIDE4IDkyLjEgNDguMmwxMTMuNSAxNjRjMTMgMTguNyAxOS45IDQxIDE5LjkgNjMuOGwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzLjgtNzguMS01MC4yLTE2MS45IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhMNDggMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHoiXX0sWjdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWxrYm9hcmQiLGljb246WzU3Niw1MTIsWyJibGFja2JvYXJkIl0sImY1MWIiLCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00ODAgMzg0bC02NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTYwIDAgMC0yNTYgMzg0IDAgMCAyNTZ6Il19LEpGdD1aN2UsWDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWZyb20tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZXh0ZXJuYWwtbGluay1hbHQiXSwiZjM1ZCIsIk0yOTAuNCAxOS44QzI5NS40IDcuOCAzMDcuMSAwIDMyMCAwTDQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45TDQwMCAxNTcuMyAyNDYuNiAzMTAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzU0LjcgMTEyIDI5Ny40IDU0LjZjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45ek0wIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGw4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA4MGMwIDQ0LjItMzUuOCA4MC04MCA4MEw4MCA1MTJjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgMTc2eiJdfSxlQnQ9WDdlLHRCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZnVsbCIsaWNvbjpbNTEyLDUxMixbMTI4OTk3LDEyODk5OCwxMjg5OTksMTI5ZTMsMTI5MDAxLDEyOTAwMiwxMjkwMDMsMTEwMzUsMTEwMzZdLCJmNDVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sYUJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3ZlciIsaWNvbjpbNTEyLDUxMixbXSwiZTEzOSIsIk0zMTAuNCAxNkMzNDYuNiAxNiAzNzYgNDUuNCAzNzYgODEuN2wwIDUuMmMwIDExLjItMi43IDIyLjMtNy44IDMyLjJsLTIuMyA0LjItMjAuMSAzMy41Yy0xLjEgMS45LTEuMiAzLjQtMS4xIDQuNSAuMiAxLjMgLjkgMi43IDIuMSAzLjlzMi42IDEuOSAzLjkgMi4xYzEuMSAuMiAyLjYgLjEgNC41LTEuMWwzMy41LTIwLjEgNC4yLTIuM2MxMC01LjEgMjEtNy44IDMyLjItNy44bDUuMiAwYzM2LjIgMCA2NS42IDI5LjQgNjUuNiA2NS43IDAgMTcuNC02LjkgMzQuMS0xOS4yIDQ2LjRsLTEuMyAxLjNjLTMuNyAzLjctMy43IDkuNiAwIDEzLjNsMS4zIDEuM2MxMi4zIDEyLjMgMTkuMiAyOSAxOS4yIDQ2LjQgMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjZsLTUuMiAwYy0xMi44IDAtMjUuNS0zLjUtMzYuNS0xMC4xbC0zMy41LTIwLjFjLTEuOS0xLjEtMy40LTEuMi00LjUtMS4xLTEuMyAuMi0yLjcgLjktMy45IDIuMXMtMS45IDIuNi0yLjEgMy45Yy0uMiAxLjEtLjEgMi42IDEuMSA0LjVsMjAuMSAzMy41YzYuNiAxMSAxMC4xIDIzLjYgMTAuMSAzNi41bDAgNS4yYzAgMzYuMi0yOS40IDY1LjYtNjUuNiA2NS42LTE3LjQgMC0zNC4xLTYuOS00Ni40LTE5LjJsLTEuMy0xLjNjLTMuNy0zLjctOS42LTMuNy0xMy4zIDBsLTEuMyAxLjNjLTEyLjMgMTIuMy0yOSAxOS4yLTQ2LjQgMTkuMi0zNi4yIDAtNjUuNi0yOS40LTY1LjctNjUuNmwwLTUuMmMwLTEyLjggMy41LTI1LjUgMTAuMS0zNi41bDIwLjEtMzMuNWMxLjEtMS45IDEuMi0zLjQgMS4xLTQuNS0uMi0xLjMtLjktMi43LTIuMS0zLjlzLTIuNi0xLjktMy45LTIuMWMtLjUtLjEtMS4yLS4xLTEuOSAwbC0yLjUgMS0zMy41IDIwLjFjLTExIDYuNi0yMy42IDEwLjEtMzYuNSAxMC4xbC01LjIgMEM0NS40IDM3NiAxNiAzNDYuNiAxNiAzMTAuNCAxNiAyOTMgMjIuOSAyNzYuMyAzNS4yIDI2NGwxLjMtMS4zIDEuMi0xLjVjMi4xLTMuMSAyLjEtNy4yIDAtMTAuM2wtMS4yLTEuNS0xLjMtMS4zQzIyLjkgMjM1LjggMTYgMjE5LjEgMTYgMjAxLjcgMTYgMTY1LjQgNDUuNCAxMzYgODEuNyAxMzZsNS4yIDBjMTIuOCAwIDI1LjUgMy41IDM2LjUgMTAuMWwzMy41IDIwLjEgMi41IDFjLjcgLjEgMS40IC4xIDEuOSAuMSAxLjMtLjIgMi43LS45IDMuOS0yLjFzMS45LTIuNiAyLjEtMy45Yy4xLS41IC4xLTEuMi0uMS0xLjlsLTEtMi41LTIwLjEtMzMuNWMtNi42LTExLTEwLjEtMjMuNi0xMC4xLTM2LjVsMC01LjJjMC0zNi4yIDI5LjQtNjUuNyA2NS43LTY1LjcgMTcuNCAwIDM0LjEgNi45IDQ2LjQgMTkuMmwxLjMgMS4zYzMuNyAzLjYgOS42IDMuNyAxMy4zIDBsMS4zLTEuMyA0LjgtNC40QzI4MC41IDIxLjMgMjk1LjEgMTYgMzEwLjQgMTZ6Il19LHNCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZWV0aC1vcGVuIixpY29uOls1MTIsNTEyLFtdLCJmNjJmIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA4MGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0wIDI3MmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMwNHptODAtMTYwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHptMTI4IDBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek04MCAxMTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHpNNDggMzg0bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6bTE0NCA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTExMi0xNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnoiXX0sY29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtc3RhZ2dlcmVkIixpY29uOls1MTIsNTEyLFsicmVvcmRlciIsInN0cmVhbSJdLCJmNTUwIiwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNNjQgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxpQnQ9Y29lLHJCdD1jb2Usb0J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhcmVob3VzZSIsaWNvbjpbNTc2LDUxMixbXSwiZjQ5NCIsIk0wIDE0Mi4xTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNy45YzAtMjcuNS0xNy42LTUyLTQzLjgtNjAuN0wzMDMuMiA1LjFjLTkuOS0zLjMtMjAuNS0zLjMtMzAuNCAwTDQzLjggODEuNEMxNy42IDkwLjEgMCAxMTQuNiAwIDE0Mi4xek00NjQgMjU2bC0zNTIgMCAwIDY0IDM1MiAwIDAtNjR6TTExMiA0MTZsMzUyIDAgMC02NC0zNTIgMCAwIDY0em0zNTIgMzJsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHoiXX0sbkJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN3YXRjaGJvb2siLGljb246WzUxMiw1MTIsW10sImY1YzMiLCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM2OGMwIDUzLTQzIDk2LTk2IDk2UzAgNDY5IDAgNDE2TDAgNDh6TTI0MCA0MDkuNmwwLTI3MS41IDQ4LjEtNDguMWMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGw2Ny45IDY3LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjQwIDQwOS42ek0yMDUuNSA1MTJsMTkyLTE5MiA2Ni42IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU4LjUgMHpNODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA2NHpNNjQgMjA4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGxCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1wZ3JvdW5kIixpY29uOls1MTIsNTEyLFs5OTc4XSwiZjZiYiIsIk0zNDQuOCA1Mi4zYzExLjItMTMuNyA5LjItMzMuOC00LjUtNDVzLTMzLjgtOS4yLTQ1IDQuNWwtMzkuMiA0OC0zOS4yLTQ4QzIwNS42LTEuOSAxODUuNC00IDE3MS43IDcuMnMtMTUuNyAzMS40LTQuNSA0NWw0Ny40IDU4LTIwMiAyNDYuOUM0LjUgMzY3LjEgMCAzNzkuNiAwIDM5Mi42TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzkuNGMwLTEyLjktNC41LTI1LjUtMTIuNy0zNS41bC0yMDItMjQ2LjkgNDcuNC01OHpNMjU2IDI4OGwxMTIgMTI4LTIyNCAwIDExMi0xMjh6Il19LGNCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU1MiIsIk0xMDQuNSAyNGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bS04IDE4MS4zTDczLjkgMjI3LjljLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM1LjEtMzUuMWMyMi44LTIyLjggNTMuNi0zNS42IDg1LjgtMzUuNiAzNi45IDAgNzEuOCAxNi44IDk0LjggNDUuNkwyNjIuMyAxODBjNi4xIDcuNiAxNS4zIDEyIDI1IDEybDMzLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzMuMiAwYy0yOS4yIDAtNTYuNy0xMy4zLTc1LTM2bC0zLjgtNC43IDAgMTE1LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhMMTMwIDM0Ny41Yy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6TTk2LjYgMzcxYzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVMNTUuMSA1MzQuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjguMy02OC4zYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEw5Ni42IDM3MXpNNTA1LjUgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MnoiXX0sZEJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzZXMiLGljb246WzU3Niw1MTIsW10sImY1MzAiLCJNMTQzLjMgOTZjLTE0IDAtMjYuNSA5LjItMzAuNiAyMi42TDcwLjQgMjU2IDIyNCAyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsNjQgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNTMuNiAwLTQyLjMtMTM3LjRDNDU5LjIgMTA1LjIgNDQ2LjggOTYgNDMyLjcgOTZMNDAwIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyLjcgMGM0Mi4xIDAgNzkuNCAyNy41IDkxLjggNjcuOGw0NS40IDE0Ny41YzQuMSAxMy4yIDYuMSAyNi45IDYuMSA0MC43bDAgOTZjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtNTMgMC05Ni00My05Ni05NmwwLTMyLTY0IDAgMCAzMmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtOTZjMC0xMy44IDIuMS0yNy41IDYuMS00MC43TDUxLjUgOTkuOEM2My45IDU5LjUgMTAxLjEgMzIgMTQzLjMgMzJMMTc2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMi43IDB6TTY0IDMyMGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMHptNDE2IDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQtMTI4IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAweiJdfSxRN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxOTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0sdUJ0PVE3ZSxwQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVtb3J5IixpY29uOls1MTIsNTEyLFtdLCJmNTM4IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNy40QzAgMTQyLjIgNC40IDE0OCAxMC4xIDE1MS43IDIzLjMgMTYwLjMgMzIgMTc1LjEgMzIgMTkycy04LjcgMzEuNy0yMS45IDQwLjNDNC40IDIzNiAwIDI0MS44IDAgMjQ4LjZsMCA1NS40IDUxMiAwIDAtNTUuNGMwLTYuOC00LjQtMTIuNi0xMC4xLTE2LjMtMTMuMi04LjYtMjEuOS0yMy40LTIxLjktNDAuM3M4LjctMzEuNyAyMS45LTQwLjNjNS43LTMuNyAxMC4xLTkuNSAxMC4xLTE2LjNsMC03LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTUxMiA0MTZsMC02NC01MTIgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgODggMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTE2MCAxNjBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0saEJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnQiLGljb246WzUxMiw1MTIsWzEyNzg3M10sImYwNmIiLCJNMzIxLjUgNjguOEMzMjkuMSA1NS45IDM0Mi45IDQ4IDM1Ny44IDQ4bDIuMiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC03My4zIDAgMzQuOC01OS4yem0tMTMxIDBsMzQuOCA1OS4yLTczLjMgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGwyLjIgMGMxNC45IDAgMjguOCA3LjkgMzYuMyAyMC44em04OS42LTI0LjNsLTI0LjEgNDEtMjQuMS00MUMyMTUuNyAxNi45IDE4Ni4xIDAgMTU0LjIgMEwxNTIgMGMtNDguNiAwLTg4IDM5LjQtODggODggMCAxNC40IDMuNSAyOCA5LjYgNDBMMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTQxLjYgMGM2LjEtMTIgOS42LTI1LjYgOS42LTQwIDAtNDguNi0zOS40LTg4LTg4LTg4bC0yLjIgMGMtMzEuOSAwLTYxLjUgMTYuOS03Ny43IDQ0LjR6TTQ4MCAyNzJsLTIwMCAwIDAgMjA4IDEzNiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ0em0tMjQ4IDBsLTIwMCAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEzNiAwIDAtMjA4eiJdfSxmQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13aGVhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyYSIsIk0xNzYtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDQ4QzQyLjcgNDggMzIgMzcuMyAzMiAyNFM0Mi43IDAgNTYgMHpNMjQgNzJsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTIwQzEwLjcgMTIwIDAgMTA5LjMgMCA5NlMxMC43IDcyIDI0IDcyem04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgMGMwLTguOCA3LjItMTYgMTYtMTYgNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwek00MDAtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnptODAgMTQ0YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxMTJjOC44IDAgMTYgNy4yIDE2IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDR6TTQ4IDQxNmwwIDQ4IDQ4IDBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDMwNGwtNDggMCAwIDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek00NjQgNDE2Yy0yNi41IDAtNDggMjEuNS00OCA0OGw0OCAwIDAtNDh6TTQxNiAzMDRjMCAyNi41IDIxLjUgNDggNDggNDhsMC00OC00OCAwem0tOTYgODBhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAweiJdfSxtQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVuZ2VvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkOSIsIk0zNDcuNSAxNDQuOGM2LjUgNS40IDEyLjUgMTEuMyAxOCAxNy43IDguNyAxMC4yIDIzLjcgMTQgMzUuMSA2LjlsNTQuMS0zMy44YzExLjItNyAxNC43LTIxLjcgNi45LTMyLjItMTUuMy0yMC41LTMzLjUtMzguNi01NC4xLTUzLjgtMTAuNC03LjYtMjQuNy00LjMtMzEuOCA2LjRsLTM1LjEgNTIuNmMtNy44IDExLjYtMy44IDI3LjMgNyAzNi4yek0zMjcuOCA0MS4xYzguNi0xMi45IDIuOS0zMC41LTEyLjItMzQuMS0xOS4xLTQuNi0zOS4xLTctNTkuNi03cy00MC40IDIuNC01OS42IDdjLTE1LjEgMy42LTIwLjggMjEuMi0xMi4yIDM0LjFsNDAgNjBjNS4yIDcuOCAxNC41IDExLjcgMjMuOSAxMS4yIDUuMi0uMyAxMC42LS4zIDE1LjggMCA5LjQgLjUgMTguNy0zLjQgMjMuOS0xMS4ybDQwLTYwek01MC41IDEwMy4zYy03LjkgMTAuNS00LjMgMjUuMyA2LjkgMzIuMmw1NC4xIDMzLjhjMTEuNCA3LjEgMjYuMyAzLjMgMzUuMS02LjkgNS41LTYuNCAxMS41LTEyLjMgMTgtMTcuNyAxMC44LTguOSAxNC44LTI0LjYgNy0zNi4yTDEzNi40IDU1LjljLTcuMS0xMC43LTIxLjUtMTQtMzEuOC02LjQtMjAuNiAxNS4xLTM4LjggMzMuMy01NC4xIDUzLjh6bTYyIDE0MS4xYy44LTkuOS0zLjMtMTkuOS0xMS44LTI1LjFMNDEgMTgyYy0xMi45LTgtMjkuOS0yLjMtMzMuNiAxMi41LTQuOSAxOS43LTcuNSA0MC4zLTcuNSA2MS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMy45IC4yLTcuOCAuNS0xMS42em0yODcuMSAwYy4zIDMuOCAuNSA3LjcgLjUgMTEuNmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTIxLjItMi42LTQxLjgtNy41LTYxLjYtMy42LTE0LjctMjAuNy0yMC41LTMzLjYtMTIuNWwtNTkuNyAzNy4zYy04LjQgNS4zLTEyLjYgMTUuMi0xMS44IDI1LjF6TTg4IDM1MmwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNDAwIDBsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNHptLTgwIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6bTE2MCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6Il19LEo3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsibWVka2l0Il0sImYwZmEiLCJNMTkyIDU2bDAgNDAgMTI4IDAgMC00MGMwLTQuNC0zLjYtOC04LThMMjAwIDQ4Yy00LjQgMC04IDMuNi04IDh6bS00OCA4bDAtOGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMTIgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQyNC0yMjQgMCAwLTQxNnpNOTYgMTc2bDAgMzA0LTMyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDAgMCA4MHpNNDE2IDQ4MGwwLTM4NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMiAwek0yNDQgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzNi0zNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMzYgMCAwIDM2YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM2IDM2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0zNiAwIDAtMzZjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxnQnQ9SjdlLGJCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYyIsIk0yMzItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE0NCAyMzYuN0w5Ny43IDI5OS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxNDIgMTMyIDE4MS43IDExMiAyMjQgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDMwNCAyMzYuNyAzMDQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc1LjN6TTM5MiAzODRjLTQuNCAwLTggMy42LTggOCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTI4YzAtNC40LTMuNi04LTgtOHoiXX0sWGs9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2UiLGljb246WzUxMiw1MTIsWyJkYXNoYm9hcmQiLCJnYXVnZS1tZWQiLCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlIl0sImY2MjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptLTE2IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQwMCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sdkJ0PVhrLHhCdD1Yayx5QnQ9WGssd0J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4tdGV4dCIsaWNvbjpbNTc2LDUxMixbXSwiZjY1OCIsIk0yODggMzMuOUw5Ni40IDE3NS44IDI1NC41IDI5M2M1LjMgMy45IDExLjIgNi45IDE3LjUgOC43TDI3MiA0NjRjMCA1LjUgLjUgMTAuOCAxLjMgMTZMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIzOS45YzAtMjAuMyA5LjYtMzkuNCAyNS45LTUxLjRMMjU0LjUtMjFjOS43LTcuMiAyMS40LTExIDMzLjUtMTFzMjMuOCAzLjkgMzMuNSAxMUw1MTguMSAxMjQuN2M3LjIgNS4zIDEzLjEgMTIgMTcuNCAxOS42LTIuNS0uMi01LS4zLTcuNS0uM0w0MzYuNiAxNDQgMjg4IDMzLjl6TTMyMCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIyNHptODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAweiJdfSxrQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vbGJveCIsaWNvbjpbNTEyLDUxMixbMTI5NTIwXSwiZjU1MiIsIk0xNzYgNTZsMCA0MCAxNjAgMCAwLTQwYzAtNC40LTMuNi04LTgtOEwxODQgNDhjLTQuNCAwLTggMy42LTggOHpNMTI4IDk2bDAtNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzI4IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAyOC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw1MS45IDUxLjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3Ni4xLTEzNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xNDQgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtMTM2IDAgMC03Ni4xYzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsNTEuOS01MS45YzktOSAyMS4yLTE0LjEgMzMuOS0xNC4xTDEyOCA5NnpNMCA0MTZsMC05NiAxMzYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxNDQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxMzYgMCAwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LFNCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb3dlci1vZmYiLGljb246WzUxMiw1MTIsWzkyMTFdLCJmMDExIiwiTTI4OCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzIyNC0xNy43IDIyNCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMMjg4IDB6TTE0Ni4zIDk4LjRjMTQuNS0xMC4xIDE4LTMwLjEgNy45LTQ0LjZzLTMwLjEtMTgtNDQuNi03LjlDNDMuNCA5Mi4xIDAgMTY5IDAgMjU2IDAgMzk3LjQgMTE0LjYgNTEyIDI1NiA1MTJTNTEyIDM5Ny40IDUxMiAyNTZjMC04Ny00My40LTE2My45LTEwOS43LTIxMC4xLTE0LjUtMTAuMS0zNC40LTYuNi00NC42IDcuOXMtNi42IDM0LjQgNy45IDQ0LjZjNDkuOCAzNC44IDgyLjMgOTIuNCA4Mi4zIDE1Ny42IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzY0IDM2MiA2NCAyNTZjMC02NS4yIDMyLjUtMTIyLjkgODIuMy0xNTcuNnoiXX0sZG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hbCIsaWNvbjpbNTEyLDUxMixbMTI4MjQ2LCJzaWduYWwtNSIsInNpZ25hbC1wZXJmZWN0Il0sImYwMTIiLCJNNDg4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDB6TTM2MCAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAyNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHpNMTUyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNNDggMzg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sX0J0PWRvZSxNQnQ9ZG9lLHpCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BpbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYiIsIk00ODEuNyAyNDAuMWMtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5LjctMy4zIDQ3LTIzLjYgODkuNC01NC44IDEyMUwzNjEgMzU5Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAzNjYuMyAzMjAgMzc2bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtMzUtMzVjNDEuNy00Mi4yIDY4LjktOTguOCA3My40LTE2MS44IDEuMi0xNy42LTEyLTMyLjktMjkuNy0zNC4yek0zOSA0MUw3NCA3NmMtNDEuNyA0Mi4yLTY4LjkgOTguOC03My40IDE2MS44LTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yczMyLjktMTIgMzQuMi0yOS43YzMuMy00NyAyMy42LTg5LjQgNTQuOC0xMjFMMTUxIDE1M2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzE5MiAxNDUuNyAxOTIgMTM2bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDU2IDBDNDYuMyAwIDM3LjUgNS44IDMzLjggMTQuOFMzMi4yIDM0LjEgMzkgNDF6bTIwMS0xMC43Yy0xLjIgMTcuNiAxMiAzMi45IDI5LjcgMzQuMiA0NyAzLjMgODkuNCAyMy42IDEyMSA1NC44TDM1OSAxNTFjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMzY2LjMgMTkyIDM3NiAxOTJsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IDMyLjIgNDcxIDM5TDQzNiA3NGMtNDIuMi00MS43LTk4LjgtNjguOS0xNjEuOC03My40LTE3LjYtMS4yLTMyLjkgMTItMzQuMiAyOS43ek00MSA0NzNsMzUtMzVjNDIuMiA0MS43IDk4LjggNjguOSAxNjEuOCA3My40IDE3LjYgMS4yIDMyLjktMTIgMzQuMi0yOS43cy0xMi0zMi45LTI5LjctMzQuMmMtNDctMy4zLTg5LjQtMjMuNi0xMjEtNTQuOEwxNTMgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTQ1LjcgMzIwIDEzNiAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA0NzkuOCA0MSA0NzN6Il19LENCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqb2ludCIsaWNvbjpbNTc2LDUxMixbXSwiZjU5NSIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0yOTIuNyAzMjBjNS42IDAgMTAuNyAyLjkgMTMuNiA3LjZMMzk0LjYgNDcxYzEuMyAyLjEgMCA0LjktMi40IDUuMi0xNi4xIDIuNS0zMi40IDMuNy00OC43IDMuN2wtMzguMSAwYy01LjYgMC0xMC43LTIuOS0xMy42LTcuNmwtNzktMTI4LjRjLTYtOS44IDAtMjIuNiAxMS41LTIzLjMgNi43LS40IDEzLjQtLjYgMjAuMi0uNmw0OC4zIDB6TTQ1OS4zIDQ2NS45Yy02LjQgMS0xMi43LTEuOS0xNi4xLTcuNEwzNzQuMSAzNDYuMWMtNi43LTEwLjkgMS41LTI0LjcgMTQuMi0yMi45IDEuMyAuMiAyLjYgLjQgMy44IC42bDEzNi40IDIxYzI3LjMgNC4yIDQ3LjQgMjcuNyA0Ny40IDU1LjNzLTIwLjEgNTEuMS00Ny40IDU1LjNsLTY5LjIgMTAuNnpNMTM4LjcgMzM2YzYuNy0xLjUgMTMuNiAxLjQgMTcuMiA3LjJsNjguOSAxMTJjNi42IDEwLjctMS4yIDI0LjQtMTMuOCAyMy4xLTEzLTEuNC0yNS45LTMuNS0zOC42LTYuNUwzMS4yIDQzOS4yQzEyLjkgNDM1IDAgNDE4LjcgMCA0MDBzMTIuOS0zNSAzMS4yLTM5LjJMMTM4LjcgMzM2eiJdfSxUQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaWxsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJhMSIsIk04MCAxNDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wIDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAgNTZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODAtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0yNDgtODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0em01NiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHpNMzA0IDIzMmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAgMTA0YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sZTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2tldC1zaG9wcGluZyIsaWNvbjpbNTc2LDUxMixbInNob3BwaW5nLWJhc2tldCJdLCJmMjkxIiwiTTI4OCAwYzYuNiAwIDEyLjkgMi43IDE3LjQgNy41bDE0NCAxNTIgLjUgLjUgNzguMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTQuNS05LjYgMjYuNy0yMi44IDMwLjdMNDkxLjEgNDI5LjljLTYuNSAyOS4zLTMyLjUgNTAuMS02Mi41IDUwLjFsLTI4MS4zIDBjLTMwIDAtNTYtMjAuOC02Mi41LTUwLjFsLTQ2LTIwNy4yYy0xMy4yLTMuOS0yMi44LTE2LjItMjIuOC0zMC43IDAtMTcuNyAxNC4zLTMyIDMyLTMybDc4LjEgMCAuNS0uNSAxNDQtMTUyQzI3NS4xIDIuNyAyODEuNCAwIDI4OCAwem0wIDU4LjlMMTkyLjIgMTYwIDM4My44IDE2MCAyODggNTguOXpNMjA4IDI2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyem04MC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTI4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6Il19LCRCdD1lOWUsREJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRjOCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTRjMC0zOC44IDI2LjQtNzIuNiA2NC04MmwwLTExMi00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6Il19LExCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1hcnJpdmFsIixpY29uOls1NzYsNTEyLFsxMjg3NDhdLCJmNWFmIiwiTTM4Ni42IDE5My4xTDI2NS45IDMuN2MtNC44LTcuNi0xMi42LTEyLjgtMjEuNC0xNC4zbC00My4xLTcuNmMtMTAuOC0xLjktMjAuMiA3LjMtMTguNiAxOC4xbDI0IDE2MS42LTEwNS0xOC41LTMzLjgtNjEuOEM2NC41IDc0LjcgNTguMiA3MC4yIDUxLjEgNjlMMzQgNjZjLTkuOC0xLjctMTguOCA1LjktMTguOCAxNS44bC42IDEwNi4zYy4yIDMwLjkgMjIuNCA1Ny4zIDUyLjkgNjIuN2wxMy41IDIuNCAwIDAgNDE3LjYgNzMuNmMzMC41IDUuNCA1OS41LTE1IDY0LjktNDUuNHMtMTUtNTkuNS00NS40LTY0LjlMMzg2LjYgMTkzLjF6TTIyNCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMzEuMi0xNS4zYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDh6Il19LEVCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXNoLXJlZ2lzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzg4IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRzMjguNyA2NCA2NCA2NGw0OCAwIDAgMzItNTcgMGMtMzEuNiAwLTU4LjUgMjMuMS02My4zIDU0LjRMMS4xIDM2NC4xQy40IDM2OC44IDAgMzczLjYgMCAzNzguNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY5LjZjMC00LjgtLjQtOS42LTEuMS0xNC40TDQ4OC4yIDIxNC40QzQ4My41IDE4My4xIDQ1Ni42IDE2MCA0MjUgMTYwbC0yMTcgMCAwLTMyIDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRTMjkxLjMgMCAyNTYgMEw5NiAwem0wIDQ4bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDk2IDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDgtMTYwYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTIwLTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTE2MCAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek0zMjggMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTI1NiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek00MjQgMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTM1MiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxQQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjcwYiIsIk02NCAyMDhjMCA3LjggNC40IDE4LjcgMTcuMSAzMC4zIDQ1LjQtMjQuMiAxMDcuNy0zOC4zIDE3NC45LTM4LjNzMTI5LjUgMTQuMSAxNzQuOSAzOC4zYzEyLjgtMTEuNiAxNy4xLTIyLjUgMTcuMS0zMC4zIDAtMTIuMy0xMC44LTMyLTQ3LjktNTAuNi0zNS4yLTE3LjYtODYuMS0yOS40LTE0NC4xLTI5LjRzLTEwOC45IDExLjgtMTQ0LjEgMjkuNEM3NC44IDE3NiA2NCAxOTUuNyA2NCAyMDh6bTE5MiA0MGMtNDcgMC04OS4zIDcuNi0xMjIuOSAxOS43IDMzLjIgMTIuNCA3NS43IDIwLjMgMTIyLjkgMjAuM3M4OS43LTcuOCAxMjIuOS0yMC4zQzM0NS4zIDI1NS42IDMwMyAyNDggMjU2IDI0OHpNMCAyMDhDMCAxNTguNCAzOS40IDEyMi4yIDgzLjMgMTAwLjIgMTI5LjEgNzcuMyAxOTAuMyA2NCAyNTYgNjRzMTI2LjkgMTMuMyAxNzIuNyAzNi4yYzQzLjkgMjIgODMuMyA1OC4yIDgzLjMgMTA3LjhsMCA5NmMwIDQ5LjYtMzkuNCA4NS44LTgzLjMgMTA3LjgtNDUuOSAyMi45LTEwNyAzNi4yLTE3Mi43IDM2LjJTMTI5LjEgNDM0LjcgODMuMyA0MTEuOEMzOS40IDM4OS44IDAgMzUzLjYgMCAzMDRsMC05NnoiXX0sSUJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFxdWFyaXVzIixpY29uOls1NzYsNTEyLFtdLCJlODQ1IiwiTTQwMS43IDI5MS40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxMjggNjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0w0MTYgMzU1LjggMzAyLjMgNDEyLjZjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxNjAgMzU1LjggNDYuMyA0MTIuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwxMjgtNjRjOS00LjUgMTkuNi00LjUgMjguNiAwTDI4OCAzNDguMiA0MDEuNyAyOTEuNHptMy40LTE5My41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDEyOCA2NGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDQxNiAxNjMuOCAzMDIuMyAyMjAuNmMtOSA0LjUtMTkuNiA0LjUtMjguNiAwTDE2MCAxNjMuOCA0Ni4zIDIyMC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDEyOC02NCAzLjQtMS41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDExMy43IDU2LjggMTEzLjctNTYuOCAzLjQtMS41eiJdfSx0OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtbm9kZXMiLGljb246WzUxMiw1MTIsWyJzaGFyZS1hbHQiXSwiZjFlMCIsIk0zODQgMTkyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgNS40IC41IDEwLjggMS4zIDE2TDE1OS42IDE4NC4xYy0xNi45LTE1LTM5LjItMjQuMS02My42LTI0LjEtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNC40IDAgNDYuNi05LjEgNjMuNi0yNC4xTDI4OS4zIDQwMGMtLjkgNS4yLTEuMyAxMC41LTEuMyAxNiAwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2Yy0yNC40IDAtNDYuNiA5LjEtNjMuNiAyNC4xTDE5MC43IDI3MmMuOS01LjIgMS4zLTEwLjUgMS4zLTE2cy0uNS0xMC44LTEuMy0xNmwxMjkuNy03Mi4xYzE2LjkgMTUgMzkuMiAyNC4xIDYzLjYgMjQuMXoiXX0sQUJ0PXQ5ZSxOQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxSQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlub2N1bGFycyIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNSIsIk0xMjggMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQgOTZsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTU5LjFjMC0zNC42IDkuNC02OC42IDI3LjItOTguMyAxMy43LTIyLjggMjIuNS00OC4yIDI1LjgtNzQuNkw2MC41IDE1NmMyLTE2IDE1LjYtMjggMzEuOC0yOGw5OS44IDB6bTIyNy44IDBjMTYuMSAwIDI5LjggMTIgMzEuOCAyOEw0NTkgMjE2YzMuMyAyNi40IDEyLjEgNTEuOCAyNS44IDc0LjYgMTcuOCAyOS43IDI3LjIgNjMuNyAyNy4yIDk4LjNsMCA1OS4xYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMjAgOTkuOCAwek0zMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMnptLTMyIDY0bDAgMTYwLTY0IDAgMC0xNjAgNjQgMHoiXX0sT0J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpcC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWM0IiwiTTM0MC44IDg4LjNjMTMuNC0xMS41IDE1LTMxLjcgMy41LTQ1LjFzLTMxLjctMTUtNDUuMS0zLjVMMTI4IDE4Ni40IDEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTY4LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIyLjQgMTcxLjIgMTQ2LjdjMTMuNCAxMS41IDMzLjYgOS45IDQ1LjEtMy41czkuOS0zMy42LTMuNS00NS4xTDE3My4yIDI4MCAzNTIgMjgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3My4yIDIzMiAzNDAuOCA4OC4zeiJdfSxhOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjYwLjFDMTguMSAyNDcuNCA0MC4yIDI0MCA2NCAyNDBsMzIwIDBjMjMuOCAwIDQ1LjkgNy40IDY0IDIwLjFMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00NDggMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0ek0yMjQgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEZCdD1hOWUsQkJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhbmtpbmctc3RhciIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MSIsIk0zMjEuOCA1NC4xTDI5OC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBsLTIzLjYgNDcuOC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjBjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDggMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDE2IDQzMmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6Il19LEhCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwOCIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptLTMwLjUgNTZsNjEgMGM5LjcgMCAxNy41IDcuOCAxNy41IDE3LjUgMCA0LjItMS41IDguMi00LjIgMTEuNGwtMjcuNCAzMiAzMSAxMTUuMSAuNiAwIDM0LjYtMTM4LjVjMi4yLTguNyAxMS4xLTE0IDE5LjUtMTAuOCA2MS45IDIzLjYgMTA1LjkgODMuNiAxMDUuOSAxNTMuOCAwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEw0My40IDUxMmMtMTUuMSAwLTI3LjQtMTIuMy0yNy40LTI3LjQgMC03MC4yIDQ0LTEzMC4yIDEwNS45LTE1My44IDguNC0zLjIgMTcuMyAyLjEgMTkuNSAxMC44bDM0LjYgMTM4LjUgLjYgMCAzMS0xMTUuMS0yNy40LTMyYy0yLjctMy4yLTQuMi03LjItNC4yLTExLjQgMC05LjcgNy44LTE3LjUgMTcuNS0xNy41eiJdfSxzOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMiLGljb246WzQ0OCw1MTIsWyJlbGxpcHNpcy1oIl0sImYxNDEiLCJNMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0xNjggMGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTIyNC01NmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0scUJ0PXM5ZSxqQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzEiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTguNi01OC42YzEuMS00IDEuNi04LjIgMS42LTEyLjVsMC0xNTEuMmMtMTIuNSA0LjYtMjYuMSA3LjItNDAuNSA3LjItOC4xIDAtMTUuOS0uOC0yMy41LTIuNGwwIDY2LjQtMzAuMiAwLTEzNy41LTEzNy41YzIuOS0zLjYgNS41LTcuNCA3LjYtMTEuNSAxMS42IDIyIDM0LjcgMzcgNjEuMyAzNyAyNi44IDAgNDkuOC0xNS4xIDYxLjQtMzcuMSAxMS40IDIyLjEgMzQuNSAzNy4xIDYwLjggMzcuMSA0NS42IDAgNzguNC00My43IDY1LjYtODcuNUw1MTMuOCA3Mi4zQzUwNi44IDQ4LjQgNDg0LjkgMzIgNDYwIDMyTDExNiAzMmMtNS41IDAtMTAuOCAuOC0xNS45IDIuM0w0MS0yNC45ek0xNTEuNSAyMjEuM0w0OC43IDExOC42IDM4LjkgMTUyLjVjLTEyLjggNDMuNyAyMCA4Ny41IDY1LjYgODcuNSAxOC4xIDAgMzQuNy03LjEgNDctMTguN3pNNDEwLjIgNDgwbC0xMjgtMTI4LTE1NC4yIDAgMC02Ni40Yy03LjYgMS42LTE1LjUgMi40LTIzLjUgMi40LTE0LjQgMC0yOC0yLjYtNDAuNS03LjJMNjQgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI5OC4yIDB6Il19LGk5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJjZW50IixpY29uOls0NDgsNTEyLFs2MjEwMSw2Mjc4NSwicGVyY2VudGFnZSJdLCIyNSIsIk0xOTIgMTI4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDQ4IDM4NGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTQzOC42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTM4NCAzODRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzg0LTM4NHoiXX0sVkJ0PWk5ZSxyOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS16aXBwZXIiLGljb246WzM4NCw1MTIsWyJmaWxlLWFyY2hpdmUiXSwiZjFjNiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA0OEM3NC43IDQ4IDY0IDU4LjcgNjQgNzJ6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDcybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sVUJ0PXI5ZSxXQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzcGxheSIsaWNvbjpbNTEyLDUxMixbXSwiZTE2MyIsIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sbzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imljb25zIixpY29uOls1MTIsNTEyLFsiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHQiXSwiZjg2ZCIsIk0xNzQuOSAyNzJjMTAuNyAwIDIwLjcgNS4zIDI2LjYgMTQuMmwxMS44IDE3LjggMjYuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMjYuNyAwIDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwem0yNzguNi0xMmM1LjYtNC45IDEzLjktNS4zIDE5LjktLjlzOC4zIDEyLjQgNS4zIDE5LjNMNDQwLjMgMzY4IDQ5NiAzNjhjNi43IDAgMTIuNiA0LjEgMTUgMTAuNHMuNiAxMy4zLTQuNCAxNy43bC0xMjggMTEyYy01LjYgNC45LTEzLjkgNS4zLTE5LjkgLjlzLTguMy0xMi40LTUuMy0xOS4zbDM4LjUtODkuNy01NS44IDBjLTYuNyAwLTEyLjYtNC4xLTE1LTEwLjRzLS42LTEzLjMgNC40LTE3LjdsMTI4LTExMnpNMTQ0IDM2MGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6TTQ4My44IC40YzYuNS0xLjEgMTMuMSAuNCAxOC41IDQuNCA2LjEgNC41IDkuNyAxMS43IDkuNyAxOS4ybDAgMTUyLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42bDAtNDkuMy0xMTIgMzMuNiAwIDExMC4yLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42TDMwNCA3MmMwLTEwLjYgNy0yMCAxNy4xLTIzbDE2MC00OCAyLjctLjZ6TTE4OC45IDBDMjI2IDAgMjU2IDMwIDI1NiA2Ny4xbDAgNi4xYzAgNTYuMS03NS4yIDExMi4xLTExMC4zIDEzNS4zLTEwLjggNy4xLTI0LjYgNy4xLTM1LjQgMC0zNS4xLTIzLjEtMTEwLjMtNzkuMi0xMTAuMy0xMzUuM2wwLTYuMUMwIDMwIDMwIDAgNjcuMSAwIDg4LjIgMCAxMDggOS45IDEyMC43IDI2LjhsNy4zIDkuOCA3LjMtOS44QzE0OCA5LjkgMTY3LjggMCAxODguOSAweiJdfSxHQnQ9bzllLEtCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci12ZXJ0aWNhbCIsaWNvbjpbMjU2LDUxMixbXSwiZjU0OCIsIk0wIDE2QzAtMTAuNSAyMS41LTMyIDQ4LTMybDE2MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjQtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTQ0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE2eiJdfSxuOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uLWRvdCIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQtYWx0Il0sImY1YTAiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek01MTIgMjI0Yy02Ni4zIDAtMTIwIDUyLjgtMTIwIDExNy45IDAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOXpNNDcyIDM0NGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxZQnQ9bjllLGw5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jcmFjayIsaWNvbjpbNTEyLDUxMixbMTI4MTQ4LCJoZWFydC1icm9rZW4iXSwiZjdhOSIsIk0xMzMuMSAzMmMxNy4zIDAgMzQuMiAzLjQgNDkuOSA5LjdsNTQuOCA4NS4yLTc1LjQgNzUuNGMtMS41IDEuNS0yLjQgMy42LTIuMyA1LjhzMSA0LjIgMi42IDUuN2wxMTIgMTA0YzIuOSAyLjcgNy40IDIuOSAxMC41IC4zczMuOC03IDEuNy0xMC40bC02MC40LTk4LjEgOTAuNy03NS42YzIuNi0yLjEgMy41LTUuNyAyLjQtOC44TDI5Ni40IDYwLjZDMzE5LjYgNDIuMyAzNDguNiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxMTIuMi0xMzkuOSAyNDIuNS0yMTIuOSAyOTguMi0xMi40IDkuNC0yNy42IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNi00My4xLTE0LjFDMTM5LjkgNDEwLjIgMCAyNzkuOSAwIDE2Ny43bDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyeiJdfSxaQnQ9bDllLFhCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3ciLGljb246WzY0MCw1MTIsWzEyODAwNF0sImY2YzgiLCJNOTYgMjI0bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjEgMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDE0NCA2NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NGwwIDU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4bDAgMTcuNmMwIDggNi40IDE0LjQgMTQuNCAxNC40IDMxLjggMCA1Ny42LTI1LjggNTcuNi01Ny42TDcyIDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOS00LjIgMTAuOC02LjUgMjIuNi02LjUgMzQuOWwwIDY0ek01NjAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTE2Ni42IDE2Ni42Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMTc4LjcgMGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNiAwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHoiXX0sb2Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnNzIixpY29uOls0NDgsNTEyLFsiZmVlZCJdLCJmMDllIiwiTTAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTYgMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LFFCdD1vZixuZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjgyNjksInNlYXJjaCJdLCJmMDAyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6Il19LEpCdD1uZixlSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbiIsaWNvbjpbNjQwLDUxMixbXSwiZjZjMyIsIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43eiJdfSx1b2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94ZXMtc3RhY2tlZCIsaWNvbjpbNTEyLDUxMixbNjI2MjUsImJveGVzIiwiYm94ZXMtYWx0Il0sImY0NjgiLCJNMjI0IDBsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgNS41LS43IDEwLjktMiAxNmwtMjUyIDBjLTEuMy01LjEtMi0xMC41LTItMTZsMC0xMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMHptOTYgNTEyYy0xMS4yIDAtMjEuOC0yLjktMzEtOCA5LjUtMTYuNSAxNS0zNS42IDE1LTU2bDAtMTI4YzAtMjAuNC01LjUtMzkuNS0xNS01NiA5LjItNS4xIDE5LjctOCAzMS04bDMyIDAgMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMHpNMCAzMjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDMyMHoiXX0sdEh0PXVvZSxhSHQ9dW9lLHNIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWJyYW5jaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjEyNiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxjOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuIixpY29uOls1MTIsNTEyLFsxMjg2ODMsImNhbmNlbCJdLCJmMDVlIiwiTTM2Ny4yIDQxMi41TDk5LjUgMTQ0LjhjLTIyLjQgMzEuNC0zNS41IDY5LjgtMzUuNSAxMTEuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0MS41IDAgNzkuOS0xMy4xIDExMS4yLTM1LjV6bTQ1LjMtNDUuM2MyMi40LTMxLjQgMzUuNS02OS44IDM1LjUtMTExLjIgMC0xMDYtODYtMTkyLTE5Mi0xOTItNDEuNSAwLTc5LjkgMTMuMS0xMTEuMiAzNS41TDQxMi41IDM2Ny4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxpSHQ9YzllLHJIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqdWctZGV0ZXJnZW50IixpY29uOlszODQsNTEyLFtdLCJlNTE5IiwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggOTZDNzQuNyA5NiA2NCA4NS4zIDY0IDcyUzc0LjcgNDggODggNDhsOCAwIDAtMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDEyOCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZ6bTI1NiAwbDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxkOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHkiLGljb246WzUxMiw1MTIsWzYxNzE0LCJtYWlsLXJlcGx5Il0sImYzZTUiLCJNMjA0LjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtOTYgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45eiJdfSxvSHQ9ZDllLG5IdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4tcGxhbnQtd2lsdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU3YSIsIk0xNjAgMGMtNS41IDAtMTAuNiAyLjgtMTMuNSA3LjRsLTEuMSAyLjEtMjQuOCA1NS40LTU2LjctMjEuN2MtNS45LTIuMi0xMi41LS44LTE3IDMuN1M0MSA1OCA0My4yIDYzLjlsMjEuNyA1Ni43LTU1LjQgMjQuOEMzLjcgMTQ4IDAgMTUzLjcgMCAxNjBzMy43IDEyIDkuNSAxNC42bDU1LjQgMjQuOC0yMS43IDU2LjdjLTIuMiA1LjktLjggMTIuNSAzLjcgMTdzMTEuMSA1LjkgMTcgMy43bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuOCAyMS43YzUuOSAyLjIgMTIuNSAuOCAxNy0zLjdzNS45LTExLjEgMy43LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43IC43LTIuMmMxLjItNS4zLS40LTEwLjktNC4zLTE0LjhzLTkuNS01LjUtMTQuOC00LjNsLTIuMiAuNy01Ni44IDIxLjctMjQuOC01NS40QzE3MiAzLjcgMTY2LjMgMCAxNjAgMHptMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzc2IDE2bDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtNTMuNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIyLjdjLTkuOC00LjMtMjAuNi02LjctMzItNi43LTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjYtMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtMjEuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2LTQyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxsSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaXVtIixpY29uOls1NzYsNTEyLFtdLCJlMDVhIiwiTTQwOCAxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzNjAgMi43IDM2MCAxNmwwIDIzLjRjLTEzLjkgNS4zLTI2LjkgMTMuNS0zOC4yIDI0LjVMMzA1IDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOC0zMC4xIDMwLjEtMTYuOC0xNi44Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOGMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDE3NyAxNzVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMSAxMS4zLTE5LjIgMjQuMy0yNC41IDM4LjJMNDggMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2LjMgMGMxLjMgMTguMyA3LjEgMzYuNCAxNy40IDUyLjRMNzEgNDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTAuNi0xMC42YzE2IDEwLjMgMzQuMSAxNi4xIDUyLjQgMTcuNGwwIDE2LjNjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIzLjRjMTMuOS01LjMgMjYuOS0xMy41IDM4LjItMjQuNUwyNzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44IDMwLjEtMzAuMSAxNi44IDE2LjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjhjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM5OSAzMzdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMS0xMS4zIDE5LjItMjQuMyAyNC41LTM4LjJsMjMuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNi4zIDBjLTEuMy0xOC4zLTcuMS0zNi40LTE3LjQtNTIuNEw1MDUgNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NjAuNCA0OS43Yy0xNi0xMC4zLTM0LjEtMTYuMS01Mi40LTE3LjRMNDA4IDE2ek0xNjAgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTI3MiAyNDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxjSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjb3JkLXZpbnlsIixpY29uOls1MTIsNTEyLFtdLCJmOGQ5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTExMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHU5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDIuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkw2NCAzMnptMzIgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTIyNCAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LGRIdD11OWUsdUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldHMtcG9ydGFibGUiLGljb246WzUxMiw1MTIsW10sImU1ODQiLCJNNjQgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNkMwIDI4LjcgMjguNyAwIDY0IDB6TTAgMTI4bDIyNCAwIDAgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjggMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1MDEuMyAwIDQ4OEwwIDEyOHpNMTI4IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzUyIDBsOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTIyNCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTI4OCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2MHpNNDE2IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0scEh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im8iLGljb246WzQ0OCw1MTIsWzExMV0sIjRmIiwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZhMjI0IDIyNCAwIDEgMSAtNDQ4IDAgMjI0IDIyNCAwIDEgMSA0NDggMHoiXX0saEh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGV0dGUiLGljb246WzUxMiw1MTIsWzEyNzkxMl0sImY1M2YiLCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43LS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDMuNCAuNCA2LjcgMSA5LjkgMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOSA2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MiAwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjItMy41IC4xLTcgLjItMTAuNiAuMi0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2UzExNC42IDAgMjU2IDAgNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGZIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NV0sImYwOWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0IDMxLjcgMCA1OCAyMyA2My4xIDUzLjMgMi45IDE3LjQgMTkuNCAyOS4yIDM2LjkgMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi45QzMwOC4xIDE0LjEgMjU1LjUtMzIgMTkyLTMyIDEyMS4zLTMyIDY0IDI1LjMgNjQgOTZsMCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE5MiAwIDAtNjR6Il19LHA5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItbGlzdGVuIixpY29uOls1MTIsNTEyLFsiYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zIl0sImYyYTIiLCJNMzc5LjYgLjNjLTguOSAxLjItMTcuMiA2LjItMjIuNCAxNC4xLTYuOCAxMC40LTcgMjQuMS0uNCAzNC42IDUuNiA4LjkgMTUuNSAxMi43IDIzLjggMTguNSA3LjUgNS4yIDE3LjYgMTMuMiAyNy43IDI0LjIgMjAgMjEuNyAzOS41IDU0LjMgMzkuNSAxMDAuMyAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNjYtMjguNS0xMTMuNC01Ni41LTE0My43LTEzLjktMTUuMS0yNy44LTI2LjEtMzguMy0zMy4zLTExLTcuNi0yMy41LTE2LjYtMzcuNi0xNC43ek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnpNMCA0ODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYwLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNODYuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6TTI0MCAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LG1IdD1wOWUsZ0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtcHVsbC1yZXF1ZXN0IixpY29uOls1MTIsNTEyLFtdLCJlMTNjIiwiTTMyOCAyNGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTMjkzLjkgLjIgMjg3IDdMMjMxIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NiA1NmM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyOCAxNDUuNyAzMjggMTM2bDAtMjQgMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIxNC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM0w0NDggMTQ0YzAtNTMtNDMtOTYtOTYtOTZsLTI0IDAgMC0yNHpNNzIgODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNTYgNzMuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzE2IDM1LjggMTYgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zYy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTIwNS4zek03MiA0MzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMzQ0LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sYkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtleSIsaWNvbjpbNTEyLDUxMixbMTI4MjczXSwiZjA4NCIsIk0zMzYgMzUyYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2UzQzMy4yIDAgMzM2IDAgMTYwIDc4LjggMTYwIDE3NmMwIDE4LjcgMi45IDM2LjggOC4zIDUzLjdMNyAzOTFjLTQuNSA0LjUtNyAxMC42LTcgMTdsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSx2SHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwiLGljb246WzUxMiw1MTIsWzEyODEyOF0sImY1NGMiLCJNNDE2IDQyNy40YzU4LjUtNDQgOTYtMTExLjYgOTYtMTg3LjQgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MFMwIDEwNy41IDAgMjQwYzAgNzUuOCAzNy41IDE0My40IDk2IDE4Ny40TDk2IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM2LjZ6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0saDllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXVwIixpY29uOlszODQsNTEyLFs5ODk2LCJtYXJzLXN0cm9rZS12Il0sImYyMmEiLCJNMTkyIDI1NmExMTIgMTEyIDAgMSAwIDAgMjI0IDExMiAxMTIgMCAxIDAgMC0yMjR6TTE2IDM2OGMwLTg2LjMgNjIuMS0xNTguMSAxNDQuMS0xNzMuMS0uMS0uOS0uMS0xLjktLjEtMi45bDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjEuNC0yOCAyMi40Yy0xMy44IDExLTMzLjkgOC44LTQ1LTVzLTguOC0zMy45IDUtNDVsODAtNjRjMTEuNy05LjMgMjguMy05LjMgNDAgMGw4MCA2NGMxMy44IDExIDE2IDMxLjIgNSA0NXMtMzEuMiAxNi00NSA1bC0yOC0yMi40IDAgNjEuNCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxIDAgMS45LS4xIDIuOSA4MiAxNSAxNDQuMSA4Ni44IDE0NC4xIDE3My4xIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2IDQ2NS4yIDE2IDM2OHoiXX0seEh0PWg5ZSxmOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1mbGFtZS1zaW1wbGUiLGljb246WzM4NCw1MTIsWyJidXJuIl0sImY0NmEiLCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42IDAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41IDAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6Il19LHlIdD1mOWUsd0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUiLGljb246WzQ0OCw1MTIsWzEyNzc5NF0sImYxYmIiLCJNMjI0LTMyYzcgMCAxMy43IDMuMSAxOC4zIDguNWwxMzYgMTYwYzYuMSA3LjEgNy40IDE3LjEgMy41IDI1LjZTMzY5LjQgMTc2IDM2MCAxNzZsLTI0LjkgMCA3NS4yIDg4LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MDEuNCAzMDQgMzkyIDMwNGwtMzguNSAwIDg4LjggMTA0LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MzMuNCA0NDggNDI0IDQ0OGwtMTY4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTE2OCAwYy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDk0LjUgMzA0IDU2IDMwNGMtOS40IDAtMTcuOS01LjQtMjEuOC0xMy45cy0yLjYtMTguNSAzLjUtMjUuNkwxMTIuOSAxNzYgODggMTc2Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42bDEzNi0xNjBDMjEwLjMtMjguOSAyMTctMzIgMjI0LTMyeiJdfSxrSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21vZyIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZiIsIk0xNzYgMjg4Qzk2LjUgMjg4IDMyIDIyMy41IDMyIDE0NFM5Ni41IDAgMTc2IDBjMjcuMiAwIDUyLjYgNy41IDc0LjMgMjAuNiAyMC4xLTEzIDQ0LTIwLjYgNjkuNy0yMC42IDQ3LjQgMCA4OC43IDI1LjcgMTEwLjkgNjRsMS4xIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCA2MC4zLTQ3LjYgMTA5LjQtMTA3LjIgMTExLjktMjIuNiAyMC01Mi4zIDMyLjEtODQuOCAzMi4xLTMyLjUgMC02Mi4xLTEyLjEtODQuNy0zMkwxNzYgMjg4ek01MTIgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0TDI0IDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpNODggNDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTE3NiAwbDI4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sU0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InMiLGljb246WzMyMCw1MTIsWzExNV0sIjUzIiwiTTAgMTU3LjVDMCA4OC4yIDU2LjIgMzIgMTI1LjUgMzJMMjcyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDEyNS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MUwyMTAuMSAyMzBDMjcyLjkgMjM3LjkgMzIwIDI5MS4yIDMyMCAzNTQuNSAzMjAgNDIzLjggMjYzLjggNDgwIDE5NC41IDQ4MEw0OCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC0zMS0yMy4xLTU3LjItNTMuOS02MUwxMDkuOSAyODJDNDcuMSAyNzQuMSAwIDIyMC44IDAgMTU3LjV6Il19LF9IdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZWRpIixpY29uOls1NzYsNTEyLFtdLCJmNjY5IiwiTTI0NiAzMTUuN2wtMjEuMi0zMS45Yy0yLjEtMy4yLTEuNy03LjQgMS0xMC4xczYuOS0zLjEgMTAuMS0xbDI5LjUgMTkuN2MyLjEgMS40IDQuOS0uMSA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41YzU5LjgtMTAuOCAxMDUuMS02My4xIDEwNS4xLTEyNiAwLTM3LTE1LjctNzAuNC00MC44LTkzLjctNy02LjUtNi41LTE4LjYgMS0yNC40IDM0LTI2LjMgNTUuOC02Ny41IDU1LjgtMTEzLjkgMC0xNi44LTIuOS0zMy04LjItNDgtNC42LTEzIDEwLjItMzAgMjEuNC0yMiA1My41IDM4IDkyLjcgOTQuOCAxMDcuOCAxNjAuNyAuNSAyLjEtLjIgNC4zLTEuNyA1LjlsLTI4LjQgMjguNGMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDI2IDBjMy40IDAgNi4yIDIuNiA2LjMgNiAuMSAzLjMgLjIgNi42IC4yIDEwIDAgMTcuNS0xLjcgMzQuNy00LjggNTEuMy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDE0LjYgMGM0LjYgMCA3LjcgNC44IDUuNyA5LTQ0LjUgODkuNS0xMzYuOSAxNTEtMjQzLjcgMTUxUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05bDE0LjYgMGM1LjcgMCA4LjYtNi45IDQuNS0xMC45TDIyLjYgMjk0LjZjLS45LS45LTEuNS0yLTEuNy0zLjMtMy4yLTE2LjYtNC44LTMzLjgtNC44LTUxLjMgMC0zLjMgLjEtNi43IC4yLTEwIC4xLTMuNCAyLjktNiA2LjMtNmwyNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjkgMTUuMi02NiA1NC4zLTEyMi44IDEwNy44LTE2MC43IDExLjMtOCAyNiA4LjkgMjEuNCAyMi01LjMgMTUtOC4yIDMxLjItOC4yIDQ4IDAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOSA3LjUgNS44IDggMTcuOSAxIDI0LjQtMjUuMSAyMy40LTQwLjggNTYuNy00MC44IDkzLjcgMCA2Mi45IDQ1LjQgMTE1LjIgMTA1LjEgMTI2bDIuMS02MS41Yy4xLTIuNi0yLjgtNC4yLTUtMi44bC0yNi4zIDE3LjZjLTMuMiAyLjEtNy40IDEuNy0xMC4xLTFzLTMuMS02LjktMS0xMC4xTDI0NiAzNTYuM2MxLjMtMS45IC4yLTQuNS0yLTQuOWwtMzcuNi03LjVjLTMuNy0uNy02LjQtNC02LjQtNy44czIuNy03LjEgNi40LTcuOGwzNy42LTcuNWMyLjItLjQgMy4zLTMgMi00Ljl6Il19LG05ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGlraW5nIixpY29uOls0NDgsNTEyLFsiaGlraW5nIl0sImY2ZWMiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjggMTczLjZjMC0zNCAyNy42LTYxLjYgNjEuNi02MS42IDIwLjMgMCAzOS43IDguMSA1NCAyMi40bDQ4LjIgNDguMmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzcuNSAwYzUuOCAwIDExLjMgMS42IDE2IDQuM2wwLTc2LjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI2OC4zYy00LjcgMi43LTEwLjIgNC4zLTE2IDQuM2wtMzcuNSAwYy0yNS41IDAtNDkuOS0xMC4xLTY3LjktMjguMWwtNi42LTYuNiAwIDEwOS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtMTAxem0tNC44IDIwMy43YzIuMyAyLjMgNC43IDQuNCA3LjEgNi41bDQ0LjkgMzguNWMtMy42IDguNC04LjUgMTYuMy0xNC40IDIzLjRMODguNiA1MzIuNWMtMTEuMyAxMy42LTMxLjUgMTUuNC00NS4xIDQuMXMtMTUuNC0zMS41LTQuMS00NS4xbDcyLjMtODYuN2MyLjYtMy4xIDQuNS02LjYgNS44LTEwLjRsNS43LTE3LjF6TTAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0IDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2eiJdfSxNSHQ9bTllLHpIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtdG8tbGluZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMzIgMHptODYuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDY0IDIzNy4zIDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHptMjU2IDBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LENIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MV0sImYyMjciLCJNMjg4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzAgNDAxLjIgMCAzMDQgNzguOCAxMjggMTc2IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE3NiA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNjAgNjRjLTYuOCAwLTEzLjQtLjQtMjAtMS4xIDIzLjYtMTguOSA0My4zLTQyLjUgNTcuNi02OS40IDQzLjMtMTUuNSA3NC40LTU2LjkgNzQuNC0xMDUuNSAwLTI1LjItOC4zLTQ4LjUtMjIuNC02Ny4yIDcuMSAyLjEgMTQuNiAzLjIgMjIuNCAzLjIgMTcgMCAzMi43LTUuMyA0NS43LTE0LjMgMTEuNyAyMy42IDE4LjMgNTAuMiAxOC4zIDc4LjMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6TTUyOCAxNTcuM0w1MjggMzJjMC0xMS40LTIuNC0yMi4yLTYuNy0zMkw2MDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctNDggNDh6Il19LFRIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aGVybW9tZXRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MSIsIk05NiAzODIuMWwwLTg4LjhjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmwyMS43LTIxLjcgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA3LjgtNy44YzE5LjQtMTkuNCA0NS42LTMwLjIgNzMtMzAuMiA1NyAwIDEwMy4yIDQ2LjIgMTAzLjIgMTAzLjIgMCAyNy40LTEwLjkgNTMuNi0zMC4yIDczTDI1OC4zIDM5OS42Yy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNGwtODguOCAwLTg5IDg5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMFMtMi4zIDQ4MC40IDcgNDcxbDg5LTg5eiJdfSxnOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnRicnVzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mzk2LCJwYWludC1icnVzaCJdLCJmMWZjIiwiTTQ4MC41IDEwLjNMMjU5LjEgMTU4Yy0yOS4xIDE5LjQtNDcuNiA1MC45LTUwLjYgODUuMyA2Mi4zIDEyLjggMTExLjQgNjEuOSAxMjQuMyAxMjQuMyAzNC41LTMgNjUuOS0yMS41IDg1LjMtNTAuNkw1NjUuNyA5NS41YzYuNy0xMC4xIDEwLjMtMjEuOSAxMC4zLTM0LjEgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjQtMTIuMSAwLTI0IDMuNi0zNC4xIDEwLjN6TTI4OCA0MDBjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTNjQgMzM4LjEgNjQgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42IDEuOCAxNy41LTEwLjIgMzYuNC0yNy44IDM2LjRMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyeiJdfSwkSHQ9ZzllLERIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXV0ZXIiLGljb246WzM4NCw1MTIsWzk5MDZdLCJmMjJjIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMSAwLTEuOS0uMS0yLjl6Il19LGI5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUtZmxpcCIsaWNvbjpbNDQ4LDUxMixbInBob25lLXNxdWFyZS1hbHQiXSwiZjg3YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMzIgOTYuN2wyLjggLjhjMzIuMyA4LjggNTkuOSA0MC4xIDUxLjggNzguMi0xOC41IDg3LjUtODcuNCAxNTYuMy0xNzQuOSAxNzQuOS0zOC4xIDguMS02OS40LTE5LjUtNzguMi01MS44bC0uOC0yLjhjLTIuNy05LjggMi40LTIwLjEgMTEuOC0yNGw0OC43LTIwLjNjOC4zLTMuNCAxNy44LTEuMSAyMy41IDUuOWwxOS4zIDIzLjZjMzUuMS0xNy40IDYzLjQtNDYuNiA3OS42LTgyLjRsLTIyLjEtMThjLTYuOS01LjctOS4zLTE1LjItNS45LTIzLjVsMjAuMy00OC43YzMuOS05LjQgMTQuMi0xNC40IDI0LTExLjh6Il19LExIdD1iOWUsdjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xMjUuOC05MS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0NDhsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxFSHQ9djllLFBIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvbGxhciIsaWNvbjpbNTEyLDUxMixbXSwiZjY1MSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHptNC0zNTJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LElIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaXBwbyIsaWNvbjpbNjQwLDUxMixbMTI5NDM1XSwiZjZlZCIsIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4ybDMyIDBjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMSAwIDEwLjIgNy40IDE4LjggMTYuNyAyMyAyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzMgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYtNjQgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTcuNmMtMTEuOC0yLjQtMjIuNy03LjQtMzItMTQuNC0xLjUtMS4xLTIuOS0yLjMtNC4zLTMuNS0xNy0xNC43LTI3LjctMzYuNC0yNy43LTYwLjUgMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZjMCA0NC43IDI2LjIgODMuMiA2NCAxMDEuMmwwIDEwLjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc2Yy0xOS44IDcuNy00MS40IDEyLTY0IDEycy00NC4yLTQuMy02NC0xMmwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExOC45LTE4LjEgNDAuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43IDAtMTA3LjUgODUuMi0xOTUuMiAxOTEuOC0xOTkuMWwuMi0uMSA2NCAwYzQxLjcgMCA4My40IDEyLjEgMTE3LjIgMjUuNyAxLjctMS44IDMuNS0zLjYgNS4zLTUuMkw0MDcgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em03MyAxODVhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptODggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek00ODAgMTQ0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnoiXX0sQUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtZm9vZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRjNiIsIk0wIDE3NmMwLTM1LjMgMjguNy02NCA2NC02NCAuNSAwIDEuMSAwIDEuNiAwIDcuNC0zNi41IDM5LjctNjQgNzguNC02NCAxNSAwIDI5IDQuMSA0MC45IDExLjIgMTMuMy0yNS43IDQwLjEtNDMuMiA3MS4xLTQzLjJzNTcuOCAxNy42IDcxLjEgNDMuMmMxMi03LjEgMjYtMTEuMiA0MC45LTExLjIgMzguNyAwIDcxIDI3LjUgNzguNCA2NCAuNSAwIDEuMSAwIDEuNiAwIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIwOEMzLjEgMTk4LjYgMCAxODcuNyAwIDE3NnpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6Il19LE5IdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdmlydXMiLGljb246WzQ0OCw1MTIsW10sImU1NzgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMTYwIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTkyIDI0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFJIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4tcmFpbiIsaWNvbjpbNjQwLDUxMixbMTI3NzgyXSwiZjc0MyIsIk0yNTQuOSA0NDguMmM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6bTEyMCAwYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnptMTIwIDBjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yek00NDguMyAxMjhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjUtMS4xIDE0LjctMyAyMS41IDI5LjggMTEuNiA1MSA0MC42IDUxIDc0LjUgMCA0NC4yLTM1LjggODAtODAgODBsLTE5MiAwLTguMi0uNGMtNDAuMy00LjEtNzEuOC0zOC4yLTcxLjgtNzkuNiAwLTM5IDI3LjktNzEuNSA2NC45LTc4LjUtLjUtMy4xLS45LTYuMi0uOS05LjUgMC0zMC45IDI1LjEtNTYgNTYtNTYgMTIuNCAwIDIzLjkgNC4xIDMzLjIgMTAuOSAxMy40LTI1LjUgNDAuMS00Mi45IDcwLjgtNDIuOXpNMjQwLjMtMzEuOGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMWw0Ny4zIDcwLjQgODMuMy0xNi4zYzUuMi0xIDEwLjYgLjcgMTQuMyA0LjQgMy44IDMuOCA1LjQgOS4yIDQuNCAxNC40bC04LjYgNDMuOGMtMTEuOSA1LjUtMjIuOCAxMi45LTMyLjQgMjEuNi01LjctMS0xMS43LTEuNS0xNy43LTEuNS0xNC4zIDAtMjggMy00MC40IDguMi0xNi45LTE1LTM5LjItMjQuMi02My42LTI0LjItNTMgMC05NiA0My05NiA5NiAwIDMwLjkgMTQuNiA1OC4yIDM3LjIgNzUuOC0zLjQgMTEuNS01LjIgMjMuNi01LjIgMzYuMiAwIDEzLjIgMiAyNS45IDUuNyAzNy45bC0yLjQtMy41LTgzLjIgMTYuM2MtNS4yIDEtMTAuNi0uNy0xNC4zLTQuNC0zLjgtMy44LTUuNC05LjItNC40LTE0LjRsMTYuMy04My4zLTcwLjQtNDcuNGMtNC40LTMtNy4xLTgtNy4xLTEzLjMgMC01LjMgMi42LTEwLjMgNy0xMy4ybDcwLjQtNDcuNC0xNi4zLTgzLjItLjItMmMtLjMtNC42IDEuMy05LjEgNC42LTEyLjQgMy44LTMuOCA5LjItNS40IDE0LjQtNC40bDgzLjIgMTYuMyA0Ny4zLTcwLjQgMS4yLTEuNmMzLTMuNSA3LjQtNS41IDEyLjEtNS41em0wIDE3NS44YzguNiAwIDE2LjYgMi4zIDIzLjYgNi4yLTkuNyAxMS45LTE2LjkgMjUuOS0yMC43IDQxLjMtMTUgOC4xLTI4LjIgMTkuMi0zOC44IDMyLjMtNy41LTguNS0xMi4yLTE5LjYtMTIuMi0zMS44IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx4OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctcmlnaHQiXSwiZjE3OCIsIk01NjYuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDY2LjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MzQuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxPSHQ9eDllLEZIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy11biIsaWNvbjpbNTEyLDUxMixbXSwiZTRkOSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjcyLTExMiAwYy0yMC45IDAtMzkuNSAxMC4xLTUxLjIgMjUuNi04LTYtMTgtOS42LTI4LjgtOS42LTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQgNjQgMCAwIDQ4LTE0NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjcuNCAzODAuNWM5LTIuMSAxOC4zIDIuMiAyMi41IDEwLjVsMjYuMSA1Mi4yIDAtNDMuM2MwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDEyOGMwIDkuMy02LjQgMTcuMy0xNS40IDE5LjVzLTE4LjMtMi4yLTIyLjUtMTAuNUw0NTIgNDg0LjcgNDUyIDUyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC05LjMgNi40LTE3LjMgMTUuNC0xOS41ek0zMjQgNDAwbDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sQkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWxvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjc2YiIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LEhIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLW9wZW4iLGljb246WzQ0OCw1MTIsW10sImY1MmIiLCJNMjg4IDY0bDY0IDAgMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NGwtOTYgMCAwIDAtMTYwIDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MTZ6TTE2MCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0scUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWxlZnQiLGljb246WzQ0OCw1MTIsW10sImYwMzYiLCJNMjg4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0seTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYSIsaWNvbjpbNTEyLDUxMixbNjIyNTgsImNhbWVyYS1hbHQiXSwiZjAzMCIsIk0xNDkuMSA2NC44TDEzOC43IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNzQuNyAwLTEwLjQtMzEuMkMzNTYuNCA0NS4yIDMzOC4xIDMyIDMxNy40IDMyTDE5NC42IDMyYy0yMC43IDAtMzkgMTMuMi00NS41IDMyLjh6TTI1NiAxOTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LGpIdD15OWUsVkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJheXMiLGljb246WzY0MCw1MTIsW10sImU1OTMiLCJNMzEtMzNDMjEuNy0yMy42IDIxLjctOC40IDMxIDFMODcgNTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDY1LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNNjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw1MTkgMjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEw2MDkgMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNNjUgNTQ1bDU2LTU2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzEgNTExYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6bTU0NCAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC01Ni01NmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHpNMzIwIDIwOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMCAzMmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMjE2LTgwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNNDUxLjIgMjYwLjRDNDY5LjQgMjg2LjMgNDgwIDMxNy45IDQ4MCAzNTJsMCA4YzAgOC40LTEuNCAxNi41LTQuMSAyNGw3OC44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01My00My05Ni05Ni05Ni0xMCAwLTE5LjcgMS41LTI4LjggNC40em0tMjYyLjQgMGMtOS4xLTIuOS0xOC44LTQuNC0yOC44LTQuNC01MyAwLTk2IDQzLTk2IDk2bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDc4LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC04YzAtMzQuMSAxMC42LTY1LjcgMjguOC05MS42ek0yMTYgMTYwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHoiXX0sVUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhaW5ib3ciLGljb246WzY0MCw1MTIsWzEyNzc1Ml0sImY3NWIiLCJNMzIwIDk2QzE3OC42IDk2IDY0IDIxMC42IDY0IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDMzLjcgMCA0MTZsMC02NEMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMlM2NDAgMTc1LjMgNjQwIDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxMTJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDR6TTI4OCAzNTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxXSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2l0ZW1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOCIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04IDAgMCA2NCAxMjAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjAgMCAwIDgwIDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTgwLTEyMCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMzkuOCAzMi4yLTcyIDcyLTcybDEyMCAwIDAtNjQtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSx3OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTYgMC0yNC40LTMuNC00OC4xLTkuOC03MC41IDE4LjYtMzYuMS0yLjctODMuNi00Ni43LTkwLTQ2LjktNTguMy0xMTguOS05NS41LTE5OS41LTk1LjVTMTAzLjQgMzcuMyA1Ni41IDk1LjVjLTQ0IDYuNC02NS4zIDUzLjktNDYuNyA5MC02LjQgMjIuNC05LjggNDYtOS44IDcwLjUgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6bS0zMS42LTIzMWM1LjMtMTAuNyAyMC41LTEwLjcgMjUuOCAwbDIwLjkgNDIuNCA0Ni43IDYuOGMxMS44IDEuNyAxNi41IDE2LjIgOCAyNC41bC0zMy44IDMzIDggNDYuNmMyIDExLjctMTAuMyAyMC43LTIwLjkgMTUuMmwtNDEuOC0yMi00MS44IDIyYy0xMC41IDUuNS0yMi45LTMuNC0yMC45LTE1LjJsOC00Ni42LTMzLjgtMzNjLTguNS04LjMtMy44LTIyLjggOC0yNC41bDQ2LjctNi44IDIwLjktNDIuNHptLTE5OC4yIDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40YzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDB6Il19LEdIdD13OWUsazllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtdXAiLGljb246WzM4NCw1MTIsWyJzb3J0LWFzYyJdLCJmMGRlIiwiTTMyIDIyNGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxNzguNSA5LjQgMTY5LjRsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzM2NC45IDIyNCAzNTIgMjI0TDMyIDIyNHoiXX0sS0h0PWs5ZSxIYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDMyYy04MC44IDAtMTQ1LjUgMzYuOC0xOTIuNiA4MC42LTQ2LjggNDMuNS03OC4xIDk1LjQtOTMgMTMxLjEtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42czE0NS41LTM2LjggMTkyLjYtODAuNmM0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNnpNMTQ0IDI1NmExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTEuNSAwLTIyLjMtMy0zMS43LTguNC0xIDEwLjktLjEgMjIuMSAyLjkgMzMuMiAxMy43IDUxLjIgNjYuNCA4MS42IDExNy42IDY3LjlzODEuNi02Ni40IDY3LjktMTE3LjZjLTEyLjItNDUuNy01NS41LTc0LjgtMTAxLjEtNzAuOCA1LjMgOS4zIDguNCAyMC4xIDguNCAzMS43eiJdfSxxYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1sZWZ0IixpY29uOlsyNTYsNTEyLFtdLCJmMGQ5IiwiTTcuNyAyMzUuOGMtMTAuMyAxMi42LTkuNSAzMS4xIDIuMiA0Mi44bDEyOCAxMjhjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNmwwLTI1NmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtMTI4IDEyOC0yLjIgMi40eiJdfSxTOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXBwbGUtd2hvbGUiLGljb246WzQ0OCw1MTIsWzEyNzgyMiwxMjc4MjMsImFwcGxlLWFsdCJdLCJmNWQxIiwiTTIyNCAxMTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDB6TTAgMjg4YzAtNzYuMyAzNS43LTE2MCAxMTItMTYwIDI3LjMgMCA1OS43IDEwLjMgODIuNyAxOS4zIDE4LjggNy4zIDM5LjkgNy4zIDU4LjcgMCAyMi45LTguOSA1NS40LTE5LjMgODIuNy0xOS4zIDc2LjMgMCAxMTIgODMuNyAxMTIgMTYwIDAgMTI4LTgwIDIyNC0xNjAgMjI0LTE2LjUgMC0zOC4xLTYuNi01MS41LTExLjMtOC4xLTIuOC0xNi45LTIuOC0yNSAwLTEzLjQgNC43LTM1IDExLjMtNTEuNSAxMS4zLTgwIDAtMTYwLTk2LTE2MC0yMjR6Il19LFlIdD1TOWUsXzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcm9sbC10b3JhaCIsaWNvbjpbNTc2LDUxMixbInRvcmFoIl0sImY2YTAiLCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDAgNjguOSAwIDg2LjcgMTMuNCA5My4zIDMybDM4OS41IDBjNi42LTE4LjYgMjQuNC0zMiA0NS4zLTMyIDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4LTIwLjkgMC0zOC43LTEzLjQtNDUuMy0zMkw5My4zIDQ4MGMtNi42IDE4LjYtMjQuNCAzMi00NS4zIDMyLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6TTE3Ny45IDMwMWMtMS4yIDItMS45IDQuMi0xLjkgNi42IDAgNi45IDUuNiAxMi41IDEyLjUgMTIuNWw1Ni45IDAgMzAuNSA0OS4yYzIuNiA0LjIgNy4yIDYuOCAxMi4yIDYuOHM5LjYtMi42IDEyLjItNi44bDMwLjUtNDkuMiA1Ni45IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtMi4zLS42LTQuNi0xLjktNi42bC0yNy44LTQ1IDI3LjgtNDVjMS4yLTIgMS45LTQuMiAxLjktNi42IDAtNi45LTUuNi0xMi41LTEyLjUtMTIuNWwtNTYuOSAwLTMwLjUtNDkuMmMtMi42LTQuMi03LjItNi44LTEyLjItNi44cy05LjYgMi42LTEyLjIgNi44bC0zMC41IDQ5LjItNTYuOSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCAyLjMgLjYgNC42IDEuOSA2LjZsMjcuOCA0NS0yNy44IDQ1eiJdfSxaSHQ9XzllLFhIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTEwIiwiTTUyOCAyMjQuMWM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODB6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTg1IDE3MS44QzQ0MC4yIDE5NSA0MDAgMjQ0LjggNDAwIDMwNGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNMjcyIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5NiAwIDAtODcuM2MwLTE2LjUgNy0zMS41IDE4LjQtNDIuMS04LjctOS0yMC45LTE0LjYtMzQuNC0xNC42bC0zMiAwem0yNTYtNDcuOWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxRSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWxlZnQtcmlnaHQtdG8tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTRiYSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhMMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzkwLjYgMzQyLjZsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTEzMy41IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDEzMy41IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHpNNTc2IDEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2eiJdfSxmaD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjFmOCIsIk0xMzYuNyA1LjlMMTI4IDMyIDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMC04LjctMjYuMUMzMDYuOS03LjIgMjk0LjctMTYgMjgwLjktMTZMMTY3LjEtMTZjLTEzLjggMC0yNiA4LjgtMzAuNCAyMS45ek00MTYgMTQ0TDMyIDE0NCA1My4xIDQ2Ny4xQzU0LjcgNDkyLjQgNzUuNyA1MTIgMTAxIDUxMkwzNDcgNTEyYzI1LjMgMCA0Ni4zLTE5LjYgNDcuOS00NC45TDQxNiAxNDR6Il19LE05ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjcxIDk4YzUuNS0xLjMgMTEuMS0yIDE3LTIgMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTAtMTIuNSAwLTI0LjYgMS45LTM1LjkgNS41IDkuOCAxMi43IDE2LjUgMjcuOSAxOC45IDQ0LjZ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg1LjQgMjkyLjhjLTIuNC0yLjktNS43LTQuOC05LjQtNC44cy03IDEuOS05LjQgNC44Yy02LjUgNy44LTEyLjYgMTYuMS0xOC4zIDI0LjYtOSAxMy40LTIwLjMgMzAuMi0yMC4zIDQ3LjQgMCAyOC4zIDIxLjUgNTEuMiA0OCA1MS4yczQ4LTIyLjkgNDgtNTEuMmMwLTE3LjItMTEuMi0zNC0yMC4zLTQ3LjQtNS43LTguNS0xMS45LTE2LjctMTguMy0yNC42eiJdfSxKSHQ9TTllLGVxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYXgiLGljb246WzUxMiw1MTIsWzEyODIyNCwxMjg0MzldLCJmMWFjIiwiTTE2MCA2NGwwIDgwIDY0IDAgMC04MCAxNDYuNyAwIDQ1LjMgNDUuMyAwIDM0LjcgNjQgMCAwLTM0LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNDE2IDE4LjdDNDA0IDYuNyAzODcuNyAwIDM3MC43IDBMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0ek0zMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyTDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDB6bTQ0OCA2NGwtMzIwIDAgMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAyODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMCA5NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zMzYgMjY0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzEyIDM4NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek00MjQgMjY0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNNDAwIDM4NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSx0cXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJlNTQxIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOGwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LGFxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1zYSIsaWNvbjpbNTEyLDUxMixbXSwiZjY2NSIsIk0zNC42IDI4OEw4MCAyODhjOC44IDAgMTYtNy4yIDE2LTE2TDk2IDcyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxMzJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xNjRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE2NGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTEzMmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjAwYzAgOC44IDcuMiAxNiAxNiAxNmw0NS40IDBjMTkuMSAwIDM0LjYgMTUuNSAzNC42IDM0LjYgMCA4LjYtMy4yIDE2LjktOSAyMy4zTDQxNi42IDQ0MWMtNDEuMSA0NS4yLTk5LjQgNzEtMTYwLjYgNzFTMTM2LjYgNDg2LjIgOTUuNCA0NDFMOSAzNDUuOWMtNS44LTYuNC05LTE0LjctOS0yMy4zIDAtMTkuMSAxNS41LTM0LjYgMzQuNi0zNC42ek0yNTYgMjg4Yy0zOC40IDAtNzYuOCAzNS44LTkwLjYgNTAuMi0zLjYgMy43LTUuNCA4LjctNS40IDEzLjhzMS44IDEwLjEgNS40IDEzLjhDMTc5LjIgMzgwLjIgMjE3LjYgNDE2IDI1NiA0MTZzNzYuOC0zNS44IDkwLjYtNTAuMmMzLjYtMy43IDUuNC04LjcgNS40LTEzLjhzLTEuOC0xMC4xLTUuNC0xMy44QzMzMi44IDMyMy44IDI5NC40IDI4OCAyNTYgMjg4em0wIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sc3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtcXVlc3Rpb24iLGljb246WzY0MCw1MTIsW10sImU1NDIiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTEwMGMtMTEuNiAwLTIxLjMgOC4yLTIzLjUgMTkuMi0xLjggOC43LTEwLjIgMTQuMy0xOC45IDEyLjVzLTE0LjMtMTAuMi0xMi41LTE4LjljNS4yLTI1LjYgMjcuOC00NC44IDU0LjktNDQuOCAzMC45IDAgNTYgMjUuMSA1NiA1NiAwIDE5LjgtMTEuNyAzNy44LTI5LjggNDUuOWwtMTAuNCA0LjZjLTEuMiA3LjctNy44IDEzLjUtMTUuOCAxMy41LTguOCAwLTE2LTcuMi0xNi0xNiAwLTExLjIgNi42LTIxLjMgMTYuOC0yNS45bDEyLjQtNS41YzYuNi0yLjkgMTAuOC05LjQgMTAuOC0xNi42IDAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxpcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLWNoZWNrIixpY29uOlszODQsNTEyLFtdLCJmNDZjIiwiTTI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDB6bTI2LjkgMjEyLjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42cy05LjggMjQuNC0uNiAzMy45bDQ2LjQgNDhjNC45IDUuMSAxMS44IDcuOCAxOC45IDcuM3MxMy42LTQuMSAxNy44LTkuOEwyODguMiAyNDYuMWM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXpNMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NHoiXX0sejllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoYXJlLWZyb20tc3F1YXJlIixpY29uOls1NzYsNTEyLFs2MTUwOSwic2hhcmUtc3F1YXJlIl0sImYxNGQiLCJNMzg0LjUgMjRsMCA3Mi02NCAwYy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDkzLjQgODIuOCAxMzQuOCAxMDAuNiAxNDIuNiAyLjIgMSA0LjYgMS40IDcuMSAxLjRsMi41IDBjOS44IDAgMTcuOC04IDE3LjgtMTcuOCAwLTguMy01LjktMTUuNS0xMi44LTIwLjMtOC45LTYuMi0xOS4yLTE4LjItMTkuMi00MC41IDAtNDUgMzYuNS04MS41IDgxLjUtODEuNWwzMC41IDAgMCA3MmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJsMTM2LTEzNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0MjUuNSA3Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzM4NC41IDE0LjMgMzg0LjUgMjR6bS0yNzIgNzJjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjU2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTI1NiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDB6Il19LHJxdD16OWUsamI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjZWlwdCIsaWNvbjpbMzg0LDUxMixbMTI5NTM0XSwiZjU0MyIsIk0xNCAyLjJDMjIuNS0xLjcgMzIuNS0uMyAzOS42IDUuOEw4MCA0MC40IDEyMC40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMTkyIDQwLjQgMjMyLjQgNS44YzktNy43IDIyLjItNy43IDMxLjIgMEwzMDQgNDAuNCAzNDQuNCA1LjhjNy4xLTYuMSAxNy4xLTcuNSAyNS42LTMuNlMzODQgMTQuNiAzODQgMjRsMCA0NjRjMCA5LjQtNS41IDE3LjktMTQgMjEuOHMtMTguNSAyLjUtMjUuNi0zLjZsLTQwLjQtMzQuNi00MC40IDM0LjZjLTkgNy43LTIyLjIgNy43LTMxLjIgMGwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDgwIDQ3MS42IDM5LjYgNTA2LjJjLTcuMSA2LjEtMTcuMSA3LjUtMjUuNiAzLjZTMCA0OTcuNCAwIDQ4OEwwIDI0QzAgMTQuNiA1LjUgNi4xIDE0IDIuMnpNMTA0IDEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6TTgwIDM1MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxvcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXF1YWxzIixpY29uOls0NDgsNTEyLFs2Mjc2NF0sIjNkIiwiTTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHoiXX0sbnF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tdXAiLGljb246WzQ0OCw1MTIsW10sImYwNzciLCJNMjAxLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMTczLjMgNTQuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTkyLTE5MnoiXX0sbHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDc1IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg4LjYtODguNmMxLjctMTIuMS0yLTI0LjgtMTEuMy0zNC0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwYy0zMS4yIDMxLjItODQuNSA5LjEtODQuNS0zNSAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtOS4zLTkuMy0yMi0xMy0zNC0xMS4zTDQxLTI0Ljl6TTcyIDIxNmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtMjEuNCAxMi42LTM3LjYgMjkuMS00NS4xbC0yNDAtMjQwQzEwOS42IDIwMy40IDkzLjQgMjE2IDcyIDIxNnoiXX0sY3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNzE1IiwiTTctMjVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNTY5IDUwM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOUMtMi4zLS40LTIuMy0xNS42IDctMjV6Il19LGRxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBhbmQiLGljb246WzQ0OCw1MTIsW10sImYwNjUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTQ0OCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnoiXX0sQzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk02NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMTMuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzMjIuNyA0NjEuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0ODB6TTM4OS41IDMwNEwyOTYgMzA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6Il19LHVxdD1DOWUsVDllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNvbHVtbnMiLGljb246WzQ0OCw1MTIsWyJjb2x1bW5zIl0sImYwZGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDY0bDAgMjU2IDEyOCAwIDAtMjU2LTEyOCAwem0zMjAgMGwtMTI4IDAgMCAyNTYgMTI4IDAgMC0yNTZ6Il19LHBxdD1UOWUsaHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zaGVsdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNTRmIiwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAxNzguNiAyNTYgNjguOSA0NDggMTc4LjYgNDQ4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTEuNS02LjItMjIuMS0xNi4xLTI3LjhsLTIyNC0xMjh6TTI1NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0tOCAxOTJsMTYgMCAwIDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzQuNSAyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zMy4yLTYxLjdDMzI5LjcgMjQ1LjEgMjk0LjQgMjI0IDI1NiAyMjRzLTczLjcgMjEuMS05MS45IDU0LjlsLTMzLjIgNjEuN2MtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMMjAwIDMxMy41IDIwMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg4eiJdfSxmcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW5vdGNoIixpY29uOls1MTIsNTEyLFtdLCJmMWNlIiwiTTIyMi43IDMyLjFjNSAxNi45LTQuNiAzNC44LTIxLjUgMzkuOC03OS4zIDIzLjYtMTM3LjEgOTcuMS0xMzcuMSAxODQuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTg2LjktNTcuOC0xNjAuNC0xMzcuMS0xODQuMS0xNi45LTUtMjYuNi0yMi45LTIxLjUtMzkuOHMyMi45LTI2LjYgMzkuOC0yMS41QzQzNC45IDQyLjEgNTEyIDE0MCA1MTIgMjU2IDUxMiAzOTcuNCAzOTcuNCA1MTIgMjU2IDUxMlMwIDM5Ny40IDAgMjU2YzAtMTE2IDc3LjEtMjEzLjkgMTgyLjktMjQ1LjQgMTYuOS01IDM0LjggNC42IDM5LjggMjEuNXoiXX0sbXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzczIiwiTTQxMC42IDEyNC4xYzIwLjcgMTUuNiA0NiAzMC43IDc0LjIgMzQuNSAxMy4xIDEuOCAyNS4yLTcuNSAyNy0yMC42cy03LjUtMjUuMi0yMC42LTI3Yy0xNS45LTIuMS0zMy4yLTExLjMtNTEuNy0yNS4yLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTE4LjUgMTMuOS0zNS44IDIzLjEtNTEuNyAyNS4yLTEzLjEgMS44LTIyLjQgMTMuOC0yMC42IDI3czEzLjggMjIuNCAyNyAyMC42YzI4LjItMy44IDUzLjYtMTguOSA3NC4yLTM0LjUgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptMCAxNDRjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjctMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiAxNDRjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSwkOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVsZXRlLWxlZnQiLGljb246WzY0MCw1MTIsWzkwMDMsImJhY2tzcGFjZSJdLCJmNTVhIiwiTTU3NiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjA1LjMgNjRjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDkuNCAyMzMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42TDE2MCA0MjkuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZ6TTI4NC4xIDE4OC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LGdxdD0kOWUscG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyb29tLWJhbGwiLGljb246WzU3Niw1MTIsWyJxdWlkZGl0Y2giLCJxdWlkZGl0Y2gtYnJvb20tYmFsbCJdLCJmNDU4IiwiTTQ5NiA1NDRhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6TTEwNi44IDI3Ny4yYzMwLjYtMzAuNiA3My4xLTQ1LjkgMTE1LjgtNDIuMkwzNDEgMzUzLjNjMy43IDQyLjgtMTEuNiA4NS4yLTQyLjIgMTE1LjktMjcuNCAyNy40LTY0LjYgNDIuOC0xMDMuMyA0Mi44TDIyLjEgNTEyYy0xMi4yIDAtMjIuMS05LjktMjIuMS0yMi4xIDAtNi4zIDIuNy0xMi4zIDcuMy0xNi41TDEzMy43IDM1OS43YzQuMi0zLjctLjQtMTAuNC01LjQtNy45TDc3LjIgMzc3LjRjLTYuMSAzLTEzLjItMS40LTEzLjItOC4yIDAtMzEuNSAxMi41LTYxLjggMzQuOC04NGw4LTh6bTQxNy0yNzBjMTIuNi0xMC4zIDMxLjEtOS41IDQyLjggMi4yczEyLjQgMzAuMiAyLjIgNDIuOGwtMi4yIDIuNC0xOTIgMTkyIDM0LjggMzQuN2M0LjIgNC4yIDYuNiAxMCA2LjYgMTYgMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZsLTI5LjEgMC0xMDguMy0xMDguMyAwLTI5LjFjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjYgNiAwIDExLjggMi40IDE2IDYuNmwzNC44IDM0LjcgMTkyLTE5MiAyLjQtMi4yeiJdfSxicXQ9cG9lLHZxdD1wb2UseHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImoiLGljb246WzMyMCw1MTIsWzEwNl0sIjRhIiwiTTI4OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwbDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEQ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHV0dGxlLXNwYWNlIixpY29uOls1NzYsNTEyLFsic3BhY2Utc2h1dHRsZSJdLCJmMTk3IiwiTTAgMzY4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTAgMGM0MC42IDAgODAuNC0xMSAxMTUuMi0zMS45bDEzMy41LTgwLjEtOTMuMyAwLTY0LjkgMzguOWMtMTQgOC40LTI4LjkgMTQuNy00NC41IDE5bDAtNjYuNGM5LjctNS42IDE3LjgtMTMuNyAyMy40LTIzLjRsMTk4LjggMGM2Ny4xIDAgMTI3LjgtMjAuNiAxNzAuMy03MC42IDQuNi01LjQgNC42LTEzLjMgMC0xOC44LTQyLjUtNTAuMS0xMDMuMi03MC42LTE3MC4zLTcwLjZsLTE5OC44IDBjLTUuNi05LjctMTMuNy0xNy44LTIzLjQtMjMuNGwwLTY2LjRjMTUuNiA0LjIgMzAuNiAxMC42IDQ0LjUgMTlsNjQuOSAzOC45IDkzLjMgMC0xMzMuNS04MC4xQzE3OC40IDQzIDEzOC42IDMyIDk4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCAzNjh6bTk2IDBsMCA2NC00OCAwIDAtNjQgNDggMHpNOTYgODBsMCA2NC00OCAwIDAtNjQgNDggMHpNNDE2IDIyNGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0seXF0PUQ5ZSx3cXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieWluLXlhbmciLGljb246WzUxMiw1MTIsWzk3NzVdLCJmNmFkIiwiTTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMzUyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC00NDhjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTYtOTYgNDMtOTYgOTYgNDMgOTYgOTYgOTZDMTUwIDQ0OCA2NCAzNjIgNjQgMjU2UzE1MCA2NCAyNTYgNjR6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sa3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3AiLGljb246WzQ0OCw1MTIsWzkyMDldLCJmMDRkIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0sU3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3dlbCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4OSIsIk00MDcuOSAxODEuNEwyNzcuMyAzMTIgMzQyLjYgMzc3LjRjNy45IDcuOSAxMS4xIDE5LjQgOC40IDMwLjNzLTEwLjggMTkuNi0yMS41IDIyLjlsLTI1NiA4MGMtMTEuNCAzLjUtMjMuOCAuNS0zMi4yLTcuOXMtMTEuNS0yMC44LTcuOS0zMi4ybDgwLTI1NmMzLjMtMTAuNyAxMi0xOC45IDIyLjktMjEuNXMyMi40IC41IDMwLjMgOC40TDIzMiAyNjYuNyAzNjIuNiAxMzYuMWMtMTQuMy0xNC42LTE0LjItMzggLjMtNTIuNWw5NS40LTk1LjRjMjYuOS0yNi45IDcwLjUtMjYuOSA5Ny41IDBzMjYuOSA3MC41IDAgOTcuNWwtOTUuNCA5NS40Yy0xNC41IDE0LjUtMzcuOSAxNC42LTUyLjUgLjN6Il19LEw5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTcuNCAyNTMuNkMyLjYgMjQ1LjkgMCAyMzcuMSAwIDIyOGwwLTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OCAxNy4zIDAgMzIuNCA5LjEgNDAuOSAyMi44IDQuMy0yMi4xIDIzLjgtMzguOCA0Ny4xLTM4LjggMjMuNCAwIDQyLjkgMTYuOCA0Ny4xIDM4LjkgNy4zLTQuNCAxNS44LTYuOSAyNC45LTYuOSAyMi4xIDAgNDAuOCAxNSA0Ni4zIDM1LjQgNS41LTIuMiAxMS40LTMuNCAxNy43LTMuNCAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTM5LjYgNzkuMWMtMTAuOCAyMS43LTMzIDM1LjQtNTcuMiAzNS40TDk2IDM1MmMtMTYuNSAwLTMxLjgtOC40LTQwLjYtMjIuNGwtNDgtNzZ6TTMyIDQ4MGwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sX3F0PUw5ZSxNcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtaGlnaCIsaWNvbjpbNTEyLDUxMixbXSwiZjc2OSIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDIxNiA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQ2NCA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zNTIgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAweiJdfSx6cXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JlYXRlci10aGFuIixpY29uOls1MTIsNTEyLFs2Mjc2OV0sIjNlIiwiTTM0LjkgNTAuNmMtNy40IDE2LS40IDM1LjEgMTUuNiA0Mi41TDQwMy42IDI1NiA1MC42IDQxOWMtMTYgNy40LTIzLjEgMjYuNC0xNS42IDQyLjVzMjYuNCAyMyA0Mi41IDE1LjZsNDE2LTE5MmMxMS4zLTUuMiAxOC42LTE2LjYgMTguNi0yOS4xcy03LjMtMjMuOC0xOC42LTI5LjFMNzcuNCAzNWMtMTYtNy40LTM1LjEtLjQtNDIuNSAxNS42eiJdfSxDcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3J1dGNoIixpY29uOls1MTIsNTEyLFtdLCJmN2Y3IiwiTTI5Ny40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0xLjQtMS40LTE1OC42IDE1OC42Yy0xOCAxOC00Mi40IDI4LjEtNjcuOSAyOC4xbC01OSAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNC02MS43IDYxLjctOTIuOCA5Mi44LTkzLjMgOTMuMy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNi0xNiAwIDAgNzcuMy03Ny4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTU5YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45TDI5OC43IDU2IDI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zek0zNDQgMTAxLjNMMjYxLjMgMTg0IDMyOCAyNTAuNyA0MTAuNyAxNjggMzQ0IDEwMS4zem0tMTI4IDEyOGwtMzAuNiAzMC42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCA1My41IDUzLjUgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwyODIuNyAyOTYgMjE2IDIyOS4zeiJdfSxFOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VwdGFnb24iLGljb246WzU3Niw1MTIsWyJoZXB0YWdvbiJdLCJlODIwIiwiTTI2Ny40LTMxLjVjMTUuOS01LjUgMzMuNS00LjYgNDguOCAyLjdsMTcyLjQgODMgNi4zIDMuNWMxNC4yIDkgMjQuNSAyMy4zIDI4LjMgMzkuOWw0Mi42IDE4Ni41IDEuMiA3LjJjMS42IDE0LjMtMS43IDI4LjgtOS40IDQxLjFsLTQuMiA1LjktMTE5LjMgMTQ5LjZjLTEyLjEgMTUuMi0zMC42IDI0LjEtNTAgMjQuMWwtMTkxLjMgMGMtMTkuNSAwLTM3LjktOC45LTUwLTI0LjFMMjMuNSAzMzguNGMtMTIuMS0xNS4yLTE2LjctMzUuMi0xMi4zLTU0LjJsNDIuNi0xODYuNSAyLTdjNS42LTE1LjkgMTcuMi0yOSAzMi42LTM2LjRsMTcyLjQtODMgNi43LTIuN3oiXX0sVHF0PUU5ZSwkcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyZWV0LXZpZXciLGljb246WzUxMiw1MTIsW10sImYyMWQiLCJNMjU2IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTIyNCAxNjBsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xLjggMC0xMS4xIDk5LjVjLTEuOCAxNi4yLTE1LjUgMjguNS0zMS44IDI4LjVsLTM4LjcgMGMtMTYuMyAwLTMwLTEyLjMtMzEuOC0yOC41bC0xMS4xLTk5LjUtMS44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQxMi40IDQwMC4yYy0xNi4xLTQuMi0zNC44LTcuNi01NS40LTEwLjJsNS4zLTQ3LjdjMjIuNyAyLjkgNDMuNyA2LjcgNjIuMSAxMS41IDIyLjQgNS44IDQyLjYgMTMuMyA1Ny44IDIzLjMgMTQuNyA5LjYgMjkuOCAyNC45IDI5LjggNDdzLTE1LjEgMzcuNC0yOS44IDQ3Yy0xNS4yIDkuOS0zNS41IDE3LjUtNTcuOCAyMy4zLTQ1LjEgMTEuNy0xMDUuMyAxNy44LTE2OC40IDE3LjhzLTEyMy4zLTYuMS0xNjguNC0xNy44QzY1LjIgNDg4LjQgNDUgNDgwLjkgMjkuOCA0NzEgMTUuMSA0NjEuNCAwIDQ0Ni4xIDAgNDI0czE1LjEtMzcuNCAyOS44LTQ3YzE1LjItOS45IDM1LjUtMTcuNSA1Ny44LTIzLjMgMTguNS00LjggMzkuNS04LjYgNjIuMS0xMS41TDE1NSAzOTBjLTIwLjYgMi42LTM5LjMgNi4xLTU1LjQgMTAuMi01Ni42IDE0LjYtNTYuNiAzMi45IDAgNDcuNSAzOS45IDEwLjMgOTUuOCAxNi4yIDE1Ni40IDE2LjJzMTE2LjUtNS45IDE1Ni40LTE2LjJjNTYuNi0xNC42IDU2LjYtMzIuOSAwLTQ3LjV6Il19LERxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXZlLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZSIsIk02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI4OCA5NiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI4OC05NiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xMjh6Il19LExxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1sZWZ0IixpY29uOlsyNTYsNTEyLFs4MjQ5XSwiZjEwNCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sRXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyIixpY29uOls1NzYsNTEyLFsxMjk2OTFdLCJmNTRhIiwiTTM1Mi4xIDE0Ni43bDAtNDkuNmMwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDQ4NS4yLTguN2M2LjMtNC4yIDE0LjgtMy40IDIwLjIgMmw0NS40IDQ1LjVjNS40IDUuNCA2LjIgMTMuOCAyIDIwLjJMNDczLjYgMTc3LjhjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMmwtNDkuNiAwLTkwLjcgOTAuN2MxNSAzMy4zIDguOSA3My45LTE4LjUgMTAxLjNMMTYyLjEgNTEwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDM0LjEgNDQ5LjljLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45TDE2MC4xIDI1NmMyNy40LTI3LjQgNjcuOS0zMy42IDEwMS4zLTE4LjVsOTAuNy05MC43eiJdfSxQcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhY3RvciIsaWNvbjpbNTc2LDUxMixbMTI4NjY4XSwiZjcyMiIsIk0xNjAgOTZsMCA5NiAxMzMuNCAwLTU3LjYtOTYtNzUuOCAwek05NiAyMjNMOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA3LjggMGMyMi41IDAgNDMuMyAxMS44IDU0LjkgMzEuMWw3Ny40IDEyOC45IDY0IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxLjVjMCAxNC4yLTYuMyAyNy44LTE3LjMgMzYuOWwtMzUgMjkuMmMyNi41IDE1LjIgNDQuMyA0My43IDQ0LjMgNzYuNCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTE0LjQgMy41LTI4IDkuNi00MGwtMTAxLjIgMGMtMyAxMy40LTcuOSAyNi0xNC40IDM3LjcgNy43IDkuNCA3LjIgMjMuNC0xLjYgMzIuMmwtMjIuNiAyMi42Yy04LjggOC44LTIyLjcgOS4zLTMyLjIgMS42LTkuMyA1LjItMTkuMyA5LjMtMjkuOCAxMi4zLTEuMiAxMi4xLTExLjQgMjEuNi0yMy45IDIxLjZsLTMyIDBjLTEyLjQgMC0yMi43LTkuNS0yMy45LTIxLjYtMTAuNS0zLTIwLjQtNy4yLTI5LjgtMTIuMy05LjQgNy43LTIzLjQgNy4yLTMyLjItMS42TDM1LjUgNDUzLjhjLTguOC04LjgtOS4zLTIyLjctMS42LTMyLjItNS4yLTkuMy05LjMtMTkuMy0xMi4zLTI5LjgtMTIuMS0xLjItMjEuNi0xMS40LTIxLjYtMjMuOWwwLTMyYzAtMTIuNCA5LjUtMjIuNyAyMS42LTIzLjkgMy0xMC41IDcuMi0yMC40IDEyLjMtMjkuOC03LjctOS40LTcuMi0yMy40IDEuNi0zMi4ybDIyLjYtMjIuNmM4LjgtOC44IDIyLjctOS4zIDMyLjItMS42IDEuOS0xIDMuNy0yIDUuNy0zem02NCA2NWE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHpNNDQwIDQyNGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwIC04MCAweiJdfSxJcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LEFxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTIgNjQgMCAwIDM1MmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQ5Ny43IDAgNDgwIDBMMzIgMHpNMTYwIDY0bDAgMTI4LTY0IDAgMC0xMjggNjQgMHptMjU2IDBsMCAxMjgtNjQgMCAwLTEyOCA2NCAweiJdfSxOcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RldGhvc2NvcGUiLGljb246WzU3Niw1MTIsWzEyOTY1OF0sImYwZjEiLCJNMzIgNDhDMzIgMjEuNSA1My41IDAgODAgMGw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjgtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjM4LjMgMCAyNTYgMGw0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTkuMmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtODUuNWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDg1LjVjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYwIDQ2NS4yIDE2MCAzNjhsMC0xOS4yQzg3IDMzNCAzMiAyNjkuNCAzMiAxOTJMMzIgNDh6TTQ4MCAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxScXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9kY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjZSIsIk0zMzYgMzU5LjhjMzkuMS0zMi4zIDY0LTgxLjEgNjQtMTM1LjggMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZTNDggMTI2LjggNDggMjI0QzQ4IDI3OC43IDcyLjkgMzI3LjUgMTEyIDM1OS44IDExMi40IDM3Ny40IDExNS4yIDQwMC4yIDExOC40IDQyMS42IDQ4IDM4My45IDAgMzA5LjUgMCAyMjQgMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgODUuNi00OCAxNTkuOS0xMTguNSAxOTcuNiAzLjMtMjEuNCA2LTQ0LjIgNi40LTYxLjh6bS0xNC01My40Yy04LjMtMTIuNi0xOS4yLTIxLjYtMzAuNC0yNy44LTIuMS0xLjEtNC4yLTIuMi02LjMtMy4yIDExLjctMTMuOSAxOC44LTMxLjkgMTguOC01MS41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMTkuNiA3LjEgMzcuNiAxOC44IDUxLjUtMi4xIDEtNC4yIDItNi4zIDMuMi0xMS4yIDYuMi0yMi4xIDE1LjItMzAuNCAyNy44LTE4LjgtMjIuMy0zMC4xLTUxLTMwLjEtODIuNCAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4YzAgMzEuNC0xMS4zIDYwLjItMzAuMSA4Mi40ek0yMjQgMzEyYzMyLjkgMCA2NCA4LjYgNjQgNDMuOCAwIDMzLTEyLjkgMTA0LjEtMjAuNiAxMzIuOS01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOCAwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTI4YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sT3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXJpZ2h0LWRvdHMiLGljb246WzUxMiw1MTIsW10sImU0YjciLCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0Uzc4LjMgOTYgOTYgOTZMMTE0LjcgOTYgOS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMyAxNjAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAzMnpNNDAzLjggNzAuMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek0yNzkuNyAxOTQuMmEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjIuMi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnpNMTU2LjIgMzE3LjhhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek03MC4xIDQwMy44YTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2MS42LTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHoiXX0sRnF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0yNTYgODBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01LjUgMTg1TDEyOCAzODQgNzEuOCA0NTQuM2MtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMkwzODQgMzg0IDUwNi41IDE4NWMzLjYtNS45IDUuNS0xMi43IDUuNS0xOS42bDAtLjZjMC0yMC4zLTE2LjUtMzYuOC0zNi44LTM2LjgtNy4zIDAtMTQuNCAyLjItMjAuNCA2LjJsLTE2LjkgMTEuM2MtMTIuNyA4LjUtMjkuNiA2LjgtNDAuNC00bC0zNC4xLTM0LjFDMzU2LjEgMTAwLjEgMzQ2LjIgOTYgMzM2IDk2cy0yMC4xIDQuMS0yNy4zIDExLjNsLTMwLjEgMzAuMWMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTMwLjEtMzAuMUMxOTYuMSAxMDAuMSAxODYuMiA5NiAxNzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzQuMSAzNC4xYy0xMC44IDEwLjgtMjcuNyAxMi41LTQwLjQgNEw1Ny4zIDEzNC4yYy02LjEtNC0xMy4yLTYuMi0yMC40LTYuMi0yMC4zIDAtMzYuOCAxNi41LTM2LjggMzYuOGwwIC42YzAgNi45IDEuOSAxMy43IDUuNSAxOS42eiJdfSxCcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYiIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxQOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMtdmVydGljYWwiLGljb246WzEyOCw1MTIsWyJlbGxpcHNpcy12Il0sImYxNDIiLCJNNjQgMTQ0YTU2IDU2IDAgMSAxIDAtMTEyIDU2IDU2IDAgMSAxIDAgMTEyem0wIDIyNGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTExMmMwIDMwLjktMjUuMSA1Ni01NiA1NnMtNTYtMjUuMS01Ni01NiAyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTZ6Il19LEhxdD1QOWUscXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZSIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyMjhhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDEgMCAwIDQwem0wLTE4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sanF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMyIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxWcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWFycm93LXVwLWZyb20tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzOSIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMjA4IDQ4MGwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOCAzMiAwek01NjYuNiAxMDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMNDk2IDc3LjMgNDk2IDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0Ni43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6Il19LFVxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3QtZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1M2UiLCJNMzc4LjYgODEuOGM5LjgtMTQuNyA1LjgtMzQuNi04LjktNDQuNHMtMzQuNi01LjgtNDQuNCA4LjlMMjcwLjkgMTI4IDMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTYuMiAwLTg1LjMgMTI4LTExMC45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjguMiAwLTMwLjggNDYuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlMMTc3LjEgMzg0IDQxNiAzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5Ni4yIDAgODUuMy0xMjggMTEwLjkgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjguMiAwIDMwLjgtNDYuMnoiXX0sV3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluLXRyYW0iLGljb246WzM4NCw1MTIsWzEyODY1MF0sImU1YjQiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTIwIDAgMCA2NCA0MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNjBjMCAzMS4yLTE0LjkgNTktMzggNzYuNWw2NC4zIDc2YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQuNi04OC4xYy0zLjYgLjQtNy4zIC42LTExLjEgLjZsLTEyOCAwYy0zLjggMC03LjUtLjItMTEuMS0uNkw0Mi4zIDUzNS41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw2NC4zLTc2QzQ2LjkgNDExIDMyIDM4My4yIDMyIDM1MmwwLTE2MGMwLTUzIDQzLTk2IDk2LTk2bDQwIDAgMC02NC0xMjAgMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1My4zIDAgNDBMMCA4ek0xMjggMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwem0zMiAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxHcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtZGVwYXJ0dXJlIixpY29uOls1NzYsNTEyLFsxMjg3NDddLCJmNWIwIiwiTTM3MiAxNDMuOUwxNzIuNyA0MC4yYy04LTQuMS0xNy4zLTQuOC0yNS43LTEuN2wtNDEuMSAxNWMtMTAuMyAzLjctMTMuOCAxNi40LTcuMSAyNUwyMDAuMyAyMDYuNCAxMDAuMSAyNDIuOCA0MCAyMDYuMmMtNi4yLTMuOC0xMy44LTQuNS0yMC43LTIuMUwzIDIxMC4xYy05LjQgMy40LTEzLjQgMTQuNS04LjMgMjMuMWw1My42IDkxLjhjMTUuNiAyNi43IDQ4LjEgMzguNCA3Ny4xIDI3LjhsMTIuOS00LjcgMCAwIDM5OC40LTE0NWMyOS4xLTEwLjYgNDQtNDIuNyAzMy41LTcxLjhzLTQyLjctNDQtNzEuOC0zMy41TDM3MiAxNDMuOXpNMzIuMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUxMiAweiJdfSxJOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4tYWx0Il0sImYyZjYiLCJNMzQ1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMTYwIDEwMi4zIDE2MCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkwzNDUgMjczem03IDE0M2MtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAweiJdfSxLcXQ9STllLFlxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZC1jYXJkIixpY29uOlszODQsNTEyLFtdLCJmN2MyIiwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxMjUuMyAwQzEwOC4zIDAgOTIgNi43IDgwIDE4LjdMMTguNyA4MEM2LjcgOTIgMCAxMDguMyAwIDEyNS4zTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0ek0xNjAgODhsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFpxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1MGEiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjEgNDcuMi0xNzUuOCAxMTQuOC01LjEtMS44LTEwLjUtMi44LTE2LjItMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkxIDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00OTYgNDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LEliPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWtlbC1zaWduIixpY29uOls0NDgsNTEyLFs4MzYyLCJpbHMiLCJzaGVrZWwiLCJzaGVxZWwiLCJzaGVxZWwtc2lnbiJdLCJmMjBiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0zMjAgNDgwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMCAwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMHoiXX0sWHF0PUliLFFxdD1JYixKcXQ9SWIsZWp0PUliLHRqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyYWRpbyIsaWNvbjpbNTEyLDUxMixbMTI4MjUxXSwiZjhkNyIsIk00OTQuOCAxNWMxMi43LTMuNyAyMC0xNy4xIDE2LjMtMjkuOFM0OTQtMzQuOCA0ODEuMy0zMUw1MS44IDk0LjlDNDIuNCA5Ny42IDMzLjkgMTAyLjEgMjYuNiAxMDggMTAuNSAxMTkuNyAwIDEzOC42IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIxOC41IDk2IDQ5NC44IDE1ek0zNjggMjA4YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek02NCAyNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggMjcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxBOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1kb3RzIixpY29uOls1MTIsNTEyLFsiYWxsZXJnaWVzIl0sImY0NjEiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6TTIwMCAzNTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptLTg4IDI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sYWp0PUE5ZSxOOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1za3VsbCIsaWNvbjpbNDQ4LDUxMixbImJvb2stZGVhZCJdLCJmNmI3IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzIgMTYzLjJsMCAxMi44YzAgOC44LTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTIuOGMtMTkuNC0xMS43LTMyLTMwLjMtMzItNTEuMiAwLTM1LjMgMzUuOC02NCA4MC02NHM4MCAyOC43IDgwIDY0YzAgMjAuOS0xMi42IDM5LjUtMzIgNTEuMnpNMjA4IDExMmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTc0LjIgOTUuN2M0LjYgMTAuMSAuMSAyMS45LTkuOSAyNi41bC00Ny45IDIxLjggNDcuOSAyMS44YzEwLjEgNC42IDE0LjUgMTYuNCA5LjkgMjYuNXMtMTYuNCAxNC41LTI2LjUgOS45TDIyNCAyOTQgMTQ0LjMgMzMwLjJjLTEwLjEgNC42LTIxLjkgLjEtMjYuNS05LjlzLS4xLTIxLjkgOS45LTI2LjVsNDcuOS0yMS44LTQ3LjktMjEuOGMtMTAuMS00LjYtMTQuNS0xNi40LTkuOS0yNi41czE2LjQtMTQuNSAyNi41LTkuOUwyMjQgMjUwIDMwMy43IDIxMy44YzEwLjEtNC42IDIxLjktLjEgMjYuNSA5Ljl6Il19LHNqdD1OOWUsUjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jay1rZXlob2xlIixpY29uOlszODQsNTEyLFsidW5sb2NrLWFsdCJdLCJmMTNlIiwiTTE5MiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NCAxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtNjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNjMuNSAwIDExNi4xIDQ2LjEgMTI2LjIgMTA2LjcgMi45IDE3LjQtOC44IDMzLjktMjYuMyAzNi45cy0zMy45LTguOC0zNi45LTI2LjNDMjUwIDU1LjEgMjIzLjcgMzIgMTkyIDMyem00MCAzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMHoiXX0saWp0PVI5ZSxPOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbImZpbGUtdXBsb2FkIl0sImY1NzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTIwOSAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC02NCA2NGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgODYuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODYuMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSxyanQ9TzllLEY5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdGVhcnMiLGljb246WzY0MCw1MTIsWzEyODUxNCwiZ3Jpbi10ZWFycyJdLCJmNTg4IiwiTTU1NC44IDIwMy40bDE2LjMgMi4zQzU0Ny43IDg4LjQgNDQ0LjIgMCAzMjAgMFM5Mi4zIDg4LjQgNjguOSAyMDUuN2wxNi4zLTIuM2MzNy01LjMgNjguNiAyNi40IDYzLjQgNjMuNGwtNi43IDQ2LjdjLTQuMSAyOS0yMS42IDUzLjItNDUuOCA2Ni44IDQzLjcgNzguNSAxMjcuNiAxMzEuNyAyMjMuOCAxMzEuN3MxODAuMS01My4xIDIyMy44LTEzMS43Yy0yNC4xLTEzLjUtNDEuNi0zNy44LTQ1LjgtNjYuOGwtNi43LTQ2LjdjLTUuMy0zNyAyNi40LTY4LjYgNjMuNC02My40ek00NzAuMyAzMjYuOUM0NDcuOSAzODguMiAzODkuMSA0MzIgMzIwIDQzMlMxOTIuMSAzODguMiAxNjkuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMXpNMjEyIDIwOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4em0xODgtMjhjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6TTY0MCAzMDAuNmMwLTI1LjYtMTguOC00Ny4zLTQ0LjEtNTAuOUw1NDkuMSAyNDNjLTEwLjYtMS41LTE5LjYgNy41LTE4LjEgMTguMWw2LjcgNDYuN2MzLjYgMjUuMyAyNS4zIDQ0LjEgNTAuOSA0NC4xIDI4LjQgMCA1MS40LTIzIDUxLjQtNTEuNHptLTY0MCAwQzAgMzI5IDIzIDM1MiA1MS40IDM1MiA3NyAzNTIgOTguNyAzMzMuMiAxMDIuMyAzMDcuOWw2LjctNDYuN2MxLjUtMTAuNi03LjUtMTkuNi0xOC4xLTE4LjFsLTQ2LjcgNi43QzE4LjggMjUzLjMgMCAyNzUgMCAzMDAuNnoiXX0sb2p0PUY5ZSxsZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tdG8tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZWRpdCJdLCJmMDQ0IiwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2OCA0Ni4xIDQ2NS45IDE0NCA0OTAuMyAxMTkuNmMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzIgMTc3LjkgMzM0LjEgODAgMTcyLjQgMjQxLjd6TTk2IDY0QzQzIDY0IDAgMTA3IDAgMTYwTDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDY0eiJdfSxuanQ9bGYsQjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWV1cm9wZSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLWV1cm9wZSJdLCJmN2EyIiwiTTI1Ni4yIDQ4YzExNC44IC4xIDIwNy44IDkzLjIgMjA3LjggMjA4IDAgMjIuMS0zLjQgNDMuNC05LjggNjMuNC0yIC40LTQuMSAuNi02LjIgLjZsLTIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2bC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2cy03LjIgMTYtMTYgMTZsLTI1LjQgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmw3MC4xLTcwLjFjMi4xLTIuMSAzLjMtNSAzLjMtOCAwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNsLTE0LjEgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmwyMy4xLTIzLjFjLjgtLjggMS42LTEuNSAyLjUtMi4yek00MzguNCAzNTYuMWMtMzIuOCA1OS42LTkzLjkgMTAxLjQtMTY1LjIgMTA3LjItLjctMi4zLTEuMS00LjgtMS4xLTcuMyAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjYuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC02Ni43YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDUuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDE2IDE2YzQuMiA0LjIgMTAgNi42IDE2IDYuNiA0LjggMCA5LjMgMS41IDEzIDQuMXpNMjU2IDUxMmwyNi4yLTEuM2MtOC42IC45LTE3LjMgMS4zLTI2LjIgMS4zem0yNi4yLTEuM0M0MTEuMyA0OTcuNiA1MTIgMzg4LjYgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMGwwIDBDMTE0LjYgMCAwIDExNC42IDAgMjU2IDAgMzgzLjUgOTMuMiA0ODkuMyAyMTUuMyA1MDguOCAyMjguNSA1MTAuOSAyNDIuMSA1MTIgMjU2IDUxMnpNMTg3LjMgMTIzLjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sbGp0PUI5ZSxIOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTQ2LjItLjFjMTQuNyAxNy44IDI5LjggNDAuMSAyOS44IDY0LjEgMCAzNi40LTI3LjYgNjQtNjQgNjRzLTY0LTI3LjYtNjQtNjRjMC0yNCAxNS4yLTQ2LjMgMjkuOC02NC4xIDguOC0xMC43IDE4LjUtMjAuOCAyOS0zMCAzLTIuNiA3LjQtMi42IDEwLjQgMCAxMC41IDkuMSAyMC4xIDE5LjMgMjkgMzB6TTI4OCAwYzQyLjUgMCA4Mi42IDEwLjQgMTE3LjggMjguNy0zLjYgMTAuOS01LjggMjIuNy01LjggMzUuMyAwIDYyLjkgNDkuMSAxMTIgMTEyIDExMiA2LjQgMCAxMi43LS41IDE4LjgtMS41IDguNiAyNS42IDEzLjIgNTMgMTMuMiA4MS41IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMzIgMzk3LjQgMzIgMjU2IDE0Ni42IDAgMjg4IDB6TTQxOC43IDMwOC45QzM3OS41IDMyMS4xIDMzNS4xIDMyOCAyODggMzI4cy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgMjIuNCA2MS4zIDgxLjMgMTA1LjEgMTUwLjMgMTA1LjFzMTI3LjktNDMuOCAxNTAuMy0xMDUuMWM0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjF6TTIwOCAxODBjMTUuNSAwIDI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMTUuNSAxMi41LTI4IDI4LTI4em0xMzIgMjhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6Il19LGNqdD1IOWUscTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1oYWxmLXN0cm9rZSIsaWNvbjpbNTEyLDUxMixbOTY4MCwiYWRqdXN0Il0sImYwNDIiLCJNNDQ4IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MmwwIDM4NGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sZGp0PXE5ZSx1anQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXRvLXBlcnNvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YyIsIk03MSAxMi41Yy04LjYgMS0xNSA4LjItMTUgMTYuOCAwIDkuMyA3LjUgMTYuOCAxNi43IDE2LjlsMTExLjQgMGM4LjgtLjEgMTUuOS03LjIgMTUuOS0xNkwyMDAgMTZjMC05LjUtOC4zLTE3LTE3LjgtMTUuOUw3MSAxMi41ek0xODkuNSA3OC4xbC0xMjIuOSAwYy0xLjYgNS43LTIuNSAxMS43LTIuNSAxNy45IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC02LjItLjktMTIuMi0yLjUtMTcuOXpNMzIgMjU2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMS44IDAgMy41LS4xIDUuMi0uNEw1MyAyMDguNkM0MC4xIDIyMC4zIDMyIDIzNy4yIDMyIDI1NnptMTkwLjIgNDIuNWMxLjEtMy4zIDEuOC02LjggMS44LTEwLjVsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMGMtMy43IDAtNy40IC4zLTEwLjkgLjlMMjIyLjIgMjk4LjV6TTM4NCAxNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0zMiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwek0yMTUuOCA0NTAuMWM1LjItNC42IDguMi0xMS4xIDguMi0xOC4xcy0zLTEzLjUtOC4yLTE4LjFsLTY0LTU2Yy03LjEtNi4yLTE3LjEtNy43LTI1LjctMy44UzExMiAzNjYuNiAxMTIgMzc2bDAgMzItODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4OCAwIDAgMzJjMCA5LjQgNS41IDE4IDE0LjEgMjEuOXMxOC42IDIuNCAyNS43LTMuOGw2NC01NnpNMjg4IDQzMS45YzAgNi45IDMgMTMuNSA4LjEgMTguMWw2NCA1Ni40YzcuMSA2LjIgMTcuMSA3LjggMjUuNyAzLjlTNDAwIDQ5Ny44IDQwMCA0ODguNGwwLTMyLjQgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTMyYzAtOS40LTUuNS0xOC0xNC4xLTIxLjlzLTE4LjYtMi40LTI1LjcgMy44bC02NCA1NmMtNS4yIDQuNS04LjIgMTEuMS04LjIgMTh6Il19LHBqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1jb2x1bW4tbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3OCIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiAzNjhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LGhqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZC11biIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZSIsIk05NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwwIDQ4YzAgMjEuMSAxMy43IDM5LjEgMzIuNiA0NS41LS40IDMuNC0uNiA3LS42IDEwLjUgMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwxNDQuNyAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwuNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI0LjcgMC0xLjctNC4yLTQzLjgtMTA2LjNjLTEyLjMtMzAtNDEuNi00OS41LTc0LTQ5LjVsLTQwLjQgMEMzNjQuNCA0NC45IDM0My43IDMyIDMyMCAzMkw5NiAzMnpNMzg0IDIyNGwwLTk2IDMxLjkgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOWwzNS40IDg2LjEtODIuMSAwek0xNTIgMzUyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjgwIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTI1Ni42IDEzMi45bDI3LjQgNDEgMC0yOS45YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCA4LjgtNS44IDE2LjYtMTQuMiAxOS4xcy0xNy41LS43LTIyLjQtOGwtMjcuNC00MSAwIDI5LjljMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOTZjMC04LjggNS44LTE2LjYgMTQuMi0xOS4xczE3LjUgLjcgMjIuNCA4ek0xMzIgMTQ0bDAgNjRjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC02NGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sajllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sZmp0PWo5ZSxtanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vayIsaWNvbjpbNDQ4LDUxMixbMTI4MjEyXSwiZjAyZCIsIk0zODQgNTEyTDk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2QzAgNDMgNDMgMCA5NiAwTDQwMCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM2wwIDY2LjdjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDB6TTk2IDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwLTY0LTI1NiAwem0zMi0yMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQgNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxWOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGdqdD1WOWUsYmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1lYXRiYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNzNiIiwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjYuOSAwYzMuNS0xMi4xIDEwLjEtMjMuMyAxOS4yLTMyLjRsMS40LTEuNGMxNS0xNSAzNS4zLTIyLjkgNTYuMS0yMi4yIDE0LjItMTUuMSAzNC4yLTIzLjkgNTUuNC0yMy45bDIgMGMyMS4xIDAgNDEuMSA4LjggNTUuNCAyMy45IDIwLjgtLjYgNDEuMSA3LjMgNTYuMSAyMi4ybDEuNCAxLjRjOS4yIDkuMiAxNS43IDIwLjQgMTkuMiAzMi40bDI2LjkgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNTYuNSA0MjQuM2M5LjUgNi4zIDE0LjIgMTcuNyAxMS45IDI4LjgtMS44IDkuMiAxIDE4LjcgNy43IDI1LjNsMS40IDEuNGM2LjYgNi42IDE2LjEgOS41IDI1LjMgNy43IDExLjEtMi4yIDIyLjUgMi41IDI4LjggMTEuOSA1LjIgNy44IDE0IDEyLjUgMjMuMyAxMi41bDIgMGM5LjQgMCAxOC4xLTQuNyAyMy4zLTEyLjUgNi4zLTkuNSAxNy43LTE0LjIgMjguOC0xMS45IDkuMiAxLjggMTguNy0xIDI1LjMtNy43bDEuNC0xLjRjNi42LTYuNiA5LjUtMTYuMSA3LjctMjUuMy0yLjItMTEuMSAyLjUtMjIuNSAxMS45LTI4LjggNy44LTUuMiAxMi41LTE0IDEyLjUtMjMuM2wwLTJjMC05LjQtNC43LTE4LjEtMTIuNS0yMy4zLTkuNS02LjMtMTQuMi0xNy43LTExLjktMjguOCAxLjgtOS4yLTEtMTguNy03LjctMjUuM2wtMS40LTEuNGMtNi42LTYuNi0xNi4xLTkuNS0yNS4zLTcuNy0xMS4xIDIuMi0yMi41LTIuNS0yOC44LTExLjktNS4yLTcuOC0xNC0xMi41LTIzLjMtMTIuNWwtMiAwYy05LjQgMC0xOC4xIDQuNy0yMy4zIDEyLjUtNi4zIDkuNS0xNy43IDE0LjItMjguOCAxMS45LTkuMi0xLjgtMTguNyAxLTI1LjMgNy43bC0xLjQgMS40Yy02LjYgNi42LTkuNSAxNi4xLTcuNyAyNS4zIDIuMiAxMS4xLTIuNSAyMi41LTExLjkgMjguOC03LjggNS4yLTEyLjUgMTQtMTIuNSAyMy4zbDAgMmMwIDkuNCA0LjcgMTguMSAxMi41IDIzLjN6TTQ4IDQ0OGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQxNiAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sVTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWFyZWEiLGljb246WzUxMiw1MTIsWyJhcmVhLWNoYXJ0Il0sImYxZmUiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnpNMjQwIDk2YzYuNyAwIDEzLjEgMi44IDE3LjcgNy44TDMyOC44IDE4MS4zIDM3NSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjNC41IDQuNSA3IDEwLjYgNyAxN2wwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMzA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTEyYzAtNiAyLjMtMTEuOCA2LjMtMTYuMmw4OC05NmM0LjUtNSAxMS03LjggMTcuNy03Ljh6Il19LHZqdD1VOWUseGp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1cGlhaC1zaWduIixpY29uOls1MTIsNTEyLFtdLCJlMjNkIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjU2LTMybDgwIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNDYxLjkgNDQ4IDQwMCA0NDhsLTQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptODAgMTYwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgOTYgNDggMHoiXX0seWp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtd2lkdGgiLGljb246WzQ0OCw1MTIsW10sImYwMzUiLCJNNDAgMEMxNy45IDAgMCAxNy45IDAgNDBMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTI4IDAgMCAxNjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTE2MCAxMjggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC01NmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwem03OC42IDQwNi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAyMjkuNSAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTIyOS41IDAgOS40LTkuNHoiXX0sd2p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhdGVsbGl0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NzUyXSwiZjdiZiIsIk0xOTkgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OS40IDg5LjQgNTUtNTVjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDggNDhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTU1IDU1IDg5LjQgODkuNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtOTYgOTZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC04OS40LTg5LjQtMTUuNSAxNS41YzExLjQgMjQuNiAxNy44IDUyIDE3LjggODAuOSAwIDMxLjctNy43IDYxLjUtMjEuMiA4Ny44LTQuNyA5LTE2LjcgMTAuMy0yMy44IDMuMWwtOTYuMy05Ni4zLTYwIDYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2MC02MC05Ni4zLTk2LjNjLTcuMi03LjItNS45LTE5LjIgMy4xLTIzLjggMjYuMy0xMy42IDU2LjItMjEuMiA4Ny44LTIxLjIgMjguOSAwIDU2LjMgNi40IDgwLjkgMTcuOEwxOTIuNCAyMjYuMyAxMDMgMTM3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxOTkgN3ptMTcgNTAuOWwtNjIuMSA2Mi4xIDcyLjQgNzIuNCA2Mi4xLTYyLjEtNzIuNC03Mi40ek0zOTIgMzU4LjFsNjIuMS02Mi4xLTcyLjQtNzIuNC02Mi4xIDYyLjEgNzIuNCA3Mi40eiJdfSxXOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1taW51cyIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1taW51cyJdLCJmMDEwIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMTM2IDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGtqdD1XOWUsU2p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMyIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptOTYgMzEyYzAgMjUtMTIuNyA0Ny0zMiA1OS45bDAgOTIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05Mi4xQzE3Mi43IDM1OSAxNjAgMzM3IDE2MCAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6TTk2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0xNiAyNDBsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCA3NS4zYzAgMS4yIDAgMi41IC4xIDMuNy04LjUgNy42LTE5LjcgMTIuMy0zMi4xIDEyLjNsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNTYuNkMxMi45IDM2NC40IDAgMzQzLjcgMCAzMjBsMC0zMmMwLTUzIDQzLTk2IDk2LTk2IDEyLjcgMCAyNC44IDIuNSAzNS45IDYuOS0xMi42IDIxLjQtMTkuOSA0Ni40LTE5LjkgNzMuMXpNMzY4IDQ2NGwwLTc1LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDU2LjZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTEyLjMgMC0yMy42LTQuNi0zMi4xLTEyLjMgMC0xLjIgLjEtMi41IC4xLTMuN3pNNDE2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxfanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWJpbmFyeSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5YiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTQ0IDRjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4em0xNDAtNDRjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHpNMTMyIDI5NmMwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIwem05NiAyNGwwIDQ4YzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDMyIDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC00OGMwLTI0LjMtMTkuNy00NC00NC00NGwtMzIgMGMtMjQuMyAwLTQ0IDE5LjctNDQgNDR6bTQ0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4YzAtMi4yIDEuOC00IDQtNHoiXX0sRzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2tzLXRoZWF0ZXIiLGljb246WzU3Niw1MTIsWzEyNzkxNywidGhlYXRlci1tYXNrcyJdLCJmNjMwIiwiTS01IDExOEwyMy41IDI3OS43YzE0IDc5LjUgNzYuMyAxNDEuOCAxNTUuOCAxNTUuOGwxMi43IDIuMmMtMTYuNS0yOC42LTI3LjEtNjAuNy0zMC42LTk0LjVsLTI0LjEgNC4zYy05LjcgMS43LTE4LjgtNS44LTE2LjktMTUuNSA0LjgtMjQuNyAxOS4xLTQ2LjYgMzkuNy02MC45bDAtNzQuNmMtMS40IC44LTMgMS4zLTQuNyAxLjZsLTYzIDExLjFjLTguNyAxLjUtMTcuMy00LjQtMTUuOS0xMy4xIDMuMS0xOS42IDE4LjQtMzYgMzkuMS0zOS43IDE3LjItMyAzMy45IDMuNSA0NC42IDE1LjhsMC0yMi43YzAtMjIuNSA2LjktNTIuNCAzMi4zLTczLjQgMjYtMjEuNSA2Ny43LTQzLjkgMTI0LjktNTQuMi0zMC41LTE2LjMtODYuMy0zMi0xNjMuOC0xOC40LTgwLjMgMTQuMi0xMjggNTAuMS0xNTAuMSA3Ni4xLTkgMTAuNS0xMC44IDI0LjktOC40IDM4LjV6TTIwOCAxMzguN2wwIDE3NC44YzAgODAuNyA1MC41IDE1Mi45IDEyNi40IDE4MC40TDM2Mi4xIDUwNGMxNC4xIDUuMSAyOS42IDUuMSA0My43IDBMNDMzLjYgNDk0QzUwOS41IDQ2Ni40IDU2MCAzOTQuMyA1NjAgMzEzLjVsMC0xNzQuOGMwLTYuOS0yLjEtMTMuOC03LTE4LjYtMjIuNi0yMi41LTc4LjItNTYtMTY5LTU2cy0xNDYuNCAzMy42LTE2OSA1NmMtNC45IDQuOS03IDExLjctNyAxOC42em02Ni4xIDE4Ny4xYy0xLjQtNyA3LTExIDEyLjctNi42IDI2LjkgMjAuNiA2MC42IDMyLjkgOTcuMiAzMi45czcwLjItMTIuMyA5Ny4yLTMyLjljNS43LTQuNCAxNC4xLS40IDEyLjcgNi42LTEwLjEgNTEuNC01NS41IDkwLjMtMTA5LjkgOTAuM3MtOTkuOC0zOC44LTEwOS45LTkwLjN6bS41LTEwMS41QzI4MS4yIDIwNS41IDI5OSAxOTIgMzIwIDE5MnMzOC45IDEzLjUgNDUuNCAzMi4zYzIuOSA4LjQtNC41IDE1LjctMTMuNCAxNS43bC02NCAwYy04LjggMC0xNi4zLTcuNC0xMy40LTE1Ljd6TTQ4MCAyNDBsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuNyA2LjUtMTguOCAyNC40LTMyLjMgNDUuNC0zMi4zczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1Ljd6Il19LE1qdD1HOWUsemp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNyIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgNDEyLjcgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzM2IDc4LjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzMuNi0zMy42IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzMuNiAwIDAgMzMuNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzMuNiAzMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMzLjYgMCAwLTMzLjZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFFrPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWFzbC1pbnRlcnByZXRpbmciLGljb246WzY0MCw1MTIsWyJhbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyIsImFzbC1pbnRlcnByZXRpbmciLCJoYW5kcy1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyJdLCJmMmEzIiwiTTE1Ni42IDQ2LjNjNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOXMtMzUtMS41LTQyLjkgMTQuM0wxMy41IDE4OS40QzQuNiAyMDcuMiAwIDIyNi44IDAgMjQ2LjdMMCAyNTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsODAgMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjcgOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTQuOCAwIDI3LjcgOCAzNC43IDIwIDguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdzMjAuNS0yOC40IDExLjctNDMuN2MtMTIuOC0yMi4xLTMzLjYtMzkuMS01OC40LTQ3LjFsODAuOC0yMmMxNy00LjYgMjcuMS0yMi4yIDIyLjUtMzkuM3MtMjIuMi0yNy4xLTM5LjMtMjIuNWwtMTAwLjcgMjcuNSA4MS42LTY4YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFTMjQ5LjEtMy45IDIzNS41IDcuNGwtMTAxLjkgODQuOSAyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTgwIDAgMCAuM2MtMzUuMiAyLjctNjUuNCAyMi44LTgyLjEgNTEuNy04LjkgMTUuMy0zLjYgMzQuOSAxMS43IDQzLjdzMzQuOSAzLjYgNDMuNy0xMS43YzctMTIgMTkuOS0yMCAzNC43LTIwIDIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwYy0xNC44IDAtMjcuNy04LTM0LjctMjAtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjYtMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnoiXX0sQ2p0PVFrLFRqdD1RaywkanQ9UWssRGp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLXJvdy11bmxvY2siLGljb246WzY0MCw1MTIsW10sImU2OTEiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4Yy0uMS0xNy42LTE0LjQtMzEuOS0zMi0zMS45LTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODAgNDQuMiAwIDc5LjkgMzUuOCA4MCA3OS45bC00OCAweiJdfSxManQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ja2V0IixpY29uOls1MTIsNTEyLFtdLCJmMTM1IiwiTTEyOCAzMjBMMjQuNSAzMjBjLTI0LjkgMC00MC4yLTI3LjEtMjcuNC00OC41TDUwIDE4My4zQzU4LjcgMTY4LjggNzQuMyAxNjAgOTEuMiAxNjBsOTUgMGM3Ni4xLTEyOC45IDE4OS42LTEzNS40IDI2NS41LTEyNC4zIDEyLjggMS45IDIyLjggMTEuOSAyNC42IDI0LjYgMTEuMSA3NS45IDQuNiAxODkuNC0xMjQuMyAyNjUuNWwwIDk1YzAgMTYuOS04LjggMzIuNS0yMy4zIDQxLjJsLTg4LjIgNTIuOWMtMjEuMyAxMi44LTQ4LjUtMi42LTQ4LjUtMjcuNEwxOTIgMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0uMSAwek00MDAgMTYwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEVqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHJpbXAiLGljb246WzUxMiw1MTIsWzEyOTQyNF0sImU0NDgiLCJNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDQgMCAxNDEuOSAyOS4zIDE3Mi45IDY2LjQgMTc1LjggNzcuNiAyNTcuMiAxNDcuNCAzMjAgMjMyIDMyMGw1NiAwIDAtMTkyLTIxNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM1OC43IDgwIDcyIDgwbDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDcyIDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMSAwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42IDAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEs5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW5nZS1zaWduIixpY29uOlszODQsNTEyLFs4Mzc2LCJ0ZW5nZSJdLCJmN2Q3IiwiTTAgNTZDMCA0Mi43IDEwLjcgMzIgMjQgMzJsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgODBDMTAuNyA4MCAwIDY5LjMgMCA1NnpNMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwIDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sUGp0PUs5ZSxZOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiY2xpbmljLW1lZGljYWwiXSwiZjdmMiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjI0IDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sSWp0PVk5ZSxBanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtc2xhc2giLGljb246WzY0MCw1MTIsW10sImUwNzMiLCJNNzMtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjkuNy0uMyAzOSA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIxLjggMjI0YzU2LjYtMSAxMDIuMi00Ny4yIDEwMi4yLTEwNCAwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNC01Ni44IDAtMTAzIDQ1LjYtMTA0IDEwMi4yTDczLTI0Ljl6TTUxMiAyODhjLTE3LjIgMC0zMy43IDMuNC00OC43IDkuNmwxNzAgMTcwYzQuMi01LjQgNi43LTEyLjIgNi43LTE5LjZsMC0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOHpNNTkuOSA5Ny43Yy0yMS41IDEyLjUtMzUuOSAzNS43LTM1LjkgNjIuMyAwIDM5LjggMzIuMiA3MiA3MiA3MiAyNi42IDAgNDkuOC0xNC40IDYyLjMtMzUuOUw1OS45IDk3Ljd6TTI1MC4yIDI4OEMxOTYuOCAzMTMuOSAxNjAgMzY4LjcgMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1MC4yIDAtMTkyLTE5MnpNMTI4IDI4OEM1Ny4zIDI4OCAwIDM0NS4zIDAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHoiXX0sTmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNNTM2LjQtMjYuM2M5LjgtMy41IDIwLjYtMSAyOCA2LjNzOS44IDE4LjIgNi4zIDI4bC0xNzggNDk2LjljLTUgMTMuOS0xOC4xIDIzLjEtMzIuOCAyMy4xLTE0LjIgMC0yNy04LjYtMzIuMy0yMS43bC02NC4yLTE1OGMtNC41LTExLTIuNS0yMy42IDUuMi0zMi42bDk0LjUtMTEyLjRjNS4xLTYuMSA0LjctMTUtLjktMjAuNnMtMTQuNi02LTIwLjYtLjlMMjI5LjIgMjc2LjFjLTkuMSA3LjYtMjEuNiA5LjYtMzIuNiA1LjJMMzguMSAyMTYuOGMtMTMuMS01LjMtMjEuNy0xOC4xLTIxLjctMzIuMyAwLTE0LjcgOS4yLTI3LjggMjMuMS0zMi44bDQ5Ni45LTE3OHoiXX0sWjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stYXRsYXMiLGljb246WzQ0OCw1MTIsWyJhdGxhcyJdLCJmNTU4IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0zMTAuNiAyMDhMMjc5IDIwOGMtMS40IDIzLjEtNiA0NC4yLTEyLjYgNjEuMiAyMi43LTEyLjUgMzkuNC0zNC44IDQ0LjItNjEuMnptLTE3My4xIDBjNC44IDI2LjQgMjEuNSA0OC43IDQ0LjIgNjEuMi02LjctMTctMTEuMi0zOC0xMi42LTYxLjJsLTMxLjYgMHptNzYuNCA1NWM0LjUgOS42IDguMiAxMy44IDEwLjIgMTUuNSAyLTEuNyA1LjctNS44IDEwLjItMTUuNSA2LjItMTMuNCAxMS4xLTMyLjUgMTIuNy01NWwtNDUuOCAwYzEuNiAyMi41IDYuNSA0MS42IDEyLjcgNTV6bS0xMi43LTg3bDQ1LjggMGMtMS42LTIyLjUtNi41LTQxLjYtMTIuNy01NS00LjUtOS42LTguMi0xMy44LTEwLjItMTUuNS0yIDEuNy01LjcgNS44LTEwLjIgMTUuNS02LjIgMTMuNC0xMS4xIDMyLjUtMTIuNyA1NXptMTA5LjUgMGMtNC44LTI2LjQtMjEuNS00OC43LTQ0LjItNjEuMiA2LjcgMTcgMTEuMiAzOCAxMi42IDYxLjJsMzEuNiAwek0xNjkgMTc2YzEuNC0yMy4xIDYtNDQuMiAxMi42LTYxLjItMjIuNyAxMi41LTM5LjQgMzQuOC00NC4yIDYxLjJsMzEuNiAwek05NiAxOTJhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHoiXX0sUmp0PVo5ZSxPanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUiLGljb246WzQ0OCw1MTIsW10sImYwY2UiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMC02LjUtLjNDMjUuMiA0NzYuNCAwIDQ0OS4xIDAgNDE2TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDMyMGwwIDk2IDEyOCAwIDAtOTYtMTI4IDB6bTE5MiAwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHpNNjQgMjU2bDEyOCAwIDAtOTYtMTI4IDAgMCA5NnptMTkyIDBsMTI4IDAgMC05Ni0xMjggMCAwIDk2eiJdfSxGanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6Il19LFg5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi11cCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXVwIl0sImYxMzkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM3NyAyNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODctODctODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzNzcgMjcxeiJdfSxCanQ9WDllLFE5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWhhbGYiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTMiXSwiZjI0MiIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEhqdD1ROWUsaG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbNjI1MDEsNjI2OTQsImZvbnQtYXdlc29tZS1mbGFnIiwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbCJdLCJmMmI0IiwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTIgMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCA0MTkgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjQgMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzIgNDkzLjcgMTMzLjFjMS41LTMuNCAyLjMtNyAyLjMtMTAuNyAwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2eiJdfSxxanQ9aG9lLGpqdD1ob2UsVmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRjdWZmcyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOCIsIk0zMjAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyek0xOTIgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNTIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTZjMCAxIC4xIDEuOSAuMiAyLjktNzQuNyAyNi4zLTEyOC4yIDk3LjUtMTI4LjIgMTgxLjEgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC04My43LTUzLjUtMTU0LjgtMTI4LjItMTgxLjEgLjEtLjkgLjItMS45IC4yLTIuOWwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwek02NCAzMjBhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptNDQ4IDBjMCA2Ni45LTUxLjMgMTIxLjgtMTE2LjYgMTI3LjUtMTQuMyAyMi44LTMyLjQgNDMuMS01My40IDU5LjkgMTMuNSAzIDI3LjYgNC42IDQyIDQuNiAxMDYgMCAxOTItODYgMTkyLTE5MiAwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEyLjMgMC0yMi40IDkuMi0yMy44IDIxLjEgMzAuMyAxOS4yIDU2LjEgNDUgNzUuMiA3NS40IDY1LjQgNS44IDExNi42IDYwLjYgMTE2LjYgMTI3LjV6TTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFVqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95LXNpZGUiLGljb246WzY0MCw1MTIsW10sImY4YzEiLCJNNjQwIDM4OC4zYzAgMTYuOS03LjEgMzIuMi0xOC40IDQzLjFsLTM1LTIzLjMtMjkyLjctMTk1LjFjLTM2LjEtMjQuMS03OC42LTM2LjktMTIyLTM2LjlsLTMuOSAwYy0yLjcgMC01LjQgMC04IC4xbDIyLjItMTAwYzUuNy0yNS44IDI4LjYtNDQuMSA1NS00NC4xIDEyLjIgMCAyNC4xIDQgMzMuOCAxMS4zbDQuNyAzLjVjMjYuMyAxOS43IDYyLjQgMTkuNyA4OC42IDBsNC43LTMuNWM5LjgtNy4zIDIxLjYtMTEuMyAzMy44LTExLjMgMjYuNCAwIDQ5LjMgMTguMyA1NSA0NC4xbDMzIDE0OC41QzU3NC41IDIzMi4zIDY0MCAzMDIuNiA2NDAgMzg4LjN6TTE3MS45IDIyNGMzMy45IDAgNjcuMSAxMCA5NS40IDI4LjlMNTYwIDQ0OCA1NiA0NDhjLTMwLjkgMC01Ni0yNS4xLTU2LTU2IDAtOTIuOCA3NS4yLTE2OCAxNjgtMTY4bDMuOSAweiJdfSxXanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kdXN0cnkiLGljb246WzUxMiw1MTIsW10sImYyNzUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3OS44YzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xbC0xNTYuNiA4NC4zIDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxMjggMjE1LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxHanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluZXMtbGVhbmluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTUxZSIsIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxLanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzc3BvcnQiLGljb246WzM4NCw1MTIsW10sImY1YWIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek05NiA0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMjc4LjYgMjA4Yy00LjggMjYuNC0yMS41IDQ4LjctNDQuMiA2MS4yIDYuNy0xNyAxMS4yLTM4IDEyLjYtNjEuMmwzMS42IDB6bS0xNzMuMSAwbDMxLjYgMGMxLjQgMjMuMSA2IDQ0LjIgMTIuNiA2MS4yLTIyLjctMTIuNS0zOS40LTM0LjgtNDQuMi02MS4yem03Ni40IDU1Yy02LjItMTMuNC0xMS4xLTMyLjUtMTIuNy01NWw0NS44IDBjLTEuNiAyMi41LTYuNSA0MS42LTEyLjcgNTUtNC41IDkuNi04LjIgMTMuOC0xMC4yIDE1LjUtMi0xLjctNS43LTUuOC0xMC4yLTE1LjV6bTAtMTQyYzQuNS05LjYgOC4yLTEzLjggMTAuMi0xNS41IDIgMS43IDUuNyA1LjggMTAuMiAxNS41IDYuMiAxMy40IDExLjEgMzIuNSAxMi43IDU1bC00NS44IDBjMS42LTIyLjUgNi41LTQxLjYgMTIuNy01NXptOTYuNyA1NUwyNDcgMTc2Yy0xLjQtMjMuMS02LTQ0LjItMTIuNi02MS4yIDIyLjcgMTIuNSAzOS40IDM0LjggNDQuMiA2MS4yek0xMzcgMTc2bC0zMS42IDBjNC44LTI2LjQgMjEuNS00OC43IDQ0LjItNjEuMi02LjcgMTctMTEuMiAzOC0xMi42IDYxLjJ6bTE4MyAxNmExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAweiJdfSxZanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5maW5pdHkiLGljb246WzY0MCw1MTIsWzg3MzQsOTg1NF0sImY1MzQiLCJNMCAyNTZjMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgNTAuNCAwIDk3LjggMjMuNyAxMjggNjRsMzIgNDIuNyAzMi00Mi43YzMwLjItNDAuMyA3Ny42LTY0IDEyOC02NCA4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFM1NjguNCA0MTYgNDgwIDQxNmMtNTAuNCAwLTk3LjgtMjMuNy0xMjgtNjRsLTMyLTQyLjctMzIgNDIuN2MtMzAuMiA0MC4zLTc3LjYgNjQtMTI4IDY0LTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwem0yODAgMGwtNDMuMi01Ny42Yy0xOC4xLTI0LjItNDYuNi0zOC40LTc2LjgtMzguNC01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzMwLjIgMCA1OC43LTE0LjIgNzYuOC0zOC40TDI4MCAyNTZ6bTgwIDBsNDMuMiA1Ny42YzE4LjEgMjQuMiA0Ni42IDM4LjQgNzYuOCAzOC40IDUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0zMC4yIDAtNTguNyAxNC4yLTc2LjggMzguNEwzNjAgMjU2eiJdfSxaanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvbmUiLGljb246WzUxMiw1MTIsW10sImYyNGQiLCJNMjg4IDQ0OGwtMjI0IDAgMC0yMjQgNDggMCAwLTY0LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNjQgMCAwIDQ4em0tNjQtOTZsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxYanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5M10sImYwNGUiLCJNMzcxLjcgNDMuMUMzNjAuMSAzMiAzNDMgMjguOSAzMjguMyAzNS4yUzMwNCA1NiAzMDQgNzJsMCAxMzYuMy0xNzIuMy0xNjUuMUMxMjAuMSAzMiAxMDMgMjguOSA4OC4zIDM1LjJTNjQgNTYgNjQgNzJsMCAzNjhjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlMMzA0IDMwMy43IDMwNCA0NDBjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlsMTkyLTE4NGM3LjktNy41IDEyLjMtMTggMTIuMy0yOC45cy00LjUtMjEuMy0xMi4zLTI4LjlsLTE5Mi0xODR6Il19LFFqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtIixpY29uOls0NDgsNTEyLFsxMDldLCI0ZCIsIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zLTEzMy40IDIwMC4xYy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDkuOSA5LjIgMzcuNSAyMi43IDMzLjR6Il19LEpqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLXNwaWtlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTU2OCIsIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjgtMjYuNiA0OS44TDY0IDM1MiA2NCAxMTYuOHpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sZVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluIixpY29uOls1MTIsNTEyLFsxMjc5NTZdLCJmNmZjIiwiTTI1Ni41IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41LTcuMiAxMi4xLTIwLjMgMTkuNS0zNC4zIDE5LjVsLTQzMiAwYy0xNC4xIDAtMjcuMS03LjQtMzQuMy0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDAgMi45LTQuNkMyMzEuNyA2LjIgMjQzLjYgMCAyNTYuNSAwek0xNzAuNCAyNDkuOWwyNi44IDI2LjhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNDMuMy00My4zYzYtNiAxNC4xLTkuNCAyMi42LTkuNGw0Mi44IDAtNzIuMS0xMzMuNS04Ni4xIDE1OS40eiJdfSx0VnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MiLGljb246WzUxMiw1MTIsW10sImY0MzkiLCJNMTY4IDU2bDAgNDAtNzguMSAwYy0xNC4zIDAtMjUuOSAxMS42LTI1LjkgMjUuOSAwIDQgLjkgOCAyLjcgMTEuNmwzMy40IDY2LjhjLTExLjQgMS44LTIwLjIgMTEuNy0yMC4yIDIzLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRsNS42IDAtMTMuNiAxMzYtNTYuMiA3MC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyNDguOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDI4OCAzODQgMjc0LjQgMjQ4IDI4MCAyNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjQgMC0xMS45LTguNy0yMS45LTIwLjItMjMuN2wzMy40LTY2LjhjMS44LTMuNiAyLjctNy42IDIuNy0xMS42IDAtMTQuMy0xMS42LTI1LjktMjUuOS0yNS45bC03OC4xIDAgMC00MCAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzI0NS4zIDggMjMyIDhsLTE2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMxNjgtMjEuMyAxNjgtOGwwIDE2LTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMHpNMzI1LjggMjc5LjZsOC41IDg1LjUgNDcuNCA1OS4yIDQuMiA1LjdjOS4yIDEzLjcgMTQuMSAyOS45IDE0LjEgNDYuNSAwIDEyLjctMi44IDI0LjgtNy45IDM1LjVsODMuMSAwYzIwLjMgMCAzNi44LTE2LjUgMzYuOC0zNi44IDAtNy4zLTIuMi0xNC40LTYuMi0yMC40bC0yNS44LTM4LjcgMC02NCAxMy4zLTEzLjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYtMzIgMCAwLTE2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCAyMi40LTEwLjIgNDIuNC0yNi4yIDU1LjZ6Il19LEprPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLXRocmVlLXF1YXJ0ZXJzIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMyIsInRoZXJtb21ldGVyLTMiLCJ0aGVybW9tZXRlci10aHJlZS1xdWFydGVycyJdLCJmMmM4IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM0wxMzYgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNTYuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LGFWdD1KayxzVnQ9SmssaVZ0PUprLHJWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiIixpY29uOlszMjAsNTEyLFs5OF0sIjQyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMTYwIDIyNGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek02NCAyODhsMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMTI4eiJdfSxvVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLXZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDZjIiwiTTI1My40IDIuOUMyNDkuMiAxIDI0NC43IDAgMjQwIDBzLTkuMiAxLTEzLjQgMi45TDM4LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjUzLjQgMi45ek0yNDAgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjA4IDI2NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LG5WdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXRlY29pbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQzIiwiTTEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTU3LjktMzguNiAxMWMtMTIuNyAzLjYtMjAuMSAxNi45LTE2LjUgMjkuN3MxNi45IDIwLjEgMjkuNyAxNi41TDY0IDI3MS44IDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xNjIuNSAxMzQuNi0zOC41YzEyLjctMy42IDIwLjEtMTYuOSAxNi41LTI5LjdzLTE2LjktMjAuMS0yOS43LTE2LjVMMTI4IDIwMy42IDEyOCA2NHoiXX0sbFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZDYiLGljb246WzUxMiw1MTIsW10sImY2ZDEiLCJNMjI0LjQgOC4zQzI0NC0yLjggMjY4LTIuOCAyODcuNiA4LjNsMTc2IDk5LjdjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMTk3LjRjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xNzYgOTkuN2MtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBsLTE3Ni05OS43QzI4LjQgNDA1LjUgMTYgMzg0LjIgMTYgMzYxLjJsMC0xOTcuNGMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdsMTc2LTk5Ljd6TTEwMi42IDE1NS42Yy04LjgtMy4xLTE4LjggLjMtMjMuOCA4LjZzLTMuMiAxOC43IDMuNiAyNWwzLjIgMi40IDE1MC4yIDkwLjIgMCAxNDguN2MwIDExIDkgMjAgMjAgMjAgMTEgMCAyMC05IDIwLTIwbDAtMTQ4LjcgMTUwLjMtOTAuMmM5LjUtNS43IDEyLjYtMTggNi45LTI3LjRzLTE4LTEyLjUtMjcuNC02LjlsLTE0OS43IDg5LjgtMTQ5LjctODkuOC0zLjctMS43eiJdfSxjVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcy12ZXJ0aWNhbCIsaWNvbjpbMTkyLDUxMixbXSwiZjdhNSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0em0xMjggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0eiJdfSxKOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29sZi1iYWxsLXRlZSIsaWNvbjpbMzg0LDUxMixbImdvbGYtYmFsbCJdLCJmNDUwIiwiTTI5OC41IDM4NC4xYzEyLjEgMS4yIDIxLjUgMTEuNSAyMS41IDIzLjlzLTkuNCAyMi42LTIxLjUgMjMuOWwtMi41IC4xLTgwIDAgMCA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTg4LTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTIuNCA5LjQtMjIuNiAyMS41LTIzLjlsMi41LS4xIDIwOCAwIDIuNSAuMXpNMTkyIDBjMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA1Ny40LTI1LjIgMTA4LjgtNjUuMSAxNDRMNjUuMSAzMzZDMjUuMiAzMDAuOCAwIDI0OS40IDAgMTkyIDAgODYgODYgMCAxOTIgMHptMzIgMjQwYy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bTY0LTY0Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bS04MC0xNmMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxkVnQ9SjllLHVWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uIixpY29uOls1NzYsNTEyLFsxMTA0M10sImYzMTIiLCJNMzMuNSAyMjAuM2MtMTIuNyAyMi4yLTEyLjcgNDkuNCAwIDcxLjVsOTYuMiAxNjguMWMxMi44IDIyLjQgMzYuNyAzNi4yIDYyLjUgMzYuMmwxOTEuNiAwYzI1LjggMCA0OS43LTEzLjggNjIuNS0zNi4ybDk2LjItMTY4LjFjMTIuNy0yMi4yIDEyLjctNDkuNCAwLTcxLjVMNDQ2LjMgNTIuMkM0MzMuNSAyOS44IDQwOS42IDE2IDM4My44IDE2TDE5Mi4yIDE2Yy0yNS44IDAtNDkuNyAxMy44LTYyLjUgMzYuMkwzMy41IDIyMC4zeiJdfSxwVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTU2IDIyNS42TDMyLjQgMjk2LjIgMzIuNCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRsMTE3LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTM2NS40IDBjLTQxLjMgMC03OCAyNi40LTkxLjEgNjUuNnpNNDc3LjggNDQ4TDk5IDQ0OGMtMzIuOCAwLTU1LjktMzIuMS00NS41LTYzLjJsNDgtMTQ0QzEwOCAyMjEuMiAxMjYuNCAyMDggMTQ3IDIwOGwzNzguOCAwYzMyLjggMCA1NS45IDMyLjEgNDUuNSA2My4ybC00OCAxNDRjLTYuNSAxOS42LTI0LjkgMzIuOC00NS41IDMyLjh6Il19LGhWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrYWFiYSIsaWNvbjpbNTEyLDUxMixbMTI4MzMxXSwiZjY2YiIsIk0yNTYgNTEuM0w5Mi44IDExMi40IDI0Ny41IDE3MS4xYzUuNSAyLjEgMTEuNSAyLjEgMTcgMEw0MTkuMiAxMTIuNCAyNTYgNTEuM3pNMCAxMjkuM2MwLTIwIDEyLjQtMzcuOSAzMS4xLTQ0LjlsMjA4LTc4YzEwLjktNC4xIDIyLjgtNC4xIDMzLjcgMGwyMDggNzhjMTguNyA3IDMxLjEgMjQuOSAzMS4xIDQ0LjlsMCAzNi0yNTMuMiA5NmMtMS44IC43LTMuOCAuNy01LjcgMGwtMjUzLjItOTYgMC0zNnptMCAxNDBsMC01Mi43IDIzNi4xIDg5LjZjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDIzNi4xLTg5LjYgMCA1Mi43LTEyOCA0OC42IDAgNTEuMyAxMjgtNDguNiAwIDYyLjJjMCAyMC0xMi40IDM3LjktMzEuMSA0NC45bC0yMDggNzhjLTEwLjkgNC4xLTIyLjggNC4xLTMzLjcgMGwtMjA4LTc4QzEyLjQgNDIwLjcgMCA0MDIuNyAwIDM4Mi43bDAtNjIuMiAxMjggNDguNiAwLTUxLjMtMTI4LTQ4LjZ6TTIzNi4xIDQxMC4xYzEyLjggNC45IDI2LjkgNC45IDM5LjcgMGw2MC4xLTIyLjggMC01MS4zLTc3LjIgMjkuM2MtMS44IC43LTMuOCAuNy01LjcgMGwtNzcuMi0yOS4zIDAgNTEuMyA2MC4xIDIyLjh6Il19LGZWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmciLGljb246WzU3Niw1MTIsW10sImY0YmQiLCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxtVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLXJpZ2h0IixpY29uOlsxOTIsNTEyLFtdLCJlODFjIiwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAweiJdfSxnVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLWRyb3BsZXQiLGljb246WzMyMCw1MTIsW10sImU0YzQiLCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6Il19LGJWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sdlZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tcmlnaHQiLGljb246WzMyMCw1MTIsWzkwMDJdLCJmMDU0IiwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Il19LHhWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlZ2ciLGljb246WzM4NCw1MTIsWzEyOTM3MF0sImY3ZmIiLCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODggMCAxNzYgNjQgMTYgMTkyIDE2UzM4NCAxNzYgMzg0IDI4OGMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yLTExLjIgMzEuNi0xNi45IDY1LjEtMTYuOSA5My41IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjggMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yeiJdfSxlYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZG9tZSIsaWNvbjpbNTEyLDUxMixbImxhbmRtYXJrLWFsdCJdLCJmNzUyIiwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIC45IDAgMS44IC4xIDIuNi04MC41IDEzLjQtMTQ0IDc2LjktMTU3LjUgMTU3LjRMNjQgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMTYwLTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDQ0OCA0MTYgNDQ4IDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMi43IDBjLTEzLjUtODAuNC03Ny0xNDMuOS0xNTcuNS0xNTcuNCAuMS0uOSAuMS0xLjcgLjEtMi42IDAtMTcuNy0xNC4zLTMyLTMyLTMyem04MCAyNTZsNjQgMCAwIDE2MC02NCAwIDAtMTYwek0yMjQgNDE2bDAtMTYwIDY0IDAgMCAxNjAtNjQgMHpNMTEyIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6Il19LHlWdD1lYmUsd1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvcm0iLGljb246WzQ0OCw1MTIsW10sImU1OTkiLCJNMjI0IDk2YzAtNTMgNDMtOTYgOTYtOTZsMzguNCAwQzQwNy45IDAgNDQ4IDQwLjEgNDQ4IDg5LjZMNDQ4IDM3NmMwIDc1LjEtNjAuOSAxMzYtMTM2IDEzNlMxNzYgNDUxLjEgMTc2IDM3NmwwLTgwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwbDAgMTY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4UzAgNDkwLjUgMCA0NjRMMCAyOTZjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNmwwIDgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0xODQtMzIgMGMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sa1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItaW5qdXJlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjcyOCIsIk0yNDIuNyA4MEwzMzQgODBjLTEwLjctMjQuNi0yOS41LTQ0LjktNTIuOS01Ny42TDI0Mi43IDgwem0tLjktNzAuN0MyMzYgOC40IDIzMCA4IDIyNCA4IDE3NC44IDggMTMyLjUgMzcuNiAxMTQgODBsODAuNiAwIDQ3LjEtNzAuN3pNMjI0IDI0OGM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwtMjQwIDBjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjB6TTk4LjcgMzQxLjhDNDkuMyAzNzAuMiAxNiA0MjMuNSAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwxNTEgMC05NS44LTE3MC4yem00NS4xLTE3LjdsNDIuNyA3NS45IDg1LjUgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDExLjQtMi40IDIyLjItNi43IDMybDU5LjIgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTkwLjktNzMuNy0xNjQuNi0xNjQuNi0xNjQuNmwtODYuOSAwYy0xMi42IDAtMjQuOSAxLjQtMzYuNyA0LjF6TTIxMy41IDQ0OGwzNiA2NCAyMi41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU4LjUgMHoiXX0sU1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cmlrZXRocm91Z2giLGljb246WzUxMiw1MTIsW10sImYwY2MiLCJNOTYgMTU3LjVDOTYgODguMiAxNTIuMiAzMiAyMjEuNSAzMkwzNjggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjIxLjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxbDQ0LjEgNS41IDIyMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4My4xIDBDMTAzIDIwNC42IDk2IDE4MS44IDk2IDE1Ny41ek0zNDkuMiAzMzZsNjUuNSAwYy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNSAwIDY5LjMtNTYuMiAxMjUuNS0xMjUuNSAxMjUuNUwxNDQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0Ni41IDBjMzQgMCA2MS41LTI3LjUgNjEuNS02MS41IDAtNi40LTEtMTIuNy0yLjgtMTguNXoiXX0sX1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsb2ciLGljb246WzUxMiw1MTIsW10sImY3ODEiLCJNMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0IDE0NS44IDAgMjY0IDExOC4yIDI2NCAyNjQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTkuMy05Ni43LTIxNi0yMTYtMjE2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek04MCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNiA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFMyNTUuNSA1MTIgMTc2IDUxMiAzMiA0NDcuNSAzMiAzNjhsMC0yMjRjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE2OCAwYzkyLjggMCAxNjggNzUuMiAxNjggMTY4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMy01My43LTEyMC0xMjAtMTIwLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE1WdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2gtMjAiLGljb246WzQ0OCw1MTIsW10sImUwNmYiLCJNMTY4LjUgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMjUuM2MtMTA4IDExLjktMTkyIDEwMy41LTE5MiAyMTQuNyAwIDExOS4zIDk2LjcgMjE2IDIxNiAyMTZzMjE2LTk2LjcgMjE2LTIxNmMwLTM5LjgtMTAuOC03Ny4xLTI5LjYtMTA5LjJsMjguMi0yOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0yMy40IDIzLjRjLTMyLjktMzAuMi03NS4yLTUwLjMtMTIyLTU1LjVsMC0yNS4zIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwem0tNjAgMjQwYzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAzLjhjMCAxMS43LTMuMiAyMy4xLTkuMyAzM2wtNDMuOCA3MS4yIDMzLjEgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTU3LjggMGMtMTQuNSAwLTI2LjItMTEuNy0yNi4yLTI2LjIgMC00LjkgMS4zLTkuNiAzLjktMTMuOGw1Ni43LTkyLjFjMi4yLTMuNiAzLjQtNy44IDMuNC0xMi4xbDAtMy44YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMHptMTgwLTUyYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTI4LjcgMjMuMy01MiA1Mi01MnptLTEyIDUybDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyeiJdfSx6VnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGlja3VwIixpY29uOls2NDAsNTEyLFsxMjg3NjNdLCJmNjNjIiwiTTM2My44IDk2bDU3LjYgOTYtMTMzLjQgMCAwLTk2IDc1LjggMHpNNDk2IDE5Mkw0MTguNiA2My4xQzQwNy4xIDQzLjggMzg2LjIgMzIgMzYzLjggMzJMMjU2IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOC0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMi40IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE2MC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDMyLjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6bTM3Ni00MGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LHRiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWVkbGluZyIsaWNvbjpbNTEyLDUxMixbMTI3NzkzLCJzcHJvdXQiXSwiZjRkOCIsIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6Il19LENWdD10YmUsYWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYW5zZ2VuZGVyIixpY29uOls1NzYsNTEyLFs5ODk1LCJ0cmFuc2dlbmRlci1hbHQiXSwiZjIyNSIsIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTcuOSAzMiAxMzYgNzAuMSAxNTEgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xNSAxNSAxNC4yIDE0LjJjMjcuOS0yMy44IDY0LjItMzguMiAxMDMuOC0zOC4yIDM2LjcgMCA3MC42IDEyLjQgOTcuNiAzMy4yTDQ2Ni43IDMyIDQ0OCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTg0LjQgODQuNGMxMyAyMy4xIDIwLjQgNDkuOSAyMC40IDc4LjMgMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAzNS4yIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM1LjJjLTczLTE0LjgtMTI4LTc5LjQtMTI4LTE1Ni44IDAtMzEuNCA5LTYwLjcgMjQuNy04NS40bC0xNi43LTE2LjctMTUgMTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTUtMTUtMzguMS0zOC4xIDAgMzAuMWMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDExMy43IDAgOTZMMCAwQzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDB6TTI4OCAzMzZhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LFRWdD1hYmUsJFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTMwNC4xIDcuNmMwLTExLjEtNy42LTIwLjctMTguNC0yMy4zcy0yMS45IDIuNS0yNyAxMi40TDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjkxIDQxNi4xYzgtNC4xIDEzLjEtMTIuNCAxMy4xLTIxLjRsMC0zODcuMXoiXX0sc2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob3RvLWZpbG0iLGljb246WzY0MCw1MTIsWyJwaG90by12aWRlbyJdLCJmODdjIiwiTTE5MiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0ek0zMjAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTU2LjUgMTEuNUM0NzIuMSAxMDAuNCA0NjQuNCA5NiA0NTYgOTZzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTQgODguMy0xNy45LTI1LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMyNzkuMSAyODggMjg4IDI4OGwyNTYgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0ek0xNDQgMTI4bDAgMTYwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEybDE5MiAwIDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwek01MiAxOTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHptMCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxEVnQ9c2JlLExWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWN0dXJlLWluLXBpY3R1cmUiLGljb246WzUxMiw1MTIsW10sImU4MGIiLCJNNDQ4IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTEyLTY0IDAgMC0xMTItMzg0IDAgMCAzMjAgMTQ0IDAgMCA2NC0xNDQgMC02LjUtLjNjLTMwLjEtMy4xLTU0LjEtMjctNTcuMS01Ny4xTDAgNDE2IDAgOTZDMCA2Mi45IDI1LjIgMzUuNiA1Ny41IDMyLjNMNjQgMzIgNDQ4IDMyem0xNiAyMjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMHoiXX0sRVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1bXAtbWVkaWNhbCIsaWNvbjpbMzIwLDUxMixbXSwiZTA2YSIsIk05NiAwbDAgODAgMTI4IDAgMC0yNCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDggMjk2IDhsLTcyIDAgMC04YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwQzExMC4zLTMyIDk2LTE3LjcgOTYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTY0IDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sUFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUiLGljb246WzQ0OCw1MTIsWzEyODI5M10sImYwNmQiLCJNMTYwLjUtMjYuNGM5LjMtNy44IDIzLTcuNSAzMS45IC45IDEyLjMgMTEuNiAyMy4zIDI0LjQgMzMuOSAzNy40IDEzLjUgMTYuNSAyOS43IDM4LjMgNDUuMyA2NC4yIDUuMi02LjggMTAtMTIuOCAxNC4yLTE3LjkgMS4xLTEuMyAyLjItMi43IDMuMy00LjEgNy45LTkuOCAxNy43LTIyLjEgMzAuOC0yMi4xIDEzLjQgMCAyMi44IDExLjkgMzAuOCAyMi4xIDEuMyAxLjcgMi42IDMuMyAzLjkgNC44IDEwLjMgMTIuNCAyNCAzMC4zIDM3LjcgNTIuNCAyNy4yIDQzLjkgNTUuNiAxMDYuNCA1NS42IDE3Ni42IDAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRTMCA0MTEuNyAwIDI4OGMwLTkxLjEgNDEuMS0xNzAgODAuNS0yMjUgMTkuOS0yNy43IDM5LjctNDkuOSA1NC42LTY1LjEgOC4yLTguNCAxNi41LTE2LjcgMjUuNS0yNC4yek0yMjUuNyA0MTZjMjUuMyAwIDQ3LjctNyA2OC44LTIxIDQyLjEtMjkuNCA1My40LTg4LjIgMjguMS0xMzQuNC00LjUtOS0xNi05LjYtMjIuNS0ybC0yNS4yIDI5LjNjLTYuNiA3LjYtMTguNSA3LjQtMjQuNy0uNS0xNy4zLTIyLjEtNDkuMS02Mi40LTY1LjMtODMtNS40LTYuOS0xNS4yLTgtMjEuNS0xLjktMTguMyAxNy44LTUxLjUgNTYuOC01MS41IDEwNC4zIDAgNjguNiA1MC42IDEwOS4yIDExMy43IDEwOS4yeiJdfSxpYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1wbHVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLXBsdXMiXSwiZjAwZSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIwOCAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sSVZ0PWliZSxBVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhc2siLGljb246WzQ0OCw1MTIsW10sImYwYzMiLCJNMjg4IDBMMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMyczE0LjMgMzIgMzIgMzJMMTI4IDIxNS41IDcuNSA0MjYuM0MyLjYgNDM1IDAgNDQ0LjcgMCA0NTQuNyAwIDQ4Ni40IDI1LjYgNTEyIDU3LjMgNTEybDMzMy40IDBjMzEuNiAwIDU3LjMtMjUuNiA1Ny4zLTU3LjMgMC0xMC0yLjYtMTkuOC03LjUtMjguNEwzMjAgMjE1LjUgMzIwIDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzMzNy43IDAgMzIwIDBMMjg4IDB6TTE5MiAyMTUuNWwwLTE1MS41IDY0IDAgMCAxNTEuNWMwIDExLjEgMi45IDIyLjEgOC40IDMxLjhsNDEuNiA3Mi43LTE2NCAwIDQxLjYtNzIuN2M1LjUtOS43IDguNC0yMC42IDguNC0zMS44eiJdfSxOVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tcmlnaHQiLGljb246WzQ0OCw1MTIsW10sImYwMzgiLCJNNDQ4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDE5MiA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0scmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhYmxlLWNhciIsaWNvbjpbNTEyLDUxMixbMTI4NjczLDU3NTUxLCJ0cmFtIl0sImY3ZGEiLCJNMjg4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTYwIDI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyIDI4OGMwLTM1LjMgMjguNy02NCA2NC02NGwxMzYgMCAwLTk2LjItMTkzLjQgNTUuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDIyNC02NCAwIDAgMjI0LTY0YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTIwNi42IDU5IDAgMTA5LjkgMTM2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MHptODAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDAgMC05Ni01NiAwem0xODQgOTZsMC05Ni04MCAwIDAgOTYgODAgMHptNDggMGw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtNTYgMCAwIDk2eiJdfSxSVnQ9cmJlLG9iZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbImZpcnN0LWFpZCJdLCJmNDc5IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2IDAgMC0zODQtMTYgMHptNjQgMGwwIDM4NCAyNTYgMCAwLTM4NC0yNTYgMHpNNDQ4IDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMCAwIDM4NCAxNiAwek0yMjQgMTg0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxPVnQ9b2JlLEZWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzIixpY29uOls0NDgsNTEyLFtdLCJmN2E0IiwiTTMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAyODh6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MHoiXX0sbmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cmdlciIsaWNvbjpbNTEyLDUxMixbImhhbWJ1cmdlciJdLCJmODA1IiwiTTQ4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDI4OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNkw0OCAzODR6TTMyIDIwMmMwIDEyLjIgOS45IDIyIDIyIDIyTDQ1OCAyMjRjMTIuMiAwIDIyLTkuOSAyMi0yMiAwLTE3LjItMi42LTM0LjQtMTAuOC00OS41LTIyLjItNDAuOC04Mi4zLTEyMC41LTIxMy4yLTEyMC41UzY1IDExMS42IDQyLjggMTUyLjVDMzQuNiAxNjcuNiAzMiAxODQuOCAzMiAyMDJ6TTAgMzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI1NiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTEyMCAxMjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQ4LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sQlZ0PW5iZSxIVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd21hbiIsaWNvbjpbNjQwLDUxMixbOTczMSw5OTI0XSwiZjdkMCIsIk00MDMgMjExLjdjMzIuMi0yNC45IDUzLTYzLjkgNTMtMTA3LjcgMC03NS4xLTYwLjktMTM2LTEzNi0xMzZTMTg0IDI4LjkgMTg0IDEwNGMwIDQzLjkgMjAuOCA4Mi45IDUzIDEwNy43LTMyLjIgMTYuMy01OSA0MS44LTc2LjggNzMuMUwxMTIgMjY0LjIgMTEyIDIyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5LjYtMjIuNS05LjdjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41YzM2LjEgMTUuNSA3NS45IDMyLjUgMTE5LjQgNTEuMi0zLjkgMTQuOS02IDMwLjYtNiA0Ni43IDAgNzAgMzkuMSAxMzAuOCA5Ni42IDE2MS45IDcuOSA0LjMgMTYuOSA2LjEgMjUuOSA2LjFsMTIzIDBjOSAwIDE4LTEuOCAyNS45LTYuMSA1Ny41LTMxLjEgOTYuNi05MiA5Ni42LTE2MS45IDAtMTYuMi0yLjEtMzEuOC02LTQ2LjcgNDMuNS0xOC43IDgzLjQtMzUuNyAxMTkuNC01MS4yIDEyLjItNS4yIDE3LjgtMTkuMyAxMi42LTMxLjVzLTE5LjMtMTcuOC0zMS41LTEyLjZsLTIyLjUgOS43IDAtMTkuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLjItNDguMiAyMC42Yy0xNy45LTMxLjMtNDQuNi01Ni44LTc2LjgtNzMuMXpNMjk2IDQxNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNC0xMjBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yNDggODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMzY4IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjkyLjIgMTU5LjNjLTIuNy00LjgtNC4yLTEwLjItNC4yLTE1LjcgMC0xNy41IDE0LjItMzEuNiAzMS42LTMxLjZsLjggMGMxNy41IDAgMzEuNiAxNC4yIDMxLjYgMzEuNiAwIDUuNS0xLjQgMTAuOS00LjIgMTUuN0wzMjcgMTk1LjhjLTMuMSA1LjQtMTAuOCA1LjQtMTMuOSAwbC0yMC45LTM2LjZ6Il19LHFWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3RlbCIsaWNvbjpbNTEyLDUxMixbMTI3OTc2XSwiZjU5NCIsIk0xNiAyNEMxNiAxMC43IDI2LjcgMCA0MCAwTDQ3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MTYgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDQwIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MTYtOCAwQzI2LjcgNDggMTYgMzcuMyAxNiAyNHptMjA4IDg4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTEyOCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem05NiAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTExMiAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMjQwLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTI4OCAzODRsNDMuOCAwYzkuOSAwIDE3LjUtOSAxNC0xOC4yLTEzLjgtMzYuMS00OC44LTYxLjgtODkuNy02MS44cy03NS45IDI1LjctODkuNyA2MS44Yy0zLjUgOS4yIDQuMSAxOC4yIDE0IDE4LjJsNDMuOCAwIDAgODAgNjQgMCAwLTgweiJdfSxqVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJpbnQiLGljb246WzUxMiw1MTIsWzEyODQyNCwxMjg0MzgsOTExM10sImYwMmYiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzQxLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w0Mi41IDQyLjVjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDM3LjUtMzg0IDAgMC04MHpNMCAyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek0xMjggNDE2bDAgMzIgMjU2IDAgMC05Ni0yNTYgMCAwIDY0ek00NTYgMjcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGxiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2xsZXliYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTIsInZvbGxleWJhbGwtYmFsbCJdLCJmNDVmIiwiTTUxMiAyNTguOWMtMjMuNCA4LTQ3LjggMTMuMS03Mi42IDE1LjEgNS45LTk4LjYtMzAuNy0xOTEuMS05NC45LTI1OC4zIDk3LjggMzYgMTY3LjUgMTMwIDE2Ny41IDI0MC4zIDAgMSAwIDEuOSAwIDIuOXptLTUuOSA1MmMtNS4yIDIzLjctMTMuNiA0Ni4yLTI0LjkgNjYuOS05NC43IDUyLjItMjE0IDUwLTMwOC40LTEzLjYgMjEuNy0zMS4zIDQ5LjgtNTguOSA4My44LTgwLjUgNzkuNSA0MS42IDE2OC41IDQ5LjEgMjQ5LjUgMjcuMXpNMjc5LjcgMjQxLjZjLTMuNy04OS43LTQxLjctMTcwLjUtMTAxLjMtMjI5LjcgMjIuMy03LjEgNDYtMTEuMiA3MC41LTExLjkgOTIuNSA1NS45IDE1MC4zIDE2MC4zIDE0Mi40IDI3My44LTM4LTMuMi03NS45LTEzLjctMTExLjYtMzIuM3pNMTMwLjUgMzIuOEMxNDkuMSA0OS4xIDE2NS44IDY3LjcgMTc5LjkgODguMiA5MS41IDEzMi4zIDI5LjcgMjEwLjMgMy43IDI5OS41IDEuMyAyODUuMyAwIDI3MC44IDAgMjU2IDAgMTYwLjIgNTIuNiA3Ni43IDEzMC41IDMyLjh6bTczLjQgOTdjMTYuMyAzNC41IDI2LjEgNzIuNiAyNy45IDExMi44LTc1LjggNDgtMTI2LjggMTIxLjMtMTQ4LjMgMjAyLjUtMTcuNi0xNi4xLTMzLTM0LjYtNDUuNS01NSAyLjEtMTA4LjEgNjMuNy0yMTAuNCAxNjUuOS0yNjAuM3pNMjU2IDUxMmMtNDcuNyAwLTkyLjMtMTMtMTMwLjUtMzUuNyA0LjgtMjQuMyAxMi42LTQ4IDIzLjItNzAuNCA4Mi40IDU0LjQgMTgwLjggNjguOSAyNzEgNDctNDQuNCAzNy0xMDEuNSA1OS4yLTE2My43IDU5LjJ6Il19LFZWdD1sYmUsVVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWZmaWMtbGlnaHQiLGljb246WzMyMCw1MTIsWzEyODY3OF0sImY2MzciLCJNNjQtMzJDMjguNy0zMiAwLTMuMyAwIDMyTDAgMzg0YzAgODguNCA3MS42IDE2MCAxNjAgMTYwczE2MC03MS42IDE2MC0xNjBsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQtMzJ6bTk2IDM5MmMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTEwNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6TTE2MCAxNTJhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6Il19LFdWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NTUiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LFZiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzIixpY29uOls2NDAsNTEyLFtdLCJmMGMwIiwiTTMyMCAxNmExMDQgMTA0IDAgMSAxIDAgMjA4IDEwNCAxMDQgMCAxIDEgMC0yMDh6TTk2IDg4YTcyIDcyIDAgMSAxIDAgMTQ0IDcyIDcyIDAgMSAxIDAtMTQ0ek0wIDQxNmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCAxMi44IDAgMjUuMiAxLjkgMzYuOSA1LjQtMzIuOSAzNi44LTUyLjkgODUuNC01Mi45IDEzOC42bDAgMTZjMCAxMS40IDIuNCAyMi4yIDYuNyAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6bTUyMS4zIDY0YzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtMTZjMC01My4yLTIwLTEwMS44LTUyLjktMTM4LjYgMTEuNy0zLjUgMjQuMS01LjQgMzYuOS01LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODYuNyAwek00NzIgMTYwYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDQzMmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxHVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VydGlmaWNhdGUiLGljb246WzU3Niw1MTIsW10sImYwYTMiLCJNMjM5LjItOGMtNi4xLTYuMi0xNS04LjctMjMuNC02LjRTMjAwLjktNS42IDE5OC44IDIuOEwxODMuNSA2M2MtMS4xIDQuNC01LjYgNy05LjkgNS43TDExMy44IDUxLjljLTguNC0yLjQtMTcuNCAwLTIzLjUgNi4xcy04LjUgMTUuMS02LjEgMjMuNWwxNi45IDU5LjhjMS4yIDQuMy0xLjQgOC44LTUuNyA5LjlMMzUuMSAxNjYuNWMtOC40IDIuMS0xNSA4LjctMTcuMyAxNy4xcy4yIDE3LjMgNi40IDIzLjRsNDQuNSA0My4zYzMuMiAzLjEgMy4yIDguMyAwIDExLjVMMjQuMyAzMDUuMWMtNi4yIDYuMS04LjcgMTUtNi40IDIzLjRzOC45IDE0LjkgMTcuMyAxNy4xbDYwLjIgMTUuM2M0LjQgMS4xIDcgNS42IDUuNyA5LjlMODQuMiA0MzAuNWMtMi40IDguNCAwIDE3LjQgNi4xIDIzLjVzMTUuMSA4LjUgMjMuNSA2LjFsNTkuOC0xNi45YzQuMy0xLjIgOC44IDEuNCA5LjkgNS43bDE1LjMgNjAuMmMyLjEgOC40IDguNyAxNSAxNy4xIDE3LjNzMTcuMy0uMiAyMy40LTYuNGw0My4zLTQ0LjVjMy4xLTMuMiA4LjMtMy4yIDExLjUgMEwzMzcuMyA1MjBjNi4xIDYuMiAxNSA4LjcgMjMuNCA2LjRzMTQuOS04LjkgMTcuMS0xNy4zTDM5My4xIDQ0OWMxLjEtNC40IDUuNi03IDkuOS01LjdsNTkuOCAxNi45YzguNCAyLjQgMTcuNCAwIDIzLjUtNi4xczguNS0xNS4xIDYuMS0yMy41bC0xNi45LTU5LjhjLTEuMi00LjMgMS40LTguOCA1LjctOS45bDYwLjItMTUuM2M4LjQtMi4xIDE1LTguNyAxNy4zLTE3LjFzLS4yLTE3LjQtNi40LTIzLjRsLTQ0LjUtNDMuM2MtMy4yLTMuMS0zLjItOC4zIDAtMTEuNWw0NC41LTQzLjNjNi4yLTYuMSA4LjctMTUgNi40LTIzLjRzLTguOS0xNC45LTE3LjMtMTcuMWwtNjAuMi0xNS4zYy00LjQtMS4xLTctNS42LTUuNy05LjlsMTYuOS01OS44YzIuNC04LjQgMC0xNy40LTYuMS0yMy41cy0xNS4xLTguNS0yMy41LTYuMUw0MDMgNjguOGMtNC4zIDEuMi04LjgtMS40LTkuOS01LjdMMzc3LjggMi44Yy0yLjEtOC40LTguNy0xNS0xNy4xLTE3LjNzLTE3LjMgLjItMjMuNCA2LjRMMjk0IDM2LjVjLTMuMSAzLjItOC4zIDMuMi0xMS41IDBMMjM5LjItOHoiXX0sS1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsYXJtLWNsb2NrIixpY29uOls1MTIsNTEyLFs5MjAwXSwiZjM0ZSIsIk01MDQuNCAxMzIuNWMtNC41IDEwLjUtMTguNCA5LjgtMjQuOSAuNC0yNy44LTQwLTY2LjEtNzIuMi0xMTEtOTIuNi0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuM3ptLTQ3MS45IC40Yy02LjUgOS40LTIwLjUgMTAuMS0yNC45LS40LTQuOS0xMS41LTcuNi0yNC4xLTcuNi0zNy4zIDAtNTIuNiA0Mi42LTk1LjIgOTUuMi05NS4yIDE5LjMgMCAzNy4zIDUuOCA1Mi4zIDE1LjcgOS42IDYuMyA2LjMgMTkuOS00LjEgMjQuNi00NC44IDIwLjQtODMuMSA1Mi42LTExMSA5Mi42ek0zOTAuMiA0NjcuNEMzNTIuOCA0OTUuNCAzMDYuMyA1MTIgMjU2IDUxMnMtOTYuOC0xNi42LTEzNC4xLTQ0LjZMODYuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMzUuMi0zNS4yQzQ4LjYgMzg0LjggMzIgMzM4LjMgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUwLjMtMTYuNiA5Ni44LTQ0LjYgMTM0LjJsMzUuMiAzNS4yYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zNS4yLTM1LjJ6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtOTQuMXoiXX0sWVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXItc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTAyIiwiTTQ0NS40IDIyNGw2NC43IDBDNDk1LjYgMTA4LjIgNDAzLjggMTYuNCAyODggMmwwIDY0LjdDMzY4LjQgODAuMSA0MzEuOSAxNDMuNiA0NDUuNCAyMjR6TTUxMCAyODhsLTY0LjcgMEM0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNsMCA2NC43YzExNS44LTE0LjQgMjA3LjYtMTA2LjIgMjIyLTIyMnpNMiAyODhDMTYuNCA0MDMuOCAxMDguMiA0OTUuNiAyMjQgNTEwbDAtNjQuN0MxNDMuNiA0MzEuOSA4MC4yIDM2OC40IDY2LjcgMjg4TDIgMjg4em0wLTY0bDY0LjcgMEM4MC4yIDE0My42IDE0My42IDgwLjEgMjI0IDY2LjdMMjI0IDJDMTA4LjIgMTYuNCAxNi40IDEwOC4yIDIgMjI0em0yMDYtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDk2IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjQtOTYgMCAwLTY0eiJdfSxjYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1jcmFjayIsaWNvbjpbNTEyLDUxMixbImhvdXNlLWRhbWFnZSJdLCJmNmYxIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMDUuNiAwLTM4LjQtNjQgODAuOC02Ny4zYzcuOC02LjUgNy42LTE4LjYtLjQtMjQuOUwyMTguNiAyNjMuMmMtMTQuNi0xMS41LTMzLjggNy0yMi44IDIyTDI1NiAzNjggMTcwLjUgNDM5LjJjLTYuMSA1LTcuNSAxMy44LTMuNSAyMC41bDMxLjMgNTIuMi04Ni40IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHoiXX0sWlZ0PWNiZSxYVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXBvaW50aW5nIixpY29uOls1MTIsNTEyLFtdLCJlNTRhIiwiTTIxNC45IDE0LjFDMjAyIDE1LjIgMTkyIDI2IDE5MiAzOSAxOTIgNTIuOCAyMDMuMiA2NCAyMTcgNjRsMTUxIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzAuNkMzODQgOCAzNzYgLjcgMzY2LjcgMS40TDIxNC45IDE0LjF6TTIwOCAxMTJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTUuNS0uNi0xMC44LTEuNi0xNkwyMDkuNiA5NmMtMSA1LjItMS42IDEwLjUtMS42IDE2ek00MCAyMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTUyIDAgMCA4OS40IDE2Mi44LTE2Mi44Yy0xMy4zLTQuMy0yNy4zLTYuNS00MS42LTYuNUw0MCAyMjR6bTM0NS43IDIwLjlsLTE3MS4xIDE3MS4xIDE2OS40IDAgMC00Ni4zIDUzLjYgOTAuNmMxMS4yIDE5IDM1LjggMjUuMyA1NC44IDE0LjFzMjUuMy0zNS44IDE0LjEtNTQuOEw0MzAuMyAyOTAuOGMtMTEuMi0xOS0yNi42LTM0LjUtNDQuNi00NS45ek0xOTIgNDQ4bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMi0xOTIgMHoiXX0sUVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRhdGFiYXNlIixpY29uOls0NDgsNTEyLFtdLCJmMWMwIiwiTTQ0OCAyMDUuOGMtMTQuOCA5LjgtMzEuOCAxNy43LTQ5LjUgMjQtNDcgMTYuOC0xMDguNyAyNi4yLTE3NC41IDI2LjJTOTYuNCAyNDYuNSA0OS41IDIyOS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDI4OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTgyLjJ6bTAtNzcuOGwwLTQ4QzQ0OCAzNS44IDM0Ny43IDAgMjI0IDBTMCAzNS44IDAgODBsMCA0OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MHpNMzk4LjUgMzg5LjhDMzUxLjYgNDA2LjUgMjg5LjkgNDE2IDIyNCA0MTZTOTYuNCA0MDYuNSA0OS41IDM4OS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDQzMmMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTY2LjJjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0eiJdfSxKVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmV3c3BhcGVyIixpY29uOls1MTIsNTEyLFsxMjgyNDBdLCJmMWVhIiwiTTAgNDE2TDAgMTIwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNEw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0xNjAgMTI4bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMjQgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNDAgMHptLTI0LTcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTM2MCAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMHoiXX0sZVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXJhaW4iLGljb246WzUxMiw1MTIsWzEyNzc4Myw5OTI2XSwiZjczZCIsIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjItMS4zLTYuNy0xLjktMTMuNy0xLjktMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA0My4xIDAgODAuNSAyNC4zIDk5LjIgNjAgMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC44LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2TDk2IDMyMHptMS42IDY4LjJjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2bDMwLjItNjguMnptMTUyIDBjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2bDMwLjItNjguMnptMTIxLjggNjguMmwzMC4yLTY4LjJjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2eiJdfSxkYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF4aW1pemUiLGljb246WzQ0OCw1MTIsWyJleHBhbmQtYXJyb3dzLWFsdCJdLCJmMzFlIiwiTTE2OCAzMkwyNCAzMkMxMC43IDMyIDAgNDIuNyAwIDU2TDAgMjAwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDIyMy44IDQxIDIxN2w0MC00MCA3OSA3OS03OSA3OS00MC00MGMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMwIDMwMi4zIDAgMzEyTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDAtNDAgNzktNzkgNzkgNzktNDAgNDBjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMjcwLjMgNDgwIDI4MCA0ODBsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMmwtNDAgNDAtNzktNzkgNzktNzkgNDAgNDBjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlM0NDggMjA5LjcgNDQ4IDIwMGwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyODAgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOFMyNTYuMiA2Ni4xIDI2MyA3M2w0MCA0MC03OSA3OS03OS03OSA0MC00MGM2LjktNi45IDguOS0xNy4yIDUuMi0yNi4yUzE3Ny43IDMyIDE2OCAzMnoiXX0sdFV0PWRiZSxhVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tYXJyb3ciLGljb246WzUxMiw1MTIsW10sImYxMjQiLCJNNDc3LjkgNzUuNWM0LjUtMTEuOCAxLjctMjUuMi03LjItMzQuMXMtMjIuMy0xMS44LTM0LjEtNy4ybC00MTYgMTYwQzcuOSAxOTktLjMgMjExLjIgMCAyMjQuN3M5LjEgMjUuNCAyMS45IDI5LjZsMTc2LjggNTguOSA1OC45IDE3Ni44YzQuMyAxMi44IDE2LjEgMjEuNiAyOS42IDIxLjlzMjUuNy03LjkgMzAuNi0yMC41bDE2MC00MTZ6Il19LHNVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXR5IixpY29uOls1NzYsNTEyLFsxMjc5NjFdLCJmNjRmIiwiTTMyMCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyLTQ4IDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTY0IDAgMC03MkM5NiAxMC43IDg1LjMgMCA3MiAwUzQ4IDEwLjcgNDggMjRsMCA3NGMtMjcuNiA3LjEtNDggMzIuMi00OCA2MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMCAwLTEyOGMwLTM1LjMtMjguNy02NC02NC02NEwzMjAgMHptNjQgMTEybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6bS0xNiA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwem0xNiAxMTJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnptMTEyLTE2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTI1NiAzMDRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMjQwIDE5MmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwek0xMjggMzA0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6TTExMiAxOTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHoiXX0saVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IngtcmF5IixpY29uOls1MTIsNTEyLFtdLCJmNDk3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6bTI4MCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDQ4LTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMCAwIDQ4LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtNDggODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMCAwLTQ4IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC0xNnoiXX0sclV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVtYnJlbGxhLWJlYWNoIixpY29uOls1MTIsNTEyLFsxMjc5NThdLCJmNWNhIiwiTTQ5Ny41IDM0MS4xYy01LjkgMTYuNy0yNS4zIDIzLTQxLjEgMTUuMWwtMTc4LjItODkuMS0xLjYgMy4yLTg4LjggMTc3LjcgMjkyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODQuMiAwIDEwMy4yLTIwNi4zIDEuNi0zLjItMTY1LjQtODIuN2MtMTUuOC03LjktMjIuNC0yNy4zLTEyLjUtNDIgNDUuOS02OC42IDEyNC4xLTExMy44IDIxMi45LTExMy44IDE0MS40IDAgMjU2IDExNC42IDI1NiAyNTYgMCAyOS44LTUuMSA1OC41LTE0LjUgODUuMXoiXX0sdWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0LXRvLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLWluIl0sImYwOTAiLCJNMzUyIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bS05LjQgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDI0Mi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sb1V0PXViZSxuVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHNldCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5MCIsIk0yMjQgNjRjLTc5IDAtMTQ0LjcgNTcuMy0xNTcuNyAxMzIuNyA5LjMtMyAxOS4zLTQuNyAyOS43LTQuN2wxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02NEMwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRsMCAxNjguMWMwIDY2LjMtNTMuOCAxMjAtMTIwLjEgMTIwbC04Ny45LS4xLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDAgNDAgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTIwLjljLTE0LjEgOC4yLTMwLjUgMTIuOC00OCAxMi44bC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDBjMTAuNCAwIDIwLjMgMS42IDI5LjcgNC43LTEzLTc1LjMtNzguNi0xMzIuNy0xNTcuNy0xMzIuN3oiXX0sbFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwbG90Y2giLGljb246WzUxMiw1MTIsW10sImY1YmMiLCJNMjA4LjUgNjIuM2wyOC4xLTM2LjlDMjQ4LjggOS40IDI2Ny44IDAgMjg4IDAgMzE2LjUgMCAzNDEuNiAxOC43IDM0OS44IDQ2bDE3LjggNTkuNGMxMC4zIDM0LjQgMzYuMSA2MiA2OS44IDc0LjZsMzkuOCAxNC45YzIwLjkgNy45IDM0LjggMjcuOSAzNC44IDUwLjIgMCAxNi45LTcuOSAzMi44LTIxLjUgNDIuOWwtNjcuMyA1MC41Yy0yNC4zIDE4LjItMzcuMiA0Ny45LTMzLjggNzguMWwyLjUgMjIuN2M0LjMgMzguNy0yNiA3Mi42LTY1IDcyLjYtMTQuOCAwLTI5LjMtNS4xLTQwLjktMTQuM2wtNTUuMy00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjItMTUuOC03LjktMzMuNy0xMC40LTUxLTcuM0w4Mi40IDQ1MS45Yy0zNC42IDYuMy02Ni40LTIwLjMtNjYuNC01NS40IDAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMSAwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOSAwIDExMC41IDMwLjEgODUuMSA2MyA5MC43bDUxLjMgOC43YzM1LjkgNi4xIDcyLjItOC4yIDk0LjItMzcuMXoiXX0scGJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC11cCJdLCJmMzBjIiwiTTEzNy40LTIyLjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDAuOSAxNjAgMjg4IDE2MGwtNjQgMCAwIDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMzYtNjQgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxMTQuNSA5LjQgMTA1LjRsMTI4LTEyOHoiXX0sY1V0PXBiZSxkVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGV4YWdvbi1ub2RlcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5OSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2czU2LTI1LjEgNTYtNTZjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0xLjYgMjAuOCA4LjYgNDEuNiAyNy44IDUyLjhjMjYuOCAxNS41IDYxIDYuMyA3Ni41LTIwLjVzNi4zLTYxLTIwLjUtNzYuNWMtMS4zLS44LTIuNy0xLjUtNC0yLjFsMC05MC44YzEuNC0uNiAyLjctMS4zIDQtMi4xYzI2LjgtMTUuNSAzNi00OS43IDIwLjUtNzYuNVMzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMyLjYgMS44IDUuMiAzLjMgOCA0LjdsMCA5MC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjZsLTgwLjEtNDUuOGMuMS0xLjQgLjItMi44IC4yLTQuM2MwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44eiJdfSxmb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwiLGljb246WzU3Niw1MTIsWzEyNzk3Myw2MjU4OSwiaG9zcGl0YWwtYWx0IiwiaG9zcGl0YWwtd2lkZSJdLCJmMGY4IiwiTTEyOCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDAtNjR6TTI3MiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgOTYgMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwek0xMjggMzY4bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTExMiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHpNNTEyIDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTI2NCAxMDRsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LHVVdD1mb2UscFV0PWZvZSxoVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWhhcmFzc2luZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU0OSIsIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01OS40IDMwNC41TDg4IDI1Ni45IDg4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0NC43IDQ3LjQgNTcuMWMxMS4zIDEzLjYgMzEuNSAxNS41IDQ1LjEgNC4yczE1LjUtMzEuNSA0LjItNDUuMWwtNzMuNy04OC45Yy0xOC4yLTIyLTQ1LjMtMzQuNy03My45LTM0LjdsLTM1LjkgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjl6TTQ4MCAyNDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNNDY0IDM0NGwwIDU4LjctNDEuNC00MS40Yy03LjMtNy4zLTE3LjYtMTAuNi0yNy44LTlzLTE4LjkgOC4xLTIzLjUgMTcuM2wtNDggOTZjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2wyOC4xLTU2LjMgNTQuNyA1NC43YzEyLjQgMTIuNCAyOS4xIDE5LjMgNDYuNiAxOS4zIDM2LjQgMCA2NS45LTI5LjUgNjUuOS02NS45TDU3NiAzNDRjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZ6TTI4OCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsNTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tLjggNDkuN2MtNy45LTQtMTcuNS0uNy0yMS41IDcuMnMtLjcgMTcuNSA3LjIgMjEuNWw0OCAyNGM3LjkgNCAxNy41IC43IDIxLjUtNy4ycy43LTE3LjUtNy4yLTIxLjVsLTQ4LTI0eiJdfSxmVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC10cmVuZC11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyOSIsIk00ODAgOGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzNTQuMi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0My45IDAtMTExLjMgMTExLjMtOTUuMS04MS41Yy05LTcuNy0yMi4yLTcuNy0zMS4yIDBsLTExMiA5NmMtMTAuMSA4LjYtMTEuMiAyMy44LTIuNiAzMy44czIzLjggMTEuMiAzMy44IDIuNmw5Ni40LTgyLjYgOTYuNCA4Mi42YzkuNSA4LjIgMjMuNyA3LjYgMzIuNi0xLjNsMTI3LTEyNyAwIDQzLjljMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNEw0ODAgOHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyNTZ6bTQ3LjMgNTZjLTMuNCAyMC4xLTE5LjIgMzYtMzkuNCAzOS40LTQuNCAuNy04LTIuOS04LTcuM2wwLTMyYzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDguMSAzLjYgNy4zIDh6bTAgMTQ0LjFjLjcgNC40LTIuOSA4LTcuMyA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC0zMmMwLTQuNCAzLjYtOC4xIDgtNy4zIDIwLjEgMy40IDM2IDE5LjIgMzkuNCAzOS40ek00NTYgNDE2LjdjNC40LS43IDggMi45IDggNy4zbDAgMzJjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LjEtMy42LTcuMy04IDMuNC0yMC4xIDE5LjItMzYgMzkuNC0zOS40ek00MTYuNyAzMTJjLS43LTQuNCAyLjktOCA3LjMtOGwzMiAwYzQuNCAwIDggMy42IDggOGwwIDMyYzAgNC40LTMuNiA4LjEtOCA3LjMtMjAuMS0zLjQtMzYtMTkuMi0zOS40LTM5LjR6TTE5MiAzODRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxoYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLXJ1bGVyIixpY29uOls1MTIsNTEyLFsicGVuY2lsLXJ1bGVyIl0sImY1YWUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTU4LjkgMzE1LjFMMjc0LjEgMTAwIDQxMiAyMzcuOSAxOTYuOSA0NTMuMWMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTEuMWMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJzLTguNS0xNS4xLTYuMi0yMy40TDM2LjQgMzUzLjhjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN3pNMjI1LjQgODAuOEw4MC44IDIyNS40IDExLjcgMTU2LjNjLTE1LjYtMTUuNi0xNS42LTQwLjkgMC01Ni42bDg4LTg4YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDUuOSA1LjktNTYuMyA1Ni4zYy03LjggNy44LTcuOCAyMC41IDAgMjguM3MyMC41IDcuOCAyOC4zIDBsNTYuMy01Ni4zIDM0LjkgMzQuOXpNNDMxLjIgMjg2LjZsMzQuOSAzNC45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyA1LjkgNS45YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC04OCA4OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBsLTY5LjEtNjkuMSAxNDQuNi0xNDQuNnoiXX0sbVV0PWhiZSxnVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwZWF0IixpY29uOls1MTIsNTEyLFsxMjgyNTddLCJmMzYzIiwiTTQ3MC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzUyIDE5LjEgMzUyIDMybDAgMzItMTYwIDBDODYgNjQgMCAxNTAgMCAyNTYgMCAyNzMuNyAxNC4zIDI4OCAzMiAyODhzMzItMTQuMyAzMi0zMmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGwxNjAgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjR6TTQxLjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzE2MCA0OTIuOSAxNjAgNDgwbDAtMzIgMTYwIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTE2MCAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0eiJdfSxiVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZSIsaWNvbjpbNjQwLDUxMixbMTI5NDYwXSwiZjVkNyIsIk0xOTcuNCAxNjBjLTMuOSAwLTcuMi0yLjgtOC4xLTYuNi0xMC4yLTQyLjEtNDguMS03My40LTkzLjMtNzMuNC01MyAwLTk2IDQzLTk2IDk2IDAgMjkuMSAxMi45IDU1LjEgMzMuMyA3Mi43IDQuMyAzLjcgNC4zIDEwLjggMCAxNC41LTIwLjQgMTcuNi0zMy4zIDQzLjctMzMuMyA3Mi43IDAgNTMgNDMgOTYgOTYgOTYgNDUuMiAwIDgzLjEtMzEuMyA5My4zLTczLjQgLjktMy44IDQuMi02LjYgOC4xLTYuNmwyNDUuMSAwYzMuOSAwIDcuMiAyLjggOC4xIDYuNiAxMC4yIDQyLjEgNDguMSA3My40IDkzLjMgNzMuNCA1MyAwIDk2LTQzIDk2LTk2IDAtMjkuMS0xMi45LTU1LjEtMzMuMy03Mi43LTQuMy0zLjctNC4zLTEwLjggMC0xNC41IDIwLjQtMTcuNiAzMy4zLTQzLjcgMzMuMy03Mi43IDAtNTMtNDMtOTYtOTYtOTYtNDUuMiAwLTgzLjEgMzEuMy05My4zIDczLjQtLjkgMy44LTQuMiA2LjYtOC4xIDYuNmwtMjQ1LjEgMHoiXX0sZmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtZmxhbWUtY3VydmVkIixpY29uOlszODQsNTEyLFsiZmlyZS1hbHQiXSwiZjdlNCIsIk0xNTMuNiAyOS45bDE2LTIxLjNDMTczLjYgMy4yIDE4MCAwIDE4Ni43IDAgMTk4LjQgMCAyMDggOS42IDIwOCAyMS4zbDAgMjIuMWMwIDEzLjEgNS40IDI1LjcgMTQuOSAzNC43TDMwNy42IDE1OUMzNTYuNCAyMDUuNiAzODQgMjcwLjIgMzg0IDMzNy43IDM4NCA0MzQgMzA2IDUxMiAyMDkuNyA1MTJMMTkyIDUxMkM4NiA1MTIgMCA0MjYgMCAzMjBsMC0zLjhjMC00OC44IDE5LjQtOTUuNiA1My45LTEzMC4xbDMuNS0zLjVjNC4yLTQuMiAxMC02LjYgMTYtNi42IDEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42TDk2IDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtMy45YzAtMTgtNy4yLTM1LjMtMTkuOS00OGwtMzguNi0zOC42Yy0yNC0yNC0zNy41LTU2LjctMzcuNS05MC43IDAtMjcuNyA5LTU0LjggMjUuNi03Ni45eiJdfSx2VXQ9ZmJlLG1iZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMtc2ltcGxlIixpY29uOls0NDgsNTEyLFsiYnVzLWFsdCJdLCJmNTVlIiwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCAzODRjMCAyOS44IDIwLjQgNTQuOSA0OCA2MmwwIDM0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAxOTIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zNGMyNy42LTcuMSA0OC0zMi4yIDQ4LTYybDAtMjg4YzAtNTMtNDMtOTYtOTYtOTZMOTYgMHpNNjQgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek05NiAzMjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yNTYgMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHhVdD1tYmUseVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLW1hcnMiLGljb246WzY0MCw1MTIsWzk4OTJdLCJmMjI4IiwiTTQ4MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJTNDYyLjMgMCA0ODAgMEw1MzAuNyAwIDQ3NCA1Ni43Yy0yNi4zLTE1LjctNTcuMS0yNC43LTkwLTI0LjctMzUuNCAwLTY4LjQgMTAuNS05NiAyOC41LTI3LjYtMTgtNjAuNi0yOC41LTk2LTI4LjUtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljMjMuMy00LjMgNDQuOS0xMy4xIDY0LTI1LjYgMjcuNiAxOCA2MC42IDI4LjUgOTYgMjguNSA5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NiAwLTQxLjEtMTQuMS03OS0zNy44LTEwOUw1NzYgNDUuMyA1NzYgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw0ODAtNjR6TTMzNiAzMDkuMmMyMC4yLTI4LjYgMzItNjMuNSAzMi0xMDEuMnMtMTEuOC03Mi42LTMyLTEwMS4yYzE0LjYtNi45IDMwLjgtMTAuOCA0OC0xMC44IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzQ0NS45IDMyMCAzODQgMzIwYy0xNy4yIDAtMzMuNS0zLjktNDgtMTAuOHpNMjg4IDE1MC4zYzEwLjIgMTYuOSAxNiAzNi42IDE2IDU3LjdzLTUuOCA0MC45LTE2IDU3LjdjLTEwLjItMTYuOS0xNi0zNi42LTE2LTU3LjdzNS44LTQwLjkgMTYtNTcuN3ptLTQ4LTQzLjVjLTIwLjIgMjguNi0zMiA2My41LTMyIDEwMS4yczExLjggNzIuNiAzMiAxMDEuMmMtMTQuNSA2LjktMzAuOCAxMC44LTQ4IDEwLjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJTMTMwLjEgOTYgMTkyIDk2YzE3LjIgMCAzMy41IDMuOSA0OCAxMC44eiJdfSx3VXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjUxNyIsIk0wIDU2QzAgMjUuMSAyNS4xIDAgNTYgMEw0MzcuNiAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDQ1Ny4xIDgwIDM0NCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDAtOS4xLTk2LTYyLjkgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA1NnpNMTE0LjMgMTkyTDEwMC42IDQ4IDU2IDQ4Yy00LjQgMC04IDMuNi04IDhsMCAxMjhjMCA0LjQgMy42IDggOCA4bDU4LjMgMHpNMTM2IDM4NGwyNDAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC0yNDAgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTIwIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sa1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InUiLGljb246WzM4NCw1MTIsWzExN10sIjU1IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDEwNi04NiAxOTItMTkyIDE5MlMwIDM5NCAwIDI4OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyeiJdfSxjZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZSIsaWNvbjpbNTEyLDUxMixbIm1haWwtZm9yd2FyZCJdLCJmMDY0IiwiTTMwNy44IDE4LjRjLTEyIDUtMTkuOCAxNi42LTE5LjggMjkuNmwwIDgwLTExMiAwYy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDExMy4zIDgxLjUgMTYzLjkgMTAwLjIgMTc0LjEgMi41IDEuNCA1LjMgMS45IDguMSAxLjkgMTAuOSAwIDE5LjctOC45IDE5LjctMTkuNyAwLTcuNS00LjMtMTQuNC05LjgtMTkuNS05LjQtOC44LTIyLjItMjYuNC0yMi4yLTU2LjcgMC01MyA0My05NiA5Ni05Nmw5NiAwIDAgODBjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXoiXX0sU1V0PWNmLGdiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS1mbGlwIixpY29uOls1MTIsNTEyLFsxMjgzODEsInBob25lLWFsdCJdLCJmODc5IiwiTTM1MS44IDI1YzcuOC0xOC44IDI4LjQtMjguOSA0OC4xLTIzLjVsNS41IDEuNWM2NC42IDE3LjYgMTE5LjggODAuMiAxMDMuNyAxNTYuNC0zNy4xIDE3NS0xNzQuOCAzMTIuNy0zNDkuOCAzNDkuOC03Ni4zIDE2LjItMTM4LjgtMzkuMS0xNTYuNC0xMDMuN2wtMS41LTUuNWMtNS40LTE5LjcgNC43LTQwLjMgMjMuNS00OC4xbDk3LjMtNDAuNWMxNi41LTYuOSAzNS42LTIuMSA0NyAxMS44bDM4LjYgNDcuMmM3MC4zLTM0LjkgMTI2LjgtOTMuMyAxNTkuMy0xNjQuOWwtNDQuMS0zNi4xYy0xMy45LTExLjMtMTguNi0zMC40LTExLjgtNDdMMzUxLjggMjV6Il19LF9VdD1nYmUsTVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wb3J0YWJsZSIsaWNvbjpbMzIwLDUxMixbXSwiZTU4MyIsIk0wIDY0bDAgMTYgMzIwIDAgMC0xNmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NHptMjQgNjRMMCAxMjggMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTggMjI0IDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zNjAtMjk2IDB6bTIyNCA5NmwyNCAwIDAgOTYtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0selV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmVnbmFudCIsaWNvbjpbMzg0LDUxMixbXSwiZTMxZSIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTgwIDMyMS4yYzguNi00LjUgMTYuOC0xMCAyNC4zLTE2LjVsNC0zLjRjMjIuNi0xOS40IDM1LjctNDcuNyAzNS43LTc3LjYgMC0zNS45LTE4LjgtNjkuMS00OS42LTg3LjZsLTMwLjQtMTguMiAwLTEuOGMwLTQ2LjUtMzcuNy04NC4xLTg0LjEtODQuMS0yOC4xIDAtNTQuNCAxNC4xLTcwIDM3LjVMMjEuNCAyNzAuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlsMjktNDMuNS0zMC41IDExMy41Yy0yLjYgOS42LS42IDE5LjkgNS41IDI3LjhTOTQgNDE2IDEwNCA0MTZsOCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEwLjh6Il19LENVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZXNzLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzc0XSwiM2MiLCJNNDc3LjEgNTAuNmM3LjQgMTYgLjQgMzUuMS0xNS42IDQyLjVMMTA4LjQgMjU2IDQ2MS40IDQxOWMxNiA3LjQgMjMgMjYuNCAxNS42IDQyLjVzLTI2LjQgMjMtNDIuNSAxNS42bC00MTYtMTkyQzcuMyAyNzkuOCAwIDI2OC41IDAgMjU2UzcuMyAyMzIuMiAxOC42IDIyN2w0MTYtMTkyYzE2LTcuNCAzNS4xLS40IDQyLjUgMTUuNnoiXX0sVFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1cGVyc2NyaXB0IixpY29uOls1NzYsNTEyLFtdLCJmMTJiIiwiTTU0NCAzMmMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZDNDQ5LjkgMjcuMyA0NDMuNSA0Ni41IDQ1MS40IDYyLjMgNDU3IDczLjUgNDY4LjMgODAgNDgwIDgwbDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTEyOHpNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHoiXX0sYmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1zdG9wIixpY29uOls1MTIsNTEyLFs2MjA5NCwic3RvcC1jaXJjbGUiXSwiZjI4ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDE2MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSwkVXQ9YmJlLHZiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtZG93biIsaWNvbjpbMjU2LDUxMixbImFycm93cy12Il0sImYwN2QiLCJNMTUwLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDc3LjMgOTYgNDM0LjcgNTQuNiAzOTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNiA2IDE0LjEgOS40IDIyLjYgOS40czE2LjYtMy40IDIyLjYtOS40bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC00MS40IDQxLjQgMC0zNTcuNSA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LERVdD12YmUseGJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvby1zdG9ybSIsaWNvbjpbNTEyLDUxMixbInBvby1ib2x0Il0sImY3NWEiLCJNMjY4LjktMzEuOGMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjNjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDIxLjctOC41IDM3LjItMjEuOSA0Ny42LTEzLjkgMTAuOC0zNC4xIDE3LTU4LjEgMTdsLTI0IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4IDAgMTQuOCAzLjcgMjguOCAxMC4yIDQxLjEtNDIgNi42LTc0LjIgNDMtNzQuMiA4Ni45IDAgNDYuNiAzNi4yIDg0LjcgODEuOSA4Ny44IDMuMS0xMi40IDkuOS0yMy44IDE5LjYtMzIuNUwyNDIuNyAyMjVjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43bC0xMi43IDQyLjRjMjguOCAxLjIgNTIuNyAyMS4xIDU5LjggNDcuOWwyNi4yIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC00My45LTMyLjEtODAuMy03NC4yLTg2LjkgNi41LTEyLjMgMTAuMi0yNi4yIDEwLjItNDEuMSAwLTQ4LjYtMzkuNC04OC04OC04OGwtOS40IDBjLjktNS40IDEuNC0xMC45IDEuNC0xNi42IDAtNDguNy0zNi4xLTg4LjktODMuMS05NS4yek0xNDQuNiA0MTZsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNDYuNSA0MTIuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTMzLjUgMzg3LjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LExVdD14YmUsRVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpZGVvLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGUyIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE1My0xNTMgMC0yMjIuMmMwLTM1LjMtMjguNy02NC02NC02NEwxMjkuOCA2NCA0MS0yNC45ek0zMiAxMjhsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjNy44IDAgMTUuMy0xLjQgMjIuMi00TDM2IDEwNS44Yy0yLjYgNi45LTQgMTQuNC00IDIyLjJ6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnoiXX0sbW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS14bWFyayIsaWNvbjpbNDQ4LDUxMixbMTAwNjIsInRpbWVzLXNxdWFyZSIsInhtYXJrLXNxdWFyZSJdLCJmMmQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sUFV0PW1vZSxJVXQ9bW9lLHliZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZHJvcGxldCIsaWNvbjpbNTc2LDUxMixbImhhbmQtaG9sZGluZy13YXRlciJdLCJmNGMxIiwiTTI3NS41IDYuNkwyMDkuMiAxMDNDMTk4IDExOS4zIDE5MiAxMzguNiAxOTIgMTU4LjNsMCAxLjdjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEuN2MwLTE5LjgtNi0zOS0xNy4yLTU1LjNMMzAwLjUgNi42QzI5Ny43IDIuNSAyOTMgMCAyODggMHMtOS43IDIuNS0xMi41IDYuNnpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LEFVdD15YmUsZ29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvbi1zaWduIixpY29uOls1MTIsNTEyLFs4MzYxLCJrcnciLCJ3b24iXSwiZjE1OSIsIk02Mi40IDUzLjlDNTYuOCAzNy4xIDM4LjcgMjguMSAyMS45IDMzLjZTLTMuOSA1Ny40IDEuNyA3NC4xTDU2LjkgMjQwIDMyIDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MC45IDAgNTYuNyAxNzAuMWM0LjUgMTMuNSAxNy40IDIyLjQgMzEuNiAyMS45czI2LjQtMTAuNCAyOS44LTI0LjJMMjMzIDI4OCAyNzkgMjg4IDMyMSA0NTUuOGMzLjQgMTMuOCAxNS42IDIzLjcgMjkuOCAyNC4yczI3LjEtOC40IDMxLjYtMjEuOUw0MzkuMSAyODggNDgwIDI4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQuOSAwIDU1LjMtMTY1LjljNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTYyIDE4Ni4xLTU0LjYgMC00NS45LTE4My44QzI4My41IDQyIDI3MC43IDMyIDI1NiAzMnMtMjcuNSAxMC0zMSAyNC4yTDE3OSAyNDAgMTI0LjQgMjQwIDYyLjQgNTMuOXptNzggMjM0LjFsMjYuNiAwLTExLjQgNDUuNi0xNS4yLTQ1LjZ6TTI0NSAyNDBsMTEtNDQuMSAxMSA0NC4xLTIyIDB6bTEwMCA0OGwyNi42IDAtMTUuMiA0NS42LTExLjQtNDUuNnoiXX0sTlV0PWdvZSxSVXQ9Z29lLE9VdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwyMDkuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMTEzLjF6TTExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAxMTMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMWMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40TDExOS40IDk2ek01NDQgMjc5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGwtMjkuMiAwYy01LjMtMTcuNy0xNC44LTMzLjUtMjcuNC00Ni40bDAtMTcuNiA1Ni42IDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAxMTMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjA5LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNC42IDY0IDAgMCAyNC42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xeiJdfSxGVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MTIgMjQwYzAgMTMyLjUtMTE0LjYgMjQwLTI1NiAyNDAtMzcuMSAwLTcyLjMtNy40LTEwNC4xLTIwLjdMMzMuNSA1MTAuMWMtOS40IDQtMjAuMiAxLjctMjcuMS01LjhTLTIgNDg1LjggMi44IDQ3Ni44bDQ4LjgtOTIuMkMxOS4yIDM0NC4zIDAgMjk0LjMgMCAyNDAgMCAxMDcuNSAxMTQuNiAwIDI1NiAwUzUxMiAxMDcuNSA1MTIgMjQweiJdfSxCVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1hdmFsYW5jaGUiLGljb246WzU3Niw1MTIsW10sImU1MDciLCJNNDQwLjEgNDAxLjljMzQuMiAyMy4xIDgxLjEgMTkuNSAxMTEuNC0xMC44IDM0LjQtMzQuNCAzNC40LTkwLjEgMC0xMjQuNS0yNy44LTI3LjgtNjkuNS0zMy4xLTEwMi42LTE2LTExLjggNi4xLTE2LjQgMjAuNi0xMC4zIDMyLjNzMjAuNiAxNi40IDMyLjMgMTAuM2MxNS4xLTcuOCAzNC01LjMgNDYuNiA3LjMgMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTgxLjctODEuN2MyMi4zLTE0LjIgMzcuMS0zOS4xIDM3LjEtNjcuNSAwLTMzLjktMjEuMS02Mi45LTUwLjktNzQuNSAxLjktNi44IDIuOS0xNCAyLjktMjEuNSAwLTQ0LjItMzUuOC04MC04MC04MC0yNy4zIDAtNTEuNSAxMy43LTY1LjkgMzQuNi01LjgtMjAtMjQuMi0zNC42LTQ2LjEtMzQuNi0yNi41IDAtNDggMjEuNS00OCA0OCAwIDQgLjUgNy45IDEuNCAxMS42TDQ0MC4xIDQwMS45ek00ODAuNCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wIDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTY4LjcgODdDNDMuNSA2MS44IC40IDc5LjcgLjQgMTE1LjNMLjQgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguNyA4N3oiXX0sSFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1leWUiLGljb246WzY0MCw1MTIsW10sImU0YmYiLCJNMTc2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzguMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjEuNyA1NS42IDMxIDY1bDYzIDYzLTM4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOTZ6bTAgNDAwbDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzguMSAwLTYzIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNjMtNjMgMCAzOC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6bTMxMiAyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTM4LjEgNjMgNjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyAzOC4xIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTQ2NCA1NmwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM4LjEgMCA2My02M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC02MyA2MyAwLTM4LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6TTMyMCAxMjBjLTU3LjMgMC05OS40IDM0LTEyNS42IDY0LjMtMjAgMjMuMS0zMi40IDQ1LjgtMzcuNiA1Ni4xLTIuNSA1LTQuOSA5LjctNC45IDE1LjZzMi4zIDEwLjYgNC45IDE1LjZjNS4yIDEwLjMgMTcuNiAzMyAzNy42IDU2LjEgMjYuMiAzMC4zIDY4LjIgNjQuMyAxMjUuNiA2NC4zczk5LjQtMzQgMTI1LjYtNjQuM2MyMC0yMy4xIDMyLjQtNDUuOCAzNy42LTU2LjEgMi41LTUgNC45LTkuNyA0LjktMTUuNnMtMi4zLTEwLjYtNC45LTE1LjZjLTUuMi0xMC4zLTE3LjYtMzMtMzcuNi01Ni4xLTI2LjItMzAuMy02OC4yLTY0LjMtMTI1LjYtNjQuM3pNMjU2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LHFVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93cGxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjdkMiIsIk0xMjggMTYwbDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjk2LjQgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw4Ny42IDE3NS4xYzQuNCA4LjkgNi44IDE4LjcgNi44IDI4LjZsMCA1Ni45IDgwIDAgMC04MGMwLTQ4LjYgMzkuNC04OCA4OC04OCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAyMDhjMCAyMi4xIDE3LjkgNDAgNDAgNDAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4bDAtODAtNjMgMGM5LjUgMTYuNSAxNSAzNS42IDE1IDU2IDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0yMjQgMGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTIgMC0zMC41IDEyLjItNTguMiAzMi03OC40TDY0IDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHptOTEuNyAzNC45bDQzLjYgMjkuMSAxMTMuMiAwLTgwLTE2MC0xMDQuNCAwIDAgMTA4LjggMjcuNyAyMi4xek00MTYgNDAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHptLTI4MCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTIxNi0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIzMiA0MDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0salV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWdhbnR0IixpY29uOls1MTIsNTEyLFtdLCJlMGU0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTY0IDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDB6TTM4NCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0sd2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpZGVvIixpY29uOls1NzYsNTEyLFsidmlkZW8tY2FtZXJhIl0sImYwM2QiLCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00NjQgMzM2bDczLjUgNTguOGM0LjIgMy40IDkuNCA1LjIgMTQuOCA1LjIgMTMuMSAwIDIzLjctMTAuNiAyMy43LTIzLjdsMC0yNDAuNmMwLTEzLjEtMTAuNi0yMy43LTIzLjctMjMuNy01LjQgMC0xMC42IDEuOC0xNC44IDUuMkw0NjQgMTc2IDQ2NCAzMzZ6Il19LFZVdD13YmUsVVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LTguOSA1MS45LTI0IDcyIDE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC43IDAgMjYuNyAxNjAgNTYuMiA3MC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDUxLjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw4MCAzODQgMTA2LjcgMjI0IDk2IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMtMTUuMS0yMC4xLTI0LTQ1LTI0LTcyIDAtNjYuMyA1My43LTEyMCAxMjAtMTIweiJdfSxXVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3luYWdvZ3VlIixpY29uOls1NzYsNTEyLFsxMjgzMzNdLCJmNjliIiwiTTE2IDgwYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMi0xMjggMCAwLTMyem0wIDM2OGwwLTI4OCAxMjggMCAxMjYuMi04NC4yYzEwLjctNy4yIDI0LjgtNy4yIDM1LjUgMGwxMjYuMiA4NC4yIDEyOCAwIDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTU2MCAxMTJsLTEyOCAwIDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyek0yMjQgMzg0bDAgODAgMTI4IDAgMC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHptNjQtMTUyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sR1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxLVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxrYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpci1tb3ZlIixpY29uOls0NDgsNTEyLFsid2hlZWxjaGFpci1hbHQiXSwiZTJjZSIsIk0zMTIgNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0yMDUuNCAxMjQuMWMtNi40LTUuMi0xNS42LTQuNy0yMS40IDEuMWwtMzMuNCAzMy40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxMzguOCA4MGMyOS0yOSA3NS4yLTMxLjQgMTA3LTUuNWw4MS4zIDY2YzIxLjQgMTcuNCAyMy44IDQ5LjIgNS4yIDY5LjVsLTQxLjggNDYgOTggMGMzMC4zIDAgNTMgMjcuNyA0Ny4xIDU3LjRMNDA3LjQgNDU0LjNjLTMuNSAxNy4zLTIwLjMgMjguNi0zNy43IDI1LjFzLTI4LjYtMjAuMy0yNS4xLTM3LjdMMzY5IDMyMCAzMTYuOCAzMjBjMi4xIDEwLjMgMy4yIDIxIDMuMiAzMiAwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyIDcxLjYgMTkyIDE2MCAxOTJjNiAwIDExLjkgLjMgMTcuOCAxbDUwLjQtNTAuNC0yMi43LTE4LjV6TTE2MCA0NDhhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LFlVdD1rYmUsWlV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJmNTA1IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwyNTEuNSAwQzI2MSA0NjkuNCAyNDAgNDE0LjUgMjQwIDM1Ni40bDAtMzEuMWMwLTcuMyAxLTE0LjUgMi45LTIxLjNsLTQ4LjYgMHptMjUxIDE4NC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sWFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbGQiLGljb246WzM4NCw1MTIsW10sImYwMzIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDMyIDAgMCAzMjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0yODggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR6TTEyOCA0MTZsMC0xMjggMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAweiJdfSxTYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtcHVsc2UiLGljb246WzUxMiw1MTIsWyJoZWFydGJlYXQiXSwiZjIxZSIsIk0yNTYgMTA3LjlMMjQxIDg3LjFDMjE2IDUyLjUgMTc1LjkgMzIgMTMzLjEgMzIgNTkuNiAzMiAwIDkxLjYgMCAxNjUuMWwwIDIuNmMwIDIzLjYgNi4yIDQ4IDE2LjYgNzIuM2wxMDYgMGMzLjIgMCA2LjEtMS45IDcuNC00LjlsMzEuOC03Ni4zYzMuNy04LjggMTIuMy0xNC42IDIxLjgtMTQuOHMxOC4zIDUuNCAyMi4yIDE0LjFsNTEuMyAxMTMuOSA0MS40LTgyLjhjNC4xLTguMSAxMi40LTEzLjMgMjEuNS0xMy4zczE3LjQgNS4xIDIxLjUgMTMuM2wyMy4yIDQ2LjNjMS40IDIuNyA0LjEgNC40IDcuMiA0LjRsMTIzLjYgMGMxMC41LTI0LjMgMTYuNi00OC43IDE2LjYtNzIuM2wwLTIuNkM1MTIgOTEuNiA0NTIuNCAzMiAzNzguOSAzMiAzMzYuMiAzMiAyOTYgNTIuNSAyNzEgODcuMWwtMTUgMjAuN3pNNDY5LjYgMjg4bC05Ny44IDBjLTIxLjIgMC00MC42LTEyLTUwLjEtMzFsLTEuNy0zLjQtNDIuNSA4NS4xYy00LjEgOC4zLTEyLjcgMTMuNS0yMiAxMy4zcy0xNy42LTUuNy0yMS40LTE0LjFsLTQ5LjMtMTA5LjUtMTAuNSAyNS4yYy04LjcgMjAuOS0yOS4xIDM0LjUtNTEuNyAzNC41bC04MC4yIDBjNDcuMiA3My44IDEyMyAxNDEuNyAxNzAuNCAxNzcuOSAxMi40IDkuNCAyNy42IDE0LjEgNDMuMSAxNC4xczMwLjgtNC42IDQzLjEtMTQuMUMzNDYuNiA0MjkuNyA0MjIuNCAzNjEuOCA0NjkuNiAyODh6Il19LFFVdD1TYmUsX2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1yb290LXZhcmlhYmxlIixpY29uOls1NzYsNTEyLFsic3F1YXJlLXJvb3QtYWx0Il0sImY2OTgiLCJNMjgyLjYgNzguMWM4LTI3LjMgMzMtNDYuMSA2MS40LTQ2LjFsMjAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzQ0IDk2IDIzOC43IDQ1N2MtMy42IDEyLjMtMTQuMSAyMS4yLTI2LjggMjIuOHMtMjUuMS00LjYtMzEuNS0xNS42TDc3LjYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NS42IDBjMjIuOCAwIDQzLjggMTIuMSA1NS4zIDMxLjhsNjUuMiAxMTEuOCA4NC40LTI4OS41ek0zOTMuNCAyMzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0MS40IDQxLjQgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTQxLjQgNDEuNCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQxLjQtNDEuNC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zeiJdfSxKVXQ9X2JlLE1iZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1idWJibGVzIixpY29uOls1MTIsNTEyLFsiaGFuZHMtd2FzaCJdLCJlMDVlIiwiTTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTk2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTEyOCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMCAxNjBsLjEgNzIuNmMwIDQ0LjggMTcuNiA4Ny4xIDQ3LjkgMTE4LjQgLjMtNzcgNDAuMS0xNDguNCAxMDUuNC0xODkuM2wxLjktMS4yYy0yLjUtMy43LTIuOC04LjYtLjQtMTIuN2w2Mi0xMDcuNGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOFMxODIgNSAxNzUuNCAxNi41bC02OCAxMTcuOCAwIDAgMCAwLTQzLjMgNzUgMC00OS4zYzAtMTcuNy0xNC40LTMyLTMyLTMyUzAgMTQyLjQgMCAxNjB6bTIxMy42LTM1LjljMTQuMS04LjggMjkuOC0xMi43IDQ1LjItMTIuMWwzNi41LTYzLjNjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44bC02Ny4xIDExNi4yIDI3LTE2Ljl6bTg2LjUtMzUuN2wtMTYuNCAyOC40YzE1LjEgNS41IDI4LjYgMTUuNiAzOC4zIDI5LjdsMTkuNy0zNC4yYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHptNDYuNCA2My43bC0xMi41IDIxLjdjMiA4LjYgMi41IDE3LjUgMS43IDI2LjFsNC4zIDAgMCAwIDM0LjQgMCAxMy43LTIzLjhjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44ek0yODMuMSAxNzVjLTkuNC0xNS0yOS4xLTE5LjUtNDQuMS0xMC4ybC02MC4yIDM3LjZDMTI3LjMgMjM0LjcgOTYgMjkxLjIgOTYgMzUybDAgOGMwIDguOSAuOCAxNy42IDIuMiAyNi4xIDM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45IDAgNi4zLS43IDEyLjUtMi4xIDE4LjQgMjUuMiAxOC42IDU2LjQgMjkuNiA5MC4xIDI5LjZsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTkyIDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyNCAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDE1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNTYgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTM2IDAgMCAwIDAgMC05My4yIDAgNDYuMi0yOC45YzE1LTkuNCAxOS41LTI5LjEgMTAuMi00NC4xeiJdfSxlV3Q9TWJlLHRXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJrZXIiLGljb246WzUxMiw1MTIsW10sImY1YTEiLCJNNDA4LjggMGMtMjcuNCAwLTUzLjYgMTAuOS03MyAzMC4yTDMxOC4xIDQ4IDMwNSAzNC45Yy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBMMTAzIDEzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDIzNy4xIDY4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjg0LjEgODEuOSAxODQgMTgyLjEgMzI5LjkgMzI4IDQ4MS44IDE3Ni4yYzE5LjQtMTkuNCAzMC4yLTQ1LjYgMzAuMi03MyAwLTU3LTQ2LjItMTAzLjItMTAzLjItMTAzLjJ6TTEwMi40IDI2My43Yy00OS45IDQ5LjktODMuMyAxMTQtOTUuNSAxODMuNUwuNCA0ODMuOEMtMSA0OTEuNiAxLjUgNDk5LjQgNyA1MDVzMTMuNCA4IDIxLjEgNi43bDM2LjctNi41YzY5LjUtMTIuMyAxMzMuNi00NS42IDE4My41LTk1LjVMMjk2IDM2MS45IDE1MC4xIDIxNiAxMDIuNCAyNjMuN3oiXX0sYVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0zMjAgMzJsLTguNiAwQzMwMC40IDEyLjkgMjc5LjcgMCAyNTYgMEwxMjggMEMxMDQuMyAwIDgzLjYgMTIuOSA3Mi42IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEzNiAxMTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAweiJdfSxzV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhY2Utb2Ytd29yc2hpcCIsaWNvbjpbNTEyLDUxMixbXSwiZjY3ZiIsIk0xNjAgNzlsMCA4MS00NC44IDMzLjZDMTAzLjEgMjAyLjcgOTYgMjE2LjkgOTYgMjMybDAgNDAtNjAuNiAzMC4zQzEzLjcgMzEzLjIgMCAzMzUuMyAwIDM1OS42TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTg4LjRjMC0yNC4yLTEzLjctNDYuNC0zNS40LTU3LjJMNDE2IDI3MiA0MTYgMjMyYzAtMTUuMS03LjEtMjkuMy0xOS4yLTM4LjRMMzUyIDE2MCAzNTIgNzljMC05LjUtNC4yLTE4LjUtMTEuNS0yNC42TDI3MS40LTMuMmMtOC45LTcuNC0yMS44LTcuNC0zMC43IDBMMTcxLjUgNTQuNEMxNjQuMiA2MC41IDE2MCA2OS41IDE2MCA3OXptOTYgMjQxYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODAtMTI4IDAgMC04MGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0saVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbm5hYmlzIixpY29uOls1MTIsNTEyLFtdLCJmNTVmIiwiTTI1NiAwYzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xIDE1LjggMjMuNSAzNi43IDYzLjcgNDkuMiAxMDkgNy4zIDI2LjQgMTEuOCA1NS4zIDEwLjMgODQgMTEuNi04LjkgMjMuNy0xNi43IDM1LjktMjMuNyA0MS0yMy4zIDg0LjQtMzYuOSAxMTIuMi00Mi41IDUuMi0xIDEwLjcgLjYgMTQuNCA0LjRzNS40IDkuMiA0LjQgMTQuNWMtNS42IDI3LjctMTkuMyA3MC45LTQyLjcgMTExLjctOS4xIDE1LjktMTkuOSAzMS43LTMyLjUgNDYuMyAyNy45IDYuNiA1Mi41IDE3LjIgNjcuMyAyNS40IDUuMSAyLjggOC4yIDguMiA4LjIgMTRzLTMuMiAxMS4yLTguMiAxNGMtMTUuMiA4LjQtNDAuOSAxOS41LTY5LjggMjYuMS0yMC4yIDQuNi00Mi45IDcuMi02NS4yIDQuNmw4LjMgMzMuMmMxLjUgNi4xLS42IDEyLjUtNS41IDE2LjRzLTExLjYgNC42LTE3LjIgMS44TDI4MCA0MTcuMiAyODAgNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzAuOC01OC41IDI5LjFjLTUuNiAyLjgtMTIuMyAyLjEtMTcuMi0xLjhzLTctMTAuMy01LjUtMTYuNGw4LjMtMzMuMmMtMjIuMiAyLjYtNDUgMC02NS4yLTQuNi0yOC45LTYuNi01NC41LTE3LjYtNjkuOC0yNi4xLTUuMS0yLjgtOC4yLTguMi04LjItMTRzMy4yLTExLjIgOC4yLTE0bDYuMi0zLjNjMTUtNy42IDM2LjgtMTYuNCA2MS4xLTIyLjItMTIuNS0xNC41LTIzLjMtMzAuNC0zMi40LTQ2LjItMjMuNC00MC44LTM3LjEtODQtNDIuNy0xMTEuNy0xLjEtNS4yIC42LTEwLjcgNC40LTE0LjVzOS4yLTUuNCAxNC40LTQuNGMyNy45IDUuNSA3MS4yIDE5LjIgMTEyLjIgNDIuNSAxMi4yIDYuOSAyNC4zIDE0LjggMzUuOCAyMy43LTEuNC0yOC43IDMuMS01Ny42IDEwLjMtODQgMTIuNS00NS4zIDMzLjQtODUuNSA0OS4yLTEwOWwxLjItMS42QzI0Ni45IDIgMjUxLjMgMCAyNTYgMHoiXX0scld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb29mIixpY29uOls1NzYsNTEyLFtdLCJlNTM3IiwiTTMwMi4zLTEyLjZjLTktNC41LTE5LjYtNC41LTI4LjYgMGwtMjU2IDEyOEMxLjkgMTIzLjMtNC41IDE0Mi41IDMuNCAxNTguM3MyNy4xIDIyLjIgNDIuOSAxNC4zTDI4OCA1MS44IDUyOS43IDE3Mi42YzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOWwtMjU2LTEyOHpNMjg4IDI3MmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptMCA0OGMtNTMgMC05NiA0My05NiA5NmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC01My00My05Ni05Ni05NnpNMTYwIDI1NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0zNTIgMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xMTIgMzM2Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDMzLjFjMCAxNyAxMy44IDMwLjkgMzAuOSAzMC45bDg3LjggMGMtNC4zLTkuOC02LjctMjAuNi02LjctMzJsMC00OGMwLTE4LjQgMy41LTM2IDkuOC01Mi4yLTEyLjItNy41LTI2LjUtMTEuOC00MS44LTExLjh6TTQyNS40IDQ4MGw4Ny44IDBjMTcgMCAzMC45LTEzLjggMzAuOS0zMC45bDAtMzMuMWMwLTQ0LjItMzUuOC04MC04MC04MC0xNS4zIDAtMjkuNiA0LjMtNDEuOCAxMS44IDYuMyAxNi4yIDkuOCAzMy44IDkuOCA1Mi4ybDAgNDhjMCAxMS40LTIuNCAyMi4yLTYuNyAzMnoiXX0sb1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpc2Vhc2UiLGljb246WzUxMiw1MTIsW10sImY3ZmEiLCJNMjM2LjUgMjkuNEwyMjQgNDhjLTIwIDMwLTUzLjYgNDgtODkuNyA0OEw2OCA5NmMtMzcuNSAwLTY3LjkgMzAuNC02Ny45IDY3LjkgMCAxOCA3LjIgMzUuMiAxOS45IDQ3LjlsMjcgMjdjMTEgMTEgMTcuMiAyNS45IDE3LjIgNDEuNSAwIDE1LjgtNi40IDMwLjktMTcuNyA0MkwzMy40IDMzNS4xYy0xMS4xIDEwLjgtMTcuMyAyNS43LTE3LjMgNDEuMiAwIDM2LjggMzQuMSA2NC4yIDcwLjEgNTYuMmw2Mi4zLTEzLjhjNy43LTEuNyAxNS43LTIuNiAyMy42LTIuNiAzMi44IDAgNjQuMiAxNC42IDg1LjIgMzkuOGwzMC41IDM2LjZjMTAuNCAxMi40IDI1LjcgMTkuNiA0MS45IDE5LjYgMzAuMSAwIDU0LjUtMjQuNCA1NC41LTU0LjVsMC01MS4yYzAtNDEuNCAyNS40LTc4LjUgNjQtOTMuNWwyMi4yLTguNmMyNS4yLTkuOCA0MS44LTM0LjEgNDEuOC02MS4xIDAtMjYuNC0xNS45LTUwLjMtNDAuMy02MC41TDQyOSAxNjQuOGMtMzMuMi0xMy45LTU3LjYtNDMtNjUuNS03OC4xbC03LjktMzUuMmMtNi44LTMwLjEtMzMuNS01MS41LTY0LjMtNTEuNS0yMiAwLTQyLjYgMTEtNTQuOCAyOS40ek0xNjAgMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHpiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWJpYmxlIixpY29uOls0NDgsNTEyLFsiYmlibGUiXSwiZjY0NyIsIk05NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NkMwIDQzIDQzIDAgOTYgMEw0MDAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDIwLjktMTMuNCAzOC43LTMyIDQ1LjNsMCA2Ni43YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDUxMnptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDAgMC02NC0yNTYgMHpNMTkyIDgwbDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyIDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LG5XdD16YmUsbFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDNjIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDY0bDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwem02NCAxMjhsNjQgMCAwLTY0LTY0IDAgMCA2NHptMCA2NGwwLTY0LTY0IDAgMCA2NCA2NCAwem02NCAwbC02NCAwIDAgNjQgNjQgMCAwLTY0em0wIDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sY1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMiLGljb246WzUxMiw1MTIsWzk3OTRdLCJmMjIyIiwiTTMyMCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMzMiA0MDEuMiAzMiAzMDQgMTEwLjggMTI4IDIwOCAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yMDggNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sZFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcCIsaWNvbjpbNjQwLDUxMixbMTI4MTg3XSwiZjEwOSIsIk0xMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMjQwIDY0IDAgMC0yNDAgMzg0IDAgMCAyNDAgNjQgMCAwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJ6TTE5LjIgMzg0QzguNiAzODQgMCAzOTIuNiAwIDQwMy4yIDAgNDQ1LjYgMzQuNCA0ODAgNzYuOCA0ODBsNDg2LjQgMGM0Mi40IDAgNzYuOC0zNC40IDc2LjgtNzYuOCAwLTEwLjYtOC42LTE5LjItMTkuMi0xOS4yTDE5LjIgMzg0eiJdfSxDYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci14bWFyayIsaWNvbjpbNTc2LDUxMixbInVzZXItdGltZXMiXSwiZjIzNSIsIk0yNTQuMSAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNDYuMSA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zbDU5LjQgMHpNNTMwLjMgMTA4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjl6TTIyNC40IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LHVXdD1DYmUscFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWctdXNhIixpY29uOls0NDgsNTEyLFtdLCJmNzRkIiwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJsMCAxNiA2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjUgNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFsMCAzNi4xLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtMjAuMy05LTQxLjgtMTQuNy02My42LTE2LjlsMCAzMi4yYzE3LjQgMi4xIDM0LjQgNi43IDUwLjYgMTMuOWwxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDYyLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDYxLjktNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zbC02My41IDEzLjYgMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgMzMuNWMwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjQtMzcuOS0xOS04MS40LTIzLjctMTIyLjUtMTMuNEw2NCA0MDAgNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6bTgwIDk2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tMzIgNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LGhXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLW1pZGRsZS1maW5nZXIiLGljb246WzQ0OCw1MTIsWzEyODQwNV0sImY4MDYiLCJNMjMyIDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgMTY0LjJjLTguNS03LjYtMTkuNy0xMi4yLTMyLTEyLjItMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTU1LjdjLTIgMS40LTMuOSAzLTUuOCA0LjVMNTUgMjg0LjhDNDAuNCAyOTcgMzIgMzE1IDMyIDMzNEwzMiAzNzJjMCAzOCAxNi45IDc0IDQ2LjEgOTguM2w1LjQgNC41YzI4LjggMjQgNjUgMzcuMSAxMDIuNCAzNy4xTDMwNCA1MTJjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OC0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zLTEuOS0yNC44LTIyLjYtNDQuMy00Ny45LTQ0LjMtMTIuMyAwLTIzLjUgNC42LTMyIDEyLjJMMjcyIDQwYzAtMjIuMS0xNy45LTQwLTQwLTQweiJdfSxmV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9ydGFyLXBlc3RsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjVhNyIsIk01MDQuMyAxMS4xQzQ5My4zLTEuNiA0NzQuNS0zLjcgNDYxIDYuMkwyNTIuMyAxNjAgMzk3LjMgMTYwIDUwMi42IDU0LjZjMTEuOC0xMS44IDEyLjYtMzAuOCAxLjYtNDMuNXpNMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzAgODIuNSA0My40IDE0Ny43IDEyMy45IDE3Ni4yLTExLjEgMTMuOS0xOS40IDMwLjMtMjMuOSA0OC4xLTQuNCAxNy4xIDEwLjQgMzEuNyAyOC4xIDMxLjdsMTkyIDBjMTcuNyAwIDMyLjQtMTQuNiAyOC4xLTMxLjctNC41LTE3LjgtMTIuOC0zNC4xLTIzLjktNDguMSA4MC41LTI4LjYgMTIzLjktOTMuNyAxMjMuOS0xNzYuMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxOTJ6Il19LG1XdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtY291Z2giLGljb246WzUxMiw1MTIsW10sImUwNjEiLCJNOTYgNTEybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNmwxIDBjMjYgMCA0Ny0yMSA0Ny00NyAwLTExLTMuOS0yMS42LTEwLjktMzAuMUwyNzMuMyAyMDBDMjcxLjQgMTk3LjYgMjcwLjEgMTk0LjcgMjY5LjcgMTkxLjcgMjU0IDgzLjMgMTYwLjcgMCA0OCAwIDQwLjQgMCAzMi45IC40IDI1LjQgMS4xIDEwLjUgMi42IDAgMTUuOSAwIDMwLjlMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMHptMTYtMzIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTYzLjEgMjM3LjJsLTQxLjUtMy41Yy0xMi4yLTEtMjEuNi0xMS4yLTIxLjYtMjMuNCAwLTEwLjggNy4zLTIwLjIgMTcuOC0yMi44bDQwLjQtMTAuMWMxOS4yLTQuOCAzNy44IDkuNyAzNy44IDI5LjUgMCAxNy44LTE1LjIgMzEuOC0zMi45IDMwLjN6TTQ4MCAzMTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0tNDAgMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptLTY0IDQ4YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTEyOCAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTQ4MCA1MDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0tNDAtNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sZ1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1NTgiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA4Mi4xIDc1LjJDNDA5LjcgMjQ4LjEgNDAwIDI3NC45IDQwMCAzMDRsMCAyNC40Yy03LjMgNi42LTEzLjYgMTQuMi0xOC43IDIyLjdsLTM3LjMtMTIuNCAwIDk5LjcgMjQgMTkuMiAwIDM4LjNjMCAxMy41IDIuOCAyNi40IDcuOCAzOC4xTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek01NjAgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxUYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS10aHJlZS1xdWFydGVycyIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktNCJdLCJmMjQxIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0yMjQgMHoiXX0sYld0PVRiZSx2V3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnJhbmMtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTE4ZiIsIk04MCAzMkM2Mi4zIDMyIDQ4IDQ2LjMgNDggNjRsMCAyNTYtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC02NCAxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTQ0IDAgMC05NiAxNzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCAzMnoiXX0sJGJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbHRlci1jaXJjbGUtZG9sbGFyIixpY29uOls1NzYsNTEyLFsiZnVubmVsLWRvbGxhciJdLCJmNjYyIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzIuNSAyLjUgNS4zIDQuNSA4LjMgNi0yMS4yLTMwLjktMzMuNi02OC4zLTMzLjYtMTA4LjYgMC05OS40IDc1LjUtMTgxLjEgMTcyLjMtMTkxbDkwLjQtOTAuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNNDE2IDMyMGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00NS44IDBjLTUuNiAwLTEwLjIgNC42LTEwLjIgMTAuMiAwIDQuOSAzLjUgOS4xIDguMyAxMGw0NSA4LjJjMjAgMy42IDM0LjYgMjEuMSAzNC42IDQxLjUgMCAyMy4zLTE4LjkgNDIuMi00Mi4yIDQyLjJsLTUuOCAwIDAgOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1My44IDBjNS42IDAgMTAuMi00LjYgMTAuMi0xMC4yIDAtNC45LTMuNS05LjEtOC4zLTEwbC00NS04LjJjLTIwLTMuNi0zNC42LTIxLjEtMzQuNi00MS41IDAtMjIuNiAxNy43LTQxIDQwLTQyLjFsMC04LjF6Il19LHhXdD0kYmUseVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWVzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlZiIsIk01MTIgMjQwLjJsMCAxNS44LTUxMiAwYzAtMjAgMTAtMzguNyAyNi42LTQ5LjhMMjc0LjkgNDAuN2M4LjYtNS43IDE4LjYtOC43IDI4LjktOC43IDExNSAwIDIwOC4yIDkzLjIgMjA4LjIgMjA4LjJ6bTAgNjMuOGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTEyIDUxMiAweiJdfSxEYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWgiLGljb246WzUxMiw1MTIsWzk0MDUsImhvc3BpdGFsLXN5bWJvbCJdLCJmNDdlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem05Ni0zNDRsMCAxNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NC05NiAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDk2IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSx3V3Q9RGJlLGtXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wiLGljb246WzU3Niw1MTIsWzEyNzk3OV0sImY1NDkiLCJNMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjcuOS0xMTUuMWMxOC4zLTE2LjQgNDYtMTYuNCA2NC4yIDBMNDQ4IDEyOCA1MTIgMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTIyNCAzNzZsMCA4OCAxMjggMCAwLTg4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHptLTExMiA4YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek0yODggMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4eiJdfSxTV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1maXZlIixpY29uOls0NDgsNTEyLFs5ODYwXSwiZjUyMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTk2IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0yMjQgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQtNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMTYwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sX1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvcm5hZG8iLGljb246WzQ0OCw1MTIsWzEyNzc4Nl0sImY3NmYiLCJNMCAzMkwwIDQ1LjZDMCA2Mi43IDEuNyA3OS42IDUgOTZsMzUyLjggMGMzLjItNi45IDcuNS0xMy4zIDEzLTE4LjhsMzguNi0zOC42YzQuMi00LjIgNi42LTEwIDYuNi0xNiAwLTEyLjUtMTAuMS0yMi42LTIyLjYtMjIuNkwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMnpNMzU1LjcgMTQ0bC0zMzYgMGMxMi40IDI5LjcgMzAuMiA1Ni44IDUyLjcgODBsMzM5LjYgMC00Ny4yLTYyLjljLTMuOS01LjItNy0xMS05LjItMTcuMXpNMjQyLjYgMzM0LjdjOC4yIDQuOCAxNS44IDEwLjcgMjIuNSAxNy4zTDQ0NSAzNTJjMi05LjggMy0xOS45IDMtMzAuMSAwLTE3LjEtMi45LTM0LTguNi00OS45TDEzNiAyNzIgMjQyLjYgMzM0Ljd6TTI5NC4zIDQwMGM1LjMgMTcgNi41IDM1LjIgMy42IDUzbC01LjkgMzUuN2MtMiAxMi4yIDcuNCAyMy40IDE5LjggMjMuNCA1LjMgMCAxMC40LTIuMSAxNC4yLTUuOWw3OC4yLTc4LjJjOC41LTguNSAxNS44LTE3LjggMjEuOS0yNy45bC0xMzEuOCAweiJdfSxMYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXIiLGljb246WzU3Niw1MTIsWyJmaWdodGVyLWpldCJdLCJmMGZiIiwiTTQ5Ni4yIDIwNi44Yy0xMC43LTQuNS0yMi4yLTYuOC0zMy44LTYuOEwzNjIgMjAwIDI0OCA0OCAyOTYgNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgMCAyOTYgMEwxNTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4IDAgMCAxNTItNTQuNCAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNkwxNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDg4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA4OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQuMyAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgNTQuNCAwIDAgMTUyLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAxMTQtMTUyIDEwMC40IDBjMTEuNiAwIDIzLjEtMi4zIDMzLjgtNi44bDY1LTI3LjFjOC45LTMuNyAxNC44LTEyLjUgMTQuOC0yMi4ycy01LjgtMTguNC0xNC44LTIyLjJsLTY1LTI3LjF6Il19LE1XdD1MYmUseld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM4NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDYuMy0xLjMgMTIuMi0zLjQgMTcuNyAyMC40IDUuNSAzNS40IDI0LjEgMzUuNCA0Ni4zIDAgOS4xLTIuNiAxNy42LTcgMjQuOSAyMi4yIDQuMiAzOSAyMy43IDM5IDQ3LjEgMCAxOS43LTExLjkgMzYuNi0yOC45IDQ0IDE3IDcuNCAyOC45IDI0LjMgMjguOSA0NCAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDAgMjguMiA3MC40YzIuNSA2LjMgMy44IDEzLjEgMy44IDE5LjlsMCA0LjJjMCAyNy4zLTIyLjEgNDkuNC00OS40IDQ5LjQtMTguNyAwLTM1LjgtMTAuNi00NC4yLTI3LjNMMTcwLjEgMzU2LjNjLTYuNy0xMy4zLTEwLjEtMjgtMTAuMS00Mi45bDAtMTg2LjZjMC0xOS40IDguOS0zNy44IDI0LTUwbDEyLjItOS43QzIyNC42IDQ0LjQgMjU5LjggMzIgMjk2LjEgMzJMMzg0IDMyek04MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHoiXX0sQ1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyb29tIixpY29uOls1NzYsNTEyLFsxMjk1MjldLCJmNTFhIiwiTTU2Ni42IDU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTItMzQuNy0zNC43Yy00LjItNC4yLTEwLTYuNi0xNi02LjYtMTIuNSAwLTIyLjYgMTAuMS0yMi42IDIyLjZsMCAyOS4xIDEwOC4zIDEwOC4zIDI5LjEgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0zNC43LTM0LjcgMTkyLTE5MnpNMzQxLjEgMzUzLjRMMjIyLjYgMjM0LjljLTQyLjctMy43LTg1LjIgMTEuNy0xMTUuOCA0Mi4zbC04IDhjLTIyLjMgMjIuMy0zNC44IDUyLjUtMzQuOCA4NCAwIDYuOCA3LjEgMTEuMiAxMy4yIDguMmw1MS4xLTI1LjVjNS0yLjUgOS41IDQuMSA1LjQgNy45TDcuMyA0NzMuNEMyLjcgNDc3LjYgMCA0ODMuNiAwIDQ4OS45IDAgNTAyLjEgOS45IDUxMiAyMi4xIDUxMmwxNzMuMyAwYzM4LjggMCA3NS45LTE1LjQgMTAzLjQtNDIuOCAzMC42LTMwLjYgNDUuOS03My4xIDQyLjMtMTE1Ljh6Il19LEViZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWltcG9ydCIsaWNvbjpbMzg0LDUxMixbImFycm93LXJpZ2h0LXRvLWZpbGUiXSwiZjU2ZiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxODIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTE4Mi4xIDAgMCA5NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2eiJdfSxUV3Q9RWJlLFBiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1dGVuc2lscyIsaWNvbjpbNTEyLDUxMixbMTI3ODYwLDYxNjg1LCJjdXRsZXJ5Il0sImYyZTciLCJNNjMuOSAxNC40QzYzLjEgNi4yIDU2LjIgMCA0OCAwcy0xNS4xIDYuMi0xNiAxNC4zTDE3LjkgMTQ5LjdjLTEuMyA2LTEuOSAxMi4xLTEuOSAxOC4yIDAgNDUuOSAzNS4xIDgzLjYgODAgODcuN0w5NiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNC40YzQ0LjktNC4xIDgwLTQxLjggODAtODcuNyAwLTYuMS0uNi0xMi4yLTEuOS0xOC4yTDIyMy45IDE0LjNDMjIzLjEgNi4yIDIxNi4yIDAgMjA4IDBzLTE1LjEgNi4yLTE1LjkgMTQuNEwxNzguNSAxNDkuOWMtLjYgNS43LTUuNCAxMC4xLTExLjEgMTAuMS01LjggMC0xMC42LTQuNC0xMS4yLTEwLjJMMTQzLjkgMTQuNkMxNDMuMiA2LjMgMTM2LjMgMCAxMjggMHMtMTUuMiA2LjMtMTUuOSAxNC42TDk5LjggMTQ5LjhjLS41IDUuOC01LjQgMTAuMi0xMS4yIDEwLjItNS44IDAtMTAuNi00LjQtMTEuMS0xMC4xTDYzLjkgMTQuNHpNNDQ4IDBDNDMyIDAgMzIwIDMyIDMyMCAxNzZsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSwkV3Q9UGJlLERXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1iYWRnZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJjMSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwem05NiAzNTJsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDQ4Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE1MiA2NGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxMV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BpZGVyIixpY29uOls1MTIsNTEyLFsxMjgzNzVdLCJmNzE3IiwiTTM2OS4zLTMxYzExLjktMy41IDI0LjQgMi43IDI5IDEzLjlsLjggMi4zIDQwIDEzNmMyLjUgOC40IC4xIDE3LjUtNi4xIDIzLjdsLTY0LjEgNjQuMSA3Ni40LTIwLjggMTkuOS01OS44IC45LTIuM2M1LTExLjEgMTcuNy0xNi44IDI5LjUtMTIuOSAxMS44IDMuOSAxOC41IDE2LjEgMTUuOCAyOGwtLjcgMi40LTI0IDcyYy0yLjUgNy42LTguNyAxMy40LTE2LjUgMTUuNmwtOTEuMSAyNC44IDkxLjEgMjQuOGM3LjcgMi4xIDEzLjkgOCAxNi41IDE1LjZsMjQgNzIgLjcgMi40YzIuNyAxMS45LTQuMSAyNC4xLTE1LjggMjgtMTEuOCAzLjktMjQuNS0xLjgtMjkuNS0xMi45bC0uOS0yLjMtMTkuOS01OS44LTc2LjQtMjAuOCA2NC4xIDY0LjFjNi4xIDYuMSA4LjUgMTUuMSA2LjIgMjMuNGwtNDAgMTQ0LS44IDIuM2MtNC40IDExLjMtMTYuOCAxNy43LTI4LjggMTQuNC0xMi0zLjMtMTkuMy0xNS4yLTE3LjItMjcuMmwuNS0yLjQgMzYuMi0xMzAuNS0zNy4yLTM3LjJDMzUxIDQwNiAzMDguNCA0NDggMjU2IDQ0OHMtOTUtNDItOTYtOTQuMWwtMzcgMzcgMzYgMTIyLjMgLjYgMi40YzIuMiAxMS45LTQuOSAyMy45LTE2LjggMjcuNC0xMS45IDMuNS0yNC40LTIuNy0yOS0xMy45bC0uOC0yLjMtNDAtMTM2Yy0yLjUtOC40LS4xLTE3LjUgNi4xLTIzLjhsNjQuMS02NC4xLTc2LjQgMjAuOC0xOS45IDU5LjgtLjkgMi4zYy01IDExLjEtMTcuNyAxNi44LTI5LjUgMTIuOXMtMTguNS0xNi4xLTE1LjgtMjhsLjctMi40IDI0LTcyYzIuNS03LjYgOC43LTEzLjQgMTYuNS0xNS42bDkxLjEtMjQuOC05MS4xLTI0LjhjLTcuNy0yLjEtMTMuOS04LTE2LjUtMTUuNmwtMjQtNzItLjctMi40Yy0yLjctMTEuOSA0LjEtMjQuMSAxNS44LTI4czI0LjUgMS44IDI5LjUgMTIuOWwuOSAyLjMgMTkuOSA1OS44IDc2LjQgMjAuOC02NC4xLTY0LjFjLTYuMi02LjItOC41LTE1LjMtNi4xLTIzLjdsNDAtMTM2IC44LTIuM2M0LjYtMTEuMyAxNy4xLTE3LjQgMjktMTMuOSAxMS45IDMuNSAxOSAxNS41IDE2LjggMjcuNGwtLjYgMi40LTM2IDEyMi4zIDUzIDUzYzEtNDMuMyAzNi40LTc4LjEgNzkuOS03OC4xczc4LjkgMzQuOCA3OS45IDc4LjJsNTMuMS01My4xLTM2LTEyMi4zLS42LTIuNGMtMi4yLTEyIDQuOS0yMy45IDE2LjgtMjcuNHoiXX0sRVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1yZXRybyIsaWNvbjpbMzg0LDUxMixbXSwiZTUyNyIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6bTgwIDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem04IDE5MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHptNjQtNzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0ek0xNjggNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sSWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25zLXBvc3QiLGljb246WzUxMiw1MTIsWyJtYXAtc2lnbnMiXSwiZjI3NyIsIk0yNTYuNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwIDAgNjQtMTUzLjQgMGMtNC4yIDAtOC4zIDEuNy0xMS4zIDQuN2wtNDggNDhjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQ4IDQ4YzMgMyA3LjEgNC43IDExLjMgNC43bDE1My40IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC02NCAxNTMuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNDgtNDhjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTQ4LTQ4Yy0zLTMtNy4xLTQuNy0xMS4zLTQuN2wtMTUzLjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxQV3Q9SWJlLElXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncm91cC1hcnJvd3Mtcm90YXRlIixpY29uOls1MTIsNTEyLFtdLCJlNGY2IiwiTTM3LjYgMTIyLjNjLTExLjUgMTguNy0yMC42IDM5LTI3IDYwLjUtNSAxNi45IDQuNiAzNC44IDIxLjUgMzkuOHMzNC44LTQuNiAzOS44LTIxLjVjMTguNC02MS45IDY3LjMtMTEwLjggMTI5LjItMTI5LjIgMTYuOS01IDI2LjYtMjIuOSAyMS41LTM5LjhTMTk5LjggNS42IDE4Mi45IDEwLjZDMTYxLjQgMTcgMTQxLjEgMjYuMSAxMjIuMyAzNy42IDExMi4zIDE1LjQgODkuOSAwIDY0IDAgMjguNyAwIDAgMjguNyAwIDY0IDAgODkuOSAxNS40IDExMi4zIDM3LjYgMTIyLjN6bTQzNi43IDBjMjIuMi0xMCAzNy42LTMyLjQgMzcuNi01OC4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI1LjkgMC00OC4zIDE1LjQtNTguMyAzNy42LTE4LjctMTEuNS0zOS0yMC42LTYwLjUtMjctMTYuOS01LTM0LjggNC42LTM5LjggMjEuNXM0LjYgMzQuOCAyMS41IDM5LjhjNjEuOSAxOC40IDExMC44IDY3LjMgMTI5LjIgMTI5LjIgNSAxNi45IDIyLjkgMjYuNiAzOS44IDIxLjVzMjYuNi0yMi45IDIxLjUtMzkuOGMtNi40LTIxLjUtMTUuNS00MS44LTI3LTYwLjV6TTUxMiA0NDhjMC0yNS45LTE1LjQtNDguMy0zNy42LTU4LjMgMTEuNS0xOC43IDIwLjYtMzkgMjctNjAuNSA1LTE2LjktNC42LTM0LjgtMjEuNS0zOS44cy0zNC44IDQuNi0zOS44IDIxLjVjLTE4LjQgNjEuOS02Ny4zIDExMC44LTEyOS4yIDEyOS4yLTE2LjkgNS0yNi42IDIyLjktMjEuNSAzOS44czIyLjkgMjYuNiAzOS44IDIxLjVjMjEuNS02LjQgNDEuOC0xNS41IDYwLjUtMjcgMTAgMjIuMiAzMi40IDM3LjYgNTguMyAzNy42IDM1LjMgMCA2NC0yOC43IDY0LTY0ek0zNy42IDM4OS43Yy0yMi4yIDEwLTM3LjYgMzIuNC0zNy42IDU4LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjUuOSAwIDQ4LjMtMTUuNCA1OC4zLTM3LjYgMTguNyAxMS41IDM5IDIwLjYgNjAuNSAyNyAxNi45IDUgMzQuOC00LjYgMzkuOC0yMS41cy00LjYtMzQuOC0yMS41LTM5LjhjLTYxLjktMTguNC0xMTAuOC02Ny4zLTEyOS4yLTEyOS4yLTUtMTYuOS0yMi45LTI2LjYtMzkuOC0yMS41UzUuNiAzMTIuMiAxMC42IDMyOS4xYzYuNCAyMS41IDE1LjUgNDEuOCAyNyA2MC41ek0yNTYgMTkyYzE1LjYgMCAzMCA1LjYgNDEuMSAxNC45bC0xNS4zIDE1LjNjLTYuNiA2LjYtMS45IDE3LjggNy40IDE3LjhsNjAuNSAwYzUuNyAwIDEwLjQtNC43IDEwLjQtMTAuNGwwLTYwLjVjMC05LjMtMTEuMi0xMy45LTE3LjgtNy40bC0xMS4yIDExLjJjLTE5LjgtMTcuOS00Ni4yLTI4LjktNzUuMS0yOC45LTQzLjYgMC04MS4zIDI0LjktOTkuOCA2MS4xLTYgMTEuOC0xLjQgMjYuMyAxMC40IDMyLjNzMjYuMyAxLjQgMzIuMy0xMC40YzEwLjYtMjAuOCAzMi4yLTM0LjkgNTctMzQuOXptNTguNiA5My4xYy0xMC42IDIwLjgtMzIuMiAzNC45LTU3IDM0LjktMTUuNyAwLTMwLTUuNi00MS4xLTE0LjlsMTUuMy0xNS4zYzYuNi02LjYgMS45LTE3LjgtNy40LTE3LjhMMTY0IDI3MmMtNS43IDAtMTAuNCA0LjctMTAuNCAxMC40bDAgNjAuNWMwIDkuMyAxMS4yIDEzLjkgMTcuOCA3LjRsMTEuMi0xMS4yYzE5LjggMTcuOSA0Ni4yIDI4LjkgNzUuMSAyOC45IDQzLjYgMCA4MS4zLTI0LjkgOTkuOC02MS4xIDYtMTEuOCAxLjQtMjYuMy0xMC40LTMyLjNzLTI2LjMtMS40LTMyLjMgMTAuNHoiXX0sQVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1zcGxpdC11cC1hbmQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYyIsIk0zNDIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNDEuNC00MS40IDAgMTk1LjljLTE4LjgtMTAuOS00MC43LTE3LjEtNjQtMTcuMWwtMTE0LjcgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDMyMCAyMjQgMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSxOV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbC1kcmlwIixpY29uOls1NzYsNTEyLFtdLCJmNTc2IiwiTTMwOS43IDcxLjZsLTY0LjQgNjQuNCAzMy40IDMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTMzLjQtMzMuNC05Ni40IDk2LjRjLTIuOSAyLjktNS4xIDYuNS02LjMgMTAuM2wzMjEuNSAwIDUzLjctNTMuN2M0LjktNC45IDcuNi0xMS41IDcuNi0xOC4zcy0yLjctMTMuNS03LjYtMTguM0wzNDYuMyA3MS42QzM0MS41IDY2LjcgMzM0LjkgNjQgMzI4IDY0cy0xMy41IDIuNy0xOC4zIDcuNnpNNTguMyAyMzIuNGw5Ni40LTk2LjQtNDkuNC00OS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDIwMCA5MC43IDI2NC40IDI2LjNDMjgxLjMgOS41IDMwNC4xIDAgMzI4IDBzNDYuNyA5LjUgNjMuNiAyNi4zTDUxNy43IDE1Mi40QzUzNC41IDE2OS4zIDU0NCAxOTIuMSA1NDQgMjE2cy05LjUgNDYuNy0yNi4zIDYzLjZMMzExLjYgNDg1LjdDMjk0LjcgNTAyLjUgMjcxLjkgNTEyIDI0OCA1MTJzLTQ2LjctOS41LTYzLjYtMjYuM0w1OC4zIDM1OS42QzQxLjUgMzQyLjcgMzIgMzE5LjkgMzIgMjk2czkuNS00Ni43IDI2LjMtNjMuNnpNNTEyIDU0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNS4yIDMyLjYtNzkuNiA1MS4yLTEwOC43IDYtOS40IDE5LjUtOS40IDI1LjUgMCAxOC43IDI5LjEgNTEuMiA4My41IDUxLjIgMTA4LjcgMCAzNS4zLTI4LjcgNjQtNjQgNjR6Il19LFJXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtaGVhcnQiLGljb246WzUxMiw1MTIsW10sImU1NzQiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTI0OS42IDE4My41bDYuNCA4LjUgNi40LTguNWMxMS4xLTE0LjggMjguNS0yMy41IDQ2LjktMjMuNSAzMi40IDAgNTguNyAyNi4zIDU4LjcgNTguN2wwIDUuM2MwIDQ5LjEtNjUuOCA5OC4xLTk2LjUgMTE4LjMtOS41IDYuMi0yMS41IDYuMi0zMC45IDAtMzAuNy0yMC4yLTk2LjUtNjkuMy05Ni41LTExOC4zbDAtNS4zYzAtMzIuNCAyNi4zLTU4LjcgNTguNy01OC43IDE4LjUgMCAzNS45IDguNyA0Ni45IDIzLjV6Il19LEFiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2tpaW5nLW5vcmRpYyIsaWNvbjpbNTc2LDUxMixbInNraWluZy1ub3JkaWMiXSwiZjdjYSIsIk00MjQuOCAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptOTkuOCAxOTMuN2M3LjYgMTUuMiAxLjkgMzMuNi0xMi42IDQybDAgMTgwLjMtMzIgMCAwLTE2NC4yLTEwLjEgNWMtMjcuNCAxMy43LTYwLjcgNi4xLTc5LjQtMTguMmwtMTkuNi0yNS41LTM5LjUgNjguOCAyNC44IDEyLjRjMjkuNSAxNC43IDQyLjkgNDkuNSAzMS4xIDgwLjJsLTI4LjIgNzMuNCAxNDkuNCAwYzcuOSAwIDE1LjYtMi4zIDIyLjItNi43bDcuOS01LjNjMTEtNy40IDI1LjktNC40IDMzLjMgNi43czQuNCAyNS45LTYuNyAzMy4zbC03LjkgNS4zQzU0MyA1MDYuOSA1MjYgNTEyIDUwOC42IDUxMmwtMTg5LjEgMGMtLjUgMC0xIDAtMS41IDBMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDg4IDBjMC04LjIgMy4xLTE2LjQgOS40LTIyLjZsNzQuMS03NC4xIDEwLjItMzUuOWMxMS4zIDE4LjMgMjcuNyAzMy44IDQ4LjQgNDQuMmw0LjggMi40LTEuOSA2LjhjLTMgMTAuNS04LjYgMjAtMTYuMyAyNy43bC01MS41IDUxLjUgMTAxLjMgMCAzNy4xLTk2LjQtNTUuNi0yNy44QzIzMC40IDMxOSAyMTUuMyAyNjcgMjM5LjMgMjI3LjFsMzcuNy02Mi43LTI3LjctNy43Yy05LTIuNS0xOC4xIDMuMi0yMCAxMi4zbC01LjkgMjkuM2MtMy4xIDE1LjYtMTcuMSAyNi4zLTMyLjUgMjUuN2wtMTMwIDIwOC0zNy43IDAgMTQwLjYtMjI1Yy0zLjQtNi4zLTQuNi0xMy44LTMuMS0yMS4zbDUuOS0yOS4zYzkuMS00NS42IDU1LjEtNzMuOCA5OS45LTYxLjRsMzIuNSA5YzQ2LjcgMTMgODggNDAuOCAxMTcuNiA3OS4zbDI0LjkgMzIuMyA0MC40LTIwLjJjMTUuOC03LjkgMzUtMS41IDQyLjkgMTQuM3oiXX0sT1d0PUFiZSxOYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNoZWNrIixpY29uOls0NDgsNTEyLFs5NzQ1LDk5ODksNjE1MTAsImNoZWNrLXNxdWFyZSJdLCJmMTRhIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTM0MiAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzE1LjIgMTM3IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LEZXdD1OYmUsUmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdGgiLGljb246WzUxMiw1MTIsWzEyODcwNSwiYmF0aHR1YiJdLCJmMmNkIiwiTTk2IDc3LjNjMC03LjMgNS45LTEzLjMgMTMuMy0xMy4zIDMuNSAwIDYuOSAxLjQgOS40IDMuOWwxNC45IDE0LjljLTMuNiA5LjEtNS41IDE4LjktNS41IDI5LjIgMCAxOS45IDcuMiAzOCAxOS4yIDUyLTUuMyA5LjItNCAyMS4xIDMuOCAyOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwyODkgODljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjktNy44LTcuOS0xOS44LTkuMS0yOS0zLjgtMTQtMTItMzIuMS0xOS4yLTUyLTE5LjItMTAuMyAwLTIwLjIgMi0yOS4yIDUuNUwxNjMuOSAyMi42QzE0OS40IDguMSAxMjkuNyAwIDEwOS4zIDAgNjYuNiAwIDMyIDM0LjYgMzIgNzcuM0wzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA0OGMwIDI4LjQgMTIuNCA1NCAzMiA3MS42TDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYgMjU2IDAgMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDAuNGMxOS42LTE3LjYgMzItNDMuMSAzMi03MS42bDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMjU2IDk2IDc3LjN6Il19LEJXdD1SYmUsSFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJpc2hvcCIsaWNvbjpbMzIwLDUxMixbOTgyMV0sImY0M2EiLCJNNjQgMzg0TDQ4LjMgMzY4LjNDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTA2LjcgNjQgOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyUzc4LjMgMCA5NiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC43IDAgNDcuNiA1Ny4xLTg1LjkgODUuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDgyLjMtODIuM2MxOC43IDI3LjMgMjguNyA1OS43IDI4LjcgOTMgMCA0My43LTE3LjQgODUuNy00OC4zIDExNi42TDI1NiAzODQgMzEyLjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMMzUuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDY0IDM4NHoiXX0sT2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbi1ib3R0bGUtbWVkaWNhbCIsaWNvbjpbMzg0LDUxMixbInByZXNjcmlwdGlvbi1ib3R0bGUtYWx0Il0sImY0ODYiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJ6TTMyIDE0NGwzMjAgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0ek0xNjAgMjQ4bDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxxV3Q9T2JlLEZiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcmF3LXBvbHlnb24iLGljb246WzUxMiw1MTIsWzU4MDU1LCJ2ZWN0b3ItcG9seWdvbiJdLCJmNWVlIiwiTTY0IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDI3My4xIDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM0LTI2LjUgNjEuOC02MCA2My45bC0yLjEgMi45LTcxLjUgOTkuMWMzLjYgOCA1LjYgMTYuOSA1LjYgMjYuMnMtMiAxOC4yLTUuNiAyNi4ybDIuMiAzLjEgNjkuMyA5NiAyLjEgMi45YzMzLjUgMi4xIDYwIDI5LjkgNjAgNjMuOSAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTI3My4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjFDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDB6TTM5NC4yIDQxMy40bC02NS41LTkwLjYtMi4yLTMuMWMtMi4xIC4yLTQuMyAuMy02LjUgLjMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMyLjIgMCA0LjQgLjEgNi41IC4zbDY3LjctOTMuN2MtLjYtLjktMS4xLTEuNy0xLjYtMi42TDExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAyNzMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjczLjEgMGMuNS0uOSAxLjEtMS44IDEuNi0yLjZ6Il19LGpXdD1GYmUsVld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImktY3Vyc29yIixpY29uOlsyNTYsNTEyLFtdLCJmMjQ2IiwiTS4xIDI5LjNDLTEuNCA0NyAxMS43IDYyLjQgMjkuMyA2My45bDggLjdDNzAuNSA2Ny4zIDk2IDk1IDk2IDEyOC4zbDAgOTUuNy0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA5NS43YzAgMzMuMy0yNS41IDYxLTU4LjcgNjMuOGwtOCAuN0MxMS43IDQ0OS42LTEuNCA0NjUgLjEgNDgyLjdTMTcgNTEzLjQgMzQuNyA1MTEuOWw4LS43YzM0LjEtMi44IDY0LjItMTguOSA4NS40LTQyLjkgMjEuMiAyNCA1MS4yIDQwIDg1LjQgNDIuOWw4IC43YzE3LjYgMS41IDMzLjEtMTEuNiAzNC41LTI5LjJzLTExLjYtMzMuMS0yOS4yLTM0LjVsLTgtLjdDMTg1LjUgNDQ0LjcgMTYwIDQxNyAxNjAgMzgzLjdsMC05NS43IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC05NS43YzAtMzMuMyAyNS41LTYxIDU4LjctNjMuOGw4LS43YzE3LjYtMS41IDMwLjctMTYuOSAyOS4yLTM0LjVTMjM5LTEuNCAyMjEuMyAuMWwtOCAuN2MtMzQuMSAyLjgtNjQuMiAxOC45LTg1LjQgNDIuOS0yMS4yLTI0LTUxLjItNDAtODUuNC00Mi45bC04LS43QzE3LTEuNCAxLjYgMTEuNyAuMSAyOS4zeiJdfSxVV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsW10sImU1MDAiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHoiXX0sV1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1kb2ciLGljb246WzUxMiw1MTIsW10sImU1NzMiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MC45IDI4Ni4yYzQuOCAxLjIgOS45IDEuOCAxNS4xIDEuOCAzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0IDQ0LjIgMGMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43bDcuMiAxNC4zIDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDAgMCA1MC43YzAgNy4zLTUuOSAxMy4zLTEzLjMgMTMuMy0xLjggMC0zLjYtLjQtNS4yLTEuMWwtOTguNy00Mi4zYy02LjYtMi44LTEwLjgtOS4zLTEwLjgtMTYuNCAwLTIuOCAuNi01LjUgMS45LThsMTUtMzB6TTE2MCAxNjBsNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDhjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sR1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyZWF0ZXItdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzMiIsIk0yMS45IDk0LjRDNS4xIDg4LjgtMy45IDcwLjYgMS43IDUzLjlTMjUuNCAyOC4xIDQyLjEgMzMuNmwzODQgMTI4QzQzOS4yIDE2NiA0NDggMTc4LjIgNDQ4IDE5MnMtOC44IDI2LTIxLjkgMzAuNGwtMzg0IDEyOGMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNUwzMTQuOCAxOTIgMjEuOSA5NC40ek00MTYgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMHoiXX0sS1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4iLGljb246WzUxMiw1MTIsWzYyMTM1XSwiZjJiNiIsIk02NC40IDE3NS44TDI1NiAzMy45IDQ0Ny42IDE3NS44IDI4OS41IDI5M2MtOS43IDcuMi0yMS40IDExLTMzLjUgMTFzLTIzLjgtMy45LTMzLjUtMTFMNjQuNCAxNzUuOHpNMjU2LTMyYy0xMi4xIDAtMjMuOCAzLjktMzMuNSAxMUwyNS45IDEyNC43QzkuNiAxMzYuOCAwIDE1NS44IDAgMTc2LjFMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMzkuOWMwLTIwLjMtOS42LTM5LjQtMjUuOS01MS40TDI4OS41LTIxYy05LjctNy4yLTIxLjQtMTEtMzMuNS0xMXoiXX0sWVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW5kIixpY29uOls1MTIsNTEyLFtdLCJlNTJkIiwiTTExMi40IDE3OS4yQzE0MiAxMjcuNyAxOTYuOCA5NiAyNTYuMiA5NnMxMTQuMiAzMS43IDE0My45IDgzLjJMNTA4LjcgMzY4YzEyLjMgMjEuMy0zLjEgNDgtMjcuNyA0OEwzMS41IDQxNmMtMjQuNiAwLTQwLTI2LjYtMjcuNy00OEwxMTIuNCAxNzkuMnoiXX0sWld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvaWNlbWFpbCIsaWNvbjpbNjQwLDUxMixbXSwiZjg5NyIsIk0xNDQgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0yNjMuOCAzMjBjMTUuMy0yMi45IDI0LjItNTAuNCAyNC4yLTgwIDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzAgMTYwLjUgMCAyNDAgNjQuNSAzODQgMTQ0IDM4NGwzNTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFM1NzUuNSA5NiA0OTYgOTYgMzUyIDE2MC41IDM1MiAyNDBjMCAyOS42IDguOSA1Ny4xIDI0LjIgODBsLTExMi41IDB6TTQ5NiAxNjBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6Il19LFhXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZXN0IixpY29uOls0NDgsNTEyLFtdLCJlMDg1IiwiTTIwMCA0NjRsMC0xNzAuMWMwLTMuOS0uNS03LjgtMS40LTExLjZMMTQ0LjQgNjUuNEMxNjIuMSA3Ny4yIDE4OC4yIDg4IDIyNCA4OHM2MS45LTEwLjggNzkuNi0yMi42TDI0OS40IDI4Mi4zYy0xIDMuOC0xLjQgNy43LTEuNCAxMS42TDI0OCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xOTMuNWMwLTkuNS0yLjgtMTguNy04LjEtMjYuNmwtNDcuOS03MS44Yy01LjMtNy45LTguMS0xNy4xLTguMS0yNi42TDM4NCA0OGMwLTI2LjUtMjEuNS00OC00OC00OGwtMy41IDBjLS4zIDAtLjYgMC0xIDAtLjYgMC0xLjIgMC0xLjggMC0xOC44IDAtMzQuMSA5LjctNDQuMSAxOC44LTkuMyA4LjQtMjguNSAyMS4yLTYxLjcgMjEuMnMtNTIuNC0xMi44LTYxLjctMjEuMmMtMTAtOS4xLTI1LjMtMTguOC00NC4xLTE4LjgtLjYgMC0xLjIgMC0xLjggMC0uMyAwLS42IDAtMSAwTDExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgOTcuNWMwIDkuNS0yLjggMTguNy04LjEgMjYuNkw4LjEgMjQzLjlDMi44IDI1MS44IDAgMjYxLjEgMCAyNzAuNUwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHoiXX0sUVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF1ZGlvLWRlc2NyaXB0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmMjllIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTk2IDk2bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCA0OCAwIDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNGMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTQ4IDMybDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDggMHptMTUyLTk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtNDhjMC0zOS44LTMyLjItNzItNzItNzJsLTQ4IDB6bTQ4IDE0NGwtMjQgMCAwLTk2IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sSld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InciLGljb246WzU3Niw1MTIsWzExOV0sIjU3IiwiTTIwLjggMzRjMTYuNS02LjIgMzUgMi4yIDQxLjIgMTguN0wxNzIuMiAzNDYuNyAyNTcuMyA1NWM0LTEzLjcgMTYuNS0yMyAzMC43LTIzczI2LjcgOS40IDMwLjcgMjNMNDAzLjggMzQ2LjcgNTE0IDUyLjhjNi4yLTE2LjUgMjQuNi0yNC45IDQxLjItMTguN1M1ODAuMiA1OC43IDU3NCA3NS4ybC0xNDQgMzg0Yy00LjggMTIuOS0xNy40IDIxLjMtMzEuMiAyMC43cy0yNS43LTkuOC0yOS41LTIzTDI4OCAxNzguMyAyMDYuNyA0NTdjLTMuOSAxMy4yLTE1LjggMjIuNS0yOS41IDIzcy0yNi4zLTcuOC0zMS4yLTIwLjdMMiA3NS4yQy00LjIgNTguNyA0LjIgNDAuMiAyMC44IDM0eiJdfSxib2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWRyb3BwZXIiLGljb246WzUxMiw1MTIsWyJleWUtZHJvcHBlci1lbXB0eSIsImV5ZWRyb3BwZXIiXSwiZjFmYiIsIk0zNDEuNiAyOS4ybC0xMDEuNiAxMDEuNi05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTAxLjYtMTAxLjZjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNmwwIDQyLjQtMjYuNiAzOS45Yy04LjUgMTIuNy02LjggMjkuNiA0IDQwLjRzMjcuNyAxMi41IDQwLjQgNGwzOS45LTI2LjYgNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRsMTA5LjQtMTA5LjQtNDUuMy00NS4zLTEwOS40IDEwOS40Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN2wtMzYuMSAwIDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNHoiXX0sZUd0PWJvZSx0R3Q9Ym9lLHBoPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjcgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDU1IDU1IDU1LTU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNTUgNTUgNTUgNTVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNTUtNTUtNTUgNTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTUtNTUtNTUtNTVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxhR3Q9cGgsc0d0PXBoLGlHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbGVyIixpY29uOls2NDAsNTEyLFtdLCJlMDQxIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5Ni40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04TDk2IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgOTZ6bTQwOCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTEyIDEzNmwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xNzYtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI2NCA0MjRhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHoiXX0sdm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cmtpc2gtbGlyYS1zaWduIixpY29uOls0NDgsNTEyLFsidHJ5IiwidHVya2lzaC1saXJhIl0sImUyYmIiLCJNMTYwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDMuNiAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCA0Ni4xIDEyMS40LTM0LjdjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMTM0LjYgMzguNSAwIDE2Mi41IDcyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYuMi0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC00Ni4xLTI1LjQgNy4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMzguNi0xMSAwLTYxLjljMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHJHdD12b2Usb0d0PXZvZSxuR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sY2FubyIsaWNvbjpbNTEyLDUxMixbMTI3NzU1XSwiZjc3MCIsIk0xNjAgMTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE1LjcgMCAzMCA1LjYgNDEuMiAxNSAxMS4yLTE4LjYgMzEuNi0zMSA1NC44LTMxczQzLjYgMTIuNCA1NC44IDMxYzExLjEtOS40IDI1LjUtMTUgNDEuMi0xNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtMTQuNyAwLTI4LjMtNS0zOS4xLTEzLjNsLTMyIDQ4QzI3NS4zIDE4NyAyNjYgMTkyIDI1NiAxOTJzLTE5LjMtNS0yNC45LTEzLjNsLTMyLTQ4QzE4OC4zIDEzOSAxNzQuNyAxNDQgMTYwIDE0NHpNMTQ0IDM1Mmw0OC40LTI0LjJjMTAuMi01LjEgMjEuNi03LjggMzMtNy44IDE5LjYgMCAzOC40IDcuOCA1Mi4yIDIxLjZsMzIuNSAzMi41YzYuMyA2LjMgMTQuOSA5LjkgMjMuOCA5LjkgMTEuMyAwIDIxLjgtNS42IDI4LTE1bDkuNy0xNC42LTU5LTY2LjNjLTkuMS0xMC4yLTIyLjItMTYuMS0zNS45LTE2LjFsLTQxLjggMGMtMTMuNyAwLTI2LjggNS45LTM1LjkgMTYuMWwtNTkuOSA2Ny40IDQuNy0zLjV6bTE5LjQtOTUuOGMxOC4yLTIwLjUgNDQuMy0zMi4yIDcxLjgtMzIuMmw0MS44IDBjMjcuNCAwIDUzLjUgMTEuNyA3MS44IDMyLjJsMTUwLjIgMTY5YzguNSA5LjUgMTMuMiAyMS45IDEzLjIgMzQuNyAwIDI4LjgtMjMuNCA1Mi4yLTUyLjIgNTIuMkw1Mi4yIDUxMkMyMy40IDUxMiAwIDQ4OC42IDAgNDU5LjggMCA0NDcuMSA0LjcgNDM0LjcgMTMuMiA0MjUuMmwxNTAuMi0xNjl6Il19LGxHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLXNwYXJrbGVzIixpY29uOls1MTIsNTEyLFtdLCJmNzJiIiwiTTQ2NCA2LjFjOS41LTguNSAyNC04LjEgMzMgLjlsOCA4YzkgOSA5LjQgMjMuNSAuOSAzM2wtODUuOCA5NS45Yy0yLjYgMi45LTQuMSA2LjctNC4xIDEwLjdsMCAyMS40YzAgOC44LTcuMiAxNi0xNiAxNmwtMTUuOCAwYy00LjYgMC04LjkgMS45LTExLjkgNS4zTDEwMC43IDUwMC45Yy02LjMgNy4xLTE1LjMgMTEuMS0yNC44IDExLjEtOC44IDAtMTcuMy0zLjUtMjMuNS05LjhMOS43IDQ1OS43Yy02LjItNi4yLTkuNy0xNC43LTkuNy0yMy41IDAtOS41IDQtMTguNSAxMS4xLTI0LjhsMTExLjYtOTkuOGMzLjQtMyA1LjMtNy40IDUuMy0xMS45bDAtMjcuNmMwLTguOCA3LjItMTYgMTYtMTZsMzQuNiAwYzMuOSAwIDcuNy0xLjUgMTAuNy00LjFMNDY0IDYuMXpNNDMyIDI4OGMzLjYgMCA2LjcgMi40IDcuNyA1LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhsLTE0LjgtNTEuNy01MS43LTE0LjhjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01Ljh6TTg3LjcgNjkuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOEw1Ny41IDE2Ni41IDUuOCAxNTEuN2MtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHM2LjcgMi40IDcuNyA1Ljh6TTIwOCAwYzMuNyAwIDYuOSAyLjUgNy44IDYuMWw2LjggMjcuMyAyNy4zIDYuOGMzLjYgLjkgNi4xIDQuMSA2LjEgNy44cy0yLjUgNi45LTYuMSA3LjhsLTI3LjMgNi44LTYuOCAyNy4zYy0uOSAzLjYtNC4xIDYuMS03LjggNi4xcy02LjktMi41LTcuOC02LjFsLTYuOC0yNy4zLTI3LjMtNi44Yy0zLjYtLjktNi4xLTQuMS02LjEtNy44czIuNS02LjkgNi4xLTcuOGwyNy4zLTYuOCA2LjgtMjcuM2MuOS0zLjYgNC4xLTYuMSA3LjgtNi4xeiJdfSxjR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZSIsaWNvbjpbMzg0LDUxMixbXSwiZjEzMCIsIk0xOTIgMEMxMzkgMCA5NiA0MyA5NiA5NmwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTQ4IDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDE3MC43IDAgMTg0bDAgNDBjMCA5Ny45IDczLjMgMTc4LjcgMTY4IDE5MC41bDAgNDkuNS00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDkuNWM5NC43LTExLjggMTY4LTkyLjYgMTY4LTE5MC41bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCAzMDMuNSA0OCAyMjRsMC00MHoiXX0sZEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3duIixpY29uOls1NzYsNTEyLFsxMjgwODFdLCJmNTIxIiwiTTMxMyA4Ny4yYzkuMi03LjMgMTUtMTguNiAxNS0zMS4yIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMTIuNiA1LjkgMjMuOSAxNSAzMS4yTDE5NC42IDE5NC44Yy0xMCAxNS43LTMxLjMgMTkuNi00Ni4yIDguNEw4OC45IDE1OC43YzQuNS02LjQgNy4xLTE0LjMgNy4xLTIyLjcgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCAyMS44IDE3LjUgMzkuNiAzOS4yIDQwTDg3LjggMzkzLjVjNC43IDMxLjMgMzEuNiA1NC41IDYzLjMgNTQuNWwyNzMuOCAwYzMxLjcgMCA1OC42LTIzLjIgNjMuMy01NC41TDUyMC44IDE3NmMyMS43LS40IDM5LjItMTguMiAzOS4yLTQwIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgOC40IDIuNiAxNi4zIDcuMSAyMi43bC01OS40IDQ0LjZjLTE0LjkgMTEuMi0zNi4yIDcuMy00Ni4yLTguNEwzMTMgODcuMnoiXX0sdUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctdHVybi1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJlNTgwIiwiTS0uNSAxMTNsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAzNTAuMSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0YzAtNDguNi0zOS40LTg4LTg4LTg4bC0zNTAuMSAwIDMxLTMxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzgwLjktMi4zIDcxLjUgN0wtLjUgNzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45ek02MC4zIDI5Mi42TDM3LjEgNDc2Yy0yLjQgMTkuMSAxMi41IDM2IDMxLjcgMzZsMTU0LjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExNy40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45bDY4LjIgMTM2LjVjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w3MS45IDBjMTkuMyAwIDM0LjItMTYuOSAzMS43LTM2TDQ1Mi43IDI5Mi43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwyNzEuOSAxNjkuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUw3NS40IDI2OS4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6Il19LEJiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1mYXN0IixpY29uOls2NDAsNTEyLFsic2hpcHBpbmctZmFzdCJdLCJmNDhiIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYyMS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDY0MCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTMuMyAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTQ4LTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDE0NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTMTAuNyA5NiAyNCA5Nmw0MCAwek01NzYgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMjU2IDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxwR3Q9QmJlLEhiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXBlbiIsaWNvbjpbNjQwLDUxMixbInVzZXItZWRpdCJdLCJmNGZmIiwiTTI1Ni4xIDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Yy05OC41IDAtMTc4LjMgNzkuOC0xNzguMyAxNzguMyAwIDE2LjQgMTMuMyAyOS43IDI5LjcgMjkuN2wxOTYuNSAwIDEwLjktNTQuNWM0LjMtMjEuNyAxNS00MS42IDMwLjYtNTcuMmw2Ny4zLTY3LjNjLTI4LTE4LjMtNjEuNC0yOC45LTk3LjQtMjguOWwtNTkuNCAwek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LGhHdD1IYmUsZkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2xvY2siLGljb246WzU3Niw1MTIsW10sImY0ZmQiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzMuOSAwIDcuOSAuMSAxMS44IC40LTE2LjIgMjguMi0yNS41IDYwLjgtMjUuNSA5NS42IDAgNDEuOCAxMy40IDgwLjUgMzYgMTEyTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxtR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvd2VyIixpY29uOls1MTIsNTEyLFsxMjg3MDNdLCJmMmNjIiwiTTY0IDEzMS45YzAtMTkuOCAxNi4xLTM1LjkgMzUuOS0zNS45IDkuNSAwIDE4LjYgMy44IDI1LjQgMTAuNWwxNi4yIDE2LjJjLTIxIDM4LjktMTcuNCA4Ny41IDEwLjkgMTIzTDE1MSAyNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwzNDUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTEuMyAxLjNjLTM1LjUtMjguMy04NC4xLTMxLjktMTIzLTEwLjlMMTcwLjUgNjEuM0MxNTEuOCA0Mi41IDEyNi40IDMyIDk5LjkgMzIgNDQuNyAzMiAwIDc2LjcgMCAxMzEuOUwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzE2LjF6TTI1NiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzItMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxxYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDE2MGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0sZ0d0PXFiZSxqYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uIixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZCJdLCJmNTlmIiwiTTU3NiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEw0MTMuNSA3Ny41IDIzNC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM3MC44IDg4LjggNjQgOTkuOSA2NCAxMTJsMCAzNTJjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3My4zIDU3LjhjLTQuMy02LjQtOC41LTEzLjEtMTIuNi0xOS45LTExLTE4LjMtMjEuOS0zOS4zLTMwLTYxLjhsLTEwMS4yLTMzLjcgMC0yODQuNSAxMjggNDIuNyAwIDk5LjNjMzEtMzUuOCA3Ny01OC40IDEyOC01OC40IDIyLjYgMCA0NC4yIDQuNCA2NCAxMi41TDU3NiA0OHpNMzkyIDM0MS45YzAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOVMzOTIgMjc2LjggMzkyIDM0MS45eiJdfSxiR3Q9amJlLHZHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tZmFuY3kiLGljb246WzUxMiw1MTIsWzEyODM5NSwxMDAwMl0sImY1YWMiLCJNMzczLjUgMjcuMWMxNS0xNy4yIDM2LjctMjcuMSA1OS42LTI3LjEgNDMuNiAwIDc5IDM1LjQgNzkgNzkgMCAyMi44LTkuOSA0NC42LTI3LjEgNTkuNkwyODMuNyAzMTMuOCAyNzMgMzAzIDIwOSAyMzkgMTk4LjIgMjI4LjMgMzczLjUgMjcuMXpNMTYxLjEgMjU5QzE2MiAyNjAgMTg4IDI4NiAyMzkgMzM3bDEzLjkgMTMuOS0xNy4xIDc0LjJjLTMuOSAxNy4xLTE2LjkgMzAuNy0zMy44IDM1LjRsLTE2OS44IDQ3LjUgOTIuMy05Mi4zYzEuMiAuMSAyLjMgLjIgMy41IC4yIDE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJjMCAxLjIgLjEgMi40IC4yIDMuNUwzLjkgNDc5LjggNTEuNSAzMTBjNC43LTE2LjkgMTguMy0yOS45IDM1LjQtMzMuOEwxNjEuMSAyNTl6Il19LHhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJldXJvLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjQsImV1ciIsImV1cm8iXSwiZjE1MyIsIk03My4zIDE5MkMxMDAuOCA5OS41IDE4Ni41IDMyIDI4OCAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy02NS42IDAtMTIyIDM5LjUtMTQ2LjcgOTZMMjcyIDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQzLjIgMGMtLjUgNS4zLS44IDEwLjYtLjggMTZzLjMgMTAuNyAuOCAxNkwyNzIgMjcyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMzAuNyAwYzI0LjcgNTYuNSA4MS4xIDk2IDE0Ni43IDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTEwMS41IDAtMTg3LjItNjcuNS0yMTQuNy0xNjBMNDAgMzIwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0LjYgMGMtLjctMTAuNS0uNy0yMS41IDAtMzJMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDMzLjMgMHoiXX0seEd0PXhvZSx5R3Q9eG9lLHdHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1MGIiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjIgNDcuMi0xNzUuOSAxMTQuOC01LTEuOC0xMC41LTIuOC0xNi4xLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MC45IDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjIgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek01NTUuMyAzNDAuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42eiJdfSxrR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlyYS1zaWduIixpY29uOlszODQsNTEyLFs4MzU2XSwiZjE5NSIsIk04NC45IDI1NmwtMjguNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExLjYgMEM1My4yIDEyNC43IDExNi44IDQyIDIwNy42IDQybDguMiAwYzMzLjYgMCA2Ni4yIDExLjMgOTIuNSAzMi4ybDE2LjEgMTIuN2MxMy45IDExIDE2LjIgMzEuMSA1LjIgNDVzLTMxLjEgMTYuMi00NSA1LjJsLTE2LjEtMTIuN2MtMTUtMTEuOS0zMy42LTE4LjQtNTIuOC0xOC40bC04LjIgMGMtNTMuOCAwLTkwLjEgNTIuOS03My41IDEwMmwxNjIuNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDUuMSAwYzIuMyAxMC42IDMuNiAyMS4zIDMuOSAzMmwxNDEuMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDE1MCAzMzZjLTQuOCAxOC42LTEyLjYgMzYuNS0yMy42IDUyLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMy43LTUuNiA2LjktMTEuNCA5LjQtMTcuNGwtMjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzNC44IDBjLS41LTEwLjgtMi42LTIxLjYtNi40LTMyeiJdfSxBYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5ZW4tc2lnbiIsaWNvbjpbMzg0LDUxMixbMTY1LCJjbnkiLCJqcHkiLCJybWIiLCJ5ZW4iXSwiZjE1NyIsIk03NC45IDQ2LjdjLTkuNi0xNC45LTI5LjQtMTkuMi00NC4yLTkuNlMxMS41IDY2LjQgMjEuMSA4MS4zTDE0My43IDI3MiA4OCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDMyLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtMzIgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTUuNyAwIDEyMi42LTE5MC43YzkuNi0xNC45IDUuMy0zNC43LTkuNi00NC4ycy0zNC43LTUuMy00NC4yIDkuNkwxOTIgMjI4LjggNzQuOSA0Ni43eiJdfSxTR3Q9QWIsX0d0PUFiLE1HdD1BYix6R3Q9QWIsQ0d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC1vcGVuIixpY29uOls2NDAsNTEyLFtdLCJmNDllIiwiTTU2MC4zIDIzNy4yYzEwLjQgMTEuOCAyOC4zIDE0LjQgNDEuOCA1LjUgMTQuNy05LjggMTguNy0yOS43IDguOS00NC40bC00OC03MmMtMi44LTQuMi02LjYtNy43LTExLjEtMTAuMkwzNTEuNCA0LjdjLTE5LjMtMTAuNy00Mi44LTEwLjctNjIuMiAwTDg4LjggMTE2Yy01LjQgMy05LjcgNy40LTEyLjYgMTIuOEwyNy43IDIxOC43Yy0xMi42IDIzLjQtMy44IDUyLjUgMTkuNiA2NS4xbDMzIDE3LjcgMCA1My4zYzAgMjMgMTIuNCA0NC4zIDMyLjQgNTUuN2wxNzYgOTkuN2MxOS42IDExLjEgNDMuNSAxMS4xIDYzLjEgMGwxNzYtOTkuN2MyMC4xLTExLjQgMzIuNC0zMi42IDMyLjQtNTUuN2wwLTExNy41em0tMjQwLTkuOEwxNzAuMiAxNDQgMzIwLjMgNjAuNiA0NzAuNCAxNDQgMzIwLjMgMjI3LjR6bS00MS41IDUwLjJsLTIxLjMgNDYuMi0xNjUuOC04OC44IDI1LjQtNDcuMiAxNjEuNyA4OS44eiJdfSxUR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmllbGQiLGljb246WzY0MCw1MTIsW10sImU1OGQiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjI0IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDQwLjQgMGMzMi40IDAgNjEuNiAxOS42IDc0IDQ5LjVsNDMuOCAxMDYuMyAxLjcgNC4yIDI0LjcgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0uNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOGwtMTQ0LjcgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0zLjYgLjItNy4xIC42LTEwLjUtMTktNi40LTMyLjYtMjQuNC0zMi42LTQ1LjVsMC00OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTMyem0zNTIgMzJsMCA5NiA4Mi4xIDAtMzUuNC04Ni4xYy0yLjUtNi04LjMtOS45LTE0LjgtOS45TDM4NCAxMjh6TTE5MiAzOTJhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMjgwIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sJEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbi1sb2NrIixpY29uOls1MTIsNTEyLFtdLCJlNTFmIiwiTTAgMTg4LjZDMCA4NC40IDg2IDAgMTkyIDAgMjk0LjEgMCAzNzcuNiA3OC4zIDM4My42IDE3NyAzMjAuNyAxODUuMSAyNzIgMjM4LjggMjcyIDMwNGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA3NS43Yy05LjkgMTEuNi0xOC45IDIxLjctMjYuNCAyOS44LTExLjggMTIuOC0zMS41IDEyLjgtNDMuMyAwLTUwLjItNTQuNS0xNzAuNC0xOTcuNS0xNzAuNC0zMTYuOHpNMTkyIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMjQwIDQ4LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0yODggNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxWYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXByYXlpbmciLGljb246WzM4NCw1MTIsWzEyODcyMCwicHJheSJdLCJmNjgzIiwiTTMyMCA2NGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTIwMC43IDI2NGwyMi45IDMxLjVjNi41IDguOSAxNi4zIDE0LjcgMjcuMiAxNi4xczIxLjktMS43IDMwLjQtOC43bDg4LTcyYzE3LjEtMTQgMTkuNi0zOS4yIDUuNi01Ni4zcy0zOS4yLTE5LjYtNTYuMy01LjZsLTU1LjIgNDUuMi0yNi4yLTM2Yy0xNS42LTIxLjUtNDAuNi0zNC4yLTY3LjItMzQuMi0zMC45IDAtNTkuMiAxNy4xLTczLjYgNDQuNEw0Ny44IDI4MC45Yy0yMC4yIDM4LjUtOS40IDg1LjkgMjUuNiAxMTEuOEwxMjYuNiA0MzIgNDAgNDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDIwOCAwYzE3LjMgMCAzMi42LTExLjEgMzgtMjcuNXMtLjMtMzQuNC0xNC4yLTQ0LjdsLTExNi4xLTg1LjggNDUtOTB6Il19LERHdD1WYmUsTEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1saXN0IixpY29uOlszODQsNTEyLFtdLCJmNDZkIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyIDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNOTYgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sRUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2stZG9sbGFyIixpY29uOls1MTIsNTEyLFsxMjgxNzZdLCJmODFkIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0yNjAgMjI0Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjE2IDM4NGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0sUEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluLXN1biIsaWNvbjpbNTc2LDUxMixbXSwiZTUyZiIsIk0yNTYuNSAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNS03LjIgMTIuMS0yMC4zIDE5LjUtMzQuMyAxOS41bC00MzIgMGMtMTQuMSAwLTI3LjEtNy40LTM0LjMtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwIDIuOS00LjZDMjMxLjcgNi4yIDI0My42IDAgMjU2LjUgMHpNMTcwLjQgMjQ5LjlsMjYuOCAyNi44YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDQzLjMtNDMuM2M2LTYgMTQuMS05LjQgMjIuNi05LjRsNDIuOCAwLTcyLjEtMTMzLjUtODYuMSAxNTkuNHpNNDk2LjUgMTYwYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxVYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtd2lkZS1zaG9ydCIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LXVwIl0sImYxNjEiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek0zMjAgNDgwbDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyeiJdfSxJR3Q9VWJlLEFHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTkyIiwiTTIyNCAxMjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNzYgMzM2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJsMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC04ek0zOTIgMTQ0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjcuMiAxMDAuNGM5LjEtMi45IDE4LjgtNC40IDI4LjgtNC40IDUzIDAgOTYgNDMgOTYgOTZsMCAxMC43YzAgMTEuOC05LjYgMjEuMy0yMS4zIDIxLjNsLTc4LjggMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLThjMC0zNC4xLTEwLjYtNjUuNy0yOC44LTkxLjZ6bS0yNjIuNCAwYy0xOC4yIDI2LTI4LjggNTcuNS0yOC44IDkxLjZsMCA4YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNzguOCAwQzQxLjYgMzY4IDMyIDM1OC40IDMyIDM0Ni43TDMyIDMzNmMwLTUzIDQzLTk2IDk2LTk2IDEwIDAgMTkuNyAxLjUgMjguOCA0LjR6TTcyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTAgNDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDQ2NGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LE5HdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLW9mLWRhdmlkIixpY29uOls1MTIsNTEyLFsxMDAxN10sImY2OWEiLCJNNDE1LjkgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0zODMuNiAyNTZsLTYwLjItMTA0LTEzNC44IDAtNjAuMiAxMDQgNjAuMiAxMDQgMTM0LjggMCA2MC4yLTEwNHptNjQuNyAwbDU4LjQgMTAwLjljMy41IDYgNS4zIDEyLjggNS4zIDE5LjcgMCAyMS43LTE3LjYgMzkuNC0zOS40IDM5LjRsLTExNyAwLTYxLjMgMTA1LjhDMjg2LjUgNTM1LjYgMjcxLjggNTQ0IDI1NiA1NDRzLTMwLjUtOC40LTM4LjQtMjIuMmwtNjEuMy0xMDUuOC0xMTcgMGMtMjEuNyAwLTM5LjQtMTcuNi0zOS40LTM5LjQgMC02LjkgMS44LTEzLjcgNS4zLTE5LjdMNjMuNyAyNTYgNS4zIDE1NS4xQzEuOCAxNDkuMSAwIDE0Mi4zIDAgMTM1LjQgMCAxMTMuNiAxNy42IDk2IDM5LjQgOTZsMTE3IDAgNjEuMy0xMDUuOEMyMjUuNS0yMy42IDI0MC4yLTMyIDI1Ni0zMnMzMC41IDguNCAzOC40IDIyLjJsNjEuMyAxMDUuOCAxMTcgMGMyMS43IDAgMzkuNCAxNy42IDM5LjQgMzkuNCAwIDYuOS0xLjggMTMuNy01LjMgMTkuN0w0NDguMyAyNTZ6TTM4OC4xIDE1MmwyNy44IDQ4LjEgMjcuOC00OC4xLTU1LjcgMHpNMjkxIDk2bC0zNS02MC40LTM1IDYwLjQgNzAgMHpNMTIzLjkgMTUybC01NS43IDAgMjcuOCA0OC4xIDI3LjgtNDguMXpNOTYuMSAzMTEuOWwtMjcuOCA0OC4xIDU1LjcgMC0yNy44LTQ4LjF6TTIyMSA0MTZsMzUgNjAuNCAzNS02MC40LTcwIDB6Il19LFJHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3Rlcy1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmNDgxIiwiTTk2IDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODEuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDI5MC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAwQzEyNC43IDAgOTYgMjguNyA5NiA2NGwwIDI4OHpNMjg4IDExMmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjh6Il19LE9HdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdXN0cmFsLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUwYTkiLCJNMjY2LjUgMjQwbC04NSAwIDQyLjUtMTA2LjQgNDIuNSAxMDYuNHptNjguOSAwTDI2Mi45IDU4LjNDMjU2LjUgNDIuNCAyNDEuMSAzMiAyMjQgMzJzLTMyLjUgMTAuNC0zOC45IDI2LjNMMTEyLjYgMjQwIDMyIDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2MS40IDAtMTkuMiA0OC00Mi4zIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjMuMSAwLTIwLjggNTIuMWMtNi42IDE2LjQgMS40IDM1IDE3LjkgNDEuNnMzNS0xLjQgNDEuNi0xNy45bDMwLjMtNzUuOSAyMDAgMCAzMC4zIDc1LjljNi42IDE2LjQgMjUuMiAyNC40IDQxLjYgMTcuOXMyNC40LTI1LjIgMTcuOS00MS42TDM5Mi45IDM4NCA0MTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00Mi4zIDAtMTkuMi00OCA2MS40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwLjYgMHptLTQ5LjcgNDhsMTkuMiA0OC0xNjEuNiAwIDE5LjItNDggMTIzLjMgMHoiXX0sRkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC11c2VyIixpY29uOlszODQsNTEyLFtdLCJmN2YzIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xOTIgMzQ0YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek05OC4zIDQxM2MtMTIuOSAxNS42IDIuMiAzNSAyMi40IDM1bDE0Mi41IDBjMjAuMiAwIDM1LjMtMTkuNCAyMi40LTM1LTE0LjctMTcuNy0zNi45LTI5LTYxLjctMjlsLTY0IDBjLTI0LjggMC00NyAxMS4zLTYxLjcgMjl6Il19LEJHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWltYWdlIixpY29uOlszODQsNTEyLFsxMjg0NDNdLCJmMWM1IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTkyLjYgNDQ4bDE5OC44IDBjMTUuOCAwIDI4LjYtMTIuOCAyOC42LTI4LjYgMC03LjMtMi44LTE0LjQtNy45LTE5LjdMMjE1LjMgMjk3LjljLTYtNi4zLTE0LjQtOS45LTIzLjItOS45bC0uMyAwYy04LjggMC0xNy4xIDMuNi0yMy4yIDkuOUw3MS45IDM5OS43QzY2LjggNDA1IDY0IDQxMi4xIDY0IDQxOS40IDY0IDQzNS4yIDc2LjggNDQ4IDkyLjYgNDQ4eiJdfSxXYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXJpZ2h0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXJpZ2h0Il0sImYxNTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNFMxNjAgMzY5LjUgMTYwIDM2MGwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnoiXX0sSEd0PVdiZSxxR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbCIsaWNvbjpbNTEyLDUxMixbMTI5NTE0XSwiZjQ5MiIsIk0zNDIuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDMwNi43IDY0IDI4LjEgMzQyLjZDMTAuMSAzNjAuNiAwIDM4NSAwIDQxMC41TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsNS41IDBjMjUuNSAwIDQ5LjktMTAuMSA2Ny45LTI4LjFsMjc4LjYtMjc4LjYgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwek0yMDUuMyAyNTZsMTQ2LjctMTQ2LjcgNTAuNyA1MC43LTk2IDk2LTEwMS41IDB6Il19LGpHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxpY29wdGVyIixpY29uOls1NzYsNTEyLFsxMjg2NDFdLCJmNTMzIiwiTTE3NiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNTIgMCAwIDQ4LTIyMC44IDAtMzIuOC0zOS40QzY5LjkgODMuMiA2My4xIDgwIDU2IDgwTDI0IDgwQzE1LjcgODAgOCA4NC4zIDMuNiA5MS40cy00LjggMTUuOS0xLjEgMjMuNGw0OCA5NkM1NC42IDIxOC45IDYyLjkgMjI0IDcyIDIyNGwxMDcuOCAwIDEwNCAxNDMuMWMxNS4xIDIwLjcgMzkuMSAzMi45IDY0LjcgMzIuOWw3NS41IDBjNzUuMSAwIDEzNi02MC45IDEzNi0xMzZTNDk5LjEgMTI4IDQyNCAxMjhsLTQ4IDAgMC00OCAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxNzYgMzJ6TTM3NiAxOTJsNDggMGMzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3MmwtNDggMCAwLTE0NHpNNTUyIDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCA0LjQtMy42IDgtOCA4bC0yNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pdHRlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiNSIsIk0zNTIgMzg0TDY0IDM4NCA1LjQgMTc4LjlDMS44IDE2Ni40IDAgMTUzLjQgMCAxNDAuMyAwIDYyLjggNjIuOCAwIDE0MC4zIDBsMy40IDBjNjYgMCAxMjMuNSA0NC45IDEzOS41IDEwOC45bDMxLjQgMTI1LjggMTcuNi0yMC4xQzM0NC44IDIwMC4yIDM2Mi45IDE5MiAzODIgMTkybDIuOCAwYzM0LjkgMCA2My4zIDI4LjMgNjMuMyA2My4zIDAgMTUuOS02IDMxLjItMTYuOCA0Mi45TDM1MiAzODR6TTMyIDQ2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sVUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdhcy1wdW1wIixpY29uOls1MTIsNTEyLFs5OTgxXSwiZjUyZiIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyIDggMGM0OC42IDAgODggMzkuNCA4OCA4OGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNTRjLTI3LjYtNy4xLTQ4LTMyLjItNDgtNjJsMC01OS41LTI1LjgtMjguM2MtOC45LTkuOC04LjItMjUgMS42LTMzLjlzMjUtOC4yIDMzLjkgMS42bDcxLjcgNzguOGM5LjQgMTAuMyAxNC42IDIzLjcgMTQuNiAzNy43TDUxMiAzNzZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzJsMC0zMmMwLTIyLjEtMTcuOS00MC00MC00MGwtOCAwIDAgMTYxLjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkwzMiA2NHpNOTYgODBsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2TDExMiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxXR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNGU4IiwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OGw0MTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgxLjRjLTI0LjQtMTEuMi01MS40LTE3LjQtODAtMTcuNC04Ny43IDAtMTYxLjcgNTguOC0xODQuNyAxMzkuMi03LjEtMS4zLTE0LjEtNC4yLTIwLjEtOC44bC0yMDgtMTU2QzcxLjEgMTQxLjMgNjQgMTI3LjEgNjQgMTEyek0zMDQgMzY4YzAgMjguNiA2LjIgNTUuNiAxNy40IDgwTDEyOCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTg4IDE5OC40IDE0OC44YzEyLjYgOS40IDI2LjkgMTUuNCA0MS43IDE3LjkgMCAxLjgtLjEgMy41LS4xIDUuM3ptNDggMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sR2JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2F0aW5nIixpY29uOls1MTIsNTEyLFsic2thdGluZyJdLCJmN2M1IiwiTTM2OCA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTEyOCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTUwLjEgMGM0OS45IDAgNzQuOSA2MC4zIDM5LjYgOTUuNmwtNjMuOSA2My45IDY5LjggMzFjMTcuMyA3LjcgMjguNSAyNC45IDI4LjUgNDMuOWwwIDg1LjZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC03NS4yLTgyLjQtMzYuNmMtNDEtMTguMi01MS03Mi0xOS4zLTEwMy43bDQwLjQtNDAuNC05OC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek04OS40IDM2MS40bDc1LjktNzUuOWM3LjcgMTkuNyAyMS42IDM3LjMgNDEgNDkuNmwtNzEuNiA3MS42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3ptMzQ2LjUgODcuMWM4LjYgMi4xIDEzLjggMTAuOCAxMS42IDE5LjRsLS40IDEuN2MtNi4yIDI0LjktMjguNiA0Mi40LTU0LjMgNDIuNEwzMDQgNTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDg4LjggMGMxMSAwIDIwLjYtNy41IDIzLjMtMTguMmwuNC0xLjdjMi4xLTguNiAxMC44LTEzLjggMTkuNC0xMS42ek0xNDMuMiA0ODYuM2wtNi4yIDMuMWMtMjEuNiAxMC44LTQ3LjYgNi42LTY0LjYtMTAuNUwxMi43IDQxOS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsNTkuNiA1OS42YzcuMyA3LjMgMTguNSA5LjEgMjcuNyA0LjVsNi4yLTMuMWM3LjktNCAxNy41LS43IDIxLjUgNy4ycy43IDE3LjUtNy4yIDIxLjV6Il19LEdHdD1HYmUsVWI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VuIixpY29uOls1NzYsNTEyLFs5NzI4XSwiZjE4NSIsIk0yODgtMzJjOC40IDAgMTYuMyA0LjQgMjAuNiAxMS43TDM2NC4xIDcyLjMgNDY4LjkgNDZjOC4yLTIgMTYuOSAuNCAyMi44IDYuM1M1MDAgNjcgNDk4IDc1LjFsLTI2LjMgMTA0LjcgOTIuNyA1NS41YzcuMiA0LjMgMTEuNyAxMi4yIDExLjcgMjAuNnMtNC40IDE2LjMtMTEuNyAyMC42TDQ3MS43IDMzMi4xIDQ5OCA0MzYuOGMyIDguMi0uNCAxNi45LTYuMyAyMi44UzQ3NyA0NjggNDY4LjkgNDY2bC0xMDQuNy0yNi4zLTU1LjUgOTIuN2MtNC4zIDcuMi0xMi4yIDExLjctMjAuNiAxMS43cy0xNi4zLTQuNC0yMC42LTExLjdMMjExLjkgNDM5LjcgMTA3LjIgNDY2Yy04LjIgMi0xNi44LS40LTIyLjgtNi4zUzc2IDQ0NSA3OCA0MzYuOGwyNi4yLTEwNC43LTkyLjYtNTUuNUM0LjQgMjcyLjIgMCAyNjQuNCAwIDI1NnM0LjQtMTYuMyAxMS43LTIwLjZMMTA0LjMgMTc5LjkgNzggNzUuMWMtMi04LjIgLjMtMTYuOCA2LjMtMjIuOFM5OSA0NCAxMDcuMiA0NmwxMDQuNyAyNi4yIDU1LjUtOTIuNiAxLjgtMi42YzQuNS01LjcgMTEuNC05LjEgMTguOC05LjF6bTAgMTQ0YTE0NCAxNDQgMCAxIDAgMCAyODggMTQ0IDE0NCAwIDEgMCAwLTI4OHptMCAyNDBhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LEtiZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNlYmFsbCIsaWNvbjpbNTEyLDUxMixbMTI5MzU4LDk5MTgsImJhc2ViYWxsLWJhbGwiXSwiZjQzMyIsIk0yMzIuNCAxLjFjLTEyMi4yIDExLjQtMjE5LjUgMTA4LjctMjMwLjkgMjMwLjkgMTYuMi0uMSAzMi0xLjggNDcuMi01IDEzLTIuNyAyNS43IDUuNSAyOC40IDE4LjVzLTUuNSAyNS43LTE4LjUgMjguNGMtMTguNCAzLjktMzcuNiA2LTU3LjEgNi4xIDExLjQgMTIyLjIgMTA4LjcgMjE5LjUgMjMwLjkgMjMwLjkgLjEtMTkuNSAyLjItMzguNyA2LjEtNTcuMSAyLjctMTMgMTUuNS0yMS4zIDI4LjQtMTguNXMyMS4zIDE1LjUgMTguNSAyOC40Yy0zLjIgMTUuMi00LjkgMzEtNSA0Ny4yIDEyMi4yLTExLjQgMjE5LjUtMTA4LjcgMjMwLjktMjMwLjktMTYuMiAuMS0zMiAxLjgtNDcuMiA1LTEzIDIuNy0yNS43LTUuNS0yOC40LTE4LjVzNS41LTI1LjcgMTguNS0yOC40YzE4LjQtMy45IDM3LjYtNiA1Ny4xLTYuMS0xMS40LTEyMi4yLTEwOC43LTIxOS41LTIzMC45LTIzMC45LS4xIDE5LjUtMi4yIDM4LjctNi4xIDU3LjEtMi43IDEzLTE1LjUgMjEuMy0yOC40IDE4LjVzLTIxLjMtMTUuNS0xOC41LTI4LjRjMy4yLTE1LjIgNC45LTMxIDUtNDcuMnptMi44IDE1MS40Yy0yMS40IDMyLjktNDkuNSA2MC45LTgyLjMgODIuMy0xMS4xIDcuMi0yNiA0LjEtMzMuMi03cy00LjEtMjYgNy0zMy4yYzI3LjItMTcuNyA1MC41LTQxIDY4LjMtNjguMyA3LjItMTEuMSAyMi4xLTE0LjMgMzMuMi03czE0LjMgMjIuMSA3IDMzLjJ6TTM5My4xIDI4NC4yYzcuMiAxMS4xIDQuMSAyNi03IDMzLjItMjcuMiAxNy43LTUwLjUgNDEtNjguMyA2OC4zLTcuMiAxMS4xLTIyLjEgMTQuMy0zMy4yIDdzLTE0LjMtMjIuMS03LTMzLjJjMjEuNC0zMi45IDQ5LjUtNjAuOSA4Mi4zLTgyLjMgMTEuMS03LjIgMjYtNC4xIDMzLjIgN3oiXX0sS0d0PUtiZSxZR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2UiLGljb246WzQ0OCw1MTIsW10sImYwM2UiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgODBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek0yNzIgMjI0YzguNCAwIDE2LjEgNC40IDIwLjUgMTEuNWw4OCAxNDRjNC41IDcuNCA0LjcgMTYuNyAuNSAyNC4zUzM2OC43IDQxNiAzNjAgNDE2TDg4IDQxNmMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwyNi40IDM3LjggNjEuNC0xMDAuNWM0LjQtNy4xIDEyLjEtMTEuNSAyMC41LTExLjV6Il19LFpHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3RkZWYiLGljb246WzM4NCw1MTIsW10sImUxZmUiLCJNNjQgMzkwLjNMMTUzLjUgMjU2IDY0IDEyMS43IDY0IDM5MC4zek0xMDIuNSA0NDhMMjgxLjUgNDQ4IDE5MiAzMTMuNyAxMDIuNSA0NDh6bTEyOC0xOTJMMzIwIDM5MC4zIDMyMCAxMjEuNyAyMzAuNSAyNTZ6TTI4MS41IDY0TDEwMi41IDY0IDE5MiAxOTguMyAyODEuNSA2NHpNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4eiJdfSxZYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTM2LCJiYXNrZXRiYWxsLWJhbGwiXSwiZjQzNCIsIk05Mi43IDU4LjhsNzguNCA3OC40YzE4LjItMjUgMjguOS01NS45IDI4LjktODkuMiAwLTE0LjEtMS45LTI3LjctNS41LTQwLjYtMzggOS40LTcyLjYgMjcuMi0xMDEuOCA1MS40ek01OC44IDkyLjdjLTI0LjIgMjkuMi00MiA2My44LTUxLjQgMTAxLjggMTIuOSAzLjYgMjYuNSA1LjUgNDAuNiA1LjUgMzMuMyAwIDY0LjEtMTAuNyA4OS4yLTI4LjlMNTguOCA5Mi43ek0yNTYgMGMtNC42IDAtOS4yIC4xLTEzLjcgLjQgMy43IDE1LjMgNS43IDMxLjIgNS43IDQ3LjYgMCA0Ni42LTE1LjkgODkuNC00Mi42IDEyMy40TDI1NiAyMjIuMSA0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMHpNNDggMjQ4Yy0xNi40IDAtMzIuNC0yLTQ3LjYtNS43LS4yIDQuNS0uNCA5LjEtLjQgMTMuNyAwIDYyLjEgMjIuMSAxMTguOSA1OC44IDE2My4zTDIyMi4xIDI1NiAxNzEuNCAyMDUuNEMxMzcuNCAyMzIuMSA5NC42IDI0OCA0OCAyNDh6bTQ2My42IDIxLjdjLjItNC41IC40LTkuMSAuNC0xMy43IDAtNjIuMS0yMi4xLTExOC45LTU4LjgtMTYzLjNMMjg5LjkgMjU2IDM0MC42IDMwNi42YzM0LTI2LjcgNzYuOS00Mi42IDEyMy40LTQyLjYgMTYuNCAwIDMyLjQgMiA0Ny42IDUuN3ptLTcuMSA0Ny44Yy0xMi45LTMuNi0yNi41LTUuNS00MC42LTUuNS0zMy4zIDAtNjQuMSAxMC43LTg5LjIgMjguOWw3OC40IDc4LjRjMjQuMi0yOS4yIDQyLTYzLjggNTEuNC0xMDEuOHpNMzQwLjkgMzc0LjhjLTE4LjIgMjUtMjguOSA1NS45LTI4LjkgODkuMiAwIDE0LjEgMS45IDI3LjcgNS41IDQwLjYgMzgtOS40IDcyLjYtMjcuMiAxMDEuOC01MS40bC03OC40LTc4LjR6bS0zNC4zLTM0LjNMMjU2IDI4OS45IDkyLjcgNDUzLjJjNDQuMyAzNi43IDEwMS4yIDU4LjggMTYzLjMgNTguOCA0LjYgMCA5LjItLjEgMTMuNy0uNC0zLjctMTUuMy01LjctMzEuMi01LjctNDcuNiAwLTQ2LjYgMTUuOS04OS40IDQyLjYtMTIzLjR6Il19LFhHdD1ZYmUsWmJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbmNpbCIsaWNvbjpbNTEyLDUxMixbOTk5OSw2MTUwNCwicGVuY2lsLWFsdCJdLCJmMzAzIiwiTTM2LjQgMzUzLjJjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN2wxODEuMi0xODEuMiAzMy45LTMzLjljMTYuNiAxNi42IDUxLjMgNTEuMyAxMDQgMTA0bDMzLjkgMzMuOS0zMy45IDMzLjktMTgxLjIgMTgxLjJjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTEwLjZjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4yUy0xLjQgNDg5LjMgLjkgNDgxTDM2LjQgMzUzLjJ6bTU1LjYtMy43Yy00LjQgNC43LTcuNiAxMC40LTkuMyAxNi42bC0yNC4xIDg2LjkgODYuOS0yNC4xYzYuNC0xLjggMTIuMi01LjEgMTctOS43TDkxLjkgMzQ5LjV6bTM1NC0xNDYuMWMtMTYuNi0xNi42LTUxLjMtNTEuMy0xMDQtMTA0TDMwOCA2NS41QzMzNC41IDM5IDM0OS40IDI0LjEgMzUyLjkgMjAuNiAzNjYuNCA3IDM4NC44LS42IDQwNC0uNlM0NDEuNiA3IDQ1NS4xIDIwLjZsMzUuNyAzNS43QzUwNC40IDY5LjkgNTEyIDg4LjMgNTEyIDEwNy40cy03LjYgMzcuNi0yMS4yIDUxLjFjLTMuNSAzLjUtMTguNCAxOC40LTQ0LjkgNDQuOXoiXX0sUUd0PVpiZSxKR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctYXJyb3ctbG9vcC1sZWZ0IixpY29uOls2NDAsNTEyLFtdLCJlNTUxIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNMzU5IDMzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAxMDIuMSAwYzEuMiAwIDIuNC0uMSAzLjUtLjMgNTYuMS0zLjkgMTAwLjUtNTAuNiAxMDAuNS0xMDcuNyAwLTU5LjYtNDguNC0xMDgtMTA4LTEwOGwtOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5MiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC05OC4xIDAgMzEtMzFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNzIgNzJ6Il19LGVLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXNpeCIsaWNvbjpbNDQ4LDUxMixbOTg2MV0sImY1MjYiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxYYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWRvd24iLGljb246WzM4NCw1MTIsWyJhbmdsZS1kb3VibGUtZG93biJdLCJmMTAzIiwiTTIxNC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgNDAyLjcgMzI5LjQgMjY1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MHptMTYwLTM1MmwtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTkyIDIxMC43IDMyOS40IDczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3oiXX0sdEt0PVhiZSxhS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3lyaW5nZSIsaWNvbjpbNTc2LDUxMixbMTI4MTM3XSwiZjQ4ZSIsIk00OTcuNS0xN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNSAxNS00Ni4xIDQ2LjEtNjMtNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNyA3LTc4LjEgNzguMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS00Ni4xIDQ2LjEgNDEgNDFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDEtNDEtMzcuNyAzNy43Yy0xMC41IDEwLjUtMTYuNCAyNC43LTE2LjQgMzkuNmwwIDg4LjgtNTcgNTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1Ny01NyA4OC44IDBjMTQuOSAwIDI5LjEtNS45IDM5LjYtMTYuNGwyMjkuNy0yMjkuNyA3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyA0Ni4xLTQ2LjEgMTUgMTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NC02NHoiXX0sUWJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3biIsaWNvbjpbNTc2LDUxMixbIndoZWF0LWFsdCJdLCJlMmNkIiwiTTc5LjcgMjM0LjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4yIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2w0Ni4xIDQ2LjFjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwxMzQuMSA0NDQuMyA0OS40IDUyOWMtOS40IDkuNC0yNC41IDkuNC0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXptMTA0LTEwNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwbC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NS4yIDE1YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4yTDUyOS4yIDQ5IDQxNC43IDE2My40YzcuNyAxIDE1LjIgMyAyMi41IDUuOUw0OTUuNSAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01OC4zIDU4LjNjMi44IDcuMSA0LjcgMTQuNSA1LjcgMjIuMUw0OTUuMiAxNXoiXX0sc0t0PVFiZSxpS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtdXAiLGljb246WzUxMiw1MTIsW10sImUyMmQiLCJNMjAwIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyAxNzMuNiAxNTkuMmM2LjYgNi4xIDEwLjQgMTQuNiAxMC40IDIzLjZsMCA0My43YzAgMTAuOS0xMC43IDE4LjYtMjEuMSAxNS4ybC0xNjIuOS01NC4zIDAgOTkuNyA2NiA1Mi44YzMuOCAzIDYgNy42IDYgMTIuNWwwIDE5LjhjMCAxMC40LTkuOCAxOC0xOS45IDE1LjVMMjU2IDUxMiAxNDcuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0MyNi43IDM5Ni40IDE2IDM4OC43IDE2IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIwMCAxNTEuMyAyMDAgMjR6Il19LHJLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1jZW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYwMzciLCJNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDEyOCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptOTYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzUyIDMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LG9LdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2NrZXktcHVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjQ1MyIsIk0yNTYgMjU2QzExNC42IDI1NiAwIDIxMyAwIDE2MHMxMTQuNi05NiAyNTYtOTYgMjU2IDQzIDI1NiA5Ni0xMTQuNiA5Ni0yNTYgOTZ6TTAgMzUyTDAgMjQyLjdjMTYuOSAxMi4zIDM3IDIyLjIgNTguMSAzMC4xIDUzIDE5LjkgMTIzIDMxLjIgMTk3LjkgMzEuMnMxNDQuOS0xMS4zIDE5Ny45LTMxLjJjMjEuMi03LjkgNDEuMi0xNy44IDU4LjEtMzAuMUw1MTIgMzUyYzAgNTMtMTE0LjYgOTYtMjU2IDk2UzAgNDA1IDAgMzUyeiJdfSxKYmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtbGVmdCJdLCJmMGE4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMzUgMjM5bDgwLTgwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzkgMzkgMTUwLjEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTUwLjEgMCAzOSAzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LG5LdD1KYmUsbEt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWJvbHQiLGljb246WzY0MCw1MTIsW10sImU1NWIiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFM0MzMuMiA0MTYgNDQwIDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM1NTguOCAzODQgNTUyIDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LGNLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXN0cm9vbSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiZCIsIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNTQuOGMtOC4xIDkuMi0yMS4xIDEzLjItMzMuNSA5LjQtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQ0LjQgMTU2LjkgODMuNiAxMjggMTI4IDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xLTEyLjQgMy45LTI1LjQtLjItMzMuNS05LjRMMjAwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwek0zMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ2NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDY0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ0MCA0ODBsMC05Ni0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDktMjYuOWMtMy4yIDAtNi40LS41LTkuNS0xLjUtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQyOC40IDE1Ni45IDQ2Ny42IDEyOCA1MTIgMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxkS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YWQiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDI4LjMgMCA1NS40LTUuNyA4MC0xNS45bDAtLjIgMC03Mi4yYy0xNC40IDkuNi0zMC42IDE2LjctNDggMjAuN2wwLTI1Ny45YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjcyIDMwNC4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYuNSA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LHVLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aW1lbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTI5YyIsIk0xNjAgMTY5LjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MFM0OCA1MS44IDQ4IDk2YzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCA1NC43LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDAgMCA1NC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTU0LjcgMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC01NC43YzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctMjU2IDAgMC01NC43eiJdfSxwS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlnaHRidWxiIixpY29uOlszODQsNTEyLFsxMjgxNjFdLCJmMGViIiwiTTI5Mi45IDM4NGM3LjMtMjIuMyAyMS45LTQyLjUgMzguNC01OS45IDMyLjctMzQuNCA1Mi43LTgwLjkgNTIuNy0xMzIuMSAwLTEwNi04Ni0xOTItMTkyLTE5MlMwIDg2IDAgMTkyYzAgNTEuMiAyMCA5Ny43IDUyLjcgMTMyLjEgMTYuNSAxNy40IDMxLjIgMzcuNiAzOC40IDU5LjlsMjAxLjcgMHpNMjg4IDQzMmwtMTkyIDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMTZ6TTE4NCAxMTJjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxldmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLXJpZ2h0Il0sImYwYTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTQxLTE1OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzOS0zOS0xNTAuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1MC4xIDAtMzktMzljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODAgODB6Il19LGhLdD1ldmUsZkt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzIixpY29uOls1MTIsNTEyLFs5ODkzXSwiZjIyNCIsIk0zNjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM0LjctNjMgNjNjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDg2LjMtNjIuMSAxNTguMS0xNDQgMTczLjFsMCAzNC45IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM0LjljLTgxLjktMTUtMTQ0LTg2LjgtMTQ0LTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2IDM3IDAgNzEuNCAxMS40IDk5LjggMzFsNjMtNjMtMzQuNyAwek0zNTIgMjA4YTExMiAxMTIgMCAxIDAgLTIyNCAwIDExMiAxMTIgMCAxIDAgMjI0IDB6Il19LFdiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldHdvcmstd2lyZWQiLGljb246WzU3Niw1MTIsW10sImY2ZmYiLCJNMjQ4IDg4bDgwIDAgMCA0OC04MCAwIDAtNDh6bS04LTU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDAgMCAzMi0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiAxOTIgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0zMiAxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTk2IDB6TTQ0OCAzNzZsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6bS0yNTYgMGw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHoiXX0sbUt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkOCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBjLTEyLjUtMTQuNy0yMy4yLTMwLjgtMzEuOC00OGwtODkuNSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMCAwLTI2LjdjMC0xOC4xIDYuMS0zNS4yIDE2LjYtNDguOC0uNC0xLjQtLjYtMi45LS42LTQuNWwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDEgODYuNy0yOC45YzMuMS0xIDYuMi0xLjggOS4zLTIuNUw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQ0NS4zIDQ4OC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sZ0t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUiLGljb246WzU3Niw1MTIsW10sImYxMjEiLCJNMzYwLjggMS4yYy0xNy00LjktMzQuNyA1LTM5LjYgMjJsLTEyOCA0NDhjLTQuOSAxNyA1IDM0LjcgMjIgMzkuNnMzNC43LTUgMzkuNi0yMmwxMjgtNDQ4YzQuOS0xNy01LTM0LjctMjItMzkuNnptNjQuNiAxMzYuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNzMuNCA3My40LTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMjc0LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDE1MC42IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zeiJdfSx0dmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlci1wb2ludGVkIixpY29uOls1MTIsNTEyLFsiZmVhdGhlci1hbHQiXSwiZjU2YiIsIk00NzUuMyAuMWM5LjktLjggMTkuNiAzIDI2LjYgMTBzMTAuOCAxNi43IDEwIDI2LjZjLTQgNDkuMy0xNy40IDEyNi4yLTQ2LjMgMTk5LjctMS44IDQuNS01LjUgNy45LTEwLjIgOS4zTDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDM4LjYgMGMxMiAwIDE5LjcgMTIuOCAxMy41IDIzLjEtNCA2LjctOC4zIDEzLjItMTIuNyAxOS42LTIgMi45LTUgNS04LjQgNi4xTDMxMC41IDM2NmMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDE2IDBjMTQuNiAwIDIxIDE3LjQgOC44IDI1LjQtNjggNDUtMTM3LjcgNDMuMy0xODIuNCAzMS4zLTEyLjctMy40LTI0LTkuOS0zNC40LTE3LjlMNDggNDk2Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJsODAtODAgLjUgLjVjLjctMS4zIDEuNi0yLjUgMi43LTMuNkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw4OS43IDMyNi4yYy04LjkgOC45LTI0IDQuNC0yNS04LjItNC4zLTUzLjIgOS4zLTEyMy4xIDcyLjYtMTg2LjQgOTEuMS05MS4xIDI1NC4yLTEyNC43IDMzNy45LTEzMS41eiJdfSxiS3Q9dHZlLHZLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LHhLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYXR1cmUiLGljb246WzY0MCw1MTIsW10sImY1YjciLCJNMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNy44YzAgMjcuNy0yLjQgNTUuMy03LjEgODIuNWwtODQuNCAyNS4zYy00MC42IDEyLjItNjguNCA0OS42LTY4LjQgOTJsMCAzMi40LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIuNSAwYzQuMiAzNiAzNC44IDY0IDcyIDY0IDI2IDAgNTAtMTMuOSA2Mi45LTM2LjVsMTMuOS0yNC4zYzI2LjgtNDcgNDYuNS05Ny43IDU4LjQtMTUwLjVsOTQuNC0yOC4zLTEyLjUgMzcuNWMtMy4zIDkuOC0xLjYgMjAuNSA0LjQgMjguOFM0MDUuNyAzMjAgNDE2IDMyMGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODMuNiAwIDE4LTUzLjljMy44LTExLjMgLjktMjMuOC03LjQtMzIuNHMtMjAuNy0xMS44LTMyLjItOC40TDMxNi40IDE5OC4xYzIuNC0yMC43IDMuNi00MS40IDMuNi02Mi4zbDAtNy44YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyem0tOS4yIDE3N2w0OS0xNC43Yy0xMC40IDMzLjgtMjQuNSA2Ni40LTQyLjEgOTcuMmwtMTMuOSAyNC4zYy0xLjUgMi42LTQuMyA0LjMtNy40IDQuMy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTYxNiA0MTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI5Mi45IDBjLTYuNSAxNi4zLTEzLjcgMzIuMy0yMS42IDQ4TDYxNiA0MTZ6Il19LGVTPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFtZXJpY2FzIixpY29uOls1MTIsNTEyLFsxMjc3NTgsImVhcnRoIiwiZWFydGgtYW1lcmljYSIsImdsb2JlLWFtZXJpY2FzIl0sImY1N2QiLCJNNTUuNyAxOTkuN2wzMC45IDMwLjljNiA2IDE0LjEgOS40IDIyLjYgOS40bDIxLjUgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMzcuNWMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxMy4zIDEzLjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMTguN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMi43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ1LjMtNDUuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0zNC43YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDM0LjcgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0xOS43LTE5LjdDMjQyIDEzMCAyNDAgMTI1LjEgMjQwIDEyMHMyLTEwIDUuNy0xMy43bDE3LjMtMTcuM2M1LjgtNS44IDkuMS0xMy43IDkuMS0yMS45IDAtNy4yLTIuNC0xMy43LTYuNC0xOC45LTMuMi0uMS02LjQtLjItOS42LS4yLTk1LjQgMC0xNzUuNyA2NC4yLTIwMC4zIDE1MS43ek00NjQgMjU2YzAtMzQuNi04LjQtNjcuMi0yMy40LTk1LjgtNi40IC45LTEyLjcgMy45LTE3LjkgOS4xbC0xMy40IDEzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuMSAwYzIuNSAwIDUtLjMgNy4zLS44IC40LTUgLjUtMTAuMSAuNS0xNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSx5S3Q9ZVMsd0t0PWVTLGtLdD1lUyxTS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fycm90IixpY29uOls2NDAsNTEyLFsxMjkzNjVdLCJmNzg3IiwiTTQ1My4xLTM2LjdMNDQwLjktMjQuNmMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xIDE1LjYgMTUuNiAzMS4yIDMxLjIgNDYuOSA0Ni45IDMxLjIgMzEuMiA4MS45IDMxLjIgMTEzLjEgMGwxMi4xLTEyLjFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNjAwLjkgODguNmMtMzEuMi0zMS4yLTgxLjktMzEuMi0xMTMuMSAwIDMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMUw0NzUuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNMzMxLjYgOTZjLTQ1LjIgMC04Ny4xIDIwLjQtMTE1IDU0LjNMMjczLjMgMjA3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTkxLjYgMTkzLjIgNjcuMiA0NjYuOGMtNS41IDEyLjEtMi45IDI2LjQgNi41IDM1LjlzMjMuNyAxMiAzNS45IDYuNWwxNDEuNi02NC40LTQzLjgtNDMuOGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjUgNTYuNSA5NS4zLTQzLjNjNTMuMS0yNC4xIDg3LjItNzcuMSA4Ny4yLTEzNS41IDAtODIuMi02Ni42LTE0OC44LTE0OC44LTE0OC44eiJdfSx0Uz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1mdWxsIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtNCIsInRoZXJtb21ldGVyLTQiLCJ0aGVybW9tZXRlci1mdWxsIl0sImYyYzciLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjEyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSxfS3Q9dFMsTUt0PXRTLHpLdD10UyxDS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LWxvY2siLGljb246WzY0MCw1MTIsW10sImU2N2EiLCJNMjU2IDI4OGwwLTY0IDE1My4zIDBjMTcuMS00Mi4yIDU2LTczLjIgMTAyLjctNzlsMC00OWMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0MS4zIDBjLS45LTUuMi0xLjMtMTAuNi0xLjMtMTYuMWwwLTQ3LjktMTEyIDAgMC02NCAxMTMuMyAwYzMuNy0yMiAxNC44LTQxLjQgMzAuNy01NS42bDAtOC40LTE0NCAwem0wLTE5MmwxOTIgMCAwIDY0LTE5MiAwIDAtNjR6TTU2MCAyNzIuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2IDM2OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sVEt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQtbGlnaHRuaW5nIixpY29uOlszODQsNTEyLFtdLCJlMGI3IiwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhMMjI4LjkgMGMxNSAwIDI3LjEgMTIuMSAyNy4xIDI3LjEgMCAzLjItLjYgNi41LTEuNyA5LjVMMjA4IDE2MCAzNDcuMyAxNjBjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjcgMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43bC0yLjkgMGMtMTUuNyAwLTI4LjUtMTIuOC0yOC41LTI4LjUgMC0yLjMgLjMtNC42IC45LTYuOUwxNzYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LCRLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLXdhdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNGU0IiwiTTI3OS4yIDU1LjdDMjYzLjkgMjIuOCAyMzAuNiAwIDE5MiAwIDEzOSAwIDk2IDQzIDk2IDk2IDYwLjcgOTYgMzIgMTI0LjcgMzIgMTYwczI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRsLTEuNiAwYy03LjQtMzYuNS0zOS43LTY0LTc4LjQtNjQtMjIuMiAwLTQyLjMgOS4xLTU2LjggMjMuN3pNNDEwLjYgNDc2LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwek0xMDAuMSAzMDMuNmM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NEMyOSAzNjUgMzUuOCAzNzguNiA0OC40IDM4Mi44czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMTIgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0eiJdfSxhdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctdXAiXSwiZjE3NiIsIk0xODIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggNzcuMyAxMjggNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00MzQuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHoiXX0sREt0PWF2ZSx5b2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAyNTZsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMODAgMzg0Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI0MC00OGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgOTZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxMS3Q9eW9lLEVLdD15b2UsUEt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXJpZ2h0IixpY29uOlsyNTYsNTEyLFs4MjUwXSwiZjEwNSIsIk0yNDcuMSAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc5LjIgMjU2IDQxLjkgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHoiXX0sc3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE3NiAzMjBsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxJS3Q9c3ZlLEFLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLWdyb3VuZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNSIsIk0zMDMgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OCA4OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00NyAwIDI3OC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjc4LjEtNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMzAzIDd6TTI0MCAxOTJsMCAxNjMuMWMtMTAuNi0yLjItMjEuMy0zLjItMzItMy4xLTMyLjUgLjItNjQuOSAxMC43LTkyLjMgMzEuNC04LjggNi42LTE1LjkgMTAuOS0yMS43IDEzLjVsLS44IC40Yy0zLjcgMS43LTYuNCAyLjktOS44IC4zLTYtNC41LTEyLjYtOC0xOS4zLTEwLjRMNjQgMjQwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEyOCAwem0zMzYgNDhsMCAxNTUuMmMtMS4xIC44LTIuMiAxLjUtMy4zIDIuNC00LjEgMy4xLTguMyAuOC0xMi42LTEuNS0uNi0uMy0xLjItLjYtMS44LTEtNS4yLTIuNy0xMS4xLTYuNi0xOC0xMS43LTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTE1LjUgLjEtMzEgMi41LTQ2IDcuM2wwLTE2Ny4zIDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LE5LdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDM0OS41IDc3LjUgMTcwLjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzYuOCA4OC44IDAgOTkuOSAwIDExMkwwIDQ2NGMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTc5LjQgNTkuOGM4LjEgMi43IDE2LjggMi4xIDI0LjQtMS43bDEyOC02NGMxMC44LTUuNCAxNy43LTE2LjUgMTcuNy0yOC42bDAtMzUyek0xOTIgMzc2LjlsMC0yODQuNSAxMjggNDIuNyAwIDI4NC41LTEyOC00Mi43eiJdfSxSS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjM0IiwiTTI4NS43IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuMyA0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMHpNNTI4IDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQweiJdfSxPS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMiLGljb246WzM4NCw1MTIsWzk3OTJdLCJmMjIxIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjRjMC0xIDAtMS45LS4xLTIuOXoiXX0sRkt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tc3VjY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDdhIiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCA0ODBMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE2MCAxNjBsMC02NC05NiAwIDAgNjQgOTYgMHoiXX0sQkt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1jb3VnaC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2MiIsIk01MzUtMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTM3LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjUtMjUgMC00NDcuMmMwLTE1IDEwLjUtMjguMyAyNS40LTI5LjggNy40LS43IDE0LjktMS4xIDIyLjYtMS4xIDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMi4yIDIuNiAyMjcuNS0yMjcuNXpNMTMzLjggNTEyTDI4OCAzNTcuOCAyODggNDE2YzAgNTMtNDMgOTYtOTYgOTZsLTU4LjIgMHpNMTc2IDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMzNiA0MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OCA3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tNjQgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTI4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODgtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0saXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJvamVjdCIsaWNvbjpbNTEyLDUxMixbInByb2plY3QtZGlhZ3JhbSJdLCJmNTQyIiwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDEyOCAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTEyOCAwIDAgMTZjMCA3LjMtMS43IDE0LjMtNC42IDIwLjVsNjguNiA5MS41IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTcuMyAxLjctMTQuMyA0LjYtMjAuNUwxMjggMjI0IDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHoiXX0sSEt0PWl2ZSxHYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXJtaW5hbCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyMCIsIk05LjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTQ2LjcgMjU2IDkuNCAxMTguNnpNMjI0IDM4NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHFLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1maXJlIixpY29uOls2NDAsNTEyLFtdLCJlNTBjIiwiTTQ0OCAxOTJjMTQuMSAuNCAyMy44IDExLjQgMzIuNyAyMS43IDIgMi4zIDQgNC42IDYgNi43bDE5IDE5LjkgMTIuMi0xMy44YzUuNC02LjEgMTMuMy04LjkgMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjIgMjYuMiA4OC4yIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4xIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjV6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTQ3LjUgMTM3Yy0xOS4yLTQuMy00MCAuNS01NS41IDE0LjQtMzYuNCAzMi42LTY3LjcgNjkuOC05MC4zIDEwNi40LTEwLjMgMTYuNi0xOS43IDM0LjktMjYuOCA1My43TDI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgNjQuNiAwYzcuMyAxNy4yIDE2LjggMzMuNCAyOC4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNDg5LjMgMzQzLjdjLTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC43IDUxLjktNTQuNyA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0zNi41LTM3LTczLTU0LjctODguNHoiXX0sakt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2siLGljb246WzU3Niw1MTIsW10sImY2ZmEiLCJNMjg4IDY0QzY0IDY0IDAgMTYwIDAgMjcyUzgwIDQ0OCAxNzYgNDQ4bDguNCAwYzI0LjIgMCA0Ni40LTEzLjcgNTcuMi0zNS40bDIzLjItNDYuM2M0LjQtOC44IDEzLjMtMTQuMyAyMy4yLTE0LjNzMTguOCA1LjUgMjMuMiAxNC4zbDIzLjIgNDYuM2MxMC44IDIxLjcgMzMgMzUuNCA1Ny4yIDM1LjRsOC40IDBjOTYgMCAxNzYtNjQgMTc2LTE3NlM1MTIgNjQgMjg4IDY0ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0zMjAtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LFZLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJodXJyaWNhbmUiLGljb246WzM4NCw1MTIsW10sImY3NTEiLCJNMCAyMDhDMCAxMDQuNCA3NS43IDE4LjUgMTc0LjkgMi42IDE4NCAxLjIgMTkyIDguNiAxOTIgMTcuOWwwIDYzLjNjMCA4LjQgNi41IDE1LjMgMTQuNyAxNi41IDEwMC4zIDE0LjkgMTc3LjMgMTAxLjMgMTc3LjMgMjA1LjcgMCAxMDMuNi03NS43IDE4OS41LTE3NC45IDIwNS40LTkuMiAxLjUtMTcuMS01LjktMTcuMS0xNS4ybDAtNjMuM0MxOTIgNDIxLjkgMTg1LjUgNDE1IDE3Ny4zIDQxMy43IDc3IDM5OC45IDAgMzEyLjQgMCAyMDh6bTI4OCA0OGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bS05Ni0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHJ2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1hZnJpY2EiLGljb246WzUxMiw1MTIsWzEyNzc1NywiZ2xvYmUtYWZyaWNhIl0sImY1N2MiLCJNNDQ3LjYgMTc1Yy0zMS42LTc0LjYtMTA1LjUtMTI3LTE5MS42LTEyNy0yMi4xIDAtNDMuNCAzLjUtNjMuNCA5LjgtLjQgMi0uNiA0LjEtLjYgNi4ybDAgNzMuNGMwIDEyLjUgMTAuMSAyMi42IDIyLjYgMjIuNiA2IDAgMTEuOC0yLjQgMTYtNi42bDE2LTE2YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw1LjUgMGMyOC41IDAgNDIuOCAzNC41IDIyLjYgNTQuNi02IDYtMTQuMSA5LjQtMjIuNiA5LjRsLTYxLjUgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRsLTIxLjMgMjEuM2MtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMi43IDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjkuMy0yOS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTE4LjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNmwwLTM0LjdjMC04LjUtMy40LTE2LjYtOS40LTIyLjZsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDUgMGMxMi40IDAgMjIuNy03LjEgMjgtMTd6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFVLdD1ydmUsb3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1idGFjayIsaWNvbjpbMzg0LDUxMixbMTI4MjA0LDEyODM5MiwidGh1bWItdGFjayJdLCJmMDhkIiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5LjUgMCAxMC4zIDEzNC4xYzM3LjEgMjEuMiA2NS44IDU2LjQgNzguMiA5OS43bDMuOCAxMy40YzIuOCA5LjcgLjggMjAtNS4yIDI4LjFTMzYyIDM1MiAzNTIgMzUyTDMyIDM1MmMtMTAgMC0xOS41LTQuNy0yNS41LTEyLjdzLTgtMTguNC01LjItMjguMUw1IDI5Ny44YzEyLjQtNDMuMyA0MS03OC41IDc4LjItOTkuN0w5My41IDY0IDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMTYwIDQwMGw2NCAwIDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTEyeiJdfSxXS3Q9b3ZlLEdLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LWRvd24iLGljb246WzM4NCw1MTIsW10sImYwYTciLCJNMzIgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMDgtNjQgMCAwIDIwOHpNMjI0IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTY0IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTYwLTk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tOTYtODhsMCAuNmM5LjQtNS40IDIwLjMtOC42IDMyLTguNiAxMy4yIDAgMjUuNCA0IDM1LjYgMTAuOCA4LjctMjQuOSAzMi41LTQyLjggNjAuNC00Mi44IDExLjcgMCAyMi42IDMuMSAzMiA4LjZsMC04LjZDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMEwxNjIuMyAwQzExOS44IDAgNzkuMSAxNi45IDQ5LjEgNDYuOUwzNy41IDU4LjVDMTMuNSA4Mi41IDAgMTE1LjEgMCAxNDlsMCAyN2MwIDM1LjMgMjguNyA2NCA2NCA2NGw4OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwbC01NiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJ6Il19LG52ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yMDgtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sS0t0PW52ZSxhUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1lbXB0eSIsaWNvbjpbMzIwLDUxMixbInRlbXBlcmF0dXJlLTAiLCJ0aGVybW9tZXRlci0wIiwidGhlcm1vbWV0ZXItZW1wdHkiXSwiZjJjYiIsIk02NCA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTYgNDQ3LjUgMTYgMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0eiJdfSxZS3Q9YVMsWkt0PWFTLFhLdD1hUyxRS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLW5vbmUiLGljb246WzQ0OCw1MTIsW10sImY4NTAiLCJNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMjg4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTE2MCA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0yODggMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek00MTYgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMC0zODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQxNiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0eiJdfSxKS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlnaGxpZ2h0ZXIiLGljb246WzU3Niw1MTIsW10sImY1OTEiLCJNMzE1IDMxNUw0NzMuNCA5OS45IDQ0NC4xIDcwLjYgMjI5IDIyOSAzMTUgMzE1em0tMTg3IDVsMCAwIDAtNzEuN2MwLTE1LjMgNy4yLTI5LjYgMTkuNS0zOC42TDQyMC42IDguNEM0MjggMi45IDQzNyAwIDQ0Ni4yIDAgNDU3LjYgMCA0NjguNSA0LjUgNDc2LjYgMTIuNmw1NC44IDU0LjhjOC4xIDguMSAxMi42IDE5IDEyLjYgMzAuNSAwIDkuMi0yLjkgMTguMi04LjQgMjUuNkwzMzQuNCAzOTYuNWMtOSAxMi4zLTIzLjQgMTkuNS0zOC42IDE5LjVsLTcxLjcgMC0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC01MC43LTUwLjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDEyOCAzMjB6TTcgNDY2LjNsNTEuNy01MS43IDcwLjYgNzAuNi0xOS43IDE5LjdjLTQuNSA0LjUtMTAuNiA3LTE3IDdMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuN2MwLTYuNCAyLjUtMTIuNSA3LTE3eiJdfSxlWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13YXZlIixpY29uOls1MTIsNTEyLFtdLCJmNTNhIiwiTTAgNDE5LjZMMCAxMDkuNWMwLTIzLjIgMjQuMS0zOC42IDQ2LjMtMzIgODcuNyAyNi4yIDE0OS43IDUuNSAyMTIuMS0xNS4zIDY0LjUtMjEuNSAxMjkuNC00My4xIDIyMy4zLTEzLjEgMTguNSA1LjkgMzAuMyAyMy44IDMwLjMgNDMuM2wwIDMxMC4xYzAgMjMuMi0yNC4xIDM4LjYtNDYuMiAzMi04Ny43LTI2LjItMTQ5LjgtNS41LTIxMi4xIDE1LjMtNjQuNSAyMS41LTEyOS40IDQzLjEtMjIzLjMgMTMuMS0xOC41LTUuOS0zMC4zLTIzLjgtMzAuMy00My4zek0zMzYgMjU2YzAtNTMtMzUuOC05Ni04MC05NnMtODAgNDMtODAgOTYgMzUuOCA5NiA4MCA5NiA4MC00MyA4MC05NnpNMTIwIDQxMy42YzQuNCAwIDcuOS0zLjggNy4yLTguMS00LjYtMjcuOC0yNy00OS41LTU1LjItNTMtNC40LS41LTggMy4xLTggNy41bDAgMzkuOWMwIDMuNiAyLjQgNi44IDYgNy43IDE3LjkgNC4yIDM0LjMgNi4xIDUwIDYuMXptMzE4LjUtNTEuMWM1IC44IDkuNS0zIDkuNS04bDAtNDIuNmMwLTQuNC0zLjYtOC4xLTgtNy41LTI1LjIgMy4xLTQ1LjkgMjAuOS01My4yIDQ0LjYtMS40IDQuNyAyLjMgOS4xIDcuMiA5LjIgMTQuMiAuNCAyOSAxLjcgNDQuNCA0LjN6TTQ0OCAxNTJsMC0zOS45YzAtMy42LTIuNS02LjgtNi03LjctMTcuOS00LjItMzQuMy02LjEtNTAtNi4xLTQuNCAwLTcuOSAzLjgtNy4yIDguMSA0LjYgMjcuOCAyNyA0OS41IDU1LjIgNTMgNC40IC41IDgtMy4xIDgtNy41ek0xMjUuMiAxNjIuOWMxLjQtNC43LTIuMy05LjEtNy4yLTkuMi0xNC4yLS40LTI5LTEuNy00NC40LTQuMy01LS44LTkuNSAzLTkuNSA4TDY0IDIwMGMwIDQuNCAzLjYgOC4xIDggNy41IDI1LjItMy4xIDQ1LjktMjAuOSA1My4yLTQ0LjZ6Il19LHRZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXItc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTQuNS05NC41YzQwLjItMjMgNjkuNS05Ni45IDY5LjUtMTg0LjYgMC0xMDYtNDMtMTkyLTk2LTE5MnMtOTYgODYtOTYgMTkyYzAgMjQuMSAyLjIgNDcuMiA2LjMgNjguNEwzMDQgMjM4LjIgMzA0IDIyNGMwLTU4LjkgMTEuOC0xMTQuNSAzMy4yLTE1Ny4yIDUuOS0xMS43IDEzLjEtMjMuNyAyMS45LTM0LjhMMTI4IDMyYy04LjMgMC0xNi40IDIuMS0yNC4xIDYuMWwtNjMtNjN6TTMyIDIyNGwwIDI2NGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwxNjAgMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTExNC4yLTI1Ni0yNTZDMzcuOSAxNDguMiAzMiAxODQuNyAzMiAyMjR6bTQxNiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LGFZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtMzQuNCAyMi02NSA1NC43LTc1LjlsMTEyLTM3LjNjMy4xLTEgNi4yLTEuOCA5LjMtMi41bDAtMzkuMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnptODcuOCAzMTIuNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LHNZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LWhlaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZjAzNCIsIk00MCAzMkMxNy45IDMyIDAgNDkuOSAwIDcybDAgNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDY0IDAgMCAzMjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyMCA2NCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDMyek00MzguNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTkuNCA5LjQgMC0yMjkuNSA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy02LTYtMTQuMS05LjQtMjIuNi05LjRzLTE2LjYgMy40LTIyLjYgOS40bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjI5LjUtOS40LTkuNHoiXX0sbHZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUiLGljb246WzUxMiw1MTIsWzEyODUzOSwiZ3Jpbi10b25ndWUiXSwiZjU4OSIsIk0wIDI1NmMwIDEwNC40IDYyLjUgMTk0LjIgMTUyLjIgMjM0LjEtNS4zLTEzLTguMi0yNy4yLTguMi00Mi4xbDAtNjEuN2MtMTYuOS0xNi41LTMwLjEtMzYuNy0zOC4zLTU5LjMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS04LjMgMjIuNi0yMS41IDQyLjgtMzguMyA1OS4zbDAgNjEuN2MwIDE0LjktMi45IDI5LjEtOC4yIDQyLjEgODkuNy0zOS44IDE1Mi4yLTEyOS42IDE1Mi4yLTIzNC4xIDAtMTQxLjQtMTE0LjYtMjU2LTI1Ni0yNTZTMCAxMTQuNiAwIDI1NnptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDI0MGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LGlZdD1sdmUscll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2lnbmF0dXJlIixpY29uOls2NDAsNTEyLFtdLCJmNTczIiwiTTY0LjEgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjc3LjYgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgOTcuNS0xMzIgMTMyLTQyLjEgMC0xNi4xLTUzLjZjLTQuNy0xNS43LTE5LjEtMjYuNC0zNS41LTI2LjQtMTEuMyAwLTIxLjkgNS4xLTI4LjkgMTMuOUwxMzMuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDMxLjUgMGMtLjkgMy4xLTEuNyA2LjMtMi4zIDkuNWwtMTAuOSA1NC41LTE0Ni4yIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5My41IDAtMTE3LjUtMTE3LjV6bTYwLjIgNDA4LjRjMi41LTEyLjQgOC42LTIzLjggMTcuNS0zMi43bDExOC45LTExOC45IDgwIDgwLTExOC45IDExOC45Yy04LjkgOC45LTIwLjMgMTUtMzIuNyAxNy41bC01OS42IDExLjljLS45IC4yLTEuOSAuMy0yLjkgLjMtOCAwLTE0LjYtNi41LTE0LjYtMTQuNiAwLTEgLjEtMS45IC4zLTIuOWwxMS45LTU5LjZ6bTI2Ny44LTEyM2wtMjguOCAyOC44LTgwLTgwIDI4LjgtMjguOGMyMi4xLTIyLjEgNTcuOS0yMi4xIDgwIDBzMjIuMSA1Ny45IDAgODB6Il19LG9ZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy13aGVhdCIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0OS4zIDBjLTYtMTQuOC05LjMtMzEtOS4zLTQ4IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTI1LjIgMTQuNS00Ni45IDM1LjYtNTcuNC0yLjQtNy4xLTMuNi0xNC43LTMuNi0yMi42bDAtMzJDMzY4IDk2LjcgMzg4IDcwLjEgNDE1LjkgNjAuMSA0MTMuOSAyNi42IDM4NiAwIDM1MiAwTDk2IDB6TTIwOCAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptMzUyIDBsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6bTAgMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6TTQ5NiA1MjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTE2LTk2YzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDB6bTE2LTEyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2ek01MTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTk2IDY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00NDAgMTA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sbll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVlIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sd29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZ1dGJvbCIsaWNvbjpbNTEyLDUxMixbOTkxNywiZnV0Ym9sLWJhbGwiLCJzb2NjZXItYmFsbCJdLCJmMWUzIiwiTTQxNy4zIDM2MC4xbC03MS42LTQuOGMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0xNy42IDY5LjZDMjg5LjUgNDQ1LjggMjczIDQ0OCAyNTYgNDQ4cy0zMy41LTIuMi00OS4yLTYuNEwxODkuMiAzNzJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTcxLjYgNC44Yy0xNy42LTI3LjItMjguNS01OS4yLTMwLjQtOTMuNkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNWwtMjYuNy02Ni42QzEyOCAxMDkuMiAxNTUuMyA4OSAxODYuNyA3Ni45bDU1LjIgNDZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNTUuMi00NmMzMS4zIDEyLjEgNTguNyAzMi4zIDc5LjYgNTcuOWwtMjYuNyA2Ni42Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlsNjAuNyAzOC4yYy0xLjkgMzQuNC0xMi44IDY2LjQtMzAuNCA5My42ek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmw1OS4yIDBjMTAuNCAwIDE5LjYtNi43IDIyLjgtMTYuNmwxOC4zLTU2LjNjMy4yLTkuOS0uMy0yMC43LTguNy0yNi44bC00Ny45LTM0Ljh6Il19LGxZdD13b2UsY1l0PXdvZSxjdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBsdXMiLGljb246WzUxMiw1MTIsWyJwbHVzLWNpcmNsZSJdLCJmMDU1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzIgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sZFl0PWN2ZSx1WXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhemlsaWFuLXJlYWwtc2lnbiIsaWNvbjpbNTEyLDUxMixbXSwiZTQ2YyIsIk00MDAgMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC00OC45IDBjLTI2IDAtNDcuMSAyMS4xLTQ3LjEgNDcuMSAwIDIyLjUgMTUuOSA0MS44IDM3LjkgNDYuMmwzMi44IDYuNmM1MS45IDEwLjQgODkuMyA1NiA4OS4zIDEwOSAwIDUwLjYtMzMuOCA5My4zLTgwIDEwNi43bDAgMjAuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQuOSAwYzI2IDAgNDcuMS0yMS4xIDQ3LjEtNDcuMSAwLTIyLjUtMTUuOS00MS44LTM3LjktNDYuMmwtMzIuOC02LjZjLTUxLjktMTAuNC04OS4zLTU2LTg5LjMtMTA5IDAtNTAuNiAzMy44LTkzLjIgODAtMTA2LjdMMzY4IDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6Il19LHBZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLWFuZC1jcmVzY2VudCIsaWNvbjpbNTEyLDUxMixbOTc3MF0sImY2OTkiLCJNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAzMyAwIDY0LjYgNi4zIDkzLjYgMTcuNyA3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOHM5My4xIDIwOCAyMDggMjA4YzQuOSAwIDkuOC0uMiAxNC42LS41IDcuOS0uNSAxNSA0LjcgMTYuNyAxMi40cy0yLjQgMTUuNS05LjggMTguNEMzMjAuNiA1MDUuNyAyODkgNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6TTM3NS40IDEzNy40YzMuNS03LjEgMTMuNy03LjEgMTcuMiAwbDMxLjUgNjMuOGMxLjQgMi44IDQuMSA0LjggNy4yIDUuM2w3MC40IDEwLjJjNy45IDEuMSAxMSAxMC44IDUuMyAxNi40bC01MC45IDQ5LjZjLTIuMyAyLjItMy4zIDUuNC0yLjggOC41bDEyIDcwLjFjMS4zIDcuOC02LjkgMTMuOC0xMy45IDEwLjFsLTYzLTMzLjFjLTIuOC0xLjUtNi4xLTEuNS04LjkgMGwtNjMgMzMuMWMtNyAzLjctMTUuMy0yLjMtMTMuOS0xMC4xbDEyLTcwLjFjLjUtMy4xLS41LTYuMy0yLjgtOC41TDI2MSAyMzMuMWMtNS43LTUuNi0yLjYtMTUuMiA1LjMtMTYuNGw3MC40LTEwLjJjMy4xLS41IDUuOC0yLjQgNy4yLTUuM2wzMS41LTYzLjh6Il19LGR2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxoWXQ9ZHZlLGZZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3NwaXRhbC11c2VyIixpY29uOls2NDAsNTEyLFtdLCJmODBkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjcgMCAyNy43IDguOCA1My40IDIzLjggNzQuNC01MS41IDIxLTg3LjggNzEuNi04Ny44IDEzMC43IDAgMSAwIDEuOSAwIDIuOWwtMTc2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDY0ek0yMDggNDAwbDAgNjQgNTMuNCAwYzcuMi0yOS40IDIxLjMtNTYuMSA0MC40LTc4LjMtNi4xLTE5LjUtMjQuMy0zMy43LTQ1LjgtMzMuNy0yNi41IDAtNDggMjEuNS00OCA0OHpNMjQ4IDg4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwek00MTYgMzA0YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxtWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGIwIiwiTTI2Mi42IDQyMi42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDI1LjQgMjUuNCAwLTExNC43LTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjU2IDAgMC0xMTQuNy0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDgwLTgwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0yNS40LTI1LjQgMCA5NC44Yy0yNS4zIDIwLjMtNDIuOCA1MC4xLTQ3IDgzLjlsLTE0NSAwIDAgMTE0LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTE5MiAzMmwwIDE0NC02NCAwIDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHV2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxnWXQ9dXZlLGJZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2xseS1iZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYSIsIk0yNTYuMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTI3NyAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjIgMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjkgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42LTM0LjYgMC02Mi43LTI4LjEtNjIuNy02Mi43bDAtMzJjMC0xNi40LTE2LTI3LjktMzEuNi0yMi44bC0xMi44IDQuM2MtMTggNi0zNy4zIDYuNS01NS42IDEuNWwtMjkuNi04LjFjLTIuOS0uOC01LjktMS04LjctLjcgNC4yIDkuNyA1LjggMjAuOCAzLjcgMzIuM2wtNi4zIDM0LjhjLTEuNSA4LjQtMS40IDE3IC41IDI1LjNsNS4zIDIzLjljMi44IDEyLjcgMS4xIDI1LjItNCAzNS45ek0xMjcuOCAyMzQuNWMtMTUuNS01LjItMzEuNiA2LjQtMzEuNiAyMi44bDAgMzJjMCAzNC42LTI4LjEgNjIuNy02Mi43IDYyLjctMTYuNCAwLTI3LjkgMTYtMjIuOCAzMS42TDE1IDM5Ni40YzYgMTggNi41IDM3LjMgMS41IDU1LjZsLTUuMyAxOS40QzYuNCA0ODkuNCAyMi44IDUwNS44IDQwLjcgNTAxbDE5LjQtNS4zYzE4LjMtNSAzNy42LTQuNSA1NS42IDEuNWwxMi44IDQuM2MxNS41IDUuMiAzMS42LTYuNCAzMS42LTIyLjhsMC0zMmMwLTM0LjYgMjguMS02Mi43IDYyLjctNjIuNyAxNi40IDAgMjcuOS0xNiAyMi44LTMxLjZsLTQuMy0xMi44Yy02LTE4LTYuNS0zNy4zLTEuNS01NS42bDUuMy0xOS40YzQuOS0xNy45LTExLjYtMzQuNC0yOS41LTI5LjVsLTE5LjQgNS4zYy0xOC4zIDUtMzcuNiA0LjQtNTUuNi0xLjVsLTEyLjgtNC4zek0zODQuMiAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sdll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MF0sImYyMjYiLCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgMSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS04Mi0xNS0xNDQuMS04Ni44LTE0NC4xLTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2UzM2OCA3OC44IDM2OCAxNzZ6TTM1Ny41IDMyN2MxNC40LTE1LjggMjYuNi0zMy43IDM2LjEtNTMuMSAxNi4xIDkgMzQuNyAxNC4xIDU0LjUgMTQuMSA2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1MDkuOSA2NCA0NDggNjRjLTE5LjggMC0zOC4zIDUuMS01NC41IDE0LjEtOS41LTE5LjQtMjEuNi0zNy4zLTM2LjEtNTMuMSAyNi40LTE1LjkgNTcuNC0yNSA5MC41LTI1IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIC45IC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTIxLjEtMy45LTQwLjktMTEuNS01OC42LTIyLjJ6Il19LHhZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtcXVlc3Rpb24iLGljb246WzM4NCw1MTIsW10sImU0ZTMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAyNDhjMTYuMSAwIDI5LjIgMTMuMSAyOS4yIDI5LjIgMCA4LjctMy4xIDEzLjktNi45IDE3LjctNC41IDQuNC0xMC43IDcuNS0xNi44IDkuNS0xNC45IDUtMjkuNSAxOS4zLTI5LjUgMzkuNSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMS41IDAgMjEuMi04LjEgMjMuNS0xOSAxOS4yLTcuMSA1My43LTI2LjMgNTMuNy03MS44IDAtNDIuNi0zNC42LTc3LjItNzcuMi03Ny4ycy03Ny4yIDM0LjYtNzcuMiA3Ny4yYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xNi4xIDEzLjEtMjkuMiAyOS4yLTI5LjJ6bTI4IDE2OGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6Il19LHlZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3Rkb2ciLGljb246WzUxMiw1MTIsWzEyNzc4OV0sImY4MGYiLCJNMjg4IDBjLTIwLjUgMC00MC4xIDguMS01NC42IDIyLjZMMjIuNiAyMzMuNEM4LjEgMjQ3LjkgMCAyNjcuNSAwIDI4OCAwIDMwMC4yIDIuOSAzMTIuMSA4LjIgMzIyLjdMMzIyLjcgOC4yQzMxMi4xIDIuOSAzMDAuMiAwIDI4OCAwek0yMjQgNTEyYzIwLjUgMCA0MC4xLTguMSA1NC42LTIyLjZMNDg5LjQgMjc4LjZjMTQuNS0xNC41IDIyLjYtMzQuMSAyMi42LTU0LjYgMC0xMi4yLTIuOS0yNC4xLTguMi0zNC43TDE4OS4zIDUwMy44YzEwLjcgNS40IDIyLjYgOC4yIDM0LjcgOC4yek00NTYuNiAxNjguNmMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0yODggMjg4Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjFzODEuOSAzMS4yIDExMy4xIDBsMjg4LTI4OHoiXX0sd1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tYnJhY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA5YSIsIk0yNDYuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAxOTIgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpNNjQgMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMzM0LjMgMCAzNTJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHoiXX0sa1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3Jvc2NvcGUiLGljb246WzUxMiw1MTIsWzEyODMwMF0sImY2MTAiLCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NCAzMiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzM5MC43IDQ0OCAzMjAgNDQ4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYuOSAwYzMwLjQtMzQgNDguOS03OC44IDQ4LjktMTI4IDAtMTA2LTg2LTE5Mi0xOTItMTkybC0zMiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6TTEyMCAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxTWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0bDMwNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNTEuNi0zMC41LTk2LjEtNzQuNS0xMTYuMyA2LjctMTMuMSAxMC41LTI4IDEwLjUtNDMuNyAwLTUzLTQzLTk2LTk2LTk2LTE3LjcgMC0zNC4yIDQuOC00OC40IDEzLjEtMjQuMS00NS44LTcyLjItNzcuMS0xMjcuNi03Ny4xLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOCAuNyAxNS45IDEuOSAyMy41LTU2LjkgMTkuMi05Ny45IDczLjEtOTcuOSAxMzYuNXoiXX0sX1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsLWJhdC1iYWxsIixpY29uOls1NzYsNTEyLFtdLCJmNDMyIiwiTTQ2NC4xIDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptOC40LTU3NmMxNS4xIDAgMjkuNyA1LjggNDAuNyAxNi4ybDQ3LjIgNDQuOGMxMi42IDEyIDE5LjEgMjkgMTcuNSA0Ni4zLTEuMiAxMy4zLTcgMjUuOC0xNi41IDM1LjJMMzYzLjEgMzA5Yy03LjMgNy4zLTE1LjcgMTMuNC0yNSAxOEwyMDYgMzkzYy05LjIgNC42LTE3LjcgMTAuNy0yNSAxOGwtOTIgOTIgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN2wtMS44LTEuNy00OC00OC0xLjctMS44Yy03LjctOS40LTcuMS0yMy4zIDEuNy0zMi4xczIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgOTItOTJjNy4zLTcuMyAxMy40LTE1LjcgMTgtMjVsNjYuMS0xMzIuMWM0LjYtOS4yIDEwLjctMTcuNyAxOC0yNUw0MzAuOC0xNC43QzQ0MS45LTI1LjggNDU2LjktMzIgNDcyLjUtMzJ6Il19LHB2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItcmVhciIsaWNvbjpbNTEyLDUxMixbImNhci1hbHQiXSwiZjVkZSIsIk0xNjUuNCA5NmwxODEuMiAwYzEzLjYgMCAyNS43IDguNiAzMC4yIDIxLjRsMjYuMSA3NC42LTI5My44IDAgMjYuMS03NC42YzQuNS0xMi44IDE2LjYtMjEuNCAzMC4yLTIxLjR6bS05MC42IC4zTDM5LjYgMTk2LjhDMTYuNCAyMDYuNCAwIDIyOS4zIDAgMjU2bDAgOTZjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjU2IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDAuNmMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40bDAtOTZjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgOTYuM0M0MjMuNyA1Ny44IDM4Ny40IDMyIDM0Ni42IDMyTDE2NS40IDMyYy00MC44IDAtNzcuMSAyNS44LTkwLjYgNjQuM3pNMjA4IDI4OGw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00OCAyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTM2MC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxNWXQ9cHZlLGh2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2stc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aHVtYi10YWNrLXNsYXNoIl0sImU2OGYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MTcuOCAzNTIgNDQ4IDM1MmMxMCAwIDE5LjUtNC43IDI1LjUtMTIuN3M4LTE4LjQgNS4yLTI4LjFMNDc1IDI5Ny44Yy0xMi40LTQzLjMtNDEtNzguNS03OC4yLTk5LjdMMzg2LjUgNjQgNDE2IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMTYwIDBjLTcuNCAwLTE0LjEgMi41LTE5LjUgNi42TDE5MC4xIDU2LjMgMTg1LjMgMTE5LjQgNDEtMjQuOXpNMjgyLjIgMzUyTDE0OS43IDIxOS42Yy0yMi43IDIwLjUtMzkuOCA0Ny40LTQ4LjcgNzguM2wtMy44IDEzLjRjLTIuOCA5LjctLjggMjAgNS4yIDI4LjFTMTE4IDM1MiAxMjggMzUybDE1NC4yIDB6TTI1NiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMi02NCAwIDAgMTEyeiJdfSx6WXQ9aHZlLENZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVzLW1pbnVzIixpY29uOlszODQsNTEyLFtdLCJlNDNjIiwiTTIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDEyOC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTEyOHpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sVFl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwOSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1My40IDMzOS4xYy03LjEtNS4yLTE3LjEtMy42LTIyLjMgMy41bC01MyA3Mi44LTI2LjctMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDAtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuN3M4LjktMi44IDExLjctNi42bDY0LTg4YzUuMi03LjEgMy42LTE3LjEtMy41LTIyLjN6Il19LCRZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXkiLGljb246WzQ0OCw1MTIsW10sImY3ODMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6Il19LERZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWJyYSIsaWNvbjpbNTEyLDUxMixbXSwiZTg0YiIsIk00ODAgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NDggMHpNMjU2IDMyYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTYuNi0yLjQgMzIuNy02LjcgNDhsNTQuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMDQuMiAwYy0xMS44IDAtMjIuNy02LjUtMjguMi0xNi45cy00LjktMjMuMSAxLjYtMzIuOWMxMS45LTE3LjggMTguOC0zOS4xIDE4LjgtNjIuMiAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxNDQgMTQ2LjEgMTQ0IDIwOGMwIDIzLjEgNi45IDQ0LjQgMTguOCA2Mi4yIDYuNiA5LjggNy4yIDIyLjUgMS42IDMyLjlTMTQ4LjEgMzIwIDEzNi4yIDMyMEwzMiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTQuOCAwYy00LjMtMTUuMy02LjgtMzEuNC02LjgtNDggMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZ6Il19LExZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sRVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS12aWJyYXRlIixpY29uOls1NzYsNTEyLFtdLCJlODE2IiwiTTM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zODRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDB6TTI0OCA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNNDguOCAxMzMuNGM5LjQtNy43IDIzLjMtNy4xIDMyLjEgMS43IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMSAzMSAyNS40IDI1LjQgMi45IDMuMmM2LjMgNy43IDkuOCAxNy40IDkuOCAyNy40IDAgMTEuNS00LjYgMjIuNS0xMi43IDMwLjZsLTI1LjQgMjUuNCAzMSAzMSAxLjcgMS44YzcuNyA5LjQgNy4xIDIzLjMtMS43IDMyLjFzLTIyLjcgOS4zLTMyLjEgMS43TDQ3IDM3NyAxMi43IDM0Mi42QzUuNiAzMzUuNSAxLjIgMzI2LjIgLjIgMzE2LjNMMCAzMTIgLjIgMzA3LjdjMS05LjkgNS40LTE5LjIgMTIuNS0yNi4zTDM4LjEgMjU2IDEyLjcgMjMwLjZDNS42IDIyMy41IDEuMiAyMTQuMiAuMiAyMDQuM0wwIDIwMCAuMiAxOTUuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMNDcgMTM1IDQ4LjggMTMzLjR6TTQ5NSAxMzVjOC44LTguOCAyMi43LTkuMyAzMi4xLTEuN2wxLjggMS43IDM0LjMgMzQuM2M3LjEgNy4xIDExLjUgMTYuNCAxMi41IDI2LjNsLjIgNC4zLS4yIDQuM2MtMSA5LjktNS40IDE5LjItMTIuNSAyNi4zbC0yNS40IDI1LjQgMjUuNCAyNS40YzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTM0LjMgMzQuMy0xLjggMS43Yy05LjQgNy43LTIzLjMgNy4xLTMyLjEtMS43cy05LjMtMjIuNy0xLjctMzIuMWwxLjctMS44IDMxLTMxLTI1LjQtMjUuNGMtOC4xLTguMS0xMi43LTE5LjEtMTIuNy0zMC42IDAtMTAgMy41LTE5LjcgOS44LTI3LjRsMi45LTMuMiAyNS40LTI1LjQtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxmdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTIyLjYgMTQzLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sUFl0PWZ2ZSxJWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtYmV0d2Vlbi1saW5lcyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MSIsIk0yNCAxNmw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA2NEMxMC43IDY0IDAgNTMuMyAwIDQwUzEwLjcgMTYgMjQgMTZ6bTAgNDQ4bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMzkyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMEMxMzguNiAzMTguMyAxMjggMzQ5LjkgMTI4IDM4NGwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiA0MTYgMzIgNDA2LjQgMzIgMzk0LjdMMzIgMzg0YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMTUyLTE2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDM4NGMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHoiXX0sQVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTEzIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxtdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtbGlzdCIsaWNvbjpbNDQ4LDUxMixbInRoLWxpc3QiXSwiZjAwYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgMGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAyMjRsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHpNNjQgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6Il19LE5ZdD1tdmUsUll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYXNrLXZpYWwiLGljb246WzY0MCw1MTIsW10sImU0ZjMiLCJNMTg0LjYgNDExLjVjLTMuMSA3LjMtNS40IDE0LjktNi44IDIyLjYtMTQuNSA4LjgtMzEuNSAxMy45LTQ5LjggMTMuOS01MyAwLTk2LTQzLTk2LTk2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAyNTUuNi0zOS40IDkxLjl6TTk2IDY0bDAgMTI4IDY0IDAgMC0xMjgtNjQgMHpNMzUyIDBMNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuNCA5MS4zIDIxM2MyLjMgNS40IDMuOCAxMS4xIDQuNCAxN2wuMyAuNi0uMyAwYy4yIDEuOCAuMyAzLjYgLjMgNS40IDAgMzIuMy0yNi4yIDU4LjYtNTguNiA1OC42bC0yNjYuOSAwYy0zMi4zIDAtNTguNi0yNi4yLTU4LjYtNTguNiAwLTEuOCAuMS0zLjYgLjMtNS40bC0uMyAwIC4zLS42Yy42LTUuOCAyLjEtMTEuNiA0LjQtMTdMMzIwIDIxNy40IDMyMCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMzAyLjMgMCAzMjAgMGwzMiAwek00NTMuMiAyNDIuNmMtMy40LTgtNS4yLTE2LjUtNS4yLTI1LjJsMC0xNTMuNC02NCAwIDAgMTUzLjRjMCA4LjctMS44IDE3LjItNS4yIDI1LjJsLTMzLjIgNzcuNCAxNDAuNyAwLTMzLjItNzcuNHoiXX0sZ3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbImV4Y2xhbWF0aW9uLWNpcmNsZSJdLCJmMDZhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTE5MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjYgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LE9ZdD1ndmUsYnZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRheGkiLGljb246WzUxMiw1MTIsWzEyODY2MiwiY2FiIl0sImYxYmEiLCJNMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItOC45IDBjLTQyIDAtNzkuMSAyNy4zLTkxLjYgNjcuNGwtMjMgNzMuNUMxNC41IDIxOS4xIDAgMjQzLjkgMCAyNzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDMyMCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE3NmMwLTI4LjEtMTQuNS01Mi45LTM2LjQtNjcuMWwtMjMtNzMuNUM0NDAuMSA5MS4zIDQwMi45IDY0IDM2MC45IDY0bC04LjkgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwek0xNTEuMSAxMjhsMjA5LjkgMGMxNCAwIDI2LjQgOS4xIDMwLjUgMjIuNWwxMyA0MS41LTI5Ni45IDAgMTMtNDEuNWM0LjItMTMuNCAxNi41LTIyLjUgMzAuNS0yMi41ek05NiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yODggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sRll0PWJ2ZSx2dmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInJlbW92ZS1mb3JtYXQiXSwiZjg3ZCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDMyMi43IDI1Ni45IDM2OC4yIDk2IDQ3MSA5NiA0NjUgMTIwLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTEtNDQuMUM1NDUuNiA2MS4zIDUyMi43IDMyIDQ5MS41IDMybC0zMTkgMGMtMTkuOCAwLTM3LjMgMTIuMS00NC41IDMwLjFsLTg3LTg3ek0xODAuNCAxMTQuNWw0LjYtMTguNSAxMTYuNyAwLTMwLjggMTA5LTkwLjUtOTAuNXpNMjQxIDMxMC44TDIxMS4zIDQxNiAxNjAgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Mi4yIDAgMTUuMS01My4zLTUxLjktNTEuOXoiXX0sQll0PXZ2ZSxIWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXB1bGxpbmciLGljb246WzU3Niw1MTIsW10sImU1MzUiLCJNODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyIDkuOCAwIDE4LjUtNC40IDI0LjQtMTEuMkw4MC40IDQ4NS4zYzIuOSAxNy40IDE5LjQgMjkuMiAzNi44IDI2LjNzMjkuMi0xOS40IDI2LjMtMzYuOGwtMjAuNS0xMjIuNyAxNS43IDAgMzAgMTM0LjljMy44IDE3LjMgMjAuOSAyOC4xIDM4LjIgMjQuM3MyOC4xLTIwLjkgMjQuMy0zOC4ybC01Ny4zLTI1OCAxMTYuMyA1My44Yy41IC4zIDEuMSAuNSAxLjYgLjcgOC42IDMuNiAxOCAzLjEgMjUuOS0uNyAzLjQtMS42IDYuNi0zLjkgOS4zLTYuNyAzLjEtMy4yIDUuNS03IDcuMS0xMS40IC4xLS4zIC4yLS43IC4zLTFsMi41LTcuNWM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOWwtMjEuNC0xMC43LTE1LjMtMzYuOGMtMTcuMS00MS4xLTU3LjMtNjcuOS0xMDEuOS02Ny45LTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMjQuNCAxMC45LTQ0LjYgMjktNTguMSA1MS42TDE1Ny4zIDEzNi45QzE0NC43IDEzMSAxMzAuOSAxMjggMTE3IDEyOGwtNTMgMHpNNDY0IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ5LjcgMzM1LjZsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM3Mi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6Il19LHFZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5NF0sImYwNGEiLCJNMjA0LjMgNDMuMUMyMTUuOSAzMiAyMzMgMjguOSAyNDcuNyAzNS4yUzI3MiA1NiAyNzIgNzJsMCAxMzYuMyAxNzIuMy0xNjUuMUM0NTUuOSAzMiA0NzMgMjguOSA0ODcuNyAzNS4yUzUxMiA1NiA1MTIgNzJsMCAzNjhjMCAxNi05LjYgMzAuNS0yNC4zIDM2LjhzLTMxLjggMy4yLTQzLjQtNy45TDI3MiAzMDMuNyAyNzIgNDQwYzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOWwtMTkyLTE4NEM0LjUgMjc3LjMgMCAyNjYuOSAwIDI1NnM0LjUtMjEuMyAxMi4zLTI4LjlsMTkyLTE4NHoiXX0seHZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1idXJzdCIsaWNvbjpbNjQwLDUxMixbImNhci1jcmFzaCJdLCJmNWUxIiwiTTIzMiAxNi4xbDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0ek0zMiAxNjguMWw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek0yODEuNSA3MC42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDI4MS41IDM2LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em0tMTgxIDIxNWwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1Mi45IDE3NS40TDUwNSAyMTYuMmM2LjQgMS43IDExLjEgNy4zIDExLjggMTMuOWw3LjIgNzQtMjMxLjUtNjIgNDMuMi02MC41YzMuOS01LjQgMTAuNy03LjkgMTcuMi02LjJ6TTIyMy42IDIyOC41bC0yLjEgMi45Yy0yMS43IDUuNS0zOS45IDIyLjMtNDYuMSA0NS41LTQuMSAxNS41LTEyLjQgNDYuNC0yNC44IDkyLjdsLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI3OC4yIDc0LjUtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjYgNC4xLTE1LjUgMTIuNC00Ni40IDI0LjgtOTIuN2w4LjMtMzAuOWM2LjItMjMuMi0xLjEtNDYuOC0xNy4yLTYyLjVsLS4zLTMuNi0xMC0xMDNjLTMuMi0zMy4yLTI2LjctNjAuOS01OC45LTY5LjVMMzY5LjUgMTEzLjZjLTMyLjItOC42LTY2LjQgMy42LTg1LjggMzAuOGwtNjAuMiA4NC4yem00OC43IDU3LjhhMzIgMzIgMCAxIDEgLTE2LjYgNjEuOCAzMiAzMiAwIDEgMSAxNi42LTYxLjh6bTIwOC4xIDg4LjlhMzIgMzIgMCAxIDEgNjEuOCAxNi42IDMyIDMyIDAgMSAxIC02MS44LTE2LjZ6Il19LGpZdD14dmUseXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpbmsiLGljb246WzU3Niw1MTIsWzEyODI3OSwiY2hhaW4iXSwiZjBjMSIsIk00MTkuNSA5NmMtMTYuNiAwLTMyLjcgNC41LTQ2LjggMTIuNy0xNS44LTE2LTM0LjItMjkuNC01NC41LTM5LjUgMjguMi0yNCA2NC4xLTM3LjIgMTAxLjMtMzcuMiA4Ni40IDAgMTU2LjUgNzAgMTU2LjUgMTU2LjUgMCA0MS41LTE2LjUgODEuMy00NS44IDExMC42bC03MS4xIDcxLjFjLTI5LjMgMjkuMy02OS4xIDQ1LjgtMTEwLjYgNDUuOC04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC0xLjUgMC0zIC4xLTQuNSAuNS0xNy43IDE1LjItMzEuNiAzMi45LTMxLjFzMzEuNiAxNS4yIDMxLjEgMzIuOWMwIC45IDAgMS44IDAgMi42IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDI0LjUgMCA0OC05LjcgNjUuNC0yNy4xbDcxLjEtNzEuMWMxNy4zLTE3LjMgMjcuMS00MC45IDI3LjEtNjUuNCAwLTUxLjEtNDEuNC05Mi41LTkyLjUtOTIuNXpNMjc1LjIgMTczLjNjLTEuOS0uOC0zLjgtMS45LTUuNS0zLjEtMTIuNi02LjUtMjctMTAuMi00Mi4xLTEwLjItMjQuNSAwLTQ4IDkuNy02NS40IDI3LjFMOTEuMSAyNTguMmMtMTcuMyAxNy4zLTI3LjEgNDAuOS0yNy4xIDY1LjQgMCA1MS4xIDQxLjQgOTIuNSA5Mi41IDkyLjUgMTYuNSAwIDMyLjYtNC40IDQ2LjctMTIuNiAxNS44IDE2IDM0LjIgMjkuNCA1NC42IDM5LjUtMjguMiAyMy45LTY0IDM3LjItMTAxLjMgMzcuMi04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC00MS41IDE2LjUtODEuMyA0NS44LTExMC42bDcxLjEtNzEuMWMyOS4zLTI5LjMgNjkuMS00NS44IDExMC42LTQ1LjggODYuNiAwIDE1Ni41IDcwLjYgMTU2LjUgMTU2LjkgMCAxLjMgMCAyLjYgMCAzLjktLjQgMTcuNy0xNS4xIDMxLjYtMzIuOCAzMS4ycy0zMS42LTE1LjEtMzEuMi0zMi44YzAtLjggMC0xLjUgMC0yLjMgMC0zMy43LTE4LTYzLjMtNDQuOC03OS42eiJdfSxWWXQ9eXZlLHd2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZC1zdGVwIixpY29uOlszODQsNTEyLFsic3RlcC1iYWNrd2FyZCJdLCJmMDQ4IiwiTTM2MyAzNi44Yy0xMi45LTctMjguNy02LjMtNDEgMS44TDY0IDIwOC4xIDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQuMSAyNTggMTY5LjZjMTIuMyA4LjEgMjggOC44IDQxIDEuOHMyMS0yMC41IDIxLTM1LjJsMC0zNjhjMC0xNC43LTguMS0yOC4yLTIxLTM1LjJ6Il19LFVZdD13dmUsV1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IngiLGljb246WzM4NCw1MTIsWzEyMF0sIjU4IiwiTTM3Ni42IDg0LjVjMTEuMy0xMy42IDkuNS0zMy44LTQuMS00NS4xcy0zMy44LTkuNS00NS4xIDQuMUwxOTIgMjA2IDU2LjYgNDMuNUM0NS4zIDI5LjkgMjUuMSAyOC4xIDExLjUgMzkuNFMtMy45IDcwLjkgNy40IDg0LjVMMTUwLjMgMjU2IDcuNCA0MjcuNWMtMTEuMyAxMy42LTkuNSAzMy44IDQuMSA0NS4xczMzLjggOS41IDQ1LjEtNC4xTDE5MiAzMDYgMzI3LjQgNDY4LjVjMTEuMyAxMy42IDMxLjUgMTUuNCA0NS4xIDQuMXMxNS40LTMxLjUgNC4xLTQ1LjFMMjMzLjcgMjU2IDM3Ni42IDg0LjV6Il19LGt2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yIDM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDE2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0eiJdfSxHWXQ9a3ZlLFN2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTk2IDI1NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0xMjAtNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEtZdD1TdmUsX3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQiLGljb246WzUxMiw1MTIsWzEyOTMwNiw5OTk1LCJoYW5kLXBhcGVyIl0sImYyNTYiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6Il19LFlZdD1fdmUsWll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbmNlciIsaWNvbjpbNTEyLDUxMixbXSwiZTg0NyIsIk00MDggMTUyYzU3LjQgMCAxMDQgNDYuNiAxMDQgMTA0IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTYtNTQuMyAwLTEwNC44LTE3LTE0Ni4zLTQ1LjktMTQuNS0xMC4xLTE4LTMwLjEtNy45LTQ0LjZzMzAuMS0xOCA0NC42LTcuOWMzMS4xIDIxLjcgNjguOSAzNC40IDEwOS43IDM0LjQgNjcuOSAwIDEyNy41LTM1LjMgMTYxLjctODguNS0zLjIgLjMtNi40IC41LTkuNyAuNS01Ny40IDAtMTA0LTQ2LjYtMTA0LTEwNHM0Ni42LTEwNCAxMDQtMTA0ek0yNTYgMGM1NC4zIDAgMTA0LjggMTcgMTQ2LjMgNDUuOSAxNC41IDEwLjEgMTggMzAuMSA3LjkgNDQuNnMtMzAuMSAxOC00NC42IDcuOWMtMzEuMS0yMS43LTY4LjktMzQuNC0xMDkuNy0zNC40LTY3LjkgMC0xMjcuNSAzNS4yLTE2MS43IDg4LjQgMy4yLS4zIDYuNC0uNCA5LjctLjQgNTcuNCAwIDEwNCA0Ni42IDEwNCAxMDRTMTYxLjQgMzYwIDEwNCAzNjAgMCAzMTMuNCAwIDI1NkMwIDI1NC4xIDAgMjUyLjIgLjEgMjUwLjQgMy4xIDExMS42IDExNi41IDAgMjU2IDB6TTEwNCAyMTZhNDAgNDAgMCAxIDAgMCA4MCA0MCA0MCAwIDEgMCAwLTgwem0zMDQgMGE0MCA0MCAwIDEgMCAwIDgwIDQwIDQwIDAgMSAwIDAtODB6Il19LE12ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YW4tc2h1dHRsZSIsaWNvbjpbNTc2LDUxMixbMTI4NjU2LCJzaHV0dGxlLXZhbiJdLCJmNWI2IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzM2YzAgMzUuMyAyOC43IDY0IDY0IDY0bC40IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MHM4My42LTM1LjEgODcuNi04MGwxMDQuNyAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODAgNDYuMSAwIDgzLjktMzUuNCA4Ny43LTgwLjUgMzEuNy0zLjggNTYuMy0zMC44IDU2LjMtNjMuNWwwLTEwMS4zYzAtMTMuOC00LjUtMjcuMy0xMi44LTM4LjRsLTgwLTEwNi43QzQ3MS4xIDczLjUgNDUyLjEgNjQgNDMyIDY0TDY0IDY0ek01MDQgMjI0bC0xMjAgMCAwLTk2IDQ4IDAgNzIgOTZ6TTY0IDIyNGwwLTk2IDk2IDAgMCA5Ni05NiAwem0xNjAgMGwwLTk2IDk2IDAgMCA5Ni05NiAwek0zOTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxYWXQ9TXZlLFFZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFpcnMiLGljb246WzU3Niw1MTIsW10sImUyODkiLCJNMzg0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NnoiXX0sSll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvcnNlLWhlYWQiLGljb246WzUxMiw1MTIsW10sImY3YWIiLCJNMCA0NjRMMCAzMTYuOUMwIDIwOC41IDY4LjMgMTExLjggMTcwLjUgNzUuNkwzNDAuMiAxNS41YzIxLjQtNy42IDQzLjggOC4zIDQzLjggMzAuOSAwIDExLTUuNSAyMS4yLTE0LjYgMjcuM0wzMzYgOTZjNDguMSAwIDkxLjIgMjkuOCAxMDguMSA3NC45bDQ4LjYgMTI5LjVjMTEuOCAzMS40IDQuMSA2Ni44LTE5LjYgOTAuNS0xNiAxNi0zNy44IDI1LjEtNjAuNSAyNS4xbC0zLjQgMGMtMjYuMSAwLTUwLjktMTEuNi02Ny42LTMxLjdsLTMyLjMtMzguN2MtMTEuNyA0LjEtMjQuMiA2LjQtMzcuMyA2LjRsLS4xIDBjLTYuMyAwLTEyLjUtLjUtMTguNi0xLjUtMy42LS42LTcuMi0xLjQtMTAuNy0yLjNsMCAwYy0yOC45LTcuOC01My4xLTI2LjgtNjcuOC01Mi4yLTQuNC03LjctMTQuMi0xMC4zLTIxLjktNS44cy0xMC4zIDE0LjItNS44IDIxLjljMjQgNDEuNSA2OC4zIDcwIDExOS4zIDcxLjlsNDcuMiA3MC44YzQgNi4xIDYuMiAxMy4yIDYuMiAyMC40IDAgMjAuMy0xNi41IDM2LjgtMzYuOCAzNi44TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6TTMyOCAyMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxlWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmF1bHQiLGljb246WzUxMiw1MTIsW10sImUyYzUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDI1NiAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI1NiAyNTZhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek02NCAyNTZhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptMzg0LTQ4YzAgMTcuOC05LjcgMzMuMy0yNCA0MS42bDAgNzguNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTc4LjRjLTE0LjMtOC4zLTI0LTIzLjgtMjQtNDEuNiAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4eiJdfSx0WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmctc2xhc2giLGljb246WzU3Niw1MTIsW10sImUxMzUiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDEyOS44IDY0IDQ4MCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDI1LjUtMTQuOSA0Ny40LTM2LjQgNTcuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXptMzQ1IDMxMWwwLTcwLjJjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgMjIuMiA0OCA0OHptNjEuNSA2MS41YzIwLjItOC40IDM0LjUtMjguNCAzNC41LTUxLjcgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0yMi4yIDAgNDMuNyA0My43ek0xMzAuMyAyMDAuMWMtMS41IDUtMi4zIDEwLjQtMi4zIDE1LjlsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzE4LjEgMCAzNC4xLTguNSA0NC40LTIxLjhMMzc4LjIgNDQ4IDk2IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNTZjMC03LjggMS40LTE1LjMgNC0yMi4ybDk0LjMgOTQuM3ptOTMuOCA5My44Yy0uMSAuNy0uMSAxLjQtLjEgMi4xIDAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtNTAuMiA0OC4xIDQ4LjF6Il19LGFadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtLXN0ZWVscGFuIixpY29uOls1NzYsNTEyLFtdLCJmNTZhIiwiTTI4OCAzMmMxNTkuMSAwIDI4OCA0OCAyODggMTI4bDAgMTkyYzAgODAtMTI4LjkgMTI4LTI4OCAxMjhTMCA0MzIgMCAzNTJMMCAxNjBDMCA4MCAxMjguOSAzMiAyODggMzJ6TTUyOCAxNjBjMC05LjktOC0yOS45LTU1LTQ5LjgtMTguNi03LjktNDAuOS0xNC40LTY2LTE5LjRsLTI3LjggNDMuNmMtNy4zIDExLjUtMTEuMiAyNC44LTExLjIgMzguNCAwIDE3LjUgNi40IDM0LjQgMTguMSA0Ny41bDkuOCAxMWMyOS44LTUuMiA1NS45LTEyLjUgNzcuMi0yMS41IDQ3LjEtMTkuOSA1NS0zOS45IDU1LTQ5Ljh6TTM0OS4yIDIzNy4zYy04LTI2LjItMzIuNC00NS4zLTYxLjItNDUuM3MtNTMuMyAxOS4xLTYxLjIgNDUuM2MxOS40IDEuNyAzOS45IDIuNyA2MS4yIDIuN3M0MS44LS45IDYxLjItMi43ek0xNjkgOTAuOGMtMjUuMiA1LTQ3LjQgMTEuNi02NiAxOS40LTQ3LjEgMTkuOS01NSAzOS45LTU1IDQ5LjhzOCAyOS45IDU1IDQ5LjhjMjEuMyA5IDQ3LjQgMTYuMyA3Ny4yIDIxLjVsOS44LTExYzExLjYtMTMuMSAxOC4xLTMwIDE4LjEtNDcuNSAwLTEzLjYtMy45LTI2LjktMTEuMi0zOC40TDE2OSA5MC44em01Ni4zLThjLS45IDQuMy0xLjQgOC43LTEuNCAxMy4yIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC00LjUtLjUtOS0xLjQtMTMuMi0xOS44LTEuOC00MC44LTIuOC02Mi42LTIuOHMtNDIuOCAxLTYyLjYgMi44eiJdfSxzWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTgwIDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHpNMjcwLjYgMTZDMjk3LjkgMTYgMzIwIDM4LjEgMzIwIDY1LjRsMCA0LjJjMCA2LjgtMS4zIDEzLjYtMy44IDE5LjlMMjg4IDE2MCA0NDggMTYwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyMy40LTE2LjggNDIuOS0zOSA0Ny4xIDQuNCA3LjMgNyAxNS44IDcgMjQuOSAwIDIyLjItMTUgNDAuOC0zNS40IDQ2LjMgMi4yIDUuNSAzLjQgMTEuNSAzLjQgMTcuNyAwIDI2LjUtMjEuNSA0OC00OCA0OGwtODcuOSAwYy0zNi4zIDAtNzEuNi0xMi40LTk5LjktMzUuMUwxODQgNDM1LjJjLTE1LjItMTIuMS0yNC0zMC41LTI0LTUwbDAtMTg2LjZjMC0xNC45IDMuNS0yOS42IDEwLjEtNDIuOUwyMjYuMyA0My4zQzIzNC43IDI2LjYgMjUxLjggMTYgMjcwLjYgMTZ6Il19LGladD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjViZiIsIk0zMTIgMjAxLjhjMC0xNy40IDkuMi0zMy4yIDE5LjktNDcgMTIuNi0xNi4yIDIwLjEtMzYuNiAyMC4xLTU4LjggMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyMi4xIDcuNSA0Mi41IDIwLjEgNTguOCAxMC43IDEzLjggMTkuOSAyOS42IDE5LjkgNDcgMCAyOS45LTI0LjMgNTQuMi01NC4yIDU0LjJMMTEyIDI1NmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTMzLjggMGMtMjkuOSAwLTU0LjItMjQuMy01NC4yLTU0LjJ6TTU2IDQ2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw1NiA0NjR6Il19LHJadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW5vcmFoIixpY29uOls2NDAsNTEyLFtdLCJmNjc2IiwiTTIwLjggNy40QzIyLjggMi45IDI3LjEgMCAzMiAwczkuMiAyLjkgMTEuMiA3LjRMNjEuMyA0OS43YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMUw2NCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDgxLjcgMCA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMjAuOCA3LjR6bTk2IDBDMTE4LjggMi45IDEyMy4xIDAgMTI4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzk2IDgxLjcgOTYgNjRsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDExNi44IDcuNHptNzcuOCA0Mi40TDIxMi44IDcuNEMyMTQuOCAyLjkgMjE5LjEgMCAyMjQgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMDguOCA3LjRDMzEwLjggMi45IDMxNS4xIDAgMzIwIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwzMDguOCA3LjR6bTc3LjggNDIuNEw0MDQuOCA3LjRDNDA2LjggMi45IDQxMS4xIDAgNDE2IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNNTAwLjggNy40QzUwMi44IDIuOSA1MDcuMSAwIDUxMiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMNTAwLjggNy40em03Ny44IDQyLjRMNTk2LjggNy40QzU5OC44IDIuOSA2MDMuMSAwIDYwOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMyIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTYwIDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDAgMCA2NCAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDAgMC02NC0xOTIgMGMtNTMgMC05Ni00My05Ni05NkwwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sb1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkcmVuIixpY29uOls2NDAsNTEyLFtdLCJlNGUxIiwiTTE2MC41IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bS03MiA0ODBsMC04MC0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xTDg2LjcgMjg1LjUgNTggMzIzLjNjLTEwLjcgMTQuMS0zMC44IDE2LjgtNDQuOCA2LjJTLTMuNyAyOTguNyA3IDI4NC43TDY1LjkgMjA3YzIyLjQtMjkuNiA1Ny41LTQ3IDk0LjYtNDdzNzIuMiAxNy40IDk0LjYgNDdMMzE0IDI4NC43YzEwLjcgMTQuMSA3LjkgMzQuMi02LjIgNDQuOHMtMzQuMiA3LjktNDQuOC02LjJsLTI4LjctMzcuOCAzMS4xIDkzLjRjMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0xNy44IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwLTE2IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNNDgwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTggMzg0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNzkuNS0xMi45IDIwLjVjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMHMtMTkuNC0yOS4yLTEwLTQ0LjFsNTEuNy04Mi4xYzE3LjYtMjcuOSA0OC4zLTQ0LjkgODEuMi00NC45bDEyLjMgMGMzMyAwIDYzLjcgMTYuOSA4MS4yIDQ0LjlMNjE5LjYgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwbC0xMi45LTIwLjUgMCAxNzkuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTE2IDB6Il19LHp2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1saW5lIixpY29uOls1MTIsNTEyLFsibGluZS1jaGFydCJdLCJmMjAxIiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em00MDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDMyMCAyMTAuNyAyNjIuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDczLjQtNzMuNCA1Ny40IDU3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sblp0PXp2ZSxDdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWVudmVsb3BlIixpY29uOls0NDgsNTEyLFsiZW52ZWxvcGUtc3F1YXJlIl0sImYxOTkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA5LjEgMjY3LjlMMTA4LjQgMjA3LjRjLTcuNy00LjYtMTIuNC0xMi45LTEyLjQtMjEuOSAwLTE0LjEgMTEuNC0yNS41IDI1LjUtMjUuNWwyMDQuOSAwYzE0LjEgMCAyNS41IDExLjQgMjUuNSAyNS41IDAgOS00LjcgMTcuMy0xMi40IDIxLjlMMjM4LjkgMjY3LjljLTQuNSAyLjctOS42IDQuMS0xNC45IDQuMXMtMTAuNC0xLjQtMTQuOS00LjF6TTM1MiAyMzcuM2wwIDgyLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgyLjcgOTYuNyA1OEMyMDIuMSAzMDEgMjEzIDMwNCAyMjQgMzA0czIxLjktMyAzMS4zLTguN2w5Ni43LTU4eiJdfSxsWnQ9Q3ZlLFR2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4tc21va2luZyIsaWNvbjpbNTEyLDUxMixbMTI4Njg1LCJzbW9raW5nLWJhbiJdLCJmNTRkIiwiTTk5LjUgMTQ0LjhsNzkuMiA3OS4yLTUwLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNDYuNyAwIDkyLjUgOTIuNWMtMzEuNCAyMi40LTY5LjggMzUuNS0xMTEuMiAzNS41LTEwNiAwLTE5Mi04Ni0xOTItMTkyIDAtNDEuNSAxMy4xLTc5LjkgMzUuNS0xMTEuMnpNMzMzLjMgMjg4bC0zMi0zMiA4Mi43IDAgMCAzMi01MC43IDB6bTMyIDMybDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDI2OS4zIDIyNCAxNDQuOCA5OS41YzMxLjQtMjIuNCA2OS44LTM1LjUgMTExLjItMzUuNSAxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjJMMzY1LjMgMzIwek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjcyIDk2Yy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZ6Il19LGNadD1UdmUsZFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZyb250IixpY29uOls0NDgsNTEyLFtdLCJlMmI3IiwiTTAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMybDI4OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjU2YzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0xOTIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4QzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OEwwIDExMnptOTYgODBsMCA2NCAyNTYgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTMyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yMjQgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxLYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZyIsaWNvbjpbMzg0LDUxMixbMTI3OTcwLDYxNjg3XSwiZjFhZCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSx1WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbHNleWUiLGljb246WzUxMiw1MTIsW10sImYxNDAiLCJNNDQ4IDI1NmExOTIgMTkyIDAgMSAwIC0zODQgMCAxOTIgMTkyIDAgMSAwIDM4NCAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYgODBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHpNMjI0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSwkdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctbGVmdC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1sZWZ0Il0sImYxNzciLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDU0NCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQzNC43IDAgNzMuNC03My40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4eiJdfSxwWnQ9JHZlLGhadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0wIDMyTDAgMTMzLjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMNjQgMjI0IDY0IDM4NCA3LjggNDU0LjNDMi43IDQ2MC42IDAgNDY4LjQgMCA0NzYuNSAwIDQ5Ni4xIDE1LjkgNTEyIDM1LjUgNTEybDMxMi45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTU2LjItNzAuMyAwLTE2MCA0NS4zLTQ1LjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0wzODQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTQ4IDAgMC0zMkM5NiAxNC4zIDgxLjcgMCA2NCAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyeiJdfSxmWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlci1waG9uZSIsaWNvbjpbNTc2LDUxMixbXSwiZjZiNiIsIk0xNTEuNCAxMy4yYzEwLjIgNS44IDE0LjUgMTguNCAxMCAyOS4zTDEzOC4yIDk4LjhjLTMuOSA5LjYtMTMuNyAxNS40LTI0IDE0LjRsLTIwLjItMkM3OC43IDE1Mi45IDc4IDE5OC45IDkxLjkgMjQxLjFsMjIuNC0yLjJjMTAuMy0xIDIwIDQuOCAyNCAxNC40bDIzLjIgNTYuM2M0LjUgMTAuOSAuMiAyMy40LTEwIDI5LjNsLTIuOSAxLjZjLTMzLjYgMTkuMi04MS43IDE2LjItMTA2LjItMjEuNi01Ni4zLTg2LjYtNTYuMy0xOTkuMSAwLTI4NS43IDI0LjYtMzcuNyA3Mi43LTQwLjcgMTA2LjItMjEuNmwyLjkgMS42ek0yMjQgMzM2TDE5My43IDE3LjVDMTkyLjggOC4xIDIwMC4yIDAgMjA5LjYgMGwzMjQgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw1NTMuMSA4MCA0NDAgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwem04IDQ4bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxEdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHVybi11cCIsaWNvbjpbMzg0LDUxMixbImxldmVsLXVwIl0sImYxNDgiLCJNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMwNi43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMHoiXX0sbVp0PUR2ZSxnWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmljeWNsZSIsaWNvbjpbNjQwLDUxMixbMTI4NjkwXSwiZjIwNiIsIk0zMzEuNyA0My4zQzMzNiAzNi4zIDM0My43IDMyIDM1MiAzMmwxMDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjUuNiAwIDcyLjIgMTQ4LjRjMTAuNy0yLjkgMjEuOS00LjQgMzMuNC00LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjgtMTI4LTU3LjMtMTI4LTEyOGMwLTQyIDIwLjItNzkuMiA1MS40LTEwMi42bC0yMC40LTQxLjktNzMuNSAxNDdjLTIuMyA0LjgtNi4zIDguOC0xMS40IDExLjItLjYgLjMtMS4yIC41LTEuOCAuNy0yLjkgMS4xLTUuOSAxLjYtOC45IDEuNUwyNzEgMzY4Yy03LjkgNjMuMS02MS43IDExMi0xMjcgMTEyLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4UzczLjMgMjI0IDE0NCAyMjRjMTAuOCAwIDIxLjIgMS4zIDMxLjIgMy44bDI4LjUtNTYuOS0xMS41LTI2LjktNDAuMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDU2IDBjOS42IDAgMTguMyA1LjcgMjIuMSAxNC41bDE0LjMgMzMuNSAxMjMuNyAwLTM3LjctNzcuNWMtMy42LTcuNC0zLjItMTYuMiAxLjItMjMuMnpNMjI4LjUgMjI4LjdsLTQ1LjYgOTEuMyA4NC44IDAtMzkuMS05MS4zek0zMDUuNyAyODdsNDcuNS05NS04OC4yIDAgNDAuNyA5NXptMTY4LjcgNzUuNWwtMjkuNy02MWMtMTIuOCAxMy0yMC43IDMwLjgtMjAuNyA1MC41IDAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MmMtMi43IDAtNS41IC4yLTguMSAuNWwyOS43IDYxYzUuOCAxMS45IC44IDI2LjMtMTEuMSAzMi4xcy0yNi4zIC44LTMyLjEtMTEuMXpNMTQ5LjIgMzY4Yy0yMC4yIDAtMzMuNC0yMS4zLTI0LjMtMzkuNGwyNC4yLTQ4LjVjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzJjMzQuMyAwIDYyLjktMjMuOSA3MC4yLTU2bC02NSAweiJdfSxMdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWRvd24iLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtZG93biJdLCJmMGFiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzkgMzc3bC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM5IDM5IDAtMTUwLjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1MC4xIDM5LTM5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxiWnQ9THZlLGRmPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlYXIiLGljb246WzUxMiw1MTIsWzk4ODEsImNvZyJdLCJmMDEzIiwiTTE5NS4xIDkuNUMxOTguMS01LjMgMjExLjItMTYgMjI2LjQtMTZsNTkuOCAwYzE1LjIgMCAyOC4zIDEwLjcgMzEuMyAyNS41TDMzMiA3OS41YzE0LjEgNiAyNy4zIDEzLjcgMzkuMyAyMi44bDY3LjgtMjIuNWMxNC40LTQuOCAzMC4yIDEuMiAzNy44IDE0LjRsMjkuOSA1MS44YzcuNiAxMy4yIDQuOSAyOS44LTYuNSAzOS45TDQ0NyAyMzMuM2MuOSA3LjQgMS4zIDE1IDEuMyAyMi43cy0uNSAxNS4zLTEuMyAyMi43bDUzLjQgNDcuNWMxMS40IDEwLjEgMTQgMjYuOCA2LjUgMzkuOWwtMjkuOSA1MS44Yy03LjYgMTMuMS0yMy40IDE5LjItMzcuOCAxNC40bC02Ny44LTIyLjVjLTEyLjEgOS4xLTI1LjMgMTYuNy0zOS4zIDIyLjhsLTE0LjQgNjkuOWMtMy4xIDE0LjktMTYuMiAyNS41LTMxLjMgMjUuNWwtNTkuOCAwYy0xNS4yIDAtMjguMy0xMC43LTMxLjMtMjUuNWwtMTQuNC02OS45Yy0xNC4xLTYtMjcuMi0xMy43LTM5LjMtMjIuOEw3My41IDQzMi4zYy0xNC40IDQuOC0zMC4yLTEuMi0zNy44LTE0LjRMNS44IDM2Ni4xYy03LjYtMTMuMi00LjktMjkuOCA2LjUtMzkuOWw1My40LTQ3LjVjLS45LTcuNC0xLjMtMTUtMS4zLTIyLjdzLjUtMTUuMyAxLjMtMjIuN0wxMi4zIDE4NS44Yy0xMS40LTEwLjEtMTQtMjYuOC02LjUtMzkuOUwzNS43IDk0LjFjNy42LTEzLjIgMjMuNC0xOS4yIDM3LjgtMTQuNGw2Ny44IDIyLjVjMTIuMS05LjEgMjUuMy0xNi43IDM5LjMtMjIuOEwxOTUuMSA5LjV6TTI1Ni4zIDMzNmE4MCA4MCAwIDEgMCAtLjYtMTYwIDgwIDgwIDAgMSAwIC42IDE2MHoiXX0sdlp0PWRmLHhadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWFuZC12ZW51cy1idXJzdCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyMyIsIk00NjQtMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzQuNyAwLTYzIDYzYy0yOC40LTE5LjUtNjIuNy0zMS05OS44LTMxLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzgxLjktMTUgMTQ0LTg2LjggMTQ0LTE3My4xIDAtMzctMTEuNC03MS40LTMxLTk5LjhsNjMtNjMgMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTJjMC0xNy43LTE0LjMtMzItMzItMzJMNDk2LTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzY4IDk2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHpNMTkwLjktMjEuOUMxODguNC0yOCAxODIuNi0zMiAxNzYtMzJzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzQtNzYuMi0yMy4xYy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNTMzMuOCA0Ni41IDM3IDUyLjJsMzkuNSA2OS4xLTY1LjYgNDUuMWMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMi01LjYgNzkuNGMtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNTIuMSAyNjhjLTUuMy0xOS4xLTguMS0zOS4yLTguMS02MCAwLTY1LjQgMjgtMTI0LjIgNzIuNi0xNjUuMUwxOTAuOS0yMS45eiJdfSx5WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib3R0ZXIiLGljb246WzY0MCw1MTIsWzEyOTQ0Nl0sImY3MDAiLCJNMTgxLjUgMTk3LjFsMTIuOSA2LjRjNS45IDMgMTIuNCA0LjUgMTkuMSA0LjUgMjMuNSAwIDQyLjYtMTkuMSA0Mi42LTQyLjZsMC0yMS40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIxLjRjMCAyMy41IDE5LjEgNDIuNiA0Mi42IDQyLjYgNi42IDAgMTMuMS0xLjUgMTkuMS00LjUgOS4zLTQuNyAxNi40LTguMiAyMS4yLTEwLjZMMTM1LjEgMTg1Yy00LjUtMy03LjEtOC03LjEtMTMuM2wwLTMuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMy43YzAgNS4zLTIuNyAxMC4zLTcuMSAxMy4zbC0xMS44IDcuOSA4LjQgNC4yem0tOC42IDQ5LjRsLTEyLjktNi40LTEyLjkgNi40Yy0xMi42IDYuMy0yNi41IDkuNi00MC41IDkuNi0zLjYgMC03LjEtLjItMTAuNi0uNmwwIC42YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMTYwIDAgMC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjQgOS40LTUuNCAyMC4zLTguNiAzMi04LjZsMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OCA4LjggMCAxNiA3LjIgMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTkuN2MwLTQ4LjItMzAuOC05MS03Ni42LTEwNi4zbC04LjUtMi44Yy04LTIuNy0xMi42LTExLjEtMTAuNC0xOS4zczEwLjMtMTMuMiAxOC42LTExLjZsMTkuOSA0QzU3NiA4Ni4xIDY0MCAxNjQuMiA2NDAgMjU0LjlsMCAxLjEgMCAwYzAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRsLTE2MC42IDBDMTMyIDQ4MCAzMiAzODAgMzIgMjU2LjZsMC0zOS44Yy0xMC4xLTE0LjYtMTYtMzIuMy0xNi01MS40bDAtMjEuNCAwLTEuNEM2LjcgMTM5LjMgMCAxMzAuNSAwIDEyMCAwIDEwNi43IDEwLjcgOTYgMjQgOTZsMi44IDBDNDQuOCA1OC4yIDgzLjMgMzIgMTI4IDMybDY0IDBjNDQuNyAwIDgzLjIgMjYuMiAxMDEuMiA2NGwyLjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEwLjUtNi43IDE5LjMtMTYgMjIuNmwwIDEuNCAwIDIxLjRjMCAxLjQgMCAyLjgtLjEgNC4zIDEyLTYuMiAyNS43LTkuNiA0MC4xLTkuNmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4IDU2LjQgMGMtMTUuMiAxNy0yNC40IDM5LjQtMjQuNCA2NGwtMzIgMGMtNDIuMyAwLTc4LjItMjcuNC05MS02NS4zLTUuMSAuOS0xMC4zIDEuMy0xNS42IDEuMy0xNC4xIDAtMjcuOS0zLjMtNDAuNS05LjZ6TTk2IDEyOGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTExMiAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAweiJdfSxFdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tbGVmdCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWxlZnQiXSwiZjEzNyIsIk01MTIgMjU2YTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTI3MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04NyA4NyA4NyA4N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDE2NyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDI3MSAxMzV6Il19LHdadD1FdmUsUHZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTEyLDUxMixbNjIxMDgsInF1ZXN0aW9uLWNpcmNsZSJdLCJmMDU5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LGtadD1QdmUsU1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbGtpZS10YWxraWUiLGljb246WzM4NCw1MTIsW10sImY4ZWYiLCJNODgtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA3MiA0OCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMzIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjAuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMjAuMiA0MC40Yy0zLjMgNi43LTUuMSAxNC01LjEgMjEuNWwwIDg0LjdjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTg0LjdjMC03LjUtMS43LTE0LjgtNS4xLTIxLjVMNi44IDMwMS41QzIuMyAyOTIuNiAwIDI4Mi44IDAgMjcyLjlMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMTYgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0zMiAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sSXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZ3JvdXAiLGljb246WzU3Niw1MTIsWzEyODEwMSwidXNlci1mcmllbmRzIl0sImY1MDAiLCJNNjQgMTI4YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTAgNDY0YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2czE3NiA3OC44IDE3NiAxNzZsMCA2YzAgMjMuMi0xOC44IDQyLTQyIDQyTDQyIDUxMmMtMjMuMiAwLTQyLTE4LjgtNDItNDJsMC02ek00MzIgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTAgMjQwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgMjIuNGMwIDIzLTE4LjYgNDEuNi00MS42IDQxLjZsLTE0NC44IDBjNi42LTEyLjUgMTAuNC0yNi44IDEwLjQtNDJsMC02YzAtNTEuNS0xNy40LTk4LjktNDYuNS0xMzYuNyAyMi42LTE0LjcgNDkuNi0yMy4zIDc4LjUtMjMuM3oiXX0sX1p0PUl2ZSxBdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leSIsaWNvbjpbNTEyLDUxMixbNjM0OTksImhvbWUtbGciXSwiZTNhZiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjQwIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiAxMjggMCAwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAweiJdfSxNWnQ9QXZlLE52ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dC1hbHQiXSwiZjJmNSIsIk01MDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDM2MSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzMjAgMTAyLjMgMzIwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDUwNSAyNzN6TTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHoiXX0selp0PU52ZSxDWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZSIsaWNvbjpbMzg0LDUxMixbMTI4MTk2LDEyODQ1OSw2MTQ2Ml0sImYxNWIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0sVFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDY5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE4My40LTE4My40IDcuMS03LjcgMTI3LjMgMGMzMC45IDAgNTYtMjUuMSA1Ni01NnMtMjUuMS01Ni01Ni01NkwzOTIuNyAyMDAgMjMzLjUgMjYuNEMyMjcuNSAxOS44IDIxOC45IDE2IDIwOS45IDE2bC00My43IDBjLTEwLjkgMC0xOC42IDEwLjctMTUuMiAyMS4xTDE3NS4xIDEwOS4yIDQxLTI0Ljl6TTEzMC4yIDIwMGwtMjQuNiAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNmwtMTkuOCAwYy0xMC40IDAtMTggOS44LTE1LjUgMTkuOUwzMiAyNTYgNSAzNjQuMUMyLjQgMzc0LjIgMTAuMSAzODQgMjAuNSAzODRsMTkuOCAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgOTkuNyAwLTU0LjMgMTYyLjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMWw0My43IDBjOSAwIDE3LjUtMy44IDIzLjYtMTAuNEwzMjAuNyAzOTAuNSAxMzAuMiAyMDB6Il19LCRadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLWhlYXZ5IixpY29uOls1MTIsNTEyLFtdLCJmNzQwIiwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwem02LjggNzkuNmwtMzIgOTZDNjYuNiA1MDguMiA1MyA1MTUgNDAuNCA1MTAuOFMyMSA0OTMgMjUuMiA0ODAuNGwzMi05NkM2MS40IDM3MS44IDc1IDM2NSA4Ny42IDM2OS4yUzEwNyAzODcgMTAyLjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMxNDEgNDkzIDE0NS4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTMjI3IDM4NyAyMjIuOCAzOTkuNnptMTEyIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzI1MyA0OTMgMjU3LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMzMzkgMzg3IDMzNC44IDM5OS42em0xMjAgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMzczIDQ5MyAzNzcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzQ1OSAzODcgNDU0LjggMzk5LjZ6Il19LERadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0NiIsIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1LjRjMCA0NS0yMy42IDg2LjYtNjIuMSAxMDkuOGwtNC42IDIuOEMxMzEuNCAxODQuNyA5NiAyNDcuMSA5NiAzMTQuNkw5NiAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY5LjRjMC0xNi43IDMuMy0zMyA5LjQtNDhMMzU5LjIgNTAwLjJjMTEuMSAxMy43IDMxLjMgMTUuOCA0NSA0LjdzMTUuOC0zMS4zIDQuNy00NUwyOTUuMiAzMjAgNDAwIDMyMCA0MzguNCAzNzEuMmMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44bC00My4yLTU3LjZDNDM3LjMgMjYzLjEgNDIzLjEgMjU2IDQwOCAyNTZsLTg5IDAtNjIuOS03NS41YzQwLjMtMzYgNjMuOS04Ny45IDYzLjktMTQzLjFsMC01LjR6TTEwNCAxNDRhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LFJ2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJuLWRvd24iLGljb246WzM4NCw1MTIsWzEwNTQ5LCJsZXZlbC1kb3duLWFsdCJdLCJmM2JlIiwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzMyLjkgMzIwIDMyMCAzMjBsLTY0IDAgMC0xNjBDMjU2IDcxLjYgMTg0LjQgMCA5NiAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MC02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWwxMjggMTI4eiJdfSxMWnQ9UnZlLE92ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1yaWdodC1hbmQtZG93bi1sZWZ0LWZyb20tY2VudGVyIixpY29uOls1MTIsNTEyLFsiZXhwYW5kLWFsdCJdLCJmNDI0IiwiTTM0NCAwTDQ4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzMzNC4zIDAgMzQ0IDB6TTE2OCA1MTJMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwwIDM0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJTMzQuMSAzMjAuMiA0MSAzMjdsMzkgMzkgODctODdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTMTc3LjcgNTEyIDE2OCA1MTJ6Il19LEVadD1PdmUsUFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGFnIixpY29uOls2NDAsNTEyLFtdLCJmNTA3IiwiTTI1Ni4xIDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNCAzMDRsNTkuNCAwYzYuNyAwIDEzLjIgLjQgMTkuNyAxLjEtLjkgNC45LTEuNCA5LjktMS40IDE1bDAgOTIuMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWwzMS45IDMxLjktMjg2LjMgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6TTM1Mi4xIDQxMi4ybDAtOTIuMWMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5Mi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw5NiA5NmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOWwtNzYuMSA3Ni4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMGwtOTYtOTZjLTktOS0xNC4xLTIxLjItMTQuMS0zMy45em0xMDQtNDQuMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxJWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcGFya2xlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTA1ZCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjJjLTE5LjIgNS40LTM0LjcgMjAuNC00MC40IDQwLjNsLTYuNSAyMi43LTIyLjcgNi41Yy0yNS4yIDcuMi00Mi41IDMwLjItNDIuNSA1Ni40IDAgMjIuMSAxMi40IDQyIDMxLjQgNTEuOS0yNy41IDE3LjgtNjAuMiAyOC4xLTk1LjQgMjguMWwtMTkuMiAwYy01OS42IDAtMTE2LjktMjIuOS0xNjAtNjRMNzYuNCAzNDFjLTE2LTE1LjItMTYuNi00MC42LTEuNC01Ni42czQwLjYtMTYuNiA1Ni42LTEuNGw2MC41IDU3LjZjMC0xLjUtLjEtMy4xLS4xLTQuNmwwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZsLTcuMyAyNS40LTI1LjQgNy4zYy0zLjkgMS4xLTYuNiA0LjctNi42IDguN3MyLjcgNy42IDYuNiA4LjdsMjUuNCA3LjMgNy4zIDI1LjRjMS4xIDMuOSA0LjcgNi42IDguNyA2LjZzNy42LTIuNyA4LjctNi42bDcuMy0yNS40IDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdsLTI1LjQtNy4zLTcuMy0yNS40ek0xMDQgMTIwbDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMMTA0IDE2OCA5MC4yIDIxNi4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTYgMTY4IDcuNyAxNTQuMkMzLjEgMTUyLjkgMCAxNDguNyAwIDE0NHMzLjEtOC45IDcuNy0xMC4yTDU2IDEyMCA2OS44IDcxLjdDNzEuMSA2Ny4xIDc1LjMgNjQgODAgNjRzOC45IDMuMSAxMC4yIDcuN0wxMDQgMTIwek01ODQgNDA4bDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMNTg0IDQ1NiA1NzAuMiA1MDQuM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDUzNiA0NTYgNDg3LjcgNDQyLjJjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDggNTQ5LjggMzU5LjdjMS4zLTQuNiA1LjUtNy43IDEwLjItNy43czguOSAzLjEgMTAuMiA3LjdMNTg0IDQwOHoiXX0sQVp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1kb3QiLGljb246WzUxMiw1MTIsW10sImU0YmUiLCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45UzE3OS4xIDY0IDE5MiA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2OS40IDM5My40bDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDQ0OCAzMjAgNDQ4bC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOXpNMzIgMjI0bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQgMzMyLjkgNjQgMzIwbDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTNDQ4IDE3OS4xIDQ0OCAxOTJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sRnZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLWNyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTU3LCJzYWQtY3J5Il0sImY1YjMiLCJNMzUyIDQ5My40Yy0yOS42IDEyLTYyLjEgMTguNi05NiAxOC42cy02Ni40LTYuNi05Ni0xOC42TDE2MCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzEuN0M0NC40IDQyMS42IDAgMzQ0IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDg4LTQ0LjQgMTY1LjYtMTEyIDIxMS43TDQwMCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxOTcuNHpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0sTlp0PUZ2ZSxSWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9uZy1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTY5IiwiTTI4OC0xNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyLjJjLTIyLjktMTUuMy01MC40LTI0LjItODAtMjQuMi03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NFM5Ni41IDQzMiAxNzYgNDMyYzMwIDAgNTcuOC05LjEgODAuOC0yNC44IDMuMyAxNC4yIDE2IDI0LjggMzEuMiAyNC44IDE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzA0IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNOTYgMjg4YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMjQgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQ2NHoiXX0sT1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM0IiwiTTI4OCAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA0NC4xLTEyOCAwIDAtNDQuMUMyMDQuNyAzNTkgMTkyIDMzNyAxOTIgMzEybDAtNDBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDQwem0xNiAxMDRsMC0yNy4zYzE5LjktMjIuNSAzMi01Mi4yIDMyLTg0LjdsMC0zMmMwLTI2LjctNy4zLTUxLjYtMTkuOS03My4xIDExLjEtNC41IDIzLjItNi45IDM1LjktNi45IDUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCA0MC42LTExMiAwek02NCAzNzUuNEM0NC45IDM2NC40IDMyIDM0My43IDMyIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xbDAgMzJjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuMy0xMTIgMCAwLTQwLjZ6TTEyOCAzMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMzIwIDBhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTI0IDQ2NGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEJ2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcnNzIixpY29uOls0NDgsNTEyLFsicnNzLXNxdWFyZSJdLCJmMTQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMzcgMCAyNDggMTExIDI0OCAyNDggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDgzLjkgMCAxNTIgNjguMSAxNTIgMTUyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDEyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxGWnQ9QnZlLEJadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTI0IDI2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEhadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1kaWFncmFtIixpY29uOls1MTIsNTEyLFtdLCJlNjk1IiwiTTgwIDMyQzUzLjUgMzIgMzIgNTMuNSAzMiA4MHMyMS41IDQ4IDQ4IDQ4bDE1MiAwIDAgNDAtNDggNDgtNzIgMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA2NC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw3MiAwIDQ4IDQ4IDAgNDAtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNDAgNDgtNDggNzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMzkuOC0zMi4yLTcyLTcyLTcybC03MiAwLTQ4LTQ4IDAtNDAgMTUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhMODAgMzJ6Il19LEh2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXRpcmVkIixpY29uOls1MTIsNTEyLFsxMjg1NTUsInRpcmVkIl0sImY1YzgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NC43IDMyOC43YzIyLTIyIDUzLjktNDAuNyA5MS4zLTQwLjdzNjkuMyAxOC43IDkxLjMgNDAuN2MxMS4xIDExLjEgMjAuMSAyMy40IDI2LjQgMzUuNCA2LjIgMTEuNyAxMC4zIDI0LjQgMTAuMyAzNS45IDAgNS4yLTIuNiAxMC4yLTYuOSAxMy4ycy05LjggMy43LTE0LjcgMS44bC0yMC41LTcuN2MtMjYuOS0xMC4xLTU1LjUtMTUuMy04NC4zLTE1LjNsLTMuMiAwYy0yOC44IDAtNTcuMyA1LjItODQuMyAxNS4zTDE0OS42IDQxNWMtNC45IDEuOC0xMC40IDEuMi0xNC43LTEuOFMxMjggNDA1LjIgMTI4IDQwMGMwLTExLjYgNC4yLTI0LjIgMTAuMy0zNS45IDYuMy0xMiAxNS4zLTI0LjMgMjYuNC0zNS40ek0xMjIuNiAxNTkuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxxWnQ9SHZlLGpadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJmMGE0IiwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMiAwIDEzLjIgNCAyNS40IDEwLjggMzUuNi0yNC45IDguNy00Mi44IDMyLjUtNDIuOCA2MC40IDAgMTEuNyAzLjEgMjIuNiA4LjYgMzJsLTguNiAwQzcxLjYgNDQ4IDAgMzc2LjQgMCAyODhsMC02MS43YzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMWwxMS42LTExLjZDODIuNSA3Ny41IDExNS4xIDY0IDE0OSA2NGwyNyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODhjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDBsMC01NmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDU2YzAgMzkuOCAzMi4yIDcyIDcyIDcyeiJdfSxWWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAiLGljb246WzM4NCw1MTIsWzg1OTNdLCJmMDYyIiwiTTIxNC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDEwOS4zIDE2MCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3MC43IDEwNS40IDEwNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6Il19LFVadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFtdLCJlNGU2IiwiTTE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6bTMyIDM1Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIwIDE5Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS0xODIuNi0zLjljMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDUuMyA0NS4zYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC00NS4zIDQ1LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDkyLjEgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDQ1LjMtNDUuM3pNMzIgMzg0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0scXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkLWNvbWJhdGFudCIsaWNvbjpbNTc2LDUxMixbImNoaWxkLXJpZmxlIl0sImU0ZTAiLCJNMTc2LjUgMTI4YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0tMTYgMzUybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTIuMiAyMC45IDMzLjJjOS40IDE1IDI5LjIgMTkuNCA0NC4xIDEwczE5LjQtMjkuMiAxMC00NC4xbC0zOS45LTYzLjNDMjY2LjggMTg0IDIyMy4zIDE2MCAxNzYuNSAxNjBTODYuMiAxODQgNjEuMyAyMjMuNkwyMS40IDI4N2MtOS40IDE1LTQuOSAzNC43IDEwIDQ0LjFzMzQuNyA0LjkgNDQuMS0xMGwyMC45LTMzLjIgMCAxOTIuMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyek00NDguNSAwbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDAgMTAwLjNjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNTkuNSAwYzEwLjQgMCAxOC05LjggMTUuNS0xOS45bC0yMy05Mi4xIDQ0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtMjYuNyA1My4xLTE3LjdjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJsMC04NC41YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNTYtMTYgNS4zIDAtMTA5LjNjMC0xMS44LTYuNC0yMi4yLTE2LTI3LjdsMC0xMTYuM2MwLTguOC03LjItMTYtMTYtMTZ6Il19LFdadD1xdmUsR1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlc3QtcGF0Y2hlcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NiIsIk0yMDAgMjkzLjlMMjAwIDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcwLjVjMC05LjUgMi44LTE4LjcgOC4xLTI2LjZsNDcuOS03MS44YzUuMy03LjkgOC4xLTE3LjEgOC4xLTI2LjZMNjQgNDhDNjQgMjEuNSA4NS41IDAgMTEyIDBsMy41IDBjLjMgMCAuNiAwIDEgMCAuNiAwIDEuMiAwIDEuOCAwIDE4LjggMCAzNC4xIDkuNyA0NC4xIDE4LjggOS4zIDguNCAyOC41IDIxLjIgNjEuNyAyMS4yczUyLjQtMTIuOCA2MS43LTIxLjJjMTAtOS4xIDI1LjMtMTguOCA0NC4xLTE4LjggLjYgMCAxLjIgMCAxLjggMCAuMyAwIC42IDAgMSAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTcuNWMwIDkuNSAyLjggMTguNyA4LjEgMjYuNmw0Ny45IDcxLjhjNS4zIDcuOSA4LjEgMTcuMSA4LjEgMjYuNkw0NDggNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNzAuMWMwLTMuOSAuNS03LjggMS40LTExLjZMMzAzLjYgNjUuNEMyODUuOSA3Ny4yIDI1OS44IDg4IDIyNCA4OHMtNjEuOS0xMC44LTc5LjYtMjIuNmw1NC4yIDIxNi44YzEgMy44IDEuNCA3LjcgMS40IDExLjZ6TTk2IDQ1NmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTYzLjUgMjU1LjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN0w3OSAyODggNjMuNSAzMDMuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3czEyLjMgNC43IDE3IDBMOTYgMzA1IDExMS41IDMyMC41YzQuNyA0LjcgMTIuMyA0LjcgMTcgMHM0LjctMTIuMyAwLTE3TDExMyAyODggMTI4LjUgMjcyLjVjNC43LTQuNyA0LjctMTIuMyAwLTE3cy0xMi4zLTQuNy0xNyAwTDk2IDI3MSA4MC41IDI1NS41Yy00LjctNC43LTEyLjMtNC43LTE3IDB6TTMwNCAyODBsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOCAwIDAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sanZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtZW1wdHkiLGljb246WzUxMiw1MTIsWyJnbGFzcy1tYXJ0aW5pIl0sImYwMDAiLCJNMzIgMzJDMTkuMSAzMiA3LjQgMzkuOCAyLjQgNTEuOFMuMiA3Ny41IDkuNCA4Ni42bDIxNC42IDIxNC42IDAgMTQ2LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE0Ni43IDIxNC42LTIxNC42YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDMyIDQ4MCAzMkwzMiAzMnpNMjU2IDI0Mi43TDEwOS4zIDk2IDQwMi43IDk2IDI1NiAyNDIuN3oiXX0sS1p0PWp2ZSxZWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmV0IixpY29uOls0NDgsNTEyLFsxMjk1MjJdLCJmMDc2IiwiTTAgMTc2TDAgMjg4QzAgNDExLjcgMTAwLjMgNTEyIDIyNCA1MTJTNDQ4IDQxMS43IDQ0OCAyODhsMC0xMTItMTI4IDAgMCAxMTJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xMTItMTI4IDB6bTAtNDhsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgNjR6bTMyMCAwbDEyOCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjR6Il19LFpadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWJhcnJpZXIiLGljb246WzY0MCw1MTIsW10sImU1NjIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDI2Ni4zIDE0OS4yIDk2IDY0IDk2IDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDUuMiA5NmwtNzQuMyAwLTUuNCAxMC43LTkwLjYgMTgxLjMgNzQuMyAwIDUuNC0xMC43IDkwLjYtMTgxLjN6TTM2Mi44IDI4OGw3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuM3pNMjAyLjggOTZsLTUuNCAxMC43LTkwLjYgMTgxLjMgNzQuMyAwIDUuNC0xMC43IDkwLjYtMTgxLjMtNzQuMyAwem0yODggMTkybDg1LjIgMCAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNy04NS4yIDE3MC4zeiJdfSxWdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFzcy1kcmFmdGluZyIsaWNvbjpbNTEyLDUxMixbImRyYWZ0aW5nLWNvbXBhc3MiXSwiZjU2OCIsIk05OS4zIDI1Ni4xbDY5LjQtMTE5LjljLTUuNi0xMi4yLTguOC0yNS44LTguOC00MC4yIDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAxNC4zLTMuMSAyNy45LTguOCA0MC4ybDQ0LjQgNzYuN2MtMjMuMSAyNi01My43IDQ1LjEtODguNCA1My44TDI1NiAxOTEuOSAxODcuOSAzMDkuNWMyMS41IDYuOCA0NC4zIDEwLjUgNjguMSAxMC41IDcwLjcgMCAxMzMuOC0zMi43IDE3NC45LTg0IDExLjEtMTMuOCAzMS4yLTE2IDQ1LTVzMTYgMzEuMiA1IDQ1Yy01Mi43IDY1LjgtMTMzLjkgMTA4LTIyNC44IDEwOC0zNS40IDAtNjkuNC02LjQtMTAwLjctMTguMUw5OC43IDQ2My43Qzk0IDQ3MS44IDg3IDQ3OC40IDc4LjYgNDgyLjZMMjMuMiA1MTAuM2MtNSAyLjUtMTAuOSAyLjItMTUuNi0uN1MwIDUwMS41IDAgNDk2bDAtNTUuNGMwLTguNCAyLjItMTYuNyA2LjUtMjQuMWw2MC0xMDMuN2MtMTIuOC0xMS4yLTI0LjYtMjMuNS0zNS4zLTM2LjgtMTEuMS0xMy44LTguOC0zMy45IDUtNDVzMzMuOS04LjggNDUgNWM1LjcgNy4xIDExLjggMTMuOCAxOC4yIDIwLjF6TTM4MS4xIDQwNy45YzMyLjUtMTMgNjIuNC0zMSA4OC45LTUyLjlsMzUuNiA2MS41YzQuMiA3LjMgNi41IDE1LjYgNi41IDI0LjFsMCA1NS40YzAgNS41LTIuOSAxMC43LTcuNiAxMy42cy0xMC42IDMuMi0xNS42IC43bC01NS40LTI3LjdjLTguNC00LjItMTUuNC0xMC44LTIwLjEtMTguOWwtMzIuMy01NS44ek0yNTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sWFp0PVZ2ZSxRWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBlcnNvbi1jb25maW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3NyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05NiAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptODAgMTA0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMDIuMWMwIDM2LjQtMjkuNSA2NS45LTY1LjkgNjUuOS0xNy41IDAtMzQuMy02LjktNDYuNi0xOS4zbC01NC43LTU0LjctMjguMSA1Ni4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDQ4LTk2YzQuNi05LjIgMTMuMy0xNS42IDIzLjUtMTcuM3MyMC41IDEuNyAyNy44IDlsNDEuNCA0MS40IDAtNTguN3oiXX0sSlp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYXRlLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTVhIiwiTTE3NiAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNDIuNyA2NCA1NiA2NHpNMjQgMTM2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2ek00MDAgMzJjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2MGwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDE3NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zLjUgMzQ3LjZDMS42IDMzMi45IDEzIDMyMCAyNy44IDMyMGw0NTYuNCAwYzE0LjggMCAyNi4yIDEyLjkgMjQuNCAyNy42LTYuMyA1MC4yLTQ0LjQgODkuNC05Mi42IDk4LjRsMCAyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHoiXX0sVXZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ24taGFuZ2luZyIsaWNvbjpbNTEyLDUxMixbInNpZ24iXSwiZjRkOSIsIk05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM1MiAwIDAgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzUyLTMyIDBDMTQuMyAxMjggMCAxMTMuNyAwIDk2UzE0LjMgNjQgMzIgNjRsMzIgMCAwLTMyQzY0IDE0LjMgNzguMyAwIDk2IDB6TTIwOCAxNzZsMjQwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI0MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sZVh0PVV2ZSxXdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLWJhdHRlcnkiLGljb246WzUxMiw1MTIsWyJiYXR0ZXJ5LWNhciJdLCJmNWRmIiwiTTgwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxNiAwek0zOTIgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMnpNNjQgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDIxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LHRYdD1XdmUsa29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXJ0IixpY29uOls2NDAsNTEyLFsxMjgwODUsInQtc2hpcnQiLCJ0c2hpcnQiXSwiZjU1MyIsIk0zMjAuMiAxMTJjNDQuMiAwIDgwLTM1LjggODAtODBsNTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYxNy42IDE2OS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC01MC43IDUwLjdjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC00MS40LTQxLjQgMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIyNC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDIyLjkgMjE0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDE0MS41IDUwLjdjMTItMTIgMjguMy0xOC43IDQ1LjMtMTguN2w1My41IDBjMCA0NC4yIDM1LjggODAgODAgODB6Il19LGFYdD1rb2Usc1h0PWtvZSxpWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFyYWdyYXBoIixpY29uOls0NDgsNTEyLFsxODJdLCJmMWRkIiwiTTE2MCAwTDQxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDE2LTQ4IDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjAtNDggMEM3MS42IDMyMCAwIDI0OC40IDAgMTYwUzcxLjYgMCAxNjAgMHoiXX0sR3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3Blcy1idWxrIixpY29uOls1NzYsNTEyLFsibWFpbC1idWxrIl0sImY2NzQiLCJNMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCAxNjAgODAgMCAwLTMyYzAtNTMgNDMtOTYgOTYtOTZsMjA4IDAgMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OEwxMTIgMHpNMjQwIDEyOGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMiA4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxMTIgMTYwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xOTJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI4OCAwem0yMDAgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00OCAyNTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTAuNCAxNTYuNiA4Ni4yYzEuMSAuNiAyLjIgLjkgMy40IC45czIuNC0uMyAzLjQtLjlMMzIwIDMxNC40IDMyMCAzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2ek0zMjAgMzY5LjJMMTg2LjYgNDQyLjZjLTguMSA0LjUtMTcuMyA2LjgtMjYuNiA2LjhzLTE4LjQtMi40LTI2LjYtNi44TDAgMzY5LjIgMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NC44eiJdfSxyWHQ9R3ZlLG9YdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndWl0YXIiLGljb246WzUxMiw1MTIsW10sImY3YTYiLCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjYtMTEgMTEtMTggMjQuNi0yMS40IDM5LjYtMy43IDE2LjYtMTkuMSAzMC43LTM2LjEgMzEuNi0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42LTQ0LjggNDQuOC0zNi40IDEyNS44IDE4LjcgMTgwLjlTMTgzLjYgNTI4IDIyOC40IDQ4My4yYzE3LjktMTcuOSAyNy40LTQxLjcgMjguNi02Ny4zIC45LTE3IDE1LTMyLjMgMzEuNi0zNi4xIDE1LTMuNCAyOC42LTEwLjUgMzkuNi0yMS40IDMxLjgtMzEuOCAzMS04NS45IDEuNi0xMzFsNzcuNi03Ny42IDQxLTE1LjRjMy4yLTEuMiA2LjEtMy4xIDguNS01LjVsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDY1IDd6TTIwOCAyNTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSxuWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2UiLGljb246WzUxMiw1MTIsWzEyOTUyM10sImYwZjIiLCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQyNCAyMjQgMCAwLTQyNGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTQxNiA5NmwwIDM4NCAzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwek05NiA0ODBsMC0zODQtMzIgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMHoiXX0sS3ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS11cCIsaWNvbjpbNTEyLDUxMixbNjE0NjcsImFycm93LWFsdC1jaXJjbGUtdXAiXSwiZjM1YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTEuMy0zODcuM2wxMDQgMTA0YzQuNiA0LjYgNS45IDExLjUgMy41IDE3LjRTMzY2LjUgMjU2IDM2MCAyNTZsLTU2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05Ni01NiAwYy02LjUgMC0xMi4zLTMuOS0xNC44LTkuOXMtMS4xLTEyLjkgMy41LTE3LjRsMTA0LTEwNGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHoiXX0sbFh0PUt2ZSxjWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZiIsaWNvbjpbMzIwLDUxMixbMTAyXSwiNDYiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTEyOCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sZFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InhtYXJrcy1saW5lcyIsaWNvbjpbNjQwLDUxMixbXSwiZTU5YSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnpNNyAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6TTI2NSAxNjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1ek00NTUgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxZdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtb2NlYW5pYSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLW9jZWFuaWEiXSwiZTQ3YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDE1MC42YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQxLjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTYtMTZjLTQuMi00LjItNi42LTEwLTYuNi0xNnpNNDMyIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDExLjMgMzc5LjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpNMjI0IDQzMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0tOTYtODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTguN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmw0OC00OGM0LjItNC4yIDEwLTYuNiAxNi02LjZsNi42IDBjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYgNy4yLTE2IDE2LTE2bDYuNiAwYzYgMCAxMS44IDIuNCAxNiA2LjZsNDggNDhjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgNTAuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtNTAuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTMuMy0xMy4zYy02LTYtMTQuMS05LjQtMjIuNi05LjRMMTI4IDM1MnoiXX0sdVh0PVl2ZSxwWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjRiMyIsIk00MS0yNUMzMS42LTM0LjMgMTYuNC0zNC4zIDctMjVTLTIuMy0uNCA3IDlMNTM1IDUzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjYtOTYuNmM0NC40LTQzLjIgNzEuNi0xMDEuOCA3MS42LTE2Ni41IDAtMTMyLjUtMTE0LjYtMjQwLTI1Ni0yNDAtNjMgMC0xMjAuOCAyMS40LTE2NS40IDU2LjhMNDEtMjV6bTE5LjQgMTU1QzQyLjIgMTYzIDMyIDIwMC4zIDMyIDIzOS45IDMyIDI5NC4yIDUxLjIgMzQ0LjIgODMuNiAzODQuNEwzNC44IDQ3Ni43Yy00LjggOS0zLjMgMjAgMy42IDI3LjVTNTYuMSA1MTQgNjUuNSA1MTBsMTE4LjQtNTAuN2MzMS44IDEzLjMgNjcuMSAyMC43IDEwNC4xIDIwLjcgMzYuNCAwIDcwLjktNy4xIDEwMi4zLTE5LjlMNjAuMyAxMzAuMXoiXX0saFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYXkiLGljb246WzQ0OCw1MTIsWzk2NTRdLCJmMDRiIiwiTTkxLjIgMzYuOWMtMTIuNC02LjgtMjcuNC02LjUtMzkuNiAuN1MzMiA1Ny45IDMyIDcybDAgMzY4YzAgMTQuMSA3LjUgMjcuMiAxOS42IDM0LjRzMjcuMiA3LjUgMzkuNiAuN2wzMzYtMTg0YzEyLjgtNyAyMC44LTIwLjUgMjAuOC0zNS4xcy04LTI4LjEtMjAuOC0zNS4xbC0zMzYtMTg0eiJdfSxmWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbC1jaXJjbGUtY2hlY2siLGljb246WzUxMiw1MTIsW10sImU1OTYiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMEwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MS40Yy02Ni4xIDMwLjMtMTEyIDk3LjEtMTEyIDE3NC42IDAgMzkuNyAxMiA3Ni42IDMyLjcgMTA3LjItMTAuMyAzLjEtMjEuMyA0LjgtMzIuNyA0LjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJMNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyem05NiAzMmwwIDEyOCA5NiAwIDAtMTI4LTk2IDB6bTk2IDMzNmExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sbVh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0YzkiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxnWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VkaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMGRmIiwiTTIzMiAzMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI2LjVDODguOCA3My45IDE2IDE1Ni40IDE2IDI1NlM4OC44IDQzOC4xIDE4NCA0NTMuNWwwIDI2LjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0LjZjNDYuOC0zLjcgODkuMS0yMy42IDEyMS4zLTUzLjkgMTIuOS0xMi4xIDEzLjQtMzIuNCAxLjMtNDUuMnMtMzIuNC0xMy40LTQ1LjItMS4zYy0yMC43IDE5LjYtNDcuNiAzMi43LTc3LjMgMzYuMmwwLTI3MC4xYzI5LjggMy41IDU2LjYgMTYuNiA3Ny4zIDM2LjIgMTIuOSAxMi4xIDMzLjEgMTEuNSA0NS4yLTEuM3MxMS41LTMzLjEtMS4zLTQ1LjJDMzIxLjEgODAuMiAyNzguOCA2MC4zIDIzMiA1Ni42TDIzMiAzMnptLTQ4IDkxLjhsMCAyNjQuNEMxMjQuMyAzNzMuOCA4MCAzMjAuMSA4MCAyNTZzNDQuMy0xMTcuOCAxMDQtMTMyLjJ6Il19LGJYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdXp6bGUtcGllY2UiLGljb246WzUxMiw1MTIsWzEyOTUxM10sImYxMmUiLCJNMjI0IDBjMzUuMyAwIDY0IDIxLjUgNjQgNDggMCAxMC40LTQuNCAyMC0xMiAyNy45LTYuNiA2LjktMTIgMTUuMy0xMiAyNC45IDAgMTUgMTIuMiAyNy4yIDI3LjIgMjcuMmw0NC44IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0NC44YzAgMTUgMTIuMiAyNy4yIDI3LjIgMjcuMiA5LjUgMCAxOC01LjQgMjQuOS0xMiA3LjktNy41IDE3LjUtMTIgMjcuOS0xMiAyNi41IDAgNDggMjguNyA0OCA2NHMtMjEuNSA2NC00OCA2NGMtMTAuNCAwLTIwLjEtNC40LTI3LjktMTItNi45LTYuNi0xNS4zLTEyLTI0LjktMTItMTUgMC0yNy4yIDEyLjItMjcuMiAyNy4yTDM4NCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTU2LjggMGMtMTIuOCAwLTIzLjItMTAuNC0yMy4yLTIzLjIgMC05LjIgNS44LTE3LjMgMTMuMi0yMi44IDExLjYtOC43IDE4LjgtMjAuNyAxOC44LTM0IDAtMjYuNS0yOC43LTQ4LTY0LTQ4cy02NCAyMS41LTY0IDQ4YzAgMTMuMyA3LjIgMjUuMyAxOC44IDM0IDcuNCA1LjUgMTMuMiAxMy41IDEzLjIgMjIuOCAwIDEyLjgtMTAuNCAyMy4yLTIzLjIgMjMuMkw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzQzLjJjMC0xMi44IDEwLjQtMjMuMiAyMy4yLTIzLjIgOS4yIDAgMTcuMyA1LjggMjIuOCAxMy4yIDguNyAxMS42IDIwLjcgMTguOCAzNCAxOC44IDI2LjUgMCA0OC0yOC43IDQ4LTY0cy0yMS41LTY0LTQ4LTY0Yy0xMy4zIDAtMjUuMyA3LjItMzQgMTguOC01LjUgNy40LTEzLjUgMTMuMi0yMi44IDEzLjItMTIuOCAwLTIzLjItMTAuNC0yMy4yLTIzLjJMMCAxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTA4LjggMGMxNSAwIDI3LjItMTIuMiAyNy4yLTI3LjIgMC05LjUtNS40LTE4LTEyLTI0LjktNy41LTcuOS0xMi0xNy41LTEyLTI3LjkgMC0yNi41IDI4LjctNDggNjQtNDh6Il19LHZYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxtZXQtdW4iLGljb246WzUxMiw1MTIsW10sImU1MDMiLCJNNDc5LjUgMjI0QzQ3MS4yIDk4LjkgMzY3LjIgMCAyNDAgMCAxMDcuNSAwIDAgMTA3LjUgMCAyNDBsMCA1Ni4zQzAgMzQ0LjggMzkuMiAzODQgODcuNyAzODRsMTI3LjMgMCAxMjguNiAxMjEuNGM0LjUgNC4yIDEwLjQgNi42IDE2LjUgNi42bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg2LjUgMC0xLjUtMS41IDAtMTc0LjUgMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLS41IDB6TTMyMCA0MTcuMmwtNzgtNzMuNyAzMi40LTU1LjUgNDUuNiAwIDAgMTI5LjJ6TTI4NS4zIDEwMy4xbDM0LjcgNTIgMC00My4yYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyIDAgNDMuMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTYwIDExMmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSx4WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xhc3Mtd2F0ZXIiLGljb246WzM4NCw1MTIsW10sImU0ZjQiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNNzMgMTU2LjVsLTYuNi05Mi41IDI1MS4zIDAtNi42IDkyLjUtMjQuMiAxMi4xYy0xOS40IDkuNy00Mi4yIDkuNy02MS42IDAtMjAuOS0xMC40LTQ1LjUtMTAuNC02Ni40IDAtMTkuNCA5LjctNDIuMiA5LjctNjEuNiAwTDczIDE1Ni41eiJdfSx5WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLWJvbHQiLGljb246WzU3Niw1MTIsW10sImU0ZmMiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNzcuNC03N2MtNS44LTQuMi0xMy44LTQtMTkuNCAuNWwtODAgNjRjLTUuMyA0LjItNy40IDExLjQtNS4xIDE3LjhTMzY5LjIgNDE2IDM3NiA0MTZsMzIuOSAwLTE1LjkgNDIuNGMtMi41IDYuNy0uMiAxNC4zIDUuNiAxOC42czEzLjggNCAxOS40LS41bDgwLTY0YzUuMy00LjIgNy40LTExLjQgNS4xLTE3LjhTNDk0LjggMzg0IDQ4OCAzODRsLTMyLjkgMCAxNS45LTQyLjRjMi41LTYuNyAuMi0xNC4zLTUuNi0xOC42eiJdfSx3WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHVtcC1zb2FwIixpY29uOlszMjAsNTEyLFtdLCJlMDZiIiwiTTk2IDBsMCA4MCAxMjggMCAwLTI0IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgOCAyOTYgOGwtNzIgMCAwLThjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBDMTEwLjMtMzIgOTYtMTcuNyA5NiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHpNMjI0IDM0NGMwIDM1LjMtMjguNyA1Ni02NCA1NnMtNjQtMjAuNy02NC01NmMwLTMyLjUgMzctODAuOSA1MC45LTk3LjkgMy4yLTMuOSA4LjEtNi4xIDEzLjEtNi4xczkuOSAyLjIgMTMuMSA2LjFDMTg3IDI2My4xIDIyNCAzMTEuNSAyMjQgMzQ0eiJdfSxrWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1NyIsIk00MCAyMDhjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTgwLjIgMGMtNy42IDguNS0xMi4yIDE5LjctMTIuMiAzMiAwIDI1LjMgMTkuNSA0NiA0NC4zIDQ3LjktNy43IDguNS0xMi4zIDE5LjgtMTIuMyAzMi4xIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0xMTMuMWMwLTQwLjItMTYtNzguOC00NC40LTEwNy4zLTIyLjgtMjIuOC01My42LTM1LjYtODUuOC0zNS42TDMzNiA2NGMtMjEuMyAwLTM5LjMgMTMuOS00NS42IDMzLjFsNzQuNSAyMy43YzguNCAyLjcgMTMuMSAxMS43IDEwLjQgMjAuMXMtMTEuNyAxMy4xLTIwLjEgMTAuNGwtNjcuMS0yMS40IDAgLjEtMjA0LTY0LjFDNjIuOSA1OS4yIDQwLjUgNzAuOSAzMy45IDkyczUuMSA0My41IDI2LjIgNTAuMkwyNjkuNSAyMDggNDAgMjA4eiJdfSxadmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9sbHkiLGljb246WzU3Niw1MTIsWyJkb2xseS1ib3giXSwiZjQ3MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDcyLjkgMCA5Mi4xIDI3Ni4yYy0yMi41IDE3LjYtMzcgNDUtMzcgNzUuOCAwIDUzIDQzIDk2IDk2IDk2IDUyLjQgMCA5NS4xLTQyIDk2LTk0LjNsMjAyLjEtNjcuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4yTDMzMS44IDM1N2MtMTcuMi0yMi4xLTQzLjktMzYuNS03NC0zN0wxNjUuNyA0My44QzE1Ni45IDE3LjYgMTMyLjUgMCAxMDQuOSAwTDMyIDB6TTIwOCA0MTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMjgwLjUgODkuM2MtMjUuMiA4LjItMzkgMzUuMy0zMC44IDYwLjVsMzkuNiAxMjEuN2M4LjIgMjUuMiAzNS4zIDM5IDYwLjUgMzAuOGwxMjEuNy0zOS42YzI1LjItOC4yIDM5LTM1LjMgMzAuOC02MC41TDQ2Mi44IDgwLjVjLTguMi0yNS4yLTM1LjMtMzktNjAuNS0zMC44TDI4MC41IDg5LjN6Il19LFNYdD1admUsWWI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXJjbGlwIixpY29uOls1MTIsNTEyLFsxMjgyMDZdLCJmMGM2IiwiTTIyNC42IDEyLjhjNTYuMi01Ni4yIDE0Ny40LTU2LjIgMjAzLjYgMHM1Ni4yIDE0Ny40IDAgMjAzLjZsLTE2NCAxNjRjLTM0LjQgMzQuNC05MC4xIDM0LjQtMTI0LjUgMHMtMzQuNC05MC4xIDAtMTI0LjVMMjkyLjUgMTAzLjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxODUgMzAxLjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNjQtMTY0YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTE2NCAxNjRjLTUzLjEgNTMuMS01My4xIDEzOS4yIDAgMTkyLjNzMTM5LjIgNTMuMSAxOTIuMyAwTDQyOC4zIDI4NC4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMzQzLjQgNDU5LjZjLTc4LjEgNzguMS0yMDQuNyA3OC4xLTI4Mi44IDBzLTc4LjEtMjA0LjcgMC0yODIuOGwxNjQtMTY0eiJdfSxfWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVtb2NyYXQiLGljb246WzY0MCw1MTIsW10sImY3NDciLCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjMgMS0yLjggMy44LTQuNyA2LjgtNC43IDEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMWMxLjQtMS4zIDMuMi0yLjEgNS4yLTIuMSAzIDAgNS44IDEuOCA2LjggNC43IDIuNCA2LjUgNi4yIDE4LjQgNi4yIDI3LjMgMCAyNi41LTIxLjkgNDItMjkuNSA0Ni42bDc2LjIgNzIuNmM2IDUuNyAxMy45IDguOCAyMi4xIDguOGwyMTkuMiAwIDMyIDBjNDAuMyAwIDc4LjIgMTkgMTAyLjQgNTEuMmwxOS4yIDI1LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNGwtMTkuMi0yNS42Yy01LjMtNy0xMS44LTEyLjgtMTkuMi0xN2wwIDg3LjQtMzUyIDAtNDAuNC05NC4zYy0zLjktOS4yLTE1LjMtMTIuNi0yMy42LTdsLTQyLjEgMjhjLTkuMSA2LjEtMTkuNyA5LjMtMzAuNyA5LjNsLTIgMEMyMy45IDI1NiAwIDIzMi4xIDAgMjAyLjcgMCAxOTAuNiA0LjEgMTc4LjkgMTEuNyAxNjkuNEw4Ny42IDc0LjZDNzguMSA2Ny40IDY0IDUzLjIgNjQgMzJ6TTU0NCAzNTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTYwIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzUyIDB6TTI1NiAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNDgtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMzY4IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFh2ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYXJyb3ctdXAtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJleHRlcm5hbC1saW5rLXNxdWFyZSJdLCJmMTRjIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTI3MiAyOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTQuMSAwLTEwMyAxMDNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMDMtMTAzIDAgNTQuMXoiXX0sTVh0PVh2ZSx6WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVycnkiLGljb246WzY0MCw1MTIsW10sImU0ZWEiLCJNMjI0IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOC0uMSAwYy4xIC43IC4xIDEuMyAuMSAyIDAgMzAuMi03LjYgNTkuOC0yMiA4Ni4zbC0xMi43IDIzLjMtLjYgMWMtMjIuMy0xMS4zLTQ2LjUtMTYuOC03MC44LTE2LjctMzIuNSAuMi02NC45IDEwLjctOTIuNCAzMS40LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTIzLjYgLjItNDcuMSA1LjctNjguNyAxNi43bC0uNi0xLTEyLjctMjMuM2MtMTQuNC0yNi41LTIyLTU2LjItMjItODYuMyAwLS43IDAtMS40IC4xLTJsLS4xIDAgMC0xMjhjMC00NC4yIDM1LjgtODAgODAtODBsNDggMCAwLTMyek0xNjAgMjU2bDMyMCAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMjg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMnpNNDAzLjQgNDc2LjFDMzc5LjEgNDk0LjMgMzUxLjEgNTEyIDMyMCA1MTJzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxDWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVpdG8iLGljb246WzU3Niw1MTIsW10sImU1MmIiLCJNMTc4LjUgNDk1LjJjLTcuNSA5LjYtMjEgMTIuMS0zMS4zIDUuM1MxMzMuNSA0ODAgMTM4LjkgNDY5bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjgtMzguMy0yLjQtMi40Yy01LjMtNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMy0yLjFjLTUuOC0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjhjMC0xMS44IDYuNS0yMi4xIDE2LTI3LjdsMC02MC41IC4zLTMuM2MxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjdzMTQuMiA1LjUgMTUuNyAxMi43bC4zIDMuMiAwIDYwLjVjOS42IDUuNSAxNiAxNS44IDE2IDI3LjdsMCAyOC45IDUzLjQtNDUuOC0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCA0Ni42LTM3LjggODQuNC04NC40IDg0LjRsLTguMSAwYy0yMi44IDAtNDQuOS04LjUtNjEuOS0yMy44bC02Ni4xLTU5LjUgMzkuMiA1Mi4yYzIuNCAzLjIgNCA3IDQuNiAxMC45bC4zIDQgMCA0MSAzNi4yIDU4IDEuMiAyLjFjNS40IDExIDIgMjQuNy04LjMgMzEuNXMtMjMuOCA0LjQtMzEuMy01LjNsLTEuNC0yLTQwLTY0LTEuNi0zLjFjLTEuNC0zLjEtMi4xLTYuNi0yLjEtMTAuMWwwLTM5LjgtMzIuNC00My4xIDAgNzQuN2MwIDE3LjctMTQuMyAzMi0zMiAzMi0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyeiJdfSxUWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNGQxIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDQuN2MtMzUuNyAyLjktNjguNSAxNS42LTk2IDM1LjRsMC00YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQgMGMtMTMuOCAxOS4yLTI0LjEgNDEtMzAuMSA2NC41LTEuOS0uNC0zLjktLjUtNS45LS41bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDc0LjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDAuNy02Ny4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwyOC43IDI4LjctODkuNCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDg5LjQgMC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAweiJdfSxRdmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NiwiYXJyb3dzLWFsdC1oIl0sImYzMzciLCJNNTAyLjYgNDA2LjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgNDkyLjkgMzUyIDQ4MGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3pNOS40IDE1MC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMTkuMSAxNjAgMzJsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZ6Il19LCRYdD1RdmUsRFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDc0IiwiTTI5NiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBzLTE1LjYgNDAuOSAwIDU2LjZjMzEuMiAzMS4yIDkuMSA4NC41LTM1IDg0LjUtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtNDQuMSA1My4zLTY2LjEgODQuNS0zNSAxNS42IDE1LjYgNDAuOSAxNS42IDU2LjYgMHMxNS42LTQwLjkgMC01Ni42Yy0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwQzM0OS4zIDEwNi4xIDI5NiA4NC4xIDI5NiA0MHpNMTYwIDIyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTExNi43IDMzLjhjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOGwyNDAgMGM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjRsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MnptMzguNSAzOS44Yy0zLjMgMi41LTQuMiA3LTIuMSAxMC41TDIxMC41IDE3OS44IDYzLjMgMTkyYy00LjEgLjMtNy4zIDMuOC03LjMgOHMzLjIgNy42IDcuMyA4bDE5MiAxNmMuNCAwIC45IDAgMS4zIDBsMTkyLTE2YzQuMS0uMyA3LjMtMy44IDcuMy04cy0zLjItNy42LTcuMy04bC0xNDcuMi0xMi4zIDU3LjQtOTUuNmMyLjEtMy41IDEuMi04LjEtMi4xLTEwLjVzLTcuOS0yLTEwLjcgMUwyNTYgMTcyLjIgMTY1LjkgNzQuNmMtMi44LTMtNy40LTMuNC0xMC43LTF6Il19LEVYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQiLGljb246WzQ0OCw1MTIsWzEyODcwMV0sImY3ZDgiLCJNMjQgMEMxMC43IDAgMCAxMC43IDAgMjRTMTAuNyA0OCAyNCA0OGw4IDAgMCAxNDguOWMtMS45IDEuNC0zLjggMi45LTUuNiA0LjQtMTUuNSAxMy4yLTI2LjQgMzEuNi0yNi40IDU0LjYgMCA0Ni45IDE0LjMgODQuMSAzNyAxMTIuNSAxNC4yIDE3LjcgMzEuMSAzMS4zIDQ4LjUgNDEuOEw2NS42IDQ2OS45Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44Uzg1LjcgNTEyIDk2IDUxMmwyNTYgMGMxMC4zIDAgMTkuOS00LjkgMjYtMTMuM3M3LjctMTkuMSA0LjQtMjguOGwtMTkuOC01OS41YzE3LjQtMTAuNSAzNC4zLTI0LjEgNDguNS00MS44IDIyLjctMjguNCAzNy02NS41IDM3LTExMi41IDAtMjMuMS0xMC45LTQxLjUtMjYuNC01NC42LTEuOC0xLjUtMy43LTMtNS42LTQuNGwwLTE0OC45IDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFM0MzcuMyAwIDQyNCAwTDI0IDB6TTk2IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIyNCAyODhjLTg4LjQgMC0xNjAtMTQuMy0xNjAtMzJzNzEuNi0zMiAxNjAtMzIgMTYwIDE0LjMgMTYwIDMyLTcxLjYgMzItMTYwIDMyeiJdfSxQWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLWxlZnQiLGljb246WzE5Miw1MTIsW10sImU4MWIiLCJNMTI4IDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAweiJdfSxJWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbHMiLGljb246WzU3Niw1MTIsW10sImUxZjMiLCJNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTE3NiA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMTYwIDE1MmwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDExMmMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTUwNCAxNTkuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNTEyIDI2NGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM5MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjY0eiJdfSxBWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0LWJ1dHRvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjEwYSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yMjQgNDAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sc1M9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTE2NyAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LE5YdD1zUyxSWHQ9c1MsT1h0PXNTLEZYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3cmVuY2giLGljb246WzU3Niw1MTIsWzEyODI5NV0sImYwYWQiLCJNNTA5LjQgOTguNmM3LjYtNy42IDIwLjMtNS43IDI0LjEgNC4zIDYuOCAxNy43IDEwLjUgMzcgMTAuNSA1Ny4xIDAgODguNC03MS42IDE2MC0xNjAgMTYwLTE3LjUgMC0zNC40LTIuOC01MC4yLThMMTQ2LjkgNDk4LjljLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHMtMjguMS03My43IDAtMTAxLjhMMjMyIDIxMC4yYy01LjItMTUuOC04LTMyLjYtOC01MC4yIDAtODguNCA3MS42LTE2MCAxNjAtMTYwIDIwLjEgMCAzOS40IDMuNyA1Ny4xIDEwLjUgMTAgMy44IDExLjggMTYuNSA0LjMgMjQuMWwtODguNyA4OC43Yy0zIDMtNC43IDcuMS00LjcgMTEuM2wwIDQxLjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDg4LjctODguN3oiXX0sdWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTM2LjcgNS45QzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjF6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em04OCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxCWHQ9dWYsSnZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzIixpY29uOls0NDgsNTEyLFsidGgiXSwiZjAwYSIsIk0zODQgOTZsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHpNMjU2IDI4OGwtNjQgMCAwLTY0IDY0IDAgMCA2NHptLTY0IDY0bDY0IDAgMCA2NC02NCAwIDAtNjR6bS02NC02NGwtNjQgMCAwLTY0IDY0IDAgMCA2NHpNNjQgMzUybDY0IDAgMCA2NC02NCAwIDAtNjR6bTAtMTkybDAtNjQgNjQgMCAwIDY0LTY0IDB6bTEyOCAwbDAtNjQgNjQgMCAwIDY0LTY0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LEhYdD1KdmUscVh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpYmJvbiIsaWNvbjpbMzg0LDUxMixbMTI3ODk1XSwiZjRkNiIsIk0yMzUuMSAwYzMzLjQgMCA2NC41IDE3LjQgODEuOSA0NS45IDEuMiAyIDEzIDIxLjMgMzUuMyA1Ny44IDIxLjEgMzQuNSAxOC4zIDc4LjUtNyAxMTBMMjc4LjMgMjk3LjcgMzY0LjUgNDA2YzUuNSA2LjkgNC40IDE2LjktMi41IDIyLjVsLTgwIDY0Yy02LjkgNS41LTE3IDQuNC0yMi41LTIuNUwzOC42IDIxMy44QzEzLjMgMTgyLjMgMTAuNSAxMzguMyAzMS42IDEwMy44IDU0IDY3LjIgNjUuNyA0Ny45IDY3IDQ1LjkgODQuNCAxNy40IDExNS40IDAgMTQ4LjkgMGw4Ni4zIDB6TTE5MiAxODkuMmw0OC42LTYxLjItOTcuMyAwIDQ4LjYgNjEuMnpNNzUgMzM2LjJsODYuMiAxMDcuOC0zNi44IDQ2Yy01LjUgNi45LTE1LjYgOC0yMi41IDIuNWwtODAtNjRjLTYuOS01LjUtOC0xNS42LTIuNS0yMi41TDc1IDMzNi4yeiJdfSxqWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZmxhZyIsaWNvbjpbNTEyLDUxMixbXSwiZTUxYyIsIk0zNTItMzJMMjQwLTMyYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNDQtMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDIyNC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjI0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwIDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTQ4IDIyNGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6Il19LGV4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1kb3duLWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvd3MtYWx0Il0sImYwYjIiLCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE3OS4xIDEyOCAxOTIgMTI4bDMyIDAgMCA5Ni05NiAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxMjggMzMyLjkgMTI4IDMyMGwwLTMyIDk2IDAgMCA5Ni0zMiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzODQgMzIwIDM4NGwtMzIgMCAwLTk2IDk2IDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzg0IDE3OS4xIDM4NCAxOTJsMCAzMi05NiAwIDAtOTYgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHoiXX0sVlh0PWV4ZSxVWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXNpZGUiLGljb246WzY0MCw1MTIsWzEyODY2M10sImY1ZTQiLCJNMTQ3IDEwNi43bC0yOS44IDg1LjMgMTIyLjkgMCAwLTk2LTc3LjkgMGMtNi44IDAtMTIuOSA0LjMtMTUuMSAxMC43ek00OC42IDE5My45TDg2LjUgODUuNkM5Ny44IDUzLjUgMTI4LjEgMzIgMTYyLjEgMzJMMzYwIDMyYzI1LjIgMCA0OC45IDExLjkgNjQgMzJsOTYuMiAxMjguM0M1ODcuMSAxOTYuNSA2NDAgMjUyLjEgNjQwIDMyMGwwIDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNi40IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0xNDQuNyAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtLjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04MGMwLTMwLjEgMjAuNy01NS4zIDQ4LjYtNjIuMXpNNDQwIDE5MmwtNjcuMi04OS42Yy0zLTQtNy44LTYuNC0xMi44LTYuNGwtNzIgMCAwIDk2IDE1MiAwek0xNTIgNDMyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMzYwLTQwYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LHR4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUiXSwiZjgyOSIsIk0xNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjFDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2ek0zMiAxNDRsMzg0IDAtMjEuMSAzMjMuMUMzOTMuMyA0OTIuNCAzNzIuMyA1MTIgMzQ3IDUxMkwxMDEgNTEyYy0yNS4zIDAtNDYuMy0xOS42LTQ3LjktNDQuOUwzMiAxNDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sV1h0PXR4ZSxHWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlmZS1yaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMWNkIiwiTTM2Ny4yIDQxMi41QzMzNS45IDQzNC45IDI5Ny41IDQ0OCAyNTYgNDQ4cy03OS45LTEzLjEtMTExLjItMzUuNWw1OC01OGMxNS44IDguNiAzNCAxMy41IDUzLjMgMTMuNXMzNy40LTQuOSA1My4zLTEzLjVsNTggNTh6bTkwLjcgLjhjMzMuOC00My40IDU0LTk4IDU0LTE1Ny4zUzQ5MS44IDE0Mi4xIDQ1OCA5OC43YzktMTIuNSA3LjktMzAuMS0zLjQtNDEuM1M0MjUuOCA0NSA0MTMuMyA1NEMzNjkuOSAyMC4yIDMxNS4zIDAgMjU2IDBTMTQyLjEgMjAuMiA5OC43IDU0Yy0xMi41LTktMzAuMS03LjktNDEuMyAzLjRTNDUgODYuMiA1NCA5OC43QzIwLjIgMTQyLjEgMCAxOTYuNyAwIDI1NlMyMC4yIDM2OS45IDU0IDQxMy4zYy05IDEyLjUtNy45IDMwLjEgMy40IDQxLjNTODYuMiA0NjcgOTguNyA0NThjNDMuNCAzMy44IDk4IDU0IDE1Ny4zIDU0czExMy45LTIwLjIgMTU3LjMtNTRjMTIuNSA5IDMwLjEgNy45IDQxLjMtMy40czEyLjQtMjguOCAzLjQtNDEuM3ptLTQ1LjUtNDYuMWwtNTgtNThjOC42LTE1LjggMTMuNS0zNCAxMy41LTUzLjNzLTQuOS0zNy40LTEzLjUtNTMuM2w1OC01OEM0MzQuOSAxNzYuMSA0NDggMjE0LjUgNDQ4IDI1NnMtMTMuMSA3OS45LTM1LjUgMTExLjJ6TTM2Ny4yIDk5LjVsLTU4IDU4Yy0xNS44LTguNi0zNC0xMy41LTUzLjMtMTMuNXMtMzcuNCA0LjktNTMuMyAxMy41bC01OC01OEMxNzYuMSA3Ny4xIDIxNC41IDY0IDI1NiA2NHM3OS45IDEzLjEgMTExLjIgMzUuNXpNMTU3LjUgMzA5LjNsLTU4IDU4Qzc3LjEgMzM1LjkgNjQgMjk3LjUgNjQgMjU2czEzLjEtNzkuOSAzNS41LTExMS4ybDU4IDU4Yy04LjYgMTUuOC0xMy41IDM0LTEzLjUgNTMuM3M0LjkgMzcuNCAxMy41IDUzLjN6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sS1h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjA1LjEgMzA2LjljMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtNDYuOSA0Ni45LTEyMi44IDQ2LjktMTY5LjcgMHMtNDYuOS0xMjIuOCAwLTE2OS43IDEyMi44LTQ2LjkgMTY5LjcgMGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBzLTI4LjEgNzMuNyAwIDEwMS44eiJdfSxZWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wcmVzY3JpcHRpb24iLGljb246WzM4NCw1MTIsW10sImY1NzIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDIyLjUgMCA1OC40IDU1LTMzLjQgMzEuNmMtOS42IDkuMS0xMC4xIDI0LjMtLjkgMzMuOXMyNC4zIDEwLjEgMzMuOSAuOWwzNS40LTMzLjUgMzUuNiAzMy41YzkuNyA5LjEgMjQuOCA4LjYgMzMuOS0xczguNi0yNC44LTEtMzMuOWwtMzMuNi0zMS42IDMzLjYtMzEuOGM5LjYtOS4xIDEwLjEtMjQuMyAuOS0zMy45cy0yNC4zLTEwLjEtMzMuOS0uOWwtMzUuNyAzMy43LTQwLjktMzguNWMxMi45LTExLjcgMjEuMS0yOC42IDIxLjEtNDcuNSAwLTM1LjMtMjguNy02NC02NC02NGwtNTYgMHptMzIgODBsLTggMCAwLTMyIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTI0IDB6Il19LFpYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcmFzZXIiLGljb246WzU3Niw1MTIsW10sImYxMmQiLCJNMTc4LjUgNDE2bDEyMyAwIDY1LjMtNjUuMy0xNzMuNS0xNzMuNS0xMjYuNyAxMjYuNyAxMTIgMTEyek0yMjQgNDgwbC00NS41IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDE3IDM0NUM2LjEgMzM0LjEgMCAzMTkuNCAwIDMwNHM2LjEtMzAuMSAxNy00MUwyNjMgMTdDMjczLjkgNi4xIDI4OC42IDAgMzA0IDBzMzAuMSA2LjEgNDEgMTdMNTI3IDE5OWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFsLTEzNSAxMzUgMTIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAweiJdfSxheGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLXN0YXJ0IixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTEiXSwiZjI1MSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNMjg4IDQzN2wwIDExLTE5MiAwIDAtMTFjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsNjcuOS02Ny45IDY3LjkgNjcuOWMxOCAxOCAyOC4xIDQyLjQgMjguMSA2Ny45eiJdfSxYWHQ9YXhlLHN4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMTI0LjcgMjQ0LjdsMTA0LTEwNGM0LjYtNC42IDExLjUtNS45IDE3LjQtMy41czkuOSA4LjMgOS45IDE0LjhsMCA1NiA5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA1NmMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVsLTEwNC0xMDRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42eiJdfSxRWHQ9c3hlLEpYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV6ZWlyby1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMTUyIiwiTTI0MCA5NmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCA3MS42IDQ3LjEgMTMyLjMgMTEyIDE1Mi43TDE5MiAyNTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTIuOCAwIDIzLjMgMTAuMSAyNCAyMi43IDE1LjUtOS41IDMzLjUtMTQuNyA1Mi4zLTE0LjdsMTEuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMS44IDBjLTE4LjggMC0zNi4xIDEwLTQ1LjQgMjYuMy00LjUgNy45LTYuOSAxNi44LTYuOSAyNS45bDAgNzUuOGM0Mi41IDAgODEuMS0xNi42IDEwOS44LTQzLjYgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJDMzUzLjcgNDU2LjggMjk5LjUgNDgwIDI0MCA0ODAgMTE2LjMgNDgwIDE2IDM3OS43IDE2IDI1NlMxMTYuMyAzMiAyNDAgMzJjNTkuNSAwIDExMy43IDIzLjIgMTUzLjcgNjEuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNDMzIxLjEgMTEyLjYgMjgyLjUgOTYgMjQwIDk2eiJdfSxlUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21va2luZyIsaWNvbjpbNTc2LDUxMixbMTI4Njg0XSwiZjQ4ZCIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0zMjAgNDQ4bDk2IDAgMC0zMi05NiAwIDAgMzJ6TTAgNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyem01NzYtNDBsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0saXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLXZlcnRpY2FsIixpY29uOls0NDgsNTEyLFsicG9sbCJdLCJmNjgxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTU2IDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTg0IDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4ek0yMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjA4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSx0UXQ9aXhlLGFRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTQwIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnoiXX0sc1F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpb2hhemFyZCIsaWNvbjpbNTc2LDUxMixbOTc2M10sImY3ODAiLCJNMjYwIDEyLjZjMC04LjMtNy42LTE0LjUtMTUuNS0xMi4xLTYwLjkgMTguOC0xMDUuMSA3NS44LTEwNS4xIDE0My4xIDAgMjUuMSA2LjEgNDguNyAxNyA2OS41LTIxIDEuOC00MiA4LjItNjEuNSAxOS41LTU3LjkgMzMuNi04NC44IDEwMC4yLTcwLjkgMTYyLjUgMS45IDguNCAxMS40IDEyIDE4LjkgNy42IDUtMi45IDcuNi04LjYgNy4xLTE0LjQtLjMtMy4zLS40LTYuNi0uNC0xMC4xIDAtMTIzLjUgMTg0LjQtMTIzLjUgMTg0LjQgMCAwIDg4LjQtOTQuNSAxMTMuNi0xNDguMiA3NS40LTQuNS0zLjItMTAuNS0zLjktMTUuMy0xLjEtNyA0LjEtOC42IDEzLjYtMi43IDE5LjEgNDYuNiA0My44IDExOCA1My45IDE3Ni4xIDIwLjIgMTcuOS0xMC40IDMyLjgtMjMuOSA0NC41LTM5LjQgMTEuNyAxNS42IDI2LjYgMjkuMSA0NC41IDM5LjQgNTguMSAzMy43IDEyOS41IDIzLjYgMTc2LjEtMjAuMiA1LjktNS41IDQuMy0xNS4xLTIuNy0xOS4xLTQuOC0yLjgtMTAuOC0yLjEtMTUuMyAxLjEtNTMuNyAzOC4yLTE0OC4yIDEzLTE0OC4yLTc1LjQgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgMy40LS4xIDYuOC0uNCAxMC4xLS41IDUuOCAyLjEgMTEuNSA3LjEgMTQuNCA3LjQgNC4zIDE3IC44IDE4LjktNy42IDEzLjktNjIuMi0xMy0xMjguOS03MC45LTE2Mi41LTE5LjUtMTEuMy00MC40LTE3LjctNjEuNS0xOS41IDEwLjktMjAuOCAxNy00NC40IDE3LTY5LjUgMC02Ny4zLTQ0LjItMTI0LjMtMTA1LjEtMTQzLjEtNy45LTIuNC0xNS41IDMuOC0xNS41IDEyLjEgMCA1LjkgNCAxMSA5LjUgMTMuMiA4My40IDMzLjYgNzAuOCAxNzguNC0zNy44IDE3OC40UzE2Ny4xIDU5LjQgMjUwLjUgMjUuOGM1LjUtMi4yIDkuNS03LjMgOS41LTEzLjJ6TTI0OC40IDI4OGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek00MzUgMzE3LjdjLTE2LjIgMC0zMS40IDUuNS00Mi4xIDE1LTEwLjEgOS4xLTE4LjEgMjMuNC0xOC4xIDQ1LjYgMCAyMS4xIDcuMiAzNSAxNi41IDQ0LjEgMzIuMi0yNC42IDU1LjUtNjAuNSA2My45LTEwMS44LTYuMy0xLjktMTMuMi0zLTIwLjItM3pNMjAyIDM3OC4zYzAtMjIuMy04LTM2LjYtMTguMS00NS42LTEwLjctOS42LTI1LjktMTUtNDIuMS0xNS03IDAtMTMuOSAxLTIwLjIgMyA4LjQgNDEuMyAzMS42IDc3LjIgNjMuOSAxMDEuOCA5LjQtOS4xIDE2LjUtMjMuMSAxNi41LTQ0LjJ6bTQxLjItMjI0LjNjOSAxMC4yIDIzLjIgMTguMiA0NS4yIDE4LjJzMzYuMi04IDQ1LjItMTguMmM2LjctNy42IDExLjUtMTcuNSAxMy42LTI4LjQtMTguMy02LjgtMzguMi0xMC41LTU4LjgtMTAuNXMtNDAuNSAzLjctNTguOCAxMC41YzIuMiAxMC45IDYuOSAyMC44IDEzLjYgMjguNXoiXX0scnhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwtY29uY2llcmdlIixpY29uOls1MTIsNTEyLFsxMjg3MTgsImNvbmNpZXJnZS1iZWxsIl0sImY1NjIiLCJNMjE2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy4zQzEyNC44IDE1Ni43IDQwLjIgMjQzLjcgMzIuNiAzNTJsNDQ2LjkgMEM0NzEuOCAyNDMuNyAzODcuMiAxNTYuNyAyODAgMTQ1LjNsMC0zMy4zIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTI0IDQwMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0NjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCA0MDB6Il19LGlRdD1yeGUsclF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWhvcml6b250YWwiLGljb246WzU3Niw1MTIsW10sImY1NDciLCJNNDggMzg0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAzODR6Il19LG9RdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZSIsaWNvbjpbNTc2LDUxMixbMTI4MDE0XSwiZjZmMCIsIk00NDggMjM4LjFsMC03OC4xIDE2IDAgOS44IDE5LjZjMTIuNSAyNS4xIDQyLjIgMzYuNCA2OC4zIDI2IDIwLjUtOC4yIDMzLjktMjggMzMuOS01MC4xTDU3NiA4MGMwLTE5LjEtOC40LTM2LjMtMjEuNy00OGw1LjcgMGM4LjggMCAxNi03LjIgMTYtMTZTNTY4LjggMCA1NjAgMEw0NDggMEMzNzcuMyAwIDMyMCA1Ny4zIDMyMCAxMjhsLTE3MS4yIDBDMTE4LjEgMTI4IDkxLjIgMTQ0LjMgNzYuMyAxNjguOCAzMy4yIDE3NC41IDAgMjExLjQgMCAyNTZsMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTZjMC0xMy40IDYuNi0yNS4yIDE2LjctMzIuNSAxLjYgMTMgNi4zIDI1LjQgMTMuNiAzNi40bDI4LjIgNDIuNGM4LjMgMTIuNCA2LjQgMjguNy0xLjIgNDEuNi0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43IDAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2wwIDAgMC0xLjl6TTQ5NiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LG5RdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMzItMzIgMEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDQ4IDQ0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMjI0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyLTQ0OCAweiJdfSxsUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaGlsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYSIsIk0zMjAtMzJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTM4NC41IDE0OWwtMTkuOC0xNi43IDExLjEgODguOGMxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjgtMTkuOCAxNi43Yy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDcyLjggMjk1LjMgNjQgMzIwIDY0czQ4LjcgOC44IDY3LjYgMjQuN2wyNy45IDIzLjZjMTAuMSA4LjYgMTEuNCAyMy43IDIuOCAzMy44cy0yMy43IDExLjQtMzMuOCAyLjh6Il19LGNRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpdGFsaWMiLGljb246WzM4NCw1MTIsW10sImYwMzMiLCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01OC43IDAtMTMzLjMgMzIwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMCAxMzMuMy0zMjAtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LGRRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraGFuZGEiLGljb246WzUxMiw1MTIsWzk3NzJdLCJmNjZkIiwiTTI0MC43IDhjOC45LTcuNCAyMS44LTcuNCAzMC43IDBsMzcuOCAzMS41YzguNyA3LjMgMTEuMSAxOS42IDYgMjkuNi0xLjIgMi40LTIuOCA1LjUtNC42IDkuMiAzNC4yIDE5LjIgNTcuMyA1NS44IDU3LjMgOTcuOHMtMjMuMSA3OC42LTU3LjMgOTcuOGMxLjggMy43IDMuMyA2LjggNC42IDkuMiA1LjEgMTAgMi43IDIyLjMtNiAyOS42bC0zNy4yIDMxIDAgMTkuOGMyMi45LTE1LjcgNDguNC0zMy4zIDc2LjctNTIuNyA0Mi44LTI5LjQgNjguNC03OCA2OC40LTEzMGwwLTExLjFjMC0yMy45LTcuMS00Ny4zLTIwLjQtNjcuMi01LjEtNy43LTQuNi0xNy44IDEuNy0yNC42IDYuNi03LjEgMTcuMi04LjEgMjUuMi0yLjggMjcuNSAxOC4xIDg5LjQgNjcuNSA4OS40IDE0OS4xIDAgNDYuNS0yMC4yIDg4LjYtNDEuOCAxMjAuNC0yMS42IDMyLTQ1LjYgNTUtNTUuMyA2My44LTcuOCA3LjEtMTkgNy45LTI3LjYgM2wtNzAuOC00MC4zLTMyLjcgMjIuNSA0NS41IDMxLjNjMS44LS40IDMuNy0uNyA1LjctLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEyLjIgMC0yMi4zLTkuMS0yMy44LTIxbC00MC4yLTI3LjYgMCAyOC45YzkuNiA1LjUgMTYgMTUuOSAxNiAyNy43IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTEuOCA2LjQtMjIuMiAxNi0yNy43bDAtMjguMS00MC4zIDI3LjdjLTEuOCAxMS40LTExLjggMjAuMS0yMy43IDIwLjEtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyLjIgMCA0LjQgLjMgNi41IC45bDQ1LjgtMzEuNS0zMi43LTIyLjUtNzAuOCA0MC4zYy04LjcgNC45LTE5LjggNC4xLTI3LjYtMy05LjctOC44LTMzLjctMzEuOS01NS4zLTYzLjgtMjEuNS0zMS44LTQxLjgtNzMuOS00MS44LTEyMC40IDAtODEuNyA2MS45LTEzMS4xIDg5LjQtMTQ5LjEgOC4xLTUuMyAxOC42LTQuMyAyNS4yIDIuOCA2LjQgNi45IDYuOCAxNyAxLjcgMjQuNi0xMy4zIDE5LjktMjAuNCA0My4zLTIwLjQgNjcuMmwwIDExLjFjMCA1MS45IDI1LjYgMTAwLjYgNjguNCAxMzAgMjguNCAxOS42IDUzLjcgMzYuOSA3NS42IDUybDAtMTkuMS0zNy4yLTMxYy04LjctNy4zLTExLjEtMTkuNi02LTI5LjYgMS4yLTIuNCAyLjgtNS41IDQuNi05LjItMzQuMi0xOS4yLTU3LjMtNTUuOC01Ny4zLTk3LjhzMjMuMS03OC42IDU3LjMtOTcuOGMtMS44LTMuNy0zLjMtNi44LTQuNi05LjItNS4xLTEwLTIuNy0yMi4zIDYtMjkuNkwyNDAuNyA4ek0yMjAuMyAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xYzYuOC0xOS4yIDExLjgtMzguNCAxMS44LTUzLjFzLTQuOS0zMy45LTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xYy02LjggMTkuMi0xMS44IDM4LjQtMTEuOCA1My4xczQuOSAzMy45IDExLjggNTMuMXoiXX0sb3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44eiJdfSx1UXQ9b3hlLFpiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWNrIixpY29uOls0NDgsNTEyLFsxMDAwMywxMDAwNF0sImYwMGMiLCJNNDM0LjggNzAuMWMxNC4zIDEwLjQgMTcuNSAzMC40IDcuMSA0NC43bC0yNTYgMzUyYy01LjUgNy42LTE0IDEyLjMtMjMuNCAxMy4xcy0xOC41LTIuNy0yNS4xLTkuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxMDEuNSAxMDEuNSAyMzQtMzIxLjdjMTAuNC0xNC4zIDMwLjQtMTcuNSA0NC43LTcuMXoiXX0scFF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbmdlcnByaW50IixpY29uOls1MTIsNTEyLFtdLCJmNTc3IiwiTTQ4IDI1NmMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDggNjMuMSAwIDExOS42IDI4LjEgMTU3LjggNzIuNSA4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44QzQwMy4zIDM0LjYgMzMzLjcgMCAyNTYgMCAxMTQuNiAwIDAgMTE0LjYgMCAyNTZsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDB6bTQ1OC41LTUyLjljLTIuNy0xMy0xNS41LTIxLjMtMjguNC0xOC41cy0yMS4zIDE1LjUtMTguNSAyOC40YzIuOSAxMy45IDQuNSAyOC4zIDQuNSA0My4xbDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwYzAtMTguMS0xLjktMzUuOC01LjUtNTIuOXpNMjU2IDgwYy0xOSAwLTM3LjQgMy01NC41IDguNi0xNS4yIDUtMTguNyAyMy43LTguMyAzNS45IDcuMSA4LjMgMTguOCAxMC44IDI5LjQgNy45IDEwLjYtMi45IDIxLjgtNC40IDMzLjQtNC40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMjQuOWMwIDI1LjItMS41IDUwLjMtNC40IDc1LjMtMS43IDE0LjYgOS40IDI3LjggMjQuMiAyNy44IDExLjggMCAyMS45LTguNiAyMy4zLTIwLjMgMy4zLTI3LjQgNS01NSA1LTgyLjdsMC0yNC45YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2ek0xNTAuNyAxNDguN2MtOS4xLTEwLjYtMjUuMy0xMS40LTMzLjktLjQtMjMuMSAyOS44LTM2LjggNjcuMS0zNi44IDEwNy43bDAgMjQuOWMwIDI0LjItMi42IDQ4LjQtNy44IDcxLjktMy40IDE1LjYgNy45IDMxLjEgMjMuOSAzMS4xIDEwLjUgMCAxOS45LTcgMjIuMi0xNy4zIDYuNC0yOC4xIDkuNy01Ni44IDkuNy04NS44bDAtMjQuOWMwLTI3LjIgOC41LTUyLjQgMjIuOS03My4xIDcuMi0xMC40IDgtMjQuNi0uMi0zNC4yek0yNTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjQuOWMwIDM1LjktNC42IDcxLjUtMTMuOCAxMDYuMS0zLjggMTQuMyA2LjcgMjkgMjEuNSAyOSA5LjUgMCAxNy45LTYuMiAyMC40LTE1LjQgMTAuNS0zOSAxNS45LTc5LjIgMTUuOS0xMTkuN2wwLTI0LjljMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwwIDI0LjljMCAzNi4zLTMuNSA3Mi40LTEwLjQgMTA3LjktMi43IDEzLjkgNy43IDI3LjIgMjEuOCAyNy4yIDEwLjIgMCAxOS03IDIxLTE3IDcuNy0zOC44IDExLjYtNzguMyAxMS42LTExOC4xbDAtMjQuOWMwLTUzLTQzLTk2LTk2LTk2em0yNCA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0LjljMCA1OS45LTExIDExOS4zLTMyLjUgMTc1LjJsLTUuOSAxNS4zYy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhsNS45LTE1LjNDMjY3LjkgNDExLjkgMjgwIDM0Ni43IDI4MCAyODAuOWwwLTI0Ljl6Il19LGhRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFyZ2luZy1zdGF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmNWU3IiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMjcuN2MtMzIuNS0xMC4yLTU2LTQwLjUtNTYtNzYuM2wwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDMyIDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDM1LjgtMjMuNSA2Ni4xLTU2IDc2LjNMNTIwIDM4MGMwIDM3LjYtMzAuNCA2OC02OCA2OHMtNjgtMzAuNC02OC02OGwwLTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMybDAgMTI5LjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNzIgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkw2NCA2NHptODIuNyAxMjUuN2wzOSAwLTIwLjkgNjYuOWMtMi40IDcuNiAzLjMgMTUuNCAxMS4zIDE1LjQgMi45IDAgNS42LTEgNy44LTIuOWw5NC42LTgyYzMuMS0yLjcgNC45LTYuNiA0LjktMTAuNyAwLTcuOC02LjMtMTQuMS0xNC4xLTE0LjFsLTM5IDAgMjAuOS02Ni45YzIuNC03LjYtMy4zLTE1LjQtMTEuMy0xNS40LTIuOSAwLTUuNiAxLTcuOCAyLjlsLTk0LjYgODJjLTMuMSAyLjctNC45IDYuNi00LjkgMTAuNyAwIDcuOCA2LjMgMTQuMSAxNC4xIDE0LjF6Il19LGZRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWxvY2siLGljb246WzU3Niw1MTIsW10sImY1MDIiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzI5LjcgMCA1Ny43IDcuMyA4Mi4zIDIwLjFsMCA0LjNjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHptMzAxLjcgLjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxueGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbi1idXR0b24iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYWx0Il0sImYzY2QiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em02NCAwbDAgMzA0IDIyNCAwIDAtMzA0LTIyNCAwek0xOTIgNDcyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnoiXX0sbVF0PW54ZSxnUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYSIsIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpNMjg4IDBjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zTDgwIDMwNy45YzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LGx4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy13aXRoLWNhbmUiLGljb246WzU3Niw1MTIsWyJibGluZCJdLCJmMjlkIiwiTTIyNC0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTYwIDIwNS4zbC0yMi42IDIyLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM0LjQtMzQuNGMyMy4yLTIzLjIgNTQuNi0zNi4yIDg3LjMtMzYuMiAzNi4xIDAgNzAuMyAxNS44IDkzLjggNDMuMWw2OC42IDgwYzExLjUgMTMuNCA5LjkgMzMuNi0zLjUgNDUuMXMtMzMuNiA5LjktNDUuMS0zLjVsLTU1LjctNjUgMCAxMTguNiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNsMTIuNiA4OC4xYzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4ybC0xMi42LTg4LjFjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOGwtNzEuNC02MS4yYy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6bS4xIDE2NS44YzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVsLTY4LjMgNjguM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjguMy02OC4zYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEwxNjAuMSAzNzF6bTIzMy41LTYyLjJjMTAuNi04IDI1LjYtNS44IDMzLjYgNC44bDE0NCAxOTJjOCAxMC42IDUuOCAyNS42LTQuOCAzMy42cy0yNS42IDUuOC0zMy42LTQuOGwtMTQ0LTE5MmMtOC0xMC42LTUuOC0yNS42IDQuOC0zMy42eiJdfSxiUXQ9bHhlLGN4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXdhdmVmb3JtIixpY29uOlszODQsNTEyLFsiZmlsZS1tZWRpY2FsLWFsdCJdLCJmNDc4IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC05NiA2MC4zIDAgNDguOCA2Mi43YzUuMSA2LjYgMTMuMyAxMCAyMS42IDkuMXMxNS41LTYuMSAxOS4xLTEzLjZsNDIuOS05MS4yIDkuOSAxOS44YzQuMSA4LjEgMTIuNCAxMy4zIDIxLjUgMTMuM2w3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01Ny4yIDAtMjUuNC01MC43Yy00LjEtOC4yLTEyLjYtMTMuNC0yMS44LTEzLjNzLTE3LjUgNS41LTIxLjQgMTMuOGwtNDcuMyAxMDAuNi0zMi00MS4xQzg2LjQgMzA3LjQgNzkuNCAzMDQgNzIgMzA0TDAgMzA0IDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXoiXX0sdlF0PWN4ZSx4UXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY3JhY2siLGljb246WzUxMiw1MTIsW10sImUzYjEiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGw4Ni40IDAtMzEuMy01Mi4yYy00LjEtNi44LTIuNi0xNS41IDMuNS0yMC41TDI1NiAzNjggMTk1LjggMjg1LjJjLTEwLjktMTUgOC4yLTMzLjUgMjIuOC0yMmwxMTcuOSA5Mi42YzggNi4zIDguMiAxOC40IC40IDI0LjlMMjU2IDQ0OCAyOTQuNCA1MTIgNDAwIDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHoiXX0seVF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC13aXphcmQiLGljb246WzUxMiw1MTIsW10sImY2ZTgiLCJNNjQgNDAwbDg1LjctMjA4LjJjMTctNDEuMyA0Ny44LTc1LjMgODcuMi05Ni4zTDM4My44IDE3LjJjMTIuMy02LjYgMjYuNSA0LjcgMjMgMTguMkwzNjkuNiAxNzcuOGMtMS4xIDQuMS0xLjYgOC4zLTEuNiAxMi42IDAgNi4zIDEuMiAxMi42IDMuNiAxOC41bDc2LjQgMTkxLjEtMjA3LjEgMCAxMS44LTM1LjQgNDAuNC0xMy41YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ycy00LjQtMTMtMTAuOS0xNS4ybC00MC40LTEzLjUtMTMuNS00MC40QzIzNyAyNjAuNCAyMzAuOSAyNTYgMjI0IDI1NnMtMTMgNC40LTE1LjIgMTAuOWwtMTMuNSA0MC40LTQwLjQgMTMuNUMxNDguNCAzMjMgMTQ0IDMyOS4xIDE0NCAzMzZzNC40IDEzIDEwLjkgMTUuMmw0MC40IDEzLjUgMTEuOCAzNS40LTE0My4xIDB6TTI3OS42IDE0MS41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNXMtNi41IDIuMi03LjYgNS41bC02LjcgMjAuMi0yMC4yIDYuN2MtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZzMi4yIDYuNSA1LjUgNy42bDIwLjIgNi43IDYuNyAyMC4yYzEuMSAzLjMgNC4xIDUuNSA3LjYgNS41czYuNS0yLjIgNy42LTUuNWw2LjctMjAuMiAyMC4yLTYuN2MzLjMtMS4xIDUuNS00LjEgNS41LTcuNnMtMi4yLTYuNS01LjUtNy42bC0yMC4yLTYuNy02LjctMjAuMnpNMzIgNDQ4bDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sZHhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZG9jdG9yIixpY29uOls0NDgsNTEyLFsidXNlci1tZCJdLCJmMGYwIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDAgMCAyNDAgMTIwIDEyMCAwIDEgMCAwLTI0MHptNjAgMzEyLjhjLTUuNC0uNS0xMS0uOC0xNi42LS44bC04Ni45IDBjLTUuNiAwLTExLjEgLjMtMTYuNiAuOGwwIDY3LjVjMTYuNSA3LjYgMjggMjQuMyAyOCA0My42IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMTkuNCAxMS41LTM2LjEgMjgtNDMuNmwwLTU4LjRDNjEgMzUzIDE2IDQxMy42IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDM2MS4xIDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC03MS00NS0xMzEuNS0xMDgtMTU0LjZsMCAzNy40YzIzLjMgOC4yIDQwIDMwLjUgNDAgNTYuNmwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMjYuMSAxNi43LTQ4LjMgNDAtNTYuNmwwLTQ2LjZ6Il19LHdRdD1keGUsdXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWJhciIsaWNvbjpbNTEyLDUxMixbImJhci1jaGFydCJdLCJmMDgwIiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDgwbDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMTJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxrUXQ9dXhlLHB4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcHJheS1jYW4tc3BhcmtsZXMiLGljb246WzU3Niw1MTIsWyJhaXItZnJlc2hlbmVyIl0sImY1ZDAiLCJNMTYwIDMybDAgODAgMTI4IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTAgMTI4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4YzAtNTMtNDMtOTYtOTYtOTZsLTEyOCAwem02NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDQ4IDQ4YzAtMS40LTEtMy0yLjItMy42TDQxNiAzMiA0MDMuNiAyLjJDNDAzIDEgNDAxLjQgMCA0MDAgMHMtMyAxLTMuNiAyLjJMMzg0IDMyIDM1NC4yIDQ0LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMMzg0IDY0IDM5Ni40IDkzLjhDMzk3IDk1IDM5OC42IDk2IDQwMCA5NnMzLTEgMy42LTIuMkw0MTYgNjQgNDQ1LjggNTEuNkM0NDcgNTEgNDQ4IDQ5LjQgNDQ4IDQ4em03Ni40IDQ1LjhDNTI1IDk1IDUyNi42IDk2IDUyOCA5NnMzLTEgMy42LTIuMkw1NDQgNjQgNTczLjggNTEuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42IDAtMS40LTEtMy0yLjItMy42TDU0NCAzMiA1MzEuNiAyLjJDNTMxIDEgNTI5LjQgMCA1MjggMHMtMyAxLTMuNiAyLjJMNTEyIDMyIDQ4Mi4yIDQ0LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNTEyIDY0IDUyNC40IDkzLjh6bTcuMiAxMDAuNGMtLjYtMS4yLTIuMi0yLjItMy42LTIuMnMtMyAxLTMuNiAyLjJMNTEyIDIyNCA0ODIuMiAyMzYuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgMjU2IDUyNC40IDI4NS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNTQ0IDI1NiA1NzMuOCAyNDMuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42IDAtMS40LTEtMy0yLjItMy42TDU0NCAyMjQgNTMxLjYgMTk0LjJ6TTUxMiAxNDRjMC0xLjQtMS0zLTIuMi0zLjZMNDgwIDEyOCA0NjcuNiA5OC4yQzQ2NyA5NyA0NjUuNCA5NiA0NjQgOTZzLTMgMS0zLjYgMi4yTDQ0OCAxMjggNDE4LjIgMTQwLjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNDQ4IDE2MCA0NjAuNCAxODkuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDQ4MCAxNjAgNTA5LjggMTQ3LjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNnoiXX0sU1F0PXB4ZSxfUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFodC1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMGFjIiwiTTEzNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwLTc0LjQgMEMxNi44IDY0IDAgODAuOCAwIDEwMS42TDAgNDA2LjNjMCAyMyAxOC43IDQxLjcgNDEuNyA0MS43bDcwLjMgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA0OCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyIDAtNDAuMS0yMS4xLTc1LjMtNTIuNy05NS4xIDEzLjEtMTguMyAyMC43LTQwLjcgMjAuNy02NC45IDAtNjEuOS01MC4xLTExMi0xMTItMTEybC0xNiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMjhsMCA5Ni00OCAwIDAtOTYgNDggMHptNDggOTZsMC05NiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwem0tNDggNjRsMCA5Ni00OCAwIDAtOTYgNDggMHptNDggOTZsMC05NiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC00OCAweiJdfSxoeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJ0ZW1wZXJhdHVyZS11cCJdLCJlMDQwIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yMTIuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQzOS4xIDkuNGw2NCA2NGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOS40LTkuNCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTc4LjctOS40IDkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjNi02IDE0LjEtOS40IDIyLjYtOS40czE2LjYgMy40IDIyLjYgOS40eiJdfSxNUXQ9aHhlLHpRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWItYXdlc29tZSIsaWNvbjpbNjQwLDUxMixbXSwiZTY4MiIsIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MiA1NTIuNCAxNzEuMWMtNS4zLTcuNy04LjQtMTcuMS04LjQtMjcuMSAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjYtMjAuNiA0Ny4xLTQ2LjQgNDhMNDgxIDQ0Mi4zYy0xMC4zIDIzLTMzLjIgMzcuNy01OC40IDM3LjdsLTIwNS4yIDBjLTI1LjIgMC00OC0xNC44LTU4LjQtMzcuN0w0Ni40IDE5MkMyMC42IDE5MS4xIDAgMTcwIDAgMTQ0IDAgMTE3LjUgMjEuNSA5NiA0OCA5NnM0OCAyMS41IDQ4IDQ4YzAgMTAuMS0zLjEgMTkuNC04LjQgMjcuMUwxOTIgMTkyIDI5OC4xIDk5LjFjLTE3LjctOC4zLTMwLTI2LjMtMzAtNDcuMSAwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUyeiJdfSxDUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm9uLWJpbmFyeSIsaWNvbjpbMzg0LDUxMixbXSwiZTgwNyIsIk0xOTIgNTQ0Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NiAwLTg2LjMgNjIuMS0xNTggMTQ0LTE3M2wwLTQ3LjItNDkuNyAyNC44LTMgMS4zYy0xNS4yIDUuNy0zMi41LS44LTM5LjktMTUuNy03LjQtMTQuOC0yLjItMzIuNiAxMS41LTQxLjNsMi44LTEuNiAzOC44LTE5LjQtMzguOC0xOS40Yy0xNS44LTcuOS0yMi4yLTI3LjEtMTQuMy00Mi45IDcuNC0xNC44IDI0LjgtMjEuNCA0MC0xNS42bDMgMS4zIDQ5LjcgMjQuOCAwLTQ0LjJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ0LjIgNDkuNy0yNC44IDMtMS4zYzE1LjItNS44IDMyLjUgLjggMzkuOSAxNS42czIuMiAzMi43LTExLjUgNDEuM2wtMi44IDEuNi0zOC43IDE5LjQgMzguNyAxOS4zYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNy40IDE0LjgtMjQuNyAyMS40LTM5LjkgMTUuNmwtMy0xLjMtNDkuNy0yNC44IDAgNDcuMmM4MS45IDE1LjEgMTQ0IDg2LjggMTQ0IDE3MyAwIDk3LjItNzguOCAxNzYtMTc2IDE3NnptMC02NGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LFRRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuIixpY29uOlszODQsNTEyLFsxMTBdLCI0ZSIsIk0yMS4xIDMzLjljMTIuNy00LjYgMjYuOS0uNyAzNS41IDkuNkwzMjAgMzU5LjYgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxMy41LTguNCAyNS41LTIxLjEgMzAuMXMtMjYuOSAuNy0zNS41LTkuNkw2NCAxNTIuNCA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNTAuNSA4LjQgMzguNSAyMS4xIDMzLjl6Il19LGZ4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtZG93bi1sZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFsiYXJyb3dzIl0sImYwNDciLCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDExNC43LTExNC43IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTE0LjcgMCAwIDExNC43LTkuNC05LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40IDAtMTE0LjcgMTE0LjcgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0xMTQuNyAwIDAtMTE0LjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHoiXX0sJFF0PWZ4ZSxpUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTI0MCAzMjBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LTEyOCAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LERRdD1pUyxMUXQ9aVMsRVF0PWlTLFBRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMTEwIiwiTTIwOCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0wIDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0zNjggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNzUgMzY5LjFBNDggNDggMCAxIDEgMTQyLjkgNDM3IDQ4IDQ4IDAgMSAxIDc1IDM2OS4xek03NSA3NUE0OCA0OCAwIDEgMSAxNDIuOSAxNDIuOSA0OCA0OCAwIDEgMSA3NSA3NXpNNDM3IDM2OS4xQTQ4IDQ4IDAgMSAxIDM2OS4xIDQzNyA0OCA0OCAwIDEgMSA0MzcgMzY5LjF6Il19LG14ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXZlbCIsaWNvbjpbNTc2LDUxMixbImxlZ2FsIl0sImYwZTMiLCJNMTY5LjYgMTUzLjRsLTE4LjctMTguN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMjY1LjYtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEwzMjkuNi02LjZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMMjE0LjkgMTUzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwek0yNzYgMjExLjdsLTMxLjQtMzEuNCAxMTItMTEyIDExOS40IDExOS40LTExMiAxMTItMzEuNC0zMS40LTIzMiAyMzJjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42bDIzMi0yMzJ6TTM5MC45IDM3NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0w1MDUuNiAyMTQuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOC43IDE4LjdjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMNDU0LjkgMzkzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xOC43LTE4Ljd6Il19LElRdD1teGUsZ3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldC1zaW1wbGUiLGljb246WzU3Niw1MTIsWyJ0aWNrZXQtYWx0Il0sImYzZmYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDguOC03LjQgMTUuNy0xNS43IDE4LjYtMTguOCA2LjUtMzIuMyAyNC40LTMyLjMgNDUuNHMxMy41IDM4LjkgMzIuMyA0NS40YzguMyAyLjkgMTUuNyA5LjggMTUuNyAxOC42bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0QzAgMzExLjIgNy40IDMwNC4zIDE1LjcgMzAxLjQgMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkybDAtNjR6Il19LEFRdD1neGUsTlF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvdmUiLGljb246WzUxMiw1MTIsWzEyODMzMF0sImY0YmEiLCJNNDk2IDY0YzEzLjIgMCAyMC43IDE1LjEgMTIuOCAyNS42TDQ4MCAxMjggNDgwIDMwNGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NGwtMTEyIDAtNDYuMyA0Ni4zYy0xMC40IDEwLjQtMjYuNSAxMi40LTM5LjEgNC44TDQxLjUgNDQwLjljLTE3LTEwLjItMTUtMzUuNSAzLjQtNDIuOUwxNjAgMzUyQzIzLjggMzExLjEgNy41IDE2OS44IDIyIDk1LjcgMjUuNiA3Ny45IDQ1LjMgNzEuNCA2MS4zIDgwLjJMMzIwIDIyNCAzMjAgMTQ0YzAtNDQuMiAzNS44LTgwIDgwLTgwbDk2IDB6bS05NiA1NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTE4Mi41LTkuNmMxMi40LTEzLjcgMzMuMy04LjkgNDIuNSA3LjFsNTYuNCA5OC4zYy01LjggMTQuNC05LjIgMzAuMS05LjQgNDYuNUwxMzguMSA2OGMxMC4xLTMxLjYgMjctNTguNCA0NC40LTc3LjZ6Il19LFJRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXJwLWRyb3BsZXQiLGljb246WzUxMiw1MTIsW10sImU1N2MiLCJNMjU2IDE2MGMzNS4zIDAgNjQtMjYuOSA2NC02MCAwLTI0LTMzLjctNzAuMS01Mi4yLTkzLjUtNi4xLTcuNy0xNy41LTcuNy0yMy42IDAtMTguNSAyMy40LTUyLjIgNjkuNS01Mi4yIDkzLjUgMCAzMy4xIDI4LjcgNjAgNjQgNjB6TTM2OCA5NmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMTU3LjkgMTQ0IDk2YzAtMTEuMSAxLjYtMjEuOSA0LjYtMzJMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAzMjIuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTg0LjYgMGMzIDEwLjEgNC42IDIwLjkgNC42IDMyem04NS41IDE3NkwzMzYgMzg5LjUgMzM2IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDB6TTk2IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE9RdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmVlLWNpdHkiLGljb246WzY0MCw1MTIsW10sImU1ODciLCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI1NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQxNnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzUyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek01MjggMTkyYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgNDgwbDAtMTYwLTE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtMjYuNyAxMy4xLTUwLjMgMzMuMi02NC45LS44LTQuOS0xLjItMTAtMS4yLTE1LjEgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxieGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHVybi11cCIsaWNvbjpbMzg0LDUxMixbMTA1NDgsImxldmVsLXVwLWFsdCJdLCJmM2JmIiwiTTE2OS40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDE5MiAzMjAgMTkybC02NCAwIDAgMTYwYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjAtNjQgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlsMTI4LTEyOHoiXX0sRlF0PWJ4ZSxyUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1xdWFydGVyIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMSIsInRoZXJtb21ldGVyLTEiLCJ0aGVybW9tZXRlci1xdWFydGVyIl0sImYyY2EiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtMjguN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjguN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LEJRdD1yUyxIUXQ9clMscVF0PXJTLHZ4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbGlkZXJzIixpY29uOls1MTIsNTEyLFsic2xpZGVycy1oIl0sImYxZGUiLCJNMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDI2NS4zIDY0QzI1MyAzNS43IDIyNC44IDE2IDE5MiAxNnMtNjEgMTkuNy03My4zIDQ4TDMyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNDYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4bDU0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTQuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMjI0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NC43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjQ2LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDM4NHoiXX0salF0PXZ4ZSxWUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVlIixpY29uOls1NzYsNTEyLFsxMjgzMzJdLCJmNjc4IiwiTTE3NC44IDIyNGwyMjYuNCAwYzQzLjUgMCA3OC44LTM1LjMgNzguOC03OC44IDAtMjUuNS0xMi4zLTQ5LjQtMzMuMS02NC4yTDI5Ny4zLTI1LjRjLTUuNi0zLjktMTMtMy45LTE4LjUgMEwxMjkuMSA4MUMxMDguMyA5NS44IDk2IDExOS43IDk2IDE0NS4yIDk2IDE4OC43IDEzMS4zIDIyNCAxNzQuOCAyMjR6TTUxMiA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC00NDggMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDB6TTI0MCAzODRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwLTk2IDAgMC04MHoiXX0sVVF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImgiLGljb246WzM4NCw1MTIsWzEwNF0sIjQ4IiwiTTMyMCAyODhsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE2MC0yNTYgMCAwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDI1NiAweiJdfSxXUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5mbyIsaWNvbjpbMTkyLDUxMixbXSwiZjEyOSIsIk00OCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0yMjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHh4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZyIsaWNvbjpbMzg0LDUxMixbMTI4Njk0LCJ3YWxraW5nIl0sImY1NTQiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0xMDUuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMNjAuMSAxODIuNkM0Mi4xIDIwMC42IDMyIDIyNSAzMiAyNTAuNUwzMiAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6bTEyLjQgMTc5LjRjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDQxLjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44bC0xMC40IDM2LjJ6Il19LEdRdD14eGUseXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXR1cm4tZG93biIsaWNvbjpbMzg0LDUxMixbImxldmVsLWRvd24iXSwiZjE0OSIsIk0zMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwbDk2IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMwNi43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgNDAyLjcgMTYwIDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDY0eiJdfSxLUXQ9eXhlLFlRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkIixpY29uOls1MTIsNTEyLFsxMjg3MzldLCJmMDE4IiwiTTIyMy45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDEuNCA0MjAuNUMtNi4xIDQ1MC43IDE2LjggNDgwIDQ4IDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDE3Ni4xIDBjMzEuMiAwIDU0LjEtMjkuMyA0Ni42LTU5LjVMNDI2LjUgODAuNkM0MTkuNCA1Mi4xIDM5My44IDMyIDM2NC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LFpRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlyYWwiLGljb246WzUxMiw1MTIsW10sImU4MGEiLCJNMTE1LjUgNy40YzEzLjYtMTEuMyAzMy44LTkuNSA0NS4xIDQuMXM5LjUgMzMuOC00LjEgNDUuMUMxMDAuMiAxMDMuNSA2NCAxNzUuMiA2NCAyNTYgNjQgMzYyIDE1MCA0NDggMjU2IDQ0OHMxOTItODYgMTkyLTE5MmMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxNzYgMTgwLjkgMTc2IDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTEyIDMzNS41IDExMiAyNTZjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDBjMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2QzAgMTU1LjggNDUgNjYuMSAxMTUuNSA3LjR6Il19LHd4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWZyb3duIixpY29uOls1MTIsNTEyLFs5Nzg1LCJmcm93biJdLCJmMTE5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem05MC42LTExMy45Yy0yMC40LTI4LTUzLjQtNDYuMS05MC42LTQ2LjFzLTcwLjIgMTguMS05MC42IDQ2LjFjLTcuOCAxMC43LTIyLjggMTMuMS0zMy41IDUuM3MtMTMuMS0yMi44LTUuMy0zMy41QzE1NS43IDMzMCAyMDIuOCAzMDQgMjU2IDMwNHMxMDAuMyAyNiAxMjkuNCA2NS45YzcuOCAxMC43IDUuNCAyNS43LTUuMyAzMy41cy0yNS43IDUuNC0zMy41LTUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxYUXQ9d3hlLGt4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzLWVtcHR5IixpY29uOlszMjAsNTEyLFsid2luZS1nbGFzcy1hbHQiXSwiZjVjZSIsIk02NCAwQzQ4LjcgMCAzNS42IDEwLjggMzIuNiAyNS43TDMuMiAxNzNDMS4xIDE4My41IDAgMTk0LjIgMCAyMDVsMCAzYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44bDAgMTE1LjItNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTExNS4yQzI2NSAzNTAgMzIwIDI4NS40IDMyMCAyMDhsMC0zYzAtMTAuNy0xLjEtMjEuNC0zLjItMzJMMjg3LjQgMjUuN0MyODQuNCAxMC44IDI3MS4zIDAgMjU2IDBMNjQgMHptMS45IDE4NS42TDkwLjIgNjQgMjI5LjggNjQgMjU0LjEgMTg1LjZjMS4zIDYuNCAxLjkgMTIuOSAxLjkgMTkuNGwwIDNjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0zYzAtNi41IC42LTEzIDEuOS0xOS40eiJdfSxRUXQ9a3hlLEpRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGFwcGVyYm9hcmQiLGljb246WzUxMiw1MTIsW10sImUxMzEiLCJNNDQ4IDY0YzIgMCAzLjkgLjEgNS44IC4zbC05NS43IDk1LjcgNjcuOSAwIDcyLTcyYzguOCAxMSAxNCAyNC45IDE0IDQwbDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNzAuMSAwLTk2IDk2IDY3LjkgMCA5NS05NSAxLTEgOTIuMSAwLTk2IDk2IDY3LjkgMCA5NS05NSAxLTEgODYuMSAweiJdfSxTeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZC1zdGVwIixpY29uOlszODQsNTEyLFsic3RlcC1mb3J3YXJkIl0sImYwNTEiLCJNMjEgMzYuOGMxMi45LTcgMjguNy02LjMgNDEgMS44TDMyMCAyMDguMSAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NC4xLTI1OCAxNjkuNmMtMTIuMyA4LjEtMjggOC44LTQxIDEuOFMwIDQ1NC43IDAgNDQwTDAgNzJDMCA1Ny4zIDguMSA0My44IDIxIDM2Ljh6Il19LGVKdD1TeGUsX3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODU5OSwiZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0Il0sImYzNjAiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTY4IDE2MGMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44cy0xLjcgMTkuMyA1LjIgMjYuMmwzNSAzNS02NyA2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMjQgMjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNjctNjcgMzUgMzVjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlMzMjAgMzIxLjcgMzIwIDMxMmwwLTEyOGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6Il19LHRKdD1feGUsTXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stam91cm5hbC13aGlsbHMiLGljb246WzQ0OCw1MTIsWyJqb3VybmFsLXdoaWxscyJdLCJmNjZhIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzQuMSA5OS4yYzIuNi0yLjYgNi43LTMuMSA5LjktMS4xIDMyLjEgMjAgNTMuNCA1NS42IDUzLjQgOTYuMiAwIDYyLjYtNTAuNyAxMTMuMy0xMTMuMyAxMTMuM1MxMTAuNyAyNTYuOSAxMTAuNyAxOTQuM2MwLTQwLjYgMjEuNC03Ni4yIDUzLjQtOTYuMiAzLjEtMiA3LjItMS41IDkuOSAxLjFzMy4xIDYuNyAxLjIgOS44Yy01LjIgOC42LTguMiAxOC43LTguMiAyOS41IDAgMTUuMSA1LjkgMjguOCAxNS41IDM5LjEgMi41IDIuNyAyLjkgNi43IC45IDkuNy00LjcgNy40LTcuNCAxNi4xLTcuNCAyNS41IDAgMjEuNiAxNC4zIDM5LjkgMzQgNDUuOWwxLTI0LjhjLTcuMS00LjQtMTEuOC0xMi4yLTExLjgtMjEuMSAwLTkuNiA1LjUtMTggMTMuNS0yMi4xbDMuMy04MS44Yy4yLTQuMyAzLjctNy43IDgtNy43czcuOCAzLjQgOCA3LjdsMy4zIDgxLjhjOCA0LjEgMTMuNSAxMi40IDEzLjUgMjIuMSAwIDguOS00LjcgMTYuNy0xMS44IDIxLjFsMSAyNC44YzE5LjYtNiAzMy45LTI0LjEgMzQtNDUuNmwwLS42Yy0uMS05LjMtMi43LTE3LjktNy40LTI1LjItMS45LTMuMS0xLjYtNy4xIC45LTkuNyA5LjYtMTAuMiAxNS41LTIzLjkgMTUuNS0zOS4xIDAtMTAuOC0zLTIwLjktOC4yLTI5LjUtMS45LTMuMi0xLjQtNy4yIDEuMi05Ljh6Il19LGFKdD1NeGUsenhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYW1wYWduZS1nbGFzc2VzIixpY29uOls2NDAsNTEyLFsxMjkzNDYsImdsYXNzLWNoZWVycyJdLCJmNzlmIiwiTTE1NS42IDE3LjNDMTYzIDMgMTc5LjktMy42IDE5NSAxLjlsMTI1IDQ1LjYgMTI1LTQ1LjZjMTUuMS01LjUgMzIgMS4xIDM5LjQgMTUuNGw3OC44IDE1Mi45YzI4LjggNTUuOCAxMC4zIDEyMi4zLTM4LjUgMTU2LjZsMzEuMyA4Ni4yIDQxLTE1YzE2LjYtNiAzNSAyLjUgNDEgMTkuMXMtMi41IDM1LTE5LjEgNDFjLTQ3LjQgMTcuMy05NC44IDM0LjUtMTQyLjIgNTEuOC0xNi42IDYuMS0zNS0yLjUtNDEtMTkuMXMyLjUtMzUgMTkuMS00MWw0MS0xNS0zMS4zLTg2LjJjLTU5LjQgNS4yLTExNi4yLTMzLjktMTMwLTk1LjJsLTE0LjYtNjQuNy0xNC42IDY0LjdjLTEzLjggNjEuMy03MC42IDEwMC40LTEzMCA5NS4ybC0zMS4zIDg2LjIgNDEgMTVjMTYuNiA2LjEgMjUuMiAyNC40IDE5LjEgNDFzLTI0LjQgMjUuMi00MSAxOS4xYy00Ny40LTE3LjMtOTQuOC0zNC42LTE0Mi4yLTUxLjgtMTYuNi02LjEtMjUuMi0yNC40LTE5LjEtNDFTMjYuMyAzOTIgNDIuOSAzOThsNDEgMTUgMzEuMy04Ni4yQzY2LjUgMjkyLjUgNDguMSAyMjYgNzYuOSAxNzAuMkwxNTUuNiAxNy4zem00NCA1NC40bC0yNy4yIDUyLjggODkuMiAzMi41IDEzLjEtNTcuOS03NS4xLTI3LjR6bTI0MC45IDBsLTc1LjEgMjcuNCAxMy4xIDU3LjkgODkuMi0zMi41LTI3LjItNTIuOHoiXX0sc0p0PXp4ZSxpSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXIiLGljb246WzU3Niw1MTIsW10sImY3OTMiLCJNMTMyLjMgNjRMMTA2LjcgMTkyIDI0IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMMjYuNSA4MC40QzI5LjggNzAuNiAzOSA2NCA0OS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zMTIgNjRsODIuNyAwIDI1LjYgMTI4LTEwOC4zIDAgMC0xMjh6bTEzMS43IDBsODMgMGMxMC4zIDAgMTkuNSA2LjYgMjIuOCAxNi40bDI1LjMgNzUuOWMuOCAyLjQgMS4yIDUgMS4yIDcuNmwwIDQuMWMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtODIuNyAwLTI1LjYtMTI4ek0yNS43IDI0MGw1MjQuNyAwYy0uNCAyLjEtMTMuMyA3My40LTM4LjkgMjEzLjctMyAxNi4zLTE3LjkgMjcuNi0zNC40IDI2LjFTNDQ4IDQ2NC42IDQ0OCA0NDhsMC0xNi0zMjAgMCAwIDE2YzAgMTYuNi0xMi42IDMwLjQtMjkuMSAzMS45UzY3LjUgNDcwIDY0LjUgNDUzLjdDMzkgMzEzLjMgMjYgMjQyLjEgMjUuNyAyNDB6Il19LHJKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1MDEiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LG9KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTRlNSIsIk0zNDguOCAzMkMzNDAuNyA0Ni4xIDMzNiA2Mi41IDMzNiA4MGwwIDE2LTI3MiAwIDAgMjI0IDI3MiAwIDAgNjQtMjcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg0LjggMHpNMzM2IDQzMmMwIDE3LjUgNC43IDMzLjkgMTIuOCA0OEwxMjAgNDgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxNiAwek00MzIgMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTI0IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNTYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LEN4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLW1hZ2ljIixpY29uOls1MTIsNTEyLFsibWFnaWMiXSwiZjBkMCIsIk0zOTguNSAxMi4ybC04OC4yIDg4LjIgMTAxLjMgMTAxLjMgODguMi04OC4yQzUwNy42IDEwNS42IDUxMiA5NSA1MTIgODRzLTQuNC0yMS42LTEyLjItMjkuNUw0NTcuNSAxMi4yQzQ0OS42IDQuNCA0MzkgMCA0MjggMHMtMjEuNiA0LjQtMjkuNSAxMi4yek0yNzYuNCAxMzQuM0wxMi4yIDM5OC41QzQuNCA0MDYuNCAwIDQxNyAwIDQyOHM0LjQgMjEuNiAxMi4yIDI5LjVsNDIuMyA0Mi4zQzYyLjQgNTA3LjYgNzMgNTEyIDg0IDUxMnMyMS42LTQuNCAyOS41LTEyLjJMMzc3LjcgMjM1LjYgMjc2LjQgMTM0LjN6Il19LG5KdD1DeGUsbEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyYWluIixpY29uOls1MTIsNTEyLFsxMjk1MDRdLCJmNWRjIiwiTTEyMCA1NmMwLTMwLjkgMjUuMS01NiA1Ni01NmwyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0yOS44IDAtNTQuOS0yMC40LTYyLTQ4LS43IDAtMS4zIDAtMiAwLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtMTggNi0zNC42IDE2LTQ4LTE5LjQtMTQuNi0zMi0zNy44LTMyLTY0IDAtMzAuOSAxNy42LTU3LjggNDMuMi03MS4xLTcuMS0xMi0xMS4yLTI2LTExLjItNDAuOSAwLTQ0LjIgMzUuOC04MCA4MC04MGwwLTI0em0yNzIgMGwwIDI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTUtNC4xIDI5LTExLjIgNDAuOSAyNS43IDEzLjMgNDMuMiA0MC4xIDQzLjIgNzEuMSAwIDI2LjItMTIuNiA0OS40LTMyIDY0IDEwIDEzLjQgMTYgMzAgMTYgNDggMCA0NC4yLTM1LjggODAtODAgODAtLjcgMC0xLjMgMC0yIDAtNy4xIDI3LjYtMzIuMiA0OC02MiA0OGwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnoiXX0sY0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWVmY2FzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmNDY5IiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptODAgMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxkSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1MTIiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LHVKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWNvbW1pdCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4NiIsIk0yODggMzM2YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xNTYuOC00OEM0MzAgMzYxIDM2NS40IDQxNiAyODggNDE2UzE0NiAzNjEgMTMxLjIgMjg4TDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OS4yIDBDMTQ2IDE1MSAyMTAuNiA5NiAyODggOTZzMTQyIDU1IDE1Ni44IDEyOGw5OS4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk5LjIgMHoiXX0scEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1icmVhc3RmZWVkaW5nIixpY29uOls0NDgsNTEyLFtdLCJlNTNhIiwiTTIyNCAwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00MzYuOCAzODIuOEwzNzMuNSA0NjJjLTE2LjYgMjAuNy00Ni44IDI0LjEtNjcuNSA3LjUtMTcuNi0xNC4xLTIyLjctMzguMS0xMy41LTU3LjdsLS43LS4xYy0zOC45LTUuNi03NC4zLTI1LjEtOTkuNy01NC44bDAtMzYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgLjggMCAxLjYgLjEgMi40bDEwMS40IDUwLjdjMjMuNyAxMS45IDMzLjMgNDAuNyAyMS41IDY0LjRzLTQwLjcgMzMuMy02NC40IDIxLjVMMjcuMiA0MjcuM2MtMS4xLS41LTIuMi0xLjEtMy4zLTEuNy00LjktMi44LTkuMi02LjQtMTIuNi0xMC42LTQuNi01LjQtNy44LTExLjctOS42LTE4LjQtMy4zLTEyLTEuOS0yNS4yIDQuOC0zNi42IC42LTEuMSAxLjMtMi4yIDItMy4yTDc1LjYgMjU2LjFjMjYuNy00MC4xIDcxLjctNjQuMSAxMTkuOC02NC4xbDc1LjIgMGM0Ni41IDAgOTAuMSAyMi41IDExNy4yIDYwLjNsNTAuNyA3MC45YzIuMiAzIDQgNi4xIDUuNSA5LjQgMi45IDYuNyA0LjMgMTMuOCA0IDIwLjgtLjMgMTAuNi00LjIgMjEtMTEuMiAyOS40ek0zMjAgMzMyYTQ0IDQ0IDAgMSAwIC04OCAwIDQ0IDQ0IDAgMSAwIDg4IDB6Il19LGhKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmF5cyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0ZCIsIk0zMTIuNSAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43bDQ2LjMgNjIuNGMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUMzMzguNSAxMzIgMjk4LjggMTEyIDI1Ni41IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42bDQ2LjMtNjIuNCAwIDI3NS4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTcuNSA3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw4MCA4MGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDEuNSA3QzMyLjEtMi4zIDE2LjktMi4zIDcuNSA3em00NjQgMGwtODAgODBjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwek03LjUgNTA1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXptNDY0IDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw4MCA4MHoiXX0sZkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hbmF0LXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDUiLCJNMTkyIDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyAxMDkuMyAwIDE5MC4xIDAgMjg4TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC02Mi41IDQ0LjgtMTE0LjUgMTA0LTEyNS44TDE2OCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI5My44YzU5LjIgMTEuMiAxMDQgNjMuMyAxMDQgMTI1LjhsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTk3LjktNzMuMy0xNzguNy0xNjgtMTkwLjVMMjE2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxUeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydCIsaWNvbjpbMzg0LDUxMixbInVuc29ydGVkIl0sImYwZGMiLCJNMi40IDIwNC4yYzUgMTIgMTYuNiAxOS44IDI5LjYgMTkuOGwzMjAgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0Ljl6bTAgMTAzLjVjLTUgMTItMi4yIDI1LjcgNi45IDM0LjlsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHoiXX0sbUp0PVR4ZSwkeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXJhZGlhdGlvbiIsaWNvbjpbNTEyLDUxMixbOTc2MiwicmFkaWF0aW9uLWFsdCJdLCJmN2JhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTgwIDBsNjQuMyAwYzguNyAwIDE1LjctNy4xIDE3LjMtMTUuNiA0LjQtMjQuNCAxOC4xLTQ1LjUgMzcuMi01OS43IDcuNC01LjUgMTAuNi0xNS42IDYtMjMuNmwtMzIuNS01Ni4zYy00LjMtNy41LTEzLjktMTAuMy0yMS4yLTUuNS00OC4yIDMxLjUtODEuMyA4NC4yLTg2LjMgMTQ0LjgtLjcgOC44IDYuNSAxNiAxNS4zIDE2em0xMzcuOSA4OS44Yy04LjUtMy43LTE4LjgtMS40LTIzLjUgNi42bC0zMSA1My44Yy00LjMgNy41LTEuOSAxNy4yIDUuOCAyMS4xIDI2LjEgMTMuMiA1NS41IDIwLjcgODYuOCAyMC43czYwLjctNy41IDg2LjgtMjAuN2M3LjctMy45IDEwLjEtMTMuNiA1LjgtMjEuMWwtMzEtNTMuOGMtNC42LTgtMTUtMTAuMy0yMy41LTYuNi0xMS43IDUtMjQuNSA3LjgtMzguMSA3LjhzLTI2LjQtMi44LTM4LjEtNy44ek0zNTAuNCAyNDAuNGMxLjYgOC42IDguNSAxNS42IDE3LjMgMTUuNmw2NC4zIDBjOC44IDAgMTYuMS03LjIgMTUuMy0xNi01LTYwLjYtMzguMS0xMTMuMi04Ni4zLTE0NC44LTcuMy00LjgtMTYuOC0yLTIxLjIgNS41TDMwNy4zIDE1N2MtNC42IDgtMS40IDE4LjEgNiAyMy42IDE5LjEgMTQuMiAzMi43IDM1LjQgMzcuMiA1OS43ek0yNTYgMzA1LjdhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxnSnQ9JHhlLGJKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtY29kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjVmYyIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4MSAyMDlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTM5MyAxNzVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LHZKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5rIixpY29uOls1MTIsNTEyLFtdLCJlMDZkIiwiTTI4OCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyIDE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDE5Mi02NCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC04MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgMC00MGMwLTQuNCAzLjYtOCA4LThsNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA0MC02NCAwIDAtMTkyeiJdfSx4SnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS13YXRlci1wdW1wIixpY29uOls2NDAsNTEyLFtdLCJlNGI2IiwiTTE0NCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzYtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA3OS42YzE3LjYtMiAzNiAyLjUgNTEuMyAxNCAzLjQgMi42IDYuMSAxLjQgOS44LS4zbC44LS40YzUuNy0yLjYgMTIuOS02LjkgMjEuNy0xMy41IDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuMy0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDEwLjctOC4xIDIyLjktMTIuNyAzNS4zLTE0LjFsMC03OS41YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC01NiAwIDAtMTQyLjEgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ5NyAzOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTg4IDg4Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgMCAxNDIuMS0xMzYgMCAwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwxNDQgMzJ6TTQ3NC42IDQ3Ni4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDgyLjMgMTcuNiA0OTAuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6Il19LER4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzLXNsYXNoIixpY29uOls1NzYsNTEyLFsibWljcm9waG9uZS1hbHQtc2xhc2giXSwiZjUzOSIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTUxIDE1MSAwLTMwLjJjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMzI4IDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtMS45IDIyLjktMTEuOCA0My40LTI2LjkgNTlsMzMuOSAzMy45YzI1LjUtMjYgNDEuMy02MS42IDQxLjMtMTAwLjlsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA1Mi42LTIxLjEgMTAwLjItNTUuMyAxMzQuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXpNMjk3LjggMzY3LjdsNDEuNCA0MS40Yy04LjggMi40LTE3LjkgNC4zLTI3LjMgNS40bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUMxNjkuMyA0MDIuNyA5NiAzMjEuOSA5NiAyMjRsMC00MGMwLTUuMSAxLjYtOS45IDQuNC0xMy44bDQzLjYgNDMuNiAwIDEwLjJjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDQgMy4zIDAgNi42LS4xIDkuOC0uM3oiXX0seUp0PUR4ZSx3SnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VydmVyIixpY29uOls0NDgsNTEyLFtdLCJmMjMzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAyODh6bTIxNiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTU2IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFNvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtOTguNS03OS44LTE3OC4zLTE3OC4zLTE3OC4zbC01OS40IDB6Il19LGtKdD1Tb2UsU0p0PVNvZSxfSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjg4LjIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDYyLjEtMTUtMTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNDkgNDkgMCA3MC42LTYxLjItMzUuMy0xNy45LTY2LjljLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjMgOTggOTguNyAxMTAuOGw1LjUgMjAuNS01My43LTMxQzM1LjIgOTEuNSAxNS42IDk2LjcgNi44IDExMnMtMy42IDM0LjkgMTEuNyA0My43bDUzLjcgMzEtMjAuNSA1LjVjLTEyLjggMy40LTIwLjQgMTYuNi0xNyAyOS40czE2LjYgMjAuNCAyOS40IDE3bDY2LjktMTcuOSA2MS4yIDM1LjMtNjEuMiAzNS4zLTY2LjktMTcuOWMtMTIuOC0zLjQtMjYgNC4yLTI5LjQgMTdzNC4yIDI2IDE3IDI5LjRsMjAuNSA1LjUtNTMuNyAzMUMzLjIgMzY1LjEtMiAzODQuNyA2LjggNDAwczI4LjQgMjAuNiA0My43IDExLjdsNTMuNy0zMS01LjUgMjAuNWMtMy40IDEyLjggNC4yIDI2IDE3IDI5LjRzMjYtNC4yIDI5LjQtMTdsMTcuOS02Ni45IDYxLjItMzUuMyAwIDcwLjYtNDkgNDljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNS0xNSAwIDYyLjFjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTYyLjEgMTUgMTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00OS00OSAwLTcwLjYgNjEuMiAzNS4zIDE3LjkgNjYuOWMzLjQgMTIuOCAxNi42IDIwLjQgMjkuNCAxN3MyMC40LTE2LjYgMTctMjkuNGwtNS41LTIwLjUgNTMuNyAzMWMxNS4zIDguOCAzNC45IDMuNiA0My43LTExLjdzMy42LTM0LjktMTEuNy00My43bC01My43LTMxIDIwLjUtNS41YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNjYuOSAxNy45LTYxLjItMzUuMyA2MS4yLTM1LjMgNjYuOSAxNy45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMjAuNS01LjUgNTMuNy0zMWMxNS4zLTguOCAyMC42LTI4LjQgMTEuNy00My43cy0yOC40LTIwLjUtNDMuNy0xMS43bC01My43IDMxIDUuNS0yMC41YzMuNC0xMi44LTQuMi0yNi0xNy0yOS40cy0yNiA0LjItMjkuNCAxN2wtMTcuOSA2Ni45LTYxLjIgMzUuMyAwLTcwLjYgNDktNDljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTUgMTUgMC02Mi4xeiJdfSxNSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGF1cnVzIixpY29uOlszODQsNTEyLFtdLCJlODRmIiwiTTMzNi0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU4LjUtMjguNiAxMTAuMy03Mi41IDE0Mi4zIDUzLjIgMzQuMSA4OC41IDkzLjggODguNSAxNjEuNyAwIDEwNi04NiAxOTItMTkyIDE5MlMwIDQyNiAwIDMyMEMwIDI1Mi4xIDM1LjMgMTkyLjQgODguNSAxNTguMyA0NC42IDEyNi4zIDE2IDc0LjUgMTYgMTYgMTYtMS43IDMwLjMtMTYgNDgtMTZTODAtMS43IDgwIDE2YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyUzMwNCA3Ny45IDMwNCAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTkyIDE5MmExMjggMTI4IDAgMSAwIDAgMjU2IDEyOCAxMjggMCAxIDAgMC0yNTZ6Il19LHpKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJza3VsbC1jcm9zc2JvbmVzIixpY29uOls0NDgsNTEyLFsxMjgzNjksOTc2MF0sImY3MTQiLCJNMzg0IDE0NEMzODQgNjQuNSAzMTIuNCAwIDIyNCAwUzY0IDY0LjUgNjQgMTQ0YzAgNDcuMSAyNS4xIDg4LjkgNjQgMTE1LjJsMCAyOC44YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjguOGMzOC45LTI2LjMgNjQtNjguMSA2NC0xMTUuMnpNMTYwIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0NS41IDMzOS43Yy02LjgtMTYuMy0yNS41LTI0LTQxLjgtMTcuMkwyMjQgMzk3LjMgNDQuMyAzMjIuNWMtMTYuMy02LjgtMzUgLjktNDEuOCAxNy4ycy45IDM1IDE3LjIgNDEuOEwxNDAuOCA0MzIgMTkuNyA0ODIuNUMzLjQgNDg5LjMtNC4zIDUwOCAyLjUgNTI0LjNzMjUuNSAyNCA0MS44IDE3LjJMMjI0IDQ2Ni43IDQwMy43IDU0MS41YzE2LjMgNi44IDM1LS45IDQxLjgtMTcuMnMtLjktMzUtMTcuMi00MS44TDMwNy4yIDQzMiA0MjguMyAzODEuNWMxNi4zLTYuOCAyNC0yNS41IDE3LjItNDEuOHoiXX0sQ0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlc28tc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTIyMiIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgNjQtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMzItMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiA5NiAwYzY1LjYgMCAxMjItMzkuNSAxNDYuNy05NmwzNy4zIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0LjggMGMuNS01LjMgLjgtMTAuNiAuOC0xNnMtLjMtMTAuNy0uOC0xNmwyNC44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM3LjMgMEMzNjIgNzEuNSAzMDUuNiAzMiAyNDAgMzJMMTEyIDMyem0xOTkuNiA5NmwtMTY3LjYgMCAwLTMyIDk2IDBjMjguNCAwIDU0IDEyLjQgNzEuNiAzMnpNMTQ0IDE3NmwxOTAuNyAwYy45IDUuMiAxLjMgMTAuNSAxLjMgMTZzLS41IDEwLjgtMS4zIDE2bC0xOTAuNyAwIDAtMzJ6bTE2Ny42IDgwYy0xNy42IDE5LjYtNDMuMSAzMi03MS42IDMybC05NiAwIDAtMzIgMTY3LjYgMHoiXX0sVEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtZ2xhc3MiLGljb246WzMyMCw1MTIsWzEyNzg2M10sImY0ZTMiLCJNMzIuNiAyNS43QzM1LjYgMTAuOCA0OC43IDAgNjQgMEwyNTYgMGMxNS4zIDAgMjguNCAxMC44IDMxLjQgMjUuN0wzMTYuOCAxNzNjMi4xIDEwLjUgMy4yIDIxLjIgMy4yIDMybDAgM2MwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDExNS4yIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xMTUuMkM1NSAzNTAgMCAyODUuNCAwIDIwOGwwLTNjMC0xMC43IDEuMS0yMS40IDMuMi0zMkwzMi42IDI1Ljd6TTc3LjQgMTI4bDE2NS4xIDAtMTIuOC02NC0xMzkuNSAwLTEyLjggNjR6Il19LG9TPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWhhbGYiLGljb246WzMyMCw1MTIsWzEyNzc3NywidGVtcGVyYXR1cmUtMiIsInRoZXJtb21ldGVyLTIiLCJ0aGVybW9tZXRlci1oYWxmIl0sImYyYzkiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtOTIuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LCRKdD1vUyxESnQ9b1MsTEp0PW9TLEVKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aWNrZXQiLGljb246WzU3Niw1MTIsWzEyNzkwM10sImYxNDUiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA2NEMwIDIwMC44IDcuNCAyMDcuNyAxNS43IDIxMC42IDM0LjUgMjE3LjEgNDggMjM1IDQ4IDI1NnMtMTMuNSAzOC45LTMyLjMgNDUuNEM3LjQgMzA0LjMgMCAzMTEuMiAwIDMyMGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC04LjgtNy40LTE1LjctMTUuNy0xOC42LTE4LjgtNi41LTMyLjMtMjQuNC0zMi4zLTQ1LjRzMTMuNS0zOC45IDMyLjMtNDUuNGM4LjMtMi45IDE1LjctOS44IDE1LjctMTguNmwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek00MTYgMzM2bDAtMTYwLTI1NiAwIDAgMTYwIDI1NiAwek0xMTIgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yODggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LFBKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVhdC1hd24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTk4IiwiTTQ5NiA1NzZhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek04MSA1MjljLTkuNCA5LjMtMjQuNSA5LjMtMzMuOSAwLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDgxIDUyOXptMzAuMi0yOTQuNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjMgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDEyIDEyYy0uOCA3LTEuMiAxNC4yLTEuMiAyMS40IDAgMjAgMyAzOS4zIDguNyA1Ny40LTM2LjggMjEuOC04NSAxNy0xMTYuNi0xNC43TDE2NS42IDQ0NC4zIDgxIDUyOUM2OS43IDUxNy43IDU4LjQgNTA2LjMgNDcgNDk1bDg0LjctODQuNy0zMC41LTMwLjVjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NiA0NzZhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpNMjE1LjIgMTMwLjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4zIDgzLjkgMjQuMi01LjkgNTAuMS0yLjEgNzEuOSAxMC44LTMyLjIgMjQuOS01Ni4yIDU5LjgtNjcuNCAxMDAuMS0zLjgtMi44LTcuNS02LTExLTkuNWwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek01MjYuNyAxNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMCA4LjggOC44IDkuMyAyMi43IDEuNyAzMi4xTDU2MC42IDQ5IDQ0Ni4yIDE2My40YzcuNyAxIDE1LjMgMyAyMi41IDUuOUw1MjcgMTExYzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTUyLjcgNTIuNyAzOSAzOWMzLjIgMy4yIDQuNyA3LjQgNC43IDExLjYtMTcuNy01LjQtMzYuNS04LjMtNTUuOS04LjMtMzQuMiAwLTY2LjMgOC45LTk0LjEgMjQuNmwtOTIuNy05Mi43Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjhsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xTDQ2NSA0OSA0MDYuNyAxMDcuM2MyLjggNy4xIDQuNyAxNC41IDUuOCAyMi4xTDUyNi43IDE1eiJdfSxJSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXR1cm4tcmlnaHQiLGljb246WzQ0OCw1MTIsW10sImU0YzAiLCJNMzEzLjQtNi42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzM4LjcgMTI4IDEyOCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCAyNDEuNyAwIDIyNGwwLTMyQzAgMTIxLjMgNTcuMyA2NCAxMjggNjRsMjEwLjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zem0tOTYgMjU2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQyLjcgMzg0IDk2IDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4bDAtMzJjMC01MyA0My05NiA5Ni05NmwxNDYuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6Il19LEFKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5keS1jYW5lIixpY29uOls0NDgsNTEyLFtdLCJmNzg2IiwiTTQyMS44IDM5LjZDNDUyIDg1LjIgNDU2LjUgMTQyLjkgNDM1LjEgMTkybC0xNjUuNCAwIDQxLjQtNDEuNGMuOC0uOCAxLjUtMS42IDIuMi0yLjRMNDIxLjggMzkuNnpNMjY4IDEwMi45Yy0uOCAuNy0xLjYgMS40LTIuNCAyLjJsLTI4LjEgMjguMWMtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41TDE3NSAxNC42QzIyOS45LTQwLjIgMzE0LjUtNDYuNyAzNzYuNS01LjZMMjY4IDEwMi45ek0xMjUuNyAzMzZsODAtODAgMTgxIDAtODIuNSA4Mi41IDAtMi41LTE3OC41IDB6bTExNyA2NEwxNDEuNCA1MDEuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41bDEwLjctMTAuNyAxODEgMHoiXX0sTkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWVsY2hhaXIiLGljb246WzUxMiw1MTIsW10sImYxOTMiLCJNMTM2IDQwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTE3LjkgMTk3LjZsMTIuNiA2M2MtMzguNiAxMi40LTY2LjUgNDguNy02Ni41IDkxLjQgMCA1MyA0MyA5NiA5NiA5NiAzNS42IDAgNjYuNy0xOS40IDgzLjMtNDguMiAyLjMgLjEgNC42IC4yIDcgLjJsNC4xIDBjMSAwIDIuMSAwIDMuMSAwbDU1LjIgMGMtMjAuNCA2NC45LTgxIDExMi0xNTIuNyAxMTItODguNCAwLTE2MC03MS42LTE2MC0xNjAgMC03My44IDUwLTEzNS45IDExNy45LTE1NC40em0xNDguNi0yOC4xbDIzLjcgMTE4LjUgNjAuNSAwYzMzLjMgMCA2My4yIDIwLjcgNzQuOSA1MS45bDI1LjUgNjggMTguNy02LjJjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVsLTQ4IDE2Yy0xNi4zIDUuNC0zNC0zLTQwLjEtMTkuMWwtMzYuMy05Ni45Yy0yLjMtNi4yLTguMy0xMC40LTE1LTEwLjRsLTg2LjEgMGMtLjQgMC0uOCAwLTEuMyAwbC0xMy4xIDBjLTMwLjUgMC01Ni44LTIxLjUtNjIuOC01MS40TDE2NS4zIDE4OS43Yy02LjQtMzEuOSAxOC02MS43IDUwLjYtNjEuNyAyNC42IDAgNDUuOCAxNy40IDUwLjYgNDEuNXoiXX0sUkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwZWxsLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJmODkxIiwiTTEyMCAzMmMtNDguNiAwLTg4IDM5LjQtODggODhsMCAxNjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTY4YzAtNDguNi0zOS40LTg4LTg4LTg4bC0xNiAwem00MCAxMjhsLTY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDB6TTMwNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMGM0OC42IDAgODgtMzkuNCA4OC04OCAwLTIzLjYtOS4zLTQ1LTI0LjQtNjAuOCAxMC4zLTE0LjQgMTYuNC0zMi4xIDE2LjQtNTEuMiAwLTQ4LjYtMzkuNC04OC04OC04OGwtNjQgMHptNjQgMTEybC0zMiAwIDAtNDggMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpNMzM2IDI1NmwwLTQ4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDB6bTIzMyA4NGMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVsLTEwNS43IDEzMi4xLTM4LjctMzguN2MtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi40IDYuNCAxNS4zIDkuOCAyNC40IDkuM3MxNy41LTQuOSAyMy4yLTEyTDU2OSAzNDB6Il19LE9KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtb2ZmIixpY29uOlszMjAsNTEyLFtdLCJmMDI2IiwiTTk2IDM1MmwtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw0OCAwIDEzNC4xLTExOS4yYzYuNC01LjcgMTQuNi04LjggMjMuMS04LjggMTkuMiAwIDM0LjggMTUuNiAzNC44IDM0LjhsMCAzNzguNGMwIDE5LjItMTUuNiAzNC44LTM0LjggMzQuOC04LjUgMC0xNi43LTMuMS0yMy4xLTguOEw5NiAzNTJ6Il19LEZKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsdW5ncyIsaWNvbjpbNTc2LDUxMixbMTI5NzI5XSwiZjYwNCIsIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNDEuOS0zMiAxOS4yIDAtMTE2LjdjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDIyIDAgNDMuNy01LjEgNjMuNC0xNWw1LTIuNWMzNy40LTE4LjcgNjEtNTYuOSA2MS05OC44bDAtMTI4IDY0LTM4LjQgNjQgMzguNCAwIDEyOGMwIDQxLjggMjMuNiA4MC4xIDYxIDk4LjhsNSAyLjVjMTkuNyA5LjggNDEuNCAxNSA2My40IDE1IDUyLjIgMCA5NC41LTQyLjMgOTQuNS05NC41bDAtNi4yYzAtMTExLjEtMzYuNy0yMTktMTA0LjQtMzA3TDQyOC45IDQ4LjdjLTguMS0xMC42LTIwLjctMTYuNy0zNC0xNi43LTIzLjcgMC00Mi45IDE5LjItNDIuOSA0Mi45bDAgMTE4LjItMzItMTkuMiAwLTE0MS45eiJdfSxCSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9va21hcmsiLGljb246WzM4NCw1MTIsWzEyODI3OCw2MTU5MV0sImYwMmUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0ODBjMCAxMS41IDYuMiAyMi4yIDE2LjIgMjcuOHMyMi4zIDUuNSAzMi4yLS40TDE5MiA0MjEuMyAzMzUuNSA1MDcuNGM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMzg0IDQ5MS41IDM4NCA0ODBsMC00MTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHoiXX0sSEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMmEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0em03MiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyem0yMDgtOGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0tOTYgMGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxfb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC1vbCIsaWNvbjpbNTEyLDUxMixbImxpc3QtMS0yIiwibGlzdC1udW1lcmljIl0sImYwY2IiLCJNMCA3MkMwIDU4LjggMTAuNyA0OCAyNCA0OGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTgwLTI0IDBDMTAuNyA5NiAwIDg1LjMgMCA3MnpNMzAuNCAzMDEuMkM0MS44IDI5Mi42IDU1LjcgMjg4IDcwIDI4OGw0LjkgMGMzMy43IDAgNjEuMSAyNy40IDYxLjEgNjEuMSAwIDE5LjYtOS40IDM3LjktMjUuMiA0OS40bC0yNCAxNy41IDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTAuNyAwQzEzLjEgNDY0IDAgNDUwLjkgMCA0MzQuNyAwIDQyNS4zIDQuNSA0MTYuNSAxMi4xIDQxMWw3MC41LTUxLjNjMy40LTIuNSA1LjQtNi40IDUuNC0xMC42IDAtNy4yLTUuOS0xMy4xLTEzLjEtMTMuMUw3MCAzMzZjLTMuOSAwLTcuNyAxLjMtMTAuOCAzLjZMMzguNCAzNTUuMmMtMTAuNiA4LTI1LjYgNS44LTMzLjYtNC44Uy0xIDMyNC44IDkuNiAzMTYuOGwyMC44LTE1LjZ6TTIyNCA2NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxxSnQ9X29lLGpKdD1fb2UsVkp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNWExIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFVKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlIixpY29uOls1MTIsNTEyLFtdLCJmMWIyIiwiTTIyNC4zLTIuNWMxOS44LTExLjQgNDQuMi0xMS40IDY0IDBMNDY0LjIgOTljMTkuOCAxMS40IDMyIDMyLjYgMzIgNTUuNGwwIDIwM2MwIDIyLjktMTIuMiA0NC0zMiA1NS40TDI4OC4zIDUxNC41Yy0xOS44IDExLjQtNDQuMiAxMS40LTY0IDBMNDguNSA0MTNjLTE5LjgtMTEuNC0zMi0zMi42LTMyLTU1LjRsMC0yMDNjMC0yMi45IDEyLjItNDQgMzItNTUuNEwyMjQuMy0yLjV6bTIwNy44IDM2MGwwLTE2Ni4xLTE0My44IDgzIDAgMTY2LjEgMTQzLjgtODN6Il19LFdKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXBlIixpY29uOls1NzYsNTEyLFtdLCJmNGRiIiwiTTQxMi44IDQxNmM0MS41LTQwLjcgNjcuMi05Ny4zIDY3LjItMTYwIDAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRTMzIgMTMyLjMgMzIgMjU2IDEzMi4zIDQ4MCAyNTYgNDgwbDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMzEuMiAwek0yNTYgMTYwYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem00OCA5NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxHSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9tYiIsaWNvbjpbNTc2LDUxMixbMTI4MTYzXSwiZjFlMiIsIk00ODAtMTZjNi45IDAgMTMgNC40IDE1LjIgMTAuOWwxMy41IDQwLjQgNDAuNCAxMy41QzU1NS42IDUxIDU2MCA1Ny4xIDU2MCA2NHMtNC40IDEzLTEwLjkgMTUuMmwtNDAuNCAxMy41LTEzLjUgNDAuNEM0OTMgMTM5LjYgNDg2LjkgMTQ0IDQ4MCAxNDRzLTEzLTQuNC0xNS4yLTEwLjlsLTEzLjUtNDAuNC00MC40LTEzLjVDNDA0LjQgNzcgNDAwIDcwLjkgNDAwIDY0czQuNC0xMyAxMC45LTE1LjJsNDAuNC0xMy41IDEzLjUtNDAuNEM0NjctMTEuNiA0NzMuMS0xNiA0ODAtMTZ6TTMyMS40IDk3LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEwLjkgMTAuOWM3LjkgMjIgMTIuMiA0NS43IDEyLjIgNzAuNSAwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTMzIgNDE4LjkgMzIgMzA0IDEyNS4xIDk2IDI0MCA5NmMyNC43IDAgNDguNSA0LjMgNzAuNSAxMi4zbDEwLjktMTAuOXpNMTQ0IDMwNGMwLTUzIDQzLTk2IDk2LTk2IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0eiJdfSxMeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbImJhbGFuY2Utc2NhbGUtbGVmdCJdLCJmNTE1IiwiTTUxOS44IDYyLjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNVM1MTYuMy0zLjkgNDk5LjYgMS42bC0xMTMgMzcuN2MtMTMuOS0yMy41LTM5LjYtMzkuMy02OC45LTM5LjMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCAzIC4yIDUuOSAuNSA4LjhMMTE1LjYgMTI5LjZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmwxMzUuNS00NS4yYzQuNSAzLjIgOS4zIDUuOSAxNC40IDguMmwwIDMyNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTI5NC43YzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzNy4zIDI4OGw3Mi40LTEyNC4yIDcyLjQgMTI0LjItMTQ0LjkgMHptNzIuNCA5NmM2Mi45IDAgMTE1LjItMzQgMTI2LTc4LjkgMi42LTExLTEtMjIuMy02LjctMzIuMUw1MzMuOCAxMDkuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDM5MC40IDI3My4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xIDEwLjggNDQuOCA2My4xIDc4LjkgMTI2IDc4Ljl6TTEyNi44IDI5MS44bDcyLjQgMTI0LjItMTQ0LjkgMCA3Mi40LTEyNC4yek0uOSA0MzMuMUMxMS43IDQ3OCA2NCA1MTIgMTI2LjggNTEyczExNS4yLTM0IDEyNi03OC45YzIuNi0xMS0xLTIyLjMtNi43LTMyLjFMMTUwLjkgMjM3LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEw3LjYgNDAxLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjF6Il19LEtKdD1MeGUsRXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1sZWZ0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWxlZnQiXSwiZjE5MSIsIk0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2ek0xMjggMjU2YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42eiJdfSxZSnQ9RXhlLFpKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlciIsaWNvbjpbNTc2LDUxMixbMTI4MjA3XSwiZjU0NSIsIk0yMDkuMSA1MTYuMmMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjguMSA0MDMuMWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsMTctMTcgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAzMy45LTMzLjkgNTAuOSA1MC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTAuOS01MC45IDMzLjktMzMuOSA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMTctMTdjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBMNTQ4LjUgMTA4LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjA5LjEgNTE2LjJ6Il19LFhKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpIixpY29uOlszMjAsNTEyLFsxMDVdLCI0OSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOTYgMCAwIDMyMC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwIDAtMzIwIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LE1vZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUteG1hcmsiLGljb246WzU3Niw1MTIsWyJ2b2x1bWUtbXV0ZSIsInZvbHVtZS10aW1lcyJdLCJmNmE5IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek0zNjcgMTc1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw0NyA0Ny00NyA0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDctNDcgNDctNDdjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNDcgNDctNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxRSnQ9TW9lLEpKdD1Nb2UsZWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyY2h3YXkiLGljb246WzUxMiw1MTIsW10sImY1NTciLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjcyLTQ0OCAwIDAgMjcyeiJdfSxQeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRpZ2dpbmciLGljb246WzU3Niw1MTIsWyJkaWdnaW5nIl0sImY4NWUiLCJNMjA4IDQwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTAuNSAxODEuM2M1LjktMTEuOSAyMC4zLTE2LjcgMzIuMi0xMC43bDI0LjYgMTIuMyAxMi4yLTIwLjRjMTguOS0zMS41IDUzLjItNTAuNSA4OS42LTUwLjUgNDYuMiAwIDg3LjcgMzAuNSAxMDAuNSA3NS40bDMyLjIgMTEyLjcgOTIuOSA0Ni40IDI1LjgtNDNjNS44LTkuNiAxNi4yLTE1LjUgMjcuNC0xNS41czIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzU1NS41IDUxMiA1NDQgNTEybC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMkwzNzAgMzg3LjggMjEuMyAyMTMuNWMtMTEuOS01LjktMTYuNy0yMC4zLTEwLjctMzIuMnpNOTQuMyAzMDcuNGwxMTIgNTZjMTAuOCA1LjQgMTcuNyAxNi41IDE3LjcgMjguNmwwIDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjguMi02MS4zLTMwLjctMzYuMyAxMDljLTUuNiAxNi44LTIzLjcgMjUuOC00MC41IDIwLjJTLTMuOSA0ODYuNiAxLjcgNDY5LjlsNDgtMTQ0YzIuOS04LjggOS41LTE1LjkgMTguMS0xOS40czE4LjMtMy4yIDI2LjYgLjl6Il19LHRlYT1QeGUsem9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLWhpZ2giLGljb246WzUxMiw1MTIsWzYyNDYxLCJ0YWNob21ldGVyLWFsdCIsInRhY2hvbWV0ZXItYWx0LWZhc3QiXSwiZjYyNSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHpNMTc2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05NiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zNTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sYWVhPXpvZSxzZWE9em9lLGllYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW5kZXJsZXNzIixpY29uOlszODQsNTEyLFtdLCJmMjJkIiwiTTE5MiAxMjhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2em0wIDMyMGExOTIgMTkyIDAgMSAwIDAtMzg0IDE5MiAxOTIgMCAxIDAgMCAzODR6Il19LHJlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4iLGljb246WzY0MCw1MTIsWzk5MjVdLCJmNmM0IiwiTTIwOC4zIDE5MmM0My4xIDAgODAuNSAyNC40IDk5LjIgNjAuMSAxNC43LTE3LjIgMzYuNC0yOC4xIDYwLjgtMjguMSA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC45LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0zMjAgMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNy03OC41IDY2LTkxLjItMS4zLTYuOC0yLTEzLjctMi0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyem0xOTItMjIzLjhjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFsNDcuMyA3MC40IDgzLjMtMTYuM2M1LjItMSAxMC42IC43IDE0LjMgNC40IDMuOCAzLjggNS40IDkuMiA0LjQgMTQuNGwtMTYuMyA4My4zIDcwLjQgNDcuM2M0LjQgMyA3LjEgOCA3LjEgMTMuMyAwIDUuMy0yLjYgMTAuMy03IDEzLjJsLTcwLjQgNDcuMyAxNC41IDc0LjJjLTE3LjItMjEuNy00MC40LTM4LjQtNjcuMi00Ny4zLTIuNS0xMi43LTYuOS0yNC42LTEyLjgtMzUuNyA5LjYtMTQuOSAxNS4yLTMyLjcgMTUuMi01MS43IDAtNTMtNDMtOTYtOTYtOTYtNDcuOSAwLTg3LjYgMzUuMS05NC44IDgwLjktMjAuOS0xNi00NS45LTI3LTczLjEtMzEuMWwyMS41LTE0LjUtMTYuMy04My4yLS4zLTJjLS4zLTQuNiAxLjMtOS4xIDQuNi0xMi40IDMuOC0zLjggOS4yLTUuNCAxNC40LTQuNGw4My4zIDE2LjMgNDcuMy03MC40IDEuMi0xLjZjMy0zLjUgNy40LTUuNSAxMi4xLTUuNXptMCAxNzUuOGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDMuOC0uNSA3LjYtMS40IDExLjEtMjEuNy0xNi45LTQ4LjktMjcuMS03OC42LTI3LjEtNC42IDAtOS4xIC4yLTEzLjUgLjcgNi40LTE5IDI0LjMtMzIuNyA0NS41LTMyLjd6Il19LFhiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NTk0XSwiZjA2MSIsIk01MDIuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNzAuNyAwLTEwNS40IDEwNS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6Il19LENvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzU3Niw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk0yNjguOSA4NS4yTDE1Mi4zIDIxNC44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMXpNMTE2LjYgMTgyLjdMMjIzLjQgNjQgMTgzLjggNjRjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xTDExMiA5NiAwIDMyIDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0NDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSxvZWE9Q29lLG5lYT1Db2UsSXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2lpbmciLGljb246WzU3Niw1MTIsWzk5NzUsInNraWluZyJdLCJmN2M5IiwiTTQxNiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIuNyAzMDAuOWM2LjEtMTEuOCAyMC42LTE2LjMgMzIuNC0xMC4ybDE5Ny44IDEwMi43IDYyLjMtODcuMi04Mi05Mi4yYy0xMS0xMi40LTE2LjItMjcuNS0xNi4yLTQyLjRsMTExLjYgNTMuNCA0Mi45IDQ4LjJjMTQuOSAxNi43IDE2LjIgNDEuNiAzLjIgNTkuOGwtNjQuNCA5MC4yIDEyOC4zIDY2LjZjMTMuNiA3LjEgMjkuOCA3LjIgNDMuNiAuM2wxNS4yLTcuNmMxMS45LTUuOSAyNi4zLTEuMSAzMi4yIDEwLjdzMS4xIDI2LjMtMTAuNyAzMi4ybC0xNS4yIDcuNmMtMjcuNSAxMy43LTU5LjkgMTMuNS04Ny4yLS43TDEyLjkgMzMzLjNDMS4yIDMyNy4yLTMuNCAzMTIuNyAyLjcgMzAwLjl6TTEwMyA0OS42bDE4IDguNyA4LjctMTcuNGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC04LjUgMTcgODQuOCA0MSAuNC0uMiA3Ni4xLTMzLjhjMzEuMy0xMy45IDY3LjktLjcgODMuMiAyOS45bDI4LjkgNTcuOCA2OC43IDI3LjVjMTYuNCA2LjYgMjQuNCAyNS4yIDE3LjggNDEuNnMtMjUuMiAyNC40LTQxLjYgMTcuOEwzOTMuOCAyMjRjLTEwLjktNC40LTE5LjgtMTIuNi0yNS4xLTIzLjFsLTExLjUtMjMuMWMtMTYuNCA5LjQtMjUuOSAxNC44LTI4LjUgMTYuM2wtNy42LTMuNy0xODUuNi04OS42LTkuMiAxOC4zYy00IDcuOS0xMy42IDExLjEtMjEuNSA3LjJzLTExLjEtMTMuNi03LjItMjEuNWw5LTE3LjktMTcuNi04LjVDODEuMSA3NC42IDc3LjggNjUgODEuNiA1N1M5NSA0NS43IDEwMyA0OS42eiJdfSxsZWE9SXhlLGNlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2Utd2F0ZXIiLGljb246WzY0MCw1MTIsW10sImU0Y2UiLCJNNjQgNjRsNTEyIDAgMCAxMTJjLTM3LjYgOS40LTY0IDQzLjItNjQgODJsMCA3Ni40Yy0yMS05LjctNDMuNS0xNC41LTY2LTE0LjQtMTAgLjEtMjAuMSAxLjEtMzAgMy4xbDAtMzUuMWMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLjdjLTUuMy0uNS0xMC43LS44LTE2LS43LTI3LjcgLjItNTUuNCA3LjgtODAgMjNsMC04NWMwLTM4LjgtMjYuNC03Mi42LTY0LTgyTDY0IDY0ek00MDMuNCA0NDQuMUMzNzkuMSA0NjIuMyAzNTEuMSA0ODAgMzIwIDQ4MHMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LGRlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1uZ28iLGljb246WzU3Niw1MTIsW10sImU0ZDciLCJNMTI4IDBDOTIuNyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDggMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwyMDggMCAwLTI3MmMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTMwNCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xNjAgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek01MjAgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04MGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptLTQgNDRjMC0yLjIgMS44LTQgNC00bDE2IDBjMi4yIDAgNCAxLjggNCA0bDAgODBjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MHptLTE2OCAwbDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTI0YzAtMTEtOS0yMC0yMC0yMGwtOCAwYy0xMSAwLTIwIDktMjAgMjAgMCA2LjUgMy4xIDEyLjQgOCAxNmwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMjAuNCAwYzEuOSA5LjEgOS45IDE2IDE5LjYgMTYgMTEgMCAyMC05IDIwLTIwIDAtMTkuOS0xNi4xLTM2LTM2LTM2bC0yNCAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptLTkwLjEtMzIuOWMtNC4xLTguMy0xMy41LTEyLjctMjIuNS0xMC41UzIyMCAzOTAuNyAyMjAgNDAwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNDMuMyAyNi4xIDUyLjJjNC4xIDguMyAxMy41IDEyLjcgMjIuNSAxMC41UzMyNCA1MzcuMyAzMjQgNTI4bDAtMTI4YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDQzLjMtMjYuMS01Mi4yeiJdfSx1ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWdsb28iLGljb246WzU3Niw1MTIsW10sImY3YWUiLCJNMzIwIDMzLjhsMCAxMjYuMi0yNzEuNSAwYzUxLjctNzcuMiAxMzkuNi0xMjggMjM5LjUtMTI4IDEwLjggMCAyMS41IC42IDMyIDEuOHpNMzY4IDE2MGwwLTExNi43YzY2IDE5IDEyMi4yIDYxIDE1OS41IDExNi43TDM2OCAxNjB6TTIyLjYgMjA4bDczLjQgMCAwIDExMi05NiAwYzAtMzkuNyA4LTc3LjYgMjIuNi0xMTJ6TTE3NiAzMjBsLTMyIDAgMC0xMTIgMjg4IDAgMCAxMTItMzIgMCAwIDQ4IDE3NiAwIDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0IDE3NiAwIDAtNDh6bTMwNCAwbDAtMTEyIDczLjQgMEM1NjggMjQyLjQgNTc2IDI4MC4zIDU3NiAzMjBsLTk2IDB6TTI4OCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODAgMTI4IDAgMC04MGMwLTM1LjMtMjguNy02NC02NC02NHoiXX0sQXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1kb2xsYXItdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbImRvbmF0ZSJdLCJmNGI5IiwiTTk2IDIyNGExOTIgMTkyIDAgMSAxIDM4NCAwIDE5MiAxOTIgMCAxIDEgLTM4NCAwem0xNzYtOTJsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjQ4IDI3MmMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHpNNDggMzQ0bDAgMTA0YzAgOC44IDcuMiAxNiAxNiAxNmw0NDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LHBlYT1BeGUsaGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InkiLGljb246WzM4NCw1MTIsWzEyMV0sIjU5IiwiTTU4IDQ1LjRDNDcuOCAzMSAyNy44IDI3LjcgMTMuNCAzOFMtNC4zIDY4LjIgNiA4Mi42TDE2MCAyOTguMyAxNjAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDkuNyAxNTQtMjE1LjdjMTAuMy0xNC40IDYuOS0zNC40LTcuNC00NC42UzMzNi4yIDMxIDMyNiA0NS40TDE5MiAyMzIuOSA1OCA0NS40eiJdfSxOeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGZlYT1OeGUsbWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZm91ciIsaWNvbjpbNDQ4LDUxMixbOTg1OV0sImY1MjQiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzUyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUnhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzU3Niw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk01NjAgMzUuNGMwIDI1LjYtMTguOCA0Ny4zLTQ0LjEgNTAuOUw0NjkuMSA5M2MtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQ2MS4zIDIuOCA0ODMtMTYgNTA4LjYtMTYgNTM3LTE2IDU2MCA3IDU2MCAzNS40ek00MDMuNSA2OC4xYy02IDQyLjIgMzAuMiA3OC40IDcyLjQgNzIuNGwzNy44LTUuNEM1NjUuNyAyMzIgNTUwLjggMzU1LjMgNDY5IDQzN3MtMjA1IDk2LjYtMzAxLjkgNDQuN2w1LjQtMzcuOGM2LTQyLjItMzAuMi03OC40LTcyLjQtNzIuNGwtMzcuOCA1LjRDMTAuMyAyODAgMjUuMiAxNTYuNyAxMDcgNzVTMzEyLTIxLjcgNDA4LjkgMzAuM2wtNS40IDM3Ljh6TTQxNy44IDIwMWMtMTkuMSAzNi40LTQ1LjYgNzIuNy03OC45IDEwNnMtNjkuNiA1OS44LTEwNiA3OC45Yy0xMS4xIDUuOC0xMi40IDIxLjQtMS4xIDI2LjYgNTkuMiAyNy41IDEzMS44IDE2LjggMTgwLjYtMzJzNTkuNS0xMjEuNCAzMi0xODAuNmMtNS4zLTExLjMtMjAuOC0xMC0yNi42IDEuMXpNMTEzLjkgMjcwLjZjMS43IDggOSAxMy40IDE3LjEgMTIuN2w0My4xLTMuOS0zLjkgNDMuMWMtLjcgOC4xIDQuNyAxNS41IDEyLjcgMTcuMXMxNS45LTIuOSAxOC40LTEwLjZsMjgtODQuNmMxLjktNS43IC40LTEyLjEtMy45LTE2LjNzLTEwLjYtNS44LTE2LjMtMy45bC04NC42IDI4Yy03LjcgMi42LTEyLjMgMTAuNS0xMC42IDE4LjV6TTMxNS4yIDk5LjFjLjctOC4xLTQuNy0xNS41LTEyLjctMTcuMXMtMTUuOSAyLjktMTguNSAxMC42bC0yOCA4NC42Yy0xLjkgNS43LS40IDEyLjEgMy45IDE2LjNzMTAuNiA1LjggMTYuMyAzLjlsODQuNi0yOGM3LjctMi42IDEyLjMtMTAuNSAxMC42LTE4LjRzLTktMTMuNC0xNy4xLTEyLjdsLTQzLjEgMy45IDMuOS00My4xek02MC4xIDQyNS43bDQ2LjctNi43YzEwLjYtMS41IDE5LjYgNy41IDE4LjEgMTguMWwtNi43IDQ2LjdDMTE0LjcgNTA5LjIgOTMgNTI4IDY3LjQgNTI4IDM5IDUyOCAxNiA1MDUgMTYgNDc2LjYgMTYgNDUxIDM0LjggNDI5LjMgNjAuMSA0MjUuN3oiXX0sZ2VhPVJ4ZSxiZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXptNTMuOCAxODUuMmMtOS4xLTYuMy0yMS41LTQuMS0yNy44IDVzLTQuMSAyMS41IDUgMjcuOGMyMy45IDE2LjcgMzkuNCA0NC4zIDM5LjQgNzUuNXMtMTUuNiA1OC45LTM5LjQgNzUuNWMtOS4xIDYuMy0xMS4zIDE4LjgtNSAyNy44czE4LjggMTEuMyAyNy44IDVjMzQuMS0yMy44IDU2LjYtNjMuNSA1Ni42LTEwOC4zUzI5NiAyNjcuNSAyNjEuOCAyNDMuN3pNODAgMzEyYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMCAyNy4yIDM0YzMgMy44IDcuNiA2IDEyLjUgNmwuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZsLS4zIDBjLTQuOSAwLTkuNSAyLjItMTIuNSA2bC0yNy4yIDM0LTI0IDB6bTEyOCA3Mi4yYzAgMTAuNyAxMC41IDE4LjIgMTguOSAxMS42IDEyLjktMTAuMyAyMS4xLTI2LjEgMjEuMS00My44cy04LjItMzMuNS0yMS4xLTQzLjhjLTguNC02LjctMTguOSAuOS0xOC45IDExLjZsMCA2NC41eiJdfSx2ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWRvd24tdG8tbGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiOCIsIk0yMTQuNiAzMTAuNmwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAyNzQuNyA5NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0yNTYgMGwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5LjQgOS40IDAtMjQyLjdjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0Mi43IDkuNC05LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMnoiXX0seGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImciLGljb246WzQ0OCw1MTIsWzEwM10sIjQ3IiwiTTIyNCA5NkMxMzUuNiA5NiA2NCAxNjcuNiA2NCAyNTZzNzEuNiAxNjAgMTYwIDE2MGM3Ny40IDAgMTQyLTU1IDE1Ni44LTEyOEwyNTYgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0NCAwYzI1LjggMCA0OS42IDIxLjQgNDcuMiA1MC42LTkuNSAxMTUtMTA1LjggMjA1LjQtMjIzLjIgMjA1LjQtMTIzLjcgMC0yMjQtMTAwLjMtMjI0LTIyNFMxMDAuMyAzMiAyMjQgMzJjNTcuNCAwIDEwOS43IDIxLjYgMTQ5LjMgNTcgMTMuMiAxMS44IDE0LjMgMzIgMi41IDQ1LjJzLTMyIDE0LjMtNDUuMiAyLjVDMzAyLjMgMTExLjQgMjY1IDk2IDIyNCA5NnoiXX0seWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpaGFyYSIsaWNvbjpbNTc2LDUxMixbXSwiZjZhNyIsIk0yNzMuNi0zLjJjOC41LTYuNCAyMC4zLTYuNCAyOC44IDBMNDQzLjIgMTAyLjRjOC4zIDYuMiAxOC40IDkuNiAyOC44IDkuNiAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDQ4IDU4LjcgNjQgMTMuMyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0OCAyNC40IDMyIDE1LjYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTEyOCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi00MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIyLjEgMCAxNy45LTMyIDAtNDgtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzLjMgMCA1OC43LTY0IDAtNDgtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxMC40IDAgMjAuNS0zLjQgMjguOC05LjZMMjczLjYtMy4yek0xMjggMzY4bDMyMCAwIDAtNDgtMzIwIDAgMCA0OHpNMzg0IDE2MGwtMTkyIDAgMCA0OCAxOTIgMCAwLTQ4eiJdfSx3ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZy1jaGVja2VyZWQiLGljb246WzQ0OCw1MTIsWzEyNzkzN10sImYxMWUiLCJNMzIgMEM0OS43IDAgNjQgMTQuMyA2NCAzMmwwIDE2IDY5LTE3LjJjMzguMS05LjUgNzguMy01LjEgMTEzLjUgMTIuNSA0Ni4zIDIzLjIgMTAwLjggMjMuMiAxNDcuMSAwbDkuNi00LjhDNDIzLjggMjguMSA0NDggNDMuMSA0NDggNjYuMWwwIDI3OS43YzAgMTMuMy04LjMgMjUuMy0yMC44IDMwbC0zNC43IDEzYy00Ni4yIDE3LjMtOTcuNiAxNC42LTE0MS43LTcuNC0zNy45LTE5LTgxLjQtMjMuNy0xMjIuNS0xMy40TDY0IDM4NCA2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEwwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHpNNjQgMTg3LjFsNjQtMTMuOSAwIDY1LjUtNjQgMTMuOSAwIDY1LjUgNDguOC0xMi4yYzUuMS0xLjMgMTAuMS0yLjQgMTUuMi0zLjNsMC02My45IDM4LjktOC40YzguMy0xLjggMTYuNy0yLjUgMjUuMS0yLjFsMC02NGMxMy42IC40IDI3LjIgMi42IDQwLjQgNi40bDIzLjYgNi45IDAgNjYuNy00MS43LTEyLjNjLTcuMy0yLjEtMTQuOC0zLjQtMjIuMy0zLjhsMCA3MS40YzIxLjggMS45IDQzLjMgNi43IDY0IDE0LjRsMC02OS44IDIyLjcgNi43YzEzLjUgNCAyNy4zIDYuNCA0MS4zIDcuNGwwLTY0LjJjLTcuOC0uOC0xNS42LTIuMy0yMy4yLTQuNWwtNDAuOC0xMiAwLTYyYy0xMy0zLjgtMjUuOC04LjgtMzguMi0xNS04LjItNC4xLTE2LjktNy0yNS44LTguOGwwIDcyLjRjLTEzLS40LTI2IC44LTM4LjcgMy42bC0yNS4zIDUuNSAwLTc1LjItNjQgMTYgMCA3My4xek0zMjAgMzM1LjdjMTYuOCAxLjUgMzMuOS0uNyA1MC02LjhsMTQtNS4yIDAtNzEuNy03LjkgMS44Yy0xOC40IDQuMy0zNy4zIDUuNy01Ni4xIDQuNWwwIDc3LjR6bTY0LTE0OS40bDAtNzAuOGMtMjAuOSA2LjEtNDIuNCA5LjEtNjQgOS4xbDAgNjkuNGMxMy45IDEuNCAyOCAuNSA0MS43LTIuNmwyMi4zLTUuMnoiXX0sVG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImdhdWdlLXNpbXBsZS1tZWQiLCJ0YWNob21ldGVyLWF2ZXJhZ2UiXSwiZjYyOSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LGtlYT1Ub2UsU2VhPVRvZSxPeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtbGVmdCIsaWNvbjpbNTEyLDUxMixbImV4Y2hhbmdlLWFsdCJdLCJmMzYyIiwiTTUwMi42IDE1MC42bC05NiA5NmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzUyIDIzNi45IDM1MiAyMjRsMC02NC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzMjAgMCAwLTY0YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6bS0zOTcuMyAzNTJsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMjc1LjEgMTYwIDI4OGwwIDY0IDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45eiJdfSxfZWE9T3hlLE1lYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWxscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4NCIsIk02NCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyek0xNzYgMzY4YzAtNDguNyAxOC4xLTkzLjIgNDgtMTI3bDAtMTI5QzIyNCA1MC4xIDE3My45IDAgMTEyIDBTMCA1MC4xIDAgMTEyTDAgNDAwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyIDM3LjMgMCA3MC4zLTE4LjIgOTAuNy00Ni4zLTE3LTI4LjYtMjYuNy02Mi0yNi43LTk3Ljd6bTY0LjcgNjcuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDI2NGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMjk3LjkgNDcyYy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNC00LjYtOC43LTE2LjMtOS43LTIzLjMtMi43TDI5Ny45IDQ3MnoiXX0semVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGxvc2lvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRlOSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDE2MGMxMi40IDAgMjIuNyA5LjQgMjMuOSAyMS43TDI5My40IDI5MS42IDQ2Ny42IDExLjNjNi43LTEwLjcgMjAuNS0xNC41IDMxLjctOC41czE1LjggMTkuNSAxMC42IDMxTDM3Mi44IDMzOC42YzIuMiAyLjMgNC4zIDQuNyA2LjMgNy4xbDk3LjItNTQuN2MxMC41LTUuOSAyMy42LTMuMSAzMC45IDYuNHM2LjMgMjMtMi4yIDMxLjVsLTg3IDg3LTcxLjQgMGMtMTMuMi0zNy4zLTQ4LjctNjQtOTAuNS02NHMtNzcuNCAyNi43LTkwLjUgNjRsLTc5LjYgMC03NS41LTUyLjNDLjYgMzU3LTIuOCAzNDQuMSAyLjQgMzMzLjVzMTcuNC0xNS45IDI4LjctMTIuNGw5Ny4yIDMwLjRjMy0zLjkgNi4xLTcuNiA5LjQtMTEuM0w3NS40IDIzNi4zYy02LjEtMTAuMS0zLjktMjMuMSA1LjEtMzAuN3MyMi4yLTcuNSAzMS4xIC4xTDIxNCAyOTMuNmMxLjUtLjQgMy0uOCA0LjUtMS4xbDEzLjYtMTQyLjdjMS4yLTEyLjMgMTEuNS0yMS43IDIzLjktMjEuN3pNMzIgNDY0bDQ1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDB6Il19LENlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1wZW9wbGUiLGljb246WzUxMiw1MTIsW10sImU0YjkiLCJNMTEzIDE1M2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTUgODlDNS43IDc5LjYgNS43IDY0LjQgMTUgNTVTMzkuNiA0NS43IDQ5IDU1TDcyIDc4LjEgNzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODYuMSAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0em0zMjAgMGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzM1IDg5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjMgMjMgMC04Ni4xYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6TTI1NiAxOTJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTYwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC01MyA0My05NiA5Ni05NnpNMzIgMjg4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTgwIDM2OGMxNS4zIDAgMjkuNiA0LjMgNDEuOCAxMS44LTYuMyAxNi4yLTkuOCAzMy44LTkuOCA1Mi4ybDAgNDhjMCAxMS40IDIuNCAyMi4yIDYuNyAzMmwtODcuOCAwQzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuMUwwIDQ0OGMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMzkzLjMgNTEyYzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtNDhjMC0xOC40LTMuNS0zNi05LjgtNTIuMiAxMi4yLTcuNSAyNi41LTExLjggNDEuOC0xMS44IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMzMuMWMwIDE3LTEzLjggMzAuOS0zMC45IDMwLjlsLTg3LjggMHoiXX0sVGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXZpZXdmaW5kZXIiLGljb246WzU3Niw1MTIsW10sImU1OTUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMTQ5LjMgMCAxMzYgMEw2NCAwek00NDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTM1LjMtMjguNy02NC02NC02NEw0NDAgMHpNNDggMzc2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMzYyLjcgMCAzNzZsMCA3MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwYy04LjggMC0xNi03LjItMTYtMTZsMC03MnptNTI4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3MmMwIDguOC03LjIgMTYtMTYgMTZsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTcyek0yODggMjE2YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTUzLTQzLTk2LTk2LTk2em0xOTItNjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTY4IDI3Mi4zYy00OS4zIDQuMS04OCA0NS4zLTg4IDk1LjdsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNDYuOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLTI0YzAtMjkuNSA4LjgtNTYuOSAyNC03OS43ek00MjcuOSA0MDBsNDYuOCAwYzExLjggMCAyMS4zLTkuNiAyMS4zLTIxLjNsMC0xMC43YzAtNTAuMy0zOC43LTkxLjYtODgtOTUuNyAxNS4yIDIyLjggMjQgNTAuMiAyNCA3OS43bDAgMjRjMCA4LjQtMS40IDE2LjUtNC4xIDI0ek0xOTIgMTkyYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LCRlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItb24iLGljb246WzQ0OCw1MTIsW10sImU0ZGQiLCJNMjQ4LThjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjAwLTIxLjMgMjAwLThsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjR6TTE0NS4zIDIwOGwxNTcuNSAwYzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRsMjYuMSA2OS42LTIzOS42IDAgMjYuMS02OS42YzIuMy02LjIgOC4zLTEwLjQgMTUtMTAuNHpNMzQgMjkyLjhsLTEuMyAzLjRDMTMuMiAzMDcuMSAwIDMyOCAwIDM1MkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjg4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMjQtMTMuMi00NC45LTMyLjgtNTUuOWwtMS4zLTMuNC0zNi4zLTk2LjljLTExLjctMzEuMi00MS42LTUxLjktNzQuOS01MS45bC0xNTcuNSAwYy0zMy4zIDAtNjMuMiAyMC43LTc0LjkgNTEuOUwzNCAyOTIuOHpNOTYgMzM2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjI0IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTcgN0MtMi4zIDE2LjQtMi4zIDMxLjYgNyA0MUw1NSA4OWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMFM5OC4zIDY0LjQgODkgNTVMNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDd6TTQwNyA3TDM1OSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzQxNi40LTIuMyA0MDcgN3oiXX0sRGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsZWlnaCIsaWNvbjpbNjQwLDUxMixbXSwiZjdjYyIsIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRTNDYuMyA5NiA2NCA5NmwwIDE2MGMwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCA2OS41LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTA0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODAgMCAwLTY0YzUzIDAgOTYtNDMgOTYtOTZsMC05NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDguOSAwYy00OC41IDAtOTIuOC0yNy40LTExNC41LTcwLjhsLTI1LjItNTAuNUMyMzcuNyA1OS40IDE5My40IDMyIDE0NC45IDMyTDY0IDMyek00MzIgNDE2bC0yNTYgMCAwLTY0IDI1NiAwIDAgNjR6Il19LExlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW1iYmVsbCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ0YiIsIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMiAyNTYgMCAwLTExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTExMi0yNTYgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTE2LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC00OGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAtMTZ6Il19LEZ4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWJ5LWNhcnJpYWdlIixpY29uOls1MTIsNTEyLFsiY2FycmlhZ2UtYmFieSJdLCJmNzdkIiwiTTY0IDIwOGwwIDgwYzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwwLTExMiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2LTMzNiAwem0uMi00OGwyMjMuOCAwIDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDIzMiAwQzE0MS45IDAgNjguNCA3MC45IDY0LjIgMTYwek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTI4OCAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEVlYT1GeGUsUGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imtpd2ktYmlyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjUzNSIsIk0yOTEuMiAzODguNGMzMS4yLTE4LjggNjQuNy0zNi40IDEwMS4xLTM2LjRsNTUuNyAwYzQuNiAwIDkuMS0uMiAxMy42LS43bDg1LjMgMTIxLjljNCA1LjcgMTEuMyA4LjIgMTcuOSA2LjFTNTc2IDQ3MSA1NzYgNDY0bDAtMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4bC01NS43IDBDMzU1LjkgOTYgMzIyLjQgNzguNCAyOTEuMiA1OS42IDI2Mi4zIDQyLjEgMjI4LjMgMzIgMTkyIDMyIDg2IDMyIDAgMTE4IDAgMjI0IDAgMjk1LjEgMzguNiAzNTcuMSA5NiAzOTAuM0w5NiA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ2YzE1LjMgMy45IDMxLjQgNiA0OCA2IDUuNCAwIDEwLjctLjIgMTYtLjdsMCA0MC43YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01MC45YzEyLjQtNC40IDI0LjItMTAgMzUuMi0xNi43ek00NDggMjAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sQnhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI5MS45IDIyMC4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMzMuOSAzMy45LTMzLjktMzMuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjktMzMuOSAzMy45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMzLjktMzMuOSAzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6Il19LEllYT1CeGUsSHhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0yNDQuNyAzODcuM2wtMTA0LTEwNGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHM4LjMtOS45IDE0LjgtOS45bDU2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgNTYgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtMTA0IDEwNGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDB6Il19LEFlYT1IeGUsTmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtbWVkaWNhbCIsaWNvbjpbMzg0LDUxMixbXSwiZjQ3NyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTYwIDI4MGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0semQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmsiLGljb246WzM4NCw1MTIsWzEyODQ3MywxMDAwNSwxMDAwNiwxMDA2MCwyMTUsImNsb3NlIiwibXVsdGlwbHkiLCJyZW1vdmUiLCJ0aW1lcyJdLCJmMDBkIiwiTTU1LjEgNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTQ3LjIgMjU2IDkuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIuNSAzMDEuMyAzMjkuOSA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIzNy44IDI1NiAzNzUuMSAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIuNSAyMTAuNyA1NS4xIDczLjR6Il19LFJlYT16ZCxPZWE9emQsRmVhPXpkLEJlYT16ZCxxeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcGVzIixpY29uOls1MTIsNTEyLFsidHJpYW5nbGUtY2lyY2xlLXNxdWFyZSJdLCJmNjFmIiwiTTI1NiAwYzExLjIgMCAyMS43IDUuOSAyNy40IDE1LjVsOTYgMTYwYzUuOSA5LjkgNi4xIDIyLjIgLjQgMzIuMlMzNjMuNSAyMjQgMzUyIDIyNGwtMTkyIDBjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNS0yMi4zIC40LTMyLjJsOTYtMTYwQzIzNC4zIDUuOSAyNDQuOCAwIDI1NiAwek0xMjggMjcyYTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptMjAwIDE2bDExMiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwbC0xMTIgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xMTJjMC0yMi4xIDE3LjktNDAgNDAtNDB6Il19LEhlYT1xeGUscWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2Utb25lIixpY29uOls0NDgsNTEyLFs5ODU2XSwiZjUyNSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjQgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0samVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2stb3BlbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNjMSIsIk0zODQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOFMzMjAgMjUuMyAzMjAgOTZsMCA2NC0xNjAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC02NHoiXX0sVmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcHBlci1ob3QiLGljb246WzU3Niw1MTIsWzEyNzc5OF0sImY4MTYiLCJNNTQ1IDY1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNDc4LjkgNjMuMkM0NTIuMyA0My42IDQxOS41IDMyIDM4NCAzMiAzNDguOSAzMiAzMTYuNSA0My4zIDI5MC4xIDYyLjQgMjc0LjEgNzQuMSAyODQuMiA5NiAzMDQgOTZsMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDE5LjggMjEuOSAyOS45IDMzLjYgMTMuOSAxOS4xLTI2LjQgMzAuNC01OC44IDMwLjQtOTMuOSAwLTM1LjUtMTEuNi02OC4zLTMxLjItOTQuOUw1NDUgNjV6TTI3MCAxMzUuNWwtMTU5LjYgMjI4QzEwMS4zIDM3Ni40IDg2LjcgMzg0IDcxIDM4NGwtNyAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4bDI3LjEgMGM2NS43IDAgMTI5LjctMjAuMiAxODMuNS01Ny44TDQ0MC41IDMwNi4xQzQzNSAyOTUuOSA0MzIgMjg0LjIgNDMyIDI3MmwtNTYgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC01NmMtMTIuMiAwLTIzLjktMy0zNC04LjV6Il19LGp4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0LXNsYXNoIixpY29uOls1NzYsNTEyLFsidGludC1zbGFzaCJdLCJmNWM3IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDYzLjYgMzk3LjhjMTAuNS0yMy44IDE2LjQtNTAuMSAxNi40LTc3LjggMC05MS4yLTEzMC4yLTI3NC4xLTE2Ni42LTMyMy41LTUuOS04LTE1LjItMTIuNS0yNS4yLTEyLjVsLS40IDBjLTEwIDAtMTkuMyA0LjUtMjUuMiAxMi41LTE1LjYgMjEuMi00OC41IDY2LjktODAuOSAxMTkuNEw0MS0yNC45em05MiAyMjcuN2MtMjEuNiA0My44LTM3IDg1LjktMzcgMTE3LjIgMCAxMDYgODYgMTkyIDE5MiAxOTIgNDMuNCAwIDgzLjQtMTQuNCAxMTUuNS0zOC42TDEzMyAyMDIuOHoiXX0sVWVhPWp4ZSxWeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJvcGxldCIsaWNvbjpbMzg0LDUxMixbMTI4MTY3LCJ0aW50Il0sImYwNDMiLCJNMTkyIDUxMkM4NiA1MTIgMCA0MjYgMCAzMjAgMCAyMjguOCAxMzAuMiA0NS45IDE2Ni42LTMuNSAxNzIuNS0xMS41IDE4MS44LTE2IDE5MS44LTE2bC40IDBjMTAgMCAxOS4zIDQuNSAyNS4yIDEyLjUgMzYuNCA0OS40IDE2Ni42IDIzMi4zIDE2Ni42IDMyMy41IDAgMTA2LTg2IDE5Mi0xOTIgMTkyek0xMTIgMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNzUuMSA2MC45IDEzNiAxMzYgMTM2IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00OC42IDAtODgtMzkuNC04OC04OHoiXX0sV2VhPVZ4ZSwkb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTIwIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxHZWE9JG9lLEtlYT0kb2UsWWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbXSwiZjY1MyIsIk0xOTIgMzIwYzEwNiAwIDE5Mi03OC44IDE5Mi0xNzZTMjk4LTMyIDE5Mi0zMiAwIDQ2LjggMCAxNDRjMCAzOS42IDE0LjMgNzYuMiAzOC40IDEwNS42TDIuOCAzMTYuOEMtMi4xIDMyNi4xLS40IDMzNy41IDcgMzQ1czE4LjkgOS4yIDI4LjIgNC4yTDExNi44IDMwNmMyMy4xIDkgNDguNSAxNCA3NS4yIDE0em0zLjIgNDhjMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NCAyNi43IDAgNTIuMS01IDc1LjItMTRsODEuNiA0My4yYzkuMyA0LjkgMjAuNyAzLjIgMjguMi00LjJzOS4yLTE4LjkgNC4yLTI4LjJsLTM1LjYtNjcuMmMyNC4xLTI5LjQgMzguNC02NiAzOC40LTEwNS42IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xMS41IDExNS44LTExNS44IDIwMS4yLTIzNS44IDIwMi43ek0xOTYgMzJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LFV4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWxvY2F0aW9uIixpY29uOls1MTIsNTEyLFsic2VhcmNoLWxvY2F0aW9uIl0sImY2ODkiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yODggMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgNDguOCA0Ni41IDExMS42IDY4LjYgMTM4LjYgNiA3LjMgMTYuOCA3LjMgMjIuNyAwIDIyLjEtMjcgNjguNi04OS44IDY4LjYtMTM4LjZ6bS0xMTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxaZWE9VXhlLFFiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZSIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek02NCAzODRsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTg4IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0Uzc0LjcgNjQgODggNjR6bTAgOTZsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbnRhZ29uIixpY29uOls1NzYsNTEyLFtdLCJlNzkwIiwiTTMxNi40LTMuMWMtMTYuOC0xMi4yLTM5LjYtMTIuMi01Ni40IDBMMzUuMyAxNjAuMmMtMTYuOCAxMi4yLTIzLjkgMzMuOS0xNy40IDUzLjdsODUuOCAyNjQuMWM2LjQgMTkuOCAyNC45IDMzLjIgNDUuNyAzMy4ybDI3Ny43IDBjMjAuOCAwIDM5LjItMTMuNCA0NS43LTMzLjJsODUuOC0yNjQuMWM2LjQtMTkuOC0uNi00MS40LTE3LjQtNTMuN0wzMTYuNC0zLjF6Il19LFFlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXB1YmxpY2FuIixpY29uOls2NDAsNTEyLFtdLCJmNzVlIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJsMjI0IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCA2NC01NDQgMCAwLTY0em0xNTItMzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMjMyIDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjgwIDE2MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xMjggMjg4bDQxNiAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC00OC0zMiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTkyIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjAgMTI4IDB6Il19LFd4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0Il0sImY1NGYiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTYuOCAxMTMuN2MzLjYgNy4yIDUuNSAxNS4xIDUuNSAyMy4yIDAgMjcuMy0yMS4yIDQ5LjctNDggNTEuNkw1MTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTk2IDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAweiJdfSxKZWE9V3hlLERvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxtIixpY29uOls0NDgsNTEyLFsxMjc5MDIsNjIzNjgsImZpbG0tYWx0IiwiZmlsbS1zaW1wbGUiXSwiZjAwOCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNDggMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzA0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHoiXX0sZXRhPURvZSx0dGE9RG9lLGF0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU0ZDQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDQ1NC42IDQwMHoiXX0sc3RhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzIixpY29uOls1NzYsNTEyLFsxMjg0OTAsNjE2NzBdLCJmMDg2IiwiTTM4NCAxNDRjMCA5Ny4yLTg2IDE3Ni0xOTIgMTc2LTI2LjcgMC01Mi4xLTUtNzUuMi0xNEwzNS4yIDM0OS4yYy05LjMgNC45LTIwLjcgMy4yLTI4LjItNC4ycy05LjItMTguOS00LjItMjguMmwzNS42LTY3LjJDMTQuMyAyMjAuMiAwIDE4My42IDAgMTQ0IDAgNDYuOCA4Ni0zMiAxOTItMzJTMzg0IDQ2LjggMzg0IDE0NHptMCAzNjhjLTk0LjEgMC0xNzIuNC02Mi4xLTE4OC44LTE0NCAxMjAtMS41IDIyNC4zLTg2LjkgMjM1LjgtMjAyLjcgODMuMyAxOS4yIDE0NSA4OC4zIDE0NSAxNzAuNyAwIDM5LjYtMTQuMyA3Ni4yLTM4LjQgMTA1LjZsMzUuNiA2Ny4yYzQuOSA5LjMgMy4yIDIwLjctNC4yIDI4LjJzLTE4LjkgOS4yLTI4LjIgNC4yTDQ1OS4yIDQ5OGMtMjMuMSA5LTQ4LjUgMTQtNzUuMiAxNHoiXX0saXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZ3MiLGljb246WzU3Niw1MTIsW10sImYwMmMiLCJNNDAxLjIgMzkuMUw1NDkuNCAxODkuNGMyNy43IDI4LjEgMjcuNyA3My4xIDAgMTAxLjJMMzkzIDQ0OC45Yy05LjMgOS40LTI0LjUgOS41LTMzLjkgLjJzLTkuNS0yNC41LS4yLTMzLjlMNTE1LjMgMjU2LjhjOS4yLTkuMyA5LjItMjQuNCAwLTMzLjdMMzY3IDcyLjljLTkuMy05LjQtOS4yLTI0LjYgLjItMzMuOXMyNC42LTkuMiAzMy45IC4yek0zMi4xIDIyOS41TDMyLjEgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTMzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2wxNDQgMTQ0YzI1IDI1IDI1IDY1LjUgMCA5MC41TDI4NS40IDQxOC43Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtMTQ0LTE0NGMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM3ptMTQ0LTg1LjVhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0scnRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1biIsaWNvbjpbNTc2LDUxMixbXSwiZTE5YiIsIk01MjggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4LTQ0OCAwQzE0LjMgNjQgMCA3OC4zIDAgOTZMMCAyMDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAgMGMyMC44IDAgMzYuMSAxOS42IDMxIDM5LjhMMzMgNDQwLjJjLTIuNCA5LjYtLjIgMTkuNyA1LjggMjcuNVM1NC4xIDQ4MCA2NCA0ODBsOTYgMGMxNC43IDAgMjcuNS0xMCAzMS0yNC4yTDIxNyAzNTIgMzIxLjQgMzUyYzIzLjcgMCA0NC44LTE0LjkgNTIuNy0zNy4ybDI2LjctNzQuOCAzMS4xIDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjIuNi0yMi42IDY2LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOHpNMzIxLjQgMzA0bC05Mi41IDAgMTYtNjQgMTA1IDAtMjEgNTguN2MtMS4xIDMuMi00LjIgNS4zLTcuNSA1LjN6TTgwIDEyOGwzODQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCAxNjBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6Il19LHBmPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbNjE1MzMsImNoZWNrLWNpcmNsZSJdLCJmMDU4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zNzQgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDIyMS4xIDMxNS4yIDE2OSAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOCA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM3OS4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41eiJdfSxvdGE9cGYsbnRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjb3JwaW8iLGljb246WzY0MCw1MTIsW10sImU4NGUiLCJNMzY4IDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEybDAgMjg5LjdjMCA3LjkgNi40IDE0LjMgMTQuMyAxNC4zIDMuOSAwIDcuNi0xLjYgMTAuMi00LjNsNDAuMS00MS4xLTkuNy05LjdjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNTQyLjMgMzUyIDU1MiAzNTJsNjQgMCAyLjUgLjFjMTIuMSAxLjIgMjEuNSAxMS41IDIxLjUgMjMuOWwwIDY0LS4zIDMuNmMtMS4yIDguMi02LjcgMTUuMy0xNC41IDE4LjYtOSAzLjctMTkuMyAxLjYtMjYuMi01LjJsLTkuMS05LjEtMzkuNiA0MC42Yy0xNC43IDE1LjEtMzQuOSAyMy42LTU2IDIzLjYtNDMuMyAwLTc4LjMtMzUuMS03OC4zLTc4LjNMNDE2IDE0NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMwNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgOTQuMiAzMiA4MC42IDMyIDY0IDMyIDQ2LjMgNDYuMyAzMiA2NCAzMiA5MSAzMiAxMTUuMyA0My4xIDEzMi43IDYxIDE1Mi42IDQzIDE3OSAzMiAyMDggMzIgMjM5LjMgMzIgMjY3LjcgNDQuOSAyODggNjUuNyAzMDguMyA0NC45IDMzNi42IDMyIDM2OCAzMnoiXX0sR3hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWNhcmQtY2xpcCIsaWNvbjpbNTc2LDUxMixbImlkLWNhcmQtYWx0Il0sImY0N2YiLCJNMjU2LTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NC0xMjggMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAzMmwxMTIgMCAwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzIgMTEyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0xNzYgNDAwYzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0yODggMjgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxsdGE9R3hlLGN0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzY4LjggMCAxMzEuMy0yNy4yIDE3Ny4zLTcxLjQgNy4zLTcgOS40LTE3LjkgNS4zLTI3LjFzLTEzLjctMTQuOS0yMy44LTE0LjFjLTQuOSAuNC05LjggLjYtMTQuOCAuNi0xMDEuNiAwLTE4NC04Mi40LTE4NC0xODQgMC03Mi4xIDQxLjUtMTM0LjYgMTAyLjEtMTY0LjggOS4xLTQuNSAxNC4zLTE0LjMgMTMuMS0yNC40UzMyMi42IDguNSAzMTIuNyA2LjNDMjk0LjQgMi4yIDI3NS40IDAgMjU2IDB6Il19LGR0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtd2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTUzMiIsIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNC0xMDguMiAyOC4xLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzktMTMyLjIgMzQuMyAwLTM4LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNjQtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTM3LjMgMC02MS40LTE3NS40LTYyLjIgMTYuMSAyMi4xIDYzLjItNjYuNiAwIDE5LjktNTYuOS03NC42IDE5LjMtNDYuNyAxMzMuNS00MS4zIDAgMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxNi44LTQ4IDEwMC4yIDAgMTYuOCA0OC0xMzMuOCAweiJdfSxLeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFjaG9ncmFwaC1kaWdpdGFsIixpY29uOls1NzYsNTEyLFsiZGlnaXRhbC10YWNob2dyYXBoIl0sImY1NjYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAzNTJ6bTI1NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpNNDk2IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTg4IDMxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTEwNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem01NiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHV0YT1LeGUsWXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldCIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbmRyb2lkIl0sImYzZmIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTg0IDQwMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxwdGE9WXhlLG5TPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1YmxlLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzODEsInJvdWJsZSIsInJ1YiIsInJ1YmxlIl0sImYxNTgiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDIwOC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCA0OC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1MiAwIDAtNDggMTEyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTMzM1LjUgMzIgMjU2IDMyTDExMiAzMnpNMjU2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6Il19LGh0YT1uUyxmdGE9blMsbXRhPW5TLGd0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xNTIgODBsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODBjMC00LjQgMy42LTggOC04em0xNjggOGMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODB6Il19LGJ0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4iLGljb246WzUxMiw1MTIsWzEyODM5NF0sImYzMDQiLCJNMzUyLjkgMjEuMkwzMDggNjYuMSA0NDUuOSAyMDQgNDkwLjggMTU5LjFDNTA0LjQgMTQ1LjYgNTEyIDEyNy4yIDUxMiAxMDhzLTcuNi0zNy42LTIxLjItNTEuMUw0NTUuMSAyMS4yQzQ0MS42IDcuNiA0MjMuMiAwIDQwNCAwcy0zNy42IDcuNi01MS4xIDIxLjJ6TTI3NC4xIDEwMEw1OC45IDMxNS4xYy0xMC43IDEwLjctMTguNSAyNC4xLTIyLjYgMzguN0wuOSA0ODEuNmMtMi4zIDguMyAwIDE3LjMgNi4yIDIzLjRzMTUuMSA4LjUgMjMuNCA2LjJsMTI3LjgtMzUuNWMxNC42LTQuMSAyNy45LTExLjggMzguNy0yMi42TDQxMiAyMzcuOSAyNzQuMSAxMDB6Il19LHZ0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZSIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MiIsIk01MjAgMjAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xMjcuMyAwLTE1OS4yIDE3My42Yy02LjEgNi42LTE0LjYgMTAuNC0yMy42IDEwLjRsLTQzLjcgMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNTQuMy0xNjIuOS05OS43IDAtNTIuOCA2NmMtMyAzLjgtNy42IDYtMTIuNSA2bC0xOS44IDBjLTEwLjQgMC0xOC05LjgtMTUuNS0xOS45TDMyIDI1NiA1IDE0Ny45QzIuNCAxMzcuOCAxMC4xIDEyOCAyMC41IDEyOGwxOS44IDBjNC45IDAgOS41IDIuMiAxMi41IDZsNTIuOCA2NiA5OS43IDAtNTQuMy0xNjIuOUMxNDcuNiAyNi43IDE1NS4zIDE2IDE2Ni4yIDE2bDQzLjcgMGM5IDAgMTcuNSAzLjggMjMuNiAxMC40TDM5Mi43IDIwMCA1MjAgMjAweiJdfSx4dGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZ6TTI0IDEyOGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDguOCA3LjIgMTYgMTYgMTZsMzYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTY4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTk2LjUgMTEuNWMtNC40LTcuMS0xMi4xLTExLjUtMjAuNS0xMS41cy0xNi4xIDQuNC0yMC41IDExLjVsLTU2LjMgOTIuMS0yNC41LTMwLjZjLTQuNi01LjctMTEuNC05LTE4LjctOXMtMTQuMiAzLjMtMTguNyA5bC02NCA4MGMtNS44IDcuMi02LjkgMTcuMS0yLjkgMjUuNFMxNzQuOCAzNTIgMTg0IDM1MmwyNzIgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0eiJdfSxaeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbiIsaWNvbjpbMzg0LDUxMixbIm1vYmlsZS1hbmRyb2lkLWFsdCJdLCJmM2NmIiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMTI4IDQ0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzA0IDY0bC0yMjQgMCAwIDMwNCAyMjQgMCAwLTMwNHoiXX0seXRhPVp4ZSx3dGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VhcmFuaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTlhIiwiTTE5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyA3Ny4zIDAgMTU4LjEgMCAyNTZTNzMuMyA0MzQuNyAxNjggNDQ2LjVsMCA0MS41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjUgMC0xNy43LTE0LjMtMzItMzItMzJsLTEzNiAwIDAtOTMuOGMyNS4zIDQuOCA0Ny45IDE3IDY1LjYgMzQuMyAxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk3LjIgOTAuMiAyNTguOCA3MC44IDIxNiA2NS41TDIxNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTY4IDEzMC4ybDAgMjUxLjVDMTA4LjggMzcwLjUgNjQgMzE4LjUgNjQgMjU2czQ0LjgtMTE0LjUgMTA0LTEyNS44em00OCAyNTEuNWwwLTkzLjggMTAwIDBjLTEyLjMgNDcuNi01MS4yIDg0LjUtMTAwIDkzLjh6Il19LFh4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWctc2hvcHBpbmciLGljb246WzQ0OCw1MTIsWyJzaG9wcGluZy1iYWciXSwiZjI5MCIsIk0xNjAgODBjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDQ4LTEyOCAwIDAtNDh6bS00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwIDAtNDhjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMTEyIDE4LjEgMTEyIDgwbDAgNDh6bTI0IDQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMTUyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGt0YT1YeGUsUXhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zbC0xMDQgMTA0Yy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzI1NiAzNjYuNSAyNTYgMzYwbDAtNTYtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTZjMC02LjUgMy45LTEyLjMgOS45LTE0LjhzMTIuOS0xLjEgMTcuNCAzLjVsMTA0IDEwNGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnoiXX0sU3RhPVF4ZSxKeGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtdm9sdW1lIixpY29uOls1NzYsNTEyLFsidm9sdW1lLWNvbnRyb2wtcGhvbmUiXSwiZjJhMCIsIk0zNDQtMzJjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMjAgODhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTE0NC4xIDEuNGMxOS43LTUuNCA0MC4zIDQuNyA0OC4xIDIzLjVsNDAuNSA5Ny4zYzYuOSAxNi41IDIuMSAzNS42LTExLjggNDdsLTQ0LjEgMzYuMWMzMi41IDcxLjYgODkgMTMwIDE1OS4zIDE2NC45TDM3NC43IDMyM2MxMS4zLTEzLjkgMzAuNC0xOC42IDQ3LTExLjhMNTE5IDM1MS44YzE4LjggNy44IDI4LjkgMjguNCAyMy41IDQ4LjFsLTEuNSA1LjVDNTIzLjQgNDcwLjEgNDYwLjkgNTI1LjMgMzg0LjYgNTA5LjIgMjA5LjYgNDcyLjEgNzEuOSAzMzQuNCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjV6Il19LF90YT1KeGUsTXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzIixpY29uOls1MTIsNTEyLFtdLCJmMWIzIiwiTTI4NC0xLjNjLTE3LjMtMTAtMzguNy0xMC01NiAwTDE0My44IDQ3LjNjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgMTAxLjktODguMyA1MWMtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCA5Ny4zYzAgMjAgMTAuNyAzOC41IDI4IDQ4LjVsODQuMyA0OC42YzE3LjMgMTAgMzguNyAxMCA1NiAwbDg4LjMtNTEgODguMyA1MWMxNy4zIDEwIDM4LjcgMTAgNTYgMEw0ODQuNSA0NDNjMTcuMy0xMCAyOC0yOC41IDI4LTQ4LjVsMC05Ny4zYzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVsLTg4LjMtNTEgMC0xMDEuOWMwLTIwLTEwLjctMzguNS0yOC00OC41TDI4NC0xLjN6TTIzMiAyOTIuNmwwIDEwNi41LTg4LjMgNTFjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTIuMy01My4zem0yMzEuNCAuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNGwwIDk3LjNjMCAyLjktMS41IDUuNS00IDYuOWwtODQuMyA0OC42Yy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkxLjItNTIuNnpNMzQ4LjMgOTUuOGwwIDEwMS45LTkyLjMgNTMuMyAwLTEwNi41IDkxLjItNTIuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNHoiXX0senRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lIixpY29uOls1MTIsNTEyLFsxMjgyMjIsMTI4Mzc5XSwiZjA5NSIsIk0xNjAuMiAyNUMxNTIuMyA2LjEgMTMxLjctMy45IDExMi4xIDEuNGwtNS41IDEuNWMtNjQuNiAxNy42LTExOS44IDgwLjItMTAzLjcgMTU2LjQgMzcuMSAxNzUgMTc0LjggMzEyLjcgMzQ5LjggMzQ5LjggNzYuMyAxNi4yIDEzOC44LTM5LjEgMTU2LjQtMTAzLjdsMS41LTUuNWM1LjQtMTkuNy00LjctNDAuMy0yMy41LTQ4LjFsLTk3LjMtNDAuNWMtMTYuNS02LjktMzUuNi0yLjEtNDcgMTEuOGwtMzguNiA0Ny4yQzIzMy45IDMzNS40IDE3Ny4zIDI3NyAxNDQuOCAyMDUuM0wxODkgMTY5LjNjMTMuOS0xMS4zIDE4LjYtMzAuNCAxMS44LTQ3TDE2MC4yIDI1eiJdfSxDdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9yaWktZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbOTk2MV0sImY2YTEiLCJNMCA5NkwwIDI4LjVDMCAyMS42IDUuNiAxNiAxMi41IDE2IDE0LjggMTYgMTcgMTYuNiAxOSAxNy44TDU4IDQxLjJDODIuOSA1Ni4xIDExMS4zIDY0IDE0MC4zIDY0bDE2Ny40IDBjMjkgMCA1Ny41LTcuOSA4Mi4zLTIyLjhsMzktMjMuNGMxLjktMS4yIDQuMi0xLjggNi40LTEuOCA2LjkgMCAxMi41IDUuNiAxMi41IDEyLjVMNDQ4IDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgNjQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xOTIgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC02NEMyOC43IDE2MCAwIDEzMS4zIDAgOTZ6TTEyOCAyMjRsNjQgMCAwLTY0LTY0IDAgMCA2NHptMTI4IDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sVHRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY29uIixpY29uOls1NzYsNTEyLFsxMjkzNjNdLCJmN2U1IiwiTTU1NyA5Ni43YzE0LjQgMTQuNCAxMi40IDM4LjQtNC4zIDUwLjJsLTY0LjYgNDUuN2MtNDMuNyAzMC45LTc5LjIgNzEuOS0xMDMuNCAxMTkuNmwtMjUuMyA0OS44Yy0yNS4xIDQ5LjMtNjIuMSA5MS41LTEwNy44IDEyMi42bC03NC4xIDUwLjZjLTEzLjEgOC45LTMwLjcgNy4zLTQxLjgtMy45bC00NC45LTQ0LjkgODYuNS02Ni41YzQyLjMtMzIuNSA3Ni43LTc0LjMgMTAwLjYtMTIybDI0LjUtNDkuMWMyNC41LTQ5IDYxLjgtOTAuNiAxMDcuOS0xMjAuMmwxMDguNy02OS45IDM4IDM4ek00ODQuMiAyMy45TDM4NC4zIDg4LjJjLTUzLjQgMzQuMy05Ni41IDgyLjQtMTI0LjkgMTM5LjFsLTI0LjUgNDkuMWMtMjAuNiA0MS4zLTUwLjMgNzcuMy04Ni45IDEwNS40bC05MS40IDcwLjMtMzYuOS0zNi45Yy0xNC40LTE0LjQtMTIuNC0zOC40IDQuMy01MC4ybDY0LjYtNDUuN2M0My43LTMwLjkgNzkuMi03MS45IDEwMy40LTExOS42bDI1LjMtNDkuOEMyNDIuMyAxMDAuOCAyNzkuMyA1OC42IDMyNSAyNy40bDc0LjEtNTAuNmMxMy4xLTguOSAzMC42LTcuMyA0MS44IDMuOWw0My4zIDQzLjN6Il19LCR0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZy1idXJzdCIsaWNvbjpbNTc2LDUxMixbXSwiZTU0NyIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDUuNGMwIDU1LjItMjMuNyAxMDctNjMuOSAxNDMuMWw2Mi45IDc1LjUgODkgMGMxNS4xIDAgMjkuMyA3LjEgMzguNCAxOS4ybDQzLjIgNTcuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40TDM2OCAzMjAgMjYzLjIgMzIwIDM3Ni44IDQ1OS44YzExLjEgMTMuNyA5LjEgMzMuOS00LjcgNDVzLTMzLjkgOS4xLTQ1LTQuN0wxMzcuNCAyNjYuNmMtNi4xIDE1LTkuNCAzMS4zLTkuNCA0OGwwIDY5LjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OS40YzAtNjcuNCAzNS40LTEyOS45IDkzLjItMTY0LjZsNC42LTIuOEMyMDAuNCAxMjQgMjI0IDgyLjQgMjI0IDM3LjRsMC01LjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2IDg4QTU2IDU2IDAgMSAxIDEyOCA4OCA1NiA1NiAwIDEgMSAxNiA4OHptMzc2LTcuOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OHptMTA0IDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwem0tNTQuNS05Ny41Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxleWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXVvdGUtcmlnaHQiLGljb246WzQ0OCw1MTIsWzgyMjEsInF1b3RlLXJpZ2h0LWFsdCJdLCJmMTBlIiwiTTQ0OCAyOTZjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnptLTI1NiAwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMzZ6Il19LER0YT1leWUsTHRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNCIsIk00ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI2Ny41IDU5LjFMNDAwIDE4Ni45IDQwMCA1MDMuNGMtOS40IDUuNC0yMC4zIDguNi0zMiA4LjZsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE0NC0xOS45IDBDMTIuNiAzMDQgMCAyOTEuNCAwIDI3NS45IDAgMjY4LjMgMy4xIDI2MSA4LjYgMjU1LjdMMjEyLjUgNTkuMUMyMTkuOSA1MiAyMjkuNyA0OCAyNDAgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjA0LjggMjU2LjhsMCA0NC00NCAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZsMCAzNS4yYzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmw0NCAwIDAgNDRjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDM1LjIgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC00NCA0NCAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTM1LjJjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC00NCAwIDAtNDRjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC0zNS4yIDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNnoiXX0sRXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNTAuNyAwIDEyOCAxMjgtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDM5Ny4zIDM5My40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzMzLjMgMzUyIDQzOC42IDI0Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI4OCAzMDYuNyAyMDIuMiAyMjAuOUMyNTEuNCAyMDkuMSAyODggMTY0LjggMjg4IDExMiAyODggNTAuMSAyMzcuOSAwIDE3NiAwTDMyIDB6TTE3NiAxNjBsLTExMiAwIDAtOTYgMTEyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6Il19LFB0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXRocmVlIixpY29uOls0NDgsNTEyLFs5ODU4XSwiZjUyNyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjggNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxJdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNiIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjdsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNzYgMzg0bDAgODAgODAgMCAwLTY0LjFjMC0xMy43IDEuOS0yNyA1LjUtMzkuNi01LjctNS4yLTEzLjItOC4zLTIxLjUtOC4zbC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA3IDIyNC4zYy0xLS4yLTItLjMtMy0uM2wtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjcgMGMyLjEtMjIuOCA4LjQtNDQuMyAxOC4zLTYzLjd6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0zNTIgODAuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHR5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NEwwIDk2em0wIDQ4bDU3NiAwIDAgMjcyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDR6TTI0Ny4zIDQxNmMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOS0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMHpNMTc2IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzYwIDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAweiJdfSxBdGE9dHllLGF5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGxheSIsaWNvbjpbNTEyLDUxMixbNjE0NjksInBsYXktY2lyY2xlIl0sImYxNDQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTg4LjMgMTQ3LjFjLTcuNiA0LjItMTIuMyAxMi4zLTEyLjMgMjAuOWwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OGMtNy40LTQuNS0xNi43LTQuNy0yNC4zLS41eiJdfSxOdGE9YXllLHN5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxMywibGF1Z2gtYmVhbSJdLCJmNTlhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNzYgMTY0Yy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sUnRhPXN5ZSxPdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVhZiIsaWNvbjpbNTEyLDUxMixbXSwiZjA2YyIsIk00NzEuMyA2LjdDNDc3LjcgLjYgNDg3LTEuNiA0OTUuNiAxLjIgNTA1LjQgNC41IDUxMiAxMy43IDUxMiAyNGwwIDE4Ni45YzAgMTMxLjItMTA4LjEgMjM3LjEtMjM4LjggMjM3LjEtNzcgMC0xNDMuNC00OS41LTE2Ny41LTExOC43LTM1LjQgMzAuOC01Ny43IDc2LjEtNTcuNyAxMjYuNyAwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDQ2OS4zIDAgNDU2QzAgMzgxLjEgMzguMiAzMTUuMSA5Ni4xIDI3Ni4zIDEzMS40IDI1Mi43IDE3My41IDI0MCAyMTYgMjQwbDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTM5LjcgMC03Ny4zIDguOC0xMTEgMjQuNSAyMy4zLTcwIDg5LjItMTIwLjUgMTY3LTEyMC41IDY2LjQgMCAxMTUuOC0yMi4xIDE0OC43LTQ0IDE5LjItMTIuOCAzNS41LTI4LjEgNTAuNy00NS4zeiJdfSxGdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS11c2VyIixpY29uOls1MTIsNTEyLFtdLCJlMDY1IiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0zMTIgMjU2YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMTQ0IDQzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHoiXX0sTG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbInJlZG8tYWx0Iiwicm90YXRlLWZvcndhcmQiXSwiZjJmOSIsIk00ODggMTkybC0xNDQgMGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44cy0xLjctMTkuMyA1LjItMjYuMmw0Ni43LTQ2LjdjLTc1LjMtNTguNi0xODQuMy01My4zLTI1My41IDE1LjktNzUgNzUtNzUgMTk2LjUgMCAyNzEuNXMxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTQuMy05NC4zIDI0My43LTk5LjYgMzQ0LjMtMTYuMkw0NzEgN2M2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzUxMiAxNC4zIDUxMiAyNGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sQnRhPUxvZSxIdGE9TG9lLHF0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b290aCIsaWNvbjpbNDQ4LDUxMixbMTI5NDYzXSwiZjVjOSIsIk0xNDUgNS43TDIyNCAzMiAzMDMgNS43QzMxNC4zIDEuOSAzMjYgMCAzMzcuOSAwIDM5OC43IDAgNDQ4IDQ5LjMgNDQ4IDExMC4xbDAgNjguNWMwIDI5LjQtOS41IDU4LjEtMjcuMiA4MS42bC0xLjEgMS41Yy0xMi45IDE3LjItMjEuMyAzNy40LTI0LjMgNTguN0wzNzMuNyA0NzEuOWMtMy4zIDIzLTIzIDQwLjEtNDYuMiA0MC4xLTIyLjggMC00Mi4zLTE2LjUtNDYtMzlMMjYxLjMgMzUxLjZjLTMtMTguMi0xOC44LTMxLjYtMzcuMy0zMS42cy0zNC4yIDEzLjQtMzcuMyAzMS42TDE2Ni41IDQ3M2MtMy44IDIyLjUtMjMuMiAzOS00NiAzOS0yMy4yIDAtNDIuOS0xNy4xLTQ2LjItNDAuMUw1Mi42IDMyMC41Yy0zLTIxLjMtMTEuNC00MS41LTI0LjMtNTguN2wtMS4xLTEuNUM5LjUgMjM2LjcgMCAyMDguMSAwIDE3OC43bDAtNjguNUMwIDQ5LjMgNDkuMyAwIDExMC4xIDAgMTIyIDAgMTMzLjcgMS45IDE0NSA1Ljd6Il19LGp0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LXdpbmRvdyIsaWNvbjpbNTEyLDUxMixbXSwiZTAwZCIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjE2IDIyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LFZ0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3RvcmN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjc5NDldLCJmMjFjIiwiTTI4MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1Ni42IDAgMjIuNSA0OC43LTk1LjEgNzEuM2MtMzMuNC0yNS4xLTc1LTQwLTEyMC00MGwtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzc4LjUgMCAxNDMuMiA1OS42IDE1MS4yIDEzNmwtMjUuNCAwYy0xMS4yLTU5LjItNjMuMy0xMDQtMTI1LjgtMTA0LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4UzczLjMgNDgwIDE0NCA0ODBjNjIuNSAwIDExNC41LTQ0LjggMTI1LjgtMTA0bDUwLjIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTIyLjVjMC00NS4xIDI1LjctODUuNCA2NS41LTEwNy43bDEyLjEgMjYuMWMtMzIuNCAyMy4yLTUzLjUgNjEuMi01My41IDEwNC4xIDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjgtNTcuMy0xMjgtMTI4LTEyOGMtMTAuNyAwLTIxIDEuMy0zMC45IDMuOEw0MzMuOCAxNjAgNDg4IDE2MGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC01My4zIDBjLTYuOSAwLTEzLjcgMi4yLTE5LjIgNi40bC0xNy4xIDEyLjgtMjQuNi01My4zQzM2OS45IDIxLjQgMzYxLjQgMTYgMzUyIDE2bC03MiAwek00NDUuOCAzMDAuNGwyOC40IDYxLjZjNS42IDEyIDE5LjggMTcuMyAzMS44IDExLjdzMTcuMy0xOS44IDExLjctMzEuOGwtMjguNS02MS42YzIuMi0uMiA0LjQtLjMgNi43LS4zIDM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzJjMC0yMC4yIDguMy0zOC41IDIxLjgtNTEuNnpNMTQ0IDQyNGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmMzMS4zIDAgNTggMjAgNjcuOSA0OEwxNDQgMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjkgMGMtOS45IDI4LTM2LjYgNDgtNjcuOSA0OHoiXX0saXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTgsImZhc3QtYmFja3dhcmQiXSwiZjA0OSIsIk00OTIuMiA0NzcuNmMtMTIgNS0yNS43IDIuMi0zNC45LTYuOUwyODggMzAxLjMgMjg4IDQ0OGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOUw2NCAzMDEuMyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyUzY0IDQ2LjMgNjQgNjRMNjQgMjEwLjcgMjMzLjQgNDEuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMyODggNTEuMSAyODggNjRsMCAxNDYuNyAxNjkuNC0xNjkuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM1MTIgNTEuMSA1MTIgNjRsMCAzODRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnoiXX0sVXRhPWl5ZSxyeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1ib29rIixpY29uOls1MTIsNTEyLFs2MjEzOCwiY29udGFjdC1ib29rIl0sImYyYjkiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yMDggMjg4bDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6bTAgMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek00OTYgMzIwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxXdGE9cnllLEd0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWlsYm9hdCIsaWNvbjpbNTEyLDUxMixbXSwiZTQ0NSIsIk0yNDAgMzUuOWwwIDM0OC4xLTIyNCAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjg4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC04LjgtNy4yLTE2LTE2LTE2bC0yMDggMCAwLTQ4IDE2MS43IDBjMTIuOSAwIDIwLjUtMTQuNCAxMy4yLTI1TDI2OS4yIDI2LjljLTguOS0xMy0yOS4yLTYuNy0yOS4yIDl6TTE5MiAzMjBsMC0xODQuMmMwLTE2LjEtMjEtMjIuMS0yOS42LTguNUw0Ny4zIDMxMS41Yy02LjcgMTAuNyAxIDI0LjUgMTMuNiAyNC41TDE3NiAzMzZjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxLdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1ib29rbWFyayIsaWNvbjpbNDQ4LDUxMixbXSwiZTBiYiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDE2OS40YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42LTYgMC0xMS44LTIuNC0xNi02LjZMMjcyIDE0NCAyMzAuNiAxODUuNGMtNC4yIDQuMi0xMCA2LjYtMTYgNi42LTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42TDE5MiAwIDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxZdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1hcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTMwNSAyMjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxveWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI3ODk3LCJtaWNyb3Bob25lLWFsdCJdLCJmM2M5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTYgNTAuMyAwIDkxLjYgMzguNyA5NS43IDg4TDIzMiA4OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwIDAgNDgtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NS43IDBjLTQuMSA0OS4zLTQ1LjMgODgtOTUuNyA4OC01MyAwLTk2LTQzLTk2LTk2TDk2IDk2ek0yNCAxNjBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOTcuOS03My4zIDE3OC43LTE2OCAxOTAuNWwwIDQ5LjUgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ5LjVDNzMuMyA0MDIuNyAwIDMyMS45IDAgMjI0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LFp0YT1veWUsbnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGx5LWFsbCIsaWNvbjpbNTc2LDUxMixbIm1haWwtcmVwbHktYWxsIl0sImYxMjIiLCJNMzMyLjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCA0OCAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6TTIwNS42IDIzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNTQuNiAyMDggMjA1LjYgMzU4LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxMCAyMzEuMmMtNi40LTYtMTAtMTQuNC0xMC0yMy4yczMuNi0xNy4yIDEwLTIzLjJMMTcxLjYgMjMuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sWHRhPW55ZSxRdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5pdmVyc2FsLWFjY2VzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjI5YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNjEuNS04Ni4xYy0xMi4yLTUuMi0yNi4zIC40LTMxLjUgMTIuNnMuNCAyNi4zIDEyLjYgMzEuNWwxMS45IDUuMWMxNy4zIDcuNCAzNS4yIDEyLjkgNTMuNiAxNi4zbDAgNTAuMWMwIDQuMy0uNyA4LjYtMi4xIDEyLjZsLTI4LjcgODYuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyNC40LTczLjJjMS4zLTMuOCA0LjgtNi40IDguOC02LjRzNy42IDIuNiA4LjggNi40bDI0LjQgNzMuMmM0LjIgMTIuNiAxNy44IDE5LjQgMzAuNCAxNS4yUzMzOSAzOTcgMzM0LjggMzg0LjRsLTI4LjctODYuMWMtMS40LTQuMS0yLjEtOC4zLTIuMS0xMi42bDAtNTAuMWMxOC40LTMuNSAzNi4zLTguOSA1My42LTE2LjNsMTEuOS01LjFjMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNkwzMzguNyAxNzVjLTI2LjEgMTEuMi01NC4yIDE3LTgyLjcgMTdzLTU2LjUtNS44LTgyLjctMTdsLTExLjktNS4xek0yNTYgMTYwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sRW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlciIsaWNvbjpbNTEyLDUxMixbMTI5NTMxLDYzMjYzLCJ0b2lsZXQtcGFwZXItYWx0IiwidG9pbGV0LXBhcGVyLWJsYW5rIl0sImY3MWUiLCJNMzI3LjEgMzJjLTguOCAxMS4xLTE2IDIzLjEtMjEuOSAzNC44LTIxLjQgNDIuNy0zMy4yIDk4LjQtMzMuMiAxNTcuMmwwIDI2NGMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA1NDRjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjI0QzAgMTE4IDQzIDMyIDk2IDMybDIzMS4xIDB6TTQxNiA0MTZjLTUzIDAtOTYtODYtOTYtMTkyczQzLTE5MiA5Ni0xOTIgOTYgODYgOTYgMTkyLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0LTMyIDI4LjctMzIgNjQgMTQuMyA2NCAzMiA2NHoiXX0sSnRhPUVvZSxlYWE9RW9lLHRhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ci1jYXJkYm9hcmQiLGljb246WzU3Niw1MTIsW10sImY3MjkiLCJNNTEyIDk2TDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDMzLjktMzMuOWM3LjItNy4yIDE3LjEtMTEuMyAyNy4zLTExLjNzMjAuMSA0LjEgMjcuMyAxMS4zbDMzLjkgMzMuOWMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTgwIDI0MGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTM1Mi02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sYWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpenphLXNsaWNlIixpY29uOls1MTIsNTEyLFtdLCJmODE4IiwiTTE2OS43IC45Yy0yMi44LTEuNi00MS45IDE0LTQ3LjUgMzQuN0wxMTIuNSA3MkMyOTMuMyA3Mi4zIDQzOS43IDIxOC43IDQ0MCAzOTkuNWwzNi40LTkuN2MyMC44LTUuNSAzNi4zLTI0LjcgMzQuNy00Ny41LTEyLjYtMTgyLjgtMTU4LjYtMzI4LjgtMzQxLjQtMzQxLjR6bTIyMiA0MTEuNWMuMi00LjEgLjMtOC4yIC4zLTEyLjQgMC0xNTQuNi0xMjUuNC0yODAtMjgwLTI4MC00LjEgMC04LjMgLjEtMTIuNCAuM0wuNSA0OTEuOWMtMS41IDUuNSAuMSAxMS40IDQuMSAxNS40czkuOSA1LjYgMTUuNCA0LjFsMzcxLjYtOTkuMXpNMTc2IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sc2FhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbiIsaWNvbjpbNTc2LDUxMixbXSwiZjViZCIsIk0xOTIgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtMTI4IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjU2YzAtNTMgNDMtOTYgOTYtOTZsMTI4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIwOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjI0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjA4em0yNDAgODBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0zMjAgNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek01MTIgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0OCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxseWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWxvdyIsaWNvbjpbNDQ4LDUxMixbMTI4MjY0LCJ2b2x1bWUtZG93biJdLCJmMDI3IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek0zODAuNiAxODEuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM2MS4xIDIyNy42IDM2OCAyNDEgMzY4IDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQwMi4xIDMxMi45IDQxNiAyODYuMSA0MTYgMjU2cy0xMy45LTU2LjktMzUuNS03NC41eiJdfSxpYWE9bHllLHJhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zcyIsaWNvbjpbMzg0LDUxMixbMTI4MzI3LDEwMDEzXSwiZjY1NCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MC04MCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDgwIDAgMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOCA4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgwIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHoiXX0sY3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbiIsaWNvbjpbMzg0LDUxMixbMTI5NDg1LCJtYWxlIl0sImYxODMiLCJNMjQ4IDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdsNDYuMyA2Mi40YzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzI3NCAxMzIgMjM0LjMgMTEyIDE5MiAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zeiJdfSxvYWE9Y3llLGR5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTFjMCA0Mi40LTE2LjkgODMuMS00Ni45IDExMy4xbC02Ny45IDY3LjkgNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDY3LjktNjcuOS02Ny45LTY3LjlDNDguOSAxNTguMSAzMiAxMTcuNCAzMiA3NWwwLTExQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTk2IDY0bDAgMTFjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlsNjcuOSA2Ny45IDY3LjktNjcuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45bDAtMTEtMTkyIDB6bTAgMzg0bDE5MiAwIDAtMTFjMC0yNS41LTEwLjEtNDkuOS0yOC4xLTY3LjlsLTY3LjktNjcuOS02Ny45IDY3LjljLTE4IDE4LTI4LjEgNDIuNC0yOC4xIDY3LjlsMCAxMXoiXX0sbmFhPWR5ZSxsYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaCIsaWNvbjpbNTc2LDUxMixbMTI4MDMxXSwiZjU3OCIsIk0xODAuNSAxNDEuNUMyMTkuNyAxMDguNSAyNzIuNiA4MCAzMzYgODBzMTE2LjMgMjguNSAxNTUuNSA2MS41YzM5LjEgMzMgNjYuOSA3Mi40IDgxIDk5LjggNC43IDkuMiA0LjcgMjAuMSAwIDI5LjMtMTQuMSAyNy40LTQxLjkgNjYuOC04MSA5OS44LTM5LjIgMzMuMS05MiA2MS41LTE1NS41IDYxLjVzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlzLTEyLjQtMjYtNS4zLTM4LjZMNTAgMjU2IDQuMiAxNzUuOWMtNy4yLTEyLjYtNS0yOC40IDUuMy0zOC42czI2LjEtMTIuMiAzOC43LTQuOWw4OS43IDUyLjNjMTIuMi0xNC42IDI2LjUtMjkuNCA0Mi43LTQzLjF6TTQ0OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sY2FhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW1zdGljay1iaXRlIixpY29uOls1MTIsNTEyLFtdLCJmNmQ3IiwiTTE2MCAyNjUuMmMwIDguNS0zLjQgMTYuNi05LjQgMjIuNmwtMjYuOCAyNi44Yy0xMi4zIDEyLjMtMzIuNSAxMS40LTQ5LjQgNy4yLTQuNi0xLjEtOS41LTEuOC0xNC41LTEuOC0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMiAwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjUtNC4yLTE2LjktNS4yLTM3LjEgNy4yLTQ5LjRsMjYuOC0yNi44YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw4OS4yIDBjNi4zIDAgMTIuNC0uMyAxOC41LTEgMTEuOS0xLjIgMTYuNC0xNS41IDEwLjgtMjYtOC41LTE1LjgtMTMuMy0zMy44LTEzLjMtNTMgMC02MS45IDUwLjEtMTEyIDExMi0xMTIgOCAwIDE1LjcgLjggMjMuMiAyLjQgMTEuNyAyLjUgMjQuMS01LjkgMjItMTcuNi0xNC43LTgyLjMtODYuNy0xNDQuOC0xNzMuMi0xNDQuOC05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NmwwIDg5LjJ6Il19LGRhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1zaW1wbGUiLGljb246WzUxMiw1MTIsW10sImU0NzMiLCJNMTkyIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyek0wIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MnpNNDMyIDk2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx1YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXRvbSIsaWNvbjpbNDQ4LDUxMixbOTg4M10sImY1ZDIiLCJNMjI0IDM5OC44Yy0xMS44IDUuMS0yMy40IDkuNy0zNC45IDEzLjUgMTYuNyAzMy44IDMxIDM1LjcgMzQuOSAzNS43czE4LjEtMS45IDM0LjktMzUuN2MtMTEuNC0zLjktMjMuMS04LjQtMzQuOS0xMy41ek00MTQgMjU2YzMzIDQ1LjIgNDQuMyA5MC45IDIzLjYgMTI4LTIwLjIgMzYuMy02Mi41IDQ5LjMtMTE1LjIgNDMuMi0yMiA1Mi4xLTU1LjcgODQuOC05OC40IDg0LjhzLTc2LjQtMzIuNy05OC40LTg0LjhDNzIuOSA0MzMuMyAzMC42IDQyMC4zIDEwLjQgMzg0LTEwLjMgMzQ2LjkgMSAzMDEuMiAzNCAyNTYgMSAyMTAuOC0xMC4zIDE2NS4xIDEwLjQgMTI4IDMwLjYgOTEuNyA3Mi45IDc4LjcgMTI1LjYgODQuOCAxNDcuNiAzMi43IDE4MS4yIDAgMjI0IDBzNzYuNCAzMi43IDk4LjQgODQuOGM1Mi43LTYuMSA5NSA2LjggMTE1LjIgNDMuMiAyMC43IDM3LjEgOS40IDgyLjgtMjMuNiAxMjh6bS02NS44IDY3LjRjLTEuNyAxNC4yLTMuOSAyOC02LjcgNDEuMiAzMS44IDEuNCAzOC42LTguNyA0MC4yLTExLjcgMi4zLTQuMiA3LTE3LjktMTEuOS00OC4xLTYuOCA2LjMtMTQgMTIuNS0yMS42IDE4LjZ6bS02LjctMTc1LjljMi44IDEzLjEgNSAyNi45IDYuNyA0MS4yIDcuNiA2LjEgMTQuOCAxMi4zIDIxLjYgMTguNiAxOC45LTMwLjIgMTQuMi00NCAxMS45LTQ4LjEtMS42LTIuOS04LjQtMTMtNDAuMi0xMS43ek0yNTguOSA5OS43QzI0Mi4xIDY1LjkgMjI3LjkgNjQgMjI0IDY0cy0xOC4xIDEuOS0zNC45IDM1LjdjMTEuNCAzLjkgMjMuMSA4LjQgMzQuOSAxMy41IDExLjgtNS4xIDIzLjQtOS43IDM0LjktMTMuNXptLTE1OSA4OC45YzEuNy0xNC4zIDMuOS0yOCA2LjctNDEuMi0zMS44LTEuNC0zOC42IDguNy00MC4yIDExLjctMi4zIDQuMi03IDE3LjkgMTEuOSA0OC4xIDYuOC02LjMgMTQtMTIuNSAyMS42LTE4LjZ6TTc4LjIgMzA0LjhjLTE4LjkgMzAuMi0xNC4yIDQ0LTExLjkgNDguMSAxLjYgMi45IDguNCAxMyA0MC4yIDExLjctMi44LTEzLjEtNS0yNi45LTYuNy00MS4yLTcuNi02LjEtMTQuOC0xMi4zLTIxLjYtMTguNnpNMzA0IDI1NmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6bS04MC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHBhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwIixpY29uOlszMjAsNTEyLFsxMTJdLCI1MCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzI0OC40IDM1MiAxNjAgMzUybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyODhsOTYgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmwtOTYgMCAwIDE5MnoiXX0saGFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpldC1maWdodGVyLXVwIixpY29uOls1MTIsNTEyLFtdLCJlNTE4IiwiTTIwNi44IDQ3LjhDMjAyLjMgNTguNSAyMDAgNzAgMjAwIDgxLjZsMCAxMDAuNC0xNTIgMTE0IDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAyMzQuNyAwIDI0OEwwIDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAxNTIgMCAwIDU0LjQtNjYgNTIuOGMtMy44IDMtNiA3LjYtNiAxMi41bDAgMjQuM2MwIDguOCA3LjIgMTYgMTYgMTZsODggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0LjNjMC00LjktMi4yLTkuNS02LTEyLjVsLTY2LTUyLjggMC01NC40IDE1MiAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDgtMTUyLTExNCAwLTEwMC40YzAtMTEuNi0yLjMtMjMuMS02LjgtMzMuOGwtMjcuMS02NUMyNzQuNC0yNi4yIDI2NS43LTMyIDI1Ni0zMnMtMTguNCA1LjgtMjIuMiAxNC44bC0yNy4xIDY1eiJdfSxmYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NjAiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sbWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWV0LXBsYXN0aWMiLGljb246WzM4NCw1MTIsW10sImU1NzEiLCJNMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ5LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0wzNjUuMyAzODYuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OHptMjA4IDUuNWwwLTkzLjVjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTMuNSAwLTExNy41IDExNy41ek0xNTMgMTA1bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6bTk2IDMyTDEzNyAyNDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjE1IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6Il19LGdhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2IixpY29uOlszODQsNTEyLFsxMThdLCI1NiIsIk0xOS43IDM0LjVjMTYuMy02LjggMzUgLjkgNDEuOCAxNy4yTDE5MiAzNjQuOCAzMjIuNSA1MS43YzYuOC0xNi4zIDI1LjUtMjQgNDEuOC0xNy4yczI0IDI1LjUgMTcuMiA0MS44bC0xNjAgMzg0Yy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN3MtMjQuNi03LjgtMjkuNS0xOS43TDIuNSA3Ni4zYy02LjgtMTYuMyAuOS0zNSAxNy4yLTQxLjh6Il19LHV5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1zcXVhcmVzIl0sImYwM2EiLCJNNDAgNDhDMjYuNyA0OCAxNiA1OC43IDE2IDcybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDQwIDQ4ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNMTYgMjMybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sYmFhPXV5ZSx2YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlzY2VzIixpY29uOls0NDgsNTEyLFtdLCJlODRjIiwiTTQwLjQgMTAuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTIgMi45IDIuNyAyOC4zIDI2LjcgNTMuNiA2Ny44IDIyLjMgMzYuMiA0NSA4Ni42IDUxLjEgMTQ3LjhsNjcuMyAwYzYuMS02MS4xIDI4LjgtMTExLjYgNTEuMS0xNDcuOCAyNS4zLTQxLjEgNTAuNy02NS4xIDUzLjYtNjcuOCAxMy0xMS45IDMzLjMtMTEuMSA0NS4yIDIgMTEuOSAxMyAxMSAzMy4zLTIgNDUuMi0xLjQgMS4zLTIyIDIxLjEtNDIuNCA1NC4yLTE3LjkgMjkuMS0zNS40IDY4LTQxLjIgMTE0LjJsOTQgMCAzLjMgLjJjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOHMtMTIuNiAzMC4yLTI4LjcgMzEuOGwtMy4zIC4yLTk0IDBjNS44IDQ2LjIgMjMuMyA4NS4xIDQxLjIgMTE0LjIgMjAuNCAzMy4xIDQxIDUyLjkgNDIuNCA1NC4yIDEzIDExLjkgMTMuOSAzMi4yIDIgNDUuMi0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDItMi45LTIuNy0yOC4zLTI2LjctNTMuNi02Ny44LTIyLjMtMzYuMi00NS04Ni42LTUxLjEtMTQ3LjhsLTY3LjMgMGMtNi4xIDYxLjEtMjguOCAxMTEuNi01MS4xIDE0Ny44LTI1LjMgNDEuMS01MC43IDY1LjEtNTMuNiA2Ny44LTEzIDExLjktMzMuMyAxMS4xLTQ1LjItMi0xMS45LTEzLTExLTMzLjMgMi00NS4yIDEuNC0xLjMgMjItMjEuMSA0Mi40LTU0LjIgMTcuOS0yOS4xIDM1LjQtNjggNDEuMi0xMTQuMmwtOTQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NCAwYy01LjgtNDYuMi0yMy4zLTg1LjEtNDEuMi0xMTQuMi0yMC40LTMzLjEtNDEtNTIuOS00Mi40LTU0LjItMTMtMTEuOS0xMy45LTMyLjItMi00NS4yeiJdfSx4YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29sYXItcGFuZWwiLGljb246WzU3Niw1MTIsW10sImY1YmEiLCJNMTIxLjggMzJjLTMwIDAtNTYgMjAuOC02Mi41IDUwLjFMOS42IDMwNi4xQy43IDM0Ni4xIDMxLjEgMzg0IDcyIDM4NGwxODQuMSAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDE4NC4xIDBjNDAuOSAwIDcxLjQtMzcuOSA2Mi41LTc3LjlsLTQ5LjgtMjI0QzUxMC40IDUyLjggNDg0LjUgMzIgNDU0LjUgMzJMMTIxLjggMzJ6TTI0NS42IDk2bDg1LjIgMCA3LjMgODgtOTkuOCAwIDcuMy04OHptLTU1LjUgODhsLTg3LjggMCAxOS42LTg4IDc1LjYgMC03LjMgODh6TTkxLjYgMjMybDk0LjUgMC03LjMgODgtMTA2LjcgMCAxOS42LTg4em0xNDIuNiAwbDEwNy44IDAgNy4zIDg4LTEyMi41IDAgNy4zLTg4em0xNTYgMGw5NC41IDAgMTkuNiA4OC0xMDYuNyAwLTcuMy04OHpNNDc0IDE4NGwtODcuOCAwLTcuMy04OCA3NS42IDAgMTkuNiA4OHoiXX0seWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmQtbWluZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYiIsIk0zMTIgMGwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwyNjQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xNjAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw4MCAwIDAtMzJ6TTEyIDExNC43YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43bDk2IDY0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zcy0yMi4zIDE0LTMzLjMgNi43bC05Ni02NGMtMTEtNy40LTE0LTIyLjMtNi43LTMzLjN6TTUzMC43IDEwOGMxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTk2IDY0Yy0xMSA3LjQtMjUuOSA0LjQtMzMuMy02LjdzLTQuNC0yNS45IDYuNy0zMy4zbDk2LTY0eiJdfSxQb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHBob25lcyIsaWNvbjpbNDQ4LDUxMixbMTI3OTExLDYyODYzLCJoZWFkcGhvbmVzLWFsdCIsImhlYWRwaG9uZXMtc2ltcGxlIl0sImYwMjUiLCJNNjQgMjI0YzAtODguNCA3MS42LTE2MCAxNjAtMTYwczE2MCA3MS42IDE2MCAxNjBsMCAzNy41Yy0xMC0zLjUtMjAuOC01LjUtMzItNS41bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTExLjIgMC0yMiAxLjktMzIgNS41TDY0IDIyNHoiXX0sd2FhPVBvZSxrYWE9UG9lLFNhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMiLGljb246WzQ0OCw1MTIsWzEyODY1M10sImYyMDciLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA0IDAgMCAxMTItMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDh6bTE4NCA4MGwwLTExMiAxMDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMDQgMHpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNTIgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LF9hYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1MiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCAyNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcybC00OCAwem00OCA5NmwtMjQgMCAwLTQ4IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LHB5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1sZWZ0IixpY29uOls0NDgsNTEyLFs4MjIwLCJxdW90ZS1sZWZ0LWFsdCJdLCJmMTBkIiwiTTAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2em0yNTYgMGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xMzZ6Il19LE1hYT1weWUsemFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tZG93biIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3OCIsIk0yMDEuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxOTItMTkyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMzguNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyeiJdfSxoeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYXNpYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU5LCJnbG9iZS1hc2lhIl0sImY1N2UiLCJNNTAgMjg0LjhjNC4yIDIuMSA5IDMuMiAxNCAzLjJsNTAuNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDEzLjMgMTMuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQtMTAuNyAyNC0yNGwwLTQyLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsMTMuMy0xMy4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNkwzMDQgNTdjMC0xLjItLjEtMi4zLS4yLTMuNS0xNS40LTMuNi0zMS40LTUuNS00Ny44LTUuNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDggMCA5LjggLjcgMTkuNCAyIDI4Ljh6bTQwMy4zIDM3LjNjLTMuMi0xLjQtNi43LTIuMS0xMC41LTIuMUw0MzIgMzIwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzQuNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtNDUuMyA0NS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNCAyLjIgMi4yIDQuNyA0LjEgNy4zIDUuNSAzOS4zLTI1LjQgNjkuNS02My42IDg0LjYtMTA4Ljh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEyOCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjcyIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnptNDgtMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2eiJdfSxDYWE9aHllLFRhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZW50LXNpZ24iLGljb246WzM4NCw1MTIsW10sImUzZjUiLCJNMjA4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNS40YzQzLjYgNS4yIDgzIDI0LjUgMTEzLjMgNTMuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNjLTI0LjQtMjMtNTcuMi0zNy4xLTkzLjMtMzcuMS03NS4xIDAtMTM2IDYwLjktMTM2IDEzNnM2MC45IDEzNiAxMzYgMTM2YzM2LjIgMCA2OS0xNC4xIDkzLjMtMzcuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMkMzMjMgNDMwLjEgMjgzLjYgNDQ5LjQgMjQwIDQ1NC42bDAgMjUuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI4Qzg0LjcgNDMzLjUgMTYgMzUyLjggMTYgMjU2Uzg0LjcgNzguNSAxNzYgNjBsMC0yOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sJGFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1jYXQiLGljb246WzUxMiw1MTIsW10sImU1NzIiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MCAxNTQuNGMwLTUuOCA0LjctMTAuNCAxMC40LTEwLjRsLjIgMGMzLjQgMCA2LjUgMS42IDguNSA0LjNsNDAgNTMuM2MzIDQgNy44IDYuNCAxMi44IDYuNGw0OCAwYzUgMCA5LjgtMi40IDEyLjgtNi40bDQwLTUzLjNjMi0yLjcgNS4yLTQuMyA4LjUtNC4zbC4yIDBjNS44IDAgMTAuNCA0LjcgMTAuNCAxMC40TDM1MiAyNzJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xMTcuNnpNMjE2IDI4OGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTk2LTE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LERhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTZiIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LGZ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjc4NjQsImdsYXNzLW1hcnRpbmktYWx0Il0sImY1N2IiLCJNMi40IDUxLjhDNy40IDM5LjggMTkuMSAzMiAzMiAzMmw0NDggMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45TDI4OCAzMDEuMyAyODggNDQ4IDM1MiA0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xNDYuNy0yMTQuNi0yMTQuNkMuMiA3Ny41LTIuNSA2My43IDIuNCA1MS44ek0zNTQuNyAxNDRsNDgtNDgtMjkzLjUgMCA0OCA0OCAxOTcuNSAweiJdfSxMYWE9ZnllLEVhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnIixpY29uOls0NDgsNTEyLFsxMjgyNjhdLCJmMWU2IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NGMwIDk1LjEtNjkuMiAxNzQuMS0xNjAgMTg5LjNsMCA2Ni43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxMDEuMiAzOTguMSAzMiAzMTkuMSAzMiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFBhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYW5vcmFtYSIsaWNvbjpbNTc2LDUxMixbXSwiZTIwOSIsIk00My45IDQ4QzE5LjcgNDggMCA2Ny43IDAgOTEuOUwwIDQyMC4xYzAgMjQuMyAxOS43IDQzLjkgNDMuOSA0My45IDUuNSAwIDEwLjctMSAxNS43LTIuOSAxMi45LTQuOSAxMDMuNC0zNy4xIDIyOC40LTM3LjFzMjE1LjUgMzIuMyAyMjguNCAzNy4xYzUgMS45IDEwLjIgMi45IDE1LjcgMi45IDI0LjMgMCA0My45LTE5LjcgNDMuOS00My45bDAtMzI4LjJjMC0yNC4zLTE5LjctNDMuOS00My45LTQzLjktNS41IDAtMTAuNyAxLTE1LjcgMi45LTEyLjkgNC45LTEwMy40IDM3LjEtMjI4LjQgMzcuMVM3Mi41IDU1LjcgNTkuNiA1MC45QzU0LjYgNDkgNDkuNCA0OCA0My45IDQ4ek03MiAxNzZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMjY0LjEtMTZjNy41IDAgMTQuNiAzLjYgMTkuMSA5LjZMNDc5LjcgMzM2LjJjNS45IDcuOSA2LjQgMTguNSAxLjMgMjYuOXMtMTQuOCAxMi44LTI0LjUgMTEuMWMtNDUuOC03LjgtMTAzLjMtMTQuMi0xNjguNC0xNC4yLTY1LjYgMC0xMjMuNCA2LjUtMTY5LjMgMTQuNC05LjggMS43LTE5LjctMi45LTI0LjctMTEuNXMtNC4zLTE5LjQgMS45LTI3LjJMMTY1LjMgMjQ5YzQuNi01LjcgMTEuNS05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMjcuNSAzNC40IDg2LjctMTEzLjljNC42LTYgMTEuNy05LjUgMTkuMi05LjV6Il19LGhmPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrLXJvdGF0ZS1sZWZ0IixpY29uOls1NzYsNTEyLFsiaGlzdG9yeSJdLCJmMWRhIiwiTTI4OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlMzOTQgNDQ4IDI4OCA0NDhjLTY1LjIgMC0xMjIuOS0zMi41LTE1Ny42LTgyLjMtMTAuMS0xNC41LTMwLjEtMTgtNDQuNi03LjlzLTE4IDMwLjEtNy45IDQ0LjZDMTI0LjEgNDY4LjYgMjAxIDUxMiAyODggNTEyIDQyOS40IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NlM0MjkuNCAwIDI4OCAwQzIwMi4zIDAgMTI2LjUgNDIuMSA4MCAxMDYuN0w4MCA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxNiA2Mi4zIDE2IDgwbDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDI0LjYgMGMuNSAwIDEgMCAxLjUgMGw4NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zOC4zIDBDMTU0LjkgMTAyLjYgMjE3IDY0IDI4OCA2NHptMjQgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY1LTY1IDAtOTQuMXoiXX0sSWFhPWhmLEFhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXItd2hlYXQiLGljb246WzMyMCw1MTIsW10sImU1MTciLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xMTIgMzJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMTYwYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMjU2Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN3pNMTEyIDM1MmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDIxLjggMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMiAyMS44IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMzUyYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6Il19LElvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy1kb3duIixpY29uOls1NzYsNTEyLFs2MjMzNywiY2xvdWQtZG93bmxvYWQiLCJjbG91ZC1kb3dubG9hZC1hbHQiXSwiZjBlZCIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTM3NyAzMTNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxOYWE9SW9lLFJhYT1Jb2UsbXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXJhbXAtYm94IixpY29uOls1NzYsNTEyLFsidHJ1Y2stbG9hZGluZyJdLCJmNGRlIiwiTTQwMCAzMmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNDguMi0yOTcuMiA4OS4yQzUuOSA0NTQuNC0zLjcgNDcyLjMgMS40IDQ4OS4yczIyLjkgMjYuNSAzOS44IDIxLjVsMzE1LjUtOTQuNiA0My43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4bDAtMzkyLTE3NiAwek01MjggNDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDBjMjIuMSAwIDM5LjkgMTcuOSA0MCAzOS45bDAgLjF6TTUxLjkgMTQ5LjVDMTguMSAxNTkuOC0uOSAxOTUuNiA5LjQgMjI5LjRsMjguMSA5MS44QzQ3LjggMzU1IDgzLjYgMzc0IDExNy40IDM2My43bDkxLjgtMjguMWMzMy44LTEwLjMgNTIuOC00Ni4xIDQyLjUtNzkuOWwtMjguMS05MS44Yy0xMC4zLTMzLjgtNDYuMS01Mi44LTc5LjktNDIuNUw1MS45IDE0OS41eiJdfSxPYWE9bXllLEZhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1kb3duIixpY29uOlszODQsNTEyLFs4OTY0XSwiZjEwNyIsIk0xNjkuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiAzMDYuNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiJdfSxCYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NWMiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxIYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LW1heGltaXplIixpY29uOls1MTIsNTEyLFsxMjg0NzBdLCJmMmQwIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0yNCA2NGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHFhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nLWNpcmNsZSIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYiIsIk0zMjAgMGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTYwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xIDEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOC03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGMyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMmwwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCA3OC45YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02Ni43IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41TDAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDIyMS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w0MDAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTc4LjljMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMGM3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjItMTEgMTEtOS4yIDI5LjIgMy43IDM3LjggOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTYwIDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sZ3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbiIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXIiXSwiZjA0MSIsIk0xOTIgMEM4NiAwIDAgODQuNCAwIDE4OC42IDAgMzA3LjkgMTIwLjIgNDUwLjkgMTcwLjQgNTA1LjQgMTgyLjIgNTE4LjIgMjAxLjggNTE4LjIgMjEzLjYgNTA1LjQgMjYzLjggNDUwLjkgMzg0IDMwNy45IDM4NCAxODguNiAzODQgODQuNCAyOTggMCAxOTIgMHoiXX0samFhPWd5ZSxWYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bGluZy1iYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNDM2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMDggMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS02NC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGJ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWZsYXRiZWQiLGljb246WzU3Niw1MTIsWyJkb2xseS1mbGF0YmVkIl0sImY0NzQiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI4OGMwIDM5LjggMjkuMSA3Mi44IDY3LjEgNzktMiA1LjMtMy4xIDExLTMuMSAxNyAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDE5Ny41IDBjLTEuOCA1LTIuNyAxMC40LTIuNyAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDM0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDAwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI4OEMxMjggMzUuOCA5Mi4yIDAgNDggMEwzMiAwek0yMjQgNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTc2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI0MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIyNCA2NHoiXX0sVWFhPWJ5ZSx2eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdXNlciIsaWNvbjpbNTEyLDUxMixbImhvbWUtdXNlciJdLCJlMWIwIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNDQgNDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2eiJdfSxXYWE9dnllLEdhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnaG9zdCIsaWNvbjpbMzg0LDUxMixbMTI4MTIzXSwiZjZlMiIsIk00MC4xIDQ2Ny4xbC0xMS4yIDlDMjUuNyA0NzguNiAyMS44IDQ4MCAxNy44IDQ4MCA4IDQ4MCAwIDQ3MiAwIDQ2Mi4yTDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmwwIDI3MC4yYzAgOS44LTggMTcuOC0xNy44IDE3LjgtNCAwLTcuOS0xLjQtMTEuMS0zLjlsLTExLjItOWMtMTMuNC0xMC43LTMyLjgtOS00NC4xIDMuOUwyNjkuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNmwtMjYuNi0zMC41Yy0xMi43LTE0LjYtMzUuNC0xNC42LTQ4LjIgMEwxNDEuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNkw4NC4yIDQ3MWMtMTEuMy0xMi45LTMwLjctMTQuNi00NC4xLTMuOXpNMTYwIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEthYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LW5vZGVzIixpY29uOls2NDAsNTEyLFtdLCJlNjk2IiwiTTQ4MCAyMDhDNTAzLjcgMjA4IDUyNS42IDIxNS4zIDU0My43IDIyNy45IDUzNi45IDEwMC45IDQyNSAwIDI4OCAwIDE0Ni42IDAgMzIgMTA3LjUgMzIgMjQwIDMyIDI5NC4zIDUxLjIgMzQ0LjMgODMuNiAzODQuNUwzNC44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN2MyNy4yIDExLjQgNTYuOSAxOC40IDg4LjEgMjAuMiAuMS0xOC45IDQuOS0zOCAxNS01NS41IDE3LjEtMjkuNyA0NS44LTQ4LjUgNzctNTQuMmw5LjItMTZjLTMuNC0xMC43LTUuMi0yMi01LjItMzMuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnpNMzI4LjYgNDQ4Yy0xNy43IDMwLjYtNy4yIDY5LjcgMjMuNCA4Ny40czY5LjcgNy4yIDg3LjQtMjMuNGMxLjUtMi42IDIuOC01LjMgMy45LThsNzMuMyAwYzEuMSAyLjcgMi40IDUuNCAzLjkgOCAxNy43IDMwLjYgNTYuOCA0MS4xIDg3LjQgMjMuNHM0MS4xLTU2LjggMjMuNC04Ny40Yy0xMy40LTIzLjItMzkuMS0zNC44LTY0LTMxLjRsLTE3LjYtMzAuN2MtMTEgMTEuNy0yNSAyMC42LTQwLjYgMjUuNmwxNi41IDI4LjljLTMuOCA0LjgtNi44IDEwLTkgMTUuNmwtNzMuNCAwYy0yLjItNS42LTUuMy0xMC44LTktMTUuNmwzMy01Ny43YzQuMSAuOCA4LjQgMS4zIDEyLjggMS4zIDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjRjMCAxMy40IDQuMSAyNS44IDExLjIgMzYuMWwtMzQuNiA2MC41Yy0yNS0zLjQtNTAuNiA4LjMtNjQgMzEuNHoiXX0sWWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzgiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0zMTguMyAyOTkuMWwtNDYuMy02Mi40IDAgMjQzLjMgMjcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgwIDAgMC0yNDMuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiA0ODBsMzIgMCAwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOHpNNTY2LjYgMTY2LjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMNDMyIDE0Ni43IDQzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3oiXX0sWmFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NWYiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4eiJdfSx4eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXN3aW1taW5nIixpY29uOls2NDAsNTEyLFsxMjc5NDYsInN3aW1tZXIiXSwiZjVjNCIsIk01NTIgMTUyYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMjkzLjQgMTk4LjJsLTg4LjYgNzMuOWMxLjEgMCAyLjItLjEgMy4zLS4xIDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCA0LjggMCA5LjcgLjIgMTQuNSAuNi04LjMtMzAtMjQuMy01Ny43LTQ2LjgtODAuMi0xOC40LTE4LjQtNDAuNi0zMi43LTY1LTQxLjhsLTY4LjYtMjUuN2MtMjcuNC0xMC4zLTU4LTcuNS04My4xIDcuNmwtNTMuNSAzMi4xYy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOXMyOC43IDIwLjEgNDMuOSAxMUwyMzAgMTg3LjNjOC40LTUgMTguNi01LjkgMjcuNy0yLjVsMzUuNyAxMy40em0xMTAgMTgxLjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyAzODYuMyAxNy42IDM5NC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sWGFhPXh5ZSx5eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1kb3RzIixpY29uOls1MTIsNTEyLFsxMjgxNzIsNjIwNzUsImNvbW1lbnRpbmciXSwiZjRhZCIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTI4IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sUWFhPXl5ZSx3eWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtcGllIixpY29uOls1NzYsNTEyLFsicGllLWNoYXJ0Il0sImYyMDAiLCJNNTEyLjQgMjQwbC0xNzYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzZjMC0xNy43IDE0LjQtMzIuMiAzMS45LTI5LjkgMTA3IDE0LjIgMTkxLjggOTkgMjA2IDIwNiAyLjMgMTcuNS0xMi4yIDMxLjktMjkuOSAzMS45ek0yMjIuNiAzNy4yYzE4LjEtMy44IDMzLjggMTEgMzMuOCAyOS41bDAgMTk3LjNjMCA1LjYgMiAxMSA1LjUgMTUuM0wzOTQgNDM4LjdjMTEuNyAxNC4xIDkuMiAzNS40LTYuOSA0NC4xLTM0LjEgMTguNi03My4yIDI5LjItMTE0LjcgMjkuMi0xMzIuNSAwLTI0MC0xMDcuNS0yNDAtMjQwIDAtMTE1LjUgODEuNS0yMTEuOSAxOTAuMi0yMzQuOHpNNDc3LjggMjg4bDY0IDBjMTguNSAwIDMzLjMgMTUuNyAyOS41IDMzLjgtMTAuMiA0OC40LTM1IDkxLjQtNjkuNiAxMjQuMi0xMi4zIDExLjctMzEuNiA5LjItNDIuNC0zLjlMMzc0LjkgMzQwLjRjLTE3LjMtMjAuOS0yLjQtNTIuNCAyNC42LTUyLjRsNzguMiAweiJdfSxKYWE9d3llLGVzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcm9nIixpY29uOls1NzYsNTEyLFtdLCJmNTJlIiwiTTM2OCAzMmM0MS43IDAgNzUuOSAzMS44IDc5LjcgNzIuNWw4NS42IDI2LjNjMjUuNCA3LjggNDIuOCAzMS4zIDQyLjggNTcuOSAwIDIxLjgtMTEuNyA0MS45LTMwLjcgNTIuN2wtMTQ0LjUgODIuMSA5Mi41IDkyLjUgNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNEwzNDYuOSAzNjAuMmMxMS43LTM2IDMuMi03Ny4xLTI1LjQtMTA1LjctNDAuNi00MC42LTEwNi4zLTQwLjYtMTQ2LjktLjFMMTAxIDMyNC40Yy02LjQgNi4xLTYuNyAxNi4yLS42IDIyLjZzMTYuMiA2LjYgMjIuNiAuNmw3My44LTcwLjIgLjEtLjEgLjEtLjFjMy41LTMuNSA3LjMtNi42IDExLjMtOS4yIDI3LjktMTguNSA2NS45LTE1LjQgOTAuNSA5LjIgMjQuNyAyNC43IDI3LjcgNjIuOSA5IDkwLjktMi42IDMuOC01LjYgNy41LTkgMTAuOUwyNjEuOCA0MTYgMzUyIDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBDMjguNyA0ODAgMCA0NTEuMyAwIDQxNiAwIDI0OS42IDEyNyAxMTIuOSAyODkuMyA5Ny41IDI5Ni4yIDYwLjIgMzI4LjggMzIgMzY4IDMyem0wIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHRzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWJvdHRsZSIsaWNvbjpbMzIwLDUxMixbXSwiZjcyZiIsIk04MC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTEuOC02LjQgMjIuMi0xNiAyNy43bDAgMTQ1LjZjNTYuNSAyNC43IDk2IDgxLjEgOTYgMTQ2LjdsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTY1LjYgMzkuNS0xMjIgOTYtMTQ2LjdMOTYtNC4zQzg2LjQtOS44IDgwLTIwLjIgODAtMzJ6TTk2IDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMjg4eiJdfSxhc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5ib3giLGljb246WzUxMiw1MTIsW10sImYwMWMiLCJNOTEuOCAzMkM1OS45IDMyIDMyLjkgNTUuNCAyOC40IDg2LjlMLjYgMjgxLjJjLS40IDMtLjYgNi0uNiA5LjFMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMjUuN2MwLTMtLjItNi4xLS42LTkuMUw0ODMuNiA4Ni45QzQ3OS4xIDU1LjQgNDUyLjEgMzIgNDIwLjIgMzJMOTEuOCAzMnptMCA2NGwzMjguNSAwIDI3LjQgMTkyLTU5LjkgMGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTQuMyAyOC42Yy01LjQgMTAuOC0xNi41IDE3LjctMjguNiAxNy43bC0xMjAuNCAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43bC0xNC4zLTI4LjZjLTUuNC0xMC44LTE2LjUtMTcuNy0yOC42LTE3LjdMNjQuMyAyODggOTEuOCA5NnoiXX0sa3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1oIixpY29uOls0NDgsNTEyLFsiaC1zcXVhcmUiXSwiZjBmZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAgMTY4bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sc3NhPWt5ZSxpc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTNiMiIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yMjQgMjQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxTeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tcmlnaHQiLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1yaWdodCJdLCJmMTM4IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTI0MSAzNzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODctODctODctODdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEwzNDUgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0MSAzNzd6Il19LHJzYT1TeWUsb3NhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY3N2IixpY29uOls1NzYsNTEyLFtdLCJmNmRkIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNjQgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptMTM2IDBjLTI4LjcgMC01MiAyMy4zLTUyIDUyczIzLjMgNTIgNTIgNTJjNi42IDAgMTIgNS40IDEyIDEycy01LjQgMTItMTIgMTJsLTMyIDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJzLTIzLjMtNTItNTItNTJjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMjQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI0IDB6bTk2IDBjLTExIDAtMjAgOS0yMCAyMGwwIDMxLjZjMCAzNS41IDEwLjUgNzAuMyAzMC4yIDk5LjhsNS4xIDcuN2MzLjcgNS42IDEwIDguOSAxNi42IDguOXMxMi45LTMuMyAxNi42LTguOWw1LjEtNy43YzE5LjctMjkuNiAzMC4yLTY0LjMgMzAuMi05OS44bDAtMzEuNmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMS42YzAgMTkuNi00LjEgMzguOS0xMiA1Ni43LTcuOS0xNy44LTEyLTM3LjEtMTItNTYuN2wwLTMxLjZjMC0xMS05LTIwLTIwLTIweiJdfSxuc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LWNvd2JveSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMCIsIk0xODIuMiA3Ni4xTDEzMC44IDMwNy41QzE0NS41IDMyNC45IDE2Ny40IDMzNiAxOTIgMzM2bDI1NiAwYzI0LjYgMCA0Ni41LTExLjEgNjEuMi0yOC41TDQ1Ny44IDc2LjFjLTUuNy0yNS44LTI4LjYtNDQuMS01NS00NC4xLTEyLjIgMC0yNC4xIDQtMzMuOCAxMS4zbC00LjcgMy41Yy0yNi4zIDE5LjctNjIuNCAxOS43LTg4LjYgMEwyNzEgNDMuM2MtOS44LTcuMy0yMS42LTExLjMtMzMuOC0xMS4zLTI2LjQgMC00OS4zIDE4LjMtNTUgNDQuMXpNNjQgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjM4LjMgMCAyNTZDMCAzNjIgODYgNDQ4IDE5MiA0NDhsMjU2IDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTI1NiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHoiXX0sX3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTQwLCJncmluLXRvbmd1ZS13aW5rIl0sImY1OGIiLCJNMTUyLjIgNDkwLjFDNjIuNSA0NTAuMiAwIDM2MC40IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDEwNC40LTYyLjUgMTk0LjItMTUyLjIgMjM0LjEgNS4zLTEzIDguMi0yNy4yIDguMi00Mi4xbDAtNjEuN2MxNi45LTE2LjUgMzAuMS0zNi43IDM4LjMtNTkuMyA0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjEtMzkuMiAxMi4yLTgzLjcgMTkuMS0xMzAuNyAxOS4xcy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgOC4zIDIyLjYgMjEuNSA0Mi44IDM4LjMgNTkuM2wwIDYxLjdjMCAxNC45IDIuOSAyOS4xIDguMiA0Mi4xek0xNTIgMjEybDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTg0IDYwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0zMjAgNDAyLjZsMCA0NS40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtNDUuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0zMzYgMTg0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sbHNhPV95ZSxjc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibCIsaWNvbjpbMzIwLDUxMixbMTA4XSwiNGMiLCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sQW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWRlc2MiLCJzb3J0LWFtb3VudC1kb3duLWFsdCJdLCJmODg0IiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxkc2E9QW9lLHVzYT1Bb2UsTXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlsNjcuOS02Ny45IDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMiAxNC45TDExMiAzODR6Il19LHBzYT1NeWUsenllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwb29uIixpY29uOls1MTIsNTEyLFsxMjkzNDgsNjE4NzMsInV0ZW5zaWwtc3Bvb24iXSwiZjJlNSIsIk0yNDUuOCAyMjAuOWMtMTQuNS0xNy42LTIxLjgtMzkuMi0yMS44LTYwLjggMC04MC4yIDk2LTE2MC4yIDE5Mi0xNjAuMiA1MyAwIDk2IDQzIDk2IDk2IDAgOTYtODAgMTkyLTE2MC4yIDE5Mi0yMS42IDAtNDMuMi03LjMtNjAuOC0yMS44TDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0NS44IDIyMC45eiJdfSxoc2E9enllLEN5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcmVkaXQtY2FyZCIsaWNvbjpbNTEyLDUxMixbMTI4MTc5LDYyMDgzLCJjcmVkaXQtY2FyZC1hbHQiXSwiZjA5ZCIsIk0wIDEyOGwwIDMyIDUxMiAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjh6bTAgODBMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYtNTEyIDB6TTY0IDM2MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTQ0IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LGZzYT1DeWUsSmI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbnZvaWNlLWRvbGxhciIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NEM3NC43IDY0IDY0IDc0LjcgNjQgODh6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTExMiA3NmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwxNTIgNDAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIweiJdfSxUeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nIixpY29uOls2NDAsNTEyLFsicGFzdGFmYXJpYW5pc20iXSwiZjY3YiIsIk0yMDggNjRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMGMwIDE2LjItNiAzMS4xLTE2IDQyLjNsMTUuNiAzMS4yYzE4LjctNiAzOS45LTkuNSA2NC40LTkuNXM0NS44IDMuNSA2NC40IDkuNUw0MDAgMTA2LjNjLTEwLTExLjMtMTYtMjYuMS0xNi00Mi4zIDAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjQgNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNCAxMC43IDExLjcgMTYuMSAxMy40IDE5LjQgMTMuNCAyLjUgMCA0LjMtLjYgNy4xLTMuMyAzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjcgOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuMy0zLjcgMy41LTcuMSA4LjgtMTIuNSAxNy40bC0uNiAuOWMtNC42IDcuNC0xMSAxNy42LTE5LjQgMjUuNy05LjcgOS4zLTIyLjkgMTYuNy00MC40IDE2LjctMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNi0zLjEgNC02LjYgOC4zLTEwLjUgMTIuNyAxLjQgNC4zIDIuOCA4LjUgNCAxMi41IC45IDMgMS44IDUuOCAyLjYgOC42IDMgOS44IDUuNSAxOC4yIDguNiAyNS45IDMuOSA5LjggNy40IDE1LjQgMTAuOCAxOC41IDIuNiAyLjQgNS45IDQuMyAxMi44IDQuMyA4LjcgMCAxNi45LTQuMiAzMy43LTEzLjIgMTUtOCAzNS43LTE4LjggNjIuMy0xOC44IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMy40IDAtMjQuNyA1LjItMzkuNyAxMy4yLTEgLjYtMi4xIDEuMS0zLjIgMS43LTEzLjEgNy4xLTMxLjYgMTcuMS01My4xIDE3LjEtMTguNCAwLTMzLjYtNi4xLTQ1LjUtMTcuMi0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzYtMy42LTktNi43LTE5LjEtOS41LTI4LjUtMTYuNCAxMi4zLTM2LjEgMjMuNi01OC45IDMxLjMgMy42IDEwLjggOC40IDIzLjUgMTQuNCAzNi4yIDcuNSAxNS45IDE2LjIgMzAuNCAyNS44IDQwLjUgOS42IDEwLjIgMTcuNyAxMy43IDI0LjUgMTMuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjUuMiAwLTQ1LTEzLjUtNTkuNS0yOC44LTE0LjUtMTUuNC0yNS43LTM0LjktMzQuMi01My04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjktNS4yIC40LTEwLjYgLjYtMTYgLjZzLTEwLjgtLjItMTYtLjZjLTQuMiAxMy0xMC4zIDI5LjktMTguMyA0Ni45LTguNSAxOC4xLTE5LjggMzcuNi0zNC4yIDUzLTE0LjQgMTUuMy0zNC4zIDI4LjgtNTkuNSAyOC44LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjNi44IDAgMTUtMy41IDI0LjUtMTMuNyA5LjUtMTAuMSAxOC4zLTI0LjYgMjUuOC00MC41IDUuOS0xMi42IDEwLjctMjUuNCAxNC40LTM2LjItMjIuOC03LjctNDIuNS0xOS01OC45LTMxLjMtMi45IDkuNC02IDE5LjUtOS41IDI4LjUtNC44IDEyLjItMTEuNiAyNS42LTIyLjcgMzYtMTEuOSAxMS4xLTI3LjEgMTcuMi00NS41IDE3LjItMTMuMSAwLTI0LjUtNC4xLTMzLjgtOC45LTcuOS00LTE1LjctOS4yLTIyLjEtMTMuNWwwIDAtMi40LTEuNmMtMTUuMy0xMC4yLTI1LjgtMTYtMzcuNy0xNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI4LjEgMCA0OS42IDE0LjIgNjQuMyAyNGwyLjQgMS42YzYuOSA0LjYgMTIuMSA4LjEgMTcuMiAxMC43IDUuNSAyLjggOS4xIDMuNiAxMiAzLjYgNi44IDAgMTAuMi0xLjkgMTIuOC00LjMgMy40LTMuMiA3LTguOCAxMC44LTE4LjUgMy03LjcgNS42LTE2LjEgOC42LTI1LjkgLjgtMi43IDEuNy01LjYgMi42LTguNiAxLjItNCAyLjYtOC4yIDQtMTIuNS0zLjktNC41LTcuNC04LjgtMTAuNS0xMi43LTExLjQgMTAuMS0yNS45IDE4LjYtNDQuMyAxOC42LTE3LjUgMC0zMC43LTcuNC00MC40LTE2LjctOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjQtMi44LTIuNy00LjYtMy4zLTcuMS0zLjMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxNy41IDAgMzAuNyA3LjQgNDAuNCAxNi43IDguNCA4LjEgMTQuOCAxOC4zIDE5LjQgMjUuN2wuNiAuOWM1LjQgOC42IDguOCAxMy45IDEyLjUgMTcuNCAyLjggMi43IDQuNiAzLjMgNy4xIDMuMyAzLjMgMCA4LjctMS43IDE5LjQtMTMuNCA1LjEtNS42IDEwLjQtMTIuMyAxNi43LTIwLjRsMS40LTEuOGM1LjgtNy40IDEyLjItMTUuNyAxOS4zLTI0IDEzLjgtMTYuMiAzMC4zLTMyLjggNTEuNC00Ni40bC0xNS4xLTMwLjJjLTEuNyAuMS0zLjQgLjItNS4xIC4yLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sbXNhPVR5ZSwkeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcy1jaXRydXMiLGljb246WzY0MCw1MTIsWyJjb2NrdGFpbCJdLCJmNTYxIiwiTTU3NiA4MGMwLTQ0LjItMzUuOC04MC04MC04MC0xOCAwLTM0LjYgNi00OCAxNmwtODEgMGMyMy42LTQ3LjQgNzIuNS04MCAxMjktODAgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTNTc1LjUgMjI0IDQ5NiAyMjRjLTYuNSAwLTEzLS40LTE5LjMtMS4zbDY0LTc0LjdjMS4xLTEuMyAyLjItMi43IDMuMy00LjEgMTkuNC0xNC42IDMyLTM3LjggMzItNjR6TTY2LjkgODIuNkM3Mi4yIDcxLjMgODMuNSA2NCA5NiA2NGwzODQgMGMxMi41IDAgMjMuOCA3LjMgMjkuMSAxOC42czMuNCAyNC43LTQuOCAzNC4ybC0xODQuMyAyMTUgMCAxMTYuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE2LjItMTg0LjMtMjE1Yy04LjEtOS41LTEwLTIyLjgtNC44LTM0LjJ6TTE2NS42IDEyOEwyODggMjcwLjggNDEwLjQgMTI4IDE2NS42IDEyOHoiXX0sZ3NhPSR5ZSxic2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbGhvcm4iLGljb246WzUxMiw1MTIsWzEyODIyNiwxMjgzNjNdLCJmMGExIiwiTTQ2MS4yIDE4LjlDNDcyLjcgMjQgNDgwIDM1LjQgNDgwIDQ4bDAgNDE2YzAgMTIuNi03LjMgMjQtMTguOCAyOS4xcy0yNC44IDMuMi0zNC4zLTUuMWwtNDYuNi00MC43Yy00My42LTM4LjEtOTguNy02MC4zLTE1Ni40LTYzbDAgOTUuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NkM1Ny4zIDM4NCAwIDMyNi43IDAgMjU2UzU3LjMgMTI4IDEyOCAxMjhsODQuNSAwYzYxLjgtLjIgMTIxLjQtMjIuNyAxNjcuOS02My4zbDQ2LjYtNDAuN2M5LjQtOC4zIDIyLjktMTAuMiAzNC4zLTUuMXpNMjI0IDMyMGwwIC4yYzcwLjMgMi43IDEzNy44IDI4LjUgMTkyIDczLjRsMC0yNzUuM2MtNTQuMiA0NC45LTEyMS43IDcwLjctMTkyIDczLjRMMjI0IDMyMHoiXX0sdnNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC10aXNzdWUiLGljb246WzUxMiw1MTIsW10sImUwNWIiLCJNMTAzLjkgMzJsMTYxIDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlsMTcuNCA1Mi4yYzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsNjAuNSAwYzIxLjggMCAzNy4zIDIxLjQgMzAuNCA0Mi4xTDM4NCAzMjAgMTI4IDMyMCA3Mi43IDcwLjlDNjguMiA1MSA4My40IDMyIDEwMy45IDMyek00OCAyNTZsMTYuNiAwIDE2LjUgNzQuNEM4NiAzNTIuNCAxMDUuNSAzNjggMTI4IDM2OGwyNTYgMGMyMC43IDAgMzktMTMuMiA0NS41LTMyLjhsMjYuNC03OS4yIDguMSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LHhzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXR0cmVzcy1waWxsb3ciLGljb246WzU3Niw1MTIsW10sImU1MjUiLCJNMjU2IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAtMzg0em00OCAzODRsMjA4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgMzg0ek02NCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LHlzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWxlZnQiLGljb246WzMyMCw1MTIsWzkwMDFdLCJmMDUzIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDI0Ni42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTJ6Il19LHdzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uLXJhaW4iLGljb246WzU3Niw1MTIsW10sImY3M2MiLCJNNDQ4IDBjLTY4LjYgMC0xMjcuMSA0My4xLTE0OS44IDEwMy44IDE3LjEgMTQuMSAyOS42IDMzLjUgMzQuOSA1NS44IDM5LjkgMjEuNyA2Ni45IDYzLjkgNjYuOSAxMTIuNSAwIDEzLjUtMi4xIDI2LjUtNS45IDM4LjcgMTYuOSA2IDM1IDkuMyA1My45IDkuMyA0MyAwIDgyLjEtMTcgMTEwLjgtNDQuNiA0LjYtNC40IDUuOS0xMS4yIDMuMy0xN3MtOC42LTkuMy0xNC45LTguOGMtMyAuMi02LjEgLjQtOS4yIC40LTYzLjUgMC0xMTUtNTEuNS0xMTUtMTE1IDAtNDUuMSAyNi04NC4yIDYzLjgtMTAzIDUuNy0yLjggOS04LjkgOC4yLTE1LjJTNDg5LjYgNS4zIDQ4My40IDMuOUM0NzIgMS40IDQ2MC4yIDAgNDQ4IDB6TTI3MiAzNTJjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS0yNy45LTcxLjUtNjQuOC03OC42IC41LTMuMSAuOC02LjIgLjgtOS40IDAtMzAuOS0yNS4xLTU2LTU2LTU2LTEyLjQgMC0yMy45IDQtMzMuMSAxMC44LTEzLjQtMjUuNS00MC4xLTQyLjgtNzAuOS00Mi44LTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgNy40IDEgMTQuNiAyLjkgMjEuNS0yOS44IDExLjYtNTAuOSA0MC42LTUwLjkgNzQuNSAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxOTIgMHpNNjkgNDAxLjFjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMkwxNy4yIDQ4MC40QzEzIDQ5MyAxOS44IDUwNi42IDMyLjQgNTEwLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHoiXX0sTm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tMS05IixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLWFzYyIsInNvcnQtbnVtZXJpYy1kb3duIl0sImYxNjIiLCJNNDE4LjcgMzhjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZsMCA5NiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6TTM2NS4xIDQzMC42bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMzM2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE1MC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC05NiA5NnoiXX0sa3NhPU5vZSxTc2E9Tm9lLF9zYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTIxNC45IDIzLjdDMjEwLjMgNi42IDE5Mi44LTMuNSAxNzUuNyAxLjFzLTI3LjIgMjIuMS0yMi42IDM5LjJMMjA2IDIzNy44YzIuNSA5LjItNC41IDE4LjItMTQgMTguMi02LjQgMC0xMi00LjItMTMuOS0xMC4zTDEzNC42IDEwMi43Yy01LjEtMTYuOS0yMy0yNi40LTM5LjktMjEuM3MtMjYuNCAyMy0yMS4zIDM5LjlsNjIuOCAyMDYuNGMyLjQgNy45LTcuMiAxMy44LTEzLjIgOC4xTDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjEgMGMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDExLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjktNy45IDAtMTMuOC03LjMtMTIuMi0xNS4xbDM2LTE3MC4zYzMuNy0xNy4zLTcuNC0zNC4zLTI0LjctMzcuOXMtMzQuMyA3LjQtMzcuOSAyNC43TDMyMy4xIDIzNS4xYy0yLjYgMTIuMi0xMy4zIDIwLjktMjUuOCAyMC45LTExLjkgMC0yMi40LTgtMjUuNC0xOS41bC01Ny0yMTIuOHoiXX0sRHllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtbWFnaWMtc3BhcmtsZXMiLGljb246WzU3Niw1MTIsWyJtYWdpYy13YW5kLXNwYXJrbGVzIl0sImUyY2EiLCJNMjYzLjQtMjdMMjc4LjIgOS44IDMxNSAyNC42YzMgMS4yIDUgNC4yIDUgNy40cy0yIDYuMi01IDcuNEwyNzguMiA1NC4yIDI2My40IDkxYy0xLjIgMy00LjIgNS03LjQgNXMtNi4yLTItNy40LTVMMjMzLjggNTQuMiAxOTcgMzkuNGMtMy0xLjItNS00LjItNS03LjRzMi02LjIgNS03LjRMMjMzLjggOS44IDI0OC42LTI3YzEuMi0zIDQuMi01IDcuNC01czYuMiAyIDcuNCA1ek0xMTAuNyA0MS43bDIxLjUgNTAuMSA1MC4xIDIxLjVjNS45IDIuNSA5LjcgOC4zIDkuNyAxNC43cy0zLjggMTIuMi05LjcgMTQuN2wtNTAuMSAyMS41LTIxLjUgNTAuMWMtMi41IDUuOS04LjMgOS43LTE0LjcgOS43cy0xMi4yLTMuOC0xNC43LTkuN0w1OS44IDE2NC4yIDkuNyAxNDIuN0MzLjggMTQwLjIgMCAxMzQuNCAwIDEyOHMzLjgtMTIuMiA5LjctMTQuN0w1OS44IDkxLjggODEuMyA0MS43QzgzLjggMzUuOCA4OS42IDMyIDk2IDMyczEyLjIgMy44IDE0LjcgOS43ek00NjQgMzA0YzYuNCAwIDEyLjIgMy44IDE0LjcgOS43bDIxLjUgNTAuMSA1MC4xIDIxLjVjNS45IDIuNSA5LjcgOC4zIDkuNyAxNC43cy0zLjggMTIuMi05LjcgMTQuN2wtNTAuMSAyMS41LTIxLjUgNTAuMWMtMi41IDUuOS04LjMgOS43LTE0LjcgOS43cy0xMi4yLTMuOC0xNC43LTkuN2wtMjEuNS01MC4xLTUwLjEtMjEuNWMtNS45LTIuNS05LjctOC4zLTkuNy0xNC43czMuOC0xMi4yIDkuNy0xNC43bDUwLjEtMjEuNSAyMS41LTUwLjFjMi41LTUuOSA4LjMtOS43IDE0LjctOS43ek00NjAgMGMxMSAwIDIxLjYgNC40IDI5LjUgMTIuMmw0Mi4zIDQyLjNDNTM5LjYgNjIuNCA1NDQgNzMgNTQ0IDg0cy00LjQgMjEuNi0xMi4yIDI5LjVsLTg4LjIgODguMi0xMDEuMy0xMDEuMyA4OC4yLTg4LjJDNDM4LjQgNC40IDQ0OSAwIDQ2MCAwek00NC4yIDM5OC41TDMwOC40IDEzNC4zIDQwOS43IDIzNS42IDE0NS41IDQ5OS44QzEzNy42IDUwNy42IDEyNyA1MTIgMTE2IDUxMnMtMjEuNi00LjQtMjkuNS0xMi4yTDQ0LjIgNDU3LjVDMzYuNCA0NDkuNiAzMiA0MzkgMzIgNDI4czQuNC0yMS42IDEyLjItMjkuNXoiXX0sTXNhPUR5ZSx6c2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmN2Y1IiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0yMTcuNiAxNTMuNmMwLTEwLjYgOC42LTE5LjIgMTkuMi0xOS4ybDM4LjQgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgNDggNDggMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgMzguNGMwIDEwLjYtOC42IDE5LjItMTkuMiAxOS4ybC00OCAwIDAgNDhjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtMzguNCAwYy0xMC42IDAtMTkuMi04LjYtMTkuMi0xOS4ybDAtNDgtNDggMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTM4LjRjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmw0OCAwIDAtNDh6Il19LENzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjUtODcuNWMxNy4yLTIuNCAzMC41LTE3LjMgMzAuNS0zNS4yIDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0NjQuNCAzMDguNSA0NDggMjYxLjggNDQ4IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMuMmMtMzguNiA3LjgtNzIuMiAyOS42LTk1LjIgNTkuN0w0MS0yNC45em04NyAyMzguNWMwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRsLTkuOCAxMi4yYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyMzUuMyAwLTIwNi45LTIwNi45IDAgNC41ek0yODggNTEyYzI5LjggMCA1NC45LTIwLjQgNjItNDhsLTEyNCAwYzcuMSAyNy42IDMyLjIgNDggNjIgNDh6Il19LFJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2Utc2xhc2giLGljb246WzU3Niw1MTIsWzU3NDM5LCJoYW5kc2hha2UtYWx0LXNsYXNoIiwiaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCJdLCJlMDYwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTI4OC0yODggMTQuMi0xNC4yYzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMWwtNTUuOCA2Mi4xLTM0LTM0IDQ0LjMtNDkuMi0zOS43IDBjLTE1LjMgMC0zMC4xIDMuNi00My41IDEwLjRMNDEtMjQuOXpNMCA2OS44TDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMyMi4yIDAgNDMuOC01LjggNjIuOC0xNi40TDAgNjkuOHoiXX0sVHNhPVJvZSwkc2E9Um9lLERzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3R0bGUtd2F0ZXIiLGljb246WzMyMCw1MTIsW10sImU0YzUiLCJNMTEyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBDOTQuMyAzMiA4MCAxNy43IDgwIDBzMTQuMy0zMiAzMi0zMnpNMTYgMTQ0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjQuMS0xMy4zIDQ1LjEtMzMgNTYgMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NnMtMTMuMyA0NS4xLTMzIDU2YzE5LjcgMTAuOSAzMyAzMS45IDMzIDU2IDAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDU0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNC4xIDEzLjMtNDUuMSAzMy01Ni0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2czEzLjMtNDUuMSAzMy01NmMtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZ6Il19LExzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWQyMCIsaWNvbjpbNTEyLDUxMixbXSwiZjZjZiIsIk0yMjQuNC04LjJjMTkuNi0xMS4xIDQzLjYtMTEuMSA2My4xIDBsMTkyIDEwOC44YzIwIDExLjQgMzIuNCAzMi42IDMyLjQgNTUuN2wwIDIxNS42YzAgMjMtMTIuNCA0NC4zLTMyLjQgNTUuN2wtMTkyIDEwOC44Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMEwzMi40IDQyNy41QzEyLjQgNDE2LjEgMCAzOTQuOCAwIDM3MS44TDAgMTU2LjJjMC0yMyAxMi40LTQ0LjMgMzIuNC01NS43TDIyNC40LTguMnptNTIgNzMuMkMyNjcgNDkuOCAyNDUgNDkuOCAyMzUuNiA2NWwtNzYuNiAxMjMuNy04NS40LTQ2LjMtMy44LTEuNmMtOC45LTIuNy0xOC44IDEuMS0yMy40IDkuNnMtMi40IDE4LjkgNC43IDI0LjhsMy4zIDIuMyA4My40IDQ1LjItNzQuNiAxMjAuNkM1NS4zIDM1Ni4yIDYxIDM3MyA3NSAzNzguNGwxNjEgNjEuOSAwIDM5LjdjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0zOS43IDE2MS02MS45YzE0LTUuNCAxOS43LTIyLjIgMTEuOC0zNWwtNzQuNy0xMjAuNiA4My40LTQ1LjJjOS43LTUuMyAxMy4zLTE3LjQgOC4xLTI3LjFzLTE3LjQtMTMuMy0yNy4xLTguMUwzNTMgMTg4LjcgMjc2LjQgNjV6bS00NyAzMjkuOWwtMTIyLTQ2LjkgNTQuNS04OC4xIDY3LjUgMTM1ek00MDQuNiAzNDhsLTEyMiA0Ni45IDY3LjUtMTM1IDU0LjUgODguMXpNMzE5LjMgMjMyTDI1NiAzNTguNiAxOTIuNyAyMzIgMzE5LjMgMjMyek0zMDggMTkybC0xMDQuMSAwIDUyLTg0IDUyIDg0eiJdfSxPb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi16LWEiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWRlc2MiLCJzb3J0LWFscGhhLWRvd24tYWx0Il0sImY4ODEiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyAxNjAgNDQ4IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDM3MC44IDk2IDMyMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQxMi42IDI3My43bDgwIDE2MGM3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsODAtMTYwYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMzU5LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40eiJdfSxFc2E9T29lLFBzYT1Pb2UsSXNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJydXNoIixpY29uOlszODQsNTEyLFtdLCJmNTVkIiwiTTE2Mi40IDZjLTEuNS0zLjYtNS02LTguOS02bC0xOSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDEwNC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMNjYuNCA2Yy0xLjUtMy42LTUtNi04LjktNkw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OGwwIDIwOCAzODQgMCAwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OEwyMzAuNSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDIwMC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMMTYyLjQgNnpNMCAzMDRsMCAxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw2NCAwIDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTY0IDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi0zODQgMHpNMTkyIDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2eiJdfSxBc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctZGFzaGVkLWxpbmUtYXJyb3ctcmlnaHQiLGljb246WzY0MCw1MTIsW10sImU1NTMiLCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek00MzIgOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzODQtNS4zIDM4NCA4bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyem0wIDEyOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNDA4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNjA5IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtMTAyLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDIuMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LEx5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1zaG9ydC13aWRlIixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAtYWx0Il0sImY4ODUiLCJNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LE5zYT1MeWUsRXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAtdmVydGljYWwiLGljb246WzMyMCw1MTIsWyJncmlkLXZlcnRpY2FsIl0sImY1OGUiLCJNMTI4IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDBDMTcuOSAwIDAgMTcuOSAwIDQwTDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0wIDE5MmMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTAgNDI0bDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMzIwIDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwTDIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpNMTkyIDIzMmwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MjRjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4eiJdfSxSc2E9RXllLE9zYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItdHVubmVsIixpY29uOls1MTIsNTEyLFtdLCJlNGRlIiwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0Mi44IDBjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0xMTMuMWMwLTEzLjUgMy4xLTI2LjggOS0zOC45bDM5LjctODAuOGM5LjQtMTkuMSAyOC45LTMxLjMgNTAuMi0zMS4zTDMxNyAyMjRjMjEuMyAwIDQwLjggMTIuMSA1MC4yIDMxLjNMNDA3IDMzNmM1LjkgMTIuMSA5IDI1LjQgOSAzOC45TDQxNiA0ODhjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGw0Mi44IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJDNTEyIDExNC42IDM5Ny40IDAgMjU2IDB6TTM2Mi44IDUxMmMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNGwwLTI0LTE5MiAwIDAgMjRjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGwyMTMuNyAwem0tMTc1LTIzNS41bC0yOS4zIDU5LjUgMTk0LjkgMC0yOS4zLTU5LjVjLTEuMy0yLjctNC4xLTQuNS03LjItNC41TDE5NSAyNzJjLTMgMC01LjggMS43LTcuMiA0LjV6TTE3NiA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0xODQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sRnNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWNvbHVtbiIsaWNvbjpbNTEyLDUxMixbXSwiZTBlMyIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0xNDQgMjI0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTQ0LTY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTgwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNTEyIDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LEJzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXByaWNvcm4iLGljb246WzU3Niw1MTIsW10sImU4NDgiLCJNMjQwIDMyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgNjUuMmMxOC44LTEwLjkgNDAuNy0xNy4yIDY0LTE3LjIgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgNDgwIDQ0OCA0ODBjLTM1LjggMC02OC4yLTE0LjctOTEuNC0zOC40LTI4LjggNDIuNS03Ny40IDcwLjQtMTMyLjYgNzAuNC0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzUzIDAgOTYtNDMgOTYtOTZsMC0xNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjQtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyAzMiAzMiAzMkM3Mi42IDMyIDEwOC44IDUxIDEzMi4yIDgwLjUgMTU4LjYgNTAuNyAxOTcuMSAzMiAyNDAgMzJ6TTQ0OCAyODhhNjQgNjQgMCAxIDAgMCAxMjggNjQgNjQgMCAxIDAgMC0xMjh6Il19LEhzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0zMDUgMjI1bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXoiXX0sRm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR2IixpY29uOls1NzYsNTEyLFs2MzcxNywidGVsZXZpc2lvbiIsInR2LWFsdCJdLCJmMjZjIiwiTTY0IDk2bDAgMjQwIDQ0OCAwIDAtMjQwLTQ0OCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQwMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDQ0OGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHFzYT1Gb2UsanNhPUZvZSxWc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VjdGlvbiIsaWNvbjpbMjU2LDUxMixbXSwiZTQ0NyIsIk0xMTAgMEM0OS4yIDAgMCA0OS4yIDAgMTEwIDAgMTMzLjcgNy42IDE1NS44IDIwLjUgMTc0IDcuNiAxOTIgMCAyMTQuMSAwIDIzOCAwIDI5MS43IDM4LjkgMzM3LjYgOTEuOSAzNDYuNGw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDI1LjQtMjAuNiA0Ni00NiA0NmwtOTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5OCAwYzYwLjcgMCAxMTAtNDkuMiAxMTAtMTEwIDAtMjMuNy03LjYtNDUuOS0yMC41LTY0IDEyLjktMTggMjAuNS00MC4xIDIwLjUtNjQgMC01My44LTM4LjktOTkuNi05MS45LTEwOC41bC02MS43LTEwLjNDODAuMiAxNTEuNiA2NCAxMzIuNCA2NCAxMTAgNjQgODQuNiA4NC42IDY0IDExMCA2NGw5OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzIyNS43IDAgMjA4IDBMMTEwIDB6bTc0LjcgMjk5LjFjLTYuNS0yLjQtMTMuNC00LjMtMjAuNS01LjVsLTYxLjctMTAuM2MtMjIuMi0zLjctMzguNC0yMi45LTM4LjQtNDUuMyAwLTkuMiAyLjctMTcuOCA3LjQtMjUgNi41IDIuNCAxMy40IDQuMyAyMC41IDUuNWw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDkuMi0yLjcgMTcuOC03LjQgMjV6Il19LFVzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZWFjZSIsaWNvbjpbNTEyLDUxMixbOTc3NF0sImY2N2MiLCJNMjI0IDQ0NS4zbDAtMTIxLjgtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOCAyMjQgNjYuN2MtOTAuOCAxNS4yLTE2MCA5NC4yLTE2MCAxODkuMyAwIDM0LjYgOS4yIDY3LjEgMjUuMiA5NS4xem0yOTMuMSA0OS41bC05NC4zLTc3LjEgMCAxMjEuOGMzNS43LTYgNjguMS0yMS45IDk0LjMtNDQuN3ptNDAuNi00OS41YzE2LTI4IDI1LjItNjAuNSAyNS4yLTk1LjEgMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zbDAgMTc0LjIgMTM0LjggMTEwLjN6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFdzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyIixpY29uOls1NzYsNTEyLFsxMTA4OCw2MTQ0Nl0sImYwMDUiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45eiJdfSxHc2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZyIsaWNvbjpbNDQ4LDUxMixbMTI3OTg4LDYxNzI1XSwiZjAyNCIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjEuNiA2Mi43LTE4LjhjNDEuOS0xMi42IDg3LjEtOC43IDEyNi4yIDEwLjkgNDIuNyAyMS40IDkyLjUgMjQgMTM3LjIgNy4ybDM3LjEtMTMuOWMxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTExLjggNS45Yy00NC45IDIyLjUtOTcuOCAyMi41LTE0Mi44IDAtMzYuNC0xOC4yLTc4LjMtMjEuOC0xMTcuMi0xMC4xTDY0IDU0LjQgNjQgMzJ6Il19LEJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmlhbmdsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbOTg4OCwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJ3YXJuaW5nIl0sImYwNzEiLCJNMjU2IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41UzQ4Ni4xIDQ4MCA0NzIgNDgwTDQwIDQ4MGMtMTQuMSAwLTI3LjItNy40LTM0LjQtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwYzctMTIuOSAyMC41LTIxIDM1LjItMjF6bTAgMzUyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNSAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3oiXX0sS3NhPUJvZSxZc2E9Qm9lLFpzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTZjIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFB5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmFkdWF0aW9uLWNhcCIsaWNvbjpbNTc2LDUxMixbMTI3ODkxLCJtb3J0YXItYm9hcmQiXSwiZjE5ZCIsIk00OCAxOTUuOGwyMDkuMiA4Ni4xYzkuOCA0IDIwLjIgNi4xIDMwLjggNi4xczIxLTIuMSAzMC44LTYuMWwyNDIuNC05OS44YzktMy43IDE0LjgtMTIuNCAxNC44LTIyLjFzLTUuOC0xOC40LTE0LjgtMjIuMUwzMTguOCAzOC4xQzMwOSAzNC4xIDI5OC42IDMyIDI4OCAzMnMtMjEgMi4xLTMwLjggNi4xTDE0LjggMTM3LjlDNS44IDE0MS42IDAgMTUwLjMgMCAxNjBMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI2MC4yem00OCA3MS43TDk2IDM4NGMwIDUzIDg2IDk2IDE5MiA5NnMxOTItNDMgMTkyLTk2bDAtMTE2LjYtMTQyLjkgNTguOWMtMTUuNiA2LjQtMzIuMiA5LjctNDkuMSA5LjdzLTMzLjUtMy4zLTQ5LjEtOS43TDk2IDI2Ny40eiJdfSxYc2E9UHllLFFzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9yZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU0ZSIsIk0zMC43IDcyLjNDMzcuNiA0OC40IDU5LjUgMzIgODQuNCAzMmwzNDQgMGMyNC45IDAgNDYuOCAxNi40IDUzLjggNDAuM2wyMy40IDgwLjJjMTIuOCA0My43LTIwLjEgODcuNS02NS42IDg3LjUtMjYuMyAwLTQ5LjQtMTQuOS02MC44LTM3LjEtMTEuNiAyMS45LTM0LjYgMzcuMS02MS40IDM3LjEtMjYuNiAwLTQ5LjctMTUtNjEuMy0zNy0xMS42IDIyLTM0LjcgMzctNjEuMyAzNy0yNi44IDAtNDkuOC0xNS4xLTYxLjQtMzcuMS0xMS40IDIyLjEtMzQuNSAzNy4xLTYwLjggMzcuMS00NS42IDAtNzguNC00My43LTY1LjYtODcuNUwzMC43IDcyLjN6TTk2LjQgMzUybDMyMCAwIDAtNjYuNGM3LjYgMS42IDE1LjUgMi40IDIzLjUgMi40IDE0LjMgMCAyOC0yLjYgNDAuNS03LjJsMCAxNTEuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTUxLjJjMTIuNSA0LjYgMjYuMSA3LjIgNDAuNSA3LjIgOC4xIDAgMTUuOS0uOCAyMy41LTIuNGwwIDY2LjR6Il19LEpzYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWFzdHJvbmF1dCIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmYiIsIk0yMjQgMzM2Yzc0LjYgMCAxMzguNC00Ni40IDE2NC0xMTJsNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQgMEMzNjIuNCAzMC40IDI5OC42LTE2IDIyNC0xNlM4NS42IDMwLjQgNjAgOTZsLTQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0IDBjMjUuNiA2NS42IDg5LjQgMTEyIDE2NCAxMTJ6TTIwOCA4MGwzMiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek0xNiA0ODQuNkMxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmw1Mi42IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4IDUyLjYgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTU5LjgtMzEuOS0xMTIuMi03OS42LTE0MS0zNi40IDI1LjUtODAuNiA0MC40LTEyOC40IDQwLjRzLTkyLTE0LjktMTI4LjQtNDAuNEM0Ny45IDM3Mi40IDE2IDQyNC44IDE2IDQ4NC42ek0xODMuMyAxNDEuNWMtLjktMy4zLTMuOS01LjUtNy4zLTUuNXMtNi40IDIuMi03LjMgNS41bC02IDIxLjItMjEuMiA2Yy0zLjMgLjktNS41IDMuOS01LjUgNy4zczIuMiA2LjQgNS41IDcuM2wyMS4yIDYgNiAyMS4yYy45IDMuMyAzLjkgNS41IDcuMyA1LjVzNi40LTIuMiA3LjMtNS41bDYtMjEuMiAyMS4yLTZjMy4zLS45IDUuNS0zLjkgNS41LTcuM3MtMi4yLTYuNC01LjUtNy4zbC0yMS4yLTYtNi0yMS4yek0xNTIgNDg4bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xMjAtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxlaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTRkNSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00NjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI4OCAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQ5NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sSXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1zYXVjZXIiLGljb246WzU3Niw1MTIsWyJjb2ZmZWUiXSwiZjBmNCIsIk02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNTIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyAyODggNDQ4IDI4OGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw2NCA2NHptNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bDAgMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0ek02NCA0NDhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSx0aWE9SXllLGFpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZW1vbiIsaWNvbjpbNDQ4LDUxMixbMTI3ODE5XSwiZjA5NCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNi42IDAtMTMgMS0xOSAyLjktMjIuNSA3LTQ4LjEgMTQuOS03MSA5LTc1LjItMTkuMS0xNTYuNCAxMS0yMTMuNyA2OC4zUy03LjIgMjUwLjggMTEuOSAzMjZjNS44IDIyLjktMiA0OC40LTkgNzEtMS45IDYtMi45IDEyLjQtMi45IDE5IDAgMzUuMyAyOC43IDY0IDY0IDY0IDYuNiAwIDEzLTEgMTkuMS0yLjkgMjIuNS03IDQ4LjEtMTQuOSA3MS05IDc1LjIgMTkuMSAxNTYuNC0xMSAyMTMuNy02OC4zUzQ1NS4yIDI2MS4yIDQzNi4xIDE4NmMtNS44LTIyLjkgMi00OC40IDktNzEgMS45LTYgMi45LTEyLjQgMi45LTE5LjF6TTIyMi43IDE0M2MtNTIgMTUuMi05Ni41IDU5LjctMTExLjcgMTExLjctMy43IDEyLjctMTcuMSAyMC0yOS44IDE2LjNTNjEuMiAyNTQgNjUgMjQxLjNjMTkuOC02Ny43IDc2LjYtMTI0LjUgMTQ0LjMtMTQ0LjMgMTIuNy0zLjcgMjYuMSAzLjYgMjkuOCAxNi4zcy0zLjYgMjYuMS0xNi4zIDI5Ljh6Il19LHNpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJhdmFuIixpY29uOls2NDAsNTEyLFtdLCJmOGZmIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5Ni40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04TDk2IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgOTZ6TTM1MiAzNTJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnpNMTYwIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6bTY0IDMzNmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGlpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxIixpY29uOls0NDgsNTEyLFsxMTNdLCI1MSIsIk02NCAyNTZjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjAgMjguOSAwIDU2LTcuNyA3OS40LTIxLjFsLTcyLTg2LjRjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWw3MC45IDg1LjFjMjAuNC0yNi44IDMyLjUtNjAuMyAzMi41LTk2LjYgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTNjQgMTY3LjYgNjQgMjU2ek0zNDQuOSA0NDQuNkMzMTAgNDY3IDI2OC41IDQ4MCAyMjQgNDgwIDEwMC4zIDQ4MCAwIDM3OS43IDAgMjU2UzEwMC4zIDMyIDIyNCAzMiA0NDggMTMyLjMgNDQ4IDI1NmMwIDU2LjEtMjAuNiAxMDcuNC01NC43IDE0Ni43bDQ3LjMgNTYuOGMxMS4zIDEzLjYgOS41IDMzLjgtNC4xIDQ1LjFzLTMzLjggOS41LTQ1LjEtNC4xbC00Ni42LTU1Ljl6Il19LHJpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NrIixpY29uOlszODQsNTEyLFsxMjgyNzRdLCJmMDIzIiwiTTEyOCA5NmwwIDY0IDEyOCAwIDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6TTY0IDE2MGwwLTY0QzY0IDI1LjMgMTIxLjMtMzIgMTkyLTMyUzMyMCAyNS4zIDMyMCA5NmwwIDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LG9pYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWludC1yb2xsZXIiLGljb246WzUxMiw1MTIsW10sImY1YWEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDk2YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTguN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC0xOC43YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCAxOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LEF5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtaGlnaCIsaWNvbjpbNjQwLDUxMixbMTI4MjY2LCJ2b2x1bWUtdXAiXSwiZjAyOCIsIk01MzMuNiAzMi41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNTU3LjUgMTEzLjggNTkyIDE4MC44IDU5MiAyNTZzLTM0LjUgMTQyLjItODguNyAxODYuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM1OTguNSA0MjYuNyA2NDAgMzQ2LjIgNjQwIDI1NlM1OTguNSA4NS4yIDUzMy42IDMyLjV6TTQ3My4xIDEwN2MtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzQ3NS4zIDE3MC43IDQ5NiAyMTAuOSA0OTYgMjU2cy0yMC43IDg1LjMtNTMuMiAxMTEuOGMtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNWM0My4yLTM1LjIgNzAuOS04OC45IDcwLjktMTQ5cy0yNy43LTExMy44LTcwLjktMTQ5em0tNjAuNSA3NC41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzkzLjEgMjI3LjYgNDAwIDI0MSA0MDAgMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDM0LjEgMzEyLjkgNDQ4IDI4Ni4xIDQ0OCAyNTZzLTEzLjktNTYuOS0zNS40LTc0LjV6TTgwIDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEwxMjggMTYwIDgwIDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sbmlhPUF5ZSxsaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLXBsdXMiLGljb246WzUxMiw1MTIsW10sImY2NWUiLCJNNTEyIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MHpNMjU2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxjaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVyY3VyeSIsaWNvbjpbMzg0LDUxMixbOTc5MV0sImYyMjMiLCJNMTE3LTRDMTA2LTE3LjggODUuOC0yMCA3Mi4xLTlzLTE2IDMxLjItNSA0NUM3NC45IDQ1LjcgODMuNyA1NC41IDkzLjUgNjIuMSA0Ni43IDkzLjcgMTYgMTQ3LjMgMTYgMjA4IDE2IDI5NC4zIDc4LjEgMzY2LjEgMTYwIDM4MS4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC02MC43LTMwLjctMTE0LjMtNzcuNS0xNDUuOSA5LjgtNy43IDE4LjctMTYuNCAyNi40LTI2LjEgMTEuMS0xMy44IDguOC0zMy45LTUtNDVTMjc4LTE3LjggMjY3LTRjLTE3LjYgMjItNDQuNyAzNi03NSAzNlMxMzQuNyAxOCAxMTctNHptNzUgMzI0Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMlMxMzAuMSA5NiAxOTIgOTYgMzA0IDE0Ni4xIDMwNCAyMDhjMCA2MS44LTUwLjEgMTEyLTExMS45IDExMmwtLjEgMHoiXX0sZGlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvciIsaWNvbjpbNTc2LDUxMixbOTg3NV0sImYxM2QiLCJNMjg4IDY0YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgMjU3LjljNjIuOS0xNC4zIDExMC4yLTY5LjcgMTExLjktMTM2LjVsLTE2LjEgMTQuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNMNDk2IDMwNy45QzQ5My45IDQyMSA0MDEuNiA1MTIgMjg4IDUxMlM4Mi4xIDQyMSA4MCAzMDcuOUw2My44IDMyMi4xYy0xMCA4LjctMjUuMSA3LjctMzMuOS0yLjNzLTcuNy0yNS4xIDIuMy0zMy45bDY0LTU2YzktNy45IDIyLjYtNy45IDMxLjYgMGw2NCA1NmMxMCA4LjcgMTEgMjMuOSAyLjMgMzMuOXMtMjMuOSAxMS0zMy45IDIuM2wtMTYuMS0xNC4xYzEuOCA2Ni44IDQ5LjEgMTIyLjIgMTExLjkgMTM2LjVsMC0yNTcuOWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNXoiXX0sTnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wYXJraW5nIixpY29uOls0NDgsNTEyLFsxMjczNTksInBhcmtpbmciXSwiZjU0MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0xOTIgMjU2bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDAgMCA2NHptNDggNjRsLTQ4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4NGMwLTIyLjEgMTcuOS00MCA0MC00MGw3MiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2eiJdfSx1aWE9TnllLHBpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW51a2lhaCIsaWNvbjpbNjQwLDUxMixbMTI4MzM0XSwiZjZlNiIsIk0zMTQuMiAzLjNjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6bS0yODggNDhDMjEuMSA2MC4xIDggODQuNiA4IDEwNCA4IDExNy4zIDE4LjcgMTI4IDMyIDEyOHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTg4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMTAxLjEgNjAuMSA4OCA4NC42IDg4IDEwNHptODIuMi01Mi43Yy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek0yMTYgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0MyMjkuMSA2MC4xIDIxNiA4NC42IDIxNiAxMDR6TTM5NC4yIDUxLjNjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTQ0MCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzQ1My4xIDYwLjEgNDQwIDg0LjYgNDQwIDEwNHptODIuMi01Mi43Yy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek01ODQgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M1OTcuMSA2MC4xIDU4NCA4NC42IDU4NCAxMDR6TTExMiAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNTIgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTc2LTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMTc0LjMgMCAxOTJsMCA5NmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwIDAgNjQtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtNjQgMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwIDAtMTc2eiJdfSxsUz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbInJvdGF0ZS1iYWNrIiwicm90YXRlLWJhY2t3YXJkIiwidW5kby1hbHQiXSwiZjJlYSIsIk0yNCAxOTJsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00Ni43LTQ2LjdjNzUuMy01OC42IDE4NC4zLTUzLjMgMjUzLjUgMTUuOSA3NSA3NSA3NSAxOTYuNSAwIDI3MS41cy0xOTYuNSA3NS0yNzEuNSAwYy0xMC4yLTEwLjItMTktMjEuMy0yNi40LTMzLTkuNS0xNC45LTI5LjMtMTkuMy00NC4yLTkuOHMtMTkuMyAyOS4zLTkuOCA0NC4yQzQ5LjcgNDA4LjcgNjEuNCA0MjMuNSA3NSA0MzcgMTc1IDUzNyAzMzcgNTM3IDQzNyA0MzdTNTM3IDE3NSA0MzcgNzVDMzQyLjgtMTkuMyAxOTMuMy0yNC43IDkyLjcgNTguOEw0MSA3QzM0LjEgLjIgMjMuOC0xLjkgMTQuOCAxLjhTMCAxNC4zIDAgMjRMMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjR6Il19LGhpYT1sUyxmaWE9bFMsbWlhPWxTLFJ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkaW5nIixpY29uOls0NDgsNTEyLFsiaGVhZGVyIl0sImYxZGMiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTEyIDIyNCAwIDAtMTEyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDMyMCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNDQtMjI0IDAgMCAxNDQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMzIwLTE2IDBDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sZ2lhPVJ5ZSxiaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3Jvc3NoYWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZjA1YiIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEzMS4yIDI4OGMxMi43IDYyLjcgNjIuMSAxMTIuMSAxMjQuOCAxMjQuOGwwLTEyLjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyLjhjNjIuNy0xMi43IDExMi4xLTYyLjEgMTI0LjgtMTI0LjhMNDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMi44IDBDNDMyLjEgMTYxLjMgMzgyLjcgMTExLjkgMzIwIDk5LjJsMCAxMi44YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTIuOEMxOTMuMyAxMTEuOSAxNDMuOSAxNjEuMyAxMzEuMiAyMjRsMTIuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMi44IDB6TTI4OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSx2aWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW5vZGVzIixpY29uOls1MTIsNTEyLFtdLCJlNGUyIiwiTTQxOC40IDE1Ny45YzM1LjMtOC4zIDYxLjYtNDAgNjEuNi03Ny45IDAtNDQuMi0zNS44LTgwLTgwLTgwLTQzLjQgMC03OC43IDM0LjUtODAgNzcuNUwxMzYuMiAxNTEuMUMxMjEuNyAxMzYuOCAxMDEuOSAxMjggODAgMTI4IDM1LjggMTI4IDAgMTYzLjggMCAyMDhzMzUuOCA4MCA4MCA4MGMxMi4yIDAgMjMuOC0yLjcgMzQuMS03LjZMMjU5LjcgNDA3LjhjLTIuNCA3LjYtMy43IDE1LjgtMy43IDI0LjIgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTI3LjctMTQtNTIuMS0zNS40LTY2LjRsMzcuOC0yMDcuN3pNMTU2LjMgMjMyLjJjMi4yLTYuOSAzLjUtMTQuMiAzLjctMjEuN2wxODMuOC03My41YzMuNiAzLjUgNy40IDYuNyAxMS42IDkuNUwzMTcuNiAzNTQuMWMtNS41IDEuMy0xMC44IDMuMS0xNS44IDUuNUwxNTYuMyAyMzIuMnoiXX0seGlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1yZXN0b3JlIixpY29uOls1NzYsNTEyLFtdLCJmMmQyIiwiTTUxMiA5NkwxNjAgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTQ4IDAgMC02NCA0OCAwIDAtMTkyek0wIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0em02NCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSx5aWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiciIsaWNvbjpbMzIwLDUxMixbMTE0XSwiNTIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDk1LjMgMCAxMDIuNCAxNDYuNGMxMC4xIDE0LjUgMzAuMSAxOCA0NC42IDcuOXMxOC0zMC4xIDcuOS00NC42TDIzMC4xIDMwOS41QzI4Mi44IDI4OC4xIDMyMCAyMzYuNCAzMjAgMTc2IDMyMCA5Ni41IDI1NS41IDMyIDE3NiAzMkwzMiAzMnpNMTc2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6Il19LHdpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlMTdiIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzIuNSAyLjUgNS4zIDQuNSA4LjMgNi0yMS4yLTMwLjktMzMuNi02OC4zLTMzLjYtMTA4LjYgMC05OS40IDc1LjUtMTgxLjEgMTcyLjMtMTkxbDkwLjQtOTAuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxraWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29wdXJhbSIsaWNvbjpbNTEyLDUxMixbXSwiZjY2NCIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDggMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEzNmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC00OCAwIDAtMjI0LTMyIDAgMC0xMjgtNDggMCAwIDEyOCAzMiAwIDAgMjI0LTIyNCAwIDAtMjI0IDMyIDAgMC0xMjgtNDggMCAwIDEyOC0zMiAwIDAgMjI0LTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhMOTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMDggNDAwbDAgNjQgOTYgMCAwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek0yNTYgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzIgNjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxTaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLW1pbnVzIixpY29uOls1NzYsNTEyLFtdLCJlNGZmIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xMjggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZ6Il19LF9pYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLW9mLWxpZmUiLGljb246WzUxMiw1MTIsW10sImY2MjEiLCJNMjA4LjUgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0MC45IDEyMi03MC40YzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN2wxNiAyNy43YzguOCAxNS4zIDMuNiAzNC45LTExLjcgNDMuN2wtMTIyIDcwLjQgMTIyIDcwLjRjMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN2wtMTYgMjcuN2MtOC44IDE1LjMtMjguNCAyMC42LTQzLjcgMTEuN2wtMTIyLTcwLjQgMCAxNDAuOWMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNDAuOS0xMjIgNzAuNGMtMTUuMyA4LjgtMzQuOSAzLjYtNDMuNy0xMS43bC0xNi0yNy43Yy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjdsMTIyLTcwLjQtMTIyLTcwLjRjLTE1LjMtOC44LTIwLjUtMjguNC0xMS43LTQzLjdsMTYtMjcuN2M4LjgtMTUuMyAyOC40LTIwLjUgNDMuNy0xMS43bDEyMiA3MC40IDAtMTQwLjl6Il19LE95ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXNpbmVzcy10aW1lIixpY29uOls2NDAsNTEyLFsiYnJpZWZjYXNlLWNsb2NrIl0sImY2NGEiLCJNMjY0IDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwLTgwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMzA1IDBjMzMuOC0yOS45IDc4LjMtNDggMTI3LTQ4IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNGMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDI2NCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptODAgMjk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTE5MiAwIDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5My40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTE2LjYgMi4xLTMyLjcgNi00OGwtMjIgMHptMzUyIDQ4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQ5NiAzMjBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxNaWE9T3llLHppYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWV4dGluZ3Vpc2hlciIsaWNvbjpbNTEyLDUxMixbMTI5NTE5XSwiZjEzNCIsIk01MTIgMzJjMC05LjYtNC4zLTE4LjctMTEuNy0yNC43UzQ4My4xLTEuMyA0NzMuNyAuNmwtMTYwIDMyQzMwMS41IDM1LjEgMjkyIDQ0LjMgMjg5IDU2bC02NSAwIDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjguNGMtNTUuMyAxMi4zLTEwMS4zIDQ5LjUtMTI1LjUgOTkuMS01LjggMTEuOS0uOSAyNi4zIDExLjEgMzIuMXMyNi4zIC45IDMyLjEtMTEuMUM2MiAxNDYuOSA5MS44IDEyMS4xIDEyOCAxMTBsMCAyOC44Yy0zNy44IDE4LTY0IDU2LjUtNjQgMTAxLjJsMCAxMjggMjI0IDAgMC0xMjhjMC00NC43LTI2LjItODMuMi02NC0xMDEuMmwwLTM0LjggNjUgMGMzIDExLjcgMTIuNSAyMC45IDI0LjcgMjMuNGwxNjAgMzJjOS40IDEuOSAxOS4xLS42IDI2LjYtNi42UzUxMiAxMzcuNiA1MTIgMTI4bDAtOTZ6TTI4OCA0NDhsMC0zMi0yMjQgMCAwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDk2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjR6Il19LEZ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWRvd24iXSwiZjE3NSIsIk0xMzcuNCA1MzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiA0MzQuNyAxOTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxMjgtMTcuNyAxMjggMGwwIDQzNC43LTczLjQtNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOHoiXX0sQ2lhPUZ5ZSxUaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1taW51cyIsaWNvbjpbNjQwLDUxMixbXSwiZjUwMyIsIk0yODUuNyAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzcuNyA1MTJDNjEuMyA1MTIgNDggNDk4LjcgNDggNDgyLjMgNDggMzgzLjggMTI3LjggMzA0IDIyNi4zIDMwNGw1OS40IDB6TTI1NiAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0zNDQtOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE0NCAweiJdfSwkaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktY2hlY2siLGljb246WzUxMiw1MTIsW10sImY1M2MiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHpNOTYgMzEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0LTEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjcyIDB6Il19LEJ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1sYXB0b3AiLGljb246WzY0MCw1MTIsWyJsYXB0b3AtaG91c2UiXSwiZTA2NiIsIk00NDggMjQwbDE5LjkgMGMxNS41IDAgMjguMS0xMi42IDI4LjEtMjguMSAwLTcuNi0zLjEtMTQuOS04LjYtMjAuMkwyODMuNS00LjlDMjc2LjEtMTIgMjY2LjMtMTYgMjU2LTE2cy0yMC4xIDQtMjcuNSAxMS4xTDI0LjYgMTkxLjdDMTkuMSAxOTcgMTYgMjA0LjMgMTYgMjExLjkgMTYgMjI3LjQgMjguNiAyNDAgNDQuMSAyNDBsMTkuOSAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg1LjcgMGM3LjQtNi42IDE2LjQtMTEuNCAyNi4zLTE0bDAtMTMwYzAtNS41IC43LTEwLjkgMi0xNmwtMTAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgMTQ0IDB6TTM1MiAzNTJsMTYwIDAgMCAxMjgtMTYwIDAgMC0xMjh6bS02NC0zMmwwIDE2MC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LERpYT1CeWUsTGlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvd25sb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDE5IiwiTTI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIxMC43LTQxLjQtNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjU2IDI0Mi43IDI1NiAzMnpNNjQgMzIwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ2LjkgMC01Ni42IDU2LjZjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMEwxMTAuOSAzMjAgNjQgMzIwem0zMDQgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxFaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2FnaXR0YXJpdXMiLGljb246WzQ0OCw1MTIsW10sImU4NGQiLCJNNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuOC0xNDYuOCAxNDYuOCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjJzLTMyLjggMTIuNS00NS4zIDBMMTkyIDMzMy4zIDU0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMiAwcy0xMi41LTMyLjggMC00NS4yTDE0Ni44IDI4OCAxMDUuNCAyNDYuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjJzMzIuOC0xMi41IDQ1LjIgMEwxOTIgMjQyLjggMzM4LjggOTYgMjU2IDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAweiJdfSxQaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY291Y2giLGljb246WzY0MCw1MTIsW10sImY0YjgiLCJNMTQ0IDI3MkMxNDQgMjI0LjcgMTA5LjggMTg1LjQgNjQuOCAxNzcuNSA3MiAxMTMuNiAxMjYuMiA2NCAxOTIgNjRsMjU2IDBjNjUuOCAwIDEyMCA0OS42IDEyNy4yIDExMy41LTQ1IDgtNzkuMiA0Ny4yLTc5LjIgOTQuNWwwIDMyLTM1MiAwIDAtMzJ6TTAgMzg0TDAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MCA0NDggMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NHoiXX0sSWlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTU2NyIsIk0yNTYgMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMMzMuNCA0MjAuNUMyNS45IDQ1MC43IDQ4LjggNDgwIDgwIDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgNi4xIDAgMTEuOCAxLjcgMTYuNyA0LjcgMi44LTIzLjkgMTQuMy00NS4xIDMxLjQtNjAuM2wwLTI0LjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNi4yIDAgMTIuNCAuNCAxOC40IDEuM0w0NTguNSA4MC42QzQ1MS40IDUyLjEgNDI1LjggMzIgMzk2LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTc2IDgwLjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTM1MiA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LEh5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbOTk4NCw5OTg2LDk5ODgsImN1dCJdLCJmMGM0IiwiTTE5MiAyNTZsLTM5LjUgMzkuNWMtMTIuNi00LjktMjYuMi03LjUtNDAuNS03LjUtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJzNTAuMSAxMTIgMTEyIDExMiAxMTItNTAuMSAxMTItMTEyYzAtMTQuMy0yLjctMjcuOS03LjUtNDAuNUw0OTkuMiA3Ni44YzcuMS03LjEgNy4xLTE4LjUgMC0yNS42LTI4LjMtMjguMy03NC4xLTI4LjMtMTAyLjQgMEwyNTYgMTkyIDIxNi41IDE1Mi41YzQuOS0xMi42IDcuNS0yNi4yIDcuNS00MC41IDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzAgNTAuMSAwIDExMiA1MC4xIDIyNCAxMTIgMjI0YzE0LjMgMCAyNy45LTIuNyA0MC41LTcuNUwxOTIgMjU2em05Ny45IDk3LjlMMzk2LjggNDYwLjhjMjguMyAyOC4zIDc0LjEgMjguMyAxMDIuNCAwIDcuMS03LjEgNy4xLTE4LjUgMC0yNS42bC0xNDUuMy0xNDUuMy02NCA2NHpNNjQgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQ4IDI0MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LEFpYT1IeWUsZXY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnIixpY29uOls1NzYsNTEyLFtdLCJmMTg4IiwiTTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40bC0xMzUuMSAwYy0xNS43IDAtMjguNC0xMi43LTI4LjQtMjguNGwwLTMuNnptMzQ1LjYgMTIuOGMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDIuNi0uMSA1LjMtLjIgNy45bDgzLjQgNjIuNWMxNC4xIDEwLjYgMTcgMzAuNyA2LjQgNDQuOHMtMzAuNyAxNy00NC44IDYuNGwtNjMuMS00Ny4zYy0yMy4yIDQ0LjItNjYuNSA3Ni4yLTExNy43IDgzLjlMMzEyIDI4MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIzMC4yYy01MS4yLTcuNy05NC41LTM5LjctMTE3LjctODMuOUw4My4yIDQ3My42Yy0xNC4xIDEwLjYtMzQuMiA3LjctNDQuOC02LjRzLTcuNy0zNC4yIDYuNC00NC44bDgzLjQtNjIuNWMtLjEtMi42LS4yLTUuMi0uMi03LjlsMC0zMi05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk4LjggMGMyLjUtMTAuNCA2LjUtMjAuMiAxMS44LTI5LjFMNDQuOCAxNTMuNmMtMTQuMS0xMC42LTE3LTMwLjctNi40LTQ0LjhzMzAuNy0xNyA0NC44LTYuNEwxOTIgMTg0YzEyLjMtNS4xIDI1LjgtOCA0MC04bDExMiAwYzE0LjIgMCAyNy43IDIuOCA0MCA4bDEwOC44LTgxLjZjMTQuMS0xMC42IDM0LjItNy43IDQ0LjggNi40eiJdfSxxeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtZnJvbS1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1vdXQiXSwiZjA4YiIsIk0xNjAgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6TTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMTkyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMTAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxOaWE9cXllLFJpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGFuZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmNyIsIk00NjYuOCAxODYuNWw0Mi41LTQyLjUgMzQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMjIzLjYgMTZjLTI5IDAtNTcuMyA5LjMtODAuNyAyNi41TDE2LjMgMTM1LjhjLTE3LjggMTMuMS0yMS42IDM4LjEtOC41IDU1LjlzMzguMSAyMS42IDU1LjkgOC41TDE4My40IDExMiAyOTYgMTEyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE1Mi4yIDBjMzMuOSAwIDY2LjUtMTMuNSA5MC41LTM3LjV6bS0zNTcuNSAxMzlMNjYuNyAzNjggMzIgMzY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDAwIDI4MCA0MDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LE9pYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJvb3B3YWZlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjU1MSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0zMTIuNiA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNTYgOTcuNiAyMjIuMSA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDMzLjkgMzMuOS00NS4zIDQ1LjMtNTYuNi01Ni42Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDU2LjYgNTYuNi00NS4zIDQ1LjMtMzMuOS0zMy45Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDk3LjYgMjU2IDYzLjcgMjg5LjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgNDUuMyA0NS4zLTU2LjYgNTYuNmMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDU2LjYtNTYuNiA0NS4zIDQ1LjMtMzMuOSAzMy45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSA0NS4zLTQ1LjMgNTYuNiA1Ni42YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTYuNi01Ni42IDQ1LjMtNDUuMyAzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTMzLjkgMzMuOS00NS4zLTQ1LjMgNTYuNi01Ni42YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTU2LjYgNTYuNi00NS4zLTQ1LjMgMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42ek0xNDIuOSAyNTZsNDUuMy00NS4zIDQ1LjMgNDUuMy00NS4zIDQ1LjMtNDUuMy00NS4zem02Ny45IDY3LjlsNDUuMy00NS4zIDQ1LjMgNDUuMy00NS4zIDQ1LjMtNDUuMy00NS4zek0yNzguNiAyNTZsNDUuMy00NS4zIDQ1LjMgNDUuMy00NS4zIDQ1LjMtNDUuMy00NS4zem0yMi42LTY3LjlsLTQ1LjMgNDUuMy00NS4zLTQ1LjMgNDUuMy00NS4zIDQ1LjMgNDUuM3oiXX0sRmlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkIixpY29uOlszMjAsNTEyLFtdLCJmMWFlIiwiTTk2IDY0QTY0IDY0IDAgMSAxIDIyNCA2NCA2NCA2NCAwIDEgMSA5NiA2NHptNDggMzIwbDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMODAgMjg3LjggNTkuMSAzMjFjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMFMtNC41IDMwMS45IDQuOSAyODdsMzkuOS02My4zQzY5LjcgMTg0IDExMy4yIDE2MCAxNjAgMTYwczkwLjMgMjQgMTE1LjIgNjMuNkwzMTUuMSAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBMMjQwIDI4Ny44IDI0MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0zMiAweiJdfSxCaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNlLWNyZWFtIixpY29uOlszODQsNTEyLFsxMjc4NDhdLCJmODEwIiwiTTMzNS4xIDE2MGMuNi01LjMgLjktMTAuNiAuOS0xNiAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFM0OCA2NC41IDQ4IDE0NGMwIDUuNCAuMyAxMC43IC45IDE2bC0uOSAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4bDI4OCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0uOSAwek02NCAzMDRMMTY5LjIgNTI5LjVjNC4xIDguOCAxMyAxNC41IDIyLjggMTQuNXMxOC42LTUuNyAyMi44LTE0LjVMMzIwIDMwNCA2NCAzMDR6Il19LGp5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlci1tb3VzZSIsaWNvbjpbMzg0LDUxMixbMTI4NDMzLCJtb3VzZSJdLCJmOGNjIiwiTTAgMTkybDE2OCAwIDAtMTkyLTggMEM3MS42IDAgMCA3MS42IDAgMTYwbDAgMzJ6bTAgNDhMMCAzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBsNjQgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTExMi0zODQgMHptMzg0LTQ4bDAtMzJDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMGwtOCAwIDAgMTkyIDE2OCAweiJdfSxIaWE9anllLHFpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYXVjZXQiLGljb246WzUxMiw1MTIsW10sImUwMDUiLCJNMTkyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDY0IDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyMi42IDIyLjYgMzIgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MCAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzLTE0LjMtMzItMzItMzJsLTM2LjEgMGMtMjAuMiAyOS01My45IDQ4LTkxLjkgNDhzLTcxLjctMTktOTEuOS00OEwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAyMi42LTIyLjZjNi02IDE0LjEtOS40IDIyLjYtOS40bDE4LjcgMCAwLTY0LTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgNjQgOTYgNjRsOTYgMHoiXX0samlhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF3YXJkIixpY29uOls0NDgsNTEyLFtdLCJmNTU5IiwiTTI0NS45LTI1LjljLTEzLjQtOC4yLTMwLjMtOC4yLTQzLjcgMC0yNC40IDE0LjktMzkuNSAxOC45LTY4LjEgMTguMy0xNS43LS40LTMwLjMgOC4xLTM3LjkgMjEuOS0xMy43IDI1LjEtMjQuOCAzNi4yLTQ5LjkgNDkuOS0xMy44IDcuNS0yMi4yIDIyLjItMjEuOSAzNy45IC43IDI4LjYtMy40IDQzLjctMTguMyA2OC4xLTguMiAxMy40LTguMiAzMC4zIDAgNDMuNyAxNC45IDI0LjQgMTguOSAzOS41IDE4LjMgNjguMS0uNCAxNS43IDguMSAzMC4zIDIxLjkgMzcuOSAyMi4xIDEyLjEgMzMuMyAyMi4xIDQ1LjEgNDEuNUw0Mi43IDQ1OC41Yy01LjkgMTEuOS0xLjEgMjYuMyAxMC43IDMyLjJsODYgNDNjMTEuNSA1LjcgMjUuNSAxLjQgMzEuNy05LjhsNTIuOC05NS4xIDUyLjggOTUuMWM2LjIgMTEuMiAyMC4yIDE1LjYgMzEuNyA5LjhsODYtNDNjMTEuOS01LjkgMTYuNy0yMC4zIDEwLjctMzIuMmwtNDguNi05Ny4yYzExLjctMTkuNCAyMy0yOS40IDQ1LjEtNDEuNSAxMy44LTcuNSAyMi4yLTIyLjIgMjEuOS0zNy45LS43LTI4LjYgMy40LTQzLjcgMTguMy02OC4xIDguMi0xMy40IDguMi0zMC4zIDAtNDMuNy0xNC45LTI0LjQtMTguOS0zOS41LTE4LjMtNjguMSAuNC0xNS43LTguMS0zMC4zLTIxLjktMzcuOS0yNS4xLTEzLjctMzYuMi0yNC44LTQ5LjktNDkuOS03LjUtMTMuOC0yMi4yLTIyLjItMzcuOS0yMS45LTI4LjYgLjctNDMuNy0zLjQtNjguMS0xOC4zek0yMjQgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LFZpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJvd25pbmciLGljb246WzY0MCw1MTIsW10sImU1NDUiLCJNMjY0IDg4YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTMzLjkgNjUuNmMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJsMTAuOSAzMi44YzkuNCAyOC4zIDMzLjIgNDkuNSA2Mi41IDU1LjYgNS42IDEuMiAxMS4zIDEuOCAxNy4xIDEuOGw4OCAwYzE3LjIgMCAzNC4zLTIuOCA1MC42LTguMmwxMTQuNC0zOC4xYzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41TDQyMy43IDIyOC41Yy04LjQgMi44LTE3IDUuMS0yNS43IDYuOWwtMjYuNSA4OC4zYy02LjEgMy40LTEyLjEgNy4zLTE3LjkgMTEuNy0yMi4xIDE2LjYtMjkuMSAxNi42LTUxLjIgMC0yNi4yLTE5LjctNTYuOS0zMC4yLTg3LjgtMzEuM2wyMC4yLTY3LjJjLTUxLjUtMTAuNy05My41LTQ4LjEtMTEwLjItOThsLTEwLjktMzIuOGMtNS42LTE2LjggMy41LTM0LjkgMjAuMi00MC41ek00MDMuNCA0MTIuMUMzNzkuMSA0MzAuMyAzNTEuMSA0NDggMzIwIDQ0OHMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LFVpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1lcmEtcm90YXRlIixpY29uOls1MTIsNTEyLFtdLCJlMGQ4IiwiTTEzOC43IDk2bDEwLjQtMzEuMkMxNTUuNiA0NS4yIDE3My45IDMyIDE5NC42IDMybDEyMi44IDBjMjAuNyAwIDM5IDEzLjIgNDUuNSAzMi44TDM3My4zIDk2IDQ0OCA5NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDc0LjcgMHpNOTYgMzA1LjljMCAzLjkgMS40IDcuNyA0IDEwLjZsNDggNTRjNi40IDcuMiAxNy42IDcuMiAyMy45IDBsNDgtNTRjMi42LTIuOSA0LTYuNyA0LTEwLjZsMC0xLjljMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwYzAtMzkuOCAzMi4yLTcyIDcyLTcyIDQuNCAwIDguNyAuNCAxMi45IDEuMmwzNC45LTM5LjNjLTE0LjYtNi40LTMwLjgtOS45LTQ3LjgtOS45LTY2LjMgMC0xMjAgNTMuNy0xMjAgMTIwbC0yNCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxLjl6bTE5Ni00Ni41Yy0yLjYgMi45LTQgNi43LTQgMTAuNmwwIDEuOWMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGMwIDM5LjgtMzIuMiA3Mi03MiA3Mi00LjQgMC04LjctLjQtMTIuOS0xLjJsLTM0LjkgMzkuM2MxNC43IDYuNCAzMC44IDkuOSA0Ny44IDkuOSA2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEuOWMwLTMuOS0xLjQtNy43LTQtMTAuNmwtNDgtNTRjLTYuNC03LjItMTcuNi03LjItMjMuOSAwbC00OCA1NHoiXX0sVnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1oZWFydHMiLGljb246WzUxMiw1MTIsWzEyODUyNSwiZ3Jpbi1oZWFydHMiXSwiZjU4NCIsIk0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTYgMC0yMy4zLTMuMS00NS45LTguOS02Ny4zIDUuNS0xMy41IDguOS0yOC40IDguOS00NC43IDAtNTMtNDMtOTYtOTYtOTZsLTIuOSAwYy0yLjUgMC01IC4xLTcuNCAuMy00Mi4xLTMwLjQtOTMuOC00OC4zLTE0OS43LTQ4LjNTMTQ4LjQgMTcuOSAxMDYuMyA0OC4zYy0yLjUtLjItNC45LS4zLTcuNC0uM0w5NiA0OGMtNTMgMC05NiA0My05NiA5NiAwIDE2LjMgMy41IDMxLjIgOC45IDQ0LjctNS44IDIxLjQtOC45IDQ0LTguOSA2Ny4zIDAgMTQxLjQgMTE0LjYgMjU2IDI1NiAyNTZ6TTM4Ni43IDMyNC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSA0MDQuMiAxMDUuNyAzNDIuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjIuOSA5NmMxMy41IDAgMjYuNSA1LjQgMzYgMTQuOWw5LjEgOS4xIDkuMS05LjFjOS41LTkuNSAyMi41LTE0LjkgMzYtMTQuOWwyLjkgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDUzLjQtNjYuOSA5NS43LTg5IDEwOC4yLTQuNCAyLjUtOS42IDIuNS0xNCAwLTIyLjEtMTIuNS04OS01NC44LTg5LTEwOC4yIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDIuOSAwem0tMTg4IDE0LjlsOS4xIDkuMSA5LjEtOS4xYzkuNS05LjUgMjIuNS0xNC45IDM2LTE0LjlsMi45IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA1My40LTY2LjkgOTUuNy04OSAxMDguMi00LjQgMi41LTkuNiAyLjUtMTQgMC0yMi4xLTEyLjUtODktNTQuOC04OS0xMDguMiAwLTI2LjUgMjEuNS00OCA0OC00OGwyLjkgMGMxMy41IDAgMjYuNSA1LjQgMzYgMTQuOXoiXX0sV2lhPVZ5ZSxHaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1mcmFnbWVudCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5NyIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxMjggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOCAxMTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0zMiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxLaWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXJpZmxlIixpY29uOls0NDgsNTEyLFtdLCJlNTRiIiwiTTEyOCAzOWMwLTEzIDEwLTIzLjggMjIuOS0yNC45TDMwMi43IDEuNEMzMTIgLjcgMzIwIDggMzIwIDE3LjRMMzIwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNkwxNTMgNjRjLTEzLjggMC0yNS0xMS4yLTI1LTI1em0xNy42IDU3bDE1Ni44IDBjMSA1LjIgMS42IDEwLjUgMS42IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtNS41IC42LTEwLjggMS42LTE2em0yMjggMzY0LjNMMzIwIDM2OS43IDMyMCA0ODBjMCAxLjMtLjEgMi41LS4yIDMuOEwxNDUuNSAyMzQuOWMxNi42LTcuMSAzNC42LTEwLjkgNTMuMy0xMC45bDUwLjQgMGMxNS45IDAgMzEuMyAyLjggNDUuOCA3LjlMMzg5LjkgNjcuN2MtNy43LTQuNC0xMC4zLTE0LjItNS45LTIxLjlzMTQuMi0xMC4zIDIxLjktNS45bDI3LjcgMTZjNy43IDQuNCAxMC4zIDE0LjIgNS45IDIxLjlsLTU1LjUgOTYuMSAxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzNjAuNyAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMjg4IDUxMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEwLjMtNTMuNiA5MC42Yy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFTLTUuNyA0MzguNyA1LjYgNDE5LjdMODEuNyAyOTAuOGM5LjQtMTUuOCAyMS43LTI5LjMgMzYtNDBMMjk5LjEgNTEwYy0zLjUgMS4zLTcuMiAyLTExLjEgMnpNMjY0IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFlpYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb24iLGljb246WzU3Niw1MTIsW10sImYyMDUiLCJNMTkyIDY0Qzg2IDY0IDAgMTUwIDAgMjU2Uzg2IDQ0OCAxOTIgNDQ4bDE5MiAwYzEwNiAwIDE5Mi04NiAxOTItMTkyUzQ5MCA2NCAzODQgNjRMMTkyIDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LFppYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsdW5ncy12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTA2NyIsIk0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNTEuM2M5LjYtNC44IDIwLjUtNy41IDMyLTcuNXMyMi40IDIuNyAzMiA3LjVMMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NTAuMSA0NTFjOCAxOC4zIDguMSAzOS4yIC4yIDU3LjUgMTAuMiAyLjMgMjAuNiAzLjUgMzEuMiAzLjUgNTIuMiAwIDk0LjUtNDIuMyA5NC41LTk0LjVsMC02LjJjMC0xMTEuMS0zNi43LTIxOS0xMDQuNC0zMDdMNDI4LjkgNDguN2MtOC4xLTEwLjYtMjAuNy0xNi43LTM0LTE2LjctMjMuNyAwLTQyLjkgMTkuMi00Mi45IDQyLjlsMCAxMzkuOWMxLjIgMi4yIDIuMiA0LjYgMy4xIDYuOSAyNi40LTExLjYgNTguMy02LjYgNzkuOSAxNXMyNi42IDUzLjYgMTUgNzkuOUM0NzcgMzI3LjIgNDk2IDM1My4zIDQ5NiAzODMuOHMtMTkgNTYuNy00NS45IDY3LjF6TTIyMC45IDIyMS44Yy45LTIuNCAyLTQuNyAzLjEtNi45bDAtMTM4LjVjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDEwLjUgMCAyMS0xLjIgMzEuMi0zLjUtNy45LTE4LjMtNy44LTM5LjMgLjItNTcuNS0yNi45LTEwLjQtNDUuOS0zNi42LTQ1LjktNjcuMXMxOS01Ni43IDQ1LjktNjcuMWMtMTEuNi0yNi40LTYuNi01OC4zIDE1LTc5LjlzNTMuNi0yNi42IDc5LjktMTV6TTE1MiA0MDhjMjguOCAwIDQzLjIgMzQuOCAyMi45IDU1LjItOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzIwLjQtMjAuNCA1NS4yLTUuOSA1NS4yIDIyLjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTI4LjggMzQuOC00My4yIDU1LjItMjIuOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTIwLjQtMjAuNC01LjktNTUuMiAyMi45LTU1LjIgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTI4LjggMC00My4yLTM0LjgtMjIuOS01NS4yIDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTIwLjQgMjAuNC01NS4yIDUuOS01NS4yLTIyLjkgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAyOC44LTM0LjggNDMuMi01NS4yIDIyLjktOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMyMC40IDIwLjQgNS45IDU1LjItMjIuOSA1NS4yLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTEwNC04MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS10ZW5uaXMtcGFkZGxlLWJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk1NSwicGluZy1wb25nLXBhZGRsZS1iYWxsIiwidGFibGUtdGVubmlzIl0sImY0NWQiLCJNOTcgMTI3bDY3LjQtNjcuNGMzOC4yLTM4LjIgOTAtNTkuNiAxNDQtNTkuNiAxMTIuNSAwIDIwMy43IDkxLjIgMjAzLjcgMjAzLjYgMCA0Ni40LTE1LjggOTEuMS00NC41IDEyNy0yMy42LTE2LjgtNTIuNC0yNi43LTgzLjUtMjYuNy0zMS4xIDAtNTkuOSA5LjktODMuNCAyNi42TDk3IDEyN3pNMjQwIDQ0OGMwIDkuNyAxIDE5LjEgMi44IDI4LjItMTkuOC01LjItMzgtMTUuNS01Mi43LTMwLjItMTIuMi0xMi4yLTMxLjktMTIuMi00NC4xIDBMOTYuNiA0OTUuNGMtMTAuNiAxMC42LTI1IDE2LjYtNDAgMTYuNi0zMS4yIDAtNTYuNi0yNS4zLTU2LjYtNTYuNiAwLTE1IDYtMjkuNCAxNi42LTQwbDQ5LjQtNDkuNGMxMi4yLTEyLjIgMTIuMi0zMS45IDAtNDQuMS0yMS43LTIxLjctMzMuOS01MS4yLTMzLjktODEuOSAwLTI5LjQgMTEuMS01Ny42IDMxLjEtNzlMMjY2LjYgMzY0LjZDMjQ5LjkgMzg4LjEgMjQwIDQxNi45IDI0MCA0NDh6bTE0NC05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sWGlhPUhvZSxRaWE9SG9lLEppYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1wYWNraW5nIixpY29uOls1NzYsNTEyLFtdLCJlNGM3IiwiTTIwOCAwbDgwIDAgMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNTYgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA4LjggMGM4LjItMTQuMSAxMi44LTMwLjUgMTIuOC00OGwwLTE2MGMxMC0xMy40IDE2LTMwIDE2LTQ4bDAtMzJjMC00NC4yLTM1LjgtODAtODAtODBsLTE3NiAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6TTMyIDMzNmwzMjAgMCAwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OEw4MCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTI4ek00OCAxOTJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGVyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2hhbGtib2FyZCIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZCIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTE3NiA1MTJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM2IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtNDggMTkyIDAgMCAxOTItMTkyIDAgMC0zMi02NCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzY4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQtMTIyLjcgMGMtNDUuNiAwLTg4LjUgMjEuNi0xMTUuNiA1OC4yTDE0LjMgMjYwLjljLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSx0cmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS10d28iLGljb246WzQ0OCw1MTIsWzk4NTddLCJmNTI4IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0zNTIgMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxVeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtYXJyb3ctbGVmdCIsaWNvbjpbNTEyLDUxMixbODY0NCwiZXhjaGFuZ2UiXSwiZjBlYyIsIk01MDIuNiAxNTAuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDQwMi43IDE2MCAzMiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsMzcwLjcgMC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6bS0zOTcuMyAzNTJsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDEwOS4zIDM1MiA0ODAgMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNzAuNyAwIDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHoiXX0sYXJhPVV5ZSxXeWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9vdGJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk0NCwiZm9vdGJhbGwtYmFsbCJdLCJmNDRlIiwiTTI2MS4xIDIyLjZjLTg5IDE4LTE1MC41IDYzLjQtMTkwIDEyMy45LTIzLjMgMzUuNi0zOC4xIDc1LjMtNDYuNyAxMTUuNUwyNTEuOSA0ODkuNGM4OS0xOCAxNTAuNS02My40IDE5MC4xLTEyMy45IDIzLjMtMzUuNiAzOC4xLTc1LjMgNDYuNy0xMTUuNUwyNjEuMSAyMi42em0yMzYgMTY4LjFjMy4yLTQyLjMgLjctODMuMy00LjgtMTE4LjctNC40LTI3LjgtMjYuOC00OC01My4xLTUxLjYtNDMtNS45LTgyLjItNy41LTExNy44LTUuNEw0OTcuMSAxOTAuNnpNMTkxLjcgNDk3LjFMMTUuOSAzMjEuNGMtMy4yIDQyLjMtLjcgODMuMyA0LjggMTE4LjcgNC40IDI3LjggMjYuOCA0OCA1My4xIDUxLjYgNDMgNS45IDgyLjIgNy41IDExNy44IDUuNHpNMjcxLjUgMTQzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sc3JhPVd5ZSxpcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stbW9uc3RlciIsaWNvbjpbNTc2LDUxMixbXSwiZjYzYiIsIk0zMzYgOTZsNDggNjQtMTI4IDAgMC02NCA4MCAwem0xMjggNjRMMzg3LjIgNTcuNkMzNzUuMSA0MS41IDM1Ni4xIDMyIDMzNiAzMkwyMjQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYtMTQ0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAxOC4xIDEwLjEgMzMuOSAyNC45IDQyLjEtLjUgNS43IDEuMSAxMS42IDQuNyAxNi40LTMuNyA2LjktNi44IDE0LjEtOSAyMS44LTExLjYgMS43LTIwLjYgMTEuNy0yMC42IDIzLjhsMCAxNmMwIDEyLjEgOC45IDIyLjEgMjAuNiAyMy44IDIuMiA3LjYgNS4zIDE0LjkgOSAyMS44LTcgOS40LTYuMyAyMi44IDIuMyAzMS4zbDExLjMgMTEuM2M4LjYgOC42IDIxLjkgOS4zIDMxLjMgMi4yIDYuOCAzLjcgMTQuMSA2LjggMjEuNyA5IDEuNyAxMS42IDExLjcgMjAuNiAyMy44IDIwLjZsMTYgMGMxMi4xIDAgMjIuMS04LjkgMjMuOC0yMC42IDcuNi0yLjIgMTQuOS01LjMgMjEuNy05IDkuNCA3IDIyLjggNi4zIDMxLjMtMi4ybDExLjMtMTEuM2M4LjYtOC42IDkuMy0yMS45IDIuMy0zMS4zIDMuNy02LjggNi44LTE0LjEgOS0yMS43IDExLjYtMS43IDIwLjYtMTEuNyAyMC42LTIzLjhsMC0xNmMwLTEyLjEtOC45LTIyLjEtMjAuNi0yMy44LTIuMi03LjYtNS4zLTE0LjktOS0yMS43IDIuNC0zLjIgMy45LTYuOCA0LjUtMTAuNWwxMTQuMiAwYy42IDMuNyAyLjEgNy4zIDQuNSAxMC41LTMuNyA2LjktNi44IDE0LjEtOSAyMS44LTExLjYgMS43LTIwLjYgMTEuNy0yMC42IDIzLjhsMCAxNmMwIDEyLjEgOC45IDIyLjEgMjAuNiAyMy44IDIuMiA3LjYgNS4zIDE0LjkgOSAyMS44LTcgOS40LTYuMyAyMi44IDIuMiAzMS4zbDExLjMgMTEuM2M4LjUgOC42IDIxLjkgOS4zIDMxLjMgMi4yIDYuOCAzLjcgMTQuMSA2LjggMjEuNyA5IDEuNyAxMS42IDExLjcgMjAuNiAyMy44IDIwLjZsMTYgMGMxMi4xIDAgMjIuMS04LjkgMjMuOC0yMC42IDcuNi0yLjIgMTQuOS01LjMgMjEuOC05IDkuNCA3IDIyLjggNi4zIDMxLjMtMi4ybDExLjMtMTEuM2M4LjYtOC42IDkuMy0yMS45IDIuMi0zMS4zIDMuNy02LjggNi44LTE0LjEgOS0yMS43IDExLjYtMS43IDIwLjYtMTEuNyAyMC42LTIzLjhsMC0xNmMwLTEyLjEtOC45LTIyLjEtMjAuNi0yMy44LTIuMi03LjYtNS4zLTE0LjktOS0yMS43IDMuNi00LjggNS4yLTEwLjcgNC43LTE2LjQgMTQuOC04LjIgMjQuOS0yMy45IDI0LjktNDIuMWwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMjggMzM2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMjcyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LHJyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhc3RlcmlzayIsaWNvbjpbNDQ4LDUxMixbMTAwMzMsNjE1NDVdLCIyYSIsIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2OC42IDE0NC04My4xYzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN3MzLjYgMzQuOS0xMS43IDQzLjdMMjg4IDI1NiA0MzIgMzM5LjFjMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN3MtMjguNCAyMC42LTQzLjcgMTEuN0wyNTYgMzExLjQgMjU2IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2OC42LTE0NCA4My4xYy0xNS4zIDguOC0zNC45IDMuNi00My43LTExLjdTLjcgMzQ4IDE2IDMzOS4xTDE2MCAyNTYgMTYgMTcyLjlDLjcgMTY0LTQuNSAxNDQuNSA0LjMgMTI5LjFTMzIuNyAxMDguNiA0OCAxMTcuNEwxOTIgMjAwLjYgMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxxb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS1mdWxsIixpY29uOls2NDAsNTEyLFsxMjgyNjcsImJhdHRlcnkiLCJiYXR0ZXJ5LTUiXSwiZjI0MCIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMzA0IDB6Il19LG9yYT1xb2UsbnJhPXFvZSxscmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtZHJlc3MiLGljb246WzMyMCw1MTIsW10sImU1OWMiLCJNMjI0IDY0QTY0IDY0IDAgMSAwIDk2IDY0IDY0IDY0IDAgMSAwIDIyNCA2NHpNODggNDAwbDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDE2IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTcuOCAwYzEwLjkgMCAxOC42LTEwLjcgMTUuMi0yMS4xbC0zMS4xLTkzLjQgMjguNyAzNy44YzEwLjcgMTQuMSAzMC44IDE2LjggNDQuOCA2LjJzMTYuOC0zMC43IDYuMi00NC44TDI1NC42IDIwN2MtMjIuNC0yOS42LTU3LjUtNDctOTQuNi00N3MtNzIuMiAxNy40LTk0LjYgNDdMNi41IDI4NC43Yy0xMC43IDE0LjEtNy45IDM0LjIgNi4yIDQ0LjhzMzQuMiA3LjkgNDQuOC02LjJMODYuMiAyODUuNSA1NSAzNzguOUM1MS42IDM4OS4zIDU5LjMgNDAwIDcwLjIgNDAwTDg4IDQwMHoiXX0sR3llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcy1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MzcsImtpc3MtYmVhbSJdLCJmNTk3IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxjcmE9R3llLEt5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1jYW4tYXJyb3ctdXAiLGljb246WzQ0OCw1MTIsWyJ0cmFzaC1yZXN0b3JlLWFsdCJdLCJmODJhIiwiTTE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMUMxNDEuMS03LjIgMTUzLjMtMTYgMTY3LjEtMTZ6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em0yMDkgNzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6Il19LGRyYT1LeWUsdXJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbnQiLGljb246WzUxMiw1MTIsW10sImYwMzEiLCJNMjg1LjEgNTAuN0MyNzkuOSAzOS4zIDI2OC41IDMyIDI1NiAzMnMtMjMuOSA3LjMtMjkuMSAxOC43TDU5LjUgNDE2IDQ4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02LjEgMCAyMi00OCAyMDguMyAwIDIyIDQ4LTYuMSAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTExLjUgMC0xNjcuNC0zNjUuM3pNMzMwLjggMzA0TDE4MS4yIDMwNCAyNTYgMTQwLjggMzMwLjggMzA0eiJdfSxwcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZS1ob2xlIixpY29uOls1MTIsNTEyLFtdLCJlNGMzIiwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIzMi42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0yMy43LTEyLjktNDQuNC0zMi01NS40TDI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMCAzODRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNDRjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMTQ0IDM4MS45IDE0NCAzMjBsMC0xNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzg0eiJdfSxocmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMtY292aWQiLGljb246WzUxMiw1MTIsW10sImU0YTgiLCJNMTkyIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCAzMy42YzMwLjcgNC4yIDU4LjggMTYuMyA4Mi4zIDM0LjFMMzg2LjEgOTIgMzc0LjggODAuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjYgNTYuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0xMS4zLTExLjMtMjMuOCAyMy44YzE3LjkgMjMuNSAyOS45IDUxLjcgMzQuMSA4Mi4zbDMzLjYgMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE2LTMzLjYgMGMtNC4yIDMwLjctMTYuMyA1OC44LTM0LjEgODIuM2wyMy44IDIzLjggMTEuMy0xMS4zYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNTYuNiA1Ni42Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDExLjMtMTEuMy0yMy44LTIzLjhjLTIzLjUgMTcuOS01MS43IDI5LjktODIuMyAzNC4xbDAgMzMuNiAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0zMy42Yy0zMC43LTQuMi01OC44LTE2LjMtODIuMy0zNC4xbC0yMy44IDIzLjggMTEuMyAxMS4zYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNDYuNyA0MDguN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExLjMgMTEuMyAyMy44LTIzLjhDOTcuOSAzMzguOCA4NS44IDMxMC43IDgxLjYgMjgwbC0zMy42IDAgMCAxNmMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDMwOS4zIDAgMjk2bDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE2IDMzLjYgMGM0LjItMzAuNyAxNi4zLTU4LjggMzQuMS04Mi4zTDkyIDEyNS45IDgwLjYgMTM3LjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTYuNi01Ni42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwxMjUuOSA5MiAxNDkuNyAxMTUuN2MyMy41LTE3LjkgNTEuNy0yOS45IDgyLjMtMzQuMWwwLTMzLjYtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTMyIDIwMGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGZyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBkZiIsaWNvbjpbNTc2LDUxMixbXSwiZjFjMSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDgwIDAgMC0xMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTc2IDAgMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNMjQwIDM4MGMtMTEgMC0yMCA5LTIwIDIwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMjggMTIgMGMzMy4xIDAgNjAtMjYuOSA2MC02MHMtMjYuOS02MC02MC02MGwtMzIgMHptMzIgODBsLTEyIDAgMC00MCAxMiAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMHptOTYtODBjLTExIDAtMjAgOS0yMCAyMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBsMzIgMGMyOC43IDAgNTItMjMuMyA1Mi01MmwwLTY0YzAtMjguNy0yMy4zLTUyLTUyLTUybC0zMiAwem0yMCAxMjhsMC04OCAxMiAwYzYuNiAwIDEyIDUuNCAxMiAxMmwwIDY0YzAgNi42LTUuNCAxMi0xMiAxMmwtMTIgMHptODgtMTA4bDAgMTI4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNDQgMjggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI4IDAgMC0yNCAyOCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNDggMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxtcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZ3VhZ2UiLGljb246WzU3Niw1MTIsW10sImYxYWIiLCJNMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOS42IDAtOC40IDIzLjFjLTE2LjQgNDUuMi00MS4xIDg2LjUtNzIuMiAxMjIgMTQuMiA4LjggMjkgMTYuNiA0NC40IDIzLjVsNTAuNCAyMi40IDYyLjItMTQwYzUuMS0xMS42IDE2LjYtMTkgMjkuMi0xOXMyNC4xIDcuNCAyOS4yIDE5bDEyOCAyODhjNy4yIDE2LjItLjEgMzUuMS0xNi4yIDQyLjJzLTM1LjEtLjEtNDIuMi0xNi4ybC0yMC00NS0xNTcuNSAwLTIwIDQ1Yy03LjIgMTYuMi0yNi4xIDIzLjQtNDIuMiAxNi4ycy0yMy40LTI2LjEtMTYuMi00Mi4ybDM5LjgtODkuNS01MC40LTIyLjRjLTIzLTEwLjItNDUtMjIuNC02NS44LTM2LjQtMjEuMyAxNy4yLTQ0LjYgMzIuMi02OS41IDQ0LjdMNzguMyAzODAuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwzNC41LTE3LjNjMTYuMy04LjIgMzEuOC0xNy43IDQ2LjQtMjguMy0xMy44LTEyLjctMjYuOC0yNi40LTM4LjktNDAuOUw4MS42IDIyNC43Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsMTAuMiAxMi4yYzExLjUgMTMuOSAyNC4xIDI2LjggMzcuNCAzOC43IDI3LjUtMzAuNCA0OS4yLTY2LjEgNjMuNS0xMDUuNGwuNS0xLjItMjEwLjMgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGw5NiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQxNiAyNzAuOEwzNjUuNyAzODQgNDY2LjMgMzg0IDQxNiAyNzAuOHoiXX0sWXllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oYWx2ZWQiLGljb246WzUxMiw1MTIsWyJzaGllbGQtYWx0Il0sImYzZWQiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAwem0wIDY2LjhsMCAzNzguMWMxMzgtNjYuOCAxNzUuMS0yMTQuOCAxNzYtMzAzLjRsLTE3Ni03NC42IDAgMHoiXX0sZ3JhPVl5ZSxicmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtdXAiLGljb246WzMyMCw1MTIsW10sImYwZDgiLCJNMTQwLjMgMTM1LjJjMTIuNi0xMC4zIDMxLjEtOS41IDQyLjggMi4ybDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzAxLjQgMzIwIDI4OC41IDMyMGwtMjU2IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhTLjcgMjc0LjUgOS45IDI2NS40bDEyOC0xMjggMi40LTIuMnoiXX0sWnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcGVuIixpY29uOls2NDAsNTEyLFsxMjgyMjEsImZpbGUtZWRpdCJdLCJmMzFjIiwiTTEyOC4xIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0Ni4yIDAgMTAuOS01NC41YzQuMy0yMS43IDE1LTQxLjYgMzAuNi01Ny4ybDEzMi4yLTEzMi4yIDAtOTcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzMjIuOCAxOC43QzMxMC44IDYuNyAyOTQuNSAwIDI3Ny42IDBMMTI4LjEgMHpNMzg5LjYgMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOTMuNSAxMTcuNSAxMTcuNXpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44eiJdfSx2cmE9WnllLFh5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYmlraW5nIixpY29uOls1NzYsNTEyLFsxMjg2OTIsImJpa2luZyJdLCJmODRhIiwiTTM2OCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTI3LjIgNjRsLTYxLjgtNDguOGMtMTcuMy0xMy42LTQxLjctMTMuOC01OS4xLS4zbC04My4xIDY0LjJjLTMwLjcgMjMuOC0yOC41IDcwLjggNC4zIDkxLjZMMjU2IDMwNS4xIDI1NiA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOGMwLTEwLjctNS4zLTIwLjctMTQuMi0yNi42TDI2MyAyMzIuOSAzMjMuMyAxODQuNCAzNjQgMjE3YzUuNyA0LjUgMTIuNyA3IDIwIDdsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTIuOCAwek0xMTIgNTEyYTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHptMzUyIDBhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0eiJdfSx4cmE9WHllLFF5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW9wZW4tcmVhZGVyIixpY29uOls1MTIsNTEyLFsiYm9vay1yZWFkZXIiXSwiZjVkYSIsIk0yNTYgMTUyYTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMSAwIDAgMTc2em0wIDI5OC43bDAtMTQ5LjNjMTYuMy02LjggMzIuOS0xMy43IDQ5LjctMjAuNyAzOS0xNi4yIDgwLjgtMjQuNiAxMjMuMS0yNC42bDE5LjIgMCAwIDE2MC0xOS4yIDBjLTU5LjEgMC0xMTcuNyAxMS43LTE3Mi4zIDM0LjVsLS41IC4yek0yNTYgMjMybC0yNS4xLTEwLjVDMTg0LjEgMjAyIDEzMy45IDE5MiA4My4yIDE5Mkw0OCAxOTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNWwxMi44IDUuM2M3LjkgMy4zIDE2LjcgMy4zIDI0LjYgMGwxMi44LTUuM2M0Ni44LTE5LjUgOTctMjkuNSAxNDcuNy0yOS41bDM1LjIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNUwyNTYgMjMyeiJdfSx5cmE9UXllLHdyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlci1kcm9wbGV0IixpY29uOlszODQsNTEyLFtdLCJlNGY1IiwiTTMyIDBDMjMuMSAwIDE0LjYgMy43IDguNiAxMC4yUy0uNiAyNS40IC4xIDM0LjNMMjguOSA0MzcuN2MzIDQxLjkgMzcuOCA3NC4zIDc5LjggNzQuM2wxNjYuNiAwYzQyIDAgNzYuOC0zMi40IDc5LjgtNzQuM0wzODMuOSAzNC4zYy42LTguOS0yLjQtMTcuNi04LjUtMjQuMVMzNjAuOSAwIDM1MiAwTDMyIDB6TTgzIDI5Ny41TDY2LjQgNjQgMzE3LjYgNjQgMzAxIDI5Ny41IDI4OCAzMDRjLTIwLjEgMTAuMS00My45IDEwLjEtNjQgMHMtNDMuOS0xMC4xLTY0IDAtNDMuOSAxMC4xLTY0IDBsLTEzLTYuNXpNMjU2IDE5NmMwLTI0LTMzLjctNzAuMS01Mi4yLTkzLjUtNi4xLTcuNy0xNy41LTcuNy0yMy42IDAtMTguNSAyMy40LTUyLjIgNjkuNS01Mi4yIDkzLjUgMCAzMy4xIDI4LjcgNjAgNjQgNjBzNjQtMjYuOSA2NC02MHoiXX0sSnllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLWJyb2FkY2FzdCIsaWNvbjpbNTc2LDUxMixbImJyb2FkY2FzdC10b3dlciJdLCJmNTE5IiwiTTg3LjkgMTEuNWMtMTEuMy02LjktMjYuMS0zLjItMzMgOC4xLTI0LjggNDEtMzkgODkuMS0zOSAxNDAuNHMxNC4yIDk5LjQgMzkgMTQwLjRjNi45IDExLjMgMjEuNiAxNSAzMyA4LjFzMTUtMjEuNiA4LjEtMzNDNzUuNyAyNDEuOSA2NCAyMDIuMyA2NCAxNjBTNzUuNyA3OC4xIDk2LjEgNDQuNGM2LjktMTEuMyAzLjItMjYuMS04LjEtMzN6bTQwMC4xIDBjLTExLjMgNi45LTE1IDIxLjYtOC4xIDMzIDIwLjQgMzMuNyAzMi4xIDczLjMgMzIuMSAxMTUuNnMtMTEuNyA4MS45LTMyLjEgMTE1LjZjLTYuOSAxMS4zLTMuMiAyNi4xIDguMSAzM3MyNi4xIDMuMiAzMy04LjFjMjQuOC00MSAzOS04OS4xIDM5LTE0MC40UzU0NS44IDYwLjYgNTIxIDE5LjZjLTYuOS0xMS4zLTIxLjYtMTUtMzMtOC4xek0zMjAgMjE1LjRjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNCAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRMMjU2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjY0LjZ6TTE4MC4yIDkxYzcuMi0xMS4yIDMuOS0yNi03LjItMzMuMnMtMjYtMy45LTMzLjIgNy4yYy0xNy42IDI3LjQtMjcuOCA2MC0yNy44IDk1czEwLjIgNjcuNiAyNy44IDk1YzcuMiAxMS4yIDIyIDE0LjQgMzMuMiA3LjJzMTQuNC0yMiA3LjItMzMuMmMtMTIuOC0xOS45LTIwLjItNDMuNi0yMC4yLTY5czcuNC00OS4xIDIwLjItNjl6TTQzNi4yIDY1Yy03LjItMTEuMi0yMi0xNC40LTMzLjItNy4ycy0xNC40IDIyLTcuMiAzMy4yYzEyLjggMTkuOSAyMC4yIDQzLjYgMjAuMiA2OXMtNy40IDQ5LjEtMjAuMiA2OWMtNy4yIDExLjItMy45IDI2IDcuMiAzMy4yczI2IDMuOSAzMy4yLTcuMmMxNy42LTI3LjQgMjcuOC02MCAyNy44LTk1cy0xMC4yLTY3LjYtMjcuOC05NXoiXX0sa3JhPUp5ZSxld2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWluaW1pemUiLGljb246WzUxMiw1MTIsWyJjb21wcmVzcy1hcnJvd3MtYWx0Il0sImY3OGMiLCJNNDU2IDIyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMlMzMjIuMSAzMi4yIDMyOSAzOWw0MCA0MCA3My40LTczLjRDNDQ2IDIgNDUwLjkgMCA0NTYgMHMxMCAyIDEzLjcgNS43bDM2LjcgMzYuN0M1MTAgNDYgNTEyIDUwLjkgNTEyIDU2cy0yIDEwLTUuNyAxMy43TDQzMyAxNDMgNDczIDE4M2M2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzQ2NS43IDIyNCA0NTYgMjI0em0wIDY0YzkuNyAwIDE4LjUgNS44IDIyLjIgMTQuOHMxLjcgMTkuMy01LjIgMjYuMmwtNDAgNDAgNzMuNCA3My40YzMuNiAzLjYgNS43IDguNSA1LjcgMTMuN3MtMiAxMC01LjcgMTMuN2wtMzYuNyAzNi43QzQ2NiA1MTAgNDYxLjEgNTEyIDQ1NiA1MTJzLTEwLTItMTMuNy01LjdMMzY5IDQzMyAzMjkgNDczYy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzI4OCA0NjUuNyAyODggNDU2bDAtMTQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE0NCAwem0tMjU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNDAtNDAtNzMuNCA3My40QzY2IDUxMCA2MS4xIDUxMiA1NiA1MTJzLTEwLTItMTMuNy01LjdMNS43IDQ2OS43QzIgNDY2IDAgNDYxLjEgMCA0NTZzMi0xMCA1LjctMTMuN0w3OSAzNjkgMzkgMzI5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzQ2LjMgMjg4IDU2IDI4OGwxNDQgMHpNNTYgMjI0Yy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhTMzIuMiAxODkuOSAzOSAxODNMNzkgMTQzIDUuNyA2OS43QzIgNjYgMCA2MS4xIDAgNTZTMiA0NiA1LjcgNDIuM0w0Mi4zIDUuN0M0NiAyIDUwLjkgMCA1NiAwUzY2IDIgNjkuNyA1LjdMMTQzIDc5IDE4MyAzOWM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzIyNCA0Ni4zIDIyNCA1NmwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNEw1NiAyMjR6Il19LFNyYT1ld2UsX3JhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0LXRvLWNpdHkiLGljb246WzY0MCw1MTIsW10sImU0YjMiLCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI1NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQxNnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzUyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNzYtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNTMgMTY3bDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMHoiXX0sTXJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1tZWRpY2FsIixpY29uOls2NDAsNTEyLFtdLCJmODEyIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwLTY0IDAgMC0yNDAtMzg0IDAgMCAyNDAtNjQgMCAwLTI0MHpNMCA0MDMuMkMwIDM5Mi42IDguNiAzODQgMTkuMiAzODRsNjAxLjYgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4yIDAgNDIuNC0zNC40IDc2LjgtNzYuOCA3Ni44TDc2LjggNDgwQzM0LjQgNDgwIDAgNDQ1LjYgMCA0MDMuMnpNMjg4IDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0senJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyZWFkLXNsaWNlIixpY29uOls1MTIsNTEyLFtdLCJmN2VjIiwiTTY0IDQzMmwwLTE3NmMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMTYuNSA1MTItMjE2LjUgNTEyIDAgMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI4OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHoiXX0sQ3JhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdsb2JlIixpY29uOls1MTIsNTEyLFsxMjc3NjBdLCJmMGFjIiwiTTM1MS45IDI4MGwtMTkwLjkgMGMyLjkgNjQuNSAxNy4yIDEyMy45IDM3LjUgMTY3LjQgMTEuNCAyNC41IDIzLjcgNDEuOCAzNS4xIDUyLjQgMTEuMiAxMC41IDE4LjkgMTIuMiAyMi45IDEyLjJzMTEuNy0xLjcgMjIuOS0xMi4yYzExLjQtMTAuNiAyMy43LTI4IDM1LjEtNTIuNCAyMC4zLTQzLjUgMzQuNi0xMDIuOSAzNy41LTE2Ny40ek0xNjAuOSAyMzJsMTkwLjkgMEMzNDkgMTY3LjUgMzM0LjcgMTA4LjEgMzE0LjQgNjQuNiAzMDMgNDAuMiAyOTAuNyAyMi44IDI3OS4zIDEyLjIgMjY4LjEgMS43IDI2MC40IDAgMjU2LjQgMHMtMTEuNyAxLjctMjIuOSAxMi4yYy0xMS40IDEwLjYtMjMuNyAyOC0zNS4xIDUyLjQtMjAuMyA0My41LTM0LjYgMTAyLjktMzcuNSAxNjcuNHptLTQ4IDBDMTE2LjQgMTQ2LjQgMTM4LjUgNjYuOSAxNzAuOCAxNC43IDc4LjcgNDcuMyAxMC45IDEzMS4yIDEuNSAyMzJsMTExLjQgMHpNMS41IDI4MGM5LjQgMTAwLjggNzcuMiAxODQuNyAxNjkuMyAyMTcuMy0zMi4zLTUyLjItNTQuNC0xMzEuNy01Ny45LTIxNy4zTDEuNSAyODB6bTM5OC40IDBjLTMuNSA4NS42LTI1LjYgMTY1LjEtNTcuOSAyMTcuMyA5Mi4xLTMyLjcgMTU5LjktMTE2LjUgMTY5LjMtMjE3LjNsLTExMS40IDB6bTExMS40LTQ4QzUwMS45IDEzMS4yIDQzNC4xIDQ3LjMgMzQyIDE0LjcgMzc0LjMgNjYuOSAzOTYuNCAxNDYuNCAzOTkuOSAyMzJsMTExLjQgMHoiXX0sVHJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1taW51cyIsaWNvbjpbNTEyLDUxMixbXSwiZjY1ZCIsIk00NDggNDQ4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek0xODQgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sJHJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2stZmFjZSIsaWNvbjpbNjQwLDUxMixbXSwiZTFkNyIsIk0zMjAgNjRjLTI3LjIgMC01My44IDgtNzYuNCAyMy4xbC0zNy4xIDI0LjhjLTE1LjggMTAuNS0zNC4zIDE2LjEtNTMuMyAxNi4xTDY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA3OC43YzAgNjIuNiA0NS4yIDExNiAxMDcgMTI2LjNsOTcuOSAxNi4zYzMzIDIyIDcyLjYgMzQuNyAxMTUuMSAzNC43czgyLjItMTIuOCAxMTUuMS0zNC43TDUzMyAzOTYuOWM2MS43LTEwLjMgMTA3LTYzLjcgMTA3LTEyNi4zbDAtNzguN2MwLTM1LjMtMjguNy02NC02NC02NGwtODkuMiAwYy0xOSAwLTM3LjUtNS42LTUzLjMtMTYuMUwzOTYuNCA4Ny4xQzM3My44IDcyIDM0Ny4yIDY0IDMyMCA2NHpNMTM1LjkgMzM2LjlsLTE4LjQtMy4xQzg2LjYgMzI4LjcgNjQgMzAyIDY0IDI3MC43bDAtNzguNyA0OCAwIDAgNDhjMCAzNSA4LjYgNjcuOSAyMy45IDk2Ljl6bTM4Ni42LTMuMWwtMTguNCAzLjFDNTE5LjQgMzA3LjkgNTI4IDI3NSA1MjggMjQwbDAtNDggNDggMCAwIDc4LjdjMCAzMS4zLTIyLjYgNTgtNTMuNSA2My4xek0xOTIgMjMyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTU2IDU2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sRHJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbmciLGljb246WzUxMiw1MTIsW10sImY1NWMiLCJNNDQ4LjUgMzg0YzAgNDEuNS0xMy4xIDc5LjktMzUuNSAxMTEuMy03LjkgMTEuMS0yMS4yIDE2LjctMzQuOCAxNi43bC0yNDMuMyAwYy0xMy43IDAtMjYuOS01LjYtMzQuOC0xNi43LTIyLjQtMzEuNC0zNS41LTY5LjgtMzUuNS0xMTEuMyAwLTcxLjEgMzguNi0xMzMuMSA5Ni0xNjYuM2wwLTE1My43Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUzLjdjMTQuMiA4LjIgMjcuMiAxOC4yIDM4LjggMjkuNmwzOS4zLTM5LjMtNy03Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYgMTYgMzIgMzIgNDggNDggOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNy03LTQzLjMgNDMuM2MxNy4zIDI4LjkgMjcuMyA2Mi42IDI3LjMgOTguOHpNMjg4LjUgNjRsLTY0IDAgMCAxOTAuNi0zMiAxOC41Yy0xOS41IDExLjMtMzUuNyAyNy41LTQ2LjkgNDYuOWwyMjEuOCAwYy0xMS4yLTE5LjQtMjcuNC0zNS42LTQ2LjktNDYuOWwtMzItMTguNSAwLTE5MC42eiJdfSxMcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1icmlkZ2UiLGljb246WzU3Niw1MTIsW10sImU1NjMiLCJNMzIgMzJsMjA4IDAgMCA2NC0yNCAwIDAgNjQgMjQgMCAwIDEyOS4zYy00NS40IDcuNi04MCA0Ny4xLTgwIDk0LjdsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NGMwLTM4LjgtMjYuNC03Mi42LTY0LTgybDAtMTEyIDQwIDAgMC02NC04IDBDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMyek04OCA5NmwwIDY0IDgwIDAgMC02NC04MCAwek0zMzYgMzJsNzIgMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA3MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC03MiAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi03MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTM1MmMwLTI2LjUgMjEuNS00OCA0OC00OHptOTYgMTYwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sdHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTktMSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cC1hbHQiXSwiZjg4NyIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTM2NS4xIDIwNi42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAxMTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDIuNyAxODJjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnoiXX0sRXJhPXR3ZSxQcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4tY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTUyZSIsIk0yNTYuMyA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC03Ny44IDBjNC0xNS40IDIuNC0zMi42LTYuNy00OC4yTDM1NC42IDI1NiAzNjguMyAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy02LjEgMC0xMS40IDMuNC0xNC4xIDguNWwtNDIuNi03M2MtNi0xMC4yLTE0LjEtMTgtMjMuMy0yMy4zbDAtNTYuMnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYwIDk2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bS0yNzItNjQuN2wtNjUuMSAxMTEuNiAzMy4xIDMzLjEgNDgtNDggNDAuNCAwLTU2LjQtOTYuN3ptLTI3LjYtNDcuOWMxMi4zLTIxLjIgNDIuOS0yMS4yIDU1LjMgMEw0MjAuMyA0NjMuOWMxMi40IDIxLjMtMi45IDQ4LjEtMjcuNiA0OC4xTDU2IDUxMmMtMjQuNyAwLTQwLjEtMjYuOC0yNy42LTQ4LjFMMTk2LjcgMTc1LjR6Il19LGpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLTktMSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy1kZXNjIiwic29ydC1udW1lcmljLWRvd24tYWx0Il0sImY4ODYiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xMzQuNS0xODRsMTEuNy0xOGMtMzIuOS05LjktNTYuOC00MC41LTU2LjgtNzYuNiAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMjIuOS02LjYgNDUuMy0xOS4xIDY0LjVsLTQyLjEgNjQuOWMtOS42IDE0LjgtMjkuNCAxOS4xLTQ0LjMgOS40cy0xOS4xLTI5LjQtOS40LTQ0LjN6TTQyNCAxMTJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptLTUuMyAxODJjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZsMCA5NiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6Il19LElyYT1qb2UsQXJhPWpvZSxhd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTIwOCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em0xMjggNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NC0xNC4zIDY0LTMyIDY0eiJdfSxOcmE9YXdlLFJyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb29wIixpY29uOls1MTIsNTEyLFtdLCJmNjE5IiwiTTI1NC40IDYuNmMzLjUtNC4zIDktNi41IDE0LjUtNS43IDQ2LjkgNi4zIDgzLjEgNDYuNSA4My4xIDk1LjEgMCAxMS4yLTEuOSAyMi01LjUgMzJsNS41IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAxOS4xLTguNCAzNi4zLTIxLjcgNDhsMTMuNyAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjMuMi0xMSA0My44LTI4IDU3IDM0LjEgNS43IDYwIDM1LjMgNjAgNzEgMCAzOS44LTMyLjIgNzItNzIgNzJMNzIgNTEyYy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTM1LjcgMjUuOS02NS4zIDYwLTcxLTE3LTEzLjItMjgtMzMuOC0yOC01NyAwLTM5LjggMzIuMi03MiA3Mi03MmwxMy43IDBjLTEzLjMtMTEuNy0yMS43LTI4LjktMjEuNy00OCAwLTM1LjMgMjguNy02NCA2NC02NGwxNi4yIDBjNDQuMS0uMSA3OS44LTM1LjkgNzkuOC04MCAwLTkuMi0xLjUtMTcuOS00LjMtMjYuMS0xLjgtNS4yLS44LTExLjEgMi44LTE1LjR6Il19LE9yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaGFybWFjaGFrcmEiLGljb246WzUxMiw1MTIsWzk3ODRdLCJmNjU1IiwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMC4xIDYuNCAxOS41IDExLjYgMjhsLTQ4LjYgNDIuNXptMTAzLjggNjVjLTI0LjQtNC4xLTQ2LjktMTMuNy02Ni4yLTI3LjRsNDIuNS00OC42YzguNSA1LjMgMTggOS4yIDI4IDExLjZsLTQuMyA2NC40em0xMTkuNC0yNy40Yy0xOS4zIDEzLjgtNDEuOSAyMy40LTY2LjIgMjcuNGwtNC4zLTY0LjRjMTAtMi40IDE5LjUtNi40IDI4LTExLjZsNDIuNSA0OC42em02NS0xMDMuOGMtNC4xIDI0LjQtMTMuNyA0Ni45LTI3LjQgNjYuMmwtNDguNi00Mi41YzUuMy04LjYgOS4yLTE4IDExLjYtMjhsNjQuNCA0LjN6bS02NS0xNTYuOWwtNDIuNSA0OC42Yy04LjYtNS4zLTE4LTkuMi0yOC0xMS42bDQuMy02NC40YzI0LjQgNC4xIDQ2LjkgMTMuNyA2Ni4yIDI3LjV6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxzd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS1xdWFydGVyIixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS0yIl0sImYyNDMiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNjQgMHoiXX0sRnJhPXN3ZSxCcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5raCIsaWNvbjpbMzIwLDUxMixbOTc2NV0sImY2NDQiLCJNOTYgMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRjMCA0MS42LTIwLjcgNzYuNi00Ni42IDEwNC4xLTUuOSA2LjItMTEuOCAxMS44LTE3LjQgMTYuNy01LjYtNC45LTExLjUtMTAuNS0xNy40LTE2LjctMjUuOS0yNy41LTQ2LjYtNjIuNi00Ni42LTEwNC4xek0xNjAgMEM4OS4zIDAgMzIgNTcuMyAzMiAxMjggMzIgMTgwLjQgNTMuNSAyMjMuNSA3OC44IDI1NkwzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMCAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ2LjggMEMyNjYuNSAyMjMuNSAyODggMTgwLjQgMjg4IDEyOCAyODggNTcuMyAyMzAuNyAwIDE2MCAweiJdfSxIcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhbW9uZCIsaWNvbjpbNTEyLDUxMixbOTgzMF0sImYyMTkiLCJNMTcgMjE1TDIxNSAxN0MyMjUuOSA2LjEgMjQwLjYgMCAyNTYgMHMzMC4xIDYuMSA0MSAxN0w0OTUgMjE1YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MUwyOTcgNDk1Yy0xMC45IDEwLjktMjUuNiAxNy00MSAxN3MtMzAuMS02LjEtNDEtMTdMMTcgMjk3QzYuMSAyODYuMSAwIDI3MS40IDAgMjU2czYuMS0zMC4xIDE3LTQxeiJdfSxxcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Vic2NyaXB0IixpY29uOls1NzYsNTEyLFtdLCJmMTJjIiwiTTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOC04OS42IDEyOC0xNS4zIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDI0MCAzMTEuOCAzMjUuOCA0MzQuNGM2IDguNiAxNS44IDEzLjYgMjYuMiAxMy42bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1LjMgMC04OS42LTEyOCA4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMjQwIDIwMC4yIDE1NC4yIDc3LjZDMTQ4LjIgNjkuMSAxMzguNCA2NCAxMjggNjRMOTYgNjR6TTU0NCAzMjBjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRsLTMyIDE2Yy0xNS44IDcuOS0yMi4yIDI3LjEtMTQuMyA0Mi45IDUuNiAxMS4yIDE2LjkgMTcuNyAyOC42IDE3LjdsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4eiJdfSxpd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwZWUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM2MCwicnVwZWUiXSwiZjE1NiIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6bTI4NS4xLTMybDM0LjkgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzQuOSAwYy03LjIgMC0xMy4xIDUuOS0xMy4xIDEzLjEgMCA1LjcgMy43IDEwLjcgOS4xIDEyLjVsNDkuNCAxNS45YzMxLjkgMTAuMyA1My41IDM5LjkgNTMuNSA3My40IDAgNDIuNi0zNC41IDc3LjEtNzcuMSA3Ny4xTDMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTAuOSAwYzcuMiAwIDEzLjEtNS45IDEzLjEtMTMuMSAwLTUuNy0zLjctMTAuNy05LjEtMTIuNWwtNDkuNC0xNS45Yy0zMS45LTEwLjMtNTMuNS0zOS45LTUzLjUtNzMuNCAwLTQyLjYgMzQuNS03Ny4xIDc3LjEtNzcuMXoiXX0sanJhPWl3ZSxWcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJpZmxlIixpY29uOls1MTIsNTEyLFtdLCJlNTRlIiwiTTQxNiAwTDM4NCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDAgMTAwLjNjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNTkuNSAwYzEwLjQgMCAxOC05LjggMTUuNS0xOS45bC0yMy05Mi4xIDQ0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtMjYuNyA1My4xLTE3LjdjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJsMC04NC41YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNTYtMTYgNS4zIDAtMTA5LjNjMC0xMS44LTYuNC0yMi4yLTE2LTI3LjdMNDMyIDE2YzAtOC44LTcuMi0xNi0xNi0xNnpNMjI0IDIwOEMxMTggMjA4IDMyIDI5NCAzMiA0MDBsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDhjMC0zMi41IDEyLjEtNjIuMSAzMi04NC43bDAgMTk2LjcgMTYwIDAgMC0yOTMuMWMtMjAtNy4xLTQxLjYtMTAuOS02NC0xMC45ek0yODAgODhhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxVcmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZCIsaWNvbjpbMzg0LDUxMixbMTAwXSwiNDQiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwxMjggMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0UzI4My43IDQ4MCAxNjAgNDgwTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHpNNjQgOTZsMCAzMjAgOTYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFMyNDguNCA5NiAxNjAgOTZMNjQgOTZ6Il19LFdyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtbmZpIixpY29uOls0NDgsNTEyLFtdLCJlNTc2IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTkzIDE3Mi4zbDM1IDYzIDAtNTEuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTQ0YzAgMTAuOS03LjQgMjAuNS0xOCAyMy4ycy0yMS43LTItMjctMTEuNmwtMzUtNjMgMCA1MS40YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtMTAuOSA3LjQtMjAuNSAxOC0yMy4yczIxLjcgMiAyNyAxMS42ek0yMDggMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMCAzMiA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDR6bTE5MiAwbDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEdyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZWV0aCIsaWNvbjpbNTEyLDUxMixbXSwiZjYyZSIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTQ0IDIwOGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHptMTI4IDBsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTgwIDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTMyMCAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpNNDggMzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2em0xNDQgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0xMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTExMi0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJ6Il19LHJ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWRvbGxhciIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1kb2xsYXIiXSwiZjY4OCIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIxMiA5NmMtMTEgMC0yMCA5LTIwIDIwbDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDE2OCAyNTZjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjB6Il19LEtyYT1yd2UsWXJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bXBzdGVyLWZpcmUiLGljb246WzY0MCw1MTIsW10sImY3OTQiLCJNMTY0LjMgNjRMMTM4LjcgMTkyIDU2IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMNTguNSA4MC40QzYxLjggNzAuNiA3MSA2NCA4MS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zNDQgNjRsODIuNyAwIDE2IDgwYy0xNC43IC4yLTI5LjMgNS41LTQwLjkgMTUuOS0xMS41IDEwLjMtMjIuNSAyMS0zMi44IDMyLjFsLTI0LjkgMCAwLTEyOHpNOTYgMjQwbDIzMy4yIDBjLTYuNCA4LjgtMTIuMyAxNy42LTE3LjcgMjYuMy0yMS40IDM0LjctMzkuNSA3Ni4xLTM5LjUgMTE1LjggMCAxNy4xIDIuMSAzMy44IDYgNDkuOWwtMTIwLjQgMCAxLjkgMTAuM2MzLjIgMTcuNC04LjQgMzQtMjUuOCAzNy4ycy0zNC04LjQtMzcuMi0yNS44QzcxIDMxMy4zIDU4IDI0Mi4xIDU3LjcgMjQwTDk2IDI0MHptNTEyLTcyYzAgMTEtNy40IDIwLjMtMTcuNSAyMy4xLS45LS44LTEuNy0xLjYtMi42LTIuNC0yMS44LTIwLTU0LjMtMjEuOC03OC01LjUtNC4yLTQuMy04LjUtOC41LTEyLjktMTIuNmwtMjEuMy0xMDYuNiA4MyAwYzEwLjMgMCAxOS41IDYuNiAyMi44IDE2LjRsMjUuMyA3NS45Yy44IDIuNCAxLjIgNSAxLjIgNy42bDAgNC4xek01MDUuNyAyNDAuM0w1MTggMjI2LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNNTQ0IDQzMi4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sWnJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwbG9hZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA5MyIsIk0yNTYgMTA5LjNMMjU2IDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIxMC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMjU2IDEwOS4zek0yMjQgNDAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDgwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsODAgMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMTQ0IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sVm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItc2xhc2giLGljb246WzU3Niw1MTIsWzYyNzE0LCJ1c2VyLWFsdC1zbGFzaCIsInVzZXItbGFyZ2Utc2xhc2giXSwiZjUwNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDMxMS41IDI0NS43YzU1LTEwLjkgOTYuNS01OS41IDk2LjUtMTE3LjcgMC02Ni4zLTUzLjctMTIwLTEyMC0xMjAtNTguMiAwLTEwNi44IDQxLjUtMTE3LjcgOTYuNUw0MS0yNC45ek0yMzUuNiAzMDUuNEMxNDcuOSAzMTYuNiA4MCAzOTEuNSA4MCA0ODIuMyA4MCA0OTguNyA5My4zIDUxMiAxMDkuNyA1MTJsMzMyLjUgMC0yMDYuNi0yMDYuNnoiXX0sWHJhPVZvZSxRcmE9Vm9lLEpyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NTkyXSwiZjA2MCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNDgwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcwLjcgMCAxMDUuNC0xMDUuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sZW9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwtdmlydXMiLGljb246WzU3Niw1MTIsW10sImU1OTciLCJNNjQgMzJDNjQgMTQuMyA3OC4zIDAgOTYgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1MS43Yy0xOC41IDAtMzcgNy01MS4xIDIxLjEtMjEuNiAyMS42LTI2LjYgNTMuNi0xNSA3OS45LTI2LjkgMTAuNC00NS45IDM2LjYtNDUuOSA2Ny4xczE5IDU2LjcgNDUuOSA2Ny4xYy03LjMgMTYuNS04IDM1LjItMi4zIDUyLjItMTMuNCA1LjctMjguMiA4LjgtNDMuNiA4LjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJMOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyem05NiAzMmwwIDEyOCA5NiAwIDAtMTI4LTk2IDB6TTI4MCA0MDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguOCAwIDQzLjItMzQuOCAyMi45LTU1LjItOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzIwLjQgMjAuNCA1NS4yIDUuOSA1NS4yLTIyLjkgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDI4LjggMzQuOCA0My4yIDU1LjIgMjIuOSA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTIwLjQgMjAuNC01LjkgNTUuMiAyMi45IDU1LjIgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI4LjggMC00My4yIDM0LjgtMjIuOSA1NS4yIDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjQtMjAuNC01NS4yLTUuOS01NS4yIDIyLjkgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yOC44LTM0LjgtNDMuMi01NS4yLTIyLjktOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMyMC40LTIwLjQgNS45LTU1LjItMjIuOS01NS4yem0xMDQtMzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx0b2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stZG91YmxlIixpY29uOlszODQsNTEyLFtdLCJmNTYwIiwiTTI0OS45IDY2LjhjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTA2IDE0NS43LTM3LjUtMzcuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxMjgtMTc2em0xMjggMTM2YzEwLjQtMTQuMyA3LjItMzQuMy03LjEtNDQuN3MtMzQuMy03LjItNDQuNyA3LjFsLTE3MCAyMzMuNy02OS41LTY5LjVjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzYuNiA2LjYgMTUuOCAxMCAyNS4xIDkuM3MxNy45LTUuNSAyMy40LTEzLjFsMTkyLTI2NHoiXX0sYW9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhdyIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMCIsIk0yMzQuNSA5Mi45YzE0LjMgNDIuOS0uMyA4Ni4yLTMyLjYgOTYuOHMtNzAuMS0xNS42LTg0LjQtNTguNSAuMy04Ni4yIDMyLjYtOTYuOCA3MC4xIDE1LjYgODQuNCA1OC41ek0xMDAuNCAxOTguNmMxOC45IDMyLjQgMTQuMyA3MC4xLTEwLjIgODQuMXMtNTkuNy0uOS03OC41LTMzLjMtMTQuMy03MC4xIDEwLjItODQuMSA1OS43IC45IDc4LjUgMzMuM3pNNjkuMiA0MDEuMkMxMjEuNiAyNTkuOSAyMTQuNyAyMjQgMjU2IDIyNHMxMzQuNCAzNS45IDE4Ni44IDE3Ny4yYzMuNiA5LjcgNS4yIDIwLjEgNS4yIDMwLjVsMCAxLjZjMCAyNS44LTIwLjkgNDYuNy00Ni43IDQ2LjctMTEuNSAwLTIyLjktMS40LTM0LTQuMmwtODgtMjJjLTE1LjMtMy44LTMxLjMtMy44LTQ2LjYgMGwtODggMjJjLTExLjEgMi44LTIyLjUgNC4yLTM0IDQuMi0yNS44IDAtNDYuNy0yMC45LTQ2LjctNDYuN2wwLTEuNmMwLTEwLjQgMS42LTIwLjggNS4yLTMwLjV6TTQyMS44IDI4Mi43Yy0yNC41LTE0LTI5LjEtNTEuNy0xMC4yLTg0LjFzNTQtNDcuMyA3OC41LTMzLjMgMjkuMSA1MS43IDEwLjIgODQuMS01NCA0Ny4zLTc4LjUgMzMuM3pNMzEwLjEgMTg5LjdjLTMyLjMtMTAuNi00Ni45LTUzLjktMzIuNi05Ni44czUyLjEtNjkuMSA4NC40LTU4LjUgNDYuOSA1My45IDMyLjYgOTYuOC01Mi4xIDY5LjEtODQuNCA1OC41eiJdfSxVb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsbWV0LXNhZmV0eSIsaWNvbjpbNTc2LDUxMixbImhhcmQtaGF0IiwiaGF0LWhhcmQiXSwiZjgwNyIsIk0zNTIgMjY0bDAtMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE4NS45QzkwIDEwOS44IDMyIDE5MS44IDMyIDI4OGwwIDY0IDUxMiAwIDAtNjRjLTEtOTUuMi01OC40LTE3Ny43LTE0NC0yMDkuOEw0MDAgMjY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0ek00MCA0MDBjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsNDk2IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBMNDAgNDAweiJdfSxzb2E9VW9lLGlvYT1Vb2Uscm9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImUiLGljb246WzMyMCw1MTIsWzEwMV0sIjQ1IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMTI4IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTEyOCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sb3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtc3F1aW50IixpY29uOls1MTIsNTEyLFsibGF1Z2gtc3F1aW50Il0sImY1OWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwNy43IDMzMi4xQzEwMiAzMTggMTEzLjQgMzA0IDEyOC42IDMwNGwyNTQuOSAwYzE1LjIgMCAyNi42IDE0IDIwLjkgMjguMS0yMy44IDU4LjYtODEuMiA5OS45LTE0OC4zIDk5LjlzLTEyNC42LTQxLjMtMTQ4LjMtOTkuOXptMTUtMTg4LjhjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sb29hPW93ZSxud2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bi1sZWZ0LWFuZC11cC1yaWdodC10by1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJjb21wcmVzcy1hbHQiXSwiZjQyMiIsIk00MzkuNSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzQ1MC4yIDI0MCA0NDAuNSAyNDBsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzkgODctODd6TTcyLjUgMjcybDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzYyLjggMjcyIDcyLjUgMjcyeiJdfSxub2E9bndlLGxvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnaWZ0cyIsaWNvbjpbNTc2LDUxMixbXSwiZjc5YyIsIk0yMDItMzAuNmMxMi41IDQuNCAxOSAxOC4xIDE0LjYgMzAuNmwtOC4yIDIzLjEgMjUuNC0xOC41YzEwLjctNy44IDI1LjctNS40IDMzLjUgNS4zczUuNCAyNS43LTUuMyAzMy41TDIzMy44IDY0IDI3MiA2NGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIuMWMtNTQuNyAxMC40LTk2IDU4LjQtOTYgMTE2bDAgMS45YzAgOC45IDEgMTcuNSAyLjggMjUuOS0xMS45IDE3LjgtMTguOCAzOS4xLTE4LjggNjIuMWwwIDEyOGMwIDIzLjggNy40IDQ1LjkgMjAuMSA2NEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDM4LjIgMC0yOC4zLTIwLjZDNDcuMiAzNS42IDQ0LjggMjAuNiA1Mi42IDkuOVM3NS40LTMuMiA4Ni4xIDQuNmwyNy40IDIwLTguMy0yNUMxMDEtMTMgMTA3LjgtMjYuNiAxMjAuNC0zMC44czI2LjIgMi42IDMwLjQgMTUuMmw5LjkgMjkuOCAxMC43LTMwLjJjNC40LTEyLjUgMTguMS0xOSAzMC42LTE0LjZ6TTQ4OS45IDIwOGMtNy41IDAtMTQuNSAzLjgtMTguNiAxMC4xTDQ0Ni45IDI1NiA0ODggMjU2YzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMS45YzAtMTIuMi05LjktMjIuMS0yMi4xLTIyLjF6TTM4NS4xIDI1NmwtMjQuNC0zNy45Yy00LjEtNi4zLTExLjEtMTAuMS0xOC42LTEwLjEtMTIuMiAwLTIyLjEgOS45LTIyLjEgMjIuMWwwIDEuOWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0MS4xIDB6TTI4MS45IDI2OC41Yy02LjMtMTAuNy05LjktMjMuMi05LjktMzYuNWwwLTEuOWMwLTM4LjcgMzEuNC03MC4xIDcwLjEtNzAuMSAyMy44IDAgNDYgMTIuMSA1OC45IDMyLjFsMTUgMjMuMiAxNS0yMy4yYzEyLjktMjAgMzUuMS0zMi4xIDU4LjktMzIuMSAzOC43IDAgNzAuMSAzMS40IDcwLjEgNzAuMWwwIDEuOWMwIDEzLjMtMy42IDI1LjgtOS45IDM2LjUgMTUuNyAxMS43IDI1LjkgMzAuNCAyNS45IDUxLjVsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTcyIDAgMC0yMDgtNDggMCAwIDIwOC03MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTEyOGMwLTIxLjEgMTAuMi0zOS44IDI1LjktNTEuNXoiXX0sY29hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZCIsaWNvbjpbNTc2LDUxMixbMTI4NzE2XSwiZjIzNiIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNCAyMjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtNDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTgwIDE2MGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LGRvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXRyYW5zZmVyIixpY29uOls2NDAsNTEyLFtdLCJlNTI4IiwiTTMxIDEwNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMTAzLTFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMSAzMSA2Ny43IDAgMCAwIDMzOC4zIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNzguMi01LjEtNS4xYy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDAtMjcuMiAyNy4yLTI4LjEgNzAuNi0yLjggOTguOWw2Ny43IDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNDA2LjEgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzguMiA1LjEgNS4xYzI4LjEgMjguMSA3My43IDI4LjEgMTAxLjggMCAyNy4yLTI3LjIgMjguMS03MC42IDIuOC05OC45bC02Ny43IDAgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwzMSAxMDV6TTQxNiAyNTZhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem04OC02NC41YzQuNCAuNSA4LTMuMSA4LTcuNWwwLTQ4YzAtNC40LTMuNi04LTgtOGwtNDggMGMtNC40IDAtOC4xIDMuNi03LjUgOCAzLjYgMjkgMjYuNiA1MS45IDU1LjUgNTUuNXptLTM2OCAxMjljLTQuNC0uNS04IDMuMS04IDcuNWwwIDQ4YzAgNC40IDMuNiA4IDggOGw0OCAwYzQuNCAwIDguMS0zLjYgNy41LTgtMy42LTI5LTI2LjYtNTEuOS01NS41LTU1LjV6Il19LGx3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcnVubmluZyIsaWNvbjpbNDQ4LDUxMixbMTI3OTM5LCJydW5uaW5nIl0sImY3MGMiLCJNMjU2LjUtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTEyMy42IDE3NmMtMy4zIDAtNi4yIDItNy40IDVMOTQuMiAyMzUuOWMtNi42IDE2LjQtMjUuMiAyNC40LTQxLjYgMTcuOHMtMjQuNC0yNS4yLTE3LjgtNDEuNmwyMS45LTU0LjlDNjcuNyAxMjkuOSA5NC4xIDExMiAxMjMuNiAxMTJsOTcuMyAwYzI4LjUgMCA1NC44IDE1LjEgNjkuMSAzOS43bDMyLjggNTYuMyA2MS42IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTYxLjYgMGMtMjIuOCAwLTQzLjgtMTIuMS01NS4zLTMxLjhsLTEwLTE3LjEtMjAuNyA3MC40IDc1LjQgMjIuNmMyNy43IDguMyA0MS44IDM5IDMwLjEgNjUuNUwyODUuNyA1MDljLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsNDkuMi0xMTAuOC05NS45LTI4LjhjLTMyLjctOS44LTUyLTQzLjctNDMuNy03Ni44bDIyLjctOTAuNi0zNS45IDB6bS04IDE4MWMxMy4zIDE0LjkgMzAuNyAyNi4zIDUxLjIgMzIuNGw0LjcgMS40LTYuOSAxOS4zYy01LjggMTYuMy0xNiAzMC44LTI5LjMgNDEuOEw1Mi45IDUxOS44Yy0xMy42IDExLjItMzMuOCA5LjMtNDUtNC4zcy05LjMtMzMuOCA0LjMtNDVsODIuNC02Ny45YzQuNS0zLjcgNy44LTguNSA5LjgtMTMuOUwxMTUuNiAzNTd6Il19LHVvYT1sd2UsY3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLWRvd24iLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1kb3duIl0sImYxM2EiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xMzUgMjQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsODcgODcgODctODdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDI3MyAzNDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDEzNSAyNDF6Il19LHBvYT1jd2UsaG9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbnVyc2UiLGljb246WzQ0OCw1MTIsW10sImY4MmYiLCJNOTYgNDQuOWMwLTEyLjcgNy41LTI0LjIgMTkuMi0yOS4zbDk2LTQyYzguMi0zLjYgMTcuNS0zLjYgMjUuNyAwbDk2IDQyQzM0NC41IDIwLjcgMzUyIDMyLjIgMzUyIDQ0LjlsMCA5OS4xYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4Uzk2IDIxNC43IDk2IDE0NGwwLTk5LjF6TTMwNCAxMjhsLTExMS42IDAtLjQgMC00OCAwIDAgMTZjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGwwLTE2ek0yMDggMTZsMCAxNi0xNiAwYy00LjQgMC04IDMuNi04IDhsMCAxNmMwIDQuNCAzLjYgOCA4IDhsMTYgMCAwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwYzQuNCAwIDgtMy42IDgtOGwwLTE2IDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTZjMC00LjQtMy42LTgtOC04bC0xNiAwIDAtMTZjMC00LjQtMy42LTgtOC04TDIxNiA4Yy00LjQgMC04IDMuNi04IDh6TTE0Mi42IDMyM2MtNi41LTQuOS0xNS4yLTYuMi0yMi42LTIuOC02MS40IDI4LjItMTA0LjEgOTAuMi0xMDQuMSAxNjIuMSAwIDE2LjQgMTMuMyAyOS43IDI5LjcgMjkuN2wzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtNzItNDIuNy0xMzQtMTA0LjEtMTYyLjEtNy40LTMuNC0xNi4xLTIuMS0yMi42IDIuOGwtNjcgNTAuMmMtOC41IDYuNC0yMC4zIDYuNC0yOC44IDBsLTY3LTUwLjJ6Il19LGR3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3Mtd2luay1oZWFydCIsaWNvbjpbNjQwLDUxMixbMTI4NTM2LCJraXNzLXdpbmstaGVhcnQiXSwiZjU5OCIsIk01NDMuNyAyNjguM2MuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNy42LTE3LjEtMTYuMS0zOC44LTIxLjgtNjEuNy03LjctMzAuNS0xNC4xLTc2LjIgOC4yLTExNC43bDIuNy00LjZjMjkuNS01MSA5NC43LTY4LjUgMTQ1LjctMzkgMiAxLjIgNCAyLjQgNS45IDMuN3pNMjQwIDMwNGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek0yMDggMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTUyIDIwYy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxmb2E9ZHdlLG1vYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxsIixpY29uOls1MTIsNTEyLFtdLCJmNTc1IiwiTTI5NiA2NGM2LjkgMCAxMy41IDIuNyAxOC4zIDcuNkw0NDAuNCAxOTcuN2M0LjkgNC45IDcuNiAxMS41IDcuNiAxOC4zcy0yLjcgMTMuNS03LjYgMTguM0wzODYuNyAyODggNjUuMyAyODhjMS4zLTMuOSAzLjQtNy40IDYuMy0xMC4zbDk2LjQtOTYuNCAzMy40IDMzLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyMTMuMyAxMzYgMjc3LjcgNzEuNmM0LjktNC45IDExLjUtNy42IDE4LjMtNy42ek0xMjIuNyAxMzZMMjYuMyAyMzIuNEM5LjUgMjQ5LjMgMCAyNzIuMSAwIDI5NnM5LjUgNDYuNyAyNi4zIDYzLjZMMTUyLjQgNDg1LjdDMTY5LjMgNTAyLjUgMTkyLjEgNTEyIDIxNiA1MTJzNDYuNy05LjUgNjMuNi0yNi4zTDQ4NS43IDI3OS42QzUwMi41IDI2Mi43IDUxMiAyMzkuOSA1MTIgMjE2cy05LjUtNDYuNy0yNi4zLTYzLjZMMzU5LjYgMjYuM0MzNDIuNyA5LjUgMzE5LjkgMCAyOTYgMHMtNDYuNyA5LjUtNjMuNiAyNi4zTDE2OCA5MC43IDExOC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDEyMi43IDEzNnoiXX0sdXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMS13YXZlIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC13YXZlLWFsdCJdLCJmNTNiIiwiTTAgMTA5LjVMMCA0MTkuNmMwIDE5LjQgMTEuOCAzNy4zIDMwLjMgNDMuMyA5NCAzMCAxNTguOCA4LjQgMjIzLjMtMTMuMSA2Mi40LTIwLjggMTI0LjQtNDEuNSAyMTIuMS0xNS4zIDIyLjIgNi42IDQ2LjItOC44IDQ2LjItMzJsMC0zMTAuMWMwLTE5LjQtMTEuOC0zNy4zLTMwLjMtNDMuMy05NC0zMC0xNTguOC04LjQtMjIzLjMgMTMuMS02Mi40IDIwLjgtMTI0LjQgNDEuNS0yMTIuMSAxNS4zLTIyLjItNi42LTQ2LjMgOC44LTQ2LjMgMzJ6TTI1NiAzNjhjLTUzIDAtOTYtNTAuMS05Ni0xMTJzNDMtMTEyIDk2LTExMiA5NiA1MC4xIDk2IDExMi00MyAxMTItOTYgMTEyek0xMjcuMSA0MDUuNWMuNyA0LjQtMi44IDguMS03LjIgOC4xLTE1LjcgMC0zMi4xLTEuOC01MC02LjEtMy41LS44LTYtNC02LTcuN0w2NCAzNjBjMC00LjQgMy42LTguMSA4LTcuNSAyOC4xIDMuNSA1MC42IDI1LjIgNTUuMiA1M3pNNDQ4IDM1NC42YzAgNS00LjYgOC44LTkuNSA4LTE1LjQtMi41LTMwLjItMy45LTQ0LjQtNC4zLTQuOS0uMS04LjctNC41LTcuMi05LjIgNy4zLTIzLjcgMjgtNDEuNCA1My4yLTQ0LjYgNC40LS41IDggMy4xIDggNy41bDAgNDIuNnptLTgtMTk1LjFjLTI4LjEtMy41LTUwLjYtMjUuMi01NS4yLTUzLS43LTQuNCAyLjgtOC4xIDcuMi04LjEgMTUuNyAwIDMyLjEgMS44IDUwIDYuMSAzLjUgLjggNiA0IDYgNy43bDAgMzkuOWMwIDQuNC0zLjYgOC4xLTggNy41em0tMzIyLjEtNS44YzQuOSAuMSA4LjcgNC41IDcuMiA5LjItNy4zIDIzLjctMjggNDEuNC01My4yIDQ0LjYtNC40IC41LTgtMy4xLTgtNy41bDAtNDIuNmMwLTUgNC42LTguOCA5LjUtOCAxNS40IDIuNSAzMC4yIDMuOSA0NC40IDQuM3pNMjQwIDE4OGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sZ29hPXV3ZSxib2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmsiLGljb246WzUxMiw1MTIsWzEyNzk2M10sImY2NmYiLCJNMjM4LjcgNS4xYzEwLjUtNi44IDI0LjEtNi44IDM0LjYgMGwyMjQgMTQ0YzExLjkgNy43IDE3LjQgMjIuMyAxMy40IDM1LjlzLTE2LjUgMjMtMzAuNyAyM2wtMzIgMCAwIDIwOCA1MS4yIDM4LjRjOC4xIDYgMTIuOCAxNS41IDEyLjggMjUuNiAwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZsNTEuMi0zOC40IDAgMCAwLTIwOC0zMiAwYy0xNC4yIDAtMjYuNy05LjQtMzAuNy0yM3MxLjUtMjguMyAxMy40LTM1LjlsMjI0LTE0NHpNMzM2IDIwOGwwIDIwOCA2NCAwIDAtMjA4LTY0IDB6TTIyNCA0MTZsNjQgMCAwLTIwOC02NCAwIDAgMjA4ek0xMTIgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHoiXX0sdm9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11c2ljIixpY29uOls1MTIsNTEyLFsxMjc5MjVdLCJmMDAxIiwiTTQ2OCA3YzcuNiA2LjEgMTIgMTUuMyAxMiAyNWwwIDMwNGMwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODAgNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZsMC0xMTYuNy0yMjQgNDkuOCAwIDIwNi4zYzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNkwxMjggOTZjMC0xNSAxMC40LTI4IDI1LjEtMzEuMmwyODgtNjRjOS41LTIuMSAxOS40IC4yIDI3IDYuM3oiXX0seG9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stbWVkaWNhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjdlNiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTkyIDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0scHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodWZmbGUiLGljb246WzUxMiw1MTIsWzEyODI1NiwicmFuZG9tIl0sImYwNzQiLCJNNDAzLjggMzQuNGMxMi01IDI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzODQgMjA0LjkgMzg0IDE5MmwwLTMyLTMyIDBjLTEwLjEgMC0xOS42IDQuNy0yNS42IDEyLjhsLTMyLjQgNDMuMi00MC01My4zIDIxLjItMjguM0MyOTMuMyAxMTAuMiAzMjEuOCA5NiAzNTIgOTZsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZ6TTE1NCAyOTZsNDAgNTMuMy0yMS4yIDI4LjNDMTU0LjcgNDAxLjggMTI2LjIgNDE2IDk2IDQxNmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwYzEwLjEgMCAxOS42LTQuNyAyNS42LTEyLjhMMTU0IDI5NnpNNDM4LjYgNDcwLjZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCA0NjAuOSAzODQgNDQ4bDAtMzItMzIgMGMtMzAuMiAwLTU4LjctMTQuMi03Ni44LTM4LjRMMTIxLjYgMTcyLjhjLTYtOC4xLTE1LjUtMTIuOC0yNS42LTEyLjhsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsNjQgMGMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNEwzMjYuNCAzMzkuMmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTY0IDY0eiJdfSx5b2E9cHdlLHdvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmRlcmxpbmUiLGljb246WzM4NCw1MTIsW10sImYwY2QiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlMxMTMuNyA2NCA5NiA2NGwwIDE2MGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMyNzAuMyAwIDI4OCAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNjBjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMzIgMzEyLjQgMzIgMjI0TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6TTAgNDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LGtvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy11c2VyIixpY29uOls2NDAsNTEyLFtdLCJlNGRhIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjcgMCAyNy43IDguOCA1My40IDIzLjggNzQuNC01MS41IDIxLTg3LjggNzEuNi04Ny44IDEzMC43IDAgMSAwIDEuOSAwIDIuOWwtMTc2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDY0ek0yMDggNDAwbDAgNjQgNTMuNCAwYzcuMi0yOS40IDIxLjMtNTYuMSA0MC40LTc4LjMtNi4xLTE5LjUtMjQuMy0zMy43LTQ1LjgtMzMuNy0yNi41IDAtNDggMjEuNS00OCA0OHpNMzM5IDIyNC4zYy0xLS4yLTItLjMtMy0uM2wtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjcgMGMyLjEtMjIuOCA4LjQtNDQuMyAxOC4zLTYzLjd6TTE3NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTc2IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0yNDAgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0zNTIgNTEyYzAtNTMgNDMtOTYgOTYtOTZsOTYgMGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LFNvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2JvdCIsaWNvbjpbNjQwLDUxMixbMTI5MzAyXSwiZjU0NCIsIk0zNTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMlMyODgtMTcuNyAyODggMGwwIDY0LTk2IDBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjI0YzAtNTMtNDMtOTYtOTYtOTZsLTk2IDAgMC02NHpNMTYwIDM2OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTEyMCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yMjQgMTc2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMTQ0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTY0IDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2em01NDQtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxmZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVzIixpY29uOls0NDgsNTEyLFsxMDEzMyw2MTU0MywiYWRkIl0sIjJiIiwiTTI1NiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE2MC0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMCAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTE2MHoiXX0sX29hPWZmLHR2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHkiLGljb246WzQ0OCw1MTIsW10sImYwYzUiLCJNMTkyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjAwLjZjMC0xNy40LTcuMS0zNC4xLTE5LjctNDYuMkwzNzAuNiAxNy44QzM1OC43IDYuNCAzNDIuOCAwIDMyNi4zIDBMMTkyIDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi02NCAwIDAgMTYtMTkyIDAgMC0yNTYgMTYgMCAwLTY0LTE2IDB6Il19LE1vYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1raW5nIixpY29uOls0NDgsNTEyLFs5ODE4XSwiZjQzZiIsIk0yMjQtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjQgMTUzLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTIgMzg0IDQwOC4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDY3LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw5NiAzODQgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNTMuOCAwIDAtNjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHpvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZSIsIk00OTYgMjA4bDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDM0OCAxMC41QzM0MC4zIDMuNyAzMzAuMyAwIDMyMCAwcy0yMC4zIDMuNy0yOCAxMC41TDEyMS40IDE1OS44Yy02IDUuMi05LjQgMTIuOC05LjQgMjAuNyAwIDE1LjIgMTIuMyAyNy41IDI3LjUgMjcuNWw0LjUgMCAwIDk0LjRjMjAuMy05LjQgNDIuMS0xNC4yIDY0LTE0LjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDE2LjktLjEgMzMuOCAyLjYgNTAgOGwwLTg4em0tMjI0LThjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzQuNiA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQxOC4zIDE3LjYgNDI2LjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDUxNC4zIDE3LjYgNTIyLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxDb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYml0Y29pbi1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMGI0IiwiTTY0IDI0QzY0IDEwLjcgNzQuNyAwIDg4IDBzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDEuMWM1NC4zIDcuOCA5NiA1NC40IDk2IDExMC45IDAgMjQuMi03LjcgNDYuNi0yMC43IDY0LjkgMzEuNyAxOS44IDUyLjcgNTUgNTIuNyA5NS4xIDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0zMiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0yMi4zIDBDMTguNyA0NDggMCA0MjkuMyAwIDQwNi4zTDAgMTAxLjZDMCA4MC44IDE2LjggNjQgMzcuNiA2NEw2NCA2NCA2NCAyNHptMCAyMDBsMTEyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTExMiAwIDAgOTZ6bTExMiA2NGwtMTEyIDAgMCA5NiAxNDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMzIgMHoiXX0sVG9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveCIsaWNvbjpbNDQ4LDUxMixbMTI4MjMwXSwiZjQ2NiIsIk0zNjkuNCAxMjhsLTM0LjMtNDgtMjIyLjEgMC0zNC4zIDQ4IDI5MC43IDB6TTAgMTQ4LjVjMC0xMy4zIDQuMi0yNi4zIDExLjktMzcuMkw2MC45IDQyLjhDNzIuOSAyNiA5Mi4zIDE2IDExMi45IDE2bDIyMi4xIDBjMjAuNyAwIDQwLjEgMTAgNTIuMSAyNi44bDQ4LjkgNjguNWM3LjggMTAuOSAxMS45IDIzLjkgMTEuOSAzNy4yTDQ0OCA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0OC41eiJdfSxod2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSwkb2E9aHdlLGZ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodCIsaWNvbjpbNTc2LDUxMixbImFycm93cy1oIl0sImYwN2UiLCJNNDcwLjYgMzc0LjZsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w0MS40IDQxLjQtMzU3LjUgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNDEuNC00MS40IDM1Ny41IDAtNDEuNCA0MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSxEb2E9ZndlLExvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYW4iLGljb246WzUxMiw1MTIsW10sImY4NjMiLCJNMTYwIDE0NGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxNTIuMmMxNS01LjMgMzEuMi04LjIgNDgtOC4yIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgOC44LTcuMiAxNi0xNiAxNmwtMTUyLjIgMGM1LjMgMTUgOC4yIDMxLjIgOC4yIDQ4IDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0LTguOCAwLTE2LTcuMi0xNi0xNmwwLTE1Mi4yYy0xNSA1LjMtMzEuMiA4LjItNDggOC4yLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtOC44IDcuMi0xNiAxNi0xNmwxNTIuMiAwYy01LjMtMTUtOC4yLTMxLjItOC4yLTQ4em05NiAxNDRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxFb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjUyMCIsIk00NTYuNSAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDM2LTM1NS4yIDI2Ni40Qy0uOCA0MDEtMy43IDQyMSA2LjkgNDM1LjJzMzAuNiAxNyA0NC44IDYuNGw3Ni44LTU3LjYgMTMxLjMgMCA0Ni42IDExMy4xIDEgMi4yYzUuNyAxMC43IDE4LjggMTUuNSAzMC4zIDEwLjhzMTcuMy0xNy4zIDEzLjktMjlsLS44LTIuMy0zOS4xLTk0LjkgNDAuOSAwYzEuMSAwIDIuMiAwIDMuMiAwbDQ2LjYgMTEzLjIgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTQyLTEwMkM0ODUuMyAzNTQuMSA1NDQuNSAyODAgNTQ0LjUgMTkybDAtNzIgODAuNS0yMC4xYzguNi0yLjEgMTMuOC0xMC44IDExLjYtMTkuNC03LjEtMjguNS0zMi43LTQ4LjUtNjIuMS00OC41bC01MC4xIDBDNTA4LjIgMTIuNSA0ODMuOCAwIDQ1Ni41IDB6bTAgNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxQb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU1YTAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sY1M9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbImNoYWluLWJyb2tlbiIsImNoYWluLXNsYXNoIiwidW5saW5rIl0sImYxMjciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTIyLTEyMmM0LjItMy40IDguMy03LjEgMTIuMS0xMC45bDcxLjEtNzEuMWMyOS4zLTI5LjMgNDUuOC02OS4xIDQ1LjgtMTEwLjYgMC04Ni40LTcwLTE1Ni41LTE1Ni41LTE1Ni41LTM3LjMgMC03My4xIDEzLjMtMTAxLjMgMzcuMiAyMC4zIDEwLjEgMzguNyAyMy41IDU0LjUgMzkuNSAxNC4xLTguMyAzMC4yLTEyLjcgNDYuOC0xMi43IDUxLjEgMCA5Mi41IDQxLjQgOTIuNSA5Mi41IDAgMjQuNS05LjcgNDgtMjcuMSA2NS40bC03MS4xIDcxLjFjLTMuOSAzLjktOC4xIDcuNC0xMi42IDEwLjVsLTQ3LjUtNDcuNWMxNi41LS45IDI5LjctMTQuNCAzMC4yLTMxLjEgMC0xLjMgMC0yLjYgMC0zLjkgMC04Ni4zLTY5LjktMTU2LjktMTU2LjUtMTU2LjktMTkuMiAwLTM3LjkgMy41LTU1LjUgMTAuMkw0MS0yNC45ek0yMjUuOSAxNjBjLjYgMCAxLjEgMCAxLjcgMCAxNS4xIDAgMjkuNSAzLjcgNDIuMSAxMC4yIDEuOCAxLjIgMy42IDIuMyA1LjUgMy4xIDI2LjggMTYuMyA0NC44IDQ1LjkgNDQuOCA3OS42IDAgLjQgMCAuOCAwIDEuMkwyMjUuOSAxNjB6TTM0Ni4yIDQxNkwxOTIgMjYxLjhjMS4yIDg0LjYgNjkuNiAxNTIuOSAxNTQuMSAxNTQuMXpNMTM5LjcgMjA5LjVsLTQ1LjMtNDUuMy00OC42IDQ4LjZjLTI5LjMgMjkuMy00NS44IDY5LjEtNDUuOCAxMTAuNiAwIDg2LjQgNzAgMTU2LjUgMTU2LjUgMTU2LjUgMzcuMiAwIDczLjEtMTMuMyAxMDEuMy0zNy4yLTIwLjMtMTAuMS0zOC44LTIzLjUtNTQuNi0zOS41LTE0IDguMi0zMC4xIDEyLjYtNDYuNyAxMi42LTUxLjEgMC05Mi41LTQxLjQtOTIuNS05Mi41IDAtMjQuNSA5LjctNDggMjcuMS02NS40bDQ4LjYtNDguNnoiXX0sSW9hPWNTLEFvYT1jUyxOb2E9Y1MsZFM9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcm90YXRlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NjM1LCJhcnJvdy1yaWdodC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtZm9yd2FyZCIsInJlZG8iXSwiZjAxZSIsIk00MzYuNyA3NC43TDQ0OCA4NS40IDQ0OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0Ny45IDAtNy42LTcuMmMtLjItLjItLjQtLjQtLjYtLjYtNzUtNzUtMTk2LjUtNzUtMjcxLjUgMHMtNzUgMTk2LjUgMCAyNzEuNSAxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTkuOS05OS45IDI2MS43LTEwMCAzNjEuNy0uM3oiXX0sUm9hPWRTLE9vYT1kUyxGb2E9ZFMsbXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1jbGlwIixpY29uOls1MTIsNTEyLFsicGVuLWFsdCJdLCJmMzA1IiwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek0yNzQuMSAxMDBsMCAwIDEzNy45IDEzNy45LTIxNS4xIDIxNS4xYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMS4xYy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMnMtOC41LTE1LjEtNi4yLTIzLjRMMzYuNCAzNTMuOGM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43TDI0MC4xIDEzMy45IDIyMyAxMTYuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMODkgMjE3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE1NS4xIDgyLjljMjguMS0yOC4xIDczLjctMjguMSAxMDEuOCAwTDI3NC4xIDEwMHoiXX0sQm9hPW13ZSxIb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9vci1jbG9zZWQiLGljb246WzQ0OCw1MTIsWzEyODY4Ml0sImY1MmEiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjR6TTMyMCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxXb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtYXNjIiwic29ydC1hbW91bnQtZG93biJdLCJmMTYwIiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyMCA5NnoiXX0scW9hPVdvZSxqb2E9V29lLFZvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1kb3duIixpY29uOlszMjAsNTEyLFtdLCJmMGQ3IiwiTTE0MC4zIDM3Ni44YzEyLjYgMTAuMiAzMS4xIDkuNSA0Mi44LTIuMmwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMS40IDE5MiAyODguNSAxOTJsLTI1NiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy43IDIzNy41IDkuOSAyNDYuNmwxMjggMTI4IDIuNCAyLjJ6Il19LFVvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrIixpY29uOlszMjAsNTEyLFsxMDddLCI0YiIsIk0zMTEgODYuM2MxMi4zLTEyLjcgMTItMzIuOS0uNy00NS4ycy0zMi45LTEyLTQ1LjIgLjdDMTQzLjQgMTY3LjIgNzYuNCAyMzYuMyA2NCAyNDlMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEwNyA2NC43LTY2LjcgMTMzIDE5MmMxMC4xIDE0LjUgMzAgMTguMSA0NC41IDguMXMxOC4xLTMwIDguMS00NC41TDE3NC4xIDIyNy40IDMxMSA4Ni4zeiJdfSxnd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbInZvdGUteWVhIl0sImY3NzIiLCJNNTUyIDI4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDE2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjU2IDB6bS0zNy4xIDg0LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42LTkuNSA5LjItOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMzg0LjIgMTUwLjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LFdvYT1nd2UsR29hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpc2gtZmlucyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMiIsIk0yNzUuMiAzOC40Yy0xMC42LTgtMjUtOC41LTM2LjMtMS41UzIyMiA1Ny4zIDIyNC42IDcwLjNsOS43IDQ4LjZjLTE5LjQgOS0zNi45IDE5LjktNTIuNCAzMS41LTE1LjMgMTEuNS0yOSAyMy45LTQwLjcgMzYuM0w0OC4xIDEzMi40Yy0xMi41LTcuMy0yOC40LTUuMy0zOC43IDQuOXMtMTIuNCAyNi01LjMgMzguNkw1MCAyNTYgNC4yIDMzNi4xYy03LjIgMTIuNi01IDI4LjQgNS4zIDM4LjZzMjYuMSAxMi4yIDM4LjcgNC45bDkzLjEtNTQuM2MxMS44IDEyLjMgMjUuNCAyNC44IDQwLjcgMzYuMyAxNS41IDExLjYgMzMgMjIuNSA1Mi40IDMxLjVsLTkuNyA0OC42Yy0yLjYgMTMgMy4xIDI2LjMgMTQuMyAzMy4zczI1LjYgNi41IDM2LjMtMS41bDc3LjYtNTguMmM1NC45LTQgMTAxLjUtMjcgMTM3LjItNTMuOCAzOS4yLTI5LjQgNjcuMi02NC43IDgxLjYtODkuNSA1LjgtOS45IDUuOC0yMi4yIDAtMzIuMS0xNC40LTI0LjgtNDIuNS02MC4xLTgxLjYtODkuNS0zNS44LTI2LjgtODIuMy00OS44LTEzNy4yLTUzLjhMMjc1LjIgMzguNHpNMzg0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxLb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHJlc3MiLGljb246WzQ0OCw1MTIsW10sImYwNjYiLCJNMTYwIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHoiXX0sYndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAiXSwiZjE1ZSIsIk00MTIuNiA0OS43QzQwNy4yIDM4LjggMzk2LjEgMzIgMzg0IDMycy0yMy4yIDYuOC0yOC42IDE3LjdjLTUwLjcgMTAxLjMtNzcuMyAxNTQuNy04MCAxNjAtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjljLTIuNy01LjMtMjkuMy01OC43LTgwLTE2MHpNMzg0IDEzNS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40ek0yODggMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDUwLjcgMC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzMwNy4xIDQ4MCAzMjAgNDgwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01MC43IDAgNzMuNC03My40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ2MC45IDI4OCA0NDggMjg4bC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC04MC04MHoiXX0sWW9hPWJ3ZSxab2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncmFkdWF0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwMSIsIk0yNDEuMy0xM2MtMTEuNC0yLjMtMjMuMS0yLjMtMzQuNSAwTDE5LjMgMjQuNUM4LjEgMjYuNyAwIDM2LjYgMCA0OCAwIDU4LjMgNi41IDY3LjMgMTYgNzAuNkwxNiAxNDQgLjMgMjIyLjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNmwzNC45IDBjOCAwIDE0LjYtNi41IDE0LjYtMTQuNiAwLTEtLjEtMS45LS4zLTIuOUw0OCAxNDQgNDggNzcuMyA5NiA4Ni45IDk2IDE0NGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtNTcuMSA3Ni43LTE1LjNDNDM5LjkgNjkuMyA0NDggNTkuNCA0NDggNDhzLTguMS0yMS4zLTE5LjMtMjMuNUwyNDEuMy0xM3pNMjI0IDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMTYwIDBjMCA0NC4yLTM1LjggODAtODAgODB6TTEyMC4xIDMyMC4xQzU4LjcgMzQ4LjMgMTYgNDEwLjMgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMTU0LjMgMCAwLTE0Ni01Ny40LTQzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44ek0yNDggNTEybDE1NC4zIDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC01Ny40IDQzIDAgMTQ2eiJdfSxYb2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNTQuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptMTEyLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LFFvYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2FwIixpY29uOls1MTIsNTEyLFsxMjk1MzJdLCJlMDZlIiwiTTIwOC0zMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTMyMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMzUyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMTYwbDExMiAwYzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDE2MCAyMjRjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTM1LjEtMTguOS02NS45LTQ3LTgyLjYgMTktMTkuOCAzMC43LTQ2LjYgMzEtNzYuMSA0NS40IDcuNiA4MCA0Ny4xIDgwIDk0LjdsMCAxMjhjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAyNTZjMC01MyA0My05NiA5Ni05NnptNjQgMTEybDE5MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHoiXX0sSm9hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3ljbGUiLGljb246WzUxMiw1MTIsWzk4NDIsOTg1MCw5ODUxXSwiZjFiOCIsIk0xNTIuMyA2MEMxOTguNS0yMCAzMTQtMjAgMzYwLjIgNjBsMzcuMyA2NC42IDI3LjctMTZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNMNDM2LjkgMjIzYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN2wtODcuNC0yMy40Yy05LjQtMi41LTE2LjMtMTAuNC0xNy42LTIwczMuNC0xOS4xIDExLjgtMjMuOWwyNy43LTE2LTM3LjMtNjQuNmMtMjEuNi0zNy4zLTc1LjQtMzcuMy05NyAwbC01LjMgOS4xYy04LjggMTUuMy0yOC40IDIwLjUtNDMuNyAxMS43UzEzOC4yIDg0LjUgMTQ3IDY5LjFsNS4zLTkuMXpNNDQ5LjcgMjc5LjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDUuMyA5LjFjNDYuMiA4MC0xMS41IDE4MC0xMDMuOSAxODBsLTc0LjYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJsMCAzMiA3NC42IDBjNDMuMSAwIDcwLjEtNDYuNyA0OC41LTg0bC01LjMtOS4xYy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjd6TTUxIDIzNS40bC0yNy43LTE2Yy04LjQtNC45LTEzLjEtMTQuMy0xMS44LTIzLjlzOC4yLTE3LjUgMTcuNi0yMEwxMTYuNSAxNTJjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdsMjMuNCA4Ny40YzIuNSA5LjQtLjkgMTkuMy04LjYgMjUuM3MtMTguMiA2LjYtMjYuNiAxLjdsLTI3LjctMTYtMzcuMyA2NC42Yy0yMS42IDM3LjMgNS40IDg0IDQ4LjUgODRsMTAuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC42IDBDMjUuMyA0ODAtMzIuNCAzODAgMTMuOCAzMDBMNTEgMjM1LjR6Il19LHZ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2luayIsaWNvbjpbNTEyLDUxMixbImdyaW4td2luayJdLCJmNThjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzI4IDE5NmMtMTEgMC0yMCA5LTIwIDIwcy05IDIwLTIwIDIwLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMHpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGVuYT12d2UsR29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyLWxhZGRlciIsaWNvbjpbNjQwLDUxMixbImxhZGRlci13YXRlciIsInN3aW1taW5nLXBvb2wiXSwiZjVjNSIsIk0zNzQuNSA0MDUuN2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOCAyNS43LTQuOCAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTI0LjIgMTguMy01Mi4zIDM1LjktODMuNCAzNS45cy01OS4xLTE3LjctODMuMy0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC42LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjN6TTUxMS44IDMyYzQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOC0xNy41IDAtMzEuOCAxNC4yLTMxLjggMzEuOGwwIDIxMS44Yy0yMy4xLTUuMS00NC45LTQuNC02NC0uNGwwLTUxLjItMTkyIDAgMCA0OC43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0xNi4yIC4xLTMyLjQgMi43LTQ4IDhsMC0yMTYuMmMwLTUyLjkgNDIuOS05NS44IDk1LjctOTUuOCA0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjcgMTQuMi0zMS43IDMxLjhsMCA5Ni4yIDE5MiAwIDAtOTYuMkM0MTYgNzQuOSA0NTguOSAzMiA1MTEuOCAzMnoiXX0sdG5hPUdvZSxhbmE9R29lLHNuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW1pbmkiLGljb246WzQ0OCw1MTIsW10sImU4NDkiLCJNMzk1LjQgOGMxMy4yLTExLjcgMzMuMy0xMC41IDQ1LjEgMi43IDExLjcgMTMuMiAxMC41IDMzLjQtMi43IDQ1LjItMi43IDIuNC0yMy4xIDE5LjgtNTguMyAzNi44LTguMiA0LTE3LjIgNy45LTI3IDExLjZsMCAzMDMuMmM5LjggMy44IDE4LjggNy42IDI3IDExLjYgMTguMiA4LjggMzIuNCAxNy43IDQyLjIgMjQuNSAzIDIuMSA1LjUgNC4xIDcuNyA1LjcgMS4yIC45IDIuMyAxLjYgMy4yIDIuNCAuMiAuMSAuMyAuMiAuNSAuNCAxLjMgMS4xIDIuNCAyIDMuMiAyLjYgLjQgLjMgLjcgLjYgLjkgLjggLjEgLjEgLjMgLjIgLjMgLjMgMCAwIC4xIC4xIC4xIC4xbC4xIDAgMCAwIDAgMGMzLjMgMi45IDUuOSA2LjQgNy43IDEwLjIgNS40IDExLjMgMy44IDI1LjEtNSAzNS0uMyAuNC0uNyAuNy0xLjEgMS4xLTExLjkgMTIuMi0zMS4yIDEzLjEtNDQgMS43LS4zLS4zLTEuNS0xLjMtMy41LTIuOC0uNC0uMy0uOS0uNy0xLjUtMS4xLTEuOS0xLjQtNC4yLTMuMS03LjEtNS4xLTIuMi0xLjUtNC43LTMuMS03LjQtNC44LTYuNi00LjEtMTQuOC04LjgtMjQuNC0xMy41LTcuNC0zLjYtMTUuNi03LjItMjQuNy0xMC41LTEzLjYtNS4xLTI5LTkuNi00Ni4xLTEyLjktNS43LTEuMS0xMS42LTIuMS0xNy43LTIuOC0xMi4xLTEuNi0yNS0yLjUtMzguNi0yLjUtNTQuMiAwLTk3LjQgMTQuNC0xMjcgMjguOC0zLjQgMS42LTYuNSAzLjMtOS41IDQuOS01LjEgMi44LTkuNyA1LjQtMTMuOCA3LjktMy4zIDIuMS02LjMgNC04LjkgNS43LTEuNyAxLjItMy4yIDIuMy00LjYgMy4zLTEuOSAxLjQtMy41IDIuNS00LjYgMy40LTEuNCAxLjEtMi4yIDEuOC0yLjUgMi0xMy4yIDExLjctMzMuMyAxMC41LTQ1LjEtMi44LTIuMi0yLjUtNC01LjItNS4yLTguMXMtMi4xLTUuOS0yLjUtOC45Yy0xLjQtMTAuMiAyLjItMjAuOCAxMC40LTI4LjIgLjItLjIgLjYtLjUgMS4yLTEgLjEtLjEgLjItLjIgLjMtLjNsMy4yLTIuNmMxLjctMS4zIDMuNy0yLjggNi4yLTQuNiAxLjYtMS4yIDMuMy0yLjUgNS4yLTMuOCA5LjgtNi44IDI0LTE1LjcgNDIuMi0yNC41IDguMi00IDE3LjItNy45IDI3LTExLjZsMC0zMDMuMkM4Ni43IDEwMC42IDc3LjcgOTYuNyA2OS41IDkyLjggMzQuMyA3NS43IDE0IDU4LjMgMTEuMyA1NS45LTEuOSA0NC4yLTMuMSAyNCA4LjYgMTAuNyAyMC4zLTIuNSA0MC41LTMuNyA1My43IDggNTUuMSA5LjIgNzAuNyAyMi4yIDk3LjUgMzUuMiAxMjcuMSA0OS42IDE3MC4zIDY0IDIyNC41IDY0czk3LjQtMTQuNCAxMjctMjguOGMyNi44LTEzIDQyLjQtMjYgNDMuOC0yNy4yek0yODguNSAxMjIuM2MtMTkuNyAzLjUtNDEgNS43LTY0IDUuN3MtNDQuMy0yLjItNjQtNS43bDAgMjY3LjRjMTIuNi0yLjMgMjUuOS00IDM5LjktNC45IDcuOC0uNSAxNS44LS44IDI0LS44IDIzIDAgNDQuNCAyLjIgNjQgNS43bDAtMjY3LjR6Il19LGluYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1jZWxsIixpY29uOls1NzYsNTEyLFtdLCJlNTg1IiwiTTU5LjYgOS44QzQ3LjMgNC44IDMzLjMgMTAuNyAyOC40IDIzIDE1LjIgNTUuNSA4IDkwLjkgOCAxMjhzNy4yIDcyLjUgMjAuNCAxMDVjNSAxMi4zIDE5IDE4LjIgMzEuMyAxMy4yczE4LjItMTkgMTMuMi0zMS4zQzYyIDE4OC4yIDU2IDE1OC44IDU2IDEyOHM2LTYwLjIgMTYuOS04N2M1LTEyLjMtMS0yNi4zLTEzLjItMzEuM3ptNDU2LjggMGMtMTIuMyA1LTE4LjIgMTktMTMuMiAzMS4zIDEwLjkgMjYuOCAxNi45IDU2LjIgMTYuOSA4N3MtNiA2MC4yLTE2LjkgODdjLTUgMTIuMyAxIDI2LjMgMTMuMiAzMS4zczI2LjMtMSAzMS4zLTEzLjJjMTMuMS0zMi41IDIwLjQtNjcuOSAyMC40LTEwNXMtNy4yLTcyLjUtMjAuNC0xMDVjLTUtMTIuMy0xOS0xOC4yLTMxLjMtMTMuMnpNMzQwLjEgMTY1LjJjNy41LTEwLjUgMTEuOS0yMy4zIDExLjktMzcuMiAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDEzLjkgNC40IDI2LjcgMTEuOSAzNy4yTDk4LjkgNDY2LjhjLTcuMyAxNi4xLS4yIDM1LjEgMTUuOSA0Mi40czM1LjEgLjIgNDIuNC0xNS45bDIwLjYtNDUuMiAyMjAuNiAwIDIwLjYgNDUuMmM3LjMgMTYuMSAyNi4zIDIzLjIgNDIuNCAxNS45czIzLjItMjYuMyAxNS45LTQyLjRMMzQwLjEgMTY1LjJ6TTM3Ni41IDQwMGwtMTc3IDAgMjEuOC00OCAxMzMuMyAwIDIxLjggNDh6TTI4OCAyMDUuM2w0NC44IDk4LjctODkuNyAwIDQ0LjgtOTguN3pNMTYzLjMgNzMuNmM1LjMtMTIuMS0uMi0yNi4zLTEyLjQtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjRDMTA5LjUgNzcgMTA0IDEwMS45IDEwNCAxMjhzNS41IDUxIDE1LjMgNzMuNmM1LjMgMTIuMSAxOS41IDE3LjcgMzEuNiAxMi40czE3LjctMTkuNSAxMi40LTMxLjZDMTU2IDE2NS44IDE1MiAxNDcuNCAxNTIgMTI4czQtMzcuOCAxMS4zLTU0LjR6TTQ1Ni43IDU0LjRjLTUuMy0xMi4xLTE5LjUtMTcuNy0zMS42LTEyLjRzLTE3LjcgMTkuNS0xMi40IDMxLjZDNDIwIDkwLjIgNDI0IDEwOC42IDQyNCAxMjhzLTQgMzcuOC0xMS4zIDU0LjRjLTUuMyAxMi4xIC4yIDI2LjMgMTIuNCAzMS42czI2LjMtLjIgMzEuNi0xMi40QzQ2Ni41IDE3OSA0NzIgMTU0LjEgNDcyIDEyOHMtNS41LTUxLTE1LjMtNzMuNnoiXX0scm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbG9uLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNDAiLCJNMjEzLjggOC43YzEyLjkgMy4yIDIwLjcgMTYuMiAxNy41IDI5LjFsLTQuNiAxOC41YzE1LjQgLjggMzAuNCAzLjQgNDQuNyA3LjVsOS40LTM3LjZDMjgzLjkgMTMuMyAyOTcgNS41IDMwOS44IDguN1MzMzAuNSAyNSAzMjcuMyAzNy44TDMxNiA4Mi44YzEzLjUgNy44IDI2IDE3LjEgMzcuMiAyNy44IDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMy4xLTIuOS02LjQtNS44LTkuOC04LjRMMjM5LjIgMzkwYzI2LjktNC42IDUxLjEtMTcuMSA3MC4xLTM1LjEgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJjLTM0LjMgMzIuMy04MCA1Mi44LTEzMC41IDU0LjRsLTcuNSAyOS45Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41cy0yMC43LTE2LjItMTcuNS0yOS4xbDUuNi0yMi41Yy0xNS0zLjItMjkuNC04LTQyLjktMTQuNGwtMTIuMSA0OC41Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41UzY5LjUgNDg3IDcyLjcgNDc0LjJsMTYtNjMuOUM0NC4zIDM3My42IDE2IDMxOC4xIDE2IDI1NiAxNiAxNTkuMiA4NC44IDc4LjQgMTc2LjMgNjBsOC40LTMzLjhDMTg3LjkgMTMuMyAyMDEgNS41IDIxMy44IDguN3pNMTU4IDEzMi45Yy00Ni4xIDIxLjgtNzggNjguNy03OCAxMjMuMSAwIDMwLjUgMTAgNTguNiAyNi45IDgxLjNMMTU4IDEzMi45ek0xNDcuNCAzNzMuNGMxMyA3LjYgMjcuMyAxMy4xIDQyLjUgMTYuMWw2NS45LTI2My42Yy0xMi42LTMuOC0yNS45LTUuOS0zOS44LTUuOS0xLjggMC0zLjUgMC01LjMgLjFMMTQ3LjQgMzczLjR6Il19LG9uYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtZmlsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUxZCIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEw0MTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4LTY0IDAgMC00OC0yODggMCAwIDE5MiAxMTIgMCAwIDk2LTE2My4yIDBDMzQuNCAzNTIgMCAzMTcuNiAwIDI3NS4yIDAgMjY0LjYgOC42IDI1NiAxOS4yIDI1Nkw2NCAyNTYgNjQgNjR6TTUyOS45IDI1Ny45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45TDU0NCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI1NmMwLTI2LjUgMjEuNS00OCA0OC00OGw3Ni4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMSAyMCAyMCA0Ny45IDQ3LjkgODMuOSA4My45ek00MTYgMjcyYzAgOC44IDcuMiAxNiAxNiAxNmw2MC4xIDAtNzYuMS03Ni4xIDAgNjAuMXoiXX0seHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaGFpIixpY29uOls1NzYsNTEyLFsiaGF5a2FsIl0sImY2NjYiLCJNMjg4LjQtOGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNGwzMS45IDgyIDc3LjItNDIuM2MxMS42LTYuMyAyNS44LTQuOSAzNS45IDMuNXMxNCAyMi4zIDkuNyAzNC44bC0yOC4yIDgzLjMgODYuMyAxNy4yYzEyLjkgMi42IDIzIDEyLjggMjUuMyAyNS44cy0zLjYgMjYuMS0xNC45IDMyLjlsLTc1LjIgNDUuNyA1NSA2OC42YzguMyAxMC4zIDkuMyAyNC42IDIuNyAzNnMtMTkuNSAxNy42LTMyLjYgMTUuNmwtODctMTMuMy0yIDg4Yy0uMyAxMy4yLTguNiAyNC44LTIxIDI5LjRzLTI2LjMgMS0zNS05bC01OC02Ni4xLTU4IDY2LjFjLTguNyA5LjktMjIuNiAxMy41LTM1IDlzLTIwLjgtMTYuMi0yMS0yOS40bC0yLTg4LTg3IDEzLjNjLTEzIDItMjYtNC4yLTMyLjYtMTUuNnMtNS41LTI1LjcgMi43LTM2bDU1LTY4LjYtNzUuMi00NS43Yy0xMS4zLTYuOC0xNy4yLTE5LjktMTQuOS0zMi45czEyLjMtMjMuMiAyNS4zLTI1LjhsODYuMy0xNy4yLTI4LjItODMuM2MtNC4yLTEyLjUtLjQtMjYuMyA5LjctMzQuOHMyNC40LTkuOSAzNS45LTMuNWw3Ny4xIDQyLjMgMzEuOS04MkMyNjMuMyAuMSAyNzUuMi04IDI4OC40LTh6bTAgMTIwLjJMMjczIDE1MS42Yy0zLjMgOC42LTEwLjIgMTUuMy0xOC45IDE4LjVzLTE4LjIgMi40LTI2LjMtMmwtMzctMjAuMyAxMy42IDQwYzMgOC43IDIgMTguMy0yLjYgMjYuM3MtMTIuNCAxMy42LTIxLjUgMTUuNGwtNDEuNCA4LjMgMzYuMSAyMS45YzcuOSA0LjggMTMuMyAxMi43IDE0LjkgMjEuOHMtLjggMTguNC02LjUgMjUuNmwtMjYuNCAzMyA0MS44LTYuNGM5LjEtMS40IDE4LjQgMS4yIDI1LjQgNy4xczExLjIgMTQuNiAxMS40IDIzLjhsLjkgNDIuMiAyNy45LTMxLjhjNi4xLTYuOSAxNC44LTEwLjkgMjQuMS0xMC45czE4IDQgMjQuMSAxMC45bDI3LjkgMzEuOCAuOS00Mi4yYy4yLTkuMiA0LjQtMTcuOSAxMS40LTIzLjhzMTYuMy04LjUgMjUuNC03LjFsNDEuOCA2LjQtMjYuNC0zM2MtNS44LTcuMi04LjItMTYuNS02LjYtMjUuNnM3LTE3IDE0LjktMjEuOGwzNi4xLTIxLjktNDEuNC04LjNjLTktMS44LTE2LjktNy40LTIxLjUtMTUuNHMtNS41LTE3LjYtMi42LTI2LjNsMTMuNi00MC0zNyAyMC4zYy04LjEgNC40LTE3LjcgNS4yLTI2LjMgMnMtMTUuNS05LjktMTguOS0xOC41bC0xNS4zLTM5LjR6Il19LG5uYT14d2UseXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtYWx0Il0sImYzZDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE5MiA4MGExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6TTY0IDE4NGwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDE0NGMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTQ0MCAxOTEuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNDQ4IDMyOGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LGxuYT15d2Usd3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWJvbHQiLGljb246WzUxMiw1MTIsWzEyNzc4NSwidGh1bmRlcnN0b3JtIl0sImY3NmMiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwzOC42IDAgMTI0LjEtMTExYzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN0wzNTQuMSAzMjAgNDE2IDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNjAuNiA0MDBsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNjIuNSAzOTYuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTQ5LjUgMzcxLjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LGNuYT13d2UsZG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV0aGVybmV0IixpY29uOls1MTIsNTEyLFtdLCJmNzk2IiwiTTAgMjI0TDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sa3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhyeXZuaWEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM3MiwiaHJ5dm5pYSJdLCJmNmYyIiwiTTMzNiAxNDkuNEMzMzYgNzcgMjY4LjUgMjMuNSAxOTggNDAuMUw5My4yIDY0LjlDNzYgNjguOSA2NS40IDg2LjIgNjkuNCAxMDMuNHMyMS4zIDI3LjkgMzguNSAyMy44bDEwNC44LTI0LjdjMzAuMy03LjEgNTkuMyAxNS44IDU5LjMgNDYuOSAwIDE3LjYtOS42IDMzLjgtMjUgNDIuM2wtLjcgLjQtMjIyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIuNCAwYzUuNS0xMy4zIDguNC0yNy44IDguNC00Mi42ek0zNjAgMjcyTDI0IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy4zIDBjLTYuMSAxMy40LTkuMyAyOC4xLTkuMyA0My4zIDAgNjQuMSA1Ni45IDExMy40IDEyMC40IDEwNC4ybDEzNy45LTE5LjljMTcuNS0yLjUgMjkuNi0xOC43IDI3LjEtMzYuMnMtMTguOC0yOS42LTM2LjItMjcuMUwxNTkuMiA0MDQuMmMtMjQuOSAzLjYtNDcuMi0xNS43LTQ3LjItNDAuOSAwLTE1LjEgOC4yLTI4LjkgMjEuNC0zNi4ybDEzLTcuMSAyMTMuNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0eiJdfSx1bmE9a3dlLGF2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTIwNC41IDEzOC43YzIzLjUtMTYuOCA1Mi40LTI2LjcgODMuNS0yNi43IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgMzEuMS05LjkgNTkuOS0yNi43IDgzLjVsLTM0LjctMzQuN2MxMi43LTIxLjQgMTctNDcuNyAxMC4xLTczLjctMTMuNy01MS4yLTY2LjQtODEuNi0xMTcuNi02Ny45LTguNiAyLjMtMTYuNyA1LjctMjQgMTBsLTM0LjctMzQuN3pNMzI1LjMgMzk1LjFjLTExLjkgMy4yLTI0LjQgNC45LTM3LjMgNC45LTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtMTIuOSAxLjctMjUuNCA0LjktMzcuM0w2OS40IDEzOS4yYy0zMi42IDM2LjgtNTUgNzUuOC02Ni45IDEwNC41LTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNiAzNy4zIDAgNzEuMi03LjkgMTAxLjUtMjAuNmwtNjQuMi02NC4yeiJdfSxTd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1mbGF0YmVkLXN1aXRjYXNlIixpY29uOls1NzYsNTEyLFsibHVnZ2FnZS1jYXJ0Il0sImY1OWQiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM0LjcgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC01LjYgMS0xMSAyLjctMTZsLTE5Ny41IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNiAxLjEtMTEuNyAzLjEtMTctMzguMS02LjItNjcuMS0zOS4yLTY3LjEtNzlMNjQgODBjMC04LjgtNy4yLTE2LTE2LTE2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6TTE3NiAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMCAwLTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2bDY0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAyNCAzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNDAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNDR6TTM4NCA5NmwwLTI0YzAtNC40LTMuNi04LTgtOGwtNjQgMGMtNC40IDAtOCAzLjYtOCA4bDAgMjQgODAgMHoiXX0scG5hPVN3ZSxobmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFkaWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmN2I5IiwiTTQ0Ni4yIDM0LjVjLTE0LjItMTAuMS0zMy41LTQuNi00Mi4yIDEwLjVMMzMxLjYgMTcwLjNjMzEuMyAxNS44IDUyLjggNDguMyA1Mi44IDg1LjdsMTQ0IDBjMTcuNyAwIDMyLjItMTQuNCAzMC4xLTMxLjktOS4xLTc4LjEtNTEuNC0xNDYuMS0xMTIuMy0xODkuNnpNMTcyLjcgNDQuOUMxNjQgMjkuOCAxNDQuNyAyNC4zIDEzMC41IDM0LjUgNjkuNiA3Ny45IDI3LjMgMTQ1LjkgMTguMiAyMjQuMSAxNi4xIDI0MS42IDMwLjcgMjU2IDQ4LjMgMjU2bDE0NCAwYzAtMzcuNSAyMS41LTY5LjkgNTIuOC04NS43TDE3Mi43IDQ0Ljl6bS05LjQgNDE2LjhjLTguNyAxNS4xLTMuOCAzNC41IDEyIDQxLjggMzQuNCAxNS43IDcyLjcgMjQuNSAxMTMgMjQuNXM3OC42LTguOCAxMTMtMjQuNWMxNS44LTcuMiAyMC43LTI2LjcgMTItNDEuOEwzNDEgMzM2LjNjLTE1LjEgOS45LTMzLjIgMTUuNy01Mi42IDE1LjdzLTM3LjUtNS44LTUyLjYtMTUuN0wxNjMuMyA0NjEuN3pNMjg4LjMgMzA0YTQ4IDQ4IDAgMSAwIC0uNy05NiA0OCA0OCAwIDEgMCAuNyA5NnoiXX0sZm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTM1LjQgMjc0LjhjLTIuOS0xMi45LTE1LjctMjEuMS0yOC42LTE4LjJzLTIxLjEgMTUuNy0xOC4yIDI4LjZsMzIgMTQ0YzIuMyAxMC41IDExLjQgMTguMiAyMi4yIDE4LjhzMjAuNi02LjEgMjQtMTYuNGwyNS4yLTc1LjcgMjUuMiA3NS43YzMuNCAxMC4yIDEzLjIgMTYuOSAyNCAxNi40czE5LjktOC4yIDIyLjItMTguOGwzMi0xNDRjMi45LTEyLjktNS4zLTI1LjgtMTguMi0yOC42cy0yNS44IDUuMy0yOC42IDE4LjJsLTEzLjIgNTkuNC0yMC42LTYxLjhjLTMuMy05LjgtMTIuNC0xNi40LTIyLjgtMTYuNHMtMTkuNSA2LjYtMjIuOCAxNi40bC0yMC42IDYxLjgtMTMuMi01OS40eiJdfSxfd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkLXB1bHNlIixpY29uOls2NDAsNTEyLFsicHJvY2VkdXJlcyJdLCJmNDg3IiwiTTUzMS4yLTIyLjRMNTcyIDMyIDYxNiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtNy42IDAtMTQuNy0zLjYtMTkuMi05LjZsLTI0LjEtMzIuMS00NyA5OS45Yy0zLjcgNy44LTExLjMgMTMuMS0xOS45IDEzLjdzLTE2LjktMy40LTIxLjctMTAuNkwzODcuMiA4MCAzNDQgODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM4IDAgMTUuNSA0IDIwIDEwLjdsMjQuNCAzNi42IDQ1LjktOTcuNWMzLjYtNy42IDEwLjktMTIuOCAxOS4zLTEzLjdzMTYuNiAyLjcgMjEuNiA5LjV6TTMyMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsOS41IDAgMjYuNiAzOS45YzE0LjQgMjEuNiAzOS4zIDMzLjggNjUuMiAzMS45czQ4LjgtMTcuNiA1OS44LTQxLjFMNTI3IDEyOS4yYzQ1LjkgNy4yIDgxIDQ2LjkgODEgOTQuOGwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTQ0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJTOTYgNDYuMyA5NiA2NGwwIDIyNCAyMjQgMCAwLTEyOHpNMTQ0IDE5MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LG1uYT1fd2UsZ25hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnRzIixpY29uOls1NzYsNTEyLFtdLCJlNTgyIiwiTTUzOS45IDM1MmwtOTUuNiAwLTguNC02Ni4xYy0yLjktMjMuMi0xNS45LTQzLjktMzUuNC01Ni44TDI1Mi4yIDEzMS41Yy0xOC0xMS45LTM5LjctMTUuNy02MC4xLTExLjUgMi41LTQuMyA1LjktNy45IDEwLjEtMTAuN0wzNTAuNiAxMS42YzEwLjctNyAyNC41LTcgMzUuMiAwbDE0OC40IDk3LjdjNy44IDUuMSAxMyAxMy40IDE0LjIgMjIuN2wyMy4zIDE4NGMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZ6TTQuOCA0NzZsMjMuMy0xODRjMS4yLTkuMyA2LjMtMTcuNiAxNC4yLTIyLjdsMTQ4LjQtOTcuN2MxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC00OS43IDBjLTExLjIgMC0yMS41LTUuOC0yNy4zLTE1LjRsLTc3LTEyNi43Yy0xLjctMi44LTQuOC00LjYtOC4xLTQuNi01LjMgMC05LjUgNC4zLTkuNSA5LjVsMCAxMDUuMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzNi41IDUxMmMtMTkuMyAwLTM0LjItMTYuOS0zMS43LTM2eiJdfSxzdj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtdWctaG90IixpY29uOls1NzYsNTEyLFs5NzQ5XSwiZjdiNiIsIk0xNTItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxYzE2LjMgMTQuMyAyMy44IDIxLjggMjMuOCAzNy45IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzE4My41IDMxLjcgMTc2IDI0LjEgMTc2IDggMTc2LTUuMyAxNjUuMy0xNiAxNTItMTZ6TTk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM0MS44IDAgNzcuNC0yNi43IDkwLjUtNjRsNS41IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTNTE4LjcgMTkyIDQ0OCAxOTJMOTYgMTkyek00NDggMzg0bDAtMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek0yODggOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyNDAtNS4zIDI0MCA4YzAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxYzE2LjMgMTQuMyAyMy44IDIxLjggMjMuOCAzNy45IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzI5NS41IDMxLjcgMjg4IDI0LjEgMjg4IDh6Il19LE13ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib2x0IixpY29uOls0NDgsNTEyLFs5ODg5LCJ6YXAiXSwiZjBlNyIsIk0zMzguOC05LjljMTEuOSA4LjYgMTYuMyAyNC4yIDEwLjkgMzcuOEwyNzEuMyAyMjQgNDE2IDIyNGMxMy41IDAgMjUuNSA4LjQgMzAuMSAyMS4xcy43IDI2LjktOS42IDM1LjVsLTI4OCAyNDBjLTExLjMgOS40LTI3LjQgOS45LTM5LjMgMS4zcy0xNi4zLTI0LjItMTAuOS0zNy44TDE3Ni43IDI4OCAzMiAyODhjLTEzLjUgMC0yNS41LTguNC0zMC4xLTIxLjFzLS43LTI2LjkgOS42LTM1LjVsMjg4LTI0MGMxMS4zLTkuNCAyNy40LTkuOSAzOS4zLTEuM3oiXX0sYm5hPU13ZSx2bmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamFyIixpY29uOlszMjAsNTEyLFtdLCJlNTE2IiwiTTMyLThjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgMTZDNDIuNyAxNiAzMiA1LjMgMzItOHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptOTYgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDE5MnoiXX0seG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXBsYW5lIixpY29uOls2NDAsNTEyLFtdLCJlNThmIiwiTTE0NCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDI3LjNjMCA3LjEgLjkgMTQuMSAyLjcgMjAuN0wxOTIgNDgwIDgzLjkgNTA3QzczLjggNTA5LjYgNjQgNTAxLjkgNjQgNDkxLjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDc0LTU5LjIgMC01Ny42LTEyMi4xIDQ4LjhDMTEuNCAzOTUuNCAwIDM4Ny43IDAgMzc2LjRsMC00NGMwLTggMy0xNS42IDguMy0yMS41TDE0NCAxNjEuNiAxNDQgNDh6bTIyNCA4MGwxOTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2MGMwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDhjLTE5LjQtMTQuNi0zMi0zNy44LTMyLTY0bDAtMTYwYzAtNDQuMiAzNS44LTgwIDgwLTgwem0wIDE3NmwxOTIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMnptMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTIxNi0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx5bmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWhlYXJ0IixpY29uOls1NzYsNTEyLFtdLCJmNGJlIiwiTTI3OS42IDMxQzI2NS41IDExLjUgMjQyLjkgMCAyMTguOSAwIDE3Ny41IDAgMTQ0IDMzLjUgMTQ0IDc0LjlsMCAyLjRjMCA2NC40IDgyIDEzMy40IDEyMi4yIDE2My4zIDEzIDkuNyAzMC41IDkuNyA0My41IDAgNDAuMi0zMCAxMjIuMi05OC45IDEyMi4yLTE2My4zbDAtMi40YzAtNDEuNC0zMy41LTc0LjktNzQuOS03NC45LTI0IDAtNDYuNiAxMS41LTYwLjcgMzFMMjg4IDQyLjcgMjc5LjYgMzF6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxOYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yb3RhdGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbODYzNCwiYXJyb3ctbGVmdC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtYmFjayIsImFycm93LXJvdGF0ZS1iYWNrd2FyZCIsInVuZG8iXSwiZjBlMiIsIk0yNTYgNjRjLTU2LjggMC0xMDcuOSAyNC43LTE0My4xIDY0bDQ3LjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwUzY0IDE0LjMgNjQgMzJsMCA1NC43QzExMC45IDMzLjYgMTc5LjUgMCAyNTYgMCAzOTcuNCAwIDUxMiAxMTQuNiA1MTIgMjU2UzM5Ny40IDUxMiAyNTYgNTEyYy04NyAwLTE2My45LTQzLjQtMjEwLjEtMTA5LjctMTAuMS0xNC41LTYuNi0zNC40IDcuOS00NC42czM0LjQtNi42IDQ0LjYgNy45YzM0LjggNDkuOCA5Mi40IDgyLjMgMTU3LjYgODIuMyAxMDYgMCAxOTItODYgMTkyLTE5MlMzNjIgNjQgMjU2IDY0eiJdfSx3bmE9TmIsa25hPU5iLFNuYT1OYixfbmE9TmIsendlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtYW5ncnkiLGljb246WzUxMiw1MTIsWzEyODU0NCwiYW5ncnkiXSwiZjU1NiIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yNTYgMzY4YzI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwcy03NS43IDE5LjgtOTcuNSA1MGMtNy43IDEwLjgtNS4zIDI1LjggNS41IDMzLjVzMjUuOCA1LjMgMzMuNS01LjVjMTMuMS0xOC4yIDM0LjQtMzAgNTguNS0zMHptLTgwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtLjMgOS43IDMuMmMxMC41IDMuNSAyMS44LTIuMiAyNS4zLTEyLjZzLTIuMi0yMS44LTEyLjYtMjUuM2wtOTYtMzJjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNsMjguOSA5LjZjLTQuMSA1LjQtNi42IDEyLjEtNi42IDE5LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTcuMy0yLjQtMTQtNi42LTE5LjRsMjguOS05LjZjMTAuNS0zLjUgMTYuMS0xNC44IDEyLjYtMjUuM3MtMTQuOC0xNi4xLTI1LjMtMTIuNmwtOTYgMzJjLTEwLjUgMy41LTE2LjEgMTQuOC0xMi42IDI1LjNzMTQuOCAxNi4xIDI1LjMgMTIuNmw5LjctMy4yIDAgLjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnoiXX0sTW5hPXp3ZSx6bmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVyc3QiLGljb246WzUxMiw1MTIsW10sImU0ZGMiLCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN1MtMi4zIDI4IDQuMiAzNy42bDExMiAxNjMuMy05OS42IDMyLjNDNi43IDIzNi40IDAgMjQ1LjYgMCAyNTZzNi43IDE5LjYgMTYuNiAyMi44bDEwMy4xIDMzLjQtNTIuOSAxMDAuNmMtNC45IDkuMy0zLjIgMjAuNyA0LjMgMjguMXMxOC44IDkuMiAyOC4xIDQuM2wxMDAuNi01Mi45IDMzLjQgMTAzLjFjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42czE5LjYtNi43IDIyLjgtMTYuNmwzMy40LTEwMy4xIDEwMC42IDUyLjljOS4zIDQuOSAyMC43IDMuMiAyOC4xLTQuM3M5LjItMTguOCA0LjMtMjguMWwtNTIuOS0xMDAuNiAxMDMuMS0zMy40YzkuOS0zLjIgMTYuNi0xMi40IDE2LjYtMjIuOHMtNi43LTE5LjYtMTYuNi0yMi44bC0xMDYuNS0zNC41IDI1LjctNzAuNGMzLjItOC44IDEtMTguNi01LjYtMjUuMnMtMTYuNC04LjgtMjUuMi01LjZsLTcwLjQgMjUuNy0zNC41LTEwNi41QzI3NS42IDYuNyAyNjYuNCAwIDI1NiAwcy0xOS42IDYuNy0yMi44IDE2LjZMMjAwLjkgMTE2LjIgMzcuNiA0LjJ6Il19LENuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ6IixpY29uOlszODQsNTEyLFsxMjJdLCI1YSIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDMyMCAwYzEyLjQgMCAyMy43IDcuMiAyOSAxOC40czMuNiAyNC41LTQuNCAzNC4xTDEwMC4zIDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTIuNCAwLTIzLjctNy4yLTI5LTE4LjRzLTMuNi0yNC41IDQuNC0zNC4xTDI4My43IDk2IDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LEN3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW5kYWdlIixpY29uOls1NzYsNTEyLFsxMjk2NTcsImJhbmQtYWlkIl0sImY0NjIiLCJNNDY0IDQxNmw0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00OCAwIDAgMzIwek00MTYgOTZsLTI1NiAwIDAgMzIwIDI1NiAwIDAtMzIwek02NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDggMCAwLTMyMC00OCAwek0yMTYgMjA4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIxNiAzMDRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sVG5hPUN3ZSwkbmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTU2IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyMjhhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDEgMCAwIDQwem0wLTE4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sRG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cy1zaWRlIixpY29uOls2NDAsNTEyLFtdLCJlODFkIiwiTTQ4MCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC01LjYgMGMtMTMuMiAzNy4zLTQ4LjYgNjQtOTAuNCA2NHMtNzcuMy0yNi43LTkwLjQtNjRsLTEzOS4xIDBjLTEzLjIgMzcuMy00OC43IDY0LTkwLjQgNjRzLTc3LjItMjYuNy05MC40LTY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDQzIDQzIDAgOTYgMEw0ODAgMHpNMTYwIDM2OGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6bTMyMCAwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMC0zMDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC01My00My05Ni05Ni05NnpNMjQ4IDIyNGwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwIDE2MHpNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDAgMC0xNjAtMTA0IDB6Il19LExuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWdzIixpY29uOls1NzYsNTEyLFtdLCJlNGQwIiwiTTQ0Ny41IDE3NC42YzguOC04LjQgMjIuNy04LjkgMzIuMi0uOHMxMSAyMS45IDQuMSAzMS45bC0xLjUgMS45LTIzIDI2LjdjMjYuNyAxMy41IDQ2LjMgMzkuMSA1MS40IDY5LjZsMjUuMyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgMzIgMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjUuMyAwYy03LjYgNDUuNC00Ny4xIDgwLTk0LjcgODBzLTg3LTM0LjYtOTQuNy04MEwyOTYgNDMyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMGM1LjEtMzAuNSAyNC43LTU2LjEgNTEuNC02OS42bC0yMi45LTI2LjdjLTguNi0xMC4xLTcuNS0yNS4yIDIuNi0zMy44czI1LjItNy41IDMzLjggMi42bDI5LjggMzQuOCAyOS44LTM0LjggMS43LTEuOHptLTI1Ni0xOTJjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN0MyMzAgNTUuOSAyNDkuNSA4MS41IDI1NC43IDExMmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtMzItMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNS4zIDBDNzAuNSA4MS41IDkwIDU1LjkgMTE2LjcgNDIuNEw5My44IDE1LjZDODUuMiA1LjYgODYuMy05LjYgOTYuNC0xOC4yczI1LjItNy41IDMzLjggMi42bDI5LjggMzQuOCAyOS44LTM0LjggMS43LTEuOHoiXX0sVHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZXItbXVnLWVtcHR5IixpY29uOls1NzYsNTEyLFsiYmVlciJdLCJmMGZjIiwiTTY0IDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI4OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwOC4yYzAgMjQuMi0xMy43IDQ2LjQtMzUuNCA1Ny4yTDQ0OCAzNzEuOCA0NDggMzg0YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDY0IDgwek00NDggMzAwLjJsNjQtMzIgMC0xMDguMi02NCAwIDAgMTQwLjJ6TTE5MiAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHptODggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6Il19LEVuYT1Ud2UsUG5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1M2UiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sSW5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXBsZXIiLGljb246WzY0MCw1MTIsW10sImU1YWYiLCJNNjQwIDI5OS4zTDY0MCA0MzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwIDAtNDgtMzUyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE2LjYtMzAuMi01LjRjLTE5LjYtMy41LTMzLjgtMjAuNS0zMy44LTQwLjQgMC04LjkgMi45LTE3LjUgOC4yLTI0LjZsMzUuNi00Ny41YzMyLjgtNDMuOCA4NC40LTY5LjYgMTM5LjEtNjkuNiAyNyAwIDUzLjYgNi4zIDc3LjggMTguNEw1ODYuOSAyMTMuNUM2MTkuNSAyMjkuNyA2NDAgMjYzIDY0MCAyOTkuM3pNNDQ4IDMwNGwwLTE2LTMyMC01Ny4xIDAgNzMuMSAzMjAgMHoiXX0sQW5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTExIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxObmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmFpcmEtc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTFmNiIsIk0xMjIuNiA0Ni4zYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVM2NCA0OS45IDY0IDY0bDAgMTkyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDE0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTQ0IDg5LjUgMCAxMDcuOCAxNjEuOGM3LjggMTEuNyAyMi40IDE3IDM1LjkgMTIuOVMzODQgNDYyLjEgMzg0IDQ0OGwwLTE0NCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTkyLTU3LjUgMC0xMzkuOC0yMDkuN3pNMjk0LjUgMzA0bDI1LjUgMCAwIDM4LjMtMjUuNS0zOC4zek0xODUuNSAyNTZsLTU3LjUgMCAwLTg2LjMgNTcuNSA4Ni4zeiJdfSxLb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2lmaSIsaWNvbjpbNTc2LDUxMixbIndpZmktMyIsIndpZmktc3Ryb25nIl0sImYxZWIiLCJNMjg4IDk2Yy05MC45IDAtMTczLjIgMzYtMjMzLjcgOTQuNi0xMi43IDEyLjMtMzMgMTItNDUuMi0uN3MtMTItMzMgLjctNDUuMkM4MS43IDc0LjkgMTc5LjkgMzIgMjg4IDMyUzQ5NC4zIDc0LjkgNTY2LjMgMTQ0LjdjMTIuNyAxMi4zIDEzIDMyLjYgLjcgNDUuMnMtMzIuNiAxMy00NS4yIC43QzQ2MS4yIDEzMiAzNzguOSA5NiAyODggOTZ6TTI0MCA0MzJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTY4IDMyNi4yYy0xMS43IDEzLjMtMzEuOSAxNC41LTQ1LjIgMi44cy0xNC41LTMxLjktMi44LTQ1LjJDMTYxIDIzNy40IDIyMS4xIDIwOCAyODggMjA4czEyNyAyOS40IDE2OCA3NS44YzExLjcgMTMuMyAxMC40IDMzLjUtMi44IDQ1LjJzLTMzLjUgMTAuNC00NS4yLTIuOEMzNzguNiAyOTIuOSAzMzUuOCAyNzIgMjg4IDI3MnMtOTAuNiAyMC45LTEyMCA1NC4yeiJdfSxSbmE9S29lLE9uYT1Lb2UsbWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktY2hlY2stZG9sbGFyIixpY29uOls1MTIsNTEyLFsibW9uZXktY2hlY2stYWx0Il0sImY1M2QiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTI5NiAyODhsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0tMjQtODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTQ4IDE0NGMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN0M5NC41IDI2OCA3NiAyNDYuMSA3NiAyMjAuNSA3NiAxOTEuNyA5OS4yIDE2OC4zIDEyOCAxNjhsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sRm5hPW1mLCR3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleWUtbG93LXZpc2lvbiIsaWNvbjpbNTc2LDUxMixbImxvdy12aXNpb24iXSwiZjJhOCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTIwNC41IDEzOC43YzIzLjUtMTYuOCA1Mi40LTI2LjcgODMuNS0yNi43IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgMzEuMS05LjkgNTkuOS0yNi43IDgzLjVsLTM0LjctMzQuN2MxMi43LTIxLjQgMTctNDcuNyAxMC4xLTczLjctMTMuNy01MS4yLTY2LjQtODEuNi0xMTcuNi02Ny45LTguNiAyLjMtMTYuNyA1LjctMjQgMTBsLTM0LjctMzQuN3pNODggMTU3LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMzI4LjIgNDY2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw4OCAxNTcuOXpNNDUuNyAyNTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxODEuOSA0NTUuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDUuNyAyNTEuM3oiXX0sQm5hPSR3ZSxEd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LXVwIixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLXVwIl0sImYwYWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE3LTM3N2w4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zOS0zOSAwIDE1MC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTUwLjEtMzkgMzljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LEhuYT1Ed2UscW5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yZXRybyIsaWNvbjpbNTEyLDUxMixbMTI4MjQ3XSwiZjA4MyIsIk0wIDQxNmwwLTIwOCAxMzYuMiAwYzEzLjUtMjAuMiAzMi0zNi44IDUzLjctNDhMMCAxNjAgMCAxMjUuN2MwLTM1LjMgMjguNy02NCA2NC02NGwuMSAwQzY1LjMgNDUuMSA3OS4xIDMyIDk2IDMybDMyIDBjMTYuOSAwIDMwLjcgMTMuMSAzMS45IDI5LjdsMzIuMSAwIDUxLjItMjMuOGM4LjQtMy45IDE3LjYtNiAyNi45LTZMNDQ4IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjQtMTkwIDBjMjEuNyAxMS4yIDQwLjIgMjcuOCA1My43IDQ4bDEzNi4yIDAgMCAyMDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMjU2IDE5MmE5Ni4xIDk2LjEgMCAxIDAgMCAxOTIuMSA5Ni4xIDk2LjEgMCAxIDAgMC0xOTIuMXoiXX0sam5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcHN1bGVzIixpY29uOls1NzYsNTEyLFtdLCJmNDZiIiwiTTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyLTk2IDAgMC0xMTJ6bS02NCAwbDAgMjg4YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJsMC0xMDUuOCAxMTYuMyAxNjkuNWMzNS41IDUxLjcgMTA1LjMgNjQuMyAxNTYgMjguMXM2My0xMDcuNSAyNy41LTE1OS4yTDQyNy4zIDE0NS4zYy0zNS41LTUxLjctMTA1LjMtNjQuMy0xNTYtMjguMS01LjYgNC0xMC43IDguNC0xNS4zIDEzLjFsMC0xOC4zQzI1NiA1MC4xIDIwNS45IDAgMTQ0IDBTMzIgNTAuMSAzMiAxMTJ6TTI5Ni42IDI0MC4yYy0xNi0yMy4zLTEwLTU1LjMgMTEuOS03MSAyMS4yLTE1LjEgNTAuNS0xMC4zIDY2IDEyLjJsNjcgOTcuNi03OS45IDU1LjktNjUtOTQuOHoiXX0sVm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvbyIsaWNvbjpbNTEyLDUxMixbMTI4MTY5XSwiZjJmZSIsIk0yNjguOSAuOWMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjRjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDQ0LjEtMzUuNyA3OS45LTc5LjggODBMMTYwIDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjQgMCAxOS4xIDguNCAzNi4zIDIxLjcgNDhMMTA0IDI0MGMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAyMy4yIDExIDQzLjggMjggNTctMzQuMSA1LjctNjAgMzUuMy02MCA3MSAwIDM5LjggMzIuMiA3MiA3MiA3MmwzNjggMGMzOS44IDAgNzItMzIuMiA3Mi03MiAwLTM1LjctMjUuOS02NS4zLTYwLTcxIDE3LTEzLjIgMjgtMzMuOCAyOC01NyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtMTMuNyAwYzEzLjMtMTEuNyAyMS43LTI4LjkgMjEuNy00OCAwLTM1LjMtMjguNy02NC02NC02NGwtNS41IDBjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTQ4LjYtMzYuMi04OC44LTgzLjEtOTUuMXpNMTkyIDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTY0IDEwOC4zYzAgMi40LS43IDQuOC0yLjIgNi43LTguMiAxMC41LTM5LjUgNDUtOTMuOCA0NXMtODUuNi0zNC42LTkzLjgtNDVjLTEuNS0xLjktMi4yLTQuMy0yLjItNi43IDAtNi44IDUuNS0xMi4zIDEyLjMtMTIuM2wxNjcuNCAwYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM3oiXX0sTHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZSIsaWNvbjpbNTEyLDUxMixbMTI4MjY1LCJ2b2x1bWUtbWVkaXVtIl0sImY2YTgiLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTQ0MS4xIDEwN2MtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzQ0My4zIDE3MC43IDQ2NCAyMTAuOSA0NjQgMjU2cy0yMC43IDg1LjMtNTMuMiAxMTEuOGMtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNWM0My4yLTM1LjIgNzAuOS04OC45IDcwLjktMTQ5cy0yNy43LTExMy44LTcwLjktMTQ5em0tNjAuNSA3NC41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzYxLjEgMjI3LjYgMzY4IDI0MSAzNjggMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDAyLjEgMzEyLjkgNDE2IDI4Ni4xIDQxNiAyNTZzLTEzLjktNTYuOS0zNS41LTc0LjV6Il19LFVuYT1Md2UsV25hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVsZXZhdG9yIixpY29uOls1MTIsNTEyLFtdLCJlMTZkIiwiTTI5Mi43LTQuN2w2NCA2NGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw2NC02NGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzQzOC41LTMyIDQzMi0zMkwzMDQtMzJjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNHptLTE2MC0yMi42bC02NCA2NGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNFM3My41IDY0IDgwIDY0bDEyOCAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC02NC02NGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4em05NiA5NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTgwIDQwMGMwLTI2LjUgMjEuNS00OCA0OC00OGw2NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6bTE5MiAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMzItMTI4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LEduYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWciLGljb246WzUxMiw1MTIsWzEyNzk5MV0sImYwMmIiLCJNMzIuNSA5NmwwIDE0OS41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDE5MiAxOTJjMjUgMjUgNjUuNSAyNSA5MC41IDBMNDgzLjIgMzMzLjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVsLTE5Mi0xOTJDMjc5LjIgMzguNyAyNjMgMzIgMjQ2IDMyTDk2LjUgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0em0xMTIgMTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxLbmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtbWludXMiLGljb246WzU3Niw1MTIsW10sImU0ZWQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2eiJdfSxFd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bi1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1hbHQtZG93biJdLCJmMzA5IiwiTTEzNy40IDUzNC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzAwLjkgMzUyIDI4OCAzNTJsLTY0IDAgMC0zMzZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzM2LTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjIgMzk3LjUgOS40IDQwNi42bDEyOCAxMjh6Il19LFluYT1Fd2UsWm5hPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhY3QtZGlzYyIsaWNvbjpbNTEyLDUxMixbMTI4MTkxLDEyODE5MiwxMjg0NDBdLCJmNTFmIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiAzMmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS05Ni0zMmE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMCAtMTkyIDB6bS01Ni0xNmMwLTMyLjQgMTYuMy02Ni42IDQyLjgtOTMuMlMyMDcuNiAxMDQgMjQwIDEwNGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDcuOSAwLTkzLjcgMjMuNS0xMjcuMSA1Ni45UzU2IDE5Mi4xIDU2IDI0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0eiJdfSxYbmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2Utcm9sbGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjVjMSIsIk0xNDQgMjRjMC00LjQgMy42LTggOC04bDgwIDBjNC40IDAgOCAzLjYgOCA4bDAgNzItOTYgMCAwLTcyek0zMjAgOTZsLTMyIDAgMC03MmMwLTMwLjktMjUuMS01Ni01Ni01NmwtODAgMEMxMjEuMS0zMiA5Ni02LjkgOTYgMjRsMCA3Mi0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODhjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEyMCAyMDhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFB3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXF1cmFuIixpY29uOls0NDgsNTEyLFsicXVyYW4iXSwiZjY4NyIsIk02NCA1MTJsMjg4IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMyMGMwLTUzLTQzLTk2LTk2LTk2TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgMzM2YzAgMjAuOSAxMy40IDM4LjcgMzIgNDUuM0wzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMHpNMzUyIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDAgMC02NCAyNTYgMHpNMjczLjEgMTQ0LjRjMi41LTYuMSAxMS4yLTYuMSAxMy43IDBsMTAuMyAyNC44IDI2LjggMi4xYzYuNiAuNSA5LjIgOC43IDQuMiAxM0wzMDcuOCAyMDEuOSAzMTQgMjI4YzEuNSA2LjQtNS41IDExLjUtMTEuMSA4LjFsLTIyLjktMTQtMjIuOSAxNGMtNS42IDMuNC0xMi42LTEuNi0xMS4xLTguMWw2LjItMjYuMS0yMC40LTE3LjVjLTUtNC4zLTIuMy0xMi41IDQuMi0xM2wyNi44LTIuMSAxMC4zLTI0Ljh6TTEwMCAxOTJjMC02OC41IDU1LjUtMTI0IDEyNC0xMjQgMjMuOCAwIDQ2LjEgNi43IDY1IDE4LjQgNC44IDIuOSA2LjkgOC44IDUgMTQuMXMtNy4xIDguNi0xMi43IDhjLTMuMS0uMy02LjItLjUtOS40LS41LTQ2LjQgMC04NCAzNy42LTg0IDg0czM3LjYgODQgODQgODRjMy4yIDAgNi4zLS4yIDkuNC0uNSA1LjYtLjYgMTAuOCAyLjcgMTIuNyA4cy0uMyAxMS4yLTUgMTQuMWMtMTguOSAxMS43LTQxLjIgMTguNC02NSAxOC40LTY4LjUgMC0xMjQtNTUuNS0xMjQtMTI0eiJdfSxRbmE9UHdlLEpuYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjNkZCIsIk01MzUtMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTM3LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTQxLjUgMzY4LjZDODkuMiAzMTAuNSA1MS42IDIzOC44IDM0LjggMTU5LjQgMTguNyA4My4xIDczLjkgMjAuNiAxMzguNSAyLjlsNS41LTEuNWMxOS43LTUuNCA0MC4zIDQuNyA0OC4xIDIzLjVsNDAuNSA5Ny4zYzYuOSAxNi41IDIuMSAzNS42LTExLjggNDdsLTQ0LjEgMzYuMWMxMi45IDI4LjUgMjkuNiA1NC44IDQ5LjUgNzguNUw1MzUtMjQuOXptLTE1MC40IDUzNGMtNjMtMTMuNC0xMjEuMy0zOS44LTE3MS43LTc2LjNMMjk3LjggMzQ4YzEyLjIgOC4yIDI1IDE1LjYgMzguMyAyMi4yTDM3NC43IDMyM2MxMS4zLTEzLjkgMzAuNC0xOC42IDQ3LTExLjhMNTE5IDM1MS44YzE4LjggNy44IDI4LjkgMjguNCAyMy41IDQ4LjFsLTEuNSA1LjVjLTE3LjYgNjQuNi04MC4yIDExOS44LTE1Ni40IDEwMy43eiJdfSxlbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NjQiLCJNMjg4IDMybC03Ni4zIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjUgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OWMzNS4yLTM5LjkgODYuNy02NSAxNDQtNjUgOSAwIDE3LjggLjYgMjYuNSAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSx0bGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvcC1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNGE1IiwiTTIxLjUgMTgxLjFMNzguMyA2Ny40Qzg5LjIgNDUuNyAxMTEuMyAzMiAxMzUuNiAzMmwzMDQuOSAwYzI0LjIgMCA0Ni40IDEzLjcgNTcuMiAzNS40bDU1LjYgMTExLjFjLTguMi0xLjYtMTYuNi0yLjUtMjUuMi0yLjUtNTMuNyAwLTk5LjcgMzMuMS0xMTguNyA4MGwtNTcuMyAwIDAgMTc2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNzYuMWMtMjYuOC0xLjktNDgtMjQuMy00OC01MS42IDAtOCAxLjktMTYgNS41LTIzLjJ6TTEyOCAyNTZsMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMi0xNjAgMHptNDMyIDQ4LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxJd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2UtcG9ydHJhaXQiLGljb246WzM4NCw1MTIsWyJwb3J0cmFpdCJdLCJmM2UwIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNODAgMzY4YzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0xOTIgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxhbGE9SXdlLHNsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDAgMCAzMi4yYzEzLjggLjYgMjcuMiAyLjggNDAgNi40bDAgNTAuN2MtMTQuOC02LTMxLTkuMy00OC05LjMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhsMCAyNC40Yy0uNCAuMy0uNyAuNi0xLjEgMS0xNy4zLTI1LTQ2LjItNDEuMy03OC45LTQxLjMtNTMgMC05NiA0My05NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0em00MjQgNjguNmwwLTM2LjYtODAgMCAwIDY0IDE4LjggMGMxOC4yLTEyLjggMzguOS0yMi4yIDYxLjItMjcuNHpNMjE2IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6bS00OCAwbC04MCAwIDAgNjQgODAgMCAwLTY0ek00OTYgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxpbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFtbWVyIixpY29uOls2NDAsNTEyLFsxMjgyOTZdLCJmNmUzIiwiTTI0Ni45IDE4LjNMMjcxIDMuOGMyMS42LTEzIDQ2LjMtMTkuOCA3MS41LTE5LjggMzYuOCAwIDcyLjIgMTQuNiA5OC4yIDQwLjdsNjMuOSA2My45YzE1IDE1IDIzLjQgMzUuNCAyMy40IDU2LjZsMCAzMC45IDE5LjcgMTkuNyAwIDBjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDBzMTUuNiA0MC45IDAgNTYuNmwtNjQgNjRjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42TDQ2NCAyNDAgNDMzLjEgMjQwYy0yMS4yIDAtNDEuNi04LjQtNTYuNi0yMy40bC00OS4xLTQ5LjFjLTE1LTE1LTIzLjQtMzUuNC0yMy40LTU2LjZsMC0xMi43YzAtMTEuMi01LjktMjEuNy0xNS41LTI3LjRsLTQxLjYtMjVjLTEwLjQtNi4yLTEwLjQtMjEuMiAwLTI3LjR6TTUwLjcgNDAyLjdsMjIyLjEtMjIyLjEgOTAuNSA5MC41LTIyMi4xIDIyMi4xYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjV6Il19LEF3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC0xLTkiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtdXAiXSwiZjE2MyIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTQxOC43IDM4Yy04LjMtNi0xOS4xLTcuNy0yOC44LTQuNGwtNDggMTZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmw1LjktMiAwIDUxLjYtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTM2NS4xIDQzMC42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAzMzZhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0scmxhPUF3ZSxvbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOlszODQsNTEyLFs5ODIyXSwiZjQ0MSIsIk0xOTItMzJjMTA2IDAgMTkyIDg2IDE5MiAxOTJsMCAxMzMuNWMwIDE3LTYuOCAzMy4yLTE4LjcgNDUuMkwzMjAgMzg0IDM3MC44IDQzNC43YzguNSA4LjUgMTMuMiAyMCAxMy4yIDMyIDAgMjUtMjAuMyA0NS4yLTQ1LjIgNDUuM0w0NS4zIDUxMmMtMjUgMC00NS4yLTIwLjMtNDUuMi00NS4zIDAtMTIgNC44LTIzLjUgMTMuMi0zMkw2NCAzODQgNjQgMzQ5LjRjMC0xOC43IDguMi0zNi40IDIyLjMtNDguNmw4OS43LTc2LjgtNDggMC0xMi4xIDEyLjFjLTEyLjcgMTIuNy0zMCAxOS45LTQ4IDE5LjktMzcuNSAwLTY3LjktMzAuNC02Ny45LTY3LjlsMC04LjdjMC0yMi44IDguMi00NC45IDIzLjEtNjIuM0w5NiAzMiA5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6TTE2MCA3MmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6Il19LG5sYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlci1jaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzY0MCw1MTIsW10sImU1MGYiLCJNMjg4LjUgMTEyYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTE0MS4yIDQ0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNTYgNTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTU2IDU2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDI4LjctMjguNy04OS40IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODkuNCAwLTI4LjctMjguN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6TTMzNi41IDExMmMwIDcxLjEtMzguNiAxMzMuMS05NiAxNjYuM2wwIDEyLjhjMjIuMSA0LjUgNDMuNCAxMy45IDYyLjQgMjguMiAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDYtNC41IDEyLjYtOCAxOS4zLTEwLjRsMC0xMTUuMiA0LjUgMGMxNS4yIDAgMjcuNS0xMi4zIDI3LjUtMjcuNSAwLTcuOS0zLjQtMTUuNS05LjQtMjAuN0w0NDQuNSAxMC41QzQzNi44IDMuNyA0MjYuOCAwIDQxNi41IDBzLTIwLjMgMy43LTI4IDEwLjVMMzI5LjkgNjEuOGM0LjMgMTYgNi42IDMyLjggNi42IDUwLjJ6bTMyIDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OHpNNDc1LjEgNDEyLjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCAzOTEuOCAyNjYgMzczLjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptLTcxLjIgOTZjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCA0ODcuOCAyNjYgNDY5LjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sZ2Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rIl0sImYwOGUiLCJNMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODIuNyAwLTIwMS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDQ0OCAxMDkuMyA0NDggMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDB6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDk2eiJdfSxsbGE9Z2YsY2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tdXAtYWNyb3NzLWxpbmUiLGljb246WzUxMiw1MTIsW10sImU0YWYiLCJNMjY1LjQgMTA1LjRsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDExNC43IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgMTE0LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgNDAyLjcgOTYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMjAgMCAwLTExNC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6TTQxNiAzMzZsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQgNjQgMHpNOTYgMTc2TDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDQtNjQgMHoiXX0sTndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTYsImdyaW4tYmVhbSJdLCJmNTgyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGRsYT1Od2UsUndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3RhbmdsZS1hZCIsaWNvbjpbNTEyLDUxMixbImFkIl0sImY2NDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAxODRsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjQtNy4xIDAtMTMuNS0zLjEtMTcuOS04LTEwLjIgNS4xLTIxLjggOC0zNC4xIDgtNDIgMC03Ni0zNC03Ni03NnMzNC03NiA3Ni03NmM5LjkgMCAxOS4zIDEuOSAyOCA1LjNsMC0yMS4zYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bS00OCA5MmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0xNjAgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMiA0OCAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0zMiA5NmwtNDggMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNHoiXX0sdWxhPVJ3ZSxPd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay10YW5ha2giLGljb246WzQ0OCw1MTIsWyJ0YW5ha2giXSwiZjgyNyIsIk0zNTIgNTEyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTY2LjdDMTMuNCAzNzQuNyAwIDM1Ni45IDAgMzM2TDAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDM1MiAwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMjBjMCA1My00MyA5Ni05NiA5NnptMzItOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTI1NiAwIDAgNjQgMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTExMy45IDIyOWMtMS4yIDItMS45IDQuMi0xLjkgNi42IDAgNi45IDUuNiAxMi41IDEyLjUgMTIuNWw1Ni45IDAgMzAuNSA0OS4yYzIuNiA0LjIgNy4yIDYuOCAxMi4yIDYuOHM5LjYtMi42IDEyLjItNi44bDMwLjUtNDkuMiA1Ni45IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtMi4zLS42LTQuNi0xLjktNi42bC0yNy44LTQ1IDI3LjgtNDVjMS4yLTIgMS45LTQuMiAxLjktNi42IDAtNi45LTUuNi0xMi41LTEyLjUtMTIuNWwtNTYuOSAwLTMwLjUtNDkuMkMyMzMuNiA2Ni42IDIyOSA2NCAyMjQgNjRzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LHBsYT1Pd2UsRndlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdC10dWItcGVyc29uIixpY29uOls0NDgsNTEyLFsiaG90LXR1YiJdLCJmNTkzIiwiTTI0MCA0MGMwIDEzLjYgNS44IDI2LjUgMTUuOCAzNS42bDI2LjUgMjMuOGMyNCAyMS42IDM3LjcgNTIuMyAzNy43IDg0LjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xOC43LTcuOS0zNi40LTIxLjgtNDguOWwtMjYuNS0yMy44QzIwMy41IDkzLjEgMTkyIDY3LjIgMTkyIDQwIDE5MiAyNi43IDIwMi43IDE2IDIxNiAxNnMyNCAxMC43IDI0IDI0ek0wIDMzNmwwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE5LjcgMGM4LjEgMCAxNi4yIDEuNiAyMy44IDQuNmwxMzcuMSA1NC44YzcuNiAzIDE1LjYgNC42IDIzLjggNC42TDM4NCAyNTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDMzNnptOTYtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xNTIgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODB6bTEwNC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTMyOCAxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEzLjYgNS44IDI2LjUgMTUuOCAzNS42bDI2LjUgMjMuOGMyNCAyMS42IDM3LjcgNTIuMyAzNy43IDg0LjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xOC43LTcuOS0zNi40LTIxLjgtNDguOWwtMjYuNS0yMy44QzMxNS41IDkzLjEgMzA0IDY3LjIgMzA0IDQwIDMwNCAyNi43IDMxNC43IDE2IDMyOCAxNnpNNjQgNDBhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LGhsYT1Gd2UsZmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaGFsZi1kYXNoZWQiLGljb246WzM4NCw1MTIsW10sImU2OTgiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNTYgMzg0IDAgMC0xNDkuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnpNMCAzNTJsMCA2NCA2NCAwIDAtNjQtNjQgMHpNNjQgNTEybDAtNjQtNjQgMGMwIDM1LjMgMjguNyA2NCA2NCA2NHptMzIgMGw4MCAwIDAtNjQtODAgMCAwIDY0em0xMTIgMGw4MCAwIDAtNjQtODAgMCAwIDY0em0xMTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwtNjQgMCAwIDY0em02NC0xNjBsLTY0IDAgMCA2NCA2NCAwIDAtNjR6Il19LEJ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdXRkZW50IixpY29uOls0NDgsNTEyLFsiZGVkZW50Il0sImYwM2IiLCJNLjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwQzE0LjggOTYgLjQgODEuNyAuNCA2NHptMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TS40IDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0uNyAyNjguNmMtOC4yLTYuNC04LjItMTguOSAwLTI1LjNsMTAxLjktNzkuM2MxMC41LTguMiAyNS44LS43IDI1LjggMTIuNmwwIDE1OC42YzAgMTMuMy0xNS4zIDIwLjgtMjUuOCAxMi42TC43IDI2OC42eiJdfSxtbGE9QndlLGdsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBlYWNlIixpY29uOls0NDgsNTEyLFs5OTk2XSwiZjI1YiIsIk0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOC02NCAwIDAtMjA4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjEuMyA1MS4yTDE0My45IDI0MCA3NC4xIDI0MCAyLjcgNzYuOEMtNC40IDYwLjYgMyA0MS44IDE5LjIgMzQuN1M1NC4yIDM1IDYxLjMgNTEuMnptMjcgMjIxLjNsLS4yLS41IDk1LjkgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02MS43IDBjLTQyLjQgMC04My4xLTE2LjktMTEzLjEtNDYuOUw2OS41IDQ1My41QzQ1LjUgNDI5LjUgMzIgMzk2LjkgMzIgMzYzbDAtMjdjMC0zMi43IDI0LjYtNTkuNyA1Ni4zLTYzLjV6Il19LGJsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtdmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNjQiLCJNMzI5LjcgNDQ4Yy01LjEgMC05LjcgMy43LTkuNyA4LjhsMCA3LjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTYzLjZjMC0xMi42LTUuMS0yNC41LTEzLjEtMzQuMi0zMS44LTM4LjctNTAuOS04OC4yLTUwLjktMTQyLjIgMC0xMjMuNyAxMDAuMy0yMjQgMjI0LTIyNCAxMTIuNyAwIDIwNiA4My4zIDIyMS43IDE5MS43IC40IDMgMS43IDUuOSAzLjYgOC4zbDM1LjggNDIuOWM3IDguNCAxMC45IDE5LjEgMTAuOSAzMC4xIDAgMjUuOS0yMSA0Ny00NyA0N2wtMSAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzguMyAwek0yMjQgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgMjIuOS0yNy43IDM0LjQtNDMuOSAxOC4yLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjljMTYuMiAxNi4yIDQuNyA0My45LTE4LjIgNDMuOS0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0YzIyLjkgMCAzNC40IDI3LjcgMTguMiA0My45LTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMxNi4yLTE2LjIgNDMuOS00LjcgNDMuOSAxOC4yIDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yMi45IDI3LjctMzQuNCA0My45LTE4LjIgOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy0xNi4yLTE2LjItNC43LTQzLjkgMTguMi00My45IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yMi45IDAtMzQuNC0yNy43LTE4LjItNDMuOSA5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0xNi4yIDE2LjItNDMuOSA0LjctNDMuOS0xOC4yIDAtMTMuMy0xMC43LTI0LTI0LTI0em0tMzIgODhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSx2bGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFzcyIsaWNvbjpbNTEyLDUxMixbMTI5NTE3XSwiZjE0ZSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNTAuNy0xODYuOUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMiA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LHhsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tbmliIixpY29uOls1MTIsNTEyLFsxMDAwMV0sImY1YWQiLCJNMzY4LjUgMTguM2wtNTAuMSA1MC4xIDEyNS4zIDEyNS4zIDUwLjEtNTAuMWMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NDcuNyAxOC4zYy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMHpNMjc5LjMgOTcuMmwtLjUgLjEtMTQ0LjEgNDMuMmMtMTkuOSA2LTM1LjcgMjEuMi00Mi4zIDQxTDMuOCA0NDUuOGMtMi45IDguNy0xLjkgMTguMiAyLjUgMjZMMTYxLjcgMzE2LjRjLTEuMS00LTEuNi04LjEtMS42LTEyLjQgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4Yy00LjMgMC04LjUtLjYtMTIuNC0xLjZMNDAuMyA1MDUuN2M3LjggNC40IDE3LjIgNS40IDI2IDIuNWwyNjQuMy04OC42YzE5LjctNi42IDM1LTIyLjQgNDEtNDIuM2w0My4yLTE0NC4xIC4xLS41LTEzNS41LTEzNS41eiJdfSx5bGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvd3MtZG93biIsaWNvbjpbNTEyLDUxMixbXSwiZTU4MSIsIk0xODUuNSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyem0yNDggNzJsNzItNzJjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek02MC4zIDI5Mi42TDM3LjEgNDc2Yy0yLjQgMTkuMSAxMi41IDM2IDMxLjcgMzZsMTU0LjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExNy40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45bDY4LjIgMTM2LjVjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w3MS45IDBjMTkuMyAwIDM0LjItMTYuOSAzMS43LTM2TDQ1Mi43IDI5Mi43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwyNzEuOSAxNjkuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUw3NS40IDI2OS4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6Il19LEh3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTcsImZhc3QtZm9yd2FyZCJdLCJmMDUwIiwiTTE5LjggNDc3LjZjMTIgNSAyNS43IDIuMiAzNC45LTYuOUwyMjQgMzAxLjMgMjI0IDQ0OGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45TDQ0OCAzMDEuMyA0NDggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNDYuNy0xNjkuNC0xNjkuNGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMjI0IDUxLjEgMjI0IDY0TDIyNCAyMTAuNyA1NC42IDQxLjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzAgNTEuMSAwIDY0TDAgNDQ4YzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZ6Il19LHdsYT1Id2Usa2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3AiLGljb246WzUxMiw1MTIsW10sImYxMjUiLCJNNDQ4IDEwOS4zbDU0LjYtNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEw0MDIuNyA2NCAxNzYgNjQgMTc2IDEyOCAzMzguNyAxMjggMTI4IDMzOC43IDEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzItMzIgMEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDggMCAwLTY0LTE2Mi43IDAgMjEwLjctMjEwLjcgMCAzMDYuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI3NC43eiJdfSxxd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hpc2tleS1nbGFzcyIsaWNvbjpbNDQ4LDUxMixbMTI5MzQ3LCJnbGFzcy13aGlza2V5Il0sImY3YTAiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDM1MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxOTIgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnpNNjQgMjU2bDAtMTYwIDMyMCAwIDAgMTYwLTMyMCAweiJdfSxTbGE9cXdlLF9sYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUiLGljb246WzQ0OCw1MTIsWzk2MzIsOTcyMyw5NzI0LDYxNTkwXSwiZjBjOCIsIk02NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6Il19LGp3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4iLGljb246WzUxMiw1MTIsWzEyODUxMiwiZ3JpbiJdLCJmNTgwIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxNbGE9andlLHpsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNvbnRyYWN0IixpY29uOlszODQsNTEyLFtdLCJmNTZjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04OCA2NEM3NC43IDY0IDY0IDc0LjcgNjQgODhzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDY0em0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTcwLjMgMTYwYy0xMS4zIDAtMjEuOSA1LjEtMjguOSAxMy45TDY5LjMgNDA5Yy04LjMgMTAuMy02LjYgMjUuNSAzLjcgMzMuN3MyNS41IDYuNiAzMy43LTMuOGw0Ny4xLTU4LjggMTUuMiA1MC43YzMgMTAuMiAxMi40IDE3LjEgMjMgMTcuMWwxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuMSAwLTE2LjEtNTMuNmMtNC43LTE1LjctMTkuMS0yNi40LTM1LjUtMjYuNHoiXX0sQ2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXVwIixpY29uOlszODQsNTEyLFs4OTYzXSwiZjEwNiIsIk0xNjkuNCAxMzcuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDE5MiAyMDUuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYweiJdfSxWd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zbWlsZSIsaWNvbjpbNTEyLDUxMixbMTI4NTc4LCJzbWlsZSJdLCJmMTE4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sVGxhPVZ3ZSwkbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRyZXNzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTQ0IiwiTTIwOCA0MC4xYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHpNOCAxNDQuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptOTIuNSAxNDEuNGwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMjQ2LjIgMzg0bDI1LjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDMyIDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAyNS44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTQzLTEyOSA0OC4zIDY1LjFjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDNDM0IDEzMiAzOTQuMyAxMTIgMzUyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42bDQ4LjMtNjUuMS00MyAxMjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMXoiXX0sRGxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpdmlkZSIsaWNvbjpbNDQ4LDUxMixbMTAxMzUsMjQ3XSwiZjUyOSIsIk0yMjQgNDhhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2OCA0MDhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSxMbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1mb3JrIixpY29uOls0NDgsNTEyLFtdLCJlMTNiIiwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIuN2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0zMiAwIDAgNzAuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNsMC03MC43LTMyIDBDOTguMSAyODggNDggMjM3LjkgNDggMTc2bDAtMjIuN0MxOS43IDE0MSAwIDExMi44IDAgODAgMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIwOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI0OCA0MzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sRWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsYWciLGljb246WzY0MCw1MTIsW10sImU1MGQiLCJNNDcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSA1OS4xbDEwMC41IDk2LjkgMCAzNTYtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTQ0LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjI4LjUgNTkuMUMyMzUuOSA1MiAyNDUuNyA0OCAyNTYgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjMyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LFJiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNvbHVtbnMiLGljb246WzUxMiw1MTIsWyJiYW5rIiwiaW5zdGl0dXRpb24iLCJtdXNldW0iLCJ1bml2ZXJzaXR5Il0sImYxOWMiLCJNMjcxLjkgMjAuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhjLTEyLjYgNy4yLTE4LjggMjItMTUuMSAzNlMxNy41IDIwOCAzMiAyMDhsMzIgMCAwIDIwOCAwIDAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZsLTUxLjItMzguNCAwLTIwOCAzMiAwYzE0LjUgMCAyNy4yLTkuOCAzMC45LTIzLjhzLTIuNS0yOC44LTE1LjEtMzZsLTIyNC0xMjh6TTQwMCAyMDhsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwek0yNTYgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxQbGE9UmIsSWxhPVJiLEFsYT1SYixObGE9UmIsUmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1ZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2OSIsIk0yNCA2NGw1NiAwIDAgMzg0LTU2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwQzEwLjcgMTEyIDAgMTAxLjMgMCA4OFMxMC43IDY0IDI0IDY0em0xMDQgMGwzMjAgMCAwIDM4NC0zMjAgMCAwLTM4NHpNNTc2IDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDMyIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMC0zODQgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHoiXX0sT2xhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtbWVyZ2UiLGljb246WzQ0OCw1MTIsW10sImYzODciLCJNODAgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMi40IDk3LjJjMjgtMTIuNCA0Ny42LTQwLjUgNDcuNi03My4yIDAtNDQuMi0zNS44LTgwLTgwLTgwUzAgMzUuOCAwIDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCAyMDUuM0MxOS43IDM3MSAwIDM5OS4yIDAgNDMyIDAgNDc2LjIgMzUuOCA1MTIgODAgNTEyczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTg2LjZjMjYuNyAyMC4xIDYwIDMyIDk2IDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4IDQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwYy0zMi44IDAtNjEgMTkuNy03My4zIDQ4TDIwOCAyNDBjLTQ5LjkgMC05MS0zOC4xLTk1LjYtODYuOHpNODAgNDA4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzQ0IDI3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxGbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdHN1bmFtaSIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNSIsIk0yODggMTZDMTU1LjUgMTYgNDggMTIzLjUgNDggMjU2UzE1NS41IDQ5NiAyODggNDk2YzcuNCAwIDE5LjctMi4zIDMzLjctNy4zIDEzLjgtNC45IDI3LjEtMTEuNyAzNi43LTE4LjkgMzguNC0yOSA5MC41LTI5IDEyOSAwIDE1LjQgMTEuNiAzNS4zIDIxLjEgNTUgMjQuNCAxOS41IDMuMyAzNyAuNCA1MS4xLTEwLjIgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNy4zIDIwLjUtNTkuMiAyNC04Ny45IDE5LjItMjguNS00LjgtNTUuNC0xOC03NS45LTMzLjQtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjFsLS4xIDBDMTI4LjkgNTQzLjkgMCA0MTUgMCAyNTYgMCA5Ni45IDEyOC45LTMyIDI4OC0zMiAzMDEuMy0zMiAzMTItMjEuMyAzMTItOHMtMTAuNyAyNC0yNCAyNHptNDQuOCAxNjYuNGw5Ni03MmMxMS40LTguNSAyNy4xLTguNSAzOC41IDBsOTUuNSA3MmM4IDYgMTIuNyAxNS41IDEyLjcgMjUuNWwuMyAxMjEuNWMtMi4yIDEuMy00LjMgMi42LTYuNCA0LjItNC4zIDMuMS04LjcgLjgtMTMuMi0xLjVsLTEuMi0uNi0uNy0uM2MtNS40LTIuNy0xMS43LTYuNi0xOC45LTExLjctMjkuNS0yMS4xLTY0LjMtMzEuNi05OS4xLTMxLjQtMzQuMSAuMi02OC4xIDEwLjctOTcgMzEuNC03LjggNS42LTEzLjggOS4zLTE5LjMgMTEuMkwzMjAgMjA4YzAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZ6bTU0LjYgMjI5LjdjLTE0LjUgMTAuOS0zMi40IDE5LjctNDkuNSAyNS44LTE2LjggNi0zNC45IDEwLjEtNDkuOSAxMC4xLTEwNiAwLTE5Mi04Ni0xOTItMTkyUzE4MiA2NCAyODggNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDRjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sQmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtY2hhcnQiLGljb246WzUxMiw1MTIsW10sImU1MjIiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4em0tMzEyIDhsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwLTk2bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwIDY0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxIbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEiLGljb246WzUxMiw1MTIsW10sImYwZTkiLCJNMjU2LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMmMxMjYuMyAxNS43IDIyNCAxMjMuNSAyMjQgMjU0IDAgMy44LS4xIDcuNS0uMiAxMS4zLS4zIDYuOS01IDEyLjgtMTEuNyAxNC43cy0xMy44LS43LTE3LjYtNi41Yy0xNC40LTIxLjQtMzguOC0zNS41LTY2LjUtMzUuNS0yOS4zIDAtNTQuOSAxNS43LTY4LjkgMzkuMy0yLjcgNC42LTcuNiA3LjYtMTMgNy44cy0xMC41LTIuMi0xMy43LTYuNWMtMTQuNi0xOS44LTM4LTMyLjYtNjQuNS0zMi42cy00OS45IDEyLjgtNjQuNSAzMi42Yy0zLjIgNC4zLTguMyA2LjgtMTMuNyA2LjVzLTEwLjItMy4yLTEzLTcuOGMtMTQtMjMuNi0zOS42LTM5LjMtNjguOS0zOS4zLTI3LjcgMC01Mi4xIDE0LjEtNjYuNSAzNS41LTMuOSA1LjctMTEgOC40LTE3LjYgNi41Uy41IDI3NC4yIC4yIDI2Ny4zQy4xIDI2My41IDAgMjU5LjggMCAyNTYgMCAxMjUuNSA5Ny43IDE3LjcgMjI0IDJsMC0yYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMiAzNjBsMCAxMDIuNmMwIDQ1LTM2LjUgODEuNC04MS40IDgxLjQtMzAuOCAwLTU5LTE3LjQtNzIuOC00NWwtMi4zLTQuN2MtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDIuMyA0LjdjMyA1LjkgOSA5LjYgMTUuNiA5LjYgOS42IDAgMTcuNC03LjggMTcuNC0xNy40TDIyNCAzMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0scWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpbGwtcm9ja3NsaWRlIixpY29uOls1NzYsNTEyLFtdLCJlNTA4IiwiTTI1Mi40IDEwMy44bDI3IDQ4YzIuOCA1IDguMiA4LjIgMTMuOSA4LjJsNTMuMyAwYzUuOCAwIDExLjEtMy4xIDEzLjktOC4ybDI3LTQ4YzIuNy00LjkgMi43LTEwLjggMC0xNS43bC0yNy00OGMtMi44LTUtOC4yLTguMi0xMy45LTguMmwtNTMuMyAwYy01LjggMC0xMS4xIDMuMS0xMy45IDguMmwtMjcgNDhjLTIuNyA0LjktMi43IDEwLjggMCAxNS43ek02OC4zIDg3QzQzLjEgNjEuOCAwIDc5LjcgMCAxMTUuM0wwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6TTUwNC4yIDQwMy42YzQuOSAyLjcgMTAuOCAyLjcgMTUuNyAwbDQ4LTI3YzUtMi44IDguMi04LjIgOC4yLTEzLjlsMC01My4zYzAtNS44LTMuMS0xMS4xLTguMi0xMy45bC00OC0yN2MtNC45LTIuNy0xMC44LTIuNy0xNS43IDBsLTQ4IDI3Yy01IDIuOC04LjIgOC4yLTguMiAxMy45bDAgNTMuM2MwIDUuOCAzLjEgMTEuMSA4LjIgMTMuOWw0OCAyN3pNMTkyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxqbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zZWNyZXQiLGljb246WzQ0OCw1MTIsWzEyODM3M10sImYyMWIiLCJNMTcxLTE2Yy0zNi40IDAtNTcuOCA1OC4zLTY4LjMgMTEyTDcyIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAzMmMwIDE3IDMuMyAzMy4yIDkuMyA0OGwtOS4zIDAgMCAwLTIwLjUgMGMtMTUuMiAwLTI3LjUgMTIuMy0yNy41IDI3LjUgMCAzIC41IDUuOSAxLjQgOC43bDI4LjkgODYuNkM0MC4yIDM3OS42IDE2IDQyOC4xIDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC01NC4yLTI0LjItMTAyLjctNjIuMy0xMzUuNGwyOC45LTg2LjZjLjktMi44IDEuNC01LjcgMS40LTguNyAwLTE1LjItMTIuMy0yNy41LTI3LjUtMjcuNWwtMjAuNSAwIDAgMC05LjMgMGM2LTE0LjggOS4zLTMxIDkuMy00OGwwLTMyIDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMwLjcgMGMtMTAuNC01My43LTMxLjktMTEyLTY4LjMtMTEyLTkuNiAwLTE5IDMuOS0yNy41IDguMi04LjIgNC4xLTE4LjQgNy44LTI1LjUgNy44cy0xNy4zLTMuNy0yNS41LTcuOEMxOTAtMTIuMSAxODAuNi0xNiAxNzEtMTZ6bTkzLjcgNDg0LjRsLTI0LjgtNzAuOSAyNy45LTMyLjVjMi43LTMuMiA0LjItNy4yIDQuMi0xMS40IDAtOS43LTcuOC0xNy41LTE3LjUtMTcuNWwtNjEgMGMtOS43IDAtMTcuNSA3LjgtMTcuNSAxNy41IDAgNC4yIDEuNSA4LjIgNC4yIDExLjRsMjcuOSAzMi41LTI0LjggNzAuOS01Ny0xODAuNCAzNS43IDBjMTguNCAxMC4yIDM5LjUgMTYgNjIgMTZzNDMuNi01LjggNjItMTZsMzUuNyAwLTU3IDE4MC40ek0yMjQgMjU2Yy0zNC43IDAtNjQuMi0yMi4xLTc1LjMtNTMgNS43IDMuMiAxMi4zIDUgMTkuMyA1bDEyLjQgMGMxNi41IDAgMzEuMS0xMC42IDM2LjMtMjYuMiAyLjMtNyAxMi4yLTcgMTQuNSAwIDUuMiAxNS42IDE5LjkgMjYuMiAzNi4zIDI2LjJsMTIuNCAwYzcgMCAxMy42LTEuOCAxOS4zLTUtMTEuMSAzMC45LTQwLjYgNTMtNzUuMyA1M3oiXX0sVmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhZ2VyIixpY29uOls1MTIsNTEyLFsxMjgyMjNdLCJmODE1IiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTY0IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04OCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sVWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWVmY2FzZSIsaWNvbjpbNTEyLDUxMixbMTI4MTg4XSwiZjBiMSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBsMCA5NiA1MTIgMCAwLTk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek01MTIgMzA0bC0xOTIgMCAwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTE5MiAwIDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTEyeiJdfSxXbGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsLWJyaWNrcyIsaWNvbjpbNTEyLDUxMixbXSwiZTU4YSIsIk0yMjQgMzJjMC0xMS41LTYuMi0yMi4yLTE2LjItMjcuOHMtMjIuMy01LjUtMzIuMiAuNGwtMTYwIDk2QzUuOSAxMDYuMyAwIDExNi44IDAgMTI4czUuOSAyMS43IDE1LjUgMjcuNGwxNjAgOTZjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzIyNCAyMzUuNSAyMjQgMjI0bDAtNjQgMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1NiAwIDAtNjR6bTk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNjAgMHpNMCA0MTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yMjQtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDB6Il19LEdsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2NrcyIsaWNvbjpbNTEyLDUxMixbMTI5NTEwXSwiZjY5NiIsIk0yNTIuOCAwTDE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDExMiAwIDAtMTZjMC0xNy41IDQuNy0zMy45IDEyLjgtNDh6TTEyOCAxMTJsMCAxMjhjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhjLTI0LjIgMTguMS0zOC40IDQ2LjYtMzguNCA3Ni44IDAgNTMgNDMgOTYgOTYgOTYgMTUuNCAwIDMwLjUtMy43IDQ0LTEwLjctMTcuNi0yMy45LTI4LTUzLjQtMjgtODUuMyAwLTQ1LjMgMjEuMy04OCA1Ny42LTExNS4ybDY0LTQ4YzQtMyA2LjQtNy44IDYuNC0xMi44bDAtMTI4LTExMiAwem0xNjAgMGwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAyMC44IDAgNDEtNi43IDU3LjYtMTkuMmwxMTUuMi04Ni40QzQ2MSAzODIuMiA0ODAgMzQ0LjMgNDgwIDMwNGwwLTE5Mi0xOTIgMHpNNDgwIDY0bDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTkyIDB6Il19LEtsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0IixpY29uOlszODQsNTEyLFsxMTZdLCI1NCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMTI4IDAgMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sWWxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvY2hpcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkYiIsIk0xNzYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMwIDM1LjMgMjguNyA2NCA2NCA2NGwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA1NiAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC01NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwYzAtMzUuMy0yOC43LTY0LTY0LTY0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDB6TTE2MCAxMjhsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgNDhsMCAxNjAgMTYwIDAgMC0xNjAtMTYwIDB6Il19LFV3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tZWRpY2FsIixpY29uOls1NzYsNTEyLFsxMjg2NTcsImFtYnVsYW5jZSJdLCJmMGY5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMy4zIDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwxMDIuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMy4zIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1MTIgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek01MTIgMjM3LjNsMCA1MC43LTk2IDAgMC05NiA1MC43IDAgNDUuMyA0NS4zek0xNTIgMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjMyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE3NiAxMzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LFpsYT1Vd2UsWGxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9tIixpY29uOls1NzYsNTEyLFsxMjgzMjldLCJmNjc5IiwiTTM4OC43IDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGwxNiAxNmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtMTYgMTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC0xNi0xNmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZsMTYtMTZ6TTE3NiAxNjBjLTEwLjggMC0yMC44IDMuNi0yOC44IDkuNi0xNC4xIDEwLjYtMzQuMiA3LjgtNDQuOC02LjRzLTcuOC0zNC4yIDYuNC00NC44YzE4LjctMTQuMSA0Mi0yMi40IDY3LjItMjIuNCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMiAwIDE3LjItMy45IDMzLjUtMTAuOCA0OGw0OS43IDBjMTIuNyAwIDI0LjktNSAzMy45LTE0LjFsMjAuNy0yMC43YzE4LjctMTguNyA0NC4xLTI5LjMgNzAuNi0yOS4zIDU1LjIgMCA5OS45IDQ0LjcgOTkuOSA5OS45bDAgOTYuMWMwIDU1LjItNDQuOCAxMDAtMTAwIDEwMFMzNTIgNDQzLjIgMzUyIDM4OGwwLTRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDRjMCAxOS45IDE2LjEgMzYgMzYgMzZzMzYtMTYuMSAzNi0zNmwwLTk2LjFjMC0xOS44LTE2LjEtMzUuOS0zNS45LTM1LjktOS41IDAtMTguNiAzLjgtMjUuNCAxMC41bC0yMC43IDIwLjdjLTIxIDIxLTQ5LjQgMzIuOC03OS4xIDMyLjhsLTI2LjggMGMxMi42IDE5LjYgMTkuOSA0Mi44IDE5LjkgNjggMCA3NS4yLTY1IDEzMi0xNDAgMTMyUzQwIDQ2My4yIDQwIDM4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgMzUuMyAzMS43IDY4IDc2IDY4czc2LTMyLjcgNzYtNjgtMzEuNy02OC03Ni02OGwtMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4ek0zMzcuMSA2MC4xYy0xMS0xMy44LTMxLjEtMTYuMi00NS01LjJzLTE2LjIgMzEuMS01LjIgNDVDMzEyLjYgMTMyLjIgMzU0LjQgMTUyIDQwMCAxNTJzODcuNC0xOS44IDExMy4xLTUyLjFjMTEtMTMuOCA4LjctMzQtNS4yLTQ1cy0zNC04LjctNDUgNS4yQzQ1MC4zIDc2IDQyNy41IDg4IDQwMCA4OHMtNTAuMy0xMi02Mi45LTI3Ljl6Il19LFFsYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3NxdWl0by1uZXQiLGljb246WzY0MCw1MTIsW10sImU1MmMiLCJNNTc2IDM1MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE2IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCA0OCAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMTYtLjEgMi41QzU5OC42IDU2Ni42IDU4OC40IDU3NiA1NzYgNTc2cy0yMi42LTkuNC0yMy45LTIxLjVsLS4xLTIuNSAwLTE2LTQ4IDAgMCAxNi0uMSAyLjVDNTAyLjYgNTY2LjYgNDkyLjQgNTc2IDQ4MCA1NzZzLTIyLjYtOS40LTIzLjktMjEuNWwtLjEtMi41IDAtMTYtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtNDgtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE2IDQ4IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDI5LjkgMTYuM2M3LjctOS40IDIxLjMtMTEuNSAzMS40LTQuMyAxMC4xIDcuMSAxMy4xIDIwLjkgNy40IDMxLjdsLTEuMyAyLjEtMjUuOSAzOC45IDEzLjMgNTMuNGMyIDgtLjEgMTYuMy01LjMgMjIuM2wtMi40IDIuNC00NC43IDM4LjMgMTMwLjUgMTQuNWM0Mi44IDQuOCA3NS4xIDQwLjkgNzUuMSA4My45IDAgMy45LS40IDcuNy0uOSAxMS41LTcuMy0zLjUtMTUuMy01LjgtMjMuOC02LjdMNTc2IDMwNGMtMTguNSAwLTM1LjMgNy00OCAxOC40LTExLTkuOS0yNS4xLTE2LjUtNDAuNi0xOC4xTDQ4MCAzMDRjLTMwLjMgMC01Ni4xIDE4LjctNjYuOCA0NS4yLTEyLjUgNS0yMy4yIDEzLjQtMzEuMSAyNGwtMzAuMi00MC4xIDAgNzQuN2MwIDE3LjctMTQuMyAzMi0zMiAzMi0xNi42IDAtMzAuMi0xMi42LTMxLjgtMjguN2wtLjItMy4zIDAtNzQuNi0zMi4zIDQzIDAgMzkuOGMwIDMuNS0uNyA2LjktMi4xIDEwLjFsLTEuNiAzLjEtNDAgNjQtMS40IDJjLTcuNSA5LjYtMjEgMTIuMS0zMS4zIDUuMy0xMC4zLTYuOC0xMy43LTIwLjUtOC4zLTMxLjVsMS4yLTIuMiAzNi4yLTU4IDAtNDEgLjMtNGMuNi0zLjkgMi4yLTcuNyA0LjYtMTAuOWwzOS4zLTUyLjItNjYuMiA1OS41Yy0xNyAxNS4zLTM5IDIzLjctNjEuOSAyMy44bC04LjEgMGMtNDYuNiAwLTg0LjQtMzcuOC04NC40LTg0LjQgMC00MyAzMi40LTc5LjIgNzUuMS04My45bDEzMC41LTE0LjUtNDQuNy0zOC4zLTIuNC0yLjRjLTUuMi02LTcuMy0xNC40LTUuMy0yMi4zbDEzLjMtNTMuNC0yNS45LTM4LjktMS4yLTIuMWMtNS43LTEwLjgtMi43LTI0LjYgNy40LTMxLjcgMTAuMS03LjEgMjMuNy01LjEgMzEuNCA0LjNsMS41IDIgMzIgNDggMS40IDIuMmMyLjggNS4zIDMuNSAxMS42IDIuMSAxNy42bC0xMi4zIDQ5LjIgNTMuMyA0NS43IDAtMjguOCAuMi0zLjJjMS4xLTEwLjQgNy4yLTE5LjQgMTUuOC0yNC40bDAtNjAuNSAuMy0zLjJjMS41LTcuMyA4LTEyLjcgMTUuNy0xMi44IDcuNyAwIDE0LjIgNS41IDE1LjcgMTIuOGwuMyAzLjIgMCA2MC41YzguNyA1IDE0LjggMTQgMTUuOCAyNC40bC4yIDMuMiAwIDI4LjkgNTMuNC00NS43LTEyLjMtNDkuMmMtMS41LTUuOS0uNy0xMi4yIDIuMS0xNy42bDEuNC0yLjIgMzItNDggMS41LTJ6TTUwNCA0ODhsNDggMCAwLTQ4LTQ4IDAgMCA0OHoiXX0sSmxhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbi1ib3R0bGUiLGljb246WzM4NCw1MTIsW10sImY0ODUiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJ6TTMyIDE0NGwzMjAgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTY0eiJdfSxXd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtZ2VhciIsaWNvbjpbNjQwLDUxMixbInVzZXJzLWNvZyJdLCJmNTA5IiwiTTMyMCAyMjRhMTA0IDEwNCAwIDEgMCAwLTIwOCAxMDQgMTA0IDAgMSAwIDAgMjA4ek05NiAyMzJhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6TTAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHpNMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE1Ni44IDBjLTcuMS0yMS42LTYuMy00NC40IDEwLjctNjQtMTQtMTYuMi0yMC41LTM5LjctMTEuNC02My4zIDYuNi0xNy4xIDE1LjktMzMuMSAyNy40LTQ3LjMgNS40LTYuNiAxMS42LTExLjcgMTguMy0xNS40LTIyLjEtMTEuNS00Ny4yLTE4LTczLjgtMTgtODguNCAwLTE2MCA3MS42LTE2MCAxNjB6bTQ2NC42LTQ0LjFjNi4zLTMuNiA5LjUtMTEuMSA2LjgtMTgtNC44LTEyLjQtMTEuNS0yNC4xLTE5LjktMzQuNC00LjYtNS43LTEyLjctNi43LTE5LTMtMjEuOCAxMi42LTQ4LjYtMi44LTQ4LjYtMjguMSAwLTcuMy00LjktMTMuOC0xMi4xLTE0LjktMTIuOS0yLTI2LjgtMi0zOS43IDAtNy4yIDEuMS0xMi4xIDcuNi0xMi4xIDE0LjkgMCAyNS4yLTI2LjggNDAuNy00OC42IDI4LjEtNi4zLTMuNi0xNC40LTIuNi0xOSAzLTguNCAxMC4zLTE1LjEgMjItMTkuOSAzNC40LTIuNiA2LjggLjUgMTQuMyA2LjggMTcuOSAyMS45IDEyLjYgMjEuOSA0My41IDAgNTYuMi02LjMgMy42LTkuNSAxMS4xLTYuOCAxNy45IDQuOCAxMi40IDExLjUgMjQuMSAxOS45IDM0LjQgNC42IDUuNyAxMi43IDYuNyAxOSAzIDIxLjgtMTIuNiA0OC42IDIuOSA0OC42IDI4LjEgMCA3LjMgNC45IDEzLjggMTIuMSAxNC45IDEyLjkgMiAyNi44IDIgMzkuNyAwIDcuMi0xLjEgMTIuMS03LjYgMTIuMS0xNC45IDAtMjUuMiAyNi44LTQwLjcgNDguNi0yOC4xIDYuMyAzLjYgMTQuNCAyLjYgMTktMyA4LjQtMTAuMyAxNS4xLTIyIDE5LjktMzQuNCAyLjYtNi44LS41LTE0LjMtNi44LTE3LjktMjEuOS0xMi42LTIxLjktNDMuNSAwLTU2LjJ6TTQ3MiA0MTZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHoiXX0sZWNhPVd3ZSx0Y2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NjUiLCJNMjg4IDMybC03Ni4zIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjUgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OWMzNS4yLTM5LjkgODYuNy02NSAxNDQtNjUgOSAwIDE3LjggLjYgMjYuNSAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxhY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGF1c2UiLGljb246WzM4NCw1MTIsWzkyMDhdLCJmMDRjIiwiTTQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMnptMjI0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6Il19LHVTPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YWZmLXNuYWtlIixpY29uOls0NDgsNTEyLFsicm9kLWFzY2xlcGl1cyIsInJvZC1zbmFrZSIsInN0YWZmLWFlc2N1bGFwaXVzIl0sImU1NzkiLCJNMTkyIDMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDY0IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTE2IDAgMC02NCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAgMTkyIDMyIDBjNTMgMCA5NiA0MyA5NiA5NiAwIDQ3LjYtMzQuNiA4Ny4xLTgwIDk0LjdsMC02N2M5LjYtNS41IDE2LTE1LjkgMTYtMjcuNyAwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTY0LTMyIDBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Ny42IDM0LjYtODcuMSA4MC05NC43bDAgNjdjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43IDAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMC0xOTItNzIuNiAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMybC0xNiAwQzIxLjUgMTI4IDAgMTA2LjUgMCA4MFMyMS41IDMyIDQ4IDMybDE0NCAweiJdfSxzY2E9dVMsaWNhPXVTLHJjYT11UyxvY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlnZ3ktYmFuayIsaWNvbjpbNTc2LDUxMixbXSwiZjRkMyIsIk0yODgtMzJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6TTQ4IDMwNGMwLTcwLjEgNDctMTMxLjQgMTE3LjEtMTY0LjkgMjUuMyA0MS4zIDcwLjkgNjguOSAxMjIuOSA2OC45IDU1LjcgMCAxMDQuMS0zMS43IDEyOC03OCAxNS44LTExLjMgMzUuMS0xOCA1Ni0xOGwxOS41IDBjMTAuNCAwIDE4IDkuOCAxNS41IDE5LjlsLTE3LjEgNjguM2M5LjkgMTIuNCAxOC4yIDI1LjcgMjQuNCAzOS44bDIxLjcgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTYuNSAyMi0zOC41IDM5LjYtNjQgNTAuN2wwIDI5LjNjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMzIDBjLTE0LjMgMC0yNi44LTkuNS0zMC44LTIzLjJsLTcuMS0yNC44LTgyLjMgMC03LjEgMjQuOEMyMzUuOCA1MDIuNSAyMjMuMyA1MTIgMjA5IDUxMmwtMzMgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yOS4zQzg3LjUgNDI2IDQ4IDM2OS42IDQ4IDMwNHptMzc2IDE2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sbmNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbnVtZW50IixpY29uOlszODQsNTEyLFtdLCJmNWE2IiwiTTIwOS0zM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMOTUgNDdjLTQuMSA0LjEtNi41IDkuNC03IDE1LjFMNTguNCA0NDggNDggNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMC40IDAtMjkuNy0zODUuOGMtLjQtNS43LTIuOS0xMS4xLTctMTUuMUwyMDktMzN6TTEyOCAyOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LEd3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtcmlnaHQiLGljb246WzQ0OCw1MTIsWzE4NywiYW5nbGUtZG91YmxlLXJpZ2h0Il0sImYxMDEiLCJNNDM5LjEgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDM3MS4yIDI1NiAyMzMuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwem0tMzUyIDE2MGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNzkuMiAyNTYgNDEuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHoiXX0sbGNhPUd3ZSxiZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZXNrdG9wIixpY29uOls1MTIsNTEyLFsxMjg0MjEsNjE3MDQsImRlc2t0b3AtYWx0Il0sImYzOTAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05NiA5NmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxjY2E9YmYsZGNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NyIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LHVjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXR3ZWV0IixpY29uOls1NzYsNTEyLFtdLCJmMDc5IiwiTTExOC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTkuMSAxNjAgMzIgMTYwbDMyIDAgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjI0IDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6TTQ1Ny40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzU1Ni45IDM1MiA1NDQgMzUybC0zMiAwIDAtMjI0YzAtNTMtNDMtOTYtOTYtOTZMMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0eiJdfSxLd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1nZWFyIixpY29uOls2NDAsNTEyLFsidXNlci1jb2ciXSwiZjRmZSIsIk0yNTYuNSA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMjI2LjcgMzA0bDU5LjQgMCAxLjUgMGMtMTIuOSAyNi44LTcuOCA1OC4yIDExLjUgNzkuNS0yMC4yIDIyLjMtMjQuOCA1NS44LTkuNCA4My40bDIyLjUgNDAuNGMuOSAxLjYgMS45IDMuMiAyLjkgNC43bC0yMzcgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6bTIwNS45LTU2LjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDYuMWMwIDE4LjkgMjQuMSAzMi44IDQwLjUgMjMuNGw1LTIuOWMxMS42LTYuNyAyNi41LTIuNiAzMyA5LjFsMjIuNCA0MC4yYzYuMiAxMS4yIDIuNiAyNS4yLTguMiAzMmwtNC43IDIuOWMtMTYuMiAxMC4xLTE2LjIgMzkuOSAwIDUwLjFsNC42IDIuOWMxMC44IDYuOCAxNC41IDIwLjggOC4zIDMyTDYwNyA0ODMuOGMtNi41IDExLjctMjEuNCAxNS45LTMzIDkuMWwtNC45LTIuOWMtMTYuNC05LjUtNDAuNSA0LjUtNDAuNSAyMy40bDAgNi4xYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTUuOWMwLTE5LTI0LjItMzMtNDAuNy0yMy41bC00LjggMi44Yy0xMS42IDYuNy0yNi40IDIuNi0zMy05LjFsLTIyLjYtNDAuNGMtNi4yLTExLjItMi42LTI1LjMgOC4zLTMyLjFsNC40LTIuN2MxNi4zLTEwLjEgMTYuMy00MC4xIDAtNTAuMmwtNC41LTIuOGMtMTAuOS02LjgtMTQuNS0yMC45LTguMy0zMi4xbDIyLjUtNDAuM2M2LjUtMTEuNyAyMS40LTE1LjggMzIuOS05LjFsNC44IDIuOGMxNi41IDkuNSA0MC43LTQuNSA0MC43LTIzLjVsMC01Ljl6bTk5LjkgMTM2LjJhNTIgNTIgMCAxIDAgLTEwNCAwIDUyIDUyIDAgMSAwIDEwNCAweiJdfSxwY2E9S3dlLGhjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItYWxsIixpY29uOls0NDgsNTEyLFtdLCJmODRjIiwiTTM4NCA5NmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHptMCAxOTJsMCAxMjgtMTI4IDAgMC0xMjggMTI4IDB6TTE5MiAyMjRsLTEyOCAwIDAtMTI4IDEyOCAwIDAgMTI4ek02NCAyODhsMTI4IDAgMCAxMjgtMTI4IDAgMC0xMjh6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LGZjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2lucyIsaWNvbjpbNTEyLDUxMixbXSwiZjUxZSIsIk0xMjggOTZsMC0xNmMwLTQ0LjIgODYtODAgMTkyLTgwUzUxMiAzNS44IDUxMiA4MGwwIDE2YzAgMzAuNi00MS4zIDU3LjItMTAyIDcwLjctMi40LTIuOC00LjktNS41LTcuNC04LTE1LjUtMTUuMy0zNS41LTI2LjktNTYuNC0zNS41LTQxLjktMTcuNS05Ni41LTI3LjEtMTU0LjItMjcuMS0yMS45IDAtNDMuMyAxLjQtNjMuOCA0LjEtLjItMS4zLS4yLTIuNy0uMi00LjF6TTQzMiAzNTNsMC00Ni4yYzE1LjEtMy45IDI5LjMtOC41IDQyLjItMTMuOSAxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNGMwIDI2LjgtMzEuNSA1MC41LTgwIDY1em0wLTk2bDAtMzNjMC00LjUtLjQtOC44LTEtMTMgMTUuNS0zLjkgMzAtOC42IDQzLjItMTQuMnMyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNGMwIDI2LjgtMzEuNSA1MC41LTgwIDY1ek0wIDI0MGwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBzMTkyIDM1LjggMTkyIDgwbDAgMTZjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDI4NC4yIDAgMjQwem0zODQgOTZjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDM4MC4yIDAgMzM2bDAtMTUuNGMxMS42IDguMSAyNC41IDE0LjcgMzcuOCAyMC4zIDQxLjkgMTcuNSA5Ni41IDI3LjEgMTU0LjIgMjcuMXMxMTIuMy05LjcgMTU0LjItMjcuMWMxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNHptMCA4MC42bDAgMTUuNGMwIDQ0LjItODYgODAtMTkyIDgwUzAgNDc2LjIgMCA0MzJsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjN6Il19LG1jYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLXN0cm9rZSIsaWNvbjpbNTc2LDUxMixbOTg5NF0sImYyMjkiLCJNNDE2LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUwLjcgMC01OC43IDU4LjctMTcuNC0xNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNy40IDE3LjQtMjMgMjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2YzAtMzctMTEuNC03MS40LTMxLTk5LjhsMjMtMjMgMTcuNCAxNy40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNDUzLjMgMTM2IDUxMiA3Ny4zIDUxMiAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw1NzYgMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw0MTYtMzJ6TTEyOCAzMDRhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHoiXX0sWXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzaGFrZS1hbmdsZSIsaWNvbjpbNTc2LDUxMixbImhhbmRzLWhlbHBpbmciXSwiZjRjNCIsIk0yNjguOSA1My4yTDE1Mi4zIDE4Mi44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM0NCA1NzYgMjg4IDU3NiAwIDQ2NCA2NCA0NDAuMiA0OC4xQzQyNC40IDM3LjYgNDA1LjkgMzIgMzg2LjkgMzJsLTcwLjQgMGMtMS4xIDAtMi4zIDAtMy40IC4xLTE2LjkgLjktMzIuOCA4LjUtNDQuMiAyMS4xek0xMTYuNiAxNTAuN0wyMjMuNCAzMiAxODMuOCAzMmMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFMMCAxOTIgMCA1NDQgMTQ0IDQwOCAxNTYuNCA0MTguM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDA5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHoiXX0sZ2NhPVl3ZSxiY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbODU5NV0sImYwNjMiLCJNMTY5LjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgNDAyLjcgMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzcwLjctMTA1LjQtMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6Il19LFp3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1kb3QiLGljb246WzM4NCw1MTIsWyJtYXAtbWFya2VyLWFsdCJdLCJmM2M1IiwiTTAgMTg4LjZDMCA4NC40IDg2IDAgMTkyIDBTMzg0IDg0LjQgMzg0IDE4OC42YzAgMTE5LjMtMTIwLjIgMjYyLjMtMTcwLjQgMzE2LjgtMTEuOCAxMi44LTMxLjUgMTIuOC00My4zIDAtNTAuMi01NC41LTE3MC40LTE5Ny41LTE3MC40LTMxNi44ek0xOTIgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4eiJdfSx2Y2E9WndlLHhjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSx5Y2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29va2llLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY1NjQiLCJNMjU3LjUgMjcuNmMtLjgtNS40LTQuOS05LjgtMTAuMy0xMC42LTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOS0uOS01LjMtNS4zLTkuMy0xMC42LTEwLjEtNTEuNS04LjItOTIuOC00Ny4xLTEwNC41LTk3LjQtMS44LTcuNi04LTEzLjQtMTUuNy0xNC42LTU0LjYtOC43LTk3LjctNTItMTA2LjItMTA2Ljh6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFh3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY3Jld2RyaXZlci13cmVuY2giLGljb246WzU3Niw1MTIsWyJ0b29scyJdLCJmN2Q5IiwiTTcwLjgtNi43YzUuNC01LjQgMTMuOC02LjIgMjAuMi0yTDIwOS45IDcwLjVjOC45IDUuOSAxNC4yIDE1LjkgMTQuMiAyNi42bDAgNDkuNiA5MC44IDkwLjhjMzMuMy0xNSA3My45LTguOSAxMDEuMiAxOC41TDU0Mi4yIDM4Mi4xYzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45bC02MC4xIDYwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDI4OC4xIDM4NGMtMjcuNC0yNy40LTMzLjUtNjcuOS0xOC41LTEwMS4ybC05MC44LTkwLjgtNDkuNiAwYy0xMC43IDAtMjAuNy01LjMtMjYuNi0xNC4yTDIzLjQgNTguOWMtNC4yLTYuMy0zLjQtMTQuOCAyLTIwLjJMNzAuOC02Ljd6bTE0NSAzMDMuNWMtNi4zIDM2LjkgMi4zIDc1LjkgMjYuMiAxMDcuMmwtOTQuOSA5NWMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAwcy0yOC4xLTczLjcgMC0xMDEuOGwxMzUuNC0xMzUuNSAzNS4yIDM1LjF6TTM4NC4xIDBjMjAuMSAwIDM5LjQgMy43IDU3LjEgMTAuNSAxMCAzLjggMTEuOCAxNi41IDQuMyAyNC4xTDM4OC44IDkxLjNjLTMgMy00LjcgNy4xLTQuNyAxMS4zbDAgNDEuNGMwIDguOCA3LjIgMTYgMTYgMTZsNDEuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNTYuNy01Ni43YzcuNi03LjUgMjAuMy01LjcgMjQuMSA0LjMgNi44IDE3LjcgMTAuNSAzNyAxMC41IDU3LjEgMCA0My4yLTE3LjIgODIuMy00NSAxMTEuMWwtNDkuMS00OS4xYy0zMy4xLTMzLTc4LjUtNDUuNy0xMjEuMS0zOC40bC01Ni44LTU2LjggMC0yOS43LS4yLTVjLS44LTEyLjQtNC40LTI0LjMtMTAuNS0zNC45IDI5LjQtMzUgNzMuNC01Ny4yIDEyMi43LTU3LjN6Il19LHdjYT1Yd2Usa2NhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZGVudCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTE5MiAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgOTZsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyek0wIDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xMjcuOCAyNjguNkwyNS44IDM0Ny45QzE1LjMgMzU2LjEgMCAzNDguNiAwIDMzNS4zTDAgMTc2LjdjMC0xMy4zIDE1LjMtMjAuOCAyNS44LTEyLjZsMTAxLjkgNzkuM2M4LjIgNi40IDguMiAxOC45IDAgMjUuM3oiXX0sUXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMiLGljb246WzQ0OCw1MTIsWyJuYXZpY29uIl0sImYwYzkiLCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sU2NhPVF3ZSxKd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtcHJheWluZyIsaWNvbjpbNjQwLDUxMixbInByYXlpbmctaGFuZHMiXSwiZjY4NCIsIk0yMjQgMjk2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyLjYgODguMi0xMTkuN2MxMy4xLTE3LjggOS4zLTQyLjgtOC41LTU1LjlzLTQyLjgtOS4zLTU1LjkgOC41TDEwNi41IDE0Mi45Qzg5LjMgMTY2LjIgODAgMTk0LjUgODAgMjIzLjZsMCAxMTAuNy01OC4xIDE5LjRDOC44IDM1OCAwIDM3MC4yIDAgMzg0bDAgOTZjMCAxMCA0LjcgMTkuNSAxMi43IDI1LjVzMTguNCA4IDI4LjEgNS4ybDE1NC40LTQ0LjFjNTUtMTUuNyA5Mi44LTY1LjkgOTIuOC0xMjMuMUwyODggMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNzJ6bTE5MiAwbDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTkuNmMwIDU3LjIgMzcuOSAxMDcuNCA5Mi44IDEyMy4xbDE1NC40IDQ0LjFjOS43IDIuOCAyMCAuOCAyOC4xLTUuMlM2NDAgNDkwIDY0MCA0ODBsMC05NmMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtNTguMS0xOS40IDAtMTEwLjdjMC0yOS05LjMtNTcuMy0yNi41LTgwLjdMNDQwLjIgMTYuM0M0MjcuMS0xLjUgNDAyLjEtNS4zIDM4NC4zIDcuOHMtMjEuNiAzOC4xLTguNSA1NS45TDQ2NCAxODMuNCA0NjQgMjk2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxfY2E9SndlLE1jYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1c2VzIixpY29uOls2NDAsNTEyLFtdLCJlMDc2IiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMzAuNSAzNi45IDQ1LjggNTguNSAyNC4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTIxLjYgMjEuNi02LjMgNTguNSAyNC4yIDU4LjUgMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTMwLjUgMC00NS44IDM2LjktMjQuMiA1OC41IDEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwYy0yMS42LTIxLjYtNTguNS02LjMtNTguNSAyNC4yIDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMzAuNS0zNi45LTQ1LjgtNTguNS0yNC4yLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zQzc3LjggMjYwLjkgNjIuNSAyMjQgMzIgMjI0IDE0LjMgMjI0IDAgMjA5LjcgMCAxOTJzMTQuMy0zMiAzMi0zMmMzMC41IDAgNDUuOC0zNi45IDI0LjItNTguNS0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwQzEyMy4xIDc3LjggMTYwIDYyLjUgMTYwIDMyIDE2MCAxNC4zIDE3NC4zIDAgMTkyIDB6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMjggNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjQ4IDQwYzAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek01MDQgMzg0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHpjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtZmxhZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2ZSIsIk0yNTYtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC03MiAwIDAgMTkuMiAxMjggNzYuOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjgtNzYuOCAwLTkxLjJ6TTI0MCAzODRsMCA4MCA5NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTExMiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6bS0yMjQgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6Il19LENjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFkZW1hcmsiLGljb246WzY0MCw1MTIsWzg0ODJdLCJmMjVjIiwiTTM0Ni42IDExMC4yYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVMyODggMTEzLjkgMjg4IDEyOGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTUwLjMgNjkuNCAxMDQuMWM1LjkgOC45IDE1LjkgMTQuMiAyNi42IDE0LjJzMjAuNy01LjMgMjYuNi0xNC4yTDU0NCAyMzMuNyA1NDQgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNC4xLTkuMi0yNi41LTIyLjctMzAuNnMtMjguMSAxLjEtMzUuOSAxMi45TDQ0OCAyNjIuMyAzNDYuNiAxMTAuMnpNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsNjQgMCAwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgOTZ6Il19LFRjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWJ1cm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZTRmMSIsIk0yODEuNyA0OC4zTDI5NCAzNC41YzUuNC02LjEgMTMuMy04LjggMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjEgMjYuMiA4OC4xIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVzMTMuNCAzLjIgMTguOCA3LjVjMTQuNCAxMS40IDM4LjkgNDAuNyAzOC45IDQwLjd6TTMyMCAyNDAuMmMwLTM2LjUtMzctNzMtNTQuOC04OC40LTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC44IDUxLjktNTQuOCA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTkyLjggMzIwYzM3LjcgNDguMyA5Ni4xIDgwIDE2My4yIDgwIDY2LjUgMCAxMjUuMS0zMS43IDE2My04MGw0NSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ0LjggMHpNNDU2IDQwMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxla2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zbWlsZS1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MjIsInNtaWxlLWJlYW0iXSwiZjViOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sJGNhPWVrZSxEY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1sZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJlNTdmIiwiTS0uNSAxMTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDcyLTcyYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzEgMzEgMzEwLjEgMCA1NC4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMC0uMSAwLTI2MiAwIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcyLTcyek0zNy4xIDQ3Nkw2MC4zIDI5Mi42YzEuMi05LjcgNi44LTE4LjMgMTUuMS0yMy4zTDIzOC44IDE3MGMxMC4yLTYuMiAyMi45LTYuMiAzMy4xLS4xbDE2NS41IDk5LjRjOC40IDUgMTQgMTMuNyAxNS4zIDIzLjRMNDc1LjkgNDc2YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNzEuOSAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43TDI3NS40IDM1Ny45Yy0xLjgtMy42LTUuNS01LjktOS41LTUuOS01LjkgMC0xMC42IDQuNy0xMC42IDEwLjZsMCAxMTcuNGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2OC44IDUxMmMtMTkuMyAwLTM0LjItMTYuOS0zMS43LTM2eiJdfSxMY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm91dGUiLGljb246WzUxMiw1MTIsW10sImY0ZDciLCJNNTEyIDk2YzAgNTAuMi01OS4xIDEyNS4xLTg0LjYgMTU1LTMuOCA0LjQtOS40IDYuMS0xNC41IDVMMzIwIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0yNzYuNCAwYzguNy05LjkgMTkuMy0yMi42IDMwLTM2LjggNi4zLTguNCAxMi44LTE3LjYgMTktMjcuMkw0MTYgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2bDM5LjggMGMtMjEtMzEuNS0zOS44LTY3LjctMzkuOC05NiAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2ek0xMTcuMSA0ODkuMWMtMy44IDQuMy03LjIgOC4xLTEwLjEgMTEuM2wtMS44IDItLjItLjJjLTYgNC42LTE0LjYgNC0yMC0xLjgtMjUuMi0yNy40LTg1LTk3LjktODUtMTQ4LjQgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDMwLTIxLjEgNjctNDMuNSA5Ny45LTEwLjcgMTQuNy0yMS43IDI4LTMwLjggMzguNWwtLjYgLjd6TTEyOCAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDE2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHRrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtdXAiLGljb246WzM4NCw1MTIsWyJhbmdsZS1kb3VibGUtdXAiXSwiZjEwMiIsIk0yMTQuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMzI5LjQgMjQ2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHptMTYwIDM1MmwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDMwMS4zIDMyOS40IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6Il19LEVjYT10a2UsUGNhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Y2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjZiIsIk00NDMuNyAyMDhjMi43IDQuNyA0LjMgMTAuMiA0LjMgMTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTUuMSAwLTIyLjQgMjEzYy0yLjYgMjQuNC0yMy4yIDQzLTQ3LjggNDNsLTIzMy42IDBjLTI0LjYgMC00NS4yLTE4LjUtNDcuOC00M0wzNy4xIDI1NiAzMiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtNS44IDEuNi0xMS4zIDQuMy0xNmw0MzkuNCAwek0yMjQtMTZjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCAzMi00OCAwIDAtMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMi00OCAwIDAtMzJDODAgNDguNSAxNDQuNS0xNiAyMjQtMTZ6Il19LEljYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZXNzLXRoYW4tZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1MzciLCJNNDI2LjEgOTQuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4ybC0zODQgMTI4QzguOCAxNjYgMCAxNzguMiAwIDE5MnM4LjggMjYgMjEuOSAzMC40bDM4NCAxMjhjMTYuOCA1LjYgMzQuOS0zLjUgNDAuNS0yMC4ycy0zLjUtMzQuOS0yMC4yLTQwLjVMMTMzLjIgMTkyIDQyNi4xIDk0LjR6TTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6Il19LEFjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItY2xvc2VkIixpY29uOls1MTIsNTEyLFtdLCJlMTg1IiwiTTQ0OCA0NDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3NiA1MTIgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NHptNjQtMjg4TDAgMTYwIDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2eiJdfSxOY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXRocm91Z2gtd2luZG93IixpY29uOls2NDAsNTEyLFtdLCJlNWE5IiwiTTY0IDY0bDIyNCAwIDAgOS44YzAgMzktMjMuNyA3NC01OS45IDg4LjQtNjAuNSAyNC4yLTEwMC4xIDgyLjctMTAwLjEgMTQ3LjlsMCA3My44LTY0IDAgMC0zMjB6bTI4OCAwbDIyNCAwIDAgMzIwLTY3LjcgMC0zLjctNC41LTc1LjItOTAuMmMtOS4xLTEwLjktMjIuNi0xNy4zLTM2LjktMTcuM2wtNzEuMSAwLTQxLTYzLjFjLS4zLS41LS42LTEtMS0xLjQgNDQuNy0yOSA3Mi41LTc5IDcyLjUtMTMzLjZsMC05Ljh6bTczIDMyMGwtMjYuNiAwIDQyLjcgNjQgMTUwLjkgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQwMGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNjAuMiAwIDMzLjIgNDkuOGM5LjggMTQuNyAyOS43IDE4LjcgNDQuNCA4LjlzMTguNy0yOS43IDguOS00NC40bC04NC4yLTEyNi4yIDc0LjYgMCA0MCA0OHptLTE1OS41IDBsLTczLjUgMCAwLTczLjhjMC0xMC4yIDEuNi0yMC4xIDQuNy0yOS41TDI2NS41IDM4NHpNMTkyIDEyOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxSY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1NmYiLCJNMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjcuOS0xMTUuMWMxOC4zLTE2LjQgNDYtMTYuNCA2NC4yIDBMNDQ4IDEyOCA1MTIgMTI4YzMzIDAgNjAuMiAyNSA2My42IDU3LjItMTQuNy01LjktMzAuOC05LjItNDcuNi05LjItNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyek0zMzIuMyAzNDEuNWMtNi0zLjUtMTIuOS01LjUtMjAuMy01LjVsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgODggOTYgMCAwLTY0LjFjMC0yMC44IDQuNC00MC41IDEyLjMtNTguNHpNMTEyIDM4NGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnptMjI0LTQ4YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNNTYwIDM1MmwwLTQ3LjljMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDB6bS0xMTIgMi43bDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zeiJdfSxPY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTNiIiwiTTIwNCA0MC4xYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHpNNCAxNDQuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNOTYuNSAyODUuNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDk2LjUgMjg1LjV6TTYyLjYgMi43YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDYyLjYgMzYuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6TTM1Mi40LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek00NzguNyAyOTkuMWwtNDYuMy02Mi40IDAgMjc1LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNzUuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1YzI1LjItMzMuOSA2NS01My45IDEwNy4yLTUzLjlzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6Il19LGFrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWZ0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWFsdC1sZWZ0Il0sImYzMGEiLCJNOS40IDI3OC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE5MiAxMTUuMSAxOTIgMTI4bDAgNjQgMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzM2IDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTI4LTEyOHoiXX0sRmNhPWFrZSxza2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tY3Jvc3NoYWlycyIsaWNvbjpbNTc2LDUxMixbImxvY2F0aW9uIl0sImY2MDEiLCJNMjg4LTE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTguM2M5OC4xIDE0IDE3NS43IDkxLjYgMTg5LjcgMTg5LjdsMTguMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC4zIDBjLTE0IDk4LjEtOTEuNiAxNzUuNy0xODkuNyAxODkuN2wwIDE4LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC4zQzE1Ny45IDQ2My43IDgwLjMgMzg2LjEgNjYuMyAyODhMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjMgMEM4MC4zIDEyNS45IDE1Ny45IDQ4LjMgMjU2IDM0LjNMMjU2IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMjggMjU2YTE2MCAxNjAgMCAxIDAgMzIwIDAgMTYwIDE2MCAwIDEgMCAtMzIwIDB6bTE2MC05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sQmNhPXNrZSxpa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRvdHMtZnJvbS1saW5lIixpY29uOls1MTIsNTEyLFsiZGlhZ25vc2VzIl0sImY0NzAiLCJNMTg0IDcyYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDI5OS4zYy0xOS45IDIyLjYtMzIgNTIuMi0zMiA4NC43bDAgMzItNjQgMCAwLTMyYzAtMTA2IDg2LTE5MiAxOTItMTkyczE5MiA4NiAxOTIgMTkybDAgMzItNjQgMCAwLTMyYzAtMzIuNS0xMi4xLTYyLjEtMzItODQuN2wwIDExNi43LTE5MiAwIDAtMTE2Ljd6TTIzMiAzODRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OC0xMDRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjQgNDY0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNNjQgMTg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQyNCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LEhjYT1pa2UsWW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLXNpbXBsZS1oaWdoIixpY29uOls1MTIsNTEyLFs2MTY2OCwidGFjaG9tZXRlciIsInRhY2hvbWV0ZXItZmFzdCJdLCJmNjJhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMyMCA5NmMwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NCA2NC0yOC43IDY0LTY0eiJdfSxxY2E9WW9lLGpjYT1Zb2UscmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1sZWZ0IixpY29uOls0NDgsNTEyLFsxNzEsImFuZ2xlLWRvdWJsZS1sZWZ0Il0sImYxMDAiLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjE0LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6bTM1Mi0xNjBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyNjkuMyAyNTYgNDA2LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDB6Il19LFZjYT1ya2Usb2tlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWRvd24iLGljb246WzUxMiw1MTIsWzg1OTcsMTEwMjEsImFycm93cy1hbHQtdiJdLCJmMzM4IiwiTTQwNi42IDUwMi42bDk2LTk2YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDM1MiA0ODAgMzUybC02NCAwIDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzIwLTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwek0xNTAuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTkuMSAxNjAgMzIgMTYwbDY0IDAgMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyMCA2NCAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTk2LTk2eiJdfSxVY2E9b2tlLG5rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWVtcHR5IixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS0wIl0sImYyNDQiLCJNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNmw0MTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yMjRjMC04LjgtNy4yLTE2LTE2LTE2bC00MTYgMHpNMzIgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwbC00MTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0yMjR6Il19LFdjYT1ua2UsR2NhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtleWJvYXJkIixpY29uOls1NzYsNTEyLFs5ZTNdLCJmMTFjIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0xNiA2NGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMTc2IDEyOGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xNjAgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtMTc2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEtjYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb29raWUiLGljb246WzUxMiw1MTIsWzEyNzg1MF0sImY1NjMiLCJNMjQ3LjIgMTdjLTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOWwtMTQuNi04Mi44Yy0zLjktMjIuMS0xNC42LTQyLjMtMzAuNy01Ny45TDM4OC45IDU3LjVjLTE2LjEtMTUuNi0zNi42LTI1LjYtNTguNy0yOC43TDI0Ny4yIDE3ek0yMDggMTQ0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTQ0IDMzNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0yMjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxZY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcHdhdGNoIixpY29uOls0NDgsNTEyLFs5MjAxXSwiZjJmMiIsIk0xNjguNSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAyNS4zYy0xMDggMTEuOS0xOTIgMTAzLjUtMTkyIDIxNC43IDAgMTE5LjMgOTYuNyAyMTYgMjE2IDIxNnMyMTYtOTYuNyAyMTYtMjE2YzAtMzkuOC0xMC44LTc3LjEtMjkuNi0xMDkuMmwyOC4yLTI4LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTIzLjQgMjMuNGMtMzIuOS0zMC4yLTc1LjItNTAuMy0xMjItNTUuNWwwLTI1LjMgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTgwIDE4NGwwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxaY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWplY3QiLGljb246WzQ0OCw1MTIsWzkxNjddLCJmMDUyIiwiTTIyNCAzMmMxMy41IDAgMjYuMyA1LjYgMzUuNCAxNS42bDE3NiAxOTJjMTIuOSAxNCAxNi4yIDM0LjMgOC42IDUxLjhTNDE5IDMyMCA0MDAgMzIwTDQ4IDMyMGMtMTkgMC0zNi4zLTExLjItNDMuOS0yOC43cy00LjMtMzcuNyA4LjYtNTEuOGwxNzYtMTkyQzE5Ny43IDM3LjYgMjEwLjUgMzIgMjI0IDMyek0wIDQzMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxYY2E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2F0ZWxsaXRlLWRpc2giLGljb246WzUxMiw1MTIsWzEyODIyNV0sImY3YzAiLCJNMjMyIDBjMTU0LjYgMCAyODAgMTI1LjQgMjgwIDI4MCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEyOC4xLTEwMy45LTIzMi0yMzItMjMyLTEzLjMgMC0yNC0xMC43LTI0LTI0UzIxOC43IDAgMjMyIDB6TTIwOCAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTAxLjYgMCAxODQgODIuNCAxODQgMTg0IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNzUuMS02MC45LTEzNi0xMzYtMTM2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNi40IDE0Mi43YzguOC0xNy45IDMyLjQtMTkuOSA0Ni41LTUuOGwxMjguNSAxMjguNSAzMi0zMmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0zMiAzMiAxMjguNSAxMjguNWMxNC4xIDE0LjEgMTIgMzcuNi01LjggNDYuNS0zNC4yIDE2LjktNzIuNiAyNi40LTExMy4zIDI2LjQtMTQxLjQgMC0yNTYtMTE0LjYtMjU2LTI1NiAwLTQwLjcgOS41LTc5LjIgMjYuNC0xMTMuM3oiXX0sbGtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utcm9sbGluZy1leWVzIixpY29uOls1MTIsNTEyLFsxMjg1ODAsIm1laC1yb2xsaW5nLWV5ZXMiXSwiZjVhNSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDM1MmwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTMyLTEyOGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2IDE1LjUtNDguNCAzNy44LTU4LjQtMy43IDUuMi01LjggMTEuNi01LjggMTguNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi45LTIuMi0xMy4yLTUuOC0xOC40IDIyLjMgMTAgMzcuOCAzMi40IDM3LjggNTguNHptMTI4IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI2IDE1LjUtNDguNCAzNy44LTU4LjQtMy43IDUuMi01LjggMTEuNi01LjggMTguNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi45LTIuMi0xMy4yLTUuOC0xOC40IDIyLjMgMTAgMzcuOCAzMi40IDM3LjggNTguNCAwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sUWNhPWxrZSxja2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC1jaGVjayIsaWNvbjpbNTEyLDUxMixbInRhc2tzIl0sImYwYWUiLCJNMTMzLjggMzYuM2MxMC45IDcuNiAxMy41IDIyLjYgNS45IDMzLjRsLTU2IDgwYy00LjEgNS44LTEwLjUgOS41LTE3LjYgMTAuMVM1MiAxNTggNDcgMTUzTDcgMTEzQy0yLjMgMTAzLjYtMi4zIDg4LjQgNyA3OVMzMS42IDY5LjcgNDEgNzlsMTkuOCAxOS44IDM5LjYtNTYuNmM3LjYtMTAuOSAyMi42LTEzLjUgMzMuNC01Ljl6bTAgMTYwYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDMxOCA0NyAzMTNMNyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXpNMjI0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2MCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNjQgMzc2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sSmNhPWNrZSxlMWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Fjay14bWFyayIsaWNvbjpbNTEyLDUxMixbXSwiZTU2YSIsIk0zMjggMTEybC0xNDQgMC0zNy4zLTc0LjVjLTEuOC0zLjYtMi43LTcuNi0yLjctMTEuNiAwLTE0LjMgMTEuNi0yNS45IDI1LjktMjUuOUwzNDIuMSAwYzE0LjMgMCAyNS45IDExLjYgMjUuOSAyNS45IDAgNC0uOSA4LTIuNyAxMS42TDMyOCAxMTJ6TTE2OS42IDE2MGwxNzIuOCAwIDQ4LjcgNDAuNkM0NTcuNiAyNTYgNDk2IDMzOCA0OTYgNDI0LjUgNDk2IDQ3Mi44IDQ1Ni44IDUxMiA0MDguNSA1MTJsLTMwNS4xIDBDNTUuMiA1MTIgMTYgNDcyLjggMTYgNDI0LjUgMTYgMzM4IDU0LjQgMjU2IDEyMC45IDIwMC42TDE2OS42IDE2MHpNMzIzLjkgMjg0LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0zMy45IDMzLjktMzMuOS0zMy45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjkgMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzMuOS0zMy45IDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXoiXX0sdDFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhhc2h0YWciLGljb246WzUxMiw1MTIsWzYyMDk4XSwiMjMiLCJNMjE0LjcgLjdjMTcuMyAzLjcgMjguMyAyMC43IDI0LjYgMzhsLTE5LjEgODkuMyAxMjYuNSAwIDIyLTEwMi43QzM3Mi40IDggMzg5LjQtMyA0MDYuNyAuN3MyOC4zIDIwLjcgMjQuNiAzOEw0MTIuMiAxMjggNDgwIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODEuNiAwLTI3LjQgMTI4IDY3LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODEuNiAwLTIyIDEwMi43Yy0zLjcgMTcuMy0yMC43IDI4LjMtMzggMjQuNnMtMjguMy0yMC43LTI0LjYtMzhsMTkuMS04OS4zLTEyNi41IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOEw5OS44IDM4NCAzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODEuNiAwIDI3LjQtMTI4LTY3LjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjItMTAyLjdDMTgwLjQgOCAxOTcuNC0zIDIxNC43IC43ek0yMDYuNCAxOTJsLTI3LjQgMTI4IDEyNi41IDAgMjcuNC0xMjgtMTI2LjUgMHoiXX0sYTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluIixpY29uOlszODQsNTEyLFsxMjg2NDZdLCJmMjM4IiwiTTAgOTZDMCA0MyA0MyAwIDk2IDBMMjg4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDI1NmMwIDQwLjEtMjQuNiA3NC41LTU5LjUgODguOGw1My45IDYzLjdjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC04Ny41LTE1MS4zIDAtNzQgODcuNWMtOC42IDEwLjEtMjMuNyAxMS40LTMzLjggMi44cy0xMS40LTIzLjctMi44LTMzLjhsNTMuOS02My43QzI0LjYgNDI2LjUgMCAzOTIuMSAwIDM1MkwwIDk2em02NCAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xOTIgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sczFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhbWVwYWQiLGljb246WzY0MCw1MTIsW10sImYxMWIiLCJNNDQ4IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkyUzU1NCA0NDggNDQ4IDQ0OGwtMjU2IDBDODYgNDQ4IDAgMzYyIDAgMjU2Uzg2IDY0IDE5MiA2NGwyNTYgMHpNMTkyIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNDAgOTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em02NC05NmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6Il19LGRrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWV4cG9ydCIsaWNvbjpbNTc2LDUxMixbImFycm93LXJpZ2h0LWZyb20tZmlsZSJdLCJmNTZlIiwiTTk2LjUgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05NiA3OC4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtNzguMSAwIDAtMTMzLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkxLjIgMTguN0MyNzkuMiA2LjcgMjYzIDAgMjQ2IDBMOTYuNSAwek0zNTggMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MC41IDU4LjUgMzU4IDE3NnpNMjI0LjUgMzI4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDEwNCAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxpMWE9ZGtlLHVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW1hY2UiLGljb246WzUxMiw1MTIsWzEyODU1NiwiZ3JpbWFjZSJdLCJmNTdmIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek00MDAgMzUyYzAgMjUuMi0xOS40IDQ1LjgtNDQgNDcuOGwwLTk1LjdjMjQuNiAyIDQ0IDIyLjcgNDQgNDcuOHpNMjc2IDMwNGw0MCAwIDAgOTYtNDAgMCAwLTk2em0tODAgOTZsMC05NiA0MCAwIDAgOTYtNDAgMHptLTQwLTk1LjhsMCA5NS43Yy0yNC42LTItNDQtMjIuNy00NC00Ny44czE5LjQtNDUuOCA0NC00Ny44ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHIxYT11a2UscGtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluLXN1YndheSIsaWNvbjpbMzg0LDUxMixbInN1YndheSJdLCJmMjM5IiwiTTAgOTZDMCA0MyA0MyAwIDk2IDBMMjg4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDI1NmMwIDQwLjEtMjQuNiA3NC41LTU5LjUgODguOGw1My45IDYzLjdjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC04Ny41LTE1MS4zIDAtNzQgODcuNWMtOC42IDEwLjEtMjMuNyAxMS40LTMzLjggMi44cy0xMS40LTIzLjctMi44LTMzLjhsNTMuOS02My43QzI0LjYgNDI2LjUgMCAzOTIuMSAwIDM1MkwwIDk2em02NCAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDcyIDAgMC0xNjAtNzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTIxNiAyNTZsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC03MiAwIDAgMTYwek05NiAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0yMjQtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sbzFhPXBrZSxoa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzUyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxuMWE9aGtlLGwxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvYmplY3QtZ3JvdXAiLGljb246WzU3Niw1MTIsW10sImYyNDciLCJNMzIgMTE5LjRDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDAgODcuNyAwIDEwOC40IDEyLjkgMTE5LjQgMzJsMzM3LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDI3My4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0zMzcuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI3My4xem00NDggMGMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40TDExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAyNzMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMzM3LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0yNzMuMXpNMTQ0IDE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpNMjU2IDMyMGwzMiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTEyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6Il19LGMxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGlwIixpY29uOls2NDAsNTEyLFsxMjg2NzRdLCJmMjFhIiwiTTI3MiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2LTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMTA4LjgtMjEuNiA4LjZjLTE0LjggNS45LTIyLjUgMjIuNC0xNy40IDM3LjUgMTAuNCAzMS4zIDI2LjggNTkuMyA0Ny43IDgzLjEgMjAuMS05LjIgNDEuNy0xMy45IDYzLjMtMTQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40bDEuNiAxLjIgMC0yMTUtMTA0IDQxLjYgMC04My4yYzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4My4yLTEwNC00MS42IDAgMjE1IDEuNi0xLjJjMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMjIuMy0uMSA0NC42IDQuNSA2NS4zIDE0IDIwLjktMjMuNyAzNy4zLTUxLjggNDcuNy04My4xIDUtMTUuMi0yLjYtMzEuNi0xNy40LTM3LjVMNTEyIDI1Mi44IDUxMiAxNDRjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDAgMC0xNmMwLTI2LjUtMjEuNS00OC00OC00OEwyNzIgMHpNNDAzLjQgNDc2LjFjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA0ODIuMyAxNy42IDQ5MC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sZDFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImMiLGljb246WzM4NCw1MTIsWzk5XSwiNDMiLCJNMzI5LjEgMTQyLjljLTYyLjUtNjIuNS0xNTUuOC02Mi41LTIxOC4zIDBzLTYyLjUgMTYzLjggMCAyMjYuMyAxNTUuOCA2Mi41IDIxOC4zIDBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtODcuNSA4Ny41LTIyMS4zIDg3LjUtMzA4LjggMHMtODcuNS0yMjkuMyAwLTMxNi44IDIyMS4zLTg3LjUgMzA4LjggMGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHoiXX0sZmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1waG9uZSIsaWNvbjpbNDQ4LDUxMixbInBob25lLXNxdWFyZSJdLCJmMDk4IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTg4IDk2LjdjOS44LTIuNyAyMC4xIDIuNCAyNCAxMS44bDIwLjMgNDguN2MzLjQgOC4zIDEuMSAxNy44LTUuOSAyMy41bC0yMi4xIDE4YzE2LjIgMzUuOCA0NC41IDY1IDc5LjYgODIuNGwxOS4zLTIzLjZjNS43LTYuOSAxNS4yLTkuMyAyMy41LTUuOWw0OC43IDIwLjNjOS40IDMuOSAxNC40IDE0LjIgMTEuOCAyNGwtLjggMi44Yy04LjggMzIuMy00MC4xIDU5LjktNzguMiA1MS44LTg3LjUtMTguNS0xNTYuMy04Ny40LTE3NC45LTE3NC45LTguMS0zOC4xIDE5LjUtNjkuNCA1MS44LTc4LjJsMi44LS44eiJdfSx1MWE9ZmtlLHAxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci1jb21iaW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU0NiIsIk0xIDQ0MS43QzUuNSA0NjMuNSAyNC44IDQ4MCA0OCA0ODBsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNjQgMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNjQtNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDMuMyAuMyA2LjYgMSA5Ljd6Il19LFpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtcm90YXRlIixpY29uOls1MTIsNTEyLFsxMjg0NzIsInJlZnJlc2giLCJzeW5jIl0sImYwMjEiLCJNNjUuOSAyMjguNWMxMy4zLTkzIDkzLjQtMTY0LjUgMTkwLjEtMTY0LjUgNTMgMCAxMDEgMjEuNSAxMzUuOCA1Ni4yIC4yIC4yIC40IC40IC42IC42bDcuNiA3LjItNDcuOSAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNC0xMS4zLTEwLjdDMzkwLjUgMjguNiAzMjYuNSAwIDI1NiAwIDEyNyAwIDIwLjMgOTUuNCAyLjYgMjE5LjUgLjEgMjM3IDEyLjIgMjUzLjIgMjkuNyAyNTUuN3MzMy43LTkuNyAzNi4yLTI3LjF6bTQ0My41IDY0YzIuNS0xNy41LTkuNy0zMy43LTI3LjEtMzYuMnMtMzMuNyA5LjctMzYuMiAyNy4xYy0xMy4zIDkzLTkzLjQgMTY0LjUtMTkwLjEgMTY0LjUtNTMgMC0xMDEtMjEuNS0xMzUuOC01Ni4yLS4yLS4yLS40LS40LS42LS42bC03LjYtNy4yIDQ3LjkgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMjBjLTguNSAwLTE2LjcgMy40LTIyLjcgOS41Uy0uMSAzNDMuNyAwIDM1Mi4zbDEgMTI3Yy4xIDE3LjcgMTQuNiAzMS45IDMyLjMgMzEuN1M2NS4yIDQ5Ni40IDY1IDQ3OC43bC0uNC01MS41IDEwLjcgMTAuMWM0Ni4zIDQ2LjEgMTEwLjIgNzQuNyAxODAuNyA3NC43IDEyOSAwIDIzNS43LTk1LjQgMjUzLjQtMjE5LjV6Il19LGgxYT1ab2UsZjFhPVpvZSxta2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRyZXNzIixpY29uOlszODQsNTEyLFsiZmVtYWxlIl0sImYxODIiLCJNMTM2IDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTEyIDM4NGwtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDI3MCAyMzQgMzEzIDM2Mi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMjUuOCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjh6Il19LG0xYT1ta2UsZzFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4MjE0LDEyODM2Nl0sImY1MTgiLCJNMjU2IDE0MS4zbDAgMzA5LjMgLjUtLjJDMzExLjEgNDI3LjcgMzY5LjcgNDE2IDQyOC44IDQxNmwxOS4yIDAgMC0zMjAtMTkuMiAwYy00Mi4yIDAtODQuMSA4LjQtMTIzLjEgMjQuNi0xNi44IDctMzMuNCAxMy45LTQ5LjcgMjAuN3pNMjMwLjkgNjEuNUwyNTYgNzIgMjgxLjEgNjEuNUMzMjcuOSA0MiAzNzguMSAzMiA0MjguOCAzMkw0NjQgMzJjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTM1LjIgMGMtNTAuNyAwLTEwMC45IDEwLTE0Ny43IDI5LjVsLTEyLjggNS4zYy03LjkgMy4zLTE2LjcgMy4zLTI0LjYgMGwtMTIuOC01LjNDMTg0LjEgNDkwIDEzMy45IDQ4MCA4My4yIDQ4MEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41eiJdfSxiMWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLXRyZWUiLGljb246WzU3Niw1MTIsW10sImY4MDIiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDM5MmMwIDMwLjkgMjUuMSA1NiA1NiA1NmwxODQgMCAwLTQ4LTE4NCAwYy00LjQgMC04LTMuNi04LThsMC0yMzIgMTkyIDAgMC00OC0xOTIgMCAwLTg4ek0zMzYgMjI0bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTguNi04LjZjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xTDMzNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMCAyODhsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtOC42LTguNmMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMzM2IDI4OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDh6Il19LHYxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJnbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg1MCIsIk0zNjggMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJsMCAyNi44YzE0LjUtNi45IDMwLjgtMTAuOCA0OC0xMC44IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzU4OS45IDM4NCA1MjggMzg0bC00OCAwIDAgMzJjMCAxNi42IDEyLjYgMzAuMiAyOC43IDMxLjhsNi42IC4zYzE2LjEgMS42IDI4LjcgMTUuMyAyOC43IDMxLjggMCAxNy43LTE0LjMgMzItMzIgMzItNTMgMC05Ni00My05Ni05NmwwLTMyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMwNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgOTQuMiAzMiA4MC42IDMyIDY0IDMyIDQ2LjMgNDYuMyAzMiA2NCAzMiA5MSAzMiAxMTUuMyA0My4xIDEzMi43IDYxIDE1Mi42IDQzIDE3OSAzMiAyMDggMzIgMjM5LjMgMzIgMjY3LjcgNDQuOSAyODggNjUuNyAzMDguMyA0NC45IDMzNi42IDMyIDM2OCAzMnpNNTI4IDIyNGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA0OCA0OCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4eiJdfSxna2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LWFyY2hpdmUiLGljb246WzUxMiw1MTIsWyJhcmNoaXZlIl0sImYxODciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZMMCA2NHpNMzIgMTc2bDQ0OCAwIDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNDB6bTE1MiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LHgxYT1na2UseTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctZG93bi10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTdlIiwiTTE4NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMUMxMjAgMi43IDEwOS4zLTggOTYtOFM3MiAyLjcgNzIgMTZsMCAxMDIuMS0zMS0zMUMzMS42IDc3LjcgMTYuNCA3Ny43IDcgODdTLTIuMyAxMTEuNiA3IDEyMWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MnpNMTU1LjggMjYwLjZMMTMyLjEgNDQ4IDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTIuOC0uNC01LjUtMS04TDU0OC4yIDI2MC43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwzNjcuNCAxMzcuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUwxNzAuOSAyMzcuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zek00NDggNDQ4bC05Ny4xIDAgMC0xNDkuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOUw0NDggNDQ4eiJdfSx3MWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXJjb2RlIixpY29uOls0NDgsNTEyLFtdLCJmMDI5IiwiTTY0IDE2MGw2NCAwIDAtNjQtNjQgMCAwIDY0ek0wIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHpNNjQgNDE2bDY0IDAgMC02NC02NCAwIDAgNjR6TTAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpNMzIwIDk2bDAgNjQgNjQgMCAwLTY0LTY0IDB6TTMwNCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6TTI4OCAzNTJhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTMyIDMyYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6Il19LGsxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcmFnb24iLGljb246WzY0MCw1MTIsWzEyODAwOV0sImY2ZDUiLCJNMzUyIDEyNC41bC01MS45LTEzYy02LjUtMS42LTExLjMtNy4xLTEyLTEzLjhzMi44LTEzLjEgOC43LTE2LjFsNDAuOC0yMC40LTQzLjMtMzIuNWMtNS41LTQuMS03LjgtMTEuMy01LjYtMTcuOVMyOTcuMSAwIDMwNCAwTDQ2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40bDU3LjYgNzYuOGM2LjIgOC4zIDkuNiAxOC40IDkuNiAyOC44IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMS41IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43bC0xMy4zLTEzLjMtMzIgMCAwIDIxLjVjMCAyNC44IDEyLjggNDcuOSAzMy44IDYxLjFsMTA2LjYgNjYuNmMzMi4xIDIwLjEgNTEuNiA1NS4yIDUxLjYgOTMuMSAwIDYwLjYtNDkuMSAxMDkuOC0xMDkuOCAxMDkuOEwzMi4zIDUxMmMtMy4zIDAtNi42LS40LTkuNi0xLjQtOS4yLTIuOC0xNi43LTkuNi0yMC40LTE4LjYtMS4zLTMuMy0yLjItNi45LTIuMy0xMC43LS4yLTMuNyAuMy03LjMgMS4zLTEwLjcgMi44LTkuMiA5LjYtMTYuNyAxOC42LTIwLjQgMy0xLjIgNi4yLTIgOS41LTIuMkw0MzMuMyA0MTJjOC4zLS43IDE0LjctNy43IDE0LjctMTYuMSAwLTQuMy0xLjctOC40LTQuNy0xMS40bC00NC40LTQ0LjRjLTMwLTMwLTQ2LjktNzAuNy00Ni45LTExMy4xbDAtMTAyLjV6TTUxMiA3Mi4zYzAtLjEgMC0uMiAwLS4zczAtLjIgMC0uM2wwIC42em0tMS4zIDcuNEw0NjQuMyA2OC4xYy0uMiAxLjMtLjMgMi42LS4zIDMuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMC42IDAgMTkuNS02LjggMjIuNy0xNi4zek0xMzAuOSAxMTYuNWMxNi4zLTE0LjUgNDAuNC0xNi4yIDU4LjUtNC4xbDEzMC42IDg3IDAgMjcuNWMwIDMyLjggOC40IDY0LjggMjQgOTNsLTIzMiAwYy02LjcgMC0xMi43LTQuMi0xNS0xMC40cy0uNS0xMy4zIDQuNi0xNy43TDE3MSAyMzIuMyAxOC40IDI1NS44Yy03IDEuMS0xMy45LTIuNi0xNi45LTlTLjEgMjMyLjggNS40IDIyOEwxMzAuOSAxMTYuNXoiXX0sYmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1lbmQiLGljb246WzM4NCw1MTIsWzg5ODcsImhvdXJnbGFzcy0zIl0sImYyNTMiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMWw2Ny45IDY3LjktNjcuOSA2Ny45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTY3LjktNjcuOSA2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMlMzNjkuNyAwIDM1MiAwTDMyIDB6TTk2IDc1bDAtMTEgMTkyIDAgMCAxMWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOWwtNjcuOSA2Ny45LTY3LjktNjcuOUMxMDYuMSAxMjQuOSA5NiAxMDAuNCA5NiA3NXoiXX0sUzFhPWJrZSxoaD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwIixpY29uOls1MTIsNTEyLFs1ODExOSwiZ3JpZC1ob3Jpem9udGFsIiwiZ3JpcC1ob3Jpem9udGFsIl0sImY1OGQiLCJNODggOTZjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek0yODAgMjI0bC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHptMTkyIDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDE5MmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6TTI4MCAyODhjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek04OCA0MTZsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQweiJdfSxfMWE9aGgsTTFhPWhoLHZrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItdG9wLWxlZnQiLGljb246WzQ0OCw1MTIsWyJib3JkZXItc3R5bGUiXSwiZjg1MyIsIk0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDM1MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDh6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMnptMTYwIDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpNMzg0IDE5MmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem0zMiAxNjBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx6MWE9dmtlLHhrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LXVsIixpY29uOls1MTIsNTEyLFsibGlzdC1kb3RzIl0sImYwY2EiLCJNNDggMTQ0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTQ4IDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTk2IDI1NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxDMWE9eGtlLFQxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtcm9iYmVyeSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNiIsIk00ODguMiA1OS4xQzQ3OC4xIDk5LjYgNDQxLjcgMTI4IDQwMCAxMjhzLTc4LjEtMjguNC04OC4yLTY4LjlMMzAzIDI0LjJDMjk4LjggNy4xIDI4MS40LTMuMyAyNjQuMiAxUzIzNi43IDIyLjYgMjQxIDM5LjhsOC43IDM0LjljMTEgNDQgNDAuMiA3OS42IDc4LjMgOTkuNkwzMjggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA1LjdjMzguMS0yMCA2Ny4zLTU1LjYgNzguMy05OS42TDU1OSAzOS44YzQuMy0xNy4xLTYuMS0zNC41LTIzLjMtMzguOFM1MDEuMiA3LjEgNDk3IDI0LjJsLTguNyAzNC45ek00MDAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDAgLjYgMCAxOTEuNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNy4zIDEzIDIwLjVjNS45IDkuMiAxNi4xIDE0LjkgMjcgMTQuOWw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMC40IDAtMzcuNC01OC45QzE1Ny42IDE0MiAxMzIuMSAxMjggMTA0LjcgMTI4TDcyIDEyOHoiXX0sJDFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1idXR0b24iLGljb246WzM4NCw1MTIsW10sImYxMGIiLCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwek0xOTIgNDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnoiXX0sWG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tYS16IixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS1hc2MiLCJzb3J0LWFscGhhLWRvd24iXSwiZjE1ZCIsIk0yMzAuNiAzOTAuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTE4Mi0zNDAuOWM1MC43IDEwMS4zIDc3LjMgMTU0LjcgODAgMTYwIDcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNsLTcuMi0xNC4zLTg4LjQgMC03LjIgMTQuM2MtNy45IDE1LjgtMjcuMSAyMi4yLTQyLjkgMTQuM3MtMjIuMi0yNy4xLTE0LjMtNDIuOWMyLjctNS4zIDI5LjMtNTguNyA4MC0xNjAgNS40LTEwLjggMTYuNS0xNy43IDI4LjYtMTcuN3MyMy4yIDYuOCAyOC42IDE3Ljd6TTM4NCAxMzUuNmwtMjAuMiA0MC40IDQwLjQgMC0yMC4yLTQwLjR6TTI4OCAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyA0MTYgNDQ4IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDczLjQtNzMuNC01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxEMWE9WG9lLEwxYT1Yb2UsRTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwiLGljb246WzUxMiw1MTIsW10sImYwZDYiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMTkyIDI0YzAgNC40LTMuNiA4LjEtOCA3LjUtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDh6TTY0IDMyOGMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6bTgtMTM2LjVjLTQuNCAuNS04LTMuMS04LTcuNWwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjV6bTM2OCAxMjljNC40LS41IDggMy4xIDggNy41bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41eiJdfSx5a2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW1pbnVzIixpY29uOls1MTIsNTEyLFsibWludXMtY2lyY2xlIl0sImYwNTYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2OCAyMzJsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxQMWE9eWtlLHdrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1wb2ludGVyIixpY29uOls0NDgsNTEyLFsibW91c2UtcG9pbnRlciJdLCJmMjQ1IiwiTTc3LjMgMi41YzguMS00LjEgMTcuOS0zLjIgMjUuMSAyLjNsMzIwIDIzOS45YzguMyA2LjIgMTEuNiAxNyA4LjQgMjYuOHMtMTIuNCAxNi40LTIyLjggMTYuNGwtMTUyLjMgMCA4OC45IDE3Ny43YzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNsLTg4LjktMTc3LjctOTEuMyAxMjEuOGMtNi4yIDguMy0xNyAxMS42LTI2LjggOC40UzY0IDQzNC4zIDY0IDQyNEw2NCAyNGMwLTkuMSA1LjEtMTcuNCAxMy4zLTIxLjV6Il19LEkxYT13a2Usa2tlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1zaGFyZS1ub2RlcyIsaWNvbjpbNDQ4LDUxMixbInNoYXJlLWFsdC1zcXVhcmUiXSwiZjFlMSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNjggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0LTE1LjQgMC0yOS41LTUuNC00MC42LTE0LjVsLTg1LjMgNDYuNSA4NS4zIDQ2LjVjMTEtOS4xIDI1LjItMTQuNSA0MC42LTE0LjUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NGMwLTIuNSAuMS00LjkgLjQtNy4zTDE1OC41IDMwMGMtMTEuNyAxMi4zLTI4LjIgMjAtNDYuNSAyMC0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE4LjMgMCAzNC44IDcuNyA0Ni41IDIwbDgxLjktNDQuN2MtLjMtMi40LS40LTQuOS0uNC03LjMgMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHoiXX0sQTFhPWtrZSxTa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtbGFyZ2UiLGljb246WzQ0OCw1MTIsWyJ0aC1sYXJnZSJdLCJmMDA5IiwiTTM4NCA5NmwtMTI4IDAgMCAxMjggMTI4IDAgMC0xMjh6bTY0IDEyOGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjh6TTY0IDI4OGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHptMTI4LTY0bDAtMTI4LTEyOCAwIDAgMTI4IDEyOCAwem02NCA2NGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHoiXX0sTjFhPVNrZSxSMWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2F0IixpY29uOls1NzYsNTEyLFsxMjgwMDhdLCJmNmJlIiwiTTY0IDk2YzUzIDAgOTYgNDMgOTYgOTZsMCA4NS44YzI5LjctNDQuNyA3Ny44LTc2LjIgMTMzLjQtODQgMjUuNiA2MCA4NS4yIDEwMi4xIDE1NC42IDEwMi4xIDEwLjkgMCAyMS42LTEuMSAzMi0zLjFMNDgwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0MC44LTEzNiAxMDguOCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNDQgMGMtNTMgMC05Ni00My05Ni05NmwwLTIyNGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgMTU4LjIgMzIgMTQ0LjYgMzIgMTI4IDMyIDExMC4zIDQ2LjMgOTYgNjQgOTZ6TTUzMy44IDMuMkM1NDQuMi01LjUgNTYwIDEuOSA1NjAgMTUuNUw1NjAgMTI4YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzMzNiAxODkuOSAzMzYgMTI4bDAtMTEyLjVjMC0xMy42IDE1LjgtMjEgMjYuMi0xMi4zTDQxNiA0OCA0ODAgNDggNTMzLjggMy4yek00MDAgMTA4YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptOTYgMGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LE8xYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci13ZWVrIixpY29uOls0NDgsNTEyLFtdLCJmNzg0IiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDB6Il19LEYxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWNvbXBhcmUiLGljb246WzUxMiw1MTIsW10sImUxM2EiLCJNMTk4LjggMS44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMxODQgMTQ1LjcgMTg0IDEzNmwwLTI0LTI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjE0LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zTDY0IDE0NGMwLTUzIDQzLTk2IDk2LTk2bDI0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6TTM5MiA4MGEyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwIC00OCAwem0tOCA3My4zYy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM0w0NDggMzY4YzAgNTMtNDMgOTYtOTYgOTZsLTI0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMzMjggMzY2LjMgMzI4IDM3NmwwIDI0IDI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMTQuN3pNNzIgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6Il19LEIxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZW8iLGljb246WzUxMiw1MTIsW10sImU4NGEiLCJNMjYwIDBjNzIuOSAwIDEzMiA1OS4xIDEzMiAxMzJsMCA1LjQtLjEgMS40LTIzLjggMjcwYy40IDIxLjcgMTguMiAzOS4yIDQwIDM5LjIgMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDBjMCA1Ny40LTQ2LjYgMTA0LTEwNCAxMDRTMzA0IDQ2NS40IDMwNCA0MDhsMC0xLjQgLjEtMS40IDIzLjktMjcwLjYgMC0yLjZjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA0YzAgMy43IC4zIDcuMyAuOCAxMWwyOS43IDE5My40Yy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNGwwIDkuMmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMwIDQyOS45IDAgMzY4IDUwLjEgMjU2IDExMiAyNTZjMTEuNyAwIDIzIDEuOCAzMy43IDUuMUwxMjkuNiAxNTYuN2MtMS4xLTYuOC0xLjYtMTMuOC0xLjYtMjAuN2wwLTRDMTI4IDU5LjEgMTg3LjEgMCAyNjAgMHpNMTEyIDMyMGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6Il19LEgxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NiIsIk0yODcuOSAzMmwtNzYuMiAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS42IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDkuMmMzNS4yLTQwIDg2LjctNjUuMiAxNDQuMi02NS4yIDkgMCAxNy44IC42IDI2LjQgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni41IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0scTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGxldCIsaWNvbjpbNTc2LDUxMixbXSwiZjQ4MiIsIk0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHptOTYgNjRsMTI4IDAgMCA2NC0xMjggMCAwLTY0em0xOTIgMGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6Il19LFFvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWtlLWNhbmRsZXMiLGljb246WzQ0OCw1MTIsWzEyNzg3NCwiYmlydGhkYXktY2FrZSIsImNha2UiXSwiZjFmZCIsIk04Ni40LTEwLjVMNjEuOCAzMS42QzU4IDM4LjEgNTYgNDUuNiA1NiA1My4yTDU2IDU2YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwxMDUuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNXptMTI4IDBMMTg5LjggMzEuNmMtMy44IDYuNS01LjggMTQtNS44IDIxLjZsMCAyLjhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDIzMy42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41ek0zMTcuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMzYxLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjVMMzE3LjggMzEuNnpNMTI4IDE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjVDMjYuNyAyMjYuNiAwIDI2Mi4yIDAgMzA0bDAgMjAuOGMyMC45IDEuMyA0MS42IDcuMyA2MC4zIDE4bDcuMSA0LjFjMjYuMyAxNSA1OC45IDEzLjQgODMuNi00LjIgNDMuNy0zMS4yIDEwMi4zLTMxLjIgMTQ2IDAgMjQuNiAxNy42IDU3LjMgMTkuMyA4My42IDQuMmw3LjEtNC4xYzE4LjctMTAuNyAzOS4zLTE2LjcgNjAuMy0xOGwwLTIwLjhjMC00MS44LTI2LjctNzcuNC02NC05MC41bDAtNTMuNWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTY0IDAgMC00OHpNNDQ4IDM3M2MtMTIuNyAxLjItMjUuMSA1LTM2LjUgMTEuNWwtNy4xIDQuMWMtNDIuNiAyNC4zLTk1LjQgMjEuNy0xMzUuMy02LjgtMjctMTkuMy02My4yLTE5LjMtOTAuMiAwLTM5LjkgMjguNS05Mi43IDMxLjItMTM1LjMgNi44bC03LjEtNC4xQzI1LjEgMzc4IDEyLjcgMzc0LjEgMCAzNzNsMCA3NWMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTc1eiJdfSxqMWE9UW9lLFYxYT1Rb2UsVTFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Zy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTQ5MCIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjQxLjggMTc2IDM0NCAxNzZjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjRzNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDkuNS0uOCAxOC43LTIuNCAyNy44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0zOTguMiA0NjhjLTIzLjIgMjIuMS01MyAzNy4yLTg2LjIgNDIuMmwwLTEyOC40IDg2LjIgODYuMnpNMjY0IDMzMy44bDAgMTc2LjRjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzMuMy0xMy45IDkuMy0yNi43IDE3LjYtMzcuOEwyNjQgMzMzLjh6TTM1NS42IDEyOGwtODIuNCAwLTcyLjMtNzIuM0MyMTYuMSAyMi44IDI0OS40IDAgMjg4IDAgMzQxIDAgMzg0IDQzIDM4NCA5NmwwIDMuNmMwIDE1LjctMTIuNyAyOC40LTI4LjQgMjguNHoiXX0sVzFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAiLGljb246WzUxMiw1MTIsW10sImU1N2IiLCJNNDQ4IDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTQ5LjVjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNMMzg2LjcgNDI5LjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMHptNS41IDIwOEwzNjAgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6TTk2IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEcxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLXByZWRlY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDc3IiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCAzNTJsLTMyMCAwIDAgNjQgMzIwIDAgMC02NHptNjQgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjR6Il19LF9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWZsdXNoZWQiLGljb246WzUxMiw1MTIsWzEyODU2MywiZmx1c2hlZCJdLCJmNTc5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE2OCAzOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTI4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptLTgtOTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6bTI2NC03MmE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6bS0yODggMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xOTIgMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxLMWE9X2tlLFkxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLW5leHQiLGljb246WzQ0OCw1MTIsW10sImU0NzYiLCJNMzg0IDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMjggMCAwIDY0LTMyIDBjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGw2NCA2NGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw2NC02NGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzI5NC41IDI4OCAyODggMjg4bC0zMiAwIDAtNjQgMTI4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zNCAwYzUuNiAyMS43LS41IDQ1LjEtMTYuNyA2MS4zbC02NCA2NGMtMjUgMjUtNjUuNSAyNS05MC41IDBsLTY0LTY0Qzk4LjYgMzMzLjEgOTIuNCAzMDkuNyA5OCAyODhsLTM0IDB6Il19LFoxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNGFjIiwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjA4IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFgxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTQzIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTIyLjYtMTQ0bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkw1MTguNiA0MDB6Il19LFExYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGEiLGljb246WzU3Niw1MTIsW10sImY1YmIiLCJNMTY5LjcgMjI3LjVjMzQuMyAxOC43IDY0LjUgNDQuMSA4OC44IDc0LjUgMTEuMSAxMy45IDIxIDI4LjkgMjkuNCA0NC44IDguNS0xNS45IDE4LjMtMzAuOCAyOS40LTQ0LjggMjQuMy0zMC41IDU0LjUtNTUuOSA4OC44LTc0LjUgNDEuNy0yMi43IDg5LjQtMzUuNSAxMzkuNy0zNS41bDkuOSAwYzExLjEgMCAyMC4xIDkgMjAuMSAyMC4xIDAgMTQ4LTExOS45IDI2Ny45LTI2Ny45IDI2Ny45bC00MC4yIDBDMTE5LjkgNDgwIDAgMzYwLjEgMCAyMTIuMSAwIDIwMSA5IDE5MiAyMC4xIDE5Mmw5LjkgMGM1MC40IDAgOTguMSAxMi44IDEzOS43IDM1LjV6TTMwMy45IDM4YzE2LjkgMTUuOSA2MS40IDYzLjQgODkgMTQyLjMtNDAuMSAyMC4yLTc1LjggNDguMi0xMDQuOSA4Mi4xLTI5LjItMzMuOS02NC44LTYxLjgtMTA0LjktODIuMSAyNy42LTc4LjkgNzIuMi0xMjYuNCA4OS0xNDIuMyA0LjMtNC4xIDEwLTYgMTUuOS02czExLjYgMiAxNS45IDZ6Il19LEoxYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcmllcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg0NiIsIk00MDEuNiAwYzYxLjMgMCAxMTAuNCA1MC4zIDExMC40IDExMSAwIDI5LjQtMTEuNiA1Ny45LTMyLjYgNzguOGwtOC44IDguOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4yIDBzLTEyLjUtMzIuOCAwLTQ1LjJsOC44LTguOGM4LjgtOC44IDEzLjgtMjEgMTMuOC0zMy42IDAtMjUuOS0yMS4xLTQ3LTQ2LjQtNDctMjIuNSAwLTQxLjcgMTYuMS00NS43IDM4LjJMMjg3LjUgNDg1LjZjMCAuMS0uMSAuMy0uMSAuNC0uMiAuOC0uMyAxLjYtLjUgMi4zLS4xIC4zLS4xIC41LS4yIC43LS4yIC42LS40IDEuMy0uNyAxLjktLjIgLjUtLjQgMS0uNiAxLjUtLjEgLjMtLjMgLjYtLjQgLjktMS42IDMuNS0zLjggNi41LTYuNCA5LjItMiAyLTQuMiAzLjctNi42IDUuMS0uMiAuMS0uMyAuMi0uNSAuMy0uNyAuNC0xLjQgLjctMi4xIDEtLjMgLjEtLjYgLjMtLjkgLjQtLjUgLjItMSAuNC0xLjUgLjYtLjYgLjItMS4yIC41LTEuOSAuNy0uMiAuMS0uNSAuMi0uNyAuMi0uOCAuMi0xLjYgLjQtMi4zIC41LS4yIDAtLjMgLjEtLjQgLjEtLjIgMC0uNCAwLS42IC4xLS43IC4xLTEuMyAuMi0yIC4yLS40IDAtLjggLjEtMS4yIC4xLS42IDAtMS4yIC4xLTEuOCAuMS0uNiAwLTEuMiAwLTEuOC0uMS0uNCAwLS44LS4xLTEuMi0uMS0uNy0uMS0xLjQtLjEtMi0uMi0uMiAwLS40IDAtLjYtLjEtLjIgMC0uMy0uMS0uNS0uMS0uOC0uMi0xLjYtLjMtMi4zLS41LS4zLS4xLS41LS4xLS44LS4yLS42LS4yLTEuMy0uNC0xLjktLjctLjUtLjItMS0uNC0xLjUtLjYtLjMtLjEtLjYtLjMtLjktLjQtLjctLjMtMS40LS43LTIuMS0xLS4yLS4xLS4zLS4yLS41LS4zLTIuNC0xLjQtNC43LTMuMS02LjYtNS4xLTIuNi0yLjYtNC44LTUuNy02LjQtOS4yLS4xLS4yLS4yLS4zLS4yLS41bC0uNS0xLjFjLS4xLS4zLS4yLS41LS4zLS44LS4yLS42LS41LTEuMi0uNy0xLjktLjEtLjItLjItLjUtLjItLjctLjItLjgtLjQtMS42LS41LTIuMyAwLS4xLS4xLS4zLS4xLS40TDE1NiAxMDIuMmMtNC0yMi4xLTIzLjItMzguMi00NS43LTM4LjItMjUuMyAwLTQ2LjQgMjEuMS00Ni40IDQ3IDAgMTIuNiA1IDI0LjggMTMuOCAzMy42bDguOCA4LjhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjJzLTMyLjggMTIuNS00NS4yIDBsLTguOC04LjhDMTEuNiAxNjguOSAwIDE0MC4zIDAgMTExIDAgNTAuMyA0OS4xIDAgMTEwLjQgMCAxNjMuOCAwIDIwOS42IDM4LjMgMjE5IDkxbDM3IDIwNyAzNy0yMDdjOS40LTUyLjYgNTUuMi05MSAxMDguNy05MXoiXX0sTWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtcHJvZ3Jlc3MiLGljb246WzQ0OCw1MTIsWyJ0YXNrcy1hbHQiXSwiZjgyOCIsIk0yODggMTYwbDk2IDAgMC02NC05NiAwIDAgNjR6TTAgMTYwTDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAyMjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6TTE2MCA0MTZsMjI0IDAgMC02NC0yMjQgMCAwIDY0ek0wIDQxNmwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2eiJdfSxlMmE9TWtlLHQyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0ZmQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0semtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXJpZ2h0IixpY29uOls2NDAsNTEyLFs5ODk3LCJtYXJzLXN0cm9rZS1oIl0sImYyMmIiLCJNMzIwLjUgMjU2YTExMiAxMTIgMCAxIDAgLTIyNCAwIDExMiAxMTIgMCAxIDAgMjI0IDB6TTIwOC41IDgwYzg2LjMgMCAxNTguMSA2Mi4xIDE3My4xIDE0NC4xIDEtLjEgMS45LS4xIDIuOS0uMWwxNiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDYxLjQgMC0yMi40LTI4Yy0xMS0xMy44LTguOC0zMy45IDUtNDVzMzMuOS04LjggNDUgNWw2NCA4MGM5LjMgMTEuNyA5LjMgMjguMyAwIDQwbC02NCA4MGMtMTEgMTMuOC0zMS4yIDE2LTQ1IDVzLTE2LTMxLjItNS00NWwyMi40LTI4LTYxLjQgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTYgMGMtMSAwLTEuOSAwLTIuOS0uMS0xNSA4Mi04Ni44IDE0NC4xLTE3My4xIDE0NC4xLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzZ6Il19LGEyYT16a2UsczJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLW9ic2VydmF0aW9uIixpY29uOls0NDgsNTEyLFtdLCJlNTg2IiwiTTIwOS43IDMuNGM5LTQuNSAxOS42LTQuNSAyOC42IDBsMTYwIDgwYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNS42IDExLjItMTYuOSAxNy43LTI4LjYgMTcuN2wwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMyAwIDMyIDE5MiA0NSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NSAwIDMyLTE5Mi0xMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYy0xMS43IDAtMjMtNi41LTI4LjYtMTcuNy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45bDE2MC04MHpNMzEwLjcgNDQ4bC04Ni43LTYxLjktODYuNyA2MS45IDE3My40IDB6bS0xNTMtMTkybC0zLjUgMjEuMiA2OS45IDQ5LjkgNjkuOS00OS45LTMuNS0yMS4yLTEzMi43IDB6bS0xMi4zIDczLjlsLTEwLjEgNjAuNiA0Ny41LTMzLjktMzcuNC0yNi43em0xMTkuOSAyNi43bDQ3LjUgMzMuOS0xMC4xLTYwLjYtMzcuNCAyNi43ek0xNTIgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sSm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0ZXJsaW5nLXNpZ24iLGljb246WzM4NCw1MTIsWzE2MywiZ2JwIiwicG91bmQtc2lnbiJdLCJmMTU0IiwiTTkxLjMgMjg4bC0zNC44IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjEuNCAwQzM3LjMgMTQ3LjMgMTA1LjEgNDIgMjA3LjYgNDJsOC4yIDBjMzMuNiAwIDY2LjIgMTEuMyA5Mi41IDMyLjJsMTYuMSAxMi43YzEzLjkgMTEgMTYuMiAzMS4xIDUuMiA0NXMtMzEuMSAxNi4yLTQ1IDUuMmwtMTYuMS0xMi43Yy0xNS0xMS45LTMzLjYtMTguNC01Mi44LTE4LjRsLTguMiAwYy01Ny4zIDAtOTQuNyA1OS45LTY5LjcgMTExLjQgMy42IDcuNCA2LjYgMTQuOSA5LjEgMjIuNmwxNDkuNSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDEuMiAwYzEgMzUuMy04LjcgNzAuNi0yOC45IDEwMC45bC0xOC4xIDI3LjEgMjEyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjcyIDBjLTExLjggMC0yMi42LTYuNS0yOC4yLTE2LjlzLTUtMjMgMS42LTMyLjlsNTEuMi03Ni44YzEzLjEtMTkuNiAxOS4yLTQyLjYgMTguMi02NS40eiJdfSxpMmE9Sm9lLHIyYT1Kb2UsbzJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldC1kcmlwIixpY29uOls1MTIsNTEyLFsxMjg2ODhdLCJlMDA2IiwiTTIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsOTYgMCAwIDY0LTE4LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAwLjEgMGMyMC4yIDI5IDUzLjkgNDggOTEuOSA0OHM3MS43LTE5IDkxLjktNDhsMzYuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MGwtMzIgMC0yMi42LTIyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNGwtMTguNyAwIDAtNjQgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDM2LjggNDU1LjRsLTE4LjIgNDIuNGMtMS44IDQuMS0yLjcgOC42LTIuNyAxMy4xbDAgMS4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xLjJjMC00LjUtLjktOC45LTIuNy0xMy4xbC0xOC4yLTQyLjRjLTEuOS00LjUtNi4zLTcuNC0xMS4yLTcuNHMtOS4yIDIuOS0xMS4yIDcuNHoiXX0sdmY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWluZm8iLGljb246WzUxMiw1MTIsWyJpbmZvLWNpcmNsZSJdLCJmMDVhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTYwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS04IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4OCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTY0LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LG4yYT12ZixsMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlciIsaWNvbjpbNTEyLDUxMixbMTI5NzE4XSwiZjUyZCIsIk0zNTIgMGM0MSAwIDgwLjMgMTYuMyAxMDkuMiA0NS4ybDUuNSA1LjVjMjkgMjkgNDUuMyA2OC4zIDQ1LjMgMTA5LjIgMCAyNC4xLTUuNyA0Ny42LTE2LjIgNjguOC0xLjkgMy43LTUuMyA2LjUtOS4zIDcuN0wzNzQuNSAyNzBjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMmwzMi4yIDBjMTQuMyAwIDIxLjQgMTcuMiAxMS4zIDI3LjNsLTIyLjQgMjIuNGMtMS45IDEuOS00LjIgMy4yLTYuNyA0bC04MSAyNC4zYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjIgMTMuMiAwIDE4LjkgMTUuNyA3LjggMjIuOS00MS4xIDI2LjYtODkuMyA0MS4xLTEzOSA0MS4xbC04NiAwLTQ4IDQ4Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJMMjU2IDIyNGM4LjgtOC44IDguOC0yMy4yIDAtMzJzLTIzLjItOC44LTMyIDBMNzkuNSAzMzYuNWMtNS43IDUuNy0xNS41IDEuNy0xNS41LTYuNCAwLTY3LjkgMjctMTMzIDc1LTE4MUwyNDIuOCA0NS4yQzI3MS43IDE2LjMgMzExIDAgMzUyIDB6Il19LGMyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsLXJpY2UiLGljb246WzUxMiw1MTIsW10sImUyZWIiLCJNMTc2IDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNjBsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6TTIyNCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xMDQgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMjE2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yOTYgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0zOTIgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDE2bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LENrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLWhhbGYtc3Ryb2tlIixpY29uOls1NzYsNTEyLFsic3Rhci1oYWxmLWFsdCJdLCJmNWMwIiwiTTI4OC4xIDM1My42YzEwIDAgMTkuOSAyLjMgMjkgN2w3NC40IDM3LjktMTMtODIuNWMtMy4yLTIwLjIgMy41LTQwLjcgMTcuOS01NS4ybDU5LTU5LjEtODIuNS0xMy4xYy0yMC4yLTMuMi0zNy43LTE1LjktNDctMzQuMWwtMzgtNzQuNCAwIDI3My42ek00NTcuNCA0ODljLTcuMyA1LjMtMTcgNi4xLTI1IDJMMjg4LjEgNDE3LjYgMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNsMTU5LjktMjUuNCA3My42LTE0NC4yYzQuMS04IDEyLjQtMTMuMSAyMS40LTEzLjFzMTcuMyA1LjEgMjEuNCAxMy4xTDM4MyAxMjUuMyA1NDIuOSAxNTAuN2M4LjkgMS40IDE2LjMgNy43IDE5LjEgMTYuM3MuNSAxOC01LjggMjQuNEw0NDEuNyAzMDUuOSA0NjcgNDY1LjhjMS40IDguOS0yLjMgMTcuOS05LjYgMjMuMnoiXX0sZDJhPUNrZSxUa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbInRlbXBlcmF0dXJlLWRvd24iXSwiZTAzZiIsIk02NC41IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NHMtMTQ0LTY0LjUtMTQ0LTE0NGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NC41IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDM5LjEgMzEwLjZjLTYgNi0xNC4xIDkuNC0yMi42IDkuNHMtMTYuNi0zLjQtMjIuNi05LjRsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0xNzguN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC02NCA2NHoiXX0sdTJhPVRrZSxwMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzay12ZW50aWxhdG9yIixpY29uOls2NDAsNTEyLFtdLCJlNTI0IiwiTTE1Mi4yIDE5MmMtMTUuNCAzOC4zLTI0LjIgNzcuMi0yNC4yIDEwOC44IDAgMTMuMyAxLjUgMjYuMiA0LjQgMzguN2wtMTctMy40Yy0yOS45LTYtNTEuNC0zMi4yLTUxLjQtNjIuOGwwLTgxLjMgODguMiAwem0zMi45LTY0TDY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MS4zYzAgNjEgNDMuMSAxMTMuNSAxMDIuOSAxMjUuNWw2Ni4zIDEzLjNjMTguNyAyMi4xIDQyLjkgNDAgNzAuOCA1MS44bDAtODcuOGMtMTAuMS0xNC4yLTE2LTMxLjMtMTYtNDkuNyAwLTQ5LjUgNDMtMTM0LjQgOTYtMTM0LjQgNTIuNSAwIDk2IDg0LjkgOTYgMTM0LjQgMCAxOC40LTUuOSAzNS40LTE2IDQ5LjZsMCA4Ny43YzI3LjYtMTEuOCA1MS43LTI5LjYgNzAuNC01MS42bDY2LjctMTMuM2M1OS44LTEyIDEwMi45LTY0LjUgMTAyLjktMTI1LjVsMC04MS4zYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMjEuNSAwYy0zNC44LTU0LjItODIuNS05Ni0xMzQuNS05Ni01Mi42IDAtMTAwLjIgNDEuOC0xMzQuOSA5NnptMzAyLjUgNjRsODguNCAwIDAgODEuM2MwIDMwLjUtMjEuNSA1Ni44LTUxLjQgNjIuOGwtMTcgMy40YzIuOS0xMi40IDQuNS0yNS40IDQuNS0zOC43IDAtMzEuNi04LjktNzAuNS0yNC40LTEwOC44ek0yODggMzIwbDAgMTkyIDY0IDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LGgyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXZpZGVvIixpY29uOlszODQsNTEyLFtdLCJmMWM4IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04MCAzMDRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGYyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10cmVuZC1kb3duIixpY29uOls1NzYsNTEyLFtdLCJlMDk3IiwiTTM4NCAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4Mi43LTE2OS40LTE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMEwxOTIgMjQyLjcgNTQuNiAxMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMEwzMjAgMjA1LjMgNDY2LjcgMzUyIDM4NCAzNTJ6Il19LG0yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtY2FuIixpY29uOls2NDAsNTEyLFtdLCJmNjEzIiwiTTMyMCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMi0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC44YzAgMTkgMTEuMiAzNi4yIDI4LjUgNDMuOWw2Ny41IDMwIDAgMjEuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNTkuMSAwYzE4LjQgMCAzNS44LTcuOSA0OC0yMS43TDYzMy41IDE4Ny43YzEyLjMtMTMuOS0uMy0zNS40LTE4LjQtMzEuNUw0NDggMTkyIDM5Ny41IDE2Ni44Yy04LjktNC40LTE4LjctNi44LTI4LjYtNi44bC04MC45IDAgMC0zMiAzMiAwek05NiAyMDhsMCA4Ni4xLTQ4LTIxLjMgMC02NC44IDQ4IDB6Il19LCRrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtY2FycnktYm94IixpY29uOls1NzYsNTEyLFsicGVvcGxlLWNhcnJ5Il0sImY0Y2UiLCJNNjQtMzJBNTYgNTYgMCAxIDEgNjQgODAgNTYgNTYgMCAxIDEgNjQtMzJ6TTAgMTcxLjFjMC0zMi42IDI2LjUtNTkuMSA1OS4xLTU5LjEgMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzUuOCA4LjIgMTUuMSAxMy4xIDI1LjEgMTMuNGwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMTAtLjMgMTkuMy01LjIgMjUuMS0xMy40bDQ4LjctNjguMmMxMy42LTE5LjEgMzUuNi0zMC40IDU5LjEtMzAuNCAzMi42IDAgNTkuMSAyNi41IDU5LjEgNTkuMUw1NzYgMjcyYzAgMzAuMi0xNC4yIDU4LjctMzguNCA3Ni44bC03Ni44IDU3LjZjLTguMSA2LTEyLjggMTUuNS0xMi44IDI1LjZsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMzAuMiAxNC4yLTU4LjcgMzguNC03Ni44bDQxLjYtMzEuMiAwLTgwLjEtMi44IDMuOWMtMTggMjUuMi00Ny4xIDQwLjItNzguMSA0MC4yTDM1MiAyODhjLS42IDAtMS4zIDAtMS45LS4xLS42IDAtMS4zIC4xLTEuOSAuMWwtMTIwLjQgMGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0zMS4xIDBjLTMxIDAtNjAuMS0xNS03OC4xLTQwLjJsLTIuOC0zLjkgMCA4MC4xIDQxLjYgMzEuMkMxNzcuOCAzNzMuMyAxOTIgNDAxLjggMTkyIDQzMmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNkwzOC40IDM0OC44QzE0LjIgMzMwLjcgMCAzMDIuMiAwIDI3MkwwIDE3MS4xek0wIDM3OS4zYzMuMSAyLjcgNi4zIDUuNCA5LjYgNy45TDY0IDQyOCA2NCA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA1MjkuNyAwIDUxMkwwIDM3OS4zek01NjggMjRhNTYgNTYgMCAxIDEgLTExMiAwIDU2IDU2IDAgMSAxIDExMiAwem04IDQ4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTg0IDU0LjQtNDAuOGMzLjMtMi41IDYuNS01LjEgOS42LTcuOUw1NzYgNTEyeiJdfSxnMmE9JGtlLGIyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFpciIsaWNvbjpbNDQ4LDUxMixbMTI5NjgxXSwiZjZjMCIsIk0xNTIgMjU2bDAtMTgxLjhjLTI0LjUgMjAuNS00MCA1MS40LTQwIDg1LjhsMCA5NiA0MCAwem00OCAwbDQ4IDAgMC0yMDUuNGMtNy43LTEuNy0xNS44LTIuNi0yNC0yLjZzLTE2LjMgLjktMjQgMi42TDIwMCAyNTZ6TTI5NiA3NC4ybDAgMTgxLjggNDAgMCAwLTk2YzAtMzQuNC0xNS41LTY1LjItNDAtODUuOHpNMzIgMjU2bDMyIDAgMC05NkM2NCA3MS42IDEzNS42IDAgMjI0IDBTMzg0IDcxLjYgMzg0IDE2MGwwIDk2IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMjU2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSx2MmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZCIsaWNvbjpbNTEyLDUxMixbXSwiZjcyZSIsIk0yODggMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwzMiAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzI4IDBjNDguNiAwIDg4LTM5LjQgODgtODhTNDA4LjYgMCAzNjAgMEwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTY0IDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2TDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTEyOCA1MTJsNDAgMGM0OC42IDAgODgtMzkuNCA4OC04OHMtMzkuNC04OC04OC04OEwzMiAzMzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LHgyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXllci1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZjVmZCIsIk0yMzIuNSA1LjJjMTQuOS02LjkgMzIuMS02LjkgNDcgMGwyMTguNiAxMDFjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEwxMy45IDE0OS44QzUuNCAxNDUuOCAwIDEzNy4zIDAgMTI4czUuNC0xNy45IDEzLjktMjEuOEwyMzIuNSA1LjJ6TTQ4LjEgMjE4LjRsMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMjc3LjhDNS40IDI3My44IDAgMjY1LjMgMCAyNTZzNS40LTE3LjkgMTMuOS0yMS44bDM0LjEtMTUuOHpNMTMuOSAzNjIuMmwzNC4xLTE1LjggMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgNDA1LjhDNS40IDQwMS44IDAgMzkzLjMgMCAzODRzNS40LTE3LjkgMTMuOS0yMS44eiJdfSx5MmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLW1hc2siLGljb246WzUxMiw1MTIsW10sImUwNjMiLCJNNDQ1LjkgMTkzYy0uMS0uNC0uMi0uOS0uMi0xLjMtMTUuNy0xMDguNC0xMDguOS0xOTEuNy0yMjEuNy0xOTEuNy04NSAwLTE1OSA0Ny40LTE5Ni45IDExNy4yTDI4My4zIDI4OCA0NTYgMjg4IDQ0Mi45IDMzNiAzMzYgMzM2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDk4LjIgMC04LjcgMzItODkuNSAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDgwLjYgMGMtNi43IDE5LjEtMjQuOCAzMi00NS4zIDMyTDI4OCA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTA0LjUtMjQ3LjUtMTY1QzMgMTgyLjEgMCAyMDIuNyAwIDIyNCAwIDI3OCAxOS4xIDMyNy41IDUwLjkgMzY2LjIgNTguOSAzNzUuOSA2NCAzODcuOCA2NCA0MDAuNEw2NCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTI3LjMgMCAuNyAwIDEzMS4zIDBjNDQuOSAwIDgzLjgtMzEuMSA5My42LTc0LjlsMzMuOS0xNTAuM2MzLjMtMTQuNC0uMy0yOS41LTkuNy00MUw0NDUuOSAxOTN6TTI4OCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sZW5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzIixpY29uOls1MTIsNTEyLFsic2lnbi1sYW5ndWFnZSIsInNpZ25pbmciXSwiZjJhNyIsIk01MTIgMTYwbC0uMSA3Mi42YzAgNDQuOC0xNy42IDg3LjEtNDcuOSAxMTguNC0uMy03Ny00MC4xLTE0OC40LTEwNS40LTE4OS4zbC0xLjktMS4yYzIuNS0zLjcgMi44LTguNiAuNC0xMi43bC02Mi0xMDcuNGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhTMzMwIDUgMzM2LjYgMTYuNWw2OCAxMTcuOCAwIDAgMCAwIDQzLjMgNzUgLjEtNDkuM2MwLTE3LjcgMTQuNC0zMiAzMi0zMnMzMiAxNC40IDMyIDMyek0yOTguNCAxMjQuMmMtMTQuMS04LjgtMjkuOC0xMi43LTQ1LjItMTIuMUwyMTYuNyA0OC44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOGw2Ny4xIDExNi4yLTI3LTE2Ljl6TTIxMS45IDg4LjVsMTYuNCAyOC40Yy0xNS4xIDUuNS0yOC42IDE1LjYtMzguMyAyOS43bC0xOS43LTM0LjJjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44em0tNDYuNCA2My43bDEyLjUgMjEuN2MtMiA4LjYtMi41IDE3LjUtMS43IDI2LjFsLTQuMyAwIDAgMC0zNC40IDAtMTMuNy0yMy44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHpNMjI4LjkgMTc1YzkuNC0xNSAyOS4xLTE5LjUgNDQuMS0xMC4ybDYwLjIgMzcuNkMzODQuNyAyMzQuNyA0MTYgMjkxLjIgNDE2IDM1MmwwIDhjMCA4My45LTY4LjEgMTUyLTE1MiAxNTJMODggNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDkyIDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMNTYgNDQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEyNCAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDI0IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNTYgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw1NiAyOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTM2IDAgMCAwIDAgMCA5My4yIDAtNDYuMi0yOC45Yy0xNS05LjQtMTkuNS0yOS4xLTEwLjItNDQuMXoiXX0sdzJhPWVuZSxrMmE9ZW5lLFMyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXRzIixpY29uOls1MTIsNTEyLFtdLCJmNDkwIiwiTTQ5NS4zIDc2LjZjLTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgMjQ4Yy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNHpNMjQwLjcgMjExLjRjNC42IDguNyAxNi4zIDkuNyAyMy4zIDIuN0w0MzguMSA0MGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMTQ0IDIyNEM3OS4yIDIyNCAyNC40IDI2Ni44IDYuMyAzMjUuNiAzLjQgMzM1LjEgMTEgMzQ0IDIwLjkgMzQ0bDI0Ni4yIDBjOS45IDAgMTcuNS04LjkgMTQuNi0xOC40LS45LTMtMS45LTUuOS0zLTguNy0zNy40LTE4LjEtNjgtNDgtODctODQuOC0xNC45LTUuMi0zMC45LTguMS00Ny42LTguMXpNMjgxLjcgNDEwLjRjMi45LTkuNS00LjctMTguNC0xNC42LTE4LjRMMjAuOSAzOTJDMTEgMzkyIDMuNCA0MDAuOSA2LjMgNDEwLjQgMjQuNCA0NjkuMiA3OS4yIDUxMiAxNDQgNTEyczExOS42LTQyLjggMTM3LjctMTAxLjZ6Il19LF8yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtaGFuZ2luZyIsaWNvbjpbNTEyLDUxMixbXSwiZjVjZCIsIk0yMjQgOTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTIyLjUgMzJjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDExLjIgMS45IDIyIDUuNSAzMmwtMjEuOCAwYy0yOC4zIDAtNTMuMiAxOC41LTYxLjMgNDUuNkwyLjQgNDQwLjJDLjggNDQ1LjQgMCA0NTAuOCAwIDQ1Ni4yIDAgNDg3IDI1IDUxMiA1NS44IDUxMmw0MDAuNCAwYzMwLjggMCA1NS44LTI1IDU1LjgtNTUuOCAwLTUuNC0uOC0xMC44LTIuNC0xNmwtODAtMjY2LjVjLTguMS0yNy4xLTMzLTQ1LjYtNjEuMy00NS42bC0yMS44IDB6Il19LE0yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlIixpY29uOls1MTIsNTEyLFsxMjc5MjJdLCJmNTIyIiwiTTE0MS40IDIuM0MxMDMtOCA2My41IDE0LjggNTMuMyA1My4yTDIuNSAyNDIuN0MtNy44IDI4MS4xIDE1IDMyMC42IDUzLjQgMzMwLjlsMTg5LjUgNTAuOGMzOC40IDEwLjMgNzcuOS0xMi41IDg4LjItNTAuOWw1MC44LTE4OS41YzEwLjMtMzguNC0xMi41LTc3LjktNTAuOS04OC4yTDE0MS40IDIuM3ptMjMgMjA1LjdhMzIgMzIgMCAxIDEgNTUuNC0zMiAzMiAzMiAwIDEgMSAtNTUuNCAzMnpNNzkuMiAyMjAuM2EzMiAzMiAwIDEgMSAzMiA1NS40IDMyIDMyIDAgMSAxIC0zMi01NS40em0xODUgOTYuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40em05LTIwOC40YTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bS0xMjEgMTQuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40ek00MTggMTkyTDM3Ny40IDM0My4yYy0xNy4yIDY0LTgzIDEwMi0xNDcgODQuOWwtMzguMy0xMC4zIDAgMzAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw0MTggMTkyeiJdfSxEa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvcC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInN0b3JlLWFsdC1zbGFzaCJdLCJlMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtMTkwLjNjMjYuOC0xLjkgNDgtMjQuMyA0OC01MS42IDAtOC0xLjktMTYtNS41LTIzLjJMNDk3LjcgNjcuNEM0ODYuOCA0NS43IDQ2NC43IDMyIDQ0MC40IDMyTDEzNS42IDMyYy0xMC43IDAtMjEgMi43LTMwLjIgNy42TDQxLTI0Ljl6TTMyMS44IDI1Nkw0NDggMjU2IDQ0OCAzODIuMiAzMjEuOCAyNTZ6TTM1MiA0MjEuOGwtNjQtNjQgMCAxMC4yYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTExMiA1OC4yIDAtMTM0LjgtMTM0LjgtMjkuOSA1OS45Yy0zLjYgNy4yLTUuNSAxNS4xLTUuNSAyMy4yIDAgMjcuMyAyMS4yIDQ5LjcgNDggNTEuNkw2NCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMC4yeiJdfSx6MmE9RGtlLExrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb3J0LWRvd24iLGljb246WzM4NCw1MTIsWyJzb3J0LWRlc2MiXSwiZjBkZCIsIk0zMiAyODhjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjIgMzMzLjUgOS40IDM0Mi42bDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzNjQuOSAyODggMzUyIDI4OEwzMiAyODh6Il19LEMyYT1Ma2UsVDJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlc2V0YS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMjIxIiwiTTExMiAzMkM5NC4zIDMyIDgwIDQ2LjMgODAgNjRsMCAxMDQtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiA5NiAwYzgwLjIgMCAxNDYuNi01OSAxNTguMi0xMzZsMjUuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNS44IDBDMzg2LjYgOTEgMzIwLjIgMzIgMjQwIDMyTDExMiAzMnpNMzMzIDE2OGwtMTg5IDAgMC03MiA5NiAwYzQ0LjcgMCA4Mi4zIDMwLjYgOTMgNzJ6TTE0NCAyMTZsMTg5IDBjLTEwLjcgNDEuNC00OC4yIDcyLTkzIDcybC05NiAwIDAtNzJ6Il19LEVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQtc2NyZWVuLWJ1dHRvbiIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbHQiXSwiZjNmYSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTI1NiA0MzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDY0bC0zMjAgMCAwIDI4OCAzMjAgMCAwLTI4OHoiXX0sJDJhPUVrZSxQa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbImhhbmQtaG9sZGluZy11c2QiXSwiZjRjMCIsIk0yODgtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTItMS44IDBjLTM2LjYgMC02Ni4yIDI5LjctNjYuMiA2Ni4yIDAgMzMuNCAyNC45IDYxLjYgNTggNjUuN2w2MSA3LjZjNS4xIC42IDkgNSA5IDEwLjIgMCA1LjctNC42IDEwLjItMTAuMiAxMC4yTDI0MCAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4czEyLjUgMjggMjggMjhsMjQgMCAwIDEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMiAxLjggMGMzNi42IDAgNjYuMi0yOS43IDY2LjItNjYuMiAwLTMzLjQtMjQuOS02MS42LTU4LTY1LjdsLTYxLTcuNmMtNS4xLS42LTktNS05LTEwLjIgMC01LjcgNC42LTEwLjIgMTAuMi0xMC4yTDMyOCA3NmMxNS41IDAgMjgtMTIuNSAyOC0yOHMtMTIuNS0yOC0yOC0yOGwtMTYgMCAwLTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMDkuMyAzNDEuNUw2Ni43IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjgwIDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sRDJhPVBrZSxJa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkIixpY29uOls1MTIsNTEyLFsxMjg3MzcsInNoaWVsZC1ibGFuayJdLCJmMTMyIiwiTTI1NiAwYzQuNiAwIDkuMiAxIDEzLjQgMi45TDQ1Ny44IDgyLjhjMjIgOS4zIDM4LjQgMzEgMzguMyA1Ny4yLS41IDk5LjItNDEuMyAyODAuNy0yMTMuNiAzNjMuMi0xNi43IDgtMzYuMSA4LTUyLjggMC0xNzIuNC04Mi41LTIxMy4xLTI2NC0yMTMuNi0zNjMuMi0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni45IDEgMjUxLjQgMCAyNTYgMHoiXX0sTDJhPUlrZSxBa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaCIsaWNvbjpbNTEyLDUxMixbImxhdWdoIl0sImY1OTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sRTJhPUFrZSxQMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZyIsaWNvbjpbNjQwLDUxMixbXSwiZjRjMiIsIk04MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCA4MS45IDAgMTA0TDAgMzI1LjVjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlMMTI4IDQ5My4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdsNjYuNyAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNzguOWMwLTI5LjctMTEuOC01OC4yLTMyLjgtNzkuMmwtMjUuMy0yNS4zIDAgMGMtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4yIDExIDExIDkuMiAyOS4yLTMuNyAzNy44LTkuNyA2LjUtMjIuNyA1LjItMzEtMy4xTDk4LjcgMzA5LjVjLTEyLTEyLTE4LjctMjguMy0xOC43LTQ1LjNMODAgMTA0em00ODAgMGwwIDE2MC4yYzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01MS4xIDUxLjFjLTguMyA4LjMtMjEuMyA5LjYtMzEgMy4xLTEyLjktOC42LTE0LjctMjYuOS0zLjctMzcuOCA3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4ybDAgMC0yNS4zIDI1LjNjLTIxIDIxLTMyLjggNDkuNS0zMi44IDc5LjJsMCA3OC45YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY2LjcgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2w5OS45LTk5LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOUw2NDAgMTA0YzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQweiJdfSxOa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1zaG9wcGluZyIsaWNvbjpbNjQwLDUxMixbMTI4NzIyLCJzaG9wcGluZy1jYXJ0Il0sImYwN2EiLCJNMjQtMTZDMTAuNy0xNiAwLTUuMyAwIDhTMTAuNyAzMiAyNCAzMmw0NS4zIDBjMy45IDAgNy4yIDIuOCA3LjkgNi42bDUyLjEgMjg2LjNjNi4yIDM0LjIgMzYgNTkuMSA3MC44IDU5LjFMNDU2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjU1LjkgMGMtMTEuNiAwLTIxLjUtOC4zLTIzLjYtMTkuN2wtNS4xLTI4LjMgMzAzLjYgMGMzMC44IDAgNTcuMi0yMS45IDYyLjktNTIuMkw1NjguOSA2OS45QzU3Mi42IDUwLjIgNTU3LjUgMzIgNTM3LjQgMzJsLTQxMi43IDAtLjQtMmMtNC44LTI2LjYtMjgtNDYtNTUuMS00NkwyNC0xNnpNMjA4IDUxMmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTIyNCAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sSTJhPU5rZSxBMmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2N0YWdvbiIsaWNvbjpbNTEyLDUxMixbMTI4NzIxXSwiZjMwNiIsIk0xODguNiAuMWMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMMTkuMiAxNDNDNy4yIDE1NSAuNSAxNzEuMiAuNSAxODguMmwwIDEzNS42YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zTDE0My40IDQ5My4yYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdsMTM1LjYgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuNiAzNjljMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wwLTEzNS42YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM2OS41IDE4LjhjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMTg4LjYgLjF6Il19LE4yYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYyNWEiLCJNMTI4IDQwYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxNDguMmM4LjUtNy42IDE5LjctMTIuMiAzMi0xMi4yIDIwLjYgMCAzOC4yIDEzIDQ1IDMxLjIgOC44LTkuMyAyMS4yLTE1LjIgMzUtMTUuMiAyNS4zIDAgNDYgMTkuNSA0Ny45IDQ0LjMgOC41LTcuNyAxOS44LTEyLjMgMzIuMS0xMi4zIDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC04NS4zIDBjLTUgMC05LjktLjMtMTQuNy0xLTU1LjMtNS42LTEwNi4yLTM0LTE0MC03OUw4IDMzNmMtMTMuMy0xNy43LTkuNy00Mi43IDgtNTZzNDIuNy05LjcgNTYgOGw1NiA3NC43IDAtMzIyLjd6TTI0MCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnoiXX0sUjJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlZ2lzdGVyZWQiLGljb246WzUxMiw1MTIsWzE3NF0sImYyNWQiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRsODAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MiAwIDI4LjktMTcgNTMuOC00MS42IDY1LjNsMzAuMiA1MC4zYzYuOCAxMS40IDMuMSAyNi4xLTguMiAzMi45cy0yNi4xIDMuMS0zMi45LTguMmwtNDEtNjguMy0zNC40IDAgMCA1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptNzIgOTZsOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAwIDAgNDggNDggMHoiXX0sTzJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLXNpZ25hbCIsaWNvbjpbNTc2LDUxMixbXSwiZTAxMiIsIk01MTUuOSAyNDBsLTE5LjkgMCAwIDE0NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTM3IDBjLTI0LTkxLjctOTMuNS0xNjUtMTgzLTE5NC4zbDAtMTMuNy0xOS45IDBjLTE1LjUgMC0yOC4xLTEyLjYtMjguMS0yOC4xIDAtNy42IDMuMS0xNC45IDguNi0yMC4yTDI3Ni41LTQuOUMyODMuOS0xMiAyOTMuNy0xNiAzMDQtMTZzMjAuMSA0IDI3LjUgMTEuMUw1MzUuNCAxOTEuN2M1LjUgNS4zIDguNiAxMi42IDguNiAyMC4yIDAgMTUuNS0xMi42IDI4LjEtMjguMSAyOC4xek0yODAgMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHpNMjQgMjg4YzEyOC4xIDAgMjMyIDEwMy45IDIzMiAyMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMCA0MDhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LEYyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW5nbGFkZXNoaS10YWthLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUyZTYiLCJNMzYgMzIuM0MxOC40IDMwLjEgMi40IDQyLjUgLjMgNjBTMTAuNSA5My42IDI4IDk1LjhsNy45IDFjMTYgMiAyOCAxNS42IDI4IDMxLjhsMCAzMS41LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDE3NmMwIDUzIDQzIDk2IDk2IDk2bDMyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2bC0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMxLjVDMTI4IDgwLjEgOTIgMzkuMiA0My45IDMzLjJsLTcuOS0xeiJdfSxnV2E9e2ZhMDpYUnQsZmExOlFSdCxmYTI6SlJ0LGZhMzplT3QsZmE0OnRPdCxmYTU6YU90LGZhNjpzT3QsZmE3OmlPdCxmYTg6ck90LGZhOTpvT3QsZmFEb2xsYXJTaWduOmlvZSxmYURvbGxhcjpuT3QsZmFVc2Q6bE90LGZhRG9nOmNPdCxmYVRydWNrTW92aW5nOmRPdCxmYVJvdGF0ZTpDN2UsZmFTeW5jQWx0OnVPdCxmYVNxdWFyZU1pbnVzOlQ3ZSxmYU1pbnVzU3F1YXJlOnBPdCxmYUFsaWduSnVzdGlmeTpoT3QsZmFDYWxlbmRhckNoZWNrOmZPdCxmYUZhY2VLaXNzOiQ3ZSxmYUtpc3M6bU90LGZhS2l0Y2hlblNldDpnT3QsZmFEbmE6Yk90LGZhQ2hpbGRSZWFjaGluZzp2T3QsZmFQYXN0ZTphZixmYUZpbGVDbGlwYm9hcmQ6eE90LGZhTWV0ZW9yOnlPdCxmYUdlYXJzOkQ3ZSxmYUNvZ3M6d090LGZhRmlsZUNpcmNsZVBsdXM6a090LGZhSWNpY2xlczpTT3QsZmFBcnJvd1RyZW5kVXA6X090LGZhSGV4YWdvbk5vZGVzQm9sdDpNT3QsZmFRdWVzdGlvbjp6T3QsZmFIYW5kc0JvdW5kOkNPdCxmYVBlcnNvbldhbGtpbmdMdWdnYWdlOlRPdCxmYUZpbGVBcnJvd0Rvd246TDdlLGZhRmlsZURvd25sb2FkOiRPdCxmYVBlcnNvbkJvb3RoOkRPdCxmYUxvY3VzdDpMT3QsZmFSaWdodExvbmc6RTdlLGZhTG9uZ0Fycm93QWx0UmlnaHQ6RU90LGZhVHJ1Y2tEcm9wbGV0OlBPdCxmYUhhbmRIb2xkaW5nTWVkaWNhbDpJT3QsZmFIYW5kUG9pbnRMZWZ0OkFPdCxmYUNhbGN1bGF0b3I6Tk90LGZhTWludXM6c2YsZmFTdWJ0cmFjdDpST3QsZmFBcnJvd1VwWkE6UDdlLGZhU29ydEFscGhhVXBBbHQ6T090LGZhTWljcm9waG9uZVNsYXNoOkZPdCxmYVNxdWFyZVBlbjpyb2UsZmFQZW5TcXVhcmU6Qk90LGZhUGVuY2lsU3F1YXJlOkhPdCxmYUhhbmRGaXN0Okk3ZSxmYUZpc3RSYWlzZWQ6cU90LGZhQ29tbWVudFNtczpBN2UsZmFTbXM6ak90LGZhU2ltQ2FyZDpWT3QsZmFTY2FsZUJhbGFuY2VkOk43ZSxmYUJhbGFuY2VTY2FsZTpVT3QsZmFDYXI6UjdlLGZhQXV0b21vYmlsZTpXT3QsZmFDcm9wU2ltcGxlOk83ZSxmYUNyb3BBbHQ6R090LGZhTWVkYWw6S090LGZhU2Nyb2xsOllPdCxmYUZpbGVFeGNlbDpaT3QsZmFGaWx0ZXI6WE90LGZhRHJ1bTpRT3QsZmFNYXBQaW46Sk90LGZhU2NhbGVVbmJhbGFuY2VkRmxpcDpGN2UsZmFCYWxhbmNlU2NhbGVSaWdodDplRnQsZmFBcnJvd3NUb0NpcmNsZTp0RnQsZmFFbnZlbG9wZTphRnQsZmFCYWJ5OnNGdCxmYVNxdWFyZUNhcmV0RG93bjpCN2UsZmFDYXJldFNxdWFyZURvd246aUZ0LGZhVGVudDpyRnQsZmFBOm9GdCxmYVBhcmFjaHV0ZUJveDpuRnQsZmFDYXJ0QXJyb3dEb3duOmxGdCxmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uOmNGdCxmYUNsb3VkQXJyb3dVcDpvb2UsZmFDbG91ZFVwbG9hZDpkRnQsZmFDbG91ZFVwbG9hZEFsdDp1RnQsZmFBdDpwRnQsZmFJbmRpYW5SdXBlZVNpZ246bm9lLGZhSW5kaWFuUnVwZWU6aEZ0LGZhSW5yOmZGdCxmYVRydWNrOm1GdCxmYUNoYWxrYm9hcmRVc2VyOkg3ZSxmYUNoYWxrYm9hcmRUZWFjaGVyOmdGdCxmYVVzZXJDaGVjazpiRnQsZmFVc2VyTmluamE6dkZ0LGZhUGxhbnRXaWx0OnhGdCxmYVdlaWdodFNjYWxlOnE3ZSxmYVdlaWdodDp5RnQsZmFDYXJldFJpZ2h0Ok9iLGZhRmxvcmluU2lnbjp3RnQsZmFCZWxsOkZiLGZhTGFyaVNpZ246a0Z0LGZhTWlsbFNpZ246U0Z0LGZhUGVyc29uU25vd2JvYXJkaW5nOmo3ZSxmYVNub3dib2FyZGluZzpfRnQsZmFUdHk6VjdlLGZhVGVsZXR5cGU6TUZ0LGZhVXNlcnNSZWN0YW5nbGU6ekZ0LGZhTW9iaWxlOmxvZSxmYU1vYmlsZUFuZHJvaWQ6Q0Z0LGZhTW9iaWxlUGhvbmU6VEZ0LGZhQXJyb3dzVHVyblRvRG90czokRnQsZmFFeGNsYW1hdGlvbjpERnQsZmFDaHVyY2g6TEZ0LGZhVG9nZ2xlT2ZmOkVGdCxmYVNob2VQcmludHM6UEZ0LGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uOklGdCxmYVdhbGxldDpCYixmYU1lc3NhZ2U6cmYsZmFDb21tZW50QWx0OkFGdCxmYVRyb3BoeTpORnQsZmFGYWNlRGl6enk6VTdlLGZhRGl6enk6UkZ0LGZhQmFjdGVyaWE6T0Z0LGZhRWFyRGVhZjpaayxmYURlYWY6RkZ0LGZhRGVhZm5lc3M6QkZ0LGZhSGFyZE9mSGVhcmluZzpIRnQsZmFQZW9wbGVBcnJvd3M6VzdlLGZhUGVvcGxlQXJyb3dzTGVmdFJpZ2h0OnFGdCxmYUhhbmRzQ2xhcHBpbmc6akZ0LGZhVmlydXNDb3ZpZFNsYXNoOlZGdCxmYUNhbGVuZGFyRGF5czpHN2UsZmFDYWxlbmRhckFsdDpVRnQsZmFEaWFtb25kVHVyblJpZ2h0Oks3ZSxmYURpcmVjdGlvbnM6V0Z0LGZhSGFuZFBvaW50VXA6R0Z0LGZhQmV6aWVyQ3VydmU6S0Z0LGZhUGVyc29uSGFsZkRyZXNzOllGdCxmYVNxdWFyZVBvbGxIb3Jpem9udGFsOlk3ZSxmYVBvbGxIOlpGdCxmYVNjaG9vbENpcmNsZVhtYXJrOlhGdCxmYUhhbmRMaXphcmQ6UUZ0LGZhQ2hhbGtib2FyZDpaN2UsZmFCbGFja2JvYXJkOkpGdCxmYVVwUmlnaHRGcm9tU3F1YXJlOlg3ZSxmYUV4dGVybmFsTGlua0FsdDplQnQsZmFTcXVhcmVGdWxsOnRCdCxmYUNsb3ZlcjphQnQsZmFUZWV0aE9wZW46c0J0LGZhQmFyc1N0YWdnZXJlZDpjb2UsZmFSZW9yZGVyOmlCdCxmYVN0cmVhbTpyQnQsZmFXYXJlaG91c2U6b0J0LGZhU3dhdGNoYm9vazpuQnQsZmFDYW1wZ3JvdW5kOmxCdCxmYVBlcnNvbldhbGtpbmdBcnJvd1JpZ2h0OmNCdCxmYUdsYXNzZXM6ZEJ0LGZhQ2lyY2xlUGF1c2U6UTdlLGZhUGF1c2VDaXJjbGU6dUJ0LGZhTWVtb3J5OnBCdCxmYUdpZnQ6aEJ0LGZhTW9uZXlCaWxsV2hlYXQ6ZkJ0LGZhRHVuZ2VvbjptQnQsZmFTdWl0Y2FzZU1lZGljYWw6SjdlLGZhTWVka2l0OmdCdCxmYVBlcnNvbkNhbmU6YkJ0LGZhR2F1Z2U6WGssZmFEYXNoYm9hcmQ6dkJ0LGZhR2F1Z2VNZWQ6eEJ0LGZhVGFjaG9tZXRlckFsdEF2ZXJhZ2U6eUJ0LGZhRW52ZWxvcGVPcGVuVGV4dDp3QnQsZmFUb29sYm94OmtCdCxmYVBvd2VyT2ZmOlNCdCxmYVNpZ25hbDpkb2UsZmFTaWduYWw1Ol9CdCxmYVNpZ25hbFBlcmZlY3Q6TUJ0LGZhQXJyb3dzU3Bpbjp6QnQsZmFKb2ludDpDQnQsZmFCcmFpbGxlOlRCdCxmYUJhc2tldFNob3BwaW5nOmU5ZSxmYVNob3BwaW5nQmFza2V0OiRCdCxmYUJyaWRnZTpEQnQsZmFQbGFuZUFycml2YWw6TEJ0LGZhQ2FzaFJlZ2lzdGVyOkVCdCxmYVJpbmc6UEJ0LGZhQXF1YXJpdXM6SUJ0LGZhU2hhcmVOb2Rlczp0OWUsZmFTaGFyZUFsdDpBQnQsZmFQZXJzb25DaXJjbGVFeGNsYW1hdGlvbjpOQnQsZmFCaW5vY3VsYXJzOlJCdCxmYUtpcFNpZ246T0J0LGZhSGFyZERyaXZlOmE5ZSxmYUhkZDpGQnQsZmFSYW5raW5nU3RhcjpCQnQsZmFVc2VyVGllOkhCdCxmYUVsbGlwc2lzOnM5ZSxmYUVsbGlwc2lzSDpxQnQsZmFTdG9yZVNsYXNoOmpCdCxmYVBlcmNlbnQ6aTllLGZhUGVyY2VudGFnZTpWQnQsZmFGaWxlWmlwcGVyOnI5ZSxmYUZpbGVBcmNoaXZlOlVCdCxmYURpc3BsYXk6V0J0LGZhSWNvbnM6bzllLGZhSGVhcnRNdXNpY0NhbWVyYUJvbHQ6R0J0LGZhUnVsZXJWZXJ0aWNhbDpLQnQsZmFNYXBMb2NhdGlvbkRvdDpuOWUsZmFNYXBNYXJrZWRBbHQ6WUJ0LGZhSGVhcnRDcmFjazpsOWUsZmFIZWFydEJyb2tlbjpaQnQsZmFDb3c6WEJ0LGZhUnNzOm9mLGZhRmVlZDpRQnQsZmFNYWduaWZ5aW5nR2xhc3M6bmYsZmFTZWFyY2g6SkJ0LGZhQ2xvdWRNb29uOmVIdCxmYUJveGVzU3RhY2tlZDp1b2UsZmFCb3hlczp0SHQsZmFCb3hlc0FsdDphSHQsZmFDb2RlQnJhbmNoOnNIdCxmYUJhbjpjOWUsZmFDYW5jZWw6aUh0LGZhSnVnRGV0ZXJnZW50OnJIdCxmYVJlcGx5OmQ5ZSxmYU1haWxSZXBseTpvSHQsZmFTdW5QbGFudFdpbHQ6bkh0LGZhQmFjdGVyaXVtOmxIdCxmYVJlY29yZFZpbnlsOmNIdCxmYUZsb3BweURpc2s6dTllLGZhU2F2ZTpkSHQsZmFUb2lsZXRzUG9ydGFibGU6dUh0LGZhTzpwSHQsZmFQYWxldHRlOmhIdCxmYVVubG9jazpmSHQsZmFFYXJMaXN0ZW46cDllLGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtczptSHQsZmFDb2RlUHVsbFJlcXVlc3Q6Z0h0LGZhS2V5OmJIdCxmYVNrdWxsOnZIdCxmYU1hcnNTdHJva2VVcDpoOWUsZmFNYXJzU3Ryb2tlVjp4SHQsZmFGaXJlRmxhbWVTaW1wbGU6ZjllLGZhQnVybjp5SHQsZmFUcmVlOndIdCxmYVNtb2c6a0h0LGZhUzpTSHQsZmFKZWRpOl9IdCxmYVBlcnNvbkhpa2luZzptOWUsZmFIaWtpbmc6TUh0LGZhQXJyb3dzVXBUb0xpbmU6ekh0LGZhTWFyc0RvdWJsZTpDSHQsZmFUaGVybW9tZXRlcjpUSHQsZmFQYWludGJydXNoOmc5ZSxmYVBhaW50QnJ1c2g6JEh0LGZhTmV1dGVyOkRIdCxmYVNxdWFyZVBob25lRmxpcDpiOWUsZmFQaG9uZVNxdWFyZUFsdDpMSHQsZmFGYWNlR3JpblRvbmd1ZVNxdWludDp2OWUsZmFHcmluVG9uZ3VlU3F1aW50OkVIdCxmYUNvbW1lbnREb2xsYXI6UEh0LGZhSGlwcG86SUh0LGZhQm93bEZvb2Q6QUh0LGZhU3F1YXJlVmlydXM6Tkh0LGZhQ2xvdWRTdW5SYWluOlJIdCxmYUFycm93UmlnaHRMb25nOng5ZSxmYUxvbmdBcnJvd1JpZ2h0Ok9IdCxmYUJ1aWxkaW5nVW46Rkh0LGZhVGVtcGVyYXR1cmVMb3c6Qkh0LGZhRG9vck9wZW46SEh0LGZhQWxpZ25MZWZ0OnFIdCxmYUNhbWVyYTp5OWUsZmFDYW1lcmFBbHQ6akh0LGZhVXNlcnNSYXlzOlZIdCxmYVJhaW5ib3c6VUh0LGZhU2l0ZW1hcDpXSHQsZmFGYWNlR3JpblN0YXJzOnc5ZSxmYUdyaW5TdGFyczpHSHQsZmFTb3J0VXA6azllLGZhU29ydEFzYzpLSHQsZmFFeWU6SGIsZmFDYXJldExlZnQ6cWIsZmFBcHBsZVdob2xlOlM5ZSxmYUFwcGxlQWx0OllIdCxmYVNjcm9sbFRvcmFoOl85ZSxmYVRvcmFoOlpIdCxmYUhvdXNlTG9jazpYSHQsZmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmU6UUh0LGZhVHJhc2g6ZmgsZmFGYWNlU2FkVGVhcjpNOWUsZmFTYWRUZWFyOkpIdCxmYUZheDplcXQsZmFQZXJzb25DaXJjbGVQbHVzOnRxdCxmYUhhbXNhOmFxdCxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOnNxdCxmYUNsaXBib2FyZENoZWNrOmlxdCxmYVNoYXJlRnJvbVNxdWFyZTp6OWUsZmFTaGFyZVNxdWFyZTpycXQsZmFSZWNlaXB0OmpiLGZhRXF1YWxzOm9xdCxmYUNoZXZyb25VcDpucXQsZmFWaXJ1c1NsYXNoOmxxdCxmYVNsYXNoOmNxdCxmYUV4cGFuZDpkcXQsZmFOb3RlU3RpY2t5OkM5ZSxmYVN0aWNreU5vdGU6dXF0LGZhVGFibGVDb2x1bW5zOlQ5ZSxmYUNvbHVtbnM6cHF0LGZhUGVyc29uU2hlbHRlcjpocXQsZmFDaXJjbGVOb3RjaDpmcXQsZmFXYXRlcjptcXQsZmFEZWxldGVMZWZ0OiQ5ZSxmYUJhY2tzcGFjZTpncXQsZmFCcm9vbUJhbGw6cG9lLGZhUXVpZGRpdGNoOmJxdCxmYVF1aWRkaXRjaEJyb29tQmFsbDp2cXQsZmFKOnhxdCxmYVNodXR0bGVTcGFjZTpEOWUsZmFTcGFjZVNodXR0bGU6eXF0LGZhWWluWWFuZzp3cXQsZmFTdG9wOmtxdCxmYVRyb3dlbDpTcXQsZmFIYW5kQmFja0Zpc3Q6TDllLGZhSGFuZFJvY2s6X3F0LGZhVGVtcGVyYXR1cmVIaWdoOk1xdCxmYUdyZWF0ZXJUaGFuOnpxdCxmYUNydXRjaDpDcXQsZmFTZXB0YWdvbjpFOWUsZmFIZXB0YWdvbjpUcXQsZmFTdHJlZXRWaWV3OiRxdCxmYVdhdmVTcXVhcmU6RHF0LGZhQW5nbGVMZWZ0OkxxdCxmYVNjcmV3ZHJpdmVyOkVxdCxmYVRyYWN0b3I6UHF0LGZhQnJpZGdlQ2lyY2xlWG1hcms6SXF0LGZhVmlhbHM6QXF0LGZhU3RldGhvc2NvcGU6TnF0LGZhUG9kY2FzdDpScXQsZmFBcnJvd1VwUmlnaHREb3RzOk9xdCxmYUNoZXNzUXVlZW46RnF0LGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb246QnF0LGZhRWxsaXBzaXNWZXJ0aWNhbDpQOWUsZmFFbGxpcHNpc1Y6SHF0LGZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbjpxcXQsZmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uOmpxdCxmYVBlcnNvbkFycm93VXBGcm9tTGluZTpWcXQsZmFOb3RFcXVhbDpVcXQsZmFUcmFpblRyYW06V3F0LGZhUGxhbmVEZXBhcnR1cmU6R3F0LGZhUmlnaHRUb0JyYWNrZXQ6STllLGZhU2lnbkluQWx0OktxdCxmYVNkQ2FyZDpZcXQsZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uOlpxdCxmYVNoZWtlbFNpZ246SWIsZmFJbHM6WHF0LGZhU2hla2VsOlFxdCxmYVNoZXFlbDpKcXQsZmFTaGVxZWxTaWduOmVqdCxmYVJhZGlvOnRqdCxmYUhhbmREb3RzOkE5ZSxmYUFsbGVyZ2llczphanQsZmFCb29rU2t1bGw6TjllLGZhQm9va0RlYWQ6c2p0LGZhVW5sb2NrS2V5aG9sZTpSOWUsZmFVbmxvY2tBbHQ6aWp0LGZhRmlsZUFycm93VXA6TzllLGZhRmlsZVVwbG9hZDpyanQsZmFGYWNlR3JpblRlYXJzOkY5ZSxmYUdyaW5UZWFyczpvanQsZmFQZW5Ub1NxdWFyZTpsZixmYUVkaXQ6bmp0LGZhRWFydGhFdXJvcGU6QjllLGZhR2xvYmVFdXJvcGU6bGp0LGZhRmFjZUdyaW5CZWFtU3dlYXQ6SDllLGZhR3JpbkJlYW1Td2VhdDpjanQsZmFDaXJjbGVIYWxmU3Ryb2tlOnE5ZSxmYUFkanVzdDpkanQsZmFQZXJzb25NaWxpdGFyeVRvUGVyc29uOnVqdCxmYVRhYmxlQ2VsbHNDb2x1bW5Mb2NrOnBqdCxmYVRydWNrRmllbGRVbjpoanQsZmFDbG9jazpqOWUsZmFDbG9ja0ZvdXI6Zmp0LGZhQm9vazptanQsZmFGYWNlTGF1Z2hXaW5rOlY5ZSxmYUxhdWdoV2luazpnanQsZmFDbG91ZE1lYXRiYWxsOmJqdCxmYUNoYXJ0QXJlYTpVOWUsZmFBcmVhQ2hhcnQ6dmp0LGZhUnVwaWFoU2lnbjp4anQsZmFUZXh0V2lkdGg6eWp0LGZhU2F0ZWxsaXRlOndqdCxmYU1hZ25pZnlpbmdHbGFzc01pbnVzOlc5ZSxmYVNlYXJjaE1pbnVzOmtqdCxmYVBlb3BsZUdyb3VwOlNqdCxmYVNxdWFyZUJpbmFyeTpfanQsZmFNYXNrc1RoZWF0ZXI6RzllLGZhVGhlYXRlck1hc2tzOk1qdCxmYUNhcnRQbHVzOnpqdCxmYUhhbmRzQXNsSW50ZXJwcmV0aW5nOlFrLGZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmc6Q2p0LGZhQXNsSW50ZXJwcmV0aW5nOlRqdCxmYUhhbmRzQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmc6JGp0LGZhVGFibGVDZWxsc1Jvd1VubG9jazpEanQsZmFSb2NrZXQ6TGp0LGZhU2hyaW1wOkVqdCxmYVRlbmdlU2lnbjpLOWUsZmFUZW5nZTpQanQsZmFIb3VzZUNoaW1uZXlNZWRpY2FsOlk5ZSxmYUNsaW5pY01lZGljYWw6SWp0LGZhVXNlcnNTbGFzaDpBanQsZmFQYXBlclBsYW5lOk5qdCxmYUJvb2tBdGxhczpaOWUsZmFBdGxhczpSanQsZmFUYWJsZTpPanQsZmFIZWFydDpGanQsZmFDaXJjbGVDaGV2cm9uVXA6WDllLGZhQ2hldnJvbkNpcmNsZVVwOkJqdCxmYUJhdHRlcnlIYWxmOlE5ZSxmYUJhdHRlcnkzOkhqdCxmYUZvbnRBd2Vzb21lOmhvZSxmYUZvbnRBd2Vzb21lRmxhZzpxanQsZmFGb250QXdlc29tZUxvZ29GdWxsOmpqdCxmYUhhbmRjdWZmczpWanQsZmFIYXRDb3dib3lTaWRlOlVqdCxmYUluZHVzdHJ5OldqdCxmYUxpbmVzTGVhbmluZzpHanQsZmFQYXNzcG9ydDpLanQsZmFJbmZpbml0eTpZanQsZmFDbG9uZTpaanQsZmFGb3J3YXJkOlhqdCxmYU06UWp0LGZhUm9hZFNwaWtlczpKanQsZmFNb3VudGFpbjplVnQsZmFDaGVzczp0VnQsZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnM6SmssZmFUZW1wZXJhdHVyZTM6YVZ0LGZhVGhlcm1vbWV0ZXIzOnNWdCxmYVRoZXJtb21ldGVyVGhyZWVRdWFydGVyczppVnQsZmFCOnJWdCxmYVNoaWVsZFZpcnVzOm9WdCxmYUxpdGVjb2luU2lnbjpuVnQsZmFEaWNlRDY6bFZ0LGZhR3JpcExpbmVzVmVydGljYWw6Y1Z0LGZhR29sZkJhbGxUZWU6SjllLGZhR29sZkJhbGw6ZFZ0LGZhSGV4YWdvbjp1VnQsZmFGb2xkZXJPcGVuOnBWdCxmYUthYWJhOmhWdCxmYUhhbmRIb2xkaW5nOmZWdCxmYVNpbmdsZVF1b3RlUmlnaHQ6bVZ0LGZhQm90dGxlRHJvcGxldDpnVnQsZmFXaW5kb3dNaW5pbWl6ZTpiVnQsZmFDaGV2cm9uUmlnaHQ6dlZ0LGZhRWdnOnhWdCxmYUxhbmRtYXJrRG9tZTplYmUsZmFMYW5kbWFya0FsdDp5VnQsZmFXb3JtOndWdCxmYVVzZXJJbmp1cmVkOmtWdCxmYVN0cmlrZXRocm91Z2g6U1Z0LGZhQmxvZzpfVnQsZmFTdG9wd2F0Y2gyMDpNVnQsZmFUcnVja1BpY2t1cDp6VnQsZmFTZWVkbGluZzp0YmUsZmFTcHJvdXQ6Q1Z0LGZhVHJhbnNnZW5kZXI6YWJlLGZhVHJhbnNnZW5kZXJBbHQ6VFZ0LGZhU3RhckhhbGY6JFZ0LGZhUGhvdG9GaWxtOnNiZSxmYVBob3RvVmlkZW86RFZ0LGZhUGljdHVyZUluUGljdHVyZTpMVnQsZmFQdW1wTWVkaWNhbDpFVnQsZmFGaXJlOlBWdCxmYU1hZ25pZnlpbmdHbGFzc1BsdXM6aWJlLGZhU2VhcmNoUGx1czpJVnQsZmFGbGFzazpBVnQsZmFBbGlnblJpZ2h0Ok5WdCxmYUNhYmxlQ2FyOnJiZSxmYVRyYW06UlZ0LGZhS2l0TWVkaWNhbDpvYmUsZmFGaXJzdEFpZDpPVnQsZmFHcmlwTGluZXM6RlZ0LGZhQnVyZ2VyOm5iZSxmYUhhbWJ1cmdlcjpCVnQsZmFTbm93bWFuOkhWdCxmYUhvdGVsOnFWdCxmYVByaW50OmpWdCxmYVZvbGxleWJhbGw6bGJlLGZhVm9sbGV5YmFsbEJhbGw6VlZ0LGZhVHJhZmZpY0xpZ2h0OlVWdCxmYVBsYW5lQ2lyY2xlQ2hlY2s6V1Z0LGZhVXNlcnM6VmIsZmFDZXJ0aWZpY2F0ZTpHVnQsZmFBbGFybUNsb2NrOktWdCxmYUhlbGljb3B0ZXJTeW1ib2w6WVZ0LGZhSG91c2VDaGltbmV5Q3JhY2s6Y2JlLGZhSG91c2VEYW1hZ2U6WlZ0LGZhUGVyc29uTWlsaXRhcnlQb2ludGluZzpYVnQsZmFEYXRhYmFzZTpRVnQsZmFOZXdzcGFwZXI6SlZ0LGZhQ2xvdWRSYWluOmVVdCxmYU1heGltaXplOmRiZSxmYUV4cGFuZEFycm93c0FsdDp0VXQsZmFMb2NhdGlvbkFycm93OmFVdCxmYUNpdHk6c1V0LGZhWFJheTppVXQsZmFVbWJyZWxsYUJlYWNoOnJVdCxmYUFycm93UmlnaHRUb0JyYWNrZXQ6dWJlLGZhU2lnbkluOm9VdCxmYUhlYWRzZXQ6blV0LGZhU3Bsb3RjaDpsVXQsZmFVcExvbmc6cGJlLGZhTG9uZ0Fycm93QWx0VXA6Y1V0LGZhSGV4YWdvbk5vZGVzOmRVdCxmYUhvc3BpdGFsOmZvZSxmYUhvc3BpdGFsQWx0OnVVdCxmYUhvc3BpdGFsV2lkZTpwVXQsZmFQZXJzb25IYXJhc3Npbmc6aFV0LGZhTW9uZXlCaWxsVHJlbmRVcDpmVXQsZmFQZW5SdWxlcjpoYmUsZmFQZW5jaWxSdWxlcjptVXQsZmFSZXBlYXQ6Z1V0LGZhQm9uZTpiVXQsZmFGaXJlRmxhbWVDdXJ2ZWQ6ZmJlLGZhRmlyZUFsdDp2VXQsZmFCdXNTaW1wbGU6bWJlLGZhQnVzQWx0OnhVdCxmYVZlbnVzTWFyczp5VXQsZmFCbGVuZGVyOndVdCxmYVU6a1V0LGZhU2hhcmU6Y2YsZmFNYWlsRm9yd2FyZDpTVXQsZmFQaG9uZUZsaXA6Z2JlLGZhUGhvbmVBbHQ6X1V0LGZhVG9pbGV0UG9ydGFibGU6TVV0LGZhUGVyc29uUHJlZ25hbnQ6elV0LGZhTGVzc1RoYW46Q1V0LGZhU3VwZXJzY3JpcHQ6VFV0LGZhQ2lyY2xlU3RvcDpiYmUsZmFTdG9wQ2lyY2xlOiRVdCxmYUFycm93c1VwRG93bjp2YmUsZmFBcnJvd3NWOkRVdCxmYVBvb1N0b3JtOnhiZSxmYVBvb0JvbHQ6TFV0LGZhVmlkZW9TbGFzaDpFVXQsZmFTcXVhcmVYbWFyazptb2UsZmFUaW1lc1NxdWFyZTpQVXQsZmFYbWFya1NxdWFyZTpJVXQsZmFIYW5kSG9sZGluZ0Ryb3BsZXQ6eWJlLGZhSGFuZEhvbGRpbmdXYXRlcjpBVXQsZmFXb25TaWduOmdvZSxmYUtydzpOVXQsZmFXb246UlV0LGZhT2JqZWN0VW5ncm91cDpPVXQsZmFDb21tZW50OkZVdCxmYUhpbGxBdmFsYW5jaGU6QlV0LGZhQXJyb3dzVG9FeWU6SFV0LGZhU25vd3Bsb3c6cVV0LGZhQ2hhcnRHYW50dDpqVXQsZmFWaWRlbzp3YmUsZmFWaWRlb0NhbWVyYTpWVXQsZmFDaGVzc1Bhd246VVV0LGZhU3luYWdvZ3VlOldVdCxmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2s6R1V0LGZhQ2FsZW5kYXJQbHVzOktVdCxmYVdoZWVsY2hhaXJNb3ZlOmtiZSxmYVdoZWVsY2hhaXJBbHQ6WVV0LGZhVXNlclNoaWVsZDpaVXQsZmFCb2xkOlhVdCxmYUhlYXJ0UHVsc2U6U2JlLGZhSGVhcnRiZWF0OlFVdCxmYVNxdWFyZVJvb3RWYXJpYWJsZTpfYmUsZmFTcXVhcmVSb290QWx0OkpVdCxmYUhhbmRzQnViYmxlczpNYmUsZmFIYW5kc1dhc2g6ZVd0LGZhTWFya2VyOnRXdCxmYUNsaXBib2FyZDphV3QsZmFQbGFjZU9mV29yc2hpcDpzV3QsZmFDYW5uYWJpczppV3QsZmFQZW9wbGVSb29mOnJXdCxmYURpc2Vhc2U6b1d0LGZhQm9va0JpYmxlOnpiZSxmYUJpYmxlOm5XdCxmYUNoZXNzQm9hcmQ6bFd0LGZhTWFyczpjV3QsZmFMYXB0b3A6ZFd0LGZhVXNlclhtYXJrOkNiZSxmYVVzZXJUaW1lczp1V3QsZmFGbGFnVXNhOnBXdCxmYUhhbmRNaWRkbGVGaW5nZXI6aFd0LGZhTW9ydGFyUGVzdGxlOmZXdCxmYUhlYWRTaWRlQ291Z2g6bVd0LGZhUGxhbmVMb2NrOmdXdCxmYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzOlRiZSxmYUJhdHRlcnk0OmJXdCxmYUZyYW5jU2lnbjp2V3QsZmFGaWx0ZXJDaXJjbGVEb2xsYXI6JGJlLGZhRnVubmVsRG9sbGFyOnhXdCxmYUNoZWVzZTp5V3QsZmFDaXJjbGVIOkRiZSxmYUhvc3BpdGFsU3ltYm9sOndXdCxmYVNjaG9vbDprV3QsZmFEaWNlRml2ZTpTV3QsZmFUb3JuYWRvOl9XdCxmYUpldEZpZ2h0ZXI6TGJlLGZhRmlnaHRlckpldDpNV3QsZmFUaHVtYnNEb3duOnpXdCxmYUJyb29tOkNXdCxmYUZpbGVJbXBvcnQ6RWJlLGZhQXJyb3dSaWdodFRvRmlsZTpUV3QsZmFVdGVuc2lsczpQYmUsZmFDdXRsZXJ5OiRXdCxmYUlkQmFkZ2U6RFd0LGZhU3BpZGVyOkxXdCxmYU1vYmlsZVJldHJvOkVXdCxmYVNpZ25zUG9zdDpJYmUsZmFNYXBTaWduczpQV3QsZmFHcm91cEFycm93c1JvdGF0ZTpJV3QsZmFBcnJvd3NTcGxpdFVwQW5kTGVmdDpBV3QsZmFGaWxsRHJpcDpOV3QsZmFTaGllbGRIZWFydDpSV3QsZmFQZXJzb25Ta2lpbmdOb3JkaWM6QWJlLGZhU2tpaW5nTm9yZGljOk9XdCxmYVNxdWFyZUNoZWNrOk5iZSxmYUNoZWNrU3F1YXJlOkZXdCxmYUJhdGg6UmJlLGZhQmF0aHR1YjpCV3QsZmFDaGVzc0Jpc2hvcDpIV3QsZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsOk9iZSxmYVByZXNjcmlwdGlvbkJvdHRsZUFsdDpxV3QsZmFEcmF3UG9seWdvbjpGYmUsZmFWZWN0b3JQb2x5Z29uOmpXdCxmYUlDdXJzb3I6Vld0LGZhSGVhcnRDaXJjbGVQbHVzOlVXdCxmYVNoaWVsZERvZzpXV3QsZmFHcmVhdGVyVGhhbkVxdWFsOkdXdCxmYUVudmVsb3BlT3BlbjpLV3QsZmFNb3VuZDpZV3QsZmFWb2ljZW1haWw6Wld0LGZhVmVzdDpYV3QsZmFBdWRpb0Rlc2NyaXB0aW9uOlFXdCxmYVc6Sld0LGZhRXllRHJvcHBlcjpib2UsZmFFeWVEcm9wcGVyRW1wdHk6ZUd0LGZhRXllZHJvcHBlcjp0R3QsZmFDaXJjbGVYbWFyazpwaCxmYVRpbWVzQ2lyY2xlOmFHdCxmYVhtYXJrQ2lyY2xlOnNHdCxmYVRyYWlsZXI6aUd0LGZhVHVya2lzaExpcmFTaWduOnZvZSxmYVRyeTpyR3QsZmFUdXJraXNoTGlyYTpvR3QsZmFWb2xjYW5vOm5HdCxmYVdhbmRTcGFya2xlczpsR3QsZmFNaWNyb3Bob25lOmNHdCxmYUNyb3duOmRHdCxmYVRlbnRBcnJvd1R1cm5MZWZ0OnVHdCxmYVRydWNrRmFzdDpCYmUsZmFTaGlwcGluZ0Zhc3Q6cEd0LGZhVXNlclBlbjpIYmUsZmFVc2VyRWRpdDpoR3QsZmFVc2VyQ2xvY2s6Zkd0LGZhU2hvd2VyOm1HdCxmYVNxdWFyZUNhcmV0VXA6cWJlLGZhQ2FyZXRTcXVhcmVVcDpnR3QsZmFNYXBMb2NhdGlvbjpqYmUsZmFNYXBNYXJrZWQ6Ykd0LGZhUGVuRmFuY3k6dkd0LGZhRXVyb1NpZ246eG9lLGZhRXVyOnhHdCxmYUV1cm86eUd0LGZhSG91c2VDaXJjbGVYbWFyazp3R3QsZmFMaXJhU2lnbjprR3QsZmFZZW5TaWduOkFiLGZhQ255OlNHdCxmYUpweTpfR3QsZmFSbWI6TUd0LGZhWWVuOnpHdCxmYUJveE9wZW46Q0d0LGZhVHJ1Y2tGaWVsZDpUR3QsZmFMb2NhdGlvblBpbkxvY2s6JEd0LGZhUGVyc29uUHJheWluZzpWYmUsZmFQcmF5OkRHdCxmYUNsaXBib2FyZExpc3Q6TEd0LGZhU2Fja0RvbGxhcjpFR3QsZmFNb3VudGFpblN1bjpQR3QsZmFBcnJvd1VwV2lkZVNob3J0OlViZSxmYVNvcnRBbW91bnRVcDpJR3QsZmFVc2Vyc0xpbmU6QUd0LGZhU3Rhck9mRGF2aWQ6Tkd0LGZhTm90ZXNNZWRpY2FsOlJHdCxmYUF1c3RyYWxTaWduOk9HdCxmYUNsaXBib2FyZFVzZXI6Rkd0LGZhRmlsZUltYWdlOkJHdCxmYVNxdWFyZUNhcmV0UmlnaHQ6V2JlLGZhQ2FyZXRTcXVhcmVSaWdodDpIR3QsZmFWaWFsOnFHdCxmYUhlbGljb3B0ZXI6akd0LGZhTWl0dGVuOlZHdCxmYUdhc1B1bXA6VUd0LGZhRW52ZWxvcGVDaXJjbGVDaGVjazpXR3QsZmFQZXJzb25Ta2F0aW5nOkdiZSxmYVNrYXRpbmc6R0d0LGZhU3VuOlViLGZhQmFzZWJhbGw6S2JlLGZhQmFzZWJhbGxCYWxsOktHdCxmYUltYWdlOllHdCxmYU5vdGRlZjpaR3QsZmFCYXNrZXRiYWxsOlliZSxmYUJhc2tldGJhbGxCYWxsOlhHdCxmYVBlbmNpbDpaYmUsZmFQZW5jaWxBbHQ6UUd0LGZhUGVyc29uV2Fsa2luZ0Fycm93TG9vcExlZnQ6Skd0LGZhRGljZVNpeDplS3QsZmFBbmdsZXNEb3duOlhiZSxmYUFuZ2xlRG91YmxlRG93bjp0S3QsZmFTeXJpbmdlOmFLdCxmYVdoZWF0QXduOlFiZSxmYVdoZWF0QWx0OnNLdCxmYVBsYW5lVXA6aUt0LGZhQWxpZ25DZW50ZXI6ckt0LGZhSG9ja2V5UHVjazpvS3QsZmFDaXJjbGVBcnJvd0xlZnQ6SmJlLGZhQXJyb3dDaXJjbGVMZWZ0Om5LdCxmYVBsdWdDaXJjbGVCb2x0OmxLdCxmYVJlc3Ryb29tOmNLdCxmYUFuY2hvckxvY2s6ZEt0LGZhVGltZWxpbmU6dUt0LGZhTGlnaHRidWxiOnBLdCxmYUNpcmNsZUFycm93UmlnaHQ6ZXZlLGZhQXJyb3dDaXJjbGVSaWdodDpoS3QsZmFNYXJzQW5kVmVudXM6Zkt0LGZhTmV0d29ya1dpcmVkOldiLGZhQnVpbGRpbmdTaGllbGQ6bUt0LGZhQ29kZTpnS3QsZmFGZWF0aGVyUG9pbnRlZDp0dmUsZmFGZWF0aGVyQWx0OmJLdCxmYUZpbGVDaXJjbGVRdWVzdGlvbjp2S3QsZmFTaWduYXR1cmU6eEt0LGZhRWFydGhBbWVyaWNhczplUyxmYUVhcnRoOnlLdCxmYUVhcnRoQW1lcmljYTp3S3QsZmFHbG9iZUFtZXJpY2FzOmtLdCxmYUNhcnJvdDpTS3QsZmFUZW1wZXJhdHVyZUZ1bGw6dFMsZmFUZW1wZXJhdHVyZTQ6X0t0LGZhVGhlcm1vbWV0ZXI0Ok1LdCxmYVRoZXJtb21ldGVyRnVsbDp6S3QsZmFUYWJsZUNlbGxzUm93TG9jazpDS3QsZmFCb2x0TGlnaHRuaW5nOlRLdCxmYUNsb3VkU2hvd2Vyc1dhdGVyOiRLdCxmYUFycm93VXBMb25nOmF2ZSxmYUxvbmdBcnJvd1VwOkRLdCxmYUFkZHJlc3NDYXJkOnlvZSxmYUNvbnRhY3RDYXJkOkxLdCxmYVZjYXJkOkVLdCxmYUFuZ2xlUmlnaHQ6UEt0LGZhRmFjZU1laDpzdmUsZmFNZWg6SUt0LGZhQXJyb3dVcEZyb21Hcm91bmRXYXRlcjpBS3QsZmFNYXA6Tkt0LGZhVXNlclBsdXM6Ukt0LGZhVmVudXM6T0t0LGZhRGlhZ3JhbVN1Y2Nlc3NvcjpGS3QsZmFIZWFkU2lkZUNvdWdoU2xhc2g6Qkt0LGZhRGlhZ3JhbVByb2plY3Q6aXZlLGZhUHJvamVjdERpYWdyYW06SEt0LGZhVGVybWluYWw6R2IsZmFIb3VzZUZpcmU6cUt0LGZhTWFzazpqS3QsZmFIdXJyaWNhbmU6Vkt0LGZhRWFydGhBZnJpY2E6cnZlLGZhR2xvYmVBZnJpY2E6VUt0LGZhVGh1bWJ0YWNrOm92ZSxmYVRodW1iVGFjazpXS3QsZmFIYW5kUG9pbnREb3duOkdLdCxmYUZhY2VNZWhCbGFuazpudmUsZmFNZWhCbGFuazpLS3QsZmFUZW1wZXJhdHVyZUVtcHR5OmFTLGZhVGVtcGVyYXR1cmUwOllLdCxmYVRoZXJtb21ldGVyMDpaS3QsZmFUaGVybW9tZXRlckVtcHR5OlhLdCxmYUJvcmRlck5vbmU6UUt0LGZhSGlnaGxpZ2h0ZXI6Skt0LGZhTW9uZXlCaWxsV2F2ZTplWXQsZmFUb2lsZXRQYXBlclNsYXNoOnRZdCxmYUZpbGVTaGllbGQ6YVl0LGZhVGV4dEhlaWdodDpzWXQsZmFGYWNlR3JpblRvbmd1ZTpsdmUsZmFHcmluVG9uZ3VlOmlZdCxmYUZpbGVTaWduYXR1cmU6cll0LGZhQnVpbGRpbmdXaGVhdDpvWXQsZmFQbHVnQ2lyY2xlTWludXM6bll0LGZhRnV0Ym9sOndvZSxmYUZ1dGJvbEJhbGw6bFl0LGZhU29jY2VyQmFsbDpjWXQsZmFDaXJjbGVQbHVzOmN2ZSxmYVBsdXNDaXJjbGU6ZFl0LGZhQnJhemlsaWFuUmVhbFNpZ246dVl0LGZhU3RhckFuZENyZXNjZW50OnBZdCxmYUZhY2VTdXJwcmlzZTpkdmUsZmFTdXJwcmlzZTpoWXQsZmFIb3NwaXRhbFVzZXI6Zll0LGZhQXJyb3dEb3duVXBMb2NrOm1ZdCxmYUZvbGRlcjp1dmUsZmFGb2xkZXJCbGFuazpnWXQsZmFIb2xseUJlcnJ5OmJZdCxmYVZlbnVzRG91YmxlOnZZdCxmYUNsaXBib2FyZFF1ZXN0aW9uOnhZdCxmYUhvdGRvZzp5WXQsZmFBcnJvd1VwRnJvbUJyYWNrZXQ6d1l0LGZhTWljcm9zY29wZTprWXQsZmFDbG91ZDpTWXQsZmFCYXNlYmFsbEJhdEJhbGw6X1l0LGZhQ2FyUmVhcjpwdmUsZmFDYXJBbHQ6TVl0LGZhVGh1bWJ0YWNrU2xhc2g6aHZlLGZhVGh1bWJUYWNrU2xhc2g6ell0LGZhUGx1c01pbnVzOkNZdCxmYUhvdXNlQ2lyY2xlQ2hlY2s6VFl0LGZhQ2FsZW5kYXJEYXk6JFl0LGZhTGlicmE6RFl0LGZhQ2lyY2xlOkxZdCxmYU1vYmlsZVZpYnJhdGU6RVl0LGZhRmFjZUdyaW5TcXVpbnQ6ZnZlLGZhR3JpblNxdWludDpQWXQsZmFVc2Vyc0JldHdlZW5MaW5lczpJWXQsZmFIb3VzZU1lZGljYWxDaXJjbGVYbWFyazpBWXQsZmFUYWJsZUxpc3Q6bXZlLGZhVGhMaXN0Ok5ZdCxmYUZsYXNrVmlhbDpSWXQsZmFDaXJjbGVFeGNsYW1hdGlvbjpndmUsZmFFeGNsYW1hdGlvbkNpcmNsZTpPWXQsZmFUYXhpOmJ2ZSxmYUNhYjpGWXQsZmFUZXh0U2xhc2g6dnZlLGZhUmVtb3ZlRm9ybWF0OkJZdCxmYVBlb3BsZVB1bGxpbmc6SFl0LGZhQmFja3dhcmQ6cVl0LGZhQ2FyQnVyc3Q6eHZlLGZhQ2FyQ3Jhc2g6all0LGZhTGluazp5dmUsZmFDaGFpbjpWWXQsZmFCYWNrd2FyZFN0ZXA6d3ZlLGZhU3RlcEJhY2t3YXJkOlVZdCxmYVg6V1l0LGZhQ2lyY2xlVXNlcjprdmUsZmFVc2VyQ2lyY2xlOkdZdCxmYVJlY3RhbmdsZUxpc3Q6U3ZlLGZhTGlzdEFsdDpLWXQsZmFIYW5kOl92ZSxmYUhhbmRQYXBlcjpZWXQsZmFDYW5jZXI6Wll0LGZhVmFuU2h1dHRsZTpNdmUsZmFTaHV0dGxlVmFuOlhZdCxmYVN0YWlyczpRWXQsZmFIb3JzZUhlYWQ6Sll0LGZhVmF1bHQ6ZVp0LGZhQ2xvc2VkQ2FwdGlvbmluZ1NsYXNoOnRadCxmYURydW1TdGVlbHBhbjphWnQsZmFUaHVtYnNVcDpzWnQsZmFTdGFtcDppWnQsZmFNZW5vcmFoOnJadCxmYUNoaWxkcmVuOm9adCxmYUNoYXJ0TGluZTp6dmUsZmFMaW5lQ2hhcnQ6blp0LGZhU3F1YXJlRW52ZWxvcGU6Q3ZlLGZhRW52ZWxvcGVTcXVhcmU6bFp0LGZhQmFuU21va2luZzpUdmUsZmFTbW9raW5nQmFuOmNadCxmYVRydWNrRnJvbnQ6ZFp0LGZhQnVpbGRpbmc6S2IsZmFCdWxsc2V5ZTp1WnQsZmFBcnJvd0xlZnRMb25nOiR2ZSxmYUxvbmdBcnJvd0xlZnQ6cFp0LGZhQ2hlc3NSb29rOmhadCxmYUJsZW5kZXJQaG9uZTpmWnQsZmFBcnJvd1R1cm5VcDpEdmUsZmFMZXZlbFVwOm1adCxmYUJpY3ljbGU6Z1p0LGZhQ2lyY2xlQXJyb3dEb3duOkx2ZSxmYUFycm93Q2lyY2xlRG93bjpiWnQsZmFHZWFyOmRmLGZhQ29nOnZadCxmYU1hcnNBbmRWZW51c0J1cnN0OnhadCxmYU90dGVyOnladCxmYUNpcmNsZUNoZXZyb25MZWZ0OkV2ZSxmYUNoZXZyb25DaXJjbGVMZWZ0OndadCxmYUNpcmNsZVF1ZXN0aW9uOlB2ZSxmYVF1ZXN0aW9uQ2lyY2xlOmtadCxmYVdhbGtpZVRhbGtpZTpTWnQsZmFVc2VyR3JvdXA6SXZlLGZhVXNlckZyaWVuZHM6X1p0LGZhSG91c2VDaGltbmV5OkF2ZSxmYUhvbWVMZzpNWnQsZmFSaWdodEZyb21CcmFja2V0Ok52ZSxmYVNpZ25PdXRBbHQ6elp0LGZhRmlsZTpDWnQsZmFQbGFuZVNsYXNoOlRadCxmYUNsb3VkU2hvd2Vyc0hlYXZ5OiRadCxmYVBlcnNvbkZhbGxpbmc6RFp0LGZhVHVybkRvd246UnZlLGZhTGV2ZWxEb3duQWx0OkxadCxmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXI6T3ZlLGZhRXhwYW5kQWx0OkVadCxmYVVzZXJUYWc6UFp0LGZhSGFuZFNwYXJrbGVzOkladCxmYUFycm93c1RvRG90OkFadCxmYUZhY2VTYWRDcnk6RnZlLGZhU2FkQ3J5Ok5adCxmYURvbmdTaWduOlJadCxmYVBlb3BsZUxpbmU6T1p0LGZhU3F1YXJlUnNzOkJ2ZSxmYVJzc1NxdWFyZTpGWnQsZmFDYWxlbmRhck1pbnVzOkJadCxmYUNoYXJ0RGlhZ3JhbTpIWnQsZmFGYWNlVGlyZWQ6SHZlLGZhVGlyZWQ6cVp0LGZhSGFuZFBvaW50UmlnaHQ6alp0LGZhQXJyb3dVcDpWWnQsZmFDdWJlc1N0YWNrZWQ6VVp0LGZhQ2hpbGRDb21iYXRhbnQ6cXZlLGZhQ2hpbGRSaWZsZTpXWnQsZmFWZXN0UGF0Y2hlczpHWnQsZmFNYXJ0aW5pR2xhc3NFbXB0eTpqdmUsZmFHbGFzc01hcnRpbmk6S1p0LGZhTWFnbmV0OlladCxmYVJvYWRCYXJyaWVyOlpadCxmYUNvbXBhc3NEcmFmdGluZzpWdmUsZmFEcmFmdGluZ0NvbXBhc3M6WFp0LGZhU3F1YXJlUGVyc29uQ29uZmluZWQ6UVp0LGZhUGxhdGVXaGVhdDpKWnQsZmFTaWduSGFuZ2luZzpVdmUsZmFTaWduOmVYdCxmYUNhckJhdHRlcnk6V3ZlLGZhQmF0dGVyeUNhcjp0WHQsZmFTaGlydDprb2UsZmFUU2hpcnQ6YVh0LGZhVHNoaXJ0OnNYdCxmYVBhcmFncmFwaDppWHQsZmFFbnZlbG9wZXNCdWxrOkd2ZSxmYU1haWxCdWxrOnJYdCxmYUd1aXRhcjpvWHQsZmFTdWl0Y2FzZTpuWHQsZmFDaXJjbGVVcDpLdmUsZmFBcnJvd0FsdENpcmNsZVVwOmxYdCxmYUY6Y1h0LGZhWG1hcmtzTGluZXM6ZFh0LGZhRWFydGhPY2VhbmlhOll2ZSxmYUdsb2JlT2NlYW5pYTp1WHQsZmFDb21tZW50U2xhc2g6cFh0LGZhUGxheTpoWHQsZmFWaWFsQ2lyY2xlQ2hlY2s6Zlh0LGZhQnJpZGdlQ2lyY2xlQ2hlY2s6bVh0LGZhQ2VkaVNpZ246Z1h0LGZhUHV6emxlUGllY2U6Ylh0LGZhSGVsbWV0VW46dlh0LGZhR2xhc3NXYXRlcjp4WHQsZmFIZWFydENpcmNsZUJvbHQ6eVh0LGZhUHVtcFNvYXA6d1h0LGZhSGFuZFNjaXNzb3JzOmtYdCxmYURvbGx5Olp2ZSxmYURvbGx5Qm94OlNYdCxmYVBhcGVyY2xpcDpZYixmYURlbW9jcmF0Ol9YdCxmYVNxdWFyZUFycm93VXBSaWdodDpYdmUsZmFFeHRlcm5hbExpbmtTcXVhcmU6TVh0LGZhRmVycnk6elh0LGZhTW9zcXVpdG86Q1h0LGZhQnVpbGRpbmdDaXJjbGVBcnJvd1JpZ2h0OlRYdCxmYUxlZnRSaWdodDpRdmUsZmFBcnJvd3NBbHRIOiRYdCxmYVZpcnVzOkRYdCxmYUdlbTpMWHQsZmFUb2lsZXQ6RVh0LGZhU2luZ2xlUXVvdGVMZWZ0OlBYdCxmYU1vbmV5QmlsbHM6SVh0LGZhVGFibGV0QnV0dG9uOkFYdCxmYVJlY3RhbmdsZVhtYXJrOnNTLGZhUmVjdGFuZ2xlVGltZXM6Tlh0LGZhVGltZXNSZWN0YW5nbGU6Ulh0LGZhV2luZG93Q2xvc2U6T1h0LGZhV3JlbmNoOkZYdCxmYVRyYXNoQ2FuOnVmLGZhVHJhc2hBbHQ6Qlh0LGZhVGFibGVDZWxsczpKdmUsZmFUaDpIWHQsZmFSaWJib246cVh0LGZhTGFuZG1hcmtGbGFnOmpYdCxmYVVwRG93bkxlZnRSaWdodDpleGUsZmFBcnJvd3NBbHQ6Vlh0LGZhQ2FyU2lkZTpVWHQsZmFUcmFzaEFycm93VXA6dHhlLGZhVHJhc2hSZXN0b3JlOldYdCxmYUxpZmVSaW5nOkdYdCxmYUNvcHlyaWdodDpLWHQsZmFGaWxlUHJlc2NyaXB0aW9uOllYdCxmYUVyYXNlcjpaWHQsZmFIb3VyZ2xhc3NTdGFydDpheGUsZmFIb3VyZ2xhc3MxOlhYdCxmYUNpcmNsZUxlZnQ6c3hlLGZhQXJyb3dBbHRDaXJjbGVMZWZ0OlFYdCxmYUNydXplaXJvU2lnbjpKWHQsZmFTbW9raW5nOmVRdCxmYVNxdWFyZVBvbGxWZXJ0aWNhbDppeGUsZmFQb2xsOnRRdCxmYVBlcnNvbkNpcmNsZU1pbnVzOmFRdCxmYUJpb2hhemFyZDpzUXQsZmFCZWxsQ29uY2llcmdlOnJ4ZSxmYUNvbmNpZXJnZUJlbGw6aVF0LGZhUnVsZXJIb3Jpem9udGFsOnJRdCxmYUhvcnNlOm9RdCxmYUNhbGVuZGFyOm5RdCxmYUhhbmRzSG9sZGluZ0NoaWxkOmxRdCxmYUl0YWxpYzpjUXQsZmFLaGFuZGE6ZFF0LGZhRmFjZUZyb3duT3BlbjpveGUsZmFGcm93bk9wZW46dVF0LGZhQ2hlY2s6WmIsZmFGaW5nZXJwcmludDpwUXQsZmFDaGFyZ2luZ1N0YXRpb246aFF0LGZhVXNlckxvY2s6ZlF0LGZhTW9iaWxlU2NyZWVuQnV0dG9uOm54ZSxmYU1vYmlsZUFsdDptUXQsZmFBbmNob3JDaXJjbGVDaGVjazpnUXQsZmFQZXJzb25XYWxraW5nV2l0aENhbmU6bHhlLGZhQmxpbmQ6YlF0LGZhRmlsZVdhdmVmb3JtOmN4ZSxmYUZpbGVNZWRpY2FsQWx0OnZRdCxmYUhvdXNlQ3JhY2s6eFF0LGZhSGF0V2l6YXJkOnlRdCxmYVVzZXJEb2N0b3I6ZHhlLGZhVXNlck1kOndRdCxmYUNoYXJ0QmFyOnV4ZSxmYUJhckNoYXJ0OmtRdCxmYVNwcmF5Q2FuU3BhcmtsZXM6cHhlLGZhQWlyRnJlc2hlbmVyOlNRdCxmYUJhaHRTaWduOl9RdCxmYVRlbXBlcmF0dXJlQXJyb3dVcDpoeGUsZmFUZW1wZXJhdHVyZVVwOk1RdCxmYVdlYkF3ZXNvbWU6elF0LGZhTm9uQmluYXJ5OkNRdCxmYU46VFF0LGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0OmZ4ZSxmYUFycm93czokUXQsZmFIb3VzZTppUyxmYUhvbWU6RFF0LGZhSG9tZUFsdDpMUXQsZmFIb21lTGdBbHQ6RVF0LGZhU3Bpbm5lcjpQUXQsZmFHYXZlbDpteGUsZmFMZWdhbDpJUXQsZmFUaWNrZXRTaW1wbGU6Z3hlLGZhVGlja2V0QWx0OkFRdCxmYURvdmU6TlF0LGZhVGFycERyb3BsZXQ6UlF0LGZhVHJlZUNpdHk6T1F0LGZhVHVyblVwOmJ4ZSxmYUxldmVsVXBBbHQ6RlF0LGZhVGVtcGVyYXR1cmVRdWFydGVyOnJTLGZhVGVtcGVyYXR1cmUxOkJRdCxmYVRoZXJtb21ldGVyMTpIUXQsZmFUaGVybW9tZXRlclF1YXJ0ZXI6cVF0LGZhU2xpZGVyczp2eGUsZmFTbGlkZXJzSDpqUXQsZmFNb3NxdWU6VlF0LGZhSDpVUXQsZmFJbmZvOldRdCxmYVBlcnNvbldhbGtpbmc6eHhlLGZhV2Fsa2luZzpHUXQsZmFBcnJvd1R1cm5Eb3duOnl4ZSxmYUxldmVsRG93bjpLUXQsZmFSb2FkOllRdCxmYVNwaXJhbDpaUXQsZmFGYWNlRnJvd246d3hlLGZhRnJvd246WFF0LGZhV2luZUdsYXNzRW1wdHk6a3hlLGZhV2luZUdsYXNzQWx0OlFRdCxmYUNsYXBwZXJib2FyZDpKUXQsZmFGb3J3YXJkU3RlcDpTeGUsZmFTdGVwRm9yd2FyZDplSnQsZmFTcXVhcmVVcFJpZ2h0Ol94ZSxmYUV4dGVybmFsTGlua1NxdWFyZUFsdDp0SnQsZmFCb29rSm91cm5hbFdoaWxsczpNeGUsZmFKb3VybmFsV2hpbGxzOmFKdCxmYUNoYW1wYWduZUdsYXNzZXM6enhlLGZhR2xhc3NDaGVlcnM6c0p0LGZhRHVtcHN0ZXI6aUp0LGZhSGVhcnRDaXJjbGVYbWFyazpySnQsZmFDb21wdXRlcjpvSnQsZmFXYW5kTWFnaWM6Q3hlLGZhTWFnaWM6bkp0LGZhQnJhaW46bEp0LGZhQnJpZWZjYXNlTWVkaWNhbDpjSnQsZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbjpkSnQsZmFDb2RlQ29tbWl0OnVKdCxmYVBlcnNvbkJyZWFzdGZlZWRpbmc6cEp0LGZhUGVyc29uUmF5czpoSnQsZmFNYW5hdFNpZ246Zkp0LGZhU29ydDpUeGUsZmFVbnNvcnRlZDptSnQsZmFDaXJjbGVSYWRpYXRpb246JHhlLGZhUmFkaWF0aW9uQWx0OmdKdCxmYUxhcHRvcENvZGU6Ykp0LGZhU2luazp2SnQsZmFBcnJvd1VwRnJvbVdhdGVyUHVtcDp4SnQsZmFNaWNyb3Bob25lTGluZXNTbGFzaDpEeGUsZmFNaWNyb3Bob25lQWx0U2xhc2g6eUp0LGZhU2VydmVyOndKdCxmYVVzZXI6U29lLGZhVXNlckFsdDprSnQsZmFVc2VyTGFyZ2U6U0p0LGZhU25vd2ZsYWtlOl9KdCxmYVRhdXJ1czpNSnQsZmFTa3VsbENyb3NzYm9uZXM6ekp0LGZhUGVzb1NpZ246Q0p0LGZhV2luZUdsYXNzOlRKdCxmYVRlbXBlcmF0dXJlSGFsZjpvUyxmYVRlbXBlcmF0dXJlMjokSnQsZmFUaGVybW9tZXRlcjI6REp0LGZhVGhlcm1vbWV0ZXJIYWxmOkxKdCxmYVRpY2tldDpFSnQsZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uOlBKdCxmYUFycm93c1R1cm5SaWdodDpJSnQsZmFDYW5keUNhbmU6QUp0LGZhV2hlZWxjaGFpcjpOSnQsZmFTcGVsbENoZWNrOlJKdCxmYVZvbHVtZU9mZjpPSnQsZmFMdW5nczpGSnQsZmFCb29rbWFyazpCSnQsZmFCYXJjb2RlOkhKdCxmYUxpc3RPbDpfb2UsZmFMaXN0MTI6cUp0LGZhTGlzdE51bWVyaWM6akp0LGZhRmlsZUNpcmNsZVhtYXJrOlZKdCxmYUN1YmU6VUp0LGZhVGFwZTpXSnQsZmFCb21iOkdKdCxmYVNjYWxlVW5iYWxhbmNlZDpMeGUsZmFCYWxhbmNlU2NhbGVMZWZ0OktKdCxmYVNxdWFyZUNhcmV0TGVmdDpFeGUsZmFDYXJldFNxdWFyZUxlZnQ6WUp0LGZhUnVsZXI6Wkp0LGZhSTpYSnQsZmFWb2x1bWVYbWFyazpNb2UsZmFWb2x1bWVNdXRlOlFKdCxmYVZvbHVtZVRpbWVzOkpKdCxmYUFyY2h3YXk6ZWVhLGZhUGVyc29uRGlnZ2luZzpQeGUsZmFEaWdnaW5nOnRlYSxmYUdhdWdlSGlnaDp6b2UsZmFUYWNob21ldGVyQWx0OmFlYSxmYVRhY2hvbWV0ZXJBbHRGYXN0OnNlYSxmYUdlbmRlcmxlc3M6aWVhLGZhQ2xvdWRTdW46cmVhLGZhQXJyb3dSaWdodDpYYixmYUhhbmRzaGFrZTpDb2UsZmFIYW5kc2hha2VBbHQ6b2VhLGZhSGFuZHNoYWtlU2ltcGxlOm5lYSxmYVBlcnNvblNraWluZzpJeGUsZmFTa2lpbmc6bGVhLGZhQnJpZGdlV2F0ZXI6Y2VhLGZhQnVpbGRpbmdOZ286ZGVhLGZhSWdsb286dWVhLGZhQ2lyY2xlRG9sbGFyVG9TbG90OkF4ZSxmYURvbmF0ZTpwZWEsZmFZOmhlYSxmYUZhY2VTbWlsZVdpbms6TnhlLGZhU21pbGVXaW5rOmZlYSxmYURpY2VGb3VyOm1lYSxmYUZhY2VHcmluU3F1aW50VGVhcnM6UnhlLGZhR3JpblNxdWludFRlYXJzOmdlYSxmYUZpbGVBdWRpbzpiZWEsZmFBcnJvd3NEb3duVG9MaW5lOnZlYSxmYUc6eGVhLGZhVmloYXJhOnllYSxmYUZsYWdDaGVja2VyZWQ6d2VhLGZhR2F1Z2VTaW1wbGU6VG9lLGZhR2F1Z2VTaW1wbGVNZWQ6a2VhLGZhVGFjaG9tZXRlckF2ZXJhZ2U6U2VhLGZhUmlnaHRMZWZ0Ok94ZSxmYUV4Y2hhbmdlQWx0Ol9lYSxmYVBpbGxzOk1lYSxmYUV4cGxvc2lvbjp6ZWEsZmFBcnJvd3NEb3duVG9QZW9wbGU6Q2VhLGZhVXNlcnNWaWV3ZmluZGVyOlRlYSxmYUNhck9uOiRlYSxmYVNsZWlnaDpEZWEsZmFEdW1iYmVsbDpMZWEsZmFCYWJ5Q2FycmlhZ2U6RnhlLGZhQ2FycmlhZ2VCYWJ5OkVlYSxmYUtpd2lCaXJkOlBlYSxmYUNhbGVuZGFyWG1hcms6QnhlLGZhQ2FsZW5kYXJUaW1lczpJZWEsZmFDaXJjbGVEb3duOkh4ZSxmYUFycm93QWx0Q2lyY2xlRG93bjpBZWEsZmFGaWxlTWVkaWNhbDpOZWEsZmFYbWFyazp6ZCxmYUNsb3NlOlJlYSxmYU11bHRpcGx5Ok9lYSxmYVJlbW92ZTpGZWEsZmFUaW1lczpCZWEsZmFTaGFwZXM6cXhlLGZhVHJpYW5nbGVDaXJjbGVTcXVhcmU6SGVhLGZhRGljZU9uZTpxZWEsZmFMb2NrT3BlbjpqZWEsZmFQZXBwZXJIb3Q6VmVhLGZhRHJvcGxldFNsYXNoOmp4ZSxmYVRpbnRTbGFzaDpVZWEsZmFEcm9wbGV0OlZ4ZSxmYVRpbnQ6V2VhLGZhRmlsZUxpbmVzOiRvZSxmYUZpbGVBbHQ6R2VhLGZhRmlsZVRleHQ6S2VhLGZhQ29tbWVudHNEb2xsYXI6WWVhLGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb246VXhlLGZhU2VhcmNoTG9jYXRpb246WmVhLGZhRmlsZUludm9pY2U6UWIsZmFQZW50YWdvbjpYZWEsZmFSZXB1YmxpY2FuOlFlYSxmYVNob3A6V3hlLGZhU3RvcmVBbHQ6SmVhLGZhRmlsbTpEb2UsZmFGaWxtQWx0OmV0YSxmYUZpbG1TaW1wbGU6dHRhLGZhQnVpbGRpbmdDaXJjbGVYbWFyazphdGEsZmFDb21tZW50czpzdGEsZmFUYWdzOml0YSxmYUd1bjpydGEsZmFDaXJjbGVDaGVjazpwZixmYUNoZWNrQ2lyY2xlOm90YSxmYVNjb3JwaW86bnRhLGZhSWRDYXJkQ2xpcDpHeGUsZmFJZENhcmRBbHQ6bHRhLGZhTW9vbjpjdGEsZmFPaWxXZWxsOmR0YSxmYVRhY2hvZ3JhcGhEaWdpdGFsOkt4ZSxmYURpZ2l0YWxUYWNob2dyYXBoOnV0YSxmYVRhYmxldDpZeGUsZmFUYWJsZXRBbmRyb2lkOnB0YSxmYVJ1YmxlU2lnbjpuUyxmYVJvdWJsZTpodGEsZmFSdWI6ZnRhLGZhUnVibGU6bXRhLGZhQ2xvc2VkQ2FwdGlvbmluZzpndGEsZmFQZW46YnRhLGZhUGxhbmU6dnRhLGZhSW1hZ2VzOnh0YSxmYU1vYmlsZVNjcmVlbjpaeGUsZmFNb2JpbGVBbmRyb2lkQWx0Onl0YSxmYUd1YXJhbmlTaWduOnd0YSxmYUJhZ1Nob3BwaW5nOlh4ZSxmYVNob3BwaW5nQmFnOmt0YSxmYUNpcmNsZVJpZ2h0OlF4ZSxmYUFycm93QWx0Q2lyY2xlUmlnaHQ6U3RhLGZhUGhvbmVWb2x1bWU6SnhlLGZhVm9sdW1lQ29udHJvbFBob25lOl90YSxmYUN1YmVzOk10YSxmYVBob25lOnp0YSxmYVRvcmlpR2F0ZTpDdGEsZmFCYWNvbjpUdGEsZmFQZXJzb25GYWxsaW5nQnVyc3Q6JHRhLGZhUXVvdGVSaWdodDpleWUsZmFRdW90ZVJpZ2h0QWx0OkR0YSxmYUhvdXNlTWVkaWNhbEZsYWc6THRhLGZhUHJlc2NyaXB0aW9uOkV0YSxmYURpY2VUaHJlZTpQdGEsZmFCdWlsZGluZ0xvY2s6SXRhLGZhSWRDYXJkOnR5ZSxmYURyaXZlcnNMaWNlbnNlOkF0YSxmYUNpcmNsZVBsYXk6YXllLGZhUGxheUNpcmNsZTpOdGEsZmFGYWNlTGF1Z2hCZWFtOnN5ZSxmYUxhdWdoQmVhbTpSdGEsZmFMZWFmOk90YSxmYUhvdXNlQ2hpbW5leVVzZXI6RnRhLGZhUm90YXRlUmlnaHQ6TG9lLGZhUmVkb0FsdDpCdGEsZmFSb3RhdGVGb3J3YXJkOkh0YSxmYVRvb3RoOnF0YSxmYUhvdXNlQ2hpbW5leVdpbmRvdzpqdGEsZmFNb3RvcmN5Y2xlOlZ0YSxmYUJhY2t3YXJkRmFzdDppeWUsZmFGYXN0QmFja3dhcmQ6VXRhLGZhQWRkcmVzc0Jvb2s6cnllLGZhQ29udGFjdEJvb2s6V3RhLGZhU2FpbGJvYXQ6R3RhLGZhQm9va0Jvb2ttYXJrOkt0YSxmYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQ6WXRhLGZhTWljcm9waG9uZUxpbmVzOm95ZSxmYU1pY3JvcGhvbmVBbHQ6WnRhLGZhUmVwbHlBbGw6bnllLGZhTWFpbFJlcGx5QWxsOlh0YSxmYVVuaXZlcnNhbEFjY2VzczpRdGEsZmFUb2lsZXRQYXBlcjpFb2UsZmFUb2lsZXRQYXBlckFsdDpKdGEsZmFUb2lsZXRQYXBlckJsYW5rOmVhYSxmYVZyQ2FyZGJvYXJkOnRhYSxmYVBpenphU2xpY2U6YWFhLGZhU3ByYXlDYW46c2FhLGZhVm9sdW1lTG93Omx5ZSxmYVZvbHVtZURvd246aWFhLGZhQ3Jvc3M6cmFhLGZhUGVyc29uOmN5ZSxmYU1hbGU6b2FhLGZhSG91cmdsYXNzOmR5ZSxmYUhvdXJnbGFzc0VtcHR5Om5hYSxmYUZpc2g6bGFhLGZhRHJ1bXN0aWNrQml0ZTpjYWEsZmFDaGFydFNpbXBsZTpkYWEsZmFBdG9tOnVhYSxmYVA6cGFhLGZhSmV0RmlnaHRlclVwOmhhYSxmYVBsdWdDaXJjbGVYbWFyazpmYWEsZmFTaGVldFBsYXN0aWM6bWFhLGZhVjpnYWEsZmFMaXN0OnV5ZSxmYUxpc3RTcXVhcmVzOmJhYSxmYVBpc2Nlczp2YWEsZmFTb2xhclBhbmVsOnhhYSxmYUxhbmRNaW5lT246eWFhLGZhSGVhZHBob25lczpQb2UsZmFIZWFkcGhvbmVzQWx0OndhYSxmYUhlYWRwaG9uZXNTaW1wbGU6a2FhLGZhQnVzOlNhYSxmYUZpbGVQb3dlcnBvaW50Ol9hYSxmYVF1b3RlTGVmdDpweWUsZmFRdW90ZUxlZnRBbHQ6TWFhLGZhQ2hldnJvbkRvd246emFhLGZhRWFydGhBc2lhOmh5ZSxmYUdsb2JlQXNpYTpDYWEsZmFDZW50U2lnbjpUYWEsZmFTaGllbGRDYXQ6JGFhLGZhU2Nob29sQ2lyY2xlQ2hlY2s6RGFhLGZhTWFydGluaUdsYXNzOmZ5ZSxmYUdsYXNzTWFydGluaUFsdDpMYWEsZmFQbHVnOkVhYSxmYVBhbm9yYW1hOlBhYSxmYUNsb2NrUm90YXRlTGVmdDpoZixmYUhpc3Rvcnk6SWFhLGZhSmFyV2hlYXQ6QWFhLGZhQ2xvdWRBcnJvd0Rvd246SW9lLGZhQ2xvdWREb3dubG9hZDpOYWEsZmFDbG91ZERvd25sb2FkQWx0OlJhYSxmYVRydWNrUmFtcEJveDpteWUsZmFUcnVja0xvYWRpbmc6T2FhLGZhQW5nbGVEb3duOkZhYSxmYVBsdWdDaXJjbGVDaGVjazpCYWEsZmFXaW5kb3dNYXhpbWl6ZTpIYWEsZmFIYW5kc0hvbGRpbmdDaXJjbGU6cWFhLGZhTG9jYXRpb25QaW46Z3llLGZhTWFwTWFya2VyOmphYSxmYUJvd2xpbmdCYWxsOlZhYSxmYUNhcnRGbGF0YmVkOmJ5ZSxmYURvbGx5RmxhdGJlZDpVYWEsZmFIb3VzZVVzZXI6dnllLGZhSG9tZVVzZXI6V2FhLGZhR2hvc3Q6R2FhLGZhQ29tbWVudE5vZGVzOkthYSxmYVBlcnNvbkFycm93RG93blRvTGluZTpZYWEsZmFQbHVnQ2lyY2xlUGx1czpaYWEsZmFQZXJzb25Td2ltbWluZzp4eWUsZmFTd2ltbWVyOlhhYSxmYUNvbW1lbnREb3RzOnl5ZSxmYUNvbW1lbnRpbmc6UWFhLGZhQ2hhcnRQaWU6d3llLGZhUGllQ2hhcnQ6SmFhLGZhRnJvZzplc2EsZmFXaW5lQm90dGxlOnRzYSxmYUluYm94OmFzYSxmYVNxdWFyZUg6a3llLGZhSFNxdWFyZTpzc2EsZmFIb3VzZU1lZGljYWw6aXNhLGZhQ2lyY2xlQ2hldnJvblJpZ2h0OlN5ZSxmYUNoZXZyb25DaXJjbGVSaWdodDpyc2EsZmFGaWxlQ3N2Om9zYSxmYUhhdENvd2JveTpuc2EsZmFGYWNlR3JpblRvbmd1ZVdpbms6X3llLGZhR3JpblRvbmd1ZVdpbms6bHNhLGZhTDpjc2EsZmFBcnJvd0Rvd25TaG9ydFdpZGU6QW9lLGZhU29ydEFtb3VudERlc2M6ZHNhLGZhU29ydEFtb3VudERvd25BbHQ6dXNhLGZhSG91cmdsYXNzSGFsZjpNeWUsZmFIb3VyZ2xhc3MyOnBzYSxmYVNwb29uOnp5ZSxmYVV0ZW5zaWxTcG9vbjpoc2EsZmFDcmVkaXRDYXJkOkN5ZSxmYUNyZWRpdENhcmRBbHQ6ZnNhLGZhRmlsZUludm9pY2VEb2xsYXI6SmIsZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nOlR5ZSxmYVBhc3RhZmFyaWFuaXNtOm1zYSxmYU1hcnRpbmlHbGFzc0NpdHJ1czokeWUsZmFDb2NrdGFpbDpnc2EsZmFCdWxsaG9ybjpic2EsZmFCb3hUaXNzdWU6dnNhLGZhTWF0dHJlc3NQaWxsb3c6eHNhLGZhQ2hldnJvbkxlZnQ6eXNhLGZhQ2xvdWRNb29uUmFpbjp3c2EsZmFBcnJvd0Rvd24xOTpOb2UsZmFTb3J0TnVtZXJpY0FzYzprc2EsZmFTb3J0TnVtZXJpY0Rvd246U3NhLGZhSGFuZFNwb2NrOl9zYSxmYVdhbmRNYWdpY1NwYXJrbGVzOkR5ZSxmYU1hZ2ljV2FuZFNwYXJrbGVzOk1zYSxmYUNvbW1lbnRNZWRpY2FsOnpzYSxmYUJlbGxTbGFzaDpDc2EsZmFIYW5kc2hha2VTbGFzaDpSb2UsZmFIYW5kc2hha2VBbHRTbGFzaDpUc2EsZmFIYW5kc2hha2VTaW1wbGVTbGFzaDokc2EsZmFCb3R0bGVXYXRlcjpEc2EsZmFEaWNlRDIwOkxzYSxmYUFycm93RG93blpBOk9vZSxmYVNvcnRBbHBoYURlc2M6RXNhLGZhU29ydEFscGhhRG93bkFsdDpQc2EsZmFCcnVzaDpJc2EsZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQ6QXNhLGZhQXJyb3dVcFNob3J0V2lkZTpMeWUsZmFTb3J0QW1vdW50VXBBbHQ6TnNhLGZhR3JpcFZlcnRpY2FsOkV5ZSxmYUdyaWRWZXJ0aWNhbDpSc2EsZmFDYXJUdW5uZWw6T3NhLGZhQ2hhcnRDb2x1bW46RnNhLGZhQ2Fwcmljb3JuOkJzYSxmYVRydWNrQXJyb3dSaWdodDpIc2EsZmFUdjpGb2UsZmFUZWxldmlzaW9uOnFzYSxmYVR2QWx0OmpzYSxmYVNlY3Rpb246VnNhLGZhUGVhY2U6VXNhLGZhU3RhcjpXc2EsZmFGbGFnOkdzYSxmYVRyaWFuZ2xlRXhjbGFtYXRpb246Qm9lLGZhRXhjbGFtYXRpb25UcmlhbmdsZTpLc2EsZmFXYXJuaW5nOllzYSxmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uOlpzYSxmYUdyYWR1YXRpb25DYXA6UHllLGZhTW9ydGFyQm9hcmQ6WHNhLGZhU3RvcmU6UXNhLGZhVXNlckFzdHJvbmF1dDpKc2EsZmFCdWlsZGluZ0ZsYWc6ZWlhLGZhTXVnU2F1Y2VyOkl5ZSxmYUNvZmZlZTp0aWEsZmFMZW1vbjphaWEsZmFDYXJhdmFuOnNpYSxmYVE6aWlhLGZhTG9jazpyaWEsZmFQYWludFJvbGxlcjpvaWEsZmFWb2x1bWVIaWdoOkF5ZSxmYVZvbHVtZVVwOm5pYSxmYUZvbGRlclBsdXM6bGlhLGZhTWVyY3VyeTpjaWEsZmFBbmNob3I6ZGlhLGZhU3F1YXJlUGFya2luZzpOeWUsZmFQYXJraW5nOnVpYSxmYUhhbnVraWFoOnBpYSxmYVJvdGF0ZUxlZnQ6bFMsZmFSb3RhdGVCYWNrOmhpYSxmYVJvdGF0ZUJhY2t3YXJkOmZpYSxmYVVuZG9BbHQ6bWlhLGZhSGVhZGluZzpSeWUsZmFIZWFkZXI6Z2lhLGZhQ3Jvc3NoYWlyczpiaWEsZmFDaXJjbGVOb2Rlczp2aWEsZmFXaW5kb3dSZXN0b3JlOnhpYSxmYVI6eWlhLGZhRmlsdGVyQ2lyY2xlWG1hcms6d2lhLGZhR29wdXJhbTpraWEsZmFIZWFydENpcmNsZU1pbnVzOlNpYSxmYVN0YXJPZkxpZmU6X2lhLGZhQnVzaW5lc3NUaW1lOk95ZSxmYUJyaWVmY2FzZUNsb2NrOk1pYSxmYUZpcmVFeHRpbmd1aXNoZXI6emlhLGZhQXJyb3dEb3duTG9uZzpGeWUsZmFMb25nQXJyb3dEb3duOkNpYSxmYVVzZXJNaW51czpUaWEsZmFNb25leUNoZWNrOiRpYSxmYUhvdXNlTGFwdG9wOkJ5ZSxmYUxhcHRvcEhvdXNlOkRpYSxmYURvd25sb2FkOkxpYSxmYVNhZ2l0dGFyaXVzOkVpYSxmYUNvdWNoOlBpYSxmYVJvYWRMb2NrOklpYSxmYVNjaXNzb3JzOkh5ZSxmYUN1dDpBaWEsZmFCdWc6ZXYsZmFBcnJvd1JpZ2h0RnJvbUJyYWNrZXQ6cXllLGZhU2lnbk91dDpOaWEsZmFIYW5kSG9sZGluZ0hhbmQ6UmlhLGZhU3Ryb29wd2FmZWw6T2lhLGZhQ2hpbGQ6RmlhLGZhSWNlQ3JlYW06QmlhLGZhQ29tcHV0ZXJNb3VzZTpqeWUsZmFNb3VzZTpIaWEsZmFGYXVjZXQ6cWlhLGZhQXdhcmQ6amlhLGZhUGVyc29uRHJvd25pbmc6VmlhLGZhQ2FtZXJhUm90YXRlOlVpYSxmYUZhY2VHcmluSGVhcnRzOlZ5ZSxmYUdyaW5IZWFydHM6V2lhLGZhRmlsZUZyYWdtZW50OkdpYSxmYVBlcnNvbk1pbGl0YXJ5UmlmbGU6S2lhLGZhVG9nZ2xlT246WWlhLGZhTHVuZ3NWaXJ1czpaaWEsZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGw6SG9lLGZhUGluZ1BvbmdQYWRkbGVCYWxsOlhpYSxmYVRhYmxlVGVubmlzOlFpYSxmYUJveGVzUGFja2luZzpKaWEsZmFQZXJzb25DaGFsa2JvYXJkOmVyYSxmYURpY2VUd286dHJhLGZhQXJyb3dSaWdodEFycm93TGVmdDpVeWUsZmFFeGNoYW5nZTphcmEsZmFGb290YmFsbDpXeWUsZmFGb290YmFsbEJhbGw6c3JhLGZhVHJ1Y2tNb25zdGVyOmlyYSxmYUFzdGVyaXNrOnJyYSxmYUJhdHRlcnlGdWxsOnFvZSxmYUJhdHRlcnk6b3JhLGZhQmF0dGVyeTU6bnJhLGZhQ2hpbGREcmVzczpscmEsZmFGYWNlS2lzc0JlYW06R3llLGZhS2lzc0JlYW06Y3JhLGZhVHJhc2hDYW5BcnJvd1VwOkt5ZSxmYVRyYXNoUmVzdG9yZUFsdDpkcmEsZmFGb250OnVyYSxmYUJvcmVIb2xlOnByYSxmYVZpcnVzQ292aWQ6aHJhLGZhRmlsZVBkZjpmcmEsZmFMYW5ndWFnZTptcmEsZmFTaGllbGRIYWx2ZWQ6WXllLGZhU2hpZWxkQWx0OmdyYSxmYUNhcmV0VXA6YnJhLGZhRmlsZVBlbjpaeWUsZmFGaWxlRWRpdDp2cmEsZmFQZXJzb25CaWtpbmc6WHllLGZhQmlraW5nOnhyYSxmYUJvb2tPcGVuUmVhZGVyOlF5ZSxmYUJvb2tSZWFkZXI6eXJhLGZhR2xhc3NXYXRlckRyb3BsZXQ6d3JhLGZhVG93ZXJCcm9hZGNhc3Q6SnllLGZhQnJvYWRjYXN0VG93ZXI6a3JhLGZhTWluaW1pemU6ZXdlLGZhQ29tcHJlc3NBcnJvd3NBbHQ6U3JhLGZhQXJyb3dSaWdodFRvQ2l0eTpfcmEsZmFMYXB0b3BNZWRpY2FsOk1yYSxmYUJyZWFkU2xpY2U6enJhLGZhR2xvYmU6Q3JhLGZhRm9sZGVyTWludXM6VHJhLGZhTWFza0ZhY2U6JHJhLGZhQm9uZzpEcmEsZmFSb2FkQnJpZGdlOkxyYSxmYUFycm93VXA5MTp0d2UsZmFTb3J0TnVtZXJpY1VwQWx0OkVyYSxmYU1vdW50YWluQ2l0eTpQcmEsZmFBcnJvd0Rvd245MTpqb2UsZmFTb3J0TnVtZXJpY0Rlc2M6SXJhLGZhU29ydE51bWVyaWNEb3duQWx0OkFyYSxmYUZhY2VHcmluV2lkZTphd2UsZmFHcmluQWx0Ok5yYSxmYVBvb3A6UnJhLGZhRGhhcm1hY2hha3JhOk9yYSxmYUJhdHRlcnlRdWFydGVyOnN3ZSxmYUJhdHRlcnkyOkZyYSxmYUFua2g6QnJhLGZhRGlhbW9uZDpIcmEsZmFTdWJzY3JpcHQ6cXJhLGZhUnVwZWVTaWduOml3ZSxmYVJ1cGVlOmpyYSxmYVBlcnNvblJpZmxlOlZyYSxmYUQ6VXJhLGZhU3F1YXJlTmZpOldyYSxmYVRlZXRoOkdyYSxmYU1hZ25pZnlpbmdHbGFzc0RvbGxhcjpyd2UsZmFTZWFyY2hEb2xsYXI6S3JhLGZhRHVtcHN0ZXJGaXJlOllyYSxmYVVwbG9hZDpacmEsZmFVc2VyU2xhc2g6Vm9lLGZhVXNlckFsdFNsYXNoOlhyYSxmYVVzZXJMYXJnZVNsYXNoOlFyYSxmYUFycm93TGVmdDpKcmEsZmFWaWFsVmlydXM6ZW9hLGZhQ2hlY2tEb3VibGU6dG9hLGZhUGF3OmFvYSxmYUhlbG1ldFNhZmV0eTpVb2UsZmFIYXJkSGF0OnNvYSxmYUhhdEhhcmQ6aW9hLGZhRTpyb2EsZmFGYWNlTGF1Z2hTcXVpbnQ6b3dlLGZhTGF1Z2hTcXVpbnQ6b29hLGZhRG93bkxlZnRBbmRVcFJpZ2h0VG9DZW50ZXI6bndlLGZhQ29tcHJlc3NBbHQ6bm9hLGZhR2lmdHM6bG9hLGZhQmVkOmNvYSxmYU1vbmV5QmlsbFRyYW5zZmVyOmRvYSxmYVBlcnNvblJ1bm5pbmc6bHdlLGZhUnVubmluZzp1b2EsZmFDaXJjbGVDaGV2cm9uRG93bjpjd2UsZmFDaGV2cm9uQ2lyY2xlRG93bjpwb2EsZmFVc2VyTnVyc2U6aG9hLGZhRmFjZUtpc3NXaW5rSGVhcnQ6ZHdlLGZhS2lzc1dpbmtIZWFydDpmb2EsZmFGaWxsOm1vYSxmYU1vbmV5QmlsbDFXYXZlOnV3ZSxmYU1vbmV5QmlsbFdhdmVBbHQ6Z29hLGZhTGFuZG1hcms6Ym9hLGZhTXVzaWM6dm9hLGZhQm9va01lZGljYWw6eG9hLGZhU2h1ZmZsZTpwd2UsZmFSYW5kb206eW9hLGZhVW5kZXJsaW5lOndvYSxmYUJ1aWxkaW5nVXNlcjprb2EsZmFSb2JvdDpTb2EsZmFQbHVzOmZmLGZhQWRkOl9vYSxmYUNvcHk6dHYsZmFDaGVzc0tpbmc6TW9hLGZhSG91c2VGbG9vZFdhdGVyOnpvYSxmYUJpdGNvaW5TaWduOkNvYSxmYUJveDpUb2EsZmFTcXVhcmVQbHVzOmh3ZSxmYVBsdXNTcXVhcmU6JG9hLGZhQXJyb3dzTGVmdFJpZ2h0OmZ3ZSxmYUFycm93c0g6RG9hLGZhRmFuOkxvYSxmYUNyb3c6RW9hLGZhRmlsZUNpcmNsZUNoZWNrOlBvYSxmYUxpbmtTbGFzaDpjUyxmYUNoYWluQnJva2VuOklvYSxmYUNoYWluU2xhc2g6QW9hLGZhVW5saW5rOk5vYSxmYUFycm93Um90YXRlUmlnaHQ6ZFMsZmFBcnJvd1JpZ2h0Um90YXRlOlJvYSxmYUFycm93Um90YXRlRm9yd2FyZDpPb2EsZmFSZWRvOkZvYSxmYVBlbkNsaXA6bXdlLGZhUGVuQWx0OkJvYSxmYURvb3JDbG9zZWQ6SG9hLGZhQXJyb3dEb3duV2lkZVNob3J0OldvZSxmYVNvcnRBbW91bnRBc2M6cW9hLGZhU29ydEFtb3VudERvd246am9hLGZhQ2FyZXREb3duOlZvYSxmYUs6VW9hLGZhQ2hlY2tUb1Nsb3Q6Z3dlLGZhVm90ZVllYTpXb2EsZmFGaXNoRmluczpHb2EsZmFDb21wcmVzczpLb2EsZmFBcnJvd1VwQVo6YndlLGZhU29ydEFscGhhVXA6WW9hLGZhVXNlckdyYWR1YXRlOlpvYSxmYUZpbGVDb2RlOlhvYSxmYVNvYXA6UW9hLGZhUmVjeWNsZTpKb2EsZmFGYWNlR3Jpbldpbms6dndlLGZhR3Jpbldpbms6ZW5hLGZhV2F0ZXJMYWRkZXI6R29lLGZhTGFkZGVyV2F0ZXI6dG5hLGZhU3dpbW1pbmdQb29sOmFuYSxmYUdlbWluaTpzbmEsZmFUb3dlckNlbGw6aW5hLGZhQ29sb25TaWduOnJuYSxmYUxhcHRvcEZpbGU6b25hLGZhQmFoYWk6eHdlLGZhSGF5a2FsOm5uYSxmYU1vbmV5QmlsbDE6eXdlLGZhTW9uZXlCaWxsQWx0OmxuYSxmYUNsb3VkQm9sdDp3d2UsZmFUaHVuZGVyc3Rvcm06Y25hLGZhRXRoZXJuZXQ6ZG5hLGZhSHJ5dm5pYVNpZ246a3dlLGZhSHJ5dm5pYTp1bmEsZmFFeWVTbGFzaDphdixmYUNhcnRGbGF0YmVkU3VpdGNhc2U6U3dlLGZhTHVnZ2FnZUNhcnQ6cG5hLGZhUmFkaWF0aW9uOmhuYSxmYUZpbGVXb3JkOmZuYSxmYUJlZFB1bHNlOl93ZSxmYVByb2NlZHVyZXM6bW5hLGZhVGVudHM6Z25hLGZhTXVnSG90OnN2LGZhQm9sdDpNd2UsZmFaYXA6Ym5hLGZhSmFyOnZuYSxmYVRydWNrUGxhbmU6eG5hLGZhSGFuZEhvbGRpbmdIZWFydDp5bmEsZmFBcnJvd1JvdGF0ZUxlZnQ6TmIsZmFBcnJvd0xlZnRSb3RhdGU6d25hLGZhQXJyb3dSb3RhdGVCYWNrOmtuYSxmYUFycm93Um90YXRlQmFja3dhcmQ6U25hLGZhVW5kbzpfbmEsZmFGYWNlQW5ncnk6endlLGZhQW5ncnk6TW5hLGZhQnVyc3Q6em5hLGZhWjpDbmEsZmFCYW5kYWdlOkN3ZSxmYUJhbmRBaWQ6VG5hLGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbjokbmEsZmFCdXNTaWRlOkRuYSxmYUJ1Z3M6TG5hLGZhQmVlck11Z0VtcHR5OlR3ZSxmYUJlZXI6RW5hLGZhUGVyc29uQ2lyY2xlQ2hlY2s6UG5hLGZhU3RhcGxlcjpJbmEsZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazpBbmEsZmFOYWlyYVNpZ246Tm5hLGZhV2lmaTpLb2UsZmFXaWZpMzpSbmEsZmFXaWZpU3Ryb25nOk9uYSxmYU1vbmV5Q2hlY2tEb2xsYXI6bWYsZmFNb25leUNoZWNrQWx0OkZuYSxmYUV5ZUxvd1Zpc2lvbjokd2UsZmFMb3dWaXNpb246Qm5hLGZhQ2lyY2xlQXJyb3dVcDpEd2UsZmFBcnJvd0NpcmNsZVVwOkhuYSxmYUNhbWVyYVJldHJvOnFuYSxmYUNhcHN1bGVzOmpuYSxmYVBvbzpWbmEsZmFWb2x1bWU6THdlLGZhVm9sdW1lTWVkaXVtOlVuYSxmYUVsZXZhdG9yOlduYSxmYVRhZzpHbmEsZmFGaWxlQ2lyY2xlTWludXM6S25hLGZhRG93bkxvbmc6RXdlLGZhTG9uZ0Fycm93QWx0RG93bjpZbmEsZmFDb21wYWN0RGlzYzpabmEsZmFTdWl0Y2FzZVJvbGxpbmc6WG5hLGZhQm9va1F1cmFuOlB3ZSxmYVF1cmFuOlFuYSxmYVBob25lU2xhc2g6Sm5hLGZhUm9hZENpcmNsZUNoZWNrOmVsYSxmYVNob3BMb2NrOnRsYSxmYUltYWdlUG9ydHJhaXQ6SXdlLGZhUG9ydHJhaXQ6YWxhLGZhQnJpZGdlTG9jazpzbGEsZmFIYW1tZXI6aWxhLGZhQXJyb3dVcDE5OkF3ZSxmYVNvcnROdW1lcmljVXA6cmxhLGZhQ2hlc3NLbmlnaHQ6b2xhLGZhSG91c2VGbG9vZFdhdGVyQ2lyY2xlQXJyb3dSaWdodDpubGEsZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOmdmLGZhRXh0ZXJuYWxMaW5rOmxsYSxmYUFycm93RG93blVwQWNyb3NzTGluZTpjbGEsZmFGYWNlR3JpbkJlYW06TndlLGZhR3JpbkJlYW06ZGxhLGZhUmVjdGFuZ2xlQWQ6UndlLGZhQWQ6dWxhLGZhQm9va1RhbmFraDpPd2UsZmFUYW5ha2g6cGxhLGZhSG90VHViUGVyc29uOkZ3ZSxmYUhvdFR1YjpobGEsZmFGaWxlSGFsZkRhc2hlZDpmbGEsZmFPdXRkZW50OkJ3ZSxmYURlZGVudDptbGEsZmFIYW5kUGVhY2U6Z2xhLGZhSGVhZFNpZGVWaXJ1czpibGEsZmFDb21wYXNzOnZsYSxmYVBlbk5pYjp4bGEsZmFUZW50QXJyb3dzRG93bjp5bGEsZmFGb3J3YXJkRmFzdDpId2UsZmFGYXN0Rm9yd2FyZDp3bGEsZmFDcm9wOmtsYSxmYVdoaXNrZXlHbGFzczpxd2UsZmFHbGFzc1doaXNrZXk6U2xhLGZhU3F1YXJlOl9sYSxmYUZhY2VHcmluOmp3ZSxmYUdyaW46TWxhLGZhRmlsZUNvbnRyYWN0OnpsYSxmYUFuZ2xlVXA6Q2xhLGZhRmFjZVNtaWxlOlZ3ZSxmYVNtaWxlOlRsYSxmYVBlcnNvbkRyZXNzQnVyc3Q6JGxhLGZhRGl2aWRlOkRsYSxmYUNvZGVGb3JrOkxsYSxmYUhvdXNlRmxhZzpFbGEsZmFCdWlsZGluZ0NvbHVtbnM6UmIsZmFCYW5rOlBsYSxmYUluc3RpdHV0aW9uOklsYSxmYU11c2V1bTpBbGEsZmFVbml2ZXJzaXR5Ok5sYSxmYVJ1ZzpSbGEsZmFDb2RlTWVyZ2U6T2xhLGZhSG91c2VUc3VuYW1pOkZsYSxmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0OkJsYSxmYVVtYnJlbGxhOkhsYSxmYUhpbGxSb2Nrc2xpZGU6cWxhLGZhVXNlclNlY3JldDpqbGEsZmFQYWdlcjpWbGEsZmFCcmllZmNhc2U6VWxhLGZhVHJvd2VsQnJpY2tzOldsYSxmYVNvY2tzOkdsYSxmYVQ6S2xhLGZhTWljcm9jaGlwOllsYSxmYVRydWNrTWVkaWNhbDpVd2UsZmFBbWJ1bGFuY2U6WmxhLGZhT206WGxhLGZhTW9zcXVpdG9OZXQ6UWxhLGZhUHJlc2NyaXB0aW9uQm90dGxlOkpsYSxmYVVzZXJzR2VhcjpXd2UsZmFVc2Vyc0NvZzplY2EsZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb246dGNhLGZhUGF1c2U6YWNhLGZhU3RhZmZTbmFrZTp1UyxmYVJvZEFzY2xlcGl1czpzY2EsZmFSb2RTbmFrZTppY2EsZmFTdGFmZkFlc2N1bGFwaXVzOnJjYSxmYVBpZ2d5QmFuazpvY2EsZmFNb251bWVudDpuY2EsZmFBbmdsZXNSaWdodDpHd2UsZmFBbmdsZURvdWJsZVJpZ2h0OmxjYSxmYURlc2t0b3A6YmYsZmFEZXNrdG9wQWx0OmNjYSxmYVBsYW5lQ2lyY2xlWG1hcms6ZGNhLGZhUmV0d2VldDp1Y2EsZmFVc2VyR2VhcjpLd2UsZmFVc2VyQ29nOnBjYSxmYUJvcmRlckFsbDpoY2EsZmFDb2luczpmY2EsZmFNYXJzU3Ryb2tlOm1jYSxmYUhhbmRzaGFrZUFuZ2xlOll3ZSxmYUhhbmRzSGVscGluZzpnY2EsZmFBcnJvd0Rvd246YmNhLGZhTG9jYXRpb25Eb3Q6WndlLGZhTWFwTWFya2VyQWx0OnZjYSxmYVBsdWdDaXJjbGVFeGNsYW1hdGlvbjp4Y2EsZmFDb29raWVCaXRlOnljYSxmYVNjcmV3ZHJpdmVyV3JlbmNoOlh3ZSxmYVRvb2xzOndjYSxmYUluZGVudDprY2EsZmFCYXJzOlF3ZSxmYU5hdmljb246U2NhLGZhSGFuZHNQcmF5aW5nOkp3ZSxmYVByYXlpbmdIYW5kczpfY2EsZmFWaXJ1c2VzOk1jYSxmYVNjaG9vbEZsYWc6emNhLGZhVHJhZGVtYXJrOkNjYSxmYUZpcmVCdXJuZXI6VGNhLGZhRmFjZVNtaWxlQmVhbTpla2UsZmFTbWlsZUJlYW06JGNhLGZhVGVudEFycm93TGVmdFJpZ2h0OkRjYSxmYVJvdXRlOkxjYSxmYUFuZ2xlc1VwOnRrZSxmYUFuZ2xlRG91YmxlVXA6RWNhLGZhQnVja2V0OlBjYSxmYUxlc3NUaGFuRXF1YWw6SWNhLGZhRm9sZGVyQ2xvc2VkOkFjYSxmYVBlcnNvblRocm91Z2hXaW5kb3c6TmNhLGZhU2Nob29sTG9jazpSY2EsZmFQZXJzb25CdXJzdDpPY2EsZmFMZWZ0TG9uZzpha2UsZmFMb25nQXJyb3dBbHRMZWZ0OkZjYSxmYUxvY2F0aW9uQ3Jvc3NoYWlyczpza2UsZmFMb2NhdGlvbjpCY2EsZmFQZXJzb25Eb3RzRnJvbUxpbmU6aWtlLGZhRGlhZ25vc2VzOkhjYSxmYUdhdWdlU2ltcGxlSGlnaDpZb2UsZmFUYWNob21ldGVyOnFjYSxmYVRhY2hvbWV0ZXJGYXN0OmpjYSxmYUFuZ2xlc0xlZnQ6cmtlLGZhQW5nbGVEb3VibGVMZWZ0OlZjYSxmYVVwRG93bjpva2UsZmFBcnJvd3NBbHRWOlVjYSxmYUJhdHRlcnlFbXB0eTpua2UsZmFCYXR0ZXJ5MDpXY2EsZmFLZXlib2FyZDpHY2EsZmFDb29raWU6S2NhLGZhU3RvcHdhdGNoOlljYSxmYUVqZWN0OlpjYSxmYVNhdGVsbGl0ZURpc2g6WGNhLGZhRmFjZVJvbGxpbmdFeWVzOmxrZSxmYU1laFJvbGxpbmdFeWVzOlFjYSxmYUxpc3RDaGVjazpja2UsZmFUYXNrczpKY2EsZmFTYWNrWG1hcms6ZTFhLGZhSGFzaHRhZzp0MWEsZmFUcmFpbjphMWEsZmFHYW1lcGFkOnMxYSxmYUZpbGVFeHBvcnQ6ZGtlLGZhQXJyb3dSaWdodEZyb21GaWxlOmkxYSxmYUZhY2VHcmltYWNlOnVrZSxmYUdyaW1hY2U6cjFhLGZhVHJhaW5TdWJ3YXk6cGtlLGZhU3Vid2F5Om8xYSxmYUNpcmNsZURvdDpoa2UsZmFEb3RDaXJjbGU6bjFhLGZhT2JqZWN0R3JvdXA6bDFhLGZhU2hpcDpjMWEsZmFDOmQxYSxmYVNxdWFyZVBob25lOmZrZSxmYVBob25lU3F1YXJlOnUxYSxmYVJ1bGVyQ29tYmluZWQ6cDFhLGZhQXJyb3dzUm90YXRlOlpvZSxmYVJlZnJlc2g6aDFhLGZhU3luYzpmMWEsZmFQZXJzb25EcmVzczpta2UsZmFGZW1hbGU6bTFhLGZhQm9va09wZW46ZzFhLGZhRm9sZGVyVHJlZTpiMWEsZmFWaXJnbzp2MWEsZmFCb3hBcmNoaXZlOmdrZSxmYUFyY2hpdmU6eDFhLGZhVGVudEFycm93RG93blRvTGluZTp5MWEsZmFRcmNvZGU6dzFhLGZhRHJhZ29uOmsxYSxmYUhvdXJnbGFzc0VuZDpia2UsZmFIb3VyZ2xhc3MzOlMxYSxmYUdyaXA6aGgsZmFHcmlkSG9yaXpvbnRhbDpfMWEsZmFHcmlwSG9yaXpvbnRhbDpNMWEsZmFCb3JkZXJUb3BMZWZ0OnZrZSxmYUJvcmRlclN0eWxlOnoxYSxmYUxpc3RVbDp4a2UsZmFMaXN0RG90czpDMWEsZmFQZW9wbGVSb2JiZXJ5OlQxYSxmYU1vYmlsZUJ1dHRvbjokMWEsZmFBcnJvd0Rvd25BWjpYb2UsZmFTb3J0QWxwaGFBc2M6RDFhLGZhU29ydEFscGhhRG93bjpMMWEsZmFNb25leUJpbGw6RTFhLGZhQ2lyY2xlTWludXM6eWtlLGZhTWludXNDaXJjbGU6UDFhLGZhQXJyb3dQb2ludGVyOndrZSxmYU1vdXNlUG9pbnRlcjpJMWEsZmFTcXVhcmVTaGFyZU5vZGVzOmtrZSxmYVNoYXJlQWx0U3F1YXJlOkExYSxmYVRhYmxlQ2VsbHNMYXJnZTpTa2UsZmFUaExhcmdlOk4xYSxmYUNhdDpSMWEsZmFDYWxlbmRhcldlZWs6TzFhLGZhQ29kZUNvbXBhcmU6RjFhLGZhTGVvOkIxYSxmYVJvYWRDaXJjbGVYbWFyazpIMWEsZmFQYWxsZXQ6cTFhLGZhQ2FrZUNhbmRsZXM6UW9lLGZhQmlydGhkYXlDYWtlOmoxYSxmYUNha2U6VjFhLGZhQnVnU2xhc2g6VTFhLGZhVGFycDpXMWEsZmFEaWFncmFtUHJlZGVjZXNzb3I6RzFhLGZhRmFjZUZsdXNoZWQ6X2tlLGZhRmx1c2hlZDpLMWEsZmFEaWFncmFtTmV4dDpZMWEsZmFBbmNob3JDaXJjbGVYbWFyazpaMWEsZmFQZXJzb25DaXJjbGVYbWFyazpYMWEsZmFTcGE6UTFhLGZhQXJpZXM6SjFhLGZhQmFyc1Byb2dyZXNzOk1rZSxmYVRhc2tzQWx0OmUyYSxmYUhlYXJ0Q2lyY2xlQ2hlY2s6dDJhLGZhTWFyc1N0cm9rZVJpZ2h0OnprZSxmYU1hcnNTdHJva2VIOmEyYSxmYVRvd2VyT2JzZXJ2YXRpb246czJhLGZhU3RlcmxpbmdTaWduOkpvZSxmYUdicDppMmEsZmFQb3VuZFNpZ246cjJhLGZhRmF1Y2V0RHJpcDpvMmEsZmFDaXJjbGVJbmZvOnZmLGZhSW5mb0NpcmNsZTpuMmEsZmFGZWF0aGVyOmwyYSxmYUJvd2xSaWNlOmMyYSxmYVN0YXJIYWxmU3Ryb2tlOkNrZSxmYVN0YXJIYWxmQWx0OmQyYSxmYVRlbXBlcmF0dXJlQXJyb3dEb3duOlRrZSxmYVRlbXBlcmF0dXJlRG93bjp1MmEsZmFNYXNrVmVudGlsYXRvcjpwMmEsZmFGaWxlVmlkZW86aDJhLGZhQXJyb3dUcmVuZERvd246ZjJhLGZhT2lsQ2FuOm0yYSxmYVBlb3BsZUNhcnJ5Qm94OiRrZSxmYVBlb3BsZUNhcnJ5OmcyYSxmYUNoYWlyOmIyYSxmYVdpbmQ6djJhLGZhTGF5ZXJHcm91cDp4MmEsZmFIZWFkU2lkZU1hc2s6eTJhLGZhSGFuZHM6ZW5lLGZhU2lnbkxhbmd1YWdlOncyYSxmYVNpZ25pbmc6azJhLGZhVGFibGV0czpTMmEsZmFXZWlnaHRIYW5naW5nOl8yYSxmYURpY2U6TTJhLGZhU2hvcFNsYXNoOkRrZSxmYVN0b3JlQWx0U2xhc2g6ejJhLGZhU29ydERvd246TGtlLGZhU29ydERlc2M6QzJhLGZhUGVzZXRhU2lnbjpUMmEsZmFUYWJsZXRTY3JlZW5CdXR0b246RWtlLGZhVGFibGV0QWx0OiQyYSxmYUhhbmRIb2xkaW5nRG9sbGFyOlBrZSxmYUhhbmRIb2xkaW5nVXNkOkQyYSxmYVNoaWVsZDpJa2UsZmFTaGllbGRCbGFuazpMMmEsZmFGYWNlTGF1Z2g6QWtlLGZhTGF1Z2g6RTJhLGZhSGFuZHNIb2xkaW5nOlAyYSxmYUNhcnRTaG9wcGluZzpOa2UsZmFTaG9wcGluZ0NhcnQ6STJhLGZhT2N0YWdvbjpBMmEsZmFIYW5kUG9pbnRlcjpOMmEsZmFSZWdpc3RlcmVkOlIyYSxmYUhvdXNlU2lnbmFsOk8yYSxmYUJhbmdsYWRlc2hpVGFrYVNpZ246RjJhfX0pO3ZhciBwUyxPa2U9ZygoKT0+e3BTPXt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIiwic3Ryb2tlLXdpZHRoIjoyLCJzdHJva2UtbGluZWNhcCI6InJvdW5kIiwic3Ryb2tlLWxpbmVqb2luIjoicm91bmQifX0pO3ZhciBCMmEsajEsRmtlPWcoKCk9PntPa2UoKTtCMmE9aSgoW3MsZSx0XSk9PntsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixzKTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChyPT57YS5zZXRBdHRyaWJ1dGUocixTdHJpbmcoZVtyXSkpfSksdD8ubGVuZ3RoJiZ0LmZvckVhY2gocj0+e2xldCBuPUIyYShyKTthLmFwcGVuZENoaWxkKG4pfSksYX0sImNyZWF0ZVNWR0VsZW1lbnQiKSxqMT1pKChzLGU9e30pPT57bGV0IGE9ey4uLnBTLC4uLmV9O3JldHVybiBCMmEoWyJzdmciLGEsc10pfSwiY3JlYXRlRWxlbWVudCIpfSk7dmFyIEJrZSxIMmE9ZygoKT0+e0JrZT1pKHM9Pntmb3IobGV0IGUgaW4gcylpZihlLnN0YXJ0c1dpdGgoImFyaWEtIil8fGU9PT0icm9sZSJ8fGU9PT0idGl0bGUiKXJldHVybiEwO3JldHVybiExfSwiaGFzQTExeVByb3AiKX0pO3ZhciBIa2UscTJhPWcoKCk9PntIa2U9aSgoLi4ucyk9PnMuZmlsdGVyKChlLHQsYSk9PiEhZSYmZS50cmltKCkhPT0iIiYmYS5pbmRleE9mKGUpPT09dCkuam9pbigiICIpLnRyaW0oKSwibWVyZ2VDbGFzc2VzIil9KTt2YXIgcWtlLGoyYT1nKCgpPT57cWtlPWkocz0+cy5yZXBsYWNlKC9eKFtBLVpdKXxbXHMtX10rKFx3KS9nLChlLHQsYSk9PmE/YS50b1VwcGVyQ2FzZSgpOnQudG9Mb3dlckNhc2UoKSksInRvQ2FtZWxDYXNlIil9KTt2YXIgamtlLFYyYT1nKCgpPT57ajJhKCk7amtlPWkocz0+e2xldCBlPXFrZShzKTtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpfSwidG9QYXNjYWxDYXNlIil9KTt2YXIgVTJhLFZrZSx0bmUsVzJhPWcoKCk9PntGa2UoKTtPa2UoKTtIMmEoKTtxMmEoKTtWMmEoKTtVMmE9aShzPT5BcnJheS5mcm9tKHMuYXR0cmlidXRlcykucmVkdWNlKChlLHQpPT4oZVt0Lm5hbWVdPXQudmFsdWUsZSkse30pLCJnZXRBdHRycyIpLFZrZT1pKHM9PnR5cGVvZiBzPT0ic3RyaW5nIj9zOiFzfHwhcy5jbGFzcz8iIjpzLmNsYXNzJiZ0eXBlb2Ygcy5jbGFzcz09InN0cmluZyI/cy5jbGFzcy5zcGxpdCgiICIpOnMuY2xhc3MmJkFycmF5LmlzQXJyYXkocy5jbGFzcyk/cy5jbGFzczoiIiwiZ2V0Q2xhc3NOYW1lcyIpLHRuZT1pKChzLHtuYW1lQXR0cjplLGljb25zOnQsYXR0cnM6YX0pPT57bGV0IHI9cy5nZXRBdHRyaWJ1dGUoZSk7aWYocj09bnVsbClyZXR1cm47bGV0IG49amtlKHIpLG89dFtuXTtpZighbylyZXR1cm4gY29uc29sZS53YXJuKGAke3Mub3V0ZXJIVE1MfSBpY29uIG5hbWUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcHJvdmlkZWQgaWNvbnMgb2JqZWN0LmApO2xldCBsPVUyYShzKSxwPUJrZShsKT97fTp7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGQ9ey4uLnBTLCJkYXRhLWx1Y2lkZSI6ciwuLi5wLC4uLmEsLi4ubH0sdT1Wa2UobCksYz1Wa2UoYSksYj1Ia2UoImx1Y2lkZSIsYGx1Y2lkZS0ke3J9YCwuLi51LC4uLmMpO2ImJk9iamVjdC5hc3NpZ24oZCx7Y2xhc3M6Yn0pO2xldCB2PWoxKG8sZCk7cmV0dXJuIHMucGFyZW50Tm9kZT8ucmVwbGFjZUNoaWxkKHYscyl9LCJyZXBsYWNlRWxlbWVudCIpfSk7dmFyIGhTLFVrZT1nKCgpPT57aFM9W1sicGF0aCIse2Q6Im0xNCAxMiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciBmUyxXa2U9ZygoKT0+e2ZTPVtbInBhdGgiLHtkOiJtMTQgMTEgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgbVMsR2tlPWcoKCk9PnttUz1bWyJwYXRoIix7ZDoibTE1IDE2IDIuNTM2LTcuMzI4YTEuMDIgMS4wMiAxIDAgMSAxLjkyOCAwTDIyIDE2In1dLFsicGF0aCIse2Q6Ik0xNS42OTcgMTRoNS42MDYifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dfSk7dmFyIGdTLEtrZT1nKCgpPT57Z1M9W1siY2lyY2xlIix7Y3g6IjE2IixjeToiNCIscjoiMSJ9XSxbInBhdGgiLHtkOiJtMTggMTkgMS03LTYgMSJ9XSxbInBhdGgiLHtkOiJtNSA4IDMtMyA1LjUgMy0yLjM2IDMuNSJ9XSxbInBhdGgiLHtkOiJNNC4yNCAxNC41YTUgNSAwIDAgMCA2Ljg4IDYifV0sWyJwYXRoIix7ZDoiTTEzLjc2IDE3LjVhNSA1IDAgMCAwLTYuODgtNiJ9XV19KTt2YXIgYlMsWWtlPWcoKCk9PntiUz1bWyJwYXRoIix7ZDoiTTIyIDEyaC0yLjQ4YTIgMiAwIDAgMC0xLjkzIDEuNDZsLTIuMzUgOC4zNmEuMjUuMjUgMCAwIDEtLjQ4IDBMOS4yNCAyLjE4YS4yNS4yNSAwIDAgMC0uNDggMGwtMi4zNSA4LjM2QTIgMiAwIDAgMSA0LjQ5IDEySDIifV1dfSk7dmFyIHZTLFprZT1nKCgpPT57dlM9W1sicGF0aCIse2Q6Ik0xOCAxNy41YTIuNSAyLjUgMCAxIDEtNCAyLjAzVjEyIn1dLFsicGF0aCIse2Q6Ik02IDEySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOGgxMiJ9XSxbInBhdGgiLHtkOiJNNi42IDE1LjU3MkEyIDIgMCAxIDAgMTAgMTd2LTUifV1dfSk7dmFyIHhTLFhrZT1nKCgpPT57eFM9W1sicGF0aCIse2Q6Ik01IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0xIn1dLFsicGF0aCIse2Q6Im0xMiAxNSA1IDZIN1oifV1dfSk7dmFyIHhmLFFrZT1nKCgpPT57eGY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoibTkgMTMgMiAyIDQtNCJ9XV19KTt2YXIgeWYsSmtlPWcoKCk9Pnt5Zj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXX0pO3ZhciB5UyxlU2U9ZygoKT0+e3lTPVtbInBhdGgiLHtkOiJNNi44NyA2Ljg3YTggOCAwIDEgMCAxMS4yNiAxMS4yNiJ9XSxbInBhdGgiLHtkOiJNMTkuOSAxNC4yNWE4IDggMCAwIDAtOS4xNS05LjE1In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4yNiAxOC42NyA0IDIxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTQgNCAyIDYifV1dfSk7dmFyIHdmLHRTZT1nKCgpPT57d2Y9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XV19KTt2YXIgd1MsYVNlPWcoKCk9Pnt3Uz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMTIgOXY0bDIgMiJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XV19KTt2YXIga1Msc1NlPWcoKCk9PntrUz1bWyJwYXRoIix7ZDoiTTExIDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjFjMC0yLjUgMi0yLjUgMi01In1dLFsicGF0aCIse2Q6Im0xOSA4LS44IDNhMS4yNSAxLjI1IDAgMCAxLTEuMiAxSDdhMS4yNSAxLjI1IDAgMCAxLTEuMi0xTDUgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM2ExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNiAyMWMwLTIuNSAyLTIuNSAyLTUifV1dfSk7dmFyIFNTLGlTZT1nKCgpPT57U1M9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjExIDMgMTEgMTEgMTQgOCAxNyAxMSAxNyAzIn1dXX0pO3ZhciBfUyxyU2U9ZygoKT0+e19TPVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNCJ9XSxbInBhdGgiLHtkOiJNMTAgOFY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjQifV0sWyJwYXRoIix7ZDoiTTIwIDE2djFhMiAyIDAgMCAxLTIgMmgtMmEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0xNCA4VjdjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgTVMsb1NlPWcoKCk9PntNUz1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTggMTBINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0In1dLFsicGF0aCIse2Q6Ik0xNiAxMGg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00In1dLFsicGF0aCIse2Q6Ik04IDIwSDdhMiAyIDAgMCAxLTItMnYtMmMwLTEuMS45LTIgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDFhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTEifV1dfSk7dmFyIHpTLG5TZT1nKCgpPT57elM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiOSIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV1dfSk7dmFyIENTLGxTZT1nKCgpPT57Q1M9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNSJ9XSxbInBhdGgiLHtkOiJNMTcgN1YyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0zIn1dLFsicGF0aCIse2Q6Ik03IDVWMiJ9XV19KTt2YXIgVFMsY1NlPWcoKCk9PntUUz1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjkiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJWMiJ9XV19KTt2YXIgJFMsZFNlPWcoKCk9PnskUz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIwIDJ2MjAifV1dfSk7dmFyIERTLHVTZT1nKCgpPT57RFM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MjAifV1dfSk7dmFyIExTLHBTZT1nKCgpPT57TFM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIwIn1dXX0pO3ZhciBFUyxoU2U9ZygoKT0+e0VTPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjEyIix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMnYyMCJ9XV19KTt2YXIgUFMsZlNlPWcoKCk9PntQUz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjYiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMnYyMCJ9XV19KTt2YXIgSVMsbVNlPWcoKCk9PntJUz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjkiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDIyVjIifV0sWyJwYXRoIix7ZDoiTTIwIDIyVjIifV1dfSk7dmFyIEFTLGdTZT1nKCgpPT57QVM9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDJIMiJ9XV19KTt2YXIgTlMsYlNlPWcoKCk9PntOUz1bWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiNiIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI2Iix4OiI2Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXX0pO3ZhciBSUyx2U2U9ZygoKT0+e1JTPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE1Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAydjIwIn1dXX0pO3ZhciBPUyx4U2U9ZygoKT0+e09TPVtbInBhdGgiLHtkOiJNMjIgMTdoLTMifV0sWyJwYXRoIix7ZDoiTTIyIDdoLTUifV0sWyJwYXRoIix7ZDoiTTUgMTdIMiJ9XSxbInBhdGgiLHtkOiJNNyA3SDIifV0sWyJyZWN0Iix7eDoiNSIseToiMTQiLHdpZHRoOiIxNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI0Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIEZTLHlTZT1nKCgpPT57RlM9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDIwIn1dXX0pO3ZhciBCUyx3U2U9ZygoKT0+e0JTPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMiA0aDIwIn1dXX0pO3ZhciBIUyxrU2U9ZygoKT0+e0hTPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV19KTt2YXIgcVMsU1NlPWcoKCk9PntxUz1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjEyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjJoMjAifV1dfSk7dmFyIGpTLF9TZT1nKCgpPT57alM9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJoMjAifV1dfSk7dmFyIFZTLE1TZT1nKCgpPT57VlM9W1sicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMjIgNEgyIn1dXX0pO3ZhciBVUyx6U2U9ZygoKT0+e1VTPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XSxbInBhdGgiLHtkOiJNMiAzaDIwIn1dXX0pO3ZhciBXUyxDU2U9ZygoKT0+e1dTPVtbInBhdGgiLHtkOiJNMTAgMTBINiJ9XSxbInBhdGgiLHtkOiJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy4yOGExIDEgMCAwIDAtLjY4NC0uOTQ4bC0xLjkyMy0uNjQxYTEgMSAwIDAgMS0uNTc4LS41MDJsLTEuNTM5LTMuMDc2QTEgMSAwIDAgMCAxNi4zODIgOEgxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djQifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgR1MsVFNlPWcoKCk9PntHUz1bWyJwYXRoIix7ZDoiTTEwIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxN2MtNS0zLTctNy03LTlhMiAyIDAgMCAxIDQgMGMwIDIuNS01IDIuNS01IDYgMCAxLjcgMS4zIDMgMyAzIDIuOCAwIDUtMi4yIDUtNSJ9XV19KTt2YXIgS1MsJFNlPWcoKCk9PntLUz1bWyJwYXRoIix7ZDoiTTE2IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTJhOCA4IDAgMCAxLTggOEE0LjUgNC41IDAgMCAxIDUgMTUuNWMwLTYgOC00IDgtOC41YTMgMyAwIDEgMC02IDBjMCAzIDIuNSA4LjUgMTIgMTMifV1dfSk7dmFyIFlTLERTZT1nKCgpPT57WVM9W1sicGF0aCIse2Q6Ik0xMCAydjUuNjMyYzAgLjQyNC0uMjcyLjc5NS0uNjUzLjk4MkE2IDYgMCAwIDAgNiAxNGMuMDA2IDQgMyA3IDUgOCJ9XSxbInBhdGgiLHtkOiJNMTAgNUg4YTIgMiAwIDAgMCAwIDRoLjY4In1dLFsicGF0aCIse2Q6Ik0xNCAydjUuNjMyYzAgLjQyNC4yNzIuNzk1LjY1Mi45ODJBNiA2IDAgMCAxIDE4IDE0YzAgNC0zIDctNSA4In1dLFsicGF0aCIse2Q6Ik0xNCA1aDJhMiAyIDAgMCAxIDAgNGgtLjY4In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg2In1dLFsicGF0aCIse2Q6Ik05IDJoNiJ9XV19KTt2YXIgWlMsTFNlPWcoKCk9PntaUz1bWyJwYXRoIix7ZDoiTTEyIDZ2MTYifV0sWyJwYXRoIix7ZDoibTE5IDEzIDItMWE5IDkgMCAwIDEtMTggMGwyIDEifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIFhTLEVTZT1nKCgpPT57WFM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJwYXRoIix7ZDoiTTcuNSA4IDEwIDkifV0sWyJwYXRoIix7ZDoibTE0IDkgMi41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGguMDEifV1dfSk7dmFyIFFTLFBTZT1nKCgpPT57UVM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDE1aDgifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDIifV1dfSk7dmFyIEpTLElTZT1nKCgpPT57SlM9W1sicGF0aCIse2Q6Ik0yIDEyIDcgMiJ9XSxbInBhdGgiLHtkOiJtNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xMiAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2gxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV19KTt2YXIgZV8sQVNlPWcoKCk9PntlXz1bWyJwYXRoIix7ZDoiTTcgMTBINmE0IDQgMCAwIDEtNC00IDEgMSAwIDAgMSAxLTFoNCJ9XSxbInBhdGgiLHtkOiJNNyA1YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMSA3IDcgMCAwIDEtNyA3SDhhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNSAyMGEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgMyAxIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMSJ9XV19KTt2YXIgdF8sTlNlPWcoKCk9Pnt0Xz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0LjMxIDggNS43NCA5Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDhoMTEuNDgifV0sWyJwYXRoIix7ZDoibTcuMzggMTIgNS43NC05Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDE2IDMuOTUgNi4wNiJ9XSxbInBhdGgiLHtkOiJNMTQuMzEgMTZIMi44MyJ9XSxbInBhdGgiLHtkOiJtMTYuNjIgMTItNS43NCA5Ljk0In1dXX0pO3ZhciBhXyxSU2U9ZygoKT0+e2FfPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV1dfSk7dmFyIHNfLE9TZT1nKCgpPT57c189W1sicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDR2NCJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicGF0aCIse2Q6Ik02IDR2NCJ9XV19KTt2YXIgaV8sRlNlPWcoKCk9PntpXz1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCA4djExYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoibTkgMTUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2OSJ9XV19KTt2YXIgcl8sQlNlPWcoKCk9PntyXz1bWyJwYXRoIix7ZDoiTTEyIDYuNTI4VjNhMSAxIDAgMCAxIDEtMWgwIn1dLFsicGF0aCIse2Q6Ik0xOC4yMzcgMjFBMTUgMTUgMCAwIDAgMjIgMTFhNiA2IDAgMCAwLTEwLTQuNDcyQTYgNiAwIDAgMCAyIDExYTE1LjEgMTUuMSAwIDAgMCAzLjc2MyAxMCAzIDMgMCAwIDAgMy42NDguNjQ4IDUuNSA1LjUgMCAwIDEgNS4xNzggMEEzIDMgMCAwIDAgMTguMjM3IDIxIn1dXX0pO3ZhciBvXyxIU2U9ZygoKT0+e29fPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJtOS41IDE3IDUtNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyIDUgNSJ9XV19KTt2YXIgbl8scVNlPWcoKCk9PntuXz1bWyJwYXRoIix7ZDoiTTE5IDlWNmEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciBsXyxqU2U9ZygoKT0+e2xfPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XV19KTt2YXIgY18sVlNlPWcoKCk9PntjXz1bWyJwYXRoIix7ZDoiTTE0IDhhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDFoMy4yOTNhLjcwNy43MDcgMCAwIDEgLjUgMS4yMDdsLTYuOTM5IDYuOTM5YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTYuOTQtNi45NGEuNzA3LjcwNyAwIDAgMSAuNS0xLjIwNkg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSA0aDYifV1dfSk7dmFyIGRfLFVTZT1nKCgpPT57ZF89W1sicGF0aCIse2Q6Ik05IDVhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDAgMSAxaDMuMjkzYS43MDcuNzA3IDAgMCAxIC41IDEuMjA3bC03LjA4NiA3LjA4NmExIDEgMCAwIDEtMS40MTQgMGwtNy4wODYtNy4wODZhLjcwNy43MDcgMCAwIDEgLjUtMS4yMDdIOGExIDEgMCAwIDAgMS0xeiJ9XV19KTt2YXIgdV8sV1NlPWcoKCk9Pnt1Xz1bWyJwYXRoIix7ZDoiTTEwLjc5MyAxOS43OTNhLjcwNy43MDcgMCAwIDAgMS4yMDctLjVWMTZhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDEtMS0xVjQuNzA3YS43MDcuNzA3IDAgMCAwLTEuMjA3LS41bC02Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN3oifV1dfSk7dmFyIHBfLEdTZT1nKCgpPT57cF89W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNC43MDdhLjcwNy43MDcgMCAwIDAtMS4yMDctLjVsLTYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3bDYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAxLjIwNy0uNVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOXY2In1dXX0pO3ZhciBoXyxLU2U9ZygoKT0+e2hfPVtbInBhdGgiLHtkOiJNMTEgOWExIDEgMCAwIDAgMS0xVjQuNzA3YS43MDcuNzA3IDAgMCAxIDEuMjA3LS41bDYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02Ljk0IDYuOTRhLjcwNy43MDcgMCAwIDEtMS4yMDctLjVWMTZhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTQgOXY2In1dXX0pO3ZhciBmXyxZU2U9ZygoKT0+e2ZfPVtbInBhdGgiLHtkOiJNMTMuMjA3IDE5Ljc5M2EuNzA3LjcwNyAwIDAgMS0xLjIwNy0uNVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy0uNWw2Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN3oifV1dfSk7dmFyIG1fLFpTZT1nKCgpPT57bV89W1sicGF0aCIse2Q6Ik0xNCAxNmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMSAxLTFoMy4yOTNhLjcwNy43MDcgMCAwIDAgLjUtMS4yMDdsLTYuOTM5LTYuOTM5YTEuMjA3IDEuMjA3IDAgMCAwLTEuNzA4IDBsLTYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAuNSAxLjIwNkg4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAyMGg2In1dXX0pO3ZhciBnXyxYU2U9ZygoKT0+e2dfPVtbInBhdGgiLHtkOiJNOSAxOWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtNmExIDEgMCAwIDEgMS0xaDMuMjkzYS43MDcuNzA3IDAgMCAwIC41LTEuMjA3bC03LjA4Ni03LjA4NmExIDEgMCAwIDAtMS40MTQgMGwtNy4wODYgNy4wODZhLjcwNy43MDcgMCAwIDAgLjUgMS4yMDdIOGExIDEgMCAwIDEgMSAxeiJ9XV19KTt2YXIgYl8sUVNlPWcoKCk9PntiXz1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dfSk7dmFyIHZfLEpTZT1nKCgpPT57dl89W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBWNGgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiMTQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dXX0pO3ZhciB4XyxlX2U9ZygoKT0+e3hfPVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dfSk7dmFyIGtmLHRfZT1nKCgpPT57a2Y9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGg1bC01IDZoNSJ9XV19KTt2YXIgeV8sYV9lPWcoKCk9Pnt5Xz1bWyJwYXRoIix7ZDoiTTE3IDcgNyAxNyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdIN1Y3In1dXX0pO3ZhciB3XyxzX2U9ZygoKT0+e3dfPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTExIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTEgOGg3In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XV19KTt2YXIga18saV9lPWcoKCk9PntrXz1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMEg3In1dXX0pO3ZhciBTXyxyX2U9ZygoKT0+e1NfPVtbInBhdGgiLHtkOiJNMTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgOS03IDctNy03In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dfSk7dmFyIF9fLG9fZT1nKCgpPT57X189W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dXX0pO3ZhciBNXyxuX2U9ZygoKT0+e01fPVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXX0pO3ZhciBTZixsX2U9ZygoKT0+e1NmPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTExIDRoMTAifV0sWyJwYXRoIix7ZDoiTTExIDhoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoNCJ9XV19KTt2YXIgX2YsY19lPWcoKCk9PntfZj1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNSA0aDVsLTUgNmg1In1dLFsicGF0aCIse2Q6Ik0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgtNSJ9XV19KTt2YXIgel8sZF9lPWcoKCk9Pnt6Xz1bWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoibTE5IDEyLTcgNy03LTcifV1dfSk7dmFyIENfLHVfZT1nKCgpPT57Q189W1sicGF0aCIse2Q6Im05IDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWNSJ9XV19KTt2YXIgVF8scF9lPWcoKCk9PntUXz1bWyJwYXRoIix7ZDoiTTggMyA0IDdsNCA0In1dLFsicGF0aCIse2Q6Ik00IDdoMTYifV0sWyJwYXRoIix7ZDoibTE2IDIxIDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIwIDE3SDQifV1dfSk7dmFyICRfLGhfZT1nKCgpPT57JF89W1sicGF0aCIse2Q6Ik0zIDE5VjUifV0sWyJwYXRoIix7ZDoibTEzIDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxNCJ9XV19KTt2YXIgRF8sZl9lPWcoKCk9PntEXz1bWyJwYXRoIix7ZDoiTTMgNXYxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJINyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggNi02LTYtNiJ9XV19KTt2YXIgTF8sbV9lPWcoKCk9PntMXz1bWyJwYXRoIix7ZDoibTEyIDE5LTctNyA3LTcifV0sWyJwYXRoIix7ZDoiTTE5IDEySDUifV1dfSk7dmFyIEVfLGdfZT1nKCgpPT57RV89W1sicGF0aCIse2Q6Im0xNiAzIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIwIDdINCJ9XSxbInBhdGgiLHtkOiJtOCAyMS00LTQgNC00In1dLFsicGF0aCIse2Q6Ik00IDE3aDE2In1dXX0pO3ZhciBQXyxiX2U9ZygoKT0+e1BfPVtbInBhdGgiLHtkOiJNMTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJtMTEgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxNCJ9XV19KTt2YXIgSV8sdl9lPWcoKCk9PntJXz1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV0sWyJwYXRoIix7ZDoibTEyIDUgNyA3LTcgNyJ9XV19KTt2YXIgQV8seF9lPWcoKCk9PntBXz1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV19KTt2YXIgTl8seV9lPWcoKCk9PntOXz1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYtNmgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMjBoNCJ9XV19KTt2YXIgTWYsd19lPWcoKCk9PntNZj1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTIwIDhoLTUifV0sWyJwYXRoIix7ZDoiTTE1IDEwVjYuNWEyLjUgMi41IDAgMCAxIDUgMFYxMCJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoNWwtNSA2aDUifV1dfSk7dmFyIFJfLGtfZT1nKCgpPT57Ul89W1sicGF0aCIse2Q6Im0yMSAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY0In1dLFsicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dXX0pO3ZhciBPXyxTX2U9ZygoKT0+e09fPVtbInBhdGgiLHtkOiJtNSA5IDctNyA3IDcifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMSIscjoiMSJ9XV19KTt2YXIgRl8sX19lPWcoKCk9PntGXz1bWyJwYXRoIix7ZDoibTE4IDktNi02LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgQl8sTV9lPWcoKCk9PntCXz1bWyJwYXRoIix7ZDoiTTcgMTdWN2gxMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcgNyA3In1dXX0pO3ZhciB6Zix6X2U9ZygoKT0+e3pmPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoMTAifV1dfSk7dmFyIEhfLENfZT1nKCgpPT57SF89W1sicGF0aCIse2Q6Ik03IDdoMTB2MTAifV0sWyJwYXRoIix7ZDoiTTcgMTcgMTcgNyJ9XV19KTt2YXIgcV8sVF9lPWcoKCk9PntxXz1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxNmg3In1dLFsicGF0aCIse2Q6Ik0xMSAyMGg0In1dXX0pO3ZhciBqXywkX2U9ZygoKT0+e2pfPVtbInBhdGgiLHtkOiJNNSAzaDE0In1dLFsicGF0aCIse2Q6Im0xOCAxMy02LTYtNiA2In1dLFsicGF0aCIse2Q6Ik0xMiA3djE0In1dXX0pO3ZhciBWXyxEX2U9ZygoKT0+e1ZfPVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXX0pO3ZhciBDZixMX2U9ZygoKT0+e0NmPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dfSk7dmFyIFVfLEVfZT1nKCgpPT57VV89W1sicGF0aCIse2Q6Ik0xMiA2djEyIn1dLFsicGF0aCIse2Q6Ik0xNy4xOTYgOSA2LjgwNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi44MDQgOSAxMC4zOTIgNiJ9XV19KTt2YXIgV18sUF9lPWcoKCk9PntXXz1bWyJwYXRoIix7ZDoibTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik03IDE3VjMifV0sWyJwYXRoIix7ZDoibTE0IDYgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XV19KTt2YXIgR18sSV9lPWcoKCk9PntHXz1bWyJwYXRoIix7ZDoiTTEyLjk4MyAyMS4xODZhMSAxIDAgMCAxLTEuOTY2IDAgMTAgMTAgMCAwIDAtOC4yMDMtOC4yMDMgMSAxIDAgMCAxIDAtMS45NjYgMTAgMTAgMCAwIDAgOC4yMDMtOC4yMDMgMSAxIDAgMCAxIDEuOTY2IDAgMTAgMTAgMCAwIDAgOC4yMDMgOC4yMDMgMSAxIDAgMCAxIDAgMS45NjYgMTAgMTAgMCAwIDAtOC4yMDMgOC4yMDMifV1dfSk7dmFyIEtfLEFfZT1nKCgpPT57S189W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV19KTt2YXIgWV8sTl9lPWcoKCk9PntZXz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dfSk7dmFyIFpfLFJfZT1nKCgpPT57Wl89W1sicGF0aCIse2Q6Ik0yIDEwdjMifV0sWyJwYXRoIix7ZDoiTTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNMTAgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTQgOHY3In1dLFsicGF0aCIse2Q6Ik0xOCA1djEzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYzIn1dXX0pO3ZhciBYXyxPX2U9ZygoKT0+e1hfPVtbInBhdGgiLHtkOiJNMiAxM2EyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwVjRhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwdi00YTIgMiAwIDAgMSAyLTIifV1dfSk7dmFyIFFfLEZfZT1nKCgpPT57UV89W1sicGF0aCIse2Q6Im0xNS40NzcgMTIuODkgMS41MTUgOC41MjZhLjUuNSAwIDAgMS0uODEuNDdsLTMuNTgtMi42ODdhMSAxIDAgMCAwLTEuMTk3IDBsLTMuNTg2IDIuNjg2YS41LjUgMCAwIDEtLjgxLS40NjlsMS41MTQtOC41MjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiI2In1dXX0pO3ZhciBKXyxCX2U9ZygoKT0+e0pfPVtbInBhdGgiLHtkOiJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5In1dLFsicGF0aCIse2Q6Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6In1dXX0pO3ZhciBlTSxIX2U9ZygoKT0+e2VNPVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXX0pO3ZhciBUZixxX2U9ZygoKT0+e1RmPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXX0pO3ZhciB0TSxqX2U9ZygoKT0+e3RNPVtbInBhdGgiLHtkOiJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTggMTBoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg4In1dLFsicGF0aCIse2Q6Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIGFNLFZfZT1nKCgpPT57YU09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIHNNLFVfZT1nKCgpPT57c009W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTUuNCAxMGE0IDQgMCAxIDAgMCA0In1dXX0pO3ZhciAkZixXX2U9ZygoKT0+eyRmPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgaU0sR19lPWcoKCk9PntpTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIHJNLEtfZT1nKCgpPT57ck09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNNyAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIn1dXX0pO3ZhciBvTSxZX2U9ZygoKT0+e29NPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dfSk7dmFyIG5NLFpfZT1nKCgpPT57bk09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiI4Iix5MjoiOCJ9XV19KTt2YXIgbE0sWF9lPWcoKCk9PntsTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dfSk7dmFyIGNNLFFfZT1nKCgpPT57Y009W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgZE0sSl9lPWcoKCk9PntkTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciB1TSxlTWU9ZygoKT0+e3VNPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIHBNLHRNZT1nKCgpPT57cE09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgRGYsYU1lPWcoKCk9PntEZj1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dfSk7dmFyIGhNLHNNZT1nKCgpPT57aE09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTEgMTdWOGg0In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgzIn1dLFsicGF0aCIse2Q6Ik05IDE2aDQifV1dfSk7dmFyIGZNLGlNZT1nKCgpPT57Zk09W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXX0pO3ZhciBtTSxyTWU9ZygoKT0+e21NPVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV19KTt2YXIgZ00sb01lPWcoKCk9PntnTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgYk0sbk1lPWcoKCk9PntiTT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dXX0pO3ZhciB2TSxsTWU9ZygoKT0+e3ZNPVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciB4TSxjTWU9ZygoKT0+e3hNPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIn1dXX0pO3ZhciB5TSxkTWU9ZygoKT0+e3lNPVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV19KTt2YXIgd00sdU1lPWcoKCk9Pnt3TT1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dfSk7dmFyIGtNLHBNZT1nKCgpPT57a009W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTIifV0sWyJwYXRoIix7ZDoiTTYgNnYxMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBTTSxoTWU9ZygoKT0+e1NNPVtbInBhdGgiLHtkOiJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMtMy0zIDMifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIF9NLGZNZT1nKCgpPT57X009W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBNTSxtTWU9ZygoKT0+e01NPVtbInBhdGgiLHtkOiJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAxNy01IDUifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIHpNLGdNZT1nKCgpPT57ek09W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDFNMTggMTJoLjAxIn1dXX0pO3ZhciBDTSxiTWU9ZygoKT0+e0NNPVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik04IDV2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoiTTE3IDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIFRNLHZNZT1nKCgpPT57VE09W1sicGF0aCIse2Q6Ik0xMCAzYTQxIDQxIDAgMCAwIDAgMTgifV0sWyJwYXRoIix7ZDoiTTE0IDNhNDEgNDEgMCAwIDEgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6In1dLFsicGF0aCIse2Q6Ik0zLjg0IDE3aDE2LjMyIn1dLFsicGF0aCIse2Q6Ik0zLjg0IDdoMTYuMzIifV1dfSk7dmFyICRNLHhNZT1nKCgpPT57JE09W1sicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBETSx5TWU9ZygoKT0+e0RNPVtbInBhdGgiLHtkOiJNMTAgNCA4IDYifV0sWyJwYXRoIix7ZDoiTTE3IDE5djIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIExNLHdNZT1nKCgpPT57TE09W1sicGF0aCIse2Q6Im0xMSA3LTMgNWg0bC0zIDUifV0sWyJwYXRoIix7ZDoiTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTUuMTQgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyLjkzNiJ9XV19KTt2YXIgRU0sa01lPWcoKCk9PntFTT1bWyJwYXRoIix7ZDoiTTEwIDEwdjQifV0sWyJwYXRoIix7ZDoiTTE0IDEwdjQifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDEwdjQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgUE0sU01lPWcoKCk9PntQTT1bWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIElNLF9NZT1nKCgpPT57SU09W1sicGF0aCIse2Q6Ik0xMCAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgQU0sTU1lPWcoKCk9PntBTT1bWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTIuNTQzIDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuNjA1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmg2In1dLFsicGF0aCIse2Q6Ik03LjYwNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMuNjA2In1dXX0pO3ZhciBOTSx6TWU9ZygoKT0+e05NPVtbInBhdGgiLHtkOiJNMTAgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA3djYifV0sWyJwYXRoIix7ZDoiTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dXX0pO3ZhciBSTSxDTWU9ZygoKT0+e1JNPVtbInBhdGgiLHtkOiJNIDIyIDE0IEwgMjIgMTAifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgT00sVE1lPWcoKCk9PntPTT1bWyJwYXRoIix7ZDoiTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xIn1dLFsicGF0aCIse2Q6Ik0xMC43NSA1LjA5M0E2IDYgMCAwIDEgMjIgOGMwIDIuNDExLS42MSA0LjY4LTEuNjgzIDYuNjYifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIEZNLCRNZT1nKCgpPT57Rk09W1sicGF0aCIse2Q6Ik00LjUgM2gxNSJ9XSxbInBhdGgiLHtkOiJNNiAzdjE2YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMifV0sWyJwYXRoIix7ZDoiTTYgMTRoMTIifV1dfSk7dmFyIEJNLERNZT1nKCgpPT57Qk09W1sicGF0aCIse2Q6Ik0yIDIwdi04YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDEwVjZhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDR2NiJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyMCJ9XV19KTt2YXIgSE0sTE1lPWcoKCk9PntITT1bWyJwYXRoIix7ZDoiTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMloifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDEgMCA1LjI3OS01LjI4In1dXX0pO3ZhciBxTSxFTWU9ZygoKT0+e3FNPVtbInBhdGgiLHtkOiJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDE4aDE4In1dXX0pO3ZhciBqTSxQTWU9ZygoKT0+e2pNPVtbInBhdGgiLHtkOiJNMTEuNzcxIDYuMTA5YTIuNSAyLjUgMCAwIDEgMy4xMiAzLjEyIn1dLFsicGF0aCIse2Q6Ik0xNy44NTIgMTIuMTg1YTYuNSA2LjUgMCAwIDAtOS4wMzUtOS4wNCJ9XSxbInBhdGgiLHtkOiJNMTguMDEzIDE4LjAxM0MxNS4wMjkgMjAuMzQ5IDEwLjgzMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUifV0sWyJwYXRoIix7ZDoibTE4LjUgNiAyLjE5IDQuNWE2LjQ4IDYuNDggMCAwIDEtLjEzOSA0LjM5MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02LjM1NSA2LjM3YTcgNyAwIDAgMC0uMDc1LjIzYy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGMzLjM1NiAwIDYuOTkzLTEuMjY3IDkuODUtMy4xNTEifV1dfSk7dmFyIFZNLElNZT1nKCgpPT57Vk09W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV19KTt2YXIgVU0sQU1lPWcoKCk9PntVTT1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV19KTt2YXIgV00sTk1lPWcoKCk9PntXTT1bWyJwYXRoIix7ZDoiTTEzIDEzdjUifV0sWyJwYXRoIix7ZDoiTTE3IDExLjQ3VjgifV0sWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDIuNzQ1IDQuMjExIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNy41MzYgNy41MzVDNi43NjYgNy42NDkgNi4xNTQgOCA1LjUgOGEyLjUgMi41IDAgMCAxLTEuNzY4LTQuMjY4In1dLFsicGF0aCIse2Q6Ik04LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMiJ9XSxbInBhdGgiLHtkOiJNOSAxNC42VjE4In1dXX0pO3ZhciBHTSxSTWU9ZygoKT0+e0dNPVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXX0pO3ZhciBLTSxPTWU9ZygoKT0+e0tNPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Im0xNSA4IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTE2Ljg2MDcgNC40ODI0QTYgNiAwIDAgMCA2IDhDNiAxMi40OTkgNC41ODkgMTMuOTU2IDMuMjYyIDE1LjMyNiJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3SDIwQTEgMSAwIDAgMCAyMC43NCAxNS4zMjdDMjAuMjA5IDE0Ljc3OSAxOS42NjUgMTQuMjE4IDE5LjIwMyAxMy40NTQifV1dfSk7dmFyIFlNLEZNZT1nKCgpPT57WU09W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTExLjY4IDIuMDA5QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczYy0uODI0LS44NS0xLjY3OC0xLjczMS0yLjIxLTMuMzQ4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgWk0sQk1lPWcoKCk9PntaTT1bWyJwYXRoIix7ZDoiTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5In1dLFsicGF0aCIse2Q6Ik0xOC44IDRBMTEgMTEgMCAwIDEgMjAgOSJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsicmVjdCIse3g6IjQiLHk6IjE2Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIFhNLEhNZT1nKCgpPT57WE09W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIC4yNTgtMS43NDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NjggMy4wMUE2IDYgMCAwIDEgMTggOGMwIDIuNjg3Ljc3IDQuNjUzIDEuNzA3IDYuMDUifV1dfSk7dmFyIFFNLHFNZT1nKCgpPT57UU09W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE1IDhoNiJ9XSxbInBhdGgiLHtkOiJNMTYuMjQzIDMuNzU3QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQTkuNCA5LjQgMCAwIDEgMTguNjY3IDEyIn1dXX0pO3ZhciBKTSxqTWU9ZygoKT0+e0pNPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDV2NiJ9XSxbInBhdGgiLHtkOiJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIifV1dfSk7dmFyIGV6LFZNZT1nKCgpPT57ZXo9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjMtLjgtNC4zLTItNiJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XSxbInBhdGgiLHtkOiJNNCAyQzIuOCAzLjcgMiA1LjcgMiA4In1dXX0pO3ZhciB0eixVTWU9ZygoKT0+e3R6PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dXX0pO3ZhciBMZixXTWU9ZygoKT0+e0xmPVtbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMtMyAzLTMifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgRWYsR01lPWcoKCk9PntFZj1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yIDkgMyAzLTMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBheixLTWU9ZygoKT0+e2F6PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zIDMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dXX0pO3ZhciBzeixZTWU9ZygoKT0+e3N6PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciBpeixaTWU9ZygoKT0+e2l6PVtbInBhdGgiLHtkOiJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiJ9XSxbInBhdGgiLHtkOiJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUifV1dfSk7dmFyIHJ6LFhNZT1nKCgpPT57cno9W1siY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxNy41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNS41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiNSIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNVYxNGwtMy0zIDQtMyAyIDNoMiJ9XV19KTt2YXIgb3osUU1lPWcoKCk9Pntvej1bWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMGg0In1dLFsicGF0aCIse2Q6Ik02IDE0aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgNGgydjYifV1dfSk7dmFyIG56LEpNZT1nKCgpPT57bno9W1sicGF0aCIse2Q6Ik0xMCAxMGg0In1dLFsicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTIgMiAwIDAgMCAyLTJ2LTMuODUxYzAtMS4zOS0yLTIuOTYyLTItNC44MjlWOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MTFhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTSAyMiAxNiBMIDIgMTYifV0sWyJwYXRoIix7ZDoiTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDdWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBseixlemU9ZygoKT0+e2x6PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExLjkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTYuNyAzLjRjLS45IDIuNSAwIDUuMiAyLjIgNi43QzYuNSA5IDMuNyA5LjYgMiAxMS42In1dLFsicGF0aCIse2Q6Im04LjkgMTAuMSAxLjQuOCJ9XSxbInBhdGgiLHtkOiJNMTcuMyAzLjRjLjkgMi41IDAgNS4yLTIuMiA2LjcgMi40LTEuMiA1LjItLjYgNi45IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMSAxMC4xLTEuNC44In1dLFsicGF0aCIse2Q6Ik0xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuOXYxLjYifV0sWyJwYXRoIix7ZDoiTTEzLjUgNS40Yy0xLS4yLTItLjItMyAwIn1dLFsicGF0aCIse2Q6Ik0xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNSJ9XSxbInBhdGgiLHtkOiJNNS41IDEzLjljLjMuOS44IDEuOCAxLjUgMi41In1dXX0pO3ZhciBjeix0emU9ZygoKT0+e2N6PVtbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAifV0sWyJwYXRoIix7ZDoibTIwIDcgMiAuNS0yIC41In1dLFsicGF0aCIse2Q6Ik0xMCAxOHYzIn1dLFsicGF0aCIse2Q6Ik0xNCAxNy43NVYyMSJ9XSxbInBhdGgiLHtkOiJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSJ9XV19KTt2YXIgZHosYXplPWcoKCk9Pntkej1bWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTE3IDE4IDEuOTU2LTExLjQ2OCJ9XSxbInBhdGgiLHtkOiJtMyA4IDcuODItNS42MTVhMiAyIDAgMCAxIDIuMzYgMEwyMSA4In1dLFsicGF0aCIse2Q6Ik00IDE4aDE2In1dLFsicGF0aCIse2Q6Ik03IDE4IDUuMDQ0IDYuNTMyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIHV6LHN6ZT1nKCgpPT57dXo9W1sicGF0aCIse2Q6Ik0xMS43NjcgMTkuMDg5YzQuOTI0Ljg2OCA2LjE0LTYuMDI1IDEuMjE2LTYuODk0bS0xLjIxNiA2Ljg5NEw1Ljg2IDE4LjA0N201LjkwOCAxLjA0Mi0uMzQ3IDEuOTdtMS41NjMtOC44NjRjNC45MjQuODY5IDYuMTQtNi4wMjUgMS4yMTUtNi44OTNtLTEuMjE1IDYuODkzLTMuOTQtLjY5NG01LjE1NS02LjJMOC4yOSA0LjI2bTUuOTA4IDEuMDQyLjM0OC0xLjk3TTcuNDggMjAuMzY0bDMuMTI2LTE3LjcyNyJ9XV19KTt2YXIgcHosaXplPWcoKCk9Pntwej1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiNyJ9XV19KTt2YXIgaHoscnplPWcoKCk9Pntoej1bWyJwYXRoIix7ZDoiTTMgM2gxOCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g4In1dLFsicGF0aCIse2Q6Ik0yMCAxMUg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAzdjE0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgZnosb3plPWcoKCk9Pntmej1bWyJwYXRoIix7ZDoiTTEwIDIyVjdhMSAxIDAgMCAwLTEtMUg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0xLTFIMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIG16LG56ZT1nKCgpPT57bXo9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIGd6LGx6ZT1nKCgpPT57Z3o9W1sicGF0aCIse2Q6Im0xNyAxNy01IDVWMTJsLTUgNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xNC41IDkuNSAxNyA3bC01LTV2NC41In1dXX0pO3ZhciBieixjemU9ZygoKT0+e2J6PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dXX0pO3ZhciB2eixkemU9ZygoKT0+e3Z6PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsicGF0aCIse2Q6Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIHh6LHV6ZT1nKCgpPT57eHo9W1sicGF0aCIse2Q6Ik02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCJ9XV19KTt2YXIgeXoscHplPWcoKCk9Pnt5ej1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMyIscjoiOSJ9XSxbInBhdGgiLHtkOiJNMTQuMzUgNC42NSAxNi4zIDIuN2EyLjQxIDIuNDEgMCAwIDEgMy40IDBsMS42IDEuNmEyLjQgMi40IDAgMCAxIDAgMy40bC0xLjk1IDEuOTUifV0sWyJwYXRoIix7ZDoibTIyIDItMS41IDEuNSJ9XV19KTt2YXIgd3osaHplPWcoKCk9Pnt3ej1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXX0pO3ZhciBreixmemU9ZygoKT0+e2t6PVtbInBhdGgiLHtkOiJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoifV1dfSk7dmFyIFN6LG16ZT1nKCgpPT57U3o9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im04IDEzIDQtNyA0IDcifV0sWyJwYXRoIix7ZDoiTTkuMSAxMWg1LjcifV1dfSk7dmFyIF96LGd6ZT1nKCgpPT57X3o9W1sicGF0aCIse2Q6Ik0xMiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV19KTt2YXIgTXosYnplPWcoKCk9PntNej1bWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOHYzIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDh2MyJ9XV19KTt2YXIgenosdnplPWcoKCk9Pnt6ej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgOS41IDIgMiA0LTQifV1dfSk7dmFyIEN6LHh6ZT1nKCgpPT57Q3o9W1sicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNNS44MDMgMThINWEyIDIgMCAwIDAgMCA0aDkuNWEuNS41IDAgMCAwIC41LS41VjIxIn1dLFsicGF0aCIse2Q6Ik05IDE1VjRhMiAyIDAgMCAxIDItMmg5LjVhLjUuNSAwIDAgMSAuNS41djE0YS41LjUgMCAwIDEtLjUuNUgxMWEyIDIgMCAwIDEgMC00aDEwIn1dXX0pO3ZhciBQZix5emU9ZygoKT0+e1BmPVtbInBhdGgiLHtkOiJNMTIgMTdoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyMmgxLjUifV0sWyJwYXRoIix7ZDoiTTEyIDJoMS41In1dLFsicGF0aCIse2Q6Ik0xNy41IDIySDE5YTEgMSAwIDAgMCAxLTEifV0sWyJwYXRoIix7ZDoiTTE3LjUgMkgxOWExIDEgMCAwIDEgMSAxdjEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTR2M2gtMi41In1dLFsicGF0aCIse2Q6Ik0yMCA4LjVWMTAifV0sWyJwYXRoIix7ZDoiTTQgMTBWOC41In1dLFsicGF0aCIse2Q6Ik00IDE5LjVWMTQifV0sWyJwYXRoIix7ZDoiTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIOCJ9XSxbInBhdGgiLHtkOiJNOCAyMkg2LjVhMSAxIDAgMCAxIDAtNUg4In1dXX0pO3ZhciBUeix3emU9ZygoKT0+e1R6PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzIDMgMy0zIn1dXX0pO3ZhciAkeixremU9ZygoKT0+eyR6PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dfSk7dmFyIER6LFN6ZT1nKCgpPT57RHo9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04LjYyIDkuOEEyLjI1IDIuMjUgMCAxIDEgMTIgNi44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBMeixfemU9ZygoKT0+e0x6PVtbInBhdGgiLHtkOiJtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiIyIn1dXX0pO3ZhciBFeixNemU9ZygoKT0+e0V6PVtbInBhdGgiLHtkOiJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSJ9XSxbInBhdGgiLHtkOiJNMTcgMnY2In1dLFsicGF0aCIse2Q6Ik0xNyA0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEwIixyOiIyIn1dXX0pO3ZhciBQeix6emU9ZygoKT0+e1B6PVtbInBhdGgiLHtkOiJNMTAgMnY4bDMtMyAzIDNWMiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV19KTt2YXIgSXosQ3plPWcoKCk9PntJej1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgQXosVHplPWcoKCk9PntBej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgTnosJHplPWcoKCk9PntOej1bWyJwYXRoIix7ZDoiTTEyIDIxVjcifV0sWyJwYXRoIix7ZDoibTE2IDEyIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTIyIDZWNGExIDEgMCAwIDAtMS0xaC01YTQgNCAwIDAgMC00IDQgNCA0IDAgMCAwLTQtNEgzYTEgMSAwIDAgMC0xIDF2MTNhMSAxIDAgMCAwIDEgMWg2YTMgMyAwIDAgMSAzIDMgMyAzIDAgMCAxIDMtM2g2YTEgMSAwIDAgMCAxLTF2LTEuMyJ9XV19KTt2YXIgUnosRHplPWcoKCk9PntSej1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTE2IDEyaDIifV0sWyJwYXRoIix7ZDoiTTE2IDhoMiJ9XSxbInBhdGgiLHtkOiJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6In1dLFsicGF0aCIse2Q6Ik02IDEyaDIifV0sWyJwYXRoIix7ZDoiTTYgOGgyIn1dXX0pO3ZhciBPeixMemU9ZygoKT0+e096PVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEZ6LEV6ZT1nKCgpPT57Rno9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3oifV1dfSk7dmFyIEJ6LFB6ZT1nKCgpPT57Qno9W1sicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgSHosSXplPWcoKCk9PntIej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggMTFoOCJ9XSxbInBhdGgiLHtkOiJNOCA3aDYifV1dfSk7dmFyIHF6LEF6ZT1nKCgpPT57cXo9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xOCAyaDFhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDIifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSA1IDMtMyAzIDMifV1dfSk7dmFyIGp6LE56ZT1nKCgpPT57ano9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV1dfSk7dmFyIFZ6LFJ6ZT1nKCgpPT57Vno9W1sicGF0aCIse2Q6Ik0xMCAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiA2djcifV0sWyJwYXRoIix7ZDoiTTE2IDhWNkg4djIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIFV6LE96ZT1nKCgpPT57VXo9W1sicGF0aCIse2Q6Ik0xNSAxM2EzIDMgMCAxIDAtNiAwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiMiJ9XV19KTt2YXIgV3osRnplPWcoKCk9PntXej1bWyJwYXRoIix7ZDoibTE0LjUgNy01IDUifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkuNSA3IDUgNSJ9XV19KTt2YXIgR3osQnplPWcoKCk9PntHej1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIEt6LEh6ZT1nKCgpPT57S3o9W1sicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XV19KTt2YXIgWXoscXplPWcoKCk9PntZej1bWyJwYXRoIix7ZDoiTTE1IDEwSDkifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgWnosanplPWcoKCk9Pntaej1bWyJwYXRoIix7ZDoiTTE5IDE5djFhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gxN2EyIDIgMCAwIDEgMiAydjguMzQ0In1dXX0pO3ZhciBYeixWemU9ZygoKT0+e1h6PVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xNSAxMEg5In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dfSk7dmFyIFF6LFV6ZT1nKCgpPT57UXo9W1sicGF0aCIse2Q6Im0xNC41IDcuNS01IDUifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dfSk7dmFyIEp6LFd6ZT1nKCgpPT57Sno9W1sicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dfSk7dmFyIGVDLEd6ZT1nKCgpPT57ZUM9W1sicGF0aCIse2Q6Ik00IDlWNWEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNOCA4djEifV0sWyJwYXRoIix7ZDoiTTEyIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTYgOHYxIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiOSIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTUiLHI6IjIifV1dfSk7dmFyIHRDLEt6ZT1nKCgpPT57dEM9W1sicGF0aCIse2Q6Ik0xMiA2VjJIOCJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmEyIDIgMCAwIDEtMiAySDguODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSA0IDIwLjI4NlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTF2MiJ9XV19KTt2YXIgYUMsWXplPWcoKCk9PnthQz1bWyJwYXRoIix7ZDoiTTEzLjY3IDhIMThhMiAyIDAgMCAxIDIgMnY0LjMzIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XSxbInBhdGgiLHtkOiJNOS42NyA0SDEydjIuMzMifV1dfSk7dmFyIHNDLFp6ZT1nKCgpPT57c0M9W1sicGF0aCIse2Q6Ik0xMiA4VjRIOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHg6IjQiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTE1IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XV19KTt2YXIgaUMsWHplPWcoKCk9PntpQz1bWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Ik0xOC41NzUgMTEuMDgyYTEzIDEzIDAgMCAxIDEuMDQ4IDkuMDI3IDEuMTcgMS4xNyAwIDAgMS0xLjkxNC41OTdMMTQgMTcifV0sWyJwYXRoIix7ZDoiTTcgMTAgMy4yOSA2LjI5YTEuMTcgMS4xNyAwIDAgMSAuNi0xLjkxIDEzIDEzIDAgMCAxIDkuMDMgMS4wNSJ9XSxbInBhdGgiLHtkOiJNNyAxNGExLjcgMS43IDAgMCAwLTEuMjA3LjVsLTIuNjQ2IDIuNjQ2QS41LjUgMCAwIDAgMy41IDE4SDVhMSAxIDAgMCAxIDEgMXYxLjVhLjUuNSAwIDAgMCAuODU0LjM1NEw5LjUgMTguMjA3QTEuNyAxLjcgMCAwIDAgMTAgMTd2LTJhMSAxIDAgMCAwLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkuNzA3IDE0LjI5MyAyMSAzIn1dXX0pO3ZhciByQyxRemU9ZygoKT0+e3JDPVtbInBhdGgiLHtkOiJNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTYgNiAwIDAgMCAxLjIgMy42bC42LjhBNiA2IDAgMCAxIDE3IDEzdjhhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LThhNiA2IDAgMCAxIDEuMi0zLjZsLjYtLjhBNiA2IDAgMCAwIDEwIDV6In1dLFsicGF0aCIse2Q6Ik0xNyAxM2gtNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0In1dXX0pO3ZhciBvQyxKemU9ZygoKT0+e29DPVtbInBhdGgiLHtkOiJNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaIn1dLFsicGF0aCIse2Q6Im0zLjMgNyA4LjcgNSA4LjctNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJWMTIifV1dfSk7dmFyIG5DLGVDZT1nKCgpPT57bkM9W1sicGF0aCIse2Q6Ik0yLjk3IDEyLjkyQTIgMiAwIDAgMCAyIDE0LjYzdjMuMjRhMiAyIDAgMCAwIC45NyAxLjcxbDMgMS44YTIgMiAwIDAgMCAyLjA2IDBMMTIgMTl2LTUuNWwtNS0zLTQuMDMgMi40MloifV0sWyJwYXRoIix7ZDoibTcgMTYuNS00Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoibTcgMTYuNSA1LTMifV0sWyJwYXRoIix7ZDoiTTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjE5bDMuOTcgMi4zOGEyIDIgMCAwIDAgMi4wNiAwbDMtMS44YTIgMiAwIDAgMCAuOTctMS43MXYtMy4yNGEyIDIgMCAwIDAtLjk3LTEuNzFMMTcgMTAuNWwtNSAzWiJ9XSxbInBhdGgiLHtkOiJtMTcgMTYuNS01LTMifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUgNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41djUuMTcifV0sWyJwYXRoIix7ZDoiTTcuOTcgNC40MkEyIDIgMCAwIDAgNyA2LjEzdjQuMzdsNSAzIDUtM1Y2LjEzYTIgMiAwIDAgMC0uOTctMS43MWwtMy0xLjhhMiAyIDAgMCAwLTIuMDYgMGwtMyAxLjhaIn1dLFsicGF0aCIse2Q6Ik0xMiA4IDcuMjYgNS4xNSJ9XSxbInBhdGgiLHtkOiJtMTIgOCA0Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjVWOCJ9XV19KTt2YXIgSWYsdENlPWcoKCk9PntJZj1bWyJwYXRoIix7ZDoiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIn1dXX0pO3ZhciBsQyxhQ2U9ZygoKT0+e2xDPVtbInBhdGgiLHtkOiJNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMUg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDMifV1dfSk7dmFyIGNDLHNDZT1nKCgpPT57Y0M9W1sicGF0aCIse2Q6Ik0xMiA1YTMgMyAwIDEgMC01Ljk5Ny4xMjUgNCA0IDAgMCAwLTIuNTI2IDUuNzcgNCA0IDAgMCAwIC41NTYgNi41ODhBNCA0IDAgMSAwIDEyIDE4WiJ9XSxbInBhdGgiLHtkOiJNOSAxM2E0LjUgNC41IDAgMCAwIDMtNCJ9XSxbInBhdGgiLHtkOiJNNi4wMDMgNS4xMjVBMyAzIDAgMCAwIDYuNDAxIDYuNSJ9XSxbInBhdGgiLHtkOiJNMy40NzcgMTAuODk2YTQgNCAwIDAgMSAuNTg1LS4zOTYifV0sWyJwYXRoIix7ZDoiTTYgMThhNCA0IDAgMCAxLTEuOTY3LS41MTYifV0sWyJwYXRoIix7ZDoiTTEyIDEzaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDZhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4aDgifV0sWyJwYXRoIix7ZDoiTTE2IDhWNWEyIDIgMCAwIDEgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMyIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIyMSIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI4IixyOiIuNSJ9XV19KTt2YXIgZEMsaUNlPWcoKCk9PntkQz1bWyJwYXRoIix7ZDoibTEwLjg1MiAxNC43NzItLjM4My45MjMifV0sWyJwYXRoIix7ZDoibTEwLjg1MiA5LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC43NzIuMzgyLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuNTMxIDguMzA1LS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTAuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTMuMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMCAwLTUuNjMtMS40NDYgMyAzIDAgMCAwLS4zNjggMS41NzEgNCA0IDAgMCAwLTIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xNy45OTggNS4xMjVhNCA0IDAgMCAxIDIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xOS41MDUgMTAuMjk0YTQgNCAwIDAgMS0xLjUgNy43MDYifV0sWyJwYXRoIix7ZDoiTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2In1dLFsicGF0aCIse2Q6Ik00LjUgMTAuMjkxQTQgNCAwIDAgMCA2IDE4In1dLFsicGF0aCIse2Q6Ik02LjAwMiA1LjEyNWEzIDMgMCAwIDAgLjQgMS4zNzUifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciB1QyxyQ2U9ZygoKT0+e3VDPVtbInBhdGgiLHtkOiJNMTYgM3YyLjEwNyJ9XSxbInBhdGgiLHtkOiJNMTcgOWMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAyMiAxN2E1IDUgMCAwIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDMTMgMTEuNSAxNiA5IDE3IDkifV0sWyJwYXRoIix7ZDoiTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWg1LjI1MyJ9XSxbInBhdGgiLHtkOiJNMyA5aDguMjI4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBwQyxvQ2U9ZygoKT0+e3BDPVtbInBhdGgiLHtkOiJNMTIgMThWNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0In1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDEgMC01LjU5OCAxLjUifV0sWyJwYXRoIix7ZDoiTTE3Ljk5NyA1LjEyNWE0IDQgMCAwIDEgMi41MjYgNS43NyJ9XSxbInBhdGgiLHtkOiJNMTggMThhNCA0IDAgMCAwIDItNy40NjQifV0sWyJwYXRoIix7ZDoiTTE5Ljk2NyAxNy40ODNBNCA0IDAgMSAxIDEyIDE4YTQgNCAwIDEgMS03Ljk2Ny0uNTE3In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0yLTcuNDY0In1dLFsicGF0aCIse2Q6Ik02LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NyJ9XV19KTt2YXIgaEMsbkNlPWcoKCk9PntoQz1bWyJwYXRoIix7ZDoiTTEyIDl2MS4yNTgifV0sWyJwYXRoIix7ZDoiTTE2IDN2NS40NiJ9XSxbInBhdGgiLHtkOiJNMjEgOS4xMThWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDUuNzUifV0sWyJwYXRoIix7ZDoiTTIyIDE3LjVjMCAyLjQ5OS0xLjc1IDMuNzQ5LTMuODMgNC40NzRhLjUuNSAwIDAgMS0uMzM1LS4wMDVjLTIuMDg1LS43Mi0zLjgzNS0xLjk3LTMuODM1LTQuNDdWMTRhLjUuNSAwIDAgMSAuNS0uNDk5YzEgMCAyLjI1LS42IDMuMTItMS4zNmEuNi42IDAgMCAxIC43Ni0uMDAxYy44NzUuNzY1IDIuMTIgMS4zNiAzLjEyIDEuMzZhLjUuNSAwIDAgMSAuNS41eiJ9XSxbInBhdGgiLHtkOiJNMyAxNWg3In1dLFsicGF0aCIse2Q6Ik0zIDloMTIuMTQyIn1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBmQyxsQ2U9ZygoKT0+e2ZDPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV0sWyJwYXRoIix7ZDoiTTE2IDE1djYifV0sWyJwYXRoIix7ZDoiTTE2IDN2NiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBtQyxjQ2U9ZygoKT0+e21DPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgZ0MsZENlPWcoKCk9PntnQz1bWyJwYXRoIix7ZDoiTTEwIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4IDIwdjIifV0sWyJwYXRoIix7ZDoiTTIxIDIwSDMifV0sWyJwYXRoIix7ZDoiTTYgMjB2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEyIn1dLFsicmVjdCIse3g6IjQiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMCIscng6IjIifV1dfSk7dmFyIGJDLHVDZT1nKCgpPT57YkM9W1sicGF0aCIse2Q6Ik0xMiAxMXY0In1dLFsicGF0aCIse2Q6Ik0xNCAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOCA2djE0In1dLFsicGF0aCIse2Q6Ik02IDZ2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgdkMscENlPWcoKCk9Pnt2Qz1bWyJwYXRoIix7ZDoiTTE2IDIwVjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjE2In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIHhDLGhDZT1nKCgpPT57eEM9W1sicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDEwYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMjBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMiJ9XV19KTt2YXIgeUMsZkNlPWcoKCk9Pnt5Qz1bWyJwYXRoIix7ZDoibTE2IDIyLTEtNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0yaC0zYTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtNCAwdjVhMSAxIDAgMCAxLTEgMUg2YTIgMiAwIDAgMC0yIDJ2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNEg1bC0xLjk3MyA2Ljc2N0ExIDEgMCAwIDAgNCAyMmgxNmExIDEgMCAwIDAgLjk3My0xLjIzM3oifV0sWyJwYXRoIix7ZDoibTggMjIgMS00In1dXX0pO3ZhciB3QyxtQ2U9ZygoKT0+e3dDPVtbInBhdGgiLHtkOiJtMTEgMTAgMyAzIn1dLFsicGF0aCIse2Q6Ik02LjUgMjFBMy41IDMuNSAwIDEgMCAzIDE3LjVhMi42MiAyLjYyIDAgMCAxLS43MDggMS43OTJBMSAxIDAgMCAwIDMgMjF6In1dLFsicGF0aCIse2Q6Ik05Ljk2OSAxNy4wMzEgMjEuMzc4IDUuNjI0YTEgMSAwIDAgMC0zLjAwMi0zLjAwMkw2Ljk2NyAxNC4wMzEifV1dfSk7dmFyIGtDLGdDZT1nKCgpPT57a0M9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTRhNCA0IDAgMCAxIDQgNHYxLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0xNy4xMjMgMTcuMTIzQTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSAxLjcyLTMuMjg3In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTMuMzQ0In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkuNzEyIDQuMDZBMyAzIDAgMCAxIDE1IDZ2MS4xMyJ9XV19KTt2YXIgU0MsYkNlPWcoKCk9PntTQz1bWyJwYXRoIix7ZDoiTTcuMDAxIDE1LjA4NUExLjUgMS41IDAgMCAxIDkgMTYuNSJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiOC41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiNS41In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjQuNSIscjoiMi41In1dXX0pO3ZhciBfQyx2Q2U9ZygoKT0+e19DPVtbInBhdGgiLHtkOiJNMTAgMTkuNjU1QTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSA0LTRoNGE0IDQgMCAwIDEgNCAzLjk3In1dLFsicGF0aCIse2Q6Ik0xNCAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dfSk7dmFyIE1DLHhDZT1nKCgpPT57TUM9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOSJ9XSxbInBhdGgiLHtkOiJNMTQgN2E0IDQgMCAwIDEgNCA0djNhNiA2IDAgMCAxLTEyIDB2LTNhNCA0IDAgMCAxIDQtNHoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMjFhNCA0IDAgMCAwLTMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0yMiAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dfSk7dmFyIHpDLHlDZT1nKCgpPT57ekM9W1sicGF0aCIse2Q6Ik0xMiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDIydi0zYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjMifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgQ0Msd0NlPWcoKCk9PntDQz1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMjFWNWEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxNiJ9XV19KTt2YXIgVEMsa0NlPWcoKCk9PntUQz1bWyJwYXRoIix7ZDoiTTQgNiAyIDcifV0sWyJwYXRoIix7ZDoiTTEwIDZoNCJ9XSxbInBhdGgiLHtkOiJtMjIgNy0yLTEifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMWgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMXYtMiJ9XV19KTt2YXIgJEMsU0NlPWcoKCk9PnskQz1bWyJwYXRoIix7ZDoiTTggNnY2In1dLFsicGF0aCIse2Q6Ik0xNSA2djYifV0sWyJwYXRoIix7ZDoiTTIgMTJoMTkuNiJ9XSxbInBhdGgiLHtkOiJNMTggMThoM3MuNS0xLjcuOC0yLjhjLjEtLjQuMi0uOC4yLTEuMiAwLS40LS4xLS44LS4yLTEuMmwtMS40LTVDMjAuMSA2LjggMTkuMSA2IDE4IDZINGEyIDIgMCAwIDAtMiAydjEwaDMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgREMsX0NlPWcoKCk9PntEQz1bWyJwYXRoIix7ZDoiTTE3IDE5YTEgMSAwIDAgMS0xLTF2LTJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE5IDE0VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWMTAifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0zIDVWMyJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjZhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyA1VjMifV1dfSk7dmFyIExDLE1DZT1nKCgpPT57TEM9W1sicGF0aCIse2Q6Ik0xMCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmguMDEifV0sWyJwYXRoIix7ZDoibTIgOSAyMC01In1dLFsicGF0aCIse2Q6Ik0xMiAxMlY2LjUifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEwIix4OiI0Iix5OiIxMiIscng6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgRUMsekNlPWcoKCk9PntFQz1bWyJwYXRoIix7ZDoiTTE2IDEzSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDMifV0sWyJwYXRoIix7ZDoibTcuMiA3LjktMy4zODggMi41QTIgMiAwIDAgMCAzIDEyLjAxVjIwYTEgMSAwIDAgMCAxIDFoMTZhMSAxIDAgMCAwIDEtMXYtOC42NTRjMC0yLTIuNDQtNi4wMjYtNi40NC04LjAyNmExIDEgMCAwIDAtMS4wODIuMDU3TDEwLjQgNS42In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiIyIn1dXX0pO3ZhciBQQyxDQ2U9ZygoKT0+e1BDPVtbInBhdGgiLHtkOiJNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNCAxNnMuNS0xIDItMSAyLjUgMiA0IDIgMi41LTIgNC0yIDIuNSAyIDQgMiAyLTEgMi0xIn1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dLFsicGF0aCIse2Q6Ik03IDh2MyJ9XSxbInBhdGgiLHtkOiJNMTIgOHYzIn1dLFsicGF0aCIse2Q6Ik0xNyA4djMifV0sWyJwYXRoIix7ZDoiTTcgNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyA0aC4wMSJ9XV19KTt2YXIgSUMsVENlPWcoKCk9PntJQz1bWyJwYXRoIix7ZDoiTTExIDE0aDF2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBBQywkQ2U9ZygoKT0+e0FDPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNiIseTE6IjE0Iix5MjoiMTgifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XV19KTt2YXIgTkMsRENlPWcoKCk9PntOQz1bWyJwYXRoIix7ZDoibTE0IDE4IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTR2OCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMzU0VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjM0MyJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIFJDLExDZT1nKCgpPT57UkM9W1sicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNDNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDkifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBPQyxFQ2U9ZygoKT0+e09DPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dfSk7dmFyIEZDLFBDZT1nKCgpPT57RkM9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMiAyIDQtNCJ9XV19KTt2YXIgQkMsSUNlPWcoKCk9PntCQz1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSA3LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXX0pO3ZhciBIQyxBQ2U9ZygoKT0+e0hDPVtbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuNDcgMTQuMzA1LjM4Mi45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBxQyxOQ2U9ZygoKT0+e3FDPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC4wMSJ9XV19KTt2YXIgakMsUkNlPWcoKCk9PntqQz1bWyJwYXRoIix7ZDoiTTMgMjBhMiAyIDAgMCAwIDIgMmgxMGEyLjQgMi40IDAgMCAwIDEuNzA2LS43MDZsMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAyMSAxNlY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJ2LTVhMSAxIDAgMCAxIDEtMWg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dXX0pO3ZhciBWQyxPQ2U9ZygoKT0+e1ZDPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dXX0pO3ZhciBVQyxGQ2U9ZygoKT0+e1VDPVtbInBhdGgiLHtkOiJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgV0MsQkNlPWcoKCk9PntXQz1bWyJwYXRoIix7ZDoiTTQuMiA0LjJBMiAyIDAgMCAwIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAxLjgyLTEuMTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjVWNmEyIDIgMCAwIDAtMi0ySDkuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDcifV0sWyJwYXRoIix7ZDoiTTIxIDEwaC01LjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgR0MsSENlPWcoKCk9PntHQz1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIEtDLHFDZT1nKCgpPT57S0M9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTEwIDE2aDQifV0sWyJwYXRoIix7ZDoiTTEyIDE0djQifV1dfSk7dmFyIFlDLGpDZT1nKCgpPT57WUM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC02In1dLFsicGF0aCIse2Q6Ik0xMyAxOEg3In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMThoLjAxIn1dXX0pO3ZhciBaQyxWQ2U9ZygoKT0+e1pDPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIFhDLFVDZT1nKCgpPT57WEM9W1sicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDExLjc1VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjI1In1dLFsicGF0aCIse2Q6Im0yMiAyMi0xLjg3NS0xLjg3NSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUUMsV0NlPWcoKCk9PntRQz1bWyJwYXRoIix7ZDoiTTExIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoibTIxIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMjEgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIxIDguNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNC4zIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDQifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBKQyxHQ2U9ZygoKT0+e0pDPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE3IDIyIDUtNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dXX0pO3ZhciBlVCxLQ2U9ZygoKT0+e2VUPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im0xNCAxNC00IDQifV0sWyJwYXRoIix7ZDoibTEwIDE0IDQgNCJ9XV19KTt2YXIgdFQsWUNlPWcoKCk9Pnt0VD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV19KTt2YXIgYVQsWkNlPWcoKCk9PnthVD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTUuNzI2IDIxLjAxQTIgMiAwIDAgMSAxNCAyMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMTggMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTggOGgxNCJ9XSxbInJlY3QiLHt4OiI4Iix5OiIzIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBzVCxYQ2U9ZygoKT0+e3NUPVtbInBhdGgiLHtkOiJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1In1dLFsicGF0aCIse2Q6Ik05LjY5NSA0LjAyNEEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQifV1dfSk7dmFyIGlULFFDZT1nKCgpPT57aVQ9W1sicGF0aCIse2Q6Ik0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMyJ9XV19KTt2YXIgclQsSkNlPWcoKCk9PntyVD1bWyJwYXRoIix7ZDoiTTUuNyAyMWEyIDIgMCAwIDEtMy41LTJsOC42LTE0YTYgNiAwIDAgMSAxMC40IDYgMiAyIDAgMSAxLTMuNDY0LTIgMiAyIDAgMSAwLTMuNDY0LTJaIn1dLFsicGF0aCIse2Q6Ik0xNy43NSA3IDE1IDIuMSJ9XSxbInBhdGgiLHtkOiJNMTAuOSA0LjggMTMgOSJ9XSxbInBhdGgiLHtkOiJtNy45IDkuNyAyIDQuNCJ9XSxbInBhdGgiLHtkOiJNNC45IDE0LjcgNyAxOC45In1dXX0pO3ZhciBvVCxlVGU9ZygoKT0+e29UPVtbInBhdGgiLHtkOiJNMTAgN3YxMC45In1dLFsicGF0aCIse2Q6Ik0xNCA2LjFWMTcifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Ik0xNi41MzYgNy40NjVhNSA1IDAgMCAwLTcuMDcyIDBsLTIgMmE1IDUgMCAwIDAgMCA3LjA3IDUgNSAwIDAgMCA3LjA3MiAwbDItMmE1IDUgMCAwIDAgMC03LjA3In1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXX0pO3ZhciBuVCx0VGU9ZygoKT0+e25UPVtbInBhdGgiLHtkOiJNMTAgMTB2Ny45In1dLFsicGF0aCIse2Q6Ik0xMS44MDIgNi4xNDVhNSA1IDAgMCAxIDYuMDUzIDYuMDUzIn1dLFsicGF0aCIse2Q6Ik0xNCA2LjF2Mi4yNDMifV0sWyJwYXRoIix7ZDoibTE1LjUgMTUuNTcxLS45NjQuOTY0YTUgNSAwIDAgMS03LjA3MSAwIDUgNSAwIDAgMSAwLTcuMDdsLjk2NC0uOTY1In1dLFsicGF0aCIse2Q6Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXX0pO3ZhciBsVCxhVGU9ZygoKT0+e2xUPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTRjMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSJ9XSxbInBhdGgiLHtkOiJNMTMuOTg4IDguMzI3QzEzLjkwMiA2LjA1NCAxMy4zNjUgMy44MiAxMiAyYTkuMyA5LjMgMCAwIDAtMS40NDUgMi45In1dLFsicGF0aCIse2Q6Ik0xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEuMDI0IDE1LjM3OEExNSAxNSAwIDAgMCAyMiAxNWMtLjQyNi0xLjI3OS0yLjY3LTIuNTU3LTQuMjUtMi45MDcifV0sWyJwYXRoIix7ZDoiTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIn1dXX0pO3ZhciBjVCxzVGU9ZygoKT0+e2NUPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV0sWyJwYXRoIix7ZDoiTTcgMTJjLTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyAxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01IDAgMCAyLjUuNSA2LTEtLjUtMS41LTMuNS0zLTUtMyAxLjUtMSA0LTQgNC02LTIuNSAwLTUuNSAxLjUtNyAzIDAtMi41LS41LTUtMi03LTEuNSAyLTIgNC41LTIgNy0xLjUtMS41LTQuNS0zLTctMyAwIDIgMi41IDUgNCA2In1dXX0pO3ZhciBkVCxpVGU9ZygoKT0+e2RUPVtbInBhdGgiLHtkOiJNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41In1dLFsicGF0aCIse2Q6Ik0xNyAxMWgtLjUifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNyAxMWg0In1dLFsicGF0aCIse2Q6Ik03IDE1aDIuNSJ9XV19KTt2YXIgQWYsclRlPWcoKCk9PntBZj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE0Iix4OiIzIix5OiI1IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTVoNE0xNSAxNWgyTTcgMTFoMk0xMyAxMWg0In1dXX0pO3ZhciB1VCxvVGU9ZygoKT0+e3VUPVtbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dfSk7dmFyIHBULG5UZT1nKCgpPT57cFQ9W1sicGF0aCIse2Q6Ik0xOSAxN2gyYy42IDAgMS0uNCAxLTF2LTNjMC0uOS0uNy0xLjctMS41LTEuOUMxOC43IDEwLjYgMTYgMTAgMTYgMTBzLTEuMy0xLjQtMi4yLTIuM2MtLjUtLjQtMS4xLS43LTEuOC0uN0g1Yy0uNiAwLTEuMS40LTEuNC45bC0xLjQgMi45QTMuNyAzLjcgMCAwIDAgMiAxMnY0YzAgLjYuNCAxIDEgMWgyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjIifV1dfSk7dmFyIGhULGxUZT1nKCgpPT57aFQ9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciBmVCxjVGU9ZygoKT0+e2ZUPVtbInBhdGgiLHtkOiJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBtVCxkVGU9ZygoKT0+e21UPVtbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicmVjdCIse3g6IjgiLHk6IjEwIix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgZ1QsdVRlPWcoKCk9PntnVD1bWyJwYXRoIix7ZDoiTTIuMjcgMjEuN3M5Ljg3LTMuNSAxMi43My02LjM2YTQuNSA0LjUgMCAwIDAtNi4zNi02LjM3QzUuNzcgMTEuODQgMi4yNyAyMS43IDIuMjcgMjEuN3pNOC42NCAxNGwtMi4wNS0yLjA0TTE1LjM0IDE1bC0yLjQ2LTIuNDYifV0sWyJwYXRoIix7ZDoiTTIyIDlzLTEuMzMtMi0zLjUtMkMxNi44NiA3IDE1IDkgMTUgOXMxLjMzIDIgMy41IDJTMjIgOSAyMiA5eiJ9XSxbInBhdGgiLHtkOiJNMTUgMnMtMiAxLjMzLTIgMy41UzE1IDkgMTUgOXMyLTEuODQgMi0zLjVDMTcgMy4zMyAxNSAyIDE1IDJ6In1dXX0pO3ZhciBiVCxwVGU9ZygoKT0+e2JUPVtbInBhdGgiLHtkOiJNMTAgOXY3In1dLFsicGF0aCIse2Q6Ik0xNCA2djEwIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMi41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiMTIuNSIscjoiMy41In1dXX0pO3ZhciB2VCxoVGU9ZygoKT0+e3ZUPVtbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0yMiA5djcifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxMi41IixyOiIzLjUifV1dfSk7dmFyIHhULGZUZT1nKCgpPT57eFQ9W1sicGF0aCIse2Q6Ik0xNSAxMWg0LjVhMSAxIDAgMCAxIDAgNWgtNGEuNS41IDAgMCAxLS41LS41di05YS41LjUgMCAwIDEgLjUtLjVoM2ExIDEgMCAwIDEgMCA1In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciB5VCxtVGU9ZygoKT0+e3lUPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMifV1dfSk7dmFyIHdULGdUZT1nKCgpPT57d1Q9W1sicGF0aCIse2Q6Ik0yIDhWNmEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxMmE5IDkgMCAwIDEgOCA4In1dLFsicGF0aCIse2Q6Ik0yIDE2YTUgNSAwIDAgMSA0IDQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyLjAxIix5MToiMjAiLHkyOiIyMCJ9XV19KTt2YXIga1QsYlRlPWcoKCk9PntrVD1bWyJwYXRoIix7ZDoiTTEwIDVWMyJ9XSxbInBhdGgiLHtkOiJNMTQgNVYzIn1dLFsicGF0aCIse2Q6Ik0xNSAyMXYtM2EzIDMgMCAwIDAtNiAwdjMifV0sWyJwYXRoIix7ZDoiTTE4IDN2OCJ9XSxbInBhdGgiLHtkOiJNMTggNUg2In1dLFsicGF0aCIse2Q6Ik0yMiAxMUgyIn1dLFsicGF0aCIse2Q6Ik0yMiA5djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjkifV0sWyJwYXRoIix7ZDoiTTYgM3Y4In1dXX0pO3ZhciBTVCx2VGU9ZygoKT0+e1NUPVtbInBhdGgiLHtkOiJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaIn1dXX0pO3ZhciBfVCx4VGU9ZygoKT0+e19UPVtbInBhdGgiLHtkOiJtMTIuMzA5IDYuNjUyIDQuNzk3IDIuNDAxYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0uNTAxIDEuMDAxLjYwNS42MDVoMi43MjVhMSAxIDAgMCAxIC44OTQgMS40NDdsLS43MjQgMS40NDgifV0sWyJwYXRoIix7ZDoibTE1LjE2NiAxNS4xNjYtLjcxOSAxLjQzOWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45IDIuOSAwIDAgMSAuODczLTEuMDM3In1dLFsicGF0aCIse2Q6Ik0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFsMS40NDEtMi45MDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMiAyMXYtNCJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XV19KTt2YXIgTVQseVRlPWcoKCk9PntNVD1bWyJwYXRoIix7ZDoiTTE2Ljc1IDEyaDMuNjMyYTEgMSAwIDAgMSAuODk0IDEuNDQ3bC0yLjAzNCA0LjA2OWExIDEgMCAwIDEtMS43MDguMTM0bC0yLjEyNC0yLjk3In1dLFsicGF0aCIse2Q6Ik0xNy4xMDYgOS4wNTNhMSAxIDAgMCAxIC40NDcgMS4zNDFsLTMuMTA2IDYuMjExYTEgMSAwIDAgMS0xLjM0Mi40NDdMMy42MSAxMi4zYTIuOTIgMi45MiAwIDAgMS0xLjMtMy45MUwzLjY5IDUuNmEyLjkyIDIuOTIgMCAwIDEgMy45Mi0xLjN6In1dLFsicGF0aCIse2Q6Ik0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMXYtNCJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XV19KTt2YXIgTmYsd1RlPWcoKCk9PntOZj1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExLjIwN2EuNS41IDAgMCAxIC4xNDYtLjM1M2wyLTJhLjUuNSAwIDAgMSAuNzA4IDBsMy4yOTIgMy4yOTJhLjUuNSAwIDAgMCAuNzA4IDBsNC4yOTItNC4yOTJhLjUuNSAwIDAgMSAuODU0LjM1M1YxNmExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIFJmLGtUZT1nKCgpPT57UmY9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiI3Iix5OiIxMyIsd2lkdGg6IjkiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiNSIsd2lkdGg6IjEyIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciB6VCxTVGU9ZygoKT0+e3pUPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgzIn1dLFsicGF0aCIse2Q6Ik03IDZoMTIifV1dfSk7dmFyIENULF9UZT1nKCgpPT57Q1Q9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMWg4In1dLFsicGF0aCIse2Q6Ik03IDE2aDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV19KTt2YXIgVFQsTVRlPWcoKCk9PntUVD1bWyJwYXRoIix7ZDoiTTExIDEzdjQifV0sWyJwYXRoIix7ZDoiTTE1IDV2NCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgT2YselRlPWcoKCk9PntPZj1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDE2aDgifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTIifV0sWyJwYXRoIix7ZDoiTTcgNmgzIn1dXX0pO3ZhciBGZixDVGU9ZygoKT0+e0ZmPVtbInBhdGgiLHtkOiJNOSA1djQifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiNyIseToiOSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTkgMTV2MiJ9XSxbInBhdGgiLHtkOiJNMTcgM3YyIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjgiLHg6IjE1Iix5OiI1IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2MyJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dfSk7dmFyIEJmLFRUZT1nKCgpPT57QmY9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXX0pO3ZhciAkVCwkVGU9ZygoKT0+eyRUPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTd2LTMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDE3VjUifV1dfSk7dmFyIEhmLERUZT1nKCgpPT57SGY9W1sicGF0aCIse2Q6Ik0xMyAxN1Y5In1dLFsicGF0aCIse2Q6Ik0xOCAxN1Y1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV19KTt2YXIgRFQsTFRlPWcoKCk9PntEVD1bWyJwYXRoIix7ZDoiTTExIDEzSDcifV0sWyJwYXRoIix7ZDoiTTE5IDloLTQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI1Iix3aWR0aDoiNCIsaGVpZ2h0OiIxMiIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOSIscng6IjEifV1dfSk7dmFyIHFmLEVUZT1nKCgpPT57cWY9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNMTggMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTdWNSJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV19KTt2YXIgTFQsUFRlPWcoKCk9PntMVD1bWyJwYXRoIix7ZDoiTTEwIDZoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNiJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTFoNyJ9XV19KTt2YXIgamYsSVRlPWcoKCk9PntqZj1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Im0xOSA5LTUgNS00LTQtMyAzIn1dXX0pO3ZhciBFVCxBVGU9ZygoKT0+e0VUPVtbInBhdGgiLHtkOiJtMTMuMTEgNy42NjQgMS43OCAyLjY3MiJ9XSxbInBhdGgiLHtkOiJtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCJ9XSxbInBhdGgiLHtkOiJtMjAgNC02LjA2IDEuNTE1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjIifV1dfSk7dmFyIFBULE5UZT1nKCgpPT57UFQ9W1sicGF0aCIse2Q6Ik01IDIxVjMifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjkifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi02In1dXX0pO3ZhciBWZixSVGU9ZygoKT0+e1ZmPVtbInBhdGgiLHtkOiJNNSAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgMjFWOSJ9XSxbInBhdGgiLHtkOiJNMTkgMjFWMyJ9XV19KTt2YXIgVWYsT1RlPWcoKCk9PntVZj1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjkifV1dfSk7dmFyIElULEZUZT1nKCgpPT57SVQ9W1sicGF0aCIse2Q6Ik0xMiAxNnY1In1dLFsicGF0aCIse2Q6Ik0xNiAxNHY3In1dLFsicGF0aCIse2Q6Ik0yMCAxMHYxMSJ9XSxbInBhdGgiLHtkOiJtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1In1dLFsicGF0aCIse2Q6Ik00IDE4djMifV0sWyJwYXRoIix7ZDoiTTggMTR2NyJ9XV19KTt2YXIgV2YsQlRlPWcoKCk9PntXZj1bWyJwYXRoIix7ZDoiTTYgNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTloOCJ9XV19KTt2YXIgR2YsSFRlPWcoKCk9PntHZj1bWyJwYXRoIix7ZDoiTTIxIDEyYy41NTIgMCAxLjAwNS0uNDQ5Ljk1LS45OThhMTAgMTAgMCAwIDAtOC45NTMtOC45NTFjLS41NS0uMDU1LS45OTguMzk4LS45OTguOTV2OGExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMjEuMjEgMTUuODlBMTAgMTAgMCAxIDEgOCAyLjgzIn1dXX0pO3ZhciBLZixxVGU9ZygoKT0+e0tmPVtbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjUuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTEuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XV19KTt2YXIgQVQsalRlPWcoKCk9PntBVD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDE2Yy41LTIgMS41LTcgNC03IDIgMCAyIDMgNCAzIDIuNSAwIDQuNS01IDUtNyJ9XV19KTt2YXIgTlQsVlRlPWcoKCk9PntOVD1bWyJwYXRoIix7ZDoiTTE4IDYgNyAxN2wtNS01In1dLFsicGF0aCIse2Q6Im0yMiAxMC03LjUgNy41TDEzIDE2In1dXX0pO3ZhciBSVCxVVGU9ZygoKT0+e1JUPVtbInBhdGgiLHtkOiJNMjAgNEw5IDE1In1dLFsicGF0aCIse2Q6Ik0yMSAxOUwzIDE5In1dLFsicGF0aCIse2Q6Ik05IDE1TDQgMTAifV1dfSk7dmFyIE9ULFdUZT1nKCgpPT57T1Q9W1sicGF0aCIse2Q6Ik0yMCA2IDkgMTdsLTUtNSJ9XV19KTt2YXIgRlQsR1RlPWcoKCk9PntGVD1bWyJwYXRoIix7ZDoiTTE3IDIxYTEgMSAwIDAgMCAxLTF2LTUuMzVjMC0uNDU3LjMxNi0uODQ0LjcyNy0xLjA0MWE0IDQgMCAwIDAtMi4xMzQtNy41ODkgNSA1IDAgMCAwLTkuMTg2IDAgNCA0IDAgMCAwLTIuMTM0IDcuNTg4Yy40MTEuMTk4LjcyNy41ODUuNzI3IDEuMDQxVjIwYTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik02IDE3aDEyIn1dXX0pO3ZhciBCVCxLVGU9ZygoKT0+e0JUPVtbInBhdGgiLHtkOiJNMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTEyIDE3YTUgNSAwIDAgMCAxMCAwYzAtMi43Ni0yLjUtNS01LTMtMi41LTItNSAuMjQtNSAzWiJ9XSxbInBhdGgiLHtkOiJNNyAxNGMzLjIyLTIuOTEgNC4yOS04Ljc1IDUtMTIgMS42NiAyLjM4IDQuOTQgOSA1IDEyIn1dLFsicGF0aCIse2Q6Ik0yMiA5Yy00LjI5IDAtNy4xNC0yLjMzLTEwLTcgNS43MSAwIDEwIDQuNjcgMTAgN1oifV1dfSk7dmFyIEhULFlUZT1nKCgpPT57SFQ9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV19KTt2YXIgcVQsWlRlPWcoKCk9PntxVD1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNSAxOGMxLjUtLjYxNSAzLTIuNDYxIDMtNC45MjNDMTggOC43NjkgMTQuNSA0LjQ2MiAxMiAyIDkuNSA0LjQ2MiA2IDguNzcgNiAxMy4wNzcgNiAxNS41MzkgNy41IDE3LjM4NSA5IDE4In1dLFsicGF0aCIse2Q6Im0xNiA3LTIuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMmg2In1dXX0pO3ZhciBqVCxYVGU9ZygoKT0+e2pUPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE2LjUgMThjMS0yIDIuNS01IDIuNS05YTcgNyAwIDAgMC03LTdINi42MzVhMSAxIDAgMCAwLS43NjggMS42NEw3IDVsLTIuMzIgNS44MDJhMiAyIDAgMCAwIC45NSAyLjUyNmwyLjg3IDEuNDU2In1dLFsicGF0aCIse2Q6Im0xNSA1IDEuNDI1LTEuNDI1In1dLFsicGF0aCIse2Q6Im0xNyA4IDEuNTMtMS41MyJ9XSxbInBhdGgiLHtkOiJNOS43MTMgMTIuMTg1IDcgMTgifV1dfSk7dmFyIFZULFFUZT1nKCgpPT57VlQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMCAxLjUgOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCAxLjUtOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjQifV1dfSk7dmFyIFVULEpUZT1nKCgpPT57VVQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoibTE3IDE4LTEtOSJ9XSxbInBhdGgiLHtkOiJNNiAydjVhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNiA0aDEyIn1dLFsicGF0aCIse2Q6Im03IDE4IDEtOSJ9XV19KTt2YXIgV1QsZSRlPWcoKCk9PntXVD1bWyJwYXRoIix7ZDoibTYgOSA2IDYgNi02In1dXX0pO3ZhciBHVCx0JGU9ZygoKT0+e0dUPVtbInBhdGgiLHtkOiJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiJ9XSxbInBhdGgiLHtkOiJtMjAgOS0zIDkifV0sWyJwYXRoIix7ZDoibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCJ9XSxbInBhdGgiLHtkOiJNNyAxOCA0IDkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiNyIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNyIscjoiMiJ9XV19KTt2YXIgS1QsYSRlPWcoKCk9PntLVD1bWyJwYXRoIix7ZDoibTE3IDE4LTYtNiA2LTYifV0sWyJwYXRoIix7ZDoiTTcgNnYxMiJ9XV19KTt2YXIgWVQscyRlPWcoKCk9PntZVD1bWyJwYXRoIix7ZDoibTcgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTcgNnYxMiJ9XV19KTt2YXIgWlQsaSRlPWcoKCk9PntaVD1bWyJwYXRoIix7ZDoibTE1IDE4LTYtNiA2LTYifV1dfSk7dmFyIFhULHIkZT1nKCgpPT57WFQ9W1sicGF0aCIse2Q6Im05IDE4IDYtNi02LTYifV1dfSk7dmFyIFFULG8kZT1nKCgpPT57UVQ9W1sicGF0aCIse2Q6Im0xOCAxNS02LTYtNiA2In1dXX0pO3ZhciBKVCxuJGU9ZygoKT0+e0pUPVtbInBhdGgiLHtkOiJtNyAyMCA1LTUgNSA1In1dLFsicGF0aCIse2Q6Im03IDQgNSA1IDUtNSJ9XV19KTt2YXIgZSQsbCRlPWcoKCk9PntlJD1bWyJwYXRoIix7ZDoibTcgNiA1IDUgNS01In1dLFsicGF0aCIse2Q6Im03IDEzIDUgNSA1LTUifV1dfSk7dmFyIHQkLGMkZT1nKCgpPT57dCQ9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTcgNyA1IDUtNSA1In1dLFsicGF0aCIse2Q6Im03IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dfSk7dmFyIGEkLGQkZT1nKCgpPT57YSQ9W1sicGF0aCIse2Q6Im05IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTUgNyA1IDUtNSA1In1dXX0pO3ZhciBzJCx1JGU9ZygoKT0+e3MkPVtbInBhdGgiLHtkOiJtMTEgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJtMTggMTctNS01IDUtNSJ9XV19KTt2YXIgaSQscCRlPWcoKCk9PntpJD1bWyJwYXRoIix7ZDoibTIwIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTQgMTcgNS01LTUtNSJ9XV19KTt2YXIgciQsaCRlPWcoKCk9PntyJD1bWyJwYXRoIix7ZDoibTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJtMTMgMTcgNS01LTUtNSJ9XV19KTt2YXIgbyQsZiRlPWcoKCk9PntvJD1bWyJwYXRoIix7ZDoibTE3IDExLTUtNS01IDUifV0sWyJwYXRoIix7ZDoibTE3IDE4LTUtNS01IDUifV1dfSk7dmFyIG4kLG0kZT1nKCgpPT57biQ9W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXX0pO3ZhciBsJCxnJGU9ZygoKT0+e2wkPVtbInBhdGgiLHtkOiJNMTAgOWg0In1dLFsicGF0aCIse2Q6Ik0xMiA3djUifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJtMTggOSAzLjUyIDIuMTQ3YTEgMSAwIDAgMSAuNDguODU0VjE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Ljk5OWExIDEgMCAwIDEgLjQ4LS44NTRMNiA5In1dLFsicGF0aCIse2Q6Ik02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0In1dXX0pO3ZhciBjJCxiJGU9ZygoKT0+e2MkPVtbInBhdGgiLHtkOiJNMTIgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMyJ9XSxbInBhdGgiLHtkOiJNMTggOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0uNS44NjYifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Ik03IDEydjQifV1dfSk7dmFyIGQkLHYkZT1nKCgpPT57ZCQ9W1sicGF0aCIse2Q6Ik0xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0In1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXX0pO3ZhciBZZix4JGU9ZygoKT0+e1lmPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIFpmLHkkZT1nKCgpPT57WmY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoibTggMTIgNCA0IDQtNCJ9XV19KTt2YXIgWGYsdyRlPWcoKCk9PntYZj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XV19KTt2YXIgUWYsayRlPWcoKCk9PntRZj1bWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAxIDEgMTAgMTAifV0sWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTggMjJIMnYtNiJ9XV19KTt2YXIgSmYsUyRlPWcoKCk9PntKZj1bWyJwYXRoIix7ZDoiTTEyIDIyYTEwIDEwIDAgMSAxIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTZ2NmgtNiJ9XV19KTt2YXIgZW0sXyRlPWcoKCk9PntlbT1bWyJwYXRoIix7ZDoiTTIgOFYyaDYifV0sWyJwYXRoIix7ZDoibTIgMiAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMkExMCAxMCAwIDEgMSAyIDEyIn1dXX0pO3ZhciB0bSxNJGU9ZygoKT0+e3RtPVtbInBhdGgiLHtkOiJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMTYgMmg2djYifV1dfSk7dmFyIGFtLHokZT1nKCgpPT57YW09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIHNtLEMkZT1nKCgpPT57c209W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXX0pO3ZhciBpbSxUJGU9ZygoKT0+e2ltPVtbInBhdGgiLHtkOiJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1In1dLFsicGF0aCIse2Q6Im05IDExIDMgM0wyMiA0In1dXX0pO3ZhciBybSwkJGU9ZygoKT0+e3JtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dXX0pO3ZhciBvbSxEJGU9ZygoKT0+e29tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgbm0sTCRlPWcoKCk9PntubT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE2IDEwLTQgNC00LTQifV1dfSk7dmFyIGxtLEUkZT1nKCgpPT57bG09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMCA4IDQgNC00IDQifV1dfSk7dmFyIGNtLFAkZT1nKCgpPT57Y209W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIHUkLEkkZT1nKCgpPT57dSQ9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMTgyYTEwIDEwIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgxOGExMCAxMCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNjA5IDMuNzIxYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yNzkgMTcuNjA5YTEwIDEwIDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0yMS44MTggMTAuMWExMCAxMCAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MjEgNi4zOTFhMTAgMTAgMCAwIDEgMi43LTIuNjkifV0sWyJwYXRoIix7ZDoiTTYuMzkxIDIwLjI3OWExMCAxMCAwIDAgMS0yLjY5LTIuNyJ9XV19KTt2YXIgZG0sQSRlPWcoKCk9PntkbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dfSk7dmFyIHAkLE4kZT1nKCgpPT57cCQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIGgkLFIkZT1nKCgpPT57aCQ9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMThhOS45MyA5LjkzIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42IDMuNzFhOS45NSA5Ljk1IDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yMS44MiAxMC4xYTkuOTMgOS45MyAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjkgMTcuNmE5Ljk1IDkuOTUgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODJhOS45NCA5Ljk0IDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik02LjQgMjAuMjlhOS45NSA5Ljk1IDAgMCAxLTIuNjktMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4IDEzLjlhOS45MyA5LjkzIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0zLjcxIDYuNGE5Ljk1IDkuOTUgMCAwIDEgMi43LTIuNjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgZiQsTyRlPWcoKCk9PntmJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDEyaC4wMSJ9XV19KTt2YXIgbSQsRiRlPWcoKCk9PnttJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgZyQsQiRlPWcoKCk9PntnJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIGIkLEgkZT1nKCgpPT57YiQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV19KTt2YXIgdiQscSRlPWcoKCk9Pnt2JD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dfSk7dmFyIHVtLGokZT1nKCgpPT57dW09W1sicGF0aCIse2Q6Ik0xNS42IDIuN2ExMCAxMCAwIDEgMCA1LjcgNS43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEzLjQgMTAuNiAxOSA1In1dXX0pO3ZhciBwbSxWJGU9ZygoKT0+e3BtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciB4JCxVJGU9ZygoKT0+e3gkPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XSxbInBhdGgiLHtkOiJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIn1dXX0pO3ZhciBobSxXJGU9ZygoKT0+e2htPVtbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3In1dLFsicGF0aCIse2Q6Ik0xMyAxM0g5In1dLFsicGF0aCIse2Q6Ik0xOS4wNzEgMTkuMDcxQTEgMSAwIDAgMSA0LjkzIDQuOTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNTcgMi42ODdhMTAgMTAgMCAwIDEgMTIuOTU2IDEyLjk1NiJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y5In1dXX0pO3ZhciBmbSxHJGU9ZygoKT0+e2ZtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5In1dXX0pO3ZhciBtbSxLJGU9ZygoKT0+e21tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgZ20sWSRlPWcoKCk9PntnbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dfSk7dmFyIGJtLFokZT1nKCgpPT57Ym09W1sicGF0aCIse2Q6Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciB5JCxYJGU9ZygoKT0+e3kkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgdm0sUSRlPWcoKCk9Pnt2bT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciB3JCxKJGU9ZygoKT0+e3ckPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTJoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNmg3In1dXX0pO3ZhciB4bSxlRGU9ZygoKT0+e3htPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1In1dXX0pO3ZhciBqMCx0RGU9ZygoKT0+e2owPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgeW0sYURlPWcoKCk9Pnt5bT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgayQsc0RlPWcoKCk9PntrJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgUyQsaURlPWcoKCk9PntTJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV19KTt2YXIgXyQsckRlPWcoKCk9PntfJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTExLjA1MSA3LjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2N2wtMS4xNTYtMS4xNTJhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XV19KTt2YXIgd20sb0RlPWcoKCk9Pnt3bT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJyZWN0Iix7eDoiOSIseToiOSIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIGttLG5EZT1nKCgpPT57a209W1sicGF0aCIse2Q6Ik0xNy45MjUgMjAuMDU2YTYgNiAwIDAgMC0xMS44NTEuMDAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIFNtLGxEZT1nKCgpPT57U209W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTcgMjAuNjYyVjE5YTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjEuNjYyIn1dXX0pO3ZhciBfbSxjRGU9ZygoKT0+e19tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIE0kLGREZT1nKCgpPT57TSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciB6JCx1RGU9ZygoKT0+e3okPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMSA5aDRhMiAyIDAgMCAwIDItMlYzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik03IDIxdi00YTIgMiAwIDAgMSAyLTJoNCJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciBDJCxwRGU9ZygoKT0+e0MkPVtbInBhdGgiLHtkOiJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6In1dLFsicGF0aCIse2Q6Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0In1dLFsicGF0aCIse2Q6Im0xNCAxMC01LjUgNS41In1dLFsicGF0aCIse2Q6Ik0xNCAxNy44NVYxMEg2LjE1In1dXX0pO3ZhciBUJCxoRGU9ZygoKT0+e1QkPVtbInBhdGgiLHtkOiJtMTIuMjk2IDMuNDY0IDMuMDIgMy45NTYifV0sWyJwYXRoIix7ZDoiTTIwLjIgNiAzIDExbC0uOS0yLjRjLS4zLTEuMS4zLTIuMiAxLjMtMi41bDEzLjUtNGMxLjEtLjMgMi4yLjMgMi41IDEuM3oifV0sWyJwYXRoIix7ZDoiTTMgMTFoMTh2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoibTYuMTggNS4yNzYgMy4xIDMuODk5In1dXX0pO3ZhciAkJCxmRGU9ZygoKT0+eyQkPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im05IDE0IDIgMiA0LTQifV1dfSk7dmFyIEQkLG1EZT1nKCgpPT57RCQ9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydi44MzIifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIEwkLGdEZT1nKCgpPT57TCQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE0SDExIn1dLFsicGF0aCIse2Q6Im0xNSAxMC00IDQgNCA0In1dXX0pO3ZhciBFJCxiRGU9ZygoKT0+e0UkPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMWg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmg0In1dLFsicGF0aCIse2Q6Ik04IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIFAkLHZEZT1nKCgpPT57UCQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTkgMTRoNiJ9XV19KTt2YXIgSSQseERlPWcoKCk9PntJJD1bWyJwYXRoIix7ZDoiTTExIDE0aDEwIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxLjM0NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjc5My0xLjExMyJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgTW0seURlPWcoKCk9PntNbT1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uNSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAxLjczIDEifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciB6bSx3RGU9ZygoKT0+e3ptPVtbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEuMzQgMTUuNjY0YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTggMjJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBBJCxrRGU9ZygoKT0+e0EkPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE3di02In1dXX0pO3ZhciBOJCxTRGU9ZygoKT0+e04kPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDEydi0xaDZ2MSJ9XSxbInBhdGgiLHtkOiJNMTEgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2NiJ9XV19KTt2YXIgUiQsX0RlPWcoKCk9PntSJD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTEtNiA2In1dLFsicGF0aCIse2Q6Im05IDExIDYgNiJ9XV19KTt2YXIgTyQsTURlPWcoKCk9PntPJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwyLTQifV1dfSk7dmFyIEYkLHpEZT1nKCgpPT57RiQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV1dfSk7dmFyIEIkLENEZT1nKCgpPT57QiQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTQtMiJ9XV19KTt2YXIgSCQsVERlPWcoKCk9PntIJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMi00In1dXX0pO3ZhciBxJCwkRGU9ZygoKT0+e3EkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2In1dXX0pO3ZhciBqJCxERGU9ZygoKT0+e2okPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQtMiJ9XV19KTt2YXIgViQsTERlPWcoKCk9PntWJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmg0In1dXX0pO3ZhciBVJCxFRGU9ZygoKT0+e1UkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XV19KTt2YXIgVyQsUERlPWcoKCk9PntXJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDQifV1dfSk7dmFyIEckLElEZT1nKCgpPT57RyQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djEwIn1dXX0pO3ZhciBLJCxBRGU9ZygoKT0+e0skPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bC00IDIifV1dfSk7dmFyIFkkLE5EZT1nKCgpPT57WSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTIgNCJ9XV19KTt2YXIgWiQsUkRlPWcoKCk9PntaJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nkg4In1dXX0pO3ZhciBYJCxPRGU9ZygoKT0+e1gkPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYifV1dfSk7dmFyIFEkLEZEZT1nKCgpPT57USQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMiAxIn1dLFsicGF0aCIse2Q6Ik0xMi4zMzcgMjEuOTk0YTEwIDEwIDAgMSAxIDkuNTg4LTguNzY3In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY4In1dXX0pO3ZhciBKJCxCRGU9ZygoKT0+e0okPVtbInBhdGgiLHtkOiJNMTIgNnY2bDEuNTYuNzgifV0sWyJwYXRoIix7ZDoiTTEzLjIyNyAyMS45MjVhMTAgMTAgMCAxIDEgOC43NjctOS41ODgifV0sWyJwYXRoIix7ZDoibTE0IDE4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dXX0pO3ZhciBlRCxIRGU9ZygoKT0+e2VEPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMTYtNS41IDUuNUwxNCAxOSJ9XV19KTt2YXIgdEQscURlPWcoKCk9Pnt0RD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXX0pO3ZhciBhRCxqRGU9ZygoKT0+e2FEPVtbInBhdGgiLHtkOiJNMTIgNnY2bDMuNjQ0IDEuODIyIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMS45MiAxMy4yNjdhMTAgMTAgMCAxIDAtOC42NTMgOC42NTMifV1dfSk7dmFyIHNELFZEZT1nKCgpPT57c0Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dXX0pO3ZhciBpRCxVRGU9ZygoKT0+e2lEPVtbInBhdGgiLHtkOiJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicGF0aCIse2Q6Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgckQsV0RlPWcoKCk9PntyRD1bWyJwYXRoIix7ZDoiTTEyIDEydjQifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC4xMjggMTYuOTQ5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhMSAxIDAgMCAxIDAgOWgtMS42NDIifV1dfSk7dmFyIG9ELEdEZT1nKCgpPT57b0Q9W1sicGF0aCIse2Q6Ik0yMSAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy41IDhoLTEuNzlBNyA3IDAgMSAwIDMgMTMuNjA3In1dLFsicGF0aCIse2Q6Ik03IDExdjRoNCJ9XSxbInBhdGgiLHtkOiJNOCAxOWE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNSA0LjgyIDQuODIgMCAwIDAtMy40MSAxLjQxTDcgMTUifV1dfSk7dmFyIG5ELEtEZT1nKCgpPT57bkQ9W1sicGF0aCIse2Q6Im0xNyAxNS01LjUgNS41TDkgMTgifV0sWyJwYXRoIix7ZDoiTTUuNTE2IDE2LjA3QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAzLjUwMSA3LjMyNyJ9XV19KTt2YXIgbEQsWURlPWcoKCk9PntsRD1bWyJwYXRoIix7ZDoibTEwLjg1MiAxOS43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoiTTEzLjE0OCAxOS43NzJhMyAzIDAgMSAwLTIuMjk2LTUuNTQ0bC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjUzIDIwLjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0In1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTUuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTguMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTQuMiAxNS4xYTcgNyAwIDEgMSA5LjkzLTkuODU4QTcgNyAwIDAgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxNS44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxOC4xNDgtLjkyMy4zODMifV1dfSk7dmFyIENtLFpEZT1nKCgpPT57Q209W1sicGF0aCIse2Q6Ik0xMiAxM3Y4bC00LTQifV0sWyJwYXRoIix7ZDoibTEyIDIxIDQtNCJ9XSxbInBhdGgiLHtkOiJNNC4zOTMgMTUuMjY5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjQzNiA4LjI4NCJ9XV19KTt2YXIgY0QsWERlPWcoKCk9PntjRD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTggMTl2MSJ9XSxbInBhdGgiLHtkOiJNOCAxNHYxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOXYxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHYxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMXYxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYxIn1dXX0pO3ZhciBkRCxRRGU9ZygoKT0+e2REPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmguMDEifV1dfSk7dmFyIHVELEpEZT1nKCgpPT57dUQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0g3In1dLFsicGF0aCIse2Q6Ik0xNyAyMUg5In1dXX0pO3ZhciBwRCxlTGU9ZygoKT0+e3BEPVtbInBhdGgiLHtkOiJNNiAxNi4zMjZBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIC41IDguOTczIn1dLFsicGF0aCIse2Q6Im0xMyAxMi0zIDVoNGwtMyA1In1dXX0pO3ZhciBoRCx0TGU9ZygoKT0+e2hEPVtbInBhdGgiLHtkOiJNMTEgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dLFsicGF0aCIse2Q6Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0In1dLFsicGF0aCIse2Q6Ik03IDE5djIifV1dfSk7dmFyIGZELGFMZT1nKCgpPT57ZkQ9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMCA2SDdhNSA1IDAgMSAxIDQuOS02eiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dXX0pO3ZhciBtRCxzTGU9ZygoKT0+e21EPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJtOS4yIDIyIDMtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMy0zIDcifV0sWyJwYXRoIix7ZDoibTE3IDEzLTMgNyJ9XV19KTt2YXIgZ0QsaUxlPWcoKCk9PntnRD1bWyJwYXRoIix7ZDoiTTEwLjk0IDUuMjc0QTcgNyAwIDAgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgNC4yMjIgNi4wNTcifV0sWyJwYXRoIix7ZDoiTTE4Ljc5NiAxOC44MUE0LjUgNC41IDAgMCAxIDE3LjUgMTlIOUE3IDcgMCAwIDEgNS43OSA1Ljc4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGJELHJMZT1nKCgpPT57YkQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHY2In1dLFsicGF0aCIse2Q6Ik04IDE0djYifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dfSk7dmFyIHZELG9MZT1nKCgpPT57dkQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC4wMSJ9XV19KTt2YXIgeEQsbkxlPWcoKCk9Pnt4RD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV19KTt2YXIgeUQsbExlPWcoKCk9Pnt5RD1bWyJwYXRoIix7ZDoibTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIwLjk5NiAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy40OTUgOGgtMS43OWE3IDcgMCAxIDAtMTIuNzA5IDUuNjA3In1dLFsicGF0aCIse2Q6Ik03IDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtNyAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV1dfSk7dmFyIHdELGNMZT1nKCgpPT57d0Q9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0xMyAyMkg3YTUgNSAwIDEgMSA0LjktNkgxM2EzIDMgMCAwIDEgMCA2WiJ9XV19KTt2YXIgVG0sZExlPWcoKCk9PntUbT1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTggMTcgNC00IDQgNCJ9XV19KTt2YXIga0QsdUxlPWcoKCk9PntrRD1bWyJwYXRoIix7ZDoiTTE3LjUgMTlIOWE3IDcgMCAxIDEgNi43MS05aDEuNzlhNC41IDQuNSAwIDEgMSAwIDlaIn1dXX0pO3ZhciBTRCxwTGU9ZygoKT0+e1NEPVtbInBhdGgiLHtkOiJNMTcuNSAxMmExIDEgMCAxIDEgMCA5SDkuMDA2YTcgNyAwIDEgMSA2LjcwMi05eiJ9XSxbInBhdGgiLHtkOiJNMjEuODMyIDlBMyAzIDAgMCAwIDE5IDdoLTIuMjA3YTUuNSA1LjUgMCAwIDAtMTAuNzIuNjEifV1dfSk7dmFyIF9ELGhMZT1nKCgpPT57X0Q9W1sicGF0aCIse2Q6Ik0xNi4xNyA3LjgzIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuMDIgMTJhMi44MjcgMi44MjcgMCAxIDEgMy44MS00LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDQuMDJhMi44MjcgMi44MjcgMCAxIDEgNC4xNyAzLjgxQTIuODI3IDIuODI3IDAgMSAxIDE5Ljk4IDEyYTIuODI3IDIuODI3IDAgMSAxLTMuODEgNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiAxOS45OGEyLjgyNyAyLjgyNyAwIDEgMS00LjE3LTMuODFBMSAxIDAgMSAxIDQgMTIifV0sWyJwYXRoIix7ZDoibTcuODMgNy44MyA4LjM0IDguMzQifV1dfSk7dmFyIE1ELGZMZT1nKCgpPT57TUQ9W1sicGF0aCIse2Q6Ik0xNy4yOCA5LjA1YTUuNSA1LjUgMCAxIDAtMTAuNTYgMEE1LjUgNS41IDAgMSAwIDEyIDE3LjY2YTUuNSA1LjUgMCAxIDAgNS4yOC04LjZaIn1dLFsicGF0aCIse2Q6Ik0xMiAxNy42NkwxMiAyMiJ9XV19KTt2YXIgJG0sbUxlPWcoKCk9PnskbT1bWyJwYXRoIix7ZDoibTE4IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Im0xNC41IDQtNSAxNiJ9XV19KTt2YXIgekQsZ0xlPWcoKCk9Pnt6RD1bWyJwYXRoIix7ZDoibTE2IDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoibTggNi02IDYgNiA2In1dXX0pO3ZhciBDRCxiTGU9ZygoKT0+e0NEPVtbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoiTTE2IDhhMSAxIDAgMCAxIDEgMXY4YTQgNCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMWgxNGE0IDQgMCAxIDEgMCA4aC0xIn1dLFsicGF0aCIse2Q6Ik02IDJ2MiJ9XV19KTt2YXIgVEQsdkxlPWcoKCk9PntURD1bWyJwYXRoIix7ZDoiTTExIDEwLjI3IDcgMy4zNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTMuNzMtNCA2LjkzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNyAyMC42Ni0xLTEuNzMifV0sWyJwYXRoIix7ZDoibTE3IDMuMzQtMSAxLjczIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoibTIwLjY2IDE3LTEuNzMtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgNy0xLjczIDEifV0sWyJwYXRoIix7ZDoibTMuMzQgMTcgMS43My0xIn1dLFsicGF0aCIse2Q6Im0zLjM0IDcgMS43MyAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XV19KTt2YXIgJEQseExlPWcoKCk9PnskRD1bWyJwYXRoIix7ZDoiTTEzLjc0NCAxNy43MzZhNiA2IDAgMSAxLTcuNDgtNy40OCJ9XSxbInBhdGgiLHtkOiJNMTUgNmgxdjQifV0sWyJwYXRoIix7ZDoibTYuMTM0IDE0Ljc2OC44NjYtLjUgMiAzLjQ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjgiLHI6IjYifV1dfSk7dmFyIERtLHlMZT1nKCgpPT57RG09W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV1dfSk7dmFyIFYwLHdMZT1nKCgpPT57VjA9W1sicGF0aCIse2Q6Ik0xMC41IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjUifV0sWyJwYXRoIix7ZDoibTE0LjMgMTkuNiAxLS40In1dLFsicGF0aCIse2Q6Ik0xNSAzdjcuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMiAxNi45LS45LS4zIn1dLFsicGF0aCIse2Q6Im0xNi42IDIxLjcuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTYuOCAxNS4zLS40LTEifV0sWyJwYXRoIix7ZDoibTE5LjEgMTUuMi4zLS45In1dLFsicGF0aCIse2Q6Im0xOS42IDIxLjctLjQtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNyAxNi44IDEtLjQifV0sWyJwYXRoIix7ZDoibTIxLjcgMTkuNC0uOS0uMyJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIExtLGtMZT1nKCgpPT57TG09W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgREQsU0xlPWcoKCk9PntERD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNy41IDN2MTgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTE2LjUgM3YxOCJ9XV19KTt2YXIgTEQsX0xlPWcoKCk9PntMRD1bWyJwYXRoIix7ZDoiTTE0IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTcgMTUgMyAzIn1dLFsicGF0aCIse2Q6Im03IDIxIDMtM0g1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV19KTt2YXIgRUQsTUxlPWcoKCk9PntFRD1bWyJwYXRoIix7ZDoiTTE1IDZ2MTJhMyAzIDAgMSAwIDMtM0g2YTMgMyAwIDEgMCAzIDNWNmEzIDMgMCAxIDAtMyAzaDEyYTMgMyAwIDEgMC0zLTMifV1dfSk7dmFyIFBELHpMZT1nKCgpPT57UEQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNi4yNCA3Ljc2LTEuODA0IDUuNDExYTIgMiAwIDAgMS0xLjI2NSAxLjI2NUw3Ljc2IDE2LjI0bDEuODA0LTUuNDExYTIgMiAwIDAgMSAxLjI2NS0xLjI2NXoifV1dfSk7dmFyIElELENMZT1nKCgpPT57SUQ9W1sicGF0aCIse2Q6Ik0xNS41MzYgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc2IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTIuMjk3IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNEw2LjA4OCA4LjkxNmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDE3LjkxMmExIDEgMCAwIDAgMCAxLjQxNWwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNWwtMi4zNzctMi4zNzZhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik04LjkxNiA0LjY3NGExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6In1dXX0pO3ZhciBBRCxUTGU9ZygoKT0+e0FEPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiOCIseDoiNSIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2In1dXX0pO3ZhciBORCwkTGU9ZygoKT0+e05EPVtbInBhdGgiLHtkOiJNMyAyMGExIDEgMCAwIDEtMS0xdi0xYTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmE4IDggMCAxIDAtMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgNHY0In1dLFsicGF0aCIse2Q6Ik0xMCA0aDQifV1dfSk7dmFyIFJELERMZT1nKCgpPT57UkQ9W1sicGF0aCIse2Q6Im0yMC45IDE4LjU1LTgtMTUuOThhMSAxIDAgMCAwLTEuOCAwbC04IDE1Ljk4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjE5IixyeDoiOSIscnk6IjMifV1dfSk7dmFyIE9ELExMZT1nKCgpPT57T0Q9W1sicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTR2NyJ9XSxbInBhdGgiLHtkOiJNNyAxNHY3In1dLFsicGF0aCIse2Q6Ik0xNyAzdjMifV0sWyJwYXRoIix7ZDoiTTcgM3YzIn1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyLjMgNi4zIn1dLFsicGF0aCIse2Q6Im0xNCA2IDcuNyA3LjcifV0sWyJwYXRoIix7ZDoibTggNiA4IDgifV1dfSk7dmFyIEVtLEVMZT1nKCgpPT57RW09W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTE3LjkxNSAyMmE2IDYgMCAwIDAtMTIgMCJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBGRCxQTGU9ZygoKT0+e0ZEPVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjMifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgQkQsSUxlPWcoKCk9PntCRD1bWyJwYXRoIix7ZDoiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMS45VjE0TDIuMSA5LjEifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjktNi45In1dLFsicGF0aCIse2Q6Ik0xNCAxOS44di04LjEifV0sWyJwYXRoIix7ZDoiTTE4IDE3LjVWOS40In1dXX0pO3ZhciBIRCxBTGU9ZygoKT0+e0hEPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNiA2IDAgMCAwIDAtMTJ2MTJ6In1dXX0pO3ZhciBxRCxOTGU9ZygoKT0+e3FEPVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNS41di4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMSAxN3YuMDEifV0sWyJwYXRoIix7ZDoiTTcgMTR2LjAxIn1dXX0pO3ZhciBqRCxSTGU9ZygoKT0+e2pEPVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCJ9XSxbInBhdGgiLHtkOiJtNCA4IDE2LTQifV0sWyJwYXRoIix7ZDoibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCJ9XV19KTt2YXIgVkQsT0xlPWcoKCk9PntWRD1bWyJwYXRoIix7ZDoibTEyIDE1IDIgMiA0LTQifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgVUQsRkxlPWcoKCk9PntVRD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxNSIseTI6IjE1In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIFdELEJMZT1nKCgpPT57V0Q9W1sibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgR0QsSExlPWcoKCk9PntHRD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIEtELHFMZT1nKCgpPT57S0Q9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE4Iix5MjoiMTIifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgWUQsakxlPWcoKCk9PntZRD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgWkQsVkxlPWcoKCk9PntaRD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkuMTcgMTQuODNhNCA0IDAgMSAwIDAtNS42NiJ9XV19KTt2YXIgWEQsVUxlPWcoKCk9PntYRD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE0LjgzIDE0LjgzYTQgNCAwIDEgMSAwLTUuNjYifV1dfSk7dmFyIFFELFdMZT1nKCgpPT57UUQ9W1sicGF0aCIse2Q6Ik0yMCA0djdhNCA0IDAgMCAxLTQgNEg0In1dLFsicGF0aCIse2Q6Im05IDEwLTUgNSA1IDUifV1dfSk7dmFyIEpELEdMZT1nKCgpPT57SkQ9W1sicGF0aCIse2Q6Im0xNSAxMCA1IDUtNSA1In1dLFsicGF0aCIse2Q6Ik00IDR2N2E0IDQgMCAwIDAgNCA0aDEyIn1dXX0pO3ZhciBlTCxLTGU9ZygoKT0+e2VMPVtbInBhdGgiLHtkOiJtMTQgMTUtNSA1LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjAgNGgtN2E0IDQgMCAwIDAtNCA0djEyIn1dXX0pO3ZhciB0TCxZTGU9ZygoKT0+e3RMPVtbInBhdGgiLHtkOiJNMTQgOSA5IDQgNCA5In1dLFsicGF0aCIse2Q6Ik0yMCAyMGgtN2E0IDQgMCAwIDEtNC00VjQifV1dfSk7dmFyIGFMLFpMZT1nKCgpPT57YUw9W1sicGF0aCIse2Q6Im0xMCAxNSA1IDUgNS01In1dLFsicGF0aCIse2Q6Ik00IDRoN2E0IDQgMCAwIDEgNCA0djEyIn1dXX0pO3ZhciBzTCxYTGU9ZygoKT0+e3NMPVtbInBhdGgiLHtkOiJtMTAgOSA1LTUgNSA1In1dLFsicGF0aCIse2Q6Ik00IDIwaDdhNCA0IDAgMCAwIDQtNFY0In1dXX0pO3ZhciBpTCxRTGU9ZygoKT0+e2lMPVtbInBhdGgiLHtkOiJNMjAgMjB2LTdhNCA0IDAgMCAwLTQtNEg0In1dLFsicGF0aCIse2Q6Ik05IDE0IDQgOWw1LTUifV1dfSk7dmFyIHJMLEpMZT1nKCgpPT57ckw9W1sicGF0aCIse2Q6Im0xNSAxNCA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDIwdi03YTQgNCAwIDAgMSA0LTRoMTIifV1dfSk7dmFyIG9MLGVFZT1nKCgpPT57b0w9W1sicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE3IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIifV0sWyJwYXRoIix7ZDoiTTIgN2gyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0yMCA3aDIifV0sWyJwYXRoIix7ZDoiTTcgMjB2MiJ9XSxbInBhdGgiLHtkOiJNNyAydjIifV0sWyJyZWN0Iix7eDoiNCIseToiNCIsd2lkdGg6IjE2IixoZWlnaHQ6IjE2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgbkwsdEVlPWcoKCk9PntuTD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEwIDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTcgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIn1dXX0pO3ZhciBsTCxhRWU9ZygoKT0+e2xMPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciBjTCxzRWU9ZygoKT0+e2NMPVtbInBhdGgiLHtkOiJNMTAuMiAxOEg0Ljc3NGExLjUgMS41IDAgMCAxLTEuMzUyLS45NyAxMSAxMSAwIDAgMSAuMTMyLTYuNDg3In1dLFsicGF0aCIse2Q6Ik0xOCAxMC4yVjQuNzc0YTEuNSAxLjUgMCAwIDAtLjk3LTEuMzUyIDExIDExIDAgMCAwLTYuNDg2LjEzMiJ9XSxbInBhdGgiLHtkOiJNMTggNWE0IDMgMCAwIDEgNCAzIDIgMiAwIDAgMS0yIDIgMTAgMTAgMCAwIDAtNS4xMzkgMS40MiJ9XSxbInBhdGgiLHtkOiJNNSAxOGEzIDQgMCAwIDAgMyA0IDIgMiAwIDAgMCAyLTIgMTAgMTAgMCAwIDEgMS40Mi01LjE0In1dLFsicGF0aCIse2Q6Ik04LjcwOSAyLjU1NGExMCAxMCAwIDAgMC02LjE1NSA2LjE1NSAxLjUgMS41IDAgMCAwIC42NzYgMS42MjZsOS44MDcgNS40MmEyIDIgMCAwIDAgMi43MTgtMi43MThsLTUuNDItOS44MDdhMS41IDEuNSAwIDAgMC0xLjYyNi0uNjc2In1dXX0pO3ZhciBkTCxpRWU9ZygoKT0+e2RMPVtbInBhdGgiLHtkOiJNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQifV0sWyJwYXRoIix7ZDoiTTE4IDIyVjhhMiAyIDAgMCAwLTItMkgyIn1dXX0pO3ZhciB1TCxyRWU9ZygoKT0+e3VMPVtbInBhdGgiLHtkOiJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6In1dXX0pO3ZhciBwTCxvRWU9ZygoKT0+e3BMPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxOCIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjYiLHkyOiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxOCJ9XV19KTt2YXIgaEwsbkVlPWcoKCk9PntoTD1bWyJwYXRoIix7ZDoiTTExLjU2MiAzLjI2NmEuNS41IDAgMCAxIC44NzYgMEwxNS4zOSA4Ljg3YTEgMSAwIDAgMCAxLjUxNi4yOTRMMjEuMTgzIDUuNWEuNS41IDAgMCAxIC43OTguNTE5bC0yLjgzNCAxMC4yNDZhMSAxIDAgMCAxLS45NTYuNzM0SDUuODFhMSAxIDAgMCAxLS45NTctLjczNEwyLjAyIDYuMDJhLjUuNSAwIDAgMSAuNzk4LS41MTlsNC4yNzYgMy42NjRhMSAxIDAgMCAwIDEuNTE2LS4yOTR6In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXX0pO3ZhciBmTCxsRWU9ZygoKT0+e2ZMPVtbInBhdGgiLHtkOiJNMTAgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTIuMzM2IDguODkgMTAgMTRsMTEuNzE1LTcuMDI5In1dLFsicGF0aCIse2Q6Ik0yMiAxNGEyIDIgMCAwIDEtLjk3MSAxLjcxNWwtMTAgNmEyIDIgMCAwIDEtMi4xMzgtLjA1bC02LTRBMiAyIDAgMCAxIDIgMTZ2LTZhMiAyIDAgMCAxIC45NzEtMS43MTVsMTAtNmEyIDIgMCAwIDEgMi4xMzguMDVsNiA0QTIgMiAwIDAgMSAyMiA4eiJ9XV19KTt2YXIgbUwsY0VlPWcoKCk9PnttTD1bWyJwYXRoIix7ZDoibTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgifV0sWyJwYXRoIix7ZDoiTTUgOGgxNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV0sWyJwYXRoIix7ZDoibTEyIDggMS02aDIifV1dfSk7dmFyIGdMLGRFZT1nKCgpPT57Z0w9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTgiLHkxOiIzIix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIyMSIseTI6IjE4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMjEiLHkyOiIxOCJ9XV19KTt2YXIgYkwsdUVlPWcoKCk9PntiTD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNSJ9XV19KTt2YXIgdkwscEVlPWcoKCk9Pnt2TD1bWyJwYXRoIix7ZDoiTTExIDExLjMxYzEuMTcuNTYgMS41NCAxLjY5IDMuNSAxLjY5IDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTEuNzUgMThjLjM1LjUgMS40NSAxIDIuNzUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik03IDNhMSAxIDAgMCAwLTEgMXYxNmExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMUwxMCA0YTEgMSAwIDAgMC0xLTF6In1dXX0pO3ZhciB4TCxoRWU9ZygoKT0+e3hMPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDUgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEgOS4zVjUifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY0aDQifV0sWyJwYXRoIix7ZDoiTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYifV1dfSk7dmFyIHlMLGZFZT1nKCgpPT57eUw9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAxNSAyMS44NCJ9XSxbInBhdGgiLHtkOiJNMjEgNVY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMkwxOCAxN0gyMkwxOSAyMiJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcifV1dfSk7dmFyIHdMLG1FZT1nKCgpPT57d0w9W1sicGF0aCIse2Q6Ik0yMSAxMS42OTNWNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDguNjk3IDIuOTk4In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDkuMjggMi45OTkifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV1dfSk7dmFyIGtMLGdFZT1nKCgpPT57a0w9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAyMSAxOVY1In1dLFsicGF0aCIse2Q6Ik0zIDEyQTkgMyAwIDAgMCAyMSAxMiJ9XV19KTt2YXIgU0wsYkVlPWcoKCk9PntTTD1bWyJwYXRoIix7ZDoibTEzIDIxLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIwIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXX0pO3ZhciBfTCx2RWU9ZygoKT0+e19MPVtbInBhdGgiLHtkOiJNMTAgMThoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTMgMTFoLjAxIn1dLFsicmVjdCIse3g6IjE1Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dLFsicmVjdCIse3g6IjYiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV1dfSk7dmFyIE1MLHhFZT1nKCgpPT57TUw9W1sicGF0aCIse2Q6Ik0xMCA1YTIgMiAwIDAgMC0xLjM0NC41MTlsLTYuMzI4IDUuNzRhMSAxIDAgMCAwIDAgMS40ODFsNi4zMjggNS43NDFBMiAyIDAgMCAwIDEwIDE5aDEwYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJtMTIgOSA2IDYifV0sWyJwYXRoIix7ZDoibTE4IDktNiA2In1dXX0pO3ZhciB6TCx5RWU9ZygoKT0+e3pMPVtbInBhdGgiLHtkOiJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiJ9XSxbInBhdGgiLHtkOiJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBDTCx3RWU9ZygoKT0+e0NMPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYifV0sWyJwYXRoIix7ZDoibTYuNDEgNi40MSAxMS4xOCAxMS4xOCJ9XSxbInBhdGgiLHtkOiJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2In1dXX0pO3ZhciBUTCxrRWU9ZygoKT0+e1RMPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgUG0sU0VlPWcoKCk9PntQbT1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dLFsicGF0aCIse2Q6Ik05LjIgOS4yaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNC43IDE0LjhoLjAxIn1dXX0pO3ZhciAkTCxfRWU9ZygoKT0+eyRMPVtbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBETCxNRWU9ZygoKT0+e0RMPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dXX0pO3ZhciBMTCx6RWU9ZygoKT0+e0xMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXX0pO3ZhciBFTCxDRWU9ZygoKT0+e0VMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTkgMTVoLjAxIn1dXX0pO3ZhciBQTCxURWU9ZygoKT0+e1BMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIElMLCRFZT1nKCgpPT57SUw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XV19KTt2YXIgQUwsREVlPWcoKCk9PntBTD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIE5MLExFZT1nKCgpPT57Tkw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV19KTt2YXIgUkwsRUVlPWcoKCk9PntSTD1bWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMTBoMTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIE9MLFBFZT1nKCgpPT57T0w9W1sicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxMiIseDoiMiIseToiMTAiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTcuOTIgMTQgMy41LTMuNWEyLjI0IDIuMjQgMCAwIDAgMC0zbC01LTQuOTJhMi4yNCAyLjI0IDAgMCAwLTMgMEwxMCA2In1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOWguMDEifV1dfSk7dmFyIEZMLElFZT1nKCgpPT57Rkw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgQkwsQUVlPWcoKCk9PntCTD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmMwIDEuNy0uNyAzLjItMS44IDQuMiJ9XV19KTt2YXIgSEwsTkVlPWcoKCk9PntITD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIHFMLFJFZT1nKCgpPT57cUw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIxIn1dXX0pO3ZhciBqTCxPRWU9ZygoKT0+e2pMPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBWTCxGRWU9ZygoKT0+e1ZMPVtbInBhdGgiLHtkOiJNMTUgMmMtMS4zNSAxLjUtMi4wOTIgMy0yLjUgNC41TDE0IDgifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjMy4zMzMtMyA2LjY2Ny0zIDEwLTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJtMjAgOSAuODkxLjg5MSJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtMS41IDEuMzUtMyAyLjA5Mi00LjUgMi41bC0xLTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS4zNS0xLjUgMi4wOTItMyAyLjUtNC41TDEwIDE2In1dXX0pO3ZhciBVTCxCRWU9ZygoKT0+e1VMPVtbInBhdGgiLHtkOiJtMTAgMTYgMS41IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC0xLjUtMS41In1dLFsicGF0aCIse2Q6Ik0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxMC41IDEgMSJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYifV0sWyJwYXRoIix7ZDoibTIwIDkgLjg5MS44OTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMifV1dfSk7dmFyIFdMLEhFZT1nKCgpPT57V0w9W1sicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxNmgxMiJ9XV19KTt2YXIgR0wscUVlPWcoKCk9PntHTD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTE3IDVIOS41YTMuNSAzLjUgMCAwIDAgMCA3aDVhMy41IDMuNSAwIDAgMSAwIDdINiJ9XV19KTt2YXIgS0wsakVlPWcoKCk9PntLTD1bWyJwYXRoIix7ZDoiTTExLjI1IDE2LjI1aDEuNUwxMiAxN3oifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik00LjQyIDExLjI0N0ExMy4xNTIgMTMuMTUyIDAgMCAwIDQgMTQuNTU2QzQgMTguNzI4IDcuNTgyIDIxIDEyIDIxczgtMi4yNzIgOC02LjQ0NGExMS43MDIgMTEuNzAyIDAgMCAwLS40OTMtMy4zMDkifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjVjLS4zODQgMS4wNS0xLjA4MyAyLjAyOC0yLjM0NCAyLjUtMS45MzEuNzIyLTMuNTc2LS4yOTctMy42NTYtMS0uMTEzLS45OTQgMS4xNzctNi41MyA0LTcgMS45MjMtLjMyMSAzLjY1MS44NDUgMy42NTEgMi4yMzVBNy40OTcgNy40OTcgMCAwIDEgMTQgNS4yNzdjMC0xLjM5IDEuODQ0LTIuNTk4IDMuNzY3LTIuMjc3IDIuODIzLjQ3IDQuMTEzIDYuMDA2IDQgNy0uMDguNzAzLTEuNzI1IDEuNzIyLTMuNjU2IDEtMS4yNjEtLjQ3Mi0xLjg1NS0xLjQ1LTIuMjM5LTIuNSJ9XV19KTt2YXIgWUwsVkVlPWcoKCk9PntZTD1bWyJwYXRoIix7ZDoiTTIwLjUgMTBhMi41IDIuNSAwIDAgMS0yLjQtM0gxOGEyLjk1IDIuOTUgMCAwIDEtMi42LTQuNCAxMCAxMCAwIDEgMCA2LjMgNy4xYy0uMy4yLS44LjMtMS4yLjMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgWkwsVUVlPWcoKCk9PntaTD1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOVY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDgifV0sWyJwYXRoIix7ZDoiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTciLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIxIn1dXX0pO3ZhciBYTCxXRWU9ZygoKT0+e1hMPVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dXX0pO3ZhciBRTCxHRWU9ZygoKT0+e1FMPVtbInBhdGgiLHtkOiJNMTEgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoifV0sWyJwYXRoIix7ZDoiTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDIwaC0zIn1dXX0pO3ZhciBKTCxLRWU9ZygoKT0+e0pMPVtbImNpcmNsZSIse2N4OiIxMi4xIixjeToiMTIuMSIscjoiMSJ9XV19KTt2YXIgZUUsWUVlPWcoKCk9PntlRT1bWyJwYXRoIix7ZDoiTTEyIDE1VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoibTcgMTAgNSA1IDUtNSJ9XV19KTt2YXIgdEUsWkVlPWcoKCk9Pnt0RT1bWyJwYXRoIix7ZDoibTEyLjk5IDYuNzQgMS45MyAzLjQ0In1dLFsicGF0aCIse2Q6Ik0xOS4xMzYgMTJhMTAgMTAgMCAwIDEtMTQuMjcxIDAifV0sWyJwYXRoIix7ZDoibTIxIDIxLTIuMTYtMy44NCJ9XSxbInBhdGgiLHtkOiJtMyAyMSA4LjAyLTE0LjI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XV19KTt2YXIgYUUsWEVlPWcoKCk9PnthRT1bWyJwYXRoIix7ZDoiTTEwIDE4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMyAzIDAgMCAxLTMtMyAxIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTMgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxbC0uODEgMy4yNDJhMSAxIDAgMCAxLS45Ny43NThIOCJ9XSxbInBhdGgiLHtkOiJNMTQgNGgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDQifV0sWyJwYXRoIix7ZDoibTUgMTAtMiA4In1dLFsicGF0aCIse2Q6Im03IDE4IDItOCJ9XV19KTt2YXIgc0UsUUVlPWcoKCk9PntzRT1bWyJwYXRoIix7ZDoiTTEwIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjUgMTMuMWguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDVjMCA5LTQgMTItNiAxMnMtNi0zLTYtMTJjMC0yIDItMyA2LTNzNiAxIDYgMyJ9XSxbInBhdGgiLHtkOiJNMTcuNCA5LjljLS44LjgtMiAuOC0yLjggMCJ9XSxbInBhdGgiLHtkOiJNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDE2LjVjLjMtMS4xIDEuNC0xLjcgMi40LTEuNCJ9XV19KTt2YXIgaUUsSkVlPWcoKCk9PntpRT1bWyJwYXRoIix7ZDoiTTEwIDEwIDcgNyJ9XSxbInBhdGgiLHtkOiJtMTAgMTQtMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMgMyJ9XSxbInBhdGgiLHtkOiJNMTQuMjA1IDQuMTM5YTQgNCAwIDEgMSA1LjQzOSA1Ljg2MyJ9XSxbInBhdGgiLHtkOiJNMTkuNjM3IDE0YTQgNCAwIDEgMS01LjQzMiA1Ljg2OCJ9XSxbInBhdGgiLHtkOiJNNC4zNjcgMTBhNCA0IDAgMSAxIDUuNDM4LTUuODYyIn1dLFsicGF0aCIse2Q6Ik05Ljc5NSAxOS44NjJhNCA0IDAgMSAxLTUuNDI5LTUuODczIn1dLFsicmVjdCIse3g6IjEwIix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgckUsZVBlPWcoKCk9PntyRT1bWyJwYXRoIix7ZDoiTTEyIDIyYTcgNyAwIDAgMCA3LTdjMC0yLTEtMy45LTMtNS41cy0zLjUtNC00LTYuNWMtLjUgMi41LTIgNC45LTQgNi41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDcgN3oifV1dfSk7dmFyIG9FLHRQZT1nKCgpPT57b0U9W1sicGF0aCIse2Q6Ik0xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4In1dXX0pO3ZhciBuRSxhUGU9ZygoKT0+e25FPVtbInBhdGgiLHtkOiJNNyAxNi4zYzIuMiAwIDQtMS44MyA0LTQuMDUgMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOVM3LjI5IDYuNzUgNyA1LjNjLS4yOSAxLjQ1LTEuMTQgMi44NC0yLjI5IDMuNzZTMyAxMS4xIDMgMTIuMjVjMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXoifV0sWyJwYXRoIix7ZDoiTTEyLjU2IDYuNkExMC45NyAxMC45NyAwIDAgMCAxNCAzLjAyYy41IDIuNSAyIDQuOSA0IDYuNXMzIDMuNSAzIDUuNWE2Ljk4IDYuOTggMCAwIDEtMTEuOTEgNC45NyJ9XV19KTt2YXIgbEUsc1BlPWcoKCk9PntsRT1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV19KTt2YXIgY0UsaVBlPWcoKCk9PntjRT1bWyJwYXRoIix7ZDoiTTE1LjQgMTUuNjNhNy44NzUgNiAxMzUgMSAxIDYuMjMtNi4yMyA0LjUgMy40MyAxMzUgMCAwLTYuMjMgNi4yMyJ9XSxbInBhdGgiLHtkOiJtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5In1dXX0pO3ZhciBkRSxyUGU9ZygoKT0+e2RFPVtbInBhdGgiLHtkOiJNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6In1dLFsicGF0aCIse2Q6Im0yLjUgMjEuNSAxLjQtMS40In1dLFsicGF0aCIse2Q6Im0yMC4xIDMuOSAxLjQtMS40In1dLFsicGF0aCIse2Q6Ik01LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXoifV0sWyJwYXRoIix7ZDoibTkuNiAxNC40IDQuOC00LjgifV1dfSk7dmFyIHVFLG9QZT1nKCgpPT57dUU9W1sicGF0aCIse2Q6Ik02IDE4LjVhMy41IDMuNSAwIDEgMCA3IDBjMC0xLjU3LjkyLTIuNTIgMi4wNC0zLjQ2In1dLFsicGF0aCIse2Q6Ik02IDguNWMwLS43NS4xMy0xLjQ3LjM2LTIuMTQifV0sWyJwYXRoIix7ZDoiTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYifV0sWyJwYXRoIix7ZDoiTTEyLjUgNkEyLjUgMi41IDAgMCAxIDE1IDguNU0xMCAxM2EyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHBFLG5QZT1nKCgpPT57cEU9W1sicGF0aCIse2Q6Ik02IDguNWE2LjUgNi41IDAgMSAxIDEzIDBjMCA2LTYgNi02IDEwYTMuNSAzLjUgMCAxIDEtNyAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4LjVhMi41IDIuNSAwIDAgMC01IDB2MWEyIDIgMCAxIDEgMCA0In1dXX0pO3ZhciBoRSxsUGU9ZygoKT0+e2hFPVtbInBhdGgiLHtkOiJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMSAwIDkuNTQgMTMifV0sWyJwYXRoIix7ZDoiTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjYiLHJ4OiIxIn1dXX0pO3ZhciBJbSxjUGU9ZygoKT0+e0ltPVtbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgZkUsZFBlPWcoKCk9PntmRT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhNyA3IDAgMSAwIDEwIDEwIn1dXX0pO3ZhciBtRSx1UGU9ZygoKT0+e21FPVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMy41In1dLFsicGF0aCIse2Q6Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoifV1dfSk7dmFyIGdFLHBQZT1nKCgpPT57Z0U9W1sicGF0aCIse2Q6Ik0xMiAyQzggMiA0IDggNCAxNGE4IDggMCAwIDAgMTYgMGMwLTYtNC0xMi04LTEyIn1dXX0pO3ZhciBiRSxoUGU9ZygoKT0+e2JFPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNC4zNDdWMTRjMC02LTQtMTItOC0xMi0xLjA3OCAwLTIuMTU3LjQzNi0zLjE1NyAxLjE5In1dLFsicGF0aCIse2Q6Ik02LjIwNiA2LjIxQzQuODcxIDguNCA0IDExLjIgNCAxNGE4IDggMCAwIDAgMTQuNTY4IDQuNTY4In1dXX0pO3ZhciB2RSxmUGU9ZygoKT0+e3ZFPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMiIscng6IjEwIixyeToiNiJ9XV19KTt2YXIgQW0sbVBlPWcoKCk9PntBbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgeEUsZ1BlPWcoKCk9Pnt4RT1bWyJwYXRoIix7ZDoiTTUgMTVhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAifV0sWyJwYXRoIix7ZDoiTTUgOWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCJ9XV19KTt2YXIgTm0sYlBlPWcoKCk9PntObT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgeUUsdlBlPWcoKCk9Pnt5RT1bWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV1dfSk7dmFyIHdFLHhQZT1nKCgpPT57d0U9W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XV19KTt2YXIga0UseVBlPWcoKCk9PntrRT1bWyJwYXRoIix7ZDoiTTIxIDIxSDhhMiAyIDAgMCAxLTEuNDItLjU4N2wtMy45OTQtMy45OTlhMiAyIDAgMCAxIDAtMi44MjhsMTAtMTBhMiAyIDAgMCAxIDIuODI5IDBsNS45OTkgNmEyIDIgMCAwIDEgMCAyLjgyOEwxMi44MzQgMjEifV0sWyJwYXRoIix7ZDoibTUuMDgyIDExLjA5IDguODI4IDguODI4In1dXX0pO3ZhciBTRSx3UGU9ZygoKT0+e1NFPVtbInBhdGgiLHtkOiJtMTUgMjAgMy0zaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgybDMgM3oifV0sWyJwYXRoIix7ZDoiTTYgOHYxIn1dLFsicGF0aCIse2Q6Ik0xMCA4djEifV0sWyJwYXRoIix7ZDoiTTE0IDh2MSJ9XSxbInBhdGgiLHtkOiJNMTggOHYxIn1dXX0pO3ZhciBfRSxrUGU9ZygoKT0+e19FPVtbInBhdGgiLHtkOiJNNCAxMGgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxNGg5In1dLFsicGF0aCIse2Q6Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIifV1dfSk7dmFyIE1FLFNQZT1nKCgpPT57TUU9W1sicGF0aCIse2Q6Ik0xNCAxM2gyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDAgNCAwdi02Ljk5OGEyIDIgMCAwIDAtLjU5LTEuNDJMMTggNSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMyJ9XSxbInBhdGgiLHtkOiJNMyA3aDExIn1dLFsicGF0aCIse2Q6Im05IDExLTIgM2gzbC0yIDMifV1dfSk7dmFyIHpFLF9QZT1nKCgpPT57ekU9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTE1IDkgNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxNnY1aC01In1dLFsicGF0aCIse2Q6Ik0yMSA4VjNoLTUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2NWg1In1dLFsicGF0aCIse2Q6Im0zIDIxIDYtNiJ9XSxbInBhdGgiLHtkOiJNMyA4VjNoNSJ9XSxbInBhdGgiLHtkOiJNOSA5IDMgMyJ9XV19KTt2YXIgQ0UsTVBlPWcoKCk9PntDRT1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyMSAzIn1dLFsicGF0aCIse2Q6Ik0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2In1dXX0pO3ZhciBURSx6UGU9ZygoKT0+e1RFPVtbInBhdGgiLHtkOiJtMTUgMTgtLjcyMi0zLjI1In1dLFsicGF0aCIse2Q6Ik0yIDhhMTAuNjQ1IDEwLjY0NSAwIDAgMCAyMCAwIn1dLFsicGF0aCIse2Q6Im0yMCAxNS0xLjcyNi0yLjA1In1dLFsicGF0aCIse2Q6Im00IDE1IDEuNzI2LTIuMDUifV0sWyJwYXRoIix7ZDoibTkgMTggLjcyMi0zLjI1In1dXX0pO3ZhciAkRSxDUGU9ZygoKT0+eyRFPVtbInBhdGgiLHtkOiJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5In1dLFsicGF0aCIse2Q6Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBERSxUUGU9ZygoKT0+e0RFPVtbInBhdGgiLHtkOiJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBMRSwkUGU9ZygoKT0+e0xFPVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTlhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjguNWEuNS41IDAgMCAwLS43NjktLjQyMmwtNC40NjIgMi44NDRBLjUuNSAwIDAgMSAxNSAxMC41di0yYS41LjUgMCAwIDAtLjc2OS0uNDIyTDkuNzcgMTAuOTIyQS41LjUgMCAwIDEgOSAxMC41VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV19KTt2YXIgRUUsRFBlPWcoKCk9PntFRT1bWyJwYXRoIix7ZDoiTTEwLjgyNyAxNi4zNzlhNi4wODIgNi4wODIgMCAwIDEtOC42MTgtNy4wMDJsNS40MTIgMS40NWE2LjA4MiA2LjA4MiAwIDAgMSA3LjAwMi04LjYxOGwtMS40NSA1LjQxMmE2LjA4MiA2LjA4MiAwIDAgMSA4LjYxOCA3LjAwMmwtNS40MTItMS40NWE2LjA4MiA2LjA4MiAwIDAgMS03LjAwMiA4LjYxOGwxLjQ1LTUuNDEyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dXX0pO3ZhciBQRSxMUGU9ZygoKT0+e1BFPVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoifV1dfSk7dmFyIElFLEVQZT1nKCgpPT57SUU9W1sicGF0aCIse2Q6Ik0xMi42NyAxOWEyIDIgMCAwIDAgMS40MTYtLjU4OGw2LjE1NC02LjE3MmE2IDYgMCAwIDAtOC40OS04LjQ5TDUuNTg2IDkuOTE0QTIgMiAwIDAgMCA1IDExLjMyOFYxOGExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTYgOCAyIDIyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDE1SDkifV1dfSk7dmFyIEFFLFBQZT1nKCgpPT57QUU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtNi44IDE1LTMuNSAyIn1dLFsicGF0aCIse2Q6Im0yMC43IDctMy41IDIifV0sWyJwYXRoIix7ZDoiTTYuOCA5IDMuMyA3In1dLFsicGF0aCIse2Q6Im0yMC43IDE3LTMuNS0yIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtOCAzIDgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTggMTguN2E5IDkgMCAxIDAtMTIgMCJ9XV19KTt2YXIgTkUsSVBlPWcoKCk9PntORT1bWyJwYXRoIix7ZDoiTTQgMyAyIDV2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XSxbInBhdGgiLHtkOiJNNiA4aDQifV0sWyJwYXRoIix7ZDoiTTYgMThoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XSxbInBhdGgiLHtkOiJNMTQgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxOGg0In1dLFsicGF0aCIse2Q6Im0yMCAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dXX0pO3ZhciBSRSxBUGU9ZygoKT0+e1JFPVtbInBhdGgiLHtkOiJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3VjYifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBSbSxOUGU9ZygoKT0+e1JtPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0LTQifV0sWyJwYXRoIix7ZDoiTTggMTB2OGg4In1dXX0pO3ZhciBPbSxSUGU9ZygoKT0+e09tPVtbInBhdGgiLHtkOiJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE0IixyOiIzIn1dXX0pO3ZhciBPRSxPUGU9ZygoKT0+e09FPVtbInBhdGgiLHtkOiJNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEuNyAxNC4yIDcgMTdsLTQuNy0yLjgifV0sWyJwYXRoIix7ZDoiTTMgMTMuMWEyIDIgMCAwIDAtLjk5OSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NjkgMS43OEw2IDIxLjdhMiAyIDAgMCAwIDIuMDMuMDFMMTEgMTkuOWEyIDIgMCAwIDAgMS0xLjc2VjE0LjlhMiAyIDAgMCAwLS45Ny0xLjc4TDggMTEuM2EyIDIgMCAwIDAtMi4wMy0uMDF6In1dLFsicGF0aCIse2Q6Ik03IDE3djUifV1dfSk7dmFyIEZtLEZQZT1nKCgpPT57Rm09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCAxMmExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAwIDEgMSJ9XSxbInBhdGgiLHtkOiJNMTQgMThhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTFhMSAxIDAgMCAwLTEtMSJ9XV19KTt2YXIgQm0sQlBlPWcoKCk9PntCbT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4di00In1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtNiJ9XV19KTt2YXIgSG0sSFBlPWcoKCk9PntIbT1bWyJwYXRoIix7ZDoiTTE0IDIyaDRhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik01IDE0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik05IDIyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMC0xLTEifV1dfSk7dmFyIHFtLHFQZT1nKCgpPT57cW09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE4di0xIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTMifV1dfSk7dmFyIGptLGpQZT1nKCgpPT57am09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNiAxMy0zLjUgMy41LTItMkw4IDE3In1dXX0pO3ZhciBWbSxWUGU9ZygoKT0+e1ZtPVtbInBhdGgiLHtkOiJNMTUuOTQxIDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My41MTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTQuMDE3IDExLjUxMmE2IDYgMCAxIDAgOC40NjYgOC40NzUifV0sWyJwYXRoIix7ZDoiTTkgMTZhMSAxIDAgMCAxLTEtMXYtNGMwLS41NTIuNDUtMS4wMDguOTk1LS45MTdhNiA2IDAgMCAxIDQuOTIyIDQuOTIyYy4wOTEuNTQ0LS4zNjUuOTk1LS45MTcuOTk1eiJ9XV19KTt2YXIgVW0sVVBlPWcoKCk9PntVbT1bWyJwYXRoIix7ZDoiTTEwLjUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNCAyMCAyIDIgNC00In1dXX0pO3ZhciBGRSxXUGU9ZygoKT0+e0ZFPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAyIDIgNC00In1dXX0pO3ZhciBCRSxHUGU9ZygoKT0+e0JFPVtbInBhdGgiLHtkOiJNMTYgMjJoMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjIuODUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTR2Mi4ybDEuNiAxIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNiIscjoiNiJ9XV19KTt2YXIgV20sS1BlPWcoKCk9PntXbT1bWyJwYXRoIix7ZDoiTTQgMTIuMTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTMtMy0zIn1dXX0pO3ZhciBIRSxZUGU9ZygoKT0+e0hFPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTIuNSA4IDE1bDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMi41IDIgMi41LTIgMi41In1dXX0pO3ZhciBHbSxaUGU9ZygoKT0+e0dtPVtbInBhdGgiLHtkOiJNMTUgOGExIDEgMCAwIDEtMS0xVjJhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4eiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC00LjE4MiJ9XSxbInBhdGgiLHtkOiJtMy4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoiTTQgMTAuNTkyVjRhMiAyIDAgMCAxIDItMmg4In1dLFsicGF0aCIse2Q6Im00LjIyOCAxNi44NTItLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTguMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtOC41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im05Ljc3MyAxNi44NTIuOTIyLS4zODMifV0sWyJwYXRoIix7ZDoibTkuNzczIDE5LjE0OC45MjIuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgcUUsWFBlPWcoKCk9PntxRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dXX0pO3ZhciBqRSxRUGU9ZygoKT0+e2pFPVtbInBhdGgiLHtkOiJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoMnY2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dLFsicmVjdCIse3g6IjIiLHk6IjE2Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV19KTt2YXIgVkUsSlBlPWcoKCk9PntWRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dLFsicGF0aCIse2Q6Im05IDE1IDMgMyAzLTMifV1dfSk7dmFyIEttLGVJZT1nKCgpPT57S209W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgVTAsdEllPWcoKCk9PntVMD1bWyJwYXRoIix7ZDoiTTQgNi44MzVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLS4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTlhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMS00IDB2LTRhNiA2IDAgMCAxIDEyIDB2NGEyIDIgMCAwIDEtNCAwdi0xYTIgMiAwIDAgMSA0IDAifV1dfSk7dmFyIFVFLGFJZT1nKCgpPT57VUU9W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMy42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSA3IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhMSAxIDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBXRSxzSWU9ZygoKT0+e1dFPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMCAxNy0xLjI5Ni0xLjI5NmEyLjQxIDIuNDEgMCAwIDAtMy40MDggMEw5IDIyIn1dXX0pO3ZhciBHRSxpSWU9ZygoKT0+e0dFPVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTVoMTAifV0sWyJwYXRoIix7ZDoibTkgMTggMy0zLTMtMyJ9XV19KTt2YXIgWW0sckllPWcoKCk9PntZbT1bWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTQgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNCAxNGgyIn1dLFsicGF0aCIse2Q6Ik05LjY1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIFptLG9JZT1nKCgpPT57Wm09W1sicGF0aCIse2Q6Ik00IDkuOFY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxN3YtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMyIseToiMTciLHJ4OiIxIn1dXX0pO3ZhciBYbSxuSWU9ZygoKT0+e1htPVtbInBhdGgiLHtkOiJNMjAgMTRWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNiJ9XV19KTt2YXIgS0UsbEllPWcoKCk9PntLRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV19KTt2YXIgWUUsY0llPWcoKCk9PntZRT1bWyJwYXRoIix7ZDoiTTExLjY1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTAuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMjB2LTdsMyAxLjQ3NCJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIFpFLGRJZT1nKCgpPT57WkU9W1sicGF0aCIse2Q6Ik00LjIyNiAyMC45MjVBMiAyIDAgMCAwIDYgMjJoMTJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjEyNyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNSAxMS0zIDMifV0sWyJwYXRoIix7ZDoibTUgMTctMy0zaDEwIn1dXX0pO3ZhciBRbSx1SWU9ZygoKT0+e1FtPVtbInBhdGgiLHtkOiJNMTQuMzY0IDEzLjYzNGEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNmw0LjAxMy00LjAwOWExIDEgMCAwIDAtMy4wMDQtMy4wMDR6In1dLFsicGF0aCIse2Q6Ik0xNC40ODcgNy44NThBMSAxIDAgMCAxIDE0IDdWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTkuNjQ1VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDIuNTE2IDIuNTE2In1dLFsicGF0aCIse2Q6Ik04IDE4aDEifV1dfSk7dmFyIEptLHBJZT1nKCgpPT57Sm09W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNS4wMzMgMTMuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NnYtNC43MDRhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dXX0pO3ZhciBlNixoSWU9ZygoKT0+e2U2PVtbInBhdGgiLHtkOiJNMTIuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2OS4zNCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiJ9XV19KTt2YXIgdDYsZkllPWcoKCk9Pnt0Nj1bWyJwYXRoIix7ZDoiTTExLjM1IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NS4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTZ2NiJ9XV19KTt2YXIgWEUsbUllPWcoKCk9PntYRT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV1dfSk7dmFyIGE2LGdJZT1nKCgpPT57YTY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMifV1dfSk7dmFyIFFFLGJJZT1nKCgpPT57UUU9W1sicGF0aCIse2Q6Ik0yMCAxMFY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDQuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDE0YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTIwIDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIwIDIyYTIgMiAwIDAgMCAyLTIifV1dfSk7dmFyIHM2LHZJZT1nKCgpPT57czY9W1sicGF0aCIse2Q6Ik0xMS4xIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OSAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2My4yNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMi44OC0yLjg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTciLHI6IjMifV1dfSk7dmFyIEpFLHhJZT1nKCgpPT57SkU9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxNC41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTYuMyAxNSAxOCJ9XV19KTt2YXIgaTYseUllPWcoKCk9PntpNj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMS41IDEzLjVhMi41IDIuNSAwIDAgMSAwIDMifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTUgNSAwIDAgMSAwIDYifV1dfSk7dmFyIGVQLHdJZT1nKCgpPT57ZVA9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEwIDExdjIifV0sWyJwYXRoIix7ZDoiTTggMTdoOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTZ2MiJ9XV19KTt2YXIgdFAsa0llPWcoKCk9Pnt0UD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxN2gyIn1dXX0pO3ZhciBhUCxTSWU9ZygoKT0+e2FQPVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxOCAzLTMtMy0zIn1dXX0pO3ZhciBzUCxfSWU9ZygoKT0+e3NQPVtbInBhdGgiLHtkOiJNMTEgMjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LThhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA2YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0yLTJBMiAyIDAgMCAwIDE3IDJoLTNhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xeiJ9XV19KTt2YXIgaVAsTUllPWcoKCk9PntpUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTYgMi0yLTItMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNCJ9XV19KTt2YXIgclAsekllPWcoKCk9PntyUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDlIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTNIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTdIOCJ9XV19KTt2YXIgcjYsQ0llPWcoKCk9PntyNj1bWyJwYXRoIix7ZDoiTTEyIDIyaDZhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zIDE2di0xLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgLjUuNVYxNiJ9XSxbInBhdGgiLHtkOiJNNiAyMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE0djgifV1dfSk7dmFyIG9QLFRJZT1nKCgpPT57b1A9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMSAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik05IDEzdi0uNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAuNS41di41In1dXX0pO3ZhciBuUCwkSWU9ZygoKT0+e25QPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJtMTUgMTUtMy0zLTMgMyJ9XV19KTt2YXIgbFAsREllPWcoKCk9PntsUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTQgNCAwIDAgMC04IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV19KTt2YXIgY1AsTEllPWcoKCk9PntjUD1bWyJwYXRoIix7ZDoiTTQgMTEuNTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTEuOTUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE1YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTggMTQuNTAyYS41LjUgMCAwIDAtLjgyNi0uMzgxbC0xLjg5MyAxLjYzMWExIDEgMCAwIDEtLjY1MS4yNDNIMy41YS41LjUgMCAwIDAtLjUuNTAxdjMuMDA2YS41LjUgMCAwIDAgLjUuNTAxaDEuMTI5YTEgMSAwIDAgMSAuNjUyLjI0M2wxLjg5MyAxLjYzM2EuNS41IDAgMCAwIC44MjYtLjM4eiJ9XV19KTt2YXIgbzYsRUllPWcoKCk9PntvNj1bWyJwYXRoIix7ZDoiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE3Ljg0MyAzLjAzMy0xLjc1NWEuNjQuNjQgMCAwIDEgLjk2Ny41NnY0LjcwNGEuNjUuNjUgMCAwIDEtLjk2Ny41NkwxMCAyMC4xNTcifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNiIseDoiMyIseToiMTYiLHJ4OiIxIn1dXX0pO3ZhciBuNixQSWU9ZygoKT0+e242PVtbInBhdGgiLHtkOiJNMTEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNSAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIwIDE3LTUgNSJ9XV19KTt2YXIgZFAsSUllPWcoKCk9PntkUD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSAxMi41IDUgNSJ9XV19KTt2YXIgdVAsQUllPWcoKCk9Pnt1UD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV1dfSk7dmFyIHBQLE5JZT1nKCgpPT57cFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMyA3LjVoNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNi41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE3IDcuNWg0In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41aDQifV1dfSk7dmFyIGhQLFJJZT1nKCgpPT57aFA9W1sicGF0aCIse2Q6Ik0xNSAyaC00YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTYuNzA2IDIuNzA2QTIuNCAyLjQgMCAwIDAgMTUgMnY1YTEgMSAwIDAgMCAxIDFoNWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZ6In1dLFsicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDEuNzMyLTEifV1dfSk7dmFyIGw2LE9JZT1nKCgpPT57bDY9W1sicGF0aCIse2Q6Ik0xMiAxMGEyIDIgMCAwIDAtMiAyYzAgMS4wMi0uMSAyLjUxLS4yNiA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMy4xMmMwIDIuMzggMCA2LjM4LTEgOC44OCJ9XSxbInBhdGgiLHtkOiJNMTcuMjkgMjEuMDJjLjEyLS42LjQzLTIuMy41LTMuMDIifV0sWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAwIDEgMTgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIxLjggMTZjLjItMiAuMTMxLTUuMzU0IDAtNiJ9XSxbInBhdGgiLHtkOiJNNSAxOS41QzUuNSAxOCA2IDE1IDYgMTJhNiA2IDAgMCAxIC4zNC0yIn1dLFsicGF0aCIse2Q6Ik04LjY1IDIyYy4yMS0uNjYuNDUtMS4zMi41Ny0yIn1dLFsicGF0aCIse2Q6Ik05IDYuOGE2IDYgMCAwIDEgOSA1LjJ2MiJ9XV19KTt2YXIgZlAsRkllPWcoKCk9PntmUD1bWyJwYXRoIix7ZDoiTTE1IDYuNVYzYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoOCJ9XSxbInBhdGgiLHtkOiJNMTggM2gtMyJ9XSxbInBhdGgiLHtkOiJNMTEgM2E2IDYgMCAwIDAtNiA2djExIn1dLFsicGF0aCIse2Q6Ik01IDEzaDQifV0sWyJwYXRoIix7ZDoiTTE3IDEwYTQgNCAwIDAgMC04IDB2MTBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJaIn1dXX0pO3ZhciBtUCxCSWU9ZygoKT0+e21QPVtbInBhdGgiLHtkOiJNMiAxNnM5LTE1IDIwLTRDMTEgMjMgMiA4IDIgOCJ9XV19KTt2YXIgZ1AsSEllPWcoKCk9PntnUD1bWyJwYXRoIix7ZDoiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCJ9XV19KTt2YXIgYlAscUllPWcoKCk9PntiUD1bWyJwYXRoIix7ZDoiTTYuNSAxMmMuOTQtMy40NiA0Ljk0LTYgOC41LTYgMy41NiAwIDYuMDYgMi41NCA3IDYtLjk0IDMuNDctMy40NCA2LTcgNnMtNy41Ni0yLjUzLTguNS02WiJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE3LjkzYTkuNzcgOS43NyAwIDAgMSAwLTExLjg2In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzIn1dLFsicGF0aCIse2Q6Ik0xMC40NiA3LjI2QzEwLjIgNS44OCA5LjE3IDQuMjQgOCAzaDUuOGEyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjQifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOTgifV1dfSk7dmFyIHZQLGpJZT1nKCgpPT57dlA9W1sicGF0aCIse2Q6Im0xNy41ODYgMTEuNDE0LTUuOTMgNS45M2ExIDEgMCAwIDEtOC04bDMuMTM3LTMuMTM3YS43MDcuNzA3IDAgMCAxIDEuMjA3LjVWMTAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCA4LjU4NiAyMiA3In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTAiLHI6IjIifV1dfSk7dmFyIHhQLFZJZT1nKCgpPT57eFA9W1sicGF0aCIse2Q6Ik0xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCAyMlY0In1dLFsicGF0aCIse2Q6Ik03LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcifV1dfSk7dmFyIHlQLFVJZT1nKCgpPT57eVA9W1sicGF0aCIse2Q6Ik00IDExaDEifV0sWyJwYXRoIix7ZDoiTTggMTVhMiAyIDAgMCAxLTQgMFYzYTEgMSAwIDAgMSAxLTFoLjVDMTQgMiAyMCA5IDIwIDE4djQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgd1AsV0llPWcoKCk9Pnt3UD1bWyJwYXRoIix7ZDoiTTE4IDIyVjIuOGEuOC44IDAgMCAwLTEuMTctLjcxTDUuNDUgNy43OGEuOC44IDAgMCAwIDAgMS40NEwxOCAxNS41In1dXX0pO3ZhciBrUCxHSWU9ZygoKT0+e2tQPVtbInBhdGgiLHtkOiJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSJ9XV19KTt2YXIgU1AsS0llPWcoKCk9PntTUD1bWyJwYXRoIix7ZDoiTTQgMjJWNGExIDEgMCAwIDEgLjQtLjhBNiA2IDAgMCAxIDggMmMzIDAgNSAyIDcuMzMzIDJxMiAwIDMuMDY3LS44QTEgMSAwIDAgMSAyMCA0djEwYTEgMSAwIDAgMS0uNC44QTYgNiAwIDAgMSAxNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV1dfSk7dmFyIF9QLFlJZT1nKCgpPT57X1A9W1sicGF0aCIse2Q6Ik0xMiAzcTEgNCA0IDYuNXQzIDUuNWExIDEgMCAwIDEtMTQgMCA1IDUgMCAwIDEgMS0zIDEgMSAwIDAgMCA1IDBjMC0yLTEuNS0zLTEuNS01cTAtMiAyLjUtNCJ9XV19KTt2YXIgTVAsWkllPWcoKCk9PntNUD1bWyJwYXRoIix7ZDoiTTExLjY1MiA2SDE4In1dLFsicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnY0YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy42NDkgMkgxN2ExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOGE0IDQgMCAwIDAtLjU1IDEuMDA3In1dXX0pO3ZhciB6UCxYSWU9ZygoKT0+e3pQPVtbInBhdGgiLHtkOiJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiJ9XSxbInBhdGgiLHtkOiJtNSAyMiAxNC00In1dLFsicGF0aCIse2Q6Im01IDE4IDE0IDQifV1dfSk7dmFyIENQLFFJZT1nKCgpPT57Q1A9W1sicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44QTQgNCAwIDAgMCAxNiAxMnY4YTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgNmgxMiJ9XV19KTt2YXIgVFAsSkllPWcoKCk9PntUUD1bWyJwYXRoIix7ZDoiTTEwIDJ2Mi4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2Ni4zNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuMjI3LTkuNTYzIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNUgxNSJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV19KTt2YXIgJFAsZUFlPWcoKCk9PnskUD1bWyJwYXRoIix7ZDoiTTE0IDJ2NmEyIDIgMCAwIDAgLjI0NS45Nmw1LjUxIDEwLjA4QTIgMiAwIDAgMSAxOCAyMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuNTEtMTAuMDhBMiAyIDAgMCAwIDEwIDhWMiJ9XSxbInBhdGgiLHtkOiJNNi40NTMgMTVoMTEuMDk0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXX0pO3ZhciBEUCx0QWU9ZygoKT0+e0RQPVtbInBhdGgiLHtkOiJNMTAgMnY2LjI5MmE3IDcgMCAxIDAgNCAwVjIifV0sWyJwYXRoIix7ZDoiTTUgMTVoMTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dfSk7dmFyIExQLGFBZT1nKCgpPT57TFA9W1sicGF0aCIse2Q6Im0zIDcgNSA1LTUgNVY3In1dLFsicGF0aCIse2Q6Im0yMSA3LTUgNSA1IDVWNyJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV1dfSk7dmFyIEVQLHNBZT1nKCgpPT57RVA9W1sicGF0aCIse2Q6Im0xNyAzLTUgNS01LTVoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxLTUtNS01IDVoMTAifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBQUCxpQWU9ZygoKT0+e1BQPVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjEyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVoifV0sWyJwYXRoIix7ZDoiTTEyIDIyYy00LjIgMC03LTEuNjY3LTctNSA0LjIgMCA3IDEuNjY3IDcgNVoifV1dfSk7dmFyIElQLHJBZT1nKCgpPT57SVA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgQVAsb0FlPWcoKCk9PntBUD1bWyJwYXRoIix7ZDoiTTIgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTYifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im0xOSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTUgMTUgMy0zLTMtMyJ9XV19KTt2YXIgTlAsbkFlPWcoKCk9PntOUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTYuNUE0LjUgNC41IDAgMSAxIDcuNSAxMiA0LjUgNC41IDAgMSAxIDEyIDcuNWE0LjUgNC41IDAgMSAxIDQuNSA0LjUgNC41IDQuNSAwIDEgMS00LjUgNC41In1dLFsicGF0aCIse2Q6Ik0xMiA3LjVWOSJ9XSxbInBhdGgiLHtkOiJNNy41IDEySDkifV0sWyJwYXRoIix7ZDoiTTE2LjUgMTJIMTUifV0sWyJwYXRoIix7ZDoiTTEyIDE2LjVWMTUifV0sWyJwYXRoIix7ZDoibTggOCAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDkuODggMTYgOCJ9XSxbInBhdGgiLHtkOiJtOCAxNiAxLjg4LTEuODgifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDE0LjEyIDE2IDE2In1dXX0pO3ZhciBSUCxsQWU9ZygoKT0+e1JQPVtbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0yMC45IDE5LjhBMiAyIDAgMCAwIDIyIDE4VjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMmg1LjEifV0sWyJwYXRoIix7ZDoiTTE1IDExdi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxN3YtMiJ9XV19KTt2YXIgT1AsY0FlPWcoKCk9PntPUD1bWyJwYXRoIix7ZDoiTTEyIDZ2OGwzLTMgMyAzVjYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyeiJ9XV19KTt2YXIgRlAsZEFlPWcoKCk9PntGUD1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMgMy0zLTMifV1dfSk7dmFyIEJQLHVBZT1nKCgpPT57QlA9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkgMTMgMiAyIDQtNCJ9XV19KTt2YXIgSFAscEFlPWcoKCk9PntIUD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV19KTt2YXIgcVAsaEFlPWcoKCk9PntxUD1bWyJwYXRoIix7ZDoiTTEwIDEwLjUgOCAxM2wyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTAuNSAyIDIuNS0yIDIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJ6In1dXX0pO3ZhciBjNixmQWU9ZygoKT0+e2M2PVtbInBhdGgiLHtkOiJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMifV0sWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgalAsbUFlPWcoKCk9PntqUD1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV1dfSk7dmFyIFZQLGdBZT1nKCgpPT57VlA9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjEifV1dfSk7dmFyIFVQLGJBZT1nKCgpPT57VVA9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoibTE1IDEzLTMgMy0zLTMifV1dfSk7dmFyIFdQLHZBZT1nKCgpPT57V1A9W1sicGF0aCIse2Q6Ik0xOCAxOWE1IDUgMCAwIDEtNS01djgifV0sWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgR1AseEFlPWcoKCk9PntHUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gzIn1dLFsicGF0aCIse2Q6Ik03IDEzaDMifV1dfSk7dmFyIEtQLHlBZT1nKCgpPT57S1A9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgWVAsd0FlPWcoKCk9PntZUD1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTB2NiJ9XV19KTt2YXIgWlAsa0FlPWcoKCk9PntaUD1bWyJwYXRoIix7ZDoiTTEzIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MS4zNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkgMTRoMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBYUCxTQWU9ZygoKT0+e1hQPVtbInBhdGgiLHtkOiJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAzLTMtMy0zIn1dXX0pO3ZhciBRUCxfQWU9ZygoKT0+e1FQPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMTciLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIn1dXX0pO3ZhciBKUCxNQWU9ZygoKT0+e0pQPVtbInBhdGgiLHtkOiJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciBlSSx6QWU9ZygoKT0+e2VJPVtbInBhdGgiLHtkOiJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIHRJLENBZT1nKCgpPT57dEk9W1sicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgYUksVEFlPWcoKCk9PnthST1bWyJwYXRoIix7ZDoiTTIgNy41VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMS41In1dLFsicGF0aCIse2Q6Ik0yIDEzaDEwIn1dLFsicGF0aCIse2Q6Im01IDEwLTMgMyAzIDMifV1dfSk7dmFyIGQ2LCRBZT1nKCgpPT57ZDY9W1sicGF0aCIse2Q6Ik0yIDExLjVWNWEyIDIgMCAwIDEgMi0yaDMuOWMuNyAwIDEuMy4zIDEuNy45bC44IDEuMmMuNC42IDEgLjkgMS43LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC05LjUifV0sWyJwYXRoIix7ZDoiTTExLjM3OCAxMy42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV19KTt2YXIgc0ksREFlPWcoKCk9PntzST1bWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXX0pO3ZhciBpSSxMQWU9ZygoKT0+e2lJPVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1In1dXX0pO3ZhciBySSxFQWU9ZygoKT0+e3JJPVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTQuMyAxNSAxNiJ9XV19KTt2YXIgb0ksUEFlPWcoKCk9PntvST1bWyJwYXRoIix7ZDoiTTEwLjcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY0LjEifV0sWyJwYXRoIix7ZDoibTIxIDIxLTEuOS0xLjkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgbkksSUFlPWcoKCk9PntuST1bWyJwYXRoIix7ZDoiTTIgOS4zNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Im04IDE2IDMtMy0zLTMifV1dfSk7dmFyIGxJLEFBZT1nKCgpPT57bEk9W1sicGF0aCIse2Q6Ik0yMCAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMi41YTEgMSAwIDAgMS0uOC0uNGwtLjktMS4yQTEgMSAwIDAgMCAxNSAzaC0yYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0yLjlhMSAxIDAgMCAxLS44OC0uNTVsLS40Mi0uODVhMSAxIDAgMCAwLS45Mi0uNkgxM2ExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMifV1dfSk7dmFyIGNJLE5BZT1nKCgpPT57Y0k9W1sicGF0aCIse2Q6Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2LjUifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0yMiAyMnYtNGgtNCJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41In1dXX0pO3ZhciBkSSxSQWU9ZygoKT0+e2RJPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im05IDEzIDMtMyAzIDMifV1dfSk7dmFyIHVJLE9BZT1nKCgpPT57dUk9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxMC41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMC41LTUgNSJ9XV19KTt2YXIgcEksRkFlPWcoKCk9PntwST1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgaEksQkFlPWcoKCk9PntoST1bWyJwYXRoIix7ZDoiTTIwIDVhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgyLjVhMS41IDEuNSAwIDAgMSAxLjIuNmwuNi44YTEuNSAxLjUgMCAwIDAgMS4yLjZ6In1dLFsicGF0aCIse2Q6Ik0zIDguMjY4YTIgMiAwIDAgMC0xIDEuNzM4VjE5YTIgMiAwIDAgMCAyIDJoMTFhMiAyIDAgMCAwIDEuNzMyLTEifV1dfSk7dmFyIGZJLEhBZT1nKCgpPT57Zkk9W1sicGF0aCIse2Q6Ik00IDE2di0yLjM4QzQgMTEuNSAyLjk3IDEwLjUgMyA4Yy4wMy0yLjcyIDEuNDktNiA0LjUtNkM5LjM3IDIgMTAgMy44IDEwIDUuNWMwIDMuMTEtMiA1LjY2LTIgOC42OFYxNmEyIDIgMCAxIDEtNCAwWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdoNCJ9XSxbInBhdGgiLHtkOiJNNCAxM2g0In1dXX0pO3ZhciBtSSxxQWU9ZygoKT0+e21JPVtbInBhdGgiLHtkOiJNMTIgMTJINWEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTE1IDE5aDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5VjIifV0sWyJwYXRoIix7ZDoiTTYgMTJWN2EyIDIgMCAwIDEgMi0yaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMy44MjggMy44MjhBMiAyIDAgMCAxIDE2IDEwLjgyOCJ9XSxbInBhdGgiLHtkOiJNNyAxOWg0In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBnSSxqQWU9ZygoKT0+e2dJPVtbInBhdGgiLHtkOiJNNCAxNGg2In1dLFsicGF0aCIse2Q6Ik00IDJoMTAifV0sWyJyZWN0Iix7eDoiNCIseToiMTgiLHdpZHRoOiIxNiIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIGJJLFZBZT1nKCgpPT57Ykk9W1sicGF0aCIse2Q6Im0xNSAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDE4di0yYTQgNCAwIDAgMSA0LTRoMTIifV1dfSk7dmFyIHZJLFVBZT1nKCgpPT57dkk9W1sibGluZSIse3gxOiIyMiIseDI6IjIiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiMTgiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiIyIix5MjoiMjIifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTgiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHhJLFdBZT1nKCgpPT57eEk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgeUksR0FlPWcoKCk9Pnt5ST1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDloMTEifV1dfSk7dmFyIHdJLEtBZT1nKCgpPT57d0k9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjgiLHg6IjciLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciBrSSxZQWU9ZygoKT0+e2tJPVtbInBhdGgiLHtkOiJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4In1dLFsicGF0aCIse2Q6Ik0xNiA2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDN2NiJ9XV19KTt2YXIgdTYsWkFlPWcoKCk9Pnt1Nj1bWyJwYXRoIix7ZDoiTTEyLjUzMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwuNDI3LS40NzMifV0sWyJwYXRoIix7ZDoibTE2LjUgMy41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAzLjUtNSA1In1dXX0pO3ZhciBTSSxYQWU9ZygoKT0+e1NJPVtbInBhdGgiLHtkOiJNMiA3djEwIn1dLFsicGF0aCIse2Q6Ik02IDV2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjE4Iix4OiIxMCIseToiMyIscng6IjIifV1dfSk7dmFyIHA2LFFBZT1nKCgpPT57cDY9W1sicGF0aCIse2Q6Ik0xMCAyMGExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MUwyMS43NCA0LjY3QTEgMSAwIDAgMCAyMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR6In1dXX0pO3ZhciBfSSxKQWU9ZygoKT0+e19JPVtbInBhdGgiLHtkOiJNMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxOCIseDoiNiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDN2MTgifV1dfSk7dmFyIE1JLGVOZT1nKCgpPT57TUk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMWgxIn1dXX0pO3ZhciB6SSx0TmU9ZygoKT0+e3pJPVtbInBhdGgiLHtkOiJNNyAyaDEwIn1dLFsicGF0aCIse2Q6Ik01IDZoMTQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiIxMCIscng6IjIifV1dfSk7dmFyIENJLGFOZT1nKCgpPT57Q0k9W1sicGF0aCIse2Q6Ik0zIDJoMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XV19KTt2YXIgVEksc05lPWcoKCk9PntUST1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjExIix5MjoiMTEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjEwIix5MjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6In1dXX0pO3ZhciAkSSxpTmU9ZygoKT0+eyRJPVtbInBhdGgiLHtkOiJNMTEuMTQ2IDE1Ljg1NGExLjIwNyAxLjIwNyAwIDAgMSAxLjcwOCAwbDEuNTYgMS41NkEyIDIgMCAwIDEgMTUgMTguODI4VjIxYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXYtMi4xNzJhMiAyIDAgMCAxIC41ODYtMS40MTR6In1dLFsicGF0aCIse2Q6Ik0xOC44MjggMTVhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTEuNTYtMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwLTEuNzA4bDEuNTYtMS41NkEyIDIgMCAwIDEgMTguODI4IDlIMjFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDF6In1dLFsicGF0aCIse2Q6Ik02LjU4NiAxNC40MTRBMiAyIDAgMCAxIDUuMTcyIDE1SDNhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDh6In1dLFsicGF0aCIse2Q6Ik05IDNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2Mi4xNzJhMiAyIDAgMCAxLS41ODYgMS40MTRsLTEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwOCAwbC0xLjU2LTEuNTZBMiAyIDAgMCAxIDkgNS4xNzJ6In1dXX0pO3ZhciBESSxyTmU9ZygoKT0+e0RJPVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIxMCIseTI6IjE0In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTMiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjExIix5MjoiMTEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgTEksb05lPWcoKCk9PntMST1bWyJwYXRoIix7ZDoibTEyIDE0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxOWExMCAxMCAwIDEgMSAxNy4zMiAwIn1dXX0pO3ZhciBFSSxuTmU9ZygoKT0+e0VJPVtbInBhdGgiLHtkOiJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM2w4LjM4NC04LjM4MSJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNi02In1dLFsicGF0aCIse2Q6Im0yMS41IDEwLjUtOC04In1dLFsicGF0aCIse2Q6Im04IDggNi02In1dLFsicGF0aCIse2Q6Im04LjUgNy41IDggOCJ9XV19KTt2YXIgUEksbE5lPWcoKCk9PntQST1bWyJwYXRoIix7ZDoiTTEwLjUgMyA4IDlsNCAxMyA0LTEzLTIuNS02In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjYuOGwzIDRhMiAyIDAgMCAxIC4wMTMgMi4zODJsLTcuOTkgMTAuOTg2YTIgMiAwIDAgMS0zLjI0NyAwbC03Ljk5LTEwLjk4NkEyIDIgMCAwIDEgMi40IDcuOGwyLjk5OC0zLjk5N0EyIDIgMCAwIDEgNyAzeiJ9XSxbInBhdGgiLHtkOiJNMiA5aDIwIn1dXX0pO3ZhciBJSSxjTmU9ZygoKT0+e0lJPVtbInBhdGgiLHtkOiJNOSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMmE4IDggMCAwIDAtOCA4djEybDMtMyAyLjUgMi41TDEyIDE5bDIuNSAyLjVMMTcgMTlsMyAzVjEwYTggOCAwIDAgMC04LTh6In1dXX0pO3ZhciBBSSxkTmU9ZygoKT0+e0FJPVtbInBhdGgiLHtkOiJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTJWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XSxbInBhdGgiLHtkOiJNOSAxMlYzIn1dXX0pO3ZhciBOSSx1TmU9ZygoKT0+e05JPVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIFJJLHBOZT1nKCgpPT57Ukk9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0yMCAxMXY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi04In1dLFsicGF0aCIse2Q6Ik03LjUgN2ExIDEgMCAwIDEgMC01QTQuOCA4IDAgMCAxIDEyIDdhNC44IDggMCAwIDEgNC41LTUgMSAxIDAgMCAxIDAgNSJ9XSxbInJlY3QiLHt4OiIzIix5OiI3Iix3aWR0aDoiMTgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIE9JLGhOZT1nKCgpPT57T0k9W1sicGF0aCIse2Q6Ik02IDN2MTIifV0sWyJwYXRoIix7ZDoiTTE4IDlhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiJ9XSxbInBhdGgiLHtkOiJNNiAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDkifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dXX0pO3ZhciBGSSxmTmU9ZygoKT0+e0ZJPVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgaDYsbU5lPWcoKCk9PntoNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjkiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgQkksZ05lPWcoKCk9PntCST1bWyJwYXRoIix7ZDoiTTEyIDN2NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY2In1dXX0pO3ZhciBISSxiTmU9ZygoKT0+e0hJPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE4SDdhMiAyIDAgMCAxLTItMlY5In1dLFsicGF0aCIse2Q6Im05IDE1IDMgMy0zIDMifV1dfSk7dmFyIHFJLHZOZT1nKCgpPT57cUk9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoiTTExIDE4SDhhMiAyIDAgMCAxLTItMlY5In1dXX0pO3ZhciBqSSx4TmU9ZygoKT0+e2pJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5In1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dXX0pO3ZhciBWSSx5TmU9ZygoKT0+e1ZJPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNSA5djYifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTUuN0E5IDkgMCAwIDAgMTkgOSJ9XV19KTt2YXIgVUksd05lPWcoKCk9PntVST1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiAyMVY5YTkgOSAwIDAgMCA5IDkifV1dfSk7dmFyIFdJLGtOZT1nKCgpPT57V0k9W1sicGF0aCIse2Q6Ik0xMiA2aDRhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik02IDEydjkifV0sWyJwYXRoIix7ZDoiTTkgMyAzIDkifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgR0ksU05lPWcoKCk9PntHST1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV1dfSk7dmFyIEtJLF9OZT1nKCgpPT57S0k9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02IDl2MTIifV0sWyJwYXRoIix7ZDoibTIxIDMtNiA2In1dLFsicGF0aCIse2Q6Im0yMSA5LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNVYxNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBZSSxNTmU9ZygoKT0+e1lJPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNSA5djEyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDE1djYifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02In1dXX0pO3ZhciBaSSx6TmU9ZygoKT0+e1pJPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiA5djEyIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XV19KTt2YXIgWEksQ05lPWcoKCk9PntYST1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggNlY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMXYtMSJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dfSk7dmFyIFFJLFROZT1nKCgpPT57UUk9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBKSSwkTmU9ZygoKT0+e0pJPVtbInBhdGgiLHtkOiJNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXoifV0sWyJwYXRoIix7ZDoiTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIn1dXX0pO3ZhciBlQSxETmU9ZygoKT0+e2VBPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTUiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNSIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTVhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0yLjUgMTMgNSA3Yy43LTEuMyAxLjQtMiAzLTIifV0sWyJwYXRoIix7ZDoiTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMiJ9XV19KTt2YXIgdEEsTE5lPWcoKCk9Pnt0QT1bWyJwYXRoIix7ZDoiTTE1LjY4NiAxNUExNC41IDE0LjUgMCAwIDEgMTIgMjJhMTQuNSAxNC41IDAgMCAxIDAtMjAgMTAgMTAgMCAxIDAgOS41NDIgMTMifV0sWyJwYXRoIix7ZDoiTTIgMTJoOC41In1dLFsicGF0aCIse2Q6Ik0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI2IixyeDoiMSJ9XV19KTt2YXIgYUEsRU5lPWcoKCk9PnthQT1bWyJwYXRoIix7ZDoibTE2IDMgNSA1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwQTEwIDEwIDAgMSAxIDEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDQtMTAifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dXX0pO3ZhciBzQSxQTmU9ZygoKT0+e3NBPVtbInBhdGgiLHtkOiJNMTAuMTE0IDQuNDYyQTE0LjUgMTQuNSAwIDAgMSAxMiAyYTEwIDEwIDAgMCAxIDkuMzEzIDEzLjY0MyJ9XSxbInBhdGgiLHtkOiJNMTUuNTU3IDE1LjU1NkExNC41IDE0LjUgMCAwIDEgMTIgMjIgMTAgMTAgMCAwIDEgNC45MjkgNC45MjkifV0sWyJwYXRoIix7ZDoiTTE1Ljg5MiAxMC4yMzRBMTQuNSAxNC41IDAgMCAwIDEyIDJhMTAgMTAgMCAwIDAtMy42NDMuNjg3In1dLFsicGF0aCIse2Q6Ik0xNy42NTYgMTJIMjIifV0sWyJwYXRoIix7ZDoiTTE5LjA3MSAxOS4wNzFBMTAgMTAgMCAwIDEgMTIgMjIgMTQuNSAxNC41IDAgMCAxIDguNDQgOC40NSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxMCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBpQSxJTmU9ZygoKT0+e2lBPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV19KTt2YXIgckEsQU5lPWcoKCk9PntyQT1bWyJwYXRoIix7ZDoiTTEyIDEzVjJsOCA0LTggNCJ9XSxbInBhdGgiLHtkOiJNMjAuNTYxIDEwLjIyMmE5IDkgMCAxIDEtMTIuNTUtNS4yOSJ9XSxbInBhdGgiLHtkOiJNOC4wMDIgOS45OTdhNSA1IDAgMSAwIDguOSAyLjAyIn1dXX0pO3ZhciBvQSxOTmU9ZygoKT0+e29BPVtbInBhdGgiLHtkOiJNMiAxN2gxOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDIxVjMifV0sWyJwYXRoIix7ZDoiTTcgMTd2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMyJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjExIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMSIscjoiMiJ9XV19KTt2YXIgbkEsUk5lPWcoKCk9PntuQT1bWyJwYXRoIix7ZDoiTTIxLjQyIDEwLjkyMmExIDEgMCAwIDAtLjAxOS0xLjgzOEwxMi44MyA1LjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDkuMDhhMSAxIDAgMCAwIDAgMS44MzJsOC41NyAzLjkwOGEyIDIgMCAwIDAgMS42NiAweiJ9XSxbInBhdGgiLHtkOiJNMjIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNNiAxMi41VjE2YTYgMyAwIDAgMCAxMiAwdi0zLjUifV1dfSk7dmFyIGxBLE9OZT1nKCgpPT57bEE9W1sicGF0aCIse2Q6Ik0yMiA1VjJsLTUuODkgNS44OSJ9XSxbImNpcmNsZSIse2N4OiIxNi42IixjeToiMTUuODkiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiOC4xMSIsY3k6IjcuNCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMi4zNSIsY3k6IjExLjY1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEzLjkxIixjeToiNS44NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOC4xNSIsY3k6IjEwLjA5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYuNTYiLGN5OiIxMy4yIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjgiLGN5OiIxNy40NCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjMifV1dfSk7dmFyIGY2LEZOZT1nKCgpPT57ZjY9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBtNixCTmU9ZygoKT0+e202PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV1dfSk7dmFyIGc2LEhOZT1nKCgpPT57ZzY9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxNiA1IDUifV0sWyJwYXRoIix7ZDoibTE2IDIxIDUtNSJ9XV19KTt2YXIgYjYscU5lPWcoKCk9PntiNj1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgY0Esak5lPWcoKCk9PntjQT1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBXMCxWTmU9ZygoKT0+e1cwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgZEEsVU5lPWcoKCk9PntkQT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciB1QSxXTmU9ZygoKT0+e3VBPVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjEifV1dfSk7dmFyIHBBLEdOZT1nKCgpPT57cEE9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBoQSxLTmU9ZygoKT0+e2hBPVtbInBhdGgiLHtkOiJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiI3Iix5OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxMCIseToiMTIiLHJ4OiIxIn1dXX0pO3ZhciBmQSxZTmU9ZygoKT0+e2ZBPVtbInBhdGgiLHtkOiJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0In1dLFsicGF0aCIse2Q6Ik0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiJ9XSxbInBhdGgiLHtkOiJtNiAxNiAyIDIifV0sWyJwYXRoIix7ZDoiTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3oifV1dfSk7dmFyIG1BLFpOZT1nKCgpPT57bUE9W1sicGF0aCIse2Q6Ik0xMy4xNDQgMjEuMTQ0QTcuMjc0IDEwLjQ0NSA0NSAxIDAgMi44NTYgMTAuODU2In1dLFsicGF0aCIse2Q6Ik0xMy4xNDQgMjEuMTQ0QTcuMjc0IDQuMzY1IDQ1IDAgMCAyLjg1NiAxMC44NTZhNy4yNzQgNC4zNjUgNDUgMCAwIDEwLjI4OCAxMC4yODgifV0sWyJwYXRoIix7ZDoiTTE2LjU2NSAxMC40MzUgMTguNiA4LjRhMi41MDEgMi41MDEgMCAxIDAgMS42NS00LjY1IDIuNSAyLjUgMCAxIDAtNC42NiAxLjY2bC0yLjAyNCAyLjAyNSJ9XSxbInBhdGgiLHtkOiJtOC41IDE2LjUtMS0xIn1dXX0pO3ZhciBnQSxYTmU9ZygoKT0+e2dBPVtbInBhdGgiLHtkOiJNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUifV0sWyJwYXRoIix7ZDoiTTUgMTJhMiAyIDAgMCAxLTItMiA5IDcgMCAwIDEgMTggMCAyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik01IDE2YTIgMiAwIDAgMC0yIDIgMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zIDIgMiAwIDAgMC0yLTJxMCAwIDAgMCJ9XSxbInBhdGgiLHtkOiJtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dXX0pO3ZhciBiQSxRTmU9ZygoKT0+e2JBPVtbInBhdGgiLHtkOiJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSJ9XSxbInBhdGgiLHtkOiJtMTggMTUgNC00In1dLFsicGF0aCIse2Q6Im0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41In1dXX0pO3ZhciB2QSxKTmU9ZygoKT0+e3ZBPVtbInBhdGgiLHtkOiJNMTEgMTVoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTcifV0sWyJwYXRoIix7ZDoibTcgMjEgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSJ9XSxbInBhdGgiLHtkOiJtMiAxNiA2IDYifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI5IixyOiIyLjkifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIHhBLGVSZT1nKCgpPT57eEE9W1sicGF0aCIse2Q6Ik0xMi4wMzUgMTcuMDEyYTMgMyAwIDAgMC0zLTNsLS4zMTEtLjAwMmEuNzIuNzIgMCAwIDEtLjUwNS0xLjIyOWwxLjE5NS0xLjE5NUEyIDIgMCAwIDEgMTAuODI4IDExSDEyYTIgMiAwIDAgMCAwLTRIOS4yNDNhMyAzIDAgMCAwLTIuMTIyLjg3OWwtMi43MDcgMi43MDdBNC44MyA0LjgzIDAgMCAwIDMgMTRhOCA4IDAgMCAwIDggOGgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjJhMiAyIDAgMSAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuODg4IDkuNjYyQTIgMiAwIDAgMCAxNyA4VjVBMiAyIDAgMSAwIDEzIDUifV0sWyJwYXRoIix7ZDoiTTkgNUEyIDIgMCAxIDAgNSA1VjEwIn1dLFsicGF0aCIse2Q6Ik05IDdWNEEyIDIgMCAxIDEgMTMgNFY3LjI2OCJ9XV19KTt2YXIgdjYsdFJlPWcoKCk9Pnt2Nj1bWyJwYXRoIix7ZDoiTTE4IDExLjVWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMFY4YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjlWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2NSJ9XSxbInBhdGgiLHtkOiJNNiAxNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC00YTggOCAwIDAgMS04LTggMiAyIDAgMSAxIDQgMCJ9XV19KTt2YXIgeUEsYVJlPWcoKCk9Pnt5QT1bWyJwYXRoIix7ZDoiTTExIDE0aDJhMiAyIDAgMCAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE2In1dLFsicGF0aCIse2Q6Im0xNC40NSAxMy4zOSA1LjA1LTQuNjk0QzIwLjE5NiA4IDIxIDYuODUgMjEgNS43NWEyLjc1IDIuNzUgMCAwIDAtNC43OTctMS44MzcuMjc2LjI3NiAwIDAgMS0uNDA2IDBBMi43NSAyLjc1IDAgMCAwIDExIDUuNzVjMCAxLjIuODAyIDIuMjQ4IDEuNSAyLjk0NkwxNiAxMS45NSJ9XSxbInBhdGgiLHtkOiJtMiAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTcgMjAgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMSAxIDAgMCAwLTIuNzUtMi45MSJ9XV19KTt2YXIgeDYsc1JlPWcoKCk9Pnt4Nj1bWyJwYXRoIix7ZDoiTTExIDEyaDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE0In1dLFsicGF0aCIse2Q6Im03IDE4IDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTMgNiA2In1dXX0pO3ZhciB3QSxpUmU9ZygoKT0+e3dBPVtbInBhdGgiLHtkOiJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1In1dXX0pO3ZhciBrQSxyUmU9ZygoKT0+e2tBPVtbInBhdGgiLHtkOiJNMTIgM1YyIn1dLFsicGF0aCIse2Q6Im0xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINSJ9XSxbInBhdGgiLHtkOiJNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yIn1dLFsicGF0aCIse2Q6Ik00IDEwaDE2In1dLFsicGF0aCIse2Q6Ik01IDEwYTcgNyAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik01IDE0djZhMSAxIDAgMCAxLTEgMUgyIn1dXX0pO3ZhciBTQSxvUmU9ZygoKT0+e1NBPVtbInBhdGgiLHtkOiJNMTggMTFWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDEwVjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTggOGEyIDIgMCAxIDEgNCAwdjZhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBfQSxuUmU9ZygoKT0+e19BPVtbInBhdGgiLHtkOiJNMi4wNDggMTguNTY2QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjk1Mi0yLjQzNGwtMi05QTIgMiAwIDAgMCAxOCA4SDZhMiAyIDAgMCAwLTEuOTUyIDEuNTY2eiJ9XSxbInBhdGgiLHtkOiJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSJ9XV19KTt2YXIgTUEsbFJlPWcoKCk9PntNQT1bWyJwYXRoIix7ZDoibTExIDE3IDIgMmExIDEgMCAxIDAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAyLjUgMi41YTEgMSAwIDEgMCAzLTNsLTMuODgtMy44OGEzIDMgMCAwIDAtNC4yNCAwbC0uODguODhhMSAxIDAgMSAxLTMtM2wyLjgxLTIuODFhNS43OSA1Ljc5IDAgMCAxIDcuMDYtLjg3bC40Ny4yOGEyIDIgMCAwIDAgMS40Mi4yNUwyMSA0In1dLFsicGF0aCIse2Q6Im0yMSAzIDEgMTFoLTIifV0sWyJwYXRoIix7ZDoiTTMgMyAyIDE0bDYuNSA2LjVhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJNMyA0aDgifV1dfSk7dmFyIHpBLGNSZT1nKCgpPT57ekE9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMThoLjAxIn1dXX0pO3ZhciBDQSxkUmU9ZygoKT0+e0NBPVtbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV19KTt2YXIgVEEsdVJlPWcoKCk9PntUQT1bWyJwYXRoIix7ZDoiTTEwIDEwVjVhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2NSJ9XSxbInBhdGgiLHtkOiJNMTQgNmE2IDYgMCAwIDEgNiA2djMifV0sWyJwYXRoIix7ZDoiTTQgMTV2LTNhNiA2IDAgMCAxIDYtNiJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciAkQSxwUmU9ZygoKT0+eyRBPVtbInBhdGgiLHtkOiJNMTAgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yLjIxMiAxMS41NzdhMiAyIDAgMCAwLS4yMTIuODk2VjE4YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS41MjdhMiAyIDAgMCAwLS4yMTItLjg5NkwxOC41NSA1LjExQTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoifV0sWyJwYXRoIix7ZDoiTTIxLjk0NiAxMi4wMTNIMi4wNTQifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dXX0pO3ZhciBEQSxoUmU9ZygoKT0+e0RBPVtbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjEwIix4MjoiOCIseTE6IjMiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNCIseTE6IjMiLHkyOiIyMSJ9XV19KTt2YXIgTEEsZlJlPWcoKCk9PntMQT1bWyJwYXRoIix7ZDoiTTE0IDE4YTIgMiAwIDAgMC00IDAifV0sWyJwYXRoIix7ZDoibTE5IDExLTIuMTEtNi42NTdhMiAyIDAgMCAwLTIuNzUyLTEuMTQ4bC0xLjI3Ni42MUEyIDIgMCAwIDEgMTIgNEg4LjVhMiAyIDAgMCAwLTEuOTI1IDEuNDU2TDUgMTEifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEVBLG1SZT1nKCgpPT57RUE9W1sicGF0aCIse2Q6Im01LjIgNi4yIDEuNCAxLjQifV0sWyJwYXRoIix7ZDoiTTIgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJtMTcuNCA3LjYgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTdIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjFIMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTNhNCA0IDAgMCAwLTggMCJ9XSxbInBhdGgiLHtkOiJNMTIgNVYyLjUifV1dfSk7dmFyIFBBLGdSZT1nKCgpPT57UEE9W1sicGF0aCIse2Q6Ik0xMCAxMkg2In1dLFsicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNC41YS41LjUgMCAwIDAgLjUuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMUEyLjUgMi41IDAgMCAwIDE1LjUgOWgtMWEuNS41IDAgMCAwLS41LjV6In1dLFsicGF0aCIse2Q6Ik02IDE1VjkifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgSUEsYlJlPWcoKCk9PntJQT1bWyJwYXRoIix7ZDoiTTIyIDlhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDFsMiAyaDEybDItMmgxYTEgMSAwIDAgMCAxLTFaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTJoOSJ9XV19KTt2YXIgQUEsdlJlPWcoKCk9PntBQT1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Im0xNyAxMiAzLTJ2OCJ9XV19KTt2YXIgTkEseFJlPWcoKCk9PntOQT1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNGMwLTQgNC0zIDQtNiAwLTEuNS0yLTIuNS00LTEifV1dfSk7dmFyIFJBLHlSZT1nKCgpPT57UkE9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMC41YzEuNy0xIDMuNSAwIDMuNSAxLjVhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuNWMyIDEuNSA0IC4zIDQtMS41YTIgMiAwIDAgMC0yLTIifV1dfSk7dmFyIE9BLHdSZT1nKCgpPT57T0E9W1sicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0xNyAxMHYzYTEgMSAwIDAgMCAxIDFoMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTB2OCJ9XSxbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV1dfSk7dmFyIEZBLGtSZT1nKCgpPT57RkE9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2LTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuN2MuNC4yLjguMyAxLjMuMyAxLjUgMCAyLjctMS4xIDIuNy0yLjVTMTkuOCAxMyAxOC4zIDEzSDE3In1dXX0pO3ZhciBCQSxTUmU9ZygoKT0+e0JBPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTBjLTIgMi0zIDMuNS0zIDYifV1dfSk7dmFyIEhBLF9SZT1nKCgpPT57SEE9W1sicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik02IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE4IDIwVjQifV1dfSk7dmFyIHFBLE1SZT1nKCgpPT57cUE9W1sicGF0aCIse2Q6Ik0yMSAxNGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTkuMTI4IDMuNDdBOSA5IDAgMCAxIDIxIDEydjMuMzQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCAyMC40MTRBMiAyIDAgMCAxIDE5IDIxaC0xYTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDIuNjM2LTYuMzY0In1dXX0pO3ZhciBqQSx6UmU9ZygoKT0+e2pBPVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dfSk7dmFyIFZBLENSZT1nKCgpPT57VkE9W1sicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAxOCAwdjdhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgVUEsVFJlPWcoKCk9PntVQT1bWyJwYXRoIix7ZDoiTTEyLjQwOSA1LjgyNGMtLjcwMi43OTItMS4xNSAxLjQ5Ni0xLjQxNSAyLjE2NmwyLjE1MyAyLjE1NmEuNS41IDAgMCAxIDAgLjcwN2wtMi4yOTMgMi4yOTNhLjUuNSAwIDAgMCAwIC43MDdMMTIgMTUifV0sWyJwYXRoIix7ZDoiTTEzLjUwOCAyMC4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzcuNi42IDAgMCAwIC44MTguMDAxQTUuNSA1LjUgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNXoifV1dfSk7dmFyIFdBLCRSZT1nKCgpPT57V0E9W1sicGF0aCIse2Q6Ik0xOS40MTQgMTQuNDE0QzIxIDEyLjgyOCAyMiAxMS41IDIyIDkuNWE1LjUgNS41IDAgMCAwLTkuNTkxLTMuNjc2LjYuNiAwIDAgMS0uODE4LjAwMUE1LjUgNS41IDAgMCAwIDIgOS41YzAgMi4zIDEuNSA0IDMgNS41bDUuNTM1IDUuMzYyYTIgMiAwIDAgMCAyLjg3OS4wNTIgMi4xMiAyLjEyIDAgMCAwLS4wMDQtMyAyLjEyNCAyLjEyNCAwIDEgMCAzLTMgMi4xMjQgMi4xMjQgMCAwIDAgMy4wMDQgMCAyIDIgMCAwIDAgMC0yLjgyOGwtMS44ODEtMS44ODJhMi40MSAyLjQxIDAgMCAwLTMuNDA5IDBsLTEuNzEgMS43MWEyIDIgMCAwIDEtMi44MjggMCAyIDIgMCAwIDEgMC0yLjgyOGwyLjgyMy0yLjc2MiJ9XV19KTt2YXIgR0EsRFJlPWcoKCk9PntHQT1bWyJwYXRoIix7ZDoibTE0Ljg3NiAxOC45OS0xLjM2OCAxLjMyM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWE1LjIgNS4yIDAgMCAxLS4yNDQgMS41NzIifV0sWyJwYXRoIix7ZDoiTTE1IDE1aDYifV1dfSk7dmFyIEtBLExSZT1nKCgpPT57S0E9W1sicGF0aCIse2Q6Ik0xMC41IDQuODkzYTUuNSA1LjUgMCAwIDEgMS4wOTEuOTMxLjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMS44NzItMS4wMDIgMy4zNTYtMi4xODcgNC42NTUifV0sWyJwYXRoIix7ZDoibTE2Ljk2NyAxNi45NjctMy40NTkgMy4zNDZhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgMi43NDctNC43NjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgWUEsRVJlPWcoKCk9PntZQT1bWyJwYXRoIix7ZDoibTE0LjQ3OSAxOS4zNzQtLjk3MS45MzlhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjE5IDEuNDkifV0sWyJwYXRoIix7ZDoiTTE1IDE1aDYifV0sWyJwYXRoIix7ZDoiTTE4IDEydjYifV1dfSk7dmFyIFpBLFBSZT1nKCgpPT57WkE9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dLFsicGF0aCIse2Q6Ik0zLjIyIDEzSDkuNWwuNS0xIDIgNC41IDItNyAxLjUgMy41aDUuMjcifV1dfSk7dmFyIFhBLElSZT1nKCgpPT57WEE9W1sicGF0aCIse2Q6Im0xNS41IDEyLjUgNSA1In1dLFsicGF0aCIse2Q6Im0yMC41IDEyLjUtNSA1In1dLFsicGF0aCIse2Q6Ik0yMS45NTUgOC43NzRhNS41IDUuNSAwIDAgMC05LjU0Ni0yLjk1LjYuNiAwIDAgMS0uODE4IDBBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUwOCA1LjMzMmEyIDIgMCAwIDAgMi41Ny4zNTIifV1dfSk7dmFyIFFBLEFSZT1nKCgpPT57UUE9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dXX0pO3ZhciBKQSxOUmU9ZygoKT0+e0pBPVtbInBhdGgiLHtkOiJNMTEgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNMTUuNSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik02IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di00In1dLFsicGF0aCIse2Q6Ik0xNCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNNSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAyMHYyIn1dXX0pO3ZhciBlTixSUmU9ZygoKT0+e2VOPVtbInBhdGgiLHtkOiJNMTEgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y4YTIgMiAwIDAgMCAyIDJoNS44NjUifV0sWyJwYXRoIix7ZDoiTTE3IDE3djQifV0sWyJwYXRoIix7ZDoiTTE4IDE3YTQgNCAwIDAgMCA0LTQgOCA2IDAgMCAwLTgtNiA2IDUgMCAwIDAtNiA1djNhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTTIgMTB2NSJ9XSxbInBhdGgiLHtkOiJNNiAzaDE2In1dLFsicGF0aCIse2Q6Ik03IDIxaDE0In1dLFsicGF0aCIse2Q6Ik04IDEzSDIifV1dfSk7dmFyIHROLE9SZT1nKCgpPT57dE49W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV1dfSk7dmFyIGFOLEZSZT1nKCgpPT57YU49W1sicGF0aCIse2Q6Im05IDExLTYgNnYzaDlsMy0zIn1dLFsicGF0aCIse2Q6Im0yMiAxMi00LjYgNC42YTIgMiAwIDAgMS0yLjggMGwtNS4yLTUuMmEyIDIgMCAwIDEgMC0yLjhMMTQgNCJ9XV19KTt2YXIgc04sQlJlPWcoKCk9PntzTj1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y1bDQgMiJ9XV19KTt2YXIgaU4sSFJlPWcoKCk9PntpTj1bWyJwYXRoIix7ZDoiTTEwLjgyIDE2LjEyYzEuNjkuNiAzLjkxLjc5IDUuMTguODUuNTUuMDMgMS0uNDIuOTctLjk3LS4wNi0xLjI3LS4yNi0zLjUtLjg1LTUuMTgifV0sWyJwYXRoIix7ZDoiTTExLjUgNi41YzEuNjQgMCA1LS4zOCA2LjcxLTEuMDcuNTItLjIuNTUtLjgyLjEyLTEuMTdBMTAgMTAgMCAwIDAgNC4yNiAxOC4zM2MuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44OC44OCAwIDAgMCAuNzMtLjc0Yy4zLTIuMTQtLjE1LTMuNS0uNjEtNC44OCJ9XSxbInBhdGgiLHtkOiJNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC45Ni0uOTYgMTcuNjggMTcuNjggMCAwIDAtLjktNC44NyJ9XSxbInBhdGgiLHtkOiJNMTYuOTQgMTUuNjJjLjg2LjIgMi43Ny42MiA0LjI5LjVhLjc3Ljc3IDAgMCAwIC43LS45IDE2LjY0IDE2LjY0IDAgMCAwLTEuMzYtNC4wOCJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NyJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkzIDMgM2EuNy43IDAgMCAxIDAtMSJ9XSxbInBhdGgiLHtkOiJNOS41OCAxMi4xOGMxLjI0IDIuOTggMS43NyA1Ljk1IDEuNTcgOC4yOGEuOC44IDAgMCAxLTEuMTMuNjggMjAuODIgMjAuODIgMCAwIDEtNC41LTMuMTUifV1dfSk7dmFyIHJOLHFSZT1nKCgpPT57ck49W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTQgMjAuNTdjLjUyLjI0IDIuNDQgMS4xMiA0LjA4IDEuMzcuNDYuMDYuODYtLjI1LjktLjcxLjEyLTEuNTItLjMtMy40My0uNS00LjI4In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNSJ9XSxbInBhdGgiLHtkOiJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCJ9XSxbInBhdGgiLHtkOiJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OGExMCAxMCAwIDAgMSA5Ljk4IDEuNThjLjQzLjM1LjQuOTYtLjEyIDEuMTctMS41LjYtNC4zLjk4LTYuMDcgMS4wNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBvTixqUmU9ZygoKT0+e29OPVtbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTE0IDloLTQifV0sWyJwYXRoIix7ZDoiTTE4IDExaDJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMjFWNWEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNiJ9XV19KTt2YXIgbk4sVlJlPWcoKCk9PntuTj1bWyJwYXRoIix7ZDoiTTEwIDIydi02LjU3In1dLFsicGF0aCIse2Q6Ik0xMiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNS40M1YyMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZhNSA1IDAgMCAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggN2guMDEifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgbE4sVVJlPWcoKCk9PntsTj1bWyJwYXRoIix7ZDoiTTUgMjJoMTQifV0sWyJwYXRoIix7ZDoiTTUgMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTQuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjIifV0sWyJwYXRoIix7ZDoiTTcgMnY0LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNEwxMiAxMmw0LjQxNC00LjQxNEEyIDIgMCAwIDAgMTcgNi4xNzJWMiJ9XV19KTt2YXIgY04sV1JlPWcoKCk9PntjTj1bWyJwYXRoIix7ZDoiTTguNjIgMTMuOEEyLjI1IDIuMjUgMCAxIDEgMTIgMTAuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgZE4sR1JlPWcoKCk9PntkTj1bWyJwYXRoIix7ZDoiTTEwIDEyVjguOTY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtMmExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgdU4sS1JlPWcoKCk9Pnt1Tj1bWyJwYXRoIix7ZDoiTTkuNSAxMy44NjZhNCA0IDAgMCAxIDUgLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTcgMTAuNzU0YTggOCAwIDAgMSAxMCAwIn1dXX0pO3ZhciBwTixZUmU9ZygoKT0+e3BOPVtbInBhdGgiLHtkOiJNMTIuMzUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzEtMS41M2w3LTZhMiAyIDAgMCAxIDIuNTggMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjIuMzUifV0sWyJwYXRoIix7ZDoiTTE0LjggMTIuNEExIDEgMCAwIDAgMTQgMTJoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0xNSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dXX0pO3ZhciB5NixaUmU9ZygoKT0+e3k2PVtbInBhdGgiLHtkOiJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dfSk7dmFyIHc2LFhSZT1nKCgpPT57dzY9W1sicGF0aCIse2Q6Ik0xMiAxN2M1IDAgOC0yLjY5IDgtNkg0YzAgMy4zMSAzIDYgOCA2bS00IDRoOG0tNC0zdjNNNS4xNCAxMWEzLjUgMy41IDAgMSAxIDYuNzEgMCJ9XSxbInBhdGgiLHtkOiJNMTIuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTE1LjUgNi41YTMuNSAzLjUgMCAxIDAtNyAwIn1dXX0pO3ZhciBrNixRUmU9ZygoKT0+e2s2PVtbInBhdGgiLHtkOiJtNyAxMSA0LjA4IDEwLjM1YTEgMSAwIDAgMCAxLjg0IDBMMTcgMTEifV0sWyJwYXRoIix7ZDoiTTE3IDdBNSA1IDAgMCAwIDcgNyJ9XSxbInBhdGgiLHtkOiJNMTcgN2EyIDIgMCAwIDEgMCA0SDdhMiAyIDAgMCAxIDAtNCJ9XV19KTt2YXIgaE4sSlJlPWcoKCk9PntoTj1bWyJwYXRoIix7ZDoiTTEzLjUgOGgtMyJ9XSxbInBhdGgiLHtkOiJtMTUgMi0xIDJoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgzIn1dLFsicGF0aCIse2Q6Ik0xNi44OTkgMjJBNSA1IDAgMCAwIDcuMSAyMiJ9XSxbInBhdGgiLHtkOiJtOSAyIDMgNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXX0pO3ZhciBmTixlT2U9ZygoKT0+e2ZOPVtbInBhdGgiLHtkOiJNMTYgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoMiJ9XSxbInBhdGgiLHtkOiJNNi4xNyAxNWEzIDMgMCAwIDEgNS42NiAwIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMSIscjoiMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI1Iix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBtTix0T2U9ZygoKT0+e21OPVtbInBhdGgiLHtkOiJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIn1dLFsicGF0aCIse2Q6Im0xNCAxOSAzIDN2LTUuNSJ9XSxbInBhdGgiLHtkOiJtMTcgMjIgMy0zIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciBnTixhT2U9ZygoKT0+e2dOPVtbInBhdGgiLHtkOiJNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjUiLHkyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXX0pO3ZhciBiTixzT2U9ZygoKT0+e2JOPVtbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dLFsicGF0aCIse2Q6Ik0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIn1dLFsibGluZSIse3gxOiIxMy41Iix4MjoiNiIseTE6IjEzLjUiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIyMSIseTE6IjEyIix5MjoiMTUifV0sWyJwYXRoIix7ZDoiTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5In1dLFsicGF0aCIse2Q6Ik0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSJ9XV19KTt2YXIgdk4saU9lPWcoKCk9Pnt2Tj1bWyJwYXRoIix7ZDoiTTE1IDE1LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnoifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjE3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Im02IDIxIDUtNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgeE4sck9lPWcoKCk9Pnt4Tj1bWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMS41VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg3LjUifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIHlOLG9PZT1nKCgpPT57eU49W1sicGF0aCIse2Q6Ik0xMC4zIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGwtMy4xLTMuMWEyIDIgMCAwIDAtMi44MTQuMDE0TDYgMjEifV0sWyJwYXRoIix7ZDoibTE0IDE5LjUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUuNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgd04sbk9lPWcoKCk9Pnt3Tj1bWyJwYXRoIix7ZDoiTTE2IDNoNXY1In1dLFsicGF0aCIse2Q6Ik0xNyAyMWgyYTIgMiAwIDAgMCAyLTIifV0sWyJwYXRoIix7ZDoiTTIxIDEydjMifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Im01IDIxIDQuMTQ0LTQuMTQ0YTEuMjEgMS4yMSAwIDAgMSAxLjcxMiAwTDEzIDE5In1dLFsicGF0aCIse2Q6Ik05IDNoMyJ9XSxbInJlY3QiLHt4OiIzIix5OiIxMSIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIixyeDoiMSJ9XV19KTt2YXIga04sbE9lPWcoKCk9PntrTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV1dfSk7dmFyIFNOLGNPZT1nKCgpPT57U049W1sicGF0aCIse2Q6Im0yMiAxMS0xLjI5Ni0xLjI5NmEyLjQgMi40IDAgMCAwLTMuNDA4IDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTQgOGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjciLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBfTixkT2U9ZygoKT0+e19OPVtbInBhdGgiLHtkOiJNMTIgM3YxMiJ9XSxbInBhdGgiLHtkOiJtOCAxMSA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik04IDVINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTQifV1dfSk7dmFyIE1OLHVPZT1nKCgpPT57TU49W1sicG9seWxpbmUiLHtwb2ludHM6IjIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMiJ9XSxbInBhdGgiLHtkOiJNNS40NSA1LjExIDIgMTJ2NmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTZsLTMuNDUtNi44OUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6In1dXX0pO3ZhciB6TixwT2U9ZygoKT0+e3pOPVtbInBhdGgiLHtkOiJNNiAzaDEyIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoibTYgMTMgOC41IDgifV0sWyJwYXRoIix7ZDoiTTYgMTNoMyJ9XSxbInBhdGgiLHtkOiJNOSAxM2M2LjY2NyAwIDYuNjY3LTEwIDAtMTAifV1dfSk7dmFyIENOLGhPZT1nKCgpPT57Q049W1sicGF0aCIse2Q6Ik02IDE2YzUgMCA3LTggMTItOGE0IDQgMCAwIDEgMCA4Yy01IDAtNy04LTEyLThhNCA0IDAgMSAwIDAgOCJ9XV19KTt2YXIgVE4sZk9lPWcoKCk9PntUTj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE2di00In1dLFsicGF0aCIse2Q6Ik0xMiA4aC4wMSJ9XV19KTt2YXIgJE4sbU9lPWcoKCk9PnskTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxN2guMDEifV1dfSk7dmFyIEROLGdPZT1nKCgpPT57RE49W1sibGluZSIse3gxOiIxOSIseDI6IjEwIix5MToiNCIseTI6IjQifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiNSIseTE6IjIwIix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XV19KTt2YXIgTE4sYk9lPWcoKCk9PntMTj1bWyJwYXRoIix7ZDoibTE2IDE0IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIwIDEwYTggOCAwIDEgMC04IDhoOCJ9XV19KTt2YXIgRU4sdk9lPWcoKCk9PntFTj1bWyJwYXRoIix7ZDoiTTQgMTBhOCA4IDAgMSAxIDggOEg0In1dLFsicGF0aCIse2Q6Im04IDIyLTQtNCA0LTQifV1dfSk7dmFyIFBOLHhPZT1nKCgpPT57UE49W1sicGF0aCIse2Q6Ik0xMiA5LjVWMjFtMC0xMS41TDYgM202IDYuNUwxOCAzIn1dLFsicGF0aCIse2Q6Ik02IDE1aDEyIn1dLFsicGF0aCIse2Q6Ik02IDExaDEyIn1dXX0pO3ZhciBJTix5T2U9ZygoKT0+e0lOPVtbInBhdGgiLHtkOiJNMjEgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJaIn1dLFsicGF0aCIse2Q6Ik02IDE1di0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMyJ9XV19KTt2YXIgQU4sd09lPWcoKCk9PntBTj1bWyJwYXRoIix7ZDoiTTUgM3YxNCJ9XSxbInBhdGgiLHtkOiJNMTIgM3Y4In1dLFsicGF0aCIse2Q6Ik0xOSAzdjE4In1dXX0pO3ZhciBOTixrT2U9ZygoKT0+e05OPVtbInBhdGgiLHtkOiJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEifV0sWyJwYXRoIix7ZDoibTYuNzA3IDYuNzA3IDEwLjU4NiAxMC41ODYifV0sWyJwYXRoIix7ZDoiTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXoifV1dfSk7dmFyIFJOLFNPZT1nKCgpPT57Uk49W1sicGF0aCIse2Q6Ik0xMi40IDIuN2EyLjUgMi41IDAgMCAxIDMuNCAwbDUuNSA1LjVhMi41IDIuNSAwIDAgMSAwIDMuNGwtMy43IDMuN2EyLjUgMi41IDAgMCAxLTMuNCAwTDguNyA5LjhhMi41IDIuNSAwIDAgMSAwLTMuNHoifV0sWyJwYXRoIix7ZDoibTE0IDcgMyAzIn1dLFsicGF0aCIse2Q6Im05LjQgMTAuNi02LjgxNCA2LjgxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNCJ9XV19KTt2YXIgT04sX09lPWcoKCk9PntPTj1bWyJwYXRoIix7ZDoiTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgRk4sTU9lPWcoKCk9PntGTj1bWyJwYXRoIix7ZDoibTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQifV0sWyJwYXRoIix7ZDoibTIxIDItOS42IDkuNiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNS41IixyOiI1LjUifV1dfSk7dmFyIEJOLHpPZT1nKCgpPT57Qk49W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NCJ9XV19KTt2YXIgSE4sQ09lPWcoKCk9PntITj1bWyJwYXRoIix7ZDoiTSAyMCA0IEEyIDIgMCAwIDEgMjIgNiJ9XSxbInBhdGgiLHtkOiJNIDIyIDYgTCAyMiAxNi40MSJ9XSxbInBhdGgiLHtkOiJNIDcgMTYgTCAxNiAxNiJ9XSxbInBhdGgiLHtkOiJNIDkuNjkgNCBMIDIwIDQifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XV19KTt2YXIgcU4sVE9lPWcoKCk9PntxTj1bWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE2aDEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dXX0pO3ZhciBqTiwkT2U9ZygoKT0+e2pOPVtbInBhdGgiLHtkOiJNMTIgMnY1In1dLFsicGF0aCIse2Q6Ik0xNC44MjkgMTUuOTk4YTMgMyAwIDEgMS01LjY1OCAwIn1dLFsicGF0aCIse2Q6Ik0yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnoifV1dfSk7dmFyIFZOLERPZT1nKCgpPT57Vk49W1sicGF0aCIse2Q6Ik0xMC4yOTMgMi4yOTNhMSAxIDAgMCAxIDEuNDE0IDBsMi41IDIuNSA1Ljk5NCAxLjIyN2ExIDEgMCAwIDEgLjUwNiAxLjY4N2wtNyA3YTEgMSAwIDAgMS0xLjY4Ny0uNTA2bC0xLjIyNy01Ljk5NC0yLjUtMi41YTEgMSAwIDAgMSAwLTEuNDE0eiJ9XSxbInBhdGgiLHtkOiJtMTQuMjA3IDQuNzkzLTMuNDE0IDMuNDE0In1dLFsicGF0aCIse2Q6Ik0zIDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im05LjA4NiA2LjUtNC43OTMgNC43OTNhMSAxIDAgMCAwLS4xOCAxLjE3TDcgMTgifV1dfSk7dmFyIFVOLExPZT1nKCgpPT57VU49W1sicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuOTI5IDcuNjI5QTEgMSAwIDAgMSAxNyA5SDdhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSA5IDJoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik05IDIyaDYifV1dfSk7dmFyIFdOLEVPZT1nKCgpPT57V049W1sicGF0aCIse2Q6Ik0xOS45MjkgMTguNjI5QTEgMSAwIDAgMSAxOSAyMEg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgMTNoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDNhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggNmg0YTIgMiAwIDAgMSAyIDJ2NSJ9XV19KTt2YXIgR04sUE9lPWcoKCk9PntHTj1bWyJwYXRoIix7ZDoiTTE5LjkyOSA5LjYyOUExIDEgMCAwIDEgMTkgMTFIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDRoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDE1YTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxOGg0YTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIEtOLElPZT1nKCgpPT57S049W1sicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik00LjA3NyAxMC42MTVBMSAxIDAgMCAwIDUgMTJoMTRhMSAxIDAgMCAwIC45MjMtMS4zODVsLTMuMDc3LTcuMzg0QTIgMiAwIDAgMCAxNSAySDlhMiAyIDAgMCAwLTEuODQ2IDEuMjNaIn1dLFsicGF0aCIse2Q6Ik04IDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBZTixBT2U9ZygoKT0+e1lOPVtbInBhdGgiLHtkOiJtMTIgOCA2LTMtNi0zdjEwIn1dLFsicGF0aCIse2Q6Im04IDExLjk5LTUuNSAzLjE0YTEgMSAwIDAgMCAwIDEuNzRsOC41IDQuODZhMiAyIDAgMCAwIDIgMGw4LjUtNC44NmExIDEgMCAwIDAgMC0xLjc0TDE2IDEyIn1dLFsicGF0aCIse2Q6Im02LjQ5IDEyLjg1IDExLjAyIDYuMyJ9XSxbInBhdGgiLHtkOiJNMTcuNTEgMTIuODUgNi41IDE5LjE1In1dXX0pO3ZhciBaTixOT2U9ZygoKT0+e1pOPVtbInBhdGgiLHtkOiJNMTAgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eiJ9XSxbInBhdGgiLHtkOiJNMTQgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTE4IDE4di03In1dLFsicGF0aCIse2Q6Ik0zIDIyaDE4In1dLFsicGF0aCIse2Q6Ik02IDE4di03In1dXX0pO3ZhciBYTixST2U9ZygoKT0+e1hOPVtbInBhdGgiLHtkOiJtNSA4IDYgNiJ9XSxbInBhdGgiLHtkOiJtNCAxNCA2LTYgMi0zIn1dLFsicGF0aCIse2Q6Ik0yIDVoMTIifV0sWyJwYXRoIix7ZDoiTTcgMmgxIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LTEwLTUgMTAifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dfSk7dmFyIFFOLE9PZT1nKCgpPT57UU49W1sicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgUzYsRk9lPWcoKCk9PntTNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIwIix5MjoiMjAifV1dfSk7dmFyIEpOLEJPZT1nKCgpPT57Sk49W1sicGF0aCIse2Q6Ik0xOCA1YTIgMiAwIDAgMSAyIDJ2OC41MjZhMiAyIDAgMCAwIC4yMTIuODk3bDEuMDY4IDIuMTI3YTEgMSAwIDAgMS0uOSAxLjQ1SDMuNjJhMSAxIDAgMCAxLS45LTEuNDVsMS4wNjgtMi4xMjdBMiAyIDAgMCAwIDQgMTUuNTI2VjdhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTIwLjA1NCAxNS45ODdIMy45NDYifV1dfSk7dmFyIGVSLEhPZT1nKCgpPT57ZVI9W1sicGF0aCIse2Q6Ik03IDIyYTUgNSAwIDAgMS0yLTQifV0sWyJwYXRoIix7ZDoiTTcgMTYuOTNjLjk2LjQzIDEuOTYuNzQgMi45OS45MSJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxNEE2LjggNi44IDAgMCAxIDIgMTBjMC00LjQyIDQuNDgtOCAxMC04czEwIDMuNTggMTAgOGE3LjE5IDcuMTkgMCAwIDEtLjMzIDIifV0sWyJwYXRoIix7ZDoiTTUgMThhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0eiJ9XSxbInBhdGgiLHtkOiJNMTQuMzMgMjJoLS4wOWEuMzUuMzUgMCAwIDEtLjI0LS4zMnYtMTBhLjM0LjM0IDAgMCAxIC4zMy0uMzRjLjA4IDAgLjE1LjAzLjIxLjA4bDcuMzQgNmEuMzMuMzMgMCAwIDEtLjIxLjU5aC00LjQ5bC0yLjU3IDMuODVhLjM1LjM1IDAgMCAxLS4yOC4xNHoifV1dfSk7dmFyIHRSLHFPZT1nKCgpPT57dFI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxM2E2IDYgMCAwIDEtNiA1IDYgNiAwIDAgMS02LTVoMTJaIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dfSk7dmFyIGFSLGpPZT1nKCgpPT57YVI9W1sicGF0aCIse2Q6Ik0zLjcwNCAxNC40NjdhMTAgOCAwIDEgMSAzLjExNSAyLjM3NSJ9XSxbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi0zLjk5NCJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTYiLHI6IjIifV1dfSk7dmFyIHNSLFZPZT1nKCgpPT57c1I9W1sicGF0aCIse2Q6Ik0xMyAxMy43NGEyIDIgMCAwIDEtMiAwTDIuNSA4Ljg3YTEgMSAwIDAgMSAwLTEuNzRMMTEgMi4yNmEyIDIgMCAwIDEgMiAwbDguNSA0Ljg3YTEgMSAwIDAgMSAwIDEuNzR6In1dLFsicGF0aCIse2Q6Im0yMCAxNC4yODUgMS41Ljg0NWExIDEgMCAwIDEgMCAxLjc0TDEzIDIxLjc0YTIgMiAwIDAgMS0yIDBsLTguNS00Ljg3YTEgMSAwIDAgMSAwLTEuNzRsMS41LS44NDUifV1dfSk7dmFyIGlSLFVPZT1nKCgpPT57aVI9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIC44My4xOCAyIDIgMCAwIDAgLjgzLS4xOGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzMnoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTIuMDAzIDExLjk5NWExIDEgMCAwIDAgLjU5Ny45MTVsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTgifV0sWyJwYXRoIix7ZDoiTTIuMDAzIDE2Ljk5NWExIDEgMCAwIDAgLjU5Ny45MTVsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsMi4xMS0uOTYifV0sWyJwYXRoIix7ZDoiTTIyLjAxOCAxMi4wMDRhMSAxIDAgMCAxLS41OTguOTE2bC0uMTc3LjA4In1dXX0pO3ZhciByUixXT2U9ZygoKT0+e3JSPVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXX0pO3ZhciBvUixHT2U9ZygoKT0+e29SPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiOSIseDoiMTQiLHk6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV1dfSk7dmFyIF82LEtPZT1nKCgpPT57XzY9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIDEuNjYgMGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzeiJ9XSxbInBhdGgiLHtkOiJNMiAxMmExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDEyIn1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGw4LjU4LTMuOUExIDEgMCAwIDAgMjIgMTcifV1dfSk7dmFyIG5SLFlPZT1nKCgpPT57blI9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgbFIsWk9lPWcoKCk9PntsUj1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNCA0aDcifV0sWyJwYXRoIix7ZDoiTTE0IDloNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNyJ9XV19KTt2YXIgY1IsWE9lPWcoKCk9PntjUj1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBkUixRT2U9ZygoKT0+e2RSPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjciLHg6IjE2Iix5OiIxNCIscng6IjEifV1dfSk7dmFyIHVSLEpPZT1nKCgpPT57dVI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgcFIsZUZlPWcoKCk9PntwUj1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXX0pO3ZhciBoUix0RmU9ZygoKT0+e2hSPVtbInBhdGgiLHtkOiJNMiAyMmMxLjI1LS45ODcgMi4yNy0xLjk3NSAzLjktMi4yYTUuNTYgNS41NiAwIDAgMSAzLjggMS41IDQgNCAwIDAgMCA2LjE4Ny0yLjM1MyAzLjUgMy41IDAgMCAwIDMuNjktNS4xMTZBMy41IDMuNSAwIDAgMCAyMC45NSA4IDMuNSAzLjUgMCAxIDAgMTYgMy4wNWEzLjUgMy41IDAgMCAwLTUuODMxIDEuMzczIDMuNSAzLjUgMCAwIDAtNS4xMTYgMy42OSA0IDQgMCAwIDAtMi4zNDggNi4xNTVDMy40OTkgMTUuNDIgNC40MDkgMTYuNzEyIDQuMiAxOC4xIDMuOTI2IDE5Ljc0MyAzLjAxNCAyMC43MzIgMiAyMiJ9XSxbInBhdGgiLHtkOiJNMiAyMiAxNyA3In1dXX0pO3ZhciBmUixhRmU9ZygoKT0+e2ZSPVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dfSk7dmFyIG1SLHNGZT1nKCgpPT57bVI9W1sicGF0aCIse2Q6Ik03IDJhMSAxIDAgMCAwLS44IDEuNiAxNCAxNCAwIDAgMSAwIDE2LjhBMSAxIDAgMCAwIDcgMjJoMTBhMSAxIDAgMCAwIC44LTEuNiAxNCAxNCAwIDAgMSAwLTE2LjhBMSAxIDAgMCAwIDE3IDJ6In1dXX0pO3ZhciBnUixpRmU9ZygoKT0+e2dSPVtbInBhdGgiLHtkOiJNMTMuNDMzIDJhMSAxIDAgMCAxIC44MjQuNDQ4IDE4IDE4IDAgMCAxIDAgMTkuMTA0IDEgMSAwIDAgMS0uODI0LjQ0OGgtMi44NjZhMSAxIDAgMCAxLS44MjQtLjQ0OCAxOCAxOCAwIDAgMSAwLTE5LjEwNEExIDEgMCAwIDEgMTAuNTY3IDJ6In1dXX0pO3ZhciBiUixyRmU9ZygoKT0+e2JSPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WiJ9XV19KTt2YXIgdlIsb0ZlPWcoKCk9Pnt2Uj1bWyJwYXRoIix7ZDoibTE2IDYgNCAxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnYxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djEyIn1dLFsicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIHhSLG5GZT1nKCgpPT57eFI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyA5LjE3IDQuMjQtNC4yNCJ9XSxbInBhdGgiLHtkOiJtMTQuODMgMTQuODMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im05LjE3IDE0LjgzLTQuMjQgNC4yNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXX0pO3ZhciB5UixsRmU9ZygoKT0+e3lSPVtbInBhdGgiLHtkOiJNMTQgMTJoMnY4In1dLFsicGF0aCIse2Q6Ik0xNCAyMGg0In1dLFsicGF0aCIse2Q6Ik02IDEyaDQifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNOCAyMFY4YTQgNCAwIDAgMSA3LjQ2NC0yIn1dXX0pO3ZhciB3UixjRmU9ZygoKT0+e3dSPVtbInBhdGgiLHtkOiJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dfSk7dmFyIGtSLGRGZT1nKCgpPT57a1I9W1sicGF0aCIse2Q6Ik0xNi44IDExLjJjLjgtLjkgMS4yLTIgMS4yLTMuMmE2IDYgMCAwIDAtOS4zLTUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNi4zIDYuM2E0LjY3IDQuNjcgMCAwIDAgMS4yIDUuMmMuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXX0pO3ZhciBTUix1RmU9ZygoKT0+e1NSPVtbInBhdGgiLHtkOiJNIDMgMTIgTCAxNSAxMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBfUixwRmU9ZygoKT0+e19SPVtbInBhdGgiLHtkOiJNMTEgNWgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xOSA1aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA1aDIifV1dfSk7dmFyIE1SLGhGZT1nKCgpPT57TVI9W1sicGF0aCIse2Q6Ik03IDMuNWM1LTIgNyAyLjUgMyA0QzEuNSAxMCAyIDE1IDUgMTZjNSAyIDktMTAgMTQtN3MuNSAxMy41LTQgMTJjLTUtMi41LjUtMTEgNi0yIn1dXX0pO3ZhciB6UixmRmU9ZygoKT0+e3pSPVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDcifV0sWyJwYXRoIix7ZDoiTTE1IDdoMmE1IDUgMCAwIDEgNCA4In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIENSLG1GZT1nKCgpPT57Q1I9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIFRSLGdGZT1nKCgpPT57VFI9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV19KTt2YXIgJFIsYkZlPWcoKCk9PnskUj1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggMiAyIDQtNCJ9XV19KTt2YXIgRFIsdkZlPWcoKCk9PntEUj1bWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMyAxNyAyIDIgNC00In1dLFsicGF0aCIse2Q6Im0zIDcgMiAyIDQtNCJ9XV19KTt2YXIgTFIseEZlPWcoKCk9PntMUj1bWyJwYXRoIix7ZDoiTTMgNWg4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAzLTMgMyAzIn1dXX0pO3ZhciBFUix5RmU9ZygoKT0+e0VSPVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA4IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE1IDE2IDMgMyAzLTMifV1dfSk7dmFyIFBSLHdGZT1nKCgpPT57UFI9W1sicGF0aCIse2Q6Ik0xMCA1aDExIn1dLFsicGF0aCIse2Q6Ik0xMCAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTloMTEifV0sWyJwYXRoIix7ZDoibTMgMTAgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtMyAyMCAzLTMtMy0zIn1dXX0pO3ZhciBJUixrRmU9ZygoKT0+e0lSPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik05IDE5SDMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XV19KTt2YXIgQVIsU0ZlPWcoKCk9PntBUj1bWyJwYXRoIix7ZDoiTTEyIDVIMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDhWMiJ9XV19KTt2YXIgTlIsX0ZlPWcoKCk9PntOUj1bWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dXX0pO3ZhciBHMCxNRmU9ZygoKT0+e0cwPVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im03IDgtNCA0IDQgNCJ9XV19KTt2YXIgSzAsekZlPWcoKCk9PntLMD1bWyJwYXRoIix7ZDoiTTIxIDVIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDEySDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxOUgxMSJ9XSxbInBhdGgiLHtkOiJtMyA4IDQgNC00IDQifV1dfSk7dmFyIFJSLENGZT1nKCgpPT57UlI9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBPUixURmU9ZygoKT0+e09SPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNlY1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIEZSLCRGZT1nKCgpPT57RlI9W1sicGF0aCIse2Q6Ik0xMSA1aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTloMTAifV0sWyJwYXRoIix7ZDoiTTQgNGgxdjUifV0sWyJwYXRoIix7ZDoiTTQgOWgyIn1dLFsicGF0aCIse2Q6Ik02LjUgMjBIMy40YzAtMSAyLjYtMS45MjUgMi42LTMuNWExLjUgMS41IDAgMCAwLTIuNi0xLjAyIn1dXX0pO3ZhciBCUixERmU9ZygoKT0+e0JSPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBIUixMRmU9ZygoKT0+e0hSPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik03IDEySDMifV0sWyJwYXRoIix7ZDoiTTcgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTB2NGg0In1dXX0pO3ZhciBxUixFRmU9ZygoKT0+e3FSPVtbInBhdGgiLHtkOiJNMyA1aDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloMTMifV0sWyJwYXRoIix7ZDoibTE2IDgtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02In1dXX0pO3ZhciBqUixQRmU9ZygoKT0+e2pSPVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIFZSLElGZT1nKCgpPT57VlI9W1sicGF0aCIse2Q6Ik04IDVoMTMifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTJhMiAyIDAgMCAwIDIgMmgzIn1dXX0pO3ZhciBVUixBRmU9ZygoKT0+e1VSPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dXX0pO3ZhciBXUixORmU9ZygoKT0+e1dSPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNS41IDkuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIwLjUgOS41LTUgNSJ9XV19KTt2YXIgR1IsUkZlPWcoKCk9PntHUj1bWyJwYXRoIix7ZDoiTTMgNWguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA1aDEzIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEzIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEzIn1dXX0pO3ZhciBNNixPRmU9ZygoKT0+e002PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dfSk7dmFyIEtSLEZGZT1nKCgpPT57S1I9W1sicGF0aCIse2Q6Ik0yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyAyMC43YTEgMSAwIDEgMSA1LTguNyAxIDEgMCAxIDAgNS04LjYifV0sWyJwYXRoIix7ZDoiTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIFlSLEJGZT1nKCgpPT57WVI9W1sicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTE2LjIgNy44IDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTE4IDEyaDQifV0sWyJwYXRoIix7ZDoibTE2LjIgMTYuMiAyLjkgMi45In1dLFsicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Im00LjkgMTkuMSAyLjktMi45In1dLFsicGF0aCIse2Q6Ik0yIDEyaDQifV0sWyJwYXRoIix7ZDoibTQuOSA0LjkgMi45IDIuOSJ9XV19KTt2YXIgWlIsSEZlPWcoKCk9PntaUj1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBYUixxRmU9ZygoKT0+e1hSPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMmgzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy4wNSA3LjA1YTcgNyAwIDAgMCA5LjkgOS45In1dXX0pO3ZhciBRUixqRmU9ZygoKT0+e1FSPVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dXX0pO3ZhciB6NixWRmU9ZygoKT0+e3o2PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41In1dXX0pO3ZhciBKUixVRmU9ZygoKT0+e0pSPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjEwIix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyJ9XV19KTt2YXIgQzYsV0ZlPWcoKCk9PntDNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDkuOS0xIn1dXX0pO3ZhciBlTyxHRmU9ZygoKT0+e2VPPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0In1dXX0pO3ZhciB0TyxLRmU9ZygoKT0+e3RPPVtbInBhdGgiLHtkOiJtMTAgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCJ9XV19KTt2YXIgYU8sWUZlPWcoKCk9PnthTz1bWyJwYXRoIix7ZDoibTE2IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEySDkifV0sWyJwYXRoIix7ZDoiTTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBzTyxaRmU9ZygoKT0+e3NPPVtbInBhdGgiLHtkOiJNMyA1aDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxIn1dLFsicGF0aCIse2Q6Ik04IDVoMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEifV0sWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XV19KTt2YXIgaU8sWEZlPWcoKCk9PntpTz1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTFhMiAyIDAgMCAwIDQgMCA0IDQgMCAwIDAtOCAwIDYgNiAwIDAgMCAxMiAwIn1dXX0pO3ZhciByTyxRRmU9ZygoKT0+e3JPPVtbInBhdGgiLHtkOiJNNiAyMGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTggMThWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjBoNCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjIwIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgb08sSkZlPWcoKCk9PntvTz1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBuTyxlQmU9ZygoKT0+e25PPVtbInBhdGgiLHtkOiJtMTIgMTUgNCA0In1dLFsicGF0aCIse2Q6Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6In1dLFsicGF0aCIse2Q6Im01IDggNCA0In1dXX0pO3ZhciBsTyx0QmU9ZygoKT0+e2xPPVtbInBhdGgiLHtkOiJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV1dfSk7dmFyIGNPLGFCZT1nKCgpPT57Y089W1sicGF0aCIse2Q6Ik0yMS4yIDguNGMuNS4zOC44Ljk3LjggMS42djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAuOC0xLjZsOC02YTIgMiAwIDAgMSAyLjQgMGw4IDZaIn1dLFsicGF0aCIse2Q6Im0yMiAxMC04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgMTAifV1dfSk7dmFyIGRPLHNCZT1nKCgpPT57ZE89W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV19KTt2YXIgVDYsaUJlPWcoKCk9PntUNj1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDE1LjI4Yy4yLS40LjUtLjguOS0xYTIuMSAyLjEgMCAwIDEgMi42LjRjLjMuNC41LjguNSAxLjMgMCAxLjMtMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXX0pO3ZhciB1TyxyQmU9ZygoKT0+e3VPPVtbInBhdGgiLHtkOiJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuNS0xLjUifV1dfSk7dmFyIHBPLG9CZT1nKCgpPT57cE89W1sicGF0aCIse2Q6Ik0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0yMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0yMCAyMnYuMDEifV1dfSk7dmFyIGhPLG5CZT1nKCgpPT57aE89W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNCA0In1dLFsicGF0aCIse2Q6Im0yMSAxNy00IDQifV1dfSk7dmFyIGZPLGxCZT1nKCgpPT57Zk89W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5LjVDMiA3IDQgNSA2LjUgNUgxOGMyLjIgMCA0IDEuOCA0IDR2OFoifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTUsOSAxOCw5IDE4LDExIn1dLFsicGF0aCIse2Q6Ik02LjUgNUM5IDUgMTEgNyAxMSA5LjVWMTdhMiAyIDAgMCAxLTIgMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjciLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciBtTyxjQmU9ZygoKT0+e21PPVtbInBhdGgiLHtkOiJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDcifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgZ08sZEJlPWcoKCk9PntnTz1bWyJwYXRoIix7ZDoiTTE3IDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAxLTEuNzMyIn1dLFsicGF0aCIse2Q6Im0yMiA1LjUtNi40MTkgNC4xNzlhMiAyIDAgMCAxLTIuMTYyIDBMNyA1LjUifV0sWyJyZWN0Iix7eDoiNyIseToiMyIsd2lkdGg6IjE1IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgYk8sdUJlPWcoKCk9PntiTz1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTQifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV19KTt2YXIgdk8scEJlPWcoKCk9Pnt2Tz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dXX0pO3ZhciB4TyxoQmU9ZygoKT0+e3hPPVtbInBhdGgiLHtkOiJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTggMiAyIDQtNCJ9XV19KTt2YXIgeU8sZkJlPWcoKCk9Pnt5Tz1bWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIC40NDUtLjgzMmwzLTJhMSAxIDAgMCAxIDEuMTEgMGwzIDJBMSAxIDAgMCAxIDIyIDE3djRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtMyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciB3TyxtQmU9ZygoKT0+e3dPPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIGtPLGdCZT1nKCgpPT57a089W1sicGF0aCIse2Q6Ik0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XV19KTt2YXIgU08sYkJlPWcoKCk9PntTTz1bWyJwYXRoIix7ZDoiTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNiJ9XSxbInBhdGgiLHtkOiJNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMyJ9XSxbInBhdGgiLHtkOiJNOS4xMyA5LjEzYTMgMyAwIDAgMCAzLjc0IDMuNzQifV1dfSk7dmFyICQ2LHZCZT1nKCgpPT57JDY9W1sicGF0aCIse2Q6Ik0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMCIscjoiMyJ9XV19KTt2YXIgX08seEJlPWcoKCk9PntfTz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIE1PLHlCZT1nKCgpPT57TU89W1sicGF0aCIse2Q6Ik0xOS45MTQgMTEuMTA1QTcuMjk4IDcuMjk4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XV19KTt2YXIgek8sd0JlPWcoKCk9Pnt6Tz1bWyJwYXRoIix7ZDoiTSAxMi4yNDggMjEuOTY5IGEgMSAxIDAgMCAxIC0wLjg0OSAtMC4xNyBDIDkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwIGEgOCA4IDAgMCAxIDE2IDAgQyAyMCAxMC40MiAxOS45NjEgMTAuODQxIDE5Ljg4OCAxMS4yNjIifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODgtMS44OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIENPLGtCZT1nKCgpPT57Q089W1sicGF0aCIse2Q6Ik0xOS43NTIgMTEuOTAxQTcuNzggNy43OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMTkgMTkgMCAwIDAgLjA5LS4wNzcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxNS41LTUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAyMC41LTUtNSJ9XV19KTt2YXIgVE8sU0JlPWcoKCk9PntUTz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV19KTt2YXIgJE8sX0JlPWcoKCk9PnskTz1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciBETyxNQmU9ZygoKT0+e0RPPVtbInBhdGgiLHtkOiJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIn1dXX0pO3ZhciBMTyx6QmU9ZygoKT0+e0xPPVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxMiJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTIifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBFTyxDQmU9ZygoKT0+e0VPPVtbInBhdGgiLHtkOiJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0djE1In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBQTyxUQmU9ZygoKT0+e1BPPVtbInBhdGgiLHtkOiJtMTQgNiA0IDQifV0sWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAzLTcuNzUgNy43NSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjYifV1dfSk7dmFyIElPLCRCZT1nKCgpPT57SU89W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJtMjEgMy02Ljc1IDYuNzUifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxNCIscjoiNiJ9XV19KTt2YXIgQU8sREJlPWcoKCk9PntBTz1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2MTEifV0sWyJwYXRoIix7ZDoibTE5IDMtNyA4LTctOFoifV1dfSk7dmFyIE5PLExCZT1nKCgpPT57Tk89W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjEgMy03IDcifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dfSk7dmFyIFJPLEVCZT1nKCgpPT57Uk89W1sicGF0aCIse2Q6Ik04IDNINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDhWNWEyIDIgMCAwIDAtMi0yaC0zIn1dLFsicGF0aCIse2Q6Ik0zIDE2djNhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgzYTIgMiAwIDAgMCAyLTJ2LTMifV1dfSk7dmFyIE9PLFBCZT1nKCgpPT57T089W1sicGF0aCIse2Q6Ik03LjIxIDE1IDIuNjYgNy4xNGEyIDIgMCAwIDEgLjEzLTIuMkw0LjQgMi44QTIgMiAwIDAgMSA2IDJoMTJhMiAyIDAgMCAxIDEuNi44bDEuNiAyLjE0YTIgMiAwIDAgMSAuMTQgMi4yTDE2Ljc5IDE1In1dLFsicGF0aCIse2Q6Ik0xMSAxMiA1LjEyIDIuMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNS44OC05LjgifV0sWyJwYXRoIix7ZDoiTTggN2g4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yaC0uNSJ9XV19KTt2YXIgRk8sSUJlPWcoKCk9PntGTz1bWyJwYXRoIix7ZDoiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djYifV1dfSk7dmFyIEJPLEFCZT1nKCgpPT57Qk89W1sicGF0aCIse2Q6Ik0xMSA2YTEzIDEzIDAgMCAwIDguNC0yLjhBMSAxIDAgMCAxIDIxIDR2MTJhMSAxIDAgMCAxLTEuNi44QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDZ2OCJ9XV19KTt2YXIgSE8sTkJlPWcoKCk9PntITz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgcU8sUkJlPWcoKCk9PntxTz1bWyJwYXRoIix7ZDoiTTEyIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yIDExaDEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTIwLjUgMTFIMjIifV0sWyJwYXRoIix7ZDoiTTQgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjEwIixyeDoiMiJ9XV19KTt2YXIgak8sT0JlPWcoKCk9PntqTz1bWyJwYXRoIix7ZDoiTTQgNWgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxOWgxNiJ9XV19KTt2YXIgVk8sRkJlPWcoKCk9PntWTz1bWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjIifV0sWyJwYXRoIix7ZDoibTIwIDIyLTUtNSJ9XV19KTt2YXIgVU8sQkJlPWcoKCk9PntVTz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIFdPLEhCZT1nKCgpPT57V089W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBHTyxxQmU9ZygoKT0+e0dPPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV19KTt2YXIgS08sakJlPWcoKCk9PntLTz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXX0pO3ZhciBZTyxWQmU9ZygoKT0+e1lPPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgWk8sVUJlPWcoKCk9PntaTz1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXX0pO3ZhciBYTyxXQmU9ZygoKT0+e1hPPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBENixHQmU9ZygoKT0+e0Q2PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIFFPLEtCZT1nKCgpPT57UU89W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNNyAxMmg4YTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgSk8sWUJlPWcoKCk9PntKTz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgZUYsWkJlPWcoKCk9PntlRj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgdEYsWEJlPWcoKCk9Pnt0Rj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBhRixRQmU9ZygoKT0+e2FGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMtMy0zLTMifV1dfSk7dmFyIHNGLEpCZT1nKCgpPT57c0Y9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43LjcgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im05IDExIDIgMiA0LTQifV1dfSk7dmFyIGlGLGVIZT1nKCgpPT57aUY9W1sicGF0aCIse2Q6Ik0xNCAzaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0yIDE2djUuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMS4xNDktMS4xNDkifV0sWyJwYXRoIix7ZDoiTTIwIDE5YTIgMiAwIDAgMCAyLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTIyIDZWNWEyIDIgMCAwIDAtMi0yIn1dLFsicGF0aCIse2Q6Ik00IDNhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDIifV0sWyJwYXRoIix7ZDoiTTggM2gyIn1dXX0pO3ZhciByRix0SGU9ZygoKT0+e3JGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV19KTt2YXIgb0YsYUhlPWcoKCk9PntvRj1bWyJwYXRoIix7ZDoiTTEyLjcgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQuNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIG5GLHNIZT1nKCgpPT57bkY9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXX0pO3ZhciBsRixpSGU9ZygoKT0+e2xGPVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgY0YsckhlPWcoKCk9PntjRj1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dXX0pO3ZhciBkRixvSGU9ZygoKT0+e2RGPVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXX0pO3ZhciB1RixuSGU9ZygoKT0+e3VGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV19KTt2YXIgcEYsbEhlPWcoKCk9PntwRj1bWyJwYXRoIix7ZDoiTTE0IDE0YTIgMiAwIDAgMCAyLTJWOGgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE0YTIgMiAwIDAgMCAyLTJWOEg4In1dXX0pO3ZhciBoRixjSGU9ZygoKT0+e2hGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV19KTt2YXIgZkYsZEhlPWcoKCk9PntmRj1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dfSk7dmFyIG1GLHVIZT1nKCgpPT57bUY9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTVoNiJ9XSxbInBhdGgiLHtkOiJNNyA3aDgifV1dfSk7dmFyIGdGLHBIZT1nKCgpPT57Z0Y9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXX0pO3ZhciBiRixoSGU9ZygoKT0+e2JGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXX0pO3ZhciB2RixmSGU9ZygoKT0+e3ZGPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dXX0pO3ZhciB4RixtSGU9ZygoKT0+e3hGPVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV19KTt2YXIgeUYsZ0hlPWcoKCk9Pnt5Rj1bWyJwYXRoIix7ZDoiTTEyIDExLjRWOS4xIn1dLFsicGF0aCIse2Q6Im0xMiAxNyA2LjU5LTYuNTkifV0sWyJwYXRoIix7ZDoibTE1LjA1IDUuNy0uMjE4LS42OTFhMyAzIDAgMCAwLTUuNjYzIDBMNC40MTggMTkuNjk1QTEgMSAwIDAgMCA1LjM3IDIxaDEzLjI1M2ExIDEgMCAwIDAgLjk1MS0xLjMxTDE4LjQ1IDE2LjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciB3RixiSGU9ZygoKT0+e3dGPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMifV0sWyJwYXRoIix7ZDoiTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiJ9XV19KTt2YXIgTDYsdkhlPWcoKCk9PntMNj1bWyJwYXRoIix7ZDoibTExIDcuNjAxLTUuOTk0IDguMTlhMSAxIDAgMCAwIC4xIDEuMjk4bC44MTcuODE4YTEgMSAwIDAgMCAxLjMxNC4wODdMMTUuMDkgMTIifV0sWyJwYXRoIix7ZDoiTTE2LjUgMjEuMTc0QzE1LjUgMjAuNSAxNC4zNzIgMjAgMTMgMjBjLTIuMDU4IDAtMy45MjggMi4zNTYtNiAyLTIuMDcyLS4zNTYtMi43NzUtMy4zNjktMS41LTQuNSJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjciLHI6IjUifV1dfSk7dmFyIGtGLHhIZT1nKCgpPT57a0Y9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMHYyYTcgNyAwIDAgMS0xNCAwdi0yIn1dLFsicmVjdCIse3g6IjkiLHk6IjIiLHdpZHRoOiI2IixoZWlnaHQ6IjEzIixyeDoiMyJ9XV19KTt2YXIgU0YseUhlPWcoKCk9PntTRj1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE3aDQifV0sWyJwYXRoIix7ZDoiTTEwIDdoNCJ9XSxbInBhdGgiLHtkOiJNMTggMTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMThoMiJ9XSxbInBhdGgiLHtkOiJNMTggNmgyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDIifV0sWyJwYXRoIix7ZDoiTTQgMThoMiJ9XSxbInBhdGgiLHtkOiJNNCA2aDIifV0sWyJyZWN0Iix7eDoiNiIseToiMiIsd2lkdGg6IjEyIixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgX0Ysd0hlPWcoKCk9PntfRj1bWyJwYXRoIix7ZDoiTTYgMThoOCJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNMTQgMjJhNyA3IDAgMSAwIDAtMTRoLTEifV0sWyJwYXRoIix7ZDoiTTkgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMmEyIDIgMCAwIDEtMi0yVjZoNnY0YTIgMiAwIDAgMS0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiA2VjNhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgTUYsa0hlPWcoKCk9PntNRj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI3Iix4OiI2Iix5OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTggOHY3In1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDE5djIifV1dfSk7dmFyIHpGLFNIZT1nKCgpPT57ekY9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTE4LjE3MiA2YTIgMiAwIDAgMSAxLjQxNC41ODZsMi4wNiAyLjA2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDhsLTIuMDYgMi4wNmEyIDIgMCAwIDEtMS40MTQuNTg2SDRhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTF6In1dXX0pO3ZhciBDRixfSGU9ZygoKT0+e0NGPVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIFRGLE1IZT1nKCgpPT57VEY9W1sicGF0aCIse2Q6Ik04IDJoOCJ9XSxbInBhdGgiLHtkOiJNOSAydjIuNzg5YTQgNCAwIDAgMS0uNjcyIDIuMjE5bC0uNjU2Ljk4NEE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTkuNzg5YTQgNCAwIDAgMC0uNjcyLTIuMjE5bC0uNjU2LS45ODRBNCA0IDAgMCAxIDE1IDQuNzg4VjIifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NzIgNi40NzIgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV1dfSk7dmFyICRGLHpIZT1nKCgpPT57JEY9W1sicGF0aCIse2Q6Im0xNCAxMCA3LTcifV0sWyJwYXRoIix7ZDoiTTIwIDEwaC02VjQifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik00IDE0aDZ2NiJ9XV19KTt2YXIgREYsQ0hlPWcoKCk9PntERj1bWyJwYXRoIix7ZDoiTTggM3YzYTIgMiAwIDAgMS0yIDJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgOGgtM2EyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoiTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgTEYsVEhlPWcoKCk9PntMRj1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV1dfSk7dmFyIEVGLCRIZT1nKCgpPT57RUY9W1sicGF0aCIse2Q6Ik0xMSA2IDggOSJ9XSxbInBhdGgiLHtkOiJtMTYgNy04IDgifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgUEYsREhlPWcoKCk9PntQRj1bWyJwYXRoIix7ZDoiTTEwIDYuNiA4LjYgOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMTUgNy41IDkuNSAxMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI4In1dXX0pO3ZhciBJRixMSGU9ZygoKT0+e0lGPVtbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgQUYsRUhlPWcoKCk9PntBRj1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBORixQSGU9ZygoKT0+e05GPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIFJGLElIZT1nKCgpPT57UkY9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMiAxMi4zMDdWMTVhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDguNjkzIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXX0pO3ZhciBPRixBSGU9ZygoKT0+e09GPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMTdINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDEuMTg0LTEuODI2In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0uMjkzIDEuMDQyIn1dXX0pO3ZhciBGRixOSGU9ZygoKT0+e0ZGPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIEJGLFJIZT1nKCgpPT57QkY9W1sicGF0aCIse2Q6Ik0xMCAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xNCAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgSEYsT0hlPWcoKCk9PntIRj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgcUYsRkhlPWcoKCk9PntxRj1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXX0pO3ZhciBqRixCSGU9ZygoKT0+e2pGPVtbInBhdGgiLHtkOiJNNS41IDIwSDgifV0sWyJwYXRoIix7ZDoiTTE3IDloLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNiIseDoiMTIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjEifV1dfSk7dmFyIFZGLEhIZT1nKCgpPT57VkY9W1sicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBVRixxSGU9ZygoKT0+e1VGPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV0sWyJyZWN0Iix7eDoiOSIseToiNyIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIFdGLGpIZT1nKCgpPT57V0Y9W1sicGF0aCIse2Q6Im0xNC41IDEyLjUtNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBHRixWSGU9ZygoKT0+e0dGPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV19KTt2YXIgS0YsVUhlPWcoKCk9PntLRj1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXX0pO3ZhciBZRixXSGU9ZygoKT0+e1lGPVtbInBhdGgiLHtkOiJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSJ9XV19KTt2YXIgWkYsR0hlPWcoKCk9PntaRj1bWyJwYXRoIix7ZDoibTE4IDE0LTEtMyJ9XSxbInBhdGgiLHtkOiJtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MSJ9XSxbInBhdGgiLHtkOiJNOCAxN2gzYTEgMSAwIDAgMCAxLTEgNiA2IDAgMCAxIDYtNiAxIDEgMCAwIDAgMS0xdi0uNzVBNSA1IDAgMCAwIDE3IDUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTciLHI6IjMifV1dfSk7dmFyIFhGLEtIZT1nKCgpPT57WEY9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXX0pO3ZhciBRRixZSGU9ZygoKT0+e1FGPVtbInBhdGgiLHtkOiJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oifV1dfSk7dmFyIEpGLFpIZT1nKCgpPT57SkY9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNNSAxMHY1YTcgNyAwIDAgMCAxNCAwVjljMC0zLjUyNy0yLjYwOC02LjUxNS02LTcifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIGVCLFhIZT1nKCgpPT57ZUI9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV19KTt2YXIgdEIsUUhlPWcoKCk9Pnt0Qj1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dfSk7dmFyIGFCLEpIZT1nKCgpPT57YUI9W1sicGF0aCIse2Q6Ik00LjAzNyA0LjY4OGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsMTYgNi41YS41LjUgMCAwIDEtLjA2My45NDdsLTYuMTI0IDEuNThhMiAyIDAgMCAwLTEuNDM4IDEuNDM1bC0xLjU3OSA2LjEyNmEuNS41IDAgMCAxLS45NDcuMDYzeiJ9XV19KTt2YXIgc0IsZXFlPWcoKCk9PntzQj1bWyJwYXRoIix7ZDoiTTIuMDM0IDIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQ0TDguMjA0IDcuNTQ1YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY2IDMuNDQzYS41LjUgMCAwIDEtLjk0NC4wMzN6In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJwYXRoIix7ZDoibTExLjggMTEuOCA4LjQgOC40In1dXX0pO3ZhciBpQix0cWU9ZygoKT0+e2lCPVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV19KTt2YXIgckIsYXFlPWcoKCk9PntyQj1bWyJwYXRoIix7ZDoiTTEyLjU4NiAxMi41ODYgMTkgMTkifV0sWyJwYXRoIix7ZDoiTTMuNjg4IDMuMDM3YS40OTcuNDk3IDAgMCAwLS42NTEuNjUxbDYuNSAxNS45OTlhLjUwMS41MDEgMCAwIDAgLjk0Ny0uMDYybDEuNTY5LTYuMDgzYTIgMiAwIDAgMSAxLjQ0OC0xLjQ3OWw2LjEyNC0xLjU3OWEuNS41IDAgMCAwIC4wNjMtLjk0N3oifV1dfSk7dmFyIG9CLHNxZT1nKCgpPT57b0I9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2NWE3IDcgMCAwIDEtMTQgMFY5YzAtMy41MjcgMi42MDgtNi41MTUgNi03In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XV19KTt2YXIgbkIsaXFlPWcoKCk9PntuQj1bWyJyZWN0Iix7eDoiNSIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjIwIixyeDoiNyJ9XSxbInBhdGgiLHtkOiJNMTIgNnY0In1dXX0pO3ZhciBFNixycWU9ZygoKT0+e0U2PVtbInBhdGgiLHtkOiJNNSAzdjE2aDE2In1dLFsicGF0aCIse2Q6Im01IDE5IDYtNiJ9XSxbInBhdGgiLHtkOiJtMiA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE4IDE2IDMgMy0zIDMifV1dfSk7dmFyIGxCLG9xZT1nKCgpPT57bEI9W1sicGF0aCIse2Q6Ik0xOSAxM3Y2aC02In1dLFsicGF0aCIse2Q6Ik01IDExVjVoNiJ9XSxbInBhdGgiLHtkOiJtNSA1IDE0IDE0In1dXX0pO3ZhciBjQixucWU9ZygoKT0+e2NCPVtbInBhdGgiLHtkOiJNMTEgMTlINXYtNiJ9XSxbInBhdGgiLHtkOiJNMTMgNWg2djYifV0sWyJwYXRoIix7ZDoiTTE5IDUgNSAxOSJ9XV19KTt2YXIgZEIsbHFlPWcoKCk9PntkQj1bWyJwYXRoIix7ZDoiTTExIDE5SDVWMTMifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV19KTt2YXIgdUIsY3FlPWcoKCk9Pnt1Qj1bWyJwYXRoIix7ZDoiTTE5IDEzVjE5SDEzIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIHBCLGRxZT1nKCgpPT57cEI9W1sicGF0aCIse2Q6Ik04IDE4TDEyIDIyTDE2IDE4In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBoQix1cWU9ZygoKT0+e2hCPVtbInBhdGgiLHtkOiJtMTggOCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Im02IDgtNCA0IDQgNCJ9XV19KTt2YXIgZkIscHFlPWcoKCk9PntmQj1bWyJwYXRoIix7ZDoiTTYgOEwyIDEyTDYgMTYifV0sWyJwYXRoIix7ZDoiTTIgMTJIMjIifV1dfSk7dmFyIG1CLGhxZT1nKCgpPT57bUI9W1sicGF0aCIse2Q6Ik0xOCA4TDIyIDEyTDE4IDE2In1dLFsicGF0aCIse2Q6Ik0yIDEySDIyIn1dXX0pO3ZhciBnQixmcWU9ZygoKT0+e2dCPVtbInBhdGgiLHtkOiJNNSAxMVY1SDExIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIGJCLG1xZT1nKCgpPT57YkI9W1sicGF0aCIse2Q6Ik0xMyA1SDE5VjExIn1dLFsicGF0aCIse2Q6Ik0xOSA1TDUgMTkifV1dfSk7dmFyIHZCLGdxZT1nKCgpPT57dkI9W1sicGF0aCIse2Q6Ik04IDZMMTIgMkwxNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciB4QixicWU9ZygoKT0+e3hCPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV19KTt2YXIgeUIsdnFlPWcoKCk9Pnt5Qj1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoibTE5IDkgMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciB3Qix4cWU9ZygoKT0+e3dCPVtbImNpcmNsZSIse2N4OiI4IixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjJsNyA0In1dXX0pO3ZhciBrQix5cWU9ZygoKT0+e2tCPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJwYXRoIix7ZDoibTkgOSAxMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBTQix3cWU9ZygoKT0+e1NCPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiAxOFYyIn1dXX0pO3ZhciBfQixrcWU9ZygoKT0+e19CPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIE1CLFNxZT1nKCgpPT57TUI9W1sicGF0aCIse2Q6Ik05LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTQuNTMgOC44OCAxMiAybC0xLjE3IDMuMTcifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgekIsX3FlPWcoKCk9Pnt6Qj1bWyJwb2x5Z29uIix7cG9pbnRzOiIxMiAyIDE5IDIxIDEyIDE3IDUgMjEgMTIgMiJ9XV19KTt2YXIgQ0IsTXFlPWcoKCk9PntDQj1bWyJwYXRoIix7ZDoiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIn1dLFsicGF0aCIse2Q6Ik0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgVEIsenFlPWcoKCk9PntUQj1bWyJwb2x5Z29uIix7cG9pbnRzOiIzIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMSJ9XV19KTt2YXIgJEIsQ3FlPWcoKCk9PnskQj1bWyJyZWN0Iix7eDoiMTYiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTUgMTZ2LTNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjMifV0sWyJwYXRoIix7ZDoiTTEyIDEyVjgifV1dfSk7dmFyIERCLFRxZT1nKCgpPT57REI9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV19KTt2YXIgTEIsJHFlPWcoKCk9PntMQj1bWyJwYXRoIix7ZDoiTTYgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik05LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCJ9XSxbInBhdGgiLHtkOiJNMTIuOTEgNC4xYTE1LjkxIDE1LjkxIDAgMCAxIC4wMSAxNS44In1dLFsicGF0aCIse2Q6Ik0xNi4zNyAyYTIwLjE2IDIwLjE2IDAgMCAxIDAgMjAifV1dfSk7dmFyIEVCLERxZT1nKCgpPT57RUI9W1sicGF0aCIse2Q6Ik0xMiAydjEwIn1dLFsicGF0aCIse2Q6Im04LjUgNCA3IDQifV0sWyJwYXRoIix7ZDoibTguNSA4IDctNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiI1In1dXX0pO3ZhciBQQixMcWU9ZygoKT0+e1BCPVtbInBhdGgiLHtkOiJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCJ9XSxbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciBJQixFcWU9ZygoKT0+e0lCPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOS41IDhoNSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDE2In1dLFsicGF0aCIse2Q6Ik05LjUgMTZIMTQifV1dfSk7dmFyIEFCLFBxZT1nKCgpPT57QUI9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDUifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE1IDE3aDUifV1dfSk7dmFyIE5CLElxZT1nKCgpPT57TkI9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjIwIn1dXX0pO3ZhciBSQixBcWU9ZygoKT0+e1JCPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEifV0sWyJwYXRoIix7ZDoiTTEzIDIyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNCAxNHYtMiJ9XSxbInBhdGgiLHtkOiJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXX0pO3ZhciBPQixOcWU9ZygoKT0+e09CPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxOCIseDoiNCIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTBoNiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDUifV1dfSk7dmFyIEZCLFJxZT1nKCgpPT57RkI9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyYTcuMDEgNy4wMSAwIDAgMCA0LjEyNS0yLjkzOSJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2My4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDEyYy0xLjM0OS0uNTczLTEuOTA1LTEuMDA1LTIuNS0yLS41NDYuOTAyLTEuMDQ4IDEuMzUzLTIuNSAyLTEuMDE4LS42NDQtMS40Ni0xLjA4LTItMi0xLjAyOC43MS0xLjY5LjkxOC0zIDEgMS4wODEtMS4wNDggMS43NTctMi4wMyAyLTMgLjE5NC0uNzc2Ljg0LTEuNTUxIDEuNzktMi4yMW0xMS42NTQgNS45OTdjLjg4Ny0uNDU3IDEuMjgtLjg5MSAxLjU1Ni0xLjc4NyAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNC0uNzQgMC0xLjQ2MS4wNjgtMi4xNS4xOTIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgQkIsT3FlPWcoKCk9PntCQj1bWyJwYXRoIix7ZDoiTTEyIDRWMiJ9XSxbInBhdGgiLHtkOiJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJBNy4wMDMgNy4wMDMgMCAwIDAgMTkgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDRDOCA0IDQuNSA2IDQgOGMtLjI0My45Ny0uOTE5IDEuOTUyLTIgMyAxLjMxLS4wODIgMS45NzItLjI5IDMtMSAuNTQuOTIuOTgyIDEuMzU2IDIgMiAxLjQ1Mi0uNjQ3IDEuOTU0LTEuMDk4IDIuNS0yIC41OTUuOTk1IDEuMTUxIDEuNDI3IDIuNSAyIDEuMzEtLjYyMSAxLjg2Mi0xLjA1OCAyLjUtMiAuNjI5Ljk3NyAxLjE2MiAxLjQyMyAyLjUgMiAxLjIwOS0uNTQ4IDEuNjgtLjk2NyAyLTIgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTRaIn1dXX0pO3ZhciBQNixGcWU9ZygoKT0+e1A2PVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6In1dXX0pO3ZhciBIQixCcWU9ZygoKT0+e0hCPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgSTYsSHFlPWcoKCk9PntJNj1bWyJwYXRoIix7ZDoiTTEwIDE1VjkifV0sWyJwYXRoIix7ZDoiTTE0IDE1VjkifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXX0pO3ZhciBxQixxcWU9ZygoKT0+e3FCPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIEE2LGpxZT1nKCgpPT57QTY9W1sicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIGpCLFZxZT1nKCgpPT57akI9W1sicGF0aCIse2Q6Ik0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEifV1dfSk7dmFyIFZCLFVxZT1nKCgpPT57VkI9W1sicGF0aCIse2Q6Ik0zIDNoNmw2IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE0IDNoNyJ9XV19KTt2YXIgVUIsV3FlPWcoKCk9PntVQj1bWyJwYXRoIix7ZDoiTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUifV0sWyJwYXRoIix7ZDoiTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIFdCLEdxZT1nKCgpPT57V0I9W1sicGF0aCIse2Q6Ik0xMiAxMlY0YTEgMSAwIDAgMSAxLTFoNi4yOTdhMSAxIDAgMCAxIC42NTEgMS43NTlsLTQuNjk2IDQuMDI1In1dLFsicGF0aCIse2Q6Im0xMiAyMS03LjQxNC03LjQxNEEyIDIgMCAwIDEgNCAxMi4xNzJWNi40MTVhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN0wyMCAyMC4wMDkifV0sWyJwYXRoIix7ZDoibTEyLjIxNCAzLjM4MSA4LjQxNCAxNC45NjZhMSAxIDAgMCAxLS4xNjcgMS4xOTlsLTEuMTY4IDEuMTYzYTEgMSAwIDAgMS0uNzA2LjI5MUg2LjM1MWExIDEgMCAwIDEtLjYyNS0uMjE5TDMuMjUgMTguOGExIDEgMCAwIDEgLjYzMS0xLjc4MWw0LjE2NS4wMjcifV1dfSk7dmFyIEdCLEtxZT1nKCgpPT57R0I9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJwYXRoIix7ZDoiTTE2Ljc2IDNhMiAyIDAgMCAxIDEuOCAxLjFsMi4yMyA0LjQ3OWEyIDIgMCAwIDEgLjIxLjg5MVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY5LjQ3MmEyIDIgMCAwIDEgLjIxMS0uODk0TDUuNDUgNC4xQTIgMiAwIDAgMSA3LjI0IDN6In1dLFsicGF0aCIse2Q6Ik0zLjA1NCA5LjAxM2gxNy44OTMifV1dfSk7dmFyIEtCLFlxZT1nKCgpPT57S0I9W1sicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTcgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMTI3VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43MjlsNyA0YTIgMiAwIDAgMCAyIC4wMDFsMS4zMi0uNzUzIn1dLFsicGF0aCIse2Q6Ik0zLjI5IDcgMTIgMTJsOC43MS01In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA4Ljk5NyA1LjE0OCJ9XV19KTt2YXIgWUIsWnFlPWcoKCk9PntZQj1bWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBaQixYcWU9ZygoKT0+e1pCPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTkifV0sWyJwYXRoIix7ZDoiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6In1dXX0pO3ZhciBYQixRcWU9ZygoKT0+e1hCPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE0djYifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjUzNVY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBRQixKcWU9ZygoKT0+e1FCPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTIwLjI3IDE4LjI3IDIyIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxMC40OThWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuOTgtLjU1OSJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjE2LjUiLHI6IjIuNSJ9XV19KTt2YXIgSkIsZWplPWcoKCk9PntKQj1bWyJwYXRoIix7ZDoiTTExIDIxLjczYTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzN6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dXX0pO3ZhciBlSCx0amU9ZygoKT0+e2VIPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoibTE2LjUgMTQuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE2LjUgMTkuNSA1LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjVWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuMTMtLjA3NCJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV1dfSk7dmFyIHRILGFqZT1nKCgpPT57dEg9W1sicGF0aCIse2Q6Ik0xMSA3IDYgMiJ9XSxbInBhdGgiLHtkOiJNMTguOTkyIDEySDIuMDQxIn1dLFsicGF0aCIse2Q6Ik0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSJ9XSxbInBhdGgiLHtkOiJtOC41IDQuNSAyLjE0OC0yLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDcuMjk2IDcuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTcuNTkyIDcuNTkyYTMuNjE1IDMuNjE1IDAgMCAxLTUuMTEyIDBsLTMuODg4LTMuODg4YTMuNjE1IDMuNjE1IDAgMCAxIDAtNS4xMTJMNS42NyA3LjMzIn1dXX0pO3ZhciBhSCxzamU9ZygoKT0+e2FIPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDE2di0yYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI2Iix4OiI4Iix5OiIxNiIscng6IjEifV1dfSk7dmFyIE42LGlqZT1nKCgpPT57TjY9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjlINlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xIn1dXX0pO3ZhciBzSCxyamU9ZygoKT0+e3NIPVtbInBhdGgiLHtkOiJtMTQuNjIyIDE3Ljg5Ny0xMC42OC0yLjkxMyJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweiJ9XSxbInBhdGgiLHtkOiJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUifV1dfSk7dmFyIGlILG9qZT1nKCgpPT57aUg9W1sicGF0aCIse2Q6Ik0xMiAyMmExIDEgMCAwIDEgMC0yMCAxMCA5IDAgMCAxIDEwIDkgNSA1IDAgMCAxLTUgNWgtMi4yNWExLjc1IDEuNzUgMCAwIDAtMS40IDIuOGwuMy40YTEuNzUgMS43NSAwIDAgMS0xLjQgMi44eiJ9XSxbImNpcmNsZSIse2N4OiIxMy41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiOC41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBySCxuamU9ZygoKT0+e3JIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Im0xNSA4LTMgMy0zLTMifV1dfSk7dmFyIG9ILGxqZT1nKCgpPT57b0g9W1sicGF0aCIse2Q6Ik0xMS4yNSAxNy4yNWgxLjVMMTIgMTh6In1dLFsicGF0aCIse2Q6Im0xNSAxMiAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDYuNWEuNS41IDAgMCAwLS41LS41In1dLFsicGF0aCIse2Q6Ik0yMC42OSA5LjY3YTQuNSA0LjUgMCAxIDAtNy4wNC01LjUgOC4zNSA4LjM1IDAgMCAwLTMuMyAwIDQuNSA0LjUgMCAxIDAtNy4wNCA1LjVDMi40OSAxMS4yIDIgMTIuODggMiAxNC41IDIgMTkuNDcgNi40OCAyMiAxMiAyMnMxMC0yLjUzIDEwLTcuNWMwLTEuNjItLjQ4LTMuMy0xLjMtNC44MyJ9XSxbInBhdGgiLHtkOiJNNiA2LjVhLjQ5NS40OTUgMCAwIDEgLjUtLjUifV0sWyJwYXRoIix7ZDoibTkgMTItMiAyIn1dXX0pO3ZhciBSNixjamU9ZygoKT0+e1I2PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XV19KTt2YXIgbkgsZGplPWcoKCk9PntuSD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciBsSCx1amU9ZygoKT0+e2xIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXX0pO3ZhciBPNixwamU9ZygoKT0+e082PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE1LTMtMyAzLTMifV1dfSk7dmFyIEY2LGhqZT1nKCgpPT57RjY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTR2MSJ9XSxbInBhdGgiLHtkOiJNOSAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDN2MiJ9XSxbInBhdGgiLHtkOiJNOSA5djEifV1dfSk7dmFyIEI2LGZqZT1nKCgpPT57QjY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTQgOSAzIDMtMyAzIn1dXX0pO3ZhciBjSCxtamU9ZygoKT0+e2NIPVtbInBhdGgiLHtkOiJNMTUgMTBWOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xNSA1VjMifV0sWyJwYXRoIix7ZDoiTTkgMTBWOSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNOSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNOSA1VjMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgSDYsZ2plPWcoKCk9PntINj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dXX0pO3ZhciBkSCxiamU9ZygoKT0+e2RIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im04IDkgMyAzLTMgMyJ9XV19KTt2YXIgcTYsdmplPWcoKCk9PntxNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTUgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNSA5djEifV1dfSk7dmFyIHVILHhqZT1nKCgpPT57dUg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV1dfSk7dmFyIHBILHlqZT1nKCgpPT57cEg9W1sicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTE5IDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBoSCx3amU9ZygoKT0+e2hIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXX0pO3ZhciBmSCxramU9ZygoKT0+e2ZIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zIDMgMyJ9XV19KTt2YXIgajYsU2plPWcoKCk9PntqNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgOWgyIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XV19KTt2YXIgbUgsX2plPWcoKCk9PnttSD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im0xNSAxNC0zIDMtMy0zIn1dXX0pO3ZhciBnSCxNamU9ZygoKT0+e2dIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV1dfSk7dmFyIGJILHpqZT1nKCgpPT57Ykg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxMiJ9XV19KTt2YXIgdkgsQ2plPWcoKCk9Pnt2SD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgVjYsVGplPWcoKCk9PntWNj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik05IDIxVjkifV1dfSk7dmFyIHhILCRqZT1nKCgpPT57eEg9W1sicGF0aCIse2Q6Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSJ9XV19KTt2YXIgeUgsRGplPWcoKCk9Pnt5SD1bWyJwYXRoIix7ZDoiTTggMjFzLTQtMy00LTkgNC05IDQtOSJ9XSxbInBhdGgiLHtkOiJNMTYgM3M0IDMgNCA5LTQgOS00IDkifV1dfSk7dmFyIHdILExqZT1nKCgpPT57d0g9W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dfSk7dmFyIGtILEVqZT1nKCgpPT57a0g9W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXX0pO3ZhciBTSCxQamU9ZygoKT0+e1NIPVtbInBhdGgiLHtkOiJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkifV0sWyJwYXRoIix7ZDoiTTQgM2guMDEifV0sWyJwYXRoIix7ZDoiTTIyIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCJ9XSxbInBhdGgiLHtkOiJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTcifV0sWyJwYXRoIix7ZDoibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjcifV0sWyJwYXRoIix7ZDoiTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloifV1dfSk7dmFyIF9ILElqZT1nKCgpPT57X0g9W1siY2lyY2xlIix7Y3g6IjExIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWiJ9XV19KTt2YXIgTUgsQWplPWcoKCk9PntNSD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDZoNiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBVNixOamU9ZygoKT0+e1U2PVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV19KTt2YXIgekgsUmplPWcoKCk9Pnt6SD1bWyJwYXRoIix7ZDoibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiJ9XSxbInBhdGgiLHtkOiJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgVzYsT2plPWcoKCk9PntXNj1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIENILEZqZT1nKCgpPT57Q0g9W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXX0pO3ZhciBUSCxCamU9ZygoKT0+e1RIPVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyICRILEhqZT1nKCgpPT57JEg9W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBESCxxamU9ZygoKT0+e0RIPVtbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV1dfSk7dmFyIExILGpqZT1nKCgpPT57TEg9W1sicGF0aCIse2Q6Ik0xMyA3IDguNyAyLjdhMi40MSAyLjQxIDAgMCAwLTMuNCAwTDIuNyA1LjNhMi40MSAyLjQxIDAgMCAwIDAgMy40TDcgMTMifV0sWyJwYXRoIix7ZDoibTggNiAyLTIifV0sWyJwYXRoIix7ZDoibTE4IDE2IDItMiJ9XSxbInBhdGgiLHtkOiJtMTcgMTEgNC4zIDQuM2MuOTQuOTQuOTQgMi40NiAwIDMuNGwtMi42IDIuNmMtLjk0Ljk0LTIuNDYuOTQtMy40IDBMMTEgMTcifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXX0pO3ZhciBFSCxWamU9ZygoKT0+e0VIPVtbInBhdGgiLHtkOiJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoifV1dfSk7dmFyIFBILFVqZT1nKCgpPT57UEg9W1sibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiNi41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV19KTt2YXIgSUgsV2plPWcoKCk9PntJSD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsicGF0aCIse2Q6Im05IDIwIDMtNiAzIDYifV0sWyJwYXRoIix7ZDoibTYgOCA2IDIgNi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY0In1dXX0pO3ZhciBBSCxHamU9ZygoKT0+e0FIPVtbInBhdGgiLHtkOiJNMjAgMTFINCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcifV1dfSk7dmFyIE5ILEtqZT1nKCgpPT57Tkg9W1sicGF0aCIse2Q6Ik0xMyAyYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTEzIDZhNSA1IDAgMCAxIDUgNSJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFJILFlqZT1nKCgpPT57Ukg9W1sicGF0aCIse2Q6Ik0xNCA2aDgifV0sWyJwYXRoIix7ZDoibTE4IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIE9ILFpqZT1nKCgpPT57T0g9W1sicGF0aCIse2Q6Ik0xNiAydjZoNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBGSCxYamU9ZygoKT0+e0ZIPVtbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgQkgsUWplPWcoKCk9PntCSD1bWyJwYXRoIix7ZDoiTTEwLjEgMTMuOWExNCAxNCAwIDAgMCAzLjczMiAyLjY2OCAxIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDIgMTggMTggMCAwIDEtMTIuNzI4LTUuMjcyIn1dLFsicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuNzYgMTMuNTgyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIC4yNDQuNDczIn1dXX0pO3ZhciBISCxKamU9ZygoKT0+e0hIPVtbInBhdGgiLHtkOiJtMTYgOCA2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDhWMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIHFILGVWZT1nKCgpPT57cUg9W1sibGluZSIse3gxOiI5Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNNCA3YzAtMS43IDEuMy0zIDMtM2gxMyJ9XSxbInBhdGgiLHtkOiJNMTggMjBjLTEuNyAwLTMtMS4zLTMtM1Y0In1dXX0pO3ZhciBqSCx0VmU9ZygoKT0+e2pIPVtbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFZILGFWZT1nKCgpPT57Vkg9W1sicGF0aCIse2Q6Ik0xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4In1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0IDE0djQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djQifV1dfSk7dmFyIFVILHNWZT1nKCgpPT57VUg9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5In1dLFsicGF0aCIse2Q6Ik0xNS45NzMgNC4wMjdBMTMgMTMgMCAwIDAgNS45MDIgMi4zNzNjLTEuMzk4LjM0Mi0xLjA5MiAyLjE1OC4yNzcgMi42MDFhMTkuOSAxOS45IDAgMCAxIDUuODIyIDMuMDI0In1dLFsicGF0aCIse2Q6Ik0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5In1dLFsicGF0aCIse2Q6Ik0xOC4zNTIgMy4zNTJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMGwtNS4yOTYgNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDUuMjk2LTUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDR6In1dXX0pO3ZhciBXSCxpVmU9ZygoKT0+e1dIPVtbInBhdGgiLHtkOiJNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNyIseDoiMTIiLHk6IjEzIixyeDoiMiJ9XV19KTt2YXIgR0gsclZlPWcoKCk9PntHSD1bWyJwYXRoIix7ZDoiTTIgMTBoNlY0In1dLFsicGF0aCIse2Q6Im0yIDQgNiA2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY3YTIgMiAwIDAgMC0yLTJoLTcifV0sWyJwYXRoIix7ZDoiTTMgMTR2MmEyIDIgMCAwIDAgMiAyaDMifV0sWyJyZWN0Iix7eDoiMTIiLHk6IjE0Iix3aWR0aDoiMTAiLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIEtILG9WZT1nKCgpPT57S0g9W1sicGF0aCIse2Q6Ik0xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4djFhMiAyIDAgMCAwIDIgMmgxIn1dXX0pO3ZhciBZSCxuVmU9ZygoKT0+e1lIPVtbInBhdGgiLHtkOiJNMTQgM3YxMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgtM2EzIDMgMCAwIDEgMC02aDkifV0sWyJwYXRoIix7ZDoiTTE4IDN2MTEifV0sWyJwYXRoIix7ZDoiTTIyIDE4SDJsNC00In1dLFsicGF0aCIse2Q6Im02IDIyLTQtNCJ9XV19KTt2YXIgWkgsbFZlPWcoKCk9PntaSD1bWyJwYXRoIix7ZDoiTTEwIDN2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDlIN2ExIDEgMCAwIDEgMC02aDgifV0sWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoibTE4IDE0IDQgNEgyIn1dLFsicGF0aCIse2Q6Im0yMiAxOC00IDQifV1dfSk7dmFyIFhILGNWZT1nKCgpPT57WEg9W1sicGF0aCIse2Q6Ik0xMyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMyJ9XV19KTt2YXIgUUgsZFZlPWcoKCk9PntRSD1bWyJwYXRoIix7ZDoiTTE4IDExaC00YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTYgN3YxM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY3In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI1Iix4OiI0Iix5OiIyIixyeDoiMSJ9XV19KTt2YXIgSkgsdVZlPWcoKCk9PntKSD1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSJ9XV19KTt2YXIgZXEscFZlPWcoKCk9PntlcT1bWyJwYXRoIix7ZDoibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA3IDcifV1dfSk7dmFyIHRxLGhWZT1nKCgpPT57dHE9W1sicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik05IDEwLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDQgMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIGFxLGZWZT1nKCgpPT57YXE9W1sicGF0aCIse2Q6Im0xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTIifV0sWyJwYXRoIix7ZDoibTE4IDkgLjQuNGExIDEgMCAxIDEtMyAzbC0zLjgtMy44YTEgMSAwIDEgMSAzLTNsLjQuNCAzLjQtMy40YTEgMSAwIDEgMSAzIDN6In1dLFsicGF0aCIse2Q6Im0yIDIyIC40MTQtLjQxNCJ9XV19KTt2YXIgc3EsbVZlPWcoKCk9PntzcT1bWyJwYXRoIix7ZDoibTEyIDE0LTEgMSJ9XSxbInBhdGgiLHtkOiJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIn1dLFsicGF0aCIse2Q6Ik0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIn1dLFsicGF0aCIse2Q6Ik0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyJ9XSxbInBhdGgiLHtkOiJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6In1dXX0pO3ZhciBpcSxnVmU9ZygoKT0+e2lxPVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFoifV1dfSk7dmFyIHJxLGJWZT1nKCgpPT57cnE9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiJ9XV19KTt2YXIgb3EsdlZlPWcoKCk9PntvcT1bWyJwYXRoIix7ZDoiTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnoifV1dfSk7dmFyIG5xLHhWZT1nKCgpPT57bnE9W1sicGF0aCIse2Q6Ik01IDVhMiAyIDAgMCAxIDMuMDA4LTEuNzI4bDExLjk5NyA2Ljk5OGEyIDIgMCAwIDEgLjAwMyAzLjQ1OGwtMTIgN0EyIDIgMCAwIDEgNSAxOXoifV1dfSk7dmFyIGxxLHlWZT1nKCgpPT57bHE9W1sicGF0aCIse2Q6Ik05IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMnY2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiJ9XV19KTt2YXIgRzYsd1ZlPWcoKCk9PntHNj1bWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNy41IDEzLjUgMTAgMTEifV0sWyJwYXRoIix7ZDoiTTEwLjUgMTYuNSAxMyAxNCJ9XSxbInBhdGgiLHtkOiJtMTggMy00IDRoNmwtNCA0In1dXX0pO3ZhciBjcSxrVmU9ZygoKT0+e2NxPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE1IDhWMiJ9XSxbInBhdGgiLHtkOiJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgOFYyIn1dXX0pO3ZhciBkcSxTVmU9ZygoKT0+e2RxPVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XV19KTt2YXIgdXEsX1ZlPWcoKCk9Pnt1cT1bWyJwYXRoIix7ZDoiTTMgMnYxYzAgMSAyIDEgMiAyUzMgNiAzIDdzMiAxIDIgMi0yIDEtMiAyIDIgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAuODMgOC44M2E0IDQgMCAwIDAtNS42Ni01LjY2bC0xMiAxMmE0IDQgMCAxIDAgNS42NiA1LjY2WiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNjZWMjJhNCA0IDAgMCAwIDQtNFY2In1dXX0pO3ZhciBwcSxNVmU9ZygoKT0+e3BxPVtbInBhdGgiLHtkOiJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNGE1IDUgMCAxIDEgOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgaHEselZlPWcoKCk9PntocT1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBmcSxDVmU9ZygoKT0+e2ZxPVtbInBhdGgiLHtkOiJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTcifV0sWyJwYXRoIix7ZDoiTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1In1dLFsicGF0aCIse2Q6Ik0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgifV0sWyJwYXRoIix7ZDoibTcgMTUtMS44LTEuOGEyIDIgMCAwIDAtMi43OSAyLjg2TDYgMTkuN2E3Ljc0IDcuNzQgMCAwIDAgNiAyLjNoMmE4IDggMCAwIDAgNS42NTctMi4zNDMifV0sWyJwYXRoIix7ZDoiTTYgNnY4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIG1xLFRWZT1nKCgpPT57bXE9W1sicGF0aCIse2Q6Ik0xOCA4YTIgMiAwIDAgMCAwLTQgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwIDAgNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjIgOSA4In1dLFsicGF0aCIse2Q6Im0xNCAyMiAxLTE0In1dLFsicGF0aCIse2Q6Ik0yMCA4Yy41IDAgLjkuNC44IDFsLTIuNiAxMmMtLjEuNS0uNyAxLTEuMiAxSDdjLS42IDAtMS4xLS40LTEuMi0xTDMuMiA5Yy0uMS0uNi4zLTEgLjgtMVoifV1dfSk7dmFyIGdxLCRWZT1nKCgpPT57Z3E9W1sicGF0aCIse2Q6Ik0xOC42IDE0LjRjLjgtLjguOC0yIDAtMi44bC04LjEtOC4xYTQuOTUgNC45NSAwIDEgMC03LjEgNy4xbDguMSA4LjFjLjkuNyAyLjEuNyAyLjktLjFaIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LjUtNS41In1dXX0pO3ZhciBicSxEVmU9ZygoKT0+e2JxPVtbInBhdGgiLHtkOiJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djE0In1dLFsicGF0aCIse2Q6Ik02IDIxaDEyIn1dLFsicGF0aCIse2Q6Ik02IDEzaDEwIn1dXX0pO3ZhciB2cSxMVmU9ZygoKT0+e3ZxPVtbInBhdGgiLHtkOiJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUifV0sWyJwYXRoIix7ZDoiTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciB4cSxFVmU9ZygoKT0+e3hxPVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0In1dXX0pO3ZhciB5cSxQVmU9ZygoKT0+e3lxPVtbInBhdGgiLHtkOiJNMiAzaDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoibTcgMjEgNS01IDUgNSJ9XV19KTt2YXIgd3EsSVZlPWcoKCk9Pnt3cT1bWyJwYXRoIix7ZDoiTTEyLjUzMSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWg2LjM3NyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxNi41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTYuNSAyMS41IDUtNSJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEuNSJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dfSk7dmFyIGtxLEFWZT1nKCgpPT57a3E9W1sicGF0aCIse2Q6Ik0xMy41IDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2LjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XV19KTt2YXIgU3EsTlZlPWcoKCk9PntTcT1bWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dLFsicmVjdCIse3g6IjYiLHk6IjE0Iix3aWR0aDoiMTIiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIF9xLFJWZT1nKCgpPT57X3E9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDl2MTEifV0sWyJwYXRoIix7ZDoiTTIgOWgxM2EyIDIgMCAwIDEgMiAydjkifV1dfSk7dmFyIE1xLE9WZT1nKCgpPT57TXE9W1sicGF0aCIse2Q6Ik0xNS4zOSA0LjM5YTEgMSAwIDAgMCAxLjY4LS40NzQgMi41IDIuNSAwIDEgMSAzLjAxNCAzLjAxNSAxIDEgMCAwIDAtLjQ3NCAxLjY4bDEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDAgMy40MTRMMTkuNjEgMTUuMzlhMSAxIDAgMCAxLTEuNjgtLjQ3NCAyLjUgMi41IDAgMSAwLTMuMDE0IDMuMDE1IDEgMSAwIDAgMSAuNDc0IDEuNjhsLTEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxLTMuNDE0IDBMOC42MSAxOS42MWExIDEgMCAwIDAtMS42OC40NzQgMi41IDIuNSAwIDEgMS0zLjAxNC0zLjAxNSAxIDEgMCAwIDAgLjQ3NC0xLjY4bC0xLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwLTMuNDE0TDQuMzkgOC42MWExIDEgMCAwIDEgMS42OC40NzQgMi41IDIuNSAwIDEgMCAzLjAxNC0zLjAxNSAxIDEgMCAwIDEtLjQ3NC0xLjY4bDEuNjgzLTEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDMuNDE0IDB6In1dXX0pO3ZhciB6cSxGVmU9ZygoKT0+e3pxPVtbInBhdGgiLHtkOiJNNSA3IDMgNSJ9XSxbInBhdGgiLHtkOiJNOSA2VjMifV0sWyJwYXRoIix7ZDoibTEzIDcgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMyIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTEuODMgMTJIMjBhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMi4xNyJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoMiJ9XV19KTt2YXIgQ3EsQlZlPWcoKCk9PntDcT1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dfSk7dmFyIFRxLEhWZT1nKCgpPT57VHE9W1sicGF0aCIse2Q6Ik0xNiAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XV19KTt2YXIgJHEscVZlPWcoKCk9PnskcT1bWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMTYiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTNhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSAyMXYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDd2M2EyIDIgMCAwIDEtMiAySDcifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi0xIn1dXX0pO3ZhciBEcSxqVmU9ZygoKT0+e0RxPVtbInBhdGgiLHtkOiJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQifV0sWyJwYXRoIix7ZDoiTTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1In1dLFsicGF0aCIse2Q6Ik0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3In1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0xMy40MSAxMC41OSA1LjY2LTUuNjYifV1dfSk7dmFyIExxLFZWZT1nKCgpPT57THE9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMi4yNCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDIxaC04YTQgNCAwIDAgMS00LTQgNyA3IDAgMCAxIDctN2guMkw5LjYgNi40YTEgMSAwIDEgMSAyLjgtMi44TDE1LjggN2guMmMzLjMgMCA2IDIuNyA2IDZ2MWEyIDIgMCAwIDEtMiAyaC0xYTMgMyAwIDAgMC0zIDMifV0sWyJwYXRoIix7ZDoiTTIwIDguNTRWNGEyIDIgMCAxIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTcuNjEyIDEyLjUyNGEzIDMgMCAxIDAtMS42IDQuMyJ9XV19KTt2YXIgRXEsVVZlPWcoKCk9PntFcT1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXX0pO3ZhciBQcSxXVmU9ZygoKT0+e1BxPVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV19KTt2YXIgSXEsR1ZlPWcoKCk9PntJcT1bWyJwYXRoIix7ZDoiTTEzLjQxNCAxMy40MTRhMiAyIDAgMSAxLTIuODI4LTIuODI4In1dLFsicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDEuNzQ0IDQuNTcyIn1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMi4yMzQgMTAuNzIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV1dfSk7dmFyIEFxLEtWZT1nKCgpPT57QXE9W1sicGF0aCIse2Q6Ik01IDE2djIifV0sWyJwYXRoIix7ZDoiTTE5IDE2djIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIE5xLFlWZT1nKCgpPT57TnE9W1sicGF0aCIse2Q6Ik00LjkgMTYuMUMxIDEyLjIgMSA1LjggNC45IDEuOSJ9XSxbInBhdGgiLHtkOiJNNy44IDQuN2E2LjE0IDYuMTQgMCAwIDAtLjggNy41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTYuMiA0LjhjMiAyIDIuMjYgNS4xMS44IDcuNDcifV0sWyJwYXRoIix7ZDoiTTE5LjEgMS45YTkuOTYgOS45NiAwIDAgMSAwIDE0LjEifV0sWyJwYXRoIix7ZDoiTTkuNSAxOGg1In1dLFsicGF0aCIse2Q6Im04IDIyIDQtMTEgNCAxMSJ9XV19KTt2YXIgUnEsWlZlPWcoKCk9PntScT1bWyJwYXRoIix7ZDoiTTE2LjI0NyA3Ljc2MWE2IDYgMCAwIDEgMCA4LjQ3OCJ9XSxbInBhdGgiLHtkOiJNMTkuMDc1IDQuOTMzYTEwIDEwIDAgMCAxIDAgMTQuMTM0In1dLFsicGF0aCIse2Q6Ik00LjkyNSAxOS4wNjdhMTAgMTAgMCAwIDEgMC0xNC4xMzQifV0sWyJwYXRoIix7ZDoiTTcuNzUzIDE2LjIzOWE2IDYgMCAwIDEgMC04LjQ3OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBPcSxYVmU9ZygoKT0+e09xPVtbInBhdGgiLHtkOiJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEzLjQxIDQuMTggNC4xOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBGcSxRVmU9ZygoKT0+e0ZxPVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgQnEsSlZlPWcoKCk9PntCcT1bWyJwYXRoIix7ZDoiTTEzIDIySDRhMiAyIDAgMCAxIDAtNGgxMiJ9XSxbInBhdGgiLHtkOiJNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE2LjgyIDMuOTRhMyAzIDAgMSAxIDMuMjM3IDQuODY4bDEuODE1IDIuNTg3YTEuNSAxLjUgMCAwIDEtMS41IDIuMWwtMi44NzItLjQ1M2EzIDMgMCAwIDAtMy41IDMifV0sWyJwYXRoIix7ZDoiTTE3IDQuOTg4YTMgMyAwIDEgMC01LjIgMi4wNTJBNyA3IDAgMCAwIDQgMTQuMDE1IDQgNCAwIDAgMCA4IDE4In1dXX0pO3ZhciBIcSxlVWU9ZygoKT0+e0hxPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIHFxLHRVZT1nKCgpPT57cXE9W1sicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MjggMTQuODI5YTQgNCAwIDAgMS01LjY1NiAwIDQgNCAwIDAgMSAwLTUuNjU3IDQgNCAwIDAgMSA1LjY1NiAwIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBqcSxhVWU9ZygoKT0+e2pxPVtbInBhdGgiLHtkOiJNMTUuODI4IDE0LjgyOWE0IDQgMCAwIDEtNS42NTYgMCA0IDQgMCAwIDEgMC01LjY1NyA0IDQgMCAwIDEgNS42NTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg1In1dXX0pO3ZhciBWcSxzVWU9ZygoKT0+e1ZxPVtbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNOSA3YTQgNCAwIDAgMSAwIDhIOGwzIDIifV1dfSk7dmFyIFVxLGlVZT1nKCgpPT57VXE9W1sicGF0aCIse2Q6Ik0xMCAxN1Y5LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxM2g1In1dLFsicGF0aCIse2Q6Ik04IDE3aDcifV1dfSk7dmFyIFdxLHJVZT1nKCgpPT57V3E9W1sicGF0aCIse2Q6Im0xMiAxMCAzLTMifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcifV1dfSk7dmFyIEdxLG9VZT1nKCgpPT57R3E9W1sicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMCAwIDAtNGgtM3YxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXX0pO3ZhciBLcSxuVWU9ZygoKT0+e0txPVtbInBhdGgiLHtkOiJNMTMgMTZIOCJ9XSxbInBhdGgiLHtkOiJNMTQgOEg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBZcSxsVWU9ZygoKT0+e1lxPVtbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWN2g1In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDE1aDUifV1dfSk7dmFyIFpxLGNVZT1nKCgpPT57WnE9W1sicGF0aCIse2Q6Ik0xMiAxN1Y3In1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDAgMCAwIDRoNGEyIDIgMCAwIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIFhxLGRVZT1nKCgpPT57WHE9W1sicGF0aCIse2Q6Ik0xMCA3djEwYTUgNSAwIDAgMCA1LTUifV0sWyJwYXRoIix7ZDoibTE0IDgtNiAzIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBRcSx1VWU9ZygoKT0+e1FxPVtbInBhdGgiLHtkOiJNMTQgNHYxNkgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xeiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjEyIixyOiI4In1dXX0pO3ZhciBLNixwVWU9ZygoKT0+e0s2PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIEpxLGhVZT1nKCgpPT57SnE9W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgZWosZlVlPWcoKCk9Pntlaj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgdGosbVVlPWcoKCk9Pnt0aj1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgYWosZ1VlPWcoKCk9Pnthaj1bWyJwYXRoIix7ZDoiTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTloOC4yMDNhMS44MyAxLjgzIDAgMCAwIDEuNTU2LS44OSAxLjc4NCAxLjc4NCAwIDAgMCAwLTEuNzc1bC0xLjIyNi0yLjEyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik04LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgifV0sWyJwYXRoIix7ZDoibTkuMzQ0IDUuODExIDEuMDkzLTEuODkyQTEuODMgMS44MyAwIDAgMSAxMS45ODUgM2ExLjc4NCAxLjc4NCAwIDAgMSAxLjU0Ni44ODhsMy45NDMgNi44NDMifV0sWyJwYXRoIix7ZDoibTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NiJ9XV19KTt2YXIgc2osYlVlPWcoKCk9Pntzaj1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzIn1dXX0pO3ZhciBpaix2VWU9ZygoKT0+e2lqPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIHJqLHhVZT1nKCgpPT57cmo9W1sicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIG9qLHlVZT1nKCgpPT57b2o9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIG5qLHdVZT1nKCgpPT57bmo9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXX0pO3ZhciBsaixrVWU9ZygoKT0+e2xqPVtbInBhdGgiLHtkOiJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDcifV0sWyJwYXRoIix7ZDoiTTggMTZIM3Y1In1dLFsicGF0aCIse2Q6Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0In1dLFsicGF0aCIse2Q6Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQifV0sWyJwYXRoIix7ZDoiTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dfSk7dmFyIGNqLFNVZT1nKCgpPT57Y2o9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV19KTt2YXIgZGosX1VlPWcoKCk9Pntkaj1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXX0pO3ZhciB1aixNVWU9ZygoKT0+e3VqPVtbInBhdGgiLHtkOiJNMTcgM3YxMCJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgNS41IDguNjYgNSJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgMTAuNSA4LjY2LTUifV0sWyJwYXRoIix7ZDoiTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoifV1dfSk7dmFyIHBqLHpVZT1nKCgpPT57cGo9W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dfSk7dmFyIGhqLENVZT1nKCgpPT57aGo9W1sicGF0aCIse2Q6Im0yIDkgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTMgMThIN2EyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoiTTExIDZoNmEyIDIgMCAwIDEgMiAydjEwIn1dXX0pO3ZhciBmaixUVWU9ZygoKT0+e2ZqPVtbInBhdGgiLHtkOiJtMTcgMiA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQifV0sWyJwYXRoIix7ZDoibTcgMjItNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMifV0sWyJwYXRoIix7ZDoiTTExIDEwaDF2NCJ9XV19KTt2YXIgbWosJFVlPWcoKCk9Pnttaj1bWyJwYXRoIix7ZDoiTTExLjY1NiA2SDIxbC00LTQifV0sWyJwYXRoIix7ZDoiTTE3Ljg5OCAxNy44OThBNCA0IDAgMCAxIDE3IDE4SDNsNC00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLS4xNzEgMS4xNTkifV0sWyJwYXRoIix7ZDoibTIxIDYtNCA0In1dLFsicGF0aCIse2Q6Ik0zIDExdi0xYTQgNCAwIDAgMSAzLjEwMi0zLjg5OCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQifV1dfSk7dmFyIGdqLERVZT1nKCgpPT57Z2o9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XV19KTt2YXIgYmosTFVlPWcoKCk9Pntiaj1bWyJwYXRoIix7ZDoiTTE0IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0xNCA0YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE1IDEwYTEgMSAwIDAgMS0xLTEifV0sWyJwYXRoIix7ZDoiTTE5IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciB2aixFVWU9ZygoKT0+e3ZqPVtbInBhdGgiLHtkOiJNMTQgNGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGExIDEgMCAwIDEtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciB4aixQVWU9ZygoKT0+e3hqPVtbInBhdGgiLHtkOiJtMTIgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3In1dLFsicGF0aCIse2Q6Im03IDE3LTUtNSA1LTUifV1dfSk7dmFyIHlqLElVZT1nKCgpPT57eWo9W1sicGF0aCIse2Q6Ik0yMCAxOHYtMmE0IDQgMCAwIDAtNC00SDQifV0sWyJwYXRoIix7ZDoibTkgMTctNS01IDUtNSJ9XV19KTt2YXIgd2osQVVlPWcoKCk9Pnt3aj1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dfSk7dmFyIGtqLE5VZT1nKCgpPT57a2o9W1sicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMTIgMTh6In1dLFsicGF0aCIse2Q6Ik0yMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMjIgMTh6In1dXX0pO3ZhciBTaixSVWU9ZygoKT0+e1NqPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTIgNVYzIn1dLFsicGF0aCIse2Q6Ik0xMiA5djMifV0sWyJwYXRoIix7ZDoiTTIuMDc3IDE4LjQ0OUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjQtMi41NWwtNC0xNEEyIDIgMCAwIDAgMTYgM0g4YTIgMiAwIDAgMC0xLjkyNCAxLjQ1eiJ9XV19KTt2YXIgX2osT1VlPWcoKCk9Pntfaj1bWyJwYXRoIix7ZDoiTTEyIDE1djVzMy4wMy0uNTUgNC0yYzEuMDgtMS42MiAwLTUgMC01In1dLFsicGF0aCIse2Q6Ik00LjUgMTYuNWMtMS41IDEuMjYtMiA1LTIgNXMzLjc0LS41IDUtMmMuNzEtLjg0LjctMi4xMy0uMDktMi45MWEyLjE4IDIuMTggMCAwIDAtMi45MS0uMDkifV0sWyJwYXRoIix7ZDoiTTkgMTJhMjIgMjIgMCAwIDEgMi0zLjk1QTEyLjg4IDEyLjg4IDAgMCAxIDIyIDJjMCAyLjcyLS43OCA3LjUtNiAxMWEyMi40IDIyLjQgMCAwIDEtNCAyeiJ9XSxbInBhdGgiLHtkOiJNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAuMDUgNSAuMDUifV1dfSk7dmFyIE1qLEZVZT1nKCgpPT57TWo9W1sicGF0aCIse2Q6Im0xNSAxMyAzLjcwOCA3LjQxNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWExNSAxNSAwIDAgMCAxOCAwIn1dLFsicGF0aCIse2Q6Im0zIDIgMy4yMSA5LjYzM0EyIDIgMCAwIDAgOC4xMDkgMTNIMTgifV0sWyJwYXRoIix7ZDoibTkgMTMtMy43MDggNy40MTYifV1dfSk7dmFyIHpqLEJVZT1nKCgpPT57emo9W1sicGF0aCIse2Q6Ik02IDE5VjUifV0sWyJwYXRoIix7ZDoiTTEwIDE5VjYuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTl2LTcuOCJ9XSxbInBhdGgiLHtkOiJNMTggNXY0In1dLFsicGF0aCIse2Q6Ik0xOCAxOXYtNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTlWOSJ9XSxbInBhdGgiLHtkOiJNMiAxOVY5YTQgNCAwIDAgMSA0LTRjMiAwIDQgMS4zMyA2IDRzNCA0IDYgNGE0IDQgMCAxIDAtMy02LjY1In1dXX0pO3ZhciBDaixIVWU9ZygoKT0+e0NqPVtbInBhdGgiLHtkOiJNMTcgMTBoLTFhNCA0IDAgMSAxIDQtNHYuNTM0In1dLFsicGF0aCIse2Q6Ik0xNyA2aDFhNCA0IDAgMCAxIDEuNDIgNy43NGwtMi4yOS44N2E2IDYgMCAwIDEtNS4zMzktMTAuNjhsMi4wNjktMS4zMSJ9XSxbInBhdGgiLHtkOiJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIn1dLFsicGF0aCIse2Q6Ik05Ljc3IDEyQzQgMTUgMiAyMiAyIDIyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiOCIscjoiMiJ9XV19KTt2YXIgWTYscVVlPWcoKCk9PntZNj1bWyJwYXRoIix7ZDoibTE1LjE5NCAxMy43MDcgMy44MTQgMS44Ni0xLjg2IDMuODE0In1dLFsicGF0aCIse2Q6Ik0xNi40NzIxNCA3LjUyNzg2IEEgNSAxMCAwIDEgMCAxMyAyMS43OTc5NiJ9XSxbInBhdGgiLHtkOiJNMjEuNzk3OTYgMTEgQSAxMCA1IDAgMSAwIDE5IDE1LjU3MDcxIn1dXX0pO3ZhciBUaixqVWU9ZygoKT0+e1RqPVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xMiA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc0IDkuNzQgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciAkaixWVWU9ZygoKT0+eyRqPVtbInBhdGgiLHtkOiJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiJ9XV19KTt2YXIgRGosVVVlPWcoKCk9PntEaj1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XV19KTt2YXIgTGosV1VlPWcoKCk9PntMaj1bWyJwYXRoIix7ZDoiTTEyIDVINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoibTkgOCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik00IDE0djRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XV19KTt2YXIgRWosR1VlPWcoKCk9PntFaj1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dXX0pO3ZhciBQaixLVWU9ZygoKT0+e1BqPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIn1dLFsicGF0aCIse2Q6Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyJ9XSxbInBhdGgiLHtkOiJNMTUgNWgtNC4zIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgSWosWVVlPWcoKCk9PntJaj1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE5IixyOiIzIn1dLFsicGF0aCIse2Q6Ik05IDE5aDguNWEzLjUgMy41IDAgMCAwIDAtN2gtMTFhMy41IDMuNSAwIDAgMSAwLTdIMTUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciBBaixaVWU9ZygoKT0+e0FqPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02LjAxIDE4SDYifV0sWyJwYXRoIix7ZDoiTTEwLjAxIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAifV0sWyJwYXRoIix7ZDoiTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAifV1dfSk7dmFyIFo2LFhVZT1nKCgpPT57WjY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV1dfSk7dmFyIFg2LFFVZT1nKCgpPT57WDY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVIMyJ9XV19KTt2YXIgTmosSlVlPWcoKCk9PntOaj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgNy41SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2LjVIMyJ9XV19KTt2YXIgUmosZVdlPWcoKCk9PntSaj1bWyJwYXRoIix7ZDoiTTQgMTFhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgT2osdFdlPWcoKCk9PntPaj1bWyJwYXRoIix7ZDoiTTEwIDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xNCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2LTMifV0sWyJwYXRoIix7ZDoiTTIgOFY0In1dLFsicGF0aCIse2Q6Ik0yMiA2SDIifV0sWyJwYXRoIix7ZDoiTTIyIDhWNCJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMyJ9XSxbInJlY3QiLHt4OiIyIix5OiIxMiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIyIn1dXX0pO3ZhciBGaixhV2U9ZygoKT0+e0ZqPVtbInBhdGgiLHtkOiJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNSAyLTIifV0sWyJwYXRoIix7ZDoibTExLjUgOS41IDItMiJ9XSxbInBhdGgiLHtkOiJtOC41IDYuNSAyLTIifV0sWyJwYXRoIix7ZDoibTE3LjUgMTUuNSAyLTIifV1dfSk7dmFyIEJqLHNXZT1nKCgpPT57Qmo9W1sicGF0aCIse2Q6Ik02IDExaDhhNCA0IDAgMCAwIDAtOEg5djE4In1dLFsicGF0aCIse2Q6Ik02IDE1aDgifV1dfSk7dmFyIEhqLGlXZT1nKCgpPT57SGo9W1sicGF0aCIse2Q6Ik0xMCAydjE1In1dLFsicGF0aCIse2Q6Ik03IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6In1dLFsicGF0aCIse2Q6Ik05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6In1dXX0pO3ZhciBxaixyV2U9ZygoKT0+e3FqPVtbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIn1dLFsicGF0aCIse2Q6Ik0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNC00In1dLFsicGF0aCIse2Q6Ik0xMC45IDcuMjVBMy45OSAzLjk5IDAgMCAwIDQgMTBjMCAuNzMuMiAxLjQxLjU0IDIifV1dfSk7dmFyIGpqLG9XZT1nKCgpPT57amo9W1sicGF0aCIse2Q6Im0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUifV0sWyJwYXRoIix7ZDoiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSJ9XSxbInBhdGgiLHtkOiJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI0Iix4OiIyIix5OiIxMSIscng6IjEifV1dfSk7dmFyIFZqLG5XZT1nKCgpPT57Vmo9W1sicGF0aCIse2Q6Im0xMy41IDYuNS0zLjE0OC0zLjE0OGExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDYuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRMOS41IDEwLjUifV0sWyJwYXRoIix7ZDoiTTE2LjUgNy41IDE5IDUifV0sWyJwYXRoIix7ZDoibTE3LjUgMTAuNSAzLjE0OCAzLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0yLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMS0xLjcwNCAwTDEzLjUgMTQuNSJ9XSxbInBhdGgiLHtkOiJNOSAyMWE2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik05LjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDQuMjk2LTQuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDRsLTIuMjk2LTIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDB6In1dXX0pO3ZhciBVaixsV2U9ZygoKT0+e1VqPVtbInBhdGgiLHtkOiJNNCAxMGE3LjMxIDcuMzEgMCAwIDAgMTAgMTBaIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTNhNiA2IDAgMCAwLTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTNBMTAgMTAgMCAwIDAgMTEgMyJ9XV19KTt2YXIgV2osY1dlPWcoKCk9PntXaj1bWyJwYXRoIix7ZDoibTIwIDE5LjUtNS41IDEuMiJ9XSxbInBhdGgiLHtkOiJNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yIn1dLFsicGF0aCIse2Q6Im0yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwIDQgMTMuNSJ9XV19KTt2YXIgR2osZFdlPWcoKCk9PntHaj1bWyJwYXRoIix7ZDoiTTEzIDEzSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik0xNCA4aDEifV0sWyJwYXRoIix7ZDoiTTE3IDIxdi00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxIDIwLjQxQTIgMiAwIDAgMSAxOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgLjU5LTEuNDEifV0sWyJwYXRoIix7ZDoiTTI5LjUgMTEuNXM1IDUgNCA1In1dLFsicGF0aCIse2Q6Ik05IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUifV1dfSk7dmFyIEtqLHVXZT1nKCgpPT57S2o9W1sicGF0aCIse2Q6Ik0xMCAydjNhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xOCAxOHYtNmExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMC0xIDF2NiJ9XSxbInBhdGgiLHtkOiJNMTggMjJINGEyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoiTTggMThhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOS4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NmwyLjgyOCAyLjgyOEEyIDIgMCAwIDEgMjIgNi44MjhWMTZhMiAyIDAgMCAxLTIuMDEgMnoifV1dfSk7dmFyIFlqLHBXZT1nKCgpPT57WWo9W1sicGF0aCIse2Q6Ik0xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik03IDN2NGExIDEgMCAwIDAgMSAxaDcifV1dfSk7dmFyIFE2LGhXZT1nKCgpPT57UTY9W1sicGF0aCIse2Q6Ik01IDd2MTFhMSAxIDAgMCAwIDEgMWgxMSJ9XSxbInBhdGgiLHtkOiJNNS4yOTMgMTguNzA3IDExIDEzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjIifV1dfSk7dmFyIFpqLGZXZT1nKCgpPT57Wmo9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Im0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEifV0sWyJwYXRoIix7ZDoibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XV19KTt2YXIgWGosbVdlPWcoKCk9PntYaj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNyA3djEwIn1dXX0pO3ZhciBRaixnV2U9ZygoKT0+e1FqPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xNCAxNUg5di01In1dLFsicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMjEgMyA5IDE1In1dXX0pO3ZhciBKaixiV2U9ZygoKT0+e0pqPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgZVYsdldlPWcoKCk9PntlVj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV1dfSk7dmFyIHRWLHhXZT1nKCgpPT57dFY9W1sicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNC4xNzIgNC4zMDZsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDQ5IDB6In1dXX0pO3ZhciBhVix5V2U9ZygoKT0+e2FWPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dXX0pO3ZhciBzVix3V2U9ZygoKT0+e3NWPVtbInBhdGgiLHtkOiJNMTcgMTJ2NGExIDEgMCAwIDEtMSAxaC00In1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyA4VjcifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiNyIseToiNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dfSk7dmFyIGlWLGtXZT1nKCgpPT57aVY9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtMS45LTEuOSJ9XV19KTt2YXIgclYsU1dlPWcoKCk9PntyVj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNyA4aDgifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoNiJ9XV19KTt2YXIgb1YsX1dlPWcoKCk9PntvVj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgblYsTVdlPWcoKCk9PntuVj1bWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggNC45MzNWMjEifV0sWyJwYXRoIix7ZDoibTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYifV0sWyJwYXRoIix7ZDoibTYgMTEtMy41MiAyLjE0N2ExIDEgMCAwIDAtLjQ4Ljg1NFYxOWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLS40OC0uODUzTDE4IDExIn1dLFsicGF0aCIse2Q6Ik02IDQuOTMzVjIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV19KTt2YXIgbFYseldlPWcoKCk9PntsVj1bWyJwYXRoIix7ZDoiTTUuNDIgOS40MiA4IDEyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA2LTguNTggOC41OCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEwLjggMTQuOCAxNCAxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBjVixDV2U9ZygoKT0+e2NWPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOC4xMiA4LjEyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMCA0IDguMTIgMTUuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNC44IDE0LjggMjAgMjAifV1dfSk7dmFyIGRWLFRXZT1nKCgpPT57ZFY9W1sicGF0aCIse2Q6Ik0yMSA0aC0zLjVsMiAxMS4wNSJ9XSxbInBhdGgiLHtkOiJNNi45NSAxN2g1LjE0MmMuNTIzIDAgLjk1LS40MDYgMS4wNjMtLjkxNmE2LjUgNi41IDAgMCAxIDUuMzQ1LTUuMDA5In1dLFsiY2lyY2xlIix7Y3g6IjE5LjUiLGN5OiIxNy41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiNC41IixjeToiMTcuNSIscjoiMi41In1dXX0pO3ZhciB1ViwkV2U9ZygoKT0+e3VWPVtbInBhdGgiLHtkOiJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoibTIyIDMtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAzIDUgNSJ9XV19KTt2YXIgcFYsRFdlPWcoKCk9PntwVj1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dfSk7dmFyIGhWLExXZT1nKCgpPT57aFY9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV19KTt2YXIgZlYsRVdlPWcoKCk9PntmVj1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dfSk7dmFyIG1WLFBXZT1nKCgpPT57bVY9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXX0pO3ZhciBnVixJV2U9ZygoKT0+e2dWPVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dfSk7dmFyIGJWLEFXZT1nKCgpPT57YlY9W1sicGF0aCIse2Q6Im0xMyAxMy41IDItMi41LTItMi41In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik05IDguNSA3IDExbDIgMi41In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV1dfSk7dmFyIHZWLE5XZT1nKCgpPT57dlY9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgeFYsUldlPWcoKCk9Pnt4Vj1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgeVYsT1dlPWcoKCk9Pnt5Vj1bWyJwYXRoIix7ZDoibTIxIDIxLTQuMzQtNC4zNCJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXX0pO3ZhciB3VixGV2U9ZygoKT0+e3dWPVtbInBhdGgiLHtkOiJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIn1dXX0pO3ZhciBKNixCV2U9ZygoKT0+e0o2PVtbInBhdGgiLHtkOiJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTYifV1dfSk7dmFyIGtWLEhXZT1nKCgpPT57a1Y9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIFNWLHFXZT1nKCgpPT57U1Y9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dfSk7dmFyIF9WLGpXZT1nKCgpPT57X1Y9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV19KTt2YXIgTVYsVldlPWcoKCk9PntNVj1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXX0pO3ZhciB6VixVV2U9ZygoKT0+e3pWPVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dfSk7dmFyIENWLFdXZT1nKCgpPT57Q1Y9W1sicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0xMyA2LTQgNmg2bC00IDYifV1dfSk7dmFyIFRWLEdXZT1nKCgpPT57VFY9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyICRWLEtXZT1nKCgpPT57JFY9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV19KTt2YXIgRFYsWVdlPWcoKCk9PntEVj1bWyJwYXRoIix7ZDoiTTE0IDE3SDUifV0sWyJwYXRoIix7ZDoiTTE5IDdoLTkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiMyJ9XV19KTt2YXIgTFYsWldlPWcoKCk9PntMVj1bWyJwYXRoIix7ZDoiTTguMyAxMGEuNy43IDAgMCAxLS42MjYtMS4wNzlMMTEuNCAzYS43LjcgMCAwIDEgMS4xOTgtLjA0M0wxNi4zIDguOWEuNy43IDAgMCAxLS41NzIgMS4xWiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XV19KTt2YXIgRVYsWFdlPWcoKCk9PntFVj1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIFBWLFFXZT1nKCgpPT57UFY9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOSIscjoiMyJ9XSxbImxpbmUiLHt4MToiOC41OSIseDI6IjE1LjQyIix5MToiMTMuNTEiLHkyOiIxNy40OSJ9XSxbImxpbmUiLHt4MToiMTUuNDEiLHgyOiI4LjU5Iix5MToiNi41MSIseTI6IjEwLjQ5In1dXX0pO3ZhciBJVixKV2U9ZygoKT0+e0lWPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXX0pO3ZhciBBVixlR2U9ZygoKT0+e0FWPVtbInBhdGgiLHtkOiJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQifV1dfSk7dmFyIE5WLHRHZT1nKCgpPT57TlY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIzIix4MjoiMjEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkiLHkxOiI5Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUiLHkxOiI5Iix5MjoiMjEifV1dfSk7dmFyIFJWLGFHZT1nKCgpPT57UlY9W1sicGF0aCIse2Q6Ik0xMiAxMlY5YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTE2IDIwdi0zYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDE2In1dLFsicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTQgNGgxNiJ9XV19KTt2YXIgT1Ysc0dlPWcoKCk9PntPVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgRlYsaUdlPWcoKCk9PntGVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiJ9XV19KTt2YXIgQlYsckdlPWcoKCk9PntCVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIEhWLG9HZT1nKCgpPT57SFY9W1sicGF0aCIse2Q6Ik0xMSAyMmMtMy44MDYtMS40NS03LTMuOTY2LTctOVY2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY0In1dLFsicGF0aCIse2Q6Ik0xNC45MjMgMTYuNTQ3IDE0IDE2LjE2NCJ9XSxbInBhdGgiLHtkOiJtMTQuOTIzIDE4Ljg0My0uOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNMTYuNTQ3IDE0LjkyMyAxNi4xNjQgMTQifV0sWyJwYXRoIix7ZDoibTE2LjU0NyAyMC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE4Ljg0MyAxNC45MjMuMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjIyNSAyMS4zOTEtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTYuNTQ3LjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTguODQzLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTcuNjk1IixjeToiMTcuNjk1IixyOiIzIn1dXX0pO3ZhciBxVixuR2U9ZygoKT0+e3FWPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgalYsbEdlPWcoKCk9PntqVj1bWyJwYXRoIix7ZDoibTEwLjkyOSAxNC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoiTTEwLjkyOSA4LjkyMyAxMC41NDYgOCJ9XSxbInBhdGgiLHtkOiJNMTMuMjI1IDguOTIzIDEzLjYwOCA4In1dLFsicGF0aCIse2Q6Im0xMy42MDcgMTUuMzkxLS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTQuODQ5IDEwLjU0Ny45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuODQ5IDEyLjg0My45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtOS4zMDUgMTAuNTQ3LS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS4zMDUgMTIuODQzLS45MjMuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjEyLjA3NyIsY3k6IjExLjY5NSIscjoiMyJ9XV19KTt2YXIgVlYsY0dlPWcoKCk9PntWVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXX0pO3ZhciBVVixkR2U9ZygoKT0+e1VWPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XV19KTt2YXIgV1YsdUdlPWcoKCk9PntXVj1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA1YTEgMSAwIDAgMC0xIDF2N2MwIDUgMy41IDcuNSA3LjY3IDguOTRhMSAxIDAgMCAwIC42Ny4wMWMyLjM1LS44MiA0LjQ4LTEuOTcgNS45LTMuNzEifV0sWyJwYXRoIix7ZDoiTTkuMzA5IDMuNjUyQTEyLjI1MiAxMi4yNTIgMCAwIDAgMTEuMjQgMi4yOGExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF2N2E5Ljc4NCA5Ljc4NCAwIDAgMS0uMDggMS4yNjQifV1dfSk7dmFyIEdWLHBHZT1nKCgpPT57R1Y9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIGU1LGhHZT1nKCgpPT57ZTU9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXX0pO3ZhciBLVixmR2U9ZygoKT0+e0tWPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dfSk7dmFyIHQ1LG1HZT1nKCgpPT57dDU9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV19KTt2YXIgWVYsZ0dlPWcoKCk9PntZVj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXX0pO3ZhciBaVixiR2U9ZygoKT0+e1pWPVtbInBhdGgiLHtkOiJNMTIgMTAuMTg5VjE0In1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYifV0sWyJwYXRoIix7ZDoiTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dXX0pO3ZhciBYVix2R2U9ZygoKT0+e1hWPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiAydjcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgNS01LjIzIDUuMjMifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC03LjUifV0sWyJwYXRoIix7ZDoibTE5IDE5LTUuMjMtNS4yMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTQuNVYyMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTMuNzcgNSAxOSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEwLjIzIDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyLjUifV1dfSk7dmFyIFFWLHhHZT1nKCgpPT57UVY9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV19KTt2YXIgSlYseUdlPWcoKCk9PntKVj1bWyJwYXRoIix7ZDoiTTE2IDEwYTQgNCAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTMuMTAzIDYuMDM0aDE3Ljc5NCJ9XSxbInBhdGgiLHtkOiJNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6In1dXX0pO3ZhciBlVSx3R2U9ZygoKT0+e2VVPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dfSk7dmFyIHRVLGtHZT1nKCgpPT57dFU9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXX0pO3ZhciBhVSxTR2U9ZygoKT0+e2FVPVtbInBhdGgiLHtkOiJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiJ9XSxbInBhdGgiLHtkOiJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiJ9XSxbInBhdGgiLHtkOiJtOSAxNSA3Ljg3OS03Ljg3OCJ9XV19KTt2YXIgc1UsX0dlPWcoKCk9PntzVT1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV19KTt2YXIgaVUsTUdlPWcoKCk9PntpVT1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dfSk7dmFyIHJVLHpHZT1nKCgpPT57clU9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXX0pO3ZhciBvVSxDR2U9ZygoKT0+e29VPVtbInBhdGgiLHtkOiJNMTEgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4In1dLFsicGF0aCIse2Q6Ik0xNCA4YTguNSA4LjUgMCAwIDEgMCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNmMyIDAgNC41LTQgNC02In1dXX0pO3ZhciBuVSxUR2U9ZygoKT0+e25VPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41In1dLFsicGF0aCIse2Q6Ik0xNC41IDE0LjUgMTIgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoifV1dfSk7dmFyIGxVLCRHZT1nKCgpPT57bFU9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dfSk7dmFyIGNVLERHZT1nKCgpPT57Y1U9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dfSk7dmFyIGRVLExHZT1nKCgpPT57ZFU9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dfSk7dmFyIHVVLEVHZT1nKCgpPT57dVU9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XV19KTt2YXIgcFUsUEdlPWcoKCk9PntwVT1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV19KTt2YXIgaFUsSUdlPWcoKCk9PntoVT1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXX0pO3ZhciBmVSxBR2U9ZygoKT0+e2ZVPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY4In1dLFsicGF0aCIse2Q6Ik0yMiA0djE2In1dXX0pO3ZhciBtVSxOR2U9ZygoKT0+e21VPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV19KTt2YXIgZ1UsUkdlPWcoKCk9PntnVT1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV19KTt2YXIgYlUsT0dlPWcoKCk9PntiVT1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNMi4zNTQgMTAuMzU0YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMi4wNi0yLjA2QTIgMiAwIDAgMSA1LjgyOCA2aDEyLjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2bDIuMDYgMi4wNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4bC0yLjA2IDIuMDZhMiAyIDAgMCAxLTEuNDE0LjU4Nkg1LjgyOGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIHZVLEZHZT1nKCgpPT57dlU9W1sicGF0aCIse2Q6Ik03IDE4di02YTUgNSAwIDEgMSAxMCAwdjYifV0sWyJwYXRoIix7ZDoiTTUgMjFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTguNSA0LjUgMTggNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0xMiAydjEifV0sWyJwYXRoIix7ZDoibTQuOTI5IDQuOTI5LjcwNy43MDcifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV1dfSk7dmFyIHhVLEJHZT1nKCgpPT57eFU9W1sicGF0aCIse2Q6Ik0xNy45NzEgNC4yODVBMiAyIDAgMCAxIDIxIDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgMjBWNCJ9XV19KTt2YXIgeVUsSEdlPWcoKCk9Pnt5VT1bWyJwYXRoIix7ZDoiTTIxIDR2MTYifV0sWyJwYXRoIix7ZDoiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XV19KTt2YXIgd1UscUdlPWcoKCk9Pnt3VT1bWyJwYXRoIix7ZDoibTEyLjUgMTctLjUtMS0uNSAxaDF6In1dLFsicGF0aCIse2Q6Ik0xNSAyMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjB2MWExIDEgMCAwIDAgMSAxeiJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIga1UsakdlPWcoKCk9PntrVT1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgU1UsVkdlPWcoKCk9PntTVT1bWyJwYXRoIix7ZDoiTTEwIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y0In1dLFsicGF0aCIse2Q6Ik0xNiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMSAxMmgtOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLTUifV0sWyJwYXRoIix7ZDoiTTIxIDVoLTcifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNOCAxMkgzIn1dXX0pO3ZhciBfVSxVR2U9ZygoKT0+e19VPVtbInBhdGgiLHtkOiJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQifV1dfSk7dmFyIGE1LFdHZT1nKCgpPT57YTU9W1sicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi05In1dLFsicGF0aCIse2Q6Ik0xMiA4VjMifV0sWyJwYXRoIix7ZDoiTTE3IDE2aDQifV0sWyJwYXRoIix7ZDoiTTE5IDEyVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi01In1dLFsicGF0aCIse2Q6Ik0zIDE0aDQifV0sWyJwYXRoIix7ZDoiTTUgMTBWMyJ9XSxbInBhdGgiLHtkOiJNNSAyMXYtNyJ9XV19KTt2YXIgTVUsR0dlPWcoKCk9PntNVT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyLjY2NyA4IDEwIDEyaDRsLTIuNjY3IDQifV1dfSk7dmFyIHpVLEtHZT1nKCgpPT57elU9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTMgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik0xNi40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XV19KTt2YXIgQ1UsWUdlPWcoKCk9PntDVT1bWyJwYXRoIix7ZDoiTTIyIDExdjFhMTAgMTAgMCAxIDEtOS0xMCJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XV19KTt2YXIgVFUsWkdlPWcoKCk9PntUVT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XV19KTt2YXIgJFUsWEdlPWcoKCk9PnskVT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgRFUsUUdlPWcoKCk9PntEVT1bWyJwYXRoIix7ZDoiTTIgMTNhNiA2IDAgMSAwIDEyIDAgNCA0IDAgMSAwLTggMCAyIDIgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2In1dLFsicGF0aCIse2Q6Ik0xOCAzIDE5LjEgNS4yIn1dLFsicGF0aCIse2Q6Ik0yMiAzIDIwLjkgNS4yIn1dXX0pO3ZhciBMVSxKR2U9ZygoKT0+e0xVPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNmgtNCJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNi41TDE0IDE1In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDQifV1dfSk7dmFyIEVVLGVLZT1nKCgpPT57RVU9W1sicGF0aCIse2Q6Ik0xMC41IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMkg3YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5In1dLFsicGF0aCIse2Q6Ik05LjYwNyAyMUg2YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIDItMmg3VjdhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgUFUsdEtlPWcoKCk9PntQVT1bWyJwYXRoIix7ZDoiTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yIDE2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTQgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgNHY5In1dXX0pO3ZhciBJVSxhS2U9ZygoKT0+e0lVPVtbInBhdGgiLHtkOiJNMTEgMmgyIn1dLFsicGF0aCIse2Q6Im0xNC4yOCAxNC00LjU2IDgifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuNTU4LTRINC41NTgifV0sWyJwYXRoIix7ZDoiTTMgMTB2MiJ9XSxbInBhdGgiLHtkOiJNNi4yNDUgMTUuMDRBMiAyIDAgMCAxIDggMTRoMTJhMSAxIDAgMCAxIC44NjQgMS41MDVsLTMuMTEgNS40NTdBMiAyIDAgMCAxIDE2IDIySDRhMSAxIDAgMCAxLS44NjMtMS41MDZ6In1dLFsicGF0aCIse2Q6Ik03IDJhNCA0IDAgMCAxLTQgNCJ9XSxbInBhdGgiLHtkOiJtOC42NiA3LjY2IDEuNDEgMS40MSJ9XV19KTt2YXIgQVUsc0tlPWcoKCk9PntBVT1bWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTkuNSAxMiAyMiA2In1dLFsicGF0aCIse2Q6Ik0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiJ9XSxbInBhdGgiLHtkOiJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiJ9XV19KTt2YXIgTlUsaUtlPWcoKCk9PntOVT1bWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciBSVSxyS2U9ZygoKT0+e1JVPVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUifV1dfSk7dmFyIE9VLG9LZT1nKCgpPT57T1U9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV1dfSk7dmFyIHM1LG5LZT1nKCgpPT57czU9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV0sWyJwYXRoIix7ZDoiTTIwIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjIgNGgtNCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIEZVLGxLZT1nKCgpPT57RlU9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XV19KTt2YXIgQlUsY0tlPWcoKCk9PntCVT1bWyJwYXRoIix7ZDoiTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCJ9XSxbInBhdGgiLHtkOiJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMifV0sWyJwYXRoIix7ZDoiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSJ9XV19KTt2YXIgSFUsZEtlPWcoKCk9PntIVT1bWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dfSk7dmFyIHFVLHVLZT1nKCgpPT57cVU9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDIxYzEuMSAwIDEuMS0xIDIuMy0xczEuMSAxIDIuMyAxYzEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIn1dXX0pO3ZhciBqVSxwS2U9ZygoKT0+e2pVPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBWVSxoS2U9ZygoKT0+e1ZVPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik01IDE3QTEyIDEyIDAgMCAxIDE3IDUifV1dfSk7dmFyIFVVLGZLZT1nKCgpPT57VVU9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNOCAzSDN2NSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XV19KTt2YXIgV1UsbUtlPWcoKCk9PntXVT1bWyJwYXRoIix7ZDoiTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYifV0sWyJwYXRoIix7ZDoibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4In1dXX0pO3ZhciBHVSxnS2U9ZygoKT0+e0dVPVtbInBhdGgiLHtkOiJtMTUgMTAuNDIgNC44LTUuMDcifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDMifV0sWyJwYXRoIix7ZDoiTTkuNSAyMiAyMS40MTQgOS40MTVBMiAyIDAgMCAwIDIxLjIgNi40bC01LjYxLTQuMjA4QTEgMSAwIDAgMCAxNCAzdjJhMiAyIDAgMCAxLTEuMzk0IDEuOTA2TDguNjc3IDguMDUzQTEgMSAwIDAgMCA4IDljLS4xNTUgNi4zOTMtMi4wODIgOS00IDlhMiAyIDAgMCAwIDAgNGgxNCJ9XV19KTt2YXIgS1UsYktlPWcoKCk9PntLVT1bWyJwYXRoIix7ZDoiTTMgM2guMDEifV0sWyJwYXRoIix7ZDoiTTcgNWguMDEifV0sWyJwYXRoIix7ZDoiTTExIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI0Iix4OiIxNSIseToiNSJ9XSxbInBhdGgiLHtkOiJtMTkgOSAyIDJ2MTBjMCAuNi0uNCAxLTEgMWgtNmMtLjYgMC0xLS40LTEtMVYxMWwyLTIifV0sWyJwYXRoIix7ZDoibTEzIDE0IDgtMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTkgOC0yIn1dXX0pO3ZhciBZVSx2S2U9ZygoKT0+e1lVPVtbInBhdGgiLHtkOiJNMTQgOS41MzZWN2E0IDQgMCAwIDEgNC00aDEuNWEuNS41IDAgMCAxIC41LjVWNWE0IDQgMCAwIDEtNCA0IDQgNCAwIDAgMC00IDRjMCAyIDEgMyAxIDVhNSA1IDAgMCAxLTEgMyJ9XSxbInBhdGgiLHtkOiJNNCA5YTUgNSAwIDAgMSA4IDQgNSA1IDAgMCAxLTgtNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgWlUseEtlPWcoKCk9PntaVT1bWyJwYXRoIix7ZDoiTTE1LjI5NSAxOS41NjIgMTYgMjIifV0sWyJwYXRoIix7ZDoibTE3IDE2IDMuNzU4IDIuMDk4In1dLFsicGF0aCIse2Q6Im0xOSAxMi41IDMuMDI2LS41OTgifV0sWyJwYXRoIix7ZDoiTTcuNjEgNi4zYTMgMyAwIDAgMC0zLjkyIDEuM2wtMS4zOCAyLjc5YTMgMyAwIDAgMCAxLjMgMy45MWw2Ljg5IDMuNTk3YTEgMSAwIDAgMCAxLjM0Mi0uNDQ3bDMuMTA2LTYuMjExYTEgMSAwIDAgMC0uNDQ3LTEuMzQxeiJ9XSxbInBhdGgiLHtkOiJNOCA5VjIifV1dfSk7dmFyIGk1LHlLZT1nKCgpPT57aTU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyJ9XV19KTt2YXIgcjUsd0tlPWcoKCk9PntyNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgOC04IDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2SDhWOCJ9XV19KTt2YXIgbzUsa0tlPWcoKCk9PntvNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtOCA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMTYgOHY4SDgifV1dfSk7dmFyIG41LFNLZT1nKCgpPT57bjU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXX0pO3ZhciBsNSxfS2U9ZygoKT0+e2w1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dfSk7dmFyIGM1LE1LZT1nKCgpPT57YzU9W1sicGF0aCIse2Q6Ik0xMyAyMWg2YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUgzdi02In1dXX0pO3ZhciBkNSx6S2U9ZygoKT0+e2Q1PVtbInBhdGgiLHtkOiJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTIxIDIxLTktOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NmgtNiJ9XV19KTt2YXIgdTUsQ0tlPWcoKCk9Pnt1NT1bWyJwYXRoIix7ZDoiTTEzIDNoNmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi02In1dLFsicGF0aCIse2Q6Im0zIDMgOSA5In1dLFsicGF0aCIse2Q6Ik0zIDlWM2g2In1dXX0pO3ZhciBwNSxUS2U9ZygoKT0+e3A1PVtbInBhdGgiLHtkOiJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDkifV0sWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dXX0pO3ZhciBYVSwkS2U9ZygoKT0+e1hVPVtbInBhdGgiLHtkOiJtMTAgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMyA4VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zIn1dXX0pO3ZhciBRVSxES2U9ZygoKT0+e1FVPVtbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoibTE3IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIxIDYuMzQ0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0xLjM0NCJ9XV19KTt2YXIgaDUsTEtlPWcoKCk9PntoNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dXX0pO3ZhciBmNSxFS2U9ZygoKT0+e2Y1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXX0pO3ZhciBtNSxQS2U9ZygoKT0+e201PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV19KTt2YXIgZzUsSUtlPWcoKCk9PntnNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgYjUsQUtlPWcoKCk9PntiNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXX0pO3ZhciB2NSxOS2U9ZygoKT0+e3Y1PVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciB4NSxSS2U9ZygoKT0+e3g1PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXX0pO3ZhciB5NSxPS2U9ZygoKT0+e3k1PVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBZMCxGS2U9ZygoKT0+e1kwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDhoNyJ9XSxbInBhdGgiLHtkOiJNOCAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg1In1dXX0pO3ZhciB3NSxCS2U9ZygoKT0+e3c1PVtbInBhdGgiLHtkOiJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQifV1dfSk7dmFyIGs1LEhLZT1nKCgpPT57azU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgUzUscUtlPWcoKCk9PntTNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV19KTt2YXIgXzUsaktlPWcoKCk9PntfNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgTTUsVktlPWcoKCk9PntNNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciB6NSxVS2U9ZygoKT0+e3o1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIEM1LFdLZT1nKCgpPT57QzU9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgSlUsR0tlPWcoKCk9PntKVT1bWyJwYXRoIix7ZDoiTTEwIDkuNSA4IDEybDIgMi41In1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Im0xNCA5LjUgMiAyLjUtMiAyLjUifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV1dfSk7dmFyIGVXLEtLZT1nKCgpPT57ZVc9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXX0pO3ZhciBUNSxZS2U9ZygoKT0+e1Q1PVtbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dXX0pO3ZhciAkNSxaS2U9ZygoKT0+eyQ1PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dfSk7dmFyIFowLFhLZT1nKCgpPT57WjA9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dXX0pO3ZhciB0VyxRS2U9ZygoKT0+e3RXPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV19KTt2YXIgRDUsSktlPWcoKCk9PntENT1bWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV1dfSk7dmFyIEw1LGVZZT1nKCgpPT57TDU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgRTUsdFllPWcoKCk9PntFNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dfSk7dmFyIFA1LGFZZT1nKCgpPT57UDU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIEk1LHNZZT1nKCgpPT57STU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMyJ9XSxbInBhdGgiLHtkOiJNOSAxMS4yaDUuNyJ9XV19KTt2YXIgQTUsaVllPWcoKCk9PntBNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMSA3djEwIn1dLFsicGF0aCIse2Q6Im0xNSA3IDIgMTAifV1dfSk7dmFyIE41LHJZZT1nKCgpPT57TjU9W1sicGF0aCIse2Q6Ik04IDE2VjguNWEuNS41IDAgMCAxIC45LS4zbDIuNyAzLjU5OWEuNS41IDAgMCAwIC44IDBsMi43LTMuNmEuNS41IDAgMCAxIC45LjNWMTYifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgUjUsb1llPWcoKCk9PntSNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dXX0pO3ZhciBPNSxuWWU9ZygoKT0+e081PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDhoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTAifV1dfSk7dmFyIEY1LGxZZT1nKCgpPT57RjU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgQjUsY1llPWcoKCk9PntCNT1bWyJwYXRoIix7ZDoiTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6In1dLFsicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XV19KTt2YXIgSDUsZFllPWcoKCk9PntINT1bWyJwYXRoIix7ZDoiTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MSJ9XSxbInBhdGgiLHtkOiJNMyA4LjdWMTlhMiAyIDAgMCAwIDIgMmgxMC4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyIn1dLFsicGF0aCIse2Q6Ik05IDE3di0yLjMifV1dfSk7dmFyIHE1LHVZZT1nKCgpPT57cTU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV19KTt2YXIgVjEscFllPWcoKCk9PntWMT1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTguMzc1IDIuNjI1YTEgMSAwIDAgMSAzIDNsLTkuMDEzIDkuMDE0YTIgMiAwIDAgMS0uODUzLjUwNWwtMi44NzMuODRhLjUuNSAwIDAgMS0uNjItLjYybC44NC0yLjg3M2EyIDIgMCAwIDEgLjUwNi0uODUyeiJ9XV19KTt2YXIgajUsaFllPWcoKCk9PntqNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV19KTt2YXIgYVcsZlllPWcoKCk9PnthVz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgVjUsbVllPWcoKCk9PntWNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aDEwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2EyIDIgMCAwIDEtMi0yVjcifV1dfSk7dmFyIFU1LGdZZT1nKCgpPT57VTU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEySDkuNWEyLjUgMi41IDAgMCAxIDAtNUgxNyJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTYgN3YxMCJ9XV19KTt2YXIgVzUsYlllPWcoKCk9PntXNT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dfSk7dmFyIEc1LHZZZT1nKCgpPT57RzU9W1sicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV1dfSk7dmFyIEs1LHhZZT1nKCgpPT57SzU9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgc1cseVllPWcoKCk9PntzVz1bWyJwYXRoIix7ZDoiTTcgMTJoMmwyIDUgMi0xMGg0In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIGlXLHdZZT1nKCgpPT57aVc9W1sicGF0aCIse2Q6Ik0yMSAxMWE4IDggMCAwIDAtOC04In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBZNSxrWWU9ZygoKT0+e1k1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4LjlWN0g4bDQgNS00IDVoOHYtMS45In1dXX0pO3ZhciBaNSxTWWU9ZygoKT0+e1o1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBYNSxfWWU9ZygoKT0+e1g1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dfSk7dmFyIFE1LE1ZZT1nKCgpPT57UTU9W1sicGF0aCIse2Q6Ik04IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgNWgzYzEgMCAyIDEgMiAydjEwYzAgMS0xIDItMiAyaC0zIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNCIseTI6IjIwIn1dXX0pO3ZhciBKNSx6WWU9ZygoKT0+e0o1PVtbInBhdGgiLHtkOiJNNSA4VjVjMC0xIDEtMiAyLTJoMTBjMSAwIDIgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2M2MwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMnYtMyJ9XSxbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgclcsQ1llPWcoKCk9PntyVz1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgb1csVFllPWcoKCk9PntvVz1bWyJwYXRoIix7ZDoiTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNmMtMS4xIDAtMi0uOS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjE0Iix5OiIxNCIscng6IjIifV1dfSk7dmFyIG5XLCRZZT1nKCgpPT57blc9W1sicGF0aCIse2Q6Ik0xMS4wMzUgNy42OWExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBsVyxEWWU9ZygoKT0+e2xXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXX0pO3ZhciBlOCxMWWU9ZygoKT0+e2U4PVtbInBhdGgiLHtkOiJtNyAxMSAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMSAxM2g0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dXX0pO3ZhciB0OCxFWWU9ZygoKT0+e3Q4PVtbInBhdGgiLHtkOiJNMTggMjFhNiA2IDAgMCAwLTEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBhOCxQWWU9ZygoKT0+e2E4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIHM4LElZZT1nKCgpPT57czg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBjVyxBWWU9ZygoKT0+e2NXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBkVyxOWWU9ZygoKT0+e2RXPVtbInBhdGgiLHtkOiJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIn1dXX0pO3ZhciB1VyxSWWU9ZygoKT0+e3VXPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTQgMmEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmgtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMFY4In1dLFsicGF0aCIse2Q6Ik0yIDRhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMjAgOGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTggMmgyIn1dXX0pO3ZhciBwVyxPWWU9ZygoKT0+e3BXPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV1dfSk7dmFyIGhXLEZZZT1nKCgpPT57aFc9W1sicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoifV1dfSk7dmFyIGZXLEJZZT1nKCgpPT57Zlc9W1sicGF0aCIse2Q6Ik0xMy43NyAzLjA0M2EzNCAzNCAwIDAgMC0zLjU0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjc3MSAyMC45NTZhMzMgMzMgMCAwIDEtMy41NDEuMDAxIn1dLFsicGF0aCIse2Q6Ik0yMC4xOCAxNy43NGMtLjUxIDEuMTUtMS4yOSAxLjkzLTIuNDM5IDIuNDQifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDYuMjU5Yy0uNTEtMS4xNDgtMS4yOTEtMS45MjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNMjAuOTU3IDEwLjIzYTMzIDMzIDAgMCAxIDAgMy41NCJ9XSxbInBhdGgiLHtkOiJNMy4wNDMgMTAuMjNhMzQgMzQgMCAwIDAgLjAwMSAzLjU0MSJ9XSxbInBhdGgiLHtkOiJNNi4yNiAyMC4xNzljLTEuMTUtLjUwOC0xLjkzLTEuMjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNNi4yNiAzLjgyYy0xLjE0OS41MS0xLjkzIDEuMjkxLTIuNDQgMi40NCJ9XV19KTt2YXIgbVcsSFllPWcoKCk9PnttVz1bWyJwYXRoIix7ZDoiTTEyIDNjNy4yIDAgOSAxLjggOSA5cy0xLjggOS05IDktOS0xLjgtOS05IDEuOC05IDktOSJ9XV19KTt2YXIgZ1cscVllPWcoKCk9PntnVz1bWyJwYXRoIix7ZDoiTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCJ9XSxbInBhdGgiLHtkOiJNMTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAifV1dfSk7dmFyIGJXLGpZZT1nKCgpPT57Ylc9W1sicGF0aCIse2Q6Ik0xNCAxM1Y4LjVDMTQgNyAxNSA3IDE1IDVhMyAzIDAgMCAwLTYgMGMwIDIgMSAyIDEgMy41VjEzIn1dLFsicGF0aCIse2Q6Ik0yMCAxNS41YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMTFBMi41IDIuNSAwIDAgMCA0IDE1LjVWMTdhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNSAyMmgxNCJ9XV19KTt2YXIgdlcsVlllPWcoKCk9Pnt2Vz1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dfSk7dmFyIHhXLFVZZT1nKCgpPT57eFc9W1sicGF0aCIse2Q6Im0xMC4zNDQgNC42ODggMS4xODEtMi4zOTNhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy4yMzcgMy4xNTIifV0sWyJwYXRoIix7ZDoibTE3Ljk0NSAxNy45NDUuNDMgMi41MDVhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIgMi4xMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhOCA4IDAgMCAwIC40LS4wOTkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgeVcsV1llPWcoKCk9Pnt5Vz1bWyJwYXRoIix7ZDoiTTExLjUyNSAyLjI5NWEuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyMyAyLjEyMyAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuNzM2IDMuNjM4YTIuMTIzIDIuMTIzIDAgMCAwLS42MTEgMS44NzhsLjg4MiA1LjE0YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyMiAyLjEyMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMjIgMi4xMjIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyMiAyLjEyMiAwIDAgMCAxLjU5Ny0xLjE2eiJ9XV19KTt2YXIgd1csR1llPWcoKCk9Pnt3Vz1bWyJwYXRoIix7ZDoiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMjBWNCJ9XV19KTt2YXIga1csS1llPWcoKCk9PntrVz1bWyJwYXRoIix7ZDoiTTEwLjAyOSA0LjI4NUEyIDIgMCAwIDAgNyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgNHYxNiJ9XV19KTt2YXIgU1csWVllPWcoKCk9PntTVz1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEifV1dfSk7dmFyIF9XLFpZZT1nKCgpPT57X1c9W1sicGF0aCIse2Q6Ik0xMSAydjIifV0sWyJwYXRoIix7ZDoiTTUgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDNINGEyIDIgMCAwIDAtMiAydjRhNiA2IDAgMCAwIDEyIDBWNWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik04IDE1YTYgNiAwIDAgMCAxMiAwdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIE1XLFhZZT1nKCgpPT57TVc9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dXX0pO3ZhciB6VyxRWWU9ZygoKT0+e3pXPVtbInBhdGgiLHtkOiJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCJ9XSxbInBhdGgiLHtkOiJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUifV1dfSk7dmFyIENXLEpZZT1nKCgpPT57Q1c9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiMTQiLHJ4OiIyIn1dXX0pO3ZhciBUVyxlWmU9ZygoKT0+e1RXPVtbInBhdGgiLHtkOiJNMTEuMjY0IDIuMjA1QTQgNCAwIDAgMCA2LjQyIDQuMjExbC00IDhhNCA0IDAgMCAwIDEuMzU5IDUuMTE3bDYgNGE0IDQgMCAwIDAgNC40MzggMGw2LTRhNCA0IDAgMCAwIDEuNTc2LTQuNTkybC0yLTZhNCA0IDAgMCAwLTIuNTMtMi41M3oifV0sWyJwYXRoIix7ZDoiTTExLjk5IDIyIDE0IDEybDcuODIyIDMuMTg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMiA4LjQ3IDIuMzAyIn1dXX0pO3ZhciAkVyx0WmU9ZygoKT0+eyRXPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMjAiLHg6IjE0Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgRFcsYVplPWcoKCk9PntEVz1bWyJwYXRoIix7ZDoiTTE2IDRIOWEzIDMgMCAwIDAtMi44MyA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmE0IDQgMCAwIDEgMCA4SDYifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIExXLHNaZT1nKCgpPT57TFc9W1sicGF0aCIse2Q6Im00IDUgOCA4In1dLFsicGF0aCIse2Q6Im0xMiA1LTggOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcifV1dfSk7dmFyIEVXLGlaZT1nKCgpPT57RVc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyA2LjM0M2guMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyA2LjM0M2guMDEifV1dfSk7dmFyIFBXLHJaZT1nKCgpPT57UFc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDN2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgxIn1dLFsicGF0aCIse2Q6Im0xOC4zNjQgNS42MzYtLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTYuMzQzIDE3LjY1Ny0uNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtNS42MzYgNS42MzYuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtMTcuNjU3IDE3LjY1Ny43MDcuNzA3In1dXX0pO3ZhciBJVyxvWmU9ZygoKT0+e0lXPVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNC44MzcgMTYuMzg1YTYgNiAwIDEgMS03LjIyMy03LjIyMmMuNjI0LS4xNDcuOTcuNjYuNzE1IDEuMjQ4YTQgNCAwIDAgMCA1LjI2IDUuMjU5Yy41ODktLjI1NSAxLjM5Ni4wOSAxLjI0OC43MTUifV0sWyJwYXRoIix7ZDoiTTE2IDEyYTQgNCAwIDAgMC00LTQifV0sWyJwYXRoIix7ZDoibTE5IDUtMS4yNTYgMS4yNTYifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV1dfSk7dmFyIEFXLG5aZT1nKCgpPT57QVc9W1sicGF0aCIse2Q6Ik0xMCAyMXYtMSJ9XSxbInBhdGgiLHtkOiJNMTAgNFYzIn1dLFsicGF0aCIse2Q6Ik0xMCA5YTMgMyAwIDAgMCAwIDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNiAxLjUtM0gyMiJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMSJ9XSxbInBhdGgiLHtkOiJtMjAgMTAtMS41IDIgMS41IDIifV0sWyJwYXRoIix7ZDoibTMuNjQgMTguMzYuNy0uNyJ9XSxbInBhdGgiLHtkOiJtNC4zNCA2LjM0LS43LS43In1dXX0pO3ZhciBOVyxsWmU9ZygoKT0+e05XPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE3LjY2IDE3LjY2IDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV1dfSk7dmFyIFJXLGNaZT1nKCgpPT57Ulc9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dfSk7dmFyIE9XLGRaZT1nKCgpPT57T1c9W1sicGF0aCIse2Q6Ik0xMiAxMFYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDEwLjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyAxMC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThhNCA0IDAgMCAwLTggMCJ9XV19KTt2YXIgRlcsdVplPWcoKCk9PntGVz1bWyJwYXRoIix7ZDoibTQgMTkgOC04In1dLFsicGF0aCIse2Q6Im0xMiAxOS04LTgifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2In1dXX0pO3ZhciBCVyxwWmU9ZygoKT0+e0JXPVtbInBhdGgiLHtkOiJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0gNyAxN2guMDEifV0sWyJwYXRoIix7ZDoibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgifV1dfSk7dmFyIEhXLGhaZT1nKCgpPT57SFc9W1sicGF0aCIse2Q6Ik0xMCAyMVYzaDgifV0sWyJwYXRoIix7ZDoiTTYgMTZoOSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41aDcifV1dfSk7dmFyIHFXLGZaZT1nKCgpPT57cVc9W1sicGF0aCIse2Q6Ik0xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUifV0sWyJwYXRoIix7ZDoiTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJtNiAyIDMgMy0zIDMifV1dfSk7dmFyIGpXLG1aZT1nKCgpPT57alc9W1sicGF0aCIse2Q6Im0xMSAxOS02LTYifV0sWyJwYXRoIix7ZDoibTUgMjEtMi0yIn1dLFsicGF0aCIse2Q6Im04IDE2LTQgNCJ9XSxbInBhdGgiLHtkOiJNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41In1dXX0pO3ZhciBWVyxnWmU9ZygoKT0+e1ZXPVtbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDE3LjUgMyA2IDMgMyA2IDMgMTcuNSAxNC41In1dLFsibGluZSIse3gxOiIxMyIseDI6IjE5Iix5MToiMTkiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMCIseTE6IjE2Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMjEiLHkxOiIyMSIseTI6IjE5In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjE0LjUgNi41IDE4IDMgMjEgMyAyMSA2IDE3LjUgOS41In1dLFsibGluZSIse3gxOiI1Iix4MjoiOSIseTE6IjE0Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjciLHgyOiI0Iix5MToiMTciLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjUiLHkxOiIxOSIseTI6IjIxIn1dXX0pO3ZhciBVVyxiWmU9ZygoKT0+e1VXPVtbInBhdGgiLHtkOiJtMTggMiA0IDQifV0sWyJwYXRoIix7ZDoibTE3IDcgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSA0IDQifV0sWyJwYXRoIix7ZDoibTUgMTktMyAzIn1dLFsicGF0aCIse2Q6Im0xNCA0IDYgNiJ9XV19KTt2YXIgV1csdlplPWcoKCk9PntXVz1bWyJwYXRoIix7ZDoiTTkgM0g1YTIgMiAwIDAgMC0yIDJ2NG02LTZoMTBhMiAyIDAgMCAxIDIgMnY0TTkgM3YxOG0wIDBoMTBhMiAyIDAgMCAwIDItMlY5TTkgMjFINWEyIDIgMCAwIDEtMi0yVjltMCAwaDE4In1dXX0pO3ZhciBHVyx4WmU9ZygoKT0+e0dXPVtbInBhdGgiLHtkOiJNMTIgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDlWMyJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIEtXLHlaZT1nKCgpPT57S1c9W1sicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV19KTt2YXIgWVcsd1plPWcoKCk9PntZVz1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV19KTt2YXIgWlcsa1plPWcoKCk9PntaVz1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgNWguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLjAxIn1dXX0pO3ZhciBYVyxTWmU9ZygoKT0+e1hXPVtbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE1SDMifV1dfSk7dmFyIFFXLF9aZT1nKCgpPT57UVc9W1sicGF0aCIse2Q6Ik0xNCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMTUgMnY0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEwaDIifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDIifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTkgMnY0In1dXX0pO3ZhciBKVyxNWmU9ZygoKT0+e0pXPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dfSk7dmFyIGVHLHpaZT1nKCgpPT57ZUc9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV19KTt2YXIgdEcsQ1plPWcoKCk9Pnt0Rz1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxOCIseTI6IjE4In1dXX0pO3ZhciBhRyxUWmU9ZygoKT0+e2FHPVtbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiNSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxN2gxMCJ9XSxbInBhdGgiLHtkOiJtMy40NiAxMC41NCA3LjA4LTcuMDgifV1dfSk7dmFyIHNHLCRaZT1nKCgpPT57c0c9W1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBpRyxEWmU9ZygoKT0+e2lHPVtbInBhdGgiLHtkOiJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjUiLGN5OiI2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dfSk7dmFyIHJHLExaZT1nKCgpPT57ckc9W1sicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIG9HLEVaZT1nKCgpPT57b0c9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XV19KTt2YXIgbkcsUFplPWcoKCk9PntuRz1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dXX0pO3ZhciBsRyxJWmU9ZygoKT0+e2xHPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV1dfSk7dmFyIGNHLEFaZT1nKCgpPT57Y0c9W1siY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTUuNTkgNS40MSA1LjQxIDE1LjU5In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJzLTQtOS0xLjUtMTEuNVMyMiAxMiAyMiAxMiJ9XV19KTt2YXIgZEcsTlplPWcoKCk9PntkRz1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0djE2In1dLFsicGF0aCIse2Q6Ik0yMiA2IDIgMTgifV1dfSk7dmFyIHVHLFJaZT1nKCgpPT57dUc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgcEcsT1plPWcoKCk9PntwRz1bWyJwYXRoIix7ZDoibTEwLjA2NSAxMi40OTMtNi4xOCAxLjMxOGEuOTM0LjkzNCAwIDAgMS0xLjEwOC0uNzAybC0uNTM3LTIuMTVhMS4wNyAxLjA3IDAgMCAxIC42OTEtMS4yNjVsMTMuNTA0LTQuNDQifV0sWyJwYXRoIix7ZDoibTEzLjU2IDExLjc0NyA0LjMzMi0uOTI0In1dLFsicGF0aCIse2Q6Im0xNiAyMS0zLjEwNS02LjIxIn1dLFsicGF0aCIse2Q6Ik0xNi40ODUgNS45NGEyIDIgMCAwIDEgMS40NTUtMi40MjVsMS4wOS0uMjcyYTEgMSAwIDAgMSAxLjIxMi43MjdsMS41MTUgNi4wNmExIDEgMCAwIDEtLjcyNyAxLjIxM2wtMS4wOS4yNzJhMiAyIDAgMCAxLTIuNDI1LTEuNDU1eiJ9XSxbInBhdGgiLHtkOiJtNi4xNTggOC42MzMgMS4xMTQgNC40NTYifV0sWyJwYXRoIix7ZDoibTggMjEgMy4xMDUtNi4yMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dXX0pO3ZhciBoRyxGWmU9ZygoKT0+e2hHPVtbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNEg3bC01IDhoMjBaIn1dLFsicGF0aCIse2Q6Ik04IDE0djgifV0sWyJwYXRoIix7ZDoibTkgMTQgNSA4In1dXX0pO3ZhciBmRyxCWmU9ZygoKT0+e2ZHPVtbInBhdGgiLHtkOiJNMy41IDIxIDE0IDMifV0sWyJwYXRoIix7ZDoiTTIwLjUgMjEgMTAgMyJ9XSxbInBhdGgiLHtkOiJNMTUuNSAyMSAxMiAxNWwtMy41IDYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV1dfSk7dmFyIG1HLEhaZT1nKCgpPT57bUc9W1sicGF0aCIse2Q6Ik0xMiAxOWg4In1dLFsicGF0aCIse2Q6Im00IDE3IDYtNi02LTYifV1dfSk7dmFyIGk4LHFaZT1nKCgpPT57aTg9W1sicGF0aCIse2Q6Ik0yMSA3IDYuODIgMjEuMThhMi44MyAyLjgzIDAgMCAxLTMuOTktLjAxYTIuODMgMi44MyAwIDAgMSAwLTRMMTcgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoiTTEyIDE2SDQifV1dfSk7dmFyIGdHLGpaZT1nKCgpPT57Z0c9W1sicGF0aCIse2Q6Ik0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dLFsicGF0aCIse2Q6Ik0xNC41IDE2aC01In1dXX0pO3ZhciByOCxWWmU9ZygoKT0+e3I4PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNyAxMkg3In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1In1dXX0pO3ZhciBiRyxVWmU9ZygoKT0+e2JHPVtbInBhdGgiLHtkOiJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNMyAyaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJoNyJ9XSxbInBhdGgiLHtkOiJNOSAxNkg0In1dLFsicGF0aCIse2Q6Ik0yMCAxNmgtNSJ9XV19KTt2YXIgbzgsV1plPWcoKCk9PntvOD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlINyJ9XV19KTt2YXIgbjgsR1plPWcoKCk9PntuOD1bWyJwYXRoIix7ZDoiTTMgNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XV19KTt2YXIgWDAsS1plPWcoKCk9PntYMD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTlIMyJ9XV19KTt2YXIgdkcsWVplPWcoKCk9Pnt2Rz1bWyJwYXRoIix7ZDoiTTEyIDIwaC0xYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxLTIgMkg2In1dLFsicGF0aCIse2Q6Ik0xMyA4aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTcifV0sWyJwYXRoIix7ZDoiTTUgMTZINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNNiA0aDFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTkgNnYxMiJ9XV19KTt2YXIgeEcsWlplPWcoKCk9Pnt4Rz1bWyJwYXRoIix7ZDoiTTE3IDIyaC0xYTQgNCAwIDAgMS00LTRWNmE0IDQgMCAwIDEgNC00aDEifV0sWyJwYXRoIix7ZDoiTTcgMjJoMWE0IDQgMCAwIDAgNC00di0xIn1dLFsicGF0aCIse2Q6Ik03IDJoMWE0IDQgMCAwIDEgNCA0djEifV1dfSk7dmFyIGw4LFhaZT1nKCgpPT57bDg9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV19KTt2YXIgeUcsUVplPWcoKCk9Pnt5Rz1bWyJwYXRoIix7ZDoiTTE3IDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIOCJ9XSxbInBhdGgiLHtkOiJNMyAxMnY3In1dXX0pO3ZhciB3RyxKWmU9ZygoKT0+e3dHPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDE5LTEuOS0xLjkifV1dfSk7dmFyIGM4LGVYZT1nKCgpPT57Yzg9W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dfSk7dmFyIGtHLHRYZT1nKCgpPT57a0c9W1sicGF0aCIse2Q6Ik0yIDEwczMtMyAzLTgifV0sWyJwYXRoIix7ZDoiTTIyIDEwcy0zLTMtMy04In1dLFsicGF0aCIse2Q6Ik0xMCAyYzAgNC40LTMuNiA4LTggOCJ9XSxbInBhdGgiLHtkOiJNMTQgMmMwIDQuNCAzLjYgOCA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTBzMiAyIDIgNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTIgMi0yIDUifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dXX0pO3ZhciBTRyxhWGU9ZygoKT0+e1NHPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoiTTEwLjU4NSAxNUgxMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDIifV1dfSk7dmFyIF9HLHNYZT1nKCgpPT57X0c9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDhhNCA0IDAgMCAwLTEuNjQ1IDcuNjQ3In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV1dfSk7dmFyIE1HLGlYZT1nKCgpPT57TUc9W1sicGF0aCIse2Q6Ik0xNCA0djEwLjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAwWiJ9XV19KTt2YXIgekcsclhlPWcoKCk9Pnt6Rz1bWyJwYXRoIix7ZDoiTTkgMTguMTIgMTAgMTRINC4xN2EyIDIgMCAwIDEtMS45Mi0yLjU2bDIuMzMtOEEyIDIgMCAwIDEgNi41IDJIMjBhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuNzZhMiAyIDAgMCAwLTEuNzkgMS4xMUwxMiAyMmEzLjEzIDMuMTMgMCAwIDEtMy0zLjg4WiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWMiJ9XV19KTt2YXIgQ0csb1hlPWcoKCk9PntDRz1bWyJwYXRoIix7ZDoiTTE1IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43OS0xLjExTDEyIDJhMy4xMyAzLjEzIDAgMCAxIDMgMy44OFoifV0sWyJwYXRoIix7ZDoiTTcgMTB2MTIifV1dfSk7dmFyIFRHLG5YZT1nKCgpPT57VEc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyICRHLGxYZT1nKCgpPT57JEc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dfSk7dmFyIERHLGNYZT1nKCgpPT57REc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBMRyxkWGU9ZygoKT0+e0xHPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIEVHLHVYZT1nKCgpPT57RUc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV1dfSk7dmFyIFBHLHBYZT1nKCgpPT57UEc9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSA5LjUgNSA1In1dXX0pO3ZhciBJRyxoWGU9ZygoKT0+e0lHPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMgNXYyIn1dLFsicGF0aCIse2Q6Ik0xMyAxN3YyIn1dLFsicGF0aCIse2Q6Ik0xMyAxMXYyIn1dXX0pO3ZhciBBRyxmWGU9ZygoKT0+e0FHPVtbInBhdGgiLHtkOiJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIn1dLFsicGF0aCIse2Q6Im0xMiAxMy41IDMuNzk0LjUwNiJ9XSxbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBORyxtWGU9ZygoKT0+e05HPVtbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBSRyxnWGU9ZygoKT0+e1JHPVtbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTQgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik00IDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOS40MTQgMTMuNDE0YTIgMiAwIDAgMCAxLjQxNC41ODZIMTlhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xaC04LjE3MmEyIDIgMCAwIDAtMS40MTQuNTg2TDggMTJ6In1dLFsicGF0aCIse2Q6Ik05LjQxNCAyMS40MTRhMiAyIDAgMCAwIDEuNDE0LjU4NkgxOWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTguMTcyYTIgMiAwIDAgMC0xLjQxNC41ODZMOCAyMHoifV0sWyJwYXRoIix7ZDoiTTkuNDE0IDUuNDE0QTIgMiAwIDAgMCAxMC44MjggNkgxOWExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMWgtOC4xNzJhMiAyIDAgMCAwLTEuNDE0LjU4Nkw4IDR6In1dXX0pO3ZhciBPRyxiWGU9ZygoKT0+e09HPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV19KTt2YXIgRkcsdlhlPWcoKCk9PntGRz1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTQgMTNhOCA4IDAgMCAxIDgtNyA4IDggMCAxIDEtNS4zIDE0TDQgMTcuNiJ9XSxbInBhdGgiLHtkOiJNOSAxN0g0djUifV1dfSk7dmFyIEJHLHhYZT1nKCgpPT57Qkc9W1sibGluZSIse3gxOiIxMCIseDI6IjE0Iix5MToiMiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTUiLHkxOiIxNCIseTI6IjExIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjgifV1dfSk7dmFyIEhHLHlYZT1nKCgpPT57SEc9W1sicGF0aCIse2Q6Ik03IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4In1dLFsicGF0aCIse2Q6Ik04IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4In1dXX0pO3ZhciBxRyx3WGU9ZygoKT0+e3FHPVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiNyJ9XV19KTt2YXIgakcsa1hlPWcoKCk9PntqRz1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXX0pO3ZhciBWRyxTWGU9ZygoKT0+e1ZHPVtbInBhdGgiLHtkOiJNMTAgMTVoNCJ9XSxbInBhdGgiLHtkOiJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyJ9XSxbInBhdGgiLHtkOiJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIn1dLFsicGF0aCIse2Q6Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgVUcsX1hlPWcoKCk9PntVRz1bWyJwYXRoIix7ZDoiTTE2IDEydjQifV0sWyJwYXRoIix7ZDoiTTE2IDZhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0IDRBMiAyIDAgMCAxIDIyIDEydjdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIC41ODYtMS40MTRsNC00QTIgMiAwIDAgMSA4IDZ6In1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTggMTJ2NCJ9XV19KTt2YXIgV0csTVhlPWcoKCk9PntXRz1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTEiLHJ4OiIzIixyeToiMiJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMi41IixyeDoiMTAiLHJ5OiI4LjUifV1dfSk7dmFyIEdHLHpYZT1nKCgpPT57R0c9W1sicGF0aCIse2Q6Ik0xMiAyMHYtNiJ9XSxbInBhdGgiLHtkOiJNMTkuNjU2IDE0SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDEyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTkuNjU2IDRIMjBhMiAyIDAgMCAxIDIgMnYxMC4zNDQifV1dfSk7dmFyIEtHLENYZT1nKCgpPT57S0c9W1sicGF0aCIse2Q6Ik0yMSA0SDMifV0sWyJwYXRoIix7ZDoiTTE4IDhINiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLTYifV0sWyJwYXRoIix7ZDoiTTExIDIwSDkifV1dfSk7dmFyIFlHLFRYZT1nKCgpPT57WUc9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dXX0pO3ZhciBaRywkWGU9ZygoKT0+e1pHPVtbInBhdGgiLHtkOiJNMjIgN2gtMiJ9XSxbInBhdGgiLHtkOiJNNi41IDNoMTFBMi41IDIuNSAwIDAgMSAyMCA1LjVWMjBhMSAxIDAgMCAxLTEgMWgtOWExIDEgMCAwIDEtMS0xVjUuNWExIDEgMCAwIDAtNSAwVjE3YTEgMSAwIDAgMCAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNOSA3SDIifV1dfSk7dmFyIFhHLERYZT1nKCgpPT57WEc9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXX0pO3ZhciBRRyxMWGU9ZygoKT0+e1FHPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBKRyxFWGU9ZygoKT0+e0pHPVtbInBhdGgiLHtkOiJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC01In1dLFsicGF0aCIse2Q6Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMifV0sWyJwYXRoIix7ZDoiTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYifV0sWyJwYXRoIix7ZDoiTTQgMTFWNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTAuMVY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE1IixyOiI1In1dXX0pO3ZhciBlSyxQWGU9ZygoKT0+e2VLPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXX0pO3ZhciB0SyxJWGU9ZygoKT0+e3RLPVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dfSk7dmFyIGFLLEFYZT1nKCgpPT57YUs9W1sicGF0aCIse2Q6Ik04IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xIn1dLFsicGF0aCIse2Q6Im05IDE1LTEtMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgMS0xIn1dLFsicGF0aCIse2Q6Ik05IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaIn1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAzIn1dXX0pO3ZhciBzSyxOWGU9ZygoKT0+e3NLPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXX0pO3ZhciBkOCxSWGU9ZygoKT0+e2Q4PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDExaDE2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xOCAyMi0yLTMifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV1dfSk7dmFyIGlLLE9YZT1nKCgpPT57aUs9W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgckssRlhlPWcoKCk9PntySz1bWyJwYXRoIix7ZDoiTTEwIDExdjYifV0sWyJwYXRoIix7ZDoiTTE0IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBvSyxCWGU9ZygoKT0+e29LPVtbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIG5LLEhYZT1nKCgpPT57bks9W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXX0pO3ZhciB1OCxxWGU9ZygoKT0+e3U4PVtbInBhdGgiLHtkOiJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1In1dLFsicGF0aCIse2Q6Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCJ9XV19KTt2YXIgbEssalhlPWcoKCk9PntsSz1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXX0pO3ZhciBjSyxWWGU9ZygoKT0+e2NLPVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXX0pO3ZhciBkSyxVWGU9ZygoKT0+e2RLPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXX0pO3ZhciB1SyxXWGU9ZygoKT0+e3VLPVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXX0pO3ZhciBwSyxHWGU9ZygoKT0+e3BLPVtbInBhdGgiLHtkOiJNMTYgN2g2djYifV0sWyJwYXRoIix7ZDoibTIyIDctOC41IDguNS01LTVMMiAxNyJ9XV19KTt2YXIgcDgsS1hlPWcoKCk9PntwOD1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgaEssWVhlPWcoKCk9PntoSz1bWyJwYXRoIix7ZDoiTTEwLjE3IDQuMTkzYTIgMiAwIDAgMSAzLjY2Ni4wMTMifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDIifV0sWyJwYXRoIix7ZDoibTE1Ljg3NCA3Ljc0MyAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Im0xOC44NDkgMTIuOTUyIDEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQifV0sWyJwYXRoIix7ZDoiTTQuMDI0IDIxYTIgMiAwIDAgMS0xLjgzOS0yLjgzOSJ9XSxbInBhdGgiLHtkOiJtNS4xMzYgMTIuOTUyLTEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTggMjFoMiJ9XSxbInBhdGgiLHtkOiJtOC4xMDIgNy43NDMtMSAxLjczMiJ9XV19KTt2YXIgZkssWlhlPWcoKCk9PntmSz1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXX0pO3ZhciBtSyxYWGU9ZygoKT0+e21LPVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXX0pO3ZhciBnSyxRWGU9ZygoKT0+e2dLPVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXX0pO3ZhciBiSyxKWGU9ZygoKT0+e2JLPVtbInBhdGgiLHtkOiJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkifV0sWyJwYXRoIix7ZDoiTTE1IDE5SDkifV0sWyJwYXRoIix7ZDoiTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQifV0sWyJwYXRoIix7ZDoiTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIHZLLGVRZT1nKCgpPT57dks9W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciB4Syx0UWU9ZygoKT0+e3hLPVtbInBhdGgiLHtkOiJNMTUgNCA1IDkifV0sWyJwYXRoIix7ZDoibTE1IDguNS0xMCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMifV1dfSk7dmFyIHlLLGFRZT1nKCgpPT57eUs9W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgd0ssc1FlPWcoKCk9Pnt3Sz1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV19KTt2YXIga0ssaVFlPWcoKCk9PntrSz1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIGg4LHJRZT1nKCgpPT57aDg9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIFNLLG9RZT1nKCgpPT57U0s9W1sicGF0aCIse2Q6Im0xNyAyLTUgNS01LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI3IixyeDoiMiJ9XV19KTt2YXIgX0ssblFlPWcoKCk9PntfSz1bWyJwYXRoIix7ZDoiTTE0IDE2LjVhLjUuNSAwIDAgMCAuNS41aC41YTIgMiAwIDAgMSAwIDRIOWEyIDIgMCAwIDEgMC00aC41YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVWOGEyIDIgMCAwIDEtNCAwVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTQgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVaIn1dXX0pO3ZhciBNSyxsUWU9ZygoKT0+e01LPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgekssY1FlPWcoKCk9Pnt6Sz1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dfSk7dmFyIENLLGRRZT1nKCgpPT57Q0s9W1sicGF0aCIse2Q6Ik0xMiAxM3Y3YTIgMiAwIDAgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjAuOTkyIDEzYTEgMSAwIDAgMCAuOTctMS4yNzQgMTAuMjg0IDEwLjI4NCAwIDAgMC0xOS45MjMgMEExIDEgMCAwIDAgMyAxM3oifV1dfSk7dmFyIFRLLHVRZT1nKCgpPT57VEs9W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciAkSyxwUWU9ZygoKT0+eyRLPVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXX0pO3ZhciBESyxoUWU9ZygoKT0+e0RLPVtbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIn1dLFsicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV1dfSk7dmFyIExLLGZRZT1nKCgpPT57TEs9W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXX0pO3ZhciBFSyxtUWU9ZygoKT0+e0VLPVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dfSk7dmFyIFBLLGdRZT1nKCgpPT57UEs9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOFYyIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgNS0zLTMtMyAzIn1dXX0pO3ZhciBmOCxiUWU9ZygoKT0+e2Y4PVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIElLLHZRZT1nKCgpPT57SUs9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjExIix5OiIxNCIscng6IjEifV1dfSk7dmFyIEFLLHhRZT1nKCgpPT57QUs9W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV19KTt2YXIgTksseVFlPWcoKCk9PntOSz1bWyJwYXRoIix7ZDoibTE5IDUgMy0zIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTEyIDYgNiA2IDIuMy0yLjNhMi40IDIuNCAwIDAgMCAwLTMuNGwtMi42LTIuNmEyLjQgMi40IDAgMCAwLTMuNCAwWiJ9XV19KTt2YXIgUkssd1FlPWcoKCk9PntSSz1bWyJwYXRoIix7ZDoibTE4Ljg0IDEyLjI1IDEuNzItMS43MWgtLjAyYTUuMDA0IDUuMDA0IDAgMCAwLS4xMi03LjA3IDUuMDA2IDUuMDA2IDAgMCAwLTYuOTUgMGwtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Im01LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIyIix4MjoiNSIseTE6IjgiLHkyOiI4In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTkiLHkyOiIyMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIE9LLGtRZT1nKCgpPT57T0s9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im0xNyA4LTUtNS01IDUifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV1dfSk7dmFyIEZLLFNRZT1nKCgpPT57Rks9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV19KTt2YXIgQkssX1FlPWcoKCk9PntCSz1bWyJwYXRoIix7ZDoibTE2IDExIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIEhLLE1RZT1nKCgpPT57SEs9W1sicGF0aCIse2Q6Ik0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE2LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTMuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDEyLjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNy43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxMi4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDE4LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxMy44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBxSyx6UWU9ZygoKT0+e3FLPVtbInBhdGgiLHtkOiJNMjAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMyAyMXYtMmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDIuMDcyLjU3OCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgakssQ1FlPWcoKCk9PntqSz1bWyJwYXRoIix7ZDoiTTE5IDE2di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNOS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbInJlY3QiLHt4OiIxMyIseToiMTYiLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIuODk5In1dXX0pO3ZhciBWSyxUUWU9ZygoKT0+e1ZLPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIFVLLCRRZT1nKCgpPT57VUs9W1sicGF0aCIse2Q6Ik0xMS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBXSyxEUWU9ZygoKT0+e1dLPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIxOSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIG04LExRZT1nKCgpPT57bTg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dfSk7dmFyIGc4LEVRZT1nKCgpPT57Zzg9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgR0ssUFFlPWcoKCk9PntHSz1bWyJwYXRoIix7ZDoiTTE5IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDEzaDIifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgYjgsSVFlPWcoKCk9PntiOD1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTloLTYifV1dfSk7dmFyIEtLLEFRZT1nKCgpPT57S0s9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODcifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV1dfSk7dmFyIHY4LE5RZT1nKCgpPT57djg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXX0pO3ZhciBZSyxSUWU9ZygoKT0+e1lLPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuOS0xLjkifV1dfSk7dmFyIHg4LE9RZT1nKCgpPT57eDg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMS44NzMtNyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTctNSA1In1dXX0pO3ZhciB5OCxGUWU9ZygoKT0+e3k4PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTggOCAwIDAgMC0xNiAwIn1dXX0pO3ZhciBaSyxCUWU9ZygoKT0+e1pLPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XV19KTt2YXIgWEssSFFlPWcoKCk9PntYSz1bWyJwYXRoIix7ZDoiTTE2LjA1MSAxMi42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJwYXRoIix7ZDoiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBRSyxxUWU9ZygoKT0+e1FLPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTciLHgyOiIyMiIseTE6IjgiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNyIseTE6IjgiLHkyOiIxMyJ9XV19KTt2YXIgSkssalFlPWcoKCk9PntKSz1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0In1dXX0pO3ZhciB3OCxWUWU9ZygoKT0+e3c4PVtbInBhdGgiLHtkOiJNMTggMjFhOCA4IDAgMCAwLTE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zIn1dXX0pO3ZhciBlWSxVUWU9ZygoKT0+e2VZPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQifV0sWyJwYXRoIix7ZDoiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIGs4LFdRZT1nKCgpPT57azg9W1sicGF0aCIse2Q6Im0xNiAyLTIuMyAyLjNhMyAzIDAgMCAwIDAgNC4ybDEuOCAxLjhhMyAzIDAgMCAwIDQuMiAwTDIyIDgifV0sWyJwYXRoIix7ZDoiTTE1IDE1IDMuMyAzLjNhNC4yIDQuMiAwIDAgMCAwIDZsNy4zIDcuM2MuNy43IDIgLjcgMi44IDBMMTUgMTVabTAgMCA3IDcifV0sWyJwYXRoIix7ZDoibTIuMSAyMS44IDYuNC02LjMifV0sWyJwYXRoIix7ZDoibTE5IDUtNyA3In1dXX0pO3ZhciBTOCxHUWU9ZygoKT0+e1M4PVtbInBhdGgiLHtkOiJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3In1dXX0pO3ZhciB0WSxLUWU9ZygoKT0+e3RZPVtbInBhdGgiLHtkOiJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMiJ9XSxbInBhdGgiLHtkOiJNOSAxOGg1In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBhWSxZUWU9ZygoKT0+e2FZPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik0zIDN2MiJ9XSxbInBhdGgiLHtkOiJNNyAzdjIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInBhdGgiLHtkOiJNMjEgM3YyIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNy03LTcifV1dfSk7dmFyIHNZLFpRZT1nKCgpPT57c1k9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgaVksWFFlPWcoKCk9PntpWT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTcuOSA3LjkgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEwLjYgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgMTYuMSAyLjctMi43In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEzLjQgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciByWSxRUWU9ZygoKT0+e3JZPVtbInBhdGgiLHtkOiJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAifV0sWyJwYXRoIix7ZDoiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIn1dLFsicGF0aCIse2Q6Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIn1dLFsicmVjdCIse3g6IjE3Iix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMTciLHk6IjIiLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgb1ksSlFlPWcoKCk9PntvWT1bWyJwYXRoIix7ZDoiTTE2IDhxNiAwIDYtNi02IDAtNiA2In1dLFsicGF0aCIse2Q6Ik0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCJ9XV19KTt2YXIgblksZUplPWcoKCk9PntuWT1bWyJwYXRoIix7ZDoiTTE4IDExYy0xLjUgMC0yLjUuNS0zIDIifV0sWyJwYXRoIix7ZDoiTTQgNmEyIDIgMCAwIDAtMiAydjRhNSA1IDAgMCAwIDUgNSA4IDggMCAwIDEgNSAyIDggOCAwIDAgMSA1LTIgNSA1IDAgMCAwIDUtNVY4YTIgMiAwIDAgMC0yLTJoLTNhOCA4IDAgMCAwLTUgMiA4IDggMCAwIDAtNS0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMWMxLjUgMCAyLjUuNSAzIDIifV1dfSk7dmFyIGxZLHRKZT1nKCgpPT57bFk9W1sicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNyAyaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMi01LjQ2IDUuNDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNSJ9XV19KTt2YXIgY1ksYUplPWcoKCk9PntjWT1bWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjkiLHI6IjYifV1dfSk7dmFyIGRZLHNKZT1nKCgpPT57ZFk9W1sicGF0aCIse2Q6Im0yIDggMiAyLTIgMiAyIDItMiAyIn1dLFsicGF0aCIse2Q6Im0yMiA4LTIgMiAyIDItMiAyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4djEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxMC4zNFY2YzAtLjU1LS40NS0xLTEtMWgtNC4zNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciB1WSxpSmU9ZygoKT0+e3VZPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjUiLHJ4OiIxIn1dXX0pO3ZhciBwWSxySmU9ZygoKT0+e3BZPVtbInBhdGgiLHtkOiJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGhZLG9KZT1nKCgpPT57aFk9W1sicGF0aCIse2Q6Im0xNiAxMyA1LjIyMyAzLjQ4MmEuNS41IDAgMCAwIC43NzctLjQxNlY3Ljg3YS41LjUgMCAwIDAtLjc1Mi0uNDMyTDE2IDEwLjUifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE0IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgZlksbkplPWcoKCk9PntmWT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTQiLHI6IjIifV1dfSk7dmFyIG1ZLGxKZT1nKCgpPT57bVk9W1sicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik0yMSA3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAifV1dfSk7dmFyIGdZLGNKZT1nKCgpPT57Z1k9W1sicGF0aCIse2Q6Ik0xMS4xIDcuMWExNi41NSAxNi41NSAwIDAgMSAxMC45IDQifV0sWyJwYXRoIix7ZDoiTTEyIDEyYTEyLjYgMTIuNiAwIDAgMS04LjcgNSJ9XSxbInBhdGgiLHtkOiJNMTYuOCAxMy42YTE2LjU1IDE2LjU1IDAgMCAxLTkgNy41In1dLFsicGF0aCIse2Q6Ik0yMC43IDE3YTEyLjggMTIuOCAwIDAgMC04LjctNSAxMy4zIDEzLjMgMCAwIDEgMC0xMCJ9XSxbInBhdGgiLHtkOiJNNi4zIDMuOGExNi41NSAxNi41NSAwIDAgMCAxLjkgMTEuNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgYlksZEplPWcoKCk9PntiWT1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjEyIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTIiLHI6IjQifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIxOCIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIHZZLHVKZT1nKCgpPT57dlk9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgMCA2In1dXX0pO3ZhciB4WSxwSmU9ZygoKT0+e3hZPVtbInBhdGgiLHtkOiJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoifV0sWyJwYXRoIix7ZDoiTTE2IDlhNSA1IDAgMCAxIDAgNiJ9XSxbInBhdGgiLHtkOiJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgifV1dfSk7dmFyIHlZLGhKZT1nKCgpPT57eVk9W1sicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCA1LjYzNmE5IDkgMCAwIDEgMS44ODkgOS45NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im03IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEifV0sWyJwYXRoIix7ZDoiTTkuODI4IDQuMTcyQS42ODYuNjg2IDAgMCAxIDExIDQuNjU3di42ODYifV1dfSk7dmFyIHdZLGZKZT1nKCgpPT57d1k9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIga1ksbUplPWcoKCk9PntrWT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dXX0pO3ZhciBTWSxnSmU9ZygoKT0+e1NZPVtbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oifV0sWyJwYXRoIix7ZDoiTTIyIDE5SDIifV1dfSk7dmFyIF9ZLGJKZT1nKCgpPT57X1k9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgMTFoM2MuOCAwIDEuNi4zIDIuMS45bDEuMS45YzEuNiAxLjYgNC4xIDEuNiA1LjcgMGwxLjEtLjljLjUtLjUgMS4zLS45IDIuMS0uOUgyMSJ9XV19KTt2YXIgXzgsdkplPWcoKCk9PntfOD1bWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA3aDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0In1dXX0pO3ZhciBNWSx4SmU9ZygoKT0+e01ZPVtbInBhdGgiLHtkOiJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00In1dXX0pO3ZhciB6WSx5SmU9ZygoKT0+e3pZPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Im05IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjkiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgTTgsd0plPWcoKCk9PntNOD1bWyJwYXRoIix7ZDoibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIn1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJNNSA2djQifV0sWyJwYXRoIix7ZDoiTTE5IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyA4SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC00In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkifV1dfSk7dmFyIENZLGtKZT1nKCgpPT57Q1k9W1sicGF0aCIse2Q6Ik0xNSA0VjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2di0yIn1dLFsicGF0aCIse2Q6Ik04IDloMiJ9XSxbInBhdGgiLHtkOiJNMjAgOWgyIn1dLFsicGF0aCIse2Q6Ik0xNy44IDExLjggMTkgMTMifV0sWyJwYXRoIix7ZDoiTTE1IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy44IDYuMiAxOSA1In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNMTIuMiA2LjIgMTEgNSJ9XV19KTt2YXIgVFksU0plPWcoKCk9PntUWT1bWyJwYXRoIix7ZDoiTTE4IDIxVjEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAxLjEzMi0xLjgwM2w3Ljk1LTMuOTc0YTIgMiAwIDAgMSAxLjgzNyAwbDcuOTQ4IDMuOTc0QTIgMiAwIDAgMSAyMiA4eiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV19KTt2YXIgJFksX0plPWcoKCk9PnskWT1bWyJwYXRoIix7ZDoiTTEyIDEwdjIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJtMTYuMTMgNy42Ni0uODEtNC4wNWEyIDIgMCAwIDAtMi0xLjYxaC0yLjY4YTIgMiAwIDAgMC0yIDEuNjFsLS43OCA0LjA1In1dLFsicGF0aCIse2Q6Im03Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXX0pO3ZhciBEWSxNSmU9ZygoKT0+e0RZPVtbInBhdGgiLHtkOiJNMyA2aDMifV0sWyJwYXRoIix7ZDoiTTE3IDZoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIyMCIseDoiMyIseToiMiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMThhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMSAwLTUifV1dfSk7dmFyIExZLHpKZT1nKCgpPT57TFk9W1sicGF0aCIse2Q6Ik0xMiAxMEwxMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiA2TDEyIDEwTDggNiJ9XSxbInBhdGgiLHtkOiJNMiAxNUMyLjYgMTUuNSAzLjIgMTYgNC41IDE2QzcgMTYgNyAxNCA5LjUgMTRDMTIuMSAxNCAxMS45IDE2IDE0LjUgMTZDMTcgMTYgMTcgMTQgMTkuNSAxNEMyMC44IDE0IDIxLjQgMTQuNSAyMiAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMUMyLjYgMjEuNSAzLjIgMjIgNC41IDIyQzcgMjIgNyAyMCA5LjUgMjBDMTIuMSAyMCAxMS45IDIyIDE0LjUgMjJDMTcgMjIgMTcgMjAgMTkuNSAyMEMyMC44IDIwIDIxLjQgMjAuNSAyMiAyMSJ9XV19KTt2YXIgRVksQ0plPWcoKCk9PntFWT1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMiAxNWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXX0pO3ZhciB6OCxUSmU9ZygoKT0+e3o4PVtbInBhdGgiLHtkOiJNMiAxMnEyLjUgMiA1IDB0NSAwIDUgMCA1IDAifV0sWyJwYXRoIix7ZDoiTTIgMTlxMi41IDIgNSAwdDUgMCA1IDAgNSAwIn1dLFsicGF0aCIse2Q6Ik0yIDVxMi41IDIgNSAwdDUgMCA1IDAgNSAwIn1dXX0pO3ZhciBQWSwkSmU9ZygoKT0+e1BZPVtbInBhdGgiLHtkOiJNMTkgNWEyIDIgMCAwIDAtMiAydjExIn1dLFsicGF0aCIse2Q6Ik0yIDE4Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTcgMTNoMTAifV0sWyJwYXRoIix7ZDoiTTcgOWgxMCJ9XSxbInBhdGgiLHtkOiJNOSA1YTIgMiAwIDAgMC0yIDJ2MTEifV1dfSk7dmFyIElZLERKZT1nKCgpPT57SVk9W1sicGF0aCIse2Q6Ik0xMiAycTIgMi41IDAgNXQwIDUgMCA1IDAgNSJ9XSxbInBhdGgiLHtkOiJNMTkgMnEyIDIuNSAwIDV0MCA1IDAgNSAwIDUifV0sWyJwYXRoIix7ZDoiTTUgMnEyIDIuNSAwIDV0MCA1IDAgNSAwIDUifV1dfSk7dmFyIEFZLExKZT1nKCgpPT57QVk9W1sicGF0aCIse2Q6Im0xMC41ODYgNS40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoibTE4LjU4NiAxMy40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTIiLHI6IjIifV1dfSk7dmFyIE5ZLEVKZT1nKCgpPT57Tlk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV1dfSk7dmFyIFJZLFBKZT1nKCgpPT57Ulk9W1sicGF0aCIse2Q6Ik0xNyAxN2gtNWMtMS4wOS0uMDItMS45NC45Mi0yLjUgMS45QTMgMyAwIDEgMSAyLjU3IDE1In1dLFsicGF0aCIse2Q6Ik05IDMuNGE0IDQgMCAwIDEgNi41Mi42NiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEtNS44YTIuNSAyLjUgMCAwIDAgLjA1Ny0yLjA1In1dLFsicGF0aCIse2Q6Ik0yMC4zIDIwLjNhNCA0IDAgMCAxLTIuMy43In1dLFsicGF0aCIse2Q6Ik0xOC42IDEzYTQgNCAwIDAgMSAzLjM1NyAzLjQxNCJ9XSxbInBhdGgiLHtkOiJtMTIgNiAuNiAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIE9ZLElKZT1nKCgpPT57T1k9W1sicGF0aCIse2Q6Ik0xOCAxNi45OGgtNS45OWMtMS4xIDAtMS45NS45NC0yLjQ4IDEuOUE0IDQgMCAwIDEgMiAxN2MuMDEtLjcuMi0xLjQuNTctMiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEzLTUuNzhjLjUzLS45Ny4xLTIuMTgtLjUtMy4xYTQgNCAwIDEgMSA2Ljg5LTQuMDYifV0sWyJwYXRoIix7ZDoibTEyIDYgMy4xMyA1LjczQzE1LjY2IDEyLjcgMTYuOSAxMyAxOCAxM2E0IDQgMCAwIDEgMCA4In1dXX0pO3ZhciBGWSxBSmU9ZygoKT0+e0ZZPVtbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6In1dLFsicGF0aCIse2Q6Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIEJZLE5KZT1nKCgpPT57Qlk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA1IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDhaIn1dXX0pO3ZhciBIWSxSSmU9ZygoKT0+e0hZPVtbInBhdGgiLHtkOiJtMiAyMiAxMC0xMCJ9XSxbInBhdGgiLHtkOiJtMTYgOC0xLjE3IDEuMTcifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NyJ9XSxbInBhdGgiLHtkOiJNMTAuOTEgNS4yNmMuMTUtLjI2LjM0LS41MS41Ni0uNzNMMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAuMjggNC42MiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCJ9XSxbInBhdGgiLHtkOiJNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBxWSxPSmU9ZygoKT0+e3FZPVtbInBhdGgiLHtkOiJNMiAyMiAxNiA4In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XV19KTt2YXIgalksRkplPWcoKCk9PntqWT1bWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMCA5djYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTQgN3Y4In1dLFsicGF0aCIse2Q6Ik0yMiAxN3YxYzAgLjUtLjUgMS0xIDFIM2MtLjUgMC0xLS41LTEtMXYtMSJ9XV19KTt2YXIgVlksQkplPWcoKCk9PntWWT1bWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Ik0yIDcuODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsicGF0aCIse2Q6Ik01IDExLjg1OGExMCAxMCAwIDAgMSAxMS41LTEuNzg1In1dLFsicGF0aCIse2Q6Ik04LjUgMTUuNDI5YTUgNSAwIDAgMSAyLjQxMy0xLjMxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIFVZLEhKZT1nKCgpPT57VVk9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgV1kscUplPWcoKCk9PntXWT1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dXX0pO3ZhciBHWSxqSmU9ZygoKT0+e0dZPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSJ9XSxbInBhdGgiLHtkOiJNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzIn1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMifV0sWyJwYXRoIix7ZDoiTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEtZLFZKZT1nKCgpPT57S1k9W1sicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxMC41LTIuMjIyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2In1dXX0pO3ZhciBZWSxVSmU9ZygoKT0+e1lZPVtbInBhdGgiLHtkOiJNMTEuOTY1IDEwLjEwNXY0TDEzLjUgMTIuNWE1IDUgMCAwIDEgOCAxLjUifV0sWyJwYXRoIix7ZDoiTTExLjk2NSAxNC4xMDVoNCJ9XSxbInBhdGgiLHtkOiJNMTcuOTY1IDE4LjEwNWg0TDIwLjQzIDE5LjcxYTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTIxLjk2NSAyMi4xMDV2LTQifV0sWyJwYXRoIix7ZDoiTTUgMTIuODZhMTAgMTAgMCAwIDEgMy0yLjAzMiJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWguMDEifV1dfSk7dmFyIFpZLFdKZT1nKCgpPT57Wlk9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV1dfSk7dmFyIFhZLEdKZT1nKCgpPT57WFk9W1sicGF0aCIse2Q6Ik0xMCAydjgifV0sWyJwYXRoIix7ZDoiTTEyLjggMjEuNkEyIDIgMCAxIDAgMTQgMThIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMGEyLjUgMi41IDAgMSAxIDIgNEgyIn1dLFsicGF0aCIse2Q6Im02IDYgNCA0IDQtNCJ9XV19KTt2YXIgUVksS0plPWcoKCk9PntRWT1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgSlksWUplPWcoKCk9PntKWT1bWyJwYXRoIix7ZDoiTTEyLjggMTkuNkEyIDIgMCAxIDAgMTQgMTZIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSA4YTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoiTTkuOCA0LjRBMiAyIDAgMSAxIDExIDhIMiJ9XV19KTt2YXIgZVosWkplPWcoKCk9PntlWj1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgzbTcgMGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTcuMzA3IDcuMzA3QTEyLjMzIDEyLjMzIDAgMCAwIDcgMTBhNSA1IDAgMCAwIDcuMzkxIDQuMzkxTTguNjM4IDIuOTgxQzguNzUgMi42NjggOC44NzIgMi4zNCA5IDJoNmMxLjUgNCAyIDYgMiA4IDAgLjQwNy0uMDUuODA5LS4xNDUgMS4xOTgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgdFosWEplPWcoKCk9Pnt0Wj1bWyJwYXRoIix7ZDoibTE5IDEyLTEuNSAzIn1dLFsicGF0aCIse2Q6Ik0xOS42MyAxOC44MSAyMiAyMCJ9XSxbInBhdGgiLHtkOiJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6In1dXX0pO3ZhciBhWixRSmU9ZygoKT0+e2FaPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0YTIgMiAwIDAgMCAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIxMyIseToiMTMiLHJ4OiIyIn1dXX0pO3ZhciBzWixKSmU9ZygoKT0+e3NaPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIn1dXX0pO3ZhciBpWixlZXQ9ZygoKT0+e2laPVtbInBhdGgiLHtkOiJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6In1dXX0pO3ZhciByWix0ZXQ9ZygoKT0+e3JaPVtbInBhdGgiLHtkOiJNMTggNEg2In1dLFsicGF0aCIse2Q6Ik0xOCA4IDYgMjAifV0sWyJwYXRoIix7ZDoibTYgOCAxMiAxMiJ9XV19KTt2YXIgb1osYWV0PWcoKCk9PntvWj1bWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIn1dXX0pO3ZhciBuWixzZXQ9ZygoKT0+e25aPVtbInBhdGgiLHtkOiJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3In1dLFsicGF0aCIse2Q6Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIn1dLFsicGF0aCIse2Q6Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGxaLGlldD1nKCgpPT57bFo9W1sicGF0aCIse2Q6Ik00IDE0YTEgMSAwIDAgMS0uNzgtMS42M2w5LjktMTAuMmEuNS41IDAgMCAxIC44Ni40NmwtMS45MiA2LjAyQTEgMSAwIDAgMCAxMyAxMGg3YTEgMSAwIDAgMSAuNzggMS42M2wtOS45IDEwLjJhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTR6In1dXX0pO3ZhciBjWixyZXQ9ZygoKT0+e2NaPVtbInBhdGgiLHtkOiJtMiAxMCAyLjQ1Ni0zLjY4NGEuNy43IDAgMCAxIDEuMTA2LS4wMTNsMi4zOSAzLjQxM2EuNy43IDAgMCAwIDEuMDk2LS4wMDFsMi40MDItMy40MzJhLjcuNyAwIDAgMSAxLjA5OCAwbDIuNDAyIDMuNDMyYS43LjcgMCAwIDAgMS4wOTggMGwyLjM4OS0zLjQxM2EuNy43IDAgMCAxIDEuMTA2LjAxM0wyMiAxMCJ9XSxbInBhdGgiLHtkOiJtMiAxOC4wMDIgMi40NTYtMy42ODRhLjcuNyAwIDAgMSAxLjEwNi0uMDEzbDIuMzkgMy40MTNhLjcuNyAwIDAgMCAxLjA5NyAwbDIuNDAyLTMuNDMyYS43LjcgMCAwIDEgMS4wOTggMGwyLjQwMiAzLjQzMmEuNy43IDAgMCAwIDEuMDk4IDBsMi4zODktMy40MTNhLjcuNyAwIDAgMSAxLjEwNi4wMTNMMjIgMTguMDAyIn1dXX0pO3ZhciBkWixvZXQ9ZygoKT0+e2RaPVtbInBhdGgiLHtkOiJNMTIgNy41YTQuNSA0LjUgMCAxIDEgNSA0LjUifV0sWyJwYXRoIix7ZDoiTTcgMTJhNC41IDQuNSAwIDEgMSA1LTQuNVYyMSJ9XV19KTt2YXIgdVosbmV0PWcoKCk9Pnt1Wj1bWyJwYXRoIix7ZDoiTTIxIDE0LjVBOSA2LjUgMCAwIDEgNS41IDE5In1dLFsicGF0aCIse2Q6Ik0zIDkuNUE5IDYuNSAwIDAgMSAxOC41IDUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE0LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiI5LjUiLHI6IjMuNSJ9XV19KTt2YXIgcFosY2V0PWcoKCk9PntwWj1bWyJwYXRoIix7ZDoiTTExIDIxYTMgMyAwIDAgMCAzLTNWNi41YTEgMSAwIDAgMC03IDAifV0sWyJwYXRoIix7ZDoiTTcgMTlWNmEzIDMgMCAwIDAtMy0zaDAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgaFosZGV0PWcoKCk9PntoWj1bWyJwYXRoIix7ZDoiTTE2IDQuNTI1djE0Ljk0OCJ9XSxbInBhdGgiLHtkOiJNMjAgM0ExNyAxNyAwIDAgMSA0IDMifV0sWyJwYXRoIix7ZDoiTTQgMjFhMTcgMTcgMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNOCA0LjUyNXYxNC45NDgifV1dfSk7dmFyIGZaLHVldD1nKCgpPT57Zlo9W1sicGF0aCIse2Q6Ik0xMCAxNmMwLTQtMy00LjUtMy04YTUgNSAwIDAgMSAxMCAwYzAgMy40NjYtMyA2LjE5Ni0zIDEwYTMgMyAwIDAgMCA2IDAifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBtWixwZXQ9ZygoKT0+e21aPVtbInBhdGgiLHtkOiJNMyAxNmg2Ljg1N2MuMTYyLS4wMTIuMTktLjMyMy4wMzgtLjM4YTYgNiAwIDEgMSA0LjIxMiAwYy0uMTUzLjA1Ny0uMTI1LjM2OC4wMzguMzhIMjEifV0sWyJwYXRoIix7ZDoiTTMgMjBoMTgifV1dfSk7dmFyIGdaLGhldD1nKCgpPT57Z1o9W1sicGF0aCIse2Q6Ik0zIDEwQTYuMDYgNi4wNiAwIDAgMSAxMiAxMCBBNi4wNiA2LjA2IDAgMCAwIDIxIDEwIn1dLFsicGF0aCIse2Q6Ik02IDN2MTJhNiA2IDAgMCAwIDEyIDBWMyJ9XV19KTt2YXIgYlosZmV0PWcoKCk9PntiWj1bWyJwYXRoIix7ZDoiTTE5IDIxYTE1IDE1IDAgMCAxIDAtMTgifV0sWyJwYXRoIix7ZDoiTTIwIDEySDQifV0sWyJwYXRoIix7ZDoiTTUgM2ExNSAxNSAwIDAgMSAwIDE4In1dXX0pO3ZhciB2WixtZXQ9ZygoKT0+e3ZaPVtbInBhdGgiLHtkOiJNMTAgMTlWNS41YTEgMSAwIDAgMSA1IDBWMTdhMiAyIDAgMCAwIDIgMmg1bC0zLTMifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJNNSAxOVY1LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNSA1LjVBMi41IDIuNSAwIDAgMCAyLjUgMyJ9XV19KTt2YXIgeFosZ2V0PWcoKCk9Pnt4Wj1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAzIDMgMjEifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIHlaLGJldD1nKCgpPT57eVo9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTUiLHI6IjYifV0sWyJwYXRoIix7ZDoiTTE4IDNBNiA2IDAgMCAxIDYgMyJ9XV19KTt2YXIgd1osdmV0PWcoKCk9Pnt3Wj1bWyJwYXRoIix7ZDoiTTExIDUuNWExIDEgMCAwIDEgNSAwVjE2YTUgNSAwIDAgMCA1IDUifV0sWyJwYXRoIix7ZDoiTTE2IDExLjVhMSAxIDAgMCAxIDUgMFYxNmE1IDUgMCAwIDEtNSA1In1dLFsicGF0aCIse2Q6Ik02IDE5VjZhMyAzIDAgMCAwLTMtM2gwIn1dLFsicGF0aCIse2Q6Ik02IDUuNWExIDEgMCAwIDEgNSAwVjE5In1dXX0pO3ZhciBrWix4ZXQ9ZygoKT0+e2taPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiMTEiLHgyOiIxMSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV19KTt2YXIgU1oseWV0PWcoKCk9PntTWj1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIENkPXt9O3l0KENkLHtBQXJyb3dEb3duOigpPT5oUyxBQXJyb3dVcDooKT0+ZlMsQUxhcmdlU21hbGw6KCk9Pm1TLEFjY2Vzc2liaWxpdHk6KCk9PmdTLEFjdGl2aXR5OigpPT5iUyxBY3Rpdml0eVNxdWFyZTooKT0+aTUsQWlyVmVudDooKT0+dlMsQWlycGxheTooKT0+eFMsQWxhcm1DaGVjazooKT0+eGYsQWxhcm1DbG9jazooKT0+d1MsQWxhcm1DbG9ja0NoZWNrOigpPT54ZixBbGFybUNsb2NrTWludXM6KCk9PnlmLEFsYXJtQ2xvY2tPZmY6KCk9PnlTLEFsYXJtQ2xvY2tQbHVzOigpPT53ZixBbGFybU1pbnVzOigpPT55ZixBbGFybVBsdXM6KCk9PndmLEFsYXJtU21va2U6KCk9PmtTLEFsYnVtOigpPT5TUyxBbGVydENpcmNsZTooKT0+WWYsQWxlcnRPY3RhZ29uOigpPT5QNixBbGVydFRyaWFuZ2xlOigpPT5wOCxBbGlnbkNlbnRlcjooKT0+cjgsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5fUyxBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5NUyxBbGlnbkVuZEhvcml6b250YWw6KCk9PnpTLEFsaWduRW5kVmVydGljYWw6KCk9PlRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PkNTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PiRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+RFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+TFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+RVMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5QUyxBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+SVMsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5SUyxBbGlnbkp1c3RpZnk6KCk9Pm44LEFsaWduTGVmdDooKT0+WDAsQWxpZ25SaWdodDooKT0+bzgsQWxpZ25TdGFydEhvcml6b250YWw6KCk9PkFTLEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+TlMsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Pk9TLEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5GUyxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5CUyxBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+SFMsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PnFTLEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9PmpTLEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+VlMsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+VVMsQW1idWxhbmNlOigpPT5XUyxBbXBlcnNhbmQ6KCk9PktTLEFtcGVyc2FuZHM6KCk9PkdTLEFtcGhvcmE6KCk9PllTLEFuY2hvcjooKT0+WlMsQW5ncnk6KCk9PlhTLEFubm95ZWQ6KCk9PlFTLEFudGVubmE6KCk9PkpTLEFudmlsOigpPT5lXyxBcGVydHVyZTooKT0+dF8sQXBwV2luZG93OigpPT5zXyxBcHBXaW5kb3dNYWM6KCk9PmFfLEFwcGxlOigpPT5yXyxBcmNoaXZlOigpPT5sXyxBcmNoaXZlUmVzdG9yZTooKT0+aV8sQXJjaGl2ZVg6KCk9Pm9fLEFyZWFDaGFydDooKT0+TmYsQXJtY2hhaXI6KCk9Pm5fLEFycm93QmlnRG93bjooKT0+ZF8sQXJyb3dCaWdEb3duRGFzaDooKT0+Y18sQXJyb3dCaWdMZWZ0OigpPT51XyxBcnJvd0JpZ0xlZnREYXNoOigpPT5wXyxBcnJvd0JpZ1JpZ2h0OigpPT5mXyxBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+aF8sQXJyb3dCaWdVcDooKT0+Z18sQXJyb3dCaWdVcERhc2g6KCk9Pm1fLEFycm93RG93bjooKT0+el8sQXJyb3dEb3duMDE6KCk9PmJfLEFycm93RG93bjEwOigpPT52XyxBcnJvd0Rvd25BWjooKT0+a2YsQXJyb3dEb3duQXo6KCk9PmtmLEFycm93RG93bkNpcmNsZTooKT0+WmYsQXJyb3dEb3duRnJvbUxpbmU6KCk9PnhfLEFycm93RG93bkxlZnQ6KCk9PnlfLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5RZixBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+YzUsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+cjUsQXJyb3dEb3duTmFycm93V2lkZTooKT0+d18sQXJyb3dEb3duUmlnaHQ6KCk9PmtfLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+SmYsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5kNSxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+bzUsQXJyb3dEb3duU3F1YXJlOigpPT5uNSxBcnJvd0Rvd25Ub0RvdDooKT0+U18sQXJyb3dEb3duVG9MaW5lOigpPT5NXyxBcnJvd0Rvd25VcDooKT0+X18sQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+U2YsQXJyb3dEb3duWkE6KCk9Pl9mLEFycm93RG93blphOigpPT5fZixBcnJvd0xlZnQ6KCk9PkxfLEFycm93TGVmdENpcmNsZTooKT0+WGYsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PkNfLEFycm93TGVmdFJpZ2h0OigpPT5UXyxBcnJvd0xlZnRTcXVhcmU6KCk9Pmw1LEFycm93TGVmdFRvTGluZTooKT0+JF8sQXJyb3dSaWdodDooKT0+SV8sQXJyb3dSaWdodENpcmNsZTooKT0+YW0sQXJyb3dSaWdodEZyb21MaW5lOigpPT5EXyxBcnJvd1JpZ2h0TGVmdDooKT0+RV8sQXJyb3dSaWdodFNxdWFyZTooKT0+aDUsQXJyb3dSaWdodFRvTGluZTooKT0+UF8sQXJyb3dVcDooKT0+Vl8sQXJyb3dVcDAxOigpPT5OXyxBcnJvd1VwMTA6KCk9PkFfLEFycm93VXBBWjooKT0+TWYsQXJyb3dVcEF6OigpPT5NZixBcnJvd1VwQ2lyY2xlOigpPT5zbSxBcnJvd1VwRG93bjooKT0+Ul8sQXJyb3dVcEZyb21Eb3Q6KCk9Pk9fLEFycm93VXBGcm9tTGluZTooKT0+Rl8sQXJyb3dVcExlZnQ6KCk9PkJfLEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+ZW0sQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT51NSxBcnJvd1VwTGVmdFNxdWFyZTooKT0+ZjUsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PnpmLEFycm93VXBSaWdodDooKT0+SF8sQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+dG0sQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+cDUsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT5tNSxBcnJvd1VwU3F1YXJlOigpPT5nNSxBcnJvd1VwVG9MaW5lOigpPT5qXyxBcnJvd1VwV2lkZU5hcnJvdzooKT0+cV8sQXJyb3dVcFpBOigpPT5DZixBcnJvd1VwWmE6KCk9PkNmLEFycm93c1VwRnJvbUxpbmU6KCk9PldfLEFzdGVyaXNrOigpPT5VXyxBc3Rlcmlza1NxdWFyZTooKT0+YjUsQXN0cm9pZDooKT0+R18sQXRTaWduOigpPT5LXyxBdG9tOigpPT5ZXyxBdWRpb0xpbmVzOigpPT5aXyxBdWRpb1dhdmVmb3JtOigpPT5YXyxBd2FyZDooKT0+UV8sQXhlOigpPT5KXyxBeGlzM0Q6KCk9PlRmLEF4aXMzZDooKT0+VGYsQmFieTooKT0+ZU0sQmFja3BhY2s6KCk9PnRNLEJhZGdlOigpPT5iTSxCYWRnZUFsZXJ0OigpPT5hTSxCYWRnZUNlbnQ6KCk9PnNNLEJhZGdlQ2hlY2s6KCk9PiRmLEJhZGdlRG9sbGFyU2lnbjooKT0+aU0sQmFkZ2VFdXJvOigpPT5yTSxCYWRnZUhlbHA6KCk9PkRmLEJhZGdlSW5kaWFuUnVwZWU6KCk9Pm9NLEJhZGdlSW5mbzooKT0+bk0sQmFkZ2VKYXBhbmVzZVllbjooKT0+bE0sQmFkZ2VNaW51czooKT0+Y00sQmFkZ2VQZXJjZW50OigpPT5kTSxCYWRnZVBsdXM6KCk9PnVNLEJhZGdlUG91bmRTdGVybGluZzooKT0+cE0sQmFkZ2VRdWVzdGlvbk1hcms6KCk9PkRmLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5mTSxCYWRnZVN3aXNzRnJhbmM6KCk9PmhNLEJhZGdlVHVya2lzaExpcmE6KCk9Pm1NLEJhZGdlWDooKT0+Z00sQmFnZ2FnZUNsYWltOigpPT52TSxCYWxsb29uOigpPT55TSxCYW46KCk9PnhNLEJhbmFuYTooKT0+d00sQmFuZGFnZTooKT0+a00sQmFua25vdGU6KCk9PnpNLEJhbmtub3RlQXJyb3dEb3duOigpPT5fTSxCYW5rbm90ZUFycm93VXA6KCk9PlNNLEJhbmtub3RlWDooKT0+TU0sQmFyQ2hhcnQ6KCk9PlZmLEJhckNoYXJ0MjooKT0+VWYsQmFyQ2hhcnQzOigpPT5xZixCYXJDaGFydDQ6KCk9PkhmLEJhckNoYXJ0QmlnOigpPT5CZixCYXJDaGFydEhvcml6b250YWw6KCk9Pk9mLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+UmYsQmFyY29kZTooKT0+Q00sQmFycmVsOigpPT5UTSxCYXNlbGluZTooKT0+JE0sQmF0aDooKT0+RE0sQmF0dGVyeTooKT0+Uk0sQmF0dGVyeUNoYXJnaW5nOigpPT5MTSxCYXR0ZXJ5RnVsbDooKT0+RU0sQmF0dGVyeUxvdzooKT0+UE0sQmF0dGVyeU1lZGl1bTooKT0+SU0sQmF0dGVyeVBsdXM6KCk9PkFNLEJhdHRlcnlXYXJuaW5nOigpPT5OTSxCZWFrZXI6KCk9PkZNLEJlYW46KCk9PkhNLEJlYW5PZmY6KCk9Pk9NLEJlZDooKT0+Vk0sQmVkRG91YmxlOigpPT5CTSxCZWRTaW5nbGU6KCk9PnFNLEJlZWY6KCk9PlVNLEJlZWZPZmY6KCk9PmpNLEJlZXI6KCk9PkdNLEJlZXJPZmY6KCk9PldNLEJlbGw6KCk9PnR6LEJlbGxDaGVjazooKT0+S00sQmVsbERvdDooKT0+WU0sQmVsbEVsZWN0cmljOigpPT5aTSxCZWxsTWludXM6KCk9PlFNLEJlbGxPZmY6KCk9PlhNLEJlbGxQbHVzOigpPT5KTSxCZWxsUmluZzooKT0+ZXosQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT5FZixCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+RWYsQmV0d2VlblZlcnRpY2FsRW5kOigpPT5heixCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+c3osQmljZXBzRmxleGVkOigpPT5peixCaWtlOigpPT5yeixCaW5hcnk6KCk9Pm96LEJpbm9jdWxhcnM6KCk9Pm56LEJpb2hhemFyZDooKT0+bHosQmlyZDooKT0+Y3osQmlyZGhvdXNlOigpPT5keixCaXRjb2luOigpPT51eixCbGVuZDooKT0+cHosQmxpbmRzOigpPT5oeixCbG9ja3M6KCk9PmZ6LEJsdWV0b290aDooKT0+YnosQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT5teixCbHVldG9vdGhPZmY6KCk9Pmd6LEJsdWV0b290aFNlYXJjaGluZzooKT0+dnosQm9sZDooKT0+eHosQm9sdDooKT0+d3osQm9tYjooKT0+eXosQm9uZTooKT0+a3osQm9vazooKT0+R3osQm9va0E6KCk9PlN6LEJvb2tBbGVydDooKT0+X3osQm9va0F1ZGlvOigpPT5NeixCb29rQ2hlY2s6KCk9Pnp6LEJvb2tDb3B5OigpPT5DeixCb29rRGFzaGVkOigpPT5QZixCb29rRG93bjooKT0+VHosQm9va0hlYWRwaG9uZXM6KCk9PiR6LEJvb2tIZWFydDooKT0+RHosQm9va0ltYWdlOigpPT5MeixCb29rS2V5OigpPT5FeixCb29rTG9jazooKT0+SXosQm9va01hcmtlZDooKT0+UHosQm9va01pbnVzOigpPT5BeixCb29rT3BlbjooKT0+RnosQm9va09wZW5DaGVjazooKT0+TnosQm9va09wZW5UZXh0OigpPT5SeixCb29rUGx1czooKT0+QnosQm9va1NlYXJjaDooKT0+T3osQm9va1RlbXBsYXRlOigpPT5QZixCb29rVGV4dDooKT0+SHosQm9va1R5cGU6KCk9PlZ6LEJvb2tVcDooKT0+anosQm9va1VwMjooKT0+cXosQm9va1VzZXI6KCk9PlV6LEJvb2tYOigpPT5XeixCb29rbWFyazooKT0+SnosQm9va21hcmtDaGVjazooKT0+S3osQm9va21hcmtNaW51czooKT0+WXosQm9va21hcmtPZmY6KCk9Plp6LEJvb2ttYXJrUGx1czooKT0+WHosQm9va21hcmtYOigpPT5ReixCb29tQm94OigpPT5lQyxCb3Q6KCk9PnNDLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnRDLEJvdE9mZjooKT0+YUMsQm90dGxlV2luZTooKT0+ckMsQm93QXJyb3c6KCk9PmlDLEJveDooKT0+b0MsQm94U2VsZWN0OigpPT5ENSxCb3hlczooKT0+bkMsQnJhY2VzOigpPT5JZixCcmFja2V0czooKT0+bEMsQnJhaW46KCk9PnBDLEJyYWluQ2lyY3VpdDooKT0+Y0MsQnJhaW5Db2c6KCk9PmRDLEJyaWNrV2FsbDooKT0+ZkMsQnJpY2tXYWxsRmlyZTooKT0+dUMsQnJpY2tXYWxsU2hpZWxkOigpPT5oQyxCcmllZmNhc2U6KCk9PnZDLEJyaWVmY2FzZUJ1c2luZXNzOigpPT5tQyxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PmdDLEJyaWVmY2FzZU1lZGljYWw6KCk9PmJDLEJyaW5nVG9Gcm9udDooKT0+eEMsQnJ1c2g6KCk9PndDLEJydXNoQ2xlYW5pbmc6KCk9PnlDLEJ1YmJsZXM6KCk9PlNDLEJ1ZzooKT0+TUMsQnVnT2ZmOigpPT5rQyxCdWdQbGF5OigpPT5fQyxCdWlsZGluZzooKT0+ekMsQnVpbGRpbmcyOigpPT5DQyxCdXM6KCk9PiRDLEJ1c0Zyb250OigpPT5UQyxDYWJsZTooKT0+REMsQ2FibGVDYXI6KCk9PkxDLENha2U6KCk9PlBDLENha2VTbGljZTooKT0+RUMsQ2FsY3VsYXRvcjooKT0+QUMsQ2FsZW5kYXI6KCk9PnRULENhbGVuZGFyMTooKT0+SUMsQ2FsZW5kYXJBcnJvd0Rvd246KCk9Pk5DLENhbGVuZGFyQXJyb3dVcDooKT0+UkMsQ2FsZW5kYXJDaGVjazooKT0+RkMsQ2FsZW5kYXJDaGVjazI6KCk9Pk9DLENhbGVuZGFyQ2xvY2s6KCk9PkJDLENhbGVuZGFyQ29nOigpPT5IQyxDYWxlbmRhckRheXM6KCk9PnFDLENhbGVuZGFyRm9sZDooKT0+akMsQ2FsZW5kYXJIZWFydDooKT0+VUMsQ2FsZW5kYXJNaW51czooKT0+R0MsQ2FsZW5kYXJNaW51czI6KCk9PlZDLENhbGVuZGFyT2ZmOigpPT5XQyxDYWxlbmRhclBsdXM6KCk9PlpDLENhbGVuZGFyUGx1czI6KCk9PktDLENhbGVuZGFyUmFuZ2U6KCk9PllDLENhbGVuZGFyU2VhcmNoOigpPT5YQyxDYWxlbmRhclN5bmM6KCk9PlFDLENhbGVuZGFyWDooKT0+ZVQsQ2FsZW5kYXJYMjooKT0+SkMsQ2FsZW5kYXJzOigpPT5hVCxDYW1lcmE6KCk9PmlULENhbWVyYU9mZjooKT0+c1QsQ2FuZGxlc3RpY2tDaGFydDooKT0+RmYsQ2FuZHk6KCk9Pm9ULENhbmR5Q2FuZTooKT0+clQsQ2FuZHlPZmY6KCk9Pm5ULENhbm5hYmlzOigpPT5jVCxDYW5uYWJpc09mZjooKT0+bFQsQ2FwdGlvbnM6KCk9PkFmLENhcHRpb25zT2ZmOigpPT5kVCxDYXI6KCk9PnBULENhckZyb250OigpPT51VCxDYXJUYXhpRnJvbnQ6KCk9PmhULENhcmF2YW46KCk9PmZULENhcmRTaW06KCk9Pm1ULENhcnJvdDooKT0+Z1QsQ2FzZUxvd2VyOigpPT5iVCxDYXNlU2Vuc2l0aXZlOigpPT52VCxDYXNlVXBwZXI6KCk9PnhULENhc3NldHRlVGFwZTooKT0+eVQsQ2FzdDooKT0+d1QsQ2FzdGxlOigpPT5rVCxDYXQ6KCk9PlNULENjdHY6KCk9Pk1ULENjdHZPZmY6KCk9Pl9ULENoYXJ0QXJlYTooKT0+TmYsQ2hhcnRCYXI6KCk9Pk9mLENoYXJ0QmFyQmlnOigpPT5SZixDaGFydEJhckRlY3JlYXNpbmc6KCk9PnpULENoYXJ0QmFySW5jcmVhc2luZzooKT0+Q1QsQ2hhcnRCYXJTdGFja2VkOigpPT5UVCxDaGFydENhbmRsZXN0aWNrOigpPT5GZixDaGFydENvbHVtbjooKT0+cWYsQ2hhcnRDb2x1bW5CaWc6KCk9PkJmLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+JFQsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5IZixDaGFydENvbHVtblN0YWNrZWQ6KCk9PkRULENoYXJ0R2FudHQ6KCk9PkxULENoYXJ0TGluZTooKT0+amYsQ2hhcnROZXR3b3JrOigpPT5FVCxDaGFydE5vQXhlc0NvbHVtbjooKT0+VWYsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5QVCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9PlZmLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PklULENoYXJ0Tm9BeGVzR2FudHQ6KCk9PldmLENoYXJ0UGllOigpPT5HZixDaGFydFNjYXR0ZXI6KCk9PktmLENoYXJ0U3BsaW5lOigpPT5BVCxDaGVjazooKT0+T1QsQ2hlY2tDaGVjazooKT0+TlQsQ2hlY2tDaXJjbGU6KCk9PmltLENoZWNrQ2lyY2xlMjooKT0+cm0sQ2hlY2tMaW5lOigpPT5SVCxDaGVja1NxdWFyZTooKT0+dzUsQ2hlY2tTcXVhcmUyOigpPT5rNSxDaGVmSGF0OigpPT5GVCxDaGVycnk6KCk9PkJULENoZXNzQmlzaG9wOigpPT5xVCxDaGVzc0tpbmc6KCk9PkhULENoZXNzS25pZ2h0OigpPT5qVCxDaGVzc1Bhd246KCk9PlZULENoZXNzUXVlZW46KCk9PkdULENoZXNzUm9vazooKT0+VVQsQ2hldnJvbkRvd246KCk9PldULENoZXZyb25Eb3duQ2lyY2xlOigpPT5ubSxDaGV2cm9uRG93blNxdWFyZTooKT0+UzUsQ2hldnJvbkZpcnN0OigpPT5LVCxDaGV2cm9uTGFzdDooKT0+WVQsQ2hldnJvbkxlZnQ6KCk9PlpULENoZXZyb25MZWZ0Q2lyY2xlOigpPT5vbSxDaGV2cm9uTGVmdFNxdWFyZTooKT0+XzUsQ2hldnJvblJpZ2h0OigpPT5YVCxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmxtLENoZXZyb25SaWdodFNxdWFyZTooKT0+TTUsQ2hldnJvblVwOigpPT5RVCxDaGV2cm9uVXBDaXJjbGU6KCk9PmNtLENoZXZyb25VcFNxdWFyZTooKT0+ejUsQ2hldnJvbnNEb3duOigpPT5lJCxDaGV2cm9uc0Rvd25VcDooKT0+SlQsQ2hldnJvbnNMZWZ0OigpPT5zJCxDaGV2cm9uc0xlZnRSaWdodDooKT0+YSQsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+dCQsQ2hldnJvbnNSaWdodDooKT0+ciQsQ2hldnJvbnNSaWdodExlZnQ6KCk9PmkkLENoZXZyb25zVXA6KCk9Pm8kLENoZXZyb25zVXBEb3duOigpPT5uJCxDaHVyY2g6KCk9PmwkLENpZ2FyZXR0ZTooKT0+ZCQsQ2lnYXJldHRlT2ZmOigpPT5jJCxDaXJjbGU6KCk9Pk0kLENpcmNsZUFsZXJ0OigpPT5ZZixDaXJjbGVBcnJvd0Rvd246KCk9PlpmLENpcmNsZUFycm93TGVmdDooKT0+WGYsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+UWYsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PkpmLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5lbSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PnRtLENpcmNsZUFycm93UmlnaHQ6KCk9PmFtLENpcmNsZUFycm93VXA6KCk9PnNtLENpcmNsZUNoZWNrOigpPT5ybSxDaXJjbGVDaGVja0JpZzooKT0+aW0sQ2lyY2xlQ2hldnJvbkRvd246KCk9Pm5tLENpcmNsZUNoZXZyb25MZWZ0OigpPT5vbSxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmxtLENpcmNsZUNoZXZyb25VcDooKT0+Y20sQ2lyY2xlRGFzaGVkOigpPT51JCxDaXJjbGVEaXZpZGU6KCk9PmRtLENpcmNsZURvbGxhclNpZ246KCk9PnAkLENpcmNsZURvdDooKT0+bSQsQ2lyY2xlRG90RGFzaGVkOigpPT5oJCxDaXJjbGVFbGxpcHNpczooKT0+ZiQsQ2lyY2xlRXF1YWw6KCk9PmckLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PmIkLENpcmNsZUZhZGluZ1BsdXM6KCk9PnYkLENpcmNsZUdhdWdlOigpPT51bSxDaXJjbGVIZWxwOigpPT5qMCxDaXJjbGVNaW51czooKT0+cG0sQ2lyY2xlT2ZmOigpPT54JCxDaXJjbGVQYXJraW5nOigpPT5mbSxDaXJjbGVQYXJraW5nT2ZmOigpPT5obSxDaXJjbGVQYXVzZTooKT0+bW0sQ2lyY2xlUGVyY2VudDooKT0+Z20sQ2lyY2xlUGlsZTooKT0+eSQsQ2lyY2xlUGxheTooKT0+Ym0sQ2lyY2xlUGx1czooKT0+dm0sQ2lyY2xlUG91bmRTdGVybGluZzooKT0+dyQsQ2lyY2xlUG93ZXI6KCk9PnhtLENpcmNsZVF1ZXN0aW9uTWFyazooKT0+ajAsQ2lyY2xlU2xhc2g6KCk9PmskLENpcmNsZVNsYXNoMjooKT0+eW0sQ2lyY2xlU2xhc2hlZDooKT0+eW0sQ2lyY2xlU21hbGw6KCk9PlMkLENpcmNsZVN0YXI6KCk9Pl8kLENpcmNsZVN0b3A6KCk9PndtLENpcmNsZVVzZXI6KCk9PlNtLENpcmNsZVVzZXJSb3VuZDooKT0+a20sQ2lyY2xlWDooKT0+X20sQ2lyY3VpdEJvYXJkOigpPT56JCxDaXRydXM6KCk9PkMkLENsYXBwZXJib2FyZDooKT0+VCQsQ2xpcGJvYXJkOigpPT5GJCxDbGlwYm9hcmRDaGVjazooKT0+JCQsQ2xpcGJvYXJkQ2xvY2s6KCk9PkQkLENsaXBib2FyZENvcHk6KCk9PkwkLENsaXBib2FyZEVkaXQ6KCk9PnptLENsaXBib2FyZExpc3Q6KCk9PkUkLENsaXBib2FyZE1pbnVzOigpPT5QJCxDbGlwYm9hcmRQYXN0ZTooKT0+SSQsQ2xpcGJvYXJkUGVuOigpPT56bSxDbGlwYm9hcmRQZW5MaW5lOigpPT5NbSxDbGlwYm9hcmRQbHVzOigpPT5BJCxDbGlwYm9hcmRTaWduYXR1cmU6KCk9Pk1tLENsaXBib2FyZFR5cGU6KCk9Pk4kLENsaXBib2FyZFg6KCk9PlIkLENsb2NrOigpPT5zRCxDbG9jazE6KCk9Pk8kLENsb2NrMTA6KCk9PkIkLENsb2NrMTE6KCk9PkgkLENsb2NrMTI6KCk9PnEkLENsb2NrMjooKT0+aiQsQ2xvY2szOigpPT5WJCxDbG9jazQ6KCk9PlUkLENsb2NrNTooKT0+VyQsQ2xvY2s2OigpPT5HJCxDbG9jazc6KCk9PlkkLENsb2NrODooKT0+SyQsQ2xvY2s5OigpPT5aJCxDbG9ja0FsZXJ0OigpPT5YJCxDbG9ja0Fycm93RG93bjooKT0+USQsQ2xvY2tBcnJvd1VwOigpPT5KJCxDbG9ja0NoZWNrOigpPT5lRCxDbG9ja0ZhZGluZzooKT0+dEQsQ2xvY2tQbHVzOigpPT5hRCxDbG9zZWRDYXB0aW9uOigpPT5pRCxDbG91ZDooKT0+a0QsQ2xvdWRBbGVydDooKT0+ckQsQ2xvdWRCYWNrdXA6KCk9Pm9ELENsb3VkQ2hlY2s6KCk9Pm5ELENsb3VkQ29nOigpPT5sRCxDbG91ZERvd25sb2FkOigpPT5DbSxDbG91ZERyaXp6bGU6KCk9PmNELENsb3VkRm9nOigpPT51RCxDbG91ZEhhaWw6KCk9PmRELENsb3VkTGlnaHRuaW5nOigpPT5wRCxDbG91ZE1vb246KCk9PmZELENsb3VkTW9vblJhaW46KCk9PmhELENsb3VkT2ZmOigpPT5nRCxDbG91ZFJhaW46KCk9PmJELENsb3VkUmFpbldpbmQ6KCk9Pm1ELENsb3VkU25vdzooKT0+dkQsQ2xvdWRTdW46KCk9PndELENsb3VkU3VuUmFpbjooKT0+eEQsQ2xvdWRTeW5jOigpPT55RCxDbG91ZFVwbG9hZDooKT0+VG0sQ2xvdWR5OigpPT5TRCxDbG92ZXI6KCk9Pl9ELENsdWI6KCk9Pk1ELENvZGU6KCk9PnpELENvZGUyOigpPT4kbSxDb2RlU3F1YXJlOigpPT5DNSxDb2RlWG1sOigpPT4kbSxDb2ZmZWU6KCk9PkNELENvZzooKT0+VEQsQ29pbnM6KCk9PiRELENvbHVtbnM6KCk9PkRtLENvbHVtbnMyOigpPT5EbSxDb2x1bW5zMzooKT0+TG0sQ29sdW1uczNDb2c6KCk9PlYwLENvbHVtbnM0OigpPT5ERCxDb2x1bW5zU2V0dGluZ3M6KCk9PlYwLENvbWJpbmU6KCk9PkxELENvbW1hbmQ6KCk9PkVELENvbXBhc3M6KCk9PlBELENvbXBvbmVudDooKT0+SUQsQ29tcHV0ZXI6KCk9PkFELENvbmNpZXJnZUJlbGw6KCk9Pk5ELENvbmU6KCk9PlJELENvbnN0cnVjdGlvbjooKT0+T0QsQ29udGFjdDooKT0+RkQsQ29udGFjdDI6KCk9PkVtLENvbnRhY3RSb3VuZDooKT0+RW0sQ29udGFpbmVyOigpPT5CRCxDb250cmFzdDooKT0+SEQsQ29va2llOigpPT5xRCxDb29raW5nUG90OigpPT5qRCxDb3B5OigpPT5ZRCxDb3B5Q2hlY2s6KCk9PlZELENvcHlNaW51czooKT0+VUQsQ29weVBsdXM6KCk9PldELENvcHlTbGFzaDooKT0+R0QsQ29weVg6KCk9PktELENvcHlsZWZ0OigpPT5aRCxDb3B5cmlnaHQ6KCk9PlhELENvcm5lckRvd25MZWZ0OigpPT5RRCxDb3JuZXJEb3duUmlnaHQ6KCk9PkpELENvcm5lckxlZnREb3duOigpPT5lTCxDb3JuZXJMZWZ0VXA6KCk9PnRMLENvcm5lclJpZ2h0RG93bjooKT0+YUwsQ29ybmVyUmlnaHRVcDooKT0+c0wsQ29ybmVyVXBMZWZ0OigpPT5pTCxDb3JuZXJVcFJpZ2h0OigpPT5yTCxDcHU6KCk9Pm9MLENyZWF0aXZlQ29tbW9uczooKT0+bkwsQ3JlZGl0Q2FyZDooKT0+bEwsQ3JvaXNzYW50OigpPT5jTCxDcm9wOigpPT5kTCxDcm9zczooKT0+dUwsQ3Jvc3NoYWlyOigpPT5wTCxDcm93bjooKT0+aEwsQ3Vib2lkOigpPT5mTCxDdXBTb2RhOigpPT5tTCxDdXJseUJyYWNlczooKT0+SWYsQ3VycmVuY3k6KCk9PmdMLEN5bGluZGVyOigpPT5iTCxEYW06KCk9PnZMLERhdGFiYXNlOigpPT5rTCxEYXRhYmFzZUJhY2t1cDooKT0+eEwsRGF0YWJhc2VTZWFyY2g6KCk9PndMLERhdGFiYXNlWmFwOigpPT55TCxEZWNpbWFsc0Fycm93TGVmdDooKT0+U0wsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5fTCxEZWxldGU6KCk9Pk1MLERlc3NlcnQ6KCk9PnpMLERpYW1ldGVyOigpPT5DTCxEaWFtb25kOigpPT5ETCxEaWFtb25kTWludXM6KCk9PlRMLERpYW1vbmRQZXJjZW50OigpPT5QbSxEaWFtb25kUGx1czooKT0+JEwsRGljZTE6KCk9PkxMLERpY2UyOigpPT5FTCxEaWNlMzooKT0+UEwsRGljZTQ6KCk9PklMLERpY2U1OigpPT5BTCxEaWNlNjooKT0+TkwsRGljZXM6KCk9Pk9MLERpZmY6KCk9PlJMLERpc2M6KCk9PmpMLERpc2MyOigpPT5GTCxEaXNjMzooKT0+QkwsRGlzY0FsYnVtOigpPT5ITCxEaXZpZGU6KCk9PnFMLERpdmlkZUNpcmNsZTooKT0+ZG0sRGl2aWRlU3F1YXJlOigpPT5FNSxEbmE6KCk9PlVMLERuYU9mZjooKT0+VkwsRG9jazooKT0+V0wsRG9nOigpPT5LTCxEb2xsYXJTaWduOigpPT5HTCxEb251dDooKT0+WUwsRG9vckNsb3NlZDooKT0+WEwsRG9vckNsb3NlZExvY2tlZDooKT0+WkwsRG9vck9wZW46KCk9PlFMLERvdDooKT0+SkwsRG90U3F1YXJlOigpPT5MNSxEb3dubG9hZDooKT0+ZUUsRG93bmxvYWRDbG91ZDooKT0+Q20sRHJhZnRpbmdDb21wYXNzOigpPT50RSxEcmFtYTooKT0+c0UsRHJpbGw6KCk9PmFFLERyb25lOigpPT5pRSxEcm9wbGV0OigpPT5yRSxEcm9wbGV0T2ZmOigpPT5vRSxEcm9wbGV0czooKT0+bkUsRHJ1bTooKT0+bEUsRHJ1bXN0aWNrOigpPT5jRSxEdW1iYmVsbDooKT0+ZEUsRWFyOigpPT5wRSxFYXJPZmY6KCk9PnVFLEVhcnRoOigpPT5JbSxFYXJ0aExvY2s6KCk9PmhFLEVjbGlwc2U6KCk9PmZFLEVkaXQ6KCk9PlYxLEVkaXQyOigpPT5XNixFZGl0MzooKT0+VTYsRWdnOigpPT5nRSxFZ2dGcmllZDooKT0+bUUsRWdnT2ZmOigpPT5iRSxFbGxpcHNlOigpPT52RSxFbGxpcHNpczooKT0+Tm0sRWxsaXBzaXNWZXJ0aWNhbDooKT0+QW0sRXF1YWw6KCk9PndFLEVxdWFsQXBwcm94aW1hdGVseTooKT0+eEUsRXF1YWxOb3Q6KCk9PnlFLEVxdWFsU3F1YXJlOigpPT5QNSxFcmFzZXI6KCk9PmtFLEV0aGVybmV0UG9ydDooKT0+U0UsRXVybzooKT0+X0UsRXZDaGFyZ2VyOigpPT5NRSxFeHBhbmQ6KCk9PnpFLEV4dGVybmFsTGluazooKT0+Q0UsRXllOigpPT5ERSxFeWVDbG9zZWQ6KCk9PlRFLEV5ZU9mZjooKT0+JEUsRmFjdG9yeTooKT0+TEUsRmFuOigpPT5FRSxGYXN0Rm9yd2FyZDooKT0+UEUsRmVhdGhlcjooKT0+SUUsRmVuY2U6KCk9Pk5FLEZlcnJpc1doZWVsOigpPT5BRSxGaWxlOigpPT51UCxGaWxlQXJjaGl2ZTooKT0+UkUsRmlsZUF1ZGlvOigpPT5VMCxGaWxlQXVkaW8yOigpPT5VMCxGaWxlQXhpczNEOigpPT5SbSxGaWxlQXhpczNkOigpPT5SbSxGaWxlQmFkZ2U6KCk9Pk9tLEZpbGVCYWRnZTI6KCk9Pk9tLEZpbGVCYXJDaGFydDooKT0+Qm0sRmlsZUJhckNoYXJ0MjooKT0+cW0sRmlsZUJveDooKT0+T0UsRmlsZUJyYWNlczooKT0+Rm0sRmlsZUJyYWNlc0Nvcm5lcjooKT0+SG0sRmlsZUNoYXJ0Q29sdW1uOigpPT5xbSxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5CbSxGaWxlQ2hhcnRMaW5lOigpPT5qbSxGaWxlQ2hhcnRQaWU6KCk9PlZtLEZpbGVDaGVjazooKT0+RkUsRmlsZUNoZWNrMjooKT0+VW0sRmlsZUNoZWNrQ29ybmVyOigpPT5VbSxGaWxlQ2xvY2s6KCk9PkJFLEZpbGVDb2RlOigpPT5IRSxGaWxlQ29kZTI6KCk9PldtLEZpbGVDb2RlQ29ybmVyOigpPT5XbSxGaWxlQ29nOigpPT5HbSxGaWxlQ29nMjooKT0+R20sRmlsZURpZmY6KCk9PnFFLEZpbGVEaWdpdDooKT0+akUsRmlsZURvd246KCk9PlZFLEZpbGVFZGl0OigpPT5lNixGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+S20sRmlsZUhlYWRwaG9uZTooKT0+VTAsRmlsZUhlYXJ0OigpPT5VRSxGaWxlSW1hZ2U6KCk9PldFLEZpbGVJbnB1dDooKT0+R0UsRmlsZUpzb246KCk9PkZtLEZpbGVKc29uMjooKT0+SG0sRmlsZUtleTooKT0+WW0sRmlsZUtleTI6KCk9PlltLEZpbGVMaW5lQ2hhcnQ6KCk9PmptLEZpbGVMb2NrOigpPT5abSxGaWxlTG9jazI6KCk9PlptLEZpbGVNaW51czooKT0+S0UsRmlsZU1pbnVzMjooKT0+WG0sRmlsZU1pbnVzQ29ybmVyOigpPT5YbSxGaWxlTXVzaWM6KCk9PllFLEZpbGVPdXRwdXQ6KCk9PlpFLEZpbGVQZW46KCk9PmU2LEZpbGVQZW5MaW5lOigpPT5RbSxGaWxlUGllQ2hhcnQ6KCk9PlZtLEZpbGVQbGF5OigpPT5KbSxGaWxlUGx1czooKT0+WEUsRmlsZVBsdXMyOigpPT50NixGaWxlUGx1c0Nvcm5lcjooKT0+dDYsRmlsZVF1ZXN0aW9uOigpPT5hNixGaWxlUXVlc3Rpb25NYXJrOigpPT5hNixGaWxlU2NhbjooKT0+UUUsRmlsZVNlYXJjaDooKT0+SkUsRmlsZVNlYXJjaDI6KCk9PnM2LEZpbGVTZWFyY2hDb3JuZXI6KCk9PnM2LEZpbGVTaWduYWw6KCk9Pmk2LEZpbGVTaWduYXR1cmU6KCk9PlFtLEZpbGVTbGlkZXJzOigpPT5lUCxGaWxlU3ByZWFkc2hlZXQ6KCk9PnRQLEZpbGVTdGFjazooKT0+c1AsRmlsZVN5bWxpbms6KCk9PmFQLEZpbGVUZXJtaW5hbDooKT0+aVAsRmlsZVRleHQ6KCk9PnJQLEZpbGVUeXBlOigpPT5vUCxGaWxlVHlwZTI6KCk9PnI2LEZpbGVUeXBlQ29ybmVyOigpPT5yNixGaWxlVXA6KCk9Pm5QLEZpbGVVc2VyOigpPT5sUCxGaWxlVmlkZW86KCk9PkptLEZpbGVWaWRlbzI6KCk9Pm82LEZpbGVWaWRlb0NhbWVyYTooKT0+bzYsRmlsZVZvbHVtZTooKT0+Y1AsRmlsZVZvbHVtZTI6KCk9Pmk2LEZpbGVXYXJuaW5nOigpPT5LbSxGaWxlWDooKT0+ZFAsRmlsZVgyOigpPT5uNixGaWxlWENvcm5lcjooKT0+bjYsRmlsZXM6KCk9PmhQLEZpbG06KCk9PnBQLEZpbHRlcjooKT0+cDYsRmlsdGVyWDooKT0+dTYsRmluZ2VycHJpbnQ6KCk9Pmw2LEZpbmdlcnByaW50UGF0dGVybjooKT0+bDYsRmlyZUV4dGluZ3Vpc2hlcjooKT0+ZlAsRmlzaDooKT0+YlAsRmlzaE9mZjooKT0+Z1AsRmlzaFN5bWJvbDooKT0+bVAsRmlzaGluZ0hvb2s6KCk9PnZQLEZpc2hpbmdSb2Q6KCk9PnlQLEZsYWc6KCk9PlNQLEZsYWdPZmY6KCk9PnhQLEZsYWdUcmlhbmdsZUxlZnQ6KCk9PndQLEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5rUCxGbGFtZTooKT0+X1AsRmxhbWVLaW5kbGluZzooKT0+elAsRmxhc2hsaWdodDooKT0+Q1AsRmxhc2hsaWdodE9mZjooKT0+TVAsRmxhc2tDb25pY2FsOigpPT4kUCxGbGFza0NvbmljYWxPZmY6KCk9PlRQLEZsYXNrUm91bmQ6KCk9PkRQLEZsaXBIb3Jpem9udGFsOigpPT54NSxGbGlwSG9yaXpvbnRhbDI6KCk9PkxQLEZsaXBWZXJ0aWNhbDooKT0+eTUsRmxpcFZlcnRpY2FsMjooKT0+RVAsRmxvd2VyOigpPT5OUCxGbG93ZXIyOigpPT5QUCxGb2N1czooKT0+SVAsRm9sZEhvcml6b250YWw6KCk9PkFQLEZvbGRWZXJ0aWNhbDooKT0+RlAsRm9sZGVyOigpPT5wSSxGb2xkZXJBcmNoaXZlOigpPT5SUCxGb2xkZXJCb29rbWFyazooKT0+T1AsRm9sZGVyQ2hlY2s6KCk9PkJQLEZvbGRlckNsb2NrOigpPT5qUCxGb2xkZXJDbG9zZWQ6KCk9PkhQLEZvbGRlckNvZGU6KCk9PnFQLEZvbGRlckNvZzooKT0+YzYsRm9sZGVyQ29nMjooKT0+YzYsRm9sZGVyRG90OigpPT5WUCxGb2xkZXJEb3duOigpPT5VUCxGb2xkZXJFZGl0OigpPT5kNixGb2xkZXJHaXQ6KCk9PkdQLEZvbGRlckdpdDI6KCk9PldQLEZvbGRlckhlYXJ0OigpPT5LUCxGb2xkZXJJbnB1dDooKT0+WFAsRm9sZGVyS2FuYmFuOigpPT5ZUCxGb2xkZXJLZXk6KCk9PlpQLEZvbGRlckxvY2s6KCk9PlFQLEZvbGRlck1pbnVzOigpPT50SSxGb2xkZXJPcGVuOigpPT5lSSxGb2xkZXJPcGVuRG90OigpPT5KUCxGb2xkZXJPdXRwdXQ6KCk9PmFJLEZvbGRlclBlbjooKT0+ZDYsRm9sZGVyUGx1czooKT0+c0ksRm9sZGVyUm9vdDooKT0+aUksRm9sZGVyU2VhcmNoOigpPT5vSSxGb2xkZXJTZWFyY2gyOigpPT5ySSxGb2xkZXJTeW1saW5rOigpPT5uSSxGb2xkZXJTeW5jOigpPT5jSSxGb2xkZXJUcmVlOigpPT5sSSxGb2xkZXJVcDooKT0+ZEksRm9sZGVyWDooKT0+dUksRm9sZGVyczooKT0+aEksRm9vdHByaW50czooKT0+ZkksRm9ya0tuaWZlOigpPT5TOCxGb3JrS25pZmVDcm9zc2VkOigpPT5rOCxGb3JrbGlmdDooKT0+bUksRm9ybTooKT0+Z0ksRm9ybUlucHV0OigpPT5LNixGb3J3YXJkOigpPT5iSSxGcmFtZTooKT0+dkksRnJvd246KCk9PnhJLEZ1ZWw6KCk9PnlJLEZ1bGxzY3JlZW46KCk9PndJLEZ1bmN0aW9uU3F1YXJlOigpPT5JNSxGdW5uZWw6KCk9PnA2LEZ1bm5lbFBsdXM6KCk9PmtJLEZ1bm5lbFg6KCk9PnU2LEdhbGxlcnlIb3Jpem9udGFsOigpPT5fSSxHYWxsZXJ5SG9yaXpvbnRhbEVuZDooKT0+U0ksR2FsbGVyeVRodW1ibmFpbHM6KCk9Pk1JLEdhbGxlcnlWZXJ0aWNhbDooKT0+Q0ksR2FsbGVyeVZlcnRpY2FsRW5kOigpPT56SSxHYW1lcGFkOigpPT5ESSxHYW1lcGFkMjooKT0+VEksR2FtZXBhZERpcmVjdGlvbmFsOigpPT4kSSxHYW50dENoYXJ0OigpPT5XZixHYW50dENoYXJ0U3F1YXJlOigpPT5ZMCxHYXVnZTooKT0+TEksR2F1Z2VDaXJjbGU6KCk9PnVtLEdhdmVsOigpPT5FSSxHZW06KCk9PlBJLEdlb3JnaWFuTGFyaTooKT0+QUksR2hvc3Q6KCk9PklJLEdpZnQ6KCk9PlJJLEdpdEJyYW5jaDooKT0+RkksR2l0QnJhbmNoTWludXM6KCk9Pk5JLEdpdEJyYW5jaFBsdXM6KCk9Pk9JLEdpdENvbW1pdDooKT0+aDYsR2l0Q29tbWl0SG9yaXpvbnRhbDooKT0+aDYsR2l0Q29tbWl0VmVydGljYWw6KCk9PkJJLEdpdENvbXBhcmU6KCk9PnFJLEdpdENvbXBhcmVBcnJvd3M6KCk9PkhJLEdpdEZvcms6KCk9PmpJLEdpdEdyYXBoOigpPT5WSSxHaXRNZXJnZTooKT0+VUksR2l0TWVyZ2VDb25mbGljdDooKT0+V0ksR2l0UHVsbFJlcXVlc3Q6KCk9PlFJLEdpdFB1bGxSZXF1ZXN0QXJyb3c6KCk9PkdJLEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOigpPT5LSSxHaXRQdWxsUmVxdWVzdENyZWF0ZTooKT0+WkksR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzooKT0+WUksR2l0UHVsbFJlcXVlc3REcmFmdDooKT0+WEksR2xhc3NXYXRlcjooKT0+SkksR2xhc3NlczooKT0+ZUEsR2xvYmU6KCk9PmlBLEdsb2JlMjooKT0+SW0sR2xvYmVMb2NrOigpPT50QSxHbG9iZU9mZjooKT0+c0EsR2xvYmVYOigpPT5hQSxHb2FsOigpPT5yQSxHcHU6KCk9Pm9BLEdyYWI6KCk9PnY2LEdyYWR1YXRpb25DYXA6KCk9Pm5BLEdyYXBlOigpPT5sQSxHcmlkOigpPT5XMCxHcmlkMlgyOigpPT5iNixHcmlkMlgyQ2hlY2s6KCk9PmY2LEdyaWQyWDJQbHVzOigpPT5tNixHcmlkMlgyWDooKT0+ZzYsR3JpZDJ4MjooKT0+YjYsR3JpZDJ4MkNoZWNrOigpPT5mNixHcmlkMngyUGx1czooKT0+bTYsR3JpZDJ4Mlg6KCk9Pmc2LEdyaWQzWDM6KCk9PlcwLEdyaWQzeDI6KCk9PmNBLEdyaWQzeDM6KCk9PlcwLEdyaXA6KCk9PnBBLEdyaXBIb3Jpem9udGFsOigpPT5kQSxHcmlwVmVydGljYWw6KCk9PnVBLEdyb3VwOigpPT5oQSxHdWl0YXI6KCk9PmZBLEhhbTooKT0+bUEsSGFtYnVyZ2VyOigpPT5nQSxIYW1tZXI6KCk9PmJBLEhhbmQ6KCk9PlNBLEhhbmRDb2luczooKT0+dkEsSGFuZEZpc3Q6KCk9PnhBLEhhbmRHcmFiOigpPT52NixIYW5kSGVhcnQ6KCk9PnlBLEhhbmRIZWxwaW5nOigpPT54NixIYW5kTWV0YWw6KCk9PndBLEhhbmRQbGF0dGVyOigpPT5rQSxIYW5kYmFnOigpPT5fQSxIYW5kc2hha2U6KCk9Pk1BLEhhcmREcml2ZTooKT0+JEEsSGFyZERyaXZlRG93bmxvYWQ6KCk9PnpBLEhhcmREcml2ZVVwbG9hZDooKT0+Q0EsSGFyZEhhdDooKT0+VEEsSGFzaDooKT0+REEsSGF0R2xhc3NlczooKT0+TEEsSGF6ZTooKT0+RUEsSGQ6KCk9PlBBLEhkbWlQb3J0OigpPT5JQSxIZWFkaW5nOigpPT5IQSxIZWFkaW5nMTooKT0+QUEsSGVhZGluZzI6KCk9Pk5BLEhlYWRpbmczOigpPT5SQSxIZWFkaW5nNDooKT0+T0EsSGVhZGluZzU6KCk9PkZBLEhlYWRpbmc2OigpPT5CQSxIZWFkcGhvbmVPZmY6KCk9PnFBLEhlYWRwaG9uZXM6KCk9PlZBLEhlYWRzZXQ6KCk9PmpBLEhlYXJ0OigpPT5RQSxIZWFydENyYWNrOigpPT5VQSxIZWFydEhhbmRzaGFrZTooKT0+V0EsSGVhcnRNaW51czooKT0+R0EsSGVhcnRPZmY6KCk9PktBLEhlYXJ0UGx1czooKT0+WUEsSGVhcnRQdWxzZTooKT0+WkEsSGVhcnRYOigpPT5YQSxIZWF0ZXI6KCk9PkpBLEhlbGljb3B0ZXI6KCk9PmVOLEhlbHBDaXJjbGU6KCk9PmowLEhlbHBpbmdIYW5kOigpPT54NixIZXhhZ29uOigpPT50TixIaWdobGlnaHRlcjooKT0+YU4sSGlzdG9yeTooKT0+c04sSG9tZTooKT0+eTYsSG9wOigpPT5pTixIb3BPZmY6KCk9PnJOLEhvc3BpdGFsOigpPT5vTixIb3RlbDooKT0+bk4sSG91cmdsYXNzOigpPT5sTixIb3VzZTooKT0+eTYsSG91c2VIZWFydDooKT0+Y04sSG91c2VQbHVnOigpPT5kTixIb3VzZVBsdXM6KCk9PnBOLEhvdXNlV2lmaTooKT0+dU4sSWNlQ3JlYW06KCk9Pms2LEljZUNyZWFtMjooKT0+dzYsSWNlQ3JlYW1Cb3dsOigpPT53NixJY2VDcmVhbUNvbmU6KCk9Pms2LElkQ2FyZDooKT0+Zk4sSWRDYXJkTGFueWFyZDooKT0+aE4sSW1hZ2U6KCk9PmtOLEltYWdlRG93bjooKT0+bU4sSW1hZ2VNaW51czooKT0+Z04sSW1hZ2VPZmY6KCk9PmJOLEltYWdlUGxheTooKT0+dk4sSW1hZ2VQbHVzOigpPT54TixJbWFnZVVwOigpPT55TixJbWFnZVVwc2NhbGU6KCk9PndOLEltYWdlczooKT0+U04sSW1wb3J0OigpPT5fTixJbmJveDooKT0+TU4sSW5kZW50OigpPT5LMCxJbmRlbnREZWNyZWFzZTooKT0+RzAsSW5kZW50SW5jcmVhc2U6KCk9PkswLEluZGlhblJ1cGVlOigpPT56TixJbmZpbml0eTooKT0+Q04sSW5mbzooKT0+VE4sSW5zcGVjdDooKT0+QjUsSW5zcGVjdGlvblBhbmVsOigpPT4kTixJdGFsaWM6KCk9PkROLEl0ZXJhdGlvbkNjdzooKT0+TE4sSXRlcmF0aW9uQ3c6KCk9PkVOLEphcGFuZXNlWWVuOigpPT5QTixKb3lzdGljazooKT0+SU4sS2FuYmFuOigpPT5BTixLYW5iYW5TcXVhcmU6KCk9PlI1LEthbmJhblNxdWFyZURhc2hlZDooKT0+VDUsS2F5YWs6KCk9Pk5OLEtleTooKT0+Rk4sS2V5Um91bmQ6KCk9Pk9OLEtleVNxdWFyZTooKT0+Uk4sS2V5Ym9hcmQ6KCk9PnFOLEtleWJvYXJkTXVzaWM6KCk9PkJOLEtleWJvYXJkT2ZmOigpPT5ITixMYW1wOigpPT5LTixMYW1wQ2VpbGluZzooKT0+ak4sTGFtcERlc2s6KCk9PlZOLExhbXBGbG9vcjooKT0+VU4sTGFtcFdhbGxEb3duOigpPT5XTixMYW1wV2FsbFVwOigpPT5HTixMYW5kUGxvdDooKT0+WU4sTGFuZG1hcms6KCk9PlpOLExhbmd1YWdlczooKT0+WE4sTGFwdG9wOigpPT5KTixMYXB0b3AyOigpPT5TNixMYXB0b3BNaW5pbWFsOigpPT5TNixMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PlFOLExhc3NvOigpPT5hUixMYXNzb1NlbGVjdDooKT0+ZVIsTGF1Z2g6KCk9PnRSLExheWVyczooKT0+XzYsTGF5ZXJzMjooKT0+c1IsTGF5ZXJzMzooKT0+XzYsTGF5ZXJzTWludXM6KCk9PmlSLExheWVyc1BsdXM6KCk9PnJSLExheW91dDooKT0+VjYsTGF5b3V0RGFzaGJvYXJkOigpPT5vUixMYXlvdXRHcmlkOigpPT5uUixMYXlvdXRMaXN0OigpPT5sUixMYXlvdXRQYW5lbExlZnQ6KCk9PmNSLExheW91dFBhbmVsVG9wOigpPT51UixMYXlvdXRUZW1wbGF0ZTooKT0+ZFIsTGVhZjooKT0+cFIsTGVhZnlHcmVlbjooKT0+aFIsTGVjdGVybjooKT0+ZlIsTGVuc0NvbmNhdmU6KCk9Pm1SLExlbnNDb252ZXg6KCk9PmdSLExldHRlclRleHQ6KCk9Pmw4LExpYnJhcnk6KCk9PnZSLExpYnJhcnlCaWc6KCk9PmJSLExpYnJhcnlTcXVhcmU6KCk9PkE1LExpZmVCdW95OigpPT54UixMaWdhdHVyZTooKT0+eVIsTGlnaHRidWxiOigpPT53UixMaWdodGJ1bGJPZmY6KCk9PmtSLExpbmVDaGFydDooKT0+amYsTGluZURvdFJpZ2h0SG9yaXpvbnRhbDooKT0+U1IsTGluZVNxdWlnZ2xlOigpPT5NUixMaW5lU3R5bGU6KCk9Pl9SLExpbms6KCk9PlRSLExpbmsyOigpPT5DUixMaW5rMk9mZjooKT0+elIsTGlzdDooKT0+R1IsTGlzdENoZWNrOigpPT4kUixMaXN0Q2hlY2tzOigpPT5EUixMaXN0Q2hldnJvbnNEb3duVXA6KCk9PkxSLExpc3RDaGV2cm9uc1VwRG93bjooKT0+RVIsTGlzdENvbGxhcHNlOigpPT5QUixMaXN0RW5kOigpPT5JUixMaXN0RmlsdGVyOigpPT5OUixMaXN0RmlsdGVyUGx1czooKT0+QVIsTGlzdEluZGVudERlY3JlYXNlOigpPT5HMCxMaXN0SW5kZW50SW5jcmVhc2U6KCk9PkswLExpc3RNaW51czooKT0+UlIsTGlzdE11c2ljOigpPT5PUixMaXN0T3JkZXJlZDooKT0+RlIsTGlzdFBsdXM6KCk9PkJSLExpc3RSZXN0YXJ0OigpPT5IUixMaXN0U3RhcnQ6KCk9PnFSLExpc3RUb2RvOigpPT5qUixMaXN0VHJlZTooKT0+VlIsTGlzdFZpZGVvOigpPT5VUixMaXN0WDooKT0+V1IsTG9hZGVyOigpPT5ZUixMb2FkZXIyOigpPT5NNixMb2FkZXJDaXJjbGU6KCk9Pk02LExvYWRlclBpbndoZWVsOigpPT5LUixMb2NhdGU6KCk9PlFSLExvY2F0ZUZpeGVkOigpPT5aUixMb2NhdGVPZmY6KCk9PlhSLExvY2F0aW9uRWRpdDooKT0+JDYsTG9jazooKT0+ZU8sTG9ja0tleWhvbGU6KCk9PkpSLExvY2tLZXlob2xlT3BlbjooKT0+ejYsTG9ja09wZW46KCk9PkM2LExvZ0luOigpPT50TyxMb2dPdXQ6KCk9PmFPLExvZ3M6KCk9PnNPLExvbGxpcG9wOigpPT5pTyxMdWdnYWdlOigpPT5yTyxNU3F1YXJlOigpPT5ONSxNYWduZXQ6KCk9Pm5PLE1haWw6KCk9Pm1PLE1haWxDaGVjazooKT0+b08sTWFpbE1pbnVzOigpPT5sTyxNYWlsT3BlbjooKT0+Y08sTWFpbFBsdXM6KCk9PmRPLE1haWxRdWVzdGlvbjooKT0+VDYsTWFpbFF1ZXN0aW9uTWFyazooKT0+VDYsTWFpbFNlYXJjaDooKT0+dU8sTWFpbFdhcm5pbmc6KCk9PnBPLE1haWxYOigpPT5oTyxNYWlsYm94OigpPT5mTyxNYWlsczooKT0+Z08sTWFwOigpPT5FTyxNYXBNaW51czooKT0+Yk8sTWFwUGluOigpPT4kTyxNYXBQaW5DaGVjazooKT0+eE8sTWFwUGluQ2hlY2tJbnNpZGU6KCk9PnZPLE1hcFBpbkhvdXNlOigpPT55TyxNYXBQaW5NaW51czooKT0+a08sTWFwUGluTWludXNJbnNpZGU6KCk9PndPLE1hcFBpbk9mZjooKT0+U08sTWFwUGluUGVuOigpPT4kNixNYXBQaW5QbHVzOigpPT5NTyxNYXBQaW5QbHVzSW5zaWRlOigpPT5fTyxNYXBQaW5TZWFyY2g6KCk9PnpPLE1hcFBpblg6KCk9PkNPLE1hcFBpblhJbnNpZGU6KCk9PlRPLE1hcFBpbm5lZDooKT0+RE8sTWFwUGx1czooKT0+TE8sTWFyczooKT0+SU8sTWFyc1N0cm9rZTooKT0+UE8sTWFydGluaTooKT0+QU8sTWF4aW1pemU6KCk9PlJPLE1heGltaXplMjooKT0+Tk8sTWVkYWw6KCk9Pk9PLE1lZ2FwaG9uZTooKT0+Qk8sTWVnYXBob25lT2ZmOigpPT5GTyxNZWg6KCk9PkhPLE1lbW9yeVN0aWNrOigpPT5xTyxNZW51OigpPT5qTyxNZW51U3F1YXJlOigpPT5PNSxNZXJnZTooKT0+Vk8sTWVzc2FnZUNpcmNsZTooKT0+dEYsTWVzc2FnZUNpcmNsZUNoZWNrOigpPT5VTyxNZXNzYWdlQ2lyY2xlQ29kZTooKT0+V08sTWVzc2FnZUNpcmNsZURhc2hlZDooKT0+R08sTWVzc2FnZUNpcmNsZUhlYXJ0OigpPT5LTyxNZXNzYWdlQ2lyY2xlTW9yZTooKT0+WU8sTWVzc2FnZUNpcmNsZU9mZjooKT0+Wk8sTWVzc2FnZUNpcmNsZVBsdXM6KCk9PlhPLE1lc3NhZ2VDaXJjbGVRdWVzdGlvbjooKT0+RDYsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazooKT0+RDYsTWVzc2FnZUNpcmNsZVJlcGx5OigpPT5RTyxNZXNzYWdlQ2lyY2xlV2FybmluZzooKT0+Sk8sTWVzc2FnZUNpcmNsZVg6KCk9PmVGLE1lc3NhZ2VTcXVhcmU6KCk9PnZGLE1lc3NhZ2VTcXVhcmVDaGVjazooKT0+c0YsTWVzc2FnZVNxdWFyZUNvZGU6KCk9PmFGLE1lc3NhZ2VTcXVhcmVEYXNoZWQ6KCk9PmlGLE1lc3NhZ2VTcXVhcmVEaWZmOigpPT5yRixNZXNzYWdlU3F1YXJlRG90OigpPT5vRixNZXNzYWdlU3F1YXJlSGVhcnQ6KCk9Pm5GLE1lc3NhZ2VTcXVhcmVMb2NrOigpPT5sRixNZXNzYWdlU3F1YXJlTW9yZTooKT0+Y0YsTWVzc2FnZVNxdWFyZU9mZjooKT0+ZEYsTWVzc2FnZVNxdWFyZVBsdXM6KCk9PnVGLE1lc3NhZ2VTcXVhcmVRdW90ZTooKT0+cEYsTWVzc2FnZVNxdWFyZVJlcGx5OigpPT5oRixNZXNzYWdlU3F1YXJlU2hhcmU6KCk9PmZGLE1lc3NhZ2VTcXVhcmVUZXh0OigpPT5tRixNZXNzYWdlU3F1YXJlV2FybmluZzooKT0+Z0YsTWVzc2FnZVNxdWFyZVg6KCk9PmJGLE1lc3NhZ2VzU3F1YXJlOigpPT54RixNZXRyb25vbWU6KCk9PnlGLE1pYzooKT0+a0YsTWljMjooKT0+TDYsTWljT2ZmOigpPT53RixNaWNWb2NhbDooKT0+TDYsTWljcm9jaGlwOigpPT5TRixNaWNyb3Njb3BlOigpPT5fRixNaWNyb3dhdmU6KCk9Pk1GLE1pbGVzdG9uZTooKT0+ekYsTWlsazooKT0+VEYsTWlsa09mZjooKT0+Q0YsTWluaW1pemU6KCk9PkRGLE1pbmltaXplMjooKT0+JEYsTWludXM6KCk9PkxGLE1pbnVzQ2lyY2xlOigpPT5wbSxNaW51c1NxdWFyZTooKT0+RjUsTWlycm9yUmVjdGFuZ3VsYXI6KCk9PkVGLE1pcnJvclJvdW5kOigpPT5QRixNb25pdG9yOigpPT5HRixNb25pdG9yQ2hlY2s6KCk9PklGLE1vbml0b3JDbG91ZDooKT0+QUYsTW9uaXRvckNvZzooKT0+TkYsTW9uaXRvckRvdDooKT0+UkYsTW9uaXRvckRvd246KCk9PkZGLE1vbml0b3JPZmY6KCk9Pk9GLE1vbml0b3JQYXVzZTooKT0+QkYsTW9uaXRvclBsYXk6KCk9PkhGLE1vbml0b3JTbWFydHBob25lOigpPT5xRixNb25pdG9yU3BlYWtlcjooKT0+akYsTW9uaXRvclN0b3A6KCk9PlVGLE1vbml0b3JVcDooKT0+VkYsTW9uaXRvclg6KCk9PldGLE1vb246KCk9PllGLE1vb25TdGFyOigpPT5LRixNb3JlSG9yaXpvbnRhbDooKT0+Tm0sTW9yZVZlcnRpY2FsOigpPT5BbSxNb3RvcmJpa2U6KCk9PlpGLE1vdW50YWluOigpPT5RRixNb3VudGFpblNub3c6KCk9PlhGLE1vdXNlOigpPT5uQixNb3VzZUxlZnQ6KCk9PkpGLE1vdXNlT2ZmOigpPT5lQixNb3VzZVBvaW50ZXI6KCk9PnJCLE1vdXNlUG9pbnRlcjI6KCk9PmFCLE1vdXNlUG9pbnRlcjJPZmY6KCk9PnRCLE1vdXNlUG9pbnRlckJhbjooKT0+c0IsTW91c2VQb2ludGVyQ2xpY2s6KCk9PmlCLE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDooKT0+JDUsTW91c2VSaWdodDooKT0+b0IsTW92ZTooKT0+eUIsTW92ZTNEOigpPT5FNixNb3ZlM2Q6KCk9PkU2LE1vdmVEaWFnb25hbDooKT0+Y0IsTW92ZURpYWdvbmFsMjooKT0+bEIsTW92ZURvd246KCk9PnBCLE1vdmVEb3duTGVmdDooKT0+ZEIsTW92ZURvd25SaWdodDooKT0+dUIsTW92ZUhvcml6b250YWw6KCk9PmhCLE1vdmVMZWZ0OigpPT5mQixNb3ZlUmlnaHQ6KCk9Pm1CLE1vdmVVcDooKT0+dkIsTW92ZVVwTGVmdDooKT0+Z0IsTW92ZVVwUmlnaHQ6KCk9PmJCLE1vdmVWZXJ0aWNhbDooKT0+eEIsTXVzaWM6KCk9Pl9CLE11c2ljMjooKT0+d0IsTXVzaWMzOigpPT5TQixNdXNpYzQ6KCk9PmtCLE5hdmlnYXRpb246KCk9PlRCLE5hdmlnYXRpb24yOigpPT56QixOYXZpZ2F0aW9uMk9mZjooKT0+TUIsTmF2aWdhdGlvbk9mZjooKT0+Q0IsTmV0d29yazooKT0+JEIsTmV3c3BhcGVyOigpPT5EQixOZmM6KCk9PkxCLE5vbkJpbmFyeTooKT0+RUIsTm90ZWJvb2s6KCk9Pk5CLE5vdGVib29rUGVuOigpPT5QQixOb3RlYm9va1RhYnM6KCk9PkFCLE5vdGVib29rVGV4dDooKT0+SUIsTm90ZXBhZFRleHQ6KCk9Pk9CLE5vdGVwYWRUZXh0RGFzaGVkOigpPT5SQixOdXQ6KCk9PkJCLE51dE9mZjooKT0+RkIsT2N0YWdvbjooKT0+cUIsT2N0YWdvbkFsZXJ0OigpPT5QNixPY3RhZ29uTWludXM6KCk9PkhCLE9jdGFnb25QYXVzZTooKT0+STYsT2N0YWdvblg6KCk9PkE2LE9tZWdhOigpPT5qQixPcHRpb246KCk9PlZCLE9yYml0OigpPT5VQixPcmlnYW1pOigpPT5XQixPdXRkZW50OigpPT5HMCxQYWNrYWdlOigpPT5KQixQYWNrYWdlMjooKT0+R0IsUGFja2FnZUNoZWNrOigpPT5LQixQYWNrYWdlTWludXM6KCk9PllCLFBhY2thZ2VPcGVuOigpPT5aQixQYWNrYWdlUGx1czooKT0+WEIsUGFja2FnZVNlYXJjaDooKT0+UUIsUGFja2FnZVg6KCk9PmVILFBhaW50QnVja2V0OigpPT50SCxQYWludFJvbGxlcjooKT0+YUgsUGFpbnRicnVzaDooKT0+c0gsUGFpbnRicnVzaDI6KCk9Pk42LFBhaW50YnJ1c2hWZXJ0aWNhbDooKT0+TjYsUGFsZXR0ZTooKT0+aUgsUGFsbXRyZWU6KCk9PnU4LFBhbmRhOigpPT5vSCxQYW5lbEJvdHRvbTooKT0+bEgsUGFuZWxCb3R0b21DbG9zZTooKT0+ckgsUGFuZWxCb3R0b21EYXNoZWQ6KCk9PlI2LFBhbmVsQm90dG9tSW5hY3RpdmU6KCk9PlI2LFBhbmVsQm90dG9tT3BlbjooKT0+bkgsUGFuZWxMZWZ0OigpPT5INixQYW5lbExlZnRDbG9zZTooKT0+TzYsUGFuZWxMZWZ0RGFzaGVkOigpPT5GNixQYW5lbExlZnRJbmFjdGl2ZTooKT0+RjYsUGFuZWxMZWZ0T3BlbjooKT0+QjYsUGFuZWxMZWZ0UmlnaHREYXNoZWQ6KCk9PmNILFBhbmVsUmlnaHQ6KCk9PmhILFBhbmVsUmlnaHRDbG9zZTooKT0+ZEgsUGFuZWxSaWdodERhc2hlZDooKT0+cTYsUGFuZWxSaWdodEluYWN0aXZlOigpPT5xNixQYW5lbFJpZ2h0T3BlbjooKT0+dUgsUGFuZWxUb3A6KCk9PmdILFBhbmVsVG9wQm90dG9tRGFzaGVkOigpPT5wSCxQYW5lbFRvcENsb3NlOigpPT5mSCxQYW5lbFRvcERhc2hlZDooKT0+ajYsUGFuZWxUb3BJbmFjdGl2ZTooKT0+ajYsUGFuZWxUb3BPcGVuOigpPT5tSCxQYW5lbHNMZWZ0Qm90dG9tOigpPT5iSCxQYW5lbHNMZWZ0UmlnaHQ6KCk9PkxtLFBhbmVsc1JpZ2h0Qm90dG9tOigpPT52SCxQYW5lbHNUb3BCb3R0b206KCk9Plg2LFBhbmVsc1RvcExlZnQ6KCk9PlY2LFBhcGVyY2xpcDooKT0+eEgsUGFyZW50aGVzZXM6KCk9PnlILFBhcmtpbmdDaXJjbGU6KCk9PmZtLFBhcmtpbmdDaXJjbGVPZmY6KCk9PmhtLFBhcmtpbmdNZXRlcjooKT0+d0gsUGFya2luZ1NxdWFyZTooKT0+cTUsUGFya2luZ1NxdWFyZU9mZjooKT0+SDUsUGFydHlQb3BwZXI6KCk9PlNILFBhdXNlOigpPT5rSCxQYXVzZUNpcmNsZTooKT0+bW0sUGF1c2VPY3RhZ29uOigpPT5JNixQYXdQcmludDooKT0+X0gsUGNDYXNlOigpPT5NSCxQZW46KCk9Plc2LFBlbkJveDooKT0+VjEsUGVuTGluZTooKT0+VTYsUGVuT2ZmOigpPT56SCxQZW5TcXVhcmU6KCk9PlYxLFBlblRvb2w6KCk9PkNILFBlbmNpbDooKT0+REgsUGVuY2lsTGluZTooKT0+VEgsUGVuY2lsT2ZmOigpPT4kSCxQZW5jaWxSdWxlcjooKT0+TEgsUGVudGFnb246KCk9PkVILFBlcmNlbnQ6KCk9PlBILFBlcmNlbnRDaXJjbGU6KCk9PmdtLFBlcmNlbnREaWFtb25kOigpPT5QbSxQZXJjZW50U3F1YXJlOigpPT5qNSxQZXJzb25TdGFuZGluZzooKT0+SUgsUGhpbGlwcGluZVBlc286KCk9PkFILFBob25lOigpPT5qSCxQaG9uZUNhbGw6KCk9Pk5ILFBob25lRm9yd2FyZGVkOigpPT5SSCxQaG9uZUluY29taW5nOigpPT5PSCxQaG9uZU1pc3NlZDooKT0+RkgsUGhvbmVPZmY6KCk9PkJILFBob25lT3V0Z29pbmc6KCk9PkhILFBpOigpPT5xSCxQaVNxdWFyZTooKT0+VjUsUGlhbm86KCk9PlZILFBpY2theGU6KCk9PlVILFBpY3R1cmVJblBpY3R1cmU6KCk9PkdILFBpY3R1cmVJblBpY3R1cmUyOigpPT5XSCxQaWVDaGFydDooKT0+R2YsUGlnZ3lCYW5rOigpPT5LSCxQaWxjcm93OigpPT5YSCxQaWxjcm93TGVmdDooKT0+WUgsUGlsY3Jvd1JpZ2h0OigpPT5aSCxQaWxjcm93U3F1YXJlOigpPT5VNSxQaWxsOigpPT5lcSxQaWxsQm90dGxlOigpPT5RSCxQaW46KCk9PnRxLFBpbk9mZjooKT0+SkgsUGlwZXR0ZTooKT0+YXEsUGl6emE6KCk9PnNxLFBsYW5lOigpPT5vcSxQbGFuZUxhbmRpbmc6KCk9PmlxLFBsYW5lVGFrZW9mZjooKT0+cnEsUGxheTooKT0+bnEsUGxheUNpcmNsZTooKT0+Ym0sUGxheVNxdWFyZTooKT0+RzUsUGx1ZzooKT0+Y3EsUGx1ZzI6KCk9PmxxLFBsdWdaYXA6KCk9Pkc2LFBsdWdaYXAyOigpPT5HNixQbHVzOigpPT5kcSxQbHVzQ2lyY2xlOigpPT52bSxQbHVzU3F1YXJlOigpPT5XNSxQb2NrZXRLbmlmZTooKT0+dXEsUG9kY2FzdDooKT0+cHEsUG9pbnRlcjooKT0+aHEsUG9pbnRlck9mZjooKT0+ZnEsUG9wY29ybjooKT0+bXEsUG9wc2ljbGU6KCk9PmdxLFBvdW5kU3Rlcmxpbmc6KCk9PmJxLFBvd2VyOigpPT54cSxQb3dlckNpcmNsZTooKT0+eG0sUG93ZXJPZmY6KCk9PnZxLFBvd2VyU3F1YXJlOigpPT5LNSxQcmVzZW50YXRpb246KCk9PnlxLFByaW50ZXI6KCk9PlNxLFByaW50ZXJDaGVjazooKT0+a3EsUHJpbnRlclg6KCk9PndxLFByb2plY3RvcjooKT0+enEsUHJvcG9ydGlvbnM6KCk9Pl9xLFB1enpsZTooKT0+TXEsUHlyYW1pZDooKT0+Q3EsUXJDb2RlOigpPT4kcSxRdW90ZTooKT0+VHEsUmFiYml0OigpPT5McSxSYWRhcjooKT0+RHEsUmFkaWF0aW9uOigpPT5FcSxSYWRpY2FsOigpPT5QcSxSYWRpbzooKT0+UnEsUmFkaW9PZmY6KCk9PklxLFJhZGlvUmVjZWl2ZXI6KCk9PkFxLFJhZGlvVG93ZXI6KCk9Pk5xLFJhZGl1czooKT0+T3EsUmFpbmJvdzooKT0+RnEsUmF0OigpPT5CcSxSYXRpbzooKT0+SHEsUmVjZWlwdDooKT0+WnEsUmVjZWlwdENlbnQ6KCk9PnFxLFJlY2VpcHRFdXJvOigpPT5qcSxSZWNlaXB0SW5kaWFuUnVwZWU6KCk9PlZxLFJlY2VpcHRKYXBhbmVzZVllbjooKT0+V3EsUmVjZWlwdFBvdW5kU3Rlcmxpbmc6KCk9PlVxLFJlY2VpcHRSdXNzaWFuUnVibGU6KCk9PkdxLFJlY2VpcHRTd2lzc0ZyYW5jOigpPT5ZcSxSZWNlaXB0VGV4dDooKT0+S3EsUmVjZWlwdFR1cmtpc2hMaXJhOigpPT5YcSxSZWN0YW5nbGVDaXJjbGU6KCk9PlFxLFJlY3RhbmdsZUVsbGlwc2lzOigpPT5LNixSZWN0YW5nbGVHb2dnbGVzOigpPT5KcSxSZWN0YW5nbGVIb3Jpem9udGFsOigpPT5laixSZWN0YW5nbGVWZXJ0aWNhbDooKT0+dGosUmVjeWNsZTooKT0+YWosUmVkbzooKT0+cmosUmVkbzI6KCk9PnNqLFJlZG9Eb3Q6KCk9PmlqLFJlZnJlc2hDY3c6KCk9Pm5qLFJlZnJlc2hDY3dEb3Q6KCk9Pm9qLFJlZnJlc2hDdzooKT0+Y2osUmVmcmVzaEN3T2ZmOigpPT5saixSZWZyaWdlcmF0b3I6KCk9PmRqLFJlZ2V4OigpPT51aixSZW1vdmVGb3JtYXR0aW5nOigpPT5waixSZXBlYXQ6KCk9PmdqLFJlcGVhdDE6KCk9PmZqLFJlcGVhdDI6KCk9PmhqLFJlcGVhdE9mZjooKT0+bWosUmVwbGFjZTooKT0+dmosUmVwbGFjZUFsbDooKT0+YmosUmVwbHk6KCk9PnlqLFJlcGx5QWxsOigpPT54aixSZXdpbmQ6KCk9PmtqLFJpYmJvbjooKT0+d2osUm9hZDooKT0+U2osUm9ja2V0OigpPT5faixSb2NraW5nQ2hhaXI6KCk9Pk1qLFJvbGxlckNvYXN0ZXI6KCk9PnpqLFJvc2U6KCk9PkNqLFJvdGF0ZTNEOigpPT5ZNixSb3RhdGUzZDooKT0+WTYsUm90YXRlQ2N3OigpPT5EaixSb3RhdGVDY3dLZXk6KCk9PlRqLFJvdGF0ZUNjd1NxdWFyZTooKT0+JGosUm90YXRlQ3c6KCk9PkVqLFJvdGF0ZUN3U3F1YXJlOigpPT5MaixSb3V0ZTooKT0+SWosUm91dGVPZmY6KCk9PlBqLFJvdXRlcjooKT0+QWosUm93czooKT0+WjYsUm93czI6KCk9Plo2LFJvd3MzOigpPT5YNixSb3dzNDooKT0+TmosUnNzOigpPT5SaixSdWxlcjooKT0+RmosUnVsZXJEaW1lbnNpb25MaW5lOigpPT5PaixSdXNzaWFuUnVibGU6KCk9PkJqLFNhaWxib2F0OigpPT5IaixTYWxhZDooKT0+cWosU2FuZHdpY2g6KCk9PmpqLFNhdGVsbGl0ZTooKT0+VmosU2F0ZWxsaXRlRGlzaDooKT0+VWosU2F1ZGlSaXlhbDooKT0+V2osU2F2ZTooKT0+WWosU2F2ZUFsbDooKT0+S2osU2F2ZU9mZjooKT0+R2osU2NhbGU6KCk9PlpqLFNjYWxlM0Q6KCk9PlE2LFNjYWxlM2Q6KCk9PlE2LFNjYWxpbmc6KCk9PlFqLFNjYW46KCk9Pm9WLFNjYW5CYXJjb2RlOigpPT5YaixTY2FuRXllOigpPT5KaixTY2FuRmFjZTooKT0+ZVYsU2NhbkhlYXJ0OigpPT50VixTY2FuTGluZTooKT0+YVYsU2NhblFyQ29kZTooKT0+c1YsU2NhblNlYXJjaDooKT0+aVYsU2NhblRleHQ6KCk9PnJWLFNjYXR0ZXJDaGFydDooKT0+S2YsU2Nob29sOigpPT5uVixTY2hvb2wyOigpPT5mOCxTY2lzc29yczooKT0+Y1YsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5sVixTY2lzc29yc1NxdWFyZTooKT0+WjUsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PnY1LFNjb290ZXI6KCk9PmRWLFNjcmVlblNoYXJlOigpPT5wVixTY3JlZW5TaGFyZU9mZjooKT0+dVYsU2Nyb2xsOigpPT5mVixTY3JvbGxUZXh0OigpPT5oVixTZWFyY2g6KCk9PnlWLFNlYXJjaEFsZXJ0OigpPT5tVixTZWFyY2hDaGVjazooKT0+Z1YsU2VhcmNoQ29kZTooKT0+YlYsU2VhcmNoU2xhc2g6KCk9PnZWLFNlYXJjaFg6KCk9PnhWLFNlY3Rpb246KCk9PndWLFNlbmQ6KCk9PlNWLFNlbmRIb3Jpem9uYWw6KCk9Pko2LFNlbmRIb3Jpem9udGFsOigpPT5KNixTZW5kVG9CYWNrOigpPT5rVixTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5fVixTZXBhcmF0b3JWZXJ0aWNhbDooKT0+TVYsU2VydmVyOigpPT4kVixTZXJ2ZXJDb2c6KCk9PnpWLFNlcnZlckNyYXNoOigpPT5DVixTZXJ2ZXJPZmY6KCk9PlRWLFNldHRpbmdzOigpPT5FVixTZXR0aW5nczI6KCk9PkRWLFNoYXBlczooKT0+TFYsU2hhcmU6KCk9PklWLFNoYXJlMjooKT0+UFYsU2hlZXQ6KCk9Pk5WLFNoZWxsOigpPT5BVixTaGVsdmluZ1VuaXQ6KCk9PlJWLFNoaWVsZDooKT0+WVYsU2hpZWxkQWxlcnQ6KCk9Pk9WLFNoaWVsZEJhbjooKT0+RlYsU2hpZWxkQ2hlY2s6KCk9PkJWLFNoaWVsZENsb3NlOigpPT50NSxTaGllbGRDb2c6KCk9PmpWLFNoaWVsZENvZ0Nvcm5lcjooKT0+SFYsU2hpZWxkRWxsaXBzaXM6KCk9PnFWLFNoaWVsZEhhbGY6KCk9PlZWLFNoaWVsZE1pbnVzOigpPT5VVixTaGllbGRPZmY6KCk9PldWLFNoaWVsZFBsdXM6KCk9PkdWLFNoaWVsZFF1ZXN0aW9uOigpPT5lNSxTaGllbGRRdWVzdGlvbk1hcms6KCk9PmU1LFNoaWVsZFVzZXI6KCk9PktWLFNoaWVsZFg6KCk9PnQ1LFNoaXA6KCk9PlpWLFNoaXBXaGVlbDooKT0+WFYsU2hpcnQ6KCk9PlFWLFNob3BwaW5nQmFnOigpPT5KVixTaG9wcGluZ0Jhc2tldDooKT0+ZVUsU2hvcHBpbmdDYXJ0OigpPT50VSxTaG92ZWw6KCk9PmFVLFNob3dlckhlYWQ6KCk9PnNVLFNocmVkZGVyOigpPT5pVSxTaHJpbXA6KCk9Pm9VLFNocmluazooKT0+clUsU2hydWI6KCk9Pm5VLFNodWZmbGU6KCk9PmxVLFNpZGViYXI6KCk9Pkg2LFNpZGViYXJDbG9zZTooKT0+TzYsU2lkZWJhck9wZW46KCk9PkI2LFNpZ21hOigpPT5jVSxTaWdtYVNxdWFyZTooKT0+WTUsU2lnbmFsOigpPT5mVSxTaWduYWxIaWdoOigpPT5kVSxTaWduYWxMb3c6KCk9PnVVLFNpZ25hbE1lZGl1bTooKT0+cFUsU2lnbmFsWmVybzooKT0+aFUsU2lnbmF0dXJlOigpPT5tVSxTaWducG9zdDooKT0+YlUsU2lnbnBvc3RCaWc6KCk9PmdVLFNpcmVuOigpPT52VSxTa2lwQmFjazooKT0+eFUsU2tpcEZvcndhcmQ6KCk9PnlVLFNrdWxsOigpPT53VSxTbGFzaDooKT0+a1UsU2xhc2hTcXVhcmU6KCk9Plg1LFNsaWNlOigpPT5fVSxTbGlkZXJzOigpPT5hNSxTbGlkZXJzSG9yaXpvbnRhbDooKT0+U1UsU2xpZGVyc1ZlcnRpY2FsOigpPT5hNSxTbWFydHBob25lOigpPT5UVSxTbWFydHBob25lQ2hhcmdpbmc6KCk9Pk1VLFNtYXJ0cGhvbmVOZmM6KCk9PnpVLFNtaWxlOigpPT4kVSxTbWlsZVBsdXM6KCk9PkNVLFNuYWlsOigpPT5EVSxTbm93Zmxha2U6KCk9PkxVLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT5FVSxTb2ZhOigpPT5QVSxTb2xhclBhbmVsOigpPT5JVSxTb3J0QXNjOigpPT56ZixTb3J0RGVzYzooKT0+U2YsU291cDooKT0+QVUsU3BhY2U6KCk9Pk5VLFNwYWRlOigpPT5SVSxTcGFya2xlOigpPT5PVSxTcGFya2xlczooKT0+czUsU3BlYWtlcjooKT0+RlUsU3BlZWNoOigpPT5CVSxTcGVsbENoZWNrOigpPT5IVSxTcGVsbENoZWNrMjooKT0+cVUsU3BsaW5lOigpPT5WVSxTcGxpbmVQb2ludGVyOigpPT5qVSxTcGxpdDooKT0+VVUsU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5RNSxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5KNSxTcG9vbDooKT0+V1UsU3BvcnRTaG9lOigpPT5HVSxTcG90bGlnaHQ6KCk9PlpVLFNwcmF5Q2FuOigpPT5LVSxTcHJvdXQ6KCk9PllVLFNxdWFyZTooKT0+Y1csU3F1YXJlQWN0aXZpdHk6KCk9Pmk1LFNxdWFyZUFycm93RG93bjooKT0+bjUsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+cjUsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9Pm81LFNxdWFyZUFycm93TGVmdDooKT0+bDUsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+YzUsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PmQ1LFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT51NSxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9PnA1LFNxdWFyZUFycm93UmlnaHQ6KCk9Pmg1LFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+WFUsU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PlFVLFNxdWFyZUFycm93VXA6KCk9Pmc1LFNxdWFyZUFycm93VXBMZWZ0OigpPT5mNSxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9Pm01LFNxdWFyZUFzdGVyaXNrOigpPT5iNSxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+djUsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9Png1LFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+eTUsU3F1YXJlQ2hhcnRHYW50dDooKT0+WTAsU3F1YXJlQ2hlY2s6KCk9Pms1LFNxdWFyZUNoZWNrQmlnOigpPT53NSxTcXVhcmVDaGV2cm9uRG93bjooKT0+UzUsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9Pl81LFNxdWFyZUNoZXZyb25SaWdodDooKT0+TTUsU3F1YXJlQ2hldnJvblVwOigpPT56NSxTcXVhcmVDb2RlOigpPT5DNSxTcXVhcmVEYXNoZWQ6KCk9PkQ1LFNxdWFyZURhc2hlZEJvdHRvbTooKT0+ZVcsU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+SlUsU3F1YXJlRGFzaGVkS2FuYmFuOigpPT5UNSxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9PiQ1LFNxdWFyZURhc2hlZFRleHQ6KCk9PlowLFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT50VyxTcXVhcmVEaXZpZGU6KCk9PkU1LFNxdWFyZURvdDooKT0+TDUsU3F1YXJlRXF1YWw6KCk9PlA1LFNxdWFyZUZ1bmN0aW9uOigpPT5JNSxTcXVhcmVHYW50dENoYXJ0OigpPT5ZMCxTcXVhcmVLYW5iYW46KCk9PlI1LFNxdWFyZUxpYnJhcnk6KCk9PkE1LFNxdWFyZU06KCk9Pk41LFNxdWFyZU1lbnU6KCk9Pk81LFNxdWFyZU1pbnVzOigpPT5GNSxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9PkI1LFNxdWFyZVBhcmtpbmc6KCk9PnE1LFNxdWFyZVBhcmtpbmdPZmY6KCk9Pkg1LFNxdWFyZVBhdXNlOigpPT5hVyxTcXVhcmVQZW46KCk9PlYxLFNxdWFyZVBlcmNlbnQ6KCk9Pmo1LFNxdWFyZVBpOigpPT5WNSxTcXVhcmVQaWxjcm93OigpPT5VNSxTcXVhcmVQbGF5OigpPT5HNSxTcXVhcmVQbHVzOigpPT5XNSxTcXVhcmVQb3dlcjooKT0+SzUsU3F1YXJlUmFkaWNhbDooKT0+c1csU3F1YXJlUm91bmRDb3JuZXI6KCk9PmlXLFNxdWFyZVNjaXNzb3JzOigpPT5aNSxTcXVhcmVTaWdtYTooKT0+WTUsU3F1YXJlU2xhc2g6KCk9Plg1LFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+UTUsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+SjUsU3F1YXJlU3F1YXJlOigpPT5yVyxTcXVhcmVTdGFjazooKT0+b1csU3F1YXJlU3RhcjooKT0+blcsU3F1YXJlU3RvcDooKT0+bFcsU3F1YXJlVGVybWluYWw6KCk9PmU4LFNxdWFyZVVzZXI6KCk9PnM4LFNxdWFyZVVzZXJSb3VuZDooKT0+dDgsU3F1YXJlWDooKT0+YTgsU3F1YXJlc0V4Y2x1ZGU6KCk9PmRXLFNxdWFyZXNJbnRlcnNlY3Q6KCk9PnVXLFNxdWFyZXNTdWJ0cmFjdDooKT0+cFcsU3F1YXJlc1VuaXRlOigpPT5oVyxTcXVpcmNsZTooKT0+bVcsU3F1aXJjbGVEYXNoZWQ6KCk9PmZXLFNxdWlycmVsOigpPT5nVyxTdGFtcDooKT0+YlcsU3RhcjooKT0+eVcsU3RhckhhbGY6KCk9PnZXLFN0YXJPZmY6KCk9PnhXLFN0YXJzOigpPT5zNSxTdGVwQmFjazooKT0+d1csU3RlcEZvcndhcmQ6KCk9PmtXLFN0ZXRob3Njb3BlOigpPT5fVyxTdGlja2VyOigpPT5TVyxTdGlja3lOb3RlOigpPT5NVyxTdG9uZTooKT0+VFcsU3RvcENpcmNsZTooKT0+d20sU3RvcmU6KCk9PnpXLFN0cmV0Y2hIb3Jpem9udGFsOigpPT5DVyxTdHJldGNoVmVydGljYWw6KCk9PiRXLFN0cmlrZXRocm91Z2g6KCk9PkRXLFN1YnNjcmlwdDooKT0+TFcsU3VidGl0bGVzOigpPT5BZixTdW46KCk9Pk5XLFN1bkRpbTooKT0+RVcsU3VuTWVkaXVtOigpPT5QVyxTdW5Nb29uOigpPT5JVyxTdW5Tbm93OigpPT5BVyxTdW5yaXNlOigpPT5SVyxTdW5zZXQ6KCk9Pk9XLFN1cGVyc2NyaXB0OigpPT5GVyxTd2F0Y2hCb29rOigpPT5CVyxTd2lzc0ZyYW5jOigpPT5IVyxTd2l0Y2hDYW1lcmE6KCk9PnFXLFN3b3JkOigpPT5qVyxTd29yZHM6KCk9PlZXLFN5cmluZ2U6KCk9PlVXLFRhYmxlOigpPT5lRyxUYWJsZTI6KCk9PldXLFRhYmxlQ2VsbHNNZXJnZTooKT0+R1csVGFibGVDZWxsc1NwbGl0OigpPT5LVyxUYWJsZUNvbHVtbnNTcGxpdDooKT0+WVcsVGFibGVDb25maWc6KCk9PlYwLFRhYmxlT2ZDb250ZW50czooKT0+WlcsVGFibGVQcm9wZXJ0aWVzOigpPT5YVyxUYWJsZVJvd3NTcGxpdDooKT0+UVcsVGFibGV0OigpPT50RyxUYWJsZXRTbWFydHBob25lOigpPT5KVyxUYWJsZXRzOigpPT5hRyxUYWc6KCk9PnNHLFRhZ3M6KCk9PmlHLFRhbGx5MTooKT0+ckcsVGFsbHkyOigpPT5vRyxUYWxseTM6KCk9Pm5HLFRhbGx5NDooKT0+bEcsVGFsbHk1OigpPT5kRyxUYW5nZW50OigpPT5jRyxUYXJnZXQ6KCk9PnVHLFRlbGVzY29wZTooKT0+cEcsVGVudDooKT0+ZkcsVGVudFRyZWU6KCk9PmhHLFRlcm1pbmFsOigpPT5tRyxUZXJtaW5hbFNxdWFyZTooKT0+ZTgsVGVzdFR1YmU6KCk9PmdHLFRlc3RUdWJlMjooKT0+aTgsVGVzdFR1YmVEaWFnb25hbDooKT0+aTgsVGVzdFR1YmVzOigpPT5iRyxUZXh0OigpPT5YMCxUZXh0QWxpZ25DZW50ZXI6KCk9PnI4LFRleHRBbGlnbkVuZDooKT0+bzgsVGV4dEFsaWduSnVzdGlmeTooKT0+bjgsVGV4dEFsaWduU3RhcnQ6KCk9PlgwLFRleHRDdXJzb3I6KCk9PnhHLFRleHRDdXJzb3JJbnB1dDooKT0+dkcsVGV4dEluaXRpYWw6KCk9Pmw4LFRleHRRdW90ZTooKT0+eUcsVGV4dFNlYXJjaDooKT0+d0csVGV4dFNlbGVjdDooKT0+WjAsVGV4dFNlbGVjdGlvbjooKT0+WjAsVGV4dFdyYXA6KCk9PmM4LFRoZWF0ZXI6KCk9PmtHLFRoZXJtb21ldGVyOigpPT5NRyxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+U0csVGhlcm1vbWV0ZXJTdW46KCk9Pl9HLFRodW1ic0Rvd246KCk9PnpHLFRodW1ic1VwOigpPT5DRyxUaWNrZXQ6KCk9PklHLFRpY2tldENoZWNrOigpPT5URyxUaWNrZXRNaW51czooKT0+JEcsVGlja2V0UGVyY2VudDooKT0+REcsVGlja2V0UGx1czooKT0+TEcsVGlja2V0U2xhc2g6KCk9PkVHLFRpY2tldFg6KCk9PlBHLFRpY2tldHM6KCk9Pk5HLFRpY2tldHNQbGFuZTooKT0+QUcsVGltZWxpbmU6KCk9PlJHLFRpbWVyOigpPT5CRyxUaW1lck9mZjooKT0+T0csVGltZXJSZXNldDooKT0+RkcsVG9nZ2xlTGVmdDooKT0+cUcsVG9nZ2xlUmlnaHQ6KCk9PmpHLFRvaWxldDooKT0+SEcsVG9vbENhc2U6KCk9PlZHLFRvb2xib3g6KCk9PlVHLFRvcm5hZG86KCk9PktHLFRvcnVzOigpPT5XRyxUb3VjaHBhZDooKT0+WUcsVG91Y2hwYWRPZmY6KCk9PkdHLFRvd2VsUmFjazooKT0+WkcsVG93ZXJDb250cm9sOigpPT5YRyxUb3lCcmljazooKT0+UUcsVHJhY3RvcjooKT0+SkcsVHJhZmZpY0NvbmU6KCk9PmVLLFRyYWluOigpPT5kOCxUcmFpbkZyb250OigpPT5hSyxUcmFpbkZyb250VHVubmVsOigpPT50SyxUcmFpblRyYWNrOigpPT5zSyxUcmFtRnJvbnQ6KCk9PmQ4LFRyYW5zZ2VuZGVyOigpPT5pSyxUcmFzaDooKT0+b0ssVHJhc2gyOigpPT5ySyxUcmVlRGVjaWR1b3VzOigpPT5uSyxUcmVlUGFsbTooKT0+dTgsVHJlZVBpbmU6KCk9PmxLLFRyZWVzOigpPT5jSyxUcmVuZGluZ0Rvd246KCk9PmRLLFRyZW5kaW5nVXA6KCk9PnBLLFRyZW5kaW5nVXBEb3duOigpPT51SyxUcmlhbmdsZTooKT0+bUssVHJpYW5nbGVBbGVydDooKT0+cDgsVHJpYW5nbGVEYXNoZWQ6KCk9PmhLLFRyaWFuZ2xlUmlnaHQ6KCk9PmZLLFRyb3BoeTooKT0+Z0ssVHJ1Y2s6KCk9PnZLLFRydWNrRWxlY3RyaWM6KCk9PmJLLFR1cmtpc2hMaXJhOigpPT54SyxUdXJudGFibGU6KCk9PnlLLFR1cnRsZTooKT0+d0ssVHY6KCk9PlNLLFR2MjooKT0+aDgsVHZNaW5pbWFsOigpPT5oOCxUdk1pbmltYWxQbGF5OigpPT5rSyxUeXBlOigpPT5NSyxUeXBlT3V0bGluZTooKT0+X0ssVW1icmVsbGE6KCk9PkNLLFVtYnJlbGxhT2ZmOigpPT56SyxVbmRlcmxpbmU6KCk9PlRLLFVuZG86KCk9PkxLLFVuZG8yOigpPT4kSyxVbmRvRG90OigpPT5ESyxVbmZvbGRIb3Jpem9udGFsOigpPT5FSyxVbmZvbGRWZXJ0aWNhbDooKT0+UEssVW5ncm91cDooKT0+SUssVW5pdmVyc2l0eTooKT0+ZjgsVW5saW5rOigpPT5SSyxVbmxpbmsyOigpPT5BSyxVbmxvY2s6KCk9PkM2LFVubG9ja0tleWhvbGU6KCk9Pno2LFVucGx1ZzooKT0+TkssVXBsb2FkOigpPT5PSyxVcGxvYWRDbG91ZDooKT0+VG0sVXNiOigpPT5GSyxVc2VyOigpPT5KSyxVc2VyMjooKT0+eTgsVXNlckNoZWNrOigpPT5CSyxVc2VyQ2hlY2syOigpPT5tOCxVc2VyQ2lyY2xlOigpPT5TbSxVc2VyQ2lyY2xlMjooKT0+a20sVXNlckNvZzooKT0+SEssVXNlckNvZzI6KCk9Pmc4LFVzZXJLZXk6KCk9PnFLLFVzZXJMb2NrOigpPT5qSyxVc2VyTWludXM6KCk9PlZLLFVzZXJNaW51czI6KCk9PmI4LFVzZXJQZW46KCk9PlVLLFVzZXJQbHVzOigpPT5XSyxVc2VyUGx1czI6KCk9PnY4LFVzZXJSb3VuZDooKT0+eTgsVXNlclJvdW5kQ2hlY2s6KCk9Pm04LFVzZXJSb3VuZENvZzooKT0+ZzgsVXNlclJvdW5kS2V5OigpPT5HSyxVc2VyUm91bmRNaW51czooKT0+YjgsVXNlclJvdW5kUGVuOigpPT5LSyxVc2VyUm91bmRQbHVzOigpPT52OCxVc2VyUm91bmRTZWFyY2g6KCk9PllLLFVzZXJSb3VuZFg6KCk9Png4LFVzZXJTZWFyY2g6KCk9PlpLLFVzZXJTcXVhcmU6KCk9PnM4LFVzZXJTcXVhcmUyOigpPT50OCxVc2VyU3RhcjooKT0+WEssVXNlclg6KCk9PlFLLFVzZXJYMjooKT0+eDgsVXNlcnM6KCk9PmVZLFVzZXJzMjooKT0+dzgsVXNlcnNSb3VuZDooKT0+dzgsVXRlbnNpbHM6KCk9PlM4LFV0ZW5zaWxzQ3Jvc3NlZDooKT0+azgsVXRpbGl0eVBvbGU6KCk9PmFZLFZhbjooKT0+dFksVmFyaWFibGU6KCk9PnNZLFZhdWx0OigpPT5pWSxWZWN0b3JTcXVhcmU6KCk9PnJZLFZlZ2FuOigpPT5vWSxWZW5ldGlhbk1hc2s6KCk9Pm5ZLFZlbnVzOigpPT5jWSxWZW51c0FuZE1hcnM6KCk9PmxZLFZlcmlmaWVkOigpPT4kZixWaWJyYXRlOigpPT51WSxWaWJyYXRlT2ZmOigpPT5kWSxWaWRlbzooKT0+aFksVmlkZW9PZmY6KCk9PnBZLFZpZGVvdGFwZTooKT0+ZlksVmlldzooKT0+bVksVm9pY2VtYWlsOigpPT5iWSxWb2xsZXliYWxsOigpPT5nWSxWb2x1bWU6KCk9PmtZLFZvbHVtZTE6KCk9PnZZLFZvbHVtZTI6KCk9PnhZLFZvbHVtZU9mZjooKT0+eVksVm9sdW1lWDooKT0+d1ksVm90ZTooKT0+U1ksV2FsbGV0OigpPT5NWSxXYWxsZXQyOigpPT5fOCxXYWxsZXRDYXJkczooKT0+X1ksV2FsbGV0TWluaW1hbDooKT0+XzgsV2FsbHBhcGVyOigpPT56WSxXYW5kOigpPT5DWSxXYW5kMjooKT0+TTgsV2FuZFNwYXJrbGVzOigpPT5NOCxXYXJlaG91c2U6KCk9PlRZLFdhc2hpbmdNYWNoaW5lOigpPT5EWSxXYXRjaDooKT0+JFksV2F2ZXM6KCk9Pno4LFdhdmVzQXJyb3dEb3duOigpPT5MWSxXYXZlc0Fycm93VXA6KCk9PkVZLFdhdmVzSG9yaXpvbnRhbDooKT0+ejgsV2F2ZXNMYWRkZXI6KCk9PlBZLFdhdmVzVmVydGljYWw6KCk9PklZLFdheXBvaW50czooKT0+QVksV2ViY2FtOigpPT5OWSxXZWJob29rOigpPT5PWSxXZWJob29rT2ZmOigpPT5SWSxXZWlnaHQ6KCk9PkJZLFdlaWdodFRpbGRlOigpPT5GWSxXaGVhdDooKT0+cVksV2hlYXRPZmY6KCk9PkhZLFdob2xlV29yZDooKT0+alksV2lmaTooKT0+UVksV2lmaUNvZzooKT0+VlksV2lmaUhpZ2g6KCk9PlVZLFdpZmlMb3c6KCk9PldZLFdpZmlPZmY6KCk9PkdZLFdpZmlQZW46KCk9PktZLFdpZmlTeW5jOigpPT5ZWSxXaWZpWmVybzooKT0+WlksV2luZDooKT0+SlksV2luZEFycm93RG93bjooKT0+WFksV2luZTooKT0+c1osV2luZU9mZjooKT0+ZVosV29ya2Zsb3c6KCk9PmFaLFdvcm06KCk9PnRaLFdyYXBUZXh0OigpPT5jOCxXcmVuY2g6KCk9PmlaLFg6KCk9Pm9aLFhDaXJjbGU6KCk9Pl9tLFhMaW5lVG9wOigpPT5yWixYT2N0YWdvbjooKT0+QTYsWFNxdWFyZTooKT0+YTgsWmFwOigpPT5sWixaYXBPZmY6KCk9Pm5aLFpvZGlhY0FxdWFyaXVzOigpPT5jWixab2RpYWNBcmllczooKT0+ZFosWm9kaWFjQ2FuY2VyOigpPT51Wixab2RpYWNDYXByaWNvcm46KCk9PnBaLFpvZGlhY0dlbWluaTooKT0+aFosWm9kaWFjTGVvOigpPT5mWixab2RpYWNMaWJyYTooKT0+bVosWm9kaWFjT3BoaXVjaHVzOigpPT5nWixab2RpYWNQaXNjZXM6KCk9PmJaLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT54Wixab2RpYWNTY29ycGlvOigpPT52Wixab2RpYWNUYXVydXM6KCk9PnlaLFpvZGlhY1ZpcmdvOigpPT53Wixab29tSW46KCk9PmtaLFpvb21PdXQ6KCk9PlNafSk7dmFyIEcyYT1nKCgpPT57VWtlKCk7V2tlKCk7R2tlKCk7S2tlKCk7WWtlKCk7WmtlKCk7WGtlKCk7UWtlKCk7SmtlKCk7ZVNlKCk7dFNlKCk7YVNlKCk7c1NlKCk7aVNlKCk7clNlKCk7b1NlKCk7blNlKCk7bFNlKCk7Y1NlKCk7ZFNlKCk7dVNlKCk7cFNlKCk7aFNlKCk7ZlNlKCk7bVNlKCk7Z1NlKCk7YlNlKCk7dlNlKCk7eFNlKCk7eVNlKCk7d1NlKCk7a1NlKCk7U1NlKCk7X1NlKCk7TVNlKCk7elNlKCk7Q1NlKCk7VFNlKCk7JFNlKCk7RFNlKCk7TFNlKCk7RVNlKCk7UFNlKCk7SVNlKCk7QVNlKCk7TlNlKCk7UlNlKCk7T1NlKCk7RlNlKCk7QlNlKCk7SFNlKCk7cVNlKCk7alNlKCk7VlNlKCk7VVNlKCk7V1NlKCk7R1NlKCk7S1NlKCk7WVNlKCk7WlNlKCk7WFNlKCk7UVNlKCk7SlNlKCk7ZV9lKCk7dF9lKCk7YV9lKCk7c19lKCk7aV9lKCk7cl9lKCk7b19lKCk7bl9lKCk7bF9lKCk7Y19lKCk7ZF9lKCk7dV9lKCk7cF9lKCk7aF9lKCk7Zl9lKCk7bV9lKCk7Z19lKCk7Yl9lKCk7dl9lKCk7eF9lKCk7eV9lKCk7d19lKCk7a19lKCk7U19lKCk7X19lKCk7TV9lKCk7el9lKCk7Q19lKCk7VF9lKCk7JF9lKCk7RF9lKCk7TF9lKCk7RV9lKCk7UF9lKCk7SV9lKCk7QV9lKCk7Tl9lKCk7Ul9lKCk7T19lKCk7Rl9lKCk7Ql9lKCk7SF9lKCk7cV9lKCk7al9lKCk7Vl9lKCk7VV9lKCk7V19lKCk7R19lKCk7S19lKCk7WV9lKCk7Wl9lKCk7WF9lKCk7UV9lKCk7Sl9lKCk7ZU1lKCk7dE1lKCk7YU1lKCk7c01lKCk7aU1lKCk7ck1lKCk7b01lKCk7bk1lKCk7bE1lKCk7Y01lKCk7ZE1lKCk7dU1lKCk7cE1lKCk7aE1lKCk7Zk1lKCk7bU1lKCk7Z01lKCk7Yk1lKCk7dk1lKCk7eE1lKCk7eU1lKCk7d01lKCk7a01lKCk7U01lKCk7X01lKCk7TU1lKCk7ek1lKCk7Q01lKCk7VE1lKCk7JE1lKCk7RE1lKCk7TE1lKCk7RU1lKCk7UE1lKCk7SU1lKCk7QU1lKCk7Tk1lKCk7Uk1lKCk7T01lKCk7Rk1lKCk7Qk1lKCk7SE1lKCk7cU1lKCk7ak1lKCk7Vk1lKCk7VU1lKCk7V01lKCk7R01lKCk7S01lKCk7WU1lKCk7Wk1lKCk7WE1lKCk7UU1lKCk7Sk1lKCk7ZXplKCk7dHplKCk7YXplKCk7c3plKCk7aXplKCk7cnplKCk7b3plKCk7bnplKCk7bHplKCk7Y3plKCk7ZHplKCk7dXplKCk7cHplKCk7aHplKCk7ZnplKCk7bXplKCk7Z3plKCk7YnplKCk7dnplKCk7eHplKCk7eXplKCk7d3plKCk7a3plKCk7U3plKCk7X3plKCk7TXplKCk7enplKCk7Q3plKCk7VHplKCk7JHplKCk7RHplKCk7THplKCk7RXplKCk7UHplKCk7SXplKCk7QXplKCk7TnplKCk7UnplKCk7T3plKCk7RnplKCk7QnplKCk7SHplKCk7cXplKCk7anplKCk7VnplKCk7VXplKCk7V3plKCk7R3plKCk7S3plKCk7WXplKCk7WnplKCk7WHplKCk7UXplKCk7SnplKCk7ZUNlKCk7dENlKCk7YUNlKCk7c0NlKCk7aUNlKCk7ckNlKCk7b0NlKCk7bkNlKCk7bENlKCk7Y0NlKCk7ZENlKCk7dUNlKCk7cENlKCk7aENlKCk7ZkNlKCk7bUNlKCk7Z0NlKCk7YkNlKCk7dkNlKCk7eENlKCk7eUNlKCk7d0NlKCk7a0NlKCk7U0NlKCk7X0NlKCk7TUNlKCk7ekNlKCk7Q0NlKCk7VENlKCk7JENlKCk7RENlKCk7TENlKCk7RUNlKCk7UENlKCk7SUNlKCk7QUNlKCk7TkNlKCk7UkNlKCk7T0NlKCk7RkNlKCk7QkNlKCk7SENlKCk7cUNlKCk7akNlKCk7VkNlKCk7VUNlKCk7V0NlKCk7R0NlKCk7S0NlKCk7WUNlKCk7WkNlKCk7WENlKCk7UUNlKCk7SkNlKCk7ZVRlKCk7dFRlKCk7YVRlKCk7c1RlKCk7aVRlKCk7clRlKCk7b1RlKCk7blRlKCk7bFRlKCk7Y1RlKCk7ZFRlKCk7dVRlKCk7cFRlKCk7aFRlKCk7ZlRlKCk7bVRlKCk7Z1RlKCk7YlRlKCk7dlRlKCk7eFRlKCk7eVRlKCk7d1RlKCk7a1RlKCk7U1RlKCk7X1RlKCk7TVRlKCk7elRlKCk7Q1RlKCk7VFRlKCk7JFRlKCk7RFRlKCk7TFRlKCk7RVRlKCk7UFRlKCk7SVRlKCk7QVRlKCk7TlRlKCk7UlRlKCk7T1RlKCk7RlRlKCk7QlRlKCk7SFRlKCk7cVRlKCk7alRlKCk7VlRlKCk7VVRlKCk7V1RlKCk7R1RlKCk7S1RlKCk7WVRlKCk7WlRlKCk7WFRlKCk7UVRlKCk7SlRlKCk7ZSRlKCk7dCRlKCk7YSRlKCk7cyRlKCk7aSRlKCk7ciRlKCk7byRlKCk7biRlKCk7bCRlKCk7YyRlKCk7ZCRlKCk7dSRlKCk7cCRlKCk7aCRlKCk7ZiRlKCk7bSRlKCk7ZyRlKCk7YiRlKCk7diRlKCk7eCRlKCk7eSRlKCk7dyRlKCk7ayRlKCk7UyRlKCk7XyRlKCk7TSRlKCk7eiRlKCk7QyRlKCk7VCRlKCk7JCRlKCk7RCRlKCk7TCRlKCk7RSRlKCk7UCRlKCk7SSRlKCk7QSRlKCk7TiRlKCk7UiRlKCk7TyRlKCk7RiRlKCk7QiRlKCk7SCRlKCk7cSRlKCk7aiRlKCk7ViRlKCk7VSRlKCk7VyRlKCk7RyRlKCk7SyRlKCk7WSRlKCk7WiRlKCk7WCRlKCk7USRlKCk7SiRlKCk7ZURlKCk7dERlKCk7YURlKCk7c0RlKCk7aURlKCk7ckRlKCk7b0RlKCk7bkRlKCk7bERlKCk7Y0RlKCk7ZERlKCk7dURlKCk7cERlKCk7aERlKCk7ZkRlKCk7bURlKCk7Z0RlKCk7YkRlKCk7dkRlKCk7eERlKCk7eURlKCk7d0RlKCk7a0RlKCk7U0RlKCk7X0RlKCk7TURlKCk7ekRlKCk7Q0RlKCk7VERlKCk7JERlKCk7RERlKCk7TERlKCk7RURlKCk7UERlKCk7SURlKCk7QURlKCk7TkRlKCk7UkRlKCk7T0RlKCk7RkRlKCk7QkRlKCk7SERlKCk7cURlKCk7akRlKCk7VkRlKCk7VURlKCk7V0RlKCk7R0RlKCk7S0RlKCk7WURlKCk7WkRlKCk7WERlKCk7UURlKCk7SkRlKCk7ZUxlKCk7dExlKCk7YUxlKCk7c0xlKCk7aUxlKCk7ckxlKCk7b0xlKCk7bkxlKCk7bExlKCk7Y0xlKCk7ZExlKCk7dUxlKCk7cExlKCk7aExlKCk7ZkxlKCk7bUxlKCk7Z0xlKCk7YkxlKCk7dkxlKCk7eExlKCk7eUxlKCk7d0xlKCk7a0xlKCk7U0xlKCk7X0xlKCk7TUxlKCk7ekxlKCk7Q0xlKCk7VExlKCk7JExlKCk7RExlKCk7TExlKCk7RUxlKCk7UExlKCk7SUxlKCk7QUxlKCk7TkxlKCk7UkxlKCk7T0xlKCk7RkxlKCk7QkxlKCk7SExlKCk7cUxlKCk7akxlKCk7VkxlKCk7VUxlKCk7V0xlKCk7R0xlKCk7S0xlKCk7WUxlKCk7WkxlKCk7WExlKCk7UUxlKCk7SkxlKCk7ZUVlKCk7dEVlKCk7YUVlKCk7c0VlKCk7aUVlKCk7ckVlKCk7b0VlKCk7bkVlKCk7bEVlKCk7Y0VlKCk7ZEVlKCk7dUVlKCk7cEVlKCk7aEVlKCk7ZkVlKCk7bUVlKCk7Z0VlKCk7YkVlKCk7dkVlKCk7eEVlKCk7eUVlKCk7d0VlKCk7a0VlKCk7U0VlKCk7X0VlKCk7TUVlKCk7ekVlKCk7Q0VlKCk7VEVlKCk7JEVlKCk7REVlKCk7TEVlKCk7RUVlKCk7UEVlKCk7SUVlKCk7QUVlKCk7TkVlKCk7UkVlKCk7T0VlKCk7RkVlKCk7QkVlKCk7SEVlKCk7cUVlKCk7akVlKCk7VkVlKCk7VUVlKCk7V0VlKCk7R0VlKCk7S0VlKCk7WUVlKCk7WkVlKCk7WEVlKCk7UUVlKCk7SkVlKCk7ZVBlKCk7dFBlKCk7YVBlKCk7c1BlKCk7aVBlKCk7clBlKCk7b1BlKCk7blBlKCk7bFBlKCk7Y1BlKCk7ZFBlKCk7dVBlKCk7cFBlKCk7aFBlKCk7ZlBlKCk7bVBlKCk7Z1BlKCk7YlBlKCk7dlBlKCk7eFBlKCk7eVBlKCk7d1BlKCk7a1BlKCk7U1BlKCk7X1BlKCk7TVBlKCk7elBlKCk7Q1BlKCk7VFBlKCk7JFBlKCk7RFBlKCk7TFBlKCk7RVBlKCk7UFBlKCk7SVBlKCk7QVBlKCk7TlBlKCk7UlBlKCk7T1BlKCk7RlBlKCk7QlBlKCk7SFBlKCk7cVBlKCk7alBlKCk7VlBlKCk7VVBlKCk7V1BlKCk7R1BlKCk7S1BlKCk7WVBlKCk7WlBlKCk7WFBlKCk7UVBlKCk7SlBlKCk7ZUllKCk7dEllKCk7YUllKCk7c0llKCk7aUllKCk7ckllKCk7b0llKCk7bkllKCk7bEllKCk7Y0llKCk7ZEllKCk7dUllKCk7cEllKCk7aEllKCk7ZkllKCk7bUllKCk7Z0llKCk7YkllKCk7dkllKCk7eEllKCk7eUllKCk7d0llKCk7a0llKCk7U0llKCk7X0llKCk7TUllKCk7ekllKCk7Q0llKCk7VEllKCk7JEllKCk7REllKCk7TEllKCk7RUllKCk7UEllKCk7SUllKCk7QUllKCk7TkllKCk7UkllKCk7T0llKCk7RkllKCk7QkllKCk7SEllKCk7cUllKCk7akllKCk7VkllKCk7VUllKCk7V0llKCk7R0llKCk7S0llKCk7WUllKCk7WkllKCk7WEllKCk7UUllKCk7SkllKCk7ZUFlKCk7dEFlKCk7YUFlKCk7c0FlKCk7aUFlKCk7ckFlKCk7b0FlKCk7bkFlKCk7bEFlKCk7Y0FlKCk7ZEFlKCk7dUFlKCk7cEFlKCk7aEFlKCk7ZkFlKCk7bUFlKCk7Z0FlKCk7YkFlKCk7dkFlKCk7eEFlKCk7eUFlKCk7d0FlKCk7a0FlKCk7U0FlKCk7X0FlKCk7TUFlKCk7ekFlKCk7Q0FlKCk7VEFlKCk7JEFlKCk7REFlKCk7TEFlKCk7RUFlKCk7UEFlKCk7SUFlKCk7QUFlKCk7TkFlKCk7UkFlKCk7T0FlKCk7RkFlKCk7QkFlKCk7SEFlKCk7cUFlKCk7akFlKCk7VkFlKCk7VUFlKCk7V0FlKCk7R0FlKCk7S0FlKCk7WUFlKCk7WkFlKCk7WEFlKCk7UUFlKCk7SkFlKCk7ZU5lKCk7dE5lKCk7YU5lKCk7c05lKCk7aU5lKCk7ck5lKCk7b05lKCk7bk5lKCk7bE5lKCk7Y05lKCk7ZE5lKCk7dU5lKCk7cE5lKCk7aE5lKCk7Zk5lKCk7bU5lKCk7Z05lKCk7Yk5lKCk7dk5lKCk7eE5lKCk7eU5lKCk7d05lKCk7a05lKCk7U05lKCk7X05lKCk7TU5lKCk7ek5lKCk7Q05lKCk7VE5lKCk7JE5lKCk7RE5lKCk7TE5lKCk7RU5lKCk7UE5lKCk7SU5lKCk7QU5lKCk7Tk5lKCk7Uk5lKCk7T05lKCk7Rk5lKCk7Qk5lKCk7SE5lKCk7cU5lKCk7ak5lKCk7Vk5lKCk7VU5lKCk7V05lKCk7R05lKCk7S05lKCk7WU5lKCk7Wk5lKCk7WE5lKCk7UU5lKCk7Sk5lKCk7ZVJlKCk7dFJlKCk7YVJlKCk7c1JlKCk7aVJlKCk7clJlKCk7b1JlKCk7blJlKCk7bFJlKCk7Y1JlKCk7ZFJlKCk7dVJlKCk7cFJlKCk7aFJlKCk7ZlJlKCk7bVJlKCk7Z1JlKCk7YlJlKCk7dlJlKCk7eFJlKCk7eVJlKCk7d1JlKCk7a1JlKCk7U1JlKCk7X1JlKCk7TVJlKCk7elJlKCk7Q1JlKCk7VFJlKCk7JFJlKCk7RFJlKCk7TFJlKCk7RVJlKCk7UFJlKCk7SVJlKCk7QVJlKCk7TlJlKCk7UlJlKCk7T1JlKCk7RlJlKCk7QlJlKCk7SFJlKCk7cVJlKCk7alJlKCk7VlJlKCk7VVJlKCk7V1JlKCk7R1JlKCk7S1JlKCk7WVJlKCk7WlJlKCk7WFJlKCk7UVJlKCk7SlJlKCk7ZU9lKCk7dE9lKCk7YU9lKCk7c09lKCk7aU9lKCk7ck9lKCk7b09lKCk7bk9lKCk7bE9lKCk7Y09lKCk7ZE9lKCk7dU9lKCk7cE9lKCk7aE9lKCk7Zk9lKCk7bU9lKCk7Z09lKCk7Yk9lKCk7dk9lKCk7eE9lKCk7eU9lKCk7d09lKCk7a09lKCk7U09lKCk7X09lKCk7TU9lKCk7ek9lKCk7Q09lKCk7VE9lKCk7JE9lKCk7RE9lKCk7TE9lKCk7RU9lKCk7UE9lKCk7SU9lKCk7QU9lKCk7Tk9lKCk7Uk9lKCk7T09lKCk7Rk9lKCk7Qk9lKCk7SE9lKCk7cU9lKCk7ak9lKCk7Vk9lKCk7VU9lKCk7V09lKCk7R09lKCk7S09lKCk7WU9lKCk7Wk9lKCk7WE9lKCk7UU9lKCk7Sk9lKCk7ZUZlKCk7dEZlKCk7YUZlKCk7c0ZlKCk7aUZlKCk7ckZlKCk7b0ZlKCk7bkZlKCk7bEZlKCk7Y0ZlKCk7ZEZlKCk7dUZlKCk7cEZlKCk7aEZlKCk7ZkZlKCk7bUZlKCk7Z0ZlKCk7YkZlKCk7dkZlKCk7eEZlKCk7eUZlKCk7d0ZlKCk7a0ZlKCk7U0ZlKCk7X0ZlKCk7TUZlKCk7ekZlKCk7Q0ZlKCk7VEZlKCk7JEZlKCk7REZlKCk7TEZlKCk7RUZlKCk7UEZlKCk7SUZlKCk7QUZlKCk7TkZlKCk7UkZlKCk7T0ZlKCk7RkZlKCk7QkZlKCk7SEZlKCk7cUZlKCk7akZlKCk7VkZlKCk7VUZlKCk7V0ZlKCk7R0ZlKCk7S0ZlKCk7WUZlKCk7WkZlKCk7WEZlKCk7UUZlKCk7SkZlKCk7ZUJlKCk7dEJlKCk7YUJlKCk7c0JlKCk7aUJlKCk7ckJlKCk7b0JlKCk7bkJlKCk7bEJlKCk7Y0JlKCk7ZEJlKCk7dUJlKCk7cEJlKCk7aEJlKCk7ZkJlKCk7bUJlKCk7Z0JlKCk7YkJlKCk7dkJlKCk7eEJlKCk7eUJlKCk7d0JlKCk7a0JlKCk7U0JlKCk7X0JlKCk7TUJlKCk7ekJlKCk7Q0JlKCk7VEJlKCk7JEJlKCk7REJlKCk7TEJlKCk7RUJlKCk7UEJlKCk7SUJlKCk7QUJlKCk7TkJlKCk7UkJlKCk7T0JlKCk7RkJlKCk7QkJlKCk7SEJlKCk7cUJlKCk7akJlKCk7VkJlKCk7VUJlKCk7V0JlKCk7R0JlKCk7S0JlKCk7WUJlKCk7WkJlKCk7WEJlKCk7UUJlKCk7SkJlKCk7ZUhlKCk7dEhlKCk7YUhlKCk7c0hlKCk7aUhlKCk7ckhlKCk7b0hlKCk7bkhlKCk7bEhlKCk7Y0hlKCk7ZEhlKCk7dUhlKCk7cEhlKCk7aEhlKCk7ZkhlKCk7bUhlKCk7Z0hlKCk7YkhlKCk7dkhlKCk7eEhlKCk7eUhlKCk7d0hlKCk7a0hlKCk7U0hlKCk7X0hlKCk7TUhlKCk7ekhlKCk7Q0hlKCk7VEhlKCk7JEhlKCk7REhlKCk7TEhlKCk7RUhlKCk7UEhlKCk7SUhlKCk7QUhlKCk7TkhlKCk7UkhlKCk7T0hlKCk7RkhlKCk7QkhlKCk7SEhlKCk7cUhlKCk7akhlKCk7VkhlKCk7VUhlKCk7V0hlKCk7R0hlKCk7S0hlKCk7WUhlKCk7WkhlKCk7WEhlKCk7UUhlKCk7SkhlKCk7ZXFlKCk7dHFlKCk7YXFlKCk7c3FlKCk7aXFlKCk7cnFlKCk7b3FlKCk7bnFlKCk7bHFlKCk7Y3FlKCk7ZHFlKCk7dXFlKCk7cHFlKCk7aHFlKCk7ZnFlKCk7bXFlKCk7Z3FlKCk7YnFlKCk7dnFlKCk7eHFlKCk7eXFlKCk7d3FlKCk7a3FlKCk7U3FlKCk7X3FlKCk7TXFlKCk7enFlKCk7Q3FlKCk7VHFlKCk7JHFlKCk7RHFlKCk7THFlKCk7RXFlKCk7UHFlKCk7SXFlKCk7QXFlKCk7TnFlKCk7UnFlKCk7T3FlKCk7RnFlKCk7QnFlKCk7SHFlKCk7cXFlKCk7anFlKCk7VnFlKCk7VXFlKCk7V3FlKCk7R3FlKCk7S3FlKCk7WXFlKCk7WnFlKCk7WHFlKCk7UXFlKCk7SnFlKCk7ZWplKCk7dGplKCk7YWplKCk7c2plKCk7aWplKCk7cmplKCk7b2plKCk7bmplKCk7bGplKCk7Y2plKCk7ZGplKCk7dWplKCk7cGplKCk7aGplKCk7ZmplKCk7bWplKCk7Z2plKCk7YmplKCk7dmplKCk7eGplKCk7eWplKCk7d2plKCk7a2plKCk7U2plKCk7X2plKCk7TWplKCk7emplKCk7Q2plKCk7VGplKCk7JGplKCk7RGplKCk7TGplKCk7RWplKCk7UGplKCk7SWplKCk7QWplKCk7TmplKCk7UmplKCk7T2plKCk7RmplKCk7QmplKCk7SGplKCk7cWplKCk7amplKCk7VmplKCk7VWplKCk7V2plKCk7R2plKCk7S2plKCk7WWplKCk7WmplKCk7WGplKCk7UWplKCk7SmplKCk7ZVZlKCk7dFZlKCk7YVZlKCk7c1ZlKCk7aVZlKCk7clZlKCk7b1ZlKCk7blZlKCk7bFZlKCk7Y1ZlKCk7ZFZlKCk7dVZlKCk7cFZlKCk7aFZlKCk7ZlZlKCk7bVZlKCk7Z1ZlKCk7YlZlKCk7dlZlKCk7eFZlKCk7eVZlKCk7d1ZlKCk7a1ZlKCk7U1ZlKCk7X1ZlKCk7TVZlKCk7elZlKCk7Q1ZlKCk7VFZlKCk7JFZlKCk7RFZlKCk7TFZlKCk7RVZlKCk7UFZlKCk7SVZlKCk7QVZlKCk7TlZlKCk7UlZlKCk7T1ZlKCk7RlZlKCk7QlZlKCk7SFZlKCk7cVZlKCk7alZlKCk7VlZlKCk7VVZlKCk7V1ZlKCk7R1ZlKCk7S1ZlKCk7WVZlKCk7WlZlKCk7WFZlKCk7UVZlKCk7SlZlKCk7ZVVlKCk7dFVlKCk7YVVlKCk7c1VlKCk7aVVlKCk7clVlKCk7b1VlKCk7blVlKCk7bFVlKCk7Y1VlKCk7ZFVlKCk7dVVlKCk7cFVlKCk7aFVlKCk7ZlVlKCk7bVVlKCk7Z1VlKCk7YlVlKCk7dlVlKCk7eFVlKCk7eVVlKCk7d1VlKCk7a1VlKCk7U1VlKCk7X1VlKCk7TVVlKCk7elVlKCk7Q1VlKCk7VFVlKCk7JFVlKCk7RFVlKCk7TFVlKCk7RVVlKCk7UFVlKCk7SVVlKCk7QVVlKCk7TlVlKCk7UlVlKCk7T1VlKCk7RlVlKCk7QlVlKCk7SFVlKCk7cVVlKCk7alVlKCk7VlVlKCk7VVVlKCk7V1VlKCk7R1VlKCk7S1VlKCk7WVVlKCk7WlVlKCk7WFVlKCk7UVVlKCk7SlVlKCk7ZVdlKCk7dFdlKCk7YVdlKCk7c1dlKCk7aVdlKCk7cldlKCk7b1dlKCk7bldlKCk7bFdlKCk7Y1dlKCk7ZFdlKCk7dVdlKCk7cFdlKCk7aFdlKCk7ZldlKCk7bVdlKCk7Z1dlKCk7YldlKCk7dldlKCk7eFdlKCk7eVdlKCk7d1dlKCk7a1dlKCk7U1dlKCk7X1dlKCk7TVdlKCk7eldlKCk7Q1dlKCk7VFdlKCk7JFdlKCk7RFdlKCk7TFdlKCk7RVdlKCk7UFdlKCk7SVdlKCk7QVdlKCk7TldlKCk7UldlKCk7T1dlKCk7RldlKCk7QldlKCk7SFdlKCk7cVdlKCk7aldlKCk7VldlKCk7VVdlKCk7V1dlKCk7R1dlKCk7S1dlKCk7WVdlKCk7WldlKCk7WFdlKCk7UVdlKCk7SldlKCk7ZUdlKCk7dEdlKCk7YUdlKCk7c0dlKCk7aUdlKCk7ckdlKCk7b0dlKCk7bkdlKCk7bEdlKCk7Y0dlKCk7ZEdlKCk7dUdlKCk7cEdlKCk7aEdlKCk7ZkdlKCk7bUdlKCk7Z0dlKCk7YkdlKCk7dkdlKCk7eEdlKCk7eUdlKCk7d0dlKCk7a0dlKCk7U0dlKCk7X0dlKCk7TUdlKCk7ekdlKCk7Q0dlKCk7VEdlKCk7JEdlKCk7REdlKCk7TEdlKCk7RUdlKCk7UEdlKCk7SUdlKCk7QUdlKCk7TkdlKCk7UkdlKCk7T0dlKCk7RkdlKCk7QkdlKCk7SEdlKCk7cUdlKCk7akdlKCk7VkdlKCk7VUdlKCk7V0dlKCk7R0dlKCk7S0dlKCk7WUdlKCk7WkdlKCk7WEdlKCk7UUdlKCk7SkdlKCk7ZUtlKCk7dEtlKCk7YUtlKCk7c0tlKCk7aUtlKCk7cktlKCk7b0tlKCk7bktlKCk7bEtlKCk7Y0tlKCk7ZEtlKCk7dUtlKCk7cEtlKCk7aEtlKCk7ZktlKCk7bUtlKCk7Z0tlKCk7YktlKCk7dktlKCk7eEtlKCk7eUtlKCk7d0tlKCk7a0tlKCk7U0tlKCk7X0tlKCk7TUtlKCk7ektlKCk7Q0tlKCk7VEtlKCk7JEtlKCk7REtlKCk7TEtlKCk7RUtlKCk7UEtlKCk7SUtlKCk7QUtlKCk7TktlKCk7UktlKCk7T0tlKCk7RktlKCk7QktlKCk7SEtlKCk7cUtlKCk7aktlKCk7VktlKCk7VUtlKCk7V0tlKCk7R0tlKCk7S0tlKCk7WUtlKCk7WktlKCk7WEtlKCk7UUtlKCk7SktlKCk7ZVllKCk7dFllKCk7YVllKCk7c1llKCk7aVllKCk7clllKCk7b1llKCk7blllKCk7bFllKCk7Y1llKCk7ZFllKCk7dVllKCk7cFllKCk7aFllKCk7ZlllKCk7bVllKCk7Z1llKCk7YlllKCk7dlllKCk7eFllKCk7eVllKCk7d1llKCk7a1llKCk7U1llKCk7X1llKCk7TVllKCk7elllKCk7Q1llKCk7VFllKCk7JFllKCk7RFllKCk7TFllKCk7RVllKCk7UFllKCk7SVllKCk7QVllKCk7TlllKCk7UlllKCk7T1llKCk7RlllKCk7QlllKCk7SFllKCk7cVllKCk7alllKCk7VlllKCk7VVllKCk7V1llKCk7R1llKCk7S1llKCk7WVllKCk7WlllKCk7WFllKCk7UVllKCk7SlllKCk7ZVplKCk7dFplKCk7YVplKCk7c1plKCk7aVplKCk7clplKCk7b1plKCk7blplKCk7bFplKCk7Y1plKCk7ZFplKCk7dVplKCk7cFplKCk7aFplKCk7ZlplKCk7bVplKCk7Z1plKCk7YlplKCk7dlplKCk7eFplKCk7eVplKCk7d1plKCk7a1plKCk7U1plKCk7X1plKCk7TVplKCk7elplKCk7Q1plKCk7VFplKCk7JFplKCk7RFplKCk7TFplKCk7RVplKCk7UFplKCk7SVplKCk7QVplKCk7TlplKCk7UlplKCk7T1plKCk7RlplKCk7QlplKCk7SFplKCk7cVplKCk7alplKCk7VlplKCk7VVplKCk7V1plKCk7R1plKCk7S1plKCk7WVplKCk7WlplKCk7WFplKCk7UVplKCk7SlplKCk7ZVhlKCk7dFhlKCk7YVhlKCk7c1hlKCk7aVhlKCk7clhlKCk7b1hlKCk7blhlKCk7bFhlKCk7Y1hlKCk7ZFhlKCk7dVhlKCk7cFhlKCk7aFhlKCk7ZlhlKCk7bVhlKCk7Z1hlKCk7YlhlKCk7dlhlKCk7eFhlKCk7eVhlKCk7d1hlKCk7a1hlKCk7U1hlKCk7X1hlKCk7TVhlKCk7elhlKCk7Q1hlKCk7VFhlKCk7JFhlKCk7RFhlKCk7TFhlKCk7RVhlKCk7UFhlKCk7SVhlKCk7QVhlKCk7TlhlKCk7UlhlKCk7T1hlKCk7RlhlKCk7QlhlKCk7SFhlKCk7cVhlKCk7alhlKCk7VlhlKCk7VVhlKCk7V1hlKCk7R1hlKCk7S1hlKCk7WVhlKCk7WlhlKCk7WFhlKCk7UVhlKCk7SlhlKCk7ZVFlKCk7dFFlKCk7YVFlKCk7c1FlKCk7aVFlKCk7clFlKCk7b1FlKCk7blFlKCk7bFFlKCk7Y1FlKCk7ZFFlKCk7dVFlKCk7cFFlKCk7aFFlKCk7ZlFlKCk7bVFlKCk7Z1FlKCk7YlFlKCk7dlFlKCk7eFFlKCk7eVFlKCk7d1FlKCk7a1FlKCk7U1FlKCk7X1FlKCk7TVFlKCk7elFlKCk7Q1FlKCk7VFFlKCk7JFFlKCk7RFFlKCk7TFFlKCk7RVFlKCk7UFFlKCk7SVFlKCk7QVFlKCk7TlFlKCk7UlFlKCk7T1FlKCk7RlFlKCk7QlFlKCk7SFFlKCk7cVFlKCk7alFlKCk7VlFlKCk7VVFlKCk7V1FlKCk7R1FlKCk7S1FlKCk7WVFlKCk7WlFlKCk7WFFlKCk7UVFlKCk7SlFlKCk7ZUplKCk7dEplKCk7YUplKCk7c0plKCk7aUplKCk7ckplKCk7b0plKCk7bkplKCk7bEplKCk7Y0plKCk7ZEplKCk7dUplKCk7cEplKCk7aEplKCk7ZkplKCk7bUplKCk7Z0plKCk7YkplKCk7dkplKCk7eEplKCk7eUplKCk7d0plKCk7a0plKCk7U0plKCk7X0plKCk7TUplKCk7ekplKCk7Q0plKCk7VEplKCk7JEplKCk7REplKCk7TEplKCk7RUplKCk7UEplKCk7SUplKCk7QUplKCk7TkplKCk7UkplKCk7T0plKCk7RkplKCk7QkplKCk7SEplKCk7cUplKCk7akplKCk7VkplKCk7VUplKCk7V0plKCk7R0plKCk7S0plKCk7WUplKCk7WkplKCk7WEplKCk7UUplKCk7SkplKCk7ZWV0KCk7dGV0KCk7YWV0KCk7c2V0KCk7aWV0KCk7cmV0KCk7b2V0KCk7bmV0KCk7Y2V0KCk7ZGV0KCk7dWV0KCk7cGV0KCk7aGV0KCk7ZmV0KCk7bWV0KCk7Z2V0KCk7YmV0KCk7dmV0KCk7eGV0KCk7eWV0KCk7fSk7dmFyIEdyPXt9O3l0KEdyLHtBQXJyb3dEb3duOigpPT5oUyxBQXJyb3dVcDooKT0+ZlMsQUxhcmdlU21hbGw6KCk9Pm1TLEFjY2Vzc2liaWxpdHk6KCk9PmdTLEFjdGl2aXR5OigpPT5iUyxBY3Rpdml0eVNxdWFyZTooKT0+aTUsQWlyVmVudDooKT0+dlMsQWlycGxheTooKT0+eFMsQWxhcm1DaGVjazooKT0+eGYsQWxhcm1DbG9jazooKT0+d1MsQWxhcm1DbG9ja0NoZWNrOigpPT54ZixBbGFybUNsb2NrTWludXM6KCk9PnlmLEFsYXJtQ2xvY2tPZmY6KCk9PnlTLEFsYXJtQ2xvY2tQbHVzOigpPT53ZixBbGFybU1pbnVzOigpPT55ZixBbGFybVBsdXM6KCk9PndmLEFsYXJtU21va2U6KCk9PmtTLEFsYnVtOigpPT5TUyxBbGVydENpcmNsZTooKT0+WWYsQWxlcnRPY3RhZ29uOigpPT5QNixBbGVydFRyaWFuZ2xlOigpPT5wOCxBbGlnbkNlbnRlcjooKT0+cjgsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5fUyxBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5NUyxBbGlnbkVuZEhvcml6b250YWw6KCk9PnpTLEFsaWduRW5kVmVydGljYWw6KCk9PlRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PkNTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PiRTLEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+RFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+TFMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+RVMsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5QUyxBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+SVMsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5SUyxBbGlnbkp1c3RpZnk6KCk9Pm44LEFsaWduTGVmdDooKT0+WDAsQWxpZ25SaWdodDooKT0+bzgsQWxpZ25TdGFydEhvcml6b250YWw6KCk9PkFTLEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+TlMsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Pk9TLEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5GUyxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5CUyxBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+SFMsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PnFTLEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9PmpTLEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+VlMsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+VVMsQW1idWxhbmNlOigpPT5XUyxBbXBlcnNhbmQ6KCk9PktTLEFtcGVyc2FuZHM6KCk9PkdTLEFtcGhvcmE6KCk9PllTLEFuY2hvcjooKT0+WlMsQW5ncnk6KCk9PlhTLEFubm95ZWQ6KCk9PlFTLEFudGVubmE6KCk9PkpTLEFudmlsOigpPT5lXyxBcGVydHVyZTooKT0+dF8sQXBwV2luZG93OigpPT5zXyxBcHBXaW5kb3dNYWM6KCk9PmFfLEFwcGxlOigpPT5yXyxBcmNoaXZlOigpPT5sXyxBcmNoaXZlUmVzdG9yZTooKT0+aV8sQXJjaGl2ZVg6KCk9Pm9fLEFyZWFDaGFydDooKT0+TmYsQXJtY2hhaXI6KCk9Pm5fLEFycm93QmlnRG93bjooKT0+ZF8sQXJyb3dCaWdEb3duRGFzaDooKT0+Y18sQXJyb3dCaWdMZWZ0OigpPT51XyxBcnJvd0JpZ0xlZnREYXNoOigpPT5wXyxBcnJvd0JpZ1JpZ2h0OigpPT5mXyxBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+aF8sQXJyb3dCaWdVcDooKT0+Z18sQXJyb3dCaWdVcERhc2g6KCk9Pm1fLEFycm93RG93bjooKT0+el8sQXJyb3dEb3duMDE6KCk9PmJfLEFycm93RG93bjEwOigpPT52XyxBcnJvd0Rvd25BWjooKT0+a2YsQXJyb3dEb3duQXo6KCk9PmtmLEFycm93RG93bkNpcmNsZTooKT0+WmYsQXJyb3dEb3duRnJvbUxpbmU6KCk9PnhfLEFycm93RG93bkxlZnQ6KCk9PnlfLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5RZixBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+YzUsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+cjUsQXJyb3dEb3duTmFycm93V2lkZTooKT0+d18sQXJyb3dEb3duUmlnaHQ6KCk9PmtfLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+SmYsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5kNSxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+bzUsQXJyb3dEb3duU3F1YXJlOigpPT5uNSxBcnJvd0Rvd25Ub0RvdDooKT0+U18sQXJyb3dEb3duVG9MaW5lOigpPT5NXyxBcnJvd0Rvd25VcDooKT0+X18sQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+U2YsQXJyb3dEb3duWkE6KCk9Pl9mLEFycm93RG93blphOigpPT5fZixBcnJvd0xlZnQ6KCk9PkxfLEFycm93TGVmdENpcmNsZTooKT0+WGYsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PkNfLEFycm93TGVmdFJpZ2h0OigpPT5UXyxBcnJvd0xlZnRTcXVhcmU6KCk9Pmw1LEFycm93TGVmdFRvTGluZTooKT0+JF8sQXJyb3dSaWdodDooKT0+SV8sQXJyb3dSaWdodENpcmNsZTooKT0+YW0sQXJyb3dSaWdodEZyb21MaW5lOigpPT5EXyxBcnJvd1JpZ2h0TGVmdDooKT0+RV8sQXJyb3dSaWdodFNxdWFyZTooKT0+aDUsQXJyb3dSaWdodFRvTGluZTooKT0+UF8sQXJyb3dVcDooKT0+Vl8sQXJyb3dVcDAxOigpPT5OXyxBcnJvd1VwMTA6KCk9PkFfLEFycm93VXBBWjooKT0+TWYsQXJyb3dVcEF6OigpPT5NZixBcnJvd1VwQ2lyY2xlOigpPT5zbSxBcnJvd1VwRG93bjooKT0+Ul8sQXJyb3dVcEZyb21Eb3Q6KCk9Pk9fLEFycm93VXBGcm9tTGluZTooKT0+Rl8sQXJyb3dVcExlZnQ6KCk9PkJfLEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+ZW0sQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT51NSxBcnJvd1VwTGVmdFNxdWFyZTooKT0+ZjUsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PnpmLEFycm93VXBSaWdodDooKT0+SF8sQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+dG0sQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+cDUsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT5tNSxBcnJvd1VwU3F1YXJlOigpPT5nNSxBcnJvd1VwVG9MaW5lOigpPT5qXyxBcnJvd1VwV2lkZU5hcnJvdzooKT0+cV8sQXJyb3dVcFpBOigpPT5DZixBcnJvd1VwWmE6KCk9PkNmLEFycm93c1VwRnJvbUxpbmU6KCk9PldfLEFzdGVyaXNrOigpPT5VXyxBc3Rlcmlza1NxdWFyZTooKT0+YjUsQXN0cm9pZDooKT0+R18sQXRTaWduOigpPT5LXyxBdG9tOigpPT5ZXyxBdWRpb0xpbmVzOigpPT5aXyxBdWRpb1dhdmVmb3JtOigpPT5YXyxBd2FyZDooKT0+UV8sQXhlOigpPT5KXyxBeGlzM0Q6KCk9PlRmLEF4aXMzZDooKT0+VGYsQmFieTooKT0+ZU0sQmFja3BhY2s6KCk9PnRNLEJhZGdlOigpPT5iTSxCYWRnZUFsZXJ0OigpPT5hTSxCYWRnZUNlbnQ6KCk9PnNNLEJhZGdlQ2hlY2s6KCk9PiRmLEJhZGdlRG9sbGFyU2lnbjooKT0+aU0sQmFkZ2VFdXJvOigpPT5yTSxCYWRnZUhlbHA6KCk9PkRmLEJhZGdlSW5kaWFuUnVwZWU6KCk9Pm9NLEJhZGdlSW5mbzooKT0+bk0sQmFkZ2VKYXBhbmVzZVllbjooKT0+bE0sQmFkZ2VNaW51czooKT0+Y00sQmFkZ2VQZXJjZW50OigpPT5kTSxCYWRnZVBsdXM6KCk9PnVNLEJhZGdlUG91bmRTdGVybGluZzooKT0+cE0sQmFkZ2VRdWVzdGlvbk1hcms6KCk9PkRmLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5mTSxCYWRnZVN3aXNzRnJhbmM6KCk9PmhNLEJhZGdlVHVya2lzaExpcmE6KCk9Pm1NLEJhZGdlWDooKT0+Z00sQmFnZ2FnZUNsYWltOigpPT52TSxCYWxsb29uOigpPT55TSxCYW46KCk9PnhNLEJhbmFuYTooKT0+d00sQmFuZGFnZTooKT0+a00sQmFua25vdGU6KCk9PnpNLEJhbmtub3RlQXJyb3dEb3duOigpPT5fTSxCYW5rbm90ZUFycm93VXA6KCk9PlNNLEJhbmtub3RlWDooKT0+TU0sQmFyQ2hhcnQ6KCk9PlZmLEJhckNoYXJ0MjooKT0+VWYsQmFyQ2hhcnQzOigpPT5xZixCYXJDaGFydDQ6KCk9PkhmLEJhckNoYXJ0QmlnOigpPT5CZixCYXJDaGFydEhvcml6b250YWw6KCk9Pk9mLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+UmYsQmFyY29kZTooKT0+Q00sQmFycmVsOigpPT5UTSxCYXNlbGluZTooKT0+JE0sQmF0aDooKT0+RE0sQmF0dGVyeTooKT0+Uk0sQmF0dGVyeUNoYXJnaW5nOigpPT5MTSxCYXR0ZXJ5RnVsbDooKT0+RU0sQmF0dGVyeUxvdzooKT0+UE0sQmF0dGVyeU1lZGl1bTooKT0+SU0sQmF0dGVyeVBsdXM6KCk9PkFNLEJhdHRlcnlXYXJuaW5nOigpPT5OTSxCZWFrZXI6KCk9PkZNLEJlYW46KCk9PkhNLEJlYW5PZmY6KCk9Pk9NLEJlZDooKT0+Vk0sQmVkRG91YmxlOigpPT5CTSxCZWRTaW5nbGU6KCk9PnFNLEJlZWY6KCk9PlVNLEJlZWZPZmY6KCk9PmpNLEJlZXI6KCk9PkdNLEJlZXJPZmY6KCk9PldNLEJlbGw6KCk9PnR6LEJlbGxDaGVjazooKT0+S00sQmVsbERvdDooKT0+WU0sQmVsbEVsZWN0cmljOigpPT5aTSxCZWxsTWludXM6KCk9PlFNLEJlbGxPZmY6KCk9PlhNLEJlbGxQbHVzOigpPT5KTSxCZWxsUmluZzooKT0+ZXosQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT5FZixCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+TGYsQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+RWYsQmV0d2VlblZlcnRpY2FsRW5kOigpPT5heixCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+c3osQmljZXBzRmxleGVkOigpPT5peixCaWtlOigpPT5yeixCaW5hcnk6KCk9Pm96LEJpbm9jdWxhcnM6KCk9Pm56LEJpb2hhemFyZDooKT0+bHosQmlyZDooKT0+Y3osQmlyZGhvdXNlOigpPT5keixCaXRjb2luOigpPT51eixCbGVuZDooKT0+cHosQmxpbmRzOigpPT5oeixCbG9ja3M6KCk9PmZ6LEJsdWV0b290aDooKT0+YnosQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT5teixCbHVldG9vdGhPZmY6KCk9Pmd6LEJsdWV0b290aFNlYXJjaGluZzooKT0+dnosQm9sZDooKT0+eHosQm9sdDooKT0+d3osQm9tYjooKT0+eXosQm9uZTooKT0+a3osQm9vazooKT0+R3osQm9va0E6KCk9PlN6LEJvb2tBbGVydDooKT0+X3osQm9va0F1ZGlvOigpPT5NeixCb29rQ2hlY2s6KCk9Pnp6LEJvb2tDb3B5OigpPT5DeixCb29rRGFzaGVkOigpPT5QZixCb29rRG93bjooKT0+VHosQm9va0hlYWRwaG9uZXM6KCk9PiR6LEJvb2tIZWFydDooKT0+RHosQm9va0ltYWdlOigpPT5MeixCb29rS2V5OigpPT5FeixCb29rTG9jazooKT0+SXosQm9va01hcmtlZDooKT0+UHosQm9va01pbnVzOigpPT5BeixCb29rT3BlbjooKT0+RnosQm9va09wZW5DaGVjazooKT0+TnosQm9va09wZW5UZXh0OigpPT5SeixCb29rUGx1czooKT0+QnosQm9va1NlYXJjaDooKT0+T3osQm9va1RlbXBsYXRlOigpPT5QZixCb29rVGV4dDooKT0+SHosQm9va1R5cGU6KCk9PlZ6LEJvb2tVcDooKT0+anosQm9va1VwMjooKT0+cXosQm9va1VzZXI6KCk9PlV6LEJvb2tYOigpPT5XeixCb29rbWFyazooKT0+SnosQm9va21hcmtDaGVjazooKT0+S3osQm9va21hcmtNaW51czooKT0+WXosQm9va21hcmtPZmY6KCk9Plp6LEJvb2ttYXJrUGx1czooKT0+WHosQm9va21hcmtYOigpPT5ReixCb29tQm94OigpPT5lQyxCb3Q6KCk9PnNDLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnRDLEJvdE9mZjooKT0+YUMsQm90dGxlV2luZTooKT0+ckMsQm93QXJyb3c6KCk9PmlDLEJveDooKT0+b0MsQm94U2VsZWN0OigpPT5ENSxCb3hlczooKT0+bkMsQnJhY2VzOigpPT5JZixCcmFja2V0czooKT0+bEMsQnJhaW46KCk9PnBDLEJyYWluQ2lyY3VpdDooKT0+Y0MsQnJhaW5Db2c6KCk9PmRDLEJyaWNrV2FsbDooKT0+ZkMsQnJpY2tXYWxsRmlyZTooKT0+dUMsQnJpY2tXYWxsU2hpZWxkOigpPT5oQyxCcmllZmNhc2U6KCk9PnZDLEJyaWVmY2FzZUJ1c2luZXNzOigpPT5tQyxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PmdDLEJyaWVmY2FzZU1lZGljYWw6KCk9PmJDLEJyaW5nVG9Gcm9udDooKT0+eEMsQnJ1c2g6KCk9PndDLEJydXNoQ2xlYW5pbmc6KCk9PnlDLEJ1YmJsZXM6KCk9PlNDLEJ1ZzooKT0+TUMsQnVnT2ZmOigpPT5rQyxCdWdQbGF5OigpPT5fQyxCdWlsZGluZzooKT0+ekMsQnVpbGRpbmcyOigpPT5DQyxCdXM6KCk9PiRDLEJ1c0Zyb250OigpPT5UQyxDYWJsZTooKT0+REMsQ2FibGVDYXI6KCk9PkxDLENha2U6KCk9PlBDLENha2VTbGljZTooKT0+RUMsQ2FsY3VsYXRvcjooKT0+QUMsQ2FsZW5kYXI6KCk9PnRULENhbGVuZGFyMTooKT0+SUMsQ2FsZW5kYXJBcnJvd0Rvd246KCk9Pk5DLENhbGVuZGFyQXJyb3dVcDooKT0+UkMsQ2FsZW5kYXJDaGVjazooKT0+RkMsQ2FsZW5kYXJDaGVjazI6KCk9Pk9DLENhbGVuZGFyQ2xvY2s6KCk9PkJDLENhbGVuZGFyQ29nOigpPT5IQyxDYWxlbmRhckRheXM6KCk9PnFDLENhbGVuZGFyRm9sZDooKT0+akMsQ2FsZW5kYXJIZWFydDooKT0+VUMsQ2FsZW5kYXJNaW51czooKT0+R0MsQ2FsZW5kYXJNaW51czI6KCk9PlZDLENhbGVuZGFyT2ZmOigpPT5XQyxDYWxlbmRhclBsdXM6KCk9PlpDLENhbGVuZGFyUGx1czI6KCk9PktDLENhbGVuZGFyUmFuZ2U6KCk9PllDLENhbGVuZGFyU2VhcmNoOigpPT5YQyxDYWxlbmRhclN5bmM6KCk9PlFDLENhbGVuZGFyWDooKT0+ZVQsQ2FsZW5kYXJYMjooKT0+SkMsQ2FsZW5kYXJzOigpPT5hVCxDYW1lcmE6KCk9PmlULENhbWVyYU9mZjooKT0+c1QsQ2FuZGxlc3RpY2tDaGFydDooKT0+RmYsQ2FuZHk6KCk9Pm9ULENhbmR5Q2FuZTooKT0+clQsQ2FuZHlPZmY6KCk9Pm5ULENhbm5hYmlzOigpPT5jVCxDYW5uYWJpc09mZjooKT0+bFQsQ2FwdGlvbnM6KCk9PkFmLENhcHRpb25zT2ZmOigpPT5kVCxDYXI6KCk9PnBULENhckZyb250OigpPT51VCxDYXJUYXhpRnJvbnQ6KCk9PmhULENhcmF2YW46KCk9PmZULENhcmRTaW06KCk9Pm1ULENhcnJvdDooKT0+Z1QsQ2FzZUxvd2VyOigpPT5iVCxDYXNlU2Vuc2l0aXZlOigpPT52VCxDYXNlVXBwZXI6KCk9PnhULENhc3NldHRlVGFwZTooKT0+eVQsQ2FzdDooKT0+d1QsQ2FzdGxlOigpPT5rVCxDYXQ6KCk9PlNULENjdHY6KCk9Pk1ULENjdHZPZmY6KCk9Pl9ULENoYXJ0QXJlYTooKT0+TmYsQ2hhcnRCYXI6KCk9Pk9mLENoYXJ0QmFyQmlnOigpPT5SZixDaGFydEJhckRlY3JlYXNpbmc6KCk9PnpULENoYXJ0QmFySW5jcmVhc2luZzooKT0+Q1QsQ2hhcnRCYXJTdGFja2VkOigpPT5UVCxDaGFydENhbmRsZXN0aWNrOigpPT5GZixDaGFydENvbHVtbjooKT0+cWYsQ2hhcnRDb2x1bW5CaWc6KCk9PkJmLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+JFQsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5IZixDaGFydENvbHVtblN0YWNrZWQ6KCk9PkRULENoYXJ0R2FudHQ6KCk9PkxULENoYXJ0TGluZTooKT0+amYsQ2hhcnROZXR3b3JrOigpPT5FVCxDaGFydE5vQXhlc0NvbHVtbjooKT0+VWYsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5QVCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9PlZmLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PklULENoYXJ0Tm9BeGVzR2FudHQ6KCk9PldmLENoYXJ0UGllOigpPT5HZixDaGFydFNjYXR0ZXI6KCk9PktmLENoYXJ0U3BsaW5lOigpPT5BVCxDaGVjazooKT0+T1QsQ2hlY2tDaGVjazooKT0+TlQsQ2hlY2tDaXJjbGU6KCk9PmltLENoZWNrQ2lyY2xlMjooKT0+cm0sQ2hlY2tMaW5lOigpPT5SVCxDaGVja1NxdWFyZTooKT0+dzUsQ2hlY2tTcXVhcmUyOigpPT5rNSxDaGVmSGF0OigpPT5GVCxDaGVycnk6KCk9PkJULENoZXNzQmlzaG9wOigpPT5xVCxDaGVzc0tpbmc6KCk9PkhULENoZXNzS25pZ2h0OigpPT5qVCxDaGVzc1Bhd246KCk9PlZULENoZXNzUXVlZW46KCk9PkdULENoZXNzUm9vazooKT0+VVQsQ2hldnJvbkRvd246KCk9PldULENoZXZyb25Eb3duQ2lyY2xlOigpPT5ubSxDaGV2cm9uRG93blNxdWFyZTooKT0+UzUsQ2hldnJvbkZpcnN0OigpPT5LVCxDaGV2cm9uTGFzdDooKT0+WVQsQ2hldnJvbkxlZnQ6KCk9PlpULENoZXZyb25MZWZ0Q2lyY2xlOigpPT5vbSxDaGV2cm9uTGVmdFNxdWFyZTooKT0+XzUsQ2hldnJvblJpZ2h0OigpPT5YVCxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmxtLENoZXZyb25SaWdodFNxdWFyZTooKT0+TTUsQ2hldnJvblVwOigpPT5RVCxDaGV2cm9uVXBDaXJjbGU6KCk9PmNtLENoZXZyb25VcFNxdWFyZTooKT0+ejUsQ2hldnJvbnNEb3duOigpPT5lJCxDaGV2cm9uc0Rvd25VcDooKT0+SlQsQ2hldnJvbnNMZWZ0OigpPT5zJCxDaGV2cm9uc0xlZnRSaWdodDooKT0+YSQsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+dCQsQ2hldnJvbnNSaWdodDooKT0+ciQsQ2hldnJvbnNSaWdodExlZnQ6KCk9PmkkLENoZXZyb25zVXA6KCk9Pm8kLENoZXZyb25zVXBEb3duOigpPT5uJCxDaHVyY2g6KCk9PmwkLENpZ2FyZXR0ZTooKT0+ZCQsQ2lnYXJldHRlT2ZmOigpPT5jJCxDaXJjbGU6KCk9Pk0kLENpcmNsZUFsZXJ0OigpPT5ZZixDaXJjbGVBcnJvd0Rvd246KCk9PlpmLENpcmNsZUFycm93TGVmdDooKT0+WGYsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+UWYsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PkpmLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5lbSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PnRtLENpcmNsZUFycm93UmlnaHQ6KCk9PmFtLENpcmNsZUFycm93VXA6KCk9PnNtLENpcmNsZUNoZWNrOigpPT5ybSxDaXJjbGVDaGVja0JpZzooKT0+aW0sQ2lyY2xlQ2hldnJvbkRvd246KCk9Pm5tLENpcmNsZUNoZXZyb25MZWZ0OigpPT5vbSxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmxtLENpcmNsZUNoZXZyb25VcDooKT0+Y20sQ2lyY2xlRGFzaGVkOigpPT51JCxDaXJjbGVEaXZpZGU6KCk9PmRtLENpcmNsZURvbGxhclNpZ246KCk9PnAkLENpcmNsZURvdDooKT0+bSQsQ2lyY2xlRG90RGFzaGVkOigpPT5oJCxDaXJjbGVFbGxpcHNpczooKT0+ZiQsQ2lyY2xlRXF1YWw6KCk9PmckLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PmIkLENpcmNsZUZhZGluZ1BsdXM6KCk9PnYkLENpcmNsZUdhdWdlOigpPT51bSxDaXJjbGVIZWxwOigpPT5qMCxDaXJjbGVNaW51czooKT0+cG0sQ2lyY2xlT2ZmOigpPT54JCxDaXJjbGVQYXJraW5nOigpPT5mbSxDaXJjbGVQYXJraW5nT2ZmOigpPT5obSxDaXJjbGVQYXVzZTooKT0+bW0sQ2lyY2xlUGVyY2VudDooKT0+Z20sQ2lyY2xlUGlsZTooKT0+eSQsQ2lyY2xlUGxheTooKT0+Ym0sQ2lyY2xlUGx1czooKT0+dm0sQ2lyY2xlUG91bmRTdGVybGluZzooKT0+dyQsQ2lyY2xlUG93ZXI6KCk9PnhtLENpcmNsZVF1ZXN0aW9uTWFyazooKT0+ajAsQ2lyY2xlU2xhc2g6KCk9PmskLENpcmNsZVNsYXNoMjooKT0+eW0sQ2lyY2xlU2xhc2hlZDooKT0+eW0sQ2lyY2xlU21hbGw6KCk9PlMkLENpcmNsZVN0YXI6KCk9Pl8kLENpcmNsZVN0b3A6KCk9PndtLENpcmNsZVVzZXI6KCk9PlNtLENpcmNsZVVzZXJSb3VuZDooKT0+a20sQ2lyY2xlWDooKT0+X20sQ2lyY3VpdEJvYXJkOigpPT56JCxDaXRydXM6KCk9PkMkLENsYXBwZXJib2FyZDooKT0+VCQsQ2xpcGJvYXJkOigpPT5GJCxDbGlwYm9hcmRDaGVjazooKT0+JCQsQ2xpcGJvYXJkQ2xvY2s6KCk9PkQkLENsaXBib2FyZENvcHk6KCk9PkwkLENsaXBib2FyZEVkaXQ6KCk9PnptLENsaXBib2FyZExpc3Q6KCk9PkUkLENsaXBib2FyZE1pbnVzOigpPT5QJCxDbGlwYm9hcmRQYXN0ZTooKT0+SSQsQ2xpcGJvYXJkUGVuOigpPT56bSxDbGlwYm9hcmRQZW5MaW5lOigpPT5NbSxDbGlwYm9hcmRQbHVzOigpPT5BJCxDbGlwYm9hcmRTaWduYXR1cmU6KCk9Pk1tLENsaXBib2FyZFR5cGU6KCk9Pk4kLENsaXBib2FyZFg6KCk9PlIkLENsb2NrOigpPT5zRCxDbG9jazE6KCk9Pk8kLENsb2NrMTA6KCk9PkIkLENsb2NrMTE6KCk9PkgkLENsb2NrMTI6KCk9PnEkLENsb2NrMjooKT0+aiQsQ2xvY2szOigpPT5WJCxDbG9jazQ6KCk9PlUkLENsb2NrNTooKT0+VyQsQ2xvY2s2OigpPT5HJCxDbG9jazc6KCk9PlkkLENsb2NrODooKT0+SyQsQ2xvY2s5OigpPT5aJCxDbG9ja0FsZXJ0OigpPT5YJCxDbG9ja0Fycm93RG93bjooKT0+USQsQ2xvY2tBcnJvd1VwOigpPT5KJCxDbG9ja0NoZWNrOigpPT5lRCxDbG9ja0ZhZGluZzooKT0+dEQsQ2xvY2tQbHVzOigpPT5hRCxDbG9zZWRDYXB0aW9uOigpPT5pRCxDbG91ZDooKT0+a0QsQ2xvdWRBbGVydDooKT0+ckQsQ2xvdWRCYWNrdXA6KCk9Pm9ELENsb3VkQ2hlY2s6KCk9Pm5ELENsb3VkQ29nOigpPT5sRCxDbG91ZERvd25sb2FkOigpPT5DbSxDbG91ZERyaXp6bGU6KCk9PmNELENsb3VkRm9nOigpPT51RCxDbG91ZEhhaWw6KCk9PmRELENsb3VkTGlnaHRuaW5nOigpPT5wRCxDbG91ZE1vb246KCk9PmZELENsb3VkTW9vblJhaW46KCk9PmhELENsb3VkT2ZmOigpPT5nRCxDbG91ZFJhaW46KCk9PmJELENsb3VkUmFpbldpbmQ6KCk9Pm1ELENsb3VkU25vdzooKT0+dkQsQ2xvdWRTdW46KCk9PndELENsb3VkU3VuUmFpbjooKT0+eEQsQ2xvdWRTeW5jOigpPT55RCxDbG91ZFVwbG9hZDooKT0+VG0sQ2xvdWR5OigpPT5TRCxDbG92ZXI6KCk9Pl9ELENsdWI6KCk9Pk1ELENvZGU6KCk9PnpELENvZGUyOigpPT4kbSxDb2RlU3F1YXJlOigpPT5DNSxDb2RlWG1sOigpPT4kbSxDb2ZmZWU6KCk9PkNELENvZzooKT0+VEQsQ29pbnM6KCk9PiRELENvbHVtbnM6KCk9PkRtLENvbHVtbnMyOigpPT5EbSxDb2x1bW5zMzooKT0+TG0sQ29sdW1uczNDb2c6KCk9PlYwLENvbHVtbnM0OigpPT5ERCxDb2x1bW5zU2V0dGluZ3M6KCk9PlYwLENvbWJpbmU6KCk9PkxELENvbW1hbmQ6KCk9PkVELENvbXBhc3M6KCk9PlBELENvbXBvbmVudDooKT0+SUQsQ29tcHV0ZXI6KCk9PkFELENvbmNpZXJnZUJlbGw6KCk9Pk5ELENvbmU6KCk9PlJELENvbnN0cnVjdGlvbjooKT0+T0QsQ29udGFjdDooKT0+RkQsQ29udGFjdDI6KCk9PkVtLENvbnRhY3RSb3VuZDooKT0+RW0sQ29udGFpbmVyOigpPT5CRCxDb250cmFzdDooKT0+SEQsQ29va2llOigpPT5xRCxDb29raW5nUG90OigpPT5qRCxDb3B5OigpPT5ZRCxDb3B5Q2hlY2s6KCk9PlZELENvcHlNaW51czooKT0+VUQsQ29weVBsdXM6KCk9PldELENvcHlTbGFzaDooKT0+R0QsQ29weVg6KCk9PktELENvcHlsZWZ0OigpPT5aRCxDb3B5cmlnaHQ6KCk9PlhELENvcm5lckRvd25MZWZ0OigpPT5RRCxDb3JuZXJEb3duUmlnaHQ6KCk9PkpELENvcm5lckxlZnREb3duOigpPT5lTCxDb3JuZXJMZWZ0VXA6KCk9PnRMLENvcm5lclJpZ2h0RG93bjooKT0+YUwsQ29ybmVyUmlnaHRVcDooKT0+c0wsQ29ybmVyVXBMZWZ0OigpPT5pTCxDb3JuZXJVcFJpZ2h0OigpPT5yTCxDcHU6KCk9Pm9MLENyZWF0aXZlQ29tbW9uczooKT0+bkwsQ3JlZGl0Q2FyZDooKT0+bEwsQ3JvaXNzYW50OigpPT5jTCxDcm9wOigpPT5kTCxDcm9zczooKT0+dUwsQ3Jvc3NoYWlyOigpPT5wTCxDcm93bjooKT0+aEwsQ3Vib2lkOigpPT5mTCxDdXBTb2RhOigpPT5tTCxDdXJseUJyYWNlczooKT0+SWYsQ3VycmVuY3k6KCk9PmdMLEN5bGluZGVyOigpPT5iTCxEYW06KCk9PnZMLERhdGFiYXNlOigpPT5rTCxEYXRhYmFzZUJhY2t1cDooKT0+eEwsRGF0YWJhc2VTZWFyY2g6KCk9PndMLERhdGFiYXNlWmFwOigpPT55TCxEZWNpbWFsc0Fycm93TGVmdDooKT0+U0wsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5fTCxEZWxldGU6KCk9Pk1MLERlc3NlcnQ6KCk9PnpMLERpYW1ldGVyOigpPT5DTCxEaWFtb25kOigpPT5ETCxEaWFtb25kTWludXM6KCk9PlRMLERpYW1vbmRQZXJjZW50OigpPT5QbSxEaWFtb25kUGx1czooKT0+JEwsRGljZTE6KCk9PkxMLERpY2UyOigpPT5FTCxEaWNlMzooKT0+UEwsRGljZTQ6KCk9PklMLERpY2U1OigpPT5BTCxEaWNlNjooKT0+TkwsRGljZXM6KCk9Pk9MLERpZmY6KCk9PlJMLERpc2M6KCk9PmpMLERpc2MyOigpPT5GTCxEaXNjMzooKT0+QkwsRGlzY0FsYnVtOigpPT5ITCxEaXZpZGU6KCk9PnFMLERpdmlkZUNpcmNsZTooKT0+ZG0sRGl2aWRlU3F1YXJlOigpPT5FNSxEbmE6KCk9PlVMLERuYU9mZjooKT0+VkwsRG9jazooKT0+V0wsRG9nOigpPT5LTCxEb2xsYXJTaWduOigpPT5HTCxEb251dDooKT0+WUwsRG9vckNsb3NlZDooKT0+WEwsRG9vckNsb3NlZExvY2tlZDooKT0+WkwsRG9vck9wZW46KCk9PlFMLERvdDooKT0+SkwsRG90U3F1YXJlOigpPT5MNSxEb3dubG9hZDooKT0+ZUUsRG93bmxvYWRDbG91ZDooKT0+Q20sRHJhZnRpbmdDb21wYXNzOigpPT50RSxEcmFtYTooKT0+c0UsRHJpbGw6KCk9PmFFLERyb25lOigpPT5pRSxEcm9wbGV0OigpPT5yRSxEcm9wbGV0T2ZmOigpPT5vRSxEcm9wbGV0czooKT0+bkUsRHJ1bTooKT0+bEUsRHJ1bXN0aWNrOigpPT5jRSxEdW1iYmVsbDooKT0+ZEUsRWFyOigpPT5wRSxFYXJPZmY6KCk9PnVFLEVhcnRoOigpPT5JbSxFYXJ0aExvY2s6KCk9PmhFLEVjbGlwc2U6KCk9PmZFLEVkaXQ6KCk9PlYxLEVkaXQyOigpPT5XNixFZGl0MzooKT0+VTYsRWdnOigpPT5nRSxFZ2dGcmllZDooKT0+bUUsRWdnT2ZmOigpPT5iRSxFbGxpcHNlOigpPT52RSxFbGxpcHNpczooKT0+Tm0sRWxsaXBzaXNWZXJ0aWNhbDooKT0+QW0sRXF1YWw6KCk9PndFLEVxdWFsQXBwcm94aW1hdGVseTooKT0+eEUsRXF1YWxOb3Q6KCk9PnlFLEVxdWFsU3F1YXJlOigpPT5QNSxFcmFzZXI6KCk9PmtFLEV0aGVybmV0UG9ydDooKT0+U0UsRXVybzooKT0+X0UsRXZDaGFyZ2VyOigpPT5NRSxFeHBhbmQ6KCk9PnpFLEV4dGVybmFsTGluazooKT0+Q0UsRXllOigpPT5ERSxFeWVDbG9zZWQ6KCk9PlRFLEV5ZU9mZjooKT0+JEUsRmFjdG9yeTooKT0+TEUsRmFuOigpPT5FRSxGYXN0Rm9yd2FyZDooKT0+UEUsRmVhdGhlcjooKT0+SUUsRmVuY2U6KCk9Pk5FLEZlcnJpc1doZWVsOigpPT5BRSxGaWxlOigpPT51UCxGaWxlQXJjaGl2ZTooKT0+UkUsRmlsZUF1ZGlvOigpPT5VMCxGaWxlQXVkaW8yOigpPT5VMCxGaWxlQXhpczNEOigpPT5SbSxGaWxlQXhpczNkOigpPT5SbSxGaWxlQmFkZ2U6KCk9Pk9tLEZpbGVCYWRnZTI6KCk9Pk9tLEZpbGVCYXJDaGFydDooKT0+Qm0sRmlsZUJhckNoYXJ0MjooKT0+cW0sRmlsZUJveDooKT0+T0UsRmlsZUJyYWNlczooKT0+Rm0sRmlsZUJyYWNlc0Nvcm5lcjooKT0+SG0sRmlsZUNoYXJ0Q29sdW1uOigpPT5xbSxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5CbSxGaWxlQ2hhcnRMaW5lOigpPT5qbSxGaWxlQ2hhcnRQaWU6KCk9PlZtLEZpbGVDaGVjazooKT0+RkUsRmlsZUNoZWNrMjooKT0+VW0sRmlsZUNoZWNrQ29ybmVyOigpPT5VbSxGaWxlQ2xvY2s6KCk9PkJFLEZpbGVDb2RlOigpPT5IRSxGaWxlQ29kZTI6KCk9PldtLEZpbGVDb2RlQ29ybmVyOigpPT5XbSxGaWxlQ29nOigpPT5HbSxGaWxlQ29nMjooKT0+R20sRmlsZURpZmY6KCk9PnFFLEZpbGVEaWdpdDooKT0+akUsRmlsZURvd246KCk9PlZFLEZpbGVFZGl0OigpPT5lNixGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+S20sRmlsZUhlYWRwaG9uZTooKT0+VTAsRmlsZUhlYXJ0OigpPT5VRSxGaWxlSW1hZ2U6KCk9PldFLEZpbGVJbnB1dDooKT0+R0UsRmlsZUpzb246KCk9PkZtLEZpbGVKc29uMjooKT0+SG0sRmlsZUtleTooKT0+WW0sRmlsZUtleTI6KCk9PlltLEZpbGVMaW5lQ2hhcnQ6KCk9PmptLEZpbGVMb2NrOigpPT5abSxGaWxlTG9jazI6KCk9PlptLEZpbGVNaW51czooKT0+S0UsRmlsZU1pbnVzMjooKT0+WG0sRmlsZU1pbnVzQ29ybmVyOigpPT5YbSxGaWxlTXVzaWM6KCk9PllFLEZpbGVPdXRwdXQ6KCk9PlpFLEZpbGVQZW46KCk9PmU2LEZpbGVQZW5MaW5lOigpPT5RbSxGaWxlUGllQ2hhcnQ6KCk9PlZtLEZpbGVQbGF5OigpPT5KbSxGaWxlUGx1czooKT0+WEUsRmlsZVBsdXMyOigpPT50NixGaWxlUGx1c0Nvcm5lcjooKT0+dDYsRmlsZVF1ZXN0aW9uOigpPT5hNixGaWxlUXVlc3Rpb25NYXJrOigpPT5hNixGaWxlU2NhbjooKT0+UUUsRmlsZVNlYXJjaDooKT0+SkUsRmlsZVNlYXJjaDI6KCk9PnM2LEZpbGVTZWFyY2hDb3JuZXI6KCk9PnM2LEZpbGVTaWduYWw6KCk9Pmk2LEZpbGVTaWduYXR1cmU6KCk9PlFtLEZpbGVTbGlkZXJzOigpPT5lUCxGaWxlU3ByZWFkc2hlZXQ6KCk9PnRQLEZpbGVTdGFjazooKT0+c1AsRmlsZVN5bWxpbms6KCk9PmFQLEZpbGVUZXJtaW5hbDooKT0+aVAsRmlsZVRleHQ6KCk9PnJQLEZpbGVUeXBlOigpPT5vUCxGaWxlVHlwZTI6KCk9PnI2LEZpbGVUeXBlQ29ybmVyOigpPT5yNixGaWxlVXA6KCk9Pm5QLEZpbGVVc2VyOigpPT5sUCxGaWxlVmlkZW86KCk9PkptLEZpbGVWaWRlbzI6KCk9Pm82LEZpbGVWaWRlb0NhbWVyYTooKT0+bzYsRmlsZVZvbHVtZTooKT0+Y1AsRmlsZVZvbHVtZTI6KCk9Pmk2LEZpbGVXYXJuaW5nOigpPT5LbSxGaWxlWDooKT0+ZFAsRmlsZVgyOigpPT5uNixGaWxlWENvcm5lcjooKT0+bjYsRmlsZXM6KCk9PmhQLEZpbG06KCk9PnBQLEZpbHRlcjooKT0+cDYsRmlsdGVyWDooKT0+dTYsRmluZ2VycHJpbnQ6KCk9Pmw2LEZpbmdlcnByaW50UGF0dGVybjooKT0+bDYsRmlyZUV4dGluZ3Vpc2hlcjooKT0+ZlAsRmlzaDooKT0+YlAsRmlzaE9mZjooKT0+Z1AsRmlzaFN5bWJvbDooKT0+bVAsRmlzaGluZ0hvb2s6KCk9PnZQLEZpc2hpbmdSb2Q6KCk9PnlQLEZsYWc6KCk9PlNQLEZsYWdPZmY6KCk9PnhQLEZsYWdUcmlhbmdsZUxlZnQ6KCk9PndQLEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5rUCxGbGFtZTooKT0+X1AsRmxhbWVLaW5kbGluZzooKT0+elAsRmxhc2hsaWdodDooKT0+Q1AsRmxhc2hsaWdodE9mZjooKT0+TVAsRmxhc2tDb25pY2FsOigpPT4kUCxGbGFza0NvbmljYWxPZmY6KCk9PlRQLEZsYXNrUm91bmQ6KCk9PkRQLEZsaXBIb3Jpem9udGFsOigpPT54NSxGbGlwSG9yaXpvbnRhbDI6KCk9PkxQLEZsaXBWZXJ0aWNhbDooKT0+eTUsRmxpcFZlcnRpY2FsMjooKT0+RVAsRmxvd2VyOigpPT5OUCxGbG93ZXIyOigpPT5QUCxGb2N1czooKT0+SVAsRm9sZEhvcml6b250YWw6KCk9PkFQLEZvbGRWZXJ0aWNhbDooKT0+RlAsRm9sZGVyOigpPT5wSSxGb2xkZXJBcmNoaXZlOigpPT5SUCxGb2xkZXJCb29rbWFyazooKT0+T1AsRm9sZGVyQ2hlY2s6KCk9PkJQLEZvbGRlckNsb2NrOigpPT5qUCxGb2xkZXJDbG9zZWQ6KCk9PkhQLEZvbGRlckNvZGU6KCk9PnFQLEZvbGRlckNvZzooKT0+YzYsRm9sZGVyQ29nMjooKT0+YzYsRm9sZGVyRG90OigpPT5WUCxGb2xkZXJEb3duOigpPT5VUCxGb2xkZXJFZGl0OigpPT5kNixGb2xkZXJHaXQ6KCk9PkdQLEZvbGRlckdpdDI6KCk9PldQLEZvbGRlckhlYXJ0OigpPT5LUCxGb2xkZXJJbnB1dDooKT0+WFAsRm9sZGVyS2FuYmFuOigpPT5ZUCxGb2xkZXJLZXk6KCk9PlpQLEZvbGRlckxvY2s6KCk9PlFQLEZvbGRlck1pbnVzOigpPT50SSxGb2xkZXJPcGVuOigpPT5lSSxGb2xkZXJPcGVuRG90OigpPT5KUCxGb2xkZXJPdXRwdXQ6KCk9PmFJLEZvbGRlclBlbjooKT0+ZDYsRm9sZGVyUGx1czooKT0+c0ksRm9sZGVyUm9vdDooKT0+aUksRm9sZGVyU2VhcmNoOigpPT5vSSxGb2xkZXJTZWFyY2gyOigpPT5ySSxGb2xkZXJTeW1saW5rOigpPT5uSSxGb2xkZXJTeW5jOigpPT5jSSxGb2xkZXJUcmVlOigpPT5sSSxGb2xkZXJVcDooKT0+ZEksRm9sZGVyWDooKT0+dUksRm9sZGVyczooKT0+aEksRm9vdHByaW50czooKT0+ZkksRm9ya0tuaWZlOigpPT5TOCxGb3JrS25pZmVDcm9zc2VkOigpPT5rOCxGb3JrbGlmdDooKT0+bUksRm9ybTooKT0+Z0ksRm9ybUlucHV0OigpPT5LNixGb3J3YXJkOigpPT5iSSxGcmFtZTooKT0+dkksRnJvd246KCk9PnhJLEZ1ZWw6KCk9PnlJLEZ1bGxzY3JlZW46KCk9PndJLEZ1bmN0aW9uU3F1YXJlOigpPT5JNSxGdW5uZWw6KCk9PnA2LEZ1bm5lbFBsdXM6KCk9PmtJLEZ1bm5lbFg6KCk9PnU2LEdhbGxlcnlIb3Jpem9udGFsOigpPT5fSSxHYWxsZXJ5SG9yaXpvbnRhbEVuZDooKT0+U0ksR2FsbGVyeVRodW1ibmFpbHM6KCk9Pk1JLEdhbGxlcnlWZXJ0aWNhbDooKT0+Q0ksR2FsbGVyeVZlcnRpY2FsRW5kOigpPT56SSxHYW1lcGFkOigpPT5ESSxHYW1lcGFkMjooKT0+VEksR2FtZXBhZERpcmVjdGlvbmFsOigpPT4kSSxHYW50dENoYXJ0OigpPT5XZixHYW50dENoYXJ0U3F1YXJlOigpPT5ZMCxHYXVnZTooKT0+TEksR2F1Z2VDaXJjbGU6KCk9PnVtLEdhdmVsOigpPT5FSSxHZW06KCk9PlBJLEdlb3JnaWFuTGFyaTooKT0+QUksR2hvc3Q6KCk9PklJLEdpZnQ6KCk9PlJJLEdpdEJyYW5jaDooKT0+RkksR2l0QnJhbmNoTWludXM6KCk9Pk5JLEdpdEJyYW5jaFBsdXM6KCk9Pk9JLEdpdENvbW1pdDooKT0+aDYsR2l0Q29tbWl0SG9yaXpvbnRhbDooKT0+aDYsR2l0Q29tbWl0VmVydGljYWw6KCk9PkJJLEdpdENvbXBhcmU6KCk9PnFJLEdpdENvbXBhcmVBcnJvd3M6KCk9PkhJLEdpdEZvcms6KCk9PmpJLEdpdEdyYXBoOigpPT5WSSxHaXRNZXJnZTooKT0+VUksR2l0TWVyZ2VDb25mbGljdDooKT0+V0ksR2l0UHVsbFJlcXVlc3Q6KCk9PlFJLEdpdFB1bGxSZXF1ZXN0QXJyb3c6KCk9PkdJLEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOigpPT5LSSxHaXRQdWxsUmVxdWVzdENyZWF0ZTooKT0+WkksR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzooKT0+WUksR2l0UHVsbFJlcXVlc3REcmFmdDooKT0+WEksR2xhc3NXYXRlcjooKT0+SkksR2xhc3NlczooKT0+ZUEsR2xvYmU6KCk9PmlBLEdsb2JlMjooKT0+SW0sR2xvYmVMb2NrOigpPT50QSxHbG9iZU9mZjooKT0+c0EsR2xvYmVYOigpPT5hQSxHb2FsOigpPT5yQSxHcHU6KCk9Pm9BLEdyYWI6KCk9PnY2LEdyYWR1YXRpb25DYXA6KCk9Pm5BLEdyYXBlOigpPT5sQSxHcmlkOigpPT5XMCxHcmlkMlgyOigpPT5iNixHcmlkMlgyQ2hlY2s6KCk9PmY2LEdyaWQyWDJQbHVzOigpPT5tNixHcmlkMlgyWDooKT0+ZzYsR3JpZDJ4MjooKT0+YjYsR3JpZDJ4MkNoZWNrOigpPT5mNixHcmlkMngyUGx1czooKT0+bTYsR3JpZDJ4Mlg6KCk9Pmc2LEdyaWQzWDM6KCk9PlcwLEdyaWQzeDI6KCk9PmNBLEdyaWQzeDM6KCk9PlcwLEdyaXA6KCk9PnBBLEdyaXBIb3Jpem9udGFsOigpPT5kQSxHcmlwVmVydGljYWw6KCk9PnVBLEdyb3VwOigpPT5oQSxHdWl0YXI6KCk9PmZBLEhhbTooKT0+bUEsSGFtYnVyZ2VyOigpPT5nQSxIYW1tZXI6KCk9PmJBLEhhbmQ6KCk9PlNBLEhhbmRDb2luczooKT0+dkEsSGFuZEZpc3Q6KCk9PnhBLEhhbmRHcmFiOigpPT52NixIYW5kSGVhcnQ6KCk9PnlBLEhhbmRIZWxwaW5nOigpPT54NixIYW5kTWV0YWw6KCk9PndBLEhhbmRQbGF0dGVyOigpPT5rQSxIYW5kYmFnOigpPT5fQSxIYW5kc2hha2U6KCk9Pk1BLEhhcmREcml2ZTooKT0+JEEsSGFyZERyaXZlRG93bmxvYWQ6KCk9PnpBLEhhcmREcml2ZVVwbG9hZDooKT0+Q0EsSGFyZEhhdDooKT0+VEEsSGFzaDooKT0+REEsSGF0R2xhc3NlczooKT0+TEEsSGF6ZTooKT0+RUEsSGQ6KCk9PlBBLEhkbWlQb3J0OigpPT5JQSxIZWFkaW5nOigpPT5IQSxIZWFkaW5nMTooKT0+QUEsSGVhZGluZzI6KCk9Pk5BLEhlYWRpbmczOigpPT5SQSxIZWFkaW5nNDooKT0+T0EsSGVhZGluZzU6KCk9PkZBLEhlYWRpbmc2OigpPT5CQSxIZWFkcGhvbmVPZmY6KCk9PnFBLEhlYWRwaG9uZXM6KCk9PlZBLEhlYWRzZXQ6KCk9PmpBLEhlYXJ0OigpPT5RQSxIZWFydENyYWNrOigpPT5VQSxIZWFydEhhbmRzaGFrZTooKT0+V0EsSGVhcnRNaW51czooKT0+R0EsSGVhcnRPZmY6KCk9PktBLEhlYXJ0UGx1czooKT0+WUEsSGVhcnRQdWxzZTooKT0+WkEsSGVhcnRYOigpPT5YQSxIZWF0ZXI6KCk9PkpBLEhlbGljb3B0ZXI6KCk9PmVOLEhlbHBDaXJjbGU6KCk9PmowLEhlbHBpbmdIYW5kOigpPT54NixIZXhhZ29uOigpPT50TixIaWdobGlnaHRlcjooKT0+YU4sSGlzdG9yeTooKT0+c04sSG9tZTooKT0+eTYsSG9wOigpPT5pTixIb3BPZmY6KCk9PnJOLEhvc3BpdGFsOigpPT5vTixIb3RlbDooKT0+bk4sSG91cmdsYXNzOigpPT5sTixIb3VzZTooKT0+eTYsSG91c2VIZWFydDooKT0+Y04sSG91c2VQbHVnOigpPT5kTixIb3VzZVBsdXM6KCk9PnBOLEhvdXNlV2lmaTooKT0+dU4sSWNlQ3JlYW06KCk9Pms2LEljZUNyZWFtMjooKT0+dzYsSWNlQ3JlYW1Cb3dsOigpPT53NixJY2VDcmVhbUNvbmU6KCk9Pms2LElkQ2FyZDooKT0+Zk4sSWRDYXJkTGFueWFyZDooKT0+aE4sSW1hZ2U6KCk9PmtOLEltYWdlRG93bjooKT0+bU4sSW1hZ2VNaW51czooKT0+Z04sSW1hZ2VPZmY6KCk9PmJOLEltYWdlUGxheTooKT0+dk4sSW1hZ2VQbHVzOigpPT54TixJbWFnZVVwOigpPT55TixJbWFnZVVwc2NhbGU6KCk9PndOLEltYWdlczooKT0+U04sSW1wb3J0OigpPT5fTixJbmJveDooKT0+TU4sSW5kZW50OigpPT5LMCxJbmRlbnREZWNyZWFzZTooKT0+RzAsSW5kZW50SW5jcmVhc2U6KCk9PkswLEluZGlhblJ1cGVlOigpPT56TixJbmZpbml0eTooKT0+Q04sSW5mbzooKT0+VE4sSW5zcGVjdDooKT0+QjUsSW5zcGVjdGlvblBhbmVsOigpPT4kTixJdGFsaWM6KCk9PkROLEl0ZXJhdGlvbkNjdzooKT0+TE4sSXRlcmF0aW9uQ3c6KCk9PkVOLEphcGFuZXNlWWVuOigpPT5QTixKb3lzdGljazooKT0+SU4sS2FuYmFuOigpPT5BTixLYW5iYW5TcXVhcmU6KCk9PlI1LEthbmJhblNxdWFyZURhc2hlZDooKT0+VDUsS2F5YWs6KCk9Pk5OLEtleTooKT0+Rk4sS2V5Um91bmQ6KCk9Pk9OLEtleVNxdWFyZTooKT0+Uk4sS2V5Ym9hcmQ6KCk9PnFOLEtleWJvYXJkTXVzaWM6KCk9PkJOLEtleWJvYXJkT2ZmOigpPT5ITixMYW1wOigpPT5LTixMYW1wQ2VpbGluZzooKT0+ak4sTGFtcERlc2s6KCk9PlZOLExhbXBGbG9vcjooKT0+VU4sTGFtcFdhbGxEb3duOigpPT5XTixMYW1wV2FsbFVwOigpPT5HTixMYW5kUGxvdDooKT0+WU4sTGFuZG1hcms6KCk9PlpOLExhbmd1YWdlczooKT0+WE4sTGFwdG9wOigpPT5KTixMYXB0b3AyOigpPT5TNixMYXB0b3BNaW5pbWFsOigpPT5TNixMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PlFOLExhc3NvOigpPT5hUixMYXNzb1NlbGVjdDooKT0+ZVIsTGF1Z2g6KCk9PnRSLExheWVyczooKT0+XzYsTGF5ZXJzMjooKT0+c1IsTGF5ZXJzMzooKT0+XzYsTGF5ZXJzTWludXM6KCk9PmlSLExheWVyc1BsdXM6KCk9PnJSLExheW91dDooKT0+VjYsTGF5b3V0RGFzaGJvYXJkOigpPT5vUixMYXlvdXRHcmlkOigpPT5uUixMYXlvdXRMaXN0OigpPT5sUixMYXlvdXRQYW5lbExlZnQ6KCk9PmNSLExheW91dFBhbmVsVG9wOigpPT51UixMYXlvdXRUZW1wbGF0ZTooKT0+ZFIsTGVhZjooKT0+cFIsTGVhZnlHcmVlbjooKT0+aFIsTGVjdGVybjooKT0+ZlIsTGVuc0NvbmNhdmU6KCk9Pm1SLExlbnNDb252ZXg6KCk9PmdSLExldHRlclRleHQ6KCk9Pmw4LExpYnJhcnk6KCk9PnZSLExpYnJhcnlCaWc6KCk9PmJSLExpYnJhcnlTcXVhcmU6KCk9PkE1LExpZmVCdW95OigpPT54UixMaWdhdHVyZTooKT0+eVIsTGlnaHRidWxiOigpPT53UixMaWdodGJ1bGJPZmY6KCk9PmtSLExpbmVDaGFydDooKT0+amYsTGluZURvdFJpZ2h0SG9yaXpvbnRhbDooKT0+U1IsTGluZVNxdWlnZ2xlOigpPT5NUixMaW5lU3R5bGU6KCk9Pl9SLExpbms6KCk9PlRSLExpbmsyOigpPT5DUixMaW5rMk9mZjooKT0+elIsTGlzdDooKT0+R1IsTGlzdENoZWNrOigpPT4kUixMaXN0Q2hlY2tzOigpPT5EUixMaXN0Q2hldnJvbnNEb3duVXA6KCk9PkxSLExpc3RDaGV2cm9uc1VwRG93bjooKT0+RVIsTGlzdENvbGxhcHNlOigpPT5QUixMaXN0RW5kOigpPT5JUixMaXN0RmlsdGVyOigpPT5OUixMaXN0RmlsdGVyUGx1czooKT0+QVIsTGlzdEluZGVudERlY3JlYXNlOigpPT5HMCxMaXN0SW5kZW50SW5jcmVhc2U6KCk9PkswLExpc3RNaW51czooKT0+UlIsTGlzdE11c2ljOigpPT5PUixMaXN0T3JkZXJlZDooKT0+RlIsTGlzdFBsdXM6KCk9PkJSLExpc3RSZXN0YXJ0OigpPT5IUixMaXN0U3RhcnQ6KCk9PnFSLExpc3RUb2RvOigpPT5qUixMaXN0VHJlZTooKT0+VlIsTGlzdFZpZGVvOigpPT5VUixMaXN0WDooKT0+V1IsTG9hZGVyOigpPT5ZUixMb2FkZXIyOigpPT5NNixMb2FkZXJDaXJjbGU6KCk9Pk02LExvYWRlclBpbndoZWVsOigpPT5LUixMb2NhdGU6KCk9PlFSLExvY2F0ZUZpeGVkOigpPT5aUixMb2NhdGVPZmY6KCk9PlhSLExvY2F0aW9uRWRpdDooKT0+JDYsTG9jazooKT0+ZU8sTG9ja0tleWhvbGU6KCk9PkpSLExvY2tLZXlob2xlT3BlbjooKT0+ejYsTG9ja09wZW46KCk9PkM2LExvZ0luOigpPT50TyxMb2dPdXQ6KCk9PmFPLExvZ3M6KCk9PnNPLExvbGxpcG9wOigpPT5pTyxMdWdnYWdlOigpPT5yTyxNU3F1YXJlOigpPT5ONSxNYWduZXQ6KCk9Pm5PLE1haWw6KCk9Pm1PLE1haWxDaGVjazooKT0+b08sTWFpbE1pbnVzOigpPT5sTyxNYWlsT3BlbjooKT0+Y08sTWFpbFBsdXM6KCk9PmRPLE1haWxRdWVzdGlvbjooKT0+VDYsTWFpbFF1ZXN0aW9uTWFyazooKT0+VDYsTWFpbFNlYXJjaDooKT0+dU8sTWFpbFdhcm5pbmc6KCk9PnBPLE1haWxYOigpPT5oTyxNYWlsYm94OigpPT5mTyxNYWlsczooKT0+Z08sTWFwOigpPT5FTyxNYXBNaW51czooKT0+Yk8sTWFwUGluOigpPT4kTyxNYXBQaW5DaGVjazooKT0+eE8sTWFwUGluQ2hlY2tJbnNpZGU6KCk9PnZPLE1hcFBpbkhvdXNlOigpPT55TyxNYXBQaW5NaW51czooKT0+a08sTWFwUGluTWludXNJbnNpZGU6KCk9PndPLE1hcFBpbk9mZjooKT0+U08sTWFwUGluUGVuOigpPT4kNixNYXBQaW5QbHVzOigpPT5NTyxNYXBQaW5QbHVzSW5zaWRlOigpPT5fTyxNYXBQaW5TZWFyY2g6KCk9PnpPLE1hcFBpblg6KCk9PkNPLE1hcFBpblhJbnNpZGU6KCk9PlRPLE1hcFBpbm5lZDooKT0+RE8sTWFwUGx1czooKT0+TE8sTWFyczooKT0+SU8sTWFyc1N0cm9rZTooKT0+UE8sTWFydGluaTooKT0+QU8sTWF4aW1pemU6KCk9PlJPLE1heGltaXplMjooKT0+Tk8sTWVkYWw6KCk9Pk9PLE1lZ2FwaG9uZTooKT0+Qk8sTWVnYXBob25lT2ZmOigpPT5GTyxNZWg6KCk9PkhPLE1lbW9yeVN0aWNrOigpPT5xTyxNZW51OigpPT5qTyxNZW51U3F1YXJlOigpPT5PNSxNZXJnZTooKT0+Vk8sTWVzc2FnZUNpcmNsZTooKT0+dEYsTWVzc2FnZUNpcmNsZUNoZWNrOigpPT5VTyxNZXNzYWdlQ2lyY2xlQ29kZTooKT0+V08sTWVzc2FnZUNpcmNsZURhc2hlZDooKT0+R08sTWVzc2FnZUNpcmNsZUhlYXJ0OigpPT5LTyxNZXNzYWdlQ2lyY2xlTW9yZTooKT0+WU8sTWVzc2FnZUNpcmNsZU9mZjooKT0+Wk8sTWVzc2FnZUNpcmNsZVBsdXM6KCk9PlhPLE1lc3NhZ2VDaXJjbGVRdWVzdGlvbjooKT0+RDYsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazooKT0+RDYsTWVzc2FnZUNpcmNsZVJlcGx5OigpPT5RTyxNZXNzYWdlQ2lyY2xlV2FybmluZzooKT0+Sk8sTWVzc2FnZUNpcmNsZVg6KCk9PmVGLE1lc3NhZ2VTcXVhcmU6KCk9PnZGLE1lc3NhZ2VTcXVhcmVDaGVjazooKT0+c0YsTWVzc2FnZVNxdWFyZUNvZGU6KCk9PmFGLE1lc3NhZ2VTcXVhcmVEYXNoZWQ6KCk9PmlGLE1lc3NhZ2VTcXVhcmVEaWZmOigpPT5yRixNZXNzYWdlU3F1YXJlRG90OigpPT5vRixNZXNzYWdlU3F1YXJlSGVhcnQ6KCk9Pm5GLE1lc3NhZ2VTcXVhcmVMb2NrOigpPT5sRixNZXNzYWdlU3F1YXJlTW9yZTooKT0+Y0YsTWVzc2FnZVNxdWFyZU9mZjooKT0+ZEYsTWVzc2FnZVNxdWFyZVBsdXM6KCk9PnVGLE1lc3NhZ2VTcXVhcmVRdW90ZTooKT0+cEYsTWVzc2FnZVNxdWFyZVJlcGx5OigpPT5oRixNZXNzYWdlU3F1YXJlU2hhcmU6KCk9PmZGLE1lc3NhZ2VTcXVhcmVUZXh0OigpPT5tRixNZXNzYWdlU3F1YXJlV2FybmluZzooKT0+Z0YsTWVzc2FnZVNxdWFyZVg6KCk9PmJGLE1lc3NhZ2VzU3F1YXJlOigpPT54RixNZXRyb25vbWU6KCk9PnlGLE1pYzooKT0+a0YsTWljMjooKT0+TDYsTWljT2ZmOigpPT53RixNaWNWb2NhbDooKT0+TDYsTWljcm9jaGlwOigpPT5TRixNaWNyb3Njb3BlOigpPT5fRixNaWNyb3dhdmU6KCk9Pk1GLE1pbGVzdG9uZTooKT0+ekYsTWlsazooKT0+VEYsTWlsa09mZjooKT0+Q0YsTWluaW1pemU6KCk9PkRGLE1pbmltaXplMjooKT0+JEYsTWludXM6KCk9PkxGLE1pbnVzQ2lyY2xlOigpPT5wbSxNaW51c1NxdWFyZTooKT0+RjUsTWlycm9yUmVjdGFuZ3VsYXI6KCk9PkVGLE1pcnJvclJvdW5kOigpPT5QRixNb25pdG9yOigpPT5HRixNb25pdG9yQ2hlY2s6KCk9PklGLE1vbml0b3JDbG91ZDooKT0+QUYsTW9uaXRvckNvZzooKT0+TkYsTW9uaXRvckRvdDooKT0+UkYsTW9uaXRvckRvd246KCk9PkZGLE1vbml0b3JPZmY6KCk9Pk9GLE1vbml0b3JQYXVzZTooKT0+QkYsTW9uaXRvclBsYXk6KCk9PkhGLE1vbml0b3JTbWFydHBob25lOigpPT5xRixNb25pdG9yU3BlYWtlcjooKT0+akYsTW9uaXRvclN0b3A6KCk9PlVGLE1vbml0b3JVcDooKT0+VkYsTW9uaXRvclg6KCk9PldGLE1vb246KCk9PllGLE1vb25TdGFyOigpPT5LRixNb3JlSG9yaXpvbnRhbDooKT0+Tm0sTW9yZVZlcnRpY2FsOigpPT5BbSxNb3RvcmJpa2U6KCk9PlpGLE1vdW50YWluOigpPT5RRixNb3VudGFpblNub3c6KCk9PlhGLE1vdXNlOigpPT5uQixNb3VzZUxlZnQ6KCk9PkpGLE1vdXNlT2ZmOigpPT5lQixNb3VzZVBvaW50ZXI6KCk9PnJCLE1vdXNlUG9pbnRlcjI6KCk9PmFCLE1vdXNlUG9pbnRlcjJPZmY6KCk9PnRCLE1vdXNlUG9pbnRlckJhbjooKT0+c0IsTW91c2VQb2ludGVyQ2xpY2s6KCk9PmlCLE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDooKT0+JDUsTW91c2VSaWdodDooKT0+b0IsTW92ZTooKT0+eUIsTW92ZTNEOigpPT5FNixNb3ZlM2Q6KCk9PkU2LE1vdmVEaWFnb25hbDooKT0+Y0IsTW92ZURpYWdvbmFsMjooKT0+bEIsTW92ZURvd246KCk9PnBCLE1vdmVEb3duTGVmdDooKT0+ZEIsTW92ZURvd25SaWdodDooKT0+dUIsTW92ZUhvcml6b250YWw6KCk9PmhCLE1vdmVMZWZ0OigpPT5mQixNb3ZlUmlnaHQ6KCk9Pm1CLE1vdmVVcDooKT0+dkIsTW92ZVVwTGVmdDooKT0+Z0IsTW92ZVVwUmlnaHQ6KCk9PmJCLE1vdmVWZXJ0aWNhbDooKT0+eEIsTXVzaWM6KCk9Pl9CLE11c2ljMjooKT0+d0IsTXVzaWMzOigpPT5TQixNdXNpYzQ6KCk9PmtCLE5hdmlnYXRpb246KCk9PlRCLE5hdmlnYXRpb24yOigpPT56QixOYXZpZ2F0aW9uMk9mZjooKT0+TUIsTmF2aWdhdGlvbk9mZjooKT0+Q0IsTmV0d29yazooKT0+JEIsTmV3c3BhcGVyOigpPT5EQixOZmM6KCk9PkxCLE5vbkJpbmFyeTooKT0+RUIsTm90ZWJvb2s6KCk9Pk5CLE5vdGVib29rUGVuOigpPT5QQixOb3RlYm9va1RhYnM6KCk9PkFCLE5vdGVib29rVGV4dDooKT0+SUIsTm90ZXBhZFRleHQ6KCk9Pk9CLE5vdGVwYWRUZXh0RGFzaGVkOigpPT5SQixOdXQ6KCk9PkJCLE51dE9mZjooKT0+RkIsT2N0YWdvbjooKT0+cUIsT2N0YWdvbkFsZXJ0OigpPT5QNixPY3RhZ29uTWludXM6KCk9PkhCLE9jdGFnb25QYXVzZTooKT0+STYsT2N0YWdvblg6KCk9PkE2LE9tZWdhOigpPT5qQixPcHRpb246KCk9PlZCLE9yYml0OigpPT5VQixPcmlnYW1pOigpPT5XQixPdXRkZW50OigpPT5HMCxQYWNrYWdlOigpPT5KQixQYWNrYWdlMjooKT0+R0IsUGFja2FnZUNoZWNrOigpPT5LQixQYWNrYWdlTWludXM6KCk9PllCLFBhY2thZ2VPcGVuOigpPT5aQixQYWNrYWdlUGx1czooKT0+WEIsUGFja2FnZVNlYXJjaDooKT0+UUIsUGFja2FnZVg6KCk9PmVILFBhaW50QnVja2V0OigpPT50SCxQYWludFJvbGxlcjooKT0+YUgsUGFpbnRicnVzaDooKT0+c0gsUGFpbnRicnVzaDI6KCk9Pk42LFBhaW50YnJ1c2hWZXJ0aWNhbDooKT0+TjYsUGFsZXR0ZTooKT0+aUgsUGFsbXRyZWU6KCk9PnU4LFBhbmRhOigpPT5vSCxQYW5lbEJvdHRvbTooKT0+bEgsUGFuZWxCb3R0b21DbG9zZTooKT0+ckgsUGFuZWxCb3R0b21EYXNoZWQ6KCk9PlI2LFBhbmVsQm90dG9tSW5hY3RpdmU6KCk9PlI2LFBhbmVsQm90dG9tT3BlbjooKT0+bkgsUGFuZWxMZWZ0OigpPT5INixQYW5lbExlZnRDbG9zZTooKT0+TzYsUGFuZWxMZWZ0RGFzaGVkOigpPT5GNixQYW5lbExlZnRJbmFjdGl2ZTooKT0+RjYsUGFuZWxMZWZ0T3BlbjooKT0+QjYsUGFuZWxMZWZ0UmlnaHREYXNoZWQ6KCk9PmNILFBhbmVsUmlnaHQ6KCk9PmhILFBhbmVsUmlnaHRDbG9zZTooKT0+ZEgsUGFuZWxSaWdodERhc2hlZDooKT0+cTYsUGFuZWxSaWdodEluYWN0aXZlOigpPT5xNixQYW5lbFJpZ2h0T3BlbjooKT0+dUgsUGFuZWxUb3A6KCk9PmdILFBhbmVsVG9wQm90dG9tRGFzaGVkOigpPT5wSCxQYW5lbFRvcENsb3NlOigpPT5mSCxQYW5lbFRvcERhc2hlZDooKT0+ajYsUGFuZWxUb3BJbmFjdGl2ZTooKT0+ajYsUGFuZWxUb3BPcGVuOigpPT5tSCxQYW5lbHNMZWZ0Qm90dG9tOigpPT5iSCxQYW5lbHNMZWZ0UmlnaHQ6KCk9PkxtLFBhbmVsc1JpZ2h0Qm90dG9tOigpPT52SCxQYW5lbHNUb3BCb3R0b206KCk9Plg2LFBhbmVsc1RvcExlZnQ6KCk9PlY2LFBhcGVyY2xpcDooKT0+eEgsUGFyZW50aGVzZXM6KCk9PnlILFBhcmtpbmdDaXJjbGU6KCk9PmZtLFBhcmtpbmdDaXJjbGVPZmY6KCk9PmhtLFBhcmtpbmdNZXRlcjooKT0+d0gsUGFya2luZ1NxdWFyZTooKT0+cTUsUGFya2luZ1NxdWFyZU9mZjooKT0+SDUsUGFydHlQb3BwZXI6KCk9PlNILFBhdXNlOigpPT5rSCxQYXVzZUNpcmNsZTooKT0+bW0sUGF1c2VPY3RhZ29uOigpPT5JNixQYXdQcmludDooKT0+X0gsUGNDYXNlOigpPT5NSCxQZW46KCk9Plc2LFBlbkJveDooKT0+VjEsUGVuTGluZTooKT0+VTYsUGVuT2ZmOigpPT56SCxQZW5TcXVhcmU6KCk9PlYxLFBlblRvb2w6KCk9PkNILFBlbmNpbDooKT0+REgsUGVuY2lsTGluZTooKT0+VEgsUGVuY2lsT2ZmOigpPT4kSCxQZW5jaWxSdWxlcjooKT0+TEgsUGVudGFnb246KCk9PkVILFBlcmNlbnQ6KCk9PlBILFBlcmNlbnRDaXJjbGU6KCk9PmdtLFBlcmNlbnREaWFtb25kOigpPT5QbSxQZXJjZW50U3F1YXJlOigpPT5qNSxQZXJzb25TdGFuZGluZzooKT0+SUgsUGhpbGlwcGluZVBlc286KCk9PkFILFBob25lOigpPT5qSCxQaG9uZUNhbGw6KCk9Pk5ILFBob25lRm9yd2FyZGVkOigpPT5SSCxQaG9uZUluY29taW5nOigpPT5PSCxQaG9uZU1pc3NlZDooKT0+RkgsUGhvbmVPZmY6KCk9PkJILFBob25lT3V0Z29pbmc6KCk9PkhILFBpOigpPT5xSCxQaVNxdWFyZTooKT0+VjUsUGlhbm86KCk9PlZILFBpY2theGU6KCk9PlVILFBpY3R1cmVJblBpY3R1cmU6KCk9PkdILFBpY3R1cmVJblBpY3R1cmUyOigpPT5XSCxQaWVDaGFydDooKT0+R2YsUGlnZ3lCYW5rOigpPT5LSCxQaWxjcm93OigpPT5YSCxQaWxjcm93TGVmdDooKT0+WUgsUGlsY3Jvd1JpZ2h0OigpPT5aSCxQaWxjcm93U3F1YXJlOigpPT5VNSxQaWxsOigpPT5lcSxQaWxsQm90dGxlOigpPT5RSCxQaW46KCk9PnRxLFBpbk9mZjooKT0+SkgsUGlwZXR0ZTooKT0+YXEsUGl6emE6KCk9PnNxLFBsYW5lOigpPT5vcSxQbGFuZUxhbmRpbmc6KCk9PmlxLFBsYW5lVGFrZW9mZjooKT0+cnEsUGxheTooKT0+bnEsUGxheUNpcmNsZTooKT0+Ym0sUGxheVNxdWFyZTooKT0+RzUsUGx1ZzooKT0+Y3EsUGx1ZzI6KCk9PmxxLFBsdWdaYXA6KCk9Pkc2LFBsdWdaYXAyOigpPT5HNixQbHVzOigpPT5kcSxQbHVzQ2lyY2xlOigpPT52bSxQbHVzU3F1YXJlOigpPT5XNSxQb2NrZXRLbmlmZTooKT0+dXEsUG9kY2FzdDooKT0+cHEsUG9pbnRlcjooKT0+aHEsUG9pbnRlck9mZjooKT0+ZnEsUG9wY29ybjooKT0+bXEsUG9wc2ljbGU6KCk9PmdxLFBvdW5kU3Rlcmxpbmc6KCk9PmJxLFBvd2VyOigpPT54cSxQb3dlckNpcmNsZTooKT0+eG0sUG93ZXJPZmY6KCk9PnZxLFBvd2VyU3F1YXJlOigpPT5LNSxQcmVzZW50YXRpb246KCk9PnlxLFByaW50ZXI6KCk9PlNxLFByaW50ZXJDaGVjazooKT0+a3EsUHJpbnRlclg6KCk9PndxLFByb2plY3RvcjooKT0+enEsUHJvcG9ydGlvbnM6KCk9Pl9xLFB1enpsZTooKT0+TXEsUHlyYW1pZDooKT0+Q3EsUXJDb2RlOigpPT4kcSxRdW90ZTooKT0+VHEsUmFiYml0OigpPT5McSxSYWRhcjooKT0+RHEsUmFkaWF0aW9uOigpPT5FcSxSYWRpY2FsOigpPT5QcSxSYWRpbzooKT0+UnEsUmFkaW9PZmY6KCk9PklxLFJhZGlvUmVjZWl2ZXI6KCk9PkFxLFJhZGlvVG93ZXI6KCk9Pk5xLFJhZGl1czooKT0+T3EsUmFpbmJvdzooKT0+RnEsUmF0OigpPT5CcSxSYXRpbzooKT0+SHEsUmVjZWlwdDooKT0+WnEsUmVjZWlwdENlbnQ6KCk9PnFxLFJlY2VpcHRFdXJvOigpPT5qcSxSZWNlaXB0SW5kaWFuUnVwZWU6KCk9PlZxLFJlY2VpcHRKYXBhbmVzZVllbjooKT0+V3EsUmVjZWlwdFBvdW5kU3Rlcmxpbmc6KCk9PlVxLFJlY2VpcHRSdXNzaWFuUnVibGU6KCk9PkdxLFJlY2VpcHRTd2lzc0ZyYW5jOigpPT5ZcSxSZWNlaXB0VGV4dDooKT0+S3EsUmVjZWlwdFR1cmtpc2hMaXJhOigpPT5YcSxSZWN0YW5nbGVDaXJjbGU6KCk9PlFxLFJlY3RhbmdsZUVsbGlwc2lzOigpPT5LNixSZWN0YW5nbGVHb2dnbGVzOigpPT5KcSxSZWN0YW5nbGVIb3Jpem9udGFsOigpPT5laixSZWN0YW5nbGVWZXJ0aWNhbDooKT0+dGosUmVjeWNsZTooKT0+YWosUmVkbzooKT0+cmosUmVkbzI6KCk9PnNqLFJlZG9Eb3Q6KCk9PmlqLFJlZnJlc2hDY3c6KCk9Pm5qLFJlZnJlc2hDY3dEb3Q6KCk9Pm9qLFJlZnJlc2hDdzooKT0+Y2osUmVmcmVzaEN3T2ZmOigpPT5saixSZWZyaWdlcmF0b3I6KCk9PmRqLFJlZ2V4OigpPT51aixSZW1vdmVGb3JtYXR0aW5nOigpPT5waixSZXBlYXQ6KCk9PmdqLFJlcGVhdDE6KCk9PmZqLFJlcGVhdDI6KCk9PmhqLFJlcGVhdE9mZjooKT0+bWosUmVwbGFjZTooKT0+dmosUmVwbGFjZUFsbDooKT0+YmosUmVwbHk6KCk9PnlqLFJlcGx5QWxsOigpPT54aixSZXdpbmQ6KCk9PmtqLFJpYmJvbjooKT0+d2osUm9hZDooKT0+U2osUm9ja2V0OigpPT5faixSb2NraW5nQ2hhaXI6KCk9Pk1qLFJvbGxlckNvYXN0ZXI6KCk9PnpqLFJvc2U6KCk9PkNqLFJvdGF0ZTNEOigpPT5ZNixSb3RhdGUzZDooKT0+WTYsUm90YXRlQ2N3OigpPT5EaixSb3RhdGVDY3dLZXk6KCk9PlRqLFJvdGF0ZUNjd1NxdWFyZTooKT0+JGosUm90YXRlQ3c6KCk9PkVqLFJvdGF0ZUN3U3F1YXJlOigpPT5MaixSb3V0ZTooKT0+SWosUm91dGVPZmY6KCk9PlBqLFJvdXRlcjooKT0+QWosUm93czooKT0+WjYsUm93czI6KCk9Plo2LFJvd3MzOigpPT5YNixSb3dzNDooKT0+TmosUnNzOigpPT5SaixSdWxlcjooKT0+RmosUnVsZXJEaW1lbnNpb25MaW5lOigpPT5PaixSdXNzaWFuUnVibGU6KCk9PkJqLFNhaWxib2F0OigpPT5IaixTYWxhZDooKT0+cWosU2FuZHdpY2g6KCk9PmpqLFNhdGVsbGl0ZTooKT0+VmosU2F0ZWxsaXRlRGlzaDooKT0+VWosU2F1ZGlSaXlhbDooKT0+V2osU2F2ZTooKT0+WWosU2F2ZUFsbDooKT0+S2osU2F2ZU9mZjooKT0+R2osU2NhbGU6KCk9PlpqLFNjYWxlM0Q6KCk9PlE2LFNjYWxlM2Q6KCk9PlE2LFNjYWxpbmc6KCk9PlFqLFNjYW46KCk9Pm9WLFNjYW5CYXJjb2RlOigpPT5YaixTY2FuRXllOigpPT5KaixTY2FuRmFjZTooKT0+ZVYsU2NhbkhlYXJ0OigpPT50VixTY2FuTGluZTooKT0+YVYsU2NhblFyQ29kZTooKT0+c1YsU2NhblNlYXJjaDooKT0+aVYsU2NhblRleHQ6KCk9PnJWLFNjYXR0ZXJDaGFydDooKT0+S2YsU2Nob29sOigpPT5uVixTY2hvb2wyOigpPT5mOCxTY2lzc29yczooKT0+Y1YsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5sVixTY2lzc29yc1NxdWFyZTooKT0+WjUsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PnY1LFNjb290ZXI6KCk9PmRWLFNjcmVlblNoYXJlOigpPT5wVixTY3JlZW5TaGFyZU9mZjooKT0+dVYsU2Nyb2xsOigpPT5mVixTY3JvbGxUZXh0OigpPT5oVixTZWFyY2g6KCk9PnlWLFNlYXJjaEFsZXJ0OigpPT5tVixTZWFyY2hDaGVjazooKT0+Z1YsU2VhcmNoQ29kZTooKT0+YlYsU2VhcmNoU2xhc2g6KCk9PnZWLFNlYXJjaFg6KCk9PnhWLFNlY3Rpb246KCk9PndWLFNlbmQ6KCk9PlNWLFNlbmRIb3Jpem9uYWw6KCk9Pko2LFNlbmRIb3Jpem9udGFsOigpPT5KNixTZW5kVG9CYWNrOigpPT5rVixTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5fVixTZXBhcmF0b3JWZXJ0aWNhbDooKT0+TVYsU2VydmVyOigpPT4kVixTZXJ2ZXJDb2c6KCk9PnpWLFNlcnZlckNyYXNoOigpPT5DVixTZXJ2ZXJPZmY6KCk9PlRWLFNldHRpbmdzOigpPT5FVixTZXR0aW5nczI6KCk9PkRWLFNoYXBlczooKT0+TFYsU2hhcmU6KCk9PklWLFNoYXJlMjooKT0+UFYsU2hlZXQ6KCk9Pk5WLFNoZWxsOigpPT5BVixTaGVsdmluZ1VuaXQ6KCk9PlJWLFNoaWVsZDooKT0+WVYsU2hpZWxkQWxlcnQ6KCk9Pk9WLFNoaWVsZEJhbjooKT0+RlYsU2hpZWxkQ2hlY2s6KCk9PkJWLFNoaWVsZENsb3NlOigpPT50NSxTaGllbGRDb2c6KCk9PmpWLFNoaWVsZENvZ0Nvcm5lcjooKT0+SFYsU2hpZWxkRWxsaXBzaXM6KCk9PnFWLFNoaWVsZEhhbGY6KCk9PlZWLFNoaWVsZE1pbnVzOigpPT5VVixTaGllbGRPZmY6KCk9PldWLFNoaWVsZFBsdXM6KCk9PkdWLFNoaWVsZFF1ZXN0aW9uOigpPT5lNSxTaGllbGRRdWVzdGlvbk1hcms6KCk9PmU1LFNoaWVsZFVzZXI6KCk9PktWLFNoaWVsZFg6KCk9PnQ1LFNoaXA6KCk9PlpWLFNoaXBXaGVlbDooKT0+WFYsU2hpcnQ6KCk9PlFWLFNob3BwaW5nQmFnOigpPT5KVixTaG9wcGluZ0Jhc2tldDooKT0+ZVUsU2hvcHBpbmdDYXJ0OigpPT50VSxTaG92ZWw6KCk9PmFVLFNob3dlckhlYWQ6KCk9PnNVLFNocmVkZGVyOigpPT5pVSxTaHJpbXA6KCk9Pm9VLFNocmluazooKT0+clUsU2hydWI6KCk9Pm5VLFNodWZmbGU6KCk9PmxVLFNpZGViYXI6KCk9Pkg2LFNpZGViYXJDbG9zZTooKT0+TzYsU2lkZWJhck9wZW46KCk9PkI2LFNpZ21hOigpPT5jVSxTaWdtYVNxdWFyZTooKT0+WTUsU2lnbmFsOigpPT5mVSxTaWduYWxIaWdoOigpPT5kVSxTaWduYWxMb3c6KCk9PnVVLFNpZ25hbE1lZGl1bTooKT0+cFUsU2lnbmFsWmVybzooKT0+aFUsU2lnbmF0dXJlOigpPT5tVSxTaWducG9zdDooKT0+YlUsU2lnbnBvc3RCaWc6KCk9PmdVLFNpcmVuOigpPT52VSxTa2lwQmFjazooKT0+eFUsU2tpcEZvcndhcmQ6KCk9PnlVLFNrdWxsOigpPT53VSxTbGFzaDooKT0+a1UsU2xhc2hTcXVhcmU6KCk9Plg1LFNsaWNlOigpPT5fVSxTbGlkZXJzOigpPT5hNSxTbGlkZXJzSG9yaXpvbnRhbDooKT0+U1UsU2xpZGVyc1ZlcnRpY2FsOigpPT5hNSxTbWFydHBob25lOigpPT5UVSxTbWFydHBob25lQ2hhcmdpbmc6KCk9Pk1VLFNtYXJ0cGhvbmVOZmM6KCk9PnpVLFNtaWxlOigpPT4kVSxTbWlsZVBsdXM6KCk9PkNVLFNuYWlsOigpPT5EVSxTbm93Zmxha2U6KCk9PkxVLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT5FVSxTb2ZhOigpPT5QVSxTb2xhclBhbmVsOigpPT5JVSxTb3J0QXNjOigpPT56ZixTb3J0RGVzYzooKT0+U2YsU291cDooKT0+QVUsU3BhY2U6KCk9Pk5VLFNwYWRlOigpPT5SVSxTcGFya2xlOigpPT5PVSxTcGFya2xlczooKT0+czUsU3BlYWtlcjooKT0+RlUsU3BlZWNoOigpPT5CVSxTcGVsbENoZWNrOigpPT5IVSxTcGVsbENoZWNrMjooKT0+cVUsU3BsaW5lOigpPT5WVSxTcGxpbmVQb2ludGVyOigpPT5qVSxTcGxpdDooKT0+VVUsU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5RNSxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5KNSxTcG9vbDooKT0+V1UsU3BvcnRTaG9lOigpPT5HVSxTcG90bGlnaHQ6KCk9PlpVLFNwcmF5Q2FuOigpPT5LVSxTcHJvdXQ6KCk9PllVLFNxdWFyZTooKT0+Y1csU3F1YXJlQWN0aXZpdHk6KCk9Pmk1LFNxdWFyZUFycm93RG93bjooKT0+bjUsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+cjUsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9Pm81LFNxdWFyZUFycm93TGVmdDooKT0+bDUsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+YzUsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PmQ1LFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT51NSxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9PnA1LFNxdWFyZUFycm93UmlnaHQ6KCk9Pmg1LFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+WFUsU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PlFVLFNxdWFyZUFycm93VXA6KCk9Pmc1LFNxdWFyZUFycm93VXBMZWZ0OigpPT5mNSxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9Pm01LFNxdWFyZUFzdGVyaXNrOigpPT5iNSxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+djUsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9Png1LFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+eTUsU3F1YXJlQ2hhcnRHYW50dDooKT0+WTAsU3F1YXJlQ2hlY2s6KCk9Pms1LFNxdWFyZUNoZWNrQmlnOigpPT53NSxTcXVhcmVDaGV2cm9uRG93bjooKT0+UzUsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9Pl81LFNxdWFyZUNoZXZyb25SaWdodDooKT0+TTUsU3F1YXJlQ2hldnJvblVwOigpPT56NSxTcXVhcmVDb2RlOigpPT5DNSxTcXVhcmVEYXNoZWQ6KCk9PkQ1LFNxdWFyZURhc2hlZEJvdHRvbTooKT0+ZVcsU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+SlUsU3F1YXJlRGFzaGVkS2FuYmFuOigpPT5UNSxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9PiQ1LFNxdWFyZURhc2hlZFRleHQ6KCk9PlowLFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT50VyxTcXVhcmVEaXZpZGU6KCk9PkU1LFNxdWFyZURvdDooKT0+TDUsU3F1YXJlRXF1YWw6KCk9PlA1LFNxdWFyZUZ1bmN0aW9uOigpPT5JNSxTcXVhcmVHYW50dENoYXJ0OigpPT5ZMCxTcXVhcmVLYW5iYW46KCk9PlI1LFNxdWFyZUxpYnJhcnk6KCk9PkE1LFNxdWFyZU06KCk9Pk41LFNxdWFyZU1lbnU6KCk9Pk81LFNxdWFyZU1pbnVzOigpPT5GNSxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9PkI1LFNxdWFyZVBhcmtpbmc6KCk9PnE1LFNxdWFyZVBhcmtpbmdPZmY6KCk9Pkg1LFNxdWFyZVBhdXNlOigpPT5hVyxTcXVhcmVQZW46KCk9PlYxLFNxdWFyZVBlcmNlbnQ6KCk9Pmo1LFNxdWFyZVBpOigpPT5WNSxTcXVhcmVQaWxjcm93OigpPT5VNSxTcXVhcmVQbGF5OigpPT5HNSxTcXVhcmVQbHVzOigpPT5XNSxTcXVhcmVQb3dlcjooKT0+SzUsU3F1YXJlUmFkaWNhbDooKT0+c1csU3F1YXJlUm91bmRDb3JuZXI6KCk9PmlXLFNxdWFyZVNjaXNzb3JzOigpPT5aNSxTcXVhcmVTaWdtYTooKT0+WTUsU3F1YXJlU2xhc2g6KCk9Plg1LFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+UTUsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+SjUsU3F1YXJlU3F1YXJlOigpPT5yVyxTcXVhcmVTdGFjazooKT0+b1csU3F1YXJlU3RhcjooKT0+blcsU3F1YXJlU3RvcDooKT0+bFcsU3F1YXJlVGVybWluYWw6KCk9PmU4LFNxdWFyZVVzZXI6KCk9PnM4LFNxdWFyZVVzZXJSb3VuZDooKT0+dDgsU3F1YXJlWDooKT0+YTgsU3F1YXJlc0V4Y2x1ZGU6KCk9PmRXLFNxdWFyZXNJbnRlcnNlY3Q6KCk9PnVXLFNxdWFyZXNTdWJ0cmFjdDooKT0+cFcsU3F1YXJlc1VuaXRlOigpPT5oVyxTcXVpcmNsZTooKT0+bVcsU3F1aXJjbGVEYXNoZWQ6KCk9PmZXLFNxdWlycmVsOigpPT5nVyxTdGFtcDooKT0+YlcsU3RhcjooKT0+eVcsU3RhckhhbGY6KCk9PnZXLFN0YXJPZmY6KCk9PnhXLFN0YXJzOigpPT5zNSxTdGVwQmFjazooKT0+d1csU3RlcEZvcndhcmQ6KCk9PmtXLFN0ZXRob3Njb3BlOigpPT5fVyxTdGlja2VyOigpPT5TVyxTdGlja3lOb3RlOigpPT5NVyxTdG9uZTooKT0+VFcsU3RvcENpcmNsZTooKT0+d20sU3RvcmU6KCk9PnpXLFN0cmV0Y2hIb3Jpem9udGFsOigpPT5DVyxTdHJldGNoVmVydGljYWw6KCk9PiRXLFN0cmlrZXRocm91Z2g6KCk9PkRXLFN1YnNjcmlwdDooKT0+TFcsU3VidGl0bGVzOigpPT5BZixTdW46KCk9Pk5XLFN1bkRpbTooKT0+RVcsU3VuTWVkaXVtOigpPT5QVyxTdW5Nb29uOigpPT5JVyxTdW5Tbm93OigpPT5BVyxTdW5yaXNlOigpPT5SVyxTdW5zZXQ6KCk9Pk9XLFN1cGVyc2NyaXB0OigpPT5GVyxTd2F0Y2hCb29rOigpPT5CVyxTd2lzc0ZyYW5jOigpPT5IVyxTd2l0Y2hDYW1lcmE6KCk9PnFXLFN3b3JkOigpPT5qVyxTd29yZHM6KCk9PlZXLFN5cmluZ2U6KCk9PlVXLFRhYmxlOigpPT5lRyxUYWJsZTI6KCk9PldXLFRhYmxlQ2VsbHNNZXJnZTooKT0+R1csVGFibGVDZWxsc1NwbGl0OigpPT5LVyxUYWJsZUNvbHVtbnNTcGxpdDooKT0+WVcsVGFibGVDb25maWc6KCk9PlYwLFRhYmxlT2ZDb250ZW50czooKT0+WlcsVGFibGVQcm9wZXJ0aWVzOigpPT5YVyxUYWJsZVJvd3NTcGxpdDooKT0+UVcsVGFibGV0OigpPT50RyxUYWJsZXRTbWFydHBob25lOigpPT5KVyxUYWJsZXRzOigpPT5hRyxUYWc6KCk9PnNHLFRhZ3M6KCk9PmlHLFRhbGx5MTooKT0+ckcsVGFsbHkyOigpPT5vRyxUYWxseTM6KCk9Pm5HLFRhbGx5NDooKT0+bEcsVGFsbHk1OigpPT5kRyxUYW5nZW50OigpPT5jRyxUYXJnZXQ6KCk9PnVHLFRlbGVzY29wZTooKT0+cEcsVGVudDooKT0+ZkcsVGVudFRyZWU6KCk9PmhHLFRlcm1pbmFsOigpPT5tRyxUZXJtaW5hbFNxdWFyZTooKT0+ZTgsVGVzdFR1YmU6KCk9PmdHLFRlc3RUdWJlMjooKT0+aTgsVGVzdFR1YmVEaWFnb25hbDooKT0+aTgsVGVzdFR1YmVzOigpPT5iRyxUZXh0OigpPT5YMCxUZXh0QWxpZ25DZW50ZXI6KCk9PnI4LFRleHRBbGlnbkVuZDooKT0+bzgsVGV4dEFsaWduSnVzdGlmeTooKT0+bjgsVGV4dEFsaWduU3RhcnQ6KCk9PlgwLFRleHRDdXJzb3I6KCk9PnhHLFRleHRDdXJzb3JJbnB1dDooKT0+dkcsVGV4dEluaXRpYWw6KCk9Pmw4LFRleHRRdW90ZTooKT0+eUcsVGV4dFNlYXJjaDooKT0+d0csVGV4dFNlbGVjdDooKT0+WjAsVGV4dFNlbGVjdGlvbjooKT0+WjAsVGV4dFdyYXA6KCk9PmM4LFRoZWF0ZXI6KCk9PmtHLFRoZXJtb21ldGVyOigpPT5NRyxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+U0csVGhlcm1vbWV0ZXJTdW46KCk9Pl9HLFRodW1ic0Rvd246KCk9PnpHLFRodW1ic1VwOigpPT5DRyxUaWNrZXQ6KCk9PklHLFRpY2tldENoZWNrOigpPT5URyxUaWNrZXRNaW51czooKT0+JEcsVGlja2V0UGVyY2VudDooKT0+REcsVGlja2V0UGx1czooKT0+TEcsVGlja2V0U2xhc2g6KCk9PkVHLFRpY2tldFg6KCk9PlBHLFRpY2tldHM6KCk9Pk5HLFRpY2tldHNQbGFuZTooKT0+QUcsVGltZWxpbmU6KCk9PlJHLFRpbWVyOigpPT5CRyxUaW1lck9mZjooKT0+T0csVGltZXJSZXNldDooKT0+RkcsVG9nZ2xlTGVmdDooKT0+cUcsVG9nZ2xlUmlnaHQ6KCk9PmpHLFRvaWxldDooKT0+SEcsVG9vbENhc2U6KCk9PlZHLFRvb2xib3g6KCk9PlVHLFRvcm5hZG86KCk9PktHLFRvcnVzOigpPT5XRyxUb3VjaHBhZDooKT0+WUcsVG91Y2hwYWRPZmY6KCk9PkdHLFRvd2VsUmFjazooKT0+WkcsVG93ZXJDb250cm9sOigpPT5YRyxUb3lCcmljazooKT0+UUcsVHJhY3RvcjooKT0+SkcsVHJhZmZpY0NvbmU6KCk9PmVLLFRyYWluOigpPT5kOCxUcmFpbkZyb250OigpPT5hSyxUcmFpbkZyb250VHVubmVsOigpPT50SyxUcmFpblRyYWNrOigpPT5zSyxUcmFtRnJvbnQ6KCk9PmQ4LFRyYW5zZ2VuZGVyOigpPT5pSyxUcmFzaDooKT0+b0ssVHJhc2gyOigpPT5ySyxUcmVlRGVjaWR1b3VzOigpPT5uSyxUcmVlUGFsbTooKT0+dTgsVHJlZVBpbmU6KCk9PmxLLFRyZWVzOigpPT5jSyxUcmVuZGluZ0Rvd246KCk9PmRLLFRyZW5kaW5nVXA6KCk9PnBLLFRyZW5kaW5nVXBEb3duOigpPT51SyxUcmlhbmdsZTooKT0+bUssVHJpYW5nbGVBbGVydDooKT0+cDgsVHJpYW5nbGVEYXNoZWQ6KCk9PmhLLFRyaWFuZ2xlUmlnaHQ6KCk9PmZLLFRyb3BoeTooKT0+Z0ssVHJ1Y2s6KCk9PnZLLFRydWNrRWxlY3RyaWM6KCk9PmJLLFR1cmtpc2hMaXJhOigpPT54SyxUdXJudGFibGU6KCk9PnlLLFR1cnRsZTooKT0+d0ssVHY6KCk9PlNLLFR2MjooKT0+aDgsVHZNaW5pbWFsOigpPT5oOCxUdk1pbmltYWxQbGF5OigpPT5rSyxUeXBlOigpPT5NSyxUeXBlT3V0bGluZTooKT0+X0ssVW1icmVsbGE6KCk9PkNLLFVtYnJlbGxhT2ZmOigpPT56SyxVbmRlcmxpbmU6KCk9PlRLLFVuZG86KCk9PkxLLFVuZG8yOigpPT4kSyxVbmRvRG90OigpPT5ESyxVbmZvbGRIb3Jpem9udGFsOigpPT5FSyxVbmZvbGRWZXJ0aWNhbDooKT0+UEssVW5ncm91cDooKT0+SUssVW5pdmVyc2l0eTooKT0+ZjgsVW5saW5rOigpPT5SSyxVbmxpbmsyOigpPT5BSyxVbmxvY2s6KCk9PkM2LFVubG9ja0tleWhvbGU6KCk9Pno2LFVucGx1ZzooKT0+TkssVXBsb2FkOigpPT5PSyxVcGxvYWRDbG91ZDooKT0+VG0sVXNiOigpPT5GSyxVc2VyOigpPT5KSyxVc2VyMjooKT0+eTgsVXNlckNoZWNrOigpPT5CSyxVc2VyQ2hlY2syOigpPT5tOCxVc2VyQ2lyY2xlOigpPT5TbSxVc2VyQ2lyY2xlMjooKT0+a20sVXNlckNvZzooKT0+SEssVXNlckNvZzI6KCk9Pmc4LFVzZXJLZXk6KCk9PnFLLFVzZXJMb2NrOigpPT5qSyxVc2VyTWludXM6KCk9PlZLLFVzZXJNaW51czI6KCk9PmI4LFVzZXJQZW46KCk9PlVLLFVzZXJQbHVzOigpPT5XSyxVc2VyUGx1czI6KCk9PnY4LFVzZXJSb3VuZDooKT0+eTgsVXNlclJvdW5kQ2hlY2s6KCk9Pm04LFVzZXJSb3VuZENvZzooKT0+ZzgsVXNlclJvdW5kS2V5OigpPT5HSyxVc2VyUm91bmRNaW51czooKT0+YjgsVXNlclJvdW5kUGVuOigpPT5LSyxVc2VyUm91bmRQbHVzOigpPT52OCxVc2VyUm91bmRTZWFyY2g6KCk9PllLLFVzZXJSb3VuZFg6KCk9Png4LFVzZXJTZWFyY2g6KCk9PlpLLFVzZXJTcXVhcmU6KCk9PnM4LFVzZXJTcXVhcmUyOigpPT50OCxVc2VyU3RhcjooKT0+WEssVXNlclg6KCk9PlFLLFVzZXJYMjooKT0+eDgsVXNlcnM6KCk9PmVZLFVzZXJzMjooKT0+dzgsVXNlcnNSb3VuZDooKT0+dzgsVXRlbnNpbHM6KCk9PlM4LFV0ZW5zaWxzQ3Jvc3NlZDooKT0+azgsVXRpbGl0eVBvbGU6KCk9PmFZLFZhbjooKT0+dFksVmFyaWFibGU6KCk9PnNZLFZhdWx0OigpPT5pWSxWZWN0b3JTcXVhcmU6KCk9PnJZLFZlZ2FuOigpPT5vWSxWZW5ldGlhbk1hc2s6KCk9Pm5ZLFZlbnVzOigpPT5jWSxWZW51c0FuZE1hcnM6KCk9PmxZLFZlcmlmaWVkOigpPT4kZixWaWJyYXRlOigpPT51WSxWaWJyYXRlT2ZmOigpPT5kWSxWaWRlbzooKT0+aFksVmlkZW9PZmY6KCk9PnBZLFZpZGVvdGFwZTooKT0+ZlksVmlldzooKT0+bVksVm9pY2VtYWlsOigpPT5iWSxWb2xsZXliYWxsOigpPT5nWSxWb2x1bWU6KCk9PmtZLFZvbHVtZTE6KCk9PnZZLFZvbHVtZTI6KCk9PnhZLFZvbHVtZU9mZjooKT0+eVksVm9sdW1lWDooKT0+d1ksVm90ZTooKT0+U1ksV2FsbGV0OigpPT5NWSxXYWxsZXQyOigpPT5fOCxXYWxsZXRDYXJkczooKT0+X1ksV2FsbGV0TWluaW1hbDooKT0+XzgsV2FsbHBhcGVyOigpPT56WSxXYW5kOigpPT5DWSxXYW5kMjooKT0+TTgsV2FuZFNwYXJrbGVzOigpPT5NOCxXYXJlaG91c2U6KCk9PlRZLFdhc2hpbmdNYWNoaW5lOigpPT5EWSxXYXRjaDooKT0+JFksV2F2ZXM6KCk9Pno4LFdhdmVzQXJyb3dEb3duOigpPT5MWSxXYXZlc0Fycm93VXA6KCk9PkVZLFdhdmVzSG9yaXpvbnRhbDooKT0+ejgsV2F2ZXNMYWRkZXI6KCk9PlBZLFdhdmVzVmVydGljYWw6KCk9PklZLFdheXBvaW50czooKT0+QVksV2ViY2FtOigpPT5OWSxXZWJob29rOigpPT5PWSxXZWJob29rT2ZmOigpPT5SWSxXZWlnaHQ6KCk9PkJZLFdlaWdodFRpbGRlOigpPT5GWSxXaGVhdDooKT0+cVksV2hlYXRPZmY6KCk9PkhZLFdob2xlV29yZDooKT0+alksV2lmaTooKT0+UVksV2lmaUNvZzooKT0+VlksV2lmaUhpZ2g6KCk9PlVZLFdpZmlMb3c6KCk9PldZLFdpZmlPZmY6KCk9PkdZLFdpZmlQZW46KCk9PktZLFdpZmlTeW5jOigpPT5ZWSxXaWZpWmVybzooKT0+WlksV2luZDooKT0+SlksV2luZEFycm93RG93bjooKT0+WFksV2luZTooKT0+c1osV2luZU9mZjooKT0+ZVosV29ya2Zsb3c6KCk9PmFaLFdvcm06KCk9PnRaLFdyYXBUZXh0OigpPT5jOCxXcmVuY2g6KCk9PmlaLFg6KCk9Pm9aLFhDaXJjbGU6KCk9Pl9tLFhMaW5lVG9wOigpPT5yWixYT2N0YWdvbjooKT0+QTYsWFNxdWFyZTooKT0+YTgsWmFwOigpPT5sWixaYXBPZmY6KCk9Pm5aLFpvZGlhY0FxdWFyaXVzOigpPT5jWixab2RpYWNBcmllczooKT0+ZFosWm9kaWFjQ2FuY2VyOigpPT51Wixab2RpYWNDYXByaWNvcm46KCk9PnBaLFpvZGlhY0dlbWluaTooKT0+aFosWm9kaWFjTGVvOigpPT5mWixab2RpYWNMaWJyYTooKT0+bVosWm9kaWFjT3BoaXVjaHVzOigpPT5nWixab2RpYWNQaXNjZXM6KCk9PmJaLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT54Wixab2RpYWNTY29ycGlvOigpPT52Wixab2RpYWNUYXVydXM6KCk9PnlaLFpvZGlhY1ZpcmdvOigpPT53Wixab29tSW46KCk9PmtaLFpvb21PdXQ6KCk9PlNaLGNyZWF0ZUVsZW1lbnQ6KCk9PmoxLGNyZWF0ZUljb25zOigpPT53ZXQsaWNvbnM6KCk9PkNkfSk7dmFyIHdldCxDOD1nKCgpPT57VzJhKCk7RzJhKCk7RmtlKCk7VWtlKCk7V2tlKCk7R2tlKCk7S2tlKCk7WWtlKCk7WmtlKCk7WGtlKCk7UWtlKCk7SmtlKCk7ZVNlKCk7dFNlKCk7YVNlKCk7c1NlKCk7aVNlKCk7clNlKCk7b1NlKCk7blNlKCk7bFNlKCk7Y1NlKCk7ZFNlKCk7dVNlKCk7cFNlKCk7aFNlKCk7ZlNlKCk7bVNlKCk7Z1NlKCk7YlNlKCk7dlNlKCk7eFNlKCk7eVNlKCk7d1NlKCk7a1NlKCk7U1NlKCk7X1NlKCk7TVNlKCk7elNlKCk7Q1NlKCk7VFNlKCk7JFNlKCk7RFNlKCk7TFNlKCk7RVNlKCk7UFNlKCk7SVNlKCk7QVNlKCk7TlNlKCk7UlNlKCk7T1NlKCk7RlNlKCk7QlNlKCk7SFNlKCk7cVNlKCk7alNlKCk7VlNlKCk7VVNlKCk7V1NlKCk7R1NlKCk7S1NlKCk7WVNlKCk7WlNlKCk7WFNlKCk7UVNlKCk7SlNlKCk7ZV9lKCk7dF9lKCk7YV9lKCk7c19lKCk7aV9lKCk7cl9lKCk7b19lKCk7bl9lKCk7bF9lKCk7Y19lKCk7ZF9lKCk7dV9lKCk7cF9lKCk7aF9lKCk7Zl9lKCk7bV9lKCk7Z19lKCk7Yl9lKCk7dl9lKCk7eF9lKCk7eV9lKCk7d19lKCk7a19lKCk7U19lKCk7X19lKCk7TV9lKCk7el9lKCk7Q19lKCk7VF9lKCk7JF9lKCk7RF9lKCk7TF9lKCk7RV9lKCk7UF9lKCk7SV9lKCk7QV9lKCk7Tl9lKCk7Ul9lKCk7T19lKCk7Rl9lKCk7Ql9lKCk7SF9lKCk7cV9lKCk7al9lKCk7Vl9lKCk7VV9lKCk7V19lKCk7R19lKCk7S19lKCk7WV9lKCk7Wl9lKCk7WF9lKCk7UV9lKCk7Sl9lKCk7ZU1lKCk7dE1lKCk7YU1lKCk7c01lKCk7aU1lKCk7ck1lKCk7b01lKCk7bk1lKCk7bE1lKCk7Y01lKCk7ZE1lKCk7dU1lKCk7cE1lKCk7aE1lKCk7Zk1lKCk7bU1lKCk7Z01lKCk7Yk1lKCk7dk1lKCk7eE1lKCk7eU1lKCk7d01lKCk7a01lKCk7U01lKCk7X01lKCk7TU1lKCk7ek1lKCk7Q01lKCk7VE1lKCk7JE1lKCk7RE1lKCk7TE1lKCk7RU1lKCk7UE1lKCk7SU1lKCk7QU1lKCk7Tk1lKCk7Uk1lKCk7T01lKCk7Rk1lKCk7Qk1lKCk7SE1lKCk7cU1lKCk7ak1lKCk7Vk1lKCk7VU1lKCk7V01lKCk7R01lKCk7S01lKCk7WU1lKCk7Wk1lKCk7WE1lKCk7UU1lKCk7Sk1lKCk7ZXplKCk7dHplKCk7YXplKCk7c3plKCk7aXplKCk7cnplKCk7b3plKCk7bnplKCk7bHplKCk7Y3plKCk7ZHplKCk7dXplKCk7cHplKCk7aHplKCk7ZnplKCk7bXplKCk7Z3plKCk7YnplKCk7dnplKCk7eHplKCk7eXplKCk7d3plKCk7a3plKCk7U3plKCk7X3plKCk7TXplKCk7enplKCk7Q3plKCk7VHplKCk7JHplKCk7RHplKCk7THplKCk7RXplKCk7UHplKCk7SXplKCk7QXplKCk7TnplKCk7UnplKCk7T3plKCk7RnplKCk7QnplKCk7SHplKCk7cXplKCk7anplKCk7VnplKCk7VXplKCk7V3plKCk7R3plKCk7S3plKCk7WXplKCk7WnplKCk7WHplKCk7UXplKCk7SnplKCk7ZUNlKCk7dENlKCk7YUNlKCk7c0NlKCk7aUNlKCk7ckNlKCk7b0NlKCk7bkNlKCk7bENlKCk7Y0NlKCk7ZENlKCk7dUNlKCk7cENlKCk7aENlKCk7ZkNlKCk7bUNlKCk7Z0NlKCk7YkNlKCk7dkNlKCk7eENlKCk7eUNlKCk7d0NlKCk7a0NlKCk7U0NlKCk7X0NlKCk7TUNlKCk7ekNlKCk7Q0NlKCk7VENlKCk7JENlKCk7RENlKCk7TENlKCk7RUNlKCk7UENlKCk7SUNlKCk7QUNlKCk7TkNlKCk7UkNlKCk7T0NlKCk7RkNlKCk7QkNlKCk7SENlKCk7cUNlKCk7akNlKCk7VkNlKCk7VUNlKCk7V0NlKCk7R0NlKCk7S0NlKCk7WUNlKCk7WkNlKCk7WENlKCk7UUNlKCk7SkNlKCk7ZVRlKCk7dFRlKCk7YVRlKCk7c1RlKCk7aVRlKCk7clRlKCk7b1RlKCk7blRlKCk7bFRlKCk7Y1RlKCk7ZFRlKCk7dVRlKCk7cFRlKCk7aFRlKCk7ZlRlKCk7bVRlKCk7Z1RlKCk7YlRlKCk7dlRlKCk7eFRlKCk7eVRlKCk7d1RlKCk7a1RlKCk7U1RlKCk7X1RlKCk7TVRlKCk7elRlKCk7Q1RlKCk7VFRlKCk7JFRlKCk7RFRlKCk7TFRlKCk7RVRlKCk7UFRlKCk7SVRlKCk7QVRlKCk7TlRlKCk7UlRlKCk7T1RlKCk7RlRlKCk7QlRlKCk7SFRlKCk7cVRlKCk7alRlKCk7VlRlKCk7VVRlKCk7V1RlKCk7R1RlKCk7S1RlKCk7WVRlKCk7WlRlKCk7WFRlKCk7UVRlKCk7SlRlKCk7ZSRlKCk7dCRlKCk7YSRlKCk7cyRlKCk7aSRlKCk7ciRlKCk7byRlKCk7biRlKCk7bCRlKCk7YyRlKCk7ZCRlKCk7dSRlKCk7cCRlKCk7aCRlKCk7ZiRlKCk7bSRlKCk7ZyRlKCk7YiRlKCk7diRlKCk7eCRlKCk7eSRlKCk7dyRlKCk7ayRlKCk7UyRlKCk7XyRlKCk7TSRlKCk7eiRlKCk7QyRlKCk7VCRlKCk7JCRlKCk7RCRlKCk7TCRlKCk7RSRlKCk7UCRlKCk7SSRlKCk7QSRlKCk7TiRlKCk7UiRlKCk7TyRlKCk7RiRlKCk7QiRlKCk7SCRlKCk7cSRlKCk7aiRlKCk7ViRlKCk7VSRlKCk7VyRlKCk7RyRlKCk7SyRlKCk7WSRlKCk7WiRlKCk7WCRlKCk7USRlKCk7SiRlKCk7ZURlKCk7dERlKCk7YURlKCk7c0RlKCk7aURlKCk7ckRlKCk7b0RlKCk7bkRlKCk7bERlKCk7Y0RlKCk7ZERlKCk7dURlKCk7cERlKCk7aERlKCk7ZkRlKCk7bURlKCk7Z0RlKCk7YkRlKCk7dkRlKCk7eERlKCk7eURlKCk7d0RlKCk7a0RlKCk7U0RlKCk7X0RlKCk7TURlKCk7ekRlKCk7Q0RlKCk7VERlKCk7JERlKCk7RERlKCk7TERlKCk7RURlKCk7UERlKCk7SURlKCk7QURlKCk7TkRlKCk7UkRlKCk7T0RlKCk7RkRlKCk7QkRlKCk7SERlKCk7cURlKCk7akRlKCk7VkRlKCk7VURlKCk7V0RlKCk7R0RlKCk7S0RlKCk7WURlKCk7WkRlKCk7WERlKCk7UURlKCk7SkRlKCk7ZUxlKCk7dExlKCk7YUxlKCk7c0xlKCk7aUxlKCk7ckxlKCk7b0xlKCk7bkxlKCk7bExlKCk7Y0xlKCk7ZExlKCk7dUxlKCk7cExlKCk7aExlKCk7ZkxlKCk7bUxlKCk7Z0xlKCk7YkxlKCk7dkxlKCk7eExlKCk7eUxlKCk7d0xlKCk7a0xlKCk7U0xlKCk7X0xlKCk7TUxlKCk7ekxlKCk7Q0xlKCk7VExlKCk7JExlKCk7RExlKCk7TExlKCk7RUxlKCk7UExlKCk7SUxlKCk7QUxlKCk7TkxlKCk7UkxlKCk7T0xlKCk7RkxlKCk7QkxlKCk7SExlKCk7cUxlKCk7akxlKCk7VkxlKCk7VUxlKCk7V0xlKCk7R0xlKCk7S0xlKCk7WUxlKCk7WkxlKCk7WExlKCk7UUxlKCk7SkxlKCk7ZUVlKCk7dEVlKCk7YUVlKCk7c0VlKCk7aUVlKCk7ckVlKCk7b0VlKCk7bkVlKCk7bEVlKCk7Y0VlKCk7ZEVlKCk7dUVlKCk7cEVlKCk7aEVlKCk7ZkVlKCk7bUVlKCk7Z0VlKCk7YkVlKCk7dkVlKCk7eEVlKCk7eUVlKCk7d0VlKCk7a0VlKCk7U0VlKCk7X0VlKCk7TUVlKCk7ekVlKCk7Q0VlKCk7VEVlKCk7JEVlKCk7REVlKCk7TEVlKCk7RUVlKCk7UEVlKCk7SUVlKCk7QUVlKCk7TkVlKCk7UkVlKCk7T0VlKCk7RkVlKCk7QkVlKCk7SEVlKCk7cUVlKCk7akVlKCk7VkVlKCk7VUVlKCk7V0VlKCk7R0VlKCk7S0VlKCk7WUVlKCk7WkVlKCk7WEVlKCk7UUVlKCk7SkVlKCk7ZVBlKCk7dFBlKCk7YVBlKCk7c1BlKCk7aVBlKCk7clBlKCk7b1BlKCk7blBlKCk7bFBlKCk7Y1BlKCk7ZFBlKCk7dVBlKCk7cFBlKCk7aFBlKCk7ZlBlKCk7bVBlKCk7Z1BlKCk7YlBlKCk7dlBlKCk7eFBlKCk7eVBlKCk7d1BlKCk7a1BlKCk7U1BlKCk7X1BlKCk7TVBlKCk7elBlKCk7Q1BlKCk7VFBlKCk7JFBlKCk7RFBlKCk7TFBlKCk7RVBlKCk7UFBlKCk7SVBlKCk7QVBlKCk7TlBlKCk7UlBlKCk7T1BlKCk7RlBlKCk7QlBlKCk7SFBlKCk7cVBlKCk7alBlKCk7VlBlKCk7VVBlKCk7V1BlKCk7R1BlKCk7S1BlKCk7WVBlKCk7WlBlKCk7WFBlKCk7UVBlKCk7SlBlKCk7ZUllKCk7dEllKCk7YUllKCk7c0llKCk7aUllKCk7ckllKCk7b0llKCk7bkllKCk7bEllKCk7Y0llKCk7ZEllKCk7dUllKCk7cEllKCk7aEllKCk7ZkllKCk7bUllKCk7Z0llKCk7YkllKCk7dkllKCk7eEllKCk7eUllKCk7d0llKCk7a0llKCk7U0llKCk7X0llKCk7TUllKCk7ekllKCk7Q0llKCk7VEllKCk7JEllKCk7REllKCk7TEllKCk7RUllKCk7UEllKCk7SUllKCk7QUllKCk7TkllKCk7UkllKCk7T0llKCk7RkllKCk7QkllKCk7SEllKCk7cUllKCk7akllKCk7VkllKCk7VUllKCk7V0llKCk7R0llKCk7S0llKCk7WUllKCk7WkllKCk7WEllKCk7UUllKCk7SkllKCk7ZUFlKCk7dEFlKCk7YUFlKCk7c0FlKCk7aUFlKCk7ckFlKCk7b0FlKCk7bkFlKCk7bEFlKCk7Y0FlKCk7ZEFlKCk7dUFlKCk7cEFlKCk7aEFlKCk7ZkFlKCk7bUFlKCk7Z0FlKCk7YkFlKCk7dkFlKCk7eEFlKCk7eUFlKCk7d0FlKCk7a0FlKCk7U0FlKCk7X0FlKCk7TUFlKCk7ekFlKCk7Q0FlKCk7VEFlKCk7JEFlKCk7REFlKCk7TEFlKCk7RUFlKCk7UEFlKCk7SUFlKCk7QUFlKCk7TkFlKCk7UkFlKCk7T0FlKCk7RkFlKCk7QkFlKCk7SEFlKCk7cUFlKCk7akFlKCk7VkFlKCk7VUFlKCk7V0FlKCk7R0FlKCk7S0FlKCk7WUFlKCk7WkFlKCk7WEFlKCk7UUFlKCk7SkFlKCk7ZU5lKCk7dE5lKCk7YU5lKCk7c05lKCk7aU5lKCk7ck5lKCk7b05lKCk7bk5lKCk7bE5lKCk7Y05lKCk7ZE5lKCk7dU5lKCk7cE5lKCk7aE5lKCk7Zk5lKCk7bU5lKCk7Z05lKCk7Yk5lKCk7dk5lKCk7eE5lKCk7eU5lKCk7d05lKCk7a05lKCk7U05lKCk7X05lKCk7TU5lKCk7ek5lKCk7Q05lKCk7VE5lKCk7JE5lKCk7RE5lKCk7TE5lKCk7RU5lKCk7UE5lKCk7SU5lKCk7QU5lKCk7Tk5lKCk7Uk5lKCk7T05lKCk7Rk5lKCk7Qk5lKCk7SE5lKCk7cU5lKCk7ak5lKCk7Vk5lKCk7VU5lKCk7V05lKCk7R05lKCk7S05lKCk7WU5lKCk7Wk5lKCk7WE5lKCk7UU5lKCk7Sk5lKCk7ZVJlKCk7dFJlKCk7YVJlKCk7c1JlKCk7aVJlKCk7clJlKCk7b1JlKCk7blJlKCk7bFJlKCk7Y1JlKCk7ZFJlKCk7dVJlKCk7cFJlKCk7aFJlKCk7ZlJlKCk7bVJlKCk7Z1JlKCk7YlJlKCk7dlJlKCk7eFJlKCk7eVJlKCk7d1JlKCk7a1JlKCk7U1JlKCk7X1JlKCk7TVJlKCk7elJlKCk7Q1JlKCk7VFJlKCk7JFJlKCk7RFJlKCk7TFJlKCk7RVJlKCk7UFJlKCk7SVJlKCk7QVJlKCk7TlJlKCk7UlJlKCk7T1JlKCk7RlJlKCk7QlJlKCk7SFJlKCk7cVJlKCk7alJlKCk7VlJlKCk7VVJlKCk7V1JlKCk7R1JlKCk7S1JlKCk7WVJlKCk7WlJlKCk7WFJlKCk7UVJlKCk7SlJlKCk7ZU9lKCk7dE9lKCk7YU9lKCk7c09lKCk7aU9lKCk7ck9lKCk7b09lKCk7bk9lKCk7bE9lKCk7Y09lKCk7ZE9lKCk7dU9lKCk7cE9lKCk7aE9lKCk7Zk9lKCk7bU9lKCk7Z09lKCk7Yk9lKCk7dk9lKCk7eE9lKCk7eU9lKCk7d09lKCk7a09lKCk7U09lKCk7X09lKCk7TU9lKCk7ek9lKCk7Q09lKCk7VE9lKCk7JE9lKCk7RE9lKCk7TE9lKCk7RU9lKCk7UE9lKCk7SU9lKCk7QU9lKCk7Tk9lKCk7Uk9lKCk7T09lKCk7Rk9lKCk7Qk9lKCk7SE9lKCk7cU9lKCk7ak9lKCk7Vk9lKCk7VU9lKCk7V09lKCk7R09lKCk7S09lKCk7WU9lKCk7Wk9lKCk7WE9lKCk7UU9lKCk7Sk9lKCk7ZUZlKCk7dEZlKCk7YUZlKCk7c0ZlKCk7aUZlKCk7ckZlKCk7b0ZlKCk7bkZlKCk7bEZlKCk7Y0ZlKCk7ZEZlKCk7dUZlKCk7cEZlKCk7aEZlKCk7ZkZlKCk7bUZlKCk7Z0ZlKCk7YkZlKCk7dkZlKCk7eEZlKCk7eUZlKCk7d0ZlKCk7a0ZlKCk7U0ZlKCk7X0ZlKCk7TUZlKCk7ekZlKCk7Q0ZlKCk7VEZlKCk7JEZlKCk7REZlKCk7TEZlKCk7RUZlKCk7UEZlKCk7SUZlKCk7QUZlKCk7TkZlKCk7UkZlKCk7T0ZlKCk7RkZlKCk7QkZlKCk7SEZlKCk7cUZlKCk7akZlKCk7VkZlKCk7VUZlKCk7V0ZlKCk7R0ZlKCk7S0ZlKCk7WUZlKCk7WkZlKCk7WEZlKCk7UUZlKCk7SkZlKCk7ZUJlKCk7dEJlKCk7YUJlKCk7c0JlKCk7aUJlKCk7ckJlKCk7b0JlKCk7bkJlKCk7bEJlKCk7Y0JlKCk7ZEJlKCk7dUJlKCk7cEJlKCk7aEJlKCk7ZkJlKCk7bUJlKCk7Z0JlKCk7YkJlKCk7dkJlKCk7eEJlKCk7eUJlKCk7d0JlKCk7a0JlKCk7U0JlKCk7X0JlKCk7TUJlKCk7ekJlKCk7Q0JlKCk7VEJlKCk7JEJlKCk7REJlKCk7TEJlKCk7RUJlKCk7UEJlKCk7SUJlKCk7QUJlKCk7TkJlKCk7UkJlKCk7T0JlKCk7RkJlKCk7QkJlKCk7SEJlKCk7cUJlKCk7akJlKCk7VkJlKCk7VUJlKCk7V0JlKCk7R0JlKCk7S0JlKCk7WUJlKCk7WkJlKCk7WEJlKCk7UUJlKCk7SkJlKCk7ZUhlKCk7dEhlKCk7YUhlKCk7c0hlKCk7aUhlKCk7ckhlKCk7b0hlKCk7bkhlKCk7bEhlKCk7Y0hlKCk7ZEhlKCk7dUhlKCk7cEhlKCk7aEhlKCk7ZkhlKCk7bUhlKCk7Z0hlKCk7YkhlKCk7dkhlKCk7eEhlKCk7eUhlKCk7d0hlKCk7a0hlKCk7U0hlKCk7X0hlKCk7TUhlKCk7ekhlKCk7Q0hlKCk7VEhlKCk7JEhlKCk7REhlKCk7TEhlKCk7RUhlKCk7UEhlKCk7SUhlKCk7QUhlKCk7TkhlKCk7UkhlKCk7T0hlKCk7RkhlKCk7QkhlKCk7SEhlKCk7cUhlKCk7akhlKCk7VkhlKCk7VUhlKCk7V0hlKCk7R0hlKCk7S0hlKCk7WUhlKCk7WkhlKCk7WEhlKCk7UUhlKCk7SkhlKCk7ZXFlKCk7dHFlKCk7YXFlKCk7c3FlKCk7aXFlKCk7cnFlKCk7b3FlKCk7bnFlKCk7bHFlKCk7Y3FlKCk7ZHFlKCk7dXFlKCk7cHFlKCk7aHFlKCk7ZnFlKCk7bXFlKCk7Z3FlKCk7YnFlKCk7dnFlKCk7eHFlKCk7eXFlKCk7d3FlKCk7a3FlKCk7U3FlKCk7X3FlKCk7TXFlKCk7enFlKCk7Q3FlKCk7VHFlKCk7JHFlKCk7RHFlKCk7THFlKCk7RXFlKCk7UHFlKCk7SXFlKCk7QXFlKCk7TnFlKCk7UnFlKCk7T3FlKCk7RnFlKCk7QnFlKCk7SHFlKCk7cXFlKCk7anFlKCk7VnFlKCk7VXFlKCk7V3FlKCk7R3FlKCk7S3FlKCk7WXFlKCk7WnFlKCk7WHFlKCk7UXFlKCk7SnFlKCk7ZWplKCk7dGplKCk7YWplKCk7c2plKCk7aWplKCk7cmplKCk7b2plKCk7bmplKCk7bGplKCk7Y2plKCk7ZGplKCk7dWplKCk7cGplKCk7aGplKCk7ZmplKCk7bWplKCk7Z2plKCk7YmplKCk7dmplKCk7eGplKCk7eWplKCk7d2plKCk7a2plKCk7U2plKCk7X2plKCk7TWplKCk7emplKCk7Q2plKCk7VGplKCk7JGplKCk7RGplKCk7TGplKCk7RWplKCk7UGplKCk7SWplKCk7QWplKCk7TmplKCk7UmplKCk7T2plKCk7RmplKCk7QmplKCk7SGplKCk7cWplKCk7amplKCk7VmplKCk7VWplKCk7V2plKCk7R2plKCk7S2plKCk7WWplKCk7WmplKCk7WGplKCk7UWplKCk7SmplKCk7ZVZlKCk7dFZlKCk7YVZlKCk7c1ZlKCk7aVZlKCk7clZlKCk7b1ZlKCk7blZlKCk7bFZlKCk7Y1ZlKCk7ZFZlKCk7dVZlKCk7cFZlKCk7aFZlKCk7ZlZlKCk7bVZlKCk7Z1ZlKCk7YlZlKCk7dlZlKCk7eFZlKCk7eVZlKCk7d1ZlKCk7a1ZlKCk7U1ZlKCk7X1ZlKCk7TVZlKCk7elZlKCk7Q1ZlKCk7VFZlKCk7JFZlKCk7RFZlKCk7TFZlKCk7RVZlKCk7UFZlKCk7SVZlKCk7QVZlKCk7TlZlKCk7UlZlKCk7T1ZlKCk7RlZlKCk7QlZlKCk7SFZlKCk7cVZlKCk7alZlKCk7VlZlKCk7VVZlKCk7V1ZlKCk7R1ZlKCk7S1ZlKCk7WVZlKCk7WlZlKCk7WFZlKCk7UVZlKCk7SlZlKCk7ZVVlKCk7dFVlKCk7YVVlKCk7c1VlKCk7aVVlKCk7clVlKCk7b1VlKCk7blVlKCk7bFVlKCk7Y1VlKCk7ZFVlKCk7dVVlKCk7cFVlKCk7aFVlKCk7ZlVlKCk7bVVlKCk7Z1VlKCk7YlVlKCk7dlVlKCk7eFVlKCk7eVVlKCk7d1VlKCk7a1VlKCk7U1VlKCk7X1VlKCk7TVVlKCk7elVlKCk7Q1VlKCk7VFVlKCk7JFVlKCk7RFVlKCk7TFVlKCk7RVVlKCk7UFVlKCk7SVVlKCk7QVVlKCk7TlVlKCk7UlVlKCk7T1VlKCk7RlVlKCk7QlVlKCk7SFVlKCk7cVVlKCk7alVlKCk7VlVlKCk7VVVlKCk7V1VlKCk7R1VlKCk7S1VlKCk7WVVlKCk7WlVlKCk7WFVlKCk7UVVlKCk7SlVlKCk7ZVdlKCk7dFdlKCk7YVdlKCk7c1dlKCk7aVdlKCk7cldlKCk7b1dlKCk7bldlKCk7bFdlKCk7Y1dlKCk7ZFdlKCk7dVdlKCk7cFdlKCk7aFdlKCk7ZldlKCk7bVdlKCk7Z1dlKCk7YldlKCk7dldlKCk7eFdlKCk7eVdlKCk7d1dlKCk7a1dlKCk7U1dlKCk7X1dlKCk7TVdlKCk7eldlKCk7Q1dlKCk7VFdlKCk7JFdlKCk7RFdlKCk7TFdlKCk7RVdlKCk7UFdlKCk7SVdlKCk7QVdlKCk7TldlKCk7UldlKCk7T1dlKCk7RldlKCk7QldlKCk7SFdlKCk7cVdlKCk7aldlKCk7VldlKCk7VVdlKCk7V1dlKCk7R1dlKCk7S1dlKCk7WVdlKCk7WldlKCk7WFdlKCk7UVdlKCk7SldlKCk7ZUdlKCk7dEdlKCk7YUdlKCk7c0dlKCk7aUdlKCk7ckdlKCk7b0dlKCk7bkdlKCk7bEdlKCk7Y0dlKCk7ZEdlKCk7dUdlKCk7cEdlKCk7aEdlKCk7ZkdlKCk7bUdlKCk7Z0dlKCk7YkdlKCk7dkdlKCk7eEdlKCk7eUdlKCk7d0dlKCk7a0dlKCk7U0dlKCk7X0dlKCk7TUdlKCk7ekdlKCk7Q0dlKCk7VEdlKCk7JEdlKCk7REdlKCk7TEdlKCk7RUdlKCk7UEdlKCk7SUdlKCk7QUdlKCk7TkdlKCk7UkdlKCk7T0dlKCk7RkdlKCk7QkdlKCk7SEdlKCk7cUdlKCk7akdlKCk7VkdlKCk7VUdlKCk7V0dlKCk7R0dlKCk7S0dlKCk7WUdlKCk7WkdlKCk7WEdlKCk7UUdlKCk7SkdlKCk7ZUtlKCk7dEtlKCk7YUtlKCk7c0tlKCk7aUtlKCk7cktlKCk7b0tlKCk7bktlKCk7bEtlKCk7Y0tlKCk7ZEtlKCk7dUtlKCk7cEtlKCk7aEtlKCk7ZktlKCk7bUtlKCk7Z0tlKCk7YktlKCk7dktlKCk7eEtlKCk7eUtlKCk7d0tlKCk7a0tlKCk7U0tlKCk7X0tlKCk7TUtlKCk7ektlKCk7Q0tlKCk7VEtlKCk7JEtlKCk7REtlKCk7TEtlKCk7RUtlKCk7UEtlKCk7SUtlKCk7QUtlKCk7TktlKCk7UktlKCk7T0tlKCk7RktlKCk7QktlKCk7SEtlKCk7cUtlKCk7aktlKCk7VktlKCk7VUtlKCk7V0tlKCk7R0tlKCk7S0tlKCk7WUtlKCk7WktlKCk7WEtlKCk7UUtlKCk7SktlKCk7ZVllKCk7dFllKCk7YVllKCk7c1llKCk7aVllKCk7clllKCk7b1llKCk7blllKCk7bFllKCk7Y1llKCk7ZFllKCk7dVllKCk7cFllKCk7aFllKCk7ZlllKCk7bVllKCk7Z1llKCk7YlllKCk7dlllKCk7eFllKCk7eVllKCk7d1llKCk7a1llKCk7U1llKCk7X1llKCk7TVllKCk7elllKCk7Q1llKCk7VFllKCk7JFllKCk7RFllKCk7TFllKCk7RVllKCk7UFllKCk7SVllKCk7QVllKCk7TlllKCk7UlllKCk7T1llKCk7RlllKCk7QlllKCk7SFllKCk7cVllKCk7alllKCk7VlllKCk7VVllKCk7V1llKCk7R1llKCk7S1llKCk7WVllKCk7WlllKCk7WFllKCk7UVllKCk7SlllKCk7ZVplKCk7dFplKCk7YVplKCk7c1plKCk7aVplKCk7clplKCk7b1plKCk7blplKCk7bFplKCk7Y1plKCk7ZFplKCk7dVplKCk7cFplKCk7aFplKCk7ZlplKCk7bVplKCk7Z1plKCk7YlplKCk7dlplKCk7eFplKCk7eVplKCk7d1plKCk7a1plKCk7U1plKCk7X1plKCk7TVplKCk7elplKCk7Q1plKCk7VFplKCk7JFplKCk7RFplKCk7TFplKCk7RVplKCk7UFplKCk7SVplKCk7QVplKCk7TlplKCk7UlplKCk7T1plKCk7RlplKCk7QlplKCk7SFplKCk7cVplKCk7alplKCk7VlplKCk7VVplKCk7V1plKCk7R1plKCk7S1plKCk7WVplKCk7WlplKCk7WFplKCk7UVplKCk7SlplKCk7ZVhlKCk7dFhlKCk7YVhlKCk7c1hlKCk7aVhlKCk7clhlKCk7b1hlKCk7blhlKCk7bFhlKCk7Y1hlKCk7ZFhlKCk7dVhlKCk7cFhlKCk7aFhlKCk7ZlhlKCk7bVhlKCk7Z1hlKCk7YlhlKCk7dlhlKCk7eFhlKCk7eVhlKCk7d1hlKCk7a1hlKCk7U1hlKCk7X1hlKCk7TVhlKCk7elhlKCk7Q1hlKCk7VFhlKCk7JFhlKCk7RFhlKCk7TFhlKCk7RVhlKCk7UFhlKCk7SVhlKCk7QVhlKCk7TlhlKCk7UlhlKCk7T1hlKCk7RlhlKCk7QlhlKCk7SFhlKCk7cVhlKCk7alhlKCk7VlhlKCk7VVhlKCk7V1hlKCk7R1hlKCk7S1hlKCk7WVhlKCk7WlhlKCk7WFhlKCk7UVhlKCk7SlhlKCk7ZVFlKCk7dFFlKCk7YVFlKCk7c1FlKCk7aVFlKCk7clFlKCk7b1FlKCk7blFlKCk7bFFlKCk7Y1FlKCk7ZFFlKCk7dVFlKCk7cFFlKCk7aFFlKCk7ZlFlKCk7bVFlKCk7Z1FlKCk7YlFlKCk7dlFlKCk7eFFlKCk7eVFlKCk7d1FlKCk7a1FlKCk7U1FlKCk7X1FlKCk7TVFlKCk7elFlKCk7Q1FlKCk7VFFlKCk7JFFlKCk7RFFlKCk7TFFlKCk7RVFlKCk7UFFlKCk7SVFlKCk7QVFlKCk7TlFlKCk7UlFlKCk7T1FlKCk7RlFlKCk7QlFlKCk7SFFlKCk7cVFlKCk7alFlKCk7VlFlKCk7VVFlKCk7V1FlKCk7R1FlKCk7S1FlKCk7WVFlKCk7WlFlKCk7WFFlKCk7UVFlKCk7SlFlKCk7ZUplKCk7dEplKCk7YUplKCk7c0plKCk7aUplKCk7ckplKCk7b0plKCk7bkplKCk7bEplKCk7Y0plKCk7ZEplKCk7dUplKCk7cEplKCk7aEplKCk7ZkplKCk7bUplKCk7Z0plKCk7YkplKCk7dkplKCk7eEplKCk7eUplKCk7d0plKCk7a0plKCk7U0plKCk7X0plKCk7TUplKCk7ekplKCk7Q0plKCk7VEplKCk7JEplKCk7REplKCk7TEplKCk7RUplKCk7UEplKCk7SUplKCk7QUplKCk7TkplKCk7UkplKCk7T0plKCk7RkplKCk7QkplKCk7SEplKCk7cUplKCk7akplKCk7VkplKCk7VUplKCk7V0plKCk7R0plKCk7S0plKCk7WUplKCk7WkplKCk7WEplKCk7UUplKCk7SkplKCk7ZWV0KCk7dGV0KCk7YWV0KCk7c2V0KCk7aWV0KCk7cmV0KCk7b2V0KCk7bmV0KCk7Y2V0KCk7ZGV0KCk7dWV0KCk7cGV0KCk7aGV0KCk7ZmV0KCk7bWV0KCk7Z2V0KCk7YmV0KCk7dmV0KCk7eGV0KCk7eWV0KCk7d2V0PWkoKHtpY29uczpzPXt9LG5hbWVBdHRyOmU9ImRhdGEtbHVjaWRlIixhdHRyczp0PXt9LHJvb3Q6YT1kb2N1bWVudCxpblRlbXBsYXRlczpyfT17fSk9PntpZighT2JqZWN0LnZhbHVlcyhzKS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBQbGVhc2UgcHJvdmlkZSBhbiBpY29ucyBvYmplY3QuCklmIHlvdSB3YW50IHRvIHVzZSBhbGwgdGhlIGljb25zIHlvdSBjYW4gaW1wb3J0IGl0IGxpa2U6CiBcYGltcG9ydCB7IGNyZWF0ZUljb25zLCBpY29ucyB9IGZyb20gJ2x1Y2lkZSc7Cmx1Y2lkZS5jcmVhdGVJY29ucyh7aWNvbnN9KTtcYGApO2lmKHR5cGVvZiBhPiJ1Iil0aHJvdyBuZXcgRXJyb3IoImBjcmVhdGVJY29ucygpYCBvbmx5IHdvcmtzIGluIGEgYnJvd3NlciBlbnZpcm9ubWVudC4iKTtpZihBcnJheS5mcm9tKGEucXVlcnlTZWxlY3RvckFsbChgWyR7ZX1dYCkpLmZvckVhY2gobz0+dG5lKG8se25hbWVBdHRyOmUsaWNvbnM6cyxhdHRyczp0fSkpLHImJkFycmF5LmZyb20oYS5xdWVyeVNlbGVjdG9yQWxsKCJ0ZW1wbGF0ZSIpKS5mb3JFYWNoKGw9PndldCh7aWNvbnM6cyxuYW1lQXR0cjplLGF0dHJzOnQscm9vdDpsLmNvbnRlbnQsaW5UZW1wbGF0ZXM6cn0pKSxlPT09ImRhdGEtbHVjaWRlIil7bGV0IG89YS5xdWVyeVNlbGVjdG9yQWxsKCJbaWNvbi1uYW1lXSIpO28ubGVuZ3RoPjAmJihjb25zb2xlLndhcm4oIltMdWNpZGVdIFNvbWUgaWNvbnMgd2VyZSBmb3VuZCB3aXRoIHRoZSBub3cgZGVwcmVjYXRlZCBpY29uLW5hbWUgYXR0cmlidXRlLiBUaGVzZSB3aWxsIHN0aWxsIGJlIHJlcGxhY2VkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYnV0IHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBpbiB2MS4wIGFuZCB5b3Ugc2hvdWxkIHN3aXRjaCB0byBkYXRhLWx1Y2lkZSIpLEFycmF5LmZyb20obykuZm9yRWFjaChsPT50bmUobCx7bmFtZUF0dHI6Imljb24tbmFtZSIsaWNvbnM6cyxhdHRyczp0fSkpKX19LCJjcmVhdGVJY29ucyIpfSk7dmFyIEsyYSxZMmE9ZygoKT0+e3BlKCk7VWEoKTtDOCgpO0syYT1pKCgpPT57bGV0IHM9T2JqZWN0LmtleXMoYW5lLmZhKTtjb25zb2xlLmxvZygiRmlyc3QgZmV3IEx1Y2lkZSBrZXlzOiIsT2JqZWN0LmtleXMoR3IpLnNsaWNlKDAsNSkpO2xldCBlPU9iamVjdC5rZXlzKEdyKS5maWx0ZXIobj0+e2xldCBvPW5bMF09PT1uWzBdLnRvVXBwZXJDYXNlKCkmJm5bMF0hPT1uWzBdLnRvTG93ZXJDYXNlKCksbD10eXBlb2YgR3Jbbl09PSJmdW5jdGlvbiIscD0hWyJjcmVhdGVFbGVtZW50IiwiY3JlYXRlSWNvbnMiLCJkZWZhdWx0Il0uaW5jbHVkZXMobik7cmV0dXJuIGwmJm8mJnB9KS5tYXAobj0+bi5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKStuLnNsaWNlKDEpKTtpZihjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gTHVjaWRlIGljb25zYCksZS5sZW5ndGg9PT0wJiYoY29uc29sZS5sb2coIlRyeWluZyBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBmaW5kIEx1Y2lkZSBpY29ucyIpLENkKSl7bGV0IG49Q2R8fHt9O2UucHVzaCguLi5PYmplY3Qua2V5cyhuKSksY29uc29sZS5sb2coYEZvdW5kICR7ZS5sZW5ndGh9IGljb25zIHZpYSBhbHRlcm5hdGl2ZSBtZXRob2RgKX1sZXQgdD1pKCgpPT57bGV0IG49cy5tYXAoZD0+YGZhOiR7ZH1gKSxvPWUubWFwKGQ9PmBsdWNpZGU6JHtkfWApLGw9Wy4uLm4sLi4ub10scD1sLmpvaW4oYApgKTtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChwKS50aGVuKCgpPT57bGV0IHU9d2luZG93LmV2ZW50LmN1cnJlbnRUYXJnZXQsYz11LnRleHRDb250ZW50O3UudGV4dENvbnRlbnQ9YFx1MjcxMyBDb3BpZWQgJHtsLmxlbmd0aH0gaWNvbiBuYW1lcyFgLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PWN9LDJlMyl9KX0sImNvcHlBbGxJY29uTmFtZXMiKSxhPWkobj0+e2xldCBvPW4udGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpLGw9bi50YXJnZXQuY2xvc2VzdCgiLmRlbW9Db250YWluZXIiKTtsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5pY29uQ29udGFpbmVyIikuZm9yRWFjaChkPT57bGV0IHU9ZC5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpO289PT0iInx8dSYmdS5pbmNsdWRlcyhvKT9kLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KSxsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWN0aW9uLWNvbnRhaW5lciIpLmZvckVhY2goZD0+e2xldCB1PWQucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXI6bm90KC5oaWRkZW4pIikubGVuZ3RoLGM9ZC5xdWVyeVNlbGVjdG9yKCIuaWNvbi1jb3VudCIpO2lmKGMpe2xldCBiPWQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmYS1zZWN0aW9uIik/cy5sZW5ndGg6ZS5sZW5ndGg7Yy50ZXh0Q29udGVudD11PT09Yj9gJHtifSBpY29uc2A6YCR7dX0gb2YgJHtifSBpY29uc2B9fSl9LCJzZWFyY2hJY29ucyIpLHI9aSgobixvKT0+e2xldCBsPWAke299OiR7bn1gO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGwpLnRoZW4oKCk9PntsZXQgdT13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9yKCIuY29weS10b29sdGlwIik7dSYmKHUudGV4dENvbnRlbnQ9IkNvcGllZCEiLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PSJDbGljayB0byBjb3B5In0sMmUzKSl9KX0sImNvcHlJY29uTmFtZSIpO3JldHVybiB3YAogIDxzdHlsZT4KICAgIC5kZW1vQ29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYmFja2dyb3VuZDogIzExMTExMTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLnNlYXJjaC1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMHB4OwogICAgfQogICAgCiAgICAjaWNvblNlYXJjaCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgY29sb3I6ICNmZmY7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgYm9yZGVyLWNvbG9yOiAjZTQwMDJiOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uIHsKICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICNjNDAwMWI7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjphY3RpdmUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgICAKICAgIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjBweCAxNnB4IDBweCAxNnB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzOwogICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAgIAogICAgLmljb25Db250YWluZXI6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogICAgfQoKICAgIC5pY29uTmFtZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogI2NjYzsKICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIG1heC13aWR0aDogMTIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG1hcmdpbjogMjBweCAwOwogICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KICAgIAogICAgLmFwaS1ub3RlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogI2U0MDAyYjsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgcGFkZGluZzogMTBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0MDAyYjsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyOCwgMCwgNDMsIDAuMSk7CiAgICB9CiAgICAKICAgIC5pY29uLWNvdW50IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogIzg4ODsKICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICB9CiAgICAKICAgIC5pY29ucy1ncmlkIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAKICAgIC5jb3B5LXRvb2x0aXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0b3A6IC0zMHB4OwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciAuY29weS10b29sdGlwIHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciBkZWVzLWljb24gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICB9CiAgICAKICAgIC5oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlYXJjaC1jb250YWluZXIiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imljb25TZWFyY2giIHBsYWNlaG9sZGVyPSJTZWFyY2ggaWNvbnMuLi4iIEBpbnB1dD0ke2F9PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWFsbC1idXR0b24iIEBjbGljaz0ke3R9PvCfk4sgQ29weSBBbGwgSWNvbiBOYW1lczwvYnV0dG9uPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImFwaS1ub3RlIj4KICAgICAgTmV3IEFQSTogVXNlIDxjb2RlPmljb249ImZhOmljb25OYW1lIjwvY29kZT4gb3IgPGNvZGU+aWNvbj0ibHVjaWRlOmljb25OYW1lIjwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5pY29uRkE8L2NvZGU+LiAKICAgICAgQ2xpY2sgYW55IGljb24gdG8gY29weSBpdHMgbmV3IGZvcm1hdCB0byBjbGlwYm9hcmQuCiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250YWluZXIgZmEtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEZvbnRBd2Vzb21lIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7cy5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHtzLm1hcChuPT57bGV0IG89YGZhOiR7bn1gO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25Db250YWluZXIgZmEtaWNvbiIgZGF0YS1uYW1lPSR7bi50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihuLCJmYSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmZhOiR7bn08L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRvb2x0aXAiPkNsaWNrIHRvIGNvcHk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBsdWNpZGUtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEx1Y2lkZSBJY29ucwogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWNvdW50Ij4ke2UubGVuZ3RofSBpY29uczwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Imljb25zLWdyaWQiPgogICAgICAgICR7ZS5tYXAobj0+e2xldCBvPWBsdWNpZGU6JHtufWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBsdWNpZGUtaWNvbiIgZGF0YS1uYW1lPSR7bi50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihuLCJsdWNpZGUiKX0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7b30gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25OYW1lIj5sdWNpZGU6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgogIGB9LCJkZW1vRnVuYyIpfSk7ZnVuY3Rpb24gdldhKCl7cnYuc2l6ZT5aMmEmJkFycmF5LmZyb20ocnYua2V5cygpKS5zbGljZSgwLFoyYS81KS5mb3JFYWNoKGU9PnJ2LmRlbGV0ZShlKSl9dmFyIGl2LFUxLGJXYSxhbmUscnYsWjJhLFgyYSxVYT1nKCgpPT57cGUoKTtrdCgpO3B0KCk7azhlKCk7c2dlKCk7ejdlKCk7UmtlKCk7WTJhKCk7QzgoKTtDOCgpO2l2PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxVMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sYldhPXthcnJvd1JpZ2h0OlhiLGFycm93VXBSaWdodEZyb21TcXVhcmU6Z2YsYmVsbDpGYixidWc6ZXYsYnVpbGRpbmc6S2IsY2FyZXRMZWZ0OnFiLGNhcmV0UmlnaHQ6T2IsY2hlY2s6WmIsY2lyY2xlSW5mbzp2ZixjaXJjbGVDaGVjazp0ZixjaXJjbGVDaGVja1NvbGlkOnBmLGNpcmNsZVhtYXJrOnVoLGNpcmNsZVhtYXJrU29saWQ6cGgsY2xvY2tSb3RhdGVMZWZ0OmhmLGNvcHk6UGIsY29weVNvbGlkOnR2LGRlc2t0b3A6YmYsZXllOkhiLGV5ZVNsYXNoOmF2LGZpbGVJbnZvaWNlOlFiLGZpbGVJbnZvaWNlRG9sbGVyOkpiLGdlYXI6ZGYsZ3JpcDpoaCxtYWduaWZ5aW5nR2xhc3M6bmYsbWVzc2FnZTpKMyxtZXNzYWdlU29saWQ6cmYsbW9uZXlDaGVja0RvbGxhcjptZixtdWdIb3Q6c3YsbWludXM6c2YsbmV0d29ya1dpcmVkOldiLHBhcGVyY2xpcDpZYixwYXN0ZTpRMyxwYXN0ZVNvbGlkOmFmLHBlblRvU3F1YXJlOmxmLHBsdXM6ZmYscmVjZWlwdDpqYixyc3M6b2Ysc2hhcmU6Y2Ysc3VuOkViLHN1blNvbGlkOlViLHRlcm1pbmFsOkdiLHRyYXNoOmZoLHRyYXNoU29saWQ6ZmgsdHJhc2hDYW46ZWYsdHJhc2hDYW5Tb2xpZDp1Zix1c2VyczpWYix3YWxsZXQ6QmIseG1hcms6emQsZmFjZWJvb2s6Q2IsZ29vZ2xlOk1iLGluc3RhZ3JhbTpEYixsaW5rZWRpbjp6YixtZWRpdW06WDMsc2xhY2s6VGIsdGlrdG9rOiRiLHR3aXR0ZXI6TGJ9LGFuZT17ZmE6YldhfSxydj1uZXcgTWFwLFoyYT01MDA7aSh2V2EsImxpbWl0Q2FjaGVTaXplIik7WDJhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pY29uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJY29uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoXz0+XywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoXz0+XywidG9BdHRyaWJ1dGUiKX19KV0scD1bTCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoXz0+XywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoXz0+XywidG9BdHRyaWJ1dGUiKX19KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpOdW1iZXJ9KV0saXYodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uRkEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imljb25GQSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmljb25GQSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmljb25GQT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksaXYodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpY29uImluIF8sImhhcyIpLGdldDppKF89Pl8uaWNvbiwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmljb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLGl2KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imljb25TaXplImluIF8sImhhcyIpLGdldDppKF89Pl8uaWNvblNpemUsImdldCIpLHNldDppKChfLE8pPT57Xy5pY29uU2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksaXYodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY29sb3IiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jb2xvciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmNvbG9yPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxpdih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cm9rZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzdHJva2VXaWR0aCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnN0cm9rZVdpZHRoLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3Ryb2tlV2lkdGg9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLGl2KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89SzJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPVUxKHRoaXMsbyx2b2lkIDApO2dldCBpY29uRkEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaWNvbkZBKEMpe3RoaXMuI2U9Q30jdD0oVTEodGhpcyxsKSxVMSh0aGlzLGQsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgaWNvbihDKXt0aGlzLiN0PUN9I2E9KFUxKHRoaXMsdSksVTEodGhpcyxiLHZvaWQgMCkpO2dldCBpY29uU2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBpY29uU2l6ZShDKXt0aGlzLiNhPUN9I3M9KFUxKHRoaXMsdiksVTEodGhpcyxtLCJjdXJyZW50Q29sb3IiKSk7Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbG9yKEMpe3RoaXMuI3M9Q30jaT0oVTEodGhpcyxmKSxVMSh0aGlzLE0sMikpO2dldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBzdHJva2VXaWR0aChDKXt0aGlzLiNpPUN9bGFzdEljb249KFUxKHRoaXMseiksbnVsbCk7bGFzdEljb25TaXplPW51bGw7bGFzdENvbG9yPW51bGw7bGFzdFN0cm9rZVdpZHRoPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRhLnNldHVwKCl9Z2V0RWZmZWN0aXZlSWNvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuaWNvbkZBP3RoaXMuaWNvbkZBLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT90aGlzLmljb25GQTpgZmE6JHt0aGlzLmljb25GQX1gOm51bGx9cGFyc2VJY29uU3RyaW5nKEMpe2xldCBfPUMudG9Mb3dlckNhc2UoKTtyZXR1cm4gXy5zdGFydHNXaXRoKCJmYToiKT97dHlwZToiZmEiLG5hbWU6Qy5zdWJzdHJpbmcoMyl9Ol8uc3RhcnRzV2l0aCgibHVjaWRlOiIpP3t0eXBlOiJsdWNpZGUiLG5hbWU6Qy5zdWJzdHJpbmcoNyl9Ont0eXBlOiJsdWNpZGUiLG5hbWU6Q319cmVuZGVyTHVjaWRlSWNvbihDKXtsZXQgXz1gbHVjaWRlOiR7Q306JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO2lmKHJ2LmhhcyhfKSlyZXR1cm4gcnYuZ2V0KF8pfHwiIjt0cnl7bGV0IE89Qy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStDLnNsaWNlKDEpO2lmKCFHcltPXSlyZXR1cm4gY29uc29sZS53YXJuKGBMdWNpZGUgaWNvbiAnJHtPfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApLCIiO2xldCAkPWoxKEdyW09dLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoISQpcmV0dXJuIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7T31gKSwiIjtsZXQgRT0kLm91dGVySFRNTDtyZXR1cm4gcnYuc2V0KF8sRSksdldhKCksRX1jYXRjaChPKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uICR7Q306YCxPKSxgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIke3RoaXMuaWNvblNpemV9IiBoZWlnaHQ9IiR7dGhpcy5pY29uU2l6ZX0iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIke3RoaXMuY29sb3J9IiBzdHJva2Utd2lkdGg9IiR7dGhpcy5zdHJva2VXaWR0aH0iIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtc2l6ZT0iNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgZmlsbD0iJHt0aGlzLmNvbG9yfSI+JHtDfTwvdGV4dD4KICAgICAgPC9zdmc+YH19c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RhLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IEM9dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PUMmJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249Qyx0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISghX3x8IUMpKXRyeXtsZXR7dHlwZTpPLG5hbWU6JH09dGhpcy5wYXJzZUljb25TdHJpbmcoQyk7aWYoTz09PSJsdWNpZGUiKXtfLmlubmVySFRNTD0iIjt0cnl7bGV0IEU9JC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSskLnNsaWNlKDEpO2lmKEdyW0VdKXtsZXQgSD1qMShHcltFXSx7Y29sb3I6dGhpcy5jb2xvcixzaXplOnRoaXMuaWNvblNpemUsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aH0pO2lmKEgpe18uYXBwZW5kQ2hpbGQoSCk7cmV0dXJufX10aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgZWxlbWVudCBmb3IgJHtFfWApfWNhdGNoKEUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyBMdWNpZGUgaWNvbjoiLEUpO2xldCBIPXRoaXMucmVuZGVyTHVjaWRlSWNvbigkKTtIJiYoXy5pbm5lckhUTUw9SCl9fWVsc2V7bGV0IEU9YW5lLmZhWyRdO2lmKEUpe2xldCBIPUdrKEUpLmh0bWxbMF07Xy5pbm5lckhUTUw9SH1lbHNlIGNvbnNvbGUud2FybihgRm9udEF3ZXNvbWUgaWNvbiBub3QgZm91bmQ6ICR7JH1gKX19Y2F0Y2goTyl7Y29uc29sZS5lcnJvcihgRXJyb3IgdXBkYXRpbmcgaWNvbiAke0N9OmAsTyl9fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmxhc3RJY29uPW51bGwsdGhpcy5sYXN0SWNvblNpemU9bnVsbCx0aGlzLmxhc3RDb2xvcj1udWxsLHRoaXMubGFzdFN0cm9rZVdpZHRoPW51bGx9c3RhdGlje1UxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBRMmEsa2V0LGthLG9yPWcoKCk9PntwbygpO0trdCgpO3BlKCk7a3QoKTtGMSgpO3puKCk7VWEoKTtwdCgpO1EyYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sa2V0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxrYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY29udGV4dG1lbnUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NvbnRleHRtZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxRMmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+Im1lbnVJdGVtcyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51Lm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lm1lbnVJdGVtcz1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksUTJhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89R2t0O3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBjb250ZXh0TWVudURlYWN0aXZhdGVkPSExO3N0YXRpYyBhY2N1bXVsYXRlZE1lbnVJdGVtcz1bXTtzdGF0aWMgaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGQ9PntpZih0aGlzLmNvbnRleHRNZW51RGVhY3RpdmF0ZWQpcmV0dXJuO2QucHJldmVudERlZmF1bHQoKSxwLmFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO2xldCB1PWQuY29tcG9zZWRQYXRoKCk7Zm9yKGxldCBjIG9mIHUpaWYoYy5nZXRDb250ZXh0TWVudUl0ZW1zKXtsZXQgYj1jLmdldENvbnRleHRNZW51SXRlbXMoKTtiJiZiLmxlbmd0aD4wJiYocC5hY2N1bXVsYXRlZE1lbnVJdGVtcy5sZW5ndGg+MCYmcC5hY2N1bXVsYXRlZE1lbnVJdGVtcy5wdXNoKHtkaXZpZGVyOiEwfSkscC5hY2N1bXVsYXRlZE1lbnVJdGVtcy5wdXNoKC4uLmIpKX1wLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGQscC5hY2N1bXVsYXRlZE1lbnVJdGVtcyl9KX1zdGF0aWMgYXN5bmMgb3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZCx1KXtpZih0aGlzLmNvbnRleHRNZW51RGVhY3RpdmF0ZWQpcmV0dXJuO2QucHJldmVudERlZmF1bHQoKSxkLnN0b3BQcm9wYWdhdGlvbigpO2xldCBjPW5ldyBwO2Muc3R5bGUucG9zaXRpb249ImZpeGVkIixjLnN0eWxlLnpJbmRleD1TdHJpbmcoV3Iub3ZlcmxheS5jb250ZXh0TWVudSksYy5zdHlsZS5vcGFjaXR5PSIwIixjLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCkiLGMubWVudUl0ZW1zPXUsYy53aW5kb3dMYXllcj1hd2FpdCBoby5jcmVhdGVBbmRTaG93KCksYy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMgeT0+e3kudGFyZ2V0LmNsb3Nlc3QoImRlZXMtY29udGV4dG1lbnUiKXx8YXdhaXQgYy5kZXN0cm95KCl9KSxkb2N1bWVudC5ib2R5LmFwcGVuZChjKSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBiPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj13aW5kb3cuaW5uZXJXaWR0aCx4PXdpbmRvdy5pbm5lckhlaWdodCxtPWQuY2xpZW50WSxmPWQuY2xpZW50WDtmK2Iud2lkdGg+diYmKGY9di1iLndpZHRoLTEwKSxtK2IuaGVpZ2h0PngmJihtPXgtYi5oZWlnaHQtMTApLGY8MTAmJihmPTEwKSxtPDEwJiYobT0xMCksYy5zdHlsZS50b3A9YCR7bX1weGAsYy5zdHlsZS5sZWZ0PWAke2Z9cHhgLGMuc3R5bGUudHJhbnNmb3JtT3JpZ2luPSJ0b3AgbGVmdCIsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSxjLnN0eWxlLm9wYWNpdHk9IjEiLGMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgxKSB0cmFuc2xhdGVZKDApIn0jZT1rZXQodGhpcyxvLFtdKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG1lbnVJdGVtcyhkKXt0aGlzLiNlPWR9d2luZG93TGF5ZXI9a2V0KHRoaXMsbCk7c3VibWVudT1udWxsO3N1Ym1lbnVUaW1lb3V0PW51bGw7cGFyZW50TWVudT1udWxsO2lzRGVzdHJveWluZz0hMTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJJbmRleD0wfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAn4oC6JzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAubWVudWl0ZW06YWN0aXZlOm5vdCguaGFzLXN1Ym1lbnUpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudWl0ZW0tc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChkPT57aWYoImRpdmlkZXIiaW4gZCYmZC5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgdT1kLGM9dS5zdWJtZW51JiZ1LnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Im1lbnVpdGVtICR7dS5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSAke2M/Imhhcy1zdWJtZW51IjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0keygpPT4hdS5kaXNhYmxlZCYmIWMmJnRoaXMuaGFuZGxlQ2xpY2sodSl9CiAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKHUsYyl9CiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3UuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dS5pY29uTmFtZX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPiR7dS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAke3Uuc2hvcnRjdXQmJiFjP3dgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tc2hvcnRjdXQiPiR7dS5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSl9CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIiBAY2xpY2s9JHsoKT0+e3AuY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMCx0aGlzLmRlc3Ryb3koKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249Imx1Y2lkZTp4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+QWxsb3cgbmF0aXZlIGNvbnRleHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2BgfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5mb2N1cygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlkb3duKX1oYW5kbGVLZXlkb3duPWkoZD0+e2xldCB1PUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbTpub3QoLmRpc2FibGVkKSIpKSxjPXUuZmluZEluZGV4KGI9PmIubWF0Y2hlcygiOmhvdmVyIikpO3N3aXRjaChkLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmQucHJldmVudERlZmF1bHQoKTtsZXQgYj1jKzE8dS5sZW5ndGg/YysxOjA7dVtiXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCB2PWMtMT49MD9jLTE6dS5sZW5ndGgtMTt1W3ZdLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJFbnRlciI6ZC5wcmV2ZW50RGVmYXVsdCgpLGM+PTAmJnVbY10uY2xpY2soKTticmVhaztjYXNlIkVzY2FwZSI6ZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVzdHJveSgpO2JyZWFrfX0sImhhbmRsZUtleWRvd24iKTthc3luYyBoYW5kbGVDbGljayhkKXtkLmFjdGlvbigpLGF3YWl0IHRoaXMuZGVzdHJveUFsbCgpfWFzeW5jIGhhbmRsZU1lbnVJdGVtSG92ZXIoZCx1KXt0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiZhd2FpdCB0aGlzLmhpZGVTdWJtZW51KCksdSYmZC5zdWJtZW51JiYodGhpcy5zdWJtZW51VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VibWVudShkKX0sMjAwKSl9aGFuZGxlTWVudUl0ZW1MZWF2ZSgpe3RoaXMuc3VibWVudVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN1Ym1lbnUmJiF0aGlzLnN1Ym1lbnUubWF0Y2hlcygiOmhvdmVyIikmJnRoaXMuaGlkZVN1Ym1lbnUoKX0sMzAwKX1hc3luYyBzaG93U3VibWVudShkKXtpZighZC5zdWJtZW51fHxkLnN1Ym1lbnUubGVuZ3RoPT09MClyZXR1cm47bGV0IGM9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVpdGVtIikpLmZpbmQoTT0+TS5xdWVyeVNlbGVjdG9yKCIubWVudWl0ZW0tdGV4dCIpPy50ZXh0Q29udGVudD09PWQubmFtZSk7aWYoIWMpcmV0dXJuO3RoaXMuc3VibWVudT1uZXcgcCx0aGlzLnN1Ym1lbnUubWVudUl0ZW1zPWQuc3VibWVudSx0aGlzLnN1Ym1lbnUucGFyZW50TWVudT10aGlzLHRoaXMuc3VibWVudS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3VibWVudS5zdHlsZS56SW5kZXg9U3RyaW5nKHBhcnNlSW50KHRoaXMuc3R5bGUuekluZGV4KSsxKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkiLGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc3VibWVudSksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKTtsZXQgYj1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx4PXRoaXMuc3VibWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXdpbmRvdy5pbm5lcldpZHRoLGY9di5yaWdodC00LHk9Yi50b3A7Zit4LndpZHRoPm0tMTAmJihmPXYubGVmdC14LndpZHRoKzQpLHkreC5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0LTEwJiYoeT13aW5kb3cuaW5uZXJIZWlnaHQteC5oZWlnaHQtMTApLHRoaXMuc3VibWVudS5zdHlsZS5sZWZ0PWAke2Z9cHhgLHRoaXMuc3VibWVudS5zdHlsZS50b3A9YCR7eX1weGAsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMSIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMSkiLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwoKT0+e3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKX0pLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKT0+e3RoaXMuaGFuZGxlTWVudUl0ZW1MZWF2ZSgpfSl9YXN5bmMgaGlkZVN1Ym1lbnUoKXt0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKX1hc3luYyBkZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiYoYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKSx0aGlzLnN1Ym1lbnU9bnVsbCksdGhpcy53aW5kb3dMYXllciYmIXRoaXMucGFyZW50TWVudSYmdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCkiLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSl9YXN5bmMgZGVzdHJveUFsbCgpe2xldCBkPXRoaXM7Zm9yKDtkLnBhcmVudE1lbnU7KWQ9ZC5wYXJlbnRNZW51O2F3YWl0IGQuZGVzdHJveSgpfXN0YXRpY3trZXQoYSx0KX19O3JldHVybiBwPWF9KSgpO2thLmluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpfSk7dmFyIEoyYSxfZXQseFdhLGVkYT1nKCgpPT57cGUoKTtKMmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LF9ldD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0seFdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1kZW1vd3JhcHBlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGVtb1dyYXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHthdHRyaWJ1dGU6ITF9KV0sSjJhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InJ1bkFmdGVyUmVuZGVyImluIHUsImhhcyIpLGdldDppKHU9PnUucnVuQWZ0ZXJSZW5kZXIsImdldCIpLHNldDppKCh1LGMpPT57dS5ydW5BZnRlclJlbmRlcj1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksSjJhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9I2U9X2V0KHRoaXMsbyx2b2lkIDApO2dldCBydW5BZnRlclJlbmRlcigpe3JldHVybiB0aGlzLiNlfXNldCBydW5BZnRlclJlbmRlcihkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKGQ9PnNldFRpbWVvdXQoZCw1MCkpLHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjAmJnRoaXMucnVuQWZ0ZXJSZW5kZXIpdHJ5e2F3YWl0IHRoaXMucnVuQWZ0ZXJSZW5kZXIodGhpcyl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gcnVuQWZ0ZXJSZW5kZXI6IixkKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLF9ldCh0aGlzLGwpfXN0YXRpY3tfZXQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIEl0PWcoKCk9PntlZGEoKX0pO3ZhciB0ZGEsYWRhPWcoKCk9PntwZSgpO0l0KCk7dGRhPWkoKCk9PntsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIik7cmV0dXJuIHNldFRpbWVvdXQoKCk9PntzLmFkZE1hbnkoW3t0eXBlOiJsb2dpbiIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOidjcmVhdGVkIGEgbmV3IHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn0se3R5cGU6ImxvZ291dCIsdXNlcjoiQWxpY2UgQnJvd24iLG1lc3NhZ2U6ImxvZ2dlZCBvdXQifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJjcmVhdGVkIGludm9pY2UgIzEyMzQifV0pLHMuZW50cmllcyQuc3Vic2NyaWJlKGU9Pntjb25zb2xlLmxvZygiQWN0aXZpdHkgbG9nIHVwZGF0ZWQ6IixlLmxlbmd0aCwiZW50cmllcyIpfSl9LDEwMCksd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICAke3N9CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHNuZSxUOCxzZGEsTWV0PWcoKCk9PntwZSgpO2t0KCk7b3IoKTtVYSgpO2FkYSgpO3B0KCk7c25lPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUOD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sc2RhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlBY3Rpdml0eWxvZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLHNuZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImVudHJpZXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5lbnRyaWVzLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZW50cmllcz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksc25lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNlYXJjaFF1ZXJ5ImluIGYsImhhcyIpLGdldDppKGY9PmYuc2VhcmNoUXVlcnksImdldCIpLHNldDppKChmLHkpPT57Zi5zZWFyY2hRdWVyeT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksc25lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyQ3JpdGVyaWEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImZpbHRlckNyaXRlcmlhImluIGYsImhhcyIpLGdldDppKGY9PmYuZmlsdGVyQ3JpdGVyaWEsImdldCIpLHNldDppKChmLHkpPT57Zi5maWx0ZXJDcml0ZXJpYT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksc25lKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89dGRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9VDgodGhpcyxvLFtdKTtnZXQgZW50cmllcygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRyaWVzKG0pe3RoaXMuI2U9bX0jdD0oVDgodGhpcyxsKSxUOCh0aGlzLGQsIiIpKTtnZXQgc2VhcmNoUXVlcnkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VhcmNoUXVlcnkobSl7dGhpcy4jdD1tfSNhPShUOCh0aGlzLHUpLFQ4KHRoaXMsYix7fSkpO2dldCBmaWx0ZXJDcml0ZXJpYSgpe3JldHVybiB0aGlzLiNhfXNldCBmaWx0ZXJDcml0ZXJpYShtKXt0aGlzLiNhPW19ZW50cmllcyQ9KFQ4KHRoaXMsdiksbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgYWxpZ25lZCB3aXRoIHNlY29uZGFyeSBtZW51ICovCiAgICAgICAgLS1hY3Rpdml0eWxvZy1iZzogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmc6ICR7aC5iZFRoZW1lKCIjNTI1MjUyIiwiI2EzYTNhMyIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnLW11dGVkOiAke2guYmRUaGVtZSgiIzczNzM3MyIsIiM3MzczNzMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmU6ICR7aC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWJvcmRlcjogJHtoLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWFjY2VudDogJHtoLmJkVGhlbWUoIiM3ODcxNmMiLCIjYjVhOTlhIil9OwoKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMjgwcHg7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlciB3aXRoIHN0cmVhbWluZyBpbmRpY2F0b3IgKi8KICAgICAgLnRvcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudG9wYmFyIC5oZWFkaW5nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLmxpdmUtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciAuZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjU7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgfQogICAgICAgIDUwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfQogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBjb250YWluZXIgKi8KICAgICAgLmFjdGl2aXR5Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0OHB4OwogICAgICAgIGJvdHRvbTogNDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjMzMzMzMzIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjMzMzMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhM2EzYTMiLCIjNTI1MjUyIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDBweCAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC8qIERhdGUgc2VwYXJhdG9yIC0gd2FybSB0YXVwZSBzdHlsaW5nICovCiAgICAgIC5kYXRlLXNlcGFyYXRvciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxMnB4IDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctYWNjZW50KTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgZW50cnkgLSBtb2Rlcm4gc3RhY2tlZCBsYXlvdXQgKi8KICAgICAgLmFjdGl2aXR5ZW50cnkgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBtYXJnaW46IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuYWN0aXZpdHllbnRyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctaG92ZXIpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbiB7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24ubG9naW4gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjA4KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiM0YWRlODAiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ291dCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24udmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5jcmVhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDE2OCwgODUsIDI0NywgMC4wOCkiLCJyZ2JhKDE2OCwgODUsIDI0NywgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTMzM2VhIiwiI2MwODRmYyIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24udXBkYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTEsIDE0NiwgNjAsIDAuMDgpIiwicmdiYSgyNTEsIDE0NiwgNjAsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmRlbGV0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3VzdG9tIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxMDAsIDExNiwgMTM5LCAwLjA4KSIsInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNDc1NTY5IiwiIzk0YTNiOCIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdXNlciB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICB9CgogICAgICAudGltZXN0YW1wIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuYWN0aXZpdHktbWVzc2FnZSB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBTZWFyY2ggYm94IC0gcmVmaW5lZCBzdHlsaW5nICovCiAgICAgIC5zZWFyY2hib3ggewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTBweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpIil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweCAwIDM0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyOmhhcyhpbnB1dDpmb2N1cykgLnNlYXJjaC1pY29uIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgbT10aGlzLmdldEZpbHRlcmVkRW50cmllcygpLGY9dGhpcy5ncm91cEVudHJpZXNCeURhdGUobSk7cmV0dXJuIHdgCiAgICAgICR7dGEuc3R5bGVzfQogICAgICA8c3R5bGU+PC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmciPkFjdGl2aXR5IExvZzwvZGl2PgogICAgICAgICAgJHttLmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0ibGl2ZS1pbmRpY2F0b3IiPjxzcGFuIGNsYXNzPSJkb3QiPjwvc3Bhbj5MaXZlPC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eUNvbnRhaW5lciI+CiAgICAgICAgICAke20ubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBhY3Rpdml0eSBlbnRyaWVzPC9kaXY+YDpmLm1hcCh5PT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLXNlcGFyYXRvciI+JHt5LmxhYmVsfTwvZGl2PgogICAgICAgICAgICAgICAgICAke3kuZW50cmllcy5tYXAoTT0+dGhpcy5yZW5kZXJBY3Rpdml0eUVudHJ5KE0pKX0KICAgICAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaGJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InNlYXJjaC1pY29uIiAuaWNvbj0keyJsdWNpZGU6c2VhcmNoIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBhY3Rpdml0aWVzLCB1c2Vycy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlU2VhcmNoSW5wdXR9CiAgICAgICAgICAgIC8+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGl2aXR5RW50cnkobSl7bGV0IGY9bS50aW1lc3RhbXB8fG5ldyBEYXRlLHk9dGhpcy5mb3JtYXRUaW1lKGYpLE09bS5pY29uTmFtZXx8dGhpcy5nZXRJY29uRm9yVHlwZShtLnR5cGUpO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImFjdGl2aXR5ZW50cnkiCiAgICAgICAgQGNvbnRleHRtZW51PSR7ej0+dGhpcy5oYW5kbGVDb250ZXh0TWVudSh6LG0pfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktaWNvbiAke20udHlwZX0iPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke019PjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktaGVhZGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LXVzZXIiPiR7bS51c2VyfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LXNlcGFyYXRvciI+wrc8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lc3RhbXAiPiR7eX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LW1lc3NhZ2UiPiR7bS5tZXNzYWdlfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YWRkKG0pe2xldCBmPXsuLi5tLGlkOm0uaWR8fHRoaXMuZ2VuZXJhdGVJZCgpLHRpbWVzdGFtcDptLnRpbWVzdGFtcHx8bmV3IERhdGV9O3RoaXMuZW50cmllcz1bZiwuLi50aGlzLmVudHJpZXNdLHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpfWFkZE1hbnkobSl7bGV0IGY9bS5tYXAoeT0+KHsuLi55LGlkOnkuaWR8fHRoaXMuZ2VuZXJhdGVJZCgpLHRpbWVzdGFtcDp5LnRpbWVzdGFtcHx8bmV3IERhdGV9KSk7dGhpcy5lbnRyaWVzPVsuLi5mLnJldmVyc2UoKSwuLi50aGlzLmVudHJpZXNdLHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpfWNsZWFyKCl7dGhpcy5lbnRyaWVzPVtdLHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpfWdldEVudHJpZXMoKXtyZXR1cm5bLi4udGhpcy5lbnRyaWVzXX1maWx0ZXIobSl7cmV0dXJuIHRoaXMuZW50cmllcy5maWx0ZXIoZj0+IShtLnVzZXImJmYudXNlciE9PW0udXNlcnx8bS50eXBlJiZmLnR5cGUhPT1tLnR5cGUpKX1zZWFyY2gobSl7bGV0IGY9bS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKHk9PnkubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpfHx5LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKSl9Z2VuZXJhdGVJZCgpe3JldHVybmBhY3Rpdml0eS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YH1nZXRGaWx0ZXJlZEVudHJpZXMoKXtsZXQgbT10aGlzLmVudHJpZXM7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IGY9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO209bS5maWx0ZXIoeT0+eS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZil8fHkudXNlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpKX1yZXR1cm4odGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyfHx0aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpJiYobT1tLmZpbHRlcihmPT4hKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlciYmZi51c2VyIT09dGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyfHx0aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUmJmYudHlwZSE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSkpKSxtfWdyb3VwRW50cmllc0J5RGF0ZShtKXtsZXQgZj1uZXcgTWFwLHk9bmV3IERhdGUsTT1uZXcgRGF0ZSh5KTtNLnNldERhdGUoTS5nZXREYXRlKCktMSk7Zm9yKGxldCB6IG9mIG0pe2xldCBOPXoudGltZXN0YW1wfHxuZXcgRGF0ZSxDO3RoaXMuaXNTYW1lRGF5KE4seSk/Qz0iVG9kYXkiOnRoaXMuaXNTYW1lRGF5KE4sTSk/Qz0iWWVzdGVyZGF5IjpDPU4udG9Mb2NhbGVEYXRlU3RyaW5nKCJlbi1VUyIse21vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIix5ZWFyOk4uZ2V0RnVsbFllYXIoKSE9PXkuZ2V0RnVsbFllYXIoKT8ibnVtZXJpYyI6dm9pZCAwfSksZi5oYXMoQyl8fGYuc2V0KEMsW10pLGYuZ2V0KEMpLnB1c2goeil9cmV0dXJuIEFycmF5LmZyb20oZi5lbnRyaWVzKCkpLm1hcCgoW3osTl0pPT4oe2xhYmVsOnosZW50cmllczpOfSkpfWlzU2FtZURheShtLGYpe3JldHVybiBtLmdldEZ1bGxZZWFyKCk9PT1mLmdldEZ1bGxZZWFyKCkmJm0uZ2V0TW9udGgoKT09PWYuZ2V0TW9udGgoKSYmbS5nZXREYXRlKCk9PT1mLmdldERhdGUoKX1mb3JtYXRUaW1lKG0pe3JldHVybiBtLnRvTG9jYWxlVGltZVN0cmluZygiZW4tVVMiLHtob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLGhvdXIxMjohMX0pfWdldEljb25Gb3JUeXBlKG0pe2xldCBmPXtsb2dpbjoibHVjaWRlOmxvZ0luIixsb2dvdXQ6Imx1Y2lkZTpsb2dPdXQiLHZpZXc6Imx1Y2lkZTpleWUiLGNyZWF0ZToibHVjaWRlOnBsdXMiLHVwZGF0ZToibHVjaWRlOmVkaXQiLGRlbGV0ZToibHVjaWRlOnRyYXNoMiIsY3VzdG9tOiJsdWNpZGU6YWN0aXZpdHkifTtyZXR1cm4gZlttXXx8Zi5jdXN0b219aGFuZGxlU2VhcmNoSW5wdXQobSl7bGV0IGY9bS50YXJnZXQ7dGhpcy5zZWFyY2hRdWVyeT1mLnZhbHVlfWhhbmRsZUNvbnRleHRNZW51KG0sZil7bS5wcmV2ZW50RGVmYXVsdCgpLGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKG0sW3tuYW1lOiJDb3B5IGFjdGl2aXR5IixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChgJHtmLnVzZXJ9ICR7Zi5tZXNzYWdlfWApfSwiYWN0aW9uIil9LHtuYW1lOiJGaWx0ZXIgYnkgdXNlciIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246aShhc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17dXNlcjpmLnVzZXJ9fSwiYWN0aW9uIil9LHtuYW1lOiJGaWx0ZXIgYnkgdHlwZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt0eXBlOmYudHlwZX19LCJhY3Rpb24iKX0se25hbWU6IkNsZWFyIGZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6eCIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e30sdGhpcy5zZWFyY2hRdWVyeT0iIn0sImFjdGlvbiIpfV0pfXN0YXRpY3tUOChhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgaWRhPWcoKCk9PntNZXQoKX0pO3ZhciByZGE9ZygoKT0+e30pO3ZhciBvZGE9ZygoKT0+e3BvKCl9KTt2YXIgbmRhPWcoKCk9Pnt9KTt2YXIgbGRhPWcoKCk9Pnt9KTt2YXIgY2RhPWcoKCk9Pnt9KTt2YXIgbWg9ZygoKT0+e3JkYSgpO29kYSgpO25kYSgpO2xkYSgpO2NkYSgpfSk7dmFyIGRkYSx1ZGE9ZygoKT0+e3BlKCk7SXQoKTt6ZXQoKTtkZGE9aSgoKT0+e2xldCBzPVt7bmFtZToiRmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgRmlsZSIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZS1wbHVzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXItb3BlbiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4iKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIFJlY2VudCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJwcm9qZWN0LWFscGhhLnRzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiByZWNlbnQgMSIpLCJhY3Rpb24iKX0se25hbWU6ImNvbmZpZy5qc29uIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiByZWNlbnQgMiIpLCJhY3Rpb24iKX0se25hbWU6InJlYWRtZS5tZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDMiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX0se25hbWU6IlNhdmUgQXMuLi4iLHNob3J0Y3V0OiJDbWQrU2hpZnQrUyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUgYXMiKSwiYWN0aW9uIiksZGlzYWJsZWQ6ITB9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhpdCIsc2hvcnRjdXQ6IkNtZCtRIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhpdCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kbyIpLCJhY3Rpb24iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWRvIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpLCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGaW5kIixzaG9ydGN1dDoiQ21kK0YiLGljb25OYW1lOiJzZWFyY2giLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGaW5kIiksImFjdGlvbiIpfSx7bmFtZToiUmVwbGFjZSIsc2hvcnRjdXQ6IkNtZCtIIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVwbGFjZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkYxMSIsaWNvbk5hbWU6ImV4cGFuZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZ1bGxzY3JlZW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIEluIixzaG9ydGN1dDoiQ21kKysiLGljb25OYW1lOiJ6b29tLWluIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBpbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gT3V0IixzaG9ydGN1dDoiQ21kKy0iLGljb25OYW1lOiJ6b29tLW91dCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gb3V0IiksImFjdGlvbiIpfSx7bmFtZToiUmVzZXQgWm9vbSIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVzZXQgem9vbSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHNpZGViYXIiKSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgVGVybWluYWwiLHNob3J0Y3V0OiJDbWQrSiIsaWNvbk5hbWU6InRlcm1pbmFsIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHRlcm1pbmFsIiksImFjdGlvbiIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRhdGlvbiIpLCJhY3Rpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJmaWxlLXRleHQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWxlYXNlIG5vdGVzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlcG9ydCBJc3N1ZSIsaWNvbk5hbWU6ImJ1ZyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcG9ydCBpc3N1ZSIpLCJhY3Rpb24iKX0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0IiksImFjdGlvbiIpfV19XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNhcHBiYXIiKSxhPWUucXVlcnlTZWxlY3RvckFsbCgiLnN0YXR1cy10b2dnbGUgZGVlcy1idXR0b24iKTthWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudXNlcj17Li4udC51c2VyLHN0YXR1czoib25saW5lIn19KSxhWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudXNlcj17Li4udC51c2VyLHN0YXR1czoiYnVzeSJ9fSksYVsyXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6ImF3YXkifX0pLGFbM10uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC51c2VyPXsuLi50LnVzZXIsc3RhdHVzOiJvZmZsaW5lIn19KSxlLnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5zaG93V2luZG93Q29udHJvbHM9IXQuc2hvd1dpbmRvd0NvbnRyb2xzfSk7bGV0IG49ZS5xdWVyeVNlbGVjdG9yQWxsKCIuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24iKTtuWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuYnJlYWRjcnVtYnM9IkhvbWUgPiBEb2N1bWVudHMgPiBQcm9qZWN0cyA+IE15QXBwID4gc3JjID4gaW5kZXgudHMifSksblsxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmJyZWFkY3J1bWJzPSJEYXNoYm9hcmQifSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIGxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgaWQ9ImFwcGJhciIKICAgICAgICAubWVudUl0ZW1zPSR7c30KICAgICAgICAuYnJlYWRjcnVtYnM9JHsiUHJvamVjdCA+IHNyYyA+IGNvbXBvbmVudHMgPiBBcHBCYXIudHMifQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7IiA+ICJ9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0keyEwfQogICAgICAgIC5zaG93U2VhcmNoPSR7ITB9CiAgICAgICAgLnRoZW1lPSR7ImRhcmsifQogICAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAgIEBtZW51LXNlbGVjdD0ke2U9PmNvbnNvbGUubG9nKCJNZW51IHNlbGVjdGVkOiIsZS5kZXRhaWwuaXRlbSl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtlPT5jb25zb2xlLmxvZygiQnJlYWRjcnVtYiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+Y29uc29sZS5sb2coIlNlYXJjaCBjbGlja2VkIil9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PmNvbnNvbGUubG9nKCJVc2VyIG1lbnUgY2xpY2tlZCIpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxoMj5BcHAgQmFyIERlbW88L2gyPgogICAgICAgIDxwPlRoaXMgZGVtbyBzaG93cyB2YXJpb3VzIGZlYXR1cmVzIG9mIHRoZSBhcHAgYmFyIGNvbXBvbmVudDo8L3A+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPkR5bmFtaWMgbWVudSBpdGVtcyB3aXRoIGljb25zLCBzaG9ydGN1dHMsIGFuZCBzdWJtZW51czwvbGk+CiAgICAgICAgICA8bGk+QnJlYWRjcnVtYiBuYXZpZ2F0aW9uPC9saT4KICAgICAgICAgIDxsaT5Vc2VyIGFjY291bnQgc2VjdGlvbiB3aXRoIHN0YXR1cyBpbmRpY2F0b3I8L2xpPgogICAgICAgICAgPGxpPlNlYXJjaCBpY29uPC9saT4KICAgICAgICAgIDxsaT5XaW5kb3cgY29udHJvbHMgKHBsYXRmb3JtLXNwZWNpZmljKTwvbGk+CiAgICAgICAgICA8bGk+RGFyay9saWdodCB0aGVtZSBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT5LZXlib2FyZCBuYXZpZ2F0aW9uIChUYWIsIEVudGVyLCBFc2NhcGUpPC9saT4KICAgICAgICAgIDxsaT5DdXN0b20gZXZlbnRzIGZvciBhbGwgaW50ZXJhY3Rpb25zPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5UaGVtZTwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9InRoZW1lLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXJrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkxpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VXNlciBTdGF0dXM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJzdGF0dXMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9ubGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5CdXN5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkF3YXk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+T2ZmbGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPldpbmRvdyBDb250cm9sczwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9IndpbmRvdy1jb250cm9scy10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+QnJlYWRjcnVtYnM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJicmVhZGNydW1iLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Mb25nIFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2hvcnQgUGF0aDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHBkYSxoZGE9ZygoKT0+e3BlKCk7cGRhPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIHRoZW1pbmcgKi8KICAgICAgICAtLWFwcGJhci1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS1hcHBiYXItZm9udC1zaXplOiAxMnB4OwogICAgICAgIAogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IHZhcigtLWFwcGJhci1oZWlnaHQpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYXBwYmFyLWZvbnQtc2l6ZSk7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBkcmFnOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBPcHRpb25hbDogU3R5bGUgZm9yIG1lbnUgaXRlbXMgd2l0aCBpY29ucyAobm90IHR5cGljYWxseSB1c2VkIGZvciB0b3AtbGV2ZWwgaXRlbXMpICovCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDIwIiwiI2ZmZmZmZjMwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjMDAwMDAwODAiLCIjZmZmZmZmODAiKX07CiAgICAgIH0KCgogICAgICAvKiBEcm9wZG93biBzdHlsZXMgKi8KICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5vcGVuIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbTpob3ZlciwKICAgICAgLmRyb3Bkb3duLWl0ZW0uZm9jdXNlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtW2Rpc2FibGVkXSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIC5zaG9ydGN1dCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogQnJlYWRjcnVtYnMgKi8KICAgICAgLmJyZWFkY3J1bWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW0gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1zZXBhcmF0b3IgewogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBBY2NvdW50IHNlY3Rpb24gKi8KICAgICAgLmFjY291bnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm86aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgbG9nIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmFjdGl2aXR5LXRvZ2dsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA2MCIsIiNmZmZmZmY2MCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjE1Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktYmFkZ2UgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICAgIG1pbi13aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM1MjUyNTIiLCIjNTI1MjUyIil9OwogICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KICAgIGBdfSk7dmFyIGZkYSxtZGE9ZygoKT0+e3BlKCk7ZmRhPWkocz0+d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51cyI+CiAgICAgICAgICAke3Muc2hvd1dpbmRvd0NvbnRyb2xzP3dgPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmA6IiJ9CiAgICAgICAgICAke3MucmVuZGVyTWVudUl0ZW1zKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYnMiPgogICAgICAgICAgJHtzLnJlbmRlckJyZWFkY3J1bWJzKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3VudCI+CiAgICAgICAgICAke3MucmVuZGVyQWNjb3VudFNlY3Rpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYCwicmVuZGVyQXBwdWlBcHBiYXIiKX0pO3ZhciBDZXQsX1osZ2RhLFRldD1nKCgpPT57cGUoKTtwdCgpO0NldD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sX1o9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGdkYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd2luZG93Y29udHJvbHMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0NvbnRyb2xzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7cmVmbGVjdDohMH0pXSxwPVtMKHtyZWZsZWN0OiEwfSldLENldCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InR5cGUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50eXBlLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YudHlwZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksQ2V0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InBvc2l0aW9uImluIHYsImhhcyIpLGdldDppKHY9PnYucG9zaXRpb24sImdldCIpLHNldDppKCh2LHgpPT57di5wb3NpdGlvbj14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksQ2V0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13aW5kb3djb250cm9scz48L2RlZXMtd2luZG93Y29udHJvbHM+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPV9aKHRoaXMsbywibWFjIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShiKXt0aGlzLiNlPWJ9I3Q9KF9aKHRoaXMsbCksX1oodGhpcyxkLCJsZWZ0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbihiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdiB7CiAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICMyMjIyMjI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYuY2xvc2UgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjVmNTc7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LnRvRG9jayB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmYmQyZTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYubWluTWF4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjdjOTNmOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLnR5cGU9PT0ibWFjIiYmdGhpcy5wb3NpdGlvbj09PSJsZWZ0Inx8KHRoaXMudHlwZT09PSJsaW51eCJ8fHRoaXMudHlwZT09PSJ3aW5kb3dzIikmJnRoaXMucG9zaXRpb249PT0icmlnaHQiP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpbmRvd0NvbnRyb2xzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9Eb2NrIj48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaW5NYXgiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksX1oodGhpcyx1KX1zdGF0aWN7X1ooYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIE1aLFEwLGJkYSwkZXQ9ZygoKT0+e3BvKCk7em4oKTtwZSgpO3B0KCk7TVo9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFEwPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxiZGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93biIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlQcm9maWxlRHJvcGRvd24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLE1aKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idXNlciJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnVzZXIsImdldCIpLHNldDppKCh6LE4pPT57ei51c2VyPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxNWih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibWVudUl0ZW1zImluIHosImhhcyIpLGdldDppKHo9PnoubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWVudUl0ZW1zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxNWih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNPcGVuImluIHosImhhcyIpLGdldDppKHo9PnouaXNPcGVuLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaXNPcGVuPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxNWih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwb3NpdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oucG9zaXRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLE1aKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsZW1haWw6ImpvaG4uZG9lQGV4YW1wbGUuY29tIixhdmF0YXI6Imh0dHBzOi8vcmFuZG9tdXNlci5tZS9hcGkvcG9ydHJhaXRzL21lbi8xLmpwZyIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvZmlsZSBTZXR0aW5ncyIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIiksImFjdGlvbiIpfSx7bmFtZToiQWNjb3VudCIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQWNjb3VudCIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIiksImFjdGlvbiIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6ImxvZ091dCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0IiksImFjdGlvbiIpfV19CiAgICAgIC5pc09wZW49JHshMH0KICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVEwKHRoaXMsbyx2b2lkIDApO2dldCB1c2VyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHVzZXIoTSl7dGhpcy4jZT1NfSN0PShRMCh0aGlzLGwpLFEwKHRoaXMsZCxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKE0pe3RoaXMuI3Q9TX0jYT0oUTAodGhpcyx1KSxRMCh0aGlzLGIsITEpKTtnZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzT3BlbihNKXt0aGlzLiNhPU19I3M9KFEwKHRoaXMsdiksUTAodGhpcyxtLCJ0b3AtcmlnaHQiKSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBvc2l0aW9uKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWluLXdpZHRoOiAyMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgei1pbmRleDogJHtXci5vdmVybGF5LmRyb3Bkb3dufTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogUG9zaXRpb24gdmFyaWFudHMgKi8KICAgICAgLmRyb3Bkb3duLnRvcC1yaWdodCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLnRvcC1sZWZ0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tcmlnaHQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tbGVmdCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAvKiBVc2VyIHNlY3Rpb24gKi8KICAgICAgLnVzZXItc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICB9CgogICAgICAudXNlci1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLnVzZXItZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC51c2VyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudXNlci1lbWFpbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLyogTWVudSBzZWN0aW9uICovCiAgICAgIC5tZW51LXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAubWVudS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQoKICAgICAgLyogQmFja2Ryb3AgZm9yIG1vYmlsZSAqLwogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuYmFja2Ryb3AgewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwOwogICAgICAgICAgbGVmdDogMDsKICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgei1pbmRleDogJHtXci5iYWNrZHJvcC5kcm9wZG93bn07CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuYmFja2Ryb3AgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAuZHJvcGRvd24gewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICByaWdodDogYXV0bzsKICAgICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuOTUpOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzJweCk7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFja2Ryb3AiIEBjbGljaz0keygpPT50aGlzLmNsb3NlKCl9PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93biAke3RoaXMucG9zaXRpb259Ij4KICAgICAgICAke3RoaXMudXNlcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5hdmF0YXI/d2A8aW1nIHNyYz0iJHt0aGlzLnVzZXIuYXZhdGFyfSIgYWx0PSIke3RoaXMudXNlci5uYW1lfSI+YDp0aGlzLmdldEluaXRpYWxzKHRoaXMudXNlci5uYW1lKX0KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1kZXRhaWxzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItbmFtZSI+JHt0aGlzLnVzZXIubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmVtYWlsP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZW1haWwiPiR7dGhpcy51c2VyLmVtYWlsfTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnUtc2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChNPT50aGlzLnJlbmRlck1lbnVJdGVtKE0pKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1lbnVJdGVtKE0pe2lmKCJkaXZpZGVyImluIE0mJk0uZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51LWRpdmlkZXIiPjwvZGl2PmA7bGV0IHo9TTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soeil9PgogICAgICAgICR7ei5pY29uTmFtZT93YAogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7ei5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1pdGVtLXRleHQiPiR7ei5uYW1lfTwvc3Bhbj4KICAgICAgICAke3ouc2hvcnRjdXQ/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LXNob3J0Y3V0Ij4ke3ouc2hvcnRjdXR9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbml0aWFscyhNKXtyZXR1cm4gTS5zcGxpdCgiICIpLm1hcCh6PT56WzBdKS5qb2luKCIiKS50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsMil9YXN5bmMgaGFuZGxlTWVudUNsaWNrKE0pe2F3YWl0IE0uYWN0aW9uKCksdGhpcy5jbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOk19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9b3Blbigpe3RoaXMuaXNPcGVuPSEwfWNsb3NlKCl7dGhpcy5pc09wZW49ITF9dG9nZ2xlKCl7dGhpcy5pc09wZW49IXRoaXMuaXNPcGVufWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZU91dHNpZGVDbGljaz10aGlzLmhhbmRsZU91dHNpZGVDbGljay5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9aGFuZGxlT3V0c2lkZUNsaWNrKE0pe2lmKHRoaXMuaXNPcGVuJiYhdGhpcy5jb250YWlucyhNLnRhcmdldCkpe2xldCB6PXRoaXMucGFyZW50RWxlbWVudDtpZih6JiZ6LmNvbnRhaW5zKE0udGFyZ2V0KSlyZXR1cm47dGhpcy5jbG9zZSgpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUTAodGhpcyxmKX1zdGF0aWN7UTAoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIHNuLFNzLHZkYSx6ZXQ9ZygoKT0+e3BlKCk7a3QoKTttaCgpO3BvKCk7dWRhKCk7aGRhKCk7bWRhKCk7VWEoKTtUZXQoKTskZXQoKTtzbj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU3M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHZkYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXBwdWktYXBwYmFyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aUJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBxPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6T2JqZWN0fSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpCb29sZWFufSldLEg9W0woe3R5cGU6Qm9vbGVhbn0pXSxJPVtMKHt0eXBlOk51bWJlcn0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0sc24odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+Im1lbnVJdGVtcyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5tZW51SXRlbXM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbyxsKSxzbih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJicmVhZGNydW1icyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmJyZWFkY3J1bWJzLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmJyZWFkY3J1bWJzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGQsdSksc24odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIEEsImhhcyIpLGdldDppKEE9PkEuYnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5icmVhZGNydW1iU2VwYXJhdG9yPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGIsdiksc24odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dXaW5kb3dDb250cm9scyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dXaW5kb3dDb250cm9scywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93V2luZG93Q29udHJvbHM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbSxmKSxzbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InVzZXIiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS51c2VyLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnVzZXI9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sTSx6KSxzbih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InByb2ZpbGVNZW51SXRlbXMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5wcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnByb2ZpbGVNZW51SXRlbXM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sQyxfKSxzbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dTZWFyY2giaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5zaG93U2VhcmNoLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnNob3dTZWFyY2g9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sJCxFKSxzbih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ic2hvd0FjdGl2aXR5TG9nVG9nZ2xlImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxrLFMpLHNuKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZpdHlMb2dDb3VudD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxQLFIpLHNuKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFjdGl2aXR5TG9nQWN0aXZlImluIEEsImhhcyIpLGdldDppKEE9PkEuYWN0aXZpdHlMb2dBY3RpdmUsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZpdHlMb2dBY3RpdmU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sVixXKSxzbih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVNZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhY3RpdmVNZW51ImluIEEsImhhcyIpLGdldDppKEE9PkEuYWN0aXZlTWVudSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5hY3RpdmVNZW51PXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEIsVSksc24odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ib3BlbkRyb3Bkb3ducyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLm9wZW5Ecm9wZG93bnMsImdldCIpLHNldDppKChBLHNlKT0+e0Eub3BlbkRyb3Bkb3ducz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxGLGopLHNuKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvY3VzZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJmb2N1c2VkSXRlbSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmZvY3VzZWRJdGVtLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmZvY3VzZWRJdGVtPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGxlLFEpLHNuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvY3VzZWREcm9wZG93bkl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImZvY3VzZWREcm9wZG93bkl0ZW0iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5mb2N1c2VkRHJvcGRvd25JdGVtLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmZvY3VzZWREcm9wZG93bkl0ZW09c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sdGUsZWUpLHNuKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvZmlsZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iaXNQcm9maWxlRHJvcGRvd25PcGVuImluIEEsImhhcyIpLGdldDppKEE9PkEuaXNQcm9maWxlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmlzUHJvZmlsZURyb3Bkb3duT3Blbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxYLFopLHNuKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnF9LG51bGwsdCkseWU9YT1lLnZhbHVlLHEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pfXN0YXRpYyBkZW1vPWRkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVNzKHRoaXMsbyxbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMocSl7dGhpcy4jZT1xfSN0PShTcyh0aGlzLGwpLFNzKHRoaXMsZCwiIikpO2dldCBicmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBicmVhZGNydW1icyhxKXt0aGlzLiN0PXF9I2E9KFNzKHRoaXMsdSksU3ModGhpcyxiLCIgPiAiKSk7Z2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYnJlYWRjcnVtYlNlcGFyYXRvcihxKXt0aGlzLiNhPXF9I3M9KFNzKHRoaXMsdiksU3ModGhpcyxtLCEwKSk7Z2V0IHNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNzfXNldCBzaG93V2luZG93Q29udHJvbHMocSl7dGhpcy4jcz1xfSNpPShTcyh0aGlzLGYpLFNzKHRoaXMsTSx2b2lkIDApKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNpfXNldCB1c2VyKHEpe3RoaXMuI2k9cX0jcj0oU3ModGhpcyx6KSxTcyh0aGlzLEMsW10pKTtnZXQgcHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNyfXNldCBwcm9maWxlTWVudUl0ZW1zKHEpe3RoaXMuI3I9cX0jbz0oU3ModGhpcyxfKSxTcyh0aGlzLCQsITEpKTtnZXQgc2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNvfXNldCBzaG93U2VhcmNoKHEpe3RoaXMuI289cX0jbj0oU3ModGhpcyxFKSxTcyh0aGlzLGssITEpKTtnZXQgc2hvd0FjdGl2aXR5TG9nVG9nZ2xlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZShxKXt0aGlzLiNuPXF9I2w9KFNzKHRoaXMsUyksU3ModGhpcyxQLDApKTtnZXQgYWN0aXZpdHlMb2dDb3VudCgpe3JldHVybiB0aGlzLiNsfXNldCBhY3Rpdml0eUxvZ0NvdW50KHEpe3RoaXMuI2w9cX0jYz0oU3ModGhpcyxSKSxTcyh0aGlzLFYsITEpKTtnZXQgYWN0aXZpdHlMb2dBY3RpdmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZpdHlMb2dBY3RpdmUocSl7dGhpcy4jYz1xfSNkPShTcyh0aGlzLFcpLFNzKHRoaXMsQixudWxsKSk7Z2V0IGFjdGl2ZU1lbnUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlTWVudShxKXt0aGlzLiNkPXF9I3U9KFNzKHRoaXMsVSksU3ModGhpcyxGLG5ldyBTZXQpKTtnZXQgb3BlbkRyb3Bkb3ducygpe3JldHVybiB0aGlzLiN1fXNldCBvcGVuRHJvcGRvd25zKHEpe3RoaXMuI3U9cX0jcD0oU3ModGhpcyxqKSxTcyh0aGlzLGxlLG51bGwpKTtnZXQgZm9jdXNlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jcH1zZXQgZm9jdXNlZEl0ZW0ocSl7dGhpcy4jcD1xfSNoPShTcyh0aGlzLFEpLFNzKHRoaXMsdGUsLTEpKTtnZXQgZm9jdXNlZERyb3Bkb3duSXRlbSgpe3JldHVybiB0aGlzLiNofXNldCBmb2N1c2VkRHJvcGRvd25JdGVtKHEpe3RoaXMuI2g9cX0jZj0oU3ModGhpcyxlZSksU3ModGhpcyxYLCExKSk7Z2V0IGlzUHJvZmlsZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNmfXNldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4ocSl7dGhpcy4jZj1xfXN0YXRpYyBzdHlsZXM9cGRhO3JlbmRlcigpe3JldHVybiBmZGEodGhpcyl9cmVuZGVyTWVudUl0ZW1zKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKChxLEEpPT50aGlzLnJlbmRlck1lbnVJdGVtKHEsYG1lbnUtJHtBfWApKX0KICAgIGB9cmVuZGVyTWVudUl0ZW0ocSxBKXtpZigiZGl2aWRlciJpbiBxJiZxLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgc2U9cSxvZT10aGlzLmFjdGl2ZU1lbnU9PT1BLGFlPXNlLnN1Ym1lbnUmJnNlLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtvZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7c2UuZGlzYWJsZWR9CiAgICAgICAgdGFiaW5kZXg9IiR7c2UuZGlzYWJsZWQ/LTE6MH0iCiAgICAgICAgZGF0YS1pdGVtLWlkPSIke0F9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhzZSxBKX0KICAgICAgICBAa2V5ZG93bj0ke1RlPT50aGlzLmhhbmRsZU1lbnVLZXlkb3duKFRlLHNlLEEpfQogICAgICAgIHJvbGU9Im1lbnVpdGVtIgogICAgICAgIGFyaWEtaGFzcG9wdXA9IiR7YWV9IgogICAgICAgIGFyaWEtZXhwYW5kZWQ9IiR7b2V9IgogICAgICA+CiAgICAgICAgJHtzZS5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke3NlLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICR7c2UubmFtZX0KICAgICAgICAke2FlP3RoaXMucmVuZGVyRHJvcGRvd24oc2Uuc3VibWVudSxBLG9lKToiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRyb3Bkb3duKHEsQSxzZSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImRyb3Bkb3duICR7c2U/Im9wZW4iOiIifSIgCiAgICAgICAgQGNsaWNrPSR7b2U9Pm9lLnN0b3BQcm9wYWdhdGlvbigpfQogICAgICAgIEBrZXlkb3duPSR7b2U9PnRoaXMuaGFuZGxlRHJvcGRvd25LZXlkb3duKG9lLHEsQSl9CiAgICAgICAgdGFiaW5kZXg9IiR7c2U/MDotMX0iCiAgICAgICAgcm9sZT0ibWVudSIKICAgICAgPgogICAgICAgICR7cS5tYXAoKG9lLGFlKT0+dGhpcy5yZW5kZXJEcm9wZG93bkl0ZW0ob2UsYCR7QX0tJHthZX1gKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bkl0ZW0ocSxBKXtpZigiZGl2aWRlciJpbiBxJiZxLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgc2U9cSxvZT1wYXJzZUludChBLnNwbGl0KCItIikucG9wKCl8fCIwIiksYWU9dGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPT09b2U7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSAke2FlPyJmb2N1c2VkIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7c2UuZGlzYWJsZWR9CiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soc2UpfQogICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1vZX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICB0YWJpbmRleD0iJHtzZS5kaXNhYmxlZD8tMTowfSIKICAgICAgPgogICAgICAgICR7c2UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtzZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3Bhbj4ke3NlLm5hbWV9PC9zcGFuPgogICAgICAgICR7c2Uuc2hvcnRjdXQ/d2A8c3BhbiBjbGFzcz0ic2hvcnRjdXQiPiR7c2Uuc2hvcnRjdXR9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJCcmVhZGNydW1icygpe2lmKCF0aGlzLmJyZWFkY3J1bWJzKXJldHVybiB3YGA7bGV0IHE9dGhpcy5icmVhZGNydW1icy5zcGxpdCh0aGlzLmJyZWFkY3J1bWJTZXBhcmF0b3IpO3JldHVybiB3YAogICAgICAke3EubWFwKChBLHNlKT0+d2AKICAgICAgICAke3NlPjA/d2A8c3BhbiBjbGFzcz0iYnJlYWRjcnVtYi1zZXBhcmF0b3IiPiR7dGhpcy5icmVhZGNydW1iU2VwYXJhdG9yfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIAogICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIgCiAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCcmVhZGNydW1iQ2xpY2soQSxzZSl9CiAgICAgICAgPgogICAgICAgICAgJHtBfQogICAgICAgIDwvc3Bhbj4KICAgICAgYCl9CiAgICBgfXJlbmRlckFjY291bnRTZWN0aW9uKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5zaG93U2VhcmNoP3dgCiAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgY2xhc3M9InNlYXJjaC1pY29uIgogICAgICAgICAgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9CiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlYXJjaENsaWNrfQogICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnVzZXI/d2AKICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVVc2VyQ2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP3dgPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6d2Ake3RoaXMudXNlci5uYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfWB9CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4+JHt0aGlzLnVzZXIubmFtZX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAgICAgICAudXNlcj0ke3RoaXMudXNlcn0KICAgICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMucHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAgICAgLmlzT3Blbj0ke3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVufQogICAgICAgICAgICAucG9zaXRpb249JHsidG9wLXJpZ2h0In0KICAgICAgICAgICAgQG1lbnUtc2VsZWN0PSR7cT0+dGhpcy5oYW5kbGVQcm9maWxlTWVudVNlbGVjdChxKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAke3RoaXMuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlP3dgCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImFjdGl2aXR5LXRvZ2dsZSAke3RoaXMuYWN0aXZpdHlMb2dBY3RpdmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVBY3Rpdml0eVRvZ2dsZX0KICAgICAgICAgIHRpdGxlPSJBY3Rpdml0eSBMb2ciCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6YWN0aXZpdHkifT48L2RlZXMtaWNvbj4KICAgICAgICAgICR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50PjA/d2AKICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LWJhZGdlIj4ke3RoaXMuYWN0aXZpdHlMb2dDb3VudD45OT8iOTkrIjp0aGlzLmFjdGl2aXR5TG9nQ291bnR9PC9zcGFuPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9aGFuZGxlTWVudUNsaWNrKHEsQSl7cS5kaXNhYmxlZHx8KHEuc3VibWVudSYmcS5zdWJtZW51Lmxlbmd0aD4wP3RoaXMuYWN0aXZlTWVudT09PUE/dGhpcy5hY3RpdmVNZW51PW51bGw6dGhpcy5hY3RpdmVNZW51PUE6KHRoaXMuYWN0aXZlTWVudT1udWxsLHEuYWN0aW9uJiZxLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOnF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpKX1oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhxKXtxLmRpc2FibGVkfHwodGhpcy5hY3RpdmVNZW51PW51bGwscS5hY3Rpb24mJnEuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06cX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlTWVudUtleWRvd24ocSxBLHNlKXtzd2l0Y2gocS5rZXkpe2Nhc2UiRW50ZXIiOmNhc2UiICI6cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlTWVudUNsaWNrKEEsc2UpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjppZihBLnN1Ym1lbnUmJnRoaXMuYWN0aXZlTWVudT09PXNlKXtxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPTA7bGV0IG9lPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQS5zdWJtZW51LC0xLDEpO29lIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09b2Usc2V0VGltZW91dCgoKT0+e2xldCBhZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLmRyb3Bkb3duLm9wZW4iKTthZSYmYWUuZm9jdXMoKX0sMCkpfWJyZWFrO2Nhc2UiRXNjYXBlIjp0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTE7YnJlYWs7Y2FzZSJUYWIiOnRoaXMuYWN0aXZlTWVudT09PXNlJiYodGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xKTticmVhaztjYXNlIkFycm93UmlnaHQiOnEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKHNlLDEpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjpxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShzZSwtMSk7YnJlYWt9fWhhbmRsZUJyZWFkY3J1bWJDbGljayhxLEEpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6e2JyZWFkY3J1bWI6cSxpbmRleDpBfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNsaWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBY3Rpdml0eVRvZ2dsZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGl2aXR5LXRvZ2dsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVXNlckNsaWNrKCl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49IXRoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVQcm9maWxlTWVudVNlbGVjdChxKXt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbj0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwcm9maWxlLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOnEuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlR2xvYmFsQ2xpY2spLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZURvY3VtZW50Q2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1oYW5kbGVHbG9iYWxDbGljaz0oU3ModGhpcyxaKSxxPT57cS5zdG9wUHJvcGFnYXRpb24oKX0pO2hhbmRsZURvY3VtZW50Q2xpY2s9aSgoKT0+e3RoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMX0sImhhbmRsZURvY3VtZW50Q2xpY2siKTtoYW5kbGVEcm9wZG93bktleWRvd24ocSxBLHNlKXtsZXQgb2U9QS5maWx0ZXIoYWU9PiEoImRpdmlkZXIiaW4gYWUmJmFlLmRpdmlkZXIpKTtzd2l0Y2gocS5rZXkpe2Nhc2UiQXJyb3dEb3duIjpxLnByZXZlbnREZWZhdWx0KCk7bGV0IGFlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sMSk7YWUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1hZSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjpxLnByZXZlbnREZWZhdWx0KCk7bGV0IFRlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sLTEpO1RlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09VGUpO2JyZWFrO2Nhc2UiRW50ZXIiOmlmKHEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0hPT0tMSl7bGV0IERlPW9lW3RoaXMuZm9jdXNlZERyb3Bkb3duSXRlbV07RGUmJiJhY3Rpb24iaW4gRGUmJiFEZS5kaXNhYmxlZCYmdGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhEZSl9YnJlYWs7Y2FzZSJIb21lIjpxLnByZXZlbnREZWZhdWx0KCk7bGV0IFJlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQSwtMSwxKTtSZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPVJlKTticmVhaztjYXNlIkVuZCI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBCZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsQS5sZW5ndGgsLTEpO0JlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09QmUpO2JyZWFrO2Nhc2UiRXNjYXBlIjpxLnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2xldCBHZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLm1lbnVJdGVtLmFjdGl2ZSIpO0dlJiZHZS5mb2N1cygpO2JyZWFrfX1maW5kTmV4dFZhbGlkSXRlbShxLEEsc2Upe2xldCBvZT1BK3NlO2Zvcig7b2U+PTAmJm9lPHEubGVuZ3RoOyl7bGV0IGFlPXFbb2VdO2lmKCEoImRpdmlkZXIiaW4gYWUmJmFlLmRpdmlkZXIpJiYhKCJkaXNhYmxlZCJpbiBhZSYmYWUuZGlzYWJsZWQpKXJldHVybiBvZTtvZSs9c2V9cmV0dXJuLTF9Zm9jdXNOZXh0TWVudUl0ZW0ocSxBKXtsZXQgc2U9QXJyYXkuZnJvbSh0aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVJdGVtIikpLG9lPXNlLmZpbmRJbmRleChSZT0+UmUuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taWQiKT09PXEpO2lmKG9lPT09LTEpcmV0dXJuO2xldCBhZT1vZStBO2FlPDA/YWU9c2UubGVuZ3RoLTE6YWU+PXNlLmxlbmd0aCYmKGFlPTApO2xldCBUZT0wO2Zvcig7VGU8c2UubGVuZ3RoOyl7bGV0IFJlPXNlW2FlXTtpZighUmUuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXtSZS5mb2N1cygpLHRoaXMuYWN0aXZlTWVudSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWt9YWU9KGFlK0Erc2UubGVuZ3RoKSVzZS5sZW5ndGgsVGUrK319c3RhdGlje1NzKGEsdCl9fTtyZXR1cm4geWU9YX0pKCl9KTt2YXIgRGV0PWcoKCk9Pnt6ZXQoKX0pO3ZhciB4ZGEseWRhLHdkYT1nKCgpPT57cGUoKTtJdCgpO3lkYT1pKCgpPT53KHhkYXx8KHhkYT1iYyhbYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjNzM3MzczOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWJvdHRvbWJhci13cmFwcGVyIHsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwIDAlIDIwJSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Cb3R0b20gYmFyIHdpdGggc3RhdHVzIHdpZGdldHMgYW5kIGFjdGlvbnM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tYm90dG9tYmFyLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1hcHB1aS1ib3R0b21iYXIKICAgICAgICAgICAgICBpZD0iZGVtby1ib3R0b21iYXIiCiAgICAgICAgICAgID48L2RlZXMtYXBwdWktYm90dG9tYmFyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Db250cm9sczwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFN1Y2Nlc3NXaWRnZXQoKSI+QWRkIFN1Y2Nlc3MgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkV2FybmluZ1dpZGdldCgpIj5BZGQgV2FybmluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRFcnJvcldpZGdldCgpIj5BZGQgRXJyb3IgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkTG9hZGluZ1dpZGdldCgpIj5BZGQgTG9hZGluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRSaWdodFdpZGdldCgpIj5BZGQgUmlnaHQgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkQWN0aW9uKCkiPkFkZCBBY3Rpb248L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbGVhckFsbCgpIj5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogICAgICAgIGNvbnN0IGJvdHRvbWJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZW1vLWJvdHRvbWJhcicpOwoKICAgICAgICAvLyBXYWl0IGZvciBjb21wb25lbnQgdG8gaW5pdGlhbGl6ZQogICAgICAgIGF3YWl0IGJvdHRvbWJhci51cGRhdGVDb21wbGV0ZTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgd2lkZ2V0cwogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdzdGF0dXMnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWN0aXZpdHknLAogICAgICAgICAgbGFiZWw6ICdTeXN0ZW0gT25saW5lJywKICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgdG9vbHRpcDogJ0FsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdTdGF0dXMgY2xpY2tlZCcpLAogICAgICAgICAgY29udGV4dE1lbnVJdGVtczogWwogICAgICAgICAgICB7IG5hbWU6ICdWaWV3IERldGFpbHMnLCBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywgYWN0aW9uOiAoKSA9PiBhbGVydCgnU3lzdGVtIGRldGFpbHMnKSB9LAogICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSwKICAgICAgICAgICAgeyBuYW1lOiAnUmVmcmVzaCBTdGF0dXMnLCBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoQ3cnLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdSZWZyZXNoaW5nLi4uJykgfSwKICAgICAgICAgIF0sCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdub3RpZmljYXRpb25zJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmJlbGwnLAogICAgICAgICAgbGFiZWw6ICczIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICB0b29sdGlwOiAnWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbnMgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAndmVyc2lvbicsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpnaXRCcmFuY2gnLAogICAgICAgICAgbGFiZWw6ICd2MS4yLjMnLAogICAgICAgICAgdG9vbHRpcDogJ0N1cnJlbnQgdmVyc2lvbicsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdWZXJzaW9uIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgYWN0aW9ucwogICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgaWQ6ICdzZXR0aW5ncycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpzZXR0aW5ncycsCiAgICAgICAgICB0b29sdGlwOiAnU2V0dGluZ3MnLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBhbGVydCgnU2V0dGluZ3MgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnaGVscCcsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpoZWxwQ2lyY2xlJywKICAgICAgICAgIHRvb2x0aXA6ICdIZWxwJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ0hlbHAgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICAvLyBEZW1vIGNvbnRyb2wgZnVuY3Rpb25zCiAgICAgICAgbGV0IHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgIGxldCBhY3Rpb25Db3VudGVyID0gMDsKCiAgICAgICAgd2luZG93LmFkZFN1Y2Nlc3NXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVja0NpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnU3VjY2VzcyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdTdWNjZXNzIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3N1Y2Nlc3MtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFdhcm5pbmdXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICd3YXJuaW5nLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphbGVydFRyaWFuZ2xlJywKICAgICAgICAgICAgbGFiZWw6ICdXYXJuaW5nICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJywKICAgICAgICAgICAgdG9vbHRpcDogJ1dhcm5pbmcgd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkRXJyb3JXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdlcnJvci0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6eENpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnRXJyb3IgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJywKICAgICAgICAgICAgdG9vbHRpcDogJ0Vycm9yIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ2Vycm9yLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRMb2FkaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgY29uc3QgaWQgPSAnbG9hZGluZy0nICsgd2lkZ2V0Q291bnRlcjsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmxvYWRlcjInLAogICAgICAgICAgICBsYWJlbDogJ0xvYWRpbmcuLi4nLAogICAgICAgICAgICBzdGF0dXM6ICdhY3RpdmUnLAogICAgICAgICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAgICAgICB0b29sdGlwOiAnTG9hZGluZyBpbiBwcm9ncmVzcycsCiAgICAgICAgICB9KTsKCiAgICAgICAgICAvLyBTaW11bGF0ZSBjb21wbGV0aW9uIGFmdGVyIDMgc2Vjb25kcwogICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGJvdHRvbWJhci51cGRhdGVXaWRnZXQoaWQsIHsKICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVjaycsCiAgICAgICAgICAgICAgbGFiZWw6ICdEb25lIScsCiAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMzAwMCk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFJpZ2h0V2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAncmlnaHQtJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmluZm8nLAogICAgICAgICAgICBsYWJlbDogJ1JpZ2h0ICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgncmlnaHQtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEFjdGlvbiA9ICgpID0+IHsKICAgICAgICAgIGFjdGlvbkNvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgICBpZDogJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6emFwJywKICAgICAgICAgICAgdG9vbHRpcDogJ0FjdGlvbiAnICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgb25DbGljazogKCkgPT4gewogICAgICAgICAgICAgIGFsZXJ0KCdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIgKyAnIGNsaWNrZWQnKTsKICAgICAgICAgICAgICBib3R0b21iYXIucmVtb3ZlQWN0aW9uKCdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIpOwogICAgICAgICAgICB9LAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmNsZWFyQWxsID0gKCkgPT4gewogICAgICAgICAgYm90dG9tYmFyLmNsZWFyV2lkZ2V0cygpOwogICAgICAgICAgYm90dG9tYmFyLmNsZWFyQWN0aW9ucygpOwogICAgICAgICAgd2lkZ2V0Q291bnRlciA9IDA7CiAgICAgICAgICBhY3Rpb25Db3VudGVyID0gMDsKICAgICAgICB9OwogICAgICA8XC9zY3JpcHQ+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYF0pKSksImRlbW9GdW5jIil9KTt2YXIgTGV0LHpaLGtkYSxFZXQ9ZygoKT0+e3BlKCk7cHQoKTtVYSgpO29yKCk7d2RhKCk7TGV0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6Wj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sa2RhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1ib3R0b21iYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLExldCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+IndpZGdldHMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di53aWRnZXRzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yud2lkZ2V0cz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksTGV0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iYWN0aW9ucyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmFjdGlvbnMsImdldCIpLHNldDppKCh2LHgpPT57di5hY3Rpb25zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxMZXQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz15ZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT16Wih0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoYil7dGhpcy4jZT1ifSN0PSh6Wih0aGlzLGwpLHpaKHRoaXMsZCxbXSkpO2dldCBhY3Rpb25zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjdGlvbnMoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIGNvbG9ycyBtYXRjaGluZyBkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIgKi8KICAgICAgLndpZGdldC5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5zdWNjZXNzIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0Lndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5zcGlubmluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgYj10aGlzLndpZGdldHMuZmlsdGVyKGY9PmYucG9zaXRpb24hPT0icmlnaHQiKS5zb3J0KChmLHkpPT4oZi5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSx2PXRoaXMud2lkZ2V0cy5maWx0ZXIoZj0+Zi5wb3NpdGlvbj09PSJyaWdodCIpLnNvcnQoKGYseSk9PihmLm9yZGVyfHwwKS0oeS5vcmRlcnx8MCkpLHg9dGhpcy5hY3Rpb25zLmZpbHRlcihmPT5mLnBvc2l0aW9uPT09ImxlZnQiKSxtPXRoaXMuYWN0aW9ucy5maWx0ZXIoZj0+Zi5wb3NpdGlvbiE9PSJsZWZ0Iik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1iYXIiPgogICAgICAgIDwhLS0gTGVmdCBhY3Rpb25zIC0tPgogICAgICAgICR7eC5tYXAoZj0+dGhpcy5yZW5kZXJBY3Rpb24oZikpfQoKICAgICAgICA8IS0tIExlZnQgd2lkZ2V0cyAtLT4KICAgICAgICAke2IubWFwKChmLHkpPT53YAogICAgICAgICAgJHt5PjB8fHgubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChmKX0KICAgICAgICBgKX0KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCiAgICAgICAgPCEtLSBSaWdodCB3aWRnZXRzIC0tPgogICAgICAgICR7di5tYXAoKGYseSk9PndgCiAgICAgICAgICAke3RoaXMucmVuZGVyV2lkZ2V0KGYpfQogICAgICAgICAgJHt5PHYubGVuZ3RoLTF8fG0ubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIGApfQoKICAgICAgICA8IS0tIFJpZ2h0IGFjdGlvbnMgLS0+CiAgICAgICAgJHttLm1hcChmPT50aGlzLnJlbmRlckFjdGlvbihmKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoYil7bGV0IHY9Yi5zdGF0dXMmJmIuc3RhdHVzIT09ImlkbGUiP2Iuc3RhdHVzOiIiLHg9Yi5pY29uTmFtZT9iLmljb25OYW1lLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9iLmljb25OYW1lOmBsdWNpZGU6JHtiLmljb25OYW1lfWA6IiI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0id2lkZ2V0ICR7dn0iCiAgICAgICAgdGl0bGU9IiR7Yi50b29sdGlwfHwiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PmIub25DbGljaz8uKCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7bT0+dGhpcy5oYW5kbGVXaWRnZXRDb250ZXh0TWVudShtLGIpfQogICAgICA+CiAgICAgICAgJHt4P3dgCiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7eH0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgICBjbGFzcz0iJHtiLmxvYWRpbmc/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICAke2IubGFiZWw/d2A8c3Bhbj4ke2IubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb24oYil7bGV0IHY9Yi5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/Yi5pY29uTmFtZTpgbHVjaWRlOiR7Yi5pY29uTmFtZX1gO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtiLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIHRpdGxlPSIke2IudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT4hYi5kaXNhYmxlZCYmYi5vbkNsaWNrPy4oKX0KICAgICAgPgogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIC5pY29uPSR7dn0KICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVXaWRnZXRDb250ZXh0TWVudShiLHYpe2lmKCF2LmNvbnRleHRNZW51SXRlbXN8fHYuY29udGV4dE1lbnVJdGVtcy5sZW5ndGg9PT0wKXJldHVybjtiLnByZXZlbnREZWZhdWx0KCk7bGV0IHg9W107Zm9yKGxldCBtIG9mIHYuY29udGV4dE1lbnVJdGVtcyltLmRpdmlkZXI/eC5wdXNoKHtkaXZpZGVyOiEwfSk6eC5wdXNoKHtuYW1lOm0ubmFtZSxpY29uTmFtZTptLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBtLmFjdGlvbigpfSwiYWN0aW9uIiksZGlzYWJsZWQ6bS5kaXNhYmxlZH0pO2F3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGIseCl9YWRkV2lkZ2V0KGIpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKHY9PnYuaWQhPT1iLmlkKSx0aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyxiXX11cGRhdGVXaWRnZXQoYix2KXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcCh4PT54LmlkPT09Yj97Li4ueCwuLi52fTp4KX1yZW1vdmVXaWRnZXQoYil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIodj0+di5pZCE9PWIpfWdldFdpZGdldChiKXtyZXR1cm4gdGhpcy53aWRnZXRzLmZpbmQodj0+di5pZD09PWIpfWNsZWFyV2lkZ2V0cygpe3RoaXMud2lkZ2V0cz1bXX1hZGRBY3Rpb24oYil7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIodj0+di5pZCE9PWIuaWQpLHRoaXMuYWN0aW9ucz1bLi4udGhpcy5hY3Rpb25zLGJdfXJlbW92ZUFjdGlvbihiKXt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zLmZpbHRlcih2PT52LmlkIT09Yil9Y2xlYXJBY3Rpb25zKCl7dGhpcy5hY3Rpb25zPVtdfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx6Wih0aGlzLHUpfXN0YXRpY3t6WihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgU2RhPWcoKCk9PntFZXQoKX0pO3ZhciBfZGEsTWRhPWcoKCk9PntwZSgpO19kYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tYmFja2dyb3VuZCB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1iYWNrZ3JvdW5kIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5EZWZhdWx0IFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGFuZWwgQ29tcG9uZW50In0gLnN1YnRpdGxlPSR7IlRoZSBkZWZhdWx0IHBhbmVsIHZhcmlhbnQgd2l0aCBzaGFkY24taW5zcGlyZWQgc3R5bGluZyJ9PgogICAgICAgIDxwPlRoZSBwYW5lbCBjb21wb25lbnQgYXV0b21hdGljYWxseSBmb2xsb3dzIHRoZSB0aGVtZSBhbmQgcHJvdmlkZXMgY29uc2lzdGVudCBzdHlsaW5nIGZvciBncm91cGVkIGNvbnRlbnQuPC9wPgogICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIE92ZXJ2aWV3In0gLnN1YnRpdGxlPSR7IktleSBjYXBhYmlsaXRpZXMifT4KICAgICAgICAgIDxwPkdyaWQgbGF5b3V0cyB3b3JrIGdyZWF0IHdpdGggcGFuZWxzIGZvciBjcmVhdGluZyBkYXNoYm9hcmRzIGFuZCBmZWF0dXJlIHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MZWFybiBNb3JlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlF1aWNrIEFjdGlvbnMifSAuc3VidGl0bGU9JHsiQ29tbW9uIHRhc2tzIn0+CiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkdldCBTdGFydGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBWYXJpYW50czwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGVmYXVsdCBWYXJpYW50In0gLnZhcmlhbnQ9JHsiZGVmYXVsdCJ9PgogICAgICAgIDxwPlRoZSBkZWZhdWx0IHZhcmlhbnQgaGFzIGEgd2hpdGUgYmFja2dyb3VuZCwgc3VidGxlIGJvcmRlciwgYW5kIG1pbmltYWwgc2hhZG93LiBJdCdzIHRoZSBzdGFuZGFyZCBjaG9pY2UgZm9yIG1vc3QgY29udGVudC48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9ImRlZmF1bHQiPC9jb2RlPiBvciBvbWl0IHRoZSB2YXJpYW50IHByb3BlcnR5LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik91dGxpbmUgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIHdpdGggYm9yZGVyIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgIDxwPlRoZSBvdXRsaW5lIHZhcmlhbnQgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgc2hhZG93LCBrZWVwaW5nIG9ubHkgdGhlIGJvcmRlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Im91dGxpbmUiPC9jb2RlPiBmb3IgYSBsaWdodGVyIHZpc3VhbCB3ZWlnaHQuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiR2hvc3QgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJNaW5pbWFsIHN0eWxpbmcgZm9yIHN1YnRsZSBzZWN0aW9ucyJ9IC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZ2hvc3QiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBTaXplczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLTNjb2wiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTbWFsbCBQYW5lbCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5Db21wYWN0IHBhZGRpbmcgZm9yIGRlbnNlIGxheW91dHMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9InNtIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJNZWRpdW0gUGFuZWwifSAuc2l6ZT0keyJtZCJ9PgogICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibWQiPC9jb2RlPiBvciBvbWl0LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhcmdlIFBhbmVsIn0gLnNpemU9JHsibGcifT4KICAgICAgICAgIDxwPkdlbmVyb3VzIHBhZGRpbmcgZm9yIHByb21pbmVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibGciPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db21wbGV4IEV4YW1wbGVzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJEZXNjcmlwdGlvbiJ9IC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIAogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifSAKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIERldmVsb3BtZW50IixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHAiLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBTb2Z0d2FyZSIsa2V5OiJkZXNrdG9wIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVscyJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgY2FuIGJlIG5lc3RlZCBmb3IgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbiJ9PgogICAgICAgIDxwPllvdSBjYW4gbmVzdCBwYW5lbHMgdG8gY3JlYXRlIG1vcmUgY29tcGxleCBsYXlvdXRzOjwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDEifSAudmFyaWFudD0keyJvdXRsaW5lIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYSBuZXN0ZWQgcGFuZWwgd2l0aCBvdXRsaW5lIHZhcmlhbnQgYW5kIHNtYWxsIHNpemUuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDIifSAudmFyaWFudD0keyJnaG9zdCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVudGl0bGVkIFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPgogICAgICAgIDxwPlRoZXkgcHJvdmlkZSB2aXN1YWwgc2VwYXJhdGlvbiBhbmQgY29uc2lzdGVudCBwYWRkaW5nIHRocm91Z2hvdXQgeW91ciBpbnRlcmZhY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+Q3VzdG9tIENvbnRlbnQ8L2g0PgogICAgICAgICAgPHA+WW91IGNhbiBhZGQgeW91ciBvd24gaGVhZGluZ3MgYW5kIHN0cnVjdHVyZSB3aXRoaW4gdW50aXRsZWQgcGFuZWxzLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPk1pbmltYWwgU3R5bGU8L2g0PgogICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgeVdhLHdXYSxQZXQsaW5lLE5hLCQ4LGtXYSxTV2EsemRhLF9XYSxNV2EsUVhyLEpYcixDcj1nKCgpPT57cGUoKTt5V2E9IkdlaXN0IFNhbnMiLHdXYT0iSW50ZWwgT25lIE1vbm8iLFBldD1gJyR7eVdhfScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLGluZT1gJyR7d1dhfScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsTmE9YWEoUGV0KSwkOD1hYShpbmUpLGtXYT0iQ2FsIFNhbnMiLFNXYT1gJyR7a1dhfScsICR7UGV0fWAsemRhPWFhKFNXYSksX1dhPSJSb2JvdG8gU2xhYiIsTVdhPWAnJHtfV2F9JywgR2VvcmdpYSwgc2VyaWZgLFFYcj1hYShNV2EpLEpYcj1hYShgCiAgZm9udC1mYW1pbHk6ICR7UGV0fTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBvdixXMSxDZGEsZm89ZygoKT0+e3BlKCk7TWRhKCk7Q3IoKTtwdCgpO292PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxXMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQ2RhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1wYW5lbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzUGFuZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHthdHRyaWJ1dGU6ITF9KV0sb3YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4idGl0bGUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy50aXRsZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnRpdGxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxvdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1YnRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzdWJ0aXRsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnN1YnRpdGxlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3VidGl0bGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLG92KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFyaWFudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4idmFyaWFudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZhcmlhbnQsImdldCIpLHNldDppKChfLE8pPT57Xy52YXJpYW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxvdih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNpemUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zaXplLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksb3YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydW5BZnRlclJlbmRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icnVuQWZ0ZXJSZW5kZXIiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5ydW5BZnRlclJlbmRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnJ1bkFmdGVyUmVuZGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxvdihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPV9kYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPVcxKHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKEMpe3RoaXMuI2U9Q30jdD0oVzEodGhpcyxsKSxXMSh0aGlzLGQsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoQyl7dGhpcy4jdD1DfSNhPShXMSh0aGlzLHUpLFcxKHRoaXMsYiwiZGVmYXVsdCIpKTtnZXQgdmFyaWFudCgpe3JldHVybiB0aGlzLiNhfXNldCB2YXJpYW50KEMpe3RoaXMuI2E9Q30jcz0oVzEodGhpcyx2KSxXMSh0aGlzLG0sIm1kIikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNpemUoQyl7dGhpcy4jcz1DfSNpPShXMSh0aGlzLGYpLFcxKHRoaXMsTSx2b2lkIDApKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcnVuQWZ0ZXJSZW5kZXIoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLyogVmFyaWFudDogZGVmYXVsdCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdKSB7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgaHNsKDAgMCUgMCUgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLyogVmFyaWFudDogb3V0bGluZSAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfQoKICAgICAgLyogVmFyaWFudDogZ2hvc3QgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Imdob3N0Il0pIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLyogU2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuaGVhZGVyOmVtcHR5IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFRpdGxlIHNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBtYXJnaW46IDRweCAwIDAgMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFN1YnRpdGxlIHNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDg0LjklKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQoKICAgICAgLyogQ29udGVudCBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5jb250ZW50IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICB9CgogICAgICAvKiBSZW1vdmUgbWFyZ2lucyBmcm9tIGZpcnN0IGFuZCBsYXN0IGNoaWxkcmVuICovCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmZpcnN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgOjpzbG90dGVkKCo6bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZGVmYXVsdCB2YXJpYW50ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJkZWZhdWx0Il06aG92ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3Igb3V0bGluZSB2YXJpYW50ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJvdXRsaW5lIl06aG92ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA3LjglKSIpfTsKICAgICAgfQoKICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBnaG9zdCB2YXJpYW50ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdOmhvdmVyKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogRm9jdXMgc3RhdGVzICovCiAgICAgIDpob3N0KDpmb2N1cy13aXRoaW4pIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE5lc3RlZCBwYW5lbHMgc3BhY2luZyAqLwogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbCkgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChkZWVzLXBhbmVsOmZpcnN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgJHt0aGlzLnRpdGxlP3dgPGgzIGNsYXNzPSJ0aXRsZSI+JHt0aGlzLnRpdGxlfTwvaDM+YDoiIn0KICAgICAgICAke3RoaXMuc3VidGl0bGU/d2A8cCBjbGFzcz0ic3VidGl0bGUiPiR7dGhpcy5zdWJ0aXRsZX08L3A+YDoiIn0KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMucnVuQWZ0ZXJSZW5kZXImJmF3YWl0IHRoaXMucnVuQWZ0ZXJSZW5kZXIodGhpcyl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFcxKHRoaXMseil9c3RhdGlje1cxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBUZGEsSWV0LCRkYSxEZGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO0lldD1pKHM9PkFycmF5LmZyb20oe2xlbmd0aDpzfSwoZSx0KT0+KHtpZDp0LHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApLGxhYmVsOmAke3R9YH0pKSwiZ2VuZXJhdGVDcHVDb3JlcyIpLCRkYT1pKCgpPT53KFRkYXx8KFRkYT1iYyhbYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICBgLGAKICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iYWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IHBhZGRpbmc6IDEycHg7IGJhY2tncm91bmQ6IGAsIjsgYm9yZGVyLXJhZGl1czogNnB4OyBmb250LXNpemU6IDE0cHg7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGNvbG9yOiAiLGA7Ij4KICAgICAgICAgIDxlbT5DbGljayBvbiB0aWxlIGFjdGlvbnMgb3IgZ3JpZCBhY3Rpb25zIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPkNvbmZpZ3VyYXRpb24gT3B0aW9uczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgIEVhY2ggdGlsZSB0eXBlIHN1cHBvcnRzIGRpZmZlcmVudCBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiA4cHggMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5OdW1iZXI6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+R2F1Z2U6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCBnYXVnZU9wdGlvbnMgKG1pbiwgbWF4LCB0aHJlc2hvbGRzKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5QZXJjZW50YWdlOjwvc3Ryb25nPiB2YWx1ZSAoMC0xMDApLCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VHJlbmQ6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCB0cmVuZERhdGEgYXJyYXksIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRleHQ6PC9zdHJvbmc+IHZhbHVlIChzdHJpbmcpLCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDE2cHggMDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyI+Q29tcGFjdCBMYXlvdXQgKDE4MHB4IHRpbGVzKTwvaDQ+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMjRweCAwIDE2cHggMDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyI+U3BhY2lvdXMgTGF5b3V0ICgzMjBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIGlkPSJjcHUtY29yZXMtZ3JpZCIKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZ3JpZCIKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+YCxgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbmZpZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+UGFydGl0aW9uIFRpbGUgUHJvcGVydGllczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiA4cHggMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLnVzZWQ6PC9zdHJvbmc+IFVzZWQgc3BhY2UgaW4gYnl0ZXMgKGF1dG8tZm9ybWF0dGVkKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLnRvdGFsOjwvc3Ryb25nPiBUb3RhbCBjYXBhY2l0eSBpbiBieXRlczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLmZpbGVzeXN0ZW06PC9zdHJvbmc+IEZpbGVzeXN0ZW0gdHlwZSAoZXh0NCwgeGZzLCBudGZzKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wYXJ0aXRpb25EYXRhLm1vdW50UG9pbnQ6PC9zdHJvbmc+IE1vdW50IHBvaW50IHBhdGggKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICBDb2xvciB0aHJlc2hvbGRzOiBOb3JtYWwgKCZsdDs3NSUpLCBXYXJuaW5nICg3NS05MCUpLCBDcml0aWNhbCAoJmd0OzkwJSkKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5EaXNrIFRpbGUgUHJvcGVydGllczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiA4cHggMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5jYXBhY2l0eTo8L3N0cm9uZz4gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEubW9kZWw6PC9zdHJvbmc+IERpc2sgbW9kZWwgbmFtZSAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLnR5cGU6PC9zdHJvbmc+IERpc2sgdHlwZTogJ3NzZCcsICdoZGQnLCBvciAnbnZtZSc8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuaW9wczo8L3N0cm9uZz4gUmVhZC93cml0ZSBJT1BTIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuaGVhbHRoOjwvc3Ryb25nPiBIZWFsdGggcGVyY2VudGFnZSAwLTEwMCAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIEhlYWx0aCB0aHJlc2hvbGRzOiBHb29kICg3MC0xMDAlKSwgV2FybmluZyAoMzAtNzAlKSwgQ3JpdGljYWwgKCZsdDszMCUpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgoKICAgIDxzY3JpcHQ+CiAgICAgIC8vIENsZWFudXAgbGl2ZSB1cGRhdGVzIG9uIHBhZ2UgdW5sb2FkCiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCAoKSA9PiB7CiAgICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpIHsKICAgICAgICAgIGNsZWFySW50ZXJ2YWwoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCk7CiAgICAgICAgfQogICAgICB9KTsKICAgIDxcL3NjcmlwdD4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYF0pKSxKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGlsZS1jb25maWcgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1zZWN0aW9uIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb2RlLWJsb2NrIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICAgIH0KICAgICAgYCwiMS4gQ29tcHJlaGVuc2l2ZSBEYXNoYm9hcmQiLCJGdWxsLWZlYXR1cmVkIHN0YXRzIGdyaWQgd2l0aCB2YXJpb3VzIHRpbGUgdHlwZXMsIGFjdGlvbnMsIGFuZCBMdWNpZGUgaWNvbnMiLFt7aWQ6InJldmVudWUiLHRpdGxlOiJUb3RhbCBSZXZlbnVlIix2YWx1ZToxMjU0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24iLGRlc2NyaXB0aW9uOiIrMTIuNSUgZnJvbSBsYXN0IG1vbnRoIixhY3Rpb25zOlt7bmFtZToiVmlldyBEZXRhaWxzIixpY29uTmFtZToibHVjaWRlOnRyZW5kaW5nLXVwIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iVmlld2luZyByZXZlbnVlIGRldGFpbHM6ICQxMjUsNDIwICgrMTIuNSUpIil9LCJhY3Rpb24iKX0se25hbWU6IkV4cG9ydCBEYXRhIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iRXhwb3J0aW5nIHJldmVudWUgZGF0YSB0byBDU1YuLi4iKX0sImFjdGlvbiIpfV19LHtpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjM4NDcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiIzMjQgbmV3IHRoaXMgd2VlayIsYWN0aW9uczpbe25hbWU6IlZpZXcgVXNlciBMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3MmJihzLnRleHRDb250ZW50PSJPcGVuaW5nIHVzZXIgbGlzdC4uLiIpfSwiYWN0aW9uIil9XX0se2lkOiJjcHUiLHRpdGxlOiJDUFUgVXNhZ2UiLHZhbHVlOjczLHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJzdG9yYWdlIix0aXRsZToiU3RvcmFnZSBVc2VkIix2YWx1ZTo2NSx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjY1MCBHQiBvZiAxIFRCIn0se2lkOiJsYXRlbmN5Iix0aXRsZToiUmVzcG9uc2UgVGltZSIsdmFsdWU6MTQyLHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5Iix0cmVuZERhdGE6WzE1MCwxNDUsMTQ4LDE0MiwxMzgsMTQwLDEzNSwxNDUsMTQyXSxkZXNjcmlwdGlvbjoiUDk1In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZToiOTkuOTUlIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6Y2hlY2stY2lyY2xlIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246Ikxhc3QgMzAgZGF5cyJ9XSxbe25hbWU6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc3RhdHNncmlkIik7cyYmKHMuc3R5bGUub3BhY2l0eT0iMC41IixzZXRUaW1lb3V0KCgpPT57cy5zdHlsZS5vcGFjaXR5PSIxIn0sMzAwKSl9LCJhY3Rpb24iKX0se25hbWU6IkV4cG9ydCIsaWNvbk5hbWU6Imx1Y2lkZTpzaGFyZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9IkV4cG9ydGluZyBkYXNoYm9hcmQgcmVwb3J0Li4uIil9LCJhY3Rpb24iKX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iT3BlbmluZyBkYXNoYm9hcmQgc2V0dGluZ3MuLi4iKX0sImFjdGlvbiIpfV0sMjUwLDE2LGguYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKSxoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIiksIjIuIFRpbGUgVHlwZXMiLCJEaWZmZXJlbnQgdmlzdWFsaXphdGlvbiB0eXBlcyBhdmFpbGFibGUgaW4gdGhlIHN0YXRzIGdyaWQiLFt7aWQ6Im51bWJlci1leGFtcGxlIix0aXRsZToiTnVtYmVyIFRpbGUiLHZhbHVlOjQyMTk1LHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmhhc2giLGRlc2NyaXB0aW9uOiJTaW1wbGUgbnVtZXJpYyBkaXNwbGF5In0se2lkOiJnYXVnZS1leGFtcGxlIix0aXRsZToiR2F1Z2UgVGlsZSIsdmFsdWU6NjgsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpnYXVnZSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjUwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoicGVyY2VudGFnZS1leGFtcGxlIix0aXRsZToiUGVyY2VudGFnZSBUaWxlIix2YWx1ZTo3OCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6cGVyY2VudCIsZGVzY3JpcHRpb246IlByb2dyZXNzIGJhciB2aXN1YWxpemF0aW9uIn0se2lkOiJ0cmVuZC1leGFtcGxlIix0aXRsZToiVHJlbmQgVGlsZSIsdmFsdWU6ODkyLHVuaXQ6Im9wcy9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIix0cmVuZERhdGE6WzcyMCw3NTAsNzgwLDc5NSw4MTAsODM1LDg1MCw4NjUsODgwLDg5Ml0sZGVzY3JpcHRpb246ImF2ZyJ9LHtpZDoidGV4dC1leGFtcGxlIix0aXRsZToiVGV4dCBUaWxlIix2YWx1ZToiT3BlcmF0aW9uYWwiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTppbmZvIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246IlN0YXR1cyBkaXNwbGF5In1dLDI4MCwxNiwiMy4gR3JpZCBDb25maWd1cmF0aW9ucyIsIkRpZmZlcmVudCBsYXlvdXQgb3B0aW9ucyBhbmQgcmVzcG9uc2l2ZSBiZWhhdmlvciIsW3tpZDoiMSIsdGl0bGU6Ik9yZGVycyIsdmFsdWU6MTU2LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNob3BwaW5nLWNhcnQifSx7aWQ6IjIiLHRpdGxlOiJSZXZlbnVlIix2YWx1ZTo4NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIn0se2lkOiIzIix0aXRsZToiVXNlcnMiLHZhbHVlOjQyMyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyJ9LHtpZDoiNCIsdGl0bGU6Ikdyb3d0aCIsdmFsdWU6MTIuNSx1bml0OiIlIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifV0sMTgwLDEyLFt7aWQ6InNwYWNpb3VzMSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6MTg0NTAwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNyZWRpdC1jYXJkIixkZXNjcmlwdGlvbjoiVG90YWwgcmV2ZW51ZSB0aGlzIG1vbnRoIn0se2lkOiJzcGFjaW91czIiLHRpdGxlOiJDdXN0b21lciBTYXRpc2ZhY3Rpb24iLHZhbHVlOjk0LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzbWlsZSIsZGVzY3JpcHRpb246IkJhc2VkIG9uIDEsMjM0IHJldmlld3MifSx7aWQ6InNwYWNpb3VzMyIsdGl0bGU6IlNlcnZlciBSZXNwb25zZSIsdmFsdWU6OTgsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6c2VydmVyIix0cmVuZERhdGE6WzEwNSwxMDIsMTAwLDk5LDk4LDk4LDk3LDk4XSxkZXNjcmlwdGlvbjoiYXZnIHJlc3BvbnNlIHRpbWUifV0sMzIwLDIwLCI0LiBDUFUgQ29yZXMgVmlzdWFsaXphdGlvbiIsIlZlcnRpY2FsIGJhciB2aXN1YWxpemF0aW9uIGZvciBtdWx0aS1jb3JlIENQVSB1c2FnZSB3aXRoIGNvbHVtbiBzcGFubmluZyIsW3tpZDoiY3B1LWNvcmVzLTgiLHRpdGxlOiJDUFUgQ29yZXMgKDgtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6SWV0KDgpLGRlc2NyaXB0aW9uOiJJbnRlbCBpNyAtIDggY29yZXMifSx7aWQ6Im1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIixkZXNjcmlwdGlvbjoiMTMuNiBHQiBvZiAyMCBHQiJ9LHtpZDoiY3B1LWNvcmVzLTE2Iix0aXRsZToiQ1BVIENvcmVzICgxNi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpJZXQoMTYpLGRlc2NyaXB0aW9uOiJBTUQgUnl6ZW4gOSAtIDE2IGNvcmVzIn0se2lkOiJuZXR3b3JrIix0aXRsZToiTmV0d29yayBJL08iLHZhbHVlOjI0NSx1bml0OiJNQi9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOm5ldHdvcmsiLHRyZW5kRGF0YTpbMjAwLDIyMCwyMzUsMjQwLDIzOCwyNDVdLGRlc2NyaXB0aW9uOiJ0aHJvdWdocHV0In0se2lkOiJjcHUtY29yZXMtMzIiLHRpdGxlOiJTZXJ2ZXIgQ1BVICgzMi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sdW1uU3BhbjozLGNvcmVzRGF0YTpJZXQoMzIpLGRlc2NyaXB0aW9uOiJBTUQgRVBZQyAtIDMyIGNvcmVzIn0se2lkOiJkaXNrIix0aXRsZToiRGlzayBVc2FnZSIsdmFsdWU6NDIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI0MjAgR0Igb2YgMSBUQiJ9XSxbe25hbWU6IlJhbmRvbWl6ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzaHVmZmxlIixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NwdS1jb3Jlcy1ncmlkIik7aWYoIXMpcmV0dXJuO2xldCBlPXMudGlsZXMubWFwKHQ9PnQudHlwZT09PSJjcHVDb3JlcyImJnQuY29yZXNEYXRhP3suLi50LGNvcmVzRGF0YTp0LmNvcmVzRGF0YS5tYXAoYT0+KHsuLi5hLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApfSkpfTp0KTtzLnRpbGVzPWV9LCJhY3Rpb24iKX1dLDI1MCwxNiwiNS4gSW50ZXJhY3RpdmUgRmVhdHVyZXMiLCJUaWxlcyB3aXRoIGFjdGlvbnMgYW5kIHJlYWwtdGltZSB1cGRhdGVzIixbe2lkOiJsaXZlLWNwdSIsdGl0bGU6IkxpdmUgQ1BVIix2YWx1ZTo0NSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoibGl2ZS1yZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6ODkyLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbODUwLDg2MCw4NzAsODgwLDg4NSw4OTAsODkyXX0se2lkOiJsaXZlLW1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIn0se2lkOiJjb3VudGVyIix0aXRsZToiRXZlbnQgQ291bnRlciIsdmFsdWU6MCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp6YXAiLGFjdGlvbnM6W3tuYW1lOiJJbmNyZW1lbnQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXMpcmV0dXJuO2xldCBlPXMudGlsZXMuZmluZCh0PT50LmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPXR5cGVvZiBlLnZhbHVlPT0ibnVtYmVyIj9lLnZhbHVlKzE6MSxzLnRpbGVzPVsuLi5zLnRpbGVzXX0sImFjdGlvbiIpfSx7bmFtZToiUmVzZXQiLGljb25OYW1lOiJsdWNpZGU6cm90YXRlLWNjdyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXMpcmV0dXJuO2xldCBlPXMudGlsZXMuZmluZCh0PT50LmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPTAscy50aWxlcz1bLi4ucy50aWxlc119LCJhY3Rpb24iKX1dfV0sW3tuYW1lOiJTdGFydCBMaXZlIFVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsYWN0aW9uOmkoYXN5bmMgZnVuY3Rpb24oKXt3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPyhjbGVhckludGVydmFsKHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWwpLHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9bnVsbCx0aGlzLm5hbWU9IlN0YXJ0IExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBsYXkiKTood2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYocyl7bGV0IGU9Wy4uLnMudGlsZXNdLHQ9ZS5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1jcHUiKTt0LnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLHQudmFsdWUrKE1hdGgucmFuZG9tKCkqMjAtMTApKSk7bGV0IGE9ZS5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1yZXF1ZXN0cyIpLHI9YS52YWx1ZStNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqNTAtMjUpO2EudmFsdWU9TWF0aC5tYXgoODAwLHIpLGEudHJlbmREYXRhPVsuLi5hLnRyZW5kRGF0YS5zbGljZSgxKSxhLnZhbHVlXTtsZXQgbj1lLmZpbmQobz0+by5pZD09PSJsaXZlLW1lbW9yeSIpO24udmFsdWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsbi52YWx1ZSsoTWF0aC5yYW5kb20oKSoxMC01KSkpLHMudGlsZXM9ZX19LDFlMyksdGhpcy5uYW1lPSJTdG9wIExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBhdXNlIil9LCJhY3Rpb24iKX1dLDI1MCwxNiwiNi4gQ29kZSBFeGFtcGxlIiwiSG93IHRvIGltcGxlbWVudCBhIHN0YXRzIGdyaWQgd2l0aCBUeXBlU2NyaXB0IixgY29uc3QgdGlsZXM6IElTdGF0c1RpbGVbXSA9IFsKICB7CiAgICBpZDogJ3JldmVudWUnLAogICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJywKICAgIHZhbHVlOiAxMjU0MjAsCiAgICB1bml0OiAnJCcsCiAgICB0eXBlOiAnbnVtYmVyJywKICAgIGljb246ICdsdWNpZGU6ZG9sbGFyLXNpZ24nLAogICAgZGVzY3JpcHRpb246ICcrMTIuNSUgZnJvbSBsYXN0IG1vbnRoJywKICAgIGFjdGlvbnM6IFsKICAgICAgewogICAgICAgIG5hbWU6ICdWaWV3IERldGFpbHMnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRyZW5kaW5nLXVwJywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdWaWV3IHJldmVudWUgZGV0YWlscycpOwogICAgICAgIH0KICAgICAgfQogICAgXQogIH0sCiAgewogICAgaWQ6ICdjcHUnLAogICAgdGl0bGU6ICdDUFUgVXNhZ2UnLAogICAgdmFsdWU6IDczLAogICAgdW5pdDogJyUnLAogICAgdHlwZTogJ2dhdWdlJywKICAgIGljb246ICdsdWNpZGU6Y3B1JywKICAgIGdhdWdlT3B0aW9uczogewogICAgICBtaW46IDAsCiAgICAgIG1heDogMTAwLAogICAgICB0aHJlc2hvbGRzOiBbCiAgICAgICAgeyB2YWx1ZTogMCwgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyB9LAogICAgICAgIHsgdmFsdWU6IDYwLCBjb2xvcjogJ2hzbCg0NS40IDkzLjQlIDQ3LjUlKScgfSwKICAgICAgICB7IHZhbHVlOiA4MCwgY29sb3I6ICdoc2woMCA4NC4yJSA2MC4yJSknIH0KICAgICAgXQogICAgfQogIH0KXTsKCi8vIFJlbmRlciB0aGUgc3RhdHMgZ3JpZApodG1sXGAKICA8ZGVlcy1zdGF0c2dyaWQKICAgIC50aWxlcz1cJHt0aWxlc30KICAgIC5taW5UaWxlV2lkdGg9XCR7MjUwfQogICAgLmdhcD1cJHsxNn0KICAgIC5ncmlkQWN0aW9ucz1cJHtbCiAgICAgIHsKICAgICAgICBuYW1lOiAnUmVmcmVzaCcsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaC1jdycsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVmcmVzaCcpCiAgICAgIH0KICAgIF19CiAgPjwvZGVlcy1zdGF0c2dyaWQ+ClxgO2AsIjcuIERpc2sgJiBTdG9yYWdlIFRpbGVzIiwiUGFydGl0aW9uIGFuZCBwaHlzaWNhbCBkaXNrIHZpc3VhbGl6YXRpb24gdGlsZXMiLFt7aWQ6InJvb3QtcGFydGl0aW9uIix0aXRsZToiUm9vdCBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6Zm9sZGVyLXJvb3QiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6Njk4MzQxNDI1MTUyLHRvdGFsOjEwNzM3NDE4MjRlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvIn19LHtpZDoiaG9tZS1wYXJ0aXRpb24iLHRpdGxlOiJIb21lIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpob21lIixwYXJ0aXRpb25EYXRhOnt1c2VkOjIxNDc0ODM2NDgwMCx0b3RhbDo1MzY4NzA5MTJlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvaG9tZSJ9fSx7aWQ6ImRhdGEtcGFydGl0aW9uIix0aXRsZToiRGF0YSBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MTkzMjczNTI4MzIwMCx0b3RhbDoyMTQ3NDgzNjQ4ZTMsZmlsZXN5c3RlbToieGZzIixtb3VudFBvaW50OiIvZGF0YSJ9fSx7aWQ6Im52bWUtc3NkIix0aXRsZToiUHJpbWFyeSBOVk1lIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixjb2x1bW5TcGFuOjIsZGlza0RhdGE6e2NhcGFjaXR5OjJlMTIsbW9kZWw6IlNhbXN1bmcgOTkwIFBybyIsdHlwZToibnZtZSIsaW9wczp7cmVhZDo3NDUwLHdyaXRlOjY5MDB9LGhlYWx0aDo5OH19LHtpZDoic2F0YS1zc2QiLHRpdGxlOiJTZWNvbmRhcnkgU1NEIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6MWUxMixtb2RlbDoiQ3J1Y2lhbCBNWDUwMCIsdHlwZToic3NkIixpb3BzOntyZWFkOjU2MCx3cml0ZTo1MTB9LGhlYWx0aDo4NX19LHtpZDoiaGRkLXN0b3JhZ2UiLHRpdGxlOiJCYWNrdXAgSEREIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTphcmNoaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6OGUxMixtb2RlbDoiU2VhZ2F0ZSBJcm9uV29sZiIsdHlwZToiaGRkIixpb3BzOntyZWFkOjIxMCx3cml0ZToxOTV9LGhlYWx0aDo0Mn19XSwyODAsMTYpLCJkZW1vRnVuYyIpfSk7dmFyIGdoLHJuLE90LHppPWcoKCk9PntwZSgpO2t0KCk7Z2g9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHJuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxPdD0oKCk9PntsZXQgcz13ZSxlLHQ9W10sYT1bXSxyLG49W10sbz1bXSxsLHA9W10sZD1bXSx1LGM9W10sYj1bXSx2LHg9W10sbT1bXSxmLHk9W10sTT1bXSx6LE49W10sQz1bXSxfLE89W10sJD1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dEJhc2UiKX1zdGF0aWN7bGV0IEg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bTCh7dHlwZTpTdHJpbmd9KV0scj1bTCh7dHlwZTpTdHJpbmd9KV0sbD1bTCh7dHlwZTpTdHJpbmd9KV0sdT1bTCh7dHlwZTpTdHJpbmd9KV0sdj1bTCh7dHlwZTpCb29sZWFufSldLGY9W0woe3R5cGU6Qm9vbGVhbn0pXSx6PVtMKHt0eXBlOlN0cmluZ30pXSxfPVtMKHt0eXBlOlN0cmluZ30pXSxnaCh0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxheW91dE1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImxheW91dE1vZGUiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5sYXlvdXRNb2RlLCJnZXQiKSxzZXQ6aSgoayxTKT0+e2subGF5b3V0TW9kZT1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LHQsYSksZ2godGhpcyxudWxsLHIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbFBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJsYWJlbFBvc2l0aW9uImluIGssImhhcyIpLGdldDppKGs9PmsubGFiZWxQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmxhYmVsUG9zaXRpb249U30sInNldCIpfSxtZXRhZGF0YTpIfSxuLG8pLGdoKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToia2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJrZXkiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5rZXksImdldCIpLHNldDppKChrLFMpPT57ay5rZXk9U30sInNldCIpfSxtZXRhZGF0YTpIfSxwLGQpLGdoKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImxhYmVsImluIGssImhhcyIpLGdldDppKGs9PmsubGFiZWwsImdldCIpLHNldDppKChrLFMpPT57ay5sYWJlbD1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LGMsYiksZ2godGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4icmVxdWlyZWQiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLnJlcXVpcmVkPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0seCxtKSxnaCh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJkaXNhYmxlZCJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmRpc2FibGVkLCJnZXQiKSxzZXQ6aSgoayxTKT0+e2suZGlzYWJsZWQ9U30sInNldCIpfSxtZXRhZGF0YTpIfSx5LE0pLGdoKHRoaXMsbnVsbCx6LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImluZm9UZXh0ImluIGssImhhcyIpLGdldDppKGs9PmsuaW5mb1RleHQsImdldCIpLHNldDppKChrLFMpPT57ay5pbmZvVGV4dD1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LE4sQyksZ2godGhpcyxudWxsLF8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4iZGVzY3JpcHRpb24iaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5kZXNjcmlwdGlvbiwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmRlc2NyaXB0aW9uPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0sTywkKSxIJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkh9KX0jZT1ybih0aGlzLHQsImF1dG8iKTtnZXQgbGF5b3V0TW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBsYXlvdXRNb2RlKEgpe3RoaXMuI2U9SH0jdD0ocm4odGhpcyxhKSxybih0aGlzLG4sInRvcCIpKTtnZXQgbGFiZWxQb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBsYWJlbFBvc2l0aW9uKEgpe3RoaXMuI3Q9SH0jYT0ocm4odGhpcyxvKSxybih0aGlzLHAsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNhfXNldCBrZXkoSCl7dGhpcy4jYT1IfSNzPShybih0aGlzLGQpLHJuKHRoaXMsYyx2b2lkIDApKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbGFiZWwoSCl7dGhpcy4jcz1IfSNpPShybih0aGlzLGIpLHJuKHRoaXMseCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNpfXNldCByZXF1aXJlZChIKXt0aGlzLiNpPUh9I3I9KHJuKHRoaXMsbSkscm4odGhpcyx5LCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRpc2FibGVkKEgpe3RoaXMuI3I9SH0jbz0ocm4odGhpcyxNKSxybih0aGlzLE4sdm9pZCAwKSk7Z2V0IGluZm9UZXh0KCl7cmV0dXJuIHRoaXMuI299c2V0IGluZm9UZXh0KEgpe3RoaXMuI289SH0jbj0ocm4odGhpcyxDKSxybih0aGlzLE8sdm9pZCAwKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI259c2V0IGRlc2NyaXB0aW9uKEgpe3RoaXMuI249SH1zdGF0aWMgZ2V0IGJhc2VTdHlsZXMoKXtyZXR1cm5bSmAKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0OiA4cHg7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqLwogICAgICAgIH0KCiAgICAgICAgLyogRGVmYXVsdCBibG9jayBkaXNwbGF5IHdpdGggbm8gbWFyZ2lucyAtIHNwYWNpbmcgaXMgY29udGFpbmVyLWRyaXZlbiAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgLyogSG9yaXpvbnRhbCBsYXlvdXQgbW9kZSAtIGFjdGl2YXRlZCBieSBhdHRyaWJ1dGUgKi8KICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9Imhvcml6b250YWwiXSkgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqLwogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibm9uZSJdKSBkZWVzLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAvKiBEZXNjcmlwdGlvbiB0ZXh0IGJlbG93IGlucHV0ICovCiAgICAgICAgLmRlc2NyaXB0aW9uVGV4dCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgfQogICAgICBgXX1jaGFuZ2VTdWJqZWN0PShybih0aGlzLCQpLG5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpfWRldGVjdExheW91dE1vZGUoKXtpZih0aGlzLmxheW91dE1vZGUhPT0iYXV0byIpe3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsdGhpcy5sYXlvdXRNb2RlKTtyZXR1cm59bGV0IEg9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtIJiZILmhhc0F0dHJpYnV0ZSgiaG9yaXpvbnRhbC1sYXlvdXQiKT90aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJob3Jpem9udGFsIik6dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwidmVydGljYWwiKX11cGRhdGVkKEgpe3N1cGVyLnVwZGF0ZWQoSCksSC5oYXMoImxheW91dE1vZGUiKSYmdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCksSC5oYXMoImxhYmVsUG9zaXRpb24iKSYmdGhpcy5zZXRBdHRyaWJ1dGUoImxhYmVsLXBvc2l0aW9uIix0aGlzLmxhYmVsUG9zaXRpb24pfWFzeW5jIGZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITB9YXN5bmMgdW5mcmVlemUoKXt0aGlzLmRpc2FibGVkPSExfXJlbmRlckRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvblRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifX19KSgpfSk7dmFyIExkYSxFZGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO0Q4KCk7TGRhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1jaGVja2JveCIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0LWFsbC1idG4iKSxhPXMucXVlcnlTZWxlY3RvcigiI2NsZWFyLWFsbC1idG4iKTt0JiZhJiYodC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmZvckVhY2gocj0+eyFyLmRpc2FibGVkJiZyLmtleT8uc3RhcnRzV2l0aCgiZmVhdHVyZSIpJiYoci52YWx1ZT0hMCl9KX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHI9Pnshci5kaXNhYmxlZCYmci5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHIudmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hlY2tib3gtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWNoZWNrYm94ZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1saXN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgQ2hlY2tib3hlcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgY2hlY2tib3ggZXhhbXBsZXMgd2l0aCB2YXJpb3VzIGxhYmVscyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmtleT0keyJ0ZXJtcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpYmUgdG8gbmV3c2xldHRlciJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAua2V5PSR7Im5ld3NsZXR0ZXIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgZW1haWwgdXBkYXRlcyBhYm91dCB5b3VyIGFjY291bnQifQogICAgICAgICAgICAua2V5PSR7Im5vdGlmaWNhdGlvbnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNoZWNrYm94IFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgY2hlY2tib3ggc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRGVmYXVsdCBzdGF0ZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiQ2hlY2tlZCBzdGF0ZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgdW5jaGVja2VkIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgY2hlY2tlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIGNoZWNrYm94In0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtY2hlY2tib3hlcyI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBBIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEIifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25DIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBEIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFNlbGVjdGlvbiBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiB1c2UgY2FzZSBmb3IgZmVhdHVyZSB0b2dnbGVzIHdpdGggYmF0Y2ggb3BlcmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9InNlbGVjdC1hbGwtYnRuIiB0eXBlPSJzZWNvbmRhcnkiPlNlbGVjdCBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJjbGVhci1hbGwtYnRuIiB0eXBlPSJzZWNvbmRhcnkiPkNsZWFyIEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSBTdXBwb3J0In0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUxIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIE5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiVHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgQWNjZXNzIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU0In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFkdmFuY2VkIEFuYWx5dGljcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlNSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByaXZhY3kgU2V0dGluZ3MgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDaGVja2JveGVzIGluIGEgdHlwaWNhbCBmb3JtIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXNlY3Rpb24iPgogICAgICAgICAgPGg0IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Qcml2YWN5IFByZWZlcmVuY2VzPC9oND4KCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJTaGFyZSBhbmFseXRpY3MgZGF0YSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkhlbHAgdXMgaW1wcm92ZSBieSBzaGFyaW5nIGFub255bW91cyB1c2FnZSBkYXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlBlcnNvbmFsaXplZCByZWNvbW1lbmRhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgc3VnZ2VzdGlvbnMgYmFzZWQgb24geW91ciBhY3Rpdml0eSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJNYXJrZXRpbmcgY29tbXVuaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIHByb21vdGlvbmFsIGVtYWlscyBhbmQgc3BlY2lhbCBvZmZlcnMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiVGhpcmQtcGFydHkgaW50ZWdyYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWxsb3cgYXBwcm92ZWQgcGFydG5lcnMgdG8gYWNjZXNzIHlvdXIgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2xpY2sgY2hlY2tib3hlcyB0byBzZWUgdmFsdWUgY2hhbmdlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiRmVhdHVyZSB0b2dnbGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQGNoYW5nZVN1YmplY3Q9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoZWNrYm94LW91dHB1dCIpO2lmKGUmJnMuZGV0YWlsKXtsZXQgdD1zLmRldGFpbC5nZXRWYWx1ZSgpO2UudGV4dENvbnRlbnQ9YEZlYXR1cmUgaXMgJHt0PyJlbmFibGVkIjoiZGlzYWJsZWQifWB9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRlYnVnIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQGNoYW5nZVN1YmplY3Q9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2RlYnVnLW91dHB1dCIpO2lmKGUmJnMuZGV0YWlsKXtsZXQgdD1zLmRldGFpbC5nZXRWYWx1ZSgpO2UudGV4dENvbnRlbnQ9YERlYnVnIG1vZGU6ICR7dD8iT04iOiJPRkYifWB9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0iY2hlY2tib3gtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkZlYXR1cmUgaXMgZGlzYWJsZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRlYnVnLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0IiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyI+RGVidWcgbW9kZTogT0ZGPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBBZXQsQ1oscm5lLG9uZT1nKCgpPT57cGUoKTt6aSgpO0VkYSgpO0NyKCk7cHQoKTtBZXQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENaPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxybmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWNoZWNrYm94IildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dENoZWNrYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxBZXQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4idmFsdWUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di52YWx1ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnZhbHVlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxBZXQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJpbmRldGVybWluYXRlImluIHYsImhhcyIpLGdldDppKHY9PnYuaW5kZXRlcm1pbmF0ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmluZGV0ZXJtaW5hdGU9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLEFldChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPUxkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9Q1oodGhpcyxvLCExKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoYil7dGhpcy4jZT1ifSN0PShDWih0aGlzLGwpLENaKHRoaXMsZCwhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZGV0ZXJtaW5hdGUoYil7dGhpcy4jdD1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxDWih0aGlzLHUpLHRoaXMubGFiZWxQb3NpdGlvbj0icmlnaHQifXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgICAqIHsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveCB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3guc2VsZWN0ZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIENoZWNrbWFyayB1c2luZyBMdWNpZGUgaWNvbiBzdHlsZSAqLwogICAgICAgIC5jaGVja2JveCAuY2hlY2ttYXJrIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIC5jaGVja21hcmsgewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCAuY2hlY2ttYXJrIHN2ZyB7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIHN0cm9rZTogd2hpdGU7CiAgICAgICAgICBzdHJva2Utd2lkdGg6IDM7CiAgICAgICAgfQoKICAgICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3guZGlzYWJsZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIExhYmVsICovCiAgICAgICAgLmxhYmVsLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMnB4OwogICAgICAgICAgZmxleDogMTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIEBjbGljaz0iJHt0aGlzLnRvZ2dsZVNlbGVjdGVkfSI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0iY2hlY2tib3ggJHt0aGlzLnZhbHVlPyJzZWxlY3RlZCI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZUtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMudmFsdWU/d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZWNrbWFyayI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAgNkw5IDE3TDQgMTIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgYDp0aGlzLmluZGV0ZXJtaW5hdGU/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxMkgxOSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0iY2hlY2tib3gtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgdG9nZ2xlU2VsZWN0ZWQoKXt0aGlzLmRpc2FibGVkfHwodGhpcy52YWx1ZT0hdGhpcy52YWx1ZSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoYil7dGhpcy52YWx1ZT1ifWZvY3VzKCl7bGV0IGI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGVja2JveCIpO2ImJmIuZm9jdXMoKX1oYW5kbGVLZXlkb3duKGIpeyhiLmtleT09PSIgInx8Yi5rZXk9PT0iRW50ZXIiKSYmKGIucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZVNlbGVjdGVkKCkpfXN0YXRpY3tDWihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgbnY9e307eXQobnYse2JyaWdodDooKT0+dmgsZGFyazooKT0+Ymh9KTt2YXIgYmgsdmgsRzE9ZygoKT0+e2JoPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMTI0NTIiLHRleHQ6IiNmZmZmZmYifSx2aD17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDA2OWYyIix0ZXh0OiIjMzMzMzMzIn19KTt2YXIgUGRhLElkYT1nKCgpPT57cGUoKTtKMCgpO1BkYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gaDMgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5IZWFkZXIgQnV0dG9uczwvaDM+CiAgICAgIDxwPk1vZGFscyBjYW4gaGF2ZSBvcHRpb25hbCBoZWFkZXIgYnV0dG9ucyBmb3IgaGVscCBhbmQgY2xvc2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIEhlbHAgQnV0dG9uIixzaG93SGVscEJ1dHRvbjohMCxvbkhlbHA6aShhc3luYygpPT57YXdhaXQgUWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiSGVscCIsd2lkdGg6InNtYWxsIixzaG93Q2xvc2VCdXR0b246ITAsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDp3YAogICAgICAgICAgICAgICAgICA8cD5UaGlzIGlzIHRoZSBoZWxwIGNvbnRlbnQgZm9yIHRoZSBtb2RhbC48L3A+CiAgICAgICAgICAgICAgICAgIDxwPllvdSBjYW4gcHJvdmlkZSBjb250ZXh0LXNwZWNpZmljIGhlbHAgaGVyZS48L3A+CiAgICAgICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiR290IGl0IixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgaGVscCBidXR0b24gaW4gdGhlIGhlYWRlci4gQ2xpY2sgaXQgdG8gc2VlIGhlbHAgY29udGVudC48L3A+CiAgICAgICAgICAgICAgPHA+VGhlIGNsb3NlIGJ1dHRvbiBpcyBhbHNvIHZpc2libGUgYnkgZGVmYXVsdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJPSyIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PldpdGggSGVscCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIENsb3NlIEJ1dHRvbiIsc2hvd0Nsb3NlQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBjbG9zZSBidXR0b24gaW4gdGhlIGhlYWRlci48L3A+CiAgICAgICAgICAgICAgPHA+WW91IG11c3QgdXNlIHRoZSBhY3Rpb24gYnV0dG9ucyBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlIGl0LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Tm8gQ2xvc2UgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJCb3RoIEJ1dHRvbnMiLHNob3dIZWxwQnV0dG9uOiEwLHNob3dDbG9zZUJ1dHRvbjohMCxvbkhlbHA6aSgoKT0+YWxlcnQoIkhlbHAgY2xpY2tlZCEiKSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGJvdGggaGVscCBhbmQgY2xvc2UgYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Qm90aCBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJDbGVhbiBIZWFkZXIiLHNob3dDbG9zZUJ1dHRvbjohMSxzaG93SGVscEJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjbGVhbiBoZWFkZXIgd2l0aCBubyBidXR0b25zLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Q2xlYW4gSGVhZGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPk1vZGFsIFdpZHRoIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IHdpZHRoczogc21hbGwsIG1lZGl1bSwgbGFyZ2UsIGZ1bGxzY3JlZW4sIG9yIGN1c3RvbSBwaXhlbCB2YWx1ZXMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU21hbGwgTW9kYWwiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzbWFsbCBtb2RhbCB3aXRoIGEgd2lkdGggb2YgMzgwcHguIFBlcmZlY3QgZm9yIHNpbXBsZSBjb25maXJtYXRpb25zIG9yIGJyaWVmIG1lc3NhZ2VzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5TbWFsbCBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTWVkaXVtIE1vZGFsIChEZWZhdWx0KSIsd2lkdGg6Im1lZGl1bSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJVc2VybmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRW1haWwifSAuaW5wdXRUeXBlPSR7ImVtYWlsIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQYXNzd29yZCJ9IC5pbnB1dFR5cGU9JHsicGFzc3dvcmQifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2lnbiBVcCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk1lZGl1bSBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTGFyZ2UgTW9kYWwiLHdpZHRoOiJsYXJnZSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxoND5XaWRlIENvbnRlbnQgQXJlYTwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBsYXJnZSBtb2RhbCBpcyA4MDBweCB3aWRlIGFuZCBwZXJmZWN0IGZvciBkaXNwbGF5aW5nIG1vcmUgY29tcGxleCBjb250ZW50IGxpa2UgZm9ybXMgd2l0aCBtdWx0aXBsZSBjb2x1bW5zLCB0YWJsZXMsIG9yIGRldGFpbGVkIGluZm9ybWF0aW9uLjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTZweDsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiTGFzdCBOYW1lIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJDb21wYW55In0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQb3NpdGlvbiJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TGFyZ2UgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkZ1bGxzY3JlZW4gRWRpdG9yIix3aWR0aDoiZnVsbHNjcmVlbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoYXN5bmMoKT0+e2FsZXJ0KCJJbiBhIHJlYWwgYXBwLCB0aGlzIHdvdWxkIHNob3cgZWRpdG9yIGRvY3VtZW50YXRpb24iKX0sIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+RnVsbHNjcmVlbiBFeHBlcmllbmNlIHdpdGggSGVhZGVyIENvbnRyb2xzPC9oND4KICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIHRha2VzIHVwIGFsbW9zdCB0aGUgZW50aXJlIHZpZXdwb3J0IHdpdGggYSAyMHB4IG1hcmdpbiBvbiBhbGwgc2lkZXMuIFRoZSBoZWFkZXIgYnV0dG9ucyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBmdWxsc2NyZWVuIG1vZGUuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjb250ZW50IGFyZWEgY2FuIGJlIGFzIHRhbGwgYXMgbmVlZGVkIGFuZCB3aWxsIHNjcm9sbCBpZiBuZWNlc3NhcnkuPC9wPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzJhMmEyYSIpfTsgYm9yZGVyLXJhZGl1czogOHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX0iPkxhcmdlIGNvbnRlbnQgYXJlYTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IlNhdmUiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkZ1bGxzY3JlZW4gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q3VzdG9tIFdpZHRoICYgQ29uc3RyYWludHM8L2gzPgogICAgICA8cD5Zb3UgY2FuIGFsc28gc2V0IGN1c3RvbSBwaXhlbCB3aWR0aHMgYW5kIG1pbi9tYXggY29uc3RyYWludHMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ3VzdG9tIFdpZHRoICg3MDBweCkiLHdpZHRoOjcwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjdXN0b20gd2lkdGggb2YgZXhhY3RseSA3MDAgcGl4ZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+Q3VzdG9tIDcwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1heCBXaWR0aCIsd2lkdGg6ImxhcmdlIixtYXhXaWR0aDo2MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaXMgc2V0IHRvICdsYXJnZScgYnV0IGNvbnN0cmFpbmVkIGJ5IGEgbWF4V2lkdGggb2YgNjAwcHguPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiR290IGl0IixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TWF4IFdpZHRoIDYwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1pbiBXaWR0aCIsd2lkdGg6MzAwLG1pbldpZHRoOjQwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB3aWR0aCBpcyBzZXQgdG8gMzAwcHggYnV0IGhhcyBhIG1pbldpZHRoIG9mIDQwMHB4LCBzbyBpdCB3aWxsIGJlIDQwMHB4IHdpZGUuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5NaW4gV2lkdGggNDAwcHg8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QnV0dG9uIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IGJ1dHRvbiBjb25maWd1cmF0aW9ucyB3aXRoIHByb3BlciBzcGFjaW5nLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik11bHRpcGxlIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGRlbW9uc3RyYXRlcyBtdWx0aXBsZSBidXR0b25zIHdpdGggcHJvcGVyIHNwYWNpbmcgYmV0d2VlbiB0aGVtLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRlbGV0ZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIENoYW5nZXMiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UaHJlZSBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJTaW5nbGUgQWN0aW9uIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+U29tZXRpbWVzIHlvdSBqdXN0IG5lZWQgb25lIGJ1dHRvbi48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJBY2tub3dsZWRnZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PlNpbmdsZSBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBib3R0b20gYnV0dG9ucy4gVXNlIHRoZSBYIGJ1dHRvbiBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlLjwvcD4KICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsiPlRoaXMgaXMgdXNlZnVsIGZvciBpbmZvcm1hdGlvbmFsIG1vZGFscyB0aGF0IGRvbid0IHJlcXVpcmUgdXNlciBhY3Rpb24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOltdfSl9fT5ObyBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIEJ1dHRvbiBMYWJlbHMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UZXN0aW5nIGJ1dHRvbiBsYXlvdXQgd2l0aCBsb25nZXIgbGFiZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRpc2NhcmQgQWxsIENoYW5nZXMiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IlNhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmciLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIExhYmVsczwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5SZXNwb25zaXZlIEJlaGF2aW9yPC9oMz4KICAgICAgPHA+QWxsIG1vZGFscyBhdXRvbWF0aWNhbGx5IGJlY29tZSBmdWxsLXdpZHRoIG9uIG1vYmlsZSBkZXZpY2VzICg8IDc2OHB4IHZpZXdwb3J0IHdpZHRoKSBmb3IgYmV0dGVyIHVzYWJpbGl0eS48L3A+CiAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlJlc3BvbnNpdmUgTW9kYWwiLHdpZHRoOiJsYXJnZSIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoKCk9PmNvbnNvbGUubG9nKCJIZWxwIHJlcXVlc3RlZCBmb3IgcmVzcG9uc2l2ZSBtb2RhbCIpLCJvbkhlbHAiKSxjb250ZW50OndgCiAgICAgICAgICAgIDxwPlJlc2l6ZSB5b3VyIGJyb3dzZXIgd2luZG93IHRvIHNlZSBob3cgdGhpcyBtb2RhbCBhZGFwdHMuIE9uIG1vYmlsZSB2aWV3cG9ydHMsIGl0IHdpbGwgYXV0b21hdGljYWxseSB0YWtlIHRoZSBmdWxsIHdpZHRoIG1pbnVzIG1hcmdpbnMuPC9wPgogICAgICAgICAgICA8cD5UaGUgaGVhZGVyIGJ1dHRvbnMgcmVtYWluIGFjY2Vzc2libGUgYXQgYWxsIHZpZXdwb3J0IHNpemVzLjwvcD4KICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PlRlc3QgUmVzcG9uc2l2ZTwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2Nyb2xsYWJsZSBDb250ZW50PC9oMz4KICAgICAgPHA+V2hlbiBjb250ZW50IGV4Y2VlZHMgdGhlIG1vZGFsJ3MgbWF4LWhlaWdodCAoPGNvZGU+Y2FsYygxMDB2aCAtIDgwcHgpPC9jb2RlPiksIHRoZSB0aWxlIGNhcHMgYXQgdGhhdCBoZWlnaHQgYW5kIHRoZSBjb250ZW50IGFyZWEgc2Nyb2xscyBpbnNpZGUuIFRoZSBoZWFkaW5nIGFuZCBib3R0b20gYnV0dG9ucyBzdGF5IHBpbm5lZC48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIEFydGljbGUiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvaDQ+CiAgICAgICAgICAgICAgJHtBcnJheS5mcm9tKHtsZW5ndGg6NDB9LChzLGUpPT53YAogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+wqcgJHtlKzF9Ljwvc3Ryb25nPgogICAgICAgICAgICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBTZWQgZG8KICAgICAgICAgICAgICAgICAgZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQKICAgICAgICAgICAgICAgICAgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzCiAgICAgICAgICAgICAgICAgIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yCiAgICAgICAgICAgICAgICAgIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQKICAgICAgICAgICAgICAgICAgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsCiAgICAgICAgICAgICAgICAgIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkFjY2VwdCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkxvbmcgQXJ0aWNsZTwvZGVlcy1idXR0b24+CgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxvbmcgTGlzdCIsd2lkdGg6InNtYWxsIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+U2VsZWN0ZWQgaXRlbXM6PC9wPgogICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZy1sZWZ0OiAyMHB4OyBtYXJnaW46IDA7Ij4KICAgICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjgwfSwocyxlKT0+d2AKICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJwYWRkaW5nOiA0cHggMDsiPkl0ZW0gJHtlKzF9IOKAlCBvcHRpb24gbGFiZWw8L2xpPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIExpc3Q8L2RlZXMtYnV0dG9uPgoKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJUYWxsIEZvcm0iLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgJHtBcnJheS5mcm9tKHtsZW5ndGg6MjV9LChzLGUpPT53YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0ke2BGaWVsZCAke2UrMX1gfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTdWJtaXQiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UYWxsIEZvcm08L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEFkYSxOZGE9ZygoKT0+e3BlKCk7bnIoKTtBZGE9aSgoKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLnRpbGUtZGVtby1jb250ZW50IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIH0KICAgICAgICAgIC5mb290ZXItc3RhdHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgICAuZm9vdGVyLXN0YXRzIC5zdGF0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuZm9vdGVyLXN0YXRzIC5zdGF0IHN0cm9uZyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRlZXMtdGlsZSBoZWFkaW5nPSJTaW1wbGUgVGlsZSIgc3R5bGU9ImhlaWdodDogMjAwcHg7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVtby1jb250ZW50Ij5Db250ZW50IGFyZWEgd2l0aCByb3VuZGVkIGNvcm5lcnM8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPGRlZXMtdGlsZSBoZWFkaW5nPSJUaWxlIHdpdGggRm9vdGVyIiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZW1vLWNvbnRlbnQiPkNvbnRlbnQgZ29lcyBoZXJlPC9kaXY+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImZvb3Rlci1zdGF0cyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5sYXRlc3QgPHN0cm9uZz40Mjwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPm1pbiA8c3Ryb25nPjEyPC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+bWF4IDxzdHJvbmc+ODc8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5hdmcgPHN0cm9uZz40NS4zPC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDxkZWVzLXRpbGUgc3R5bGU9ImhlaWdodDogMjAwcHg7Ij4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDt3aWR0aDoxMDAlOyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo1MDA7Ij5DdXN0b20gSGVhZGVyPC9zcGFuPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IlNlYXJjaC4uLiIgc3R5bGU9ImZsZXg6MTttYXgtd2lkdGg6MjAwcHg7cGFkZGluZzoycHggOHB4O2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEycHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0O2JvcmRlci1jb2xvcjppbmhlcml0OyI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVtby1jb250ZW50Ij5DdXN0b20gaGVhZGVyIHNsb3Qgd2l0aCBzZWFyY2ggaW5wdXQ8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBubmUsTDgsUmRhLG5yPWcoKCk9PntwZSgpO05kYSgpO0NyKCk7cHQoKTtubmU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEw4PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxSZGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRpbGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RpbGUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGM9W1koKV0sbm5lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaGVhZGluZyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmhlYWRpbmcsImdldCIpLHNldDppKChmLHkpPT57Zi5oZWFkaW5nPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxubmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdmVyc2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJvdmVyc2Nyb2xsImluIGYsImhhcyIpLGdldDppKGY9PmYub3ZlcnNjcm9sbCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLm92ZXJzY3JvbGw9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLG5uZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0Zvb3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaGFzRm9vdGVyImluIGYsImhhcyIpLGdldDppKGY9PmYuaGFzRm9vdGVyLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuaGFzRm9vdGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxubmUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1BZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1MOCh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobSl7dGhpcy4jZT1tfSN0PShMOCh0aGlzLGwpLEw4KHRoaXMsZCwiYXV0byIpKTtnZXQgb3ZlcnNjcm9sbCgpe3JldHVybiB0aGlzLiN0fXNldCBvdmVyc2Nyb2xsKG0pe3RoaXMuI3Q9bX0jYT0oTDgodGhpcyx1KSxMOCh0aGlzLGIsITEpKTtnZXQgaGFzRm9vdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGhhc0Zvb3RlcihtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBUaGUgZnJhbWUgLS0tICovCiAgICAgIC50aWxlLW91dGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAvKiAtLS0gSGVhZGVyOiBiYXJlIGNvbnRhaW5lciwgb25seSB0aGUgZGVmYXVsdCBoZWFkaW5nIGdldHMgc3R5bGVkIC0tLSAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS1oZWFkaW5nIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLyogLS0tIENvbnRlbnQ6IHRoZSByb3VuZGVkIGluc2V0IC0tLQogICAgICAgICBVc2VzIG92ZXJmbG93LXk6IGF1dG8gc28gdGhhdCB3aGVuIGEgY29uc3VtZXIgKGUuZy4gZGVlcy1tb2RhbCkgY2FwcwogICAgICAgICB0aGUgdGlsZSB3aXRoIG1heC1oZWlnaHQsIGxvbmcgY29udGVudCBzY3JvbGxzIGluc2lkZSB0aGUgdGlsZQogICAgICAgICBpbnN0ZWFkIG9mIGJlaW5nIGNsaXBwZWQuIEZvciBjb25zdW1lcnMgd2l0aG91dCBtYXgtaGVpZ2h0CiAgICAgICAgIChlLmcuIGRlZXMtc3RlcHBlciksIHRoZSB0aWxlIGdyb3dzIHdpdGggY29udGVudCBhbmQgdGhlIHNjcm9sbAogICAgICAgICBuZXZlciBhY3RpdmF0ZXMuIEhvcml6b250YWwgb3ZlcmZsb3cgc3RheXMgY2xpcHBlZCB0byBwcmVzZXJ2ZSB0aGUKICAgICAgICAgcm91bmRlZCBjb3JuZXJzLiAqLwogICAgICAudGlsZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICA6aG9zdChbb3ZlcnNjcm9sbD0iY29udGFpbiJdKSAudGlsZS1jb250ZW50IHsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAudGlsZS1jb250ZW50Lm5vLWZvb3RlciB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOwogICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOwogICAgICB9CgogICAgICAvKiAtLS0gRm9vdGVyOiBiYXJlIGNvbnRhaW5lciwgY29uc3VtZXIgc3R5bGVzIHRoZSBzbG90dGVkIGNvbnRlbnQgLS0tICovCiAgICAgIC50aWxlLWZvb3RlciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWZvb3Rlci5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW91dGVyIiBwYXJ0PSJvdXRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkZXIiIHBhcnQ9ImhlYWRlciI+CiAgICAgICAgICA8c2xvdCBuYW1lPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvZGl2PgogICAgICAgICAgPC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCAke3RoaXMuaGFzRm9vdGVyPyIiOiJuby1mb290ZXIifSIgcGFydD0iY29udGVudCI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1mb290ZXIgJHt0aGlzLmhhc0Zvb3Rlcj8iIjoiaGlkZGVuIn0iIHBhcnQ9ImZvb3RlciI+CiAgICAgICAgICA8c2xvdCBuYW1lPSJmb290ZXIiIEBzbG90Y2hhbmdlPSR7dGhpcy5vbkZvb3RlclNsb3RDaGFuZ2V9Pjwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfW9uRm9vdGVyU2xvdENoYW5nZShtKXtsZXQgZj1tLnRhcmdldDt0aGlzLmhhc0Zvb3Rlcj1mLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KS5sZW5ndGg+MH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTDgodGhpcyx2KX1zdGF0aWN7TDgoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEdsLHVpLFFhLEowPWcoKCk9PntHMSgpO3BvKCk7em4oKTtDcigpO0lkYSgpO3BlKCk7a3QoKTtGMSgpO1VhKCk7bnIoKTtwdCgpO0dsPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx1aT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLW1vZGFsIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXTt2YXIgdWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNNb2RhbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBsZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtZKHt9KV0sYz1bWSh7fSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7YXR0cmlidXRlOiExfSldLEs9W0woe3R5cGU6Qm9vbGVhbn0pXSxtZT1bTCh7dHlwZTpOdW1iZXJ9KV0saGU9W1koKV0sR2wodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJoZWFkaW5nImluIFEsImhhcyIpLGdldDppKFE9PlEuaGVhZGluZywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5oZWFkaW5nPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxvLGwpLEdsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iY29udGVudCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmNvbnRlbnQsImdldCIpLHNldDppKChRLGllKT0+e1EuY29udGVudD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sZCx1KSxHbCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtZW51T3B0aW9ucyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1lbnVPcHRpb25zLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLm1lbnVPcHRpb25zPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxiLHYpLEdsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+IndpZHRoImluIFEsImhhcyIpLGdldDppKFE9PlEud2lkdGgsImdldCIpLHNldDppKChRLGllKT0+e1Eud2lkdGg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LG0sZiksR2wodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWF4V2lkdGgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5tYXhXaWR0aCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tYXhXaWR0aD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sTSx6KSxHbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtaW5XaWR0aCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1pbldpZHRoLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLm1pbldpZHRoPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxDLF8pLEdsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0Nsb3NlQnV0dG9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaG93Q2xvc2VCdXR0b24iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zaG93Q2xvc2VCdXR0b24sImdldCIpLHNldDppKChRLGllKT0+e1Euc2hvd0Nsb3NlQnV0dG9uPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSwkLEUpLEdsKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0hlbHBCdXR0b24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNob3dIZWxwQnV0dG9uImluIFEsImhhcyIpLGdldDppKFE9PlEuc2hvd0hlbHBCdXR0b24sImdldCIpLHNldDppKChRLGllKT0+e1Euc2hvd0hlbHBCdXR0b249aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGssUyksR2wodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkhlbHAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Im9uSGVscCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm9uSGVscCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5vbkhlbHA9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LFAsUiksR2wodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVGdWxsc2NyZWVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtb2JpbGVGdWxsc2NyZWVuImluIFEsImhhcyIpLGdldDppKFE9PlEubW9iaWxlRnVsbHNjcmVlbiwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tb2JpbGVGdWxsc2NyZWVuPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxWLFcpLEdsKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRQYWRkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJjb250ZW50UGFkZGluZyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmNvbnRlbnRQYWRkaW5nLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmNvbnRlbnRQYWRkaW5nPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxCLFUpLEdsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGFsWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJtb2RhbFpJbmRleCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1vZGFsWkluZGV4LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLm1vZGFsWkluZGV4PWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxGLGopLEdsKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmxlfSxudWxsLHQpLHVlPWE9ZS52YWx1ZSxsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpsZX0pfXN0YXRpYyBkZW1vPVBkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhsZSl7bGV0IFE9ZG9jdW1lbnQuYm9keSxpZT1uZXcgdWU7cmV0dXJuIGllLmhlYWRpbmc9bGUuaGVhZGluZyxpZS5jb250ZW50PWxlLmNvbnRlbnQsaWUubWVudU9wdGlvbnM9bGUubWVudU9wdGlvbnMsbGUud2lkdGgmJihpZS53aWR0aD1sZS53aWR0aCksbGUubWF4V2lkdGgmJihpZS5tYXhXaWR0aD1sZS5tYXhXaWR0aCksbGUubWluV2lkdGgmJihpZS5taW5XaWR0aD1sZS5taW5XaWR0aCksbGUuc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoaWUuc2hvd0Nsb3NlQnV0dG9uPWxlLnNob3dDbG9zZUJ1dHRvbiksbGUuc2hvd0hlbHBCdXR0b24hPT12b2lkIDAmJihpZS5zaG93SGVscEJ1dHRvbj1sZS5zaG93SGVscEJ1dHRvbiksbGUub25IZWxwJiYoaWUub25IZWxwPWxlLm9uSGVscCksbGUubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKGllLm1vYmlsZUZ1bGxzY3JlZW49bGUubW9iaWxlRnVsbHNjcmVlbiksbGUuY29udGVudFBhZGRpbmchPT12b2lkIDAmJihpZS5jb250ZW50UGFkZGluZz1sZS5jb250ZW50UGFkZGluZyksaWUud2luZG93TGF5ZXI9YXdhaXQgaG8uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLGllLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57YXdhaXQgaWUuZGVzdHJveSgpfSksUS5hcHBlbmQoaWUud2luZG93TGF5ZXIpLFEuYXBwZW5kKGllKSxpZS5tb2RhbFpJbmRleD14YS5nZXROZXh0WkluZGV4KCkseGEucmVnaXN0ZXIoaWUsaWUubW9kYWxaSW5kZXgpLGllfSNlPXVpKHRoaXMsbywiIik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhsZSl7dGhpcy4jZT1sZX0jdD0odWkodGhpcyxsKSx1aSh0aGlzLGQsdm9pZCAwKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChsZSl7dGhpcy4jdD1sZX0jYT0odWkodGhpcyx1KSx1aSh0aGlzLGIsW10pKTtnZXQgbWVudU9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudU9wdGlvbnMobGUpe3RoaXMuI2E9bGV9I3M9KHVpKHRoaXMsdiksdWkodGhpcyxtLCJtZWRpdW0iKSk7Z2V0IHdpZHRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdpZHRoKGxlKXt0aGlzLiNzPWxlfSNpPSh1aSh0aGlzLGYpLHVpKHRoaXMsTSx2b2lkIDApKTtnZXQgbWF4V2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWF4V2lkdGgobGUpe3RoaXMuI2k9bGV9I3I9KHVpKHRoaXMseiksdWkodGhpcyxDLHZvaWQgMCkpO2dldCBtaW5XaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCBtaW5XaWR0aChsZSl7dGhpcy4jcj1sZX0jbz0odWkodGhpcyxfKSx1aSh0aGlzLCQsITApKTtnZXQgc2hvd0Nsb3NlQnV0dG9uKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dDbG9zZUJ1dHRvbihsZSl7dGhpcy4jbz1sZX0jbj0odWkodGhpcyxFKSx1aSh0aGlzLGssITEpKTtnZXQgc2hvd0hlbHBCdXR0b24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2hvd0hlbHBCdXR0b24obGUpe3RoaXMuI249bGV9I2w9KHVpKHRoaXMsUyksdWkodGhpcyxQLHZvaWQgMCkpO2dldCBvbkhlbHAoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb25IZWxwKGxlKXt0aGlzLiNsPWxlfSNjPSh1aSh0aGlzLFIpLHVpKHRoaXMsViwhMSkpO2dldCBtb2JpbGVGdWxsc2NyZWVuKCl7cmV0dXJuIHRoaXMuI2N9c2V0IG1vYmlsZUZ1bGxzY3JlZW4obGUpe3RoaXMuI2M9bGV9I2Q9KHVpKHRoaXMsVyksdWkodGhpcyxCLDE2KSk7Z2V0IGNvbnRlbnRQYWRkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNvbnRlbnRQYWRkaW5nKGxlKXt0aGlzLiNkPWxlfSN1PSh1aSh0aGlzLFUpLHVpKHRoaXMsRiwxZTMpKTtnZXQgbW9kYWxaSW5kZXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbW9kYWxaSW5kZXgobGUpe3RoaXMuI3U9bGV9Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSksIG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIG1hcmdpbjogNDBweDsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3gtc2hhZG93OgogICAgICAgICAgMCAwIDAgMXB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDMpIil9LAogICAgICAgICAgMCA4cHggNDBweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjEyKSIsImhzbCgwIDAlIDAlIC8gMC41KSIpfSwKICAgICAgICAgIDAgMnB4IDhweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA2KSIsImhzbCgwIDAlIDAlIC8gMC4yNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdpZHRoIHZhcmlhdGlvbnMgKi8KICAgICAgZGVlcy10aWxlLndpZHRoLXNtYWxsIHsKICAgICAgICB3aWR0aDogMzgwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS53aWR0aC1tZWRpdW0gewogICAgICAgIHdpZHRoOiA1NjBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLndpZHRoLWxhcmdlIHsKICAgICAgICB3aWR0aDogODAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS53aWR0aC1mdWxsc2NyZWVuIHsKICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpOwogICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgZGVlcy10aWxlIHsKICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCkgIWltcG9ydGFudDsKICAgICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIH0KCiAgICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDIwcHgpOwogICAgICAgIH0KCiAgICAgICAgZGVlcy10aWxlLm1vYmlsZS1mdWxsc2NyZWVuIHsKICAgICAgICAgIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICAgICAgbWF4LWhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICB9CgogICAgICAgIGRlZXMtdGlsZS5tb2JpbGUtZnVsbHNjcmVlbjo6cGFydChvdXRlcikgewogICAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zaG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNob3cucHJlZGVzdHJveSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSBzY2FsZSgwLjk4KTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjE1cyBlYXNlLWluOwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDE2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGluZy10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTIpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xMikiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBsZT10eXBlb2YgdGhpcy53aWR0aD09InN0cmluZyI/YHdpZHRoLSR7dGhpcy53aWR0aH1gOiIiLFE9dHlwZW9mIHRoaXMud2lkdGg9PSJudW1iZXIiP2Ake3RoaXMud2lkdGh9cHhgOiIiLGllPXRoaXMubWF4V2lkdGg/YCR7dGhpcy5tYXhXaWR0aH1weGA6IiIsdGU9dGhpcy5taW5XaWR0aD9gJHt0aGlzLm1pbldpZHRofXB4YDoiIixlZT10aGlzLm1vYmlsZUZ1bGxzY3JlZW4/Im1vYmlsZS1mdWxsc2NyZWVuIjoiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICR7UT9gZGVlcy10aWxlIHsgd2lkdGg6ICR7UX07IH1gOiIifQogICAgICAgICR7aWU/YGRlZXMtdGlsZSB7IG1heC13aWR0aDogJHtpZX07IH1gOiIifQogICAgICAgICR7dGU/YGRlZXMtdGlsZSB7IG1pbi13aWR0aDogJHt0ZX07IH1gOiIifQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtb2RhbENvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2t9IHN0eWxlPSJ6LWluZGV4OiAke3RoaXMubW9kYWxaSW5kZXh9Ij4KICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSIke2xlfSAke2VlfSIgLm92ZXJzY3JvbGw9JHsiY29udGFpbiJ9PgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy10ZXh0Ij4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5zaG93SGVscEJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVIZWxwfSB0aXRsZT0iSGVscCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmhlbHBDaXJjbGUifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dDbG9zZUJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuZGVzdHJveSgpfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6ICR7dGhpcy5jb250ZW50UGFkZGluZ31weDsiPiR7dGhpcy5jb250ZW50fTwvZGl2PgogICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYm90dG9tQnV0dG9ucyI+CiAgICAgICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLm1hcCgoa2UsWCk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke1g9PT10aGlzLm1lbnVPcHRpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0gJHtrZS5uYW1lPT09Ik9LIj8ib2siOiIifSIgQGNsaWNrPSR7KCk9PntrZS5hY3Rpb24odGhpcyl9fT4ke2tlLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI9dWkodGhpcyxqKTthc3luYyBmaXJzdFVwZGF0ZWQobGUpe3N1cGVyLmZpcnN0VXBkYXRlZChsZSksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKS5jbGFzc0xpc3QuYWRkKCJzaG93Iil9YXN5bmMgaGFuZGxlT3V0c2lkZUNsaWNrKGxlKXtsZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsQ29udGFpbmVyIik7bGUudGFyZ2V0PT09USYmYXdhaXQgdGhpcy5kZXN0cm95KCl9YXN5bmMgZGVzdHJveSgpe2xldCBsZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy10aWxlIikuY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IGxlLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjAwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHhhLnVucmVnaXN0ZXIodGhpcyl9YXN5bmMgaGFuZGxlSGVscCgpe3RoaXMub25IZWxwJiZhd2FpdCB0aGlzLm9uSGVscCgpfXN0YXRpY3t1aShhLHQpfX07cmV0dXJuIHVlPWF9KSgpfSk7dmFyIE9kYSxGZGE9ZygoKT0+e3BlKCk7T2RhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubGFiZWwtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmxhYmVsLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAubGFiZWwtcm93IC5hbm5vdGF0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM4ODgiLCIjNjY2Iil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJhc2ljIExhYmVsPC9oMz4KICAgICAgPHA+QSBzaW1wbGUgdGV4dCBsYWJlbCB3aXRoIG5vIGFkZGl0aW9uYWwgaW5kaWNhdG9ycy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+bGFiZWw9IlVzZXJuYW1lIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJVc2VybmFtZSJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSJFbWFpbCBBZGRyZXNzIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJFbWFpbCBBZGRyZXNzIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5SZXF1aXJlZCBJbmRpY2F0b3I8L2gzPgogICAgICA8cD5XaGVuIDxjb2RlPnJlcXVpcmVkPC9jb2RlPiBpcyBzZXQsIGEgcmVkIGFzdGVyaXNrIGFwcGVhcnMgYWZ0ZXIgdGhlIGxhYmVsIHRleHQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPnJlcXVpcmVkPSR7Int0cnVlfSJ9PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkZ1bGwgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZD0keyJ7ZmFsc2V9In0gKGRlZmF1bHQpPC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7Ik5pY2tuYW1lIn0gLnJlcXVpcmVkPSR7ITF9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW5mbyBUZXh0IChJbmZvIEljb24pPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5pbmZvVGV4dDwvY29kZT4gaXMgc2V0LCBhbiBpbmZvIGljb24gYXBwZWFycyBuZXh0IHRvIHRoZSBsYWJlbC4gSG92ZXIgb3ZlciBpdCB0byBzZWUgdGhlIHRvb2x0aXAuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmluZm9UZXh0PSIuLi4iPC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkFQSSBLZXkifSAuaW5mb1RleHQ9JHsiWW91ciBBUEkga2V5IGNhbiBiZSBmb3VuZCBpbiB0aGUgZGV2ZWxvcGVyIHNldHRpbmdzIGRhc2hib2FyZC4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5zaG9ydCBpbmZvVGV4dDwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJSZWdpb24ifSAuaW5mb1RleHQ9JHsiU2VsZWN0IHlvdXIgbmVhcmVzdCBkYXRhY2VudGVyLiJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVxdWlyZWQgKyBJbmZvIFRleHQ8L2gzPgogICAgICA8cD5Cb3RoIGluZGljYXRvcnMgY2FuIGJlIGNvbWJpbmVkLiBUaGUgYXN0ZXJpc2sgYXBwZWFycyBmaXJzdCwgdGhlbiB0aGUgaW5mbyBpY29uLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZCArIGluZm9UZXh0PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IlBhc3N3b3JkIn0gLnJlcXVpcmVkPSR7ITB9IC5pbmZvVGV4dD0keyJNdXN0IGJlIGF0IGxlYXN0IDggY2hhcmFjdGVycyB3aXRoIG9uZSB1cHBlcmNhc2UgbGV0dGVyIGFuZCBvbmUgbnVtYmVyLiJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPnJlcXVpcmVkICsgaW5mb1RleHQ8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9IC5yZXF1aXJlZD0keyEwfSAuaW5mb1RleHQ9JHsiV2Ugd2lsbCBzZW5kIGEgdmVyaWZpY2F0aW9uIGxpbmsgdG8gdGhpcyBhZGRyZXNzLiJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RW1wdHkgTGFiZWw8L2gzPgogICAgICA8cD5XaGVuIDxjb2RlPmxhYmVsPC9jb2RlPiBpcyBlbXB0eSBvciBub3Qgc2V0LCBub3RoaW5nIGlzIHJlbmRlcmVkLiBUaGUgZWxlbWVudCBiZWxvdyBoYXMgbm8gbGFiZWwgdGV4dDo8L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+bGFiZWw9IiIgKGVtcHR5KTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyIifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgbG5lLEU4LEJkYSxsdj1nKCgpPT57cG8oKTtHMSgpO3BlKCk7RmRhKCk7cHQoKTtsbmU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEU4PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxCZGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWxhYmVsIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNMYWJlbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxsbmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibGFiZWwiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5sYWJlbCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmxhYmVsPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxsbmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmZvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaW5mb1RleHQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5pbmZvVGV4dCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmluZm9UZXh0PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxsbmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4icmVxdWlyZWQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnJlcXVpcmVkPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxsbmUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1PZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiLCJJbnB1dCJdOyNlPUU4KHRoaXMsbywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKG0pe3RoaXMuI2U9bX0jdD0oRTgodGhpcyxsKSxFOCh0aGlzLGQsdm9pZCAwKSk7Z2V0IGluZm9UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZm9UZXh0KG0pe3RoaXMuI3Q9bX0jYT0oRTgodGhpcyx1KSxFOCh0aGlzLGIsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcmVxdWlyZWQobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnJlcXVpcmVkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24taWNvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgbWFyZ2luOiAtNnB4IDAgLTZweCAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbi1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA2KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24taWNvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5sYWJlbD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCI+CiAgICAgICAgICAgICAgJHt0aGlzLmxhYmVsfQogICAgICAgICAgICAgICR7dGhpcy5yZXF1aXJlZD93YDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+Kjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7dGhpcy5pbmZvVGV4dD93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uLWljb24iPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6aW5mbyJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1zcGVlY2hidWJibGU+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRTgodGhpcyx2KX1zdGF0aWN7RTgoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIGNuZSxOZXQ9ZygoKT0+e2NuZT0iMC41NS4xIn0pO3ZhciBjdixLMSxIZGEsUDg9ZygoKT0+e3BlKCk7a3QoKTtOZXQoKTtwdCgpO2N2PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSGRhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNb25hY28iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sY3YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjb250ZW50ImluIF8sImhhcyIpLGdldDppKF89Pl8uY29udGVudCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmNvbnRlbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGN2KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imxhbmd1YWdlImluIF8sImhhcyIpLGdldDppKF89Pl8ubGFuZ3VhZ2UsImdldCIpLHNldDppKChfLE8pPT57Xy5sYW5ndWFnZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksY3YodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZmlsZVBhdGgiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5maWxlUGF0aCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmZpbGVQYXRoPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxjdih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRTdWJqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjb250ZW50U3ViamVjdCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNvbnRlbnRTdWJqZWN0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY29udGVudFN1YmplY3Q9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGN2KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29yZFdyYXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+IndvcmRXcmFwImluIF8sImhhcyIpLGdldDppKF89Pl8ud29yZFdyYXAsImdldCIpLHNldDppKChfLE8pPT57Xy53b3JkV3JhcD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksY3YobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdvcmtzcGFjZS1tb25hY28+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIG1vbmFjb0RlZmVycmVkO2VkaXRvckRlZmVycmVkPXV0LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPUsxKHRoaXMsbyxgZnVuY3Rpb24gaGVsbG8oKSB7CglhbGVydCgnSGVsbG8gd29ybGQhJyk7Cn1gKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBjb250ZW50KEMpe3RoaXMuI2U9Q30jdD0oSzEodGhpcyxsKSxLMSh0aGlzLGQsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKEMpe3RoaXMuI3Q9Q30jYT0oSzEodGhpcyx1KSxLMSh0aGlzLGIsIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsZVBhdGgoQyl7dGhpcy4jYT1DfSNzPShLMSh0aGlzLHYpLEsxKHRoaXMsbSxuZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3QpKTtnZXQgY29udGVudFN1YmplY3QoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29udGVudFN1YmplY3QoQyl7dGhpcy4jcz1DfSNpPShLMSh0aGlzLGYpLEsxKHRoaXMsTSwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNpfXNldCB3b3JkV3JhcChDKXt0aGlzLiNpPUN9bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249KEsxKHRoaXMseiksbnVsbCk7aXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksamkuc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNjb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKEMpe3N1cGVyLmZpcnN0VXBkYXRlZChDKTtsZXQgXz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLE89YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke2NuZX1gO2lmKCFOLm1vbmFjb0RlZmVycmVkKXtOLm1vbmFjb0RlZmVycmVkPXV0LnNtYXJ0cHJvbWlzZS5kZWZlcigpO2xldCBrPWAke099L21pbi92cy9sb2FkZXIuanNgLFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Uy5zcmM9ayxTLm9ubG9hZD0oKT0+e04ubW9uYWNvRGVmZXJyZWQucmVzb2x2ZSgpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKFMpfWF3YWl0IE4ubW9uYWNvRGVmZXJyZWQucHJvbWlzZSx3aW5kb3cucmVxdWlyZS5jb25maWcoe3BhdGhzOnt2czpgJHtPfS9taW4vdnNgfX0pLHdpbmRvdy5yZXF1aXJlKFsidnMvZWRpdG9yL2VkaXRvci5tYWluIl0sYXN5bmMoKT0+e2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLEk9ay50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLFA9d2luZG93Lm1vbmFjbyxSPW51bGw7aWYodGhpcy5maWxlUGF0aCl7bGV0IFY9UC5VcmkucGFyc2UoYGZpbGU6Ly8ke3RoaXMuZmlsZVBhdGh9YCk7Uj1QLmVkaXRvci5nZXRNb2RlbChWKSxSP1Iuc2V0VmFsdWUodGhpcy5jb250ZW50KTpSPVAuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCx0aGlzLmxhbmd1YWdlLFYpfWxldCBLPVAuZWRpdG9yLmNyZWF0ZShfLHttb2RlbDpSfHx2b2lkIDAsdmFsdWU6Uj92b2lkIDA6dGhpcy5jb250ZW50LGxhbmd1YWdlOlI/dm9pZCAwOnRoaXMubGFuZ3VhZ2UsdGhlbWU6SSx1c2VTaGFkb3dET006ITAsZm9udFNpemU6MTYsYXV0b21hdGljTGF5b3V0OiEwLHdvcmRXcmFwOnRoaXMud29yZFdyYXAsaG92ZXI6e2VuYWJsZWQ6ITAsZGVsYXk6MzAwLHN0aWNreTohMCxhYm92ZTohMX19KTt0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPWsudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoVj0+e2xldCBXPVY/InZzIjoidnMtZGFyayI7Sy51cGRhdGVPcHRpb25zKHt0aGVtZTpXfSl9KSx0aGlzLmVkaXRvckRlZmVycmVkLnJlc29sdmUoSyl9KTtsZXQgJD1hd2FpdChhd2FpdCBmZXRjaChgJHtPfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0UudGV4dENvbnRlbnQ9JCx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kKEUpO2xldCBIPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtILm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KGFzeW5jIGs9PntpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwpcmV0dXJuO2xldCBTPUguZ2V0VmFsdWUoKTt0aGlzLmNvbnRlbnRTdWJqZWN0Lm5leHQoUyksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC1jaGFuZ2UiLHtkZXRhaWw6UyxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSksdGhpcy5jb250ZW50U3ViamVjdC5uZXh0KEguZ2V0VmFsdWUoKSl9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpO2xldCBfPXdpbmRvdy5tb25hY287aWYoXyl7aWYoQy5oYXMoImZpbGVQYXRoIikmJnRoaXMuZmlsZVBhdGgpe2xldCBPPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSwkPV8uVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApLEU9Xy5lZGl0b3IuZ2V0TW9kZWwoJCk7RT9FLmdldFZhbHVlKCkhPT10aGlzLmNvbnRlbnQmJih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsRS5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSk6RT1fLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSwkKSxPLmdldE1vZGVsKCk/LnVyaS50b1N0cmluZygpIT09JC50b1N0cmluZygpJiZPLnNldE1vZGVsKEUpO3JldHVybn1pZihDLmhhcygiY29udGVudCIpKXtsZXQgTz1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7Ty5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE8uc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpfWlmKEMuaGFzKCJsYW5ndWFnZSIpKXtsZXQgJD0oYXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpOyQmJl8uZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoJCx0aGlzLmxhbmd1YWdlKX19fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCl9YXN5bmMgc2V0Q29udGVudEV4dGVybmFsKEMsXz0hMCl7bGV0IE89YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO2lmKE8uZ2V0VmFsdWUoKT09PUMpcmV0dXJuO2xldCBFPV8/Ty5nZXRQb3NpdGlvbigpOm51bGwsSD1fP08uZ2V0U2VsZWN0aW9ucygpOm51bGwsaz1fP08uZ2V0U2Nyb2xsVG9wKCk6MCxTPV8/Ty5nZXRTY3JvbGxMZWZ0KCk6MDtpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsTy5zZXRWYWx1ZShDKSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEsXyl7aWYoRSl7bGV0IEk9Ty5nZXRNb2RlbCgpLFA9ST8uZ2V0TGluZUNvdW50KCl8fDEsUj1NYXRoLm1pbihFLmxpbmVOdW1iZXIsUCksSz1JPy5nZXRMaW5lTWF4Q29sdW1uKFIpfHwxLFY9TWF0aC5taW4oRS5jb2x1bW4sSyk7Ty5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpSLGNvbHVtbjpWfSl9aWYoSCYmSC5sZW5ndGg+MCl0cnl7Ty5zZXRTZWxlY3Rpb25zKEgpfWNhdGNoe31PLnNldFNjcm9sbFBvc2l0aW9uKHtzY3JvbGxUb3A6ayxzY3JvbGxMZWZ0OlN9KX19c3RhdGlje0sxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBUZCxLcixJOCxkbmUsUmV0PWcoKCk9Pnt6aSgpO3BlKCk7cHQoKTtKMCgpO1VhKCk7bHYoKTtucigpO1A4KCk7UDgoKTtUZD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sS3I9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEk4PVt7a2V5OiJ0eXBlc2NyaXB0IixsYWJlbDoiVHlwZVNjcmlwdCJ9LHtrZXk6ImphdmFzY3JpcHQiLGxhYmVsOiJKYXZhU2NyaXB0In0se2tleToianNvbiIsbGFiZWw6IkpTT04ifSx7a2V5OiJodG1sIixsYWJlbDoiSFRNTCJ9LHtrZXk6ImNzcyIsbGFiZWw6IkNTUyJ9LHtrZXk6InNjc3MiLGxhYmVsOiJTQ1NTIn0se2tleToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biJ9LHtrZXk6InlhbWwiLGxhYmVsOiJZQU1MIn0se2tleToieG1sIixsYWJlbDoiWE1MIn0se2tleToic3FsIixsYWJlbDoiU1FMIn0se2tleToicHl0aG9uIixsYWJlbDoiUHl0aG9uIn0se2tleToiamF2YSIsbGFiZWw6IkphdmEifSx7a2V5OiJjc2hhcnAiLGxhYmVsOiJDIyJ9LHtrZXk6ImNwcCIsbGFiZWw6IkMrKyJ9LHtrZXk6ImdvIixsYWJlbDoiR28ifSx7a2V5OiJydXN0IixsYWJlbDoiUnVzdCJ9LHtrZXk6InNoZWxsIixsYWJlbDoiU2hlbGwifSx7a2V5OiJwbGFpbnRleHQiLGxhYmVsOiJQbGFpbiBUZXh0In1dLGRuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtY29kZSIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdO3ZhciBLPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRDb2RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sVGQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmFsdWUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy52YWx1ZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy52YWx1ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxvLGwpLFRkKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Imxhbmd1YWdlImluIFcsImhhcyIpLGdldDppKFc9PlcubGFuZ3VhZ2UsImdldCIpLHNldDppKChXLG1lKT0+e1cubGFuZ3VhZ2U9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sZCx1KSxUZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaGVpZ2h0ImluIFcsImhhcyIpLGdldDppKFc9PlcuaGVpZ2h0LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmhlaWdodD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxiLHYpLFRkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29yZFdyYXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+IndvcmRXcmFwImluIFcsImhhcyIpLGdldDppKFc9Plcud29yZFdyYXAsImdldCIpLHNldDppKChXLG1lKT0+e1cud29yZFdyYXA9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbSxmKSxUZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5lTnVtYmVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ic2hvd0xpbmVOdW1iZXJzImluIFcsImhhcyIpLGdldDppKFc9Plcuc2hvd0xpbmVOdW1iZXJzLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLnNob3dMaW5lTnVtYmVycz1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxNLHopLFRkKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMYW5ndWFnZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaXNMYW5ndWFnZURyb3Bkb3duT3BlbiJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4sImdldCIpLHNldDppKChXLG1lKT0+e1cuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxDLF8pLFRkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29weVN1Y2Nlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImNvcHlTdWNjZXNzImluIFcsImhhcyIpLGdldDppKFc9PlcuY29weVN1Y2Nlc3MsImdldCIpLHNldDppKChXLG1lKT0+e1cuY29weVN1Y2Nlc3M9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sJCxFKSxUZCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ibGluZUNvdW50ImluIFcsImhhcyIpLGdldDppKFc9PlcubGluZUNvdW50LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmxpbmVDb3VudD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxrLFMpLFRkKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3Vyc29yUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImN1cnNvclBvc2l0aW9uImluIFcsImhhcyIpLGdldDppKFc9PlcuY3Vyc29yUG9zaXRpb24sImdldCIpLHNldDppKChXLG1lKT0+e1cuY3Vyc29yUG9zaXRpb249bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sUCxSKSxUZChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpWfSxudWxsLHQpLEs9YT1lLnZhbHVlLFYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Vn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1pbnB1dC1jb2RlCiAgICAgIGxhYmVsPSJUeXBlU2NyaXB0IENvZGUiCiAgICAgIGtleT0iY29kZSIKICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgIGhlaWdodD0iMzAwcHgiCiAgICAgIC52YWx1ZT0ke2Bjb25zdCBncmVldGluZzogc3RyaW5nID0gIkhlbGxvIFdvcmxkIjsKY29uc29sZS5sb2coZ3JlZXRpbmcpO2B9CiAgICA+PC9kZWVzLWlucHV0LWNvZGU+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiLCJXb3Jrc3BhY2UiXTsjZT1Lcih0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShWKXt0aGlzLiNlPVZ9I3Q9KEtyKHRoaXMsbCksS3IodGhpcyxkLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBsYW5ndWFnZShWKXt0aGlzLiN0PVZ9I2E9KEtyKHRoaXMsdSksS3IodGhpcyxiLCIyMDBweCIpKTtnZXQgaGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGhlaWdodChWKXt0aGlzLiNhPVZ9I3M9KEtyKHRoaXMsdiksS3IodGhpcyxtLCJvZmYiKSk7Z2V0IHdvcmRXcmFwKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdvcmRXcmFwKFYpe3RoaXMuI3M9Vn0jaT0oS3IodGhpcyxmKSxLcih0aGlzLE0sITApKTtnZXQgc2hvd0xpbmVOdW1iZXJzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dMaW5lTnVtYmVycyhWKXt0aGlzLiNpPVZ9I3I9KEtyKHRoaXMseiksS3IodGhpcyxDLCExKSk7Z2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNMYW5ndWFnZURyb3Bkb3duT3BlbihWKXt0aGlzLiNyPVZ9I289KEtyKHRoaXMsXyksS3IodGhpcywkLCExKSk7Z2V0IGNvcHlTdWNjZXNzKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvcHlTdWNjZXNzKFYpe3RoaXMuI289Vn0jbj0oS3IodGhpcyxFKSxLcih0aGlzLGssMCkpO2dldCBsaW5lQ291bnQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbGluZUNvdW50KFYpe3RoaXMuI249Vn0jbD0oS3IodGhpcyxTKSxLcih0aGlzLFAse2xpbmU6MSxjb2x1bW46MX0pKTtnZXQgY3Vyc29yUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3Vyc29yUG9zaXRpb24oVil7dGhpcy4jbD1WfWVkaXRvckVsZW1lbnQ9KEtyKHRoaXMsUiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC50b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1sZWZ0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXJpZ2h0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY28gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLyogTWF0Y2ggTW9uYWNvIGJhY2tncm91bmQgdG8gdGlsZSAqLwogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY286OnBhcnQoY29udGFpbmVyKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItZGl2aWRlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLyogRm9vdGVyICovCiAgICAgIC5lZGl0b3ItZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5mb290ZXItbGVmdCwKICAgICAgLmZvb3Rlci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmZvb3Rlci1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuY29kZS1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IFY9STguZmluZChXPT5XLmtleT09PXRoaXMubGFuZ3VhZ2UpfHxJOFswXTtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmhlaWdodH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259CiAgICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVMYW5ndWFnZUJsdXJ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Vi5sYWJlbH0KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAke3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgJHtJOC5tYXAoVz0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke1cua2V5PT09dGhpcy5sYW5ndWFnZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke21lPT50aGlzLnNlbGVjdExhbmd1YWdlKG1lLFcua2V5KX0KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHtXLmxhYmVsfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItcmlnaHQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMud29yZFdyYXA9PT0ib24iPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIHRpdGxlPSJXb3JkIFdyYXAiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZVdvcmRXcmFwfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOldyYXBUZXh0In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLnNob3dMaW5lTnVtYmVycz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iTGluZSBOdW1iZXJzIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMaW5lTnVtYmVyc30KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpIYXNoIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMuY29weVN1Y2Nlc3M/InN1Y2Nlc3MiOiIifSIKICAgICAgICAgICAgICAgIHRpdGxlPSJDb3B5IENvZGUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmNvcHlDb2RlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLmNvcHlTdWNjZXNzPyJsdWNpZGU6Q2hlY2siOiJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgdGl0bGU9IkV4cGFuZCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMub3BlbkZ1bGxzY3JlZW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6TWF4aW1pemUyIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy52YWx1ZX0KICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmxhbmd1YWdlfQogICAgICAgICAgICAgIC53b3JkV3JhcD0ke3RoaXMud29yZFdyYXB9CiAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlfQogICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1sZWZ0Ij4KICAgICAgICAgICAgICA8c3Bhbj5MbiAke3RoaXMuY3Vyc29yUG9zaXRpb24ubGluZX0sIENvbCAke3RoaXMuY3Vyc29yUG9zaXRpb24uY29sdW1ufTwvc3Bhbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItc2VwYXJhdG9yIj48L2Rpdj4KICAgICAgICAgICAgICA8c3Bhbj4ke3RoaXMubGluZUNvdW50fSBsaW5lJHt0aGlzLmxpbmVDb3VudCE9PTE/InMiOiIifTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1yaWdodCI+CiAgICAgICAgICAgICAgPHNwYW4+JHsoSTguZmluZChXPT5XLmtleT09PXRoaXMubGFuZ3VhZ2UpfHxJOFswXSkubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5lZGl0b3JFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQuY29udGVudFN1YmplY3Quc3Vic2NyaWJlKFU9Pnt0aGlzLnZhbHVlIT09VSYmKHRoaXMudmFsdWU9VSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9KTtsZXQgVj1hd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxXPVYuZ2V0TW9kZWwoKTtXJiYodGhpcy5saW5lQ291bnQ9Vy5nZXRMaW5lQ291bnQoKSxXLm9uRGlkQ2hhbmdlQ29udGVudCgoKT0+e3RoaXMubGluZUNvdW50PVcuZ2V0TGluZUNvdW50KCl9KSksVi5vbkRpZENoYW5nZUN1cnNvclBvc2l0aW9uKFU9Pnt0aGlzLmN1cnNvclBvc2l0aW9uPXtsaW5lOlUucG9zaXRpb24ubGluZU51bWJlcixjb2x1bW46VS5wb3NpdGlvbi5jb2x1bW59fSk7bGV0IG1lPWF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5kb210b29sc1Byb21pc2UsQj1pKFU9PntsZXQgaGU9VT8iI2ZmZmZmZiI6IiMwYTBhMGEiO1YudXBkYXRlT3B0aW9ucyh7fSksd2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWxpZ2h0Iix7YmFzZToidnMiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOmhlfX0pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1kYXJrIix7YmFzZToidnMtZGFyayIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6aGV9fSksVi51cGRhdGVPcHRpb25zKHt0aGVtZTpVPyJkZWVzLWxpZ2h0IjoiZGVlcy1kYXJrIn0pfSwidXBkYXRlRWRpdG9yQmciKTtCKG1lLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4pLG1lLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFU9PntCKFUpfSl9fXRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKXt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49IXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbn1oYW5kbGVMYW5ndWFnZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExfSwxNTApfWFzeW5jIHNlbGVjdExhbmd1YWdlKFYsVyl7aWYoVi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubGFuZ3VhZ2U9Vyx0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITEsdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2U9VztsZXQgQj0oYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7QiYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShCLFcpfX10b2dnbGVXb3JkV3JhcCgpe3RoaXMud29yZFdyYXA9dGhpcy53b3JkV3JhcD09PSJvbiI/Im9mZiI6Im9uIix0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigid29yZFdyYXAiLHRoaXMud29yZFdyYXApfXRvZ2dsZUxpbmVOdW1iZXJzKCl7dGhpcy5zaG93TGluZU51bWJlcnM9IXRoaXMuc2hvd0xpbmVOdW1iZXJzLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJsaW5lTnVtYmVycyIsdGhpcy5zaG93TGluZU51bWJlcnM/Im9uIjoib2ZmIil9YXN5bmMgdXBkYXRlRWRpdG9yT3B0aW9uKFYsVyl7dGhpcy5lZGl0b3JFbGVtZW50JiYoYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe1tWXTpXfSl9YXN5bmMgY29weUNvZGUoKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSksdGhpcy5jb3B5U3VjY2Vzcz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5jb3B5U3VjY2Vzcz0hMX0sMmUzKX1jYXRjaChWKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsVil9fWhhbmRsZUNvbnRlbnRDaGFuZ2UoVil7bGV0IFc9Vi5kZXRhaWw7dGhpcy52YWx1ZSE9PVcmJih0aGlzLnZhbHVlPVcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWFzeW5jIG9wZW5GdWxsc2NyZWVuKCl7bGV0IFY9dGhpcy52YWx1ZSxXPW51bGwsbWU9dGhpcy5sYW5ndWFnZSxCPXRoaXMud29yZFdyYXAsVT10aGlzLnNob3dMaW5lTnVtYmVycyxoZT0hMSxGPSExLGo9aSgoKT0+e2xldCBYPUk4LmZpbmQoWj0+Wi5rZXk9PT1tZSk7cmV0dXJuIFg/WC5sYWJlbDoiVHlwZVNjcmlwdCJ9LCJnZXRMYW5ndWFnZUxhYmVsIiksdWU9aShYPT57bGV0IFo9WC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwtdG9vbGJhciIpO2lmKCFaKXJldHVybjtsZXQgeWU9Wi5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIHNwYW4iKTt5ZSYmKHllLnRleHRDb250ZW50PWooKSk7bGV0IHE9Wi5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtxJiZxLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsQj09PSJvbiIpO2xldCBBPVoucXVlcnlTZWxlY3RvcigiLmxpbmVzLWJ0biIpO0EmJkEuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixVKTtsZXQgc2U9Wi5xdWVyeVNlbGVjdG9yKCIuY29weS1idG4iKSxvZT1zZT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7c2UmJm9lJiYoc2UuY2xhc3NMaXN0LnRvZ2dsZSgic3VjY2VzcyIsRiksb2UuaWNvbj1GPyJsdWNpZGU6Q2hlY2siOiJsdWNpZGU6Q29weSIpO2xldCBhZT1aLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO2FlJiYoYWUuc3R5bGUuZGlzcGxheT1oZT8iYmxvY2siOiJub25lIil9LCJ1cGRhdGVUb29sYmFyVUkiKSxsZT1pKFg9PntsZXQgWj1YLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1mb290ZXIiKTtpZighWilyZXR1cm47bGV0IHllPVoucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1jdXJzb3IiKSxxPVoucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1saW5lcyIpLEE9Wi5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyLWxhbmciKTt5ZSYmKHllLnRleHRDb250ZW50PWBMbiAke1F9LCBDb2wgJHtpZX1gKSxxJiYocS50ZXh0Q29udGVudD1gJHt0ZX0gbGluZSR7dGUhPT0xPyJzIjoiIn1gKSxBJiYoQS50ZXh0Q29udGVudD1qKCkpfSwidXBkYXRlRm9vdGVyVUkiKSxRPTEsaWU9MSx0ZT1WLnNwbGl0KGAKYCkubGVuZ3RoLGVlPWF3YWl0IFFhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6dGhpcy5sYWJlbHx8IkNvZGUgRWRpdG9yIix3aWR0aDoiZnVsbHNjcmVlbiIsY29udGVudFBhZGRpbmc6MCxjb250ZW50OndgCiAgICAgICAgPHN0eWxlPgogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWxlZnQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLXJpZ2h0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWRyb3Bkb3duIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgICAgICBjb2xvcjogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgICAgICB3aWR0aDogMXB4OwogICAgICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1mb290ZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLWxlZnQsCiAgICAgICAgICAubW9kYWwtZm9vdGVyIC5mb290ZXItcmlnaHQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZm9vdGVyIC5mb290ZXItc2VwYXJhdG9yIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4+JHtqKCl9PC9zcGFuPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICR7STgubWFwKFg9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2Utb3B0aW9uICR7WC5rZXk9PT1tZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBkYXRhLWxhbmc9IiR7WC5rZXl9IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtYLmxhYmVsfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIHdyYXAtYnRuICR7Qj09PSJvbiI/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iV29yZCBXcmFwIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBsaW5lcy1idG4gJHtVPyJhY3RpdmUiOiIifSIgdGl0bGU9IkxpbmUgTnVtYmVycyI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ0biIgdGl0bGU9IkNvcHkgQ29kZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAuY29udGVudD0ke1Z9CiAgICAgICAgICAgIC5sYW5ndWFnZT0ke21lfQogICAgICAgICAgICAud29yZFdyYXA9JHtCfQogICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbGVmdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXItY3Vyc29yIj5MbiAke1F9LCBDb2wgJHtpZX08L3NwYW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zZXBhcmF0b3IiPjwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxpbmVzIj4ke3RlfSBsaW5lJHt0ZSE9PTE/InMiOiIifTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXJpZ2h0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1sYW5nIj4ke2ooKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgWD0+e2F3YWl0IFguZGVzdHJveSgpfSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlICYgQ2xvc2UiLGFjdGlvbjppKGFzeW5jIFg9PntpZihXPVguc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksVyl7bGV0IHllPShhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZSh5ZSl9YXdhaXQgWC5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfSk7aWYoYXdhaXQgbmV3IFByb21pc2UoWD0+c2V0VGltZW91dChYLDEwMCkpLFc9ZWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksVyl7bGV0IFg9YXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLFo9YXdhaXQgVy5kb210b29sc1Byb21pc2UseWU9aShBPT57bGV0IHNlPUE/IiNmZmZmZmYiOiIjMGEwYTBhIjt3aW5kb3cubW9uYWNvPy5lZGl0b3I/LmRlZmluZVRoZW1lPy4oImRlZXMtbGlnaHQiLHtiYXNlOiJ2cyIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6c2V9fSksd2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWRhcmsiLHtiYXNlOiJ2cy1kYXJrIixpbmhlcml0OiEwLHJ1bGVzOltdLGNvbG9yczp7ImVkaXRvci5iYWNrZ3JvdW5kIjpzZX19KSxYLnVwZGF0ZU9wdGlvbnMoe3RoZW1lOkE/ImRlZXMtbGlnaHQiOiJkZWVzLWRhcmsifSl9LCJhcHBseU1vZGFsVGhlbWUiKTt5ZShaLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4pLFoudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoQT0+e3llKEEpfSksWC5vbkRpZENoYW5nZUN1cnNvclBvc2l0aW9uKEE9PntRPUEucG9zaXRpb24ubGluZU51bWJlcixpZT1BLnBvc2l0aW9uLmNvbHVtbixsZShlZSl9KTtsZXQgcT1YLmdldE1vZGVsKCk7cSYmKHRlPXEuZ2V0TGluZUNvdW50KCksbGUoZWUpLHEub25EaWRDaGFuZ2VDb250ZW50KCgpPT57dGU9cS5nZXRMaW5lQ291bnQoKSxsZShlZSl9KSl9bGV0IGtlPWVlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoa2Upe2xldCBYPWtlLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24iKTtYPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntoZT0haGUsdWUoZWUpfSk7bGV0IFo9a2UucXVlcnlTZWxlY3RvckFsbCgiLmxhbmd1YWdlLW9wdGlvbiIpO1ouZm9yRWFjaChzZT0+e3NlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IG9lPXNlLmRhdGFzZXQubGFuZztpZihvZSYmVyl7bWU9b2UsaGU9ITE7bGV0IFRlPShhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7VGUmJndpbmRvdy5tb25hY28uZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoVGUsb2UpLFouZm9yRWFjaChSZT0+UmUuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKSksc2UuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKSx1ZShlZSksbGUoZWUpfX0pfSksa2UucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57Qj1CPT09Im9uIj8ib2ZmIjoib24iLFcmJihhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe3dvcmRXcmFwOkJ9KSx1ZShlZSl9KSxrZS5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57VT0hVSxXJiYoYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHtsaW5lTnVtYmVyczpVPyJvbiI6Im9mZiJ9KSx1ZShlZSl9KSxrZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntpZihXKXtsZXQgb2U9KGF3YWl0IFcuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0VmFsdWUoKTt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQob2UpLEY9ITAsdWUoZWUpLHNldFRpbWVvdXQoKCk9PntGPSExLHVlKGVlKX0sMmUzKX1jYXRjaChhZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHkgY29kZToiLGFlKX19fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHNlPT57aGUmJiFYPy5jb250YWlucyhzZS50YXJnZXQpJiYoaGU9ITEsdWUoZWUpKX0se29uY2U6ITB9KX19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShWKXt0aGlzLnZhbHVlPVYsdGhpcy5lZGl0b3JFbGVtZW50JiYodGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnQ9Vix0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZS50aGVuKFc9PntXLmdldFZhbHVlKCkhPT1WJiZXLnNldFZhbHVlKFYpfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXN0YXRpY3tLcihhLHQpfX07cmV0dXJuIEs9YX0pKCl9KTt2YXIgcWRhLGpkYT1nKCgpPT57cGUoKTtJdCgpO2ZvKCk7T2V0KCk7cWRhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQogICAgICAKICAgICAgLmRhdGUtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwodD0+e2NvbnNvbGUubG9nKCJCYXNpYyBkYXRlIHNlbGVjdGVkOiIsdC50YXJnZXQudmFsdWUpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBEYXRlIFBpY2tlciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IlNlbGVjdCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNob29zZSBhIGRhdGUgZnJvbSB0aGUgY2FsZW5kYXIiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFdmVudCBEYXRlICYgVGltZSJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iQXBwb2ludG1lbnQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCByPWEudGFyZ2V0LnZhbHVlO2NvbnNvbGUubG9nKCIyNGggZm9ybWF0IGRhdGV0aW1lOiIscil9KSksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjEyaCBmb3JtYXQgZGF0ZXRpbWU6IixyKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBhbmQgVGltZSBTZWxlY3Rpb24ifSAuc3VidGl0bGU9JHsiRGF0ZSBwaWNrZXJzIHdpdGggdGltZSBzZWxlY3Rpb24gaW4gZGlmZmVyZW50IGZvcm1hdHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGF0ZSAmIFRpbWUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGJvdGggZGF0ZSBhbmQgdGltZSAoMjQtaG91ciBmb3JtYXQpIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjI0aCIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkFwcG9pbnRtZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IkRhdGUgYW5kIHRpbWUgd2l0aCBBTS9QTSBzZWxlY3RvciAoMTUtbWludXRlIGluY3JlbWVudHMpIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIC5taW51dGVJbmNyZW1lbnQ9JHsxNX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldDtjb25zb2xlLmxvZyhgJHtyLmxhYmVsfSB2YWx1ZTpgLHIudmFsdWUpO2xldCBuPXIuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgJHtyLmxhYmVsfSBmb3JtYXR0ZWQ6YCxuLnZhbHVlKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUaW1lem9uZSBTdXBwb3J0In0gLnN1YnRpdGxlPSR7IkRhdGUgYW5kIHRpbWUgc2VsZWN0aW9uIHdpdGggdGltZXpvbmUgYXdhcmVuZXNzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgVGltZSAod2l0aCBUaW1lem9uZSkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZS90aW1lIGFuZCB0aW1lem9uZSBmb3IgdGhlIG1lZXRpbmciCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgICB0aW1lem9uZT0iQW1lcmljYS9OZXdfWW9yayIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ikdsb2JhbCBFdmVudCBTY2hlZHVsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTY2hlZHVsZSBhbiBldmVudCBhY3Jvc3MgZGlmZmVyZW50IHRpbWV6b25lcyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIHRpbWV6b25lPSJFdXJvcGUvTG9uZG9uIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezMwfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwodD0+e2xldCBhPXQudGFyZ2V0LnZhbHVlO2lmKGEpe2xldCByPW5ldyBEYXRlKGEpLG49bmV3IERhdGUsbz1NYXRoLmZsb29yKChyLmdldFRpbWUoKS1uLmdldFRpbWUoKSkvKDFlMyo2MCo2MCoyNCkpO2NvbnNvbGUubG9nKGBTZWxlY3RlZCBkYXRlIGlzICR7b30gZGF5cyBmcm9tIHRvZGF5YCl9fSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIFJhbmdlIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7IkxpbWl0IHNlbGVjdGFibGUgZGF0ZXMgd2l0aCBtaW4gYW5kIG1heCB2YWx1ZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRnV0dXJlIERhdGUgT25seSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDYW4gb25seSBzZWxlY3QgZGF0ZXMgZnJvbSB0b2RheSB0byA5MCBkYXlzIGluIHRoZSBmdXR1cmUiCiAgICAgICAgICAubWluRGF0ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgIC5tYXhEYXRlPSR7bmV3IERhdGUoRGF0ZS5ub3coKSsyMTYwKjYwKjYwKjFlMykudG9JU09TdHJpbmcoKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9eyJERC9NTS9ZWVlZIjoiRXVyb3BlYW4iLCJNTS9ERC9ZWVlZIjoiVVMiLCJZWVlZLU1NLUREIjoiSVNPIn07cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHI9PntsZXQgbj1yLnRhcmdldCxvPW4uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtvJiZjb25zb2xlLmxvZyhgJHtuLmxhYmVsfSBmb3JtYXQ6YCxvLnZhbHVlKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIEZvcm1hdHMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGRhdGUgZGlzcGxheSBmb3JtYXRzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IkV1cm9wZWFuIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iREQvTU0vWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJVUyBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9Ik1NL0REL1lZWVkiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iSVNPIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iWVlZWS1NTS1ERCIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntlLmdldFZhbHVlKCl8fGNvbnNvbGUubG9nKCJSZXF1aXJlZCBkYXRlIGZpZWxkIGlzIGVtcHR5Iil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiUmVxdWlyZWQgYW5kIGRpc2FibGVkIHN0YXRlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJCaXJ0aCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiCiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWxlY3QgeW91ciBiaXJ0aCBkYXRlIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRGlzYWJsZWQgRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IlVTIENhbGVuZGFyIl0nKSx0PXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFVSBDYWxlbmRhciJdJyk7ZSYmY29uc29sZS5sb2coIlVTIENhbGVuZGFyIHN0YXJ0cyBvbiBTdW5kYXkgKDApIiksdCYmY29uc29sZS5sb2coIkVVIENhbGVuZGFyIHN0YXJ0cyBvbiBNb25kYXkgKDEpIil9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNhbGVuZGFyIEN1c3RvbWl6YXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHdlZWsgc3RhcnQgZGF5cyBmb3IgdmFyaW91cyByZWdpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJVUyBDYWxlbmRhciIKICAgICAgICAgICAgZGVzY3JpcHRpb249IldlZWsgc3RhcnRzIG9uIFN1bmRheSIKICAgICAgICAgICAgLndlZWtTdGFydHNPbj0kezB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IkVVIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gTW9uZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1pKCgpPT57bGV0IGE9W10scj1uZXcgRGF0ZSxuPXIuZ2V0RnVsbFllYXIoKSxvPXIuZ2V0TW9udGgoKSxsPW5ldyBEYXRlKG4sbywxKTtmb3IoO2wuZ2V0TW9udGgoKT09PW87KShsLmdldERheSgpPT09MHx8bC5nZXREYXkoKT09PTYpJiZhLnB1c2gobmV3IERhdGUobCkudG9JU09TdHJpbmcoKSksbC5zZXREYXRlKGwuZ2V0RGF0ZSgpKzEpO3JldHVybiBhfSwiZ2VuZXJhdGVXZWVrZW5kcyIpLHQ9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTt0JiYodC5kaXNhYmxlZERhdGVzPWUoKSxjb25zb2xlLmxvZygiRGlzYWJsZWQgd2Vla2VuZCBkYXRlcyBmb3IgY3VycmVudCBtb250aCIpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGlzYWJsZWQgRGF0ZXMifSAuc3VidGl0bGU9JHsiQ2FsZW5kYXIgd2l0aCBzcGVjaWZpYyBkYXRlcyBkaXNhYmxlZCAod2Vla2VuZHMgaW4gY3VycmVudCBtb250aCkifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXZhaWxhYmlsaXR5IENhbGVuZGFyIgogICAgICAgICAgZGVzY3JpcHRpb249IldlZWtlbmRzIGFyZSBkaXNhYmxlZCBmb3IgdGhlIGN1cnJlbnQgbW9udGgiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPW5ldyBEYXRlLHQ9ZS5nZXRNb250aCgpLGE9ZS5nZXRGdWxsWWVhcigpLHI9W3tkYXRlOmAke2F9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVGVhbSBNZWV0aW5nIix0eXBlOiJpbmZvIixjb3VudDoyfSx7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJQcm9qZWN0IERlYWRsaW5lIix0eXBlOiJ3YXJuaW5nIn0se2RhdGU6YCR7YX0tJHsodCsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUmVsZWFzZSBEYXkiLHR5cGU6InN1Y2Nlc3MifSx7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs1KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJVcmdlbnQgRml4IFJlcXVpcmVkIix0eXBlOiJlcnJvciJ9LHtkYXRlOmAke2F9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzcpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6Ik11bHRpcGxlIEV2ZW50cyBUb2RheSIsdHlwZToiaW5mbyIsY291bnQ6NX0se2RhdGU6YCR7YX0tJHsodCsyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tMTVgLHRpdGxlOiJGdXR1cmUgUGxhbm5pbmcgU2Vzc2lvbiIsdHlwZToiaW5mbyJ9XSxuPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7biYmKG4uZXZlbnRzPXIsY29uc29sZS5sb2coIkNhbGVuZGFyIGV2ZW50cyBsb2FkZWQ6IixyKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggRXZlbnRzIn0gLnN1YnRpdGxlPSR7IlZpc3VhbCBmZWVkYmFjayBmb3Igc2NoZWR1bGVkIGV2ZW50cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJEYXlzIHdpdGggY29sb3JlZCBkb3RzIGhhdmUgZXZlbnRzLiBIb3ZlciB0byBzZWUgZGV0YWlscy4iCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPHN0cm9uZz5FdmVudCBMZWdlbmQ6PC9zdHJvbmc+PGJyPgogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjMDk2OWRhOyI+4pePIEluZm88L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICNkMjk5MjI7Ij7il48gV2FybmluZzwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzJlYTA0MzsiPuKXjyBTdWNjZXNzPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjY2YyMjJlOyI+4pePIEVycm9yPC9zcGFuPjxicj4KICAgICAgICAgIDxlbT5EYXlzIHdpdGggbW9yZSB0aGFuIDMgZXZlbnRzIHNob3cgYSBjb3VudCBiYWRnZTwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKSx0PXMucXVlcnlTZWxlY3RvcigiI2V2ZW50LW91dHB1dCIpO2UmJnQmJihlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldCxuPXIudmFsdWU7aWYobil7bGV0IG89bmV3IERhdGUobikscD1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik/LnZhbHVlfHwiTi9BIjt0LmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPgogICAgICAgICAgICAgIElTTyBWYWx1ZTogJHtufTxicj4KICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7cH08YnI+CiAgICAgICAgICAgICAgRGF0ZSBvYmplY3Q6ICR7by50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgICBgfWVsc2UgdC5pbm5lckhUTUw9IjxlbT5EYXRlIGNsZWFyZWQ8L2VtPiJ9KSksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJEYXRlcGlja2VyIGxvc3QgZm9jdXMiKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRXZlbnQgSGFuZGxpbmcifSAuc3VidGl0bGU9JHsiSW50ZXJhY3RpdmUgZGVtb25zdHJhdGlvbiBvZiBjaGFuZ2UgZXZlbnRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IERlbW8iCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZSB0byBzZWUgdGhlIGV2ZW50IGRldGFpbHMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImV2ZW50LW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIDxlbT5TZWxlY3QgYSBkYXRlIHRvIHNlZSBldmVudCBkZXRhaWxzLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFZkYSxVZGE9ZygoKT0+e3BlKCk7emkoKTtWZGE9Wy4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmZvY3VzLAogICAgICAuZGF0ZS1pbnB1dC5vcGVuIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaWNvbi1jb250YWluZXIgPiAqIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CiAgICBgXX0pO3ZhciBXZGEsR2RhPWcoKCk9PntwZSgpO1dkYT1pKHM9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHtzLmxhYmVsfSAuaW5mb1RleHQ9JHtzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHtzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7cy5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke3MuZm9ybWF0RGF0ZShzLnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHtzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3MuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7cy50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke3MuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHtzLmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7cy5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7cy52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7cy52YWx1ZSYmIXMuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7cy5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3MucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYCwicmVuZGVyRGF0ZXBpY2tlciIpfSk7dmFyIFRyLFRhLHVuZSxGZXQ9ZygoKT0+e3BlKCk7a3QoKTt6bigpO3B0KCk7RjEoKTtVYSgpO1RyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdW5lPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyLXBvcHVwIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W10sR2UsRGU9W10sX2U9W107dmFyIENlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyUG9wdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgdmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7YXR0cmlidXRlOiExfSldLHA9W0woe2F0dHJpYnV0ZTohMX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpOdW1iZXJ9KV0sTj1bTCh7dHlwZTpOdW1iZXJ9KV0sTz1bTCh7dHlwZTpTdHJpbmd9KV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sST1bTCh7dHlwZTpBcnJheX0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W0woe3R5cGU6U3RyaW5nfSldLGhlPVtMKHt0eXBlOkFycmF5fSldLHVlPVtMKHt0eXBlOkJvb2xlYW59KV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sR2U9W1koKV0sVHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmlnZ2VyUmVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InRyaWdnZXJSZWN0ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudHJpZ2dlclJlY3QsImdldCIpLHNldDppKChiZSxFZSk9PntiZS50cmlnZ2VyUmVjdD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sbyxsKSxUcih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im93bmVyQ29tcG9uZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ib3duZXJDb21wb25lbnQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5vd25lckNvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm93bmVyQ29tcG9uZW50PUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxkLHUpLFRyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImVuYWJsZVRpbWUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5lbmFibGVUaW1lLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuZW5hYmxlVGltZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sYix2KSxUcih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0aW1lRm9ybWF0ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudGltZUZvcm1hdCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnRpbWVGb3JtYXQ9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LG0sZiksVHIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJtaW51dGVJbmNyZW1lbnQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5taW51dGVJbmNyZW1lbnQsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5taW51dGVJbmNyZW1lbnQ9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LE0seiksVHIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3ZWVrU3RhcnRzT24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ3ZWVrU3RhcnRzT24iaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS53ZWVrU3RhcnRzT24sImdldCIpLHNldDppKChiZSxFZSk9PntiZS53ZWVrU3RhcnRzT249RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LEMsXyksVHIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5EYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ibWluRGF0ZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLm1pbkRhdGUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5taW5EYXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSwkLEUpLFRyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im1heERhdGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5tYXhEYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWF4RGF0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sayxTKSxUcih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkRGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJkaXNhYmxlZERhdGVzImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZGlzYWJsZWREYXRlcywiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLmRpc2FibGVkRGF0ZXM9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFAsUiksVHIodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImVuYWJsZVRpbWV6b25lImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZW5hYmxlVGltZXpvbmUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5lbmFibGVUaW1lem9uZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sVixXKSxUcih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InRpbWV6b25lImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudGltZXpvbmUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS50aW1lem9uZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sQixVKSxUcih0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJldmVudHMiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5ldmVudHMsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5ldmVudHM9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LEYsaiksVHIodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbnNUb1RvcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im9wZW5zVG9Ub3AiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5vcGVuc1RvVG9wLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUub3BlbnNUb1RvcD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sbGUsUSksVHIodGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ic2VsZWN0ZWREYXRlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuc2VsZWN0ZWREYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuc2VsZWN0ZWREYXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSx0ZSxlZSksVHIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld0RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ2aWV3RGF0ZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnZpZXdEYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUudmlld0RhdGU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFgsWiksVHIodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ic2VsZWN0ZWRIb3VyImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuc2VsZWN0ZWRIb3VyLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuc2VsZWN0ZWRIb3VyPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxxLEEpLFRyKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkTWludXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ic2VsZWN0ZWRNaW51dGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zZWxlY3RlZE1pbnV0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnNlbGVjdGVkTWludXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxvZSxhZSksVHIodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im1lbnVaSW5kZXgiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5tZW51WkluZGV4LCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWVudVpJbmRleD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sUmUsQmUpLFRyKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ2aXNpYmxlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUudmlzaWJsZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnZpc2libGU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LERlLF9lKSxUcihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp2ZX0sbnVsbCx0KSxDZT1hPWUudmFsdWUsdmUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dmV9KX0jZT1UYSh0aGlzLG8sbnVsbCk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRyaWdnZXJSZWN0KHZlKXt0aGlzLiNlPXZlfSN0PShUYSh0aGlzLGwpLFRhKHRoaXMsZCxudWxsKSk7Z2V0IG93bmVyQ29tcG9uZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IG93bmVyQ29tcG9uZW50KHZlKXt0aGlzLiN0PXZlfSNhPShUYSh0aGlzLHUpLFRhKHRoaXMsYiwhMSkpO2dldCBlbmFibGVUaW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVuYWJsZVRpbWUodmUpe3RoaXMuI2E9dmV9I3M9KFRhKHRoaXMsdiksVGEodGhpcyxtLCIyNGgiKSk7Z2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGltZUZvcm1hdCh2ZSl7dGhpcy4jcz12ZX0jaT0oVGEodGhpcyxmKSxUYSh0aGlzLE0sMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWludXRlSW5jcmVtZW50KHZlKXt0aGlzLiNpPXZlfSNyPShUYSh0aGlzLHopLFRhKHRoaXMsQywxKSk7Z2V0IHdlZWtTdGFydHNPbigpe3JldHVybiB0aGlzLiNyfXNldCB3ZWVrU3RhcnRzT24odmUpe3RoaXMuI3I9dmV9I289KFRhKHRoaXMsXyksVGEodGhpcywkLCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWluRGF0ZSh2ZSl7dGhpcy4jbz12ZX0jbj0oVGEodGhpcyxFKSxUYSh0aGlzLGssIiIpKTtnZXQgbWF4RGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhEYXRlKHZlKXt0aGlzLiNuPXZlfSNsPShUYSh0aGlzLFMpLFRhKHRoaXMsUCxbXSkpO2dldCBkaXNhYmxlZERhdGVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGRpc2FibGVkRGF0ZXModmUpe3RoaXMuI2w9dmV9I2M9KFRhKHRoaXMsUiksVGEodGhpcyxWLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGVuYWJsZVRpbWV6b25lKHZlKXt0aGlzLiNjPXZlfSNkPShUYSh0aGlzLFcpLFRhKHRoaXMsQixJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUpKTtnZXQgdGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgdGltZXpvbmUodmUpe3RoaXMuI2Q9dmV9I3U9KFRhKHRoaXMsVSksVGEodGhpcyxGLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiN1fXNldCBldmVudHModmUpe3RoaXMuI3U9dmV9I3A9KFRhKHRoaXMsaiksVGEodGhpcyxsZSwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG9wZW5zVG9Ub3AodmUpe3RoaXMuI3A9dmV9I2g9KFRhKHRoaXMsUSksVGEodGhpcyx0ZSxudWxsKSk7Z2V0IHNlbGVjdGVkRGF0ZSgpe3JldHVybiB0aGlzLiNofXNldCBzZWxlY3RlZERhdGUodmUpe3RoaXMuI2g9dmV9I2Y9KFRhKHRoaXMsZWUpLFRhKHRoaXMsWCxuZXcgRGF0ZSkpO2dldCB2aWV3RGF0ZSgpe3JldHVybiB0aGlzLiNmfXNldCB2aWV3RGF0ZSh2ZSl7dGhpcy4jZj12ZX0jbT0oVGEodGhpcyxaKSxUYSh0aGlzLHEsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWRIb3VyKHZlKXt0aGlzLiNtPXZlfSNnPShUYSh0aGlzLEEpLFRhKHRoaXMsb2UsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZE1pbnV0ZSh2ZSl7dGhpcy4jZz12ZX0jYj0oVGEodGhpcyxhZSksVGEodGhpcyxSZSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNifXNldCBtZW51WkluZGV4KHZlKXt0aGlzLiNiPXZlfSN2PShUYSh0aGlzLEJlKSxUYSh0aGlzLERlLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgdmlzaWJsZSh2ZSl7dGhpcy4jdj12ZX13aW5kb3dMYXllcj0oVGEodGhpcyxfZSksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgNHB4IDZweCAtNHB4IGhzbCgwIDAlIDAlIC8gMC4xKSIsIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjIpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLnRvcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC5zaG93IHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogQ2FsZW5kYXIgSGVhZGVyICovCiAgICAgIC5jYWxlbmRhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLm1vbnRoLXllYXItZGlzcGxheSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLyogV2Vla2RheSBoZWFkZXJzICovCiAgICAgIC53ZWVrZGF5cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLndlZWtkYXkgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwYWRkaW5nOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIERheXMgZ3JpZCAqLwogICAgICAuZGF5cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5kYXkgewogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZGF5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF5Lm90aGVyLW1vbnRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kYXkudG9kYXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5kaXNhYmxlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC8qIEV2ZW50IGluZGljYXRvcnMgKi8KICAgICAgLmV2ZW50LWluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdCB7CiAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5pbmZvIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTEgNzAlIDUyJSkiLCJoc2woMjExIDcwJSA2MiUpIil9OyB9CiAgICAgIC5ldmVudC1kb3Qud2FybmluZyB7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTAlIDQ1JSkiLCJoc2woNDUgOTAlIDU1JSkiKX07IH0KICAgICAgLmV2ZW50LWRvdC5zdWNjZXNzIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIgNjklIDQ1JSkiLCJoc2woMTQyIDY5JSA1NSUpIil9OyB9CiAgICAgIC5ldmVudC1kb3QuZXJyb3IgeyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsgfQoKICAgICAgLmV2ZW50LWNvdW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgcmlnaHQ6IDJweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgNTElKSIsImhzbCgwIDcyJSA2MSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZXZlbnQtdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgOHB4KTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuZGF5Lmhhcy1ldmVudDpob3ZlciAuZXZlbnQtdG9vbHRpcCB7IG9wYWNpdHk6IDE7IH0KCiAgICAgIC8qIFRpbWUgc2VsZWN0b3IgKi8KICAgICAgLnRpbWUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXRzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0IHsKICAgICAgICB3aWR0aDogNjVweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VwYXJhdG9yIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLXNlbGVjdG9yIHsgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7IG1hcmdpbi1sZWZ0OiA4cHg7IH0KCiAgICAgIC5hbS1wbS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b246aG92ZXI6bm90KC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbWV6b25lIHNlbGVjdG9yICovCiAgICAgIC50aW1lem9uZS1zZWxlY3RvciB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAvKiBBY3Rpb24gYnV0dG9ucyAqLwogICAgICAuY2FsZW5kYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWFjdGlvbi1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDMwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQogICAgYF07c3RhdGljIE1PTlRIX05BTUVTPVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXTtzdGF0aWMgVElNRVpPTkVTPVt7dmFsdWU6IlVUQyIsbGFiZWw6IlVUQyAoQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUpIn0se3ZhbHVlOiJBbWVyaWNhL05ld19Zb3JrIixsYWJlbDoiRWFzdGVybiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvQ2hpY2FnbyIsbGFiZWw6IkNlbnRyYWwgVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0RlbnZlciIsbGFiZWw6Ik1vdW50YWluIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9Mb3NfQW5nZWxlcyIsbGFiZWw6IlBhY2lmaWMgVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJFdXJvcGUvTG9uZG9uIixsYWJlbDoiTG9uZG9uIn0se3ZhbHVlOiJFdXJvcGUvUGFyaXMiLGxhYmVsOiJQYXJpcyJ9LHt2YWx1ZToiRXVyb3BlL0JlcmxpbiIsbGFiZWw6IkJlcmxpbiJ9LHt2YWx1ZToiRXVyb3BlL01vc2NvdyIsbGFiZWw6Ik1vc2NvdyJ9LHt2YWx1ZToiQXNpYS9EdWJhaSIsbGFiZWw6IkR1YmFpIn0se3ZhbHVlOiJBc2lhL0tvbGthdGEiLGxhYmVsOiJJbmRpYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1NoYW5naGFpIixsYWJlbDoiQ2hpbmEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9Ub2t5byIsbGFiZWw6IlRva3lvIn0se3ZhbHVlOiJBdXN0cmFsaWEvU3lkbmV5IixsYWJlbDoiU3lkbmV5In0se3ZhbHVlOiJQYWNpZmljL0F1Y2tsYW5kIixsYWJlbDoiQXVja2xhbmQifV07cmVuZGVyKCl7aWYoIXRoaXMudHJpZ2dlclJlY3QpcmV0dXJuIHdgYDtsZXQgdmU9dGhpcy5jb21wdXRlUG9zaXRpb25TdHlsZSgpLGJlPXRoaXMud2Vla1N0YXJ0c09uPT09MT9bIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSIsIlN1Il06WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLEVlPXRoaXMuZ2V0RGF5c0luTW9udGgoKSxqZT10aGlzLnNlbGVjdGVkSG91cjwxMjtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJjYWxlbmRhci1wb3B1cCAke3RoaXMudmlzaWJsZT8ic2hvdyI6IiJ9ICR7dGhpcy5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSIKICAgICAgICBzdHlsZT0iJHt2ZX07IHotaW5kZXg6ICR7dGhpcy5tZW51WkluZGV4fTsiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1oZWFkZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5wcmV2aW91c01vbnRofT4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvbkxlZnQiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1vbnRoLXllYXItZGlzcGxheSI+CiAgICAgICAgICAgICR7Q2UuTU9OVEhfTkFNRVNbdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpXX0gJHt0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3RoaXMubmV4dE1vbnRofT4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvblJpZ2h0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IndlZWtkYXlzIj4KICAgICAgICAgICR7YmUubWFwKFdlPT53YDxkaXYgY2xhc3M9IndlZWtkYXkiPiR7V2V9PC9kaXY+YCl9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRheXMtZ3JpZCI+CiAgICAgICAgICAke0VlLm1hcChXZT0+e2xldCBzdD10aGlzLmlzVG9kYXkoV2UpLE1lPXRoaXMuaXNTZWxlY3RlZChXZSksZ2U9V2UuZ2V0TW9udGgoKSE9PXRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSxJZT10aGlzLmlzRGF5RGlzYWJsZWQoV2UpLGNlPXRoaXMuZ2V0RXZlbnRzRm9yRGF0ZShXZSksZGU9Y2UubGVuZ3RoPjAsTGU9Y2UucmVkdWNlKChLZSxZZSk9PktlKyhZZS5jb3VudHx8MSksMCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImRheSAke2dlPyJvdGhlci1tb250aCI6IiJ9ICR7c3Q/InRvZGF5IjoiIn0gJHtNZT8ic2VsZWN0ZWQiOiIifSAke0llPyJkaXNhYmxlZCI6IiJ9ICR7ZGU/Imhhcy1ldmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFJZSYmdGhpcy5oYW5kbGVTZWxlY3REYXRlKFdlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1dlLmdldERhdGUoKX0KICAgICAgICAgICAgICAgICR7ZGU/d2AKICAgICAgICAgICAgICAgICAgJHtMZT4zP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtY291bnQiPiR7TGV9PC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgICAgICAgJHtjZS5zbGljZSgwLDMpLm1hcChLZT0+d2AKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtZG90ICR7S2UudHlwZXx8ImluZm8ifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgJHtjZVswXS50aXRsZT93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LXRvb2x0aXAiPgogICAgICAgICAgICAgICAgICAgICAgJHtjZVswXS50aXRsZX0KICAgICAgICAgICAgICAgICAgICAgICR7TGU+MT93YCAoKyR7TGUtMX0gbW9yZSlgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuZW5hYmxlVGltZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3ItdGl0bGUiPlRpbWU8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1pbnB1dHMiPgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJ0aW1lLWlucHV0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/KHRoaXMuc2VsZWN0ZWRIb3VyPT09MD8xMjp0aGlzLnNlbGVjdGVkSG91cj4xMj90aGlzLnNlbGVjdGVkSG91ci0xMjp0aGlzLnNlbGVjdGVkSG91cikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIik6dGhpcy5zZWxlY3RlZEhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUhvdXJJbnB1dH0KICAgICAgICAgICAgICAgIG1pbj0iJHt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj8xOjB9IgogICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudGltZUZvcm1hdD09PSIxMmgiPzEyOjIzfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLXNlcGFyYXRvciI+Ojwvc3Bhbj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0idGltZS1pbnB1dCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VsZWN0ZWRNaW51dGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZU1pbnV0ZUlucHV0fQogICAgICAgICAgICAgICAgbWluPSIwIiBtYXg9IjU5IiBzdGVwPSIke3RoaXMubWludXRlSW5jcmVtZW50fHwxfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtLXBtLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYW0tcG0tYnV0dG9uICR7amU/InNlbGVjdGVkIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnNldEFNUE0oImFtIil9PkFNPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFtLXBtLWJ1dHRvbiAke2plPyIiOiJzZWxlY3RlZCJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5zZXRBTVBNKCJwbSIpfT5QTTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZW5hYmxlVGltZXpvbmU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3ItdGl0bGUiPlRpbWV6b25lPC9kaXY+CiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9InRpbWV6b25lLXNlbGVjdCIgLnZhbHVlPSR7dGhpcy50aW1lem9uZX0gQGNoYW5nZT0ke3RoaXMuaGFuZGxlVGltZXpvbmVDaGFuZ2V9PgogICAgICAgICAgICAgICR7Q2UuVElNRVpPTkVTLm1hcChXZT0+d2AKICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiR7V2UudmFsdWV9IiA/c2VsZWN0ZWQ9JHtXZS52YWx1ZT09PXRoaXMudGltZXpvbmV9PiR7V2UubGFiZWx9PC9vcHRpb24+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHRvZGF5LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWxlY3RUb2RheX0+VG9kYXk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gY2xlYXItYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhcn0+Q2xlYXI8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbXB1dGVQb3NpdGlvblN0eWxlKCl7bGV0IHZlPXRoaXMudHJpZ2dlclJlY3QsYmU9dmUubGVmdDtpZih0aGlzLm9wZW5zVG9Ub3Ape2xldCBFZT13aW5kb3cuaW5uZXJIZWlnaHQtdmUudG9wKzQ7cmV0dXJuYGxlZnQ6ICR7YmV9cHg7IGJvdHRvbTogJHtFZX1weDsgdG9wOiBhdXRvYH1lbHNle2xldCBFZT12ZS5ib3R0b20rNDtyZXR1cm5gbGVmdDogJHtiZX1weDsgdG9wOiAke0VlfXB4YH19Z2V0RGF5c0luTW9udGgoKXtsZXQgdmU9dGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLGJlPXRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSxFZT1uZXcgRGF0ZSh2ZSxiZSwxKSxqZT1uZXcgRGF0ZSh2ZSxiZSsxLDApLFdlPVtdLHN0PXRoaXMud2Vla1N0YXJ0c09uPT09MT9FZS5nZXREYXkoKT09PTA/NjpFZS5nZXREYXkoKS0xOkVlLmdldERheSgpO2ZvcihsZXQgZ2U9c3Q7Z2U+MDtnZS0tKVdlLnB1c2gobmV3IERhdGUodmUsYmUsMS1nZSkpO2ZvcihsZXQgZ2U9MTtnZTw9amUuZ2V0RGF0ZSgpO2dlKyspV2UucHVzaChuZXcgRGF0ZSh2ZSxiZSxnZSkpO2xldCBNZT00Mi1XZS5sZW5ndGg7Zm9yKGxldCBnZT0xO2dlPD1NZTtnZSsrKVdlLnB1c2gobmV3IERhdGUodmUsYmUrMSxnZSkpO3JldHVybiBXZX1pc1RvZGF5KHZlKXtsZXQgYmU9bmV3IERhdGU7cmV0dXJuIHZlLmdldERhdGUoKT09PWJlLmdldERhdGUoKSYmdmUuZ2V0TW9udGgoKT09PWJlLmdldE1vbnRoKCkmJnZlLmdldEZ1bGxZZWFyKCk9PT1iZS5nZXRGdWxsWWVhcigpfWlzU2VsZWN0ZWQodmUpe3JldHVybiB0aGlzLnNlbGVjdGVkRGF0ZT92ZS5nZXREYXRlKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkmJnZlLmdldE1vbnRoKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpJiZ2ZS5nZXRGdWxsWWVhcigpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKTohMX1pc0RheURpc2FibGVkKHZlKXtpZih0aGlzLm1pbkRhdGUpe2xldCBiZT1uZXcgRGF0ZSh0aGlzLm1pbkRhdGUpO2lmKHZlPGJlKXJldHVybiEwfWlmKHRoaXMubWF4RGF0ZSl7bGV0IGJlPW5ldyBEYXRlKHRoaXMubWF4RGF0ZSk7aWYodmU+YmUpcmV0dXJuITB9cmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcz8ubGVuZ3RoP3RoaXMuZGlzYWJsZWREYXRlcy5zb21lKGJlPT57dHJ5e2xldCBFZT1uZXcgRGF0ZShiZSk7cmV0dXJuIHZlLmdldERhdGUoKT09PUVlLmdldERhdGUoKSYmdmUuZ2V0TW9udGgoKT09PUVlLmdldE1vbnRoKCkmJnZlLmdldEZ1bGxZZWFyKCk9PT1FZS5nZXRGdWxsWWVhcigpfWNhdGNoe3JldHVybiExfX0pOiExfWdldEV2ZW50c0ZvckRhdGUodmUpe2lmKCF0aGlzLmV2ZW50cz8ubGVuZ3RoKXJldHVybltdO2xldCBiZT1gJHt2ZS5nZXRGdWxsWWVhcigpfS0keyh2ZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke3ZlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gO3JldHVybiB0aGlzLmV2ZW50cy5maWx0ZXIoRWU9PkVlLmRhdGU9PT1iZSl9cHJldmlvdXNNb250aCgpe3RoaXMudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLHRoaXMudmlld0RhdGUuZ2V0TW9udGgoKS0xLDEpfW5leHRNb250aCgpe3RoaXMudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLHRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSsxLDEpfWhhbmRsZVNlbGVjdERhdGUodmUpe3RoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHZlLmdldEZ1bGxZZWFyKCksdmUuZ2V0TW9udGgoKSx2ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSx0aGlzLmVuYWJsZVRpbWV8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9aGFuZGxlU2VsZWN0VG9kYXkoKXtsZXQgdmU9bmV3IERhdGU7dGhpcy5zZWxlY3RlZERhdGU9dmUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh2ZSksdGhpcy5zZWxlY3RlZEhvdXI9dmUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXZlLmdldE1pbnV0ZXMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLXNlbGVjdGVkIix7ZGV0YWlsOnRoaXMuc2VsZWN0ZWREYXRlfSkpLHRoaXMuZW5hYmxlVGltZXx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX1oYW5kbGVDbGVhcigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRhdGUtY2xlYXJlZCIpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfWhhbmRsZUhvdXJJbnB1dD1pKHZlPT57bGV0IGJlPXZlLnRhcmdldCxFZT1wYXJzZUludChiZS52YWx1ZSl8fDA7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/KEVlPU1hdGgubWF4KDEsTWF0aC5taW4oMTIsRWUpKSx0aGlzLnNlbGVjdGVkSG91cj49MTImJkVlIT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9RWUrMTI6dGhpcy5zZWxlY3RlZEhvdXI8MTImJkVlPT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9MDp0aGlzLnNlbGVjdGVkSG91cj1FZSk6dGhpcy5zZWxlY3RlZEhvdXI9TWF0aC5tYXgoMCxNYXRoLm1pbigyMyxFZSkpLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZUhvdXJJbnB1dCIpO2hhbmRsZU1pbnV0ZUlucHV0PWkodmU9PntsZXQgYmU9dmUudGFyZ2V0LEVlPXBhcnNlSW50KGJlLnZhbHVlKXx8MDtFZT1NYXRoLm1heCgwLE1hdGgubWluKDU5LEVlKSksdGhpcy5taW51dGVJbmNyZW1lbnQ+MSYmKEVlPU1hdGgucm91bmQoRWUvdGhpcy5taW51dGVJbmNyZW1lbnQpKnRoaXMubWludXRlSW5jcmVtZW50KSx0aGlzLnNlbGVjdGVkTWludXRlPUVlLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZU1pbnV0ZUlucHV0Iik7c2V0QU1QTSh2ZSl7dmU9PT0iYW0iJiZ0aGlzLnNlbGVjdGVkSG91cj49MTI/dGhpcy5zZWxlY3RlZEhvdXItPTEyOnZlPT09InBtIiYmdGhpcy5zZWxlY3RlZEhvdXI8MTImJih0aGlzLnNlbGVjdGVkSG91cis9MTIpLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX1oYW5kbGVUaW1lem9uZUNoYW5nZT1pKHZlPT57dGhpcy50aW1lem9uZT12ZS50YXJnZXQudmFsdWUsdGhpcy5lbWl0VGltZVVwZGF0ZSgpfSwiaGFuZGxlVGltZXpvbmVDaGFuZ2UiKTtlbWl0VGltZVVwZGF0ZSgpe3RoaXMuc2VsZWN0ZWREYXRlJiYodGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpLHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLXNlbGVjdGVkIix7ZGV0YWlsOnRoaXMuc2VsZWN0ZWREYXRlfSkpKX1hc3luYyBzaG93KCl7dGhpcy53aW5kb3dMYXllcj1hd2FpdCBoby5jcmVhdGVBbmRTaG93KCksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfSksdGhpcy5tZW51WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzKSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtwYXNzaXZlOiEwfSl9YXN5bmMgaGlkZSgpe3RoaXMuaXNEZXN0cm95aW5nfHwodGhpcy5pc0Rlc3Ryb3lpbmc9ITAsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMH0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUpLHhhLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmKHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMud2luZG93TGF5ZXI9bnVsbCksdGhpcy52aXNpYmxlPSExLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLmlzRGVzdHJveWluZz0hMSl9aGFuZGxlU2Nyb2xsT3JSZXNpemU9aSgoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcG9zaXRpb24tcmVxdWVzdCIpKX0sImhhbmRsZVNjcm9sbE9yUmVzaXplIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx4YS51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tUYShhLHQpfX07cmV0dXJuIENlPWF9KSgpfSk7dmFyIFlyLFdhLHBuZSxPZXQ9ZygoKT0+e3BlKCk7emkoKTtqZGEoKTtVZGEoKTtHZGEoKTtGZXQoKTtVYSgpO2x2KCk7WXI9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFdhPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxwbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXTt2YXIgR2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dERhdGVwaWNrZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpCb29sZWFufSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6QXJyYXl9KV0sST1bTCh7dHlwZTpOdW1iZXJ9KV0sSz1bTCh7dHlwZTpTdHJpbmd9KV0sbWU9W0woe3R5cGU6Qm9vbGVhbn0pXSxoZT1bTCh7dHlwZTpTdHJpbmd9KV0sdWU9W0woe3R5cGU6QXJyYXl9KV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sWXIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InZhbHVlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UudmFsdWUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS52YWx1ZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sbyxsKSxZcih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJlbmFibGVUaW1lImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZW5hYmxlVGltZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmVuYWJsZVRpbWU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGQsdSksWXIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idGltZUZvcm1hdCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnRpbWVGb3JtYXQsImdldCIpLHNldDppKChfZSxDZSk9PntfZS50aW1lRm9ybWF0PUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxiLHYpLFlyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWludXRlSW5jcmVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ibWludXRlSW5jcmVtZW50ImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UubWludXRlSW5jcmVtZW50LCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UubWludXRlSW5jcmVtZW50PUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxtLGYpLFlyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0ZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImRhdGVGb3JtYXQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5kYXRlRm9ybWF0LCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UuZGF0ZUZvcm1hdD1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sTSx6KSxZcih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkRhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJtaW5EYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UubWluRGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLm1pbkRhdGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEMsXyksWXIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ibWF4RGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLm1heERhdGUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5tYXhEYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSwkLEUpLFlyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWREYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImRpc2FibGVkRGF0ZXMiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5kaXNhYmxlZERhdGVzLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UuZGlzYWJsZWREYXRlcz1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sayxTKSxZcih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndlZWtTdGFydHNPbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+IndlZWtTdGFydHNPbiJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLndlZWtTdGFydHNPbiwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLndlZWtTdGFydHNPbj1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sUCxSKSxZcih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4icGxhY2Vob2xkZXIiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnBsYWNlaG9sZGVyPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxWLFcpLFlyKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZW5hYmxlVGltZXpvbmUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5lbmFibGVUaW1lem9uZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmVuYWJsZVRpbWV6b25lPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxCLFUpLFlyKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idGltZXpvbmUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS50aW1lem9uZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnRpbWV6b25lPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxGLGopLFlyKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImV2ZW50cyJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmV2ZW50cywiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmV2ZW50cz1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sbGUsUSksWXIodGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJpc09wZW5lZCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmlzT3BlbmVkLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UuaXNPcGVuZWQ9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LHRlLGVlKSxZcih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJzZWxlY3RlZERhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5zZWxlY3RlZERhdGUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5zZWxlY3RlZERhdGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFgsWiksWXIodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld0RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ2aWV3RGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnZpZXdEYXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uudmlld0RhdGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LHEsQSksWXIodGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ic2VsZWN0ZWRIb3VyImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uuc2VsZWN0ZWRIb3VyLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uuc2VsZWN0ZWRIb3VyPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxvZSxhZSksWXIodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRNaW51dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJzZWxlY3RlZE1pbnV0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnNlbGVjdGVkTWludXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uuc2VsZWN0ZWRNaW51dGU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFJlLEJlKSxZcihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpEZX0sbnVsbCx0KSxHZT1hPWUudmFsdWUsRGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RGV9KX1zdGF0aWMgZGVtbz1xZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVdhKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKERlKXt0aGlzLiNlPURlfSN0PShXYSh0aGlzLGwpLFdhKHRoaXMsZCwhMSkpO2dldCBlbmFibGVUaW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVuYWJsZVRpbWUoRGUpe3RoaXMuI3Q9RGV9I2E9KFdhKHRoaXMsdSksV2EodGhpcyxiLCIyNGgiKSk7Z2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGltZUZvcm1hdChEZSl7dGhpcy4jYT1EZX0jcz0oV2EodGhpcyx2KSxXYSh0aGlzLG0sMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWludXRlSW5jcmVtZW50KERlKXt0aGlzLiNzPURlfSNpPShXYSh0aGlzLGYpLFdhKHRoaXMsTSwiWVlZWS1NTS1ERCIpKTtnZXQgZGF0ZUZvcm1hdCgpe3JldHVybiB0aGlzLiNpfXNldCBkYXRlRm9ybWF0KERlKXt0aGlzLiNpPURlfSNyPShXYSh0aGlzLHopLFdhKHRoaXMsQywiIikpO2dldCBtaW5EYXRlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1pbkRhdGUoRGUpe3RoaXMuI3I9RGV9I289KFdhKHRoaXMsXyksV2EodGhpcywkLCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4RGF0ZShEZSl7dGhpcy4jbz1EZX0jbj0oV2EodGhpcyxFKSxXYSh0aGlzLGssW10pKTtnZXQgZGlzYWJsZWREYXRlcygpe3JldHVybiB0aGlzLiNufXNldCBkaXNhYmxlZERhdGVzKERlKXt0aGlzLiNuPURlfSNsPShXYSh0aGlzLFMpLFdhKHRoaXMsUCwxKSk7Z2V0IHdlZWtTdGFydHNPbigpe3JldHVybiB0aGlzLiNsfXNldCB3ZWVrU3RhcnRzT24oRGUpe3RoaXMuI2w9RGV9I2M9KFdhKHRoaXMsUiksV2EodGhpcyxWLCJZWVlZLU1NLUREIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNjfXNldCBwbGFjZWhvbGRlcihEZSl7dGhpcy4jYz1EZX0jZD0oV2EodGhpcyxXKSxXYSh0aGlzLEIsITEpKTtnZXQgZW5hYmxlVGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZW5hYmxlVGltZXpvbmUoRGUpe3RoaXMuI2Q9RGV9I3U9KFdhKHRoaXMsVSksV2EodGhpcyxGLEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiN1fXNldCB0aW1lem9uZShEZSl7dGhpcy4jdT1EZX0jcD0oV2EodGhpcyxqKSxXYSh0aGlzLGxlLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiNwfXNldCBldmVudHMoRGUpe3RoaXMuI3A9RGV9I2g9KFdhKHRoaXMsUSksV2EodGhpcyx0ZSwhMSkpO2dldCBpc09wZW5lZCgpe3JldHVybiB0aGlzLiNofXNldCBpc09wZW5lZChEZSl7dGhpcy4jaD1EZX0jZj0oV2EodGhpcyxlZSksV2EodGhpcyxYLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNlbGVjdGVkRGF0ZShEZSl7dGhpcy4jZj1EZX0jbT0oV2EodGhpcyxaKSxXYSh0aGlzLHEsbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jbX1zZXQgdmlld0RhdGUoRGUpe3RoaXMuI209RGV9I2c9KFdhKHRoaXMsQSksV2EodGhpcyxvZSwwKSk7Z2V0IHNlbGVjdGVkSG91cigpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZEhvdXIoRGUpe3RoaXMuI2c9RGV9I2I9KFdhKHRoaXMsYWUpLFdhKHRoaXMsUmUsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNifXNldCBzZWxlY3RlZE1pbnV0ZShEZSl7dGhpcy4jYj1EZX1wb3B1cEluc3RhbmNlPShXYSh0aGlzLEJlKSxudWxsKTtzdGF0aWMgc3R5bGVzPVZkYTtyZW5kZXIoKXtyZXR1cm4gV2RhKHRoaXMpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgRGU9bmV3IERhdGUodGhpcy52YWx1ZSk7aXNOYU4oRGUuZ2V0VGltZSgpKXx8KHRoaXMuc2VsZWN0ZWREYXRlPURlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoRGUpLHRoaXMuc2VsZWN0ZWRIb3VyPURlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1EZS5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCBEZT1uZXcgRGF0ZTt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKERlKSx0aGlzLnNlbGVjdGVkSG91cj1EZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZShEZSl7aWYoIURlKXJldHVybiIiO3RyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lmKGlzTmFOKF9lLmdldFRpbWUoKSkpcmV0dXJuIiI7bGV0IENlPXRoaXMuZGF0ZUZvcm1hdCx2ZT1fZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksYmU9KF9lLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksRWU9X2UuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO2lmKENlPUNlLnJlcGxhY2UoIllZWVkiLEVlKSxDZT1DZS5yZXBsYWNlKCJZWSIsRWUuc2xpY2UoLTIpKSxDZT1DZS5yZXBsYWNlKCJNTSIsYmUpLENlPUNlLnJlcGxhY2UoIkREIix2ZSksdGhpcy5lbmFibGVUaW1lKXtsZXQgamU9X2UuZ2V0SG91cnMoKSxXZT1qZT09PTA/MTI6amU+MTI/amUtMTI6amUsc3Q9X2UuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLE1lPWplPj0xMj8iUE0iOiJBTSI7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/Q2UrPWAgJHtXZX06JHtzdH0gJHtNZX1gOkNlKz1gICR7amUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7c3R9YH1pZih0aGlzLmVuYWJsZVRpbWV6b25lKXtsZXQgc3Q9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmVOYW1lOiJzaG9ydCIsdGltZVpvbmU6dGhpcy50aW1lem9uZX0pLmZvcm1hdFRvUGFydHMoX2UpLmZpbmQoTWU9Pk1lLnR5cGU9PT0idGltZVpvbmVOYW1lIik7c3QmJihDZSs9YCAke3N0LnZhbHVlfWApfXJldHVybiBDZX1jYXRjaHtyZXR1cm4iIn19YXN5bmMgdG9nZ2xlQ2FsZW5kYXIoKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtpZih0aGlzLmlzT3BlbmVkKXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59dGhpcy5pc09wZW5lZD0hMDtsZXQgX2U9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb250YWluZXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxDZT13aW5kb3cuaW5uZXJIZWlnaHQtX2UuYm90dG9tLHZlPV9lLnRvcCxiZT1DZTw0MDAmJnZlPkNlO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgdW5lKSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2UsdGhpcy5wb3B1cEluc3RhbmNlLm93bmVyQ29tcG9uZW50PXRoaXMsdGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9YmUsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWU9dGhpcy5lbmFibGVUaW1lLHRoaXMucG9wdXBJbnN0YW5jZS50aW1lRm9ybWF0PXRoaXMudGltZUZvcm1hdCx0aGlzLnBvcHVwSW5zdGFuY2UubWludXRlSW5jcmVtZW50PXRoaXMubWludXRlSW5jcmVtZW50LHRoaXMucG9wdXBJbnN0YW5jZS53ZWVrU3RhcnRzT249dGhpcy53ZWVrU3RhcnRzT24sdGhpcy5wb3B1cEluc3RhbmNlLm1pbkRhdGU9dGhpcy5taW5EYXRlLHRoaXMucG9wdXBJbnN0YW5jZS5tYXhEYXRlPXRoaXMubWF4RGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2UuZGlzYWJsZWREYXRlcz10aGlzLmRpc2FibGVkRGF0ZXMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWV6b25lPXRoaXMuZW5hYmxlVGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLnRpbWV6b25lPXRoaXMudGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLmV2ZW50cz10aGlzLmV2ZW50cyx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWREYXRlPXRoaXMuc2VsZWN0ZWREYXRlLHRoaXMucG9wdXBJbnN0YW5jZS52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlKSx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWRIb3VyPXRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMucG9wdXBJbnN0YW5jZS5zZWxlY3RlZE1pbnV0ZT10aGlzLnNlbGVjdGVkTWludXRlLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSxhd2FpdCB0aGlzLnBvcHVwSW5zdGFuY2Uuc2hvdygpfWNsb3NlUG9wdXAoKXt0aGlzLmlzT3BlbmVkPSExLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuaGlkZSgpKX1oYW5kbGVEYXRlU2VsZWN0ZWQ9aShEZT0+e2xldCBfZT1EZS5kZXRhaWw7dGhpcy5zZWxlY3RlZERhdGU9X2UsdGhpcy5zZWxlY3RlZEhvdXI9X2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPV9lLmdldE1pbnV0ZXMoKSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoX2UpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiaGFuZGxlRGF0ZVNlbGVjdGVkIik7aGFuZGxlRGF0ZUNsZWFyZWQ9aSgoKT0+e3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImhhbmRsZURhdGVDbGVhcmVkIik7aGFuZGxlQ2xvc2VSZXF1ZXN0PWkoKCk9Pnt0aGlzLmNsb3NlUG9wdXAoKX0sImhhbmRsZUNsb3NlUmVxdWVzdCIpO2hhbmRsZVJlcG9zaXRpb25SZXF1ZXN0PWkoKCk9PntpZighdGhpcy5wb3B1cEluc3RhbmNlfHwhdGhpcy5pc09wZW5lZClyZXR1cm47bGV0IERlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIik7aWYoIURlKXJldHVybjtsZXQgX2U9RGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoX2UuYm90dG9tPDB8fF9lLnRvcD53aW5kb3cuaW5uZXJIZWlnaHQpe3RoaXMuY2xvc2VQb3B1cCgpO3JldHVybn1sZXQgQ2U9d2luZG93LmlubmVySGVpZ2h0LV9lLmJvdHRvbSx2ZT1fZS50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9Q2U8NDAwJiZ2ZT5DZSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2V9LCJoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCIpO2hhbmRsZUtleWRvd24oRGUpe0RlLmtleT09PSJFbnRlciJ8fERlLmtleT09PSIgIj8oRGUucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOkRlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmlzT3BlbmVkJiYoRGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlUG9wdXAoKSl9Y2xlYXJWYWx1ZShEZSl7RGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWhhbmRsZU1hbnVhbElucHV0KERlKXtsZXQgQ2U9RGUudGFyZ2V0LnZhbHVlLnRyaW0oKTtpZighQ2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbDtyZXR1cm59bGV0IHZlPXRoaXMucGFyc2VNYW51YWxEYXRlKENlKTt2ZSYmIWlzTmFOKHZlLmdldFRpbWUoKSkmJih0aGlzLnZhbHVlPXZlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9dmUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh2ZSksdGhpcy5zZWxlY3RlZEhvdXI9dmUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXZlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9aGFuZGxlSW5wdXRCbHVyKERlKXtsZXQgX2U9RGUudGFyZ2V0LENlPV9lLnZhbHVlLnRyaW0oKTtpZighQ2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtyZXR1cm59bGV0IHZlPXRoaXMucGFyc2VNYW51YWxEYXRlKENlKTt2ZSYmIWlzTmFOKHZlLmdldFRpbWUoKSk/KHRoaXMudmFsdWU9dmUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT12ZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHZlKSx0aGlzLnNlbGVjdGVkSG91cj12ZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9dmUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLF9lLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKSk6X2UudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpfXBhcnNlTWFudWFsRGF0ZShEZSl7aWYoIURlKXJldHVybiBudWxsO2xldCBfZT1EZS5zcGxpdCgiICIpLENlPV9lWzBdLHZlPV9lWzFdfHwiIixiZT1udWxsLEVlPUNlLm1hdGNoKC9eKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pJC8pO2lmKEVlKXtsZXRbamUsV2Usc3QsTWVdPUVlO2JlPW5ldyBEYXRlKHBhcnNlSW50KFdlKSxwYXJzZUludChzdCktMSxwYXJzZUludChNZSkpfWlmKCFiZSl7bGV0IGplPUNlLm1hdGNoKC9eKFxkezEsMn0pXC4oXGR7MSwyfSlcLihcZHs0fSkkLyk7aWYoamUpe2xldFtXZSxzdCxNZSxnZV09amU7YmU9bmV3IERhdGUocGFyc2VJbnQoZ2UpLHBhcnNlSW50KE1lKS0xLHBhcnNlSW50KHN0KSl9fWlmKCFiZSl7bGV0IGplPUNlLm1hdGNoKC9eKFxkezEsMn0pXC8oXGR7MSwyfSlcLyhcZHs0fSkkLyk7aWYoamUpe2xldFtXZSxzdCxNZSxnZV09amU7YmU9bmV3IERhdGUocGFyc2VJbnQoZ2UpLHBhcnNlSW50KHN0KS0xLHBhcnNlSW50KE1lKSl9fWlmKCFiZXx8aXNOYU4oYmUuZ2V0VGltZSgpKSlyZXR1cm4gbnVsbDtpZih2ZSl7bGV0IGplPXZlLm1hdGNoKC9eKFxkezEsMn0pOihcZHsyfSkkLyk7aWYoamUpe2xldFtXZSxzdCxNZV09amU7YmUuc2V0SG91cnMocGFyc2VJbnQoc3QpKSxiZS5zZXRNaW51dGVzKHBhcnNlSW50KE1lKSl9fWVsc2UgaWYoIXRoaXMuZW5hYmxlVGltZSl7bGV0IGplPW5ldyBEYXRlO2JlLnNldEhvdXJzKGplLmdldEhvdXJzKCkpLGJlLnNldE1pbnV0ZXMoamUuZ2V0TWludXRlcygpKSxiZS5zZXRTZWNvbmRzKDApLGJlLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gYmV9Zm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoRGUpe2lmKCF0aGlzLmVuYWJsZVRpbWV6b25lKXJldHVybiBEZS50b0lTT1N0cmluZygpO2xldCBDZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iixob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsaG91cjEyOiExLHRpbWVab25lOnRoaXMudGltZXpvbmUsdGltZVpvbmVOYW1lOiJzaG9ydCJ9KS5mb3JtYXRUb1BhcnRzKERlKSx2ZT17fTtDZS5mb3JFYWNoKGplPT57dmVbamUudHlwZV09amUudmFsdWV9KTtsZXQgYmU9YCR7dmUueWVhcn0tJHt2ZS5tb250aH0tJHt2ZS5kYXl9VCR7dmUuaG91cn06JHt2ZS5taW51dGV9OiR7dmUuc2Vjb25kfWAsRWU9dGhpcy5nZXRUaW1lem9uZU9mZnNldChEZSx0aGlzLnRpbWV6b25lKTtyZXR1cm5gJHtiZX0ke0VlfWB9Z2V0VGltZXpvbmVPZmZzZXQoRGUsX2Upe2xldCBDZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZTpfZX0pKSx2ZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZToiVVRDIn0pKSxiZT0oQ2UuZ2V0VGltZSgpLXZlLmdldFRpbWUoKSkvKDFlMyo2MCksRWU9TWF0aC5mbG9vcihNYXRoLmFicyhiZSkvNjApLGplPU1hdGguYWJzKGJlKSU2MDtyZXR1cm5gJHtiZT49MD8iKyI6Ii0ifSR7RWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7amUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKERlKXtpZih0aGlzLnZhbHVlPURlLERlKXRyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lzTmFOKF9lLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1fZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnNlbGVjdGVkSG91cj1fZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9X2UuZ2V0TWludXRlcygpKX1jYXRjaHt9fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje1dhKGEsdCl9fTtyZXR1cm4gR2U9YX0pKCl9KTt2YXIgaG5lPWcoKCk9PntPZXQoKTtGZXQoKX0pO3ZhciBLZGEsWWRhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTtLZGE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsKHI9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7YS5sYWJlbH0iIGNoYW5nZWQgdG86YCxhLmdldFZhbHVlKCkpfSkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7YS5sYWJlbH0iIGxvc3QgZm9jdXNgKX0pfSkscy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJwYXNzd29yZCJdJykmJmNvbnNvbGUubG9nKCJQYXNzd29yZCBpbnB1dCBpbmNsdWRlcyB2aXNpYmlsaXR5IHRvZ2dsZSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUZXh0IElucHV0cyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCB0ZXh0IGlucHV0cyB3aXRoIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlVzZXJuYW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5kb2UifQogICAgICAgICAgICAua2V5PSR7InVzZXJuYW1lIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IllvdXIgdXNlcm5hbWUgd2lsbCBiZSB2aXNpYmxlIHRvIG90aGVyIHVzZXJzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBBZGRyZXNzIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5AZXhhbXBsZS5jb20ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiV2Ugd2lsbCBuZXZlciBzaGFyZSB5b3VyIGVtYWlsIHdpdGggYW55b25lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNlY3JldDEyMyJ9CiAgICAgICAgICAgIC5rZXk9JHsicGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2gocj0+e2xldCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHIpO2NvbnNvbGUubG9nKGBIb3Jpem9udGFsIGlucHV0ICIke3IubGFiZWx9IiBkaXNwbGF5OmAsbi5kaXNwbGF5KX0pO2xldCB0PXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0iZmlyc3ROYW1lIl0nKSxhPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0ibGFzdE5hbWUiXScpO2lmKHQmJmEpe2xldCByPWkoKCk9PntsZXQgbj10LmdldFZhbHVlKCksbz1hLmdldFZhbHVlKCk7Y29uc29sZS5sb2coYEZ1bGwgbmFtZTogJHtufSAke299YCl9LCJ1cGRhdGVGdWxsTmFtZSIpO3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsciksYS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixyKX19fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgZm9ybXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IkpvaG4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsiZmlyc3ROYW1lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJMYXN0IE5hbWUifQogICAgICAgICAgICAgIC52YWx1ZT0keyJEb2UifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsibGFzdE5hbWUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFnZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjI4In0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7ImFnZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goYT0+e2xldCByPWEubGFiZWxQb3NpdGlvbjtjb25zb2xlLmxvZyhgSW5wdXQgIiR7YS5sYWJlbH0iIGhhcyBsYWJlbCBwb3NpdGlvbjogJHtyfWApfSk7bGV0IHQ9cy5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXRleHRbbGFiZWxQb3NpdGlvbj0ibGVmdCJdJyk7dC5sZW5ndGg+MCYmY29uc29sZS5sb2coYCR7dC5sZW5ndGh9IGlucHV0cyBoYXZlIGxlZnQtYWxpZ25lZCBsYWJlbHMgZm9yIGlubGluZSBsYXlvdXRgKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFiZWwgUG9zaXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBsYWJlbCBwb3NpdGlvbmluZyBvcHRpb25zIGZvciB2YXJpb3VzIGxheW91dHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiTGFiZWwgb24gVG9wIChEZWZhdWx0KSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJTdGFuZGFyZCBsYXlvdXQifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJ0b3AifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIExlZnQifQogICAgICAgICAgICAudmFsdWU9JHsiSW5saW5lIGxhYmVsIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiQ2l0eSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJOZXcgWW9yayJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlpJUCBDb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjEwMDAxIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB2YWxpZGF0aW9uIHN0YXRlcyBhbmQgaW5wdXQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJyZXF1aXJlZEZpZWxkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBGaWVsZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJDYW5ub3QgZWRpdCB0aGlzIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgd2l0aCBWYWxpZGF0aW9uIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImludmFsaWRAIn0KICAgICAgICAgICAgLnZhbGlkYXRpb25GdW5jdGlvbj0ke3M9Pi9eW15cc0BdK0BbXlxzQF0rXC5bXlxzQF0rJC8udGVzdChzKT97dmFsaWQ6ITAsbWVzc2FnZToiRW1haWwgYWRkcmVzcyBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0W2lzUGFzc3dvcmRCb29sXSIpLmZvckVhY2godD0+e2xldCBhPXQscj1pKCgpPT57bGV0IG49YS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO24mJmNvbnNvbGUubG9nKGBQYXNzd29yZCBmaWVsZCAiJHthLmxhYmVsfSIgdHlwZTpgLG4udHlwZSl9LCJjaGVja1RvZ2dsZSIpO2lmKGEuc2hhZG93Um9vdCl7bGV0IG49bmV3IE11dGF0aW9uT2JzZXJ2ZXIociksbz1hLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtvJiZuLm9ic2VydmUobyx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJ0eXBlIl19KX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQWR2YW5jZWQgRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiUGFzc3dvcmQgdmlzaWJpbGl0eSB0b2dnbGUgYW5kIG90aGVyIGFkdmFuY2VkIGZlYXR1cmVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIHdpdGggVG9nZ2xlIn0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJteVNlY3VyZVBhc3N3b3JkMTIzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkNsaWNrIHRoZSBleWUgaWNvbiB0byBzaG93L2hpZGUgcGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkFQSSBLZXkifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNrLTEyMzQ1Njc4OTBhYmNkZWYifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiS2VlcCB0aGlzIGtleSBzZWN1cmUgYW5kIG5ldmVyIHNoYXJlIGl0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKSx0PXMucXVlcnlTZWxlY3RvcigiI3RleHQtaW5wdXQtb3V0cHV0Iik7ZSYmdCYmZS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3QudGV4dENvbnRlbnQ9YEN1cnJlbnQgdmFsdWU6ICIke2UuZ2V0VmFsdWUoKX0iYH0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRyeSB0eXBpbmcgaW4gdGhlIGlucHV0IHRvIHNlZSByZWFsLXRpbWUgdmFsdWUgY2hhbmdlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC5sYWJlbD0keyJEeW5hbWljIElucHV0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHNvbWV0aGluZyBoZXJlLi4uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0idGV4dC1pbnB1dC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCI+Q3VycmVudCB2YWx1ZTogIiI8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGV1LE1vLGZuZSx4aD1nKCgpPT57RzEoKTt6aSgpO1lkYSgpO0NyKCk7cGUoKTtwdCgpO29yKCk7ZXU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE1vPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxmbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LXRleHQiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXTt2YXIgST1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0VGV4dCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBQPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx5PVtMKHtyZWZsZWN0OiEwfSldLE49W0woe2F0dHJpYnV0ZTohMX0pXSxPPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxIPVtMKHthdHRyaWJ1dGU6ITF9KV0sZXUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsdWUiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWx1ZSwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbHVlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbyxsKSxldSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGFzc3dvcmRCb29sIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJpc1Bhc3N3b3JkQm9vbCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmlzUGFzc3dvcmRCb29sLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuaXNQYXNzd29yZEJvb2w9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLGV1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2hvd1Bhc3N3b3JkQm9vbCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNob3dQYXNzd29yZEJvb2wsImdldCIpLHNldDppKChSLEspPT57Ui5zaG93UGFzc3dvcmRCb29sPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxldSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRhdGlvblN0YXRlImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvblN0YXRlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxldSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2YWxpZGF0aW9uVGV4dCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvblRleHQ9S30sInNldCIpfSxtZXRhZGF0YTpQfSxNLHopLGV1KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvbkZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2YWxpZGF0aW9uRnVuY3Rpb24iaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWxpZGF0aW9uRnVuY3Rpb24sImdldCIpLHNldDppKChSLEspPT57Ui52YWxpZGF0aW9uRnVuY3Rpb249S30sInNldCIpfSxtZXRhZGF0YTpQfSxDLF8pLGV1KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmludGVncmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZpbnRlZ3JhdGVkImluIFIsImhhcyIpLGdldDppKFI9PlIudmludGVncmF0ZWQsImdldCIpLHNldDppKChSLEspPT57Ui52aW50ZWdyYXRlZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksZXUodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZENvbmZpcm1lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRDb25maXJtZWQiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWxpZENvbmZpcm1lZCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbGlkQ29uZmlybWVkPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sayxTKSxldShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpQfSxudWxsLHQpLEk9YT1lLnZhbHVlLFAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UH0pfXN0YXRpYyBkZW1vPUtkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9TW8odGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoUCl7dGhpcy4jZT1QfSN0PShNbyh0aGlzLGwpLE1vKHRoaXMsZCwhMSkpO2dldCBpc1Bhc3N3b3JkQm9vbCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1Bhc3N3b3JkQm9vbChQKXt0aGlzLiN0PVB9I2E9KE1vKHRoaXMsdSksTW8odGhpcyxiLCExKSk7Z2V0IHNob3dQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1Bhc3N3b3JkQm9vbChQKXt0aGlzLiNhPVB9I3M9KE1vKHRoaXMsdiksTW8odGhpcyxtLHZvaWQgMCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdmFsaWRhdGlvblN0YXRlKFApe3RoaXMuI3M9UH0jaT0oTW8odGhpcyxmKSxNbyh0aGlzLE0sIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsaWRhdGlvblRleHQoUCl7dGhpcy4jaT1QfSNyPShNbyh0aGlzLHopLE1vKHRoaXMsQyx2b2lkIDApKTtnZXQgdmFsaWRhdGlvbkZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbGlkYXRpb25GdW5jdGlvbihQKXt0aGlzLiNyPVB9I289KE1vKHRoaXMsXyksTW8odGhpcywkLCExKSk7Z2V0IHZpbnRlZ3JhdGVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHZpbnRlZ3JhdGVkKFApe3RoaXMuI289UH0jbj0oTW8odGhpcyxFKSxNbyh0aGlzLGssITEpKTtnZXQgdmFsaWRDb25maXJtZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdmFsaWRDb25maXJtZWQoUCl7dGhpcy4jbj1QfXZhbGlkVGltZW91dD1Nbyh0aGlzLFMpO3N0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogYXV0bzsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogUGFzc3dvcmQgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuc2hvd1Bhc3N3b3JkIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDFweDsKICAgICAgICB0b3A6IDIwcHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzhweDsKICAgICAgICBoZWlnaHQ6IDM4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwOwogICAgICB9CgogICAgICAuc2hvd1Bhc3N3b3JkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgY2hlY2ttYXJrIGljb24gKi8KICAgICAgLnZhbGlkSWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMHB4OwogICAgICAgIHRvcDogMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkSWNvbi5zaG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudmFsaWRJY29uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIuaW52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIud2FybiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4xKSIsImhzbCgyNSA5NSUgNjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAvKiBFcnJvciBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJpbnZhbGlkIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMDUpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogV2FybmluZyBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0id2FybiJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ3YXJuIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMDUpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9InZhbGlkIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0idmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4wNSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmlzdWFsbHkgaW50ZWdyYXRlZCBtb2RlOiBzaGVkIGNocm9tZSB0byBibGVuZCBpbnRvIGEgaG9zdCBjb21wb25lbnQKICAgICAgICAgKGUuZy4gYSBkZWVzLXRhYmxlIGNlbGwgaW4gZWRpdCBtb2RlKS4gKi8KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgZGVlcy1sYWJlbCwKICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dCB7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNob3dQYXNzd29yZCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICBpbnB1dCB7CiAgICAgICAgICBmb250LWZhbWlseTogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyQ4OiJpbmhlcml0In07CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyIwLjVweCI6Im5vcm1hbCJ9OwogICAgICAgICAgcGFkZGluZy1yaWdodDogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyI0OHB4Ijp0aGlzLnZhbGlkQ29uZmlybWVkPyI0MHB4IjoiMTJweCJ9OwogICAgICAgIH0KICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQmJiF0aGlzLnZhbGlkQ29uZmlybWVkP0pgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGA6SmAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9IiR7dGhpcy5pc1Bhc3N3b3JkQm9vbCYmIXRoaXMuc2hvd1Bhc3N3b3JkQm9vbD8icGFzc3dvcmQiOiJ0ZXh0In0iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLnVwZGF0ZVZhbHVlfSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9IiR7dGhpcy5sYWJlbD8iIjoiRW50ZXIgdGV4dC4uLiJ9IgogICAgICAgICAgLz4KICAgICAgICAgICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvd1Bhc3N3b3JkIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBhc3N3b3JkVmlld30+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLnNob3dQYXNzd29yZEJvb2w/Imx1Y2lkZTpFeWUiOiJsdWNpZGU6RXllT2ZmIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkSWNvbiAke3RoaXMudmFsaWRDb25maXJtZWQ/InNob3ciOiIifSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbkNvbnRhaW5lciAke3RoaXMudmFsaWRhdGlvblN0YXRlfHwiaW52YWxpZCJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0fQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIiPjwvZGl2PmB9CiAgICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uJiZ0aGlzLnZhbHVlKXtsZXQgUD10aGlzLnZhbGlkYXRpb25GdW5jdGlvbih0aGlzLnZhbHVlKTt0aGlzLnZhbGlkYXRpb25TdGF0ZT1QLnZhbGlkPyJ2YWxpZCI6ImludmFsaWQiLHRoaXMudmFsaWRhdGlvblRleHQ9UC5tZXNzYWdlfHwiIixQLnZhbGlkJiYodGhpcy52YWxpZENvbmZpcm1lZD0hMSx0aGlzLnZhbGlkVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy52YWxpZENvbmZpcm1lZD0hMCx0aGlzLnZhbGlkYXRpb25TdGF0ZT12b2lkIDB9LDUwMCkpfX1hc3luYyB1cGRhdGVWYWx1ZShQKXtsZXQgUj1QLnRhcmdldDtpZih0aGlzLnZhbHVlPVIudmFsdWUsdGhpcy52YWxpZGF0aW9uRnVuY3Rpb24pe2xldCBLPXRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uKHRoaXMudmFsdWUpO3RoaXMudmFsaWRhdGlvblN0YXRlPUsudmFsaWQ/InZhbGlkIjoiaW52YWxpZCIsdGhpcy52YWxpZGF0aW9uVGV4dD1LLm1lc3NhZ2V8fCIiLEsudmFsaWQ/KHRoaXMudmFsaWRDb25maXJtZWQ9ITEsY2xlYXJUaW1lb3V0KHRoaXMudmFsaWRUaW1lb3V0KSx0aGlzLnZhbGlkVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy52YWxpZENvbmZpcm1lZD0hMCx0aGlzLnZhbGlkYXRpb25TdGF0ZT12b2lkIDB9LDUwMCkpOihjbGVhclRpbWVvdXQodGhpcy52YWxpZFRpbWVvdXQpLHRoaXMudmFsaWRDb25maXJtZWQ9ITEpfXRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKSxSPVAuc2VsZWN0aW9uU3RhcnQhPT1QLnNlbGVjdGlvbkVuZDtyZXR1cm5be25hbWU6IkN1dCIsaWNvbk5hbWU6Imx1Y2lkZTpTY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixkaXNhYmxlZDohUixhY3Rpb246aShhc3luYygpPT57bGV0IEs9dGhpcy52YWx1ZS5zdWJzdHJpbmcoUC5zZWxlY3Rpb25TdGFydCxQLnNlbGVjdGlvbkVuZCk7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSyk7bGV0IFY9UC5zZWxlY3Rpb25TdGFydDt0aGlzLnZhbHVlPXRoaXMudmFsdWUuc3Vic3RyaW5nKDAsVikrdGhpcy52YWx1ZS5zdWJzdHJpbmcoUC5zZWxlY3Rpb25FbmQpLFAudmFsdWU9dGhpcy52YWx1ZSxQLnNldFNlbGVjdGlvblJhbmdlKFYsViksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsc2hvcnRjdXQ6IkNtZCtDIixkaXNhYmxlZDohUixhY3Rpb246aShhc3luYygpPT57bGV0IEs9dGhpcy52YWx1ZS5zdWJzdHJpbmcoUC5zZWxlY3Rpb25TdGFydCxQLnNlbGVjdGlvbkVuZCk7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSyl9LCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixpY29uTmFtZToibHVjaWRlOkNsaXBib2FyZFBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgSz1hd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWRUZXh0KCksVj1QLnNlbGVjdGlvblN0YXJ0LFc9UC5zZWxlY3Rpb25FbmQ7dGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLFYpK0srdGhpcy52YWx1ZS5zdWJzdHJpbmcoVyksUC52YWx1ZT10aGlzLnZhbHVlLFAuc2V0U2VsZWN0aW9uUmFuZ2UoVitLLmxlbmd0aCxWK0subGVuZ3RoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNlbGVjdCBBbGwiLGljb25OYW1lOiJsdWNpZGU6VGV4dEN1cnNvcklucHV0IixzaG9ydGN1dDoiQ21kK0EiLGFjdGlvbjppKGFzeW5jKCk9PntQLnNlbGVjdCgpfSwiYWN0aW9uIil9XX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKFApe3RoaXMudmFsdWU9UH1hc3luYyB0b2dnbGVQYXNzd29yZFZpZXcoKXt0aGlzLnNob3dQYXNzd29yZEJvb2w9IXRoaXMuc2hvd1Bhc3N3b3JkQm9vbH1hc3luYyBmb2N1cygpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9YXN5bmMgYmx1cigpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmJsdXIoKX1zdGF0aWN7TW8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIFpkYSxYZGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO1pkYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9kdWN0LWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0ZWQtcHJvZHVjdHMgewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiU2ltcGxlIHByb2R1Y3QgZGlzcGxheSB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IldpcmVsZXNzIEJsdWV0b290aCBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJQcmVtaXVtIHNvdW5kIHF1YWxpdHkgd2l0aCBhY3RpdmUgbm9pc2UgY2FuY2VsbGF0aW9uIixwcmljZToxNDkuOTksb3JpZ2luYWxQcmljZToxOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTbWFydCBXYXRjaCBTZXJpZXMgNyIsY2F0ZWdvcnk6IldlYXJhYmxlcyIsZGVzY3JpcHRpb246IlRyYWNrIHlvdXIgZml0bmVzcyBhbmQgc3RheSBjb25uZWN0ZWQgb24gdGhlIGdvIixwcmljZTozOTksaWNvbk5hbWU6Imx1Y2lkZTp3YXRjaCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiVVNCLUMgSHViIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLHByaWNlOjQ5Ljk5LGljb25OYW1lOiJsdWNpZGU6dXNiIixpblN0b2NrOiExfX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7IlByb2R1Y3QgY2FyZHMgd2l0aCBkeW5hbWljIGNhcnQgY2FsY3VsYXRpb24ifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9W3tpZDoibGFwdG9wIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0se2lkOiJpcGFkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0se2lkOiJrZXlib2FyZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fV0sdD1pKCgpPT57bGV0IGE9MCxyPVtdO2UuZm9yRWFjaChvPT57bGV0IGw9cy5xdWVyeVNlbGVjdG9yKGAjJHtvLmlkfWApO2lmKGwmJmwucXVhbnRpdHk+MCl7bGV0IHA9by5kYXRhLnByaWNlKmwucXVhbnRpdHk7YSs9cCxyLnB1c2goYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JHtvLmRhdGEubmFtZX0gKCR7bC5xdWFudGl0eX0pPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj4kJHtwLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9fSk7bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Iik7biYmKG4uaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke3Iuam9pbigiIil9CiAgICAgICAgICAgICAgJHtyLmxlbmd0aD09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHthLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0sInVwZGF0ZUNhcnRTdW1tYXJ5Iik7c2V0VGltZW91dCh0LDEwMCkscy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIsdCl9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibGFwdG9wIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImlwYWQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+U2hvcHBpbmcgQ2FydDwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiPgogICAgICAgICAgICA8IS0tIER5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNlbGVjdGFibGUgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJDbGljayBjYXJkcyBvciBjaGVja2JveGVzIHRvIHNlbGVjdCBwcm9kdWN0cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBBbHBoYSA3IElWIixjYXRlZ29yeToiQ2FtZXJhcyIsZGVzY3JpcHRpb246IkZ1bGwtZnJhbWUgbWlycm9ybGVzcyBjYW1lcmEiLHByaWNlOjI0OTgsaWNvbk5hbWU6Imx1Y2lkZTpjYW1lcmEifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksYT1bXTt0LmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmEucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1hLmxlbmd0aD4wP2BTZWxlY3RlZDogJHthLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJESkkgTWluaSAzIFBybyIsY2F0ZWdvcnk6IkRyb25lcyIsZGVzY3JpcHRpb246IkxpZ2h0d2VpZ2h0IGRyb25lIHdpdGggNEsgY2FtZXJhIixwcmljZTo3NTksaWNvbk5hbWU6Imx1Y2lkZTpwbGFuZSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3M9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxhPVtdO3QuZm9yRWFjaChyPT57ci5zZWxlY3RlZCYmYS5wdXNoKHIucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PWEubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2Euam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkdvUHJvIEhFUk8xMiIsY2F0ZWdvcnk6IkFjdGlvbiBDYW1lcmFzIixkZXNjcmlwdGlvbjoiNS4zSyB2aWRlbyB3aXRoIEh5cGVyU21vb3RoIDYuMCIscHJpY2U6Mzk5LG9yaWdpbmFsUHJpY2U6NDQ5LGljb25OYW1lOiJsdWNpZGU6dmlkZW8ifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksYT1bXTt0LmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmEucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1hLmxlbmd0aD4wP2BTZWxlY3RlZDogJHthLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGVkLXByb2R1Y3RzIiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIE5vIHByb2R1Y3RzIHNlbGVjdGVkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9kdWN0IFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxpbWl0ZWQgRWRpdGlvbiBTbmVha2VycyIsY2F0ZWdvcnk6IkZvb3R3ZWFyIixkZXNjcmlwdGlvbjoiRXhjbHVzaXZlIGNvbG9yd2F5IC0gT25seSA1MDAgcGFpcnMiLHByaWNlOjI5OSxpY29uTmFtZToibHVjaWRlOmZvb3RwcmludHMiLGluU3RvY2s6ITEsc3RvY2tUZXh0OiJTb2xkIE91dCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWluaW1hbGlzdCBXYWxsZXQiLHByaWNlOjM5Ljk5LGljb25OYW1lOiJsdWNpZGU6d2FsbGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJQcmVtaXVtIENvZmZlZSBCZWFucyIsY2F0ZWdvcnk6IkZvb2QgJiBCZXZlcmFnZSIsZGVzY3JpcHRpb246IlNpbmdsZSBvcmlnaW4sIG1lZGl1bSByb2FzdCIscHJpY2U6MTguNSxpY29uTmFtZToibHVjaWRlOmNvZmZlZSIsY3VycmVuY3k6Ilx1MjBBQyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGR2LFkxLFFkYSxCZXQ9ZygoKT0+e3BlKCk7WGRhKCk7cHQoKTtucigpO2R2PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxZMT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUWRhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLGR2KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InByb2R1Y3REYXRhImluIF8sImhhcyIpLGdldDppKF89Pl8ucHJvZHVjdERhdGEsImdldCIpLHNldDppKChfLE8pPT57Xy5wcm9kdWN0RGF0YT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksZHYodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icXVhbnRpdHkiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5xdWFudGl0eSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnF1YW50aXR5PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxkdih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93UXVhbnRpdHlTZWxlY3RvciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNob3dRdWFudGl0eVNlbGVjdG9yLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2hvd1F1YW50aXR5U2VsZWN0b3I9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLGR2KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0YWJsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGFibGUsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RhYmxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxkdih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2VsZWN0ZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLGR2KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89WmRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9WTEodGhpcyxvLHtuYW1lOiJQcm9kdWN0IE5hbWUiLHByaWNlOjB9KTtnZXQgcHJvZHVjdERhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZHVjdERhdGEoQyl7dGhpcy4jZT1DfSN0PShZMSh0aGlzLGwpLFkxKHRoaXMsZCwwKSk7Z2V0IHF1YW50aXR5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHF1YW50aXR5KEMpe3RoaXMuI3Q9Q30jYT0oWTEodGhpcyx1KSxZMSh0aGlzLGIsITApKTtnZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoQyl7dGhpcy4jYT1DfSNzPShZMSh0aGlzLHYpLFkxKHRoaXMsbSwhMSkpO2dldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGFibGUoQyl7dGhpcy4jcz1DfSNpPShZMSh0aGlzLGYpLFkxKHRoaXMsTSwhMSkpO2dldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZChDKXt0aGlzLiNpPUN9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGFibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGVkOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWhlYWRlci1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucHJvZHVjdC1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJvZHVjdC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucHJvZHVjdC1wcmljZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucHJpY2UtY3VycmVudCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnByaWNlLW9yaWdpbmFsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5vdXQtb2Ytc3RvY2sgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXR7bmFtZTpDLGNhdGVnb3J5Ol8sZGVzY3JpcHRpb246TyxwcmljZTokLG9yaWdpbmFsUHJpY2U6RSxjdXJyZW5jeTpIPSIkIixpblN0b2NrOms9ITAsc3RvY2tUZXh0OlM9az8iSW4gU3RvY2siOiJPdXQgb2YgU3RvY2siLGltYWdlVXJsOkksaWNvbk5hbWU6UD0ibHVjaWRlOnBhY2thZ2UifT10aGlzLnByb2R1Y3REYXRhLFI9aShLPT5gJHtIfSR7Sy50b0ZpeGVkKDIpfWAsImZvcm1hdFByaWNlIik7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUKICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGFibGU/InNlbGVjdGFibGUiOiIifSAke3RoaXMuc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDYXJkQ2xpY2t9CiAgICAgID4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InByb2R1Y3QtaGVhZGVyLWJhciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1uYW1lIj4ke0N9PC9zcGFuPgogICAgICAgICAgJHtfP3dgPHNwYW4gY2xhc3M9InByb2R1Y3QtY2F0ZWdvcnkiPiR7X308L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1pbWFnZSI+CiAgICAgICAgICAgICR7ST93YAogICAgICAgICAgICAgIDxpbWcgc3JjPSIke0l9IiBhbHQ9IiR7Q30iPgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke1B9PjwvZGVlcy1pY29uPgogICAgICAgICAgICBgfQogICAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZT93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJzZWxlY3Rpb24tY2hlY2tib3ggJHt0aGlzLnNlbGVjdGVkPyJjaGVja2VkIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHtLPT57Sy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnQiPgogICAgICAgICAgICAke08/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj4ke099PC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0b2NrLXN0YXR1cyAke2s/ImluLXN0b2NrIjoib3V0LW9mLXN0b2NrIn0iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtrPyJsdWNpZGU6Y2hlY2stY2lyY2xlIjoibHVjaWRlOngtY2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgJHtTfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0icHJvZHVjdC1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1wcmljZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1jdXJyZW50Ij4ke1IoJCl9PC9zcGFuPgogICAgICAgICAgICAke0UmJkU+JD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1vcmlnaW5hbCI+JHtSKEUpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yP3dgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnF1YW50aXR5fQogICAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7Sz0+e3RoaXMucXVhbnRpdHk9Sy5kZXRhaWwuZ2V0VmFsdWUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJxdWFudGl0eUNoYW5nZSIse2RldGFpbDp7cXVhbnRpdHk6dGhpcy5xdWFudGl0eSxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWhhbmRsZUNhcmRDbGljaygpe3RoaXMuc2VsZWN0YWJsZSYmKHRoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpe3RoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFkxKHRoaXMseil9c3RhdGlje1kxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBKZGEsZTBhPWcoKCk9PntwZSgpO0JldCgpO0pkYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaG9wcGluZy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnktdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXRvdGFsIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFF1YW50aXR5IFNlbGVjdG9yIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBxdWFudGl0eSBpbnB1dCB3aXRoIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgdGhlIGRlc2lyZWQgcXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWluaW11bSBvcmRlciBxdWFudGl0eSBpcyAxIGl0ZW0ifQogICAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgLmxhYmVsPSR7Ikl0ZW1zIGluIENhcnQifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRqdXN0IHRoZSBxdWFudGl0eSBvZiBpdGVtcyJ9CiAgICAgICAgICAgIC52YWx1ZT0kezN9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7Ik1vZGVybiBlLWNvbW1lcmNlIHByb2R1Y3QgY2FyZHMgd2l0aCBpbnRlcmFjdGl2ZSBxdWFudGl0eSBzZWxlY3RvcnMifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9aSgoKT0+e2xldCB0PXMucXVlcnlTZWxlY3RvcigiI2hlYWRwaG9uZXMtcXR5IiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNtb3VzZS1xdHkiKSxyPXMucXVlcnlTZWxlY3RvcigiI2tleWJvYXJkLXF0eSIpLG49dD8ucXVhbnRpdHl8fDAsbz1hPy5xdWFudGl0eXx8MCxsPXI/LnF1YW50aXR5fHwwLHA9MzQ5Ljk5Km4sZD05OS45OSpvLHU9NzkuOTkqbCxjPXArZCt1LGI9cy5xdWVyeVNlbGVjdG9yKCIjY2FydC1zdW1tYXJ5LWNvbnRlbnQiKTtiJiYoYi5pbm5lckhUTUw9YAogICAgICAgICAgICAgICR7bj4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+U29ueSBXSC0xMDAwWE01ICgke259KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke3AudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke28+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyAoJHtvfSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtkLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtsPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5LZXljaHJvbiBLMiAoJHtsfSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHt1LnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtjPT09MD8nPGRpdiBjbGFzcz0iY2FydC1pdGVtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTsiPllvdXIgY2FydCBpcyBlbXB0eTwvZGl2Pic6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfSwidXBkYXRlQ2FydFN1bW1hcnkiKTtzZXRUaW1lb3V0KGUsMTAwKSxzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoInF1YW50aXR5Q2hhbmdlIixlKX0pfX0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcHBpbmctZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0iaGVhZHBob25lcy1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTb255IFdILTEwMDBYTTUgV2lyZWxlc3MgSGVhZHBob25lcyIsY2F0ZWdvcnk6IkF1ZGlvIixkZXNjcmlwdGlvbjoiSW5kdXN0cnktbGVhZGluZyBub2lzZSBjYW5jZWxpbmcgd2l0aCBBdXRvIE5DIE9wdGltaXplciIscHJpY2U6MzQ5Ljk5LG9yaWdpbmFsUHJpY2U6Mzk5Ljk5LGljb25OYW1lOiJsdWNpZGU6aGVhZHBob25lcyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9Im1vdXNlLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiUGVyZm9ybWFuY2Ugd2lyZWxlc3MgbW91c2Ugd2l0aCB1bHRyYS1mYXN0IHNjcm9sbGluZyIscHJpY2U6OTkuOTksaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiS2V5Y2hyb24gSzIgV2lyZWxlc3MgTWVjaGFuaWNhbCBLZXlib2FyZCIsY2F0ZWdvcnk6IktleWJvYXJkcyIsZGVzY3JpcHRpb246IkNvbXBhY3QgNzUlIGxheW91dCB3aXRoIGhvdC1zd2FwcGFibGUgc3dpdGNoZXMiLHByaWNlOjc5Ljk5LG9yaWdpbmFsUHJpY2U6OTQuOTksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgIDxoMyBjbGFzcz0iY2FydC1zdW1tYXJ5LXRpdGxlIj5PcmRlciBTdW1tYXJ5PC9oMz4KICAgICAgICAgIDxkaXYgaWQ9ImNhcnQtc3VtbWFyeS1jb250ZW50Ij4KICAgICAgICAgICAgPCEtLSBDb250ZW50IHdpbGwgYmUgZHluYW1pY2FsbHkgdXBkYXRlZCAtLT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUmVxdWlyZWQgJiBEaXNhYmxlZCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBmb3IgdmFsaWRhdGlvbiBhbmQgcmVzdHJpY3Rpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgLmxhYmVsPSR7Ik51bWJlciBvZiBMaWNlbnNlcyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgaG93IG1hbnkgbGljZW5zZXMgeW91IG5lZWQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJGaXhlZCBRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIHF1YW50aXR5IGNhbm5vdCBiZSBjaGFuZ2VkIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezV9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJPcmRlciBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIG9yZGVyIGZvcm0gd2l0aCBxdWFudGl0eSBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ3VzdG9tZXIgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIFBsYW4iLCJQcm8gUGxhbiIsIkVudGVycHJpc2UgUGxhbiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJOdW1iZXIgb2YgbGljZW5zZXMifQogICAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiU3BlY2lhbCBJbnN0cnVjdGlvbnMifQogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIHQwYSxIZXQsbW5lLHFldD1nKCgpPT57cGUoKTtrdCgpO3ppKCk7ZTBhKCk7cHQoKTt0MGE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEhldD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbW5lPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFF1YW50aXR5U2VsZWN0b3IiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk51bWJlcn0pXSx0MGEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4idmFsdWUiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS52YWx1ZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnZhbHVlPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSx0MGEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1KZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUhldCh0aGlzLG8sMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IgewogICAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RvcjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IucGx1cyB7CiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHkgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIH0KCiAgICAgICAgLyogS2V5Ym9hcmQgbmF2aWdhdGlvbiBmb2N1cyBzdHlsZXMgKi8KICAgICAgICAuc2VsZWN0b3I6Zm9jdXMgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAvKiBNaW4gdmFsdWUgc3RhdGUgKi8KICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InF1YW50aXR5LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICBkYXRhLW1pbj0iJHt0aGlzLnZhbHVlPD0wfSIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2VsZWN0b3IgbWludXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmRlY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Q9PnsoZC5rZXk9PT0iRW50ZXIifHxkLmtleT09PSIgIikmJihkLnByZXZlbnREZWZhdWx0KCksdGhpcy5kZWNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkRlY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPuKIkjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icXVhbnRpdHkiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWF0b21pYz0idHJ1ZSI+JHt0aGlzLnZhbHVlfTwvZGl2PgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIHBsdXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmluY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Q9PnsoZC5rZXk9PT0iRW50ZXIifHxkLmtleT09PSIgIikmJihkLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkluY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPis8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWluY3JlYXNlKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWUrKyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9ZGVjcmVhc2UoKXshdGhpcy5kaXNhYmxlZCYmdGhpcy52YWx1ZT4wJiYodGhpcy52YWx1ZS0tLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGQpe3RoaXMudmFsdWU9ZH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksSGV0KHRoaXMsbCl9c3RhdGlje0hldChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgYTBhLHMwYT1nKCgpPT57cGUoKTtJdCgpO2ZvKCk7YTBhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpcHRpb24gUGxhbiJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIC0gJDkvbW9udGgiLCJQcm8gLSAkMjkvbW9udGgiLCJFbnRlcnByaXNlIC0gJDk5L21vbnRoIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB5b3VyIHN1YnNjcmlwdGlvbiB0aWVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTWVkaXVtIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJSYWRpbyBncm91cHMgd2l0aCBob3Jpem9udGFsIGFycmFuZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcz8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWWVzIiwiTm8iLCJNYXliZSJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiWWVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJlZ2lubmVyIiwiSW50ZXJtZWRpYXRlIiwiRXhwZXJ0Il19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHlvdXIgZXhwZXJpZW5jZSBsZXZlbCB3aXRoIHdlYiBkZXZlbG9wbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBBZHZhbmNlZCBPcHRpb25zIn0gLnN1YnRpdGxlPSR7IlVzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2FkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIGlkPSJhZHZhbmNlZC1yYWRpbyIKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUmVnaW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMgKFVTIEVhc3QpIixrZXk6InVzLWVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoidXMtZWFzdC0xIixsYXRlbmN5OjIwfX0se29wdGlvbjoiRXVyb3BlIChGcmFua2Z1cnQpIixrZXk6ImV1LWNlbnRyYWwiLHBheWxvYWQ6e3JlZ2lvbjoiZXUtY2VudHJhbC0xIixsYXRlbmN5OjUwfX0se29wdGlvbjoiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpIixrZXk6ImFwLXNvdXRoZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJhcC1zb3V0aGVhc3QtMSIsbGF0ZW5jeToxMjB9fV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZXUtY2VudHJhbCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIHRoZSBjbG9zZXN0IHJlZ2lvbiBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSJ9CiAgICAgICAgICBAY2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWdpb24tcmVzdWx0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlNlbGVjdGVkOiAiK0pTT04uc3RyaW5naWZ5KHMuZGV0YWlsLnZhbHVlLG51bGwsMikpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPGRpdiBpZD0icmVnaW9uLXJlc3VsdCIgY2xhc3M9InJlc3VsdC1kaXNwbGF5Ij5TZWxlY3RlZDogeyAicmVnaW9uIjogImV1LWNlbnRyYWwtMSIsICJsYXRlbmN5IjogNTAgfTwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3VydmV5IEV4YW1wbGUifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJWZXJ5IFNhdGlzZmllZCIsIlNhdGlzZmllZCIsIk5ldXRyYWwiLCJEaXNzYXRpc2ZpZWQiLCJWZXJ5IERpc3NhdGlzZmllZCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJTYXRpc2ZpZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGVmaW5pdGVseSIsIlByb2JhYmx5IiwiTm90IFN1cmUiLCJQcm9iYWJseSBOb3QiLCJEZWZpbml0ZWx5IE5vdCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm9iYWJseSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gU3RhdGVzICYgVmFsaWRhdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCB2YWxpZGF0aW9uIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgU2VsZWN0aW9uIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGlzYWJsZWQgT3B0aW9uIDEiLCJEaXNhYmxlZCBPcHRpb24gMiIsIkRpc2FibGVkIE9wdGlvbiAzIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRpc2FibGVkIE9wdGlvbiAyIn0KICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBQcmVmZXJlbmNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQgVGhlbWUiLGtleToibGlnaHQiLHBheWxvYWQ6ImxpZ2h0In0se29wdGlvbjoiRGFyayBUaGVtZSIsa2V5OiJkYXJrIixwYXlsb2FkOiJkYXJrIn0se29wdGlvbjoiU3lzdGVtIERlZmF1bHQiLGtleToic3lzdGVtIixwYXlsb2FkOiJhdXRvIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZGFyayJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYXBwZWFyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb24gRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkFsbCBOb3RpZmljYXRpb25zIiwiSW1wb3J0YW50IE9ubHkiLCJOb25lIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbXBvcnRhbnQgT25seSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDb250cm9sIGhvdyBvZnRlbiB5b3UgcmVjZWl2ZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCIsIkphcGFuZXNlIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiV29ya3Mgc2VhbWxlc3NseSB3aXRoIGRlZXMtZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IE5hbWUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJwcm9kdWN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgQ2F0ZWdvcnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRWxlY3Ryb25pY3MiLCJDbG90aGluZyIsIkJvb2tzIiwiSG9tZSAmIEdhcmRlbiIsIlNwb3J0cyJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJjYXRlZ29yeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJOZXciLCJMaWtlIE5ldyIsIkdvb2QiLCJGYWlyIiwiUG9vciJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJOZXcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJTaGlwcGluZyBTcGVlZCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlN0YW5kYXJkICg1LTcgZGF5cykiLGtleToic3RhbmRhcmQiLHBheWxvYWQ6e2RheXM6NyxwcmljZTowfX0se29wdGlvbjoiRXhwcmVzcyAoMi0zIGRheXMpIixrZXk6ImV4cHJlc3MiLHBheWxvYWQ6e2RheXM6MyxwcmljZToxMH19LHtvcHRpb246Ik92ZXJuaWdodCIsa2V5OiJvdmVybmlnaHQiLHBheWxvYWQ6e2RheXM6MSxwcmljZToyNX19XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InN0YW5kYXJkIn0KICAgICAgICAgICAgLmtleT0keyJzaGlwcGluZyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBQcm9kdWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgVFosdHUsZ25lLGJuZT1nKCgpPT57cGUoKTt6aSgpO3MwYSgpO3B0KCk7VFo9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHR1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxnbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LXJhZGlvZ3JvdXAiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UmFkaW9ncm91cCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCgpXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLFRaKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3B0aW9ucyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm9wdGlvbnMsImdldCIpLHNldDppKCh6LE4pPT57ei5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxUWih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZE9wdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2VsZWN0ZWRPcHRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLFRaKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkaXJlY3Rpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5kaXJlY3Rpb24sImdldCIpLHNldDppKCh6LE4pPT57ei5kaXJlY3Rpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLFRaKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ2YWxpZGF0aW9uU3RhdGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei52YWxpZGF0aW9uU3RhdGUsImdldCIpLHNldDppKCh6LE4pPT57ei52YWxpZGF0aW9uU3RhdGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLFRaKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89YTBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT10dSh0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoTSl7dGhpcy4jZT1NfSN0PSh0dSh0aGlzLGwpLHR1KHRoaXMsZCwiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZE9wdGlvbihNKXt0aGlzLiN0PU19I2E9KHR1KHRoaXMsdSksdHUodGhpcyxiLCJ2ZXJ0aWNhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpcmVjdGlvbihNKXt0aGlzLiNhPU19I3M9KHR1KHRoaXMsdiksdHUodGhpcyxtLG51bGwpKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25TdGF0ZShNKXt0aGlzLiNzPU19Z2V0IHZhbHVlKCl7bGV0IE09dGhpcy5nZXRPcHRpb25CeUtleSh0aGlzLnNlbGVjdGVkT3B0aW9uKTtyZXR1cm4gdHlwZW9mIE09PSJvYmplY3QiJiZNLnBheWxvYWQhPT12b2lkIDA/TS5wYXlsb2FkOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKE0pe2lmKHR5cGVvZiBNPT0ic3RyaW5nIil0aGlzLnNlbGVjdGVkT3B0aW9uPU07ZWxzZXtsZXQgej10aGlzLm9wdGlvbnMuZmluZChOPT50eXBlb2YgTj09Im9iamVjdCImJk4ucGF5bG9hZD09PU0pO3omJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHRoaXMuc2VsZWN0ZWRPcHRpb249ei5rZXkpfX1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmhvcml6b250YWwgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDIwcHggNnB4IDA7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tY2lyY2xlIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZTo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGU6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgMy45JSkiKX0sCiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICB9CgogICAgICAubGFiZWwtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdKSAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0idmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9Indhcm4iXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogT3ZlcnJpZGUgYmFzZSBncmlkIGxheW91dCBmb3IgcmFkaW9ncm91cCB0byBwcmV2ZW50IGxhcmdlIGdhcHMgKi8KICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJsYWJlbC10ZXh0Ij4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcChNPT57bGV0IHo9dGhpcy5nZXRPcHRpb25LZXkoTSksTj10aGlzLmdldE9wdGlvbkxhYmVsKE0pLEM9dGhpcy5zZWxlY3RlZE9wdGlvbj09PXo7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1vcHRpb24gJHtDPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdE9wdGlvbih6KX0iCiAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHtfPT50aGlzLmhhbmRsZUtleWRvd24oXyx6KX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9InJhZGlvLWNpcmNsZSIgCiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICAgICAgICByb2xlPSJyYWRpbyIKICAgICAgICAgICAgICAgICAgYXJpYS1jaGVja2VkPSIke0N9IgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSIke059IgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaW8tbGFiZWwiPiR7Tn08L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0T3B0aW9uS2V5KE0pe3JldHVybiB0eXBlb2YgTT09InN0cmluZyI/TTpNLmtleX1nZXRPcHRpb25MYWJlbChNKXtyZXR1cm4gdHlwZW9mIE09PSJzdHJpbmciP006TS5vcHRpb259Z2V0T3B0aW9uQnlLZXkoTSl7cmV0dXJuIHRoaXMub3B0aW9ucy5maW5kKHo9PnRoaXMuZ2V0T3B0aW9uS2V5KHopPT09TSl9c2VsZWN0T3B0aW9uKE0pe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCB6PXRoaXMuc2VsZWN0ZWRPcHRpb247dGhpcy5zZWxlY3RlZE9wdGlvbj1NLHohPT1NJiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKE0pe3RoaXMudmFsdWU9TX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYhdGhpcy5zZWxlY3RlZE9wdGlvbj8odGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExKToodGhpcy52YWxpZGF0aW9uU3RhdGU9InZhbGlkIiwhMCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoIXRoaXMuc2VsZWN0ZWRPcHRpb24mJnRoaXMub3B0aW9ucy5sZW5ndGg+MCYmIXRoaXMucmVxdWlyZWQpe2xldCBNPXRoaXMub3B0aW9uc1swXTt0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuZ2V0T3B0aW9uS2V5KE0pfX1oYW5kbGVLZXlkb3duKE0seil7dGhpcy5kaXNhYmxlZHx8KE0ua2V5PT09IiAifHxNLmtleT09PSJFbnRlciI/KE0ucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbGVjdE9wdGlvbih6KSk6TS5rZXk9PT0iQXJyb3dEb3duInx8TS5rZXk9PT0iQXJyb3dSaWdodCI/KE0ucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE9wdGlvbigpKTooTS5rZXk9PT0iQXJyb3dVcCJ8fE0ua2V5PT09IkFycm93TGVmdCIpJiYoTS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNQcmV2aW91c09wdGlvbigpKSl9Zm9jdXNOZXh0T3B0aW9uKCl7bGV0IE09QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSxOPShNLmZpbmRJbmRleChDPT5DPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpKzEpJU0ubGVuZ3RoO01bTl0uZm9jdXMoKX1mb2N1c1ByZXZpb3VzT3B0aW9uKCl7bGV0IE09QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSx6PU0uZmluZEluZGV4KEM9PkM9PT10aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCksTj16PD0wP00ubGVuZ3RoLTE6ei0xO01bTl0uZm9jdXMoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdHUodGhpcyxmKX1zdGF0aWN7dHUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGkwYSxyMGE9ZygoKT0+e3BlKCk7aTBhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAyNHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gaDMgewogICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogIzg4ODsKICAgIH0KICAgIC5kZW1vLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTJweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJhc2ljIFVzYWdlPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHRleHQ9IldpdGggVGV4dCBQcm9wZXJ0eSI+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5XaXRoIEljb25zIChpbmhlcml0ZWQgZnJvbSBEZWVzQnV0dG9uKTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6c2VuZCI+U3VibWl0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzYXZlIiBpY29uUG9zaXRpb249ImxlZnQiPlNhdmUgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6YXJyb3ctcmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiPkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CdXR0b24gVHlwZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0iaGlnaGxpZ2h0ZWQiIGljb249Imx1Y2lkZTpzZW5kIj5IaWdobGlnaHRlZDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0iZGlzY3JlZXQiIGljb249Imx1Y2lkZTpzZW5kIj5EaXNjcmVldDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ic21hbGwiIGljb249Imx1Y2lkZTpzZW5kIj5TbWFsbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ibGFyZ2UiIGljb249Imx1Y2lkZTpzZW5kIj5MYXJnZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U3RhdGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0ibm9ybWFsIiBpY29uPSJsdWNpZGU6c2VuZCI+Tm9ybWFsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0icGVuZGluZyIgaWNvbj0ibHVjaWRlOnNlbmQiPlBlbmRpbmc8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJzdWNjZXNzIiBpY29uPSJsdWNpZGU6Y2hlY2siPlN1Y2Nlc3M8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJlcnJvciIgaWNvbj0ibHVjaWRlOngiPkVycm9yPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGRpc2FibGVkIGljb249Imx1Y2lkZTpzZW5kIj5EaXNhYmxlZDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW4gYSBGb3JtIENvbnRleHQ8L2gzPgogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iRW1haWwiIGtleT0iZW1haWwiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIiB0eXBlPSJoaWdobGlnaHRlZCI+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgeWgsQ24sdm5lLEE4PWcoKCk9PntyMGEoKTtwZSgpO3B0KCk7eWg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx2bmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWZvcm0tc3VibWl0IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtU3VibWl0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx5PVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6U3RyaW5nfSldLHloKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRpc2FibGVkImluIFMsImhhcyIpLGdldDppKFM9PlMuZGlzYWJsZWQsImdldCIpLHNldDppKChTLEkpPT57Uy5kaXNhYmxlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCkseWgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0ZXh0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGV4dCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHloKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdGF0dXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdGF0dXMsImdldCIpLHNldDppKChTLEkpPT57Uy5zdGF0dXM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLHloKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idHlwZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnR5cGUsImdldCIpLHNldDppKChTLEkpPT57Uy50eXBlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSx5aCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNpemUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaXplLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2l6ZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seikseWgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpY29uImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmljb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLHloKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpY29uUG9zaXRpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pY29uUG9zaXRpb24sImdldCIpLHNldDppKChTLEkpPT57Uy5pY29uUG9zaXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLHloKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aTBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSIsIkJ1dHRvbiJdOyNlPUNuKHRoaXMsbywhMSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRpc2FibGVkKGspe3RoaXMuI2U9a30jdD0oQ24odGhpcyxsKSxDbih0aGlzLGQsdm9pZCAwKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChrKXt0aGlzLiN0PWt9I2E9KENuKHRoaXMsdSksQ24odGhpcyxiLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXMoayl7dGhpcy4jYT1rfSNzPShDbih0aGlzLHYpLENuKHRoaXMsbSwiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNzfXNldCB0eXBlKGspe3RoaXMuI3M9a30jaT0oQ24odGhpcyxmKSxDbih0aGlzLE0sImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2l6ZShrKXt0aGlzLiNpPWt9I3I9KENuKHRoaXMseiksQ24odGhpcyxDLHZvaWQgMCkpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGljb24oayl7dGhpcy4jcj1rfSNvPShDbih0aGlzLF8pLENuKHRoaXMsJCwibGVmdCIpKTtnZXQgaWNvblBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI299c2V0IGljb25Qb3NpdGlvbihrKXt0aGlzLiNvPWt9Y29uc3RydWN0b3IoKXtzdXBlcigpLENuKHRoaXMsRSl9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgZGVlcy1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgLnN0YXR1cz0ke3RoaXMuc3RhdHVzfQogICAgICAgIC50eXBlPSR7dGhpcy50eXBlfQogICAgICAgIC5zaXplPSR7dGhpcy5zaXplfQogICAgICAgIC5pY29uPSR7dGhpcy5pY29ufQogICAgICAgIC5pY29uUG9zaXRpb249JHt0aGlzLmljb25Qb3NpdGlvbn0KICAgICAgICAudGV4dD0ke3RoaXMudGV4dH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgIEBjbGlja2VkPSR7dGhpcy5zdWJtaXR9CiAgICAgID48L2RlZXMtYnV0dG9uPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZighdGhpcy50ZXh0KXtsZXQgaz10aGlzLnRleHRDb250ZW50Py50cmltKCk7ayYmKHRoaXMudGV4dD1rKX19YXN5bmMgc3VibWl0KCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IGs9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtrJiZrLmdhdGhlckFuZERpc3BhdGNoJiZrLmdhdGhlckFuZERpc3BhdGNoKCl9YXN5bmMgZm9jdXMoKXtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmRpc2FibGVkfHwoYXdhaXQgay5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWl0KCkpfXN0YXRpY3tDbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgbzBhLG4wYT1nKCgpPT57cGUoKTtJdCgpO2ZvKCk7dXYoKTtBOCgpO28wYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3BhY2VyIHsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgQ291bnRyeSJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBSb2xlIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2NvbnNvbGUubG9nKCJDb3VudHJ5IHNlbGVjdGVkOiIsYS5kZXRhaWwpfSkpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChhPT57Y29uc29sZS5sb2coIlJvbGUgc2VsZWN0ZWQ6IixhLmRldGFpbCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIERyb3Bkb3ducyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCBkcm9wZG93biB3aXRoIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGFuZCB2YXJpb3VzIG9wdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBDb3VudHJ5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB0aGUgY291bnRyeSB3aGVyZSB5b3VyIGJ1c2luZXNzIGlzIHJlZ2lzdGVyZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn0se29wdGlvbjoiQXVzdHJhbGlhIixrZXk6ImF1In0se29wdGlvbjoiSmFwYW4iLGtleToianAifSx7b3B0aW9uOiJCcmF6aWwiLGtleToiYnIifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBSb2xlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQWRtaW5pc3RyYXRvciIsa2V5OiJhZG1pbiJ9LHtvcHRpb246IkVkaXRvciIsa2V5OiJlZGl0b3IifSx7b3B0aW9uOiJWaWV3ZXIiLGtleToidmlld2VyIn0se29wdGlvbjoiR3Vlc3QiLGtleToiZ3Vlc3QifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwodD0+e2NvbnNvbGUubG9nKGBQcmlvcml0eSBjaGFuZ2VkIHRvOiAke3QuZGV0YWlsLm9wdGlvbn1gKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gV2l0aG91dCBTZWFyY2gifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBkaXNhYmxlZCBmb3Igc2ltcGxlciBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkhpZ2giLGtleToiaGlnaCJ9LHtvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiJMb3ciLGtleToibG93In1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiTWVkaXVtIixrZXk6Im1lZGl1bSJ9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kcm9wZG93biIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChhPT57bGV0IHI9dC5nZXRBdHRyaWJ1dGUoImxhYmVsIik7Y29uc29sZS5sb2coYCR7cn06ICR7YS5kZXRhaWwub3B0aW9ufWApfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGRyb3Bkb3ducyBpbiBhIGhvcml6b250YWwgbGF5b3V0IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXBhcnRtZW50In0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdpbmVlcmluZyIsa2V5OiJlbmcifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiTWFya2V0aW5nIixrZXk6Im1hcmtldGluZyJ9LHtvcHRpb246IlNhbGVzIixrZXk6InNhbGVzIn1dfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBTaXplIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiMS01IixrZXk6InNtYWxsIn0se29wdGlvbjoiNi0yMCIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiIyMS01MCIsa2V5OiJsYXJnZSJ9LHtvcHRpb246IjUwKyIsa2V5OiJ4bGFyZ2UifV19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIC5sYWJlbD0keyJMb2NhdGlvbiJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVtb3RlIixrZXk6InJlbW90ZSJ9LHtvcHRpb246Ik9uLXNpdGUiLGtleToib25zaXRlIn0se29wdGlvbjoiSHlicmlkIixrZXk6Imh5YnJpZCJ9XX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd25bcmVxdWlyZWRdIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJSZXF1aXJlZCBkcm9wZG93biBsb3N0IGZvY3VzIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBGaWVsZCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJPcHRpb24gQSIsa2V5OiJhIn0se29wdGlvbjoiT3B0aW9uIEIiLGtleToiYiJ9LHtvcHRpb246Ik9wdGlvbiBDIixrZXk6ImMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBEcm9wZG93biJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkaXYgY2xhc3M9InNwYWNlciI+CiAgICAgIChTcGFjZXIgdG8gdGVzdCBkcm9wZG93biBwb3NpdGlvbmluZykKICAgIDwvZGl2PgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHQ9Pntjb25zb2xlLmxvZygiQm90dG9tIGRyb3Bkb3duIHNlbGVjdGVkOiIsdC5kZXRhaWwpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBCb3R0b20gUG9zaXRpb25pbmcifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gdGhhdCBvcGVucyB1cHdhcmQgd2hlbiBuZWFyIGJvdHRvbSBvZiB2aWV3cG9ydCJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiT3BlbnMgVXB3YXJkIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkZpcnN0IE9wdGlvbiIsa2V5OiJmaXJzdCJ9LHtvcHRpb246IlNlY29uZCBPcHRpb24iLGtleToic2Vjb25kIn0se29wdGlvbjoiVGhpcmQgT3B0aW9uIixrZXk6InRoaXJkIn0se29wdGlvbjoiRm91cnRoIE9wdGlvbiIsa2V5OiJmb3VydGgifSx7b3B0aW9uOiJGaWZ0aCBPcHRpb24iLGtleToiZmlmdGgifV19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKSx0PXMucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtlJiZ0JiYodC5pbm5lckhUTUw9IjxlbT5TZWxlY3QgYSBwcm9kdWN0IHRvIHNlZSBkZXRhaWxzLi4uPC9lbT4iLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2EuZGV0YWlsLnZhbHVlJiYodC5pbm5lckhUTUw9YAogICAgICAgICAgICAgIDxzdHJvbmc+U2VsZWN0ZWQ6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUub3B0aW9ufTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPktleTo8L3N0cm9uZz4gJHthLmRldGFpbC52YWx1ZS5rZXl9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+UHJpY2U6PC9zdHJvbmc+ICQke2EuZGV0YWlsLnZhbHVlLnBheWxvYWQ/LnByaWNlfHwiTi9BIn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5GZWF0dXJlczo8L3N0cm9uZz4gJHthLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5mZWF0dXJlcz8uam9pbigiLCAiKXx8Ik4vQSJ9CiAgICAgICAgICAgIGApfSkpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRXZlbnQgSGFuZGxpbmcgJiBQYXlsb2FkIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggcGF5bG9hZCBkYXRhIGFuZCBjaGFuZ2UgZXZlbnQgaGFuZGxpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBQcm9kdWN0In0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkJhc2ljIFBsYW4iLGtleToiYmFzaWMiLHBheWxvYWQ6e3ByaWNlOjkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiXX19LHtvcHRpb246IlBybyBQbGFuIixrZXk6InBybyIscGF5bG9hZDp7cHJpY2U6MTkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiXX19LHtvcHRpb246IkVudGVycHJpc2UgUGxhbiIsa2V5OiJlbnRlcnByaXNlIixwYXlsb2FkOntwcmljZTo0OS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSIsIkZlYXR1cmUgQiIsIkZlYXR1cmUgQyJdfX1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IHBhZGRpbmc6IDEycHg7IGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7IGJvcmRlci1yYWRpdXM6IDRweDsgZm9udC1zaXplOiAxNHB4OyI+PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9InByb2plY3RUeXBlIl0nKSxhPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9ImZyYW1ld29yayJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKHI9Pntjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsci5kZXRhaWwuZGF0YSl9KSksdCYmYSYmdC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHI9PntsZXQgbj1yLmRldGFpbC5rZXk7Y29uc29sZS5sb2coYFByb2plY3QgdHlwZSBjaGFuZ2VkIHRvOiAke259YCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd29ya2luZyB3aXRoaW4gYSBmb3JtIHdpdGggdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBUeXBlIn0KICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0VHlwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJXZWIgQXBwbGljYXRpb24iLGtleToid2ViIn0se29wdGlvbjoiTW9iaWxlIEFwcGxpY2F0aW9uIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgQXBwbGljYXRpb24iLGtleToiZGVza3RvcCJ9LHtvcHRpb246IkFQSSBTZXJ2aWNlIixrZXk6ImFwaSJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wbWVudCBGcmFtZXdvcmsifQogICAgICAgICAgICAua2V5PSR7ImZyYW1ld29yayJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJSZWFjdCIsa2V5OiJyZWFjdCIscGF5bG9hZDp7dHlwZToid2ViIn19LHtvcHRpb246IlZ1ZS5qcyIsa2V5OiJ2dWUiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJBbmd1bGFyIixrZXk6ImFuZ3VsYXIiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJSZWFjdCBOYXRpdmUiLGtleToicmVhY3QtbmF0aXZlIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRmx1dHRlciIsa2V5OiJmbHV0dGVyIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRWxlY3Ryb24iLGtleToiZWxlY3Ryb24iLHBheWxvYWQ6e3R5cGU6ImRlc2t0b3AifX1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiQ3JlYXRlIFByb2plY3QifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBaMSxscix4bmUsamV0PWcoKCk9PntwZSgpO2t0KCk7em4oKTtDcigpO3B0KCk7RjEoKTtaMT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbHI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHhuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtZHJvcGRvd24tcG9wdXAiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXTt2YXIgbWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dERyb3Bkb3duUG9wdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7YXR0cmlidXRlOiExfSldLHk9W0woe2F0dHJpYnV0ZTohMX0pXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sWjEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJvcHRpb25zImluIFUsImhhcyIpLGdldDppKFU9PlUub3B0aW9ucywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5vcHRpb25zPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksWjEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImVuYWJsZVNlYXJjaCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmVuYWJsZVNlYXJjaCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5lbmFibGVTZWFyY2g9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sZCx1KSxaMSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Im9wZW5zVG9Ub3AiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5vcGVuc1RvVG9wLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLm9wZW5zVG9Ub3A9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sYix2KSxaMSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyaWdnZXJSZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0cmlnZ2VyUmVjdCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnRyaWdnZXJSZWN0PWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG0sZiksWjEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ib3duZXJDb21wb25lbnQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5vd25lckNvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5vd25lckNvbXBvbmVudD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxNLHopLFoxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJmaWx0ZXJlZE9wdGlvbnMiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5maWx0ZXJlZE9wdGlvbnMsImdldCIpLHNldDppKChVLGhlKT0+e1UuZmlsdGVyZWRPcHRpb25zPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LEMsXyksWjEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJoaWdobGlnaHRlZEluZGV4ImluIFUsImhhcyIpLGdldDppKFU9PlUuaGlnaGxpZ2h0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5oaWdobGlnaHRlZEluZGV4PWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LCQsRSksWjEodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2VhcmNoVmFsdWUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zZWFyY2hWYWx1ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zZWFyY2hWYWx1ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLFoxKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ibWVudVpJbmRleCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChVLGhlKT0+e1UubWVudVpJbmRleD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLFoxKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idmlzaWJsZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnZpc2libGUsImdldCIpLHNldDppKChVLGhlKT0+e1UudmlzaWJsZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxWLFcpLFoxKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsdCksbWU9YT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfSNlPWxyKHRoaXMsbyxbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhCKXt0aGlzLiNlPUJ9I3Q9KGxyKHRoaXMsbCksbHIodGhpcyxkLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVTZWFyY2goQil7dGhpcy4jdD1CfSNhPShscih0aGlzLHUpLGxyKHRoaXMsYiwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9wZW5zVG9Ub3AoQil7dGhpcy4jYT1CfSNzPShscih0aGlzLHYpLGxyKHRoaXMsbSxudWxsKSk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRyaWdnZXJSZWN0KEIpe3RoaXMuI3M9Qn0jaT0obHIodGhpcyxmKSxscih0aGlzLE0sbnVsbCkpO2dldCBvd25lckNvbXBvbmVudCgpe3JldHVybiB0aGlzLiNpfXNldCBvd25lckNvbXBvbmVudChCKXt0aGlzLiNpPUJ9I3I9KGxyKHRoaXMseiksbHIodGhpcyxDLFtdKSk7Z2V0IGZpbHRlcmVkT3B0aW9ucygpe3JldHVybiB0aGlzLiNyfXNldCBmaWx0ZXJlZE9wdGlvbnMoQil7dGhpcy4jcj1CfSNvPShscih0aGlzLF8pLGxyKHRoaXMsJCwwKSk7Z2V0IGhpZ2hsaWdodGVkSW5kZXgoKXtyZXR1cm4gdGhpcy4jb31zZXQgaGlnaGxpZ2h0ZWRJbmRleChCKXt0aGlzLiNvPUJ9I249KGxyKHRoaXMsRSksbHIodGhpcyxrLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNlYXJjaFZhbHVlKEIpe3RoaXMuI249Qn0jbD0obHIodGhpcyxTKSxscih0aGlzLFAsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWVudVpJbmRleChCKXt0aGlzLiNsPUJ9I2M9KGxyKHRoaXMsUiksbHIodGhpcyxWLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmlzaWJsZShCKXt0aGlzLiNjPUJ9d2luZG93TGF5ZXI9KGxyKHRoaXMsVyksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMC45OCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnRvcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3guc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5uby1vcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy50cmlnZ2VyUmVjdClyZXR1cm4gd2BgO2xldCBCPXRoaXMuY29tcHV0ZVBvc2l0aW9uU3R5bGUoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJzZWxlY3Rpb25Cb3ggJHt0aGlzLnZpc2libGU/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iCiAgICAgICAgc3R5bGU9IiR7Qn07IHotaW5kZXg6ICR7dGhpcy5tZW51WkluZGV4fTsiCiAgICAgID4KICAgICAgICAke3RoaXMuZW5hYmxlU2VhcmNoP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIG9wdGlvbnMuLi4iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLnNlYXJjaFZhbHVlfSIKICAgICAgICAgICAgICAgICAgQGlucHV0PSIke3RoaXMuaGFuZGxlU2VhcmNofSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke1U9PlUuc3RvcFByb3BhZ2F0aW9uKCl9IgogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlYXJjaEtleWRvd259IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDpudWxsfQogICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9Im5vLW9wdGlvbnMiPk5vIG9wdGlvbnMgZm91bmQ8L2Rpdj5gOnRoaXMuZmlsdGVyZWRPcHRpb25zLm1hcCgoVSxoZSk9PntsZXQgRj10aGlzLmhpZ2hsaWdodGVkSW5kZXg9PT1oZTtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcHRpb24gJHtGPyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oVSl9IgogICAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSIkeygpPT50aGlzLmhpZ2hsaWdodGVkSW5kZXg9aGV9IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtVLm9wdGlvbn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb21wdXRlUG9zaXRpb25TdHlsZSgpe2xldCBCPXRoaXMudHJpZ2dlclJlY3QsVT1CLmxlZnQsaGU9Qi53aWR0aDtpZih0aGlzLm9wZW5zVG9Ub3Ape2xldCBGPXdpbmRvdy5pbm5lckhlaWdodC1CLnRvcCs0O3JldHVybmBsZWZ0OiAke1V9cHg7IHdpZHRoOiAke2hlfXB4OyBib3R0b206ICR7Rn1weDsgdG9wOiBhdXRvYH1lbHNle2xldCBGPUIuYm90dG9tKzQ7cmV0dXJuYGxlZnQ6ICR7VX1weDsgd2lkdGg6ICR7aGV9cHg7IHRvcDogJHtGfXB4YH19YXN5bmMgc2hvdygpe3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgaG8uY3JlYXRlQW5kU2hvdygpLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX0pLHRoaXMubWVudVpJbmRleD14YS5nZXROZXh0WkluZGV4KCkseGEucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcyksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7cGFzc2l2ZTohMH0pfWFzeW5jIGhpZGUoKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx4YS51bnJlZ2lzdGVyKHRoaXMpLHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wLHRoaXMud2luZG93TGF5ZXImJih0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyPW51bGwpLHRoaXMudmlzaWJsZT0hMSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5pc0Rlc3Ryb3lpbmc9ITEpfWFzeW5jIGZvY3VzU2VhcmNoSW5wdXQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBCPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoIGlucHV0Iik7QiYmQi5mb2N1cygpfXVwZGF0ZU9wdGlvbnMoQil7aWYodGhpcy5vcHRpb25zPUIsdGhpcy5zZWFyY2hWYWx1ZSl7bGV0IFU9dGhpcy5zZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIoaGU9PmhlLm9wdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFUpKX1lbHNlIHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9uczt0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH1zZWxlY3RPcHRpb24oQil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib3B0aW9uLXNlbGVjdGVkIix7ZGV0YWlsOkJ9KSl9aGFuZGxlU2VhcmNoPWkoQj0+e2xldCBVPUIudGFyZ2V0LnZhbHVlO3RoaXMuc2VhcmNoVmFsdWU9VTtsZXQgaGU9VS50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIoRj0+Ri5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhoZSkpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wfSwiaGFuZGxlU2VhcmNoIik7aGFuZGxlU2VhcmNoS2V5ZG93bj1pKEI9PntsZXQgVT1CLmtleSxoZT10aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgtMTtVPT09IkFycm93RG93biI/KEIucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4KzE+aGU/MDp0aGlzLmhpZ2hsaWdodGVkSW5kZXgrMSk6VT09PSJBcnJvd1VwIj8oQi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD10aGlzLmhpZ2hsaWdodGVkSW5kZXgtMTwwP2hlOnRoaXMuaGlnaGxpZ2h0ZWRJbmRleC0xKTpVPT09IkVudGVyIj8oQi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0mJnRoaXMuc2VsZWN0T3B0aW9uKHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0pKTpVPT09IkVzY2FwZSImJihCLnByZXZlbnREZWZhdWx0KCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKSl9LCJoYW5kbGVTZWFyY2hLZXlkb3duIik7aGFuZGxlU2Nyb2xsT3JSZXNpemU9aSgoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcG9zaXRpb24tcmVxdWVzdCIpKX0sImhhbmRsZVNjcm9sbE9yUmVzaXplIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx4YS51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tscihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIHB2LFgxLHluZSx3bmU9ZygoKT0+e3BlKCk7bjBhKCk7emkoKTtDcigpO3B0KCk7amV0KCk7cHY9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFgxPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5bmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWRyb3Bkb3duIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dERyb3Bkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx5PVtZKCldLHB2KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ib3B0aW9ucyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLm9wdGlvbnMsImdldCIpLHNldDppKChfLE8pPT57Xy5vcHRpb25zPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxwdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZE9wdGlvbiJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2VsZWN0ZWRPcHRpb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLHB2KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlU2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJlbmFibGVTZWFyY2giaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5lbmFibGVTZWFyY2gsImdldCIpLHNldDppKChfLE8pPT57Xy5lbmFibGVTZWFyY2g9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLHB2KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmludGVncmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InZpbnRlZ3JhdGVkImluIF8sImhhcyIpLGdldDppKF89Pl8udmludGVncmF0ZWQsImdldCIpLHNldDppKChfLE8pPT57Xy52aW50ZWdyYXRlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZikscHYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaXNPcGVuZWQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pc09wZW5lZCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmlzT3BlbmVkPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxwdihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPW8wYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WDEodGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKEMpe3RoaXMuI2U9Q30jdD0oWDEodGhpcyxsKSxYMSh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZE9wdGlvbihDKXt0aGlzLiN0PUN9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKEMpe3RoaXMuc2VsZWN0ZWRPcHRpb249Q30jYT0oWDEodGhpcyx1KSxYMSh0aGlzLGIsITApKTtnZXQgZW5hYmxlU2VhcmNoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVuYWJsZVNlYXJjaChDKXt0aGlzLiNhPUN9I3M9KFgxKHRoaXMsdiksWDEodGhpcyxtLCExKSk7Z2V0IHZpbnRlZ3JhdGVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZpbnRlZ3JhdGVkKEMpe3RoaXMuI3M9Q30jaT0oWDEodGhpcyxmKSxYMSh0aGlzLE0sITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNPcGVuZWQoQyl7dGhpcy4jaT1DfXBvcHVwSW5zdGFuY2U9KFgxKHRoaXMseiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogRHJvcGRvd24gYXJyb3cgKi8KICAgICAgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94Lm9wZW46OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIFZpc3VhbGx5IGludGVncmF0ZWQgbW9kZTogc2hlZCBjaHJvbWUgdG8gYmxlbmQgaW50byBhIGhvc3QgY29tcG9uZW50CiAgICAgICAgIChlLmcuIGEgZGVlcy10YWJsZSBjZWxsIGluIGVkaXQgbW9kZSkuICovCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGRlZXMtbGFiZWwgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3ggewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDMycHggMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic2VsZWN0ZWRCb3ggJHt0aGlzLmlzT3BlbmVkPyJvcGVuIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpfSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkT3B0aW9uPy5vcHRpb258fCJTZWxlY3QgYW4gb3B0aW9uIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLnNlbGVjdGVkT3B0aW9ufHxudWxsfXVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSxDLmhhcygib3B0aW9ucyIpJiZ0aGlzLnBvcHVwSW5zdGFuY2UmJnRoaXMuaXNPcGVuZWQmJnRoaXMucG9wdXBJbnN0YW5jZS51cGRhdGVPcHRpb25zKHRoaXMub3B0aW9ucyl9YXN5bmMgdXBkYXRlU2VsZWN0aW9uKEMpe3RoaXMuc2VsZWN0ZWRPcHRpb249Qyx0aGlzLmNsb3NlUG9wdXAoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3RlZE9wdGlvbiIse2RldGFpbDpDLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9YXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCl7aWYodGhpcy5pc09wZW5lZCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufXRoaXMuaXNPcGVuZWQ9ITA7bGV0IF89dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE89d2luZG93LmlubmVySGVpZ2h0LV8uYm90dG9tLCQ9Xy50b3AsRT1PPDMwMCYmJD5PO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgeG5lKSx0aGlzLnBvcHVwSW5zdGFuY2Uub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVNlYXJjaD10aGlzLmVuYWJsZVNlYXJjaCx0aGlzLnBvcHVwSW5zdGFuY2Uub3BlbnNUb1RvcD1FLHRoaXMucG9wdXBJbnN0YW5jZS50cmlnZ2VyUmVjdD1fLHRoaXMucG9wdXBJbnN0YW5jZS5vd25lckNvbXBvbmVudD10aGlzLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLnNob3coKSx0aGlzLmVuYWJsZVNlYXJjaCYmYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLmZvY3VzU2VhcmNoSW5wdXQoKX1jbG9zZVBvcHVwKCl7dGhpcy5pc09wZW5lZD0hMSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCkpfWhhbmRsZU9wdGlvblNlbGVjdGVkPWkoQz0+e2xldCBfPUMuZGV0YWlsO3RoaXMudXBkYXRlU2VsZWN0aW9uKF8pfSwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQiKTtoYW5kbGVDbG9zZVJlcXVlc3Q9aSgoKT0+e3RoaXMuY2xvc2VQb3B1cCgpfSwiaGFuZGxlQ2xvc2VSZXF1ZXN0Iik7aGFuZGxlUmVwb3NpdGlvblJlcXVlc3Q9aSgoKT0+e2lmKCF0aGlzLnBvcHVwSW5zdGFuY2V8fCF0aGlzLmlzT3BlbmVkKXJldHVybjtsZXQgQz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkQm94Iik7aWYoIUMpcmV0dXJuO2xldCBfPUMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoXy5ib3R0b208MHx8Xy50b3A+d2luZG93LmlubmVySGVpZ2h0KXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59bGV0IE89d2luZG93LmlubmVySGVpZ2h0LV8uYm90dG9tLCQ9Xy50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9TzwzMDAmJiQ+Tyx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X30sImhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0Iik7aGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3duKEMpe3RoaXMuZGlzYWJsZWR8fChDLmtleT09PSJFbnRlciJ8fEMua2V5PT09IiAiPyhDLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Qy5rZXk9PT0iQXJyb3dEb3duInx8Qy5rZXk9PT0iQXJyb3dVcCI/KEMucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkfHx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpDLmtleT09PSJFc2NhcGUiJiYoQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWQmJnRoaXMuY2xvc2VQb3B1cCgpKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShDKXt0aGlzLnNlbGVjdGVkT3B0aW9uPUN9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje1gxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBsMGEsYzBhPWcoKCk9PntwZSgpO1ZldCgpO2ZvKCk7bDBhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1zaGVsbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDExNjBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7CiAgICAgICAgICAuZGVtby1ncmlkLS10d28gewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zdGFjayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMThweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDkwJSkiLCJoc2woMjE1IDIwJSAyNiUpIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTMgMTAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyNSUgMzIlKSIsImhzbCgyMTUgMjAlIDgyJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNDUlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zaGVsbCI+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ik1vZGVybiBmaWxlIHVwbG9hZGVyIn0KICAgICAgICAuc3VidGl0bGU9JHsiU2hhZGNuLWluc3BpcmVkIGxheW91dCB3aXRoIGRyYWcgJiBkcm9wLCBwcmV2aWV3cyBhbmQgdmFsaWRhdGlvbiJ9CiAgICAgID4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIGRlbW8tZ3JpZC0tdHdvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkF0dGFjaG1lbnRzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWQgc3VwcG9ydGluZyBkb2N1bWVudHMgZm9yIHlvdXIgcmVxdWVzdCJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWNjZXB0ZWQgZm9ybWF0czogaW1hZ2VzLCBQREYsIGFuZCBaSVAgYXJjaGl2ZXMgdXAgdG8gMTBNQiJ9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlLyosLnBkZiwuemlwIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTAqMTAyNCoxMDI0fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkJyYW5kIGFzc2V0cyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXJ5IChKUEcvUE5HKSJ9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlL2pwZWcsaW1hZ2UvcG5nIn0KICAgICAgICAgICAgICAgIC5tdWx0aXBsZT0keyExfQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5idXR0b25UZXh0PSR7IlNlbGVjdCBjb3ZlciBpbWFnZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJBdWRpbyB1cGxvYWRzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTaGFyZSBwb2RjYXN0IGRyYWZ0cyAoTVAzL1dBViwgbWF4IDI1TUIgZWFjaCkifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhdWRpby8qIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MjUqMTAyNCoxMDI0fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGV4YW1wbGUifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IlVwbG9hZGVyIGlzIGRpc2FibGVkIHdoaWxlIG1vZGVyYXRpb24gaXMgcGVuZGluZyJ9CiAgICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZvcm0gaW50ZWdyYXRpb24ifQogICAgICAgIC5zdWJ0aXRsZT0keyJDb21iaW5lIGZpbGUgdXBsb2FkcyB3aXRoIHRoZSByZXN0IG9mIHRoZSBERUVTIGZvcm0gZWNvc3lzdGVtIn0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IG5hbWUifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IkhvdyBzaG91bGQgd2UgcmVmZXIgdG8gdGhpcyBwcm9qZWN0IGludGVybmFsbHk/In0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0TmFtZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ29udGFjdCBlbWFpbCJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7ImVtYWlsIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJjb250YWN0RW1haWwifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IlN0YXRlbWVudCBvZiB3b3JrIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWQgYSBzaWduZWQgc3RhdGVtZW50IG9mIHdvcmsgKFBERiwgbWF4IDE1TUIpIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhcHBsaWNhdGlvbi9wZGYifQogICAgICAgICAgICAgICAgLm1heFNpemU9JHsxNSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5rZXk9JHsic293In0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJDcmVhdGl2ZSByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJPcHRpb25hbC4gVXBsb2FkIHVwIHRvIGZpdmUgdmlzdWFsIHJlZmVyZW5jZXMifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qIn0KICAgICAgICAgICAgICAgIC5tYXhGaWxlcz0kezV9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezgqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLmtleT0keyJyZWZlcmVuY2VzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIG9wdGlvbmFsIGNvbnRleHQgZm9yIHJldmlld2VycyJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU3VibWl0IGJyaWVmaW5nIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgICAgICAgPHN0cm9uZz5Hb29kIHRvIGtub3c6PC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+RHJhZyAmIGRyb3AgaGlnaGxpZ2h0cyB0aGUgZHJvcHpvbmUgYW5kIHN1cHBvcnRzIGtleWJvYXJkIGFjdGl2YXRpb24uPC9saT4KICAgICAgICAgICAgICA8bGk+QWNjZXB0ZWQgZmlsZSB0eXBlcyBhcmUgc3VtbWFyaXNlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIDxjb2RlPmFjY2VwdDwvY29kZT4gYXR0cmlidXRlLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkltYWdlIHVwbG9hZHMgc2hvdyBsaXZlIHByZXZpZXdzIGdlbmVyYXRlZCB2aWEgPGNvZGU+VVJMLmNyZWF0ZU9iamVjdFVSTDwvY29kZT4uPC9saT4KICAgICAgICAgICAgICA8bGk+RmlsZSBzaXplIGFuZCBmaWxlLWNvdW50IGxpbWl0cyBzdXJmYWNlIGlubGluZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRoZSBjb21wb25lbnQgc3RheXMgY29tcGF0aWJsZSB3aXRoIDxjb2RlPmRlZXMtZm9ybTwvY29kZT4gdmFsdWUgYWNjZXNzb3JzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGQwYSx1MGE9ZygoKT0+e3BlKCk7emkoKTtwdCgpO2QwYT1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgIDpob3N0IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KCiAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAvKiDilIDilIAgVGlsZSBpbnRlZ3JhdGlvbiDilIDilIAgKi8KICAgIGRlZXMtdGlsZSB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIH0KCiAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgfQoKICAgIGRlZXMtdGlsZS5kcmFnb3Zlcjo6cGFydChvdXRlcikgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMTUpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xNSkiKX07CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgb3BhY2l0eTogMC42OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAvKiDilIDilIAgSGVhZGVyIHNsb3Q6IHNsZWVrIHRvb2xiYXIg4pSA4pSAICovCiAgICAuZHJvcHpvbmUtaGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgfQoKICAgIC5kcm9wem9uZS1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmRyb3B6b25lLWxvYWRlciB7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgxNSwgMjMsIDQyLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBhbmltYXRpb246IGxvYWRlci1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC5kcm9wem9uZS10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZSB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgcGFkZGluZzogMDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZTpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5kcm9wem9uZS1icm93c2U6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBvcGFjaXR5OiAwLjU7CiAgICB9CgogICAgLyog4pSA4pSAIENvbnRlbnQgc2xvdDogZmlsZSBsaXN0IGluIHJvdW5kZWQgaW5zZXQg4pSA4pSAICovCiAgICAuZmlsZS1saXN0LWVtcHR5IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4IDE2cHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICB9CgogICAgLmZpbGUtbGlzdC1lbXB0eSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgIH0KCiAgICAuZmlsZS1saXN0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIH0KCiAgICAuZmlsZS1saXN0LWhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmZpbGUtbGlzdC1jbGVhciB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgcGFkZGluZzogMDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICB9CgogICAgLmZpbGUtbGlzdC1jbGVhcjpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5maWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZGVlcy10cmFuc2l0aW9uLWZhc3QpIGVhc2U7CiAgICB9CgogICAgLmZpbGUtcm93OmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1yb3ctaG92ZXIpOwogICAgfQoKICAgIC5maWxlLXRodW1iIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtc20pOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC5maWxlLXRodW1iIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTZweDsKICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnRodW1iLWltYWdlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICB9CgogICAgLmZpbGUtbWV0YSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMnB4OwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmZpbGUtbmFtZSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB9CgogICAgLmZpbGUtZGV0YWlscyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmZpbGUtc2l6ZSB7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmZpbGUtdHlwZSB7CiAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmb250LXNpemU6IDEwcHg7CiAgICB9CgogICAgLmZpbGUtYWN0aW9ucyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteHMpOwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWRlZXMtdHJhbnNpdGlvbi1mYXN0KSBlYXNlLAogICAgICAgICAgICAgICAgICBjb2xvciB2YXIoLS1kZWVzLXRyYW5zaXRpb24tZmFzdCkgZWFzZTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSAvIDAuMDgpIiwiaHNsKDAgNjIlIDMyJSAvIDAuMTUpIil9OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC8qIOKUgOKUgCBGb290ZXIgc2xvdDogbWV0YSBjaGlwcyDilIDilIAgKi8KICAgIC5kcm9wem9uZS1mb290ZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGdhcDogNnB4OwogICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KCiAgICAubWV0YS1jaGlwIHsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgfQoKICAgIC8qIOKUgOKUgCBWYWxpZGF0aW9uIOKUgOKUgCAqLwogICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIGxvYWRlci1zcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KICBgXX0pO3ZhciAkZCxacixrbmUsVmV0PWcoKCk9Pnt6aSgpO2MwYSgpO3UwYSgpO1VhKCk7bHYoKTtucigpO3BlKCk7JGQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFpyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxrbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWZpbGV1cGxvYWQiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXTt2YXIgSz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0RmlsZXVwbG9hZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBWPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe2F0dHJpYnV0ZTohMX0pXSxwPVtZKCldLGM9W1koKV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6TnVtYmVyfSldLEg9W0woe3R5cGU6TnVtYmVyfSldLEk9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sJGQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmFsdWUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy52YWx1ZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy52YWx1ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxvLGwpLCRkKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InN0YXRlImluIFcsImhhcyIpLGdldDppKFc9Plcuc3RhdGUsImdldCIpLHNldDppKChXLG1lKT0+e1cuc3RhdGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sZCx1KSwkZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaXNMb2FkaW5nImluIFcsImhhcyIpLGdldDppKFc9PlcuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmlzTG9hZGluZz1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxiLHYpLCRkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnV0dG9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYnV0dG9uVGV4dCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmJ1dHRvblRleHQsImdldCIpLHNldDppKChXLG1lKT0+e1cuYnV0dG9uVGV4dD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxtLGYpLCRkKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJhY2NlcHQiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5hY2NlcHQsImdldCIpLHNldDppKChXLG1lKT0+e1cuYWNjZXB0PW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LE0seiksJGQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtdWx0aXBsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ibXVsdGlwbGUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5tdWx0aXBsZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5tdWx0aXBsZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxDLF8pLCRkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ibWF4U2l6ZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLm1heFNpemUsImdldCIpLHNldDppKChXLG1lKT0+e1cubWF4U2l6ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSwkLEUpLCRkKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Im1heEZpbGVzImluIFcsImhhcyIpLGdldDppKFc9PlcubWF4RmlsZXMsImdldCIpLHNldDppKChXLG1lKT0+e1cubWF4RmlsZXM9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sayxTKSwkZCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmFsaWRhdGlvblN0YXRlImluIFcsImhhcyIpLGdldDppKFc9PlcudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLnZhbGlkYXRpb25TdGF0ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxQLFIpLCRkKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlZ9LG51bGwsdCksSz1hPWUudmFsdWUsViYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpWfSl9c3RhdGljIGRlbW89bDBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1acih0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShWKXt0aGlzLiNlPVZ9I3Q9KFpyKHRoaXMsbCksWnIodGhpcyxkLCJpZGxlIikpO2dldCBzdGF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0ZShWKXt0aGlzLiN0PVZ9I2E9KFpyKHRoaXMsdSksWnIodGhpcyxiLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0xvYWRpbmcoVil7dGhpcy4jYT1WfSNzPShacih0aGlzLHYpLFpyKHRoaXMsbSwiU2VsZWN0IGZpbGVzIikpO2dldCBidXR0b25UZXh0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGJ1dHRvblRleHQoVil7dGhpcy4jcz1WfSNpPShacih0aGlzLGYpLFpyKHRoaXMsTSwiIikpO2dldCBhY2NlcHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWNjZXB0KFYpe3RoaXMuI2k9Vn0jcj0oWnIodGhpcyx6KSxacih0aGlzLEMsITApKTtnZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbXVsdGlwbGUoVil7dGhpcy4jcj1WfSNvPShacih0aGlzLF8pLFpyKHRoaXMsJCwwKSk7Z2V0IG1heFNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4U2l6ZShWKXt0aGlzLiNvPVZ9I249KFpyKHRoaXMsRSksWnIodGhpcyxrLDApKTtnZXQgbWF4RmlsZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWF4RmlsZXMoVil7dGhpcy4jbj1WfSNsPShacih0aGlzLFMpLFpyKHRoaXMsUCxudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNsfXNldCB2YWxpZGF0aW9uU3RhdGUoVil7dGhpcy4jbD1WfSNjPShacih0aGlzLFIpLCIiKTtnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmFsaWRhdGlvbk1lc3NhZ2UoVil7dGhpcy4jYz1WfXByZXZpZXdVcmxNYXA9bmV3IFdlYWtNYXA7ZHJvcEFyZWE9bnVsbDtzdGF0aWMgc3R5bGVzPWQwYTtyZW5kZXIoKXtsZXQgVj10aGlzLmdldEFjY2VwdGVkU3VtbWFyeSgpLFc9W3RoaXMubXVsdGlwbGU/Ik11bHRpcGxlIGZpbGVzIHN1cHBvcnRlZCI6IlNpbmdsZSBmaWxlIG9ubHkiLHRoaXMubWF4U2l6ZT4wP2BNYXggJHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMubWF4U2l6ZSl9YDoiTm8gc2l6ZSBsaW1pdCJdO3JldHVybiBWJiZXLnB1c2goYEFjY2VwdHMgJHtWfWApLHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsCiAgICAgICAgICAubGFiZWw9JHt0aGlzLmxhYmVsfQogICAgICAgICAgLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy10aWxlCiAgICAgICAgICBjbGFzcz0iJHt0aGlzLnN0YXRlPT09ImRyYWdPdmVyIj8iZHJhZ292ZXIiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlRHJvcHpvbmVDbGlja30KICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVEcm9wem9uZUtleWRvd259CiAgICAgICAgICB0YWJpbmRleD0ke3RoaXMuZGlzYWJsZWQ/LTE6MH0KICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgYXJpYS1sYWJlbD0ke2BTZWxlY3QgZmlsZXMke1Y/YCAoJHtWfSlgOiIifWB9CiAgICAgICAgPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIGNsYXNzPSJmaWxlLWlucHV0IgogICAgICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBvcGFjaXR5OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHRvcDogMDsgbGVmdDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsiCiAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9CiAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0fHwiIn0KICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZUlucHV0Q2hhbmdlfQogICAgICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJkcm9wem9uZS1oZWFkZXIiPgogICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nP3dgPHNwYW4gY2xhc3M9ImRyb3B6b25lLWxvYWRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj5gOndgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VXBsb2FkIj48L2RlZXMtaWNvbj5gfQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcHpvbmUtdGl0bGUiPkRyb3AgZmlsZXMgaGVyZSBvcjwvc3Bhbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgICBjbGFzcz0iZHJvcHpvbmUtYnJvd3NlIgogICAgICAgICAgICAgIEBjbGljaz0ke21lPT57bWUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9fQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgID5icm93c2U8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnJlbmRlckZpbGVMaXN0KCl9CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImRyb3B6b25lLWZvb3RlciI+CiAgICAgICAgICAgICR7Vy5tYXAobWU9PndgPHNwYW4gY2xhc3M9Im1ldGEtY2hpcCI+JHttZX08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2U/d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiIGFyaWEtbGl2ZT0icG9saXRlIj4ke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2V9PC9kaXY+YDp3YGB9CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlTGlzdCgpe3JldHVybiB0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QtZW1wdHkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVN0YWNrIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIGZpbGVzIHNlbGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0LWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMudmFsdWUubGVuZ3RofSBmaWxlJHt0aGlzLnZhbHVlLmxlbmd0aD09PTE/IiI6InMifSBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZmlsZS1saXN0LWNsZWFyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsZWFyQWxsfT5DbGVhciAke3RoaXMudmFsdWUubGVuZ3RoPjE/ImFsbCI6IiJ9PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChWPT50aGlzLnJlbmRlckZpbGVSb3coVikpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZVJvdyhWKXtsZXQgVz10aGlzLmdldEZpbGVUeXBlKFYpLG1lPXRoaXMuY2FuU2hvd1ByZXZpZXcoVik/dGhpcy5nZXRQcmV2aWV3VXJsKFYpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtcm93ICR7V30tZmlsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS10aHVtYiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgJHttZT93YDxpbWcgY2xhc3M9InRodW1iLWltYWdlIiBzcmM9JHttZX0gYWx0PSR7YFByZXZpZXcgb2YgJHtWLm5hbWV9YH0+YDp3YDxkZWVzLWljb24gaWNvbj0ke3RoaXMuZ2V0RmlsZUljb24oVil9PjwvZGVlcy1pY29uPmB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1tZXRhIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSIgdGl0bGU9JHtWLm5hbWV9PiR7Vi5uYW1lfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1kZXRhaWxzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKFYuc2l6ZSl9PC9zcGFuPgogICAgICAgICAgICAke1chPT0iZmlsZSI/d2A8c3BhbiBjbGFzcz0iZmlsZS10eXBlIj4ke1d9PC9zcGFuPmA6d2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1hY3Rpb25zIj4KICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlRmlsZShWKX0KICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2BSZW1vdmUgJHtWLm5hbWV9YH0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6WCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUZpbGVJbnB1dENoYW5nZT1pKGFzeW5jIFY9Pnt0aGlzLmlzTG9hZGluZz0hMTtsZXQgVz1WLnRhcmdldCxtZT1BcnJheS5mcm9tKFcuZmlsZXM/P1tdKTttZS5sZW5ndGg+MCYmYXdhaXQgdGhpcy5hZGRGaWxlcyhtZSksVy52YWx1ZT0iIn0sImhhbmRsZUZpbGVJbnB1dENoYW5nZSIpO2hhbmRsZURyb3B6b25lQ2xpY2s9aShWPT57dGhpcy5kaXNhYmxlZHx8Vi50YXJnZXQuY2xvc2VzdCgiLmZpbGUtbGlzdCwgLmRyb3B6b25lLWhlYWRlciwgLmRyb3B6b25lLWZvb3RlciIpfHx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKX0sImhhbmRsZURyb3B6b25lQ2xpY2siKTtoYW5kbGVEcm9wem9uZUtleWRvd249aShWPT57dGhpcy5kaXNhYmxlZHx8KFYua2V5PT09IkVudGVyInx8Vi5rZXk9PT0iICIpJiYoVi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpKX0sImhhbmRsZURyb3B6b25lS2V5ZG93biIpO2hhbmRsZUNsZWFyQWxsPWkoVj0+e1YucHJldmVudERlZmF1bHQoKSx0aGlzLmNsZWFyQWxsKCl9LCJoYW5kbGVDbGVhckFsbCIpO2hhbmRsZURyYWdFdmVudD1pKGFzeW5jIFY9PntpZihWLnByZXZlbnREZWZhdWx0KCksVi5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCl7aWYoVi50eXBlPT09ImRyYWdlbnRlciJ8fFYudHlwZT09PSJkcmFnb3ZlciIpe1YuZGF0YVRyYW5zZmVyJiYoVi5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0iY29weSIpLHRoaXMuc3RhdGU9ImRyYWdPdmVyIjtyZXR1cm59aWYoVi50eXBlPT09ImRyYWdsZWF2ZSIpe2lmKCF0aGlzLmRyb3BBcmVhKXt0aGlzLnN0YXRlPSJpZGxlIjtyZXR1cm59bGV0IFc9dGhpcy5kcm9wQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7Y2xpZW50WDptZT0wLGNsaWVudFk6Qj0wfT1WOyhtZTw9Vy5sZWZ0fHxtZT49Vy5yaWdodHx8Qjw9Vy50b3B8fEI+PVcuYm90dG9tKSYmKHRoaXMuc3RhdGU9ImlkbGUiKTtyZXR1cm59aWYoVi50eXBlPT09ImRyb3AiKXt0aGlzLnN0YXRlPSJpZGxlIjtsZXQgVz1BcnJheS5mcm9tKFYuZGF0YVRyYW5zZmVyPy5maWxlcz8/W10pO1cubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoVyl9fX0sImhhbmRsZURyYWdFdmVudCIpO2F0dGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goVj0+e3RoaXMuZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcihWLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfWRldGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goVj0+e3RoaXMuZHJvcEFyZWEucmVtb3ZlRXZlbnRMaXN0ZW5lcihWLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfXJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKXtsZXQgVj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtdGlsZSIpO1YhPT10aGlzLmRyb3BBcmVhJiYodGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy5kcm9wQXJlYT1WLHRoaXMuYXR0YWNoRHJvcExpc3RlbmVycygpKX1mb3JtYXRGaWxlU2l6ZShWKXtsZXQgVz1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl07aWYoVj09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBtZT1NYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKFYpL01hdGgubG9nKDEwMjQpKSxXLmxlbmd0aC0xKSxCPVYvTWF0aC5wb3coMTAyNCxtZSk7cmV0dXJuYCR7TWF0aC5yb3VuZChCKjEwMCkvMTAwfSAke1dbbWVdfWB9Z2V0RmlsZVR5cGUoVil7bGV0IFc9Vi50eXBlLnRvTG93ZXJDYXNlKCk7cmV0dXJuIFcuc3RhcnRzV2l0aCgiaW1hZ2UvIik/ImltYWdlIjpXPT09ImFwcGxpY2F0aW9uL3BkZiI/InBkZiI6Vy5pbmNsdWRlcygid29yZCIpfHxXLmluY2x1ZGVzKCJkb2N1bWVudCIpPyJkb2MiOlcuaW5jbHVkZXMoInNoZWV0Iil8fFcuaW5jbHVkZXMoImV4Y2VsIik/InNwcmVhZHNoZWV0IjpXLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKXx8Vy5pbmNsdWRlcygicG93ZXJwb2ludCIpPyJwcmVzZW50YXRpb24iOlcuc3RhcnRzV2l0aCgidmlkZW8vIik/InZpZGVvIjpXLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJhdWRpbyI6Vy5pbmNsdWRlcygiemlwIil8fFcuaW5jbHVkZXMoImNvbXByZXNzZWQiKT8iYXJjaGl2ZSI6ImZpbGUifWdldEZpbGVJY29uKFYpe2xldCBXPXRoaXMuZ2V0RmlsZVR5cGUoVik7cmV0dXJue2ltYWdlOiJsdWNpZGU6RmlsZUltYWdlIixwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsZG9jOiJsdWNpZGU6RmlsZVRleHQiLHNwcmVhZHNoZWV0OiJsdWNpZGU6RmlsZVNwcmVhZHNoZWV0IixwcmVzZW50YXRpb246Imx1Y2lkZTpGaWxlQmFyQ2hhcnQiLHZpZGVvOiJsdWNpZGU6RmlsZVZpZGVvIixhdWRpbzoibHVjaWRlOkZpbGVBdWRpbyIsYXJjaGl2ZToibHVjaWRlOkZpbGVBcmNoaXZlIixmaWxlOiJsdWNpZGU6RmlsZSJ9W1ddPz8ibHVjaWRlOkZpbGUifWNhblNob3dQcmV2aWV3KFYpe3JldHVybiBWLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikmJlYuc2l6ZTw1KjEwMjQqMTAyNH12YWxpZGF0ZUZpbGUoVil7aWYodGhpcy5tYXhTaXplPjAmJlYuc2l6ZT50aGlzLm1heFNpemUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgIiR7Vi5uYW1lfSIgZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExO2lmKHRoaXMuYWNjZXB0KXtsZXQgVz10aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChtZT0+bWUudHJpbSgpKS5maWx0ZXIobWU9Pm1lLmxlbmd0aD4wKTtpZihXLmxlbmd0aD4wKXtsZXQgbWU9ITE7Zm9yKGxldCBCIG9mIFcpaWYoQi5zdGFydHNXaXRoKCIuIikpe2lmKFYubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKEIudG9Mb3dlckNhc2UoKSkpe21lPSEwO2JyZWFrfX1lbHNlIGlmKEIuZW5kc1dpdGgoIi8qIikpe2xldCBVPUIuc2xpY2UoMCwtMik7aWYoVi50eXBlLnN0YXJ0c1dpdGgoVSkpe21lPSEwO2JyZWFrfX1lbHNlIGlmKFYudHlwZT09PUIpe21lPSEwO2JyZWFrfWlmKCFtZSlyZXR1cm4gdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gRmlsZSB0eXBlIG5vdCBhY2NlcHRlZC4gQWxsb3dlZDogJHtXLmpvaW4oIiwgIil9YCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITF9fXJldHVybiEwfWdldFByZXZpZXdVcmwoVil7bGV0IFc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChWKTtyZXR1cm4gV3x8KFc9VVJMLmNyZWF0ZU9iamVjdFVSTChWKSx0aGlzLnByZXZpZXdVcmxNYXAuc2V0KFYsVykpLFd9cmVsZWFzZVByZXZpZXcoVil7bGV0IFc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChWKTtXJiYoVVJMLnJldm9rZU9iamVjdFVSTChXKSx0aGlzLnByZXZpZXdVcmxNYXAuZGVsZXRlKFYpKX1nZXRBY2NlcHRlZFN1bW1hcnkoKXtpZighdGhpcy5hY2NlcHQpcmV0dXJuIG51bGw7bGV0IFY9QXJyYXkuZnJvbShuZXcgU2V0KHRoaXMuYWNjZXB0LnNwbGl0KCIsIikubWFwKFc9PlcudHJpbSgpKS5maWx0ZXIoVz0+Vy5sZW5ndGg+MCkubWFwKFc9PnRoaXMuZm9ybWF0QWNjZXB0VG9rZW4oVykpKSkuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBWLmxlbmd0aD09PTA/bnVsbDpWLmxlbmd0aD09PTE/VlswXTpWLmxlbmd0aD09PTI/YCR7VlswXX0sICR7VlsxXX1gOmAke1Yuc2xpY2UoMCwyKS5qb2luKCIsICIpfVx1MjAyNmB9Zm9ybWF0QWNjZXB0VG9rZW4oVil7aWYoVj09PSIqLyoiKXJldHVybiJBbGwgZmlsZXMiO2lmKFYuZW5kc1dpdGgoIi8qIikpe2xldCBCPVYuc3BsaXQoIi8iKVswXTtyZXR1cm4gQj9gJHtCLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7Qi5zbGljZSgxKX0gZmlsZXNgOiJBbGwgZmlsZXMifXJldHVybiBWLnN0YXJ0c1dpdGgoIi4iKT9WLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCk6Vi5pbmNsdWRlcygicGRmIik/IlBERiI6Vi5pbmNsdWRlcygiemlwIik/IlpJUCI6Vi5pbmNsdWRlcygianNvbiIpPyJKU09OIjpWLmluY2x1ZGVzKCJtc3dvcmQiKT8iRE9DIjpWLmluY2x1ZGVzKCJ3b3JkcHJvY2Vzc2luZ21sIik/IkRPQ1giOlYuaW5jbHVkZXMoImV4Y2VsIik/IlhMUyI6Vi5pbmNsdWRlcygicHJlc2VudGF0aW9uIik/IlBQVCI6KFYuc3BsaXQoIi8iKS5wb3AoKT8/VikudG9VcHBlckNhc2UoKX1hdHRhY2hMaWZlY3ljbGVMaXN0ZW5lcnMoKXt0aGlzLnJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKX1maXJzdFVwZGF0ZWQoVil7c3VwZXIuZmlyc3RVcGRhdGVkKFYpLHRoaXMuYXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl9dXBkYXRlZChWKXtzdXBlci51cGRhdGVkKFYpLFYuaGFzKCJ2YWx1ZSIpJiZ0aGlzLnZhbGlkYXRlKCksdGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmRldGFjaERyb3BMaXN0ZW5lcnMoKSx0aGlzLnZhbHVlLmZvckVhY2goVj0+dGhpcy5yZWxlYXNlUHJldmlldyhWKSksdGhpcy5wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgb3BlbkZpbGVTZWxlY3Rvcigpe2lmKHRoaXMuZGlzYWJsZWR8fHRoaXMuaXNMb2FkaW5nKXJldHVybjt0aGlzLmlzTG9hZGluZz0hMDtsZXQgVj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLWlucHV0Iik7aWYoIVYpe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1sZXQgVz1pKCgpPT57c2V0VGltZW91dCgoKT0+eyghVi5maWxlc3x8Vi5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFcpfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFcpLFYuY2xpY2soKX1yZW1vdmVGaWxlKFYpe2xldCBXPXRoaXMudmFsdWUuaW5kZXhPZihWKTtXPi0xJiYodGhpcy5yZWxlYXNlUHJldmlldyhWKSx0aGlzLnZhbHVlLnNwbGljZShXLDEpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWNsZWFyQWxsKCl7bGV0IFY9Wy4uLnRoaXMudmFsdWVdO3RoaXMudmFsdWU9W10sVi5mb3JFYWNoKFc9PnRoaXMucmVsZWFzZVByZXZpZXcoVykpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHVwZGF0ZVZhbHVlKFYpe2xldCBXPVYudGFyZ2V0O3RoaXMudmFsdWU9QXJyYXkuZnJvbShXLmZpbGVzPz9bXSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9c2V0VmFsdWUoVil7dGhpcy52YWx1ZS5mb3JFYWNoKFc9PnRoaXMucmVsZWFzZVByZXZpZXcoVykpLHRoaXMudmFsdWU9VixWLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMiLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1hc3luYyBhZGRGaWxlcyhWKXtsZXQgVz1bXTtmb3IobGV0IG1lIG9mIFYpdGhpcy52YWxpZGF0ZUZpbGUobWUpJiZXLnB1c2gobWUpO2lmKFcubGVuZ3RoPT09MCl7dGhpcy5pc0xvYWRpbmc9ITE7cmV0dXJufWlmKHRoaXMubWF4RmlsZXM+MCYmdGhpcy52YWx1ZS5sZW5ndGgrVy5sZW5ndGg+dGhpcy5tYXhGaWxlcyl7bGV0IEI9dGhpcy5tYXhGaWxlcy10aGlzLnZhbHVlLmxlbmd0aDtpZihCPD0wKXt0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBNYXhpbXVtICR7dGhpcy5tYXhGaWxlc30gZmlsZXMgYWxsb3dlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMuaXNMb2FkaW5nPSExO3JldHVybn1XLnNwbGljZShCKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBPbmx5ICR7Qn0gbW9yZSBmaWxlKHMpIGNhbiBiZSBhZGRlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9Indhcm4ifSF0aGlzLm11bHRpcGxlJiZXLmxlbmd0aD4wPyh0aGlzLnZhbHVlLmZvckVhY2gobWU9PnRoaXMucmVsZWFzZVByZXZpZXcobWUpKSx0aGlzLnZhbHVlPVtXWzBdXSk6dGhpcy52YWx1ZS5wdXNoKC4uLlcpLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IiIsdGhpcy52YWxpZGF0aW9uU3RhdGU9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksYXdhaXQgdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuaXNMb2FkaW5nPSExLHRoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy5idXR0b25UZXh0PXRoaXMubXVsdGlwbGU/IkFkZCBtb3JlIGZpbGVzIjoiUmVwbGFjZSBmaWxlIjp0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyJ9YXN5bmMgdmFsaWRhdGUoKXtpZih0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMucmVxdWlyZWQmJnRoaXMudmFsdWUubGVuZ3RoPT09MClyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IlBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIGZpbGUiLCExO2ZvcihsZXQgViBvZiB0aGlzLnZhbHVlKWlmKCF0aGlzLnZhbGlkYXRlRmlsZShWKSlyZXR1cm4hMTtyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9dGhpcy52YWx1ZS5sZW5ndGg+MD8idmFsaWQiOm51bGwsITB9c3RhdGlje1pyKGEsdCl9fTtyZXR1cm4gSz1hfSkoKX0pO3ZhciBVZXQ9ZygoKT0+e1ZldCgpfSk7ZnVuY3Rpb24gTjgocyxlPXthbGxvd1FSSUJBTjohMH0pe2lmKHM9PW51bGwpcmV0dXJuITE7bGV0IHQ9bmV3IFJlZ0V4cCgiXlswLTldezJ9JCIsIiIpLGE9cy5zbGljZSgwLDIpLHI9TmNbYV07cmV0dXJuIHI9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT1udWxsfHxyLmNoYXJzPT09dm9pZCAwPyExOnIuY2hhcnM9PT1zLmxlbmd0aCYmdC50ZXN0KHMuc2xpY2UoMiw0KSkmJnpXYShzLnNsaWNlKDQpLGEpJiZoMGEocykmJihlLmFsbG93UVJJQkFOfHwhcDBhKHMpKX1mdW5jdGlvbiB5YW8ocyxlPXthbGxvd1FSSUJBTjohMH0pe2xldCB0PXtlcnJvckNvZGVzOltdLHZhbGlkOiEwfTtpZihzIT1udWxsJiZzIT09IiIpe2xldCBhPU5jW3Muc2xpY2UoMCwyKV07aWYoIWF8fCEoYS5iYmFuX3JlZ2V4cHx8YS5jaGFycykpcmV0dXJuIHQudmFsaWQ9ITEsdC5lcnJvckNvZGVzLnB1c2goUTEuTm9JQkFOQ291bnRyeSksdDthJiZhLmNoYXJzJiZhLmNoYXJzIT09cy5sZW5ndGgmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLldyb25nQkJBTkxlbmd0aCkpLGEmJmEuYmJhbl9yZWdleHAmJiFXZXQocy5zbGljZSg0KSxhLmJiYW5fcmVnZXhwKSYmKHQudmFsaWQ9ITEsdC5lcnJvckNvZGVzLnB1c2goUTEuV3JvbmdCQkFORm9ybWF0KSksYSYmYS5iYmFuX3ZhbGlkYXRpb25fZnVuYyYmIWEuYmJhbl92YWxpZGF0aW9uX2Z1bmMocy5zbGljZSg0KSkmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLldyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSkpLG5ldyBSZWdFeHAoIl5bMC05XXsyfSQiLCIiKS50ZXN0KHMuc2xpY2UoMiw0KSl8fCh0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLkNoZWNrc3VtTm90TnVtYmVyKSksKHQuZXJyb3JDb2Rlcy5pbmRleE9mKFExLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IWgwYShzKSkmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKFExLldyb25nSUJBTkNoZWNrc3VtKSksIWUuYWxsb3dRUklCQU4mJnAwYShzKSYmKHQudmFsaWQ9ITEsdC5lcnJvckNvZGVzLnB1c2goUTEuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2UgdC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChRMS5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIHR9ZnVuY3Rpb24geldhKHMsZSl7aWYocz09bnVsbHx8ZT09PXZvaWQgMHx8ZT09PW51bGwpcmV0dXJuITE7bGV0IHQ9TmNbZV07cmV0dXJuIHQ9PW51bGx8fHQuYmJhbl9yZWdleHA9PT12b2lkIDB8fHQuYmJhbl9yZWdleHA9PT1udWxsfHx0LmNoYXJzPT09dm9pZCAwfHx0LmNoYXJzPT09bnVsbD8hMTp0LmNoYXJzLTQ9PT1zLmxlbmd0aCYmV2V0KHMsdC5iYmFuX3JlZ2V4cCk/dC5iYmFuX3ZhbGlkYXRpb25fZnVuYz90LmJiYW5fdmFsaWRhdGlvbl9mdW5jKHMucmVwbGFjZSgvW1xzLl0rL2csIiIpKTohMDohMX1mdW5jdGlvbiB3YW8ocyl7aWYocyE9bnVsbCl7bGV0IGU9TmNbc107aWYoZSE9PXZvaWQgMClyZXR1cm4gZS5TRVBBP2UuU0VQQTohMX1yZXR1cm4hMX1mdW5jdGlvbiBwMGEocyl7aWYocz09bnVsbClyZXR1cm4hMTtsZXQgZT1zLnNsaWNlKDAsMik7cmV0dXJuWyJMSSIsIkNIIl0uaW5jbHVkZXMoZSk/bmV3IFJlZ0V4cCgiXjNbMC0xXXsxfVswLTldezN9JCIsIiIpLnRlc3Qocy5zbGljZSg0LDkpKTohMX1mdW5jdGlvbiBrYW8ocyl7bGV0IGU9R2V0KHMuYmJhbil8fCIiO2lmKHMuY291bnRyeUNvZGU9PT1udWxsfHxzLmNvdW50cnlDb2RlPT09dm9pZCAwKXJldHVybiBudWxsO2xldCB0PU5jW3MuY291bnRyeUNvZGVdO2lmKGUhPT0iIiYmdCE9PXZvaWQgMCYmdC5jaGFycyYmdC5jaGFycyE9PW51bGwmJnQuY2hhcnM9PT1lLmxlbmd0aCs0JiZ0LmJiYW5fcmVnZXhwJiZ0LmJiYW5fcmVnZXhwIT09bnVsbCYmV2V0KGUsdC5iYmFuX3JlZ2V4cCkpe2xldCBhPUNXYShzLmNvdW50cnlDb2RlKyIwMCIrZSk7cmV0dXJuIHMuY291bnRyeUNvZGUrKCIwIisoOTgtYSkpLnNsaWNlKC0yKStlfXJldHVybiBudWxsfWZ1bmN0aW9uIFNhbyhzKXtsZXQgZT17fSx0PUdldChzKTtpZihlLmliYW49dHx8cyx0JiZOOCh0KSl7ZS5iYmFuPXQuc2xpY2UoNCksZS5jb3VudHJ5Q29kZT10LnNsaWNlKDAsMiksZS52YWxpZD0hMDtsZXQgYT1OY1tlLmNvdW50cnlDb2RlXTtpZihhLmFjY291bnRfaW5kZW50aWZpZXIpe2xldCByPWEuYWNjb3VudF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoclswXSksbz1wYXJzZUludChyWzFdKTtlLmFjY291bnROdW1iZXI9ZS5pYmFuLnNsaWNlKG4sbysxKX1pZihhLmJhbmtfaWRlbnRpZmllcil7bGV0IHI9YS5iYW5rX2lkZW50aWZpZXIuc3BsaXQoIi0iKSxuPXBhcnNlSW50KHJbMF0pLG89cGFyc2VJbnQoclsxXSk7ZS5iYW5rSWRlbnRpZmllcj1lLmJiYW4uc2xpY2UobixvKzEpfWlmKGEuYnJhbmNoX2luZGVudGlmaWVyKXtsZXQgcj1hLmJyYW5jaF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoclswXSksbz1wYXJzZUludChyWzFdKTtlLmJyYW5jaElkZW50aWZpZXI9ZS5iYmFuLnNsaWNlKG4sbysxKX19ZWxzZSBlLnZhbGlkPSExO3JldHVybiBlfWZ1bmN0aW9uIFdldChzLGUpe3JldHVybiBuZXcgUmVnRXhwKGUsIiIpLnRlc3Qocyl9ZnVuY3Rpb24gR2V0KHMpe3JldHVybiB0eXBlb2YgcyE9InN0cmluZyI/bnVsbDpzLnJlcGxhY2UoL1stXCBdL2csIiIpLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gZnYocyxlKXtpZih0eXBlb2YgcyE9InN0cmluZyIpcmV0dXJuIG51bGw7ZT09bnVsbCYmKGU9IiAiKTtsZXQgdD1HZXQocyk7cmV0dXJuIHQ9PT1udWxsP251bGw6dC5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrZSl9ZnVuY3Rpb24gaDBhKHMpe2xldCBlPXMuc2xpY2UoMCwyKSx0PXBhcnNlSW50KHMuc2xpY2UoMiw0KSwxMCksYT1zLnNsaWNlKDQpLHI9ZjBhKGAke2F9JHtlfTAwYCk7cmV0dXJuIDk4LVNuZShyKT09PXR9ZnVuY3Rpb24gZjBhKHMpe3JldHVybiBzLnNwbGl0KCIiKS5tYXAoZT0+e2xldCB0PWUuY2hhckNvZGVBdCgwKTtyZXR1cm4gdD49NjU/KHQtNTUpLnRvU3RyaW5nKCk6ZX0pLmpvaW4oIiIpfWZ1bmN0aW9uIENXYShzKXtyZXR1cm4gU25lKGYwYShzLnNsaWNlKDQpK3Muc2xpY2UoMCw0KSkpfWZ1bmN0aW9uIF9hbygpe2xldCBzPXt9O2ZvcihsZXQgZSBpbiBOYyl7bGV0IHQ9TmNbZV07c1tlXT17Y2hhcnM6dC5jaGFyc3x8bnVsbCxiYmFuX3JlZ2V4cDp0LmJiYW5fcmVnZXhwfHxudWxsLElCQU5SZWdpc3RyeTp0LklCQU5SZWdpc3RyeXx8ITEsU0VQQTp0LlNFUEF8fCExfX1yZXR1cm4gc31mdW5jdGlvbiBUV2Eocyl7aWYoIXMpcmV0dXJuITE7bGV0IGU9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKSx0PU5jW3MudG9VcHBlckNhc2UoKS5zbGljZSg0LDYpXTtyZXR1cm4gZS50ZXN0KHMpJiZ0IT09dm9pZCAwfWZ1bmN0aW9uIE1hbyhzKXtsZXQgZT17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07cmV0dXJuIHMhPW51bGwmJnMhPT0iIj9OY1tzLnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV09PT12b2lkIDA/KGUudmFsaWQ9ITEsZS5lcnJvckNvZGVzLnB1c2goJFouTm9CSUNDb3VudHJ5KSk6bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKS50ZXN0KHMpfHwoZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaCgkWi5Xcm9uZ0JJQ0Zvcm1hdCkpOihlLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKCRaLk5vQklDUHJvdmlkZWQpKSxlfWZ1bmN0aW9uIHphbyhzKXtsZXQgZT17fSx0PXMudG9VcHBlckNhc2UoKTtyZXR1cm4gVFdhKHQpPyhlLmJhbmtDb2RlPXQuc2xpY2UoMCw0KSxlLmNvdW50cnlDb2RlPXQuc2xpY2UoNCw2KSxlLmxvY2F0aW9uQ29kZT10LnNsaWNlKDYsOCksZS50ZXN0QklDPWUubG9jYXRpb25Db2RlWzFdPT09IjAiLGUuYnJhbmNoQ29kZT10Lmxlbmd0aD44P3Quc2xpY2UoOCk6bnVsbCxlLnZhbGlkPSEwKTplLnZhbGlkPSExLGV9dmFyIFExLCRaLCRXYSxEV2EsU25lLGh2LExXYSxFV2EsbTBhLFBXYSxnMGEsSVdhLGIwYSxBV2EsQ2FvLE5jLEtldD1nKCgpPT57InVzZSBzdHJpY3QiO2koTjgsImlzVmFsaWRJQkFOIik7KGZ1bmN0aW9uKHMpe3Nbcy5Ob0lCQU5Qcm92aWRlZD0wXT0iTm9JQkFOUHJvdmlkZWQiLHNbcy5Ob0lCQU5Db3VudHJ5PTFdPSJOb0lCQU5Db3VudHJ5IixzW3MuV3JvbmdCQkFOTGVuZ3RoPTJdPSJXcm9uZ0JCQU5MZW5ndGgiLHNbcy5Xcm9uZ0JCQU5Gb3JtYXQ9M109Ildyb25nQkJBTkZvcm1hdCIsc1tzLkNoZWNrc3VtTm90TnVtYmVyPTRdPSJDaGVja3N1bU5vdE51bWJlciIsc1tzLldyb25nSUJBTkNoZWNrc3VtPTVdPSJXcm9uZ0lCQU5DaGVja3N1bSIsc1tzLldyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bT02XT0iV3JvbmdBY2NvdW50QmFua0JyYW5jaENoZWNrc3VtIixzW3MuUVJJQkFOTm90QWxsb3dlZD03XT0iUVJJQkFOTm90QWxsb3dlZCJ9KShRMXx8KFExPXt9KSk7aSh5YW8sInZhbGlkYXRlSUJBTiIpO2koeldhLCJpc1ZhbGlkQkJBTiIpO2kod2FvLCJpc1NFUEFDb3VudHJ5Iik7aShwMGEsImlzUVJJQkFOIik7aShrYW8sImNvbXBvc2VJQkFOIik7aShTYW8sImV4dHJhY3RJQkFOIik7aShXZXQsImNoZWNrRm9ybWF0QkJBTiIpO2koR2V0LCJlbGVjdHJvbmljRm9ybWF0SUJBTiIpO2koZnYsImZyaWVuZGx5Rm9ybWF0SUJBTiIpO2koaDBhLCJpc1ZhbGlkSUJBTkNoZWNrc3VtIik7aShmMGEsInJlcGxhY2VDaGFyYXRlcldpdGhDb2RlIik7aShDV2EsIm1vZDk3MTBJYmFuIik7aShfYW8sImdldENvdW50cnlTcGVjaWZpY2F0aW9ucyIpO2koVFdhLCJpc1ZhbGlkQklDIik7KGZ1bmN0aW9uKHMpe3Nbcy5Ob0JJQ1Byb3ZpZGVkPTBdPSJOb0JJQ1Byb3ZpZGVkIixzW3MuTm9CSUNDb3VudHJ5PTFdPSJOb0JJQ0NvdW50cnkiLHNbcy5Xcm9uZ0JJQ0Zvcm1hdD0yXT0iV3JvbmdCSUNGb3JtYXQifSkoJFp8fCgkWj17fSkpO2koTWFvLCJ2YWxpZGF0ZUJJQyIpO2koemFvLCJleHRyYWN0QklDIik7JFdhPWkocz0+e2xldCBlPVs1LDQsMywyLDcsNiw1LDQsMywyXSx0PXMucmVwbGFjZSgvW1xzLl0rL2csIiIpLGE9cGFyc2VJbnQodC5jaGFyQXQoMTApLDEwKSxyPXQuc3Vic3RyaW5nKDAsMTApLG49MDtmb3IobGV0IGw9MDtsPDEwO2wrKyluKz1wYXJzZUludChyLmNoYXJBdChsKSwxMCkqZVtsXTtsZXQgbz1uJTExO3JldHVybiBhPT09KG89PT0wPzA6MTEtbyl9LCJjaGVja05vcndheUJCQU4iKSxEV2E9aShzPT57bGV0IGU9cy5yZXBsYWNlKC9bXHMuXSsvZywiIiksdD1wYXJzZUludChlLnN1YnN0cmluZygwLGUubGVuZ3RoLTIpLDEwKSxhPXBhcnNlSW50KGUuc3Vic3RyaW5nKGUubGVuZ3RoLTIsZS5sZW5ndGgpLDEwKTtyZXR1cm4odCU5Nz09PTA/OTc6dCU5Nyk9PT1hfSwiY2hlY2tCZWxnaWFuQkJBTiIpLFNuZT1pKHM9Pntmb3IoO3MubGVuZ3RoPjI7KXtsZXQgZT1zLnNsaWNlKDAsNiksdD1wYXJzZUludChlLDEwKTtpZihpc05hTih0KSlyZXR1cm4gTmFOO3M9dCU5NytzLnNsaWNlKGUubGVuZ3RoKX1yZXR1cm4gcGFyc2VJbnQocywxMCklOTd9LCJtb2Q5NzEwIiksaHY9aShzPT57bGV0IGU9cy5yZXBsYWNlKC9bXHMuXSsvZywiIik7cmV0dXJuIFNuZShlKT09PTF9LCJjaGVja01vZDk3MTBCQkFOIiksTFdhPWkocz0+e2xldCBlPVszLDksNywxLDMsOSw3XSx0PXBhcnNlSW50KHMuY2hhckF0KDcpLDEwKSxhPXMuc3Vic3RyaW5nKDAsNykscj0wO2ZvcihsZXQgbz0wO288NztvKyspcis9cGFyc2VJbnQoYS5jaGFyQXQobyksMTApKmVbb107bGV0IG49ciUxMDtyZXR1cm4gdD09PShuPT09MD8wOjEwLW4pfSwiY2hlY2tQb2xhbmRCQkFOIiksRVdhPWkocz0+e2xldCBlPVs0LDgsNSwxMCw5LDcsMyw2XSx0PVsxLDIsNCw4LDUsMTAsOSw3LDMsNl0sYT1wYXJzZUludChzLmNoYXJBdCg4KSwxMCkscj1wYXJzZUludChzLmNoYXJBdCg5KSwxMCksbj1zLnN1YnN0cmluZygwLDgpLG89cy5zdWJzdHJpbmcoMTAsMjApLGw9MDtmb3IobGV0IGQ9MDtkPDg7ZCsrKWwrPXBhcnNlSW50KG4uY2hhckF0KGQpLDEwKSplW2RdO2xldCBwPWwlMTE7aWYoYSE9PShwPT09MD8wOnA9PT0xPzE6MTEtcCkpcmV0dXJuITE7bD0wO2ZvcihsZXQgZD0wO2Q8MTA7ZCsrKWwrPXBhcnNlSW50KG8uY2hhckF0KGQpLDEwKSp0W2RdO3JldHVybiBwPWwlMTEscj09PShwPT09MD8wOnA9PT0xPzE6MTEtcCl9LCJjaGVja1NwYWluQkJBTiIpLG0wYT1pKChzLGUpPT57bGV0IHQ9MTA7Zm9yKGxldCBhPTA7YTxzLmxlbmd0aDthKyspdCs9cGFyc2VJbnQocy5jaGFyQXQoYSksMTApLHQlMTAhPT0wJiYodD10JTEwKSx0PXQqMix0PXQlMTE7cmV0dXJuIGU9PT0oMTEtdD09PTEwPzA6MTEtdCl9LCJjaGVja01vZDExMTAiKSxQV2E9aShzPT57bGV0IGU9cGFyc2VJbnQocy5jaGFyQXQoNiksMTApLHQ9cGFyc2VJbnQocy5jaGFyQXQoMTYpLDEwKSxhPXMuc3Vic3RyaW5nKDAsNikscj1zLnN1YnN0cmluZyg3LDE2KTtyZXR1cm4gbTBhKGEsZSkmJm0wYShyLHQpfSwiY2hlY2tDcm9hdGlhbkJCQU4iKSxnMGE9aShzPT57bGV0IGU9WzEwLDUsOCw0LDIsMV0sdD1bNiwzLDcsOSwxMCw1LDgsNCwyLDFdLGE9cGFyc2VJbnQocy5jaGFyQXQoOSksMTApLHI9cGFyc2VJbnQocy5jaGFyQXQoMTkpLDEwKSxuPXMuc3Vic3RyaW5nKDQsOSksbz1zLnN1YnN0cmluZygxMCwxOSksbD0wO2ZvcihsZXQgZD0wO2Q8bi5sZW5ndGg7ZCsrKWwrPXBhcnNlSW50KG4uY2hhckF0KGQpLDEwKSplW2RdO2xldCBwPWwlMTE7aWYoYSE9PShwPT09MD8wOnA9PT0xPzE6MTEtcCkpcmV0dXJuITE7bD0wO2ZvcihsZXQgZD0wO2Q8by5sZW5ndGg7ZCsrKWwrPXBhcnNlSW50KG8uY2hhckF0KGQpLDEwKSp0W2RdO3JldHVybiBwPWwlMTEscj09PShwPT09MD8wOnA9PT0xPzE6MTEtcCl9LCJjaGVja0N6ZWNoQW5kU2xvdmFrQkJBTiIpLElXYT1pKHM9PntsZXQgZT1bNywxLDMsNywxLDMsNywxLDMsNywxLDMsN10sdD1wYXJzZUludChzLmNoYXJBdCgxNSksMTApLGE9cy5zdWJzdHJpbmcoMiwxNSkscj0wO2ZvcihsZXQgbz0wO288YS5sZW5ndGg7bysrKXIrPXBhcnNlSW50KGEuY2hhckF0KG8pLDEwKSplW29dO2xldCBuPXIlMTA7cmV0dXJuIHQ9PT0obj09PTA/MDoxMC1uKX0sImNoZWNrRXN0b25pYW5CQkFOIiksYjBhPWkocz0+e2xldCBlPXMucmVwbGFjZSgvW1xzLl0rL2csIiIpLHQ9QXJyYXkuZnJvbShlKTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IG49dFtyXS5jaGFyQ29kZUF0KDApO2lmKG4+PTY1KXN3aXRjaChuKXtjYXNlIDY1OmNhc2UgNzQ6dFtyXT0iMSI7YnJlYWs7Y2FzZSA2NjpjYXNlIDc1OmNhc2UgODM6dFtyXT0iMiI7YnJlYWs7Y2FzZSA2NzpjYXNlIDc2OmNhc2UgODQ6dFtyXT0iMyI7YnJlYWs7Y2FzZSA2ODpjYXNlIDc3OmNhc2UgODU6dFtyXT0iNCI7YnJlYWs7Y2FzZSA2OTpjYXNlIDc4OmNhc2UgODY6dFtyXT0iNSI7YnJlYWs7Y2FzZSA3MDpjYXNlIDc5OmNhc2UgODc6dFtyXT0iNiI7YnJlYWs7Y2FzZSA3MTpjYXNlIDgwOmNhc2UgODg6dFtyXT0iNyI7YnJlYWs7Y2FzZSA3MjpjYXNlIDgxOmNhc2UgODk6dFtyXT0iOCI7YnJlYWs7Y2FzZSA3MzpjYXNlIDgyOmNhc2UgOTA6dFtyXT0iOSI7YnJlYWt9fXJldHVybiBTbmUodC5qb2luKCIiKSk9PT0wfSwiY2hlY2tGcmVuY2hCQkFOIiksQVdhPWkocz0+e2xldCBlPVs5LDcsMywxLDksNywzLDEsOSw3LDMsMSw5LDcsM10sdD1wYXJzZUludChzLmNoYXJBdCg3KSwxMCksYT1zLnN1YnN0cmluZygwLDcpLHI9MDtmb3IobGV0IG89MDtvPGEubGVuZ3RoO28rKylyKz1wYXJzZUludChhLmNoYXJBdChvKSwxMCkqZVtvXTtsZXQgbj1yJTEwO2lmKHQhPT0obj09PTA/MDoxMC1uKSlyZXR1cm4hMTtpZihyPTAscy5lbmRzV2l0aCgiMDAwMDAwMDAiKSl7bGV0IG89cy5zdWJzdHJpbmcoOCwxNSksbD1wYXJzZUludChzLmNoYXJBdCgxNSksMTApO2ZvcihsZXQgZD0wO2Q8by5sZW5ndGg7ZCsrKXIrPXBhcnNlSW50KG8uY2hhckF0KGQpLDEwKSplW2RdO2xldCBwPXIlMTA7cmV0dXJuIGw9PT0ocD09PTA/MDoxMC1wKX1lbHNle2xldCBvPXMuc3Vic3RyaW5nKDgsMjMpLGw9cGFyc2VJbnQocy5jaGFyQXQoMjMpLDEwKTtmb3IobGV0IGQ9MDtkPG8ubGVuZ3RoO2QrKylyKz1wYXJzZUludChvLmNoYXJBdChkKSwxMCkqZVtkXTtsZXQgcD1yJTEwO3JldHVybiBsPT09KHA9PT0wPzA6MTAtcCl9fSwiY2hlY2tIdW5nYXJpYW5CQkFOIiksQ2FvPWkoKHMsZSk9PnR5cGVvZiBOY1tzXT4idSI/ITE6KE5jW3NdLmJiYW5fdmFsaWRhdGlvbl9mdW5jPWUsITApLCJzZXRDb3VudHJ5QkJBTlZhbGlkYXRpb24iKSxOYz17QUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTIzIn0sQUU6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjMifSxBRjp7fSxBRzp7fSxBSTp7fSxBTDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNyIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sQU06e30sQU86e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LEFROnt9LEFSOnt9LEFTOnt9LEFUOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQVU6e30sQVc6e30sQVg6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxBWjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yOCJ9LEJBOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxCQjp7fSxCRDp7fSxCRTp7Y2hhcnM6MTYsYmJhbl9yZWdleHA6Il5bMC05XXsxMn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpEV2EsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMTYifSxCRjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxCRzp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezZ9W0EtWjAtOV17OH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMifSxCSDp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LEJJOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjcifSxCSjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxCTDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQifSxCTTp7fSxCTjp7fSxCTzp7fSxCUTp7fSxCUjp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyM31bQS1aXXsxfVtBLVowLTldezF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiOC0xMiIsYmFua19pZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sQlM6e30sQlQ6e30sQlY6e30sQlc6e30sQlk6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs0fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJaOnt9LENBOnt9LENDOnt9LENEOnt9LENGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDRzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sQ0g6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LENJOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MjN9JCJ9LENLOnt9LENMOnt9LENNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDTjp7fSxDTzp7fSxDUjp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjIifSxDVTp7fSxDVjp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQ1c6e30sQ1g6e30sQ1k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNyIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sQ1o6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6ZzBhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sREU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTIyIn0sREo6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LERLOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sRE06e30sRE86e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxEWjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIn0sRUM6e30sRUU6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6SVdhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sRUc6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17MjV9IixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LEVIOnt9LEVSOnt9LEVTOntjaGFyczoyNCxiYmFuX3ZhbGlkYXRpb25fZnVuYzpFV2EsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI0In0sRVQ6e30sRkk6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMCJ9LEZKOnt9LEZLOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTJ9JCIsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMTgifSxGTTp7fSxGTzp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxGUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmIwYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI0In0sR0E6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEdCOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTkiLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sR0Q6e30sR0U6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMjIifSxHRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sR0c6e30sR0g6e30sR0k6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMyJ9LEdMOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEdNOnt9LEdOOnt9LEdQOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHUTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR1I6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17N31bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjcifSxHUzp7fSxHVDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxHVTp7fSxHVzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezE5fSQifSxHWTp7fSxISzp7fSxITTp7fSxITjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQifSxIUjp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXsxN30kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpQV2EsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTYifSxIVDp7fSxIVTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpBV2EsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTYiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sSUQ6e30sSUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxJTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sSU06e30sSU46e30sSU86e30sSVE6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTYiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxMS0yMyJ9LElSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxJUzp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItMyIsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjUifSxJVDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCIsYmFua19pZGVudGlmaWVyOiIxLTUiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjcifSxKRTp7fSxKTTp7fSxKTzp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjQtNyJ9LEpQOnt9LEtFOnt9LEtHOnt9LEtIOnt9LEtJOnt9LEtNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxLTjp7fSxLUDp7fSxLUjp7fSxLVzp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMjAtMzAifSxLWTp7fSxLWjp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMCJ9LExBOnt9LExCOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yOCJ9LExDOntjaGFyczozMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTMyIn0sTEk6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LExLOnt9LExSOnt9LExTOnt9LExUOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTFU6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LExWOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjEifSxMWTp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIxMC0yNSJ9LE1BOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQifSxNQzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmIwYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQifSxNRDp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yNCJ9LE1FOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMiJ9LE1GOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxNRzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sTUg6e30sTUs6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxMH1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LE1MOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LE1NOnt9LE1OOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMCJ9LE1POnt9LE1QOnt9LE1ROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxNUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI2In0sTVM6e30sTVQ6e2NoYXJzOjMxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs1fVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC04IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTUtMzEifSxNVTp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE5fVtBLVpdezN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi03IixiYW5rX2lkZW50aWZpZXI6IjAtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0zMCJ9LE1WOnt9LE1XOnt9LE1YOnt9LE1ZOnt9LE1aOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxOQTp7fSxOQzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sTkU6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sTkY6e30sTkc6e30sTkk6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixiYW5rX2lkZW50aWZpZXI6IjAtMyIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxOTDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezEwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTE4In0sTk86e2NoYXJzOjE1LGJiYW5fcmVnZXhwOiJeWzAtOV17MTF9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6JFdhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE1In0sTlA6e30sTlI6e30sTlU6e30sTlo6e30sT006e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMSxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFBBOnt9LFBFOnt9LFBGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxQRzp7fSxQSDp7fSxQSzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LFBMOntjaGFyczoyOCxiYmFuX3ZhbGlkYXRpb25fZnVuYzpMV2EsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMi0yOCJ9LFBNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxQTjp7fSxQUjp7fSxQUzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxQVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpodixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LFBXOnt9LFBZOnt9LFFBOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI5In0sUkU6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFJPOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjQifSxSUzp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpodixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxSVTp7Y2hhcnM6MzMsYmJhbl9yZWdleHA6Il5bMC05XXsxNH1bQS1aMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI5LTEzIixiYW5rX2lkZW50aWZpZXI6IjAtOCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTMtMzMifSxSVzp7fSxTQTp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyfVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjQifSxTQjp7fSxTQzp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfVtBLVpdezN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi03IixiYW5rX2lkZW50aWZpZXI6IjAtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxTRDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMTgifSxTRTp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFNHOnt9LFNIOnt9LFNJOntjaGFyczoxOSxiYmFuX3JlZ2V4cDoiXlswLTldezE1fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmh2LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi00IixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiOS0xNiJ9LFNKOnt9LFNLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmcwYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMH0sU0w6e30sU006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsxMH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtMTAifSxTTjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxTTzp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTYiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sU1I6e30sU1M6e30sU1Q6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03In0sU1Y6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LFNYOnt9LFNZOnt9LFNaOnt9LFRDOnt9LFREOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxURjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sVEc6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sVEg6e30sVEo6e30sVEs6e30sVEw6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjMifSxUTTp7fSxUTjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjQifSxUTzp7fSxUUjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezE3fSQiLElCQU5SZWdpc3RyeTohMH0sVFQ6e30sVFY6e30sVFc6e30sVFo6e30sVUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17Nn1bQS1aMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiMTUtMjkifSxVRzp7fSxVTTp7fSxVUzp7fSxVWTp7fSxVWjp7fSxWQTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0iLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjIifSxWQzp7fSxWRTp7fSxWRzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI0In0sVkk6e30sVk46e30sVlU6e30sV0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFdTOnt9LFhLOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMCJ9LFlFOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiW0EtWl17NH1bMC05XXs0fVswLTlBLVpdezE4fSIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixicmFuY2hfaW5kZW50aWZpZXI6IjQtNyJ9LFlUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxaQTp7fSxaTTp7fSxaVzp7fX19KTt2YXIgeDBhLHkwYT1nKCgpPT57cGUoKTt4MGE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF5bWVudC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBJQkFOIElucHV0In0gLnN1YnRpdGxlPSR7IkludGVybmF0aW9uYWwgQmFuayBBY2NvdW50IE51bWJlciB3aXRoIGF1dG9tYXRpYyBmb3JtYXR0aW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkJhbmsgQWNjb3VudCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVudGVyIHlvdXIgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IllvdXIgSUJBTiBjYW4gYmUgZm91bmQgb24geW91ciBiYW5rIHN0YXRlbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiVmVyaWZpZWQgSUJBTiJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIElCQU4gaGFzIGJlZW4gdmVyaWZpZWQifQogICAgICAgICAgICAudmFsdWU9JHsiREU4OTM3MDQwMDQ0MDUzMjAxMzAwMCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQYXltZW50IEluZm9ybWF0aW9uIn0gLnN1YnRpdGxlPSR7IklCQU4gaW5wdXQgd2l0aCBob3Jpem9udGFsIGxheW91dCBmb3IgcGF5bWVudCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJBY2NvdW50IEhvbGRlciJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IkpvaG4gRG9lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAgIC5sYWJlbD0keyJJQkFOIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiR0I4MldFU1QxMjM0NTY5ODc2NTQzMiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBmaWVsZHMgYW5kIGRpc2FibGVkIHN0YXRlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJQYXltZW50IEFjY291bnQifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiUmVxdWlyZWQgZm9yIHByb2Nlc3NpbmcgcGF5bWVudHMifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJMb2NrZWQgSUJBTiJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIElCQU4gY2Fubm90IGJlIGNoYW5nZWQifQogICAgICAgICAgICAudmFsdWU9JHsiRlIxNDIwMDQxMDEwMDUwNTAwMDEzTTAyNjA2In0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYW5rIFRyYW5zZmVyIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSBleGFtcGxlIHdpdGggSUJBTiB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlJlY2lwaWVudCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAubGFiZWw9JHsiUmVjaXBpZW50IElCQU4ifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJUcmFuc2ZlciBSZWZlcmVuY2UifSAuaW5mb1RleHQ9JHsiT3B0aW9uYWwgcmVmZXJlbmNlIGZvciB0aGUgdHJhbnNmZXIifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFtb3VudCJ9IC5pbnB1dFR5cGU9JHsibnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgX25lLFI4LE1uZSxZZXQ9ZygoKT0+e3BlKCk7a3QoKTt6aSgpO0tldCgpO3kwYSgpO3B0KCk7X25lPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxSOD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sTW5lPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1pYmFuIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dEliYW4iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0sX25lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW50ZXJlZFN0cmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iZW50ZXJlZFN0cmluZyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmVudGVyZWRTdHJpbmcsImdldCIpLHNldDppKChmLHkpPT57Zi5lbnRlcmVkU3RyaW5nPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxfbmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkSWJhbklzVmFsaWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImVudGVyZWRJYmFuSXNWYWxpZCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmVudGVyZWRJYmFuSXNWYWxpZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmVudGVyZWRJYmFuSXNWYWxpZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksX25lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbHVlImluIGYsImhhcyIpLGdldDppKGY9PmYudmFsdWUsImdldCIpLHNldDppKChmLHkpPT57Zi52YWx1ZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksX25lKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89eDBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1SOCh0aGlzLG8sIiIpO2dldCBlbnRlcmVkU3RyaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVudGVyZWRTdHJpbmcobSl7dGhpcy4jZT1tfSN0PShSOCh0aGlzLGwpLFI4KHRoaXMsZCwhMSkpO2dldCBlbnRlcmVkSWJhbklzVmFsaWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKG0pe3RoaXMuI3Q9bX0jYT0oUjgodGhpcyx1KSxSOCh0aGlzLGIsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFsdWUobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIElCQU4gaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbHx8IklCQU4ifSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkRFODkgMzcwNCAwMDQ0IDA1MzIgMDEzMCAwMCJ9CiAgICAgICAgICAudmFsaWRhdGlvbkZ1bmN0aW9uPSR7bT0+e2xldCBmPW0ucmVwbGFjZSgvIC9nLCIiKTtyZXR1cm4gZi5sZW5ndGg9PT0wP3t2YWxpZDohMCxtZXNzYWdlOiIifTpOOChmKT97dmFsaWQ6ITAsbWVzc2FnZToiSUJBTiBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBJQkFOIn19fQogICAgICAgICAgQGlucHV0PSR7bT0+e3RoaXMudmFsaWRhdGVJYmFuKG0pfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQobSl7c3VwZXIuZmlyc3RVcGRhdGVkKG0pO2xldCBmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtmJiZmLmNoYW5nZVN1YmplY3QmJmYuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWFzeW5jIHZhbGlkYXRlSWJhbihtKXtsZXQgZj1tLnRhcmdldCx5PWY/LnZhbHVlO3k9eXx8IiIsdGhpcy5lbnRlcmVkU3RyaW5nIT09eSYmKHRoaXMuZW50ZXJlZFN0cmluZz1mdih5KXx8IiIsZiYmKGYudmFsdWU9dGhpcy5lbnRlcmVkU3RyaW5nLHRoaXMudmFsdWU9dGhpcy5lbnRlcmVkU3RyaW5nLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKSksdGhpcy5lbnRlcmVkSWJhbklzVmFsaWQ9TjgodGhpcy5lbnRlcmVkU3RyaW5nLnJlcGxhY2UoLyAvZywiIikpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUobSl7dGhpcy52YWx1ZT1tLHRoaXMuZW50ZXJlZFN0cmluZz1mdihtKXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFI4KHRoaXMsdil9c3RhdGlje1I4KGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciB3MGEsazBhPWcoKCk9PntwZSgpO3cwYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2V0dGluZ3MtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NdWx0aS1PcHRpb24gVG9nZ2xlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2VsZWN0IGZyb20gbXVsdGlwbGUgb3B0aW9ucyB3aXRoIGEgc21vb3RoIHNsaWRpbmcgaW5kaWNhdG9yIGFuaW1hdGlvbi48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNwbGF5IE1vZGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQ2hvb3NlIGhvdyBjb250ZW50IGlzIGRpc3BsYXllZCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHNldHRpbmcgYWZmZWN0cyBob3cgaXRlbXMgYXBwZWFyIG9uIHlvdXIgZGFzaGJvYXJkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxpc3QgVmlldyIsIkdyaWQgVmlldyIsIkNvbXBhY3QiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkdyaWQgVmlldyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJULVNoaXJ0IFNpemUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IHlvdXIgcHJlZmVycmVkIHNpemUifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWFMiLCJTIiwiTSIsIkwiLCJYTCIsIlhYTCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkJvb2xlYW4gVG9nZ2xlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2ltcGxlIG9uL29mZiBzd2l0Y2hlcyB3aXRoIGN1c3RvbWl6YWJsZSBsYWJlbHMgZm9yIGNsZWFyZXIgY29udGV4dC48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVuYWJsZSBvciBkaXNhYmxlIHB1c2ggbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidHJ1ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBNb2RlIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlN3aXRjaCBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrIHRoZW1lIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRGFyayJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkxpZ2h0In0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRhcmsifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TZXR0aW5ncyBHcmlkPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29uZmlndXJhdGlvbiBvcHRpb25zIGFycmFuZ2VkIGluIGEgcmVzcG9uc2l2ZSBncmlkIGxheW91dC48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJBdXRvLVNhdmUifQogICAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiRGlzYWJsZWQifQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmFibGVkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJRdWFsaXR5In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siTG93IiwiTWVkaXVtIiwiSGlnaCIsIlVsdHJhIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkhpZ2gifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHJpdmFjeSJ9CiAgICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcml2YXRlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0YXRlcyAmIEZvcm0gSW50ZWdyYXRpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5FeGFtcGxlcyBvZiBkaXNhYmxlZCBzdGF0ZXMgYW5kIGludGVncmF0aW9uIHdpdGhpbiBmb3Jtcy48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgVHlwZSJ9CiAgICAgICAgICAuaW5mb1RleHQ9JHsiVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRnJlZSIsIlBybyIsIkVudGVycHJpc2UiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbnRlcnByaXNlIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlZpc2liaWxpdHkifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMaWNlbnNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk1JVCIsIkFwYWNoZSAyLjAiLCJHUEwgdjMiLCJQcm9wcmlldGFyeSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTUlUIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIE84LEtsLHpuZSxaZXQ9ZygoKT0+e3BlKCk7emkoKTtHMSgpO2swYSgpO3B0KCk7Tzg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEtsPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6bmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LW11bHRpdG9nZ2xlIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dE11bHRpdG9nZ2xlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLGM9W0woKV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtMKCldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPOCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InR5cGUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS50eXBlLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudHlwZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksTzgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuVHJ1ZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImJvb2xlYW5UcnVlTmFtZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmJvb2xlYW5UcnVlTmFtZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmJvb2xlYW5UcnVlTmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGQsdSksTzgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuRmFsc2VOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJib29sZWFuRmFsc2VOYW1lImluIEUsImhhcyIpLGdldDppKEU9PkUuYm9vbGVhbkZhbHNlTmFtZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmJvb2xlYW5GYWxzZU5hbWU9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLE84KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ib3B0aW9ucyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm9wdGlvbnMsImdldCIpLHNldDppKChFLEgpPT57RS5vcHRpb25zPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxPOCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZWxlY3RlZE9wdGlvbiJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2VsZWN0ZWRPcHRpb249SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLE84KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJib29sVmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ib29sVmFsdWUsImdldCIpLHNldDppKChFLEgpPT57RS5ib29sVmFsdWU9SH0sInNldCIpfSxtZXRhZGF0YTokfSxDLF8pLE84KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOiR9LG51bGwsdCksTz1hPWUudmFsdWUsJCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTokfSl9c3RhdGljIGRlbW89dzBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1LbCh0aGlzLG8sIm11bHRpIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZSgkKXt0aGlzLiNlPSR9I3Q9KEtsKHRoaXMsbCksS2wodGhpcyxkLCJ0cnVlIikpO2dldCBib29sZWFuVHJ1ZU5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYm9vbGVhblRydWVOYW1lKCQpe3RoaXMuI3Q9JH0jYT0oS2wodGhpcyx1KSxLbCh0aGlzLGIsImZhbHNlIikpO2dldCBib29sZWFuRmFsc2VOYW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJvb2xlYW5GYWxzZU5hbWUoJCl7dGhpcy4jYT0kfSNzPShLbCh0aGlzLHYpLEtsKHRoaXMsbSxbXSkpO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG9wdGlvbnMoJCl7dGhpcy4jcz0kfSNpPShLbCh0aGlzLGYpLEtsKHRoaXMsTSwiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZE9wdGlvbigkKXt0aGlzLiNpPSR9I3I9KEtsKHRoaXMseiksS2wodGhpcyxDLCExKSk7Z2V0IGJvb2xWYWx1ZSgpe3JldHVybiB0aGlzLiNyfXNldCBib29sVmFsdWUoJCl7dGhpcy4jcj0kfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKCQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mICQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPSQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5ib29sZWFuRmFsc2VOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb249JCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbnMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAub3B0aW9uIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNlNGU0ZTciKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5pbmRpY2F0b3IgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gOHB4KTsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnNlbGVjdGlvbnMgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAub3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuaW5kaWNhdG9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIsInJnYmEoMTEzLCAxMTMsIDEyMiwgMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3Rpb25zIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImluZGljYXRvciI+PC9kaXY+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoJD0+d2A8ZGl2IGNsYXNzPSJvcHRpb24gJHskPT09dGhpcy5zZWxlY3RlZE9wdGlvbj8ic2VsZWN0ZWQiOiIifSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU2VsZWN0aW9uKCQpfT4KICAgICAgICAgICAgICAgICR7JH0KICAgICAgICAgICAgICA8L2Rpdj4gYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnRoaXMub3B0aW9ucy5sZW5ndGg9PT0wJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0sdGhpcy5zZWxlY3RlZE9wdGlvbnx8KHRoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiKSksIXRoaXMuc2VsZWN0ZWRPcHRpb24mJnRoaXMub3B0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5vcHRpb25zWzBdKX1hc3luYyBmaXJzdFVwZGF0ZWQoJCl7c3VwZXIuZmlyc3RVcGRhdGVkKCQpLHRoaXMudHlwZT09PSJib29sZWFuIiYmKHRoaXMub3B0aW9ucz1bdGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIix0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSJdKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxhd2FpdCBuZXcgUHJvbWlzZShFPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoRSkpLHRoaXMuc2V0SW5kaWNhdG9yKCl9YXN5bmMgaGFuZGxlU2VsZWN0aW9uKCQpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnNlbGVjdGVkT3B0aW9uPSQsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnNldEluZGljYXRvcigpKX1pbmRpY2F0b3JJbml0aWFsaXplZD0oS2wodGhpcyxfKSwhMSk7YXN5bmMgc2V0SW5kaWNhdG9yKCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbmRpY2F0b3IiKSxFPXRoaXMub3B0aW9ucy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRPcHRpb24pO2lmKEU9PT0tMXx8ISQpeyQmJigkLnN0eWxlLm9wYWNpdHk9IjAiKTtyZXR1cm59bGV0IEg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYC5vcHRpb246bnRoLWNoaWxkKCR7RSsyfSlgKTskJiZIJiYodGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZHx8KCQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITAsc2V0VGltZW91dCgoKT0+eyQuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSw1MCkpLCQuc3R5bGUud2lkdGg9YCR7SC5jbGllbnRXaWR0aH1weGAsJC5zdHlsZS5sZWZ0PWAke0gub2Zmc2V0TGVmdH1weGAsJC5zdHlsZS5vcGFjaXR5PSIxIil9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy50eXBlPT09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249PT10aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldFZhbHVlKCQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mICQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPSQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIjp0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSI6dGhpcy5zZWxlY3RlZE9wdGlvbj0kLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuaGFzVXBkYXRlZCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zZXRJbmRpY2F0b3IoKX0pfXN0YXRpY3tLbChhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgUzBhLF8wYT1nKCgpPT57cGUoKTtTMGE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVudGVyIHlvdXIgcGhvbmUgbnVtYmVyIHdpdGggY291bnRyeSBjb2RlIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkluY2x1ZGUgY291bnRyeSBjb2RlIGZvciBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik1vYmlsZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjQxNTU1NTEyMzQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgICAubGFiZWw9JHsiT2ZmaWNlIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDgwMCkgNTU1LTAwMDAifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkludGVybmF0aW9uYWwgQ29udGFjdCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBdXRvbWF0aWNhbGx5IGZvcm1hdHMgaW50ZXJuYXRpb25hbCBudW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjQ0MTIzNDU2Nzg5MCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWVyZ2VuY3kgQ29udGFjdCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI5MTEifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0IGFzIHBhcnQgb2YgYSBjb250YWN0IGZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRnVsbCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgLmxhYmVsPSR7IlBob25lIE51bWJlciJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJFbWFpbCJ9IC5pbnB1dFR5cGU9JHsiZW1haWwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIENuZSxGOCxUbmUsWGV0PWcoKCk9PntwZSgpO2t0KCk7emkoKTtfMGEoKTtwdCgpO0NuZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRjg9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFRuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcGhvbmUiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UGhvbmUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLENuZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvcm1hdHRlZFBob25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJmb3JtYXR0ZWRQaG9uZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmZvcm1hdHRlZFBob25lLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZm9ybWF0dGVkUGhvbmU9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLENuZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ2YWx1ZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudmFsdWU9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLENuZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJwbGFjZWhvbGRlciJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YucGxhY2Vob2xkZXI9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLENuZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPVMwYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9RjgodGhpcyxvLCIiKTtnZXQgZm9ybWF0dGVkUGhvbmUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZm9ybWF0dGVkUGhvbmUobSl7dGhpcy4jZT1tfSN0PShGOCh0aGlzLGwpLEY4KHRoaXMsZCwiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCB2YWx1ZShtKXt0aGlzLiN0PW19I2E9KEY4KHRoaXMsdSksRjgodGhpcyxiLCIrMSAoNTU1KSAxMjMtNDU2NyIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGxhY2Vob2xkZXIobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIFBob25lIGlucHV0IHNwZWNpZmljIHN0eWxlcyBjYW4gZ28gaGVyZSAqLwogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLmZvcm1hdHRlZFBob25lfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgQGlucHV0PSR7bT0+dGhpcy5oYW5kbGVQaG9uZUlucHV0KG0pfQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZChtKXtzdXBlci5maXJzdFVwZGF0ZWQobSksdGhpcy52YWx1ZSYmKHRoaXMuZm9ybWF0dGVkUGhvbmU9dGhpcy5mb3JtYXRQaG9uZU51bWJlcih0aGlzLnZhbHVlKSk7bGV0IGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO2YmJmYuY2hhbmdlU3ViamVjdCYmZi5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSl9aGFuZGxlUGhvbmVJbnB1dChtKXtsZXQgZj1tLnRhcmdldCx5PXRoaXMuY2xlYW5QaG9uZU51bWJlcihmLnZhbHVlKSxNPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIoeSk7aWYoZi52YWx1ZSE9PU0pe2xldCB6PWYuc2VsZWN0aW9uU3RhcnR8fDA7Zi52YWx1ZT1NO2xldCBOPXRoaXMuY2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24oeSxNLHopO2Yuc2V0U2VsZWN0aW9uUmFuZ2UoTixOKX10aGlzLmZvcm1hdHRlZFBob25lPU0sdGhpcy52YWx1ZT15LHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWNsZWFuUGhvbmVOdW1iZXIobSl7cmV0dXJuIG0ucmVwbGFjZSgvXEQvZywiIil9Zm9ybWF0UGhvbmVOdW1iZXIobSl7bGV0IGY9dGhpcy5jbGVhblBob25lTnVtYmVyKG0pO3JldHVybiBmLmxlbmd0aD09PTA/IiI6Zi5sZW5ndGg8PTM/ZjpmLmxlbmd0aDw9Nj9gKCR7Zi5zbGljZSgwLDMpfSkgJHtmLnNsaWNlKDMpfWA6Zi5sZW5ndGg8PTEwP2AoJHtmLnNsaWNlKDAsMyl9KSAke2Yuc2xpY2UoMyw2KX0tJHtmLnNsaWNlKDYpfWA6YCske2Yuc2xpY2UoMCxmLmxlbmd0aC0xMCl9ICgke2Yuc2xpY2UoLTEwLC03KX0pICR7Zi5zbGljZSgtNywtNCl9LSR7Zi5zbGljZSgtNCl9YH1jYWxjdWxhdGVDdXJzb3JQb3NpdGlvbihtLGYseSl7bGV0IE09MDtmb3IobGV0IHo9MDt6PHkmJno8Zi5sZW5ndGg7eisrKS9cZC8udGVzdChmW3pdKXx8TSsrO3JldHVybiBNYXRoLm1pbih5K00sZi5sZW5ndGgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUobSl7dGhpcy52YWx1ZT1tLHRoaXMuZm9ybWF0dGVkUGhvbmU9dGhpcy5mb3JtYXRQaG9uZU51bWJlcihtKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRjgodGhpcyx2KX1zdGF0aWN7RjgoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIE0wYSx6MGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO00wYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiN0b2dnbGUtYWxsLW9uIiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiN0b2dnbGUtYWxsLW9mZiIpLGE9cy5xdWVyeVNlbGVjdG9yQWxsKCIuZmVhdHVyZS10b2dnbGVzIGRlZXMtaW5wdXQtdG9nZ2xlIik7ZSYmdCYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5mb3JFYWNoKHI9PntsZXQgbj1yOyFuLmRpc2FibGVkJiYhbi5yZXF1aXJlZCYmKG4udmFsdWU9ITApfSl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EuZm9yRWFjaChyPT57bGV0IG49cjshbi5kaXNhYmxlZCYmIW4ucmVxdWlyZWQmJihuLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvZ2dsZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CgogICAgICAgIC5ob3Jpem9udGFsLXRvZ2dsZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CgogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICB9CgogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlLXRvZ2dsZXMgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuZHJhZy1oaW50IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVG9nZ2xlIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBvbi9vZmYgdG9nZ2xlIHN3aXRjaCB3aXRoIGRyYWcgc3VwcG9ydCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBmZWF0dXJlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsiYmFzaWMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJBY3RpdmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiYWN0aXZlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiV2l0aCBkZXNjcmlwdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgaGFzIGFkZGl0aW9uYWwgaGVscGVyIHRleHQgZXhwbGFpbmluZyBpdHMgcHVycG9zZSJ9CiAgICAgICAgICAgIC5rZXk9JHsid2l0aERlc2MifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPHAgY2xhc3M9ImRyYWctaGludCI+VGlwOiBZb3UgY2FuIGRyYWcgdGhlIHRvZ2dsZSBrbm9iIHRvIHN3aXRjaCBzdGF0ZXM8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUb2dnbGUgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB0b2dnbGUgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvZmYpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCAoYWx3YXlzIG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgdG9nZ2xlIGNhbm5vdCBiZSB0dXJuZWQgb2ZmIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiVG9nZ2xlcyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgaW50ZXJmYWNlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLXRvZ2dsZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiV2lGaSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJsdWV0b290aCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkdQUyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik5GQyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgaW4gYSB0eXBpY2FsIHNldHRpbmdzIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oND4KCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb24geW91ciBkZXZpY2UifQogICAgICAgICAgICAgIC5rZXk9JHsicHVzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgaW1wb3J0YW50IHVwZGF0ZXMgdmlhIGVtYWlsIn0KICAgICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU291bmQifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJQbGF5IGEgc291bmQgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsic291bmQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJWaWJyYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJWaWJyYXRlIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InZpYnJhdGlvbiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFRvZ2dsZXMifSAuc3VidGl0bGU9JHsiQmF0Y2ggb3BlcmF0aW9ucyBvbiBtdWx0aXBsZSB0b2dnbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vbiIgdHlwZT0ic2Vjb25kYXJ5Ij5FbmFibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vZmYiIHR5cGU9InNlY29uZGFyeSI+RGlzYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLXRvZ2dsZXMiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJkYXJrTW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tc2F2ZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJhdXRvU2F2ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWxsIGNoZWNrIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7InNwZWxsQ2hlY2sifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wZXIgbW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJkZXZNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmV0YSBmZWF0dXJlcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJiZXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzIGluIHJlYWwtdGltZSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFpcnBsYW5lIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaXJwbGFuZS1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gQWlycGxhbmUgbW9kZTogJHtzLmRldGFpbD8iT04iOiJPRkYifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRG8gbm90IGRpc3R1cmIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkbmQtb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9YERvIG5vdCBkaXN0dXJiOiAke3MuZGV0YWlsPyJFTkFCTEVEIjoiRElTQUJMRUQifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImFpcnBsYW5lLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5BaXJwbGFuZSBtb2RlOiBPRkY8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRuZC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRvIG5vdCBkaXN0dXJiOiBESVNBQkxFRDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgQzBhLFFldCwkbmUsSmV0PWcoKCk9PntwZSgpO2t0KCk7emkoKTt6MGEoKTtDcigpO3B0KCk7QzBhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxRZXQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LCRuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtdG9nZ2xlIildLGUsdD1bXSxhLHI9T3QsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRvZ2dsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEMwYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJ2YWx1ZSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnZhbHVlLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UudmFsdWU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEMwYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPU0wYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9UWV0KHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGQpe3RoaXMuI2U9ZH1jdXJyZW50WD0oUWV0KHRoaXMsbCksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bSGUsLi4uT3QuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2s6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IuZHJhZ2dpbmcgewogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogUmVxdWlyZWQgc3RhdGUgKGxvY2tlZCBvbikgKi8KICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbcmVxdWlyZWRdW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExhYmVsICovCiAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMuaGFuZGxlQ2xpY2t9Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS10cmFjayAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZUtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1rbm9iIgogICAgICAgICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucGFkZGluZyt0aGlzLmN1cnJlbnRYfXB4OyIKICAgICAgICAgICAgICBAcG9pbnRlcmRvd249IiR7dGhpcy5vblBvaW50ZXJEb3dufSIKICAgICAgICAgICAgICBAcG9pbnRlcm1vdmU9IiR7dGhpcy5vblBvaW50ZXJNb3ZlfSIKICAgICAgICAgICAgICBAcG9pbnRlcnVwPSIke3RoaXMub25Qb2ludGVyVXB9IgogICAgICAgICAgICAgIEBwb2ludGVyY2FuY2VsPSIke3RoaXMub25Qb2ludGVyVXB9IgogICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9InRvZ2dsZS1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoZCl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKGQpLHRoaXMucmVxdWlyZWQmJiF0aGlzLnZhbHVlJiYodGhpcy52YWx1ZT0hMCksdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXN5bmMgaGFuZGxlQ2xpY2soZCl7aWYodGhpcy5pc0RyYWdnaW5nfHx0aGlzLmhhc0RyYWdnZWQpe2Quc3RvcFByb3BhZ2F0aW9uKCksZC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighdGhpcy5kaXNhYmxlZCl7aWYodGhpcy5yZXF1aXJlZCl7dGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbCx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCBuZXcgUHJvbWlzZSh1PT5zZXRUaW1lb3V0KHUsMTApKSx0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLTMsdGhpcy5yZXF1ZXN0VXBkYXRlKCksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigxNTApLHRoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCk7cmV0dXJufWQuc3RvcFByb3BhZ2F0aW9uKCksZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudmFsdWU9IXRoaXMudmFsdWUsdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCkudGhlbigoKT0+e3RoaXMuaGFzRHJhZ2dlZD0hMX0pfX1vblBvaW50ZXJEb3duKGQpe3RoaXMucmVxdWlyZWR8fHRoaXMuZGlzYWJsZWR8fCh0aGlzLmlzRHJhZ2dpbmc9ITAsdGhpcy5zdGFydFg9ZC5jbGllbnRYLXRoaXMuY3VycmVudFgsZC50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoZC5wb2ludGVySWQpKX1vblBvaW50ZXJNb3ZlKGQpe2lmKCF0aGlzLmlzRHJhZ2dpbmcpcmV0dXJuO2xldCB1PWQuY2xpZW50WC10aGlzLnN0YXJ0WDt0aGlzLmhhc0RyYWdnZWQ9ITA7bGV0IGM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLWtub2IiKTtjJiZjLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5jdXJyZW50WD1NYXRoLm1heCgwLE1hdGgubWluKHUsdGhpcy5tYXhUcmF2ZWwpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1vblBvaW50ZXJVcChkKXtpZighdGhpcy5pc0RyYWdnaW5nfHwoZC50YXJnZXQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKGQucG9pbnRlcklkKSx0aGlzLmlzRHJhZ2dpbmc9ITEsIXRoaXMuaGFzRHJhZ2dlZCkpcmV0dXJuO2xldCB1PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS1rbm9iIik7dSYmdS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpO2xldCBjPXRoaXMubWF4VHJhdmVsLzI7dGhpcy52YWx1ZT10aGlzLmN1cnJlbnRYPmMsdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCkudGhlbigoKT0+e3RoaXMuaGFzRHJhZ2dlZD0hMX0pfXVwZGF0ZWQoZCl7c3VwZXIudXBkYXRlZChkKSxkLmhhcygidmFsdWUiKSYmIXRoaXMuaXNEcmFnZ2luZyYmIXRoaXMuaGFzRHJhZ2dlZCYmKHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVLZXlkb3duKGQpeyhkLmtleT09PSIgInx8ZC5rZXk9PT0iRW50ZXIiKSYmKGQucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZUNsaWNrKGQpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGQpe3RoaXMudmFsdWU9ZH1mb2N1cygpe2xldCBkPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS10cmFjayIpO2QmJmQuZm9jdXMoKX1zdGF0aWN7UWV0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBUMGEsJDBhPWcoKCk9PntwZSgpO1QwYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UzZjJmZDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAjMTk3NmQyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWUzYTVmOwogICAgICAgICAgICBjb2xvcjogIzkwY2FmOTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUeXBlIExpc3QifSAuc3VidGl0bGU9JHsiQWRkIGFuZCByZW1vdmUgaXRlbXMgZnJvbSBhIGxpc3QifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIHRhZ3MgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlciJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUYWdzIGhlbHAgY2F0ZWdvcml6ZSBhbmQgZmlsdGVyIHlvdXIgY29udGVudCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siamF2YXNjcmlwdCIsInR5cGVzY3JpcHQiLCJ3ZWItY29tcG9uZW50cyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNraWxscyAmIEtleXdvcmRzIn0gLnN1YnRpdGxlPSR7Ik1hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJZb3VyIFNraWxscyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJMaXN0IHlvdXIgcHJvZmVzc2lvbmFsIHNraWxscyJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siSFRNTCIsIkNTUyIsIkphdmFTY3JpcHQiLCJOb2RlLmpzIiwiUmVhY3QiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3JpZXMifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0ke1siVGVjaG5vbG9neSIsIkRlc2lnbiIsIkJ1c2luZXNzIl19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJLZXl3b3JkcyJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJpbm5vdmF0aW9uIiwic3RhcnR1cCIsImdyb3d0aCJdfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgaW5wdXQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IERlcGVuZGVuY2llcyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJMaXN0IGFsbCByZXF1aXJlZCBucG0gcGFja2FnZXMifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7WyJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiLCJAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGVzZSB0YWdzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0ifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7WyJzeXN0ZW0iLCJwcm90ZWN0ZWQiLCJyZWFkb25seSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkFydGljbGUgUHVibGlzaGluZyBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIGZvcm0gd2l0aCB0YWcgbWFuYWdlbWVudCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBcnRpY2xlIFRpdGxlIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IlN1bW1hcnkifSAKICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYXJ0aWNsZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgcmVsZXZhbnQgdGFncyBmb3IgYmV0dGVyIGRpc2NvdmVyYWJpbGl0eSJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1sidHV0b3JpYWwiLCJ3ZWItZGV2ZWxvcG1lbnQiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiQ28tQXV0aG9ycyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgZW1haWwgYWRkcmVzc2VzIG9mIGNvLWF1dGhvcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgICA8c3Ryb25nPlRpcDo8L3N0cm9uZz4gVHlwZSBhIHZhbHVlIGFuZCBwcmVzcyBFbnRlciB0byBhZGQgaXQgdG8gdGhlIGxpc3QuIENsaWNrIG9uIGFueSBpdGVtIHRvIHJlbW92ZSBpdC4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGV0dCxEWixEbmUsdHR0PWcoKCk9PntwZSgpO2t0KCk7emkoKTskMGEoKTtwdCgpO2V0dD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRFo9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LERuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0VHlwZWxpc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W1koKV0sZXR0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InZhbHVlImluIHYsImhhcyIpLGdldDppKHY9PnYudmFsdWUsImdldCIpLHNldDppKCh2LHgpPT57di52YWx1ZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZXR0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaW5wdXRWYWx1ZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmlucHV0VmFsdWUsImdldCIpLHNldDppKCh2LHgpPT57di5pbnB1dFZhbHVlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxldHQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1UMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPURaKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGIpe3RoaXMuI2U9Yn0jdD0oRFoodGhpcyxsKSxEWih0aGlzLGQsIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbnB1dFZhbHVlKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHtoLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHtoLmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChiPT53YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHtifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7dj0+e3Yuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcoYil9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHtiPT57dGhpcy5pbnB1dFZhbHVlPWIudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHtiPT57Yi5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoYi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKGIpe3RoaXMudmFsdWUuaW5jbHVkZXMoYil8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGJdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKGIpe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIodj0+diE9PWIpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoYil7dGhpcy52YWx1ZT1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxEWih0aGlzLHUpfXN0YXRpY3tEWihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgRDBhLEwwYSxFMGE9ZygoKT0+e3BlKCk7SXQoKTtmbygpO0wwYT1pKCgpPT53KEQwYXx8KEQwYT1iYyhbYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICBgLGAKICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kaXNhYmxlZD1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAgIC5yZXF1aXJlZD1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLmlucHV0VHlwZT1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD1gLGA+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLXRhZ3MiCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICBAY2hhbmdlPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcHJldmlldyIgaWQ9InRhZ3MtcHJldmlldyI+CiAgICAgICAgICA8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0idGFncy1qc29uIj4KICAgICAgICAgIDxlbT5KU09OIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8c2NyaXB0PgogICAgICAgICAgLy8gVXBkYXRlIEpTT04gcHJldmlldwogICAgICAgICAgY29uc3QgdGFnc0lucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ludGVyYWN0aXZlLXRhZ3MnKTsKICAgICAgICAgIHRhZ3NJbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgICAgICAgY29uc3QganNvblByZXZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGFncy1qc29uJyk7CiAgICAgICAgICAgIGlmIChqc29uUHJldmlldykgewogICAgICAgICAgICAgIGpzb25QcmV2aWV3LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsIG51bGwsIDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICA8XC9zY3JpcHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYF0pKSxKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmYWZiOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZjI5Mzc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UwZTdmZjsKICAgICAgICAgIGNvbG9yOiAjNDMzOGNhOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxOwogICAgICAgICAgICBjb2xvcjogI2M3ZDJmZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGAsIjEuIEJhc2ljIFRhZ3MgSW5wdXQiLCJTaW1wbGUgdGFnIGlucHV0IHdpdGggY29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyIsIlByb2dyYW1taW5nIExhbmd1YWdlcyIsIkFkZCBhIGxhbmd1YWdlLi4uIixbIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiR28iXSwiUHJlc3MgRW50ZXIgb3IgY29tbWEgdG8gYWRkIHRhZ3MiLCIyLiBUYWdzIHdpdGggU3VnZ2VzdGlvbnMiLCJBdXRvLWNvbXBsZXRlIHN1Z2dlc3Rpb25zIGZvciBmYXN0ZXIgaW5wdXQiLCJUZWNoIFN0YWNrIiwiVHlwZSB0byBzZWUgc3VnZ2VzdGlvbnMuLi4iLFsiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTGl0IiwiTmV4dC5qcyIsIk51eHQiLCJTdmVsdGVLaXQiLCJOb2RlLmpzIiwiRGVubyIsIkJ1biIsIkV4cHJlc3MiLCJGYXN0aWZ5IiwiTmVzdC5qcyIsIktvYSIsIk1vbmdvREIiLCJQb3N0Z3JlU1FMIiwiUmVkaXMiLCJNeVNRTCIsIlNRTGl0ZSIsIkNhc3NhbmRyYSIsIkRvY2tlciIsIkt1YmVybmV0ZXMiLCJBV1MiLCJBenVyZSIsIkdDUCIsIlZlcmNlbCIsIk5ldGxpZnkiXSxbIlJlYWN0IiwiTm9kZS5qcyIsIlBvc3RncmVTUUwiLCJEb2NrZXIiXSwiU3RhcnQgdHlwaW5nIHRvIHNlZSBzdWdnZXN0aW9ucyBmcm9tIHBvcHVsYXIgdGVjaG5vbG9naWVzIiwiMy4gTGltaXRlZCBUYWdzIiwiUmVzdHJpY3QgdGhlIG51bWJlciBvZiB0YWdzIHVzZXJzIGNhbiBhZGQiLCJUb3AgMyBTa2lsbHMiLCJBZGQgdXAgdG8gMyBza2lsbHMuLi4iLDMsWyJEZXNpZ24iLCJEZXZlbG9wbWVudCJdLCJNYXhpbXVtIDMgdGFncyBhbGxvd2VkIiwiQ2F0ZWdvcmllcyAoTWF4IDUpIiwiU2VsZWN0IGNhdGVnb3JpZXMuLi4iLDUsWyJCbG9nIiwiVHV0b3JpYWwiLCJOZXdzIiwiUmV2aWV3IiwiR3VpZGUiLCJDYXNlIFN0dWR5IiwiSW50ZXJ2aWV3Il0sWyJUdXRvcmlhbCIsIkd1aWRlIl0sIkNob29zZSB1cCB0byA1IGNhdGVnb3JpZXMiLCI0LiBSZXF1aXJlZCAmIFZhbGlkYXRpb24iLCJUYWdzIGlucHV0IHdpdGggdmFsaWRhdGlvbiByZXF1aXJlbWVudHMiLCJQcm9qZWN0IFRhZ3MiLCJBZGQgYXQgbGVhc3Qgb25lIHRhZy4uLiIsITAsIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgLSBhZGQgYXQgbGVhc3Qgb25lIHRhZyIsIjUuIERpc2FibGVkIFN0YXRlIiwiUmVhZC1vbmx5IHRhZ3MgZGlzcGxheSIsIlN5c3RlbSBUYWdzIixbIlN5c3RlbSIsIlByb3RlY3RlZCIsIlJlYWQtT25seSIsIkFyY2hpdmUiXSwhMCwiVGhlc2UgdGFncyBjYW5ub3QgYmUgbW9kaWZpZWQiLCI2LiBGb3JtIEludGVncmF0aW9uIiwiVGFncyBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCIsIlByb2plY3QgTmFtZSIsIk15IEF3ZXNvbWUgUHJvamVjdCIsITAsIm5hbWUiLCJUZWNobm9sb2dpZXMgVXNlZCIsIkFkZCB0ZWNobm9sb2dpZXMuLi4iLCEwLCJ0ZWNobm9sb2dpZXMiLFsiVHlwZVNjcmlwdCIsIkphdmFTY3JpcHQiLCJQeXRob24iLCJHbyIsIlJ1c3QiLCJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJOb2RlLmpzIiwiRGVubyIsIkV4cHJlc3MiLCJGYXN0QVBJIl0sIlByb2plY3QgVGFncyIsIkFkZCBkZXNjcmlwdGl2ZSB0YWdzLi4uIiwidGFncyIsMTAsWyJmcm9udGVuZCIsImJhY2tlbmQiLCJmdWxsc3RhY2siLCJtb2JpbGUiLCJkZXNrdG9wIiwid2ViIiwiYXBpIiwiZGF0YWJhc2UiLCJkZXZvcHMiLCJ1aS91eCIsIm9wZW5zb3VyY2UiLCJzYWFzIiwiZW50ZXJwcmlzZSIsInN0YXJ0dXAiXSwiRGVzY3JpcHRpb24iLCJ0ZXh0YXJlYSIsIkRlc2NyaWJlIHlvdXIgcHJvamVjdC4uLiIsImRlc2NyaXB0aW9uIiwiQ3JlYXRlIFByb2plY3QiLCI3LiBJbnRlcmFjdGl2ZSBEZW1vIiwiQWRkIHRhZ3MgYW5kIHNlZSB0aGVtIGNvbGxlY3RlZCBpbiByZWFsLXRpbWUiLCJZb3VyIEludGVyZXN0cyIsIlR5cGUgeW91ciBpbnRlcmVzdHMuLi4iLFsiTXVzaWMiLCJNb3ZpZXMiLCJCb29rcyIsIlRyYXZlbCIsIlBob3RvZ3JhcGh5IiwiQ29va2luZyIsIkdhbWluZyIsIlNwb3J0cyIsIkFydCIsIlRlY2hub2xvZ3kiLCJGYXNoaW9uIiwiRml0bmVzcyIsIk5hdHVyZSIsIlNjaWVuY2UiLCJIaXN0b3J5Il0scz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0YWdzLXByZXZpZXciKSx0PXMuZGV0YWlsLnZhbHVlO2UmJih0Lmxlbmd0aD09PTA/ZS5pbm5lckhUTUw9JzxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+JzplLmlubmVySFRNTD10Lm1hcChhPT5gPHNwYW4gY2xhc3M9InRhZy1wcmV2aWV3LWl0ZW0iPiR7YX08L3NwYW4+YCkuam9pbigiIikpfSksImRlbW9GdW5jIil9KTt2YXIgYXUsem8sTG5lLGF0dD1nKCgpPT57cGUoKTt6aSgpO1VhKCk7RTBhKCk7cHQoKTthdT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sem89ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LExuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtdGFncyIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdO3ZhciBJPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRUYWdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFA9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W0woe3R5cGU6U3RyaW5nfSldLGF1KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbHVlImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsdWUsImdldCIpLHNldDppKChSLEspPT57Ui52YWx1ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG8sbCksYXUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4icGxhY2Vob2xkZXIiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnBsYWNlaG9sZGVyPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sZCx1KSxhdSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFRhZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+Im1heFRhZ3MiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5tYXhUYWdzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IubWF4VGFncz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGIsdiksYXUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic3VnZ2VzdGlvbnMiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5zdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnN1Z2dlc3Rpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxhdSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlucHV0VmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImlucHV0VmFsdWUiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5pbnB1dFZhbHVlLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuaW5wdXRWYWx1ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LE0seiksYXUodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InNob3dTdWdnZXN0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNob3dTdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnNob3dTdWdnZXN0aW9ucz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LEMsXyksYXUodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sJCxFKSxhdSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2YWxpZGF0aW9uVGV4dCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvblRleHQ9S30sInNldCIpfSxtZXRhZGF0YTpQfSxrLFMpLGF1KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlB9LG51bGwsdCksST1hPWUudmFsdWUsUCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpQfSl9c3RhdGljIGRlbW89TDBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT16byh0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShQKXt0aGlzLiNlPVB9I3Q9KHpvKHRoaXMsbCksem8odGhpcyxkLCJBZGQgdGFncy4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoUCl7dGhpcy4jdD1QfSNhPSh6byh0aGlzLHUpLHpvKHRoaXMsYiwwKSk7Z2V0IG1heFRhZ3MoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWF4VGFncyhQKXt0aGlzLiNhPVB9I3M9KHpvKHRoaXMsdiksem8odGhpcyxtLFtdKSk7Z2V0IHN1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHN1Z2dlc3Rpb25zKFApe3RoaXMuI3M9UH0jaT0oem8odGhpcyxmKSx6byh0aGlzLE0sIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNpfXNldCBpbnB1dFZhbHVlKFApe3RoaXMuI2k9UH0jcj0oem8odGhpcyx6KSx6byh0aGlzLEMsITEpKTtnZXQgc2hvd1N1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dTdWdnZXN0aW9ucyhQKXt0aGlzLiNyPVB9I289KHpvKHRoaXMsXyksem8odGhpcywkLC0xKSk7Z2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KCl7cmV0dXJuIHRoaXMuI299c2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KFApe3RoaXMuI289UH0jbj0oem8odGhpcyxFKSx6byh0aGlzLGssIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdmFsaWRhdGlvblRleHQoUCl7dGhpcy4jbj1QfXN0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjIpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjMpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogdGFnQXBwZWFyIDAuMTVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgdGFnQXBwZWFyIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgNDYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDU0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAudGFnLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBTdWdnZXN0aW9ucyBkcm9wZG93biAqLwogICAgICAuc3VnZ2VzdGlvbnMtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBQPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFI9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKFIpJiZSLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRhZ3MtY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb250YWluZXJDbGlja30KICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChSPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZyI+CiAgICAgICAgICAgICAgICA8c3Bhbj4ke1J9PC9zcGFuPgogICAgICAgICAgICAgICAgJHt0aGlzLmRpc2FibGVkPyIiOndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZy1yZW1vdmUiIEBjbGljaz0ke0s9PnRoaXMucmVtb3ZlVGFnKEssUil9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQmJighdGhpcy5tYXhUYWdzfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heFRhZ3MpP3dgCiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9InRhZy1pbnB1dCIKICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUtleURvd259CiAgICAgICAgICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLmhhbmRsZUJsdXJ9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMuc2hvd1N1Z2dlc3Rpb25zJiZQLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAke1AubWFwKChSLEspPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0ic3VnZ2VzdGlvbiAke0s9PT10aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7Vj0+e1YucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZFRhZyhSKX19CiAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9S30KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtSfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ29udGFpbmVyQ2xpY2soUCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IFI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7UiYmUC50YXJnZXQhPT1SJiZSLmZvY3VzKCl9aGFuZGxlSW5wdXQoUCl7bGV0IFI9UC50YXJnZXQ7aWYodGhpcy5pbnB1dFZhbHVlPVIudmFsdWUsdGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCIsIil8fHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiOyIpKXtsZXQgSz10aGlzLmlucHV0VmFsdWUucmVwbGFjZSgvWyw7XS9nLCIiKS50cmltKCk7SyYmdGhpcy5hZGRUYWcoSyl9fWhhbmRsZUtleURvd24oUCl7bGV0IFI9UC50YXJnZXQ7aWYoUC5rZXk9PT0iRW50ZXIiKWlmKFAucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4Pj0wJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7bGV0IEs9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoVj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoVikmJlYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpO0tbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0mJnRoaXMuYWRkVGFnKEtbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0pfWVsc2UgdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSYmdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlLnRyaW0oKSk7ZWxzZSBpZihQLmtleT09PSJCYWNrc3BhY2UiJiYhdGhpcy5pbnB1dFZhbHVlJiZ0aGlzLnZhbHVlLmxlbmd0aD4wKXRoaXMucmVtb3ZlVGFnKFAsdGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXSk7ZWxzZSBpZihQLmtleT09PSJBcnJvd0Rvd24iJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7UC5wcmV2ZW50RGVmYXVsdCgpO2xldCBLPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFY9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKFYpJiZWLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKS5sZW5ndGg7dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1NYXRoLm1pbih0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KzEsSy0xKX1lbHNlIFAua2V5PT09IkFycm93VXAiJiZ0aGlzLnNob3dTdWdnZXN0aW9ucz8oUC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5tYXgodGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleC0xLDApKTpQLmtleT09PSJFc2NhcGUiJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMSl9aGFuZGxlRm9jdXMoKXt0aGlzLnN1Z2dlc3Rpb25zLmxlbmd0aD4wJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITApfWhhbmRsZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMX0sMjAwKX1hZGRUYWcoUCl7aWYoIVB8fHRoaXMudmFsdWUuaW5jbHVkZXMoUCl8fHRoaXMubWF4VGFncyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4VGFncylyZXR1cm47dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxQXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMTtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWctaW5wdXQiKTtSJiYoUi52YWx1ZT0iIiksdGhpcy5lbWl0Q2hhbmdlKCl9cmVtb3ZlVGFnKFAsUil7UC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKEs9PkshPT1SKSx0aGlzLmVtaXRDaGFuZ2UoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoUCl7dGhpcy52YWx1ZT1QfHxbXX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYoIXRoaXMudmFsdWV8fHRoaXMudmFsdWUubGVuZ3RoPT09MCk/KHRoaXMudmFsaWRhdGlvblRleHQ9IkF0IGxlYXN0IG9uZSB0YWcgaXMgcmVxdWlyZWQiLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHpvKHRoaXMsUyl9c3RhdGlje3pvKGEsdCl9fTtyZXR1cm4gST1hfSkoKX0pO3ZhciBQMGEsSTBhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTt1digpO3hoKCk7QTgoKTtQMGE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmY2ZmY7CiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogIzFlNDBhZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIExpc3QgSW5wdXQifSAuc3VidGl0bGU9JHsiU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTaG9wcGluZyBMaXN0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJNaWxrIiwiQnJlYWQiLCJFZ2dzIiwiQ2hlZXNlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRG91YmxlLWNsaWNrIHRvIGVkaXQgaXRlbXMsIG9yIHVzZSB0aGUgZWRpdCBidXR0b24ifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg8J+SoSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gU29ydGFibGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJEcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiVGFzayBQcmlvcml0eSJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgdGFzay4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siUmV2aWV3IHB1bGwgcmVxdWVzdHMiLCJGaXggY3JpdGljYWwgYnVnIiwiVXBkYXRlIGRvY3VtZW50YXRpb24iLCJEZXBsb3kgdG8gcHJvZHVjdGlvbiIsIlRlYW0gc3RhbmR1cCBtZWV0aW5nIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRHJhZyBpdGVtcyB1c2luZyB0aGUgaGFuZGxlIHRvIHJlb3JkZXIgdGhlbSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5SEIERyYWcgdGhlIGdyaXAgaGFuZGxlIHRvIHJlb3JkZXIgdGFza3MgYnkgcHJpb3JpdHkKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gTWVtYmVycyAoTWluIDIsIE1heCA1KSJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB0ZWFtIG1lbWJlci4uLiJ9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgICAubWF4SXRlbXM9JHs1fQogICAgICAgICAgICAgIC52YWx1ZT0ke1siQWxpY2UiLCJCb2IiXX0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIDItNSB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlVuaXF1ZSBUYWdzIChObyBEdXBsaWNhdGVzKSJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB1bmlxdWUgdGFnLi4uIn0KICAgICAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJmcm9udGVuZCIsImJhY2tlbmQiLCJkYXRhYmFzZSJdfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBEZWxldGUgQ29uZmlybWF0aW9uIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmUgY29uZmlybWF0aW9uIGJlZm9yZSBkZWxldGluZyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJJbXBvcnRhbnQgRG9jdW1lbnRzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgZG9jdW1lbnQgbmFtZS4uLiJ9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJDb250cmFjdF8yMDI0LnBkZiIsIkZpbmFuY2lhbF9SZXBvcnRfUTMueGxzeCIsIlByb2plY3RfUHJvcG9zYWwuZG9jeCIsIk1lZXRpbmdfTm90ZXMudHh0Il19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRGVsZXRpb24gcmVxdWlyZXMgY29uZmlybWF0aW9uIGZvciBzYWZldHkifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIERpc2FibGVkIFN0YXRlIn0gLnN1YnRpdGxlPSR7IlJlYWQtb25seSBsaXN0IGRpc3BsYXkifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiU3lzdGVtIERlZmF1bHRzIn0KICAgICAgICAgIC52YWx1ZT0ke1siRGVmYXVsdCBTZXR0aW5nIDEiLCJEZWZhdWx0IFNldHRpbmcgMiIsIkRlZmF1bHQgU2V0dGluZyAzIl19CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGVzZSBpdGVtcyBjYW5ub3QgYmUgbW9kaWZpZWQifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiTGlzdCBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJSZWNpcGUgTmFtZSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJNeSBBbWF6aW5nIFJlY2lwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7Im5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiSW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaW5ncmVkaWVudC4uLiJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7M30KICAgICAgICAgICAgICAua2V5PSR7ImluZ3JlZGllbnRzIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIjIgY3VwcyBmbG91ciIsIjEgY3VwIHN1Z2FyIiwiMyBlZ2dzIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBhdCBsZWFzdCAzIGluZ3JlZGllbnRzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbnN0cnVjdGlvbnMifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaW5zdHJ1Y3Rpb24gc3RlcC4uLiJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgICAua2V5PSR7Imluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJQcmVoZWF0IG92ZW4gdG8gMzUwXHhCMEYiLCJNaXggZHJ5IGluZ3JlZGllbnRzIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBjb29raW5nIGluc3RydWN0aW9ucyBpbiBvcmRlciJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQW55IHNwZWNpYWwgbm90ZXMgb3IgdGlwcy4uLiJ9CiAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTYXZlIFJlY2lwZSJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiQnVpbGQgeW91ciBvd24gZmVhdHVyZSBsaXN0IGFuZCBzZWUgdGhlIGRhdGEifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtbGlzdCIKICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IEZlYXR1cmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSBmZWF0dXJlLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLmNvbmZpcm1EZWxldGU9JHshMX0KICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgIC5tYXhJdGVtcz0kezEwfQogICAgICAgICAgQGNoYW5nZT0ke3M9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjbGlzdC1qc29uIik7aWYoZSl7bGV0IHQ9e2l0ZW1zOnMuZGV0YWlsLnZhbHVlLGNvdW50OnMuZGV0YWlsLnZhbHVlLmxlbmd0aCx0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfTtlLnRleHRDb250ZW50PUpTT04uc3RyaW5naWZ5KHQsbnVsbCwyKX19fQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9Imxpc3QtanNvbiI+CiAgICAgICAgICB7CiAgICAgICAgICAgICJpdGVtcyI6IFtdLAogICAgICAgICAgICAiY291bnQiOiAwLAogICAgICAgICAgICAidGltZXN0YW1wIjogIiR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSIKICAgICAgICAgIH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg4pyoIEFkZCwgZWRpdCwgcmVtb3ZlLCBhbmQgcmVvcmRlciBpdGVtcyB0byBzZWUgdGhlIEpTT04gb3V0cHV0IHVwZGF0ZSBpbiByZWFsLXRpbWUKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjguIEFkdmFuY2VkIENvbmZpZ3VyYXRpb24ifSAuc3VidGl0bGU9JHsiQ29tYmluZSBhbGwgZmVhdHVyZXMgZm9yIGNvbXBsZXggdXNlIGNhc2VzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgTWlsZXN0b25lcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIG1pbGVzdG9uZS4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIlByb2plY3QgS2lja29mZiAtIFdlZWsgMSIsIlJlcXVpcmVtZW50cyBHYXRoZXJpbmcgLSBXZWVrIDItMyIsIkRlc2lnbiBQaGFzZSAtIFdlZWsgNC02IiwiRGV2ZWxvcG1lbnQgU3ByaW50IDEgLSBXZWVrIDctOSIsIlRlc3RpbmcgJiBRQSAtIFdlZWsgMTAtMTEiLCJEZXBsb3ltZW50IC0gV2VlayAxMiJdfQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyEwfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1pbkl0ZW1zPSR7M30KICAgICAgICAgIC5tYXhJdGVtcz0kezEyfQogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWFuYWdlIHByb2plY3QgbWlsZXN0b25lcyAoMy0xMiBpdGVtcywgc29ydGFibGUsIG5vIGR1cGxpY2F0ZXMpIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBDYW5kaWRhdGVzIHdpdGggVGFiIENvbXBsZXRpb24ifSAuc3VidGl0bGU9JHsiVGVybWluYWwtc3R5bGUgYXV0b2NvbXBsZXRlIFx1MjAxNCBUYWIgYWNjZXB0cywgU2hpZnQrVGFiIGN5Y2xlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgaWQ9ImNhbmRpZGF0ZS1saXN0IgogICAgICAgICAgICAubGFiZWw9JHsiQXNzaWduIFRlYW0gTWVtYmVycyJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIGEgbmFtZS4uLiAoVGFiIHRvIGNvbXBsZXRlKSJ9CiAgICAgICAgICAgIC5jYW5kaWRhdGVzPSR7W3t2aWV3S2V5OiJBbGljZSBTbWl0aCIscGF5bG9hZDp7aWQ6MSxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiRnJvbnRlbmQifX0se3ZpZXdLZXk6IkJvYiBKb2huc29uIixwYXlsb2FkOntpZDoyLHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJVWCJ9fSx7dmlld0tleToiQ2Fyb2wgV2lsbGlhbXMiLHBheWxvYWQ6e2lkOjMscm9sZToiUHJvZHVjdCBNYW5hZ2VyIixkZXBhcnRtZW50OiJQcm9kdWN0In19LHt2aWV3S2V5OiJEYXZpZCBCcm93biIscGF5bG9hZDp7aWQ6NCxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiQmFja2VuZCJ9fSx7dmlld0tleToiRXZlIERhdmlzIixwYXlsb2FkOntpZDo1LHJvbGU6IlFBIEVuZ2luZWVyIixkZXBhcnRtZW50OiJRdWFsaXR5In19LHt2aWV3S2V5OiJGcmFuayBNaWxsZXIiLHBheWxvYWQ6e2lkOjYscm9sZToiRGV2T3BzIixkZXBhcnRtZW50OiJJbmZyYXN0cnVjdHVyZSJ9fSx7dmlld0tleToiR3JhY2UgV2lsc29uIixwYXlsb2FkOntpZDo3LHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJVWCJ9fSx7dmlld0tleToiSGVucnkgTW9vcmUiLHBheWxvYWQ6e2lkOjgscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IkZyb250ZW5kIn19XX0KICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSBTbWl0aCIsIkNhcm9sIFdpbGxpYW1zIl19CiAgICAgICAgICAgIC5tYXhJdGVtcz0kezV9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUeXBlIHRvIHNlZSBnaG9zdCBjb21wbGV0aW9uLiBUYWIgdG8gYWNjZXB0LCBTaGlmdCtUYWIgdG8gY3ljbGUsIEVudGVyIHRvIGFkZC4ifQogICAgICAgICAgICBAY2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjYW5kaWRhdGUtanNvbiIpO2lmKGUpe2xldCBhPXMudGFyZ2V0LmdldEFkZGVkQ2FuZGlkYXRlcygpO2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkoYSxudWxsLDIpfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNTAwOyBtYXJnaW4tYm90dG9tOiA4cHg7IGNvbG9yOiBpbmhlcml0OyI+U2VsZWN0ZWQgQ2FuZGlkYXRlcyAod2l0aCBwYXlsb2Fkcyk8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJjYW5kaWRhdGUtanNvbiI+W108L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgICAgICBUcnkgdHlwaW5nICJEIiDigJQgZ2hvc3QgdGV4dCBzaG93cyAiYXZpZCBCcm93biIuIFByZXNzIFNoaWZ0K1RhYiB0byBjeWNsZSB0byBvdGhlciBELW1hdGNoZXMuIFRhYiBhY2NlcHRzLCBFbnRlciBhZGRzLgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTAuIFRlY2hub2xvZ3kgU3RhY2sifSAuc3VidGl0bGU9JHsiTGFyZ2VyIGNhbmRpZGF0ZSBwb29sIHdpdGggU2hpZnQrVGFiIGN5Y2xpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFRlY2hub2xvZ2llcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSB0byBhdXRvY29tcGxldGUuLi4ifQogICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6IlR5cGVTY3JpcHQiLHBheWxvYWQ6e2NhdGVnb3J5OiJsYW5ndWFnZSJ9fSx7dmlld0tleToiUmVhY3QiLHBheWxvYWQ6e2NhdGVnb3J5OiJmcmFtZXdvcmsifX0se3ZpZXdLZXk6IlZ1ZS5qcyIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiQW5ndWxhciIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiTm9kZS5qcyIscGF5bG9hZDp7Y2F0ZWdvcnk6InJ1bnRpbWUifX0se3ZpZXdLZXk6IkRlbm8iLHBheWxvYWQ6e2NhdGVnb3J5OiJydW50aW1lIn19LHt2aWV3S2V5OiJEb2NrZXIiLHBheWxvYWQ6e2NhdGVnb3J5OiJkZXZvcHMifX0se3ZpZXdLZXk6IlBvc3RncmVTUUwiLHBheWxvYWQ6e2NhdGVnb3J5OiJkYXRhYmFzZSJ9fSx7dmlld0tleToiTW9uZ29EQiIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJSZWRpcyIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJLdWJlcm5ldGVzIixwYXlsb2FkOntjYXRlZ29yeToiZGV2b3BzIn19XX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydUcnkgIkQiIFx1MjAxNCBjeWNsZXMgdGhyb3VnaCBEZW5vL0RvY2tlci4gIlIiIFx1MjAxNCBjeWNsZXMgdGhyb3VnaCBSZWFjdC9SZWRpcy4nfQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjExLiBGcmVlZm9ybSArIENhbmRpZGF0ZXMifSAuc3VidGl0bGU9JHsiQWxsb3cgYWRkaW5nIGl0ZW1zIG5vdCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgKHNob3duIHdpdGggYSBxdWVzdGlvbiBtYXJrKSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYWdzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIGEgdGFnLi4uIChmcmVlZm9ybSBhbGxvd2VkKSJ9CiAgICAgICAgICAuYWxsb3dGcmVlZm9ybT0keyEwfQogICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6ImJ1ZyIscGF5bG9hZDp7Y29sb3I6InJlZCJ9fSx7dmlld0tleToiZmVhdHVyZSIscGF5bG9hZDp7Y29sb3I6ImJsdWUifX0se3ZpZXdLZXk6ImRvY3MiLHBheWxvYWQ6e2NvbG9yOiJncmVlbiJ9fSx7dmlld0tleToicmVmYWN0b3IiLHBheWxvYWQ6e2NvbG9yOiJwdXJwbGUifX0se3ZpZXdLZXk6InBlcmZvcm1hbmNlIixwYXlsb2FkOntjb2xvcjoib3JhbmdlIn19LHt2aWV3S2V5OiJzZWN1cml0eSIscGF5bG9hZDp7Y29sb3I6InJlZCJ9fV19CiAgICAgICAgICAudmFsdWU9JHtbImJ1ZyIsIm15LWN1c3RvbS10YWciLCJmZWF0dXJlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiS25vd24gdGFncyBnZXQgYSBjaGVja21hcmssIGN1c3RvbSB0YWdzIGdldCBhIHF1ZXN0aW9uIG1hcmsuIFRhYiB0byBjb21wbGV0ZSwgRW50ZXIgdG8gYWRkIGZyZWVmb3JtLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTIuIEVtcHR5IFN0YXRlIn0gLnN1YnRpdGxlPSR7IkhvdyB0aGUgY29tcG9uZW50IGxvb2tzIHdpdGggbm8gaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBJZGVhcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU2hhcmUgeW91ciBpZGVhcy4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTdGFydCBhZGRpbmcgaXRlbXMgdG8gYnVpbGQgeW91ciBsaXN0In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBHaSxmYSxFbmUsc3R0PWcoKCk9PntwZSgpO3ppKCk7VWEoKTtucigpO0kwYSgpO3B0KCk7R2k9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGZhPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxFbmU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWxpc3QiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXTt2YXIgc3Q9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dExpc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOkFycmF5fSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOlN0cmluZ30pXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxzZT1bWSgpXSxUZT1bWSgpXSxHZT1bWSgpXSxDZT1bWSgpXSxFZT1bWSgpXSxHaSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4idmFsdWUiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLnZhbHVlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxvLGwpLEdpKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJwbGFjZWhvbGRlciJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UucGxhY2Vob2xkZXI9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LGQsdSksR2kodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+Im1heEl0ZW1zImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UubWF4SXRlbXMsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5tYXhJdGVtcz1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sYix2KSxHaSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4ibWluSXRlbXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5taW5JdGVtcywiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLm1pbkl0ZW1zPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxtLGYpLEdpKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEdXBsaWNhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iYWxsb3dEdXBsaWNhdGVzImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuYWxsb3dEdXBsaWNhdGVzLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuYWxsb3dEdXBsaWNhdGVzPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxNLHopLEdpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJzb3J0YWJsZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLnNvcnRhYmxlLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2Uuc29ydGFibGU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LEMsXyksR2kodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb25maXJtRGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iY29uZmlybURlbGV0ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmNvbmZpcm1EZWxldGUsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5jb25maXJtRGVsZXRlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSwkLEUpLEdpKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuZGlkYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImNhbmRpZGF0ZXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5jYW5kaWRhdGVzLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuY2FuZGlkYXRlcz1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sayxTKSxHaSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RnJlZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJhbGxvd0ZyZWVmb3JtImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuYWxsb3dGcmVlZm9ybSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmFsbG93RnJlZWZvcm09SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LFAsUiksR2kodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InZhbGlkYXRpb25UZXh0ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UudmFsaWRhdGlvblRleHQsImdldCIpLHNldDppKChnZSxJZSk9PntnZS52YWxpZGF0aW9uVGV4dD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sVixXKSxHaSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iaW5wdXRWYWx1ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmlucHV0VmFsdWUsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5pbnB1dFZhbHVlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxCLFUpLEdpKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdob3N0VGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+Imdob3N0VGV4dCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmdob3N0VGV4dCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmdob3N0VGV4dD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sRixqKSxHaSh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LGxlLFEpLEdpKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImVkaXRpbmdJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmVkaXRpbmdJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmVkaXRpbmdJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sdGUsZWUpLEdpKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImVkaXRpbmdWYWx1ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmVkaXRpbmdWYWx1ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmVkaXRpbmdWYWx1ZT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sWCxaKSxHaSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJkcmFnZ2VkSW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnZ2VkSW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5kcmFnZ2VkSW5kZXg9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LHEsQSksR2kodGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdPdmVySW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnT3ZlckluZGV4LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZHJhZ092ZXJJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sb2UsYWUpLEdpKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJkcmFnU3RhcnRZImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZHJhZ1N0YXJ0WSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmRyYWdTdGFydFk9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LFJlLEJlKSxHaSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJkcmFnQ3VycmVudFkiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnQ3VycmVudFksImdldCIpLHNldDppKChnZSxJZSk9PntnZS5kcmFnQ3VycmVudFk9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LERlLF9lKSxHaSh0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InRhcmdldEluZGV4ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UudGFyZ2V0SW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS50YXJnZXRJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sdmUsYmUpLEdpKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJpdGVtSGVpZ2h0ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuaXRlbUhlaWdodCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLml0ZW1IZWlnaHQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LGplLFdlKSxHaShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNZX0sbnVsbCx0KSxzdD1hPWUudmFsdWUsTWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TWV9KX1zdGF0aWMgZGVtbz1QMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWZhKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKE1lKXt0aGlzLiNlPU1lfSN0PShmYSh0aGlzLGwpLGZhKHRoaXMsZCwiQWRkIG5ldyBpdGVtLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihNZSl7dGhpcy4jdD1NZX0jYT0oZmEodGhpcyx1KSxmYSh0aGlzLGIsMCkpO2dldCBtYXhJdGVtcygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhJdGVtcyhNZSl7dGhpcy4jYT1NZX0jcz0oZmEodGhpcyx2KSxmYSh0aGlzLG0sMCkpO2dldCBtaW5JdGVtcygpe3JldHVybiB0aGlzLiNzfXNldCBtaW5JdGVtcyhNZSl7dGhpcy4jcz1NZX0jaT0oZmEodGhpcyxmKSxmYSh0aGlzLE0sITEpKTtnZXQgYWxsb3dEdXBsaWNhdGVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbG93RHVwbGljYXRlcyhNZSl7dGhpcy4jaT1NZX0jcj0oZmEodGhpcyx6KSxmYSh0aGlzLEMsITEpKTtnZXQgc29ydGFibGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc29ydGFibGUoTWUpe3RoaXMuI3I9TWV9I289KGZhKHRoaXMsXyksZmEodGhpcywkLCExKSk7Z2V0IGNvbmZpcm1EZWxldGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgY29uZmlybURlbGV0ZShNZSl7dGhpcy4jbz1NZX0jbj0oZmEodGhpcyxFKSxmYSh0aGlzLGssW10pKTtnZXQgY2FuZGlkYXRlcygpe3JldHVybiB0aGlzLiNufXNldCBjYW5kaWRhdGVzKE1lKXt0aGlzLiNuPU1lfSNsPShmYSh0aGlzLFMpLGZhKHRoaXMsUCwhMSkpO2dldCBhbGxvd0ZyZWVmb3JtKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGFsbG93RnJlZWZvcm0oTWUpe3RoaXMuI2w9TWV9I2M9KGZhKHRoaXMsUiksZmEodGhpcyxWLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25UZXh0KE1lKXt0aGlzLiNjPU1lfWFkZGVkQ2FuZGlkYXRlc01hcD0oZmEodGhpcyxXKSxuZXcgTWFwKTttYXRjaGluZ0NhbmRpZGF0ZXM9W107I2Q9ZmEodGhpcyxCLCIiKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBpbnB1dFZhbHVlKE1lKXt0aGlzLiNkPU1lfSN1PShmYSh0aGlzLFUpLGZhKHRoaXMsRiwiIikpO2dldCBnaG9zdFRleHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZ2hvc3RUZXh0KE1lKXt0aGlzLiN1PU1lfSNwPShmYSh0aGlzLGopLGZhKHRoaXMsbGUsLTEpKTtnZXQgY3VycmVudENhbmRpZGF0ZUluZGV4KCl7cmV0dXJuIHRoaXMuI3B9c2V0IGN1cnJlbnRDYW5kaWRhdGVJbmRleChNZSl7dGhpcy4jcD1NZX0jaD0oZmEodGhpcyxRKSxmYSh0aGlzLHRlLC0xKSk7Z2V0IGVkaXRpbmdJbmRleCgpe3JldHVybiB0aGlzLiNofXNldCBlZGl0aW5nSW5kZXgoTWUpe3RoaXMuI2g9TWV9I2Y9KGZhKHRoaXMsZWUpLGZhKHRoaXMsWCwiIikpO2dldCBlZGl0aW5nVmFsdWUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgZWRpdGluZ1ZhbHVlKE1lKXt0aGlzLiNmPU1lfSNtPShmYSh0aGlzLFopLGZhKHRoaXMscSwtMSkpO2dldCBkcmFnZ2VkSW5kZXgoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZHJhZ2dlZEluZGV4KE1lKXt0aGlzLiNtPU1lfSNnPShmYSh0aGlzLEEpLGZhKHRoaXMsb2UsLTEpKTtnZXQgZHJhZ092ZXJJbmRleCgpe3JldHVybiB0aGlzLiNnfXNldCBkcmFnT3ZlckluZGV4KE1lKXt0aGlzLiNnPU1lfSNiPShmYSh0aGlzLGFlKSxmYSh0aGlzLFJlLDApKTtnZXQgZHJhZ1N0YXJ0WSgpe3JldHVybiB0aGlzLiNifXNldCBkcmFnU3RhcnRZKE1lKXt0aGlzLiNiPU1lfSN2PShmYSh0aGlzLEJlKSxmYSh0aGlzLERlLDApKTtnZXQgZHJhZ0N1cnJlbnRZKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IGRyYWdDdXJyZW50WShNZSl7dGhpcy4jdj1NZX0jeD0oZmEodGhpcyxfZSksZmEodGhpcyx2ZSwtMSkpO2dldCB0YXJnZXRJbmRleCgpe3JldHVybiB0aGlzLiN4fXNldCB0YXJnZXRJbmRleChNZSl7dGhpcy4jeD1NZX0jeT0oZmEodGhpcyxiZSksZmEodGhpcyxqZSwwKSk7Z2V0IGl0ZW1IZWlnaHQoKXtyZXR1cm4gdGhpcy4jeX1zZXQgaXRlbUhlaWdodChNZSl7dGhpcy4jeT1NZX1ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPShmYSh0aGlzLFdlKSxudWxsKTtib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbDtvcmlnaW5hbEl0ZW1SZWN0cz1bXTtzdGF0aWMgc3R5bGVzPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6Zm9jdXMtd2l0aGluOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXMgewogICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbTpsYXN0LW9mLXR5cGUgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOm5vdCguaXMtZHJhZ2dpbmcpIC5saXN0LWl0ZW06aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itcm93LWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogRHJhZ2dpbmcgaXRlbSAtIGZvbGxvd3MgY3Vyc29yICovCiAgICAgIC5saXN0LWl0ZW0uZHJhZ2dpbmcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDEyJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMCwgMCwgMCwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIHVwIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLXVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSkpOwogICAgICB9CgogICAgICAvKiBJdGVtcyB0aGF0IG5lZWQgdG8gbW92ZSBkb3duIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLWRvd24gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1pdGVtLWhlaWdodCwgNDhweCkpOwogICAgICB9CgoKICAgICAgLmNhbmRpZGF0ZS1jaGVjayB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jYW5kaWRhdGUtdW5rbm93biB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA1OCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuaXRlbS1idWxsZXQgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGN1cnNvcjogbW92ZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5pdGVtLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLml0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5pdGVtLWVkaXQtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogM3B4IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pdGVtLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSA1MC42JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTNweDsKICAgICAgICBoZWlnaHQ6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5hZGQtaXRlbS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDI0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDM0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZSB0cmFuc2l0aW9ucyBkdXJpbmcgZHJvcCB0byBwcmV2ZW50IGZsYXNoICovCiAgICAgIC5saXN0LWl0ZW1zLmRyb3BwaW5nIC5saXN0LWl0ZW0gewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLyog4pSA4pSAIFRlcm1pbmFsLXN0eWxlIGlubGluZSBhdXRvY29tcGxldGUg4pSA4pSAICovCiAgICAgIC5hdXRvY29tcGxldGUtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5naG9zdC10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LXR5cGVkIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5naG9zdC1jb21wbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSIke3RoaXMudmFsdWUubGVuZ3RofSBpdGVtJHt0aGlzLnZhbHVlLmxlbmd0aCE9PTE/InMiOiIifSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0LWl0ZW1zIj4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMudmFsdWUubWFwKChNZSxnZSk9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9Imxpc3QtaXRlbSAke3RoaXMuZHJhZ2dlZEluZGV4PT09Z2U/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9IiR7dGhpcy5zb3J0YWJsZSYmIXRoaXMuZGlzYWJsZWR9IgogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke0llPT50aGlzLmhhbmRsZURyYWdTdGFydChJZSxnZSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke3RoaXMuaGFuZGxlRHJhZ0VuZH0KICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke0llPT50aGlzLmhhbmRsZURyYWdPdmVyKEllLGdlKX0KICAgICAgICAgICAgICAgIEBkcm9wPSR7SWU9PnRoaXMuaGFuZGxlRHJvcChJZSxnZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcmFnLWhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Z3JpcFZlcnRpY2FsIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgICAke3RoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICAke3RoaXMuY2FuZGlkYXRlcy5zb21lKEllPT5JZS52aWV3S2V5PT09TWUpP3dgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FuZGlkYXRlLWNoZWNrIiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNhbmRpZGF0ZS11bmtub3duIiAuaWNvbj0keyJsdWNpZGU6aGVscENpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgYDohdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJpdGVtLWJ1bGxldCIgLmljb249JHsibHVjaWRlOmRvdCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZWRpdGluZ0luZGV4PT09Z2U/d2AKICAgICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXRlbS1lZGl0LWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5lZGl0aW5nVmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtJZT0+dGhpcy5lZGl0aW5nVmFsdWU9SWUudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtJZT0+dGhpcy5oYW5kbGVFZGl0S2V5RG93bihJZSxnZSl9CiAgICAgICAgICAgICAgICAgICAgICBAYmx1cj0keygpPT50aGlzLnNhdmVFZGl0KGdlKX0KICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS10ZXh0IiBAZGJsY2xpY2s9JHsoKT0+IXRoaXMuZGlzYWJsZWQmJnRoaXMuc3RhcnRFZGl0KGdlKX0+CiAgICAgICAgICAgICAgICAgICAgICAke01lfQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT1nZT93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gc2F2ZSIgQGNsaWNrPSR7KCk9PnRoaXMuc2F2ZUVkaXQoZ2UpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBjYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNhbmNlbEVkaXQoKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlzYWJsZWQ/IiI6d2AKICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnN0YXJ0RWRpdChnZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwZW5jaWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUl0ZW0oZ2UpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJhc2gyIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgTm8gaXRlbXMgYWRkZWQgeWV0CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgJHshdGhpcy5kaXNhYmxlZCYmKCF0aGlzLm1heEl0ZW1zfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heEl0ZW1zKT93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImFkZC1pdGVtLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0b2NvbXBsZXRlLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLmdob3N0VGV4dD93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2hvc3QtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imdob3N0LXR5cGVkIj4ke3RoaXMuaW5wdXRWYWx1ZX08L3NwYW4+PHNwYW4gY2xhc3M9Imdob3N0LWNvbXBsZXRpb24iPiR7dGhpcy5naG9zdFRleHR9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtaW5wdXQiCiAgICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUFkZEtleURvd259CiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hZGRJdGVtfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuaW5wdXRWYWx1ZS50cmltKCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUlucHV0KE1lKXt0aGlzLmlucHV0VmFsdWU9TWUudGFyZ2V0LnZhbHVlLHRoaXMudXBkYXRlR2hvc3RUZXh0KCl9dXBkYXRlR2hvc3RUZXh0KCl7aWYodGhpcy5jYW5kaWRhdGVzLmxlbmd0aD09PTB8fCF0aGlzLmlucHV0VmFsdWUpe3RoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdO3JldHVybn1sZXQgTWU9dGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCk7dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9dGhpcy5jYW5kaWRhdGVzLmZpbHRlcihnZT0+dGhpcy52YWx1ZS5pbmNsdWRlcyhnZS52aWV3S2V5KT8hMTpnZS52aWV3S2V5LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChNZSkpLnNvcnQoKGdlLEllKT0+Z2Uudmlld0tleS5sZW5ndGgtSWUudmlld0tleS5sZW5ndGgpLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wPyh0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0wLHRoaXMuZ2hvc3RUZXh0PXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzWzBdLnZpZXdLZXkuc2xpY2UodGhpcy5pbnB1dFZhbHVlLmxlbmd0aCkpOih0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLmdob3N0VGV4dD0iIil9aGFuZGxlQWRkS2V5RG93bihNZSl7aWYoTWUua2V5PT09IlRhYiImJnRoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MCYmdGhpcy5pbnB1dFZhbHVlKXtpZihNZS5wcmV2ZW50RGVmYXVsdCgpLE1lLnNoaWZ0S2V5JiZ0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcy5sZW5ndGg+MCl7dGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4KzEpJXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aDtsZXQgZ2U9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXhdO3RoaXMuZ2hvc3RUZXh0PWdlLnZpZXdLZXkuc2xpY2UodGhpcy5pbnB1dFZhbHVlLmxlbmd0aCl9ZWxzZSBpZighTWUuc2hpZnRLZXkmJnRoaXMuZ2hvc3RUZXh0JiZ0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcy5sZW5ndGg+MCl7bGV0IGdlPXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzW3RoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4XTt0aGlzLmlucHV0VmFsdWU9Z2Uudmlld0tleSx0aGlzLmdob3N0VGV4dD0iIjtsZXQgSWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7SWUmJihJZS52YWx1ZT1nZS52aWV3S2V5KX1yZXR1cm59aWYoTWUua2V5PT09IkVzY2FwZSImJnRoaXMuZ2hvc3RUZXh0KXtNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdO3JldHVybn1pZihNZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpKXtpZihNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MCl7bGV0IGdlPXRoaXMuY2FuZGlkYXRlcy5maW5kKEllPT5JZS52aWV3S2V5LnRvTG93ZXJDYXNlKCk9PT10aGlzLmlucHV0VmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCkpO2dlP3RoaXMuc2VsZWN0Q2FuZGlkYXRlKGdlKTp0aGlzLmFsbG93RnJlZWZvcm0mJih0aGlzLmdob3N0VGV4dD0iIix0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz1bXSx0aGlzLmFkZEl0ZW0oKSk7cmV0dXJufXRoaXMuYWRkSXRlbSgpfX1oYW5kbGVFZGl0S2V5RG93bihNZSxnZSl7TWUua2V5PT09IkVudGVyIj8oTWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVFZGl0KGdlKSk6TWUua2V5PT09IkVzY2FwZSImJihNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsRWRpdCgpKX1zZWxlY3RDYW5kaWRhdGUoTWUpe2lmKHRoaXMubWF4SXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heEl0ZW1zKXt0aGlzLnZhbGlkYXRpb25UZXh0PWBNYXhpbXVtICR7dGhpcy5tYXhJdGVtc30gaXRlbXMgYWxsb3dlZGAsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRoaXMudmFsdWUuaW5jbHVkZXMoTWUudmlld0tleSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn10aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5zZXQoTWUudmlld0tleSxNZSksdGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxNZS52aWV3S2V5XSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W10sdGhpcy52YWxpZGF0aW9uVGV4dD0iIix0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgZ2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7Z2UmJihnZS52YWx1ZT0iIixnZS5mb2N1cygpKX0pfWdldENhbmRpZGF0ZUZvckl0ZW0oTWUpe3JldHVybiB0aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5nZXQoTWUpfWdldEFkZGVkQ2FuZGlkYXRlcygpe3JldHVybiB0aGlzLnZhbHVlLm1hcChNZT0+dGhpcy5hZGRlZENhbmRpZGF0ZXNNYXAuZ2V0KE1lKSkuZmlsdGVyKE1lPT5NZSE9PXZvaWQgMCl9YWRkSXRlbSgpe2xldCBNZT10aGlzLmlucHV0VmFsdWUudHJpbSgpO2lmKE1lKXtpZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRoaXMudmFsdWUuaW5jbHVkZXMoTWUpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsTWVdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtnZSYmKGdlLnZhbHVlPSIiLGdlLmZvY3VzKCkpfSl9fXN0YXJ0RWRpdChNZSl7dGhpcy5lZGl0aW5nSW5kZXg9TWUsdGhpcy5lZGl0aW5nVmFsdWU9dGhpcy52YWx1ZVtNZV0sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IGdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLml0ZW0tZWRpdC1pbnB1dCIpO2dlJiYoZ2UuZm9jdXMoKSxnZS5zZWxlY3QoKSl9KX1zYXZlRWRpdChNZSl7bGV0IGdlPXRoaXMuZWRpdGluZ1ZhbHVlLnRyaW0oKTtpZighZ2Upe3RoaXMuY2FuY2VsRWRpdCgpO3JldHVybn1pZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJmdlIT09dGhpcy52YWx1ZVtNZV0mJnRoaXMudmFsdWUuaW5jbHVkZXMoZ2UpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59bGV0IEllPVsuLi50aGlzLnZhbHVlXTtJZVtNZV09Z2UsdGhpcy52YWx1ZT1JZSx0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpfWNhbmNlbEVkaXQoKXt0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIn1hc3luYyByZW1vdmVJdGVtKE1lKXtpZih0aGlzLmNvbmZpcm1EZWxldGUmJiFhd2FpdCB0aGlzLnNob3dDb25maXJtRGlhbG9nKGBEZWxldGUgIiR7dGhpcy52YWx1ZVtNZV19Ij9gKSlyZXR1cm47bGV0IGdlPXRoaXMudmFsdWVbTWVdO3RoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLmRlbGV0ZShnZSksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcigoSWUsY2UpPT5jZSE9PU1lKSx0aGlzLmVtaXRDaGFuZ2UoKX1hc3luYyBzaG93Q29uZmlybURpYWxvZyhNZSl7cmV0dXJuIGNvbmZpcm0oTWUpfWhhbmRsZURyYWdTdGFydChNZSxnZSl7aWYoIXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWQpcmV0dXJuO3RoaXMuZHJhZ2dlZEluZGV4PWdlLHRoaXMudGFyZ2V0SW5kZXg9Z2UsTWUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLE1lLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixnZS50b1N0cmluZygpKTtsZXQgSWU9bmV3IEltYWdlO0llLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsTWUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShJZSwwLDApLHRoaXMuZHJhZ1N0YXJ0WT1NZS5jbGllbnRZLHRoaXMuZHJhZ0N1cnJlbnRZPU1lLmNsaWVudFk7bGV0IGNlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxkZT1BcnJheS5mcm9tKGNlPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIil8fFtdKTtkZVtnZV0mJih0aGlzLml0ZW1IZWlnaHQ9ZGVbZ2VdLm9mZnNldEhlaWdodCksdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1kZS5tYXAoTGU9PkxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjZT8uY2xhc3NMaXN0LmFkZCgiaXMtZHJhZ2dpbmciKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9dGhpcy5oYW5kbGVHbG9iYWxEcmFnT3Zlci5iaW5kKHRoaXMpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPXRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZC5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKX1oYW5kbGVHbG9iYWxEcmFnT3ZlcihNZSl7aWYoTWUucHJldmVudERlZmF1bHQoKSx0aGlzLmRyYWdnZWRJbmRleD09PS0xKXJldHVybjt0aGlzLmRyYWdDdXJyZW50WT1NZS5jbGllbnRZO2xldCBnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7aWYoIWdlKXJldHVybjtsZXQgSWU9QXJyYXkuZnJvbShnZS5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIikpLGNlPUllW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighY2UpcmV0dXJuO2xldCBkZT10aGlzLmRyYWdDdXJyZW50WS10aGlzLmRyYWdTdGFydFk7Y2Uuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7ZGV9cHgpYDtsZXQgTGU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF07aWYoIUxlKXJldHVybjtsZXQgS2U9TGUudG9wK0xlLmhlaWdodC8yK2RlLFllPXRoaXMuZHJhZ2dlZEluZGV4O2ZvcihsZXQgb3Q9MDtvdDxJZS5sZW5ndGg7b3QrKyl7aWYob3Q9PT10aGlzLmRyYWdnZWRJbmRleCljb250aW51ZTtsZXQgVXQ9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1tvdF07aWYoIVV0KWNvbnRpbnVlO2xldCBadD1VdC50b3ArVXQuaGVpZ2h0LzI7aWYoSWVbb3RdLmNsYXNzTGlzdC5jb250YWlucygibW92ZS11cCIpP1p0LT10aGlzLml0ZW1IZWlnaHQ6SWVbb3RdLmNsYXNzTGlzdC5jb250YWlucygibW92ZS1kb3duIikmJihadCs9dGhpcy5pdGVtSGVpZ2h0KSxLZTxadCYmb3Q8dGhpcy5kcmFnZ2VkSW5kZXgpe1llPW90O2JyZWFrfWVsc2UgS2U+WnQmJm90PnRoaXMuZHJhZ2dlZEluZGV4JiYoWWU9b3QpfVllIT09dGhpcy50YXJnZXRJbmRleCYmKHRoaXMudGFyZ2V0SW5kZXg9WWUsdGhpcy51cGRhdGVJdGVtUG9zaXRpb25zKEllKSl9dXBkYXRlSXRlbVBvc2l0aW9ucyhNZSl7bGV0IGdlPXRoaXMuZHJhZ2dlZEluZGV4LEllPXRoaXMudGFyZ2V0SW5kZXgsY2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpO2NlJiZjZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1pdGVtLWhlaWdodCIsYCR7dGhpcy5pdGVtSGVpZ2h0fXB4YCksTWUuZm9yRWFjaCgoZGUsTGUpPT57TGUhPT1nZSYmKGRlLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxkZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1pdGVtLWhlaWdodCIsYCR7dGhpcy5pdGVtSGVpZ2h0fXB4YCksZ2U8SWU/TGU+Z2UmJkxlPD1JZSYmZGUuY2xhc3NMaXN0LmFkZCgibW92ZS11cCIpOmdlPkllJiZMZT49SWUmJkxlPGdlJiZkZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLWRvd24iKSl9KX1oYW5kbGVHbG9iYWxEcmFnRW5kKCl7dGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPW51bGwpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGwpO2xldCBNZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIiksZ2U9TWU/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSxJZT1nZT8uW3RoaXMuZHJhZ2dlZEluZGV4XTtpZih0aGlzLmRyYWdnZWRJbmRleD09PS0xfHx0aGlzLnRhcmdldEluZGV4PT09LTF8fHRoaXMuZHJhZ2dlZEluZGV4PT09dGhpcy50YXJnZXRJbmRleCl7aWYoSWUmJnRoaXMuZHJhZ2dlZEluZGV4IT09LTEpe0llLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjE1cyBlYXNlIixJZS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMCkiO2xldCBvdD0hMSxVdD1pKCgpPT57b3R8fChvdD0hMCxJZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixVdCksdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKSl9LCJvblJldHVybiIpO0llLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFV0LHtvbmNlOiEwfSksc2V0VGltZW91dChVdCwyMDApfWVsc2UgdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKTtyZXR1cm59bGV0IGNlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy5kcmFnZ2VkSW5kZXhdLGRlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy50YXJnZXRJbmRleF07aWYoIWNlfHwhZGV8fCFJZSl7dGhpcy5jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKTtyZXR1cm59bGV0IExlO3RoaXMudGFyZ2V0SW5kZXg+dGhpcy5kcmFnZ2VkSW5kZXg/TGU9ZGUuYm90dG9tLWNlLmJvdHRvbTpMZT1kZS50b3AtY2UudG9wLEllLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjE1cyBlYXNlIixJZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtMZX1weClgO2xldCBLZT0hMSxZZT1pKCgpPT57aWYoS2UpcmV0dXJuO0tlPSEwLEllLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFllKSxNZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxNZT8ub2Zmc2V0SGVpZ2h0LGdlPy5mb3JFYWNoKFp0PT57WnQuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksWnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFp0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KTtsZXQgb3Q9Wy4uLnRoaXMudmFsdWVdLFtVdF09b3Quc3BsaWNlKHRoaXMuZHJhZ2dlZEluZGV4LDEpO290LnNwbGljZSh0aGlzLnRhcmdldEluZGV4LDAsVXQpLHRoaXMudmFsdWU9b3QsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5kcmFnZ2VkSW5kZXg9LTEsdGhpcy5kcmFnT3ZlckluZGV4PS0xLHRoaXMudGFyZ2V0SW5kZXg9LTEsdGhpcy5kcmFnU3RhcnRZPTAsdGhpcy5kcmFnQ3VycmVudFk9MCx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVtdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBadD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKTtadD8uZm9yRWFjaChqYT0+e2phLnN0eWxlLnRyYW5zaXRpb249Im5vbmUifSksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpPy5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57WnQ/LmZvckVhY2goamE9PntqYS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSksTWU/LmNsYXNzTGlzdC5yZW1vdmUoImRyb3BwaW5nIiwiaXMtZHJhZ2dpbmciKX0pfSl9LCJvblRyYW5zaXRpb25FbmQiKTtJZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixZZSx7b25jZTohMH0pLHNldFRpbWVvdXQoWWUsMjAwKX1jbGVhbnVwRHJhZ1N0YXRlKE1lLGdlKXtNZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxNZT8ub2Zmc2V0SGVpZ2h0LGdlPy5mb3JFYWNoKEllPT57SWUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksSWUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLEllLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IEllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO0llPy5mb3JFYWNoKGNlPT57Y2Uuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntJZT8uZm9yRWFjaChjZT0+e2NlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxNZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX1oYW5kbGVEcmFnRW5kKCl7dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKCl9aGFuZGxlRHJhZ092ZXIoTWUsZ2UpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHwoTWUucHJldmVudERlZmF1bHQoKSxNZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSIpfWhhbmRsZURyYWdMZWF2ZSgpe31oYW5kbGVEcm9wKE1lLGdlKXshdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZHx8TWUucHJldmVudERlZmF1bHQoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoTWUpe3RoaXMudmFsdWU9TWV8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIGl0ZW0gaXMgcmVxdWlyZWQiLCExKTp0aGlzLm1pbkl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1pbkl0ZW1zPyh0aGlzLnZhbGlkYXRpb25UZXh0PWBBdCBsZWFzdCAke3RoaXMubWluSXRlbXN9IGl0ZW1zIHJlcXVpcmVkYCwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfXN0YXRpY3tmYShhLHQpfX07cmV0dXJuIHN0PWF9KSgpfSk7dmFyIE5XYSxSV2EsT1dhLEZXYSxCV2EsSFdhLHFXYSxBMGEsTjBhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTtOV2E9aSgoKT0+e2xldCBzPURhdGUubm93KCk7cmV0dXJuW3tpZDpgdGl0bGUtJHtzfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJTeXN0ZW0gUGVyZm9ybWFuY2UgUmVwb3J0In0se2lkOmBkYXRlLSR7cysxfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OmBHZW5lcmF0ZWQgb246ICR7bmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpfWB9LHtpZDpgc3VtbWFyeS1oZWFkaW5nLSR7cysyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJFeGVjdXRpdmUgU3VtbWFyeSJ9LHtpZDpgc3VtbWFyeS0ke3MrM31gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyByZXBvcnQgcHJvdmlkZXMgYW4gYW5hbHlzaXMgb2Ygc3lzdGVtIHBlcmZvcm1hbmNlIG1ldHJpY3Mgb3ZlciB0aGUgbGFzdCAzMCBkYXlzLiJ9LHtpZDpgbWV0cmljcy1oZWFkaW5nLSR7cys0fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJLZXkgTWV0cmljcyJ9LHtpZDpgbWV0cmljcy1saXN0LSR7cys1fWAsdHlwZToibGlzdCIsY29udGVudDpgQXZlcmFnZSByZXNwb25zZSB0aW1lOiAxMjRtcwpVcHRpbWU6IDk5Ljk3JQpDUFUgdXRpbGl6YXRpb246IDQ1JQpNZW1vcnkgdXNhZ2U6IDIuM0dCIC8gOEdCYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGFuYWx5c2lzLWhlYWRpbmctJHtzKzZ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IlBlcmZvcm1hbmNlIEFuYWx5c2lzIn0se2lkOmBhbmFseXNpcy1xdW90ZS0ke3MrN31gLHR5cGU6InF1b3RlIixjb250ZW50OiJTeXN0ZW0gcGVyZm9ybWFuY2UgcmVtYWlucyB3aXRoaW4gYWNjZXB0YWJsZSBwYXJhbWV0ZXJzIHdpdGggcm9vbSBmb3Igb3B0aW1pemF0aW9uIGluIG1lbW9yeSBtYW5hZ2VtZW50LiJ9LHtpZDpgY29kZS1oZWFkaW5nLSR7cys4fWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJTYW1wbGUgUXVlcnkgUGVyZm9ybWFuY2UifSx7aWQ6YGNvZGUtYmxvY2stJHtzKzl9YCx0eXBlOiJjb2RlIixjb250ZW50OmBTRUxFQ1QgQVZHKHJlc3BvbnNlX3RpbWUpIGFzIGF2Z190aW1lLAogICAgICAgQ09VTlQoKikgYXMgdG90YWxfcmVxdWVzdHMsCiAgICAgICBEQVRFKGNyZWF0ZWRfYXQpIGFzIGRhdGUKRlJPTSBwZXJmb3JtYW5jZV9sb2dzCldIRVJFIGNyZWF0ZWRfYXQgPj0gTk9XKCkgLSBJTlRFUlZBTCAzMCBEQVkKR1JPVVAgQlkgREFURShjcmVhdGVkX2F0KQpPUkRFUiBCWSBkYXRlIERFU0M7YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6InNxbCJ9fSx7aWQ6YGRpdmlkZXItJHtzKzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBmb290ZXItJHtzKzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJSZXBvcnQgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgU3lzdGVtIE1vbml0b3IgdjIuNS4wIn1dfSwiZ2VuZXJhdGVSZXBvcnRCbG9ja3MiKSxSV2E9aSgoKT0+e2xldCBzPURhdGUubm93KCk7cmV0dXJuW3tpZDpgcmVjaXBlLXRpdGxlLSR7c31gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiQ2xhc3NpYyBNYXJnaGVyaXRhIFBpenphIn0se2lkOmByZWNpcGUtaW50cm8tJHtzKzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IkEgdHJhZGl0aW9uYWwgSXRhbGlhbiBwaXp6YSB3aXRoIGZyZXNoIGJhc2lsLCBtb3p6YXJlbGxhLCBhbmQgdG9tYXRvIHNhdWNlLiJ9LHtpZDpgaW5ncmVkaWVudHMtaGVhZGluZy0ke3MrMn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUYzNTV9IEluZ3JlZGllbnRzIn0se2lkOmBkb3VnaC1oZWFkaW5nLSR7cyszfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJGb3IgdGhlIERvdWdoOiJ9LHtpZDpgZG91Z2gtbGlzdC0ke3MrNH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YDUwMGcgdGlwbyAiMDAiIGZsb3VyCjMyNW1sIHdhcm0gd2F0ZXIKMTBnIHNhbHQKN2cgYWN0aXZlIGRyeSB5ZWFzdAoyIHRic3Agb2xpdmUgb2lsYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YHRvcHBpbmdzLWhlYWRpbmctJHtzKzV9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgVG9wcGluZ3M6In0se2lkOmB0b3BwaW5ncy1saXN0LSR7cys2fWAsdHlwZToibGlzdCIsY29udGVudDpgNDAwZyBjYW5uZWQgU2FuIE1hcnphbm8gdG9tYXRvZXMKMjUwZyBmcmVzaCBtb3p6YXJlbGxhCkZyZXNoIGJhc2lsIGxlYXZlcwpFeHRyYSB2aXJnaW4gb2xpdmUgb2lsClNhbHQgYW5kIHBlcHBlciB0byB0YXN0ZWAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmBpbnN0cnVjdGlvbnMtaGVhZGluZy0ke3MrN31gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUY0Njh9XHUyMDBEXHV7MUYzNzN9IEluc3RydWN0aW9ucyJ9LHtpZDpgc3RlcHMtbGlzdC0ke3MrOH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YERpc3NvbHZlIHllYXN0IGluIHdhcm0gd2F0ZXIgYW5kIGxldCBzdGFuZCBmb3IgNSBtaW51dGVzCk1peCBmbG91ciBhbmQgc2FsdCwgY3JlYXRlIGEgd2VsbCBpbiBjZW50ZXIKQWRkIHllYXN0IG1peHR1cmUgYW5kIG9saXZlIG9pbApLbmVhZCBmb3IgMTAgbWludXRlcyB1bnRpbCBzbW9vdGgKTGV0IHJpc2UgZm9yIDEtMiBob3VycyB1bnRpbCBkb3VibGVkClB1bmNoIGRvd24gYW5kIGRpdmlkZSBpbnRvIHBvcnRpb25zClJvbGwgb3V0IGVhY2ggcG9ydGlvbiB0byAxMi1pbmNoIGNpcmNsZXMKVG9wIHdpdGggY3J1c2hlZCB0b21hdG9lcywgbW96emFyZWxsYSwgYW5kIGJhc2lsCkJha2UgYXQgNDc1XHhCMEYgKDI0NVx4QjBDKSBmb3IgMTAtMTIgbWludXRlc2AsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDpgdGlwLSR7cys5fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlBybyB0aXA6IEZvciBhbiBhdXRoZW50aWMgdGFzdGUsIHVzZSBhIHBpenphIHN0b25lIGFuZCBwcmVoZWF0IGl0IGluIHRoZSBvdmVuIGZvciBhdCBsZWFzdCAzMCBtaW51dGVzIGJlZm9yZSBiYWtpbmcuIn0se2lkOmBkaXZpZGVyLSR7cysxMH1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDpgc2VydmluZ3MtJHtzKzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJTZXJ2aW5nczogNCBwaXp6YXMgfCBQcmVwIHRpbWU6IDIgaG91cnMgfCBDb29rIHRpbWU6IDEyIG1pbnV0ZXMifV19LCJnZW5lcmF0ZVJlY2lwZUJsb2NrcyIpLE9XYT1pKHM9PntsZXQgZT17fTtyZXR1cm4gZS5iYXNpYz1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYmFzaWMiKSxlLmFydGljbGU9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWFydGljbGUiKSxlLmRyYWdEcm9wPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1kcmFnZHJvcCIpLGUudHV0b3JpYWw9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXR1dG9yaWFsIiksZS5tZWV0aW5nPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1tZWV0aW5nIiksZS5yZWNpcGU9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXJlY2lwZSIpLGUudGVjaG5pY2FsPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci10ZWNobmljYWwiKSxlLmZvcm1JbnRlZ3JhdGlvbj1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIpLGUucHJvZ3JhbW1hdGljPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1wcm9ncmFtbWF0aWMiKSxlLmV4cG9ydERlbW89cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWV4cG9ydCIpLGV9LCJpbml0aWFsaXplRWRpdG9ycyIpLEZXYT1pKChzLGUpPT57bGV0IHQ9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlcG9ydCIpLGE9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlY2lwZSIpLHI9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWNsZWFyLWVkaXRvciIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoTldhKCkpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhSV2EoKSl9KSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKFtdKX0pfSwic2V0dXBQcm9ncmFtbWF0aWNEZW1vIiksQldhPWkoKHMsZSk9PntsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWJsb2NrcyIpLGE9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1odG1sIikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LW1hcmtkb3duIiksbj1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2F2ZS1zdGF0ZSIpLG89cy5xdWVyeVNlbGVjdG9yKCIjYnRuLXJlc3RvcmUtc3RhdGUiKSxsPW51bGw7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgcD1lLmV4cG9ydEJsb2NrcygpO2NvbnNvbGUubG9nKCJFeHBvcnRlZCBibG9ja3M6IixwKSxhbGVydChgRXhwb3J0ZWQgJHtwLmxlbmd0aH0gYmxvY2tzIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy5gKX0pLGEmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IHA9ZS5leHBvcnRBc0h0bWwoKTtjb25zb2xlLmxvZygiSFRNTCBFeHBvcnQ6IixwKSxhbGVydCgiSFRNTCBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBwPWUuZXhwb3J0QXNNYXJrZG93bigpO2NvbnNvbGUubG9nKCJNYXJrZG93biBFeHBvcnQ6IixwKSxhbGVydCgiTWFya2Rvd24gZXhwb3J0ZWQgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLiIpfSksbiYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPWUuZXhwb3J0U3RhdGUoKSxjb25zb2xlLmxvZygiU2F2ZWQgc3RhdGU6IixsKSxhbGVydCgiRWRpdG9yIHN0YXRlIHNhdmVkISIpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPyhlLmltcG9ydFN0YXRlKGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgcmVzdG9yZWQhIikpOmFsZXJ0KCJObyBzYXZlZCBzdGF0ZSBmb3VuZC4gU2F2ZSBzdGF0ZSBmaXJzdCEiKX0pfSwic2V0dXBFeHBvcnREZW1vIiksSFdhPWkoKHMsZSx0KT0+e2xldCBhPXMucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LWh0bWwtb3V0cHV0Iikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1odG1sIik7YSYmciYmZSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnRleHRDb250ZW50PWUuZ2V0VmFsdWUoKSxyLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pO2xldCBuPXMucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LW1hcmtkb3duLW91dHB1dCIpLG89cy5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXctbWFya2Rvd24iKTtuJiZvJiZ0JiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e28udGV4dENvbnRlbnQ9dC5nZXRWYWx1ZSgpLG8uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSl9LCJzZXR1cE91dHB1dEZvcm1hdERlbW8iKSxxV2E9aShzPT57cy5hcnRpY2xlJiZzZXRUaW1lb3V0KCgpPT57bGV0IGU9W3tpZDoiaW50cm8taGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJJbnRyb2R1Y3Rpb24gdG8gTW9kZXJuIFdlYiBEZXZlbG9wbWVudCJ9LHtpZDoiaW50cm8tcGFyYS0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJNb2Rlcm4gd2ViIGRldmVsb3BtZW50IGhhcyBldm9sdmVkIHNpZ25pZmljYW50bHkgb3ZlciB0aGUgcGFzdCBkZWNhZGUuIEluIHRoaXMgYXJ0aWNsZSwgd2UnbGwgZXhwbG9yZSB0aGUga2V5IHRlY2hub2xvZ2llcyBhbmQgYmVzdCBwcmFjdGljZXMgdGhhdCBkZWZpbmUgd2ViIGRldmVsb3BtZW50IGluIDIwMjQuIn0se2lkOiJ0ZWNoLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiS2V5IFRlY2hub2xvZ2llcyJ9LHtpZDoidGVjaC1saXN0LSIrRGF0ZS5ub3coKSx0eXBlOiJsaXN0Iixjb250ZW50OmBUeXBlU2NyaXB0IC0gVHlwZS1zYWZlIEphdmFTY3JpcHQgZGV2ZWxvcG1lbnQKV2ViIENvbXBvbmVudHMgLSBOYXRpdmUgY29tcG9uZW50IG1vZGVsCkVTIE1vZHVsZXMgLSBNb2Rlcm4gbW9kdWxlIHN5c3RlbQpXZWJBc3NlbWJseSAtIEhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJxdW90ZS0iK0RhdGUubm93KCksdHlwZToicXVvdGUiLGNvbnRlbnQ6IlRoZSBiZXN0IHdheSB0byBwcmVkaWN0IHRoZSBmdXR1cmUgaXMgdG8gaW52ZW50IGl0LiAtIEFsYW4gS2F5In0se2lkOiJleGFtcGxlLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiQ29kZSBFeGFtcGxlIn0se2lkOiJjb2RlLWV4YW1wbGUtIitEYXRlLm5vdygpLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YGNsYXNzIE1vZGVybldlYkFwcCBleHRlbmRzIEhUTUxFbGVtZW50IHsKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTsKICB9CiAgCiAgY29ubmVjdGVkQ2FsbGJhY2soKSB7CiAgICB0aGlzLnJlbmRlcigpOwogIH0KfWAsbWV0YWRhdGE6e2xhbmd1YWdlOiJqYXZhc2NyaXB0In19XTtzLmFydGljbGUuaW1wb3J0QmxvY2tzKGUpfSw1MDApLHMuZHJhZ0Ryb3AmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJkcmFnLXRpdGxlLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IkRyYWcgJiBEcm9wIERlbW8ifSx7aWQ6ImRyYWctaW50cm8tIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyBlZGl0b3IgZGVtb25zdHJhdGVzIGRyYWcgYW5kIGRyb3AgZnVuY3Rpb25hbGl0eS4gVHJ5IGRyYWdnaW5nIHRoZXNlIGJsb2NrcyBhcm91bmQhIn0se2lkOiJkcmFnLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiSG93IEl0IFdvcmtzIn0se2lkOiJkcmFnLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YEhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHNlZSB0aGUgZHJhZyBoYW5kbGUKQ2xpY2sgYW5kIGhvbGQgdGhlIGhhbmRsZSB0byBzdGFydCBkcmFnZ2luZwpEcmFnIHRvIHJlb3JkZXIgYmxvY2tzClJlbGVhc2UgdG8gZHJvcCBpbiB0aGUgbmV3IHBvc2l0aW9uYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJkcmFnLXF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGRyYWcgYW5kIGRyb3AgZmVhdHVyZSBtYWtlcyBpdCBlYXN5IHRvIHJlb3JnYW5pemUgeW91ciBjb250ZW50IHdpdGhvdXQgY3V0dGluZyBhbmQgcGFzdGluZy4ifSx7aWQ6ImRyYWctZGl2aWRlci0iK0RhdGUubm93KCksdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOiJkcmFnLWZvb3Rlci0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJOb3RlOiBEaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZCwgYnV0IG90aGVyIGJsb2NrcyBjYW4gYmUgbW92ZWQgYXJvdW5kIHRoZW0uIn1dO3MuZHJhZ0Ryb3AuaW1wb3J0QmxvY2tzKGUpfSw2MDApfSwicG9wdWxhdGVJbml0aWFsQ29udGVudCIpLEEwYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9Pnthd2FpdCBuZXcgUHJvbWlzZSh0PT5zZXRUaW1lb3V0KHQsNTAwKSk7bGV0IGU9T1dhKHMpO2UucHJvZ3JhbW1hdGljJiZGV2EocyxlLnByb2dyYW1tYXRpYyksZS5leHBvcnREZW1vJiZCV2EocyxlLmV4cG9ydERlbW8pLEhXYShzLGUubWVldGluZyxlLnJlY2lwZSkscVdhKGUpLGNvbnNvbGUubG9nKCJXWVNJV1lHIERlbW8gaW5pdGlhbGl6ZWQgd2l0aCBlZGl0b3JzOiIsT2JqZWN0LmtleXMoZSkpfX0+CiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmVhdHVyZS1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2FhYTsKICAgICAgICB9CiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEwMiwgMjA0LCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYmJiOwogICAgICAgIH0KICAgICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1jYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3V0cHV0LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgIzBmMTcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW3RoZW1lPSdkYXJrJ10pIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjA2KTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgI2Y0ZjRmNSk7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldy52aXNpYmxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjhmZjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsKICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3MgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDM5LCAxNzYsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHN0cm9uZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3Mgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjNENBRjUwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjRkY5ODAwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjOUMyN0IwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBwIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIFx1ezFGNjgwfSBNb2Rlcm4gV1lTSVdZRyBFZGl0b3IifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQSBwb3dlcmZ1bCBibG9jay1iYXNlZCBlZGl0b3Igd2l0aCBzbGFzaCBjb21tYW5kcywga2V5Ym9hcmQgc2hvcnRjdXRzLCBhbmQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdHMuIAogICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5LZXlib2FyZCBzaG9ydGN1dHM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+QmxvY2stYmFzZWQgZWRpdGluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkhUTUwgJiBNYXJrZG93biBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RGFyayBtb2RlIHN1cHBvcnQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1iYXNpYyIKICAgICAgICAgIGxhYmVsPSJSaWNoIFRleHQgRWRpdG9yIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWJveCI+CiAgICAgICAgICA8aDQgY2xhc3M9InNob3J0Y3V0cy10aXRsZSI+4oyo77iPIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtZ3JpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jPC9zcGFuPiBIZWFkaW5nIDEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjPC9zcGFuPiBIZWFkaW5nIDIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjIzwvc3Bhbj4gSGVhZGluZyAzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4+PC9zcGFuPiBRdW90ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+XGBcYFxgPC9zcGFuPiBDb2RlIGJsb2NrCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tPC9zcGFuPiBCdWxsZXQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi0tLTwvc3Bhbj4gRGl2aWRlcgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gXHV7MUY0RER9IEJsb2cgUG9zdCBFeGFtcGxlIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFBlcmZlY3QgZm9yIGNyZWF0aW5nIHJpY2ggY29udGVudCB3aXRoIG11bHRpcGxlIGJsb2NrIHR5cGVzLiAKICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1hcnRpY2xlIgogICAgICAgICAgbGFiZWw9IkJsb2cgUG9zdCBDb250ZW50IiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgdXNpbmcgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gXHV7MUY1MDB9IERyYWcgJiBEcm9wIFJlb3JkZXJpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgRWFzaWx5IHJlYXJyYW5nZSB5b3VyIGNvbnRlbnQgYmxvY2tzIGJ5IGRyYWdnaW5nIHRoZW0uIAogICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1kcmFnZHJvcCIKICAgICAgICAgIGxhYmVsPSJEcmFnICYgRHJvcCBEZW1vIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgZHJhZ2dpbmcgYmxvY2tzIHRvIHJlb3JkZXIgdGhlbSAtIGhvdmVyIHRvIHNlZSBkcmFnIGhhbmRsZXMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpcHMtYm94Ij4KICAgICAgICAgIDxzdHJvbmc+8J+SoSBUaXBzOjwvc3Ryb25nPgogICAgICAgICAgPHVsIGNsYXNzPSJ0aXBzLWxpc3QiPgogICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAo4ouu4ouuKSBvbiB0aGUgbGVmdDwvbGk+CiAgICAgICAgICAgIDxsaT5DbGljayBhbmQgaG9sZCB0aGUgZHJhZyBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmc8L2xpPgogICAgICAgICAgICA8bGk+Qmx1ZSBpbmRpY2F0b3JzIHNob3cgd2hlcmUgdGhlIGJsb2NrIHdpbGwgYmUgZHJvcHBlZDwvbGk+CiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+CiAgICAgICAgICAgIDxsaT5UaGUgZWRpdG9yIG1haW50YWlucyBmb2N1cyBvbiB0aGUgbW92ZWQgYmxvY2sgYWZ0ZXIgZHJvcHBpbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFx1ezFGNERBfSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXByZWhlbnNpdmUgdHV0b3JpYWxzIGFuZCBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBleGFtcGxlcywgbGlzdHMsIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXR1dG9yaWFsIgogICAgICAgICAgbGFiZWw9IkdpdCBUdXRvcmlhbCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICB2YWx1ZT0iIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVycwoKR2l0IGlzIGEgZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0IGhlbHBzIHlvdSB0cmFjayBjaGFuZ2VzIGluIHlvdXIgY29kZSBvdmVyIHRpbWUuIFRoaXMgdHV0b3JpYWwgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgYmFzaWNzLgoKIyMgUHJlcmVxdWlzaXRlcwoKQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6CgotIEdpdCBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0KLSBBIHRleHQgZWRpdG9yIG9yIElERQotIEJhc2ljIGNvbW1hbmQgbGluZSBrbm93bGVkZ2UKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENvbmZpZ3VyZSBHaXQKCkZpcnN0LCBzZXQgdXAgeW91ciBpZGVudGl0eToKClxgXGBcYGJhc2gKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgJnF1b3Q7WW91ciBOYW1lJnF1b3Q7CmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAmcXVvdDt5b3VyLmVtYWlsQGV4YW1wbGUuY29tJnF1b3Q7ClxgXGBcYAoKIyMjIDIuIEluaXRpYWxpemUgYSBSZXBvc2l0b3J5CgpDcmVhdGUgYSBuZXcgR2l0IHJlcG9zaXRvcnk6CgpcYFxgXGBiYXNoCm1rZGlyIG15LXByb2plY3QKY2QgbXktcHJvamVjdApnaXQgaW5pdApcYFxgXGAKCiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3cKCiMjIyMgQWRkaW5nIEZpbGVzCgpDcmVhdGUgYSBmaWxlIGFuZCBhZGQgaXQgdG8gc3RhZ2luZzoKClxgXGBcYGJhc2gKZWNobyAmcXVvdDsjIE15IFByb2plY3QmcXVvdDsgPiBSRUFETUUubWQKZ2l0IGFkZCBSRUFETUUubWQKXGBcYFxgCgojIyMjIENvbW1pdHRpbmcgQ2hhbmdlcwoKXGBcYFxgYmFzaApnaXQgY29tbWl0IC1tICZxdW90O0luaXRpYWwgY29tbWl0JnF1b3Q7ClxgXGBcYAoKPiAqKkJlc3QgUHJhY3RpY2U6KiogV3JpdGUgY2xlYXIsIGRlc2NyaXB0aXZlIGNvbW1pdCBtZXNzYWdlcyB0aGF0IGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlcmUgbWFkZSBhbmQgd2h5LgoKIyMjIDQuIFdvcmtpbmcgd2l0aCBCcmFuY2hlcwoKQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseToKClxgXGBcYGJhc2gKIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2gKZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUtYnJhbmNoCgojIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0CmdpdCBhZGQgLgpnaXQgY29tbWl0IC1tICZxdW90O0FkZCBuZXcgZmVhdHVyZSZxdW90OwoKIyBTd2l0Y2ggYmFjayB0byBtYWluCmdpdCBjaGVja291dCBtYWluCgojIE1lcmdlIHRoZSBmZWF0dXJlCmdpdCBtZXJnZSBmZWF0dXJlLWJyYW5jaApcYFxgXGAKCi0tLQoKIyMgQ29tbW9uIENvbW1hbmRzIFJlZmVyZW5jZQoKfCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgXGBnaXQgc3RhdHVzXGAgfCBDaGVjayByZXBvc2l0b3J5IHN0YXR1cyB8CnwgXGBnaXQgbG9nXGAgfCBWaWV3IGNvbW1pdCBoaXN0b3J5IHwKfCBcYGdpdCBkaWZmXGAgfCBTaG93IGNoYW5nZXMgfAp8IFxgZ2l0IHB1bGxcYCB8IEZldGNoIGFuZCBtZXJnZSBjaGFuZ2VzIHwKfCBcYGdpdCBwdXNoXGAgfCBVcGxvYWQgY2hhbmdlcyB0byByZW1vdGUgfAoKIyMgTmV4dCBTdGVwcwoKMS4gTGVhcm4gYWJvdXQgcmVtb3RlIHJlcG9zaXRvcmllcwoyLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlcwozLiBQcmFjdGljZSB3aXRoIHJlYWwgcHJvamVjdHMKNC4gQ29udHJpYnV0ZSB0byBvcGVuIHNvdXJjZQoKKipIYXBweSBjb2RpbmchKiog8J+agCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBcdXsxRjUwNH0gT3V0cHV0IEZvcm1hdHMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIAogICAgICAgICAgUGVyZmVjdCBmb3Igc3RhdGljIHNpdGUgZ2VuZXJhdG9ycywgZG9jdW1lbnRhdGlvbiBzeXN0ZW1zLCBvciBhbnkgY29udGVudCBtYW5hZ2VtZW50IHdvcmtmbG93LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1tZWV0aW5nIgogICAgICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIE5vdGVzIiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgICAgICAgIHZhbHVlPSI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctaHRtbC1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBIVE1MIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctaHRtbCIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItcmVjaXBlIgogICAgICAgICAgICAgIGxhYmVsPSJSZWNpcGUgQmxvZyBQb3N0IiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRm9vZCBibG9nIHdpdGggbWl4ZWQgY29udGVudCIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgICAgIHZhbHVlPSIjIFVsdGltYXRlIENob2NvbGF0ZSBDaGlwIENvb2tpZXMKClRoZXJlJ3Mgbm90aGluZyBxdWl0ZSBsaWtlIHRoZSBzbWVsbCBvZiBmcmVzaGx5IGJha2VkIGNob2NvbGF0ZSBjaGlwIGNvb2tpZXMuIFRoaXMgcmVjaXBlIGhhcyBiZWVuIHBlcmZlY3RlZCBvdmVyIHllYXJzIG9mIHRlc3RpbmchCgojIyBJbmdyZWRpZW50cwoKLSAywrwgY3VwcyBhbGwtcHVycG9zZSBmbG91cgotIDEgdHNwIGJha2luZyBzb2RhCi0gMSB0c3Agc2FsdAotIDEgY3VwIGJ1dHRlciwgc29mdGVuZWQKLSDCviBjdXAgZ3JhbnVsYXRlZCBzdWdhcgotIMK+IGN1cCBwYWNrZWQgYnJvd24gc3VnYXIKLSAyIGxhcmdlIGVnZ3MKLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3QKLSAyIGN1cHMgY2hvY29sYXRlIGNoaXBzCgojIyBJbnN0cnVjdGlvbnMKCiMjIyBTdGVwIDE6IFByZXBhcmF0aW9uCgpQcmVoZWF0IHlvdXIgb3ZlbiB0byAqKjM3NcKwRiAoMTkwwrBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLgoKIyMjIFN0ZXAgMjogTWl4IERyeSBJbmdyZWRpZW50cwoKSW4gYSBtZWRpdW0gYm93bCwgd2hpc2sgdG9nZXRoZXI6CgoxLiBGbG91cgoyLiBCYWtpbmcgc29kYQozLiBTYWx0CgojIyMgU3RlcCAzOiBDcmVhbSBCdXR0ZXIgYW5kIFN1Z2FycwoKXGBcYFxgCkNyZWFtIGJ1dHRlciBhbmQgc3VnYXJzIGZvciAzLTQgbWludXRlcwp1bnRpbCBsaWdodCBhbmQgZmx1ZmZ5ClxgXGBcYAoKPiAqKlBybyB0aXA6KiogUm9vbSB0ZW1wZXJhdHVyZSBpbmdyZWRpZW50cyBtaXggYmV0dGVyIGFuZCBjcmVhdGUgYSBtb3JlIHVuaWZvcm0gZG91Z2guCgojIyMgU3RlcCA0OiBBZGQgV2V0IEluZ3JlZGllbnRzCgpCZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LgoKIyMjIFN0ZXAgNTogQ29tYmluZSBhbmQgQmFrZQoKR3JhZHVhbGx5IGJsZW5kIGluIGZsb3VyIG1peHR1cmUsIHRoZW4gc3RpciBpbiBjaG9jb2xhdGUgY2hpcHMuIERyb3Agcm91bmRlZCB0YWJsZXNwb29ucyBvbnRvIHVuZ3JlYXNlZCBjb29raWUgc2hlZXRzLgoKLS0tCgoqKkJha2luZyB0aW1lOioqIDktMTEgbWludXRlcyBvciB1bnRpbCBnb2xkZW4gYnJvd24KCioqWWllbGQ6KiogQWJvdXQgNSBkb3plbiBjb29raWVzIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBNYXJrZG93biBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LW1hcmtkb3duIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gXHV7MUYzQTh9IEFkdmFuY2VkIEVkaXRpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXBsZXggZG9jdW1lbnRzIHdpdGggbWl4ZWQgY29udGVudCB0eXBlcy4gVGhlIGVkaXRvciBoYW5kbGVzIGFsbCBmb3JtYXR0aW5nIHNlYW1sZXNzbHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXRlY2huaWNhbCIKICAgICAgICAgIGxhYmVsPSJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50IgogICAgICAgICAgdmFsdWU9IjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcCiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+ewogICZxdW90O25hbWUmcXVvdDs6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICZxdW90O2VtYWlsJnF1b3Q7OiAmcXVvdDtqb2huQGV4YW1wbGUuY29tJnF1b3Q7LAogICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDsKfTwvY29kZT48L3ByZT48aHI+PHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byBvdXIgY29tcGxldGUgZG9jdW1lbnRhdGlvbi48L3A+IgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFNlYW1sZXNzbHkgaW50ZWdyYXRlcyB3aXRoIGRlZXMtZm9ybSBmb3IgY29tcGxldGUgZm9ybSBzb2x1dGlvbnMuIAogICAgICAgICAgQWxsIHN0YW5kYXJkIGZvcm0gZmVhdHVyZXMgbGlrZSB2YWxpZGF0aW9uLCByZXF1aXJlZCBmaWVsZHMsIGFuZCBkYXRhIGJpbmRpbmcgd29yayBvdXQgb2YgdGhlIGJveC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIFRpdGxlIiAKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIHZhbHVlPSJIb3cgdG8gQnVpbGQgTW9kZXJuIFdlYiBBcHBsaWNhdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgIGlkPSJlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgQ29udGVudCIgCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgY29udGVudCBoZXJlIgogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICBsYWJlbD0iVGFncyIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkFkZCByZWxldmFudCB0YWdzIGZvciB5b3VyIGFydGljbGUiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBcdXsxRjlFOX0gUHJvZ3JhbW1hdGljIEJsb2NrIENyZWF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLXByb2dyYW1tYXRpYyIKICAgICAgICAgIGxhYmVsPSJQcm9ncmFtbWF0aWNhbGx5IEdlbmVyYXRlZCBDb250ZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgY29udGVudCB3YXMgY3JlYXRlZCB1c2luZyB0aGUgaW1wb3J0QmxvY2tzIEFQSSIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZXBvcnQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlcG9ydAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZWNpcGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlY2lwZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1lZGl0b3IiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIENsZWFyIEVkaXRvcgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBcdXsxRjRFNH0gRXhwb3J0L0ltcG9ydCBGZWF0dXJlcyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBibG9ja3MiPgogICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYW5kIGltcG9ydCByYXcgYmxvY2sgc3RydWN0dXJlIGZvciBwZXJmZWN0IHJvdW5kLXRyaXAgZWRpdGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBodG1sIj4KICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5HZXQgY2xlYW4sIHNlbWFudGljIEhUTUwgcmVnYXJkbGVzcyBvZiBvdXRwdXQgZm9ybWF0IHNldHRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgbWFya2Rvd24iPgogICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYXMgTWFya2Rvd24gZm9yIGRvY3MsIFJFQURNRXMsIGFuZCBzdGF0aWMgc2l0ZXM8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgc3RhdGUiPgogICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+U2F2ZSBhbmQgcmVzdG9yZSBjb21wbGV0ZSBlZGl0b3Igc3RhdGUgaW5jbHVkaW5nIHNldHRpbmdzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1leHBvcnQiCiAgICAgICAgICBsYWJlbD0iRXhwb3J0IERlbW8gRWRpdG9yIgogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSB0aGUgZXhwb3J0IGJ1dHRvbnMgYmVsb3cgdG8gc2VlIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cyIKICAgICAgICAgIHZhbHVlPSI8aDE+U29mdHdhcmUgUmVsZWFzZSBOb3RlczwvaDE+PHA+PHN0cm9uZz5WZXJzaW9uIDIuNS4wPC9zdHJvbmc+IC0gUmVsZWFzZWQgRGVjZW1iZXIgMTUsIDIwMjQ8L3A+PGgyPvCfjokgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj7wn5CbIEJ1ZyBGaXhlczwvaDI+PHVsPjxsaT5GaXhlZCBtZW1vcnkgbGVhayBpbiBkYXRhIHByb2Nlc3NpbmcgbW9kdWxlPC9saT48bGk+UmVzb2x2ZWQgYXV0aGVudGljYXRpb24gdGltZW91dCBpc3N1ZXM8L2xpPjxsaT5Db3JyZWN0ZWQgdGltZXpvbmUgaGFuZGxpbmcgaW4gc2NoZWR1bGVkIHRhc2tzPC9saT48L3VsPjxoMj7imqEgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzPC9oMj48YmxvY2txdW90ZT5QYWdlIGxvYWQgdGltZXMgcmVkdWNlZCBieSA0MCUgdGhyb3VnaCBsYXp5IGxvYWRpbmcgYW5kIGNvZGUgc3BsaXR0aW5nPC9ibG9ja3F1b3RlPjxoMj7wn5SnIFRlY2huaWNhbCBEZXRhaWxzPC9oMj48cHJlPjxjb2RlPi8vIE5ldyBBUEkgZW5kcG9pbnQgZm9yIGJhdGNoIG9wZXJhdGlvbnMKUE9TVCAvYXBpL3YyL2JhdGNoCnsKICAmcXVvdDtvcGVyYXRpb25zJnF1b3Q7OiBbCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7R0VUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvdXNlcnMvMTIzJnF1b3Q7IH0sCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH0KICBdCn08L2NvZGU+PC9wcmU+PGgyPvCfkqEgTWlncmF0aW9uIEd1aWRlPC9oMj48b2w+PGxpPlVwZGF0ZSB5b3VyIGRlcGVuZGVuY2llcyB0byB0aGUgbGF0ZXN0IHZlcnNpb25zPC9saT48bGk+UnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnM6IDxjb2RlPm5wbSBydW4gbWlncmF0ZTwvY29kZT48L2xpPjxsaT5DbGVhciBjYWNoZTogPGNvZGU+bnBtIHJ1biBjYWNoZTpjbGVhcjwvY29kZT48L2xpPjxsaT5SZXN0YXJ0IGFsbCBzZXJ2aWNlczwvbGk+PC9vbD48aHI+PHA+Rm9yIHF1ZXN0aW9ucyBvciBpc3N1ZXMsIHBsZWFzZSBjb250YWN0IHRoZSBkZXZlbG9wbWVudCB0ZWFtIG9yIGZpbGUgYSB0aWNrZXQgaW4gb3VyIGlzc3VlIHRyYWNrZXIuPC9wPiIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtYmxvY2tzIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgQmxvY2tzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1odG1sIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgSFRNTAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtbWFya2Rvd24iIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBNYXJrZG93bgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBTYXZlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc3RvcmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgTWw9ZygoKT0+e30pO3ZhciBjcixCOD1nKCgpPT57TWwoKTtjcj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnU2hvcnRjdXRzIil9c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46dCx0eXBlOmF9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKHQudGVzdChlKSlyZXR1cm57dHlwZTphfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQoZSl7Zm9yKGxldHtwYXR0ZXJuOnQsdHlwZTphfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZih0LnRlc3QoZSkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOmF9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdChlKX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyhlKX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBtdixKMSxQbmUsaXR0PWcoKCk9PntwZSgpO3puKCk7VWEoKTtNbCgpO0I4KCk7cHQoKTttdj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSjE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc2xhc2gtbWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2xhc2hNZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLG12KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4idmlzaWJsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZpc2libGUsImdldCIpLHNldDppKChfLE8pPT57Xy52aXNpYmxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxtdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJwb3NpdGlvbiJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucG9zaXRpb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLG12KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJmaWx0ZXIiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5maWx0ZXIsImdldCIpLHNldDppKChfLE8pPT57Xy5maWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLG12KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWRJbmRleCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkSW5kZXgsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RlZEluZGV4PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxtdih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Im1lbnVaSW5kZXgiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5tZW51WkluZGV4LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ubWVudVpJbmRleD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksbXYobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIE4uaW5zdGFuY2V8fChOLmluc3RhbmNlPW5ldyBOLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTi5pbnN0YW5jZSkpLE4uaW5zdGFuY2V9I2U9SjEodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKEMpe3RoaXMuI2U9Q30jdD0oSjEodGhpcyxsKSxKMSh0aGlzLGQse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKEMpe3RoaXMuI3Q9Q30jYT0oSjEodGhpcyx1KSxKMSh0aGlzLGIsIiIpKTtnZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbHRlcihDKXt0aGlzLiNhPUN9I3M9KEoxKHRoaXMsdiksSjEodGhpcyxtLDApKTtnZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RlZEluZGV4KEMpe3RoaXMuI3M9Q30jaT0oSjEodGhpcyxmKSxKMSh0aGlzLE0sMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWVudVpJbmRleChDKXt0aGlzLiNpPUN9Y2FsbGJhY2s9KEoxKHRoaXMseiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc2xhc2gtbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy52aXNpYmxlKXJldHVybiB3YGA7dGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCk7bGV0IEM9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJzbGFzaC1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0ic2xhc2giCiAgICAgID4KICAgICAgICAke0MubWFwKChfLE8pPT53YAogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUtaXRlbSAke089PT10aGlzLnNlbGVjdGVkSW5kZXg/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGRhdGEtaXRlbS10eXBlPSIke18udHlwZX0iCiAgICAgICAgICAgIGRhdGEtaXRlbS1pbmRleD0iJHtPfSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaWNvbiIgLmljb249IiR7Xy5pY29ufSIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+JHtfLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RmlsdGVyZWRNZW51SXRlbXMoKXtyZXR1cm4gY3IuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIoXz0+dGhpcy5maWx0ZXI9PT0iInx8Xy5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCkpKX1zZWxlY3RJdGVtKEMpe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2soQyksdGhpcy5oaWRlKCl9c2hvdyhDLF8pe3RoaXMucG9zaXRpb249Qyx0aGlzLmNhbGxiYWNrPV8sdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsdGhpcy5tZW51WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLHhhLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlRmlsdGVyKEMpe3RoaXMuZmlsdGVyPUMsdGhpcy5zZWxlY3RlZEluZGV4PTB9bmF2aWdhdGUoQyl7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO0M9PT0iZG93biI/dGhpcy5zZWxlY3RlZEluZGV4PSh0aGlzLnNlbGVjdGVkSW5kZXgrMSklXy5sZW5ndGg6dGhpcy5zZWxlY3RlZEluZGV4PXRoaXMuc2VsZWN0ZWRJbmRleD09PTA/Xy5sZW5ndGgtMTp0aGlzLnNlbGVjdGVkSW5kZXgtMX1zZWxlY3RDdXJyZW50KCl7bGV0IEM9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO0NbdGhpcy5zZWxlY3RlZEluZGV4XSYmdGhpcy5zZWxlY3RJdGVtKENbdGhpcy5zZWxlY3RlZEluZGV4XS50eXBlKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixDPT57bGV0IF89QyxPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNsYXNoLW1lbnUiKTtPJiZPLmNvbnRhaW5zKF8udGFyZ2V0KSYmKF8ucHJldmVudERlZmF1bHQoKSxfLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQz0+e2xldCBfPUMsJD1fLnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoJCl7Xy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEU9JC5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS10eXBlIik7RSYmdGhpcy5zZWxlY3RJdGVtKEUpfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixDPT57bGV0ICQ9Qy50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKCQpe2xldCBFPXBhcnNlSW50KCQuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taW5kZXgiKXx8IjAiLDEwKTt0aGlzLnNlbGVjdGVkSW5kZXg9RX19LCEwKSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEM9PntsZXQgXz1DLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO08mJk8uY29udGFpbnMoXy50YXJnZXQpJiYoXy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje0oxKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBTdCxEZD1nKCgpPT57U3Q9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z1NlbGVjdGlvbiIpfXN0YXRpYyBnZXRTZWxlY3Rpb25JbmZvKC4uLmUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjb25zb2xlLmxvZygiV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvIC0gc2VsZWN0aW9uOiIsdCwicmFuZ2VDb3VudDoiLHQ/LnJhbmdlQ291bnQpLCF0KXJldHVybiBudWxsO2lmKCJnZXRDb21wb3NlZFJhbmdlcyJpbiB0JiZ0eXBlb2YgdC5nZXRDb21wb3NlZFJhbmdlcz09ImZ1bmN0aW9uIil7Y29uc29sZS5sb2coIlVzaW5nIGdldENvbXBvc2VkUmFuZ2VzIHdpdGgiLGUubGVuZ3RoLCJzaGFkb3cgcm9vdHMiKTt0cnl7bGV0IGE9dC5nZXRDb21wb3NlZFJhbmdlcyh7c2hhZG93Um9vdHM6ZX0pO2lmKGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyByZXR1cm5lZCIsYS5sZW5ndGgsInJhbmdlcyIpLGEubGVuZ3RoPjApe2xldCByPWFbMF07cmV0dXJue3N0YXJ0Q29udGFpbmVyOnIuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6ci5zdGFydE9mZnNldCxlbmRDb250YWluZXI6ci5lbmRDb250YWluZXIsZW5kT2Zmc2V0OnIuZW5kT2Zmc2V0LGNvbGxhcHNlZDpyLmNvbGxhcHNlZH19fWNhdGNoKGEpe2NvbnNvbGUud2FybigiZ2V0Q29tcG9zZWRSYW5nZXMgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gZ2V0UmFuZ2VBdDoiLGEpfX1lbHNlIGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyBub3QgYXZhaWxhYmxlLCB1c2luZyBmYWxsYmFjayIpO2lmKHQucmFuZ2VDb3VudD4wKXtsZXQgYT10LmdldFJhbmdlQXQoMCk7cmV0dXJue3N0YXJ0Q29udGFpbmVyOmEuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6YS5zdGFydE9mZnNldCxlbmRDb250YWluZXI6YS5lbmRDb250YWluZXIsZW5kT2Zmc2V0OmEuZW5kT2Zmc2V0LGNvbGxhcHNlZDphLmNvbGxhcHNlZH19cmV0dXJuIG51bGx9c3RhdGljIGlzU2VsZWN0aW9uSW5FbGVtZW50KGUsdCl7bGV0IGE9dD90aGlzLmdldFNlbGVjdGlvbkluZm8odCk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7cmV0dXJuIGE/ZS5jb250YWlucyhhLnN0YXJ0Q29udGFpbmVyKXx8ZS5jb250YWlucyhhLmVuZENvbnRhaW5lcik6ITF9c3RhdGljIGdldFNlbGVjdGVkVGV4dCgpe2xldCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gZT9lLnRvU3RyaW5nKCk6IiJ9c3RhdGljIGNyZWF0ZVJhbmdlRnJvbUluZm8oZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdC5zZXRTdGFydChlLnN0YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQpLHQuc2V0RW5kKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSx0fXN0YXRpYyBzZXRTZWxlY3Rpb25Gcm9tUmFuZ2UoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO3QmJih0LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoZSkpfXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChlLC4uLnQpe2xldCBhPXQubGVuZ3RoPjA/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKC4uLnQpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO2lmKCFhfHwhYS5jb2xsYXBzZWQpcmV0dXJuIG51bGw7dHJ5e2xldCByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoci5zZWxlY3ROb2RlQ29udGVudHMoZSksdGhpcy5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShlLGEuc3RhcnRDb250YWluZXIpKXJldHVybiByLnNldEVuZChhLnN0YXJ0Q29udGFpbmVyLGEuc3RhcnRPZmZzZXQpLHIudG9TdHJpbmcoKS5sZW5ndGg7e2xldCBvPWUudGV4dENvbnRlbnR8fCIiLGw9YS5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudHx8IiI7cmV0dXJuIGEuc3RhcnRPZmZzZXQ9PT0wPzA6YS5zdGFydE9mZnNldD09PWwubGVuZ3RoP28ubGVuZ3RoOihjb25zb2xlLndhcm4oIlNlbGVjdGlvbiBjb250YWluZXIgbm90IHdpdGhpbiBlbGVtZW50LCB1c2luZyB0ZXh0IG1hdGNoaW5nIGZhbGxiYWNrIiksYS5zdGFydE9mZnNldCl9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBnZXQgY3Vyc29yIHBvc2l0aW9uOiIsciksbnVsbH19c3RhdGljIGdldEN1cnNvclBvc2l0aW9uRnJvbVBvaW50KGUsdCxhLC4uLnIpe2lmKCJjYXJldFBvc2l0aW9uRnJvbVBvaW50ImluIGRvY3VtZW50JiZkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXtsZXQgbj1udWxsO3RyeXtuPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSx0LC4uLnIpfWNhdGNoe249ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQpfWlmKG4mJmEuY29udGFpbnMobi5vZmZzZXROb2RlKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5vZmZzZXROb2RlLG4ub2Zmc2V0LGEpfWlmKCJjYXJldFJhbmdlRnJvbVBvaW50ImluIGRvY3VtZW50KXtsZXQgbj1kb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KGUsdCk7aWYobiYmYS5jb250YWlucyhuLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5zdGFydENvbnRhaW5lcixuLnN0YXJ0T2Zmc2V0LGEpfXJldHVybiBudWxsfXN0YXRpYyBnZXRPZmZzZXRJbkVsZW1lbnQoZSx0LGEpe2xldCByPTAsbj0hMSxvPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxsO2Zvcig7bD1vLm5leHROb2RlKCk7KWlmKGw9PT1lKXtyKz10LG49ITA7YnJlYWt9ZWxzZSByKz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIG4/cjowfXN0YXRpYyBzZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxyPTAsbj1udWxsLG89MDtmb3IoO2EubmV4dE5vZGUoKTspe2xldCBsPWEuY3VycmVudE5vZGUscD1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYocitwPj10KXtuPWwsbz10LXI7YnJlYWt9cis9cH1pZihuKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQobixvKSxsLmNvbGxhcHNlKCEwKSx0aGlzLnNldFNlbGVjdGlvbkZyb21SYW5nZShsKX19c3RhdGljIGNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsdCl7aWYoIWV8fCF0KXJldHVybiExO2xldCBhPXQ7Zm9yKDthOyl7aWYoYT09PWUpcmV0dXJuITA7aWYoYS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmYS5ob3N0KXtsZXQgcj1hO2lmKHIuY29udGFpbnMoZSkpcmV0dXJuITE7YT1yLmhvc3R9ZWxzZSBhPWEucGFyZW50Tm9kZX1yZXR1cm4hMX19fSk7dmFyIHN1LHJ0dD1nKCgpPT57cGUoKTtEZCgpO3N1PWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdGb3JtYXR0aW5nIil9c3RhdGljIGZvcm1hdEJ1dHRvbnM9W3tjb21tYW5kOiJib2xkIixpY29uOiJCIixsYWJlbDoiQm9sZCIsc2hvcnRjdXQ6Ilx1MjMxOEIifSx7Y29tbWFuZDoiaXRhbGljIixpY29uOiJJIixsYWJlbDoiSXRhbGljIixzaG9ydGN1dDoiXHUyMzE4SSJ9LHtjb21tYW5kOiJ1bmRlcmxpbmUiLGljb246IlUiLGxhYmVsOiJVbmRlcmxpbmUiLHNob3J0Y3V0OiJcdTIzMThVIn0se2NvbW1hbmQ6InN0cmlrZVRocm91Z2giLGljb246IlNcdTAzMzYiLGxhYmVsOiJTdHJpa2V0aHJvdWdoIn0se2NvbW1hbmQ6ImNvZGUiLGljb246InsgfSIsbGFiZWw6IklubGluZSBDb2RlIn0se2NvbW1hbmQ6ImxpbmsiLGljb246Ilx1ezFGNTE3fSIsbGFiZWw6IkxpbmsiLHNob3J0Y3V0OiJcdTIzMThLIn1dO3N0YXRpYyByZW5kZXJGb3JtYXR0aW5nTWVudShlLHQpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJ0b3A6ICR7ZS55fXB4OyBsZWZ0OiAke2UueH1weDsiCiAgICAgICAgQG1vdXNlZG93bj0iJHthPT57YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9fSIKICAgICAgICBAY2xpY2s9IiR7YT0+YS5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgID4KICAgICAgICAke3RoaXMuZm9ybWF0QnV0dG9ucy5tYXAoYT0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7YS5jb21tYW5kfSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50KGEuY29tbWFuZCl9IgogICAgICAgICAgICB0aXRsZT0iJHthLmxhYmVsfSR7YS5zaG9ydGN1dD9gICgke2Euc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHthLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke2EuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBhcHBseUZvcm1hdChlLHQsYSxyKXtsZXQgbjtpZihhKW49YTtlbHNle2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm4hMTtuPW8uZ2V0UmFuZ2VBdCgwKX1zd2l0Y2goZSl7Y2FzZSJib2xkIjp0aGlzLndyYXBTZWxlY3Rpb24obiwic3Ryb25nIik7YnJlYWs7Y2FzZSJpdGFsaWMiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJlbSIpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp0aGlzLndyYXBTZWxlY3Rpb24obiwidSIpO2JyZWFrO2Nhc2Uic3RyaWtlVGhyb3VnaCI6dGhpcy53cmFwU2VsZWN0aW9uKG4sInMiKTticmVhaztjYXNlImNvZGUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJjb2RlIik7YnJlYWs7Y2FzZSJsaW5rIjppZighdClyZXR1cm4hMTt0aGlzLndyYXBTZWxlY3Rpb25XaXRoTGluayhuLHQpO2JyZWFrfWlmKHImJnIubGVuZ3RoPjApU3Quc2V0U2VsZWN0aW9uRnJvbVJhbmdlKG4pO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO28mJihvLnJlbW92ZUFsbFJhbmdlcygpLG8uYWRkUmFuZ2UobikpfXJldHVybiEwfXN0YXRpYyB3cmFwU2VsZWN0aW9uKGUsdCl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZih0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsdCkpdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsdCk7ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO3RyeXtsZXQgbz1lLmV4dHJhY3RDb250ZW50cygpO24uYXBwZW5kQ2hpbGQobyksZS5pbnNlcnROb2RlKG4pLGUuc2VsZWN0Tm9kZUNvbnRlbnRzKG4pLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShlKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gd3JhcCBzZWxlY3Rpb246IixvKX19fXN0YXRpYyBzZWxlY3Rpb25Db250YWluc1RhZyhlLHQpe2xldCBhPWUuc3RhcnRDb250YWluZXI7Zm9yKDthJiZhIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZhLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXQpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9Zm9yKGE9ZS5lbmRDb250YWluZXI7YSYmYSE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKGEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10KXJldHVybiEwO2E9YS5wYXJlbnROb2RlfWxldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIHIuYXBwZW5kQ2hpbGQobiksci5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KS5sZW5ndGg+MH1zdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLHQpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYSlyZXR1cm47bGV0IHI9ZS5jbG9uZVJhbmdlKCksbj1lLnN0YXJ0Q29udGFpbmVyLG89bnVsbDtmb3IoO24mJm4hPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihuLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm4udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dCl7bz1uO2JyZWFrfW49bi5wYXJlbnROb2RlfWxldCBsPWUuZW5kQ29udGFpbmVyLHA9bnVsbDtmb3IoO2wmJmwhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihsLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmwudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dCl7cD1sO2JyZWFrfWw9bC5wYXJlbnROb2RlfW8mJnIuc2V0U3RhcnRCZWZvcmUobykscCYmci5zZXRFbmRBZnRlcihwKTtsZXQgZD1yLmV4dHJhY3RDb250ZW50cygpLHU9dGhpcy5yZW1vdmVUYWdzRnJvbUZyYWdtZW50KGQsdCk7ci5pbnNlcnROb2RlKHUpO2xldCBjPVtdLGI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih1LE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLHY7Zm9yKDt2PWIubmV4dE5vZGUoKTspYy5wdXNoKHYpO2lmKGMubGVuZ3RoPjApe2xldCB4PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7eC5zZXRTdGFydChjWzBdLDApLHguc2V0RW5kKGNbYy5sZW5ndGgtMV0sY1tjLmxlbmd0aC0xXS50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2UoeCl9fXN0YXRpYyByZW1vdmVUYWdzRnJvbUZyYWdtZW50KGUsdCl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5hcHBlbmRDaGlsZChlKTtsZXQgcj1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpO0FycmF5LmZyb20ocikuZm9yRWFjaChsPT57bGV0IHA9bC5wYXJlbnROb2RlO2lmKHApe2Zvcig7bC5maXJzdENoaWxkOylwLmluc2VydEJlZm9yZShsLmZpcnN0Q2hpbGQsbCk7cC5yZW1vdmVDaGlsZChsKX19KTtsZXQgbz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKDthLmZpcnN0Q2hpbGQ7KW8uYXBwZW5kQ2hpbGQoYS5maXJzdENoaWxkKTtyZXR1cm4gb31zdGF0aWMgd3JhcFNlbGVjdGlvbldpdGhMaW5rKGUsdCl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsImEiKSYmKHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLCJhIiksYS5yYW5nZUNvdW50PjAmJihlPWEuZ2V0UmFuZ2VBdCgwKSkpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtyLmhyZWY9dCxyLnRhcmdldD0iX2JsYW5rIixyLnJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI7dHJ5e2xldCBuPWUuZXh0cmFjdENvbnRlbnRzKCk7ci5hcHBlbmRDaGlsZChuKSxlLmluc2VydE5vZGUociksZS5zZWxlY3ROb2RlQ29udGVudHMociksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGUpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgbGluazoiLG4pfX1zdGF0aWMgZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uZSl7bGV0IHQ9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5lKTtpZihjb25zb2xlLmxvZygiZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMgLSBzZWxlY3Rpb25JbmZvOiIsdCksIXQpcmV0dXJuIGNvbnNvbGUubG9nKCJObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUiKSxudWxsO2xldCByPVN0LmNyZWF0ZVJhbmdlRnJvbUluZm8odCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY29uc29sZS5sb2coIlJhbmdlIHJlY3Q6IixyKSxyLndpZHRoPT09MCYmci5oZWlnaHQ9PT0wKXtpZihjb25zb2xlLmxvZygiUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoIiksImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvJiZvLnJhbmdlQ291bnQ+MCl7bGV0IGw9by5nZXRSYW5nZUF0KDApLHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3AudGV4dENvbnRlbnQ9Ilx1MjAwQiIsbC5pbnNlcnROb2RlKHApO2xldCBkPXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYocC5yZW1vdmUoKSxkLndpZHRoPjB8fGQuaGVpZ2h0PjApe2xldCB1PXt4OmQubGVmdCx5Ok1hdGgubWF4KDQ1LGQudG9wLTQ1KX07cmV0dXJuIGNvbnNvbGUubG9nKCJVc2VkIHNwYW4gdHJpY2sgZm9yIGNvb3JkczoiLHUpLHV9fX1yZXR1cm4gbnVsbH1sZXQgbj17eDpyLmxlZnQrci53aWR0aC8yLHk6TWF0aC5tYXgoNDUsci50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlJldHVybmluZyBjb29yZHM6IixuKSxufX19KTt2YXIgSW5lLEg4LEFuZSxvdHQ9ZygoKT0+e3BlKCk7em4oKTtydHQoKTtwdCgpO0luZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSDg9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEFuZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtZm9ybWF0dGluZy1tZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtYXR0aW5nTWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLEluZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZpc2libGUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudmlzaWJsZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksSW5lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InBvc2l0aW9uImluIGYsImhhcyIpLGdldDppKGY9PmYucG9zaXRpb24sImdldCIpLHNldDppKChmLHkpPT57Zi5wb3NpdGlvbj15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksSW5lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibWVudVpJbmRleCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChmLHkpPT57Zi5tZW51WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxJbmUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHguaW5zdGFuY2V8fCh4Lmluc3RhbmNlPW5ldyB4LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoeC5pbnN0YW5jZSkpLHguaW5zdGFuY2V9I2U9SDgodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKG0pe3RoaXMuI2U9bX0jdD0oSDgodGhpcyxsKSxIOCh0aGlzLGQse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKG0pe3RoaXMuI3Q9bX0jYT0oSDgodGhpcyx1KSxIOCh0aGlzLGIsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudVpJbmRleChtKXt0aGlzLiNhPW19Y2FsbGJhY2s9KEg4KHRoaXMsdiksbnVsbCk7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZm9ybWF0dGluZy1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjYyNjI2Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSg1cHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMzMzMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy52aXNpYmxlPyh0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJmb3JtYXR0aW5nIgogICAgICA+CiAgICAgICAgJHtzdS5mb3JtYXRCdXR0b25zLm1hcChtPT53YAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHttLmNvbW1hbmR9IgogICAgICAgICAgICBkYXRhLWNvbW1hbmQ9IiR7bS5jb21tYW5kfSIKICAgICAgICAgICAgdGl0bGU9IiR7bS5sYWJlbH0ke20uc2hvcnRjdXQ/YCAoJHttLnNob3J0Y3V0fSlgOiIifSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9IiR7bS5jb21tYW5kPT09ImNvZGUiPyJjb2RlLWljb24iOiIifSI+JHttLmljb259PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYCk6d2BgfWFwcGx5Rm9ybWF0KG0pe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2sobSksbT09PSJsaW5rIiYmdGhpcy5oaWRlKCl9c2hvdyhtLGYpe2NvbnNvbGUubG9nKCJGb3JtYXR0aW5nTWVudS5zaG93IGNhbGxlZDoiLHtwb3NpdGlvbjptLHZpc2libGU6dGhpcy52aXNpYmxlfSksdGhpcy5wb3NpdGlvbj1tLHRoaXMuY2FsbGJhY2s9Zix0aGlzLm1lbnVaSW5kZXg9eGEuZ2V0TmV4dFpJbmRleCgpLHhhLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwseGEudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVQb3NpdGlvbihtKXt0aGlzLnBvc2l0aW9uPW19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsbT0+e2xldCBmPW0seT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTt5JiZ5LmNvbnRhaW5zKGYudGFyZ2V0KSYmKGYucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbT0+e2xldCBmPW0sTT1mLnRhcmdldC5jbG9zZXN0KCIuZm9ybWF0LWJ1dHRvbiIpO2lmKE0pe2YucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpO2xldCB6PU0uZ2V0QXR0cmlidXRlKCJkYXRhLWNvbW1hbmQiKTt6JiZ0aGlzLmFwcGx5Rm9ybWF0KHopfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbT0+e2xldCBmPW0seT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTt5JiZ5LmNvbnRhaW5zKGYudGFyZ2V0KSYmKGYucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpKX0sITApfXN0YXRpY3tIOChhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgZ3Y9ZygoKT0+e3BlKCk7TWwoKTtpdHQoKTtvdHQoKX0pO3ZhciBMWixObmU9ZygoKT0+e0xaPVsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJKYXZhIiwiQysrIiwiQyMiLCJHbyIsIlJ1c3QiLCJIVE1MIiwiQ1NTIiwiU1FMIiwiU2hlbGwiLCJKU09OIiwiWUFNTCIsIk1hcmtkb3duIiwiUGxhaW4gVGV4dCJdfSk7dmFyIG50dCxSMGE9ZygoKT0+e3BlKCk7bnR0PUpgCiAgOmhvc3QgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgbWluLWhlaWdodDogMjAwcHg7CiAgICBwYWRkaW5nOiAyNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiMzZjNmNDYiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9LCAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuNSkiKX07CiAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIFZpc3VhbCBoaW50IGZvciB0ZXh0IHNlbGVjdGlvbiAqLwogIC5lZGl0b3ItY29udGVudDpob3ZlciB7CiAgICBjdXJzb3I6IHRleHQ7CiAgfQoKICAuZWRpdG9yLWNvbnRlbnQgewogICAgb3V0bGluZTogbm9uZTsKICAgIG1pbi1oZWlnaHQ6IDE2MHB4OwogICAgbWFyZ2luOiAwIC04cHg7CiAgICBwYWRkaW5nOiAwIDhweDsKICB9CgogIC5ibG9jayB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiA0cHggMDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgbWluLWhlaWdodDogMS42ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLyogRmlyc3QgYW5kIGxhc3QgYmxvY2tzIGRvbid0IG5lZWQgZXh0cmEgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyOmZpcnN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgfQoKICAuYmxvY2std3JhcHBlcjpsYXN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBvdXRsaW5lOiAycHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgfQoKICAuYmxvY2tbY29udGVudGVkaXRhYmxlXSB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGg6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMSB7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0xOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTIgewogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMjplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDIiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0zIHsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTM6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAzIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLnF1b3RlIHsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICB9CgogIC5ibG9jay5xdW90ZTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJRdW90ZSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBtYXJnaW46IDIwcHggMDsKICB9CgogIC5jb2RlLWxhbmd1YWdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogMCA0cHggMCA0cHg7CiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOwogICAgei1pbmRleDogMTsKICB9CgogIC5ibG9jay5jb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHBhZGRpbmc6IDE2cHg7CiAgICBwYWRkaW5nLXRvcDogMzJweDsgLyogTWFrZSByb29tIGZvciBsYW5ndWFnZSBpbmRpY2F0b3IgKi8KICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBvdmVyZmxvdy14OiBhdXRvOwogIH0KCiAgLmJsb2NrLmNvZGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiLy8gQ29kZSBibG9jayI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmxpc3QgewogICAgcGFkZGluZy1sZWZ0OiAwOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwsCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMCAwIDAgMjRweDsKICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7CiAgfQoKICAuYmxvY2subGlzdCB1bCB7CiAgICBsaXN0LXN0eWxlOiBkaXNjOwogIH0KCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbGlzdC1zdHlsZTogZGVjaW1hbDsKICB9CgogIC5ibG9jay5saXN0IGxpIHsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQoKICAuYmxvY2suZGl2aWRlciB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyMHB4IDA7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CgogIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBtYXJnaW46IDA7CiAgfQoKICAuc2xhc2gtbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gewogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCAuaWNvbiB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLnRvb2xiYXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAtNDBweDsKICAgIGxlZnQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBnYXA6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgfQoKICAudG9vbGJhci52aXNpYmxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQoKICAudG9vbGJhci1idXR0b24gewogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIERyYWcgYW5kIERyb3AgU3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgfQoKICAvKiBFbnN1cmUgcHJvcGVyIHNwYWNpbmcgY29udGV4dCBmb3IgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMTZweDsKICB9CgogIC8qIE92ZXJyaWRlIGZvciBoZWFkaW5ncyBmb2xsb3dpbmcgb3RoZXIgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0xLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMiwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTMgewogICAgbWFyZ2luLXRvcDogMjRweDsKICB9CgogIC8qIENvZGUgYW5kIHF1b3RlIGJsb2NrcyBuZWVkIGNvbnNpc3RlbnQgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmNvZGUsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sucXVvdGUgewogICAgbWFyZ2luLXRvcDogMjBweDsKICB9CgogIC5kcmFnLWhhbmRsZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAtMjhweDsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBjdXJzb3I6IGdyYWI7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC5kcmFnLWhhbmRsZTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICLii67ii64iOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGV0dGVyLXNwYWNpbmc6IC0ycHg7CiAgfQoKICAuYmxvY2std3JhcHBlcjpob3ZlciAuZHJhZy1oYW5kbGUgewogICAgb3BhY2l0eTogMTsKICB9CgogIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogIH0KCiAgLmRyYWctaGFuZGxlOmFjdGl2ZSB7CiAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLmJsb2NrLXdyYXBwZXIuZHJhZ2dpbmcgewogICAgb3BhY2l0eTogMC44OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiAyMDAxOwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KCgogIC8qIEJsb2NrcyB0aGF0IHNob3VsZCBtb3ZlIG91dCBvZiB0aGUgd2F5ICovCiAgLmJsb2NrLXdyYXBwZXIubW92ZS1kb3duIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSk7CiAgfQoKICAuYmxvY2std3JhcHBlci5tb3ZlLXVwIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpKTsKICB9CgogIC8qIERyb3AgaW5kaWNhdG9yICovCiAgLmRyb3AtaW5kaWNhdG9yIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgZWFzZSwgaGVpZ2h0IDAuMnMgZWFzZTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMTk5OTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICAvKiBSZW1vdmUgb2xkIGRyYWctb3ZlciBzdHlsZXMgKi8KICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYmVmb3JlLAogIC5ibG9jay13cmFwcGVyLmRyYWctb3Zlci1hZnRlciB7CiAgICAvKiBObyBsb25nZXIgbmVlZGVkLCB1c2luZyBkcm9wIGluZGljYXRvciBpbnN0ZWFkICovCiAgfQoKICAuZWRpdG9yLWNvbnRlbnQuZHJhZ2dpbmcgKiB7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC8qIEJsb2NrIFNldHRpbmdzIEJ1dHRvbiAtIFJlbW92ZWQgaW4gZmF2b3Igb2YgY29udGV4dCBtZW51ICovCgogIC8qIFRleHQgU2VsZWN0aW9uIFN0eWxlcyAqLwogIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgIGNvbG9yOiBpbmhlcml0OwogIH0KCiAgLyogRm9ybWF0dGluZyBNZW51ICovCiAgLmZvcm1hdHRpbmctbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDJweDsKICAgIHotaW5kZXg6IDEwMDE7CiAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogIH0KCiAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICBmcm9tIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKDJweCk7CiAgICB9CiAgICB0byB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgIH0KICB9CgogIC5mb3JtYXQtYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICB9CgogIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxMnB4OwogIH0KCiAgLyogQXBwbGllZCBmb3JtYXQgc3R5bGVzIGluIGNvbnRlbnQgKi8KICAuYmxvY2sgc3Ryb25nLAogIC5ibG9jayBiIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGVtLAogIC5ibG9jayBpIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5ibG9jayB1IHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmJsb2NrIHN0cmlrZSwKICAuYmxvY2sgcyB7CiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgIG9wYWNpdHk6IDAuNzsKICB9CgogIC5ibG9jayBjb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGEgewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogIH0KCiAgLmJsb2NrIGE6aG92ZXIgewogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KYH0pO3ZhciBSYyxsdHQ9ZygoKT0+e01sKCk7UmM9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0NvbnZlcnRlcnMiKX1zdGF0aWMgZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfXN0YXRpYyBmb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHQ9MTAyNCxhPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxyPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2codCkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KHQscikpLnRvRml4ZWQoMikpKyIgIithW3JdfXN0YXRpYyBnZXRIdG1sT3V0cHV0KGUpe3JldHVybiBlLm1hcCh0PT57bGV0IGE9dC5jb250ZW50LmluY2x1ZGVzKCI8IikmJnQuY29udGVudC5pbmNsdWRlcygiPiIpP3QuY29udGVudDp0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KTtzd2l0Y2godC50eXBlKXtjYXNlInBhcmFncmFwaCI6cmV0dXJuIHQuY29udGVudD9gPHA+JHthfTwvcD5gOiIiO2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gPGgxPiR7YX08L2gxPmA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmA8aDI+JHthfTwvaDI+YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYDxoMz4ke2F9PC9oMz5gO2Nhc2UicXVvdGUiOnJldHVybmA8YmxvY2txdW90ZT4ke2F9PC9ibG9ja3F1b3RlPmA7Y2FzZSJjb2RlIjpyZXR1cm5gPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbCh0LmNvbnRlbnQpfTwvY29kZT48L3ByZT5gO2Nhc2UibGlzdCI6bGV0IHI9dC5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKHA9PnAudHJpbSgpKTtpZihyLmxlbmd0aD4wKXtsZXQgcD10Lm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke3B9PiR7ci5tYXAoZD0+YDxsaT4ke2R9PC9saT5gKS5qb2luKCIiKX08LyR7cH0+YH1yZXR1cm4iIjtjYXNlImRpdmlkZXIiOnJldHVybiI8aHI+IjtjYXNlImltYWdlIjpsZXQgbj10Lm1ldGFkYXRhPy51cmw7aWYobil7bGV0IHA9dGhpcy5lc2NhcGVIdG1sKHQuY29udGVudHx8IkltYWdlIik7cmV0dXJuYDxpbWcgc3JjPSIke259IiBhbHQ9IiR7cH0iIC8+YH1yZXR1cm4iIjtjYXNlInlvdXR1YmUiOmxldCBvPXQubWV0YWRhdGE/LnZpZGVvSWQ7cmV0dXJuIG8/YDxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtvfSIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm5gPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+JHt0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KX08L2Rpdj5gO2Nhc2UiaHRtbCI6cmV0dXJuIHQuY29udGVudDtjYXNlImF0dGFjaG1lbnQiOmxldCBsPXQubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gbC5sZW5ndGg+MD9gPGRpdiBjbGFzcz0iYXR0YWNobWVudHMiPiR7bC5tYXAocD0+YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke3AuaWR9Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7cC5kYXRhfSIgZG93bmxvYWQ9IiR7cC5uYW1lfSI+JHt0aGlzLmVzY2FwZUh0bWwocC5uYW1lKX08L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKHAuc2l6ZSl9KTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gKS5qb2luKCIiKX08L2Rpdj5gOiIiO2RlZmF1bHQ6cmV0dXJuYDxwPiR7YX08L3A+YH19KS5maWx0ZXIodD0+dCE9PSIiKS5qb2luKGAKYCl9c3RhdGljIGdldE1hcmtkb3duT3V0cHV0KGUpe3JldHVybiBlLm1hcCh0PT57c3dpdGNoKHQudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJoZWFkaW5nLTEiOnJldHVybmAjICR7dC5jb250ZW50fWA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmAjIyAke3QuY29udGVudH1gO2Nhc2UiaGVhZGluZy0zIjpyZXR1cm5gIyMjICR7dC5jb250ZW50fWA7Y2FzZSJxdW90ZSI6cmV0dXJuYD4gJHt0LmNvbnRlbnR9YDtjYXNlImNvZGUiOnJldHVybmBcYFxgXGAKJHt0LmNvbnRlbnR9ClxgXGBcYGA7Y2FzZSJsaXN0IjpsZXQgYT10LmNvbnRlbnQuc3BsaXQoYApgKS5maWx0ZXIoZD0+ZC50cmltKCkpO3JldHVybiB0Lm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj9hLm1hcCgoZCx1KT0+YCR7dSsxfS4gJHtkfWApLmpvaW4oYApgKTphLm1hcChkPT5gLSAke2R9YCkuam9pbihgCmApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIi0tLSI7Y2FzZSJpbWFnZSI6bGV0IHI9dC5tZXRhZGF0YT8udXJsLG49dC5jb250ZW50fHwiSW1hZ2UiO3JldHVybiByP2AhWyR7bn1dKCR7cn0pYDoiIjtjYXNlInlvdXR1YmUiOmxldCBvPXQubWV0YWRhdGE/LnZpZGVvSWQsbD10Lm1ldGFkYXRhPy51cmx8fChvP2BodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9JHtvfWA6IiIpO3JldHVybiBsP2BbWW91VHViZSBWaWRlb10oJHtsfSlgOiIiO2Nhc2UibWFya2Rvd24iOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJodG1sIjpyZXR1cm5gPCEtLSBIVE1MIEJsb2NrCiR7dC5jb250ZW50fQotLT5gO2Nhc2UiYXR0YWNobWVudCI6bGV0IHA9dC5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybiBwLmxlbmd0aD4wP3AubWFwKGQ9PmAtIFske2QubmFtZX1dKCR7ZC5kYXRhfSlgKS5qb2luKGAKYCk6IiI7ZGVmYXVsdDpyZXR1cm4gdC5jb250ZW50fX0pLmZpbHRlcih0PT50IT09IiIpLmpvaW4oYAoKYCl9c3RhdGljIHBhcnNlSHRtbFRvQmxvY2tzKGUpe2xldCBhPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC9odG1sIikscj1bXSxuPWkobz0+e2lmKG8ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmby50ZXh0Q29udGVudD8udHJpbSgpKXIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpvLnRleHRDb250ZW50LnRyaW0oKX0pO2Vsc2UgaWYoby5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXtsZXQgbD1vLHA9bC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7c3dpdGNoKHApe2Nhc2UicCI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDEiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgyIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMyI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiYmxvY2txdW90ZSI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJwcmUiOmNhc2UiY29kZSI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLnRleHRDb250ZW50fHwiIn0pO2JyZWFrO2Nhc2UidWwiOmNhc2Uib2wiOmxldCB1PUFycmF5LmZyb20obC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpKS5tYXAoYj0+Yi5pbm5lckhUTUx8fCIiKS5qb2luKGAKYCk7ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToibGlzdCIsY29udGVudDp1LG1ldGFkYXRhOntsaXN0VHlwZTpwPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9fSk7YnJlYWs7Y2FzZSJociI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTticmVhaztjYXNlImltZyI6bGV0IGM9bDtyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpjLmFsdHx8IiIsbWV0YWRhdGE6e3VybDpjLnNyY319KTticmVhaztkZWZhdWx0OmwuY2hpbGROb2Rlcy5mb3JFYWNoKGI9Pm4oYikpfX19LCJwcm9jZXNzTm9kZSIpO3JldHVybiBhLmJvZHkuY2hpbGROb2Rlcy5mb3JFYWNoKG89Pm4obykpLHJ9c3RhdGljIHBhcnNlTWFya2Rvd25Ub0Jsb2NrcyhlKXtsZXQgdD1lLnNwbGl0KGAKYCksYT1bXSxyPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtsZXQgbz10W25dO2lmKG8uc3RhcnRzV2l0aCgiIyAiKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiIyMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50Om8uc3Vic3RyaW5nKDMpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjIyAiKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6by5zdWJzdHJpbmcoNCl9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiPiAiKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJxdW90ZSIsY29udGVudDpvLnN1YnN0cmluZygyKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCJgYGAiKSl7bGV0IGw9W107Zm9yKG4rKztuPHQubGVuZ3RoJiYhdFtuXS5zdGFydHNXaXRoKCJgYGAiKTspbC5wdXNoKHRbbl0pLG4rKzthLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJjb2RlIixjb250ZW50Omwuam9pbihgCmApfSl9ZWxzZSBpZihvLm1hdGNoKC9eKFwqfC0pIC8pKXIucHVzaChvLnN1YnN0cmluZygyKSksKG49PT10Lmxlbmd0aC0xfHwhdFtuKzFdLm1hdGNoKC9eKFwqfC0pIC8pKSYmKGEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6ci5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0pLHI9W10pO2Vsc2UgaWYoby5tYXRjaCgvXlxkK1wuIC8pKXIucHVzaChvLnJlcGxhY2UoL15cZCtcLiAvLCIiKSksKG49PT10Lmxlbmd0aC0xfHwhdFtuKzFdLm1hdGNoKC9eXGQrXC4gLykpJiYoYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToibGlzdCIsY29udGVudDpyLmpvaW4oYApgKSxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0pLHI9W10pO2Vsc2UgaWYobz09PSItLS0ifHxvPT09IioqKiJ8fG89PT0iX19fIilhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIgIn0pO2Vsc2UgaWYoby5tYXRjaCgvXiFcWyhbXlxdXSopXF1cKChbXlwpXSspXCkkLykpe2xldCBsPW8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pO2wmJmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImltYWdlIixjb250ZW50OmxbMV18fCIiLG1ldGFkYXRhOnt1cmw6bFsyXX19KX1lbHNlIG8udHJpbSgpJiZhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6b30pfXJldHVybiBhfX19KTt2YXIgQ28saXU9ZygoKT0+e3BlKCk7TWwoKTtsdHQoKTtDbz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnQmxvY2tzIil9c3RhdGljIHJlbmRlckxpc3RDb250ZW50KGUsdCl7bGV0IGE9ZS5zcGxpdChgCmApLmZpbHRlcihuPT5uLnRyaW0oKSk7aWYoYS5sZW5ndGg9PT0wKXJldHVybiIiO2xldCByPXQ/Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtyZXR1cm5gPCR7cn0+JHthLm1hcChuPT5gPGxpPiR7bn08L2xpPmApLmpvaW4oIiIpfTwvJHtyfT5gfXN0YXRpYyByZW5kZXJCbG9jayhlLHQsYSl7aWYoZS50eXBlPT09ImRpdmlkZXIiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBkaXZpZGVyIgogICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICA+CiAgICAgICAgICA8aHI+CiAgICAgICAgPC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09Imxpc3QiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBsaXN0ICR7dD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICAgIEBmb2N1cz0iJHthLm9uRm9jdXN9IgogICAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke2Eub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobil9fSIKICAgICAgICAgIC5pbm5lckhUTUw9IiR7dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSl9IgogICAgICAgID48L2Rpdj4KICAgICAgYDtpZihlLnR5cGU9PT0iY29kZSIpe2xldCBuPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwicGxhaW4gdGV4dCI7cmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1sYW5ndWFnZSI+JHtufTwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgJHtlLnR5cGV9ICR7dD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICAgICAgQGtleWRvd249IiR7YS5vbktleURvd259IgogICAgICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHthLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgICBAbW91c2V1cD0iJHtvPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobyl9fSIKICAgICAgICAgICAgLnRleHRDb250ZW50PSIke2UuY29udGVudHx8IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke3Q/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIEBpbnB1dD0iJHthLm9uSW5wdXR9IgogICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICBAYmx1cj0iJHthLm9uQmx1cn0iCiAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgIEBtb3VzZXVwPSIke249Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLGEub25Nb3VzZVVwJiZhLm9uTW91c2VVcChuKX19IgogICAgICAgIC5pbm5lckhUTUw9IiR7ZS5jb250ZW50fHwiIn0iCiAgICAgID48L2Rpdj4KICAgIGB9c3RhdGljIHNldEN1cnNvclRvRW5kKGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighdClyZXR1cm47bGV0IGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihlLmNoaWxkTm9kZXMubGVuZ3RoPT09MCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpO2UuYXBwZW5kQ2hpbGQociksYS5zZXRTdGFydChyLDEpLGEuY29sbGFwc2UoITApfWVsc2V7bGV0IHI9dGhpcy5nZXRMYXN0Tm9kZShlKTtyLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/YS5zZXRTdGFydChyLHIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCk6YS5zZXRTdGFydEFmdGVyKHIpLGEuY29sbGFwc2UoITApfXQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShhKSxlLnRleHRDb250ZW50PT09Ilx1MjAwQiImJihlLnRleHRDb250ZW50PSIiKX1zdGF0aWMgc2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXQpcmV0dXJuO2xldCBhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApYS5zZXRTdGFydChlLDApLGEuY29sbGFwc2UoITApO2Vsc2V7bGV0IHI9dGhpcy5nZXRGaXJzdE5vZGUoZSk7ci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2Euc2V0U3RhcnQociwwKTphLnNldFN0YXJ0QmVmb3JlKHIpLGEuY29sbGFwc2UoITApfXQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShhKX1zdGF0aWMgZ2V0TGFzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IHQ9ZS5jaGlsZE5vZGVzW2UuY2hpbGROb2Rlcy5sZW5ndGgtMV07cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERXx8dC5jaGlsZE5vZGVzLmxlbmd0aD09PTA/dDp0aGlzLmdldExhc3ROb2RlKHQpfXN0YXRpYyBnZXRGaXJzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IHQ9ZS5jaGlsZE5vZGVzWzBdO3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHQuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3Q6dGhpcy5nZXRGaXJzdE5vZGUodCl9c3RhdGljIGZvY3VzTGlzdEl0ZW0oZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKHQpe3QuZm9jdXMoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLHI9d2luZG93LmdldFNlbGVjdGlvbigpO2Euc2VsZWN0Tm9kZUNvbnRlbnRzKHQpLGEuY29sbGFwc2UoITApLHIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShhKX19fX0pO3ZhciBFWixjdHQ9ZygoKT0+e01sKCk7Z3YoKTtCOCgpO2l1KCk7RVo9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyIpfWNvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIsdD0iIixhKXtyZXR1cm57aWQ6Y3IuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6dCwuLi5hJiZ7bWV0YWRhdGE6YX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSx0LGE9ITApe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrcyxuPXIuZmluZEluZGV4KG89Pm8uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLnIuc2xpY2UoMCxuKzEpLHQsLi4uci5zbGljZShuKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbz10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihvKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQodCk7by5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxhJiZ0LnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayh0LmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcih0PT50LmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IHQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7dCYmdC5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQodD0+dC5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgodD0+dC5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSx0PSJzdGFydCIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKGEpe2xldCByPWEucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7ciYmKGF3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSksci5mb2N1c1dpdGhDdXJzb3IodCkpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSx0KXtsZXQgYT10aGlzLmZpbmRCbG9jayhlKTthJiYoYS5jb250ZW50PXQsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSx0LGEpe2xldCByPXRoaXMuZmluZEJsb2NrKGUpO3ImJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxyLnR5cGU9dCxyLmNvbnRlbnQ9IiIsYSYmKHIubWV0YWRhdGE9YSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLHQpe2xldCBhPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHI9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKHI9PT0tMXx8dDwwfHx0Pj1hLmxlbmd0aClyZXR1cm47bGV0W25dPWEuc3BsaWNlKHIsMSk7YS5zcGxpY2UodCwwLG4pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1hLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ+MD90aGlzLmNvbXBvbmVudC5ibG9ja3NbdC0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1t0KzFdOm51bGx9fX0pO3ZhciBwaSxZbD1nKCgpPT57cGk9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZUJsb2NrSGFuZGxlciIpfXNldHVwKGUsdCxhKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciBJcyxPMGE9ZygoKT0+e0lzPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJsb2NrUmVnaXN0cnkiKX1zdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSx0KXt0aGlzLmhhbmRsZXJzLnNldChlLHQpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciBGMGE9ZygoKT0+e30pO3ZhciBQWixCMGE9ZygoKT0+e1lsKCk7cGUoKTtpdSgpO0RkKCk7UFo9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIiKX10eXBlPSJwYXJhZ3JhcGgiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcGFyYWdyYXBoJHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcil7Y29uc29sZS5lcnJvcigiUGFyYWdyYXBoQmxvY2tIYW5kbGVyLnNldHVwOiBObyBwYXJhZ3JhcGggYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn10LmNvbnRlbnQmJiFyLmlubmVySFRNTCYmKHIuaW5uZXJIVE1MPXQuY29udGVudCksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25LZXlEb3duKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnthLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2Eub25Db21wb3NpdGlvblN0YXJ0KCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2Eub25Db21wb3NpdGlvbkVuZCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbk1vdXNlVXA/LihuKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxyLHQpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHQsYSl7bGV0IHI9aSgoKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9by50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBwPXQuZ2V0Um9vdE5vZGUoKS5ob3N0LHU9cD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsYz1wPy5zaGFkb3dSb290LGI9W107dSYmYi5wdXNoKHUpLGMmJmIucHVzaChjKTtsZXQgdj1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLmIpO2lmKCF2KXJldHVybjtsZXQgeD1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuc3RhcnRDb250YWluZXIpLG09U3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCx2LmVuZENvbnRhaW5lcik7aWYoeHx8bSl7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IGY9U3QuY3JlYXRlUmFuZ2VGcm9tSW5mbyh2KSx5PWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDphLmlkLHJhbmdlOmYscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1yO2xldCBuPWUuY2xvc2VzdCgiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBQYXJhZ3JhcGggc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5wYXJhZ3JhcGggewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIn1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiZDby5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7YSYmQ28uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiZTdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoIVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIHE4LEgwYT1nKCgpPT57WWwoKTtwZSgpO2l1KCk7RGQoKTtxOD1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIkhlYWRpbmdCbG9ja0hhbmRsZXIiKX10eXBlO2xldmVsO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLmxldmVsPXBhcnNlSW50KGUuc3BsaXQoIi0iKVsxXSl9cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgaGVhZGluZy0ke3RoaXMubGV2ZWx9JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcil7Y29uc29sZS5lcnJvcigiSGVhZGluZ0Jsb2NrSGFuZGxlci5zZXR1cDogTm8gaGVhZGluZyBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PVN0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suaGVhZGluZy0xIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMjRweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW46IDE2cHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UgMTpyZXR1cm4iSGVhZGluZyAxIjtjYXNlIDI6cmV0dXJuIkhlYWRpbmcgMiI7Y2FzZSAzOnJldHVybiJIZWFkaW5nIDMiO2RlZmF1bHQ6cmV0dXJuIkhlYWRpbmcifX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiZDby5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7YSYmQ28uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiZTdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoIVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIElaLHEwYT1nKCgpPT57WWwoKTtwZSgpO2l1KCk7RGQoKTtJWj1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIlF1b3RlQmxvY2tIYW5kbGVyIil9dHlwZT0icXVvdGUiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcXVvdGUke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3J9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIlF1b3RlQmxvY2tIYW5kbGVyLnNldHVwOiBObyBxdW90ZSBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PVN0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtsZXQgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cjtyLmlubmVySFRNTD10LG4mJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZDby5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZDby5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlLGEpOnR5cGVvZiB0PT0ibnVtYmVyIiYmU3Quc2V0Q3Vyc29yUG9zaXRpb24ocix0KX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz10Py5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9dD8uc2hhZG93Um9vdCxwPVtdO28mJnAucHVzaChvKSxsJiZwLnB1c2gobCk7bGV0IGQ9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1pZighU3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUsdCk7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksYj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Muc2V0U3RhcnQoYSwwKSxjLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGIuc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCB2PWMuY2xvbmVDb250ZW50cygpLHg9Yi5jbG9uZUNvbnRlbnRzKCksbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTttLmFwcGVuZENoaWxkKHYpO2xldCBmPW0uaW5uZXJIVE1MO20uaW5uZXJIVE1MPSIiLG0uYXBwZW5kQ2hpbGQoeCk7bGV0IHk9bS5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpmLGFmdGVyOnl9fX19KTtmdW5jdGlvbiBvbihzKXt0aGlzLmNvbnRlbnQ9c312YXIgZHR0LGowYT1nKCgpPT57aShvbiwiT3JkZXJlZE1hcCIpLG9uLnByb3RvdHlwZT17Y29uc3RydWN0b3I6b24sZmluZDppKGZ1bmN0aW9uKHMpe2Zvcih2YXIgZT0wO2U8dGhpcy5jb250ZW50Lmxlbmd0aDtlKz0yKWlmKHRoaXMuY29udGVudFtlXT09PXMpcmV0dXJuIGU7cmV0dXJuLTF9LCJmaW5kIiksZ2V0OmkoZnVuY3Rpb24ocyl7dmFyIGU9dGhpcy5maW5kKHMpO3JldHVybiBlPT0tMT92b2lkIDA6dGhpcy5jb250ZW50W2UrMV19LCJnZXQiKSx1cGRhdGU6aShmdW5jdGlvbihzLGUsdCl7dmFyIGE9dCYmdCE9cz90aGlzLnJlbW92ZSh0KTp0aGlzLHI9YS5maW5kKHMpLG49YS5jb250ZW50LnNsaWNlKCk7cmV0dXJuIHI9PS0xP24ucHVzaCh0fHxzLGUpOihuW3IrMV09ZSx0JiYobltyXT10KSksbmV3IG9uKG4pfSwidXBkYXRlIikscmVtb3ZlOmkoZnVuY3Rpb24ocyl7dmFyIGU9dGhpcy5maW5kKHMpO2lmKGU9PS0xKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuY29udGVudC5zbGljZSgpO3JldHVybiB0LnNwbGljZShlLDIpLG5ldyBvbih0KX0sInJlbW92ZSIpLGFkZFRvU3RhcnQ6aShmdW5jdGlvbihzLGUpe3JldHVybiBuZXcgb24oW3MsZV0uY29uY2F0KHRoaXMucmVtb3ZlKHMpLmNvbnRlbnQpKX0sImFkZFRvU3RhcnQiKSxhZGRUb0VuZDppKGZ1bmN0aW9uKHMsZSl7dmFyIHQ9dGhpcy5yZW1vdmUocykuY29udGVudC5zbGljZSgpO3JldHVybiB0LnB1c2gocyxlKSxuZXcgb24odCl9LCJhZGRUb0VuZCIpLGFkZEJlZm9yZTppKGZ1bmN0aW9uKHMsZSx0KXt2YXIgYT10aGlzLnJlbW92ZShlKSxyPWEuY29udGVudC5zbGljZSgpLG49YS5maW5kKHMpO3JldHVybiByLnNwbGljZShuPT0tMT9yLmxlbmd0aDpuLDAsZSx0KSxuZXcgb24ocil9LCJhZGRCZWZvcmUiKSxmb3JFYWNoOmkoZnVuY3Rpb24ocyl7Zm9yKHZhciBlPTA7ZTx0aGlzLmNvbnRlbnQubGVuZ3RoO2UrPTIpcyh0aGlzLmNvbnRlbnRbZV0sdGhpcy5jb250ZW50W2UrMV0pfSwiZm9yRWFjaCIpLHByZXBlbmQ6aShmdW5jdGlvbihzKXtyZXR1cm4gcz1vbi5mcm9tKHMpLHMuc2l6ZT9uZXcgb24ocy5jb250ZW50LmNvbmNhdCh0aGlzLnN1YnRyYWN0KHMpLmNvbnRlbnQpKTp0aGlzfSwicHJlcGVuZCIpLGFwcGVuZDppKGZ1bmN0aW9uKHMpe3JldHVybiBzPW9uLmZyb20ocykscy5zaXplP25ldyBvbih0aGlzLnN1YnRyYWN0KHMpLmNvbnRlbnQuY29uY2F0KHMuY29udGVudCkpOnRoaXN9LCJhcHBlbmQiKSxzdWJ0cmFjdDppKGZ1bmN0aW9uKHMpe3ZhciBlPXRoaXM7cz1vbi5mcm9tKHMpO2Zvcih2YXIgdD0wO3Q8cy5jb250ZW50Lmxlbmd0aDt0Kz0yKWU9ZS5yZW1vdmUocy5jb250ZW50W3RdKTtyZXR1cm4gZX0sInN1YnRyYWN0IiksdG9PYmplY3Q6aShmdW5jdGlvbigpe3ZhciBzPXt9O3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSx0KXtzW2VdPXR9KSxzfSwidG9PYmplY3QiKSxnZXQgc2l6ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoPj4xfX0sb24uZnJvbT1mdW5jdGlvbihzKXtpZihzIGluc3RhbmNlb2Ygb24pcmV0dXJuIHM7dmFyIGU9W107aWYocylmb3IodmFyIHQgaW4gcyllLnB1c2godCxzW3RdKTtyZXR1cm4gbmV3IG9uKGUpfTtkdHQ9b259KTtmdW5jdGlvbiBWMGEocyxlLHQpe2ZvcihsZXQgYT0wOzthKyspe2lmKGE9PXMuY2hpbGRDb3VudHx8YT09ZS5jaGlsZENvdW50KXJldHVybiBzLmNoaWxkQ291bnQ9PWUuY2hpbGRDb3VudD9udWxsOnQ7bGV0IHI9cy5jaGlsZChhKSxuPWUuY2hpbGQoYSk7aWYocj09bil7dCs9ci5ub2RlU2l6ZTtjb250aW51ZX1pZighci5zYW1lTWFya3VwKG4pKXJldHVybiB0O2lmKHIuaXNUZXh0JiZyLnRleHQhPW4udGV4dCl7Zm9yKGxldCBvPTA7ci50ZXh0W29dPT1uLnRleHRbb107bysrKXQrKztyZXR1cm4gdH1pZihyLmNvbnRlbnQuc2l6ZXx8bi5jb250ZW50LnNpemUpe2xldCBvPVYwYShyLmNvbnRlbnQsbi5jb250ZW50LHQrMSk7aWYobyE9bnVsbClyZXR1cm4gb310Kz1yLm5vZGVTaXplfX1mdW5jdGlvbiBVMGEocyxlLHQsYSl7Zm9yKGxldCByPXMuY2hpbGRDb3VudCxuPWUuY2hpbGRDb3VudDs7KXtpZihyPT0wfHxuPT0wKXJldHVybiByPT1uP251bGw6e2E6dCxiOmF9O2xldCBvPXMuY2hpbGQoLS1yKSxsPWUuY2hpbGQoLS1uKSxwPW8ubm9kZVNpemU7aWYobz09bCl7dC09cCxhLT1wO2NvbnRpbnVlfWlmKCFvLnNhbWVNYXJrdXAobCkpcmV0dXJue2E6dCxiOmF9O2lmKG8uaXNUZXh0JiZvLnRleHQhPWwudGV4dCl7bGV0IGQ9MCx1PU1hdGgubWluKG8udGV4dC5sZW5ndGgsbC50ZXh0Lmxlbmd0aCk7Zm9yKDtkPHUmJm8udGV4dFtvLnRleHQubGVuZ3RoLWQtMV09PWwudGV4dFtsLnRleHQubGVuZ3RoLWQtMV07KWQrKyx0LS0sYS0tO3JldHVybnthOnQsYjphfX1pZihvLmNvbnRlbnQuc2l6ZXx8bC5jb250ZW50LnNpemUpe2xldCBkPVUwYShvLmNvbnRlbnQsbC5jb250ZW50LHQtMSxhLTEpO2lmKGQpcmV0dXJuIGR9dC09cCxhLT1wfX1mdW5jdGlvbiBSbmUocyxlKXtyZXR1cm4gdXR0LmluZGV4PXMsdXR0Lm9mZnNldD1lLHV0dH1mdW5jdGlvbiBPbmUocyxlKXtpZihzPT09ZSlyZXR1cm4hMDtpZighKHMmJnR5cGVvZiBzPT0ib2JqZWN0Iil8fCEoZSYmdHlwZW9mIGU9PSJvYmplY3QiKSlyZXR1cm4hMTtsZXQgdD1BcnJheS5pc0FycmF5KHMpO2lmKEFycmF5LmlzQXJyYXkoZSkhPXQpcmV0dXJuITE7aWYodCl7aWYocy5sZW5ndGghPWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSsrKWlmKCFPbmUoc1thXSxlW2FdKSlyZXR1cm4hMX1lbHNle2ZvcihsZXQgYSBpbiBzKWlmKCEoYSBpbiBlKXx8IU9uZShzW2FdLGVbYV0pKXJldHVybiExO2ZvcihsZXQgYSBpbiBlKWlmKCEoYSBpbiBzKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBXMGEocyxlLHQpe2xldHtpbmRleDphLG9mZnNldDpyfT1zLmZpbmRJbmRleChlKSxuPXMubWF5YmVDaGlsZChhKSx7aW5kZXg6byxvZmZzZXQ6bH09cy5maW5kSW5kZXgodCk7aWYocj09ZXx8bi5pc1RleHQpe2lmKGwhPXQmJiFzLmNoaWxkKG8pLmlzVGV4dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVtb3Zpbmcgbm9uLWZsYXQgcmFuZ2UiKTtyZXR1cm4gcy5jdXQoMCxlKS5hcHBlbmQocy5jdXQodCkpfWlmKGEhPW8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlJlbW92aW5nIG5vbi1mbGF0IHJhbmdlIik7cmV0dXJuIHMucmVwbGFjZUNoaWxkKGEsbi5jb3B5KFcwYShuLmNvbnRlbnQsZS1yLTEsdC1yLTEpKSl9ZnVuY3Rpb24gRzBhKHMsZSx0LGEpe2xldHtpbmRleDpyLG9mZnNldDpufT1zLmZpbmRJbmRleChlKSxvPXMubWF5YmVDaGlsZChyKTtpZihuPT1lfHxvLmlzVGV4dClyZXR1cm4gYSYmIWEuY2FuUmVwbGFjZShyLHIsdCk/bnVsbDpzLmN1dCgwLGUpLmFwcGVuZCh0KS5hcHBlbmQocy5jdXQoZSkpO2xldCBsPUcwYShvLmNvbnRlbnQsZS1uLTEsdCxvKTtyZXR1cm4gbCYmcy5yZXBsYWNlQ2hpbGQocixvLmNvcHkobCkpfWZ1bmN0aW9uIGpXYShzLGUsdCl7aWYodC5vcGVuU3RhcnQ+cy5kZXB0aCl0aHJvdyBuZXcga2goIkluc2VydGVkIGNvbnRlbnQgZGVlcGVyIHRoYW4gaW5zZXJ0aW9uIHBvc2l0aW9uIik7aWYocy5kZXB0aC10Lm9wZW5TdGFydCE9ZS5kZXB0aC10Lm9wZW5FbmQpdGhyb3cgbmV3IGtoKCJJbmNvbnNpc3RlbnQgb3BlbiBkZXB0aHMiKTtyZXR1cm4gSzBhKHMsZSx0LDApfWZ1bmN0aW9uIEswYShzLGUsdCxhKXtsZXQgcj1zLmluZGV4KGEpLG49cy5ub2RlKGEpO2lmKHI9PWUuaW5kZXgoYSkmJmE8cy5kZXB0aC10Lm9wZW5TdGFydCl7bGV0IG89SzBhKHMsZSx0LGErMSk7cmV0dXJuIG4uY29weShuLmNvbnRlbnQucmVwbGFjZUNoaWxkKHIsbykpfWVsc2UgaWYodC5jb250ZW50LnNpemUpaWYoIXQub3BlblN0YXJ0JiYhdC5vcGVuRW5kJiZzLmRlcHRoPT1hJiZlLmRlcHRoPT1hKXtsZXQgbz1zLnBhcmVudCxsPW8uY29udGVudDtyZXR1cm4gVjgobyxsLmN1dCgwLHMucGFyZW50T2Zmc2V0KS5hcHBlbmQodC5jb250ZW50KS5hcHBlbmQobC5jdXQoZS5wYXJlbnRPZmZzZXQpKSl9ZWxzZXtsZXR7c3RhcnQ6byxlbmQ6bH09VldhKHQscyk7cmV0dXJuIFY4KG4sWjBhKHMsbyxsLGUsYSkpfWVsc2UgcmV0dXJuIFY4KG4sRm5lKHMsZSxhKSl9ZnVuY3Rpb24gWTBhKHMsZSl7aWYoIWUudHlwZS5jb21wYXRpYmxlQ29udGVudChzLnR5cGUpKXRocm93IG5ldyBraCgiQ2Fubm90IGpvaW4gIitlLnR5cGUubmFtZSsiIG9udG8gIitzLnR5cGUubmFtZSl9ZnVuY3Rpb24gcHR0KHMsZSx0KXtsZXQgYT1zLm5vZGUodCk7cmV0dXJuIFkwYShhLGUubm9kZSh0KSksYX1mdW5jdGlvbiBqOChzLGUpe2xldCB0PWUubGVuZ3RoLTE7dD49MCYmcy5pc1RleHQmJnMuc2FtZU1hcmt1cChlW3RdKT9lW3RdPXMud2l0aFRleHQoZVt0XS50ZXh0K3MudGV4dCk6ZS5wdXNoKHMpfWZ1bmN0aW9uIEFaKHMsZSx0LGEpe2xldCByPShlfHxzKS5ub2RlKHQpLG49MCxvPWU/ZS5pbmRleCh0KTpyLmNoaWxkQ291bnQ7cyYmKG49cy5pbmRleCh0KSxzLmRlcHRoPnQ/bisrOnMudGV4dE9mZnNldCYmKGo4KHMubm9kZUFmdGVyLGEpLG4rKykpO2ZvcihsZXQgbD1uO2w8bztsKyspajgoci5jaGlsZChsKSxhKTtlJiZlLmRlcHRoPT10JiZlLnRleHRPZmZzZXQmJmo4KGUubm9kZUJlZm9yZSxhKX1mdW5jdGlvbiBWOChzLGUpe3JldHVybiBzLnR5cGUuY2hlY2tDb250ZW50KGUpLHMuY29weShlKX1mdW5jdGlvbiBaMGEocyxlLHQsYSxyKXtsZXQgbj1zLmRlcHRoPnImJnB0dChzLGUscisxKSxvPWEuZGVwdGg+ciYmcHR0KHQsYSxyKzEpLGw9W107cmV0dXJuIEFaKG51bGwscyxyLGwpLG4mJm8mJmUuaW5kZXgocik9PXQuaW5kZXgocik/KFkwYShuLG8pLGo4KFY4KG4sWjBhKHMsZSx0LGEscisxKSksbCkpOihuJiZqOChWOChuLEZuZShzLGUscisxKSksbCksQVooZSx0LHIsbCksbyYmajgoVjgobyxGbmUodCxhLHIrMSkpLGwpKSxBWihhLG51bGwscixsKSxuZXcgcnQobCl9ZnVuY3Rpb24gRm5lKHMsZSx0KXtsZXQgYT1bXTtpZihBWihudWxsLHMsdCxhKSxzLmRlcHRoPnQpe2xldCByPXB0dChzLGUsdCsxKTtqOChWOChyLEZuZShzLGUsdCsxKSksYSl9cmV0dXJuIEFaKGUsbnVsbCx0LGEpLG5ldyBydChhKX1mdW5jdGlvbiBWV2EocyxlKXtsZXQgdD1lLmRlcHRoLXMub3BlblN0YXJ0LHI9ZS5ub2RlKHQpLmNvcHkocy5jb250ZW50KTtmb3IobGV0IG49dC0xO24+PTA7bi0tKXI9ZS5ub2RlKG4pLmNvcHkocnQuZnJvbShyKSk7cmV0dXJue3N0YXJ0OnIucmVzb2x2ZU5vQ2FjaGUocy5vcGVuU3RhcnQrdCksZW5kOnIucmVzb2x2ZU5vQ2FjaGUoci5jb250ZW50LnNpemUtcy5vcGVuRW5kLXQpfX1mdW5jdGlvbiBRMGEocyxlKXtmb3IobGV0IHQ9cy5sZW5ndGgtMTt0Pj0wO3QtLSllPXNbdF0udHlwZS5uYW1lKyIoIitlKyIpIjtyZXR1cm4gZX1mdW5jdGlvbiBKMGEocyl7bGV0IGU9W107ZG8gZS5wdXNoKEdXYShzKSk7d2hpbGUocy5lYXQoInwiKSk7cmV0dXJuIGUubGVuZ3RoPT0xP2VbMF06e3R5cGU6ImNob2ljZSIsZXhwcnM6ZX19ZnVuY3Rpb24gR1dhKHMpe2xldCBlPVtdO2RvIGUucHVzaChLV2EocykpO3doaWxlKHMubmV4dCYmcy5uZXh0IT0iKSImJnMubmV4dCE9InwiKTtyZXR1cm4gZS5sZW5ndGg9PTE/ZVswXTp7dHlwZToic2VxIixleHByczplfX1mdW5jdGlvbiBLV2Eocyl7bGV0IGU9WFdhKHMpO2Zvcig7OylpZihzLmVhdCgiKyIpKWU9e3R5cGU6InBsdXMiLGV4cHI6ZX07ZWxzZSBpZihzLmVhdCgiKiIpKWU9e3R5cGU6InN0YXIiLGV4cHI6ZX07ZWxzZSBpZihzLmVhdCgiPyIpKWU9e3R5cGU6Im9wdCIsZXhwcjplfTtlbHNlIGlmKHMuZWF0KCJ7IikpZT1ZV2EocyxlKTtlbHNlIGJyZWFrO3JldHVybiBlfWZ1bmN0aW9uIGV1YShzKXsvXEQvLnRlc3Qocy5uZXh0KSYmcy5lcnIoIkV4cGVjdGVkIG51bWJlciwgZ290ICciK3MubmV4dCsiJyIpO2xldCBlPU51bWJlcihzLm5leHQpO3JldHVybiBzLnBvcysrLGV9ZnVuY3Rpb24gWVdhKHMsZSl7bGV0IHQ9ZXVhKHMpLGE9dDtyZXR1cm4gcy5lYXQoIiwiKSYmKHMubmV4dCE9In0iP2E9ZXVhKHMpOmE9LTEpLHMuZWF0KCJ9Iil8fHMuZXJyKCJVbmNsb3NlZCBicmFjZWQgcmFuZ2UiKSx7dHlwZToicmFuZ2UiLG1pbjp0LG1heDphLGV4cHI6ZX19ZnVuY3Rpb24gWldhKHMsZSl7bGV0IHQ9cy5ub2RlVHlwZXMsYT10W2VdO2lmKGEpcmV0dXJuW2FdO2xldCByPVtdO2ZvcihsZXQgbiBpbiB0KXtsZXQgbz10W25dO28uaXNJbkdyb3VwKGUpJiZyLnB1c2gobyl9cmV0dXJuIHIubGVuZ3RoPT0wJiZzLmVycigiTm8gbm9kZSB0eXBlIG9yIGdyb3VwICciK2UrIicgZm91bmQiKSxyfWZ1bmN0aW9uIFhXYShzKXtpZihzLmVhdCgiKCIpKXtsZXQgZT1KMGEocyk7cmV0dXJuIHMuZWF0KCIpIil8fHMuZXJyKCJNaXNzaW5nIGNsb3NpbmcgcGFyZW4iKSxlfWVsc2UgaWYoL1xXLy50ZXN0KHMubmV4dCkpcy5lcnIoIlVuZXhwZWN0ZWQgdG9rZW4gJyIrcy5uZXh0KyInIik7ZWxzZXtsZXQgZT1aV2EocyxzLm5leHQpLm1hcCh0PT4ocy5pbmxpbmU9PW51bGw/cy5pbmxpbmU9dC5pc0lubGluZTpzLmlubGluZSE9dC5pc0lubGluZSYmcy5lcnIoIk1peGluZyBpbmxpbmUgYW5kIGJsb2NrIGNvbnRlbnQiKSx7dHlwZToibmFtZSIsdmFsdWU6dH0pKTtyZXR1cm4gcy5wb3MrKyxlLmxlbmd0aD09MT9lWzBdOnt0eXBlOiJjaG9pY2UiLGV4cHJzOmV9fX1mdW5jdGlvbiBRV2Eocyl7bGV0IGU9W1tdXTtyZXR1cm4gcihuKHMsMCksdCgpKSxlO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZS5wdXNoKFtdKS0xfWkodCwibm9kZSIpO2Z1bmN0aW9uIGEobyxsLHApe2xldCBkPXt0ZXJtOnAsdG86bH07cmV0dXJuIGVbb10ucHVzaChkKSxkfWkoYSwiZWRnZSIpO2Z1bmN0aW9uIHIobyxsKXtvLmZvckVhY2gocD0+cC50bz1sKX1pKHIsImNvbm5lY3QiKTtmdW5jdGlvbiBuKG8sbCl7aWYoby50eXBlPT0iY2hvaWNlIilyZXR1cm4gby5leHBycy5yZWR1Y2UoKHAsZCk9PnAuY29uY2F0KG4oZCxsKSksW10pO2lmKG8udHlwZT09InNlcSIpZm9yKGxldCBwPTA7O3ArKyl7bGV0IGQ9bihvLmV4cHJzW3BdLGwpO2lmKHA9PW8uZXhwcnMubGVuZ3RoLTEpcmV0dXJuIGQ7cihkLGw9dCgpKX1lbHNlIGlmKG8udHlwZT09InN0YXIiKXtsZXQgcD10KCk7cmV0dXJuIGEobCxwKSxyKG4oby5leHByLHApLHApLFthKHApXX1lbHNlIGlmKG8udHlwZT09InBsdXMiKXtsZXQgcD10KCk7cmV0dXJuIHIobihvLmV4cHIsbCkscCkscihuKG8uZXhwcixwKSxwKSxbYShwKV19ZWxzZXtpZihvLnR5cGU9PSJvcHQiKXJldHVyblthKGwpXS5jb25jYXQobihvLmV4cHIsbCkpO2lmKG8udHlwZT09InJhbmdlIil7bGV0IHA9bDtmb3IobGV0IGQ9MDtkPG8ubWluO2QrKyl7bGV0IHU9dCgpO3IobihvLmV4cHIscCksdSkscD11fWlmKG8ubWF4PT0tMSlyKG4oby5leHByLHApLHApO2Vsc2UgZm9yKGxldCBkPW8ubWluO2Q8by5tYXg7ZCsrKXtsZXQgdT10KCk7YShwLHUpLHIobihvLmV4cHIscCksdSkscD11fXJldHVyblthKHApXX1lbHNle2lmKG8udHlwZT09Im5hbWUiKXJldHVyblthKGwsdm9pZCAwLG8udmFsdWUpXTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZXhwciB0eXBlIil9fX1pKG4sImNvbXBpbGUiKX1mdW5jdGlvbiB0dWEocyxlKXtyZXR1cm4gZS1zfWZ1bmN0aW9uIGF1YShzLGUpe2xldCB0PVtdO3JldHVybiBhKGUpLHQuc29ydCh0dWEpO2Z1bmN0aW9uIGEocil7bGV0IG49c1tyXTtpZihuLmxlbmd0aD09MSYmIW5bMF0udGVybSlyZXR1cm4gYShuWzBdLnRvKTt0LnB1c2gocik7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspe2xldHt0ZXJtOmwsdG86cH09bltvXTshbCYmdC5pbmRleE9mKHApPT0tMSYmYShwKX19aShhLCJzY2FuIil9ZnVuY3Rpb24gSldhKHMpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHQoYXVhKHMsMCkpO2Z1bmN0aW9uIHQoYSl7bGV0IHI9W107YS5mb3JFYWNoKG89PntzW29dLmZvckVhY2goKHt0ZXJtOmwsdG86cH0pPT57aWYoIWwpcmV0dXJuO2xldCBkO2ZvcihsZXQgdT0wO3U8ci5sZW5ndGg7dSsrKXJbdV1bMF09PWwmJihkPXJbdV1bMV0pO2F1YShzLHApLmZvckVhY2godT0+e2R8fHIucHVzaChbbCxkPVtdXSksZC5pbmRleE9mKHUpPT0tMSYmZC5wdXNoKHUpfSl9KX0pO2xldCBuPWVbYS5qb2luKCIsIildPW5ldyB3aChhLmluZGV4T2Yocy5sZW5ndGgtMSk+LTEpO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXQgbD1yW29dWzFdLnNvcnQodHVhKTtuLm5leHQucHVzaCh7dHlwZTpyW29dWzBdLG5leHQ6ZVtsLmpvaW4oIiwiKV18fHQobCl9KX1yZXR1cm4gbn19ZnVuY3Rpb24gZUdhKHMsZSl7Zm9yKGxldCB0PTAsYT1bc107dDxhLmxlbmd0aDt0Kyspe2xldCByPWFbdF0sbj0hci52YWxpZEVuZCxvPVtdO2ZvcihsZXQgbD0wO2w8ci5uZXh0Lmxlbmd0aDtsKyspe2xldHt0eXBlOnAsbmV4dDpkfT1yLm5leHRbbF07by5wdXNoKHAubmFtZSksbiYmIShwLmlzVGV4dHx8cC5oYXNSZXF1aXJlZEF0dHJzKCkpJiYobj0hMSksYS5pbmRleE9mKGQpPT0tMSYmYS5wdXNoKGQpfW4mJmUuZXJyKCJPbmx5IG5vbi1nZW5lcmF0YWJsZSBub2RlcyAoIitvLmpvaW4oIiwgIikrIikgaW4gYSByZXF1aXJlZCBwb3NpdGlvbiAoc2VlIGh0dHBzOi8vcHJvc2VtaXJyb3IubmV0L2RvY3MvZ3VpZGUvI2dlbmVyYXRhYmxlKSIpfX1mdW5jdGlvbiBzdWEocyl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHQgaW4gcyl7bGV0IGE9c1t0XTtpZighYS5oYXNEZWZhdWx0KXJldHVybiBudWxsO2VbdF09YS5kZWZhdWx0fXJldHVybiBlfWZ1bmN0aW9uIGl1YShzLGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBhIGluIHMpe2xldCByPWUmJmVbYV07aWYocj09PXZvaWQgMCl7bGV0IG49c1thXTtpZihuLmhhc0RlZmF1bHQpcj1uLmRlZmF1bHQ7ZWxzZSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm8gdmFsdWUgc3VwcGxpZWQgZm9yIGF0dHJpYnV0ZSAiK2EpfXRbYV09cn1yZXR1cm4gdH1mdW5jdGlvbiBydWEocyxlLHQsYSl7Zm9yKGxldCByIGluIGUpaWYoIShyIGluIHMpKXRocm93IG5ldyBSYW5nZUVycm9yKGBVbnN1cHBvcnRlZCBhdHRyaWJ1dGUgJHtyfSBmb3IgJHt0fSBvZiB0eXBlICR7cn1gKTtmb3IobGV0IHIgaW4gcyl7bGV0IG49c1tyXTtuLnZhbGlkYXRlJiZuLnZhbGlkYXRlKGVbcl0pfX1mdW5jdGlvbiBvdWEocyxlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGUpZm9yKGxldCBhIGluIGUpdFthXT1uZXcgZ3R0KHMsYSxlW2FdKTtyZXR1cm4gdH1mdW5jdGlvbiB0R2EocyxlLHQpe2xldCBhPXQuc3BsaXQoInwiKTtyZXR1cm4gcj0+e2xldCBuPXI9PT1udWxsPyJudWxsIjp0eXBlb2YgcjtpZihhLmluZGV4T2Yobik8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgRXhwZWN0ZWQgdmFsdWUgb2YgdHlwZSAke2F9IGZvciBhdHRyaWJ1dGUgJHtlfSBvbiB0eXBlICR7c30sIGdvdCAke259YCl9fWZ1bmN0aW9uIG51YShzLGUpe2xldCB0PVtdO2ZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtsZXQgcj1lW2FdLG49cy5tYXJrc1tyXSxvPW47aWYobil0LnB1c2gobik7ZWxzZSBmb3IobGV0IGwgaW4gcy5tYXJrcyl7bGV0IHA9cy5tYXJrc1tsXTsocj09Il8ifHxwLnNwZWMuZ3JvdXAmJnAuc3BlYy5ncm91cC5zcGxpdCgiICIpLmluZGV4T2Yocik+LTEpJiZ0LnB1c2gobz1wKX1pZighbyl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlVua25vd24gbWFyayB0eXBlOiAnIitlW2FdKyInIil9cmV0dXJuIHR9ZnVuY3Rpb24gYUdhKHMpe3JldHVybiBzLnRhZyE9bnVsbH1mdW5jdGlvbiBzR2Eocyl7cmV0dXJuIHMuc3R5bGUhPW51bGx9ZnVuY3Rpb24gZHVhKHMsZSx0KXtyZXR1cm4gZSE9bnVsbD8oZT9PWjowKXwoZT09PSJmdWxsIj9idHQ6MCk6cyYmcy53aGl0ZXNwYWNlPT0icHJlIj9PWnxidHQ6dCZ+Rlp9ZnVuY3Rpb24gckdhKHMpe2ZvcihsZXQgZT1zLmZpcnN0Q2hpbGQsdD1udWxsO2U7ZT1lLm5leHRTaWJsaW5nKXtsZXQgYT1lLm5vZGVUeXBlPT0xP2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKTpudWxsO2EmJmN1YS5oYXNPd25Qcm9wZXJ0eShhKSYmdD8odC5hcHBlbmRDaGlsZChlKSxlPXQpOmE9PSJsaSI/dD1lOmEmJih0PW51bGwpfX1mdW5jdGlvbiBvR2EocyxlKXtyZXR1cm4ocy5tYXRjaGVzfHxzLm1zTWF0Y2hlc1NlbGVjdG9yfHxzLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8cy5tb3pNYXRjaGVzU2VsZWN0b3IpLmNhbGwocyxlKX1mdW5jdGlvbiB1dWEocyl7bGV0IGU9e307Zm9yKGxldCB0IGluIHMpZVt0XT1zW3RdO3JldHVybiBlfWZ1bmN0aW9uIHB1YShzLGUpe2xldCB0PWUuc2NoZW1hLm5vZGVzO2ZvcihsZXQgYSBpbiB0KXtsZXQgcj10W2FdO2lmKCFyLmFsbG93c01hcmtUeXBlKHMpKWNvbnRpbnVlO2xldCBuPVtdLG89aShsPT57bi5wdXNoKGwpO2ZvcihsZXQgcD0wO3A8bC5lZGdlQ291bnQ7cCsrKXtsZXR7dHlwZTpkLG5leHQ6dX09bC5lZGdlKHApO2lmKGQ9PWV8fG4uaW5kZXhPZih1KTwwJiZvKHUpKXJldHVybiEwfX0sInNjYW4iKTtpZihvKHIuY29udGVudE1hdGNoKSlyZXR1cm4hMH19ZnVuY3Rpb24gaHVhKHMpe2xldCBlPXt9O2ZvcihsZXQgdCBpbiBzKXtsZXQgYT1zW3RdLnNwZWMudG9ET007YSYmKGVbdF09YSl9cmV0dXJuIGV9ZnVuY3Rpb24gdnR0KHMpe3JldHVybiBzLmRvY3VtZW50fHx3aW5kb3cuZG9jdW1lbnR9ZnVuY3Rpb24gbkdhKHMpe2xldCBlPWZ1YS5nZXQocyk7cmV0dXJuIGU9PT12b2lkIDAmJmZ1YS5zZXQocyxlPWxHYShzKSksZX1mdW5jdGlvbiBsR2Eocyl7bGV0IGU9bnVsbDtmdW5jdGlvbiB0KGEpe2lmKGEmJnR5cGVvZiBhPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KGEpKWlmKHR5cGVvZiBhWzBdPT0ic3RyaW5nIillfHwoZT1bXSksZS5wdXNoKGEpO2Vsc2UgZm9yKGxldCByPTA7cjxhLmxlbmd0aDtyKyspdChhW3JdKTtlbHNlIGZvcihsZXQgciBpbiBhKXQoYVtyXSl9cmV0dXJuIGkodCwic2NhbiIpLHQocyksZX1mdW5jdGlvbiBIbmUocyxlLHQsYSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybntkb206cy5jcmVhdGVUZXh0Tm9kZShlKX07aWYoZS5ub2RlVHlwZSE9bnVsbClyZXR1cm57ZG9tOmV9O2lmKGUuZG9tJiZlLmRvbS5ub2RlVHlwZSE9bnVsbClyZXR1cm4gZTtsZXQgcj1lWzBdLG47aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGFycmF5IHBhc3NlZCB0byByZW5kZXJTcGVjIik7aWYoYSYmKG49bkdhKGEpKSYmbi5pbmRleE9mKGUpPi0xKXRocm93IG5ldyBSYW5nZUVycm9yKCJVc2luZyBhbiBhcnJheSBmcm9tIGFuIGF0dHJpYnV0ZSBvYmplY3QgYXMgYSBET00gc3BlYy4gVGhpcyBtYXkgYmUgYW4gYXR0ZW1wdGVkIGNyb3NzIHNpdGUgc2NyaXB0aW5nIGF0dGFjay4iKTtsZXQgbz1yLmluZGV4T2YoIiAiKTtvPjAmJih0PXIuc2xpY2UoMCxvKSxyPXIuc2xpY2UobysxKSk7bGV0IGwscD10P3MuY3JlYXRlRWxlbWVudE5TKHQscik6cy5jcmVhdGVFbGVtZW50KHIpLGQ9ZVsxXSx1PTE7aWYoZCYmdHlwZW9mIGQ9PSJvYmplY3QiJiZkLm5vZGVUeXBlPT1udWxsJiYhQXJyYXkuaXNBcnJheShkKSl7dT0yO2ZvcihsZXQgYyBpbiBkKWlmKGRbY10hPW51bGwpe2xldCBiPWMuaW5kZXhPZigiICIpO2I+MD9wLnNldEF0dHJpYnV0ZU5TKGMuc2xpY2UoMCxiKSxjLnNsaWNlKGIrMSksZFtjXSk6Yz09InN0eWxlIiYmcC5zdHlsZT9wLnN0eWxlLmNzc1RleHQ9ZFtjXTpwLnNldEF0dHJpYnV0ZShjLGRbY10pfX1mb3IobGV0IGM9dTtjPGUubGVuZ3RoO2MrKyl7bGV0IGI9ZVtjXTtpZihiPT09MCl7aWYoYzxlLmxlbmd0aC0xfHxjPnUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNvbnRlbnQgaG9sZSBtdXN0IGJlIHRoZSBvbmx5IGNoaWxkIG9mIGl0cyBwYXJlbnQgbm9kZSIpO3JldHVybntkb206cCxjb250ZW50RE9NOnB9fWVsc2V7bGV0e2RvbTp2LGNvbnRlbnRET006eH09SG5lKHMsYix0LGEpO2lmKHAuYXBwZW5kQ2hpbGQodikseCl7aWYobCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTXVsdGlwbGUgY29udGVudCBob2xlcyIpO2w9eH19fXJldHVybntkb206cCxjb250ZW50RE9NOmx9fXZhciBydCx1dHQsZnMsa2gsX3QsTlosaHR0LFVXYSxYMGEsU2gsV1dhLFRuLGZ0dCx3aCxtdHQsUlosZ3R0LHZ2LHh2LGUyLGx1YSxpR2EsY3VhLE9aLGJ0dCxGWixidixCbmUsTGQsZnVhLF9oPWcoKCk9PntqMGEoKTtpKFYwYSwiZmluZERpZmZTdGFydCIpO2koVTBhLCJmaW5kRGlmZkVuZCIpO3J0PWNsYXNzIHN7c3RhdGlje2kodGhpcywiRnJhZ21lbnQiKX1jb25zdHJ1Y3RvcihlLHQpe2lmKHRoaXMuY29udGVudD1lLHRoaXMuc2l6ZT10fHwwLHQ9PW51bGwpZm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspdGhpcy5zaXplKz1lW2FdLm5vZGVTaXplfW5vZGVzQmV0d2VlbihlLHQsYSxyPTAsbil7Zm9yKGxldCBvPTAsbD0wO2w8dDtvKyspe2xldCBwPXRoaXMuY29udGVudFtvXSxkPWwrcC5ub2RlU2l6ZTtpZihkPmUmJmEocCxyK2wsbnx8bnVsbCxvKSE9PSExJiZwLmNvbnRlbnQuc2l6ZSl7bGV0IHU9bCsxO3Aubm9kZXNCZXR3ZWVuKE1hdGgubWF4KDAsZS11KSxNYXRoLm1pbihwLmNvbnRlbnQuc2l6ZSx0LXUpLGEscit1KX1sPWR9fWRlc2NlbmRhbnRzKGUpe3RoaXMubm9kZXNCZXR3ZWVuKDAsdGhpcy5zaXplLGUpfXRleHRCZXR3ZWVuKGUsdCxhLHIpe2xldCBuPSIiLG89ITA7cmV0dXJuIHRoaXMubm9kZXNCZXR3ZWVuKGUsdCwobCxwKT0+e2xldCBkPWwuaXNUZXh0P2wudGV4dC5zbGljZShNYXRoLm1heChlLHApLXAsdC1wKTpsLmlzTGVhZj9yP3R5cGVvZiByPT0iZnVuY3Rpb24iP3IobCk6cjpsLnR5cGUuc3BlYy5sZWFmVGV4dD9sLnR5cGUuc3BlYy5sZWFmVGV4dChsKToiIjoiIjtsLmlzQmxvY2smJihsLmlzTGVhZiYmZHx8bC5pc1RleHRibG9jaykmJmEmJihvP289ITE6bis9YSksbis9ZH0sMCksbn1hcHBlbmQoZSl7aWYoIWUuc2l6ZSlyZXR1cm4gdGhpcztpZighdGhpcy5zaXplKXJldHVybiBlO2xldCB0PXRoaXMubGFzdENoaWxkLGE9ZS5maXJzdENoaWxkLHI9dGhpcy5jb250ZW50LnNsaWNlKCksbj0wO2Zvcih0LmlzVGV4dCYmdC5zYW1lTWFya3VwKGEpJiYocltyLmxlbmd0aC0xXT10LndpdGhUZXh0KHQudGV4dCthLnRleHQpLG49MSk7bjxlLmNvbnRlbnQubGVuZ3RoO24rKylyLnB1c2goZS5jb250ZW50W25dKTtyZXR1cm4gbmV3IHMocix0aGlzLnNpemUrZS5zaXplKX1jdXQoZSx0PXRoaXMuc2l6ZSl7aWYoZT09MCYmdD09dGhpcy5zaXplKXJldHVybiB0aGlzO2xldCBhPVtdLHI9MDtpZih0PmUpZm9yKGxldCBuPTAsbz0wO288dDtuKyspe2xldCBsPXRoaXMuY29udGVudFtuXSxwPW8rbC5ub2RlU2l6ZTtwPmUmJigobzxlfHxwPnQpJiYobC5pc1RleHQ/bD1sLmN1dChNYXRoLm1heCgwLGUtbyksTWF0aC5taW4obC50ZXh0Lmxlbmd0aCx0LW8pKTpsPWwuY3V0KE1hdGgubWF4KDAsZS1vLTEpLE1hdGgubWluKGwuY29udGVudC5zaXplLHQtby0xKSkpLGEucHVzaChsKSxyKz1sLm5vZGVTaXplKSxvPXB9cmV0dXJuIG5ldyBzKGEscil9Y3V0QnlJbmRleChlLHQpe3JldHVybiBlPT10P3MuZW1wdHk6ZT09MCYmdD09dGhpcy5jb250ZW50Lmxlbmd0aD90aGlzOm5ldyBzKHRoaXMuY29udGVudC5zbGljZShlLHQpKX1yZXBsYWNlQ2hpbGQoZSx0KXtsZXQgYT10aGlzLmNvbnRlbnRbZV07aWYoYT09dClyZXR1cm4gdGhpcztsZXQgcj10aGlzLmNvbnRlbnQuc2xpY2UoKSxuPXRoaXMuc2l6ZSt0Lm5vZGVTaXplLWEubm9kZVNpemU7cmV0dXJuIHJbZV09dCxuZXcgcyhyLG4pfWFkZFRvU3RhcnQoZSl7cmV0dXJuIG5ldyBzKFtlXS5jb25jYXQodGhpcy5jb250ZW50KSx0aGlzLnNpemUrZS5ub2RlU2l6ZSl9YWRkVG9FbmQoZSl7cmV0dXJuIG5ldyBzKHRoaXMuY29udGVudC5jb25jYXQoZSksdGhpcy5zaXplK2Uubm9kZVNpemUpfWVxKGUpe2lmKHRoaXMuY29udGVudC5sZW5ndGghPWUuY29udGVudC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB0PTA7dDx0aGlzLmNvbnRlbnQubGVuZ3RoO3QrKylpZighdGhpcy5jb250ZW50W3RdLmVxKGUuY29udGVudFt0XSkpcmV0dXJuITE7cmV0dXJuITB9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aD90aGlzLmNvbnRlbnRbMF06bnVsbH1nZXQgbGFzdENoaWxkKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGgtMV06bnVsbH1nZXQgY2hpbGRDb3VudCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RofWNoaWxkKGUpe2xldCB0PXRoaXMuY29udGVudFtlXTtpZighdCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggIitlKyIgb3V0IG9mIHJhbmdlIGZvciAiK3RoaXMpO3JldHVybiB0fW1heWJlQ2hpbGQoZSl7cmV0dXJuIHRoaXMuY29udGVudFtlXXx8bnVsbH1mb3JFYWNoKGUpe2ZvcihsZXQgdD0wLGE9MDt0PHRoaXMuY29udGVudC5sZW5ndGg7dCsrKXtsZXQgcj10aGlzLmNvbnRlbnRbdF07ZShyLGEsdCksYSs9ci5ub2RlU2l6ZX19ZmluZERpZmZTdGFydChlLHQ9MCl7cmV0dXJuIFYwYSh0aGlzLGUsdCl9ZmluZERpZmZFbmQoZSx0PXRoaXMuc2l6ZSxhPWUuc2l6ZSl7cmV0dXJuIFUwYSh0aGlzLGUsdCxhKX1maW5kSW5kZXgoZSl7aWYoZT09MClyZXR1cm4gUm5lKDAsZSk7aWYoZT09dGhpcy5zaXplKXJldHVybiBSbmUodGhpcy5jb250ZW50Lmxlbmd0aCxlKTtpZihlPnRoaXMuc2l6ZXx8ZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKGBQb3NpdGlvbiAke2V9IG91dHNpZGUgb2YgZnJhZ21lbnQgKCR7dGhpc30pYCk7Zm9yKGxldCB0PTAsYT0wOzt0Kyspe2xldCByPXRoaXMuY2hpbGQodCksbj1hK3Iubm9kZVNpemU7aWYobj49ZSlyZXR1cm4gbj09ZT9SbmUodCsxLG4pOlJuZSh0LGEpO2E9bn19dG9TdHJpbmcoKXtyZXR1cm4iPCIrdGhpcy50b1N0cmluZ0lubmVyKCkrIj4ifXRvU3RyaW5nSW5uZXIoKXtyZXR1cm4gdGhpcy5jb250ZW50LmpvaW4oIiwgIil9dG9KU09OKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50Lm1hcChlPT5lLnRvSlNPTigpKTpudWxsfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXJldHVybiBzLmVtcHR5O2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBGcmFnbWVudC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0Lm1hcChlLm5vZGVGcm9tSlNPTikpfXN0YXRpYyBmcm9tQXJyYXkoZSl7aWYoIWUubGVuZ3RoKXJldHVybiBzLmVtcHR5O2xldCB0LGE9MDtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IG49ZVtyXTthKz1uLm5vZGVTaXplLHImJm4uaXNUZXh0JiZlW3ItMV0uc2FtZU1hcmt1cChuKT8odHx8KHQ9ZS5zbGljZSgwLHIpKSx0W3QubGVuZ3RoLTFdPW4ud2l0aFRleHQodFt0Lmxlbmd0aC0xXS50ZXh0K24udGV4dCkpOnQmJnQucHVzaChuKX1yZXR1cm4gbmV3IHModHx8ZSxhKX1zdGF0aWMgZnJvbShlKXtpZighZSlyZXR1cm4gcy5lbXB0eTtpZihlIGluc3RhbmNlb2YgcylyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB0aGlzLmZyb21BcnJheShlKTtpZihlLmF0dHJzKXJldHVybiBuZXcgcyhbZV0sZS5ub2RlU2l6ZSk7dGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNhbiBub3QgY29udmVydCAiK2UrIiB0byBhIEZyYWdtZW50IisoZS5ub2Rlc0JldHdlZW4/IiAobG9va3MgbGlrZSBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBwcm9zZW1pcnJvci1tb2RlbCB3ZXJlIGxvYWRlZCkiOiIiKSl9fTtydC5lbXB0eT1uZXcgcnQoW10sMCk7dXR0PXtpbmRleDowLG9mZnNldDowfTtpKFJuZSwicmV0SW5kZXgiKTtpKE9uZSwiY29tcGFyZURlZXAiKTtmcz1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIk1hcmsiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudHlwZT1lLHRoaXMuYXR0cnM9dH1hZGRUb1NldChlKXtsZXQgdCxhPSExO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgbj1lW3JdO2lmKHRoaXMuZXEobikpcmV0dXJuIGU7aWYodGhpcy50eXBlLmV4Y2x1ZGVzKG4udHlwZSkpdHx8KHQ9ZS5zbGljZSgwLHIpKTtlbHNle2lmKG4udHlwZS5leGNsdWRlcyh0aGlzLnR5cGUpKXJldHVybiBlOyFhJiZuLnR5cGUucmFuaz50aGlzLnR5cGUucmFuayYmKHR8fCh0PWUuc2xpY2UoMCxyKSksdC5wdXNoKHRoaXMpLGE9ITApLHQmJnQucHVzaChuKX19cmV0dXJuIHR8fCh0PWUuc2xpY2UoKSksYXx8dC5wdXNoKHRoaXMpLHR9cmVtb3ZlRnJvbVNldChlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZih0aGlzLmVxKGVbdF0pKXJldHVybiBlLnNsaWNlKDAsdCkuY29uY2F0KGUuc2xpY2UodCsxKSk7cmV0dXJuIGV9aXNJblNldChlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZih0aGlzLmVxKGVbdF0pKXJldHVybiEwO3JldHVybiExfWVxKGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLnR5cGU9PWUudHlwZSYmT25lKHRoaXMuYXR0cnMsZS5hdHRycyl9dG9KU09OKCl7bGV0IGU9e3R5cGU6dGhpcy50eXBlLm5hbWV9O2ZvcihsZXQgdCBpbiB0aGlzLmF0dHJzKXtlLmF0dHJzPXRoaXMuYXR0cnM7YnJlYWt9cmV0dXJuIGV9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE1hcmsuZnJvbUpTT04iKTtsZXQgYT1lLm1hcmtzW3QudHlwZV07aWYoIWEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSAke3QudHlwZX0gaW4gdGhpcyBzY2hlbWFgKTtsZXQgcj1hLmNyZWF0ZSh0LmF0dHJzKTtyZXR1cm4gYS5jaGVja0F0dHJzKHIuYXR0cnMpLHJ9c3RhdGljIHNhbWVTZXQoZSx0KXtpZihlPT10KXJldHVybiEwO2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKylpZighZVthXS5lcSh0W2FdKSlyZXR1cm4hMTtyZXR1cm4hMH1zdGF0aWMgc2V0RnJvbShlKXtpZighZXx8QXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg9PTApcmV0dXJuIHMubm9uZTtpZihlIGluc3RhbmNlb2YgcylyZXR1cm5bZV07bGV0IHQ9ZS5zbGljZSgpO3JldHVybiB0LnNvcnQoKGEscik9PmEudHlwZS5yYW5rLXIudHlwZS5yYW5rKSx0fX07ZnMubm9uZT1bXTtraD1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIlJlcGxhY2VFcnJvciIpfX0sX3Q9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJTbGljZSIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmNvbnRlbnQ9ZSx0aGlzLm9wZW5TdGFydD10LHRoaXMub3BlbkVuZD1hfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuY29udGVudC5zaXplLXRoaXMub3BlblN0YXJ0LXRoaXMub3BlbkVuZH1pbnNlcnRBdChlLHQpe2xldCBhPUcwYSh0aGlzLmNvbnRlbnQsZSt0aGlzLm9wZW5TdGFydCx0KTtyZXR1cm4gYSYmbmV3IHMoYSx0aGlzLm9wZW5TdGFydCx0aGlzLm9wZW5FbmQpfXJlbW92ZUJldHdlZW4oZSx0KXtyZXR1cm4gbmV3IHMoVzBhKHRoaXMuY29udGVudCxlK3RoaXMub3BlblN0YXJ0LHQrdGhpcy5vcGVuU3RhcnQpLHRoaXMub3BlblN0YXJ0LHRoaXMub3BlbkVuZCl9ZXEoZSl7cmV0dXJuIHRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpJiZ0aGlzLm9wZW5TdGFydD09ZS5vcGVuU3RhcnQmJnRoaXMub3BlbkVuZD09ZS5vcGVuRW5kfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29udGVudCsiKCIrdGhpcy5vcGVuU3RhcnQrIiwiK3RoaXMub3BlbkVuZCsiKSJ9dG9KU09OKCl7aWYoIXRoaXMuY29udGVudC5zaXplKXJldHVybiBudWxsO2xldCBlPXtjb250ZW50OnRoaXMuY29udGVudC50b0pTT04oKX07cmV0dXJuIHRoaXMub3BlblN0YXJ0PjAmJihlLm9wZW5TdGFydD10aGlzLm9wZW5TdGFydCksdGhpcy5vcGVuRW5kPjAmJihlLm9wZW5FbmQ9dGhpcy5vcGVuRW5kKSxlfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXJldHVybiBzLmVtcHR5O2xldCBhPXQub3BlblN0YXJ0fHwwLHI9dC5vcGVuRW5kfHwwO2lmKHR5cGVvZiBhIT0ibnVtYmVyInx8dHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTbGljZS5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyhydC5mcm9tSlNPTihlLHQuY29udGVudCksYSxyKX1zdGF0aWMgbWF4T3BlbihlLHQ9ITApe2xldCBhPTAscj0wO2ZvcihsZXQgbj1lLmZpcnN0Q2hpbGQ7biYmIW4uaXNMZWFmJiYodHx8IW4udHlwZS5zcGVjLmlzb2xhdGluZyk7bj1uLmZpcnN0Q2hpbGQpYSsrO2ZvcihsZXQgbj1lLmxhc3RDaGlsZDtuJiYhbi5pc0xlYWYmJih0fHwhbi50eXBlLnNwZWMuaXNvbGF0aW5nKTtuPW4ubGFzdENoaWxkKXIrKztyZXR1cm4gbmV3IHMoZSxhLHIpfX07X3QuZW1wdHk9bmV3IF90KHJ0LmVtcHR5LDAsMCk7aShXMGEsInJlbW92ZVJhbmdlIik7aShHMGEsImluc2VydEludG8iKTtpKGpXYSwicmVwbGFjZSIpO2koSzBhLCJyZXBsYWNlT3V0ZXIiKTtpKFkwYSwiY2hlY2tKb2luIik7aShwdHQsImpvaW5hYmxlIik7aShqOCwiYWRkTm9kZSIpO2koQVosImFkZFJhbmdlIik7aShWOCwiY2xvc2UiKTtpKFowYSwicmVwbGFjZVRocmVlV2F5Iik7aShGbmUsInJlcGxhY2VUd29XYXkiKTtpKFZXYSwicHJlcGFyZVNsaWNlRm9yUmVwbGFjZSIpO05aPWNsYXNzIHN7c3RhdGlje2kodGhpcywiUmVzb2x2ZWRQb3MiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5wb3M9ZSx0aGlzLnBhdGg9dCx0aGlzLnBhcmVudE9mZnNldD1hLHRoaXMuZGVwdGg9dC5sZW5ndGgvMy0xfXJlc29sdmVEZXB0aChlKXtyZXR1cm4gZT09bnVsbD90aGlzLmRlcHRoOmU8MD90aGlzLmRlcHRoK2U6ZX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLmRlcHRoKX1nZXQgZG9jKCl7cmV0dXJuIHRoaXMubm9kZSgwKX1ub2RlKGUpe3JldHVybiB0aGlzLnBhdGhbdGhpcy5yZXNvbHZlRGVwdGgoZSkqM119aW5kZXgoZSl7cmV0dXJuIHRoaXMucGF0aFt0aGlzLnJlc29sdmVEZXB0aChlKSozKzFdfWluZGV4QWZ0ZXIoZSl7cmV0dXJuIGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksdGhpcy5pbmRleChlKSsoZT09dGhpcy5kZXB0aCYmIXRoaXMudGV4dE9mZnNldD8wOjEpfXN0YXJ0KGUpe3JldHVybiBlPXRoaXMucmVzb2x2ZURlcHRoKGUpLGU9PTA/MDp0aGlzLnBhdGhbZSozLTFdKzF9ZW5kKGUpe3JldHVybiBlPXRoaXMucmVzb2x2ZURlcHRoKGUpLHRoaXMuc3RhcnQoZSkrdGhpcy5ub2RlKGUpLmNvbnRlbnQuc2l6ZX1iZWZvcmUoZSl7aWYoZT10aGlzLnJlc29sdmVEZXB0aChlKSwhZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlcmUgaXMgbm8gcG9zaXRpb24gYmVmb3JlIHRoZSB0b3AtbGV2ZWwgbm9kZSIpO3JldHVybiBlPT10aGlzLmRlcHRoKzE/dGhpcy5wb3M6dGhpcy5wYXRoW2UqMy0xXX1hZnRlcihlKXtpZihlPXRoaXMucmVzb2x2ZURlcHRoKGUpLCFlKXRocm93IG5ldyBSYW5nZUVycm9yKCJUaGVyZSBpcyBubyBwb3NpdGlvbiBhZnRlciB0aGUgdG9wLWxldmVsIG5vZGUiKTtyZXR1cm4gZT09dGhpcy5kZXB0aCsxP3RoaXMucG9zOnRoaXMucGF0aFtlKjMtMV0rdGhpcy5wYXRoW2UqM10ubm9kZVNpemV9Z2V0IHRleHRPZmZzZXQoKXtyZXR1cm4gdGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV19Z2V0IG5vZGVBZnRlcigpe2xldCBlPXRoaXMucGFyZW50LHQ9dGhpcy5pbmRleCh0aGlzLmRlcHRoKTtpZih0PT1lLmNoaWxkQ291bnQpcmV0dXJuIG51bGw7bGV0IGE9dGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV0scj1lLmNoaWxkKHQpO3JldHVybiBhP2UuY2hpbGQodCkuY3V0KGEpOnJ9Z2V0IG5vZGVCZWZvcmUoKXtsZXQgZT10aGlzLmluZGV4KHRoaXMuZGVwdGgpLHQ9dGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV07cmV0dXJuIHQ/dGhpcy5wYXJlbnQuY2hpbGQoZSkuY3V0KDAsdCk6ZT09MD9udWxsOnRoaXMucGFyZW50LmNoaWxkKGUtMSl9cG9zQXRJbmRleChlLHQpe3Q9dGhpcy5yZXNvbHZlRGVwdGgodCk7bGV0IGE9dGhpcy5wYXRoW3QqM10scj10PT0wPzA6dGhpcy5wYXRoW3QqMy0xXSsxO2ZvcihsZXQgbj0wO248ZTtuKyspcis9YS5jaGlsZChuKS5ub2RlU2l6ZTtyZXR1cm4gcn1tYXJrcygpe2xldCBlPXRoaXMucGFyZW50LHQ9dGhpcy5pbmRleCgpO2lmKGUuY29udGVudC5zaXplPT0wKXJldHVybiBmcy5ub25lO2lmKHRoaXMudGV4dE9mZnNldClyZXR1cm4gZS5jaGlsZCh0KS5tYXJrcztsZXQgYT1lLm1heWJlQ2hpbGQodC0xKSxyPWUubWF5YmVDaGlsZCh0KTtpZighYSl7bGV0IGw9YTthPXIscj1sfWxldCBuPWEubWFya3M7Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspbltvXS50eXBlLnNwZWMuaW5jbHVzaXZlPT09ITEmJighcnx8IW5bb10uaXNJblNldChyLm1hcmtzKSkmJihuPW5bby0tXS5yZW1vdmVGcm9tU2V0KG4pKTtyZXR1cm4gbn1tYXJrc0Fjcm9zcyhlKXtsZXQgdD10aGlzLnBhcmVudC5tYXliZUNoaWxkKHRoaXMuaW5kZXgoKSk7aWYoIXR8fCF0LmlzSW5saW5lKXJldHVybiBudWxsO2xldCBhPXQubWFya3Mscj1lLnBhcmVudC5tYXliZUNoaWxkKGUuaW5kZXgoKSk7Zm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspYVtuXS50eXBlLnNwZWMuaW5jbHVzaXZlPT09ITEmJighcnx8IWFbbl0uaXNJblNldChyLm1hcmtzKSkmJihhPWFbbi0tXS5yZW1vdmVGcm9tU2V0KGEpKTtyZXR1cm4gYX1zaGFyZWREZXB0aChlKXtmb3IobGV0IHQ9dGhpcy5kZXB0aDt0PjA7dC0tKWlmKHRoaXMuc3RhcnQodCk8PWUmJnRoaXMuZW5kKHQpPj1lKXJldHVybiB0O3JldHVybiAwfWJsb2NrUmFuZ2UoZT10aGlzLHQpe2lmKGUucG9zPHRoaXMucG9zKXJldHVybiBlLmJsb2NrUmFuZ2UodGhpcyk7Zm9yKGxldCBhPXRoaXMuZGVwdGgtKHRoaXMucGFyZW50LmlubGluZUNvbnRlbnR8fHRoaXMucG9zPT1lLnBvcz8xOjApO2E+PTA7YS0tKWlmKGUucG9zPD10aGlzLmVuZChhKSYmKCF0fHx0KHRoaXMubm9kZShhKSkpKXJldHVybiBuZXcgU2godGhpcyxlLGEpO3JldHVybiBudWxsfXNhbWVQYXJlbnQoZSl7cmV0dXJuIHRoaXMucG9zLXRoaXMucGFyZW50T2Zmc2V0PT1lLnBvcy1lLnBhcmVudE9mZnNldH1tYXgoZSl7cmV0dXJuIGUucG9zPnRoaXMucG9zP2U6dGhpc31taW4oZSl7cmV0dXJuIGUucG9zPHRoaXMucG9zP2U6dGhpc310b1N0cmluZygpe2xldCBlPSIiO2ZvcihsZXQgdD0xO3Q8PXRoaXMuZGVwdGg7dCsrKWUrPShlPyIvIjoiIikrdGhpcy5ub2RlKHQpLnR5cGUubmFtZSsiXyIrdGhpcy5pbmRleCh0LTEpO3JldHVybiBlKyI6Iit0aGlzLnBhcmVudE9mZnNldH1zdGF0aWMgcmVzb2x2ZShlLHQpe2lmKCEodD49MCYmdDw9ZS5jb250ZW50LnNpemUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJQb3NpdGlvbiAiK3QrIiBvdXQgb2YgcmFuZ2UiKTtsZXQgYT1bXSxyPTAsbj10O2ZvcihsZXQgbz1lOzspe2xldHtpbmRleDpsLG9mZnNldDpwfT1vLmNvbnRlbnQuZmluZEluZGV4KG4pLGQ9bi1wO2lmKGEucHVzaChvLGwscitwKSwhZHx8KG89by5jaGlsZChsKSxvLmlzVGV4dCkpYnJlYWs7bj1kLTEscis9cCsxfXJldHVybiBuZXcgcyh0LGEsbil9c3RhdGljIHJlc29sdmVDYWNoZWQoZSx0KXtsZXQgYT1YMGEuZ2V0KGUpO2lmKGEpZm9yKGxldCBuPTA7bjxhLmVsdHMubGVuZ3RoO24rKyl7bGV0IG89YS5lbHRzW25dO2lmKG8ucG9zPT10KXJldHVybiBvfWVsc2UgWDBhLnNldChlLGE9bmV3IGh0dCk7bGV0IHI9YS5lbHRzW2EuaV09cy5yZXNvbHZlKGUsdCk7cmV0dXJuIGEuaT0oYS5pKzEpJVVXYSxyfX0saHR0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlJlc29sdmVDYWNoZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5lbHRzPVtdLHRoaXMuaT0wfX0sVVdhPTEyLFgwYT1uZXcgV2Vha01hcCxTaD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlUmFuZ2UiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXQsdGhpcy5kZXB0aD1hfWdldCBzdGFydCgpe3JldHVybiB0aGlzLiRmcm9tLmJlZm9yZSh0aGlzLmRlcHRoKzEpfWdldCBlbmQoKXtyZXR1cm4gdGhpcy4kdG8uYWZ0ZXIodGhpcy5kZXB0aCsxKX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuJGZyb20ubm9kZSh0aGlzLmRlcHRoKX1nZXQgc3RhcnRJbmRleCgpe3JldHVybiB0aGlzLiRmcm9tLmluZGV4KHRoaXMuZGVwdGgpfWdldCBlbmRJbmRleCgpe3JldHVybiB0aGlzLiR0by5pbmRleEFmdGVyKHRoaXMuZGVwdGgpfX0sV1dhPU9iamVjdC5jcmVhdGUobnVsbCksVG49Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlIil9Y29uc3RydWN0b3IoZSx0LGEscj1mcy5ub25lKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXQsdGhpcy5tYXJrcz1yLHRoaXMuY29udGVudD1hfHxydC5lbXB0eX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5jb250ZW50LmNvbnRlbnR9Z2V0IG5vZGVTaXplKCl7cmV0dXJuIHRoaXMuaXNMZWFmPzE6Mit0aGlzLmNvbnRlbnQuc2l6ZX1nZXQgY2hpbGRDb3VudCgpe3JldHVybiB0aGlzLmNvbnRlbnQuY2hpbGRDb3VudH1jaGlsZChlKXtyZXR1cm4gdGhpcy5jb250ZW50LmNoaWxkKGUpfW1heWJlQ2hpbGQoZSl7cmV0dXJuIHRoaXMuY29udGVudC5tYXliZUNoaWxkKGUpfWZvckVhY2goZSl7dGhpcy5jb250ZW50LmZvckVhY2goZSl9bm9kZXNCZXR3ZWVuKGUsdCxhLHI9MCl7dGhpcy5jb250ZW50Lm5vZGVzQmV0d2VlbihlLHQsYSxyLHRoaXMpfWRlc2NlbmRhbnRzKGUpe3RoaXMubm9kZXNCZXR3ZWVuKDAsdGhpcy5jb250ZW50LnNpemUsZSl9Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuaXNMZWFmJiZ0aGlzLnR5cGUuc3BlYy5sZWFmVGV4dD90aGlzLnR5cGUuc3BlYy5sZWFmVGV4dCh0aGlzKTp0aGlzLnRleHRCZXR3ZWVuKDAsdGhpcy5jb250ZW50LnNpemUsIiIpfXRleHRCZXR3ZWVuKGUsdCxhLHIpe3JldHVybiB0aGlzLmNvbnRlbnQudGV4dEJldHdlZW4oZSx0LGEscil9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jb250ZW50LmZpcnN0Q2hpbGR9Z2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGFzdENoaWxkfWVxKGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLnNhbWVNYXJrdXAoZSkmJnRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpfXNhbWVNYXJrdXAoZSl7cmV0dXJuIHRoaXMuaGFzTWFya3VwKGUudHlwZSxlLmF0dHJzLGUubWFya3MpfWhhc01hcmt1cChlLHQsYSl7cmV0dXJuIHRoaXMudHlwZT09ZSYmT25lKHRoaXMuYXR0cnMsdHx8ZS5kZWZhdWx0QXR0cnN8fFdXYSkmJmZzLnNhbWVTZXQodGhpcy5tYXJrcyxhfHxmcy5ub25lKX1jb3B5KGU9bnVsbCl7cmV0dXJuIGU9PXRoaXMuY29udGVudD90aGlzOm5ldyBzKHRoaXMudHlwZSx0aGlzLmF0dHJzLGUsdGhpcy5tYXJrcyl9bWFyayhlKXtyZXR1cm4gZT09dGhpcy5tYXJrcz90aGlzOm5ldyBzKHRoaXMudHlwZSx0aGlzLmF0dHJzLHRoaXMuY29udGVudCxlKX1jdXQoZSx0PXRoaXMuY29udGVudC5zaXplKXtyZXR1cm4gZT09MCYmdD09dGhpcy5jb250ZW50LnNpemU/dGhpczp0aGlzLmNvcHkodGhpcy5jb250ZW50LmN1dChlLHQpKX1zbGljZShlLHQ9dGhpcy5jb250ZW50LnNpemUsYT0hMSl7aWYoZT09dClyZXR1cm4gX3QuZW1wdHk7bGV0IHI9dGhpcy5yZXNvbHZlKGUpLG49dGhpcy5yZXNvbHZlKHQpLG89YT8wOnIuc2hhcmVkRGVwdGgodCksbD1yLnN0YXJ0KG8pLGQ9ci5ub2RlKG8pLmNvbnRlbnQuY3V0KHIucG9zLWwsbi5wb3MtbCk7cmV0dXJuIG5ldyBfdChkLHIuZGVwdGgtbyxuLmRlcHRoLW8pfXJlcGxhY2UoZSx0LGEpe3JldHVybiBqV2EodGhpcy5yZXNvbHZlKGUpLHRoaXMucmVzb2x2ZSh0KSxhKX1ub2RlQXQoZSl7Zm9yKGxldCB0PXRoaXM7Oyl7bGV0e2luZGV4OmEsb2Zmc2V0OnJ9PXQuY29udGVudC5maW5kSW5kZXgoZSk7aWYodD10Lm1heWJlQ2hpbGQoYSksIXQpcmV0dXJuIG51bGw7aWYocj09ZXx8dC5pc1RleHQpcmV0dXJuIHQ7ZS09cisxfX1jaGlsZEFmdGVyKGUpe2xldHtpbmRleDp0LG9mZnNldDphfT10aGlzLmNvbnRlbnQuZmluZEluZGV4KGUpO3JldHVybntub2RlOnRoaXMuY29udGVudC5tYXliZUNoaWxkKHQpLGluZGV4OnQsb2Zmc2V0OmF9fWNoaWxkQmVmb3JlKGUpe2lmKGU9PTApcmV0dXJue25vZGU6bnVsbCxpbmRleDowLG9mZnNldDowfTtsZXR7aW5kZXg6dCxvZmZzZXQ6YX09dGhpcy5jb250ZW50LmZpbmRJbmRleChlKTtpZihhPGUpcmV0dXJue25vZGU6dGhpcy5jb250ZW50LmNoaWxkKHQpLGluZGV4OnQsb2Zmc2V0OmF9O2xldCByPXRoaXMuY29udGVudC5jaGlsZCh0LTEpO3JldHVybntub2RlOnIsaW5kZXg6dC0xLG9mZnNldDphLXIubm9kZVNpemV9fXJlc29sdmUoZSl7cmV0dXJuIE5aLnJlc29sdmVDYWNoZWQodGhpcyxlKX1yZXNvbHZlTm9DYWNoZShlKXtyZXR1cm4gTloucmVzb2x2ZSh0aGlzLGUpfXJhbmdlSGFzTWFyayhlLHQsYSl7bGV0IHI9ITE7cmV0dXJuIHQ+ZSYmdGhpcy5ub2Rlc0JldHdlZW4oZSx0LG49PihhLmlzSW5TZXQobi5tYXJrcykmJihyPSEwKSwhcikpLHJ9Z2V0IGlzQmxvY2soKXtyZXR1cm4gdGhpcy50eXBlLmlzQmxvY2t9Z2V0IGlzVGV4dGJsb2NrKCl7cmV0dXJuIHRoaXMudHlwZS5pc1RleHRibG9ja31nZXQgaW5saW5lQ29udGVudCgpe3JldHVybiB0aGlzLnR5cGUuaW5saW5lQ29udGVudH1nZXQgaXNJbmxpbmUoKXtyZXR1cm4gdGhpcy50eXBlLmlzSW5saW5lfWdldCBpc1RleHQoKXtyZXR1cm4gdGhpcy50eXBlLmlzVGV4dH1nZXQgaXNMZWFmKCl7cmV0dXJuIHRoaXMudHlwZS5pc0xlYWZ9Z2V0IGlzQXRvbSgpe3JldHVybiB0aGlzLnR5cGUuaXNBdG9tfXRvU3RyaW5nKCl7aWYodGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZylyZXR1cm4gdGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZyh0aGlzKTtsZXQgZT10aGlzLnR5cGUubmFtZTtyZXR1cm4gdGhpcy5jb250ZW50LnNpemUmJihlKz0iKCIrdGhpcy5jb250ZW50LnRvU3RyaW5nSW5uZXIoKSsiKSIpLFEwYSh0aGlzLm1hcmtzLGUpfWNvbnRlbnRNYXRjaEF0KGUpe2xldCB0PXRoaXMudHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQsMCxlKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCBjb250ZW50TWF0Y2hBdCBvbiBhIG5vZGUgd2l0aCBpbnZhbGlkIGNvbnRlbnQiKTtyZXR1cm4gdH1jYW5SZXBsYWNlKGUsdCxhPXJ0LmVtcHR5LHI9MCxuPWEuY2hpbGRDb3VudCl7bGV0IG89dGhpcy5jb250ZW50TWF0Y2hBdChlKS5tYXRjaEZyYWdtZW50KGEscixuKSxsPW8mJm8ubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQsdCk7aWYoIWx8fCFsLnZhbGlkRW5kKXJldHVybiExO2ZvcihsZXQgcD1yO3A8bjtwKyspaWYoIXRoaXMudHlwZS5hbGxvd3NNYXJrcyhhLmNoaWxkKHApLm1hcmtzKSlyZXR1cm4hMTtyZXR1cm4hMH1jYW5SZXBsYWNlV2l0aChlLHQsYSxyKXtpZihyJiYhdGhpcy50eXBlLmFsbG93c01hcmtzKHIpKXJldHVybiExO2xldCBuPXRoaXMuY29udGVudE1hdGNoQXQoZSkubWF0Y2hUeXBlKGEpLG89biYmbi5tYXRjaEZyYWdtZW50KHRoaXMuY29udGVudCx0KTtyZXR1cm4gbz9vLnZhbGlkRW5kOiExfWNhbkFwcGVuZChlKXtyZXR1cm4gZS5jb250ZW50LnNpemU/dGhpcy5jYW5SZXBsYWNlKHRoaXMuY2hpbGRDb3VudCx0aGlzLmNoaWxkQ291bnQsZS5jb250ZW50KTp0aGlzLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQoZS50eXBlKX1jaGVjaygpe3RoaXMudHlwZS5jaGVja0NvbnRlbnQodGhpcy5jb250ZW50KSx0aGlzLnR5cGUuY2hlY2tBdHRycyh0aGlzLmF0dHJzKTtsZXQgZT1mcy5ub25lO2ZvcihsZXQgdD0wO3Q8dGhpcy5tYXJrcy5sZW5ndGg7dCsrKXtsZXQgYT10aGlzLm1hcmtzW3RdO2EudHlwZS5jaGVja0F0dHJzKGEuYXR0cnMpLGU9YS5hZGRUb1NldChlKX1pZighZnMuc2FtZVNldChlLHRoaXMubWFya3MpKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIGNvbGxlY3Rpb24gb2YgbWFya3MgZm9yIG5vZGUgJHt0aGlzLnR5cGUubmFtZX06ICR7dGhpcy5tYXJrcy5tYXAodD0+dC50eXBlLm5hbWUpfWApO3RoaXMuY29udGVudC5mb3JFYWNoKHQ9PnQuY2hlY2soKSl9dG9KU09OKCl7bGV0IGU9e3R5cGU6dGhpcy50eXBlLm5hbWV9O2ZvcihsZXQgdCBpbiB0aGlzLmF0dHJzKXtlLmF0dHJzPXRoaXMuYXR0cnM7YnJlYWt9cmV0dXJuIHRoaXMuY29udGVudC5zaXplJiYoZS5jb250ZW50PXRoaXMuY29udGVudC50b0pTT04oKSksdGhpcy5tYXJrcy5sZW5ndGgmJihlLm1hcmtzPXRoaXMubWFya3MubWFwKHQ9PnQudG9KU09OKCkpKSxlfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBOb2RlLmZyb21KU09OIik7bGV0IGE7aWYodC5tYXJrcyl7aWYoIUFycmF5LmlzQXJyYXkodC5tYXJrcykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgbWFyayBkYXRhIGZvciBOb2RlLmZyb21KU09OIik7YT10Lm1hcmtzLm1hcChlLm1hcmtGcm9tSlNPTil9aWYodC50eXBlPT0idGV4dCIpe2lmKHR5cGVvZiB0LnRleHQhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRleHQgbm9kZSBpbiBKU09OIik7cmV0dXJuIGUudGV4dCh0LnRleHQsYSl9bGV0IHI9cnQuZnJvbUpTT04oZSx0LmNvbnRlbnQpLG49ZS5ub2RlVHlwZSh0LnR5cGUpLmNyZWF0ZSh0LmF0dHJzLHIsYSk7cmV0dXJuIG4udHlwZS5jaGVja0F0dHJzKG4uYXR0cnMpLG59fTtUbi5wcm90b3R5cGUudGV4dD12b2lkIDA7ZnR0PWNsYXNzIHMgZXh0ZW5kcyBUbntzdGF0aWN7aSh0aGlzLCJUZXh0Tm9kZSIpfWNvbnN0cnVjdG9yKGUsdCxhLHIpe2lmKHN1cGVyKGUsdCxudWxsLHIpLCFhKXRocm93IG5ldyBSYW5nZUVycm9yKCJFbXB0eSB0ZXh0IG5vZGVzIGFyZSBub3QgYWxsb3dlZCIpO3RoaXMudGV4dD1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmc/dGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZyh0aGlzKTpRMGEodGhpcy5tYXJrcyxKU09OLnN0cmluZ2lmeSh0aGlzLnRleHQpKX1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy50ZXh0fXRleHRCZXR3ZWVuKGUsdCl7cmV0dXJuIHRoaXMudGV4dC5zbGljZShlLHQpfWdldCBub2RlU2l6ZSgpe3JldHVybiB0aGlzLnRleHQubGVuZ3RofW1hcmsoZSl7cmV0dXJuIGU9PXRoaXMubWFya3M/dGhpczpuZXcgcyh0aGlzLnR5cGUsdGhpcy5hdHRycyx0aGlzLnRleHQsZSl9d2l0aFRleHQoZSl7cmV0dXJuIGU9PXRoaXMudGV4dD90aGlzOm5ldyBzKHRoaXMudHlwZSx0aGlzLmF0dHJzLGUsdGhpcy5tYXJrcyl9Y3V0KGU9MCx0PXRoaXMudGV4dC5sZW5ndGgpe3JldHVybiBlPT0wJiZ0PT10aGlzLnRleHQubGVuZ3RoP3RoaXM6dGhpcy53aXRoVGV4dCh0aGlzLnRleHQuc2xpY2UoZSx0KSl9ZXEoZSl7cmV0dXJuIHRoaXMuc2FtZU1hcmt1cChlKSYmdGhpcy50ZXh0PT1lLnRleHR9dG9KU09OKCl7bGV0IGU9c3VwZXIudG9KU09OKCk7cmV0dXJuIGUudGV4dD10aGlzLnRleHQsZX19O2koUTBhLCJ3cmFwTWFya3MiKTt3aD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIkNvbnRlbnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMudmFsaWRFbmQ9ZSx0aGlzLm5leHQ9W10sdGhpcy53cmFwQ2FjaGU9W119c3RhdGljIHBhcnNlKGUsdCl7bGV0IGE9bmV3IG10dChlLHQpO2lmKGEubmV4dD09bnVsbClyZXR1cm4gcy5lbXB0eTtsZXQgcj1KMGEoYSk7YS5uZXh0JiZhLmVycigiVW5leHBlY3RlZCB0cmFpbGluZyB0ZXh0Iik7bGV0IG49SldhKFFXYShyKSk7cmV0dXJuIGVHYShuLGEpLG59bWF0Y2hUeXBlKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5uZXh0Lmxlbmd0aDt0KyspaWYodGhpcy5uZXh0W3RdLnR5cGU9PWUpcmV0dXJuIHRoaXMubmV4dFt0XS5uZXh0O3JldHVybiBudWxsfW1hdGNoRnJhZ21lbnQoZSx0PTAsYT1lLmNoaWxkQ291bnQpe2xldCByPXRoaXM7Zm9yKGxldCBuPXQ7ciYmbjxhO24rKylyPXIubWF0Y2hUeXBlKGUuY2hpbGQobikudHlwZSk7cmV0dXJuIHJ9Z2V0IGlubGluZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5uZXh0Lmxlbmd0aCE9MCYmdGhpcy5uZXh0WzBdLnR5cGUuaXNJbmxpbmV9Z2V0IGRlZmF1bHRUeXBlKCl7Zm9yKGxldCBlPTA7ZTx0aGlzLm5leHQubGVuZ3RoO2UrKyl7bGV0e3R5cGU6dH09dGhpcy5uZXh0W2VdO2lmKCEodC5pc1RleHR8fHQuaGFzUmVxdWlyZWRBdHRycygpKSlyZXR1cm4gdH1yZXR1cm4gbnVsbH1jb21wYXRpYmxlKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5uZXh0Lmxlbmd0aDt0KyspZm9yKGxldCBhPTA7YTxlLm5leHQubGVuZ3RoO2ErKylpZih0aGlzLm5leHRbdF0udHlwZT09ZS5uZXh0W2FdLnR5cGUpcmV0dXJuITA7cmV0dXJuITF9ZmlsbEJlZm9yZShlLHQ9ITEsYT0wKXtsZXQgcj1bdGhpc107ZnVuY3Rpb24gbihvLGwpe2xldCBwPW8ubWF0Y2hGcmFnbWVudChlLGEpO2lmKHAmJighdHx8cC52YWxpZEVuZCkpcmV0dXJuIHJ0LmZyb20obC5tYXAoZD0+ZC5jcmVhdGVBbmRGaWxsKCkpKTtmb3IobGV0IGQ9MDtkPG8ubmV4dC5sZW5ndGg7ZCsrKXtsZXR7dHlwZTp1LG5leHQ6Y309by5uZXh0W2RdO2lmKCEodS5pc1RleHR8fHUuaGFzUmVxdWlyZWRBdHRycygpKSYmci5pbmRleE9mKGMpPT0tMSl7ci5wdXNoKGMpO2xldCBiPW4oYyxsLmNvbmNhdCh1KSk7aWYoYilyZXR1cm4gYn19cmV0dXJuIG51bGx9cmV0dXJuIGkobiwic2VhcmNoIiksbih0aGlzLFtdKX1maW5kV3JhcHBpbmcoZSl7Zm9yKGxldCBhPTA7YTx0aGlzLndyYXBDYWNoZS5sZW5ndGg7YSs9MilpZih0aGlzLndyYXBDYWNoZVthXT09ZSlyZXR1cm4gdGhpcy53cmFwQ2FjaGVbYSsxXTtsZXQgdD10aGlzLmNvbXB1dGVXcmFwcGluZyhlKTtyZXR1cm4gdGhpcy53cmFwQ2FjaGUucHVzaChlLHQpLHR9Y29tcHV0ZVdyYXBwaW5nKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksYT1be21hdGNoOnRoaXMsdHlwZTpudWxsLHZpYTpudWxsfV07Zm9yKDthLmxlbmd0aDspe2xldCByPWEuc2hpZnQoKSxuPXIubWF0Y2g7aWYobi5tYXRjaFR5cGUoZSkpe2xldCBvPVtdO2ZvcihsZXQgbD1yO2wudHlwZTtsPWwudmlhKW8ucHVzaChsLnR5cGUpO3JldHVybiBvLnJldmVyc2UoKX1mb3IobGV0IG89MDtvPG4ubmV4dC5sZW5ndGg7bysrKXtsZXR7dHlwZTpsLG5leHQ6cH09bi5uZXh0W29dOyFsLmlzTGVhZiYmIWwuaGFzUmVxdWlyZWRBdHRycygpJiYhKGwubmFtZSBpbiB0KSYmKCFyLnR5cGV8fHAudmFsaWRFbmQpJiYoYS5wdXNoKHttYXRjaDpsLmNvbnRlbnRNYXRjaCx0eXBlOmwsdmlhOnJ9KSx0W2wubmFtZV09ITApfX1yZXR1cm4gbnVsbH1nZXQgZWRnZUNvdW50KCl7cmV0dXJuIHRoaXMubmV4dC5sZW5ndGh9ZWRnZShlKXtpZihlPj10aGlzLm5leHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSdzIG5vICR7ZX10aCBlZGdlIGluIHRoaXMgY29udGVudCBtYXRjaGApO3JldHVybiB0aGlzLm5leHRbZV19dG9TdHJpbmcoKXtsZXQgZT1bXTtmdW5jdGlvbiB0KGEpe2UucHVzaChhKTtmb3IobGV0IHI9MDtyPGEubmV4dC5sZW5ndGg7cisrKWUuaW5kZXhPZihhLm5leHRbcl0ubmV4dCk9PS0xJiZ0KGEubmV4dFtyXS5uZXh0KX1yZXR1cm4gaSh0LCJzY2FuIiksdCh0aGlzKSxlLm1hcCgoYSxyKT0+e2xldCBuPXIrKGEudmFsaWRFbmQ/IioiOiIgIikrIiAiO2ZvcihsZXQgbz0wO288YS5uZXh0Lmxlbmd0aDtvKyspbis9KG8/IiwgIjoiIikrYS5uZXh0W29dLnR5cGUubmFtZSsiLT4iK2UuaW5kZXhPZihhLm5leHRbb10ubmV4dCk7cmV0dXJuIG59KS5qb2luKGAKYCl9fTt3aC5lbXB0eT1uZXcgd2goITApO210dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUb2tlblN0cmVhbSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJpbmc9ZSx0aGlzLm5vZGVUeXBlcz10LHRoaXMuaW5saW5lPW51bGwsdGhpcy5wb3M9MCx0aGlzLnRva2Vucz1lLnNwbGl0KC9ccyooPz1cYnxcV3wkKS8pLHRoaXMudG9rZW5zW3RoaXMudG9rZW5zLmxlbmd0aC0xXT09IiImJnRoaXMudG9rZW5zLnBvcCgpLHRoaXMudG9rZW5zWzBdPT0iIiYmdGhpcy50b2tlbnMuc2hpZnQoKX1nZXQgbmV4dCgpe3JldHVybiB0aGlzLnRva2Vuc1t0aGlzLnBvc119ZWF0KGUpe3JldHVybiB0aGlzLm5leHQ9PWUmJih0aGlzLnBvcysrfHwhMCl9ZXJyKGUpe3Rocm93IG5ldyBTeW50YXhFcnJvcihlKyIgKGluIGNvbnRlbnQgZXhwcmVzc2lvbiAnIit0aGlzLnN0cmluZysiJykiKX19O2koSjBhLCJwYXJzZUV4cHIiKTtpKEdXYSwicGFyc2VFeHByU2VxIik7aShLV2EsInBhcnNlRXhwclN1YnNjcmlwdCIpO2koZXVhLCJwYXJzZU51bSIpO2koWVdhLCJwYXJzZUV4cHJSYW5nZSIpO2koWldhLCJyZXNvbHZlTmFtZSIpO2koWFdhLCJwYXJzZUV4cHJBdG9tIik7aShRV2EsIm5mYSIpO2kodHVhLCJjbXAiKTtpKGF1YSwibnVsbEZyb20iKTtpKEpXYSwiZGZhIik7aShlR2EsImNoZWNrRm9yRGVhZEVuZHMiKTtpKHN1YSwiZGVmYXVsdEF0dHJzIik7aShpdWEsImNvbXB1dGVBdHRycyIpO2kocnVhLCJjaGVja0F0dHJzIik7aShvdWEsImluaXRBdHRycyIpO1JaPWNsYXNzIHN7c3RhdGlje2kodGhpcywiTm9kZVR5cGUiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5uYW1lPWUsdGhpcy5zY2hlbWE9dCx0aGlzLnNwZWM9YSx0aGlzLm1hcmtTZXQ9bnVsbCx0aGlzLmdyb3Vwcz1hLmdyb3VwP2EuZ3JvdXAuc3BsaXQoIiAiKTpbXSx0aGlzLmF0dHJzPW91YShlLGEuYXR0cnMpLHRoaXMuZGVmYXVsdEF0dHJzPXN1YSh0aGlzLmF0dHJzKSx0aGlzLmNvbnRlbnRNYXRjaD1udWxsLHRoaXMuaW5saW5lQ29udGVudD1udWxsLHRoaXMuaXNCbG9jaz0hKGEuaW5saW5lfHxlPT0idGV4dCIpLHRoaXMuaXNUZXh0PWU9PSJ0ZXh0In1nZXQgaXNJbmxpbmUoKXtyZXR1cm4hdGhpcy5pc0Jsb2NrfWdldCBpc1RleHRibG9jaygpe3JldHVybiB0aGlzLmlzQmxvY2smJnRoaXMuaW5saW5lQ29udGVudH1nZXQgaXNMZWFmKCl7cmV0dXJuIHRoaXMuY29udGVudE1hdGNoPT13aC5lbXB0eX1nZXQgaXNBdG9tKCl7cmV0dXJuIHRoaXMuaXNMZWFmfHwhIXRoaXMuc3BlYy5hdG9tfWlzSW5Hcm91cChlKXtyZXR1cm4gdGhpcy5ncm91cHMuaW5kZXhPZihlKT4tMX1nZXQgd2hpdGVzcGFjZSgpe3JldHVybiB0aGlzLnNwZWMud2hpdGVzcGFjZXx8KHRoaXMuc3BlYy5jb2RlPyJwcmUiOiJub3JtYWwiKX1oYXNSZXF1aXJlZEF0dHJzKCl7Zm9yKGxldCBlIGluIHRoaXMuYXR0cnMpaWYodGhpcy5hdHRyc1tlXS5pc1JlcXVpcmVkKXJldHVybiEwO3JldHVybiExfWNvbXBhdGlibGVDb250ZW50KGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLmNvbnRlbnRNYXRjaC5jb21wYXRpYmxlKGUuY29udGVudE1hdGNoKX1jb21wdXRlQXR0cnMoZSl7cmV0dXJuIWUmJnRoaXMuZGVmYXVsdEF0dHJzP3RoaXMuZGVmYXVsdEF0dHJzOml1YSh0aGlzLmF0dHJzLGUpfWNyZWF0ZShlPW51bGwsdCxhKXtpZih0aGlzLmlzVGV4dCl0aHJvdyBuZXcgRXJyb3IoIk5vZGVUeXBlLmNyZWF0ZSBjYW4ndCBjb25zdHJ1Y3QgdGV4dCBub2RlcyIpO3JldHVybiBuZXcgVG4odGhpcyx0aGlzLmNvbXB1dGVBdHRycyhlKSxydC5mcm9tKHQpLGZzLnNldEZyb20oYSkpfWNyZWF0ZUNoZWNrZWQoZT1udWxsLHQsYSl7cmV0dXJuIHQ9cnQuZnJvbSh0KSx0aGlzLmNoZWNrQ29udGVudCh0KSxuZXcgVG4odGhpcyx0aGlzLmNvbXB1dGVBdHRycyhlKSx0LGZzLnNldEZyb20oYSkpfWNyZWF0ZUFuZEZpbGwoZT1udWxsLHQsYSl7aWYoZT10aGlzLmNvbXB1dGVBdHRycyhlKSx0PXJ0LmZyb20odCksdC5zaXplKXtsZXQgbz10aGlzLmNvbnRlbnRNYXRjaC5maWxsQmVmb3JlKHQpO2lmKCFvKXJldHVybiBudWxsO3Q9by5hcHBlbmQodCl9bGV0IHI9dGhpcy5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudCh0KSxuPXImJnIuZmlsbEJlZm9yZShydC5lbXB0eSwhMCk7cmV0dXJuIG4/bmV3IFRuKHRoaXMsZSx0LmFwcGVuZChuKSxmcy5zZXRGcm9tKGEpKTpudWxsfXZhbGlkQ29udGVudChlKXtsZXQgdD10aGlzLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KGUpO2lmKCF0fHwhdC52YWxpZEVuZClyZXR1cm4hMTtmb3IobGV0IGE9MDthPGUuY2hpbGRDb3VudDthKyspaWYoIXRoaXMuYWxsb3dzTWFya3MoZS5jaGlsZChhKS5tYXJrcykpcmV0dXJuITE7cmV0dXJuITB9Y2hlY2tDb250ZW50KGUpe2lmKCF0aGlzLnZhbGlkQ29udGVudChlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBjb250ZW50IGZvciBub2RlICR7dGhpcy5uYW1lfTogJHtlLnRvU3RyaW5nKCkuc2xpY2UoMCw1MCl9YCl9Y2hlY2tBdHRycyhlKXtydWEodGhpcy5hdHRycyxlLCJub2RlIix0aGlzLm5hbWUpfWFsbG93c01hcmtUeXBlKGUpe3JldHVybiB0aGlzLm1hcmtTZXQ9PW51bGx8fHRoaXMubWFya1NldC5pbmRleE9mKGUpPi0xfWFsbG93c01hcmtzKGUpe2lmKHRoaXMubWFya1NldD09bnVsbClyZXR1cm4hMDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZighdGhpcy5hbGxvd3NNYXJrVHlwZShlW3RdLnR5cGUpKXJldHVybiExO3JldHVybiEwfWFsbG93ZWRNYXJrcyhlKXtpZih0aGlzLm1hcmtTZXQ9PW51bGwpcmV0dXJuIGU7bGV0IHQ7Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspdGhpcy5hbGxvd3NNYXJrVHlwZShlW2FdLnR5cGUpP3QmJnQucHVzaChlW2FdKTp0fHwodD1lLnNsaWNlKDAsYSkpO3JldHVybiB0P3QubGVuZ3RoP3Q6ZnMubm9uZTplfXN0YXRpYyBjb21waWxlKGUsdCl7bGV0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtlLmZvckVhY2goKG4sbyk9PmFbbl09bmV3IHMobix0LG8pKTtsZXQgcj10LnNwZWMudG9wTm9kZXx8ImRvYyI7aWYoIWFbcl0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNjaGVtYSBpcyBtaXNzaW5nIGl0cyB0b3Agbm9kZSB0eXBlICgnIityKyInKSIpO2lmKCFhLnRleHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkV2ZXJ5IHNjaGVtYSBuZWVkcyBhICd0ZXh0JyB0eXBlIik7Zm9yKGxldCBuIGluIGEudGV4dC5hdHRycyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlIHRleHQgbm9kZSB0eXBlIHNob3VsZCBub3QgaGF2ZSBhdHRyaWJ1dGVzIik7cmV0dXJuIGF9fTtpKHRHYSwidmFsaWRhdGVUeXBlIik7Z3R0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkF0dHJpYnV0ZSIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmhhc0RlZmF1bHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImRlZmF1bHQiKSx0aGlzLmRlZmF1bHQ9YS5kZWZhdWx0LHRoaXMudmFsaWRhdGU9dHlwZW9mIGEudmFsaWRhdGU9PSJzdHJpbmciP3RHYShlLHQsYS52YWxpZGF0ZSk6YS52YWxpZGF0ZX1nZXQgaXNSZXF1aXJlZCgpe3JldHVybiF0aGlzLmhhc0RlZmF1bHR9fSx2dj1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIk1hcmtUeXBlIil9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy5uYW1lPWUsdGhpcy5yYW5rPXQsdGhpcy5zY2hlbWE9YSx0aGlzLnNwZWM9cix0aGlzLmF0dHJzPW91YShlLHIuYXR0cnMpLHRoaXMuZXhjbHVkZWQ9bnVsbDtsZXQgbj1zdWEodGhpcy5hdHRycyk7dGhpcy5pbnN0YW5jZT1uP25ldyBmcyh0aGlzLG4pOm51bGx9Y3JlYXRlKGU9bnVsbCl7cmV0dXJuIWUmJnRoaXMuaW5zdGFuY2U/dGhpcy5pbnN0YW5jZTpuZXcgZnModGhpcyxpdWEodGhpcy5hdHRycyxlKSl9c3RhdGljIGNvbXBpbGUoZSx0KXtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpLHI9MDtyZXR1cm4gZS5mb3JFYWNoKChuLG8pPT5hW25dPW5ldyBzKG4scisrLHQsbykpLGF9cmVtb3ZlRnJvbVNldChlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLnR5cGU9PXRoaXMmJihlPWUuc2xpY2UoMCx0KS5jb25jYXQoZS5zbGljZSh0KzEpKSx0LS0pO3JldHVybiBlfWlzSW5TZXQoZSl7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS50eXBlPT10aGlzKXJldHVybiBlW3RdfWNoZWNrQXR0cnMoZSl7cnVhKHRoaXMuYXR0cnMsZSwibWFyayIsdGhpcy5uYW1lKX1leGNsdWRlcyhlKXtyZXR1cm4gdGhpcy5leGNsdWRlZC5pbmRleE9mKGUpPi0xfX0seHY9Y2xhc3N7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3IoZSl7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1udWxsLHRoaXMuY2FjaGVkPU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IHQ9dGhpcy5zcGVjPXt9O2ZvcihsZXQgciBpbiBlKXRbcl09ZVtyXTt0Lm5vZGVzPWR0dC5mcm9tKGUubm9kZXMpLHQubWFya3M9ZHR0LmZyb20oZS5tYXJrc3x8e30pLHRoaXMubm9kZXM9UlouY29tcGlsZSh0aGlzLnNwZWMubm9kZXMsdGhpcyksdGhpcy5tYXJrcz12di5jb21waWxlKHRoaXMuc3BlYy5tYXJrcyx0aGlzKTtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgciBpbiB0aGlzLm5vZGVzKXtpZihyIGluIHRoaXMubWFya3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IocisiIGNhbiBub3QgYmUgYm90aCBhIG5vZGUgYW5kIGEgbWFyayIpO2xldCBuPXRoaXMubm9kZXNbcl0sbz1uLnNwZWMuY29udGVudHx8IiIsbD1uLnNwZWMubWFya3M7aWYobi5jb250ZW50TWF0Y2g9YVtvXXx8KGFbb109d2gucGFyc2Uobyx0aGlzLm5vZGVzKSksbi5pbmxpbmVDb250ZW50PW4uY29udGVudE1hdGNoLmlubGluZUNvbnRlbnQsbi5zcGVjLmxpbmVicmVha1JlcGxhY2VtZW50KXtpZih0aGlzLmxpbmVicmVha1JlcGxhY2VtZW50KXRocm93IG5ldyBSYW5nZUVycm9yKCJNdWx0aXBsZSBsaW5lYnJlYWsgbm9kZXMgZGVmaW5lZCIpO2lmKCFuLmlzSW5saW5lfHwhbi5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkxpbmVicmVhayByZXBsYWNlbWVudCBub2RlcyBtdXN0IGJlIGlubGluZSBsZWFmIG5vZGVzIik7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1ufW4ubWFya1NldD1sPT0iXyI/bnVsbDpsP251YSh0aGlzLGwuc3BsaXQoIiAiKSk6bD09IiJ8fCFuLmlubGluZUNvbnRlbnQ/W106bnVsbH1mb3IobGV0IHIgaW4gdGhpcy5tYXJrcyl7bGV0IG49dGhpcy5tYXJrc1tyXSxvPW4uc3BlYy5leGNsdWRlcztuLmV4Y2x1ZGVkPW89PW51bGw/W25dOm89PSIiP1tdOm51YSh0aGlzLG8uc3BsaXQoIiAiKSl9dGhpcy5ub2RlRnJvbUpTT049cj0+VG4uZnJvbUpTT04odGhpcyxyKSx0aGlzLm1hcmtGcm9tSlNPTj1yPT5mcy5mcm9tSlNPTih0aGlzLHIpLHRoaXMudG9wTm9kZVR5cGU9dGhpcy5ub2Rlc1t0aGlzLnNwZWMudG9wTm9kZXx8ImRvYyJdLHRoaXMuY2FjaGVkLndyYXBwaW5ncz1PYmplY3QuY3JlYXRlKG51bGwpfW5vZGUoZSx0PW51bGwsYSxyKXtpZih0eXBlb2YgZT09InN0cmluZyIpZT10aGlzLm5vZGVUeXBlKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFJaKXtpZihlLnNjaGVtYSE9dGhpcyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm9kZSB0eXBlIGZyb20gZGlmZmVyZW50IHNjaGVtYSB1c2VkICgiK2UubmFtZSsiKSIpfWVsc2UgdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgbm9kZSB0eXBlOiAiK2UpO3JldHVybiBlLmNyZWF0ZUNoZWNrZWQodCxhLHIpfXRleHQoZSx0KXtsZXQgYT10aGlzLm5vZGVzLnRleHQ7cmV0dXJuIG5ldyBmdHQoYSxhLmRlZmF1bHRBdHRycyxlLGZzLnNldEZyb20odCkpfW1hcmsoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciJiYoZT10aGlzLm1hcmtzW2VdKSxlLmNyZWF0ZSh0KX1ub2RlVHlwZShlKXtsZXQgdD10aGlzLm5vZGVzW2VdO2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJVbmtub3duIG5vZGUgdHlwZTogIitlKTtyZXR1cm4gdH19O2kobnVhLCJnYXRoZXJNYXJrcyIpO2koYUdhLCJpc1RhZ1J1bGUiKTtpKHNHYSwiaXNTdHlsZVJ1bGUiKTtlMj1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIkRPTVBhcnNlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zY2hlbWE9ZSx0aGlzLnJ1bGVzPXQsdGhpcy50YWdzPVtdLHRoaXMuc3R5bGVzPVtdO2xldCBhPXRoaXMubWF0Y2hlZFN0eWxlcz1bXTt0LmZvckVhY2gocj0+e2lmKGFHYShyKSl0aGlzLnRhZ3MucHVzaChyKTtlbHNlIGlmKHNHYShyKSl7bGV0IG49L1tePV0qLy5leGVjKHIuc3R5bGUpWzBdO2EuaW5kZXhPZihuKTwwJiZhLnB1c2gobiksdGhpcy5zdHlsZXMucHVzaChyKX19KSx0aGlzLm5vcm1hbGl6ZUxpc3RzPSF0aGlzLnRhZ3Muc29tZShyPT57aWYoIS9eKHVsfG9sKVxiLy50ZXN0KHIudGFnKXx8IXIubm9kZSlyZXR1cm4hMTtsZXQgbj1lLm5vZGVzW3Iubm9kZV07cmV0dXJuIG4uY29udGVudE1hdGNoLm1hdGNoVHlwZShuKX0pfXBhcnNlKGUsdD17fSl7bGV0IGE9bmV3IEJuZSh0aGlzLHQsITEpO3JldHVybiBhLmFkZEFsbChlLGZzLm5vbmUsdC5mcm9tLHQudG8pLGEuZmluaXNoKCl9cGFyc2VTbGljZShlLHQ9e30pe2xldCBhPW5ldyBCbmUodGhpcyx0LCEwKTtyZXR1cm4gYS5hZGRBbGwoZSxmcy5ub25lLHQuZnJvbSx0LnRvKSxfdC5tYXhPcGVuKGEuZmluaXNoKCkpfW1hdGNoVGFnKGUsdCxhKXtmb3IobGV0IHI9YT90aGlzLnRhZ3MuaW5kZXhPZihhKSsxOjA7cjx0aGlzLnRhZ3MubGVuZ3RoO3IrKyl7bGV0IG49dGhpcy50YWdzW3JdO2lmKG9HYShlLG4udGFnKSYmKG4ubmFtZXNwYWNlPT09dm9pZCAwfHxlLm5hbWVzcGFjZVVSST09bi5uYW1lc3BhY2UpJiYoIW4uY29udGV4dHx8dC5tYXRjaGVzQ29udGV4dChuLmNvbnRleHQpKSl7aWYobi5nZXRBdHRycyl7bGV0IG89bi5nZXRBdHRycyhlKTtpZihvPT09ITEpY29udGludWU7bi5hdHRycz1vfHx2b2lkIDB9cmV0dXJuIG59fX1tYXRjaFN0eWxlKGUsdCxhLHIpe2ZvcihsZXQgbj1yP3RoaXMuc3R5bGVzLmluZGV4T2YocikrMTowO248dGhpcy5zdHlsZXMubGVuZ3RoO24rKyl7bGV0IG89dGhpcy5zdHlsZXNbbl0sbD1vLnN0eWxlO2lmKCEobC5pbmRleE9mKGUpIT0wfHxvLmNvbnRleHQmJiFhLm1hdGNoZXNDb250ZXh0KG8uY29udGV4dCl8fGwubGVuZ3RoPmUubGVuZ3RoJiYobC5jaGFyQ29kZUF0KGUubGVuZ3RoKSE9NjF8fGwuc2xpY2UoZS5sZW5ndGgrMSkhPXQpKSl7aWYoby5nZXRBdHRycyl7bGV0IHA9by5nZXRBdHRycyh0KTtpZihwPT09ITEpY29udGludWU7by5hdHRycz1wfHx2b2lkIDB9cmV0dXJuIG99fX1zdGF0aWMgc2NoZW1hUnVsZXMoZSl7bGV0IHQ9W107ZnVuY3Rpb24gYShyKXtsZXQgbj1yLnByaW9yaXR5PT1udWxsPzUwOnIucHJpb3JpdHksbz0wO2Zvcig7bzx0Lmxlbmd0aDtvKyspe2xldCBsPXRbb107aWYoKGwucHJpb3JpdHk9PW51bGw/NTA6bC5wcmlvcml0eSk8bilicmVha310LnNwbGljZShvLDAscil9aShhLCJpbnNlcnQiKTtmb3IobGV0IHIgaW4gZS5tYXJrcyl7bGV0IG49ZS5tYXJrc1tyXS5zcGVjLnBhcnNlRE9NO24mJm4uZm9yRWFjaChvPT57YShvPXV1YShvKSksby5tYXJrfHxvLmlnbm9yZXx8by5jbGVhck1hcmt8fChvLm1hcms9cil9KX1mb3IobGV0IHIgaW4gZS5ub2Rlcyl7bGV0IG49ZS5ub2Rlc1tyXS5zcGVjLnBhcnNlRE9NO24mJm4uZm9yRWFjaChvPT57YShvPXV1YShvKSksby5ub2RlfHxvLmlnbm9yZXx8by5tYXJrfHwoby5ub2RlPXIpfSl9cmV0dXJuIHR9c3RhdGljIGZyb21TY2hlbWEoZSl7cmV0dXJuIGUuY2FjaGVkLmRvbVBhcnNlcnx8KGUuY2FjaGVkLmRvbVBhcnNlcj1uZXcgcyhlLHMuc2NoZW1hUnVsZXMoZSkpKX19LGx1YT17YWRkcmVzczohMCxhcnRpY2xlOiEwLGFzaWRlOiEwLGJsb2NrcXVvdGU6ITAsY2FudmFzOiEwLGRkOiEwLGRpdjohMCxkbDohMCxmaWVsZHNldDohMCxmaWdjYXB0aW9uOiEwLGZpZ3VyZTohMCxmb290ZXI6ITAsZm9ybTohMCxoMTohMCxoMjohMCxoMzohMCxoNDohMCxoNTohMCxoNjohMCxoZWFkZXI6ITAsaGdyb3VwOiEwLGhyOiEwLGxpOiEwLG5vc2NyaXB0OiEwLG9sOiEwLG91dHB1dDohMCxwOiEwLHByZTohMCxzZWN0aW9uOiEwLHRhYmxlOiEwLHRmb290OiEwLHVsOiEwfSxpR2E9e2hlYWQ6ITAsbm9zY3JpcHQ6ITAsb2JqZWN0OiEwLHNjcmlwdDohMCxzdHlsZTohMCx0aXRsZTohMH0sY3VhPXtvbDohMCx1bDohMH0sT1o9MSxidHQ9MixGWj00O2koZHVhLCJ3c09wdGlvbnNGb3IiKTtidj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlQ29udGV4dCIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbixvKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXQsdGhpcy5tYXJrcz1hLHRoaXMuc29saWQ9cix0aGlzLm9wdGlvbnM9byx0aGlzLmNvbnRlbnQ9W10sdGhpcy5hY3RpdmVNYXJrcz1mcy5ub25lLHRoaXMubWF0Y2g9bnx8KG8mRlo/bnVsbDplLmNvbnRlbnRNYXRjaCl9ZmluZFdyYXBwaW5nKGUpe2lmKCF0aGlzLm1hdGNoKXtpZighdGhpcy50eXBlKXJldHVybltdO2xldCB0PXRoaXMudHlwZS5jb250ZW50TWF0Y2guZmlsbEJlZm9yZShydC5mcm9tKGUpKTtpZih0KXRoaXMubWF0Y2g9dGhpcy50eXBlLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KHQpO2Vsc2V7bGV0IGE9dGhpcy50eXBlLmNvbnRlbnRNYXRjaCxyO3JldHVybihyPWEuZmluZFdyYXBwaW5nKGUudHlwZSkpPyh0aGlzLm1hdGNoPWEscik6bnVsbH19cmV0dXJuIHRoaXMubWF0Y2guZmluZFdyYXBwaW5nKGUudHlwZSl9ZmluaXNoKGUpe2lmKCEodGhpcy5vcHRpb25zJk9aKSl7bGV0IGE9dGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGgtMV0scjtpZihhJiZhLmlzVGV4dCYmKHI9L1sgXHRcclxuXHUwMDBjXSskLy5leGVjKGEudGV4dCkpKXtsZXQgbj1hO2EudGV4dC5sZW5ndGg9PXJbMF0ubGVuZ3RoP3RoaXMuY29udGVudC5wb3AoKTp0aGlzLmNvbnRlbnRbdGhpcy5jb250ZW50Lmxlbmd0aC0xXT1uLndpdGhUZXh0KG4udGV4dC5zbGljZSgwLG4udGV4dC5sZW5ndGgtclswXS5sZW5ndGgpKX19bGV0IHQ9cnQuZnJvbSh0aGlzLmNvbnRlbnQpO3JldHVybiFlJiZ0aGlzLm1hdGNoJiYodD10LmFwcGVuZCh0aGlzLm1hdGNoLmZpbGxCZWZvcmUocnQuZW1wdHksITApKSksdGhpcy50eXBlP3RoaXMudHlwZS5jcmVhdGUodGhpcy5hdHRycyx0LHRoaXMubWFya3MpOnR9aW5saW5lQ29udGV4dChlKXtyZXR1cm4gdGhpcy50eXBlP3RoaXMudHlwZS5pbmxpbmVDb250ZW50OnRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50WzBdLmlzSW5saW5lOmUucGFyZW50Tm9kZSYmIWx1YS5oYXNPd25Qcm9wZXJ0eShlLnBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl9fSxCbmU9Y2xhc3N7c3RhdGlje2kodGhpcywiUGFyc2VDb250ZXh0Iil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMucGFyc2VyPWUsdGhpcy5vcHRpb25zPXQsdGhpcy5pc09wZW49YSx0aGlzLm9wZW49MCx0aGlzLmxvY2FsUHJlc2VydmVXUz0hMTtsZXQgcj10LnRvcE5vZGUsbixvPWR1YShudWxsLHQucHJlc2VydmVXaGl0ZXNwYWNlLDApfChhP0ZaOjApO3I/bj1uZXcgYnYoci50eXBlLHIuYXR0cnMsZnMubm9uZSwhMCx0LnRvcE1hdGNofHxyLnR5cGUuY29udGVudE1hdGNoLG8pOmE/bj1uZXcgYnYobnVsbCxudWxsLGZzLm5vbmUsITAsbnVsbCxvKTpuPW5ldyBidihlLnNjaGVtYS50b3BOb2RlVHlwZSxudWxsLGZzLm5vbmUsITAsbnVsbCxvKSx0aGlzLm5vZGVzPVtuXSx0aGlzLmZpbmQ9dC5maW5kUG9zaXRpb25zLHRoaXMubmVlZHNCbG9jaz0hMX1nZXQgdG9wKCl7cmV0dXJuIHRoaXMubm9kZXNbdGhpcy5vcGVuXX1hZGRET00oZSx0KXtlLm5vZGVUeXBlPT0zP3RoaXMuYWRkVGV4dE5vZGUoZSx0KTplLm5vZGVUeXBlPT0xJiZ0aGlzLmFkZEVsZW1lbnQoZSx0KX1hZGRUZXh0Tm9kZShlLHQpe2xldCBhPWUubm9kZVZhbHVlLHI9dGhpcy50b3Asbj1yLm9wdGlvbnMmYnR0PyJmdWxsIjp0aGlzLmxvY2FsUHJlc2VydmVXU3x8KHIub3B0aW9ucyZPWik+MCx7c2NoZW1hOm99PXRoaXMucGFyc2VyO2lmKG49PT0iZnVsbCJ8fHIuaW5saW5lQ29udGV4dChlKXx8L1teIFx0XHJcblx1MDAwY10vLnRlc3QoYSkpe2lmKG4paWYobj09PSJmdWxsIilhPWEucmVwbGFjZSgvXHJcbj8vZyxgCmApO2Vsc2UgaWYoby5saW5lYnJlYWtSZXBsYWNlbWVudCYmL1tcclxuXS8udGVzdChhKSYmdGhpcy50b3AuZmluZFdyYXBwaW5nKG8ubGluZWJyZWFrUmVwbGFjZW1lbnQuY3JlYXRlKCkpKXtsZXQgbD1hLnNwbGl0KC9ccj9cbnxcci8pO2ZvcihsZXQgcD0wO3A8bC5sZW5ndGg7cCsrKXAmJnRoaXMuaW5zZXJ0Tm9kZShvLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpLHQsITApLGxbcF0mJnRoaXMuaW5zZXJ0Tm9kZShvLnRleHQobFtwXSksdCwhL1xTLy50ZXN0KGxbcF0pKTthPSIifWVsc2UgYT1hLnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKTtlbHNlIGlmKGE9YS5yZXBsYWNlKC9bIFx0XHJcblx1MDAwY10rL2csIiAiKSwvXlsgXHRcclxuXHUwMDBjXS8udGVzdChhKSYmdGhpcy5vcGVuPT10aGlzLm5vZGVzLmxlbmd0aC0xKXtsZXQgbD1yLmNvbnRlbnRbci5jb250ZW50Lmxlbmd0aC0xXSxwPWUucHJldmlvdXNTaWJsaW5nOyghbHx8cCYmcC5ub2RlTmFtZT09IkJSInx8bC5pc1RleHQmJi9bIFx0XHJcblx1MDAwY10kLy50ZXN0KGwudGV4dCkpJiYoYT1hLnNsaWNlKDEpKX1hJiZ0aGlzLmluc2VydE5vZGUoby50ZXh0KGEpLHQsIS9cUy8udGVzdChhKSksdGhpcy5maW5kSW5UZXh0KGUpfWVsc2UgdGhpcy5maW5kSW5zaWRlKGUpfWFkZEVsZW1lbnQoZSx0LGEpe2xldCByPXRoaXMubG9jYWxQcmVzZXJ2ZVdTLG49dGhpcy50b3A7KGUudGFnTmFtZT09IlBSRSJ8fC9wcmUvLnRlc3QoZS5zdHlsZSYmZS5zdHlsZS53aGl0ZVNwYWNlKSkmJih0aGlzLmxvY2FsUHJlc2VydmVXUz0hMCk7bGV0IG89ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGw7Y3VhLmhhc093blByb3BlcnR5KG8pJiZ0aGlzLnBhcnNlci5ub3JtYWxpemVMaXN0cyYmckdhKGUpO2xldCBwPXRoaXMub3B0aW9ucy5ydWxlRnJvbU5vZGUmJnRoaXMub3B0aW9ucy5ydWxlRnJvbU5vZGUoZSl8fChsPXRoaXMucGFyc2VyLm1hdGNoVGFnKGUsdGhpcyxhKSk7ZTppZihwP3AuaWdub3JlOmlHYS5oYXNPd25Qcm9wZXJ0eShvKSl0aGlzLmZpbmRJbnNpZGUoZSksdGhpcy5pZ25vcmVGYWxsYmFjayhlLHQpO2Vsc2UgaWYoIXB8fHAuc2tpcHx8cC5jbG9zZVBhcmVudCl7cCYmcC5jbG9zZVBhcmVudD90aGlzLm9wZW49TWF0aC5tYXgoMCx0aGlzLm9wZW4tMSk6cCYmcC5za2lwLm5vZGVUeXBlJiYoZT1wLnNraXApO2xldCBkLHU9dGhpcy5uZWVkc0Jsb2NrO2lmKGx1YS5oYXNPd25Qcm9wZXJ0eShvKSluLmNvbnRlbnQubGVuZ3RoJiZuLmNvbnRlbnRbMF0uaXNJbmxpbmUmJnRoaXMub3BlbiYmKHRoaXMub3Blbi0tLG49dGhpcy50b3ApLGQ9ITAsbi50eXBlfHwodGhpcy5uZWVkc0Jsb2NrPSEwKTtlbHNlIGlmKCFlLmZpcnN0Q2hpbGQpe3RoaXMubGVhZkZhbGxiYWNrKGUsdCk7YnJlYWsgZX1sZXQgYz1wJiZwLnNraXA/dDp0aGlzLnJlYWRTdHlsZXMoZSx0KTtjJiZ0aGlzLmFkZEFsbChlLGMpLGQmJnRoaXMuc3luYyhuKSx0aGlzLm5lZWRzQmxvY2s9dX1lbHNle2xldCBkPXRoaXMucmVhZFN0eWxlcyhlLHQpO2QmJnRoaXMuYWRkRWxlbWVudEJ5UnVsZShlLHAsZCxwLmNvbnN1bWluZz09PSExP2w6dm9pZCAwKX10aGlzLmxvY2FsUHJlc2VydmVXUz1yfWxlYWZGYWxsYmFjayhlLHQpe2Uubm9kZU5hbWU9PSJCUiImJnRoaXMudG9wLnR5cGUmJnRoaXMudG9wLnR5cGUuaW5saW5lQ29udGVudCYmdGhpcy5hZGRUZXh0Tm9kZShlLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYApgKSx0KX1pZ25vcmVGYWxsYmFjayhlLHQpe2Uubm9kZU5hbWU9PSJCUiImJighdGhpcy50b3AudHlwZXx8IXRoaXMudG9wLnR5cGUuaW5saW5lQ29udGVudCkmJnRoaXMuZmluZFBsYWNlKHRoaXMucGFyc2VyLnNjaGVtYS50ZXh0KCItIiksdCwhMCl9cmVhZFN0eWxlcyhlLHQpe2xldCBhPWUuc3R5bGU7aWYoYSYmYS5sZW5ndGgpZm9yKGxldCByPTA7cjx0aGlzLnBhcnNlci5tYXRjaGVkU3R5bGVzLmxlbmd0aDtyKyspe2xldCBuPXRoaXMucGFyc2VyLm1hdGNoZWRTdHlsZXNbcl0sbz1hLmdldFByb3BlcnR5VmFsdWUobik7aWYobylmb3IobGV0IGw9dm9pZCAwOzspe2xldCBwPXRoaXMucGFyc2VyLm1hdGNoU3R5bGUobixvLHRoaXMsbCk7aWYoIXApYnJlYWs7aWYocC5pZ25vcmUpcmV0dXJuIG51bGw7aWYocC5jbGVhck1hcms/dD10LmZpbHRlcihkPT4hcC5jbGVhck1hcmsoZCkpOnQ9dC5jb25jYXQodGhpcy5wYXJzZXIuc2NoZW1hLm1hcmtzW3AubWFya10uY3JlYXRlKHAuYXR0cnMpKSxwLmNvbnN1bWluZz09PSExKWw9cDtlbHNlIGJyZWFrfX1yZXR1cm4gdH1hZGRFbGVtZW50QnlSdWxlKGUsdCxhLHIpe2xldCBuLG87aWYodC5ub2RlKWlmKG89dGhpcy5wYXJzZXIuc2NoZW1hLm5vZGVzW3Qubm9kZV0sby5pc0xlYWYpdGhpcy5pbnNlcnROb2RlKG8uY3JlYXRlKHQuYXR0cnMpLGEsZS5ub2RlTmFtZT09IkJSIil8fHRoaXMubGVhZkZhbGxiYWNrKGUsYSk7ZWxzZXtsZXQgcD10aGlzLmVudGVyKG8sdC5hdHRyc3x8bnVsbCxhLHQucHJlc2VydmVXaGl0ZXNwYWNlKTtwJiYobj0hMCxhPXApfWVsc2V7bGV0IHA9dGhpcy5wYXJzZXIuc2NoZW1hLm1hcmtzW3QubWFya107YT1hLmNvbmNhdChwLmNyZWF0ZSh0LmF0dHJzKSl9bGV0IGw9dGhpcy50b3A7aWYobyYmby5pc0xlYWYpdGhpcy5maW5kSW5zaWRlKGUpO2Vsc2UgaWYocil0aGlzLmFkZEVsZW1lbnQoZSxhLHIpO2Vsc2UgaWYodC5nZXRDb250ZW50KXRoaXMuZmluZEluc2lkZShlKSx0LmdldENvbnRlbnQoZSx0aGlzLnBhcnNlci5zY2hlbWEpLmZvckVhY2gocD0+dGhpcy5pbnNlcnROb2RlKHAsYSwhMSkpO2Vsc2V7bGV0IHA9ZTt0eXBlb2YgdC5jb250ZW50RWxlbWVudD09InN0cmluZyI/cD1lLnF1ZXJ5U2VsZWN0b3IodC5jb250ZW50RWxlbWVudCk6dHlwZW9mIHQuY29udGVudEVsZW1lbnQ9PSJmdW5jdGlvbiI/cD10LmNvbnRlbnRFbGVtZW50KGUpOnQuY29udGVudEVsZW1lbnQmJihwPXQuY29udGVudEVsZW1lbnQpLHRoaXMuZmluZEFyb3VuZChlLHAsITApLHRoaXMuYWRkQWxsKHAsYSksdGhpcy5maW5kQXJvdW5kKGUscCwhMSl9biYmdGhpcy5zeW5jKGwpJiZ0aGlzLm9wZW4tLX1hZGRBbGwoZSx0LGEscil7bGV0IG49YXx8MDtmb3IobGV0IG89YT9lLmNoaWxkTm9kZXNbYV06ZS5maXJzdENoaWxkLGw9cj09bnVsbD9udWxsOmUuY2hpbGROb2Rlc1tyXTtvIT1sO289by5uZXh0U2libGluZywrK24pdGhpcy5maW5kQXRQb2ludChlLG4pLHRoaXMuYWRkRE9NKG8sdCk7dGhpcy5maW5kQXRQb2ludChlLG4pfWZpbmRQbGFjZShlLHQsYSl7bGV0IHIsbjtmb3IobGV0IG89dGhpcy5vcGVuLGw9MDtvPj0wO28tLSl7bGV0IHA9dGhpcy5ub2Rlc1tvXSxkPXAuZmluZFdyYXBwaW5nKGUpO2lmKGQmJighcnx8ci5sZW5ndGg+ZC5sZW5ndGgrbCkmJihyPWQsbj1wLCFkLmxlbmd0aCkpYnJlYWs7aWYocC5zb2xpZCl7aWYoYSlicmVhaztsKz0yfX1pZighcilyZXR1cm4gbnVsbDt0aGlzLnN5bmMobik7Zm9yKGxldCBvPTA7bzxyLmxlbmd0aDtvKyspdD10aGlzLmVudGVySW5uZXIocltvXSxudWxsLHQsITEpO3JldHVybiB0fWluc2VydE5vZGUoZSx0LGEpe2lmKGUuaXNJbmxpbmUmJnRoaXMubmVlZHNCbG9jayYmIXRoaXMudG9wLnR5cGUpe2xldCBuPXRoaXMudGV4dGJsb2NrRnJvbUNvbnRleHQoKTtuJiYodD10aGlzLmVudGVySW5uZXIobixudWxsLHQpKX1sZXQgcj10aGlzLmZpbmRQbGFjZShlLHQsYSk7aWYocil7dGhpcy5jbG9zZUV4dHJhKCk7bGV0IG49dGhpcy50b3A7bi5tYXRjaCYmKG4ubWF0Y2g9bi5tYXRjaC5tYXRjaFR5cGUoZS50eXBlKSk7bGV0IG89ZnMubm9uZTtmb3IobGV0IGwgb2Ygci5jb25jYXQoZS5tYXJrcykpKG4udHlwZT9uLnR5cGUuYWxsb3dzTWFya1R5cGUobC50eXBlKTpwdWEobC50eXBlLGUudHlwZSkpJiYobz1sLmFkZFRvU2V0KG8pKTtyZXR1cm4gbi5jb250ZW50LnB1c2goZS5tYXJrKG8pKSwhMH1yZXR1cm4hMX1lbnRlcihlLHQsYSxyKXtsZXQgbj10aGlzLmZpbmRQbGFjZShlLmNyZWF0ZSh0KSxhLCExKTtyZXR1cm4gbiYmKG49dGhpcy5lbnRlcklubmVyKGUsdCxhLCEwLHIpKSxufWVudGVySW5uZXIoZSx0LGEscj0hMSxuKXt0aGlzLmNsb3NlRXh0cmEoKTtsZXQgbz10aGlzLnRvcDtvLm1hdGNoPW8ubWF0Y2gmJm8ubWF0Y2gubWF0Y2hUeXBlKGUpO2xldCBsPWR1YShlLG4sby5vcHRpb25zKTtvLm9wdGlvbnMmRlomJm8uY29udGVudC5sZW5ndGg9PTAmJihsfD1GWik7bGV0IHA9ZnMubm9uZTtyZXR1cm4gYT1hLmZpbHRlcihkPT4oby50eXBlP28udHlwZS5hbGxvd3NNYXJrVHlwZShkLnR5cGUpOnB1YShkLnR5cGUsZSkpPyhwPWQuYWRkVG9TZXQocCksITEpOiEwKSx0aGlzLm5vZGVzLnB1c2gobmV3IGJ2KGUsdCxwLHIsbnVsbCxsKSksdGhpcy5vcGVuKyssYX1jbG9zZUV4dHJhKGU9ITEpe2xldCB0PXRoaXMubm9kZXMubGVuZ3RoLTE7aWYodD50aGlzLm9wZW4pe2Zvcig7dD50aGlzLm9wZW47dC0tKXRoaXMubm9kZXNbdC0xXS5jb250ZW50LnB1c2godGhpcy5ub2Rlc1t0XS5maW5pc2goZSkpO3RoaXMubm9kZXMubGVuZ3RoPXRoaXMub3BlbisxfX1maW5pc2goKXtyZXR1cm4gdGhpcy5vcGVuPTAsdGhpcy5jbG9zZUV4dHJhKHRoaXMuaXNPcGVuKSx0aGlzLm5vZGVzWzBdLmZpbmlzaCghISh0aGlzLmlzT3Blbnx8dGhpcy5vcHRpb25zLnRvcE9wZW4pKX1zeW5jKGUpe2ZvcihsZXQgdD10aGlzLm9wZW47dD49MDt0LS0pe2lmKHRoaXMubm9kZXNbdF09PWUpcmV0dXJuIHRoaXMub3Blbj10LCEwO3RoaXMubG9jYWxQcmVzZXJ2ZVdTJiYodGhpcy5ub2Rlc1t0XS5vcHRpb25zfD1PWil9cmV0dXJuITF9Z2V0IGN1cnJlbnRQb3MoKXt0aGlzLmNsb3NlRXh0cmEoKTtsZXQgZT0wO2ZvcihsZXQgdD10aGlzLm9wZW47dD49MDt0LS0pe2xldCBhPXRoaXMubm9kZXNbdF0uY29udGVudDtmb3IobGV0IHI9YS5sZW5ndGgtMTtyPj0wO3ItLSllKz1hW3JdLm5vZGVTaXplO3QmJmUrK31yZXR1cm4gZX1maW5kQXRQb2ludChlLHQpe2lmKHRoaXMuZmluZClmb3IobGV0IGE9MDthPHRoaXMuZmluZC5sZW5ndGg7YSsrKXRoaXMuZmluZFthXS5ub2RlPT1lJiZ0aGlzLmZpbmRbYV0ub2Zmc2V0PT10JiYodGhpcy5maW5kW2FdLnBvcz10aGlzLmN1cnJlbnRQb3MpfWZpbmRJbnNpZGUoZSl7aWYodGhpcy5maW5kKWZvcihsZXQgdD0wO3Q8dGhpcy5maW5kLmxlbmd0aDt0KyspdGhpcy5maW5kW3RdLnBvcz09bnVsbCYmZS5ub2RlVHlwZT09MSYmZS5jb250YWlucyh0aGlzLmZpbmRbdF0ubm9kZSkmJih0aGlzLmZpbmRbdF0ucG9zPXRoaXMuY3VycmVudFBvcyl9ZmluZEFyb3VuZChlLHQsYSl7aWYoZSE9dCYmdGhpcy5maW5kKWZvcihsZXQgcj0wO3I8dGhpcy5maW5kLmxlbmd0aDtyKyspdGhpcy5maW5kW3JdLnBvcz09bnVsbCYmZS5ub2RlVHlwZT09MSYmZS5jb250YWlucyh0aGlzLmZpbmRbcl0ubm9kZSkmJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcy5maW5kW3JdLm5vZGUpJihhPzI6NCkmJih0aGlzLmZpbmRbcl0ucG9zPXRoaXMuY3VycmVudFBvcyl9ZmluZEluVGV4dChlKXtpZih0aGlzLmZpbmQpZm9yKGxldCB0PTA7dDx0aGlzLmZpbmQubGVuZ3RoO3QrKyl0aGlzLmZpbmRbdF0ubm9kZT09ZSYmKHRoaXMuZmluZFt0XS5wb3M9dGhpcy5jdXJyZW50UG9zLShlLm5vZGVWYWx1ZS5sZW5ndGgtdGhpcy5maW5kW3RdLm9mZnNldCkpfW1hdGNoZXNDb250ZXh0KGUpe2lmKGUuaW5kZXhPZigifCIpPi0xKXJldHVybiBlLnNwbGl0KC9ccypcfFxzKi8pLnNvbWUodGhpcy5tYXRjaGVzQ29udGV4dCx0aGlzKTtsZXQgdD1lLnNwbGl0KCIvIiksYT10aGlzLm9wdGlvbnMuY29udGV4dCxyPSF0aGlzLmlzT3BlbiYmKCFhfHxhLnBhcmVudC50eXBlPT10aGlzLm5vZGVzWzBdLnR5cGUpLG49LShhP2EuZGVwdGgrMTowKSsocj8wOjEpLG89aSgobCxwKT0+e2Zvcig7bD49MDtsLS0pe2xldCBkPXRbbF07aWYoZD09IiIpe2lmKGw9PXQubGVuZ3RoLTF8fGw9PTApY29udGludWU7Zm9yKDtwPj1uO3AtLSlpZihvKGwtMSxwKSlyZXR1cm4hMDtyZXR1cm4hMX1lbHNle2xldCB1PXA+MHx8cD09MCYmcj90aGlzLm5vZGVzW3BdLnR5cGU6YSYmcD49bj9hLm5vZGUocC1uKS50eXBlOm51bGw7aWYoIXV8fHUubmFtZSE9ZCYmIXUuaXNJbkdyb3VwKGQpKXJldHVybiExO3AtLX19cmV0dXJuITB9LCJtYXRjaCIpO3JldHVybiBvKHQubGVuZ3RoLTEsdGhpcy5vcGVuKX10ZXh0YmxvY2tGcm9tQ29udGV4dCgpe2xldCBlPXRoaXMub3B0aW9ucy5jb250ZXh0O2lmKGUpZm9yKGxldCB0PWUuZGVwdGg7dD49MDt0LS0pe2xldCBhPWUubm9kZSh0KS5jb250ZW50TWF0Y2hBdChlLmluZGV4QWZ0ZXIodCkpLmRlZmF1bHRUeXBlO2lmKGEmJmEuaXNUZXh0YmxvY2smJmEuZGVmYXVsdEF0dHJzKXJldHVybiBhfWZvcihsZXQgdCBpbiB0aGlzLnBhcnNlci5zY2hlbWEubm9kZXMpe2xldCBhPXRoaXMucGFyc2VyLnNjaGVtYS5ub2Rlc1t0XTtpZihhLmlzVGV4dGJsb2NrJiZhLmRlZmF1bHRBdHRycylyZXR1cm4gYX19fTtpKHJHYSwibm9ybWFsaXplTGlzdCIpO2kob0dhLCJtYXRjaGVzIik7aSh1dWEsImNvcHkiKTtpKHB1YSwibWFya01heUFwcGx5Iik7TGQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJET01TZXJpYWxpemVyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLm5vZGVzPWUsdGhpcy5tYXJrcz10fXNlcmlhbGl6ZUZyYWdtZW50KGUsdD17fSxhKXthfHwoYT12dHQodCkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKTtsZXQgcj1hLG49W107cmV0dXJuIGUuZm9yRWFjaChvPT57aWYobi5sZW5ndGh8fG8ubWFya3MubGVuZ3RoKXtsZXQgbD0wLHA9MDtmb3IoO2w8bi5sZW5ndGgmJnA8by5tYXJrcy5sZW5ndGg7KXtsZXQgZD1vLm1hcmtzW3BdO2lmKCF0aGlzLm1hcmtzW2QudHlwZS5uYW1lXSl7cCsrO2NvbnRpbnVlfWlmKCFkLmVxKG5bbF1bMF0pfHxkLnR5cGUuc3BlYy5zcGFubmluZz09PSExKWJyZWFrO2wrKyxwKyt9Zm9yKDtsPG4ubGVuZ3RoOylyPW4ucG9wKClbMV07Zm9yKDtwPG8ubWFya3MubGVuZ3RoOyl7bGV0IGQ9by5tYXJrc1twKytdLHU9dGhpcy5zZXJpYWxpemVNYXJrKGQsby5pc0lubGluZSx0KTt1JiYobi5wdXNoKFtkLHJdKSxyLmFwcGVuZENoaWxkKHUuZG9tKSxyPXUuY29udGVudERPTXx8dS5kb20pfX1yLmFwcGVuZENoaWxkKHRoaXMuc2VyaWFsaXplTm9kZUlubmVyKG8sdCkpfSksYX1zZXJpYWxpemVOb2RlSW5uZXIoZSx0KXtsZXR7ZG9tOmEsY29udGVudERPTTpyfT1IbmUodnR0KHQpLHRoaXMubm9kZXNbZS50eXBlLm5hbWVdKGUpLG51bGwsZS5hdHRycyk7aWYocil7aWYoZS5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNvbnRlbnQgaG9sZSBub3QgYWxsb3dlZCBpbiBhIGxlYWYgbm9kZSBzcGVjIik7dGhpcy5zZXJpYWxpemVGcmFnbWVudChlLmNvbnRlbnQsdCxyKX1yZXR1cm4gYX1zZXJpYWxpemVOb2RlKGUsdD17fSl7bGV0IGE9dGhpcy5zZXJpYWxpemVOb2RlSW5uZXIoZSx0KTtmb3IobGV0IHI9ZS5tYXJrcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IG49dGhpcy5zZXJpYWxpemVNYXJrKGUubWFya3Nbcl0sZS5pc0lubGluZSx0KTtuJiYoKG4uY29udGVudERPTXx8bi5kb20pLmFwcGVuZENoaWxkKGEpLGE9bi5kb20pfXJldHVybiBhfXNlcmlhbGl6ZU1hcmsoZSx0LGE9e30pe2xldCByPXRoaXMubWFya3NbZS50eXBlLm5hbWVdO3JldHVybiByJiZIbmUodnR0KGEpLHIoZSx0KSxudWxsLGUuYXR0cnMpfXN0YXRpYyByZW5kZXJTcGVjKGUsdCxhPW51bGwscil7cmV0dXJuIEhuZShlLHQsYSxyKX1zdGF0aWMgZnJvbVNjaGVtYShlKXtyZXR1cm4gZS5jYWNoZWQuZG9tU2VyaWFsaXplcnx8KGUuY2FjaGVkLmRvbVNlcmlhbGl6ZXI9bmV3IHModGhpcy5ub2Rlc0Zyb21TY2hlbWEoZSksdGhpcy5tYXJrc0Zyb21TY2hlbWEoZSkpKX1zdGF0aWMgbm9kZXNGcm9tU2NoZW1hKGUpe2xldCB0PWh1YShlLm5vZGVzKTtyZXR1cm4gdC50ZXh0fHwodC50ZXh0PWE9PmEudGV4dCksdH1zdGF0aWMgbWFya3NGcm9tU2NoZW1hKGUpe3JldHVybiBodWEoZS5tYXJrcyl9fTtpKGh1YSwiZ2F0aGVyVG9ET00iKTtpKHZ0dCwiZG9jIik7ZnVhPW5ldyBXZWFrTWFwO2kobkdhLCJzdXNwaWNpb3VzQXR0cmlidXRlcyIpO2kobEdhLCJzdXNwaWNpb3VzQXR0cmlidXRlc0lubmVyIik7aShIbmUsInJlbmRlclNwZWMiKX0pO2Z1bmN0aW9uIGNHYShzLGUpe3JldHVybiBzK2UqZ3VhfWZ1bmN0aW9uIGJ1YShzKXtyZXR1cm4gcyZtdWF9ZnVuY3Rpb24gZEdhKHMpe3JldHVybihzLShzJm11YSkpL2d1YX1mdW5jdGlvbiB5dHQocyxlLHQpe2xldCBhPVtdO2ZvcihsZXQgcj0wO3I8cy5jaGlsZENvdW50O3IrKyl7bGV0IG49cy5jaGlsZChyKTtuLmNvbnRlbnQuc2l6ZSYmKG49bi5jb3B5KHl0dChuLmNvbnRlbnQsZSxuKSkpLG4uaXNJbmxpbmUmJihuPWUobix0LHIpKSxhLnB1c2gobil9cmV0dXJuIHJ0LmZyb21BcnJheShhKX1mdW5jdGlvbiB3dHQocyxlLHQpe2xldCBhPXMucmVzb2x2ZShlKSxyPXQtZSxuPWEuZGVwdGg7Zm9yKDtyPjAmJm4+MCYmYS5pbmRleEFmdGVyKG4pPT1hLm5vZGUobikuY2hpbGRDb3VudDspbi0tLHItLTtpZihyPjApe2xldCBvPWEubm9kZShuKS5tYXliZUNoaWxkKGEuaW5kZXhBZnRlcihuKSk7Zm9yKDtyPjA7KXtpZighb3x8by5pc0xlYWYpcmV0dXJuITA7bz1vLmZpcnN0Q2hpbGQsci0tfX1yZXR1cm4hMX1mdW5jdGlvbiB1R2EocyxlLHQsYSl7bGV0IHI9W10sbj1bXSxvLGw7cy5kb2Mubm9kZXNCZXR3ZWVuKGUsdCwocCxkLHUpPT57aWYoIXAuaXNJbmxpbmUpcmV0dXJuO2xldCBjPXAubWFya3M7aWYoIWEuaXNJblNldChjKSYmdS50eXBlLmFsbG93c01hcmtUeXBlKGEudHlwZSkpe2xldCBiPU1hdGgubWF4KGQsZSksdj1NYXRoLm1pbihkK3Aubm9kZVNpemUsdCkseD1hLmFkZFRvU2V0KGMpO2ZvcihsZXQgbT0wO208Yy5sZW5ndGg7bSsrKWNbbV0uaXNJblNldCh4KXx8KG8mJm8udG89PWImJm8ubWFyay5lcShjW21dKT9vLnRvPXY6ci5wdXNoKG89bmV3IE1oKGIsdixjW21dKSkpO2wmJmwudG89PWI/bC50bz12Om4ucHVzaChsPW5ldyB3dihiLHYsYSkpfX0pLHIuZm9yRWFjaChwPT5zLnN0ZXAocCkpLG4uZm9yRWFjaChwPT5zLnN0ZXAocCkpfWZ1bmN0aW9uIHBHYShzLGUsdCxhKXtsZXQgcj1bXSxuPTA7cy5kb2Mubm9kZXNCZXR3ZWVuKGUsdCwobyxsKT0+e2lmKCFvLmlzSW5saW5lKXJldHVybjtuKys7bGV0IHA9bnVsbDtpZihhIGluc3RhbmNlb2YgdnYpe2xldCBkPW8ubWFya3MsdTtmb3IoO3U9YS5pc0luU2V0KGQpOykocHx8KHA9W10pKS5wdXNoKHUpLGQ9dS5yZW1vdmVGcm9tU2V0KGQpfWVsc2UgYT9hLmlzSW5TZXQoby5tYXJrcykmJihwPVthXSk6cD1vLm1hcmtzO2lmKHAmJnAubGVuZ3RoKXtsZXQgZD1NYXRoLm1pbihsK28ubm9kZVNpemUsdCk7Zm9yKGxldCB1PTA7dTxwLmxlbmd0aDt1Kyspe2xldCBjPXBbdV0sYjtmb3IobGV0IHY9MDt2PHIubGVuZ3RoO3YrKyl7bGV0IHg9clt2XTt4LnN0ZXA9PW4tMSYmYy5lcShyW3ZdLnN0eWxlKSYmKGI9eCl9Yj8oYi50bz1kLGIuc3RlcD1uKTpyLnB1c2goe3N0eWxlOmMsZnJvbTpNYXRoLm1heChsLGUpLHRvOmQsc3RlcDpufSl9fX0pLHIuZm9yRWFjaChvPT5zLnN0ZXAobmV3IE1oKG8uZnJvbSxvLnRvLG8uc3R5bGUpKSl9ZnVuY3Rpb24ga3R0KHMsZSx0LGE9dC5jb250ZW50TWF0Y2gscj0hMCl7bGV0IG49cy5kb2Mubm9kZUF0KGUpLG89W10sbD1lKzE7Zm9yKGxldCBwPTA7cDxuLmNoaWxkQ291bnQ7cCsrKXtsZXQgZD1uLmNoaWxkKHApLHU9bCtkLm5vZGVTaXplLGM9YS5tYXRjaFR5cGUoZC50eXBlKTtpZighYylvLnB1c2gobmV3IGdvKGwsdSxfdC5lbXB0eSkpO2Vsc2V7YT1jO2ZvcihsZXQgYj0wO2I8ZC5tYXJrcy5sZW5ndGg7YisrKXQuYWxsb3dzTWFya1R5cGUoZC5tYXJrc1tiXS50eXBlKXx8cy5zdGVwKG5ldyBNaChsLHUsZC5tYXJrc1tiXSkpO2lmKHImJmQuaXNUZXh0JiZ0LndoaXRlc3BhY2UhPSJwcmUiKXtsZXQgYix2PS9ccj9cbnxcci9nLHg7Zm9yKDtiPXYuZXhlYyhkLnRleHQpOyl4fHwoeD1uZXcgX3QocnQuZnJvbSh0LnNjaGVtYS50ZXh0KCIgIix0LmFsbG93ZWRNYXJrcyhkLm1hcmtzKSkpLDAsMCkpLG8ucHVzaChuZXcgZ28obCtiLmluZGV4LGwrYi5pbmRleCtiWzBdLmxlbmd0aCx4KSl9fWw9dX1pZighYS52YWxpZEVuZCl7bGV0IHA9YS5maWxsQmVmb3JlKHJ0LmVtcHR5LCEwKTtzLnJlcGxhY2UobCxsLG5ldyBfdChwLDAsMCkpfWZvcihsZXQgcD1vLmxlbmd0aC0xO3A+PTA7cC0tKXMuc3RlcChvW3BdKX1mdW5jdGlvbiBoR2EocyxlLHQpe3JldHVybihlPT0wfHxzLmNhblJlcGxhY2UoZSxzLmNoaWxkQ291bnQpKSYmKHQ9PXMuY2hpbGRDb3VudHx8cy5jYW5SZXBsYWNlKDAsdCkpfWZ1bmN0aW9uIFBkKHMpe2xldCB0PXMucGFyZW50LmNvbnRlbnQuY3V0QnlJbmRleChzLnN0YXJ0SW5kZXgscy5lbmRJbmRleCk7Zm9yKGxldCBhPXMuZGVwdGgscj0wLG49MDs7LS1hKXtsZXQgbz1zLiRmcm9tLm5vZGUoYSksbD1zLiRmcm9tLmluZGV4KGEpK3IscD1zLiR0by5pbmRleEFmdGVyKGEpLW47aWYoYTxzLmRlcHRoJiZvLmNhblJlcGxhY2UobCxwLHQpKXJldHVybiBhO2lmKGE9PTB8fG8udHlwZS5zcGVjLmlzb2xhdGluZ3x8IWhHYShvLGwscCkpYnJlYWs7bCYmKHI9MSkscDxvLmNoaWxkQ291bnQmJihuPTEpfXJldHVybiBudWxsfWZ1bmN0aW9uIGZHYShzLGUsdCl7bGV0eyRmcm9tOmEsJHRvOnIsZGVwdGg6bn09ZSxvPWEuYmVmb3JlKG4rMSksbD1yLmFmdGVyKG4rMSkscD1vLGQ9bCx1PXJ0LmVtcHR5LGM9MDtmb3IobGV0IHg9bixtPSExO3g+dDt4LS0pbXx8YS5pbmRleCh4KT4wPyhtPSEwLHU9cnQuZnJvbShhLm5vZGUoeCkuY29weSh1KSksYysrKTpwLS07bGV0IGI9cnQuZW1wdHksdj0wO2ZvcihsZXQgeD1uLG09ITE7eD50O3gtLSltfHxyLmFmdGVyKHgrMSk8ci5lbmQoeCk/KG09ITAsYj1ydC5mcm9tKHIubm9kZSh4KS5jb3B5KGIpKSx2KyspOmQrKztzLnN0ZXAobmV3IGRyKHAsZCxvLGwsbmV3IF90KHUuYXBwZW5kKGIpLGMsdiksdS5zaXplLWMsITApKX1mdW5jdGlvbiBLOChzLGUsdD1udWxsLGE9cyl7bGV0IHI9bUdhKHMsZSksbj1yJiZnR2EoYSxlKTtyZXR1cm4gbj9yLm1hcCh3dWEpLmNvbmNhdCh7dHlwZTplLGF0dHJzOnR9KS5jb25jYXQobi5tYXAod3VhKSk6bnVsbH1mdW5jdGlvbiB3dWEocyl7cmV0dXJue3R5cGU6cyxhdHRyczpudWxsfX1mdW5jdGlvbiBtR2EocyxlKXtsZXR7cGFyZW50OnQsc3RhcnRJbmRleDphLGVuZEluZGV4OnJ9PXMsbj10LmNvbnRlbnRNYXRjaEF0KGEpLmZpbmRXcmFwcGluZyhlKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uLmxlbmd0aD9uWzBdOmU7cmV0dXJuIHQuY2FuUmVwbGFjZVdpdGgoYSxyLG8pP246bnVsbH1mdW5jdGlvbiBnR2EocyxlKXtsZXR7cGFyZW50OnQsc3RhcnRJbmRleDphLGVuZEluZGV4OnJ9PXMsbj10LmNoaWxkKGEpLG89ZS5jb250ZW50TWF0Y2guZmluZFdyYXBwaW5nKG4udHlwZSk7aWYoIW8pcmV0dXJuIG51bGw7bGV0IHA9KG8ubGVuZ3RoP29bby5sZW5ndGgtMV06ZSkuY29udGVudE1hdGNoO2ZvcihsZXQgZD1hO3AmJmQ8cjtkKyspcD1wLm1hdGNoVHlwZSh0LmNoaWxkKGQpLnR5cGUpO3JldHVybiFwfHwhcC52YWxpZEVuZD9udWxsOm99ZnVuY3Rpb24gYkdhKHMsZSx0KXtsZXQgYT1ydC5lbXB0eTtmb3IobGV0IG89dC5sZW5ndGgtMTtvPj0wO28tLSl7aWYoYS5zaXplKXtsZXQgbD10W29dLnR5cGUuY29udGVudE1hdGNoLm1hdGNoRnJhZ21lbnQoYSk7aWYoIWx8fCFsLnZhbGlkRW5kKXRocm93IG5ldyBSYW5nZUVycm9yKCJXcmFwcGVyIHR5cGUgZ2l2ZW4gdG8gVHJhbnNmb3JtLndyYXAgZG9lcyBub3QgZm9ybSB2YWxpZCBjb250ZW50IG9mIGl0cyBwYXJlbnQgd3JhcHBlciIpfWE9cnQuZnJvbSh0W29dLnR5cGUuY3JlYXRlKHRbb10uYXR0cnMsYSkpfWxldCByPWUuc3RhcnQsbj1lLmVuZDtzLnN0ZXAobmV3IGRyKHIsbixyLG4sbmV3IF90KGEsMCwwKSx0Lmxlbmd0aCwhMCkpfWZ1bmN0aW9uIHZHYShzLGUsdCxhLHIpe2lmKCFhLmlzVGV4dGJsb2NrKXRocm93IG5ldyBSYW5nZUVycm9yKCJUeXBlIGdpdmVuIHRvIHNldEJsb2NrVHlwZSBzaG91bGQgYmUgYSB0ZXh0YmxvY2siKTtsZXQgbj1zLnN0ZXBzLmxlbmd0aDtzLmRvYy5ub2Rlc0JldHdlZW4oZSx0LChvLGwpPT57bGV0IHA9dHlwZW9mIHI9PSJmdW5jdGlvbiI/cihvKTpyO2lmKG8uaXNUZXh0YmxvY2smJiFvLmhhc01hcmt1cChhLHApJiZ4R2Eocy5kb2Mscy5tYXBwaW5nLnNsaWNlKG4pLm1hcChsKSxhKSl7bGV0IGQ9bnVsbDtpZihhLnNjaGVtYS5saW5lYnJlYWtSZXBsYWNlbWVudCl7bGV0IHY9YS53aGl0ZXNwYWNlPT0icHJlIix4PSEhYS5jb250ZW50TWF0Y2gubWF0Y2hUeXBlKGEuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50KTt2JiYheD9kPSExOiF2JiZ4JiYoZD0hMCl9ZD09PSExJiZTdWEocyxvLGwsbiksa3R0KHMscy5tYXBwaW5nLnNsaWNlKG4pLm1hcChsLDEpLGEsdm9pZCAwLGQ9PT1udWxsKTtsZXQgdT1zLm1hcHBpbmcuc2xpY2UobiksYz11Lm1hcChsLDEpLGI9dS5tYXAobCtvLm5vZGVTaXplLDEpO3JldHVybiBzLnN0ZXAobmV3IGRyKGMsYixjKzEsYi0xLG5ldyBfdChydC5mcm9tKGEuY3JlYXRlKHAsbnVsbCxvLm1hcmtzKSksMCwwKSwxLCEwKSksZD09PSEwJiZrdWEocyxvLGwsbiksITF9fSl9ZnVuY3Rpb24ga3VhKHMsZSx0LGEpe2UuZm9yRWFjaCgocixuKT0+e2lmKHIuaXNUZXh0KXtsZXQgbyxsPS9ccj9cbnxcci9nO2Zvcig7bz1sLmV4ZWMoci50ZXh0KTspe2xldCBwPXMubWFwcGluZy5zbGljZShhKS5tYXAodCsxK24rby5pbmRleCk7cy5yZXBsYWNlV2l0aChwLHArMSxlLnR5cGUuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpKX19fSl9ZnVuY3Rpb24gU3VhKHMsZSx0LGEpe2UuZm9yRWFjaCgocixuKT0+e2lmKHIudHlwZT09ci50eXBlLnNjaGVtYS5saW5lYnJlYWtSZXBsYWNlbWVudCl7bGV0IG89cy5tYXBwaW5nLnNsaWNlKGEpLm1hcCh0KzErbik7cy5yZXBsYWNlV2l0aChvLG8rMSxlLnR5cGUuc2NoZW1hLnRleHQoYApgKSl9fSl9ZnVuY3Rpb24geEdhKHMsZSx0KXtsZXQgYT1zLnJlc29sdmUoZSkscj1hLmluZGV4KCk7cmV0dXJuIGEucGFyZW50LmNhblJlcGxhY2VXaXRoKHIscisxLHQpfWZ1bmN0aW9uIHlHYShzLGUsdCxhLHIpe2xldCBuPXMuZG9jLm5vZGVBdChlKTtpZighbil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm8gbm9kZSBhdCBnaXZlbiBwb3NpdGlvbiIpO3R8fCh0PW4udHlwZSk7bGV0IG89dC5jcmVhdGUoYSxudWxsLHJ8fG4ubWFya3MpO2lmKG4uaXNMZWFmKXJldHVybiBzLnJlcGxhY2VXaXRoKGUsZStuLm5vZGVTaXplLG8pO2lmKCF0LnZhbGlkQ29udGVudChuLmNvbnRlbnQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGNvbnRlbnQgZm9yIG5vZGUgdHlwZSAiK3QubmFtZSk7cy5zdGVwKG5ldyBkcihlLGUrbi5ub2RlU2l6ZSxlKzEsZStuLm5vZGVTaXplLTEsbmV3IF90KHJ0LmZyb20obyksMCwwKSwxLCEwKSl9ZnVuY3Rpb24gemwocyxlLHQ9MSxhKXtsZXQgcj1zLnJlc29sdmUoZSksbj1yLmRlcHRoLXQsbz1hJiZhW2EubGVuZ3RoLTFdfHxyLnBhcmVudDtpZihuPDB8fHIucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmd8fCFyLnBhcmVudC5jYW5SZXBsYWNlKHIuaW5kZXgoKSxyLnBhcmVudC5jaGlsZENvdW50KXx8IW8udHlwZS52YWxpZENvbnRlbnQoci5wYXJlbnQuY29udGVudC5jdXRCeUluZGV4KHIuaW5kZXgoKSxyLnBhcmVudC5jaGlsZENvdW50KSkpcmV0dXJuITE7Zm9yKGxldCBkPXIuZGVwdGgtMSx1PXQtMjtkPm47ZC0tLHUtLSl7bGV0IGM9ci5ub2RlKGQpLGI9ci5pbmRleChkKTtpZihjLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0IHY9Yy5jb250ZW50LmN1dEJ5SW5kZXgoYixjLmNoaWxkQ291bnQpLHg9YSYmYVt1KzFdO3gmJih2PXYucmVwbGFjZUNoaWxkKDAseC50eXBlLmNyZWF0ZSh4LmF0dHJzKSkpO2xldCBtPWEmJmFbdV18fGM7aWYoIWMuY2FuUmVwbGFjZShiKzEsYy5jaGlsZENvdW50KXx8IW0udHlwZS52YWxpZENvbnRlbnQodikpcmV0dXJuITF9bGV0IGw9ci5pbmRleEFmdGVyKG4pLHA9YSYmYVswXTtyZXR1cm4gci5ub2RlKG4pLmNhblJlcGxhY2VXaXRoKGwsbCxwP3AudHlwZTpyLm5vZGUobisxKS50eXBlKX1mdW5jdGlvbiB3R2EocyxlLHQ9MSxhKXtsZXQgcj1zLmRvYy5yZXNvbHZlKGUpLG49cnQuZW1wdHksbz1ydC5lbXB0eTtmb3IobGV0IGw9ci5kZXB0aCxwPXIuZGVwdGgtdCxkPXQtMTtsPnA7bC0tLGQtLSl7bj1ydC5mcm9tKHIubm9kZShsKS5jb3B5KG4pKTtsZXQgdT1hJiZhW2RdO289cnQuZnJvbSh1P3UudHlwZS5jcmVhdGUodS5hdHRycyxvKTpyLm5vZGUobCkuY29weShvKSl9cy5zdGVwKG5ldyBnbyhlLGUsbmV3IF90KG4uYXBwZW5kKG8pLHQsdCksITApKX1mdW5jdGlvbiBabChzLGUpe2xldCB0PXMucmVzb2x2ZShlKSxhPXQuaW5kZXgoKTtyZXR1cm4gX3VhKHQubm9kZUJlZm9yZSx0Lm5vZGVBZnRlcikmJnQucGFyZW50LmNhblJlcGxhY2UoYSxhKzEpfWZ1bmN0aW9uIGtHYShzLGUpe2UuY29udGVudC5zaXplfHxzLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQoZS50eXBlKTtsZXQgdD1zLmNvbnRlbnRNYXRjaEF0KHMuY2hpbGRDb3VudCkse2xpbmVicmVha1JlcGxhY2VtZW50OmF9PXMudHlwZS5zY2hlbWE7Zm9yKGxldCByPTA7cjxlLmNoaWxkQ291bnQ7cisrKXtsZXQgbj1lLmNoaWxkKHIpLG89bi50eXBlPT1hP3MudHlwZS5zY2hlbWEubm9kZXMudGV4dDpuLnR5cGU7aWYodD10Lm1hdGNoVHlwZShvKSwhdHx8IXMudHlwZS5hbGxvd3NNYXJrcyhuLm1hcmtzKSlyZXR1cm4hMX1yZXR1cm4gdC52YWxpZEVuZH1mdW5jdGlvbiBfdWEocyxlKXtyZXR1cm4hIShzJiZlJiYhcy5pc0xlYWYmJmtHYShzLGUpKX1mdW5jdGlvbiBZOChzLGUsdD0tMSl7bGV0IGE9cy5yZXNvbHZlKGUpO2ZvcihsZXQgcj1hLmRlcHRoOztyLS0pe2xldCBuLG8sbD1hLmluZGV4KHIpO2lmKHI9PWEuZGVwdGg/KG49YS5ub2RlQmVmb3JlLG89YS5ub2RlQWZ0ZXIpOnQ+MD8obj1hLm5vZGUocisxKSxsKyssbz1hLm5vZGUocikubWF5YmVDaGlsZChsKSk6KG49YS5ub2RlKHIpLm1heWJlQ2hpbGQobC0xKSxvPWEubm9kZShyKzEpKSxuJiYhbi5pc1RleHRibG9jayYmX3VhKG4sbykmJmEubm9kZShyKS5jYW5SZXBsYWNlKGwsbCsxKSlyZXR1cm4gZTtpZihyPT0wKWJyZWFrO2U9dDwwP2EuYmVmb3JlKHIpOmEuYWZ0ZXIocil9fWZ1bmN0aW9uIFNHYShzLGUsdCl7bGV0IGE9bnVsbCx7bGluZWJyZWFrUmVwbGFjZW1lbnQ6cn09cy5kb2MudHlwZS5zY2hlbWEsbj1zLmRvYy5yZXNvbHZlKGUtdCksbz1uLm5vZGUoKS50eXBlO2lmKHImJm8uaW5saW5lQ29udGVudCl7bGV0IHU9by53aGl0ZXNwYWNlPT0icHJlIixjPSEhby5jb250ZW50TWF0Y2gubWF0Y2hUeXBlKHIpO3UmJiFjP2E9ITE6IXUmJmMmJihhPSEwKX1sZXQgbD1zLnN0ZXBzLmxlbmd0aDtpZihhPT09ITEpe2xldCB1PXMuZG9jLnJlc29sdmUoZSt0KTtTdWEocyx1Lm5vZGUoKSx1LmJlZm9yZSgpLGwpfW8uaW5saW5lQ29udGVudCYma3R0KHMsZSt0LTEsbyxuLm5vZGUoKS5jb250ZW50TWF0Y2hBdChuLmluZGV4KCkpLGE9PW51bGwpO2xldCBwPXMubWFwcGluZy5zbGljZShsKSxkPXAubWFwKGUtdCk7aWYocy5zdGVwKG5ldyBnbyhkLHAubWFwKGUrdCwtMSksX3QuZW1wdHksITApKSxhPT09ITApe2xldCB1PXMuZG9jLnJlc29sdmUoZCk7a3VhKHMsdS5ub2RlKCksdS5iZWZvcmUoKSxzLnN0ZXBzLmxlbmd0aCl9cmV0dXJuIHN9ZnVuY3Rpb24gTXVhKHMsZSx0KXtsZXQgYT1zLnJlc29sdmUoZSk7aWYoYS5wYXJlbnQuY2FuUmVwbGFjZVdpdGgoYS5pbmRleCgpLGEuaW5kZXgoKSx0KSlyZXR1cm4gZTtpZihhLnBhcmVudE9mZnNldD09MClmb3IobGV0IHI9YS5kZXB0aC0xO3I+PTA7ci0tKXtsZXQgbj1hLmluZGV4KHIpO2lmKGEubm9kZShyKS5jYW5SZXBsYWNlV2l0aChuLG4sdCkpcmV0dXJuIGEuYmVmb3JlKHIrMSk7aWYobj4wKXJldHVybiBudWxsfWlmKGEucGFyZW50T2Zmc2V0PT1hLnBhcmVudC5jb250ZW50LnNpemUpZm9yKGxldCByPWEuZGVwdGgtMTtyPj0wO3ItLSl7bGV0IG49YS5pbmRleEFmdGVyKHIpO2lmKGEubm9kZShyKS5jYW5SZXBsYWNlV2l0aChuLG4sdCkpcmV0dXJuIGEuYWZ0ZXIocisxKTtpZihuPGEubm9kZShyKS5jaGlsZENvdW50KXJldHVybiBudWxsfXJldHVybiBudWxsfWZ1bmN0aW9uIFZaKHMsZSx0KXtsZXQgYT1zLnJlc29sdmUoZSk7aWYoIXQuY29udGVudC5zaXplKXJldHVybiBlO2xldCByPXQuY29udGVudDtmb3IobGV0IG49MDtuPHQub3BlblN0YXJ0O24rKylyPXIuZmlyc3RDaGlsZC5jb250ZW50O2ZvcihsZXQgbj0xO248PSh0Lm9wZW5TdGFydD09MCYmdC5zaXplPzI6MSk7bisrKWZvcihsZXQgbz1hLmRlcHRoO28+PTA7by0tKXtsZXQgbD1vPT1hLmRlcHRoPzA6YS5wb3M8PShhLnN0YXJ0KG8rMSkrYS5lbmQobysxKSkvMj8tMToxLHA9YS5pbmRleChvKSsobD4wPzE6MCksZD1hLm5vZGUobyksdT0hMTtpZihuPT0xKXU9ZC5jYW5SZXBsYWNlKHAscCxyKTtlbHNle2xldCBjPWQuY29udGVudE1hdGNoQXQocCkuZmluZFdyYXBwaW5nKHIuZmlyc3RDaGlsZC50eXBlKTt1PWMmJmQuY2FuUmVwbGFjZVdpdGgocCxwLGNbMF0pfWlmKHUpcmV0dXJuIGw9PTA/YS5wb3M6bDwwP2EuYmVmb3JlKG8rMSk6YS5hZnRlcihvKzEpfXJldHVybiBudWxsfWZ1bmN0aW9uIF92KHMsZSx0PWUsYT1fdC5lbXB0eSl7aWYoZT09dCYmIWEuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgcj1zLnJlc29sdmUoZSksbj1zLnJlc29sdmUodCk7cmV0dXJuIHp1YShyLG4sYSk/bmV3IGdvKGUsdCxhKTpuZXcgU3R0KHIsbixhKS5maXQoKX1mdW5jdGlvbiB6dWEocyxlLHQpe3JldHVybiF0Lm9wZW5TdGFydCYmIXQub3BlbkVuZCYmcy5zdGFydCgpPT1lLnN0YXJ0KCkmJnMucGFyZW50LmNhblJlcGxhY2Uocy5pbmRleCgpLGUuaW5kZXgoKSx0LmNvbnRlbnQpfWZ1bmN0aW9uIEJaKHMsZSx0KXtyZXR1cm4gZT09MD9zLmN1dEJ5SW5kZXgodCxzLmNoaWxkQ291bnQpOnMucmVwbGFjZUNoaWxkKDAscy5maXJzdENoaWxkLmNvcHkoQloocy5maXJzdENoaWxkLmNvbnRlbnQsZS0xLHQpKSl9ZnVuY3Rpb24gSFoocyxlLHQpe3JldHVybiBlPT0wP3MuYXBwZW5kKHQpOnMucmVwbGFjZUNoaWxkKHMuY2hpbGRDb3VudC0xLHMubGFzdENoaWxkLmNvcHkoSFoocy5sYXN0Q2hpbGQuY29udGVudCxlLTEsdCkpKX1mdW5jdGlvbiBfdHQocyxlKXtmb3IobGV0IHQ9MDt0PGU7dCsrKXM9cy5maXJzdENoaWxkLmNvbnRlbnQ7cmV0dXJuIHN9ZnVuY3Rpb24gQ3VhKHMsZSx0KXtpZihlPD0wKXJldHVybiBzO2xldCBhPXMuY29udGVudDtyZXR1cm4gZT4xJiYoYT1hLnJlcGxhY2VDaGlsZCgwLEN1YShhLmZpcnN0Q2hpbGQsZS0xLGEuY2hpbGRDb3VudD09MT90LTE6MCkpKSxlPjAmJihhPXMudHlwZS5jb250ZW50TWF0Y2guZmlsbEJlZm9yZShhKS5hcHBlbmQoYSksdDw9MCYmKGE9YS5hcHBlbmQocy50eXBlLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KGEpLmZpbGxCZWZvcmUocnQuZW1wdHksITApKSkpLHMuY29weShhKX1mdW5jdGlvbiBNdHQocyxlLHQsYSxyKXtsZXQgbj1zLm5vZGUoZSksbz1yP3MuaW5kZXhBZnRlcihlKTpzLmluZGV4KGUpO2lmKG89PW4uY2hpbGRDb3VudCYmIXQuY29tcGF0aWJsZUNvbnRlbnQobi50eXBlKSlyZXR1cm4gbnVsbDtsZXQgbD1hLmZpbGxCZWZvcmUobi5jb250ZW50LCEwLG8pO3JldHVybiBsJiYhX0dhKHQsbi5jb250ZW50LG8pP2w6bnVsbH1mdW5jdGlvbiBfR2EocyxlLHQpe2ZvcihsZXQgYT10O2E8ZS5jaGlsZENvdW50O2ErKylpZighcy5hbGxvd3NNYXJrcyhlLmNoaWxkKGEpLm1hcmtzKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBNR2Eocyl7cmV0dXJuIHMuc3BlYy5kZWZpbmluZ3x8cy5zcGVjLmRlZmluaW5nRm9yQ29udGVudH1mdW5jdGlvbiB6R2EocyxlLHQsYSl7aWYoIWEuc2l6ZSlyZXR1cm4gcy5kZWxldGVSYW5nZShlLHQpO2xldCByPXMuZG9jLnJlc29sdmUoZSksbj1zLmRvYy5yZXNvbHZlKHQpO2lmKHp1YShyLG4sYSkpcmV0dXJuIHMuc3RlcChuZXcgZ28oZSx0LGEpKTtsZXQgbz0kdWEocixuKTtvW28ubGVuZ3RoLTFdPT0wJiZvLnBvcCgpO2xldCBsPS0oci5kZXB0aCsxKTtvLnVuc2hpZnQobCk7Zm9yKGxldCBiPXIuZGVwdGgsdj1yLnBvcy0xO2I+MDtiLS0sdi0tKXtsZXQgeD1yLm5vZGUoYikudHlwZS5zcGVjO2lmKHguZGVmaW5pbmd8fHguZGVmaW5pbmdBc0NvbnRleHR8fHguaXNvbGF0aW5nKWJyZWFrO28uaW5kZXhPZihiKT4tMT9sPWI6ci5iZWZvcmUoYik9PXYmJm8uc3BsaWNlKDEsMCwtYil9bGV0IHA9by5pbmRleE9mKGwpLGQ9W10sdT1hLm9wZW5TdGFydDtmb3IobGV0IGI9YS5jb250ZW50LHY9MDs7disrKXtsZXQgeD1iLmZpcnN0Q2hpbGQ7aWYoZC5wdXNoKHgpLHY9PWEub3BlblN0YXJ0KWJyZWFrO2I9eC5jb250ZW50fWZvcihsZXQgYj11LTE7Yj49MDtiLS0pe2xldCB2PWRbYl0seD1NR2Eodi50eXBlKTtpZih4JiYhdi5zYW1lTWFya3VwKHIubm9kZShNYXRoLmFicyhsKS0xKSkpdT1iO2Vsc2UgaWYoeHx8IXYudHlwZS5pc1RleHRibG9jaylicmVha31mb3IobGV0IGI9YS5vcGVuU3RhcnQ7Yj49MDtiLS0pe2xldCB2PShiK3UrMSklKGEub3BlblN0YXJ0KzEpLHg9ZFt2XTtpZih4KWZvcihsZXQgbT0wO208by5sZW5ndGg7bSsrKXtsZXQgZj1vWyhtK3ApJW8ubGVuZ3RoXSx5PSEwO2Y8MCYmKHk9ITEsZj0tZik7bGV0IE09ci5ub2RlKGYtMSksej1yLmluZGV4KGYtMSk7aWYoTS5jYW5SZXBsYWNlV2l0aCh6LHoseC50eXBlLHgubWFya3MpKXJldHVybiBzLnJlcGxhY2Uoci5iZWZvcmUoZikseT9uLmFmdGVyKGYpOnQsbmV3IF90KFR1YShhLmNvbnRlbnQsMCxhLm9wZW5TdGFydCx2KSx2LGEub3BlbkVuZCkpfX1sZXQgYz1zLnN0ZXBzLmxlbmd0aDtmb3IobGV0IGI9by5sZW5ndGgtMTtiPj0wJiYocy5yZXBsYWNlKGUsdCxhKSwhKHMuc3RlcHMubGVuZ3RoPmMpKTtiLS0pe2xldCB2PW9bYl07djwwfHwoZT1yLmJlZm9yZSh2KSx0PW4uYWZ0ZXIodikpfX1mdW5jdGlvbiBUdWEocyxlLHQsYSxyKXtpZihlPHQpe2xldCBuPXMuZmlyc3RDaGlsZDtzPXMucmVwbGFjZUNoaWxkKDAsbi5jb3B5KFR1YShuLmNvbnRlbnQsZSsxLHQsYSxuKSkpfWlmKGU+YSl7bGV0IG49ci5jb250ZW50TWF0Y2hBdCgwKSxvPW4uZmlsbEJlZm9yZShzKS5hcHBlbmQocyk7cz1vLmFwcGVuZChuLm1hdGNoRnJhZ21lbnQobykuZmlsbEJlZm9yZShydC5lbXB0eSwhMCkpfXJldHVybiBzfWZ1bmN0aW9uIENHYShzLGUsdCxhKXtpZighYS5pc0lubGluZSYmZT09dCYmcy5kb2MucmVzb2x2ZShlKS5wYXJlbnQuY29udGVudC5zaXplKXtsZXQgcj1NdWEocy5kb2MsZSxhLnR5cGUpO3IhPW51bGwmJihlPXQ9cil9cy5yZXBsYWNlUmFuZ2UoZSx0LG5ldyBfdChydC5mcm9tKGEpLDAsMCkpfWZ1bmN0aW9uIFRHYShzLGUsdCl7bGV0IGE9cy5kb2MucmVzb2x2ZShlKSxyPXMuZG9jLnJlc29sdmUodCk7aWYoYS5wYXJlbnQuaXNUZXh0YmxvY2smJnIucGFyZW50LmlzVGV4dGJsb2NrJiZhLnN0YXJ0KCkhPXIuc3RhcnQoKSYmYS5wYXJlbnRPZmZzZXQ9PTAmJnIucGFyZW50T2Zmc2V0PT0wKXtsZXQgbz1hLnNoYXJlZERlcHRoKHQpLGw9ITE7Zm9yKGxldCBwPWEuZGVwdGg7cD5vO3AtLSlhLm5vZGUocCkudHlwZS5zcGVjLmlzb2xhdGluZyYmKGw9ITApO2ZvcihsZXQgcD1yLmRlcHRoO3A+bztwLS0pci5ub2RlKHApLnR5cGUuc3BlYy5pc29sYXRpbmcmJihsPSEwKTtpZighbCl7Zm9yKGxldCBwPWEuZGVwdGg7cD4wJiZlPT1hLnN0YXJ0KHApO3AtLSllPWEuYmVmb3JlKHApO2ZvcihsZXQgcD1yLmRlcHRoO3A+MCYmdD09ci5zdGFydChwKTtwLS0pdD1yLmJlZm9yZShwKTthPXMuZG9jLnJlc29sdmUoZSkscj1zLmRvYy5yZXNvbHZlKHQpfX1sZXQgbj0kdWEoYSxyKTtmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7bGV0IGw9bltvXSxwPW89PW4ubGVuZ3RoLTE7aWYocCYmbD09MHx8YS5ub2RlKGwpLnR5cGUuY29udGVudE1hdGNoLnZhbGlkRW5kKXJldHVybiBzLmRlbGV0ZShhLnN0YXJ0KGwpLHIuZW5kKGwpKTtpZihsPjAmJihwfHxhLm5vZGUobC0xKS5jYW5SZXBsYWNlKGEuaW5kZXgobC0xKSxyLmluZGV4QWZ0ZXIobC0xKSkpKXJldHVybiBzLmRlbGV0ZShhLmJlZm9yZShsKSxyLmFmdGVyKGwpKX1mb3IobGV0IG89MTtvPD1hLmRlcHRoJiZvPD1yLmRlcHRoO28rKylpZihlLWEuc3RhcnQobyk9PWEuZGVwdGgtbyYmdD5hLmVuZChvKSYmci5lbmQobyktdCE9ci5kZXB0aC1vJiZhLnN0YXJ0KG8tMSk9PXIuc3RhcnQoby0xKSYmYS5ub2RlKG8tMSkuY2FuUmVwbGFjZShhLmluZGV4KG8tMSksci5pbmRleChvLTEpKSlyZXR1cm4gcy5kZWxldGUoYS5iZWZvcmUobyksdCk7cy5kZWxldGUoZSx0KX1mdW5jdGlvbiAkdWEocyxlKXtsZXQgdD1bXSxhPU1hdGgubWluKHMuZGVwdGgsZS5kZXB0aCk7Zm9yKGxldCByPWE7cj49MDtyLS0pe2xldCBuPXMuc3RhcnQocik7aWYobjxzLnBvcy0ocy5kZXB0aC1yKXx8ZS5lbmQocik+ZS5wb3MrKGUuZGVwdGgtcil8fHMubm9kZShyKS50eXBlLnNwZWMuaXNvbGF0aW5nfHxlLm5vZGUocikudHlwZS5zcGVjLmlzb2xhdGluZylicmVhazsobj09ZS5zdGFydChyKXx8cj09cy5kZXB0aCYmcj09ZS5kZXB0aCYmcy5wYXJlbnQuaW5saW5lQ29udGVudCYmZS5wYXJlbnQuaW5saW5lQ29udGVudCYmciYmZS5zdGFydChyLTEpPT1uLTEpJiZ0LnB1c2gocil9cmV0dXJuIHR9dmFyIG11YSxndWEsdnVhLHh1YSxxbmUseXVhLHl2LEVkLFN2LHh0dCxYcixtbyx3dixNaCxrdixVOCxnbyxkcixTdHQscVosalosVzgsRzgsemg9ZygoKT0+e19oKCk7bXVhPTY1NTM1LGd1YT1NYXRoLnBvdygyLDE2KTtpKGNHYSwibWFrZVJlY292ZXIiKTtpKGJ1YSwicmVjb3ZlckluZGV4Iik7aShkR2EsInJlY292ZXJPZmZzZXQiKTt2dWE9MSx4dWE9MixxbmU9NCx5dWE9OCx5dj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNYXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5wb3M9ZSx0aGlzLmRlbEluZm89dCx0aGlzLnJlY292ZXI9YX1nZXQgZGVsZXRlZCgpe3JldHVybih0aGlzLmRlbEluZm8meXVhKT4wfWdldCBkZWxldGVkQmVmb3JlKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyYodnVhfHFuZSkpPjB9Z2V0IGRlbGV0ZWRBZnRlcigpe3JldHVybih0aGlzLmRlbEluZm8mKHh1YXxxbmUpKT4wfWdldCBkZWxldGVkQWNyb3NzKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyZxbmUpPjB9fSxFZD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlN0ZXBNYXAiKX1jb25zdHJ1Y3RvcihlLHQ9ITEpe2lmKHRoaXMucmFuZ2VzPWUsdGhpcy5pbnZlcnRlZD10LCFlLmxlbmd0aCYmcy5lbXB0eSlyZXR1cm4gcy5lbXB0eX1yZWNvdmVyKGUpe2xldCB0PTAsYT1idWEoZSk7aWYoIXRoaXMuaW52ZXJ0ZWQpZm9yKGxldCByPTA7cjxhO3IrKyl0Kz10aGlzLnJhbmdlc1tyKjMrMl0tdGhpcy5yYW5nZXNbciozKzFdO3JldHVybiB0aGlzLnJhbmdlc1thKjNdK3QrZEdhKGUpfW1hcFJlc3VsdChlLHQ9MSl7cmV0dXJuIHRoaXMuX21hcChlLHQsITEpfW1hcChlLHQ9MSl7cmV0dXJuIHRoaXMuX21hcChlLHQsITApfV9tYXAoZSx0LGEpe2xldCByPTAsbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBwPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP3I6MCk7aWYocD5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sdT10aGlzLnJhbmdlc1tsK29dLGM9cCtkO2lmKGU8PWMpe2xldCBiPWQ/ZT09cD8tMTplPT1jPzE6dDp0LHY9cCtyKyhiPDA/MDp1KTtpZihhKXJldHVybiB2O2xldCB4PWU9PSh0PDA/cDpjKT9udWxsOmNHYShsLzMsZS1wKSxtPWU9PXA/eHVhOmU9PWM/dnVhOnFuZTtyZXR1cm4odDwwP2UhPXA6ZSE9YykmJihtfD15dWEpLG5ldyB5dih2LG0seCl9cis9dS1kfXJldHVybiBhP2UrcjpuZXcgeXYoZStyLDAsbnVsbCl9dG91Y2hlcyhlLHQpe2xldCBhPTAscj1idWEodCksbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBwPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP2E6MCk7aWYocD5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sdT1wK2Q7aWYoZTw9dSYmbD09ciozKXJldHVybiEwO2ErPXRoaXMucmFuZ2VzW2wrb10tZH1yZXR1cm4hMX1mb3JFYWNoKGUpe2xldCB0PXRoaXMuaW52ZXJ0ZWQ/MjoxLGE9dGhpcy5pbnZlcnRlZD8xOjI7Zm9yKGxldCByPTAsbj0wO3I8dGhpcy5yYW5nZXMubGVuZ3RoO3IrPTMpe2xldCBvPXRoaXMucmFuZ2VzW3JdLGw9by0odGhpcy5pbnZlcnRlZD9uOjApLHA9bysodGhpcy5pbnZlcnRlZD8wOm4pLGQ9dGhpcy5yYW5nZXNbcit0XSx1PXRoaXMucmFuZ2VzW3IrYV07ZShsLGwrZCxwLHArdSksbis9dS1kfX1pbnZlcnQoKXtyZXR1cm4gbmV3IHModGhpcy5yYW5nZXMsIXRoaXMuaW52ZXJ0ZWQpfXRvU3RyaW5nKCl7cmV0dXJuKHRoaXMuaW52ZXJ0ZWQ/Ii0iOiIiKStKU09OLnN0cmluZ2lmeSh0aGlzLnJhbmdlcyl9c3RhdGljIG9mZnNldChlKXtyZXR1cm4gZT09MD9zLmVtcHR5Om5ldyBzKGU8MD9bMCwtZSwwXTpbMCwwLGVdKX19O0VkLmVtcHR5PW5ldyBFZChbXSk7U3Y9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJNYXBwaW5nIil9Y29uc3RydWN0b3IoZSx0LGE9MCxyPWU/ZS5sZW5ndGg6MCl7dGhpcy5taXJyb3I9dCx0aGlzLmZyb209YSx0aGlzLnRvPXIsdGhpcy5fbWFwcz1lfHxbXSx0aGlzLm93bkRhdGE9IShlfHx0KX1nZXQgbWFwcygpe3JldHVybiB0aGlzLl9tYXBzfXNsaWNlKGU9MCx0PXRoaXMubWFwcy5sZW5ndGgpe3JldHVybiBuZXcgcyh0aGlzLl9tYXBzLHRoaXMubWlycm9yLGUsdCl9YXBwZW5kTWFwKGUsdCl7dGhpcy5vd25EYXRhfHwodGhpcy5fbWFwcz10aGlzLl9tYXBzLnNsaWNlKCksdGhpcy5taXJyb3I9dGhpcy5taXJyb3ImJnRoaXMubWlycm9yLnNsaWNlKCksdGhpcy5vd25EYXRhPSEwKSx0aGlzLnRvPXRoaXMuX21hcHMucHVzaChlKSx0IT1udWxsJiZ0aGlzLnNldE1pcnJvcih0aGlzLl9tYXBzLmxlbmd0aC0xLHQpfWFwcGVuZE1hcHBpbmcoZSl7Zm9yKGxldCB0PTAsYT10aGlzLl9tYXBzLmxlbmd0aDt0PGUuX21hcHMubGVuZ3RoO3QrKyl7bGV0IHI9ZS5nZXRNaXJyb3IodCk7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1t0XSxyIT1udWxsJiZyPHQ/YStyOnZvaWQgMCl9fWdldE1pcnJvcihlKXtpZih0aGlzLm1pcnJvcil7Zm9yKGxldCB0PTA7dDx0aGlzLm1pcnJvci5sZW5ndGg7dCsrKWlmKHRoaXMubWlycm9yW3RdPT1lKXJldHVybiB0aGlzLm1pcnJvclt0Kyh0JTI/LTE6MSldfX1zZXRNaXJyb3IoZSx0KXt0aGlzLm1pcnJvcnx8KHRoaXMubWlycm9yPVtdKSx0aGlzLm1pcnJvci5wdXNoKGUsdCl9YXBwZW5kTWFwcGluZ0ludmVydGVkKGUpe2ZvcihsZXQgdD1lLm1hcHMubGVuZ3RoLTEsYT10aGlzLl9tYXBzLmxlbmd0aCtlLl9tYXBzLmxlbmd0aDt0Pj0wO3QtLSl7bGV0IHI9ZS5nZXRNaXJyb3IodCk7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1t0XS5pbnZlcnQoKSxyIT1udWxsJiZyPnQ/YS1yLTE6dm9pZCAwKX19aW52ZXJ0KCl7bGV0IGU9bmV3IHM7cmV0dXJuIGUuYXBwZW5kTWFwcGluZ0ludmVydGVkKHRoaXMpLGV9bWFwKGUsdD0xKXtpZih0aGlzLm1pcnJvcilyZXR1cm4gdGhpcy5fbWFwKGUsdCwhMCk7Zm9yKGxldCBhPXRoaXMuZnJvbTthPHRoaXMudG87YSsrKWU9dGhpcy5fbWFwc1thXS5tYXAoZSx0KTtyZXR1cm4gZX1tYXBSZXN1bHQoZSx0PTEpe3JldHVybiB0aGlzLl9tYXAoZSx0LCExKX1fbWFwKGUsdCxhKXtsZXQgcj0wO2ZvcihsZXQgbj10aGlzLmZyb207bjx0aGlzLnRvO24rKyl7bGV0IG89dGhpcy5fbWFwc1tuXSxsPW8ubWFwUmVzdWx0KGUsdCk7aWYobC5yZWNvdmVyIT1udWxsKXtsZXQgcD10aGlzLmdldE1pcnJvcihuKTtpZihwIT1udWxsJiZwPm4mJnA8dGhpcy50byl7bj1wLGU9dGhpcy5fbWFwc1twXS5yZWNvdmVyKGwucmVjb3Zlcik7Y29udGludWV9fXJ8PWwuZGVsSW5mbyxlPWwucG9zfXJldHVybiBhP2U6bmV3IHl2KGUscixudWxsKX19LHh0dD1PYmplY3QuY3JlYXRlKG51bGwpLFhyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0ZXAiKX1nZXRNYXAoKXtyZXR1cm4gRWQuZW1wdHl9bWVyZ2UoZSl7cmV0dXJuIG51bGx9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXR8fCF0LnN0ZXBUeXBlKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTdGVwLmZyb21KU09OIik7bGV0IGE9eHR0W3Quc3RlcFR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzdGVwIHR5cGUgJHt0LnN0ZXBUeXBlfSBkZWZpbmVkYCk7cmV0dXJuIGEuZnJvbUpTT04oZSx0KX1zdGF0aWMganNvbklEKGUsdCl7aWYoZSBpbiB4dHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkR1cGxpY2F0ZSB1c2Ugb2Ygc3RlcCBKU09OIElEICIrZSk7cmV0dXJuIHh0dFtlXT10LHQucHJvdG90eXBlLmpzb25JRD1lLHR9fSxtbz1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlN0ZXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuZG9jPWUsdGhpcy5mYWlsZWQ9dH1zdGF0aWMgb2soZSl7cmV0dXJuIG5ldyBzKGUsbnVsbCl9c3RhdGljIGZhaWwoZSl7cmV0dXJuIG5ldyBzKG51bGwsZSl9c3RhdGljIGZyb21SZXBsYWNlKGUsdCxhLHIpe3RyeXtyZXR1cm4gcy5vayhlLnJlcGxhY2UodCxhLHIpKX1jYXRjaChuKXtpZihuIGluc3RhbmNlb2Yga2gpcmV0dXJuIHMuZmFpbChuLm1lc3NhZ2UpO3Rocm93IG59fX07aSh5dHQsIm1hcEZyYWdtZW50Iik7d3Y9Y2xhc3MgcyBleHRlbmRzIFhye3N0YXRpY3tpKHRoaXMsIkFkZE1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSx0LGEpe3N1cGVyKCksdGhpcy5mcm9tPWUsdGhpcy50bz10LHRoaXMubWFyaz1hfWFwcGx5KGUpe2xldCB0PWUuc2xpY2UodGhpcy5mcm9tLHRoaXMudG8pLGE9ZS5yZXNvbHZlKHRoaXMuZnJvbSkscj1hLm5vZGUoYS5zaGFyZWREZXB0aCh0aGlzLnRvKSksbj1uZXcgX3QoeXR0KHQuY29udGVudCwobyxsKT0+IW8uaXNBdG9tfHwhbC50eXBlLmFsbG93c01hcmtUeXBlKHRoaXMubWFyay50eXBlKT9vOm8ubWFyayh0aGlzLm1hcmsuYWRkVG9TZXQoby5tYXJrcykpLHIpLHQub3BlblN0YXJ0LHQub3BlbkVuZCk7cmV0dXJuIG1vLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sbil9aW52ZXJ0KCl7cmV0dXJuIG5ldyBNaCh0aGlzLmZyb20sdGhpcy50byx0aGlzLm1hcmspfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKTtyZXR1cm4gdC5kZWxldGVkJiZhLmRlbGV0ZWR8fHQucG9zPj1hLnBvcz9udWxsOm5ldyBzKHQucG9zLGEucG9zLHRoaXMubWFyayl9bWVyZ2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBzJiZlLm1hcmsuZXEodGhpcy5tYXJrKSYmdGhpcy5mcm9tPD1lLnRvJiZ0aGlzLnRvPj1lLmZyb20/bmV3IHMoTWF0aC5taW4odGhpcy5mcm9tLGUuZnJvbSksTWF0aC5tYXgodGhpcy50byxlLnRvKSx0aGlzLm1hcmspOm51bGx9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhZGRNYXJrIixtYXJrOnRoaXMubWFyay50b0pTT04oKSxmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQudG8hPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBBZGRNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LmZyb20sdC50byxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1hyLmpzb25JRCgiYWRkTWFyayIsd3YpO01oPWNsYXNzIHMgZXh0ZW5kcyBYcntzdGF0aWN7aSh0aGlzLCJSZW1vdmVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLm1hcms9YX1hcHBseShlKXtsZXQgdD1lLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKSxhPW5ldyBfdCh5dHQodC5jb250ZW50LHI9PnIubWFyayh0aGlzLm1hcmsucmVtb3ZlRnJvbVNldChyLm1hcmtzKSksZSksdC5vcGVuU3RhcnQsdC5vcGVuRW5kKTtyZXR1cm4gbW8uZnJvbVJlcGxhY2UoZSx0aGlzLmZyb20sdGhpcy50byxhKX1pbnZlcnQoKXtyZXR1cm4gbmV3IHd2KHRoaXMuZnJvbSx0aGlzLnRvLHRoaXMubWFyayl9bWFwKGUpe2xldCB0PWUubWFwUmVzdWx0KHRoaXMuZnJvbSwxKSxhPWUubWFwUmVzdWx0KHRoaXMudG8sLTEpO3JldHVybiB0LmRlbGV0ZWQmJmEuZGVsZXRlZHx8dC5wb3M+PWEucG9zP251bGw6bmV3IHModC5wb3MsYS5wb3MsdGhpcy5tYXJrKX1tZXJnZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHMmJmUubWFyay5lcSh0aGlzLm1hcmspJiZ0aGlzLmZyb208PWUudG8mJnRoaXMudG8+PWUuZnJvbT9uZXcgcyhNYXRoLm1pbih0aGlzLmZyb20sZS5mcm9tKSxNYXRoLm1heCh0aGlzLnRvLGUudG8pLHRoaXMubWFyayk6bnVsbH10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU1hcmsiLG1hcms6dGhpcy5tYXJrLnRvSlNPTigpLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LmZyb20hPSJudW1iZXIifHx0eXBlb2YgdC50byE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU1hcmtTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBzKHQuZnJvbSx0LnRvLGUubWFya0Zyb21KU09OKHQubWFyaykpfX07WHIuanNvbklEKCJyZW1vdmVNYXJrIixNaCk7a3Y9Y2xhc3MgcyBleHRlbmRzIFhye3N0YXRpY3tpKHRoaXMsIkFkZE5vZGVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMubWFyaz10fWFwcGx5KGUpe2xldCB0PWUubm9kZUF0KHRoaXMucG9zKTtpZighdClyZXR1cm4gbW8uZmFpbCgiTm8gbm9kZSBhdCBtYXJrIHN0ZXAncyBwb3NpdGlvbiIpO2xldCBhPXQudHlwZS5jcmVhdGUodC5hdHRycyxudWxsLHRoaXMubWFyay5hZGRUb1NldCh0Lm1hcmtzKSk7cmV0dXJuIG1vLmZyb21SZXBsYWNlKGUsdGhpcy5wb3MsdGhpcy5wb3MrMSxuZXcgX3QocnQuZnJvbShhKSwwLHQuaXNMZWFmPzA6MSkpfWludmVydChlKXtsZXQgdD1lLm5vZGVBdCh0aGlzLnBvcyk7aWYodCl7bGV0IGE9dGhpcy5tYXJrLmFkZFRvU2V0KHQubWFya3MpO2lmKGEubGVuZ3RoPT10Lm1hcmtzLmxlbmd0aCl7Zm9yKGxldCByPTA7cjx0Lm1hcmtzLmxlbmd0aDtyKyspaWYoIXQubWFya3Nbcl0uaXNJblNldChhKSlyZXR1cm4gbmV3IHModGhpcy5wb3MsdC5tYXJrc1tyXSk7cmV0dXJuIG5ldyBzKHRoaXMucG9zLHRoaXMubWFyayl9fXJldHVybiBuZXcgVTgodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHQ9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHQuZGVsZXRlZEFmdGVyP251bGw6bmV3IHModC5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImFkZE5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEFkZE5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LnBvcyxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1hyLmpzb25JRCgiYWRkTm9kZU1hcmsiLGt2KTtVOD1jbGFzcyBzIGV4dGVuZHMgWHJ7c3RhdGlje2kodGhpcywiUmVtb3ZlTm9kZU1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMucG9zPWUsdGhpcy5tYXJrPXR9YXBwbHkoZSl7bGV0IHQ9ZS5ub2RlQXQodGhpcy5wb3MpO2lmKCF0KXJldHVybiBtby5mYWlsKCJObyBub2RlIGF0IG1hcmsgc3RlcCdzIHBvc2l0aW9uIik7bGV0IGE9dC50eXBlLmNyZWF0ZSh0LmF0dHJzLG51bGwsdGhpcy5tYXJrLnJlbW92ZUZyb21TZXQodC5tYXJrcykpO3JldHVybiBtby5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IF90KHJ0LmZyb20oYSksMCx0LmlzTGVhZj8wOjEpKX1pbnZlcnQoZSl7bGV0IHQ9ZS5ub2RlQXQodGhpcy5wb3MpO3JldHVybiF0fHwhdGhpcy5tYXJrLmlzSW5TZXQodC5tYXJrcyk/dGhpczpuZXcga3YodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHQ9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHQuZGVsZXRlZEFmdGVyP251bGw6bmV3IHModC5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LnBvcyxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1hyLmpzb25JRCgicmVtb3ZlTm9kZU1hcmsiLFU4KTtnbz1jbGFzcyBzIGV4dGVuZHMgWHJ7c3RhdGlje2kodGhpcywiUmVwbGFjZVN0ZXAiKX1jb25zdHJ1Y3RvcihlLHQsYSxyPSExKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLnNsaWNlPWEsdGhpcy5zdHJ1Y3R1cmU9cn1hcHBseShlKXtyZXR1cm4gdGhpcy5zdHJ1Y3R1cmUmJnd0dChlLHRoaXMuZnJvbSx0aGlzLnRvKT9tby5mYWlsKCJTdHJ1Y3R1cmUgcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpOm1vLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sdGhpcy5zbGljZSl9Z2V0TWFwKCl7cmV0dXJuIG5ldyBFZChbdGhpcy5mcm9tLHRoaXMudG8tdGhpcy5mcm9tLHRoaXMuc2xpY2Uuc2l6ZV0pfWludmVydChlKXtyZXR1cm4gbmV3IHModGhpcy5mcm9tLHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemUsZS5zbGljZSh0aGlzLmZyb20sdGhpcy50bykpfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKSxhPXRoaXMuZnJvbT09dGhpcy50byYmcy5NQVBfQklBUzwwP3Q6ZS5tYXBSZXN1bHQodGhpcy5mcm9tLDEpO3JldHVybiBhLmRlbGV0ZWRBY3Jvc3MmJnQuZGVsZXRlZEFjcm9zcz9udWxsOm5ldyBzKGEucG9zLE1hdGgubWF4KGEucG9zLHQucG9zKSx0aGlzLnNsaWNlLHRoaXMuc3RydWN0dXJlKX1tZXJnZShlKXtpZighKGUgaW5zdGFuY2VvZiBzKXx8ZS5zdHJ1Y3R1cmV8fHRoaXMuc3RydWN0dXJlKXJldHVybiBudWxsO2lmKHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemU9PWUuZnJvbSYmIXRoaXMuc2xpY2Uub3BlbkVuZCYmIWUuc2xpY2Uub3BlblN0YXJ0KXtsZXQgdD10aGlzLnNsaWNlLnNpemUrZS5zbGljZS5zaXplPT0wP190LmVtcHR5Om5ldyBfdCh0aGlzLnNsaWNlLmNvbnRlbnQuYXBwZW5kKGUuc2xpY2UuY29udGVudCksdGhpcy5zbGljZS5vcGVuU3RhcnQsZS5zbGljZS5vcGVuRW5kKTtyZXR1cm4gbmV3IHModGhpcy5mcm9tLHRoaXMudG8rKGUudG8tZS5mcm9tKSx0LHRoaXMuc3RydWN0dXJlKX1lbHNlIGlmKGUudG89PXRoaXMuZnJvbSYmIXRoaXMuc2xpY2Uub3BlblN0YXJ0JiYhZS5zbGljZS5vcGVuRW5kKXtsZXQgdD10aGlzLnNsaWNlLnNpemUrZS5zbGljZS5zaXplPT0wP190LmVtcHR5Om5ldyBfdChlLnNsaWNlLmNvbnRlbnQuYXBwZW5kKHRoaXMuc2xpY2UuY29udGVudCksZS5zbGljZS5vcGVuU3RhcnQsdGhpcy5zbGljZS5vcGVuRW5kKTtyZXR1cm4gbmV3IHMoZS5mcm9tLHRoaXMudG8sdCx0aGlzLnN0cnVjdHVyZSl9ZWxzZSByZXR1cm4gbnVsbH10b0pTT04oKXtsZXQgZT17c3RlcFR5cGU6InJlcGxhY2UiLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99O3JldHVybiB0aGlzLnNsaWNlLnNpemUmJihlLnNsaWNlPXRoaXMuc2xpY2UudG9KU09OKCkpLHRoaXMuc3RydWN0dXJlJiYoZS5zdHJ1Y3R1cmU9ITApLGV9c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuZnJvbSE9Im51bWJlciJ8fHR5cGVvZiB0LnRvIT0ibnVtYmVyIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgUmVwbGFjZVN0ZXAuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHModC5mcm9tLHQudG8sX3QuZnJvbUpTT04oZSx0LnNsaWNlKSwhIXQuc3RydWN0dXJlKX19O2dvLk1BUF9CSUFTPTEsWHIuanNvbklEKCJyZXBsYWNlIixnbyk7ZHI9Y2xhc3MgcyBleHRlbmRzIFhye3N0YXRpY3tpKHRoaXMsIlJlcGxhY2VBcm91bmRTdGVwIil9Y29uc3RydWN0b3IoZSx0LGEscixuLG8sbD0hMSl7c3VwZXIoKSx0aGlzLmZyb209ZSx0aGlzLnRvPXQsdGhpcy5nYXBGcm9tPWEsdGhpcy5nYXBUbz1yLHRoaXMuc2xpY2U9bix0aGlzLmluc2VydD1vLHRoaXMuc3RydWN0dXJlPWx9YXBwbHkoZSl7aWYodGhpcy5zdHJ1Y3R1cmUmJih3dHQoZSx0aGlzLmZyb20sdGhpcy5nYXBGcm9tKXx8d3R0KGUsdGhpcy5nYXBUbyx0aGlzLnRvKSkpcmV0dXJuIG1vLmZhaWwoIlN0cnVjdHVyZSBnYXAtcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpO2xldCB0PWUuc2xpY2UodGhpcy5nYXBGcm9tLHRoaXMuZ2FwVG8pO2lmKHQub3BlblN0YXJ0fHx0Lm9wZW5FbmQpcmV0dXJuIG1vLmZhaWwoIkdhcCBpcyBub3QgYSBmbGF0IHJhbmdlIik7bGV0IGE9dGhpcy5zbGljZS5pbnNlcnRBdCh0aGlzLmluc2VydCx0LmNvbnRlbnQpO3JldHVybiBhP21vLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sYSk6bW8uZmFpbCgiQ29udGVudCBkb2VzIG5vdCBmaXQgaW4gZ2FwIil9Z2V0TWFwKCl7cmV0dXJuIG5ldyBFZChbdGhpcy5mcm9tLHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5pbnNlcnQsdGhpcy5nYXBUbyx0aGlzLnRvLXRoaXMuZ2FwVG8sdGhpcy5zbGljZS5zaXplLXRoaXMuaW5zZXJ0XSl9aW52ZXJ0KGUpe2xldCB0PXRoaXMuZ2FwVG8tdGhpcy5nYXBGcm9tO3JldHVybiBuZXcgcyh0aGlzLmZyb20sdGhpcy5mcm9tK3RoaXMuc2xpY2Uuc2l6ZSt0LHRoaXMuZnJvbSt0aGlzLmluc2VydCx0aGlzLmZyb20rdGhpcy5pbnNlcnQrdCxlLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKS5yZW1vdmVCZXR3ZWVuKHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5nYXBUby10aGlzLmZyb20pLHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5zdHJ1Y3R1cmUpfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKSxyPXRoaXMuZnJvbT09dGhpcy5nYXBGcm9tP3QucG9zOmUubWFwKHRoaXMuZ2FwRnJvbSwtMSksbj10aGlzLnRvPT10aGlzLmdhcFRvP2EucG9zOmUubWFwKHRoaXMuZ2FwVG8sMSk7cmV0dXJuIHQuZGVsZXRlZEFjcm9zcyYmYS5kZWxldGVkQWNyb3NzfHxyPHQucG9zfHxuPmEucG9zP251bGw6bmV3IHModC5wb3MsYS5wb3MscixuLHRoaXMuc2xpY2UsdGhpcy5pbnNlcnQsdGhpcy5zdHJ1Y3R1cmUpfXRvSlNPTigpe2xldCBlPXtzdGVwVHlwZToicmVwbGFjZUFyb3VuZCIsZnJvbTp0aGlzLmZyb20sdG86dGhpcy50byxnYXBGcm9tOnRoaXMuZ2FwRnJvbSxnYXBUbzp0aGlzLmdhcFRvLGluc2VydDp0aGlzLmluc2VydH07cmV0dXJuIHRoaXMuc2xpY2Uuc2l6ZSYmKGUuc2xpY2U9dGhpcy5zbGljZS50b0pTT04oKSksdGhpcy5zdHJ1Y3R1cmUmJihlLnN0cnVjdHVyZT0hMCksZX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQudG8hPSJudW1iZXIifHx0eXBlb2YgdC5nYXBGcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQuZ2FwVG8hPSJudW1iZXIifHx0eXBlb2YgdC5pbnNlcnQhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBSZXBsYWNlQXJvdW5kU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgcyh0LmZyb20sdC50byx0LmdhcEZyb20sdC5nYXBUbyxfdC5mcm9tSlNPTihlLHQuc2xpY2UpLHQuaW5zZXJ0LCEhdC5zdHJ1Y3R1cmUpfX07WHIuanNvbklEKCJyZXBsYWNlQXJvdW5kIixkcik7aSh3dHQsImNvbnRlbnRCZXR3ZWVuIik7aSh1R2EsImFkZE1hcmsiKTtpKHBHYSwicmVtb3ZlTWFyayIpO2koa3R0LCJjbGVhckluY29tcGF0aWJsZSIpO2koaEdhLCJjYW5DdXQiKTtpKFBkLCJsaWZ0VGFyZ2V0Iik7aShmR2EsImxpZnQiKTtpKEs4LCJmaW5kV3JhcHBpbmciKTtpKHd1YSwid2l0aEF0dHJzIik7aShtR2EsImZpbmRXcmFwcGluZ091dHNpZGUiKTtpKGdHYSwiZmluZFdyYXBwaW5nSW5zaWRlIik7aShiR2EsIndyYXAiKTtpKHZHYSwic2V0QmxvY2tUeXBlIik7aShrdWEsInJlcGxhY2VOZXdsaW5lcyIpO2koU3VhLCJyZXBsYWNlTGluZWJyZWFrcyIpO2koeEdhLCJjYW5DaGFuZ2VUeXBlIik7aSh5R2EsInNldE5vZGVNYXJrdXAiKTtpKHpsLCJjYW5TcGxpdCIpO2kod0dhLCJzcGxpdCIpO2koWmwsImNhbkpvaW4iKTtpKGtHYSwiY2FuQXBwZW5kV2l0aFN1YnN0aXR1dGVkTGluZWJyZWFrcyIpO2koX3VhLCJqb2luYWJsZSIpO2koWTgsImpvaW5Qb2ludCIpO2koU0dhLCJqb2luIik7aShNdWEsImluc2VydFBvaW50Iik7aShWWiwiZHJvcFBvaW50Iik7aShfdiwicmVwbGFjZVN0ZXAiKTtpKHp1YSwiZml0c1RyaXZpYWxseSIpO1N0dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGaXR0ZXIiKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXQsdGhpcy51bnBsYWNlZD1hLHRoaXMuZnJvbnRpZXI9W10sdGhpcy5wbGFjZWQ9cnQuZW1wdHk7Zm9yKGxldCByPTA7cjw9ZS5kZXB0aDtyKyspe2xldCBuPWUubm9kZShyKTt0aGlzLmZyb250aWVyLnB1c2goe3R5cGU6bi50eXBlLG1hdGNoOm4uY29udGVudE1hdGNoQXQoZS5pbmRleEFmdGVyKHIpKX0pfWZvcihsZXQgcj1lLmRlcHRoO3I+MDtyLS0pdGhpcy5wbGFjZWQ9cnQuZnJvbShlLm5vZGUocikuY29weSh0aGlzLnBsYWNlZCkpfWdldCBkZXB0aCgpe3JldHVybiB0aGlzLmZyb250aWVyLmxlbmd0aC0xfWZpdCgpe2Zvcig7dGhpcy51bnBsYWNlZC5zaXplOyl7bGV0IGQ9dGhpcy5maW5kRml0dGFibGUoKTtkP3RoaXMucGxhY2VOb2RlcyhkKTp0aGlzLm9wZW5Nb3JlKCl8fHRoaXMuZHJvcE5vZGUoKX1sZXQgZT10aGlzLm11c3RNb3ZlSW5saW5lKCksdD10aGlzLnBsYWNlZC5zaXplLXRoaXMuZGVwdGgtdGhpcy4kZnJvbS5kZXB0aCxhPXRoaXMuJGZyb20scj10aGlzLmNsb3NlKGU8MD90aGlzLiR0bzphLmRvYy5yZXNvbHZlKGUpKTtpZighcilyZXR1cm4gbnVsbDtsZXQgbj10aGlzLnBsYWNlZCxvPWEuZGVwdGgsbD1yLmRlcHRoO2Zvcig7byYmbCYmbi5jaGlsZENvdW50PT0xOyluPW4uZmlyc3RDaGlsZC5jb250ZW50LG8tLSxsLS07bGV0IHA9bmV3IF90KG4sbyxsKTtyZXR1cm4gZT4tMT9uZXcgZHIoYS5wb3MsZSx0aGlzLiR0by5wb3MsdGhpcy4kdG8uZW5kKCkscCx0KTpwLnNpemV8fGEucG9zIT10aGlzLiR0by5wb3M/bmV3IGdvKGEucG9zLHIucG9zLHApOm51bGx9ZmluZEZpdHRhYmxlKCl7bGV0IGU9dGhpcy51bnBsYWNlZC5vcGVuU3RhcnQ7Zm9yKGxldCB0PXRoaXMudW5wbGFjZWQuY29udGVudCxhPTAscj10aGlzLnVucGxhY2VkLm9wZW5FbmQ7YTxlO2ErKyl7bGV0IG49dC5maXJzdENoaWxkO2lmKHQuY2hpbGRDb3VudD4xJiYocj0wKSxuLnR5cGUuc3BlYy5pc29sYXRpbmcmJnI8PWEpe2U9YTticmVha310PW4uY29udGVudH1mb3IobGV0IHQ9MTt0PD0yO3QrKylmb3IobGV0IGE9dD09MT9lOnRoaXMudW5wbGFjZWQub3BlblN0YXJ0O2E+PTA7YS0tKXtsZXQgcixuPW51bGw7YT8obj1fdHQodGhpcy51bnBsYWNlZC5jb250ZW50LGEtMSkuZmlyc3RDaGlsZCxyPW4uY29udGVudCk6cj10aGlzLnVucGxhY2VkLmNvbnRlbnQ7bGV0IG89ci5maXJzdENoaWxkO2ZvcihsZXQgbD10aGlzLmRlcHRoO2w+PTA7bC0tKXtsZXR7dHlwZTpwLG1hdGNoOmR9PXRoaXMuZnJvbnRpZXJbbF0sdSxjPW51bGw7aWYodD09MSYmKG8/ZC5tYXRjaFR5cGUoby50eXBlKXx8KGM9ZC5maWxsQmVmb3JlKHJ0LmZyb20obyksITEpKTpuJiZwLmNvbXBhdGlibGVDb250ZW50KG4udHlwZSkpKXJldHVybntzbGljZURlcHRoOmEsZnJvbnRpZXJEZXB0aDpsLHBhcmVudDpuLGluamVjdDpjfTtpZih0PT0yJiZvJiYodT1kLmZpbmRXcmFwcGluZyhvLnR5cGUpKSlyZXR1cm57c2xpY2VEZXB0aDphLGZyb250aWVyRGVwdGg6bCxwYXJlbnQ6bix3cmFwOnV9O2lmKG4mJmQubWF0Y2hUeXBlKG4udHlwZSkpYnJlYWt9fX1vcGVuTW9yZSgpe2xldHtjb250ZW50OmUsb3BlblN0YXJ0OnQsb3BlbkVuZDphfT10aGlzLnVucGxhY2VkLHI9X3R0KGUsdCk7cmV0dXJuIXIuY2hpbGRDb3VudHx8ci5maXJzdENoaWxkLmlzTGVhZj8hMToodGhpcy51bnBsYWNlZD1uZXcgX3QoZSx0KzEsTWF0aC5tYXgoYSxyLnNpemUrdD49ZS5zaXplLWE/dCsxOjApKSwhMCl9ZHJvcE5vZGUoKXtsZXR7Y29udGVudDplLG9wZW5TdGFydDp0LG9wZW5FbmQ6YX09dGhpcy51bnBsYWNlZCxyPV90dChlLHQpO2lmKHIuY2hpbGRDb3VudDw9MSYmdD4wKXtsZXQgbj1lLnNpemUtdDw9dCtyLnNpemU7dGhpcy51bnBsYWNlZD1uZXcgX3QoQlooZSx0LTEsMSksdC0xLG4/dC0xOmEpfWVsc2UgdGhpcy51bnBsYWNlZD1uZXcgX3QoQlooZSx0LDEpLHQsYSl9cGxhY2VOb2Rlcyh7c2xpY2VEZXB0aDplLGZyb250aWVyRGVwdGg6dCxwYXJlbnQ6YSxpbmplY3Q6cix3cmFwOm59KXtmb3IoO3RoaXMuZGVwdGg+dDspdGhpcy5jbG9zZUZyb250aWVyTm9kZSgpO2lmKG4pZm9yKGxldCBtPTA7bTxuLmxlbmd0aDttKyspdGhpcy5vcGVuRnJvbnRpZXJOb2RlKG5bbV0pO2xldCBvPXRoaXMudW5wbGFjZWQsbD1hP2EuY29udGVudDpvLmNvbnRlbnQscD1vLm9wZW5TdGFydC1lLGQ9MCx1PVtdLHttYXRjaDpjLHR5cGU6Yn09dGhpcy5mcm9udGllclt0XTtpZihyKXtmb3IobGV0IG09MDttPHIuY2hpbGRDb3VudDttKyspdS5wdXNoKHIuY2hpbGQobSkpO2M9Yy5tYXRjaEZyYWdtZW50KHIpfWxldCB2PWwuc2l6ZStlLShvLmNvbnRlbnQuc2l6ZS1vLm9wZW5FbmQpO2Zvcig7ZDxsLmNoaWxkQ291bnQ7KXtsZXQgbT1sLmNoaWxkKGQpLGY9Yy5tYXRjaFR5cGUobS50eXBlKTtpZighZilicmVhaztkKyssKGQ+MXx8cD09MHx8bS5jb250ZW50LnNpemUpJiYoYz1mLHUucHVzaChDdWEobS5tYXJrKGIuYWxsb3dlZE1hcmtzKG0ubWFya3MpKSxkPT0xP3A6MCxkPT1sLmNoaWxkQ291bnQ/djotMSkpKX1sZXQgeD1kPT1sLmNoaWxkQ291bnQ7eHx8KHY9LTEpLHRoaXMucGxhY2VkPUhaKHRoaXMucGxhY2VkLHQscnQuZnJvbSh1KSksdGhpcy5mcm9udGllclt0XS5tYXRjaD1jLHgmJnY8MCYmYSYmYS50eXBlPT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLnR5cGUmJnRoaXMuZnJvbnRpZXIubGVuZ3RoPjEmJnRoaXMuY2xvc2VGcm9udGllck5vZGUoKTtmb3IobGV0IG09MCxmPWw7bTx2O20rKyl7bGV0IHk9Zi5sYXN0Q2hpbGQ7dGhpcy5mcm9udGllci5wdXNoKHt0eXBlOnkudHlwZSxtYXRjaDp5LmNvbnRlbnRNYXRjaEF0KHkuY2hpbGRDb3VudCl9KSxmPXkuY29udGVudH10aGlzLnVucGxhY2VkPXg/ZT09MD9fdC5lbXB0eTpuZXcgX3QoQlooby5jb250ZW50LGUtMSwxKSxlLTEsdjwwP28ub3BlbkVuZDplLTEpOm5ldyBfdChCWihvLmNvbnRlbnQsZSxkKSxvLm9wZW5TdGFydCxvLm9wZW5FbmQpfW11c3RNb3ZlSW5saW5lKCl7aWYoIXRoaXMuJHRvLnBhcmVudC5pc1RleHRibG9jaylyZXR1cm4tMTtsZXQgZT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLHQ7aWYoIWUudHlwZS5pc1RleHRibG9ja3x8IU10dCh0aGlzLiR0byx0aGlzLiR0by5kZXB0aCxlLnR5cGUsZS5tYXRjaCwhMSl8fHRoaXMuJHRvLmRlcHRoPT10aGlzLmRlcHRoJiYodD10aGlzLmZpbmRDbG9zZUxldmVsKHRoaXMuJHRvKSkmJnQuZGVwdGg9PXRoaXMuZGVwdGgpcmV0dXJuLTE7bGV0e2RlcHRoOmF9PXRoaXMuJHRvLHI9dGhpcy4kdG8uYWZ0ZXIoYSk7Zm9yKDthPjEmJnI9PXRoaXMuJHRvLmVuZCgtLWEpOykrK3I7cmV0dXJuIHJ9ZmluZENsb3NlTGV2ZWwoZSl7ZTpmb3IobGV0IHQ9TWF0aC5taW4odGhpcy5kZXB0aCxlLmRlcHRoKTt0Pj0wO3QtLSl7bGV0e21hdGNoOmEsdHlwZTpyfT10aGlzLmZyb250aWVyW3RdLG49dDxlLmRlcHRoJiZlLmVuZCh0KzEpPT1lLnBvcysoZS5kZXB0aC0odCsxKSksbz1NdHQoZSx0LHIsYSxuKTtpZihvKXtmb3IobGV0IGw9dC0xO2w+PTA7bC0tKXtsZXR7bWF0Y2g6cCx0eXBlOmR9PXRoaXMuZnJvbnRpZXJbbF0sdT1NdHQoZSxsLGQscCwhMCk7aWYoIXV8fHUuY2hpbGRDb3VudCljb250aW51ZSBlfXJldHVybntkZXB0aDp0LGZpdDpvLG1vdmU6bj9lLmRvYy5yZXNvbHZlKGUuYWZ0ZXIodCsxKSk6ZX19fX1jbG9zZShlKXtsZXQgdD10aGlzLmZpbmRDbG9zZUxldmVsKGUpO2lmKCF0KXJldHVybiBudWxsO2Zvcig7dGhpcy5kZXB0aD50LmRlcHRoOyl0aGlzLmNsb3NlRnJvbnRpZXJOb2RlKCk7dC5maXQuY2hpbGRDb3VudCYmKHRoaXMucGxhY2VkPUhaKHRoaXMucGxhY2VkLHQuZGVwdGgsdC5maXQpKSxlPXQubW92ZTtmb3IobGV0IGE9dC5kZXB0aCsxO2E8PWUuZGVwdGg7YSsrKXtsZXQgcj1lLm5vZGUoYSksbj1yLnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUoci5jb250ZW50LCEwLGUuaW5kZXgoYSkpO3RoaXMub3BlbkZyb250aWVyTm9kZShyLnR5cGUsci5hdHRycyxuKX1yZXR1cm4gZX1vcGVuRnJvbnRpZXJOb2RlKGUsdD1udWxsLGEpe2xldCByPXRoaXMuZnJvbnRpZXJbdGhpcy5kZXB0aF07ci5tYXRjaD1yLm1hdGNoLm1hdGNoVHlwZShlKSx0aGlzLnBsYWNlZD1IWih0aGlzLnBsYWNlZCx0aGlzLmRlcHRoLHJ0LmZyb20oZS5jcmVhdGUodCxhKSkpLHRoaXMuZnJvbnRpZXIucHVzaCh7dHlwZTplLG1hdGNoOmUuY29udGVudE1hdGNofSl9Y2xvc2VGcm9udGllck5vZGUoKXtsZXQgdD10aGlzLmZyb250aWVyLnBvcCgpLm1hdGNoLmZpbGxCZWZvcmUocnQuZW1wdHksITApO3QuY2hpbGRDb3VudCYmKHRoaXMucGxhY2VkPUhaKHRoaXMucGxhY2VkLHRoaXMuZnJvbnRpZXIubGVuZ3RoLHQpKX19O2koQlosImRyb3BGcm9tRnJhZ21lbnQiKTtpKEhaLCJhZGRUb0ZyYWdtZW50Iik7aShfdHQsImNvbnRlbnRBdCIpO2koQ3VhLCJjbG9zZU5vZGVTdGFydCIpO2koTXR0LCJjb250ZW50QWZ0ZXJGaXRzIik7aShfR2EsImludmFsaWRNYXJrcyIpO2koTUdhLCJkZWZpbmVzQ29udGVudCIpO2koekdhLCJyZXBsYWNlUmFuZ2UiKTtpKFR1YSwiY2xvc2VGcmFnbWVudCIpO2koQ0dhLCJyZXBsYWNlUmFuZ2VXaXRoIik7aShUR2EsImRlbGV0ZVJhbmdlIik7aSgkdWEsImNvdmVyZWREZXB0aHMiKTtxWj1jbGFzcyBzIGV4dGVuZHMgWHJ7c3RhdGlje2kodGhpcywiQXR0clN0ZXAiKX1jb25zdHJ1Y3RvcihlLHQsYSl7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMuYXR0cj10LHRoaXMudmFsdWU9YX1hcHBseShlKXtsZXQgdD1lLm5vZGVBdCh0aGlzLnBvcyk7aWYoIXQpcmV0dXJuIG1vLmZhaWwoIk5vIG5vZGUgYXQgYXR0cmlidXRlIHN0ZXAncyBwb3NpdGlvbiIpO2xldCBhPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBuIGluIHQuYXR0cnMpYVtuXT10LmF0dHJzW25dO2FbdGhpcy5hdHRyXT10aGlzLnZhbHVlO2xldCByPXQudHlwZS5jcmVhdGUoYSxudWxsLHQubWFya3MpO3JldHVybiBtby5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IF90KHJ0LmZyb20ociksMCx0LmlzTGVhZj8wOjEpKX1nZXRNYXAoKXtyZXR1cm4gRWQuZW1wdHl9aW52ZXJ0KGUpe3JldHVybiBuZXcgcyh0aGlzLnBvcyx0aGlzLmF0dHIsZS5ub2RlQXQodGhpcy5wb3MpLmF0dHJzW3RoaXMuYXR0cl0pfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLnBvcywxKTtyZXR1cm4gdC5kZWxldGVkQWZ0ZXI/bnVsbDpuZXcgcyh0LnBvcyx0aGlzLmF0dHIsdGhpcy52YWx1ZSl9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhdHRyIixwb3M6dGhpcy5wb3MsYXR0cjp0aGlzLmF0dHIsdmFsdWU6dGhpcy52YWx1ZX19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQucG9zIT0ibnVtYmVyInx8dHlwZW9mIHQuYXR0ciE9InN0cmluZyIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEF0dHJTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBzKHQucG9zLHQuYXR0cix0LnZhbHVlKX19O1hyLmpzb25JRCgiYXR0ciIscVopO2paPWNsYXNzIHMgZXh0ZW5kcyBYcntzdGF0aWN7aSh0aGlzLCJEb2NBdHRyU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLmF0dHI9ZSx0aGlzLnZhbHVlPXR9YXBwbHkoZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHIgaW4gZS5hdHRycyl0W3JdPWUuYXR0cnNbcl07dFt0aGlzLmF0dHJdPXRoaXMudmFsdWU7bGV0IGE9ZS50eXBlLmNyZWF0ZSh0LGUuY29udGVudCxlLm1hcmtzKTtyZXR1cm4gbW8ub2soYSl9Z2V0TWFwKCl7cmV0dXJuIEVkLmVtcHR5fWludmVydChlKXtyZXR1cm4gbmV3IHModGhpcy5hdHRyLGUuYXR0cnNbdGhpcy5hdHRyXSl9bWFwKGUpe3JldHVybiB0aGlzfXRvSlNPTigpe3JldHVybntzdGVwVHlwZToiZG9jQXR0ciIsYXR0cjp0aGlzLmF0dHIsdmFsdWU6dGhpcy52YWx1ZX19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuYXR0ciE9InN0cmluZyIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIERvY0F0dHJTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBzKHQuYXR0cix0LnZhbHVlKX19O1hyLmpzb25JRCgiZG9jQXR0ciIsalopO1c4PWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiVHJhbnNmb3JtRXJyb3IiKX19O1c4PWkoZnVuY3Rpb24gcyhlKXtsZXQgdD1FcnJvci5jYWxsKHRoaXMsZSk7cmV0dXJuIHQuX19wcm90b19fPXMucHJvdG90eXBlLHR9LCJUcmFuc2Zvcm1FcnJvciIpLFc4LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksVzgucHJvdG90eXBlLmNvbnN0cnVjdG9yPVc4LFc4LnByb3RvdHlwZS5uYW1lPSJUcmFuc2Zvcm1FcnJvciI7Rzg9Y2xhc3N7c3RhdGlje2kodGhpcywiVHJhbnNmb3JtIil9Y29uc3RydWN0b3IoZSl7dGhpcy5kb2M9ZSx0aGlzLnN0ZXBzPVtdLHRoaXMuZG9jcz1bXSx0aGlzLm1hcHBpbmc9bmV3IFN2fWdldCBiZWZvcmUoKXtyZXR1cm4gdGhpcy5kb2NzLmxlbmd0aD90aGlzLmRvY3NbMF06dGhpcy5kb2N9c3RlcChlKXtsZXQgdD10aGlzLm1heWJlU3RlcChlKTtpZih0LmZhaWxlZCl0aHJvdyBuZXcgVzgodC5mYWlsZWQpO3JldHVybiB0aGlzfW1heWJlU3RlcChlKXtsZXQgdD1lLmFwcGx5KHRoaXMuZG9jKTtyZXR1cm4gdC5mYWlsZWR8fHRoaXMuYWRkU3RlcChlLHQuZG9jKSx0fWdldCBkb2NDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuc3RlcHMubGVuZ3RoPjB9Y2hhbmdlZFJhbmdlKCl7bGV0IGU9MWU5LHQ9LTFlOTtmb3IobGV0IGE9MDthPHRoaXMubWFwcGluZy5tYXBzLmxlbmd0aDthKyspe2xldCByPXRoaXMubWFwcGluZy5tYXBzW2FdO2EmJihlPXIubWFwKGUsMSksdD1yLm1hcCh0LC0xKSksci5mb3JFYWNoKChuLG8sbCxwKT0+e2U9TWF0aC5taW4oZSxsKSx0PU1hdGgubWF4KHQscCl9KX1yZXR1cm4gZT09MWU5P251bGw6e2Zyb206ZSx0bzp0fX1hZGRTdGVwKGUsdCl7dGhpcy5kb2NzLnB1c2godGhpcy5kb2MpLHRoaXMuc3RlcHMucHVzaChlKSx0aGlzLm1hcHBpbmcuYXBwZW5kTWFwKGUuZ2V0TWFwKCkpLHRoaXMuZG9jPXR9cmVwbGFjZShlLHQ9ZSxhPV90LmVtcHR5KXtsZXQgcj1fdih0aGlzLmRvYyxlLHQsYSk7cmV0dXJuIHImJnRoaXMuc3RlcChyKSx0aGlzfXJlcGxhY2VXaXRoKGUsdCxhKXtyZXR1cm4gdGhpcy5yZXBsYWNlKGUsdCxuZXcgX3QocnQuZnJvbShhKSwwLDApKX1kZWxldGUoZSx0KXtyZXR1cm4gdGhpcy5yZXBsYWNlKGUsdCxfdC5lbXB0eSl9aW5zZXJ0KGUsdCl7cmV0dXJuIHRoaXMucmVwbGFjZVdpdGgoZSxlLHQpfXJlcGxhY2VSYW5nZShlLHQsYSl7cmV0dXJuIHpHYSh0aGlzLGUsdCxhKSx0aGlzfXJlcGxhY2VSYW5nZVdpdGgoZSx0LGEpe3JldHVybiBDR2EodGhpcyxlLHQsYSksdGhpc31kZWxldGVSYW5nZShlLHQpe3JldHVybiBUR2EodGhpcyxlLHQpLHRoaXN9bGlmdChlLHQpe3JldHVybiBmR2EodGhpcyxlLHQpLHRoaXN9am9pbihlLHQ9MSl7cmV0dXJuIFNHYSh0aGlzLGUsdCksdGhpc313cmFwKGUsdCl7cmV0dXJuIGJHYSh0aGlzLGUsdCksdGhpc31zZXRCbG9ja1R5cGUoZSx0PWUsYSxyPW51bGwpe3JldHVybiB2R2EodGhpcyxlLHQsYSxyKSx0aGlzfXNldE5vZGVNYXJrdXAoZSx0LGE9bnVsbCxyKXtyZXR1cm4geUdhKHRoaXMsZSx0LGEsciksdGhpc31zZXROb2RlQXR0cmlidXRlKGUsdCxhKXtyZXR1cm4gdGhpcy5zdGVwKG5ldyBxWihlLHQsYSkpLHRoaXN9c2V0RG9jQXR0cmlidXRlKGUsdCl7cmV0dXJuIHRoaXMuc3RlcChuZXcgalooZSx0KSksdGhpc31hZGROb2RlTWFyayhlLHQpe3JldHVybiB0aGlzLnN0ZXAobmV3IGt2KGUsdCkpLHRoaXN9cmVtb3ZlTm9kZU1hcmsoZSx0KXtsZXQgYT10aGlzLmRvYy5ub2RlQXQoZSk7aWYoIWEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIG5vZGUgYXQgcG9zaXRpb24gIitlKTtpZih0IGluc3RhbmNlb2YgZnMpdC5pc0luU2V0KGEubWFya3MpJiZ0aGlzLnN0ZXAobmV3IFU4KGUsdCkpO2Vsc2V7bGV0IHI9YS5tYXJrcyxuLG89W107Zm9yKDtuPXQuaXNJblNldChyKTspby5wdXNoKG5ldyBVOChlLG4pKSxyPW4ucmVtb3ZlRnJvbVNldChyKTtmb3IobGV0IGw9by5sZW5ndGgtMTtsPj0wO2wtLSl0aGlzLnN0ZXAob1tsXSl9cmV0dXJuIHRoaXN9c3BsaXQoZSx0PTEsYSl7cmV0dXJuIHdHYSh0aGlzLGUsdCxhKSx0aGlzfWFkZE1hcmsoZSx0LGEpe3JldHVybiB1R2EodGhpcyxlLHQsYSksdGhpc31yZW1vdmVNYXJrKGUsdCxhKXtyZXR1cm4gcEdhKHRoaXMsZSx0LGEpLHRoaXN9Y2xlYXJJbmNvbXBhdGlibGUoZSx0LGEpe3JldHVybiBrdHQodGhpcyxlLHQsYSksdGhpc319fSk7ZnVuY3Rpb24gTHVhKHMpeyFEdWEmJiFzLnBhcmVudC5pbmxpbmVDb250ZW50JiYoRHVhPSEwLGNvbnNvbGUud2FybigiVGV4dFNlbGVjdGlvbiBlbmRwb2ludCBub3QgcG9pbnRpbmcgaW50byBhIG5vZGUgd2l0aCBpbmxpbmUgY29udGVudCAoIitzLnBhcmVudC50eXBlLm5hbWUrIikiKSl9ZnVuY3Rpb24gTXYocyxlLHQsYSxyLG49ITEpe2lmKGUuaW5saW5lQ29udGVudClyZXR1cm4gSnQuY3JlYXRlKHMsdCk7Zm9yKGxldCBvPWEtKHI+MD8wOjEpO3I+MD9vPGUuY2hpbGRDb3VudDpvPj0wO28rPXIpe2xldCBsPWUuY2hpbGQobyk7aWYobC5pc0F0b20pe2lmKCFuJiZGdC5pc1NlbGVjdGFibGUobCkpcmV0dXJuIEZ0LmNyZWF0ZShzLHQtKHI8MD9sLm5vZGVTaXplOjApKX1lbHNle2xldCBwPU12KHMsbCx0K3IscjwwP2wuY2hpbGRDb3VudDowLHIsbik7aWYocClyZXR1cm4gcH10Kz1sLm5vZGVTaXplKnJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gRXVhKHMsZSx0KXtsZXQgYT1zLnN0ZXBzLmxlbmd0aC0xO2lmKGE8ZSlyZXR1cm47bGV0IHI9cy5zdGVwc1thXTtpZighKHIgaW5zdGFuY2VvZiBnb3x8ciBpbnN0YW5jZW9mIGRyKSlyZXR1cm47bGV0IG49cy5tYXBwaW5nLm1hcHNbYV0sbztuLmZvckVhY2goKGwscCxkLHUpPT57bz09bnVsbCYmKG89dSl9KSxzLnNldFNlbGVjdGlvbihRdC5uZWFyKHMuZG9jLnJlc29sdmUobyksdCkpfWZ1bmN0aW9uIEF1YShzLGUpe3JldHVybiFlfHwhcz9zOnMuYmluZChlKX1mdW5jdGlvbiBOdWEocyxlLHQpe2ZvcihsZXQgYSBpbiBzKXtsZXQgcj1zW2FdO3IgaW5zdGFuY2VvZiBGdW5jdGlvbj9yPXIuYmluZChlKTphPT0iaGFuZGxlRE9NRXZlbnRzIiYmKHI9TnVhKHIsZSx7fSkpLHRbYV09cn1yZXR1cm4gdH1mdW5jdGlvbiBSdWEocyl7cmV0dXJuIHMgaW4gVHR0P3MrIiQiKyArK1R0dFtzXTooVHR0W3NdPTAscysiJCIpfXZhciB6dHQsUXQsWDgsRHVhLEp0LGpuZSxGdCxDdHQsbm4sJEdhLFB1YSxWbmUsSXVhLFVuZSxaOCxER2EsVVosV1osWXMsVHR0LCRyLHJ1PWcoKCk9PntfaCgpO3poKCk7enR0PU9iamVjdC5jcmVhdGUobnVsbCksUXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMuJGFuY2hvcj1lLHRoaXMuJGhlYWQ9dCx0aGlzLnJhbmdlcz1hfHxbbmV3IFg4KGUubWluKHQpLGUubWF4KHQpKV19Z2V0IGFuY2hvcigpe3JldHVybiB0aGlzLiRhbmNob3IucG9zfWdldCBoZWFkKCl7cmV0dXJuIHRoaXMuJGhlYWQucG9zfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuJGZyb20ucG9zfWdldCB0bygpe3JldHVybiB0aGlzLiR0by5wb3N9Z2V0ICRmcm9tKCl7cmV0dXJuIHRoaXMucmFuZ2VzWzBdLiRmcm9tfWdldCAkdG8oKXtyZXR1cm4gdGhpcy5yYW5nZXNbMF0uJHRvfWdldCBlbXB0eSgpe2xldCBlPXRoaXMucmFuZ2VzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKGVbdF0uJGZyb20ucG9zIT1lW3RdLiR0by5wb3MpcmV0dXJuITE7cmV0dXJuITB9Y29udGVudCgpe3JldHVybiB0aGlzLiRmcm9tLmRvYy5zbGljZSh0aGlzLmZyb20sdGhpcy50bywhMCl9cmVwbGFjZShlLHQ9X3QuZW1wdHkpe2xldCBhPXQuY29udGVudC5sYXN0Q2hpbGQscj1udWxsO2ZvcihsZXQgbD0wO2w8dC5vcGVuRW5kO2wrKylyPWEsYT1hLmxhc3RDaGlsZDtsZXQgbj1lLnN0ZXBzLmxlbmd0aCxvPXRoaXMucmFuZ2VzO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKXtsZXR7JGZyb206cCwkdG86ZH09b1tsXSx1PWUubWFwcGluZy5zbGljZShuKTtlLnJlcGxhY2VSYW5nZSh1Lm1hcChwLnBvcyksdS5tYXAoZC5wb3MpLGw/X3QuZW1wdHk6dCksbD09MCYmRXVhKGUsbiwoYT9hLmlzSW5saW5lOnImJnIuaXNUZXh0YmxvY2spPy0xOjEpfX1yZXBsYWNlV2l0aChlLHQpe2xldCBhPWUuc3RlcHMubGVuZ3RoLHI9dGhpcy5yYW5nZXM7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspe2xldHskZnJvbTpvLCR0bzpsfT1yW25dLHA9ZS5tYXBwaW5nLnNsaWNlKGEpLGQ9cC5tYXAoby5wb3MpLHU9cC5tYXAobC5wb3MpO24/ZS5kZWxldGVSYW5nZShkLHUpOihlLnJlcGxhY2VSYW5nZVdpdGgoZCx1LHQpLEV1YShlLGEsdC5pc0lubGluZT8tMToxKSl9fXN0YXRpYyBmaW5kRnJvbShlLHQsYT0hMSl7bGV0IHI9ZS5wYXJlbnQuaW5saW5lQ29udGVudD9uZXcgSnQoZSk6TXYoZS5ub2RlKDApLGUucGFyZW50LGUucG9zLGUuaW5kZXgoKSx0LGEpO2lmKHIpcmV0dXJuIHI7Zm9yKGxldCBuPWUuZGVwdGgtMTtuPj0wO24tLSl7bGV0IG89dDwwP012KGUubm9kZSgwKSxlLm5vZGUobiksZS5iZWZvcmUobisxKSxlLmluZGV4KG4pLHQsYSk6TXYoZS5ub2RlKDApLGUubm9kZShuKSxlLmFmdGVyKG4rMSksZS5pbmRleChuKSsxLHQsYSk7aWYobylyZXR1cm4gb31yZXR1cm4gbnVsbH1zdGF0aWMgbmVhcihlLHQ9MSl7cmV0dXJuIHRoaXMuZmluZEZyb20oZSx0KXx8dGhpcy5maW5kRnJvbShlLC10KXx8bmV3IG5uKGUubm9kZSgwKSl9c3RhdGljIGF0U3RhcnQoZSl7cmV0dXJuIE12KGUsZSwwLDAsMSl8fG5ldyBubihlKX1zdGF0aWMgYXRFbmQoZSl7cmV0dXJuIE12KGUsZSxlLmNvbnRlbnQuc2l6ZSxlLmNoaWxkQ291bnQsLTEpfHxuZXcgbm4oZSl9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXR8fCF0LnR5cGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFNlbGVjdGlvbi5mcm9tSlNPTiIpO2xldCBhPXp0dFt0LnR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzZWxlY3Rpb24gdHlwZSAke3QudHlwZX0gZGVmaW5lZGApO3JldHVybiBhLmZyb21KU09OKGUsdCl9c3RhdGljIGpzb25JRChlLHQpe2lmKGUgaW4genR0KXRocm93IG5ldyBSYW5nZUVycm9yKCJEdXBsaWNhdGUgdXNlIG9mIHNlbGVjdGlvbiBKU09OIElEICIrZSk7cmV0dXJuIHp0dFtlXT10LHQucHJvdG90eXBlLmpzb25JRD1lLHR9Z2V0Qm9va21hcmsoKXtyZXR1cm4gSnQuYmV0d2Vlbih0aGlzLiRhbmNob3IsdGhpcy4kaGVhZCkuZ2V0Qm9va21hcmsoKX19O1F0LnByb3RvdHlwZS52aXNpYmxlPSEwO1g4PWNsYXNze3N0YXRpY3tpKHRoaXMsIlNlbGVjdGlvblJhbmdlIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLiRmcm9tPWUsdGhpcy4kdG89dH19LER1YT0hMTtpKEx1YSwiY2hlY2tUZXh0U2VsZWN0aW9uIik7SnQ9Y2xhc3MgcyBleHRlbmRzIFF0e3N0YXRpY3tpKHRoaXMsIlRleHRTZWxlY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHQ9ZSl7THVhKGUpLEx1YSh0KSxzdXBlcihlLHQpfWdldCAkY3Vyc29yKCl7cmV0dXJuIHRoaXMuJGFuY2hvci5wb3M9PXRoaXMuJGhlYWQucG9zP3RoaXMuJGhlYWQ6bnVsbH1tYXAoZSx0KXtsZXQgYT1lLnJlc29sdmUodC5tYXAodGhpcy5oZWFkKSk7aWYoIWEucGFyZW50LmlubGluZUNvbnRlbnQpcmV0dXJuIFF0Lm5lYXIoYSk7bGV0IHI9ZS5yZXNvbHZlKHQubWFwKHRoaXMuYW5jaG9yKSk7cmV0dXJuIG5ldyBzKHIucGFyZW50LmlubGluZUNvbnRlbnQ/cjphLGEpfXJlcGxhY2UoZSx0PV90LmVtcHR5KXtpZihzdXBlci5yZXBsYWNlKGUsdCksdD09X3QuZW1wdHkpe2xldCBhPXRoaXMuJGZyb20ubWFya3NBY3Jvc3ModGhpcy4kdG8pO2EmJmUuZW5zdXJlTWFya3MoYSl9fWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgcyYmZS5hbmNob3I9PXRoaXMuYW5jaG9yJiZlLmhlYWQ9PXRoaXMuaGVhZH1nZXRCb29rbWFyaygpe3JldHVybiBuZXcgam5lKHRoaXMuYW5jaG9yLHRoaXMuaGVhZCl9dG9KU09OKCl7cmV0dXJue3R5cGU6InRleHQiLGFuY2hvcjp0aGlzLmFuY2hvcixoZWFkOnRoaXMuaGVhZH19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuYW5jaG9yIT0ibnVtYmVyInx8dHlwZW9mIHQuaGVhZCE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFRleHRTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHMoZS5yZXNvbHZlKHQuYW5jaG9yKSxlLnJlc29sdmUodC5oZWFkKSl9c3RhdGljIGNyZWF0ZShlLHQsYT10KXtsZXQgcj1lLnJlc29sdmUodCk7cmV0dXJuIG5ldyB0aGlzKHIsYT09dD9yOmUucmVzb2x2ZShhKSl9c3RhdGljIGJldHdlZW4oZSx0LGEpe2xldCByPWUucG9zLXQucG9zO2lmKCghYXx8cikmJihhPXI+PTA/MTotMSksIXQucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBuPVF0LmZpbmRGcm9tKHQsYSwhMCl8fFF0LmZpbmRGcm9tKHQsLWEsITApO2lmKG4pdD1uLiRoZWFkO2Vsc2UgcmV0dXJuIFF0Lm5lYXIodCxhKX1yZXR1cm4gZS5wYXJlbnQuaW5saW5lQ29udGVudHx8KHI9PTA/ZT10OihlPShRdC5maW5kRnJvbShlLC1hLCEwKXx8UXQuZmluZEZyb20oZSxhLCEwKSkuJGFuY2hvcixlLnBvczx0LnBvcyE9cjwwJiYoZT10KSkpLG5ldyBzKGUsdCl9fTtRdC5qc29uSUQoInRleHQiLEp0KTtqbmU9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJUZXh0Qm9va21hcmsiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuYW5jaG9yPWUsdGhpcy5oZWFkPXR9bWFwKGUpe3JldHVybiBuZXcgcyhlLm1hcCh0aGlzLmFuY2hvciksZS5tYXAodGhpcy5oZWFkKSl9cmVzb2x2ZShlKXtyZXR1cm4gSnQuYmV0d2VlbihlLnJlc29sdmUodGhpcy5hbmNob3IpLGUucmVzb2x2ZSh0aGlzLmhlYWQpKX19LEZ0PWNsYXNzIHMgZXh0ZW5kcyBRdHtzdGF0aWN7aSh0aGlzLCJOb2RlU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7bGV0IHQ9ZS5ub2RlQWZ0ZXIsYT1lLm5vZGUoMCkucmVzb2x2ZShlLnBvcyt0Lm5vZGVTaXplKTtzdXBlcihlLGEpLHRoaXMubm9kZT10fW1hcChlLHQpe2xldHtkZWxldGVkOmEscG9zOnJ9PXQubWFwUmVzdWx0KHRoaXMuYW5jaG9yKSxuPWUucmVzb2x2ZShyKTtyZXR1cm4gYT9RdC5uZWFyKG4pOm5ldyBzKG4pfWNvbnRlbnQoKXtyZXR1cm4gbmV3IF90KHJ0LmZyb20odGhpcy5ub2RlKSwwLDApfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgcyYmZS5hbmNob3I9PXRoaXMuYW5jaG9yfXRvSlNPTigpe3JldHVybnt0eXBlOiJub2RlIixhbmNob3I6dGhpcy5hbmNob3J9fWdldEJvb2ttYXJrKCl7cmV0dXJuIG5ldyBDdHQodGhpcy5hbmNob3IpfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LmFuY2hvciE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE5vZGVTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHMoZS5yZXNvbHZlKHQuYW5jaG9yKSl9c3RhdGljIGNyZWF0ZShlLHQpe3JldHVybiBuZXcgcyhlLnJlc29sdmUodCkpfXN0YXRpYyBpc1NlbGVjdGFibGUoZSl7cmV0dXJuIWUuaXNUZXh0JiZlLnR5cGUuc3BlYy5zZWxlY3RhYmxlIT09ITF9fTtGdC5wcm90b3R5cGUudmlzaWJsZT0hMSxRdC5qc29uSUQoIm5vZGUiLEZ0KTtDdHQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlQm9va21hcmsiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmFuY2hvcj1lfW1hcChlKXtsZXR7ZGVsZXRlZDp0LHBvczphfT1lLm1hcFJlc3VsdCh0aGlzLmFuY2hvcik7cmV0dXJuIHQ/bmV3IGpuZShhLGEpOm5ldyBzKGEpfXJlc29sdmUoZSl7bGV0IHQ9ZS5yZXNvbHZlKHRoaXMuYW5jaG9yKSxhPXQubm9kZUFmdGVyO3JldHVybiBhJiZGdC5pc1NlbGVjdGFibGUoYSk/bmV3IEZ0KHQpOlF0Lm5lYXIodCl9fSxubj1jbGFzcyBzIGV4dGVuZHMgUXR7c3RhdGlje2kodGhpcywiQWxsU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5yZXNvbHZlKDApLGUucmVzb2x2ZShlLmNvbnRlbnQuc2l6ZSkpfXJlcGxhY2UoZSx0PV90LmVtcHR5KXtpZih0PT1fdC5lbXB0eSl7ZS5kZWxldGUoMCxlLmRvYy5jb250ZW50LnNpemUpO2xldCBhPVF0LmF0U3RhcnQoZS5kb2MpO2EuZXEoZS5zZWxlY3Rpb24pfHxlLnNldFNlbGVjdGlvbihhKX1lbHNlIHN1cGVyLnJlcGxhY2UoZSx0KX10b0pTT04oKXtyZXR1cm57dHlwZToiYWxsIn19c3RhdGljIGZyb21KU09OKGUpe3JldHVybiBuZXcgcyhlKX1tYXAoZSl7cmV0dXJuIG5ldyBzKGUpfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2Ygc31nZXRCb29rbWFyaygpe3JldHVybiAkR2F9fTtRdC5qc29uSUQoImFsbCIsbm4pOyRHYT17bWFwKCl7cmV0dXJuIHRoaXN9LHJlc29sdmUocyl7cmV0dXJuIG5ldyBubihzKX19O2koTXYsImZpbmRTZWxlY3Rpb25JbiIpO2koRXVhLCJzZWxlY3Rpb25Ub0luc2VydGlvbkVuZCIpO1B1YT0xLFZuZT0yLEl1YT00LFVuZT1jbGFzcyBleHRlbmRzIEc4e3N0YXRpY3tpKHRoaXMsIlRyYW5zYWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5kb2MpLHRoaXMuY3VyU2VsZWN0aW9uRm9yPTAsdGhpcy51cGRhdGVkPTAsdGhpcy5tZXRhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy50aW1lPURhdGUubm93KCksdGhpcy5jdXJTZWxlY3Rpb249ZS5zZWxlY3Rpb24sdGhpcy5zdG9yZWRNYXJrcz1lLnN0b3JlZE1hcmtzfWdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb25Gb3I8dGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLmN1clNlbGVjdGlvbj10aGlzLmN1clNlbGVjdGlvbi5tYXAodGhpcy5kb2MsdGhpcy5tYXBwaW5nLnNsaWNlKHRoaXMuY3VyU2VsZWN0aW9uRm9yKSksdGhpcy5jdXJTZWxlY3Rpb25Gb3I9dGhpcy5zdGVwcy5sZW5ndGgpLHRoaXMuY3VyU2VsZWN0aW9ufXNldFNlbGVjdGlvbihlKXtpZihlLiRmcm9tLmRvYyE9dGhpcy5kb2MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNlbGVjdGlvbiBwYXNzZWQgdG8gc2V0U2VsZWN0aW9uIG11c3QgcG9pbnQgYXQgdGhlIGN1cnJlbnQgZG9jdW1lbnQiKTtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb249ZSx0aGlzLmN1clNlbGVjdGlvbkZvcj10aGlzLnN0ZXBzLmxlbmd0aCx0aGlzLnVwZGF0ZWQ9KHRoaXMudXBkYXRlZHxQdWEpJn5WbmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsLHRoaXN9Z2V0IHNlbGVjdGlvblNldCgpe3JldHVybih0aGlzLnVwZGF0ZWQmUHVhKT4wfXNldFN0b3JlZE1hcmtzKGUpe3JldHVybiB0aGlzLnN0b3JlZE1hcmtzPWUsdGhpcy51cGRhdGVkfD1WbmUsdGhpc31lbnN1cmVNYXJrcyhlKXtyZXR1cm4gZnMuc2FtZVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpLGUpfHx0aGlzLnNldFN0b3JlZE1hcmtzKGUpLHRoaXN9YWRkU3RvcmVkTWFyayhlKXtyZXR1cm4gdGhpcy5lbnN1cmVNYXJrcyhlLmFkZFRvU2V0KHRoaXMuc3RvcmVkTWFya3N8fHRoaXMuc2VsZWN0aW9uLiRoZWFkLm1hcmtzKCkpKX1yZW1vdmVTdG9yZWRNYXJrKGUpe3JldHVybiB0aGlzLmVuc3VyZU1hcmtzKGUucmVtb3ZlRnJvbVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kaGVhZC5tYXJrcygpKSl9Z2V0IHN0b3JlZE1hcmtzU2V0KCl7cmV0dXJuKHRoaXMudXBkYXRlZCZWbmUpPjB9YWRkU3RlcChlLHQpe3N1cGVyLmFkZFN0ZXAoZSx0KSx0aGlzLnVwZGF0ZWQ9dGhpcy51cGRhdGVkJn5WbmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsfXNldFRpbWUoZSl7cmV0dXJuIHRoaXMudGltZT1lLHRoaXN9cmVwbGFjZVNlbGVjdGlvbihlKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzLGUpLHRoaXN9cmVwbGFjZVNlbGVjdGlvbldpdGgoZSx0PSEwKXtsZXQgYT10aGlzLnNlbGVjdGlvbjtyZXR1cm4gdCYmKGU9ZS5tYXJrKHRoaXMuc3RvcmVkTWFya3N8fChhLmVtcHR5P2EuJGZyb20ubWFya3MoKTphLiRmcm9tLm1hcmtzQWNyb3NzKGEuJHRvKXx8ZnMubm9uZSkpKSxhLnJlcGxhY2VXaXRoKHRoaXMsZSksdGhpc31kZWxldGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzKSx0aGlzfWluc2VydFRleHQoZSx0LGEpe2xldCByPXRoaXMuZG9jLnR5cGUuc2NoZW1hO2lmKHQ9PW51bGwpcmV0dXJuIGU/dGhpcy5yZXBsYWNlU2VsZWN0aW9uV2l0aChyLnRleHQoZSksITApOnRoaXMuZGVsZXRlU2VsZWN0aW9uKCk7e2lmKGE9PW51bGwmJihhPXQpLCFlKXJldHVybiB0aGlzLmRlbGV0ZVJhbmdlKHQsYSk7bGV0IG49dGhpcy5zdG9yZWRNYXJrcztpZighbil7bGV0IG89dGhpcy5kb2MucmVzb2x2ZSh0KTtuPWE9PXQ/by5tYXJrcygpOm8ubWFya3NBY3Jvc3ModGhpcy5kb2MucmVzb2x2ZShhKSl9cmV0dXJuIHRoaXMucmVwbGFjZVJhbmdlV2l0aCh0LGEsci50ZXh0KGUsbikpLCF0aGlzLnNlbGVjdGlvbi5lbXB0eSYmdGhpcy5zZWxlY3Rpb24udG89PXQrZS5sZW5ndGgmJnRoaXMuc2V0U2VsZWN0aW9uKFF0Lm5lYXIodGhpcy5zZWxlY3Rpb24uJHRvKSksdGhpc319c2V0TWV0YShlLHQpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldPXQsdGhpc31nZXRNZXRhKGUpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldfWdldCBpc0dlbmVyaWMoKXtmb3IobGV0IGUgaW4gdGhpcy5tZXRhKXJldHVybiExO3JldHVybiEwfXNjcm9sbEludG9WaWV3KCl7cmV0dXJuIHRoaXMudXBkYXRlZHw9SXVhLHRoaXN9Z2V0IHNjcm9sbGVkSW50b1ZpZXcoKXtyZXR1cm4odGhpcy51cGRhdGVkJkl1YSk+MH19O2koQXVhLCJiaW5kIik7Wjg9Y2xhc3N7c3RhdGlje2kodGhpcywiRmllbGREZXNjIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMubmFtZT1lLHRoaXMuaW5pdD1BdWEodC5pbml0LGEpLHRoaXMuYXBwbHk9QXVhKHQuYXBwbHksYSl9fSxER2E9W25ldyBaOCgiZG9jIix7aW5pdChzKXtyZXR1cm4gcy5kb2N8fHMuc2NoZW1hLnRvcE5vZGVUeXBlLmNyZWF0ZUFuZEZpbGwoKX0sYXBwbHkocyl7cmV0dXJuIHMuZG9jfX0pLG5ldyBaOCgic2VsZWN0aW9uIix7aW5pdChzLGUpe3JldHVybiBzLnNlbGVjdGlvbnx8UXQuYXRTdGFydChlLmRvYyl9LGFwcGx5KHMpe3JldHVybiBzLnNlbGVjdGlvbn19KSxuZXcgWjgoInN0b3JlZE1hcmtzIix7aW5pdChzKXtyZXR1cm4gcy5zdG9yZWRNYXJrc3x8bnVsbH0sYXBwbHkocyxlLHQsYSl7cmV0dXJuIGEuc2VsZWN0aW9uLiRjdXJzb3I/cy5zdG9yZWRNYXJrczpudWxsfX0pLG5ldyBaOCgic2Nyb2xsVG9TZWxlY3Rpb24iLHtpbml0KCl7cmV0dXJuIDB9LGFwcGx5KHMsZSl7cmV0dXJuIHMuc2Nyb2xsZWRJbnRvVmlldz9lKzE6ZX19KV0sVVo9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29uZmlndXJhdGlvbiIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zY2hlbWE9ZSx0aGlzLnBsdWdpbnM9W10sdGhpcy5wbHVnaW5zQnlLZXk9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmZpZWxkcz1ER2Euc2xpY2UoKSx0JiZ0LmZvckVhY2goYT0+e2lmKHRoaXMucGx1Z2luc0J5S2V5W2Eua2V5XSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQWRkaW5nIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgYSBrZXllZCBwbHVnaW4gKCIrYS5rZXkrIikiKTt0aGlzLnBsdWdpbnMucHVzaChhKSx0aGlzLnBsdWdpbnNCeUtleVthLmtleV09YSxhLnNwZWMuc3RhdGUmJnRoaXMuZmllbGRzLnB1c2gobmV3IFo4KGEua2V5LGEuc3BlYy5zdGF0ZSxhKSl9KX19LFdaPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRWRpdG9yU3RhdGUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmNvbmZpZz1lfWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5jb25maWcuc2NoZW1hfWdldCBwbHVnaW5zKCl7cmV0dXJuIHRoaXMuY29uZmlnLnBsdWdpbnN9YXBwbHkoZSl7cmV0dXJuIHRoaXMuYXBwbHlUcmFuc2FjdGlvbihlKS5zdGF0ZX1maWx0ZXJUcmFuc2FjdGlvbihlLHQ9LTEpe2ZvcihsZXQgYT0wO2E8dGhpcy5jb25maWcucGx1Z2lucy5sZW5ndGg7YSsrKWlmKGEhPXQpe2xldCByPXRoaXMuY29uZmlnLnBsdWdpbnNbYV07aWYoci5zcGVjLmZpbHRlclRyYW5zYWN0aW9uJiYhci5zcGVjLmZpbHRlclRyYW5zYWN0aW9uLmNhbGwocixlLHRoaXMpKXJldHVybiExfXJldHVybiEwfWFwcGx5VHJhbnNhY3Rpb24oZSl7aWYoIXRoaXMuZmlsdGVyVHJhbnNhY3Rpb24oZSkpcmV0dXJue3N0YXRlOnRoaXMsdHJhbnNhY3Rpb25zOltdfTtsZXQgdD1bZV0sYT10aGlzLmFwcGx5SW5uZXIoZSkscj1udWxsO2Zvcig7Oyl7bGV0IG49ITE7Zm9yKGxldCBvPTA7bzx0aGlzLmNvbmZpZy5wbHVnaW5zLmxlbmd0aDtvKyspe2xldCBsPXRoaXMuY29uZmlnLnBsdWdpbnNbb107aWYobC5zcGVjLmFwcGVuZFRyYW5zYWN0aW9uKXtsZXQgcD1yP3Jbb10ubjowLGQ9cj9yW29dLnN0YXRlOnRoaXMsdT1wPHQubGVuZ3RoJiZsLnNwZWMuYXBwZW5kVHJhbnNhY3Rpb24uY2FsbChsLHA/dC5zbGljZShwKTp0LGQsYSk7aWYodSYmYS5maWx0ZXJUcmFuc2FjdGlvbih1LG8pKXtpZih1LnNldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iLGUpLCFyKXtyPVtdO2ZvcihsZXQgYz0wO2M8dGhpcy5jb25maWcucGx1Z2lucy5sZW5ndGg7YysrKXIucHVzaChjPG8/e3N0YXRlOmEsbjp0Lmxlbmd0aH06e3N0YXRlOnRoaXMsbjowfSl9dC5wdXNoKHUpLGE9YS5hcHBseUlubmVyKHUpLG49ITB9ciYmKHJbb109e3N0YXRlOmEsbjp0Lmxlbmd0aH0pfX1pZighbilyZXR1cm57c3RhdGU6YSx0cmFuc2FjdGlvbnM6dH19fWFwcGx5SW5uZXIoZSl7aWYoIWUuYmVmb3JlLmVxKHRoaXMuZG9jKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXBwbHlpbmcgYSBtaXNtYXRjaGVkIHRyYW5zYWN0aW9uIik7bGV0IHQ9bmV3IHModGhpcy5jb25maWcpLGE9dGhpcy5jb25maWcuZmllbGRzO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGg7cisrKXtsZXQgbj1hW3JdO3Rbbi5uYW1lXT1uLmFwcGx5KGUsdGhpc1tuLm5hbWVdLHRoaXMsdCl9cmV0dXJuIHR9Z2V0IHRyKCl7cmV0dXJuIG5ldyBVbmUodGhpcyl9c3RhdGljIGNyZWF0ZShlKXtsZXQgdD1uZXcgVVooZS5kb2M/ZS5kb2MudHlwZS5zY2hlbWE6ZS5zY2hlbWEsZS5wbHVnaW5zKSxhPW5ldyBzKHQpO2ZvcihsZXQgcj0wO3I8dC5maWVsZHMubGVuZ3RoO3IrKylhW3QuZmllbGRzW3JdLm5hbWVdPXQuZmllbGRzW3JdLmluaXQoZSxhKTtyZXR1cm4gYX1yZWNvbmZpZ3VyZShlKXtsZXQgdD1uZXcgVVoodGhpcy5zY2hlbWEsZS5wbHVnaW5zKSxhPXQuZmllbGRzLHI9bmV3IHModCk7Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspe2xldCBvPWFbbl0ubmFtZTtyW29dPXRoaXMuaGFzT3duUHJvcGVydHkobyk/dGhpc1tvXTphW25dLmluaXQoZSxyKX1yZXR1cm4gcn10b0pTT04oZSl7bGV0IHQ9e2RvYzp0aGlzLmRvYy50b0pTT04oKSxzZWxlY3Rpb246dGhpcy5zZWxlY3Rpb24udG9KU09OKCl9O2lmKHRoaXMuc3RvcmVkTWFya3MmJih0LnN0b3JlZE1hcmtzPXRoaXMuc3RvcmVkTWFya3MubWFwKGE9PmEudG9KU09OKCkpKSxlJiZ0eXBlb2YgZT09Im9iamVjdCIpZm9yKGxldCBhIGluIGUpe2lmKGE9PSJkb2MifHxhPT0ic2VsZWN0aW9uIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlIEpTT04gZmllbGRzIGBkb2NgIGFuZCBgc2VsZWN0aW9uYCBhcmUgcmVzZXJ2ZWQiKTtsZXQgcj1lW2FdLG49ci5zcGVjLnN0YXRlO24mJm4udG9KU09OJiYodFthXT1uLnRvSlNPTi5jYWxsKHIsdGhpc1tyLmtleV0pKX1yZXR1cm4gdH1zdGF0aWMgZnJvbUpTT04oZSx0LGEpe2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBFZGl0b3JTdGF0ZS5mcm9tSlNPTiIpO2lmKCFlLnNjaGVtYSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVxdWlyZWQgY29uZmlnIGZpZWxkICdzY2hlbWEnIG1pc3NpbmciKTtsZXQgcj1uZXcgVVooZS5zY2hlbWEsZS5wbHVnaW5zKSxuPW5ldyBzKHIpO3JldHVybiByLmZpZWxkcy5mb3JFYWNoKG89PntpZihvLm5hbWU9PSJkb2MiKW4uZG9jPVRuLmZyb21KU09OKGUuc2NoZW1hLHQuZG9jKTtlbHNlIGlmKG8ubmFtZT09InNlbGVjdGlvbiIpbi5zZWxlY3Rpb249UXQuZnJvbUpTT04obi5kb2MsdC5zZWxlY3Rpb24pO2Vsc2UgaWYoby5uYW1lPT0ic3RvcmVkTWFya3MiKXQuc3RvcmVkTWFya3MmJihuLnN0b3JlZE1hcmtzPXQuc3RvcmVkTWFya3MubWFwKGUuc2NoZW1hLm1hcmtGcm9tSlNPTikpO2Vsc2V7aWYoYSlmb3IobGV0IGwgaW4gYSl7bGV0IHA9YVtsXSxkPXAuc3BlYy5zdGF0ZTtpZihwLmtleT09by5uYW1lJiZkJiZkLmZyb21KU09OJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxsKSl7bltvLm5hbWVdPWQuZnJvbUpTT04uY2FsbChwLGUsdFtsXSxuKTtyZXR1cm59fW5bby5uYW1lXT1vLmluaXQoZSxuKX19KSxufX07aShOdWEsImJpbmRQcm9wcyIpO1lzPWNsYXNze3N0YXRpY3tpKHRoaXMsIlBsdWdpbiIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3BlYz1lLHRoaXMucHJvcHM9e30sZS5wcm9wcyYmTnVhKGUucHJvcHMsdGhpcyx0aGlzLnByb3BzKSx0aGlzLmtleT1lLmtleT9lLmtleS5rZXk6UnVhKCJwbHVnaW4iKX1nZXRTdGF0ZShlKXtyZXR1cm4gZVt0aGlzLmtleV19fSxUdHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtpKFJ1YSwiY3JlYXRlS2V5Iik7JHI9Y2xhc3N7c3RhdGlje2kodGhpcywiUGx1Z2luS2V5Iil9Y29uc3RydWN0b3IoZT0ia2V5Iil7dGhpcy5rZXk9UnVhKGUpfWdldChlKXtyZXR1cm4gZS5jb25maWcucGx1Z2luc0J5S2V5W3RoaXMua2V5XX1nZXRTdGF0ZShlKXtyZXR1cm4gZVt0aGlzLmtleV19fX0pO3ZhciBHWj1nKCgpPT57cnUoKX0pO2Z1bmN0aW9uIE91YShzLGUsdCxhLHIpe2Zvcih2YXIgbjs7KXtpZihzPT10JiZlPT1hKXJldHVybiEwO2lmKGU9PShyPDA/MDpPYyhzKSkpe2xldCBvPXMucGFyZW50Tm9kZTtpZighb3x8by5ub2RlVHlwZSE9MXx8S1oocyl8fEVHYS50ZXN0KHMubm9kZU5hbWUpfHxzLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4hMTtlPVRvKHMpKyhyPDA/MDoxKSxzPW99ZWxzZSBpZihzLm5vZGVUeXBlPT0xKXtsZXQgbz1zLmNoaWxkTm9kZXNbZSsocjwwPy0xOjApXTtpZihvLm5vZGVUeXBlPT0xJiZvLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilpZighKChuPW8ucG1WaWV3RGVzYyk9PT1udWxsfHxuPT09dm9pZCAwKSYmbi5pZ25vcmVGb3JTZWxlY3Rpb24pZSs9cjtlbHNlIHJldHVybiExO2Vsc2Ugcz1vLGU9cjwwP09jKHMpOjB9ZWxzZSByZXR1cm4hMX19ZnVuY3Rpb24gT2Mocyl7cmV0dXJuIHMubm9kZVR5cGU9PTM/cy5ub2RlVmFsdWUubGVuZ3RoOnMuY2hpbGROb2Rlcy5sZW5ndGh9ZnVuY3Rpb24gUEdhKHMsZSl7Zm9yKDs7KXtpZihzLm5vZGVUeXBlPT0zJiZlKXJldHVybiBzO2lmKHMubm9kZVR5cGU9PTEmJmU+MCl7aWYocy5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuIG51bGw7cz1zLmNoaWxkTm9kZXNbZS0xXSxlPU9jKHMpfWVsc2UgaWYocy5wYXJlbnROb2RlJiYhS1oocykpZT1UbyhzKSxzPXMucGFyZW50Tm9kZTtlbHNlIHJldHVybiBudWxsfX1mdW5jdGlvbiBJR2EocyxlKXtmb3IoOzspe2lmKHMubm9kZVR5cGU9PTMmJmU8cy5ub2RlVmFsdWUubGVuZ3RoKXJldHVybiBzO2lmKHMubm9kZVR5cGU9PTEmJmU8cy5jaGlsZE5vZGVzLmxlbmd0aCl7aWYocy5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuIG51bGw7cz1zLmNoaWxkTm9kZXNbZV0sZT0wfWVsc2UgaWYocy5wYXJlbnROb2RlJiYhS1oocykpZT1UbyhzKSsxLHM9cy5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGx9fWZ1bmN0aW9uIEFHYShzLGUsdCl7Zm9yKGxldCBhPWU9PTAscj1lPT1PYyhzKTthfHxyOyl7aWYocz09dClyZXR1cm4hMDtsZXQgbj1UbyhzKTtpZihzPXMucGFyZW50Tm9kZSwhcylyZXR1cm4hMTthPWEmJm49PTAscj1yJiZuPT1PYyhzKX19ZnVuY3Rpb24gS1oocyl7bGV0IGU7Zm9yKGxldCB0PXM7dCYmIShlPXQucG1WaWV3RGVzYyk7dD10LnBhcmVudE5vZGUpO3JldHVybiBlJiZlLm5vZGUmJmUubm9kZS5pc0Jsb2NrJiYoZS5kb209PXN8fGUuY29udGVudERPTT09cyl9ZnVuY3Rpb24gSjgocyxlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoImtleWRvd24iLCEwLCEwKSx0LmtleUNvZGU9cyx0LmtleT10LmNvZGU9ZSx0fWZ1bmN0aW9uIE5HYShzKXtsZXQgZT1zLmFjdGl2ZUVsZW1lbnQ7Zm9yKDtlJiZlLnNoYWRvd1Jvb3Q7KWU9ZS5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIGV9ZnVuY3Rpb24gUkdhKHMsZSx0KXtpZihzLmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpdHJ5e2xldCBhPXMuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQpO2lmKGEpcmV0dXJue25vZGU6YS5vZmZzZXROb2RlLG9mZnNldDpNYXRoLm1pbihPYyhhLm9mZnNldE5vZGUpLGEub2Zmc2V0KX19Y2F0Y2h7fWlmKHMuY2FyZXRSYW5nZUZyb21Qb2ludCl7bGV0IGE9cy5jYXJldFJhbmdlRnJvbVBvaW50KGUsdCk7aWYoYSlyZXR1cm57bm9kZTphLnN0YXJ0Q29udGFpbmVyLG9mZnNldDpNYXRoLm1pbihPYyhhLnN0YXJ0Q29udGFpbmVyKSxhLnN0YXJ0T2Zmc2V0KX19fWZ1bmN0aW9uIEZHYShzKXtsZXQgZT1zLmRlZmF1bHRWaWV3JiZzLmRlZmF1bHRWaWV3LnZpc3VhbFZpZXdwb3J0O3JldHVybiBlP3tsZWZ0OjAscmlnaHQ6ZS53aWR0aCx0b3A6MCxib3R0b206ZS5oZWlnaHR9OntsZWZ0OjAscmlnaHQ6cy5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsdG9wOjAsYm90dG9tOnMuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodH19ZnVuY3Rpb24gbHUocyxlKXtyZXR1cm4gdHlwZW9mIHM9PSJudW1iZXIiP3M6c1tlXX1mdW5jdGlvbiBCR2Eocyl7bGV0IGU9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PWUud2lkdGgvcy5vZmZzZXRXaWR0aHx8MSxhPWUuaGVpZ2h0L3Mub2Zmc2V0SGVpZ2h0fHwxO3JldHVybntsZWZ0OmUubGVmdCxyaWdodDplLmxlZnQrcy5jbGllbnRXaWR0aCp0LHRvcDplLnRvcCxib3R0b206ZS50b3Arcy5jbGllbnRIZWlnaHQqYX19ZnVuY3Rpb24ganVhKHMsZSx0KXtsZXQgYT1zLnNvbWVQcm9wKCJzY3JvbGxUaHJlc2hvbGQiKXx8MCxyPXMuc29tZVByb3AoInNjcm9sbE1hcmdpbiIpfHw1LG49cy5kb20ub3duZXJEb2N1bWVudDtmb3IobGV0IG89dHx8cy5kb207bzspe2lmKG8ubm9kZVR5cGUhPTEpe289enYobyk7Y29udGludWV9bGV0IGw9byxwPWw9PW4uYm9keSxkPXA/RkdhKG4pOkJHYShsKSx1PTAsYz0wO2lmKGUudG9wPGQudG9wK2x1KGEsInRvcCIpP2M9LShkLnRvcC1lLnRvcCtsdShyLCJ0b3AiKSk6ZS5ib3R0b20+ZC5ib3R0b20tbHUoYSwiYm90dG9tIikmJihjPWUuYm90dG9tLWUudG9wPmQuYm90dG9tLWQudG9wP2UudG9wK2x1KHIsInRvcCIpLWQudG9wOmUuYm90dG9tLWQuYm90dG9tK2x1KHIsImJvdHRvbSIpKSxlLmxlZnQ8ZC5sZWZ0K2x1KGEsImxlZnQiKT91PS0oZC5sZWZ0LWUubGVmdCtsdShyLCJsZWZ0IikpOmUucmlnaHQ+ZC5yaWdodC1sdShhLCJyaWdodCIpJiYodT1lLnJpZ2h0LWQucmlnaHQrbHUociwicmlnaHQiKSksdXx8YylpZihwKW4uZGVmYXVsdFZpZXcuc2Nyb2xsQnkodSxjKTtlbHNle2xldCB2PWwuc2Nyb2xsTGVmdCx4PWwuc2Nyb2xsVG9wO2MmJihsLnNjcm9sbFRvcCs9YyksdSYmKGwuc2Nyb2xsTGVmdCs9dSk7bGV0IG09bC5zY3JvbGxMZWZ0LXYsZj1sLnNjcm9sbFRvcC14O2U9e2xlZnQ6ZS5sZWZ0LW0sdG9wOmUudG9wLWYscmlnaHQ6ZS5yaWdodC1tLGJvdHRvbTplLmJvdHRvbS1mfX1sZXQgYj1wPyJmaXhlZCI6Z2V0Q29tcHV0ZWRTdHlsZShvKS5wb3NpdGlvbjtpZigvXihmaXhlZHxzdGlja3kpJC8udGVzdChiKSlicmVhaztvPWI9PSJhYnNvbHV0ZSI/by5vZmZzZXRQYXJlbnQ6enYobyl9fWZ1bmN0aW9uIEhHYShzKXtsZXQgZT1zLmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PU1hdGgubWF4KDAsZS50b3ApLGEscjtmb3IobGV0IG49KGUubGVmdCtlLnJpZ2h0KS8yLG89dCsxO288TWF0aC5taW4oaW5uZXJIZWlnaHQsZS5ib3R0b20pO28rPTUpe2xldCBsPXMucm9vdC5lbGVtZW50RnJvbVBvaW50KG4sbyk7aWYoIWx8fGw9PXMuZG9tfHwhcy5kb20uY29udGFpbnMobCkpY29udGludWU7bGV0IHA9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihwLnRvcD49dC0yMCl7YT1sLHI9cC50b3A7YnJlYWt9fXJldHVybntyZWZET006YSxyZWZUb3A6cixzdGFjazpWdWEocy5kb20pfX1mdW5jdGlvbiBWdWEocyl7bGV0IGU9W10sdD1zLm93bmVyRG9jdW1lbnQ7Zm9yKGxldCBhPXM7YSYmKGUucHVzaCh7ZG9tOmEsdG9wOmEuc2Nyb2xsVG9wLGxlZnQ6YS5zY3JvbGxMZWZ0fSkscyE9dCk7YT16dihhKSk7cmV0dXJuIGV9ZnVuY3Rpb24gcUdhKHtyZWZET006cyxyZWZUb3A6ZSxzdGFjazp0fSl7bGV0IGE9cz9zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDowO1V1YSh0LGE9PTA/MDphLWUpfWZ1bmN0aW9uIFV1YShzLGUpe2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKXtsZXR7ZG9tOmEsdG9wOnIsbGVmdDpufT1zW3RdO2Euc2Nyb2xsVG9wIT1yK2UmJihhLnNjcm9sbFRvcD1yK2UpLGEuc2Nyb2xsTGVmdCE9biYmKGEuc2Nyb2xsTGVmdD1uKX19ZnVuY3Rpb24gakdhKHMpe2lmKHMuc2V0QWN0aXZlKXJldHVybiBzLnNldEFjdGl2ZSgpO2lmKFR2KXJldHVybiBzLmZvY3VzKFR2KTtsZXQgZT1WdWEocyk7cy5mb2N1cyhUdj09bnVsbD97Z2V0IHByZXZlbnRTY3JvbGwoKXtyZXR1cm4gVHY9e3ByZXZlbnRTY3JvbGw6ITB9LCEwfX06dm9pZCAwKSxUdnx8KFR2PSExLFV1YShlLDApKX1mdW5jdGlvbiBXdWEocyxlKXtsZXQgdCxhPTJlOCxyLG49MCxvPWUudG9wLGw9ZS50b3AscCxkO2ZvcihsZXQgdT1zLmZpcnN0Q2hpbGQsYz0wO3U7dT11Lm5leHRTaWJsaW5nLGMrKyl7bGV0IGI7aWYodS5ub2RlVHlwZT09MSliPXUuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKHUubm9kZVR5cGU9PTMpYj1vdSh1KS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCB2PTA7djxiLmxlbmd0aDt2Kyspe2xldCB4PWJbdl07aWYoeC50b3A8PW8mJnguYm90dG9tPj1sKXtvPU1hdGgubWF4KHguYm90dG9tLG8pLGw9TWF0aC5taW4oeC50b3AsbCk7bGV0IG09eC5sZWZ0PmUubGVmdD94LmxlZnQtZS5sZWZ0OngucmlnaHQ8ZS5sZWZ0P2UubGVmdC14LnJpZ2h0OjA7aWYobTxhKXt0PXUsYT1tLHI9bSYmdC5ub2RlVHlwZT09Mz97bGVmdDp4LnJpZ2h0PGUubGVmdD94LnJpZ2h0OngubGVmdCx0b3A6ZS50b3B9OmUsdS5ub2RlVHlwZT09MSYmbSYmKG49YysoZS5sZWZ0Pj0oeC5sZWZ0K3gucmlnaHQpLzI/MTowKSk7Y29udGludWV9fWVsc2UgeC50b3A+ZS50b3AmJiFwJiZ4LmxlZnQ8PWUubGVmdCYmeC5yaWdodD49ZS5sZWZ0JiYocD11LGQ9e2xlZnQ6TWF0aC5tYXgoeC5sZWZ0LE1hdGgubWluKHgucmlnaHQsZS5sZWZ0KSksdG9wOngudG9wfSk7IXQmJihlLmxlZnQ+PXgucmlnaHQmJmUudG9wPj14LnRvcHx8ZS5sZWZ0Pj14LmxlZnQmJmUudG9wPj14LmJvdHRvbSkmJihuPWMrMSl9fXJldHVybiF0JiZwJiYodD1wLHI9ZCxhPTApLHQmJnQubm9kZVR5cGU9PTM/VkdhKHQscik6IXR8fGEmJnQubm9kZVR5cGU9PTE/e25vZGU6cyxvZmZzZXQ6bn06V3VhKHQscil9ZnVuY3Rpb24gVkdhKHMsZSl7bGV0IHQ9cy5ub2RlVmFsdWUubGVuZ3RoLGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxyO2ZvcihsZXQgbj0wO248dDtuKyspe2Euc2V0RW5kKHMsbisxKSxhLnNldFN0YXJ0KHMsbik7bGV0IG89JGgoYSwxKTtpZihvLnRvcCE9by5ib3R0b20mJlB0dChlLG8pKXtyPXtub2RlOnMsb2Zmc2V0Om4rKGUubGVmdD49KG8ubGVmdCtvLnJpZ2h0KS8yPzE6MCl9O2JyZWFrfX1yZXR1cm4gYS5kZXRhY2goKSxyfHx7bm9kZTpzLG9mZnNldDowfX1mdW5jdGlvbiBQdHQocyxlKXtyZXR1cm4gcy5sZWZ0Pj1lLmxlZnQtMSYmcy5sZWZ0PD1lLnJpZ2h0KzEmJnMudG9wPj1lLnRvcC0xJiZzLnRvcDw9ZS5ib3R0b20rMX1mdW5jdGlvbiBVR2EocyxlKXtsZXQgdD1zLnBhcmVudE5vZGU7cmV0dXJuIHQmJi9ebGkkL2kudGVzdCh0Lm5vZGVOYW1lKSYmZS5sZWZ0PHMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdD90OnN9ZnVuY3Rpb24gV0dhKHMsZSx0KXtsZXR7bm9kZTphLG9mZnNldDpyfT1XdWEoZSx0KSxuPS0xO2lmKGEubm9kZVR5cGU9PTEmJiFhLmZpcnN0Q2hpbGQpe2xldCBvPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bj1vLmxlZnQhPW8ucmlnaHQmJnQubGVmdD4oby5sZWZ0K28ucmlnaHQpLzI/MTotMX1yZXR1cm4gcy5kb2NWaWV3LnBvc0Zyb21ET00oYSxyLG4pfWZ1bmN0aW9uIEdHYShzLGUsdCxhKXtsZXQgcj0tMTtmb3IobGV0IG49ZSxvPSExO24hPXMuZG9tOyl7bGV0IGw9cy5kb2NWaWV3Lm5lYXJlc3REZXNjKG4sITApLHA7aWYoIWwpcmV0dXJuIG51bGw7aWYobC5kb20ubm9kZVR5cGU9PTEmJihsLm5vZGUuaXNCbG9jayYmbC5wYXJlbnR8fCFsLmNvbnRlbnRET00pJiYoKHA9bC5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLndpZHRofHxwLmhlaWdodCkmJihsLm5vZGUuaXNCbG9jayYmbC5wYXJlbnQmJiEvXlQoUnxCT0RZfEhFQUR8Rk9PVCkkLy50ZXN0KGwuZG9tLm5vZGVOYW1lKSYmKCFvJiZwLmxlZnQ+YS5sZWZ0fHxwLnRvcD5hLnRvcD9yPWwucG9zQmVmb3JlOighbyYmcC5yaWdodDxhLmxlZnR8fHAuYm90dG9tPGEudG9wKSYmKHI9bC5wb3NBZnRlciksbz0hMCksIWwuY29udGVudERPTSYmcjwwJiYhbC5ub2RlLmlzVGV4dCkpcmV0dXJuKGwubm9kZS5pc0Jsb2NrP2EudG9wPChwLnRvcCtwLmJvdHRvbSkvMjphLmxlZnQ8KHAubGVmdCtwLnJpZ2h0KS8yKT9sLnBvc0JlZm9yZTpsLnBvc0FmdGVyO249bC5kb20ucGFyZW50Tm9kZX1yZXR1cm4gcj4tMT9yOnMuZG9jVmlldy5wb3NGcm9tRE9NKGUsdCwtMSl9ZnVuY3Rpb24gR3VhKHMsZSx0KXtsZXQgYT1zLmNoaWxkTm9kZXMubGVuZ3RoO2lmKGEmJnQudG9wPHQuYm90dG9tKWZvcihsZXQgcj1NYXRoLm1heCgwLE1hdGgubWluKGEtMSxNYXRoLmZsb29yKGEqKGUudG9wLXQudG9wKS8odC5ib3R0b20tdC50b3ApKS0yKSksbj1yOzspe2xldCBvPXMuY2hpbGROb2Rlc1tuXTtpZihvLm5vZGVUeXBlPT0xKXtsZXQgbD1vLmdldENsaWVudFJlY3RzKCk7Zm9yKGxldCBwPTA7cDxsLmxlbmd0aDtwKyspe2xldCBkPWxbcF07aWYoUHR0KGUsZCkpcmV0dXJuIEd1YShvLGUsZCl9fWlmKChuPShuKzEpJWEpPT1yKWJyZWFrfXJldHVybiBzfWZ1bmN0aW9uIEtHYShzLGUpe2xldCB0PXMuZG9tLm93bmVyRG9jdW1lbnQsYSxyPTAsbj1SR2EodCxlLmxlZnQsZS50b3ApO24mJih7bm9kZTphLG9mZnNldDpyfT1uKTtsZXQgbz0ocy5yb290LmVsZW1lbnRGcm9tUG9pbnQ/cy5yb290OnQpLmVsZW1lbnRGcm9tUG9pbnQoZS5sZWZ0LGUudG9wKSxsO2lmKCFvfHwhcy5kb20uY29udGFpbnMoby5ub2RlVHlwZSE9MT9vLnBhcmVudE5vZGU6bykpe2xldCBkPXMuZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCFQdHQoZSxkKXx8KG89R3VhKHMuZG9tLGUsZCksIW8pKXJldHVybiBudWxsfWlmKGxuKWZvcihsZXQgZD1vO2EmJmQ7ZD16dihkKSlkLmRyYWdnYWJsZSYmKGE9dm9pZCAwKTtpZihvPVVHYShvLGUpLGEpe2lmKEZjJiZhLm5vZGVUeXBlPT0xJiYocj1NYXRoLm1pbihyLGEuY2hpbGROb2Rlcy5sZW5ndGgpLHI8YS5jaGlsZE5vZGVzLmxlbmd0aCkpe2xldCB1PWEuY2hpbGROb2Rlc1tyXSxjO3Uubm9kZU5hbWU9PSJJTUciJiYoYz11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS5yaWdodDw9ZS5sZWZ0JiZjLmJvdHRvbT5lLnRvcCYmcisrfWxldCBkO1laJiZyJiZhLm5vZGVUeXBlPT0xJiYoZD1hLmNoaWxkTm9kZXNbci0xXSkubm9kZVR5cGU9PTEmJmQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiJiZkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcD49ZS50b3AmJnItLSxhPT1zLmRvbSYmcj09YS5jaGlsZE5vZGVzLmxlbmd0aC0xJiZhLmxhc3RDaGlsZC5ub2RlVHlwZT09MSYmZS50b3A+YS5sYXN0Q2hpbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tP2w9cy5zdGF0ZS5kb2MuY29udGVudC5zaXplOihyPT0wfHxhLm5vZGVUeXBlIT0xfHxhLmNoaWxkTm9kZXNbci0xXS5ub2RlTmFtZSE9IkJSIikmJihsPUdHYShzLGEscixlKSl9bD09bnVsbCYmKGw9V0dhKHMsbyxlKSk7bGV0IHA9cy5kb2NWaWV3Lm5lYXJlc3REZXNjKG8sITApO3JldHVybntwb3M6bCxpbnNpZGU6cD9wLnBvc0F0U3RhcnQtcC5ib3JkZXI6LTF9fWZ1bmN0aW9uIEt1YShzKXtyZXR1cm4gcy50b3A8cy5ib3R0b218fHMubGVmdDxzLnJpZ2h0fWZ1bmN0aW9uICRoKHMsZSl7bGV0IHQ9cy5nZXRDbGllbnRSZWN0cygpO2lmKHQubGVuZ3RoKXtsZXQgYT10W2U8MD8wOnQubGVuZ3RoLTFdO2lmKEt1YShhKSlyZXR1cm4gYX1yZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbmQuY2FsbCh0LEt1YSl8fHMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gWXVhKHMsZSx0KXtsZXR7bm9kZTphLG9mZnNldDpyLGF0b206bn09cy5kb2NWaWV3LmRvbUZyb21Qb3MoZSx0PDA/LTE6MSksbz1ZWnx8RmM7aWYoYS5ub2RlVHlwZT09MylpZihvJiYoWUdhLnRlc3QoYS5ub2RlVmFsdWUpfHwodDwwPyFyOnI9PWEubm9kZVZhbHVlLmxlbmd0aCkpKXtsZXQgcD0kaChvdShhLHIsciksdCk7aWYoRmMmJnImJi9ccy8udGVzdChhLm5vZGVWYWx1ZVtyLTFdKSYmcjxhLm5vZGVWYWx1ZS5sZW5ndGgpe2xldCBkPSRoKG91KGEsci0xLHItMSksLTEpO2lmKGQudG9wPT1wLnRvcCl7bGV0IHU9JGgob3UoYSxyLHIrMSksLTEpO2lmKHUudG9wIT1wLnRvcClyZXR1cm4gWloodSx1LmxlZnQ8ZC5sZWZ0KX19cmV0dXJuIHB9ZWxzZXtsZXQgcD1yLGQ9cix1PXQ8MD8xOi0xO3JldHVybiB0PDAmJiFyPyhkKyssdT0tMSk6dD49MCYmcj09YS5ub2RlVmFsdWUubGVuZ3RoPyhwLS0sdT0xKTp0PDA/cC0tOmQrKyxaWigkaChvdShhLHAsZCksdSksdTwwKX1pZighcy5zdGF0ZS5kb2MucmVzb2x2ZShlLShufHwwKSkucGFyZW50LmlubGluZUNvbnRlbnQpe2lmKG49PW51bGwmJnImJih0PDB8fHI9PU9jKGEpKSl7bGV0IHA9YS5jaGlsZE5vZGVzW3ItMV07aWYocC5ub2RlVHlwZT09MSlyZXR1cm4gSXR0KHAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksITEpfWlmKG49PW51bGwmJnI8T2MoYSkpe2xldCBwPWEuY2hpbGROb2Rlc1tyXTtpZihwLm5vZGVUeXBlPT0xKXJldHVybiBJdHQocC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwhMCl9cmV0dXJuIEl0dChhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ+PTApfWlmKG49PW51bGwmJnImJih0PDB8fHI9PU9jKGEpKSl7bGV0IHA9YS5jaGlsZE5vZGVzW3ItMV0sZD1wLm5vZGVUeXBlPT0zP291KHAsT2MocCktKG8/MDoxKSk6cC5ub2RlVHlwZT09MSYmKHAubm9kZU5hbWUhPSJCUiJ8fCFwLm5leHRTaWJsaW5nKT9wOm51bGw7aWYoZClyZXR1cm4gWlooJGgoZCwxKSwhMSl9aWYobj09bnVsbCYmcjxPYyhhKSl7bGV0IHA9YS5jaGlsZE5vZGVzW3JdO2Zvcig7cC5wbVZpZXdEZXNjJiZwLnBtVmlld0Rlc2MuaWdub3JlRm9yQ29vcmRzOylwPXAubmV4dFNpYmxpbmc7bGV0IGQ9cD9wLm5vZGVUeXBlPT0zP291KHAsMCxvPzA6MSk6cC5ub2RlVHlwZT09MT9wOm51bGw6bnVsbDtpZihkKXJldHVybiBaWigkaChkLC0xKSwhMCl9cmV0dXJuIFpaKCRoKGEubm9kZVR5cGU9PTM/b3UoYSk6YSwtdCksdD49MCl9ZnVuY3Rpb24gWloocyxlKXtpZihzLndpZHRoPT0wKXJldHVybiBzO2xldCB0PWU/cy5sZWZ0OnMucmlnaHQ7cmV0dXJue3RvcDpzLnRvcCxib3R0b206cy5ib3R0b20sbGVmdDp0LHJpZ2h0OnR9fWZ1bmN0aW9uIEl0dChzLGUpe2lmKHMuaGVpZ2h0PT0wKXJldHVybiBzO2xldCB0PWU/cy50b3A6cy5ib3R0b207cmV0dXJue3RvcDp0LGJvdHRvbTp0LGxlZnQ6cy5sZWZ0LHJpZ2h0OnMucmlnaHR9fWZ1bmN0aW9uIFp1YShzLGUsdCl7bGV0IGE9cy5zdGF0ZSxyPXMucm9vdC5hY3RpdmVFbGVtZW50O2EhPWUmJnMudXBkYXRlU3RhdGUoZSksciE9cy5kb20mJnMuZm9jdXMoKTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e2EhPWUmJnMudXBkYXRlU3RhdGUoYSksciE9cy5kb20mJnImJnIuZm9jdXMoKX19ZnVuY3Rpb24gWkdhKHMsZSx0KXtsZXQgYT1lLnNlbGVjdGlvbixyPXQ9PSJ1cCI/YS4kZnJvbTphLiR0bztyZXR1cm4gWnVhKHMsZSwoKT0+e2xldHtub2RlOm59PXMuZG9jVmlldy5kb21Gcm9tUG9zKHIucG9zLHQ9PSJ1cCI/LTE6MSk7Zm9yKDs7KXtsZXQgbD1zLmRvY1ZpZXcubmVhcmVzdERlc2MobiwhMCk7aWYoIWwpYnJlYWs7aWYobC5ub2RlLmlzQmxvY2spe249bC5jb250ZW50RE9NfHxsLmRvbTticmVha31uPWwuZG9tLnBhcmVudE5vZGV9bGV0IG89WXVhKHMsci5wb3MsMSk7Zm9yKGxldCBsPW4uZmlyc3RDaGlsZDtsO2w9bC5uZXh0U2libGluZyl7bGV0IHA7aWYobC5ub2RlVHlwZT09MSlwPWwuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKGwubm9kZVR5cGU9PTMpcD1vdShsLDAsbC5ub2RlVmFsdWUubGVuZ3RoKS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCBkPTA7ZDxwLmxlbmd0aDtkKyspe2xldCB1PXBbZF07aWYodS5ib3R0b20+dS50b3ArMSYmKHQ9PSJ1cCI/by50b3AtdS50b3A+KHUuYm90dG9tLW8udG9wKSoyOnUuYm90dG9tLW8uYm90dG9tPihvLmJvdHRvbS11LnRvcCkqMikpcmV0dXJuITF9fXJldHVybiEwfSl9ZnVuY3Rpb24gUUdhKHMsZSx0KXtsZXR7JGhlYWQ6YX09ZS5zZWxlY3Rpb247aWYoIWEucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybiExO2xldCByPWEucGFyZW50T2Zmc2V0LG49IXIsbz1yPT1hLnBhcmVudC5jb250ZW50LnNpemUsbD1zLmRvbVNlbGVjdGlvbigpO3JldHVybiBsPyFYR2EudGVzdChhLnBhcmVudC50ZXh0Q29udGVudCl8fCFsLm1vZGlmeT90PT0ibGVmdCJ8fHQ9PSJiYWNrd2FyZCI/bjpvOlp1YShzLGUsKCk9PntsZXR7Zm9jdXNOb2RlOnAsZm9jdXNPZmZzZXQ6ZCxhbmNob3JOb2RlOnUsYW5jaG9yT2Zmc2V0OmN9PXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSxiPWwuY2FyZXRCaWRpTGV2ZWw7bC5tb2RpZnkoIm1vdmUiLHQsImNoYXJhY3RlciIpO2xldCB2PWEuZGVwdGg/cy5kb2NWaWV3LmRvbUFmdGVyUG9zKGEuYmVmb3JlKCkpOnMuZG9tLHtmb2N1c05vZGU6eCxmb2N1c09mZnNldDptfT1zLmRvbVNlbGVjdGlvblJhbmdlKCksZj14JiYhdi5jb250YWlucyh4Lm5vZGVUeXBlPT0xP3g6eC5wYXJlbnROb2RlKXx8cD09eCYmZD09bTt0cnl7bC5jb2xsYXBzZSh1LGMpLHAmJihwIT11fHxkIT1jKSYmbC5leHRlbmQmJmwuZXh0ZW5kKHAsZCl9Y2F0Y2h7fXJldHVybiBiIT1udWxsJiYobC5jYXJldEJpZGlMZXZlbD1iKSxmfSk6YS5wb3M9PWEuc3RhcnQoKXx8YS5wb3M9PWEuZW5kKCl9ZnVuY3Rpb24gSkdhKHMsZSx0KXtyZXR1cm4gWHVhPT1lJiZRdWE9PXQ/SnVhOihYdWE9ZSxRdWE9dCxKdWE9dD09InVwInx8dD09ImRvd24iP1pHYShzLGUsdCk6UUdhKHMsZSx0KSl9ZnVuY3Rpb24gdHBhKHMsZSx0LGEscil7aXBhKGEsZSxzKTtsZXQgbj1uZXcgRGgodm9pZCAwLHMsZSx0LGEsYSxhLHIsMCk7cmV0dXJuIG4uY29udGVudERPTSYmbi51cGRhdGVDaGlsZHJlbihyLDApLG59ZnVuY3Rpb24gYXBhKHMsZSx0KXtsZXQgYT1zLmZpcnN0Q2hpbGQscj0hMTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IG89ZVtuXSxsPW8uZG9tO2lmKGwucGFyZW50Tm9kZT09cyl7Zm9yKDtsIT1hOylhPXJwYShhKSxyPSEwO2E9YS5uZXh0U2libGluZ31lbHNlIHI9ITAscy5pbnNlcnRCZWZvcmUobCxhKTtpZihvIGluc3RhbmNlb2YgJHYpe2xldCBwPWE/YS5wcmV2aW91c1NpYmxpbmc6cy5sYXN0Q2hpbGQ7YXBhKG8uY29udGVudERPTSxvLmNoaWxkcmVuLHQpLGE9cD9wLm5leHRTaWJsaW5nOnMuZmlyc3RDaGlsZH19Zm9yKDthOylhPXJwYShhKSxyPSEwO3ImJnQudHJhY2tXcml0ZXM9PXMmJih0LnRyYWNrV3JpdGVzPW51bGwpfWZ1bmN0aW9uIFJ0dChzLGUsdCl7aWYocy5sZW5ndGg9PTApcmV0dXJuIGFnO2xldCBhPXQ/YWdbMF06bmV3IFhaLHI9W2FdO2ZvcihsZXQgbj0wO248cy5sZW5ndGg7bisrKXtsZXQgbz1zW25dLnR5cGUuYXR0cnM7aWYobyl7by5ub2RlTmFtZSYmci5wdXNoKGE9bmV3IFhaKG8ubm9kZU5hbWUpKTtmb3IobGV0IGwgaW4gbyl7bGV0IHA9b1tsXTtwIT1udWxsJiYodCYmci5sZW5ndGg9PTEmJnIucHVzaChhPW5ldyBYWihlLmlzSW5saW5lPyJzcGFuIjoiZGl2IikpLGw9PSJjbGFzcyI/YS5jbGFzcz0oYS5jbGFzcz9hLmNsYXNzKyIgIjoiIikrcDpsPT0ic3R5bGUiP2Euc3R5bGU9KGEuc3R5bGU/YS5zdHlsZSsiOyI6IiIpK3A6bCE9Im5vZGVOYW1lIiYmKGFbbF09cCkpfX19cmV0dXJuIHJ9ZnVuY3Rpb24gc3BhKHMsZSx0LGEpe2lmKHQ9PWFnJiZhPT1hZylyZXR1cm4gZTtsZXQgcj1lO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtsZXQgbz1hW25dLGw9dFtuXTtpZihuKXtsZXQgcDtsJiZsLm5vZGVOYW1lPT1vLm5vZGVOYW1lJiZyIT1zJiYocD1yLnBhcmVudE5vZGUpJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PW8ubm9kZU5hbWV8fChwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoby5ub2RlTmFtZSkscC5wbUlzRGVjbz0hMCxwLmFwcGVuZENoaWxkKHIpLGw9YWdbMF0pLHI9cH1lS2EocixsfHxhZ1swXSxvKX1yZXR1cm4gcn1mdW5jdGlvbiBlS2EocyxlLHQpe2ZvcihsZXQgYSBpbiBlKWEhPSJjbGFzcyImJmEhPSJzdHlsZSImJmEhPSJub2RlTmFtZSImJiEoYSBpbiB0KSYmcy5yZW1vdmVBdHRyaWJ1dGUoYSk7Zm9yKGxldCBhIGluIHQpYSE9ImNsYXNzIiYmYSE9InN0eWxlIiYmYSE9Im5vZGVOYW1lIiYmdFthXSE9ZVthXSYmcy5zZXRBdHRyaWJ1dGUoYSx0W2FdKTtpZihlLmNsYXNzIT10LmNsYXNzKXtsZXQgYT1lLmNsYXNzP2UuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W10scj10LmNsYXNzP3QuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W107Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspci5pbmRleE9mKGFbbl0pPT0tMSYmcy5jbGFzc0xpc3QucmVtb3ZlKGFbbl0pO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKWEuaW5kZXhPZihyW25dKT09LTEmJnMuY2xhc3NMaXN0LmFkZChyW25dKTtzLmNsYXNzTGlzdC5sZW5ndGg9PTAmJnMucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfWlmKGUuc3R5bGUhPXQuc3R5bGUpe2lmKGUuc3R5bGUpe2xldCBhPS9ccyooW1x3XC1ceGExLVx1ZmZmZl0rKVxzKjooPzoiKD86XFwufFteIl0pKiJ8Jyg/OlxcLnxbXiddKSonfFwoLio/XCl8W147XSkqL2cscjtmb3IoO3I9YS5leGVjKGUuc3R5bGUpOylzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHJbMV0pfXQuc3R5bGUmJihzLnN0eWxlLmNzc1RleHQrPXQuc3R5bGUpfX1mdW5jdGlvbiBpcGEocyxlLHQpe3JldHVybiBzcGEocyxzLGFnLFJ0dChlLHQscy5ub2RlVHlwZSE9MSkpfWZ1bmN0aW9uIFpuZShzLGUpe2lmKHMubGVuZ3RoIT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrKylpZighc1t0XS50eXBlLmVxKGVbdF0udHlwZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gcnBhKHMpe2xldCBlPXMubmV4dFNpYmxpbmc7cmV0dXJuIHMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzKSxlfWZ1bmN0aW9uIHRLYShzLGUpe2xldCB0PWUsYT10LmNoaWxkcmVuLmxlbmd0aCxyPXMuY2hpbGRDb3VudCxuPW5ldyBNYXAsbz1bXTtlOmZvcig7cj4wOyl7bGV0IGw7Zm9yKDs7KWlmKGEpe2xldCBkPXQuY2hpbGRyZW5bYS0xXTtpZihkIGluc3RhbmNlb2YgJHYpdD1kLGE9ZC5jaGlsZHJlbi5sZW5ndGg7ZWxzZXtsPWQsYS0tO2JyZWFrfX1lbHNle2lmKHQ9PWUpYnJlYWsgZTthPXQucGFyZW50LmNoaWxkcmVuLmluZGV4T2YodCksdD10LnBhcmVudH1sZXQgcD1sLm5vZGU7aWYocCl7aWYocCE9cy5jaGlsZChyLTEpKWJyZWFrOy0tcixuLnNldChsLHIpLG8ucHVzaChsKX19cmV0dXJue2luZGV4OnIsbWF0Y2hlZDpuLG1hdGNoZXM6by5yZXZlcnNlKCl9fWZ1bmN0aW9uIGFLYShzLGUpe3JldHVybiBzLnR5cGUuc2lkZS1lLnR5cGUuc2lkZX1mdW5jdGlvbiBzS2EocyxlLHQsYSl7bGV0IHI9ZS5sb2NhbHMocyksbj0wO2lmKHIubGVuZ3RoPT0wKXtmb3IobGV0IGQ9MDtkPHMuY2hpbGRDb3VudDtkKyspe2xldCB1PXMuY2hpbGQoZCk7YSh1LHIsZS5mb3JDaGlsZChuLHUpLGQpLG4rPXUubm9kZVNpemV9cmV0dXJufWxldCBvPTAsbD1bXSxwPW51bGw7Zm9yKGxldCBkPTA7Oyl7bGV0IHUsYztmb3IoO288ci5sZW5ndGgmJnJbb10udG89PW47KXtsZXQgZj1yW28rK107Zi53aWRnZXQmJih1PyhjfHwoYz1bdV0pKS5wdXNoKGYpOnU9Zil9aWYodSlpZihjKXtjLnNvcnQoYUthKTtmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrKyl0KGNbZl0sZCwhIXApfWVsc2UgdCh1LGQsISFwKTtsZXQgYix2O2lmKHApdj0tMSxiPXAscD1udWxsO2Vsc2UgaWYoZDxzLmNoaWxkQ291bnQpdj1kLGI9cy5jaGlsZChkKyspO2Vsc2UgYnJlYWs7Zm9yKGxldCBmPTA7ZjxsLmxlbmd0aDtmKyspbFtmXS50bzw9biYmbC5zcGxpY2UoZi0tLDEpO2Zvcig7bzxyLmxlbmd0aCYmcltvXS5mcm9tPD1uJiZyW29dLnRvPm47KWwucHVzaChyW28rK10pO2xldCB4PW4rYi5ub2RlU2l6ZTtpZihiLmlzVGV4dCl7bGV0IGY9eDtvPHIubGVuZ3RoJiZyW29dLmZyb208ZiYmKGY9cltvXS5mcm9tKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krKylsW3ldLnRvPGYmJihmPWxbeV0udG8pO2Y8eCYmKHA9Yi5jdXQoZi1uKSxiPWIuY3V0KDAsZi1uKSx4PWYsdj0tMSl9ZWxzZSBmb3IoO288ci5sZW5ndGgmJnJbb10udG88eDspbysrO2xldCBtPWIuaXNJbmxpbmUmJiFiLmlzTGVhZj9sLmZpbHRlcihmPT4hZi5pbmxpbmUpOmwuc2xpY2UoKTthKGIsbSxlLmZvckNoaWxkKG4sYiksdiksbj14fX1mdW5jdGlvbiBpS2Eocyl7aWYocy5ub2RlTmFtZT09IlVMInx8cy5ub2RlTmFtZT09Ik9MIil7bGV0IGU9cy5zdHlsZS5jc3NUZXh0O3Muc3R5bGUuY3NzVGV4dD1lKyI7IGxpc3Qtc3R5bGU6IHNxdWFyZSAhaW1wb3J0YW50Iix3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzKS5saXN0U3R5bGUscy5zdHlsZS5jc3NUZXh0PWV9fWZ1bmN0aW9uIHJLYShzLGUsdCxhKXtmb3IobGV0IHI9MCxuPTA7cjxzLmNoaWxkQ291bnQmJm48PWE7KXtsZXQgbz1zLmNoaWxkKHIrKyksbD1uO2lmKG4rPW8ubm9kZVNpemUsIW8uaXNUZXh0KWNvbnRpbnVlO2xldCBwPW8udGV4dDtmb3IoO3I8cy5jaGlsZENvdW50Oyl7bGV0IGQ9cy5jaGlsZChyKyspO2lmKG4rPWQubm9kZVNpemUsIWQuaXNUZXh0KWJyZWFrO3ArPWQudGV4dH1pZihuPj10KXtpZihuPj1hJiZwLnNsaWNlKGEtZS5sZW5ndGgtbCxhLWwpPT1lKXJldHVybiBhLWUubGVuZ3RoO2xldCBkPWw8YT9wLmxhc3RJbmRleE9mKGUsYS1sLTEpOi0xO2lmKGQ+PTAmJmQrZS5sZW5ndGgrbD49dClyZXR1cm4gbCtkO2lmKHQ9PWEmJnAubGVuZ3RoPj1hK2UubGVuZ3RoLWwmJnAuc2xpY2UoYS1sLGEtbCtlLmxlbmd0aCk9PWUpcmV0dXJuIGF9fXJldHVybi0xfWZ1bmN0aW9uIEZ0dChzLGUsdCxhLHIpe2xldCBuPVtdO2ZvcihsZXQgbz0wLGw9MDtvPHMubGVuZ3RoO28rKyl7bGV0IHA9c1tvXSxkPWwsdT1sKz1wLnNpemU7ZD49dHx8dTw9ZT9uLnB1c2gocCk6KGQ8ZSYmbi5wdXNoKHAuc2xpY2UoMCxlLWQsYSkpLHImJihuLnB1c2gocikscj12b2lkIDApLHU+dCYmbi5wdXNoKHAuc2xpY2UodC1kLHAuc2l6ZSxhKSkpfXJldHVybiBufWZ1bmN0aW9uIEJ0dChzLGU9bnVsbCl7bGV0IHQ9cy5kb21TZWxlY3Rpb25SYW5nZSgpLGE9cy5zdGF0ZS5kb2M7aWYoIXQuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCByPXMuZG9jVmlldy5uZWFyZXN0RGVzYyh0LmZvY3VzTm9kZSksbj1yJiZyLnNpemU9PTAsbz1zLmRvY1ZpZXcucG9zRnJvbURPTSh0LmZvY3VzTm9kZSx0LmZvY3VzT2Zmc2V0LDEpO2lmKG88MClyZXR1cm4gbnVsbDtsZXQgbD1hLnJlc29sdmUobykscCxkO2lmKFduZSh0KSl7Zm9yKHA9bztyJiYhci5ub2RlOylyPXIucGFyZW50O2xldCBjPXIubm9kZTtpZihyJiZjLmlzQXRvbSYmRnQuaXNTZWxlY3RhYmxlKGMpJiZyLnBhcmVudCYmIShjLmlzSW5saW5lJiZBR2EodC5mb2N1c05vZGUsdC5mb2N1c09mZnNldCxyLmRvbSkpKXtsZXQgYj1yLnBvc0JlZm9yZTtkPW5ldyBGdChvPT1iP2w6YS5yZXNvbHZlKGIpKX19ZWxzZXtpZih0IGluc3RhbmNlb2Ygcy5kb20ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5TZWxlY3Rpb24mJnQucmFuZ2VDb3VudD4xKXtsZXQgYz1vLGI9bztmb3IobGV0IHY9MDt2PHQucmFuZ2VDb3VudDt2Kyspe2xldCB4PXQuZ2V0UmFuZ2VBdCh2KTtjPU1hdGgubWluKGMscy5kb2NWaWV3LnBvc0Zyb21ET00oeC5zdGFydENvbnRhaW5lcix4LnN0YXJ0T2Zmc2V0LDEpKSxiPU1hdGgubWF4KGIscy5kb2NWaWV3LnBvc0Zyb21ET00oeC5lbmRDb250YWluZXIseC5lbmRPZmZzZXQsLTEpKX1pZihjPDApcmV0dXJuIG51bGw7W3Asb109Yj09cy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yP1tiLGNdOltjLGJdLGw9YS5yZXNvbHZlKG8pfWVsc2UgcD1zLmRvY1ZpZXcucG9zRnJvbURPTSh0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQsMSk7aWYocDwwKXJldHVybiBudWxsfWxldCB1PWEucmVzb2x2ZShwKTtpZighZCl7bGV0IGM9ZT09InBvaW50ZXIifHxzLnN0YXRlLnNlbGVjdGlvbi5oZWFkPGwucG9zJiYhbj8xOi0xO2Q9cXR0KHMsdSxsLGMpfXJldHVybiBkfWZ1bmN0aW9uIG9wYShzKXtyZXR1cm4gcy5lZGl0YWJsZT9zLmhhc0ZvY3VzKCk6aHBhKHMpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNvbnRhaW5zKHMuZG9tKX1mdW5jdGlvbiBjdShzLGU9ITEpe2xldCB0PXMuc3RhdGUuc2VsZWN0aW9uO2lmKGRwYShzLHQpLCEhb3BhKHMpKXtpZighZSYmcy5pbnB1dC5tb3VzZURvd24mJnMuaW5wdXQubW91c2VEb3duLmFsbG93RGVmYXVsdCYmJG8pe2xldCBhPXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSxyPXMuZG9tT2JzZXJ2ZXIuY3VycmVudFNlbGVjdGlvbjtpZihhLmFuY2hvck5vZGUmJnIuYW5jaG9yTm9kZSYmUTgoYS5hbmNob3JOb2RlLGEuYW5jaG9yT2Zmc2V0LHIuYW5jaG9yTm9kZSxyLmFuY2hvck9mZnNldCkpe3MuaW5wdXQubW91c2VEb3duLmRlbGF5ZWRTZWxlY3Rpb25TeW5jPSEwLHMuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCk7cmV0dXJufX1pZihzLmRvbU9ic2VydmVyLmRpc2Nvbm5lY3RTZWxlY3Rpb24oKSxzLmN1cnNvcldyYXBwZXIpbkthKHMpO2Vsc2V7bGV0e2FuY2hvcjphLGhlYWQ6cn09dCxuLG87bnBhJiYhKHQgaW5zdGFuY2VvZiBKdCkmJih0LiRmcm9tLnBhcmVudC5pbmxpbmVDb250ZW50fHwobj1scGEocyx0LmZyb20pKSwhdC5lbXB0eSYmIXQuJGZyb20ucGFyZW50LmlubGluZUNvbnRlbnQmJihvPWxwYShzLHQudG8pKSkscy5kb2NWaWV3LnNldFNlbGVjdGlvbihhLHIscyxlKSxucGEmJihuJiZjcGEobiksbyYmY3BhKG8pKSx0LnZpc2libGU/cy5kb20uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3ItaGlkZXNlbGVjdGlvbiIpOihzLmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIiksIm9uc2VsZWN0aW9uY2hhbmdlImluIGRvY3VtZW50JiZvS2EocykpfXMuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCkscy5kb21PYnNlcnZlci5jb25uZWN0U2VsZWN0aW9uKCl9fWZ1bmN0aW9uIGxwYShzLGUpe2xldHtub2RlOnQsb2Zmc2V0OmF9PXMuZG9jVmlldy5kb21Gcm9tUG9zKGUsMCkscj1hPHQuY2hpbGROb2Rlcy5sZW5ndGg/dC5jaGlsZE5vZGVzW2FdOm51bGwsbj1hP3QuY2hpbGROb2Rlc1thLTFdOm51bGw7aWYobG4mJnImJnIuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiBIdHQocik7aWYoKCFyfHxyLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIikmJighbnx8bi5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpKXtpZihyKXJldHVybiBIdHQocik7aWYobilyZXR1cm4gSHR0KG4pfX1mdW5jdGlvbiBIdHQocyl7cmV0dXJuIHMuY29udGVudEVkaXRhYmxlPSJ0cnVlIixsbiYmcy5kcmFnZ2FibGUmJihzLmRyYWdnYWJsZT0hMSxzLndhc0RyYWdnYWJsZT0hMCksc31mdW5jdGlvbiBjcGEocyl7cy5jb250ZW50RWRpdGFibGU9ImZhbHNlIixzLndhc0RyYWdnYWJsZSYmKHMuZHJhZ2dhYmxlPSEwLHMud2FzRHJhZ2dhYmxlPW51bGwpfWZ1bmN0aW9uIG9LYShzKXtsZXQgZT1zLmRvbS5vd25lckRvY3VtZW50O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixzLmlucHV0LmhpZGVTZWxlY3Rpb25HdWFyZCk7bGV0IHQ9cy5kb21TZWxlY3Rpb25SYW5nZSgpLGE9dC5hbmNob3JOb2RlLHI9dC5hbmNob3JPZmZzZXQ7ZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHMuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkPSgpPT57KHQuYW5jaG9yTm9kZSE9YXx8dC5hbmNob3JPZmZzZXQhPXIpJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHMuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkKSxzZXRUaW1lb3V0KCgpPT57KCFvcGEocyl8fHMuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUpJiZzLmRvbS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIil9LDIwKSl9KX1mdW5jdGlvbiBuS2Eocyl7bGV0IGU9cy5kb21TZWxlY3Rpb24oKTtpZighZSlyZXR1cm47bGV0IHQ9cy5jdXJzb3JXcmFwcGVyLmRvbSxhPXQubm9kZU5hbWU9PSJJTUciO2E/ZS5jb2xsYXBzZSh0LnBhcmVudE5vZGUsVG8odCkrMSk6ZS5jb2xsYXBzZSh0LDApLCFhJiYhcy5zdGF0ZS5zZWxlY3Rpb24udmlzaWJsZSYmQ2wmJlRoPD0xMSYmKHQuZGlzYWJsZWQ9ITAsdC5kaXNhYmxlZD0hMSl9ZnVuY3Rpb24gZHBhKHMsZSl7aWYoZSBpbnN0YW5jZW9mIEZ0KXtsZXQgdD1zLmRvY1ZpZXcuZGVzY0F0KGUuZnJvbSk7dCE9cy5sYXN0U2VsZWN0ZWRWaWV3RGVzYyYmKHVwYShzKSx0JiZ0LnNlbGVjdE5vZGUoKSxzLmxhc3RTZWxlY3RlZFZpZXdEZXNjPXQpfWVsc2UgdXBhKHMpfWZ1bmN0aW9uIHVwYShzKXtzLmxhc3RTZWxlY3RlZFZpZXdEZXNjJiYocy5sYXN0U2VsZWN0ZWRWaWV3RGVzYy5wYXJlbnQmJnMubGFzdFNlbGVjdGVkVmlld0Rlc2MuZGVzZWxlY3ROb2RlKCkscy5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDApfWZ1bmN0aW9uIHF0dChzLGUsdCxhKXtyZXR1cm4gcy5zb21lUHJvcCgiY3JlYXRlU2VsZWN0aW9uQmV0d2VlbiIscj0+cihzLGUsdCkpfHxKdC5iZXR3ZWVuKGUsdCxhKX1mdW5jdGlvbiBwcGEocyl7cmV0dXJuIHMuZWRpdGFibGUmJiFzLmhhc0ZvY3VzKCk/ITE6aHBhKHMpfWZ1bmN0aW9uIGhwYShzKXtsZXQgZT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuYW5jaG9yTm9kZSlyZXR1cm4hMTt0cnl7cmV0dXJuIHMuZG9tLmNvbnRhaW5zKGUuYW5jaG9yTm9kZS5ub2RlVHlwZT09Mz9lLmFuY2hvck5vZGUucGFyZW50Tm9kZTplLmFuY2hvck5vZGUpJiYocy5lZGl0YWJsZXx8cy5kb20uY29udGFpbnMoZS5mb2N1c05vZGUubm9kZVR5cGU9PTM/ZS5mb2N1c05vZGUucGFyZW50Tm9kZTplLmZvY3VzTm9kZSkpfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBsS2Eocyl7bGV0IGU9cy5kb2NWaWV3LmRvbUZyb21Qb3Mocy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yLDApLHQ9cy5kb21TZWxlY3Rpb25SYW5nZSgpO3JldHVybiBROChlLm5vZGUsZS5vZmZzZXQsdC5hbmNob3JOb2RlLHQuYW5jaG9yT2Zmc2V0KX1mdW5jdGlvbiBqdHQocyxlKXtsZXR7JGFuY2hvcjp0LCRoZWFkOmF9PXMuc2VsZWN0aW9uLHI9ZT4wP3QubWF4KGEpOnQubWluKGEpLG49ci5wYXJlbnQuaW5saW5lQ29udGVudD9yLmRlcHRoP3MuZG9jLnJlc29sdmUoZT4wP3IuYWZ0ZXIoKTpyLmJlZm9yZSgpKTpudWxsOnI7cmV0dXJuIG4mJlF0LmZpbmRGcm9tKG4sZSl9ZnVuY3Rpb24gTGgocyxlKXtyZXR1cm4gcy5kaXNwYXRjaChzLnN0YXRlLnRyLnNldFNlbGVjdGlvbihlKS5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiBmcGEocyxlLHQpe2xldCBhPXMuc3RhdGUuc2VsZWN0aW9uO2lmKGEgaW5zdGFuY2VvZiBKdClpZih0LmluZGV4T2YoInMiKT4tMSl7bGV0eyRoZWFkOnJ9PWEsbj1yLnRleHRPZmZzZXQ/bnVsbDplPDA/ci5ub2RlQmVmb3JlOnIubm9kZUFmdGVyO2lmKCFufHxuLmlzVGV4dHx8IW4uaXNMZWFmKXJldHVybiExO2xldCBvPXMuc3RhdGUuZG9jLnJlc29sdmUoci5wb3Mrbi5ub2RlU2l6ZSooZTwwPy0xOjEpKTtyZXR1cm4gTGgocyxuZXcgSnQoYS4kYW5jaG9yLG8pKX1lbHNlIGlmKGEuZW1wdHkpe2lmKHMuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSl7bGV0IHI9anR0KHMuc3RhdGUsZSk7cmV0dXJuIHImJnIgaW5zdGFuY2VvZiBGdD9MaChzLHIpOiExfWVsc2UgaWYoIShCYyYmdC5pbmRleE9mKCJtIik+LTEpKXtsZXQgcj1hLiRoZWFkLG49ci50ZXh0T2Zmc2V0P251bGw6ZTwwP3Iubm9kZUJlZm9yZTpyLm5vZGVBZnRlcixvO2lmKCFufHxuLmlzVGV4dClyZXR1cm4hMTtsZXQgbD1lPDA/ci5wb3Mtbi5ub2RlU2l6ZTpyLnBvcztyZXR1cm4gbi5pc0F0b218fChvPXMuZG9jVmlldy5kZXNjQXQobCkpJiYhby5jb250ZW50RE9NP0Z0LmlzU2VsZWN0YWJsZShuKT9MaChzLG5ldyBGdChlPDA/cy5zdGF0ZS5kb2MucmVzb2x2ZShyLnBvcy1uLm5vZGVTaXplKTpyKSk6WVo/TGgocyxuZXcgSnQocy5zdGF0ZS5kb2MucmVzb2x2ZShlPDA/bDpsK24ubm9kZVNpemUpKSk6ITE6ITF9fWVsc2UgcmV0dXJuITE7ZWxzZXtpZihhIGluc3RhbmNlb2YgRnQmJmEubm9kZS5pc0lubGluZSlyZXR1cm4gTGgocyxuZXcgSnQoZT4wP2EuJHRvOmEuJGZyb20pKTt7bGV0IHI9anR0KHMuc3RhdGUsZSk7cmV0dXJuIHI/TGgocyxyKTohMX19fWZ1bmN0aW9uIFhuZShzKXtyZXR1cm4gcy5ub2RlVHlwZT09Mz9zLm5vZGVWYWx1ZS5sZW5ndGg6cy5jaGlsZE5vZGVzLmxlbmd0aH1mdW5jdGlvbiBRWihzLGUpe2xldCB0PXMucG1WaWV3RGVzYztyZXR1cm4gdCYmdC5zaXplPT0wJiYoZTwwfHxzLm5leHRTaWJsaW5nfHxzLm5vZGVOYW1lIT0iQlIiKX1mdW5jdGlvbiBEdihzLGUpe3JldHVybiBlPDA/Y0thKHMpOmRLYShzKX1mdW5jdGlvbiBjS2Eocyl7bGV0IGU9cy5kb21TZWxlY3Rpb25SYW5nZSgpLHQ9ZS5mb2N1c05vZGUsYT1lLmZvY3VzT2Zmc2V0O2lmKCF0KXJldHVybjtsZXQgcixuLG89ITE7Zm9yKEZjJiZ0Lm5vZGVUeXBlPT0xJiZhPFhuZSh0KSYmUVoodC5jaGlsZE5vZGVzW2FdLC0xKSYmKG89ITApOzspaWYoYT4wKXtpZih0Lm5vZGVUeXBlIT0xKWJyZWFrO3tsZXQgbD10LmNoaWxkTm9kZXNbYS0xXTtpZihRWihsLC0xKSlyPXQsbj0tLWE7ZWxzZSBpZihsLm5vZGVUeXBlPT0zKXQ9bCxhPXQubm9kZVZhbHVlLmxlbmd0aDtlbHNlIGJyZWFrfX1lbHNle2lmKG1wYSh0KSlicmVhazt7bGV0IGw9dC5wcmV2aW91c1NpYmxpbmc7Zm9yKDtsJiZRWihsLC0xKTspcj10LnBhcmVudE5vZGUsbj1UbyhsKSxsPWwucHJldmlvdXNTaWJsaW5nO2lmKGwpdD1sLGE9WG5lKHQpO2Vsc2V7aWYodD10LnBhcmVudE5vZGUsdD09cy5kb20pYnJlYWs7YT0wfX19bz9WdHQocyx0LGEpOnImJlZ0dChzLHIsbil9ZnVuY3Rpb24gZEthKHMpe2xldCBlPXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSx0PWUuZm9jdXNOb2RlLGE9ZS5mb2N1c09mZnNldDtpZighdClyZXR1cm47bGV0IHI9WG5lKHQpLG4sbztmb3IoOzspaWYoYTxyKXtpZih0Lm5vZGVUeXBlIT0xKWJyZWFrO2xldCBsPXQuY2hpbGROb2Rlc1thXTtpZihRWihsLDEpKW49dCxvPSsrYTtlbHNlIGJyZWFrfWVsc2V7aWYobXBhKHQpKWJyZWFrO3tsZXQgbD10Lm5leHRTaWJsaW5nO2Zvcig7bCYmUVoobCwxKTspbj1sLnBhcmVudE5vZGUsbz1UbyhsKSsxLGw9bC5uZXh0U2libGluZztpZihsKXQ9bCxhPTAscj1YbmUodCk7ZWxzZXtpZih0PXQucGFyZW50Tm9kZSx0PT1zLmRvbSlicmVhazthPXI9MH19fW4mJlZ0dChzLG4sbyl9ZnVuY3Rpb24gbXBhKHMpe2xldCBlPXMucG1WaWV3RGVzYztyZXR1cm4gZSYmZS5ub2RlJiZlLm5vZGUuaXNCbG9ja31mdW5jdGlvbiB1S2EocyxlKXtmb3IoO3MmJmU9PXMuY2hpbGROb2Rlcy5sZW5ndGgmJiFLWihzKTspZT1UbyhzKSsxLHM9cy5wYXJlbnROb2RlO2Zvcig7cyYmZTxzLmNoaWxkTm9kZXMubGVuZ3RoOyl7bGV0IHQ9cy5jaGlsZE5vZGVzW2VdO2lmKHQubm9kZVR5cGU9PTMpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmdC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7cz10LGU9MH19ZnVuY3Rpb24gcEthKHMsZSl7Zm9yKDtzJiYhZSYmIUtaKHMpOyllPVRvKHMpLHM9cy5wYXJlbnROb2RlO2Zvcig7cyYmZTspe2xldCB0PXMuY2hpbGROb2Rlc1tlLTFdO2lmKHQubm9kZVR5cGU9PTMpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmdC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7cz10LGU9cy5jaGlsZE5vZGVzLmxlbmd0aH19ZnVuY3Rpb24gVnR0KHMsZSx0KXtpZihlLm5vZGVUeXBlIT0zKXtsZXQgbixvOyhvPXVLYShlLHQpKT8oZT1vLHQ9MCk6KG49cEthKGUsdCkpJiYoZT1uLHQ9bi5ub2RlVmFsdWUubGVuZ3RoKX1sZXQgYT1zLmRvbVNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZihXbmUoYSkpe2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZXRFbmQoZSx0KSxuLnNldFN0YXJ0KGUsdCksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKG4pfWVsc2UgYS5leHRlbmQmJmEuZXh0ZW5kKGUsdCk7cy5kb21PYnNlcnZlci5zZXRDdXJTZWxlY3Rpb24oKTtsZXR7c3RhdGU6cn09cztzZXRUaW1lb3V0KCgpPT57cy5zdGF0ZT09ciYmY3Uocyl9LDUwKX1mdW5jdGlvbiBncGEocyxlKXtsZXQgdD1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCEoJG98fHF1YSkmJnQucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCByPXMuY29vcmRzQXRQb3MoZSk7aWYoZT50LnN0YXJ0KCkpe2xldCBuPXMuY29vcmRzQXRQb3MoZS0xKSxvPShuLnRvcCtuLmJvdHRvbSkvMjtpZihvPnIudG9wJiZvPHIuYm90dG9tJiZNYXRoLmFicyhuLmxlZnQtci5sZWZ0KT4xKXJldHVybiBuLmxlZnQ8ci5sZWZ0PyJsdHIiOiJydGwifWlmKGU8dC5lbmQoKSl7bGV0IG49cy5jb29yZHNBdFBvcyhlKzEpLG89KG4udG9wK24uYm90dG9tKS8yO2lmKG8+ci50b3AmJm88ci5ib3R0b20mJk1hdGguYWJzKG4ubGVmdC1yLmxlZnQpPjEpcmV0dXJuIG4ubGVmdD5yLmxlZnQ/Imx0ciI6InJ0bCJ9fXJldHVybiBnZXRDb21wdXRlZFN0eWxlKHMuZG9tKS5kaXJlY3Rpb249PSJydGwiPyJydGwiOiJsdHIifWZ1bmN0aW9uIGJwYShzLGUsdCl7bGV0IGE9cy5zdGF0ZS5zZWxlY3Rpb247aWYoYSBpbnN0YW5jZW9mIEp0JiYhYS5lbXB0eXx8dC5pbmRleE9mKCJzIik+LTF8fEJjJiZ0LmluZGV4T2YoIm0iKT4tMSlyZXR1cm4hMTtsZXR7JGZyb206ciwkdG86bn09YTtpZighci5wYXJlbnQuaW5saW5lQ29udGVudHx8cy5lbmRPZlRleHRibG9jayhlPDA/InVwIjoiZG93biIpKXtsZXQgbz1qdHQocy5zdGF0ZSxlKTtpZihvJiZvIGluc3RhbmNlb2YgRnQpcmV0dXJuIExoKHMsbyl9aWYoIXIucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBvPWU8MD9yOm4sbD1hIGluc3RhbmNlb2Ygbm4/UXQubmVhcihvLGUpOlF0LmZpbmRGcm9tKG8sZSk7cmV0dXJuIGw/TGgocyxsKTohMX1yZXR1cm4hMX1mdW5jdGlvbiB2cGEocyxlKXtpZighKHMuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgSnQpKXJldHVybiEwO2xldHskaGVhZDp0LCRhbmNob3I6YSxlbXB0eTpyfT1zLnN0YXRlLnNlbGVjdGlvbjtpZighdC5zYW1lUGFyZW50KGEpKXJldHVybiEwO2lmKCFyKXJldHVybiExO2lmKHMuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSlyZXR1cm4hMDtsZXQgbj0hdC50ZXh0T2Zmc2V0JiYoZTwwP3Qubm9kZUJlZm9yZTp0Lm5vZGVBZnRlcik7aWYobiYmIW4uaXNUZXh0KXtsZXQgbz1zLnN0YXRlLnRyO3JldHVybiBlPDA/by5kZWxldGUodC5wb3Mtbi5ub2RlU2l6ZSx0LnBvcyk6by5kZWxldGUodC5wb3MsdC5wb3Mrbi5ub2RlU2l6ZSkscy5kaXNwYXRjaChvKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiB4cGEocyxlLHQpe3MuZG9tT2JzZXJ2ZXIuc3RvcCgpLGUuY29udGVudEVkaXRhYmxlPXQscy5kb21PYnNlcnZlci5zdGFydCgpfWZ1bmN0aW9uIGhLYShzKXtpZighbG58fHMuc3RhdGUuc2VsZWN0aW9uLiRoZWFkLnBhcmVudE9mZnNldD4wKXJldHVybiExO2xldHtmb2N1c05vZGU6ZSxmb2N1c09mZnNldDp0fT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoZSYmZS5ub2RlVHlwZT09MSYmdD09MCYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXtsZXQgYT1lLmZpcnN0Q2hpbGQ7eHBhKHMsYSwidHJ1ZSIpLHNldFRpbWVvdXQoKCk9PnhwYShzLGEsImZhbHNlIiksMjApfXJldHVybiExfWZ1bmN0aW9uIGZLYShzKXtsZXQgZT0iIjtyZXR1cm4gcy5jdHJsS2V5JiYoZSs9ImMiKSxzLm1ldGFLZXkmJihlKz0ibSIpLHMuYWx0S2V5JiYoZSs9ImEiKSxzLnNoaWZ0S2V5JiYoZSs9InMiKSxlfWZ1bmN0aW9uIG1LYShzLGUpe2xldCB0PWUua2V5Q29kZSxhPWZLYShlKTtpZih0PT04fHxCYyYmdD09NzImJmE9PSJjIilyZXR1cm4gdnBhKHMsLTEpfHxEdihzLC0xKTtpZih0PT00NiYmIWUuc2hpZnRLZXl8fEJjJiZ0PT02OCYmYT09ImMiKXJldHVybiB2cGEocywxKXx8RHYocywxKTtpZih0PT0xM3x8dD09MjcpcmV0dXJuITA7aWYodD09Mzd8fEJjJiZ0PT02NiYmYT09ImMiKXtsZXQgcj10PT0zNz9ncGEocyxzLnN0YXRlLnNlbGVjdGlvbi5mcm9tKT09Imx0ciI/LTE6MTotMTtyZXR1cm4gZnBhKHMscixhKXx8RHYocyxyKX1lbHNlIGlmKHQ9PTM5fHxCYyYmdD09NzAmJmE9PSJjIil7bGV0IHI9dD09Mzk/Z3BhKHMscy5zdGF0ZS5zZWxlY3Rpb24uZnJvbSk9PSJsdHIiPzE6LTE6MTtyZXR1cm4gZnBhKHMscixhKXx8RHYocyxyKX1lbHNle2lmKHQ9PTM4fHxCYyYmdD09ODAmJmE9PSJjIilyZXR1cm4gYnBhKHMsLTEsYSl8fER2KHMsLTEpO2lmKHQ9PTQwfHxCYyYmdD09NzgmJmE9PSJjIilyZXR1cm4gaEthKHMpfHxicGEocywxLGEpfHxEdihzLDEpO2lmKGE9PShCYz8ibSI6ImMiKSYmKHQ9PTY2fHx0PT03M3x8dD09ODl8fHQ9PTkwKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBVdHQocyxlKXtzLnNvbWVQcm9wKCJ0cmFuc2Zvcm1Db3BpZWQiLHY9PntlPXYoZSxzKX0pO2xldCB0PVtdLHtjb250ZW50OmEsb3BlblN0YXJ0OnIsb3BlbkVuZDpufT1lO2Zvcig7cj4xJiZuPjEmJmEuY2hpbGRDb3VudD09MSYmYS5maXJzdENoaWxkLmNoaWxkQ291bnQ9PTE7KXtyLS0sbi0tO2xldCB2PWEuZmlyc3RDaGlsZDt0LnB1c2godi50eXBlLm5hbWUsdi5hdHRycyE9di50eXBlLmRlZmF1bHRBdHRycz92LmF0dHJzOm51bGwpLGE9di5jb250ZW50fWxldCBvPXMuc29tZVByb3AoImNsaXBib2FyZFNlcmlhbGl6ZXIiKXx8TGQuZnJvbVNjaGVtYShzLnN0YXRlLnNjaGVtYSksbD16cGEoKSxwPWwuY3JlYXRlRWxlbWVudCgiZGl2Iik7cC5hcHBlbmRDaGlsZChvLnNlcmlhbGl6ZUZyYWdtZW50KGEse2RvY3VtZW50Omx9KSk7bGV0IGQ9cC5maXJzdENoaWxkLHUsYz0wO2Zvcig7ZCYmZC5ub2RlVHlwZT09MSYmKHU9X3BhW2Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pOyl7Zm9yKGxldCB2PXUubGVuZ3RoLTE7dj49MDt2LS0pe2xldCB4PWwuY3JlYXRlRWxlbWVudCh1W3ZdKTtmb3IoO3AuZmlyc3RDaGlsZDspeC5hcHBlbmRDaGlsZChwLmZpcnN0Q2hpbGQpO3AuYXBwZW5kQ2hpbGQoeCksYysrfWQ9cC5maXJzdENoaWxkfWQmJmQubm9kZVR5cGU9PTEmJmQuc2V0QXR0cmlidXRlKCJkYXRhLXBtLXNsaWNlIixgJHtyfSAke259JHtjP2AgLSR7Y31gOiIifSAke0pTT04uc3RyaW5naWZ5KHQpfWApO2xldCBiPXMuc29tZVByb3AoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIix2PT52KGUscykpfHxlLmNvbnRlbnQudGV4dEJldHdlZW4oMCxlLmNvbnRlbnQuc2l6ZSxgCgpgKTtyZXR1cm57ZG9tOnAsdGV4dDpiLHNsaWNlOmV9fWZ1bmN0aW9uIFd0dChzLGUsdCxhLHIpe2xldCBuPXIucGFyZW50LnR5cGUuc3BlYy5jb2RlLG8sbDtpZighdCYmIWUpcmV0dXJuIG51bGw7bGV0IHA9ISFlJiYoYXx8bnx8IXQpO2lmKHApe2lmKHMuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZFRleHQiLGI9PntlPWIoZSxufHxhLHMpfSksbilyZXR1cm4gbD1uZXcgX3QocnQuZnJvbShzLnN0YXRlLnNjaGVtYS50ZXh0KGUucmVwbGFjZSgvXHJcbj8vZyxgCmApKSksMCwwKSxzLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLGI9PntsPWIobCxzLCEwKX0pLGw7bGV0IGM9cy5zb21lUHJvcCgiY2xpcGJvYXJkVGV4dFBhcnNlciIsYj0+YihlLHIsYSxzKSk7aWYoYylsPWM7ZWxzZXtsZXQgYj1yLm1hcmtzKCkse3NjaGVtYTp2fT1zLnN0YXRlLHg9TGQuZnJvbVNjaGVtYSh2KTtvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3BsaXQoLyg/OlxyXG4/fFxuKSsvKS5mb3JFYWNoKG09PntsZXQgZj1vLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSk7bSYmZi5hcHBlbmRDaGlsZCh4LnNlcmlhbGl6ZU5vZGUodi50ZXh0KG0sYikpKX0pfX1lbHNlIHMuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZEhUTUwiLGM9Pnt0PWModCxzKX0pLG89eEthKHQpLFlaJiZ5S2Eobyk7bGV0IGQ9byYmby5xdWVyeVNlbGVjdG9yKCJbZGF0YS1wbS1zbGljZV0iKSx1PWQmJi9eKFxkKykgKFxkKykoPzogLShcZCspKT8gKC4qKS8uZXhlYyhkLmdldEF0dHJpYnV0ZSgiZGF0YS1wbS1zbGljZSIpfHwiIik7aWYodSYmdVszXSlmb3IobGV0IGM9K3VbM107Yz4wO2MtLSl7bGV0IGI9by5maXJzdENoaWxkO2Zvcig7YiYmYi5ub2RlVHlwZSE9MTspYj1iLm5leHRTaWJsaW5nO2lmKCFiKWJyZWFrO289Yn1pZihsfHwobD0ocy5zb21lUHJvcCgiY2xpcGJvYXJkUGFyc2VyIil8fHMuc29tZVByb3AoImRvbVBhcnNlciIpfHxlMi5mcm9tU2NoZW1hKHMuc3RhdGUuc2NoZW1hKSkucGFyc2VTbGljZShvLHtwcmVzZXJ2ZVdoaXRlc3BhY2U6ISEocHx8dSksY29udGV4dDpyLHJ1bGVGcm9tTm9kZShiKXtyZXR1cm4gYi5ub2RlTmFtZT09IkJSIiYmIWIubmV4dFNpYmxpbmcmJmIucGFyZW50Tm9kZSYmIWdLYS50ZXN0KGIucGFyZW50Tm9kZS5ub2RlTmFtZSk/e2lnbm9yZTohMH06bnVsbH19KSksdSlsPXdLYShTcGEobCwrdVsxXSwrdVsyXSksdVs0XSk7ZWxzZSBpZihsPV90Lm1heE9wZW4oYkthKGwuY29udGVudCxyKSwhMCksbC5vcGVuU3RhcnR8fGwub3BlbkVuZCl7bGV0IGM9MCxiPTA7Zm9yKGxldCB2PWwuY29udGVudC5maXJzdENoaWxkO2M8bC5vcGVuU3RhcnQmJiF2LnR5cGUuc3BlYy5pc29sYXRpbmc7YysrLHY9di5maXJzdENoaWxkKTtmb3IobGV0IHY9bC5jb250ZW50Lmxhc3RDaGlsZDtiPGwub3BlbkVuZCYmIXYudHlwZS5zcGVjLmlzb2xhdGluZztiKyssdj12Lmxhc3RDaGlsZCk7bD1TcGEobCxjLGIpfXJldHVybiBzLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLGM9PntsPWMobCxzLHApfSksbH1mdW5jdGlvbiBiS2EocyxlKXtpZihzLmNoaWxkQ291bnQ8MilyZXR1cm4gcztmb3IobGV0IHQ9ZS5kZXB0aDt0Pj0wO3QtLSl7bGV0IHI9ZS5ub2RlKHQpLmNvbnRlbnRNYXRjaEF0KGUuaW5kZXgodCkpLG4sbz1bXTtpZihzLmZvckVhY2gobD0+e2lmKCFvKXJldHVybjtsZXQgcD1yLmZpbmRXcmFwcGluZyhsLnR5cGUpLGQ7aWYoIXApcmV0dXJuIG89bnVsbDtpZihkPW8ubGVuZ3RoJiZuLmxlbmd0aCYmd3BhKHAsbixsLG9bby5sZW5ndGgtMV0sMCkpb1tvLmxlbmd0aC0xXT1kO2Vsc2V7by5sZW5ndGgmJihvW28ubGVuZ3RoLTFdPWtwYShvW28ubGVuZ3RoLTFdLG4ubGVuZ3RoKSk7bGV0IHU9eXBhKGwscCk7by5wdXNoKHUpLHI9ci5tYXRjaFR5cGUodS50eXBlKSxuPXB9fSksbylyZXR1cm4gcnQuZnJvbShvKX1yZXR1cm4gc31mdW5jdGlvbiB5cGEocyxlLHQ9MCl7Zm9yKGxldCBhPWUubGVuZ3RoLTE7YT49dDthLS0pcz1lW2FdLmNyZWF0ZShudWxsLHJ0LmZyb20ocykpO3JldHVybiBzfWZ1bmN0aW9uIHdwYShzLGUsdCxhLHIpe2lmKHI8cy5sZW5ndGgmJnI8ZS5sZW5ndGgmJnNbcl09PWVbcl0pe2xldCBuPXdwYShzLGUsdCxhLmxhc3RDaGlsZCxyKzEpO2lmKG4pcmV0dXJuIGEuY29weShhLmNvbnRlbnQucmVwbGFjZUNoaWxkKGEuY2hpbGRDb3VudC0xLG4pKTtpZihhLmNvbnRlbnRNYXRjaEF0KGEuY2hpbGRDb3VudCkubWF0Y2hUeXBlKHI9PXMubGVuZ3RoLTE/dC50eXBlOnNbcisxXSkpcmV0dXJuIGEuY29weShhLmNvbnRlbnQuYXBwZW5kKHJ0LmZyb20oeXBhKHQscyxyKzEpKSkpfX1mdW5jdGlvbiBrcGEocyxlKXtpZihlPT0wKXJldHVybiBzO2xldCB0PXMuY29udGVudC5yZXBsYWNlQ2hpbGQocy5jaGlsZENvdW50LTEsa3BhKHMubGFzdENoaWxkLGUtMSkpLGE9cy5jb250ZW50TWF0Y2hBdChzLmNoaWxkQ291bnQpLmZpbGxCZWZvcmUocnQuZW1wdHksITApO3JldHVybiBzLmNvcHkodC5hcHBlbmQoYSkpfWZ1bmN0aW9uIEd0dChzLGUsdCxhLHIsbil7bGV0IG89ZTwwP3MuZmlyc3RDaGlsZDpzLmxhc3RDaGlsZCxsPW8uY29udGVudDtyZXR1cm4gcy5jaGlsZENvdW50PjEmJihuPTApLHI8YS0xJiYobD1HdHQobCxlLHQsYSxyKzEsbikpLHI+PXQmJihsPWU8MD9vLmNvbnRlbnRNYXRjaEF0KDApLmZpbGxCZWZvcmUobCxuPD1yKS5hcHBlbmQobCk6bC5hcHBlbmQoby5jb250ZW50TWF0Y2hBdChvLmNoaWxkQ291bnQpLmZpbGxCZWZvcmUocnQuZW1wdHksITApKSkscy5yZXBsYWNlQ2hpbGQoZTwwPzA6cy5jaGlsZENvdW50LTEsby5jb3B5KGwpKX1mdW5jdGlvbiBTcGEocyxlLHQpe3JldHVybiBlPHMub3BlblN0YXJ0JiYocz1uZXcgX3QoR3R0KHMuY29udGVudCwtMSxlLHMub3BlblN0YXJ0LDAscy5vcGVuRW5kKSxlLHMub3BlbkVuZCkpLHQ8cy5vcGVuRW5kJiYocz1uZXcgX3QoR3R0KHMuY29udGVudCwxLHQscy5vcGVuRW5kLDAsMCkscy5vcGVuU3RhcnQsdCkpLHN9ZnVuY3Rpb24genBhKCl7cmV0dXJuIE1wYXx8KE1wYT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInRpdGxlIikpfWZ1bmN0aW9uIHZLYShzKXtsZXQgZT13aW5kb3cudHJ1c3RlZFR5cGVzO3JldHVybiBlPyhLdHR8fChLdHQ9ZS5kZWZhdWx0UG9saWN5fHxlLmNyZWF0ZVBvbGljeSgiUHJvc2VNaXJyb3JDbGlwYm9hcmQiLHtjcmVhdGVIVE1MOmkodD0+dCwiY3JlYXRlSFRNTCIpfSkpLEt0dC5jcmVhdGVIVE1MKHMpKTpzfWZ1bmN0aW9uIHhLYShzKXtsZXQgZT0vXihccyo8bWV0YSBbXj5dKj4pKi8uZXhlYyhzKTtlJiYocz1zLnNsaWNlKGVbMF0ubGVuZ3RoKSk7bGV0IHQ9enBhKCkuY3JlYXRlRWxlbWVudCgiZGl2IiksYT0vPChbYS16XVtePlxzXSspL2kuZXhlYyhzKSxyO2lmKChyPWEmJl9wYVthWzFdLnRvTG93ZXJDYXNlKCldKSYmKHM9ci5tYXAobj0+IjwiK24rIj4iKS5qb2luKCIiKStzK3IubWFwKG49PiI8LyIrbisiPiIpLnJldmVyc2UoKS5qb2luKCIiKSksdC5pbm5lckhUTUw9dkthKHMpLHIpZm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspdD10LnF1ZXJ5U2VsZWN0b3IocltuXSl8fHQ7cmV0dXJuIHR9ZnVuY3Rpb24geUthKHMpe2xldCBlPXMucXVlcnlTZWxlY3RvckFsbCgkbz8ic3Bhbjpub3QoW2NsYXNzXSk6bm90KFtzdHlsZV0pIjoic3Bhbi5BcHBsZS1jb252ZXJ0ZWQtc3BhY2UiKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IGE9ZVt0XTthLmNoaWxkTm9kZXMubGVuZ3RoPT0xJiZhLnRleHRDb250ZW50PT0iXHhBMCImJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChzLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSxhKX19ZnVuY3Rpb24gd0thKHMsZSl7aWYoIXMuc2l6ZSlyZXR1cm4gcztsZXQgdD1zLmNvbnRlbnQuZmlyc3RDaGlsZC50eXBlLnNjaGVtYSxhO3RyeXthPUpTT04ucGFyc2UoZSl9Y2F0Y2h7cmV0dXJuIHN9bGV0e2NvbnRlbnQ6cixvcGVuU3RhcnQ6bixvcGVuRW5kOm99PXM7Zm9yKGxldCBsPWEubGVuZ3RoLTI7bD49MDtsLT0yKXtsZXQgcD10Lm5vZGVzW2FbbF1dO2lmKCFwfHxwLmhhc1JlcXVpcmVkQXR0cnMoKSlicmVhaztyPXJ0LmZyb20ocC5jcmVhdGUoYVtsKzFdLHIpKSxuKyssbysrfXJldHVybiBuZXcgX3QocixuLG8pfWZ1bmN0aW9uIFNLYShzKXtmb3IobGV0IGUgaW4gJG4pe2xldCB0PSRuW2VdO3MuZG9tLmFkZEV2ZW50TGlzdGVuZXIoZSxzLmlucHV0LmV2ZW50SGFuZGxlcnNbZV09YT0+e01LYShzLGEpJiYhWHR0KHMsYSkmJihzLmVkaXRhYmxlfHwhKGEudHlwZSBpbiBEbikpJiZ0KHMsYSl9LGtLYVtlXT97cGFzc2l2ZTohMH06dm9pZCAwKX1sbiYmcy5kb20uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT5udWxsKSxadHQocyl9ZnVuY3Rpb24gRWgocyxlKXtzLmlucHV0Lmxhc3RTZWxlY3Rpb25PcmlnaW49ZSxzLmlucHV0Lmxhc3RTZWxlY3Rpb25UaW1lPURhdGUubm93KCl9ZnVuY3Rpb24gX0thKHMpe3MuZG9tT2JzZXJ2ZXIuc3RvcCgpO2ZvcihsZXQgZSBpbiBzLmlucHV0LmV2ZW50SGFuZGxlcnMpcy5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHMuaW5wdXQuZXZlbnRIYW5kbGVyc1tlXSk7Y2xlYXJUaW1lb3V0KHMuaW5wdXQuY29tcG9zaW5nVGltZW91dCksY2xlYXJUaW1lb3V0KHMuaW5wdXQubGFzdElPU0VudGVyRmFsbGJhY2tUaW1lb3V0KX1mdW5jdGlvbiBadHQocyl7cy5zb21lUHJvcCgiaGFuZGxlRE9NRXZlbnRzIixlPT57Zm9yKGxldCB0IGluIGUpcy5pbnB1dC5ldmVudEhhbmRsZXJzW3RdfHxzLmRvbS5hZGRFdmVudExpc3RlbmVyKHQscy5pbnB1dC5ldmVudEhhbmRsZXJzW3RdPWE9Plh0dChzLGEpKX0pfWZ1bmN0aW9uIFh0dChzLGUpe3JldHVybiBzLnNvbWVQcm9wKCJoYW5kbGVET01FdmVudHMiLHQ9PntsZXQgYT10W2UudHlwZV07cmV0dXJuIGE/YShzLGUpfHxlLmRlZmF1bHRQcmV2ZW50ZWQ6ITF9KX1mdW5jdGlvbiBNS2EocyxlKXtpZighZS5idWJibGVzKXJldHVybiEwO2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm4hMTtmb3IobGV0IHQ9ZS50YXJnZXQ7dCE9cy5kb207dD10LnBhcmVudE5vZGUpaWYoIXR8fHQubm9kZVR5cGU9PTExfHx0LnBtVmlld0Rlc2MmJnQucG1WaWV3RGVzYy5zdG9wRXZlbnQoZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gekthKHMsZSl7IVh0dChzLGUpJiYkbltlLnR5cGVdJiYocy5lZGl0YWJsZXx8IShlLnR5cGUgaW4gRG4pKSYmJG5bZS50eXBlXShzLGUpfWZ1bmN0aW9uIFFuZShzKXtyZXR1cm57bGVmdDpzLmNsaWVudFgsdG9wOnMuY2xpZW50WX19ZnVuY3Rpb24gQ0thKHMsZSl7bGV0IHQ9ZS54LXMuY2xpZW50WCxhPWUueS1zLmNsaWVudFk7cmV0dXJuIHQqdCthKmE8MTAwfWZ1bmN0aW9uIFF0dChzLGUsdCxhLHIpe2lmKGE9PS0xKXJldHVybiExO2xldCBuPXMuc3RhdGUuZG9jLnJlc29sdmUoYSk7Zm9yKGxldCBvPW4uZGVwdGgrMTtvPjA7by0tKWlmKHMuc29tZVByb3AoZSxsPT5vPm4uZGVwdGg/bChzLHQsbi5ub2RlQWZ0ZXIsbi5iZWZvcmUobyksciwhMCk6bChzLHQsbi5ub2RlKG8pLG4uYmVmb3JlKG8pLHIsITEpKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBMdihzLGUsdCl7aWYocy5mb2N1c2VkfHxzLmZvY3VzKCkscy5zdGF0ZS5zZWxlY3Rpb24uZXEoZSkpcmV0dXJuO2xldCBhPXMuc3RhdGUudHIuc2V0U2VsZWN0aW9uKGUpO3Q9PSJwb2ludGVyIiYmYS5zZXRNZXRhKCJwb2ludGVyIiwhMCkscy5kaXNwYXRjaChhKX1mdW5jdGlvbiBUS2EocyxlKXtpZihlPT0tMSlyZXR1cm4hMTtsZXQgdD1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpLGE9dC5ub2RlQWZ0ZXI7cmV0dXJuIGEmJmEuaXNBdG9tJiZGdC5pc1NlbGVjdGFibGUoYSk/KEx2KHMsbmV3IEZ0KHQpLCJwb2ludGVyIiksITApOiExfWZ1bmN0aW9uICRLYShzLGUpe2lmKGU9PS0xKXJldHVybiExO2xldCB0PXMuc3RhdGUuc2VsZWN0aW9uLGEscjt0IGluc3RhbmNlb2YgRnQmJihhPXQubm9kZSk7bGV0IG49cy5zdGF0ZS5kb2MucmVzb2x2ZShlKTtmb3IobGV0IG89bi5kZXB0aCsxO28+MDtvLS0pe2xldCBsPW8+bi5kZXB0aD9uLm5vZGVBZnRlcjpuLm5vZGUobyk7aWYoRnQuaXNTZWxlY3RhYmxlKGwpKXthJiZ0LiRmcm9tLmRlcHRoPjAmJm8+PXQuJGZyb20uZGVwdGgmJm4uYmVmb3JlKHQuJGZyb20uZGVwdGgrMSk9PXQuJGZyb20ucG9zP3I9bi5iZWZvcmUodC4kZnJvbS5kZXB0aCk6cj1uLmJlZm9yZShvKTticmVha319cmV0dXJuIHIhPW51bGw/KEx2KHMsRnQuY3JlYXRlKHMuc3RhdGUuZG9jLHIpLCJwb2ludGVyIiksITApOiExfWZ1bmN0aW9uIERLYShzLGUsdCxhLHIpe3JldHVybiBRdHQocywiaGFuZGxlQ2xpY2tPbiIsZSx0LGEpfHxzLnNvbWVQcm9wKCJoYW5kbGVDbGljayIsbj0+bihzLGUsYSkpfHwocj8kS2Eocyx0KTpUS2Eocyx0KSl9ZnVuY3Rpb24gTEthKHMsZSx0LGEpe3JldHVybiBRdHQocywiaGFuZGxlRG91YmxlQ2xpY2tPbiIsZSx0LGEpfHxzLnNvbWVQcm9wKCJoYW5kbGVEb3VibGVDbGljayIscj0+cihzLGUsYSkpfWZ1bmN0aW9uIEVLYShzLGUsdCxhKXtyZXR1cm4gUXR0KHMsImhhbmRsZVRyaXBsZUNsaWNrT24iLGUsdCxhKXx8cy5zb21lUHJvcCgiaGFuZGxlVHJpcGxlQ2xpY2siLHI9PnIocyxlLGEpKXx8UEthKHMsdCxhKX1mdW5jdGlvbiBQS2EocyxlLHQpe2lmKHQuYnV0dG9uIT0wKXJldHVybiExO2xldCBhPXMuc3RhdGUuZG9jO2lmKGU9PS0xKXJldHVybiBhLmlubGluZUNvbnRlbnQ/KEx2KHMsSnQuY3JlYXRlKGEsMCxhLmNvbnRlbnQuc2l6ZSksInBvaW50ZXIiKSwhMCk6ITE7bGV0IHI9YS5yZXNvbHZlKGUpO2ZvcihsZXQgbj1yLmRlcHRoKzE7bj4wO24tLSl7bGV0IG89bj5yLmRlcHRoP3Iubm9kZUFmdGVyOnIubm9kZShuKSxsPXIuYmVmb3JlKG4pO2lmKG8uaW5saW5lQ29udGVudClMdihzLEp0LmNyZWF0ZShhLGwrMSxsKzErby5jb250ZW50LnNpemUpLCJwb2ludGVyIik7ZWxzZSBpZihGdC5pc1NlbGVjdGFibGUobykpTHYocyxGdC5jcmVhdGUoYSxsKSwicG9pbnRlciIpO2Vsc2UgY29udGludWU7cmV0dXJuITB9fWZ1bmN0aW9uIEp0dChzKXtyZXR1cm4gSloocyl9ZnVuY3Rpb24gVHBhKHMsZSl7cmV0dXJuIHMuY29tcG9zaW5nPyEwOmxuJiZNYXRoLmFicyhlLnRpbWVTdGFtcC1zLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdCk8NTAwPyhzLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LCEwKTohMX1mdW5jdGlvbiBBS2Eocyl7bGV0e2ZvY3VzTm9kZTplLGZvY3VzT2Zmc2V0OnR9PXMuZG9tU2VsZWN0aW9uUmFuZ2UoKTtpZighZXx8ZS5ub2RlVHlwZSE9MXx8dD49ZS5jaGlsZE5vZGVzLmxlbmd0aClyZXR1cm4hMTtsZXQgYT1lLmNoaWxkTm9kZXNbdF07cmV0dXJuIGEubm9kZVR5cGU9PTEmJmEuY29udGVudEVkaXRhYmxlPT0iZmFsc2UifWZ1bmN0aW9uICRwYShzLGUpe2NsZWFyVGltZW91dChzLmlucHV0LmNvbXBvc2luZ1RpbWVvdXQpLGU+LTEmJihzLmlucHV0LmNvbXBvc2luZ1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+SloocyksZSkpfWZ1bmN0aW9uIERwYShzKXtmb3Iocy5jb21wb3NpbmcmJihzLmlucHV0LmNvbXBvc2luZz0hMSxzLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD1SS2EoKSk7cy5pbnB1dC5jb21wb3NpdGlvbk5vZGVzLmxlbmd0aD4wOylzLmlucHV0LmNvbXBvc2l0aW9uTm9kZXMucG9wKCkubWFya1BhcmVudHNEaXJ0eSgpfWZ1bmN0aW9uIE5LYShzKXtsZXQgZT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCB0PVBHYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KSxhPUlHYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KTtpZih0JiZhJiZ0IT1hKXtsZXQgcj1hLnBtVmlld0Rlc2Msbj1zLmRvbU9ic2VydmVyLmxhc3RDaGFuZ2VkVGV4dE5vZGU7aWYodD09bnx8YT09bilyZXR1cm4gbjtpZighcnx8IXIuaXNUZXh0KGEubm9kZVZhbHVlKSlyZXR1cm4gYTtpZihzLmlucHV0LmNvbXBvc2l0aW9uTm9kZT09YSl7bGV0IG89dC5wbVZpZXdEZXNjO2lmKCEoIW98fCFvLmlzVGV4dCh0Lm5vZGVWYWx1ZSkpKXJldHVybiBhfX1yZXR1cm4gdHx8YX1mdW5jdGlvbiBSS2EoKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gcy5pbml0RXZlbnQoImV2ZW50IiwhMCwhMCkscy50aW1lU3RhbXB9ZnVuY3Rpb24gSloocyxlPSExKXtpZighKG51JiZzLmRvbU9ic2VydmVyLmZsdXNoaW5nU29vbj49MCkpe2lmKHMuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLERwYShzKSxlfHxzLmRvY1ZpZXcmJnMuZG9jVmlldy5kaXJ0eSl7bGV0IHQ9QnR0KHMpLGE9cy5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIHQmJiF0LmVxKGEpP3MuZGlzcGF0Y2gocy5zdGF0ZS50ci5zZXRTZWxlY3Rpb24odCkpOihzLm1hcmtDdXJzb3J8fGUpJiYhYS4kZnJvbS5ub2RlKGEuJGZyb20uc2hhcmVkRGVwdGgoYS50bykpLmlubGluZUNvbnRlbnQ/cy5kaXNwYXRjaChzLnN0YXRlLnRyLmRlbGV0ZVNlbGVjdGlvbigpKTpzLnVwZGF0ZVN0YXRlKHMuc3RhdGUpLCEwfXJldHVybiExfX1mdW5jdGlvbiBPS2EocyxlKXtpZighcy5kb20ucGFyZW50Tm9kZSlyZXR1cm47bGV0IHQ9cy5kb20ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7dC5hcHBlbmRDaGlsZChlKSx0LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogLTEwMDAwcHg7IHRvcDogMTBweCI7bGV0IGE9Z2V0U2VsZWN0aW9uKCkscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpLHMuZG9tLmJsdXIoKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2Uociksc2V0VGltZW91dCgoKT0+e3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHMuZm9jdXMoKX0sNTApfWZ1bmN0aW9uIEZLYShzKXtyZXR1cm4gcy5vcGVuU3RhcnQ9PTAmJnMub3BlbkVuZD09MCYmcy5jb250ZW50LmNoaWxkQ291bnQ9PTE/cy5jb250ZW50LmZpcnN0Q2hpbGQ6bnVsbH1mdW5jdGlvbiBCS2EocyxlKXtpZighcy5kb20ucGFyZW50Tm9kZSlyZXR1cm47bGV0IHQ9cy5pbnB1dC5zaGlmdEtleXx8cy5zdGF0ZS5zZWxlY3Rpb24uJGZyb20ucGFyZW50LnR5cGUuc3BlYy5jb2RlLGE9cy5kb20ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KHQ/InRleHRhcmVhIjoiZGl2IikpO3R8fChhLmNvbnRlbnRFZGl0YWJsZT0idHJ1ZSIpLGEuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGZpeGVkOyBsZWZ0OiAtMTAwMDBweDsgdG9wOiAxMHB4IixhLmZvY3VzKCk7bGV0IHI9cy5pbnB1dC5zaGlmdEtleSYmcy5pbnB1dC5sYXN0S2V5Q29kZSE9NDU7c2V0VGltZW91dCgoKT0+e3MuZm9jdXMoKSxhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKSx0P3RYKHMsYS52YWx1ZSxudWxsLHIsZSk6dFgocyxhLnRleHRDb250ZW50LGEuaW5uZXJIVE1MLHIsZSl9LDUwKX1mdW5jdGlvbiB0WChzLGUsdCxhLHIpe2xldCBuPVd0dChzLGUsdCxhLHMuc3RhdGUuc2VsZWN0aW9uLiRmcm9tKTtpZihzLnNvbWVQcm9wKCJoYW5kbGVQYXN0ZSIscD0+cChzLHIsbnx8X3QuZW1wdHkpKSlyZXR1cm4hMDtpZighbilyZXR1cm4hMTtsZXQgbz1GS2EobiksbD1vP3Muc3RhdGUudHIucmVwbGFjZVNlbGVjdGlvbldpdGgobyxhKTpzLnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb24obik7cmV0dXJuIHMuZGlzcGF0Y2gobC5zY3JvbGxJbnRvVmlldygpLnNldE1ldGEoInBhc3RlIiwhMCkuc2V0TWV0YSgidWlFdmVudCIsInBhc3RlIikpLCEwfWZ1bmN0aW9uIExwYShzKXtsZXQgZT1zLmdldERhdGEoInRleHQvcGxhaW4iKXx8cy5nZXREYXRhKCJUZXh0Iik7aWYoZSlyZXR1cm4gZTtsZXQgdD1zLmdldERhdGEoInRleHQvdXJpLWxpc3QiKTtyZXR1cm4gdD90LnJlcGxhY2UoL1xyP1xuL2csIiAiKToiIn1mdW5jdGlvbiBFcGEocyxlKXtsZXQgdDtyZXR1cm4gcy5zb21lUHJvcCgiZHJhZ0NvcGllcyIsYT0+e3Q9dHx8YShlKX0pLHQhPW51bGw/IXQ6IWVbSEthXX1mdW5jdGlvbiBxS2EocyxlLHQpe2lmKCFlLmRhdGFUcmFuc2ZlcilyZXR1cm47bGV0IGE9cy5wb3NBdENvb3JkcyhRbmUoZSkpO2lmKCFhKXJldHVybjtsZXQgcj1zLnN0YXRlLmRvYy5yZXNvbHZlKGEucG9zKSxuPXQmJnQuc2xpY2U7bj9zLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLHY9PntuPXYobixzLCExKX0pOm49V3R0KHMsTHBhKGUuZGF0YVRyYW5zZmVyKSxlWD9udWxsOmUuZGF0YVRyYW5zZmVyLmdldERhdGEoInRleHQvaHRtbCIpLCExLHIpO2xldCBvPSEhKHQmJkVwYShzLGUpKTtpZihzLnNvbWVQcm9wKCJoYW5kbGVEcm9wIix2PT52KHMsZSxufHxfdC5lbXB0eSxvKSkpe2UucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIW4pcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtsZXQgbD1uP1ZaKHMuc3RhdGUuZG9jLHIucG9zLG4pOnIucG9zO2w9PW51bGwmJihsPXIucG9zKTtsZXQgcD1zLnN0YXRlLnRyO2lmKG8pe2xldHtub2RlOnZ9PXQ7dj92LnJlcGxhY2UocCk6cC5kZWxldGVTZWxlY3Rpb24oKX1sZXQgZD1wLm1hcHBpbmcubWFwKGwpLHU9bi5vcGVuU3RhcnQ9PTAmJm4ub3BlbkVuZD09MCYmbi5jb250ZW50LmNoaWxkQ291bnQ9PTEsYz1wLmRvYztpZih1P3AucmVwbGFjZVJhbmdlV2l0aChkLGQsbi5jb250ZW50LmZpcnN0Q2hpbGQpOnAucmVwbGFjZVJhbmdlKGQsZCxuKSxwLmRvYy5lcShjKSlyZXR1cm47bGV0IGI9cC5kb2MucmVzb2x2ZShkKTtpZih1JiZGdC5pc1NlbGVjdGFibGUobi5jb250ZW50LmZpcnN0Q2hpbGQpJiZiLm5vZGVBZnRlciYmYi5ub2RlQWZ0ZXIuc2FtZU1hcmt1cChuLmNvbnRlbnQuZmlyc3RDaGlsZCkpcC5zZXRTZWxlY3Rpb24obmV3IEZ0KGIpKTtlbHNle2xldCB2PXAubWFwcGluZy5tYXAobCk7cC5tYXBwaW5nLm1hcHNbcC5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLmZvckVhY2goKHgsbSxmLHkpPT52PXkpLHAuc2V0U2VsZWN0aW9uKHF0dChzLGIscC5kb2MucmVzb2x2ZSh2KSkpfXMuZm9jdXMoKSxzLmRpc3BhdGNoKHAuc2V0TWV0YSgidWlFdmVudCIsImRyb3AiKSl9ZnVuY3Rpb24gYVgocyxlKXtpZihzPT1lKXJldHVybiEwO2ZvcihsZXQgdCBpbiBzKWlmKHNbdF0hPT1lW3RdKXJldHVybiExO2ZvcihsZXQgdCBpbiBlKWlmKCEodCBpbiBzKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBqS2EocyxlLHQsYSxyLG4sbyl7bGV0IGw9cy5zbGljZSgpO2ZvcihsZXQgZD0wLHU9bjtkPHQubWFwcy5sZW5ndGg7ZCsrKXtsZXQgYz0wO3QubWFwc1tkXS5mb3JFYWNoKChiLHYseCxtKT0+e2xldCBmPW0teC0odi1iKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krPTMpe2xldCBNPWxbeSsxXTtpZihNPDB8fGI+TSt1LWMpY29udGludWU7bGV0IHo9bFt5XSt1LWM7dj49ej9sW3krMV09Yjw9ej8tMjotMTpiPj11JiZmJiYobFt5XSs9ZixsW3krMV0rPWYpfWMrPWZ9KSx1PXQubWFwc1tkXS5tYXAodSwtMSl9bGV0IHA9ITE7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKz0zKWlmKGxbZCsxXTwwKXtpZihsW2QrMV09PS0yKXtwPSEwLGxbZCsxXT0tMTtjb250aW51ZX1sZXQgdT10Lm1hcChzW2RdK24pLGM9dS1yO2lmKGM8MHx8Yz49YS5jb250ZW50LnNpemUpe3A9ITA7Y29udGludWV9bGV0IGI9dC5tYXAoc1tkKzFdK24sLTEpLHY9Yi1yLHtpbmRleDp4LG9mZnNldDptfT1hLmNvbnRlbnQuZmluZEluZGV4KGMpLGY9YS5tYXliZUNoaWxkKHgpO2lmKGYmJm09PWMmJm0rZi5ub2RlU2l6ZT09dil7bGV0IHk9bFtkKzJdLm1hcElubmVyKHQsZix1KzEsc1tkXStuKzEsbyk7eSE9Y24/KGxbZF09YyxsW2QrMV09dixsW2QrMl09eSk6KGxbZCsxXT0tMixwPSEwKX1lbHNlIHA9ITB9aWYocCl7bGV0IGQ9VkthKGwscyxlLHQscixuLG8pLHU9YWxlKGQsYSwwLG8pO2U9dS5sb2NhbDtmb3IobGV0IGM9MDtjPGwubGVuZ3RoO2MrPTMpbFtjKzFdPDAmJihsLnNwbGljZShjLDMpLGMtPTMpO2ZvcihsZXQgYz0wLGI9MDtjPHUuY2hpbGRyZW4ubGVuZ3RoO2MrPTMpe2xldCB2PXUuY2hpbGRyZW5bY107Zm9yKDtiPGwubGVuZ3RoJiZsW2JdPHY7KWIrPTM7bC5zcGxpY2UoYiwwLHUuY2hpbGRyZW5bY10sdS5jaGlsZHJlbltjKzFdLHUuY2hpbGRyZW5bYysyXSl9fXJldHVybiBuZXcgTG4oZS5zb3J0KHJnKSxsKX1mdW5jdGlvbiBQcGEocyxlKXtpZighZXx8IXMubGVuZ3RoKXJldHVybiBzO2xldCB0PVtdO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSsrKXtsZXQgcj1zW2FdO3QucHVzaChuZXcgdDIoci5mcm9tK2Usci50bytlLHIudHlwZSkpfXJldHVybiB0fWZ1bmN0aW9uIFZLYShzLGUsdCxhLHIsbixvKXtmdW5jdGlvbiBsKHAsZCl7Zm9yKGxldCB1PTA7dTxwLmxvY2FsLmxlbmd0aDt1Kyspe2xldCBjPXAubG9jYWxbdV0ubWFwKGEscixkKTtjP3QucHVzaChjKTpvLm9uUmVtb3ZlJiZvLm9uUmVtb3ZlKHAubG9jYWxbdV0uc3BlYyl9Zm9yKGxldCB1PTA7dTxwLmNoaWxkcmVuLmxlbmd0aDt1Kz0zKWwocC5jaGlsZHJlblt1KzJdLHAuY2hpbGRyZW5bdV0rZCsxKX1pKGwsImdhdGhlciIpO2ZvcihsZXQgcD0wO3A8cy5sZW5ndGg7cCs9MylzW3ArMV09PS0xJiZsKHNbcCsyXSxlW3BdK24rMSk7cmV0dXJuIHR9ZnVuY3Rpb24gSXBhKHMsZSx0KXtpZihlLmlzTGVhZilyZXR1cm4gbnVsbDtsZXQgYT10K2Uubm9kZVNpemUscj1udWxsO2ZvcihsZXQgbj0wLG87bjxzLmxlbmd0aDtuKyspKG89c1tuXSkmJm8uZnJvbT50JiZvLnRvPGEmJigocnx8KHI9W10pKS5wdXNoKG8pLHNbbl09bnVsbCk7cmV0dXJuIHJ9ZnVuY3Rpb24gQXBhKHMpe2xldCBlPVtdO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKXNbdF0hPW51bGwmJmUucHVzaChzW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiBhbGUocyxlLHQsYSl7bGV0IHI9W10sbj0hMTtlLmZvckVhY2goKGwscCk9PntsZXQgZD1JcGEocyxsLHArdCk7aWYoZCl7bj0hMDtsZXQgdT1hbGUoZCxsLHQrcCsxLGEpO3UhPWNuJiZyLnB1c2gocCxwK2wubm9kZVNpemUsdSl9fSk7bGV0IG89UHBhKG4/QXBhKHMpOnMsLXQpLnNvcnQocmcpO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKW9bbF0udHlwZS52YWxpZChlLG9bbF0pfHwoYS5vblJlbW92ZSYmYS5vblJlbW92ZShvW2xdLnNwZWMpLG8uc3BsaWNlKGwtLSwxKSk7cmV0dXJuIG8ubGVuZ3RofHxyLmxlbmd0aD9uZXcgTG4obyxyKTpjbn1mdW5jdGlvbiByZyhzLGUpe3JldHVybiBzLmZyb20tZS5mcm9tfHxzLnRvLWUudG99ZnVuY3Rpb24gYWF0KHMpe2xldCBlPXM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aC0xO3QrKyl7bGV0IGE9ZVt0XTtpZihhLmZyb20hPWEudG8pZm9yKGxldCByPXQrMTtyPGUubGVuZ3RoO3IrKyl7bGV0IG49ZVtyXTtpZihuLmZyb209PWEuZnJvbSl7bi50byE9YS50byYmKGU9PXMmJihlPXMuc2xpY2UoKSksZVtyXT1uLmNvcHkobi5mcm9tLGEudG8pLE5wYShlLHIrMSxuLmNvcHkoYS50byxuLnRvKSkpO2NvbnRpbnVlfWVsc2V7bi5mcm9tPGEudG8mJihlPT1zJiYoZT1zLnNsaWNlKCkpLGVbdF09YS5jb3B5KGEuZnJvbSxuLmZyb20pLE5wYShlLHIsYS5jb3B5KG4uZnJvbSxhLnRvKSkpO2JyZWFrfX19cmV0dXJuIGV9ZnVuY3Rpb24gTnBhKHMsZSx0KXtmb3IoO2U8cy5sZW5ndGgmJnJnKHQsc1tlXSk+MDspZSsrO3Muc3BsaWNlKGUsMCx0KX1mdW5jdGlvbiBzYXQocyl7bGV0IGU9W107cmV0dXJuIHMuc29tZVByb3AoImRlY29yYXRpb25zIix0PT57bGV0IGE9dChzLnN0YXRlKTthJiZhIT1jbiYmZS5wdXNoKGEpfSkscy5jdXJzb3JXcmFwcGVyJiZlLnB1c2goTG4uY3JlYXRlKHMuc3RhdGUuZG9jLFtzLmN1cnNvcldyYXBwZXIuZGVjb10pKSx0bGUuZnJvbShlKX1mdW5jdGlvbiBHS2Eocyl7aWYoIVJwYS5oYXMocykmJihScGEuc2V0KHMsbnVsbCksWyJub3JtYWwiLCJub3dyYXAiLCJwcmUtbGluZSJdLmluZGV4T2YoZ2V0Q29tcHV0ZWRTdHlsZShzLmRvbSkud2hpdGVTcGFjZSkhPT0tMSkpe2lmKHMucmVxdWlyZXNHZWNrb0hhY2tOb2RlPUZjLE9wYSlyZXR1cm47Y29uc29sZS53YXJuKCJQcm9zZU1pcnJvciBleHBlY3RzIHRoZSBDU1Mgd2hpdGUtc3BhY2UgcHJvcGVydHkgdG8gYmUgc2V0LCBwcmVmZXJhYmx5IHRvICdwcmUtd3JhcCcuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGxvYWQgc3R5bGUvcHJvc2VtaXJyb3IuY3NzIGZyb20gdGhlIHByb3NlbWlycm9yLXZpZXcgcGFja2FnZS4iKSxPcGE9ITB9fWZ1bmN0aW9uIEZwYShzLGUpe2xldCB0PWUuc3RhcnRDb250YWluZXIsYT1lLnN0YXJ0T2Zmc2V0LHI9ZS5lbmRDb250YWluZXIsbj1lLmVuZE9mZnNldCxvPXMuZG9tQXRQb3Mocy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yKTtyZXR1cm4gUTgoby5ub2RlLG8ub2Zmc2V0LHIsbikmJihbdCxhLHIsbl09W3Isbix0LGFdKSx7YW5jaG9yTm9kZTp0LGFuY2hvck9mZnNldDphLGZvY3VzTm9kZTpyLGZvY3VzT2Zmc2V0Om59fWZ1bmN0aW9uIEtLYShzLGUpe2lmKGUuZ2V0Q29tcG9zZWRSYW5nZXMpe2xldCByPWUuZ2V0Q29tcG9zZWRSYW5nZXMocy5yb290KVswXTtpZihyKXJldHVybiBGcGEocyxyKX1sZXQgdDtmdW5jdGlvbiBhKHIpe3IucHJldmVudERlZmF1bHQoKSxyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHQ9ci5nZXRUYXJnZXRSYW5nZXMoKVswXX1yZXR1cm4gaShhLCJyZWFkIikscy5kb20uYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlaW5wdXQiLGEsITApLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbmRlbnQiKSxzLmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmVpbnB1dCIsYSwhMCksdD9GcGEocyx0KTpudWxsfWZ1bmN0aW9uIFlLYShzLGUpe2ZvcihsZXQgdD1lLnBhcmVudE5vZGU7dCYmdCE9cy5kb207dD10LnBhcmVudE5vZGUpe2xldCBhPXMuZG9jVmlldy5uZWFyZXN0RGVzYyh0LCEwKTtpZihhJiZhLm5vZGUuaXNCbG9jaylyZXR1cm4gdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBaS2EocyxlKXt2YXIgdDtsZXR7Zm9jdXNOb2RlOmEsZm9jdXNPZmZzZXQ6cn09cy5kb21TZWxlY3Rpb25SYW5nZSgpO2ZvcihsZXQgbiBvZiBlKWlmKCgodD1uLnBhcmVudE5vZGUpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5ub2RlTmFtZSk9PSJUUiIpe2xldCBvPW4ubmV4dFNpYmxpbmc7Zm9yKDtvJiZvLm5vZGVOYW1lIT0iVEQiJiZvLm5vZGVOYW1lIT0iVEgiOylvPW8ubmV4dFNpYmxpbmc7aWYobyl7bGV0IGw9bztmb3IoOzspe2xldCBwPWwuZmlyc3RDaGlsZDtpZighcHx8cC5ub2RlVHlwZSE9MXx8cC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSJ8fC9eKEJSfElNRykkLy50ZXN0KHAubm9kZU5hbWUpKWJyZWFrO2w9cH1sLmluc2VydEJlZm9yZShuLGwuZmlyc3RDaGlsZCksYT09biYmcy5kb21TZWxlY3Rpb24oKS5jb2xsYXBzZShuLHIpfWVsc2Ugbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pfX1mdW5jdGlvbiBYS2EocyxlLHQpe2xldHtub2RlOmEsZnJvbU9mZnNldDpyLHRvT2Zmc2V0Om4sZnJvbTpvLHRvOmx9PXMuZG9jVmlldy5wYXJzZVJhbmdlKGUsdCkscD1zLmRvbVNlbGVjdGlvblJhbmdlKCksZCx1PXAuYW5jaG9yTm9kZTtpZih1JiZzLmRvbS5jb250YWlucyh1Lm5vZGVUeXBlPT0xP3U6dS5wYXJlbnROb2RlKSYmKGQ9W3tub2RlOnUsb2Zmc2V0OnAuYW5jaG9yT2Zmc2V0fV0sV25lKHApfHxkLnB1c2goe25vZGU6cC5mb2N1c05vZGUsb2Zmc2V0OnAuZm9jdXNPZmZzZXR9KSksJG8mJnMuaW5wdXQubGFzdEtleUNvZGU9PT04KWZvcihsZXQgZj1uO2Y+cjtmLS0pe2xldCB5PWEuY2hpbGROb2Rlc1tmLTFdLE09eS5wbVZpZXdEZXNjO2lmKHkubm9kZU5hbWU9PSJCUiImJiFNKXtuPWY7YnJlYWt9aWYoIU18fE0uc2l6ZSlicmVha31sZXQgYz1zLnN0YXRlLmRvYyxiPXMuc29tZVByb3AoImRvbVBhcnNlciIpfHxlMi5mcm9tU2NoZW1hKHMuc3RhdGUuc2NoZW1hKSx2PWMucmVzb2x2ZShvKSx4PW51bGwsbT1iLnBhcnNlKGEse3RvcE5vZGU6di5wYXJlbnQsdG9wTWF0Y2g6di5wYXJlbnQuY29udGVudE1hdGNoQXQodi5pbmRleCgpKSx0b3BPcGVuOiEwLGZyb206cix0bzpuLHByZXNlcnZlV2hpdGVzcGFjZTp2LnBhcmVudC50eXBlLndoaXRlc3BhY2U9PSJwcmUiPyJmdWxsIjohMCxmaW5kUG9zaXRpb25zOmQscnVsZUZyb21Ob2RlOlFLYSxjb250ZXh0OnZ9KTtpZihkJiZkWzBdLnBvcyE9bnVsbCl7bGV0IGY9ZFswXS5wb3MseT1kWzFdJiZkWzFdLnBvczt5PT1udWxsJiYoeT1mKSx4PXthbmNob3I6ZitvLGhlYWQ6eStvfX1yZXR1cm57ZG9jOm0sc2VsOngsZnJvbTpvLHRvOmx9fWZ1bmN0aW9uIFFLYShzKXtsZXQgZT1zLnBtVmlld0Rlc2M7aWYoZSlyZXR1cm4gZS5wYXJzZVJ1bGUoKTtpZihzLm5vZGVOYW1lPT0iQlIiJiZzLnBhcmVudE5vZGUpe2lmKGxuJiYvXih1bHxvbCkkL2kudGVzdChzLnBhcmVudE5vZGUubm9kZU5hbWUpKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpKSx7c2tpcDp0fX1lbHNlIGlmKHMucGFyZW50Tm9kZS5sYXN0Q2hpbGQ9PXN8fGxuJiYvXih0cnx0YWJsZSkkL2kudGVzdChzLnBhcmVudE5vZGUubm9kZU5hbWUpKXJldHVybntpZ25vcmU6ITB9fWVsc2UgaWYocy5ub2RlTmFtZT09IklNRyImJnMuZ2V0QXR0cmlidXRlKCJtYXJrLXBsYWNlaG9sZGVyIikpcmV0dXJue2lnbm9yZTohMH07cmV0dXJuIG51bGx9ZnVuY3Rpb24gZVlhKHMsZSx0LGEscil7bGV0IG49cy5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzfHwocy5jb21wb3Npbmc/cy5pbnB1dC5jb21wb3NpdGlvbklEOjApO2lmKHMuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlcz0wLGU8MCl7bGV0IE89cy5pbnB1dC5sYXN0U2VsZWN0aW9uVGltZT5EYXRlLm5vdygpLTUwP3MuaW5wdXQubGFzdFNlbGVjdGlvbk9yaWdpbjpudWxsLCQ9QnR0KHMsTyk7aWYoJCYmIXMuc3RhdGUuc2VsZWN0aW9uLmVxKCQpKXtpZigkbyYmbnUmJnMuaW5wdXQubGFzdEtleUNvZGU9PT0xMyYmRGF0ZS5ub3coKS0xMDA8cy5pbnB1dC5sYXN0S2V5Q29kZVRpbWUmJnMuc29tZVByb3AoImhhbmRsZUtleURvd24iLEg9PkgocyxKOCgxMywiRW50ZXIiKSkpKXJldHVybjtsZXQgRT1zLnN0YXRlLnRyLnNldFNlbGVjdGlvbigkKTtPPT0icG9pbnRlciI/RS5zZXRNZXRhKCJwb2ludGVyIiwhMCk6Tz09ImtleSImJkUuc2Nyb2xsSW50b1ZpZXcoKSxuJiZFLnNldE1ldGEoImNvbXBvc2l0aW9uIixuKSxzLmRpc3BhdGNoKEUpfXJldHVybn1sZXQgbz1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpLGw9by5zaGFyZWREZXB0aCh0KTtlPW8uYmVmb3JlKGwrMSksdD1zLnN0YXRlLmRvYy5yZXNvbHZlKHQpLmFmdGVyKGwrMSk7bGV0IHA9cy5zdGF0ZS5zZWxlY3Rpb24sZD1YS2EocyxlLHQpLHU9cy5zdGF0ZS5kb2MsYz11LnNsaWNlKGQuZnJvbSxkLnRvKSxiLHY7cy5pbnB1dC5sYXN0S2V5Q29kZT09PTgmJkRhdGUubm93KCktMTAwPHMuaW5wdXQubGFzdEtleUNvZGVUaW1lPyhiPXMuc3RhdGUuc2VsZWN0aW9uLnRvLHY9ImVuZCIpOihiPXMuc3RhdGUuc2VsZWN0aW9uLmZyb20sdj0ic3RhcnQiKSxzLmlucHV0Lmxhc3RLZXlDb2RlPW51bGw7bGV0IHg9c1lhKGMuY29udGVudCxkLmRvYy5jb250ZW50LGQuZnJvbSxiLHYpO2lmKHgmJnMuaW5wdXQuZG9tQ2hhbmdlQ291bnQrKywoQ3YmJnMuaW5wdXQubGFzdElPU0VudGVyPkRhdGUubm93KCktMjI1fHxudSkmJnIuc29tZShPPT5PLm5vZGVUeXBlPT0xJiYhSkthLnRlc3QoTy5ub2RlTmFtZSkpJiYoIXh8fHguZW5kQT49eC5lbmRCKSYmcy5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsTz0+TyhzLEo4KDEzLCJFbnRlciIpKSkpe3MuaW5wdXQubGFzdElPU0VudGVyPTA7cmV0dXJufWlmKCF4KWlmKGEmJnAgaW5zdGFuY2VvZiBKdCYmIXAuZW1wdHkmJnAuJGhlYWQuc2FtZVBhcmVudChwLiRhbmNob3IpJiYhcy5jb21wb3NpbmcmJiEoZC5zZWwmJmQuc2VsLmFuY2hvciE9ZC5zZWwuaGVhZCkpeD17c3RhcnQ6cC5mcm9tLGVuZEE6cC50byxlbmRCOnAudG99O2Vsc2V7aWYoZC5zZWwpe2xldCBPPUJwYShzLHMuc3RhdGUuZG9jLGQuc2VsKTtpZihPJiYhTy5lcShzLnN0YXRlLnNlbGVjdGlvbikpe2xldCAkPXMuc3RhdGUudHIuc2V0U2VsZWN0aW9uKE8pO24mJiQuc2V0TWV0YSgiY29tcG9zaXRpb24iLG4pLHMuZGlzcGF0Y2goJCl9fXJldHVybn1zLnN0YXRlLnNlbGVjdGlvbi5mcm9tPHMuc3RhdGUuc2VsZWN0aW9uLnRvJiZ4LnN0YXJ0PT14LmVuZEImJnMuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgSnQmJih4LnN0YXJ0PnMuc3RhdGUuc2VsZWN0aW9uLmZyb20mJnguc3RhcnQ8PXMuc3RhdGUuc2VsZWN0aW9uLmZyb20rMiYmcy5zdGF0ZS5zZWxlY3Rpb24uZnJvbT49ZC5mcm9tP3guc3RhcnQ9cy5zdGF0ZS5zZWxlY3Rpb24uZnJvbTp4LmVuZEE8cy5zdGF0ZS5zZWxlY3Rpb24udG8mJnguZW5kQT49cy5zdGF0ZS5zZWxlY3Rpb24udG8tMiYmcy5zdGF0ZS5zZWxlY3Rpb24udG88PWQudG8mJih4LmVuZEIrPXMuc3RhdGUuc2VsZWN0aW9uLnRvLXguZW5kQSx4LmVuZEE9cy5zdGF0ZS5zZWxlY3Rpb24udG8pKSxDbCYmVGg8PTExJiZ4LmVuZEI9PXguc3RhcnQrMSYmeC5lbmRBPT14LnN0YXJ0JiZ4LnN0YXJ0PmQuZnJvbSYmZC5kb2MudGV4dEJldHdlZW4oeC5zdGFydC1kLmZyb20tMSx4LnN0YXJ0LWQuZnJvbSsxKT09IiBceEEwIiYmKHguc3RhcnQtLSx4LmVuZEEtLSx4LmVuZEItLSk7bGV0IG09ZC5kb2MucmVzb2x2ZU5vQ2FjaGUoeC5zdGFydC1kLmZyb20pLGY9ZC5kb2MucmVzb2x2ZU5vQ2FjaGUoeC5lbmRCLWQuZnJvbSkseT11LnJlc29sdmUoeC5zdGFydCksTT1tLnNhbWVQYXJlbnQoZikmJm0ucGFyZW50LmlubGluZUNvbnRlbnQmJnkuZW5kKCk+PXguZW5kQTtpZigoQ3YmJnMuaW5wdXQubGFzdElPU0VudGVyPkRhdGUubm93KCktMjI1JiYoIU18fHIuc29tZShPPT5PLm5vZGVOYW1lPT0iRElWInx8Ty5ub2RlTmFtZT09IlAiKSl8fCFNJiZtLnBvczxkLmRvYy5jb250ZW50LnNpemUmJighbS5zYW1lUGFyZW50KGYpfHwhbS5wYXJlbnQuaW5saW5lQ29udGVudCkmJm0ucG9zPGYucG9zJiYhL1xTLy50ZXN0KGQuZG9jLnRleHRCZXR3ZWVuKG0ucG9zLGYucG9zLCIiLCIiKSkpJiZzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixPPT5PKHMsSjgoMTMsIkVudGVyIikpKSl7cy5pbnB1dC5sYXN0SU9TRW50ZXI9MDtyZXR1cm59aWYocy5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yPnguc3RhcnQmJmFZYSh1LHguc3RhcnQseC5lbmRBLG0sZikmJnMuc29tZVByb3AoImhhbmRsZUtleURvd24iLE89Pk8ocyxKOCg4LCJCYWNrc3BhY2UiKSkpKXtudSYmJG8mJnMuZG9tT2JzZXJ2ZXIuc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCk7cmV0dXJufSRvJiZ4LmVuZEI9PXguc3RhcnQmJihzLmlucHV0Lmxhc3RDaHJvbWVEZWxldGU9RGF0ZS5ub3coKSksbnUmJiFNJiZtLnN0YXJ0KCkhPWYuc3RhcnQoKSYmZi5wYXJlbnRPZmZzZXQ9PTAmJm0uZGVwdGg9PWYuZGVwdGgmJmQuc2VsJiZkLnNlbC5hbmNob3I9PWQuc2VsLmhlYWQmJmQuc2VsLmhlYWQ9PXguZW5kQSYmKHguZW5kQi09MixmPWQuZG9jLnJlc29sdmVOb0NhY2hlKHguZW5kQi1kLmZyb20pLHNldFRpbWVvdXQoKCk9PntzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixmdW5jdGlvbihPKXtyZXR1cm4gTyhzLEo4KDEzLCJFbnRlciIpKX0pfSwyMCkpO2xldCB6PXguc3RhcnQsTj14LmVuZEEsQz1pKE89PntsZXQgJD1PfHxzLnN0YXRlLnRyLnJlcGxhY2UoeixOLGQuZG9jLnNsaWNlKHguc3RhcnQtZC5mcm9tLHguZW5kQi1kLmZyb20pKTtpZihkLnNlbCl7bGV0IEU9QnBhKHMsJC5kb2MsZC5zZWwpO0UmJiEoJG8mJnMuY29tcG9zaW5nJiZFLmVtcHR5JiYoeC5zdGFydCE9eC5lbmRCfHxzLmlucHV0Lmxhc3RDaHJvbWVEZWxldGU8RGF0ZS5ub3coKS0xMDApJiYoRS5oZWFkPT16fHxFLmhlYWQ9PSQubWFwcGluZy5tYXAoTiktMSl8fENsJiZFLmVtcHR5JiZFLmhlYWQ9PXopJiYkLnNldFNlbGVjdGlvbihFKX1yZXR1cm4gbiYmJC5zZXRNZXRhKCJjb21wb3NpdGlvbiIsbiksJC5zY3JvbGxJbnRvVmlldygpfSwibWtUciIpLF87aWYoTSlpZihtLnBvcz09Zi5wb3Mpe0NsJiZUaDw9MTEmJm0ucGFyZW50T2Zmc2V0PT0wJiYocy5kb21PYnNlcnZlci5zdXBwcmVzc1NlbGVjdGlvblVwZGF0ZXMoKSxzZXRUaW1lb3V0KCgpPT5jdShzKSwyMCkpO2xldCBPPUMocy5zdGF0ZS50ci5kZWxldGUoeixOKSksJD11LnJlc29sdmUoeC5zdGFydCkubWFya3NBY3Jvc3ModS5yZXNvbHZlKHguZW5kQSkpOyQmJk8uZW5zdXJlTWFya3MoJCkscy5kaXNwYXRjaChPKX1lbHNlIGlmKHguZW5kQT09eC5lbmRCJiYoXz10WWEobS5wYXJlbnQuY29udGVudC5jdXQobS5wYXJlbnRPZmZzZXQsZi5wYXJlbnRPZmZzZXQpLHkucGFyZW50LmNvbnRlbnQuY3V0KHkucGFyZW50T2Zmc2V0LHguZW5kQS15LnN0YXJ0KCkpKSkpe2xldCBPPUMocy5zdGF0ZS50cik7Xy50eXBlPT0iYWRkIj9PLmFkZE1hcmsoeixOLF8ubWFyayk6Ty5yZW1vdmVNYXJrKHosTixfLm1hcmspLHMuZGlzcGF0Y2goTyl9ZWxzZSBpZihtLnBhcmVudC5jaGlsZChtLmluZGV4KCkpLmlzVGV4dCYmbS5pbmRleCgpPT1mLmluZGV4KCktKGYudGV4dE9mZnNldD8wOjEpKXtsZXQgTz1tLnBhcmVudC50ZXh0QmV0d2VlbihtLnBhcmVudE9mZnNldCxmLnBhcmVudE9mZnNldCksJD1pKCgpPT5DKHMuc3RhdGUudHIuaW5zZXJ0VGV4dChPLHosTikpLCJkZWZsdCIpO3Muc29tZVByb3AoImhhbmRsZVRleHRJbnB1dCIsRT0+RShzLHosTixPLCQpKXx8cy5kaXNwYXRjaCgkKCkpfWVsc2Ugcy5kaXNwYXRjaChDKCkpO2Vsc2Ugcy5kaXNwYXRjaChDKCkpfWZ1bmN0aW9uIEJwYShzLGUsdCl7cmV0dXJuIE1hdGgubWF4KHQuYW5jaG9yLHQuaGVhZCk+ZS5jb250ZW50LnNpemU/bnVsbDpxdHQocyxlLnJlc29sdmUodC5hbmNob3IpLGUucmVzb2x2ZSh0LmhlYWQpKX1mdW5jdGlvbiB0WWEocyxlKXtsZXQgdD1zLmZpcnN0Q2hpbGQubWFya3MsYT1lLmZpcnN0Q2hpbGQubWFya3Mscj10LG49YSxvLGwscDtmb3IobGV0IHU9MDt1PGEubGVuZ3RoO3UrKylyPWFbdV0ucmVtb3ZlRnJvbVNldChyKTtmb3IobGV0IHU9MDt1PHQubGVuZ3RoO3UrKyluPXRbdV0ucmVtb3ZlRnJvbVNldChuKTtpZihyLmxlbmd0aD09MSYmbi5sZW5ndGg9PTApbD1yWzBdLG89ImFkZCIscD1pKHU9PnUubWFyayhsLmFkZFRvU2V0KHUubWFya3MpKSwidXBkYXRlIik7ZWxzZSBpZihyLmxlbmd0aD09MCYmbi5sZW5ndGg9PTEpbD1uWzBdLG89InJlbW92ZSIscD1pKHU9PnUubWFyayhsLnJlbW92ZUZyb21TZXQodS5tYXJrcykpLCJ1cGRhdGUiKTtlbHNlIHJldHVybiBudWxsO2xldCBkPVtdO2ZvcihsZXQgdT0wO3U8ZS5jaGlsZENvdW50O3UrKylkLnB1c2gocChlLmNoaWxkKHUpKSk7aWYocnQuZnJvbShkKS5lcShzKSlyZXR1cm57bWFyazpsLHR5cGU6b319ZnVuY3Rpb24gYVlhKHMsZSx0LGEscil7aWYodC1lPD1yLnBvcy1hLnBvc3x8b2F0KGEsITAsITEpPHIucG9zKXJldHVybiExO2xldCBuPXMucmVzb2x2ZShlKTtpZighYS5wYXJlbnQuaXNUZXh0YmxvY2spe2xldCBsPW4ubm9kZUFmdGVyO3JldHVybiBsIT1udWxsJiZ0PT1lK2wubm9kZVNpemV9aWYobi5wYXJlbnRPZmZzZXQ8bi5wYXJlbnQuY29udGVudC5zaXplfHwhbi5wYXJlbnQuaXNUZXh0YmxvY2spcmV0dXJuITE7bGV0IG89cy5yZXNvbHZlKG9hdChuLCEwLCEwKSk7cmV0dXJuIW8ucGFyZW50LmlzVGV4dGJsb2NrfHxvLnBvcz50fHxvYXQobywhMCwhMSk8dD8hMTphLnBhcmVudC5jb250ZW50LmN1dChhLnBhcmVudE9mZnNldCkuZXEoby5wYXJlbnQuY29udGVudCl9ZnVuY3Rpb24gb2F0KHMsZSx0KXtsZXQgYT1zLmRlcHRoLHI9ZT9zLmVuZCgpOnMucG9zO2Zvcig7YT4wJiYoZXx8cy5pbmRleEFmdGVyKGEpPT1zLm5vZGUoYSkuY2hpbGRDb3VudCk7KWEtLSxyKyssZT0hMTtpZih0KXtsZXQgbj1zLm5vZGUoYSkubWF5YmVDaGlsZChzLmluZGV4QWZ0ZXIoYSkpO2Zvcig7biYmIW4uaXNMZWFmOyluPW4uZmlyc3RDaGlsZCxyKyt9cmV0dXJuIHJ9ZnVuY3Rpb24gc1lhKHMsZSx0LGEscil7bGV0IG49cy5maW5kRGlmZlN0YXJ0KGUsdCk7aWYobj09bnVsbClyZXR1cm4gbnVsbDtsZXR7YTpvLGI6bH09cy5maW5kRGlmZkVuZChlLHQrcy5zaXplLHQrZS5zaXplKTtpZihyPT0iZW5kIil7bGV0IHA9TWF0aC5tYXgoMCxuLU1hdGgubWluKG8sbCkpO2EtPW8rcC1ufWlmKG88biYmcy5zaXplPGUuc2l6ZSl7bGV0IHA9YTw9biYmYT49bz9uLWE6MDtuLT1wLG4mJm48ZS5zaXplJiZIcGEoZS50ZXh0QmV0d2VlbihuLTEsbisxKSkmJihuKz1wPzE6LTEpLGw9bisobC1vKSxvPW59ZWxzZSBpZihsPG4pe2xldCBwPWE8PW4mJmE+PWw/bi1hOjA7bi09cCxuJiZuPHMuc2l6ZSYmSHBhKHMudGV4dEJldHdlZW4obi0xLG4rMSkpJiYobis9cD8xOi0xKSxvPW4rKG8tbCksbD1ufXJldHVybntzdGFydDpuLGVuZEE6byxlbmRCOmx9fWZ1bmN0aW9uIEhwYShzKXtpZihzLmxlbmd0aCE9MilyZXR1cm4hMTtsZXQgZT1zLmNoYXJDb2RlQXQoMCksdD1zLmNoYXJDb2RlQXQoMSk7cmV0dXJuIGU+PTU2MzIwJiZlPD01NzM0MyYmdD49NTUyOTYmJnQ8PTU2MzE5fWZ1bmN0aW9uIHFwYShzKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBlLmNsYXNzPSJQcm9zZU1pcnJvciIsZS5jb250ZW50ZWRpdGFibGU9U3RyaW5nKHMuZWRpdGFibGUpLHMuc29tZVByb3AoImF0dHJpYnV0ZXMiLHQ9PntpZih0eXBlb2YgdD09ImZ1bmN0aW9uIiYmKHQ9dChzLnN0YXRlKSksdClmb3IobGV0IGEgaW4gdClhPT0iY2xhc3MiP2UuY2xhc3MrPSIgIit0W2FdOmE9PSJzdHlsZSI/ZS5zdHlsZT0oZS5zdHlsZT9lLnN0eWxlKyI7IjoiIikrdFthXTohZVthXSYmYSE9ImNvbnRlbnRlZGl0YWJsZSImJmEhPSJub2RlTmFtZSImJihlW2FdPVN0cmluZyh0W2FdKSl9KSxlLnRyYW5zbGF0ZXx8KGUudHJhbnNsYXRlPSJubyIpLFt0Mi5ub2RlKDAscy5zdGF0ZS5kb2MuY29udGVudC5zaXplLGUpXX1mdW5jdGlvbiBqcGEocyl7aWYocy5tYXJrQ3Vyc29yKXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtlLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3Itc2VwYXJhdG9yIixlLnNldEF0dHJpYnV0ZSgibWFyay1wbGFjZWhvbGRlciIsInRydWUiKSxlLnNldEF0dHJpYnV0ZSgiYWx0IiwiIikscy5jdXJzb3JXcmFwcGVyPXtkb206ZSxkZWNvOnQyLndpZGdldChzLnN0YXRlLnNlbGVjdGlvbi5mcm9tLGUse3JhdzohMCxtYXJrczpzLm1hcmtDdXJzb3J9KX19ZWxzZSBzLmN1cnNvcldyYXBwZXI9bnVsbH1mdW5jdGlvbiBWcGEocyl7cmV0dXJuIXMuc29tZVByb3AoImVkaXRhYmxlIixlPT5lKHMuc3RhdGUpPT09ITEpfWZ1bmN0aW9uIG9ZYShzLGUpe2xldCB0PU1hdGgubWluKHMuJGFuY2hvci5zaGFyZWREZXB0aChzLmhlYWQpLGUuJGFuY2hvci5zaGFyZWREZXB0aChlLmhlYWQpKTtyZXR1cm4gcy4kYW5jaG9yLnN0YXJ0KHQpIT1lLiRhbmNob3Iuc3RhcnQodCl9ZnVuY3Rpb24gVXBhKHMpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gdChhKXtmb3IobGV0IHIgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKXx8KGVbcl09YVtyXSl9cmV0dXJuIGkodCwiYWRkIikscy5zb21lUHJvcCgibm9kZVZpZXdzIix0KSxzLnNvbWVQcm9wKCJtYXJrVmlld3MiLHQpLGV9ZnVuY3Rpb24gbllhKHMsZSl7bGV0IHQ9MCxhPTA7Zm9yKGxldCByIGluIHMpe2lmKHNbcl0hPWVbcl0pcmV0dXJuITA7dCsrfWZvcihsZXQgciBpbiBlKWErKztyZXR1cm4gdCE9YX1mdW5jdGlvbiBXcGEocyl7aWYocy5zcGVjLnN0YXRlfHxzLnNwZWMuZmlsdGVyVHJhbnNhY3Rpb258fHMuc3BlYy5hcHBlbmRUcmFuc2FjdGlvbil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUGx1Z2lucyBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIHZpZXcgbXVzdCBub3QgaGF2ZSBhIHN0YXRlIGNvbXBvbmVudCIpfXZhciBUbyx6diwkdHQsb3UsTEdhLFE4LEVHYSxXbmUsSWQsRnVhLENoLER0dCxCdWEsTHR0LENsLFRoLEZjLEV0dCwkbyxIdWEsbG4sQ3YsQmMscXVhLG51LFlaLE9HYSxUdixZR2EsWEdhLFh1YSxRdWEsSnVhLEhjLGVwYSxlZyxBZCx0ZyxHbmUsQXR0LCR2LERoLEtuZSxZbmUsTnR0LFhaLGFnLE90dCxucGEsZ0thLF9wYSxNcGEsS3R0LCRuLERuLGtLYSxZdHQsQ3BhLGVhdCxJS2EsZVgsSm5lLEhLYSxlbGUsc2csdGF0LHQyLEV2LGlnLExuLGNuLHRsZSxVS2EsV0thLGlhdCxyYXQsUnBhLE9wYSxKS2EsaVlhLHJZYSxQdixuYXQ9ZygoKT0+e3J1KCk7X2goKTt6aCgpO1RvPWkoZnVuY3Rpb24ocyl7Zm9yKHZhciBlPTA7O2UrKylpZihzPXMucHJldmlvdXNTaWJsaW5nLCFzKXJldHVybiBlfSwiZG9tSW5kZXgiKSx6dj1pKGZ1bmN0aW9uKHMpe2xldCBlPXMuYXNzaWduZWRTbG90fHxzLnBhcmVudE5vZGU7cmV0dXJuIGUmJmUubm9kZVR5cGU9PTExP2UuaG9zdDplfSwicGFyZW50Tm9kZSIpLCR0dD1udWxsLG91PWkoZnVuY3Rpb24ocyxlLHQpe2xldCBhPSR0dHx8KCR0dD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpKTtyZXR1cm4gYS5zZXRFbmQocyx0Pz9zLm5vZGVWYWx1ZS5sZW5ndGgpLGEuc2V0U3RhcnQocyxlfHwwKSxhfSwidGV4dFJhbmdlIiksTEdhPWkoZnVuY3Rpb24oKXskdHQ9bnVsbH0sImNsZWFyUmV1c2VkUmFuZ2UiKSxROD1pKGZ1bmN0aW9uKHMsZSx0LGEpe3JldHVybiB0JiYoT3VhKHMsZSx0LGEsLTEpfHxPdWEocyxlLHQsYSwxKSl9LCJpc0VxdWl2YWxlbnRQb3NpdGlvbiIpLEVHYT0vXihpbWd8YnJ8aW5wdXR8dGV4dGFyZWF8aHIpJC9pO2koT3VhLCJzY2FuRm9yIik7aShPYywibm9kZVNpemUiKTtpKFBHYSwidGV4dE5vZGVCZWZvcmUkMSIpO2koSUdhLCJ0ZXh0Tm9kZUFmdGVyJDEiKTtpKEFHYSwiaXNPbkVkZ2UiKTtpKEtaLCJoYXNCbG9ja0Rlc2MiKTtXbmU9aShmdW5jdGlvbihzKXtyZXR1cm4gcy5mb2N1c05vZGUmJlE4KHMuZm9jdXNOb2RlLHMuZm9jdXNPZmZzZXQscy5hbmNob3JOb2RlLHMuYW5jaG9yT2Zmc2V0KX0sInNlbGVjdGlvbkNvbGxhcHNlZCIpO2koSjgsImtleUV2ZW50Iik7aShOR2EsImRlZXBBY3RpdmVFbGVtZW50Iik7aShSR2EsImNhcmV0RnJvbVBvaW50Iik7SWQ9dHlwZW9mIG5hdmlnYXRvcjwidSI/bmF2aWdhdG9yOm51bGwsRnVhPXR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6bnVsbCxDaD1JZCYmSWQudXNlckFnZW50fHwiIixEdHQ9L0VkZ2VcLyhcZCspLy5leGVjKENoKSxCdWE9L01TSUUgXGQvLmV4ZWMoQ2gpLEx0dD0vVHJpZGVudFwvKD86WzctOV18XGR7Mix9KVwuLipydjooXGQrKS8uZXhlYyhDaCksQ2w9ISEoQnVhfHxMdHR8fER0dCksVGg9QnVhP2RvY3VtZW50LmRvY3VtZW50TW9kZTpMdHQ/K0x0dFsxXTpEdHQ/K0R0dFsxXTowLEZjPSFDbCYmL2dlY2tvXC8oXGQrKS9pLnRlc3QoQ2gpO0ZjJiYrKC9GaXJlZm94XC8oXGQrKS8uZXhlYyhDaCl8fFswLDBdKVsxXTtFdHQ9IUNsJiYvQ2hyb21lXC8oXGQrKS8uZXhlYyhDaCksJG89ISFFdHQsSHVhPUV0dD8rRXR0WzFdOjAsbG49IUNsJiYhIUlkJiYvQXBwbGUgQ29tcHV0ZXIvLnRlc3QoSWQudmVuZG9yKSxDdj1sbiYmKC9Nb2JpbGVcL1x3Ky8udGVzdChDaCl8fCEhSWQmJklkLm1heFRvdWNoUG9pbnRzPjIpLEJjPUN2fHwoSWQ/L01hYy8udGVzdChJZC5wbGF0Zm9ybSk6ITEpLHF1YT1JZD8vV2luLy50ZXN0KElkLnBsYXRmb3JtKTohMSxudT0vQW5kcm9pZCBcZC8udGVzdChDaCksWVo9ISFGdWEmJiJ3ZWJraXRGb250U21vb3RoaW5nImluIEZ1YS5kb2N1bWVudEVsZW1lbnQuc3R5bGUsT0dhPVlaPysoL1xiQXBwbGVXZWJLaXRcLyhcZCspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpfHxbMCwwXSlbMV06MDtpKEZHYSwid2luZG93UmVjdCIpO2kobHUsImdldFNpZGUiKTtpKEJHYSwiY2xpZW50UmVjdCIpO2koanVhLCJzY3JvbGxSZWN0SW50b1ZpZXciKTtpKEhHYSwic3RvcmVTY3JvbGxQb3MiKTtpKFZ1YSwic2Nyb2xsU3RhY2siKTtpKHFHYSwicmVzZXRTY3JvbGxQb3MiKTtpKFV1YSwicmVzdG9yZVNjcm9sbFN0YWNrIik7VHY9bnVsbDtpKGpHYSwiZm9jdXNQcmV2ZW50U2Nyb2xsIik7aShXdWEsImZpbmRPZmZzZXRJbk5vZGUiKTtpKFZHYSwiZmluZE9mZnNldEluVGV4dCIpO2koUHR0LCJpblJlY3QiKTtpKFVHYSwidGFyZ2V0S2x1ZGdlIik7aShXR2EsInBvc0Zyb21FbGVtZW50Iik7aShHR2EsInBvc0Zyb21DYXJldCIpO2koR3VhLCJlbGVtZW50RnJvbVBvaW50Iik7aShLR2EsInBvc0F0Q29vcmRzIik7aShLdWEsIm5vblplcm8iKTtpKCRoLCJzaW5nbGVSZWN0Iik7WUdhPS9bXHUwNTkwLVx1MDVmNFx1MDYwMC1cdTA2ZmZcdTA3MDAtXHUwOGFjXS87aShZdWEsImNvb3Jkc0F0UG9zIik7aShaWiwiZmxhdHRlblYiKTtpKEl0dCwiZmxhdHRlbkgiKTtpKFp1YSwid2l0aEZsdXNoZWRTdGF0ZSIpO2koWkdhLCJlbmRPZlRleHRibG9ja1ZlcnRpY2FsIik7WEdhPS9bXHUwNTkwLVx1MDhhY10vO2koUUdhLCJlbmRPZlRleHRibG9ja0hvcml6b250YWwiKTtYdWE9bnVsbCxRdWE9bnVsbCxKdWE9ITE7aShKR2EsImVuZE9mVGV4dGJsb2NrIik7SGM9MCxlcGE9MSxlZz0yLEFkPTMsdGc9Y2xhc3N7c3RhdGlje2kodGhpcywiVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLnBhcmVudD1lLHRoaXMuY2hpbGRyZW49dCx0aGlzLmRvbT1hLHRoaXMuY29udGVudERPTT1yLHRoaXMuZGlydHk9SGMsYS5wbVZpZXdEZXNjPXRoaXN9bWF0Y2hlc1dpZGdldChlKXtyZXR1cm4hMX1tYXRjaGVzTWFyayhlKXtyZXR1cm4hMX1tYXRjaGVzTm9kZShlLHQsYSl7cmV0dXJuITF9bWF0Y2hlc0hhY2soZSl7cmV0dXJuITF9cGFyc2VSdWxlKCl7cmV0dXJuIG51bGx9c3RvcEV2ZW50KGUpe3JldHVybiExfWdldCBzaXplKCl7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrKyllKz10aGlzLmNoaWxkcmVuW3RdLnNpemU7cmV0dXJuIGV9Z2V0IGJvcmRlcigpe3JldHVybiAwfWRlc3Ryb3koKXt0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5kb20ucG1WaWV3RGVzYz09dGhpcyYmKHRoaXMuZG9tLnBtVmlld0Rlc2M9dm9pZCAwKTtmb3IobGV0IGU9MDtlPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2UrKyl0aGlzLmNoaWxkcmVuW2VdLmRlc3Ryb3koKX1wb3NCZWZvcmVDaGlsZChlKXtmb3IobGV0IHQ9MCxhPXRoaXMucG9zQXRTdGFydDs7dCsrKXtsZXQgcj10aGlzLmNoaWxkcmVuW3RdO2lmKHI9PWUpcmV0dXJuIGE7YSs9ci5zaXplfX1nZXQgcG9zQmVmb3JlKCl7cmV0dXJuIHRoaXMucGFyZW50LnBvc0JlZm9yZUNoaWxkKHRoaXMpfWdldCBwb3NBdFN0YXJ0KCl7cmV0dXJuIHRoaXMucGFyZW50P3RoaXMucGFyZW50LnBvc0JlZm9yZUNoaWxkKHRoaXMpK3RoaXMuYm9yZGVyOjB9Z2V0IHBvc0FmdGVyKCl7cmV0dXJuIHRoaXMucG9zQmVmb3JlK3RoaXMuc2l6ZX1nZXQgcG9zQXRFbmQoKXtyZXR1cm4gdGhpcy5wb3NBdFN0YXJ0K3RoaXMuc2l6ZS0yKnRoaXMuYm9yZGVyfWxvY2FsUG9zRnJvbURPTShlLHQsYSl7aWYodGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSkpaWYoYTwwKXtsZXQgbixvO2lmKGU9PXRoaXMuY29udGVudERPTSluPWUuY2hpbGROb2Rlc1t0LTFdO2Vsc2V7Zm9yKDtlLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTspZT1lLnBhcmVudE5vZGU7bj1lLnByZXZpb3VzU2libGluZ31mb3IoO24mJiEoKG89bi5wbVZpZXdEZXNjKSYmby5wYXJlbnQ9PXRoaXMpOyluPW4ucHJldmlvdXNTaWJsaW5nO3JldHVybiBuP3RoaXMucG9zQmVmb3JlQ2hpbGQobykrby5zaXplOnRoaXMucG9zQXRTdGFydH1lbHNle2xldCBuLG87aWYoZT09dGhpcy5jb250ZW50RE9NKW49ZS5jaGlsZE5vZGVzW3RdO2Vsc2V7Zm9yKDtlLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTspZT1lLnBhcmVudE5vZGU7bj1lLm5leHRTaWJsaW5nfWZvcig7biYmISgobz1uLnBtVmlld0Rlc2MpJiZvLnBhcmVudD09dGhpcyk7KW49bi5uZXh0U2libGluZztyZXR1cm4gbj90aGlzLnBvc0JlZm9yZUNoaWxkKG8pOnRoaXMucG9zQXRFbmR9bGV0IHI7aWYoZT09dGhpcy5kb20mJnRoaXMuY29udGVudERPTSlyPXQ+VG8odGhpcy5jb250ZW50RE9NKTtlbHNlIGlmKHRoaXMuY29udGVudERPTSYmdGhpcy5jb250ZW50RE9NIT10aGlzLmRvbSYmdGhpcy5kb20uY29udGFpbnModGhpcy5jb250ZW50RE9NKSlyPWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcy5jb250ZW50RE9NKSYyO2Vsc2UgaWYodGhpcy5kb20uZmlyc3RDaGlsZCl7aWYodD09MClmb3IobGV0IG49ZTs7bj1uLnBhcmVudE5vZGUpe2lmKG49PXRoaXMuZG9tKXtyPSExO2JyZWFrfWlmKG4ucHJldmlvdXNTaWJsaW5nKWJyZWFrfWlmKHI9PW51bGwmJnQ9PWUuY2hpbGROb2Rlcy5sZW5ndGgpZm9yKGxldCBuPWU7O249bi5wYXJlbnROb2RlKXtpZihuPT10aGlzLmRvbSl7cj0hMDticmVha31pZihuLm5leHRTaWJsaW5nKWJyZWFrfX1yZXR1cm4gcj8/YT4wP3RoaXMucG9zQXRFbmQ6dGhpcy5wb3NBdFN0YXJ0fW5lYXJlc3REZXNjKGUsdD0hMSl7Zm9yKGxldCBhPSEwLHI9ZTtyO3I9ci5wYXJlbnROb2RlKXtsZXQgbj10aGlzLmdldERlc2MociksbztpZihuJiYoIXR8fG4ubm9kZSkpaWYoYSYmKG89bi5ub2RlRE9NKSYmIShvLm5vZGVUeXBlPT0xP28uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSk6bz09ZSkpYT0hMTtlbHNlIHJldHVybiBufX1nZXREZXNjKGUpe2xldCB0PWUucG1WaWV3RGVzYztmb3IobGV0IGE9dDthO2E9YS5wYXJlbnQpaWYoYT09dGhpcylyZXR1cm4gdH1wb3NGcm9tRE9NKGUsdCxhKXtmb3IobGV0IHI9ZTtyO3I9ci5wYXJlbnROb2RlKXtsZXQgbj10aGlzLmdldERlc2Mocik7aWYobilyZXR1cm4gbi5sb2NhbFBvc0Zyb21ET00oZSx0LGEpfXJldHVybi0xfWRlc2NBdChlKXtmb3IobGV0IHQ9MCxhPTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2xldCByPXRoaXMuY2hpbGRyZW5bdF0sbj1hK3Iuc2l6ZTtpZihhPT1lJiZuIT1hKXtmb3IoOyFyLmJvcmRlciYmci5jaGlsZHJlbi5sZW5ndGg7KWZvcihsZXQgbz0wO288ci5jaGlsZHJlbi5sZW5ndGg7bysrKXtsZXQgbD1yLmNoaWxkcmVuW29dO2lmKGwuc2l6ZSl7cj1sO2JyZWFrfX1yZXR1cm4gcn1pZihlPG4pcmV0dXJuIHIuZGVzY0F0KGUtYS1yLmJvcmRlcik7YT1ufX1kb21Gcm9tUG9zKGUsdCl7aWYoIXRoaXMuY29udGVudERPTSlyZXR1cm57bm9kZTp0aGlzLmRvbSxvZmZzZXQ6MCxhdG9tOmUrMX07bGV0IGE9MCxyPTA7Zm9yKGxldCBuPTA7YTx0aGlzLmNoaWxkcmVuLmxlbmd0aDthKyspe2xldCBvPXRoaXMuY2hpbGRyZW5bYV0sbD1uK28uc2l6ZTtpZihsPmV8fG8gaW5zdGFuY2VvZiBZbmUpe3I9ZS1uO2JyZWFrfW49bH1pZihyKXJldHVybiB0aGlzLmNoaWxkcmVuW2FdLmRvbUZyb21Qb3Moci10aGlzLmNoaWxkcmVuW2FdLmJvcmRlcix0KTtmb3IobGV0IG47YSYmIShuPXRoaXMuY2hpbGRyZW5bYS0xXSkuc2l6ZSYmbiBpbnN0YW5jZW9mIEduZSYmbi5zaWRlPj0wO2EtLSk7aWYodDw9MCl7bGV0IG4sbz0hMDtmb3IoO249YT90aGlzLmNoaWxkcmVuW2EtMV06bnVsbCwhKCFufHxuLmRvbS5wYXJlbnROb2RlPT10aGlzLmNvbnRlbnRET00pO2EtLSxvPSExKTtyZXR1cm4gbiYmdCYmbyYmIW4uYm9yZGVyJiYhbi5kb21BdG9tP24uZG9tRnJvbVBvcyhuLnNpemUsdCk6e25vZGU6dGhpcy5jb250ZW50RE9NLG9mZnNldDpuP1RvKG4uZG9tKSsxOjB9fWVsc2V7bGV0IG4sbz0hMDtmb3IoO249YTx0aGlzLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNoaWxkcmVuW2FdOm51bGwsISghbnx8bi5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NKTthKyssbz0hMSk7cmV0dXJuIG4mJm8mJiFuLmJvcmRlciYmIW4uZG9tQXRvbT9uLmRvbUZyb21Qb3MoMCx0KTp7bm9kZTp0aGlzLmNvbnRlbnRET00sb2Zmc2V0Om4/VG8obi5kb20pOnRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aH19fXBhcnNlUmFuZ2UoZSx0LGE9MCl7aWYodGhpcy5jaGlsZHJlbi5sZW5ndGg9PTApcmV0dXJue25vZGU6dGhpcy5jb250ZW50RE9NLGZyb206ZSx0bzp0LGZyb21PZmZzZXQ6MCx0b09mZnNldDp0aGlzLmNvbnRlbnRET00uY2hpbGROb2Rlcy5sZW5ndGh9O2xldCByPS0xLG49LTE7Zm9yKGxldCBvPWEsbD0wOztsKyspe2xldCBwPXRoaXMuY2hpbGRyZW5bbF0sZD1vK3Auc2l6ZTtpZihyPT0tMSYmZTw9ZCl7bGV0IHU9bytwLmJvcmRlcjtpZihlPj11JiZ0PD1kLXAuYm9yZGVyJiZwLm5vZGUmJnAuY29udGVudERPTSYmdGhpcy5jb250ZW50RE9NLmNvbnRhaW5zKHAuY29udGVudERPTSkpcmV0dXJuIHAucGFyc2VSYW5nZShlLHQsdSk7ZT1vO2ZvcihsZXQgYz1sO2M+MDtjLS0pe2xldCBiPXRoaXMuY2hpbGRyZW5bYy0xXTtpZihiLnNpemUmJmIuZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSYmIWIuZW1wdHlDaGlsZEF0KDEpKXtyPVRvKGIuZG9tKSsxO2JyZWFrfWUtPWIuc2l6ZX1yPT0tMSYmKHI9MCl9aWYocj4tMSYmKGQ+dHx8bD09dGhpcy5jaGlsZHJlbi5sZW5ndGgtMSkpe3Q9ZDtmb3IobGV0IHU9bCsxO3U8dGhpcy5jaGlsZHJlbi5sZW5ndGg7dSsrKXtsZXQgYz10aGlzLmNoaWxkcmVuW3VdO2lmKGMuc2l6ZSYmYy5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NJiYhYy5lbXB0eUNoaWxkQXQoLTEpKXtuPVRvKGMuZG9tKTticmVha310Kz1jLnNpemV9bj09LTEmJihuPXRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aCk7YnJlYWt9bz1kfXJldHVybntub2RlOnRoaXMuY29udGVudERPTSxmcm9tOmUsdG86dCxmcm9tT2Zmc2V0OnIsdG9PZmZzZXQ6bn19ZW1wdHlDaGlsZEF0KGUpe2lmKHRoaXMuYm9yZGVyfHwhdGhpcy5jb250ZW50RE9NfHwhdGhpcy5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuITE7bGV0IHQ9dGhpcy5jaGlsZHJlbltlPDA/MDp0aGlzLmNoaWxkcmVuLmxlbmd0aC0xXTtyZXR1cm4gdC5zaXplPT0wfHx0LmVtcHR5Q2hpbGRBdChlKX1kb21BZnRlclBvcyhlKXtsZXR7bm9kZTp0LG9mZnNldDphfT10aGlzLmRvbUZyb21Qb3MoZSwwKTtpZih0Lm5vZGVUeXBlIT0xfHxhPT10LmNoaWxkTm9kZXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBub2RlIGFmdGVyIHBvcyAiK2UpO3JldHVybiB0LmNoaWxkTm9kZXNbYV19c2V0U2VsZWN0aW9uKGUsdCxhLHI9ITEpe2xldCBuPU1hdGgubWluKGUsdCksbz1NYXRoLm1heChlLHQpO2ZvcihsZXQgdj0wLHg9MDt2PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3YrKyl7bGV0IG09dGhpcy5jaGlsZHJlblt2XSxmPXgrbS5zaXplO2lmKG4+eCYmbzxmKXJldHVybiBtLnNldFNlbGVjdGlvbihlLXgtbS5ib3JkZXIsdC14LW0uYm9yZGVyLGEscik7eD1mfWxldCBsPXRoaXMuZG9tRnJvbVBvcyhlLGU/LTE6MSkscD10PT1lP2w6dGhpcy5kb21Gcm9tUG9zKHQsdD8tMToxKSxkPWEucm9vdC5nZXRTZWxlY3Rpb24oKSx1PWEuZG9tU2VsZWN0aW9uUmFuZ2UoKSxjPSExO2lmKChGY3x8bG4pJiZlPT10KXtsZXR7bm9kZTp2LG9mZnNldDp4fT1sO2lmKHYubm9kZVR5cGU9PTMpe2lmKGM9ISEoeCYmdi5ub2RlVmFsdWVbeC0xXT09YApgKSxjJiZ4PT12Lm5vZGVWYWx1ZS5sZW5ndGgpZm9yKGxldCBtPXYsZjttO209bS5wYXJlbnROb2RlKXtpZihmPW0ubmV4dFNpYmxpbmcpe2Yubm9kZU5hbWU9PSJCUiImJihsPXA9e25vZGU6Zi5wYXJlbnROb2RlLG9mZnNldDpUbyhmKSsxfSk7YnJlYWt9bGV0IHk9bS5wbVZpZXdEZXNjO2lmKHkmJnkubm9kZSYmeS5ub2RlLmlzQmxvY2spYnJlYWt9fWVsc2V7bGV0IG09di5jaGlsZE5vZGVzW3gtMV07Yz1tJiYobS5ub2RlTmFtZT09IkJSInx8bS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpfX1pZihGYyYmdS5mb2N1c05vZGUmJnUuZm9jdXNOb2RlIT1wLm5vZGUmJnUuZm9jdXNOb2RlLm5vZGVUeXBlPT0xKXtsZXQgdj11LmZvY3VzTm9kZS5jaGlsZE5vZGVzW3UuZm9jdXNPZmZzZXRdO3YmJnYuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiJiYocj0hMCl9aWYoIShyfHxjJiZsbikmJlE4KGwubm9kZSxsLm9mZnNldCx1LmFuY2hvck5vZGUsdS5hbmNob3JPZmZzZXQpJiZROChwLm5vZGUscC5vZmZzZXQsdS5mb2N1c05vZGUsdS5mb2N1c09mZnNldCkpcmV0dXJuO2xldCBiPSExO2lmKChkLmV4dGVuZHx8ZT09dCkmJiEoYyYmRmMpKXtkLmNvbGxhcHNlKGwubm9kZSxsLm9mZnNldCk7dHJ5e2UhPXQmJmQuZXh0ZW5kKHAubm9kZSxwLm9mZnNldCksYj0hMH1jYXRjaHt9fWlmKCFiKXtpZihlPnQpe2xldCB4PWw7bD1wLHA9eH1sZXQgdj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Yuc2V0RW5kKHAubm9kZSxwLm9mZnNldCksdi5zZXRTdGFydChsLm5vZGUsbC5vZmZzZXQpLGQucmVtb3ZlQWxsUmFuZ2VzKCksZC5hZGRSYW5nZSh2KX19aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIXRoaXMuY29udGVudERPTSYmZS50eXBlIT0ic2VsZWN0aW9uIn1nZXQgY29udGVudExvc3QoKXtyZXR1cm4gdGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00hPXRoaXMuZG9tJiYhdGhpcy5kb20uY29udGFpbnModGhpcy5jb250ZW50RE9NKX1tYXJrRGlydHkoZSx0KXtmb3IobGV0IGE9MCxyPTA7cjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtyKyspe2xldCBuPXRoaXMuY2hpbGRyZW5bcl0sbz1hK24uc2l6ZTtpZihhPT1vP2U8PW8mJnQ+PWE6ZTxvJiZ0PmEpe2xldCBsPWErbi5ib3JkZXIscD1vLW4uYm9yZGVyO2lmKGU+PWwmJnQ8PXApe3RoaXMuZGlydHk9ZT09YXx8dD09bz9lZzplcGEsZT09bCYmdD09cCYmKG4uY29udGVudExvc3R8fG4uZG9tLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTSk/bi5kaXJ0eT1BZDpuLm1hcmtEaXJ0eShlLWwsdC1sKTtyZXR1cm59ZWxzZSBuLmRpcnR5PW4uZG9tPT1uLmNvbnRlbnRET00mJm4uZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSYmIW4uY2hpbGRyZW4ubGVuZ3RoP2VnOkFkfWE9b310aGlzLmRpcnR5PWVnfW1hcmtQYXJlbnRzRGlydHkoKXtsZXQgZT0xO2ZvcihsZXQgdD10aGlzLnBhcmVudDt0O3Q9dC5wYXJlbnQsZSsrKXtsZXQgYT1lPT0xP2VnOmVwYTt0LmRpcnR5PGEmJih0LmRpcnR5PWEpfX1nZXQgZG9tQXRvbSgpe3JldHVybiExfWdldCBpZ25vcmVGb3JDb29yZHMoKXtyZXR1cm4hMX1nZXQgaWdub3JlRm9yU2VsZWN0aW9uKCl7cmV0dXJuITF9aXNUZXh0KGUpe3JldHVybiExfX0sR25lPWNsYXNzIGV4dGVuZHMgdGd7c3RhdGlje2kodGhpcywiV2lkZ2V0Vmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyKXtsZXQgbixvPXQudHlwZS50b0RPTTtpZih0eXBlb2Ygbz09ImZ1bmN0aW9uIiYmKG89byhhLCgpPT57aWYoIW4pcmV0dXJuIHI7aWYobi5wYXJlbnQpcmV0dXJuIG4ucGFyZW50LnBvc0JlZm9yZUNoaWxkKG4pfSkpLCF0LnR5cGUuc3BlYy5yYXcpe2lmKG8ubm9kZVR5cGUhPTEpe2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtsLmFwcGVuZENoaWxkKG8pLG89bH1vLmNvbnRlbnRFZGl0YWJsZT0iZmFsc2UiLG8uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3Itd2lkZ2V0Iil9c3VwZXIoZSxbXSxvLG51bGwpLHRoaXMud2lkZ2V0PXQsdGhpcy53aWRnZXQ9dCxuPXRoaXN9bWF0Y2hlc1dpZGdldChlKXtyZXR1cm4gdGhpcy5kaXJ0eT09SGMmJmUudHlwZS5lcSh0aGlzLndpZGdldC50eXBlKX1wYXJzZVJ1bGUoKXtyZXR1cm57aWdub3JlOiEwfX1zdG9wRXZlbnQoZSl7bGV0IHQ9dGhpcy53aWRnZXQuc3BlYy5zdG9wRXZlbnQ7cmV0dXJuIHQ/dChlKTohMX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gZS50eXBlIT0ic2VsZWN0aW9uInx8dGhpcy53aWRnZXQuc3BlYy5pZ25vcmVTZWxlY3Rpb259ZGVzdHJveSgpe3RoaXMud2lkZ2V0LnR5cGUuZGVzdHJveSh0aGlzLmRvbSksc3VwZXIuZGVzdHJveSgpfWdldCBkb21BdG9tKCl7cmV0dXJuITB9Z2V0IGlnbm9yZUZvclNlbGVjdGlvbigpe3JldHVybiEhdGhpcy53aWRnZXQudHlwZS5zcGVjLnJlbGF4ZWRTaWRlfWdldCBzaWRlKCl7cmV0dXJuIHRoaXMud2lkZ2V0LnR5cGUuc2lkZX19LEF0dD1jbGFzcyBleHRlbmRzIHRne3N0YXRpY3tpKHRoaXMsIkNvbXBvc2l0aW9uVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyKXtzdXBlcihlLFtdLHQsbnVsbCksdGhpcy50ZXh0RE9NPWEsdGhpcy50ZXh0PXJ9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH1sb2NhbFBvc0Zyb21ET00oZSx0KXtyZXR1cm4gZSE9dGhpcy50ZXh0RE9NP3RoaXMucG9zQXRTdGFydCsodD90aGlzLnNpemU6MCk6dGhpcy5wb3NBdFN0YXJ0K3R9ZG9tRnJvbVBvcyhlKXtyZXR1cm57bm9kZTp0aGlzLnRleHRET00sb2Zmc2V0OmV9fWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0iY2hhcmFjdGVyRGF0YSImJmUudGFyZ2V0Lm5vZGVWYWx1ZT09ZS5vbGRWYWx1ZX19LCR2PWNsYXNzIHMgZXh0ZW5kcyB0Z3tzdGF0aWN7aSh0aGlzLCJNYXJrVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQsYSxyLG4pe3N1cGVyKGUsW10sYSxyKSx0aGlzLm1hcms9dCx0aGlzLnNwZWM9bn1zdGF0aWMgY3JlYXRlKGUsdCxhLHIpe2xldCBuPXIubm9kZVZpZXdzW3QudHlwZS5uYW1lXSxvPW4mJm4odCxyLGEpO3JldHVybighb3x8IW8uZG9tKSYmKG89TGQucmVuZGVyU3BlYyhkb2N1bWVudCx0LnR5cGUuc3BlYy50b0RPTSh0LGEpLG51bGwsdC5hdHRycykpLG5ldyBzKGUsdCxvLmRvbSxvLmNvbnRlbnRET018fG8uZG9tLG8pfXBhcnNlUnVsZSgpe3JldHVybiB0aGlzLmRpcnR5JkFkfHx0aGlzLm1hcmsudHlwZS5zcGVjLnJlcGFyc2VJblZpZXc/bnVsbDp7bWFyazp0aGlzLm1hcmsudHlwZS5uYW1lLGF0dHJzOnRoaXMubWFyay5hdHRycyxjb250ZW50RWxlbWVudDp0aGlzLmNvbnRlbnRET019fW1hdGNoZXNNYXJrKGUpe3JldHVybiB0aGlzLmRpcnR5IT1BZCYmdGhpcy5tYXJrLmVxKGUpfW1hcmtEaXJ0eShlLHQpe2lmKHN1cGVyLm1hcmtEaXJ0eShlLHQpLHRoaXMuZGlydHkhPUhjKXtsZXQgYT10aGlzLnBhcmVudDtmb3IoOyFhLm5vZGU7KWE9YS5wYXJlbnQ7YS5kaXJ0eTx0aGlzLmRpcnR5JiYoYS5kaXJ0eT10aGlzLmRpcnR5KSx0aGlzLmRpcnR5PUhjfX1zbGljZShlLHQsYSl7bGV0IHI9cy5jcmVhdGUodGhpcy5wYXJlbnQsdGhpcy5tYXJrLCEwLGEpLG49dGhpcy5jaGlsZHJlbixvPXRoaXMuc2l6ZTt0PG8mJihuPUZ0dChuLHQsbyxhKSksZT4wJiYobj1GdHQobiwwLGUsYSkpO2ZvcihsZXQgbD0wO2w8bi5sZW5ndGg7bCsrKW5bbF0ucGFyZW50PXI7cmV0dXJuIHIuY2hpbGRyZW49bixyfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiB0aGlzLnNwZWMuaWdub3JlTXV0YXRpb24/dGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uKGUpOnN1cGVyLmlnbm9yZU11dGF0aW9uKGUpfWRlc3Ryb3koKXt0aGlzLnNwZWMuZGVzdHJveSYmdGhpcy5zcGVjLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fSxEaD1jbGFzcyBzIGV4dGVuZHMgdGd7c3RhdGlje2kodGhpcywiTm9kZVZpZXdEZXNjIil9Y29uc3RydWN0b3IoZSx0LGEscixuLG8sbCxwLGQpe3N1cGVyKGUsW10sbixvKSx0aGlzLm5vZGU9dCx0aGlzLm91dGVyRGVjbz1hLHRoaXMuaW5uZXJEZWNvPXIsdGhpcy5ub2RlRE9NPWx9c3RhdGljIGNyZWF0ZShlLHQsYSxyLG4sbyl7bGV0IGw9bi5ub2RlVmlld3NbdC50eXBlLm5hbWVdLHAsZD1sJiZsKHQsbiwoKT0+e2lmKCFwKXJldHVybiBvO2lmKHAucGFyZW50KXJldHVybiBwLnBhcmVudC5wb3NCZWZvcmVDaGlsZChwKX0sYSxyKSx1PWQmJmQuZG9tLGM9ZCYmZC5jb250ZW50RE9NO2lmKHQuaXNUZXh0KXtpZighdSl1PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQudGV4dCk7ZWxzZSBpZih1Lm5vZGVUeXBlIT0zKXRocm93IG5ldyBSYW5nZUVycm9yKCJUZXh0IG11c3QgYmUgcmVuZGVyZWQgYXMgYSBET00gdGV4dCBub2RlIil9ZWxzZSB1fHwoe2RvbTp1LGNvbnRlbnRET006Y309TGQucmVuZGVyU3BlYyhkb2N1bWVudCx0LnR5cGUuc3BlYy50b0RPTSh0KSxudWxsLHQuYXR0cnMpKTshYyYmIXQuaXNUZXh0JiZ1Lm5vZGVOYW1lIT0iQlIiJiYodS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHwodS5jb250ZW50RWRpdGFibGU9ImZhbHNlIiksdC50eXBlLnNwZWMuZHJhZ2dhYmxlJiYodS5kcmFnZ2FibGU9ITApKTtsZXQgYj11O3JldHVybiB1PWlwYSh1LGEsdCksZD9wPW5ldyBOdHQoZSx0LGEscix1LGN8fG51bGwsYixkLG4sbysxKTp0LmlzVGV4dD9uZXcgS25lKGUsdCxhLHIsdSxiLG4pOm5ldyBzKGUsdCxhLHIsdSxjfHxudWxsLGIsbixvKzEpfXBhcnNlUnVsZSgpe2lmKHRoaXMubm9kZS50eXBlLnNwZWMucmVwYXJzZUluVmlldylyZXR1cm4gbnVsbDtsZXQgZT17bm9kZTp0aGlzLm5vZGUudHlwZS5uYW1lLGF0dHJzOnRoaXMubm9kZS5hdHRyc307aWYodGhpcy5ub2RlLnR5cGUud2hpdGVzcGFjZT09InByZSImJihlLnByZXNlcnZlV2hpdGVzcGFjZT0iZnVsbCIpLCF0aGlzLmNvbnRlbnRET00pZS5nZXRDb250ZW50PSgpPT50aGlzLm5vZGUuY29udGVudDtlbHNlIGlmKCF0aGlzLmNvbnRlbnRMb3N0KWUuY29udGVudEVsZW1lbnQ9dGhpcy5jb250ZW50RE9NO2Vsc2V7Zm9yKGxldCB0PXRoaXMuY2hpbGRyZW4ubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuY2hpbGRyZW5bdF07aWYodGhpcy5kb20uY29udGFpbnMoYS5kb20ucGFyZW50Tm9kZSkpe2UuY29udGVudEVsZW1lbnQ9YS5kb20ucGFyZW50Tm9kZTticmVha319ZS5jb250ZW50RWxlbWVudHx8KGUuZ2V0Q29udGVudD0oKT0+cnQuZW1wdHkpfXJldHVybiBlfW1hdGNoZXNOb2RlKGUsdCxhKXtyZXR1cm4gdGhpcy5kaXJ0eT09SGMmJmUuZXEodGhpcy5ub2RlKSYmWm5lKHQsdGhpcy5vdXRlckRlY28pJiZhLmVxKHRoaXMuaW5uZXJEZWNvKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLm5vZGUubm9kZVNpemV9Z2V0IGJvcmRlcigpe3JldHVybiB0aGlzLm5vZGUuaXNMZWFmPzA6MX11cGRhdGVDaGlsZHJlbihlLHQpe2xldCBhPXRoaXMubm9kZS5pbmxpbmVDb250ZW50LHI9dCxuPWUuY29tcG9zaW5nP3RoaXMubG9jYWxDb21wb3NpdGlvbkluZm8oZSx0KTpudWxsLG89biYmbi5wb3M+LTE/bjpudWxsLGw9biYmbi5wb3M8MCxwPW5ldyBPdHQodGhpcyxvJiZvLm5vZGUsZSk7c0thKHRoaXMubm9kZSx0aGlzLmlubmVyRGVjbywoZCx1LGMpPT57ZC5zcGVjLm1hcmtzP3Auc3luY1RvTWFya3MoZC5zcGVjLm1hcmtzLGEsZSx1KTpkLnR5cGUuc2lkZT49MCYmIWMmJnAuc3luY1RvTWFya3ModT09dGhpcy5ub2RlLmNoaWxkQ291bnQ/ZnMubm9uZTp0aGlzLm5vZGUuY2hpbGQodSkubWFya3MsYSxlLHUpLHAucGxhY2VXaWRnZXQoZCxlLHIpfSwoZCx1LGMsYik9PntwLnN5bmNUb01hcmtzKGQubWFya3MsYSxlLGIpO2xldCB2O3AuZmluZE5vZGVNYXRjaChkLHUsYyxiKXx8bCYmZS5zdGF0ZS5zZWxlY3Rpb24uZnJvbT5yJiZlLnN0YXRlLnNlbGVjdGlvbi50bzxyK2Qubm9kZVNpemUmJih2PXAuZmluZEluZGV4V2l0aENoaWxkKG4ubm9kZSkpPi0xJiZwLnVwZGF0ZU5vZGVBdChkLHUsYyx2LGUpfHxwLnVwZGF0ZU5leHROb2RlKGQsdSxjLGUsYixyKXx8cC5hZGROb2RlKGQsdSxjLGUscikscis9ZC5ub2RlU2l6ZX0pLHAuc3luY1RvTWFya3MoW10sYSxlLDApLHRoaXMubm9kZS5pc1RleHRibG9jayYmcC5hZGRUZXh0YmxvY2tIYWNrcygpLHAuZGVzdHJveVJlc3QoKSwocC5jaGFuZ2VkfHx0aGlzLmRpcnR5PT1lZykmJihvJiZ0aGlzLnByb3RlY3RMb2NhbENvbXBvc2l0aW9uKGUsbyksYXBhKHRoaXMuY29udGVudERPTSx0aGlzLmNoaWxkcmVuLGUpLEN2JiZpS2EodGhpcy5kb20pKX1sb2NhbENvbXBvc2l0aW9uSW5mbyhlLHQpe2xldHtmcm9tOmEsdG86cn09ZS5zdGF0ZS5zZWxlY3Rpb247aWYoIShlLnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIEp0KXx8YTx0fHxyPnQrdGhpcy5ub2RlLmNvbnRlbnQuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgbj1lLmlucHV0LmNvbXBvc2l0aW9uTm9kZTtpZighbnx8IXRoaXMuZG9tLmNvbnRhaW5zKG4ucGFyZW50Tm9kZSkpcmV0dXJuIG51bGw7aWYodGhpcy5ub2RlLmlubGluZUNvbnRlbnQpe2xldCBvPW4ubm9kZVZhbHVlLGw9ckthKHRoaXMubm9kZS5jb250ZW50LG8sYS10LHItdCk7cmV0dXJuIGw8MD9udWxsOntub2RlOm4scG9zOmwsdGV4dDpvfX1lbHNlIHJldHVybntub2RlOm4scG9zOi0xLHRleHQ6IiJ9fXByb3RlY3RMb2NhbENvbXBvc2l0aW9uKGUse25vZGU6dCxwb3M6YSx0ZXh0OnJ9KXtpZih0aGlzLmdldERlc2ModCkpcmV0dXJuO2xldCBuPXQ7Zm9yKDtuLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTtuPW4ucGFyZW50Tm9kZSl7Zm9yKDtuLnByZXZpb3VzU2libGluZzspbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4ucHJldmlvdXNTaWJsaW5nKTtmb3IoO24ubmV4dFNpYmxpbmc7KW4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuLm5leHRTaWJsaW5nKTtuLnBtVmlld0Rlc2MmJihuLnBtVmlld0Rlc2M9dm9pZCAwKX1sZXQgbz1uZXcgQXR0KHRoaXMsbix0LHIpO2UuaW5wdXQuY29tcG9zaXRpb25Ob2Rlcy5wdXNoKG8pLHRoaXMuY2hpbGRyZW49RnR0KHRoaXMuY2hpbGRyZW4sYSxhK3IubGVuZ3RoLGUsbyl9dXBkYXRlKGUsdCxhLHIpe3JldHVybiB0aGlzLmRpcnR5PT1BZHx8IWUuc2FtZU1hcmt1cCh0aGlzLm5vZGUpPyExOih0aGlzLnVwZGF0ZUlubmVyKGUsdCxhLHIpLCEwKX11cGRhdGVJbm5lcihlLHQsYSxyKXt0aGlzLnVwZGF0ZU91dGVyRGVjbyh0KSx0aGlzLm5vZGU9ZSx0aGlzLmlubmVyRGVjbz1hLHRoaXMuY29udGVudERPTSYmdGhpcy51cGRhdGVDaGlsZHJlbihyLHRoaXMucG9zQXRTdGFydCksdGhpcy5kaXJ0eT1IY311cGRhdGVPdXRlckRlY28oZSl7aWYoWm5lKGUsdGhpcy5vdXRlckRlY28pKXJldHVybjtsZXQgdD10aGlzLm5vZGVET00ubm9kZVR5cGUhPTEsYT10aGlzLmRvbTt0aGlzLmRvbT1zcGEodGhpcy5kb20sdGhpcy5ub2RlRE9NLFJ0dCh0aGlzLm91dGVyRGVjbyx0aGlzLm5vZGUsdCksUnR0KGUsdGhpcy5ub2RlLHQpKSx0aGlzLmRvbSE9YSYmKGEucG1WaWV3RGVzYz12b2lkIDAsdGhpcy5kb20ucG1WaWV3RGVzYz10aGlzKSx0aGlzLm91dGVyRGVjbz1lfXNlbGVjdE5vZGUoKXt0aGlzLm5vZGVET00ubm9kZVR5cGU9PTEmJih0aGlzLm5vZGVET00uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3Itc2VsZWN0ZWRub2RlIiksKHRoaXMuY29udGVudERPTXx8IXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlKSYmKHRoaXMubm9kZURPTS5kcmFnZ2FibGU9ITApKX1kZXNlbGVjdE5vZGUoKXt0aGlzLm5vZGVET00ubm9kZVR5cGU9PTEmJih0aGlzLm5vZGVET00uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3Itc2VsZWN0ZWRub2RlIiksKHRoaXMuY29udGVudERPTXx8IXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlKSYmdGhpcy5ub2RlRE9NLnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ2dhYmxlIikpfWdldCBkb21BdG9tKCl7cmV0dXJuIHRoaXMubm9kZS5pc0F0b219fTtpKHRwYSwiZG9jVmlld0Rlc2MiKTtLbmU9Y2xhc3MgcyBleHRlbmRzIERoe3N0YXRpY3tpKHRoaXMsIlRleHRWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbixvLGwpe3N1cGVyKGUsdCxhLHIsbixudWxsLG8sbCwwKX1wYXJzZVJ1bGUoKXtsZXQgZT10aGlzLm5vZGVET00ucGFyZW50Tm9kZTtmb3IoO2UmJmUhPXRoaXMuZG9tJiYhZS5wbUlzRGVjbzspZT1lLnBhcmVudE5vZGU7cmV0dXJue3NraXA6ZXx8ITB9fXVwZGF0ZShlLHQsYSxyKXtyZXR1cm4gdGhpcy5kaXJ0eT09QWR8fHRoaXMuZGlydHkhPUhjJiYhdGhpcy5pblBhcmVudCgpfHwhZS5zYW1lTWFya3VwKHRoaXMubm9kZSk/ITE6KHRoaXMudXBkYXRlT3V0ZXJEZWNvKHQpLCh0aGlzLmRpcnR5IT1IY3x8ZS50ZXh0IT10aGlzLm5vZGUudGV4dCkmJmUudGV4dCE9dGhpcy5ub2RlRE9NLm5vZGVWYWx1ZSYmKHRoaXMubm9kZURPTS5ub2RlVmFsdWU9ZS50ZXh0LHIudHJhY2tXcml0ZXM9PXRoaXMubm9kZURPTSYmKHIudHJhY2tXcml0ZXM9bnVsbCkpLHRoaXMubm9kZT1lLHRoaXMuZGlydHk9SGMsITApfWluUGFyZW50KCl7bGV0IGU9dGhpcy5wYXJlbnQuY29udGVudERPTTtmb3IobGV0IHQ9dGhpcy5ub2RlRE9NO3Q7dD10LnBhcmVudE5vZGUpaWYodD09ZSlyZXR1cm4hMDtyZXR1cm4hMX1kb21Gcm9tUG9zKGUpe3JldHVybntub2RlOnRoaXMubm9kZURPTSxvZmZzZXQ6ZX19bG9jYWxQb3NGcm9tRE9NKGUsdCxhKXtyZXR1cm4gZT09dGhpcy5ub2RlRE9NP3RoaXMucG9zQXRTdGFydCtNYXRoLm1pbih0LHRoaXMubm9kZS50ZXh0Lmxlbmd0aCk6c3VwZXIubG9jYWxQb3NGcm9tRE9NKGUsdCxhKX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gZS50eXBlIT0iY2hhcmFjdGVyRGF0YSImJmUudHlwZSE9InNlbGVjdGlvbiJ9c2xpY2UoZSx0LGEpe2xldCByPXRoaXMubm9kZS5jdXQoZSx0KSxuPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHIudGV4dCk7cmV0dXJuIG5ldyBzKHRoaXMucGFyZW50LHIsdGhpcy5vdXRlckRlY28sdGhpcy5pbm5lckRlY28sbixuLGEpfW1hcmtEaXJ0eShlLHQpe3N1cGVyLm1hcmtEaXJ0eShlLHQpLHRoaXMuZG9tIT10aGlzLm5vZGVET00mJihlPT0wfHx0PT10aGlzLm5vZGVET00ubm9kZVZhbHVlLmxlbmd0aCkmJih0aGlzLmRpcnR5PUFkKX1nZXQgZG9tQXRvbSgpe3JldHVybiExfWlzVGV4dChlKXtyZXR1cm4gdGhpcy5ub2RlLnRleHQ9PWV9fSxZbmU9Y2xhc3MgZXh0ZW5kcyB0Z3tzdGF0aWN7aSh0aGlzLCJUcmFpbGluZ0hhY2tWaWV3RGVzYyIpfXBhcnNlUnVsZSgpe3JldHVybntpZ25vcmU6ITB9fW1hdGNoZXNIYWNrKGUpe3JldHVybiB0aGlzLmRpcnR5PT1IYyYmdGhpcy5kb20ubm9kZU5hbWU9PWV9Z2V0IGRvbUF0b20oKXtyZXR1cm4hMH1nZXQgaWdub3JlRm9yQ29vcmRzKCl7cmV0dXJuIHRoaXMuZG9tLm5vZGVOYW1lPT0iSU1HIn19LE50dD1jbGFzcyBleHRlbmRzIERoe3N0YXRpY3tpKHRoaXMsIkN1c3RvbU5vZGVWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUsdCxhLHIsbixvLGwscCxkLHUpe3N1cGVyKGUsdCxhLHIsbixvLGwsZCx1KSx0aGlzLnNwZWM9cH11cGRhdGUoZSx0LGEscil7aWYodGhpcy5kaXJ0eT09QWQpcmV0dXJuITE7aWYodGhpcy5zcGVjLnVwZGF0ZSYmKHRoaXMubm9kZS50eXBlPT1lLnR5cGV8fHRoaXMuc3BlYy5tdWx0aVR5cGUpKXtsZXQgbj10aGlzLnNwZWMudXBkYXRlKGUsdCxhKTtyZXR1cm4gbiYmdGhpcy51cGRhdGVJbm5lcihlLHQsYSxyKSxufWVsc2UgcmV0dXJuIXRoaXMuY29udGVudERPTSYmIWUuaXNMZWFmPyExOnN1cGVyLnVwZGF0ZShlLHQsYSxyKX1zZWxlY3ROb2RlKCl7dGhpcy5zcGVjLnNlbGVjdE5vZGU/dGhpcy5zcGVjLnNlbGVjdE5vZGUoKTpzdXBlci5zZWxlY3ROb2RlKCl9ZGVzZWxlY3ROb2RlKCl7dGhpcy5zcGVjLmRlc2VsZWN0Tm9kZT90aGlzLnNwZWMuZGVzZWxlY3ROb2RlKCk6c3VwZXIuZGVzZWxlY3ROb2RlKCl9c2V0U2VsZWN0aW9uKGUsdCxhLHIpe3RoaXMuc3BlYy5zZXRTZWxlY3Rpb24/dGhpcy5zcGVjLnNldFNlbGVjdGlvbihlLHQsYS5yb290KTpzdXBlci5zZXRTZWxlY3Rpb24oZSx0LGEscil9ZGVzdHJveSgpe3RoaXMuc3BlYy5kZXN0cm95JiZ0aGlzLnNwZWMuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1zdG9wRXZlbnQoZSl7cmV0dXJuIHRoaXMuc3BlYy5zdG9wRXZlbnQ/dGhpcy5zcGVjLnN0b3BFdmVudChlKTohMX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gdGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uP3RoaXMuc3BlYy5pZ25vcmVNdXRhdGlvbihlKTpzdXBlci5pZ25vcmVNdXRhdGlvbihlKX19O2koYXBhLCJyZW5kZXJEZXNjcyIpO1haPWkoZnVuY3Rpb24ocyl7cyYmKHRoaXMubm9kZU5hbWU9cyl9LCJPdXRlckRlY29MZXZlbCIpO1haLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG51bGwpO2FnPVtuZXcgWFpdO2koUnR0LCJjb21wdXRlT3V0ZXJEZWNvIik7aShzcGEsInBhdGNoT3V0ZXJEZWNvIik7aShlS2EsInBhdGNoQXR0cmlidXRlcyIpO2koaXBhLCJhcHBseU91dGVyRGVjbyIpO2koWm5lLCJzYW1lT3V0ZXJEZWNvIik7aShycGEsInJtIik7T3R0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlZpZXdUcmVlVXBkYXRlciIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLmxvY2s9dCx0aGlzLnZpZXc9YSx0aGlzLmluZGV4PTAsdGhpcy5zdGFjaz1bXSx0aGlzLmNoYW5nZWQ9ITEsdGhpcy50b3A9ZSx0aGlzLnByZU1hdGNoPXRLYShlLm5vZGUuY29udGVudCxlKX1kZXN0cm95QmV0d2VlbihlLHQpe2lmKGUhPXQpe2ZvcihsZXQgYT1lO2E8dDthKyspdGhpcy50b3AuY2hpbGRyZW5bYV0uZGVzdHJveSgpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZShlLHQtZSksdGhpcy5jaGFuZ2VkPSEwfX1kZXN0cm95UmVzdCgpe3RoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCx0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGgpfXN5bmNUb01hcmtzKGUsdCxhLHIpe2xldCBuPTAsbz10aGlzLnN0YWNrLmxlbmd0aD4+MSxsPU1hdGgubWluKG8sZS5sZW5ndGgpO2Zvcig7bjxsJiYobj09by0xP3RoaXMudG9wOnRoaXMuc3RhY2tbbisxPDwxXSkubWF0Y2hlc01hcmsoZVtuXSkmJmVbbl0udHlwZS5zcGVjLnNwYW5uaW5nIT09ITE7KW4rKztmb3IoO248bzspdGhpcy5kZXN0cm95UmVzdCgpLHRoaXMudG9wLmRpcnR5PUhjLHRoaXMuaW5kZXg9dGhpcy5zdGFjay5wb3AoKSx0aGlzLnRvcD10aGlzLnN0YWNrLnBvcCgpLG8tLTtmb3IoO288ZS5sZW5ndGg7KXt0aGlzLnN0YWNrLnB1c2godGhpcy50b3AsdGhpcy5pbmRleCsxKTtsZXQgcD0tMSxkPXRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aDtyPHRoaXMucHJlTWF0Y2guaW5kZXgmJihkPU1hdGgubWluKHRoaXMuaW5kZXgrMyxkKSk7Zm9yKGxldCB1PXRoaXMuaW5kZXg7dTxkO3UrKyl7bGV0IGM9dGhpcy50b3AuY2hpbGRyZW5bdV07aWYoYy5tYXRjaGVzTWFyayhlW29dKSYmIXRoaXMuaXNMb2NrZWQoYy5kb20pKXtwPXU7YnJlYWt9fWlmKHA+LTEpcD50aGlzLmluZGV4JiYodGhpcy5jaGFuZ2VkPSEwLHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxwKSksdGhpcy50b3A9dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleF07ZWxzZXtsZXQgdT0kdi5jcmVhdGUodGhpcy50b3AsZVtvXSx0LGEpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4LDAsdSksdGhpcy50b3A9dSx0aGlzLmNoYW5nZWQ9ITB9dGhpcy5pbmRleD0wLG8rK319ZmluZE5vZGVNYXRjaChlLHQsYSxyKXtsZXQgbj0tMSxvO2lmKHI+PXRoaXMucHJlTWF0Y2guaW5kZXgmJihvPXRoaXMucHJlTWF0Y2gubWF0Y2hlc1tyLXRoaXMucHJlTWF0Y2guaW5kZXhdKS5wYXJlbnQ9PXRoaXMudG9wJiZvLm1hdGNoZXNOb2RlKGUsdCxhKSluPXRoaXMudG9wLmNoaWxkcmVuLmluZGV4T2Yobyx0aGlzLmluZGV4KTtlbHNlIGZvcihsZXQgbD10aGlzLmluZGV4LHA9TWF0aC5taW4odGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoLGwrNSk7bDxwO2wrKyl7bGV0IGQ9dGhpcy50b3AuY2hpbGRyZW5bbF07aWYoZC5tYXRjaGVzTm9kZShlLHQsYSkmJiF0aGlzLnByZU1hdGNoLm1hdGNoZWQuaGFzKGQpKXtuPWw7YnJlYWt9fXJldHVybiBuPDA/ITE6KHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxuKSx0aGlzLmluZGV4KyssITApfXVwZGF0ZU5vZGVBdChlLHQsYSxyLG4pe2xldCBvPXRoaXMudG9wLmNoaWxkcmVuW3JdO3JldHVybiBvLmRpcnR5PT1BZCYmby5kb209PW8uY29udGVudERPTSYmKG8uZGlydHk9ZWcpLG8udXBkYXRlKGUsdCxhLG4pPyh0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsciksdGhpcy5pbmRleCsrLCEwKTohMX1maW5kSW5kZXhXaXRoQ2hpbGQoZSl7Zm9yKDs7KXtsZXQgdD1lLnBhcmVudE5vZGU7aWYoIXQpcmV0dXJuLTE7aWYodD09dGhpcy50b3AuY29udGVudERPTSl7bGV0IGE9ZS5wbVZpZXdEZXNjO2lmKGEpe2ZvcihsZXQgcj10aGlzLmluZGV4O3I8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoO3IrKylpZih0aGlzLnRvcC5jaGlsZHJlbltyXT09YSlyZXR1cm4gcn1yZXR1cm4tMX1lPXR9fXVwZGF0ZU5leHROb2RlKGUsdCxhLHIsbixvKXtmb3IobGV0IGw9dGhpcy5pbmRleDtsPHRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aDtsKyspe2xldCBwPXRoaXMudG9wLmNoaWxkcmVuW2xdO2lmKHAgaW5zdGFuY2VvZiBEaCl7bGV0IGQ9dGhpcy5wcmVNYXRjaC5tYXRjaGVkLmdldChwKTtpZihkIT1udWxsJiZkIT1uKXJldHVybiExO2xldCB1PXAuZG9tLGMsYj10aGlzLmlzTG9ja2VkKHUpJiYhKGUuaXNUZXh0JiZwLm5vZGUmJnAubm9kZS5pc1RleHQmJnAubm9kZURPTS5ub2RlVmFsdWU9PWUudGV4dCYmcC5kaXJ0eSE9QWQmJlpuZSh0LHAub3V0ZXJEZWNvKSk7aWYoIWImJnAudXBkYXRlKGUsdCxhLHIpKXJldHVybiB0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsbCkscC5kb20hPXUmJih0aGlzLmNoYW5nZWQ9ITApLHRoaXMuaW5kZXgrKywhMDtpZighYiYmKGM9dGhpcy5yZWNyZWF0ZVdyYXBwZXIocCxlLHQsYSxyLG8pKSlyZXR1cm4gdGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LGwpLHRoaXMudG9wLmNoaWxkcmVuW3RoaXMuaW5kZXhdPWMsYy5jb250ZW50RE9NJiYoYy5kaXJ0eT1lZyxjLnVwZGF0ZUNoaWxkcmVuKHIsbysxKSxjLmRpcnR5PUhjKSx0aGlzLmNoYW5nZWQ9ITAsdGhpcy5pbmRleCsrLCEwO2JyZWFrfX1yZXR1cm4hMX1yZWNyZWF0ZVdyYXBwZXIoZSx0LGEscixuLG8pe2lmKGUuZGlydHl8fHQuaXNBdG9tfHwhZS5jaGlsZHJlbi5sZW5ndGh8fCFlLm5vZGUuY29udGVudC5lcSh0LmNvbnRlbnQpfHwhWm5lKGEsZS5vdXRlckRlY28pfHwhci5lcShlLmlubmVyRGVjbykpcmV0dXJuIG51bGw7bGV0IGw9RGguY3JlYXRlKHRoaXMudG9wLHQsYSxyLG4sbyk7aWYobC5jb250ZW50RE9NKXtsLmNoaWxkcmVuPWUuY2hpbGRyZW4sZS5jaGlsZHJlbj1bXTtmb3IobGV0IHAgb2YgbC5jaGlsZHJlbilwLnBhcmVudD1sfXJldHVybiBlLmRlc3Ryb3koKSxsfWFkZE5vZGUoZSx0LGEscixuKXtsZXQgbz1EaC5jcmVhdGUodGhpcy50b3AsZSx0LGEscixuKTtvLmNvbnRlbnRET00mJm8udXBkYXRlQ2hpbGRyZW4ocixuKzEpLHRoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxvKSx0aGlzLmNoYW5nZWQ9ITB9cGxhY2VXaWRnZXQoZSx0LGEpe2xldCByPXRoaXMuaW5kZXg8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoP3RoaXMudG9wLmNoaWxkcmVuW3RoaXMuaW5kZXhdOm51bGw7aWYociYmci5tYXRjaGVzV2lkZ2V0KGUpJiYoZT09ci53aWRnZXR8fCFyLndpZGdldC50eXBlLnRvRE9NLnBhcmVudE5vZGUpKXRoaXMuaW5kZXgrKztlbHNle2xldCBuPW5ldyBHbmUodGhpcy50b3AsZSx0LGEpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxuKSx0aGlzLmNoYW5nZWQ9ITB9fWFkZFRleHRibG9ja0hhY2tzKCl7bGV0IGU9dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleC0xXSx0PXRoaXMudG9wO2Zvcig7ZSBpbnN0YW5jZW9mICR2Oyl0PWUsZT10LmNoaWxkcmVuW3QuY2hpbGRyZW4ubGVuZ3RoLTFdOyghZXx8IShlIGluc3RhbmNlb2YgS25lKXx8L1xuJC8udGVzdChlLm5vZGUudGV4dCl8fHRoaXMudmlldy5yZXF1aXJlc0dlY2tvSGFja05vZGUmJi9ccyQvLnRlc3QoZS5ub2RlLnRleHQpKSYmKChsbnx8JG8pJiZlJiZlLmRvbS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSImJnRoaXMuYWRkSGFja05vZGUoIklNRyIsdCksdGhpcy5hZGRIYWNrTm9kZSgiQlIiLHRoaXMudG9wKSl9YWRkSGFja05vZGUoZSx0KXtpZih0PT10aGlzLnRvcCYmdGhpcy5pbmRleDx0LmNoaWxkcmVuLmxlbmd0aCYmdC5jaGlsZHJlblt0aGlzLmluZGV4XS5tYXRjaGVzSGFjayhlKSl0aGlzLmluZGV4Kys7ZWxzZXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO2U9PSJJTUciJiYoYS5jbGFzc05hbWU9IlByb3NlTWlycm9yLXNlcGFyYXRvciIsYS5hbHQ9IiIpLGU9PSJCUiImJihhLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3ItdHJhaWxpbmdCcmVhayIpO2xldCByPW5ldyBZbmUodGhpcy50b3AsW10sYSxudWxsKTt0IT10aGlzLnRvcD90LmNoaWxkcmVuLnB1c2gocik6dC5jaGlsZHJlbi5zcGxpY2UodGhpcy5pbmRleCsrLDAsciksdGhpcy5jaGFuZ2VkPSEwfX1pc0xvY2tlZChlKXtyZXR1cm4gdGhpcy5sb2NrJiYoZT09dGhpcy5sb2NrfHxlLm5vZGVUeXBlPT0xJiZlLmNvbnRhaW5zKHRoaXMubG9jay5wYXJlbnROb2RlKSl9fTtpKHRLYSwicHJlTWF0Y2giKTtpKGFLYSwiY29tcGFyZVNpZGUiKTtpKHNLYSwiaXRlckRlY28iKTtpKGlLYSwiaW9zSGFja3MiKTtpKHJLYSwiZmluZFRleHRJbkZyYWdtZW50Iik7aShGdHQsInJlcGxhY2VOb2RlcyIpO2koQnR0LCJzZWxlY3Rpb25Gcm9tRE9NIik7aShvcGEsImVkaXRvck93bnNTZWxlY3Rpb24iKTtpKGN1LCJzZWxlY3Rpb25Ub0RPTSIpO25wYT1sbnx8JG8mJkh1YTw2MztpKGxwYSwidGVtcG9yYXJpbHlFZGl0YWJsZU5lYXIiKTtpKEh0dCwic2V0RWRpdGFibGUiKTtpKGNwYSwicmVzZXRFZGl0YWJsZSIpO2kob0thLCJyZW1vdmVDbGFzc09uU2VsZWN0aW9uQ2hhbmdlIik7aShuS2EsInNlbGVjdEN1cnNvcldyYXBwZXIiKTtpKGRwYSwic3luY05vZGVTZWxlY3Rpb24iKTtpKHVwYSwiY2xlYXJOb2RlU2VsZWN0aW9uIik7aShxdHQsInNlbGVjdGlvbkJldHdlZW4iKTtpKHBwYSwiaGFzRm9jdXNBbmRTZWxlY3Rpb24iKTtpKGhwYSwiaGFzU2VsZWN0aW9uIik7aShsS2EsImFuY2hvckluUmlnaHRQbGFjZSIpO2koanR0LCJtb3ZlU2VsZWN0aW9uQmxvY2siKTtpKExoLCJhcHBseSIpO2koZnBhLCJzZWxlY3RIb3Jpem9udGFsbHkiKTtpKFhuZSwibm9kZUxlbiIpO2koUVosImlzSWdub3JhYmxlIik7aShEdiwic2tpcElnbm9yZWROb2RlcyIpO2koY0thLCJza2lwSWdub3JlZE5vZGVzQmVmb3JlIik7aShkS2EsInNraXBJZ25vcmVkTm9kZXNBZnRlciIpO2kobXBhLCJpc0Jsb2NrTm9kZSIpO2kodUthLCJ0ZXh0Tm9kZUFmdGVyIik7aShwS2EsInRleHROb2RlQmVmb3JlIik7aShWdHQsInNldFNlbEZvY3VzIik7aShncGEsImZpbmREaXJlY3Rpb24iKTtpKGJwYSwic2VsZWN0VmVydGljYWxseSIpO2kodnBhLCJzdG9wTmF0aXZlSG9yaXpvbnRhbERlbGV0ZSIpO2koeHBhLCJzd2l0Y2hFZGl0YWJsZSIpO2koaEthLCJzYWZhcmlEb3duQXJyb3dCdWciKTtpKGZLYSwiZ2V0TW9kcyIpO2kobUthLCJjYXB0dXJlS2V5RG93biIpO2koVXR0LCJzZXJpYWxpemVGb3JDbGlwYm9hcmQiKTtpKFd0dCwicGFyc2VGcm9tQ2xpcGJvYXJkIik7Z0thPS9eKGF8YWJicnxhY3JvbnltfGJ8Y2l0ZXxjb2RlfGRlbHxlbXxpfGluc3xrYmR8bGFiZWx8b3V0cHV0fHF8cnVieXxzfHNhbXB8c3BhbnxzdHJvbmd8c3VifHN1cHx0aW1lfHV8dHR8dmFyKSQvaTtpKGJLYSwibm9ybWFsaXplU2libGluZ3MiKTtpKHlwYSwid2l0aFdyYXBwZXJzIik7aSh3cGEsImFkZFRvU2libGluZyIpO2koa3BhLCJjbG9zZVJpZ2h0Iik7aShHdHQsImNsb3NlUmFuZ2UiKTtpKFNwYSwiY2xvc2VTbGljZSIpO19wYT17dGhlYWQ6WyJ0YWJsZSJdLHRib2R5OlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sY2FwdGlvbjpbInRhYmxlIl0sY29sZ3JvdXA6WyJ0YWJsZSJdLGNvbDpbInRhYmxlIiwiY29sZ3JvdXAiXSx0cjpbInRhYmxlIiwidGJvZHkiXSx0ZDpbInRhYmxlIiwidGJvZHkiLCJ0ciJdLHRoOlsidGFibGUiLCJ0Ym9keSIsInRyIl19LE1wYT1udWxsO2koenBhLCJkZXRhY2hlZERvYyIpO0t0dD1udWxsO2kodkthLCJtYXliZVdyYXBUcnVzdGVkIik7aSh4S2EsInJlYWRIVE1MIik7aSh5S2EsInJlc3RvcmVSZXBsYWNlZFNwYWNlcyIpO2kod0thLCJhZGRDb250ZXh0Iik7JG49e30sRG49e30sa0thPXt0b3VjaHN0YXJ0OiEwLHRvdWNobW92ZTohMH0sWXR0PWNsYXNze3N0YXRpY3tpKHRoaXMsIklucHV0U3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc2hpZnRLZXk9ITEsdGhpcy5tb3VzZURvd249bnVsbCx0aGlzLmxhc3RLZXlDb2RlPW51bGwsdGhpcy5sYXN0S2V5Q29kZVRpbWU9MCx0aGlzLmxhc3RDbGljaz17dGltZTowLHg6MCx5OjAsdHlwZToiIixidXR0b246MH0sdGhpcy5sYXN0U2VsZWN0aW9uT3JpZ2luPW51bGwsdGhpcy5sYXN0U2VsZWN0aW9uVGltZT0wLHRoaXMubGFzdElPU0VudGVyPTAsdGhpcy5sYXN0SU9TRW50ZXJGYWxsYmFja1RpbWVvdXQ9LTEsdGhpcy5sYXN0Rm9jdXM9MCx0aGlzLmxhc3RUb3VjaD0wLHRoaXMubGFzdENocm9tZURlbGV0ZT0wLHRoaXMuY29tcG9zaW5nPSExLHRoaXMuY29tcG9zaXRpb25Ob2RlPW51bGwsdGhpcy5jb21wb3NpbmdUaW1lb3V0PS0xLHRoaXMuY29tcG9zaXRpb25Ob2Rlcz1bXSx0aGlzLmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LHRoaXMuY29tcG9zaXRpb25JRD0xLHRoaXMuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsdGhpcy5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPTAsdGhpcy5kb21DaGFuZ2VDb3VudD0wLHRoaXMuZXZlbnRIYW5kbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuaGlkZVNlbGVjdGlvbkd1YXJkPW51bGx9fTtpKFNLYSwiaW5pdElucHV0Iik7aShFaCwic2V0U2VsZWN0aW9uT3JpZ2luIik7aShfS2EsImRlc3Ryb3lJbnB1dCIpO2koWnR0LCJlbnN1cmVMaXN0ZW5lcnMiKTtpKFh0dCwicnVuQ3VzdG9tSGFuZGxlciIpO2koTUthLCJldmVudEJlbG9uZ3NUb1ZpZXciKTtpKHpLYSwiZGlzcGF0Y2hFdmVudCIpLERuLmtleWRvd249KHMsZSk9PntsZXQgdD1lO2lmKHMuaW5wdXQuc2hpZnRLZXk9dC5rZXlDb2RlPT0xNnx8dC5zaGlmdEtleSwhVHBhKHMsdCkmJihzLmlucHV0Lmxhc3RLZXlDb2RlPXQua2V5Q29kZSxzLmlucHV0Lmxhc3RLZXlDb2RlVGltZT1EYXRlLm5vdygpLCEobnUmJiRvJiZ0LmtleUNvZGU9PTEzKSkpaWYodC5rZXlDb2RlIT0yMjkmJnMuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLEN2JiZ0LmtleUNvZGU9PTEzJiYhdC5jdHJsS2V5JiYhdC5hbHRLZXkmJiF0Lm1ldGFLZXkpe2xldCBhPURhdGUubm93KCk7cy5pbnB1dC5sYXN0SU9TRW50ZXI9YSxzLmlucHV0Lmxhc3RJT1NFbnRlckZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgpPT57cy5pbnB1dC5sYXN0SU9TRW50ZXI9PWEmJihzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixyPT5yKHMsSjgoMTMsIkVudGVyIikpKSxzLmlucHV0Lmxhc3RJT1NFbnRlcj0wKX0sMjAwKX1lbHNlIHMuc29tZVByb3AoImhhbmRsZUtleURvd24iLGE9PmEocyx0KSl8fG1LYShzLHQpP3QucHJldmVudERlZmF1bHQoKTpFaChzLCJrZXkiKX0sRG4ua2V5dXA9KHMsZSk9PntlLmtleUNvZGU9PTE2JiYocy5pbnB1dC5zaGlmdEtleT0hMSl9LERuLmtleXByZXNzPShzLGUpPT57bGV0IHQ9ZTtpZihUcGEocyx0KXx8IXQuY2hhckNvZGV8fHQuY3RybEtleSYmIXQuYWx0S2V5fHxCYyYmdC5tZXRhS2V5KXJldHVybjtpZihzLnNvbWVQcm9wKCJoYW5kbGVLZXlQcmVzcyIscj0+cihzLHQpKSl7dC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1sZXQgYT1zLnN0YXRlLnNlbGVjdGlvbjtpZighKGEgaW5zdGFuY2VvZiBKdCl8fCFhLiRmcm9tLnNhbWVQYXJlbnQoYS4kdG8pKXtsZXQgcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGUpLG49aSgoKT0+cy5zdGF0ZS50ci5pbnNlcnRUZXh0KHIpLnNjcm9sbEludG9WaWV3KCksImRlZmx0Iik7IS9bXHJcbl0vLnRlc3QocikmJiFzLnNvbWVQcm9wKCJoYW5kbGVUZXh0SW5wdXQiLG89Pm8ocyxhLiRmcm9tLnBvcyxhLiR0by5wb3MscixuKSkmJnMuZGlzcGF0Y2gobigpKSx0LnByZXZlbnREZWZhdWx0KCl9fTtpKFFuZSwiZXZlbnRDb29yZHMiKTtpKENLYSwiaXNOZWFyIik7aShRdHQsInJ1bkhhbmRsZXJPbkNvbnRleHQiKTtpKEx2LCJ1cGRhdGVTZWxlY3Rpb24iKTtpKFRLYSwic2VsZWN0Q2xpY2tlZExlYWYiKTtpKCRLYSwic2VsZWN0Q2xpY2tlZE5vZGUiKTtpKERLYSwiaGFuZGxlU2luZ2xlQ2xpY2siKTtpKExLYSwiaGFuZGxlRG91YmxlQ2xpY2siKTtpKEVLYSwiaGFuZGxlVHJpcGxlQ2xpY2siKTtpKFBLYSwiZGVmYXVsdFRyaXBsZUNsaWNrIik7aShKdHQsImZvcmNlRE9NRmx1c2giKTtDcGE9QmM/Im1ldGFLZXkiOiJjdHJsS2V5Ijskbi5tb3VzZWRvd249KHMsZSk9PntsZXQgdD1lO3MuaW5wdXQuc2hpZnRLZXk9dC5zaGlmdEtleTtsZXQgYT1KdHQocykscj1EYXRlLm5vdygpLG49InNpbmdsZUNsaWNrIjtyLXMuaW5wdXQubGFzdENsaWNrLnRpbWU8NTAwJiZDS2EodCxzLmlucHV0Lmxhc3RDbGljaykmJiF0W0NwYV0mJnMuaW5wdXQubGFzdENsaWNrLmJ1dHRvbj09dC5idXR0b24mJihzLmlucHV0Lmxhc3RDbGljay50eXBlPT0ic2luZ2xlQ2xpY2siP249ImRvdWJsZUNsaWNrIjpzLmlucHV0Lmxhc3RDbGljay50eXBlPT0iZG91YmxlQ2xpY2siJiYobj0idHJpcGxlQ2xpY2siKSkscy5pbnB1dC5sYXN0Q2xpY2s9e3RpbWU6cix4OnQuY2xpZW50WCx5OnQuY2xpZW50WSx0eXBlOm4sYnV0dG9uOnQuYnV0dG9ufTtsZXQgbz1zLnBvc0F0Q29vcmRzKFFuZSh0KSk7byYmKG49PSJzaW5nbGVDbGljayI/KHMuaW5wdXQubW91c2VEb3duJiZzLmlucHV0Lm1vdXNlRG93bi5kb25lKCkscy5pbnB1dC5tb3VzZURvd249bmV3IGVhdChzLG8sdCwhIWEpKToobj09ImRvdWJsZUNsaWNrIj9MS2E6RUthKShzLG8ucG9zLG8uaW5zaWRlLHQpP3QucHJldmVudERlZmF1bHQoKTpFaChzLCJwb2ludGVyIikpfTtlYXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiTW91c2VEb3duIil9Y29uc3RydWN0b3IoZSx0LGEscil7dGhpcy52aWV3PWUsdGhpcy5wb3M9dCx0aGlzLmV2ZW50PWEsdGhpcy5mbHVzaGVkPXIsdGhpcy5kZWxheWVkU2VsZWN0aW9uU3luYz0hMSx0aGlzLm1pZ2h0RHJhZz1udWxsLHRoaXMuc3RhcnREb2M9ZS5zdGF0ZS5kb2MsdGhpcy5zZWxlY3ROb2RlPSEhYVtDcGFdLHRoaXMuYWxsb3dEZWZhdWx0PWEuc2hpZnRLZXk7bGV0IG4sbztpZih0Lmluc2lkZT4tMSluPWUuc3RhdGUuZG9jLm5vZGVBdCh0Lmluc2lkZSksbz10Lmluc2lkZTtlbHNle2xldCB1PWUuc3RhdGUuZG9jLnJlc29sdmUodC5wb3MpO249dS5wYXJlbnQsbz11LmRlcHRoP3UuYmVmb3JlKCk6MH1sZXQgbD1yP251bGw6YS50YXJnZXQscD1sP2UuZG9jVmlldy5uZWFyZXN0RGVzYyhsLCEwKTpudWxsO3RoaXMudGFyZ2V0PXAmJnAubm9kZURPTS5ub2RlVHlwZT09MT9wLm5vZGVET006bnVsbDtsZXR7c2VsZWN0aW9uOmR9PWUuc3RhdGU7YS5idXR0b249PTAmJihuLnR5cGUuc3BlYy5kcmFnZ2FibGUmJm4udHlwZS5zcGVjLnNlbGVjdGFibGUhPT0hMXx8ZCBpbnN0YW5jZW9mIEZ0JiZkLmZyb208PW8mJmQudG8+bykmJih0aGlzLm1pZ2h0RHJhZz17bm9kZTpuLHBvczpvLGFkZEF0dHI6ISEodGhpcy50YXJnZXQmJiF0aGlzLnRhcmdldC5kcmFnZ2FibGUpLHNldFVuZWRpdGFibGU6ISEodGhpcy50YXJnZXQmJkZjJiYhdGhpcy50YXJnZXQuaGFzQXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSl9KSx0aGlzLnRhcmdldCYmdGhpcy5taWdodERyYWcmJih0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyfHx0aGlzLm1pZ2h0RHJhZy5zZXRVbmVkaXRhYmxlKSYmKHRoaXMudmlldy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5taWdodERyYWcuYWRkQXR0ciYmKHRoaXMudGFyZ2V0LmRyYWdnYWJsZT0hMCksdGhpcy5taWdodERyYWcuc2V0VW5lZGl0YWJsZSYmc2V0VGltZW91dCgoKT0+e3RoaXMudmlldy5pbnB1dC5tb3VzZURvd249PXRoaXMmJnRoaXMudGFyZ2V0LnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwiZmFsc2UiKX0sMjApLHRoaXMudmlldy5kb21PYnNlcnZlci5zdGFydCgpKSxlLnJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy51cD10aGlzLnVwLmJpbmQodGhpcykpLGUucm9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZT10aGlzLm1vdmUuYmluZCh0aGlzKSksRWgoZSwicG9pbnRlciIpfWRvbmUoKXt0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnVwKSx0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZSksdGhpcy5taWdodERyYWcmJnRoaXMudGFyZ2V0JiYodGhpcy52aWV3LmRvbU9ic2VydmVyLnN0b3AoKSx0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyJiZ0aGlzLnRhcmdldC5yZW1vdmVBdHRyaWJ1dGUoImRyYWdnYWJsZSIpLHRoaXMubWlnaHREcmFnLnNldFVuZWRpdGFibGUmJnRoaXMudGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiksdGhpcy52aWV3LmRvbU9ic2VydmVyLnN0YXJ0KCkpLHRoaXMuZGVsYXllZFNlbGVjdGlvblN5bmMmJnNldFRpbWVvdXQoKCk9PmN1KHRoaXMudmlldykpLHRoaXMudmlldy5pbnB1dC5tb3VzZURvd249bnVsbH11cChlKXtpZih0aGlzLmRvbmUoKSwhdGhpcy52aWV3LmRvbS5jb250YWlucyhlLnRhcmdldCkpcmV0dXJuO2xldCB0PXRoaXMucG9zO3RoaXMudmlldy5zdGF0ZS5kb2MhPXRoaXMuc3RhcnREb2MmJih0PXRoaXMudmlldy5wb3NBdENvb3JkcyhRbmUoZSkpKSx0aGlzLnVwZGF0ZUFsbG93RGVmYXVsdChlKSx0aGlzLmFsbG93RGVmYXVsdHx8IXQ/RWgodGhpcy52aWV3LCJwb2ludGVyIik6REthKHRoaXMudmlldyx0LnBvcyx0Lmluc2lkZSxlLHRoaXMuc2VsZWN0Tm9kZSk/ZS5wcmV2ZW50RGVmYXVsdCgpOmUuYnV0dG9uPT0wJiYodGhpcy5mbHVzaGVkfHxsbiYmdGhpcy5taWdodERyYWcmJiF0aGlzLm1pZ2h0RHJhZy5ub2RlLmlzQXRvbXx8JG8mJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUmJk1hdGgubWluKE1hdGguYWJzKHQucG9zLXRoaXMudmlldy5zdGF0ZS5zZWxlY3Rpb24uZnJvbSksTWF0aC5hYnModC5wb3MtdGhpcy52aWV3LnN0YXRlLnNlbGVjdGlvbi50bykpPD0yKT8oTHYodGhpcy52aWV3LFF0Lm5lYXIodGhpcy52aWV3LnN0YXRlLmRvYy5yZXNvbHZlKHQucG9zKSksInBvaW50ZXIiKSxlLnByZXZlbnREZWZhdWx0KCkpOkVoKHRoaXMudmlldywicG9pbnRlciIpfW1vdmUoZSl7dGhpcy51cGRhdGVBbGxvd0RlZmF1bHQoZSksRWgodGhpcy52aWV3LCJwb2ludGVyIiksZS5idXR0b25zPT0wJiZ0aGlzLmRvbmUoKX11cGRhdGVBbGxvd0RlZmF1bHQoZSl7IXRoaXMuYWxsb3dEZWZhdWx0JiYoTWF0aC5hYnModGhpcy5ldmVudC54LWUuY2xpZW50WCk+NHx8TWF0aC5hYnModGhpcy5ldmVudC55LWUuY2xpZW50WSk+NCkmJih0aGlzLmFsbG93RGVmYXVsdD0hMCl9fTskbi50b3VjaHN0YXJ0PXM9PntzLmlucHV0Lmxhc3RUb3VjaD1EYXRlLm5vdygpLEp0dChzKSxFaChzLCJwb2ludGVyIil9LCRuLnRvdWNobW92ZT1zPT57cy5pbnB1dC5sYXN0VG91Y2g9RGF0ZS5ub3coKSxFaChzLCJwb2ludGVyIil9LCRuLmNvbnRleHRtZW51PXM9Pkp0dChzKTtpKFRwYSwiaW5Pck5lYXJDb21wb3NpdGlvbiIpO0lLYT1udT81ZTM6LTE7RG4uY29tcG9zaXRpb25zdGFydD1Ebi5jb21wb3NpdGlvbnVwZGF0ZT1zPT57aWYoIXMuY29tcG9zaW5nKXtzLmRvbU9ic2VydmVyLmZsdXNoKCk7bGV0e3N0YXRlOmV9PXMsdD1lLnNlbGVjdGlvbi4kdG87aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBKdCYmKGUuc3RvcmVkTWFya3N8fCF0LnRleHRPZmZzZXQmJnQucGFyZW50T2Zmc2V0JiZ0Lm5vZGVCZWZvcmUubWFya3Muc29tZShhPT5hLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSl8fCRvJiZxdWEmJkFLYShzKSkpcy5tYXJrQ3Vyc29yPXMuc3RhdGUuc3RvcmVkTWFya3N8fHQubWFya3MoKSxKWihzLCEwKSxzLm1hcmtDdXJzb3I9bnVsbDtlbHNlIGlmKEpaKHMsIWUuc2VsZWN0aW9uLmVtcHR5KSxGYyYmZS5zZWxlY3Rpb24uZW1wdHkmJnQucGFyZW50T2Zmc2V0JiYhdC50ZXh0T2Zmc2V0JiZ0Lm5vZGVCZWZvcmUubWFya3MubGVuZ3RoKXtsZXQgYT1zLmRvbVNlbGVjdGlvblJhbmdlKCk7Zm9yKGxldCByPWEuZm9jdXNOb2RlLG49YS5mb2N1c09mZnNldDtyJiZyLm5vZGVUeXBlPT0xJiZuIT0wOyl7bGV0IG89bjwwP3IubGFzdENoaWxkOnIuY2hpbGROb2Rlc1tuLTFdO2lmKCFvKWJyZWFrO2lmKG8ubm9kZVR5cGU9PTMpe2xldCBsPXMuZG9tU2VsZWN0aW9uKCk7bCYmbC5jb2xsYXBzZShvLG8ubm9kZVZhbHVlLmxlbmd0aCk7YnJlYWt9ZWxzZSByPW8sbj0tMX19cy5pbnB1dC5jb21wb3Npbmc9ITB9JHBhKHMsSUthKX07aShBS2EsInNlbGVjdGlvbkJlZm9yZVVuZWRpdGFibGUiKSxEbi5jb21wb3NpdGlvbmVuZD0ocyxlKT0+e3MuY29tcG9zaW5nJiYocy5pbnB1dC5jb21wb3Npbmc9ITEscy5pbnB1dC5jb21wb3NpdGlvbkVuZGVkQXQ9ZS50aW1lU3RhbXAscy5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPXMuZG9tT2JzZXJ2ZXIucGVuZGluZ1JlY29yZHMoKS5sZW5ndGg/cy5pbnB1dC5jb21wb3NpdGlvbklEOjAscy5pbnB1dC5jb21wb3NpdGlvbk5vZGU9bnVsbCxzLmlucHV0LmJhZFNhZmFyaUNvbXBvc2l0aW9uP3MuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpOnMuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlcyYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+cy5kb21PYnNlcnZlci5mbHVzaCgpKSxzLmlucHV0LmNvbXBvc2l0aW9uSUQrKywkcGEocywyMCkpfTtpKCRwYSwic2NoZWR1bGVDb21wb3NlRW5kIik7aShEcGEsImNsZWFyQ29tcG9zaXRpb24iKTtpKE5LYSwiZmluZENvbXBvc2l0aW9uTm9kZSIpO2koUkthLCJ0aW1lc3RhbXBGcm9tQ3VzdG9tRXZlbnQiKTtpKEpaLCJlbmRDb21wb3NpdGlvbiIpO2koT0thLCJjYXB0dXJlQ29weSIpO2VYPUNsJiZUaDwxNXx8Q3YmJk9HYTw2MDQ7JG4uY29weT1Ebi5jdXQ9KHMsZSk9PntsZXQgdD1lLGE9cy5zdGF0ZS5zZWxlY3Rpb24scj10LnR5cGU9PSJjdXQiO2lmKGEuZW1wdHkpcmV0dXJuO2xldCBuPWVYP251bGw6dC5jbGlwYm9hcmREYXRhLG89YS5jb250ZW50KCkse2RvbTpsLHRleHQ6cH09VXR0KHMsbyk7bj8odC5wcmV2ZW50RGVmYXVsdCgpLG4uY2xlYXJEYXRhKCksbi5zZXREYXRhKCJ0ZXh0L2h0bWwiLGwuaW5uZXJIVE1MKSxuLnNldERhdGEoInRleHQvcGxhaW4iLHApKTpPS2EocyxsKSxyJiZzLmRpc3BhdGNoKHMuc3RhdGUudHIuZGVsZXRlU2VsZWN0aW9uKCkuc2Nyb2xsSW50b1ZpZXcoKS5zZXRNZXRhKCJ1aUV2ZW50IiwiY3V0IikpfTtpKEZLYSwic2xpY2VTaW5nbGVOb2RlIik7aShCS2EsImNhcHR1cmVQYXN0ZSIpO2kodFgsImRvUGFzdGUiKTtpKExwYSwiZ2V0VGV4dCIpLERuLnBhc3RlPShzLGUpPT57bGV0IHQ9ZTtpZihzLmNvbXBvc2luZyYmIW51KXJldHVybjtsZXQgYT1lWD9udWxsOnQuY2xpcGJvYXJkRGF0YSxyPXMuaW5wdXQuc2hpZnRLZXkmJnMuaW5wdXQubGFzdEtleUNvZGUhPTQ1O2EmJnRYKHMsTHBhKGEpLGEuZ2V0RGF0YSgidGV4dC9odG1sIikscix0KT90LnByZXZlbnREZWZhdWx0KCk6QkthKHMsdCl9O0puZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEcmFnZ2luZyIpfWNvbnN0cnVjdG9yKGUsdCxhKXt0aGlzLnNsaWNlPWUsdGhpcy5tb3ZlPXQsdGhpcy5ub2RlPWF9fSxIS2E9QmM/ImFsdEtleSI6ImN0cmxLZXkiO2koRXBhLCJkcmFnTW92ZXMiKSwkbi5kcmFnc3RhcnQ9KHMsZSk9PntsZXQgdD1lLGE9cy5pbnB1dC5tb3VzZURvd247aWYoYSYmYS5kb25lKCksIXQuZGF0YVRyYW5zZmVyKXJldHVybjtsZXQgcj1zLnN0YXRlLnNlbGVjdGlvbixuPXIuZW1wdHk/bnVsbDpzLnBvc0F0Q29vcmRzKFFuZSh0KSksbztpZighKG4mJm4ucG9zPj1yLmZyb20mJm4ucG9zPD0ociBpbnN0YW5jZW9mIEZ0P3IudG8tMTpyLnRvKSkpe2lmKGEmJmEubWlnaHREcmFnKW89RnQuY3JlYXRlKHMuc3RhdGUuZG9jLGEubWlnaHREcmFnLnBvcyk7ZWxzZSBpZih0LnRhcmdldCYmdC50YXJnZXQubm9kZVR5cGU9PTEpe2xldCBjPXMuZG9jVmlldy5uZWFyZXN0RGVzYyh0LnRhcmdldCwhMCk7YyYmYy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUmJmMhPXMuZG9jVmlldyYmKG89RnQuY3JlYXRlKHMuc3RhdGUuZG9jLGMucG9zQmVmb3JlKSl9fWxldCBsPShvfHxzLnN0YXRlLnNlbGVjdGlvbikuY29udGVudCgpLHtkb206cCx0ZXh0OmQsc2xpY2U6dX09VXR0KHMsbCk7KCF0LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGh8fCEkb3x8SHVhPjEyMCkmJnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpLHQuZGF0YVRyYW5zZmVyLnNldERhdGEoZVg/IlRleHQiOiJ0ZXh0L2h0bWwiLHAuaW5uZXJIVE1MKSx0LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJjb3B5TW92ZSIsZVh8fHQuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLGQpLHMuZHJhZ2dpbmc9bmV3IEpuZSh1LEVwYShzLHQpLG8pfSwkbi5kcmFnZW5kPXM9PntsZXQgZT1zLmRyYWdnaW5nO3dpbmRvdy5zZXRUaW1lb3V0KCgpPT57cy5kcmFnZ2luZz09ZSYmKHMuZHJhZ2dpbmc9bnVsbCl9LDUwKX0sRG4uZHJhZ292ZXI9RG4uZHJhZ2VudGVyPShzLGUpPT5lLnByZXZlbnREZWZhdWx0KCksRG4uZHJvcD0ocyxlKT0+e3RyeXtxS2EocyxlLHMuZHJhZ2dpbmcpfWZpbmFsbHl7cy5kcmFnZ2luZz1udWxsfX07aShxS2EsImhhbmRsZURyb3AiKSwkbi5mb2N1cz1zPT57cy5pbnB1dC5sYXN0Rm9jdXM9RGF0ZS5ub3coKSxzLmZvY3VzZWR8fChzLmRvbU9ic2VydmVyLnN0b3AoKSxzLmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1mb2N1c2VkIikscy5kb21PYnNlcnZlci5zdGFydCgpLHMuZm9jdXNlZD0hMCxzZXRUaW1lb3V0KCgpPT57cy5kb2NWaWV3JiZzLmhhc0ZvY3VzKCkmJiFzLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uZXEocy5kb21TZWxlY3Rpb25SYW5nZSgpKSYmY3Uocyl9LDIwKSl9LCRuLmJsdXI9KHMsZSk9PntsZXQgdD1lO3MuZm9jdXNlZCYmKHMuZG9tT2JzZXJ2ZXIuc3RvcCgpLHMuZG9tLmNsYXNzTGlzdC5yZW1vdmUoIlByb3NlTWlycm9yLWZvY3VzZWQiKSxzLmRvbU9ic2VydmVyLnN0YXJ0KCksdC5yZWxhdGVkVGFyZ2V0JiZzLmRvbS5jb250YWlucyh0LnJlbGF0ZWRUYXJnZXQpJiZzLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uY2xlYXIoKSxzLmZvY3VzZWQ9ITEpfSwkbi5iZWZvcmVpbnB1dD0ocyxlKT0+e2lmKCRvJiZudSYmZS5pbnB1dFR5cGU9PSJkZWxldGVDb250ZW50QmFja3dhcmQiKXtzLmRvbU9ic2VydmVyLmZsdXNoU29vbigpO2xldHtkb21DaGFuZ2VDb3VudDphfT1zLmlucHV0O3NldFRpbWVvdXQoKCk9PntpZihzLmlucHV0LmRvbUNoYW5nZUNvdW50IT1hfHwocy5kb20uYmx1cigpLHMuZm9jdXMoKSxzLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixuPT5uKHMsSjgoOCwiQmFja3NwYWNlIikpKSkpcmV0dXJuO2xldHskY3Vyc29yOnJ9PXMuc3RhdGUuc2VsZWN0aW9uO3ImJnIucG9zPjAmJnMuZGlzcGF0Y2gocy5zdGF0ZS50ci5kZWxldGUoci5wb3MtMSxyLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSl9LDUwKX19O2ZvcihsZXQgcyBpbiBEbikkbltzXT1EbltzXTtpKGFYLCJjb21wYXJlT2JqcyIpO2VsZT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIldpZGdldFR5cGUiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudG9ET009ZSx0aGlzLnNwZWM9dHx8aWcsdGhpcy5zaWRlPXRoaXMuc3BlYy5zaWRlfHwwfW1hcChlLHQsYSxyKXtsZXR7cG9zOm4sZGVsZXRlZDpvfT1lLm1hcFJlc3VsdCh0LmZyb20rcix0aGlzLnNpZGU8MD8tMToxKTtyZXR1cm4gbz9udWxsOm5ldyB0MihuLWEsbi1hLHRoaXMpfXZhbGlkKCl7cmV0dXJuITB9ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fGUgaW5zdGFuY2VvZiBzJiYodGhpcy5zcGVjLmtleSYmdGhpcy5zcGVjLmtleT09ZS5zcGVjLmtleXx8dGhpcy50b0RPTT09ZS50b0RPTSYmYVgodGhpcy5zcGVjLGUuc3BlYykpfWRlc3Ryb3koZSl7dGhpcy5zcGVjLmRlc3Ryb3kmJnRoaXMuc3BlYy5kZXN0cm95KGUpfX0sc2c9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJJbmxpbmVUeXBlIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmF0dHJzPWUsdGhpcy5zcGVjPXR8fGlnfW1hcChlLHQsYSxyKXtsZXQgbj1lLm1hcCh0LmZyb20rcix0aGlzLnNwZWMuaW5jbHVzaXZlU3RhcnQ/LTE6MSktYSxvPWUubWFwKHQudG8rcix0aGlzLnNwZWMuaW5jbHVzaXZlRW5kPzE6LTEpLWE7cmV0dXJuIG4+PW8/bnVsbDpuZXcgdDIobixvLHRoaXMpfXZhbGlkKGUsdCl7cmV0dXJuIHQuZnJvbTx0LnRvfWVxKGUpe3JldHVybiB0aGlzPT1lfHxlIGluc3RhbmNlb2YgcyYmYVgodGhpcy5hdHRycyxlLmF0dHJzKSYmYVgodGhpcy5zcGVjLGUuc3BlYyl9c3RhdGljIGlzKGUpe3JldHVybiBlLnR5cGUgaW5zdGFuY2VvZiBzfWRlc3Ryb3koKXt9fSx0YXQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlVHlwZSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5hdHRycz1lLHRoaXMuc3BlYz10fHxpZ31tYXAoZSx0LGEscil7bGV0IG49ZS5tYXBSZXN1bHQodC5mcm9tK3IsMSk7aWYobi5kZWxldGVkKXJldHVybiBudWxsO2xldCBvPWUubWFwUmVzdWx0KHQudG8rciwtMSk7cmV0dXJuIG8uZGVsZXRlZHx8by5wb3M8PW4ucG9zP251bGw6bmV3IHQyKG4ucG9zLWEsby5wb3MtYSx0aGlzKX12YWxpZChlLHQpe2xldHtpbmRleDphLG9mZnNldDpyfT1lLmNvbnRlbnQuZmluZEluZGV4KHQuZnJvbSksbjtyZXR1cm4gcj09dC5mcm9tJiYhKG49ZS5jaGlsZChhKSkuaXNUZXh0JiZyK24ubm9kZVNpemU9PXQudG99ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fGUgaW5zdGFuY2VvZiBzJiZhWCh0aGlzLmF0dHJzLGUuYXR0cnMpJiZhWCh0aGlzLnNwZWMsZS5zcGVjKX1kZXN0cm95KCl7fX0sdDI9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEZWNvcmF0aW9uIil9Y29uc3RydWN0b3IoZSx0LGEpe3RoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLnR5cGU9YX1jb3B5KGUsdCl7cmV0dXJuIG5ldyBzKGUsdCx0aGlzLnR5cGUpfWVxKGUsdD0wKXtyZXR1cm4gdGhpcy50eXBlLmVxKGUudHlwZSkmJnRoaXMuZnJvbSt0PT1lLmZyb20mJnRoaXMudG8rdD09ZS50b31tYXAoZSx0LGEpe3JldHVybiB0aGlzLnR5cGUubWFwKGUsdGhpcyx0LGEpfXN0YXRpYyB3aWRnZXQoZSx0LGEpe3JldHVybiBuZXcgcyhlLGUsbmV3IGVsZSh0LGEpKX1zdGF0aWMgaW5saW5lKGUsdCxhLHIpe3JldHVybiBuZXcgcyhlLHQsbmV3IHNnKGEscikpfXN0YXRpYyBub2RlKGUsdCxhLHIpe3JldHVybiBuZXcgcyhlLHQsbmV3IHRhdChhLHIpKX1nZXQgc3BlYygpe3JldHVybiB0aGlzLnR5cGUuc3BlY31nZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMudHlwZSBpbnN0YW5jZW9mIHNnfWdldCB3aWRnZXQoKXtyZXR1cm4gdGhpcy50eXBlIGluc3RhbmNlb2YgZWxlfX0sRXY9W10saWc9e30sTG49Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEZWNvcmF0aW9uU2V0Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmxvY2FsPWUubGVuZ3RoP2U6RXYsdGhpcy5jaGlsZHJlbj10Lmxlbmd0aD90OkV2fXN0YXRpYyBjcmVhdGUoZSx0KXtyZXR1cm4gdC5sZW5ndGg/YWxlKHQsZSwwLGlnKTpjbn1maW5kKGUsdCxhKXtsZXQgcj1bXTtyZXR1cm4gdGhpcy5maW5kSW5uZXIoZT8/MCx0Pz8xZTksciwwLGEpLHJ9ZmluZElubmVyKGUsdCxhLHIsbil7Zm9yKGxldCBvPTA7bzx0aGlzLmxvY2FsLmxlbmd0aDtvKyspe2xldCBsPXRoaXMubG9jYWxbb107bC5mcm9tPD10JiZsLnRvPj1lJiYoIW58fG4obC5zcGVjKSkmJmEucHVzaChsLmNvcHkobC5mcm9tK3IsbC50bytyKSl9Zm9yKGxldCBvPTA7bzx0aGlzLmNoaWxkcmVuLmxlbmd0aDtvKz0zKWlmKHRoaXMuY2hpbGRyZW5bb108dCYmdGhpcy5jaGlsZHJlbltvKzFdPmUpe2xldCBsPXRoaXMuY2hpbGRyZW5bb10rMTt0aGlzLmNoaWxkcmVuW28rMl0uZmluZElubmVyKGUtbCx0LWwsYSxyK2wsbil9fW1hcChlLHQsYSl7cmV0dXJuIHRoaXM9PWNufHxlLm1hcHMubGVuZ3RoPT0wP3RoaXM6dGhpcy5tYXBJbm5lcihlLHQsMCwwLGF8fGlnKX1tYXBJbm5lcihlLHQsYSxyLG4pe2xldCBvO2ZvcihsZXQgbD0wO2w8dGhpcy5sb2NhbC5sZW5ndGg7bCsrKXtsZXQgcD10aGlzLmxvY2FsW2xdLm1hcChlLGEscik7cCYmcC50eXBlLnZhbGlkKHQscCk/KG98fChvPVtdKSkucHVzaChwKTpuLm9uUmVtb3ZlJiZuLm9uUmVtb3ZlKHRoaXMubG9jYWxbbF0uc3BlYyl9cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoP2pLYSh0aGlzLmNoaWxkcmVuLG98fFtdLGUsdCxhLHIsbik6bz9uZXcgcyhvLnNvcnQocmcpLEV2KTpjbn1hZGQoZSx0KXtyZXR1cm4gdC5sZW5ndGg/dGhpcz09Y24/cy5jcmVhdGUoZSx0KTp0aGlzLmFkZElubmVyKGUsdCwwKTp0aGlzfWFkZElubmVyKGUsdCxhKXtsZXQgcixuPTA7ZS5mb3JFYWNoKChsLHApPT57bGV0IGQ9cCthLHU7aWYodT1JcGEodCxsLGQpKXtmb3Iocnx8KHI9dGhpcy5jaGlsZHJlbi5zbGljZSgpKTtuPHIubGVuZ3RoJiZyW25dPHA7KW4rPTM7cltuXT09cD9yW24rMl09cltuKzJdLmFkZElubmVyKGwsdSxkKzEpOnIuc3BsaWNlKG4sMCxwLHArbC5ub2RlU2l6ZSxhbGUodSxsLGQrMSxpZykpLG4rPTN9fSk7bGV0IG89UHBhKG4/QXBhKHQpOnQsLWEpO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKW9bbF0udHlwZS52YWxpZChlLG9bbF0pfHxvLnNwbGljZShsLS0sMSk7cmV0dXJuIG5ldyBzKG8ubGVuZ3RoP3RoaXMubG9jYWwuY29uY2F0KG8pLnNvcnQocmcpOnRoaXMubG9jYWwscnx8dGhpcy5jaGlsZHJlbil9cmVtb3ZlKGUpe3JldHVybiBlLmxlbmd0aD09MHx8dGhpcz09Y24/dGhpczp0aGlzLnJlbW92ZUlubmVyKGUsMCl9cmVtb3ZlSW5uZXIoZSx0KXtsZXQgYT10aGlzLmNoaWxkcmVuLHI9dGhpcy5sb2NhbDtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rPTMpe2xldCBvLGw9YVtuXSt0LHA9YVtuKzFdK3Q7Zm9yKGxldCB1PTAsYzt1PGUubGVuZ3RoO3UrKykoYz1lW3VdKSYmYy5mcm9tPmwmJmMudG88cCYmKGVbdV09bnVsbCwob3x8KG89W10pKS5wdXNoKGMpKTtpZighbyljb250aW51ZTthPT10aGlzLmNoaWxkcmVuJiYoYT10aGlzLmNoaWxkcmVuLnNsaWNlKCkpO2xldCBkPWFbbisyXS5yZW1vdmVJbm5lcihvLGwrMSk7ZCE9Y24/YVtuKzJdPWQ6KGEuc3BsaWNlKG4sMyksbi09Myl9aWYoci5sZW5ndGgpe2ZvcihsZXQgbj0wLG87bjxlLmxlbmd0aDtuKyspaWYobz1lW25dKWZvcihsZXQgbD0wO2w8ci5sZW5ndGg7bCsrKXJbbF0uZXEobyx0KSYmKHI9PXRoaXMubG9jYWwmJihyPXRoaXMubG9jYWwuc2xpY2UoKSksci5zcGxpY2UobC0tLDEpKX1yZXR1cm4gYT09dGhpcy5jaGlsZHJlbiYmcj09dGhpcy5sb2NhbD90aGlzOnIubGVuZ3RofHxhLmxlbmd0aD9uZXcgcyhyLGEpOmNufWZvckNoaWxkKGUsdCl7aWYodGhpcz09Y24pcmV0dXJuIHRoaXM7aWYodC5pc0xlYWYpcmV0dXJuIHMuZW1wdHk7bGV0IGEscjtmb3IobGV0IGw9MDtsPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2wrPTMpaWYodGhpcy5jaGlsZHJlbltsXT49ZSl7dGhpcy5jaGlsZHJlbltsXT09ZSYmKGE9dGhpcy5jaGlsZHJlbltsKzJdKTticmVha31sZXQgbj1lKzEsbz1uK3QuY29udGVudC5zaXplO2ZvcihsZXQgbD0wO2w8dGhpcy5sb2NhbC5sZW5ndGg7bCsrKXtsZXQgcD10aGlzLmxvY2FsW2xdO2lmKHAuZnJvbTxvJiZwLnRvPm4mJnAudHlwZSBpbnN0YW5jZW9mIHNnKXtsZXQgZD1NYXRoLm1heChuLHAuZnJvbSktbix1PU1hdGgubWluKG8scC50byktbjtkPHUmJihyfHwocj1bXSkpLnB1c2gocC5jb3B5KGQsdSkpfX1pZihyKXtsZXQgbD1uZXcgcyhyLnNvcnQocmcpLEV2KTtyZXR1cm4gYT9uZXcgdGxlKFtsLGFdKTpsfXJldHVybiBhfHxjbn1lcShlKXtpZih0aGlzPT1lKXJldHVybiEwO2lmKCEoZSBpbnN0YW5jZW9mIHMpfHx0aGlzLmxvY2FsLmxlbmd0aCE9ZS5sb2NhbC5sZW5ndGh8fHRoaXMuY2hpbGRyZW4ubGVuZ3RoIT1lLmNoaWxkcmVuLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMubG9jYWwubGVuZ3RoO3QrKylpZighdGhpcy5sb2NhbFt0XS5lcShlLmxvY2FsW3RdKSlyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrPTMpaWYodGhpcy5jaGlsZHJlblt0XSE9ZS5jaGlsZHJlblt0XXx8dGhpcy5jaGlsZHJlblt0KzFdIT1lLmNoaWxkcmVuW3QrMV18fCF0aGlzLmNoaWxkcmVuW3QrMl0uZXEoZS5jaGlsZHJlblt0KzJdKSlyZXR1cm4hMTtyZXR1cm4hMH1sb2NhbHMoZSl7cmV0dXJuIGFhdCh0aGlzLmxvY2Fsc0lubmVyKGUpKX1sb2NhbHNJbm5lcihlKXtpZih0aGlzPT1jbilyZXR1cm4gRXY7aWYoZS5pbmxpbmVDb250ZW50fHwhdGhpcy5sb2NhbC5zb21lKHNnLmlzKSlyZXR1cm4gdGhpcy5sb2NhbDtsZXQgdD1bXTtmb3IobGV0IGE9MDthPHRoaXMubG9jYWwubGVuZ3RoO2ErKyl0aGlzLmxvY2FsW2FdLnR5cGUgaW5zdGFuY2VvZiBzZ3x8dC5wdXNoKHRoaXMubG9jYWxbYV0pO3JldHVybiB0fWZvckVhY2hTZXQoZSl7ZSh0aGlzKX19O0xuLmVtcHR5PW5ldyBMbihbXSxbXSksTG4ucmVtb3ZlT3ZlcmxhcD1hYXQ7Y249TG4uZW1wdHksdGxlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRGVjb3JhdGlvbkdyb3VwIil9Y29uc3RydWN0b3IoZSl7dGhpcy5tZW1iZXJzPWV9bWFwKGUsdCl7bGV0IGE9dGhpcy5tZW1iZXJzLm1hcChyPT5yLm1hcChlLHQsaWcpKTtyZXR1cm4gcy5mcm9tKGEpfWZvckNoaWxkKGUsdCl7aWYodC5pc0xlYWYpcmV0dXJuIExuLmVtcHR5O2xldCBhPVtdO2ZvcihsZXQgcj0wO3I8dGhpcy5tZW1iZXJzLmxlbmd0aDtyKyspe2xldCBuPXRoaXMubWVtYmVyc1tyXS5mb3JDaGlsZChlLHQpO24hPWNuJiYobiBpbnN0YW5jZW9mIHM/YT1hLmNvbmNhdChuLm1lbWJlcnMpOmEucHVzaChuKSl9cmV0dXJuIHMuZnJvbShhKX1lcShlKXtpZighKGUgaW5zdGFuY2VvZiBzKXx8ZS5tZW1iZXJzLmxlbmd0aCE9dGhpcy5tZW1iZXJzLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMubWVtYmVycy5sZW5ndGg7dCsrKWlmKCF0aGlzLm1lbWJlcnNbdF0uZXEoZS5tZW1iZXJzW3RdKSlyZXR1cm4hMTtyZXR1cm4hMH1sb2NhbHMoZSl7bGV0IHQsYT0hMDtmb3IobGV0IHI9MDtyPHRoaXMubWVtYmVycy5sZW5ndGg7cisrKXtsZXQgbj10aGlzLm1lbWJlcnNbcl0ubG9jYWxzSW5uZXIoZSk7aWYobi5sZW5ndGgpaWYoIXQpdD1uO2Vsc2V7YSYmKHQ9dC5zbGljZSgpLGE9ITEpO2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXQucHVzaChuW29dKX19cmV0dXJuIHQ/YWF0KGE/dDp0LnNvcnQocmcpKTpFdn1zdGF0aWMgZnJvbShlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gY247Y2FzZSAxOnJldHVybiBlWzBdO2RlZmF1bHQ6cmV0dXJuIG5ldyBzKGUuZXZlcnkodD0+dCBpbnN0YW5jZW9mIExuKT9lOmUucmVkdWNlKCh0LGEpPT50LmNvbmNhdChhIGluc3RhbmNlb2YgTG4/YTphLm1lbWJlcnMpLFtdKSl9fWZvckVhY2hTZXQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLm1lbWJlcnMubGVuZ3RoO3QrKyl0aGlzLm1lbWJlcnNbdF0uZm9yRWFjaFNldChlKX19O2koakthLCJtYXBDaGlsZHJlbiIpO2koUHBhLCJtb3ZlU3BhbnMiKTtpKFZLYSwibWFwQW5kR2F0aGVyUmVtYWluaW5nRGVjb3JhdGlvbnMiKTtpKElwYSwidGFrZVNwYW5zRm9yTm9kZSIpO2koQXBhLCJ3aXRob3V0TnVsbHMiKTtpKGFsZSwiYnVpbGRUcmVlIik7aShyZywiYnlQb3MiKTtpKGFhdCwicmVtb3ZlT3ZlcmxhcCIpO2koTnBhLCJpbnNlcnRBaGVhZCIpO2koc2F0LCJ2aWV3RGVjb3JhdGlvbnMiKTtVS2E9e2NoaWxkTGlzdDohMCxjaGFyYWN0ZXJEYXRhOiEwLGNoYXJhY3RlckRhdGFPbGRWYWx1ZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZU9sZFZhbHVlOiEwLHN1YnRyZWU6ITB9LFdLYT1DbCYmVGg8PTExLGlhdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTZWxlY3Rpb25TdGF0ZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hbmNob3JOb2RlPW51bGwsdGhpcy5hbmNob3JPZmZzZXQ9MCx0aGlzLmZvY3VzTm9kZT1udWxsLHRoaXMuZm9jdXNPZmZzZXQ9MH1zZXQoZSl7dGhpcy5hbmNob3JOb2RlPWUuYW5jaG9yTm9kZSx0aGlzLmFuY2hvck9mZnNldD1lLmFuY2hvck9mZnNldCx0aGlzLmZvY3VzTm9kZT1lLmZvY3VzTm9kZSx0aGlzLmZvY3VzT2Zmc2V0PWUuZm9jdXNPZmZzZXR9Y2xlYXIoKXt0aGlzLmFuY2hvck5vZGU9dGhpcy5mb2N1c05vZGU9bnVsbH1lcShlKXtyZXR1cm4gZS5hbmNob3JOb2RlPT10aGlzLmFuY2hvck5vZGUmJmUuYW5jaG9yT2Zmc2V0PT10aGlzLmFuY2hvck9mZnNldCYmZS5mb2N1c05vZGU9PXRoaXMuZm9jdXNOb2RlJiZlLmZvY3VzT2Zmc2V0PT10aGlzLmZvY3VzT2Zmc2V0fX0scmF0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkRPTU9ic2VydmVyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnZpZXc9ZSx0aGlzLmhhbmRsZURPTUNoYW5nZT10LHRoaXMucXVldWU9W10sdGhpcy5mbHVzaGluZ1Nvb249LTEsdGhpcy5vYnNlcnZlcj1udWxsLHRoaXMuY3VycmVudFNlbGVjdGlvbj1uZXcgaWF0LHRoaXMub25DaGFyRGF0YT1udWxsLHRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzPSExLHRoaXMubGFzdENoYW5nZWRUZXh0Tm9kZT1udWxsLHRoaXMub2JzZXJ2ZXI9d2luZG93Lk11dGF0aW9uT2JzZXJ2ZXImJm5ldyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlcihhPT57Zm9yKGxldCByPTA7cjxhLmxlbmd0aDtyKyspdGhpcy5xdWV1ZS5wdXNoKGFbcl0pO0NsJiZUaDw9MTEmJmEuc29tZShyPT5yLnR5cGU9PSJjaGlsZExpc3QiJiZyLnJlbW92ZWROb2Rlcy5sZW5ndGh8fHIudHlwZT09ImNoYXJhY3RlckRhdGEiJiZyLm9sZFZhbHVlLmxlbmd0aD5yLnRhcmdldC5ub2RlVmFsdWUubGVuZ3RoKT90aGlzLmZsdXNoU29vbigpOmxuJiZlLmNvbXBvc2luZyYmYS5zb21lKHI9PnIudHlwZT09ImNoaWxkTGlzdCImJnIudGFyZ2V0Lm5vZGVOYW1lPT0iVFIiKT8oZS5pbnB1dC5iYWRTYWZhcmlDb21wb3NpdGlvbj0hMCx0aGlzLmZsdXNoU29vbigpKTp0aGlzLmZsdXNoKCl9KSxXS2EmJih0aGlzLm9uQ2hhckRhdGE9YT0+e3RoaXMucXVldWUucHVzaCh7dGFyZ2V0OmEudGFyZ2V0LHR5cGU6ImNoYXJhY3RlckRhdGEiLG9sZFZhbHVlOmEucHJldlZhbHVlfSksdGhpcy5mbHVzaFNvb24oKX0pLHRoaXMub25TZWxlY3Rpb25DaGFuZ2U9dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpfWZsdXNoU29vbigpe3RoaXMuZmx1c2hpbmdTb29uPDAmJih0aGlzLmZsdXNoaW5nU29vbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3RoaXMuZmx1c2hpbmdTb29uPS0xLHRoaXMuZmx1c2goKX0sMjApKX1mb3JjZUZsdXNoKCl7dGhpcy5mbHVzaGluZ1Nvb24+LTEmJih3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuZmx1c2hpbmdTb29uKSx0aGlzLmZsdXNoaW5nU29vbj0tMSx0aGlzLmZsdXNoKCkpfXN0YXJ0KCl7dGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIudGFrZVJlY29yZHMoKSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3LmRvbSxVS2EpKSx0aGlzLm9uQ2hhckRhdGEmJnRoaXMudmlldy5kb20uYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIix0aGlzLm9uQ2hhckRhdGEpLHRoaXMuY29ubmVjdFNlbGVjdGlvbigpfXN0b3AoKXtpZih0aGlzLm9ic2VydmVyKXtsZXQgZT10aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCk7aWYoZS5sZW5ndGgpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMucXVldWUucHVzaChlW3RdKTt3aW5kb3cuc2V0VGltZW91dCgoKT0+dGhpcy5mbHVzaCgpLDIwKX10aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKX10aGlzLm9uQ2hhckRhdGEmJnRoaXMudmlldy5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIix0aGlzLm9uQ2hhckRhdGEpLHRoaXMuZGlzY29ubmVjdFNlbGVjdGlvbigpfWNvbm5lY3RTZWxlY3Rpb24oKXt0aGlzLnZpZXcuZG9tLm93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlKX1kaXNjb25uZWN0U2VsZWN0aW9uKCl7dGhpcy52aWV3LmRvbS5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5vblNlbGVjdGlvbkNoYW5nZSl9c3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCl7dGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXM9ITAsc2V0VGltZW91dCgoKT0+dGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXM9ITEsNTApfW9uU2VsZWN0aW9uQ2hhbmdlKCl7aWYocHBhKHRoaXMudmlldykpe2lmKHRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzKXJldHVybiBjdSh0aGlzLnZpZXcpO2lmKENsJiZUaDw9MTEmJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLmVtcHR5KXtsZXQgZT10aGlzLnZpZXcuZG9tU2VsZWN0aW9uUmFuZ2UoKTtpZihlLmZvY3VzTm9kZSYmUTgoZS5mb2N1c05vZGUsZS5mb2N1c09mZnNldCxlLmFuY2hvck5vZGUsZS5hbmNob3JPZmZzZXQpKXJldHVybiB0aGlzLmZsdXNoU29vbigpfXRoaXMuZmx1c2goKX19c2V0Q3VyU2VsZWN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uLnNldCh0aGlzLnZpZXcuZG9tU2VsZWN0aW9uUmFuZ2UoKSl9aWdub3JlU2VsZWN0aW9uQ2hhbmdlKGUpe2lmKCFlLmZvY3VzTm9kZSlyZXR1cm4hMDtsZXQgdD1uZXcgU2V0LGE7Zm9yKGxldCBuPWUuZm9jdXNOb2RlO247bj16dihuKSl0LmFkZChuKTtmb3IobGV0IG49ZS5hbmNob3JOb2RlO247bj16dihuKSlpZih0LmhhcyhuKSl7YT1uO2JyZWFrfWxldCByPWEmJnRoaXMudmlldy5kb2NWaWV3Lm5lYXJlc3REZXNjKGEpO2lmKHImJnIuaWdub3JlTXV0YXRpb24oe3R5cGU6InNlbGVjdGlvbiIsdGFyZ2V0OmEubm9kZVR5cGU9PTM/YS5wYXJlbnROb2RlOmF9KSlyZXR1cm4gdGhpcy5zZXRDdXJTZWxlY3Rpb24oKSwhMH1wZW5kaW5nUmVjb3Jkcygpe2lmKHRoaXMub2JzZXJ2ZXIpZm9yKGxldCBlIG9mIHRoaXMub2JzZXJ2ZXIudGFrZVJlY29yZHMoKSl0aGlzLnF1ZXVlLnB1c2goZSk7cmV0dXJuIHRoaXMucXVldWV9Zmx1c2goKXtsZXR7dmlldzplfT10aGlzO2lmKCFlLmRvY1ZpZXd8fHRoaXMuZmx1c2hpbmdTb29uPi0xKXJldHVybjtsZXQgdD10aGlzLnBlbmRpbmdSZWNvcmRzKCk7dC5sZW5ndGgmJih0aGlzLnF1ZXVlPVtdKTtsZXQgYT1lLmRvbVNlbGVjdGlvblJhbmdlKCkscj0hdGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXMmJiF0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZXEoYSkmJnBwYShlKSYmIXRoaXMuaWdub3JlU2VsZWN0aW9uQ2hhbmdlKGEpLG49LTEsbz0tMSxsPSExLHA9W107aWYoZS5lZGl0YWJsZSlmb3IobGV0IHU9MDt1PHQubGVuZ3RoO3UrKyl7bGV0IGM9dGhpcy5yZWdpc3Rlck11dGF0aW9uKHRbdV0scCk7YyYmKG49bjwwP2MuZnJvbTpNYXRoLm1pbihjLmZyb20sbiksbz1vPDA/Yy50bzpNYXRoLm1heChjLnRvLG8pLGMudHlwZU92ZXImJihsPSEwKSl9aWYocC5zb21lKHU9PnUubm9kZU5hbWU9PSJCUiIpJiYoZS5pbnB1dC5sYXN0S2V5Q29kZT09OHx8ZS5pbnB1dC5sYXN0S2V5Q29kZT09NDYpKXtmb3IobGV0IHUgb2YgcClpZih1Lm5vZGVOYW1lPT0iQlIiJiZ1LnBhcmVudE5vZGUpe2xldCBjPXUubmV4dFNpYmxpbmc7Zm9yKDtjJiZjLm5vZGVUeXBlPT0xOyl7aWYoYy5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpe3UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh1KTticmVha31jPWMuZmlyc3RDaGlsZH19fWVsc2UgaWYoRmMmJnAubGVuZ3RoKXtsZXQgdT1wLmZpbHRlcihjPT5jLm5vZGVOYW1lPT0iQlIiKTtpZih1Lmxlbmd0aD09Mil7bGV0W2MsYl09dTtjLnBhcmVudE5vZGUmJmMucGFyZW50Tm9kZS5wYXJlbnROb2RlPT1iLnBhcmVudE5vZGU/Yi5yZW1vdmUoKTpjLnJlbW92ZSgpfWVsc2V7bGV0e2ZvY3VzTm9kZTpjfT10aGlzLmN1cnJlbnRTZWxlY3Rpb247Zm9yKGxldCBiIG9mIHUpe2xldCB2PWIucGFyZW50Tm9kZTt2JiZ2Lm5vZGVOYW1lPT0iTEkiJiYoIWN8fFlLYShlLGMpIT12KSYmYi5yZW1vdmUoKX19fWxldCBkPW51bGw7bjwwJiZyJiZlLmlucHV0Lmxhc3RGb2N1cz5EYXRlLm5vdygpLTIwMCYmTWF0aC5tYXgoZS5pbnB1dC5sYXN0VG91Y2gsZS5pbnB1dC5sYXN0Q2xpY2sudGltZSk8RGF0ZS5ub3coKS0zMDAmJlduZShhKSYmKGQ9QnR0KGUpKSYmZC5lcShRdC5uZWFyKGUuc3RhdGUuZG9jLnJlc29sdmUoMCksMSkpPyhlLmlucHV0Lmxhc3RGb2N1cz0wLGN1KGUpLHRoaXMuY3VycmVudFNlbGVjdGlvbi5zZXQoYSksZS5zY3JvbGxUb1NlbGVjdGlvbigpKToobj4tMXx8cikmJihuPi0xJiYoZS5kb2NWaWV3Lm1hcmtEaXJ0eShuLG8pLEdLYShlKSksZS5pbnB1dC5iYWRTYWZhcmlDb21wb3NpdGlvbiYmKGUuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsWkthKGUscCkpLHRoaXMuaGFuZGxlRE9NQ2hhbmdlKG4sbyxsLHApLGUuZG9jVmlldyYmZS5kb2NWaWV3LmRpcnR5P2UudXBkYXRlU3RhdGUoZS5zdGF0ZSk6dGhpcy5jdXJyZW50U2VsZWN0aW9uLmVxKGEpfHxjdShlKSx0aGlzLmN1cnJlbnRTZWxlY3Rpb24uc2V0KGEpKX1yZWdpc3Rlck11dGF0aW9uKGUsdCl7aWYodC5pbmRleE9mKGUudGFyZ2V0KT4tMSlyZXR1cm4gbnVsbDtsZXQgYT10aGlzLnZpZXcuZG9jVmlldy5uZWFyZXN0RGVzYyhlLnRhcmdldCk7aWYoZS50eXBlPT0iYXR0cmlidXRlcyImJihhPT10aGlzLnZpZXcuZG9jVmlld3x8ZS5hdHRyaWJ1dGVOYW1lPT0iY29udGVudGVkaXRhYmxlInx8ZS5hdHRyaWJ1dGVOYW1lPT0ic3R5bGUiJiYhZS5vbGRWYWx1ZSYmIWUudGFyZ2V0LmdldEF0dHJpYnV0ZSgic3R5bGUiKSl8fCFhfHxhLmlnbm9yZU11dGF0aW9uKGUpKXJldHVybiBudWxsO2lmKGUudHlwZT09ImNoaWxkTGlzdCIpe2ZvcihsZXQgdT0wO3U8ZS5hZGRlZE5vZGVzLmxlbmd0aDt1Kyspe2xldCBjPWUuYWRkZWROb2Rlc1t1XTt0LnB1c2goYyksYy5ub2RlVHlwZT09MyYmKHRoaXMubGFzdENoYW5nZWRUZXh0Tm9kZT1jKX1pZihhLmNvbnRlbnRET00mJmEuY29udGVudERPTSE9YS5kb20mJiFhLmNvbnRlbnRET00uY29udGFpbnMoZS50YXJnZXQpKXJldHVybntmcm9tOmEucG9zQmVmb3JlLHRvOmEucG9zQWZ0ZXJ9O2xldCByPWUucHJldmlvdXNTaWJsaW5nLG49ZS5uZXh0U2libGluZztpZihDbCYmVGg8PTExJiZlLmFkZGVkTm9kZXMubGVuZ3RoKWZvcihsZXQgdT0wO3U8ZS5hZGRlZE5vZGVzLmxlbmd0aDt1Kyspe2xldHtwcmV2aW91c1NpYmxpbmc6YyxuZXh0U2libGluZzpifT1lLmFkZGVkTm9kZXNbdV07KCFjfHxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUuYWRkZWROb2RlcyxjKTwwKSYmKHI9YyksKCFifHxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUuYWRkZWROb2RlcyxiKTwwKSYmKG49Yil9bGV0IG89ciYmci5wYXJlbnROb2RlPT1lLnRhcmdldD9UbyhyKSsxOjAsbD1hLmxvY2FsUG9zRnJvbURPTShlLnRhcmdldCxvLC0xKSxwPW4mJm4ucGFyZW50Tm9kZT09ZS50YXJnZXQ/VG8obik6ZS50YXJnZXQuY2hpbGROb2Rlcy5sZW5ndGgsZD1hLmxvY2FsUG9zRnJvbURPTShlLnRhcmdldCxwLDEpO3JldHVybntmcm9tOmwsdG86ZH19ZWxzZSByZXR1cm4gZS50eXBlPT0iYXR0cmlidXRlcyI/e2Zyb206YS5wb3NBdFN0YXJ0LWEuYm9yZGVyLHRvOmEucG9zQXRFbmQrYS5ib3JkZXJ9Oih0aGlzLmxhc3RDaGFuZ2VkVGV4dE5vZGU9ZS50YXJnZXQse2Zyb206YS5wb3NBdFN0YXJ0LHRvOmEucG9zQXRFbmQsdHlwZU92ZXI6ZS50YXJnZXQubm9kZVZhbHVlPT1lLm9sZFZhbHVlfSl9fSxScGE9bmV3IFdlYWtNYXAsT3BhPSExO2koR0thLCJjaGVja0NTUyIpO2koRnBhLCJyYW5nZVRvU2VsZWN0aW9uUmFuZ2UiKTtpKEtLYSwic2FmYXJpU2hhZG93U2VsZWN0aW9uUmFuZ2UiKTtpKFlLYSwiYmxvY2tQYXJlbnQiKTtpKFpLYSwiZml4VXBCYWRTYWZhcmlDb21wb3NpdGlvbiIpO2koWEthLCJwYXJzZUJldHdlZW4iKTtpKFFLYSwicnVsZUZyb21Ob2RlIik7SkthPS9eKGF8YWJicnxhY3JvbnltfGJ8YmRbaW9dfGJpZ3xicnxidXR0b258Y2l0ZXxjb2RlfGRhdGEobGlzdCk/fGRlbHxkZm58ZW18aXxpbWd8aW5zfGtiZHxsYWJlbHxtYXB8bWFya3xtZXRlcnxvdXRwdXR8cXxydWJ5fHN8c2FtcHxzbWFsbHxzcGFufHN0cm9uZ3xzdVticF18dGltZXx1fHR0fHZhcikkL2k7aShlWWEsInJlYWRET01DaGFuZ2UiKTtpKEJwYSwicmVzb2x2ZVNlbGVjdGlvbiIpO2kodFlhLCJpc01hcmtDaGFuZ2UiKTtpKGFZYSwibG9va3NMaWtlQmFja3NwYWNlIik7aShvYXQsInNraXBDbG9zaW5nQW5kT3BlbmluZyIpO2koc1lhLCJmaW5kRGlmZiIpO2koSHBhLCJpc1N1cnJvZ2F0ZVBhaXIiKTtpWWE9V3R0LHJZYT1KWixQdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFZGl0b3JWaWV3Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yb290PW51bGwsdGhpcy5mb2N1c2VkPSExLHRoaXMudHJhY2tXcml0ZXM9bnVsbCx0aGlzLm1vdW50ZWQ9ITEsdGhpcy5tYXJrQ3Vyc29yPW51bGwsdGhpcy5jdXJzb3JXcmFwcGVyPW51bGwsdGhpcy5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDAsdGhpcy5pbnB1dD1uZXcgWXR0LHRoaXMucHJldkRpcmVjdFBsdWdpbnM9W10sdGhpcy5wbHVnaW5WaWV3cz1bXSx0aGlzLnJlcXVpcmVzR2Vja29IYWNrTm9kZT0hMSx0aGlzLmRyYWdnaW5nPW51bGwsdGhpcy5fcHJvcHM9dCx0aGlzLnN0YXRlPXQuc3RhdGUsdGhpcy5kaXJlY3RQbHVnaW5zPXQucGx1Z2luc3x8W10sdGhpcy5kaXJlY3RQbHVnaW5zLmZvckVhY2goV3BhKSx0aGlzLmRpc3BhdGNoPXRoaXMuZGlzcGF0Y2guYmluZCh0aGlzKSx0aGlzLmRvbT1lJiZlLm1vdW50fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlJiYoZS5hcHBlbmRDaGlsZD9lLmFwcGVuZENoaWxkKHRoaXMuZG9tKTp0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHRoaXMuZG9tKTplLm1vdW50JiYodGhpcy5tb3VudGVkPSEwKSksdGhpcy5lZGl0YWJsZT1WcGEodGhpcyksanBhKHRoaXMpLHRoaXMubm9kZVZpZXdzPVVwYSh0aGlzKSx0aGlzLmRvY1ZpZXc9dHBhKHRoaXMuc3RhdGUuZG9jLHFwYSh0aGlzKSxzYXQodGhpcyksdGhpcy5kb20sdGhpcyksdGhpcy5kb21PYnNlcnZlcj1uZXcgcmF0KHRoaXMsKGEscixuLG8pPT5lWWEodGhpcyxhLHIsbixvKSksdGhpcy5kb21PYnNlcnZlci5zdGFydCgpLFNLYSh0aGlzKSx0aGlzLnVwZGF0ZVBsdWdpblZpZXdzKCl9Z2V0IGNvbXBvc2luZygpe3JldHVybiB0aGlzLmlucHV0LmNvbXBvc2luZ31nZXQgcHJvcHMoKXtpZih0aGlzLl9wcm9wcy5zdGF0ZSE9dGhpcy5zdGF0ZSl7bGV0IGU9dGhpcy5fcHJvcHM7dGhpcy5fcHJvcHM9e307Zm9yKGxldCB0IGluIGUpdGhpcy5fcHJvcHNbdF09ZVt0XTt0aGlzLl9wcm9wcy5zdGF0ZT10aGlzLnN0YXRlfXJldHVybiB0aGlzLl9wcm9wc311cGRhdGUoZSl7ZS5oYW5kbGVET01FdmVudHMhPXRoaXMuX3Byb3BzLmhhbmRsZURPTUV2ZW50cyYmWnR0KHRoaXMpO2xldCB0PXRoaXMuX3Byb3BzO3RoaXMuX3Byb3BzPWUsZS5wbHVnaW5zJiYoZS5wbHVnaW5zLmZvckVhY2goV3BhKSx0aGlzLmRpcmVjdFBsdWdpbnM9ZS5wbHVnaW5zKSx0aGlzLnVwZGF0ZVN0YXRlSW5uZXIoZS5zdGF0ZSx0KX1zZXRQcm9wcyhlKXtsZXQgdD17fTtmb3IobGV0IGEgaW4gdGhpcy5fcHJvcHMpdFthXT10aGlzLl9wcm9wc1thXTt0LnN0YXRlPXRoaXMuc3RhdGU7Zm9yKGxldCBhIGluIGUpdFthXT1lW2FdO3RoaXMudXBkYXRlKHQpfXVwZGF0ZVN0YXRlKGUpe3RoaXMudXBkYXRlU3RhdGVJbm5lcihlLHRoaXMuX3Byb3BzKX11cGRhdGVTdGF0ZUlubmVyKGUsdCl7dmFyIGE7bGV0IHI9dGhpcy5zdGF0ZSxuPSExLG89ITE7ZS5zdG9yZWRNYXJrcyYmdGhpcy5jb21wb3NpbmcmJihEcGEodGhpcyksbz0hMCksdGhpcy5zdGF0ZT1lO2xldCBsPXIucGx1Z2lucyE9ZS5wbHVnaW5zfHx0aGlzLl9wcm9wcy5wbHVnaW5zIT10LnBsdWdpbnM7aWYobHx8dGhpcy5fcHJvcHMucGx1Z2lucyE9dC5wbHVnaW5zfHx0aGlzLl9wcm9wcy5ub2RlVmlld3MhPXQubm9kZVZpZXdzKXtsZXQgdj1VcGEodGhpcyk7bllhKHYsdGhpcy5ub2RlVmlld3MpJiYodGhpcy5ub2RlVmlld3M9dixuPSEwKX0obHx8dC5oYW5kbGVET01FdmVudHMhPXRoaXMuX3Byb3BzLmhhbmRsZURPTUV2ZW50cykmJlp0dCh0aGlzKSx0aGlzLmVkaXRhYmxlPVZwYSh0aGlzKSxqcGEodGhpcyk7bGV0IHA9c2F0KHRoaXMpLGQ9cXBhKHRoaXMpLHU9ci5wbHVnaW5zIT1lLnBsdWdpbnMmJiFyLmRvYy5lcShlLmRvYyk/InJlc2V0IjplLnNjcm9sbFRvU2VsZWN0aW9uPnIuc2Nyb2xsVG9TZWxlY3Rpb24/InRvIHNlbGVjdGlvbiI6InByZXNlcnZlIixjPW58fCF0aGlzLmRvY1ZpZXcubWF0Y2hlc05vZGUoZS5kb2MsZCxwKTsoY3x8IWUuc2VsZWN0aW9uLmVxKHIuc2VsZWN0aW9uKSkmJihvPSEwKTtsZXQgYj11PT0icHJlc2VydmUiJiZvJiZ0aGlzLmRvbS5zdHlsZS5vdmVyZmxvd0FuY2hvcj09bnVsbCYmSEdhKHRoaXMpO2lmKG8pe3RoaXMuZG9tT2JzZXJ2ZXIuc3RvcCgpO2xldCB2PWMmJihDbHx8JG8pJiYhdGhpcy5jb21wb3NpbmcmJiFyLnNlbGVjdGlvbi5lbXB0eSYmIWUuc2VsZWN0aW9uLmVtcHR5JiZvWWEoci5zZWxlY3Rpb24sZS5zZWxlY3Rpb24pO2lmKGMpe2xldCB4PSRvP3RoaXMudHJhY2tXcml0ZXM9dGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpLmZvY3VzTm9kZTpudWxsO3RoaXMuY29tcG9zaW5nJiYodGhpcy5pbnB1dC5jb21wb3NpdGlvbk5vZGU9TkthKHRoaXMpKSwobnx8IXRoaXMuZG9jVmlldy51cGRhdGUoZS5kb2MsZCxwLHRoaXMpKSYmKHRoaXMuZG9jVmlldy51cGRhdGVPdXRlckRlY28oZCksdGhpcy5kb2NWaWV3LmRlc3Ryb3koKSx0aGlzLmRvY1ZpZXc9dHBhKGUuZG9jLGQscCx0aGlzLmRvbSx0aGlzKSkseCYmKCF0aGlzLnRyYWNrV3JpdGVzfHwhdGhpcy5kb20uY29udGFpbnModGhpcy50cmFja1dyaXRlcykpJiYodj0hMCl9dnx8ISh0aGlzLmlucHV0Lm1vdXNlRG93biYmdGhpcy5kb21PYnNlcnZlci5jdXJyZW50U2VsZWN0aW9uLmVxKHRoaXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSkmJmxLYSh0aGlzKSk/Y3UodGhpcyx2KTooZHBhKHRoaXMsZS5zZWxlY3Rpb24pLHRoaXMuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCkpLHRoaXMuZG9tT2JzZXJ2ZXIuc3RhcnQoKX10aGlzLnVwZGF0ZVBsdWdpblZpZXdzKHIpLCEoKGE9dGhpcy5kcmFnZ2luZyk9PT1udWxsfHxhPT09dm9pZCAwKSYmYS5ub2RlJiYhci5kb2MuZXEoZS5kb2MpJiZ0aGlzLnVwZGF0ZURyYWdnZWROb2RlKHRoaXMuZHJhZ2dpbmcsciksdT09InJlc2V0Ij90aGlzLmRvbS5zY3JvbGxUb3A9MDp1PT0idG8gc2VsZWN0aW9uIj90aGlzLnNjcm9sbFRvU2VsZWN0aW9uKCk6YiYmcUdhKGIpfXNjcm9sbFRvU2VsZWN0aW9uKCl7bGV0IGU9dGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpLmZvY3VzTm9kZTtpZighKCFlfHwhdGhpcy5kb20uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSkpKXtpZighdGhpcy5zb21lUHJvcCgiaGFuZGxlU2Nyb2xsVG9TZWxlY3Rpb24iLHQ9PnQodGhpcykpKWlmKHRoaXMuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgRnQpe2xldCB0PXRoaXMuZG9jVmlldy5kb21BZnRlclBvcyh0aGlzLnN0YXRlLnNlbGVjdGlvbi5mcm9tKTt0Lm5vZGVUeXBlPT0xJiZqdWEodGhpcyx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGUpfWVsc2UganVhKHRoaXMsdGhpcy5jb29yZHNBdFBvcyh0aGlzLnN0YXRlLnNlbGVjdGlvbi5oZWFkLDEpLGUpfX1kZXN0cm95UGx1Z2luVmlld3MoKXtsZXQgZTtmb3IoO2U9dGhpcy5wbHVnaW5WaWV3cy5wb3AoKTspZS5kZXN0cm95JiZlLmRlc3Ryb3koKX11cGRhdGVQbHVnaW5WaWV3cyhlKXtpZighZXx8ZS5wbHVnaW5zIT10aGlzLnN0YXRlLnBsdWdpbnN8fHRoaXMuZGlyZWN0UGx1Z2lucyE9dGhpcy5wcmV2RGlyZWN0UGx1Z2lucyl7dGhpcy5wcmV2RGlyZWN0UGx1Z2lucz10aGlzLmRpcmVjdFBsdWdpbnMsdGhpcy5kZXN0cm95UGx1Z2luVmlld3MoKTtmb3IobGV0IHQ9MDt0PHRoaXMuZGlyZWN0UGx1Z2lucy5sZW5ndGg7dCsrKXtsZXQgYT10aGlzLmRpcmVjdFBsdWdpbnNbdF07YS5zcGVjLnZpZXcmJnRoaXMucGx1Z2luVmlld3MucHVzaChhLnNwZWMudmlldyh0aGlzKSl9Zm9yKGxldCB0PTA7dDx0aGlzLnN0YXRlLnBsdWdpbnMubGVuZ3RoO3QrKyl7bGV0IGE9dGhpcy5zdGF0ZS5wbHVnaW5zW3RdO2Euc3BlYy52aWV3JiZ0aGlzLnBsdWdpblZpZXdzLnB1c2goYS5zcGVjLnZpZXcodGhpcykpfX1lbHNlIGZvcihsZXQgdD0wO3Q8dGhpcy5wbHVnaW5WaWV3cy5sZW5ndGg7dCsrKXtsZXQgYT10aGlzLnBsdWdpblZpZXdzW3RdO2EudXBkYXRlJiZhLnVwZGF0ZSh0aGlzLGUpfX11cGRhdGVEcmFnZ2VkTm9kZShlLHQpe2xldCBhPWUubm9kZSxyPS0xO2lmKGEuZnJvbTx0aGlzLnN0YXRlLmRvYy5jb250ZW50LnNpemUmJnRoaXMuc3RhdGUuZG9jLm5vZGVBdChhLmZyb20pPT1hLm5vZGUpcj1hLmZyb207ZWxzZXtsZXQgbj1hLmZyb20rKHRoaXMuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZS10LmRvYy5jb250ZW50LnNpemUpOyhuPjAmJm48dGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplJiZ0aGlzLnN0YXRlLmRvYy5ub2RlQXQobikpPT1hLm5vZGUmJihyPW4pfXRoaXMuZHJhZ2dpbmc9bmV3IEpuZShlLnNsaWNlLGUubW92ZSxyPDA/dm9pZCAwOkZ0LmNyZWF0ZSh0aGlzLnN0YXRlLmRvYyxyKSl9c29tZVByb3AoZSx0KXtsZXQgYT10aGlzLl9wcm9wcyYmdGhpcy5fcHJvcHNbZV0scjtpZihhIT1udWxsJiYocj10P3QoYSk6YSkpcmV0dXJuIHI7Zm9yKGxldCBvPTA7bzx0aGlzLmRpcmVjdFBsdWdpbnMubGVuZ3RoO28rKyl7bGV0IGw9dGhpcy5kaXJlY3RQbHVnaW5zW29dLnByb3BzW2VdO2lmKGwhPW51bGwmJihyPXQ/dChsKTpsKSlyZXR1cm4gcn1sZXQgbj10aGlzLnN0YXRlLnBsdWdpbnM7aWYobilmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7bGV0IGw9bltvXS5wcm9wc1tlXTtpZihsIT1udWxsJiYocj10P3QobCk6bCkpcmV0dXJuIHJ9fWhhc0ZvY3VzKCl7aWYoQ2wpe2xldCBlPXRoaXMucm9vdC5hY3RpdmVFbGVtZW50O2lmKGU9PXRoaXMuZG9tKXJldHVybiEwO2lmKCFlfHwhdGhpcy5kb20uY29udGFpbnMoZSkpcmV0dXJuITE7Zm9yKDtlJiZ0aGlzLmRvbSE9ZSYmdGhpcy5kb20uY29udGFpbnMoZSk7KXtpZihlLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4hMTtlPWUucGFyZW50RWxlbWVudH1yZXR1cm4hMH1yZXR1cm4gdGhpcy5yb290LmFjdGl2ZUVsZW1lbnQ9PXRoaXMuZG9tfWZvY3VzKCl7dGhpcy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5lZGl0YWJsZSYmakdhKHRoaXMuZG9tKSxjdSh0aGlzKSx0aGlzLmRvbU9ic2VydmVyLnN0YXJ0KCl9Z2V0IHJvb3QoKXtsZXQgZT10aGlzLl9yb290O2lmKGU9PW51bGwpe2ZvcihsZXQgdD10aGlzLmRvbS5wYXJlbnROb2RlO3Q7dD10LnBhcmVudE5vZGUpaWYodC5ub2RlVHlwZT09OXx8dC5ub2RlVHlwZT09MTEmJnQuaG9zdClyZXR1cm4gdC5nZXRTZWxlY3Rpb258fChPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkuZ2V0U2VsZWN0aW9uPSgpPT50Lm93bmVyRG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkpLHRoaXMuX3Jvb3Q9dH1yZXR1cm4gZXx8ZG9jdW1lbnR9dXBkYXRlUm9vdCgpe3RoaXMuX3Jvb3Q9bnVsbH1wb3NBdENvb3JkcyhlKXtyZXR1cm4gS0dhKHRoaXMsZSl9Y29vcmRzQXRQb3MoZSx0PTEpe3JldHVybiBZdWEodGhpcyxlLHQpfWRvbUF0UG9zKGUsdD0wKXtyZXR1cm4gdGhpcy5kb2NWaWV3LmRvbUZyb21Qb3MoZSx0KX1ub2RlRE9NKGUpe2xldCB0PXRoaXMuZG9jVmlldy5kZXNjQXQoZSk7cmV0dXJuIHQ/dC5ub2RlRE9NOm51bGx9cG9zQXRET00oZSx0LGE9LTEpe2xldCByPXRoaXMuZG9jVmlldy5wb3NGcm9tRE9NKGUsdCxhKTtpZihyPT1udWxsKXRocm93IG5ldyBSYW5nZUVycm9yKCJET00gcG9zaXRpb24gbm90IGluc2lkZSB0aGUgZWRpdG9yIik7cmV0dXJuIHJ9ZW5kT2ZUZXh0YmxvY2soZSx0KXtyZXR1cm4gSkdhKHRoaXMsdHx8dGhpcy5zdGF0ZSxlKX1wYXN0ZUhUTUwoZSx0KXtyZXR1cm4gdFgodGhpcywiIixlLCExLHR8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9cGFzdGVUZXh0KGUsdCl7cmV0dXJuIHRYKHRoaXMsZSxudWxsLCEwLHR8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9c2VyaWFsaXplRm9yQ2xpcGJvYXJkKGUpe3JldHVybiBVdHQodGhpcyxlKX1kZXN0cm95KCl7dGhpcy5kb2NWaWV3JiYoX0thKHRoaXMpLHRoaXMuZGVzdHJveVBsdWdpblZpZXdzKCksdGhpcy5tb3VudGVkPyh0aGlzLmRvY1ZpZXcudXBkYXRlKHRoaXMuc3RhdGUuZG9jLFtdLHNhdCh0aGlzKSx0aGlzKSx0aGlzLmRvbS50ZXh0Q29udGVudD0iIik6dGhpcy5kb20ucGFyZW50Tm9kZSYmdGhpcy5kb20ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmRvbSksdGhpcy5kb2NWaWV3LmRlc3Ryb3koKSx0aGlzLmRvY1ZpZXc9bnVsbCxMR2EoKSl9Z2V0IGlzRGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuZG9jVmlldz09bnVsbH1kaXNwYXRjaEV2ZW50KGUpe3JldHVybiB6S2EodGhpcyxlKX1kb21TZWxlY3Rpb25SYW5nZSgpe2xldCBlPXRoaXMuZG9tU2VsZWN0aW9uKCk7cmV0dXJuIGU/bG4mJnRoaXMucm9vdC5ub2RlVHlwZT09PTExJiZOR2EodGhpcy5kb20ub3duZXJEb2N1bWVudCk9PXRoaXMuZG9tJiZLS2EodGhpcyxlKXx8ZTp7Zm9jdXNOb2RlOm51bGwsZm9jdXNPZmZzZXQ6MCxhbmNob3JOb2RlOm51bGwsYW5jaG9yT2Zmc2V0OjB9fWRvbVNlbGVjdGlvbigpe3JldHVybiB0aGlzLnJvb3QuZ2V0U2VsZWN0aW9uKCl9fTtQdi5wcm90b3R5cGUuZGlzcGF0Y2g9ZnVuY3Rpb24ocyl7bGV0IGU9dGhpcy5fcHJvcHMuZGlzcGF0Y2hUcmFuc2FjdGlvbjtlP2UuY2FsbCh0aGlzLHMpOnRoaXMudXBkYXRlU3RhdGUodGhpcy5zdGF0ZS5hcHBseShzKSl9O2kocXBhLCJjb21wdXRlRG9jRGVjbyIpO2koanBhLCJ1cGRhdGVDdXJzb3JXcmFwcGVyIik7aShWcGEsImdldEVkaXRhYmxlIik7aShvWWEsInNlbGVjdGlvbkNvbnRleHRDaGFuZ2VkIik7aShVcGEsImJ1aWxkTm9kZVZpZXdzIik7aShuWWEsImNoYW5nZWROb2RlVmlld3MiKTtpKFdwYSwiY2hlY2tTdGF0ZUNvbXBvbmVudCIpfSk7dmFyIEdwYT1nKCgpPT57bmF0KCl9KTtmdW5jdGlvbiBLcGEocyl7dmFyIGU9bFlhJiZzLm1ldGFLZXkmJnMuc2hpZnRLZXkmJiFzLmN0cmxLZXkmJiFzLmFsdEtleXx8Y1lhJiZzLnNoaWZ0S2V5JiZzLmtleSYmcy5rZXkubGVuZ3RoPT0xfHxzLmtleT09IlVuaWRlbnRpZmllZCIsdD0hZSYmcy5rZXl8fChzLnNoaWZ0S2V5P3NsZTpkdSlbcy5rZXlDb2RlXXx8cy5rZXl8fCJVbmlkZW50aWZpZWQiO3JldHVybiB0PT0iRXNjIiYmKHQ9IkVzY2FwZSIpLHQ9PSJEZWwiJiYodD0iRGVsZXRlIiksdD09IkxlZnQiJiYodD0iQXJyb3dMZWZ0IiksdD09IlVwIiYmKHQ9IkFycm93VXAiKSx0PT0iUmlnaHQiJiYodD0iQXJyb3dSaWdodCIpLHQ9PSJEb3duIiYmKHQ9IkFycm93RG93biIpLHR9dmFyIGR1LHNsZSxsWWEsY1lhLERyLGlsZSxZcGE9ZygoKT0+e2R1PXs4OiJCYWNrc3BhY2UiLDk6IlRhYiIsMTA6IkVudGVyIiwxMjoiTnVtTG9jayIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ0OiJQcmludFNjcmVlbiIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsNTk6IjsiLDYxOiI9Iiw5MToiTWV0YSIsOTI6Ik1ldGEiLDEwNjoiKiIsMTA3OiIrIiwxMDg6IiwiLDEwOToiLSIsMTEwOiIuIiwxMTE6Ii8iLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwxNjA6IlNoaWZ0IiwxNjE6IlNoaWZ0IiwxNjI6IkNvbnRyb2wiLDE2MzoiQ29udHJvbCIsMTY0OiJBbHQiLDE2NToiQWx0IiwxNzM6Ii0iLDE4NjoiOyIsMTg3OiI9IiwxODg6IiwiLDE4OToiLSIsMTkwOiIuIiwxOTE6Ii8iLDE5MjoiYCIsMjE5OiJbIiwyMjA6IlxcIiwyMjE6Il0iLDIyMjoiJyJ9LHNsZT17NDg6IikiLDQ5OiIhIiw1MDoiQCIsNTE6IiMiLDUyOiIkIiw1MzoiJSIsNTQ6Il4iLDU1OiImIiw1NjoiKiIsNTc6IigiLDU5OiI6Iiw2MToiKyIsMTczOiJfIiwxODY6IjoiLDE4NzoiKyIsMTg4OiI8IiwxODk6Il8iLDE5MDoiPiIsMTkxOiI/IiwxOTI6In4iLDIxOToieyIsMjIwOiJ8IiwyMjE6In0iLDIyMjonIid9LGxZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLGNZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01TSUUgXGR8VHJpZGVudFwvKD86WzctOV18XGR7Mix9KVwuLipydjooXGQrKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KTtmb3IoRHI9MDtEcjwxMDtEcisrKWR1WzQ4K0RyXT1kdVs5NitEcl09U3RyaW5nKERyKTtmb3IoRHI9MTtEcjw9MjQ7RHIrKylkdVtEcisxMTFdPSJGIitEcjtmb3IoRHI9NjU7RHI8PTkwO0RyKyspZHVbRHJdPVN0cmluZy5mcm9tQ2hhckNvZGUoRHIrMzIpLHNsZVtEcl09U3RyaW5nLmZyb21DaGFyQ29kZShEcik7Zm9yKGlsZSBpbiBkdSlzbGUuaGFzT3duUHJvcGVydHkoaWxlKXx8KHNsZVtpbGVdPWR1W2lsZV0pO2koS3BhLCJrZXlOYW1lIil9KTtmdW5jdGlvbiBwWWEocyl7bGV0IGU9cy5zcGxpdCgvLSg/ISQpLyksdD1lW2UubGVuZ3RoLTFdO3Q9PSJTcGFjZSImJih0PSIgIik7bGV0IGEscixuLG87Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrKyl7bGV0IHA9ZVtsXTtpZigvXihjbWR8bWV0YXxtKSQvaS50ZXN0KHApKW89ITA7ZWxzZSBpZigvXmEobHQpPyQvaS50ZXN0KHApKWE9ITA7ZWxzZSBpZigvXihjfGN0cmx8Y29udHJvbCkkL2kudGVzdChwKSlyPSEwO2Vsc2UgaWYoL15zKGhpZnQpPyQvaS50ZXN0KHApKW49ITA7ZWxzZSBpZigvXm1vZCQvaS50ZXN0KHApKWRZYT9vPSEwOnI9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAiK3ApfXJldHVybiBhJiYodD0iQWx0LSIrdCksciYmKHQ9IkN0cmwtIit0KSxvJiYodD0iTWV0YS0iK3QpLG4mJih0PSJTaGlmdC0iK3QpLHR9ZnVuY3Rpb24gaFlhKHMpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCB0IGluIHMpZVtwWWEodCldPXNbdF07cmV0dXJuIGV9ZnVuY3Rpb24gbGF0KHMsZSx0PSEwKXtyZXR1cm4gZS5hbHRLZXkmJihzPSJBbHQtIitzKSxlLmN0cmxLZXkmJihzPSJDdHJsLSIrcyksZS5tZXRhS2V5JiYocz0iTWV0YS0iK3MpLHQmJmUuc2hpZnRLZXkmJihzPSJTaGlmdC0iK3MpLHN9ZnVuY3Rpb24gY2F0KHMpe3JldHVybiBuZXcgWXMoe3Byb3BzOntoYW5kbGVLZXlEb3duOnJsZShzKX19KX1mdW5jdGlvbiBybGUocyl7bGV0IGU9aFlhKHMpO3JldHVybiBmdW5jdGlvbih0LGEpe2xldCByPUtwYShhKSxuLG89ZVtsYXQocixhKV07aWYobyYmbyh0LnN0YXRlLHQuZGlzcGF0Y2gsdCkpcmV0dXJuITA7aWYoci5sZW5ndGg9PTEmJnIhPSIgIil7aWYoYS5zaGlmdEtleSl7bGV0IGw9ZVtsYXQocixhLCExKV07aWYobCYmbCh0LnN0YXRlLHQuZGlzcGF0Y2gsdCkpcmV0dXJuITB9aWYoKGEuYWx0S2V5fHxhLm1ldGFLZXl8fGEuY3RybEtleSkmJiEodVlhJiZhLmN0cmxLZXkmJmEuYWx0S2V5KSYmKG49ZHVbYS5rZXlDb2RlXSkmJm4hPXIpe2xldCBsPWVbbGF0KG4sYSldO2lmKGwmJmwodC5zdGF0ZSx0LmRpc3BhdGNoLHQpKXJldHVybiEwfX1yZXR1cm4hMX19dmFyIGRZYSx1WWEsZGF0PWcoKCk9PntZcGEoKTtydSgpO2RZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01hY3xpUChob25lfFtvYV1kKS8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLHVZYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL1dpbi8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO2kocFlhLCJub3JtYWxpemVLZXlOYW1lIik7aShoWWEsIm5vcm1hbGl6ZSIpO2kobGF0LCJtb2RpZmllcnMiKTtpKGNhdCwia2V5bWFwIik7aShybGUsImtleWRvd25IYW5kbGVyIil9KTt2YXIgWnBhPWcoKCk9PntkYXQoKX0pO3ZhciBYcGE9ZygoKT0+e19oKCl9KTt2YXIgUXBhPWcoKCk9Pnt6aCgpfSk7ZnVuY3Rpb24gSnBhKHMsZSl7bGV0eyRjdXJzb3I6dH09cy5zZWxlY3Rpb247cmV0dXJuIXR8fChlPyFlLmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIscyk6dC5wYXJlbnRPZmZzZXQ+MCk/bnVsbDp0fWZ1bmN0aW9uIGVoYShzLGUsdCl7bGV0IGE9ZS5ub2RlQmVmb3JlLHI9YSxuPWUucG9zLTE7Zm9yKDshci5pc1RleHRibG9jaztuLS0pe2lmKHIudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMTtsZXQgdT1yLmxhc3RDaGlsZDtpZighdSlyZXR1cm4hMTtyPXV9bGV0IG89ZS5ub2RlQWZ0ZXIsbD1vLHA9ZS5wb3MrMTtmb3IoOyFsLmlzVGV4dGJsb2NrO3ArKyl7aWYobC50eXBlLnNwZWMuaXNvbGF0aW5nKXJldHVybiExO2xldCB1PWwuZmlyc3RDaGlsZDtpZighdSlyZXR1cm4hMTtsPXV9bGV0IGQ9X3Yocy5kb2MsbixwLF90LmVtcHR5KTtpZighZHx8ZC5mcm9tIT1ufHxkIGluc3RhbmNlb2YgZ28mJmQuc2xpY2Uuc2l6ZT49cC1uKXJldHVybiExO2lmKHQpe2xldCB1PXMudHIuc3RlcChkKTt1LnNldFNlbGVjdGlvbihKdC5jcmVhdGUodS5kb2MsbikpLHQodS5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH1mdW5jdGlvbiBJdihzLGUsdD0hMSl7Zm9yKGxldCBhPXM7YTthPWU9PSJzdGFydCI/YS5maXJzdENoaWxkOmEubGFzdENoaWxkKXtpZihhLmlzVGV4dGJsb2NrKXJldHVybiEwO2lmKHQmJmEuY2hpbGRDb3VudCE9MSlyZXR1cm4hMX1yZXR1cm4hMX1mdW5jdGlvbiB1YXQocyl7aWYoIXMucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpZm9yKGxldCBlPXMuZGVwdGgtMTtlPj0wO2UtLSl7aWYocy5pbmRleChlKT4wKXJldHVybiBzLmRvYy5yZXNvbHZlKHMuYmVmb3JlKGUrMSkpO2lmKHMubm9kZShlKS50eXBlLnNwZWMuaXNvbGF0aW5nKWJyZWFrfXJldHVybiBudWxsfWZ1bmN0aW9uIHRoYShzLGUpe2xldHskY3Vyc29yOnR9PXMuc2VsZWN0aW9uO3JldHVybiF0fHwoZT8hZS5lbmRPZlRleHRibG9jaygiZm9yd2FyZCIscyk6dC5wYXJlbnRPZmZzZXQ8dC5wYXJlbnQuY29udGVudC5zaXplKT9udWxsOnR9ZnVuY3Rpb24gcGF0KHMpe2lmKCFzLnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nKWZvcihsZXQgZT1zLmRlcHRoLTE7ZT49MDtlLS0pe2xldCB0PXMubm9kZShlKTtpZihzLmluZGV4KGUpKzE8dC5jaGlsZENvdW50KXJldHVybiBzLmRvYy5yZXNvbHZlKHMuYWZ0ZXIoZSsxKSk7aWYodC50eXBlLnNwZWMuaXNvbGF0aW5nKWJyZWFrfXJldHVybiBudWxsfWZ1bmN0aW9uIGhhdChzKXtmb3IobGV0IGU9MDtlPHMuZWRnZUNvdW50O2UrKyl7bGV0e3R5cGU6dH09cy5lZGdlKGUpO2lmKHQuaXNUZXh0YmxvY2smJiF0Lmhhc1JlcXVpcmVkQXR0cnMoKSlyZXR1cm4gdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBhaGEocyl7cmV0dXJuKGUsdCk9PntsZXR7JGZyb206YSwkdG86cn09ZS5zZWxlY3Rpb247aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBGdCYmZS5zZWxlY3Rpb24ubm9kZS5pc0Jsb2NrKXJldHVybiFhLnBhcmVudE9mZnNldHx8IXpsKGUuZG9jLGEucG9zKT8hMToodCYmdChlLnRyLnNwbGl0KGEucG9zKS5zY3JvbGxJbnRvVmlldygpKSwhMCk7aWYoIWEuZGVwdGgpcmV0dXJuITE7bGV0IG49W10sbyxsLHA9ITEsZD0hMTtmb3IobGV0IHY9YS5kZXB0aDs7di0tKWlmKGEubm9kZSh2KS5pc0Jsb2NrKXtwPWEuZW5kKHYpPT1hLnBvcysoYS5kZXB0aC12KSxkPWEuc3RhcnQodik9PWEucG9zLShhLmRlcHRoLXYpLGw9aGF0KGEubm9kZSh2LTEpLmNvbnRlbnRNYXRjaEF0KGEuaW5kZXhBZnRlcih2LTEpKSk7bGV0IG09cyYmcyhyLnBhcmVudCxwLGEpO24udW5zaGlmdChtfHwocCYmbD97dHlwZTpsfTpudWxsKSksbz12O2JyZWFrfWVsc2V7aWYodj09MSlyZXR1cm4hMTtuLnVuc2hpZnQobnVsbCl9bGV0IHU9ZS50cjsoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBKdHx8ZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBubikmJnUuZGVsZXRlU2VsZWN0aW9uKCk7bGV0IGM9dS5tYXBwaW5nLm1hcChhLnBvcyksYj16bCh1LmRvYyxjLG4ubGVuZ3RoLG4pO2lmKGJ8fChuWzBdPWw/e3R5cGU6bH06bnVsbCxiPXpsKHUuZG9jLGMsbi5sZW5ndGgsbikpLCFiKXJldHVybiExO2lmKHUuc3BsaXQoYyxuLmxlbmd0aCxuKSwhcCYmZCYmYS5ub2RlKG8pLnR5cGUhPWwpe2xldCB2PXUubWFwcGluZy5tYXAoYS5iZWZvcmUobykpLHg9dS5kb2MucmVzb2x2ZSh2KTtsJiZhLm5vZGUoby0xKS5jYW5SZXBsYWNlV2l0aCh4LmluZGV4KCkseC5pbmRleCgpKzEsbCkmJnUuc2V0Tm9kZU1hcmt1cCh1Lm1hcHBpbmcubWFwKGEuYmVmb3JlKG8pKSxsKX1yZXR1cm4gdCYmdCh1LnNjcm9sbEludG9WaWV3KCkpLCEwfX1mdW5jdGlvbiBtWWEocyxlLHQpe2xldCBhPWUubm9kZUJlZm9yZSxyPWUubm9kZUFmdGVyLG49ZS5pbmRleCgpO3JldHVybiFhfHwhcnx8IWEudHlwZS5jb21wYXRpYmxlQ29udGVudChyLnR5cGUpPyExOiFhLmNvbnRlbnQuc2l6ZSYmZS5wYXJlbnQuY2FuUmVwbGFjZShuLTEsbik/KHQmJnQocy50ci5kZWxldGUoZS5wb3MtYS5ub2RlU2l6ZSxlLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApOiFlLnBhcmVudC5jYW5SZXBsYWNlKG4sbisxKXx8IShyLmlzVGV4dGJsb2NrfHxabChzLmRvYyxlLnBvcykpPyExOih0JiZ0KHMudHIuam9pbihlLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApfWZ1bmN0aW9uIGloYShzLGUsdCxhKXtsZXQgcj1lLm5vZGVCZWZvcmUsbj1lLm5vZGVBZnRlcixvLGwscD1yLnR5cGUuc3BlYy5pc29sYXRpbmd8fG4udHlwZS5zcGVjLmlzb2xhdGluZztpZighcCYmbVlhKHMsZSx0KSlyZXR1cm4hMDtsZXQgZD0hcCYmZS5wYXJlbnQuY2FuUmVwbGFjZShlLmluZGV4KCksZS5pbmRleCgpKzEpO2lmKGQmJihvPShsPXIuY29udGVudE1hdGNoQXQoci5jaGlsZENvdW50KSkuZmluZFdyYXBwaW5nKG4udHlwZSkpJiZsLm1hdGNoVHlwZShvWzBdfHxuLnR5cGUpLnZhbGlkRW5kKXtpZih0KXtsZXQgdj1lLnBvcytuLm5vZGVTaXplLHg9cnQuZW1wdHk7Zm9yKGxldCB5PW8ubGVuZ3RoLTE7eT49MDt5LS0peD1ydC5mcm9tKG9beV0uY3JlYXRlKG51bGwseCkpO3g9cnQuZnJvbShyLmNvcHkoeCkpO2xldCBtPXMudHIuc3RlcChuZXcgZHIoZS5wb3MtMSx2LGUucG9zLHYsbmV3IF90KHgsMSwwKSxvLmxlbmd0aCwhMCkpLGY9bS5kb2MucmVzb2x2ZSh2KzIqby5sZW5ndGgpO2Yubm9kZUFmdGVyJiZmLm5vZGVBZnRlci50eXBlPT1yLnR5cGUmJlpsKG0uZG9jLGYucG9zKSYmbS5qb2luKGYucG9zKSx0KG0uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9bGV0IHU9bi50eXBlLnNwZWMuaXNvbGF0aW5nfHxhPjAmJnA/bnVsbDpRdC5maW5kRnJvbShlLDEpLGM9dSYmdS4kZnJvbS5ibG9ja1JhbmdlKHUuJHRvKSxiPWMmJlBkKGMpO2lmKGIhPW51bGwmJmI+PWUuZGVwdGgpcmV0dXJuIHQmJnQocy50ci5saWZ0KGMsYikuc2Nyb2xsSW50b1ZpZXcoKSksITA7aWYoZCYmSXYobiwic3RhcnQiLCEwKSYmSXYociwiZW5kIikpe2xldCB2PXIseD1bXTtmb3IoO3gucHVzaCh2KSwhdi5pc1RleHRibG9jazspdj12Lmxhc3RDaGlsZDtsZXQgbT1uLGY9MTtmb3IoOyFtLmlzVGV4dGJsb2NrO209bS5maXJzdENoaWxkKWYrKztpZih2LmNhblJlcGxhY2Uodi5jaGlsZENvdW50LHYuY2hpbGRDb3VudCxtLmNvbnRlbnQpKXtpZih0KXtsZXQgeT1ydC5lbXB0eTtmb3IobGV0IHo9eC5sZW5ndGgtMTt6Pj0wO3otLSl5PXJ0LmZyb20oeFt6XS5jb3B5KHkpKTtsZXQgTT1zLnRyLnN0ZXAobmV3IGRyKGUucG9zLXgubGVuZ3RoLGUucG9zK24ubm9kZVNpemUsZS5wb3MrZixlLnBvcytuLm5vZGVTaXplLWYsbmV3IF90KHkseC5sZW5ndGgsMCksMCwhMCkpO3QoTS5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gcmhhKHMpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldCBhPWUuc2VsZWN0aW9uLHI9czwwP2EuJGZyb206YS4kdG8sbj1yLmRlcHRoO2Zvcig7ci5ub2RlKG4pLmlzSW5saW5lOyl7aWYoIW4pcmV0dXJuITE7bi0tfXJldHVybiByLm5vZGUobikuaXNUZXh0YmxvY2s/KHQmJnQoZS50ci5zZXRTZWxlY3Rpb24oSnQuY3JlYXRlKGUuZG9jLHM8MD9yLnN0YXJ0KG4pOnIuZW5kKG4pKSkpLCEwKTohMX19ZnVuY3Rpb24gU2F0KHMsZT1udWxsKXtyZXR1cm4gZnVuY3Rpb24odCxhKXtsZXR7JGZyb206ciwkdG86bn09dC5zZWxlY3Rpb24sbz1yLmJsb2NrUmFuZ2UobiksbD1vJiZLOChvLHMsZSk7cmV0dXJuIGw/KGEmJmEodC50ci53cmFwKG8sbCkuc2Nyb2xsSW50b1ZpZXcoKSksITApOiExfX1mdW5jdGlvbiBibGUocyxlPW51bGwpe3JldHVybiBmdW5jdGlvbih0LGEpe2xldCByPSExO2ZvcihsZXQgbj0wO248dC5zZWxlY3Rpb24ucmFuZ2VzLmxlbmd0aCYmIXI7bisrKXtsZXR7JGZyb206e3BvczpvfSwkdG86e3BvczpsfX09dC5zZWxlY3Rpb24ucmFuZ2VzW25dO3QuZG9jLm5vZGVzQmV0d2VlbihvLGwsKHAsZCk9PntpZihyKXJldHVybiExO2lmKCEoIXAuaXNUZXh0YmxvY2t8fHAuaGFzTWFya3VwKHMsZSkpKWlmKHAudHlwZT09cylyPSEwO2Vsc2V7bGV0IHU9dC5kb2MucmVzb2x2ZShkKSxjPXUuaW5kZXgoKTtyPXUucGFyZW50LmNhblJlcGxhY2VXaXRoKGMsYysxLHMpfX0pfWlmKCFyKXJldHVybiExO2lmKGEpe2xldCBuPXQudHI7Zm9yKGxldCBvPTA7bzx0LnNlbGVjdGlvbi5yYW5nZXMubGVuZ3RoO28rKyl7bGV0eyRmcm9tOntwb3M6bH0sJHRvOntwb3M6cH19PXQuc2VsZWN0aW9uLnJhbmdlc1tvXTtuLnNldEJsb2NrVHlwZShsLHAscyxlKX1hKG4uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9fWZ1bmN0aW9uIGdZYShzLGUsdCxhKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0eyRmcm9tOm4sJHRvOm99PWVbcl0sbD1uLmRlcHRoPT0wP3MuaW5saW5lQ29udGVudCYmcy50eXBlLmFsbG93c01hcmtUeXBlKHQpOiExO2lmKHMubm9kZXNCZXR3ZWVuKG4ucG9zLG8ucG9zLChwLGQpPT57aWYobHx8IWEmJnAuaXNBdG9tJiZwLmlzSW5saW5lJiZkPj1uLnBvcyYmZCtwLm5vZGVTaXplPD1vLnBvcylyZXR1cm4hMTtsPXAuaW5saW5lQ29udGVudCYmcC50eXBlLmFsbG93c01hcmtUeXBlKHQpfSksbClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBiWWEocyl7bGV0IGU9W107Zm9yKGxldCB0PTA7dDxzLmxlbmd0aDt0Kyspe2xldHskZnJvbTphLCR0bzpyfT1zW3RdO2EuZG9jLm5vZGVzQmV0d2VlbihhLnBvcyxyLnBvcywobixvKT0+e2lmKG4uaXNBdG9tJiZuLmNvbnRlbnQuc2l6ZSYmbi5pc0lubGluZSYmbz49YS5wb3MmJm8rbi5ub2RlU2l6ZTw9ci5wb3MpcmV0dXJuIG8rMT5hLnBvcyYmZS5wdXNoKG5ldyBYOChhLGEuZG9jLnJlc29sdmUobysxKSkpLGE9YS5kb2MucmVzb2x2ZShvKzErbi5jb250ZW50LnNpemUpLCExfSksYS5wb3M8ci5wb3MmJmUucHVzaChuZXcgWDgoYSxyKSl9cmV0dXJuIGV9ZnVuY3Rpb24gdllhKHMsZT1udWxsLHQpe2xldCBhPSh0JiZ0LnJlbW92ZVdoZW5QcmVzZW50KSE9PSExLHI9KHQmJnQuZW50ZXJJbmxpbmVBdG9tcykhPT0hMSxuPSEodCYmdC5pbmNsdWRlV2hpdGVzcGFjZSk7cmV0dXJuIGZ1bmN0aW9uKG8sbCl7bGV0e2VtcHR5OnAsJGN1cnNvcjpkLHJhbmdlczp1fT1vLnNlbGVjdGlvbjtpZihwJiYhZHx8IWdZYShvLmRvYyx1LHMscikpcmV0dXJuITE7aWYobClpZihkKXMuaXNJblNldChvLnN0b3JlZE1hcmtzfHxkLm1hcmtzKCkpP2woby50ci5yZW1vdmVTdG9yZWRNYXJrKHMpKTpsKG8udHIuYWRkU3RvcmVkTWFyayhzLmNyZWF0ZShlKSkpO2Vsc2V7bGV0IGMsYj1vLnRyO3J8fCh1PWJZYSh1KSksYT9jPSF1LnNvbWUodj0+by5kb2MucmFuZ2VIYXNNYXJrKHYuJGZyb20ucG9zLHYuJHRvLnBvcyxzKSk6Yz0hdS5ldmVyeSh2PT57bGV0IHg9ITE7cmV0dXJuIGIuZG9jLm5vZGVzQmV0d2Vlbih2LiRmcm9tLnBvcyx2LiR0by5wb3MsKG0sZix5KT0+e2lmKHgpcmV0dXJuITE7eD0hcy5pc0luU2V0KG0ubWFya3MpJiYhIXkmJnkudHlwZS5hbGxvd3NNYXJrVHlwZShzKSYmIShtLmlzVGV4dCYmL15ccyokLy50ZXN0KG0udGV4dEJldHdlZW4oTWF0aC5tYXgoMCx2LiRmcm9tLnBvcy1mKSxNYXRoLm1pbihtLm5vZGVTaXplLHYuJHRvLnBvcy1mKSkpKX0pLCF4fSk7Zm9yKGxldCB2PTA7djx1Lmxlbmd0aDt2Kyspe2xldHskZnJvbTp4LCR0bzptfT11W3ZdO2lmKCFjKWIucmVtb3ZlTWFyayh4LnBvcyxtLnBvcyxzKTtlbHNle2xldCBmPXgucG9zLHk9bS5wb3MsTT14Lm5vZGVBZnRlcix6PW0ubm9kZUJlZm9yZSxOPW4mJk0mJk0uaXNUZXh0Py9eXHMqLy5leGVjKE0udGV4dClbMF0ubGVuZ3RoOjAsQz1uJiZ6JiZ6LmlzVGV4dD8vXHMqJC8uZXhlYyh6LnRleHQpWzBdLmxlbmd0aDowO2YrTjx5JiYoZis9Tix5LT1DKSxiLmFkZE1hcmsoZix5LHMuY3JlYXRlKGUpKX19bChiLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1mdW5jdGlvbiB4WWEocyxlKXtyZXR1cm4gdD0+e2lmKCF0LmlzR2VuZXJpYylyZXR1cm4gcyh0KTtsZXQgYT1bXTtmb3IobGV0IG49MDtuPHQubWFwcGluZy5tYXBzLmxlbmd0aDtuKyspe2xldCBvPXQubWFwcGluZy5tYXBzW25dO2ZvcihsZXQgbD0wO2w8YS5sZW5ndGg7bCsrKWFbbF09by5tYXAoYVtsXSk7by5mb3JFYWNoKChsLHAsZCx1KT0+YS5wdXNoKGQsdSkpfWxldCByPVtdO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bis9Mil7bGV0IG89YVtuXSxsPWFbbisxXSxwPXQuZG9jLnJlc29sdmUobyksZD1wLnNoYXJlZERlcHRoKGwpLHU9cC5ub2RlKGQpO2ZvcihsZXQgYz1wLmluZGV4QWZ0ZXIoZCksYj1wLmFmdGVyKGQrMSk7Yjw9bDsrK2Mpe2xldCB2PXUubWF5YmVDaGlsZChjKTtpZighdilicmVhaztpZihjJiZyLmluZGV4T2YoYik9PS0xKXtsZXQgeD11LmNoaWxkKGMtMSk7eC50eXBlPT12LnR5cGUmJmUoeCx2KSYmci5wdXNoKGIpfWIrPXYubm9kZVNpemV9fXIuc29ydCgobixvKT0+bi1vKTtmb3IobGV0IG49ci5sZW5ndGgtMTtuPj0wO24tLSlabCh0LmRvYyxyW25dKSYmdC5qb2luKHJbbl0pO3ModCl9fWZ1bmN0aW9uIHlZYShzLGUpe2xldCB0PUFycmF5LmlzQXJyYXkoZSk/YT0+ZS5pbmRleE9mKGEudHlwZS5uYW1lKT4tMTplO3JldHVybihhLHIsbik9PnMoYSxyJiZ4WWEocix0KSxuKX1mdW5jdGlvbiBvbGUoLi4ucyl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxhKXtmb3IobGV0IHI9MDtyPHMubGVuZ3RoO3IrKylpZihzW3JdKGUsdCxhKSlyZXR1cm4hMDtyZXR1cm4hMX19dmFyIHNYLG5sZSxiYXQsdmF0LGxsZSxjbGUsZGxlLHhhdCx5YXQsd2F0LHVsZSxwbGUsaGxlLGZsZSxmYXQsZllhLGthdCxzaGEsbWxlLGdsZSxtYXQsb2hhLE5kLGdhdCx3WWEsa1lhLG5oYT1nKCgpPT57emgoKTtfaCgpO3J1KCk7c1g9aSgocyxlKT0+cy5zZWxlY3Rpb24uZW1wdHk/ITE6KGUmJmUocy50ci5kZWxldGVTZWxlY3Rpb24oKS5zY3JvbGxJbnRvVmlldygpKSwhMCksImRlbGV0ZVNlbGVjdGlvbiIpO2koSnBhLCJhdEJsb2NrU3RhcnQiKTtubGU9aSgocyxlLHQpPT57bGV0IGE9SnBhKHMsdCk7aWYoIWEpcmV0dXJuITE7bGV0IHI9dWF0KGEpO2lmKCFyKXtsZXQgbz1hLmJsb2NrUmFuZ2UoKSxsPW8mJlBkKG8pO3JldHVybiBsPT1udWxsPyExOihlJiZlKHMudHIubGlmdChvLGwpLnNjcm9sbEludG9WaWV3KCkpLCEwKX1sZXQgbj1yLm5vZGVCZWZvcmU7aWYoaWhhKHMscixlLC0xKSlyZXR1cm4hMDtpZihhLnBhcmVudC5jb250ZW50LnNpemU9PTAmJihJdihuLCJlbmQiKXx8RnQuaXNTZWxlY3RhYmxlKG4pKSlmb3IobGV0IG89YS5kZXB0aDs7by0tKXtsZXQgbD1fdihzLmRvYyxhLmJlZm9yZShvKSxhLmFmdGVyKG8pLF90LmVtcHR5KTtpZihsJiZsLnNsaWNlLnNpemU8bC50by1sLmZyb20pe2lmKGUpe2xldCBwPXMudHIuc3RlcChsKTtwLnNldFNlbGVjdGlvbihJdihuLCJlbmQiKT9RdC5maW5kRnJvbShwLmRvYy5yZXNvbHZlKHAubWFwcGluZy5tYXAoci5wb3MsLTEpKSwtMSk6RnQuY3JlYXRlKHAuZG9jLHIucG9zLW4ubm9kZVNpemUpKSxlKHAuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9aWYobz09MXx8YS5ub2RlKG8tMSkuY2hpbGRDb3VudD4xKWJyZWFrfXJldHVybiBuLmlzQXRvbSYmci5kZXB0aD09YS5kZXB0aC0xPyhlJiZlKHMudHIuZGVsZXRlKHIucG9zLW4ubm9kZVNpemUsci5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX0sImpvaW5CYWNrd2FyZCIpLGJhdD1pKChzLGUsdCk9PntsZXQgYT1KcGEocyx0KTtpZighYSlyZXR1cm4hMTtsZXQgcj11YXQoYSk7cmV0dXJuIHI/ZWhhKHMscixlKTohMX0sImpvaW5UZXh0YmxvY2tCYWNrd2FyZCIpLHZhdD1pKChzLGUsdCk9PntsZXQgYT10aGEocyx0KTtpZighYSlyZXR1cm4hMTtsZXQgcj1wYXQoYSk7cmV0dXJuIHI/ZWhhKHMscixlKTohMX0sImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7aShlaGEsImpvaW5UZXh0YmxvY2tzQXJvdW5kIik7aShJdiwidGV4dGJsb2NrQXQiKTtsbGU9aSgocyxlLHQpPT57bGV0eyRoZWFkOmEsZW1wdHk6cn09cy5zZWxlY3Rpb24sbj1hO2lmKCFyKXJldHVybiExO2lmKGEucGFyZW50LmlzVGV4dGJsb2NrKXtpZih0PyF0LmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIscyk6YS5wYXJlbnRPZmZzZXQ+MClyZXR1cm4hMTtuPXVhdChhKX1sZXQgbz1uJiZuLm5vZGVCZWZvcmU7cmV0dXJuIW98fCFGdC5pc1NlbGVjdGFibGUobyk/ITE6KGUmJmUocy50ci5zZXRTZWxlY3Rpb24oRnQuY3JlYXRlKHMuZG9jLG4ucG9zLW8ubm9kZVNpemUpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlQmFja3dhcmQiKTtpKHVhdCwiZmluZEN1dEJlZm9yZSIpO2kodGhhLCJhdEJsb2NrRW5kIik7Y2xlPWkoKHMsZSx0KT0+e2xldCBhPXRoYShzLHQpO2lmKCFhKXJldHVybiExO2xldCByPXBhdChhKTtpZighcilyZXR1cm4hMTtsZXQgbj1yLm5vZGVBZnRlcjtpZihpaGEocyxyLGUsMSkpcmV0dXJuITA7aWYoYS5wYXJlbnQuY29udGVudC5zaXplPT0wJiYoSXYobiwic3RhcnQiKXx8RnQuaXNTZWxlY3RhYmxlKG4pKSl7bGV0IG89X3Yocy5kb2MsYS5iZWZvcmUoKSxhLmFmdGVyKCksX3QuZW1wdHkpO2lmKG8mJm8uc2xpY2Uuc2l6ZTxvLnRvLW8uZnJvbSl7aWYoZSl7bGV0IGw9cy50ci5zdGVwKG8pO2wuc2V0U2VsZWN0aW9uKEl2KG4sInN0YXJ0Iik/UXQuZmluZEZyb20obC5kb2MucmVzb2x2ZShsLm1hcHBpbmcubWFwKHIucG9zKSksMSk6RnQuY3JlYXRlKGwuZG9jLGwubWFwcGluZy5tYXAoci5wb3MpKSksZShsLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1yZXR1cm4gbi5pc0F0b20mJnIuZGVwdGg9PWEuZGVwdGgtMT8oZSYmZShzLnRyLmRlbGV0ZShyLnBvcyxyLnBvcytuLm5vZGVTaXplKS5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9LCJqb2luRm9yd2FyZCIpLGRsZT1pKChzLGUsdCk9PntsZXR7JGhlYWQ6YSxlbXB0eTpyfT1zLnNlbGVjdGlvbixuPWE7aWYoIXIpcmV0dXJuITE7aWYoYS5wYXJlbnQuaXNUZXh0YmxvY2spe2lmKHQ/IXQuZW5kT2ZUZXh0YmxvY2soImZvcndhcmQiLHMpOmEucGFyZW50T2Zmc2V0PGEucGFyZW50LmNvbnRlbnQuc2l6ZSlyZXR1cm4hMTtuPXBhdChhKX1sZXQgbz1uJiZuLm5vZGVBZnRlcjtyZXR1cm4hb3x8IUZ0LmlzU2VsZWN0YWJsZShvKT8hMTooZSYmZShzLnRyLnNldFNlbGVjdGlvbihGdC5jcmVhdGUocy5kb2Msbi5wb3MpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlRm9yd2FyZCIpO2kocGF0LCJmaW5kQ3V0QWZ0ZXIiKTt4YXQ9aSgocyxlKT0+e2xldCB0PXMuc2VsZWN0aW9uLGE9dCBpbnN0YW5jZW9mIEZ0LHI7aWYoYSl7aWYodC5ub2RlLmlzVGV4dGJsb2NrfHwhWmwocy5kb2MsdC5mcm9tKSlyZXR1cm4hMTtyPXQuZnJvbX1lbHNlIGlmKHI9WTgocy5kb2MsdC5mcm9tLC0xKSxyPT1udWxsKXJldHVybiExO2lmKGUpe2xldCBuPXMudHIuam9pbihyKTthJiZuLnNldFNlbGVjdGlvbihGdC5jcmVhdGUobi5kb2Msci1zLmRvYy5yZXNvbHZlKHIpLm5vZGVCZWZvcmUubm9kZVNpemUpKSxlKG4uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJqb2luVXAiKSx5YXQ9aSgocyxlKT0+e2xldCB0PXMuc2VsZWN0aW9uLGE7aWYodCBpbnN0YW5jZW9mIEZ0KXtpZih0Lm5vZGUuaXNUZXh0YmxvY2t8fCFabChzLmRvYyx0LnRvKSlyZXR1cm4hMTthPXQudG99ZWxzZSBpZihhPVk4KHMuZG9jLHQudG8sMSksYT09bnVsbClyZXR1cm4hMTtyZXR1cm4gZSYmZShzLnRyLmpvaW4oYSkuc2Nyb2xsSW50b1ZpZXcoKSksITB9LCJqb2luRG93biIpLHdhdD1pKChzLGUpPT57bGV0eyRmcm9tOnQsJHRvOmF9PXMuc2VsZWN0aW9uLHI9dC5ibG9ja1JhbmdlKGEpLG49ciYmUGQocik7cmV0dXJuIG49PW51bGw/ITE6KGUmJmUocy50ci5saWZ0KHIsbikuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibGlmdCIpLHVsZT1pKChzLGUpPT57bGV0eyRoZWFkOnQsJGFuY2hvcjphfT1zLnNlbGVjdGlvbjtyZXR1cm4hdC5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCF0LnNhbWVQYXJlbnQoYSk/ITE6KGUmJmUocy50ci5pbnNlcnRUZXh0KGAKYCkuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibmV3bGluZUluQ29kZSIpO2koaGF0LCJkZWZhdWx0QmxvY2tBdCIpO3BsZT1pKChzLGUpPT57bGV0eyRoZWFkOnQsJGFuY2hvcjphfT1zLnNlbGVjdGlvbjtpZighdC5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCF0LnNhbWVQYXJlbnQoYSkpcmV0dXJuITE7bGV0IHI9dC5ub2RlKC0xKSxuPXQuaW5kZXhBZnRlcigtMSksbz1oYXQoci5jb250ZW50TWF0Y2hBdChuKSk7aWYoIW98fCFyLmNhblJlcGxhY2VXaXRoKG4sbixvKSlyZXR1cm4hMTtpZihlKXtsZXQgbD10LmFmdGVyKCkscD1zLnRyLnJlcGxhY2VXaXRoKGwsbCxvLmNyZWF0ZUFuZEZpbGwoKSk7cC5zZXRTZWxlY3Rpb24oUXQubmVhcihwLmRvYy5yZXNvbHZlKGwpLDEpKSxlKHAuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJleGl0Q29kZSIpLGhsZT1pKChzLGUpPT57bGV0IHQ9cy5zZWxlY3Rpb24seyRmcm9tOmEsJHRvOnJ9PXQ7aWYodCBpbnN0YW5jZW9mIG5ufHxhLnBhcmVudC5pbmxpbmVDb250ZW50fHxyLnBhcmVudC5pbmxpbmVDb250ZW50KXJldHVybiExO2xldCBuPWhhdChyLnBhcmVudC5jb250ZW50TWF0Y2hBdChyLmluZGV4QWZ0ZXIoKSkpO2lmKCFufHwhbi5pc1RleHRibG9jaylyZXR1cm4hMTtpZihlKXtsZXQgbz0oIWEucGFyZW50T2Zmc2V0JiZyLmluZGV4KCk8ci5wYXJlbnQuY2hpbGRDb3VudD9hOnIpLnBvcyxsPXMudHIuaW5zZXJ0KG8sbi5jcmVhdGVBbmRGaWxsKCkpO2wuc2V0U2VsZWN0aW9uKEp0LmNyZWF0ZShsLmRvYyxvKzEpKSxlKGwuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJjcmVhdGVQYXJhZ3JhcGhOZWFyIiksZmxlPWkoKHMsZSk9PntsZXR7JGN1cnNvcjp0fT1zLnNlbGVjdGlvbjtpZighdHx8dC5wYXJlbnQuY29udGVudC5zaXplKXJldHVybiExO2lmKHQuZGVwdGg+MSYmdC5hZnRlcigpIT10LmVuZCgtMSkpe2xldCBuPXQuYmVmb3JlKCk7aWYoemwocy5kb2MsbikpcmV0dXJuIGUmJmUocy50ci5zcGxpdChuKS5zY3JvbGxJbnRvVmlldygpKSwhMH1sZXQgYT10LmJsb2NrUmFuZ2UoKSxyPWEmJlBkKGEpO3JldHVybiByPT1udWxsPyExOihlJiZlKHMudHIubGlmdChhLHIpLnNjcm9sbEludG9WaWV3KCkpLCEwKX0sImxpZnRFbXB0eUJsb2NrIik7aShhaGEsInNwbGl0QmxvY2tBcyIpO2ZhdD1haGEoKSxmWWE9aSgocyxlKT0+ZmF0KHMsZSYmKHQ9PntsZXQgYT1zLnN0b3JlZE1hcmtzfHxzLnNlbGVjdGlvbi4kdG8ucGFyZW50T2Zmc2V0JiZzLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpO2EmJnQuZW5zdXJlTWFya3MoYSksZSh0KX0pKSwic3BsaXRCbG9ja0tlZXBNYXJrcyIpLGthdD1pKChzLGUpPT57bGV0eyRmcm9tOnQsdG86YX09cy5zZWxlY3Rpb24scixuPXQuc2hhcmVkRGVwdGgoYSk7cmV0dXJuIG49PTA/ITE6KHI9dC5iZWZvcmUobiksZSYmZShzLnRyLnNldFNlbGVjdGlvbihGdC5jcmVhdGUocy5kb2MscikpKSwhMCl9LCJzZWxlY3RQYXJlbnROb2RlIiksc2hhPWkoKHMsZSk9PihlJiZlKHMudHIuc2V0U2VsZWN0aW9uKG5ldyBubihzLmRvYykpKSwhMCksInNlbGVjdEFsbCIpO2kobVlhLCJqb2luTWF5YmVDbGVhciIpO2koaWhhLCJkZWxldGVCYXJyaWVyIik7aShyaGEsInNlbGVjdFRleHRibG9ja1NpZGUiKTttbGU9cmhhKC0xKSxnbGU9cmhhKDEpO2koU2F0LCJ3cmFwSW4iKTtpKGJsZSwic2V0QmxvY2tUeXBlIik7aShnWWEsIm1hcmtBcHBsaWVzIik7aShiWWEsInJlbW92ZUlubGluZUF0b21zIik7aSh2WWEsInRvZ2dsZU1hcmsiKTtpKHhZYSwid3JhcERpc3BhdGNoRm9ySm9pbiIpO2koeVlhLCJhdXRvSm9pbiIpO2kob2xlLCJjaGFpbkNvbW1hbmRzIik7bWF0PW9sZShzWCxubGUsbGxlKSxvaGE9b2xlKHNYLGNsZSxkbGUpLE5kPXtFbnRlcjpvbGUodWxlLGhsZSxmbGUsZmF0KSwiTW9kLUVudGVyIjpwbGUsQmFja3NwYWNlOm1hdCwiTW9kLUJhY2tzcGFjZSI6bWF0LCJTaGlmdC1CYWNrc3BhY2UiOm1hdCxEZWxldGU6b2hhLCJNb2QtRGVsZXRlIjpvaGEsIk1vZC1hIjpzaGF9LGdhdD17IkN0cmwtaCI6TmQuQmFja3NwYWNlLCJBbHQtQmFja3NwYWNlIjpOZFsiTW9kLUJhY2tzcGFjZSJdLCJDdHJsLWQiOk5kLkRlbGV0ZSwiQ3RybC1BbHQtQmFja3NwYWNlIjpOZFsiTW9kLURlbGV0ZSJdLCJBbHQtRGVsZXRlIjpOZFsiTW9kLURlbGV0ZSJdLCJBbHQtZCI6TmRbIk1vZC1EZWxldGUiXSwiQ3RybC1hIjptbGUsIkN0cmwtZSI6Z2xlfTtmb3IobGV0IHMgaW4gTmQpZ2F0W3NdPU5kW3NdO3dZYT10eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vTWFjfGlQKGhvbmV8W29hXWQpLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk6dHlwZW9mIG9zPCJ1IiYmb3MucGxhdGZvcm0/b3MucGxhdGZvcm0oKT09ImRhcndpbiI6ITEsa1lhPXdZYT9nYXQ6TmR9KTt2YXIgbGhhPWcoKCk9PntuaGEoKX0pO2Z1bmN0aW9uIF9hdChzLGUpe2xldCB0PXt9O2ZvcihsZXQgYSBpbiBzKXRbYV09c1thXTtmb3IobGV0IGEgaW4gZSl0W2FdPWVbYV07cmV0dXJuIHR9ZnVuY3Rpb24gellhKHMsZSx0KXtyZXR1cm4gcy5hcHBlbmQoe29yZGVyZWRfbGlzdDpfYXQoY2hhLHtjb250ZW50OiJsaXN0X2l0ZW0rIixncm91cDp0fSksYnVsbGV0X2xpc3Q6X2F0KGRoYSx7Y29udGVudDoibGlzdF9pdGVtKyIsZ3JvdXA6dH0pLGxpc3RfaXRlbTpfYXQodWhhLHtjb250ZW50OmV9KX0pfWZ1bmN0aW9uIE1hdChzLGU9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uKHQsYSl7bGV0eyRmcm9tOnIsJHRvOm59PXQuc2VsZWN0aW9uLG89ci5ibG9ja1JhbmdlKG4pO2lmKCFvKXJldHVybiExO2xldCBsPWE/dC50cjpudWxsO3JldHVybiBwaGEobCxvLHMsZSk/KGEmJmEobC5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9fWZ1bmN0aW9uIHBoYShzLGUsdCxhPW51bGwpe2xldCByPSExLG49ZSxvPWUuJGZyb20uZG9jO2lmKGUuZGVwdGg+PTImJmUuJGZyb20ubm9kZShlLmRlcHRoLTEpLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQodCkmJmUuc3RhcnRJbmRleD09MCl7aWYoZS4kZnJvbS5pbmRleChlLmRlcHRoLTEpPT0wKXJldHVybiExO2xldCBwPW8ucmVzb2x2ZShlLnN0YXJ0LTIpO249bmV3IFNoKHAscCxlLmRlcHRoKSxlLmVuZEluZGV4PGUucGFyZW50LmNoaWxkQ291bnQmJihlPW5ldyBTaChlLiRmcm9tLG8ucmVzb2x2ZShlLiR0by5lbmQoZS5kZXB0aCkpLGUuZGVwdGgpKSxyPSEwfWxldCBsPUs4KG4sdCxhLGUpO3JldHVybiBsPyhzJiZDWWEocyxlLGwscix0KSwhMCk6ITF9ZnVuY3Rpb24gQ1lhKHMsZSx0LGEscil7bGV0IG49cnQuZW1wdHk7Zm9yKGxldCB1PXQubGVuZ3RoLTE7dT49MDt1LS0pbj1ydC5mcm9tKHRbdV0udHlwZS5jcmVhdGUodFt1XS5hdHRycyxuKSk7cy5zdGVwKG5ldyBkcihlLnN0YXJ0LShhPzI6MCksZS5lbmQsZS5zdGFydCxlLmVuZCxuZXcgX3QobiwwLDApLHQubGVuZ3RoLCEwKSk7bGV0IG89MDtmb3IobGV0IHU9MDt1PHQubGVuZ3RoO3UrKyl0W3VdLnR5cGU9PXImJihvPXUrMSk7bGV0IGw9dC5sZW5ndGgtbyxwPWUuc3RhcnQrdC5sZW5ndGgtKGE/MjowKSxkPWUucGFyZW50O2ZvcihsZXQgdT1lLnN0YXJ0SW5kZXgsYz1lLmVuZEluZGV4LGI9ITA7dTxjO3UrKyxiPSExKSFiJiZ6bChzLmRvYyxwLGwpJiYocy5zcGxpdChwLGwpLHArPTIqbCkscCs9ZC5jaGlsZCh1KS5ub2RlU2l6ZTtyZXR1cm4gc31mdW5jdGlvbiBoaGEocyxlKXtyZXR1cm4gZnVuY3Rpb24odCxhKXtsZXR7JGZyb206ciwkdG86bixub2RlOm99PXQuc2VsZWN0aW9uO2lmKG8mJm8uaXNCbG9ja3x8ci5kZXB0aDwyfHwhci5zYW1lUGFyZW50KG4pKXJldHVybiExO2xldCBsPXIubm9kZSgtMSk7aWYobC50eXBlIT1zKXJldHVybiExO2lmKHIucGFyZW50LmNvbnRlbnQuc2l6ZT09MCYmci5ub2RlKC0xKS5jaGlsZENvdW50PT1yLmluZGV4QWZ0ZXIoLTEpKXtpZihyLmRlcHRoPT0zfHxyLm5vZGUoLTMpLnR5cGUhPXN8fHIuaW5kZXgoLTIpIT1yLm5vZGUoLTIpLmNoaWxkQ291bnQtMSlyZXR1cm4hMTtpZihhKXtsZXQgYz1ydC5lbXB0eSxiPXIuaW5kZXgoLTEpPzE6ci5pbmRleCgtMik/MjozO2ZvcihsZXQgeT1yLmRlcHRoLWI7eT49ci5kZXB0aC0zO3ktLSljPXJ0LmZyb20oci5ub2RlKHkpLmNvcHkoYykpO2xldCB2PXIuaW5kZXhBZnRlcigtMSk8ci5ub2RlKC0yKS5jaGlsZENvdW50PzE6ci5pbmRleEFmdGVyKC0yKTxyLm5vZGUoLTMpLmNoaWxkQ291bnQ/MjozO2M9Yy5hcHBlbmQocnQuZnJvbShzLmNyZWF0ZUFuZEZpbGwoKSkpO2xldCB4PXIuYmVmb3JlKHIuZGVwdGgtKGItMSkpLG09dC50ci5yZXBsYWNlKHgsci5hZnRlcigtdiksbmV3IF90KGMsNC1iLDApKSxmPS0xO20uZG9jLm5vZGVzQmV0d2Vlbih4LG0uZG9jLmNvbnRlbnQuc2l6ZSwoeSxNKT0+e2lmKGY+LTEpcmV0dXJuITE7eS5pc1RleHRibG9jayYmeS5jb250ZW50LnNpemU9PTAmJihmPU0rMSl9KSxmPi0xJiZtLnNldFNlbGVjdGlvbihRdC5uZWFyKG0uZG9jLnJlc29sdmUoZikpKSxhKG0uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9bGV0IHA9bi5wb3M9PXIuZW5kKCk/bC5jb250ZW50TWF0Y2hBdCgwKS5kZWZhdWx0VHlwZTpudWxsLGQ9dC50ci5kZWxldGUoci5wb3Msbi5wb3MpLHU9cD9bZT97dHlwZTpzLGF0dHJzOmV9Om51bGwse3R5cGU6cH1dOnZvaWQgMDtyZXR1cm4gemwoZC5kb2Msci5wb3MsMix1KT8oYSYmYShkLnNwbGl0KHIucG9zLDIsdSkuc2Nyb2xsSW50b1ZpZXcoKSksITApOiExfX1mdW5jdGlvbiBUWWEocyxlKXtsZXQgdD1oaGEocyxlKTtyZXR1cm4oYSxyKT0+dChhLHImJihuPT57bGV0IG89YS5zdG9yZWRNYXJrc3x8YS5zZWxlY3Rpb24uJHRvLnBhcmVudE9mZnNldCYmYS5zZWxlY3Rpb24uJGZyb20ubWFya3MoKTtvJiZuLmVuc3VyZU1hcmtzKG8pLHIobil9KSl9ZnVuY3Rpb24gemF0KHMpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldHskZnJvbTphLCR0bzpyfT1lLnNlbGVjdGlvbixuPWEuYmxvY2tSYW5nZShyLG89Pm8uY2hpbGRDb3VudD4wJiZvLmZpcnN0Q2hpbGQudHlwZT09cyk7cmV0dXJuIG4/dD9hLm5vZGUobi5kZXB0aC0xKS50eXBlPT1zPyRZYShlLHQscyxuKTpEWWEoZSx0LG4pOiEwOiExfX1mdW5jdGlvbiAkWWEocyxlLHQsYSl7bGV0IHI9cy50cixuPWEuZW5kLG89YS4kdG8uZW5kKGEuZGVwdGgpO248byYmKHIuc3RlcChuZXcgZHIobi0xLG8sbixvLG5ldyBfdChydC5mcm9tKHQuY3JlYXRlKG51bGwsYS5wYXJlbnQuY29weSgpKSksMSwwKSwxLCEwKSksYT1uZXcgU2goci5kb2MucmVzb2x2ZShhLiRmcm9tLnBvcyksci5kb2MucmVzb2x2ZShvKSxhLmRlcHRoKSk7bGV0IGw9UGQoYSk7aWYobD09bnVsbClyZXR1cm4hMTtyLmxpZnQoYSxsKTtsZXQgcD1yLmRvYy5yZXNvbHZlKHIubWFwcGluZy5tYXAobiwtMSktMSk7cmV0dXJuIFpsKHIuZG9jLHAucG9zKSYmcC5ub2RlQmVmb3JlLnR5cGU9PXAubm9kZUFmdGVyLnR5cGUmJnIuam9pbihwLnBvcyksZShyLnNjcm9sbEludG9WaWV3KCkpLCEwfWZ1bmN0aW9uIERZYShzLGUsdCl7bGV0IGE9cy50cixyPXQucGFyZW50O2ZvcihsZXQgdj10LmVuZCx4PXQuZW5kSW5kZXgtMSxtPXQuc3RhcnRJbmRleDt4Pm07eC0tKXYtPXIuY2hpbGQoeCkubm9kZVNpemUsYS5kZWxldGUodi0xLHYrMSk7bGV0IG49YS5kb2MucmVzb2x2ZSh0LnN0YXJ0KSxvPW4ubm9kZUFmdGVyO2lmKGEubWFwcGluZy5tYXAodC5lbmQpIT10LnN0YXJ0K24ubm9kZUFmdGVyLm5vZGVTaXplKXJldHVybiExO2xldCBsPXQuc3RhcnRJbmRleD09MCxwPXQuZW5kSW5kZXg9PXIuY2hpbGRDb3VudCxkPW4ubm9kZSgtMSksdT1uLmluZGV4KC0xKTtpZighZC5jYW5SZXBsYWNlKHUrKGw/MDoxKSx1KzEsby5jb250ZW50LmFwcGVuZChwP3J0LmVtcHR5OnJ0LmZyb20ocikpKSlyZXR1cm4hMTtsZXQgYz1uLnBvcyxiPWMrby5ub2RlU2l6ZTtyZXR1cm4gYS5zdGVwKG5ldyBkcihjLShsPzE6MCksYisocD8xOjApLGMrMSxiLTEsbmV3IF90KChsP3J0LmVtcHR5OnJ0LmZyb20oci5jb3B5KHJ0LmVtcHR5KSkpLmFwcGVuZChwP3J0LmVtcHR5OnJ0LmZyb20oci5jb3B5KHJ0LmVtcHR5KSkpLGw/MDoxLHA/MDoxKSxsPzA6MSkpLGUoYS5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiBDYXQocyl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7bGV0eyRmcm9tOmEsJHRvOnJ9PWUuc2VsZWN0aW9uLG49YS5ibG9ja1JhbmdlKHIsZD0+ZC5jaGlsZENvdW50PjAmJmQuZmlyc3RDaGlsZC50eXBlPT1zKTtpZighbilyZXR1cm4hMTtsZXQgbz1uLnN0YXJ0SW5kZXg7aWYobz09MClyZXR1cm4hMTtsZXQgbD1uLnBhcmVudCxwPWwuY2hpbGQoby0xKTtpZihwLnR5cGUhPXMpcmV0dXJuITE7aWYodCl7bGV0IGQ9cC5sYXN0Q2hpbGQmJnAubGFzdENoaWxkLnR5cGU9PWwudHlwZSx1PXJ0LmZyb20oZD9zLmNyZWF0ZSgpOm51bGwpLGM9bmV3IF90KHJ0LmZyb20ocy5jcmVhdGUobnVsbCxydC5mcm9tKGwudHlwZS5jcmVhdGUobnVsbCx1KSkpKSxkPzM6MSwwKSxiPW4uc3RhcnQsdj1uLmVuZDt0KGUudHIuc3RlcChuZXcgZHIoYi0oZD8zOjEpLHYsYix2LGMsMSwhMCkpLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX12YXIgU1lhLF9ZYSxNWWEsY2hhLGRoYSx1aGEsZmhhPWcoKCk9Pnt6aCgpO19oKCk7cnUoKTtTWWE9WyJvbCIsMF0sX1lhPVsidWwiLDBdLE1ZYT1bImxpIiwwXSxjaGE9e2F0dHJzOntvcmRlcjp7ZGVmYXVsdDoxLHZhbGlkYXRlOiJudW1iZXIifX0scGFyc2VET006W3t0YWc6Im9sIixnZXRBdHRycyhzKXtyZXR1cm57b3JkZXI6cy5oYXNBdHRyaWJ1dGUoInN0YXJ0Iik/K3MuZ2V0QXR0cmlidXRlKCJzdGFydCIpOjF9fX1dLHRvRE9NKHMpe3JldHVybiBzLmF0dHJzLm9yZGVyPT0xP1NZYTpbIm9sIix7c3RhcnQ6cy5hdHRycy5vcmRlcn0sMF19fSxkaGE9e3BhcnNlRE9NOlt7dGFnOiJ1bCJ9XSx0b0RPTSgpe3JldHVybiBfWWF9fSx1aGE9e3BhcnNlRE9NOlt7dGFnOiJsaSJ9XSx0b0RPTSgpe3JldHVybiBNWWF9LGRlZmluaW5nOiEwfTtpKF9hdCwiYWRkIik7aSh6WWEsImFkZExpc3ROb2RlcyIpO2koTWF0LCJ3cmFwSW5MaXN0Iik7aShwaGEsIndyYXBSYW5nZUluTGlzdCIpO2koQ1lhLCJkb1dyYXBJbkxpc3QiKTtpKGhoYSwic3BsaXRMaXN0SXRlbSIpO2koVFlhLCJzcGxpdExpc3RJdGVtS2VlcE1hcmtzIik7aSh6YXQsImxpZnRMaXN0SXRlbSIpO2koJFlhLCJsaWZ0VG9PdXRlckxpc3QiKTtpKERZYSwibGlmdE91dE9mTGlzdCIpO2koQ2F0LCJzaW5rTGlzdEl0ZW0iKX0pO3ZhciBtaGE9ZygoKT0+e2ZoYSgpfSk7dmFyIEthdD17fTt5dChLYXQse0NvbW1hbmRNYW5hZ2VyOigpPT5QaCxFZGl0b3I6KCk9PklsZSxFeHRlbnNpb246KCk9PndpLElucHV0UnVsZTooKT0+dXUsTWFyazooKT0+RG8sTm9kZTooKT0+c2ksTm9kZVBvczooKT0+aFgsTm9kZVZpZXc6KCk9PkFsZSxQYXN0ZVJ1bGU6KCk9Pm9nLFRyYWNrZXI6KCk9Pk5sZSxjYWxsT3JSZXR1cm46KCk9PmNhLGNhbkluc2VydE5vZGU6KCk9PnFsZSxjb21iaW5lVHJhbnNhY3Rpb25TdGVwczooKT0+UmxlLGNyZWF0ZUNoYWluYWJsZVN0YXRlOigpPT5BdixjcmVhdGVEb2N1bWVudDooKT0+Y1gsY3JlYXRlTm9kZUZyb21Db250ZW50OigpPT5jZyxjcmVhdGVTdHlsZVRhZzooKT0+R2F0LGRlZmF1bHRCbG9ja0F0OigpPT5IYXQsZGVsZXRlUHJvcHM6KCk9PkRsZSxlbGVtZW50RnJvbVN0cmluZzooKT0+bGcsZXNjYXBlRm9yUmVnRXg6KCk9PkhoYSxleHRlbnNpb25zOigpPT5CaGEsZmluZENoaWxkcmVuOigpPT5MaGEsZmluZENoaWxkcmVuSW5SYW5nZTooKT0+T2xlLGZpbmREdXBsaWNhdGVzOigpPT5PYXQsZmluZFBhcmVudE5vZGU6KCk9PnF2LGZpbmRQYXJlbnROb2RlQ2xvc2VzdFRvUG9zOigpPT5xYXQsZnJvbVN0cmluZzooKT0+UGF0LGdlbmVyYXRlSFRNTDooKT0+RWhhLGdlbmVyYXRlSlNPTjooKT0+UGhhLGdlbmVyYXRlVGV4dDooKT0+SWhhLGdldEF0dHJpYnV0ZXM6KCk9PmZYLGdldEF0dHJpYnV0ZXNGcm9tRXh0ZW5zaW9uczooKT0+d2xlLGdldENoYW5nZWRSYW5nZXM6KCk9PkZsZSxnZXREZWJ1Z0pTT046KCk9PlVhdCxnZXRFeHRlbnNpb25GaWVsZDooKT0+RHQsZ2V0SFRNTEZyb21GcmFnbWVudDooKT0+UnYsZ2V0TWFya0F0dHJpYnV0ZXM6KCk9PkxsZSxnZXRNYXJrUmFuZ2U6KCk9PmxYLGdldE1hcmtUeXBlOigpPT5SZCxnZXRNYXJrc0JldHdlZW46KCk9PlZ2LGdldE5vZGVBdFBvc2l0aW9uOigpPT5BaGEsZ2V0Tm9kZUF0dHJpYnV0ZXM6KCk9PmphdCxnZXROb2RlVHlwZTooKT0+THIsZ2V0UmVuZGVyZWRBdHRyaWJ1dGVzOigpPT5pWCxnZXRTY2hlbWE6KCk9PmRYLGdldFNjaGVtYUJ5UmVzb2x2ZWRFeHRlbnNpb25zOigpPT5fbGUsZ2V0U2NoZW1hVHlwZUJ5TmFtZTooKT0+clgsZ2V0U2NoZW1hVHlwZU5hbWVCeU5hbWU6KCk9Pkh2LGdldFNwbGl0dGVkQXR0cmlidXRlczooKT0+anYsZ2V0VGV4dDooKT0+RWxlLGdldFRleHRCZXR3ZWVuOigpPT56bGUsZ2V0VGV4dENvbnRlbnRGcm9tTm9kZXM6KCk9PklhdCxnZXRUZXh0U2VyaWFsaXplcnNGcm9tU2NoZW1hOigpPT5uWCxpbmplY3RFeHRlbnNpb25BdHRyaWJ1dGVzVG9QYXJzZVJ1bGU6KCk9PlNsZSxpbnB1dFJ1bGVzUGx1Z2luOigpPT5BYXQsaXNBY3RpdmU6KCk9PldhdCxpc0F0RW5kT2ZOb2RlOigpPT5OaGEsaXNBdFN0YXJ0T2ZOb2RlOigpPT5SaGEsaXNFbXB0eU9iamVjdDooKT0+RWF0LGlzRXh0ZW5zaW9uUnVsZXNFbmFibGVkOigpPT5NbGUsaXNGdW5jdGlvbjooKT0+a2xlLGlzTGlzdDooKT0+UGxlLGlzTWFjT1M6KCk9PiRsZSxpc01hcmtBY3RpdmU6KCk9PnVYLGlzTm9kZUFjdGl2ZTooKT0+ZGcsaXNOb2RlRW1wdHk6KCk9PnBYLGlzTm9kZVNlbGVjdGlvbjooKT0+QmxlLGlzTnVtYmVyOigpPT5OYXQsaXNQbGFpbk9iamVjdDooKT0+T3YsaXNSZWdFeHA6KCk9Pm9YLGlzU2FmYXJpOigpPT5GYXQsaXNTdHJpbmc6KCk9PnFoYSxpc1RleHRTZWxlY3Rpb246KCk9PkNsZSxpc2lPUzooKT0+bmcsbWFya0lucHV0UnVsZTooKT0+cWMsbWFya1Bhc3RlUnVsZTooKT0+VGwsbWVyZ2VBdHRyaWJ1dGVzOigpPT5hcyxtZXJnZURlZXA6KCk9PkZ2LG1pbk1heDooKT0+YTIsbm9kZUlucHV0UnVsZTooKT0+SGxlLG5vZGVQYXN0ZVJ1bGU6KCk9PmpoYSxvYmplY3RJbmNsdWRlczooKT0+QnYscGFzdGVSdWxlc1BsdWdpbjooKT0+UmF0LHBvc1RvRE9NUmVjdDooKT0+T2hhLHJlbW92ZUR1cGxpY2F0ZXM6KCk9PlZhdCxyZXNvbHZlRm9jdXNQb3NpdGlvbjooKT0+VGxlLHJld3JpdGVVbmtub3duQ29udGVudDooKT0+RmhhLHNlbGVjdGlvblRvSW5zZXJ0aW9uRW5kOigpPT5CYXQsc3BsaXRFeHRlbnNpb25zOigpPT5Odix0ZXh0SW5wdXRSdWxlOigpPT5oaSx0ZXh0UGFzdGVSdWxlOigpPT5WaGEsdGV4dGJsb2NrVHlwZUlucHV0UnVsZTooKT0+dWcsd3JhcHBpbmdJbnB1dFJ1bGU6KCk9Pk9kfSk7ZnVuY3Rpb24gQXYocyl7bGV0e3N0YXRlOmUsdHJhbnNhY3Rpb246dH09cyx7c2VsZWN0aW9uOmF9PXQse2RvYzpyfT10LHtzdG9yZWRNYXJrczpufT10O3JldHVybnsuLi5lLGFwcGx5OmUuYXBwbHkuYmluZChlKSxhcHBseVRyYW5zYWN0aW9uOmUuYXBwbHlUcmFuc2FjdGlvbi5iaW5kKGUpLHBsdWdpbnM6ZS5wbHVnaW5zLHNjaGVtYTplLnNjaGVtYSxyZWNvbmZpZ3VyZTplLnJlY29uZmlndXJlLmJpbmQoZSksdG9KU09OOmUudG9KU09OLmJpbmQoZSksZ2V0IHN0b3JlZE1hcmtzKCl7cmV0dXJuIG59LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gYX0sZ2V0IGRvYygpe3JldHVybiByfSxnZXQgdHIoKXtyZXR1cm4gYT10LnNlbGVjdGlvbixyPXQuZG9jLG49dC5zdG9yZWRNYXJrcyx0fX19ZnVuY3Rpb24gRHQocyxlLHQpe3JldHVybiBzLmNvbmZpZ1tlXT09PXZvaWQgMCYmcy5wYXJlbnQ/RHQocy5wYXJlbnQsZSx0KTp0eXBlb2Ygcy5jb25maWdbZV09PSJmdW5jdGlvbiI/cy5jb25maWdbZV0uYmluZCh7Li4udCxwYXJlbnQ6cy5wYXJlbnQ/RHQocy5wYXJlbnQsZSx0KTpudWxsfSk6cy5jb25maWdbZV19ZnVuY3Rpb24gTnYocyl7bGV0IGU9cy5maWx0ZXIocj0+ci50eXBlPT09ImV4dGVuc2lvbiIpLHQ9cy5maWx0ZXIocj0+ci50eXBlPT09Im5vZGUiKSxhPXMuZmlsdGVyKHI9PnIudHlwZT09PSJtYXJrIik7cmV0dXJue2Jhc2VFeHRlbnNpb25zOmUsbm9kZUV4dGVuc2lvbnM6dCxtYXJrRXh0ZW5zaW9uczphfX1mdW5jdGlvbiB3bGUocyl7bGV0IGU9W10se25vZGVFeHRlbnNpb25zOnQsbWFya0V4dGVuc2lvbnM6YX09TnYocykscj1bLi4udCwuLi5hXSxuPXtkZWZhdWx0Om51bGwscmVuZGVyZWQ6ITAscmVuZGVySFRNTDpudWxsLHBhcnNlSFRNTDpudWxsLGtlZXBPblNwbGl0OiEwLGlzUmVxdWlyZWQ6ITF9O3JldHVybiBzLmZvckVhY2gobz0+e2xldCBsPXtuYW1lOm8ubmFtZSxvcHRpb25zOm8ub3B0aW9ucyxzdG9yYWdlOm8uc3RvcmFnZSxleHRlbnNpb25zOnJ9LHA9RHQobywiYWRkR2xvYmFsQXR0cmlidXRlcyIsbCk7aWYoIXApcmV0dXJuO3AoKS5mb3JFYWNoKHU9Pnt1LnR5cGVzLmZvckVhY2goYz0+e09iamVjdC5lbnRyaWVzKHUuYXR0cmlidXRlcykuZm9yRWFjaCgoW2Isdl0pPT57ZS5wdXNoKHt0eXBlOmMsbmFtZTpiLGF0dHJpYnV0ZTp7Li4ubiwuLi52fX0pfSl9KX0pfSksci5mb3JFYWNoKG89PntsZXQgbD17bmFtZTpvLm5hbWUsb3B0aW9uczpvLm9wdGlvbnMsc3RvcmFnZTpvLnN0b3JhZ2V9LHA9RHQobywiYWRkQXR0cmlidXRlcyIsbCk7aWYoIXApcmV0dXJuO2xldCBkPXAoKTtPYmplY3QuZW50cmllcyhkKS5mb3JFYWNoKChbdSxjXSk9PntsZXQgYj17Li4ubiwuLi5jfTt0eXBlb2YgYj8uZGVmYXVsdD09ImZ1bmN0aW9uIiYmKGIuZGVmYXVsdD1iLmRlZmF1bHQoKSksYj8uaXNSZXF1aXJlZCYmYj8uZGVmYXVsdD09PXZvaWQgMCYmZGVsZXRlIGIuZGVmYXVsdCxlLnB1c2goe3R5cGU6by5uYW1lLG5hbWU6dSxhdHRyaWJ1dGU6Yn0pfSl9KSxlfWZ1bmN0aW9uIExyKHMsZSl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXtpZighZS5ub2Rlc1tzXSl0aHJvdyBFcnJvcihgVGhlcmUgaXMgbm8gbm9kZSB0eXBlIG5hbWVkICcke3N9Jy4gTWF5YmUgeW91IGZvcmdvdCB0byBhZGQgdGhlIGV4dGVuc2lvbj9gKTtyZXR1cm4gZS5ub2Rlc1tzXX1yZXR1cm4gc31mdW5jdGlvbiBhcyguLi5zKXtyZXR1cm4gcy5maWx0ZXIoZT0+ISFlKS5yZWR1Y2UoKGUsdCk9PntsZXQgYT17Li4uZX07cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKFtyLG5dKT0+e2lmKCFhW3JdKXthW3JdPW47cmV0dXJufWlmKHI9PT0iY2xhc3MiKXtsZXQgbD1uP1N0cmluZyhuKS5zcGxpdCgiICIpOltdLHA9YVtyXT9hW3JdLnNwbGl0KCIgIik6W10sZD1sLmZpbHRlcih1PT4hcC5pbmNsdWRlcyh1KSk7YVtyXT1bLi4ucCwuLi5kXS5qb2luKCIgIil9ZWxzZSBpZihyPT09InN0eWxlIil7bGV0IGw9bj9uLnNwbGl0KCI7IikubWFwKHU9PnUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W10scD1hW3JdP2Fbcl0uc3BsaXQoIjsiKS5tYXAodT0+dS50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXSxkPW5ldyBNYXA7cC5mb3JFYWNoKHU9PntsZXRbYyxiXT11LnNwbGl0KCI6IikubWFwKHY9PnYudHJpbSgpKTtkLnNldChjLGIpfSksbC5mb3JFYWNoKHU9PntsZXRbYyxiXT11LnNwbGl0KCI6IikubWFwKHY9PnYudHJpbSgpKTtkLnNldChjLGIpfSksYVtyXT1BcnJheS5mcm9tKGQuZW50cmllcygpKS5tYXAoKFt1LGNdKT0+YCR7dX06ICR7Y31gKS5qb2luKCI7ICIpfWVsc2UgYVtyXT1ufSksYX0se30pfWZ1bmN0aW9uIGlYKHMsZSl7cmV0dXJuIGUuZmlsdGVyKHQ9PnQudHlwZT09PXMudHlwZS5uYW1lKS5maWx0ZXIodD0+dC5hdHRyaWJ1dGUucmVuZGVyZWQpLm1hcCh0PT50LmF0dHJpYnV0ZS5yZW5kZXJIVE1MP3QuYXR0cmlidXRlLnJlbmRlckhUTUwocy5hdHRycyl8fHt9OntbdC5uYW1lXTpzLmF0dHJzW3QubmFtZV19KS5yZWR1Y2UoKHQsYSk9PmFzKHQsYSkse30pfWZ1bmN0aW9uIGtsZShzKXtyZXR1cm4gdHlwZW9mIHM9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gY2EocyxlPXZvaWQgMCwuLi50KXtyZXR1cm4ga2xlKHMpP2U/cy5iaW5kKGUpKC4uLnQpOnMoLi4udCk6c31mdW5jdGlvbiBFYXQocz17fSl7cmV0dXJuIE9iamVjdC5rZXlzKHMpLmxlbmd0aD09PTAmJnMuY29uc3RydWN0b3I9PT1PYmplY3R9ZnVuY3Rpb24gUGF0KHMpe3JldHVybiB0eXBlb2YgcyE9InN0cmluZyI/czpzLm1hdGNoKC9eWystXT8oPzpcZCpcLik/XGQrJC8pP051bWJlcihzKTpzPT09InRydWUiPyEwOnM9PT0iZmFsc2UiPyExOnN9ZnVuY3Rpb24gU2xlKHMsZSl7cmV0dXJuInN0eWxlImluIHM/czp7Li4ucyxnZXRBdHRyczppKHQ9PntsZXQgYT1zLmdldEF0dHJzP3MuZ2V0QXR0cnModCk6cy5hdHRycztpZihhPT09ITEpcmV0dXJuITE7bGV0IHI9ZS5yZWR1Y2UoKG4sbyk9PntsZXQgbD1vLmF0dHJpYnV0ZS5wYXJzZUhUTUw/by5hdHRyaWJ1dGUucGFyc2VIVE1MKHQpOlBhdCh0LmdldEF0dHJpYnV0ZShvLm5hbWUpKTtyZXR1cm4gbD09bnVsbD9uOnsuLi5uLFtvLm5hbWVdOmx9fSx7fSk7cmV0dXJuey4uLmEsLi4ucn19LCJnZXRBdHRycyIpfX1mdW5jdGlvbiBnaGEocyl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhzKS5maWx0ZXIoKFtlLHRdKT0+ZT09PSJhdHRycyImJkVhdCh0KT8hMTp0IT1udWxsKSl9ZnVuY3Rpb24gX2xlKHMsZSl7dmFyIHQ7bGV0IGE9d2xlKHMpLHtub2RlRXh0ZW5zaW9uczpyLG1hcmtFeHRlbnNpb25zOm59PU52KHMpLG89KHQ9ci5maW5kKGQ9PkR0KGQsInRvcE5vZGUiKSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5uYW1lLGw9T2JqZWN0LmZyb21FbnRyaWVzKHIubWFwKGQ9PntsZXQgdT1hLmZpbHRlcih5PT55LnR5cGU9PT1kLm5hbWUpLGM9e25hbWU6ZC5uYW1lLG9wdGlvbnM6ZC5vcHRpb25zLHN0b3JhZ2U6ZC5zdG9yYWdlLGVkaXRvcjplfSxiPXMucmVkdWNlKCh5LE0pPT57bGV0IHo9RHQoTSwiZXh0ZW5kTm9kZVNjaGVtYSIsYyk7cmV0dXJuey4uLnksLi4uej96KGQpOnt9fX0se30pLHY9Z2hhKHsuLi5iLGNvbnRlbnQ6Y2EoRHQoZCwiY29udGVudCIsYykpLG1hcmtzOmNhKER0KGQsIm1hcmtzIixjKSksZ3JvdXA6Y2EoRHQoZCwiZ3JvdXAiLGMpKSxpbmxpbmU6Y2EoRHQoZCwiaW5saW5lIixjKSksYXRvbTpjYShEdChkLCJhdG9tIixjKSksc2VsZWN0YWJsZTpjYShEdChkLCJzZWxlY3RhYmxlIixjKSksZHJhZ2dhYmxlOmNhKER0KGQsImRyYWdnYWJsZSIsYykpLGNvZGU6Y2EoRHQoZCwiY29kZSIsYykpLHdoaXRlc3BhY2U6Y2EoRHQoZCwid2hpdGVzcGFjZSIsYykpLGxpbmVicmVha1JlcGxhY2VtZW50OmNhKER0KGQsImxpbmVicmVha1JlcGxhY2VtZW50IixjKSksZGVmaW5pbmc6Y2EoRHQoZCwiZGVmaW5pbmciLGMpKSxpc29sYXRpbmc6Y2EoRHQoZCwiaXNvbGF0aW5nIixjKSksYXR0cnM6T2JqZWN0LmZyb21FbnRyaWVzKHUubWFwKHk9Pnt2YXIgTTtyZXR1cm5beS5uYW1lLHtkZWZhdWx0OihNPXk/LmF0dHJpYnV0ZSk9PT1udWxsfHxNPT09dm9pZCAwP3ZvaWQgMDpNLmRlZmF1bHR9XX0pKX0pLHg9Y2EoRHQoZCwicGFyc2VIVE1MIixjKSk7eCYmKHYucGFyc2VET009eC5tYXAoeT0+U2xlKHksdSkpKTtsZXQgbT1EdChkLCJyZW5kZXJIVE1MIixjKTttJiYodi50b0RPTT15PT5tKHtub2RlOnksSFRNTEF0dHJpYnV0ZXM6aVgoeSx1KX0pKTtsZXQgZj1EdChkLCJyZW5kZXJUZXh0IixjKTtyZXR1cm4gZiYmKHYudG9UZXh0PWYpLFtkLm5hbWUsdl19KSkscD1PYmplY3QuZnJvbUVudHJpZXMobi5tYXAoZD0+e2xldCB1PWEuZmlsdGVyKGY9PmYudHlwZT09PWQubmFtZSksYz17bmFtZTpkLm5hbWUsb3B0aW9uczpkLm9wdGlvbnMsc3RvcmFnZTpkLnN0b3JhZ2UsZWRpdG9yOmV9LGI9cy5yZWR1Y2UoKGYseSk9PntsZXQgTT1EdCh5LCJleHRlbmRNYXJrU2NoZW1hIixjKTtyZXR1cm57Li4uZiwuLi5NP00oZCk6e319fSx7fSksdj1naGEoey4uLmIsaW5jbHVzaXZlOmNhKER0KGQsImluY2x1c2l2ZSIsYykpLGV4Y2x1ZGVzOmNhKER0KGQsImV4Y2x1ZGVzIixjKSksZ3JvdXA6Y2EoRHQoZCwiZ3JvdXAiLGMpKSxzcGFubmluZzpjYShEdChkLCJzcGFubmluZyIsYykpLGNvZGU6Y2EoRHQoZCwiY29kZSIsYykpLGF0dHJzOk9iamVjdC5mcm9tRW50cmllcyh1Lm1hcChmPT57dmFyIHk7cmV0dXJuW2YubmFtZSx7ZGVmYXVsdDooeT1mPy5hdHRyaWJ1dGUpPT09bnVsbHx8eT09PXZvaWQgMD92b2lkIDA6eS5kZWZhdWx0fV19KSl9KSx4PWNhKER0KGQsInBhcnNlSFRNTCIsYykpO3gmJih2LnBhcnNlRE9NPXgubWFwKGY9PlNsZShmLHUpKSk7bGV0IG09RHQoZCwicmVuZGVySFRNTCIsYyk7cmV0dXJuIG0mJih2LnRvRE9NPWY9Pm0oe21hcms6ZixIVE1MQXR0cmlidXRlczppWChmLHUpfSkpLFtkLm5hbWUsdl19KSk7cmV0dXJuIG5ldyB4dih7dG9wTm9kZTpvLG5vZGVzOmwsbWFya3M6cH0pfWZ1bmN0aW9uIHJYKHMsZSl7cmV0dXJuIGUubm9kZXNbc118fGUubWFya3Nbc118fG51bGx9ZnVuY3Rpb24gTWxlKHMsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5zb21lKHQ9Pih0eXBlb2YgdD09InN0cmluZyI/dDp0Lm5hbWUpPT09cy5uYW1lKTplfWZ1bmN0aW9uIFJ2KHMsZSl7bGV0IHQ9TGQuZnJvbVNjaGVtYShlKS5zZXJpYWxpemVGcmFnbWVudChzKSxyPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLmFwcGVuZENoaWxkKHQpLHIuaW5uZXJIVE1MfWZ1bmN0aW9uIG9YKHMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocyk9PT0iW29iamVjdCBSZWdFeHBdIn1mdW5jdGlvbiB2bGUocyl7dmFyIGU7bGV0e2VkaXRvcjp0LGZyb206YSx0bzpyLHRleHQ6bixydWxlczpvLHBsdWdpbjpsfT1zLHt2aWV3OnB9PXQ7aWYocC5jb21wb3NpbmcpcmV0dXJuITE7bGV0IGQ9cC5zdGF0ZS5kb2MucmVzb2x2ZShhKTtpZihkLnBhcmVudC50eXBlLnNwZWMuY29kZXx8ISgoZT1kLm5vZGVCZWZvcmV8fGQubm9kZUFmdGVyKT09PW51bGx8fGU9PT12b2lkIDApJiZlLm1hcmtzLmZpbmQoYj0+Yi50eXBlLnNwZWMuY29kZSkpcmV0dXJuITE7bGV0IHU9ITEsYz1JYXQoZCkrbjtyZXR1cm4gby5mb3JFYWNoKGI9PntpZih1KXJldHVybjtsZXQgdj1MWWEoYyxiLmZpbmQpO2lmKCF2KXJldHVybjtsZXQgeD1wLnN0YXRlLnRyLG09QXYoe3N0YXRlOnAuc3RhdGUsdHJhbnNhY3Rpb246eH0pLGY9e2Zyb206YS0odlswXS5sZW5ndGgtbi5sZW5ndGgpLHRvOnJ9LHtjb21tYW5kczp5LGNoYWluOk0sY2FuOnp9PW5ldyBQaCh7ZWRpdG9yOnQsc3RhdGU6bX0pO2IuaGFuZGxlcih7c3RhdGU6bSxyYW5nZTpmLG1hdGNoOnYsY29tbWFuZHM6eSxjaGFpbjpNLGNhbjp6fSk9PT1udWxsfHwheC5zdGVwcy5sZW5ndGh8fCh4LnNldE1ldGEobCx7dHJhbnNmb3JtOngsZnJvbTphLHRvOnIsdGV4dDpufSkscC5kaXNwYXRjaCh4KSx1PSEwKX0pLHV9ZnVuY3Rpb24gQWF0KHMpe2xldHtlZGl0b3I6ZSxydWxlczp0fT1zLGE9bmV3IFlzKHtzdGF0ZTp7aW5pdCgpe3JldHVybiBudWxsfSxhcHBseShyLG4sbyl7bGV0IGw9ci5nZXRNZXRhKGEpO2lmKGwpcmV0dXJuIGw7bGV0IHA9ci5nZXRNZXRhKCJhcHBseUlucHV0UnVsZXMiKTtyZXR1cm4gcCYmc2V0VGltZW91dCgoKT0+e2xldHt0ZXh0OnV9PXA7dHlwZW9mIHU9PSJzdHJpbmciP3U9dTp1PVJ2KHJ0LmZyb20odSksby5zY2hlbWEpO2xldHtmcm9tOmN9PXAsYj1jK3UubGVuZ3RoO3ZsZSh7ZWRpdG9yOmUsZnJvbTpjLHRvOmIsdGV4dDp1LHJ1bGVzOnQscGx1Z2luOmF9KX0pLHIuc2VsZWN0aW9uU2V0fHxyLmRvY0NoYW5nZWQ/bnVsbDpufX0scHJvcHM6e2hhbmRsZVRleHRJbnB1dChyLG4sbyxsKXtyZXR1cm4gdmxlKHtlZGl0b3I6ZSxmcm9tOm4sdG86byx0ZXh0OmwscnVsZXM6dCxwbHVnaW46YX0pfSxoYW5kbGVET01FdmVudHM6e2NvbXBvc2l0aW9uZW5kOmkocj0+KHNldFRpbWVvdXQoKCk9PntsZXR7JGN1cnNvcjpufT1yLnN0YXRlLnNlbGVjdGlvbjtuJiZ2bGUoe2VkaXRvcjplLGZyb206bi5wb3MsdG86bi5wb3MsdGV4dDoiIixydWxlczp0LHBsdWdpbjphfSl9KSwhMSksImNvbXBvc2l0aW9uZW5kIil9LGhhbmRsZUtleURvd24ocixuKXtpZihuLmtleSE9PSJFbnRlciIpcmV0dXJuITE7bGV0eyRjdXJzb3I6b309ci5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIG8/dmxlKHtlZGl0b3I6ZSxmcm9tOm8ucG9zLHRvOm8ucG9zLHRleHQ6YApgLHJ1bGVzOnQscGx1Z2luOmF9KTohMX19LGlzSW5wdXRSdWxlczohMH0pO3JldHVybiBhfWZ1bmN0aW9uIEVZYShzKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHMpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIE92KHMpe3JldHVybiBFWWEocykhPT0iT2JqZWN0Ij8hMTpzLmNvbnN0cnVjdG9yPT09T2JqZWN0JiZPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIEZ2KHMsZSl7bGV0IHQ9ey4uLnN9O3JldHVybiBPdihzKSYmT3YoZSkmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goYT0+e092KGVbYV0pJiZPdihzW2FdKT90W2FdPUZ2KHNbYV0sZVthXSk6dFthXT1lW2FdfSksdH1mdW5jdGlvbiBOYXQocyl7cmV0dXJuIHR5cGVvZiBzPT0ibnVtYmVyIn1mdW5jdGlvbiBJWWEocyl7bGV0e2VkaXRvcjplLHN0YXRlOnQsZnJvbTphLHRvOnIscnVsZTpuLHBhc3RlRXZlbnQ6byxkcm9wRXZlbnQ6bH09cyx7Y29tbWFuZHM6cCxjaGFpbjpkLGNhbjp1fT1uZXcgUGgoe2VkaXRvcjplLHN0YXRlOnR9KSxjPVtdO3JldHVybiB0LmRvYy5ub2Rlc0JldHdlZW4oYSxyLCh2LHgpPT57aWYoIXYuaXNUZXh0YmxvY2t8fHYudHlwZS5zcGVjLmNvZGUpcmV0dXJuO2xldCBtPU1hdGgubWF4KGEseCksZj1NYXRoLm1pbihyLHgrdi5jb250ZW50LnNpemUpLHk9di50ZXh0QmV0d2VlbihtLXgsZi14LHZvaWQgMCwiXHVGRkZDIik7UFlhKHksbi5maW5kLG8pLmZvckVhY2goej0+e2lmKHouaW5kZXg9PT12b2lkIDApcmV0dXJuO2xldCBOPW0rei5pbmRleCsxLEM9Tit6WzBdLmxlbmd0aCxfPXtmcm9tOnQudHIubWFwcGluZy5tYXAoTiksdG86dC50ci5tYXBwaW5nLm1hcChDKX0sTz1uLmhhbmRsZXIoe3N0YXRlOnQscmFuZ2U6XyxtYXRjaDp6LGNvbW1hbmRzOnAsY2hhaW46ZCxjYW46dSxwYXN0ZUV2ZW50Om8sZHJvcEV2ZW50Omx9KTtjLnB1c2goTyl9KX0pLGMuZXZlcnkodj0+diE9PW51bGwpfWZ1bmN0aW9uIFJhdChzKXtsZXR7ZWRpdG9yOmUscnVsZXM6dH09cyxhPW51bGwscj0hMSxuPSExLG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxsO3RyeXtsPXR5cGVvZiBEcmFnRXZlbnQ8InUiP25ldyBEcmFnRXZlbnQoImRyb3AiKTpudWxsfWNhdGNoe2w9bnVsbH1sZXQgcD1pKCh7c3RhdGU6dSxmcm9tOmMsdG86YixydWxlOnYscGFzdGVFdnQ6eH0pPT57bGV0IG09dS50cixmPUF2KHtzdGF0ZTp1LHRyYW5zYWN0aW9uOm19KTtpZighKCFJWWEoe2VkaXRvcjplLHN0YXRlOmYsZnJvbTpNYXRoLm1heChjLTEsMCksdG86Yi5iLTEscnVsZTp2LHBhc3RlRXZlbnQ6eCxkcm9wRXZlbnQ6bH0pfHwhbS5zdGVwcy5sZW5ndGgpKXt0cnl7bD10eXBlb2YgRHJhZ0V2ZW50PCJ1Ij9uZXcgRHJhZ0V2ZW50KCJkcm9wIik6bnVsbH1jYXRjaHtsPW51bGx9cmV0dXJuIG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxtfX0sInByb2Nlc3NFdmVudCIpO3JldHVybiB0Lm1hcCh1PT5uZXcgWXMoe3ZpZXcoYyl7bGV0IGI9aSh4PT57dmFyIG07YT0hKChtPWMuZG9tLnBhcmVudEVsZW1lbnQpPT09bnVsbHx8bT09PXZvaWQgMCkmJm0uY29udGFpbnMoeC50YXJnZXQpP2MuZG9tLnBhcmVudEVsZW1lbnQ6bnVsbCxhJiYoeGxlPWUpfSwiaGFuZGxlRHJhZ3N0YXJ0Iiksdj1pKCgpPT57eGxlJiYoeGxlPW51bGwpfSwiaGFuZGxlRHJhZ2VuZCIpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixiKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdikse2Rlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixiKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdil9fX0scHJvcHM6e2hhbmRsZURPTUV2ZW50czp7ZHJvcDppKChjLGIpPT57aWYobj1hPT09Yy5kb20ucGFyZW50RWxlbWVudCxsPWIsIW4pe2xldCB2PXhsZTt2Py5pc0VkaXRhYmxlJiZzZXRUaW1lb3V0KCgpPT57bGV0IHg9di5zdGF0ZS5zZWxlY3Rpb247eCYmdi5jb21tYW5kcy5kZWxldGVSYW5nZSh7ZnJvbTp4LmZyb20sdG86eC50b30pfSwxMCl9cmV0dXJuITF9LCJkcm9wIikscGFzdGU6aSgoYyxiKT0+e3ZhciB2O2xldCB4PSh2PWIuY2xpcGJvYXJkRGF0YSk9PT1udWxsfHx2PT09dm9pZCAwP3ZvaWQgMDp2LmdldERhdGEoInRleHQvaHRtbCIpO3JldHVybiBvPWIscj0hIXg/LmluY2x1ZGVzKCJkYXRhLXBtLXNsaWNlIiksITF9LCJwYXN0ZSIpfX0sYXBwZW5kVHJhbnNhY3Rpb246aSgoYyxiLHYpPT57bGV0IHg9Y1swXSxtPXguZ2V0TWV0YSgidWlFdmVudCIpPT09InBhc3RlIiYmIXIsZj14LmdldE1ldGEoInVpRXZlbnQiKT09PSJkcm9wIiYmIW4seT14LmdldE1ldGEoImFwcGx5UGFzdGVSdWxlcyIpLE09ISF5O2lmKCFtJiYhZiYmIU0pcmV0dXJuO2lmKE0pe2xldHt0ZXh0OkN9PXk7dHlwZW9mIEM9PSJzdHJpbmciP0M9QzpDPVJ2KHJ0LmZyb20oQyksdi5zY2hlbWEpO2xldHtmcm9tOl99PXksTz1fK0MubGVuZ3RoLCQ9QVlhKEMpO3JldHVybiBwKHtydWxlOnUsc3RhdGU6dixmcm9tOl8sdG86e2I6T30scGFzdGVFdnQ6JH0pfWxldCB6PWIuZG9jLmNvbnRlbnQuZmluZERpZmZTdGFydCh2LmRvYy5jb250ZW50KSxOPWIuZG9jLmNvbnRlbnQuZmluZERpZmZFbmQodi5kb2MuY29udGVudCk7aWYoISghTmF0KHopfHwhTnx8ej09PU4uYikpcmV0dXJuIHAoe3J1bGU6dSxzdGF0ZTp2LGZyb206eix0bzpOLHBhc3RlRXZ0Om99KX0sImFwcGVuZFRyYW5zYWN0aW9uIil9KSl9ZnVuY3Rpb24gT2F0KHMpe2xldCBlPXMuZmlsdGVyKCh0LGEpPT5zLmluZGV4T2YodCkhPT1hKTtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGUpKX1mdW5jdGlvbiB6bGUocyxlLHQpe2xldHtmcm9tOmEsdG86cn09ZSx7YmxvY2tTZXBhcmF0b3I6bj1gCgpgLHRleHRTZXJpYWxpemVyczpvPXt9fT10fHx7fSxsPSIiO3JldHVybiBzLm5vZGVzQmV0d2VlbihhLHIsKHAsZCx1LGMpPT57dmFyIGI7cC5pc0Jsb2NrJiZkPmEmJihsKz1uKTtsZXQgdj1vPy5bcC50eXBlLm5hbWVdO2lmKHYpcmV0dXJuIHUmJihsKz12KHtub2RlOnAscG9zOmQscGFyZW50OnUsaW5kZXg6YyxyYW5nZTplfSkpLCExO3AuaXNUZXh0JiYobCs9KGI9cD8udGV4dCk9PT1udWxsfHxiPT09dm9pZCAwP3ZvaWQgMDpiLnNsaWNlKE1hdGgubWF4KGEsZCktZCxyLWQpKX0pLGx9ZnVuY3Rpb24gblgocyl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhzLm5vZGVzKS5maWx0ZXIoKFssZV0pPT5lLnNwZWMudG9UZXh0KS5tYXAoKFtlLHRdKT0+W2UsdC5zcGVjLnRvVGV4dF0pKX1mdW5jdGlvbiBCdihzLGUsdD17c3RyaWN0OiEwfSl7bGV0IGE9T2JqZWN0LmtleXMoZSk7cmV0dXJuIGEubGVuZ3RoP2EuZXZlcnkocj0+dC5zdHJpY3Q/ZVtyXT09PXNbcl06b1goZVtyXSk/ZVtyXS50ZXN0KHNbcl0pOmVbcl09PT1zW3JdKTohMH1mdW5jdGlvbiB2aGEocyxlLHQ9e30pe3JldHVybiBzLmZpbmQoYT0+YS50eXBlPT09ZSYmQnYoT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5rZXlzKHQpLm1hcChyPT5bcixhLmF0dHJzW3JdXSkpLHQpKX1mdW5jdGlvbiB4aGEocyxlLHQ9e30pe3JldHVybiEhdmhhKHMsZSx0KX1mdW5jdGlvbiBsWChzLGUsdCl7dmFyIGE7aWYoIXN8fCFlKXJldHVybjtsZXQgcj1zLnBhcmVudC5jaGlsZEFmdGVyKHMucGFyZW50T2Zmc2V0KTtpZigoIXIubm9kZXx8IXIubm9kZS5tYXJrcy5zb21lKHU9PnUudHlwZT09PWUpKSYmKHI9cy5wYXJlbnQuY2hpbGRCZWZvcmUocy5wYXJlbnRPZmZzZXQpKSwhci5ub2RlfHwhci5ub2RlLm1hcmtzLnNvbWUodT0+dS50eXBlPT09ZSl8fCh0PXR8fCgoYT1yLm5vZGUubWFya3NbMF0pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5hdHRycyksIXZoYShbLi4uci5ub2RlLm1hcmtzXSxlLHQpKSlyZXR1cm47bGV0IG89ci5pbmRleCxsPXMuc3RhcnQoKStyLm9mZnNldCxwPW8rMSxkPWwrci5ub2RlLm5vZGVTaXplO2Zvcig7bz4wJiZ4aGEoWy4uLnMucGFyZW50LmNoaWxkKG8tMSkubWFya3NdLGUsdCk7KW8tPTEsbC09cy5wYXJlbnQuY2hpbGQobykubm9kZVNpemU7Zm9yKDtwPHMucGFyZW50LmNoaWxkQ291bnQmJnhoYShbLi4ucy5wYXJlbnQuY2hpbGQocCkubWFya3NdLGUsdCk7KWQrPXMucGFyZW50LmNoaWxkKHApLm5vZGVTaXplLHArPTE7cmV0dXJue2Zyb206bCx0bzpkfX1mdW5jdGlvbiBSZChzLGUpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIil7aWYoIWUubWFya3Nbc10pdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSBuYW1lZCAnJHtzfScuIE1heWJlIHlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBleHRlbnNpb24/YCk7cmV0dXJuIGUubWFya3Nbc119cmV0dXJuIHN9ZnVuY3Rpb24gQ2xlKHMpe3JldHVybiBzIGluc3RhbmNlb2YgSnR9ZnVuY3Rpb24gYTIocz0wLGU9MCx0PTApe3JldHVybiBNYXRoLm1pbihNYXRoLm1heChzLGUpLHQpfWZ1bmN0aW9uIFRsZShzLGU9bnVsbCl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9UXQuYXRTdGFydChzKSxhPVF0LmF0RW5kKHMpO2lmKGU9PT0ic3RhcnQifHxlPT09ITApcmV0dXJuIHQ7aWYoZT09PSJlbmQiKXJldHVybiBhO2xldCByPXQuZnJvbSxuPWEudG87cmV0dXJuIGU9PT0iYWxsIj9KdC5jcmVhdGUocyxhMigwLHIsbiksYTIocy5jb250ZW50LnNpemUscixuKSk6SnQuY3JlYXRlKHMsYTIoZSxyLG4pLGEyKGUscixuKSl9ZnVuY3Rpb24gJGF0KCl7cmV0dXJuIG5hdmlnYXRvci5wbGF0Zm9ybT09PSJBbmRyb2lkInx8L2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIG5nKCl7cmV0dXJuWyJpUGFkIFNpbXVsYXRvciIsImlQaG9uZSBTaW11bGF0b3IiLCJpUG9kIFNpbXVsYXRvciIsImlQYWQiLCJpUGhvbmUiLCJpUG9kIl0uaW5jbHVkZXMobmF2aWdhdG9yLnBsYXRmb3JtKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiTWFjIikmJiJvbnRvdWNoZW5kImluIGRvY3VtZW50fWZ1bmN0aW9uIEZhdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOiExfWZ1bmN0aW9uIGxnKHMpe2xldCBlPWA8Ym9keT4ke3N9PC9ib2R5PmAsdD1uZXcgd2luZG93LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiB5aGEodCl9ZnVuY3Rpb24gY2cocyxlLHQpe2lmKHMgaW5zdGFuY2VvZiBUbnx8cyBpbnN0YW5jZW9mIHJ0KXJldHVybiBzO3Q9e3NsaWNlOiEwLHBhcnNlT3B0aW9uczp7fSwuLi50fTtsZXQgYT10eXBlb2Ygcz09Im9iamVjdCImJnMhPT1udWxsLHI9dHlwZW9mIHM9PSJzdHJpbmciO2lmKGEpdHJ5e2lmKEFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoPjApcmV0dXJuIHJ0LmZyb21BcnJheShzLm1hcChsPT5lLm5vZGVGcm9tSlNPTihsKSkpO2xldCBvPWUubm9kZUZyb21KU09OKHMpO3JldHVybiB0LmVycm9yT25JbnZhbGlkQ29udGVudCYmby5jaGVjaygpLG99Y2F0Y2gobil7aWYodC5lcnJvck9uSW52YWxpZENvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBKU09OIGNvbnRlbnQiLHtjYXVzZTpufSk7cmV0dXJuIGNvbnNvbGUud2FybigiW3RpcHRhcCB3YXJuXTogSW52YWxpZCBjb250ZW50LiIsIlBhc3NlZCB2YWx1ZToiLHMsIkVycm9yOiIsbiksY2coIiIsZSx0KX1pZihyKXtpZih0LmVycm9yT25JbnZhbGlkQ29udGVudCl7bGV0IG89ITEsbD0iIixwPW5ldyB4dih7dG9wTm9kZTplLnNwZWMudG9wTm9kZSxtYXJrczplLnNwZWMubWFya3Msbm9kZXM6ZS5zcGVjLm5vZGVzLmFwcGVuZCh7X190aXB0YXBfX3ByaXZhdGVfX3Vua25vd25fX2NhdGNoX19hbGxfX25vZGU6e2NvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIscGFyc2VET006W3t0YWc6IioiLGdldEF0dHJzOmkoZD0+KG89ITAsbD10eXBlb2YgZD09InN0cmluZyI/ZDpkLm91dGVySFRNTCxudWxsKSwiZ2V0QXR0cnMiKX1dfX0pfSk7aWYodC5zbGljZT9lMi5mcm9tU2NoZW1hKHApLnBhcnNlU2xpY2UobGcocyksdC5wYXJzZU9wdGlvbnMpOmUyLmZyb21TY2hlbWEocCkucGFyc2UobGcocyksdC5wYXJzZU9wdGlvbnMpLHQuZXJyb3JPbkludmFsaWRDb250ZW50JiZvKXRocm93IG5ldyBFcnJvcigiW3RpcHRhcCBlcnJvcl06IEludmFsaWQgSFRNTCBjb250ZW50Iix7Y2F1c2U6bmV3IEVycm9yKGBJbnZhbGlkIGVsZW1lbnQgZm91bmQ6ICR7bH1gKX0pfWxldCBuPWUyLmZyb21TY2hlbWEoZSk7cmV0dXJuIHQuc2xpY2U/bi5wYXJzZVNsaWNlKGxnKHMpLHQucGFyc2VPcHRpb25zKS5jb250ZW50Om4ucGFyc2UobGcocyksdC5wYXJzZU9wdGlvbnMpfXJldHVybiBjZygiIixlLHQpfWZ1bmN0aW9uIEJhdChzLGUsdCl7bGV0IGE9cy5zdGVwcy5sZW5ndGgtMTtpZihhPGUpcmV0dXJuO2xldCByPXMuc3RlcHNbYV07aWYoIShyIGluc3RhbmNlb2YgZ298fHIgaW5zdGFuY2VvZiBkcikpcmV0dXJuO2xldCBuPXMubWFwcGluZy5tYXBzW2FdLG89MDtuLmZvckVhY2goKGwscCxkLHUpPT57bz09PTAmJihvPXUpfSkscy5zZXRTZWxlY3Rpb24oUXQubmVhcihzLmRvYy5yZXNvbHZlKG8pLHQpKX1mdW5jdGlvbiAkbGUoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSI/L01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOiExfWZ1bmN0aW9uIGNaYShzKXtsZXQgZT1zLnNwbGl0KC8tKD8hJCkvKSx0PWVbZS5sZW5ndGgtMV07dD09PSJTcGFjZSImJih0PSIgIik7bGV0IGEscixuLG87Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrPTEpe2xldCBwPWVbbF07aWYoL14oY21kfG1ldGF8bSkkL2kudGVzdChwKSlvPSEwO2Vsc2UgaWYoL15hKGx0KT8kL2kudGVzdChwKSlhPSEwO2Vsc2UgaWYoL14oY3xjdHJsfGNvbnRyb2wpJC9pLnRlc3QocCkpcj0hMDtlbHNlIGlmKC9ecyhoaWZ0KT8kL2kudGVzdChwKSluPSEwO2Vsc2UgaWYoL15tb2QkL2kudGVzdChwKSluZygpfHwkbGUoKT9vPSEwOnI9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAke3B9YCl9cmV0dXJuIGEmJih0PWBBbHQtJHt0fWApLHImJih0PWBDdHJsLSR7dH1gKSxvJiYodD1gTWV0YS0ke3R9YCksbiYmKHQ9YFNoaWZ0LSR7dH1gKSx0fWZ1bmN0aW9uIGRnKHMsZSx0PXt9KXtsZXR7ZnJvbTphLHRvOnIsZW1wdHk6bn09cy5zZWxlY3Rpb24sbz1lP0xyKGUscy5zY2hlbWEpOm51bGwsbD1bXTtzLmRvYy5ub2Rlc0JldHdlZW4oYSxyLChjLGIpPT57aWYoYy5pc1RleHQpcmV0dXJuO2xldCB2PU1hdGgubWF4KGEsYikseD1NYXRoLm1pbihyLGIrYy5ub2RlU2l6ZSk7bC5wdXNoKHtub2RlOmMsZnJvbTp2LHRvOnh9KX0pO2xldCBwPXItYSxkPWwuZmlsdGVyKGM9Pm8/by5uYW1lPT09Yy5ub2RlLnR5cGUubmFtZTohMCkuZmlsdGVyKGM9PkJ2KGMubm9kZS5hdHRycyx0LHtzdHJpY3Q6ITF9KSk7cmV0dXJuIG4/ISFkLmxlbmd0aDpkLnJlZHVjZSgoYyxiKT0+YytiLnRvLWIuZnJvbSwwKT49cH1mdW5jdGlvbiBIdihzLGUpe3JldHVybiBlLm5vZGVzW3NdPyJub2RlIjplLm1hcmtzW3NdPyJtYXJrIjpudWxsfWZ1bmN0aW9uIERsZShzLGUpe2xldCB0PXR5cGVvZiBlPT0ic3RyaW5nIj9bZV06ZTtyZXR1cm4gT2JqZWN0LmtleXMocykucmVkdWNlKChhLHIpPT4odC5pbmNsdWRlcyhyKXx8KGFbcl09c1tyXSksYSkse30pfWZ1bmN0aW9uIGNYKHMsZSx0PXt9LGE9e30pe3JldHVybiBjZyhzLGUse3NsaWNlOiExLHBhcnNlT3B0aW9uczp0LGVycm9yT25JbnZhbGlkQ29udGVudDphLmVycm9yT25JbnZhbGlkQ29udGVudH0pfWZ1bmN0aW9uIExsZShzLGUpe2xldCB0PVJkKGUscy5zY2hlbWEpLHtmcm9tOmEsdG86cixlbXB0eTpufT1zLnNlbGVjdGlvbixvPVtdO24/KHMuc3RvcmVkTWFya3MmJm8ucHVzaCguLi5zLnN0b3JlZE1hcmtzKSxvLnB1c2goLi4ucy5zZWxlY3Rpb24uJGhlYWQubWFya3MoKSkpOnMuZG9jLm5vZGVzQmV0d2VlbihhLHIscD0+e28ucHVzaCguLi5wLm1hcmtzKX0pO2xldCBsPW8uZmluZChwPT5wLnR5cGUubmFtZT09PXQubmFtZSk7cmV0dXJuIGw/ey4uLmwuYXR0cnN9Ont9fWZ1bmN0aW9uIFJsZShzLGUpe2xldCB0PW5ldyBHOChzKTtyZXR1cm4gZS5mb3JFYWNoKGE9PnthLnN0ZXBzLmZvckVhY2gocj0+e3Quc3RlcChyKX0pfSksdH1mdW5jdGlvbiBIYXQocyl7Zm9yKGxldCBlPTA7ZTxzLmVkZ2VDb3VudDtlKz0xKXtsZXR7dHlwZTp0fT1zLmVkZ2UoZSk7aWYodC5pc1RleHRibG9jayYmIXQuaGFzUmVxdWlyZWRBdHRycygpKXJldHVybiB0fXJldHVybiBudWxsfWZ1bmN0aW9uIExoYShzLGUpe2xldCB0PVtdO3JldHVybiBzLmRlc2NlbmRhbnRzKChhLHIpPT57ZShhKSYmdC5wdXNoKHtub2RlOmEscG9zOnJ9KX0pLHR9ZnVuY3Rpb24gT2xlKHMsZSx0KXtsZXQgYT1bXTtyZXR1cm4gcy5ub2Rlc0JldHdlZW4oZS5mcm9tLGUudG8sKHIsbik9Pnt0KHIpJiZhLnB1c2goe25vZGU6cixwb3M6bn0pfSksYX1mdW5jdGlvbiBxYXQocyxlKXtmb3IobGV0IHQ9cy5kZXB0aDt0PjA7dC09MSl7bGV0IGE9cy5ub2RlKHQpO2lmKGUoYSkpcmV0dXJue3Bvczp0PjA/cy5iZWZvcmUodCk6MCxzdGFydDpzLnN0YXJ0KHQpLGRlcHRoOnQsbm9kZTphfX19ZnVuY3Rpb24gcXYocyl7cmV0dXJuIGU9PnFhdChlLiRmcm9tLHMpfWZ1bmN0aW9uIGRYKHMsZSl7bGV0IHQ9eWxlLnJlc29sdmUocyk7cmV0dXJuIF9sZSh0LGUpfWZ1bmN0aW9uIEVoYShzLGUpe2xldCB0PWRYKGUpLGE9VG4uZnJvbUpTT04odCxzKTtyZXR1cm4gUnYoYS5jb250ZW50LHQpfWZ1bmN0aW9uIFBoYShzLGUpe2xldCB0PWRYKGUpLGE9bGcocyk7cmV0dXJuIGUyLmZyb21TY2hlbWEodCkucGFyc2UoYSkudG9KU09OKCl9ZnVuY3Rpb24gRWxlKHMsZSl7bGV0IHQ9e2Zyb206MCx0bzpzLmNvbnRlbnQuc2l6ZX07cmV0dXJuIHpsZShzLHQsZSl9ZnVuY3Rpb24gSWhhKHMsZSx0KXtsZXR7YmxvY2tTZXBhcmF0b3I6YT1gCgpgLHRleHRTZXJpYWxpemVyczpyPXt9fT10fHx7fSxuPWRYKGUpLG89VG4uZnJvbUpTT04obixzKTtyZXR1cm4gRWxlKG8se2Jsb2NrU2VwYXJhdG9yOmEsdGV4dFNlcmlhbGl6ZXJzOnsuLi5uWChuKSwuLi5yfX0pfWZ1bmN0aW9uIGphdChzLGUpe2xldCB0PUxyKGUscy5zY2hlbWEpLHtmcm9tOmEsdG86cn09cy5zZWxlY3Rpb24sbj1bXTtzLmRvYy5ub2Rlc0JldHdlZW4oYSxyLGw9PntuLnB1c2gobCl9KTtsZXQgbz1uLnJldmVyc2UoKS5maW5kKGw9PmwudHlwZS5uYW1lPT09dC5uYW1lKTtyZXR1cm4gbz97Li4uby5hdHRyc306e319ZnVuY3Rpb24gZlgocyxlKXtsZXQgdD1Idih0eXBlb2YgZT09InN0cmluZyI/ZTplLm5hbWUscy5zY2hlbWEpO3JldHVybiB0PT09Im5vZGUiP2phdChzLGUpOnQ9PT0ibWFyayI/TGxlKHMsZSk6e319ZnVuY3Rpb24gVmF0KHMsZT1KU09OLnN0cmluZ2lmeSl7bGV0IHQ9e307cmV0dXJuIHMuZmlsdGVyKGE9PntsZXQgcj1lKGEpO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKT8hMTp0W3JdPSEwfSl9ZnVuY3Rpb24gX1phKHMpe2xldCBlPVZhdChzKTtyZXR1cm4gZS5sZW5ndGg9PT0xP2U6ZS5maWx0ZXIoKHQsYSk9PiFlLmZpbHRlcigobixvKT0+byE9PWEpLnNvbWUobj0+dC5vbGRSYW5nZS5mcm9tPj1uLm9sZFJhbmdlLmZyb20mJnQub2xkUmFuZ2UudG88PW4ub2xkUmFuZ2UudG8mJnQubmV3UmFuZ2UuZnJvbT49bi5uZXdSYW5nZS5mcm9tJiZ0Lm5ld1JhbmdlLnRvPD1uLm5ld1JhbmdlLnRvKSl9ZnVuY3Rpb24gRmxlKHMpe2xldHttYXBwaW5nOmUsc3RlcHM6dH09cyxhPVtdO3JldHVybiBlLm1hcHMuZm9yRWFjaCgocixuKT0+e2xldCBvPVtdO2lmKHIucmFuZ2VzLmxlbmd0aClyLmZvckVhY2goKGwscCk9PntvLnB1c2goe2Zyb206bCx0bzpwfSl9KTtlbHNle2xldHtmcm9tOmwsdG86cH09dFtuXTtpZihsPT09dm9pZCAwfHxwPT09dm9pZCAwKXJldHVybjtvLnB1c2goe2Zyb206bCx0bzpwfSl9by5mb3JFYWNoKCh7ZnJvbTpsLHRvOnB9KT0+e2xldCBkPWUuc2xpY2UobikubWFwKGwsLTEpLHU9ZS5zbGljZShuKS5tYXAocCksYz1lLmludmVydCgpLm1hcChkLC0xKSxiPWUuaW52ZXJ0KCkubWFwKHUpO2EucHVzaCh7b2xkUmFuZ2U6e2Zyb206Yyx0bzpifSxuZXdSYW5nZTp7ZnJvbTpkLHRvOnV9fSl9KX0pLF9aYShhKX1mdW5jdGlvbiBVYXQocyxlPTApe2xldCBhPXMudHlwZT09PXMudHlwZS5zY2hlbWEudG9wTm9kZVR5cGU/MDoxLHI9ZSxuPXIrcy5ub2RlU2l6ZSxvPXMubWFya3MubWFwKGQ9PntsZXQgdT17dHlwZTpkLnR5cGUubmFtZX07cmV0dXJuIE9iamVjdC5rZXlzKGQuYXR0cnMpLmxlbmd0aCYmKHUuYXR0cnM9ey4uLmQuYXR0cnN9KSx1fSksbD17Li4ucy5hdHRyc30scD17dHlwZTpzLnR5cGUubmFtZSxmcm9tOnIsdG86bn07cmV0dXJuIE9iamVjdC5rZXlzKGwpLmxlbmd0aCYmKHAuYXR0cnM9bCksby5sZW5ndGgmJihwLm1hcmtzPW8pLHMuY29udGVudC5jaGlsZENvdW50JiYocC5jb250ZW50PVtdLHMuZm9yRWFjaCgoZCx1KT0+e3ZhciBjOyhjPXAuY29udGVudCk9PT1udWxsfHxjPT09dm9pZCAwfHxjLnB1c2goVWF0KGQsZSt1K2EpKX0pKSxzLnRleHQmJihwLnRleHQ9cy50ZXh0KSxwfWZ1bmN0aW9uIFZ2KHMsZSx0KXtsZXQgYT1bXTtyZXR1cm4gcz09PWU/dC5yZXNvbHZlKHMpLm1hcmtzKCkuZm9yRWFjaChyPT57bGV0IG49dC5yZXNvbHZlKHMpLG89bFgobixyLnR5cGUpO28mJmEucHVzaCh7bWFyazpyLC4uLm99KX0pOnQubm9kZXNCZXR3ZWVuKHMsZSwocixuKT0+eyFyfHxyPy5ub2RlU2l6ZT09PXZvaWQgMHx8YS5wdXNoKC4uLnIubWFya3MubWFwKG89Pih7ZnJvbTpuLHRvOm4rci5ub2RlU2l6ZSxtYXJrOm99KSkpfSksYX1mdW5jdGlvbiBqdihzLGUsdCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5maWx0ZXIoKFthXSk9PntsZXQgcj1zLmZpbmQobj0+bi50eXBlPT09ZSYmbi5uYW1lPT09YSk7cmV0dXJuIHI/ci5hdHRyaWJ1dGUua2VlcE9uU3BsaXQ6ITF9KSl9ZnVuY3Rpb24gdVgocyxlLHQ9e30pe2xldHtlbXB0eTphLHJhbmdlczpyfT1zLnNlbGVjdGlvbixuPWU/UmQoZSxzLnNjaGVtYSk6bnVsbDtpZihhKXJldHVybiEhKHMuc3RvcmVkTWFya3N8fHMuc2VsZWN0aW9uLiRmcm9tLm1hcmtzKCkpLmZpbHRlcihjPT5uP24ubmFtZT09PWMudHlwZS5uYW1lOiEwKS5maW5kKGM9PkJ2KGMuYXR0cnMsdCx7c3RyaWN0OiExfSkpO2xldCBvPTAsbD1bXTtpZihyLmZvckVhY2goKHskZnJvbTpjLCR0bzpifSk9PntsZXQgdj1jLnBvcyx4PWIucG9zO3MuZG9jLm5vZGVzQmV0d2Vlbih2LHgsKG0sZik9PntpZighbS5pc1RleHQmJiFtLm1hcmtzLmxlbmd0aClyZXR1cm47bGV0IHk9TWF0aC5tYXgodixmKSxNPU1hdGgubWluKHgsZittLm5vZGVTaXplKSx6PU0teTtvKz16LGwucHVzaCguLi5tLm1hcmtzLm1hcChOPT4oe21hcms6Tixmcm9tOnksdG86TX0pKSl9KX0pLG89PT0wKXJldHVybiExO2xldCBwPWwuZmlsdGVyKGM9Pm4/bi5uYW1lPT09Yy5tYXJrLnR5cGUubmFtZTohMCkuZmlsdGVyKGM9PkJ2KGMubWFyay5hdHRycyx0LHtzdHJpY3Q6ITF9KSkucmVkdWNlKChjLGIpPT5jK2IudG8tYi5mcm9tLDApLGQ9bC5maWx0ZXIoYz0+bj9jLm1hcmsudHlwZSE9PW4mJmMubWFyay50eXBlLmV4Y2x1ZGVzKG4pOiEwKS5yZWR1Y2UoKGMsYik9PmMrYi50by1iLmZyb20sMCk7cmV0dXJuKHA+MD9wK2Q6cCk+PW99ZnVuY3Rpb24gV2F0KHMsZSx0PXt9KXtpZighZSlyZXR1cm4gZGcocyxudWxsLHQpfHx1WChzLG51bGwsdCk7bGV0IGE9SHYoZSxzLnNjaGVtYSk7cmV0dXJuIGE9PT0ibm9kZSI/ZGcocyxlLHQpOmE9PT0ibWFyayI/dVgocyxlLHQpOiExfWZ1bmN0aW9uIFBsZShzLGUpe2xldHtub2RlRXh0ZW5zaW9uczp0fT1OdihlKSxhPXQuZmluZChvPT5vLm5hbWU9PT1zKTtpZighYSlyZXR1cm4hMTtsZXQgcj17bmFtZTphLm5hbWUsb3B0aW9uczphLm9wdGlvbnMsc3RvcmFnZTphLnN0b3JhZ2V9LG49Y2EoRHQoYSwiZ3JvdXAiLHIpKTtyZXR1cm4gdHlwZW9mIG4hPSJzdHJpbmciPyExOm4uc3BsaXQoIiAiKS5pbmNsdWRlcygibGlzdCIpfWZ1bmN0aW9uIHBYKHMse2NoZWNrQ2hpbGRyZW46ZT0hMCxpZ25vcmVXaGl0ZXNwYWNlOnQ9ITF9PXt9KXt2YXIgYTtpZih0KXtpZihzLnR5cGUubmFtZT09PSJoYXJkQnJlYWsiKXJldHVybiEwO2lmKHMuaXNUZXh0KXJldHVybi9eXHMqJC9tLnRlc3QoKGE9cy50ZXh0KSE9PW51bGwmJmEhPT12b2lkIDA/YToiIil9aWYocy5pc1RleHQpcmV0dXJuIXMudGV4dDtpZihzLmlzQXRvbXx8cy5pc0xlYWYpcmV0dXJuITE7aWYocy5jb250ZW50LmNoaWxkQ291bnQ9PT0wKXJldHVybiEwO2lmKGUpe2xldCByPSEwO3JldHVybiBzLmNvbnRlbnQuZm9yRWFjaChuPT57ciE9PSExJiYocFgobix7aWdub3JlV2hpdGVzcGFjZTp0LGNoZWNrQ2hpbGRyZW46ZX0pfHwocj0hMSkpfSkscn1yZXR1cm4hMX1mdW5jdGlvbiBCbGUocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBGdH1mdW5jdGlvbiBPaGEocyxlLHQpe2xldCByPXMuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSxuPWEyKGUsMCxyKSxvPWEyKHQsMCxyKSxsPXMuY29vcmRzQXRQb3MobikscD1zLmNvb3Jkc0F0UG9zKG8sLTEpLGQ9TWF0aC5taW4obC50b3AscC50b3ApLHU9TWF0aC5tYXgobC5ib3R0b20scC5ib3R0b20pLGM9TWF0aC5taW4obC5sZWZ0LHAubGVmdCksYj1NYXRoLm1heChsLnJpZ2h0LHAucmlnaHQpLHY9Yi1jLHg9dS1kLHk9e3RvcDpkLGJvdHRvbTp1LGxlZnQ6YyxyaWdodDpiLHdpZHRoOnYsaGVpZ2h0OngseDpjLHk6ZH07cmV0dXJuey4uLnksdG9KU09OOmkoKCk9PnksInRvSlNPTiIpfX1mdW5jdGlvbiB3aGEoe2pzb246cyx2YWxpZE1hcmtzOmUsdmFsaWROb2Rlczp0LG9wdGlvbnM6YSxyZXdyaXR0ZW5Db250ZW50OnI9W119KXtyZXR1cm4gcy5tYXJrcyYmQXJyYXkuaXNBcnJheShzLm1hcmtzKSYmKHMubWFya3M9cy5tYXJrcy5maWx0ZXIobj0+e2xldCBvPXR5cGVvZiBuPT0ic3RyaW5nIj9uOm4udHlwZTtyZXR1cm4gZS5oYXMobyk/ITA6KHIucHVzaCh7b3JpZ2luYWw6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuKSksdW5zdXBwb3J0ZWQ6b30pLCExKX0pKSxzLmNvbnRlbnQmJkFycmF5LmlzQXJyYXkocy5jb250ZW50KSYmKHMuY29udGVudD1zLmNvbnRlbnQubWFwKG49PndoYSh7anNvbjpuLHZhbGlkTWFya3M6ZSx2YWxpZE5vZGVzOnQsb3B0aW9uczphLHJld3JpdHRlbkNvbnRlbnQ6cn0pLmpzb24pLmZpbHRlcihuPT5uIT1udWxsKSkscy50eXBlJiYhdC5oYXMocy50eXBlKT8oci5wdXNoKHtvcmlnaW5hbDpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHMpKSx1bnN1cHBvcnRlZDpzLnR5cGV9KSxzLmNvbnRlbnQmJkFycmF5LmlzQXJyYXkocy5jb250ZW50KSYmYT8uZmFsbGJhY2tUb1BhcmFncmFwaCE9PSExPyhzLnR5cGU9InBhcmFncmFwaCIse2pzb246cyxyZXdyaXR0ZW5Db250ZW50OnJ9KTp7anNvbjpudWxsLHJld3JpdHRlbkNvbnRlbnQ6cn0pOntqc29uOnMscmV3cml0dGVuQ29udGVudDpyfX1mdW5jdGlvbiBGaGEocyxlLHQpe3JldHVybiB3aGEoe2pzb246cyx2YWxpZE5vZGVzOm5ldyBTZXQoT2JqZWN0LmtleXMoZS5ub2RlcykpLHZhbGlkTWFya3M6bmV3IFNldChPYmplY3Qua2V5cyhlLm1hcmtzKSksb3B0aW9uczp0fSl9ZnVuY3Rpb24gTVphKHMsZSx0KXt2YXIgYTtsZXR7c2VsZWN0aW9uOnJ9PWUsbj1udWxsO2lmKENsZShyKSYmKG49ci4kY3Vyc29yKSxuKXtsZXQgbD0oYT1zLnN0b3JlZE1hcmtzKSE9PW51bGwmJmEhPT12b2lkIDA/YTpuLm1hcmtzKCk7cmV0dXJuISF0LmlzSW5TZXQobCl8fCFsLnNvbWUocD0+cC50eXBlLmV4Y2x1ZGVzKHQpKX1sZXR7cmFuZ2VzOm99PXI7cmV0dXJuIG8uc29tZSgoeyRmcm9tOmwsJHRvOnB9KT0+e2xldCBkPWwuZGVwdGg9PT0wP3MuZG9jLmlubGluZUNvbnRlbnQmJnMuZG9jLnR5cGUuYWxsb3dzTWFya1R5cGUodCk6ITE7cmV0dXJuIHMuZG9jLm5vZGVzQmV0d2VlbihsLnBvcyxwLnBvcywodSxjLGIpPT57aWYoZClyZXR1cm4hMTtpZih1LmlzSW5saW5lKXtsZXQgdj0hYnx8Yi50eXBlLmFsbG93c01hcmtUeXBlKHQpLHg9ISF0LmlzSW5TZXQodS5tYXJrcyl8fCF1Lm1hcmtzLnNvbWUobT0+bS50eXBlLmV4Y2x1ZGVzKHQpKTtkPXYmJnh9cmV0dXJuIWR9KSxkfSl9ZnVuY3Rpb24ga2hhKHMsZSl7bGV0IHQ9cy5zdG9yZWRNYXJrc3x8cy5zZWxlY3Rpb24uJHRvLnBhcmVudE9mZnNldCYmcy5zZWxlY3Rpb24uJGZyb20ubWFya3MoKTtpZih0KXtsZXQgYT10LmZpbHRlcihyPT5lPy5pbmNsdWRlcyhyLnR5cGUubmFtZSkpO3MudHIuZW5zdXJlTWFya3MoYSl9fWZ1bmN0aW9uIEdhdChzLGUsdCl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc3R5bGVbZGF0YS10aXB0YXAtc3R5bGUke3Q/YC0ke3R9YDoiIn1dYCk7aWYoYSE9PW51bGwpcmV0dXJuIGE7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gZSYmci5zZXRBdHRyaWJ1dGUoIm5vbmNlIixlKSxyLnNldEF0dHJpYnV0ZShgZGF0YS10aXB0YXAtc3R5bGUke3Q/YC0ke3R9YDoiIn1gLCIiKSxyLmlubmVySFRNTD1zLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocikscn1mdW5jdGlvbiBxYyhzKXtyZXR1cm4gbmV3IHV1KHtmaW5kOnMuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnQsbWF0Y2g6YX0pPT57bGV0IHI9Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKTtpZihyPT09ITF8fHI9PT1udWxsKXJldHVybiBudWxsO2xldHt0cjpufT1lLG89YVthLmxlbmd0aC0xXSxsPWFbMF07aWYobyl7bGV0IHA9bC5zZWFyY2goL1xTLyksZD10LmZyb20rbC5pbmRleE9mKG8pLHU9ZCtvLmxlbmd0aDtpZihWdih0LmZyb20sdC50byxlLmRvYykuZmlsdGVyKHY9PnYubWFyay50eXBlLmV4Y2x1ZGVkLmZpbmQobT0+bT09PXMudHlwZSYmbSE9PXYubWFyay50eXBlKSkuZmlsdGVyKHY9PnYudG8+ZCkubGVuZ3RoKXJldHVybiBudWxsO3U8dC50byYmbi5kZWxldGUodSx0LnRvKSxkPnQuZnJvbSYmbi5kZWxldGUodC5mcm9tK3AsZCk7bGV0IGI9dC5mcm9tK3Arby5sZW5ndGg7bi5hZGRNYXJrKHQuZnJvbStwLGIscy50eXBlLmNyZWF0ZShyfHx7fSkpLG4ucmVtb3ZlU3RvcmVkTWFyayhzLnR5cGUpfX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIEhsZShzKXtyZXR1cm4gbmV3IHV1KHtmaW5kOnMuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnQsbWF0Y2g6YX0pPT57bGV0IHI9Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKXx8e30se3RyOm59PWUsbz10LmZyb20sbD10LnRvLHA9cy50eXBlLmNyZWF0ZShyKTtpZihhWzFdKXtsZXQgZD1hWzBdLmxhc3RJbmRleE9mKGFbMV0pLHU9bytkO3U+bD91PWw6bD11K2FbMV0ubGVuZ3RoO2xldCBjPWFbMF1bYVswXS5sZW5ndGgtMV07bi5pbnNlcnRUZXh0KGMsbythWzBdLmxlbmd0aC0xKSxuLnJlcGxhY2VXaXRoKHUsbCxwKX1lbHNlIGlmKGFbMF0pe2xldCBkPXMudHlwZS5pc0lubGluZT9vOm8tMTtuLmluc2VydChkLHMudHlwZS5jcmVhdGUocikpLmRlbGV0ZShuLm1hcHBpbmcubWFwKG8pLG4ubWFwcGluZy5tYXAobCkpfW4uc2Nyb2xsSW50b1ZpZXcoKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIHVnKHMpe3JldHVybiBuZXcgdXUoe2ZpbmQ6cy5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDphfSk9PntsZXQgcj1lLmRvYy5yZXNvbHZlKHQuZnJvbSksbj1jYShzLmdldEF0dHJpYnV0ZXMsdm9pZCAwLGEpfHx7fTtpZighci5ub2RlKC0xKS5jYW5SZXBsYWNlV2l0aChyLmluZGV4KC0xKSxyLmluZGV4QWZ0ZXIoLTEpLHMudHlwZSkpcmV0dXJuIG51bGw7ZS50ci5kZWxldGUodC5mcm9tLHQudG8pLnNldEJsb2NrVHlwZSh0LmZyb20sdC5mcm9tLHMudHlwZSxuKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIGhpKHMpe3JldHVybiBuZXcgdXUoe2ZpbmQ6cy5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDphfSk9PntsZXQgcj1zLnJlcGxhY2Usbj10LmZyb20sbz10LnRvO2lmKGFbMV0pe2xldCBsPWFbMF0ubGFzdEluZGV4T2YoYVsxXSk7cis9YVswXS5zbGljZShsK2FbMV0ubGVuZ3RoKSxuKz1sO2xldCBwPW4tbztwPjAmJihyPWFbMF0uc2xpY2UobC1wLGwpK3Isbj1vKX1lLnRyLmluc2VydFRleHQocixuLG8pfSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gT2Qocyl7cmV0dXJuIG5ldyB1dSh7ZmluZDpzLmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTp0LG1hdGNoOmEsY2hhaW46cn0pPT57bGV0IG49Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKXx8e30sbz1lLnRyLmRlbGV0ZSh0LmZyb20sdC50bykscD1vLmRvYy5yZXNvbHZlKHQuZnJvbSkuYmxvY2tSYW5nZSgpLGQ9cCYmSzgocCxzLnR5cGUsbik7aWYoIWQpcmV0dXJuIG51bGw7aWYoby53cmFwKHAsZCkscy5rZWVwTWFya3MmJnMuZWRpdG9yKXtsZXR7c2VsZWN0aW9uOmMsc3RvcmVkTWFya3M6Yn09ZSx7c3BsaXR0YWJsZU1hcmtzOnZ9PXMuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIseD1ifHxjLiR0by5wYXJlbnRPZmZzZXQmJmMuJGZyb20ubWFya3MoKTtpZih4KXtsZXQgbT14LmZpbHRlcihmPT52LmluY2x1ZGVzKGYudHlwZS5uYW1lKSk7by5lbnN1cmVNYXJrcyhtKX19aWYocy5rZWVwQXR0cmlidXRlcyl7bGV0IGM9cy50eXBlLm5hbWU9PT0iYnVsbGV0TGlzdCJ8fHMudHlwZS5uYW1lPT09Im9yZGVyZWRMaXN0Ij8ibGlzdEl0ZW0iOiJ0YXNrTGlzdCI7cigpLnVwZGF0ZUF0dHJpYnV0ZXMoYyxuKS5ydW4oKX1sZXQgdT1vLmRvYy5yZXNvbHZlKHQuZnJvbS0xKS5ub2RlQmVmb3JlO3UmJnUudHlwZT09PXMudHlwZSYmWmwoby5kb2MsdC5mcm9tLTEpJiYoIXMuam9pblByZWRpY2F0ZXx8cy5qb2luUHJlZGljYXRlKGEsdSkpJiZvLmpvaW4odC5mcm9tLTEpfSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gVGwocyl7cmV0dXJuIG5ldyBvZyh7ZmluZDpzLmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTp0LG1hdGNoOmEscGFzdGVFdmVudDpyfSk9PntsZXQgbj1jYShzLmdldEF0dHJpYnV0ZXMsdm9pZCAwLGEscik7aWYobj09PSExfHxuPT09bnVsbClyZXR1cm4gbnVsbDtsZXR7dHI6b309ZSxsPWFbYS5sZW5ndGgtMV0scD1hWzBdLGQ9dC50bztpZihsKXtsZXQgdT1wLnNlYXJjaCgvXFMvKSxjPXQuZnJvbStwLmluZGV4T2YobCksYj1jK2wubGVuZ3RoO2lmKFZ2KHQuZnJvbSx0LnRvLGUuZG9jKS5maWx0ZXIoeD0+eC5tYXJrLnR5cGUuZXhjbHVkZWQuZmluZChmPT5mPT09cy50eXBlJiZmIT09eC5tYXJrLnR5cGUpKS5maWx0ZXIoeD0+eC50bz5jKS5sZW5ndGgpcmV0dXJuIG51bGw7Yjx0LnRvJiZvLmRlbGV0ZShiLHQudG8pLGM+dC5mcm9tJiZvLmRlbGV0ZSh0LmZyb20rdSxjKSxkPXQuZnJvbSt1K2wubGVuZ3RoLG8uYWRkTWFyayh0LmZyb20rdSxkLHMudHlwZS5jcmVhdGUobnx8e30pKSxvLnJlbW92ZVN0b3JlZE1hcmsocy50eXBlKX19LCJoYW5kbGVyIil9KX1mdW5jdGlvbiBxbGUocyxlKXtsZXR7c2VsZWN0aW9uOnR9PXMseyRmcm9tOmF9PXQ7aWYodCBpbnN0YW5jZW9mIEZ0KXtsZXQgbj1hLmluZGV4KCk7cmV0dXJuIGEucGFyZW50LmNhblJlcGxhY2VXaXRoKG4sbisxLGUpfWxldCByPWEuZGVwdGg7Zm9yKDtyPj0wOyl7bGV0IG49YS5pbmRleChyKTtpZihhLm5vZGUocikuY29udGVudE1hdGNoQXQobikubWF0Y2hUeXBlKGUpKXJldHVybiEwO3ItPTF9cmV0dXJuITF9ZnVuY3Rpb24gSGhhKHMpe3JldHVybiBzLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKX1mdW5jdGlvbiBxaGEocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIn1mdW5jdGlvbiBqaGEocyl7cmV0dXJuIG5ldyBvZyh7ZmluZDpzLmZpbmQsaGFuZGxlcih7bWF0Y2g6ZSxjaGFpbjp0LHJhbmdlOmEscGFzdGVFdmVudDpyfSl7bGV0IG49Y2Eocy5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxlLHIpLG89Y2Eocy5nZXRDb250ZW50LHZvaWQgMCxuKTtpZihuPT09ITF8fG49PT1udWxsKXJldHVybiBudWxsO2xldCBsPXt0eXBlOnMudHlwZS5uYW1lLGF0dHJzOm59O28mJihsLmNvbnRlbnQ9byksZS5pbnB1dCYmdCgpLmRlbGV0ZVJhbmdlKGEpLmluc2VydENvbnRlbnRBdChhLmZyb20sbCl9fSl9ZnVuY3Rpb24gVmhhKHMpe3JldHVybiBuZXcgb2coe2ZpbmQ6cy5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDphfSk9PntsZXQgcj1zLnJlcGxhY2Usbj10LmZyb20sbz10LnRvO2lmKGFbMV0pe2xldCBsPWFbMF0ubGFzdEluZGV4T2YoYVsxXSk7cis9YVswXS5zbGljZShsK2FbMV0ubGVuZ3RoKSxuKz1sO2xldCBwPW4tbztwPjAmJihyPWFbMF0uc2xpY2UobC1wLGwpK3Isbj1vKX1lLnRyLmluc2VydFRleHQocixuLG8pfSwiaGFuZGxlciIpfSl9dmFyIFBoLFRhdCxJYXQsdXUsTFlhLERvLG9nLFBZYSx4bGUsQVlhLHlsZSx3aSxiaGEsTllhLFJZYSxPWWEsRllhLEJZYSxIWWEscVlhLGpZYSxWWWEsVVlhLFdZYSxHWWEsS1lhLFlZYSxaWWEsWFlhLFFZYSx5aGEsSllhLGVaYSx0WmEsYVphLHNaYSxpWmEsclphLG9aYSxuWmEsbFphLGRaYSx1WmEscFphLGhaYSxmWmEsbVphLGdaYSxiWmEsdlphLHhaYSx5WmEsd1phLGtaYSxTWmEsQWhhLE5oYSxSaGEselphLENaYSxUWmEsJFphLERaYSxMWmEsRVphLFBaYSxEYXQsTGF0LElaYSxBWmEsTlphLFJaYSxPWmEsRlphLEJaYSxIWmEscVphLGpaYSxWWmEsU2hhLF9oYSxNaGEsemhhLENoYSxUaGEsJGhhLERoYSxCaGEsaFgsVVphLElsZSxzaSxBbGUsTmxlLGlpPWcoKCk9PntHWigpO0dwYSgpO1pwYSgpO1hwYSgpO1FwYSgpO2xoYSgpO21oYSgpO2koQXYsImNyZWF0ZUNoYWluYWJsZVN0YXRlIik7UGg9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29tbWFuZE1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmVkaXRvcj1lLmVkaXRvcix0aGlzLnJhd0NvbW1hbmRzPXRoaXMuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIuY29tbWFuZHMsdGhpcy5jdXN0b21TdGF0ZT1lLnN0YXRlfWdldCBoYXNDdXN0b21TdGF0ZSgpe3JldHVybiEhdGhpcy5jdXN0b21TdGF0ZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5jdXN0b21TdGF0ZXx8dGhpcy5lZGl0b3Iuc3RhdGV9Z2V0IGNvbW1hbmRzKCl7bGV0e3Jhd0NvbW1hbmRzOmUsZWRpdG9yOnQsc3RhdGU6YX09dGhpcyx7dmlldzpyfT10LHt0cjpufT1hLG89dGhpcy5idWlsZFByb3BzKG4pO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkubWFwKChbbCxwXSk9PltsLGkoKC4uLnUpPT57bGV0IGM9cCguLi51KShvKTtyZXR1cm4hbi5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJnIuZGlzcGF0Y2gobiksY30sIm1ldGhvZCIpXSkpfWdldCBjaGFpbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNoYWluKCl9Z2V0IGNhbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNhbigpfWNyZWF0ZUNoYWluKGUsdD0hMCl7bGV0e3Jhd0NvbW1hbmRzOmEsZWRpdG9yOnIsc3RhdGU6bn09dGhpcyx7dmlldzpvfT1yLGw9W10scD0hIWUsZD1lfHxuLnRyLHU9aSgoKT0+KCFwJiZ0JiYhZC5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJm8uZGlzcGF0Y2goZCksbC5ldmVyeShiPT5iPT09ITApKSwicnVuIiksYz17Li4uT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW2Isdl0pPT5bYixpKCguLi5tKT0+e2xldCBmPXRoaXMuYnVpbGRQcm9wcyhkLHQpLHk9diguLi5tKShmKTtyZXR1cm4gbC5wdXNoKHkpLGN9LCJjaGFpbmVkQ29tbWFuZCIpXSkpLHJ1bjp1fTtyZXR1cm4gY31jcmVhdGVDYW4oZSl7bGV0e3Jhd0NvbW1hbmRzOnQsc3RhdGU6YX09dGhpcyxyPSExLG49ZXx8YS50cixvPXRoaXMuYnVpbGRQcm9wcyhuLHIpO3JldHVybnsuLi5PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKChbcCxkXSk9PltwLCguLi51KT0+ZCguLi51KSh7Li4ubyxkaXNwYXRjaDp2b2lkIDB9KV0pKSxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKG4sciksImNoYWluIil9fWJ1aWxkUHJvcHMoZSx0PSEwKXtsZXR7cmF3Q29tbWFuZHM6YSxlZGl0b3I6cixzdGF0ZTpufT10aGlzLHt2aWV3Om99PXIsbD17dHI6ZSxlZGl0b3I6cix2aWV3Om8sc3RhdGU6QXYoe3N0YXRlOm4sdHJhbnNhY3Rpb246ZX0pLGRpc3BhdGNoOnQ/KCk9Pnt9OnZvaWQgMCxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKGUsdCksImNoYWluIiksY2FuOmkoKCk9PnRoaXMuY3JlYXRlQ2FuKGUpLCJjYW4iKSxnZXQgY29tbWFuZHMoKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW3AsZF0pPT5bcCwoLi4udSk9PmQoLi4udSkobCldKSl9fTtyZXR1cm4gbH19LFRhdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFdmVudEVtaXR0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuY2FsbGJhY2tzPXt9fW9uKGUsdCl7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2VdfHwodGhpcy5jYWxsYmFja3NbZV09W10pLHRoaXMuY2FsbGJhY2tzW2VdLnB1c2godCksdGhpc31lbWl0KGUsLi4udCl7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJmEuZm9yRWFjaChyPT5yLmFwcGx5KHRoaXMsdCkpLHRoaXN9b2ZmKGUsdCl7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJih0P3RoaXMuY2FsbGJhY2tzW2VdPWEuZmlsdGVyKHI9PnIhPT10KTpkZWxldGUgdGhpcy5jYWxsYmFja3NbZV0pLHRoaXN9b25jZShlLHQpe2xldCBhPWkoKC4uLnIpPT57dGhpcy5vZmYoZSxhKSx0LmFwcGx5KHRoaXMscil9LCJvbmNlRm4iKTtyZXR1cm4gdGhpcy5vbihlLGEpfXJlbW92ZUFsbExpc3RlbmVycygpe3RoaXMuY2FsbGJhY2tzPXt9fX07aShEdCwiZ2V0RXh0ZW5zaW9uRmllbGQiKTtpKE52LCJzcGxpdEV4dGVuc2lvbnMiKTtpKHdsZSwiZ2V0QXR0cmlidXRlc0Zyb21FeHRlbnNpb25zIik7aShMciwiZ2V0Tm9kZVR5cGUiKTtpKGFzLCJtZXJnZUF0dHJpYnV0ZXMiKTtpKGlYLCJnZXRSZW5kZXJlZEF0dHJpYnV0ZXMiKTtpKGtsZSwiaXNGdW5jdGlvbiIpO2koY2EsImNhbGxPclJldHVybiIpO2koRWF0LCJpc0VtcHR5T2JqZWN0Iik7aShQYXQsImZyb21TdHJpbmciKTtpKFNsZSwiaW5qZWN0RXh0ZW5zaW9uQXR0cmlidXRlc1RvUGFyc2VSdWxlIik7aShnaGEsImNsZWFuVXBTY2hlbWFJdGVtIik7aShfbGUsImdldFNjaGVtYUJ5UmVzb2x2ZWRFeHRlbnNpb25zIik7aShyWCwiZ2V0U2NoZW1hVHlwZUJ5TmFtZSIpO2koTWxlLCJpc0V4dGVuc2lvblJ1bGVzRW5hYmxlZCIpO2koUnYsImdldEhUTUxGcm9tRnJhZ21lbnQiKTtJYXQ9aSgocyxlPTUwMCk9PntsZXQgdD0iIixhPXMucGFyZW50T2Zmc2V0O3JldHVybiBzLnBhcmVudC5ub2Rlc0JldHdlZW4oTWF0aC5tYXgoMCxhLWUpLGEsKHIsbixvLGwpPT57dmFyIHAsZDtsZXQgdT0oKGQ9KHA9ci50eXBlLnNwZWMpLnRvVGV4dCk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLmNhbGwocCx7bm9kZTpyLHBvczpuLHBhcmVudDpvLGluZGV4Omx9KSl8fHIudGV4dENvbnRlbnR8fCIlbGVhZiUiO3QrPXIuaXNBdG9tJiYhci5pc1RleHQ/dTp1LnNsaWNlKDAsTWF0aC5tYXgoMCxhLW4pKX0pLHR9LCJnZXRUZXh0Q29udGVudEZyb21Ob2RlcyIpO2kob1gsImlzUmVnRXhwIik7dXU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW5wdXRSdWxlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5maW5kPWUuZmluZCx0aGlzLmhhbmRsZXI9ZS5oYW5kbGVyfX0sTFlhPWkoKHMsZSk9PntpZihvWChlKSlyZXR1cm4gZS5leGVjKHMpO2xldCB0PWUocyk7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGE9W3QudGV4dF07cmV0dXJuIGEuaW5kZXg9dC5pbmRleCxhLmlucHV0PXMsYS5kYXRhPXQuZGF0YSx0LnJlcGxhY2VXaXRoJiYodC50ZXh0LmluY2x1ZGVzKHQucmVwbGFjZVdpdGgpfHxjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06ICJpbnB1dFJ1bGVNYXRjaC5yZXBsYWNlV2l0aCIgbXVzdCBiZSBwYXJ0IG9mICJpbnB1dFJ1bGVNYXRjaC50ZXh0Ii4nKSxhLnB1c2godC5yZXBsYWNlV2l0aCkpLGF9LCJpbnB1dFJ1bGVNYXRjaGVySGFuZGxlciIpO2kodmxlLCJydW4kMSIpO2koQWF0LCJpbnB1dFJ1bGVzUGx1Z2luIik7aShFWWEsImdldFR5cGUiKTtpKE92LCJpc1BsYWluT2JqZWN0Iik7aShGdiwibWVyZ2VEZWVwIik7RG89Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJNYXJrIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy50eXBlPSJtYXJrIix0aGlzLm5hbWU9Im1hcmsiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZD1udWxsLHRoaXMuY29uZmlnPXtuYW1lOnRoaXMubmFtZSxkZWZhdWx0T3B0aW9uczp7fX0sdGhpcy5jb25maWc9ey4uLnRoaXMuY29uZmlnLC4uLmV9LHRoaXMubmFtZT10aGlzLmNvbmZpZy5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3RoaXMubmFtZX0iLmApLHRoaXMub3B0aW9ucz10aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucyx0aGlzLmNvbmZpZy5hZGRPcHRpb25zJiYodGhpcy5vcHRpb25zPWNhKER0KHRoaXMsImFkZE9wdGlvbnMiLHtuYW1lOnRoaXMubmFtZX0pKSksdGhpcy5zdG9yYWdlPWNhKER0KHRoaXMsImFkZFN0b3JhZ2UiLHtuYW1lOnRoaXMubmFtZSxvcHRpb25zOnRoaXMub3B0aW9uc30pKXx8e319c3RhdGljIGNyZWF0ZShlPXt9KXtyZXR1cm4gbmV3IHMoZSl9Y29uZmlndXJlKGU9e30pe2xldCB0PXRoaXMuZXh0ZW5kKHsuLi50aGlzLmNvbmZpZyxhZGRPcHRpb25zOmkoKCk9PkZ2KHRoaXMub3B0aW9ucyxlKSwiYWRkT3B0aW9ucyIpfSk7cmV0dXJuIHQubmFtZT10aGlzLm5hbWUsdC5wYXJlbnQ9dGhpcy5wYXJlbnQsdH1leHRlbmQoZT17fSl7bGV0IHQ9bmV3IHMoZSk7cmV0dXJuIHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZD10LHQubmFtZT1lLm5hbWU/ZS5uYW1lOnQucGFyZW50Lm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dC5uYW1lfSIuYCksdC5vcHRpb25zPWNhKER0KHQsImFkZE9wdGlvbnMiLHtuYW1lOnQubmFtZX0pKSx0LnN0b3JhZ2U9Y2EoRHQodCwiYWRkU3RvcmFnZSIse25hbWU6dC5uYW1lLG9wdGlvbnM6dC5vcHRpb25zfSkpLHR9c3RhdGljIGhhbmRsZUV4aXQoe2VkaXRvcjplLG1hcms6dH0pe2xldHt0cjphfT1lLnN0YXRlLHI9ZS5zdGF0ZS5zZWxlY3Rpb24uJGZyb207aWYoci5wb3M9PT1yLmVuZCgpKXtsZXQgbz1yLm1hcmtzKCk7aWYoISEhby5maW5kKGQ9PmQ/LnR5cGUubmFtZT09PXQubmFtZSkpcmV0dXJuITE7bGV0IHA9by5maW5kKGQ9PmQ/LnR5cGUubmFtZT09PXQubmFtZSk7cmV0dXJuIHAmJmEucmVtb3ZlU3RvcmVkTWFyayhwKSxhLmluc2VydFRleHQoIiAiLHIucG9zKSxlLnZpZXcuZGlzcGF0Y2goYSksITB9cmV0dXJuITF9fTtpKE5hdCwiaXNOdW1iZXIiKTtvZz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXN0ZVJ1bGUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmZpbmQ9ZS5maW5kLHRoaXMuaGFuZGxlcj1lLmhhbmRsZXJ9fSxQWWE9aSgocyxlLHQpPT57aWYob1goZSkpcmV0dXJuWy4uLnMubWF0Y2hBbGwoZSldO2xldCBhPWUocyx0KTtyZXR1cm4gYT9hLm1hcChyPT57bGV0IG49W3IudGV4dF07cmV0dXJuIG4uaW5kZXg9ci5pbmRleCxuLmlucHV0PXMsbi5kYXRhPXIuZGF0YSxyLnJlcGxhY2VXaXRoJiYoci50ZXh0LmluY2x1ZGVzKHIucmVwbGFjZVdpdGgpfHxjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06ICJwYXN0ZVJ1bGVNYXRjaC5yZXBsYWNlV2l0aCIgbXVzdCBiZSBwYXJ0IG9mICJwYXN0ZVJ1bGVNYXRjaC50ZXh0Ii4nKSxuLnB1c2goci5yZXBsYWNlV2l0aCkpLG59KTpbXX0sInBhc3RlUnVsZU1hdGNoZXJIYW5kbGVyIik7aShJWWEsInJ1biIpO3hsZT1udWxsLEFZYT1pKHM9Pnt2YXIgZTtsZXQgdD1uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIix7Y2xpcGJvYXJkRGF0YTpuZXcgRGF0YVRyYW5zZmVyfSk7cmV0dXJuKGU9dC5jbGlwYm9hcmREYXRhKT09PW51bGx8fGU9PT12b2lkIDB8fGUuc2V0RGF0YSgidGV4dC9odG1sIixzKSx0fSwiY3JlYXRlQ2xpcGJvYXJkUGFzdGVFdmVudCIpO2koUmF0LCJwYXN0ZVJ1bGVzUGx1Z2luIik7aShPYXQsImZpbmREdXBsaWNhdGVzIik7eWxlPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRXh0ZW5zaW9uTWFuYWdlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zcGxpdHRhYmxlTWFya3M9W10sdGhpcy5lZGl0b3I9dCx0aGlzLmV4dGVuc2lvbnM9cy5yZXNvbHZlKGUpLHRoaXMuc2NoZW1hPV9sZSh0aGlzLmV4dGVuc2lvbnMsdCksdGhpcy5zZXR1cEV4dGVuc2lvbnMoKX1zdGF0aWMgcmVzb2x2ZShlKXtsZXQgdD1zLnNvcnQocy5mbGF0dGVuKGUpKSxhPU9hdCh0Lm1hcChyPT5yLm5hbWUpKTtyZXR1cm4gYS5sZW5ndGgmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogRHVwbGljYXRlIGV4dGVuc2lvbiBuYW1lcyBmb3VuZDogWyR7YS5tYXAocj0+YCcke3J9J2ApLmpvaW4oIiwgIil9XS4gVGhpcyBjYW4gbGVhZCB0byBpc3N1ZXMuYCksdH1zdGF0aWMgZmxhdHRlbihlKXtyZXR1cm4gZS5tYXAodD0+e2xldCBhPXtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9ucyxzdG9yYWdlOnQuc3RvcmFnZX0scj1EdCh0LCJhZGRFeHRlbnNpb25zIixhKTtyZXR1cm4gcj9bdCwuLi50aGlzLmZsYXR0ZW4ocigpKV06dH0pLmZsYXQoMTApfXN0YXRpYyBzb3J0KGUpe3JldHVybiBlLnNvcnQoKGEscik9PntsZXQgbj1EdChhLCJwcmlvcml0eSIpfHwxMDAsbz1EdChyLCJwcmlvcml0eSIpfHwxMDA7cmV0dXJuIG4+bz8tMTpuPG8/MTowfSl9Z2V0IGNvbW1hbmRzKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5yZWR1Y2UoKGUsdCk9PntsZXQgYT17bmFtZTp0Lm5hbWUsb3B0aW9uczp0Lm9wdGlvbnMsc3RvcmFnZTp0LnN0b3JhZ2UsZWRpdG9yOnRoaXMuZWRpdG9yLHR5cGU6clgodC5uYW1lLHRoaXMuc2NoZW1hKX0scj1EdCh0LCJhZGRDb21tYW5kcyIsYSk7cmV0dXJuIHI/ey4uLmUsLi4ucigpfTplfSx7fSl9Z2V0IHBsdWdpbnMoKXtsZXR7ZWRpdG9yOmV9PXRoaXMsdD1zLnNvcnQoWy4uLnRoaXMuZXh0ZW5zaW9uc10ucmV2ZXJzZSgpKSxhPVtdLHI9W10sbj10Lm1hcChvPT57bGV0IGw9e25hbWU6by5uYW1lLG9wdGlvbnM6by5vcHRpb25zLHN0b3JhZ2U6by5zdG9yYWdlLGVkaXRvcjplLHR5cGU6clgoby5uYW1lLHRoaXMuc2NoZW1hKX0scD1bXSxkPUR0KG8sImFkZEtleWJvYXJkU2hvcnRjdXRzIixsKSx1PXt9O2lmKG8udHlwZT09PSJtYXJrIiYmRHQobywiZXhpdGFibGUiLGwpJiYodS5BcnJvd1JpZ2h0PSgpPT5Eby5oYW5kbGVFeGl0KHtlZGl0b3I6ZSxtYXJrOm99KSksZCl7bGV0IG09T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGQoKSkubWFwKChbZix5XSk9PltmLCgpPT55KHtlZGl0b3I6ZX0pXSkpO3U9ey4uLnUsLi4ubX19bGV0IGM9Y2F0KHUpO3AucHVzaChjKTtsZXQgYj1EdChvLCJhZGRJbnB1dFJ1bGVzIixsKTtNbGUobyxlLm9wdGlvbnMuZW5hYmxlSW5wdXRSdWxlcykmJmImJmEucHVzaCguLi5iKCkpO2xldCB2PUR0KG8sImFkZFBhc3RlUnVsZXMiLGwpO01sZShvLGUub3B0aW9ucy5lbmFibGVQYXN0ZVJ1bGVzKSYmdiYmci5wdXNoKC4uLnYoKSk7bGV0IHg9RHQobywiYWRkUHJvc2VNaXJyb3JQbHVnaW5zIixsKTtpZih4KXtsZXQgbT14KCk7cC5wdXNoKC4uLm0pfXJldHVybiBwfSkuZmxhdCgpO3JldHVybltBYXQoe2VkaXRvcjplLHJ1bGVzOmF9KSwuLi5SYXQoe2VkaXRvcjplLHJ1bGVzOnJ9KSwuLi5uXX1nZXQgYXR0cmlidXRlcygpe3JldHVybiB3bGUodGhpcy5leHRlbnNpb25zKX1nZXQgbm9kZVZpZXdzKCl7bGV0e2VkaXRvcjplfT10aGlzLHtub2RlRXh0ZW5zaW9uczp0fT1Odih0aGlzLmV4dGVuc2lvbnMpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXModC5maWx0ZXIoYT0+ISFEdChhLCJhZGROb2RlVmlldyIpKS5tYXAoYT0+e2xldCByPXRoaXMuYXR0cmlidXRlcy5maWx0ZXIocD0+cC50eXBlPT09YS5uYW1lKSxuPXtuYW1lOmEubmFtZSxvcHRpb25zOmEub3B0aW9ucyxzdG9yYWdlOmEuc3RvcmFnZSxlZGl0b3I6ZSx0eXBlOkxyKGEubmFtZSx0aGlzLnNjaGVtYSl9LG89RHQoYSwiYWRkTm9kZVZpZXciLG4pO2lmKCFvKXJldHVybltdO2xldCBsPWkoKHAsZCx1LGMsYik9PntsZXQgdj1pWChwLHIpO3JldHVybiBvKCkoe25vZGU6cCx2aWV3OmQsZ2V0UG9zOnUsZGVjb3JhdGlvbnM6Yyxpbm5lckRlY29yYXRpb25zOmIsZWRpdG9yOmUsZXh0ZW5zaW9uOmEsSFRNTEF0dHJpYnV0ZXM6dn0pfSwibm9kZXZpZXciKTtyZXR1cm5bYS5uYW1lLGxdfSkpfXNldHVwRXh0ZW5zaW9ucygpe3RoaXMuZXh0ZW5zaW9ucy5mb3JFYWNoKGU9Pnt2YXIgdDt0aGlzLmVkaXRvci5leHRlbnNpb25TdG9yYWdlW2UubmFtZV09ZS5zdG9yYWdlO2xldCBhPXtuYW1lOmUubmFtZSxvcHRpb25zOmUub3B0aW9ucyxzdG9yYWdlOmUuc3RvcmFnZSxlZGl0b3I6dGhpcy5lZGl0b3IsdHlwZTpyWChlLm5hbWUsdGhpcy5zY2hlbWEpfTtlLnR5cGU9PT0ibWFyayImJighKCh0PWNhKER0KGUsImtlZXBPblNwbGl0IixhKSkpIT09bnVsbCYmdCE9PXZvaWQgMCl8fHQpJiZ0aGlzLnNwbGl0dGFibGVNYXJrcy5wdXNoKGUubmFtZSk7bGV0IHI9RHQoZSwib25CZWZvcmVDcmVhdGUiLGEpLG49RHQoZSwib25DcmVhdGUiLGEpLG89RHQoZSwib25VcGRhdGUiLGEpLGw9RHQoZSwib25TZWxlY3Rpb25VcGRhdGUiLGEpLHA9RHQoZSwib25UcmFuc2FjdGlvbiIsYSksZD1EdChlLCJvbkZvY3VzIixhKSx1PUR0KGUsIm9uQmx1ciIsYSksYz1EdChlLCJvbkRlc3Ryb3kiLGEpO3ImJnRoaXMuZWRpdG9yLm9uKCJiZWZvcmVDcmVhdGUiLHIpLG4mJnRoaXMuZWRpdG9yLm9uKCJjcmVhdGUiLG4pLG8mJnRoaXMuZWRpdG9yLm9uKCJ1cGRhdGUiLG8pLGwmJnRoaXMuZWRpdG9yLm9uKCJzZWxlY3Rpb25VcGRhdGUiLGwpLHAmJnRoaXMuZWRpdG9yLm9uKCJ0cmFuc2FjdGlvbiIscCksZCYmdGhpcy5lZGl0b3Iub24oImZvY3VzIixkKSx1JiZ0aGlzLmVkaXRvci5vbigiYmx1ciIsdSksYyYmdGhpcy5lZGl0b3Iub24oImRlc3Ryb3kiLGMpfSl9fSx3aT1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIkV4dGVuc2lvbiIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0iZXh0ZW5zaW9uIix0aGlzLm5hbWU9ImV4dGVuc2lvbiIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkPW51bGwsdGhpcy5jb25maWc9e25hbWU6dGhpcy5uYW1lLGRlZmF1bHRPcHRpb25zOnt9fSx0aGlzLmNvbmZpZz17Li4udGhpcy5jb25maWcsLi4uZX0sdGhpcy5uYW1lPXRoaXMuY29uZmlnLm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dGhpcy5uYW1lfSIuYCksdGhpcy5vcHRpb25zPXRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLHRoaXMuY29uZmlnLmFkZE9wdGlvbnMmJih0aGlzLm9wdGlvbnM9Y2EoRHQodGhpcywiYWRkT3B0aW9ucyIse25hbWU6dGhpcy5uYW1lfSkpKSx0aGlzLnN0b3JhZ2U9Y2EoRHQodGhpcywiYWRkU3RvcmFnZSIse25hbWU6dGhpcy5uYW1lLG9wdGlvbnM6dGhpcy5vcHRpb25zfSkpfHx7fX1zdGF0aWMgY3JlYXRlKGU9e30pe3JldHVybiBuZXcgcyhlKX1jb25maWd1cmUoZT17fSl7bGV0IHQ9dGhpcy5leHRlbmQoey4uLnRoaXMuY29uZmlnLGFkZE9wdGlvbnM6aSgoKT0+RnYodGhpcy5vcHRpb25zLGUpLCJhZGRPcHRpb25zIil9KTtyZXR1cm4gdC5uYW1lPXRoaXMubmFtZSx0LnBhcmVudD10aGlzLnBhcmVudCx0fWV4dGVuZChlPXt9KXtsZXQgdD1uZXcgcyh7Li4udGhpcy5jb25maWcsLi4uZX0pO3JldHVybiB0LnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9dCx0Lm5hbWU9ZS5uYW1lP2UubmFtZTp0LnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3QubmFtZX0iLmApLHQub3B0aW9ucz1jYShEdCh0LCJhZGRPcHRpb25zIix7bmFtZTp0Lm5hbWV9KSksdC5zdG9yYWdlPWNhKER0KHQsImFkZFN0b3JhZ2UiLHtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9uc30pKSx0fX07aSh6bGUsImdldFRleHRCZXR3ZWVuIik7aShuWCwiZ2V0VGV4dFNlcmlhbGl6ZXJzRnJvbVNjaGVtYSIpO2JoYT13aS5jcmVhdGUoe25hbWU6ImNsaXBib2FyZFRleHRTZXJpYWxpemVyIixhZGRPcHRpb25zKCl7cmV0dXJue2Jsb2NrU2VwYXJhdG9yOnZvaWQgMH19LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgWXMoe2tleTpuZXcgJHIoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIikscHJvcHM6e2NsaXBib2FyZFRleHRTZXJpYWxpemVyOmkoKCk9PntsZXR7ZWRpdG9yOnN9PXRoaXMse3N0YXRlOmUsc2NoZW1hOnR9PXMse2RvYzphLHNlbGVjdGlvbjpyfT1lLHtyYW5nZXM6bn09cixvPU1hdGgubWluKC4uLm4ubWFwKHU9PnUuJGZyb20ucG9zKSksbD1NYXRoLm1heCguLi5uLm1hcCh1PT51LiR0by5wb3MpKSxwPW5YKHQpO3JldHVybiB6bGUoYSx7ZnJvbTpvLHRvOmx9LHsuLi50aGlzLm9wdGlvbnMuYmxvY2tTZXBhcmF0b3IhPT12b2lkIDA/e2Jsb2NrU2VwYXJhdG9yOnRoaXMub3B0aW9ucy5ibG9ja1NlcGFyYXRvcn06e30sdGV4dFNlcmlhbGl6ZXJzOnB9KX0sImNsaXBib2FyZFRleHRTZXJpYWxpemVyIil9fSldfX0pLE5ZYT1pKCgpPT4oe2VkaXRvcjpzLHZpZXc6ZX0pPT4ocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dmFyIHQ7cy5pc0Rlc3Ryb3llZHx8KGUuZG9tLmJsdXIoKSwodD13aW5kb3c/LmdldFNlbGVjdGlvbigpKT09PW51bGx8fHQ9PT12b2lkIDB8fHQucmVtb3ZlQWxsUmFuZ2VzKCkpfSksITApLCJibHVyIiksUllhPWkoKHM9ITEpPT4oe2NvbW1hbmRzOmV9KT0+ZS5zZXRDb250ZW50KCIiLHMpLCJjbGVhckNvbnRlbnQiKSxPWWE9aSgoKT0+KHtzdGF0ZTpzLHRyOmUsZGlzcGF0Y2g6dH0pPT57bGV0e3NlbGVjdGlvbjphfT1lLHtyYW5nZXM6cn09YTtyZXR1cm4gdCYmci5mb3JFYWNoKCh7JGZyb206biwkdG86b30pPT57cy5kb2Mubm9kZXNCZXR3ZWVuKG4ucG9zLG8ucG9zLChsLHApPT57aWYobC50eXBlLmlzVGV4dClyZXR1cm47bGV0e2RvYzpkLG1hcHBpbmc6dX09ZSxjPWQucmVzb2x2ZSh1Lm1hcChwKSksYj1kLnJlc29sdmUodS5tYXAocCtsLm5vZGVTaXplKSksdj1jLmJsb2NrUmFuZ2UoYik7aWYoIXYpcmV0dXJuO2xldCB4PVBkKHYpO2lmKGwudHlwZS5pc1RleHRibG9jayl7bGV0e2RlZmF1bHRUeXBlOm19PWMucGFyZW50LmNvbnRlbnRNYXRjaEF0KGMuaW5kZXgoKSk7ZS5zZXROb2RlTWFya3VwKHYuc3RhcnQsbSl9KHh8fHg9PT0wKSYmZS5saWZ0KHYseCl9KX0pLCEwfSwiY2xlYXJOb2RlcyIpLEZZYT1pKHM9PmU9PnMoZSksImNvbW1hbmQiKSxCWWE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+aGxlKHMsZSksImNyZWF0ZVBhcmFncmFwaE5lYXIiKSxIWWE9aSgocyxlKT0+KHtlZGl0b3I6dCx0cjphfSk9PntsZXR7c3RhdGU6cn09dCxuPXIuZG9jLnNsaWNlKHMuZnJvbSxzLnRvKTthLmRlbGV0ZVJhbmdlKHMuZnJvbSxzLnRvKTtsZXQgbz1hLm1hcHBpbmcubWFwKGUpO3JldHVybiBhLmluc2VydChvLG4uY29udGVudCksYS5zZXRTZWxlY3Rpb24obmV3IEp0KGEuZG9jLnJlc29sdmUoTWF0aC5tYXgoby0xLDApKSkpLCEwfSwiY3V0IikscVlhPWkoKCk9Pih7dHI6cyxkaXNwYXRjaDplfSk9PntsZXR7c2VsZWN0aW9uOnR9PXMsYT10LiRhbmNob3Iubm9kZSgpO2lmKGEuY29udGVudC5zaXplPjApcmV0dXJuITE7bGV0IHI9cy5zZWxlY3Rpb24uJGFuY2hvcjtmb3IobGV0IG49ci5kZXB0aDtuPjA7bi09MSlpZihyLm5vZGUobikudHlwZT09PWEudHlwZSl7aWYoZSl7bGV0IGw9ci5iZWZvcmUobikscD1yLmFmdGVyKG4pO3MuZGVsZXRlKGwscCkuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1yZXR1cm4hMX0sImRlbGV0ZUN1cnJlbnROb2RlIiksallhPWkocz0+KHt0cjplLHN0YXRlOnQsZGlzcGF0Y2g6YX0pPT57bGV0IHI9THIocyx0LnNjaGVtYSksbj1lLnNlbGVjdGlvbi4kYW5jaG9yO2ZvcihsZXQgbz1uLmRlcHRoO28+MDtvLT0xKWlmKG4ubm9kZShvKS50eXBlPT09cil7aWYoYSl7bGV0IHA9bi5iZWZvcmUobyksZD1uLmFmdGVyKG8pO2UuZGVsZXRlKHAsZCkuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1yZXR1cm4hMX0sImRlbGV0ZU5vZGUiKSxWWWE9aShzPT4oe3RyOmUsZGlzcGF0Y2g6dH0pPT57bGV0e2Zyb206YSx0bzpyfT1zO3JldHVybiB0JiZlLmRlbGV0ZShhLHIpLCEwfSwiZGVsZXRlUmFuZ2UiKSxVWWE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+c1gocyxlKSwiZGVsZXRlU2VsZWN0aW9uIiksV1lhPWkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLmtleWJvYXJkU2hvcnRjdXQoIkVudGVyIiksImVudGVyIiksR1lhPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PnBsZShzLGUpLCJleGl0Q29kZSIpO2koQnYsIm9iamVjdEluY2x1ZGVzIik7aSh2aGEsImZpbmRNYXJrSW5TZXQiKTtpKHhoYSwiaXNNYXJrSW5TZXQiKTtpKGxYLCJnZXRNYXJrUmFuZ2UiKTtpKFJkLCJnZXRNYXJrVHlwZSIpO0tZYT1pKChzLGU9e30pPT4oe3RyOnQsc3RhdGU6YSxkaXNwYXRjaDpyfSk9PntsZXQgbj1SZChzLGEuc2NoZW1hKSx7ZG9jOm8sc2VsZWN0aW9uOmx9PXQseyRmcm9tOnAsZnJvbTpkLHRvOnV9PWw7aWYocil7bGV0IGM9bFgocCxuLGUpO2lmKGMmJmMuZnJvbTw9ZCYmYy50bz49dSl7bGV0IGI9SnQuY3JlYXRlKG8sYy5mcm9tLGMudG8pO3Quc2V0U2VsZWN0aW9uKGIpfX1yZXR1cm4hMH0sImV4dGVuZE1hcmtSYW5nZSIpLFlZYT1pKHM9PmU9PntsZXQgdD10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zKGUpOnM7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKz0xKWlmKHRbYV0oZSkpcmV0dXJuITA7cmV0dXJuITF9LCJmaXJzdCIpO2koQ2xlLCJpc1RleHRTZWxlY3Rpb24iKTtpKGEyLCJtaW5NYXgiKTtpKFRsZSwicmVzb2x2ZUZvY3VzUG9zaXRpb24iKTtpKCRhdCwiaXNBbmRyb2lkIik7aShuZywiaXNpT1MiKTtpKEZhdCwiaXNTYWZhcmkiKTtaWWE9aSgocz1udWxsLGU9e30pPT4oe2VkaXRvcjp0LHZpZXc6YSx0cjpyLGRpc3BhdGNoOm59KT0+e2U9e3Njcm9sbEludG9WaWV3OiEwLC4uLmV9O2xldCBvPWkoKCk9PnsobmcoKXx8JGF0KCkpJiZhLmRvbS5mb2N1cygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3QuaXNEZXN0cm95ZWR8fChhLmZvY3VzKCksRmF0KCkmJiFuZygpJiYhJGF0KCkmJmEuZG9tLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpfSl9LCJkZWxheWVkRm9jdXMiKTtpZihhLmhhc0ZvY3VzKCkmJnM9PT1udWxsfHxzPT09ITEpcmV0dXJuITA7aWYobiYmcz09PW51bGwmJiFDbGUodC5zdGF0ZS5zZWxlY3Rpb24pKXJldHVybiBvKCksITA7bGV0IGw9VGxlKHIuZG9jLHMpfHx0LnN0YXRlLnNlbGVjdGlvbixwPXQuc3RhdGUuc2VsZWN0aW9uLmVxKGwpO3JldHVybiBuJiYocHx8ci5zZXRTZWxlY3Rpb24obCkscCYmci5zdG9yZWRNYXJrcyYmci5zZXRTdG9yZWRNYXJrcyhyLnN0b3JlZE1hcmtzKSxvKCkpLCEwfSwiZm9jdXMiKSxYWWE9aSgocyxlKT0+dD0+cy5ldmVyeSgoYSxyKT0+ZShhLHsuLi50LGluZGV4OnJ9KSksImZvckVhY2giKSxRWWE9aSgocyxlKT0+KHt0cjp0LGNvbW1hbmRzOmF9KT0+YS5pbnNlcnRDb250ZW50QXQoe2Zyb206dC5zZWxlY3Rpb24uZnJvbSx0bzp0LnNlbGVjdGlvbi50b30scyxlKSwiaW5zZXJ0Q29udGVudCIpLHloYT1pKHM9PntsZXQgZT1zLmNoaWxkTm9kZXM7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LT0xKXtsZXQgYT1lW3RdO2Eubm9kZVR5cGU9PT0zJiZhLm5vZGVWYWx1ZSYmL14oXG5cc1xzfFxuKSQvLnRlc3QoYS5ub2RlVmFsdWUpP3MucmVtb3ZlQ2hpbGQoYSk6YS5ub2RlVHlwZT09PTEmJnloYShhKX1yZXR1cm4gc30sInJlbW92ZVdoaXRlc3BhY2VzIik7aShsZywiZWxlbWVudEZyb21TdHJpbmciKTtpKGNnLCJjcmVhdGVOb2RlRnJvbUNvbnRlbnQiKTtpKEJhdCwic2VsZWN0aW9uVG9JbnNlcnRpb25FbmQiKTtKWWE9aShzPT4hKCJ0eXBlImluIHMpLCJpc0ZyYWdtZW50IiksZVphPWkoKHMsZSx0KT0+KHt0cjphLGRpc3BhdGNoOnIsZWRpdG9yOm59KT0+e3ZhciBvO2lmKHIpe3Q9e3BhcnNlT3B0aW9uczpuLm9wdGlvbnMucGFyc2VPcHRpb25zLHVwZGF0ZVNlbGVjdGlvbjohMCxhcHBseUlucHV0UnVsZXM6ITEsYXBwbHlQYXN0ZVJ1bGVzOiExLC4uLnR9O2xldCBsLHA9aShmPT57bi5lbWl0KCJjb250ZW50RXJyb3IiLHtlZGl0b3I6bixlcnJvcjpmLGRpc2FibGVDb2xsYWJvcmF0aW9uOmkoKCk9PntuLnN0b3JhZ2UuY29sbGFib3JhdGlvbiYmKG4uc3RvcmFnZS5jb2xsYWJvcmF0aW9uLmlzRGlzYWJsZWQ9ITApfSwiZGlzYWJsZUNvbGxhYm9yYXRpb24iKX0pfSwiZW1pdENvbnRlbnRFcnJvciIpLGQ9e3ByZXNlcnZlV2hpdGVzcGFjZToiZnVsbCIsLi4udC5wYXJzZU9wdGlvbnN9O2lmKCF0LmVycm9yT25JbnZhbGlkQ29udGVudCYmIW4ub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2smJm4ub3B0aW9ucy5lbWl0Q29udGVudEVycm9yKXRyeXtjZyhlLG4uc2NoZW1hLHtwYXJzZU9wdGlvbnM6ZCxlcnJvck9uSW52YWxpZENvbnRlbnQ6ITB9KX1jYXRjaChmKXtwKGYpfXRyeXtsPWNnKGUsbi5zY2hlbWEse3BhcnNlT3B0aW9uczpkLGVycm9yT25JbnZhbGlkQ29udGVudDoobz10LmVycm9yT25JbnZhbGlkQ29udGVudCkhPT1udWxsJiZvIT09dm9pZCAwP286bi5vcHRpb25zLmVuYWJsZUNvbnRlbnRDaGVja30pfWNhdGNoKGYpe3JldHVybiBwKGYpLCExfWxldHtmcm9tOnUsdG86Y309dHlwZW9mIHM9PSJudW1iZXIiP3tmcm9tOnMsdG86c306e2Zyb206cy5mcm9tLHRvOnMudG99LGI9ITAsdj0hMDtpZigoSllhKGwpP2w6W2xdKS5mb3JFYWNoKGY9PntmLmNoZWNrKCksYj1iP2YuaXNUZXh0JiZmLm1hcmtzLmxlbmd0aD09PTA6ITEsdj12P2YuaXNCbG9jazohMX0pLHU9PT1jJiZ2KXtsZXR7cGFyZW50OmZ9PWEuZG9jLnJlc29sdmUodSk7Zi5pc1RleHRibG9jayYmIWYudHlwZS5zcGVjLmNvZGUmJiFmLmNoaWxkQ291bnQmJih1LT0xLGMrPTEpfWxldCBtO2lmKGIpe2lmKEFycmF5LmlzQXJyYXkoZSkpbT1lLm1hcChmPT5mLnRleHR8fCIiKS5qb2luKCIiKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBydCl7bGV0IGY9IiI7ZS5mb3JFYWNoKHk9Pnt5LnRleHQmJihmKz15LnRleHQpfSksbT1mfWVsc2UgdHlwZW9mIGU9PSJvYmplY3QiJiZlJiZlLnRleHQ/bT1lLnRleHQ6bT1lO2EuaW5zZXJ0VGV4dChtLHUsYyl9ZWxzZSBtPWwsYS5yZXBsYWNlV2l0aCh1LGMsbSk7dC51cGRhdGVTZWxlY3Rpb24mJkJhdChhLGEuc3RlcHMubGVuZ3RoLTEsLTEpLHQuYXBwbHlJbnB1dFJ1bGVzJiZhLnNldE1ldGEoImFwcGx5SW5wdXRSdWxlcyIse2Zyb206dSx0ZXh0Om19KSx0LmFwcGx5UGFzdGVSdWxlcyYmYS5zZXRNZXRhKCJhcHBseVBhc3RlUnVsZXMiLHtmcm9tOnUsdGV4dDptfSl9cmV0dXJuITB9LCJpbnNlcnRDb250ZW50QXQiKSx0WmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+eGF0KHMsZSksImpvaW5VcCIpLGFaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT55YXQocyxlKSwiam9pbkRvd24iKSxzWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+bmxlKHMsZSksImpvaW5CYWNrd2FyZCIpLGlaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5jbGUocyxlKSwiam9pbkZvcndhcmQiKSxyWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmUsdHI6dH0pPT57dHJ5e2xldCBhPVk4KHMuZG9jLHMuc2VsZWN0aW9uLiRmcm9tLnBvcywtMSk7cmV0dXJuIGE9PW51bGw/ITE6KHQuam9pbihhLDIpLGUmJmUodCksITApfWNhdGNoe3JldHVybiExfX0sImpvaW5JdGVtQmFja3dhcmQiKSxvWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmUsdHI6dH0pPT57dHJ5e2xldCBhPVk4KHMuZG9jLHMuc2VsZWN0aW9uLiRmcm9tLnBvcywxKTtyZXR1cm4gYT09bnVsbD8hMToodC5qb2luKGEsMiksZSYmZSh0KSwhMCl9Y2F0Y2h7cmV0dXJuITF9fSwiam9pbkl0ZW1Gb3J3YXJkIiksblphPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PmJhdChzLGUpLCJqb2luVGV4dGJsb2NrQmFja3dhcmQiKSxsWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+dmF0KHMsZSksImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7aSgkbGUsImlzTWFjT1MiKTtpKGNaYSwibm9ybWFsaXplS2V5TmFtZSIpO2RaYT1pKHM9Pih7ZWRpdG9yOmUsdmlldzp0LHRyOmEsZGlzcGF0Y2g6cn0pPT57bGV0IG49Y1phKHMpLnNwbGl0KC8tKD8hJCkvKSxvPW4uZmluZChkPT4hWyJBbHQiLCJDdHJsIiwiTWV0YSIsIlNoaWZ0Il0uaW5jbHVkZXMoZCkpLGw9bmV3IEtleWJvYXJkRXZlbnQoImtleWRvd24iLHtrZXk6bz09PSJTcGFjZSI/IiAiOm8sYWx0S2V5Om4uaW5jbHVkZXMoIkFsdCIpLGN0cmxLZXk6bi5pbmNsdWRlcygiQ3RybCIpLG1ldGFLZXk6bi5pbmNsdWRlcygiTWV0YSIpLHNoaWZ0S2V5Om4uaW5jbHVkZXMoIlNoaWZ0IiksYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSkscD1lLmNhcHR1cmVUcmFuc2FjdGlvbigoKT0+e3Quc29tZVByb3AoImhhbmRsZUtleURvd24iLGQ9PmQodCxsKSl9KTtyZXR1cm4gcD8uc3RlcHMuZm9yRWFjaChkPT57bGV0IHU9ZC5tYXAoYS5tYXBwaW5nKTt1JiZyJiZhLm1heWJlU3RlcCh1KX0pLCEwfSwia2V5Ym9hcmRTaG9ydGN1dCIpO2koZGcsImlzTm9kZUFjdGl2ZSIpO3VaYT1pKChzLGU9e30pPT4oe3N0YXRlOnQsZGlzcGF0Y2g6YX0pPT57bGV0IHI9THIocyx0LnNjaGVtYSk7cmV0dXJuIGRnKHQscixlKT93YXQodCxhKTohMX0sImxpZnQiKSxwWmE9aSgoKT0+KHtzdGF0ZTpzLGRpc3BhdGNoOmV9KT0+ZmxlKHMsZSksImxpZnRFbXB0eUJsb2NrIiksaFphPWkocz0+KHtzdGF0ZTplLGRpc3BhdGNoOnR9KT0+e2xldCBhPUxyKHMsZS5zY2hlbWEpO3JldHVybiB6YXQoYSkoZSx0KX0sImxpZnRMaXN0SXRlbSIpLGZaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT51bGUocyxlKSwibmV3bGluZUluQ29kZSIpO2koSHYsImdldFNjaGVtYVR5cGVOYW1lQnlOYW1lIik7aShEbGUsImRlbGV0ZVByb3BzIik7bVphPWkoKHMsZSk9Pih7dHI6dCxzdGF0ZTphLGRpc3BhdGNoOnJ9KT0+e2xldCBuPW51bGwsbz1udWxsLGw9SHYodHlwZW9mIHM9PSJzdHJpbmciP3M6cy5uYW1lLGEuc2NoZW1hKTtyZXR1cm4gbD8obD09PSJub2RlIiYmKG49THIocyxhLnNjaGVtYSkpLGw9PT0ibWFyayImJihvPVJkKHMsYS5zY2hlbWEpKSxyJiZ0LnNlbGVjdGlvbi5yYW5nZXMuZm9yRWFjaChwPT57YS5kb2Mubm9kZXNCZXR3ZWVuKHAuJGZyb20ucG9zLHAuJHRvLnBvcywoZCx1KT0+e24mJm49PT1kLnR5cGUmJnQuc2V0Tm9kZU1hcmt1cCh1LHZvaWQgMCxEbGUoZC5hdHRycyxlKSksbyYmZC5tYXJrcy5sZW5ndGgmJmQubWFya3MuZm9yRWFjaChjPT57bz09PWMudHlwZSYmdC5hZGRNYXJrKHUsdStkLm5vZGVTaXplLG8uY3JlYXRlKERsZShjLmF0dHJzLGUpKSl9KX0pfSksITApOiExfSwicmVzZXRBdHRyaWJ1dGVzIiksZ1phPWkoKCk9Pih7dHI6cyxkaXNwYXRjaDplfSk9PihlJiZzLnNjcm9sbEludG9WaWV3KCksITApLCJzY3JvbGxJbnRvVmlldyIpLGJaYT1pKCgpPT4oe3RyOnMsZGlzcGF0Y2g6ZX0pPT57aWYoZSl7bGV0IHQ9bmV3IG5uKHMuZG9jKTtzLnNldFNlbGVjdGlvbih0KX1yZXR1cm4hMH0sInNlbGVjdEFsbCIpLHZaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5sbGUocyxlKSwic2VsZWN0Tm9kZUJhY2t3YXJkIikseFphPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PmRsZShzLGUpLCJzZWxlY3ROb2RlRm9yd2FyZCIpLHlaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5rYXQocyxlKSwic2VsZWN0UGFyZW50Tm9kZSIpLHdaYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5nbGUocyxlKSwic2VsZWN0VGV4dGJsb2NrRW5kIiksa1phPWkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9Pm1sZShzLGUpLCJzZWxlY3RUZXh0YmxvY2tTdGFydCIpO2koY1gsImNyZWF0ZURvY3VtZW50Iik7U1phPWkoKHMsZT0hMSx0PXt9LGE9e30pPT4oe2VkaXRvcjpyLHRyOm4sZGlzcGF0Y2g6byxjb21tYW5kczpsfSk9Pnt2YXIgcCxkO2xldHtkb2M6dX09bjtpZih0LnByZXNlcnZlV2hpdGVzcGFjZSE9PSJmdWxsIil7bGV0IGM9Y1gocyxyLnNjaGVtYSx0LHtlcnJvck9uSW52YWxpZENvbnRlbnQ6KHA9YS5lcnJvck9uSW52YWxpZENvbnRlbnQpIT09bnVsbCYmcCE9PXZvaWQgMD9wOnIub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2t9KTtyZXR1cm4gbyYmbi5yZXBsYWNlV2l0aCgwLHUuY29udGVudC5zaXplLGMpLnNldE1ldGEoInByZXZlbnRVcGRhdGUiLCFlKSwhMH1yZXR1cm4gbyYmbi5zZXRNZXRhKCJwcmV2ZW50VXBkYXRlIiwhZSksbC5pbnNlcnRDb250ZW50QXQoe2Zyb206MCx0bzp1LmNvbnRlbnQuc2l6ZX0scyx7cGFyc2VPcHRpb25zOnQsZXJyb3JPbkludmFsaWRDb250ZW50OihkPWEuZXJyb3JPbkludmFsaWRDb250ZW50KSE9PW51bGwmJmQhPT12b2lkIDA/ZDpyLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSl9LCJzZXRDb250ZW50Iik7aShMbGUsImdldE1hcmtBdHRyaWJ1dGVzIik7aShSbGUsImNvbWJpbmVUcmFuc2FjdGlvblN0ZXBzIik7aShIYXQsImRlZmF1bHRCbG9ja0F0Iik7aShMaGEsImZpbmRDaGlsZHJlbiIpO2koT2xlLCJmaW5kQ2hpbGRyZW5JblJhbmdlIik7aShxYXQsImZpbmRQYXJlbnROb2RlQ2xvc2VzdFRvUG9zIik7aShxdiwiZmluZFBhcmVudE5vZGUiKTtpKGRYLCJnZXRTY2hlbWEiKTtpKEVoYSwiZ2VuZXJhdGVIVE1MIik7aShQaGEsImdlbmVyYXRlSlNPTiIpO2koRWxlLCJnZXRUZXh0Iik7aShJaGEsImdlbmVyYXRlVGV4dCIpO2koamF0LCJnZXROb2RlQXR0cmlidXRlcyIpO2koZlgsImdldEF0dHJpYnV0ZXMiKTtpKFZhdCwicmVtb3ZlRHVwbGljYXRlcyIpO2koX1phLCJzaW1wbGlmeUNoYW5nZWRSYW5nZXMiKTtpKEZsZSwiZ2V0Q2hhbmdlZFJhbmdlcyIpO2koVWF0LCJnZXREZWJ1Z0pTT04iKTtpKFZ2LCJnZXRNYXJrc0JldHdlZW4iKTtBaGE9aSgocyxlLHQsYT0yMCk9PntsZXQgcj1zLmRvYy5yZXNvbHZlKHQpLG49YSxvPW51bGw7Zm9yKDtuPjAmJm89PT1udWxsOyl7bGV0IGw9ci5ub2RlKG4pO2w/LnR5cGUubmFtZT09PWU/bz1sOm4tPTF9cmV0dXJuW28sbl19LCJnZXROb2RlQXRQb3NpdGlvbiIpO2koanYsImdldFNwbGl0dGVkQXR0cmlidXRlcyIpO2kodVgsImlzTWFya0FjdGl2ZSIpO2koV2F0LCJpc0FjdGl2ZSIpO05oYT1pKChzLGUpPT57bGV0eyRmcm9tOnQsJHRvOmEsJGFuY2hvcjpyfT1zLnNlbGVjdGlvbjtpZihlKXtsZXQgbj1xdihsPT5sLnR5cGUubmFtZT09PWUpKHMuc2VsZWN0aW9uKTtpZighbilyZXR1cm4hMTtsZXQgbz1zLmRvYy5yZXNvbHZlKG4ucG9zKzEpO3JldHVybiByLnBvcysxPT09by5lbmQoKX1yZXR1cm4hKGEucGFyZW50T2Zmc2V0PGEucGFyZW50Lm5vZGVTaXplLTJ8fHQucG9zIT09YS5wb3MpfSwiaXNBdEVuZE9mTm9kZSIpLFJoYT1pKHM9PntsZXR7JGZyb206ZSwkdG86dH09cy5zZWxlY3Rpb247cmV0dXJuIShlLnBhcmVudE9mZnNldD4wfHxlLnBvcyE9PXQucG9zKX0sImlzQXRTdGFydE9mTm9kZSIpO2koUGxlLCJpc0xpc3QiKTtpKHBYLCJpc05vZGVFbXB0eSIpO2koQmxlLCJpc05vZGVTZWxlY3Rpb24iKTtpKE9oYSwicG9zVG9ET01SZWN0Iik7aSh3aGEsInJld3JpdGVVbmtub3duQ29udGVudElubmVyIik7aShGaGEsInJld3JpdGVVbmtub3duQ29udGVudCIpO2koTVphLCJjYW5TZXRNYXJrIik7elphPWkoKHMsZT17fSk9Pih7dHI6dCxzdGF0ZTphLGRpc3BhdGNoOnJ9KT0+e2xldHtzZWxlY3Rpb246bn09dCx7ZW1wdHk6byxyYW5nZXM6bH09bixwPVJkKHMsYS5zY2hlbWEpO2lmKHIpaWYobyl7bGV0IGQ9TGxlKGEscCk7dC5hZGRTdG9yZWRNYXJrKHAuY3JlYXRlKHsuLi5kLC4uLmV9KSl9ZWxzZSBsLmZvckVhY2goZD0+e2xldCB1PWQuJGZyb20ucG9zLGM9ZC4kdG8ucG9zO2EuZG9jLm5vZGVzQmV0d2Vlbih1LGMsKGIsdik9PntsZXQgeD1NYXRoLm1heCh2LHUpLG09TWF0aC5taW4oditiLm5vZGVTaXplLGMpO2IubWFya3MuZmluZCh5PT55LnR5cGU9PT1wKT9iLm1hcmtzLmZvckVhY2goeT0+e3A9PT15LnR5cGUmJnQuYWRkTWFyayh4LG0scC5jcmVhdGUoey4uLnkuYXR0cnMsLi4uZX0pKX0pOnQuYWRkTWFyayh4LG0scC5jcmVhdGUoZSkpfSl9KTtyZXR1cm4gTVphKGEsdCxwKX0sInNldE1hcmsiKSxDWmE9aSgocyxlKT0+KHt0cjp0fSk9Pih0LnNldE1ldGEocyxlKSwhMCksInNldE1ldGEiKSxUWmE9aSgocyxlPXt9KT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmEsY2hhaW46cn0pPT57bGV0IG49THIocyx0LnNjaGVtYSksbztyZXR1cm4gdC5zZWxlY3Rpb24uJGFuY2hvci5zYW1lUGFyZW50KHQuc2VsZWN0aW9uLiRoZWFkKSYmKG89dC5zZWxlY3Rpb24uJGFuY2hvci5wYXJlbnQuYXR0cnMpLG4uaXNUZXh0YmxvY2s/cigpLmNvbW1hbmQoKHtjb21tYW5kczpsfSk9PmJsZShuLHsuLi5vLC4uLmV9KSh0KT8hMDpsLmNsZWFyTm9kZXMoKSkuY29tbWFuZCgoe3N0YXRlOmx9KT0+YmxlKG4sey4uLm8sLi4uZX0pKGwsYSkpLnJ1bigpOihjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06IEN1cnJlbnRseSAic2V0Tm9kZSgpIiBvbmx5IHN1cHBvcnRzIHRleHQgYmxvY2sgbm9kZXMuJyksITEpfSwic2V0Tm9kZSIpLCRaYT1pKHM9Pih7dHI6ZSxkaXNwYXRjaDp0fSk9PntpZih0KXtsZXR7ZG9jOmF9PWUscj1hMihzLDAsYS5jb250ZW50LnNpemUpLG49RnQuY3JlYXRlKGEscik7ZS5zZXRTZWxlY3Rpb24obil9cmV0dXJuITB9LCJzZXROb2RlU2VsZWN0aW9uIiksRFphPWkocz0+KHt0cjplLGRpc3BhdGNoOnR9KT0+e2lmKHQpe2xldHtkb2M6YX09ZSx7ZnJvbTpyLHRvOm59PXR5cGVvZiBzPT0ibnVtYmVyIj97ZnJvbTpzLHRvOnN9OnMsbz1KdC5hdFN0YXJ0KGEpLmZyb20sbD1KdC5hdEVuZChhKS50byxwPWEyKHIsbyxsKSxkPWEyKG4sbyxsKSx1PUp0LmNyZWF0ZShhLHAsZCk7ZS5zZXRTZWxlY3Rpb24odSl9cmV0dXJuITB9LCJzZXRUZXh0U2VsZWN0aW9uIiksTFphPWkocz0+KHtzdGF0ZTplLGRpc3BhdGNoOnR9KT0+e2xldCBhPUxyKHMsZS5zY2hlbWEpO3JldHVybiBDYXQoYSkoZSx0KX0sInNpbmtMaXN0SXRlbSIpO2koa2hhLCJlbnN1cmVNYXJrcyIpO0VaYT1pKCh7a2VlcE1hcmtzOnM9ITB9PXt9KT0+KHt0cjplLHN0YXRlOnQsZGlzcGF0Y2g6YSxlZGl0b3I6cn0pPT57bGV0e3NlbGVjdGlvbjpuLGRvYzpvfT1lLHskZnJvbTpsLCR0bzpwfT1uLGQ9ci5leHRlbnNpb25NYW5hZ2VyLmF0dHJpYnV0ZXMsdT1qdihkLGwubm9kZSgpLnR5cGUubmFtZSxsLm5vZGUoKS5hdHRycyk7aWYobiBpbnN0YW5jZW9mIEZ0JiZuLm5vZGUuaXNCbG9jaylyZXR1cm4hbC5wYXJlbnRPZmZzZXR8fCF6bChvLGwucG9zKT8hMTooYSYmKHMmJmtoYSh0LHIuZXh0ZW5zaW9uTWFuYWdlci5zcGxpdHRhYmxlTWFya3MpLGUuc3BsaXQobC5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTtpZighbC5wYXJlbnQuaXNCbG9jaylyZXR1cm4hMTtsZXQgYz1wLnBhcmVudE9mZnNldD09PXAucGFyZW50LmNvbnRlbnQuc2l6ZSxiPWwuZGVwdGg9PT0wP3ZvaWQgMDpIYXQobC5ub2RlKC0xKS5jb250ZW50TWF0Y2hBdChsLmluZGV4QWZ0ZXIoLTEpKSksdj1jJiZiP1t7dHlwZTpiLGF0dHJzOnV9XTp2b2lkIDAseD16bChlLmRvYyxlLm1hcHBpbmcubWFwKGwucG9zKSwxLHYpO2lmKCF2JiYheCYmemwoZS5kb2MsZS5tYXBwaW5nLm1hcChsLnBvcyksMSxiP1t7dHlwZTpifV06dm9pZCAwKSYmKHg9ITAsdj1iP1t7dHlwZTpiLGF0dHJzOnV9XTp2b2lkIDApLGEpe2lmKHgmJihuIGluc3RhbmNlb2YgSnQmJmUuZGVsZXRlU2VsZWN0aW9uKCksZS5zcGxpdChlLm1hcHBpbmcubWFwKGwucG9zKSwxLHYpLGImJiFjJiYhbC5wYXJlbnRPZmZzZXQmJmwucGFyZW50LnR5cGUhPT1iKSl7bGV0IG09ZS5tYXBwaW5nLm1hcChsLmJlZm9yZSgpKSxmPWUuZG9jLnJlc29sdmUobSk7bC5ub2RlKC0xKS5jYW5SZXBsYWNlV2l0aChmLmluZGV4KCksZi5pbmRleCgpKzEsYikmJmUuc2V0Tm9kZU1hcmt1cChlLm1hcHBpbmcubWFwKGwuYmVmb3JlKCkpLGIpfXMmJmtoYSh0LHIuZXh0ZW5zaW9uTWFuYWdlci5zcGxpdHRhYmxlTWFya3MpLGUuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4geH0sInNwbGl0QmxvY2siKSxQWmE9aSgocyxlPXt9KT0+KHt0cjp0LHN0YXRlOmEsZGlzcGF0Y2g6cixlZGl0b3I6bn0pPT57dmFyIG87bGV0IGw9THIocyxhLnNjaGVtYSkseyRmcm9tOnAsJHRvOmR9PWEuc2VsZWN0aW9uLHU9YS5zZWxlY3Rpb24ubm9kZTtpZih1JiZ1LmlzQmxvY2t8fHAuZGVwdGg8Mnx8IXAuc2FtZVBhcmVudChkKSlyZXR1cm4hMTtsZXQgYz1wLm5vZGUoLTEpO2lmKGMudHlwZSE9PWwpcmV0dXJuITE7bGV0IGI9bi5leHRlbnNpb25NYW5hZ2VyLmF0dHJpYnV0ZXM7aWYocC5wYXJlbnQuY29udGVudC5zaXplPT09MCYmcC5ub2RlKC0xKS5jaGlsZENvdW50PT09cC5pbmRleEFmdGVyKC0xKSl7aWYocC5kZXB0aD09PTJ8fHAubm9kZSgtMykudHlwZSE9PWx8fHAuaW5kZXgoLTIpIT09cC5ub2RlKC0yKS5jaGlsZENvdW50LTEpcmV0dXJuITE7aWYocil7bGV0IHk9cnQuZW1wdHksTT1wLmluZGV4KC0xKT8xOnAuaW5kZXgoLTIpPzI6Mztmb3IobGV0ICQ9cC5kZXB0aC1NOyQ+PXAuZGVwdGgtMzskLT0xKXk9cnQuZnJvbShwLm5vZGUoJCkuY29weSh5KSk7bGV0IHo9cC5pbmRleEFmdGVyKC0xKTxwLm5vZGUoLTIpLmNoaWxkQ291bnQ/MTpwLmluZGV4QWZ0ZXIoLTIpPHAubm9kZSgtMykuY2hpbGRDb3VudD8yOjMsTj17Li4uanYoYixwLm5vZGUoKS50eXBlLm5hbWUscC5ub2RlKCkuYXR0cnMpLC4uLmV9LEM9KChvPWwuY29udGVudE1hdGNoLmRlZmF1bHRUeXBlKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY3JlYXRlQW5kRmlsbChOKSl8fHZvaWQgMDt5PXkuYXBwZW5kKHJ0LmZyb20obC5jcmVhdGVBbmRGaWxsKG51bGwsQyl8fHZvaWQgMCkpO2xldCBfPXAuYmVmb3JlKHAuZGVwdGgtKE0tMSkpO3QucmVwbGFjZShfLHAuYWZ0ZXIoLXopLG5ldyBfdCh5LDQtTSwwKSk7bGV0IE89LTE7dC5kb2Mubm9kZXNCZXR3ZWVuKF8sdC5kb2MuY29udGVudC5zaXplLCgkLEUpPT57aWYoTz4tMSlyZXR1cm4hMTskLmlzVGV4dGJsb2NrJiYkLmNvbnRlbnQuc2l6ZT09PTAmJihPPUUrMSl9KSxPPi0xJiZ0LnNldFNlbGVjdGlvbihKdC5uZWFyKHQuZG9jLnJlc29sdmUoTykpKSx0LnNjcm9sbEludG9WaWV3KCl9cmV0dXJuITB9bGV0IHY9ZC5wb3M9PT1wLmVuZCgpP2MuY29udGVudE1hdGNoQXQoMCkuZGVmYXVsdFR5cGU6bnVsbCx4PXsuLi5qdihiLGMudHlwZS5uYW1lLGMuYXR0cnMpLC4uLmV9LG09ey4uLmp2KGIscC5ub2RlKCkudHlwZS5uYW1lLHAubm9kZSgpLmF0dHJzKSwuLi5lfTt0LmRlbGV0ZShwLnBvcyxkLnBvcyk7bGV0IGY9dj9be3R5cGU6bCxhdHRyczp4fSx7dHlwZTp2LGF0dHJzOm19XTpbe3R5cGU6bCxhdHRyczp4fV07aWYoIXpsKHQuZG9jLHAucG9zLDIpKXJldHVybiExO2lmKHIpe2xldHtzZWxlY3Rpb246eSxzdG9yZWRNYXJrczpNfT1hLHtzcGxpdHRhYmxlTWFya3M6en09bi5leHRlbnNpb25NYW5hZ2VyLE49TXx8eS4kdG8ucGFyZW50T2Zmc2V0JiZ5LiRmcm9tLm1hcmtzKCk7aWYodC5zcGxpdChwLnBvcywyLGYpLnNjcm9sbEludG9WaWV3KCksIU58fCFyKXJldHVybiEwO2xldCBDPU4uZmlsdGVyKF89PnouaW5jbHVkZXMoXy50eXBlLm5hbWUpKTt0LmVuc3VyZU1hcmtzKEMpfXJldHVybiEwfSwic3BsaXRMaXN0SXRlbSIpLERhdD1pKChzLGUpPT57bGV0IHQ9cXYobz0+by50eXBlPT09ZSkocy5zZWxlY3Rpb24pO2lmKCF0KXJldHVybiEwO2xldCBhPXMuZG9jLnJlc29sdmUoTWF0aC5tYXgoMCx0LnBvcy0xKSkuYmVmb3JlKHQuZGVwdGgpO2lmKGE9PT12b2lkIDApcmV0dXJuITA7bGV0IHI9cy5kb2Mubm9kZUF0KGEpO3JldHVybiB0Lm5vZGUudHlwZT09PXI/LnR5cGUmJlpsKHMuZG9jLHQucG9zKSYmcy5qb2luKHQucG9zKSwhMH0sImpvaW5MaXN0QmFja3dhcmRzIiksTGF0PWkoKHMsZSk9PntsZXQgdD1xdihvPT5vLnR5cGU9PT1lKShzLnNlbGVjdGlvbik7aWYoIXQpcmV0dXJuITA7bGV0IGE9cy5kb2MucmVzb2x2ZSh0LnN0YXJ0KS5hZnRlcih0LmRlcHRoKTtpZihhPT09dm9pZCAwKXJldHVybiEwO2xldCByPXMuZG9jLm5vZGVBdChhKTtyZXR1cm4gdC5ub2RlLnR5cGU9PT1yPy50eXBlJiZabChzLmRvYyxhKSYmcy5qb2luKGEpLCEwfSwiam9pbkxpc3RGb3J3YXJkcyIpLElaYT1pKChzLGUsdCxhPXt9KT0+KHtlZGl0b3I6cix0cjpuLHN0YXRlOm8sZGlzcGF0Y2g6bCxjaGFpbjpwLGNvbW1hbmRzOmQsY2FuOnV9KT0+e2xldHtleHRlbnNpb25zOmMsc3BsaXR0YWJsZU1hcmtzOmJ9PXIuZXh0ZW5zaW9uTWFuYWdlcix2PUxyKHMsby5zY2hlbWEpLHg9THIoZSxvLnNjaGVtYSkse3NlbGVjdGlvbjptLHN0b3JlZE1hcmtzOmZ9PW8seyRmcm9tOnksJHRvOk19PW0sej15LmJsb2NrUmFuZ2UoTSksTj1mfHxtLiR0by5wYXJlbnRPZmZzZXQmJm0uJGZyb20ubWFya3MoKTtpZigheilyZXR1cm4hMTtsZXQgQz1xdihfPT5QbGUoXy50eXBlLm5hbWUsYykpKG0pO2lmKHouZGVwdGg+PTEmJkMmJnouZGVwdGgtQy5kZXB0aDw9MSl7aWYoQy5ub2RlLnR5cGU9PT12KXJldHVybiBkLmxpZnRMaXN0SXRlbSh4KTtpZihQbGUoQy5ub2RlLnR5cGUubmFtZSxjKSYmdi52YWxpZENvbnRlbnQoQy5ub2RlLmNvbnRlbnQpJiZsKXJldHVybiBwKCkuY29tbWFuZCgoKT0+KG4uc2V0Tm9kZU1hcmt1cChDLnBvcyx2KSwhMCkpLmNvbW1hbmQoKCk9PkRhdChuLHYpKS5jb21tYW5kKCgpPT5MYXQobix2KSkucnVuKCl9cmV0dXJuIXR8fCFOfHwhbD9wKCkuY29tbWFuZCgoKT0+dSgpLndyYXBJbkxpc3QodixhKT8hMDpkLmNsZWFyTm9kZXMoKSkud3JhcEluTGlzdCh2LGEpLmNvbW1hbmQoKCk9PkRhdChuLHYpKS5jb21tYW5kKCgpPT5MYXQobix2KSkucnVuKCk6cCgpLmNvbW1hbmQoKCk9PntsZXQgXz11KCkud3JhcEluTGlzdCh2LGEpLE89Ti5maWx0ZXIoJD0+Yi5pbmNsdWRlcygkLnR5cGUubmFtZSkpO3JldHVybiBuLmVuc3VyZU1hcmtzKE8pLF8/ITA6ZC5jbGVhck5vZGVzKCl9KS53cmFwSW5MaXN0KHYsYSkuY29tbWFuZCgoKT0+RGF0KG4sdikpLmNvbW1hbmQoKCk9PkxhdChuLHYpKS5ydW4oKX0sInRvZ2dsZUxpc3QiKSxBWmE9aSgocyxlPXt9LHQ9e30pPT4oe3N0YXRlOmEsY29tbWFuZHM6cn0pPT57bGV0e2V4dGVuZEVtcHR5TWFya1JhbmdlOm49ITF9PXQsbz1SZChzLGEuc2NoZW1hKTtyZXR1cm4gdVgoYSxvLGUpP3IudW5zZXRNYXJrKG8se2V4dGVuZEVtcHR5TWFya1JhbmdlOm59KTpyLnNldE1hcmsobyxlKX0sInRvZ2dsZU1hcmsiKSxOWmE9aSgocyxlLHQ9e30pPT4oe3N0YXRlOmEsY29tbWFuZHM6cn0pPT57bGV0IG49THIocyxhLnNjaGVtYSksbz1McihlLGEuc2NoZW1hKSxsPWRnKGEsbix0KSxwO3JldHVybiBhLnNlbGVjdGlvbi4kYW5jaG9yLnNhbWVQYXJlbnQoYS5zZWxlY3Rpb24uJGhlYWQpJiYocD1hLnNlbGVjdGlvbi4kYW5jaG9yLnBhcmVudC5hdHRycyksbD9yLnNldE5vZGUobyxwKTpyLnNldE5vZGUobix7Li4ucCwuLi50fSl9LCJ0b2dnbGVOb2RlIiksUlphPWkoKHMsZT17fSk9Pih7c3RhdGU6dCxjb21tYW5kczphfSk9PntsZXQgcj1McihzLHQuc2NoZW1hKTtyZXR1cm4gZGcodCxyLGUpP2EubGlmdChyKTphLndyYXBJbihyLGUpfSwidG9nZ2xlV3JhcCIpLE9aYT1pKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT57bGV0IHQ9cy5wbHVnaW5zO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSs9MSl7bGV0IHI9dFthXSxuO2lmKHIuc3BlYy5pc0lucHV0UnVsZXMmJihuPXIuZ2V0U3RhdGUocykpKXtpZihlKXtsZXQgbz1zLnRyLGw9bi50cmFuc2Zvcm07Zm9yKGxldCBwPWwuc3RlcHMubGVuZ3RoLTE7cD49MDtwLT0xKW8uc3RlcChsLnN0ZXBzW3BdLmludmVydChsLmRvY3NbcF0pKTtpZihuLnRleHQpe2xldCBwPW8uZG9jLnJlc29sdmUobi5mcm9tKS5tYXJrcygpO28ucmVwbGFjZVdpdGgobi5mcm9tLG4udG8scy5zY2hlbWEudGV4dChuLnRleHQscCkpfWVsc2Ugby5kZWxldGUobi5mcm9tLG4udG8pfXJldHVybiEwfX1yZXR1cm4hMX0sInVuZG9JbnB1dFJ1bGUiKSxGWmE9aSgoKT0+KHt0cjpzLGRpc3BhdGNoOmV9KT0+e2xldHtzZWxlY3Rpb246dH09cyx7ZW1wdHk6YSxyYW5nZXM6cn09dDtyZXR1cm4gYXx8ZSYmci5mb3JFYWNoKG49PntzLnJlbW92ZU1hcmsobi4kZnJvbS5wb3Msbi4kdG8ucG9zKX0pLCEwfSwidW5zZXRBbGxNYXJrcyIpLEJaYT1pKChzLGU9e30pPT4oe3RyOnQsc3RhdGU6YSxkaXNwYXRjaDpyfSk9Pnt2YXIgbjtsZXR7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6bz0hMX09ZSx7c2VsZWN0aW9uOmx9PXQscD1SZChzLGEuc2NoZW1hKSx7JGZyb206ZCxlbXB0eTp1LHJhbmdlczpjfT1sO2lmKCFyKXJldHVybiEwO2lmKHUmJm8pe2xldHtmcm9tOmIsdG86dn09bCx4PShuPWQubWFya3MoKS5maW5kKGY9PmYudHlwZT09PXApKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uYXR0cnMsbT1sWChkLHAseCk7bSYmKGI9bS5mcm9tLHY9bS50byksdC5yZW1vdmVNYXJrKGIsdixwKX1lbHNlIGMuZm9yRWFjaChiPT57dC5yZW1vdmVNYXJrKGIuJGZyb20ucG9zLGIuJHRvLnBvcyxwKX0pO3JldHVybiB0LnJlbW92ZVN0b3JlZE1hcmsocCksITB9LCJ1bnNldE1hcmsiKSxIWmE9aSgocyxlPXt9KT0+KHt0cjp0LHN0YXRlOmEsZGlzcGF0Y2g6cn0pPT57bGV0IG49bnVsbCxvPW51bGwsbD1Idih0eXBlb2Ygcz09InN0cmluZyI/czpzLm5hbWUsYS5zY2hlbWEpO3JldHVybiBsPyhsPT09Im5vZGUiJiYobj1McihzLGEuc2NoZW1hKSksbD09PSJtYXJrIiYmKG89UmQocyxhLnNjaGVtYSkpLHImJnQuc2VsZWN0aW9uLnJhbmdlcy5mb3JFYWNoKHA9PntsZXQgZD1wLiRmcm9tLnBvcyx1PXAuJHRvLnBvcyxjLGIsdix4O3Quc2VsZWN0aW9uLmVtcHR5P2EuZG9jLm5vZGVzQmV0d2VlbihkLHUsKG0sZik9PntuJiZuPT09bS50eXBlJiYodj1NYXRoLm1heChmLGQpLHg9TWF0aC5taW4oZittLm5vZGVTaXplLHUpLGM9ZixiPW0pfSk6YS5kb2Mubm9kZXNCZXR3ZWVuKGQsdSwobSxmKT0+e2Y8ZCYmbiYmbj09PW0udHlwZSYmKHY9TWF0aC5tYXgoZixkKSx4PU1hdGgubWluKGYrbS5ub2RlU2l6ZSx1KSxjPWYsYj1tKSxmPj1kJiZmPD11JiYobiYmbj09PW0udHlwZSYmdC5zZXROb2RlTWFya3VwKGYsdm9pZCAwLHsuLi5tLmF0dHJzLC4uLmV9KSxvJiZtLm1hcmtzLmxlbmd0aCYmbS5tYXJrcy5mb3JFYWNoKHk9PntpZihvPT09eS50eXBlKXtsZXQgTT1NYXRoLm1heChmLGQpLHo9TWF0aC5taW4oZittLm5vZGVTaXplLHUpO3QuYWRkTWFyayhNLHosby5jcmVhdGUoey4uLnkuYXR0cnMsLi4uZX0pKX19KSl9KSxiJiYoYyE9PXZvaWQgMCYmdC5zZXROb2RlTWFya3VwKGMsdm9pZCAwLHsuLi5iLmF0dHJzLC4uLmV9KSxvJiZiLm1hcmtzLmxlbmd0aCYmYi5tYXJrcy5mb3JFYWNoKG09PntvPT09bS50eXBlJiZ0LmFkZE1hcmsodix4LG8uY3JlYXRlKHsuLi5tLmF0dHJzLC4uLmV9KSl9KSl9KSwhMCk6ITF9LCJ1cGRhdGVBdHRyaWJ1dGVzIikscVphPWkoKHMsZT17fSk9Pih7c3RhdGU6dCxkaXNwYXRjaDphfSk9PntsZXQgcj1McihzLHQuc2NoZW1hKTtyZXR1cm4gU2F0KHIsZSkodCxhKX0sIndyYXBJbiIpLGpaYT1pKChzLGU9e30pPT4oe3N0YXRlOnQsZGlzcGF0Y2g6YX0pPT57bGV0IHI9THIocyx0LnNjaGVtYSk7cmV0dXJuIE1hdChyLGUpKHQsYSl9LCJ3cmFwSW5MaXN0IiksVlphPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGJsdXI6TllhLGNsZWFyQ29udGVudDpSWWEsY2xlYXJOb2RlczpPWWEsY29tbWFuZDpGWWEsY3JlYXRlUGFyYWdyYXBoTmVhcjpCWWEsY3V0OkhZYSxkZWxldGVDdXJyZW50Tm9kZTpxWWEsZGVsZXRlTm9kZTpqWWEsZGVsZXRlUmFuZ2U6VllhLGRlbGV0ZVNlbGVjdGlvbjpVWWEsZW50ZXI6V1lhLGV4aXRDb2RlOkdZYSxleHRlbmRNYXJrUmFuZ2U6S1lhLGZpcnN0OllZYSxmb2N1czpaWWEsZm9yRWFjaDpYWWEsaW5zZXJ0Q29udGVudDpRWWEsaW5zZXJ0Q29udGVudEF0OmVaYSxqb2luQmFja3dhcmQ6c1phLGpvaW5Eb3duOmFaYSxqb2luRm9yd2FyZDppWmEsam9pbkl0ZW1CYWNrd2FyZDpyWmEsam9pbkl0ZW1Gb3J3YXJkOm9aYSxqb2luVGV4dGJsb2NrQmFja3dhcmQ6blphLGpvaW5UZXh0YmxvY2tGb3J3YXJkOmxaYSxqb2luVXA6dFphLGtleWJvYXJkU2hvcnRjdXQ6ZFphLGxpZnQ6dVphLGxpZnRFbXB0eUJsb2NrOnBaYSxsaWZ0TGlzdEl0ZW06aFphLG5ld2xpbmVJbkNvZGU6ZlphLHJlc2V0QXR0cmlidXRlczptWmEsc2Nyb2xsSW50b1ZpZXc6Z1phLHNlbGVjdEFsbDpiWmEsc2VsZWN0Tm9kZUJhY2t3YXJkOnZaYSxzZWxlY3ROb2RlRm9yd2FyZDp4WmEsc2VsZWN0UGFyZW50Tm9kZTp5WmEsc2VsZWN0VGV4dGJsb2NrRW5kOndaYSxzZWxlY3RUZXh0YmxvY2tTdGFydDprWmEsc2V0Q29udGVudDpTWmEsc2V0TWFyazp6WmEsc2V0TWV0YTpDWmEsc2V0Tm9kZTpUWmEsc2V0Tm9kZVNlbGVjdGlvbjokWmEsc2V0VGV4dFNlbGVjdGlvbjpEWmEsc2lua0xpc3RJdGVtOkxaYSxzcGxpdEJsb2NrOkVaYSxzcGxpdExpc3RJdGVtOlBaYSx0b2dnbGVMaXN0OklaYSx0b2dnbGVNYXJrOkFaYSx0b2dnbGVOb2RlOk5aYSx0b2dnbGVXcmFwOlJaYSx1bmRvSW5wdXRSdWxlOk9aYSx1bnNldEFsbE1hcmtzOkZaYSx1bnNldE1hcms6QlphLHVwZGF0ZUF0dHJpYnV0ZXM6SFphLHdyYXBJbjpxWmEsd3JhcEluTGlzdDpqWmF9KSxTaGE9d2kuY3JlYXRlKHtuYW1lOiJjb21tYW5kcyIsYWRkQ29tbWFuZHMoKXtyZXR1cm57Li4uVlphfX19KSxfaGE9d2kuY3JlYXRlKHtuYW1lOiJkcm9wIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJ0aXB0YXBEcm9wIikscHJvcHM6e2hhbmRsZURyb3A6aSgocyxlLHQsYSk9Pnt0aGlzLmVkaXRvci5lbWl0KCJkcm9wIix7ZWRpdG9yOnRoaXMuZWRpdG9yLGV2ZW50OmUsc2xpY2U6dCxtb3ZlZDphfSl9LCJoYW5kbGVEcm9wIil9fSldfX0pLE1oYT13aS5jcmVhdGUoe25hbWU6ImVkaXRhYmxlIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJlZGl0YWJsZSIpLHByb3BzOntlZGl0YWJsZTppKCgpPT50aGlzLmVkaXRvci5vcHRpb25zLmVkaXRhYmxlLCJlZGl0YWJsZSIpfX0pXX19KSx6aGE9bmV3ICRyKCJmb2N1c0V2ZW50cyIpLENoYT13aS5jcmVhdGUoe25hbWU6ImZvY3VzRXZlbnRzIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtsZXR7ZWRpdG9yOnN9PXRoaXM7cmV0dXJuW25ldyBZcyh7a2V5OnpoYSxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntmb2N1czppKChlLHQpPT57cy5pc0ZvY3VzZWQ9ITA7bGV0IGE9cy5zdGF0ZS50ci5zZXRNZXRhKCJmb2N1cyIse2V2ZW50OnR9KS5zZXRNZXRhKCJhZGRUb0hpc3RvcnkiLCExKTtyZXR1cm4gZS5kaXNwYXRjaChhKSwhMX0sImZvY3VzIiksYmx1cjppKChlLHQpPT57cy5pc0ZvY3VzZWQ9ITE7bGV0IGE9cy5zdGF0ZS50ci5zZXRNZXRhKCJibHVyIix7ZXZlbnQ6dH0pLnNldE1ldGEoImFkZFRvSGlzdG9yeSIsITEpO3JldHVybiBlLmRpc3BhdGNoKGEpLCExfSwiYmx1ciIpfX19KV19fSksVGhhPXdpLmNyZWF0ZSh7bmFtZToia2V5bWFwIixhZGRLZXlib2FyZFNob3J0Y3V0cygpe2xldCBzPWkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmZpcnN0KCh7Y29tbWFuZHM6b30pPT5bKCk9Pm8udW5kb0lucHV0UnVsZSgpLCgpPT5vLmNvbW1hbmQoKHt0cjpsfSk9PntsZXR7c2VsZWN0aW9uOnAsZG9jOmR9PWwse2VtcHR5OnUsJGFuY2hvcjpjfT1wLHtwb3M6YixwYXJlbnQ6dn09Yyx4PWMucGFyZW50LmlzVGV4dGJsb2NrJiZiPjA/bC5kb2MucmVzb2x2ZShiLTEpOmMsbT14LnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nLGY9Yy5wb3MtYy5wYXJlbnRPZmZzZXQseT1tJiZ4LnBhcmVudC5jaGlsZENvdW50PT09MT9mPT09Yy5wb3M6UXQuYXRTdGFydChkKS5mcm9tPT09YjtyZXR1cm4hdXx8IXYudHlwZS5pc1RleHRibG9ja3x8di50ZXh0Q29udGVudC5sZW5ndGh8fCF5fHx5JiZjLnBhcmVudC50eXBlLm5hbWU9PT0icGFyYWdyYXBoIj8hMTpvLmNsZWFyTm9kZXMoKX0pLCgpPT5vLmRlbGV0ZVNlbGVjdGlvbigpLCgpPT5vLmpvaW5CYWNrd2FyZCgpLCgpPT5vLnNlbGVjdE5vZGVCYWNrd2FyZCgpXSksImhhbmRsZUJhY2tzcGFjZSIpLGU9aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuZmlyc3QoKHtjb21tYW5kczpvfSk9PlsoKT0+by5kZWxldGVTZWxlY3Rpb24oKSwoKT0+by5kZWxldGVDdXJyZW50Tm9kZSgpLCgpPT5vLmpvaW5Gb3J3YXJkKCksKCk9Pm8uc2VsZWN0Tm9kZUZvcndhcmQoKV0pLCJoYW5kbGVEZWxldGUiKSxhPXtFbnRlcjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5maXJzdCgoe2NvbW1hbmRzOm99KT0+WygpPT5vLm5ld2xpbmVJbkNvZGUoKSwoKT0+by5jcmVhdGVQYXJhZ3JhcGhOZWFyKCksKCk9Pm8ubGlmdEVtcHR5QmxvY2soKSwoKT0+by5zcGxpdEJsb2NrKCldKSwiaGFuZGxlRW50ZXIiKSwiTW9kLUVudGVyIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5leGl0Q29kZSgpLCJNb2QtRW50ZXIiKSxCYWNrc3BhY2U6cywiTW9kLUJhY2tzcGFjZSI6cywiU2hpZnQtQmFja3NwYWNlIjpzLERlbGV0ZTplLCJNb2QtRGVsZXRlIjplLCJNb2QtYSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2VsZWN0QWxsKCksIk1vZC1hIil9LHI9ey4uLmF9LG49ey4uLmEsIkN0cmwtaCI6cywiQWx0LUJhY2tzcGFjZSI6cywiQ3RybC1kIjplLCJDdHJsLUFsdC1CYWNrc3BhY2UiOmUsIkFsdC1EZWxldGUiOmUsIkFsdC1kIjplLCJDdHJsLWEiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdFRleHRibG9ja1N0YXJ0KCksIkN0cmwtYSIpLCJDdHJsLWUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdFRleHRibG9ja0VuZCgpLCJDdHJsLWUiKX07cmV0dXJuIG5nKCl8fCRsZSgpP246cn0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW25ldyBZcyh7a2V5Om5ldyAkcigiY2xlYXJEb2N1bWVudCIpLGFwcGVuZFRyYW5zYWN0aW9uOmkoKHMsZSx0KT0+e2lmKHMuc29tZShtPT5tLmdldE1ldGEoImNvbXBvc2l0aW9uIikpKXJldHVybjtsZXQgYT1zLnNvbWUobT0+bS5kb2NDaGFuZ2VkKSYmIWUuZG9jLmVxKHQuZG9jKSxyPXMuc29tZShtPT5tLmdldE1ldGEoInByZXZlbnRDbGVhckRvY3VtZW50IikpO2lmKCFhfHxyKXJldHVybjtsZXR7ZW1wdHk6bixmcm9tOm8sdG86bH09ZS5zZWxlY3Rpb24scD1RdC5hdFN0YXJ0KGUuZG9jKS5mcm9tLGQ9UXQuYXRFbmQoZS5kb2MpLnRvO2lmKG58fCEobz09PXAmJmw9PT1kKXx8IXBYKHQuZG9jKSlyZXR1cm47bGV0IGI9dC50cix2PUF2KHtzdGF0ZTp0LHRyYW5zYWN0aW9uOmJ9KSx7Y29tbWFuZHM6eH09bmV3IFBoKHtlZGl0b3I6dGhpcy5lZGl0b3Isc3RhdGU6dn0pO2lmKHguY2xlYXJOb2RlcygpLCEhYi5zdGVwcy5sZW5ndGgpcmV0dXJuIGJ9LCJhcHBlbmRUcmFuc2FjdGlvbiIpfSldfX0pLCRoYT13aS5jcmVhdGUoe25hbWU6InBhc3RlIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJ0aXB0YXBQYXN0ZSIpLHByb3BzOntoYW5kbGVQYXN0ZTppKChzLGUsdCk9Pnt0aGlzLmVkaXRvci5lbWl0KCJwYXN0ZSIse2VkaXRvcjp0aGlzLmVkaXRvcixldmVudDplLHNsaWNlOnR9KX0sImhhbmRsZVBhc3RlIil9fSldfX0pLERoYT13aS5jcmVhdGUoe25hbWU6InRhYmluZGV4IixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJ0YWJpbmRleCIpLHByb3BzOnthdHRyaWJ1dGVzOmkoKCk9PnRoaXMuZWRpdG9yLmlzRWRpdGFibGU/e3RhYmluZGV4OiIwIn06e30sImF0dHJpYnV0ZXMiKX19KV19fSksQmhhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLENsaXBib2FyZFRleHRTZXJpYWxpemVyOmJoYSxDb21tYW5kczpTaGEsRHJvcDpfaGEsRWRpdGFibGU6TWhhLEZvY3VzRXZlbnRzOkNoYSxLZXltYXA6VGhhLFBhc3RlOiRoYSxUYWJpbmRleDpEaGEsZm9jdXNFdmVudHNQbHVnaW5LZXk6emhhfSksaFg9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlUG9zIil9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5ub2RlLnR5cGUubmFtZX1jb25zdHJ1Y3RvcihlLHQsYT0hMSxyPW51bGwpe3RoaXMuY3VycmVudE5vZGU9bnVsbCx0aGlzLmFjdHVhbERlcHRoPW51bGwsdGhpcy5pc0Jsb2NrPWEsdGhpcy5yZXNvbHZlZFBvcz1lLHRoaXMuZWRpdG9yPXQsdGhpcy5jdXJyZW50Tm9kZT1yfWdldCBub2RlKCl7cmV0dXJuIHRoaXMuY3VycmVudE5vZGV8fHRoaXMucmVzb2x2ZWRQb3Mubm9kZSgpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuZWRpdG9yLnZpZXcuZG9tQXRQb3ModGhpcy5wb3MpLm5vZGV9Z2V0IGRlcHRoKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5hY3R1YWxEZXB0aCkhPT1udWxsJiZlIT09dm9pZCAwP2U6dGhpcy5yZXNvbHZlZFBvcy5kZXB0aH1nZXQgcG9zKCl7cmV0dXJuIHRoaXMucmVzb2x2ZWRQb3MucG9zfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMubm9kZS5jb250ZW50fXNldCBjb250ZW50KGUpe2xldCB0PXRoaXMuZnJvbSxhPXRoaXMudG87aWYodGhpcy5pc0Jsb2NrKXtpZih0aGlzLmNvbnRlbnQuc2l6ZT09PTApe2NvbnNvbGUuZXJyb3IoYFlvdSBjYW5cdTIwMTl0IHNldCBjb250ZW50IG9uIGEgYmxvY2sgbm9kZS4gVHJpZWQgdG8gc2V0IGNvbnRlbnQgb24gJHt0aGlzLm5hbWV9IGF0ICR7dGhpcy5wb3N9YCk7cmV0dXJufXQ9dGhpcy5mcm9tKzEsYT10aGlzLnRvLTF9dGhpcy5lZGl0b3IuY29tbWFuZHMuaW5zZXJ0Q29udGVudEF0KHtmcm9tOnQsdG86YX0sZSl9Z2V0IGF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5ub2RlLmF0dHJzfWdldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLm5vZGUudGV4dENvbnRlbnR9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5ub2RlLm5vZGVTaXplfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuaXNCbG9jaz90aGlzLnBvczp0aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgpfWdldCByYW5nZSgpe3JldHVybntmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1nZXQgdG8oKXtyZXR1cm4gdGhpcy5pc0Jsb2NrP3RoaXMucG9zK3RoaXMuc2l6ZTp0aGlzLnJlc29sdmVkUG9zLmVuZCh0aGlzLnJlc29sdmVkUG9zLmRlcHRoKSsodGhpcy5ub2RlLmlzVGV4dD8wOjEpfWdldCBwYXJlbnQoKXtpZih0aGlzLmRlcHRoPT09MClyZXR1cm4gbnVsbDtsZXQgZT10aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgtMSksdD10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgcyh0LHRoaXMuZWRpdG9yKX1nZXQgYmVmb3JlKCl7bGV0IGU9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZSh0aGlzLmZyb20tKHRoaXMuaXNCbG9jaz8xOjIpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy5mcm9tLTMpKSxuZXcgcyhlLHRoaXMuZWRpdG9yKX1nZXQgYWZ0ZXIoKXtsZXQgZT10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKHRoaXMudG8rKHRoaXMuaXNCbG9jaz8yOjEpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy50byszKSksbmV3IHMoZSx0aGlzLmVkaXRvcil9Z2V0IGNoaWxkcmVuKCl7bGV0IGU9W107cmV0dXJuIHRoaXMubm9kZS5jb250ZW50LmZvckVhY2goKHQsYSk9PntsZXQgcj10LmlzQmxvY2smJiF0LmlzVGV4dGJsb2NrLG49dC5pc0F0b20mJiF0LmlzVGV4dCxvPXRoaXMucG9zK2ErKG4/MDoxKTtpZihvPDB8fG8+dGhpcy5yZXNvbHZlZFBvcy5kb2Mubm9kZVNpemUtMilyZXR1cm47bGV0IGw9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZShvKTtpZighciYmbC5kZXB0aDw9dGhpcy5kZXB0aClyZXR1cm47bGV0IHA9bmV3IHMobCx0aGlzLmVkaXRvcixyLHI/dDpudWxsKTtyJiYocC5hY3R1YWxEZXB0aD10aGlzLmRlcHRoKzEpLGUucHVzaChuZXcgcyhsLHRoaXMuZWRpdG9yLHIscj90Om51bGwpKX0pLGV9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlblswXXx8bnVsbH1nZXQgbGFzdENoaWxkKCl7bGV0IGU9dGhpcy5jaGlsZHJlbjtyZXR1cm4gZVtlLmxlbmd0aC0xXXx8bnVsbH1jbG9zZXN0KGUsdD17fSl7bGV0IGE9bnVsbCxyPXRoaXMucGFyZW50O2Zvcig7ciYmIWE7KXtpZihyLm5vZGUudHlwZS5uYW1lPT09ZSlpZihPYmplY3Qua2V5cyh0KS5sZW5ndGg+MCl7bGV0IG49ci5ub2RlLmF0dHJzLG89T2JqZWN0LmtleXModCk7Zm9yKGxldCBsPTA7bDxvLmxlbmd0aDtsKz0xKXtsZXQgcD1vW2xdO2lmKG5bcF0hPT10W3BdKWJyZWFrfX1lbHNlIGE9cjtyPXIucGFyZW50fXJldHVybiBhfXF1ZXJ5U2VsZWN0b3IoZSx0PXt9KXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUsdCwhMClbMF18fG51bGx9cXVlcnlTZWxlY3RvckFsbChlLHQ9e30sYT0hMSl7bGV0IHI9W107aWYoIXRoaXMuY2hpbGRyZW58fHRoaXMuY2hpbGRyZW4ubGVuZ3RoPT09MClyZXR1cm4gcjtsZXQgbj1PYmplY3Qua2V5cyh0KTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5mb3JFYWNoKG89PnthJiZyLmxlbmd0aD4wfHwoby5ub2RlLnR5cGUubmFtZT09PWUmJm4uZXZlcnkocD0+dFtwXT09PW8ubm9kZS5hdHRyc1twXSkmJnIucHVzaChvKSwhKGEmJnIubGVuZ3RoPjApJiYocj1yLmNvbmNhdChvLnF1ZXJ5U2VsZWN0b3JBbGwoZSx0LGEpKSkpfSkscn1zZXRBdHRyaWJ1dGUoZSl7bGV0e3RyOnR9PXRoaXMuZWRpdG9yLnN0YXRlO3Quc2V0Tm9kZU1hcmt1cCh0aGlzLmZyb20sdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLHRoaXMuZWRpdG9yLnZpZXcuZGlzcGF0Y2godCl9fSxVWmE9YC5Qcm9zZU1pcnJvciB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouUHJvc2VNaXJyb3IgewogIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vbmU7CiAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiAwOyAvKiB0aGUgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHdvcmsgaW4gRWRnZSAqLwp9CgouUHJvc2VNaXJyb3IgW2NvbnRlbnRlZGl0YWJsZT0iZmFsc2UiXSB7CiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfQoKLlByb3NlTWlycm9yIFtjb250ZW50ZWRpdGFibGU9ImZhbHNlIl0gW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdIHsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KCi5Qcm9zZU1pcnJvciBwcmUgewogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKfQoKaW1nLlByb3NlTWlycm9yLXNlcGFyYXRvciB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDAgIWltcG9ydGFudDsKICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKfQoKLlByb3NlTWlycm9yLWdhcGN1cnNvciB7CiAgZGlzcGxheTogbm9uZTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbWFyZ2luOiAwOwp9CgouUHJvc2VNaXJyb3ItZ2FwY3Vyc29yOmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiBibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAtMnB4OwogIHdpZHRoOiAyMHB4OwogIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsKICBhbmltYXRpb246IFByb3NlTWlycm9yLWN1cnNvci1ibGluayAxLjFzIHN0ZXBzKDIsIHN0YXJ0KSBpbmZpbml0ZTsKfQoKQGtleWZyYW1lcyBQcm9zZU1pcnJvci1jdXJzb3ItYmxpbmsgewogIHRvIHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICB9Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6OnNlbGVjdGlvbiB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6Oi1tb3otc2VsZWN0aW9uIHsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoKLlByb3NlTWlycm9yLWhpZGVzZWxlY3Rpb24gKiB7CiAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50Owp9CgouUHJvc2VNaXJyb3ItZm9jdXNlZCAuUHJvc2VNaXJyb3ItZ2FwY3Vyc29yIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLnRpcHB5LWJveFtkYXRhLWFuaW1hdGlvbj1mYWRlXVtkYXRhLXN0YXRlPWhpZGRlbl0gewogIG9wYWNpdHk6IDAKfWA7aShHYXQsImNyZWF0ZVN0eWxlVGFnIik7SWxlPWNsYXNzIGV4dGVuZHMgVGF0e3N0YXRpY3tpKHRoaXMsIkVkaXRvciIpfWNvbnN0cnVjdG9yKGU9e30pe3N1cGVyKCksdGhpcy5pc0ZvY3VzZWQ9ITEsdGhpcy5pc0luaXRpYWxpemVkPSExLHRoaXMuZXh0ZW5zaW9uU3RvcmFnZT17fSx0aGlzLm9wdGlvbnM9e2VsZW1lbnQ6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksY29udGVudDoiIixpbmplY3RDU1M6ITAsaW5qZWN0Tm9uY2U6dm9pZCAwLGV4dGVuc2lvbnM6W10sYXV0b2ZvY3VzOiExLGVkaXRhYmxlOiEwLGVkaXRvclByb3BzOnt9LHBhcnNlT3B0aW9uczp7fSxjb3JlRXh0ZW5zaW9uT3B0aW9uczp7fSxlbmFibGVJbnB1dFJ1bGVzOiEwLGVuYWJsZVBhc3RlUnVsZXM6ITAsZW5hYmxlQ29yZUV4dGVuc2lvbnM6ITAsZW5hYmxlQ29udGVudENoZWNrOiExLGVtaXRDb250ZW50RXJyb3I6ITEsb25CZWZvcmVDcmVhdGU6aSgoKT0+bnVsbCwib25CZWZvcmVDcmVhdGUiKSxvbkNyZWF0ZTppKCgpPT5udWxsLCJvbkNyZWF0ZSIpLG9uVXBkYXRlOmkoKCk9Pm51bGwsIm9uVXBkYXRlIiksb25TZWxlY3Rpb25VcGRhdGU6aSgoKT0+bnVsbCwib25TZWxlY3Rpb25VcGRhdGUiKSxvblRyYW5zYWN0aW9uOmkoKCk9Pm51bGwsIm9uVHJhbnNhY3Rpb24iKSxvbkZvY3VzOmkoKCk9Pm51bGwsIm9uRm9jdXMiKSxvbkJsdXI6aSgoKT0+bnVsbCwib25CbHVyIiksb25EZXN0cm95OmkoKCk9Pm51bGwsIm9uRGVzdHJveSIpLG9uQ29udGVudEVycm9yOmkoKHtlcnJvcjp0fSk9Pnt0aHJvdyB0fSwib25Db250ZW50RXJyb3IiKSxvblBhc3RlOmkoKCk9Pm51bGwsIm9uUGFzdGUiKSxvbkRyb3A6aSgoKT0+bnVsbCwib25Ecm9wIil9LHRoaXMuaXNDYXB0dXJpbmdUcmFuc2FjdGlvbj0hMSx0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0aGlzLnNldE9wdGlvbnMoZSksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCksdGhpcy5jcmVhdGVDb21tYW5kTWFuYWdlcigpLHRoaXMuY3JlYXRlU2NoZW1hKCksdGhpcy5vbigiYmVmb3JlQ3JlYXRlIix0aGlzLm9wdGlvbnMub25CZWZvcmVDcmVhdGUpLHRoaXMuZW1pdCgiYmVmb3JlQ3JlYXRlIix7ZWRpdG9yOnRoaXN9KSx0aGlzLm9uKCJjb250ZW50RXJyb3IiLHRoaXMub3B0aW9ucy5vbkNvbnRlbnRFcnJvciksdGhpcy5jcmVhdGVWaWV3KCksdGhpcy5pbmplY3RDU1MoKSx0aGlzLm9uKCJjcmVhdGUiLHRoaXMub3B0aW9ucy5vbkNyZWF0ZSksdGhpcy5vbigidXBkYXRlIix0aGlzLm9wdGlvbnMub25VcGRhdGUpLHRoaXMub24oInNlbGVjdGlvblVwZGF0ZSIsdGhpcy5vcHRpb25zLm9uU2VsZWN0aW9uVXBkYXRlKSx0aGlzLm9uKCJ0cmFuc2FjdGlvbiIsdGhpcy5vcHRpb25zLm9uVHJhbnNhY3Rpb24pLHRoaXMub24oImZvY3VzIix0aGlzLm9wdGlvbnMub25Gb2N1cyksdGhpcy5vbigiYmx1ciIsdGhpcy5vcHRpb25zLm9uQmx1ciksdGhpcy5vbigiZGVzdHJveSIsdGhpcy5vcHRpb25zLm9uRGVzdHJveSksdGhpcy5vbigiZHJvcCIsKHtldmVudDp0LHNsaWNlOmEsbW92ZWQ6cn0pPT50aGlzLm9wdGlvbnMub25Ecm9wKHQsYSxyKSksdGhpcy5vbigicGFzdGUiLCh7ZXZlbnQ6dCxzbGljZTphfSk9PnRoaXMub3B0aW9ucy5vblBhc3RlKHQsYSkpLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuY29tbWFuZHMuZm9jdXModGhpcy5vcHRpb25zLmF1dG9mb2N1cyksdGhpcy5lbWl0KCJjcmVhdGUiLHtlZGl0b3I6dGhpc30pLHRoaXMuaXNJbml0aWFsaXplZD0hMCl9LDApfWdldCBzdG9yYWdlKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9uU3RvcmFnZX1nZXQgY29tbWFuZHMoKXtyZXR1cm4gdGhpcy5jb21tYW5kTWFuYWdlci5jb21tYW5kc31jaGFpbigpe3JldHVybiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNoYWluKCl9Y2FuKCl7cmV0dXJuIHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuKCl9aW5qZWN0Q1NTKCl7dGhpcy5vcHRpb25zLmluamVjdENTUyYmZG9jdW1lbnQmJih0aGlzLmNzcz1HYXQoVVphLHRoaXMub3B0aW9ucy5pbmplY3ROb25jZSkpfXNldE9wdGlvbnMoZT17fSl7dGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4uZX0sISghdGhpcy52aWV3fHwhdGhpcy5zdGF0ZXx8dGhpcy5pc0Rlc3Ryb3llZCkmJih0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMmJnRoaXMudmlldy5zZXRQcm9wcyh0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMpLHRoaXMudmlldy51cGRhdGVTdGF0ZSh0aGlzLnN0YXRlKSl9c2V0RWRpdGFibGUoZSx0PSEwKXt0aGlzLnNldE9wdGlvbnMoe2VkaXRhYmxlOmV9KSx0JiZ0aGlzLmVtaXQoInVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOnRoaXMuc3RhdGUudHJ9KX1nZXQgaXNFZGl0YWJsZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuZWRpdGFibGUmJnRoaXMudmlldyYmdGhpcy52aWV3LmVkaXRhYmxlfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLnZpZXcuc3RhdGV9cmVnaXN0ZXJQbHVnaW4oZSx0KXtsZXQgYT1rbGUodCk/dChlLFsuLi50aGlzLnN0YXRlLnBsdWdpbnNdKTpbLi4udGhpcy5zdGF0ZS5wbHVnaW5zLGVdLHI9dGhpcy5zdGF0ZS5yZWNvbmZpZ3VyZSh7cGx1Z2luczphfSk7cmV0dXJuIHRoaXMudmlldy51cGRhdGVTdGF0ZShyKSxyfXVucmVnaXN0ZXJQbHVnaW4oZSl7aWYodGhpcy5pc0Rlc3Ryb3llZClyZXR1cm47bGV0IHQ9dGhpcy5zdGF0ZS5wbHVnaW5zLGE9dDtpZihbXS5jb25jYXQoZSkuZm9yRWFjaChuPT57bGV0IG89dHlwZW9mIG49PSJzdHJpbmciP2Ake259JGA6bi5rZXk7YT1hLmZpbHRlcihsPT4hbC5rZXkuc3RhcnRzV2l0aChvKSl9KSx0Lmxlbmd0aD09PWEubGVuZ3RoKXJldHVybjtsZXQgcj10aGlzLnN0YXRlLnJlY29uZmlndXJlKHtwbHVnaW5zOmF9KTtyZXR1cm4gdGhpcy52aWV3LnVwZGF0ZVN0YXRlKHIpLHJ9Y3JlYXRlRXh0ZW5zaW9uTWFuYWdlcigpe3ZhciBlLHQ7bGV0IHI9Wy4uLnRoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9ucz9bTWhhLGJoYS5jb25maWd1cmUoe2Jsb2NrU2VwYXJhdG9yOih0PShlPXRoaXMub3B0aW9ucy5jb3JlRXh0ZW5zaW9uT3B0aW9ucyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNsaXBib2FyZFRleHRTZXJpYWxpemVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuYmxvY2tTZXBhcmF0b3J9KSxTaGEsQ2hhLFRoYSxEaGEsX2hhLCRoYV0uZmlsdGVyKG49PnR5cGVvZiB0aGlzLm9wdGlvbnMuZW5hYmxlQ29yZUV4dGVuc2lvbnM9PSJvYmplY3QiP3RoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9uc1tuLm5hbWVdIT09ITE6ITApOltdLC4uLnRoaXMub3B0aW9ucy5leHRlbnNpb25zXS5maWx0ZXIobj0+WyJleHRlbnNpb24iLCJub2RlIiwibWFyayJdLmluY2x1ZGVzKG4/LnR5cGUpKTt0aGlzLmV4dGVuc2lvbk1hbmFnZXI9bmV3IHlsZShyLHRoaXMpfWNyZWF0ZUNvbW1hbmRNYW5hZ2VyKCl7dGhpcy5jb21tYW5kTWFuYWdlcj1uZXcgUGgoe2VkaXRvcjp0aGlzfSl9Y3JlYXRlU2NoZW1hKCl7dGhpcy5zY2hlbWE9dGhpcy5leHRlbnNpb25NYW5hZ2VyLnNjaGVtYX1jcmVhdGVWaWV3KCl7dmFyIGU7bGV0IHQ7dHJ5e3Q9Y1godGhpcy5vcHRpb25zLmNvbnRlbnQsdGhpcy5zY2hlbWEsdGhpcy5vcHRpb25zLnBhcnNlT3B0aW9ucyx7ZXJyb3JPbkludmFsaWRDb250ZW50OnRoaXMub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2t9KX1jYXRjaChvKXtpZighKG8gaW5zdGFuY2VvZiBFcnJvcil8fCFbIlt0aXB0YXAgZXJyb3JdOiBJbnZhbGlkIEpTT04gY29udGVudCIsIlt0aXB0YXAgZXJyb3JdOiBJbnZhbGlkIEhUTUwgY29udGVudCJdLmluY2x1ZGVzKG8ubWVzc2FnZSkpdGhyb3cgbzt0aGlzLmVtaXQoImNvbnRlbnRFcnJvciIse2VkaXRvcjp0aGlzLGVycm9yOm8sZGlzYWJsZUNvbGxhYm9yYXRpb246aSgoKT0+e3RoaXMuc3RvcmFnZS5jb2xsYWJvcmF0aW9uJiYodGhpcy5zdG9yYWdlLmNvbGxhYm9yYXRpb24uaXNEaXNhYmxlZD0hMCksdGhpcy5vcHRpb25zLmV4dGVuc2lvbnM9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuZmlsdGVyKGw9PmwubmFtZSE9PSJjb2xsYWJvcmF0aW9uIiksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCl9LCJkaXNhYmxlQ29sbGFib3JhdGlvbiIpfSksdD1jWCh0aGlzLm9wdGlvbnMuY29udGVudCx0aGlzLnNjaGVtYSx0aGlzLm9wdGlvbnMucGFyc2VPcHRpb25zLHtlcnJvck9uSW52YWxpZENvbnRlbnQ6ITF9KX1sZXQgYT1UbGUodCx0aGlzLm9wdGlvbnMuYXV0b2ZvY3VzKTt0aGlzLnZpZXc9bmV3IFB2KHRoaXMub3B0aW9ucy5lbGVtZW50LHsuLi50aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMsYXR0cmlidXRlczp7cm9sZToidGV4dGJveCIsLi4uKGU9dGhpcy5vcHRpb25zLmVkaXRvclByb3BzKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuYXR0cmlidXRlc30sZGlzcGF0Y2hUcmFuc2FjdGlvbjp0aGlzLmRpc3BhdGNoVHJhbnNhY3Rpb24uYmluZCh0aGlzKSxzdGF0ZTpXWi5jcmVhdGUoe2RvYzp0LHNlbGVjdGlvbjphfHx2b2lkIDB9KX0pO2xldCByPXRoaXMuc3RhdGUucmVjb25maWd1cmUoe3BsdWdpbnM6dGhpcy5leHRlbnNpb25NYW5hZ2VyLnBsdWdpbnN9KTt0aGlzLnZpZXcudXBkYXRlU3RhdGUociksdGhpcy5jcmVhdGVOb2RlVmlld3MoKSx0aGlzLnByZXBlbmRDbGFzcygpO2xldCBuPXRoaXMudmlldy5kb207bi5lZGl0b3I9dGhpc31jcmVhdGVOb2RlVmlld3MoKXt0aGlzLnZpZXcuaXNEZXN0cm95ZWR8fHRoaXMudmlldy5zZXRQcm9wcyh7bm9kZVZpZXdzOnRoaXMuZXh0ZW5zaW9uTWFuYWdlci5ub2RlVmlld3N9KX1wcmVwZW5kQ2xhc3MoKXt0aGlzLnZpZXcuZG9tLmNsYXNzTmFtZT1gdGlwdGFwICR7dGhpcy52aWV3LmRvbS5jbGFzc05hbWV9YH1jYXB0dXJlVHJhbnNhY3Rpb24oZSl7dGhpcy5pc0NhcHR1cmluZ1RyYW5zYWN0aW9uPSEwLGUoKSx0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb249ITE7bGV0IHQ9dGhpcy5jYXB0dXJlZFRyYW5zYWN0aW9uO3JldHVybiB0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0fWRpc3BhdGNoVHJhbnNhY3Rpb24oZSl7aWYodGhpcy52aWV3LmlzRGVzdHJveWVkKXJldHVybjtpZih0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb24pe2lmKCF0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb24pe3RoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbj1lO3JldHVybn1lLnN0ZXBzLmZvckVhY2gobz0+e3ZhciBsO3JldHVybihsPXRoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbik9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLnN0ZXAobyl9KTtyZXR1cm59bGV0IHQ9dGhpcy5zdGF0ZS5hcHBseShlKSxhPSF0aGlzLnN0YXRlLnNlbGVjdGlvbi5lcSh0LnNlbGVjdGlvbik7dGhpcy5lbWl0KCJiZWZvcmVUcmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmUsbmV4dFN0YXRlOnR9KSx0aGlzLnZpZXcudXBkYXRlU3RhdGUodCksdGhpcy5lbWl0KCJ0cmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KSxhJiZ0aGlzLmVtaXQoInNlbGVjdGlvblVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KTtsZXQgcj1lLmdldE1ldGEoImZvY3VzIiksbj1lLmdldE1ldGEoImJsdXIiKTtyJiZ0aGlzLmVtaXQoImZvY3VzIix7ZWRpdG9yOnRoaXMsZXZlbnQ6ci5ldmVudCx0cmFuc2FjdGlvbjplfSksbiYmdGhpcy5lbWl0KCJibHVyIix7ZWRpdG9yOnRoaXMsZXZlbnQ6bi5ldmVudCx0cmFuc2FjdGlvbjplfSksISghZS5kb2NDaGFuZ2VkfHxlLmdldE1ldGEoInByZXZlbnRVcGRhdGUiKSkmJnRoaXMuZW1pdCgidXBkYXRlIix7ZWRpdG9yOnRoaXMsdHJhbnNhY3Rpb246ZX0pfWdldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIGZYKHRoaXMuc3RhdGUsZSl9aXNBY3RpdmUoZSx0KXtsZXQgYT10eXBlb2YgZT09InN0cmluZyI/ZTpudWxsLHI9dHlwZW9mIGU9PSJzdHJpbmciP3Q6ZTtyZXR1cm4gV2F0KHRoaXMuc3RhdGUsYSxyKX1nZXRKU09OKCl7cmV0dXJuIHRoaXMuc3RhdGUuZG9jLnRvSlNPTigpfWdldEhUTUwoKXtyZXR1cm4gUnYodGhpcy5zdGF0ZS5kb2MuY29udGVudCx0aGlzLnNjaGVtYSl9Z2V0VGV4dChlKXtsZXR7YmxvY2tTZXBhcmF0b3I6dD1gCgpgLHRleHRTZXJpYWxpemVyczphPXt9fT1lfHx7fTtyZXR1cm4gRWxlKHRoaXMuc3RhdGUuZG9jLHtibG9ja1NlcGFyYXRvcjp0LHRleHRTZXJpYWxpemVyczp7Li4ublgodGhpcy5zY2hlbWEpLC4uLmF9fSl9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gcFgodGhpcy5zdGF0ZS5kb2MpfWdldENoYXJhY3RlckNvdW50KCl7cmV0dXJuIGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogImVkaXRvci5nZXRDaGFyYWN0ZXJDb3VudCgpIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJlZGl0b3Iuc3RvcmFnZS5jaGFyYWN0ZXJDb3VudC5jaGFyYWN0ZXJzKCkiIGluc3RlYWQuJyksdGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplLTJ9ZGVzdHJveSgpe2lmKHRoaXMuZW1pdCgiZGVzdHJveSIpLHRoaXMudmlldyl7bGV0IGU9dGhpcy52aWV3LmRvbTtlJiZlLmVkaXRvciYmZGVsZXRlIGUuZWRpdG9yLHRoaXMudmlldy5kZXN0cm95KCl9dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKX1nZXQgaXNEZXN0cm95ZWQoKXt2YXIgZTtyZXR1cm4hKCEoKGU9dGhpcy52aWV3KT09PW51bGx8fGU9PT12b2lkIDApJiZlLmRvY1ZpZXcpfSRub2RlKGUsdCl7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3IoZSx0KSl8fG51bGx9JG5vZGVzKGUsdCl7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3JBbGwoZSx0KSl8fG51bGx9JHBvcyhlKXtsZXQgdD10aGlzLnN0YXRlLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgaFgodCx0aGlzKX1nZXQgJGRvYygpe3JldHVybiB0aGlzLiRwb3MoMCl9fTtpKHFjLCJtYXJrSW5wdXRSdWxlIik7aShIbGUsIm5vZGVJbnB1dFJ1bGUiKTtpKHVnLCJ0ZXh0YmxvY2tUeXBlSW5wdXRSdWxlIik7aShoaSwidGV4dElucHV0UnVsZSIpO2koT2QsIndyYXBwaW5nSW5wdXRSdWxlIik7c2k9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJOb2RlIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy50eXBlPSJub2RlIix0aGlzLm5hbWU9Im5vZGUiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZD1udWxsLHRoaXMuY29uZmlnPXtuYW1lOnRoaXMubmFtZSxkZWZhdWx0T3B0aW9uczp7fX0sdGhpcy5jb25maWc9ey4uLnRoaXMuY29uZmlnLC4uLmV9LHRoaXMubmFtZT10aGlzLmNvbmZpZy5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3RoaXMubmFtZX0iLmApLHRoaXMub3B0aW9ucz10aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucyx0aGlzLmNvbmZpZy5hZGRPcHRpb25zJiYodGhpcy5vcHRpb25zPWNhKER0KHRoaXMsImFkZE9wdGlvbnMiLHtuYW1lOnRoaXMubmFtZX0pKSksdGhpcy5zdG9yYWdlPWNhKER0KHRoaXMsImFkZFN0b3JhZ2UiLHtuYW1lOnRoaXMubmFtZSxvcHRpb25zOnRoaXMub3B0aW9uc30pKXx8e319c3RhdGljIGNyZWF0ZShlPXt9KXtyZXR1cm4gbmV3IHMoZSl9Y29uZmlndXJlKGU9e30pe2xldCB0PXRoaXMuZXh0ZW5kKHsuLi50aGlzLmNvbmZpZyxhZGRPcHRpb25zOmkoKCk9PkZ2KHRoaXMub3B0aW9ucyxlKSwiYWRkT3B0aW9ucyIpfSk7cmV0dXJuIHQubmFtZT10aGlzLm5hbWUsdC5wYXJlbnQ9dGhpcy5wYXJlbnQsdH1leHRlbmQoZT17fSl7bGV0IHQ9bmV3IHMoZSk7cmV0dXJuIHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZD10LHQubmFtZT1lLm5hbWU/ZS5uYW1lOnQucGFyZW50Lm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dC5uYW1lfSIuYCksdC5vcHRpb25zPWNhKER0KHQsImFkZE9wdGlvbnMiLHtuYW1lOnQubmFtZX0pKSx0LnN0b3JhZ2U9Y2EoRHQodCwiYWRkU3RvcmFnZSIse25hbWU6dC5uYW1lLG9wdGlvbnM6dC5vcHRpb25zfSkpLHR9fSxBbGU9Y2xhc3N7c3RhdGlje2kodGhpcywiTm9kZVZpZXciKX1jb25zdHJ1Y3RvcihlLHQsYSl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuY29tcG9uZW50PWUsdGhpcy5lZGl0b3I9dC5lZGl0b3IsdGhpcy5vcHRpb25zPXtzdG9wRXZlbnQ6bnVsbCxpZ25vcmVNdXRhdGlvbjpudWxsLC4uLmF9LHRoaXMuZXh0ZW5zaW9uPXQuZXh0ZW5zaW9uLHRoaXMubm9kZT10Lm5vZGUsdGhpcy5kZWNvcmF0aW9ucz10LmRlY29yYXRpb25zLHRoaXMuaW5uZXJEZWNvcmF0aW9ucz10LmlubmVyRGVjb3JhdGlvbnMsdGhpcy52aWV3PXQudmlldyx0aGlzLkhUTUxBdHRyaWJ1dGVzPXQuSFRNTEF0dHJpYnV0ZXMsdGhpcy5nZXRQb3M9dC5nZXRQb3MsdGhpcy5tb3VudCgpfW1vdW50KCl7fWdldCBkb20oKXtyZXR1cm4gdGhpcy5lZGl0b3Iudmlldy5kb219Z2V0IGNvbnRlbnRET00oKXtyZXR1cm4gbnVsbH1vbkRyYWdTdGFydChlKXt2YXIgdCxhLHIsbixvLGwscDtsZXR7dmlldzpkfT10aGlzLmVkaXRvcix1PWUudGFyZ2V0LGM9dS5ub2RlVHlwZT09PTM/KHQ9dS5wYXJlbnRFbGVtZW50KT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuY2xvc2VzdCgiW2RhdGEtZHJhZy1oYW5kbGVdIik6dS5jbG9zZXN0KCJbZGF0YS1kcmFnLWhhbmRsZV0iKTtpZighdGhpcy5kb218fCEoKGE9dGhpcy5jb250ZW50RE9NKT09PW51bGx8fGE9PT12b2lkIDApJiZhLmNvbnRhaW5zKHUpfHwhYylyZXR1cm47bGV0IGI9MCx2PTA7aWYodGhpcy5kb20hPT1jKXtsZXQgTT10aGlzLmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx6PWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTj0ocj1lLm9mZnNldFgpIT09bnVsbCYmciE9PXZvaWQgMD9yOihuPWUubmF0aXZlRXZlbnQpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5vZmZzZXRYLEM9KG89ZS5vZmZzZXRZKSE9PW51bGwmJm8hPT12b2lkIDA/bzoobD1lLm5hdGl2ZUV2ZW50KT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwub2Zmc2V0WTtiPXoueC1NLngrTix2PXoueS1NLnkrQ31sZXQgeD10aGlzLmRvbS5jbG9uZU5vZGUoITApOyhwPWUuZGF0YVRyYW5zZmVyKT09PW51bGx8fHA9PT12b2lkIDB8fHAuc2V0RHJhZ0ltYWdlKHgsYix2KTtsZXQgbT10aGlzLmdldFBvcygpO2lmKHR5cGVvZiBtIT0ibnVtYmVyIilyZXR1cm47bGV0IGY9RnQuY3JlYXRlKGQuc3RhdGUuZG9jLG0pLHk9ZC5zdGF0ZS50ci5zZXRTZWxlY3Rpb24oZik7ZC5kaXNwYXRjaCh5KX1zdG9wRXZlbnQoZSl7dmFyIHQ7aWYoIXRoaXMuZG9tKXJldHVybiExO2lmKHR5cGVvZiB0aGlzLm9wdGlvbnMuc3RvcEV2ZW50PT0iZnVuY3Rpb24iKXJldHVybiB0aGlzLm9wdGlvbnMuc3RvcEV2ZW50KHtldmVudDplfSk7bGV0IGE9ZS50YXJnZXQ7aWYoISh0aGlzLmRvbS5jb250YWlucyhhKSYmISghKCh0PXRoaXMuY29udGVudERPTSk9PT1udWxsfHx0PT09dm9pZCAwKSYmdC5jb250YWlucyhhKSkpKXJldHVybiExO2xldCBuPWUudHlwZS5zdGFydHNXaXRoKCJkcmFnIiksbz1lLnR5cGU9PT0iZHJvcCI7aWYoKFsiSU5QVVQiLCJCVVRUT04iLCJTRUxFQ1QiLCJURVhUQVJFQSJdLmluY2x1ZGVzKGEudGFnTmFtZSl8fGEuaXNDb250ZW50RWRpdGFibGUpJiYhbyYmIW4pcmV0dXJuITA7bGV0e2lzRWRpdGFibGU6cH09dGhpcy5lZGl0b3Ise2lzRHJhZ2dpbmc6ZH09dGhpcyx1PSEhdGhpcy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUsYz1GdC5pc1NlbGVjdGFibGUodGhpcy5ub2RlKSxiPWUudHlwZT09PSJjb3B5Iix2PWUudHlwZT09PSJwYXN0ZSIseD1lLnR5cGU9PT0iY3V0IixtPWUudHlwZT09PSJtb3VzZWRvd24iO2lmKCF1JiZjJiZuJiZlLnRhcmdldD09PXRoaXMuZG9tJiZlLnByZXZlbnREZWZhdWx0KCksdSYmbiYmIWQmJmUudGFyZ2V0PT09dGhpcy5kb20pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSwhMTtpZih1JiZwJiYhZCYmbSl7bGV0IGY9YS5jbG9zZXN0KCJbZGF0YS1kcmFnLWhhbmRsZV0iKTtmJiYodGhpcy5kb209PT1mfHx0aGlzLmRvbS5jb250YWlucyhmKSkmJih0aGlzLmlzRHJhZ2dpbmc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSkpfXJldHVybiEoZHx8b3x8Ynx8dnx8eHx8bSYmYyl9aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIXRoaXMuZG9tfHwhdGhpcy5jb250ZW50RE9NPyEwOnR5cGVvZiB0aGlzLm9wdGlvbnMuaWdub3JlTXV0YXRpb249PSJmdW5jdGlvbiI/dGhpcy5vcHRpb25zLmlnbm9yZU11dGF0aW9uKHttdXRhdGlvbjplfSk6dGhpcy5ub2RlLmlzTGVhZnx8dGhpcy5ub2RlLmlzQXRvbT8hMDplLnR5cGU9PT0ic2VsZWN0aW9uInx8dGhpcy5kb20uY29udGFpbnMoZS50YXJnZXQpJiZlLnR5cGU9PT0iY2hpbGRMaXN0IiYmKG5nKCl8fCRhdCgpKSYmdGhpcy5lZGl0b3IuaXNGb2N1c2VkJiZbLi4uQXJyYXkuZnJvbShlLmFkZGVkTm9kZXMpLC4uLkFycmF5LmZyb20oZS5yZW1vdmVkTm9kZXMpXS5ldmVyeShhPT5hLmlzQ29udGVudEVkaXRhYmxlKT8hMTp0aGlzLmNvbnRlbnRET009PT1lLnRhcmdldCYmZS50eXBlPT09ImF0dHJpYnV0ZXMiPyEwOiF0aGlzLmNvbnRlbnRET00uY29udGFpbnMoZS50YXJnZXQpfXVwZGF0ZUF0dHJpYnV0ZXMoZSl7dGhpcy5lZGl0b3IuY29tbWFuZHMuY29tbWFuZCgoe3RyOnR9KT0+e2xldCBhPXRoaXMuZ2V0UG9zKCk7cmV0dXJuIHR5cGVvZiBhIT0ibnVtYmVyIj8hMToodC5zZXROb2RlTWFya3VwKGEsdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLCEwKX0pfWRlbGV0ZU5vZGUoKXtsZXQgZT10aGlzLmdldFBvcygpO2lmKHR5cGVvZiBlIT0ibnVtYmVyIilyZXR1cm47bGV0IHQ9ZSt0aGlzLm5vZGUubm9kZVNpemU7dGhpcy5lZGl0b3IuY29tbWFuZHMuZGVsZXRlUmFuZ2Uoe2Zyb206ZSx0bzp0fSl9fTtpKFRsLCJtYXJrUGFzdGVSdWxlIik7aShxbGUsImNhbkluc2VydE5vZGUiKTtpKEhoYSwiZXNjYXBlRm9yUmVnRXgiKTtpKHFoYSwiaXNTdHJpbmciKTtpKGpoYSwibm9kZVBhc3RlUnVsZSIpO2koVmhhLCJ0ZXh0UGFzdGVSdWxlIik7TmxlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRyYWNrZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRyYW5zYWN0aW9uPWUsdGhpcy5jdXJyZW50U3RlcD10aGlzLnRyYW5zYWN0aW9uLnN0ZXBzLmxlbmd0aH1tYXAoZSl7bGV0IHQ9ITE7cmV0dXJue3Bvc2l0aW9uOnRoaXMudHJhbnNhY3Rpb24uc3RlcHMuc2xpY2UodGhpcy5jdXJyZW50U3RlcCkucmVkdWNlKChyLG4pPT57bGV0IG89bi5nZXRNYXAoKS5tYXBSZXN1bHQocik7cmV0dXJuIG8uZGVsZXRlZCYmKHQ9ITApLG8ucG9zfSxlKSxkZWxldGVkOnR9fX19KTt2YXIgVWhhLGpsZSxXaGE9ZygoKT0+e2lpKCk7VWhhPS9eXHMqPlxzJC8samxlPXNpLmNyZWF0ZSh7bmFtZToiYmxvY2txdW90ZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImJsb2NrKyIsZ3JvdXA6ImJsb2NrIixkZWZpbmluZzohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiYmxvY2txdW90ZSJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe3JldHVyblsiYmxvY2txdW90ZSIsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHMpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRCbG9ja3F1b3RlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLndyYXBJbih0aGlzLm5hbWUpLCJzZXRCbG9ja3F1b3RlIiksdG9nZ2xlQmxvY2txdW90ZTppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy50b2dnbGVXcmFwKHRoaXMubmFtZSksInRvZ2dsZUJsb2NrcXVvdGUiKSx1bnNldEJsb2NrcXVvdGU6aSgoKT0+KHtjb21tYW5kczpzfSk9PnMubGlmdCh0aGlzLm5hbWUpLCJ1bnNldEJsb2NrcXVvdGUiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtYiI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQmxvY2txdW90ZSgpLCJNb2QtU2hpZnQtYiIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltPZCh7ZmluZDpVaGEsdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgR2hhLEtoYSxZaGEsWmhhLFZsZSxYaGE9ZygoKT0+e2lpKCk7R2hhPS8oPzpefFxzKShcKlwqKD8hXHMrXCpcKikoKD86W14qXSspKVwqXCooPyFccytcKlwqKSkkLyxLaGE9Lyg/Ol58XHMpKFwqXCooPyFccytcKlwqKSgoPzpbXipdKykpXCpcKig/IVxzK1wqXCopKS9nLFloYT0vKD86XnxccykoX18oPyFccytfXykoKD86W15fXSspKV9fKD8hXHMrX18pKSQvLFpoYT0vKD86XnxccykoX18oPyFccytfXykoKD86W15fXSspKV9fKD8hXHMrX18pKS9nLFZsZT1Eby5jcmVhdGUoe25hbWU6ImJvbGQiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoic3Ryb25nIn0se3RhZzoiYiIsZ2V0QXR0cnM6aShzPT5zLnN0eWxlLmZvbnRXZWlnaHQhPT0ibm9ybWFsIiYmbnVsbCwiZ2V0QXR0cnMiKX0se3N0eWxlOiJmb250LXdlaWdodD00MDAiLGNsZWFyTWFyazppKHM9PnMudHlwZS5uYW1lPT09dGhpcy5uYW1lLCJjbGVhck1hcmsiKX0se3N0eWxlOiJmb250LXdlaWdodCIsZ2V0QXR0cnM6aShzPT4vXihib2xkKGVyKT98WzUtOV1cZHsyLH0pJC8udGVzdChzKSYmbnVsbCwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuWyJzdHJvbmciLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0Qm9sZDppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy5zZXRNYXJrKHRoaXMubmFtZSksInNldEJvbGQiKSx0b2dnbGVCb2xkOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlQm9sZCIpLHVuc2V0Qm9sZDppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRCb2xkIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLWIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJvbGQoKSwiTW9kLWIiKSwiTW9kLUIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJvbGQoKSwiTW9kLUIiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bcWMoe2ZpbmQ6R2hhLHR5cGU6dGhpcy50eXBlfSkscWMoe2ZpbmQ6WWhhLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW1RsKHtmaW5kOktoYSx0eXBlOnRoaXMudHlwZX0pLFRsKHtmaW5kOlpoYSx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBXWmEsUWhhLFlhdCxVbGUsSmhhPWcoKCk9PntpaSgpO1daYT0ibGlzdEl0ZW0iLFFoYT0idGV4dFN0eWxlIixZYXQ9L15ccyooWy0rKl0pXHMkLyxVbGU9c2kuY3JlYXRlKHtuYW1lOiJidWxsZXRMaXN0IixhZGRPcHRpb25zKCl7cmV0dXJue2l0ZW1UeXBlTmFtZToibGlzdEl0ZW0iLEhUTUxBdHRyaWJ1dGVzOnt9LGtlZXBNYXJrczohMSxrZWVwQXR0cmlidXRlczohMX19LGdyb3VwOiJibG9jayBsaXN0Iixjb250ZW50KCl7cmV0dXJuYCR7dGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZX0rYH0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InVsIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuWyJ1bCIsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHMpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybnt0b2dnbGVCdWxsZXRMaXN0OmkoKCk9Pih7Y29tbWFuZHM6cyxjaGFpbjplfSk9PnRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcz9lKCkudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKS51cGRhdGVBdHRyaWJ1dGVzKFdaYSx0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKFFoYSkpLnJ1bigpOnMudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKSwidG9nZ2xlQnVsbGV0TGlzdCIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1TaGlmdC04IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVCdWxsZXRMaXN0KCksIk1vZC1TaGlmdC04Iil9fSxhZGRJbnB1dFJ1bGVzKCl7bGV0IHM9T2Qoe2ZpbmQ6WWF0LHR5cGU6dGhpcy50eXBlfSk7cmV0dXJuKHRoaXMub3B0aW9ucy5rZWVwTWFya3N8fHRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcykmJihzPU9kKHtmaW5kOllhdCx0eXBlOnRoaXMudHlwZSxrZWVwTWFya3M6dGhpcy5vcHRpb25zLmtlZXBNYXJrcyxrZWVwQXR0cmlidXRlczp0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMsZ2V0QXR0cmlidXRlczppKCgpPT50aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKFFoYSksImdldEF0dHJpYnV0ZXMiKSxlZGl0b3I6dGhpcy5lZGl0b3J9KSksW3NdfX0pfSk7dmFyIGU0YSx0NGEsV2xlLGE0YT1nKCgpPT57aWkoKTtlNGE9LyhefFteYF0pYChbXmBdKylgKD8hYCkvLHQ0YT0vKF58W15gXSlgKFteYF0rKWAoPyFgKS9nLFdsZT1Eby5jcmVhdGUoe25hbWU6ImNvZGUiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxleGNsdWRlczoiXyIsY29kZTohMCxleGl0YWJsZTohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiY29kZSJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe3JldHVyblsiY29kZSIsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHMpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRDb2RlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnNldE1hcmsodGhpcy5uYW1lKSwic2V0Q29kZSIpLHRvZ2dsZUNvZGU6aSgoKT0+KHtjb21tYW5kczpzfSk9PnMudG9nZ2xlTWFyayh0aGlzLm5hbWUpLCJ0b2dnbGVDb2RlIiksdW5zZXRDb2RlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldENvZGUiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtZSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQ29kZSgpLCJNb2QtZSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltxYyh7ZmluZDplNGEsdHlwZTp0aGlzLnR5cGV9KV19LGFkZFBhc3RlUnVsZXMoKXtyZXR1cm5bVGwoe2ZpbmQ6dDRhLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIHM0YSxpNGEsR2xlLHI0YT1nKCgpPT57aWkoKTtHWigpO3M0YT0vXmBgYChbYS16XSspP1tcc1xuXSQvLGk0YT0vXn5+fihbYS16XSspP1tcc1xuXSQvLEdsZT1zaS5jcmVhdGUoe25hbWU6ImNvZGVCbG9jayIsYWRkT3B0aW9ucygpe3JldHVybntsYW5ndWFnZUNsYXNzUHJlZml4OiJsYW5ndWFnZS0iLGV4aXRPblRyaXBsZUVudGVyOiEwLGV4aXRPbkFycm93RG93bjohMCxkZWZhdWx0TGFuZ3VhZ2U6bnVsbCxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6InRleHQqIixtYXJrczoiIixncm91cDoiYmxvY2siLGNvZGU6ITAsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsYW5ndWFnZTp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuZGVmYXVsdExhbmd1YWdlLHBhcnNlSFRNTDppKHM9Pnt2YXIgZTtsZXR7bGFuZ3VhZ2VDbGFzc1ByZWZpeDp0fT10aGlzLm9wdGlvbnMsbj1bLi4uKChlPXMuZmlyc3RFbGVtZW50Q2hpbGQpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5jbGFzc0xpc3QpfHxbXV0uZmlsdGVyKG89Pm8uc3RhcnRzV2l0aCh0KSkubWFwKG89Pm8ucmVwbGFjZSh0LCIiKSlbMF07cmV0dXJuIG58fG51bGx9LCJwYXJzZUhUTUwiKSxyZW5kZXJlZDohMX19fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoicHJlIixwcmVzZXJ2ZVdoaXRlc3BhY2U6ImZ1bGwifV19LHJlbmRlckhUTUwoe25vZGU6cyxIVE1MQXR0cmlidXRlczplfSl7cmV0dXJuWyJwcmUiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxlKSxbImNvZGUiLHtjbGFzczpzLmF0dHJzLmxhbmd1YWdlP3RoaXMub3B0aW9ucy5sYW5ndWFnZUNsYXNzUHJlZml4K3MuYXR0cnMubGFuZ3VhZ2U6bnVsbH0sMF1dfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRDb2RlQmxvY2s6aShzPT4oe2NvbW1hbmRzOmV9KT0+ZS5zZXROb2RlKHRoaXMubmFtZSxzKSwic2V0Q29kZUJsb2NrIiksdG9nZ2xlQ29kZUJsb2NrOmkocz0+KHtjb21tYW5kczplfSk9PmUudG9nZ2xlTm9kZSh0aGlzLm5hbWUsInBhcmFncmFwaCIscyksInRvZ2dsZUNvZGVCbG9jayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1BbHQtYyI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQ29kZUJsb2NrKCksIk1vZC1BbHQtYyIpLEJhY2tzcGFjZTppKCgpPT57bGV0e2VtcHR5OnMsJGFuY2hvcjplfT10aGlzLmVkaXRvci5zdGF0ZS5zZWxlY3Rpb24sdD1lLnBvcz09PTE7cmV0dXJuIXN8fGUucGFyZW50LnR5cGUubmFtZSE9PXRoaXMubmFtZT8hMTp0fHwhZS5wYXJlbnQudGV4dENvbnRlbnQubGVuZ3RoP3RoaXMuZWRpdG9yLmNvbW1hbmRzLmNsZWFyTm9kZXMoKTohMX0sIkJhY2tzcGFjZSIpLEVudGVyOmkoKHtlZGl0b3I6c30pPT57aWYoIXRoaXMub3B0aW9ucy5leGl0T25UcmlwbGVFbnRlcilyZXR1cm4hMTtsZXR7c3RhdGU6ZX09cyx7c2VsZWN0aW9uOnR9PWUseyRmcm9tOmEsZW1wdHk6cn09dDtpZighcnx8YS5wYXJlbnQudHlwZSE9PXRoaXMudHlwZSlyZXR1cm4hMTtsZXQgbj1hLnBhcmVudE9mZnNldD09PWEucGFyZW50Lm5vZGVTaXplLTIsbz1hLnBhcmVudC50ZXh0Q29udGVudC5lbmRzV2l0aChgCgpgKTtyZXR1cm4hbnx8IW8/ITE6cy5jaGFpbigpLmNvbW1hbmQoKHt0cjpsfSk9PihsLmRlbGV0ZShhLnBvcy0yLGEucG9zKSwhMCkpLmV4aXRDb2RlKCkucnVuKCl9LCJFbnRlciIpLEFycm93RG93bjppKCh7ZWRpdG9yOnN9KT0+e2lmKCF0aGlzLm9wdGlvbnMuZXhpdE9uQXJyb3dEb3duKXJldHVybiExO2xldHtzdGF0ZTplfT1zLHtzZWxlY3Rpb246dCxkb2M6YX09ZSx7JGZyb206cixlbXB0eTpufT10O2lmKCFufHxyLnBhcmVudC50eXBlIT09dGhpcy50eXBlfHwhKHIucGFyZW50T2Zmc2V0PT09ci5wYXJlbnQubm9kZVNpemUtMikpcmV0dXJuITE7bGV0IGw9ci5hZnRlcigpO3JldHVybiBsPT09dm9pZCAwPyExOmEubm9kZUF0KGwpP3MuY29tbWFuZHMuY29tbWFuZCgoe3RyOmR9KT0+KGQuc2V0U2VsZWN0aW9uKFF0Lm5lYXIoYS5yZXNvbHZlKGwpKSksITApKTpzLmNvbW1hbmRzLmV4aXRDb2RlKCl9LCJBcnJvd0Rvd24iKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bdWcoe2ZpbmQ6czRhLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aShzPT4oe2xhbmd1YWdlOnNbMV19KSwiZ2V0QXR0cmlidXRlcyIpfSksdWcoe2ZpbmQ6aTRhLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aShzPT4oe2xhbmd1YWdlOnNbMV19KSwiZ2V0QXR0cmlidXRlcyIpfSldfSxhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFlzKHtrZXk6bmV3ICRyKCJjb2RlQmxvY2tWU0NvZGVIYW5kbGVyIikscHJvcHM6e2hhbmRsZVBhc3RlOmkoKHMsZSk9PntpZighZS5jbGlwYm9hcmREYXRhfHx0aGlzLmVkaXRvci5pc0FjdGl2ZSh0aGlzLnR5cGUubmFtZSkpcmV0dXJuITE7bGV0IHQ9ZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvcGxhaW4iKSxhPWUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ2c2NvZGUtZWRpdG9yLWRhdGEiKSxyPWE/SlNPTi5wYXJzZShhKTp2b2lkIDAsbj1yPy5tb2RlO2lmKCF0fHwhbilyZXR1cm4hMTtsZXR7dHI6byxzY2hlbWE6bH09cy5zdGF0ZSxwPWwudGV4dCh0LnJlcGxhY2UoL1xyXG4/L2csYApgKSk7cmV0dXJuIG8ucmVwbGFjZVNlbGVjdGlvbldpdGgodGhpcy50eXBlLmNyZWF0ZSh7bGFuZ3VhZ2U6bn0scCkpLG8uc2VsZWN0aW9uLiRmcm9tLnBhcmVudC50eXBlIT09dGhpcy50eXBlJiZvLnNldFNlbGVjdGlvbihKdC5uZWFyKG8uZG9jLnJlc29sdmUoTWF0aC5tYXgoMCxvLnNlbGVjdGlvbi5mcm9tLTIpKSkpLG8uc2V0TWV0YSgicGFzdGUiLCEwKSxzLmRpc3BhdGNoKG8pLCEwfSwiaGFuZGxlUGFzdGUiKX19KV19fSl9KTt2YXIgS2xlLG80YT1nKCgpPT57aWkoKTtLbGU9c2kuY3JlYXRlKHtuYW1lOiJkb2MiLHRvcE5vZGU6ITAsY29udGVudDoiYmxvY2srIn0pfSk7ZnVuY3Rpb24gWGF0KHM9e30pe3JldHVybiBuZXcgWXMoe3ZpZXcoZSl7cmV0dXJuIG5ldyBaYXQoZSxzKX19KX12YXIgWmF0LG40YT1nKCgpPT57cnUoKTt6aCgpO2koWGF0LCJkcm9wQ3Vyc29yIik7WmF0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkRyb3BDdXJzb3JWaWV3Iil9Y29uc3RydWN0b3IoZSx0KXt2YXIgYTt0aGlzLmVkaXRvclZpZXc9ZSx0aGlzLmN1cnNvclBvcz1udWxsLHRoaXMuZWxlbWVudD1udWxsLHRoaXMudGltZW91dD0tMSx0aGlzLndpZHRoPShhPXQud2lkdGgpIT09bnVsbCYmYSE9PXZvaWQgMD9hOjEsdGhpcy5jb2xvcj10LmNvbG9yPT09ITE/dm9pZCAwOnQuY29sb3J8fCJibGFjayIsdGhpcy5jbGFzcz10LmNsYXNzLHRoaXMuaGFuZGxlcnM9WyJkcmFnb3ZlciIsImRyYWdlbmQiLCJkcm9wIiwiZHJhZ2xlYXZlIl0ubWFwKHI9PntsZXQgbj1pKG89Pnt0aGlzW3JdKG8pfSwiaGFuZGxlciIpO3JldHVybiBlLmRvbS5hZGRFdmVudExpc3RlbmVyKHIsbikse25hbWU6cixoYW5kbGVyOm59fSl9ZGVzdHJveSgpe3RoaXMuaGFuZGxlcnMuZm9yRWFjaCgoe25hbWU6ZSxoYW5kbGVyOnR9KT0+dGhpcy5lZGl0b3JWaWV3LmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKGUsdCkpfXVwZGF0ZShlLHQpe3RoaXMuY3Vyc29yUG9zIT1udWxsJiZ0LmRvYyE9ZS5zdGF0ZS5kb2MmJih0aGlzLmN1cnNvclBvcz5lLnN0YXRlLmRvYy5jb250ZW50LnNpemU/dGhpcy5zZXRDdXJzb3IobnVsbCk6dGhpcy51cGRhdGVPdmVybGF5KCkpfXNldEN1cnNvcihlKXtlIT10aGlzLmN1cnNvclBvcyYmKHRoaXMuY3Vyc29yUG9zPWUsZT09bnVsbD8odGhpcy5lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KSx0aGlzLmVsZW1lbnQ9bnVsbCk6dGhpcy51cGRhdGVPdmVybGF5KCkpfXVwZGF0ZU92ZXJsYXkoKXtsZXQgZT10aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLnJlc29sdmUodGhpcy5jdXJzb3JQb3MpLHQ9IWUucGFyZW50LmlubGluZUNvbnRlbnQsYSxyPXRoaXMuZWRpdG9yVmlldy5kb20sbj1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89bi53aWR0aC9yLm9mZnNldFdpZHRoLGw9bi5oZWlnaHQvci5vZmZzZXRIZWlnaHQ7aWYodCl7bGV0IGM9ZS5ub2RlQmVmb3JlLGI9ZS5ub2RlQWZ0ZXI7aWYoY3x8Yil7bGV0IHY9dGhpcy5lZGl0b3JWaWV3Lm5vZGVET00odGhpcy5jdXJzb3JQb3MtKGM/Yy5ub2RlU2l6ZTowKSk7aWYodil7bGV0IHg9di5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPWM/eC5ib3R0b206eC50b3A7YyYmYiYmKG09KG0rdGhpcy5lZGl0b3JWaWV3Lm5vZGVET00odGhpcy5jdXJzb3JQb3MpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkvMik7bGV0IGY9dGhpcy53aWR0aC8yKmw7YT17bGVmdDp4LmxlZnQscmlnaHQ6eC5yaWdodCx0b3A6bS1mLGJvdHRvbTptK2Z9fX19aWYoIWEpe2xldCBjPXRoaXMuZWRpdG9yVmlldy5jb29yZHNBdFBvcyh0aGlzLmN1cnNvclBvcyksYj10aGlzLndpZHRoLzIqbzthPXtsZWZ0OmMubGVmdC1iLHJpZ2h0OmMubGVmdCtiLHRvcDpjLnRvcCxib3R0b206Yy5ib3R0b219fWxldCBwPXRoaXMuZWRpdG9yVmlldy5kb20ub2Zmc2V0UGFyZW50O3RoaXMuZWxlbWVudHx8KHRoaXMuZWxlbWVudD1wLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSx0aGlzLmNsYXNzJiYodGhpcy5lbGVtZW50LmNsYXNzTmFtZT10aGlzLmNsYXNzKSx0aGlzLmVsZW1lbnQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiA1MDsgcG9pbnRlci1ldmVudHM6IG5vbmU7Iix0aGlzLmNvbG9yJiYodGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLmNvbG9yKSksdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInByb3NlbWlycm9yLWRyb3BjdXJzb3ItYmxvY2siLHQpLHRoaXMuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJwcm9zZW1pcnJvci1kcm9wY3Vyc29yLWlubGluZSIsIXQpO2xldCBkLHU7aWYoIXB8fHA9PWRvY3VtZW50LmJvZHkmJmdldENvbXB1dGVkU3R5bGUocCkucG9zaXRpb249PSJzdGF0aWMiKWQ9LXBhZ2VYT2Zmc2V0LHU9LXBhZ2VZT2Zmc2V0O2Vsc2V7bGV0IGM9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWMud2lkdGgvcC5vZmZzZXRXaWR0aCx2PWMuaGVpZ2h0L3Aub2Zmc2V0SGVpZ2h0O2Q9Yy5sZWZ0LXAuc2Nyb2xsTGVmdCpiLHU9Yy50b3AtcC5zY3JvbGxUb3Aqdn10aGlzLmVsZW1lbnQuc3R5bGUubGVmdD0oYS5sZWZ0LWQpL28rInB4Iix0aGlzLmVsZW1lbnQuc3R5bGUudG9wPShhLnRvcC11KS9sKyJweCIsdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoPShhLnJpZ2h0LWEubGVmdCkvbysicHgiLHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQ9KGEuYm90dG9tLWEudG9wKS9sKyJweCJ9c2NoZWR1bGVSZW1vdmFsKGUpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMudGltZW91dD1zZXRUaW1lb3V0KCgpPT50aGlzLnNldEN1cnNvcihudWxsKSxlKX1kcmFnb3ZlcihlKXtpZighdGhpcy5lZGl0b3JWaWV3LmVkaXRhYmxlKXJldHVybjtsZXQgdD10aGlzLmVkaXRvclZpZXcucG9zQXRDb29yZHMoe2xlZnQ6ZS5jbGllbnRYLHRvcDplLmNsaWVudFl9KSxhPXQmJnQuaW5zaWRlPj0wJiZ0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLm5vZGVBdCh0Lmluc2lkZSkscj1hJiZhLnR5cGUuc3BlYy5kaXNhYmxlRHJvcEN1cnNvcixuPXR5cGVvZiByPT0iZnVuY3Rpb24iP3IodGhpcy5lZGl0b3JWaWV3LHQsZSk6cjtpZih0JiYhbil7bGV0IG89dC5wb3M7aWYodGhpcy5lZGl0b3JWaWV3LmRyYWdnaW5nJiZ0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2Upe2xldCBsPVZaKHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2Msbyx0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2UpO2whPW51bGwmJihvPWwpfXRoaXMuc2V0Q3Vyc29yKG8pLHRoaXMuc2NoZWR1bGVSZW1vdmFsKDVlMyl9fWRyYWdlbmQoKXt0aGlzLnNjaGVkdWxlUmVtb3ZhbCgyMCl9ZHJvcCgpe3RoaXMuc2NoZWR1bGVSZW1vdmFsKDIwKX1kcmFnbGVhdmUoZSl7dGhpcy5lZGl0b3JWaWV3LmRvbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHx0aGlzLnNldEN1cnNvcihudWxsKX19fSk7dmFyIGw0YT1nKCgpPT57bjRhKCl9KTt2YXIgWWxlLGM0YT1nKCgpPT57aWkoKTtsNGEoKTtZbGU9d2kuY3JlYXRlKHtuYW1lOiJkcm9wQ3Vyc29yIixhZGRPcHRpb25zKCl7cmV0dXJue2NvbG9yOiJjdXJyZW50Q29sb3IiLHdpZHRoOjEsY2xhc3M6dm9pZCAwfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW1hhdCh0aGlzLm9wdGlvbnMpXX19KX0pO2Z1bmN0aW9uIGQ0YShzKXtyZXR1cm4gcy5pc0F0b218fHMuc3BlYy5pc29sYXRpbmd8fHMuc3BlYy5jcmVhdGVHYXBDdXJzb3J9ZnVuY3Rpb24gR1phKHMpe2ZvcihsZXQgZT1zLmRlcHRoO2U+PTA7ZS0tKXtsZXQgdD1zLmluZGV4KGUpLGE9cy5ub2RlKGUpO2lmKHQ9PTApe2lmKGEudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMDtjb250aW51ZX1mb3IobGV0IHI9YS5jaGlsZCh0LTEpOztyPXIubGFzdENoaWxkKXtpZihyLmNoaWxkQ291bnQ9PTAmJiFyLmlubGluZUNvbnRlbnR8fGQ0YShyLnR5cGUpKXJldHVybiEwO2lmKHIuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gS1phKHMpe2ZvcihsZXQgZT1zLmRlcHRoO2U+PTA7ZS0tKXtsZXQgdD1zLmluZGV4QWZ0ZXIoZSksYT1zLm5vZGUoZSk7aWYodD09YS5jaGlsZENvdW50KXtpZihhLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITA7Y29udGludWV9Zm9yKGxldCByPWEuY2hpbGQodCk7O3I9ci5maXJzdENoaWxkKXtpZihyLmNoaWxkQ291bnQ9PTAmJiFyLmlubGluZUNvbnRlbnR8fGQ0YShyLnR5cGUpKXJldHVybiEwO2lmKHIuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gSmF0KCl7cmV0dXJuIG5ldyBZcyh7cHJvcHM6e2RlY29yYXRpb25zOlFaYSxjcmVhdGVTZWxlY3Rpb25CZXR3ZWVuKHMsZSx0KXtyZXR1cm4gZS5wb3M9PXQucG9zJiZMby52YWxpZCh0KT9uZXcgTG8odCk6bnVsbH0saGFuZGxlQ2xpY2s6WlphLGhhbmRsZUtleURvd246WVphLGhhbmRsZURPTUV2ZW50czp7YmVmb3JlaW5wdXQ6WFphfX19KX1mdW5jdGlvbiBabGUocyxlKXtsZXQgdD1zPT0idmVydCI/ZT4wPyJkb3duIjoidXAiOmU+MD8icmlnaHQiOiJsZWZ0IjtyZXR1cm4gZnVuY3Rpb24oYSxyLG4pe2xldCBvPWEuc2VsZWN0aW9uLGw9ZT4wP28uJHRvOm8uJGZyb20scD1vLmVtcHR5O2lmKG8gaW5zdGFuY2VvZiBKdCl7aWYoIW4uZW5kT2ZUZXh0YmxvY2sodCl8fGwuZGVwdGg9PTApcmV0dXJuITE7cD0hMSxsPWEuZG9jLnJlc29sdmUoZT4wP2wuYWZ0ZXIoKTpsLmJlZm9yZSgpKX1sZXQgZD1Mby5maW5kR2FwQ3Vyc29yRnJvbShsLGUscCk7cmV0dXJuIGQ/KHImJnIoYS50ci5zZXRTZWxlY3Rpb24obmV3IExvKGQpKSksITApOiExfX1mdW5jdGlvbiBaWmEocyxlLHQpe2lmKCFzfHwhcy5lZGl0YWJsZSlyZXR1cm4hMTtsZXQgYT1zLnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCFMby52YWxpZChhKSlyZXR1cm4hMTtsZXQgcj1zLnBvc0F0Q29vcmRzKHtsZWZ0OnQuY2xpZW50WCx0b3A6dC5jbGllbnRZfSk7cmV0dXJuIHImJnIuaW5zaWRlPi0xJiZGdC5pc1NlbGVjdGFibGUocy5zdGF0ZS5kb2Mubm9kZUF0KHIuaW5zaWRlKSk/ITE6KHMuZGlzcGF0Y2gocy5zdGF0ZS50ci5zZXRTZWxlY3Rpb24obmV3IExvKGEpKSksITApfWZ1bmN0aW9uIFhaYShzLGUpe2lmKGUuaW5wdXRUeXBlIT0iaW5zZXJ0Q29tcG9zaXRpb25UZXh0Inx8IShzLnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIExvKSlyZXR1cm4hMTtsZXR7JGZyb206dH09cy5zdGF0ZS5zZWxlY3Rpb24sYT10LnBhcmVudC5jb250ZW50TWF0Y2hBdCh0LmluZGV4KCkpLmZpbmRXcmFwcGluZyhzLnN0YXRlLnNjaGVtYS5ub2Rlcy50ZXh0KTtpZighYSlyZXR1cm4hMTtsZXQgcj1ydC5lbXB0eTtmb3IobGV0IG89YS5sZW5ndGgtMTtvPj0wO28tLSlyPXJ0LmZyb20oYVtvXS5jcmVhdGVBbmRGaWxsKG51bGwscikpO2xldCBuPXMuc3RhdGUudHIucmVwbGFjZSh0LnBvcyx0LnBvcyxuZXcgX3QociwwLDApKTtyZXR1cm4gbi5zZXRTZWxlY3Rpb24oSnQubmVhcihuLmRvYy5yZXNvbHZlKHQucG9zKzEpKSkscy5kaXNwYXRjaChuKSwhMX1mdW5jdGlvbiBRWmEocyl7aWYoIShzLnNlbGVjdGlvbiBpbnN0YW5jZW9mIExvKSlyZXR1cm4gbnVsbDtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9IlByb3NlTWlycm9yLWdhcGN1cnNvciIsTG4uY3JlYXRlKHMuZG9jLFt0Mi53aWRnZXQocy5zZWxlY3Rpb24uaGVhZCxlLHtrZXk6ImdhcGN1cnNvciJ9KV0pfXZhciBMbyxRYXQsWVphLHU0YT1nKCgpPT57ZGF0KCk7cnUoKTtfaCgpO25hdCgpO0xvPWNsYXNzIHMgZXh0ZW5kcyBRdHtzdGF0aWN7aSh0aGlzLCJHYXBDdXJzb3IiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlLGUpfW1hcChlLHQpe2xldCBhPWUucmVzb2x2ZSh0Lm1hcCh0aGlzLmhlYWQpKTtyZXR1cm4gcy52YWxpZChhKT9uZXcgcyhhKTpRdC5uZWFyKGEpfWNvbnRlbnQoKXtyZXR1cm4gX3QuZW1wdHl9ZXEoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBzJiZlLmhlYWQ9PXRoaXMuaGVhZH10b0pTT04oKXtyZXR1cm57dHlwZToiZ2FwY3Vyc29yIixwb3M6dGhpcy5oZWFkfX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5wb3MhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBHYXBDdXJzb3IuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHMoZS5yZXNvbHZlKHQucG9zKSl9Z2V0Qm9va21hcmsoKXtyZXR1cm4gbmV3IFFhdCh0aGlzLmFuY2hvcil9c3RhdGljIHZhbGlkKGUpe2xldCB0PWUucGFyZW50O2lmKHQuaW5saW5lQ29udGVudHx8IUdaYShlKXx8IUtaYShlKSlyZXR1cm4hMTtsZXQgYT10LnR5cGUuc3BlYy5hbGxvd0dhcEN1cnNvcjtpZihhIT1udWxsKXJldHVybiBhO2xldCByPXQuY29udGVudE1hdGNoQXQoZS5pbmRleCgpKS5kZWZhdWx0VHlwZTtyZXR1cm4gciYmci5pc1RleHRibG9ja31zdGF0aWMgZmluZEdhcEN1cnNvckZyb20oZSx0LGE9ITEpe2U6Zm9yKDs7KXtpZighYSYmcy52YWxpZChlKSlyZXR1cm4gZTtsZXQgcj1lLnBvcyxuPW51bGw7Zm9yKGxldCBvPWUuZGVwdGg7O28tLSl7bGV0IGw9ZS5ub2RlKG8pO2lmKHQ+MD9lLmluZGV4QWZ0ZXIobyk8bC5jaGlsZENvdW50OmUuaW5kZXgobyk+MCl7bj1sLmNoaWxkKHQ+MD9lLmluZGV4QWZ0ZXIobyk6ZS5pbmRleChvKS0xKTticmVha31lbHNlIGlmKG89PTApcmV0dXJuIG51bGw7cis9dDtsZXQgcD1lLmRvYy5yZXNvbHZlKHIpO2lmKHMudmFsaWQocCkpcmV0dXJuIHB9Zm9yKDs7KXtsZXQgbz10PjA/bi5maXJzdENoaWxkOm4ubGFzdENoaWxkO2lmKCFvKXtpZihuLmlzQXRvbSYmIW4uaXNUZXh0JiYhRnQuaXNTZWxlY3RhYmxlKG4pKXtlPWUuZG9jLnJlc29sdmUocituLm5vZGVTaXplKnQpLGE9ITE7Y29udGludWUgZX1icmVha31uPW8scis9dDtsZXQgbD1lLmRvYy5yZXNvbHZlKHIpO2lmKHMudmFsaWQobCkpcmV0dXJuIGx9cmV0dXJuIG51bGx9fX07TG8ucHJvdG90eXBlLnZpc2libGU9ITEsTG8uZmluZEZyb209TG8uZmluZEdhcEN1cnNvckZyb20sUXQuanNvbklEKCJnYXBjdXJzb3IiLExvKTtRYXQ9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJHYXBCb29rbWFyayIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucG9zPWV9bWFwKGUpe3JldHVybiBuZXcgcyhlLm1hcCh0aGlzLnBvcykpfXJlc29sdmUoZSl7bGV0IHQ9ZS5yZXNvbHZlKHRoaXMucG9zKTtyZXR1cm4gTG8udmFsaWQodCk/bmV3IExvKHQpOlF0Lm5lYXIodCl9fTtpKGQ0YSwibmVlZHNHYXAiKTtpKEdaYSwiY2xvc2VkQmVmb3JlIik7aShLWmEsImNsb3NlZEFmdGVyIik7aShKYXQsImdhcEN1cnNvciIpO1laYT1ybGUoe0Fycm93TGVmdDpabGUoImhvcml6IiwtMSksQXJyb3dSaWdodDpabGUoImhvcml6IiwxKSxBcnJvd1VwOlpsZSgidmVydCIsLTEpLEFycm93RG93bjpabGUoInZlcnQiLDEpfSk7aShabGUsImFycm93Iik7aShaWmEsImhhbmRsZUNsaWNrIik7aShYWmEsImJlZm9yZWlucHV0Iik7aShRWmEsImRyYXdHYXBDdXJzb3IiKX0pO3ZhciBwNGE9ZygoKT0+e3U0YSgpfSk7dmFyIFhsZSxoNGE9ZygoKT0+e2lpKCk7cDRhKCk7WGxlPXdpLmNyZWF0ZSh7bmFtZToiZ2FwQ3Vyc29yIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bSmF0KCldfSxleHRlbmROb2RlU2NoZW1hKHMpe3ZhciBlO2xldCB0PXtuYW1lOnMubmFtZSxvcHRpb25zOnMub3B0aW9ucyxzdG9yYWdlOnMuc3RvcmFnZX07cmV0dXJue2FsbG93R2FwQ3Vyc29yOihlPWNhKER0KHMsImFsbG93R2FwQ3Vyc29yIix0KSkpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm51bGx9fX0pfSk7dmFyIFFsZSxmNGE9ZygoKT0+e2lpKCk7UWxlPXNpLmNyZWF0ZSh7bmFtZToiaGFyZEJyZWFrIixhZGRPcHRpb25zKCl7cmV0dXJue2tlZXBNYXJrczohMCxIVE1MQXR0cmlidXRlczp7fX19LGlubGluZTohMCxncm91cDoiaW5saW5lIixzZWxlY3RhYmxlOiExLGxpbmVicmVha1JlcGxhY2VtZW50OiEwLHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJiciJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe3JldHVyblsiYnIiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKV19LHJlbmRlclRleHQoKXtyZXR1cm5gCmB9LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEhhcmRCcmVhazppKCgpPT4oe2NvbW1hbmRzOnMsY2hhaW46ZSxzdGF0ZTp0LGVkaXRvcjphfSk9PnMuZmlyc3QoWygpPT5zLmV4aXRDb2RlKCksKCk9PnMuY29tbWFuZCgoKT0+e2xldHtzZWxlY3Rpb246cixzdG9yZWRNYXJrczpufT10O2lmKHIuJGZyb20ucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0e2tlZXBNYXJrczpvfT10aGlzLm9wdGlvbnMse3NwbGl0dGFibGVNYXJrczpsfT1hLmV4dGVuc2lvbk1hbmFnZXIscD1ufHxyLiR0by5wYXJlbnRPZmZzZXQmJnIuJGZyb20ubWFya3MoKTtyZXR1cm4gZSgpLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSkuY29tbWFuZCgoe3RyOmQsZGlzcGF0Y2g6dX0pPT57aWYodSYmcCYmbyl7bGV0IGM9cC5maWx0ZXIoYj0+bC5pbmNsdWRlcyhiLnR5cGUubmFtZSkpO2QuZW5zdXJlTWFya3MoYyl9cmV0dXJuITB9KS5ydW4oKX0pXSksInNldEhhcmRCcmVhayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIk1vZC1FbnRlciIpLCJTaGlmdC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIlNoaWZ0LUVudGVyIil9fX0pfSk7dmFyIEpsZSxtNGE9ZygoKT0+e2lpKCk7SmxlPXNpLmNyZWF0ZSh7bmFtZToiaGVhZGluZyIsYWRkT3B0aW9ucygpe3JldHVybntsZXZlbHM6WzEsMiwzLDQsNSw2XSxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsZXZlbDp7ZGVmYXVsdDoxLHJlbmRlcmVkOiExfX19LHBhcnNlSFRNTCgpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcChzPT4oe3RhZzpgaCR7c31gLGF0dHJzOntsZXZlbDpzfX0pKX0scmVuZGVySFRNTCh7bm9kZTpzLEhUTUxBdHRyaWJ1dGVzOmV9KXtyZXR1cm5bYGgke3RoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXMocy5hdHRycy5sZXZlbCk/cy5hdHRycy5sZXZlbDp0aGlzLm9wdGlvbnMubGV2ZWxzWzBdfWAsYXModGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGUpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIZWFkaW5nOmkocz0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXMocy5sZXZlbCk/ZS5zZXROb2RlKHRoaXMubmFtZSxzKTohMSwic2V0SGVhZGluZyIpLHRvZ2dsZUhlYWRpbmc6aShzPT4oe2NvbW1hbmRzOmV9KT0+dGhpcy5vcHRpb25zLmxldmVscy5pbmNsdWRlcyhzLmxldmVsKT9lLnRvZ2dsZU5vZGUodGhpcy5uYW1lLCJwYXJhZ3JhcGgiLHMpOiExLCJ0b2dnbGVIZWFkaW5nIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLnJlZHVjZSgocyxlKT0+KHsuLi5zLFtgTW9kLUFsdC0ke2V9YF06KCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUhlYWRpbmcoe2xldmVsOmV9KX0pLHt9KX0sYWRkSW5wdXRSdWxlcygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcChzPT51Zyh7ZmluZDpuZXcgUmVnRXhwKGBeKCN7JHtNYXRoLm1pbiguLi50aGlzLm9wdGlvbnMubGV2ZWxzKX0sJHtzfX0pXFxzJGApLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6e2xldmVsOnN9fSkpfX0pfSk7dmFyIGVjZSxFbyxnNGEsSlphLGVzdCxiNGE9ZygoKT0+e2VjZT0yMDAsRW89aShmdW5jdGlvbigpe30sIlJvcGVTZXF1ZW5jZSIpO0VvLnByb3RvdHlwZS5hcHBlbmQ9aShmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg/KGU9RW8uZnJvbShlKSwhdGhpcy5sZW5ndGgmJmV8fGUubGVuZ3RoPGVjZSYmdGhpcy5sZWFmQXBwZW5kKGUpfHx0aGlzLmxlbmd0aDxlY2UmJmUubGVhZlByZXBlbmQodGhpcyl8fHRoaXMuYXBwZW5kSW5uZXIoZSkpOnRoaXN9LCJhcHBlbmQiKSxFby5wcm90b3R5cGUucHJlcGVuZD1pKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD9Fby5mcm9tKGUpLmFwcGVuZCh0aGlzKTp0aGlzfSwicHJlcGVuZCIpLEVvLnByb3RvdHlwZS5hcHBlbmRJbm5lcj1pKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgSlphKHRoaXMsZSl9LCJhcHBlbmRJbm5lciIpLEVvLnByb3RvdHlwZS5zbGljZT1pKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLHQ9PT12b2lkIDAmJih0PXRoaXMubGVuZ3RoKSxlPj10P0VvLmVtcHR5OnRoaXMuc2xpY2VJbm5lcihNYXRoLm1heCgwLGUpLE1hdGgubWluKHRoaXMubGVuZ3RoLHQpKX0sInNsaWNlIiksRW8ucHJvdG90eXBlLmdldD1pKGZ1bmN0aW9uKGUpe2lmKCEoZTwwfHxlPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZ2V0SW5uZXIoZSl9LCJnZXQiKSxFby5wcm90b3R5cGUuZm9yRWFjaD1pKGZ1bmN0aW9uKGUsdCxhKXt0PT09dm9pZCAwJiYodD0wKSxhPT09dm9pZCAwJiYoYT10aGlzLmxlbmd0aCksdDw9YT90aGlzLmZvckVhY2hJbm5lcihlLHQsYSwwKTp0aGlzLmZvckVhY2hJbnZlcnRlZElubmVyKGUsdCxhLDApfSwiZm9yRWFjaCIpLEVvLnByb3RvdHlwZS5tYXA9aShmdW5jdGlvbihlLHQsYSl7dD09PXZvaWQgMCYmKHQ9MCksYT09PXZvaWQgMCYmKGE9dGhpcy5sZW5ndGgpO3ZhciByPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24obixvKXtyZXR1cm4gci5wdXNoKGUobixvKSl9LHQsYSkscn0sIm1hcCIpLEVvLmZyb209aShmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVvP2U6ZSYmZS5sZW5ndGg/bmV3IGc0YShlKTpFby5lbXB0eX0sImZyb20iKTtnNGE9KGZ1bmN0aW9uKHMpe2Z1bmN0aW9uIGUoYSl7cy5jYWxsKHRoaXMpLHRoaXMudmFsdWVzPWF9aShlLCJMZWFmIikscyYmKGUuX19wcm90b19fPXMpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUocyYmcy5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHQ9e2xlbmd0aDp7Y29uZmlndXJhYmxlOiEwfSxkZXB0aDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIGUucHJvdG90eXBlLmZsYXR0ZW49aShmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlc30sImZsYXR0ZW4iKSxlLnByb3RvdHlwZS5zbGljZUlubmVyPWkoZnVuY3Rpb24ocixuKXtyZXR1cm4gcj09MCYmbj09dGhpcy5sZW5ndGg/dGhpczpuZXcgZSh0aGlzLnZhbHVlcy5zbGljZShyLG4pKX0sInNsaWNlSW5uZXIiKSxlLnByb3RvdHlwZS5nZXRJbm5lcj1pKGZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLnZhbHVlc1tyXX0sImdldElubmVyIiksZS5wcm90b3R5cGUuZm9yRWFjaElubmVyPWkoZnVuY3Rpb24ocixuLG8sbCl7Zm9yKHZhciBwPW47cDxvO3ArKylpZihyKHRoaXMudmFsdWVzW3BdLGwrcCk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbnZlcnRlZElubmVyPWkoZnVuY3Rpb24ocixuLG8sbCl7Zm9yKHZhciBwPW4tMTtwPj1vO3AtLSlpZihyKHRoaXMudmFsdWVzW3BdLGwrcCk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbnZlcnRlZElubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKHIpe2lmKHRoaXMubGVuZ3RoK3IubGVuZ3RoPD1lY2UpcmV0dXJuIG5ldyBlKHRoaXMudmFsdWVzLmNvbmNhdChyLmZsYXR0ZW4oKSkpfSwibGVhZkFwcGVuZCIpLGUucHJvdG90eXBlLmxlYWZQcmVwZW5kPWkoZnVuY3Rpb24ocil7aWYodGhpcy5sZW5ndGgrci5sZW5ndGg8PWVjZSlyZXR1cm4gbmV3IGUoci5mbGF0dGVuKCkuY29uY2F0KHRoaXMudmFsdWVzKSl9LCJsZWFmUHJlcGVuZCIpLHQubGVuZ3RoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9LHQuZGVwdGguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDB9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHQpLGV9KShFbyk7RW8uZW1wdHk9bmV3IGc0YShbXSk7SlphPShmdW5jdGlvbihzKXtmdW5jdGlvbiBlKHQsYSl7cy5jYWxsKHRoaXMpLHRoaXMubGVmdD10LHRoaXMucmlnaHQ9YSx0aGlzLmxlbmd0aD10Lmxlbmd0aCthLmxlbmd0aCx0aGlzLmRlcHRoPU1hdGgubWF4KHQuZGVwdGgsYS5kZXB0aCkrMX1yZXR1cm4gaShlLCJBcHBlbmQiKSxzJiYoZS5fX3Byb3RvX189cyksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShzJiZzLnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5mbGF0dGVuPWkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZWZ0LmZsYXR0ZW4oKS5jb25jYXQodGhpcy5yaWdodC5mbGF0dGVuKCkpfSwiZmxhdHRlbiIpLGUucHJvdG90eXBlLmdldElubmVyPWkoZnVuY3Rpb24oYSl7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuZ2V0KGEpOnRoaXMucmlnaHQuZ2V0KGEtdGhpcy5sZWZ0Lmxlbmd0aCl9LCJnZXRJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbm5lcj1pKGZ1bmN0aW9uKGEscixuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYocjxsJiZ0aGlzLmxlZnQuZm9yRWFjaElubmVyKGEscixNYXRoLm1pbihuLGwpLG8pPT09ITF8fG4+bCYmdGhpcy5yaWdodC5mb3JFYWNoSW5uZXIoYSxNYXRoLm1heChyLWwsMCksTWF0aC5taW4odGhpcy5sZW5ndGgsbiktbCxvK2wpPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW5uZXIiKSxlLnByb3RvdHlwZS5mb3JFYWNoSW52ZXJ0ZWRJbm5lcj1pKGZ1bmN0aW9uKGEscixuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYocj5sJiZ0aGlzLnJpZ2h0LmZvckVhY2hJbnZlcnRlZElubmVyKGEsci1sLE1hdGgubWF4KG4sbCktbCxvK2wpPT09ITF8fG48bCYmdGhpcy5sZWZ0LmZvckVhY2hJbnZlcnRlZElubmVyKGEsTWF0aC5taW4ocixsKSxuLG8pPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW52ZXJ0ZWRJbm5lciIpLGUucHJvdG90eXBlLnNsaWNlSW5uZXI9aShmdW5jdGlvbihhLHIpe2lmKGE9PTAmJnI9PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubGVmdC5sZW5ndGg7cmV0dXJuIHI8PW4/dGhpcy5sZWZ0LnNsaWNlKGEscik6YT49bj90aGlzLnJpZ2h0LnNsaWNlKGEtbixyLW4pOnRoaXMubGVmdC5zbGljZShhLG4pLmFwcGVuZCh0aGlzLnJpZ2h0LnNsaWNlKDAsci1uKSl9LCJzbGljZUlubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKGEpe3ZhciByPXRoaXMucmlnaHQubGVhZkFwcGVuZChhKTtpZihyKXJldHVybiBuZXcgZSh0aGlzLmxlZnQscil9LCJsZWFmQXBwZW5kIiksZS5wcm90b3R5cGUubGVhZlByZXBlbmQ9aShmdW5jdGlvbihhKXt2YXIgcj10aGlzLmxlZnQubGVhZlByZXBlbmQoYSk7aWYocilyZXR1cm4gbmV3IGUocix0aGlzLnJpZ2h0KX0sImxlYWZQcmVwZW5kIiksZS5wcm90b3R5cGUuYXBwZW5kSW5uZXI9aShmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sZWZ0LmRlcHRoPj1NYXRoLm1heCh0aGlzLnJpZ2h0LmRlcHRoLGEuZGVwdGgpKzE/bmV3IGUodGhpcy5sZWZ0LG5ldyBlKHRoaXMucmlnaHQsYSkpOm5ldyBlKHRoaXMsYSl9LCJhcHBlbmRJbm5lciIpLGV9KShFbyksZXN0PUVvfSk7ZnVuY3Rpb24gdFhhKHMsZSl7bGV0IHQ7cmV0dXJuIHMuZm9yRWFjaCgoYSxyKT0+e2lmKGEuc2VsZWN0aW9uJiZlLS09PTApcmV0dXJuIHQ9ciwhMX0pLHMuc2xpY2UodCl9ZnVuY3Rpb24gc1hhKHMsZSx0LGEpe2xldCByPXQuZ2V0TWV0YShIZCksbjtpZihyKXJldHVybiByLmhpc3RvcnlTdGF0ZTt0LmdldE1ldGEoeTRhKSYmKHM9bmV3IEJkKHMuZG9uZSxzLnVuZG9uZSxudWxsLDAsLTEpKTtsZXQgbz10LmdldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iKTtpZih0LnN0ZXBzLmxlbmd0aD09MClyZXR1cm4gcztpZihvJiZvLmdldE1ldGEoSGQpKXJldHVybiBvLmdldE1ldGEoSGQpLnJlZG8/bmV3IEJkKHMuZG9uZS5hZGRUcmFuc2Zvcm0odCx2b2lkIDAsYSx0Y2UoZSkpLHMudW5kb25lLHY0YSh0Lm1hcHBpbmcubWFwcykscy5wcmV2VGltZSxzLnByZXZDb21wb3NpdGlvbik6bmV3IEJkKHMuZG9uZSxzLnVuZG9uZS5hZGRUcmFuc2Zvcm0odCx2b2lkIDAsYSx0Y2UoZSkpLG51bGwscy5wcmV2VGltZSxzLnByZXZDb21wb3NpdGlvbik7aWYodC5nZXRNZXRhKCJhZGRUb0hpc3RvcnkiKSE9PSExJiYhKG8mJm8uZ2V0TWV0YSgiYWRkVG9IaXN0b3J5Iik9PT0hMSkpe2xldCBsPXQuZ2V0TWV0YSgiY29tcG9zaXRpb24iKSxwPXMucHJldlRpbWU9PTB8fCFvJiZzLnByZXZDb21wb3NpdGlvbiE9bCYmKHMucHJldlRpbWU8KHQudGltZXx8MCktYS5uZXdHcm91cERlbGF5fHwhaVhhKHQscy5wcmV2UmFuZ2VzKSksZD1vP3RzdChzLnByZXZSYW5nZXMsdC5tYXBwaW5nKTp2NGEodC5tYXBwaW5nLm1hcHMpO3JldHVybiBuZXcgQmQocy5kb25lLmFkZFRyYW5zZm9ybSh0LHA/ZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKTp2b2lkIDAsYSx0Y2UoZSkpLHBnLmVtcHR5LGQsdC50aW1lLGw/P3MucHJldkNvbXBvc2l0aW9uKX1lbHNlIHJldHVybihuPXQuZ2V0TWV0YSgicmViYXNlZCIpKT9uZXcgQmQocy5kb25lLnJlYmFzZWQodCxuKSxzLnVuZG9uZS5yZWJhc2VkKHQsbiksdHN0KHMucHJldlJhbmdlcyx0Lm1hcHBpbmcpLHMucHJldlRpbWUscy5wcmV2Q29tcG9zaXRpb24pOm5ldyBCZChzLmRvbmUuYWRkTWFwcyh0Lm1hcHBpbmcubWFwcykscy51bmRvbmUuYWRkTWFwcyh0Lm1hcHBpbmcubWFwcyksdHN0KHMucHJldlJhbmdlcyx0Lm1hcHBpbmcpLHMucHJldlRpbWUscy5wcmV2Q29tcG9zaXRpb24pfWZ1bmN0aW9uIGlYYShzLGUpe2lmKCFlKXJldHVybiExO2lmKCFzLmRvY0NoYW5nZWQpcmV0dXJuITA7bGV0IHQ9ITE7cmV0dXJuIHMubWFwcGluZy5tYXBzWzBdLmZvckVhY2goKGEscik9Pntmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rPTIpYTw9ZVtuKzFdJiZyPj1lW25dJiYodD0hMCl9KSx0fWZ1bmN0aW9uIHY0YShzKXtsZXQgZT1bXTtmb3IobGV0IHQ9cy5sZW5ndGgtMTt0Pj0wJiZlLmxlbmd0aD09MDt0LS0pc1t0XS5mb3JFYWNoKChhLHIsbixvKT0+ZS5wdXNoKG4sbykpO3JldHVybiBlfWZ1bmN0aW9uIHRzdChzLGUpe2lmKCFzKXJldHVybiBudWxsO2xldCB0PVtdO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSs9Mil7bGV0IHI9ZS5tYXAoc1thXSwxKSxuPWUubWFwKHNbYSsxXSwtMSk7cjw9biYmdC5wdXNoKHIsbil9cmV0dXJuIHR9ZnVuY3Rpb24gclhhKHMsZSx0KXtsZXQgYT10Y2UoZSkscj1IZC5nZXQoZSkuc3BlYy5jb25maWcsbj0odD9zLnVuZG9uZTpzLmRvbmUpLnBvcEV2ZW50KGUsYSk7aWYoIW4pcmV0dXJuIG51bGw7bGV0IG89bi5zZWxlY3Rpb24ucmVzb2x2ZShuLnRyYW5zZm9ybS5kb2MpLGw9KHQ/cy5kb25lOnMudW5kb25lKS5hZGRUcmFuc2Zvcm0obi50cmFuc2Zvcm0sZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKSxyLGEpLHA9bmV3IEJkKHQ/bDpuLnJlbWFpbmluZyx0P24ucmVtYWluaW5nOmwsbnVsbCwwLC0xKTtyZXR1cm4gbi50cmFuc2Zvcm0uc2V0U2VsZWN0aW9uKG8pLnNldE1ldGEoSGQse3JlZG86dCxoaXN0b3J5U3RhdGU6cH0pfWZ1bmN0aW9uIHRjZShzKXtsZXQgZT1zLnBsdWdpbnM7aWYoeDRhIT1lKXthc3Q9ITEseDRhPWU7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS5zcGVjLmhpc3RvcnlQcmVzZXJ2ZUl0ZW1zKXthc3Q9ITA7YnJlYWt9fXJldHVybiBhc3R9ZnVuY3Rpb24gb1hhKHMpe3JldHVybiBzLnNldE1ldGEoeTRhLCEwKX1mdW5jdGlvbiBzc3Qocz17fSl7cmV0dXJuIHM9e2RlcHRoOnMuZGVwdGh8fDEwMCxuZXdHcm91cERlbGF5OnMubmV3R3JvdXBEZWxheXx8NTAwfSxuZXcgWXMoe2tleTpIZCxzdGF0ZTp7aW5pdCgpe3JldHVybiBuZXcgQmQocGcuZW1wdHkscGcuZW1wdHksbnVsbCwwLC0xKX0sYXBwbHkoZSx0LGEpe3JldHVybiBzWGEodCxhLGUscyl9fSxjb25maWc6cyxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntiZWZvcmVpbnB1dChlLHQpe2xldCBhPXQuaW5wdXRUeXBlLHI9YT09Imhpc3RvcnlVbmRvIj9zY2U6YT09Imhpc3RvcnlSZWRvIj9pY2U6bnVsbDtyZXR1cm4hcnx8IWUuZWRpdGFibGU/ITE6KHQucHJldmVudERlZmF1bHQoKSxyKGUuc3RhdGUsZS5kaXNwYXRjaCkpfX19fSl9ZnVuY3Rpb24gYWNlKHMsZSl7cmV0dXJuKHQsYSk9PntsZXQgcj1IZC5nZXRTdGF0ZSh0KTtpZighcnx8KHM/ci51bmRvbmU6ci5kb25lKS5ldmVudENvdW50PT0wKXJldHVybiExO2lmKGEpe2xldCBuPXJYYShyLHQscyk7biYmYShlP24uc2Nyb2xsSW50b1ZpZXcoKTpuKX1yZXR1cm4hMH19ZnVuY3Rpb24gY1hhKHMpe2xldCBlPUhkLmdldFN0YXRlKHMpO3JldHVybiBlP2UuZG9uZS5ldmVudENvdW50OjB9ZnVuY3Rpb24gZFhhKHMpe2xldCBlPUhkLmdldFN0YXRlKHMpO3JldHVybiBlP2UudW5kb25lLmV2ZW50Q291bnQ6MH1mdW5jdGlvbiB1WGEocyl7cmV0dXJuIHMuZ2V0TWV0YShIZCkhPW51bGx9dmFyIGVYYSxwZyxGZCxCZCxhWGEsYXN0LHg0YSxIZCx5NGEsc2NlLGljZSxuWGEsbFhhLHc0YT1nKCgpPT57YjRhKCk7emgoKTtydSgpO2VYYT01MDAscGc9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJCcmFuY2giKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuaXRlbXM9ZSx0aGlzLmV2ZW50Q291bnQ9dH1wb3BFdmVudChlLHQpe2lmKHRoaXMuZXZlbnRDb3VudD09MClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLml0ZW1zLmxlbmd0aDtmb3IoOzthLS0paWYodGhpcy5pdGVtcy5nZXQoYS0xKS5zZWxlY3Rpb24pey0tYTticmVha31sZXQgcixuO3QmJihyPXRoaXMucmVtYXBwaW5nKGEsdGhpcy5pdGVtcy5sZW5ndGgpLG49ci5tYXBzLmxlbmd0aCk7bGV0IG89ZS50cixsLHAsZD1bXSx1PVtdO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKGMsYik9PntpZighYy5zdGVwKXtyfHwocj10aGlzLnJlbWFwcGluZyhhLGIrMSksbj1yLm1hcHMubGVuZ3RoKSxuLS0sdS5wdXNoKGMpO3JldHVybn1pZihyKXt1LnB1c2gobmV3IEZkKGMubWFwKSk7bGV0IHY9Yy5zdGVwLm1hcChyLnNsaWNlKG4pKSx4O3YmJm8ubWF5YmVTdGVwKHYpLmRvYyYmKHg9by5tYXBwaW5nLm1hcHNbby5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLGQucHVzaChuZXcgRmQoeCx2b2lkIDAsdm9pZCAwLGQubGVuZ3RoK3UubGVuZ3RoKSkpLG4tLSx4JiZyLmFwcGVuZE1hcCh4LG4pfWVsc2Ugby5tYXliZVN0ZXAoYy5zdGVwKTtpZihjLnNlbGVjdGlvbilyZXR1cm4gbD1yP2Muc2VsZWN0aW9uLm1hcChyLnNsaWNlKG4pKTpjLnNlbGVjdGlvbixwPW5ldyBzKHRoaXMuaXRlbXMuc2xpY2UoMCxhKS5hcHBlbmQodS5yZXZlcnNlKCkuY29uY2F0KGQpKSx0aGlzLmV2ZW50Q291bnQtMSksITF9LHRoaXMuaXRlbXMubGVuZ3RoLDApLHtyZW1haW5pbmc6cCx0cmFuc2Zvcm06byxzZWxlY3Rpb246bH19YWRkVHJhbnNmb3JtKGUsdCxhLHIpe2xldCBuPVtdLG89dGhpcy5ldmVudENvdW50LGw9dGhpcy5pdGVtcyxwPSFyJiZsLmxlbmd0aD9sLmdldChsLmxlbmd0aC0xKTpudWxsO2ZvcihsZXQgdT0wO3U8ZS5zdGVwcy5sZW5ndGg7dSsrKXtsZXQgYz1lLnN0ZXBzW3VdLmludmVydChlLmRvY3NbdV0pLGI9bmV3IEZkKGUubWFwcGluZy5tYXBzW3VdLGMsdCksdjsodj1wJiZwLm1lcmdlKGIpKSYmKGI9dix1P24ucG9wKCk6bD1sLnNsaWNlKDAsbC5sZW5ndGgtMSkpLG4ucHVzaChiKSx0JiYobysrLHQ9dm9pZCAwKSxyfHwocD1iKX1sZXQgZD1vLWEuZGVwdGg7cmV0dXJuIGQ+YVhhJiYobD10WGEobCxkKSxvLT1kKSxuZXcgcyhsLmFwcGVuZChuKSxvKX1yZW1hcHBpbmcoZSx0KXtsZXQgYT1uZXcgU3Y7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCgocixuKT0+e2xldCBvPXIubWlycm9yT2Zmc2V0IT1udWxsJiZuLXIubWlycm9yT2Zmc2V0Pj1lP2EubWFwcy5sZW5ndGgtci5taXJyb3JPZmZzZXQ6dm9pZCAwO2EuYXBwZW5kTWFwKHIubWFwLG8pfSxlLHQpLGF9YWRkTWFwcyhlKXtyZXR1cm4gdGhpcy5ldmVudENvdW50PT0wP3RoaXM6bmV3IHModGhpcy5pdGVtcy5hcHBlbmQoZS5tYXAodD0+bmV3IEZkKHQpKSksdGhpcy5ldmVudENvdW50KX1yZWJhc2VkKGUsdCl7aWYoIXRoaXMuZXZlbnRDb3VudClyZXR1cm4gdGhpcztsZXQgYT1bXSxyPU1hdGgubWF4KDAsdGhpcy5pdGVtcy5sZW5ndGgtdCksbj1lLm1hcHBpbmcsbz1lLnN0ZXBzLmxlbmd0aCxsPXRoaXMuZXZlbnRDb3VudDt0aGlzLml0ZW1zLmZvckVhY2goYj0+e2Iuc2VsZWN0aW9uJiZsLS19LHIpO2xldCBwPXQ7dGhpcy5pdGVtcy5mb3JFYWNoKGI9PntsZXQgdj1uLmdldE1pcnJvcigtLXApO2lmKHY9PW51bGwpcmV0dXJuO289TWF0aC5taW4obyx2KTtsZXQgeD1uLm1hcHNbdl07aWYoYi5zdGVwKXtsZXQgbT1lLnN0ZXBzW3ZdLmludmVydChlLmRvY3Nbdl0pLGY9Yi5zZWxlY3Rpb24mJmIuc2VsZWN0aW9uLm1hcChuLnNsaWNlKHArMSx2KSk7ZiYmbCsrLGEucHVzaChuZXcgRmQoeCxtLGYpKX1lbHNlIGEucHVzaChuZXcgRmQoeCkpfSxyKTtsZXQgZD1bXTtmb3IobGV0IGI9dDtiPG87YisrKWQucHVzaChuZXcgRmQobi5tYXBzW2JdKSk7bGV0IHU9dGhpcy5pdGVtcy5zbGljZSgwLHIpLmFwcGVuZChkKS5hcHBlbmQoYSksYz1uZXcgcyh1LGwpO3JldHVybiBjLmVtcHR5SXRlbUNvdW50KCk+ZVhhJiYoYz1jLmNvbXByZXNzKHRoaXMuaXRlbXMubGVuZ3RoLWEubGVuZ3RoKSksY31lbXB0eUl0ZW1Db3VudCgpe2xldCBlPTA7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCh0PT57dC5zdGVwfHxlKyt9KSxlfWNvbXByZXNzKGU9dGhpcy5pdGVtcy5sZW5ndGgpe2xldCB0PXRoaXMucmVtYXBwaW5nKDAsZSksYT10Lm1hcHMubGVuZ3RoLHI9W10sbj0wO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKG8sbCk9PntpZihsPj1lKXIucHVzaChvKSxvLnNlbGVjdGlvbiYmbisrO2Vsc2UgaWYoby5zdGVwKXtsZXQgcD1vLnN0ZXAubWFwKHQuc2xpY2UoYSkpLGQ9cCYmcC5nZXRNYXAoKTtpZihhLS0sZCYmdC5hcHBlbmRNYXAoZCxhKSxwKXtsZXQgdT1vLnNlbGVjdGlvbiYmby5zZWxlY3Rpb24ubWFwKHQuc2xpY2UoYSkpO3UmJm4rKztsZXQgYz1uZXcgRmQoZC5pbnZlcnQoKSxwLHUpLGIsdj1yLmxlbmd0aC0xOyhiPXIubGVuZ3RoJiZyW3ZdLm1lcmdlKGMpKT9yW3ZdPWI6ci5wdXNoKGMpfX1lbHNlIG8ubWFwJiZhLS19LHRoaXMuaXRlbXMubGVuZ3RoLDApLG5ldyBzKGVzdC5mcm9tKHIucmV2ZXJzZSgpKSxuKX19O3BnLmVtcHR5PW5ldyBwZyhlc3QuZW1wdHksMCk7aSh0WGEsImN1dE9mZkV2ZW50cyIpO0ZkPWNsYXNzIHN7c3RhdGlje2kodGhpcywiSXRlbSIpfWNvbnN0cnVjdG9yKGUsdCxhLHIpe3RoaXMubWFwPWUsdGhpcy5zdGVwPXQsdGhpcy5zZWxlY3Rpb249YSx0aGlzLm1pcnJvck9mZnNldD1yfW1lcmdlKGUpe2lmKHRoaXMuc3RlcCYmZS5zdGVwJiYhZS5zZWxlY3Rpb24pe2xldCB0PWUuc3RlcC5tZXJnZSh0aGlzLnN0ZXApO2lmKHQpcmV0dXJuIG5ldyBzKHQuZ2V0TWFwKCkuaW52ZXJ0KCksdCx0aGlzLnNlbGVjdGlvbil9fX0sQmQ9Y2xhc3N7c3RhdGlje2kodGhpcywiSGlzdG9yeVN0YXRlIil9Y29uc3RydWN0b3IoZSx0LGEscixuKXt0aGlzLmRvbmU9ZSx0aGlzLnVuZG9uZT10LHRoaXMucHJldlJhbmdlcz1hLHRoaXMucHJldlRpbWU9cix0aGlzLnByZXZDb21wb3NpdGlvbj1ufX0sYVhhPTIwO2koc1hhLCJhcHBseVRyYW5zYWN0aW9uIik7aShpWGEsImlzQWRqYWNlbnRUbyIpO2kodjRhLCJyYW5nZXNGb3IiKTtpKHRzdCwibWFwUmFuZ2VzIik7aShyWGEsImhpc3RUcmFuc2FjdGlvbiIpO2FzdD0hMSx4NGE9bnVsbDtpKHRjZSwibXVzdFByZXNlcnZlSXRlbXMiKTtpKG9YYSwiY2xvc2VIaXN0b3J5Iik7SGQ9bmV3ICRyKCJoaXN0b3J5IikseTRhPW5ldyAkcigiY2xvc2VIaXN0b3J5Iik7aShzc3QsImhpc3RvcnkiKTtpKGFjZSwiYnVpbGRDb21tYW5kIik7c2NlPWFjZSghMSwhMCksaWNlPWFjZSghMCwhMCksblhhPWFjZSghMSwhMSksbFhhPWFjZSghMCwhMSk7aShjWGEsInVuZG9EZXB0aCIpO2koZFhhLCJyZWRvRGVwdGgiKTtpKHVYYSwiaXNIaXN0b3J5VHJhbnNhY3Rpb24iKX0pO3ZhciBrNGE9ZygoKT0+e3c0YSgpfSk7dmFyIHJjZSxTNGE9ZygoKT0+e2lpKCk7azRhKCk7cmNlPXdpLmNyZWF0ZSh7bmFtZToiaGlzdG9yeSIsYWRkT3B0aW9ucygpe3JldHVybntkZXB0aDoxMDAsbmV3R3JvdXBEZWxheTo1MDB9fSxhZGRDb21tYW5kcygpe3JldHVybnt1bmRvOmkoKCk9Pih7c3RhdGU6cyxkaXNwYXRjaDplfSk9PnNjZShzLGUpLCJ1bmRvIikscmVkbzppKCgpPT4oe3N0YXRlOnMsZGlzcGF0Y2g6ZX0pPT5pY2UocyxlKSwicmVkbyIpfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW3NzdCh0aGlzLm9wdGlvbnMpXX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy51bmRvKCksIk1vZC16IiksIlNoaWZ0LU1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC16IiksIk1vZC15IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIk1vZC15IiksIk1vZC1cdTA0NEYiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnVuZG8oKSwiTW9kLVx1MDQ0RiIpLCJTaGlmdC1Nb2QtXHUwNDRGIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC1cdTA0NEYiKX19fSl9KTt2YXIgb2NlLF80YT1nKCgpPT57aWkoKTtHWigpO29jZT1zaS5jcmVhdGUoe25hbWU6Imhvcml6b250YWxSdWxlIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0sZ3JvdXA6ImJsb2NrIixwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiaHIifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bImhyIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyldfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIb3Jpem9udGFsUnVsZTppKCgpPT4oe2NoYWluOnMsc3RhdGU6ZX0pPT57aWYoIXFsZShlLGUuc2NoZW1hLm5vZGVzW3RoaXMubmFtZV0pKXJldHVybiExO2xldHtzZWxlY3Rpb246dH09ZSx7JGZyb206YSwkdG86cn09dCxuPXMoKTtyZXR1cm4gYS5wYXJlbnRPZmZzZXQ9PT0wP24uaW5zZXJ0Q29udGVudEF0KHtmcm9tOk1hdGgubWF4KGEucG9zLTEsMCksdG86ci5wb3N9LHt0eXBlOnRoaXMubmFtZX0pOkJsZSh0KT9uLmluc2VydENvbnRlbnRBdChyLnBvcyx7dHlwZTp0aGlzLm5hbWV9KTpuLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSksbi5jb21tYW5kKCh7dHI6byxkaXNwYXRjaDpsfSk9Pnt2YXIgcDtpZihsKXtsZXR7JHRvOmR9PW8uc2VsZWN0aW9uLHU9ZC5lbmQoKTtpZihkLm5vZGVBZnRlcilkLm5vZGVBZnRlci5pc1RleHRibG9jaz9vLnNldFNlbGVjdGlvbihKdC5jcmVhdGUoby5kb2MsZC5wb3MrMSkpOmQubm9kZUFmdGVyLmlzQmxvY2s/by5zZXRTZWxlY3Rpb24oRnQuY3JlYXRlKG8uZG9jLGQucG9zKSk6by5zZXRTZWxlY3Rpb24oSnQuY3JlYXRlKG8uZG9jLGQucG9zKSk7ZWxzZXtsZXQgYz0ocD1kLnBhcmVudC50eXBlLmNvbnRlbnRNYXRjaC5kZWZhdWx0VHlwZSk9PT1udWxsfHxwPT09dm9pZCAwP3ZvaWQgMDpwLmNyZWF0ZSgpO2MmJihvLmluc2VydCh1LGMpLG8uc2V0U2VsZWN0aW9uKEp0LmNyZWF0ZShvLmRvYyx1KzEpKSl9by5zY3JvbGxJbnRvVmlldygpfXJldHVybiEwfSkucnVuKCl9LCJzZXRIb3Jpem9udGFsUnVsZSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltIbGUoe2ZpbmQ6L14oPzotLS184oCULXxfX19cc3xcKlwqXCpccykkLyx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBNNGEsejRhLEM0YSxUNGEsbmNlLCQ0YT1nKCgpPT57aWkoKTtNNGE9Lyg/Ol58XHMpKFwqKD8hXHMrXCopKCg/OlteKl0rKSlcKig/IVxzK1wqKSkkLyx6NGE9Lyg/Ol58XHMpKFwqKD8hXHMrXCopKCg/OlteKl0rKSlcKig/IVxzK1wqKSkvZyxDNGE9Lyg/Ol58XHMpKF8oPyFccytfKSgoPzpbXl9dKykpXyg/IVxzK18pKSQvLFQ0YT0vKD86XnxccykoXyg/IVxzK18pKCg/OlteX10rKSlfKD8hXHMrXykpL2csbmNlPURvLmNyZWF0ZSh7bmFtZToiaXRhbGljIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImVtIn0se3RhZzoiaSIsZ2V0QXR0cnM6aShzPT5zLnN0eWxlLmZvbnRTdHlsZSE9PSJub3JtYWwiJiZudWxsLCJnZXRBdHRycyIpfSx7c3R5bGU6ImZvbnQtc3R5bGU9bm9ybWFsIixjbGVhck1hcms6aShzPT5zLnR5cGUubmFtZT09PXRoaXMubmFtZSwiY2xlYXJNYXJrIil9LHtzdHlsZToiZm9udC1zdHlsZT1pdGFsaWMifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bImVtIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEl0YWxpYzppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy5zZXRNYXJrKHRoaXMubmFtZSksInNldEl0YWxpYyIpLHRvZ2dsZUl0YWxpYzppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZUl0YWxpYyIpLHVuc2V0SXRhbGljOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldEl0YWxpYyIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1pIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVJdGFsaWMoKSwiTW9kLWkiKSwiTW9kLUkiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUl0YWxpYygpLCJNb2QtSSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltxYyh7ZmluZDpNNGEsdHlwZTp0aGlzLnR5cGV9KSxxYyh7ZmluZDpDNGEsdHlwZTp0aGlzLnR5cGV9KV19LGFkZFBhc3RlUnVsZXMoKXtyZXR1cm5bVGwoe2ZpbmQ6ejRhLHR5cGU6dGhpcy50eXBlfSksVGwoe2ZpbmQ6VDRhLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIGxjZSxENGE9ZygoKT0+e2lpKCk7bGNlPXNpLmNyZWF0ZSh7bmFtZToibGlzdEl0ZW0iLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e30sYnVsbGV0TGlzdFR5cGVOYW1lOiJidWxsZXRMaXN0IixvcmRlcmVkTGlzdFR5cGVOYW1lOiJvcmRlcmVkTGlzdCJ9fSxjb250ZW50OiJwYXJhZ3JhcGggYmxvY2sqIixkZWZpbmluZzohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoibGkifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bImxpIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJue0VudGVyOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNwbGl0TGlzdEl0ZW0odGhpcy5uYW1lKSwiRW50ZXIiKSxUYWI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2lua0xpc3RJdGVtKHRoaXMubmFtZSksIlRhYiIpLCJTaGlmdC1UYWIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmxpZnRMaXN0SXRlbSh0aGlzLm5hbWUpLCJTaGlmdC1UYWIiKX19fSl9KTt2YXIgcFhhLEw0YSxpc3QsY2NlLEU0YT1nKCgpPT57aWkoKTtwWGE9Imxpc3RJdGVtIixMNGE9InRleHRTdHlsZSIsaXN0PS9eKFxkKylcLlxzJC8sY2NlPXNpLmNyZWF0ZSh7bmFtZToib3JkZXJlZExpc3QiLGFkZE9wdGlvbnMoKXtyZXR1cm57aXRlbVR5cGVOYW1lOiJsaXN0SXRlbSIsSFRNTEF0dHJpYnV0ZXM6e30sa2VlcE1hcmtzOiExLGtlZXBBdHRyaWJ1dGVzOiExfX0sZ3JvdXA6ImJsb2NrIGxpc3QiLGNvbnRlbnQoKXtyZXR1cm5gJHt0aGlzLm9wdGlvbnMuaXRlbVR5cGVOYW1lfStgfSxhZGRBdHRyaWJ1dGVzKCl7cmV0dXJue3N0YXJ0OntkZWZhdWx0OjEscGFyc2VIVE1MOmkocz0+cy5oYXNBdHRyaWJ1dGUoInN0YXJ0Iik/cGFyc2VJbnQocy5nZXRBdHRyaWJ1dGUoInN0YXJ0Iil8fCIiLDEwKToxLCJwYXJzZUhUTUwiKX0sdHlwZTp7ZGVmYXVsdDpudWxsLHBhcnNlSFRNTDppKHM9PnMuZ2V0QXR0cmlidXRlKCJ0eXBlIiksInBhcnNlSFRNTCIpfX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJvbCJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6c30pe2xldHtzdGFydDplLC4uLnR9PXM7cmV0dXJuIGU9PT0xP1sib2wiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXTpbIm9sIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3RvZ2dsZU9yZGVyZWRMaXN0OmkoKCk9Pih7Y29tbWFuZHM6cyxjaGFpbjplfSk9PnRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcz9lKCkudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKS51cGRhdGVBdHRyaWJ1dGVzKHBYYSx0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKEw0YSkpLnJ1bigpOnMudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKSwidG9nZ2xlT3JkZXJlZExpc3QiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtNyI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlT3JkZXJlZExpc3QoKSwiTW9kLVNoaWZ0LTciKX19LGFkZElucHV0UnVsZXMoKXtsZXQgcz1PZCh7ZmluZDppc3QsdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKGU9Pih7c3RhcnQ6K2VbMV19KSwiZ2V0QXR0cmlidXRlcyIpLGpvaW5QcmVkaWNhdGU6aSgoZSx0KT0+dC5jaGlsZENvdW50K3QuYXR0cnMuc3RhcnQ9PT0rZVsxXSwiam9pblByZWRpY2F0ZSIpfSk7cmV0dXJuKHRoaXMub3B0aW9ucy5rZWVwTWFya3N8fHRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcykmJihzPU9kKHtmaW5kOmlzdCx0eXBlOnRoaXMudHlwZSxrZWVwTWFya3M6dGhpcy5vcHRpb25zLmtlZXBNYXJrcyxrZWVwQXR0cmlidXRlczp0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMsZ2V0QXR0cmlidXRlczppKGU9Pih7c3RhcnQ6K2VbMV0sLi4udGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhMNGEpfSksImdldEF0dHJpYnV0ZXMiKSxqb2luUHJlZGljYXRlOmkoKGUsdCk9PnQuY2hpbGRDb3VudCt0LmF0dHJzLnN0YXJ0PT09K2VbMV0sImpvaW5QcmVkaWNhdGUiKSxlZGl0b3I6dGhpcy5lZGl0b3J9KSksW3NdfX0pfSk7dmFyIGRjZSxQNGE9ZygoKT0+e2lpKCk7ZGNlPXNpLmNyZWF0ZSh7bmFtZToicGFyYWdyYXBoIixwcmlvcml0eToxZTMsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGdyb3VwOiJibG9jayIsY29udGVudDoiaW5saW5lKiIscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InAifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bInAiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0UGFyYWdyYXBoOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnNldE5vZGUodGhpcy5uYW1lKSwic2V0UGFyYWdyYXBoIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLUFsdC0wIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZXRQYXJhZ3JhcGgoKSwiTW9kLUFsdC0wIil9fX0pfSk7dmFyIEk0YSxBNGEsdWNlLE40YT1nKCgpPT57aWkoKTtJNGE9Lyg/Ol58XHMpKH5+KD8hXHMrfn4pKCg/Oltefl0rKSl+fig/IVxzK35+KSkkLyxBNGE9Lyg/Ol58XHMpKH5+KD8hXHMrfn4pKCg/Oltefl0rKSl+fig/IVxzK35+KSkvZyx1Y2U9RG8uY3JlYXRlKHtuYW1lOiJzdHJpa2UiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoicyJ9LHt0YWc6ImRlbCJ9LHt0YWc6InN0cmlrZSJ9LHtzdHlsZToidGV4dC1kZWNvcmF0aW9uIixjb25zdW1pbmc6ITEsZ2V0QXR0cnM6aShzPT5zLmluY2x1ZGVzKCJsaW5lLXRocm91Z2giKT97fTohMSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuWyJzIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFN0cmlrZTppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy5zZXRNYXJrKHRoaXMubmFtZSksInNldFN0cmlrZSIpLHRvZ2dsZVN0cmlrZTppKCgpPT4oe2NvbW1hbmRzOnN9KT0+cy50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZVN0cmlrZSIpLHVuc2V0U3RyaWtlOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldFN0cmlrZSIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1TaGlmdC1zIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVTdHJpa2UoKSwiTW9kLVNoaWZ0LXMiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bcWMoe2ZpbmQ6STRhLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW1RsKHtmaW5kOkE0YSx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBwY2UsUjRhPWcoKCk9PntpaSgpO3BjZT1zaS5jcmVhdGUoe25hbWU6InRleHQiLGdyb3VwOiJpbmxpbmUifSl9KTt2YXIgb3N0PXt9O3l0KG9zdCx7U3RhcnRlcktpdDooKT0+cnN0LGRlZmF1bHQ6KCk9PnJzdH0pO3ZhciByc3QsbnN0PWcoKCk9PntpaSgpO1doYSgpO1hoYSgpO0poYSgpO2E0YSgpO3I0YSgpO280YSgpO2M0YSgpO2g0YSgpO2Y0YSgpO200YSgpO1M0YSgpO180YSgpOyQ0YSgpO0Q0YSgpO0U0YSgpO1A0YSgpO040YSgpO1I0YSgpO3JzdD13aS5jcmVhdGUoe25hbWU6InN0YXJ0ZXJLaXQiLGFkZEV4dGVuc2lvbnMoKXtsZXQgcz1bXTtyZXR1cm4gdGhpcy5vcHRpb25zLmJvbGQhPT0hMSYmcy5wdXNoKFZsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmJvbGQpKSx0aGlzLm9wdGlvbnMuYmxvY2txdW90ZSE9PSExJiZzLnB1c2goamxlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuYmxvY2txdW90ZSkpLHRoaXMub3B0aW9ucy5idWxsZXRMaXN0IT09ITEmJnMucHVzaChVbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5idWxsZXRMaXN0KSksdGhpcy5vcHRpb25zLmNvZGUhPT0hMSYmcy5wdXNoKFdsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmNvZGUpKSx0aGlzLm9wdGlvbnMuY29kZUJsb2NrIT09ITEmJnMucHVzaChHbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5jb2RlQmxvY2spKSx0aGlzLm9wdGlvbnMuZG9jdW1lbnQhPT0hMSYmcy5wdXNoKEtsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmRvY3VtZW50KSksdGhpcy5vcHRpb25zLmRyb3BjdXJzb3IhPT0hMSYmcy5wdXNoKFlsZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmRyb3BjdXJzb3IpKSx0aGlzLm9wdGlvbnMuZ2FwY3Vyc29yIT09ITEmJnMucHVzaChYbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5nYXBjdXJzb3IpKSx0aGlzLm9wdGlvbnMuaGFyZEJyZWFrIT09ITEmJnMucHVzaChRbGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5oYXJkQnJlYWspKSx0aGlzLm9wdGlvbnMuaGVhZGluZyE9PSExJiZzLnB1c2goSmxlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaGVhZGluZykpLHRoaXMub3B0aW9ucy5oaXN0b3J5IT09ITEmJnMucHVzaChyY2UuY29uZmlndXJlKHRoaXMub3B0aW9ucy5oaXN0b3J5KSksdGhpcy5vcHRpb25zLmhvcml6b250YWxSdWxlIT09ITEmJnMucHVzaChvY2UuY29uZmlndXJlKHRoaXMub3B0aW9ucy5ob3Jpem9udGFsUnVsZSkpLHRoaXMub3B0aW9ucy5pdGFsaWMhPT0hMSYmcy5wdXNoKG5jZS5jb25maWd1cmUodGhpcy5vcHRpb25zLml0YWxpYykpLHRoaXMub3B0aW9ucy5saXN0SXRlbSE9PSExJiZzLnB1c2gobGNlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMubGlzdEl0ZW0pKSx0aGlzLm9wdGlvbnMub3JkZXJlZExpc3QhPT0hMSYmcy5wdXNoKGNjZS5jb25maWd1cmUodGhpcy5vcHRpb25zLm9yZGVyZWRMaXN0KSksdGhpcy5vcHRpb25zLnBhcmFncmFwaCE9PSExJiZzLnB1c2goZGNlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMucGFyYWdyYXBoKSksdGhpcy5vcHRpb25zLnN0cmlrZSE9PSExJiZzLnB1c2godWNlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuc3RyaWtlKSksdGhpcy5vcHRpb25zLnRleHQhPT0hMSYmcy5wdXNoKHBjZS5jb25maWd1cmUodGhpcy5vcHRpb25zLnRleHQpKSxzfX0pfSk7dmFyIGNzdD17fTt5dChjc3Qse1VuZGVybGluZTooKT0+bHN0LGRlZmF1bHQ6KCk9PmxzdH0pO3ZhciBsc3QsZHN0PWcoKCk9PntpaSgpO2xzdD1Eby5jcmVhdGUoe25hbWU6InVuZGVybGluZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJ1In0se3N0eWxlOiJ0ZXh0LWRlY29yYXRpb24iLGNvbnN1bWluZzohMSxnZXRBdHRyczppKHM9PnMuaW5jbHVkZXMoInVuZGVybGluZSIpP3t9OiExLCJnZXRBdHRycyIpfV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnN9KXtyZXR1cm5bInUiLGFzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxzKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0VW5kZXJsaW5lOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnNldE1hcmsodGhpcy5uYW1lKSwic2V0VW5kZXJsaW5lIiksdG9nZ2xlVW5kZXJsaW5lOmkoKCk9Pih7Y29tbWFuZHM6c30pPT5zLnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlVW5kZXJsaW5lIiksdW5zZXRVbmRlcmxpbmU6aSgoKT0+KHtjb21tYW5kczpzfSk9PnMudW5zZXRNYXJrKHRoaXMubmFtZSksInVuc2V0VW5kZXJsaW5lIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLXUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZVVuZGVybGluZSgpLCJNb2QtdSIpLCJNb2QtVSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlVW5kZXJsaW5lKCksIk1vZC1VIil9fX0pfSk7dmFyIHBzdD17fTt5dChwc3Qse1RleHRBbGlnbjooKT0+dXN0LGRlZmF1bHQ6KCk9PnVzdH0pO3ZhciB1c3QsaHN0PWcoKCk9PntpaSgpO3VzdD13aS5jcmVhdGUoe25hbWU6InRleHRBbGlnbiIsYWRkT3B0aW9ucygpe3JldHVybnt0eXBlczpbXSxhbGlnbm1lbnRzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0IiwianVzdGlmeSJdLGRlZmF1bHRBbGlnbm1lbnQ6bnVsbH19LGFkZEdsb2JhbEF0dHJpYnV0ZXMoKXtyZXR1cm5be3R5cGVzOnRoaXMub3B0aW9ucy50eXBlcyxhdHRyaWJ1dGVzOnt0ZXh0QWxpZ246e2RlZmF1bHQ6dGhpcy5vcHRpb25zLmRlZmF1bHRBbGlnbm1lbnQscGFyc2VIVE1MOmkocz0+e2xldCBlPXMuc3R5bGUudGV4dEFsaWduO3JldHVybiB0aGlzLm9wdGlvbnMuYWxpZ25tZW50cy5pbmNsdWRlcyhlKT9lOnRoaXMub3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50fSwicGFyc2VIVE1MIikscmVuZGVySFRNTDppKHM9PnMudGV4dEFsaWduP3tzdHlsZTpgdGV4dC1hbGlnbjogJHtzLnRleHRBbGlnbn1gfTp7fSwicmVuZGVySFRNTCIpfX19XX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0VGV4dEFsaWduOmkocz0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5hbGlnbm1lbnRzLmluY2x1ZGVzKHMpP3RoaXMub3B0aW9ucy50eXBlcy5tYXAodD0+ZS51cGRhdGVBdHRyaWJ1dGVzKHQse3RleHRBbGlnbjpzfSkpLmV2ZXJ5KHQ9PnQpOiExLCJzZXRUZXh0QWxpZ24iKSx1bnNldFRleHRBbGlnbjppKCgpPT4oe2NvbW1hbmRzOnN9KT0+dGhpcy5vcHRpb25zLnR5cGVzLm1hcChlPT5zLnJlc2V0QXR0cmlidXRlcyhlLCJ0ZXh0QWxpZ24iKSkuZXZlcnkoZT0+ZSksInVuc2V0VGV4dEFsaWduIiksdG9nZ2xlVGV4dEFsaWduOmkocz0+KHtlZGl0b3I6ZSxjb21tYW5kczp0fSk9PnRoaXMub3B0aW9ucy5hbGlnbm1lbnRzLmluY2x1ZGVzKHMpP2UuaXNBY3RpdmUoe3RleHRBbGlnbjpzfSk/dC51bnNldFRleHRBbGlnbigpOnQuc2V0VGV4dEFsaWduKHMpOiExLCJ0b2dnbGVUZXh0QWxpZ24iKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtbCI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJsZWZ0IiksIk1vZC1TaGlmdC1sIiksIk1vZC1TaGlmdC1lIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZXRUZXh0QWxpZ24oImNlbnRlciIpLCJNb2QtU2hpZnQtZSIpLCJNb2QtU2hpZnQtciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJyaWdodCIpLCJNb2QtU2hpZnQtciIpLCJNb2QtU2hpZnQtaiI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJqdXN0aWZ5IiksIk1vZC1TaGlmdC1qIil9fX0pfSk7ZnVuY3Rpb24gYlhhKHMsZSl7cmV0dXJuIHMgaW4gZXx8KGVbc109W10pLGVbc119ZnVuY3Rpb24gaGcocyxlLHQpe2VbZnN0XSYmKGVbbVhdPSEwLGVbZ1hdPSEwKSxlW21zdF0mJihlW21YXT0hMCxlW2dzdF09ITApLGVbbVhdJiYoZVtnWF09ITApLGVbZ3N0XSYmKGVbZ1hdPSEwKSxlW2dYXSYmKGVbYnN0XT0hMCksZVtPNGFdJiYoZVtic3RdPSEwKTtmb3IobGV0IGEgaW4gZSl7bGV0IHI9YlhhKGEsdCk7ci5pbmRleE9mKHMpPDAmJnIucHVzaChzKX19ZnVuY3Rpb24gdlhhKHMsZSl7bGV0IHQ9e307Zm9yKGxldCBhIGluIGUpZVthXS5pbmRleE9mKHMpPj0wJiYodFthXT0hMCk7cmV0dXJuIHR9ZnVuY3Rpb24gRW4ocz1udWxsKXt0aGlzLmo9e30sdGhpcy5qcj1bXSx0aGlzLmpkPW51bGwsdGhpcy50PXN9ZnVuY3Rpb24gU1hhKHM9W10pe2xldCBlPXt9O0VuLmdyb3Vwcz1lO2xldCB0PW5ldyBFbjtqY2U9PW51bGwmJihqY2U9SzRhKGhYYSkpLFZjZT09bnVsbCYmKFZjZT1LNGEoZlhhKSksY3QodCwiJyIsJGNlKSxjdCh0LCJ7Iix2WCksY3QodCwifSIseFgpLGN0KHQsIlsiLGZjZSksY3QodCwiXSIsbWNlKSxjdCh0LCIoIixnY2UpLGN0KHQsIikiLGJjZSksY3QodCwiPCIsdmNlKSxjdCh0LCI+Iix4Y2UpLGN0KHQsIlx1RkYwOCIseWNlKSxjdCh0LCJcdUZGMDkiLHdjZSksY3QodCwiXHUzMDBDIixrY2UpLGN0KHQsIlx1MzAwRCIsU2NlKSxjdCh0LCJcdTMwMEUiLF9jZSksY3QodCwiXHUzMDBGIixNY2UpLGN0KHQsIlx1RkYxQyIsemNlKSxjdCh0LCJcdUZGMUUiLENjZSksY3QodCwiJiIsVGNlKSxjdCh0LCIqIixEY2UpLGN0KHQsIkAiLEloKSxjdCh0LCJgIixFY2UpLGN0KHQsIl4iLFBjZSksY3QodCwiOiIsQWgpLGN0KHQsIiwiLE1zdCksY3QodCwiJCIsSWNlKSxjdCh0LCIuIixxZCksY3QodCwiPSIsQWNlKSxjdCh0LCIhIix6c3QpLGN0KHQsIi0iLGpjKSxjdCh0LCIlIix5WCksY3QodCwifCIsTmNlKSxjdCh0LCIrIixSY2UpLGN0KHQsIiMiLE9jZSksY3QodCwiPyIsd1gpLGN0KHQsJyInLENzdCksY3QodCwiLyIsamQpLGN0KHQsIjsiLFRzdCksY3QodCwifiIsa1gpLGN0KHQsIl8iLEZjZSksY3QodCwiXFwiLExjZSksY3QodCwiXHUzMEZCIixxNGEpO2xldCBhPUtpKHQsVWQsa3N0LHtbZnN0XTohMH0pO0tpKGEsVWQsYSk7bGV0IHI9S2koYSxWZCxCNGEse1ttWF06ITB9KSxuPUtpKGEsV3YsSDRhLHtbZ1hdOiEwfSksbz1LaSh0LFZkLHB1LHtbbXN0XTohMH0pO0tpKG8sVWQsciksS2kobyxWZCxvKSxLaShyLFVkLHIpLEtpKHIsVmQscik7bGV0IGw9S2kodCxXdix4c3Qse1tnc3RdOiEwfSk7S2kobCxWZCksS2kobCxVZCxuKSxLaShsLFd2LGwpLEtpKG4sVWQsbiksS2kobixWZCksS2kobixXdixuKTtsZXQgcD1jdCh0LCRzdCxfc3Qse1t2c3RdOiEwfSksZD1jdCh0LFU0YSxTc3Qse1t2c3RdOiEwfSksdT1LaSh0LHFjZSxTc3Qse1t2c3RdOiEwfSk7Y3QodCxEc3QsdSksY3QoZCwkc3QscCksY3QoZCxEc3QsdSksS2koZCxxY2UsdSksY3QodSxVNGEpLGN0KHUsJHN0KSxLaSh1LHFjZSx1KSxjdCh1LERzdCx1KTtsZXQgYz1LaSh0LEhjZSxqNGEse1tPNGFdOiEwfSk7Y3QoYywiIyIpLEtpKGMsSGNlLGMpLGN0KGMsd1hhLGMpO2xldCBiPWN0KGMsa1hhKTtjdChiLCIjIiksS2koYixIY2UsYyk7bGV0IHY9W1tWZCxvXSxbVWQscl1dLHg9W1tWZCxudWxsXSxbV3YsbF0sW1VkLG5dXTtmb3IobGV0IG09MDttPGpjZS5sZW5ndGg7bSsrKU5oKHQsamNlW21dLHlzdCxwdSx2KTtmb3IobGV0IG09MDttPFZjZS5sZW5ndGg7bSsrKU5oKHQsVmNlW21dLHdzdCx4c3QseCk7aGcoeXN0LHt0bGQ6ITAsYXNjaWk6ITB9LGUpLGhnKHdzdCx7dXRsZDohMCxhbHBoYTohMH0sZSksTmgodCwiZmlsZSIsaGNlLHB1LHYpLE5oKHQsIm1haWx0byIsaGNlLHB1LHYpLE5oKHQsImh0dHAiLFV2LHB1LHYpLE5oKHQsImh0dHBzIixVdixwdSx2KSxOaCh0LCJmdHAiLFV2LHB1LHYpLE5oKHQsImZ0cHMiLFV2LHB1LHYpLGhnKGhjZSx7c2NoZW1lOiEwLGFzY2lpOiEwfSxlKSxoZyhVdix7c2xhc2hzY2hlbWU6ITAsYXNjaWk6ITB9LGUpLHM9cy5zb3J0KChtLGYpPT5tWzBdPmZbMF0/MTotMSk7Zm9yKGxldCBtPTA7bTxzLmxlbmd0aDttKyspe2xldCBmPXNbbV1bMF0sTT1zW21dWzFdP3tbbVhhXTohMH06e1tnWGFdOiEwfTtmLmluZGV4T2YoIi0iKT49MD9NW2JzdF09ITA6VmQudGVzdChmKT9VZC50ZXN0KGYpP01bbVhdPSEwOk1bbXN0XT0hMDpNW2ZzdF09ITAsRjRhKHQsZixmLE0pfXJldHVybiBGNGEodCwibG9jYWxob3N0IixiWCx7YXNjaWk6ITB9KSx0LmpkPW5ldyBFbihCY2UpLHtzdGFydDp0LHRva2VuczpPYmplY3QuYXNzaWduKHtncm91cHM6ZX0sVjRhKX19ZnVuY3Rpb24gVzRhKHMsZSl7bGV0IHQ9RzRhKGUucmVwbGFjZSgvW0EtWl0vZyxsPT5sLnRvTG93ZXJDYXNlKCkpKSxhPXQubGVuZ3RoLHI9W10sbj0wLG89MDtmb3IoO288YTspe2xldCBsPXMscD1udWxsLGQ9MCx1PW51bGwsYz0tMSxiPS0xO2Zvcig7bzxhJiYocD1sLmdvKHRbb10pKTspbD1wLGwuYWNjZXB0cygpPyhjPTAsYj0wLHU9bCk6Yz49MCYmKGMrPXRbb10ubGVuZ3RoLGIrKyksZCs9dFtvXS5sZW5ndGgsbis9dFtvXS5sZW5ndGgsbysrO24tPWMsby09YixkLT1jLHIucHVzaCh7dDp1LnQsdjplLnNsaWNlKG4tZCxuKSxzOm4tZCxlOm59KX1yZXR1cm4gcn1mdW5jdGlvbiBHNGEocyl7bGV0IGU9W10sdD1zLmxlbmd0aCxhPTA7Zm9yKDthPHQ7KXtsZXQgcj1zLmNoYXJDb2RlQXQoYSksbixvPXI8NTUyOTZ8fHI+NTYzMTl8fGErMT09PXR8fChuPXMuY2hhckNvZGVBdChhKzEpKTw1NjMyMHx8bj41NzM0Mz9zW2FdOnMuc2xpY2UoYSxhKzIpO2UucHVzaChvKSxhKz1vLmxlbmd0aH1yZXR1cm4gZX1mdW5jdGlvbiBOaChzLGUsdCxhLHIpe2xldCBuLG89ZS5sZW5ndGg7Zm9yKGxldCBsPTA7bDxvLTE7bCsrKXtsZXQgcD1lW2xdO3MualtwXT9uPXMualtwXToobj1uZXcgRW4oYSksbi5qcj1yLnNsaWNlKCkscy5qW3BdPW4pLHM9bn1yZXR1cm4gbj1uZXcgRW4odCksbi5qcj1yLnNsaWNlKCkscy5qW2Vbby0xXV09bixufWZ1bmN0aW9uIEs0YShzKXtsZXQgZT1bXSx0PVtdLGE9MCxyPSIwMTIzNDU2Nzg5Ijtmb3IoO2E8cy5sZW5ndGg7KXtsZXQgbj0wO2Zvcig7ci5pbmRleE9mKHNbYStuXSk+PTA7KW4rKztpZihuPjApe2UucHVzaCh0LmpvaW4oIiIpKTtmb3IobGV0IG89cGFyc2VJbnQocy5zdWJzdHJpbmcoYSxhK24pLDEwKTtvPjA7by0tKXQucG9wKCk7YSs9bn1lbHNlIHQucHVzaChzW2FdKSxhKyt9cmV0dXJuIGV9ZnVuY3Rpb24gU1gocyxlPW51bGwpe2xldCB0PU9iamVjdC5hc3NpZ24oe30sR3YpO3MmJih0PU9iamVjdC5hc3NpZ24odCxzIGluc3RhbmNlb2YgU1g/cy5vOnMpKTtsZXQgYT10Lmlnbm9yZVRhZ3Mscj1bXTtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rKylyLnB1c2goYVtuXS50b1VwcGVyQ2FzZSgpKTt0aGlzLm89dCxlJiYodGhpcy5kZWZhdWx0UmVuZGVyPWUpLHRoaXMuaWdub3JlVGFncz1yfWZ1bmN0aW9uIFk0YShzKXtyZXR1cm4gc31mdW5jdGlvbiBfWChzLGUpe3RoaXMudD0idG9rZW4iLHRoaXMudj1zLHRoaXMudGs9ZX1mdW5jdGlvbiBLdihzLGUpe2NsYXNzIHQgZXh0ZW5kcyBfWHtzdGF0aWN7aSh0aGlzLCJUb2tlbiIpfWNvbnN0cnVjdG9yKHIsbil7c3VwZXIocixuKSx0aGlzLnQ9c319Zm9yKGxldCBhIGluIGUpdC5wcm90b3R5cGVbYV09ZVthXTtyZXR1cm4gdC50PXMsdH1mdW5jdGlvbiBNWGEoe2dyb3VwczpzfSl7bGV0IGU9cy5kb21haW4uY29uY2F0KFtUY2UsRGNlLEloLExjZSxFY2UsUGNlLEljZSxBY2UsamMsa3N0LHlYLE5jZSxSY2UsT2NlLGpkLEJjZSxrWCxGY2VdKSx0PVskY2UsQWgsTXN0LHFkLHpzdCx5WCx3WCxDc3QsVHN0LHZjZSx4Y2UsdlgseFgsbWNlLGZjZSxnY2UsYmNlLHljZSx3Y2Usa2NlLFNjZSxfY2UsTWNlLHpjZSxDY2VdLGE9W1RjZSwkY2UsRGNlLExjZSxFY2UsUGNlLEljZSxBY2UsamMsdlgseFgseVgsTmNlLFJjZSxPY2Usd1gsamQsQmNlLGtYLEZjZV0scj1WYygpLG49Y3QocixrWCk7U2EobixhLG4pLFNhKG4scy5kb21haW4sbik7bGV0IG89VmMoKSxsPVZjKCkscD1WYygpO1NhKHIscy5kb21haW4sbyksU2EocixzLnNjaGVtZSxsKSxTYShyLHMuc2xhc2hzY2hlbWUscCksU2EobyxhLG4pLFNhKG8scy5kb21haW4sbyk7bGV0IGQ9Y3QobyxJaCk7Y3QobixJaCxkKSxjdChsLEloLGQpLGN0KHAsSWgsZCk7bGV0IHU9Y3QobixxZCk7U2EodSxhLG4pLFNhKHUscy5kb21haW4sbik7bGV0IGM9VmMoKTtTYShkLHMuZG9tYWluLGMpLFNhKGMscy5kb21haW4sYyk7bGV0IGI9Y3QoYyxxZCk7U2EoYixzLmRvbWFpbixjKTtsZXQgdj1WYyhMc3QpO1NhKGIscy50bGQsdiksU2EoYixzLnV0bGQsdiksY3QoZCxiWCx2KTtsZXQgeD1jdChjLGpjKTtjdCh4LGpjLHgpLFNhKHgscy5kb21haW4sYyksU2EodixzLmRvbWFpbixjKSxjdCh2LHFkLGIpLGN0KHYsamMseCk7bGV0IG09Y3QodixBaCk7U2EobSxzLm51bWVyaWMsTHN0KTtsZXQgZj1jdChvLGpjKSx5PWN0KG8scWQpO2N0KGYsamMsZiksU2EoZixzLmRvbWFpbixvKSxTYSh5LGEsbiksU2EoeSxzLmRvbWFpbixvKTtsZXQgTT1WYyhNWCk7U2EoeSxzLnRsZCxNKSxTYSh5LHMudXRsZCxNKSxTYShNLHMuZG9tYWluLG8pLFNhKE0sYSxuKSxjdChNLHFkLHkpLGN0KE0samMsZiksY3QoTSxJaCxkKTtsZXQgej1jdChNLEFoKSxOPVZjKE1YKTtTYSh6LHMubnVtZXJpYyxOKTtsZXQgQz1WYyhNWCksXz1WYygpO1NhKEMsZSxDKSxTYShDLHQsXyksU2EoXyxlLEMpLFNhKF8sdCxfKSxjdChNLGpkLEMpLGN0KE4samQsQyk7bGV0IE89Y3QobCxBaCksJD1jdChwLEFoKSxFPWN0KCQsamQpLEg9Y3QoRSxqZCk7U2EobCxzLmRvbWFpbixvKSxjdChsLHFkLHkpLGN0KGwsamMsZiksU2EocCxzLmRvbWFpbixvKSxjdChwLHFkLHkpLGN0KHAsamMsZiksU2EoTyxzLmRvbWFpbixDKSxjdChPLGpkLEMpLGN0KE8sd1gsQyksU2EoSCxzLmRvbWFpbixDKSxTYShILGUsQyksY3QoSCxqZCxDKTtsZXQgaz1bW3ZYLHhYXSxbZmNlLG1jZV0sW2djZSxiY2VdLFt2Y2UseGNlXSxbeWNlLHdjZV0sW2tjZSxTY2VdLFtfY2UsTWNlXSxbemNlLENjZV1dO2ZvcihsZXQgUz0wO1M8ay5sZW5ndGg7UysrKXtsZXRbSSxQXT1rW1NdLFI9Y3QoQyxJKTtjdChfLEksUiksY3QoUixQLEMpO2xldCBLPVZjKE1YKTtTYShSLGUsSyk7bGV0IFY9VmMoKTtTYShSLHQpLFNhKEssZSxLKSxTYShLLHQsViksU2EoVixlLEspLFNhKFYsdCxWKSxjdChLLFAsQyksY3QoVixQLEMpfXJldHVybiBjdChyLGJYLE0pLGN0KHIsX3N0LFo0YSkse3N0YXJ0OnIsdG9rZW5zOlY0YX19ZnVuY3Rpb24gelhhKHMsZSx0KXtsZXQgYT10Lmxlbmd0aCxyPTAsbj1bXSxvPVtdO2Zvcig7cjxhOyl7bGV0IGw9cyxwPW51bGwsZD1udWxsLHU9MCxjPW51bGwsYj0tMTtmb3IoO3I8YSYmIShwPWwuZ28odFtyXS50KSk7KW8ucHVzaCh0W3IrK10pO2Zvcig7cjxhJiYoZD1wfHxsLmdvKHRbcl0udCkpOylwPW51bGwsbD1kLGwuYWNjZXB0cygpPyhiPTAsYz1sKTpiPj0wJiZiKysscisrLHUrKztpZihiPDApci09dSxyPGEmJihvLnB1c2godFtyXSkscisrKTtlbHNle28ubGVuZ3RoPjAmJihuLnB1c2goUHN0KEVzdCxlLG8pKSxvPVtdKSxyLT1iLHUtPWI7bGV0IHY9Yy50LHg9dC5zbGljZShyLXUscik7bi5wdXNoKFBzdCh2LGUseCkpfX1yZXR1cm4gby5sZW5ndGg+MCYmbi5wdXNoKFBzdChFc3QsZSxvKSksbn1mdW5jdGlvbiBQc3QocyxlLHQpe2xldCBhPXRbMF0ucyxyPXRbdC5sZW5ndGgtMV0uZSxuPWUuc2xpY2UoYSxyKTtyZXR1cm4gbmV3IHMobix0KX1mdW5jdGlvbiBBc3QoKXtyZXR1cm4gRW4uZ3JvdXBzPXt9LHNzLnNjYW5uZXI9bnVsbCxzcy5wYXJzZXI9bnVsbCxzcy50b2tlblF1ZXVlPVtdLHNzLnBsdWdpblF1ZXVlPVtdLHNzLmN1c3RvbVNjaGVtZXM9W10sc3MuaW5pdGlhbGl6ZWQ9ITEsc3N9ZnVuY3Rpb24gQ1hhKHMsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgdG9rZW4gcGx1Z2luICR7ZX0gKGV4cGVjdHMgZnVuY3Rpb24pYCk7Zm9yKGxldCB0PTA7dDxzcy50b2tlblF1ZXVlLmxlbmd0aDt0KyspaWYocz09PXNzLnRva2VuUXVldWVbdF1bMF0pe3pYKGBsaW5raWZ5anM6IHRva2VuIHBsdWdpbiAiJHtzfSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLHNzLnRva2VuUXVldWVbdF09W3MsZV07cmV0dXJufXNzLnRva2VuUXVldWUucHVzaChbcyxlXSksc3MuaW5pdGlhbGl6ZWQmJnpYKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciB0b2tlbiBwbHVnaW4gIiR7c30iICR7SXN0fWApfWZ1bmN0aW9uIFRYYShzLGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcihgbGlua2lmeWpzOiBJbnZhbGlkIHBsdWdpbiAke2V9IChleHBlY3RzIGZ1bmN0aW9uKWApO2ZvcihsZXQgdD0wO3Q8c3MucGx1Z2luUXVldWUubGVuZ3RoO3QrKylpZihzPT09c3MucGx1Z2luUXVldWVbdF1bMF0pe3pYKGBsaW5raWZ5anM6IHBsdWdpbiAiJHtzfSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLHNzLnBsdWdpblF1ZXVlW3RdPVtzLGVdO3JldHVybn1zcy5wbHVnaW5RdWV1ZS5wdXNoKFtzLGVdKSxzcy5pbml0aWFsaXplZCYmelgoYGxpbmtpZnlqczogYWxyZWFkeSBpbml0aWFsaXplZCAtIHdpbGwgbm90IHJlZ2lzdGVyIHBsdWdpbiAiJHtzfSIgJHtJc3R9YCl9ZnVuY3Rpb24gVWNlKHMsZT0hMSl7aWYoc3MuaW5pdGlhbGl6ZWQmJnpYKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciBjdXN0b20gc2NoZW1lICIke3N9IiAke0lzdH1gKSwhL15bMC05YS16XSsoLVswLTlhLXpdKykqJC8udGVzdChzKSl0aHJvdyBuZXcgRXJyb3IoYGxpbmtpZnlqczogaW5jb3JyZWN0IHNjaGVtZSBmb3JtYXQuCjEuIE11c3Qgb25seSBjb250YWluIGRpZ2l0cywgbG93ZXJjYXNlIEFTQ0lJIGxldHRlcnMgb3IgIi0iCjIuIENhbm5vdCBzdGFydCBvciBlbmQgd2l0aCAiLSIKMy4gIi0iIGNhbm5vdCByZXBlYXRgKTtzcy5jdXN0b21TY2hlbWVzLnB1c2goW3MsZV0pfWZ1bmN0aW9uIFE0YSgpe3NzLnNjYW5uZXI9U1hhKHNzLmN1c3RvbVNjaGVtZXMpO2ZvcihsZXQgcz0wO3M8c3MudG9rZW5RdWV1ZS5sZW5ndGg7cysrKXNzLnRva2VuUXVldWVbc11bMV0oe3NjYW5uZXI6c3Muc2Nhbm5lcn0pO3NzLnBhcnNlcj1NWGEoc3Muc2Nhbm5lci50b2tlbnMpO2ZvcihsZXQgcz0wO3M8c3MucGx1Z2luUXVldWUubGVuZ3RoO3MrKylzcy5wbHVnaW5RdWV1ZVtzXVsxXSh7c2Nhbm5lcjpzcy5zY2FubmVyLHBhcnNlcjpzcy5wYXJzZXJ9KTtyZXR1cm4gc3MuaW5pdGlhbGl6ZWQ9ITAsc3N9ZnVuY3Rpb24gWXYocyl7cmV0dXJuIHNzLmluaXRpYWxpemVkfHxRNGEoKSx6WGEoc3MucGFyc2VyLnN0YXJ0LHMsVzRhKHNzLnNjYW5uZXIuc3RhcnQscykpfWZ1bmN0aW9uIFdjZShzLGU9bnVsbCx0PW51bGwpe2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYodCl0aHJvdyBFcnJvcihgbGlua2lmeWpzOiBJbnZhbGlkIGxpbmsgdHlwZSAke2V9OyBtdXN0IGJlIGEgc3RyaW5nYCk7dD1lLGU9bnVsbH1sZXQgYT1uZXcgU1godCkscj1ZdihzKSxuPVtdO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXQgbD1yW29dO2wuaXNMaW5rJiYoIWV8fGwudD09PWUpJiZhLmNoZWNrKGwpJiZuLnB1c2gobC50b0Zvcm1hdHRlZE9iamVjdChhKSl9cmV0dXJuIG59ZnVuY3Rpb24gJFhhKHMsZT1udWxsKXtsZXQgdD1ZdihzKTtyZXR1cm4gdC5sZW5ndGg9PT0xJiZ0WzBdLmlzTGluayYmKCFlfHx0WzBdLnQ9PT1lKX12YXIgaFhhLGZYYSxmc3QsbXN0LGdzdCxtWCxnWCxic3QsTzRhLG1YYSxnWGEsdnN0LFNhLEtpLEY0YSxjdCxwdSx4c3QsQjRhLEg0YSxiWCx5c3Qsd3N0LGhjZSxVdixrc3QsU3N0LF9zdCx2WCx4WCxmY2UsbWNlLGdjZSxiY2UsdmNlLHhjZSx5Y2Usd2NlLGtjZSxTY2UsX2NlLE1jZSx6Y2UsQ2NlLFRjZSwkY2UsRGNlLEloLExjZSxFY2UsUGNlLEFoLE1zdCxJY2UscWQsQWNlLHpzdCxqYyx5WCxOY2UsUmNlLE9jZSx3WCxDc3QscTRhLFRzdCxqZCxrWCxGY2UsajRhLEJjZSxWNGEsVmQsV3YsSGNlLHhYYSxVZCxxY2UseVhhLFU0YSwkc3Qsd1hhLGtYYSxEc3QsamNlLFZjZSxHdixfWGEsTHN0LEVzdCxaNGEsTVgsWDRhLFZjLHpYLElzdCxzcyxKNGE9ZygoKT0+e2hYYT0iYWFhMXJwM2JiMG90dDN2aWU0YzFsZTJvZ2FkbzV1ZGhhYmk3YzBhZGVteTVjZW50dXJlNm91bnRhbnQwczlvMXRvcjRkMHMxdWx0NGUwZzFybzJ0bmE0ZjBsMXJpY2E1ZzBha2hhbjVlbmN5NWkwZzFyYnVzM2ZvcmNlNXRlbDVrZG4zbDBpYmFiYTRwYXk0bGZpbmFuejZzdGF0ZTV5MnNhY2UzdG9tNW0wYXpvbjRlcmljYW5leHByZXNzN2ZhbWlseTExeDJmYW0zaWNhM3N0ZXJkYW04bmFseXRpY3M3ZHJvaWQ1cXVhbjR6Mm8wbDJwYXJ0bWVudHM4cDBsZTRxMHVhcmVsbGU4cjBhYjFtY280Y2hpM215MnBhMnQwZTNzMGRhMmlhMnNvY2lhdGVzOXQwaGxldGE1dG9ybmV5N3UwY3Rpb241ZGkwYmxlM28zc3Bvc3Q1dGhvcjNvMHM0dzBzMngwYTJ6MHVyZTViYTBieTJpZHUzbmFtZXg0ZDFrMnIwY2Vsb25hNWxheWNhcmQ0czVlZm9vdDVnYWluczZzZWJhbGw1a2V0YmFsbDh1aGF1czV5ZXJuNWIwYzF0MXZhM2NnMW4yZDFlMGF0czJ1dHk0ZXIycmxpbjRzdDBidXk1dDJmMWcxaDBhcnRpNWkwYmxlM2Qxa2UybmcwbzNvMXoyajFsYWNrMGZyaWRheTlvY2tidXN0ZXI4ZzFvbWJlcmc3dWUzbTBzMXcybjBwcGFyaWJhczlvMGF0czNlaHJpbmdlcjhmYTJtMW5kMm8wazBpbmc1c2NoMnRpazJvbjR0MXV0aXF1ZTZ4MnIwYWRlc2NvNmlkZ2VzdG9uZTlvYWR3YXk1a2VyM3RoZXI1dXNzZWxzN3MxdDF1aWxkMGVyczZzaW5lc3M2eTF6ejN2MXcxeTF6MGgzY2EwYjFmZTJsMGwxdmlua2xlaW45bTBlcmEzcDJub24zcGV0b3duNWl0YWwwb25lOHIwYXZhbjRkczJlMGVyMHM0czJzYTFlMWgxaW5vNHQwZXJpbmc1aG9saWM3YmExbjFyZTNjMWQxZW50ZXI0bzFybjNmMGExZDJnMWgwYW5lbDJuZWw0cml0eTRzZTJ0MmVhcDNpbnRhaTVyaXN0bWFzNm9tZTR1cmNoNWkwcHJpYW5pNnJjbGU0c2NvM3RhZGVsNGkwYzJ5M2sxbDBhaW1zNGVhbmluZzZpY2sybmljMXF1ZTZvdGhpbmc1dWQzdWIwbWVkNm0xbjFvMGFjaDNkZXMzZmZlZTRsbGVnZTRvZ25lNW0wbWJhbms0dW5pdHk2cGFueTJyZTN1dGVyNXNlYzRuZG9zM3N0cnVjdGlvbjh1bHRpbmc3dGFjdDNyYWN0b3JzOW9raW5nNGwxcDJyc2ljYTV1bnRyeTRwb24wczRyc2VzNnBhMnIwZWRpdDBjYXJkNHVuaW9uOWlja2V0NW93bjNzMXVpc2UwczZ1MGlzaW5lbGxhOXYxdzF4MXkwbXJ1M291M3oyZGFkMW5jZTN0YTFlMWluZzNzdW40eTJjbGszZHMyZTBhbDBlcjJzM2dyZWU0bGl2ZXJ5NWwxb2l0dGU1dGEzbW9jcmF0Nm50YWwyaXN0NXNpMGduNHYyaGwyaWFtb25kczZldDJnaXRhbDVyZWN0MG9yeTdzY291bnQzdmVyNWgyeTJqMWsxbTFucDJvMGNzMXRvcjRnMW1haW5zNXQxd25sb2FkN3JpdmU0dHYydWJhaTNubG9wNHBvbnQ0cmJhbjV2YWcycjJ6MmVhcnRoM3QyYzBvMmRla2EzdTBjYXRpb244ZTFnMW1haWwzZXJjazVuZXJneTRnaW5lZXIwaW5nOXRlcnByaXNlczEwcHNvbjRxdWlwbWVudDhyMGljc3NvbjZuaTNzMHExdGF0ZTV0MXUwcm92aXNpb244czJ2ZW50czV4Y2hhbmdlNnBlcnQzb3NlZDRyZXNzNXRyYXNwYWNlMTBmYWdlMmlsMXJ3aW5kczZ0aDNtaWx5NG4wczJybTBlcnM1c2hpb240dDNlZGV4M2VkYmFjazZycmFyaTNlcm82aTBkZWxpdHk1bzJsbTJuYWwxbmNlMWlhbDdyZTBzdG9uZTZtZGFsZTZzaDBpbmc1dDBuZXNzNmoxazFsaWNrcjNnaHRzNHIyb3Jpc3Q0d2VyczV5Mm0xbzBvMGQxdGJhbGw2cmQxZXgyc2FsZTR1bTN1bmRhdGlvbjh4MnIwZWUxc2VuaXVzN2wxb2dhbnM0bnRpZXI3dHIydWppdHN1NW4wZDJybml0dXJlN3Rib2w1eWkzZ2EwbDBsZXJ5M28xdXA0bWUwczNwMXJkZW40eTJiMGl6M2QwbjJlMGExbnQwaW5nNW9yZ2U1ZjFnMGVlM2gxaTBmdDBzM3ZlczJpbmc1bDBhc3MzZTFvYmFsMm80bTBhaWwzYmgybzF4Mm4xb2RhZGR5NWxkMHBvaW50NmYybzBkeWVhcjVnMGxlNHAxdDF2MnAxcTFyMGFpbmdlcjVwaGljczV0aXM0ZWVuM2lwZTNvY2VyeTR1cDRzMXQxdTBjY2kzZ2UyaWRlMnRhcnM1cnUzdzF5MmhhaXIybWJ1cmc1bmdvdXQ1dXMzYm8yZGZjMGJhbms3ZWFsdGgwY2FyZThscDFzaW5raTZyZTFtZXM1aXBob3A0c2FtaXRzdTd0YWNoaTV2MmswdDJtMW4xb2NrZXk0bGRpbmdzNWlkYXk1bWVkZXBvdDVnb29kczVzMGVuc2U3bmRhM3JzZTNzcGl0YWw1dDBpbmc1dDBlbHMzbWFpbDV1c2UzdzJyMXNiYzN0MXUwZ2hlczV5YXR0M3VuZGFpN2libTJjYmMyZTF1MmQxZTBlZTNmbTJrYW5vNGwxbTBhbWF0NGRiMm1vMGJpbGllbjluMGMxZHVzdHJpZXM4ZmluaXRpNW8yZzFrMXN0aXR1dGU2dXJhbmNlNGU0dDBlcm5hdGlvbmFsMTB1aXQ0dmVzdG1lbnRzMTBvMXBpcmFuZ2E3cTFyMGlzaDRzMG1haWxpNXQwYW5idWw3dDBhdTJ2M2phZ3VhcjR2YTNjYjJlMGVwMnR6dDN3ZWxyeTZpbzJsbDJtMHAybmoybzBiczF1cmc0dDF5MnAwbW9yZ2FuNnJzM3VlZ29zNG5pcGVyN2thdWZlbjVkZGkzZTBycnlob3RlbHM2cHJvcGVydGllczE0ZmgyZzFoMWkwYTFkczJtMW5kbGU0dGNoZW41d2kzbTFuMW9lbG4zbWF0c3U1c2hlcjVwMG1nMm4ycjBkMWVkM3Vva2dyb3VwOHcxeTBvdG80ejJsYTBjYWl4YTVtYm9yZ2hpbmk4ZXIzbmQwcm92ZXI2eGVzczVzYWxsZTV0MGlubzNyb2JlNXcweWVyNWIxYzFkczJlYXNlM2NsZXJjNWZyYWs0Z2FsMm8yeHVzNGdidDNpMGRsMmZlMGluc3VyYW5jZTlzdHlsZTdnaHRpbmc2a2UybGx5M21pdGVkNG8ybmNvbG40azJ2ZTFpbmc1azFsYzFwMm9hbjBzM2NrZXIzdXMzbDFuZG9uNHR0ZTFvM3ZlM3BsMGZpbmFuY2lhbDExcjFzMXQwZDBhM3UwbmRiZWNrNnhlMXVyeTV2MXkybWEwZHJpZDRpZjFzb240a2V1cDRuMGFnZW1lbnQ3Z28zcDFya2V0MGluZzNzNHJpb3R0NXNoYWxsczd0dGVsNWJhMmMwa2luc2V5N2QxZTBkMGlhM2V0Mmxib3VybmU3bWUxb3JpYWw2bjB1MnJja21zZDdnMWgxaWFtaTNjcm9zb2Z0N2wxbmkxdDJ0MHN1YmlzaGk5azFsMGIxczJtMGEybjFvMGJpMGxlNGRhMmUxaTFtMW5hc2gzZXkyc3RlcjVybW9uM3RnYWdlNnNjb3c0dG8wcmN5Y2xlczl2MGllNHAxcTFyMXMwZDJ0MG4xcjJ1MHNldW0zaWM0djF3MXgxeTF6Mm5hMGIxZ295YTRtZTJ2eTNiYTJjMWUwYzF0MGJhbms0ZmxpeDR3b3JrNXVzdGFyNXcwczJ4dDBkaXJlY3Q3dXM0ZjBsMmcwbzJoazJpMGNvMmtlMW9uM25qYTNzc2FuMXk1bDFvMGtpYTNydG9uNHcwcnV6M3R2NHAxcjBhMXcydHQydTF5YzJ6Mm9iaTFzZXJ2ZXI3ZmZpY2U1a2luYXdhNmxheWFuMGdyb3VwOWxvM20wZWdhNG5lMWcxbDBpbmU1b28ycGVuM3JhY2xlM25nZTRnMGFuaWM1aWdpbnM2c2FrYTR0c3VrYTR0MnZoM3BhMGdlMm5hc29uaWM3cmlzMnMxdG5lcnM0czF5M3kyY2N3M2UwdDJmMGl6ZXI1ZzFoMGFybWFjeTZkMWlsaXBzNW9uZTJ0bzBncmFwaHk2czR5c2lvNWljczF0ZXQydXJlczZkMW4wZzFrMm9uZWVyNXp6YTRrMWwwYWNlMnkwc3RhdGlvbjl1bWJpbmc1czNtMW4wYzJvaGwya2VyM2xpdGllNXJuMnN0M3IwYXhpM2VzczNpbWUzbzBkMHVjdGlvbnM4ZjFncmVzc2l2ZThtbzJwZXJ0aWVzM3k1dGVjdGlvbjh1MGRlbnRpYWw5czF0MXViMncwYzJ5MnFhMXBvbjN1ZWJlYzNzdDVyYWNpbmc0ZGlvNGUwYWQxbGVzdGF0ZTZ0b3IyeTRjaXBlczVkMHN0b25lNXVtYnJlbGxhOWhhYjNpc2UwbjN0MmxpYW5jZTZuMHQwYWxzNXBhaXIzb3J0M3VibGljYW44c3QwYXVyYW50OHZpZXcwczV4cm90aDZpY2gwYXJkbGk2b2gzbDFvMXAybzBja3MzZGVvM2dlcnM0b20zczB2cDN1MGdieTNocjJuMncwZTJ5dWt5dTZzYTBhcmxhbmQ2ZmUwdHk0a3VyYTRsZTFvbjNtc2NsdWI0dW5nNW5kdmlrMGNvcm9tYW50MTJvZmk0cDFybDJzMXZlMnhvM2IwaTFzMmMwYjFoYWVmZmxlcjdtaWR0NG9sYXJzaGlwczhvbDN1bGUzd2FyejVpZW5jZTVvdDNkMWUwYXJjaDN0MmN1cmUxaXR5NmVrMmxlY3Q0bmVyM3J2aWNlczZ2ZW4zdzF4MHkzZnIyZzFoMGFuZ3JpbGE2cnAzZWxsM2lhMWtzaGE1b2VzMnAwcGluZzV1amkzdzNpMGxrMm5hMWdsZXM1dGUzajFrMGkwbjJ5MHBlNGwwaW5nNG0wYXJ0M2lsZTRuMGNmM28wY2NlcjNpYWw0ZnRiYW5rNHdhcmU2aHUybGFyMnV0aW9uczduZzF5MnkycGEwY2Uzb3J0MnQzcjBsMnMxdDBhZGEycGxlczRyMXRlYmFuazRmYXJtN2MwZ3JvdXA2b2NraG9sbTZyYWdlM2UzcmVhbTR1ZGlvMnkzeWxlNHUwY2tzM3BwbGllczN5Mm9ydDVyZjFnZXJ5NXp1a2k1djF3YXRjaDRpc3M0eDF5MGRuZXk0c3RlbXM2ejJ0YWIxaXBlaTRsazJvYmFvNHJnZXQ0dGFtb3RvcnM2cjJ0b280eDBpM2MwaTJkMGsyZWFtMmNoMG5vbG9neThsMW1hc2VrNW5uaXM0dmEzZjFnMWgwZDFlYXRlcjJyZTZpYWEyY2tldHM1ZW5kYTRwczJyZXMyb2w0ajBtYXh4NHgyazBtYXh4NWwxbTBhbGw0bjFvMGRheTNreW8zb2xzM3AxcmF5M3NoaWJhNXRhbDN1cnMzd24yeW90YTNzM3IwYWRlMWluZzRpbmluZzV2ZWwwZXJzMGluc3VyYW5jZTE2dXN0M3YydDF1YmUyaTFuZXMzc2h1NHYwczJ3MXoydWExYmFuazNzMmcxazFuaWNvbTN2ZXJzaXR5OG8yb2wycHMyczF5MXoydmEwY2F0aW9uczduYTFndWFyZDdjMWUwZ2FzM250dXJlczZyaXNpZ241bVx4RjZnZW5zYmVyYXRlcjJ1bmcxNHNpY2hlcnVuZzEwdDJnMWkwYWplczRkZW8zZzFraW5nNGxsYXM0bjFwMXJnaW40c2ExaW9uNHZhMW8zbGFhbmRlcmVuOW4xb2RrYTNsdm8zdGUxaW5nM28yeWFnZTV1MndhbGVzMm1hcnQ0dGVyNG5nMGdvdTV0Y2gwZXM2ZWF0aGVyMGNoYW5uZWwxMmJjYW0zZXIyc2l0ZTVkMGRpbmc1aWJvMnIzZjFob3N3aG82aWVuMmtpMmxsaWFtaGlsbDluMGRvd3M0ZTFuZXJzNm1lMm9sdGVyc2tsdXdlcjExb2RzaWRlNnJrMHMybGQzdzJzMXRjMWYzeGJveDNlcm94NGlodWFuNG4yeHgyeXozeWFjaHRzNGhvbzNtYXh1bjVuZGV4NWUxb2RvYmFzaGk3Z2Eya29oYW1hNnUwdHViZTZ0MXVuM3phMHBwb3M0cmEzZXJvM2lwMm0xb25lM3VlcmljaDZ3MiIsZlhhPSJcdTAzQjVcdTAzQkIxXHUwM0M1Mlx1MDQzMVx1MDQzMzFcdTA0MzVcdTA0M0IzXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDM4NFx1MDQzNVx1MDQ0RTJcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0M0JcdTA0MzhcdTA0M0E2XHUwNDNFXHUwNDNDM1x1MDQzQ1x1MDQzQVx1MDQzNDJcdTA0M0VcdTA0M0QxXHUwNDQxXHUwNDNBXHUwNDMyXHUwNDMwNlx1MDQzRVx1MDQzRFx1MDQzQlx1MDQzMFx1MDQzOVx1MDQzRDVcdTA0NDBcdTA0MzMzXHUwNDQwXHUwNDQzXHUwNDQxMlx1MDQ0NDJcdTA0NDFcdTA0MzBcdTA0MzlcdTA0NDIzXHUwNDQwXHUwNDMxM1x1MDQ0M1x1MDQzQVx1MDQ0MDNcdTA0OUJcdTA0MzBcdTA0MzczXHUwNTcwXHUwNTYxXHUwNTc1M1x1MDVEOVx1MDVFOVx1MDVFOFx1MDVEMFx1MDVEQzVcdTA1RTdcdTA1RDVcdTA1REQzXHUwNjI3XHUwNjI4XHUwNjQ4XHUwNjM4XHUwNjI4XHUwNjRBNVx1MDYzMVx1MDYyN1x1MDY0NVx1MDY0M1x1MDY0ODVcdTA2NDRcdTA2MjdcdTA2MzFcdTA2MkZcdTA2NDY0XHUwNjI4XHUwNjJEXHUwNjMxXHUwNjRBXHUwNjQ2NVx1MDYyQ1x1MDYzMlx1MDYyN1x1MDYyNlx1MDYzMTVcdTA2MzNcdTA2MzlcdTA2NDhcdTA2MkZcdTA2NEFcdTA2Mjk2XHUwNjM5XHUwNjQ0XHUwNjRBXHUwNjI3XHUwNjQ2NVx1MDY0NVx1MDYzQVx1MDYzMVx1MDYyODVcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MjdcdTA2MkE1XHUwNkNDXHUwNjMxXHUwNjI3XHUwNjQ2NVx1MDYyOFx1MDYyN1x1MDYzMVx1MDYyQTJcdTA2MzJcdTA2MjdcdTA2MzE0XHUwNjRBXHUwNjJBXHUwNjQzM1x1MDZCRVx1MDYyN1x1MDYzMVx1MDYyQTVcdTA2MkFcdTA2NDhcdTA2NDZcdTA2MzM0XHUwNjMzXHUwNjQ4XHUwNjJGXHUwNjI3XHUwNjQ2M1x1MDYzMVx1MDY0QVx1MDYyOTVcdTA2MzRcdTA2MjhcdTA2NDNcdTA2Mjk0XHUwNjM5XHUwNjMxXHUwNjI3XHUwNjQyMlx1MDYyODJcdTA2NDVcdTA2MjdcdTA2NDY0XHUwNjQxXHUwNjQ0XHUwNjMzXHUwNjM3XHUwNjRBXHUwNjQ2Nlx1MDY0Mlx1MDYzN1x1MDYzMTNcdTA2NDNcdTA2MjdcdTA2MkJcdTA2NDhcdTA2NDRcdTA2NEFcdTA2NDM2XHUwNjQ4XHUwNjQ1M1x1MDY0NVx1MDYzNVx1MDYzMTJcdTA2NDRcdTA2NEFcdTA2MzNcdTA2NEFcdTA2Mjc1XHUwNjQ4XHUwNjMxXHUwNjRBXHUwNjJBXHUwNjI3XHUwNjQ2XHUwNjRBXHUwNjI3N1x1MDY0Mlx1MDYzOTRcdTA2NDdcdTA2NDVcdTA2MzFcdTA2MjdcdTA2NDc1XHUwNjdFXHUwNjI3XHUwNkE5XHUwNjMzXHUwNjJBXHUwNjI3XHUwNjQ2N1x1MDY4MFx1MDYyN1x1MDYzMVx1MDYyQTRcdTA5MTVcdTA5NDlcdTA5MkUzXHUwOTI4XHUwOTQ3XHUwOTFGM1x1MDkyRFx1MDkzRVx1MDkzMFx1MDkyNDBcdTA5MkVcdTA5NEQzXHUwOTRCXHUwOTI0NVx1MDkzOFx1MDkwMlx1MDkxN1x1MDkyMFx1MDkyODVcdTA5QUNcdTA5QkVcdTA5ODJcdTA5QjJcdTA5QkU1XHUwOUFEXHUwOUJFXHUwOUIwXHUwOUE0Mlx1MDlGMFx1MDlBNDRcdTBBMkRcdTBBM0VcdTBBMzBcdTBBMjQ0XHUwQUFEXHUwQUJFXHUwQUIwXHUwQUE0NFx1MEIyRFx1MEIzRVx1MEIzMFx1MEIyNDRcdTBCODdcdTBCQThcdTBCQ0RcdTBCQTRcdTBCQkZcdTBCQUZcdTBCQkU2XHUwQkIyXHUwQjk5XHUwQkNEXHUwQjk1XHUwQkM4Nlx1MEI5QVx1MEJCRlx1MEI5OVx1MEJDRFx1MEI5NVx1MEJBQVx1MEJDRFx1MEJBQVx1MEJDMlx1MEJCMFx1MEJDRDExXHUwQzJEXHUwQzNFXHUwQzMwXHUwQzI0XHUwQzRENVx1MENBRFx1MENCRVx1MENCMFx1MENBNDRcdTBEMkRcdTBEM0VcdTBEMzBcdTBEMjRcdTBEMDI1XHUwREJEXHUwRDgyXHUwRDlBXHUwRENGNFx1MEUwNFx1MEUyRFx1MEUyMTNcdTBFNDRcdTBFMTdcdTBFMjIzXHUwRUE1XHUwRUIyXHUwRUE3M1x1MTBEMlx1MTBENDJcdTMwN0ZcdTMwOTNcdTMwNkEzXHUzMEEyXHUzMERFXHUzMEJFXHUzMEYzNFx1MzBBRlx1MzBFOVx1MzBBNlx1MzBDOTRcdTMwQjBcdTMwRkNcdTMwQjBcdTMwRUI0XHUzMEIzXHUzMEUwMlx1MzBCOVx1MzBDOFx1MzBBMjNcdTMwQkJcdTMwRkNcdTMwRUIzXHUzMEQ1XHUzMEExXHUzMEMzXHUzMEI3XHUzMEU3XHUzMEYzNlx1MzBERFx1MzBBNFx1MzBGM1x1MzBDODRcdTRFMTZcdTc1NEMyXHU0RTJEXHU0RkUxMVx1NTZGRDFcdTU3MEIxXHU2NTg3XHU3RjUxM1x1NEU5QVx1OUE2Q1x1OTAwQTNcdTRGMDFcdTRFMUEyXHU0RjVCXHU1QzcxMlx1NEZFMVx1NjA2RjJcdTUwNjVcdTVFQjcyXHU1MTZCXHU1MzY2Mlx1NTE2Q1x1NTNGODFcdTc2Q0EyXHU1M0YwXHU2RTdFMVx1NzA2MzJcdTU1NDZcdTU3Q0UxXHU1RTk3MVx1NjgwNzJcdTU2MDlcdTkxQ0MwXHU1OTI3XHU5MTUyXHU1RTk3NVx1NTcyOFx1N0VCRjJcdTU5MjdcdTYyRkYyXHU1OTI5XHU0RTNCXHU2NTU5M1x1NUEzMVx1NEU1MDJcdTVCQjZcdTk2RkIyXHU1RTdGXHU0RTFDMlx1NUZBRVx1NTM1QTJcdTYxNDhcdTU1ODQyXHU2MjExXHU3MjMxXHU0RjYwM1x1NjI0Qlx1NjczQTJcdTYyREJcdTgwNTgyXHU2NTNGXHU1MkExMVx1NUU5QzJcdTY1QjBcdTUyQTBcdTU3NjEyXHU5NUZCMlx1NjVGNlx1NUMxQTJcdTY2RjhcdTdDNEQyXHU2NzNBXHU2Nzg0Mlx1NkRFMVx1OUE2Q1x1OTUyMTNcdTZFMzhcdTYyMEYyXHU2RkIzXHU5NTgwMlx1NzBCOVx1NzcwQjJcdTc5RkJcdTUyQTgyXHU3RUM0XHU3RUM3XHU2NzNBXHU2Nzg0NFx1N0Y1MVx1NTc0MDFcdTVFOTcxXHU3QUQ5MVx1N0VEQzJcdTgwNTRcdTkwMUEyXHU4QzM3XHU2QjRDMlx1OEQyRFx1NzI2OTJcdTkwMUFcdThDQTkyXHU5NkM2XHU1NkUyMlx1OTZGQlx1OEEwQVx1NzZDOFx1NzlEMTRcdTk4REVcdTUyMjlcdTZENjYzXHU5OERGXHU1NEMxMlx1OTkxMFx1NTM4NTJcdTk5OTlcdTY4M0NcdTkxQ0NcdTYyQzkzXHU2RTJGMlx1QjJGN1x1QjEzNzFcdUNFRjQyXHVDMEJDXHVDMTMxMlx1RDU1Q1x1QUQ2RDIiLGZzdD0ibnVtZXJpYyIsbXN0PSJhc2NpaSIsZ3N0PSJhbHBoYSIsbVg9ImFzY2lpbnVtZXJpYyIsZ1g9ImFscGhhbnVtZXJpYyIsYnN0PSJkb21haW4iLE80YT0iZW1vamkiLG1YYT0ic2NoZW1lIixnWGE9InNsYXNoc2NoZW1lIix2c3Q9IndoaXRlc3BhY2UiO2koYlhhLCJyZWdpc3Rlckdyb3VwIik7aShoZywiYWRkVG9Hcm91cHMiKTtpKHZYYSwiZmxhZ3NGb3JUb2tlbiIpO2koRW4sIlN0YXRlIiksRW4uZ3JvdXBzPXt9LEVuLnByb3RvdHlwZT17YWNjZXB0cygpe3JldHVybiEhdGhpcy50fSxnbyhzKXtsZXQgZT10aGlzLHQ9ZS5qW3NdO2lmKHQpcmV0dXJuIHQ7Zm9yKGxldCBhPTA7YTxlLmpyLmxlbmd0aDthKyspe2xldCByPWUuanJbYV1bMF0sbj1lLmpyW2FdWzFdO2lmKG4mJnIudGVzdChzKSlyZXR1cm4gbn1yZXR1cm4gZS5qZH0saGFzKHMsZT0hMSl7cmV0dXJuIGU/cyBpbiB0aGlzLmo6ISF0aGlzLmdvKHMpfSx0YShzLGUsdCxhKXtmb3IobGV0IHI9MDtyPHMubGVuZ3RoO3IrKyl0aGlzLnR0KHNbcl0sZSx0LGEpfSx0cihzLGUsdCxhKXthPWF8fEVuLmdyb3VwcztsZXQgcjtyZXR1cm4gZSYmZS5qP3I9ZToocj1uZXcgRW4oZSksdCYmYSYmaGcoZSx0LGEpKSx0aGlzLmpyLnB1c2goW3Mscl0pLHJ9LHRzKHMsZSx0LGEpe2xldCByPXRoaXMsbj1zLmxlbmd0aDtpZighbilyZXR1cm4gcjtmb3IobGV0IG89MDtvPG4tMTtvKyspcj1yLnR0KHNbb10pO3JldHVybiByLnR0KHNbbi0xXSxlLHQsYSl9LHR0KHMsZSx0LGEpe2E9YXx8RW4uZ3JvdXBzO2xldCByPXRoaXM7aWYoZSYmZS5qKXJldHVybiByLmpbc109ZSxlO2xldCBuPWUsbyxsPXIuZ28ocyk7aWYobD8obz1uZXcgRW4sT2JqZWN0LmFzc2lnbihvLmosbC5qKSxvLmpyLnB1c2guYXBwbHkoby5qcixsLmpyKSxvLmpkPWwuamQsby50PWwudCk6bz1uZXcgRW4sbil7aWYoYSlpZihvLnQmJnR5cGVvZiBvLnQ9PSJzdHJpbmciKXtsZXQgcD1PYmplY3QuYXNzaWduKHZYYShvLnQsYSksdCk7aGcobixwLGEpfWVsc2UgdCYmaGcobix0LGEpO28udD1ufXJldHVybiByLmpbc109byxvfX07U2E9aSgocyxlLHQsYSxyKT0+cy50YShlLHQsYSxyKSwidGEiKSxLaT1pKChzLGUsdCxhLHIpPT5zLnRyKGUsdCxhLHIpLCJ0ciIpLEY0YT1pKChzLGUsdCxhLHIpPT5zLnRzKGUsdCxhLHIpLCJ0cyIpLGN0PWkoKHMsZSx0LGEscik9PnMudHQoZSx0LGEsciksInR0IikscHU9IldPUkQiLHhzdD0iVVdPUkQiLEI0YT0iQVNDSUlOVU1FUklDQUwiLEg0YT0iQUxQSEFOVU1FUklDQUwiLGJYPSJMT0NBTEhPU1QiLHlzdD0iVExEIix3c3Q9IlVUTEQiLGhjZT0iU0NIRU1FIixVdj0iU0xBU0hfU0NIRU1FIixrc3Q9Ik5VTSIsU3N0PSJXUyIsX3N0PSJOTCIsdlg9Ik9QRU5CUkFDRSIseFg9IkNMT1NFQlJBQ0UiLGZjZT0iT1BFTkJSQUNLRVQiLG1jZT0iQ0xPU0VCUkFDS0VUIixnY2U9Ik9QRU5QQVJFTiIsYmNlPSJDTE9TRVBBUkVOIix2Y2U9Ik9QRU5BTkdMRUJSQUNLRVQiLHhjZT0iQ0xPU0VBTkdMRUJSQUNLRVQiLHljZT0iRlVMTFdJRFRITEVGVFBBUkVOIix3Y2U9IkZVTExXSURUSFJJR0hUUEFSRU4iLGtjZT0iTEVGVENPUk5FUkJSQUNLRVQiLFNjZT0iUklHSFRDT1JORVJCUkFDS0VUIixfY2U9IkxFRlRXSElURUNPUk5FUkJSQUNLRVQiLE1jZT0iUklHSFRXSElURUNPUk5FUkJSQUNLRVQiLHpjZT0iRlVMTFdJRFRITEVTU1RIQU4iLENjZT0iRlVMTFdJRFRIR1JFQVRFUlRIQU4iLFRjZT0iQU1QRVJTQU5EIiwkY2U9IkFQT1NUUk9QSEUiLERjZT0iQVNURVJJU0siLEloPSJBVCIsTGNlPSJCQUNLU0xBU0giLEVjZT0iQkFDS1RJQ0siLFBjZT0iQ0FSRVQiLEFoPSJDT0xPTiIsTXN0PSJDT01NQSIsSWNlPSJET0xMQVIiLHFkPSJET1QiLEFjZT0iRVFVQUxTIix6c3Q9IkVYQ0xBTUFUSU9OIixqYz0iSFlQSEVOIix5WD0iUEVSQ0VOVCIsTmNlPSJQSVBFIixSY2U9IlBMVVMiLE9jZT0iUE9VTkQiLHdYPSJRVUVSWSIsQ3N0PSJRVU9URSIscTRhPSJGVUxMV0lEVEhNSURETEVET1QiLFRzdD0iU0VNSSIsamQ9IlNMQVNIIixrWD0iVElMREUiLEZjZT0iVU5ERVJTQ09SRSIsajRhPSJFTU9KSSIsQmNlPSJTWU0iLFY0YT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBTFBIQU5VTUVSSUNBTDpINGEsQU1QRVJTQU5EOlRjZSxBUE9TVFJPUEhFOiRjZSxBU0NJSU5VTUVSSUNBTDpCNGEsQVNURVJJU0s6RGNlLEFUOkloLEJBQ0tTTEFTSDpMY2UsQkFDS1RJQ0s6RWNlLENBUkVUOlBjZSxDTE9TRUFOR0xFQlJBQ0tFVDp4Y2UsQ0xPU0VCUkFDRTp4WCxDTE9TRUJSQUNLRVQ6bWNlLENMT1NFUEFSRU46YmNlLENPTE9OOkFoLENPTU1BOk1zdCxET0xMQVI6SWNlLERPVDpxZCxFTU9KSTpqNGEsRVFVQUxTOkFjZSxFWENMQU1BVElPTjp6c3QsRlVMTFdJRFRIR1JFQVRFUlRIQU46Q2NlLEZVTExXSURUSExFRlRQQVJFTjp5Y2UsRlVMTFdJRFRITEVTU1RIQU46emNlLEZVTExXSURUSE1JRERMRURPVDpxNGEsRlVMTFdJRFRIUklHSFRQQVJFTjp3Y2UsSFlQSEVOOmpjLExFRlRDT1JORVJCUkFDS0VUOmtjZSxMRUZUV0hJVEVDT1JORVJCUkFDS0VUOl9jZSxMT0NBTEhPU1Q6YlgsTkw6X3N0LE5VTTprc3QsT1BFTkFOR0xFQlJBQ0tFVDp2Y2UsT1BFTkJSQUNFOnZYLE9QRU5CUkFDS0VUOmZjZSxPUEVOUEFSRU46Z2NlLFBFUkNFTlQ6eVgsUElQRTpOY2UsUExVUzpSY2UsUE9VTkQ6T2NlLFFVRVJZOndYLFFVT1RFOkNzdCxSSUdIVENPUk5FUkJSQUNLRVQ6U2NlLFJJR0hUV0hJVEVDT1JORVJCUkFDS0VUOk1jZSxTQ0hFTUU6aGNlLFNFTUk6VHN0LFNMQVNIOmpkLFNMQVNIX1NDSEVNRTpVdixTWU06QmNlLFRJTERFOmtYLFRMRDp5c3QsVU5ERVJTQ09SRTpGY2UsVVRMRDp3c3QsVVdPUkQ6eHN0LFdPUkQ6cHUsV1M6U3N0fSksVmQ9L1thLXpdLyxXdj0vXHB7TH0vdSxIY2U9L1xwe0Vtb2ppfS91LHhYYT0vXHVmZTBmLyxVZD0vXGQvLHFjZT0vXHMvLHlYYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBU0NJSV9MRVRURVI6VmQsRElHSVQ6VWQsRU1PSkk6SGNlLEVNT0pJX1ZBUklBVElPTjp4WGEsTEVUVEVSOld2LFNQQUNFOnFjZX0pLFU0YT0iXHIiLCRzdD1gCmAsd1hhPSJcdUZFMEYiLGtYYT0iXHUyMDBEIixEc3Q9Ilx1RkZGQyIsamNlPW51bGwsVmNlPW51bGw7aShTWGEsImluaXQkMiIpO2koVzRhLCJydW4kMSIpO2koRzRhLCJzdHJpbmdUb0FycmF5Iik7aShOaCwiZmFzdHRzIik7aShLNGEsImRlY29kZVRsZHMiKTtHdj17ZGVmYXVsdFByb3RvY29sOiJodHRwIixldmVudHM6bnVsbCxmb3JtYXQ6WTRhLGZvcm1hdEhyZWY6WTRhLG5sMmJyOiExLHRhZ05hbWU6ImEiLHRhcmdldDpudWxsLHJlbDpudWxsLHZhbGlkYXRlOiEwLHRydW5jYXRlOjEvMCxjbGFzc05hbWU6bnVsbCxhdHRyaWJ1dGVzOm51bGwsaWdub3JlVGFnczpbXSxyZW5kZXI6bnVsbH07aShTWCwiT3B0aW9ucyIpLFNYLnByb3RvdHlwZT17bzpHdixpZ25vcmVUYWdzOltdLGRlZmF1bHRSZW5kZXIocyl7cmV0dXJuIHN9LGNoZWNrKHMpe3JldHVybiB0aGlzLmdldCgidmFsaWRhdGUiLHMudG9TdHJpbmcoKSxzKX0sZ2V0KHMsZSx0KXtsZXQgYT1lIT1udWxsLHI9dGhpcy5vW3NdO3JldHVybiByJiYodHlwZW9mIHI9PSJvYmplY3QiPyhyPXQudCBpbiByP3JbdC50XTpHdltzXSx0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmYSYmKHI9cihlLHQpKSk6dHlwZW9mIHI9PSJmdW5jdGlvbiImJmEmJihyPXIoZSx0LnQsdCkpLHIpfSxnZXRPYmoocyxlLHQpe2xldCBhPXRoaXMub1tzXTtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiImJmUhPW51bGwmJihhPWEoZSx0LnQsdCkpLGF9LHJlbmRlcihzKXtsZXQgZT1zLnJlbmRlcih0aGlzKTtyZXR1cm4odGhpcy5nZXQoInJlbmRlciIsbnVsbCxzKXx8dGhpcy5kZWZhdWx0UmVuZGVyKShlLHMudCxzKX19O2koWTRhLCJub29wIik7X1hhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLE9wdGlvbnM6U1gsZGVmYXVsdHM6R3Z9KTtpKF9YLCJNdWx0aVRva2VuIiksX1gucHJvdG90eXBlPXtpc0xpbms6ITEsdG9TdHJpbmcoKXtyZXR1cm4gdGhpcy52fSx0b0hyZWYocyl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdG9Gb3JtYXR0ZWRTdHJpbmcocyl7bGV0IGU9dGhpcy50b1N0cmluZygpLHQ9cy5nZXQoInRydW5jYXRlIixlLHRoaXMpLGE9cy5nZXQoImZvcm1hdCIsZSx0aGlzKTtyZXR1cm4gdCYmYS5sZW5ndGg+dD9hLnN1YnN0cmluZygwLHQpKyJcdTIwMjYiOmF9LHRvRm9ybWF0dGVkSHJlZihzKXtyZXR1cm4gcy5nZXQoImZvcm1hdEhyZWYiLHRoaXMudG9IcmVmKHMuZ2V0KCJkZWZhdWx0UHJvdG9jb2wiKSksdGhpcyl9LHN0YXJ0SW5kZXgoKXtyZXR1cm4gdGhpcy50a1swXS5zfSxlbmRJbmRleCgpe3JldHVybiB0aGlzLnRrW3RoaXMudGsubGVuZ3RoLTFdLmV9LHRvT2JqZWN0KHM9R3YuZGVmYXVsdFByb3RvY29sKXtyZXR1cm57dHlwZTp0aGlzLnQsdmFsdWU6dGhpcy50b1N0cmluZygpLGlzTGluazp0aGlzLmlzTGluayxocmVmOnRoaXMudG9IcmVmKHMpLHN0YXJ0OnRoaXMuc3RhcnRJbmRleCgpLGVuZDp0aGlzLmVuZEluZGV4KCl9fSx0b0Zvcm1hdHRlZE9iamVjdChzKXtyZXR1cm57dHlwZTp0aGlzLnQsdmFsdWU6dGhpcy50b0Zvcm1hdHRlZFN0cmluZyhzKSxpc0xpbms6dGhpcy5pc0xpbmssaHJlZjp0aGlzLnRvRm9ybWF0dGVkSHJlZihzKSxzdGFydDp0aGlzLnN0YXJ0SW5kZXgoKSxlbmQ6dGhpcy5lbmRJbmRleCgpfX0sdmFsaWRhdGUocyl7cmV0dXJuIHMuZ2V0KCJ2YWxpZGF0ZSIsdGhpcy50b1N0cmluZygpLHRoaXMpfSxyZW5kZXIocyl7bGV0IGU9dGhpcyx0PXRoaXMudG9IcmVmKHMuZ2V0KCJkZWZhdWx0UHJvdG9jb2wiKSksYT1zLmdldCgiZm9ybWF0SHJlZiIsdCx0aGlzKSxyPXMuZ2V0KCJ0YWdOYW1lIix0LGUpLG49dGhpcy50b0Zvcm1hdHRlZFN0cmluZyhzKSxvPXt9LGw9cy5nZXQoImNsYXNzTmFtZSIsdCxlKSxwPXMuZ2V0KCJ0YXJnZXQiLHQsZSksZD1zLmdldCgicmVsIix0LGUpLHU9cy5nZXRPYmooImF0dHJpYnV0ZXMiLHQsZSksYz1zLmdldE9iaigiZXZlbnRzIix0LGUpO3JldHVybiBvLmhyZWY9YSxsJiYoby5jbGFzcz1sKSxwJiYoby50YXJnZXQ9cCksZCYmKG8ucmVsPWQpLHUmJk9iamVjdC5hc3NpZ24obyx1KSx7dGFnTmFtZTpyLGF0dHJpYnV0ZXM6byxjb250ZW50Om4sZXZlbnRMaXN0ZW5lcnM6Y319fTtpKEt2LCJjcmVhdGVUb2tlbkNsYXNzIik7THN0PUt2KCJlbWFpbCIse2lzTGluazohMCx0b0hyZWYoKXtyZXR1cm4ibWFpbHRvOiIrdGhpcy50b1N0cmluZygpfX0pLEVzdD1LdigidGV4dCIpLFo0YT1LdigibmwiKSxNWD1LdigidXJsIix7aXNMaW5rOiEwLHRvSHJlZihzPUd2LmRlZmF1bHRQcm90b2NvbCl7cmV0dXJuIHRoaXMuaGFzUHJvdG9jb2woKT90aGlzLnY6YCR7c306Ly8ke3RoaXMudn1gfSxoYXNQcm90b2NvbCgpe2xldCBzPXRoaXMudGs7cmV0dXJuIHMubGVuZ3RoPj0yJiZzWzBdLnQhPT1iWCYmc1sxXS50PT09QWh9fSksWDRhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEJhc2U6X1gsRW1haWw6THN0LE11bHRpVG9rZW46X1gsTmw6WjRhLFRleHQ6RXN0LFVybDpNWCxjcmVhdGVUb2tlbkNsYXNzOkt2fSksVmM9aShzPT5uZXcgRW4ocyksIm1ha2VTdGF0ZSIpO2koTVhhLCJpbml0JDEiKTtpKHpYYSwicnVuIik7aShQc3QsImluaXRNdWx0aVRva2VuIik7elg9dHlwZW9mIGNvbnNvbGU8InUiJiZjb25zb2xlJiZjb25zb2xlLndhcm58fCgoKT0+e30pLElzdD0idW50aWwgbWFudWFsIGNhbGwgb2YgbGlua2lmeS5pbml0KCkuIFJlZ2lzdGVyIGFsbCBzY2hlbWVzIGFuZCBwbHVnaW5zIGJlZm9yZSBpbnZva2luZyBsaW5raWZ5IHRoZSBmaXJzdCB0aW1lLiIsc3M9e3NjYW5uZXI6bnVsbCxwYXJzZXI6bnVsbCx0b2tlblF1ZXVlOltdLHBsdWdpblF1ZXVlOltdLGN1c3RvbVNjaGVtZXM6W10saW5pdGlhbGl6ZWQ6ITF9O2koQXN0LCJyZXNldCIpO2koQ1hhLCJyZWdpc3RlclRva2VuUGx1Z2luIik7aShUWGEsInJlZ2lzdGVyUGx1Z2luIik7aShVY2UsInJlZ2lzdGVyQ3VzdG9tUHJvdG9jb2wiKTtpKFE0YSwiaW5pdCIpO2koWXYsInRva2VuaXplIiksWXYuc2Nhbj1XNGE7aShXY2UsImZpbmQiKTtpKCRYYSwidGVzdCIpfSk7dmFyIE9zdD17fTt5dChPc3Qse0xpbms6KCk9PlJzdCxkZWZhdWx0OigpPT5Sc3QsaXNBbGxvd2VkVXJpOigpPT5odSxwYXN0ZVJlZ2V4OigpPT5lM2F9KTtmdW5jdGlvbiBQWGEocyl7cmV0dXJuIHMubGVuZ3RoPT09MT9zWzBdLmlzTGluazpzLmxlbmd0aD09PTMmJnNbMV0uaXNMaW5rP1siKCkiLCJbXSJdLmluY2x1ZGVzKHNbMF0udmFsdWUrc1syXS52YWx1ZSk6ITF9ZnVuY3Rpb24gSVhhKHMpe3JldHVybiBuZXcgWXMoe2tleTpuZXcgJHIoImF1dG9saW5rIiksYXBwZW5kVHJhbnNhY3Rpb246aSgoZSx0LGEpPT57bGV0IHI9ZS5zb21lKGQ9PmQuZG9jQ2hhbmdlZCkmJiF0LmRvYy5lcShhLmRvYyksbj1lLnNvbWUoZD0+ZC5nZXRNZXRhKCJwcmV2ZW50QXV0b2xpbmsiKSk7aWYoIXJ8fG4pcmV0dXJuO2xldHt0cjpvfT1hLGw9UmxlKHQuZG9jLFsuLi5lXSk7aWYoRmxlKGwpLmZvckVhY2goKHtuZXdSYW5nZTpkfSk9PntsZXQgdT1PbGUoYS5kb2MsZCx2PT52LmlzVGV4dGJsb2NrKSxjLGI7aWYodS5sZW5ndGg+MSljPXVbMF0sYj1hLmRvYy50ZXh0QmV0d2VlbihjLnBvcyxjLnBvcytjLm5vZGUubm9kZVNpemUsdm9pZCAwLCIgIik7ZWxzZSBpZih1Lmxlbmd0aCl7bGV0IHY9YS5kb2MudGV4dEJldHdlZW4oZC5mcm9tLGQudG8sIiAiLCIgIik7aWYoIUxYYS50ZXN0KHYpKXJldHVybjtjPXVbMF0sYj1hLmRvYy50ZXh0QmV0d2VlbihjLnBvcyxkLnRvLHZvaWQgMCwiICIpfWlmKGMmJmIpe2xldCB2PWIuc3BsaXQoRFhhKS5maWx0ZXIoQm9vbGVhbik7aWYodi5sZW5ndGg8PTApcmV0dXJuITE7bGV0IHg9dlt2Lmxlbmd0aC0xXSxtPWMucG9zK2IubGFzdEluZGV4T2YoeCk7aWYoIXgpcmV0dXJuITE7bGV0IGY9WXYoeCkubWFwKHk9PnkudG9PYmplY3Qocy5kZWZhdWx0UHJvdG9jb2wpKTtpZighUFhhKGYpKXJldHVybiExO2YuZmlsdGVyKHk9PnkuaXNMaW5rKS5tYXAoeT0+KHsuLi55LGZyb206bSt5LnN0YXJ0KzEsdG86bSt5LmVuZCsxfSkpLmZpbHRlcih5PT5hLnNjaGVtYS5tYXJrcy5jb2RlPyFhLmRvYy5yYW5nZUhhc01hcmsoeS5mcm9tLHkudG8sYS5zY2hlbWEubWFya3MuY29kZSk6ITApLmZpbHRlcih5PT5zLnZhbGlkYXRlKHkudmFsdWUpKS5maWx0ZXIoeT0+cy5zaG91bGRBdXRvTGluayh5LnZhbHVlKSkuZm9yRWFjaCh5PT57VnYoeS5mcm9tLHkudG8sYS5kb2MpLnNvbWUoTT0+TS5tYXJrLnR5cGU9PT1zLnR5cGUpfHxvLmFkZE1hcmsoeS5mcm9tLHkudG8scy50eXBlLmNyZWF0ZSh7aHJlZjp5LmhyZWZ9KSl9KX19KSwhIW8uc3RlcHMubGVuZ3RoKXJldHVybiBvfSwiYXBwZW5kVHJhbnNhY3Rpb24iKX0pfWZ1bmN0aW9uIEFYYShzKXtyZXR1cm4gbmV3IFlzKHtrZXk6bmV3ICRyKCJoYW5kbGVDbGlja0xpbmsiKSxwcm9wczp7aGFuZGxlQ2xpY2s6aSgoZSx0LGEpPT57dmFyIHIsbjtpZihhLmJ1dHRvbiE9PTB8fCFlLmVkaXRhYmxlKXJldHVybiExO2xldCBvPWEudGFyZ2V0LGw9W107Zm9yKDtvLm5vZGVOYW1lIT09IkRJViI7KWwucHVzaChvKSxvPW8ucGFyZW50Tm9kZTtpZighbC5maW5kKGI9PmIubm9kZU5hbWU9PT0iQSIpKXJldHVybiExO2xldCBwPWZYKGUuc3RhdGUscy50eXBlLm5hbWUpLGQ9YS50YXJnZXQsdT0ocj1kPy5ocmVmKSE9PW51bGwmJnIhPT12b2lkIDA/cjpwLmhyZWYsYz0obj1kPy50YXJnZXQpIT09bnVsbCYmbiE9PXZvaWQgMD9uOnAudGFyZ2V0O3JldHVybiBkJiZ1Pyh3aW5kb3cub3Blbih1LGMpLCEwKTohMX0sImhhbmRsZUNsaWNrIil9fSl9ZnVuY3Rpb24gTlhhKHMpe3JldHVybiBuZXcgWXMoe2tleTpuZXcgJHIoImhhbmRsZVBhc3RlTGluayIpLHByb3BzOntoYW5kbGVQYXN0ZTppKChlLHQsYSk9PntsZXR7c3RhdGU6cn09ZSx7c2VsZWN0aW9uOm59PXIse2VtcHR5Om99PW47aWYobylyZXR1cm4hMTtsZXQgbD0iIjthLmNvbnRlbnQuZm9yRWFjaChkPT57bCs9ZC50ZXh0Q29udGVudH0pO2xldCBwPVdjZShsLHtkZWZhdWx0UHJvdG9jb2w6cy5kZWZhdWx0UHJvdG9jb2x9KS5maW5kKGQ9PmQuaXNMaW5rJiZkLnZhbHVlPT09bCk7cmV0dXJuIWx8fCFwPyExOnMuZWRpdG9yLmNvbW1hbmRzLnNldE1hcmsocy50eXBlLHtocmVmOnAuaHJlZn0pfSwiaGFuZGxlUGFzdGUiKX19KX1mdW5jdGlvbiBodShzLGUpe2xldCB0PVsiaHR0cCIsImh0dHBzIiwiZnRwIiwiZnRwcyIsIm1haWx0byIsInRlbCIsImNhbGx0byIsInNtcyIsImNpZCIsInhtcHAiXTtyZXR1cm4gZSYmZS5mb3JFYWNoKGE9PntsZXQgcj10eXBlb2YgYT09InN0cmluZyI/YTphLnNjaGVtZTtyJiZ0LnB1c2gocil9KSwhc3x8cy5yZXBsYWNlKEVYYSwiIikubWF0Y2gobmV3IFJlZ0V4cChgXig/Oig/OiR7dC5qb2luKCJ8Iil9KTp8W15hLXpdfFthLXowLTkrLi1dKyg/OlteYS16Ky4tOl18JCkpYCwiaSIpKX12YXIgTnN0LERYYSxMWGEsRVhhLGUzYSxSc3QsRnN0PWcoKCk9PntpaSgpO0o0YSgpO0daKCk7TnN0PSJbXDAtIFx4QTBcdTE2ODBcdTE4MEVcdTIwMDAtXHUyMDI5XHUyMDVGXHUzMDAwXSIsRFhhPW5ldyBSZWdFeHAoTnN0KSxMWGE9bmV3IFJlZ0V4cChgJHtOc3R9JGApLEVYYT1uZXcgUmVnRXhwKE5zdCwiZyIpO2koUFhhLCJpc1ZhbGlkTGlua1N0cnVjdHVyZSIpO2koSVhhLCJhdXRvbGluayIpO2koQVhhLCJjbGlja0hhbmRsZXIiKTtpKE5YYSwicGFzdGVIYW5kbGVyIik7ZTNhPS9odHRwcz86XC9cLyg/Ond3d1wuKT9bLWEtekEtWjAtOUA6JS5fK34jPV17MSwyNTZ9XC5bYS16QS1aXXsyLH1cYig/OlstYS16QS1aMC05QDolLl8rfiM9PyEmL10qKSg/OlstYS16QS1aMC05QDolLl8rfiM9PyEmL10qKS9naTtpKGh1LCJpc0FsbG93ZWRVcmkiKTtSc3Q9RG8uY3JlYXRlKHtuYW1lOiJsaW5rIixwcmlvcml0eToxZTMsa2VlcE9uU3BsaXQ6ITEsZXhpdGFibGU6ITAsb25DcmVhdGUoKXt0aGlzLm9wdGlvbnMudmFsaWRhdGUmJiF0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbmsmJih0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbms9dGhpcy5vcHRpb25zLnZhbGlkYXRlLGNvbnNvbGUud2FybigiVGhlIGB2YWxpZGF0ZWAgb3B0aW9uIGlzIGRlcHJlY2F0ZWQuIFJlbmFtZSB0byB0aGUgYHNob3VsZEF1dG9MaW5rYCBvcHRpb24gaW5zdGVhZC4iKSksdGhpcy5vcHRpb25zLnByb3RvY29scy5mb3JFYWNoKHM9PntpZih0eXBlb2Ygcz09InN0cmluZyIpe1VjZShzKTtyZXR1cm59VWNlKHMuc2NoZW1lLHMub3B0aW9uYWxTbGFzaGVzKX0pfSxvbkRlc3Ryb3koKXtBc3QoKX0saW5jbHVzaXZlKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvbGlua30sYWRkT3B0aW9ucygpe3JldHVybntvcGVuT25DbGljazohMCxsaW5rT25QYXN0ZTohMCxhdXRvbGluazohMCxwcm90b2NvbHM6W10sZGVmYXVsdFByb3RvY29sOiJodHRwIixIVE1MQXR0cmlidXRlczp7dGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvdyIsY2xhc3M6bnVsbH0saXNBbGxvd2VkVXJpOmkoKHMsZSk9PiEhaHUocyxlLnByb3RvY29scyksImlzQWxsb3dlZFVyaSIpLHZhbGlkYXRlOmkocz0+ISFzLCJ2YWxpZGF0ZSIpLHNob3VsZEF1dG9MaW5rOmkocz0+ISFzLCJzaG91bGRBdXRvTGluayIpfX0sYWRkQXR0cmlidXRlcygpe3JldHVybntocmVmOntkZWZhdWx0Om51bGwscGFyc2VIVE1MKHMpe3JldHVybiBzLmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0sdGFyZ2V0OntkZWZhdWx0OnRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcy50YXJnZXR9LHJlbDp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMucmVsfSxjbGFzczp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMuY2xhc3N9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImFbaHJlZl0iLGdldEF0dHJzOmkocz0+e2xldCBlPXMuZ2V0QXR0cmlidXRlKCJocmVmIik7cmV0dXJuIWV8fCF0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKGUse2RlZmF1bHRWYWxpZGF0ZTppKHQ9PiEhaHUodCx0aGlzLm9wdGlvbnMucHJvdG9jb2xzKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOnRoaXMub3B0aW9ucy5wcm90b2NvbHMsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2x9KT8hMTpudWxsfSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczpzfSl7cmV0dXJuIHRoaXMub3B0aW9ucy5pc0FsbG93ZWRVcmkocy5ocmVmLHtkZWZhdWx0VmFsaWRhdGU6aShlPT4hIWh1KGUsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/WyJhIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMscyksMF06WyJhIixhcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsey4uLnMsaHJlZjoiIn0pLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRMaW5rOmkocz0+KHtjaGFpbjplfSk9PntsZXR7aHJlZjp0fT1zO3JldHVybiB0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKHQse2RlZmF1bHRWYWxpZGF0ZTppKGE9PiEhaHUoYSx0aGlzLm9wdGlvbnMucHJvdG9jb2xzKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOnRoaXMub3B0aW9ucy5wcm90b2NvbHMsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2x9KT9lKCkuc2V0TWFyayh0aGlzLm5hbWUscykuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCk6ITF9LCJzZXRMaW5rIiksdG9nZ2xlTGluazppKHM9Pih7Y2hhaW46ZX0pPT57bGV0e2hyZWY6dH09cztyZXR1cm4gdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaSh0LHtkZWZhdWx0VmFsaWRhdGU6aShhPT4hIWh1KGEsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/ZSgpLnRvZ2dsZU1hcmsodGhpcy5uYW1lLHMse2V4dGVuZEVtcHR5TWFya1JhbmdlOiEwfSkuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCk6ITF9LCJ0b2dnbGVMaW5rIiksdW5zZXRMaW5rOmkoKCk9Pih7Y2hhaW46c30pPT5zKCkudW5zZXRNYXJrKHRoaXMubmFtZSx7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6ITB9KS5zZXRNZXRhKCJwcmV2ZW50QXV0b2xpbmsiLCEwKS5ydW4oKSwidW5zZXRMaW5rIil9fSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW1RsKHtmaW5kOmkocz0+e2xldCBlPVtdO2lmKHMpe2xldHtwcm90b2NvbHM6dCxkZWZhdWx0UHJvdG9jb2w6YX09dGhpcy5vcHRpb25zLHI9V2NlKHMpLmZpbHRlcihuPT5uLmlzTGluayYmdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShuLnZhbHVlLHtkZWZhdWx0VmFsaWRhdGU6aShvPT4hIWh1KG8sdCksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0LGRlZmF1bHRQcm90b2NvbDphfSkpO3IubGVuZ3RoJiZyLmZvckVhY2gobj0+ZS5wdXNoKHt0ZXh0Om4udmFsdWUsZGF0YTp7aHJlZjpuLmhyZWZ9LGluZGV4Om4uc3RhcnR9KSl9cmV0dXJuIGV9LCJmaW5kIiksdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKHM9Pnt2YXIgZTtyZXR1cm57aHJlZjooZT1zLmRhdGEpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5ocmVmfX0sImdldEF0dHJpYnV0ZXMiKX0pXX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7bGV0IHM9W10se3Byb3RvY29sczplLGRlZmF1bHRQcm90b2NvbDp0fT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvbGluayYmcy5wdXNoKElYYSh7dHlwZTp0aGlzLnR5cGUsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2wsdmFsaWRhdGU6aShhPT50aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKGEse2RlZmF1bHRWYWxpZGF0ZTppKHI9PiEhaHUocixlKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOmUsZGVmYXVsdFByb3RvY29sOnR9KSwidmFsaWRhdGUiKSxzaG91bGRBdXRvTGluazp0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbmt9KSksdGhpcy5vcHRpb25zLm9wZW5PbkNsaWNrPT09ITAmJnMucHVzaChBWGEoe3R5cGU6dGhpcy50eXBlfSkpLHRoaXMub3B0aW9ucy5saW5rT25QYXN0ZSYmcy5wdXNoKE5YYSh7ZWRpdG9yOnRoaXMuZWRpdG9yLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sLHR5cGU6dGhpcy50eXBlfSkpLHN9fSl9KTt2YXIgY2l0PXt9O3l0KGNpdCx7VHlwb2dyYXBoeTooKT0+bGl0LGNsb3NlRG91YmxlUXVvdGU6KCk9PmpzdCxjbG9zZVNpbmdsZVF1b3RlOigpPT5Vc3QsY29weXJpZ2h0OigpPT5Lc3QsZGVmYXVsdDooKT0+bGl0LGVsbGlwc2lzOigpPT5Ic3QsZW1EYXNoOigpPT5Cc3QsbGFxdW86KCk9PnRpdCxsZWZ0QXJyb3c6KCk9PldzdCxtdWx0aXBsaWNhdGlvbjooKT0+c2l0LG5vdEVxdWFsOigpPT5laXQsb25lSGFsZjooKT0+UXN0LG9uZVF1YXJ0ZXI6KCk9Pm9pdCxvcGVuRG91YmxlUXVvdGU6KCk9PnFzdCxvcGVuU2luZ2xlUXVvdGU6KCk9PlZzdCxwbHVzTWludXM6KCk9PkpzdCxyYXF1bzooKT0+YWl0LHJlZ2lzdGVyZWRUcmFkZW1hcms6KCk9PlhzdCxyaWdodEFycm93OigpPT5Hc3Qsc2VydmljZW1hcms6KCk9PlpzdCxzdXBlcnNjcmlwdFRocmVlOigpPT5yaXQsc3VwZXJzY3JpcHRUd286KCk9PmlpdCx0aHJlZVF1YXJ0ZXJzOigpPT5uaXQsdHJhZGVtYXJrOigpPT5Zc3R9KTt2YXIgQnN0LEhzdCxxc3QsanN0LFZzdCxVc3QsV3N0LEdzdCxLc3QsWXN0LFpzdCxYc3QsUXN0LEpzdCxlaXQsdGl0LGFpdCxzaXQsaWl0LHJpdCxvaXQsbml0LGxpdCxkaXQ9ZygoKT0+e2lpKCk7QnN0PWkocz0+aGkoe2ZpbmQ6Ly0tJC8scmVwbGFjZTpzPz8iXHUyMDE0In0pLCJlbURhc2giKSxIc3Q9aShzPT5oaSh7ZmluZDovXC5cLlwuJC8scmVwbGFjZTpzPz8iXHUyMDI2In0pLCJlbGxpcHNpcyIpLHFzdD1pKHM9PmhpKHtmaW5kOi8oPzpefFtcc3tbKDwnIlx1MjAxOFx1MjAxQ10pKCIpJC8scmVwbGFjZTpzPz8iXHUyMDFDIn0pLCJvcGVuRG91YmxlUXVvdGUiKSxqc3Q9aShzPT5oaSh7ZmluZDovIiQvLHJlcGxhY2U6cz8/Ilx1MjAxRCJ9KSwiY2xvc2VEb3VibGVRdW90ZSIpLFZzdD1pKHM9PmhpKHtmaW5kOi8oPzpefFtcc3tbKDwnIlx1MjAxOFx1MjAxQ10pKCcpJC8scmVwbGFjZTpzPz8iXHUyMDE4In0pLCJvcGVuU2luZ2xlUXVvdGUiKSxVc3Q9aShzPT5oaSh7ZmluZDovJyQvLHJlcGxhY2U6cz8/Ilx1MjAxOSJ9KSwiY2xvc2VTaW5nbGVRdW90ZSIpLFdzdD1pKHM9PmhpKHtmaW5kOi88LSQvLHJlcGxhY2U6cz8/Ilx1MjE5MCJ9KSwibGVmdEFycm93IiksR3N0PWkocz0+aGkoe2ZpbmQ6Ly0+JC8scmVwbGFjZTpzPz8iXHUyMTkyIn0pLCJyaWdodEFycm93IiksS3N0PWkocz0+aGkoe2ZpbmQ6L1woY1wpJC8scmVwbGFjZTpzPz8iXHhBOSJ9KSwiY29weXJpZ2h0IiksWXN0PWkocz0+aGkoe2ZpbmQ6L1wodG1cKSQvLHJlcGxhY2U6cz8/Ilx1MjEyMiJ9KSwidHJhZGVtYXJrIiksWnN0PWkocz0+aGkoe2ZpbmQ6L1woc21cKSQvLHJlcGxhY2U6cz8/Ilx1MjEyMCJ9KSwic2VydmljZW1hcmsiKSxYc3Q9aShzPT5oaSh7ZmluZDovXChyXCkkLyxyZXBsYWNlOnM/PyJceEFFIn0pLCJyZWdpc3RlcmVkVHJhZGVtYXJrIiksUXN0PWkocz0+aGkoe2ZpbmQ6Lyg/Ol58XHMpKDFcLzIpXHMkLyxyZXBsYWNlOnM/PyJceEJEIn0pLCJvbmVIYWxmIiksSnN0PWkocz0+aGkoe2ZpbmQ6L1wrXC8tJC8scmVwbGFjZTpzPz8iXHhCMSJ9KSwicGx1c01pbnVzIiksZWl0PWkocz0+aGkoe2ZpbmQ6LyE9JC8scmVwbGFjZTpzPz8iXHUyMjYwIn0pLCJub3RFcXVhbCIpLHRpdD1pKHM9PmhpKHtmaW5kOi88PCQvLHJlcGxhY2U6cz8/Ilx4QUIifSksImxhcXVvIiksYWl0PWkocz0+aGkoe2ZpbmQ6Lz4+JC8scmVwbGFjZTpzPz8iXHhCQiJ9KSwicmFxdW8iKSxzaXQ9aShzPT5oaSh7ZmluZDovXGQrXHM/KFsqeF0pXHM/XGQrJC8scmVwbGFjZTpzPz8iXHhENyJ9KSwibXVsdGlwbGljYXRpb24iKSxpaXQ9aShzPT5oaSh7ZmluZDovXF4yJC8scmVwbGFjZTpzPz8iXHhCMiJ9KSwic3VwZXJzY3JpcHRUd28iKSxyaXQ9aShzPT5oaSh7ZmluZDovXF4zJC8scmVwbGFjZTpzPz8iXHhCMyJ9KSwic3VwZXJzY3JpcHRUaHJlZSIpLG9pdD1pKHM9PmhpKHtmaW5kOi8oPzpefFxzKSgxXC80KVxzJC8scmVwbGFjZTpzPz8iXHhCQyJ9KSwib25lUXVhcnRlciIpLG5pdD1pKHM9PmhpKHtmaW5kOi8oPzpefFxzKSgzXC80KVxzJC8scmVwbGFjZTpzPz8iXHhCRSJ9KSwidGhyZWVRdWFydGVycyIpLGxpdD13aS5jcmVhdGUoe25hbWU6InR5cG9ncmFwaHkiLGFkZE9wdGlvbnMoKXtyZXR1cm57Y2xvc2VEb3VibGVRdW90ZToiXHUyMDFEIixjbG9zZVNpbmdsZVF1b3RlOiJcdTIwMTkiLGNvcHlyaWdodDoiXHhBOSIsZWxsaXBzaXM6Ilx1MjAyNiIsZW1EYXNoOiJcdTIwMTQiLGxhcXVvOiJceEFCIixsZWZ0QXJyb3c6Ilx1MjE5MCIsbXVsdGlwbGljYXRpb246Ilx4RDciLG5vdEVxdWFsOiJcdTIyNjAiLG9uZUhhbGY6Ilx4QkQiLG9uZVF1YXJ0ZXI6Ilx4QkMiLG9wZW5Eb3VibGVRdW90ZToiXHUyMDFDIixvcGVuU2luZ2xlUXVvdGU6Ilx1MjAxOCIscGx1c01pbnVzOiJceEIxIixyYXF1bzoiXHhCQiIscmVnaXN0ZXJlZFRyYWRlbWFyazoiXHhBRSIscmlnaHRBcnJvdzoiXHUyMTkyIixzZXJ2aWNlbWFyazoiXHUyMTIwIixzdXBlcnNjcmlwdFRocmVlOiJceEIzIixzdXBlcnNjcmlwdFR3bzoiXHhCMiIsdGhyZWVRdWFydGVyczoiXHhCRSIsdHJhZGVtYXJrOiJcdTIxMjIifX0sYWRkSW5wdXRSdWxlcygpe2xldCBzPVtdO3JldHVybiB0aGlzLm9wdGlvbnMuZW1EYXNoIT09ITEmJnMucHVzaChCc3QodGhpcy5vcHRpb25zLmVtRGFzaCkpLHRoaXMub3B0aW9ucy5lbGxpcHNpcyE9PSExJiZzLnB1c2goSHN0KHRoaXMub3B0aW9ucy5lbGxpcHNpcykpLHRoaXMub3B0aW9ucy5vcGVuRG91YmxlUXVvdGUhPT0hMSYmcy5wdXNoKHFzdCh0aGlzLm9wdGlvbnMub3BlbkRvdWJsZVF1b3RlKSksdGhpcy5vcHRpb25zLmNsb3NlRG91YmxlUXVvdGUhPT0hMSYmcy5wdXNoKGpzdCh0aGlzLm9wdGlvbnMuY2xvc2VEb3VibGVRdW90ZSkpLHRoaXMub3B0aW9ucy5vcGVuU2luZ2xlUXVvdGUhPT0hMSYmcy5wdXNoKFZzdCh0aGlzLm9wdGlvbnMub3BlblNpbmdsZVF1b3RlKSksdGhpcy5vcHRpb25zLmNsb3NlU2luZ2xlUXVvdGUhPT0hMSYmcy5wdXNoKFVzdCh0aGlzLm9wdGlvbnMuY2xvc2VTaW5nbGVRdW90ZSkpLHRoaXMub3B0aW9ucy5sZWZ0QXJyb3chPT0hMSYmcy5wdXNoKFdzdCh0aGlzLm9wdGlvbnMubGVmdEFycm93KSksdGhpcy5vcHRpb25zLnJpZ2h0QXJyb3chPT0hMSYmcy5wdXNoKEdzdCh0aGlzLm9wdGlvbnMucmlnaHRBcnJvdykpLHRoaXMub3B0aW9ucy5jb3B5cmlnaHQhPT0hMSYmcy5wdXNoKEtzdCh0aGlzLm9wdGlvbnMuY29weXJpZ2h0KSksdGhpcy5vcHRpb25zLnRyYWRlbWFyayE9PSExJiZzLnB1c2goWXN0KHRoaXMub3B0aW9ucy50cmFkZW1hcmspKSx0aGlzLm9wdGlvbnMuc2VydmljZW1hcmshPT0hMSYmcy5wdXNoKFpzdCh0aGlzLm9wdGlvbnMuc2VydmljZW1hcmspKSx0aGlzLm9wdGlvbnMucmVnaXN0ZXJlZFRyYWRlbWFyayE9PSExJiZzLnB1c2goWHN0KHRoaXMub3B0aW9ucy5yZWdpc3RlcmVkVHJhZGVtYXJrKSksdGhpcy5vcHRpb25zLm9uZUhhbGYhPT0hMSYmcy5wdXNoKFFzdCh0aGlzLm9wdGlvbnMub25lSGFsZikpLHRoaXMub3B0aW9ucy5wbHVzTWludXMhPT0hMSYmcy5wdXNoKEpzdCh0aGlzLm9wdGlvbnMucGx1c01pbnVzKSksdGhpcy5vcHRpb25zLm5vdEVxdWFsIT09ITEmJnMucHVzaChlaXQodGhpcy5vcHRpb25zLm5vdEVxdWFsKSksdGhpcy5vcHRpb25zLmxhcXVvIT09ITEmJnMucHVzaCh0aXQodGhpcy5vcHRpb25zLmxhcXVvKSksdGhpcy5vcHRpb25zLnJhcXVvIT09ITEmJnMucHVzaChhaXQodGhpcy5vcHRpb25zLnJhcXVvKSksdGhpcy5vcHRpb25zLm11bHRpcGxpY2F0aW9uIT09ITEmJnMucHVzaChzaXQodGhpcy5vcHRpb25zLm11bHRpcGxpY2F0aW9uKSksdGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VHdvIT09ITEmJnMucHVzaChpaXQodGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VHdvKSksdGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VGhyZWUhPT0hMSYmcy5wdXNoKHJpdCh0aGlzLm9wdGlvbnMuc3VwZXJzY3JpcHRUaHJlZSkpLHRoaXMub3B0aW9ucy5vbmVRdWFydGVyIT09ITEmJnMucHVzaChvaXQodGhpcy5vcHRpb25zLm9uZVF1YXJ0ZXIpKSx0aGlzLm9wdGlvbnMudGhyZWVRdWFydGVycyE9PSExJiZzLnB1c2gobml0KHRoaXMub3B0aW9ucy50aHJlZVF1YXJ0ZXJzKSksc319KX0pO3ZhciBzMixpMix1aXQ9ZygoKT0+e3MyPXt4dGVybToiNS4zLjAiLHh0ZXJtQWRkb25GaXQ6IjAuOC4wIix4dGVybUFkZG9uU2VhcmNoOiIwLjEzLjAiLGhpZ2hsaWdodEpzOiIxMS4xMS4xIixlY2hhcnRzOiI1LjYuMCIsbGlnaHR3ZWlnaHRDaGFydHM6IjUuMS4wIix0aXB0YXA6IjIuMjcuMiIsZm9udGF3ZXNvbWU6IjcuMi4wIn0saTI9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0ifSk7dmFyIFFyLHQzYT1nKCgpPT57dWl0KCk7UXI9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2VydmljZUxpYkxvYWRlciIpfXN0YXRpYyBpbnN0YW5jZTt4dGVybUxpYj1udWxsO3h0ZXJtRml0QWRkb25MaWI9bnVsbDt4dGVybVNlYXJjaEFkZG9uTGliPW51bGw7aGlnaGxpZ2h0SnNMaWI9bnVsbDtsaWdodHdlaWdodENoYXJ0c0xpYj1udWxsO2VjaGFydHNMaWI9bnVsbDt0aXB0YXBMaWI9bnVsbDt4dGVybUxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7aGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZT1udWxsO2xpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDtlY2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDt0aXB0YXBMb2FkaW5nUHJvbWlzZT1udWxsO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBzLmluc3RhbmNlfHwocy5pbnN0YW5jZT1uZXcgcykscy5pbnN0YW5jZX1hc3luYyBsb2FkWHRlcm0oKXtyZXR1cm4gdGhpcy54dGVybUxpYj90aGlzLnh0ZXJtTGliOnRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHtpMn0veHRlcm1AJHtzMi54dGVybX0vK2VzbWApO3JldHVybiBhd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzKCksdGhpcy54dGVybUxpYj17VGVybWluYWw6dC5UZXJtaW5hbH0sdGhpcy54dGVybUxpYn0pKCksdGhpcy54dGVybUxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1GaXRBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI/dGhpcy54dGVybUZpdEFkZG9uTGliOnRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHtpMn0veHRlcm0tYWRkb24tZml0QCR7czIueHRlcm1BZGRvbkZpdH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI9e0ZpdEFkZG9uOnQuRml0QWRkb259LHRoaXMueHRlcm1GaXRBZGRvbkxpYn0pKCksdGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRYdGVybVNlYXJjaEFkZG9uKCl7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj90aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI6dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAke2kyfS94dGVybS1hZGRvbi1zZWFyY2hAJHtzMi54dGVybUFkZG9uU2VhcmNofS8rZXNtYCk7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj17U2VhcmNoQWRkb246dC5TZWFyY2hBZGRvbn0sdGhpcy54dGVybVNlYXJjaEFkZG9uTGlifSkoKSx0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXMoKXtsZXQgZT0ieHRlcm0tY2RuLXN0eWxlcyI7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkpcmV0dXJuO2xldCB0PWAke2kyfS94dGVybUAke3MyLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxyPWF3YWl0KGF3YWl0IGZldGNoKHQpKS50ZXh0KCksbj1gCi8qIEZpeCB4dGVybS5qcyBXaWR0aENhY2hlIG1lYXN1cmVtZW50IGNvbnRhaW5lciBjYXVzaW5nIGhvcml6b250YWwgc2Nyb2xsYmFyICovCi8qIHh0ZXJtIGNyZWF0ZXMgdGhpcyBvbiBkb2N1bWVudC5ib2R5IC0gbW92ZSBpdCBvZmYtc2NyZWVuIGhvcml6b250YWxseSB0b28gKi8KYm9keSA+IGRpdltzdHlsZSo9InRvcDogLTUwMDAwcHgiXVtzdHlsZSo9IndpZHRoOiA1MDAwMHB4Il0gewogIGxlZnQ6IC01MDAwMHB4ICFpbXBvcnRhbnQ7Cn0KYCxvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7by5pZD1lLG8udGV4dENvbnRlbnQ9cituLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobyl9YXN5bmMgbG9hZEhpZ2hsaWdodEpzKCl7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI/dGhpcy5oaWdobGlnaHRKc0xpYjp0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U/dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlOih0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7aTJ9L2hpZ2hsaWdodC5qc0Ake3MyLmhpZ2hsaWdodEpzfS8rZXNtYCk7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI9dC5kZWZhdWx0LHRoaXMuaGlnaGxpZ2h0SnNMaWJ9KSgpLHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCl7cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI/dGhpcy5saWdodHdlaWdodENoYXJ0c0xpYjp0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlOih0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7aTJ9L2xpZ2h0d2VpZ2h0LWNoYXJ0c0Ake3MyLmxpZ2h0d2VpZ2h0Q2hhcnRzfS8rZXNtYCk7cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI9e2NyZWF0ZUNoYXJ0OnQuY3JlYXRlQ2hhcnQsQXJlYVNlcmllczp0LkFyZWFTZXJpZXMsTGluZVNlcmllczp0LkxpbmVTZXJpZXMsQ29sb3JUeXBlOnQuQ29sb3JUeXBlLExpbmVUeXBlOnQuTGluZVR5cGUsQ3Jvc3NoYWlyTW9kZTp0LkNyb3NzaGFpck1vZGV9LHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWJ9KSgpLHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZEVjaGFydHMoKXtyZXR1cm4gdGhpcy5lY2hhcnRzTGliP3RoaXMuZWNoYXJ0c0xpYjp0aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZT90aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7aTJ9L2VjaGFydHNAJHtzMi5lY2hhcnRzfS9kaXN0L2VjaGFydHMuZXNtLm1pbi5qc2ApO3JldHVybiB0aGlzLmVjaGFydHNMaWI9e2luaXQ6dC5pbml0LGRpc3Bvc2U6dC5kaXNwb3NlLGdldEluc3RhbmNlQnlEb206dC5nZXRJbnN0YW5jZUJ5RG9tfSx0aGlzLmVjaGFydHNMaWJ9KSgpLHRoaXMuZWNoYXJ0c0xvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkVGlwdGFwKCl7cmV0dXJuIHRoaXMudGlwdGFwTGliP3RoaXMudGlwdGFwTGliOnRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U/dGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZToodGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldFtlLHQsYSxyLG4sb109YXdhaXQgUHJvbWlzZS5hbGwoW1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihpaSgpLEthdCkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pihuc3QoKSxvc3QpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZHN0KCksY3N0KSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGhzdCgpLHBzdCkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihGc3QoKSxPc3QpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZGl0KCksY2l0KSldKTtyZXR1cm4gdGhpcy50aXB0YXBMaWI9e0VkaXRvcjplLkVkaXRvcixTdGFydGVyS2l0OnQuZGVmYXVsdHx8dC5TdGFydGVyS2l0LFVuZGVybGluZTphLmRlZmF1bHR8fGEuVW5kZXJsaW5lLFRleHRBbGlnbjpyLmRlZmF1bHR8fHIuVGV4dEFsaWduLExpbms6bi5kZWZhdWx0fHxuLkxpbmssVHlwb2dyYXBoeTpvLmRlZmF1bHR8fG8uVHlwb2dyYXBoeX0sdGhpcy50aXB0YXBMaWJ9KSgpLHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2UpfWFzeW5jIHByZWxvYWRBbGwoKXthd2FpdCBQcm9taXNlLmFsbChbdGhpcy5sb2FkWHRlcm0oKSx0aGlzLmxvYWRYdGVybUZpdEFkZG9uKCksdGhpcy5sb2FkWHRlcm1TZWFyY2hBZGRvbigpLHRoaXMubG9hZEhpZ2hsaWdodEpzKCksdGhpcy5sb2FkTGlnaHR3ZWlnaHRDaGFydHMoKSx0aGlzLmxvYWRFY2hhcnRzKCksdGhpcy5sb2FkVGlwdGFwKCldKX1pc0xvYWRlZChlKXtzd2l0Y2goZSl7Y2FzZSJ4dGVybSI6cmV0dXJuIHRoaXMueHRlcm1MaWIhPT1udWxsO2Nhc2UieHRlcm1GaXRBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYiE9PW51bGw7Y2FzZSJ4dGVybVNlYXJjaEFkZG9uIjpyZXR1cm4gdGhpcy54dGVybVNlYXJjaEFkZG9uTGliIT09bnVsbDtjYXNlImhpZ2hsaWdodEpzIjpyZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xpYiE9PW51bGw7Y2FzZSJsaWdodHdlaWdodENoYXJ0cyI6cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWIhPT1udWxsO2Nhc2UiZWNoYXJ0cyI6cmV0dXJuIHRoaXMuZWNoYXJ0c0xpYiE9PW51bGw7Y2FzZSJ0aXB0YXAiOnJldHVybiB0aGlzLnRpcHRhcExpYiE9PW51bGw7ZGVmYXVsdDpyZXR1cm4hMX19fX0pO3ZhciBmdT1nKCgpPT57dDNhKCk7dWl0KCl9KTt2YXIgQ1gsYTNhPWcoKCk9PntZbCgpO3BlKCk7RGQoKTtDcigpO05uZSgpO2Z1KCk7Q1g9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJDb2RlQmxvY2tIYW5kbGVyIil9dHlwZT0iY29kZSI7aGlnaGxpZ2h0VGltZXI9bnVsbDtoaWdobGlnaHRKcz1udWxsO3JlbmRlcihlLHQpe2xldCBhPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCIscj1lLmNvbnRlbnR8fCIiLG49ci5zcGxpdChgCmApLmxlbmd0aCxvPSIiO2ZvcihsZXQgcD0xO3A8PW47cCsrKW8rPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtwfTwvZGl2PmA7bGV0IGw9TFoubWFwKHA9PntsZXQgZD1wLnRvTG93ZXJDYXNlKCk7cmV0dXJuYDxvcHRpb24gdmFsdWU9IiR7ZH0iICR7ZD09PWE/InNlbGVjdGVkIjoiIn0+JHtwfTwvb3B0aW9uPmB9KS5qb2luKCIiKTtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyJHt0PyIgc2VsZWN0ZWQiOiIifSIgZGF0YS1sYW5ndWFnZT0iJHthfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1oZWFkZXIiPgogICAgICAgICAgPHNlbGVjdCBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iPgogICAgICAgICAgICAke2x9CiAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiB0aXRsZT0iQ29weSBjb2RlIj4KICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY29weS1pY29uIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMCA2Ljc1QzAgNS43ODQuNzg0IDUgMS43NSA1aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTEuNWEuNzUuNzUgMCAwMTEuNSAwdjEuNUExLjc1IDEuNzUgMCAwMTkuMjUgMTZoLTcuNUExLjc1IDEuNzUgMCAwMTAgMTQuMjV2LTcuNXoiPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxLjc1QzUgLjc4NCA1Ljc4NCAwIDYuNzUgMGg3LjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djcuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDExaC03LjVBMS43NSAxLjc1IDAgMDE1IDkuMjV2LTcuNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10ZXh0Ij5Db3B5PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ib2R5Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVycyI+JHtvfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250ZW50Ij4KICAgICAgICAgICAgPHByZSBjbGFzcz0iY29kZS1wcmUiPjxjb2RlIGNsYXNzPSJjb2RlLWVkaXRvciIgCiAgICAgICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKHIpfTwvY29kZT48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idXR0b24iKSxsPWUucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLXNlbGVjdG9yIik7aWYoIXJ8fCFuKXJldHVybjtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZD0+e2xldCB1PWQudGFyZ2V0LnZhbHVlO3QubWV0YWRhdGE9ey4uLnQubWV0YWRhdGEsbGFuZ3VhZ2U6dX0sbi5zZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiLHUpLHQuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJnRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSx0KSxhLm9uSW5wdXQmJmEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSl9KSxvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IGQ9ci50ZXh0Q29udGVudHx8IiI7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGQpO2xldCB1PW8ucXVlcnlTZWxlY3RvcigiLmNvcHktdGV4dCIpLGM9dS50ZXh0Q29udGVudDt1LnRleHRDb250ZW50PSJDb3BpZWQhIixvLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PWMsby5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX1jYXRjaCh1KXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLHUpO2xldCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7Yy52YWx1ZT1kLGMuc3R5bGUucG9zaXRpb249ImZpeGVkIixjLnN0eWxlLm9wYWNpdHk9IjAiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyksYy5zZWxlY3QoKTt0cnl7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtsZXQgYj1vLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSx2PWIudGV4dENvbnRlbnQ7Yi50ZXh0Q29udGVudD0iQ29waWVkISIsby5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57Yi50ZXh0Q29udGVudD12LG8uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2goYil7Y29uc29sZS5lcnJvcigiRmFsbGJhY2sgY29weSBmYWlsZWQ6IixiKX1kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGMpfX0pO2xldCBwPSExO3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57cD0hMCxuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKTtsZXQgZD1yLnRleHRDb250ZW50fHwiIjtyLnRleHRDb250ZW50PWQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxjPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyLmZpcnN0Q2hpbGQmJih1LnNldFN0YXJ0KHIuZmlyc3RDaGlsZCwwKSx1LmNvbGxhcHNlKCEwKSxjPy5yZW1vdmVBbGxSYW5nZXMoKSxjPy5hZGRSYW5nZSh1KSl9KSxhLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntwPSExLG4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLHRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSx0KSxhLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZD0+e2Eub25JbnB1dChkKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpLGNsZWFyVGltZW91dCh0aGlzLmhpZ2hsaWdodFRpbWVyKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZD0+e2lmKGQua2V5PT09IlRhYiIpe2QucHJldmVudERlZmF1bHQoKTtsZXQgdT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYodSYmdS5yYW5nZUNvdW50PjApe2xldCBjPXUuZ2V0UmFuZ2VBdCgwKSxiPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgICIpO2MuaW5zZXJ0Tm9kZShiKSxjLnNldFN0YXJ0QWZ0ZXIoYiksYy5zZXRFbmRBZnRlcihiKSx1LnJlbW92ZUFsbFJhbmdlcygpLHUuYWRkUmFuZ2UoYyksYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpfXJldHVybn1pZihbIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIl0uaW5jbHVkZXMoZC5rZXkpKXtsZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpLGM9ci50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKGQua2V5PT09IkFycm93TGVmdCImJnU9PT0wfHxkLmtleT09PSJBcnJvd1JpZ2h0IiYmdT09PWMpe2Eub25LZXlEb3duKGQpO3JldHVybn1pZihkLmtleT09PSJBcnJvd1VwInx8ZC5rZXk9PT0iQXJyb3dEb3duIil7bGV0IGI9KHIudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLHY9dGhpcy5nZXRDdXJyZW50TGluZUluZGV4KHIpO2lmKGQua2V5PT09IkFycm93VXAiJiZ2PT09MHx8ZC5rZXk9PT0iQXJyb3dEb3duIiYmdj09PWIubGVuZ3RoLTEpe2Eub25LZXlEb3duKGQpO3JldHVybn19fWEub25LZXlEb3duKGQpfSksci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsZD0+e2QucHJldmVudERlZmF1bHQoKTtsZXQgdT1kLmNsaXBib2FyZERhdGE/LmdldERhdGEoInRleHQvcGxhaW4iKTtpZih1KXtsZXQgYz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoYyYmYy5yYW5nZUNvdW50PjApe2xldCBiPWMuZ2V0UmFuZ2VBdCgwKTtiLmRlbGV0ZUNvbnRlbnRzKCk7bGV0IHY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodSk7Yi5pbnNlcnROb2RlKHYpLGIuc2V0U3RhcnRBZnRlcih2KSxiLnNldEVuZEFmdGVyKHYpLGMucmVtb3ZlQWxsUmFuZ2VzKCksYy5hZGRSYW5nZShiKSxhLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSl9fX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PmEub25Db21wb3NpdGlvblN0YXJ0KCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT5hLm9uQ29tcG9zaXRpb25FbmQoKSksdC5jb250ZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHQpfSl9dXBkYXRlTGluZU51bWJlcnMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKSxhPWUucXVlcnlTZWxlY3RvcigiLmxpbmUtbnVtYmVycyIpO2lmKCF0fHwhYSlyZXR1cm47bGV0IG89KHQudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLmxlbmd0aHx8MSxsPSIiO2ZvcihsZXQgcD0xO3A8PW87cCsrKWwrPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtwfTwvZGl2PmA7YS5pbm5lckhUTUw9bH1nZXRDdXJyZW50TGluZUluZGV4KGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighdHx8dC5yYW5nZUNvdW50PT09MClyZXR1cm4gMDtsZXQgYT10LmdldFJhbmdlQXQoMCkscj1hLmNsb25lUmFuZ2UoKTtyZXR1cm4gci5zZWxlY3ROb2RlQ29udGVudHMoZSksci5zZXRFbmQoYS5zdGFydENvbnRhaW5lcixhLnN0YXJ0T2Zmc2V0KSxyLnRvU3RyaW5nKCkuc3BsaXQoYApgKS5sZW5ndGgtMX1hc3luYyBhcHBseUhpZ2hsaWdodGluZyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoIWEpcmV0dXJuO3RoaXMuaGlnaGxpZ2h0SnN8fCh0aGlzLmhpZ2hsaWdodEpzPWF3YWl0IFFyLmdldEluc3RhbmNlKCkubG9hZEhpZ2hsaWdodEpzKCkpO2xldCByPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSksbj1hLnRleHRDb250ZW50fHwiIixvPXQubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCI7dHJ5e2xldCBsPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KG4se2xhbmd1YWdlOm8saWdub3JlSWxsZWdhbHM6ITB9KTtsLnZhbHVlJiYoYS5pbm5lckhUTUw9bC52YWx1ZSxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YSYmciE9PW51bGwmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1N0LnNldEN1cnNvclBvc2l0aW9uKGEscil9KSl9Y2F0Y2gobCl7Y29uc29sZS53YXJuKCJTeW50YXggaGlnaGxpZ2h0aW5nIGZhaWxlZDoiLGwpfX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKT8udGV4dENvbnRlbnR8fCIifXNldENvbnRlbnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKGEmJihhLnRleHRDb250ZW50PXQsdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSkpe2xldCByPXtpZDphLmRhdGFzZXQuYmxvY2tJZHx8IiIsdHlwZToiY29kZSIsY29udGVudDp0LG1ldGFkYXRhOntsYW5ndWFnZTplLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiKXx8InR5cGVzY3JpcHQifX07dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHIpfX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCF0KXJldHVybiBudWxsO2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYXx8YS5yYW5nZUNvdW50PT09MClyZXR1cm4gbnVsbDtsZXQgcj1hLmdldFJhbmdlQXQoMCk7aWYoIXQuY29udGFpbnMoci5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IG49ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gbi5zZWxlY3ROb2RlQ29udGVudHModCksbi5zZXRFbmQoci5zdGFydENvbnRhaW5lcixyLnN0YXJ0T2Zmc2V0KSxuLnRvU3RyaW5nKCkubGVuZ3RofXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTt0JiZTdC5zZXRDdXJzb3JQb3NpdGlvbih0LDApfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYodCl7bGV0IGE9dC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO1N0LnNldEN1cnNvclBvc2l0aW9uKHQsYSl9fWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTthJiYoYS5mb2N1cygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgdD09Im51bWJlciImJlN0LnNldEN1cnNvclBvc2l0aW9uKGEsdCl9KSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYodD09PW51bGwpcmV0dXJuIG51bGw7bGV0IGE9dGhpcy5nZXRDb250ZW50KGUpO3JldHVybntiZWZvcmU6YS5zdWJzdHJpbmcoMCx0KSxhZnRlcjphLnN1YnN0cmluZyh0KX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBDb2RlIEJsb2NrIENvbnRhaW5lciAtIE1pbmltYWxpc3Qgc2hhZGNuIHN0eWxlICovCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyIC0gU2ltcGxpZmllZCAqLwogICAgICAuY29kZS1oZWFkZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvcHkgQnV0dG9uIC0gTWluaW1hbCAqLwogICAgICAuY29weS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbi5jb3BpZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmhvdmVyIC5jb3B5LWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LXRleHQgewogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQm9keSAqLwogICAgICAuY29kZS1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExpbmUgTnVtYmVycyAtIFN1YnRsZSAqLwogICAgICAubGluZS1udW1iZXJzIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBmb250LWZhbWlseTogJHskOH07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogQ29kZSBDb250ZW50ICovCiAgICAgIC5jb2RlLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXByZSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LWZhbWlseTogJHskOH07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuY29kZS1lZGl0b3I6ZW1wdHk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogIi8vIFR5cGUgb3IgcGFzdGUgY29kZSBoZXJlLi4uIjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBXaGVuIGVkaXRpbmcgKGZvY3VzZWQpLCBzaG93IGdyZXkgdGV4dCB3aXRob3V0IGhpZ2hsaWdodGluZyAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyAuY29kZS1lZGl0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX0gIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yICogewogICAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFN5bnRheCBIaWdobGlnaHRpbmcgLSBNdXRlZCBjb2xvcnMgKi8KICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWtleXdvcmQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXN0cmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLW51bWJlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWZ1bmN0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY29tbWVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy12YXJpYWJsZSwKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWF0dHIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jbGFzcywKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRpdGxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1wYXJhbXMgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWxpdGVyYWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1tZXRhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcHVuY3R1YXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNkMWQ1ZGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10YWcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyaWJ1dGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci10YWcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1jbGFzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWlkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTZWxlY3Rpb24gKi8KICAgICAgLmNvZGUtZWRpdG9yOjpzZWxlY3Rpb24sCiAgICAgIC5jb2RlLWVkaXRvciAqOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4yKSIsInJnYmEoOTksIDEwMiwgMjQxLCAwLjMpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAtIE1pbmltYWwgKi8KICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgVFgsczNhPWcoKCk9PntZbCgpO3BlKCk7aXUoKTtEZCgpO1RYPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiTGlzdEJsb2NrSGFuZGxlciIpfXR5cGU9Imxpc3QiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixuPShlLm1ldGFkYXRhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixvPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBsaXN0JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgPiR7b308L2Rpdj4KICAgIGB9cmVuZGVyTGlzdENvbnRlbnQoZSx0KXtpZighZSlyZXR1cm4iPHVsPjxsaT48L2xpPjwvdWw+IjtsZXQgcj0odD8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbj1lLnNwbGl0KGAKYCkuZmlsdGVyKGw9PmwudHJpbSgpKTtpZihuLmxlbmd0aD09PTApcmV0dXJuYDwke3J9PjxsaT48L2xpPjwvJHtyfT5gO2xldCBvPW4ubWFwKGw9PmA8bGk+JHtsfTwvbGk+YCkuam9pbigiIik7cmV0dXJuYDwke3J9PiR7b308LyR7cn0+YH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFyKXtjb25zb2xlLmVycm9yKCJMaXN0QmxvY2tIYW5kbGVyLnNldHVwOiBObyBsaXN0IGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59dC5jb250ZW50JiYhci5pbm5lckhUTUwmJihyLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHQuY29udGVudCx0Lm1ldGFkYXRhKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYobyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe2xldCBsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihsJiZsLnJhbmdlQ291bnQ+MCl7bGV0IGQ9bC5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYoZCYmZC50ZXh0Q29udGVudD09PSIiKXtuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24obik7cmV0dXJufX19YS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PVN0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT1TdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBMaXN0IHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2subGlzdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgdWwsCiAgICAgIC5ibG9jay5saXN0IG9sIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWR8fCFTdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHUuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLHUuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksdS50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybiIiO2xldCByPWEucXVlcnlTZWxlY3RvckFsbCgibGkiKTtyZXR1cm4gQXJyYXkuZnJvbShyKS5tYXAobz0+by50ZXh0Q29udGVudHx8IiIpLmpvaW4oYApgKX1zZXRDb250ZW50KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yLGw9ci5xdWVyeVNlbGVjdG9yKCJ1bCwgb2wiKT8udGFnTmFtZT09PSJPTCI7ci5pbm5lckhUTUw9dGhpcy5yZW5kZXJMaXN0Q29udGVudCh0LHtsaXN0VHlwZTpsPyJvcmRlcmVkIjoidW5vcmRlcmVkIn0pLG4mJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybjtsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoImxpIik7aWYocil7bGV0IG49dGhpcy5nZXRGaXJzdFRleHROb2RlKHIpO2lmKG4pe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7by5zZXRTdGFydChuLDApLG8uc2V0RW5kKG4sMCksbD8ucmVtb3ZlQWxsUmFuZ2VzKCksbD8uYWRkUmFuZ2Uobyl9fX1zZXRDdXJzb3JUb0VuZChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47bGV0IHI9YS5xdWVyeVNlbGVjdG9yKCJsaTpsYXN0LWNoaWxkIik7aWYocil7bGV0IG49dGhpcy5nZXRMYXN0VGV4dE5vZGUocik7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSxwPW4udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtvLnNldFN0YXJ0KG4scCksby5zZXRFbmQobixwKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShvKX19fWdldEZpcnN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD0wO3Q8ZS5jaGlsZE5vZGVzLmxlbmd0aDt0Kyspe2xldCBhPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IHQ9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3Q+PTA7dC0tKXtsZXQgYT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuO3IuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCk7bGV0IG49aSgoKT0+e3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiZ0aGlzLnNldEN1cnNvclRvRW5kKGUsYSl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0pfWdldFNwbGl0Q29udGVudChlLHQpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0IiksbnVsbH19fSk7dmFyICRYLGkzYT1nKCgpPT57WWwoKTtwZSgpOyRYPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiSW1hZ2VCbG9ja0hhbmRsZXIiKX10eXBlPSJpbWFnZSI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8udXJsLHI9ZS5jb250ZW50fHwiSW1hZ2UiLG49ZS5tZXRhZGF0YT8ubG9hZGluZztyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtaW1hZ2U9IiR7ISFhfSIKICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgJHtuP3RoaXMucmVuZGVyTG9hZGluZygpOmE/dGhpcy5yZW5kZXJJbWFnZShhLHIpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJpbWFnZS1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgYWNjZXB0PSJpbWFnZS8qIiAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiPgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1pY29uIiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIi8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41Ii8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIxIDE1IDE2IDEwIDUgMjEiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC10ZXh0IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5DbGljayB0byB1cGxvYWQgYW4gaW1hZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtaGludCIgc3R5bGU9InBvaW50ZXItZXZlbnRzOiBub25lOyI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVySW1hZ2UoZSx0KXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWNvbnRhaW5lciI+CiAgICAgICAgPGltZyBzcmM9IiR7ZX0iIGFsdD0iJHt0aGlzLmVzY2FwZUh0bWwodCl9IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTG9hZGluZygpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtbG9hZGluZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPlVwbG9hZGluZyBpbWFnZS4uLjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtZmlsZS1pbnB1dCIpO2lmKCFyKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgY29udGFpbmVyIik7cmV0dXJufWlmKCFuKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgZmlsZSBpbnB1dCIpO3JldHVybn1sZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBQbGFjZWhvbGRlciBjbGlja2VkLCBvcGVuaW5nIGZpbGUgc2VsZWN0b3IiKSxuLmNsaWNrKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2Eub25Gb2N1cygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGw9PntsZXQgZD1sLnRhcmdldC5maWxlcz8uWzBdO2QmJihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IEZpbGUgc2VsZWN0ZWQ6IixkLm5hbWUpLGF3YWl0IHRoaXMuaGFuZGxlRmlsZVVwbG9hZChkLHQsYSkpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLHQubWV0YWRhdGE/LnVybHx8ci5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IHA9bC5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO3AmJnAudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmIXQubWV0YWRhdGE/LnVybCYmYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKHAsdCxhKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57aWYoKGwua2V5PT09IkRlbGV0ZSJ8fGwua2V5PT09IkJhY2tzcGFjZSIpJiZ0Lm1ldGFkYXRhPy51cmwpe3QubWV0YWRhdGEudXJsPXZvaWQgMCx0Lm1ldGFkYXRhLmxvYWRpbmc9ITEsdC5jb250ZW50PSIiLGEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSk7cmV0dXJufWEub25LZXlEb3duKGwpfSl9YXN5bmMgaGFuZGxlRmlsZVVwbG9hZChlLHQsYSl7aWYoY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTdGFydGluZyBmaWxlIHVwbG9hZCIse2ZpbGVOYW1lOmUubmFtZSxmaWxlU2l6ZTplLnNpemUsYmxvY2tJZDp0LmlkfSksIWUudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6IixlLnR5cGUpO3JldHVybn1sZXQgcj0xMCoxMDI0KjEwMjQ7aWYoZS5zaXplPnIpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlLiBNYXhpbXVtIHNpemUgaXMgMTBNQiIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5sb2FkaW5nPSEwLHQubWV0YWRhdGEuZmlsZU5hbWU9ZS5uYW1lLHQubWV0YWRhdGEuZmlsZVNpemU9ZS5zaXplLHQubWV0YWRhdGEubWltZVR5cGU9ZS50eXBlLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogU2V0IGxvYWRpbmcgc3RhdGUsIHJlcXVlc3RpbmcgdXBkYXRlIiksYS5vblJlcXVlc3RVcGRhdGU/LigpO3RyeXtsZXQgbj1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwoZSk7dC5tZXRhZGF0YS51cmw9bix0Lm1ldGFkYXRhLmxvYWRpbmc9ITE7bGV0IG89ZS5uYW1lLnJlcGxhY2UoL1wuW14vLl0rJC8sIiIpO3QuY29udGVudD1vLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogVXBsb2FkIGNvbXBsZXRlLCByZXF1ZXN0aW5nIHVwZGF0ZSIse2hhc1VybDohIXQubWV0YWRhdGEudXJsLHVybExlbmd0aDpuLmxlbmd0aCxhbHRUZXh0OnQuY29udGVudH0pLGEub25SZXF1ZXN0VXBkYXRlPy4oKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBsb2FkIGltYWdlOiIsbiksdC5tZXRhZGF0YS5sb2FkaW5nPSExLGEub25SZXF1ZXN0VXBkYXRlPy4oKX19ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQsYSk9PntsZXQgcj1uZXcgRmlsZVJlYWRlcjtyLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/dChvKTphKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0sci5vbmVycm9yPWEsci5yZWFkQXNEYXRhVVJMKGUpfSl9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXQpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBhP3tpZDphLHR5cGU6ImltYWdlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSW1hZ2UgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogVXBsb2FkIFBsYWNlaG9sZGVyICovCiAgICAgIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXI6aG92ZXIgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsIiMxZTFiNGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaWNvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBJbWFnZSBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBMb2FkaW5nIFN0YXRlICovCiAgICAgIC5pbWFnZS1sb2FkaW5nIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIGlucHV0IGhpZGRlbiAqLwogICAgICAuaW1hZ2UtZmlsZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgfX19KTt2YXIgRFgscjNhPWcoKCk9PntZbCgpO3BlKCk7RFg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJZb3VUdWJlQmxvY2tIYW5kbGVyIil9dHlwZT0ieW91dHViZSI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8udmlkZW9JZCxyPWUubWV0YWRhdGE/LnVybHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtdmlkZW89IiR7ISFhfSI+CiAgICAgICAgJHthP3RoaXMucmVuZGVyVmlkZW8oYSk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihyKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaWNvbiI+CiAgICAgICAgICA8c3ZnIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTkuNjE1IDMuMTg0Yy0zLjYwNC0uMjQ2LTExLjYzMS0uMjQ1LTE1LjIzIDAtMy44OTcuMjY2LTQuMzU2IDIuNjItNC4zODUgOC44MTYuMDI5IDYuMTg1LjQ4NCA4LjU0OSA0LjM4NSA4LjgxNiAzLjYuMjQ1IDExLjYyNi4yNDYgMTUuMjMgMCAzLjg5Ny0uMjY2IDQuMzU2LTIuNjIgNC4zODUtOC44MTYtLjAyOS02LjE4NS0uNDg0LTguNTQ5LTQuMzg1LTguODE2em0tMTAuNjE1IDEyLjgxNnYtOGw4IDMuOTkzLTggNC4wMDd6Ii8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5FbnRlciBZb3VUdWJlIFVSTDwvZGl2PgogICAgICAgIDxpbnB1dCB0eXBlPSJ1cmwiIAogICAgICAgICAgICAgICBjbGFzcz0ieW91dHViZS11cmwtaW5wdXQiIAogICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PS4uLiIgCiAgICAgICAgICAgICAgIHZhbHVlPSIke3RoaXMuZXNjYXBlSHRtbChlKX0iIC8+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0ieW91dHViZS1lbWJlZC1idG4iPkVtYmVkIFZpZGVvPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJWaWRlbyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtY29udGFpbmVyIj4KICAgICAgICA8aWZyYW1lIAogICAgICAgICAgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2V9IgogICAgICAgICAgZnJhbWVib3JkZXI9IjAiCiAgICAgICAgICBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIKICAgICAgICAgIGFsbG93ZnVsbHNjcmVlbgogICAgICAgID48L2lmcmFtZT4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpO2lmKCFyKXJldHVybjtpZih0Lm1ldGFkYXRhPy52aWRlb0lkKXtyLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PnsobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJmwucHJldmVudERlZmF1bHQoKSxhLm9uS2V5RG93bihsKX0pO3JldHVybn1sZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpLG89ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1lbWJlZC1idG4iKTshbnx8IW98fChuLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLG8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5lbWJlZFZpZGVvKG4udmFsdWUsdCxhKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbD0+e2wua2V5PT09IkVudGVyIj8obC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZW1iZWRWaWRlbyhuLnZhbHVlLHQsYSkpOmwua2V5PT09IkVzY2FwZSImJihsLnByZXZlbnREZWZhdWx0KCksbi5ibHVyKCkpfSksbi5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsbD0+e3NldFRpbWVvdXQoKCk9PntsZXQgcD1uLnZhbHVlO3RoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKHApJiZ0aGlzLmVtYmVkVmlkZW8ocCx0LGEpfSwwKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEudXJsPW4udmFsdWV9KSl9ZW1iZWRWaWRlbyhlLHQsYSl7bGV0IHI9dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQoZSk7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgWW91VHViZSBVUkwiKTtyZXR1cm59dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEudmlkZW9JZD1yLHQubWV0YWRhdGEudXJsPWUsdC5jb250ZW50PWBZb3VUdWJlIFZpZGVvOiAke3J9YCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9ZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpe2xldCB0PVsvKD86eW91dHViZVwuY29tXC8oPzpbXlwvXStcLy4rXC98KD86dnxlKD86bWJlZCk/KVwvfC4qWz8mXXY9KXx5b3V0dVwuYmVcLykoW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL2VtYmVkXC8oW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL3dhdGNoXD92PShbXiImP1wvIF17MTF9KS8sL3lvdXR1XC5iZVwvKFteIiY/XC8gXXsxMX0pL107Zm9yKGxldCBhIG9mIHQpe2xldCByPWUubWF0Y2goYSk7aWYocilyZXR1cm4gclsxXX1yZXR1cm4gbnVsbH1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9dCl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gYT97aWQ6YSx0eXBlOiJ5b3V0dWJlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIiksYT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpO2E/YS5mb2N1cygpOnQmJnQuZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXt0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtyZXR1cm4gbnVsbH1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFlvdVR1YmUgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBQbGFjZWhvbGRlciAqLwogICAgICAueW91dHViZS1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMzJweCAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0biB7CiAgICAgICAgcGFkZGluZzogNnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5IGFzcGVjdCByYXRpbyAqLwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtY29udGFpbmVyIGlmcmFtZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CiAgICBgfX19KTt2YXIgTFgsbzNhPWcoKCk9PntZbCgpO3BlKCk7TFg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJBdHRhY2htZW50QmxvY2tIYW5kbGVyIil9dHlwZT0iYXR0YWNobWVudCI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWljb24iPlx1ezFGNENFfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+RmlsZSBBdHRhY2htZW50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtbGlzdCI+CiAgICAgICAgICAke2EubGVuZ3RoPjA/dGhpcy5yZW5kZXJGaWxlcyhhKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iYXR0YWNobWVudC1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgbXVsdGlwbGUgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgICAke2EubGVuZ3RoPjA/JzxidXR0b24gY2xhc3M9ImFkZC1tb3JlLWZpbGVzIj5BZGQgTW9yZSBGaWxlczwvYnV0dG9uPic6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaGludCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZXMoZSl7cmV0dXJuIGUubWFwKHQ9PmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBkYXRhLWZpbGUtaWQ9IiR7dC5pZH0iPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaWNvbiI+JHt0aGlzLmdldEZpbGVJY29uKHQudHlwZSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSI+JHt0aGlzLmVzY2FwZUh0bWwodC5uYW1lKX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKHQuc2l6ZSl9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWZpbGUiIGRhdGEtZmlsZS1pZD0iJHt0LmlkfSI+XHhENzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGApLmpvaW4oIiIpfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1maWxlLWlucHV0Iik7aWYoIXJ8fCFuKXtjb25zb2xlLmVycm9yKCJBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5maWxlc3x8KHQubWV0YWRhdGEuZmlsZXM9W10pO2xldCBvPXIucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSk7bGV0IGw9ci5xdWVyeVNlbGVjdG9yKCIuYWRkLW1vcmUtZmlsZXMiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIHA9PntsZXQgZD1wLnRhcmdldCx1PWQuZmlsZXM7dSYmdS5sZW5ndGg+MCYmKGF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKHUsdCxhKSxkLnZhbHVlPSIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHA9PntsZXQgZD1wLnRhcmdldDtpZihkLmNsYXNzTGlzdC5jb250YWlucygicmVtb3ZlLWZpbGUiKSl7cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHU9ZC5nZXRBdHRyaWJ1dGUoImRhdGEtZmlsZS1pZCIpO3UmJnRoaXMucmVtb3ZlRmlsZSh1LHQsYSl9fSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIscD0+e3AucHJldmVudERlZmF1bHQoKSxwLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIscD0+e3AucHJldmVudERlZmF1bHQoKSxwLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIHA9PntwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBkPXAuZGF0YVRyYW5zZmVyPy5maWxlcztkJiZkLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhkLHQsYSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscD0+e2lmKChwLmtleT09PSJEZWxldGUifHxwLmtleT09PSJCYWNrc3BhY2UiKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXImJnQubWV0YWRhdGE/LmZpbGVzPy5sZW5ndGg+MCl7cC5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuZmlsZXM9W10sYS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1hLm9uS2V5RG93bihwKX0pfWFzeW5jIGhhbmRsZUZpbGVBdHRhY2htZW50cyhlLHQsYSl7dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEuZmlsZXN8fCh0Lm1ldGFkYXRhLmZpbGVzPVtdKTtmb3IobGV0IHIgb2YgQXJyYXkuZnJvbShlKSl0cnl7bGV0IG49YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKHIpLG89e2lkOnRoaXMuZ2VuZXJhdGVJZCgpLG5hbWU6ci5uYW1lLHNpemU6ci5zaXplLHR5cGU6ci50eXBlLGRhdGE6bn07dC5tZXRhZGF0YS5maWxlcy5wdXNoKG8pfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBhdHRhY2ggZmlsZToiLHIubmFtZSxuKX10LmNvbnRlbnQ9YCR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke3QubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9cmVtb3ZlRmlsZShlLHQsYSl7dC5tZXRhZGF0YT8uZmlsZXMmJih0Lm1ldGFkYXRhLmZpbGVzPXQubWV0YWRhdGEuZmlsZXMuZmlsdGVyKHI9PnIuaWQhPT1lKSx0LmNvbnRlbnQ9dC5tZXRhZGF0YS5maWxlcy5sZW5ndGg+MD9gJHt0Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgOiIiLGEub25SZXF1ZXN0VXBkYXRlPy4oKSl9ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQsYSk9PntsZXQgcj1uZXcgRmlsZVJlYWRlcjtyLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/dChvKTphKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0sci5vbmVycm9yPWEsci5yZWFkQXNEYXRhVVJMKGUpfSl9Z2V0RmlsZUljb24oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiaW1hZ2UvIik/Ilx1ezFGNUJDfVx1RkUwRiI6ZS5zdGFydHNXaXRoKCJ2aWRlby8iKT8iXHV7MUYzQTV9IjplLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJcdXsxRjNCNX0iOmUuaW5jbHVkZXMoInBkZiIpPyJcdXsxRjRDNH0iOmUuaW5jbHVkZXMoInppcCIpfHxlLmluY2x1ZGVzKCJyYXIiKXx8ZS5pbmNsdWRlcygidGFyIik/Ilx1ezFGNUM0fVx1RkUwRiI6ZS5pbmNsdWRlcygic2hlZXQiKT8iXHV7MUY0Q0F9IjplLmluY2x1ZGVzKCJkb2N1bWVudCIpfHxlLmluY2x1ZGVzKCJtc3dvcmQiKT8iXHV7MUY0RER9IjplLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iXHV7MUY0Q0J9IjplLmluY2x1ZGVzKCJ0ZXh0Iik/Ilx1ezFGNEMzfSI6Ilx1ezFGNEMxfSJ9Zm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCB0PTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scj1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHQpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyh0LHIpKS50b0ZpeGVkKDIpKSsiICIrYVtyXX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGZpbGUtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXQpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiYXR0YWNobWVudCIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuYXR0YWNobWVudC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIExpc3QgKi8KICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBJdGVtcyAqLwogICAgICAuYXR0YWNobWVudC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1zaXplIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCIjOTkxYjFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmY2E1YTUiLCIjZGMyNjI2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmY2E1YTUiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqLwogICAgICAuYWRkLW1vcmUtZmlsZXMgewogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgIH0KICAgICAgCiAgICAgIC5hZGQtbW9yZS1maWxlczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIaWRkZW4gZmlsZSBpbnB1dCAqLwogICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBFWCxuM2E9ZygoKT0+e1lsKCk7cGUoKTtFWD1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIkRpdmlkZXJCbG9ja0hhbmRsZXIiKX10eXBlPSJkaXZpZGVyIjtyZW5kZXIoZSx0KXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIGRpdmlkZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IiBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIgdGFiaW5kZXg9IjAiPgogICAgICAgIDxocj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5kaXZpZGVyIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntuLnN0b3BQcm9wYWdhdGlvbigpLHIuZm9jdXMoKSxhLm9uRm9jdXM/LigpfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXM/LigpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyPy4oKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+eyhuLmtleT09PSJCYWNrc3BhY2UifHxuLmtleT09PSJEZWxldGUiKSYmbi5wcmV2ZW50RGVmYXVsdCgpLGEub25LZXlEb3duPy4obil9KSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suZGl2aWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlci5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4yKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlciBociB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgfX19KTt2YXIgUFgsbDNhPWcoKCk9PntZbCgpO3BlKCk7UFg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJNYXJrZG93bkJsb2NrSGFuZGxlciIpfXR5cGU9Im1hcmtkb3duIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxyPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taWNvbiI+TVx1MjE5MzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tdGl0bGUiPk1hcmtkb3duPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXJrZG93bi10b2dnbGUtbW9kZSIgdGl0bGU9IiR7YT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7YT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPgogICAgICAgICAgJHthP3RoaXMucmVuZGVyRWRpdG9yKHIpOnRoaXMucmVuZGVyUHJldmlldyhyKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckVkaXRvcihlKXtyZXR1cm5gCiAgICAgIDx0ZXh0YXJlYSBjbGFzcz0ibWFya2Rvd24tZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBtYXJrZG93biBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1wcmV2aWV3Ij4KICAgICAgICAke3RoaXMucGFyc2VNYXJrZG93bihlKXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi10b2dnbGUtbW9kZSIpO2lmKCFyfHwhbil7Y29uc29sZS5lcnJvcigiTWFya2Rvd25CbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJih0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPXIucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2wmJih0LmNvbnRlbnQ9bC52YWx1ZSl9dC5tZXRhZGF0YS5pc0VkaXRNb2RlPSF0Lm1ldGFkYXRhLmlzRWRpdE1vZGUsYS5vblJlcXVlc3RVcGRhdGU/LigpfSksdC5tZXRhZGF0YS5pc0VkaXRNb2RlP3RoaXMuc2V0dXBFZGl0b3IoZSx0LGEpOnRoaXMuc2V0dXBQcmV2aWV3KGUsdCxhKX1zZXR1cEVkaXRvcihlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0LmNvbnRlbnQ9ci52YWx1ZX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2lmKG4ua2V5PT09IlRhYiIpe24ucHJldmVudERlZmF1bHQoKTtsZXQgbz1yLnNlbGVjdGlvblN0YXJ0LGw9ci5zZWxlY3Rpb25FbmQscD1yLnZhbHVlO2lmKG4uc2hpZnRLZXkpe2xldCBjPXAuc3Vic3RyaW5nKDAsbykubGFzdEluZGV4T2YoYApgKSsxLGI9cC5zdWJzdHJpbmcoYyxvKTtiLnN0YXJ0c1dpdGgoIiAgIikmJihyLnZhbHVlPXAuc3Vic3RyaW5nKDAsYykrYi5zdWJzdHJpbmcoMikrcC5zdWJzdHJpbmcobyksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vLTIpfWVsc2Ugci52YWx1ZT1wLnN1YnN0cmluZygwLG8pKyIgICIrcC5zdWJzdHJpbmcobCksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vKzI7dC5jb250ZW50PXIudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImIiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKHIsIioqIiwiKioiKSx0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKG4uY3RybEtleXx8bi5tZXRhS2V5KSYmbi5rZXk9PT0iaSIpe24ucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24ociwiXyIsIl8iKSx0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKG4uY3RybEtleXx8bi5tZXRhS2V5KSYmbi5rZXk9PT0iayIpe24ucHJldmVudERlZmF1bHQoKSx0aGlzLmluc2VydExpbmsociksdC5jb250ZW50PXIudmFsdWU7cmV0dXJufWEub25LZXlEb3duKG4pfSksdGhpcy5hdXRvUmVzaXplKHIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUocikpKX1zZXR1cFByZXZpZXcoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpOyFyfHwhbnx8KG4uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxuLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2lmKG8ua2V5PT09IkVudGVyIiYmIW8uc2hpZnRLZXkpe28ucHJldmVudERlZmF1bHQoKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITAsYS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1hLm9uS2V5RG93bihvKX0pKX13cmFwU2VsZWN0aW9uKGUsdCxhKXtsZXQgcj1lLnNlbGVjdGlvblN0YXJ0LG49ZS5zZWxlY3Rpb25FbmQsbz1lLnZhbHVlLnN1YnN0cmluZyhyLG4pLGw9dCsob3x8InRleHQiKSthO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCxyKStsK2UudmFsdWUuc3Vic3RyaW5nKG4pLG8/KGUuc2VsZWN0aW9uU3RhcnQ9cixlLnNlbGVjdGlvbkVuZD1yK2wubGVuZ3RoKTooZS5zZWxlY3Rpb25TdGFydD1yK3QubGVuZ3RoLGUuc2VsZWN0aW9uRW5kPXIrdC5sZW5ndGgrNCksZS5mb2N1cygpfWluc2VydExpbmsoZSl7bGV0IHQ9ZS5zZWxlY3Rpb25TdGFydCxhPWUuc2VsZWN0aW9uRW5kLG49ZS52YWx1ZS5zdWJzdHJpbmcodCxhKXx8ImxpbmsgdGV4dCIsbz1gWyR7bn1dKHVybClgO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCx0KStvK2UudmFsdWUuc3Vic3RyaW5nKGEpLGUuc2VsZWN0aW9uU3RhcnQ9dCtuLmxlbmd0aCszLGUuc2VsZWN0aW9uRW5kPXQrbi5sZW5ndGgrNixlLmZvY3VzKCl9YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In1wYXJzZU1hcmtkb3duKGUpe2xldCB0PXRoaXMuZXNjYXBlSHRtbChlKTtyZXR1cm4gdD10LnJlcGxhY2UoL14jIyMgKC4rKSQvZ20sIjxoMz4kMTwvaDM+IiksdD10LnJlcGxhY2UoL14jIyAoLispJC9nbSwiPGgyPiQxPC9oMj4iKSx0PXQucmVwbGFjZSgvXiMgKC4rKSQvZ20sIjxoMT4kMTwvaDE+IiksdD10LnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9fXyguKz8pX18vZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSx0PXQucmVwbGFjZSgvXyguKz8pXy9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC9gYGAoW1xzXFNdKj8pYGBgL2csIjxwcmU+PGNvZGU+JDE8L2NvZGU+PC9wcmU+IiksdD10LnJlcGxhY2UoL2AoLis/KWAvZywiPGNvZGU+JDE8L2NvZGU+IiksdD10LnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIj4kMTwvYT4nKSx0PXQucmVwbGFjZSgvXlwqICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC9eLSAoLispJC9nbSwiPGxpPiQxPC9saT4iKSx0PXQucmVwbGFjZSgvXlxkK1wuICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZyxhPT4iPHVsPiIrYSsiPC91bD4iKSx0PXQucmVwbGFjZSgvXG5cbi9nLCI8L3A+PHA+IiksdD0iPHA+Iit0KyI8L3A+Iix0PXQucmVwbGFjZSgvPHA+PFwvcD4vZywiIiksdD10LnJlcGxhY2UoLzxwPig8aFsxLTNdPikvZywiJDEiKSx0PXQucmVwbGFjZSgvKDxcL2hbMS0zXT4pPFwvcD4vZywiJDEiKSx0PXQucmVwbGFjZSgvPHA+KDx1bD4pL2csIiQxIiksdD10LnJlcGxhY2UoLyg8XC91bD4pPFwvcD4vZywiJDEiKSx0PXQucmVwbGFjZSgvPHA+KDxwcmU+KS9nLCIkMSIpLHQ9dC5yZXBsYWNlKC8oPFwvcHJlPik8XC9wPi9nLCIkMSIpLHR9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYodClyZXR1cm4gdC52YWx1ZTtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2EmJihhLnZhbHVlPXQsdGhpcy5hdXRvUmVzaXplKGEpKX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyZXR1cm4gdD90LnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTt0Pyh0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPTAsdC5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKHQpe2xldCBhPXQudmFsdWUubGVuZ3RoO3Quc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9YSx0LmZvY3VzKCl9ZWxzZSB0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3Q/dC5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTthP3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgdD09Im51bWJlciImJihhLnNlbGVjdGlvblN0YXJ0PWEuc2VsZWN0aW9uRW5kPXQsYS5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZighdClyZXR1cm4gbnVsbDtsZXQgYT10LnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6dC52YWx1ZS5zdWJzdHJpbmcoMCxhKSxhZnRlcjp0LnZhbHVlLnN1YnN0cmluZyhhKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBNYXJrZG93biBCbG9jayBDb250YWluZXIgKi8KICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLm1hcmtkb3duLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvbnRlbnQgKi8KICAgICAgLm1hcmtkb3duLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5tYXJrZG93bi1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWVkaXRvcjo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFByZXZpZXcgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogTWFya2Rvd24gcHJldmlldyBzdHlsZXMgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTZweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgyIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE0cHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxMnB4IDAgNHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgdWwsCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IG9sIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBzdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgZW0gewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgSVgsYzNhPWcoKCk9PntZbCgpO3BlKCk7SVg9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJIdG1sQmxvY2tIYW5kbGVyIil9dHlwZT0iaHRtbCI7cmVuZGVyKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAscj1lLmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWljb24iPiZsdDsvJmd0OzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC10aXRsZSI+SFRNTDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaHRtbC10b2dnbGUtbW9kZSIgdGl0bGU9IiR7YT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7YT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtY29udGVudCI+CiAgICAgICAgICAke2E/dGhpcy5yZW5kZXJFZGl0b3Iocik6dGhpcy5yZW5kZXJQcmV2aWV3KHIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJodG1sLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgSFRNTCBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLXByZXZpZXciPgogICAgICAgICR7ZXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtdG9nZ2xlLW1vZGUiKTtpZighcnx8IW4pe2NvbnNvbGUuZXJyb3IoIkh0bWxCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJih0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPXIucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7bCYmKHQuY29udGVudD1sLnZhbHVlKX10Lm1ldGFkYXRhLmlzRWRpdE1vZGU9IXQubWV0YWRhdGEuaXNFZGl0TW9kZSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLHQsYSk6dGhpcy5zZXR1cFByZXZpZXcoZSx0LGEpfXNldHVwRWRpdG9yKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3ImJihyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dC5jb250ZW50PXIudmFsdWUsdGhpcy52YWxpZGF0ZUh0bWwoci52YWx1ZSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89ci5zZWxlY3Rpb25TdGFydCxsPXIuc2VsZWN0aW9uRW5kLHA9ci52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgYz1wLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxiPXAuc3Vic3RyaW5nKGMsbyk7Yi5zdGFydHNXaXRoKCIgICIpJiYoci52YWx1ZT1wLnN1YnN0cmluZygwLGMpK2Iuc3Vic3RyaW5nKDIpK3Auc3Vic3RyaW5nKG8pLHIuc2VsZWN0aW9uU3RhcnQ9ci5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIHIudmFsdWU9cC5zdWJzdHJpbmcoMCxvKSsiICAiK3Auc3Vic3RyaW5nKGwpLHIuc2VsZWN0aW9uU3RhcnQ9ci5zZWxlY3Rpb25FbmQ9bysyO3QuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSIvIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXV0b0Nsb3NlVGFnKHIpLHQuY29udGVudD1yLnZhbHVlO3JldHVybn1hLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShyKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKHIpKSl9c2V0dXBQcmV2aWV3KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik7IXJ8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKG8pfSksdGhpcy5zYW5kYm94Q29udGVudChuKSl9YXV0b0Nsb3NlVGFnKGUpe2xldCB0PWUuc2VsZWN0aW9uU3RhcnQsYT1lLnZhbHVlLHI9dDtmb3IoO3I+MCYmYVtyLTFdIT09IjwiOylyLS07aWYocj4wKXtsZXQgbz1hLnN1YnN0cmluZyhyLHQpLm1hdGNoKC9eKFx3KykvKTtpZihvKXtsZXQgcD1gPC8ke29bMV19PmA7ZS52YWx1ZT1hLnN1YnN0cmluZygwLHQpKyI+IitwK2Euc3Vic3RyaW5nKHQpLGUuc2VsZWN0aW9uU3RhcnQ9ZS5zZWxlY3Rpb25FbmQ9dCsxfX19YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In12YWxpZGF0ZUh0bWwoZSl7bGV0IHQ9W10sYT0vPFwvPyhbYS16QS1aXVthLXpBLVowLTldKilcYltePl0qPi9nLHI7Zm9yKDsocj1hLmV4ZWMoZSkpIT09bnVsbDspe2xldCBuPXJbMF0uc3RhcnRzV2l0aCgiPC8iKSxvPXJbMV0udG9Mb3dlckNhc2UoKTtpZihuKXtpZih0Lmxlbmd0aD09PTB8fHRbdC5sZW5ndGgtMV0hPT1vKXJldHVybiBjb25zb2xlLndhcm4oYE1pc21hdGNoZWQgY2xvc2luZyB0YWc6ICR7b31gKSwhMTt0LnBvcCgpfWVsc2UgclswXS5lbmRzV2l0aCgiLz4iKXx8dC5wdXNoKG8pfXJldHVybiB0Lmxlbmd0aD4wPyhjb25zb2xlLndhcm4oYFVuY2xvc2VkIHRhZ3M6ICR7dC5qb2luKCIsICIpfWApLCExKTohMH1zYW5kYm94Q29udGVudChlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpLmZvckVhY2gobj0+bi5yZW1vdmUoKSksZS5xdWVyeVNlbGVjdG9yQWxsKCIqIikuZm9yRWFjaChuPT57QXJyYXkuZnJvbShuLmF0dHJpYnV0ZXMpLmZvckVhY2gobz0+e28ubmFtZS5zdGFydHNXaXRoKCJvbiIpJiZuLnJlbW92ZUF0dHJpYnV0ZShvLm5hbWUpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKS5mb3JFYWNoKG49PntuLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpfSl9KX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKHQpcmV0dXJuIHQudmFsdWU7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YSYmKGEudmFsdWU9dCx0aGlzLmF1dG9SZXNpemUoYSkpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cmV0dXJuIHQ/dC5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTt0Pyh0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPTAsdC5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYodCl7bGV0IGE9dC52YWx1ZS5sZW5ndGg7dC5zZWxlY3Rpb25TdGFydD10LnNlbGVjdGlvbkVuZD1hLHQuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTt0P3QuZm9jdXMoKTplLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiB0PT0ibnVtYmVyIiYmKGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9dCxhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGE9dC5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnQudmFsdWUuc3Vic3RyaW5nKDAsYSksYWZ0ZXI6dC52YWx1ZS5zdWJzdHJpbmcoYSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSFRNTCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5odG1sLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAuaHRtbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAuaHRtbC1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAuaHRtbC1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNhbmRib3hlZCBIVE1MIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5odG1sLXByZXZpZXcgKiB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGltZyB7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGgsCiAgICAgIC5odG1sLXByZXZpZXcgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgfX19KTt2YXIgcGl0PWcoKCk9PntZbCgpO08wYSgpO0YwYSgpO0IwYSgpO0gwYSgpO3EwYSgpO2EzYSgpO3MzYSgpO2kzYSgpO3IzYSgpO28zYSgpO24zYSgpO2wzYSgpO2MzYSgpfSk7ZnVuY3Rpb24gZDNhKCl7SXMucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyBFWCksSXMucmVnaXN0ZXIoInBhcmFncmFwaCIsbmV3IFBaKSxJcy5yZWdpc3RlcigiaGVhZGluZy0xIixuZXcgcTgoImhlYWRpbmctMSIpKSxJcy5yZWdpc3RlcigiaGVhZGluZy0yIixuZXcgcTgoImhlYWRpbmctMiIpKSxJcy5yZWdpc3RlcigiaGVhZGluZy0zIixuZXcgcTgoImhlYWRpbmctMyIpKSxJcy5yZWdpc3RlcigicXVvdGUiLG5ldyBJWiksSXMucmVnaXN0ZXIoImNvZGUiLG5ldyBDWCksSXMucmVnaXN0ZXIoImxpc3QiLG5ldyBUWCksSXMucmVnaXN0ZXIoImltYWdlIixuZXcgJFgpLElzLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgRFgpLElzLnJlZ2lzdGVyKCJhdHRhY2htZW50IixuZXcgTFgpLElzLnJlZ2lzdGVyKCJtYXJrZG93biIsbmV3IFBYKSxJcy5yZWdpc3RlcigiaHRtbCIsbmV3IElYKX12YXIgaGl0PWcoKCk9PntwaXQoKTtpKGQzYSwicmVnaXN0ZXJBbGxCbG9ja0hhbmRsZXJzIiksZDNhKCl9KTt2YXIgQVgsZml0PWcoKCk9PntwZSgpO0owKCk7TWwoKTtCOCgpO05uZSgpO0FYPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdNb2RhbE1hbmFnZXIiKX1zdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2xldCB0PW51bGw7UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OndgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChhPT53YAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke3Q9PT1hLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0PWEudG9Mb3dlckNhc2UoKTtsZXQgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7ciYmdHlwZW9mIHIuZGVzdHJveT09ImZ1bmN0aW9uIiYmci5kZXN0cm95KCksZSh0KX19Ij4KICAgICAgICAgICAgICAgICAgJHthfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgYT0+e2EuZGVzdHJveSgpLGUobnVsbCl9LCJhY3Rpb24iKX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbChlLHQpe2xldCBhPXdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKGUsdCl9CiAgICAgICAgJHtlLnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyhlLHQpOiIifQogICAgICA8L2Rpdj4KICAgIGA7UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6YSxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjppKGFzeW5jIHI9PntyLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAocj0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7YT09PXIudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57ZS5tZXRhZGF0YXx8KGUubWV0YWRhdGE9e30pLGUubWV0YWRhdGEubGFuZ3VhZ2U9ci50b0xvd2VyQ2FzZSgpLHQoZSk7bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO24mJnR5cGVvZiBuLmRlc3Ryb3k9PSJmdW5jdGlvbiImJm4uZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3J9IgogICAgICAgICAgICA+JHtyfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLkxaXX1zdGF0aWMgZ2V0QmxvY2tUeXBlU2VsZWN0b3IoZSx0KXtsZXQgYT1jci5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihyPT5yLnR5cGUhPT0iZGl2aWRlciIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+QmxvY2sgVHlwZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrLXR5cGUtZ3JpZCI+CiAgICAgICAgICAke2EubWFwKHI9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9ImJsb2NrLXR5cGUtYnV0dG9uICR7ZS50eXBlPT09ci50eXBlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0iJHthc3luYyBuPT57bGV0IG89bi5jdXJyZW50VGFyZ2V0LGw9ZS50eXBlO2lmKGUudHlwZT1yLnR5cGUsbD09PSJjb2RlIiYmZS50eXBlIT09ImNvZGUiKWRlbGV0ZSBlLm1ldGFkYXRhPy5sYW5ndWFnZTtlbHNlIGlmKGw9PT0ibGlzdCImJmUudHlwZSE9PSJsaXN0IilkZWxldGUgZS5tZXRhZGF0YT8ubGlzdFR5cGU7ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCImJiFlLm1ldGFkYXRhPy5saXN0VHlwZSllLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In07ZWxzZSBpZihlLnR5cGU9PT0iY29kZSImJiFlLm1ldGFkYXRhPy5sYW5ndWFnZSl7bGV0IGQ9YXdhaXQgdGhpcy5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO2lmKGQpZS5tZXRhZGF0YT17bGFuZ3VhZ2U6ZH07ZWxzZXtlLnR5cGU9bDtyZXR1cm59fXQoZSk7bGV0IHA9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO3AmJnR5cGVvZiBwLmRlc3Ryb3k9PSJmdW5jdGlvbiImJnAuZGVzdHJveSgpfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmxvY2stdHlwZS1pY29uIj4ke3IuaWNvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+JHtyLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX19KTt2YXIgTlgsdTNhPWcoKCk9PntNbCgpO2d2KCk7QjgoKTtpdSgpO2N0dCgpO2ZpdCgpO05YPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdJbnB1dEhhbmRsZXIiKX1jb21wb25lbnQ7c2F2ZVRpbWVvdXQ9bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWhhbmRsZUJsb2NrSW5wdXQoZSx0KXtpZih0aGlzLmNvbXBvbmVudC5pc0NvbXBvc2luZylyZXR1cm47bGV0IGE9ZS50YXJnZXQscj1hLnRleHRDb250ZW50fHwiIixuPXRoaXMuZGV0ZWN0QmxvY2tUeXBlSW50ZW50KHIpO2lmKG4mJm4udHlwZSE9PXQudHlwZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbih0LG4sYSk7cmV0dXJufXRoaXMuaGFuZGxlU2xhc2hDb21tYW5kKHIsYSksdGhpcy5zY2hlZHVsZUF1dG9TYXZlKCl9dXBkYXRlQmxvY2tDb250ZW50KGUsdCl7bGV0IHI9dC5jbG9zZXN0KCIuYmxvY2std3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihyKXtsZXQgbj1yLmdldENvbnRlbnQoKTtpZihlLmNvbnRlbnQhPT1uJiYoZS5jb250ZW50PW4pLGUudHlwZT09PSJsaXN0Iil7bGV0IG89dC5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtvJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6by50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfX1lbHNlIGlmKGUudHlwZT09PSJsaXN0Iil7bGV0IG49dC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO2UuY29udGVudD1BcnJheS5mcm9tKG4pLm1hcChsPT5sLmlubmVySFRNTHx8IiIpLmpvaW4oYApgKTtsZXQgbz10LnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO28mJihlLm1ldGFkYXRhPXtsaXN0VHlwZTpvLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9ZWxzZSBlLnR5cGU9PT0iY29kZSI/ZS5jb250ZW50PXQudGV4dENvbnRlbnR8fCIiOmUuY29udGVudD10LmlubmVySFRNTHx8IiJ9ZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGUpe2xldCB0PWNyLmNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IGE9Y3IuY2hlY2tMaXN0U2hvcnRjdXQoZSk7cmV0dXJuIGF8fChjci5jaGVja1F1b3RlU2hvcnRjdXQoZSk/e3R5cGU6InF1b3RlIn06Y3IuY2hlY2tDb2RlU2hvcnRjdXQoZSk/e3R5cGU6ImNvZGUifTpjci5jaGVja0RpdmlkZXJTaG9ydGN1dChlKT97dHlwZToiZGl2aWRlciJ9Om51bGwpfWFzeW5jIGhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oZSx0LGEpe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZih0LnR5cGU9PT0ibGlzdCIpe2UudHlwZT0ibGlzdCIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xpc3RUeXBlOnQubGlzdFR5cGV9O2xldCBuPXQubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO2EuaW5uZXJIVE1MPWA8JHtufT48bGk+PC9saT48LyR7bn0+YCx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KCgpPT57Q28uZm9jdXNMaXN0SXRlbShhKX0sMCl9ZWxzZSBpZih0LnR5cGU9PT0iZGl2aWRlciIpe2UudHlwZT0iZGl2aWRlciIsZS5jb250ZW50PSIgIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCk7bGV0IG49ci5jcmVhdGVCbG9jaygpO3IuaW5zZXJ0QmxvY2tBZnRlcihlLG4pLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZSBpZih0LnR5cGU9PT0iY29kZSIpe2xldCBuPWF3YWl0IEFYLnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7biYmKGUudHlwZT0iY29kZSIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xhbmd1YWdlOm59LGEudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgci5mb2N1c0Jsb2NrKGUuaWQsInN0YXJ0Iil9LDUwKSl9ZWxzZSBlLnR5cGU9dC50eXBlLGUuY29udGVudD0iIixhLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHIuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCl9aGFuZGxlU2xhc2hDb21tYW5kKGUsdCl7bGV0IGE9dGhpcy5jb21wb25lbnQuc2xhc2hNZW51LHI9YSYmYS52aXNpYmxlO2lmKGU9PT0iLyJ8fGUuc3RhcnRzV2l0aCgiLyIpJiZyKXtpZighciYmZT09PSIvIil7bGV0IG49dGhpcy5nZXRDYXJldENvb3JkaW5hdGVzKHQpO2Euc2hvdyh7eDpuLmxlZnQseTpuLmJvdHRvbSs0fSxvPT57dGhpcy5jb21wb25lbnQuaW5zZXJ0QmxvY2sobyl9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmdC5mb2N1cygpfSl9YSYmYS51cGRhdGVGaWx0ZXIoZS5zbGljZSgxKSl9ZWxzZSBlLnN0YXJ0c1dpdGgoIi8iKXx8dGhpcy5jb21wb25lbnQuY2xvc2VTbGFzaE1lbnUoKX1nZXRDYXJldENvb3JkaW5hdGVzKGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZih0JiZ0LnJhbmdlQ291bnQ+MCl7bGV0IHI9dC5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHIud2lkdGg+MHx8ci5oZWlnaHQ+MClyZXR1cm4gcn1yZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1zY2hlZHVsZUF1dG9TYXZlKCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpLCEodGhpcy5jb21wb25lbnQuc2xhc2hNZW51JiZ0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSkmJih0aGlzLnNhdmVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN5bmNBbGxCbG9ja0NvbnRlbnQoKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfSwyZTMpKX1zeW5jQWxsQmxvY2tDb250ZW50KCl7dGhpcy5jb21wb25lbnQuYmxvY2tzLmZvckVhY2goZT0+e2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoYSYmYS5nZXRDb250ZW50KXtsZXQgcj1hLmdldENvbnRlbnQoKTtlLmNvbnRlbnQhPT1yJiYoZS5jb250ZW50PXIpfX0pfWRlc3Ryb3koKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCl9fX0pO3ZhciBSWCxwM2E9ZygoKT0+e01sKCk7Z3YoKTtEZCgpO1JYPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdLZXlib2FyZEhhbmRsZXIiKX1jb21wb25lbnQ7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1hc3luYyBoYW5kbGVCbG9ja0tleURvd24oZSx0KXtpZih0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5pc1NsYXNoTWVudUtleShlLmtleSkpe3RoaXMuY29tcG9uZW50LmhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGUpO3JldHVybn1pZighdGhpcy5oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpKXN3aXRjaChlLmtleSl7Y2FzZSJUYWIiOnRoaXMuaGFuZGxlVGFiKGUsdCk7YnJlYWs7Y2FzZSJFbnRlciI6YXdhaXQgdGhpcy5oYW5kbGVFbnRlcihlLHQpO2JyZWFrO2Nhc2UiQmFja3NwYWNlIjphd2FpdCB0aGlzLmhhbmRsZUJhY2tzcGFjZShlLHQpO2JyZWFrO2Nhc2UiRGVsZXRlIjphd2FpdCB0aGlzLmhhbmRsZURlbGV0ZShlLHQpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1VwKGUsdCk7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dEb3duKGUsdCk7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dMZWZ0KGUsdCk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93UmlnaHQoZSx0KTticmVha319aXNTbGFzaE1lbnVLZXkoZSl7cmV0dXJuWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiRW50ZXIiLCJFc2NhcGUiXS5pbmNsdWRlcyhlKX1oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpe2lmKCEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpKXJldHVybiExO3N3aXRjaChlLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlImIiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImJvbGQiKSksITA7Y2FzZSJpIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJpdGFsaWMiKSksITA7Y2FzZSJ1IjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJ1bmRlcmxpbmUiKSksITA7Y2FzZSJrIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJsaW5rIikpLCEwfXJldHVybiExfWhhbmRsZVRhYihlLHQpe3QudHlwZSE9PSJjb2RlIiYmdC50eXBlPT09Imxpc3QiJiZlLnByZXZlbnREZWZhdWx0KCl9YXN5bmMgaGFuZGxlRW50ZXIoZSx0KXtsZXQgYT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQsbik7cmV0dXJufWlmKHQudHlwZT09PSJjb2RlIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIodCxuKX1yZXR1cm59aWYoIWUuc2hpZnRLZXkpaWYodC50eXBlPT09Imxpc3QiKWF3YWl0IHRoaXMuaGFuZGxlRW50ZXJJbkxpc3QoZSx0KTtlbHNle2UucHJldmVudERlZmF1bHQoKTtsZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG8mJm8uZ2V0U3BsaXRDb250ZW50KXtsZXQgbD1vLmdldFNwbGl0Q29udGVudCgpO2lmKGwpe28uc2V0Q29udGVudChsLmJlZm9yZSksdC5jb250ZW50PWwuYmVmb3JlO2xldCBwPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsbC5hZnRlcik7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQscCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNle2xldCBwPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIodCxwKX19ZWxzZXtsZXQgbD1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQsbCl9fX1hc3luYyBoYW5kbGVFbnRlckluTGlzdChlLHQpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihhJiZhLnJhbmdlQ291bnQ+MCl7bGV0IG49YS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYobiYmbi50ZXh0Q29udGVudD09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9by5jcmVhdGVCbG9jaygpO2F3YWl0IG8uaW5zZXJ0QmxvY2tBZnRlcih0LGwpfX19YXN5bmMgaGFuZGxlQmFja3NwYWNlKGUsdCl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0LnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGEucmVtb3ZlQmxvY2sodC5pZCk7bGV0IHg9YS5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt4XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgYS5mb2N1c0Jsb2NrKHguaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IGI9YS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpLHY9YS5nZXROZXh0QmxvY2sodC5pZCk7YS5yZW1vdmVCbG9jayh0LmlkKSxiJiZiLnR5cGUhPT0iZGl2aWRlciImJmIudHlwZSE9PSJpbWFnZSI/YXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQsImVuZCIpOnYmJnYudHlwZSE9PSJkaXZpZGVyIiYmdi50eXBlIT09ImltYWdlIj9hd2FpdCBhLmZvY3VzQmxvY2sodi5pZCwic3RhcnQiKTpiP2F3YWl0IGEuZm9jdXNCbG9jayhiLmlkKTp2JiZhd2FpdCBhLmZvY3VzQmxvY2sodi5pZCk7cmV0dXJufWxldCBvPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW98fCFvLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBsPXQudHlwZT09PSJjb2RlIj9vLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFsKXJldHVybjtsZXQgcD1vLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107cD8uc2hhZG93Um9vdCYmZC5wdXNoKHAuc2hhZG93Um9vdCksZC5wdXNoKG8uc2hhZG93Um9vdCk7bGV0IHU9U3QuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobCwuLi5kKSxjPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpsLnRleHRDb250ZW50O2lmKHU9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGI9YS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2lmKGIpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhiLnR5cGUpKXthd2FpdCBhLmZvY3VzQmxvY2soYi5pZCk7cmV0dXJufWlmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGIudHlwZT09PSJjb2RlIiYmdC50eXBlIT09ImNvZGUiKXt0LmNvbnRlbnQ9PT0iIiYmKGEucmVtb3ZlQmxvY2sodC5pZCksYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQsImVuZCIpKTtyZXR1cm59aWYodC50eXBlPT09ImNvZGUiJiZiLnR5cGUhPT0iY29kZSIpe2xldCBOPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTp0LmNvbnRlbnQ7KE49PT0iInx8Ti50cmltKCk9PT0iIikmJihhLnJlbW92ZUJsb2NrKHQuaWQpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJlbmQiKSk7cmV0dXJufWxldCBtPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIiksZj1tPy5nZXRDb250ZW50KCl8fGIuY29udGVudHx8IiIseT1vLmdldENvbnRlbnQoKXx8dC5jb250ZW50fHwiIixNPSIiO2IudHlwZT09PSJjb2RlIiYmdC50eXBlPT09ImNvZGUifHxiLnR5cGU9PT0ibGlzdCImJnQudHlwZT09PSJsaXN0Ij9NPWYrKGYmJnk/YApgOiIiKSt5Ok09ZisoZiYmeT8iICI6IiIpK3k7bGV0IHo9Zi5sZW5ndGg7YS51cGRhdGVCbG9ja0NvbnRlbnQoYi5pZCxNKSxtJiZtLnNldENvbnRlbnQoTSksYS5yZW1vdmVCbG9jayh0LmlkKSxhd2FpdCBhLmZvY3VzQmxvY2soYi5pZCx6KX19ZWxzZSBpZih0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPjEpe2xldCBiPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTp0LmNvbnRlbnQ7aWYoYj09PSIifHxiLnRyaW0oKT09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9YS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO3YmJihhLnJlbW92ZUJsb2NrKHQuaWQpLHYudHlwZSE9PSJkaXZpZGVyIiYmYXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsImVuZCIpKX19fWFzeW5jIGhhbmRsZURlbGV0ZShlLHQpe2xldCBhPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxhLnJlbW92ZUJsb2NrKHQuaWQpO2xldCBtPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1bbV0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGEuZm9jdXNCbG9jayhtLmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBiPWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKSx2PWEuZ2V0TmV4dEJsb2NrKHQuaWQpO2EucmVtb3ZlQmxvY2sodC5pZCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO3YmJiF4LmluY2x1ZGVzKHYudHlwZSk/YXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0Iik6YiYmIXguaW5jbHVkZXMoYi50eXBlKT9hd2FpdCBhLmZvY3VzQmxvY2soYi5pZCwiZW5kIik6dj9hd2FpdCBhLmZvY3VzQmxvY2sodi5pZCk6YiYmYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbD10LnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbClyZXR1cm47bGV0IHA9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO3A/LnNoYWRvd1Jvb3QmJmQucHVzaChwLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCB1PVN0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGwsLi4uZCksYz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYodT09PWMpe2xldCBiPWEuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKGImJlsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhiLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCksYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQpO3JldHVybn19fWFzeW5jIGhhbmRsZUFycm93VXAoZSx0KXtsZXQgYT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07aWYoYS5pbmNsdWRlcyh0LnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGM9dS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2MmJmF3YWl0IHUuZm9jdXNCbG9jayhjLmlkLGEuaW5jbHVkZXMoYy50eXBlKT92b2lkIDA6ImVuZCIpO3JldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz10LnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxwPVtdO2w/LnNoYWRvd1Jvb3QmJnAucHVzaChsLnNoYWRvd1Jvb3QpLHAucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uRmlyc3RMaW5lKGQsbywuLi5wKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihjKXtsZXQgYj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKGMuaWQsYi5pbmNsdWRlcyhjLnR5cGUpP3ZvaWQgMDoiZW5kIil9fX1hc3luYyBoYW5kbGVBcnJvd0Rvd24oZSx0KXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKGMpe2xldCBiPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCB1LmZvY3VzQmxvY2soYy5pZCxiLmluY2x1ZGVzKGMudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz10LnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxwPVtdO2w/LnNoYWRvd1Jvb3QmJnAucHVzaChsLnNoYWRvd1Jvb3QpLHAucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPVN0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uTGFzdExpbmUoZCxvLC4uLnApKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGM9dS5nZXROZXh0QmxvY2sodC5pZCk7aWYoYyl7bGV0IGI9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHUuZm9jdXNCbG9jayhjLmlkLGIuaW5jbHVkZXMoYy50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1hc3luYyBoYW5kbGVBcnJvd0xlZnQoZSx0KXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBjPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxiPWMuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihiKXtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgYy5mb2N1c0Jsb2NrKGIuaWQsdi5pbmNsdWRlcyhiLnR5cGUpP3ZvaWQgMDoiZW5kIil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXQudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgbD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLHA9W107bD8uc2hhZG93Um9vdCYmcC5wdXNoKGwuc2hhZG93Um9vdCkscC5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGQ9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZHx8IWQuY29sbGFwc2VkKXJldHVybjtpZihTdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLnApPT09MCl7bGV0IGM9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGI9Yy5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2lmKGIpe2UucHJldmVudERlZmF1bHQoKTtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYi50eXBlKT92b2lkIDA6ImVuZCI7YXdhaXQgYy5mb2N1c0Jsb2NrKGIuaWQseCl9fX1hc3luYyBoYW5kbGVBcnJvd1JpZ2h0KGUsdCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgYj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsdj1iLmdldE5leHRCbG9jayh0LmlkKTtpZih2KXtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgYi5mb2N1c0Jsb2NrKHYuaWQseC5pbmNsdWRlcyh2LnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89dC50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIikscD1bXTtsPy5zaGFkb3dSb290JiZwLnB1c2gobC5zaGFkb3dSb290KSxwLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD1TdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhZC5jb2xsYXBzZWQpcmV0dXJuO2xldCB1PVN0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4ucCksYz1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYodT09PWMpe2xldCBiPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyx2PWIuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKHYpe2UucHJldmVudERlZmF1bHQoKTtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgYi5mb2N1c0Jsb2NrKHYuaWQseC5pbmNsdWRlcyh2LnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWlzT25GaXJzdExpbmUoZSx0LC4uLmEpe3RyeXtsZXQgcj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBsPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1uLnRvcC1sLnRvcDw1O3JldHVybiBvLnRleHRDb250ZW50JiYhby50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApP1N0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4uYSk9PT0wOnB9Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgZmlyc3QgbGluZToiLHIpLGUuc3RhcnRPZmZzZXQ9PT0wfX1pc09uTGFzdExpbmUoZSx0LC4uLmEpe3RyeXtsZXQgcj1TdC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBwPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLW4uYm90dG9tPDU7aWYoby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKSl7bGV0IGQ9dC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBTdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudCh0LC4uLmEpPT09ZH1yZXR1cm4gcH1jYXRjaChyKXtjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGxhc3QgbGluZToiLHIpO2xldCBuPXQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gU3QuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodCwuLi5hKT09PW59fX19KTt2YXIgT1gsaDNhPWcoKCk9PntNbCgpO2d2KCk7T1g9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0RyYWdEcm9wSGFuZGxlciIpfWNvbXBvbmVudDtkcmFnZ2VkQmxvY2tJZD1udWxsO2RyYWdPdmVyQmxvY2tJZD1udWxsO2RyYWdPdmVyUG9zaXRpb249bnVsbDtkcm9wSW5kaWNhdG9yPW51bGw7aW5pdGlhbE1vdXNlWT0wO2luaXRpYWxCbG9ja1k9MDtkcmFnZ2VkQmxvY2tFbGVtZW50PW51bGw7ZHJhZ2dlZEJsb2NrSGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wO2RyYWdnZWRCbG9ja01hcmdpblRvcD0wO2xhc3RVcGRhdGVUaW1lPTA7dXBkYXRlVGhyb3R0bGU9ODA7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1nZXQgZHJhZ1N0YXRlKCl7cmV0dXJue2RyYWdnZWRCbG9ja0lkOnRoaXMuZHJhZ2dlZEJsb2NrSWQsZHJhZ092ZXJCbG9ja0lkOnRoaXMuZHJhZ092ZXJCbG9ja0lkLGRyYWdPdmVyUG9zaXRpb246dGhpcy5kcmFnT3ZlclBvc2l0aW9ufX1oYW5kbGVEcmFnU3RhcnQoZSx0KXtpZighZS5kYXRhVHJhbnNmZXIpcmV0dXJuO3RoaXMuZHJhZ2dlZEJsb2NrSWQ9dC5pZCxlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIixlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIix0LmlkKTtsZXQgYT1uZXcgSW1hZ2U7aWYoYS5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShhLDAsMCksdGhpcy5pbml0aWFsTW91c2VZPWUuY2xpZW50WSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgcj10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbml0aWFsQmxvY2tZPXIudG9wO2xldCBuPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihuKXtsZXQgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9cGFyc2VJbnQobC5tYXJnaW5Ub3ApfHwwLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD1vLmhlaWdodH10aGlzLmRyYWdnZWRCbG9ja0hlaWdodD1yLmhlaWdodCxjb25zb2xlLmxvZygiRHJhZyBtZWFzdXJlbWVudHM6Iix7d3JhcHBlckhlaWdodDpyLmhlaWdodCxtYXJnaW5Ub3A6dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AsZHJvcEluZGljYXRvckhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxjb250ZW50SGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxibG9ja0lkOnQuaWR9KSx0aGlzLmNyZWF0ZURyb3BJbmRpY2F0b3IoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKX10aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD10aGlzLmRyYWdnZWRCbG9ja0lkLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQmJnRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sMTApfWhhbmRsZURyYWdFbmQoKXt0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaCh0PT57dC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIsIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSx0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IiksdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIil9KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD0wLHRoaXMuaW5pdGlhbEJsb2NrWT0wLHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyYWdPdmVyKGUsdCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCFlLmRhdGFUcmFuc2Zlcnx8IXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT10LmlkKXJldHVybjtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIjtsZXQgYT1lLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1hLnRvcCthLmhlaWdodC8yO3RoaXMuZHJhZ092ZXJCbG9ja0lkPXQuaWQsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPWUuY2xpZW50WTxyPyJiZWZvcmUiOiJhZnRlciIsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPXRoaXMuZHJhZ092ZXJCbG9ja0lkLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249dGhpcy5kcmFnT3ZlclBvc2l0aW9ufWhhbmRsZURyYWdMZWF2ZShlKXt0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWUuaWQmJih0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbCl9aGFuZGxlRHJvcChlLHQpe2UucHJldmVudERlZmF1bHQoKSwhKCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09dC5pZCkmJnRoaXMuY29tcG9uZW50LmhhbmRsZURyb3AoZSx0KX1pc0RyYWdnaW5nKGUpe3JldHVybiB0aGlzLmRyYWdnZWRCbG9ja0lkPT09ZX1pc0RyYWdPdmVyKGUpe3JldHVybiB0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWV9Z2V0RHJhZ092ZXJDbGFzc2VzKGUpe3JldHVybiB0aGlzLmlzRHJhZ092ZXIoZSk/dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImJlZm9yZSI/ImRyYWctb3Zlci1iZWZvcmUiOiJkcmFnLW92ZXItYWZ0ZXIiOiIifWNyZWF0ZURyb3BJbmRpY2F0b3IoKXt0aGlzLmRyb3BJbmRpY2F0b3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5kcm9wSW5kaWNhdG9yLmNsYXNzTmFtZT0iZHJvcC1pbmRpY2F0b3IiLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcil9aGFuZGxlR2xvYmFsRHJhZ092ZXI9aShlPT57aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO2xldCB0PWUuY2xpZW50WS10aGlzLmluaXRpYWxNb3VzZVk7dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3R9cHgpYDtsZXQgYT1EYXRlLm5vdygpO2EtdGhpcy5sYXN0VXBkYXRlVGltZTx0aGlzLnVwZGF0ZVRocm90dGxlfHwodGhpcy5sYXN0VXBkYXRlVGltZT1hLHRoaXMudXBkYXRlQmxvY2tQb3NpdGlvbnMoZS5jbGllbnRZKSl9LCJoYW5kbGVHbG9iYWxEcmFnT3ZlciIpO3VwZGF0ZUJsb2NrUG9zaXRpb25zKGUpe2xldCB0PUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKSxhPXQuZmluZEluZGV4KG49Pm4uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihhPT09LTEpcmV0dXJuO3QuZm9yRWFjaChuPT57bi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSE9PXRoaXMuZHJhZ2dlZEJsb2NrSWQmJihuLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxuLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IikpfSk7bGV0IHI9dC5sZW5ndGg7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBsPXRbbl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1sLnRvcDtpZihlPHArbC5oZWlnaHQqLjUpe3I9bjticmVha319Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBvPXRbbl07YTxyP24+YSYmbjxyJiYoby5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIiksby5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSk6YT5yJiZuPj1yJiZuPGEmJihvLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpLG8uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpfXRoaXMudXBkYXRlRHJvcEluZGljYXRvcih0LHIsYSl9dXBkYXRlRHJvcEluZGljYXRvcihlLHQsYSl7aWYoIXRoaXMuZHJvcEluZGljYXRvcnx8IXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgcj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49MCxvPVtdO2ZvcihsZXQgZD0wO2Q8ZS5sZW5ndGg7ZCsrKXtpZihkPT09YSljb250aW51ZTtsZXQgdT1lW2RdLGM9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWMudG9wLXIudG9wLHY9Yy5ib3R0b20tci50b3AseD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh1KS50cmFuc2Zvcm07aWYoeCYmeCE9PSJub25lIil7bGV0IGY9bmV3IERPTU1hdHJpeCh4KS5tNDI7Yis9Zix2Kz1mfW8ucHVzaCh7aW5kZXg6ZCx0b3A6Yixib3R0b206dn0pfW8uc29ydCgoZCx1KT0+ZC50b3AtdS50b3ApO2xldCBsPXQ7dD5hJiZsLS07bGV0IHA9MTY7aWYodGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgZD10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoZCl7bGV0IHU9ZC50eXBlO3U9PT0iaGVhZGluZy0xInx8dT09PSJoZWFkaW5nLTIifHx1PT09ImhlYWRpbmctMyI/cD0yNDoodT09PSJjb2RlInx8dT09PSJxdW90ZSIpJiYocD0yMCl9fWlmKGw9PT0wKW49MDtlbHNlIGlmKGw+PW8ubGVuZ3RoKXtsZXQgZD1vW28ubGVuZ3RoLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfWVsc2V7bGV0IGQ9b1tsLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfXRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5oZWlnaHQ9YCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS50b3A9YCR7TWF0aC5tYXgoMCxuKX1weGAsY29uc29sZS5sb2coIkRyb3AgaW5kaWNhdG9yIHVwZGF0ZToiLHt0YXJnZXRJbmRleDp0LGFkanVzdGVkVGFyZ2V0SW5kZXg6bCxkcmFnZ2VkSW5kZXg6YSx0b3BQb3NpdGlvbjpuLGhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxibG9ja01hcmdpbjpwLHZpc3VhbEJsb2NrczpvLm1hcChkPT4oe2luZGV4OmQuaW5kZXgsdG9wOmQudG9wLGJvdHRvbTpkLmJvdHRvbX0pKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQ9aSgoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuZHJvcEluZGljYXRvciYmKHRoaXMuZHJvcEluZGljYXRvci5yZW1vdmUoKSx0aGlzLmRyb3BJbmRpY2F0b3I9bnVsbCksdGhpcy5kcmFnZ2VkQmxvY2tJZD9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnBlcmZvcm1Ecm9wKCksdGhpcy5oYW5kbGVEcmFnRW5kKCl9KTp0aGlzLmhhbmRsZURyYWdFbmQoKX0sImhhbmRsZUdsb2JhbERyYWdFbmQiKTtwZXJmb3JtRHJvcCgpe2lmKCF0aGlzLmRyYWdnZWRCbG9ja0lkKXJldHVybjtsZXQgZT1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSk7aWYoIWUuZmluZCh1PT51LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCkpcmV0dXJuO2xldCBhPWUubWFwKHU9PntsZXQgYz11LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpLGI9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PWIudG9wK2IuaGVpZ2h0LzI7cmV0dXJue2lkOmMsY2VudGVyWTp2LGVsZW1lbnQ6dX19KTthLnNvcnQoKHUsYyk9PnUuY2VudGVyWS1jLmNlbnRlclkpO2xldCByPWEubWFwKHU9PnUuaWQpLmZpbHRlcih1PT51IT09bnVsbCksbj1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxvPW4uZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoIW8pcmV0dXJuO2xldCBsPW4ubWFwKHU9PnUuaWQpO2lmKCEhci5ldmVyeSgodSxjKT0+dT09PWxbY10pKXJldHVybjtsZXQgZD1yLm1hcCh1PT5uLmZpbmQoYz0+Yy5pZD09PXUpKS5maWx0ZXIoQm9vbGVhbik7dGhpcy5jb21wb25lbnQuYmxvY2tzPWQsdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksc2V0VGltZW91dCgoKT0+e28udHlwZSE9PSJkaXZpZGVyIiYmdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soby5pZCl9LDEwMCl9fX0pO3ZhciBGWCxmM2E9ZygoKT0+e01sKCk7Rlg9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0hpc3RvcnkiKX1oaXN0b3J5PVtdO2N1cnJlbnRJbmRleD0tMTttYXhIaXN0b3J5U2l6ZT01MDtsYXN0U2F2ZVRpbWU9MDtzYXZlRGVib3VuY2VNcz01MDA7Y29uc3RydWN0b3IoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTF9c2F2ZVN0YXRlKGUsdCxhKXtsZXQgcj1EYXRlLm5vdygpO2lmKHItdGhpcy5sYXN0U2F2ZVRpbWU8dGhpcy5zYXZlRGVib3VuY2VNcyYmdGhpcy5jdXJyZW50SW5kZXg+PTApe3RoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF09e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDp0LGN1cnNvclBvc2l0aW9uOmE/ey4uLmF9OnZvaWQgMCx0aW1lc3RhbXA6cn07cmV0dXJufXRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMSYmKHRoaXMuaGlzdG9yeT10aGlzLmhpc3Rvcnkuc2xpY2UoMCx0aGlzLmN1cnJlbnRJbmRleCsxKSk7bGV0IG49e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDp0LGN1cnNvclBvc2l0aW9uOmE/ey4uLmF9OnZvaWQgMCx0aW1lc3RhbXA6cn07dGhpcy5oaXN0b3J5LnB1c2gobiksdGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmhpc3RvcnkubGVuZ3RoPnRoaXMubWF4SGlzdG9yeVNpemUmJih0aGlzLmhpc3Rvcnkuc2hpZnQoKSx0aGlzLmN1cnJlbnRJbmRleC0tKSx0aGlzLmxhc3RTYXZlVGltZT1yfXNhdmVDaGVja3BvaW50KGUsdCxhKXt0aGlzLmxhc3RTYXZlVGltZT0wLHRoaXMuc2F2ZVN0YXRlKGUsdCxhKX11bmRvKCl7cmV0dXJuIHRoaXMuY2FuVW5kbygpPyh0aGlzLmN1cnJlbnRJbmRleC0tLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1yZWRvKCl7cmV0dXJuIHRoaXMuY2FuUmVkbygpPyh0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1jYW5VbmRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PjB9Y2FuUmVkbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTF9Z2V0Q3VycmVudFN0YXRlKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4Pj0wJiZ0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoP3RoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTpudWxsfWNsZWFyKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xLHRoaXMubGFzdFNhdmVUaW1lPTB9Y2xvbmVCbG9ja3MoZSl7cmV0dXJuIGUubWFwKHQ9Pih7Li4udCxtZXRhZGF0YTp0Lm1ldGFkYXRhP3suLi50Lm1ldGFkYXRhfTp2b2lkIDB9KSl9Y2xvbmVTdGF0ZShlKXtyZXR1cm57YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZS5ibG9ja3MpLHNlbGVjdGVkQmxvY2tJZDplLnNlbGVjdGVkQmxvY2tJZCxjdXJzb3JQb3NpdGlvbjplLmN1cnNvclBvc2l0aW9uP3suLi5lLmN1cnNvclBvc2l0aW9ufTp2b2lkIDAsdGltZXN0YW1wOmUudGltZXN0YW1wfX1nZXRIaXN0b3J5SW5mbygpe3JldHVybntzaXplOnRoaXMuaGlzdG9yeS5sZW5ndGgsY3VycmVudEluZGV4OnRoaXMuY3VycmVudEluZGV4LGNhblVuZG86dGhpcy5jYW5VbmRvKCksY2FuUmVkbzp0aGlzLmNhblJlZG8oKX19fX0pO3ZhciBCWCxtdSxtM2EsZzNhPWcoKCk9PntwZSgpO01sKCk7aXUoKTtEZCgpO3BpdCgpO2hpdCgpO0I4KCk7b3IoKTtwdCgpO0JYPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxtdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbTNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13eXNpd3lnLWJsb2NrIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXeXNpd3lnQmxvY2siKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpPYmplY3R9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0sQlgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9jayIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYmxvY2siaW4geiwiaGFzIiksZ2V0Omkoej0+ei5ibG9jaywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmJsb2NrPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxCWCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzU2VsZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImlzU2VsZWN0ZWQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1NlbGVjdGVkLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaXNTZWxlY3RlZD1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksQlgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYW5kbGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaGFuZGxlcnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5oYW5kbGVycywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmhhbmRsZXJzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxCWCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Ind5c2l3eWdDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Ind5c2l3eWdDb21wb25lbnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei53eXNpd3lnQ29tcG9uZW50LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oud3lzaXd5Z0NvbXBvbmVudD1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksQlgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fc2VsZWN0aW9uSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLl9zZWxlY3Rpb25IYW5kbGVyKX0jZT1tdSh0aGlzLG8sdm9pZCAwKTtnZXQgYmxvY2soKXtyZXR1cm4gdGhpcy4jZX1zZXQgYmxvY2soTSl7dGhpcy4jZT1NfSN0PShtdSh0aGlzLGwpLG11KHRoaXMsZCwhMSkpO2dldCBpc1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlzU2VsZWN0ZWQoTSl7dGhpcy4jdD1NfSNhPShtdSh0aGlzLHUpLG11KHRoaXMsYix2b2lkIDApKTtnZXQgaGFuZGxlcnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGFuZGxlcnMoTSl7dGhpcy4jYT1NfSNzPShtdSh0aGlzLHYpLG11KHRoaXMsbSx2b2lkIDApKTtnZXQgd3lzaXd5Z0NvbXBvbmVudCgpe3JldHVybiB0aGlzLiNzfXNldCB3eXNpd3lnQ29tcG9uZW50KE0pe3RoaXMuI3M9TX1ibG9ja0VsZW1lbnQ9KG11KHRoaXMsZiksbnVsbCk7Y29udGVudEluaXRpYWxpemVkPSExO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtoYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITE7c3RhdGljIE5PTl9FRElUQUJMRV9UWVBFUz1bImltYWdlIiwiZGl2aWRlciIsInlvdXR1YmUiXTtpbmplY3RIYW5kbGVyU3R5bGVzKCl7aWYodGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQpcmV0dXJuO3RoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkPSEwO2xldCBNPSIiLHo9SXMuZ2V0QWxsVHlwZXMoKTtmb3IobGV0IE4gb2Ygeil7bGV0IEM9SXMuZ2V0SGFuZGxlcihOKTtDJiYoTSs9Qy5nZXRTdHlsZXMoKSl9aWYoTSl7bGV0IE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtOLnRleHRDb250ZW50PU0sdGhpcy5zaGFkb3dSb290Py5hcHBlbmRDaGlsZChOKX19c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmJsb2NrIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrOmVtcHR5Om5vdCg6Zm9jdXMpOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrLXNwZWNpZmljIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVycyAqLwoKCiAgICAgIC8qIEZvcm1hdHRpbmcgc3R5bGVzICovCiAgICAgIC5ibG9jayA6aXMoYiwgc3Ryb25nKSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2sgOmlzKGksIGVtKSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuYmxvY2sgdSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jayBzIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgfQoKICAgICAgLmJsb2NrIGNvZGUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDE0IiwiI2ZmNmI2YiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5ibG9jayBhOmhvdmVyIHsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2sgY29udGFpbmVyIGFuZCBsYW5ndWFnZSBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlciAqLwoKICAgICAgLyogU2VsZWN0aW9uIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjMpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMykiKX07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCgogICAgICAvKiBTdHJpa2UgdGhyb3VnaCAqLwogICAgICAuYmxvY2sgOmlzKHMsIHN0cmlrZSkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKCiAgICAgIC8qIEJsb2NrIG1hcmdpbiBhZGp1c3RtZW50cyBiYXNlZCBvbiB0eXBlICovCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogU2VsZWN0ZWQgc3RhdGUgKi8KICAgICAgLmJsb2NrLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgIH0KCgoKCiAgICBgXTtzaG91bGRVcGRhdGUoTSl7aWYoTS5oYXMoImlzU2VsZWN0ZWQiKSYmdGhpcy5ibG9jayl7bGV0IHo9bnVsbCxDPWAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YDtyZXR1cm4gej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoQykseiYmKHRoaXMuaXNTZWxlY3RlZD96LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik6ei5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSwhMX1pZihNLmhhcygiYmxvY2siKSYmdGhpcy5ibG9jayl7bGV0IHo9TS5nZXQoImJsb2NrIik7aWYoeiYmei5pZCYmei50eXBlJiZ6LmlkPT09dGhpcy5ibG9jay5pZCYmei50eXBlPT09dGhpcy5ibG9jay50eXBlKXJldHVybiExfXJldHVybiF0aGlzLmJsb2NrRWxlbWVudHx8dGhpcy5ibG9jaz8udHlwZSE9PXRoaXMuYmxvY2tFbGVtZW50LmRhdGFzZXQuYmxvY2tUeXBlfWZpcnN0VXBkYXRlZCgpe3RoaXMuY29udGVudEluaXRpYWxpemVkPSEwLHRoaXMuaW5qZWN0SGFuZGxlclN0eWxlcygpO2xldCBNPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7aWYoTSYmdGhpcy5ibG9jayYmKE0uaW5uZXJIVE1MPXRoaXMucmVuZGVyQmxvY2tDb250ZW50KCkpLHRoaXMuYmxvY2spe2xldCBOPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihOKXtsZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO0MmJk4uc2V0dXAoQyx0aGlzLmJsb2NrLHRoaXMuaGFuZGxlcnMpO3JldHVybn19bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZih6KXt6LnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsdGhpcy5ibG9jay5pZCksei5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2stdHlwZSIsdGhpcy5ibG9jay50eXBlKSx6LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixDPT57dGhpcy5oYW5kbGVycz8ub25JbnB1dD8uKEMpO2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pfSksei5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixDPT57bGV0IF89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtfIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249XyksdGhpcy5oYW5kbGVycz8ub25LZXlEb3duPy4oQyl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpfSksei5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQmx1cj8uKCl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvblN0YXJ0Py4oKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvbkVuZD8uKCl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLEM9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKSx0aGlzLmhhbmRsZXJzPy5vbk1vdXNlVXA/LihDKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c2V0VGltZW91dCgoKT0+e2xldCBDPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7QyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPUMpfSwwKX0pO2xldCBOPWkoKCk9PntsZXQgQz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIUN8fEMucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBfPUMudG9TdHJpbmcoKTtpZihfLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpO3JldHVybn1sZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFPKXJldHVybjtsZXQgRT10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LEg9W107RSYmSC5wdXNoKEUpLHRoaXMuc2hhZG93Um9vdCYmSC5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IGs9U3QuZ2V0U2VsZWN0aW9uSW5mbyguLi5IKTtpZighaylyZXR1cm47bGV0IFM9U3QuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTyxrLnN0YXJ0Q29udGFpbmVyKSxJPVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE8say5lbmRDb250YWluZXIpO2lmKFN8fEkpe2lmKF8hPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1fO2xldCBQPVN0LmNyZWF0ZVJhbmdlRnJvbUluZm8oayksUj1QLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6Xy50cmltKCksYmxvY2tJZDp0aGlzLmJsb2NrLmlkLHJhbmdlOlAscmVjdDpSLGhhc1NlbGVjdGlvbjohMH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixOKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyPU4sei5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKCk9PntsZXQgQz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO0MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1DKX0pLHRoaXMuYmxvY2suY29udGVudCYmKHouaW5uZXJIVE1MPXRoaXMuYmxvY2suY29udGVudCl9dGhpcy5ibG9ja0VsZW1lbnQ9en1yZW5kZXIoKXtyZXR1cm4gdGhpcy5ibG9jaz9NbmA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWJsb2NrLWNvbnRhaW5lciI+PC9kaXY+YDpNbmBgfXJlbmRlckJsb2NrQ29udGVudCgpe2lmKCF0aGlzLmJsb2NrKXJldHVybiIiO2xldCBNPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNKXJldHVybiBNLnJlbmRlcih0aGlzLmJsb2NrLHRoaXMuaXNTZWxlY3RlZCk7bGV0IHo9dGhpcy5pc1NlbGVjdGVkPyIgc2VsZWN0ZWQiOiIiO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke3RoaXMuYmxvY2sudHlwZX0ke3p9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgPjwvZGl2PgogICAgYH1mb2N1cygpe2xldCBNPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLmZvY3VzKXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLEM9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5mb2N1cyhOLEMpfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWApO04mJk4uZm9jdXMoKTtyZXR1cm59bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTt6JiYoei5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHx6LnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHouZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09eiYmdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09eiYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3ouZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoTT0iZW5kIil7bGV0IHo9SXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHomJnouZm9jdXNXaXRoQ3Vyc29yKXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLE89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gei5mb2N1c1dpdGhDdXJzb3IoXyxNLE8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe3RoaXMuZm9jdXMoKTtyZXR1cm59bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47Ti5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxOLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE4uZm9jdXMoKTtsZXQgQz1pKCgpPT57TT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk6TT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoKTp0eXBlb2YgTT09Im51bWJlciImJlN0LnNldEN1cnNvclBvc2l0aW9uKE4sTSl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09Tj9DKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09TikmJkMoKX0pfWdldEN1cnNvclBvc2l0aW9uKE0pe2xldCB6PUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih6JiZ6LmdldEN1cnNvclBvc2l0aW9uKXtsZXQgSD17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB6LmdldEN1cnNvclBvc2l0aW9uKE0sSCl9bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxfPVtdO0MmJl8ucHVzaChDKSx0aGlzLnNoYWRvd1Jvb3QmJl8ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPVN0LmdldFNlbGVjdGlvbkluZm8oLi4uXyk7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TyxzaGFkb3dSb290c0NvdW50Ol8ubGVuZ3RofSksIU8pcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogTm8gc2VsZWN0aW9uIGZvdW5kIiksbnVsbDtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIGluZm86Iix7c3RhcnRDb250YWluZXI6Ty5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpPLnN0YXJ0T2Zmc2V0LGNvbGxhcHNlZDpPLmNvbGxhcHNlZCxzdGFydENvbnRhaW5lclRleHQ6Ty5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudH0pLCFNLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIG5vdCBpbiBlbGVtZW50IiksbnVsbDtsZXQgJD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpOyQuc2VsZWN0Tm9kZUNvbnRlbnRzKE0pLCQuc2V0RW5kKE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCk7bGV0IEU9JC50b1N0cmluZygpLmxlbmd0aDtyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBDYWxjdWxhdGVkIHBvc2l0aW9uOiIse3Bvc2l0aW9uOkUscHJlQ2FyZXRUZXh0OiQudG9TdHJpbmcoKSxlbGVtZW50VGV4dDpNLnRleHRDb250ZW50LGVsZW1lbnRUZXh0TGVuZ3RoOk0udGV4dENvbnRlbnQ/Lmxlbmd0aH0pLEV9Z2V0Q29udGVudCgpe2xldCBNPUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLmdldENvbnRlbnQpe2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksXz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmdldENvbnRlbnQoQyxfKX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCF6KXJldHVybiIiO2xldCBOPXouaW5uZXJIVE1MfHwiIjtyZXR1cm4gY29uc29sZS5sb2coIkdldHRpbmcgY29udGVudCBmcm9tIGJsb2NrOiIsTiksTn1zZXRDb250ZW50KE0pe2xldCB6PUlzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih6JiZ6LnNldENvbnRlbnQpe2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB6LnNldENvbnRlbnQoXyxNLE8pfWxldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU4pcmV0dXJuO2xldCBDPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OO04uaW5uZXJIVE1MPU0sQyYmTi5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoKXtsZXQgTT1Jcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSYmTS5zZXRDdXJzb3JUb1N0YXJ0KXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLEM9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5zZXRDdXJzb3JUb1N0YXJ0KE4sQyl9bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTt6JiZDby5zZXRDdXJzb3JUb1N0YXJ0KHopfXNldEN1cnNvclRvRW5kKCl7bGV0IE09SXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uc2V0Q3Vyc29yVG9FbmQpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLnNldEN1cnNvclRvRW5kKE4sQyl9bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTt6JiZDby5zZXRDdXJzb3JUb0VuZCh6KX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7aWYoIXRoaXMuYmxvY2t8fHRoaXMuYmxvY2sudHlwZT09PSJkaXZpZGVyIilyZXR1cm5bXTtsZXQgTT1jci5nZXRTbGFzaE1lbnVJdGVtcygpLHo9dGhpcy5ibG9jay50eXBlLE49dGhpcy53eXNpd3lnQ29tcG9uZW50LEM9dGhpcy5ibG9jay5pZCxPPVt7bmFtZToiQ2hhbmdlIFR5cGUiLGljb25OYW1lOiJ0eXBlIixzdWJtZW51Ok0uZmlsdGVyKCQ9PiQudHlwZSE9PXomJiQudHlwZSE9PSJkaXZpZGVyIikubWFwKCQ9Pih7bmFtZTokLmxhYmVsLGljb25OYW1lOiQuaWNvbi5yZXBsYWNlKCJsdWNpZGU6IiwiIiksYWN0aW9uOmkoYXN5bmMoKT0+e2lmKE4mJk4uYmxvY2tPcGVyYXRpb25zKXtsZXQgRT1OLmJsb2Nrcy5maW5kKEg9PkguaWQ9PT1DKTtFJiYoRS50eXBlPSQudHlwZSxFLmNvbnRlbnQ9RS5jb250ZW50fHwiIiwkLnR5cGU9PT0iY29kZSI/RS5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifTokLnR5cGU9PT0ibGlzdCI/RS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9OiQudHlwZT09PSJpbWFnZSI/KEUuY29udGVudD0iIixFLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOiQudHlwZT09PSJ5b3V0dWJlIj8oRS5jb250ZW50PSIiLEUubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6JC50eXBlPT09Im1hcmtkb3duIj9FLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06JC50eXBlPT09Imh0bWwiP0UubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTokLnR5cGU9PT0iYXR0YWNobWVudCImJihFLmNvbnRlbnQ9IiIsRS5tZXRhZGF0YT17ZmlsZXM6W119KSxOLnVwZGF0ZUJsb2NrRWxlbWVudChDKSxOLnVwZGF0ZVZhbHVlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhDKX0pKX19LCJhY3Rpb24iKX0pKX1dO3JldHVyblsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpfHxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImN1dCIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsc2hvcnRjdXQ6IkNtZCtDIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX0sImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmkoYXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJwYXN0ZSIpfSwiYWN0aW9uIil9KSxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgQmxvY2siLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PntOJiZOLmJsb2NrT3BlcmF0aW9ucyYmTi5ibG9ja09wZXJhdGlvbnMuZGVsZXRlQmxvY2soQyl9LCJhY3Rpb24iKX0pLE99Z2V0U3BsaXRDb250ZW50KCl7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3RhcnRpbmcuLi4iKTtsZXQgTT1Jcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ2hlY2tpbmcgZm9yIGhhbmRsZXIiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGhhc0hhbmRsZXI6ISFNLGhhc1NwbGl0TWV0aG9kOiEhKE0mJk0uZ2V0U3BsaXRDb250ZW50KX0pLE0mJk0uZ2V0U3BsaXRDb250ZW50KXtsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZvdW5kIGNvbnRhaW5lciIse2NvbnRhaW5lcjohIUssY29udGFpbmVySFRNTDpLPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLDEwMCl9KTtsZXQgVj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmdldFNwbGl0Q29udGVudChLLFYpfWxldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXopcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIGVkaXRhYmxlIGVsZW1lbnQgZm91bmQiKSxudWxsO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEVsZW1lbnQgaW5mbzoiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGlubmVySFRNTDp6LmlubmVySFRNTCx0ZXh0Q29udGVudDp6LnRleHRDb250ZW50LHRleHRMZW5ndGg6ei50ZXh0Q29udGVudD8ubGVuZ3RofSk7bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxfPVtdO0MmJl8ucHVzaChDKSx0aGlzLnNoYWRvd1Jvb3QmJl8ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPVN0LmdldFNlbGVjdGlvbkluZm8oLi4uXyk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOk8sc2hhZG93Um9vdHNDb3VudDpfLmxlbmd0aH0pLCFPKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBzZWxlY3Rpb24sIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IEs9ei50ZXh0Q29udGVudHx8IiIsVj1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLEsubGVuZ3RoKTtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3BsaXR0aW5nIHdpdGggbGFzdCBrbm93biBwb3NpdGlvbjoiLHtwb3M6VixmdWxsVGV4dExlbmd0aDpLLmxlbmd0aCxiZWZvcmU6Sy5zdWJzdHJpbmcoMCxWKSxhZnRlcjpLLnN1YnN0cmluZyhWKX0pLHtiZWZvcmU6Sy5zdWJzdHJpbmcoMCxWKSxhZnRlcjpLLnN1YnN0cmluZyhWKX19cmV0dXJuIG51bGx9aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOiIse3N0YXJ0Q29udGFpbmVyOk8uc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ty5zdGFydE9mZnNldCxzdGFydENvbnRhaW5lckluRWxlbWVudDp6LmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpfSksIVN0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHosTy5zdGFydENvbnRhaW5lcikpe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBub3QgaW4gdGhpcyBibG9jaywgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgSz16LnRleHRDb250ZW50fHwiIixWPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sSy5sZW5ndGgpO3JldHVybntiZWZvcmU6Sy5zdWJzdHJpbmcoMCxWKSxhZnRlcjpLLnN1YnN0cmluZyhWKX19cmV0dXJuIG51bGx9bGV0ICQ9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgcG9zaXRpb24gZm9yIEhUTUwgc3BsaXQ6IiwkKSwkPT09bnVsbHx8JD09PTApcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQiKSx7YmVmb3JlOiIiLGFmdGVyOnouaW5uZXJIVE1MfTtsZXQgRT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLEg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtFLnNldFN0YXJ0KHosMCksRS5zZXRFbmQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KSxILnNldFN0YXJ0KE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCksSC5zZXRFbmQoeix6LmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgaz1FLmNsb25lQ29udGVudHMoKSxTPUguY2xvbmVDb250ZW50cygpLEk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7SS5hcHBlbmRDaGlsZChrKTtsZXQgUD1JLmlubmVySFRNTDtJLmlubmVySFRNTD0iIixJLmFwcGVuZENoaWxkKFMpO2xldCBSPUkuaW5uZXJIVE1MO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGaW5hbCBzcGxpdCByZXN1bHQ6Iix7Y3Vyc29yUG9zOiQsYmVmb3JlSHRtbDpQLGJlZm9yZUxlbmd0aDpQLmxlbmd0aCxiZWZvcmVIdG1sUHJldmlldzpQLnN1YnN0cmluZygwLDEwMCkrKFAubGVuZ3RoPjEwMD8iLi4uIjoiIiksYWZ0ZXJIdG1sOlIsYWZ0ZXJMZW5ndGg6Ui5sZW5ndGgsYWZ0ZXJIdG1sUHJldmlldzpSLnN1YnN0cmluZygwLDEwMCkrKFIubGVuZ3RoPjEwMD8iLi4uIjoiIil9KSx7YmVmb3JlOlAsYWZ0ZXI6Un19c3RhdGlje211KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBtaXQ9ZygoKT0+e0djZSgpO01sKCk7Z3YoKTtObmUoKTtSMGEoKTtsdHQoKTtCOCgpO3J0dCgpO0RkKCk7aXUoKTtjdHQoKTtoaXQoKTt1M2EoKTtwM2EoKTtoM2EoKTtmaXQoKTtmM2EoKTtpdHQoKTtvdHQoKTtnM2EoKX0pO3ZhciBSaCxQbixIWCxHY2U9ZygoKT0+e3ppKCk7TjBhKCk7SjAoKTtwZSgpO21pdCgpO3B0KCk7Umg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFBuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxIWD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtd3lzaXd5ZyIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRXeXNpd3lnIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bWSgpXSx4PVtZKCldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLFJoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InZhbHVlImluIFMsImhhcyIpLGdldDppKFM9PlMudmFsdWUsImdldCIpLHNldDppKChTLEkpPT57Uy52YWx1ZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksUmgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Im91dHB1dEZvcm1hdCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm91dHB1dEZvcm1hdCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm91dHB1dEZvcm1hdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksUmgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9ja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImJsb2NrcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmJsb2NrcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmJsb2Nrcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsdiksUmgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZHJhZ2dlZEJsb2NrSWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5kcmFnZ2VkQmxvY2tJZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmRyYWdnZWRCbG9ja0lkPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxSaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZHJhZ092ZXJCbG9ja0lkImluIFMsImhhcyIpLGdldDppKFM9PlMuZHJhZ092ZXJCbG9ja0lkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZHJhZ092ZXJCbG9ja0lkPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSxSaCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRyYWdPdmVyUG9zaXRpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5kcmFnT3ZlclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZHJhZ092ZXJQb3NpdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksUmgodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkVGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGVkVGV4dCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkVGV4dD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksUmgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1BMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCIsIldvcmtzcGFjZSJdOyNlPVBuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGspe3RoaXMuI2U9a30jdD0oUG4odGhpcyxsKSxQbih0aGlzLGQsImh0bWwiKSk7Z2V0IG91dHB1dEZvcm1hdCgpe3JldHVybiB0aGlzLiN0fXNldCBvdXRwdXRGb3JtYXQoayl7dGhpcy4jdD1rfSNhPShQbih0aGlzLHUpLFBuKHRoaXMsYixbe2lkOmNyLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiIn1dKSk7Z2V0IGJsb2Nrcygpe3JldHVybiB0aGlzLiNhfXNldCBibG9ja3Moayl7dGhpcy4jYT1rfXNlbGVjdGVkQmxvY2tJZD0oUG4odGhpcyx2KSxudWxsKTtzbGFzaE1lbnU9UG5lLmdldEluc3RhbmNlKCk7I3M9UG4odGhpcyxtLG51bGwpO2dldCBkcmFnZ2VkQmxvY2tJZCgpe3JldHVybiB0aGlzLiNzfXNldCBkcmFnZ2VkQmxvY2tJZChrKXt0aGlzLiNzPWt9I2k9KFBuKHRoaXMsZiksUG4odGhpcyxNLG51bGwpKTtnZXQgZHJhZ092ZXJCbG9ja0lkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGRyYWdPdmVyQmxvY2tJZChrKXt0aGlzLiNpPWt9I3I9KFBuKHRoaXMseiksUG4odGhpcyxDLG51bGwpKTtnZXQgZHJhZ092ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkcmFnT3ZlclBvc2l0aW9uKGspe3RoaXMuI3I9a31mb3JtYXR0aW5nTWVudT0oUG4odGhpcyxfKSxBbmUuZ2V0SW5zdGFuY2UoKSk7I289UG4odGhpcywkLCIiKTtnZXQgc2VsZWN0ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI299c2V0IHNlbGVjdGVkVGV4dChrKXt0aGlzLiNvPWt9ZWRpdG9yQ29udGVudFJlZj1Qbih0aGlzLEUpO2lzQ29tcG9zaW5nPSExO2Jsb2NrT3BlcmF0aW9ucztpbnB1dEhhbmRsZXI7a2V5Ym9hcmRIYW5kbGVyO2RyYWdEcm9wSGFuZGxlcjtoaXN0b3J5O3N0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLG50dF07Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYmxvY2tPcGVyYXRpb25zPW5ldyBFWih0aGlzKSx0aGlzLmlucHV0SGFuZGxlcj1uZXcgTlgodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IFJYKHRoaXMpLHRoaXMuZHJhZ0Ryb3BIYW5kbGVyPW5ldyBPWCh0aGlzKSx0aGlzLmhpc3Rvcnk9bmV3IEZYfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBrPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP1JjLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOlJjLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtrLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9ayl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGs9PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soaykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsKGs9PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmay5kZXRhaWwuaGFzU2VsZWN0aW9uJiZrLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9ay5kZXRhaWwudGV4dCxrLmRldGFpbC5yZWN0KSl7bGV0IFM9e3g6ay5kZXRhaWwucmVjdC5sZWZ0K2suZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LGsuZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KFMsYXN5bmMgST0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChJKSl9fSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaz0+e2xldCBTPXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKFMmJlMuY29udGFpbnMoay50YXJnZXQpKXJldHVybjtsZXQgST13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7SSYmSS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixrPT57bGV0IFM9ay50YXJnZXQ7IXRoaXMuY29udGFpbnMoUykmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKFMpfHwoKGsubWV0YUtleXx8ay5jdHJsS2V5KSYmIWsuc2hpZnRLZXkmJmsua2V5PT09InoiPyhrLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihrLm1ldGFLZXl8fGsuY3RybEtleSkmJmsuc2hpZnRLZXkmJmsua2V5PT09InoiJiYoay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKGs9PntsZXQgUz10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChrKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoUyl9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKFMuY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIixTLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsay5pZCksay50eXBlIT09ImRpdmlkZXIiKXtsZXQgUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtQLmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLFAuZHJhZ2dhYmxlPSEwLFAuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixSPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoUixrKSksUy5hcHBlbmRDaGlsZChQKX1sZXQgST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gSS5ibG9jaz1rLEkuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PWsuaWQsSS53eXNpd3lnQ29tcG9uZW50PXRoaXMsSS5oYW5kbGVycz17b25JbnB1dDppKFA9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoUCxrKSwib25JbnB1dCIpLG9uS2V5RG93bjppKFA9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bihQLGspLCJvbktleURvd24iKSxvbkZvY3VzOmkoKCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhrKSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihrKSwib25CbHVyIiksb25Db21wb3NpdGlvblN0YXJ0OmkoKCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsIm9uQ29tcG9zaXRpb25TdGFydCIpLG9uQ29tcG9zaXRpb25FbmQ6aSgoKT0+dGhpcy5pc0NvbXBvc2luZz0hMSwib25Db21wb3NpdGlvbkVuZCIpLG9uTW91c2VVcDppKFA9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihQKSwib25Nb3VzZVVwIiksb25SZXF1ZXN0VXBkYXRlOmkoKCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KGsuaWQpLCJvblJlcXVlc3RVcGRhdGUiKX0sUy5hcHBlbmRDaGlsZChJKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixQPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcihQLGspKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLFA9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoUCxrKSksUy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoaykpLFN9dXBkYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PWspO2lmKCFTKXJldHVybjtsZXQgST10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7a30iXWApO2lmKCFJKXJldHVybjtsZXQgUD10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChTKTtJLnJlcGxhY2VXaXRoKFApfXJlbmRlcigpe3JldHVybiBNbmAKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmluZm9UZXh0PSIke3RoaXMuaW5mb1RleHR9IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGspe3N3aXRjaChrLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoaz0hMSl7aWYoayYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoST0+SS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZihTKXtsZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1AuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoayl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCBTPXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuaWQsUyE9PWsuaWQpe2lmKFMpe2xldCBLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7U30iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtLJiYoSy5pc1NlbGVjdGVkPSExKX1sZXQgUD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7UCYmKFAuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKGspe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgST10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoSSYmSS5nZXRDb250ZW50KXtsZXQgUD1JLmdldENvbnRlbnQoKTtrLmNvbnRlbnQhPT1QJiYoay5jb250ZW50PVApfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soayl7bGV0IFM9ay50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksUy5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBJPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEkuaWQsSS50eXBlPT09ImRpdmlkZXIifHxJLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKGs9InBhcmFncmFwaCIsUz0iIixJKXtyZXR1cm57aWQ6Y3IuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTprLGNvbnRlbnQ6UywuLi5JJiZ7bWV0YWRhdGE6SX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoayxTLEk9ITApe2xldCBQPXRoaXMuYmxvY2tzLmZpbmRJbmRleChLPT5LLmlkPT09ay5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsUCsxKSxTLC4uLnRoaXMuYmxvY2tzLnNsaWNlKFArMSldO2xldCBSPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtrLmlkfSJdYCk7aWYoUil7bGV0IEs9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoUyk7Ui5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixLKX10aGlzLnVwZGF0ZVZhbHVlKCksSSYmUy50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoSz0+c2V0VGltZW91dChLLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKFMuaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZighUyl7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxrPT09ImNvZGUiJiYoUy5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksUy50eXBlPWssUy5jb250ZW50PVMuY29udGVudHx8IiIsaz09PSJkaXZpZGVyIil7Uy5jb250ZW50PSIgIjtsZXQgUj10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKFMsUil9ZWxzZSBrPT09Imxpc3QiPyhTLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sUy5jb250ZW50PSIiKTprPT09ImltYWdlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6az09PSJ5b3V0dWJlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6az09PSJtYXJrZG93biI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iaHRtbCI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iYXR0YWNobWVudCI/KFMuY29udGVudD0iIixTLm1ldGFkYXRhPXtmaWxlczpbXX0pOlMuY29udGVudD1TLmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KFMuaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZShSPT5zZXRUaW1lb3V0KFIsMCkpLGs9PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke1MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7SyYmSy5mb2N1c0xpc3RJdGVtKCl9KSk6ayE9PSJkaXZpZGVyIiYmayE9PSJpbWFnZSImJmshPT0ieW91dHViZSImJmshPT0ibWFya2Rvd24iJiZrIT09Imh0bWwiJiZrIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKTooaz09PSJpbWFnZSJ8fGs9PT0ieW91dHViZSJ8fGs9PT0ibWFya2Rvd24ifHxrPT09Imh0bWwifHxrPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9UmMuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT1SYy5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGspe3RoaXMudmFsdWU9ayx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz1SYy5wYXJzZUh0bWxUb0Jsb2NrcyhrKTp0aGlzLmJsb2Nrcz1SYy5wYXJzZU1hcmtkb3duVG9CbG9ja3MoayksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6Y3IuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3Moayl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShrKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIFJjLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4gUmMuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoayl7ay5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1rLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3Moay5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgUz10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO1MmJlMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKFM9PntTLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoayxTKXtpZihrLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1TLmlkKXJldHVybjtsZXQgST10aGlzLmJsb2Nrcy5maW5kSW5kZXgoVj0+Vi5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLFA9dGhpcy5ibG9ja3MuZmluZEluZGV4KFY9PlYuaWQ9PT1TLmlkKTtpZihJPT09LTF8fFA9PT0tMSlyZXR1cm47bGV0W1JdPXRoaXMuYmxvY2tzLnNwbGljZShJLDEpLEs9UDt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP0s9STxQP1A6UCsxOks9STxQP1AtMTpQLHRoaXMuYmxvY2tzLnNwbGljZShLLDAsUiksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Ui5pZH0iXSAuYmxvY2tgKTtWJiZSLnR5cGUhPT0iZGl2aWRlciImJlYuZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKGspe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBrPVtdO3RoaXMuc2hhZG93Um9vdCYmay5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKFA9PntsZXQgUj1QLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1I/LnNoYWRvd1Jvb3QmJmsucHVzaChSLnNoYWRvd1Jvb3QpfSk7bGV0IEk9c3UuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uayk7SSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkkueCx5OkkueX0sYXN5bmMgUD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChQKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoayl7bGV0IFM9W107dGhpcy5zaGFkb3dSb290JiZTLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2gobWU9PntsZXQgQj1tZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtCPy5zaGFkb3dSb290JiZTLnB1c2goQi5zaGFkb3dSb290KX0pO2xldCBQPVN0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoIVApcmV0dXJuO2xldCBSLEssVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IG1lPTA7bWU8Vi5sZW5ndGg7bWUrKyl7bGV0IEI9VlttZV0sVT1CLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFU/LnNoYWRvd1Jvb3Qpe2xldCBoZT1VLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoaGUmJihoZS5jb250YWlucyhQLnN0YXJ0Q29udGFpbmVyKXx8aGUuY29udGFpbnMoUC5lbmRDb250YWluZXIpKSl7bGV0IEY9Qi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtSPXRoaXMuYmxvY2tzLmZpbmQoaj0+ai5pZD09PUYpLEs9VTticmVha319fWlmKCFSfHwhSylyZXR1cm47bGV0IFc9U3QuY3JlYXRlUmFuZ2VGcm9tSW5mbyhQKTtpZihrPT09ImxpbmsiKXtsZXQgbWU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFtZSl7Sy5mb2N1cygpO3JldHVybn1zdS5hcHBseUZvcm1hdChrLG1lLFcsUyl9ZWxzZSBzdS5hcHBseUZvcm1hdChrLHZvaWQgMCxXLFMpO2F3YWl0IG5ldyBQcm9taXNlKG1lPT5zZXRUaW1lb3V0KG1lLDEwKSksUi5jb250ZW50PUsuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxLLmZvY3VzKCksaz09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKGs9PntsZXQgUz1udWxsO1FhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50Ok1uYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0k9PntpZihJLmtleT09PSJFbnRlciIpe2xldCBQPUkudGFyZ2V0O1M9UC52YWx1ZTtsZXQgUj1QLmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZihSKXtsZXQgSz1SLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO0smJksuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtJPT57Uz1JLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBJPT57SS5kZXN0cm95KCksayhudWxsKX0sImFjdGlvbiIpfSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjppKGFzeW5jIEk9PntJLmRlc3Ryb3koKSxrKFMpfSwiYWN0aW9uIil9XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgST1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7SSYmSS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBrPXRoaXMuaGlzdG9yeS51bmRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVkbygpe2xldCBrPXRoaXMuaGlzdG9yeS5yZWRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVzdG9yZVN0YXRlKGspe3RoaXMuYmxvY2tzPWsuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGsuY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBJPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ay5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0kmJkkuZm9jdXNXaXRoQ3Vyc29yKGsuY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOmsuc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhrLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShrPSEwKXtsZXQgUztpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IFA9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQJiZ0eXBlb2YgUC5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0IFI9UC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihSKXtsZXQgSz1QLmdldEN1cnNvclBvc2l0aW9uKFIpO0shPT1udWxsJiYoUz17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6S30pfX19az90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFMpOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCxTKX1zdGF0aWN7UG4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIGIzYSx2M2E9ZygoKT0+e3BlKCk7SXQoKTtLY2UoKTtmbygpO2IzYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJpY2ggVGV4dCBFZGl0b3IifSAuc3VidGl0bGU9JHsiQSBmdWxsLWZlYXR1cmVkIHJpY2ggdGV4dCBlZGl0b3Igd2l0aCBmb3JtYXR0aW5nIHRvb2xiYXIifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBcnRpY2xlIENvbnRlbnQifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDE+V2VsY29tZSB0byB0aGUgUmljaCBUZXh0IEVkaXRvciE8L2gxPjxwPlRoaXMgaXMgYSBmZWF0dXJlLXJpY2ggZWRpdG9yIGJ1aWx0IHdpdGggVGlwVGFwLiBZb3UgY2FuOjwvcD48dWw+PGxpPjxzdHJvbmc+Rm9ybWF0IHRleHQ8L3N0cm9uZz4gd2l0aCA8ZW0+dmFyaW91czwvZW0+IDx1PnN0eWxlczwvdT48L2xpPjxsaT5DcmVhdGUgZGlmZmVyZW50IGhlYWRpbmcgbGV2ZWxzPC9saT48bGk+QWRkIDxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS5jb20iPmxpbmtzPC9hPiB0byBleHRlcm5hbCByZXNvdXJjZXM8L2xpPjxsaT5Xcml0ZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4gb3IgY29kZSBibG9ja3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+PHA+VXNlIHRoZSB0b29sYmFyIGFib3ZlIHRvIGV4cGxvcmUgYWxsIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnMgYXZhaWxhYmxlITwvcD48L2Jsb2NrcXVvdGU+PHA+U3RhcnQgdHlwaW5nIHRvIHNlZSB0aGUgbWFnaWMgaGFwcGVuLi4uPC9wPid9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXNlIHRoZSB0b29sYmFyIHRvIGZvcm1hdCB5b3VyIGNvbnRlbnQgd2l0aCBoZWFkaW5ncywgbGlzdHMsIGxpbmtzLCBhbmQgbW9yZSJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRoIFBsYWNlaG9sZGVyIn0gLnN1YnRpdGxlPSR7IkVtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJCbG9nIFBvc3QifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gRGlmZmVyZW50IEhlaWdodHMifSAuc3VidGl0bGU9JHsiRWRpdG9ycyB3aXRoIGRpZmZlcmVudCBtaW5pbXVtIGhlaWdodHMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTaG9ydCBOb3RlIn0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHsxNTB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJRdWljayBub3RlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRXh0ZW5kZWQgQ29udGVudCJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MzAwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIENvZGUgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiRWRpdG9yIHByZS1maWxsZWQgd2l0aCBjb2RlIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiVGVjaG5pY2FsIERvY3VtZW50YXRpb24ifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+SW5zdGFsbGF0aW9uIEd1aWRlPC9oMj48cD5UbyBpbnN0YWxsIHRoZSBwYWNrYWdlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD48cHJlPjxjb2RlPm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT48cD5UaGVuIGltcG9ydCB0aGUgY29tcG9uZW50IGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlOjwvcD48cHJlPjxjb2RlPmltcG9ydCB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIjs8L2NvZGU+PC9wcmU+PHA+WW91IGNhbiBub3cgdXNlIHRoZSA8Y29kZT4mbHQ7ZGVlcy1pbnB1dC1yaWNodGV4dCZndDs8L2NvZGU+IGVsZW1lbnQgaW4geW91ciB0ZW1wbGF0ZXMuPC9wPid9CiAgICAgICAgICAubWluSGVpZ2h0PSR7MjUwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUHVibGlzaGVkIEFydGljbGUgKFJlYWQgT25seSkifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+IlRoZSBmdXR1cmUgb2Ygd2ViIGRldmVsb3BtZW50IGxpZXMgaW4gcmV1c2FibGUsIGVuY2Fwc3VsYXRlZCBjb21wb25lbnRzLiI8L3A+PC9ibG9ja3F1b3RlPid9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZWRpdG9yIgogICAgICAgICAgLmxhYmVsPSR7IlRyeSBpdCB5b3Vyc2VsZiJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgIEBjaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3Iik7ZSYmKGUudGV4dENvbnRlbnQ9cy5kZXRhaWwudmFsdWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ib3V0cHV0LXByZXZpZXciPgogICAgICAgICAgPGVtPkhUTUwgb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgeDNhLHkzYT1nKCgpPT57cGUoKTt6aSgpO3B0KCk7eDNhPVtIZSwuLi5PdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZvY3VzZWQ6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHAgewogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHVsLAogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIG9sIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtOwogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBsaSB7CiAgICAgICAgbWFyZ2luOiAwLjI1ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTsKICAgICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0ZpcmEgQ29kZScsICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsICdSb2JvdG8gTW9ubycsIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMWVtOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNDEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDY5LjglKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLndvcmQtY291bnQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIGRlZXMtdGlsZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b29sYmFyLWJ1dHRvbiwKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF19KTt2YXIgdzNhLGszYT1nKCgpPT57cGUoKTt3M2E9aShzPT53YAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgJHtzLmxhYmVsP3dgPGxhYmVsIGNsYXNzPSJsYWJlbCI+JHtzLmxhYmVsfTwvbGFiZWw+YDoiIn0KICAgICAgICAgIDxkZWVzLXRpbGUgY2xhc3M9IiR7cy5lZGl0b3I/LmlzRm9jdXNlZD8iZm9jdXNlZCI6IiJ9IiBzdHlsZT0iLS1taW4taGVpZ2h0OiAke3MubWluSGVpZ2h0fXB4Ij4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJlZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICAgICAgJHtzLnJlbmRlclRvb2xiYXIoKX0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0ICR7cy5zaG93TGlua0lucHV0PyJzaG93IjoiIn0iPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InVybCIgcGxhY2Vob2xkZXI9IkVudGVyIFVSTC4uLiIgQGtleWRvd249JHtzLmhhbmRsZUxpbmtJbnB1dEtleWRvd259IC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmltYXJ5IiBAY2xpY2s9JHtzLnNhdmVMaW5rfT5TYXZlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7cy5yZW1vdmVMaW5rfT5SZW1vdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHtzLmhpZGVMaW5rSW5wdXR9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+PC9kaXY+CiAgICAgICAgICAgICR7cy5zaG93V29yZENvdW50P3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7cy53b3JkQ291bnR9IHdvcmQke3Mud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAgICR7cy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgIDwvZGl2PgogICAgICBgLCJyZW5kZXJSaWNodGV4dCIpfSk7dmFyIGZnLFhsLFljZSxLY2U9ZygoKT0+e3ppKCk7djNhKCk7eTNhKCk7azNhKCk7VWEoKTtwZSgpO2Z1KCk7bnIoKTtmZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sWGw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFljZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sZSx0PVtdLGEscj1PdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UmljaHRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sZmcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxmZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJwbGFjZWhvbGRlciJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UucGxhY2Vob2xkZXI9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLGZnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2hvd1dvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dXb3JkQ291bnQsImdldCIpLHNldDppKChFLEgpPT57RS5zaG93V29yZENvdW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxmZyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluSGVpZ2h0ImluIEUsImhhcyIpLGdldDppKEU9PkUubWluSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWluSGVpZ2h0PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxmZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dMaW5rSW5wdXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93TGlua0lucHV0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2hvd0xpbmtJbnB1dD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksZmcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+IndvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLndvcmRDb3VudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLndvcmRDb3VudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksZmcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1iM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVhsKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0oWGwodGhpcyxsKSxYbCh0aGlzLGQsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoJCl7dGhpcy4jdD0kfSNhPShYbCh0aGlzLHUpLFhsKHRoaXMsYiwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dXb3JkQ291bnQoJCl7dGhpcy4jYT0kfSNzPShYbCh0aGlzLHYpLFhsKHRoaXMsbSwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbkhlaWdodCgkKXt0aGlzLiNzPSR9I2k9KFhsKHRoaXMsZiksWGwodGhpcyxNLCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xpbmtJbnB1dCgkKXt0aGlzLiNpPSR9I3I9KFhsKHRoaXMseiksWGwodGhpcyxDLDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdvcmRDb3VudCgkKXt0aGlzLiNyPSR9ZWRpdG9yRWxlbWVudD1YbCh0aGlzLF8pO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9eDNhO3JlbmRlcigpe3JldHVybiB3M2EodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCAkPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gd2AKICAgICAgJHskLm1hcChFPT5FLmlzRGl2aWRlcj93YDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtFLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke0UuYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke0UudGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke0UuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQm9sZCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYm9sZCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiaXRhbGljIixpY29uOiJsdWNpZGU6aXRhbGljIix0aXRsZToiSXRhbGljIChDdHJsK0kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUl0YWxpYygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaXRhbGljIiksImlzQWN0aXZlIil9LHtuYW1lOiJ1bmRlcmxpbmUiLGljb246Imx1Y2lkZTp1bmRlcmxpbmUiLHRpdGxlOiJVbmRlcmxpbmUgKEN0cmwrVSkiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKSwiaXNBY3RpdmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgic3RyaWtlIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMSIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToiaDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSIsdGl0bGU6IkhlYWRpbmcgMSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoxfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6MX0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiIsdGl0bGU6IkhlYWRpbmcgMiIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDozfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6M30pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjIiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImJ1bGxldExpc3QiLGljb246Imx1Y2lkZTpsaXN0Iix0aXRsZToiQnVsbGV0IExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQnVsbGV0TGlzdCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYnVsbGV0TGlzdCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToib3JkZXJlZExpc3QiLGljb246Imx1Y2lkZTpsaXN0T3JkZXJlZCIsdGl0bGU6Ik51bWJlcmVkIExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0IiksImlzQWN0aXZlIil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCbG9ja3F1b3RlKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJibG9ja3F1b3RlIiksImlzQWN0aXZlIil9LHtuYW1lOiJjb2RlIixpY29uOiJsdWNpZGU6Y29kZSIsdGl0bGU6IkNvZGUiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQ29kZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiY29kZUJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUiLHRpdGxlOiJDb2RlIEJsb2NrIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOmkoKCk9PnRoaXMudG9nZ2xlTGluaygpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25MZWZ0IixpY29uOiJsdWNpZGU6YWxpZ25MZWZ0Iix0aXRsZToiQWxpZ24gTGVmdCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oImxlZnQiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoibGVmdCJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduQ2VudGVyIixpY29uOiJsdWNpZGU6YWxpZ25DZW50ZXIiLHRpdGxlOiJBbGlnbiBDZW50ZXIiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oInJpZ2h0IikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246InJpZ2h0In0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjQiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6InVuZG8iLGljb246Imx1Y2lkZTp1bmRvIix0aXRsZToiVW5kbyAoQ3RybCtaKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bmRvKCkucnVuKCksImFjdGlvbiIpfSx7bmFtZToicmVkbyIsaWNvbjoibHVjaWRlOnJlZG8iLHRpdGxlOiJSZWRvIChDdHJsK1kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJlZG8oKS5ydW4oKSwiYWN0aW9uIil9XTpbXX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMudGlwdGFwQnVuZGxlPWF3YWl0IFFyLmdldEluc3RhbmNlKCkubG9hZFRpcHRhcCgpLHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5saW5rSW5wdXRFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubGluay1pbnB1dCBpbnB1dCIpLHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWluaXRpYWxpemVFZGl0b3IoKXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy50aXB0YXBCdW5kbGUpcmV0dXJuO2xldHtFZGl0b3I6JCxTdGFydGVyS2l0OkUsVW5kZXJsaW5lOkgsVGV4dEFsaWduOmssTGluazpTLFR5cG9ncmFwaHk6SX09dGhpcy50aXB0YXBCdW5kbGU7dGhpcy5lZGl0b3I9bmV3ICQoe2VsZW1lbnQ6dGhpcy5lZGl0b3JFbGVtZW50LGV4dGVuc2lvbnM6W0UuY29uZmlndXJlKHtoZWFkaW5nOntsZXZlbHM6WzEsMiwzXX19KSxILmNvbmZpZ3VyZSh7fSksay5jb25maWd1cmUoe3R5cGVzOlsiaGVhZGluZyIsInBhcmFncmFwaCJdfSksUy5jb25maWd1cmUoe29wZW5PbkNsaWNrOiExLEhUTUxBdHRyaWJ1dGVzOntjbGFzczoiZWRpdG9yLWxpbmsifX0pLEkuY29uZmlndXJlKHt9KV0sY29udGVudDp0aGlzLnZhbHVlfHwodGhpcy5wbGFjZWhvbGRlcj9gPHA+JHt0aGlzLnBsYWNlaG9sZGVyfTwvcD5gOiIiKSxvblVwZGF0ZTppKCh7ZWRpdG9yOlB9KT0+e3RoaXMudmFsdWU9UC5nZXRIVE1MKCksdGhpcy51cGRhdGVXb3JkQ291bnQoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJvblVwZGF0ZSIpLG9uU2VsZWN0aW9uVXBkYXRlOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uU2VsZWN0aW9uVXBkYXRlIiksb25Gb2N1czppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvbkZvY3VzIiksb25CbHVyOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uQmx1ciIpfSksdGhpcy51cGRhdGVXb3JkQ291bnQoKX11cGRhdGVXb3JkQ291bnQoKXtpZighdGhpcy5lZGl0b3IpcmV0dXJuO2xldCAkPXRoaXMuZWRpdG9yLmdldFRleHQoKTt0aGlzLndvcmRDb3VudD0kLnRyaW0oKT8kLnRyaW0oKS5zcGxpdCgvXHMrLykubGVuZ3RoOjB9dG9nZ2xlTGluaygpe2lmKHRoaXMuZWRpdG9yKWlmKHRoaXMuZWRpdG9yLmlzQWN0aXZlKCJsaW5rIikpe2xldCAkPXRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoImxpbmsiKS5ocmVmO3RoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9JHx8IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCksdGhpcy5saW5rSW5wdXRFbGVtZW50LnNlbGVjdCgpKX0pfWVsc2UgdGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT0iIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSl9KX1zYXZlTGluaygpe2lmKCF0aGlzLmVkaXRvcnx8IXRoaXMubGlua0lucHV0RWxlbWVudClyZXR1cm47bGV0ICQ9dGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlOyQmJnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRMaW5rKHtocmVmOiR9KS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKX1yZW1vdmVMaW5rKCl7dGhpcy5lZGl0b3ImJih0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5zZXRMaW5rKCkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCkpfWhpZGVMaW5rSW5wdXQoKXt0aGlzLnNob3dMaW5rSW5wdXQ9ITEsdGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9aGFuZGxlTGlua0lucHV0S2V5ZG93bigkKXskLmtleT09PSJFbnRlciI/KCQucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVMaW5rKCkpOiQua2V5PT09IkVzY2FwZSImJigkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlTGlua0lucHV0KCkpfXNldFZhbHVlKCQpe3RoaXMudmFsdWU9JCx0aGlzLmVkaXRvciYmJCE9PXRoaXMuZWRpdG9yLmdldEhUTUwoKSYmdGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0Q29udGVudCgkKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfWNsZWFyKCl7dGhpcy5zZXRWYWx1ZSgiIil9Zm9jdXMoKXt0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmRlc3Ryb3koKX1zdGF0aWN7WGwoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIFMzYSxfM2E9ZygoKT0+e2dpdCgpO3BvKCk7cGUoKTtJdCgpO1MzYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGljaz0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImRhcmsiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIFRhYmxlIHdpdGggQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgc3RhbmRhcmQgdGFibGUgd2l0aCByb3cgYWN0aW9ucywgZWRpdGFibGUgY2VsbHMsIGFuZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4gRG91YmxlLWNsaWNrIGFueSBjZWxsIHRvIGVkaXQuIFRhYiBtb3ZlcyB0byB0aGUgbmV4dCBlZGl0YWJsZSBjZWxsLCBFbnRlciB0byB0aGUgcm93IGJlbG93LCBFc2MgY2FuY2Vscy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJkYXRlIixoZWFkZXI6IkRhdGUiLHNvcnRhYmxlOiEwLGVkaXRhYmxlOiEwLGVkaXRvcjoiZGF0ZSJ9LHtrZXk6ImFtb3VudCIsaGVhZGVyOiJBbW91bnQiLGVkaXRhYmxlOiEwLGVkaXRvcjoidGV4dCJ9LHtrZXk6ImNhdGVnb3J5IixoZWFkZXI6IkNhdGVnb3J5IixlZGl0YWJsZTohMCxlZGl0b3I6ImRyb3Bkb3duIixlZGl0b3JPcHRpb25zOntvcHRpb25zOlt7b3B0aW9uOiJPZmZpY2UgU3VwcGxpZXMiLGtleToib2ZmaWNlIn0se29wdGlvbjoiSGFyZHdhcmUiLGtleToiaGFyZHdhcmUifSx7b3B0aW9uOiJTb2Z0d2FyZSIsa2V5OiJzb2Z0d2FyZSJ9LHtvcHRpb246IlRyYXZlbCIsa2V5OiJ0cmF2ZWwifV19fSx7a2V5OiJkZXNjcmlwdGlvbiIsaGVhZGVyOiJEZXNjcmlwdGlvbiIsZWRpdGFibGU6ITB9LHtrZXk6InJlY29uY2lsZWQiLGhlYWRlcjoiT0siLGVkaXRhYmxlOiEwLGVkaXRvcjoiY2hlY2tib3gifV19CiAgICAgICAgICBAY2VsbEVkaXQ9JHtzPT5jb25zb2xlLmxvZygiY2VsbEVkaXQiLHMuZGV0YWlsKX0KICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixjYXRlZ29yeToib2ZmaWNlIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDIiLGFtb3VudDoiMTY1LjY1IFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTG9naXRlY2ggTW91c2UgLSBsb2dpLmNvbSBPbmxpbmVTaG9wIixyZWNvbmNpbGVkOiExfSx7ZGF0ZToiMjAyMS0wNC0wMyIsYW1vdW50OiIyOTk5LDAwIFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIC0gQXBwbGUuZGUgT25saW5lU2hvcCIscmVjb25jaWxlZDohMX0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH1dfQogICAgICAgICAgZGF0YU5hbWU9InRyYW5zYWN0aW9ucyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6InVwbG9hZCIsaWNvbk5hbWU6ImJlbGwiLHVzZVRhYmxlQmVoYXZpb3VyOiJ1cGxvYWQiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57YWxlcnQocy5pdGVtLmFtb3VudCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJ2aXNpYmlsaXR5IixpY29uTmFtZToiY29weSIsdHlwZTpbImluUm93Il0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6InRvIGdhbGxlcnkiLGljb25OYW1lOiJtZXNzYWdlIix0eXBlOlsiZm9vdGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY29weSIsaWNvbk5hbWU6ImNvcHlTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51IiwiaW5Sb3ciXSxhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX0se25hbWU6ImVkaXQgKGZyb20gZGVtbykiLGljb25OYW1lOiJwZW5Ub1NxdWFyZSIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9LHtuYW1lOiJwYXN0ZSIsaWNvbk5hbWU6InBhc3RlU29saWQiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjppKGFzeW5jKCk9Pm51bGwsImFjdGlvbiIpfSx7bmFtZToicHJldmlldyIsdHlwZTpbImRvdWJsZUNsaWNrIiwiY29udGV4dG1lbnUiXSxpY29uTmFtZToiZXllIixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+KGFsZXJ0KHMuaXRlbS5hbW91bnQpLG51bGwpLCJhY3Rpb25GdW5jIil9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e2NvbnNvbGUubG9nKCJDb25uZWN0aW5nIHRvOiIscy5pdGVtLnNlcnZlcil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6ZmlsZS10ZXh0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IlJlc3RhcnQgU2VydmVyIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlJlc3RhcnRpbmc6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cz0+KHtQcm9kdWN0OnMucHJvZHVjdCwiVW5pdHMgU29sZCI6cy51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK3MucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDoocy5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK3MuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjppKHM9PndgPGRlZXMtYmFkZ2U+JHtzfTwvZGVlcy1iYWRnZT5gLCJyZW5kZXJlciIpfSx7a2V5OiJqb2luZWRBdCIsaGVhZGVyOiJKb2luZWQiLHJlbmRlcmVyOmkocz0+bmV3IERhdGUocykudG9Mb2NhbGVEYXRlU3RyaW5nKCksInJlbmRlcmVyIil9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSIsZW1haWw6ImFsaWNlQGV4YW1wbGUuY29tIixqb2luZWRBdDoiMjAyMi0wOC0wMSJ9LHtuYW1lOiJCb2IiLGVtYWlsOiJib2JAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIxLTEyLTExIn0se25hbWU6IkNhcm9sIixlbWFpbDoiY2Fyb2xAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIzLTAzLTIyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudCkiCiAgICAgICAgICBoZWFkaW5nMj0iTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke3M9Pih7bmFtZTpzLm5hbWUsZW1haWw6cy5lbWFpbCxyb2xlOnMucm9sZX0pfQogICAgICAgICAgLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiRXJpbiIsZW1haWw6ImVyaW5AZXhhbXBsZS5jb20iLHJvbGU6IkFkbWluIn0se25hbWU6IkZpbm4iLGVtYWlsOiJmaW5uQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn0se25hbWU6IkdpbmEiLGVtYWlsOiJnaW5hQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIiAKICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2NvbnNvbGUubG9nKCJTZWxlY3Rpb24gY2hhbmdlZCIscy5kZXRhaWwpfX0KICAgICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtzPT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dChzLmRldGFpbC52YWx1ZSl9fQogICAgICAgICAgIEBzZWFyY2gtc3VibWl0PSR7cz0+e2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZUZpbHRlclNlbGVjdERlbW8iKTtlJiZlLnNldEZpbHRlclRleHQocy5kZXRhaWwudmFsdWUpfX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPgogICAgICAgIDxkZWVzLXNlYXJjaGJhcj48L2RlZXMtc2VhcmNoYmFyPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTJweCI+PC9kaXY+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJ0YWJsZUZpbHRlclNlbGVjdERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iSW52ZW50b3J5IChGaWx0ZXIgKyBTZWxlY3QpIgogICAgICAgICAgaGVhZGluZzI9IlRyeSB0eXBpbmcgdG8gZmlsdGVyIGFuZCBzZWxlY3RpbmcgbXVsdGlwbGUgcm93cyIKICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7Im11bHRpIn0KICAgICAgICAgIC5yb3dLZXk9JHsic2t1In0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InNrdSIsaGVhZGVyOiJTS1UiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJzdG9jayIsaGVhZGVyOiJTdG9jayIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tza3U6IkEtMTAwIixuYW1lOiJVU0ItQyBDYWJsZSIsc3RvY2s6MTIwfSx7c2t1OiJBLTEwMSIsbmFtZToiV2lyZWxlc3MgTW91c2UiLHN0b2NrOjU1fSx7c2t1OiJBLTEwMiIsbmFtZToiTGFwdG9wIFN0YW5kIixzdG9jazoxOH0se3NrdToiQi0yMDAiLG5hbWU6IktleWJvYXJkIChJU08pIixzdG9jazo4OX0se3NrdToiQi0yMDEiLG5hbWU6IkhETUkgQWRhcHRlciIsc3RvY2s6MH0se3NrdToiQy0zMDAiLG5hbWU6IldlYmNhbSAxMDgwcCIsc3RvY2s6NDJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Db2x1bW4gRmlsdGVycyArIFN0aWNreSBIZWFkZXIgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5QZXItY29sdW1uIHF1aWNrIGZpbHRlcnMgYW5kIHN0aWNreSBoZWFkZXIgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRyeSBmaWx0ZXJpbmcgdGhlIE5hbWUgY29sdW1uLiBVc2VzIC0tdGFibGUtbWF4LWhlaWdodCB2YXIuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgIGRlZXMtdGFibGVbZml4ZWQtaGVpZ2h0XSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLmZpeGVkSGVpZ2h0PSR7ITB9CiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSBKb2huc29uIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkJvYiBTbWl0aCIsZW1haWw6ImJvYkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiQ2hhcmxpZSBEYXZpcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkhSIn0se25hbWU6IkRpYW5hIE1hcnRpbmV6IixlbWFpbDoiZGlhbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkV0aGFuIEJyb3duIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiRmlvbmEgQ2xhcmsiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiR3JhY2UgTGVlIixlbWFpbDoiZ3JhY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkhlbnJ5IFdpbHNvbiIsZW1haWw6ImhlbnJ5QGNvcnAuY29tIixkZXBhcnRtZW50OiJNYXJrZXRpbmcifSx7bmFtZToiSXJlbmUgV2Fsa2VyIixlbWFpbDoiaXJlbmVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiSmFjayBUdXJuZXIiLGVtYWlsOiJqYWNrQGNvcnAuY29tIixkZXBhcnRtZW50OiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9ImVtcGxveWVlcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiIKICAgICAgICBAc2VhcmNoUmVxdWVzdD0ke2FzeW5jIHM9PntsZXR7cXVlcnk6ZX09cy5kZXRhaWx8fHtxdWVyeToiIn0sdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VydmVyU2VhcmNoRGVtbyIpLGE9W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV07YXdhaXQgbmV3IFByb21pc2Uobz0+c2V0VGltZW91dChvLDMwMCkpO2xldCByPVN0cmluZyhlfHwiIikudG9Mb3dlckNhc2UoKSxuPXI/YS5maWx0ZXIobz0+T2JqZWN0LnZhbHVlcyhvKS5zb21lKGw9PlN0cmluZyhsKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHIpKSk6YTt0LmRhdGE9bn19CiAgICAgID4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNlcnZlciBTZWFyY2ggKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5TZWxlY3QgU2VydmVyIG1vZGUsIHR5cGUgYSBxdWVyeSwgYW5kIHdhdGNoIHRoZSB0YWJsZSBmZXRjaCBzaW11bGF0ZWQgcmVzdWx0cy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzZXJ2ZXJTZWFyY2hEZW1vIgogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSAoU2VydmVyIFNlYXJjaCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ2xpY2sgU2VhcmNoLCBjaG9vc2UgU2VydmVyIG1vZGUsIGFuZCB0eXBlIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIn0se2tleToiY2l0eSIsaGVhZGVyOiJDaXR5In0se2tleToidGl0bGUiLGhlYWRlcjoiVGl0bGUifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9InBlb3BsZSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aS1Db2x1bW4gU29ydDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2xpY2sgYW55IGNvbHVtbiBoZWFkZXIgZm9yIGEgc2luZ2xlLWNvbHVtbiBzb3J0LiBIb2xkIFNoaWZ0IHdoaWxlIGNsaWNraW5nIHRvIGFkZCB0aGUKICAgICAgICAgIGNvbHVtbiB0byBhIG11bHRpLXNvcnQgY2FzY2FkZSAob3IgY3ljbGUgaXRzIGRpcmVjdGlvbikuIFJpZ2h0LWNsaWNrIGFueSBzb3J0YWJsZSBoZWFkZXIKICAgICAgICAgIHRvIG9wZW4gYSBtZW51IHdoZXJlIHlvdSBjYW4gcGluIGEgY29sdW1uIHRvIGEgc3BlY2lmaWMgcHJpb3JpdHkgc2xvdCwgcmVtb3ZlIGl0LCBvcgogICAgICAgICAgY2xlYXIgdGhlIGNhc2NhZGUuCiAgICAgICAgPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJQcmUtc2VlZGVkIHdpdGggZGVwYXJ0bWVudCDilrIgMSwgbmFtZSDilrIgMiIKICAgICAgICAgIC5zb3J0Qnk9JHtbe2tleToiZGVwYXJ0bWVudCIsZGlyOiJhc2MifSx7a2V5OiJuYW1lIixkaXI6ImFzYyJ9XX0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe2RlcGFydG1lbnQ6IlImRCIsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJNYXJrIExlZSIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyNC0wMy0wNCIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJTYXJhIEtpbSIscm9sZToiRGVzaWduZXIiLGNyZWF0ZWRBdDoiMjAyMS0wOC0xOSIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiSGVsZW5hIFZvc3MiLHJvbGU6IlNSRSIsY3JlYXRlZEF0OiIyMDIzLTA3LTIyIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJRQSIsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IlFBIixuYW1lOiJUb21ceEUxcyBSaXZlcmEiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjQtMDEtMDkiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IkNTIixuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSJ9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5XaWRlIFByb3BlcnRpZXMgKyBNYW55IEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHRhYmxlIHdpdGggbWFueSBjb2x1bW5zIGFuZCByaWNoIGFjdGlvbnMgdG8gc3RyZXNzIHRlc3QgbGF5b3V0IGFuZCBzdGlja3kgQWN0aW9ucy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IgogICAgICAgICAgaGVhZGluZzI9Ik1hbnkgcHJvcGVydGllcyBhbmQgYWN0aW9ucyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUiZEIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTEiLGxvY2F0aW9uOiJCZXJsaW4iLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjMtMDEtMTIiLHVwZGF0ZWRBdDoiMjAyNC0wNS0wMyIsbGFzdExvZ2luOiIyMDI0LTEwLTAxIixwcm9qZWN0czo1LHRhZ3M6InR5cGVzY3JpcHQsIHVpIixub3RlczoiTWVudG9yIn0se2lkOjIsbmFtZToiQm9iIFNtaXRoIixyb2xlOiJEZXNpZ25lciIsZGVwYXJ0bWVudDoiRGVzaWduIixlbWFpbDoiYm9iQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEyIixsb2NhdGlvbjoiUGFyaXMiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLHVwZGF0ZWRBdDoiMjAyNC0wNC0xMCIsbGFzdExvZ2luOiIyMDI0LTA5LTI4Iixwcm9qZWN0czo4LHRhZ3M6ImZpZ21hLCBicmFuZCIsbm90ZXM6IlBhcnQtdGltZSJ9LHtpZDozLG5hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6Ik1hbmFnZXIiLGRlcGFydG1lbnQ6Ik9wcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTMiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiT24gTGVhdmUiLGNyZWF0ZWRBdDoiMjAyMS0wNC0yMSIsdXBkYXRlZEF0OiIyMDI0LTAyLTE1IixsYXN0TG9naW46IjIwMjQtMDgtMTIiLHByb2plY3RzOjMsdGFnczoic3JlLCBsZWFkZXJzaGlwIixub3RlczoiIn0se2lkOjQsbmFtZToiRGlhbmEgTWFydGluZXoiLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJQbGF0Zm9ybSIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE0Iixsb2NhdGlvbjoiTWFkcmlkIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIwLTA2LTMwIix1cGRhdGVkQXQ6IjIwMjQtMDYtMjUiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMiIscHJvamVjdHM6Nix0YWdzOiJub2RlLCBhcGkiLG5vdGVzOiJPbi1jYWxsIn0se2lkOjUsbmFtZToiRXRoYW4gQnJvd24iLHJvbGU6IlN1cHBvcnQiLGRlcGFydG1lbnQ6IkNTIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTUiLGxvY2F0aW9uOiJSb21lIixzdGF0dXM6IkluYWN0aXZlIixjcmVhdGVkQXQ6IjIwMTktMDktMTgiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wOSIsbGFzdExvZ2luOiIyMDI0LTA2LTE5Iixwcm9qZWN0czoyLHRhZ3M6InplbmRlc2siLG5vdGVzOiJSZWhpcmUifSx7aWQ6NixuYW1lOiJGaW9uYSBDbGFyayIscm9sZToiUUEiLGRlcGFydG1lbnQ6IlFBIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTYiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wMSIsbGFzdExvZ2luOiIyMDI0LTA5LTA3Iixwcm9qZWN0czo3LHRhZ3M6InBsYXl3cmlnaHQiLG5vdGVzOiIifV19CiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTpzfSk9Pntjb25zb2xlLmxvZygidmlldyIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJlZGl0IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coImRlbGV0ZSIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNZXNzYWdlIixpY29uTmFtZToibHVjaWRlOm1lc3NhZ2Utc3F1YXJlIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coIm1lc3NhZ2UiLHMpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJoaXN0b3J5IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkFkZCBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImFkZCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRXhwb3J0IENTViIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImV4cG9ydCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImJ1bGsgZGVsZXRlIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY3JvbGxhYmxlIFNtYWxsIEhlaWdodDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIG1hbnkgaXRlbXMgYW5kIGEgc21hbGwgZml4ZWQgaGVpZ2h0IHRvIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGluZyBpbnNpZGUgdGhlIHRhYmxlLiBBY3Rpb25zIHJlbWFpbiB2aXNpYmxlIG9uIHRoZSByaWdodDsgaG9yaXpvbnRhbCBzY3JvbGwgYXBwZWFycyBpZiBuZWVkZWQuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICNzY3JvbGxTbWFsbEhlaWdodCB7IC0tdGFibGUtbWF4LWhlaWdodDogMjQwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2Nyb2xsU21hbGxIZWlnaHQiCiAgICAgICAgICAuZml4ZWRIZWlnaHQ9JHshMH0KICAgICAgICAgIC52aXJ0dWFsaXplZD0keyEwfQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkgKFNjcm9sbGFibGUsIFZpcnR1YWxpemVkKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LChzLGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2RlbW9MaXZlRmxhc2giKTtpZighZSlyZXR1cm47ZS5fX2xpdmVGbGFzaFRpbWVySWQmJndpbmRvdy5jbGVhckludGVydmFsKGUuX19saXZlRmxhc2hUaW1lcklkKTtsZXQgdD1pKCgpPT57aWYoIUFycmF5LmlzQXJyYXkoZS5kYXRhKXx8ZS5kYXRhLmxlbmd0aD09PTApcmV0dXJuO2xldCBhPWUuZGF0YS5tYXAobj0+KHsuLi5ufSkpLHI9MStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyk7Zm9yKGxldCBuPTA7bjxyO24rKyl7bGV0IG89TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmEubGVuZ3RoKSxsPSsoKE1hdGgucmFuZG9tKCkqMi0xKSozKS50b0ZpeGVkKDIpLHA9TWF0aC5tYXgoMSwrKGFbb10ucHJpY2UrbCkudG9GaXhlZCgyKSk7YVtvXT17Li4uYVtvXSxwcmljZTpwLGNoYW5nZTpsLHVwZGF0ZWRBdDpuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfX1lLmRhdGE9YX0sInRpY2siKTtlLl9fbGl2ZUZsYXNoVGltZXJJZD13aW5kb3cuc2V0SW50ZXJ2YWwodCwxNTAwKX19PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxpdmUgVXBkYXRlcyB3aXRoIEZsYXNoIEhpZ2hsaWdodGluZzwvaDI+CiAgICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgIE9wdC1pbiBjZWxsLWZsYXNoIHZpYSA8Y29kZT5oaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giPC9jb2RlPi4gVGhlIHRpY2tlciBiZWxvdyBtdXRhdGVzCiAgICAgICAgICAgIHJhbmRvbSByb3dzIGV2ZXJ5IDEuNXMgYW5kIHJlYXNzaWducyA8Y29kZT4uZGF0YTwvY29kZT4uIFVwZGF0ZWQgY2VsbHMgYnJpZWZseSBmbGFzaAogICAgICAgICAgICBhbWJlciBhbmQgZmFkZSBvdXQuIFJlcXVpcmVzIDxjb2RlPnJvd0tleTwvY29kZT4gKGhlcmUgPGNvZGU+InN5bWJvbCI8L2NvZGU+KS4gSG9ub3JzCiAgICAgICAgICAgIDxjb2RlPnByZWZlcnMtcmVkdWNlZC1tb3Rpb248L2NvZGU+LiBSb3cgc2VsZWN0aW9uIHBlcnNpc3RzIGFjcm9zcyB1cGRhdGVzIOKAlCBjbGljayBhCiAgICAgICAgICAgIHJvdywgdGhlbiB3YXRjaCBpdCBzdGF5IHNlbGVjdGVkIGFzIHRoZSBkYXRhIGNodXJucy4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgIGlkPSJkZW1vTGl2ZUZsYXNoIgogICAgICAgICAgICAucm93S2V5PSR7InN5bWJvbCJ9CiAgICAgICAgICAgIGhpZ2hsaWdodC11cGRhdGVzPSJmbGFzaCIKICAgICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgICBoZWFkaW5nMT0iTGl2ZSBNYXJrZXQgRmVlZCIKICAgICAgICAgICAgaGVhZGluZzI9IkZsYXNoaW5nIGNlbGxzIGluZGljYXRlIHVwZGF0ZWQgdmFsdWVzIgogICAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJzeW1ib2wiLGhlYWRlcjoiU3ltYm9sIixzb3J0YWJsZTohMH0se2tleToicHJpY2UiLGhlYWRlcjoiUHJpY2UiLHNvcnRhYmxlOiEwfSx7a2V5OiJjaGFuZ2UiLGhlYWRlcjoiXHUwMzk0Iixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQifV19CiAgICAgICAgICAgIC5kYXRhPSR7W3tzeW1ib2w6IkFBUEwiLHByaWNlOjE4Mi41MixjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6Ik1TRlQiLHByaWNlOjQxNC4xOCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkdPT0ciLHByaWNlOjE2OC43NCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkFNWk4iLHByaWNlOjE4Ni4xMyxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IlRTTEEiLHByaWNlOjI0OC41LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTlZEQSIscHJpY2U6ODc3LjM1LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTUVUQSIscHJpY2U6NDkyLjk2LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTkZMWCIscHJpY2U6NjA1Ljg4LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiQU1EIixwcmljZToxNjUuMjQsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJJTlRDIixwcmljZTo0Mi4xNSxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9XX0KICAgICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE0zYSx6M2E9ZygoKT0+e3BlKCk7Q3IoKTtwdCgpO00zYT1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBtb2RlIChNb2RlIEIsIHBhZ2Ugc3RpY2t5KTogaG9yaXpvbnRhbCBzY3JvbGwgbGl2ZXMgb24KICAgICAgICAgLnRhYmxlU2Nyb2xsIChzbyB3aWRlIHRhYmxlcyBkb24ndCBnZXQgY2xpcHBlZCBieSBhbiBhbmNlc3RvcgogICAgICAgICBvdmVyZmxvdzpoaWRkZW4gc3VjaCBhcyBkZWVzLXRpbGUpLiBWZXJ0aWNhbCBzdGlja3kgaXMgaGFuZGxlZCBieQogICAgICAgICBhIEpTLW1hbmFnZWQgZmxvYXRpbmcgaGVhZGVyICguZmxvYXRpbmdIZWFkZXIsIHBvc2l0aW9uOmZpeGVkKSwKICAgICAgICAgd2hpY2ggaXMgdW5hZmZlY3RlZCBieSBhbmNlc3RvciBvdmVyZmxvdy4gKi8KICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOwogICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgICAgfQogICAgICAvKiBNb2RlIEEsIGludGVybmFsIHNjcm9sbDogb3B0LWluIHZpYSBmaXhlZC1oZWlnaHQgYXR0cmlidXRlLgogICAgICAgICBUaGUgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIG93biBib3ggYW5kIHRoZSBoZWFkZXIgc3RpY2tzIHZpYSBwbGFpbiBDU1Mgc3RpY2t5LiAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGhlYWRlciBvdmVybGF5IChNb2RlIEIpLiBQb3NpdGlvbiBpcyBtYW5hZ2VkIGJ5IEpTIHNvIGl0CiAgICAgICAgIGVzY2FwZXMgYW55IGFuY2VzdG9yIG92ZXJmbG93OmhpZGRlbiAocG9zaXRpb246Zml4ZWQgaXMgbm90IGNsaXBwZWQKICAgICAgICAgYnkgb3ZlcmZsb3cgYW5jZXN0b3JzKS4gKi8KICAgICAgLmZsb2F0aW5nSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIC5mbG9hdGluZ0hlYWRlci5hY3RpdmUgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRhYmxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRoIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KICAgICAgLyogdGggbmVlZHMgaXRzIG93biBiYWNrZ3JvdW5kIHNvIHN0aWNreSBjZWxscyBwYWludCBvdmVyIHNjcm9sbGVkIHJvd3MKICAgICAgICAgKGJyb3dzZXJzIGRvbid0IHBhaW50IHRoZSA8dGhlYWQ+IGJveCBiZWhpbmQgYSBzdGlja3kgPHRoPikuICovCiAgICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CiAgICAgIC8qIE1vZGUgQSDigJQgaW50ZXJuYWwgc2Nyb2xsIHN0aWNreSAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHRvcDogMzZweDsgLyogbWF0Y2hlcyB0aCB7IGhlaWdodDogMzZweCB9IGJlbG93ICovCiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogRnVsbCBob3Jpem9udGFsIGxpbmVzIHdoZW4gZW5hYmxlZCAqLwogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNCkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA1KSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBlZGdlIGJvcmRlcnMgdGhhdCB3b3VsZCBkb3VibGUgd2l0aCB0aWxlIGZyYW1lICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICB0aFtyb2xlPSdjb2x1bW5oZWFkZXInXTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgdGggLnNvcnRBcnJvdyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICB0aCAuc29ydEJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDMwJSkiLCJoc2woMjE3LjIgOTEuMiUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIAogICAgICB0aDpmaXJzdC1jaGlsZCwKICAgICAgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgdGg6bGFzdC1jaGlsZCwKICAgICAgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBib3R0b20gYm9yZGVyIG9uIGxhc3Qgcm93IHJlbW92ZWQg4oCUIHRpbGUgZnJhbWUgaGFuZGxlcyBpdCAqLwogICAgICA6aG9zdCg6bm90KFtzaG93LWhvcml6b250YWwtbGluZXNdKSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLS0gQ2VsbCBmbGFzaCBoaWdobGlnaHRpbmcgKG9wdC1pbiB2aWEgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIikgLS0tLQogICAgICAgICBCbG9vbWJlcmcvVHJhZGluZ1ZpZXctc3R5bGU6IHRoZSB0ZXh0IGl0c2VsZiBicmllZmx5IHRha2VzIGFuIGFjY2VudAogICAgICAgICBjb2xvciB0aGVuIGZhZGVzIGJhY2sgdG8gdGhlIGRlZmF1bHQuIE5vIGJhY2tncm91bmQgdGludCwgbm8gbGF5b3V0CiAgICAgICAgIHNoaWZ0LCBubyB3ZWlnaHQgY2hhbmdlLiBSZWFkYWJsZSwgbW9kZXJuLCBzdWJ0bGUuCiAgICAgICAgIENvbnN1bWVycyBjYW4gb3ZlcnJpZGUgcGVyIGluc3RhbmNlOgogICAgICAgICAgIGRlZXMtdGFibGUjbXlUYWJsZSB7IC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcjogaHNsKDE0MiA3NiUgNDAlKTsgfQogICAgICAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDMyIDk1JSA0NCUpIiwiaHNsKDQ1IDkzJSA2MiUpIil9OwogICAgICAgIC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmc6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsKICAgICAgfQoKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBkZWVzLXRhYmxlLWNlbGwtZmxhc2gKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICB9CgogICAgICAvKiBIb2xkIHRoZSBhY2NlbnQgY29sb3IgYnJpZWZseSwgdGhlbiBmYWRlIGJhY2sgdG8gdGhlIHRoZW1lJ3MgZGVmYXVsdAogICAgICAgICB0ZXh0IGNvbG9yLiBJbmhlcml0cyB0byBjaGlsZCB0ZXh0IGFuZCB0byBTVkcgaWNvbnMgdGhhdCB1c2UKICAgICAgICAgY3VycmVudENvbG9yLiBDZWxscyB3aXRoIGV4cGxpY2l0IGNvbG9yIG92ZXJyaWRlcyBpbiByZW5kZXJlcnMgYXJlCiAgICAgICAgIGludGVudGlvbmFsbHkgdW5hZmZlY3RlZC4gKi8KICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2ggewogICAgICAgIDAlLAogICAgICAgIDM1JSB7IGNvbG9yOiB2YXIoLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yKTsgfQogICAgICAgIDEwMCUgeyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyB9CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci9iYWNrZ3JvdW5kIGZsYXNoIHZhcmlhbnQgZm9yIGNlbGxzIHdpdGggc3R5bGVkIGNvbnRlbnQKICAgICAgICAgKGJhZGdlcywgaWNvbnMsIGN1c3RvbSBjb21wb25lbnRzKSB3aGVyZSBhIHRleHQtY29sb3IgYW5pbWF0aW9uCiAgICAgICAgIHdvdWxkIGJlIGludmlzaWJsZS4gQWN0aXZhdGVkIHZpYSBmbGFzaEJvcmRlciBvbiBDb2x1bW4uICovCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICBhbmltYXRpb246IGRlZXMtdGFibGUtY2VsbC1mbGFzaC1ib3JkZXIKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2gtYm9yZGVyIHsKICAgICAgICAwJSwKICAgICAgICAzNSUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA2MiUgLyAwLjEwKSIsImhzbCg0NSA5MyUgNjIlIC8gMC4wOCkiKX07CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdHJhbnNwYXJlbnQ7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgfQogICAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWRlZXMtdGFibGUtZmxhc2gtY29sb3IpOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNjIlIC8gMC4xMCkiLCJoc2woNDUgOTMlIDYyJSAvIDAuMDgpIil9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogRGV2LXRpbWUgd2FybmluZyBiYW5uZXIgc2hvd24gd2hlbiBoaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giIGJ1dAogICAgICAgICByb3dLZXkgaXMgbWlzc2luZy4gQ29uc3VtZXJzIHNob3VsZCBuZXZlciBzaGlwIHRoaXMgdG8gcHJvZHVjdGlvbi4gKi8KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHggMDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woNDggOTYlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0OCA5NiUgODklIC8gMC42KSIsImhzbCg0OCA5NiUgMzAlIC8gMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzIgODElIDI5JSkiLCJoc2woNDggOTYlIDgwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIC5mbGFzaENvbmZpZ1dhcm5pbmcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAxcHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuNikiLCJoc2woMCAwJSAwJSAvIDAuMykiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogRWRpdGFibGUgY2VsbCBhZmZvcmRhbmNlcyAqLwogICAgICB0ZC5lZGl0YWJsZSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CiAgICAgIHRkLmZvY3VzZWQgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC42KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuNikiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC42KSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQogICAgICB0ZC5lZGl0aW5nQ2VsbCAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsCiAgICAgIHRkLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIGZpbHRlciByb3cgKi8KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggMTJweCAxMnB4OwogICAgICB9CiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggaW5wdXRbdHlwZT0ndGV4dCddIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAuYWN0aW9uc0NvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDExLjglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGFibGVTdGF0aXN0aWNzIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICBgXX0pO3ZhciBiaXQ9ZygoKT0+e3hoKCl9KTt2YXIgdml0PWcoKCk9PntvbmUoKX0pO3ZhciB4aXQ9ZygoKT0+e3duZSgpO2pldCgpfSk7dmFyIHlpdD1nKCgpPT57YXR0KCl9KTtmdW5jdGlvbiB3aXQocyxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCB0PXMoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcChyPT4oe2tleTpyLGhlYWRlcjpyLHZhbHVlOmkobj0+cyhuKVtyXSwidmFsdWUiKX0pKX1mdW5jdGlvbiBDM2EocyxlLHQsYSl7bGV0IHI9KHN8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiByO2xldCBuPXdpdCh0LGEpLG89bmV3IFNldChyLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG4pby5oYXMoU3RyaW5nKGwua2V5KSl8fHIucHVzaChsKTtyZXR1cm4gcn1mdW5jdGlvbiBPaChzLGUsdCl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZShzKTpzW2Uua2V5XX1mdW5jdGlvbiBSWGEocyxlKXtpZihzPT1udWxsJiZlPT1udWxsKXJldHVybiAwO2lmKHM9PW51bGwpcmV0dXJuLTE7aWYoZT09bnVsbClyZXR1cm4gMTtpZih0eXBlb2Ygcz09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIilyZXR1cm4gczxlPy0xOnM+ZT8xOjA7bGV0IHQ9U3RyaW5nKHMpLnRvTG93ZXJDYXNlKCksYT1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gdDxhPy0xOnQ+YT8xOjB9ZnVuY3Rpb24gVDNhKHMsZSx0LGEscixuPSJ0YWJsZSIsbyl7bGV0IGw9cy5zbGljZSgpLHA9KGF8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxkPXJ8fHt9LHU9T2JqZWN0LmtleXMoZCkuZmlsdGVyKGI9PihkW2JdPz8iIikudHJpbSgpLmxlbmd0aD4wKTtpZigocHx8dS5sZW5ndGg+MCkmJihsPWwuZmlsdGVyKGI9Pntmb3IobGV0IHYgb2YgdSlpZihuPT09ImRhdGEiKXtsZXQgeD1iW3ZdLG09U3RyaW5nKHg/PyIiKS50b0xvd2VyQ2FzZSgpLGY9U3RyaW5nKGRbdl0pLnRvTG93ZXJDYXNlKCk7aWYoIW0uaW5jbHVkZXMoZikpcmV0dXJuITF9ZWxzZXtsZXQgeD1lLmZpbmQoTT0+U3RyaW5nKE0ua2V5KT09PXYpO2lmKCF4fHx4LmhpZGRlbnx8eC5maWx0ZXJhYmxlPT09ITEpY29udGludWU7bGV0IG09T2goYix4KSxmPVN0cmluZyhtPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyhkW3ZdKS50b0xvd2VyQ2FzZSgpO2lmKCFmLmluY2x1ZGVzKHkpKXJldHVybiExfWlmKHApe2lmKG8pcmV0dXJuISFvKGIpO2xldCB2PSExO2lmKG49PT0iZGF0YSIpe2ZvcihsZXQgeCBvZiBPYmplY3QudmFsdWVzKGIpKWlmKFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwKSl7dj0hMDticmVha319ZWxzZSBmb3IobGV0IHggb2YgZSl7aWYoeC5oaWRkZW4pY29udGludWU7bGV0IG09T2goYix4KTtpZihTdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocCkpe3Y9ITA7YnJlYWt9fWlmKCF2KXJldHVybiExfXJldHVybiEwfSkpLCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIGw7bGV0IGM9dC5tYXAoYj0+KHtkZXNjOmIsY29sOmUuZmluZCh2PT5TdHJpbmcodi5rZXkpPT09Yi5rZXkpfSkpLmZpbHRlcihiPT4hIWIuY29sKTtyZXR1cm4gYy5sZW5ndGg9PT0wfHxsLnNvcnQoKGIsdik9Pntmb3IobGV0e2Rlc2M6eCxjb2w6bX1vZiBjKXtsZXQgZj1SWGEoT2goYixtKSxPaCh2LG0pKTtpZihmIT09MClyZXR1cm4geC5kaXI9PT0iYXNjIj9mOi1mfXJldHVybiAwfSksbH12YXIgJDNhPWcoKCk9PntpKHdpdCwiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIik7aShDM2EsImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIik7aShPaCwiZ2V0Q2VsbFZhbHVlIik7aShSWGEsImNvbXBhcmVDZWxsVmFsdWVzIik7aShUM2EsImdldFZpZXdEYXRhIil9KTtmdW5jdGlvbiBaY2Uocyl7cmV0dXJuIHMuc3RhcnRzV2l0aCgnIicpJiZzLmVuZHNXaXRoKCciJyl8fHMuc3RhcnRzV2l0aCgiJyIpJiZzLmVuZHNXaXRoKCInIik/cy5zbGljZSgxLC0xKTpzfWZ1bmN0aW9uIE9YYShzKXtyZXR1cm4gcy5zcGxpdCgvXHMrT1JccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gRlhhKHMpe3JldHVybiBzLnNwbGl0KC9ccytBTkRccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gQlhhKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPSExLHQ9cy5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTt0JiYoZT0hMCxzPXRbMl0pO2xldCBhPXMubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoYSlyZXR1cm57ZmllbGQ6YVsxXSxuZWdhdGU6ZSxyYW5nZTp7bG93ZXI6WmNlKGFbMl0pLnRvTG93ZXJDYXNlKCksdXBwZXI6WmNlKGFbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHI9cy5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcj97ZmllbGQ6clsxXSx2YWx1ZTpaY2UoclsyXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6ZX06cy5sZW5ndGg+MD97dmFsdWU6WmNlKHMpLnRvTG93ZXJDYXNlKCksbmVnYXRlOmV9Om51bGx9ZnVuY3Rpb24gSFhhKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPU9YYShzKS5tYXAodD0+KHt0ZXJtczpGWGEodCkubWFwKEJYYSkuZmlsdGVyKHI9PiEhciYmISFyLnZhbHVlKX0pKS5maWx0ZXIodD0+dC50ZXJtcy5sZW5ndGg+MCk7cmV0dXJuIGUubGVuZ3RoPT09MD9udWxsOntjbGF1c2VzOmV9fWZ1bmN0aW9uIEQzYShzLGUsdCl7bGV0IGE9SFhhKHMpO2lmKCFhKXJldHVybiBudWxsO2xldCByPW5ldyBNYXAodC5tYXAocD0+W1N0cmluZyhwLmtleSkscF0pKSxuPWkoKHAsZCk9PnA8ZD8tMTpwPmQ/MTowLCJjbXAiKSxvPWkocD0+e2xldCBkPVN0cmluZyhwPz8iIikudG9Mb3dlckNhc2UoKSx1PU51bWJlcihkKSxjPURhdGUucGFyc2UoZCk7cmV0dXJuIU51bWJlci5pc05hTih1KSYmZC50cmltKCkhPT0iIj97dDoibiIsdjp1fTpOdW1iZXIuaXNOYU4oYyk/e3Q6InMiLHY6ZH06e3Q6ImQiLHY6Y319LCJjb2VyY2UiKSxsPWkoKHAsZCx1KT0+e2xldCBjPW8ocCksYj1vKGQpLHY9byh1KTtpZihjLnQ9PT0icyImJmIudD09PSJzIiYmdi50PT09InMiKXtsZXQgbT1jLnY7cmV0dXJuIG4obSxiLnYpPj0wJiZuKG0sdi52KTw9MH1pZihjLnQ9PT0ibiImJmIudD09PSJuIiYmdi50PT09Im4iKXtsZXQgbT1jLnY7cmV0dXJuIG0+PWIudiYmbTw9di52fWlmKGMudD09PSJkIiYmYi50PT09ImQiJiZ2LnQ9PT0iZCIpe2xldCBtPWMudjtyZXR1cm4gbT49Yi52JiZtPD12LnZ9bGV0IHg9U3RyaW5nKHA/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHgsZCk+PTAmJm4oeCx1KTw9MH0sImluUmFuZ2UiKTtyZXR1cm4gcD0+e2ZvcihsZXQgZCBvZiBhLmNsYXVzZXMpe2xldCB1PSEwO2ZvcihsZXQgYyBvZiBkLnRlcm1zKXtsZXQgYj0hMTtpZihjLnJhbmdlJiZjLmZpZWxkKWlmKGU9PT0iZGF0YSIpYj1sKHBbYy5maWVsZF0sYy5yYW5nZS5sb3dlcixjLnJhbmdlLnVwcGVyKTtlbHNle2xldCB2PXIuZ2V0KGMuZmllbGQpO2lmKCF2fHx2LmhpZGRlbiliPSExO2Vsc2V7bGV0IHg9di52YWx1ZT92LnZhbHVlKHApOnBbdi5rZXldO2I9bCh4LGMucmFuZ2UubG93ZXIsYy5yYW5nZS51cHBlcil9fWVsc2UgaWYoYy5maWVsZCYmYy52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWI9U3RyaW5nKHBbYy5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMudmFsdWUpO2Vsc2V7bGV0IHY9ci5nZXQoYy5maWVsZCk7aWYoIXZ8fHYuaGlkZGVuPT09ITApYj0hMTtlbHNle2xldCB4PXYudmFsdWU/di52YWx1ZShwKTpwW3Yua2V5XTtiPVN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX19ZWxzZSBjLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9iPU9iamVjdC52YWx1ZXMocCkuc29tZSh2PT5TdHJpbmcodj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYy52YWx1ZSkpOmI9dC5zb21lKHY9PntpZih2LmhpZGRlbilyZXR1cm4hMTtsZXQgeD12LnZhbHVlP3YudmFsdWUocCk6cFt2LmtleV07cmV0dXJuIFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX0pKTtpZihjLm5lZ2F0ZSYmKGI9IWIpLCFiKXt1PSExO2JyZWFrfX1pZih1KXJldHVybiEwfXJldHVybiExfX12YXIgTDNhPWcoKCk9PntpKFpjZSwic3RyaXBRdW90ZXMiKTtpKE9YYSwic3BsaXRCeU9yIik7aShGWGEsInNwbGl0QnlBbmQiKTtpKEJYYSwicGFyc2VUZXJtIik7aShIWGEsInBhcnNlTHVjZW5lIik7aShEM2EsImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiKX0pO2Z1bmN0aW9uIHFYYShzKXtsZXQgZT1bInRoIiwic3QiLCJuZCIsInJkIl0sdD1zJTEwMDtyZXR1cm4gcysoZVsodC0yMCklMTBdfHxlW3RdfHxlWzBdKX12YXIgUmEsTXQsWGNlLGdpdD1nKCgpPT57cG8oKTtfM2EoKTtwZSgpO29yKCk7SjAoKTtrdCgpO1VhKCk7ejNhKCk7Yml0KCk7dml0KCk7eGl0KCk7aG5lKCk7eWl0KCk7JDNhKCk7TDNhKCk7cHQoKTtucigpO1JhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH07aShxWGEsIm9yZGluYWxMYWJlbCIpO1hjZT0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGFibGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXSxzdCxNZT1bXSxnZT1bXSxJZSxjZT1bXSxkZT1bXSxMZSxLZT1bXSxZZT1bXSxvdCxVdD1bXSxadD1bXSxqYSxldD1bXSxidD1bXSx5YSxlcz1bXSxycz1bXSxwcyxucz1bXSx0aT1bXSxhaSx6ZT1bXSx4ZT1bXSxOZSx4dD1bXSxNYT1bXSxOcixmZT1bXSxyZT1bXSxTZSxPZT1bXSxKZT1bXSx6YSxkYT1bXSx3cz1bXSxraSxKaT1bXSxScj1bXSxTaSx2bj1bXSxyMT1bXSxvMSxuMT1bXSxsMT1bXSxjMSxkMT1bXSx1MT1bXTt2YXIgcDE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUYWJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBEPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOkFycmF5fSldLG1lPVtMKHthdHRyaWJ1dGU6ITF9KV0saGU9W0woe2F0dHJpYnV0ZTohMX0pXSx1ZT1bTCh7dHlwZTpCb29sZWFufSldLGllPVtMKHthdHRyaWJ1dGU6ITF9KV0sa2U9W0woe2F0dHJpYnV0ZTohMX0pXSx5ZT1bTCh7dHlwZTpPYmplY3R9KV0sc2U9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy12ZXJ0aWNhbC1saW5lcyJ9KV0sVGU9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ob3Jpem9udGFsLWxpbmVzIn0pXSxHZT1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWdyaWQifSldLENlPVtMKHthdHRyaWJ1dGU6ITF9KV0sRWU9W0woe3R5cGU6U3RyaW5nfSldLHN0PVtMKHthdHRyaWJ1dGU6ITF9KV0sSWU9W0woe3R5cGU6Qm9vbGVhbixhdHRyaWJ1dGU6InNob3ctY29sdW1uLWZpbHRlcnMifSldLExlPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctc2VsZWN0aW9uLWNoZWNrYm94In0pXSxvdD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJ2aXJ0dWFsaXplZCJ9KV0samE9W0woe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZToidmlydHVhbC1vdmVyc2NhbiJ9KV0seWE9W0woe3R5cGU6U3RyaW5nLGF0dHJpYnV0ZToiaGlnaGxpZ2h0LXVwZGF0ZXMifSldLHBzPVtMKHt0eXBlOk51bWJlcixhdHRyaWJ1dGU6ImhpZ2hsaWdodC1kdXJhdGlvbiJ9KV0sYWk9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiZml4ZWQtaGVpZ2h0In0pXSxOZT1bTCh7dHlwZTpTdHJpbmd9KV0sTnI9W0woe3R5cGU6U3RyaW5nfSldLFNlPVtMKHthdHRyaWJ1dGU6ITF9KV0semE9W1koKV0sa2k9W1koKV0sU2k9W1koKV0sbzE9W1koKV0sYzE9W1koKV0sUmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nMSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGVhZGluZzEiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oZWFkaW5nMSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhlYWRpbmcxPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbyxsKSxSYSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJoZWFkaW5nMiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmhlYWRpbmcyLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGVhZGluZzI9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkLHUpLFJhKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iZGF0YSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGEsImdldCIpLHNldDppKChULEcpPT57VC5kYXRhPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sYix2KSxSYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ia2V5ImluIFQsImhhcyIpLGdldDppKFQ9PlQua2V5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Qua2V5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbSxmKSxSYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJsYWJlbCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmxhYmVsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubGFiZWw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNLHopLFJhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc2FibGVkImluIFQsImhhcyIpLGdldDppKFQ9PlQuZGlzYWJsZWQsImdldCIpLHNldDppKChULEcpPT57VC5kaXNhYmxlZD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXyksUmEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4icmVxdWlyZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJlcXVpcmVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxFKSxSYSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhTmFtZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFOYW1lLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YU5hbWU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxrLFMpLFJhKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoYWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaGFibGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hhYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUCxSKSxSYSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhQWN0aW9ucyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YUFjdGlvbnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxWLFcpLFJhKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbHVtbnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29sdW1ucz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSksUmEodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm93S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyb3dLZXkiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yb3dLZXksImdldCIpLHNldDppKChULEcpPT57VC5yb3dLZXk9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLFJhKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxsZSxRKSxSYSh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmRpc3BsYXlGdW5jdGlvbj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LHRlLGVlKSxSYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uImluIFQsImhhcyIpLGdldDppKFQ9PlQucmV2ZXJzZURpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJldmVyc2VEaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxYLFopLFJhKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0YVJvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWREYXRhUm93ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2VsZWN0ZWREYXRhUm93LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0ZWREYXRhUm93PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0scSxBKSxSYSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd1ZlcnRpY2FsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93VmVydGljYWxMaW5lcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dWZXJ0aWNhbExpbmVzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sb2UsYWUpLFJhKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIb3Jpem9udGFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dIb3Jpem9udGFsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93SG9yaXpvbnRhbExpbmVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2hvd0hvcml6b250YWxMaW5lcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFJlLEJlKSxSYSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd0dyaWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93R3JpZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dHcmlkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLFJhKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRCeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic29ydEJ5ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc29ydEJ5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc29ydEJ5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdmUsYmUpLFJhKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImZpbHRlclRleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5maWx0ZXJUZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZmlsdGVyVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGplLFdlKSxSYSh0aGlzLG51bGwsc3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29sdW1uRmlsdGVycywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbHVtbkZpbHRlcnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNZSxnZSksUmEodGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dDb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2hvd0NvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChULEcpPT57VC5zaG93Q29sdW1uRmlsdGVycz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGNlLGRlKSxSYSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2VsZWN0aW9uQ2hlY2tib3giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dTZWxlY3Rpb25DaGVja2JveCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNob3dTZWxlY3Rpb25DaGVja2JveCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dTZWxlY3Rpb25DaGVja2JveD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEtlLFllKSxSYSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXJ0dWFsaXplZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbGl6ZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC52aXJ0dWFsaXplZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnZpcnR1YWxpemVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLFJhKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpcnR1YWxPdmVyc2NhbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbE92ZXJzY2FuImluIFQsImhhcyIpLGdldDppKFQ9PlQudmlydHVhbE92ZXJzY2FuLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QudmlydHVhbE92ZXJzY2FuPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLFJhKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodFVwZGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImhpZ2hsaWdodFVwZGF0ZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHRVcGRhdGVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGlnaGxpZ2h0VXBkYXRlcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxSYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHREdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGlnaGxpZ2h0RHVyYXRpb24iaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHREdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhpZ2hsaWdodER1cmF0aW9uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbnMsdGkpLFJhKHRoaXMsbnVsbCxhaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpeGVkSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJmaXhlZEhlaWdodCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmZpeGVkSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZml4ZWRIZWlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSksUmEodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoTW9kZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaE1vZGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hNb2RlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0seHQsTWEpLFJhKHRoaXMsbnVsbCxOcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNlbGVjdGlvbk1vZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3Rpb25Nb2RlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0aW9uTW9kZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxSYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWRJZHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3RlZElkcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlbGVjdGVkSWRzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sT2UsSmUpLFJhKHRoaXMsbnVsbCx6YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZm9jdXNlZENlbGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Il9fZm9jdXNlZENlbGwiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5fX2ZvY3VzZWRDZWxsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mb2N1c2VkQ2VsbD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxSYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2VkaXRpbmdDZWxsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX2VkaXRpbmdDZWxsImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19lZGl0aW5nQ2VsbCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULl9fZWRpdGluZ0NlbGw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxKaSxSciksUmEodGhpcyxudWxsLFNpLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbG9hdGluZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbG9hdGluZ0FjdGl2ZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fZmxvYXRpbmdBY3RpdmUsImdldCIpLHNldDppKChULEcpPT57VC5fX2Zsb2F0aW5nQWN0aXZlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdm4scjEpLFJhKHRoaXMsbnVsbCxvMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZmxhc2hpbmdDZWxscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbGFzaGluZ0NlbGxzImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19mbGFzaGluZ0NlbGxzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mbGFzaGluZ0NlbGxzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLFJhKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fdmlydHVhbFJhbmdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX3ZpcnR1YWxSYW5nZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fdmlydHVhbFJhbmdlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX192aXJ0dWFsUmFuZ2U9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSksUmEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89UzNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9TXQodGhpcyxvLCJoZWFkaW5nIDEiKTtnZXQgaGVhZGluZzEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZzEoRCl7dGhpcy4jZT1EfSN0PShNdCh0aGlzLGwpLE10KHRoaXMsZCwiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihEKXt0aGlzLiN0PUR9I2E9KE10KHRoaXMsdSksTXQodGhpcyxiLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGF0YShEKXt0aGlzLiNhPUR9I3M9KE10KHRoaXMsdiksTXQodGhpcyxtLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQga2V5KEQpe3RoaXMuI3M9RH0jaT0oTXQodGhpcyxmKSxNdCh0aGlzLE0sdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKEQpe3RoaXMuI2k9RH0jcj0oTXQodGhpcyx6KSxNdCh0aGlzLEMsITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGlzYWJsZWQoRCl7dGhpcy4jcj1EfSNvPShNdCh0aGlzLF8pLE10KHRoaXMsJCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNvfXNldCByZXF1aXJlZChEKXt0aGlzLiNvPUR9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoRCl7fWNoYW5nZVN1YmplY3Q9KE10KHRoaXMsRSksbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTsjbj1NdCh0aGlzLGssdm9pZCAwKTtnZXQgZGF0YU5hbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGF0YU5hbWUoRCl7dGhpcy4jbj1EfSNsPShNdCh0aGlzLFMpLE10KHRoaXMsUCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoRCl7dGhpcy4jbD1EfSNjPShNdCh0aGlzLFIpLE10KHRoaXMsVixbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhEKXt0aGlzLiNjPUR9I2Q9KE10KHRoaXMsVyksTXQodGhpcyxCLFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29sdW1ucyhEKXt0aGlzLiNkPUR9I3U9KE10KHRoaXMsVSksTXQodGhpcyxGLHZvaWQgMCkpO2dldCByb3dLZXkoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcm93S2V5KEQpe3RoaXMuI3U9RH0jcD0oTXQodGhpcyxqKSxNdCh0aGlzLGxlLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKEQpe3RoaXMuI3A9RH0jaD0oTXQodGhpcyxRKSxNdCh0aGlzLHRlLEQ9PkQpKTtnZXQgZGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGRpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNoPUR9I2Y9KE10KHRoaXMsZWUpLE10KHRoaXMsWCxEPT5EKSk7Z2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4jZn1zZXQgcmV2ZXJzZURpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNmPUR9I209KE10KHRoaXMsWiksTXQodGhpcyxxLHZvaWQgMCkpO2dldCBzZWxlY3RlZERhdGFSb3coKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWREYXRhUm93KEQpe3RoaXMuI209RH0jZz0oTXQodGhpcyxBKSxNdCh0aGlzLG9lLCExKSk7Z2V0IHNob3dWZXJ0aWNhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IHNob3dWZXJ0aWNhbExpbmVzKEQpe3RoaXMuI2c9RH0jYj0oTXQodGhpcyxhZSksTXQodGhpcyxSZSwhMSkpO2dldCBzaG93SG9yaXpvbnRhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNob3dIb3Jpem9udGFsTGluZXMoRCl7dGhpcy4jYj1EfSN2PShNdCh0aGlzLEJlKSxNdCh0aGlzLERlLCEwKSk7Z2V0IHNob3dHcmlkKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dHcmlkKEQpe3RoaXMuI3Y9RH1maWxlcz0oTXQodGhpcyxfZSksW10pO2ZpbGVXZWFrTWFwPW5ldyBXZWFrTWFwO2RhdGFDaGFuZ2VTdWJqZWN0PW5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdDsjeD1NdCh0aGlzLHZlLFtdKTtnZXQgc29ydEJ5KCl7cmV0dXJuIHRoaXMuI3h9c2V0IHNvcnRCeShEKXt0aGlzLiN4PUR9I3k9KE10KHRoaXMsYmUpLE10KHRoaXMsamUsIiIpKTtnZXQgZmlsdGVyVGV4dCgpe3JldHVybiB0aGlzLiN5fXNldCBmaWx0ZXJUZXh0KEQpe3RoaXMuI3k9RH0jdz0oTXQodGhpcyxXZSksTXQodGhpcyxNZSx7fSkpO2dldCBjb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbHVtbkZpbHRlcnMoRCl7dGhpcy4jdz1EfSNrPShNdCh0aGlzLGdlKSxNdCh0aGlzLGNlLCExKSk7Z2V0IHNob3dDb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IHNob3dDb2x1bW5GaWx0ZXJzKEQpe3RoaXMuI2s9RH0jUz0oTXQodGhpcyxkZSksTXQodGhpcyxLZSwhMSkpO2dldCBzaG93U2VsZWN0aW9uQ2hlY2tib3goKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1NlbGVjdGlvbkNoZWNrYm94KEQpe3RoaXMuI1M9RH0jXz0oTXQodGhpcyxZZSksTXQodGhpcyxVdCwhMSkpO2dldCB2aXJ0dWFsaXplZCgpe3JldHVybiB0aGlzLiNffXNldCB2aXJ0dWFsaXplZChEKXt0aGlzLiNfPUR9I009KE10KHRoaXMsWnQpLE10KHRoaXMsZXQsOCkpO2dldCB2aXJ0dWFsT3ZlcnNjYW4oKXtyZXR1cm4gdGhpcy4jTX1zZXQgdmlydHVhbE92ZXJzY2FuKEQpe3RoaXMuI009RH0jej0oTXQodGhpcyxidCksTXQodGhpcyxlcywibm9uZSIpKTtnZXQgaGlnaGxpZ2h0VXBkYXRlcygpe3JldHVybiB0aGlzLiN6fXNldCBoaWdobGlnaHRVcGRhdGVzKEQpe3RoaXMuI3o9RH0jQz0oTXQodGhpcyxycyksTXQodGhpcyxucyw5MDApKTtnZXQgaGlnaGxpZ2h0RHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jQ31zZXQgaGlnaGxpZ2h0RHVyYXRpb24oRCl7dGhpcy4jQz1EfSNUPShNdCh0aGlzLHRpKSxNdCh0aGlzLHplLCExKSk7Z2V0IGZpeGVkSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI1R9c2V0IGZpeGVkSGVpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oTXQodGhpcyx4ZSksTXQodGhpcyx4dCwidGFibGUiKSk7Z2V0IHNlYXJjaE1vZGUoKXtyZXR1cm4gdGhpcy4jJH1zZXQgc2VhcmNoTW9kZShEKXt0aGlzLiMkPUR9X19zZWFyY2hUZXh0U3ViPU10KHRoaXMsTWEpO19fc2VhcmNoTW9kZVN1YjsjRD1NdCh0aGlzLGZlLCJub25lIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jRH1zZXQgc2VsZWN0aW9uTW9kZShEKXt0aGlzLiNEPUR9I0w9KE10KHRoaXMscmUpLE10KHRoaXMsT2UsbmV3IFNldCkpO2dldCBzZWxlY3RlZElkcygpe3JldHVybiB0aGlzLiNMfXNldCBzZWxlY3RlZElkcyhEKXt0aGlzLiNMPUR9X3Jvd0lkTWFwPShNdCh0aGlzLEplKSxuZXcgV2Vha01hcCk7X3Jvd0lkQ291bnRlcj0wO19fc2VsZWN0aW9uQW5jaG9ySWQ7I0U9TXQodGhpcyxkYSx2b2lkIDApO2dldCBfX2ZvY3VzZWRDZWxsKCl7cmV0dXJuIHRoaXMuI0V9c2V0IF9fZm9jdXNlZENlbGwoRCl7dGhpcy4jRT1EfSNQPShNdCh0aGlzLHdzKSxNdCh0aGlzLEppLHZvaWQgMCkpO2dldCBfX2VkaXRpbmdDZWxsKCl7cmV0dXJuIHRoaXMuI1B9c2V0IF9fZWRpdGluZ0NlbGwoRCl7dGhpcy4jUD1EfSNJPShNdCh0aGlzLFJyKSxNdCh0aGlzLHZuLCExKSk7Z2V0IF9fZmxvYXRpbmdBY3RpdmUoKXtyZXR1cm4gdGhpcy4jSX1zZXQgX19mbG9hdGluZ0FjdGl2ZShEKXt0aGlzLiNJPUR9I0E9KE10KHRoaXMscjEpLE10KHRoaXMsbjEsbmV3IE1hcCkpO2dldCBfX2ZsYXNoaW5nQ2VsbHMoKXtyZXR1cm4gdGhpcy4jQX1zZXQgX19mbGFzaGluZ0NlbGxzKEQpe3RoaXMuI0E9RH1fX3ByZXZTbmFwc2hvdD1NdCh0aGlzLGwxKTtfX2ZsYXNoQ2xlYXJUaW1lcjtfX2ZsYXNoVGljaz0wO19fZmxhc2hXYXJuZWROb1Jvd0tleT0hMTtfX21lbW9FZmZlY3RpdmVDb2xzO19fbWVtb1ZpZXdEYXRhO19fY29sdW1uc1NpemVkRm9yO19fcm93SGVpZ2h0PTM2O19fcm93SGVpZ2h0TWVhc3VyZWQ9ITE7I049TXQodGhpcyxkMSx7c3RhcnQ6MCxlbmQ6MH0pO2dldCBfX3ZpcnR1YWxSYW5nZSgpe3JldHVybiB0aGlzLiNOfXNldCBfX3ZpcnR1YWxSYW5nZShEKXt0aGlzLiNOPUR9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9faGFuZGxlSG9zdEtleWRvd24pfV9faGFuZGxlSG9zdEtleWRvd249KE10KHRoaXMsdTEpLEQ9PntsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdLEc9ITE7Zm9yKGxldCBQZSBvZiBUKXtsZXQgRmU9UGU/LnRhZ05hbWU7aWYoRmU9PT0iSU5QVVQifHxGZT09PSJURVhUQVJFQSJ8fFBlPy5pc0NvbnRlbnRFZGl0YWJsZSl7Rz0hMDticmVha319aWYoKEQubWV0YUtleXx8RC5jdHJsS2V5KSYmKEQua2V5PT09ImMifHxELmtleT09PSJDIikpe2lmKEcpcmV0dXJuO2xldCBQZT1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEZlIG9mIHRoaXMuZGF0YSl0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEZlKSkmJlBlLnB1c2goRmUpO2Vsc2UgdGhpcy5zZWxlY3RlZERhdGFSb3cmJlBlLnB1c2godGhpcy5zZWxlY3RlZERhdGFSb3cpO2lmKFBlLmxlbmd0aD09PTApcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLl9fd3JpdGVSb3dzQXNKc29uKFBlKTtyZXR1cm59aWYoIShHfHx0aGlzLl9fZWRpdGluZ0NlbGwpKXN3aXRjaChELmtleSl7Y2FzZSJBcnJvd0xlZnQiOkQucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgtMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1JpZ2h0IjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1VwIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwtMSwhMSk7cmV0dXJuO2Nhc2UiQXJyb3dEb3duIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwxLCExKTtyZXR1cm47Y2FzZSJFbnRlciI6Y2FzZSJGMiI6e2lmKCF0aGlzLl9fZm9jdXNlZENlbGwpcmV0dXJuO2xldCBGZT0odGhpcy5fbGFzdFZpZXdEYXRhPz9bXSkuZmluZChYZT0+dGhpcy5nZXRSb3dJZChYZSk9PT10aGlzLl9fZm9jdXNlZENlbGwucm93SWQpO2lmKCFGZSlyZXR1cm47bGV0IFVlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZChYZT0+U3RyaW5nKFhlLmtleSk9PT10aGlzLl9fZm9jdXNlZENlbGwuY29sS2V5KTtpZighVWV8fCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShVZSkpcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLnN0YXJ0RWRpdGluZyhGZSxVZSk7cmV0dXJufWNhc2UiRXNjYXBlIjp0aGlzLl9fZm9jdXNlZENlbGwmJih0aGlzLl9fZm9jdXNlZENlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtyZXR1cm47ZGVmYXVsdDpyZXR1cm59fSk7Y29weVNlbGVjdGlvbkFzSnNvbihEKXtsZXQgVD1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEcgb2YgdGhpcy5kYXRhKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpJiZULnB1c2goRyk7ZWxzZSBEP1QucHVzaChEKTp0aGlzLnNlbGVjdGVkRGF0YVJvdyYmVC5wdXNoKHRoaXMuc2VsZWN0ZWREYXRhUm93KTtULmxlbmd0aCE9PTAmJnRoaXMuX193cml0ZVJvd3NBc0pzb24oVCl9X193cml0ZVJvd3NBc0pzb24oRCl7dHJ5e2xldCBUPUpTT04uc3RyaW5naWZ5KEQsbnVsbCwyKTtuYXZpZ2F0b3IuY2xpcGJvYXJkPy53cml0ZVRleHQoVCl9Y2F0Y2h7fX1zdGF0aWMgc3R5bGVzPU0zYTtfX2dldERpc3BsYXlGdW5jdGlvblNoYXBlS2V5KCl7aWYoIXRoaXMuZGF0YXx8dGhpcy5kYXRhLmxlbmd0aD09PTApcmV0dXJuIiI7bGV0IEQ9dGhpcy5kaXNwbGF5RnVuY3Rpb24odGhpcy5kYXRhWzBdKT8/e307cmV0dXJuIE9iamVjdC5rZXlzKEQpLmpvaW4oIlwwIil9X19nZXRFZmZlY3RpdmVDb2x1bW5zKCl7bGV0IEQ9QXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPjAsVD0hRHx8dGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj90aGlzLl9fZ2V0RGlzcGxheUZ1bmN0aW9uU2hhcGVLZXkoKToiIixHPXRoaXMuX19tZW1vRWZmZWN0aXZlQ29scztpZihHJiZHLmNvbHVtbnM9PT10aGlzLmNvbHVtbnMmJkcuYXVnbWVudD09PXRoaXMuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheUZ1bmN0aW9uPT09dGhpcy5kaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheVNoYXBlS2V5PT09VClyZXR1cm4gRy5vdXQ7bGV0ICRlPUQ/QzNhKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6d2l0KHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuX19tZW1vRWZmZWN0aXZlQ29scz17Y29sdW1uczp0aGlzLmNvbHVtbnMsYXVnbWVudDp0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLGRpc3BsYXlGdW5jdGlvbjp0aGlzLmRpc3BsYXlGdW5jdGlvbixkaXNwbGF5U2hhcGVLZXk6VCxvdXQ6JGV9LCRlfV9fZ2V0Vmlld0RhdGEoRCl7bGV0IFQ9dGhpcy5zZWFyY2hNb2RlPT09ImRhdGEiPyJkYXRhIjoidGFibGUiLEc9dGhpcy5fX21lbW9WaWV3RGF0YTtpZihHJiZHLmRhdGE9PT10aGlzLmRhdGEmJkcuc29ydEJ5PT09dGhpcy5zb3J0QnkmJkcuZmlsdGVyVGV4dD09PXRoaXMuZmlsdGVyVGV4dCYmRy5jb2x1bW5GaWx0ZXJzPT09dGhpcy5jb2x1bW5GaWx0ZXJzJiZHLnNlYXJjaE1vZGU9PT1UJiZHLmVmZmVjdGl2ZUNvbHVtbnM9PT1EKXJldHVybiBHLm91dDtsZXQgJGU9RDNhKHRoaXMuZmlsdGVyVGV4dCxULEQpLFBlPVQzYSh0aGlzLmRhdGEsRCx0aGlzLnNvcnRCeSx0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLFQsJGV8fHZvaWQgMCk7cmV0dXJuIHRoaXMuX19tZW1vVmlld0RhdGE9e2RhdGE6dGhpcy5kYXRhLHNvcnRCeTp0aGlzLnNvcnRCeSxmaWx0ZXJUZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5GaWx0ZXJzOnRoaXMuY29sdW1uRmlsdGVycyxzZWFyY2hNb2RlOlQsZWZmZWN0aXZlQ29sdW1uczpELG91dDpQZX0sUGV9cmVuZGVyKCl7bGV0IEQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSxUPXRoaXMuX19nZXRWaWV3RGF0YShEKSxHPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImhlYWRlciIpLCRlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImZvb3RlciIpLFBlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93Iik7dGhpcy5fbGFzdFZpZXdEYXRhPVQ7bGV0IEZlPXRoaXMudmlydHVhbGl6ZWQmJlQubGVuZ3RoPjAsVmU9VCxVZT0wLFhlPTAsd3Q9MDtpZihGZSl7bGV0IFFlPXRoaXMuX192aXJ0dWFsUmFuZ2UsdmE9TWF0aC5tYXgoMCxRZS5zdGFydCksTnM9TWF0aC5taW4oVC5sZW5ndGgsUWUuZW5kfHwwKSx1YT1Ocz4wP05zOk1hdGgubWluKFQubGVuZ3RoLHRoaXMudmlydHVhbE92ZXJzY2FuKjIrMTYpO1VlPXZhLFZlPVQuc2xpY2UodmEsdWEpLFhlPXZhKnRoaXMuX19yb3dIZWlnaHQsd3Q9TWF0aC5tYXgoMCxULmxlbmd0aC11YSkqdGhpcy5fX3Jvd0hlaWdodH1yZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMSI+JHt0aGlzLmxhYmVsfHx0aGlzLmhlYWRpbmcxfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIGhlYWRpbmcyIj4ke3RoaXMuaGVhZGluZzJ9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlckFjdGlvbnMiPgogICAgICAgICAgICAke0cubWFwKFFlPT53YDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJoZWFkZXJBY3Rpb24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FlLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1FlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHtRZS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAke1FlLm5hbWV9YDpRZS5uYW1lfQogICAgICAgICAgICAgIDwvZGl2PmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ1NlcGFyYXRpb24iPjwvZGl2PgogICAgICAgICR7dGhpcy5oaWdobGlnaHRVcGRhdGVzPT09ImZsYXNoIiYmIXRoaXMucm93S2V5P3dgPGRpdiBjbGFzcz0iZmxhc2hDb25maWdXYXJuaW5nIiByb2xlPSJhbGVydCI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGNvZGU+aGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIjwvY29kZT4gcmVxdWlyZXMKICAgICAgICAgICAgICAgIDxjb2RlPnJvd0tleTwvY29kZT4gdG8gYmUgc2V0LiBGbGFzaCBpcyBkaXNhYmxlZC4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmA6d2BgfQogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEdyaWQgaGlkZGVuIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Imx1Y2VuZSBzeW50YXggc2VhcmNoIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7YAogICAgICAgICAgICAgIFlvdSBjYW4gdXNlIHRoZSBsdWNlbmUgc3ludGF4IHRvIHNlYXJjaCBmb3IgZGF0YSwgZS5nLjoKCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7InNlYXJjaCBtb2RlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbInRhYmxlIiwiZGF0YSIsInNlcnZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidGFibGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHtgCiAgICAgICAgICAgICAgVGhlcmUgYXJlIHRocmVlIGJhc2ljIG1vZGVzOgoKICAgICAgICAgICAgICAqIHRhYmxlOiBvbmx5IHNlYXJjaGVzIGRhdGEgYWxyZWFkeSBpbiB0aGUgdGFibGUKICAgICAgICAgICAgICAqIGRhdGE6IHNlYXJjaGVzIG9yaWdpbmFsIGRhdGEsIGlnbm9yaW5nIHRhYmxlIHRyYW5zZm9ybXMKICAgICAgICAgICAgICAqIHNlcnZlcjogc2VhcmNoZXMgZGF0YSBvbiB0aGUgc2VydmVyCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgPHRib2R5CiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuX19vblRib2R5Q2xpY2t9CiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0ke3RoaXMuX19vblRib2R5RGJsY2xpY2t9CiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLl9fb25UYm9keU1vdXNlZG93bn0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7dGhpcy5fX29uVGJvZHlDb250ZXh0bWVudX0KICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke3RoaXMuX19vblRib2R5RHJhZ2VudGVyfQogICAgICAgICAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fX29uVGJvZHlEcmFnbGVhdmV9CiAgICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuX19vblRib2R5RHJhZ292ZXJ9CiAgICAgICAgICAgICAgICAgIEBkcm9wPSR7dGhpcy5fX29uVGJvZHlEcm9wfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0ZlJiZYZT4wP3dgPHRyIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iaGVpZ2h0OiR7WGV9cHgiPjx0ZD48L3RkPjwvdHI+YDp3YGB9CiAgICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KFZlLFFlPT50aGlzLmdldFJvd0lkKFFlKSwoUWUsdmEpPT57bGV0IE5zPVVlK3ZhLHVhPXRoaXMuZ2V0Um93SWQoUWUpLEdzPXRoaXMuX19mbGFzaGluZ0NlbGxzLmdldCh1YSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb3ctaWR4PSR7TnN9CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSIke1FlPT09dGhpcy5zZWxlY3RlZERhdGFSb3d8fHRoaXMuaXNSb3dTZWxlY3RlZChRZSk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKFFlKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtmdD0+e2Z0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoUWUsZnQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDp3YGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7RC5maWx0ZXIoZnQ9PiFmdC5oaWRkZW4pLm1hcCgoZnQsZXIpPT57bGV0IGtzPU9oKFFlLGZ0LHRoaXMuZGlzcGxheUZ1bmN0aW9uKSxocz1mdC5yZW5kZXJlcj9mdC5yZW5kZXJlcihrcyxRZSx7cm93SW5kZXg6TnMsY29sSW5kZXg6ZXIsY29sdW1uOmZ0fSk6a3MsX2k9U3RyaW5nKGZ0LmtleSksQTJlPSEhKGZ0LmVkaXRhYmxlfHxmdC5lZGl0b3IpLE4yZT10aGlzLl9fZm9jdXNlZENlbGw/LnJvd0lkPT09dWEmJnRoaXMuX19mb2N1c2VkQ2VsbD8uY29sS2V5PT09X2ksRDQ9dGhpcy5fX2VkaXRpbmdDZWxsPy5yb3dJZD09PXVhJiZ0aGlzLl9fZWRpdGluZ0NlbGw/LmNvbEtleT09PV9pLFd4PUdzPy5nZXQoX2kpLEw0PVd4IT09dm9pZCAwLFIyZT1MNCYmISFmdC5mbGFzaEJvcmRlcixPMmU9W0EyZT8iZWRpdGFibGUiOiIiLE4yZSYmIUQ0PyJmb2N1c2VkIjoiIixEND8iZWRpdGluZ0NlbGwiOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpLEd4PXdgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ke0w0P1IyZT8iaW5uZXJDZWxsQ29udGFpbmVyIGZsYXNoaW5nLWJvcmRlciI6ImlubmVyQ2VsbENvbnRhaW5lciBmbGFzaGluZyI6ImlubmVyQ2VsbENvbnRhaW5lciJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7RDQ/dGhpcy5yZW5kZXJDZWxsRWRpdG9yKFFlLGZ0KTpoc30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7TzJlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29sLWtleT0ke19pfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtMND9WaS5rZXllZChgJHt1YX06JHtfaX06JHtXeH1gLEd4KTpHeH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZihQZS5sZW5ndGg+MClyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJhY3Rpb25zQ29sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7UGUubWFwKGZ0PT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+ZnQuYWN0aW9uRnVuYyh7aXRlbTpRZSx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtmdC5pY29uTmFtZT93YCA8ZGVlcy1pY29uIC5pY29uPSR7ZnQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOmZ0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgICAgJHtGZSYmd3Q+MD93YDx0ciBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9ImhlaWdodDoke3d0fXB4Ij48dGQ+PC90ZD48L3RyPmA6d2BgfQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nSGVhZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICAke3RoaXMuX19mbG9hdGluZ0FjdGl2ZT93YDx0YWJsZT4KICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+YDp3YGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AgPGRpdiBjbGFzcz0ibm9EYXRhU2V0Ij5ObyBkYXRhIHNldCE8L2Rpdj4gYH0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHskZS5tYXAoUWU9PndgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57UWUuYWN0aW9uRnVuYyh7aXRlbTp0aGlzLnNlbGVjdGVkRGF0YVJvdyx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7UWUuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FlLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICR7UWUubmFtZX1gOlFlLm5hbWV9CiAgICAgICAgICAgICAgPC9kaXY+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckhlYWRlclJvd3MoRCl7cmV0dXJuIHdgCiAgICAgIDx0cj4KICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgCiAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtUPT57VC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnNldFNlbGVjdFZpc2libGUoVC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICBgOndgYH0KICAgICAgICAke0QuZmlsdGVyKFQ9PiFULmhpZGRlbikubWFwKFQ9PntsZXQgRz1ULnNvcnRhYmxlIT09ITEsJGU9dGhpcy5nZXRBcmlhU29ydChUKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8dGgKICAgICAgICAgICAgICAgIHJvbGU9ImNvbHVtbmhlYWRlciIKICAgICAgICAgICAgICAgIGFyaWEtc29ydD0keyRlfQogICAgICAgICAgICAgICAgc3R5bGU9IiR7Rz8iY3Vyc29yOiBwb2ludGVyOyI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7UGU9Pkc/dGhpcy5oYW5kbGVIZWFkZXJDbGljayhQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtQZT0+Rz90aGlzLm9wZW5IZWFkZXJDb250ZXh0TWVudShQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtULmhlYWRlcj8/VC5rZXl9CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihUKX0KICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAke3RoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjA/d2A8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPmA6d2BgfQogICAgICA8L3RyPgogICAgICAke3RoaXMuc2hvd0NvbHVtbkZpbHRlcnM/d2A8dHIgY2xhc3M9ImZpbHRlcnNSb3ciPgogICAgICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyI+PC90aD5gOndgYH0KICAgICAgICAgICAgJHtELmZpbHRlcihUPT4hVC5oaWRkZW4pLm1hcChUPT57bGV0IEc9U3RyaW5nKFQua2V5KTtyZXR1cm4gVC5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgZGF0YS1jb2wta2V5PSR7R30gLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW0ddfHwiIn0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHskZT0+dGhpcy5zZXRDb2x1bW5GaWx0ZXIoRywkZS50YXJnZXQudmFsdWUpfSAvPgogICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aD48L3RoPmA6d2BgfQogICAgICAgICAgPC90cj5gOndgYH0KICAgIGB9X19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyO19fZmxvYXRpbmdTY3JvbGxIYW5kbGVyO19fc2Nyb2xsQW5jZXN0b3JzPVtdO2dldCBfX2Zsb2F0aW5nSGVhZGVyRWwoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmxvYXRpbmdIZWFkZXIiKT8/bnVsbH1nZXQgX19yZWFsVGFibGVFbCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCA+IHRhYmxlIik/P251bGx9Z2V0IF9fZmxvYXRpbmdUYWJsZUVsKCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZsb2F0aW5nSGVhZGVyID4gdGFibGUiKT8/bnVsbH1fX2NvbGxlY3RTY3JvbGxBbmNlc3RvcnMoKXtsZXQgRD1bXSxUPXRoaXMsRz1pKCRlPT4kZT09PSJhdXRvInx8JGU9PT0ic2Nyb2xsInx8JGU9PT0ib3ZlcmxheSIsInNjcm9sbGlzaCIpO2Zvcig7VDspe2lmKFQgaW5zdGFuY2VvZiBFbGVtZW50KXtsZXQgUGU9Z2V0Q29tcHV0ZWRTdHlsZShUKSxGZT1HKFBlLm92ZXJmbG93WSksVmU9RyhQZS5vdmVyZmxvd1gpOyhGZXx8VmUpJiZELnB1c2goe3RhcmdldDpULHNjcm9sbHNZOkZlLHNjcm9sbHNYOlZlfSl9bGV0ICRlPVQuYXNzaWduZWRTbG90P1QuYXNzaWduZWRTbG90OlQucGFyZW50Tm9kZTskZT9UPSRlOlQuaG9zdD9UPVQuaG9zdDpUPW51bGx9cmV0dXJuIEQucHVzaCh7dGFyZ2V0OndpbmRvdyxzY3JvbGxzWTohMCxzY3JvbGxzWDohMH0pLER9X19nZXRTdGlja0NvbnRleHQoKXtsZXQgRD0wLFQ9MCxHPXdpbmRvdy5pbm5lcldpZHRoO2ZvcihsZXQgJGUgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoJGUudGFyZ2V0PT09d2luZG93KWNvbnRpbnVlO2xldCBQZT0kZS50YXJnZXQsRmU9UGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVmU9Z2V0Q29tcHV0ZWRTdHlsZShQZSk7aWYoJGUuc2Nyb2xsc1kpe2xldCBVZT1wYXJzZUZsb2F0KFZlLmJvcmRlclRvcFdpZHRoKXx8MDtEPU1hdGgubWF4KEQsRmUudG9wK1VlKX1pZigkZS5zY3JvbGxzWCl7bGV0IFVlPXBhcnNlRmxvYXQoVmUuYm9yZGVyTGVmdFdpZHRoKXx8MCxYZT1wYXJzZUZsb2F0KFZlLmJvcmRlclJpZ2h0V2lkdGgpfHwwO1Q9TWF0aC5tYXgoVCxGZS5sZWZ0K1VlKSxHPU1hdGgubWluKEcsRmUucmlnaHQtWGUpfX1yZXR1cm57dG9wOkQsbGVmdDpULHJpZ2h0Okd9fXNldHVwRmxvYXRpbmdIZWFkZXIoKXtpZih0aGlzLnRlYXJkb3duRmxvYXRpbmdIZWFkZXIoKSx0aGlzLmZpeGVkSGVpZ2h0JiYhdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IEQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEKXJldHVybjt0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzPXRoaXMuX19jb2xsZWN0U2Nyb2xsQW5jZXN0b3JzKCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwiKTtUJiZ0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzLnVuc2hpZnQoe3RhcmdldDpULHNjcm9sbHNZOnRoaXMuZml4ZWRIZWlnaHQsc2Nyb2xsc1g6ITB9KSx0aGlzLl9fZmxvYXRpbmdSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy52aXJ0dWFsaXplZCYmdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKX0pLHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoRCksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj0oKT0+e3RoaXMuZml4ZWRIZWlnaHR8fHRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnZpcnR1YWxpemVkJiZ0aGlzLl9fY29tcHV0ZVZpcnR1YWxSYW5nZSgpfTtmb3IobGV0IEcgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycylHLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksdGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9dGVhcmRvd25GbG9hdGluZ0hlYWRlcigpe2lmKHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpe2ZvcihsZXQgVCBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKVQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlciksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj12b2lkIDB9dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz1bXSx0aGlzLl9fZmxvYXRpbmdBY3RpdmU9ITE7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7RCYmRC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1fX3RyYW5zZmVyRm9jdXNUb1JlYWxIZWFkZXIoKXtsZXQgRD10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbDtpZighRClyZXR1cm47bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50O2lmKCFUfHwhRC5jb250YWlucyhUKSlyZXR1cm47bGV0IEc9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCFHKXJldHVybjtsZXQgJGU9VCxQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50YWJsZVNjcm9sbCA+IHRhYmxlID4gdGhlYWQgaW5wdXRbZGF0YS1jb2wta2V5PSIke0NTUy5lc2NhcGUoRyl9Il1gKTtpZighUGV8fFBlPT09JGUpcmV0dXJuO2xldCBGZT0kZS5zZWxlY3Rpb25TdGFydCxWZT0kZS5zZWxlY3Rpb25FbmQsVWU9JGUuc2VsZWN0aW9uRGlyZWN0aW9uO1BlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e0ZlIT1udWxsJiZWZSE9bnVsbCYmUGUuc2V0U2VsZWN0aW9uUmFuZ2UoRmUsVmUsVWV8fHZvaWQgMCl9Y2F0Y2h7fX1fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7aWYoIUR8fCF0aGlzLl9fZmxvYXRpbmdBY3RpdmUpcmV0dXJuO2xldCBUPXRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudDtpZighVClyZXR1cm47bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwgPiB0YWJsZSA+IHRoZWFkIik7aWYoIUd8fCFHLmNvbnRhaW5zKFQpKXJldHVybjtsZXQgJGU9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCEkZSlyZXR1cm47bGV0IFBlPVQsRmU9RC5xdWVyeVNlbGVjdG9yKGBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZSgkZSl9Il1gKTtpZighRmV8fEZlPT09UGUpcmV0dXJuO2xldCBWZT1QZS5zZWxlY3Rpb25TdGFydCxVZT1QZS5zZWxlY3Rpb25FbmQsWGU9UGUuc2VsZWN0aW9uRGlyZWN0aW9uO0ZlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e1ZlIT1udWxsJiZVZSE9bnVsbCYmRmUuc2V0U2VsZWN0aW9uUmFuZ2UoVmUsVWUsWGV8fHZvaWQgMCl9Y2F0Y2h7fX1fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKXtpZighdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IFQ9KHRoaXMuX2xhc3RWaWV3RGF0YT8/W10pLmxlbmd0aDtpZihUPT09MCl7KHRoaXMuX192aXJ0dWFsUmFuZ2Uuc3RhcnQhPT0wfHx0aGlzLl9fdmlydHVhbFJhbmdlLmVuZCE9PTApJiYodGhpcy5fX3ZpcnR1YWxSYW5nZT17c3RhcnQ6MCxlbmQ6MH0pO3JldHVybn1sZXQgRz10aGlzLl9fcmVhbFRhYmxlRWw7aWYoIUcpcmV0dXJuO2xldCAkZT1HLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFBlPTAsRmU9d2luZG93LmlubmVySGVpZ2h0O2ZvcihsZXQgZnQgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoZnQudGFyZ2V0PT09d2luZG93fHwhZnQuc2Nyb2xsc1kpY29udGludWU7bGV0IGVyPWZ0LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxrcz1nZXRDb21wdXRlZFN0eWxlKGZ0LnRhcmdldCksaHM9cGFyc2VGbG9hdChrcy5ib3JkZXJUb3BXaWR0aCl8fDAsX2k9cGFyc2VGbG9hdChrcy5ib3JkZXJCb3R0b21XaWR0aCl8fDA7UGU9TWF0aC5tYXgoUGUsZXIudG9wK2hzKSxGZT1NYXRoLm1pbihGZSxlci5ib3R0b20tX2kpfWxldCBWZT1NYXRoLm1heCgxLHRoaXMuX19yb3dIZWlnaHQpLFVlPUcudEhlYWQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodD8/MCxYZT0kZS50b3ArVWUsd3Q9TWF0aC5tYXgoMCxQZS1YZSksUWU9TWF0aC5tYXgoMCxGZS1NYXRoLm1heChQZSxYZSkpLHZhPU1hdGguZmxvb3Iod3QvVmUpLE5zPU1hdGguY2VpbChRZS9WZSkrMSx1YT1NYXRoLm1heCgwLHZhLXRoaXMudmlydHVhbE92ZXJzY2FuKSxHcz1NYXRoLm1pbihULHZhK05zK3RoaXMudmlydHVhbE92ZXJzY2FuKTsodWEhPT10aGlzLl9fdmlydHVhbFJhbmdlLnN0YXJ0fHxHcyE9PXRoaXMuX192aXJ0dWFsUmFuZ2UuZW5kKSYmKHRoaXMuX192aXJ0dWFsUmFuZ2U9e3N0YXJ0OnVhLGVuZDpHc30pfV9fbWVhc3VyZVJvd0hlaWdodCgpe2lmKCF0aGlzLnZpcnR1YWxpemVkfHx0aGlzLl9fcm93SGVpZ2h0TWVhc3VyZWQpcmV0dXJuO2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidGJvZHkiKTtpZighRClyZXR1cm47bGV0IFQ9QXJyYXkuZnJvbShELnJvd3MpLmZpbmQoJGU9PiRlLmhhc0F0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpO2lmKCFUKXJldHVybjtsZXQgRz1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtHPjAmJih0aGlzLl9fcm93SGVpZ2h0PUcsdGhpcy5fX3Jvd0hlaWdodE1lYXN1cmVkPSEwKX1fX3N5bmNGbG9hdGluZ0hlYWRlcigpe2xldCBEPXRoaXMuX19mbG9hdGluZ0hlYWRlckVsLFQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEfHwhVClyZXR1cm47bGV0IEc9VC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwkZT10aGlzLl9fZ2V0U3RpY2tDb250ZXh0KCksUGU9VC50SGVhZD8ucm93cyxGZT0wO2lmKFBlKWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGg7ZnQrKylGZSs9UGVbZnRdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtsZXQgVmU9Ry5ib3R0b20tJGUudG9wLFVlPUcudG9wPCRlLnRvcCYmVmU+MDtpZihVZSE9PXRoaXMuX19mbG9hdGluZ0FjdGl2ZSl7aWYoVWV8fHRoaXMuX190cmFuc2ZlckZvY3VzVG9SZWFsSGVhZGVyKCksdGhpcy5fX2Zsb2F0aW5nQWN0aXZlPVVlLEQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixVZSksIVVlKXtELnN0eWxlLmhlaWdodD0iIjtsZXQgZnQ9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtmdCYmKGZ0LnN0eWxlLnRyYW5zZm9ybT0iIil9aWYoVWUpe3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLl9fdHJhbnNmZXJGb2N1c1RvRmxvYXRpbmdIZWFkZXIoKX0pO3JldHVybn19aWYoIVVlKXJldHVybjtsZXQgWGU9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtpZighWGUpcmV0dXJuO1hlLnN0eWxlLnRhYmxlTGF5b3V0PVQuc3R5bGUudGFibGVMYXlvdXR8fCJhdXRvIjtsZXQgd3Q9WGUudEhlYWQ/LnJvd3M7aWYoUGUmJnd0KWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGgmJmZ0PHd0Lmxlbmd0aDtmdCsrKXtsZXQgZXI9UGVbZnRdLmNlbGxzLGtzPXd0W2Z0XS5jZWxscztmb3IobGV0IGhzPTA7aHM8ZXIubGVuZ3RoJiZoczxrcy5sZW5ndGg7aHMrKyl7bGV0IF9pPWVyW2hzXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtrc1toc10uc3R5bGUud2lkdGg9YCR7X2l9cHhgLGtzW2hzXS5zdHlsZS5taW5XaWR0aD1gJHtfaX1weGAsa3NbaHNdLnN0eWxlLm1heFdpZHRoPWAke19pfXB4YH19bGV0IFFlPU1hdGgubWF4KEcubGVmdCwkZS5sZWZ0KSx2YT1NYXRoLm1pbihHLnJpZ2h0LCRlLnJpZ2h0KSxOcz1NYXRoLm1heCgwLHZhLVFlKTtELnN0eWxlLnRvcD1gJHskZS50b3B9cHhgLEQuc3R5bGUubGVmdD1gJHtRZX1weGAsRC5zdHlsZS53aWR0aD1gJHtOc31weGA7bGV0IHVhPU1hdGgubWluKEZlLFZlKSxHcz1GZS11YTtELnN0eWxlLmhlaWdodD1gJHt1YX1weGAsWGUuc3R5bGUud2lkdGg9YCR7Ry53aWR0aH1weGAsWGUuc3R5bGUubWFyZ2luTGVmdD1gJHtHLmxlZnQtUWV9cHhgLFhlLnN0eWxlLnRyYW5zZm9ybT1Hcz4wP2B0cmFuc2xhdGVZKC0ke0dzfXB4KWA6IiJ9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpLHRoaXMuX19mbGFzaENsZWFyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj12b2lkIDApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe313aWxsVXBkYXRlKEQpe2lmKEQuaGFzKCJkYXRhIikmJnRoaXMuc2VsZWN0ZWREYXRhUm93JiZ0aGlzLnJvd0tleSl7bGV0IHd0PXRoaXMuZ2V0Um93SWQodGhpcy5zZWxlY3RlZERhdGFSb3cpLFFlO2ZvcihsZXQgdmEgb2YgdGhpcy5kYXRhKWlmKHRoaXMuZ2V0Um93SWQodmEpPT09d3Qpe1FlPXZhO2JyZWFrfVFlP1FlIT09dGhpcy5zZWxlY3RlZERhdGFSb3cmJih0aGlzLnNlbGVjdGVkRGF0YVJvdz1RZSk6dGhpcy5zZWxlY3RlZERhdGFSb3c9dm9pZCAwfWlmKHRoaXMuaGlnaGxpZ2h0VXBkYXRlcyE9PSJmbGFzaCIpeyh0aGlzLl9fcHJldlNuYXBzaG90fHx0aGlzLl9fZmxhc2hpbmdDZWxscy5zaXplPjApJiYodGhpcy5fX3ByZXZTbmFwc2hvdD12b2lkIDAsdGhpcy5fX2ZsYXNoaW5nQ2VsbHMuc2l6ZT4wJiYodGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMCkpO3JldHVybn1pZighdGhpcy5yb3dLZXkpe3RoaXMuX19mbGFzaFdhcm5lZE5vUm93S2V5fHwodGhpcy5fX2ZsYXNoV2FybmVkTm9Sb3dLZXk9ITAsY29uc29sZS53YXJuKCdbZGVlcy10YWJsZV0gaGlnaGxpZ2h0VXBkYXRlcz0iZmxhc2giIHJlcXVpcmVzIGByb3dLZXlgIHRvIGJlIHNldC4gRmxhc2ggaXMgZGlzYWJsZWQuIFNldCB0aGUgcm93S2V5IHByb3BlcnR5L2F0dHJpYnV0ZSB0byBhIHN0YWJsZSBpZGVudGlmaWVyIG9uIHlvdXIgcm93IGRhdGEgKGUuZy4gYHJvd0tleT0iaWQiYCkuJykpO3JldHVybn1pZighRC5oYXMoImRhdGEiKSlyZXR1cm47bGV0IEc9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maWx0ZXIod3Q9PiF3dC5oaWRkZW4pLCRlPW5ldyBNYXAoRy5tYXAod3Q9PltTdHJpbmcod3Qua2V5KSx3dF0pKSxQZT1uZXcgTWFwLEZlPW5ldyBNYXA7Zm9yKGxldCB3dCBvZiB0aGlzLmRhdGEpe2xldCBRZT10aGlzLmdldFJvd0lkKHd0KSx2YT1uZXcgTWFwO2ZvcihsZXQgdWEgb2YgRyl2YS5zZXQoU3RyaW5nKHVhLmtleSksT2god3QsdWEsdGhpcy5kaXNwbGF5RnVuY3Rpb24pKTtQZS5zZXQoUWUsdmEpO2xldCBOcz10aGlzLl9fcHJldlNuYXBzaG90Py5nZXQoUWUpO2lmKE5zKWZvcihsZXRbdWEsR3Ndb2YgdmEpe2xldCBmdD1Ocy5nZXQodWEpLGVyPSRlLmdldCh1YSksa3M7aWYoZXI/LmZsYXNoQ29tcGFyZT9rcz1lci5mbGFzaENvbXBhcmUoZnQsR3MpOkdzIT1udWxsJiZ0eXBlb2YgR3M9PSJvYmplY3QiP2tzPSExOmtzPWZ0IT09R3Msa3Mpe2lmKHRoaXMuX19lZGl0aW5nQ2VsbCYmdGhpcy5fX2VkaXRpbmdDZWxsLnJvd0lkPT09UWUmJnRoaXMuX19lZGl0aW5nQ2VsbC5jb2xLZXk9PT11YSljb250aW51ZTtsZXQgaHM9RmUuZ2V0KFFlKTtoc3x8KGhzPW5ldyBTZXQsRmUuc2V0KFFlLGhzKSksaHMuYWRkKHVhKX19fWxldCBWZT0hIXRoaXMuX19wcmV2U25hcHNob3Q7aWYodGhpcy5fX3ByZXZTbmFwc2hvdD1QZSwhVmV8fEZlLnNpemU9PT0wKXJldHVybjtsZXQgVWU9Kyt0aGlzLl9fZmxhc2hUaWNrLFhlPW5ldyBNYXAodGhpcy5fX2ZsYXNoaW5nQ2VsbHMpO2ZvcihsZXRbd3QsUWVdb2YgRmUpe2xldCB2YT1uZXcgTWFwKFhlLmdldCh3dCk/P1tdKTtmb3IobGV0IE5zIG9mIFFlKXZhLnNldChOcyxVZSk7WGUuc2V0KHd0LHZhKX10aGlzLl9fZmxhc2hpbmdDZWxscz1YZSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMH0sTWF0aC5tYXgoMCx0aGlzLmhpZ2hsaWdodER1cmF0aW9uKSl9YXN5bmMgdXBkYXRlZChEKXtzdXBlci51cGRhdGVkKEQpO2xldCBUPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik/P251bGwsJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKS5sZW5ndGg7RC5oYXMoImhpZ2hsaWdodER1cmF0aW9uIikmJnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZGVlcy10YWJsZS1mbGFzaC1kdXJhdGlvbiIsYCR7dGhpcy5oaWdobGlnaHREdXJhdGlvbn1tc2ApO2xldCBQZT0hIUcmJighdGhpcy5fX2NvbHVtbnNTaXplZEZvcnx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5lZmZlY3RpdmVDb2x1bW5zIT09VHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5zaG93U2VsZWN0aW9uQ2hlY2tib3ghPT10aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5pblJvd0FjdGlvbkNvdW50IT09JGV8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IudGFibGUhPT1HKTtHJiZQZSYmKHRoaXMuX19jb2x1bW5zU2l6ZWRGb3I9e2VmZmVjdGl2ZUNvbHVtbnM6VCxzaG93U2VsZWN0aW9uQ2hlY2tib3g6dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3gsaW5Sb3dBY3Rpb25Db3VudDokZSx0YWJsZTpHfSx0aGlzLmRldGVybWluZUNvbHVtbldpZHRocygpLHRoaXMuX19yb3dIZWlnaHRNZWFzdXJlZD0hMSksdGhpcy52aXJ0dWFsaXplZCYmKHRoaXMuX19tZWFzdXJlUm93SGVpZ2h0KCksdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKSksKEQuaGFzKCJmaXhlZEhlaWdodCIpfHxELmhhcygidmlydHVhbGl6ZWQiKXx8RC5oYXMoImRhdGEiKXx8RC5oYXMoImNvbHVtbnMiKXx8IXRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpJiYoKCF0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLnZpcnR1YWxpemVkKSYmdGhpcy5kYXRhLmxlbmd0aD4wP3RoaXMuc2V0dXBGbG9hdGluZ0hlYWRlcigpOnRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpKSwhdGhpcy5maXhlZEhlaWdodCYmdGhpcy5kYXRhLmxlbmd0aD4wJiYodGhpcy5fX2Zsb2F0aW5nQWN0aXZlfHxQZSkmJnRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnNlYXJjaGFibGUmJih0aGlzLmRhdGFBY3Rpb25zLmZpbmQoVmU9PlZlLnR5cGU/LmluY2x1ZGVzKCJoZWFkZXIiKSYmVmUubmFtZT09PSJTZWFyY2giKXx8KHRoaXMuZGF0YUFjdGlvbnMudW5zaGlmdCh7bmFtZToiU2VhcmNoIixpY29uTmFtZToibHVjaWRlOlNlYXJjaCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57Y29uc29sZS5sb2coIm9wZW4gc2VhcmNoIiksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIikuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIil9LCJhY3Rpb25GdW5jIil9KSxjb25zb2xlLmxvZyh0aGlzLmRhdGFBY3Rpb25zKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksdGhpcy53aXJlU2VhcmNoSW5wdXRzKCkpfV9fZGVib3VuY2VUaW1lcjtkZWJvdW5jZVJ1bihELFQ9MjAwKXt0aGlzLl9fZGVib3VuY2VUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX19kZWJvdW5jZVRpbWVyKSx0aGlzLl9fZGVib3VuY2VUaW1lcj1zZXRUaW1lb3V0KEQsVCl9d2lyZVNlYXJjaElucHV0cygpe2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC10ZXh0IiksVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKTtEJiYhdGhpcy5fX3NlYXJjaFRleHRTdWImJih0aGlzLl9fc2VhcmNoVGV4dFN1Yj1ELmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTokZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dCgkZSl9KX0pKSxUJiYhdGhpcy5fX3NlYXJjaE1vZGVTdWImJih0aGlzLl9fc2VhcmNoTW9kZVN1Yj1ULmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8uc2VsZWN0ZWRPcHRpb258fEc/LnZhbHVlfHwidGFibGUiO2lmKCRlPT09InRhYmxlInx8JGU9PT0iZGF0YSJ8fCRlPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT0kZTtsZXQgUGU9RD8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpQZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChQZSl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik7aWYoIVQpcmV0dXJuO2xldCBHPVQucm93c1swXS5jZWxscywkZT1pKGFzeW5jKFBlLEZlPSExKT0+e2xldCBWZT1tdC5kZWZlcigpLFVlPUdbUGVdLFhlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFVlKS53aWR0aDtpZihVZS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpKXtsZXQgd3Q9dGhpcy5kYXRhQWN0aW9ucy5maWx0ZXIoUWU9PlFlLnR5cGU/LmluY2x1ZGVzKCJpblJvdyIpKS5sZW5ndGgqMzY7VWUuc3R5bGUud2lkdGg9YCR7TWF0aC5tYXgod3QsNjgpfXB4YH1lbHNlIFVlLnN0eWxlLndpZHRoPVhlO0ZlJiYocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VmUucmVzb2x2ZSgpfSksYXdhaXQgVmUucHJvbWlzZSl9LCJoYW5kbGVDb2x1bW5CeUluZGV4Iik7R1tHLmxlbmd0aC0xXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpJiZhd2FpdCAkZShHLmxlbmd0aC0xLCEwKTtmb3IobGV0IFBlPTA7UGU8Ry5sZW5ndGg7UGUrKylHW1BlXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpfHxhd2FpdCAkZShQZSk7VC5zdHlsZS50YWJsZUxheW91dD0iZml4ZWQifWdldFNvcnREZXNjcmlwdG9yKEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kKFQ9PlQua2V5PT09RCl9Z2V0U29ydFByaW9yaXR5KEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kSW5kZXgoVD0+VC5rZXk9PT1EKX1zZXRTb3J0KEQsVCl7dGhpcy5zb3J0Qnk9W3trZXk6RCxkaXI6VH1dLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hZGRTb3J0QXQoRCxULEcpe2xldCAkZT10aGlzLnNvcnRCeS5maWx0ZXIoRmU9PkZlLmtleSE9PUQpLFBlPU1hdGgubWF4KDAsTWF0aC5taW4oVCwkZS5sZW5ndGgpKTskZS5zcGxpY2UoUGUsMCx7a2V5OkQsZGlyOkd9KSx0aGlzLnNvcnRCeT0kZSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kU29ydChELFQpe2xldCBHPXRoaXMuc29ydEJ5LmZpbHRlcigkZT0+JGUua2V5IT09RCk7Ry5wdXNoKHtrZXk6RCxkaXI6VH0pLHRoaXMuc29ydEJ5PUcsdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXJlbW92ZVNvcnQoRCl7dGhpcy5zb3J0Qnkuc29tZShUPT5ULmtleT09PUQpJiYodGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkuZmlsdGVyKFQ9PlQua2V5IT09RCksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1jbGVhclNvcnRzKCl7dGhpcy5zb3J0QnkubGVuZ3RoIT09MCYmKHRoaXMuc29ydEJ5PVtdLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9ZW1pdFNvcnRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzb3J0Q2hhbmdlIix7ZGV0YWlsOntzb3J0Qnk6dGhpcy5zb3J0QnkubWFwKEQ9Pih7Li4uRH0pKX0sYnViYmxlczohMH0pKX1hc3luYyBoYW5kbGVIZWFkZXJDbGljayhELFQsRyl7aWYoRC5zaGlmdEtleSl7dGhpcy5oYW5kbGVIZWFkZXJTaGlmdENsaWNrKFQpO3JldHVybn1hd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShUKSYmdGhpcy5jeWNsZVNpbmdsZVNvcnQoVCl9Y3ljbGVTaW5nbGVTb3J0KEQpe2xldCBUPVN0cmluZyhELmtleSksRz10aGlzLnNvcnRCeS5sZW5ndGg9PT0xJiZ0aGlzLnNvcnRCeVswXS5rZXk9PT1UP3RoaXMuc29ydEJ5WzBdLmRpcjpudWxsO0c9PT0iYXNjIj90aGlzLnNldFNvcnQoVCwiZGVzYyIpOkc9PT0iZGVzYyI/dGhpcy5jbGVhclNvcnRzKCk6dGhpcy5zZXRTb3J0KFQsImFzYyIpfWhhbmRsZUhlYWRlclNoaWZ0Q2xpY2soRCl7bGV0IFQ9U3RyaW5nKEQua2V5KSxHPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoVCk7Rz9HLmRpcj09PSJhc2MiPyh0aGlzLnNvcnRCeT10aGlzLnNvcnRCeS5tYXAoJGU9PiRlLmtleT09PVQ/e2tleTpULGRpcjoiZGVzYyJ9OiRlKSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpOnRoaXMucmVtb3ZlU29ydChUKTp0aGlzLmFwcGVuZFNvcnQoVCwiYXNjIil9Y29uZmlybVJlcGxhY2VDYXNjYWRlKEQpe3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg8PTE/UHJvbWlzZS5yZXNvbHZlKCEwKTpuZXcgUHJvbWlzZShUPT57bGV0IEc9ITEsJGU9aShGZT0+e0d8fChHPSEwLFQoRmUpKX0sInNldHRsZSIpLFBlPXRoaXMuc29ydEJ5Lm1hcCgoRmUsVmUpPT57bGV0IFhlPXRoaXMuX2xvb2t1cENvbHVtbkJ5S2V5Py4oRmUua2V5KT8uaGVhZGVyPz9GZS5rZXk7cmV0dXJuIHdgPGxpPiR7VmUrMX0uICR7WGV9ICR7RmUuZGlyPT09ImFzYyI/Ilx1MjVCMiI6Ilx1MjVCQyJ9PC9saT5gfSk7UWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiUmVwbGFjZSBtdWx0aS1jb2x1bW4gc29ydD8iLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxLjU1OyI+CiAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46MCAwIDhweDsiPgogICAgICAgICAgICAgIFlvdSBjdXJyZW50bHkgaGF2ZSBhICR7dGhpcy5zb3J0QnkubGVuZ3RofS1jb2x1bW4gc29ydCBhY3RpdmU6CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7IHBhZGRpbmctbGVmdDoxOHB4OyI+JHtQZX08L3VsPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOjA7Ij4KICAgICAgICAgICAgICBDb250aW51aW5nIHdpbGwgZGlzY2FyZCB0aGUgY2FzY2FkZSBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgc2luZ2xlIHNvcnQgb24KICAgICAgICAgICAgICA8c3Ryb25nPiR7RC5oZWFkZXI/P1N0cmluZyhELmtleSl9PC9zdHJvbmc+LgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjppKGFzeW5jIEZlPT4oJGUoITEpLGF3YWl0IEZlLmRlc3Ryb3koKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToibHVjaWRlOmNoZWNrIixhY3Rpb246aShhc3luYyBGZT0+KCRlKCEwKSxhd2FpdCBGZS5kZXN0cm95KCksbnVsbCksImFjdGlvbiIpfV19KX0pfV9sb29rdXBDb2x1bW5CeUtleShEKXtyZXR1cm4gdGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKEc9PlN0cmluZyhHLmtleSk9PT1EKX1vcGVuSGVhZGVyQ29udGV4dE1lbnUoRCxULEcpe2xldCAkZT10aGlzLmJ1aWxkSGVhZGVyTWVudUl0ZW1zKFQsRyk7a2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCwkZSl9YnVpbGRIZWFkZXJNZW51SXRlbXMoRCxUKXtsZXQgRz1TdHJpbmcoRC5rZXkpLCRlPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoRyksUGU9dGhpcy5zb3J0QnkubGVuZ3RoLEZlPVQuZmlsdGVyKFhlPT5YZS5zb3J0YWJsZSE9PSExKS5sZW5ndGgsVmU9TWF0aC5taW4oTWF0aC5tYXgoUGUrKCRlPzA6MSksMSksTWF0aC5tYXgoRmUsMSkpLFVlPVtdO1VlLnB1c2goe25hbWU6IlNvcnQgQXNjZW5kaW5nIixpY29uTmFtZTpQZT09PTEmJiRlPy5kaXI9PT0iYXNjIj8ibHVjaWRlOmNoZWNrIjoibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShEKSYmdGhpcy5zZXRTb3J0KEcsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0pLFVlLnB1c2goe25hbWU6IlNvcnQgRGVzY2VuZGluZyIsaWNvbk5hbWU6UGU9PT0xJiYkZT8uZGlyPT09ImRlc2MiPyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4oYXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoRCkmJnRoaXMuc2V0U29ydChHLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfSksVWUucHVzaCh7ZGl2aWRlcjohMH0pO2ZvcihsZXQgWGU9MTtYZTw9VmU7WGUrKyl7bGV0IHd0PXFYYShYZSksUWU9JGUmJnRoaXMuZ2V0U29ydFByaW9yaXR5KEcpPT09WGUtMTtVZS5wdXNoKHtuYW1lOmBTZXQgYXMgJHt3dH0gc29ydGAsaWNvbk5hbWU6UWU/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTpsaXN0T3JkZXJlZCIsc3VibWVudTpbe25hbWU6IkFzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd1VwIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hZGRTb3J0QXQoRyxYZS0xLCJhc2MiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJEZXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuYWRkU29ydEF0KEcsWGUtMSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSl9cmV0dXJuIFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOiJBcHBlbmQgdG8gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixzdWJtZW51Olt7bmFtZToiQXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiYXNjIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiRGVzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSksJGUmJihVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiUmVtb3ZlIGZyb20gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTptaW51cyIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMucmVtb3ZlU29ydChHKSxudWxsKSwiYWN0aW9uIil9KSksUGU+MCYmKCRlfHxVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiQ2xlYXIgYWxsIHNvcnRzIixpY29uTmFtZToibHVjaWRlOnRyYXNoIixhY3Rpb246aShhc3luYygpPT4odGhpcy5jbGVhclNvcnRzKCksbnVsbCksImFjdGlvbiIpfSkpLFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOnRoaXMuc2hvd0NvbHVtbkZpbHRlcnM/IkhpZGUgY29sdW1uIGZpbHRlcnMiOiJTaG93IGNvbHVtbiBmaWx0ZXJzIixpY29uTmFtZTp0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPyJsdWNpZGU6ZmlsdGVyWCI6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPSF0aGlzLnNob3dDb2x1bW5GaWx0ZXJzLHRoaXMucmVxdWVzdFVwZGF0ZSgpLG51bGwpLCJhY3Rpb24iKX0pLFVlfWdldEFyaWFTb3J0KEQpe2xldCBUPXRoaXMuc29ydEJ5WzBdO3JldHVybiFUfHxULmtleSE9PVN0cmluZyhELmtleSk/Im5vbmUiOlQuZGlyPT09ImFzYyI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmcifXJlbmRlclNvcnRJbmRpY2F0b3IoRCl7bGV0IFQ9dGhpcy5nZXRTb3J0UHJpb3JpdHkoU3RyaW5nKEQua2V5KSk7aWYoVDwwKXJldHVybiB3YGA7bGV0ICRlPXRoaXMuc29ydEJ5W1RdLmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMiO3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg9PT0xP3dgPHNwYW4gY2xhc3M9InNvcnRBcnJvdyI+JHskZX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJzb3J0QXJyb3ciPiR7JGV9PC9zcGFuPjxzcGFuIGNsYXNzPSJzb3J0QmFkZ2UiPiR7VCsxfTwvc3Bhbj5gfXNldEZpbHRlclRleHQoRCl7bGV0IFQ9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1EPz8iIixUIT09dGhpcy5maWx0ZXJUZXh0JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1zZXRDb2x1bW5GaWx0ZXIoRCxUKXt0aGlzLmNvbHVtbkZpbHRlcnM9ey4uLnRoaXMuY29sdW1uRmlsdGVycyxbRF06VH0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKEQpe2lmKHRoaXMucm93S2V5KXJldHVybiB0eXBlb2YgdGhpcy5yb3dLZXk9PSJmdW5jdGlvbiI/dGhpcy5yb3dLZXkoRCk6U3RyaW5nKERbdGhpcy5yb3dLZXldKTtsZXQgVD1EO3JldHVybiB0aGlzLl9yb3dJZE1hcC5oYXMoVCl8fHRoaXMuX3Jvd0lkTWFwLnNldChULFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpLHRoaXMuX3Jvd0lkTWFwLmdldChUKX1pc1Jvd1NlbGVjdGVkKEQpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEQpKX10b2dnbGVSb3dTZWxlY3RlZChEKXtsZXQgVD10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoVCkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJih0aGlzLnNlbGVjdGVkSWRzLmhhcyhUKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShUKTp0aGlzLnNlbGVjdGVkSWRzLmFkZChUKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9X19yZXNvbHZlUm93KEQpe2xldCBUPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sRz1udWxsO2ZvcihsZXQgVmUgb2YgVCl7bGV0IFVlPVZlO2lmKFVlPy50YWdOYW1lPT09IlRSIiYmVWUuaGFzQXR0cmlidXRlKCJkYXRhLXJvdy1pZHgiKSl7Rz1VZTticmVha319aWYoIUcpcmV0dXJuIG51bGw7bGV0ICRlPU51bWJlcihHLmdldEF0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpLEZlPSh0aGlzLl9sYXN0Vmlld0RhdGE/P1tdKVskZV07cmV0dXJuIEZlP3tpdGVtOkZlLHJvd0lkeDokZX06bnVsbH1fX3Jlc29sdmVDZWxsKEQpe2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybiBudWxsO2xldCBHPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sJGU9bnVsbDtmb3IobGV0IFVlIG9mIEcpe2xldCBYZT1VZTtpZihYZT8udGFnTmFtZT09PSJURCImJlhlLmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IikpeyRlPVhlO2JyZWFrfX1pZighJGUpcmV0dXJuIG51bGw7bGV0IFBlPSRlLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IiksVmU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKFVlPT5TdHJpbmcoVWUua2V5KT09PVBlKTtyZXR1cm4gVmU/e2l0ZW06VC5pdGVtLHJvd0lkeDpULnJvd0lkeCxjb2w6VmV9Om51bGx9X19pc0luQWN0aW9uc0NvbChEKXtsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgRyBvZiBUKWlmKEc/LmNsYXNzTGlzdD8uY29udGFpbnMoImFjdGlvbnNDb2wiKSlyZXR1cm4hMDtyZXR1cm4hMX1fX2lzSW5FZGl0b3IoRCl7bGV0IFQ9RC5jb21wb3NlZFBhdGg/LigpfHxbXTtmb3IobGV0IEcgb2YgVCl7bGV0ICRlPUcsUGU9JGU/LnRhZ05hbWU7aWYoUGU9PT0iSU5QVVQifHxQZT09PSJURVhUQVJFQSJ8fCRlPy5pc0NvbnRlbnRFZGl0YWJsZXx8UGUmJlBlLnN0YXJ0c1dpdGgoIkRFRVMtSU5QVVQtIikpcmV0dXJuITB9cmV0dXJuITF9X19vblRib2R5Q2xpY2s9aShEPT57aWYodGhpcy5fX2lzSW5FZGl0b3IoRCl8fHRoaXMuX19pc0luQWN0aW9uc0NvbChEKSlyZXR1cm47bGV0IFQ9dGhpcy5fX3Jlc29sdmVDZWxsKEQpO2lmKCFUKXJldHVybjtsZXQgRz10aGlzLl9sYXN0Vmlld0RhdGE/P1tdOyhULmNvbC5lZGl0YWJsZXx8VC5jb2wuZWRpdG9yKSYmKHRoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChULml0ZW0pLGNvbEtleTpTdHJpbmcoVC5jb2wua2V5KX0pLHRoaXMuaGFuZGxlUm93Q2xpY2soRCxULml0ZW0sVC5yb3dJZHgsRyl9LCJfX29uVGJvZHlDbGljayIpO19fb25UYm9keURibGNsaWNrPWkoRD0+e2lmKHRoaXMuX19pc0luRWRpdG9yKEQpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woRCkpcmV0dXJuO2xldCBUPXRoaXMuX19yZXNvbHZlQ2VsbChEKTtpZighVClyZXR1cm47aWYoISEoVC5jb2wuZWRpdGFibGV8fFQuY29sLmVkaXRvcikpe0Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zdGFydEVkaXRpbmcoVC5pdGVtLFQuY29sKTtyZXR1cm59bGV0ICRlPXRoaXMuZGF0YUFjdGlvbnMuZmluZChQZT0+UGUudHlwZT8uaW5jbHVkZXMoImRvdWJsZUNsaWNrIikpOyRlJiYkZS5hY3Rpb25GdW5jKHtpdGVtOlQuaXRlbSx0YWJsZTp0aGlzfSl9LCJfX29uVGJvZHlEYmxjbGljayIpO19fb25UYm9keU1vdXNlZG93bj1pKEQ9PntELnNoaWZ0S2V5JiZ0aGlzLnNlbGVjdGlvbk1vZGUhPT0ic2luZ2xlIiYmRC5wcmV2ZW50RGVmYXVsdCgpfSwiX19vblRib2R5TW91c2Vkb3duIik7X19vblRib2R5Q29udGV4dG1lbnU9aShEPT57aWYodGhpcy5fX2lzSW5BY3Rpb25zQ29sKEQpKXJldHVybjtsZXQgVD10aGlzLl9fcmVzb2x2ZVJvdyhEKTtpZighVClyZXR1cm47bGV0IEc9VC5pdGVtO3RoaXMuaXNSb3dTZWxlY3RlZChHKXx8KHRoaXMuc2VsZWN0ZWREYXRhUm93PUcsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpLHRoaXMuX19zZWxlY3Rpb25BbmNob3JJZD10aGlzLmdldFJvd0lkKEcpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtsZXQgJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoRmU9Pih7bmFtZTpGZS5uYW1lLGljb25OYW1lOkZlLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCBGZS5hY3Rpb25GdW5jKHtpdGVtOkcsdGFibGU6dGhpc30pLG51bGwpLCJhY3Rpb24iKX0pKSxQZT1be25hbWU6dGhpcy5zZWxlY3RlZElkcy5zaXplPjE/YENvcHkgJHt0aGlzLnNlbGVjdGVkSWRzLnNpemV9IHJvd3MgYXMgSlNPTmA6IkNvcHkgcm93IGFzIEpTT04iLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuY29weVNlbGVjdGlvbkFzSnNvbihHKSxudWxsKSwiYWN0aW9uIil9XTtrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhELFsuLi4kZSwuLi5QZV0pfSwiX19vblRib2R5Q29udGV4dG1lbnUiKTtfX29uVGJvZHlEcmFnZW50ZXI9aShEPT57aWYoRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuX19yZXNvbHZlUm93KEQpKXJldHVybjtsZXQgRz0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZCgkZT0+JGU/LnRhZ05hbWU9PT0iVFIiKTtHJiZzZXRUaW1lb3V0KCgpPT5HLmNsYXNzTGlzdC5hZGQoImhhc0F0dGFjaG1lbnQiKSwwKX0sIl9fb25UYm9keURyYWdlbnRlciIpO19fb25UYm9keURyYWdsZWF2ZT1pKEQ9PntELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVD0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZChHPT5HPy50YWdOYW1lPT09IlRSIik7VCYmVC5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9LCJfX29uVGJvZHlEcmFnbGVhdmUiKTtfX29uVGJvZHlEcmFnb3Zlcj1pKEQ9PntELnByZXZlbnREZWZhdWx0KCl9LCJfX29uVGJvZHlEcmFnb3ZlciIpO19fb25UYm9keURyb3A9aShhc3luYyBEPT57RC5wcmV2ZW50RGVmYXVsdCgpO2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybjtsZXQgRz1ULml0ZW0sJGU9W107Zm9yKGxldCBGZSBvZiBBcnJheS5mcm9tKEQuZGF0YVRyYW5zZmVyLmZpbGVzKSl0aGlzLmZpbGVzLnB1c2goRmUpLCRlLnB1c2goRmUpLHRoaXMucmVxdWVzdFVwZGF0ZSgpO2xldCBQZT10aGlzLmZpbGVXZWFrTWFwLmdldChHKTtQZT9QZS5wdXNoKC4uLiRlKTp0aGlzLmZpbGVXZWFrTWFwLnNldChHLCRlKX0sIl9fb25UYm9keURyb3AiKTtoYW5kbGVSb3dDbGljayhELFQsRywkZSl7bGV0IFBlPXRoaXMuZ2V0Um93SWQoVCk7aWYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSIpe3RoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGUsdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCk7cmV0dXJufWxldCBGZT1ELm1ldGFLZXl8fEQuY3RybEtleTtpZihELnNoaWZ0S2V5JiZ0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQhPT12b2lkIDApe3dpbmRvdy5nZXRTZWxlY3Rpb24/LigpPy5yZW1vdmVBbGxSYW5nZXMoKTtsZXQgVWU9JGUuZmluZEluZGV4KFhlPT50aGlzLmdldFJvd0lkKFhlKT09PXRoaXMuX19zZWxlY3Rpb25BbmNob3JJZCk7aWYoVWU+PTApe2xldFtYZSx3dF09VWU8PUc/W1VlLEddOltHLFVlXTt0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCk7Zm9yKGxldCBRZT1YZTtRZTw9d3Q7UWUrKyl0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKCRlW1FlXSkpfWVsc2UgdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5zZWxlY3RlZERhdGFSb3c9VH1lbHNlIGlmKEZlKXtpZih0aGlzLnNlbGVjdGVkSWRzLmhhcyhQZSkpe2lmKHRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz09PVQpe2xldCBYZT0kZS5maW5kKHd0PT50aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKHd0KSkpO3RoaXMuc2VsZWN0ZWREYXRhUm93PVhlfX1lbHNlIHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz1UO3RoaXMuX19zZWxlY3Rpb25BbmNob3JJZD1QZX1lbHNlIHRoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c2V0Um93U2VsZWN0ZWQoRCxUKXtsZXQgRz10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksVCYmdGhpcy5zZWxlY3RlZElkcy5hZGQoRykpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJihUP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKEcpOnRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKEcpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKXtsZXQgRD10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKEQubGVuZ3RoPT09MClyZXR1cm4hMTtmb3IobGV0IFQgb2YgRClpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChUKSkpcmV0dXJuITE7cmV0dXJuITB9aXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpe2xldCBEPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoRC5sZW5ndGg9PT0wKXJldHVybiExO2xldCBUPTA7Zm9yKGxldCBHIG9mIEQpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChHKSkmJlQrKztyZXR1cm4gVD4wJiZUPEQubGVuZ3RofXNldFNlbGVjdFZpc2libGUoRCl7bGV0IFQ9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihEKWZvcihsZXQgRyBvZiBUKXRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpO2Vsc2UgZm9yKGxldCBHIG9mIFQpdGhpcy5zZWxlY3RlZElkcy5kZWxldGUodGhpcy5nZXRSb3dJZChHKSk7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9ZW1pdFNlbGVjdGlvbkNoYW5nZSgpe2xldCBEPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcyksVD10aGlzLmRhdGEuZmlsdGVyKEc9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkSWRzOkQsc2VsZWN0ZWRSb3dzOlR9LGJ1YmJsZXM6ITB9KSl9Z2V0QWN0aW9uc0ZvclR5cGUoRCl7bGV0IFQ9W107Zm9yKGxldCBHIG9mIHRoaXMuZGF0YUFjdGlvbnMpRy50eXBlPy5pbmNsdWRlcyhEKSYmVC5wdXNoKEcpO3JldHVybiBUfV9faXNDb2x1bW5FZGl0YWJsZShEKXtyZXR1cm4hIShELmVkaXRhYmxlfHxELmVkaXRvcil9X19lZGl0YWJsZUNvbHVtbnMoRCl7cmV0dXJuIEQuZmlsdGVyKFQ9PiFULmhpZGRlbiYmdGhpcy5fX2lzQ29sdW1uRWRpdGFibGUoVCkpfXN0YXJ0RWRpdGluZyhELFQpe2lmKCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShUKSlyZXR1cm47bGV0IEc9dGhpcy5nZXRSb3dJZChEKSwkZT1TdHJpbmcoVC5rZXkpO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMuX19lZGl0aW5nQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LXRleHQsIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC1kcm9wZG93biwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtZGF0ZXBpY2tlciwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyIpO1BlPy5mb2N1cz8uKCksUGU/LnRhZ05hbWU9PT0iREVFUy1JTlBVVC1EUk9QRE9XTiImJlBlLnVwZGF0ZUNvbXBsZXRlPy50aGVuKCgpPT5QZS50b2dnbGVTZWxlY3Rpb25Cb3g/LigpKX0pfWNhbmNlbENlbGxFZGl0KCl7dGhpcy5fX2VkaXRpbmdDZWxsPXZvaWQgMCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1jb21taXRDZWxsRWRpdChELFQsRyl7bGV0ICRlPVN0cmluZyhULmtleSksUGU9RFtULmtleV0sRmU9VC5wYXJzZT9ULnBhcnNlKEcsRCk6RztpZihULnZhbGlkYXRlKXtsZXQgVmU9VC52YWxpZGF0ZShGZSxEKTtpZih0eXBlb2YgVmU9PSJzdHJpbmciKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdEVycm9yIix7ZGV0YWlsOntyb3c6RCxrZXk6JGUsdmFsdWU6RmUsbWVzc2FnZTpWZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKTtyZXR1cm59fUZlIT09UGUmJihEW1Qua2V5XT1GZSx0aGlzLl9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdCIse2RldGFpbDp7cm93OkQsa2V5OiRlLG9sZFZhbHVlOlBlLG5ld1ZhbHVlOkZlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKSx0aGlzLl9fZWRpdGluZ0NlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpfV9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKXtpZih0aGlzLmhpZ2hsaWdodFVwZGF0ZXMhPT0iZmxhc2gifHwhdGhpcy5fX3ByZXZTbmFwc2hvdHx8IXRoaXMucm93S2V5KXJldHVybjtsZXQgRz10aGlzLmdldFJvd0lkKEQpLCRlPXRoaXMuX19wcmV2U25hcHNob3QuZ2V0KEcpOyRlfHwoJGU9bmV3IE1hcCx0aGlzLl9fcHJldlNuYXBzaG90LnNldChHLCRlKSksJGUuc2V0KFN0cmluZyhULmtleSksT2goRCxULHRoaXMuZGlzcGxheUZ1bmN0aW9uKSl9cmVuZGVyQ2VsbEVkaXRvcihELFQpe2xldCBHPURbVC5rZXldLCRlPVQuZm9ybWF0P1QuZm9ybWF0KEcsRCk6RyxQZT1ULmVkaXRvcj8/InRleHQiLEZlPWkoVmU9PnRoaXMuY29tbWl0Q2VsbEVkaXQoRCxULFZlLnZhbHVlKSwib25UZXh0Q29tbWl0Iik7c3dpdGNoKFBlKXtjYXNlImNoZWNrYm94IjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgLnZhbHVlPSR7ISEkZX0KICAgICAgICAgIEBuZXdWYWx1ZT0ke1ZlPT57VmUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jb21taXRDZWxsRWRpdChELFQsVmUuZGV0YWlsKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5gO2Nhc2UiZHJvcGRvd24iOntsZXQgVmU9VC5lZGl0b3JPcHRpb25zPy5vcHRpb25zPz9bXSxVZT1WZS5maW5kKFhlPT5YZT09bnVsbD8hMTp0eXBlb2YgWGU9PSJzdHJpbmciP1hlPT09RzpYZS5rZXk9PT1HfHxYZS5vcHRpb249PT1HKT8/bnVsbDtyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLnZpbnRlZ3JhdGVkPSR7ITB9CiAgICAgICAgICAub3B0aW9ucz0ke1ZlfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7VWV9CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtYZT0+e1hlLnN0b3BQcm9wYWdhdGlvbigpO2xldCB3dD1YZS5kZXRhaWwsUWU9d3Q/Lm9wdGlvbj8/d3Q/LmtleT8/d3Q7dGhpcy5jb21taXRDZWxsRWRpdChELFQsUWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPmB9Y2FzZSJkYXRlIjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAudmFsdWU9JHskZX0KICAgICAgICAgIEBmb2N1c291dD0ke1ZlPT5GZShWZS50YXJnZXQpfQogICAgICAgICAgQGtleWRvd249JHtWZT0+dGhpcy5fX2hhbmRsZUVkaXRvcktleShWZSxELFQpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5gO2Nhc2UidGFncyI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLnZhbHVlPSR7JGU/P1tdfQogICAgICAgICAgQGZvY3Vzb3V0PSR7VmU9PkZlKFZlLnRhcmdldCl9CiAgICAgICAgICBAa2V5ZG93bj0ke1ZlPT50aGlzLl9faGFuZGxlRWRpdG9yS2V5KFZlLEQsVCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPmA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmludGVncmF0ZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0keyRlPT1udWxsPyIiOlN0cmluZygkZSl9CiAgICAgICAgICBAZm9jdXNvdXQ9JHtWZT0+RmUoVmUudGFyZ2V0KX0KICAgICAgICAgIEBrZXlkb3duPSR7VmU9PnRoaXMuX19oYW5kbGVFZGl0b3JLZXkoVmUsRCxUKX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+YH19X19oYW5kbGVFZGl0b3JLZXkoRCxULEcpe2lmKEQua2V5PT09IkVzY2FwZSIpRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jYW5jZWxDZWxsRWRpdCgpLHRoaXMuZm9jdXMoKTtlbHNlIGlmKEQua2V5PT09IkVudGVyIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITApfWVsc2UgaWYoRC5rZXk9PT0iVGFiIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbChELnNoaWZ0S2V5Py0xOjEsMCwhMCl9fW1vdmVGb2N1c2VkQ2VsbChELFQsRyl7bGV0ICRlPXRoaXMuX2xhc3RWaWV3RGF0YT8/W107aWYoJGUubGVuZ3RoPT09MClyZXR1cm47bGV0IFBlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRmU9dGhpcy5fX2VkaXRhYmxlQ29sdW1ucyhQZSk7aWYoRmUubGVuZ3RoPT09MClyZXR1cm47bGV0IFZlPTAsVWU9MDtpZih0aGlzLl9fZm9jdXNlZENlbGwmJihWZT0kZS5maW5kSW5kZXgoUWU9PnRoaXMuZ2V0Um93SWQoUWUpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLnJvd0lkKSxVZT1GZS5maW5kSW5kZXgoUWU9PlN0cmluZyhRZS5rZXkpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLmNvbEtleSksVmU8MCYmKFZlPTApLFVlPDAmJihVZT0wKSksRCE9PTApe2ZvcihVZSs9RDtVZT49RmUubGVuZ3RoOylVZS09RmUubGVuZ3RoLFZlKz0xO2Zvcig7VWU8MDspVWUrPUZlLmxlbmd0aCxWZS09MX1pZihUIT09MCYmKFZlKz1UKSxWZTwwfHxWZT49JGUubGVuZ3RoKXt0aGlzLmNhbmNlbENlbGxFZGl0KCk7cmV0dXJufWxldCBYZT0kZVtWZV0sd3Q9RmVbVWVdO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChYZSksY29sS2V5OlN0cmluZyh3dC5rZXkpfSxHP3RoaXMuc3RhcnRFZGl0aW5nKFhlLHd0KTp0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7TXQoYSx0KX19O3JldHVybiBwMT1hfSkoKX0pO3ZhciBraXQ9ZygoKT0+e2dpdCgpfSk7dmFyIEUzYSxQM2E9ZygoKT0+e3BlKCk7SXQoKTtFM2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJGb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlByb2Nlc3NpbmcgeW91ciByZWdpc3RyYXRpb24uLi4iKSx0LmlubmVySFRNTD1gPHN0cm9uZz5TdWJtaXR0ZWQgRGF0YTo8L3N0cm9uZz4KJHtKU09OLnN0cmluZ2lmeShuLG51bGwsMil9YCxhd2FpdCBsdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnNldFN0YXR1cygic3VjY2VzcyIsIlJlZ2lzdHJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUucmVzZXQoKSx0LmlubmVySFRNTD0iPGVtPkZvcm0gaGFzIGJlZW4gcmVzZXQ8L2VtPiJ9KSksZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQsIGRlZXMtaW5wdXQtZHJvcGRvd24sIGRlZXMtaW5wdXQtY2hlY2tib3giKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLCgpPT57Y29uc29sZS5sb2coIkZpZWxkIGNoYW5nZWQ6IixyLmdldEF0dHJpYnV0ZSgia2V5IikpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkNvbXBsZXRlIEZvcm0gRXhhbXBsZSIgLmRlc2NyaXB0aW9uPSJBIGNvbXByZWhlbnNpdmUgZm9ybSB3aXRoIHZhcmlvdXMgaW5wdXQgdHlwZXMsIHZhbGlkYXRpb24sIGFuZCBmb3JtIHN1Ym1pc3Npb24gaGFuZGxpbmciPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZmlyc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9IkZpcnN0IE5hbWUiCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJZb3VyIGdpdmVuIG5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0ibGFzdE5hbWUiIAogICAgICAgICAgICBsYWJlbD0iTGFzdCBOYW1lIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZW1haWwiIAogICAgICAgICAgICBsYWJlbD0iRW1haWwgQWRkcmVzcyIKICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgdXNlIHRoaXMgdG8gY29udGFjdCB5b3UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJjb3VudHJ5IgogICAgICAgICAgICAubGFiZWw9JHsiQ291bnRyeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifSx7b3B0aW9uOiJDYW5hZGEiLGtleToiY2EifSx7b3B0aW9uOiJHZXJtYW55IixrZXk6ImRlIn0se29wdGlvbjoiRnJhbmNlIixrZXk6ImZyIn0se29wdGlvbjoiVW5pdGVkIEtpbmdkb20iLGtleToidWsifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InBhc3N3b3JkIgogICAgICAgICAgICBsYWJlbD0iUGFzc3dvcmQiCiAgICAgICAgICAgIGlzUGFzc3dvcmRCb29sCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJNaW5pbXVtIDggY2hhcmFjdGVycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InRlcm1zIgogICAgICAgICAgICBsYWJlbD0iSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9Im5ld3NsZXR0ZXIiCiAgICAgICAgICAgIGxhYmVsPSJTZW5kIG1lIHByb21vdGlvbmFsIGVtYWlscyIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgQWNjb3VudDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgY29sbGVjdGVkIGRhdGEuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO2UmJihjb25zb2xlLmxvZygiSG9yaXpvbnRhbCBmb3JtIGxheW91dCBhY3RpdmUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoYT0+e2xldCByPWEuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIscik7bGV0IG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtufSByZXN1bHRzIHdpdGggZmlsdGVyczpgLHIpfSkpLGUucXVlcnlTZWxlY3RvckFsbCgiW2tleV0iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGFzeW5jKCk9PntsZXQgcj1hd2FpdCBlLmNvbGxlY3RGb3JtRGF0YSgpO2NvbnNvbGUubG9nKCJMaXZlIGZpbHRlciB1cGRhdGU6IixyKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJIb3Jpem9udGFsIEZvcm0gTGF5b3V0IiAuZGVzY3JpcHRpb249IkNvbXBhY3QgZm9ybSB3aXRoIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgLSBwZXJmZWN0IGZvciBmaWx0ZXJzIGFuZCBxdWljayBmb3JtcyI+CiAgICAgICAgPGRlZXMtZm9ybSBob3Jpem9udGFsLWxheW91dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGtleT0ic2VhcmNoIiAKICAgICAgICAgICAgbGFiZWw9IlNlYXJjaCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIGtleXdvcmRzLi4uIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9ImNhdGVnb3J5IgogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFsbCIsa2V5OiJhbGwifSx7b3B0aW9uOiJQcm9kdWN0cyIsa2V5OiJwcm9kdWN0cyJ9LHtvcHRpb246IlNlcnZpY2VzIixrZXk6InNlcnZpY2VzIn0se29wdGlvbjoiU3VwcG9ydCIsa2V5OiJzdXBwb3J0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJzb3J0IgogICAgICAgICAgICAubGFiZWw9JHsiU29ydCBCeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTmV3ZXN0IixrZXk6Im5ld2VzdCJ9LHtvcHRpb246IlBvcHVsYXIiLGtleToicG9wdWxhciJ9LHtvcHRpb246IlByaWNlOiBMb3cgdG8gSGlnaCIsa2V5OiJwcmljZV9hc2MifSx7b3B0aW9uOiJQcmljZTogSGlnaCB0byBMb3ciLGtleToicHJpY2VfZGVzYyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIGtleT0iaW5TdG9jayIKICAgICAgICAgICAgbGFiZWw9IkluIFN0b2NrIE9ubHkiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcigiI3N0YXR1cy1kaXNwbGF5Iik7aWYoZSl7ZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJBZHZhbmNlZCBmb3JtIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlZhbGlkYXRpbmcgeW91ciBpbmZvcm1hdGlvbi4uLiIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigxNTAwKSxuLmliYW4mJm4uaWJhbi5sZW5ndGg+MTU/KGUuc2V0U3RhdHVzKCJzdWNjZXNzIiwiQXBwbGljYXRpb24gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSEiKSx0JiYodC5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIHN1Y2Nlc3MiLHQudGV4dENvbnRlbnQ9Ilx1MjcxMyBZb3VyIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHN1Ym1pdHRlZC4gV2Ugd2lsbCBjb250YWN0IHlvdSBzb29uLiIpKTooZS5zZXRTdGF0dXMoImVycm9yIiwiUGxlYXNlIGNoZWNrIHlvdXIgSUJBTiIpLHQmJih0LmNsYXNzTmFtZT0ic3RhdHVzLW1lc3NhZ2UgZXJyb3IiLHQudGV4dENvbnRlbnQ9Ilx1MjcxNyBJbnZhbGlkIElCQU4gZm9ybWF0LiBQbGVhc2UgY2hlY2sgYW5kIHRyeSBhZ2Fpbi4iKSksY29uc29sZS5sb2coIkZvcm0gZGF0YSBsb2dnZWQ6IixuKX0pKTtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IG49ci5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtuLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgSTNhLFNpdCxBM2EsTjNhLHV2PWcoKCk9PntwZSgpO2t0KCk7b25lKCk7UmV0KCk7aG5lKCk7eGgoKTtxZXQoKTtibmUoKTt3bmUoKTtVZXQoKTtZZXQoKTtaZXQoKTtYZXQoKTtKZXQoKTt0dHQoKTthdHQoKTtzdHQoKTtHY2UoKTtLY2UoKTtBOCgpO2tpdCgpO1AzYSgpO0kzYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU2l0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxBM2E9W3JuZSxkbmUscG5lLHluZSxrbmUsTW5lLHpuZSxUbmUsbW5lLGduZSxmbmUsJG5lLERuZSxMbmUsRW5lLEhYLFljZSxYY2VdLE4zYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtZm9ybSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRm9ybSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiaG9yaXpvbnRhbC1sYXlvdXQifSldLEkzYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhvcml6b250YWxMYXlvdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+Imhvcml6b250YWxMYXlvdXQiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5ob3Jpem9udGFsTGF5b3V0LCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UuaG9yaXpvbnRhbExheW91dD1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksSTNhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89RTNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSJdO25hbWU9Im15Zm9ybSI7Y2hhbmdlU3ViamVjdD1uZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7cmVhZHlEZWZlcnJlZD11dC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1TaXQodGhpcyxvLCExKTtnZXQgaG9yaXpvbnRhbExheW91dCgpe3JldHVybiB0aGlzLiNlfXNldCBob3Jpem9udGFsTGF5b3V0KGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2hvcml6b250YWwtbGF5b3V0XSkgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTt0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCksdGhpcy51cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKTtmb3IobGV0IHUgb2YgZCl1LmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKGFzeW5jKCk9PntsZXQgYz1hd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpO3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KGMpLGNvbnNvbGUubG9nKGMpLHRoaXMudXBkYXRlUmVxdWlyZWRTdGF0dXMoKX0pO2F3YWl0IHRoaXMuYWRkQmVoYXZpb3VycygpLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9Z2V0Rm9ybUVsZW1lbnRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCIqIikpLmZpbHRlcihkPT5BM2EuaW5jbHVkZXMoZC5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maW5kKGQ9PmQgaW5zdGFuY2VvZiB2bmUpfWFzeW5jIHVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl7Y29uc29sZS5sb2coImNoZWNraW5nIHRoZSByZXF1aXJlZCBzdGF0dXMuIik7bGV0IGQ9ITA7Zm9yKGxldCBjIG9mIHRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCkpYy5yZXF1aXJlZCYmIWMudmFsdWUmJihkPSExKTtsZXQgdT10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO3UmJih1LmRpc2FibGVkPSFkKX1hc3luYyBjb2xsZWN0Rm9ybURhdGEoKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpLHU9e307Zm9yKGxldCBjIG9mIGQpe2lmKCFjLmtleSl7Y29uc29sZS5sb2coYGZvcm0gZWxlbWVudCB3aXRoIGxhYmVsICIke2MubGFiZWx9IiBoYXMgbm8ga2V5LiBza2lwcGluZy5gKTtjb250aW51ZX11W2Mua2V5XT1jLnZhbHVlfXJldHVybiB1fWFzeW5jIGdhdGhlckFuZERpc3BhdGNoKCl7bGV0IGQ9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKSx1PW5ldyBDdXN0b21FdmVudCgiZm9ybURhdGEiLHtkZXRhaWw6e2RhdGE6ZH0sYnViYmxlczohMH0pO3RoaXMuZGlzcGF0Y2hFdmVudCh1KSxjb25zb2xlLmxvZygiZGlzcGF0Y2hlZCBkYXRhOiIpLGNvbnNvbGUubG9nKGQpfXNldFN0YXR1cyhkLHUpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksYj10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2lmKGIpe3N3aXRjaChkKXtjYXNlIm5vcm1hbCI6Yi5kaXNhYmxlZD0hMSxiLnN0YXR1cz0ibm9ybWFsIjtmb3IobGV0IHYgb2YgYyl2LmRpc2FibGVkPSExO2JyZWFrO2Nhc2UicGVuZGluZyI6Yi5kaXNhYmxlZD0hMCxiLnN0YXR1cz0icGVuZGluZyI7Zm9yKGxldCB2IG9mIGMpdi5kaXNhYmxlZD0hMDticmVhaztjYXNlInN1Y2Nlc3MiOmIuZGlzYWJsZWQ9ITAsYi5zdGF0dXM9InN1Y2Nlc3MiO2ZvcihsZXQgdiBvZiBjKXYuZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJlcnJvciI6Yi5kaXNhYmxlZD0hMCxiLnN0YXR1cz0iZXJyb3IiO2ZvcihsZXQgdiBvZiBjKXYuZGlzYWJsZWQ9ITA7YnJlYWt9Yi50ZXh0PXV9fXJlc2V0KCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTtmb3IobGV0IHUgb2YgZCl1LnZhbHVlPW51bGw7dGhpcy5zZXRTdGF0dXMoIm5vcm1hbCIsIlN1Ym1pdCIpfWFzeW5jIGFkZEJlaGF2aW91cnMoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntsZXQgdT1kLnRhcmdldDtpZihBM2EuaW5jbHVkZXModS5jb25zdHJ1Y3RvcikmJmQua2V5PT09IkVudGVyIil7bGV0IGM9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxiPWMuaW5kZXhPZih1KTtiPGMubGVuZ3RoLTE/Y1tiKzFdLmZvY3VzKCk6KHUuYmx1cigpLHRoaXMuZ2V0U3VibWl0QnV0dG9uKCk/LmZvY3VzKCkpfX0pfXVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCB1IG9mIGQpImxheW91dE1vZGUiaW4gdSYmKHUubGF5b3V0TW9kZT0iYXV0byIpfXVwZGF0ZWQoZCl7c3VwZXIudXBkYXRlZChkKSxkLmhhcygiaG9yaXpvbnRhbExheW91dCIpJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxTaXQodGhpcyxsKX1zdGF0aWN7U2l0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBSM2EsTzNhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTt1digpO0E4KCk7eGgoKTtVYSgpO1IzYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC52ZXJ0aWNhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1heC13aWR0aDogMzAwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuaWNvbi1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtc25pcHBldCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJ0eXBlIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHZhcmlhbnQgY2xpY2tlZDogJHthfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQnV0dG9uIFZhcmlhbnRzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB2aXN1YWwgc3R5bGVzIGZvciB2YXJpb3VzIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCI+RGVmYXVsdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5Ij5TZWNvbmRhcnk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj5EZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSI+T3V0bGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkdob3N0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJsaW5rIj5MaW5rIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IGE9dC5nZXRBdHRyaWJ1dGUoInNpemUiKXx8ImRlZmF1bHQiO2NvbnNvbGUubG9nKGBCdXR0b24gc2l6ZTogJHthfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gQnV0dG9uIFNpemVzIn0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIHNpemVzIGZvciBkaWZmZXJlbnQgY29udGV4dHMgYW5kIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iPlNtYWxsIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iZGVmYXVsdCI+RGVmYXVsdCBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJsZyI+TGFyZ2UgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJvdXRsaW5lIiAudGV4dD0keyJcdXsxRjY4MH0ifT48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJzbSIgdHlwZT0ic2Vjb25kYXJ5Ij5TbWFsbCBTZWNvbmRhcnk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiIHR5cGU9ImRlc3RydWN0aXZlIj5EZWZhdWx0IERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJsZyIgdHlwZT0ib3V0bGluZSI+TGFyZ2UgT3V0bGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtpZihhKXtsZXQgcj1hLmdldEF0dHJpYnV0ZSgiaWNvbkZBIil8fCJ1bmtub3duIjtjb25zb2xlLmxvZyhgSWNvbiBidXR0b24gY2xpY2tlZDogJHtyfWApfX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEJ1dHRvbnMgd2l0aCBJY29ucyJ9IC5zdWJ0aXRsZT0keyJDb21iaW5pbmcgaWNvbnMgd2l0aCB0ZXh0IGZvciBlbmhhbmNlZCB2aXN1YWwgY29tbXVuaWNhdGlvbiJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQWRkIEl0ZW0KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgRGVsZXRlCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERvd25sb2FkCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Z2VhciI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIFNldHRpbmdzCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldExlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBCYWNrCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgTmV4dAogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmNhcmV0UmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9ImRlZmF1bHQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnBsdXMiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJzZWNvbmRhcnkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6U2VhcmNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZXN0cnVjdGl2ZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJpY29uIil8fCJub25lIixyPXQuZ2V0QXR0cmlidXRlKCJpY29uUG9zaXRpb24iKXx8ImxlZnQiO2NvbnNvbGUubG9nKGBJY29uIHByb3BlcnR5IGJ1dHRvbjogaWNvbj0ke2F9LCBwb3NpdGlvbj0ke3J9YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBJY29ucyB2aWEgUHJvcGVydHkifSAuc3VidGl0bGU9JHsiU2ltcGxpZmllZCBpY29uIHN5bnRheCB1c2luZyB0aGUgaWNvbiBwcm9wZXJ0eSJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpY29uPSJmYTpwbHVzIj5BZGQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj5EZWxldGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpEb3dubG9hZCI+RG93bmxvYWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSIgaWNvbj0iZmE6Z2VhciI+U2V0dGluZ3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBpY29uPSJmYTpjYXJldExlZnQiPkJhY2s8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBpY29uPSJmYTpjYXJldFJpZ2h0IiBpY29uUG9zaXRpb249InJpZ2h0Ij5OZXh0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9ImRlZmF1bHQiIGljb249ImZhOnBsdXMiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5IiBpY29uPSJsdWNpZGU6U2V0dGluZ3MiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJnaG9zdCIgaWNvbj0ibHVjaWRlOk1vcmVWZXJ0aWNhbCI+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZXN0cnVjdGl2ZSIgaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtc25pcHBldCI+CiAgICAgICAgICAgICZsdDtkZWVzLWJ1dHRvbiBpY29uPSJmYTpwbHVzIiZndDtBZGQgSXRlbSZsdDsvZGVlcy1idXR0b24mZ3Q7PGJyPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCImZ3Q7TmV4dCZsdDsvZGVlcy1idXR0b24mZ3Q7CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3N0YXR1cz0icGVuZGluZyJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3N0YXR1cz0ic3VjY2VzcyJdJyksYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3N0YXR1cz0iZXJyb3IiXScpO2UmJnNldFRpbWVvdXQoKCk9Pntjb25zb2xlLmxvZygiUGVuZGluZyBidXR0b24gaXMgc2hvd2luZyBsb2FkaW5nIHN0YXRlIil9LDFlMyksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJTdWNjZXNzIHN0YXRlIGJ1dHRvbiBjbGlja2VkIil9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIkVycm9yIHN0YXRlIGJ1dHRvbiBjbGlja2VkIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQnV0dG9uIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIHRvIGluZGljYXRlIGJ1dHRvbiBzdGF0dXMgYW5kIGxvYWRpbmcgY29uZGl0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJub3JtYWwiPk5vcm1hbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJwZW5kaW5nIj5Qcm9jZXNzaW5nLi4uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9InN1Y2Nlc3MiPlN1Y2Nlc3MhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9ImVycm9yIj5FcnJvciE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGRpc2FibGVkPkRpc2FibGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzdGF0dXM9InBlbmRpbmciIHNpemU9InNtIj5TbWFsbCBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzdGF0dXM9InBlbmRpbmciPkRlZmF1bHQgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIHN0YXR1cz0icGVuZGluZyIgc2l6ZT0ibGciPkxhcmdlIExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiNjbGljay1vdXRwdXQiKSx0PXMucXVlcnlTZWxlY3RvcigiZGVlcy1idXR0b246Zmlyc3Qtb2YtdHlwZSIpLGE9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJzZWNvbmRhcnkiXScpLHI9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJkZXN0cnVjdGl2ZSJdJyk7dCYmZSYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IERlZmF1bHQgYnV0dG9uIGF0ICR7bmV3IERhdGUoKS50b0xvY2FsZVRpbWVTdHJpbmcoKX1gfSksYSYmZSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIixuPT57ZS50ZXh0Q29udGVudD1gQ2xpY2tlZDogU2Vjb25kYXJ5IGJ1dHRvbiB3aXRoIGRhdGE6ICR7bi5kZXRhaWwuZGF0YX1gfSksciYmZSYmci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIixhc3luYygpPT57ZS50ZXh0Q29udGVudD0iUHJvY2Vzc2luZy4uLiIsYXdhaXQgbHQucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS50ZXh0Q29udGVudD0iQWN0aW9uIGNvbXBsZXRlZCEifSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nIn0gLnN1YnRpdGxlPSR7IkludGVyYWN0aXZlIGV4YW1wbGVzIHdpdGggY2xpY2sgZXZlbnQgaGFuZGxpbmcifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkNsaWNrIE1lPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIC5ldmVudERldGFpbERhdGE9JHsiY3VzdG9tLWRhdGEtMTIzIn0+CiAgICAgICAgICAgIENsaWNrIHdpdGggRGF0YQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+QXN5bmMgQWN0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJjbGljay1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICA8ZW0+Q2xpY2sgYSBidXR0b24gdG8gc2VlIHRoZSByZXN1bHQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIjZm9ybS1vdXRwdXQiKTtlJiZ0JiZlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixuPT57dC5pbm5lckhUTUw9IjxzdHJvbmc+Rm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOjwvc3Ryb25nPjxicj4iK0pTT04uc3RyaW5naWZ5KG4uZGV0YWlsLmRhdGEsbnVsbCwyKX0pO2xldCBhPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxyPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZ2hvc3QiXScpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU2F2ZSBEcmFmdCBjbGlja2VkIil9KSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIkNhbmNlbCBjbGlja2VkIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJCdXR0b25zIHdvcmtpbmcgd2l0aGluIGZvcm1zIHdpdGggYXV0b21hdGljIHNwYWNpbmcifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9IkVtYWlsIiBrZXk9ImVtYWlsIiB0eXBlPSJlbWFpbCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJNZXNzYWdlIiBrZXk9Im1lc3NhZ2UiIGlzTXVsdGlsaW5lPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5Ij5TYXZlIERyYWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+Q2FuY2VsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImZvcm0tb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Ij4KICAgICAgICAgIDxlbT5TdWJtaXQgdGhlIGZvcm0gdG8gc2VlIHRoZSBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJ0eXBlIik7YSYmY29uc29sZS5sb2coYExlZ2FjeSB0eXBlICIke2F9IiBpcyBzdXBwb3J0ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlgKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBCYWNrd2FyZCBDb21wYXRpYmlsaXR5In0gLnN1YnRpdGxlPSR7Ik9sZCBidXR0b24gdHlwZXMgYXJlIGF1dG9tYXRpY2FsbHkgbWFwcGVkIHRvIG5ldyB2YXJpYW50cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibm9ybWFsIj5Ob3JtYWwg4oaSIERlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5IaWdobGlnaHRlZCDihpIgRGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRpc2NyZWV0Ij5EaXNjcmVldCDihpIgT3V0bGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iYmlnIj5CaWcg4oaSIExhcmdlIFNpemU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OyI+CiAgICAgICAgICBUaGVzZSBsZWdhY3kgdHlwZSB2YWx1ZXMgYXJlIG1haW50YWluZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYnV0IHdlIHJlY29tbWVuZCB1c2luZyB0aGUgbmV3IHZhcmlhbnQgc3lzdGVtLgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yQWxsKCIudmVydGljYWwtZ3JvdXAiKVswXSx0PXMucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMV07ZSYmZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKHIsbik9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJTYXZlIENoYW5nZXMiLCJEaXNjYXJkIiwiSGVscCJdW25dO2NvbnNvbGUubG9nKGBBY3Rpb24gZ3JvdXA6ICR7b30gY2xpY2tlZGApfSl9KSx0JiZ0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCgocixuKT0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgbz1bIkRlbGV0ZSBBY2NvdW50IiwiQXJjaGl2ZSBEYXRhIiwiTm90IEF2YWlsYWJsZSJdW25dO24hPT0yJiZjb25zb2xlLmxvZyhgRGFuZ2VyIHpvbmU6ICR7b30gY2xpY2tlZGApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOS4gQWR2YW5jZWQgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiQ29tcGxleCBidXR0b24gY29uZmlndXJhdGlvbnMgYW5kIHJlYWwtd29ybGQgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbC1ncm91cCI+CiAgICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsiPkFjdGlvbiBHcm91cDwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6U2F2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgU2F2ZSBDaGFuZ2VzCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpVbmRvMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgRGlzY2FyZAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpIZWxwQ2lyY2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBIZWxwCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbC1ncm91cCI+CiAgICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsiPkRhbmdlciBab25lPC9oND4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgRGVsZXRlIEFjY291bnQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcmNoaXZlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBBcmNoaXZlIERhdGEKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QmFuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBOb3QgQXZhaWxhYmxlCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5Db2RlIEV4YW1wbGU6PC9oND4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtc25pcHBldCI+CiAgICAgICAgICAgICZsdDtkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSIgaWNvbj0ibHVjaWRlOlNhdmUiIEBjbGlja2VkPSJcJHtoYW5kbGVDbGlja30iJmd0Ozxicj4KICAgICAgICAgICAgJm5ic3A7Jm5ic3A7U2F2ZSBDaGFuZ2VzPGJyPgogICAgICAgICAgICAmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciByMix1cixGM2EsRDg9ZygoKT0+e3BlKCk7a3QoKTtPM2EoKTtwdCgpO3IyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx1cj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRjNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1idXR0b24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXTt2YXIgbWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNCdXR0b24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHtyZWZsZWN0OiEwLGhhc0NoYW5nZWQoKXtyZXR1cm4hMH19KV0scD1bTCgpXSxjPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpTdHJpbmd9KV0sTz1bTCh7dHlwZTpTdHJpbmd9KV0sSD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sST1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxLPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHIyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idGV4dCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnRleHQsImdldCIpLHNldDppKChVLGhlKT0+e1UudGV4dD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxvLGwpLHIyKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnREZXRhaWxEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJldmVudERldGFpbERhdGEiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5ldmVudERldGFpbERhdGEsImdldCIpLHNldDppKChVLGhlKT0+e1UuZXZlbnREZXRhaWxEYXRhPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGQsdSkscjIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iZGlzYWJsZWQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5kaXNhYmxlZD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxiLHYpLHIyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIaWRkZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImlzSGlkZGVuImluIFUsImhhcyIpLGdldDppKFU9PlUuaXNIaWRkZW4sImdldCIpLHNldDppKChVLGhlKT0+e1UuaXNIaWRkZW49aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbSxmKSxyMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InR5cGUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS50eXBlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnR5cGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sTSx6KSxyMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InNpemUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zaXplLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnNpemU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sQyxfKSxyMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic3RhdHVzImluIFUsImhhcyIpLGdldDppKFU9PlUuc3RhdHVzLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnN0YXR1cz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSwkLEUpLHIyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5zaWRlRm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaW5zaWRlRm9ybSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmluc2lkZUZvcm0sImdldCIpLHNldDppKChVLGhlKT0+e1UuaW5zaWRlRm9ybT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLHIyKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaWNvbiJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmljb24sImdldCIpLHNldDppKChVLGhlKT0+e1UuaWNvbj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLHIyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJpY29uUG9zaXRpb24iaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5pY29uUG9zaXRpb24sImdldCIpLHNldDppKChVLGhlKT0+e1UuaWNvblBvc2l0aW9uPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LFYsVykscjIobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Qn0sbnVsbCx0KSxtZT1hPWUudmFsdWUsQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9c3RhdGljIGRlbW89UjNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQnV0dG9uIl07I2U9dXIodGhpcyxvLHZvaWQgMCk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGV4dChCKXt0aGlzLiNlPUJ9I3Q9KHVyKHRoaXMsbCksdXIodGhpcyxkLHZvaWQgMCkpO2dldCBldmVudERldGFpbERhdGEoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZXZlbnREZXRhaWxEYXRhKEIpe3RoaXMuI3Q9Qn0jYT0odXIodGhpcyx1KSx1cih0aGlzLGIsITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGlzYWJsZWQoQil7dGhpcy4jYT1CfSNzPSh1cih0aGlzLHYpLHVyKHRoaXMsbSwhMSkpO2dldCBpc0hpZGRlbigpe3JldHVybiB0aGlzLiNzfXNldCBpc0hpZGRlbihCKXt0aGlzLiNzPUJ9I2k9KHVyKHRoaXMsZiksdXIodGhpcyxNLCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHR5cGUoQil7dGhpcy4jaT1CfSNyPSh1cih0aGlzLHopLHVyKHRoaXMsQywiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBzaXplKEIpe3RoaXMuI3I9Qn0jbz0odXIodGhpcyxfKSx1cih0aGlzLCQsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI299c2V0IHN0YXR1cyhCKXt0aGlzLiNvPUJ9I249KHVyKHRoaXMsRSksdXIodGhpcyxrLCExKSk7Z2V0IGluc2lkZUZvcm0oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaW5zaWRlRm9ybShCKXt0aGlzLiNuPUJ9I2w9KHVyKHRoaXMsUyksdXIodGhpcyxQLHZvaWQgMCkpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGljb24oQil7dGhpcy4jbD1CfSNjPSh1cih0aGlzLFIpLHVyKHRoaXMsViwibGVmdCIpKTtnZXQgaWNvblBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGljb25Qb3NpdGlvbihCKXt0aGlzLiNjPUJ9Y29uc3RydWN0b3IoKXtzdXBlcigpLHVyKHRoaXMsVyl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLCF0aGlzLmluc2lkZUZvcm0mJnRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIikmJih0aGlzLmluc2lkZUZvcm09ITApfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb3JtIHNwYWNpbmcgc3R5bGVzICovCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV0pIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLWZvcm1baG9yaXpvbnRhbC1sYXlvdXRdIDpob3N0KFtpbnNpZGUtZm9ybV0pIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXTpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICB9CgogICAgICAuYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICAgIC5idXR0b24uc2l6ZS1kZWZhdWx0IHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zaXplLXNtIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zaXplLWxnIHsKICAgICAgICBoZWlnaHQ6IDQ0cHg7CiAgICAgICAgcGFkZGluZzogMCAyNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zaXplLWljb24gewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAvKiBEZWZhdWx0IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTAuMiUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA4NSUpIiwiaHNsKDIxNSAyMC4yJSAyMCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlZmF1bHQ6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgOSUpIil9OwogICAgICB9CgogICAgICAvKiBEZXN0cnVjdGl2ZSB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgOTglKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNTYuMiUpOwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNTIuMiUpOwogICAgICB9CgogICAgICAvKiBPdXRsaW5lIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5vdXRsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24ub3V0bGluZTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA4NSUpIiwiaHNsKDIxNSAyMC4yJSAyNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24ub3V0bGluZTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFNlY29uZGFyeSB2YXJpYW50ICovCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA4NSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEdob3N0IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5naG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5naG9zdDpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogTGluayB2YXJpYW50ICovCiAgICAgIC5idXR0b24ubGluayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIHN0YXRlcyAqLwogICAgICAuYnV0dG9uLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAzNnB4OyAvKiBTcGFjZSBmb3Igc3Bpbm5lciAqLwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zaXplLXNtLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uc2l6ZS1zbS5lcnJvciB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcucGVuZGluZywKICAgICAgLmJ1dHRvbi5zaXplLWxnLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uc2l6ZS1sZy5lcnJvciB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnBlbmRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA2Mi44JSA3MC42JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDYyLjglIDcwLjYlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgLmJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEhpZGRlbiBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogRm9jdXMgc3RhdGUgKi8KICAgICAgLmJ1dHRvbjpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgIH0KCiAgICAgIC8qIExvYWRpbmcgc3Bpbm5lciAqLwogICAgICBkZWVzLXNwaW5uZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgbGVmdDogMTRweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEljb24gc2l6aW5nIHdpdGhpbiBidXR0b25zICovCiAgICAgIC5idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICB9CgogICAgICAvKiBUZXh0IGFsaWdubWVudCAqLwogICAgICAudGV4dGJveCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgYF07ZXh0cmFjdExpZ2h0RG9tKCl7bGV0IEI9dGhpcy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKSxVPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKS5maWx0ZXIoaGU9PmhlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpLm1hcChoZT0+aGUudGV4dENvbnRlbnQ/LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtpZihVJiYhdGhpcy50ZXh0JiYodGhpcy50ZXh0PVUpLEIpe2xldCBoZT1CLmljb258fEIuZ2V0QXR0cmlidXRlKCJpY29uIil8fChCLmljb25GQT9gZmE6JHtCLmljb25GQX1gOm51bGwpO2lmKGhlKXtsZXQgRj1BcnJheS5mcm9tKHRoaXMuY2hpbGROb2Rlcyksaj1GLmluZGV4T2YoQiksdWU9Ri5maWx0ZXIobGU9PmxlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJmxlLnRleHRDb250ZW50Py50cmltKCkpO2lmKHVlLmxlbmd0aD4wKXtsZXQgbGU9Ri5pbmRleE9mKHVlWzBdKTt0aGlzLmljb25Qb3NpdGlvbj1qPGxlPyJsZWZ0IjoicmlnaHQifXRoaXMuaWNvbj1oZX1CLnJlbW92ZSgpfXRoaXMuaW5uZXJIVE1MPSIifXJlbmRlcigpe2xldCBVPXtub3JtYWw6ImRlZmF1bHQiLGhpZ2hsaWdodGVkOiJkZXN0cnVjdGl2ZSIsZGlzY3JlZXQ6Im91dGxpbmUiLGJpZzoiZGVmYXVsdCJ9W3RoaXMudHlwZV18fHRoaXMudHlwZSxoZT10aGlzLnR5cGU9PT0iYmlnIj8ibGciOnRoaXMuc2l6ZSxGPXRoaXMuaWNvblBvc2l0aW9uPT09ImxlZnQiJiZ0aGlzLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLGo9dGhpcy5pY29uUG9zaXRpb249PT0icmlnaHQiJiZ0aGlzLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLHVlPWhlPT09Imljb24iJiZ0aGlzLmljb247cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYnV0dG9uICR7dGhpcy5pc0hpZGRlbj8iaGlkZGVuIjoiIn0gJHtVfSBzaXplLSR7aGV9ICR7dGhpcy5zdGF0dXN9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5kaXNwYXRjaENsaWNrfSIKICAgICAgPgogICAgICAgICR7dGhpcy5zdGF0dXM9PT0ibm9ybWFsIj93YGA6d2AKICAgICAgICAgIDxkZWVzLXNwaW5uZXIKICAgICAgICAgICAgLmJudz0keyEwfQogICAgICAgICAgICBzdGF0dXM9IiR7dGhpcy5zdGF0dXN9IgogICAgICAgICAgICBzaXplPSIke2hlPT09InNtIj8xNDpoZT09PSJsZyI/MTg6MTZ9IgogICAgICAgICAgPjwvZGVlcy1zcGlubmVyPgogICAgICAgIGB9CiAgICAgICAgJHtGfQogICAgICAgICR7dWU/IiI6d2A8ZGl2IGNsYXNzPSJ0ZXh0Ym94Ij4ke3RoaXMudGV4dHx8IkJ1dHRvbiJ9PC9kaXY+YH0KICAgICAgICAke2p9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNwYXRjaENsaWNrKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIse2RldGFpbDp7ZGF0YTp0aGlzLmV2ZW50RGV0YWlsRGF0YX0sYnViYmxlczohMH0pKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmV4dHJhY3RMaWdodERvbSgpfXN0YXRpY3t1cihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIEZoLEluLEIzYSxRY2U9ZygoKT0+e0RkYSgpO3BvKCk7Q3IoKTtwZSgpO1VhKCk7b3IoKTtEOCgpO3B0KCk7bnIoKTtGaD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSW49ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEIzYT0oKCk9PntsZXQgcz1bdmIoKSxuZSgiZGVlcy1zdGF0c2dyaWQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0YXRzR3JpZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxGaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0aWxlcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRpbGVzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGlsZXM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLEZoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluVGlsZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJtaW5UaWxlV2lkdGgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5taW5UaWxlV2lkdGgsImdldCIpLHNldDppKChTLEkpPT57Uy5taW5UaWxlV2lkdGg9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLEZoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2FwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJnYXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5nYXAsImdldCIpLHNldDppKChTLEkpPT57Uy5nYXA9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLEZoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JpZEFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImdyaWRBY3Rpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMuZ3JpZEFjdGlvbnMsImdldCIpLHNldDppKChTLEkpPT57Uy5ncmlkQWN0aW9ucz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksRmgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbnRleHRNZW51VmlzaWJsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbnRleHRNZW51VmlzaWJsZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbnRleHRNZW51VmlzaWJsZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksRmgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjb250ZXh0TWVudVBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuY29udGV4dE1lbnVQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbnRleHRNZW51UG9zaXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLEZoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjb250ZXh0TWVudUFjdGlvbnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb250ZXh0TWVudUFjdGlvbnMsImdldCIpLHNldDppKChTLEkpPT57Uy5jb250ZXh0TWVudUFjdGlvbnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLEZoKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89JGRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9SW4odGhpcyxvLFtdKTtnZXQgdGlsZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGlsZXMoayl7dGhpcy4jZT1rfSN0PShJbih0aGlzLGwpLEluKHRoaXMsZCwyNTApKTtnZXQgbWluVGlsZVdpZHRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblRpbGVXaWR0aChrKXt0aGlzLiN0PWt9I2E9KEluKHRoaXMsdSksSW4odGhpcyxiLDE2KSk7Z2V0IGdhcCgpe3JldHVybiB0aGlzLiNhfXNldCBnYXAoayl7dGhpcy4jYT1rfSNzPShJbih0aGlzLHYpLEluKHRoaXMsbSxbXSkpO2dldCBncmlkQWN0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBncmlkQWN0aW9ucyhrKXt0aGlzLiNzPWt9I2k9KEluKHRoaXMsZiksSW4odGhpcyxNLCExKSk7Z2V0IGNvbnRleHRNZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBjb250ZXh0TWVudVZpc2libGUoayl7dGhpcy4jaT1rfSNyPShJbih0aGlzLHopLEluKHRoaXMsQyx7eDowLHk6MH0pKTtnZXQgY29udGV4dE1lbnVQb3NpdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBjb250ZXh0TWVudVBvc2l0aW9uKGspe3RoaXMuI3I9a30jbz0oSW4odGhpcyxfKSxJbih0aGlzLCQsW10pKTtnZXQgY29udGV4dE1lbnVBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbnRleHRNZW51QWN0aW9ucyhrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgIH0KCiAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIGNvbnNpc3RlbnQgc3BhY2luZyBhbmQgc2l6aW5nICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLWdyaWQtZ2FwOiAxMnB4OwogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxNnB4OwogICAgICAgIC0taGVhZGVyLXNwYWNpbmc6IDEycHg7CiAgICAgICAgLS1jb250ZW50LW1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDI2cHg7CiAgICAgICAgLS11bml0LWZvbnQtc2l6ZTogMTRweDsKICAgICAgICAtLWxhYmVsLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAtLXRpdGxlLWZvbnQtc2l6ZTogMTNweDsKICAgICAgICAtLWRlc2NyaXB0aW9uLXNwYWNpbmc6IDhweDsKICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICB9CgogICAgICAvKiBHcmlkIExheW91dCAqLwogICAgICAuZ3JpZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1ncmlkLWdhcCkgKiAxLjUpOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncmlkLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIGRlZXMtYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgIH0KCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHthYSgyNTApfXB4LCAxZnIpKTsKICAgICAgICBnYXA6ICR7YWEoMTYpfXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBUaWxlIEJhc2UgU3R5bGVzIOKAlCBmcmFtZSBwcm92aWRlZCBieSBkZWVzLXRpbGUsIGhvdmVyIHZpYSA6OnBhcnQgKi8KICAgICAgLnN0YXRzLXRpbGU6OnBhcnQob3V0ZXIpIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgZWFzZTsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlLmNsaWNrYWJsZSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDMpIiwicmdiYSgwLDAsMCwwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLyogVGlsZSBIZWFkZXIg4oCUIHNsb3R0ZWQgaW50byBkZWVzLXRpbGUgaGVhZGVyICovCiAgICAgIC50aWxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10aXRsZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC50aWxlLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgQ29udGVudCDigJQgc2xvdHRlZCBpbnRvIGRlZXMtdGlsZSBjb250ZW50IGFyZWEgKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tY29udGVudC1taW4taGVpZ2h0KTsKICAgICAgfQoKICAgICAgLnRpbGUtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50aWxlLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC50aWxlLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfQoKICAgICAgLyogR2F1Z2UgU3R5bGVzICovCiAgICAgIC5nYXVnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgICBoZWlnaHQ6IDcwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi10b3A6IC04cHg7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1zdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmdhdWdlLWJhY2tncm91bmQgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1maWxsIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZS13aWR0aDogNjsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ2F1Z2UtdGV4dCB7CiAgICAgICAgZmlsbDogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LWFuY2hvcjogbWlkZGxlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLmdhdWdlLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgIH0KCiAgICAgIC8qIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC8qIE11bHRpIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAvKiBDUFUgQ29yZXMgU3R5bGVzICovCiAgICAgIC5jcHUtY29yZXMtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogODBweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtYmFycyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiAzcHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMuY2VudGVyZWQgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDZweDsKICAgICAgICBtYXgtd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLXdyYXBwZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXN1Y2Nlc3MpOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubWVkaXVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC13YXJuaW5nKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBQYXJ0aXRpb24gU3R5bGVzICovCiAgICAgIC5wYXJ0aXRpb24td3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1wZXJjZW50YWdlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZyk7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwuY3JpdGljYWwgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWZpbGVzeXN0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1tb3VudHBvaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERpc2sgU3R5bGVzICovCiAgICAgIC5kaXNrLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZGlzay1jYXBhY2l0eSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLmRpc2stbW9kZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLXR5cGUtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuZGlzay1tZXRyaWNzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLmRpc2staW9wcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmdvb2QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwuY3JpdGljYWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA4NC4yJSA2MC4yJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRyZW5kIFN0eWxlcyAqLwogICAgICAudHJlbmQtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRyZW5kLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50cmVuZC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnRyZW5kLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC50cmVuZC1ncmFwaCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC50cmVuZC1saW5lIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBzdHJva2Utd2lkdGg6IDEuNTsKICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgfQoKICAgICAgLnRyZW5kLWFyZWEgewogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMDgpIiwicmdiYSgxMDAsIDEwMCwgMTAwLCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLyogVGV4dCBWYWx1ZSBTdHlsZXMgKi8KICAgICAgLnRleHQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC8qIENvbnRleHQgTWVudSAqLwogICAgICBkZWVzLWNvbnRleHRtZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQogICAgYCxoLmNzc0ZvclRhYmxldChKYAogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsKICAgICAgfQogICAgYCxhKSxoLmNzc0ZvclBoYWJsZXQoSmAKICAgICAgOmhvc3QgewogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxMnB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyMnB4OwogICAgICAgIC0tdGl0bGUtZm9udC1zaXplOiAxMnB4OwogICAgICAgIC0tZ3JpZC1nYXA6IDhweDsKICAgICAgfQogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLXRpbGUgewogICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgIWltcG9ydGFudDsKICAgICAgfQogICAgYCxhKSxoLmNzc0ZvclBob25lKEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTBweDsKICAgICAgICAtLXZhbHVlLWZvbnQtc2l6ZTogMjBweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CiAgICBgLGEpXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksSW4odGhpcyxFKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC10aXRsZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWFjdGlvbnMiPgogICAgICAgICAgICAke3RoaXMuZ3JpZEFjdGlvbnMubWFwKGs9PndgCiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uIAogICAgICAgICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5oYW5kbGVHcmlkQWN0aW9uKGspfQogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIHNpemU9InNtIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7ay5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtrLmljb25OYW1lfSBzaXplPSJzbWFsbCI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAgICR7ay5uYW1lfQogICAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzdGF0cy1ncmlkIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgke3RoaXMubWluVGlsZVdpZHRofXB4LCAxZnIpKTsgZ2FwOiAke3RoaXMuZ2FwfXB4OyI+CiAgICAgICAgJHt0aGlzLnRpbGVzLm1hcChrPT50aGlzLnJlbmRlclRpbGUoaykpfQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jb250ZXh0TWVudVZpc2libGU/d2AKICAgICAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICAgICAgLng9JHt0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueH0KICAgICAgICAgIC55PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnl9CiAgICAgICAgICAubWVudUl0ZW1zPSR7dGhpcy5jb250ZXh0TWVudUFjdGlvbnN9CiAgICAgICAgICBAY2xpY2tlZD0keygpPT50aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMX0KICAgICAgICA+PC9kZWVzLWNvbnRleHRtZW51PgogICAgICBgOiIifQogICAgYH1yZW5kZXJUaWxlKGspe2xldCBTPWsuYWN0aW9ucyYmay5hY3Rpb25zLmxlbmd0aD4wLEk9UyYmay5hY3Rpb25zLmxlbmd0aD09PTEsUD1rLmNvbHVtblNwYW4mJmsuY29sdW1uU3Bhbj4xP2suY29sdW1uU3Bhbjp2b2lkIDA7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUKICAgICAgICBjbGFzcz0ic3RhdHMtdGlsZSAke0k/ImNsaWNrYWJsZSI6IiJ9IgogICAgICAgIHN0eWxlPSIke1A/YGdyaWQtY29sdW1uOiBzcGFuICR7UH1gOiIifSIKICAgICAgICBAY2xpY2s9JHtJPygpPT50aGlzLmhhbmRsZVRpbGVBY3Rpb24oay5hY3Rpb25zWzBdLGspOnZvaWQgMH0KICAgICAgICBAY29udGV4dG1lbnU9JHtTP1I9PnRoaXMuc2hvd0NvbnRleHRNZW51KFIsayk6dm9pZCAwfQogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJ0aWxlLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9InRpbGUtdGl0bGUiPiR7ay50aXRsZX08L2gzPgogICAgICAgICAgJHtrLmljb24/d2AKICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0idGlsZS1pY29uIiAuaWNvbj0ke2suaWNvbn0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb250ZW50Ij4KICAgICAgICAgICR7dGhpcy5yZW5kZXJUaWxlQ29udGVudChrKX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHtrLmRlc2NyaXB0aW9uJiZrLnR5cGUhPT0idHJlbmQiP3dgCiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InRpbGUtZGVzY3JpcHRpb24iPiR7ay5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyVGlsZUNvbnRlbnQoayl7c3dpdGNoKGsudHlwZSl7Y2FzZSJudW1iZXIiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSIgc3R5bGU9IiR7ay5jb2xvcj9gY29sb3I6ICR7ay5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgIDxzcGFuPiR7ay52YWx1ZX08L3NwYW4+CiAgICAgICAgICAgICR7ay51bml0P3dgPHNwYW4gY2xhc3M9InRpbGUtdW5pdCI+JHtrLnVuaXR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgO2Nhc2UiZ2F1Z2UiOnJldHVybiB0aGlzLnJlbmRlckdhdWdlKGspO2Nhc2UicGVyY2VudGFnZSI6cmV0dXJuIHRoaXMucmVuZGVyUGVyY2VudGFnZShrKTtjYXNlInRyZW5kIjpyZXR1cm4gdGhpcy5yZW5kZXJUcmVuZChrKTtjYXNlIm11bHRpUGVyY2VudGFnZSI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlQZXJjZW50YWdlKGspO2Nhc2UiY3B1Q29yZXMiOnJldHVybiB0aGlzLnJlbmRlckNwdUNvcmVzKGspO2Nhc2UicGFydGl0aW9uIjpyZXR1cm4gdGhpcy5yZW5kZXJQYXJ0aXRpb24oayk7Y2FzZSJkaXNrIjpyZXR1cm4gdGhpcy5yZW5kZXJEaXNrKGspO2Nhc2UidGV4dCI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXZhbHVlIiBzdHlsZT0iJHtrLmNvbG9yP2Bjb2xvcjogJHtrLmNvbG9yfWA6IiJ9Ij4KICAgICAgICAgICAgJHtrLnZhbHVlfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtkZWZhdWx0OnJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gfX1yZW5kZXJHYXVnZShrKXtsZXQgUz10eXBlb2Ygay52YWx1ZT09Im51bWJlciI/ay52YWx1ZTpwYXJzZUZsb2F0KGsudmFsdWUpLEk9ay5nYXVnZU9wdGlvbnN8fHttaW46MCxtYXg6MTAwfSxQPShTLUkubWluKS8oSS5tYXgtSS5taW4pKjEwMCxSPTEyMCxLPTcwLFc9Ni8yKzIsbWU9NDAsQj1SLzIsVT1LLVcsaGU9Qi1tZSxGPVUsaj1CK21lLGxlPWBNICR7aGV9ICR7Rn0gQSAke21lfSAke21lfSAwIDAgMSAke2p9ICR7VX1gLFE9TWF0aC5QSSptZSxpZT1RLVEqUC8xMDAsdGU9ay5jb2xvcnx8aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI4LjglKSIsImhzbCgyMTAgNDAlIDc4JSkiKTtpZihJLnRocmVzaG9sZHMpe2xldCBlZT1bLi4uSS50aHJlc2hvbGRzXS5zb3J0KChrZSxYKT0+WC52YWx1ZS1rZS52YWx1ZSk7Zm9yKGxldCBrZSBvZiBlZSlpZihTPj1rZS52YWx1ZSl7dGU9a2UuY29sb3I7YnJlYWt9fXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJnYXVnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXVnZS1jb250YWluZXIiPgogICAgICAgICAgPHN2ZyBjbGFzcz0iZ2F1Z2Utc3ZnIiB2aWV3Qm94PSIwIDAgJHtSfSAke0t9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KICAgICAgICAgICAgPCEtLSBCYWNrZ3JvdW5kIGFyYyAtLT4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICBjbGFzcz0iZ2F1Z2UtYmFja2dyb3VuZCIKICAgICAgICAgICAgICBkPSIke2xlfSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPCEtLSBGaWxsZWQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1maWxsIgogICAgICAgICAgICAgIGQ9IiR7bGV9IgogICAgICAgICAgICAgIHN0cm9rZT0iJHt0ZX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT0iJHtRfSIKICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldD0iJHtpZX0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT4KICAgICAgICAgICAgPHRleHQgY2xhc3M9ImdhdWdlLXRleHQiIHg9IiR7Qn0iIHk9IiR7VS04fSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSI+CiAgICAgICAgICAgICAgPHRzcGFuPiR7U308L3RzcGFuPiR7ay51bml0P3dgPHRzcGFuIGNsYXNzPSJnYXVnZS11bml0IiBkeD0iMiIgZHk9IjAiPiR7ay51bml0fTwvdHNwYW4+YDoiIn0KICAgICAgICAgICAgPC90ZXh0PgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQZXJjZW50YWdlKGspe2xldCBTPXR5cGVvZiBrLnZhbHVlPT0ibnVtYmVyIj9rLnZhbHVlOnBhcnNlRmxvYXQoay52YWx1ZSksST1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxTKSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS12YWx1ZSI+JHtJfSU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLWJhciI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0icGVyY2VudGFnZS1maWxsIiAKICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke0l9JTsgJHtrLmNvbG9yP2BiYWNrZ3JvdW5kOiAke2suY29sb3J9YDoiIn0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUcmVuZChrKXtpZighay50cmVuZERhdGF8fGsudHJlbmREYXRhLmxlbmd0aDwyKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gO2xldCBTPWsudHJlbmREYXRhLEk9TWF0aC5tYXgoLi4uUyksUD1NYXRoLm1pbiguLi5TKSxSPUktUHx8MSxLPTMwMCxWPTMyLFc9MixtZT1TLm1hcCgoVSxoZSk9PntsZXQgRj1oZS8oUy5sZW5ndGgtMSkqSyxqPVcrKFYtMipXKS0oVS1QKS9SKihWLTIqVyk7cmV0dXJuYCR7Rn0sJHtqfWB9KS5qb2luKCIgIiksQj1gMCwke1Z9ICR7bWV9ICR7S30sJHtWfWA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0cmVuZC12YWx1ZSI+JHtrLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICR7ay51bml0P3dgPHNwYW4gY2xhc3M9InRyZW5kLXVuaXQiPiR7ay51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgJHtrLmRlc2NyaXB0aW9uP3dgPHNwYW4gY2xhc3M9InRyZW5kLWxhYmVsIj4ke2suZGVzY3JpcHRpb259PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtZ3JhcGgiPgogICAgICAgICAgPHN2ZyBjbGFzcz0idHJlbmQtc3ZnIiB2aWV3Qm94PSIwIDAgJHtLfSAke1Z9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4KICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9InRyZW5kLWFyZWEiIHBvaW50cz0iJHtCfSIgLz4KICAgICAgICAgICAgPHBvbHlsaW5lIGNsYXNzPSJ0cmVuZC1saW5lIiBwb2ludHM9IiR7bWV9IiAvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNdWx0aVBlcmNlbnRhZ2Uoayl7aWYoIWsucGVyY2VudGFnZXN8fGsucGVyY2VudGFnZXMubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXQgUz1rLnBlcmNlbnRhZ2VzLnNsaWNlKDAsMyk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtcyI+CiAgICAgICAgICAke1MubWFwKEk9PntsZXQgUD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxJLnZhbHVlKSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtbGFiZWwiPiR7SS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLXZhbHVlIj4ke1B9JTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtZmlsbCIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7UH0lOyAke0kuY29sb3I/YGJhY2tncm91bmQ6ICR7SS5jb2xvcn1gOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNwdUNvcmVzKGspe2lmKCFrLmNvcmVzRGF0YXx8ay5jb3Jlc0RhdGEubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXQgUz1rLmNvcmVzRGF0YSxJPU1hdGgucm91bmQoUy5yZWR1Y2UoKG1lLEIpPT5tZStCLnVzYWdlLDApL1MubGVuZ3RoKSxQPWkobWU9Pm1lPDUwPyJsb3ciOm1lPDgwPyJtZWRpdW0iOiJoaWdoIiwiZ2V0Q29sb3JDbGFzcyIpLFI9Uy5sZW5ndGgqMjQrKFMubGVuZ3RoLTEpKjMsSz1rLmNvbHVtblNwYW58fDEsVj10aGlzLm1pblRpbGVXaWR0aCpLKyhLLTEpKnRoaXMuZ2FwLTMyLFc9UjxWKi42NjY7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtdmFsdWUiPiR7SX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXVuaXQiPiU8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLWxhYmVsIj4ke1MubGVuZ3RofSBjb3Jlczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtYmFycyAke1c/ImNlbnRlcmVkIjoiIn0iPgogICAgICAgICAgJHtTLm1hcChtZT0+e2xldCBCPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLG1lLnVzYWdlKSksVT1QKEIpO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3JlLWJhci1jb250YWluZXIiIHRpdGxlPSJDb3JlICR7bWUubGFiZWx8fG1lLmlkfTogJHtCfSUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNwdS1jb3JlLWJhci1maWxsICR7VX0iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHtCfSUiCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtTLmxlbmd0aDw9MTY/d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3JlLWxhYmVsIj4ke21lLmxhYmVsfHxtZS5pZH08L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXRCeXRlcyhrKXtpZihrPT09MClyZXR1cm4iMCBCIjtsZXQgUz0xMDI0LEk9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiLCJQQiJdLFA9TWF0aC5mbG9vcihNYXRoLmxvZyhrKS9NYXRoLmxvZyhTKSk7cmV0dXJuIHBhcnNlRmxvYXQoKGsvTWF0aC5wb3coUyxQKSkudG9GaXhlZCgxKSkrIiAiK0lbUF19cmVuZGVyUGFydGl0aW9uKGspe2lmKCFrLnBhcnRpdGlvbkRhdGEpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtrLnZhbHVlfTwvZGl2PmA7bGV0e3VzZWQ6Uyx0b3RhbDpJLGZpbGVzeXN0ZW06UCxtb3VudFBvaW50OlJ9PWsucGFydGl0aW9uRGF0YSxLPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLFMvSSoxMDApKSxWPUktUyxXPWkoKCk9Pks+PTkwPyJjcml0aWNhbCI6Sz49NzU/Indhcm5pbmciOiIiLCJnZXRDb2xvckNsYXNzIik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24taGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tcGVyY2VudGFnZSI+JHtNYXRoLnJvdW5kKEspfSU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLWJhciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJwYXJ0aXRpb24tYmFyLWZpbGwgJHtXKCl9IgogICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7S30lIgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0cyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+VXNlZDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoUyl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+RnJlZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoVil9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1maWxlc3lzdGVtIj4ke1B9PC9zcGFuPgogICAgICAgICAgJHtSP3dgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1tb3VudHBvaW50Ij4ke1J9PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEaXNrKGspe2lmKCFrLmRpc2tEYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gO2xldHtjYXBhY2l0eTpTLG1vZGVsOkksdHlwZTpQLGlvcHM6UixoZWFsdGg6S309ay5kaXNrRGF0YSxWPWkoVz0+Vz49NzA/Imdvb2QiOlc+PTMwPyJ3YXJuaW5nIjoiY3JpdGljYWwiLCJnZXRIZWFsdGhDbGFzcyIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaXNrLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stY2FwYWNpdHkiPiR7dGhpcy5mb3JtYXRCeXRlcyhTKX08L2Rpdj4KICAgICAgICAke0l8fFA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbW9kZWwiPgogICAgICAgICAgICAke0k/d2A8c3Bhbj4ke0l9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICR7UD93YDxzcGFuIGNsYXNzPSJkaXNrLXR5cGUtYmFkZ2UiPiR7UH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tZXRyaWNzIj4KICAgICAgICAgICR7Uj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPlJlYWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke1IucmVhZC50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5Xcml0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7Ui53cml0ZS50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHtLIT09dm9pZCAwP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLWxhYmVsIj5IZWFsdGg8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtdmFsdWUiPiR7S30lPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNrLWhlYWx0aC1maWxsICR7VihLKX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtLfSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUdyaWRBY3Rpb24oayl7ay5hY3Rpb24mJmF3YWl0IGsuYWN0aW9uKCl9YXN5bmMgaGFuZGxlVGlsZUFjdGlvbihrLFMpe2suYWN0aW9uJiZhd2FpdCBrLmFjdGlvbigpfXNob3dDb250ZXh0TWVudShrLFMpe2lmKCFTLmFjdGlvbnN8fFMuYWN0aW9ucy5sZW5ndGg9PT0wKXJldHVybjtrLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uPXt4OmsuY2xpZW50WCx5OmsuY2xpZW50WX0sdGhpcy5jb250ZXh0TWVudUFjdGlvbnM9Uy5hY3Rpb25zLHRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSEwO2xldCBJPWkoKCk9Pnt0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsSSl9LCJjbG9zZUhhbmRsZXIiKTtzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEkpfSwxMDApfXN0YXRpY3tJbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgbWcsV2QsTjBvLFIwbyxPMG8sRjBvLEgzYSxxM2E9ZygoKT0+e3BlKCk7SXQoKTtRY2UoKTttZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sV2Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE4wbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb0Rhc2hib2FyZFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLG1nKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJhY3RpdmF0ZWQiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5hY3RpdmF0ZWQsImdldCIpLHNldDppKCh1LGMpPT57dS5hY3RpdmF0ZWQ9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLG1nKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSksV2QoYSx0KX0jZT1XZCh0aGlzLG8sITEpO2dldCBhY3RpdmF0ZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYWN0aXZhdGVkKGQpe3RoaXMuI2U9ZH1jdHg9V2QodGhpcyxsKTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIixkZXNjcmlwdGlvbjoiT25saW5lIG5vdyIsY29sb3I6IiMyMmM1NWUifSx7aWQ6ImFwaS1jYWxscyIsdGl0bGU6IkFQSSBDYWxscyIsdmFsdWU6NDUyMDAsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsZGVzY3JpcHRpb246IisxMiUgZnJvbSBsYXN0IGhvdXIiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzMyZTMsMzVlMywzOGUzLDQxZTMsMzllMyw0MmUzLDQ1MjAwXX0se2lkOiJoZWFsdGgiLHRpdGxlOiJTeXN0ZW0gSGVhbHRoIix2YWx1ZTo5OS45LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6aGVhcnQtcHVsc2UiLGRlc2NyaXB0aW9uOiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsY29sb3I6IiMxMGI5ODEiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6ODAsY29sb3I6IiNlZjQ0NDQifSx7dmFsdWU6OTUsY29sb3I6IiNmNTllMGIifSx7dmFsdWU6MTAwLGNvbG9yOiIjMTBiOTgxIn1dfX0se2lkOiJyZXNwb25zZSIsdGl0bGU6IkF2ZyBSZXNwb25zZSIsdmFsdWU6MTI3LHVuaXQ6Im1zIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0aW1lciIsZGVzY3JpcHRpb246Ii0xNW1zIGZyb20geWVzdGVyZGF5Iixjb2xvcjoiIzhiNWNmNiJ9LHtpZDoicmVzb3VyY2VzIix0aXRsZToiUmVzb3VyY2UgVXNhZ2UiLHZhbHVlOiIiLHR5cGU6Im11bHRpUGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnNlcnZlciIscGVyY2VudGFnZXM6W3tsYWJlbDoiQ1BVIix2YWx1ZTo2Nyxjb2xvcjoiIzNiODJmNiJ9LHtsYWJlbDoiTWVtb3J5Iix2YWx1ZTo4NCxjb2xvcjoiIzhiNWNmNiJ9LHtsYWJlbDoiRGlzayIsdmFsdWU6NDUsY29sb3I6IiMxMGI5ODEifV19LHtpZDoicmVxdWVzdHMiLHRpdGxlOiJSZXF1ZXN0cy9zZWMiLHZhbHVlOjE4NTAsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTp6YXAiLGRlc2NyaXB0aW9uOiJDdXJyZW50IHRocm91Z2hwdXQiLGNvbG9yOiIjMDZiNmQ0Iix0cmVuZERhdGE6WzEyMDAsMTQwMCwxMzUwLDE2MDAsMTc1MCwxNjgwLDE4NTBdfV07b25BY3RpdmF0ZShkKXt0aGlzLmN0eD1kLHRoaXMuYWN0aXZhdGVkPSEwLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgYWN0aXZhdGVkIHdpdGggY29udGV4dDoiLGQpLGQuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRGFzaGJvYXJkIixncm91cHM6W3tuYW1lOiJRdWljayBBY2Nlc3MiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKSwiYWN0aW9uIil9LHtrZXk6IlJlY2VudCIsaWNvbk5hbWU6ImNsb2NrIixiYWRnZTo1LGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVjZW50IiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCBEYXRhIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJSZWZyZXNoaW5nIGRhc2hib2FyZCBkYXRhLi4uIiksImFjdGlvbiIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJUaW1lIFJhbmdlIn0se3R5cGU6ImZpbHRlciIsa2V5OiJMaXZlIFVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cmFkaW8iLGFjdGl2ZTohMCxvblRvZ2dsZTppKHU9PmNvbnNvbGUubG9nKCJMaXZlIHVwZGF0ZXM6Iix1KSwib25Ub2dnbGUiKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTppKHU9PmNvbnNvbGUubG9nKCJTaG93IGFyY2hpdmVkOiIsdSksIm9uVG9nZ2xlIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IkRhdGEgU291cmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSIsb3B0aW9uczpbe2tleToiYXBpIixsYWJlbDoiQVBJIFNlcnZlciIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOnNlcnZlciJ9LHtrZXk6IndlYiIsbGFiZWw6IldlYiBUcmFmZmljIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUifSx7a2V5OiJtb2JpbGUiLGxhYmVsOiJNb2JpbGUgQXBwIixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6c21hcnRwaG9uZSJ9XSxvbkNoYW5nZTppKHU9PmNvbnNvbGUubG9nKCJEYXRhIHNvdXJjZXM6Iix1KSwib25DaGFuZ2UiKX1dfSx7bmFtZToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsaXRlbXM6W3trZXk6Ik1ldHJpY3MiLGljb25OYW1lOiJhY3Rpdml0eSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJNZXRyaWNzIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToiZmlsZVRleHQiLGJhZGdlOiJuZXciLGJhZGdlVmFyaWFudDoic3VjY2VzcyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJsaW5rIixrZXk6IkFuYWx5dGljcyBEb2NzIixpY29uTmFtZToibHVjaWRlOmV4dGVybmFsTGluayIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2FuYWx5dGljcyJ9XX1dfSksZC5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0RGFzaGJvYXJkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IHRhYiIpLCJhY3Rpb24iKX0se2tleToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyB0YWIiKSwiYWN0aW9uIil9LHtrZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVwb3J0cyB0YWIiKSwiYWN0aW9uIil9XSl9b25EZWFjdGl2YXRlKCl7dGhpcy5hY3RpdmF0ZWQ9ITEsY29uc29sZS5sb2coIkRhc2hib2FyZCBkZWFjdGl2YXRlZCIpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luLWJvdHRvbTogMzJweDsgfQogICAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuY3R4LWFjdGlvbnMgewogICAgICAgICAgbWFyZ2luLXRvcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDIpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CiAgICAgICAgLmN0eC1hY3Rpb25zIGgyIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQogICAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7CiAgICAgICAgICBjb2xvcjogIzYwYTVmYTsKICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uZGFuZ2VyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uZGFuZ2VyOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLnN1Y2Nlc3MgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5zdWNjZXNzOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuNSk7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+RGFzaGJvYXJkPC9oMT4KICAgICAgPHA+V2VsY29tZSBiYWNrISBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBzeXN0ZW0uPC9wPgogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnN0YXRzVGlsZXN9CiAgICAgICAgQHRpbGUtYWN0aW9uPSR7ZD0+Y29uc29sZS5sb2coIlRpbGUgYWN0aW9uOiIsZC5kZXRhaWwpfQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxkaXYgY2xhc3M9ImN0eC1hY3Rpb25zIj4KICAgICAgICA8aDI+Q29udGV4dCBBY3Rpb25zIChjdHguYXBwdWkpPC9oMj4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMSl9PkhpZGUgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVWaXNpYmxlKCEwKX0+U2hvdyBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVZpc2libGUoITEpfT5IaWRlIFNlY29uZGFyeSBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVZpc2libGUoITApfT5TaG93IFNlY29uZGFyeSBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMSl9PkhpZGUgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNWaXNpYmxlKCEwKX0+U2hvdyBDb250ZW50IFRhYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITApfT5Db2xsYXBzZSBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZCghMSl9PkV4cGFuZCBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0QnJlYWRjcnVtYnMoWyJEYXNoYm9hcmQiLCJPdmVydmlldyIsIlN0YXRzIl0pfT5TZXQgQnJlYWRjcnVtYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoInByb2plY3RzIil9PkdvIHRvIFByb2plY3RzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJzZXR0aW5ncyIse3NlY3Rpb246InNlY3VyaXR5In0pfT5HbyB0byBTZXR0aW5ncy9TZWN1cml0eTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5hY3Rpdml0eUxvZy5hZGQoe3R5cGU6ImN1c3RvbSIsdXNlcjoiRGVtbyBVc2VyIixtZXNzYWdlOiJCdXR0b24gY2xpY2tlZCBmcm9tIGN0eCEiLGljb25OYW1lOiJsdWNpZGU6bW91c2UtcG9pbnRlci1jbGljayJ9KX0+QWRkIEFjdGl2aXR5IEVudHJ5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51QmFkZ2UoInRhc2tzIiw5OSl9PlNldCBUYXNrcyBCYWRnZSB0byA5OTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuY2xlYXJNYWluTWVudUJhZGdlKCJ0YXNrcyIpfT5DbGVhciBUYXNrcyBCYWRnZTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCEwLDEpfT5BdXRvLWhpZGUgVGFicyAo4omkMSk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzQXV0b0hpZGUoITEpfT5EaXNhYmxlIEF1dG8taGlkZTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRDbG9zZWFibGVUYWIoKX0+QWRkIENsb3NlYWJsZSBUYWI8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXRhYkNvdW50ZXI9MDthZGRDbG9zZWFibGVUYWIoKXtpZighdGhpcy5jdHgpcmV0dXJuO3RoaXMudGFiQ291bnRlcisrO2xldCBkPWBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YDt0aGlzLmN0eC5hcHB1aS5hZGRDb250ZW50VGFiKHtrZXk6ZCxpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZyhgU2VsZWN0ZWQgJHtkfWApLCJhY3Rpb24iKSxjbG9zZWFibGU6ITAsb25DbG9zZTppKCgpPT57dGhpcy5jdHg/LmFwcHVpLnJlbW92ZUNvbnRlbnRUYWIoZCl9LCJvbkNsb3NlIil9KX19O3JldHVybiBwPWF9KSgpLFIwbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tc2V0dGluZ3MtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vU2V0dGluZ3NWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLG1nKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2VjdGlvbiJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnNlY3Rpb24sImdldCIpLHNldDppKCh2LHgpPT57di5zZWN0aW9uPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxtZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0NoYW5nZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+Imhhc0NoYW5nZXMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5oYXNDaGFuZ2VzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuaGFzQ2hhbmdlcz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksbWcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSxXZChhLHQpfSNlPVdkKHRoaXMsbywiZ2VuZXJhbCIpO2dldCBzZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlY3Rpb24oYil7dGhpcy4jZT1ifSN0PShXZCh0aGlzLGwpLFdkKHRoaXMsZCwhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGhhc0NoYW5nZXMoYil7dGhpcy4jdD1ifWFwcHVpPVdkKHRoaXMsdSk7b25BY3RpdmF0ZShiKXt0aGlzLmFwcHVpPWIuYXBwdWksY29uc29sZS5sb2coIlNldHRpbmdzIGFjdGl2YXRlZCB3aXRoIHBhcmFtczoiLGIucGFyYW1zKSxiLnBhcmFtcz8uc2VjdGlvbiYmKHRoaXMuc2VjdGlvbj1iLnBhcmFtcy5zZWN0aW9uKSxiLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlNldHRpbmdzIixncm91cHM6W3tuYW1lOiJBY2NvdW50IixpY29uTmFtZToibHVjaWRlOnVzZXIiLGl0ZW1zOlt7a2V5OiJnZW5lcmFsIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJnZW5lcmFsIiksImFjdGlvbiIpfSx7a2V5OiJwcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oInByb2ZpbGUiKSwiYWN0aW9uIil9LHtrZXk6InNlY3VyaXR5IixpY29uTmFtZToic2hpZWxkIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigic2VjdXJpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IlByZWZlcmVuY2VzIixpY29uTmFtZToibHVjaWRlOnNsaWRlcnMiLGl0ZW1zOlt7a2V5OiJub3RpZmljYXRpb25zIixpY29uTmFtZToiYmVsbCIsYmFkZ2U6MyxhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigibm90aWZpY2F0aW9ucyIpLCJhY3Rpb24iKX0se2tleToiYXBwZWFyYW5jZSIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJhcHBlYXJhbmNlIiksImFjdGlvbiIpfV19XX0pLGIuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbih0aGlzLnNlY3Rpb24pLGIuYXBwdWkuc2V0Q29udGVudFRhYnMoW10pfW9uRGVhY3RpdmF0ZSgpe2NvbnNvbGUubG9nKCJTZXR0aW5ncyBkZWFjdGl2YXRlZCIpLHRoaXMuaGFzQ2hhbmdlcz0hMX1jYW5EZWFjdGl2YXRlKCl7cmV0dXJuIHRoaXMuaGFzQ2hhbmdlcz8iWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBMZWF2ZSBhbnl3YXk/IjohMH1zaG93U2VjdGlvbihiKXt0aGlzLnNlY3Rpb249Yix0aGlzLmFwcHVpPy5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKGIpfXNpbXVsYXRlQ2hhbmdlKCl7dGhpcy5oYXNDaGFuZ2VzPSEwfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5zZWN0aW9uLW5hbWUgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5hY3Rpb25zIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2OwogICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViOwogICAgICAgIH0KICAgICAgICAud2FybmluZyB7CiAgICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+U2V0dGluZ3M8L2gxPgogICAgICA8cD5NYW5hZ2UgeW91ciBhY2NvdW50IGFuZCBhcHBsaWNhdGlvbiBwcmVmZXJlbmNlcy48L3A+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbmFtZSI+CiAgICAgICAgQ3VycmVudCBzZWN0aW9uOiA8c3Ryb25nPiR7dGhpcy5zZWN0aW9ufTwvc3Ryb25nPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zaW11bGF0ZUNoYW5nZSgpfT5NYWtlIENoYW5nZXM8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5oYXNDaGFuZ2VzP3dgPHAgY2xhc3M9Indhcm5pbmciPllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTmF2aWdhdGlvbiB3aWxsIHByb21wdCBmb3IgY29uZmlybWF0aW9uLjwvcD5gOiIifQogICAgYH19O3JldHVybiBjPWF9KSgpLE8wbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tcHJvamVjdHMtdmlldyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vUHJvamVjdHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bWcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxXZChhLHQpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJQcm9qZWN0cyIsZ3JvdXBzOlt7bmFtZToiTXkgUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixpdGVtczpbe2tleToiQWN0aXZlIixpY29uTmFtZToiZm9sZGVyIixiYWRnZTozLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIiksImFjdGlvbiIpfSx7a2V5OiJBcmNoaXZlZCIsaWNvbk5hbWU6ImFyY2hpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNoYXJlZCIsaWNvbk5hbWU6InVzZXJzIixiYWRnZToyLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTaGFyZWQiKSwiYWN0aW9uIil9XX0se25hbWU6IlF1aWNrIEFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBuZXcgcHJvamVjdCIpLCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKCgpPT5hbGVydCgiSW1wb3J0IHByb2plY3QiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiVGVtcGxhdGVzIixpY29uTmFtZToibHVjaWRlOmxheW91dFRlbXBsYXRlIixocmVmOiJodHRwczovL3RlbXBsYXRlcy5leGFtcGxlLmNvbSJ9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiR3JpZCIsaWNvbk5hbWU6Imx1Y2lkZTpncmlkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkdyaWQgdmlldyIpLCJhY3Rpb24iKX0se2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QgdmlldyIpLCJhY3Rpb24iKX0se2tleToiQm9hcmQiLGljb25OYW1lOiJsdWNpZGU6a2FuYmFuIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkJvYXJkIHZpZXciKSwiYWN0aW9uIil9XSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5wcm9qZWN0cyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0OmhvdmVyIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgICAgIH0KICAgICAgICAucHJvamVjdCBoMyB7IGNvbG9yOiAjZmFmYWZhOyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNnB4OyB9CiAgICAgICAgLnByb2plY3QgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAgIC5iYWRnZSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTQ1MzJkOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5Qcm9qZWN0czwvaDE+CiAgICAgIDxkaXYgY2xhc3M9InByb2plY3RzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Gcm9udGVuZCBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0LWJhc2VkIGRhc2hib2FyZCBhcHBsaWNhdGlvbjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5BUEkgU2VydmVyIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5Ob2RlLmpzIFJFU1QgQVBJIGJhY2tlbmQ8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+TW9iaWxlIEFwcCA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+UmVhY3QgTmF0aXZlIGlPUy9BbmRyb2lkIGFwcDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Eb2N1bWVudGF0aW9uPC9oMz4KICAgICAgICAgIDxwPlRlY2huaWNhbCBkb2N1bWVudGF0aW9uIHNpdGU8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLEYwbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tdGFza3MtdmlldyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vVGFza3NWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bWcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxXZChhLHQpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUYXNrcyIsZ3JvdXBzOlt7bmFtZToiVmlld3MiLGljb25OYW1lOiJsdWNpZGU6ZXllIixpdGVtczpbe2tleToiQWxsIFRhc2tzIixpY29uTmFtZToibGlzdCIsYmFkZ2U6MTIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbGwiKSwiYWN0aW9uIil9LHtrZXk6IlRvZGF5IixpY29uTmFtZToiY2FsZW5kYXIiLGJhZGdlOjMsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUb2RheSIpLCJhY3Rpb24iKX0se2tleToiVXBjb21pbmciLGljb25OYW1lOiJjbG9jayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJVcGNvbWluZyIpLCJhY3Rpb24iKX0se2tleToiQ29tcGxldGVkIixpY29uTmFtZToiY2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIiksImFjdGlvbiIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJQcmlvcml0eSJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJQcmlvcml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpmbGFnIixvcHRpb25zOlt7a2V5OiJoaWdoIixsYWJlbDoiSGlnaCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmFsZXJ0Q2lyY2xlIn0se2tleToibWVkaXVtIixsYWJlbDoiTWVkaXVtIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bWludXNDaXJjbGUifSx7a2V5OiJsb3ciLGxhYmVsOiJMb3ciLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjaXJjbGUifV0sb25DaGFuZ2U6aShsPT5jb25zb2xlLmxvZygiUHJpb3JpdHkgZmlsdGVyOiIsbCksIm9uQ2hhbmdlIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6Ik9wdGlvbnMifSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgU3VidGFza3MiLGljb25OYW1lOiJsdWNpZGU6bGlzdFRyZWUiLGFjdGl2ZTohMCxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IHN1YnRhc2tzOiIsbCksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGFjdGl2ZTohMSxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IGNvbXBsZXRlZDoiLGwpLCJvblRvZ2dsZSIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFRhc2siLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJBZGQgbmV3IHRhc2siKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFRhc2tzIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJJbXBvcnQgdGFza3MiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJDbGVhciBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJEZWxldGUgYWxsIGNvbXBsZXRlZCB0YXNrcz8iLGFjdGlvbjppKCgpPT5hbGVydCgiQ2xlYXJlZCBjb21wbGV0ZWQgdGFza3MiKSwiYWN0aW9uIil9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QiKSwiYWN0aW9uIil9LHtrZXk6IkNhbGVuZGFyIixpY29uTmFtZToibHVjaWRlOmNhbGVuZGFyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNhbGVuZGFyIiksImFjdGlvbiIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAudGFzay1saXN0IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50YXNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM1MjUyNTI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC50YXNrLXRleHQgeyBjb2xvcjogI2ZhZmFmYTsgZmxleDogMTsgfQogICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAucHJpb3JpdHkgewogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfQogICAgICAgIC5wcmlvcml0eS5tZWRpdW0geyBiYWNrZ3JvdW5kOiAjNDUxYTAzOyBjb2xvcjogI2ZiYmYyNDsgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+VGFza3M8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJ0YXNrLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvZGF5PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IGhpZ2giPkhpZ2g8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5VcGRhdGUgZG9jdW1lbnRhdGlvbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9tb3Jyb3c8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgbWVkaXVtIj5NZWRpdW08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5Xcml0ZSB1bml0IHRlc3RzPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5EZWMgMjA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLEgzYT1pKCgpPT57bGV0IHM9e2JyYW5kaW5nOntsb2dvSWNvbjoibHVjaWRlOmJveCIsbG9nb1RleHQ6IkFjbWUgQXBwIn0sYXBwQmFyOnttZW51SXRlbXM6W3tuYW1lOiJGaWxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixzaG9ydGN1dDoiQ21kK04iLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4uLi4iLHNob3J0Y3V0OiJDbWQrTyIsaWNvbk5hbWU6ImZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIiksImFjdGlvbiIpfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Im15LWFwcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gbXktYXBwIiksImFjdGlvbiIpfSx7bmFtZToiY29tcG9uZW50LWxpYiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gY29tcG9uZW50LWxpYiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUgQWxsIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kbyIpLCJhY3Rpb24iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWRvIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpLCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHNpZGViYXIiKSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgQWN0aXZpdHkgTG9nIixzaG9ydGN1dDoiQ21kK1NoaWZ0K0EiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgYWN0aXZpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IkhlbHAiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRG9jdW1lbnRhdGlvbiIsaWNvbk5hbWU6ImJvb2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2NzIiksImFjdGlvbiIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrLyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV0sYnJlYWRjcnVtYnM6IkRhc2hib2FyZCIsc2hvd1dpbmRvd0NvbnRyb2xzOiEwLHNob3dTZWFyY2g6ITAsdXNlcjp7bmFtZToiSmFuZSBTbWl0aCIsZW1haWw6ImphbmUuc21pdGhAZXhhbXBsZS5jb20iLHN0YXR1czoib25saW5lIn0scHJvZmlsZU1lbnVJdGVtczpbe25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQgU2V0dGluZ3MiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfSx2aWV3czpbe2lkOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixjb250ZW50OiJkZW1vLWRhc2hib2FyZC12aWV3Iixyb3V0ZToiZGFzaGJvYXJkIn0se2lkOiJwcm9qZWN0cyIsbmFtZToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixjb250ZW50OiJkZW1vLXByb2plY3RzLXZpZXciLHJvdXRlOiJwcm9qZWN0cyIsYmFkZ2U6M30se2lkOiJ0YXNrcyIsbmFtZToiVGFza3MiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGNvbnRlbnQ6ImRlbW8tdGFza3MtdmlldyIscm91dGU6InRhc2tzIixiYWRnZToxMn0se2lkOiJzZXR0aW5ncyIsbmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGNvbnRlbnQ6ImRlbW8tc2V0dGluZ3MtdmlldyIscm91dGU6InNldHRpbmdzLzpzZWN0aW9uPyJ9XSxtYWluTWVudTp7c2VjdGlvbnM6W3tuYW1lOiJNYWluIix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiV29ya3NwYWNlIix2aWV3czpbInByb2plY3RzIiwidGFza3MiXX1dLGJvdHRvbUl0ZW1zOlsic2V0dGluZ3MiXX0sZGVmYXVsdFZpZXc6ImRhc2hib2FyZCIsYm90dG9tQmFyOnt2aXNpYmxlOiEwLHdpZGdldHM6W3tpZDoic3RhdHVzIixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixsYWJlbDoiU3lzdGVtIE9ubGluZSIsc3RhdHVzOiJzdWNjZXNzIix0b29sdGlwOiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiU3RhdHVzIGNsaWNrZWQiKSwib25DbGljayIpfSx7aWQ6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsbGFiZWw6IjMgbm90aWZpY2F0aW9ucyIsc3RhdHVzOiJ3YXJuaW5nIix0b29sdGlwOiJZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucyIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksIm9uQ2xpY2siKX0se2lkOiJ2ZXJzaW9uIixpY29uTmFtZToibHVjaWRlOmdpdEJyYW5jaCIsbGFiZWw6InYxLjIuMyIscG9zaXRpb246InJpZ2h0Iix0b29sdGlwOiJDdXJyZW50IHZlcnNpb24ifV0sYWN0aW9uczpbe2lkOiJ0ZXJtaW5hbCIsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsdG9vbHRpcDoiT3BlbiBUZXJtaW5hbCIscG9zaXRpb246InJpZ2h0IixvbkNsaWNrOmkoKCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCBjbGlja2VkIiksIm9uQ2xpY2siKX1dfSxvblZpZXdDaGFuZ2U6aSgoYSxyKT0+e2NvbnNvbGUubG9nKGBWaWV3IGNoYW5nZWQgdG86ICR7YX0gKCR7ci5uYW1lfSlgKX0sIm9uVmlld0NoYW5nZSIpLG9uU2VhcmNoOmkoYT0+e2NvbnNvbGUubG9nKCJTZWFyY2ggcXVlcnk6IixhKX0sIm9uU2VhcmNoIil9LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9ImRlbW8tY29udGFpbmVyIixlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aSIpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHQudXBkYXRlQ29tcGxldGUsdC5jb25maWd1cmUocyksc2V0VGltZW91dCgoKT0+e3QuYWN0aXZpdHlMb2cuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOidjcmVhdGVkIHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn1dKX0sNTAwKSx0LnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoYT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgZXZlbnQ6IixhKSx0LnNldEJyZWFkY3J1bWJzKGEudmlldy5uYW1lKX0pLHQudmlld0xpZmVjeWNsZSQuc3Vic2NyaWJlKGE9Pntjb25zb2xlLmxvZygiTGlmZWN5Y2xlIGV2ZW50OiIsYS50eXBlLGEudmlld0lkKX0pLHNldFRpbWVvdXQoKCk9Pnt0LnNldE1haW5NZW51QmFkZ2UoInRhc2tzIiwxNSksdC5hY3Rpdml0eUxvZy5hZGQoe3R5cGU6InVwZGF0ZSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJuZXcgdGFza3MgYWRkZWQifSl9LDVlMyl9LDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgJHtlfQogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHFYLF9pdD1nKCgpPT57cGUoKTtxWD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaWV3UmVnaXN0cnkiKX12aWV3cz1uZXcgTWFwO2luc3RhbmNlcz1uZXcgTWFwO2N1cnJlbnRWaWV3SWQ9bnVsbDthcHB1aT1udWxsO3NldEFwcHVpUmVmKGUpe3RoaXMuYXBwdWk9ZX1yZWdpc3RlcihlKXt0aGlzLnZpZXdzLmhhcyhlLmlkKSYmY29uc29sZS53YXJuKGBWaWV3IHdpdGggaWQgIiR7ZS5pZH0iIGFscmVhZHkgcmVnaXN0ZXJlZC4gT3ZlcndyaXRpbmcuYCksdGhpcy52aWV3cy5zZXQoZS5pZCxlKX1yZWdpc3RlckFsbChlKXtlLmZvckVhY2godD0+dGhpcy5yZWdpc3Rlcih0KSl9Z2V0KGUpe3JldHVybiB0aGlzLnZpZXdzLmdldChlKX1nZXRWaWV3SWRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy5rZXlzKCkpfWdldEFsbCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmlld3MudmFsdWVzKCkpfWdldFJvdXRlKGUpe2xldCB0PXRoaXMudmlld3MuZ2V0KGUpO3JldHVybiB0Py5yb3V0ZXx8dD8uaWR8fCIifWZpbmRCeVJvdXRlKGUpe2ZvcihsZXQgdCBvZiB0aGlzLnZpZXdzLnZhbHVlcygpKXtsZXQgYT10LnJvdXRlfHx0LmlkLHI9dGhpcy5tYXRjaFJvdXRlKGEsZSk7aWYociE9PW51bGwpcmV0dXJue3ZpZXc6dCxwYXJhbXM6cn19fW1hdGNoUm91dGUoZSx0KXtsZXQgYT1lLnNwbGl0KCIvIikscj10LnNwbGl0KCIvIik7aWYoYS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXS5lbmRzV2l0aCgiPyIpKXtpZihyLmxlbmd0aDxhLmxlbmd0aC0xfHxyLmxlbmd0aD5hLmxlbmd0aClyZXR1cm4gbnVsbH1lbHNlIGlmKGEubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IG89e307Zm9yKGxldCBsPTA7bDxhLmxlbmd0aDtsKyspe2xldCBwPWFbbF0sZD1wLmVuZHNXaXRoKCI/Iik7aWYoZCYmKHA9cC5zbGljZSgwLC0xKSkscC5zdGFydHNXaXRoKCI6Iikpe2xldCB1PXAuc2xpY2UoMSk7aWYocltsXSE9PXZvaWQgMClvW3VdPXJbbF07ZWxzZSBpZighZClyZXR1cm4gbnVsbH1lbHNlIGlmKHJbbF0hPT1wKXJldHVybiBudWxsfXJldHVybiBvfWFzeW5jIGNhbkxlYXZlQ3VycmVudFZpZXcoKXtpZighdGhpcy5jdXJyZW50Vmlld0lkKXJldHVybiEwO2xldCBlPXRoaXMuaW5zdGFuY2VzLmdldCh0aGlzLmN1cnJlbnRWaWV3SWQpO2lmKCFlKXJldHVybiEwO2xldCB0PWU7cmV0dXJuIHR5cGVvZiB0LmNhbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiI/YXdhaXQgdC5jYW5EZWFjdGl2YXRlKCk6ITB9YXN5bmMgYWN0aXZhdGVWaWV3KGUsdCxhKXtsZXQgcj10aGlzLnZpZXdzLmdldChlKTtpZighcilyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDtsZXQgbj1yLmNhY2hlIT09ITE7dGhpcy5jdXJyZW50Vmlld0lkJiZ0aGlzLmN1cnJlbnRWaWV3SWQhPT1lJiZhd2FpdCB0aGlzLmRlYWN0aXZhdGVWaWV3KHRoaXMuY3VycmVudFZpZXdJZCk7bGV0IG89bj90aGlzLmluc3RhbmNlcy5nZXQoZSk6dm9pZCAwO2lmKG8pby5zdHlsZS5kaXNwbGF5PSIiO2Vsc2V7aWYobz1hd2FpdCB0aGlzLmNyZWF0ZVZpZXdFbGVtZW50KHIpLCFvKXJldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGVsZW1lbnQgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDt0LmFwcGVuZENoaWxkKG8pLG4mJnRoaXMuaW5zdGFuY2VzLnNldChlLG8pfXJldHVybiB0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxhd2FpdCB0aGlzLmNhbGxPbkFjdGl2YXRlKG8sZSxhKSxvfWFzeW5jIGRlYWN0aXZhdGVWaWV3KGUpe2xldCB0PXRoaXMuaW5zdGFuY2VzLmdldChlKTtpZighdClyZXR1cm47bGV0IGE9dDt0eXBlb2YgYS5vbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiImJmF3YWl0IGEub25EZWFjdGl2YXRlKCksdC5zdHlsZS5kaXNwbGF5PSJub25lIn1hc3luYyBjcmVhdGVWaWV3RWxlbWVudChlKXtsZXQgdD1lLmNvbnRlbnQ7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiImJiEodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkmJnQuY29uc3RydWN0b3IubmFtZT09PSJBc3luY0Z1bmN0aW9uIil0cnl7dD1hd2FpdCB0KCl9Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGFzeW5jIGNvbnRlbnQgZm9yIHZpZXcgIiR7ZS5pZH0iOmAsciksbnVsbH1sZXQgYTtpZih0eXBlb2YgdD09InN0cmluZyIpYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpaWYodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClhPW5ldyB0O2Vsc2V7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixyLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IG49dCgpO2gxKG4sciksYT1yfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2UuaWR9ImApLG51bGw7cmV0dXJuIGEuZGF0YXNldC52aWV3SWQ9ZS5pZCxhfWFzeW5jIGNhbGxPbkFjdGl2YXRlKGUsdCxhKXtsZXQgcj1lO2lmKHR5cGVvZiByLm9uQWN0aXZhdGU9PSJmdW5jdGlvbiIpe2xldCBuPXthcHB1aTp0aGlzLmFwcHVpLHZpZXdJZDp0LHBhcmFtczphfTthd2FpdCByLm9uQWN0aXZhdGUobil9fXJlbmRlclZpZXcoZSx0KXtsZXQgYT10aGlzLnZpZXdzLmdldChlKTtpZighYSlyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDt0LmlubmVySFRNTD0iIjtsZXQgcixuPWEuY29udGVudDtpZih0eXBlb2Ygbj09InN0cmluZyIpcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KG4pO2Vsc2UgaWYodHlwZW9mIG49PSJmdW5jdGlvbiIpaWYobi5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClyPW5ldyBuO2Vsc2V7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixvLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IGw9bigpO2gxKGwsbykscj1vfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2V9ImApLG51bGw7cmV0dXJuIHQuYXBwZW5kQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuc2V0KGUsciksdGhpcy5jdXJyZW50Vmlld0lkPWUscn1nZXRDdXJyZW50Vmlld0lkKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZH1nZXRJbnN0YW5jZShlKXtyZXR1cm4gdGhpcy5pbnN0YW5jZXMuZ2V0KGUpfWNsZWFySW5zdGFuY2UoZSl7bGV0IHQ9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHRoaXMuaW5zdGFuY2VzLmRlbGV0ZShlKSx0aGlzLmN1cnJlbnRWaWV3SWQ9PT1lJiYodGhpcy5jdXJyZW50Vmlld0lkPW51bGwpfWNsZWFySW5zdGFuY2VzKCl7Zm9yKGxldFtlLHRdb2YgdGhpcy5pbnN0YW5jZXMpdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7dGhpcy5pbnN0YW5jZXMuY2xlYXIoKSx0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbH11bnJlZ2lzdGVyKGUpe3JldHVybiB0aGlzLmNsZWFySW5zdGFuY2UoZSksdGhpcy52aWV3cy5kZWxldGUoZSl9Y2xlYXIoKXt0aGlzLnZpZXdzLmNsZWFyKCksdGhpcy5jbGVhckluc3RhbmNlcygpfWhhcyhlKXtyZXR1cm4gdGhpcy52aWV3cy5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy52aWV3cy5zaXplfX19KTt2YXIgajNhLFYzYT1nKCgpPT57cGUoKTtqM2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1tYWlubWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tbWFpbm1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgIC5sb2dvSWNvbj0keyJsdWNpZGU6Ym94In0KICAgICAgLmxvZ29UZXh0PSR7IkFjbWUgQXBwIn0KICAgICAgLm1lbnVHcm91cHM9JHtbe3RhYnM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRhc2hib2FyZCIpLCJhY3Rpb24iKX0se2tleToiSW5ib3giLGljb25OYW1lOiJsdWNpZGU6aW5ib3giLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5ib3giKSwiYWN0aW9uIil9XX0se25hbWU6IldvcmtzcGFjZSIsdGFiczpbe2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlByb2plY3RzIiksImFjdGlvbiIpfSx7a2V5OiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUYXNrcyIpLCJhY3Rpb24iKX0se2tleToiRG9jdW1lbnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50cyIpLCJhY3Rpb24iKX1dfSx7bmFtZToiQW5hbHl0aWNzIix0YWJzOlt7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIiksImFjdGlvbiIpfSx7a2V5OiJJbnNpZ2h0cyIsaWNvbk5hbWU6Imx1Y2lkZTpsaWdodGJ1bGIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5zaWdodHMiKSwiYWN0aW9uIil9XX1dfQogICAgICAuYm90dG9tVGFicz0ke1t7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9XX0KICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEJoLEFuLFUzYSxNaXQ9ZygoKT0+e3BvKCk7bWgoKTt6bigpO3BlKCk7b3IoKTtWM2EoKTtwdCgpO0JoPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVTNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1tYWlubWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlNYWlubWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woKV0sTz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sQmgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibG9nb0ljb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sb2dvSWNvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmxvZ29JY29uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxCaCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJsb2dvVGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubG9nb1RleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLEJoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWVudUdyb3VwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm1lbnVHcm91cHMsImdldCIpLHNldDppKChTLEkpPT57Uy5tZW51R3JvdXBzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxCaCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImJvdHRvbVRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ib3R0b21UYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYm90dG9tVGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksQmgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLEJoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkVGFiImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRUYWIsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFRhYj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksQmgodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbGxhcHNlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbGxhcHNlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksQmgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1qM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Bbih0aGlzLG8sIiIpO2dldCBsb2dvSWNvbigpe3JldHVybiB0aGlzLiNlfXNldCBsb2dvSWNvbihrKXt0aGlzLiNlPWt9I3Q9KEFuKHRoaXMsbCksQW4odGhpcyxkLCIiKSk7Z2V0IGxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ29UZXh0KGspe3RoaXMuI3Q9a30jYT0oQW4odGhpcyx1KSxBbih0aGlzLGIsW10pKTtnZXQgbWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBtZW51R3JvdXBzKGspe3RoaXMuI2E9a30jcz0oQW4odGhpcyx2KSxBbih0aGlzLG0sW10pKTtnZXQgYm90dG9tVGFicygpe3JldHVybiB0aGlzLiNzfXNldCBib3R0b21UYWJzKGspe3RoaXMuI3M9a30jaT0oQW4odGhpcyxmKSxBbih0aGlzLE0sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzKGspe3RoaXMuI2k9a30jcj0oQW4odGhpcyx6KSxBbih0aGlzLEMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3I9a30jbz0oQW4odGhpcyxfKSxBbih0aGlzLCQsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNlZChrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmcpOwogICAgICAgIC0tdG9vbHRpcC1mZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHotaW5kZXg6ICR7V3IuZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29JY29uIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBNaWRkbGUgU2VjdGlvbiAoc2Nyb2xsYWJsZSkgKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubWVudUdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCb3R0b20gU2VjdGlvbiAqLwogICAgICAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7Uz0+e2thLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKFMsW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP3dgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/d2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChrPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke2submFtZT93YDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke2submFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtrLml0ZW1zLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKGs9PnRoaXMucmVuZGVyVGFiKGspKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihrKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtrPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihrKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtrLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtrLmtleX08L3NwYW4+CiAgICAgICAgJHtrLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtrLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtrLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtrLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoUz0+Uy5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKGspe3RoaXMuc2VsZWN0ZWRUYWI9ayx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjprfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBrPXRoaXMuZ2V0QWxsVGFicygpO2subGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKGtbMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxBbih0aGlzLEUpfXN0YXRpY3tBbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgVzNhLEczYT1nKCgpPT57cGUoKTtXM2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBjb2RlIHsKICAgICAgYmFja2dyb3VuZDogIzI3MjcyYTsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHVsIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAuaGVhZGluZz0keyJQcm9qZWN0cyJ9CiAgICAgIC5ncm91cHM9JHtbe25hbWU6Ik5hdmlnYXRpb24iLGljb25OYW1lOiJsdWNpZGU6Y29tcGFzcyIsaXRlbXM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIGNsaWNrZWQiKSwiYWN0aW9uIiksYmFkZ2U6MyxiYWRnZVZhcmlhbnQ6Indhcm5pbmcifSx7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMgY2xpY2tlZCIpLCJhY3Rpb24iKSxiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MifSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBOZXcgY2xpY2tlZCEiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBEYXRhIGNsaWNrZWQhIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiRGVsZXRlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGl0ZW1zPyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJEZWxldGVkISIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiU3RhdHVzIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFjdGl2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja0NpcmNsZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOmkocz0+Y29uc29sZS5sb2coIlNob3cgQWN0aXZlOiIscyksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShzPT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLHMpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6aShzPT5jb25zb2xlLmxvZygiU2VsZWN0ZWQgY2F0ZWdvcmllczoiLHMpLCJvbkNoYW5nZSIpfV19LHtuYW1lOiJSZXNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6Ym9va09wZW4iLGNvbGxhcHNlZDohMCxpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IkRvY3VtZW50YXRpb24ifSx7dHlwZToibGluayIsa2V5OiJBUEkgUmVmZXJlbmNlIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixocmVmOiJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kb2NzIn0se3R5cGU6ImxpbmsiLGtleToiVXNlciBHdWlkZSIsaWNvbk5hbWU6Imx1Y2lkZTpib29rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZ3VpZGUifSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdXBwb3J0In0se3R5cGU6ImxpbmsiLGtleToiSGVscCBDZW50ZXIiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsaHJlZjoiL2hlbHAiLGV4dGVybmFsOiExfSx7dHlwZToibGluayIsa2V5OiJHaXRIdWIgSXNzdWVzIixpY29uTmFtZToibHVjaWRlOmdpdGh1YiIsaHJlZjoiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvaXNzdWVzIn1dfV19CiAgICAgIEBpdGVtLXNlbGVjdD0ke3M9PmNvbnNvbGUubG9nKCJUYWIgc2VsZWN0ZWQ6IixzLmRldGFpbCl9CiAgICAgIEBhY3Rpb24tY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiQWN0aW9uIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgIEBmaWx0ZXItdG9nZ2xlPSR7cz0+Y29uc29sZS5sb2coIkZpbHRlciB0b2dnbGVkOiIscy5kZXRhaWwpfQogICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIk11bHRpLWZpbHRlciBjaGFuZ2VkOiIscy5kZXRhaWwpfQogICAgICBAbGluay1jbGljaz0ke3M9PmNvbnNvbGUubG9nKCJMaW5rIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+CiAgICAgIDxwPlRoaXMgZGVtbyBzaG93Y2FzZXMgYWxsIDggaXRlbSB0eXBlczo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiAtIEJsdWUgYWN0aW9ucyAoQWN0aW9ucyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IHdpdGggPGNvZGU+dmFyaWFudDogJ2Rhbmdlcic8L2NvZGU+IC0gUmVkIGRhbmdlciBhY3Rpb248L2xpPgogICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5tdWx0aUZpbHRlcjwvY29kZT4gLSBDb2xsYXBzaWJsZSBtdWx0aS1zZWxlY3QgKENhdGVnb3JpZXMpPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZGl2aWRlcjwvY29kZT4gLSBWaXN1YWwgc2VwYXJhdG9yczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmxpbms8L2NvZGU+IC0gRXh0ZXJuYWwvaW50ZXJuYWwgbGlua3MgKFJlc291cmNlcyBncm91cCk8L2xpPgogICAgICA8L3VsPgogICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGd1LFBvLEszYSx6aXQ9ZygoKT0+e3BvKCk7bWgoKTtvcigpO1VhKCk7cGUoKTtHM2EoKTtwdCgpO2d1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxQbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSzNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVNlY29uZGFyeW1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sZ3UodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJoZWFkaW5nImluIFIsImhhcyIpLGdldDppKFI9PlIuaGVhZGluZywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmhlYWRpbmc9S30sInNldCIpfSxtZXRhZGF0YTpQfSxvLGwpLGd1KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJncm91cHMiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5ncm91cHMsImdldCIpLHNldDppKChSLEspPT57Ui5ncm91cHM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLGd1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0aW9uT3B0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNlbGVjdGlvbk9wdGlvbnMsImdldCIpLHNldDppKChSLEspPT57Ui5zZWxlY3Rpb25PcHRpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxndSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0ZWRJdGVtImluIFIsImhhcyIpLGdldDppKFI9PlIuc2VsZWN0ZWRJdGVtLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2VsZWN0ZWRJdGVtPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxndSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZEdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkR3JvdXBzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkR3JvdXBzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkR3JvdXBzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxndSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZE11bHRpRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkTXVsdGlGaWx0ZXJzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxndSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlckNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InJlbmRlckNvdW50ZXIiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5yZW5kZXJDb3VudGVyLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IucmVuZGVyQ291bnRlcj1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksZ3UodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImNvbGxhcHNlZCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmNvbGxhcHNlZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksZ3UobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1XM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Qbyh0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKFApe3RoaXMuI2U9UH0jdD0oUG8odGhpcyxsKSxQbyh0aGlzLGQsW10pKTtnZXQgZ3JvdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGdyb3VwcyhQKXt0aGlzLiN0PVB9I2E9KFBvKHRoaXMsdSksUG8odGhpcyxiLFtdKSk7Z2V0IHNlbGVjdGlvbk9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0aW9uT3B0aW9ucyhQKXt0aGlzLiNhPVB9I3M9KFBvKHRoaXMsdiksUG8odGhpcyxtLG51bGwpKTtnZXQgc2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkSXRlbShQKXt0aGlzLiNzPVB9I2k9KFBvKHRoaXMsZiksUG8odGhpcyxNLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkR3JvdXBzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbGxhcHNlZEdyb3VwcyhQKXt0aGlzLiNpPVB9I3I9KFBvKHRoaXMseiksUG8odGhpcyxDLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycyhQKXt0aGlzLiNyPVB9I289KFBvKHRoaXMsXyksUG8odGhpcywkLDApKTtnZXQgcmVuZGVyQ291bnRlcigpe3JldHVybiB0aGlzLiNvfXNldCByZW5kZXJDb3VudGVyKFApe3RoaXMuI289UH0jbj0oUG8odGhpcyxFKSxQbyh0aGlzLGssITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbGxhcHNlZChQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQ6IDI0MHB4OwogICAgICAgIC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS1zaWRlYmFyLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgLS1zaWRlYmFyLWZnOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICAtLXNpZGViYXItZmctbXV0ZWQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgLS1zaWRlYmFyLWZnLWFjdGl2ZTogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tc2lkZWJhci1ib3JkZXI6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgLS1zaWRlYmFyLWhvdmVyOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICAtLXNpZGViYXItYWN0aXZlOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgLS1zaWRlYmFyLWFjY2VudDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tdG9vbHRpcC1iZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWJnKTsKICAgICAgICAtLXRvb2x0aXAtZmc6IHZhcigtLWRlZXMtY29sb3ItdG9vbHRpcC1mZyk7CgogICAgICAgIC8qIEJhZGdlIGNvbG9ycyAqLwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICAtLWJhZGdlLWRlZmF1bHQtZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1mZyk7CiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgICAtLWJhZGdlLXdhcm5pbmctYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItYmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwoKICAgICAgICAvKiBBY3Rpb24gY29sb3JzICovCiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeTogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICAgIC0tYWN0aW9uLXByaW1hcnktaG92ZXI6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzYwYTVmYSIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXI6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXItaG92ZXI6ICR7aC5iZFRoZW1lKCIjYjkxYzFjIiwiI2Y4NzE3MSIpfTsKCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZyk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGxhYmxlIE1lbnUgU2VjdGlvbiAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpob3ZlciB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIHBhZGRpbmc6IDdweCAxMXB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6bm90KC5jb2xsYXBzZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXdhcm0pOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtd2FybSk7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC13YXJtKTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLyogSGlkZSBncm91cCBoZWFkZXJzIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEdyb3VwIEl0ZW1zIENvbnRhaW5lciAqLwogICAgICAuZ3JvdXBJdGVtcyB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXJnaW4gMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBJdGVtcy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBBbHdheXMgc2hvdyBpdGVtcyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKHJlZ2FyZGxlc3Mgb2YgZ3JvdXAgY29sbGFwc2Ugc3RhdGUpICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBJdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBNZW51IEl0ZW0gQmFzZSAqLwogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5LWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNywgOTksIDIzNSwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlci1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogRmlsdGVyIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAvKiBNdWx0aS1GaWx0ZXIgQ29udGFpbmVyICovCiAgICAgIC5tdWx0aUZpbHRlciB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKi8KICAgICAgLm1lbnVEaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7CiAgICAgICAgbWFyZ2luOiA4cHggNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIvTGFiZWwgKi8KICAgICAgLm1lbnVIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUhlYWRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGluayBJdGVtICovCiAgICAgIC5tZW51SXRlbS5saW5rIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgbWVudSBpdGVtIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCwKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tdWx0aUZpbHRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC5pdGVtLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbTpob3ZlciAuaXRlbS10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOwogICAgICB9CgogICAgICAvKiBCYWRnZSBTdHlsZXMgKi8KICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMZWdhY3kgb3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLmxlZ2FjeU9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyIChsZWdhY3kpICovCiAgICAgIC5kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5ncm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeU9wdGlvbnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyR3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncm91cHMubWFwKFA9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9Imdyb3VwSGVhZGVyICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFAubmFtZSk/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlR3JvdXAoUC5uYW1lKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJncm91cFRpdGxlIj4KICAgICAgICAgICAgICAke1AuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihQLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgJHtQLm5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBJdGVtcyAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhQLm5hbWUpPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICR7UC5pdGVtcy5tYXAoUj0+dGhpcy5yZW5kZXJJdGVtKFIsUCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJJdGVtKFAsUil7aWYoImhpZGRlbiJpbiBQJiZQLmhpZGRlbilyZXR1cm4gd2BgO3N3aXRjaCgidHlwZSJpbiBQP1AudHlwZToidGFiIil7Y2FzZSJhY3Rpb24iOnJldHVybiB0aGlzLnJlbmRlckFjdGlvbkl0ZW0oUCk7Y2FzZSJmaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oUCk7Y2FzZSJtdWx0aUZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIHRoaXMucmVuZGVyRGl2aWRlcigpO2Nhc2UiaGVhZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJIZWFkZXIoUCk7Y2FzZSJsaW5rIjpyZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShQKTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oUCxSKX19cmVuZGVyVGFiSXRlbShQLFIpe2xldCBLPXRoaXMuc2VsZWN0ZWRJdGVtPy5rZXk9PT1QLmtleSxWPVAuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSAke0s/InNlbGVjdGVkIjoiIn0gJHtWPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IVYmJnRoaXMuc2VsZWN0VGFiSXRlbShQLFIpfSIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Vz0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShXLFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1AuYmFkZ2UhPT12b2lkIDA/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke1AuYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke1AuYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtQLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25JdGVtKFApe2xldCBSPVAudmFyaWFudHx8InByaW1hcnkiLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGFjdGlvbi0ke1J9ICR7Sz8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFLJiZ0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbHRlckl0ZW0oUCl7bGV0IFI9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGZpbHRlciAke1AuYWN0aXZlPyJhY3RpdmUiOiIifSAke1I/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hUiYmdGhpcy5oYW5kbGVGaWx0ZXJUb2dnbGUoUCl9IgogICAgICA+CiAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7UC5rZXl9PC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1jaGVja2JveCAke1AuYWN0aXZlPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgJHtQLmFjdGl2ZT93YDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApe2xldCBSPXRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLmhhcyhQLmtleSksSz1QLm9wdGlvbnMuZmlsdGVyKFY9PlYuY2hlY2tlZCkubGVuZ3RoO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlciI+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLWhlYWRlciAke1I/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZU11bHRpRmlsdGVyKFAua2V5KX0iCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLXRpdGxlIj4KICAgICAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke1Aua2V5fQogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgJHtLPjA/d2A8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItY291bnQiPiR7S308L3NwYW4+YDoiIn0KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9ucyAke1I/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICR7UC5vcHRpb25zLm1hcChWPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbiIKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoUCxWLmtleSl9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNoZWNrYm94ICR7Vi5jaGVja2VkPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgICAgICAgJHtWLmNoZWNrZWQ/d2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke1YuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIGNsYXNzPSJvcHRpb24taWNvbiIgLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFYuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8c3Bhbj4ke1YubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGl2aWRlcigpe3JldHVybiB3YDxkaXYgY2xhc3M9Im1lbnVEaXZpZGVyIj48L2Rpdj5gfXJlbmRlckhlYWRlcihQKXtyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51SGVhZGVyIj4ke1AubGFiZWx9PC9kaXY+YH1yZW5kZXJMaW5rSXRlbShQKXtsZXQgUj1QLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGxpbmsgJHtLPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUsmJnRoaXMuaGFuZGxlTGlua0NsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1I/d2A8ZGVlcy1pY29uIGNsYXNzPSJleHRlcm5hbC1pY29uIiAuaWNvbj0iJHsibHVjaWRlOmV4dGVybmFsTGluayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGVnYWN5T3B0aW9ucygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsZWdhY3lPcHRpb25zIj4KICAgICAgICAke3RoaXMuc2VsZWN0aW9uT3B0aW9ucy5tYXAoUD0+e2lmKCJkaXZpZGVyImluIFAmJlAuZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj5gO2xldCBSPVAsSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9uLGJhZGdlOlIuYmFkZ2UsYmFkZ2VWYXJpYW50OlIuYmFkZ2VWYXJpYW50fTtyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKEspfSl9CiAgICAgIDwvZGl2PgogICAgYH1ub3JtYWxpemVJY29uKFApe3JldHVybiBQLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9QOmBsdWNpZGU6JHtQfWB9dG9nZ2xlR3JvdXAoUCl7bGV0IFI9bmV3IFNldCh0aGlzLmNvbGxhcHNlZEdyb3Vwcyk7Ui5oYXMoUCk/Ui5kZWxldGUoUCk6Ui5hZGQoUCksdGhpcy5jb2xsYXBzZWRHcm91cHM9Un10b2dnbGVNdWx0aUZpbHRlcihQKXtsZXQgUj1uZXcgU2V0KHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzKTtSLmhhcyhQKT9SLmRlbGV0ZShQKTpSLmFkZChQKSx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1SfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXNlbGVjdFRhYkl0ZW0oUCxSKXt0aGlzLnNlbGVjdGVkSXRlbT1QLFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06UCxncm91cDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGhhbmRsZUFjdGlvbkNsaWNrKFApe1AuY29uZmlybU1lc3NhZ2UmJiF3aW5kb3cuY29uZmlybShQLmNvbmZpcm1NZXNzYWdlKXx8KGF3YWl0IFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZUZpbHRlclRvZ2dsZShQKXtsZXQgUj0hUC5hY3RpdmU7UC5hY3RpdmU9UixQLm9uVG9nZ2xlKFIpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlci10b2dnbGUiLHtkZXRhaWw6e2l0ZW06UCxhY3RpdmU6Un0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShQLFIpe2xldCBLPVAub3B0aW9ucy5maW5kKFc9Plcua2V5PT09Uik7SyYmKEsuY2hlY2tlZD0hSy5jaGVja2VkKTtsZXQgVj1QLm9wdGlvbnMuZmlsdGVyKFc9PlcuY2hlY2tlZCkubWFwKFc9Plcua2V5KTtQLm9uQ2hhbmdlKFYpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm11bHRpZmlsdGVyLWNoYW5nZSIse2RldGFpbDp7aXRlbTpQLHNlbGVjdGVkS2V5czpWfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUxpbmtDbGljayhQKXtQLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpP3dpbmRvdy5vcGVuKFAuaHJlZiwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpOndpbmRvdy5sb2NhdGlvbi5ocmVmPVAuaHJlZix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsaW5rLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGV4dE1lbnUoUCxSKXtrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhQLFt7bmFtZToiVmlldyBkZXRhaWxzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksaWNvbk5hbWU6Imx1Y2lkZTpleWUifSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIn1dKX1hc3luYyBmaXJzdFVwZGF0ZWQoUCl7aWYoYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKFApLHRoaXMuZ3JvdXBzLmxlbmd0aD4wKXtsZXQgUj1uZXcgU2V0LEs9bmV3IFNldDtpZih0aGlzLmdyb3Vwcy5mb3JFYWNoKFY9PntWLmNvbGxhcHNlZCYmUi5hZGQoVi5uYW1lKSxWLml0ZW1zLmZvckVhY2goVz0+e2lmKCJ0eXBlImluIFcmJlcudHlwZT09PSJtdWx0aUZpbHRlciIpe2xldCBtZT1XO21lLmNvbGxhcHNlZCYmSy5hZGQobWUua2V5KX19KX0pLHRoaXMuY29sbGFwc2VkR3JvdXBzPVIsdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9SywhdGhpcy5zZWxlY3RlZEl0ZW0pZm9yKGxldCBWIG9mIHRoaXMuZ3JvdXBzKWZvcihsZXQgVyBvZiBWLml0ZW1zKXtsZXQgbWU9InR5cGUiaW4gVz9XLnR5cGU6InRhYiI7aWYobWU9PT0idGFiInx8bWU9PT12b2lkIDApe2xldCBCPVc7aWYoIUIuZGlzYWJsZWQpe3RoaXMuc2VsZWN0VGFiSXRlbShCLFYpO3JldHVybn19fX1lbHNlIGlmKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGg+MCl7bGV0IFI9dGhpcy5zZWxlY3Rpb25PcHRpb25zLmZpbmQoSz0+ISgiZGl2aWRlciJpbiBLKSk7aWYoUiYmIXRoaXMuc2VsZWN0ZWRJdGVtKXtsZXQgSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9ufTt0aGlzLnNlbGVjdFRhYkl0ZW0oSyl9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUG8odGhpcyxTKX1zdGF0aWN7UG8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIGdnLFVjLF91byxNdW8sWTNhLFozYT1nKCgpPT57cGUoKTttaCgpO2dnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxVYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX3VvPSgoKT0+e2xldCBzPVtuZSgiZGVtby1jbG9zZWFibGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQ2xvc2VhYmxlVGFicyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxnZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InRhYnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50YWJzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YudGFicz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZ2codGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ0YWJDb3VudGVyImluIHYsImhhcyIpLGdldDppKHY9PnYudGFiQ291bnRlciwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnRhYkNvdW50ZXI9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGdnKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9I2U9VWModGhpcyxvLFt7a2V5OiJNYWluIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWFpbiBjbGlja2VkIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoYil7dGhpcy4jZT1ifSN0PShVYyh0aGlzLGwpLFVjKHRoaXMsZCwwKSk7Z2V0IHRhYkNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGFiQ291bnRlcihiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTthZGRUYWIoKXt0aGlzLnRhYkNvdW50ZXIrKztsZXQgYj1gRG9jdW1lbnQgJHt0aGlzLnRhYkNvdW50ZXJ9YDt0aGlzLnRhYnM9Wy4uLnRoaXMudGFicyx7a2V5OmIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYCR7Yn0gY2xpY2tlZGApLCJhY3Rpb24iKSxjbG9zZWFibGU6ITAsb25DbG9zZTppKCgpPT50aGlzLnJlbW92ZVRhYihiKSwib25DbG9zZSIpfV19cmVtb3ZlVGFiKGIpe3RoaXMudGFicz10aGlzLnRhYnMuZmlsdGVyKHY9PnYua2V5IT09Yil9Y2xlYXJBbGwoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS10YWJzIik/LmNsZWFyKCksdGhpcy50YWJzPVtdLHRoaXMudGFiQ291bnRlcj0wfXJlbmRlcigpe2xldCBiPVt7aWQ6ImFkZCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+dGhpcy5hZGRUYWIoKSwiYWN0aW9uIiksdG9vbHRpcDoiTmV3IFRhYiJ9LHtpZDoiY2xlYXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aSgoKT0+dGhpcy5jbGVhckFsbCgpLCJhY3Rpb24iKSx0b29sdGlwOiJDbGVhciBBbGwgVGFicyJ9XTtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtifQogICAgICAgIEB0YWItY2xvc2U9JHt2PT50aGlzLnJlbW92ZVRhYih2LmRldGFpbC50YWIua2V5KX0KICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBDbGljayB0aGUgWCBidXR0b24gb24gdGFicyB0byBjbG9zZSB0aGVtLiBVc2UgdGhlICsgYnV0dG9uIHRvIGFkZCB0YWJzIGFuZCB0aGUgdHJhc2ggYnV0dG9uIHRvIGNsZWFyIGFsbC4KICAgICAgICA8YnI+Q3VycmVudCB0YWJzOiAke3RoaXMudGFicy5sZW5ndGh9CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVWModGhpcyx1KX1zdGF0aWN7VWMoYSx0KX19O3JldHVybiBjPWF9KSgpLE11bz0oKCk9PntsZXQgcz1bbmUoImRlbW8tYXV0b2hpZGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQXV0b0hpZGVUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0sZ2codGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0YWJzImluIGYsImhhcyIpLGdldDppKGY9PmYudGFicywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRhYnM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLGdnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImF1dG9IaWRlImluIGYsImhhcyIpLGdldDppKGY9PmYuYXV0b0hpZGUsImdldCIpLHNldDppKChmLHkpPT57Zi5hdXRvSGlkZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksZ2codGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InRocmVzaG9sZCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRocmVzaG9sZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksZ2cobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX0jZT1VYyh0aGlzLG8sW3trZXk6IlRhYiAxIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDEiKSwiYWN0aW9uIil9LHtrZXk6IlRhYiAyIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDIiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhtKXt0aGlzLiNlPW19I3Q9KFVjKHRoaXMsbCksVWModGhpcyxkLCEwKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGF1dG9IaWRlKG0pe3RoaXMuI3Q9bX0jYT0oVWModGhpcyx1KSxVYyh0aGlzLGIsMSkpO2dldCB0aHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGhyZXNob2xkKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgZGVlcy1hcHB1aS10YWJzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAucGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTt0YWJDb3VudGVyPShVYyh0aGlzLHYpLDIpO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrLHRoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6YFRhYiAke3RoaXMudGFiQ291bnRlcn1gLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCksImFjdGlvbiIpfV19cmVtb3ZlTGFzdFRhYigpe3RoaXMudGFicy5sZW5ndGg+MCYmKHRoaXMudGFicz10aGlzLnRhYnMuc2xpY2UoMCwtMSkpfWNsZWFyVGFicygpe3RoaXMudGFicz1bXX1yZW5kZXIoKXtsZXQgbT10aGlzLmF1dG9IaWRlJiZ0aGlzLnRhYnMubGVuZ3RoPD10aGlzLnRocmVzaG9sZDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICR7bT93YDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlciI+VGFicyBoaWRkZW4gKCR7dGhpcy50YWJzLmxlbmd0aH0gdGFicyDiiaQgdGhyZXNob2xkICR7dGhpcy50aHJlc2hvbGR9KTwvc3Bhbj5gOndgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgICAgICAgIC5hdXRvSGlkZT0ke3RoaXMuYXV0b0hpZGV9CiAgICAgICAgICAgICAgLmF1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy50aHJlc2hvbGR9CiAgICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz5gfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkVGFiKCl9PisgQWRkIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTGFzdFRhYigpfT4tIFJlbW92ZSBUYWI8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmNsZWFyVGFicygpfT5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9MH19PlRocmVzaG9sZDogMDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0xfX0+VGhyZXNob2xkOiAxPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTJ9fT5UaHJlc2hvbGQ6IDI8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIEF1dG8taGlkZTogJHt0aGlzLmF1dG9IaWRlPyJPTiI6Ik9GRiJ9IHwgVGhyZXNob2xkOiAke3RoaXMudGhyZXNob2xkfSB8IFRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgICA8YnI+VGFicyB3aWxsIGhpZGUgd2hlbiBjb3VudCDiiaQgdGhyZXNob2xkLgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1VjKGEsdCl9fTtyZXR1cm4geD1hfSkoKSxZM2E9aSgoKT0+e2xldCBzPVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSG9tZSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGU9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZWN1cml0eSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbnRlZ3JhdGlvbnMgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBZHZhbmNlZCBjbGlja2VkIiksImFjdGlvbiIpfV0sdD1be2tleToiQWxsIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFsbCBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb21wbGV0ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tpZDoiYmFjayIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0xlZnQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQmFjayIpLCJhY3Rpb24iKSx0b29sdGlwOiJHbyBCYWNrIn1dLHI9W3tpZDoiYWRkIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWRkIHRhYiIpLCJhY3Rpb24iKSx0b29sdGlwOiJOZXcgVGFiIn0se2lkOiJzZWFyY2giLGljb25OYW1lOiJsdWNpZGU6c2VhcmNoIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNlYXJjaCIpLCJhY3Rpb24iKSx0b29sdGlwOiJTZWFyY2ggVGFicyJ9LHtpZDoiZGlzYWJsZWQiLGljb25OYW1lOiJsdWNpZGU6bG9jayIsYWN0aW9uOmkoKCk9Pnt9LCJhY3Rpb24iKSx0b29sdGlwOiJEaXNhYmxlZCBBY3Rpb24iLGRpc2FibGVkOiEwfV0sbj1pKG89PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OyI+CiAgICAgICR7b30KICAgIDwvZGl2PgogIGAsImRlbW9Db250ZW50Iik7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnR3by1jb2x1bW4gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMDBweCAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SG9yaXpvbnRhbCBUYWJzIHdpdGggQW5pbWF0ZWQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFicz0ke3N9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7bigiU2VsZWN0IGEgdGFiIHRvIHNlZSB0aGUgc21vb3RoIHNsaWRpbmcgYW5pbWF0aW9uIG9mIHRoZSBpbmRpY2F0b3IuIFRoZSBpbmRpY2F0b3IgYXV0b21hdGljYWxseSBhZGp1c3RzIGl0cyB3aWR0aCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgd2l0aCBtaW5pbWFsIHBhZGRpbmcuIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VGFicyB3aXRoIEFjdGlvbiBCdXR0b25zPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgLnRhYnM9JHtzfQogICAgICAgICAgLmFjdGlvbnNMZWZ0PSR7YX0KICAgICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtyfQogICAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke24oIkFjdGlvbiBidXR0b25zIGNhbiBiZSBwbGFjZWQgb24gZWl0aGVyIHNpZGUgb2YgdGhlIHRhYiBiYXIuIFRoZXkgcmVtYWluIGZpeGVkIHdoaWxlIHRhYnMgc2Nyb2xsLiBUaGUgbG9jayBpY29uIHNob3dzIGEgZGlzYWJsZWQgYWN0aW9uLiIpfQogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsb3NlYWJsZSBUYWJzIHdpdGggQWN0aW9uczwvZGl2PgogICAgICAgIDxkZW1vLWNsb3NlYWJsZS10YWJzPjwvZGVtby1jbG9zZWFibGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdXRvLWhpZGUgVGFiczwvZGl2PgogICAgICAgIDxkZW1vLWF1dG9oaWRlLXRhYnM+PC9kZW1vLWF1dG9oaWRlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmVydGljYWwgVGFicyBMYXlvdXQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0d28tY29sdW1uIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnRhYlN0eWxlPSR7InZlcnRpY2FsIn0gLnRhYnM9JHtlfT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAgICR7bigiVmVydGljYWwgdGFicyB3b3JrIGdyZWF0IGZvciBzZXR0aW5ncyBwYWdlcyBhbmQgbmF2aWdhdGlvbiBtZW51cy4gVGhlIGFuaW1hdGVkIGluZGljYXRvciBzbW9vdGhseSB0cmFuc2l0aW9ucyBiZXR3ZWVuIHNlbGVjdGlvbnMuIil9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+V2l0aG91dCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC5zaG93VGFiSW5kaWNhdG9yPSR7ITF9IC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtuKCJUYWJzIGNhbiBhbHNvIGJlIHVzZWQgd2l0aG91dCB0aGUgYW5pbWF0ZWQgaW5kaWNhdG9yIGJ5IHNldHRpbmcgc2hvd1RhYkluZGljYXRvciB0byBmYWxzZS4iKX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBvMixwcixYM2EsQ2l0PWcoKCk9PnttaCgpO3BlKCk7a3QoKTtaM2EoKTtwdCgpO28yPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxwcj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWDNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS10YWJzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6QXJyYXl9KV0sSD1bTCh7dHlwZTpBcnJheX0pXSxJPVtZKCldLEs9W1koKV0sbzIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0YWJzImluIFUsImhhcyIpLGdldDppKFU9PlUudGFicywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50YWJzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksbzIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2VsZWN0ZWRUYWIiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zZWxlY3RlZFRhYj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLG8yKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkluZGljYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2hvd1RhYkluZGljYXRvciJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnNob3dUYWJJbmRpY2F0b3IsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2hvd1RhYkluZGljYXRvcj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxiLHYpLG8yKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiU3R5bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InRhYlN0eWxlImluIFUsImhhcyIpLGdldDppKFU9PlUudGFiU3R5bGUsImdldCIpLHNldDppKChVLGhlKT0+e1UudGFiU3R5bGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbSxmKSxvMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJhdXRvSGlkZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmF1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmF1dG9IaWRlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksbzIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYXV0b0hpZGVUaHJlc2hvbGQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5hdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5hdXRvSGlkZVRocmVzaG9sZD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLG8yKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImFjdGlvbnNMZWZ0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc0xlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuYWN0aW9uc0xlZnQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sJCxFKSxvMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYWN0aW9uc1JpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmFjdGlvbnNSaWdodD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLG8yKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iY2FuU2Nyb2xsTGVmdCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmNhblNjcm9sbExlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsTGVmdD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLG8yKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImNhblNjcm9sbFJpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuY2FuU2Nyb2xsUmlnaHQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsUmlnaHQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sVixXKSxvMihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpCfSxudWxsLHQpLG1lPWE9ZS52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX1zdGF0aWMgZGVtbz1ZM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1wcih0aGlzLG8sW10pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoQil7dGhpcy4jZT1CfSN0PShwcih0aGlzLGwpLHByKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKEIpe3RoaXMuI3Q9Qn0jYT0ocHIodGhpcyx1KSxwcih0aGlzLGIsITApKTtnZXQgc2hvd1RhYkluZGljYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFiSW5kaWNhdG9yKEIpe3RoaXMuI2E9Qn0jcz0ocHIodGhpcyx2KSxwcih0aGlzLG0sImhvcml6b250YWwiKSk7Z2V0IHRhYlN0eWxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRhYlN0eWxlKEIpe3RoaXMuI3M9Qn0jaT0ocHIodGhpcyxmKSxwcih0aGlzLE0sITEpKTtnZXQgYXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b0hpZGUoQil7dGhpcy4jaT1CfSNyPShwcih0aGlzLHopLHByKHRoaXMsQywwKSk7Z2V0IGF1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGF1dG9IaWRlVGhyZXNob2xkKEIpe3RoaXMuI3I9Qn0jbz0ocHIodGhpcyxfKSxwcih0aGlzLCQsW10pKTtnZXQgYWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aW9uc0xlZnQoQil7dGhpcy4jbz1CfSNuPShwcih0aGlzLEUpLHByKHRoaXMsayxbXSkpO2dldCBhY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWN0aW9uc1JpZ2h0KEIpe3RoaXMuI249Qn0jbD0ocHIodGhpcyxTKSxwcih0aGlzLFAsITEpKTtnZXQgY2FuU2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLiNsfXNldCBjYW5TY3JvbGxMZWZ0KEIpe3RoaXMuI2w9Qn0jYz0ocHIodGhpcyxSKSxwcih0aGlzLFYsITEpKTtnZXQgY2FuU2Nyb2xsUmlnaHQoKXtyZXR1cm4gdGhpcy4jY31zZXQgY2FuU2Nyb2xsUmlnaHQoQil7dGhpcy4jYz1CfXJlc2l6ZU9ic2VydmVyPShwcih0aGlzLFcpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyLmhvcml6b250YWwtd3JhcHBlciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsIGZhZGUgaW5kaWNhdG9ycyAqLwogICAgICAuc2Nyb2xsLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAxcHg7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLWxlZnQgewogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtcmlnaHQgewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUudmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1hcmVhIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAvKiBUYWIgYWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLnRhYi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9ucy5sZWZ0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbnMucmlnaHQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXByZXNzZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogU2hvdyBzY3JvbGxiYXIgb24gaG92ZXIgKi8KICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwKICAgICAgLnNjcm9sbC1hcmVhOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9OwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMzUpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjM1KSIpfTsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIudmVydGljYWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLmhvcml6b250YWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI0NCwgMjQ0LCAyNDUsIDAuNSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuNSkiKX07CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAudGFiSW5kaWNhdG9yIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CiAgICAgIAogICAgICAudGFiSW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogICAgICAgIHotaW5kZXg6IDM7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIC50YWJJbmRpY2F0b3IgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCk7CiAgICAgIH0KCiAgICAgIC8qIENsb3NlIGJ1dHRvbiAqLwogICAgICAudGFiLWNsb3NlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1wcmVzc2VkKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMuYXV0b0hpZGVUaHJlc2hvbGQ/d2BgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfQogICAgYH1yZW5kZXJUYWJzV3JhcHBlcigpe2xldCBCPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCIsVT1CPyJ0YWJzLXdyYXBwZXIgaG9yaXpvbnRhbC13cmFwcGVyIjoidmVydGljYWwtd3JhcHBlciIsaGU9YHRhYnNDb250YWluZXIgJHt0aGlzLnRhYlN0eWxlfWA7aWYoQil7bGV0IEY9dGhpcy5hY3Rpb25zTGVmdCYmdGhpcy5hY3Rpb25zTGVmdC5sZW5ndGg+MCxqPXRoaXMuYWN0aW9uc1JpZ2h0JiZ0aGlzLmFjdGlvbnNSaWdodC5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICAgICR7Rj90aGlzLnJlbmRlckFjdGlvbnModGhpcy5hY3Rpb25zTGVmdCwibGVmdCIpOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWFyZWEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1sZWZ0ICR7dGhpcy5jYW5TY3JvbGxMZWZ0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgICAke3RoaXMudGFicy5tYXAodWU9PnRoaXMucmVuZGVyVGFiKHVlLEIpKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1mYWRlIHNjcm9sbC1mYWRlLXJpZ2h0ICR7dGhpcy5jYW5TY3JvbGxSaWdodD8idmlzaWJsZSI6IiJ9Ij48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtqP3RoaXMucmVuZGVyQWN0aW9ucyh0aGlzLmFjdGlvbnNSaWdodCwicmlnaHQiKToiIn0KICAgICAgICAgICR7dGhpcy5zaG93VGFiSW5kaWNhdG9yP3dgPGRpdiBjbGFzcz0idGFiSW5kaWNhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoRj0+dGhpcy5yZW5kZXJUYWIoRixCKSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25zKEIsVSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb25zICR7VX0iPgogICAgICAgICR7Qi5tYXAoaGU9PndgCiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWItYWN0aW9uLWJ1dHRvbiAke2hlLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0aXRsZT0iJHtoZS50b29sdGlwfHxoZS5pZH0iCiAgICAgICAgICAgIEBjbGljaz0keygpPT4haGUuZGlzYWJsZWQmJmhlLmFjdGlvbigpfQogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7aGUuaWNvbk5hbWV9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoQixVKXtsZXQgRj1gdGFiICR7Qj09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn1gLGo9Qi5jbG9zZWFibGU/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSIke2xlPT50aGlzLmNsb3NlVGFiKGxlLEIpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48L2RlZXMtaWNvbj4KICAgICAgPC9zcGFuPgogICAgYDoiIix1ZT1VP3dgCiAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY29udGVudCI+CiAgICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oQil9CiAgICAgICAgJHtCLmtleX0KICAgICAgPC9zcGFuPgogICAgICAke2p9CiAgICBgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKEIpfQogICAgICAke0Iua2V5fQogICAgICAke2p9CiAgICBgO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IiR7Rn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdFRhYihCKX0iCiAgICAgID4KICAgICAgICAke3VlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGFiSWNvbihCKXtyZXR1cm4gQi5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtCLmljb25OYW1lfT48L2RlZXMtaWNvbj5gOiIifXNlbGVjdFRhYihCKXt0aGlzLnNlbGVjdGVkVGFiPUIsQi5hY3Rpb24oKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNjcm9sbFRhYkludG9WaWV3KEIpfSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOkJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xlYXIoKXt0aGlzLnRhYnM9W10sdGhpcy5zZWxlY3RlZFRhYj1udWxsfWNsb3NlVGFiKEIsVSl7Qi5zdG9wUHJvcGFnYXRpb24oKSxVLm9uQ2xvc2UmJlUub25DbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDp7dGFiOlV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjt0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pO2xldCBCPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpO0ImJnRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShCKX1oYW5kbGVTY3JvbGw9aSgoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0sImhhbmRsZVNjcm9sbCIpO3VwZGF0ZVNjcm9sbFN0YXRlKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7aWYoIUIpcmV0dXJuO2xldCBVPUIuc2Nyb2xsTGVmdCxoZT1CLnNjcm9sbFdpZHRoLEY9Qi5jbGllbnRXaWR0aCxqPTI7dGhpcy5jYW5TY3JvbGxMZWZ0PVU+aix0aGlzLmNhblNjcm9sbFJpZ2h0PVU8aGUtRi1qfXNjcm9sbFRhYkludG9WaWV3KEIpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO2xldCBVPXRoaXMudGFicy5pbmRleE9mKEIpO2lmKFU9PT0tMSlyZXR1cm47bGV0IGhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpLEY9aGU/LnF1ZXJ5U2VsZWN0b3IoYC50YWI6bnRoLWNoaWxkKCR7VSsxfSlgKTtpZihGJiZoZSl7bGV0IGo9aGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdWU9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1ZS5sZWZ0Pj1qLmxlZnQmJnVlLnJpZ2h0PD1qLnJpZ2h0fHxGLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfX1hc3luYyB1cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksQi5oYXMoInRhYnMiKSYmKCF0aGlzLnRhYnN8fHRoaXMudGFicy5sZW5ndGg9PT0wP3RoaXMuc2VsZWN0ZWRUYWIhPT1udWxsJiYodGhpcy5zZWxlY3RlZFRhYj1udWxsLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpudWxsfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKTp0aGlzLnNlbGVjdGVkVGFiJiYhdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpP3RoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSk6dGhpcy5zZWxlY3RlZFRhYnx8dGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKSksKEIuaGFzKCJzZWxlY3RlZFRhYiIpfHxCLmhhcygidGFicyIpKSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsIXRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQmJmRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVRhYkluZGljYXRvcigpLHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pKX1pbmRpY2F0b3JJbml0aWFsaXplZD0hMTt1cGRhdGVUYWJJbmRpY2F0b3IoKXtpZighdGhpcy5zaG91bGRTaG93SW5kaWNhdG9yKCkpcmV0dXJuO2xldCBCPXRoaXMuZ2V0U2VsZWN0ZWRUYWJFbGVtZW50KCk7aWYoIUIpcmV0dXJuO2xldCBVPXRoaXMuZ2V0SW5kaWNhdG9yRWxlbWVudCgpO1UmJih0aGlzLmhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKFUpLHRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/dGhpcy51cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKFUsQik6dGhpcy51cGRhdGVWZXJ0aWNhbEluZGljYXRvcihVLEIpLFUuc3R5bGUub3BhY2l0eT0iMSIpfXNob3VsZFNob3dJbmRpY2F0b3IoKXtyZXR1cm4hIXRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2hvd1RhYkluZGljYXRvciYmdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpfWdldFNlbGVjdGVkVGFiRWxlbWVudCgpe2xldCBCPXRoaXMudGFicy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRUYWIpLGhlPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/YC50YWJzLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtCKzF9KWA6YC52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7QisxfSlgO3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihoZSl9Z2V0SW5kaWNhdG9yRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRhYkluZGljYXRvciIpfWhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKEIpe3RoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChCLmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntCLmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKX11cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPVUucXVlcnlTZWxlY3RvcigiLnRhYi1jb250ZW50Iik7aWYoIWhlKXJldHVybjtsZXQgRj1CLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaj1oZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1ZT1qLmxlZnQtRi5sZWZ0LGxlPWoud2lkdGgrOCxRPXVlLTQ7Qi5zdHlsZS53aWR0aD1gJHtsZX1weGAsQi5zdHlsZS5sZWZ0PWAke1F9cHhgfXVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciIpO2hlJiYoQi5zdHlsZS50b3A9YCR7VS5vZmZzZXRUb3AraGUub2Zmc2V0VG9wfXB4YCxCLnN0eWxlLmhlaWdodD1gJHtVLmNsaWVudEhlaWdodH1weGApfXN0YXRpY3twcihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIEhoLE5uLFEzYSxUaXQ9ZygoKT0+e21oKCk7cGUoKTtrdCgpO0NpdCgpO3B0KCk7SGg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE5uPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxRM2E9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLW1haW5jb250ZW50IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aU1haW5jb250ZW50Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpBcnJheX0pXSxIaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksSGgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0ZWRUYWIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkVGFiPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxIaCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaG93VGFicyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNob3dUYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLEhoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGUsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLEhoKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLEhoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNMZWZ0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGFiQWN0aW9uc0xlZnQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJBY3Rpb25zTGVmdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksSGgodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJBY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNSaWdodCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkFjdGlvbnNSaWdodD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksSGgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgLnRhYnM9JHtbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyIpLCJhY3Rpb24iKX0se2tleToiRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRldGFpbHMiKSwiYWN0aW9uIil9LHtrZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfV19CiAgICA+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjOyI+CiAgICAgICAgPGgxPk1haW4gQ29udGVudCBBcmVhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9Tm4odGhpcyxvLFt7a2V5OiJcdTI2QTBcdUZFMEYgUGxlYXNlIHNldCB0YWJzIixhY3Rpb246aSgoKT0+Y29uc29sZS53YXJuKCJObyB0YWJzIGNvbmZpZ3VyZWQgZm9yIG1haW5jb250ZW50IiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoayl7dGhpcy4jZT1rfSN0PShObih0aGlzLGwpLE5uKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3Q9a30jYT0oTm4odGhpcyx1KSxObih0aGlzLGIsITApKTtnZXQgc2hvd1RhYnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1RhYnMoayl7dGhpcy4jYT1rfSNzPShObih0aGlzLHYpLE5uKHRoaXMsbSwhMSkpO2dldCB0YWJzQXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFic0F1dG9IaWRlKGspe3RoaXMuI3M9a30jaT0oTm4odGhpcyxmKSxObih0aGlzLE0sMCkpO2dldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFic0F1dG9IaWRlVGhyZXNob2xkKGspe3RoaXMuI2k9a30jcj0oTm4odGhpcyx6KSxObih0aGlzLEMsW10pKTtnZXQgdGFiQWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGFiQWN0aW9uc0xlZnQoayl7dGhpcy4jcj1rfSNvPShObih0aGlzLF8pLE5uKHRoaXMsJCxbXSkpO2dldCB0YWJBY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdGFiQWN0aW9uc1JpZ2h0KGspe3RoaXMuI289a31zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHt0aGlzLnRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7dGhpcy50YWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7az0+dGhpcy5oYW5kbGVUYWJTZWxlY3Qoayl9CiAgICAgICAgICAgIEB0YWItY2xvc2U9JHtrPT50aGlzLmhhbmRsZVRhYkNsb3NlKGspfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVUYWJTZWxlY3Qoayl7dGhpcy5zZWxlY3RlZFRhYj1rLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhYkNsb3NlKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSxrLmhhcygic2hvd1RhYnMiKSYmKHRoaXMuc2hvd1RhYnM/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm5vdGFicyIpOnRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKSl9YXN5bmMgZmlyc3RVcGRhdGVkKGspe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChrKSx0aGlzLnNob3dUYWJzfHx0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIik7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpO1MmJmF3YWl0IFMudXBkYXRlQ29tcGxldGV9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE5uKHRoaXMsRSl9c3RhdGlje05uKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBPYSx6dCxKM2EsZWZhPWcoKCk9PntwZSgpO2t0KCk7bWgoKTtxM2EoKTtwdCgpO19pdCgpO0RldCgpO0VldCgpO01pdCgpO3ppdCgpO1RpdCgpO01ldCgpO09hPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6dD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSjNhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdLGFpLHplPVtdLHhlPVtdLE5lLHh0PVtdLE1hPVtdLE5yLGZlPVtdLHJlPVtdLFNlLE9lPVtdLEplPVtdLHphLGRhPVtdLHdzPVtdLGtpLEppPVtdLFJyPVtdLFNpLHZuPVtdLHIxPVtdLG8xLG4xPVtdLGwxPVtdLGMxLGQxPVtdLHUxPVtdO3ZhciBwMT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpPYmplY3R9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sST1bTCh7dHlwZTpTdHJpbmd9KV0sSz1bTCh7dHlwZTpBcnJheX0pXSxtZT1bTCh7dHlwZTpBcnJheX0pXSxoZT1bTCh7dHlwZTpBcnJheX0pXSx1ZT1bTCh7dHlwZTpPYmplY3R9KV0saWU9W0woe3R5cGU6U3RyaW5nfSldLGtlPVtMKHt0eXBlOkFycmF5fSldLHllPVtMKHt0eXBlOk9iamVjdH0pXSxzZT1bTCh7dHlwZTpCb29sZWFufSldLFRlPVtMKHt0eXBlOkJvb2xlYW59KV0sR2U9W0woe3R5cGU6Qm9vbGVhbn0pXSxDZT1bTCh7dHlwZTpCb29sZWFufSldLEVlPVtMKHt0eXBlOkJvb2xlYW59KV0sc3Q9W0woe3R5cGU6Qm9vbGVhbn0pXSxJZT1bTCh7dHlwZTpOdW1iZXJ9KV0sTGU9W1koKV0sb3Q9W1koKV0samE9W0woe3R5cGU6QXJyYXl9KV0seWE9W0woe3R5cGU6T2JqZWN0fSldLHBzPVtMKHt0eXBlOkFycmF5fSldLGFpPVtMKHt0eXBlOkFycmF5fSldLE5lPVtZKCldLE5yPVtZKCldLFNlPVtZKCldLHphPVtZKCldLGtpPVtZKCldLFNpPVtZKCldLG8xPVtZKCldLGMxPVtZKCldLE9hKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJNZW51SXRlbXMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJNZW51SXRlbXM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLE9hKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhckJyZWFkY3J1bWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYnMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJCcmVhZGNydW1icz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGQsdSksT2EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I9R30sInNldCIpfSxtZXRhZGF0YTpEfSxiLHYpLE9hKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxtLGYpLE9hKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyVXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYXBwYmFyVXNlciJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFwcGJhclVzZXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJVc2VyPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTSx6KSxPYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJQcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXyksT2EodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93U2VhcmNoImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyU2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhclNob3dTZWFyY2g9R30sInNldCIpfSxtZXRhZGF0YTpEfSwkLEUpLE9hKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVMb2dvSWNvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51TG9nb0ljb24sImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudUxvZ29JY29uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sayxTKSxPYSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51TG9nb1RleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVMb2dvVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFAsUiksT2EodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVHcm91cHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVixXKSxPYSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51Qm90dG9tVGFicyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Qm90dG9tVGFicywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51Qm90dG9tVGFicz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSksT2EodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudVRhYnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVRhYnMsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudVRhYnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLE9hKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGxlLFEpLE9hKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVIZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51SGVhZGluZyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVIZWFkaW5nLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudUhlYWRpbmc9R30sInNldCIpfSxtZXRhZGF0YTpEfSx0ZSxlZSksT2EodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUdyb3VwcyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVHcm91cHMsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sWCxaKSxPYSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09R30sInNldCIpfSxtZXRhZGF0YTpEfSxxLEEpLE9hKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Q29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVDb2xsYXBzZWQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvZSxhZSksT2EodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVDb2xsYXBzZWQsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUmUsQmUpLE9hKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVWaXNpYmxlImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLE9hKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51VmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudVZpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2ZSxiZSksT2EodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5jb250ZW50VGFic1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudFRhYnNWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0samUsV2UpLE9hKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb250ZW50VGFic0F1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29udGVudFRhYnNBdXRvSGlkZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LE1lLGdlKSxPYSh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxjZSxkZSksT2EodGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhY3Rpdml0eUxvZ1Zpc2libGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hY3Rpdml0eUxvZ1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ1Zpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxLZSxZZSksT2EodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ0NvdW50PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLE9hKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnRUYWJzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRUYWJzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLE9hKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWluY29udGVudFNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxPYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJBY3Rpb25zTGVmdCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmNvbnRlbnRUYWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zTGVmdD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LG5zLHRpKSxPYSh0aGlzLG51bGwsYWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0ImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSksT2EodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXI9R30sInNldCIpfSxtZXRhZGF0YTpEfSx4dCxNYSksT2EodGhpcyxudWxsLE5yLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnUsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxPYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxPZSxKZSksT2EodGhpcyxudWxsLHphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnQsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxPYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eWxvZ0VsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFjdGl2aXR5bG9nRWxlbWVudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5bG9nRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFjdGl2aXR5bG9nRWxlbWVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEppLFJyKSxPYSh0aGlzLG51bGwsU2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJib3R0b21iYXJFbGVtZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQuYm90dG9tYmFyRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmJvdHRvbWJhckVsZW1lbnQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2bixyMSksT2EodGhpcyxudWxsLG8xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYm90dG9tYmFyVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmJvdHRvbWJhclZpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5ib3R0b21iYXJWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLE9hKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjdXJyZW50VmlldyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY3VycmVudFZpZXc9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSksT2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89SDNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07dmlld0xpZmVjeWNsZSQ9bmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3ZpZXdDaGFuZ2VkJD1uZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7I2U9enQodGhpcyxvLFtdKTtnZXQgYXBwYmFyTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcGJhck1lbnVJdGVtcyhEKXt0aGlzLiNlPUR9I3Q9KHp0KHRoaXMsbCksenQodGhpcyxkLCIiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFwcGJhckJyZWFkY3J1bWJzKEQpe3RoaXMuI3Q9RH0jYT0oenQodGhpcyx1KSx6dCh0aGlzLGIsIiA+ICIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKEQpe3RoaXMuI2E9RH0jcz0oenQodGhpcyx2KSx6dCh0aGlzLG0sITApKTtnZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scyhEKXt0aGlzLiNzPUR9I2k9KHp0KHRoaXMsZiksenQodGhpcyxNLHZvaWQgMCkpO2dldCBhcHBiYXJVc2VyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFwcGJhclVzZXIoRCl7dGhpcy4jaT1EfSNyPSh6dCh0aGlzLHopLHp0KHRoaXMsQyxbXSkpO2dldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoRCl7dGhpcy4jcj1EfSNvPSh6dCh0aGlzLF8pLHp0KHRoaXMsJCwhMSkpO2dldCBhcHBiYXJTaG93U2VhcmNoKCl7cmV0dXJuIHRoaXMuI299c2V0IGFwcGJhclNob3dTZWFyY2goRCl7dGhpcy4jbz1EfSNuPSh6dCh0aGlzLEUpLHp0KHRoaXMsaywiIikpO2dldCBtYWlubWVudUxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI259c2V0IG1haW5tZW51TG9nb0ljb24oRCl7dGhpcy4jbj1EfSNsPSh6dCh0aGlzLFMpLHp0KHRoaXMsUCwiIikpO2dldCBtYWlubWVudUxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1haW5tZW51TG9nb1RleHQoRCl7dGhpcy4jbD1EfSNjPSh6dCh0aGlzLFIpLHp0KHRoaXMsVixbXSkpO2dldCBtYWlubWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNjfXNldCBtYWlubWVudUdyb3VwcyhEKXt0aGlzLiNjPUR9I2Q9KHp0KHRoaXMsVyksenQodGhpcyxCLFtdKSk7Z2V0IG1haW5tZW51Qm90dG9tVGFicygpe3JldHVybiB0aGlzLiNkfXNldCBtYWlubWVudUJvdHRvbVRhYnMoRCl7dGhpcy4jZD1EfSN1PSh6dCh0aGlzLFUpLHp0KHRoaXMsRixbXSkpO2dldCBtYWlubWVudVRhYnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbWFpbm1lbnVUYWJzKEQpe3RoaXMuI3U9RH0jcD0oenQodGhpcyxqKSx6dCh0aGlzLGxlLHZvaWQgMCkpO2dldCBtYWlubWVudVNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoRCl7dGhpcy4jcD1EfSNoPSh6dCh0aGlzLFEpLHp0KHRoaXMsdGUsIiIpKTtnZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoRCl7dGhpcy4jaD1EfSNmPSh6dCh0aGlzLGVlKSx6dCh0aGlzLFgsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNmfXNldCBzZWNvbmRhcnltZW51R3JvdXBzKEQpe3RoaXMuI2Y9RH0jbT0oenQodGhpcyxaKSx6dCh0aGlzLHEsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbShEKXt0aGlzLiNtPUR9I2c9KHp0KHRoaXMsQSksenQodGhpcyxvZSwhMSkpO2dldCBtYWlubWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNnfXNldCBtYWlubWVudUNvbGxhcHNlZChEKXt0aGlzLiNnPUR9I2I9KHp0KHRoaXMsYWUpLHp0KHRoaXMsUmUsITEpKTtnZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNifXNldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKEQpe3RoaXMuI2I9RH0jdj0oenQodGhpcyxCZSksenQodGhpcyxEZSwhMCkpO2dldCBtYWlubWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbWFpbm1lbnVWaXNpYmxlKEQpe3RoaXMuI3Y9RH0jeD0oenQodGhpcyxfZSksenQodGhpcyx2ZSwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN4fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShEKXt0aGlzLiN4PUR9I3k9KHp0KHRoaXMsYmUpLHp0KHRoaXMsamUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKEQpe3RoaXMuI3k9RH0jdz0oenQodGhpcyxXZSksenQodGhpcyxNZSwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoRCl7dGhpcy4jdz1EfSNrPSh6dCh0aGlzLGdlKSx6dCh0aGlzLGNlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNrfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKEQpe3RoaXMuI2s9RH0jUz0oenQodGhpcyxkZSksenQodGhpcyxLZSwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKEQpe3RoaXMuI1M9RH0jXz0oenQodGhpcyxZZSksenQodGhpcyxVdCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jX31zZXQgYWN0aXZpdHlMb2dDb3VudChEKXt0aGlzLiNfPUR9I009KHp0KHRoaXMsWnQpLHp0KHRoaXMsZXQsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI019c2V0IG1haW5jb250ZW50VGFicyhEKXt0aGlzLiNNPUR9I3o9KHp0KHRoaXMsYnQpLHp0KHRoaXMsZXMsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jen1zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihEKXt0aGlzLiN6PUR9I0M9KHp0KHRoaXMscnMpLHp0KHRoaXMsbnMsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI0N9c2V0IGNvbnRlbnRUYWJBY3Rpb25zTGVmdChEKXt0aGlzLiNDPUR9I1Q9KHp0KHRoaXMsdGkpLHp0KHRoaXMsemUsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBjb250ZW50VGFiQWN0aW9uc1JpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oenQodGhpcyx4ZSksenQodGhpcyx4dCx2b2lkIDApKTtnZXQgYXBwYmFyKCl7cmV0dXJuIHRoaXMuIyR9c2V0IGFwcGJhcihEKXt0aGlzLiMkPUR9I0Q9KHp0KHRoaXMsTWEpLHp0KHRoaXMsZmUsdm9pZCAwKSk7Z2V0IG1haW5tZW51KCl7cmV0dXJuIHRoaXMuI0R9c2V0IG1haW5tZW51KEQpe3RoaXMuI0Q9RH0jTD0oenQodGhpcyxyZSksenQodGhpcyxPZSx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudSgpe3JldHVybiB0aGlzLiNMfXNldCBzZWNvbmRhcnltZW51KEQpe3RoaXMuI0w9RH0jRT0oenQodGhpcyxKZSksenQodGhpcyxkYSx2b2lkIDApKTtnZXQgbWFpbmNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgbWFpbmNvbnRlbnQoRCl7dGhpcy4jRT1EfSNQPSh6dCh0aGlzLHdzKSx6dCh0aGlzLEppLHZvaWQgMCkpO2dldCBhY3Rpdml0eWxvZ0VsZW1lbnQoKXtyZXR1cm4gdGhpcy4jUH1zZXQgYWN0aXZpdHlsb2dFbGVtZW50KEQpe3RoaXMuI1A9RH0jST0oenQodGhpcyxSciksenQodGhpcyx2bix2b2lkIDApKTtnZXQgYm90dG9tYmFyRWxlbWVudCgpe3JldHVybiB0aGlzLiNJfXNldCBib3R0b21iYXJFbGVtZW50KEQpe3RoaXMuI0k9RH0jQT0oenQodGhpcyxyMSksenQodGhpcyxuMSwhMCkpO2dldCBib3R0b21iYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI0F9c2V0IGJvdHRvbWJhclZpc2libGUoRCl7dGhpcy4jQT1EfSNOPSh6dCh0aGlzLGwxKSx6dCh0aGlzLGQxLHZvaWQgMCkpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNOfXNldCBjdXJyZW50VmlldyhEKXt0aGlzLiNOPUR9dmlld1JlZ2lzdHJ5PSh6dCh0aGlzLHUxKSxuZXcgcVgpO3JvdXRlckNsZWFudXA9bnVsbDtzZWFyY2hDYWxsYmFjaz1udWxsO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgfQogICAgICAubWFpbmdyaWQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4IC0gMjRweCk7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAvKiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgc2V0IGR5bmFtaWNhbGx5IGluIHRlbXBsYXRlICovCiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIDAuM3MgZWFzZSwgaGVpZ2h0IDAuM3MgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICA6aG9zdChbYm90dG9tYmFyLWhpZGRlbl0pIC5tYWluZ3JpZCB7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTsKICAgICAgfQoKICAgICAgZGVlcy1hcHB1aS1ib3R0b21iYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiA0OwogICAgICB9CgogICAgICAvKiBaLWluZGV4IGxheWVyaW5nIGZvciBwcm9wZXIgc3RhY2tpbmcgKi8KICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWlubWVudSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDM7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLmhpZGRlbiB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cudmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgIH0KCiAgICAgIC8qIFZpZXcgY29udGFpbmVyIGZvciBkeW5hbWljYWxseSBsb2FkZWQgdmlld3MgKi8KICAgICAgLnZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQoKICAgICAgLnZpZXctY29udGFpbmVyOmVtcHR5IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyTWVudUl0ZW1zfQogICAgICAgIC5icmVhZGNydW1icz0ke3RoaXMuYXBwYmFyQnJlYWRjcnVtYnN9CiAgICAgICAgLmJyZWFkY3J1bWJTZXBhcmF0b3I9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3J9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0ke3RoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzfQogICAgICAgIC51c2VyPSR7dGhpcy5hcHBiYXJVc2VyfQogICAgICAgIC5wcm9maWxlTWVudUl0ZW1zPSR7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zfQogICAgICAgIC5zaG93U2VhcmNoPSR7dGhpcy5hcHBiYXJTaG93U2VhcmNofQogICAgICAgIC5zaG93QWN0aXZpdHlMb2dUb2dnbGU9JHshMH0KICAgICAgICAuYWN0aXZpdHlMb2dDb3VudD0ke3RoaXMuYWN0aXZpdHlMb2dDb3VudH0KICAgICAgICAuYWN0aXZpdHlMb2dBY3RpdmU9JHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUFwcGJhck1lbnVTZWxlY3QoRCl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtEPT50aGlzLmhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShEKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoQ2xpY2soKX0KICAgICAgICBAc2VhcmNoLXF1ZXJ5PSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJTZWFyY2hRdWVyeShEKX0KICAgICAgICBAdXNlci1tZW51LW9wZW49JHsoKT0+dGhpcy5oYW5kbGVBcHBiYXJVc2VyTWVudU9wZW4oKX0KICAgICAgICBAcHJvZmlsZS1tZW51LXNlbGVjdD0ke0Q9PnRoaXMuaGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoRCl9CiAgICAgICAgQGFjdGl2aXR5LXRvZ2dsZT0keygpPT50aGlzLnRvZ2dsZUFjdGl2aXR5TG9nKCl9CiAgICAgID48L2RlZXMtYXBwdWktYXBwYmFyPgogICAgICA8ZGl2IGNsYXNzPSJtYWluZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIDFmciAke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyIyODBweCI6IjBweCJ9OyI+CiAgICAgICAgJHt0aGlzLm1haW5tZW51VmlzaWJsZT93YAogICAgICAgICAgPGRlZXMtYXBwdWktbWFpbm1lbnUKICAgICAgICAgICAgLmxvZ29JY29uPSR7dGhpcy5tYWlubWVudUxvZ29JY29ufQogICAgICAgICAgICAubG9nb1RleHQ9JHt0aGlzLm1haW5tZW51TG9nb1RleHR9CiAgICAgICAgICAgIC5tZW51R3JvdXBzPSR7dGhpcy5tYWlubWVudUdyb3Vwc30KICAgICAgICAgICAgLmJvdHRvbVRhYnM9JHt0aGlzLm1haW5tZW51Qm90dG9tVGFic30KICAgICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5tZW51VGFic30KICAgICAgICAgICAgLnNlbGVjdGVkVGFiPSR7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFifQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5tYWlubWVudUNvbGxhcHNlZH0KICAgICAgICAgICAgQHRhYi1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZU1haW5tZW51VGFiU2VsZWN0KEQpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7RD0+dGhpcy5oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKEQpfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT4KICAgICAgICBgOiIifQogICAgICAgICR7dGhpcy5zZWNvbmRhcnltZW51VmlzaWJsZT93YAogICAgICAgICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAgICAgICAuaGVhZGluZz0ke3RoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmd9CiAgICAgICAgICAgIC5ncm91cHM9JHt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHN9CiAgICAgICAgICAgIC5zZWxlY3RlZEl0ZW09JHt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW19CiAgICAgICAgICAgIC5jb2xsYXBzZWQ9JHt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEBpdGVtLXNlbGVjdD0ke0Q9PnRoaXMuaGFuZGxlU2Vjb25kYXJ5bWVudUl0ZW1TZWxlY3QoRCl9CiAgICAgICAgICAgIEBjb2xsYXBzZS1jaGFuZ2U9JHtEPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShEKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudT4KICAgICAgICBgOiIifQogICAgICAgIDxkZWVzLWFwcHVpLW1haW5jb250ZW50CiAgICAgICAgICAudGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzfQogICAgICAgICAgLnNlbGVjdGVkVGFiPSR7dGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFifQogICAgICAgICAgLnNob3dUYWJzPSR7dGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlfQogICAgICAgICAgLnRhYnNBdXRvSGlkZT0ke3RoaXMuY29udGVudFRhYnNBdXRvSGlkZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGR9CiAgICAgICAgICAudGFiQWN0aW9uc0xlZnQ9JHt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zTGVmdH0KICAgICAgICAgIC50YWJBY3Rpb25zUmlnaHQ9JHt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICBAdGFiLXNlbGVjdD0ke0Q9PnRoaXMuaGFuZGxlQ29udGVudFRhYlNlbGVjdChEKX0KICAgICAgICAgIEB0YWItY2xvc2U9JHtEPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJDbG9zZShEKX0KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICA8c2xvdCBuYW1lPSJtYWluY29udGVudCI+PC9zbG90PgogICAgICAgIDwvZGVlcy1hcHB1aS1tYWluY29udGVudD4KICAgICAgICA8ZGVlcy1hcHB1aS1hY3Rpdml0eWxvZwogICAgICAgICAgY2xhc3M9IiR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU/InZpc2libGUiOiJoaWRkZW4ifSIKICAgICAgICA+PC9kZWVzLWFwcHVpLWFjdGl2aXR5bG9nPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmJvdHRvbWJhclZpc2libGU/d2AKICAgICAgICA8ZGVlcy1hcHB1aS1ib3R0b21iYXI+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgYDoiIn0KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5hcHBiYXI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYXBwYmFyIiksdGhpcy5tYWlubWVudT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1tYWlubWVudSIpLHRoaXMuc2Vjb25kYXJ5bWVudT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IiksdGhpcy5tYWluY29udGVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1tYWluY29udGVudCIpLHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIiksdGhpcy5ib3R0b21iYXJFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWJvdHRvbWJhciIpLHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50JiZ0aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5lbnRyaWVzJC5zdWJzY3JpYmUoRD0+e3RoaXMuYWN0aXZpdHlMb2dDb3VudD1ELmxlbmd0aH0pLHRoaXMudmlld1JlZ2lzdHJ5LnNldEFwcHVpUmVmKHRoaXMpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJvdXRlckNsZWFudXAmJih0aGlzLnJvdXRlckNsZWFudXAoKSx0aGlzLnJvdXRlckNsZWFudXA9bnVsbCksdGhpcy52aWV3TGlmZWN5Y2xlJC5jb21wbGV0ZSgpLHRoaXMudmlld0NoYW5nZWQkLmNvbXBsZXRlKCl9c2V0QXBwQmFyTWVudXMoRCl7dGhpcy5hcHBiYXJNZW51SXRlbXM9Wy4uLkRdfXVwZGF0ZUFwcEJhck1lbnUoRCxUKXt0aGlzLmFwcGJhck1lbnVJdGVtcz10aGlzLmFwcGJhck1lbnVJdGVtcy5tYXAoRz0+Im5hbWUiaW4gRyYmRy5uYW1lPT09RD97Li4uRywuLi5UfTpHKX1zZXRCcmVhZGNydW1icyhEKXtBcnJheS5pc0FycmF5KEQpP3RoaXMuYXBwYmFyQnJlYWRjcnVtYnM9RC5qb2luKHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcik6dGhpcy5hcHBiYXJCcmVhZGNydW1icz1EfXNldFVzZXIoRCl7dGhpcy5hcHBiYXJVc2VyPUR9c2V0UHJvZmlsZU1lbnVJdGVtcyhEKXt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9Wy4uLkRdfXNldFNlYXJjaFZpc2libGUoRCl7dGhpcy5hcHBiYXJTaG93U2VhcmNoPUR9c2V0V2luZG93Q29udHJvbHNWaXNpYmxlKEQpe3RoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUR9b25TZWFyY2goRCl7dGhpcy5zZWFyY2hDYWxsYmFjaz1EfXNldE1haW5NZW51KEQpe0QubG9nb0ljb24hPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb0ljb249RC5sb2dvSWNvbiksRC5sb2dvVGV4dCE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVMb2dvVGV4dD1ELmxvZ29UZXh0KSxELmdyb3VwcyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVHcm91cHM9Wy4uLkQuZ3JvdXBzXSksRC5ib3R0b21UYWJzIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9Wy4uLkQuYm90dG9tVGFic10pfXVwZGF0ZU1haW5NZW51R3JvdXAoRCxUKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKEc9PkcubmFtZT09PUQ/ey4uLkcsLi4uVH06Ryl9YWRkTWFpbk1lbnVJdGVtKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLGl0ZW1zOlsuLi5HLml0ZW1zfHxbXSxUXX06Ryl9cmVtb3ZlTWFpbk1lbnVJdGVtKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLGl0ZW1zOihHLml0ZW1zfHxbXSkuZmlsdGVyKCRlPT4kZS5rZXkhPT1UKX06Ryl9c2V0TWFpbk1lbnVTZWxlY3Rpb24oRCl7Zm9yKGxldCBHIG9mIHRoaXMubWFpbm1lbnVHcm91cHMpe2xldCAkZT1HLml0ZW1zPy5maW5kKFBlPT5QZS5rZXk9PT1EKTtpZigkZSl7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPSRlO3JldHVybn19bGV0IFQ9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMuZmluZChHPT5HLmtleT09PUQpO1QmJih0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9VCl9c2V0TWFpbk1lbnVDb2xsYXBzZWQoRCl7dGhpcy5tYWlubWVudUNvbGxhcHNlZD1EfXNldE1haW5NZW51VmlzaWJsZShEKXt0aGlzLm1haW5tZW51VmlzaWJsZT1EfXNldFNlY29uZGFyeU1lbnVDb2xsYXBzZWQoRCl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUR9c2V0U2Vjb25kYXJ5TWVudVZpc2libGUoRCl7dGhpcy5zZWNvbmRhcnltZW51VmlzaWJsZT1EfXNldENvbnRlbnRUYWJzVmlzaWJsZShEKXt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGU9RH1zZXRDb250ZW50VGFic0F1dG9IaWRlKEQsVD0wKXt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGU9RCx0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9VH1zZXRNYWluTWVudUJhZGdlKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT4oey4uLkcsaXRlbXM6KEcuaXRlbXN8fFtdKS5tYXAoJGU9PiRlLmtleT09PUQ/ey4uLiRlLGJhZGdlOlR9OiRlKX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoRz0+Ry5rZXk9PT1EP3suLi5HLGJhZGdlOlR9OkcpfWNsZWFyTWFpbk1lbnVCYWRnZShEKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKFQ9Pih7Li4uVCxpdGVtczooVC5pdGVtc3x8W10pLm1hcChHPT57aWYoRy5rZXk9PT1EKXtsZXR7YmFkZ2U6JGUsLi4uUGV9PUc7cmV0dXJuIFBlfXJldHVybiBHfSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKFQ9PntpZihULmtleT09PUQpe2xldHtiYWRnZTpHLC4uLiRlfT1UO3JldHVybiAkZX1yZXR1cm4gVH0pfXNldFNlY29uZGFyeU1lbnUoRCl7RC5oZWFkaW5nIT09dm9pZCAwJiYodGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1ELmhlYWRpbmcpLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bLi4uRC5ncm91cHNdfXVwZGF0ZVNlY29uZGFyeU1lbnVHcm91cChELFQpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKEc9PkcubmFtZT09PUQ/ey4uLkcsLi4uVH06Ryl9YWRkU2Vjb25kYXJ5TWVudUl0ZW0oRCxUKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLGl0ZW1zOlsuLi5HLml0ZW1zLFRdfTpHKX1zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKEQpe2ZvcihsZXQgVCBvZiB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMpe2xldCBHPVQuaXRlbXMuZmluZCgkZT0+ImtleSJpbiAkZSYmJGUua2V5PT09RCk7aWYoRyYmKCEoInR5cGUiaW4gRyl8fEcudHlwZT09PSJ0YWIifHxHLnR5cGU9PT12b2lkIDApKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09RztyZXR1cm59fX1jbGVhclNlY29uZGFyeU1lbnUoKXt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nPSIiLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bXSx0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09dm9pZCAwfXNldENvbnRlbnRUYWJzKEQpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi5EXSxELmxlbmd0aD4wJiYhdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPURbMF0pfWFkZENvbnRlbnRUYWIoRCl7dGhpcy5tYWluY29udGVudFRhYnM9Wy4uLnRoaXMubWFpbmNvbnRlbnRUYWJzLERdfXJlbW92ZUNvbnRlbnRUYWIoRCl7dGhpcy5tYWluY29udGVudFRhYnM9dGhpcy5tYWluY29udGVudFRhYnMuZmlsdGVyKFQ9PlQua2V5IT09RCksdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPy5rZXk9PT1EJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPXRoaXMubWFpbmNvbnRlbnRUYWJzWzBdKX1zZWxlY3RDb250ZW50VGFiKEQpe2xldCBUPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbmQoRz0+Ry5rZXk9PT1EKTtUJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPVQpfWdldFNlbGVjdGVkQ29udGVudFRhYigpe3JldHVybiB0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9c2V0Q29udGVudFRhYkFjdGlvbnNMZWZ0KEQpe3RoaXMuY29udGVudFRhYkFjdGlvbnNMZWZ0PVsuLi5EXX1zZXRDb250ZW50VGFiQWN0aW9uc1JpZ2h0KEQpe3RoaXMuY29udGVudFRhYkFjdGlvbnNSaWdodD1bLi4uRF19Z2V0IGFjdGl2aXR5TG9nKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50P3thZGQ6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGQoRCksImFkZCIpLGFkZE1hbnk6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGRNYW55KEQpLCJhZGRNYW55IiksY2xlYXI6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuY2xlYXIoKSwiY2xlYXIiKSxnZXRFbnRyaWVzOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmdldEVudHJpZXMoKSwiZ2V0RW50cmllcyIpLGZpbHRlcjppKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmZpbHRlcihEKSwiZmlsdGVyIiksc2VhcmNoOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuc2VhcmNoKEQpLCJzZWFyY2giKX06e2FkZDppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGQoRCkpfSwiYWRkIiksYWRkTWFueTppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGRNYW55KEQpKX0sImFkZE1hbnkiKSxjbGVhcjppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uY2xlYXIoKSl9LCJjbGVhciIpLGdldEVudHJpZXM6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKXx8W10sImdldEVudHJpZXMiKSxmaWx0ZXI6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uZmlsdGVyKEQpfHxbXSwiZmlsdGVyIiksc2VhcmNoOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LnNlYXJjaChEKXx8W10sInNlYXJjaCIpfX1zZXRBY3Rpdml0eUxvZ1Zpc2libGUoRCl7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU9RH10b2dnbGVBY3Rpdml0eUxvZygpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPSF0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1nZXRBY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0IGJvdHRvbUJhcigpe3JldHVybiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/e2FkZFdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRXaWRnZXQoRCksImFkZFdpZGdldCIpLHVwZGF0ZVdpZGdldDppKChELFQpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQudXBkYXRlV2lkZ2V0KEQsVCksInVwZGF0ZVdpZGdldCIpLHJlbW92ZVdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVXaWRnZXQoRCksInJlbW92ZVdpZGdldCIpLGdldFdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5nZXRXaWRnZXQoRCksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJXaWRnZXRzKCksImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRBY3Rpb24oRCksImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVBY3Rpb24oRCksInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJBY3Rpb25zKCksImNsZWFyQWN0aW9ucyIpfTp7YWRkV2lkZ2V0OmkoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5hZGRXaWRnZXQoRCkpfSwiYWRkV2lkZ2V0IiksdXBkYXRlV2lkZ2V0OmkoKEQsVCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8udXBkYXRlV2lkZ2V0KEQsVCkpfSwidXBkYXRlV2lkZ2V0IikscmVtb3ZlV2lkZ2V0OmkoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVXaWRnZXQoRCkpfSwicmVtb3ZlV2lkZ2V0IiksZ2V0V2lkZ2V0OmkoRD0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5nZXRXaWRnZXQoRCksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyV2lkZ2V0cygpKX0sImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkQWN0aW9uKEQpKX0sImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlQWN0aW9uKEQpKX0sInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyQWN0aW9ucygpKX0sImNsZWFyQWN0aW9ucyIpfX1zZXRCb3R0b21CYXJWaXNpYmxlKEQpe3RoaXMuYm90dG9tYmFyVmlzaWJsZT1ELEQ/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iKTp0aGlzLnNldEF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIsIiIpfWdldEJvdHRvbUJhclZpc2libGUoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJWaXNpYmxlfWFzeW5jIG5hdmlnYXRlVG9WaWV3KEQsVCl7bGV0IEc9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KEQpO2lmKCFHKXJldHVybiBjb25zb2xlLndhcm4oYENhbm5vdCBuYXZpZ2F0ZSB0byB1bmtub3duIHZpZXc6ICR7RH1gKSwhMTtsZXQgJGU9YXdhaXQgdGhpcy52aWV3UmVnaXN0cnkuY2FuTGVhdmVDdXJyZW50VmlldygpO2lmKCRlIT09ITApaWYodHlwZW9mICRlPT0ic3RyaW5nIil7aWYoIXdpbmRvdy5jb25maXJtKCRlKSlyZXR1cm4hMX1lbHNlIHJldHVybiExO3RoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZGluZyIsdmlld0lkOkR9KTt0cnl7YXdhaXQgdGhpcy5sb2FkVmlldyhHLFQpO2xldCBQZT1HLnJvdXRlfHxEO2lmKFQpZm9yKGxldFtWZSxVZV1vZiBPYmplY3QuZW50cmllcyhUKSlQZT1QZS5yZXBsYWNlKGA6JHtWZX1gLFVlKTtsZXQgRmU9YCMke1BlfWA7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoIT09RmUmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7dmlld0lkOkR9LCIiLEZlKSwhMH1jYXRjaChQZSl7cmV0dXJuIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZEVycm9yIix2aWV3SWQ6RCxlcnJvcjpQZX0pLCExfX1nZXRDdXJyZW50Vmlldygpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3fWdldFZpZXdSZWdpc3RyeSgpe3JldHVybiB0aGlzLnZpZXdSZWdpc3RyeX1jb25maWd1cmUoRCl7RC52aWV3cyYmKHRoaXMudmlld1JlZ2lzdHJ5LmNsZWFyKCksdGhpcy52aWV3UmVnaXN0cnkucmVnaXN0ZXJBbGwoRC52aWV3cykpLEQuYnJhbmRpbmcmJih0aGlzLm1haW5tZW51TG9nb0ljb249RC5icmFuZGluZy5sb2dvSWNvbnx8IiIsdGhpcy5tYWlubWVudUxvZ29UZXh0PUQuYnJhbmRpbmcubG9nb1RleHR8fCIiKSxELmFwcEJhciYmKHRoaXMuYXBwYmFyTWVudUl0ZW1zPUQuYXBwQmFyLm1lbnVJdGVtc3x8W10sdGhpcy5hcHBiYXJCcmVhZGNydW1icz1ELmFwcEJhci5icmVhZGNydW1ic3x8IiIsdGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPUQuYXBwQmFyLmJyZWFkY3J1bWJTZXBhcmF0b3J8fCIgPiAiLHRoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUQuYXBwQmFyLnNob3dXaW5kb3dDb250cm9scz8/ITAsdGhpcy5hcHBiYXJTaG93U2VhcmNoPUQuYXBwQmFyLnNob3dTZWFyY2g/PyExLHRoaXMuYXBwYmFyVXNlcj1ELmFwcEJhci51c2VyLHRoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1ELmFwcEJhci5wcm9maWxlTWVudUl0ZW1zfHxbXSksRC5tYWluTWVudSYmKEQubWFpbk1lbnUuc2VjdGlvbnM/dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLmJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoRCk6RC5tYWluTWVudS5ncm91cHMmJih0aGlzLm1haW5tZW51R3JvdXBzPUQubWFpbk1lbnUuZ3JvdXBzKSxELm1haW5NZW51LmxvZ29JY29uJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUQubWFpbk1lbnUubG9nb0ljb24pLEQubWFpbk1lbnUubG9nb1RleHQmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9RC5tYWluTWVudS5sb2dvVGV4dCksRC5tYWluTWVudS5ib3R0b21UYWJzP3RoaXMubWFpbm1lbnVCb3R0b21UYWJzPUQubWFpbk1lbnUuYm90dG9tVGFiczpELm1haW5NZW51LmJvdHRvbUl0ZW1zJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoRC5tYWluTWVudS5ib3R0b21JdGVtcykpKSxELmJvdHRvbUJhciYmKHRoaXMuc2V0Qm90dG9tQmFyVmlzaWJsZShELmJvdHRvbUJhci52aXNpYmxlPz8hMCksRC5ib3R0b21CYXIud2lkZ2V0cyYmRC5ib3R0b21CYXIud2lkZ2V0cy5mb3JFYWNoKFQ9Pnt0aGlzLmJvdHRvbUJhci5hZGRXaWRnZXQoVCl9KSxELmJvdHRvbUJhci5hY3Rpb25zJiZELmJvdHRvbUJhci5hY3Rpb25zLmZvckVhY2goVD0+e3RoaXMuYm90dG9tQmFyLmFkZEFjdGlvbihUKX0pKSx0aGlzLnNldHVwUm91dGVySW50ZWdyYXRpb24oRCksRC5vblZpZXdDaGFuZ2UmJnRoaXMudmlld0NoYW5nZWQkLnN1YnNjcmliZShUPT57RC5vblZpZXdDaGFuZ2UoVC52aWV3SWQsVC52aWV3KX0pLEQub25TZWFyY2gmJih0aGlzLnNlYXJjaENhbGxiYWNrPUQub25TZWFyY2gpLEQuZGVmYXVsdFZpZXcmJnRoaXMubmF2aWdhdGVUb1ZpZXcoRC5kZWZhdWx0Vmlldyl9c2V0dXBSb3V0ZXJJbnRlZ3JhdGlvbihEKXtsZXQgVD1pKCgpPT57bGV0ICRlPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKCEkZSlyZXR1cm47bGV0IFBlPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKCRlKTtQZSYmdGhpcy5uYXZpZ2F0ZVRvVmlldyhQZS52aWV3LmlkLFBlLnBhcmFtcyl9LCJoYW5kbGVIYXNoQ2hhbmdlIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLFQpLHRoaXMucm91dGVyQ2xlYW51cD0oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixUKX07bGV0IEc9d2luZG93LmxvY2F0aW9uLmhhc2guc2xpY2UoMSk7aWYoRyl7bGV0ICRlPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKEcpOyRlJiZzZXRUaW1lb3V0KCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KCRlLnZpZXcuaWQsJGUucGFyYW1zKSwwKX19YnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhEKXtyZXR1cm4gRC5tYWluTWVudT8uc2VjdGlvbnM/RC5tYWluTWVudS5zZWN0aW9ucy5tYXAoVD0+KHtuYW1lOlQubmFtZXx8IiIsaXRlbXM6VC52aWV3cy5tYXAoRz0+e2xldCAkZT10aGlzLnZpZXdSZWdpc3RyeS5nZXQoRyk7cmV0dXJuICRlP3trZXk6JGUuaWQsaWNvbk5hbWU6JGUuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoRyksImFjdGlvbiIpLGJhZGdlOiRlLmJhZGdlfTooY29uc29sZS53YXJuKGBWaWV3ICIke0d9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX0pKTpbXX1idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoRCl7cmV0dXJuIEQubWFwKFQ9PntsZXQgRz10aGlzLnZpZXdSZWdpc3RyeS5nZXQoVCk7cmV0dXJuIEc/e2tleTpHLmlkLGljb25OYW1lOkcuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoVCksImFjdGlvbiIpfTooY29uc29sZS53YXJuKGBWaWV3ICIke1R9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX1hc3luYyBsb2FkVmlldyhELFQpe2xldCBHPXRoaXMuY3VycmVudFZpZXc7dGhpcy5jdXJyZW50Vmlldz1EO2xldCAkZT10aGlzLm1haW5jb250ZW50Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKXx8dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKTtpZigkZSl7bGV0IEZlPWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmFjdGl2YXRlVmlldyhELmlkLCRlLFQpO0ZlJiZ0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImFjdGl2YXRlZCIsdmlld0lkOkQuaWQsZWxlbWVudDpGZSxwYXJhbXM6VH0pfUQuc2Vjb25kYXJ5TWVudSYmKHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1ELnNlY29uZGFyeU1lbnUsdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1ELm5hbWUpLEQuY29udGVudFRhYnMmJih0aGlzLm1haW5jb250ZW50VGFicz1ELmNvbnRlbnRUYWJzKSx0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKEQuaWQpO2xldCBQZT17dmlld0lkOkQuaWQsdmlldzpELHByZXZpb3VzVmlldzpHLHBhcmFtczpUfTt0aGlzLnZpZXdDaGFuZ2VkJC5uZXh0KFBlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2aWV3LWNoYW5nZSIse2RldGFpbDpQZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhck1lbnVTZWxlY3QoRCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyQnJlYWRjcnVtYk5hdmlnYXRlKEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1icmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyU2VhcmNoQ2xpY2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItc2VhcmNoLWNsaWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJTZWFyY2hRdWVyeShEKXt0aGlzLnNlYXJjaENhbGxiYWNrJiZ0aGlzLnNlYXJjaENhbGxiYWNrKEQuZGV0YWlsLnF1ZXJ5KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2gtcXVlcnkiLHtkZXRhaWw6RC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJVc2VyTWVudU9wZW4oKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItdXNlci1tZW51LW9wZW4iLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1wcm9maWxlLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTWFpbm1lbnVUYWJTZWxlY3QoRCl7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPUQuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYWlubWVudS10YWItc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlU2Vjb25kYXJ5bWVudUl0ZW1TZWxlY3QoRCl7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPUQuZGV0YWlsLml0ZW0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Vjb25kYXJ5bWVudS1pdGVtLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU1haW5tZW51Q29sbGFwc2VDaGFuZ2UoRCl7dGhpcy5tYWlubWVudUNvbGxhcHNlZD1ELmRldGFpbC5jb2xsYXBzZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFpbm1lbnUtY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlU2Vjb25kYXJ5bWVudUNvbGxhcHNlQ2hhbmdlKEQpe3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1ELmRldGFpbC5jb2xsYXBzZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Vjb25kYXJ5bWVudS1jb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6RC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZW50VGFiU2VsZWN0KEQpe3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1ELmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC10YWItc2VsZWN0Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGVudFRhYkNsb3NlKEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtdGFiLWNsb3NlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c3RhdGlje3p0KGEsdCl9fTtyZXR1cm4gcDE9YX0pKCl9KTt2YXIgdGZhPWcoKCk9PntlZmEoKTtfaXQoKX0pO3ZhciBhZmE9ZygoKT0+e1RpdCgpfSk7dmFyIHNmYT1nKCgpPT57TWl0KCl9KTt2YXIgaWZhPWcoKCk9Pnt6aXQoKX0pO3ZhciByZmE9ZygoKT0+eyRldCgpfSk7dmFyIG9mYT1nKCgpPT57Q2l0KCl9KTt2YXIgSmNlLGJnLG5mYSxsZmE9ZygoKT0+e3BvKCk7em4oKTtDcigpO3BlKCk7RjEoKTtVYSgpO3B0KCk7SmNlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxiZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbmZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNNb2JpbGVuYXZpZ2F0aW9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtZKCldLEpjZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImhlYWRpbmciaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuaGVhZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksSmNlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJtZW51SXRlbXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5tZW51SXRlbXMsImdldCIpLHNldDppKChmLHkpPT57Zi5tZW51SXRlbXM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLEpjZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vYmlsZU5hdlpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibW9iaWxlTmF2WkluZGV4ImluIGYsImhhcyIpLGdldDppKGY9PmYubW9iaWxlTmF2WkluZGV4LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YubW9iaWxlTmF2WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxKY2UobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pnt4LmNyZWF0ZUFuZFNob3coW3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0LWRhc2hib2FyZCIsYWN0aW9uOmkoYXN5bmMgbT0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBkYXNoYm9hcmQiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gcHJvZmlsZSIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aShhc3luYyBtPT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHNldHRpbmdzIiksbnVsbCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAiLGljb25OYW1lOiJsdWNpZGU6aGVscC1jaXJjbGUiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiU2hvdyBoZWxwIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsdWNpZGU6bG9nLW91dCIsYWN0aW9uOmkoYXN5bmMgbT0+KGNvbnNvbGUubG9nKCJTaWduIG91dCIpLG51bGwpLCJhY3Rpb24iKX1dKX19Pk9wZW4gTW9iaWxlIE5hdmlnYXRpb248L2RlZXMtYnV0dG9uPgogIGAsImRlbW8iKTtzdGF0aWMgc2luZ2xldG9uUmVmO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KG0pe3JldHVybiB0aGlzLnNpbmdsZXRvblJlZnx8KHRoaXMuc2luZ2xldG9uUmVmPW5ldyB4LGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc2luZ2xldG9uUmVmKSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5pbml0KCkpLHRoaXMuc2luZ2xldG9uUmVmLm1lbnVJdGVtcz1tLGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnNpbmdsZXRvblJlZi5zaG93KCksdGhpcy5zaW5nbGV0b25SZWZ9I2U9YmcodGhpcyxvLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhtKXt0aGlzLiNlPW19I3Q9KGJnKHRoaXMsbCksYmcodGhpcyxkLFtdKSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBtZW51SXRlbXMobSl7dGhpcy4jdD1tfSNhPShiZyh0aGlzLHUpLGJnKHRoaXMsYiwxZTMpKTtnZXQgbW9iaWxlTmF2WkluZGV4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1vYmlsZU5hdlpJbmRleChtKXt0aGlzLiNhPW19cmVhZHlEZWZlcnJlZD0oYmcodGhpcyx2KSxsdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9YXN5bmMgaW5pdCgpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgfQoKICAgICAgLm1haW4gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLm1haW4uc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW46IDhweCAxNnB4OwogICAgICB9CgogICAgICAvKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7CiAgICAgICAgLm1haW4gewogICAgICAgICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgICAgICAgIHdpZHRoOiA4NXZ3OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogQW5pbWF0aW9uIGZvciBtZW51IGl0ZW1zICovCiAgICAgIEBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi5zaG93IC5tZW51SXRlbSB7CiAgICAgICAgYW5pbWF0aW9uOiBzbGlkZUluUmlnaHQgMC4zcyBlYXNlLW91dCBmb3J3YXJkczsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0taXRlbS1pbmRleCwgMCkgKiAwLjA1cyk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbiB7CiAgICAgICAgICAtLXotaW5kZXg6ICR7dGhpcy5tb2JpbGVOYXZaSW5kZXh9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgobSxmKT0+ImRpdmlkZXIiaW4gbSYmbS5kaXZpZGVyP3dgPGRpdiBjbGFzcz0ibWVudUl0ZW0tZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJtZW51SXRlbSIKICAgICAgICAgICAgICAgIHN0eWxlPSItLWl0ZW0taW5kZXg6ICR7Zn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmhpZGUoKSxtLmFjdGlvbih0aGlzKX19IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7bS5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7bS5pY29uTmFtZX0gc2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51SXRlbS10ZXh0Ij4ke20ubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI7YXN5bmMgc2hvdygpe2xldCBtPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIik7dGhpcy53aW5kb3dMYXllcj8oZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy53aW5kb3dMYXllciksYXdhaXQgdGhpcy53aW5kb3dMYXllci5zaG93KCkpOih0aGlzLndpbmRvd0xheWVyPWF3YWl0IGhvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuaGlkZSgpfSkpLHRoaXMubW9iaWxlTmF2WkluZGV4PXhhLmdldE5leHRaSW5kZXgoKSx4YS5yZWdpc3Rlcih0aGlzLHRoaXMubW9iaWxlTmF2WkluZGV4KSxhd2FpdCBtLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTApLGYuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhpZGUoKXtsZXQgbT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW4iKS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93IikseGEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCkseGEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7YmcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIGNmYT1nKCgpPT57bGZhKCl9KTt2YXIgZGZhPWcoKCk9PntpZGEoKTtEZXQoKTtTZGEoKTt0ZmEoKTthZmEoKTtzZmEoKTtpZmEoKTtyZmEoKTtvZmEoKTtjZmEoKX0pO3ZhciB1ZmE9ZygoKT0+e0Q4KCl9KTt2YXIgcGZhLCRpdCxoZmEsZmZhPWcoKCk9PntwZSgpO3BmYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sJGl0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxoZmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWJ1dHRvbi1leGl0IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNCdXR0b25FeGl0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scGZhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ic2l6ZSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnNpemUsImdldCIpLHNldDppKCh1LGMpPT57dS5zaXplPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxwZmEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYnV0dG9uLWV4aXQ+PC9kZWVzLWJ1dHRvbi1leGl0PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPSRpdCh0aGlzLG8sMjQpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNpemUoZCl7dGhpcy4jZT1kfXN0eWxlcz0oJGl0KHRoaXMsbCksW2guZGVmYXVsdFN0eWxlcyxKYAoKICAgIGBdKTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaXJzdExpbmUiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY29uZExpbmUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljeyRpdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgbWZhPWcoKCk9PntmZmEoKX0pO3ZhciBnZmEsYmZhPWcoKCk9PntwZSgpO2dmYT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aG91dCBsYWJlbHMgZm9yIHNpbXBsZSBncm91cGluZzwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMzwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TGFiZWxlZCBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRoIGRlc2NyaXB0aXZlIGxhYmVsczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlZpZXcgTW9kZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5HcmlkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DYXJkczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TXVsdGlwbGUgR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+TXVsdGlwbGUgYnV0dG9uIGdyb3VwcyB1c2VkIHRvZ2V0aGVyPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRhdGFzZXQ6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlRpbWUgUmFuZ2U6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjFIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj4yNEg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+N0Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+MzBEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5FeHBvcnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VmVydGljYWwgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCB2ZXJ0aWNhbCBsYXlvdXQ8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAyNHB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgZGlyZWN0aW9uPSJ2ZXJ0aWNhbCIgbGFiZWw9Ik5hdmlnYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRhc2hib2FyZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+QW5hbHl0aWNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlcG9ydHM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2V0dGluZ3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RWRpdCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRlbGV0ZSBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk1peGVkIEJ1dHRvbiBUeXBlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRpZmZlcmVudCBidXR0b24gdHlwZXMgd2l0aGluIGdyb3VwczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlN0YXR1czoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InN1Y2Nlc3MiPkFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+UGVuZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGFuZ2VyIj5JbmFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIERpdCxqWCx2ZmEseGZhPWcoKCk9PntwZSgpO2t0KCk7YmZhKCk7cHQoKTtEaXQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGpYPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx2ZmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWJ1dHRvbi1ncm91cCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uR3JvdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sRGl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+ImxhYmVsImluIHYsImhhcyIpLGdldDppKHY9PnYubGFiZWwsImdldCIpLHNldDppKCh2LHgpPT57di5sYWJlbD14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksRGl0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJkaXJlY3Rpb24iaW4gdiwiaGFzIiksZ2V0Omkodj0+di5kaXJlY3Rpb24sImdldCIpLHNldDppKCh2LHgpPT57di5kaXJlY3Rpb249eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLERpdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWdmYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPWpYKHRoaXMsbywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKGIpe3RoaXMuI2U9Yn0jdD0oalgodGhpcyxsKSxqWCh0aGlzLGQsImhvcml6b250YWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkaXJlY3Rpb24oYil7dGhpcy4jdD1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxqWCh0aGlzLHUpLHRhLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncm91cC52ZXJ0aWNhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgLmxhYmVsIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoKikgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0ibGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7algoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHlmYT1nKCgpPT57eGZhKCl9KTt2YXIgd2ZhPWcoKCk9Pnt1ZmEoKTttZmEoKTt5ZmEoKX0pO3ZhciBrZmEsU2ZhPWcoKCk9PntwZSgpO0l0KCk7TGl0KCk7a2ZhPWkoKCk9PntsZXQgcz17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjI1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTozMH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6Mjh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjM1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjMyfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTozOH1dfSx7bmFtZToiTWVtb3J5IixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjQ1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTo0OH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6NDZ9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjUyfSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjUwfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTo1NX1dfV19fSxlPXtzeXN0ZW06aSh0PT5gJHt0fSVgLCJzeXN0ZW0iKX07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjbWFpbi1jaGFydCIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjY29ubmVjdGlvbnMtY2hhcnQiKSxuLG8sbD0ic3lzdGVtIixwPXtzeXN0ZW06aShIPT5gJHtIfSVgLCJzeXN0ZW0iKSxuZXR3b3JrOmkoSD0+YCR7SH0gTWJwc2AsIm5ldHdvcmsiKSxzYWxlczppKEg9PmAkJHtILnRvTG9jYWxlU3RyaW5nKCl9YCwic2FsZXMiKX0sZD0xMjAqMWUzLHU9MWUzLGM9NWUzLGI9e2NwdTozMCxtZW1vcnk6NTAsZG93bmxvYWQ6MTUwLHVwbG9hZDozMCxjb25uZWN0aW9uczoxNTB9LHY9aSgoSCxrLFM9Yyk9PntsZXQgST1bXSxQPURhdGUubm93KCksUj1NYXRoLmZsb29yKGQvUyk7Zm9yKGxldCBLPVI7Sz49MDtLLS0pe2xldCBWPW5ldyBEYXRlKFAtSypTKS50b0lTT1N0cmluZygpLFc9SCsoTWF0aC5yYW5kb20oKS0uNSkqaztJLnB1c2goe3g6Vix5Ok1hdGgucm91bmQoVyl9KX1yZXR1cm4gSX0sImdlbmVyYXRlSW5pdGlhbERhdGEiKSx4PXtzeXN0ZW06e2xhYmVsOiJTeXN0ZW0gVXNhZ2UgKCUpIixzZXJpZXM6W3tuYW1lOiJDUFUiLGRhdGE6dihiLmNwdSwxMCl9LHtuYW1lOiJNZW1vcnkiLGRhdGE6dihiLm1lbW9yeSw4KX1dfSxuZXR3b3JrOntsYWJlbDoiTmV0d29yayBUcmFmZmljIChNYnBzKSIsc2VyaWVzOlt7bmFtZToiRG93bmxvYWQiLGRhdGE6dihiLmRvd25sb2FkLDMwKX0se25hbWU6IlVwbG9hZCIsZGF0YTp2KGIudXBsb2FkLDEwKX1dfSxzYWxlczp7bGFiZWw6IlNhbGVzIEFuYWx5dGljcyIsc2VyaWVzOlt7bmFtZToiUmV2ZW51ZSIsZGF0YTpbe3g6IjIwMjUtMDEtMDEiLHk6NDVlM30se3g6IjIwMjUtMDEtMDIiLHk6NTJlM30se3g6IjIwMjUtMDEtMDMiLHk6NDhlM30se3g6IjIwMjUtMDEtMDQiLHk6NjFlM30se3g6IjIwMjUtMDEtMDUiLHk6NThlM30se3g6IjIwMjUtMDEtMDYiLHk6NjVlM31dfSx7bmFtZToiUHJvZml0IixkYXRhOlt7eDoiMjAyNS0wMS0wMSIseToxMmUzfSx7eDoiMjAyNS0wMS0wMiIseToxNGUzfSx7eDoiMjAyNS0wMS0wMyIseToxMWUzfSx7eDoiMjAyNS0wMS0wNCIseToxOGUzfSx7eDoiMjAyNS0wMS0wNSIseToxNmUzfSx7eDoiMjAyNS0wMS0wNiIseToyZTR9XX1dfX0sbT1pKChILGssUyxJPTUpPT57bGV0IFA9KE1hdGgucmFuZG9tKCktLjUpKkkqMixSPUgrUCxWPSgoaytTKS8yLVIpKi4xO3JldHVybiBSKz1WLFI9TWF0aC5tYXgoayxNYXRoLm1pbihTLFIpKSxNYXRoLnJvdW5kKFIpfSwiZ2V0TmV4dFZhbHVlIiksZj1EYXRlLm5vdygpLHk9RGF0ZS5ub3coKSxNPWkoKCk9PntpZighYSlyZXR1cm47bGV0IEg9RGF0ZS5ub3coKTtpZihILWY+PWMpe2Y9SDtsZXQgUz1uZXcgRGF0ZShIKS50b0lTT1N0cmluZygpO2lmKGw9PT0ic3lzdGVtIil7Yi5jcHU9bShiLmNwdSwyMCw1MCwzKSxiLm1lbW9yeT1tKGIubWVtb3J5LDQwLDcwLDIpO2xldCBJPWEuY2hhcnRTZXJpZXMubWFwKChQLFIpPT4oe25hbWU6UC5uYW1lLGRhdGE6Wy4uLlAuZGF0YSxSPT09MD97eDpTLHk6Yi5jcHV9Ont4OlMseTpiLm1lbW9yeX1dfSkpO2EudXBkYXRlU2VyaWVzKEksITEpfWVsc2UgaWYobD09PSJuZXR3b3JrIil7Yi5kb3dubG9hZD1tKGIuZG93bmxvYWQsMTAwLDIwMCwxMCksYi51cGxvYWQ9bShiLnVwbG9hZCwyMCw1MCw1KTtsZXQgST1hLmNoYXJ0U2VyaWVzLm1hcCgoUCxSKT0+KHtuYW1lOlAubmFtZSxkYXRhOlsuLi5QLmRhdGEsUj09PTA/e3g6Uyx5OmIuZG93bmxvYWR9Ont4OlMseTpiLnVwbG9hZH1dfSkpO2EudXBkYXRlU2VyaWVzKEksITEpfX19LCJhZGRSZWFsdGltZURhdGEiKSx6PWkoKCk9PntpZighcilyZXR1cm47bGV0IEg9RGF0ZS5ub3coKSxrPW5ldyBEYXRlKEgpLnRvSVNPU3RyaW5nKCksUz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjEpLTEwO2IuY29ubmVjdGlvbnM9TWF0aC5tYXgoNTAsTWF0aC5taW4oMzAwLGIuY29ubmVjdGlvbnMrUykpO2xldCBJPXIuY2hhcnRTZXJpZXMsUD1be25hbWU6SVswXT8ubmFtZXx8IkNvbm5lY3Rpb25zIixkYXRhOlsuLi5JWzBdPy5kYXRhfHxbXSx7eDprLHk6Yi5jb25uZWN0aW9uc31dfV07ci51cGRhdGVTZXJpZXMoUCwhMSl9LCJ1cGRhdGVDb25uZWN0aW9ucyIpLE49aShIPT57bD1IO2xldCBrPXhbSF07YS5sYWJlbD1rLmxhYmVsLGEuc2VyaWVzPWsuc2VyaWVzLGEueUF4aXNGb3JtYXR0ZXI9cFtIXSxIPT09InN5c3RlbSI/KGEueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixhLnlBeGlzTWF4PTEwMCk6YS55QXhpc1NjYWxpbmc9ImR5bmFtaWMiLGY9RGF0ZS5ub3coKS1jfSwic3dpdGNoRGF0YXNldCIpLEM9aSgoKT0+eyFuJiYobD09PSJzeXN0ZW0ifHxsPT09Im5ldHdvcmsiKSYmKGEucmVhbHRpbWVNb2RlPSEwLG49d2luZG93LnNldEludGVydmFsKCgpPT5NKCksYykpLG98fChyLnJlYWx0aW1lTW9kZT0hMCxvPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+eigpLHUpKX0sInN0YXJ0UmVhbHRpbWUiKSxfPWkoKCk9PntuJiYod2luZG93LmNsZWFySW50ZXJ2YWwobiksbj1udWxsLGEucmVhbHRpbWVNb2RlPSExKSxvJiYod2luZG93LmNsZWFySW50ZXJ2YWwobyksbz1udWxsLHIucmVhbHRpbWVNb2RlPSExKX0sInN0b3BSZWFsdGltZSIpLE89aSgoKT0+e2w9PT0ic3lzdGVtIj8oYi5jcHU9TWF0aC5yYW5kb20oKT4uNT84NToyNSxiLm1lbW9yeT1NYXRoLnJhbmRvbSgpPi41PzgwOjQ1KTpsPT09Im5ldHdvcmsiJiYoYi5kb3dubG9hZD1NYXRoLnJhbmRvbSgpPi41PzI1MDoxMDAsYi51cGxvYWQ9TWF0aC5yYW5kb20oKT4uNT84MDoyMCksYi5jb25uZWN0aW9ucz1NYXRoLnJhbmRvbSgpPi41PzI4MDo4MCxmPTAseT0wfSwicmFuZG9taXplRGF0YSIpLCQ9aSgoKT0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGs9PntsZXQgUz1rLnRleHQ/LnRyaW0oKTtTPT09IlN5c3RlbSBVc2FnZSI/ay50eXBlPWw9PT0ic3lzdGVtIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlM9PT0iTmV0d29yayBUcmFmZmljIj9rLnR5cGU9bD09PSJuZXR3b3JrIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlM9PT0iU2FsZXMgRGF0YSImJihrLnR5cGU9bD09PSJzYWxlcyI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIil9KX0sInVwZGF0ZUJ1dHRvblN0YXRlcyIpO2lmKHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKEg9PntsZXQgaz1ILnRleHQ/LnRyaW0oKTtrPT09IlN5c3RlbSBVc2FnZSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntOKCJzeXN0ZW0iKSwkKCl9KTprPT09Ik5ldHdvcmsgVHJhZmZpYyI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntOKCJuZXR3b3JrIiksJCgpfSk6az09PSJTYWxlcyBEYXRhIj9ILmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e04oInNhbGVzIiksJCgpfSk6az09PSJTdGFydCBMaXZlIj9ILmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+QygpKTprPT09IlN0b3AgTGl2ZSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pl8oKSk6az09PSJTcGlrZSBWYWx1ZXMiJiZILmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+TygpKX0pLGEucm9sbGluZ1dpbmRvdz1kLGEucmVhbHRpbWVNb2RlPSExLGEueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixhLnlBeGlzTWF4PTEwMCxhLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2EudXBkYXRlVGltZVdpbmRvdygpfSwxMDApLHIpe2xldCBIPXYoYi5jb25uZWN0aW9ucywzMCx1KTtyLnNlcmllcz1be25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOkh9XSxyLnJvbGxpbmdXaW5kb3c9ZCxyLnJlYWx0aW1lTW9kZT0hMSxyLnlBeGlzU2NhbGluZz0iZml4ZWQiLHIueUF4aXNNYXg9MzUwLHIuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57ci51cGRhdGVUaW1lV2luZG93KCl9LDEwMCl9fX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8gewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPlN5c3RlbSBVc2FnZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yayBUcmFmZmljPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlcyBEYXRhPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iUmVhbC10aW1lOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBMaXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlIFZhbHVlczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiPgogICAgICAgIDxkZWVzLWNoYXJ0LWFyZWEKICAgICAgICAgIGlkPSJtYWluLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7cy5zeXN0ZW0ubGFiZWx9CiAgICAgICAgICAuc2VyaWVzPSR7cy5zeXN0ZW0uc2VyaWVzfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7ZS5zeXN0ZW19CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0iY29ubmVjdGlvbnMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiQWN0aXZlIENvbm5lY3Rpb25zIn0KICAgICAgICAgIC5zZXJpZXM9JHtbe25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOltdfV19CiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHt0PT5gJHt0fWB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIFJlYWwtdGltZSBtb25pdG9yaW5nIHdpdGggMi1taW51dGUgcm9sbGluZyB3aW5kb3cg4oCiIAogICAgICAgIFVwZGF0ZXMgZXZlcnkgc2Vjb25kIHdpdGggc21vb3RoIHZhbHVlIHRyYW5zaXRpb25zIOKAoiAKICAgICAgICBDbGljayAnU3Bpa2UgVmFsdWVzJyB0byBzaW11bGF0ZSBsb2FkIHNwaWtlcwogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIF9mYSxNZmE9ZygoKT0+e3BlKCk7cHQoKTtfZmE9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgICBkZWVzLXRpbGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAuY2hhcnRIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgICB9CiAgICAgIC5jaGFydExhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQogICAgICAuZXhwYW5kQnRuIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgLmV4cGFuZEJ0bjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CiAgICAgIC5jaGFydENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwIDAgNHB4IDA7CiAgICAgIH0KICAgICAgLnN0YXRzQmFyIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgICAuc3RhdHNTZXJpZXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAuc3RhdHNTZXJpZXMgKyAuc3RhdHNTZXJpZXMgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIC5zdGF0c0NvbG9yIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAuc3RhdHNOYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICAgIH0KICAgICAgLnN0YXRzSXRlbSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CiAgICAgIC5zdGF0c0l0ZW0gc3Ryb25nIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIC5sdy10b29sdGlwIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgfQogICAgYF19KTt2YXIgemZhLENmYT1nKCgpPT57cGUoKTtVYSgpO3pmYT1pKHM9PndgCiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZXhwYW5kQnRuIiBAY2xpY2s9JHsoKT0+cy50b2dnbGVGdWxsUGFnZSgpfSB0aXRsZT0iJHtzLmlzRnVsbFBhZ2U/IkV4aXQgZnVsbCBwYWdlIjoiRnVsbCBwYWdlIn0iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtzLmlzRnVsbFBhZ2U/Imx1Y2lkZTpNaW5pbWl6ZTIiOiJsdWNpZGU6TWF4aW1pemUyIn0gLmljb25TaXplPSR7MTR9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICAgICAgJHtzLnNlcmllc1N0YXRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic3RhdHNCYXIiPgogICAgICAgICAgICAgICR7cy5zZXJpZXNTdGF0cy5tYXAoZT0+d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXRzU2VyaWVzIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzQ29sb3IiIHN0eWxlPSJiYWNrZ3JvdW5kOiR7ZS5jb2xvcn0iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzTmFtZSI+JHtlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5sYXRlc3QgPHN0cm9uZz4ke3MueUF4aXNGb3JtYXR0ZXIoZS5sYXRlc3QpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+bWluIDxzdHJvbmc+JHtzLnlBeGlzRm9ybWF0dGVyKGUubWluKX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0l0ZW0iPm1heCA8c3Ryb25nPiR7cy55QXhpc0Zvcm1hdHRlcihlLm1heCl9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5hdmcgPHN0cm9uZz4ke3MueUF4aXNGb3JtYXR0ZXIoZS5hdmcpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgIGAsInJlbmRlckNoYXJ0QXJlYSIpfSk7dmFyIFdjLENpLFRmYSxMaXQ9ZygoKT0+e3BlKCk7a3QoKTtTZmEoKTtNZmEoKTtDZmEoKTtmdSgpO25yKCk7V2M9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENpPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxUZmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWFyZWEiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRBcmVhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bTCgpXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe2F0dHJpYnV0ZTohMX0pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpTdHJpbmd9KV0sSz1bTCh7dHlwZTpOdW1iZXJ9KV0sbWU9W0woe3R5cGU6TnVtYmVyfSldLFdjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hhcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImNoYXJ0ImluIGosImhhcyIpLGdldDppKGo9PmouY2hhcnQsImdldCIpLHNldDppKChqLHVlKT0+e2ouY2hhcnQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sbyxsKSxXYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllc1N0YXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzZXJpZXNTdGF0cyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNlcmllc1N0YXRzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNlcmllc1N0YXRzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGQsdSksV2ModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0Z1bGxQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJpc0Z1bGxQYWdlImluIGosImhhcyIpLGdldDppKGo9PmouaXNGdWxsUGFnZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5pc0Z1bGxQYWdlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGIsdiksV2ModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGFiZWwiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5sYWJlbCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5sYWJlbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLFdjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzZXJpZXMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZXJpZXMsImdldCIpLHNldDppKChqLHVlKT0+e2ouc2VyaWVzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksV2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc0Zvcm1hdHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ieUF4aXNGb3JtYXR0ZXIiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai55QXhpc0Zvcm1hdHRlciwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai55QXhpc0Zvcm1hdHRlcj11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxDLF8pLFdjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9sbGluZ1dpbmRvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icm9sbGluZ1dpbmRvdyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnJvbGxpbmdXaW5kb3csImdldCIpLHNldDppKChqLHVlKT0+e2oucm9sbGluZ1dpbmRvdz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSwkLEUpLFdjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVhbHRpbWVNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJyZWFsdGltZU1vZGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5yZWFsdGltZU1vZGUsImdldCIpLHNldDppKChqLHVlKT0+e2oucmVhbHRpbWVNb2RlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGssUyksV2ModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc1NjYWxpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InlBeGlzU2NhbGluZyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnlBeGlzU2NhbGluZywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai55QXhpc1NjYWxpbmc9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sUCxSKSxXYyh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InlBeGlzTWF4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ5QXhpc01heCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnlBeGlzTWF4LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnlBeGlzTWF4PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFYsVyksV2ModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbEludGVydmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhdXRvU2Nyb2xsSW50ZXJ2YWwiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5hdXRvU2Nyb2xsSW50ZXJ2YWwsImdldCIpLHNldDppKChqLHVlKT0+e2ouYXV0b1Njcm9sbEludGVydmFsPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LEIsVSksV2MobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Rn0sbnVsbCx0KSxoZT1hPWUudmFsdWUsRiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSl9c3RhdGljIGRlbW89a2ZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1DaSh0aGlzLG8sbnVsbCk7Z2V0IGNoYXJ0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNoYXJ0KEYpe3RoaXMuI2U9Rn0jdD0oQ2kodGhpcyxsKSxDaSh0aGlzLGQsW10pKTtnZXQgc2VyaWVzU3RhdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VyaWVzU3RhdHMoRil7dGhpcy4jdD1GfSNhPShDaSh0aGlzLHUpLENpKHRoaXMsYiwhMSkpO2dldCBpc0Z1bGxQYWdlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzRnVsbFBhZ2UoRil7dGhpcy4jYT1GfSNzPShDaSh0aGlzLHYpLENpKHRoaXMsbSwiVW50aXRsZWQgQ2hhcnQiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhYmVsKEYpe3RoaXMuI3M9Rn0jaT0oQ2kodGhpcyxmKSxDaSh0aGlzLE0sW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlcmllcyhGKXt0aGlzLiNpPUZ9Z2V0IGNoYXJ0U2VyaWVzKCl7cmV0dXJuIHRoaXMuaW50ZXJuYWxDaGFydERhdGEubGVuZ3RoPjA/dGhpcy5pbnRlcm5hbENoYXJ0RGF0YTp0aGlzLnNlcmllc30jcj0oQ2kodGhpcyx6KSxDaSh0aGlzLEMsRj0+YCR7Rn0gTWJwc2ApKTtnZXQgeUF4aXNGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgeUF4aXNGb3JtYXR0ZXIoRil7dGhpcy4jcj1GfSNvPShDaSh0aGlzLF8pLENpKHRoaXMsJCwwKSk7Z2V0IHJvbGxpbmdXaW5kb3coKXtyZXR1cm4gdGhpcy4jb31zZXQgcm9sbGluZ1dpbmRvdyhGKXt0aGlzLiNvPUZ9I249KENpKHRoaXMsRSksQ2kodGhpcyxrLCExKSk7Z2V0IHJlYWx0aW1lTW9kZSgpe3JldHVybiB0aGlzLiNufXNldCByZWFsdGltZU1vZGUoRil7dGhpcy4jbj1GfSNsPShDaSh0aGlzLFMpLENpKHRoaXMsUCwiZHluYW1pYyIpKTtnZXQgeUF4aXNTY2FsaW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHlBeGlzU2NhbGluZyhGKXt0aGlzLiNsPUZ9I2M9KENpKHRoaXMsUiksQ2kodGhpcyxWLDEwMCkpO2dldCB5QXhpc01heCgpe3JldHVybiB0aGlzLiNjfXNldCB5QXhpc01heChGKXt0aGlzLiNjPUZ9I2Q9KENpKHRoaXMsVyksQ2kodGhpcyxCLDFlMykpO2dldCBhdXRvU2Nyb2xsSW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYXV0b1Njcm9sbEludGVydmFsKEYpe3RoaXMuI2Q9Rn1pbnRlcm5hbENoYXJ0RGF0YT0oQ2kodGhpcyxVKSxbXSk7YXV0b1Njcm9sbFRpbWVyPW51bGw7bGNCdW5kbGU9bnVsbDtzZXJpZXNBcGlzPW5ldyBNYXA7cHJpY2VMaW5lcz1uZXcgTWFwO3Rvb2x0aXBFbD1udWxsO0NIQVJUX0NPTE9SUz17ZGFyazpbImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMTczLjQgODAuNCUgNDAlKSIsImhzbCgyODAuMyA4Ny40JSA2Ni43JSkiLCJoc2woMjQuNiA5NSUgNTMuMSUpIl0sbGlnaHQ6WyJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgyODAuMyA0Ny43JSA1MC4yJSkiLCJoc2woMjAuNSA5MC4yJSA0OC4yJSkiXX07Y29uc3RydWN0b3IoKXtzdXBlcigpLHRhLnNldHVwKCksdGhpcy5yZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihhc3luYygpPT57aWYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMuY2hhcnQpdHJ5e3RoaXMuY2hhcnQucmVtb3ZlKCksdGhpcy5jaGFydD1udWxsLHRoaXMuc2VyaWVzQXBpcy5jbGVhcigpLHRoaXMucHJpY2VMaW5lcy5jbGVhcigpfWNhdGNoKEYpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlc3Ryb3lpbmcgY2hhcnQ6IixGKX19KX1zdGF0aWMgc3R5bGVzPV9mYTtyZW5kZXIoKXtyZXR1cm4gemZhKHRoaXMpfWNvbnZlcnREYXRhVG9MQyhGKXtyZXR1cm4gRi5tYXAoaj0+e2xldCB1ZT10eXBlb2Ygai54PT0ibnVtYmVyIj9qLng6bmV3IERhdGUoai54KS5nZXRUaW1lKCk7cmV0dXJue3RpbWU6TWF0aC5mbG9vcih1ZS8xZTMpLHZhbHVlOmoueX19KS5zb3J0KChqLHVlKT0+ai50aW1lLXVlLnRpbWUpfWhzbFRvUmdiYShGLGope2xldCB1ZT1GLm1hdGNoKC9oc2xcKChbXildKylcKS8pO2lmKCF1ZSlyZXR1cm4gRjtsZXQgbGU9dWVbMV0udHJpbSgpLnNwbGl0KC9ccysvKTtpZihsZS5sZW5ndGg8MylyZXR1cm4gRjtsZXQgUT1wYXJzZUZsb2F0KGxlWzBdKS8zNjAsaWU9cGFyc2VGbG9hdChsZVsxXSkvMTAwLHRlPXBhcnNlRmxvYXQobGVbMl0pLzEwMCxlZSxrZSxYO2lmKGllPT09MCllZT1rZT1YPXRlO2Vsc2V7bGV0IFo9aSgoQSxzZSxvZSk9PihvZTwwJiYob2UrPTEpLG9lPjEmJihvZS09MSksb2U8LjE2NjY2NjY2NjY2NjY2NjY2P0ErKHNlLUEpKjYqb2U6b2U8LjU/c2U6b2U8LjY2NjY2NjY2NjY2NjY2NjY/QSsoc2UtQSkqKC42NjY2NjY2NjY2NjY2NjY2LW9lKSo2OkEpLCJodWUycmdiIikseWU9dGU8LjU/dGUqKDEraWUpOnRlK2llLXRlKmllLHE9Mip0ZS15ZTtlZT1aKHEseWUsUSsxLzMpLGtlPVoocSx5ZSxRKSxYPVoocSx5ZSxRLTEvMyl9cmV0dXJuYHJnYmEoJHtNYXRoLnJvdW5kKGVlKjI1NSl9LCAke01hdGgucm91bmQoa2UqMjU1KX0sICR7TWF0aC5yb3VuZChYKjI1NSl9LCAke2p9KWB9Z2V0U2VyaWVzQ29sb3JzKEYpe3JldHVybiBGP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHR9YXBwbHlUaGVtZSgpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IEY9IXRoaXMuZ29CcmlnaHQsaj10aGlzLmdldFNlcmllc0NvbG9ycyhGKTt0aGlzLmNoYXJ0LmFwcGx5T3B0aW9ucyh7bGF5b3V0OntiYWNrZ3JvdW5kOnt0eXBlOnRoaXMubGNCdW5kbGUuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjpGPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6Rj8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOkY/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19fSk7bGV0IHVlPTA7Zm9yKGxldFssbGVdb2YgdGhpcy5zZXJpZXNBcGlzKXtsZXQgUT1qW3VlJWoubGVuZ3RoXTtsZS5hcHBseU9wdGlvbnMoe3RvcENvbG9yOnRoaXMuaHNsVG9SZ2JhKFEsRj8uNDouNSksYm90dG9tQ29sb3I6dGhpcy5oc2xUb1JnYmEoUSwwKSxsaW5lQ29sb3I6UX0pLHVlKyt9fXJlY3JlYXRlU2VyaWVzKEYpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IGo9IXRoaXMuZ29CcmlnaHQsdWU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoaik7Zm9yKGxldFssbGVdb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMuY2hhcnQucmVtb3ZlU2VyaWVzKGxlKTt0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKSxGLmZvckVhY2goKGxlLFEpPT57bGV0IGllPXVlW1EldWUubGVuZ3RoXSx0ZT10aGlzLmNoYXJ0LmFkZFNlcmllcyh0aGlzLmxjQnVuZGxlLkFyZWFTZXJpZXMse3RvcENvbG9yOnRoaXMuaHNsVG9SZ2JhKGllLGo/LjQ6LjUpLGJvdHRvbUNvbG9yOnRoaXMuaHNsVG9SZ2JhKGllLDApLGxpbmVDb2xvcjppZSxsaW5lV2lkdGg6MixsaW5lVHlwZTp0aGlzLmxjQnVuZGxlLkxpbmVUeXBlLkN1cnZlZCxsYXN0VmFsdWVWaXNpYmxlOiExLHByaWNlTGluZVZpc2libGU6ITEsY3Jvc3NoYWlyTWFya2VyVmlzaWJsZTohMCxjcm9zc2hhaXJNYXJrZXJSYWRpdXM6NH0pO3RlLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMobGUuZGF0YSkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLHRlLGxlLmRhdGEsaWUpLHRoaXMueUF4aXNTY2FsaW5nIT09ImR5bmFtaWMiJiZ0ZS5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KSx0aGlzLnNlcmllc0FwaXMuc2V0KGxlLm5hbWV8fGBzZXJpZXMtJHtRfWAsdGUpfSksdGhpcy5jb21wdXRlU3RhdHMoRil9Y29tcHV0ZVN0YXRzKEYpe2xldCBqPSF0aGlzLmdvQnJpZ2h0LHVlPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKGopO3RoaXMuc2VyaWVzU3RhdHM9Ri5tYXAoKGxlLFEpPT57bGV0IGllPWxlLmRhdGEubWFwKFo9PloueSk7aWYoaWUubGVuZ3RoPT09MClyZXR1cm57bmFtZTpsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLGxhdGVzdDowLG1pbjowLG1heDowLGF2ZzowLGNvbG9yOnVlW1EldWUubGVuZ3RoXX07bGV0IHRlPWllW2llLmxlbmd0aC0xXSxlZT1NYXRoLm1pbiguLi5pZSksa2U9TWF0aC5tYXgoLi4uaWUpLFg9TWF0aC5yb3VuZChpZS5yZWR1Y2UoKFoseWUpPT5aK3llLDApL2llLmxlbmd0aCoxMDApLzEwMDtyZXR1cm57bmFtZTpsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLGxhdGVzdDp0ZSxtaW46ZWUsbWF4OmtlLGF2ZzpYLGNvbG9yOnVlW1EldWUubGVuZ3RoXX19KX11cGRhdGVQcmljZUxpbmVzKEYsaix1ZSxsZSl7bGV0IFE9dGhpcy5wcmljZUxpbmVzLmdldChGKTtpZihRKWZvcihsZXQgWCBvZiBRKWoucmVtb3ZlUHJpY2VMaW5lKFgpO2lmKHVlLmxlbmd0aD09PTApe3RoaXMucHJpY2VMaW5lcy5zZXQoRixbXSk7cmV0dXJufWxldCBpZT11ZS5tYXAoWD0+WC55KSx0ZT1pZS5yZWR1Y2UoKFgsWik9PlgrWiwwKS9pZS5sZW5ndGgsZWU9TWF0aC5tYXgoLi4uaWUpLGtlPVtdO2tlLnB1c2goai5jcmVhdGVQcmljZUxpbmUoe3ByaWNlOk1hdGgucm91bmQodGUqMTAwKS8xMDAsY29sb3I6dGhpcy5oc2xUb1JnYmEobGUsLjUpLGxpbmVXaWR0aDoxLGxpbmVTdHlsZToyLGF4aXNMYWJlbFZpc2libGU6ITAsdGl0bGU6ImF2ZyJ9KSksdGU+MCYmKGVlLXRlKS90ZT4uMSYma2UucHVzaChqLmNyZWF0ZVByaWNlTGluZSh7cHJpY2U6ZWUsY29sb3I6dGhpcy5oc2xUb1JnYmEobGUsLjgpLGxpbmVXaWR0aDoxLGxpbmVTdHlsZToxLGF4aXNMYWJlbFZpc2libGU6ITAsdGl0bGU6Im1heCJ9KSksdGhpcy5wcmljZUxpbmVzLnNldChGLGtlKX1zZXR1cFRvb2x0aXAoKXt0aGlzLmNoYXJ0JiYodGhpcy50b29sdGlwRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy50b29sdGlwRWwuY2xhc3NOYW1lPSJsdy10b29sdGlwIix0aGlzLnRvb2x0aXBFbC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik/LmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsKSx0aGlzLmNoYXJ0LnN1YnNjcmliZUNyb3NzaGFpck1vdmUoRj0+e2lmKCF0aGlzLnRvb2x0aXBFbClyZXR1cm47aWYoIUYucG9pbnR8fCFGLnRpbWV8fEYucG9pbnQueDwwfHxGLnBvaW50Lnk8MCl7dGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJufWxldCBqPSF0aGlzLmdvQnJpZ2h0LHVlPWo/ImhzbCgwIDAlIDklKSI6ImhzbCgwIDAlIDEwMCUpIixsZT1qPyJoc2woMCAwJSA5NSUpIjoiaHNsKDAgMCUgOSUpIixRPWo/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDg5LjglKSIsaWU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoaiksdGU9IiIsZWU9MCxrZT0hMTtmb3IobGV0W3llLHFdb2YgdGhpcy5zZXJpZXNBcGlzKXtsZXQgQT1GLnNlcmllc0RhdGEuZ2V0KHEpO2lmKEEmJiJ2YWx1ZSJpbiBBJiZBLnZhbHVlIT09dm9pZCAwKXtrZT0hMDtsZXQgc2U9aWVbZWUlaWUubGVuZ3RoXSxvZT10aGlzLnlBeGlzRm9ybWF0dGVyKEEudmFsdWUpO3RlKz1gPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21hcmdpbjoke2VlPjA/IjZweCI6IjAifSAwOyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6JHtzZX07Ym9yZGVyLXJhZGl1czoycHg7Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo1MDA7Ij4ke3llfTo8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvO2ZvbnQtd2VpZ2h0OjYwMDsiPiR7b2V9PC9zcGFuPgogICAgICAgICAgPC9kaXY+YH1lZSsrfWlmKCFrZSl7dGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJufXRoaXMudG9vbHRpcEVsLmlubmVySFRNTD10ZSxPYmplY3QuYXNzaWduKHRoaXMudG9vbHRpcEVsLnN0eWxlLHtkaXNwbGF5OiJibG9jayIsYmFja2dyb3VuZDp1ZSxjb2xvcjpsZSxib3JkZXJDb2xvcjpRfSk7bGV0IFg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpLmNsaWVudFdpZHRoLFo9Ri5wb2ludC54KzE2O1orMjAwPlgmJihaPUYucG9pbnQueC0yMTYpLHRoaXMudG9vbHRpcEVsLnN0eWxlLmxlZnQ9YCR7Wn1weGAsdGhpcy50b29sdGlwRWwuc3R5bGUudG9wPWAke0YucG9pbnQueS0xNn1weGB9KSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsdGhpcy5sY0J1bmRsZT1hd2FpdCBRci5nZXRJbnN0YW5jZSgpLmxvYWRMaWdodHdlaWdodENoYXJ0cygpLGF3YWl0IG5ldyBQcm9taXNlKHVlPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodWUpKTtsZXQgRj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik7aWYoIUYpcmV0dXJuO2xldCBqPSF0aGlzLmdvQnJpZ2h0O3RyeXt0aGlzLmNoYXJ0PXRoaXMubGNCdW5kbGUuY3JlYXRlQ2hhcnQoRix7YXV0b1NpemU6ITAsbGF5b3V0OntiYWNrZ3JvdW5kOnt0eXBlOnRoaXMubGNCdW5kbGUuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjpqPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRTaXplOjEyLGF0dHJpYnV0aW9uTG9nbzohMX0sZ3JpZDp7dmVydExpbmVzOntjb2xvcjpqPyJoc2woMCAwJSA4LjUlKSI6ImhzbCgwIDAlIDk1LjUlKSJ9LGhvcnpMaW5lczp7Y29sb3I6aj8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifX0scmlnaHRQcmljZVNjYWxlOntib3JkZXJWaXNpYmxlOiExLHNjYWxlTWFyZ2luczp7dG9wOi4xLGJvdHRvbTouMX19LHRpbWVTY2FsZTp7Ym9yZGVyVmlzaWJsZTohMSx0aW1lVmlzaWJsZTohMCxzZWNvbmRzVmlzaWJsZTohMH0sY3Jvc3NoYWlyOnttb2RlOnRoaXMubGNCdW5kbGUuQ3Jvc3NoYWlyTW9kZS5NYWduZXR9LGhhbmRsZVNjcm9sbDohMSxoYW5kbGVTY2FsZTohMX0pO2xldCB1ZT10aGlzLnNlcmllcy5sZW5ndGg+MD90aGlzLnNlcmllczpbe25hbWU6ImNwdSIsZGF0YTpbe3g6IjIwMjUtMDEtMTVUMDM6MDA6MDAiLHk6MjV9LHt4OiIyMDI1LTAxLTE1VDA3OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxMTowMDowMCIseToyMH0se3g6IjIwMjUtMDEtMTVUMTU6MDA6MDAiLHk6MzV9LHt4OiIyMDI1LTAxLTE1VDE5OjAwOjAwIix5OjI1fV19LHtuYW1lOiJtZW1vcnkiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseToxMn0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MTB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseTo0MH1dfV07dGhpcy5pbnRlcm5hbENoYXJ0RGF0YT11ZSx0aGlzLnJlY3JlYXRlU2VyaWVzKHVlKSx0aGlzLnNldHVwVG9vbHRpcCgpfWNhdGNoKHVlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjaGFydDoiLHVlKX19YXN5bmMgdXBkYXRlZChGKXtpZihzdXBlci51cGRhdGVkKEYpLEYuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLmNoYXJ0JiZ0aGlzLmFwcGx5VGhlbWUoKSxGLmhhcygic2VyaWVzIikmJnRoaXMuY2hhcnQmJnRoaXMuc2VyaWVzLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwZGF0ZVNlcmllcyh0aGlzLnNlcmllcyksRi5oYXMoInlBeGlzRm9ybWF0dGVyIikmJnRoaXMuY2hhcnQsRi5oYXMoInJlYWx0aW1lTW9kZSIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5yZWFsdGltZU1vZGUmJnRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbD4wP3RoaXMuc3RhcnRBdXRvU2Nyb2xsKCk6dGhpcy5zdG9wQXV0b1Njcm9sbCgpKSxGLmhhcygiYXV0b1Njcm9sbEludGVydmFsIikmJnRoaXMuY2hhcnQmJih0aGlzLnN0b3BBdXRvU2Nyb2xsKCksdGhpcy5yZWFsdGltZU1vZGUmJnRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbD4wJiZ0aGlzLnN0YXJ0QXV0b1Njcm9sbCgpKSwoRi5oYXMoInlBeGlzU2NhbGluZyIpfHxGLmhhcygieUF4aXNNYXgiKSkmJnRoaXMuY2hhcnQpZm9yKGxldFssal1vZiB0aGlzLnNlcmllc0FwaXMpdGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyI/ai5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjp2b2lkIDB9KTpqLmFwcGx5T3B0aW9ucyh7YXV0b3NjYWxlSW5mb1Byb3ZpZGVyOmkoKCk9Pih7cHJpY2VSYW5nZTp7bWluVmFsdWU6MCxtYXhWYWx1ZTp0aGlzLnlBeGlzTWF4fX0pLCJhdXRvc2NhbGVJbmZvUHJvdmlkZXIiKX0pfWFzeW5jIHVwZGF0ZVNlcmllcyhGLGo9ITApe2lmKHRoaXMuY2hhcnQpdHJ5e2lmKHRoaXMuaW50ZXJuYWxDaGFydERhdGE9Rix0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5yZWFsdGltZU1vZGUpe2xldCB1ZT1EYXRlLm5vdygpLGxlPXVlLXRoaXMucm9sbGluZ1dpbmRvdztpZihGLmxlbmd0aCE9PXRoaXMuc2VyaWVzQXBpcy5zaXplKXRoaXMucmVjcmVhdGVTZXJpZXMoRik7ZWxzZXtsZXQgUT10aGlzLmdldFNlcmllc0NvbG9ycyghdGhpcy5nb0JyaWdodCk7Ri5mb3JFYWNoKChpZSx0ZSk9PntsZXQgZWU9aWUubmFtZXx8YHNlcmllcy0ke3RlfWAsa2U9dGhpcy5zZXJpZXNBcGlzLmdldChlZSk7aWYoIWtlKXJldHVybjtsZXQgWD1pZS5kYXRhLmZpbHRlcihaPT4odHlwZW9mIFoueD09Im51bWJlciI/Wi54Om5ldyBEYXRlKFoueCkuZ2V0VGltZSgpKT5sZSk7a2Uuc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyhYKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKGVlLGtlLFgsUVt0ZSVRLmxlbmd0aF0pfSksdGhpcy5jb21wdXRlU3RhdHMoRil9dHJ5e3RoaXMuY2hhcnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOk1hdGguZmxvb3IobGUvMWUzKSx0bzpNYXRoLmZsb29yKHVlLzFlMyl9KX1jYXRjaHt9aWYodGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyIpe2xldCBRPUYuZmxhdE1hcChpZT0+aWUuZGF0YS5maWx0ZXIodGU9Pih0eXBlb2YgdGUueD09Im51bWJlciI/dGUueDpuZXcgRGF0ZSh0ZS54KS5nZXRUaW1lKCkpPmxlKS5tYXAodGU9PnRlLnkpKTtpZihRLmxlbmd0aD4wKXtsZXQgaWU9TWF0aC5jZWlsKE1hdGgubWF4KC4uLlEpKjEuMSk7Zm9yKGxldFssdGVdb2YgdGhpcy5zZXJpZXNBcGlzKXRlLmFwcGx5T3B0aW9ucyh7YXV0b3NjYWxlSW5mb1Byb3ZpZGVyOmkoKCk9Pih7cHJpY2VSYW5nZTp7bWluVmFsdWU6MCxtYXhWYWx1ZTppZX19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KX19fWVsc2UgaWYoRi5sZW5ndGghPT10aGlzLnNlcmllc0FwaXMuc2l6ZSl0aGlzLnJlY3JlYXRlU2VyaWVzKEYpO2Vsc2V7bGV0IHVlPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKCF0aGlzLmdvQnJpZ2h0KTtGLmZvckVhY2goKGxlLFEpPT57bGV0IGllPWxlLm5hbWV8fGBzZXJpZXMtJHtRfWAsdGU9dGhpcy5zZXJpZXNBcGlzLmdldChpZSk7dGUmJih0ZS5zZXREYXRhKHRoaXMuY29udmVydERhdGFUb0xDKGxlLmRhdGEpKSx0aGlzLnVwZGF0ZVByaWNlTGluZXMoaWUsdGUsbGUuZGF0YSx1ZVtRJXVlLmxlbmd0aF0pKX0pLHRoaXMuY29tcHV0ZVN0YXRzKEYpfX1jYXRjaCh1ZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBjaGFydCBzZXJpZXM6Iix1ZSl9fWFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKXtpZighdGhpcy5jaGFydHx8dGhpcy5yb2xsaW5nV2luZG93PD0wKXJldHVybjtsZXQgRj1EYXRlLm5vdygpLGo9Ri10aGlzLnJvbGxpbmdXaW5kb3c7dHJ5e3RoaXMuY2hhcnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOk1hdGguZmxvb3Ioai8xZTMpLHRvOk1hdGguZmxvb3IoRi8xZTMpfSl9Y2F0Y2h7fX1hc3luYyBhcHBlbmREYXRhKEYpe3RoaXMuY2hhcnQmJkYuZm9yRWFjaCgoaix1ZSk9PntsZXQgbGU9ai5uYW1lfHxgc2VyaWVzLSR7dWV9YCxRPXRoaXMuc2VyaWVzQXBpcy5nZXQobGUpO2lmKCEoIVF8fGouZGF0YS5sZW5ndGg9PT0wKSlmb3IobGV0IGllIG9mIGouZGF0YSl7bGV0IHRlPXRoaXMuY29udmVydERhdGFUb0xDKFtpZV0pO3RlLmxlbmd0aD4wJiZRLnVwZGF0ZSh0ZVswXSl9fSl9YXN5bmMgdXBkYXRlT3B0aW9ucyhGKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LmFwcGx5T3B0aW9ucyhGKX1hc3luYyByZXNpemVDaGFydCgpe3RoaXMuY2hhcnQmJnRoaXMuY2hhcnQudGltZVNjYWxlKCkuZml0Q29udGVudCgpfWFzeW5jIGZvcmNlUmVzaXplKCl7YXdhaXQgdGhpcy5yZXNpemVDaGFydCgpfXRvZ2dsZUZ1bGxQYWdlKCl7dGhpcy5pc0Z1bGxQYWdlPSF0aGlzLmlzRnVsbFBhZ2UsdGhpcy5pc0Z1bGxQYWdlPyh0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS5pbnNldD0iMCIsdGhpcy5zdHlsZS56SW5kZXg9IjEwMDAwIix0aGlzLnN0eWxlLmhlaWdodD0iMTAwdmgiLHRoaXMuc3R5bGUucGFkZGluZz0iMCIsZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik6KHRoaXMuc3R5bGUucG9zaXRpb249IiIsdGhpcy5zdHlsZS5pbnNldD0iIix0aGlzLnN0eWxlLnpJbmRleD0iIix0aGlzLnN0eWxlLmhlaWdodD0iIix0aGlzLnN0eWxlLnBhZGRpbmc9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jaGFydD8udGltZVNjYWxlKCkuZml0Q29udGVudCgpfSl9c3RhcnRBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsVGltZXJ8fCh0aGlzLmF1dG9TY3JvbGxUaW1lcj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnVwZGF0ZVRpbWVXaW5kb3coKX0sdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWwpKX1zdG9wQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2Nyb2xsVGltZXIpLHRoaXMuYXV0b1Njcm9sbFRpbWVyPW51bGwpfXN0YXRpY3tDaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyICRmYT1nKCgpPT57TGl0KCl9KTtmdW5jdGlvbiBxaChzKXtyZXR1cm4gcz9FZmEubGlnaHQ6RWZhLmRhcmt9ZnVuY3Rpb24gamgocyxlKXtsZXQgdD1wYXJzZUludChzLnNsaWNlKDEsMyksMTYpLGE9cGFyc2VJbnQocy5zbGljZSgzLDUpLDE2KSxyPXBhcnNlSW50KHMuc2xpY2UoNSw3KSwxNik7cmV0dXJuYHJnYmEoJHt0fSwgJHthfSwgJHtyfSwgJHtlfSlgfWZ1bmN0aW9uIFBmYShzKXtsZXQgZT1zP0RmYTpMZmE7cmV0dXJue2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLHRleHRTdHlsZTp7Y29sb3I6ZS50ZXh0U2Vjb25kYXJ5LGZvbnRGYW1pbHk6Jy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZicsZm9udFNpemU6MTJ9LHRvb2x0aXA6e2JhY2tncm91bmRDb2xvcjplLmJnUHJpbWFyeSxib3JkZXJDb2xvcjplLmJvcmRlckRlZmF1bHQsdGV4dFN0eWxlOntjb2xvcjplLnRleHRQcmltYXJ5LGZvbnRTaXplOjEyfSxjb25maW5lOiEwfSxsZWdlbmQ6e3RleHRTdHlsZTp7Y29sb3I6ZS50ZXh0U2Vjb25kYXJ5LGZvbnRTaXplOjEyfX19fWZ1bmN0aW9uIFZoKHMpe3JldHVybiBzP0RmYTpMZmF9dmFyIERmYSxMZmEsRWZhLFp2PWcoKCk9PntwdCgpO0RmYT1XbC5jb2xvcnMubGlnaHQsTGZhPVdsLmNvbG9ycy5kYXJrLEVmYT17ZGFyazpbIiM2MGE1ZmEiLCIjMmRkNGJmIiwiI2E3OGJmYSIsIiNmYmJmMjQiLCIjMzRkMzk5IiwiI2ZiNzE4NSJdLGxpZ2h0OlsiIzNiODJmNiIsIiMxNGI4YTYiLCIjOGI1Y2Y2IiwiI2Y1OWUwYiIsIiMxMGI5ODEiLCIjZjQzZjVlIl19O2kocWgsImdldEVjaGFydHNTZXJpZXNDb2xvcnMiKTtpKGpoLCJoZXhUb1JnYmEiKTtpKFBmYSwiZ2V0RWNoYXJ0c1RoZW1lT3B0aW9ucyIpO2koVmgsImdldFRoZW1lQ29sb3JzIil9KTt2YXIgalhhLElmYSxidSxWWD1nKCgpPT57cGUoKTtrdCgpO2Z1KCk7WnYoKTtucigpO2pYYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSWZhPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxidT0oKCk9PntsZXQgcz13ZSxlLHQ9W10sYT1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEVjaGFydHNCYXNlIil9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W0woKV0salhhKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobz0+ImxhYmVsImluIG8sImhhcyIpLGdldDppKG89Pm8ubGFiZWwsImdldCIpLHNldDppKChvLGwpPT57by5sYWJlbD1sfSwic2V0Iil9LG1ldGFkYXRhOm59LHQsYSksbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9I2U9SWZhKHRoaXMsdCwiVW50aXRsZWQgQ2hhcnQiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwobil7dGhpcy4jZT1ufWNoYXJ0SW5zdGFuY2U9KElmYSh0aGlzLGEpLG51bGwpO2VjaGFydHNCdW5kbGU9bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0YS5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMuY2hhcnRJbnN0YW5jZSl0cnl7dGhpcy5jaGFydEluc3RhbmNlLmRpc3Bvc2UoKSx0aGlzLmNoYXJ0SW5zdGFuY2U9bnVsbH1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJFcnJvciBkaXNwb3NpbmcgRUNoYXJ0cyBpbnN0YW5jZToiLG4pfX0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsdGhpcy5lY2hhcnRzQnVuZGxlPWF3YWl0IFFyLmdldEluc3RhbmNlKCkubG9hZEVjaGFydHMoKSxhd2FpdCBuZXcgUHJvbWlzZShvPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobykpO2xldCBuPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKTtpZihuKXRyeXt0aGlzLmNoYXJ0SW5zdGFuY2U9dGhpcy5lY2hhcnRzQnVuZGxlLmluaXQobixudWxsLHtyZW5kZXJlcjoic3ZnIn0pLHRoaXMudXBkYXRlQ2hhcnQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuY2hhcnRJbnN0YW5jZT8ucmVzaXplKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUobil9Y2F0Y2gobyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgRUNoYXJ0czoiLG8pfX1hc3luYyB1cGRhdGVkKG4pe3N1cGVyLnVwZGF0ZWQobiksbi5oYXMoImdvQnJpZ2h0IikmJnRoaXMuY2hhcnRJbnN0YW5jZSYmdGhpcy5hcHBseVRoZW1lKCl9dXBkYXRlQ2hhcnQoKXtpZighdGhpcy5jaGFydEluc3RhbmNlKXJldHVybjtsZXQgbj1QZmEodGhpcy5nb0JyaWdodCksbz10aGlzLmJ1aWxkT3B0aW9uKCksbD17Li4ubiwuLi5vLHRleHRTdHlsZTp7Li4ubi50ZXh0U3R5bGUsLi4uby50ZXh0U3R5bGV8fHt9fSx0b29sdGlwOnsuLi5uLnRvb2x0aXAsLi4uby50b29sdGlwfHx7fX0sbGVnZW5kOnsuLi5uLmxlZ2VuZCwuLi5vLmxlZ2VuZHx8e30sdGV4dFN0eWxlOnsuLi5uLmxlZ2VuZD8udGV4dFN0eWxlfHx7fSwuLi5vLmxlZ2VuZD8udGV4dFN0eWxlfHx7fX19fTt0aGlzLmNoYXJ0SW5zdGFuY2Uuc2V0T3B0aW9uKGwsITApfWFwcGx5VGhlbWUoKXt0aGlzLnVwZGF0ZUNoYXJ0KCl9YXN5bmMgZm9yY2VSZXNpemUoKXt0aGlzLmNoYXJ0SW5zdGFuY2U/LnJlc2l6ZSgpfX19KSgpfSk7dmFyIEFmYSxOZmE9ZygoKT0+e3BlKCk7SXQoKTtFaXQoKTtBZmE9aSgoKT0+e2xldCBzPVsiL2FwaS91c2VycyIsIi9hcGkvb3JkZXJzIiwiL2FwaS9wcm9kdWN0cyIsIi9hcGkvYXV0aCIsIi9hcGkvc2VhcmNoIl0sZT1be25hbWU6IkdFVCIsZGF0YTpbMTI0MCw4OTAsNzIwLDIxMDAsNTYwXX0se25hbWU6IlBPU1QiLGRhdGE6WzMyMCw0NTAsMTgwLDg5MCw0MF19LHtuYW1lOiJQVVQiLGRhdGE6WzkwLDIxMCwxNTAsMzAsMTBdfV0sdD1bIlVTLUVhc3QiLCJVUy1XZXN0IiwiRVUiLCJBc2lhIiwiT3RoZXIiXSxhPVt7bmFtZToiUmVxdWVzdHMiLGRhdGE6WzQ1MDAsMzIwMCwyODAwLDE5MDAsNjAwXX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcj0+e2xldCBuPXIucXVlcnlTZWxlY3RvcigiI3ZlcnQtY2hhcnQiKSxvPXIucXVlcnlTZWxlY3RvcigiI2hvcml6LWNoYXJ0IiksbD1yLnF1ZXJ5U2VsZWN0b3IoIiNzdGFjay1jaGFydCIpO3IucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGQ9PntkLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24uc2VyaWVzPWUubWFwKGM9Pih7Li4uYyxkYXRhOmMuZGF0YS5tYXAoYj0+TWF0aC5yb3VuZChiKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpLG8uc2VyaWVzPWEubWFwKGM9Pih7Li4uYyxkYXRhOmMuZGF0YS5tYXAoYj0+TWF0aC5yb3VuZChiKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpLGwuc2VyaWVzPWUubWFwKGM9Pih7Li4uYyxkYXRhOmMuZGF0YS5tYXAoYj0+TWF0aC5yb3VuZChiKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpfSl9KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY2hhcnRSb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmFuZG9taXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Um93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0idmVydC1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVlc3RzIGJ5IEVuZHBvaW50In0KICAgICAgICAgICAgLmNhdGVnb3JpZXM9JHtzfQogICAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cj0+YCR7cn0gcmVxYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0iaG9yaXotY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJUcmFmZmljIGJ5IFJlZ2lvbiJ9CiAgICAgICAgICAgIC5jYXRlZ29yaWVzPSR7dH0KICAgICAgICAgICAgLnNlcmllcz0ke2F9CiAgICAgICAgICAgIC5ob3Jpem9udGFsPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke3I9PmAkeyhyLzFlMykudG9GaXhlZCgxKX1rYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgIGlkPSJzdGFjay1jaGFydCIKICAgICAgICAgIC5sYWJlbD0keyJTdGFja2VkOiBSZXF1ZXN0cyBieSBFbmRwb2ludCJ9CiAgICAgICAgICAuY2F0ZWdvcmllcz0ke3N9CiAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgIC5zdGFja2VkPSR7ITB9CiAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHtyPT5gJHtyfSByZXFgfQogICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIEJhciBjaGFydCB3aXRoIHZlcnRpY2FsLCBob3Jpem9udGFsLCBhbmQgc3RhY2tlZCBtb2RlcyDigKIKICAgICAgICAgIENsaWNrICdSYW5kb21pemUnIHRvIHVwZGF0ZSBkYXRhIHdpdGggYW5pbWF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIFVoLFVYPWcoKCk9PntwZSgpO3B0KCk7VWg9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAgIGRlZXMtdGlsZSB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KICAgIC5jaGFydEhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgfQogICAgLmNoYXJ0TGFiZWwgewogICAgICBmbGV4OiAxOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICB9CiAgICAuY2hhcnRDb250YWluZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgfQogIGBdfSk7dmFyIFJmYSxPZmE9ZygoKT0+e3BlKCk7VVgoKTtSZmE9Wy4uLlVoLEpgYF19KTt2YXIgRmZhLEJmYT1nKCgpPT57cGUoKTtGZmE9aShzPT53YAogICAgPGRlZXMtdGlsZT4KICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICA8L2RlZXMtdGlsZT4KICBgLCJyZW5kZXJDaGFydEJhciIpfSk7dmFyIHZnLFFsLEhmYSxFaXQ9ZygoKT0+e3BlKCk7VlgoKTtOZmEoKTtPZmEoKTtCZmEoKTtadigpO3ZnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxRbD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSGZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jaGFydC1iYXIiKV0sZSx0PVtdLGEscj1idSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0QmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe2F0dHJpYnV0ZTohMX0pXSx2Zyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhdGVnb3JpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImNhdGVnb3JpZXMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5jYXRlZ29yaWVzLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UuY2F0ZWdvcmllcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksdmcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlcmllcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlcmllcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNlcmllcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGQsdSksdmcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJob3Jpem9udGFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJob3Jpem9udGFsImluIEUsImhhcyIpLGdldDppKEU9PkUuaG9yaXpvbnRhbCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmhvcml6b250YWw9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLHZnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhY2tlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic3RhY2tlZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnN0YWNrZWQsImdldCIpLHNldDppKChFLEgpPT57RS5zdGFja2VkPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSx2Zyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dMZWdlbmQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2hvd0xlZ2VuZD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksdmcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZUZvcm1hdHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWVGb3JtYXR0ZXIiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZUZvcm1hdHRlciwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlRm9ybWF0dGVyPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sQyxfKSx2ZyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTokfSxudWxsLHQpLE89YT1lLnZhbHVlLCQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JH0pfXN0YXRpYyBkZW1vPUFmYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9UWwodGhpcyxvLFtdKTtnZXQgY2F0ZWdvcmllcygpe3JldHVybiB0aGlzLiNlfXNldCBjYXRlZ29yaWVzKCQpe3RoaXMuI2U9JH0jdD0oUWwodGhpcyxsKSxRbCh0aGlzLGQsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcygkKXt0aGlzLiN0PSR9I2E9KFFsKHRoaXMsdSksUWwodGhpcyxiLCExKSk7Z2V0IGhvcml6b250YWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaG9yaXpvbnRhbCgkKXt0aGlzLiNhPSR9I3M9KFFsKHRoaXMsdiksUWwodGhpcyxtLCExKSk7Z2V0IHN0YWNrZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3RhY2tlZCgkKXt0aGlzLiNzPSR9I2k9KFFsKHRoaXMsZiksUWwodGhpcyxNLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xlZ2VuZCgkKXt0aGlzLiNpPSR9I3I9KFFsKHRoaXMseiksUWwodGhpcyxDLCQ9PmAkeyR9YCkpO2dldCB2YWx1ZUZvcm1hdHRlcigpe3JldHVybiB0aGlzLiNyfXNldCB2YWx1ZUZvcm1hdHRlcigkKXt0aGlzLiNyPSR9c3RhdGljIHN0eWxlcz1SZmE7cmVuZGVyKCl7cmV0dXJuIEZmYSh0aGlzKX1hc3luYyB1cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy5jaGFydEluc3RhbmNlJiYoJC5oYXMoImNhdGVnb3JpZXMiKXx8JC5oYXMoInNlcmllcyIpfHwkLmhhcygiaG9yaXpvbnRhbCIpfHwkLmhhcygic3RhY2tlZCIpfHwkLmhhcygic2hvd0xlZ2VuZCIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0ICQ9VmgodGhpcy5nb0JyaWdodCksRT1xaCh0aGlzLmdvQnJpZ2h0KSxIPXRoaXMudmFsdWVGb3JtYXR0ZXIsaz17dHlwZToiY2F0ZWdvcnkiLGRhdGE6dGhpcy5jYXRlZ29yaWVzLGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOiQuYm9yZGVyU3Ryb25nfX0sYXhpc0xhYmVsOntjb2xvcjokLnRleHRNdXRlZH19LFM9e3R5cGU6InZhbHVlIixheGlzTGluZTp7c2hvdzohMX0sYXhpc0xhYmVsOntjb2xvcjokLnRleHRNdXRlZCxmb3JtYXR0ZXI6aShXPT5IKFcpLCJmb3JtYXR0ZXIiKX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOiQuYm9yZGVyU3VidGxlfX19LEk9dGhpcy5nb0JyaWdodD8uMTU6LjI1LFA9dGhpcy5ob3Jpem9udGFsP1swLDQsNCwwXTpbNCw0LDAsMF0sUj1bMCwwLDAsMF0sSz1bXSxWPXRoaXMuc2VyaWVzLm1hcCgoVyxtZSk9PntsZXQgQj1XLmNvbG9yfHxFW21lJUUubGVuZ3RoXTtyZXR1cm4gSy5wdXNoKHtuYW1lOlcubmFtZSxpdGVtU3R5bGU6e2NvbG9yOkJ9fSkse25hbWU6Vy5uYW1lLHR5cGU6ImJhciIsZGF0YTpXLmRhdGEsc3RhY2s6dGhpcy5zdGFja2VkPyJ0b3RhbCI6dm9pZCAwLGl0ZW1TdHlsZTp7Y29sb3I6amgoQixJKSxib3JkZXJDb2xvcjpCLGJvcmRlcldpZHRoOjEsYm9yZGVyUmFkaXVzOnRoaXMuc3RhY2tlZD9SOlB9LGJhck1heFdpZHRoOjQwLGJhckdhcDoiMjAlIixlbXBoYXNpczp7aXRlbVN0eWxlOntjb2xvcjpqaChCLEkrLjE1KSxib3JkZXJDb2xvcjpCLGJvcmRlcldpZHRoOjEuNX19fX0pO2lmKHRoaXMuc3RhY2tlZCYmVi5sZW5ndGg+MCl7bGV0IFc9VltWLmxlbmd0aC0xXTtXLml0ZW1TdHlsZS5ib3JkZXJSYWRpdXM9UH1yZXR1cm57dG9vbHRpcDp7dHJpZ2dlcjoiYXhpcyIsYXhpc1BvaW50ZXI6e3R5cGU6InNoYWRvdyJ9LGZvcm1hdHRlcjppKFc9PntsZXQgbWU9QXJyYXkuaXNBcnJheShXKT9XOltXXSxCPWA8c3Ryb25nPiR7bWVbMF0uYXhpc1ZhbHVlTGFiZWx9PC9zdHJvbmc+PGJyLz5gO2ZvcihsZXQgVSBvZiBtZSl7bGV0IEY9YDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MTBweDt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6JHtVLmJvcmRlckNvbG9yfHxVLmNvbG9yfTsiPjwvc3Bhbj5gO0IrPWAke0Z9JHtVLnNlcmllc05hbWV9OiA8c3Ryb25nPiR7SChVLnZhbHVlKX08L3N0cm9uZz48YnIvPmB9cmV0dXJuIEJ9LCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGRhdGE6S306e3Nob3c6ITF9LGdyaWQ6e2xlZnQ6MTYscmlnaHQ6MTYsdG9wOjE2LGJvdHRvbTp0aGlzLnNob3dMZWdlbmQmJnRoaXMuc2VyaWVzLmxlbmd0aD4xPzQwOjE2LGNvbnRhaW5MYWJlbDohMH0seEF4aXM6dGhpcy5ob3Jpem9udGFsP1M6ayx5QXhpczp0aGlzLmhvcml6b250YWw/azpTLHNlcmllczpWfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUWwodGhpcyxfKX1zdGF0aWN7UWwoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIHFmYT1nKCgpPT57RWl0KCl9KTt2YXIgamZhLFZmYT1nKCgpPT57cGUoKTtJdCgpO1BpdCgpO2pmYT1pKCgpPT57bGV0IHM9W3tuYW1lOiJEb2N1bWVudHMiLHZhbHVlOjQyfSx7bmFtZToiTWVkaWEiLHZhbHVlOjI4fSx7bmFtZToiQXBwbGljYXRpb25zIix2YWx1ZToxNX0se25hbWU6IlN5c3RlbSIsdmFsdWU6MTB9LHtuYW1lOiJPdGhlciIsdmFsdWU6NX1dLGU9W3tuYW1lOiJIZWFsdGh5Iix2YWx1ZToxNTZ9LHtuYW1lOiJXYXJuaW5nIix2YWx1ZToyM30se25hbWU6IkNyaXRpY2FsIix2YWx1ZTo4fSx7bmFtZToiVW5rbm93biIsdmFsdWU6M31dLHQ9W3tuYW1lOiJBUEkiLHZhbHVlOjQ1MjAwfSx7bmFtZToiU3RhdGljIEFzc2V0cyIsdmFsdWU6MjMxMDB9LHtuYW1lOiJXZWJTb2NrZXQiLHZhbHVlOjEyODAwfSx7bmFtZToiR3JhcGhRTCIsdmFsdWU6ODkwMH1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCByPWEucXVlcnlTZWxlY3RvcigiI2Rpc2stY2hhcnQiKSxuPWEucXVlcnlTZWxlY3RvcigiI3N0YXR1cy1jaGFydCIpLG89YS5xdWVyeVNlbGVjdG9yKCIjdHJhZmZpYy1jaGFydCIpO2EucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHA9PntwLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZwLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IuZGF0YT1zLm1hcCh1PT4oey4uLnUsdmFsdWU6TWF0aC5yb3VuZCh1LnZhbHVlKiguNStNYXRoLnJhbmRvbSgpKSl9KSksbi5kYXRhPWUubWFwKHU9Pih7Li4udSx2YWx1ZTpNYXRoLnJvdW5kKHUudmFsdWUqKC4zK01hdGgucmFuZG9tKCkqMS40KSl9KSksby5kYXRhPXQubWFwKHU9Pih7Li4udSx2YWx1ZTpNYXRoLnJvdW5kKHUudmFsdWUqKC41K01hdGgucmFuZG9tKCkpKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0iZGlzay1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2sgVXNhZ2UgKEdCKSJ9CiAgICAgICAgICAgIC5kYXRhPSR7c30KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7YX0gR0JgfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0ic3RhdHVzLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBTdGF0dXMifQogICAgICAgICAgICAuZGF0YT0ke2V9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAke2F9IHNlcnZpY2VzYH0KICAgICAgICAgICAgLmlubmVyUmFkaXVzUGVyY2VudD0keyIwJSJ9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgaWQ9InRyYWZmaWMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiVHJhZmZpYyBEaXN0cmlidXRpb24ifQogICAgICAgICAgLmRhdGE9JHt0fQogICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7KGEvMWUzKS50b0ZpeGVkKDEpfWsgcmVxYH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIERvbnV0IGNoYXJ0IHdpdGggY29uZmlndXJhYmxlIGlubmVyIHJhZGl1cyAoc2V0IHRvIDAlIGZvciBmdWxsIHBpZSkg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YSB3aXRoIGFuaW1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBVZmEsV2ZhPWcoKCk9PntwZSgpO1VYKCk7VWZhPVsuLi5VaCxKYAogICAgOmhvc3QgewogICAgICBoZWlnaHQ6IDM2MHB4OwogICAgfQogICAgLmNoYXJ0Q29udGFpbmVyIHsKICAgICAgaW5zZXQ6IDEycHggMDsKICAgIH0KICBgXX0pO3ZhciBHZmEsS2ZhPWcoKCk9PntwZSgpO0dmYT1pKHM9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0RG9udXQiKX0pO3ZhciBYdixuMixZZmEsUGl0PWcoKCk9PntwZSgpO1ZYKCk7VmZhKCk7V2ZhKCk7S2ZhKCk7WnYoKTtYdj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbjI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFlmYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtZG9udXQiKV0sZSx0PVtdLGEscj1idSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0RG9udXQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7YXR0cmlidXRlOiExfSldLFh2KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZGF0YSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmRhdGEsImdldCIpLHNldDppKChfLE8pPT57Xy5kYXRhPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxYdih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNob3dMZWdlbmQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2hvd0xlZ2VuZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksWHYodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGFiZWxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93TGFiZWxzImluIF8sImhhcyIpLGdldDppKF89Pl8uc2hvd0xhYmVscywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNob3dMYWJlbHM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLFh2KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5uZXJSYWRpdXNQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbm5lclJhZGl1c1BlcmNlbnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pbm5lclJhZGl1c1BlcmNlbnQsImdldCIpLHNldDppKChfLE8pPT57Xy5pbm5lclJhZGl1c1BlcmNlbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLFh2KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWVGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InZhbHVlRm9ybWF0dGVyImluIF8sImhhcyIpLGdldDppKF89Pl8udmFsdWVGb3JtYXR0ZXIsImdldCIpLHNldDppKChfLE8pPT57Xy52YWx1ZUZvcm1hdHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksWHYobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1qZmE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPW4yKHRoaXMsbyxbXSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShDKXt0aGlzLiNlPUN9I3Q9KG4yKHRoaXMsbCksbjIodGhpcyxkLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0xlZ2VuZChDKXt0aGlzLiN0PUN9I2E9KG4yKHRoaXMsdSksbjIodGhpcyxiLCEwKSk7Z2V0IHNob3dMYWJlbHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xhYmVscyhDKXt0aGlzLiNhPUN9I3M9KG4yKHRoaXMsdiksbjIodGhpcyxtLCI1NSUiKSk7Z2V0IGlubmVyUmFkaXVzUGVyY2VudCgpe3JldHVybiB0aGlzLiNzfXNldCBpbm5lclJhZGl1c1BlcmNlbnQoQyl7dGhpcy4jcz1DfSNpPShuMih0aGlzLGYpLG4yKHRoaXMsTSxDPT5gJHtDfWApKTtnZXQgdmFsdWVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsdWVGb3JtYXR0ZXIoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9VWZhO3JlbmRlcigpe3JldHVybiBHZmEodGhpcyl9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpLHRoaXMuY2hhcnRJbnN0YW5jZSYmKEMuaGFzKCJkYXRhIil8fEMuaGFzKCJzaG93TGVnZW5kIil8fEMuaGFzKCJzaG93TGFiZWxzIil8fEMuaGFzKCJpbm5lclJhZGl1c1BlcmNlbnQiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBDPVZoKHRoaXMuZ29CcmlnaHQpLF89cWgodGhpcy5nb0JyaWdodCksTz10aGlzLmdvQnJpZ2h0Py4xNTouMiwkPVtdLEU9dGhpcy5kYXRhLm1hcCgoayxTKT0+e2xldCBJPWsuY29sb3J8fF9bUyVfLmxlbmd0aF07cmV0dXJuICQucHVzaCh7bmFtZTprLm5hbWUsaXRlbVN0eWxlOntjb2xvcjpJfX0pLHtuYW1lOmsubmFtZSx2YWx1ZTprLnZhbHVlLGl0ZW1TdHlsZTp7Y29sb3I6amgoSSxPKSxib3JkZXJDb2xvcjpJLGJvcmRlcldpZHRoOjF9LGVtcGhhc2lzOntpdGVtU3R5bGU6e2NvbG9yOmpoKEksTysuMTUpLGJvcmRlckNvbG9yOkksYm9yZGVyV2lkdGg6MS41fX19fSksSD10aGlzLnZhbHVlRm9ybWF0dGVyO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIixmb3JtYXR0ZXI6aShrPT5gJHtgPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjoke2suZGF0YT8uaXRlbVN0eWxlPy5ib3JkZXJDb2xvcnx8ay5jb2xvcn07Ij48L3NwYW4+YH0ke2submFtZX06IDxzdHJvbmc+JHtIKGsudmFsdWUpfTwvc3Ryb25nPiAoJHtrLnBlcmNlbnR9JSlgLCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZD97b3JpZW50OiJ2ZXJ0aWNhbCIscmlnaHQ6MTYsdG9wOiJjZW50ZXIiLGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGl0ZW1HYXA6MTIsZGF0YTokLGZvcm1hdHRlcjppKGs9PntsZXQgUz10aGlzLmRhdGEuZmluZChJPT5JLm5hbWU9PT1rKTtyZXR1cm4gUz9gJHtrfSAgJHtIKFMudmFsdWUpfWA6a30sImZvcm1hdHRlciIpfTp7c2hvdzohMX0sc2VyaWVzOlt7dHlwZToicGllIixyYWRpdXM6W3RoaXMuaW5uZXJSYWRpdXNQZXJjZW50LCI4NSUiXSxjZW50ZXI6dGhpcy5zaG93TGVnZW5kP1siMzUlIiwiNTAlIl06WyI1MCUiLCI1MCUiXSxhdm9pZExhYmVsT3ZlcmxhcDohMCxwYWRBbmdsZToyLGl0ZW1TdHlsZTp7Ym9yZGVyUmFkaXVzOjR9LGxhYmVsOnRoaXMuc2hvd0xhYmVscz97c2hvdzohMCxmb3JtYXR0ZXI6IntifToge2R9JSIsZm9udFNpemU6MTEsY29sb3I6Qy50ZXh0U2Vjb25kYXJ5LHRleHRCb3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifTp7c2hvdzohMX0sZGF0YTpFfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxuMih0aGlzLHopfXN0YXRpY3tuMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgWmZhPWcoKCk9PntQaXQoKX0pO3ZhciBYZmEsUWZhPWcoKCk9PntwZSgpO0l0KCk7SWl0KCk7WGZhPWkoKCk9PntsZXQgcz1be3ZhbHVlOjYwLGNvbG9yOiJoc2woMTQyIDc2JSAzNiUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMzggOTIlIDUwJSkifSx7dmFsdWU6MTAwLGNvbG9yOiJoc2woMCA3MiUgNTAlKSJ9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjcHUtZ2F1Z2UiKSxhPWUucXVlcnlTZWxlY3RvcigiI21lbS1nYXVnZSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjc2xhLWdhdWdlIiksbj1udWxsO2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGw9PntsZXQgcD1sLnRleHQ/LnRyaW0oKTtwPT09IkFuaW1hdGUiP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bnx8KG49d2luZG93LnNldEludGVydmFsKCgpPT57dC52YWx1ZT1NYXRoLnJvdW5kKDMwK01hdGgucmFuZG9tKCkqNjApLGEudmFsdWU9TWF0aC5yb3VuZCg0MCtNYXRoLnJhbmRvbSgpKjUwKSxyLnZhbHVlPU1hdGgucm91bmQoKDk1K01hdGgucmFuZG9tKCkqNSkqMTAwKS8xMDB9LDJlMykpfSk6cD09PSJTdG9wIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChuKSxuPW51bGwpfSk6cD09PSJTcGlrZSImJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC52YWx1ZT05NSxhLnZhbHVlPTg4LHIudmFsdWU9OTYuNX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmdhdWdlUm93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BbmltYXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3A8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U3Bpa2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2VSb3ciPgogICAgICAgICAgPGRlZXMtY2hhcnQtZ2F1Z2UKICAgICAgICAgICAgaWQ9ImNwdS1nYXVnZSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNQVSBVc2FnZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezQyfQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnRocmVzaG9sZHM9JHtzfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1nYXVnZQogICAgICAgICAgICBpZD0ibWVtLWdhdWdlIgogICAgICAgICAgICAubGFiZWw9JHsiTWVtb3J5IFVzYWdlIn0KICAgICAgICAgICAgLnZhbHVlPSR7Njd9CiAgICAgICAgICAgIC51bml0PSR7IiUifQogICAgICAgICAgICAudGhyZXNob2xkcz0ke3N9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWdhdWdlPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWdhdWdlCiAgICAgICAgICAgIGlkPSJzbGEtZ2F1Z2UiCiAgICAgICAgICAgIC5sYWJlbD0keyJTTEEgVXB0aW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7OTkuOH0KICAgICAgICAgICAgLm1pbj0kezk1fQogICAgICAgICAgICAubWF4PSR7MTAwfQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnNob3dUaWNrcz0keyEwfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBHYXVnZSBjaGFydCB3aXRoIGFuaW1hdGVkIHZhbHVlIHRyYW5zaXRpb25zIGFuZCB0aHJlc2hvbGQgY29sb3Jpbmcg4oCiCiAgICAgICAgICBDbGljayAnQW5pbWF0ZScgZm9yIGxpdmUgdXBkYXRlcywgJ1NwaWtlJyB0byBzaW11bGF0ZSBoaWdoIGxvYWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgSmZhLGVtYT1nKCgpPT57cGUoKTtVWCgpO0pmYT1bLi4uVWgsSmAKICAgIDpob3N0IHsKICAgICAgaGVpZ2h0OiAzMjBweDsKICAgIH0KICBgXX0pO3ZhciB0bWEsYW1hPWcoKCk9PntwZSgpO3RtYT1pKHM9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0R2F1Z2UiKX0pO3ZhciB4ZyxKbCxzbWEsSWl0PWcoKCk9PntwZSgpO1ZYKCk7UWZhKCk7ZW1hKCk7YW1hKCk7WnYoKTt4Zz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSmw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHNtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtZ2F1Z2UiKV0sZSx0PVtdLGEscj1idSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0R2F1Z2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk51bWJlcn0pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSx4Zyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ2YWx1ZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnZhbHVlLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudmFsdWU9SH0sInNldCIpfSxtZXRhZGF0YTokfSxvLGwpLHhnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJtaW4iaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5taW4sImdldCIpLHNldDppKChFLEgpPT57RS5taW49SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLHhnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJtYXgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5tYXgsImdldCIpLHNldDppKChFLEgpPT57RS5tYXg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLHhnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidW5pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idW5pdCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnVuaXQsImdldCIpLHNldDppKChFLEgpPT57RS51bml0PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSx4Zyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRocmVzaG9sZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRocmVzaG9sZHMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS50aHJlc2hvbGRzLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudGhyZXNob2xkcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seikseGcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGlja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dUaWNrcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dUaWNrcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNob3dUaWNrcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXykseGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1YZmE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPUpsKHRoaXMsbywwKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoJCl7dGhpcy4jZT0kfSN0PShKbCh0aGlzLGwpLEpsKHRoaXMsZCwwKSk7Z2V0IG1pbigpe3JldHVybiB0aGlzLiN0fXNldCBtaW4oJCl7dGhpcy4jdD0kfSNhPShKbCh0aGlzLHUpLEpsKHRoaXMsYiwxMDApKTtnZXQgbWF4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1heCgkKXt0aGlzLiNhPSR9I3M9KEpsKHRoaXMsdiksSmwodGhpcyxtLCIlIikpO2dldCB1bml0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHVuaXQoJCl7dGhpcy4jcz0kfSNpPShKbCh0aGlzLGYpLEpsKHRoaXMsTSxbXSkpO2dldCB0aHJlc2hvbGRzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRocmVzaG9sZHMoJCl7dGhpcy4jaT0kfSNyPShKbCh0aGlzLHopLEpsKHRoaXMsQywhMCkpO2dldCBzaG93VGlja3MoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1RpY2tzKCQpe3RoaXMuI3I9JH1zdGF0aWMgc3R5bGVzPUpmYTtyZW5kZXIoKXtyZXR1cm4gdG1hKHRoaXMpfWFzeW5jIHVwZGF0ZWQoJCl7c3VwZXIudXBkYXRlZCgkKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJigkLmhhcygidmFsdWUiKXx8JC5oYXMoIm1pbiIpfHwkLmhhcygibWF4Iil8fCQuaGFzKCJ1bml0Iil8fCQuaGFzKCJ0aHJlc2hvbGRzIil8fCQuaGFzKCJzaG93VGlja3MiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCAkPVZoKHRoaXMuZ29CcmlnaHQpLEg9cWgodGhpcy5nb0JyaWdodClbMF0saztpZih0aGlzLnRocmVzaG9sZHMubGVuZ3RoPjApe2xldCBTPVsuLi50aGlzLnRocmVzaG9sZHNdLnNvcnQoKEksUCk9PkkudmFsdWUtUC52YWx1ZSk7az1TLm1hcChJPT5bKEkudmFsdWUtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksSS5jb2xvcl0pLGtbay5sZW5ndGgtMV1bMF08MSYmay5wdXNoKFsxLFNbUy5sZW5ndGgtMV0uY29sb3JdKX1lbHNlIGs9W1sxLEhdXTtyZXR1cm57c2VyaWVzOlt7dHlwZToiZ2F1Z2UiLG1pbjp0aGlzLm1pbixtYXg6dGhpcy5tYXgsc3RhcnRBbmdsZToyMjAsZW5kQW5nbGU6LTQwLHByb2dyZXNzOntzaG93OiEwLHdpZHRoOjE0LHJvdW5kQ2FwOiEwfSxwb2ludGVyOntzaG93OiEwLGxlbmd0aDoiNjAlIix3aWR0aDo1LGl0ZW1TdHlsZTp7Y29sb3I6ImF1dG8ifX0sYXhpc0xpbmU6e2xpbmVTdHlsZTp7d2lkdGg6MTQsY29sb3I6ayxvcGFjaXR5Oi4zfX0sYXhpc1RpY2s6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6LTIwLGxlbmd0aDo2LGxpbmVTdHlsZTp7Y29sb3I6JC5ib3JkZXJTdHJvbmcsd2lkdGg6MX19LHNwbGl0TGluZTp7c2hvdzp0aGlzLnNob3dUaWNrcyxkaXN0YW5jZTotMjQsbGVuZ3RoOjEwLGxpbmVTdHlsZTp7Y29sb3I6JC50ZXh0TXV0ZWQsd2lkdGg6Mn19LGF4aXNMYWJlbDp7c2hvdzp0aGlzLnNob3dUaWNrcyxkaXN0YW5jZTozMCxjb2xvcjokLnRleHRNdXRlZCxmb250U2l6ZToxMX0sZGV0YWlsOnt2YWx1ZUFuaW1hdGlvbjohMCxmb250U2l6ZToyOCxmb250V2VpZ2h0OjYwMCxvZmZzZXRDZW50ZXI6WzAsIjY1JSJdLGNvbG9yOiQudGV4dFByaW1hcnksZm9ybWF0dGVyOmB7dmFsdWV9JHt0aGlzLnVuaXR9YH0sdGl0bGU6e3Nob3c6ITF9LGRhdGE6W3t2YWx1ZTp0aGlzLnZhbHVlfV19XX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEpsKHRoaXMsXyl9c3RhdGlje0psKGEsdCl9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBpbWE9ZygoKT0+e0lpdCgpfSk7dmFyIHJtYSxvbWE9ZygoKT0+e3BlKCk7SXQoKTtybWE9aSgoKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiNzdHJ1Y3R1cmVkLWxvZyIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIjcmF3LWxvZyIpLGEscixuPVsiU2VydmVyIiwiRGF0YWJhc2UiLCJBUEkiLCJBdXRoIiwiQ2FjaGUiLCJRdWV1ZSIsIldlYlNvY2tldCIsIlNjaGVkdWxlciJdLG89e2RlYnVnOlsiTG9hZGluZyBtb2R1bGU6IHt7bW9kdWxlfX0iLCJDYWNoZSBoaXQgZm9yIGtleToge3trZXl9fSIsIlNRTCBxdWVyeSBleGVjdXRlZCBpbiB7e3RpbWV9fW1zIiwiUmVxdWVzdCBoZWFkZXJzOiB7e2hlYWRlcnN9fSIsIkVudmlyb25tZW50IHZhcmlhYmxlIGxvYWRlZDoge3t2YXJ9fSJdLGluZm86WyJSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19IiwiVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5IiwiUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUiLCdTY2hlZHVsZWQgdGFzayAie3t0YXNrfX0iIHN0YXJ0ZWQnLCJXZWJTb2NrZXQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmcm9tIHt7aXB9fSJdLHdhcm46WyJTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpIiwiTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JSIsIlJhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fSIsIkRlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19IiwiQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzIl0sZXJyb3I6WyJEYXRhYmFzZSBjb25uZWN0aW9uIGxvc3Q6IHt7ZXJyb3J9fSIsIkZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6IHt7ZXJyb3J9fSIsIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciB7e3VzZXJ9fSIsIkZpbGUgbm90IGZvdW5kOiB7e3BhdGh9fSIsIlNlcnZpY2UgdW5hdmFpbGFibGU6IHt7c2VydmljZX19Il0sc3VjY2VzczpbIlNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0IHt7cG9ydH19IiwiRGF0YWJhc2UgbWlncmF0aW9uIGNvbXBsZXRlZCIsIkJhY2t1cCBjb21wbGV0ZWQ6IHt7c2l6ZX19IE1CIiwiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQiLCJIZWFsdGggY2hlY2sgcGFzc2VkOiBhbGwgc3lzdGVtcyBvcGVyYXRpb25hbCJdfSxsPVsiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ1LjEyM1pceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtuZ2lueF0gR0VUIC9hcGkvaGVhbHRoIDIwMCAtIDJtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS40NTZaXHgxQlswbSBceDFCWzMzbVdBUk5ceDFCWzBtICBbcmVkaXNdIENvbm5lY3Rpb24gcG9vbCBydW5uaW5nIGxvdzogMy8xMCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS43ODlaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbbW9uZ29kYl0gUXVlcnkgdGltZW91dCBhZnRlciAzMDAwMG1zIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjAxMlpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFthcHBdIFByb2Nlc3NpbmcgYmF0Y2ggam9iICN7e2pvYklkfX0iLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuMzQ1Wlx4MUJbMG0gXHgxQlszMm1PS1x4MUJbMG0gICAgW2hlYWx0aF0gQWxsIHNlcnZpY2VzIGhlYWx0aHkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuNjc4Wlx4MUJbMG0gXHgxQlszNm1JTkZPXHgxQlswbSAgW2thZmthXSBNZXNzYWdlIGNvbnN1bWVkIGZyb20gdG9waWM6IGV2ZW50cyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4wMDFaXHgxQlswbSBceDFCWzM1bURFQlVHXHgxQlswbSBbZ3JwY10gUmVxdWVzdCByZWNlaXZlZDogR2V0VXNlcihpZD17e3VzZXJJZH19KSIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4yMzRaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbYXV0aF0gVG9rZW4gdmFsaWRhdGlvbiBmYWlsZWQ6IGV4cGlyZWQiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuNTY3Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JhdGUtbGltaXRdIElQIHt7aXB9fSBhcHByb2FjaGluZyByYXRlIGxpbWl0IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3Ljg5MFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFt3ZWJzb2NrZXRdIENsaWVudCBjb25uZWN0ZWQ6IHNlc3Npb249e3tzZXNzaW9ufX0iLGBceDFCWzMxbUVycm9yOiBDb25uZWN0aW9uIHJlZnVzZWRceDFCWzBtCiAgICBhdCBUY3BDb25uZWN0aW9uLmNvbm5lY3QgKC9hcHAvbm9kZV9tb2R1bGVzL3BnL2xpYi9jb25uZWN0aW9uLmpzOjEyOjE1KQogICAgYXQgUG9vbC5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvcG9vbC5qczo0NToyMykKICAgIGF0IGFzeW5jIERhdGFiYXNlU2VydmljZS5xdWVyeSAoL2FwcC9zcmMvZGIvc2VydmljZS50czo4OToxMilgXSxwPWkoKCk9PntsZXQgbT1bImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsInN1Y2Nlc3MiXSxmPVsuMiwuNSwuMTUsLjEsLjA1XSx5PU1hdGgucmFuZG9tKCksTT0wLHo9ImluZm8iO2ZvcihsZXQgJD0wOyQ8Zi5sZW5ndGg7JCsrKWlmKE0rPWZbJF0seTxNKXt6PW1bJF07YnJlYWt9bGV0IE49bltNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqbi5sZW5ndGgpXSxDPW9bel0sTz1DW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpDLmxlbmd0aCldLnJlcGxhY2UoInt7bW9kdWxlfX0iLFsiZXhwcmVzcyIsIm1vbmdvb3NlIiwicmVkaXMiLCJzb2NrZXQuaW8iXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e2tleX19IiwidXNlcjoiK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3RpbWV9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo1MDApKzUwKSkucmVwbGFjZSgie3toZWFkZXJzfX0iLCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24sIEF1dGhvcml6YXRpb246IEJlYXJlciAuLi4iKS5yZXBsYWNlKCJ7e3Zhcn19IixbIk5PREVfRU5WIiwiREFUQUJBU0VfVVJMIiwiQVBJX0tFWSIsIlBPUlQiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e21ldGhvZH19IixbIkdFVCIsIlBPU1QiLCJQVVQiLCJERUxFVEUiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e3BhdGh9fSIsWyIvYXBpL3VzZXJzIiwiL2FwaS9hdXRoL2xvZ2luIiwiL2FwaS9wcm9kdWN0cyIsIi9oZWFsdGgiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e3VzZXJJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e2pvYklkfX0iLCJqb2JfIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwxMSkpLnJlcGxhY2UoInt7dGFza319IixbImNsZWFudXAiLCJiYWNrdXAiLCJyZXBvcnQtZ2VuZXJhdGlvbiIsImNhY2hlLXJlZnJlc2giXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e2lwfX0iLGAxOTIuMTY4LjEuJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU1KX1gKS5yZXBsYWNlKCJ7e3F1ZXJ5fX0iLCJTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIC4uLiIpLnJlcGxhY2UoInt7cGVyY2VudH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSs3MCkpLnJlcGxhY2UoInt7ZW5kcG9pbnR9fSIsIi9hcGkvdjEvbGVnYWN5IikucmVwbGFjZSgie3tkYXlzfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMzApKzEpKS5yZXBsYWNlKCJ7e2Vycm9yfX0iLFsiRUNPTk5SRUZVU0VEIiwiRVRJTUVET1VUIiwiRU5PVEZPVU5EIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3t1c2VyfX0iLCJ1c2VyXyIrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMykpLnJlcGxhY2UoInt7c2VydmljZX19IixbIlJlZGlzIiwiTW9uZ29EQiIsIkVsYXN0aWNTZWFyY2giXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyldKS5yZXBsYWNlKCJ7e3BvcnR9fSIsU3RyaW5nKDNlMytNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTApKSkucmVwbGFjZSgie3tzaXplfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSsxMDApKTtlLmFkZExvZyh6LE8sTil9LCJnZW5lcmF0ZVJhbmRvbUxvZyIpLGQ9aSgoKT0+e2xldCBtPWxbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmwubGVuZ3RoKV0sZj1uZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseT1tLnJlcGxhY2UoLzIwMjQtMDEtMTVUMTA6MjM6XGR7Mn1cLlxkezN9Wi9nLGYpLnJlcGxhY2UoInt7am9iSWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3tzZXNzaW9ufX0iLE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDExKSk7dC53cml0ZWxuUmF3KHkpfSwiZ2VuZXJhdGVEb2NrZXJMb2ciKSx1PWkoKCk9PntpZighYSl7bGV0IG09aSgoKT0+e3AoKTtsZXQgZj1NYXRoLnJhbmRvbSgpKjJlMys1MDA7YT13aW5kb3cuc2V0VGltZW91dCgoKT0+e2EmJm0oKX0sZil9LCJzY2hlZHVsZU5leHQiKTttKCl9fSwic3RhcnRTdHJ1Y3R1cmVkU2ltdWxhdGlvbiIpLGM9aSgoKT0+e2EmJih3aW5kb3cuY2xlYXJUaW1lb3V0KGEpLGE9bnVsbCl9LCJzdG9wU3RydWN0dXJlZFNpbXVsYXRpb24iKSxiPWkoKCk9PntpZighcil7bGV0IG09aSgoKT0+e2QoKTtsZXQgZj1NYXRoLnJhbmRvbSgpKjFlMysyMDA7cj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3ImJm0oKX0sZil9LCJzY2hlZHVsZU5leHQiKTttKCl9fSwic3RhcnRSYXdTaW11bGF0aW9uIiksdj1pKCgpPT57ciYmKHdpbmRvdy5jbGVhclRpbWVvdXQocikscj1udWxsKX0sInN0b3BSYXdTaW11bGF0aW9uIik7cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gobT0+e3N3aXRjaChtLnRleHQ/LnRyaW0oKSl7Y2FzZSJBZGQgU3RydWN0dXJlZCBMb2ciOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5wKCkpO2JyZWFrO2Nhc2UiU3RhcnQgU3RydWN0dXJlZCI6bS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnUoKSk7YnJlYWs7Y2FzZSJTdG9wIFN0cnVjdHVyZWQiOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5jKCkpO2JyZWFrO2Nhc2UiQWRkIERvY2tlciBMb2ciOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5kKCkpO2JyZWFrO2Nhc2UiU3RhcnQgRG9ja2VyIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YigpKTticmVhaztjYXNlIlN0b3AgRG9ja2VyIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+digpKTticmVha319KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDwhLS0gU3RydWN0dXJlZCBMb2dzIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0cnVjdHVyZWQgTG9ncyAoSUxvZ0VudHJ5KTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgU3RydWN0dXJlZCBsb2cgZW50cmllcyB3aXRoIGxldmVsLCBtZXNzYWdlLCBhbmQgc291cmNlLiBTdXBwb3J0cyBzZWFyY2ggYW5kIGtleXdvcmQgaGlnaGxpZ2h0aW5nLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgU3RydWN0dXJlZCBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgU3RydWN0dXJlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICBpZD0ic3RydWN0dXJlZC1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdGlvbiBTZXJ2ZXIgTG9ncyJ9CiAgICAgICAgICAuaGlnaGxpZ2h0S2V5d29yZHM9JHtbImVycm9yIiwiZmFpbGVkIiwidGltZW91dCJdfQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBSYXcgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5SYXcgTG9ncyAoRG9ja2VyL0NvbnRhaW5lciBTdHlsZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFJhdyBsb2cgb3V0cHV0IHdpdGggQU5TSSBlc2NhcGUgc2VxdWVuY2VzIGZvciByZWFsIERvY2tlci9jb250YWluZXIgbG9ncy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIERvY2tlciBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IERvY2tlcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InJhdy1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiRG9ja2VyIENvbnRhaW5lciBMb2dzIn0KICAgICAgICAgIC5tb2RlPSR7InJhdyJ9CiAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMX0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIEdjLFRpLG5tYSxsbWE9ZygoKT0+e3BlKCk7a3QoKTtvbWEoKTtwdCgpO2Z1KCk7bnIoKTtHYz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sVGk9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG5tYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtbG9nIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdO3ZhciBoZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0TG9nIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOkFycmF5fSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxOPVtMKHt0eXBlOkFycmF5fSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxHYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJsYWJlbCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmxhYmVsLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmxhYmVsPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG8sbCksR2ModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJtb2RlImluIGosImhhcyIpLGdldDppKGo9PmoubW9kZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5tb2RlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGQsdSksR2ModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJsb2dFbnRyaWVzImluIGosImhhcyIpLGdldDppKGo9PmoubG9nRW50cmllcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5sb2dFbnRyaWVzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGIsdiksR2ModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhdXRvU2Nyb2xsImluIGosImhhcyIpLGdldDppKGo9PmouYXV0b1Njcm9sbCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5hdXRvU2Nyb2xsPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG0sZiksR2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJtYXhFbnRyaWVzImluIGosImhhcyIpLGdldDppKGo9PmoubWF4RW50cmllcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5tYXhFbnRyaWVzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksR2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRLZXl3b3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaGlnaGxpZ2h0S2V5d29yZHMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5oaWdobGlnaHRLZXl3b3JkcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5oaWdobGlnaHRLZXl3b3Jkcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxDLF8pLEdjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InNob3dNZXRyaWNzImluIGosImhhcyIpLGdldDppKGo9Pmouc2hvd01ldHJpY3MsImdldCIpLHNldDppKChqLHVlKT0+e2ouc2hvd01ldHJpY3M9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sJCxFKSxHYyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzZWFyY2hRdWVyeSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNlYXJjaFF1ZXJ5PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGssUyksR2ModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJmaWx0ZXJNb2RlImluIGosImhhcyIpLGdldDppKGo9PmouZmlsdGVyTW9kZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5maWx0ZXJNb2RlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFAsUiksR2ModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJtZXRyaWNzImluIGosImhhcyIpLGdldDppKGo9PmoubWV0cmljcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5tZXRyaWNzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFYsVyksR2ModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxSZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4idGVybWluYWxSZWFkeSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnRlcm1pbmFsUmVhZHksImdldCIpLHNldDppKChqLHVlKT0+e2oudGVybWluYWxSZWFkeT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLEdjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPXJtYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0IiwiV29ya3NwYWNlIl07I2U9VGkodGhpcyxvLCJTZXJ2ZXIgTG9ncyIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChGKXt0aGlzLiNlPUZ9I3Q9KFRpKHRoaXMsbCksVGkodGhpcyxkLCJzdHJ1Y3R1cmVkIikpO2dldCBtb2RlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGUoRil7dGhpcy4jdD1GfSNhPShUaSh0aGlzLHUpLFRpKHRoaXMsYixbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxvZ0VudHJpZXMoRil7dGhpcy4jYT1GfSNzPShUaSh0aGlzLHYpLFRpKHRoaXMsbSwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGF1dG9TY3JvbGwoRil7dGhpcy4jcz1GfSNpPShUaSh0aGlzLGYpLFRpKHRoaXMsTSwxZTQpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNpfXNldCBtYXhFbnRyaWVzKEYpe3RoaXMuI2k9Rn0jcj0oVGkodGhpcyx6KSxUaSh0aGlzLEMsW10pKTtnZXQgaGlnaGxpZ2h0S2V5d29yZHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaGlnaGxpZ2h0S2V5d29yZHMoRil7dGhpcy4jcj1GfSNvPShUaSh0aGlzLF8pLFRpKHRoaXMsJCwhMCkpO2dldCBzaG93TWV0cmljcygpe3JldHVybiB0aGlzLiNvfXNldCBzaG93TWV0cmljcyhGKXt0aGlzLiNvPUZ9I249KFRpKHRoaXMsRSksVGkodGhpcyxrLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI259c2V0IHNlYXJjaFF1ZXJ5KEYpe3RoaXMuI249Rn0jbD0oVGkodGhpcyxTKSxUaSh0aGlzLFAsITEpKTtnZXQgZmlsdGVyTW9kZSgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJNb2RlKEYpe3RoaXMuI2w9Rn0jYz0oVGkodGhpcyxSKSxUaSh0aGlzLFYse2RlYnVnOjAsaW5mbzowLHdhcm46MCxlcnJvcjowLHN1Y2Nlc3M6MCx0b3RhbDowLHJhdGU6MH0pKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNjfXNldCBtZXRyaWNzKEYpe3RoaXMuI2M9Rn0jZD0oVGkodGhpcyxXKSxUaSh0aGlzLEIsITEpKTtnZXQgdGVybWluYWxSZWFkeSgpe3JldHVybiB0aGlzLiNkfXNldCB0ZXJtaW5hbFJlYWR5KEYpe3RoaXMuI2Q9Rn1sb2dCdWZmZXI9KFRpKHRoaXMsVSksW10pO3RyYWlsaW5nSGlkZGVuQ291bnQ9MDt0ZXJtaW5hbD1udWxsO2ZpdEFkZG9uPW51bGw7c2VhcmNoQWRkb249bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtkb210b29sc0luc3RhbmNlPW51bGw7cmF0ZUJ1ZmZlcj1bXTtyYXRlSW50ZXJ2YWw9bnVsbDtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmZpbHRlci10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNDclKSIsImhzbCg0NSA5MyUgNDclKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDklKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2xzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciAueHRlcm0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubWV0cmljOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAubWV0cmljLmVycm9yOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy53YXJuOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyNSA5NSUgNTMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5pbmZvOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyMjIuMiA0Ny40JSA1MS4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuc3VjY2Vzczo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAubWV0cmljLmRlYnVnOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDYzLjklKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlOjpiZWZvcmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0YS5zZXR1cCgpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7dGhpcy5sYWJlbH0+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggbG9ncy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke0Y9PnRoaXMuaGFuZGxlU2VhcmNoSW5wdXQoRil9CiAgICAgICAgICAgICAgQGtleWRvd249JHtGPT50aGlzLmhhbmRsZVNlYXJjaEtleWRvd24oRil9CiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1uYXYiPgogICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2VhcmNoUHJldmlvdXMoKX0gdGl0bGU9IlByZXZpb3VzIG1hdGNoIj7ihpE8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaE5leHQoKX0gdGl0bGU9Ik5leHQgbWF0Y2giPuKGkzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItdG9nZ2xlICR7dGhpcy5maWx0ZXJNb2RlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVGaWx0ZXJNb2RlKCl9CiAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5maWx0ZXJNb2RlPyJTd2l0Y2ggdG8gaGlnaGxpZ2h0IG1vZGUiOiJTd2l0Y2ggdG8gZmlsdGVyIG1vZGUifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJNb2RlPyJGaWx0ZXIiOiJIaWdobGlnaHQifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wtYnV0dG9uICR7dGhpcy5hdXRvU2Nyb2xsPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVBdXRvU2Nyb2xsKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBBdXRvIFNjcm9sbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29udHJvbC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNsZWFyTG9ncygpfT4KICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnRlcm1pbmFsUmVhZHk/IiI6d2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nIHRlcm1pbmFsLi4uPC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnNob3dNZXRyaWNzP3dgCiAgICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJtZXRyaWNzLWJhciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIGVycm9yIj5lcnJvcnM6ICR7dGhpcy5tZXRyaWNzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgd2FybiI+d2FybnM6ICR7dGhpcy5tZXRyaWNzLndhcm59PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBpbmZvIj5pbmZvOiAke3RoaXMubWV0cmljcy5pbmZvfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgc3VjY2VzcyI+c3VjY2VzczogJHt0aGlzLm1ldHJpY3Muc3VjY2Vzc308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIGRlYnVnIj5kZWJ1ZzogJHt0aGlzLm1ldHJpY3MuZGVidWd9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyByYXRlIj4ke3RoaXMubWV0cmljcy5yYXRlLnRvRml4ZWQoMSl9IGxvZ3Mvc2VjPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5kb210b29sc0luc3RhbmNlPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVRlcm1pbmFsKCksdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg9PT0wKXt0aGlzLmxvZ0J1ZmZlcj1bLi4udGhpcy5sb2dFbnRyaWVzXTtmb3IobGV0IEYgb2YgdGhpcy5sb2dFbnRyaWVzKXRoaXMudXBkYXRlTWV0cmljcyhGLmxldmVsKSx0aGlzLndyaXRlTG9nRW50cnkoRil9ZWxzZSBpZih0aGlzLmxvZ0VudHJpZXMubGVuZ3RoPjAmJnRoaXMubG9nQnVmZmVyLmxlbmd0aD4wKXtsZXQgRj1uZXcgU2V0KHRoaXMubG9nQnVmZmVyLm1hcChqPT5gJHtqLnRpbWVzdGFtcH18JHtqLm1lc3NhZ2V9YCkpO2ZvcihsZXQgaiBvZiB0aGlzLmxvZ0VudHJpZXMpRi5oYXMoYCR7ai50aW1lc3RhbXB9fCR7ai5tZXNzYWdlfWApfHwodGhpcy5sb2dCdWZmZXIucHVzaChqKSx0aGlzLnVwZGF0ZU1ldHJpY3Moai5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KGopKX19YXN5bmMgaW5pdGlhbGl6ZVRlcm1pbmFsKCl7bGV0IEY9UXIuZ2V0SW5zdGFuY2UoKSxbaix1ZSxsZV09YXdhaXQgUHJvbWlzZS5hbGwoW0YubG9hZFh0ZXJtKCksRi5sb2FkWHRlcm1GaXRBZGRvbigpLEYubG9hZFh0ZXJtU2VhcmNoQWRkb24oKV0pO2F3YWl0IHRoaXMuaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCksdGhpcy50ZXJtaW5hbD1uZXcgai5UZXJtaW5hbCh7Y3Vyc29yQmxpbms6ITEsZGlzYWJsZVN0ZGluOiEwLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6IidTRiBNb25vJywgJ01vbmFjbycsICdDb25zb2xhcycsICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2UiLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZSgpLHNjcm9sbGJhY2s6dGhpcy5tYXhFbnRyaWVzLGNvbnZlcnRFb2w6ITB9KSx0aGlzLmZpdEFkZG9uPW5ldyB1ZS5GaXRBZGRvbix0aGlzLnNlYXJjaEFkZG9uPW5ldyBsZS5TZWFyY2hBZGRvbix0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmZpdEFkZG9uKSx0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLnNlYXJjaEFkZG9uKTtsZXQgUT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRlcm1pbmFsLWNvbnRhaW5lciIpO3RoaXMudGVybWluYWwub3BlbihRKSxhd2FpdCBuZXcgUHJvbWlzZShpZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGllKSksdGhpcy5maXRBZGRvbi5maXQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuZml0QWRkb24/LmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFEpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj10aGlzLmRvbXRvb2xzSW5zdGFuY2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZSgpKX0pLHRoaXMucmF0ZUludGVydmFsPXNldEludGVydmFsKCgpPT50aGlzLmNhbGN1bGF0ZVJhdGUoKSwxZTMpLHRoaXMudGVybWluYWxSZWFkeT0hMDtmb3IobGV0IGllIG9mIHRoaXMubG9nQnVmZmVyKXRoaXMud3JpdGVMb2dFbnRyeShpZSl9dXBkYXRlZChGKXtpZihzdXBlci51cGRhdGVkKEYpLEYuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZSgpKSxGLmhhcygibG9nRW50cmllcyIpJiZ0aGlzLnRlcm1pbmFsUmVhZHkmJnRoaXMubG9nRW50cmllcy5sZW5ndGg+MCl7bGV0IGo9Ri5nZXQoImxvZ0VudHJpZXMiKXx8W10sdWU9dGhpcy5sb2dFbnRyaWVzO2lmKGoubGVuZ3RoPT09dWUubGVuZ3RoJiZqLmxlbmd0aD4wJiZqW2oubGVuZ3RoLTFdLnRpbWVzdGFtcD09PXVlW3VlLmxlbmd0aC0xXS50aW1lc3RhbXAmJmpbai5sZW5ndGgtMV0ubWVzc2FnZT09PXVlW3VlLmxlbmd0aC0xXS5tZXNzYWdlKXJldHVybjtpZih1ZS5sZW5ndGg+ai5sZW5ndGgmJmoubGVuZ3RoPjAmJmpbai5sZW5ndGgtMV0udGltZXN0YW1wPT09dWVbai5sZW5ndGgtMV0udGltZXN0YW1wJiZqW2oubGVuZ3RoLTFdLm1lc3NhZ2U9PT11ZVtqLmxlbmd0aC0xXS5tZXNzYWdlKXtsZXQgbGU9dWUuc2xpY2Uoai5sZW5ndGgpO2ZvcihsZXQgUSBvZiBsZSl0aGlzLmxvZ0J1ZmZlci5wdXNoKFEpLHRoaXMudXBkYXRlTWV0cmljcyhRLmxldmVsKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCghdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeXx8dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoUSkpJiZ0aGlzLndyaXRlTG9nRW50cnkoUSk7cmV0dXJufXRoaXMubG9nQnVmZmVyPVsuLi51ZV0sdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfX1nZXRUZXJtaW5hbFRoZW1lKCl7cmV0dXJuIXRoaXMuZ29CcmlnaHQ/e2JhY2tncm91bmQ6IiMwYTBhMGEiLGZvcmVncm91bmQ6IiNlMGUwZTAiLGN1cnNvcjoiI2UwZTBlMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoiIzQwNDA0MCIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2ZmNTU1NSIsZ3JlZW46IiM1MGZhN2IiLHllbGxvdzoiI2YxZmE4YyIsYmx1ZToiIzYyNzJhNCIsbWFnZW50YToiI2ZmNzljNiIsY3lhbjoiIzhiZTlmZCIsd2hpdGU6IiNmOGY4ZjIiLGJyaWdodEJsYWNrOiIjNjI3MmE0IixicmlnaHRSZWQ6IiNmZjZlNmUiLGJyaWdodEdyZWVuOiIjNjlmZjk0IixicmlnaHRZZWxsb3c6IiNmZmZmYTUiLGJyaWdodEJsdWU6IiNkNmFjZmYiLGJyaWdodE1hZ2VudGE6IiNmZjkyZGYiLGJyaWdodEN5YW46IiNhNGZmZmYiLGJyaWdodFdoaXRlOiIjZmZmZmZmIn06e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsc2VsZWN0aW9uQmFja2dyb3VuZDoiI2FkZDZmZiIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In19YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCl7bGV0IEY9Inh0ZXJtLXNoYWRvdy1zdHlsZXMiO2lmKHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZChGKSlyZXR1cm47bGV0IGo9YCR7aTJ9L3h0ZXJtQCR7czIueHRlcm19L2Nzcy94dGVybS5jc3NgLGxlPWF3YWl0KGF3YWl0IGZldGNoKGopKS50ZXh0KCksUT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO1EuaWQ9RixRLnRleHRDb250ZW50PWxlLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChRKX1hZGRMb2coRixqLHVlKXtsZXQgbGU9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6RixtZXNzYWdlOmosc291cmNlOnVlfTt0aGlzLmxvZ0J1ZmZlci5wdXNoKGxlKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShsZSk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIobGUpPyh0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLndyaXRlTG9nRW50cnkobGUpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MobGUubGV2ZWwpfXVwZGF0ZUxvZyhGKXtpZihGKWZvcihsZXQgaiBvZiBGKXRoaXMubG9nQnVmZmVyLnB1c2goaiksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeT90aGlzLndyaXRlTG9nRW50cnkoaik6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoaik/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShqKSk6dGhpcy51cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCksdGhpcy51cGRhdGVNZXRyaWNzKGoubGV2ZWwpfXVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PjAmJnRoaXMudGVybWluYWwud3JpdGUoIlx4MUJbMUFceDFCWzJLXHIiKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQrKyx0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50KSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKSl9ZW50cnlNYXRjaGVzRmlsdGVyKEYpe2lmKCF0aGlzLnNlYXJjaFF1ZXJ5KXJldHVybiEwO2xldCBqPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gRi5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoail8fEYubGV2ZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhqKXx8KEYuc291cmNlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGopPz8hMSl9d3JpdGVMb2dFbnRyeShGKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IGo9dGhpcy5mb3JtYXRMb2dFbnRyeShGKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oaiksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9Zm9ybWF0TG9nRW50cnkoRil7bGV0IGo9dGhpcy5mb3JtYXRUaW1lc3RhbXAoRi50aW1lc3RhbXApLHVlPXtkZWJ1ZzoiXHgxQls5MG0iLGluZm86Ilx4MUJbMzZtIix3YXJuOiJceDFCWzMzbSIsZXJyb3I6Ilx4MUJbMzFtIixzdWNjZXNzOiJceDFCWzMybSJ9LGxlPSJceDFCWzBtIixRPSJceDFCWzJtIixpZT1gJHt1ZVtGLmxldmVsXX1bJHtGLmxldmVsLnRvVXBwZXJDYXNlKCkucGFkRW5kKDcpfV0ke2xlfWAsdGU9Ri5zb3VyY2U/YCR7UX1bJHtGLnNvdXJjZX1dJHtsZX0gYDoiIixlZT10aGlzLmFwcGx5SGlnaGxpZ2h0cyhGLm1lc3NhZ2UpO3JldHVybmAke1F9JHtqfSR7bGV9ICR7aWV9ICR7dGV9JHtlZX1gfWZvcm1hdFRpbWVzdGFtcChGKXtyZXR1cm4gbmV3IERhdGUoRikudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXIxMjohMSxob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9YXBwbHlIaWdobGlnaHRzKEYpe2xldCBqPVsuLi50aGlzLmhpZ2hsaWdodEtleXdvcmRzXTtpZih0aGlzLmZpbHRlck1vZGUmJnRoaXMuc2VhcmNoUXVlcnkmJmoucHVzaCh0aGlzLnNlYXJjaFF1ZXJ5KSxqLmxlbmd0aD09PTApcmV0dXJuIEY7bGV0IHVlPUY7Zm9yKGxldCBsZSBvZiBqKXtsZXQgUT1sZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpLGllPW5ldyBSZWdFeHAoYCgke1F9KWAsImdpIik7dWU9dWUucmVwbGFjZShpZSwiXHgxQls0M21ceDFCWzMwbSQxXHgxQlswbSIpfXJldHVybiB1ZX13cml0ZVJhdyhGKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC53cml0ZShGKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfXdyaXRlbG5SYXcoRil7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGVsbihGKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWhhbmRsZVNlYXJjaElucHV0KEYpe2xldCB1ZT1GLnRhcmdldC52YWx1ZSxsZT10aGlzLnNlYXJjaFF1ZXJ5IT09dWU7dGhpcy5zZWFyY2hRdWVyeT11ZSx0aGlzLmZpbHRlck1vZGUmJmxlP3RoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKTp0aGlzLnNlYXJjaFF1ZXJ5JiZ0aGlzLnNlYXJjaEFkZG9uPy5maW5kTmV4dCh0aGlzLnNlYXJjaFF1ZXJ5KX1oYW5kbGVTZWFyY2hLZXlkb3duKEYpe0Yua2V5PT09IkVudGVyIj9GLnNoaWZ0S2V5P3RoaXMuc2VhcmNoUHJldmlvdXMoKTp0aGlzLnNlYXJjaE5leHQoKTpGLmtleT09PSJFc2NhcGUiJiYodGhpcy5zZWFyY2hRdWVyeT0iIixGLnRhcmdldC52YWx1ZT0iIil9c2VhcmNoKEYpe3RoaXMuc2VhcmNoUXVlcnk9Rix0aGlzLnNlYXJjaEFkZG9uPy5maW5kTmV4dChGKX1zZWFyY2hOZXh0KCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9c2VhcmNoUHJldmlvdXMoKXt0aGlzLnNlYXJjaFF1ZXJ5JiZ0aGlzLnNlYXJjaEFkZG9uPy5maW5kUHJldmlvdXModGhpcy5zZWFyY2hRdWVyeSl9dG9nZ2xlQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbD0hdGhpcy5hdXRvU2Nyb2xsLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfXRvZ2dsZUZpbHRlck1vZGUoKXt0aGlzLmZpbHRlck1vZGU9IXRoaXMuZmlsdGVyTW9kZSx0aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCl9cmVSZW5kZXJGaWx0ZXJlZExvZ3MoKXtpZih0aGlzLnRlcm1pbmFsKXtpZih0aGlzLnRlcm1pbmFsLmNsZWFyKCksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnkpZm9yKGxldCBGIG9mIHRoaXMubG9nQnVmZmVyKXtsZXQgaj10aGlzLmZvcm1hdExvZ0VudHJ5KEYpO3RoaXMudGVybWluYWwud3JpdGVsbihqKX1lbHNle2xldCBGPTA7Zm9yKGxldCBqIG9mIHRoaXMubG9nQnVmZmVyKWlmKHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKGopKXtGPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoRiksRj0wKTtsZXQgdWU9dGhpcy5mb3JtYXRMb2dFbnRyeShqKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4odWUpfWVsc2UgRisrO0Y+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihGKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9Ril9dGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9fXdyaXRlSGlkZGVuUGxhY2Vob2xkZXIoRil7bGV0IGo9Ilx4MUJbMm0iLHVlPSJceDFCWzBtIixsZT1GPT09MT8iWzEgbG9nIGxpbmUgaGlkZGVuIGJ5IGZpbHRlciAuLi5dIjpgWyR7Rn0gbG9nIGxpbmVzIGhpZGRlbiBieSBmaWx0ZXIgLi4uXWA7dGhpcy50ZXJtaW5hbD8ud3JpdGVsbihgJHtqfSR7bGV9JHt1ZX1gKX1jbGVhckxvZ3MoKXt0aGlzLnRlcm1pbmFsPy5jbGVhcigpLHRoaXMubG9nQnVmZmVyPVtdLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMucmVzZXRNZXRyaWNzKCl9c2Nyb2xsVG9Cb3R0b20oKXt0aGlzLnRlcm1pbmFsPy5zY3JvbGxUb0JvdHRvbSgpfXVwZGF0ZU1ldHJpY3MoRil7dGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MsW0ZdOnRoaXMubWV0cmljc1tGXSsxLHRvdGFsOnRoaXMubWV0cmljcy50b3RhbCsxfSx0aGlzLnJlY29yZExvZ0V2ZW50KCl9cmVjb3JkTG9nRXZlbnQoKXt0aGlzLnJhdGVCdWZmZXIucHVzaChEYXRlLm5vdygpKX1jYWxjdWxhdGVSYXRlKCl7bGV0IEY9RGF0ZS5ub3coKTt0aGlzLnJhdGVCdWZmZXI9dGhpcy5yYXRlQnVmZmVyLmZpbHRlcih1ZT0+Ri11ZTwxZTQpO2xldCBqPXRoaXMucmF0ZUJ1ZmZlci5sZW5ndGgvMTA7aiE9PXRoaXMubWV0cmljcy5yYXRlJiYodGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MscmF0ZTpqfSl9cmVzZXRNZXRyaWNzKCl7dGhpcy5tZXRyaWNzPXtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9LHRoaXMucmF0ZUJ1ZmZlcj1bXX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiZ0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnJhdGVJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnJhdGVJbnRlcnZhbCksdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5kaXNwb3NlKCl9c3RhdGlje1RpKGEsdCl9fTtyZXR1cm4gaGU9YX0pKCl9KTt2YXIgY21hPWcoKCk9PntsbWEoKX0pO3ZhciBkbWEsdW1hPWcoKCk9PntwZSgpO0l0KCk7QWl0KCk7ZG1hPWkoKCk9PntsZXQgcz1be25hbWU6IkxhdGVuY3kiLG1heDoxMDB9LHtuYW1lOiJUaHJvdWdocHV0IixtYXg6MTAwfSx7bmFtZToiQXZhaWxhYmlsaXR5IixtYXg6MTAwfSx7bmFtZToiRXJyb3IgUmF0ZSIsbWF4OjEwMH0se25hbWU6IlNhdHVyYXRpb24iLG1heDoxMDB9LHtuYW1lOiJTZWN1cml0eSIsbWF4OjEwMH1dLGU9W3tuYW1lOiJTZXJ2aWNlIEEiLHZhbHVlczpbODUsOTAsOTksMTIsNDUsNzhdfSx7bmFtZToiU2VydmljZSBCIix2YWx1ZXM6WzcwLDY1LDk1LDI4LDYwLDkwXX1dLHQ9W3tuYW1lOiJTcGVlZCIsbWF4OjEwfSx7bmFtZToiUmVsaWFiaWxpdHkiLG1heDoxMH0se25hbWU6IkNvbWZvcnQiLG1heDoxMH0se25hbWU6IlNhZmV0eSIsbWF4OjEwfSx7bmFtZToiQ29zdCIsbWF4OjEwfV0sYT1be25hbWU6IlJhdGluZyIsdmFsdWVzOls4LjUsOS4yLDcsOS41LDZdfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyByPT57bGV0IG49ci5xdWVyeVNlbGVjdG9yKCIjY29tcGFyaXNvbi1jaGFydCIpLG89ci5xdWVyeVNlbGVjdG9yKCIjc2luZ2xlLWNoYXJ0Iik7ci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocD0+e3AudGV4dD8udHJpbSgpPT09IlJhbmRvbWl6ZSImJnAuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bi5zZXJpZXM9ZS5tYXAodT0+KHsuLi51LHZhbHVlczp1LnZhbHVlcy5tYXAoKCk9Pk1hdGgucm91bmQoMjArTWF0aC5yYW5kb20oKSo4MCkpfSkpLG8uc2VyaWVzPWEubWFwKHU9Pih7Li4udSx2YWx1ZXM6dS52YWx1ZXMubWFwKCgpPT5NYXRoLnJvdW5kKCgyK01hdGgucmFuZG9tKCkqOCkqMTApLzEwKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1yYWRhcgogICAgICAgICAgICBpZD0iY29tcGFyaXNvbi1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgSGVhbHRoIENvbXBhcmlzb24ifQogICAgICAgICAgICAuaW5kaWNhdG9ycz0ke3N9CiAgICAgICAgICAgIC5zZXJpZXM9JHtlfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1yYWRhcj4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1yYWRhcgogICAgICAgICAgICBpZD0ic2luZ2xlLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBSYXRpbmcifQogICAgICAgICAgICAuaW5kaWNhdG9ycz0ke3R9CiAgICAgICAgICAgIC5zZXJpZXM9JHthfQogICAgICAgICAgICAuZmlsbEFyZWE9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtcmFkYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgUmFkYXIgY2hhcnQgZm9yIG11bHRpLWRpbWVuc2lvbmFsIGNvbXBhcmlzb24g4oCiCiAgICAgICAgICBTdXBwb3J0cyBtdWx0aXBsZSBvdmVybGF5IHNlcmllcyBhbmQgY29uZmlndXJhYmxlIGZpbGwg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBwbWEsaG1hPWcoKCk9PntwZSgpO1VYKCk7cG1hPVsuLi5VaCxKYGBdfSk7dmFyIGZtYSxtbWE9ZygoKT0+e3BlKCk7Zm1hPWkocz0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3MubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnRSYWRhciIpfSk7dmFyIFdYLHZ1LGdtYSxBaXQ9ZygoKT0+e3BlKCk7VlgoKTt1bWEoKTtobWEoKTttbWEoKTtadigpO1dYPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2dT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZ21hPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jaGFydC1yYWRhciIpXSxlLHQ9W10sYSxyPWJ1LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRSYWRhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLFdYKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kaWNhdG9ycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaW5kaWNhdG9ycyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmluZGljYXRvcnMsImdldCIpLHNldDppKCh6LE4pPT57ei5pbmRpY2F0b3JzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxXWCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2VyaWVzImluIHosImhhcyIpLGdldDppKHo9Pnouc2VyaWVzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2VyaWVzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxXWCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNob3dMZWdlbmQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2hvd0xlZ2VuZD1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksV1godGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxsQXJlYSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZmlsbEFyZWEiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5maWxsQXJlYSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmZpbGxBcmVhPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxXWChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWRtYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9dnUodGhpcyxvLFtdKTtnZXQgaW5kaWNhdG9ycygpe3JldHVybiB0aGlzLiNlfXNldCBpbmRpY2F0b3JzKE0pe3RoaXMuI2U9TX0jdD0odnUodGhpcyxsKSx2dSh0aGlzLGQsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcyhNKXt0aGlzLiN0PU19I2E9KHZ1KHRoaXMsdSksdnUodGhpcyxiLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xlZ2VuZChNKXt0aGlzLiNhPU19I3M9KHZ1KHRoaXMsdiksdnUodGhpcyxtLCEwKSk7Z2V0IGZpbGxBcmVhKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGZpbGxBcmVhKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPXBtYTtyZW5kZXIoKXtyZXR1cm4gZm1hKHRoaXMpfWFzeW5jIHVwZGF0ZWQoTSl7c3VwZXIudXBkYXRlZChNKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihNLmhhcygiaW5kaWNhdG9ycyIpfHxNLmhhcygic2VyaWVzIil8fE0uaGFzKCJzaG93TGVnZW5kIil8fE0uaGFzKCJmaWxsQXJlYSIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0IE09VmgodGhpcy5nb0JyaWdodCksej1xaCh0aGlzLmdvQnJpZ2h0KSxOPXRoaXMuZ29CcmlnaHQ/LjE6LjE1LEM9dGhpcy5zZXJpZXMubWFwKChfLE8pPT57bGV0ICQ9Xy5jb2xvcnx8eltPJXoubGVuZ3RoXTtyZXR1cm57bmFtZTpfLm5hbWUsdmFsdWU6Xy52YWx1ZXMsaXRlbVN0eWxlOntjb2xvcjokLGJvcmRlckNvbG9yOiQsYm9yZGVyV2lkdGg6MX0sbGluZVN0eWxlOntjb2xvcjokLHdpZHRoOjEuNX0sYXJlYVN0eWxlOnRoaXMuZmlsbEFyZWE/e2NvbG9yOmpoKCQsTil9OnZvaWQgMCxzeW1ib2w6ImNpcmNsZSIsc3ltYm9sU2l6ZTo1fX0pO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIn0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwfTp7c2hvdzohMX0scmFkYXI6e2luZGljYXRvcjp0aGlzLmluZGljYXRvcnMubWFwKF89Pih7bmFtZTpfLm5hbWUsbWF4Ol8ubWF4fSkpLHNoYXBlOiJwb2x5Z29uIixzcGxpdE51bWJlcjo0LGF4aXNOYW1lOntjb2xvcjpNLnRleHRTZWNvbmRhcnksZm9udFNpemU6MTF9LHNwbGl0QXJlYTp7YXJlYVN0eWxlOntjb2xvcjpbTS5iZ1RlcnRpYXJ5LE0uYmdTZWNvbmRhcnldfX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOk0uYm9yZGVyRGVmYXVsdH19LGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOk0uYm9yZGVyRGVmYXVsdH19fSxzZXJpZXM6W3t0eXBlOiJyYWRhciIsZGF0YTpDLGVtcGhhc2lzOntsaW5lU3R5bGU6e3dpZHRoOjN9fX1dfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdnUodGhpcyxmKX1zdGF0aWN7dnUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGJtYT1nKCgpPT57QWl0KCl9KTt2YXIgdm1hPWcoKCk9PnskZmEoKTtxZmEoKTtaZmEoKTtpbWEoKTtjbWEoKTtibWEoKX0pO3ZhciB4bWEseW1hPWcoKCk9PntwZSgpO3htYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBOaXQsR1gsd21hLFJpdD1nKCgpPT57eW1hKCk7cGUoKTtDcigpO3B0KCk7bzMoKTtrdCgpO29yKCk7ZnUoKTtucigpO05pdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sR1g9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHdtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGF0YXZpZXdDb2RlYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLE5pdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJwcm9nTGFuZyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnByb2dMYW5nLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucHJvZ0xhbmc9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLE5pdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvZGVUb0Rpc3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+ImNvZGVUb0Rpc3BsYXkiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5jb2RlVG9EaXNwbGF5LCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuY29kZVRvRGlzcGxheT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksTml0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89eG1hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3IiwiV29ya3NwYWNlIl07I2U9R1godGhpcyxvLCJ0eXBlc2NyaXB0Iik7Z2V0IHByb2dMYW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2dMYW5nKGIpe3RoaXMuI2U9Yn0jdD0oR1godGhpcyxsKSxHWCh0aGlzLGQsIiIpKTtnZXQgY29kZVRvRGlzcGxheSgpe3JldHVybiB0aGlzLiN0fXNldCBjb2RlVG9EaXNwbGF5KGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXNdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0YS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuYXBwYmFyIC5maWxlTmFtZSB7CiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuYm90dG9tQmFyIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VzTGFiZWwgewogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubGFuZ3VhZ2VMYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmhsanMta2V5d29yZCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmNvZGVncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bzsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVDb3VudGVyOmxhc3QtY2hpbGQgewogICAgICAgICAgb3BhY2l0eTogNTAlOwogICAgICAgIH0KCiAgICAgICAgcHJlIHsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMjRweDsKICAgICAgICB9CgogICAgICAgIGNvZGUgewogICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIH0KCiAgICAgICAgY29kZSwKICAgICAgICBjb2RlICosCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7CiAgICAgICAgICBmb250LWZhbWlseTogJHskOH07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1zdHJpbmcgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtcGFyYW1zIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1jb21tZW50IHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1udW1iZXIgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWxpdGVyYWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWF0dHIgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOGI1Y2Y2IiwiI2E3OGJmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXZhcmlhYmxlIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGVlcy10aWxlCiAgICAgICAgQGNvbnRleHRtZW51PSIke2I9PntrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhiLFt7bmFtZToiQWJvdXQiLGljb25OYW1lOiJjaXJjbGVJbmZvIixhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX1dKX19IgogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWUiPmluZGV4LnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZU51bWJlcnMiPgogICAgICAgICAgICAkeygoKT0+e2xldCBiPTA7cmV0dXJuIHRoaXMuY29kZVRvRGlzcGxheS5zcGxpdChgCmApLm1hcCh2PT4oYisrLHdgPGRpdiBjbGFzcz0ibGluZUNvdW50ZXIiPiR7Yn08L2Rpdj5gKSl9KSgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cHJlPjxjb2RlPjwvY29kZT48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KEdYKHRoaXMsdSksIiIpO2hpZ2hsaWdodEpzPW51bGw7YXN5bmMgdXBkYXRlZChiKXtzdXBlci51cGRhdGVkKGIpLGNvbnNvbGUubG9nKCJoaWdobGlnaHRpbmcgbm93IiksY29uc29sZS5sb2codGhpcy5jaGlsZE5vZGVzKTtsZXQgdj1bXTt0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaChmPT57Zi5ub2RlTmFtZT09PSIjdGV4dCImJnYucHVzaChmKX0pLHRoaXMuY29kZVRvRGlzcGxheSYmdGhpcy5jb2RlVG9EaXNwbGF5IT09dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1uZC5ub3JtYWxpemUodGhpcy5jb2RlVG9EaXNwbGF5KS50cmltU3RhcnQoKSksdlswXSYmdlswXS53aG9sZVRleHQmJiF0aGlzLmNvZGVUb0Rpc3BsYXkmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1uZC5ub3JtYWxpemUodlswXS53aG9sZVRleHQpLnRyaW1TdGFydCgpLHRoaXMuY29kZVRvRGlzcGxheT10aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBRci5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgeD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiY29kZSIpLG09dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUse2xhbmd1YWdlOnRoaXMucHJvZ0xhbmcsaWdub3JlSWxsZWdhbHM6ITB9KTt4LmlubmVySFRNTD1tLnZhbHVlfXN0YXRpY3tHWChhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIga21hPWcoKCk9PntSaXQoKX0pO3ZhciBTbWEsX21hPWcoKCk9PntwZSgpO1NuKCk7U21hPWkoKCk9PndgIDxzdHlsZT4KICAgIC5kZW1vIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICB9CiAgICAKICAgIC5kZW1vLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBnYXA6IDI0cHg7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxNnB4OwogICAgfQogICAgCiAgICAuZGVtby10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLmRlbW8tbm90ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtbyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLW5vdGUiPgogICAgICBSaWdodC1jbGljayBvbiBhbnkgZGV0YWlsIHJvdyB0byBjb3B5IHRoZSB2YWx1ZSwga2V5LCBvciBrZXk6dmFsdWUgY29tYmluYXRpb24KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5TZXJ2aWNlIEhlYWx0aCBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjEiLG5hbWU6IkFQSSBHYXRld2F5IFNlcnZpY2UiLGxhc3RVcGRhdGVkOkRhdGUubm93KCksY29tYmluZWRTdGF0dXM6Im9rIixjb21iaW5lZFN0YXR1c1RleHQ6IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixkZXRhaWxzOlt7bmFtZToiUmVzcG9uc2UgVGltZSIsdmFsdWU6IjQ1bXMgKGF2ZykiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IldpdGhpbiBub3JtYWwgcmFuZ2UifSx7bmFtZToiVXB0aW1lIix2YWx1ZToiOTkuOTklICgzMCBkYXlzKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiRXhjZWxsZW50IHVwdGltZSJ9LHtuYW1lOiJBY3RpdmUgQ29ubmVjdGlvbnMiLHZhbHVlOiIxLDIzNCAvIDEwLDAwMCIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiTm9ybWFsIGxvYWQifSx7bmFtZToiU1NMIENlcnRpZmljYXRlIix2YWx1ZToiVmFsaWQgdW50aWwgMjAyNC0xMi0zMSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiQ2VydGlmaWNhdGUgdmFsaWQifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+RGF0YWJhc2UgQ2x1c3RlciBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjIiLG5hbWU6IlBvc3RncmVTUUwgQ2x1c3RlciIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKS0zNmU1LGNvbWJpbmVkU3RhdHVzOiJwYXJ0bHlfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiTWlub3IgaXNzdWVzIGRldGVjdGVkIixkZXRhaWxzOlt7bmFtZToiUHJpbWFyeSBOb2RlIix2YWx1ZToiZGItcHJpbWFyeS0wMSAoaGVhbHRoeSkiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik9wZXJhdGluZyBub3JtYWxseSJ9LHtuYW1lOiJSZXBsaWNhIExhZyIsdmFsdWU6IjIuNSBzZWNvbmRzIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiU2xpZ2h0bHkgZWxldmF0ZWQifSx7bmFtZToiRGlzayBVc2FnZSIsdmFsdWU6Ijc4JSAoMzEyR0IgLyA0MDBHQikiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJBcHByb2FjaGluZyB0aHJlc2hvbGQifSx7bmFtZToiQ29ubmVjdGlvbiBQb29sIix2YWx1ZToiODkgLyAxMDAgY29ubmVjdGlvbnMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IldpdGhpbiBsaW1pdHMifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+QnVpbGQgUGlwZWxpbmUgU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIzIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKS04NjRlNSxjb21iaW5lZFN0YXR1czoibm90X29rIixjb21iaW5lZFN0YXR1c1RleHQ6IkJ1aWxkIGZhaWx1cmUiLGRldGFpbHM6W3tuYW1lOiJMYXN0IEJ1aWxkIix2YWx1ZToiQnVpbGQgIzEyMzQgLSBGYWlsZWQiLHN0YXR1czoibm90X29rIixzdGF0dXNUZXh0OiJUZXN0IGZhaWx1cmVzIn0se25hbWU6IkZhaWxlZCBUZXN0cyIsdmFsdWU6IjMgdGVzdHMgZmFpbGVkOiBhdXRoLnNwZWMudHMsIHVzZXIuc3BlYy50cywgYXBpLnNwZWMudHMiLHN0YXR1czoibm90X29rIixzdGF0dXNUZXh0OiJVbml0IHRlc3QgZmFpbHVyZXMifSx7bmFtZToiQ29kZSBDb3ZlcmFnZSIsdmFsdWU6IjgyLjUlICh0YXJnZXQ6IDg1JSkiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJCZWxvdyB0YXJnZXQifSx7bmFtZToiQnVpbGQgRHVyYXRpb24iLHZhbHVlOiIxMm0gMzRzIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgZHVyYXRpb24ifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PmAsImRlbW9GdW5jIil9KTt2YXIgTW1hLE9pdCx6bWEsQ21hPWcoKCk9PntHMSgpO3BvKCk7X21hKCk7cGUoKTtTbigpO29yKCk7cHQoKTtucigpO01tYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sT2l0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6bWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGF0YXZpZXdTdGF0dXNvYmplY3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxNbWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXNPYmplY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InN0YXR1c09iamVjdCJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnN0YXR1c09iamVjdCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnN0YXR1c09iamVjdD1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksTW1hKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89U21hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9T2l0KHRoaXMsbyx2b2lkIDApO2dldCBzdGF0dXNPYmplY3QoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RhdHVzT2JqZWN0KGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdCB7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklIC8gMC4yKSIsImhzbCgwIDAlIDQ1LjElIC8gMC4yKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3Qub2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMikiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm5vdF9vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4yKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5wYXJ0bHlfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMikiLCJoc2woMjUgOTUlIDYzJSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMDQpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLnN0YXR1c2RvdCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC5sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYm90dG9tQmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQmFyIC5zdGF0dXNMYWJlbCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke3RoaXMuc3RhdHVzT2JqZWN0Py5jb21iaW5lZFN0YXR1c30iPjwvZGl2PgogICAgICAgICAgPGgxPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lm5hbWV8fCJObyBzdGF0dXMgb2JqZWN0IGFzc2lnbmVkIn08L2gxPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29weU1haW4iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weUFzSnNvbn0+Q29weSBKU09OPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnN0YXR1c09iamVjdD8uZGV0YWlscz8ubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke3U9Pnt1LnByZXZlbnREZWZhdWx0KCksa2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModSxbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQudmFsdWUsIlZhbHVlIil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQubmFtZSwiS2V5Iil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGAke2QubmFtZX06ICR7ZC52YWx1ZX1gLCJLZXk6VmFsdWUiKX0sImFjdGlvbiIpfV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Quc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbHNUZXh0Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+JHtkLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2QudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNMYWJlbCI+JHt0aGlzLnN0YXR1c09iamVjdD8ubGFzdFVwZGF0ZWQ/YExhc3QgdXBkYXRlZDogJHtuZXcgRGF0ZSh0aGlzLnN0YXR1c09iamVjdC5sYXN0VXBkYXRlZCkudG9Mb2NhbGVTdHJpbmcoKX1gOiIifTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIGNvcHlUb0NsaXBib2FyZChkLHU9IlRleHQiKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCksY29uc29sZS5sb2coYCR7dX0gY29waWVkIHRvIGNsaXBib2FyZGApfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5ICR7dX06YCxjKX19YXN5bmMgaGFuZGxlQ29weUFzSnNvbigpe2lmKHRoaXMuc3RhdHVzT2JqZWN0KXRyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXR1c09iamVjdCxudWxsLDIpKTtsZXQgZD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvcHlNYWluIiksdT1kLnRleHRDb250ZW50O2QudGV4dENvbnRlbnQ9IkNvcGllZCEiO2xldCBjPSF0aGlzLmdvQnJpZ2h0O2Quc3R5bGUuYmFja2dyb3VuZD1jPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsZC5zdHlsZS5ib3JkZXJDb2xvcj1jPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZC5zdHlsZS5jb2xvcj1jPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsc2V0VGltZW91dCgoKT0+e2QudGV4dENvbnRlbnQ9dSxkLnN0eWxlLmJhY2tncm91bmQ9IiIsZC5zdHlsZS5ib3JkZXJDb2xvcj0iIixkLnN0eWxlLmNvbG9yPSIifSwxNTAwKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLGQpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksT2l0KHRoaXMsbCl9c3RhdGlje09pdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgVG1hPWcoKCk9PntDbWEoKX0pO3ZhciAkbWE9ZygoKT0+e1FjZSgpfSk7dmFyIEZpdCxEbWEsTG1hPWcoKCk9PntwZSgpO0JpdCgpO0ZpdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNb2NrU3RvcmFnZURhdGFQcm92aWRlciIpfW9iamVjdHM9bmV3IE1hcDtjb25zdHJ1Y3Rvcigpe2xldCBlPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTt0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvcmVhZG1lLm1kIix7Y29udGVudDpidG9hKGAjIFdlbGNvbWUKClRoaXMgaXMgYSBkZW1vIFN0b3JhZ2UgYnJvd3Nlci4KYCksY29udGVudFR5cGU6InRleHQvbWFya2Rvd24iLHNpemU6NDIsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvY29uZmlnLmpzb24iLHtjb250ZW50OmJ0b2EoYHsKICAibmFtZSI6ICJkZW1vIiwKICAidmVyc2lvbiI6ICIxLjAuMCIKfWApLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixzaXplOjQ4LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL25vdGVzL3RvZG8udHh0Iix7Y29udGVudDpidG9hKGBCdXkgbWlsawpGaXggYnVnICM0MgpEZXBsb3kgdG8gcHJvZHVjdGlvbmApLGNvbnRlbnRUeXBlOiJ0ZXh0L3BsYWluIixzaXplOjQ1LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiaW1hZ2VzL2xvZ28ucG5nIix7Y29udGVudDpidG9hKCJmYWtlLXBuZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL3BuZyIsc2l6ZToyNDUwMCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImltYWdlcy9iYW5uZXIuanBnIix7Y29udGVudDpidG9hKCJmYWtlLWpwZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL2pwZWciLHNpemU6MTU2ZTMsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJzY3JpcHRzL2RlcGxveS5zaCIse2NvbnRlbnQ6YnRvYShgIyEvYmluL2Jhc2gKZWNobyAiRGVwbG95aW5nLi4uIgpgKSxjb250ZW50VHlwZToidGV4dC9wbGFpbiIsc2l6ZTozNCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImluZGV4Lmh0bWwiLHtjb250ZW50OmJ0b2EoYDwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPGJvZHk+CiAgPGgxPkhlbGxvIFdvcmxkPC9oMT4KPC9ib2R5Pgo8L2h0bWw+YCksY29udGVudFR5cGU6InRleHQvaHRtbCIsc2l6ZTo3MixsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoInN0eWxlcy5jc3MiLHtjb250ZW50OmJ0b2EoImJvZHkgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyB9IiksY29udGVudFR5cGU6InRleHQvY3NzIixzaXplOjQ0LGxhc3RNb2RpZmllZDplfSl9YXN5bmMgbGlzdE9iamVjdHMoZSx0LGEpe2xldCByPXR8fCIiLG49W10sbz1uZXcgU2V0O2ZvcihsZXRbbCxwXW9mIHRoaXMub2JqZWN0cyl7aWYoIWwuc3RhcnRzV2l0aChyKSljb250aW51ZTtsZXQgZD1sLnNsaWNlKHIubGVuZ3RoKTtpZihhKXtsZXQgdT1kLmluZGV4T2YoYSk7dT49MD9vLmFkZChyK2Quc2xpY2UoMCx1KzEpKTpuLnB1c2goe2tleTpsLHNpemU6cC5zaXplLGxhc3RNb2RpZmllZDpwLmxhc3RNb2RpZmllZH0pfWVsc2Ugbi5wdXNoKHtrZXk6bCxzaXplOnAuc2l6ZSxsYXN0TW9kaWZpZWQ6cC5sYXN0TW9kaWZpZWR9KX1yZXR1cm57b2JqZWN0czpuLHByZWZpeGVzOkFycmF5LmZyb20obykuc29ydCgpfX1hc3luYyBnZXRPYmplY3QoZSx0KXtsZXQgYT10aGlzLm9iamVjdHMuZ2V0KHQpO2lmKCFhKXRocm93IG5ldyBFcnJvcigiTm90IGZvdW5kIik7cmV0dXJuey4uLmF9fWFzeW5jIHB1dE9iamVjdChlLHQsYSxyKXtyZXR1cm4gdGhpcy5vYmplY3RzLnNldCh0LHtjb250ZW50OmEsY29udGVudFR5cGU6cixzaXplOmF0b2IoYSkubGVuZ3RoLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSwhMH1hc3luYyBkZWxldGVPYmplY3QoZSx0KXtyZXR1cm4gdGhpcy5vYmplY3RzLmRlbGV0ZSh0KX1hc3luYyBkZWxldGVQcmVmaXgoZSx0KXtmb3IobGV0IGEgb2YgdGhpcy5vYmplY3RzLmtleXMoKSlhLnN0YXJ0c1dpdGgodCkmJnRoaXMub2JqZWN0cy5kZWxldGUoYSk7cmV0dXJuITB9YXN5bmMgZ2V0T2JqZWN0VXJsKGUsdCl7bGV0IGE9dGhpcy5vYmplY3RzLmdldCh0KTtpZighYSlyZXR1cm4iIjtsZXQgcj1uZXcgQmxvYihbVWludDhBcnJheS5mcm9tKGF0b2IoYS5jb250ZW50KSxuPT5uLmNoYXJDb2RlQXQoMCkpXSx7dHlwZTphLmNvbnRlbnRUeXBlfSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwocil9YXN5bmMgbW92ZU9iamVjdChlLHQsYSl7bGV0IHI9dGhpcy5vYmplY3RzLmdldCh0KTtyZXR1cm4gcj8odGhpcy5vYmplY3RzLnNldChhLHsuLi5yLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSx0aGlzLm9iamVjdHMuZGVsZXRlKHQpLHtzdWNjZXNzOiEwfSk6e3N1Y2Nlc3M6ITEsZXJyb3I6IlNvdXJjZSBub3QgZm91bmQifX1hc3luYyBtb3ZlUHJlZml4KGUsdCxhKXtsZXQgcj0wLG49QXJyYXkuZnJvbSh0aGlzLm9iamVjdHMuZW50cmllcygpKS5maWx0ZXIoKFtvXSk9Pm8uc3RhcnRzV2l0aCh0KSk7Zm9yKGxldFtvLGxdb2Ygbil7bGV0IHA9YStvLnNsaWNlKHQubGVuZ3RoKTt0aGlzLm9iamVjdHMuc2V0KHAsey4uLmwsbGFzdE1vZGlmaWVkOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0pLHRoaXMub2JqZWN0cy5kZWxldGUobykscisrfXJldHVybntzdWNjZXNzOiEwLG1vdmVkQ291bnQ6cn19fSxEbWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc3RvcmFnZS1icm93c2VyCiAgICAgIC5kYXRhUHJvdmlkZXI9JHtuZXcgRml0fQogICAgICAuYnVja2V0TmFtZT0keyJkZW1vLWJ1Y2tldCJ9CiAgICA+PC9kZWVzLXN0b3JhZ2UtYnJvd3Nlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO2Z1bmN0aW9uIFF2KHMpe2lmKHM9PW51bGwpcmV0dXJuIi0iO2lmKHM9PT0wKXJldHVybiIwIEIiO2xldCBlPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIl0sdD1zLGE9MDtmb3IoO3Q+PTEwMjQmJmE8ZS5sZW5ndGgtMTspdC89MTAyNCxhKys7cmV0dXJuYCR7dC50b0ZpeGVkKGE+MD8xOjApfSAke2VbYV19YH1mdW5jdGlvbiBFbWEocyl7cmV0dXJuIHM9PW51bGw/IiI6cz49MWU2P2AkeyhzLzFlNikudG9GaXhlZCgxKX1NYDpzPj0xZTM/YCR7KHMvMWUzKS50b0ZpeGVkKDEpfUtgOnMudG9TdHJpbmcoKX1mdW5jdGlvbiBGYShzKXtsZXQgZT1zLnJlcGxhY2UoL1wvJC8sIiIpLnNwbGl0KCIvIik7cmV0dXJuIGVbZS5sZW5ndGgtMV18fHN9ZnVuY3Rpb24gSnYocyxlKXtyZXR1cm4gcy5lbmRzV2l0aCgiLyIpJiZlLnN0YXJ0c1dpdGgocyk/e3ZhbGlkOiExLGVycm9yOiJDYW5ub3QgbW92ZSBhIGZvbGRlciBpbnRvIGl0c2VsZiJ9OmwyKHMpPT09ZT97dmFsaWQ6ITEsZXJyb3I6Ikl0ZW0gaXMgYWxyZWFkeSBpbiB0aGlzIGxvY2F0aW9uIn06e3ZhbGlkOiEwfX1mdW5jdGlvbiBsMihzKXtsZXQgZT1zLmVuZHNXaXRoKCIvIik/cy5zbGljZSgwLC0xKTpzLHQ9ZS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiB0Pj0wP2Uuc3Vic3RyaW5nKDAsdCsxKToiIn1mdW5jdGlvbiBXaChzKXtyZXR1cm57anNvbjoiYXBwbGljYXRpb24vanNvbiIsdHh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLGNzczoidGV4dC9jc3MiLGpzOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iix0czoidGV4dC90eXBlc2NyaXB0IixtZDoidGV4dC9tYXJrZG93biIseG1sOiJhcHBsaWNhdGlvbi94bWwiLHlhbWw6InRleHQveWFtbCIseW1sOiJ0ZXh0L3lhbWwiLGNzdjoidGV4dC9jc3YifVtzXXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9ZnVuY3Rpb24gZXgocyl7cmV0dXJue2pzb246YHsKICAKfWAsaHRtbDpgPCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAKPC9ib2R5Pgo8L2h0bWw+YCxtZDpgIyBUaXRsZQoKYCx0eHQ6IiJ9W3NdfHwiIn1mdW5jdGlvbiB5ZyhzKXtpZighcylyZXR1cm5bXTtsZXQgZT1zLnNwbGl0KCIvIikuZmlsdGVyKHI9PnIpLHQ9W10sYT0iIjtmb3IobGV0IHIgb2YgZSlhKz1yKyIvIix0LnB1c2goYSk7cmV0dXJuIHR9dmFyIEtYPWcoKCk9PntpKFF2LCJmb3JtYXRTaXplIik7aShFbWEsImZvcm1hdENvdW50Iik7aShGYSwiZ2V0RmlsZU5hbWUiKTtpKEp2LCJ2YWxpZGF0ZU1vdmUiKTtpKGwyLCJnZXRQYXJlbnRQcmVmaXgiKTtpKFdoLCJnZXRDb250ZW50VHlwZSIpO2koZXgsImdldERlZmF1bHRDb250ZW50Iik7aSh5ZywiZ2V0UGF0aFNlZ21lbnRzIil9KTt2YXIgX3MsQXQsUG1hLEhpdD1nKCgpPT57cGUoKTtvcigpO3B0KCk7S1goKTtfcz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sQXQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3RvcmFnZS1jb2x1bW5zIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W10sR2UsRGU9W10sX2U9W10sQ2UsdmU9W10sYmU9W10sRWUsamU9W10sV2U9W10sc3QsTWU9W10sZ2U9W10sSWUsY2U9W10sZGU9W10sTGUsS2U9W10sWWU9W10sb3QsVXQ9W10sWnQ9W10samEsZXQ9W10sYnQ9W10seWEsZXM9W10scnM9W10scHMsbnM9W10sdGk9W10sYWksemU9W10seGU9W10sTmUseHQ9W10sTWE9W107dmFyIE5yPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3RvcmFnZUNvbHVtbnMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sR2U9W1koKV0sQ2U9W1koKV0sRWU9W1koKV0sc3Q9W1koKV0sSWU9W1koKV0sTGU9W1koKV0sb3Q9W1koKV0samE9W1koKV0seWE9W1koKV0scHM9W1koKV0sYWk9W1koKV0sTmU9W1koKV0sX3ModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJkYXRhUHJvdmlkZXIiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5kYXRhUHJvdmlkZXI9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG8sbCksX3ModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iYnVja2V0TmFtZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5idWNrZXROYW1lPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxkLHUpLF9zKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImN1cnJlbnRQcmVmaXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3VycmVudFByZWZpeD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sYix2KSxfcyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJyZWZyZXNoS2V5ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVmcmVzaEtleSwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnJlZnJlc2hLZXk9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG0sZiksX3ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iY29sdW1ucyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmNvbHVtbnMsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5jb2x1bW5zPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxNLHopLF9zKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImxvYWRpbmciaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubG9hZGluZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sQyxfKSxfcyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDcmVhdGVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93Q3JlYXRlRGlhbG9nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuc2hvd0NyZWF0ZURpYWxvZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnNob3dDcmVhdGVEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LCQsRSksX3ModGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iY3JlYXRlRGlhbG9nVHlwZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmNyZWF0ZURpYWxvZ1R5cGUsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5jcmVhdGVEaWFsb2dUeXBlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxrLFMpLF9zKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iY3JlYXRlRGlhbG9nUHJlZml4ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuY3JlYXRlRGlhbG9nUHJlZml4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3JlYXRlRGlhbG9nUHJlZml4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxQLFIpLF9zKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNyZWF0ZURpYWxvZ05hbWUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jcmVhdGVEaWFsb2dOYW1lLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3JlYXRlRGlhbG9nTmFtZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sVixXKSxfcyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckNvbHVtbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZHJhZ092ZXJDb2x1bW5JbmRleCJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmRyYWdPdmVyQ29sdW1uSW5kZXgsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5kcmFnT3ZlckNvbHVtbkluZGV4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxCLFUpLF9zKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyRm9sZGVyUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZHJhZ092ZXJGb2xkZXJQcmVmaXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kcmFnT3ZlckZvbGRlclByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmRyYWdPdmVyRm9sZGVyUHJlZml4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxGLGopLF9zKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwbG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InVwbG9hZGluZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnVwbG9hZGluZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnVwbG9hZGluZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sbGUsUSksX3ModGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBsb2FkUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJ1cGxvYWRQcm9ncmVzcyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnVwbG9hZFByb2dyZXNzLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUudXBsb2FkUHJvZ3Jlc3M9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LHRlLGVlKSxfcyh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TW92ZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InNob3dNb3ZlRGlhbG9nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuc2hvd01vdmVEaWFsb2csImdldCIpLHNldDppKChyZSxTZSk9PntyZS5zaG93TW92ZURpYWxvZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sWCxaKSxfcyh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVNvdXJjZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVTb3VyY2UsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlU291cmNlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxxLEEpLF9zKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVEZXN0aW5hdGlvbj1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sb2UsYWUpLF9zKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZUluUHJvZ3Jlc3MiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVJblByb2dyZXNzPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxSZSxCZSksX3ModGhpcyxudWxsLEdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZUVycm9yImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZUVycm9yLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZUVycm9yPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxEZSxfZSksX3ModGhpcyxudWxsLENlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVQaWNrZXJEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93TW92ZVBpY2tlckRpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dNb3ZlUGlja2VyRGlhbG9nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuc2hvd01vdmVQaWNrZXJEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LHZlLGJlKSxfcyh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVBpY2tlclNvdXJjZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVQaWNrZXJTb3VyY2UsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlUGlja2VyU291cmNlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxqZSxXZSksX3ModGhpcyxudWxsLHN0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LE1lLGdlKSxfcyh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyUHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlUGlja2VyUHJlZml4ZXMiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlUGlja2VyUHJlZml4ZXMsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlUGlja2VyUHJlZml4ZXM9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGNlLGRlKSxfcyh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVQaWNrZXJMb2FkaW5nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZVBpY2tlckxvYWRpbmcsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlUGlja2VyTG9hZGluZz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sS2UsWWUpLF9zKHRoaXMsbnVsbCxvdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dSZW5hbWVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93UmVuYW1lRGlhbG9nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuc2hvd1JlbmFtZURpYWxvZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnNob3dSZW5hbWVEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LFV0LFp0KSxfcyh0aGlzLG51bGwsamEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJyZW5hbWVTb3VyY2UiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVTb3VyY2UsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZW5hbWVTb3VyY2U9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGV0LGJ0KSxfcyh0aGlzLG51bGwseWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVuYW1lTmFtZSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnJlbmFtZU5hbWUsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZW5hbWVOYW1lPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxlcyxycyksX3ModGhpcyxudWxsLHBzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InJlbmFtZUluUHJvZ3Jlc3MiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUucmVuYW1lSW5Qcm9ncmVzcz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sbnMsdGkpLF9zKHRoaXMsbnVsbCxhaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVuYW1lRXJyb3IiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVFcnJvciwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnJlbmFtZUVycm9yPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx6ZSx4ZSksX3ModGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJkcmFnZ2VkSXRlbSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmRyYWdnZWRJdGVtLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuZHJhZ2dlZEl0ZW09U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LHh0LE1hKSxfcyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpmZX0sbnVsbCx0KSxOcj1hPWUudmFsdWUsZmUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZmV9KX0jZT1BdCh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoZmUpe3RoaXMuI2U9ZmV9I3Q9KEF0KHRoaXMsbCksQXQodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZShmZSl7dGhpcy4jdD1mZX0jYT0oQXQodGhpcyx1KSxBdCh0aGlzLGIsIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50UHJlZml4KGZlKXt0aGlzLiNhPWZlfSNzPShBdCh0aGlzLHYpLEF0KHRoaXMsbSwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVmcmVzaEtleShmZSl7dGhpcy4jcz1mZX0jaT0oQXQodGhpcyxmKSxBdCh0aGlzLE0sW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNpfXNldCBjb2x1bW5zKGZlKXt0aGlzLiNpPWZlfSNyPShBdCh0aGlzLHopLEF0KHRoaXMsQywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvYWRpbmcoZmUpe3RoaXMuI3I9ZmV9I289KEF0KHRoaXMsXyksQXQodGhpcywkLCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd0NyZWF0ZURpYWxvZyhmZSl7dGhpcy4jbz1mZX0jbj0oQXQodGhpcyxFKSxBdCh0aGlzLGssImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNufXNldCBjcmVhdGVEaWFsb2dUeXBlKGZlKXt0aGlzLiNuPWZlfSNsPShBdCh0aGlzLFMpLEF0KHRoaXMsUCwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KGZlKXt0aGlzLiNsPWZlfSNjPShBdCh0aGlzLFIpLEF0KHRoaXMsViwiIikpO2dldCBjcmVhdGVEaWFsb2dOYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNyZWF0ZURpYWxvZ05hbWUoZmUpe3RoaXMuI2M9ZmV9I2Q9KEF0KHRoaXMsVyksQXQodGhpcyxCLC0xKSk7Z2V0IGRyYWdPdmVyQ29sdW1uSW5kZXgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZHJhZ092ZXJDb2x1bW5JbmRleChmZSl7dGhpcy4jZD1mZX0jdT0oQXQodGhpcyxVKSxBdCh0aGlzLEYsbnVsbCkpO2dldCBkcmFnT3ZlckZvbGRlclByZWZpeCgpe3JldHVybiB0aGlzLiN1fXNldCBkcmFnT3ZlckZvbGRlclByZWZpeChmZSl7dGhpcy4jdT1mZX0jcD0oQXQodGhpcyxqKSxBdCh0aGlzLGxlLCExKSk7Z2V0IHVwbG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCB1cGxvYWRpbmcoZmUpe3RoaXMuI3A9ZmV9I2g9KEF0KHRoaXMsUSksQXQodGhpcyx0ZSxudWxsKSk7Z2V0IHVwbG9hZFByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHVwbG9hZFByb2dyZXNzKGZlKXt0aGlzLiNoPWZlfSNmPShBdCh0aGlzLGVlKSxBdCh0aGlzLFgsITEpKTtnZXQgc2hvd01vdmVEaWFsb2coKXtyZXR1cm4gdGhpcy4jZn1zZXQgc2hvd01vdmVEaWFsb2coZmUpe3RoaXMuI2Y9ZmV9I209KEF0KHRoaXMsWiksQXQodGhpcyxxLG51bGwpKTtnZXQgbW92ZVNvdXJjZSgpe3JldHVybiB0aGlzLiNtfXNldCBtb3ZlU291cmNlKGZlKXt0aGlzLiNtPWZlfSNnPShBdCh0aGlzLEEpLEF0KHRoaXMsb2UsIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVEZXN0aW5hdGlvbihmZSl7dGhpcy4jZz1mZX0jYj0oQXQodGhpcyxhZSksQXQodGhpcyxSZSwhMSkpO2dldCBtb3ZlSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNifXNldCBtb3ZlSW5Qcm9ncmVzcyhmZSl7dGhpcy4jYj1mZX0jdj0oQXQodGhpcyxCZSksQXQodGhpcyxEZSxudWxsKSk7Z2V0IG1vdmVFcnJvcigpe3JldHVybiB0aGlzLiN2fXNldCBtb3ZlRXJyb3IoZmUpe3RoaXMuI3Y9ZmV9I3g9KEF0KHRoaXMsX2UpLEF0KHRoaXMsdmUsITEpKTtnZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coZmUpe3RoaXMuI3g9ZmV9I3k9KEF0KHRoaXMsYmUpLEF0KHRoaXMsamUsbnVsbCkpO2dldCBtb3ZlUGlja2VyU291cmNlKCl7cmV0dXJuIHRoaXMuI3l9c2V0IG1vdmVQaWNrZXJTb3VyY2UoZmUpe3RoaXMuI3k9ZmV9I3c9KEF0KHRoaXMsV2UpLEF0KHRoaXMsTWUsIiIpKTtnZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoZmUpe3RoaXMuI3c9ZmV9I2s9KEF0KHRoaXMsZ2UpLEF0KHRoaXMsY2UsW10pKTtnZXQgbW92ZVBpY2tlclByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IG1vdmVQaWNrZXJQcmVmaXhlcyhmZSl7dGhpcy4jaz1mZX0jUz0oQXQodGhpcyxkZSksQXQodGhpcyxLZSwhMSkpO2dldCBtb3ZlUGlja2VyTG9hZGluZygpe3JldHVybiB0aGlzLiNTfXNldCBtb3ZlUGlja2VyTG9hZGluZyhmZSl7dGhpcy4jUz1mZX0jXz0oQXQodGhpcyxZZSksQXQodGhpcyxVdCwhMSkpO2dldCBzaG93UmVuYW1lRGlhbG9nKCl7cmV0dXJuIHRoaXMuI199c2V0IHNob3dSZW5hbWVEaWFsb2coZmUpe3RoaXMuI189ZmV9I009KEF0KHRoaXMsWnQpLEF0KHRoaXMsZXQsbnVsbCkpO2dldCByZW5hbWVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jTX1zZXQgcmVuYW1lU291cmNlKGZlKXt0aGlzLiNNPWZlfSN6PShBdCh0aGlzLGJ0KSxBdCh0aGlzLGVzLCIiKSk7Z2V0IHJlbmFtZU5hbWUoKXtyZXR1cm4gdGhpcy4jen1zZXQgcmVuYW1lTmFtZShmZSl7dGhpcy4jej1mZX0jQz0oQXQodGhpcyxycyksQXQodGhpcyxucywhMSkpO2dldCByZW5hbWVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHJlbmFtZUluUHJvZ3Jlc3MoZmUpe3RoaXMuI0M9ZmV9I1Q9KEF0KHRoaXMsdGkpLEF0KHRoaXMsemUsbnVsbCkpO2dldCByZW5hbWVFcnJvcigpe3JldHVybiB0aGlzLiNUfXNldCByZW5hbWVFcnJvcihmZSl7dGhpcy4jVD1mZX0jJD0oQXQodGhpcyx4ZSksQXQodGhpcyx4dCxudWxsKSk7Z2V0IGRyYWdnZWRJdGVtKCl7cmV0dXJuIHRoaXMuIyR9c2V0IGRyYWdnZWRJdGVtKGZlKXt0aGlzLiMkPWZlfXJlc2l6aW5nPShBdCh0aGlzLE1hKSxudWxsKTtERUZBVUxUX0NPTFVNTl9XSURUSD0yNTA7TUlOX0NPTFVNTl9XSURUSD0xNTA7TUFYX0NPTFVNTl9XSURUSD01MDA7ZHJhZ0NvdW50ZXJzPW5ldyBNYXA7Zm9sZGVySG92ZXJUaW1lcj1udWxsO2ZpbGVJbnB1dEVsZW1lbnQ9bnVsbDtmb2xkZXJJbnB1dEVsZW1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSGUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmNvbHVtbnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IG1heC1jb250ZW50OwogICAgICB9CgogICAgICAuY29sdW1uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuY29sdW1uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDVweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUuYWN0aXZlOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNDA0MDQwIil9OwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgbGVmdDogMXB4OwogICAgICB9CgogICAgICAuY29sdW1uLXdyYXBwZXI6bGFzdC1jaGlsZCAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM2NjYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbXMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFkNGVkOCIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5mb2xkZXIgewogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gLmljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5jaGV2cm9uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxvYWRpbmcgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4uZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCk7CiAgICAgICAgb3V0bGluZTogMnB4IGRhc2hlZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmZvbGRlci5kcmFnLXRhcmdldCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMikgIWltcG9ydGFudDsKICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAudXBsb2FkLW92ZXJsYXkgLnVwbG9hZC10ZXh0IHsKICAgICAgICBjb2xvcjogI2UwZTBlMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSAudXBsb2FkLXByb2dyZXNzIHsKICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhpbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjkpOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLmRpYWxvZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMWUxZTFlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtaW4td2lkdGg6IDQwMHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgfQoKICAgICAgLmRpYWxvZy10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWxvY2F0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxNDE0MTQiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1oaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGlhbG9nLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTA1MDUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBNb3ZlIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtc3VtbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm1vdmUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICB9CgogICAgICAubW92ZS1wYXRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLm1vdmUtZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLyogTW92ZSBwaWNrZXIgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1waWNrZXItZGlhbG9nIHsKICAgICAgICBtaW4td2lkdGg6IDQ1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyYWdnaW5nIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5kcm9wLXRhcmdldCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpICFpbXBvcnRhbnQ7CiAgICAgICAgb3V0bGluZTogMXB4IGRhc2hlZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyb3AtaW52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLmxvYWRJbml0aWFsQ29sdW1uKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5maWxlSW5wdXRFbGVtZW50JiYodGhpcy5maWxlSW5wdXRFbGVtZW50LnJlbW92ZSgpLHRoaXMuZmlsZUlucHV0RWxlbWVudD1udWxsKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudCYmKHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnJlbW92ZSgpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50PW51bGwpfXVwZGF0ZWQoZmUpe2ZlLmhhcygiYnVja2V0TmFtZSIpfHxmZS5oYXMoImN1cnJlbnRQcmVmaXgiKT90aGlzLmxvYWRJbml0aWFsQ29sdW1uKCk6ZmUuaGFzKCJyZWZyZXNoS2V5IikmJnRoaXMucmVmcmVzaEFsbENvbHVtbnMoKX1hc3luYyBsb2FkSW5pdGlhbENvbHVtbigpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBmZT15Zyh0aGlzLmN1cnJlbnRQcmVmaXgpLHJlPVsiIiwuLi5mZV0sU2U9YXdhaXQgUHJvbWlzZS5hbGwocmUubWFwKE9lPT50aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsT2UsIi8iKSkpO3RoaXMuY29sdW1ucz1TZS5tYXAoKE9lLEplKT0+e2xldCB6YT1yZVtKZV0sZGE9SmU8ZmUubGVuZ3RoP2ZlW0plXTpudWxsO3JldHVybntwcmVmaXg6emEsb2JqZWN0czpPZS5vYmplY3RzLHByZWZpeGVzOk9lLnByZWZpeGVzLHNlbGVjdGVkSXRlbTpkYSx3aWR0aDp0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIfX0pLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5zY3JvbGxUb0VuZCgpKX1jYXRjaChmZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3RzOiIsZmUpLHRoaXMuY29sdW1ucz1bXX10aGlzLmxvYWRpbmc9ITF9fWFzeW5jIHJlZnJlc2hBbGxDb2x1bW5zKCl7aWYoIXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgZmU9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5jb2x1bW5zLm1hcChhc3luYyByZT0+e3RyeXtsZXQgU2U9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLHJlLnByZWZpeCwiLyIpO3JldHVybnsuLi5yZSxvYmplY3RzOlNlLm9iamVjdHMscHJlZml4ZXM6U2UucHJlZml4ZXN9fWNhdGNoe3JldHVybiByZX19KSk7dGhpcy5jb2x1bW5zPWZlfWFzeW5jIHNlbGVjdEZvbGRlcihmZSxyZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChTZSxPZSk9Pk9lPT09ZmU/ey4uLlNlLHNlbGVjdGVkSXRlbTpyZX06U2UpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuc2xpY2UoMCxmZSsxKTt0cnl7bGV0IFNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxyZSwiLyIpO3RoaXMuY29sdW1ucz1bLi4udGhpcy5jb2x1bW5zLHtwcmVmaXg6cmUsb2JqZWN0czpTZS5vYmplY3RzLHByZWZpeGVzOlNlLnByZWZpeGVzLHNlbGVjdGVkSXRlbTpudWxsLHdpZHRoOnRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEh9XSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuc2Nyb2xsVG9FbmQoKSl9Y2F0Y2goU2Upe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgZm9sZGVyOiIsU2UpfX19c2Nyb2xsVG9FbmQoKXt0aGlzLnNjcm9sbExlZnQ9dGhpcy5zY3JvbGxXaWR0aC10aGlzLmNsaWVudFdpZHRofXN0YXJ0UmVzaXplKGZlLHJlKXtmZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVzaXppbmc9e2NvbHVtbkluZGV4OnJlLHN0YXJ0WDpmZS5jbGllbnRYLHN0YXJ0V2lkdGg6dGhpcy5jb2x1bW5zW3JlXS53aWR0aH0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5zdG9wUmVzaXplKSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iY29sLXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIn1oYW5kbGVSZXNpemU9aShmZT0+e2lmKCF0aGlzLnJlc2l6aW5nKXJldHVybjtsZXQgcmU9ZmUuY2xpZW50WC10aGlzLnJlc2l6aW5nLnN0YXJ0WCxTZT1NYXRoLm1pbih0aGlzLk1BWF9DT0xVTU5fV0lEVEgsTWF0aC5tYXgodGhpcy5NSU5fQ09MVU1OX1dJRFRILHRoaXMucmVzaXppbmcuc3RhcnRXaWR0aCtyZSkpO3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChPZSxKZSk9PkplPT09dGhpcy5yZXNpemluZy5jb2x1bW5JbmRleD97Li4uT2Usd2lkdGg6U2V9Ok9lKX0sImhhbmRsZVJlc2l6ZSIpO3N0b3BSZXNpemU9aSgoKT0+e3RoaXMucmVzaXppbmc9bnVsbCxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUmVzaXplKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnN0b3BSZXNpemUpLGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0iIn0sInN0b3BSZXNpemUiKTtzZWxlY3RGaWxlKGZlLHJlKXt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoU2UsT2UpPT5PZT09PWZlP3suLi5TZSxzZWxlY3RlZEl0ZW06cmV9OlNlKSx0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAsZmUrMSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5LXNlbGVjdGVkIix7ZGV0YWlsOntrZXk6cmV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0RmlsZUljb24oZmUpe2xldCByZT1mZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm57anNvbjoiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIsdHh0OiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Iixwbmc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixqcGc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixqcGVnOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIsZ2lmOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIscGRmOiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6In1bcmVdfHwiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiJ9aGFuZGxlRm9sZGVyQ29udGV4dE1lbnUoZmUscmUsU2Upe3RoaXMuZGF0YVByb3ZpZGVyJiYoZmUucHJldmVudERlZmF1bHQoKSxrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhmZSxbe25hbWU6Ik9wZW4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyT3BlbiIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuc2VsZWN0Rm9sZGVyKHJlLFNlKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChTZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhTZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coU2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJOZXcgRm9sZGVyIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIsU2UpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIixTZSksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZpbGVzLi4uIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZpbGVzIiksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZvbGRlci4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJVcCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZChTZSwiZm9sZGVyIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZvbGRlciAiJHtGYShTZSl9IiBhbmQgYWxsIGl0cyBjb250ZW50cz9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlUHJlZml4KHRoaXMuYnVja2V0TmFtZSxTZSkmJih0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAscmUrMSksdGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKEplLHphKT0+emE9PT1yZT97Li4uSmUsc2VsZWN0ZWRJdGVtOm51bGx9OkplKSxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNvbHVtbnNbcmVdLnByZWZpeCkpfSwiYWN0aW9uIil9XSkpfWhhbmRsZUZpbGVDb250ZXh0TWVudShmZSxyZSxTZSl7dGhpcy5kYXRhUHJvdmlkZXImJihmZS5wcmV2ZW50RGVmYXVsdCgpLGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGZlLFt7bmFtZToiUHJldmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEZpbGUocmUsU2UpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBPZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3RVcmwodGhpcy5idWNrZXROYW1lLFNlKSxKZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7SmUuaHJlZj1PZSxKZS5kb3dubG9hZD1GYShTZSksSmUuY2xpY2soKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChTZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhTZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coU2UsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZpbGUgIiR7RmEoU2UpfSI/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsU2UpJiZhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNvbHVtbnNbcmVdLnByZWZpeCl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KGZlLHJlKXtpZihmZS50YXJnZXQhPT1mZS5jdXJyZW50VGFyZ2V0KXJldHVybjtmZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBTZT10aGlzLmNvbHVtbnNbcmVdLnByZWZpeDtrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhmZSxbe25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLFNlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIixTZSksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZpbGVzLi4uIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZpbGVzIiksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZvbGRlci4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJVcCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZChTZSwiZm9sZGVyIiksImFjdGlvbiIpfV0pfW9wZW5DcmVhdGVEaWFsb2coZmUscmUpe3RoaXMuY3JlYXRlRGlhbG9nVHlwZT1mZSx0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeD1yZSx0aGlzLmNyZWF0ZURpYWxvZ05hbWU9IiIsdGhpcy5zaG93Q3JlYXRlRGlhbG9nPSEwfWVuc3VyZUZpbGVJbnB1dHMoKXt0aGlzLmZpbGVJbnB1dEVsZW1lbnR8fCh0aGlzLmZpbGVJbnB1dEVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLmZpbGVJbnB1dEVsZW1lbnQudHlwZT0iZmlsZSIsdGhpcy5maWxlSW5wdXRFbGVtZW50Lm11bHRpcGxlPSEwLHRoaXMuZmlsZUlucHV0RWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5maWxlSW5wdXRFbGVtZW50KSksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnR8fCh0aGlzLmZvbGRlcklucHV0RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnR5cGU9ImZpbGUiLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50Lm11bHRpcGxlPSEwLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LndlYmtpdGRpcmVjdG9yeT0hMCx0aGlzLmZvbGRlcklucHV0RWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQpKX10cmlnZ2VyRmlsZVVwbG9hZChmZSxyZSl7dGhpcy5lbnN1cmVGaWxlSW5wdXRzKCk7bGV0IFNlPXJlPT09ImZvbGRlciI/dGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQ6dGhpcy5maWxlSW5wdXRFbGVtZW50O1NlLnZhbHVlPSIiO2xldCBPZT1pKGFzeW5jKCk9PntTZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLE9lKSxTZS5maWxlcyYmU2UuZmlsZXMubGVuZ3RoPjAmJmF3YWl0IHRoaXMudXBsb2FkRmlsZXMoQXJyYXkuZnJvbShTZS5maWxlcyksZmUpfSwiaGFuZGxlciIpO1NlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsT2UpLFNlLmNsaWNrKCl9YXN5bmMgdXBsb2FkRmlsZXMoZmUscmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLnVwbG9hZGluZz0hMCx0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OjAsdG90YWw6ZmUubGVuZ3RofTtmb3IobGV0IFNlPTA7U2U8ZmUubGVuZ3RoO1NlKyspe2xldCBPZT1mZVtTZV07dGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDpTZSsxLHRvdGFsOmZlLmxlbmd0aH07dHJ5e2xldCBKZT1hd2FpdCB0aGlzLnJlYWRGaWxlQXNCYXNlNjQoT2UpLHphPU9lLndlYmtpdFJlbGF0aXZlUGF0aHx8T2UubmFtZSxkYT1yZSt6YSx3cz1PZS50eXBlfHxXaChPZS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiKTthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLGRhLEplLHdzKX1jYXRjaChKZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHVwbG9hZCAke09lLm5hbWV9OmAsSmUpfX10aGlzLnVwbG9hZGluZz0hMSx0aGlzLnVwbG9hZFByb2dyZXNzPW51bGwsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgocmUpfX1hc3luYyB1cGxvYWRGaWxlc1dpdGhQYXRocyhmZSxyZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMudXBsb2FkaW5nPSEwLHRoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6MCx0b3RhbDpmZS5sZW5ndGh9O2ZvcihsZXQgU2U9MDtTZTxmZS5sZW5ndGg7U2UrKyl7bGV0e2ZpbGU6T2UscmVsYXRpdmVQYXRoOkplfT1mZVtTZV07dGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDpTZSsxLHRvdGFsOmZlLmxlbmd0aH07dHJ5e2xldCB6YT1hd2FpdCB0aGlzLnJlYWRGaWxlQXNCYXNlNjQoT2UpLGRhPXJlK0plLHdzPU9lLnR5cGV8fFdoKE9lLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsZGEsemEsd3MpfWNhdGNoKHphKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gdXBsb2FkICR7SmV9OmAsemEpfX10aGlzLnVwbG9hZGluZz0hMSx0aGlzLnVwbG9hZFByb2dyZXNzPW51bGwsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgocmUpfX1yZWFkRmlsZUFzQmFzZTY0KGZlKXtyZXR1cm4gbmV3IFByb21pc2UoKHJlLFNlKT0+e2xldCBPZT1uZXcgRmlsZVJlYWRlcjtPZS5vbmxvYWQ9KCk9PntsZXQgSmU9T2UucmVzdWx0O3JlKEplLnNwbGl0KCIsIilbMV18fCIiKX0sT2Uub25lcnJvcj0oKT0+U2UoT2UuZXJyb3IpLE9lLnJlYWRBc0RhdGFVUkwoZmUpfSl9YXN5bmMgcmVmcmVzaENvbHVtbkJ5UHJlZml4KGZlKXtpZighdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCByZT10aGlzLmNvbHVtbnMuZmluZEluZGV4KFNlPT5TZS5wcmVmaXg9PT1mZSk7aWYocmU9PT0tMSl7YXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpO3JldHVybn10cnl7bGV0IFNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxmZSwiLyIpO3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChPZSxKZSk9PkplPT09cmU/ey4uLk9lLG9iamVjdHM6U2Uub2JqZWN0cyxwcmVmaXhlczpTZS5wcmVmaXhlc306T2UpfWNhdGNoe2F3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKX19aGFuZGxlQ29sdW1uRHJhZ0VudGVyKGZlLHJlKXtmZS5wcmV2ZW50RGVmYXVsdCgpLGZlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTZT0odGhpcy5kcmFnQ291bnRlcnMuZ2V0KHJlKXx8MCkrMTt0aGlzLmRyYWdDb3VudGVycy5zZXQocmUsU2UpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD1yZX1oYW5kbGVDb2x1bW5EcmFnT3ZlcihmZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKSxmZS5kYXRhVHJhbnNmZXImJihmZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD10aGlzLmRyYWdnZWRJdGVtPyJtb3ZlIjoiY29weSIpfWhhbmRsZUNvbHVtbkRyYWdMZWF2ZShmZSxyZSl7ZmUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFNlPSh0aGlzLmRyYWdDb3VudGVycy5nZXQocmUpfHwxKS0xO3RoaXMuZHJhZ0NvdW50ZXJzLnNldChyZSxTZSksU2U8PTAmJih0aGlzLmRyYWdDb3VudGVycy5kZWxldGUocmUpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD09PXJlJiYodGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xKSx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSl9YXN5bmMgaGFuZGxlQ29sdW1uRHJvcChmZSxyZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgU2U9dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD8/dGhpcy5jb2x1bW5zW3JlXS5wcmVmaXg7aWYodGhpcy5kcmFnZ2VkSXRlbSl7dGhpcy5pbml0aWF0ZU1vdmUodGhpcy5kcmFnZ2VkSXRlbS5rZXksdGhpcy5kcmFnZ2VkSXRlbS5pc0ZvbGRlcixTZSksdGhpcy5kcmFnZ2VkSXRlbT1udWxsLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xO3JldHVybn10aGlzLmRyYWdDb3VudGVycy5jbGVhcigpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD0tMTtsZXQgT2U9ZmUuZGF0YVRyYW5zZmVyPy5pdGVtcztpZighT2V8fE9lLmxlbmd0aD09PTApcmV0dXJuO3RoaXMuY2xlYXJGb2xkZXJIb3ZlcigpO2xldCBKZT1bXSx6YT1pKGFzeW5jKGRhLHdzKT0+e2lmKGRhLmlzRmlsZSl7bGV0IGtpPWRhLEppPWF3YWl0IG5ldyBQcm9taXNlKChScixTaSk9PntraS5maWxlKFJyLFNpKX0pO0plLnB1c2goe2ZpbGU6SmkscmVsYXRpdmVQYXRoOndzK0ppLm5hbWV9KX1lbHNlIGlmKGRhLmlzRGlyZWN0b3J5KXtsZXQgSmk9ZGEuY3JlYXRlUmVhZGVyKCksUnI9YXdhaXQgbmV3IFByb21pc2UoKFNpLHZuKT0+e0ppLnJlYWRFbnRyaWVzKFNpLHZuKX0pO2ZvcihsZXQgU2kgb2YgUnIpYXdhaXQgemEoU2ksd3MrZGEubmFtZSsiLyIpfX0sInByb2Nlc3NFbnRyeSIpO2ZvcihsZXQgZGE9MDtkYTxPZS5sZW5ndGg7ZGErKyl7bGV0IHdzPU9lW2RhXTtpZih3cy5raW5kPT09ImZpbGUiKXtsZXQga2k9d3Mud2Via2l0R2V0QXNFbnRyeSgpO2tpJiZhd2FpdCB6YShraSwiIil9fUplLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwbG9hZEZpbGVzV2l0aFBhdGhzKEplLFNlKX1oYW5kbGVGb2xkZXJEcmFnRW50ZXIoZmUscmUpe2ZlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZm9sZGVySG92ZXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1yZX0sNTAwKX1oYW5kbGVGb2xkZXJEcmFnTGVhdmUoZmUscmUpe2ZlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTZT1mZS5jdXJyZW50VGFyZ2V0LE9lPWZlLnJlbGF0ZWRUYXJnZXQ7T2UmJlNlLmNvbnRhaW5zKE9lKXx8KHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9PT1yZSYmKHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9bnVsbCksdGhpcy5mb2xkZXJIb3ZlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuZm9sZGVySG92ZXJUaW1lciksdGhpcy5mb2xkZXJIb3ZlclRpbWVyPW51bGwpKX1oYW5kbGVGb2xkZXJEcmFnT3ZlcihmZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKSxmZS5kYXRhVHJhbnNmZXImJihmZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD10aGlzLmRyYWdnZWRJdGVtPyJtb3ZlIjoiY29weSIpfWNsZWFyRm9sZGVySG92ZXIoKXt0aGlzLmZvbGRlckhvdmVyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5mb2xkZXJIb3ZlclRpbWVyKSx0aGlzLmZvbGRlckhvdmVyVGltZXI9bnVsbCksdGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1udWxsfWhhbmRsZUl0ZW1EcmFnU3RhcnQoZmUscmUsU2Upe3RoaXMuZHJhZ2dlZEl0ZW09e2tleTpyZSxpc0ZvbGRlcjpTZX0sZmUuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCJ0ZXh0L3BsYWluIixyZSksZmUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9ImNvcHlNb3ZlIixmZS50YXJnZXQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX1oYW5kbGVJdGVtRHJhZ0VuZChmZSl7dGhpcy5kcmFnZ2VkSXRlbT1udWxsLGZlLnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpfWFzeW5jIG9wZW5Nb3ZlUGlja2VyRGlhbG9nKGZlLHJlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2U9e2tleTpmZSxpc0ZvbGRlcjpyZX0sdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSEwLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcygiIil9YXN5bmMgbmF2aWdhdGVNb3ZlUGlja2VyKGZlKXt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PWZlLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcyhmZSl9YXN5bmMgbG9hZE1vdmVQaWNrZXJQcmVmaXhlcyhmZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubW92ZVBpY2tlckxvYWRpbmc9ITA7dHJ5e2xldCByZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsZmUsIi8iKTt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1yZS5wcmVmaXhlc31jYXRjaHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX10aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSExfX1zZWxlY3RNb3ZlRGVzdGluYXRpb24oZmUpe3RoaXMubW92ZVBpY2tlclNvdXJjZSYmKHRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCksdGhpcy5pbml0aWF0ZU1vdmUodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSx0aGlzLm1vdmVQaWNrZXJTb3VyY2UuaXNGb2xkZXIsZmUpKX1jbG9zZU1vdmVQaWNrZXJEaWFsb2coKXt0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSExLHRoaXMubW92ZVBpY2tlclNvdXJjZT1udWxsLHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119aW5pdGlhdGVNb3ZlKGZlLHJlLFNlKXtsZXQgT2U9SnYoZmUsU2UpO2lmKCFPZS52YWxpZCl7dGhpcy5tb3ZlU291cmNlPXtrZXk6ZmUsaXNGb2xkZXI6cmV9LHRoaXMubW92ZURlc3RpbmF0aW9uPVNlLHRoaXMubW92ZUVycm9yPU9lLmVycm9yLHRoaXMuc2hvd01vdmVEaWFsb2c9ITA7cmV0dXJufXRoaXMubW92ZVNvdXJjZT17a2V5OmZlLGlzRm9sZGVyOnJlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1TZSx0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMuc2hvd01vdmVEaWFsb2c9ITB9YXN5bmMgZXhlY3V0ZU1vdmUoKXtpZighKCF0aGlzLm1vdmVTb3VyY2V8fCF0aGlzLmRhdGFQcm92aWRlcikpe3RoaXMubW92ZUluUHJvZ3Jlc3M9ITA7dHJ5e2xldCBmZT1GYSh0aGlzLm1vdmVTb3VyY2Uua2V5KSxyZT10aGlzLm1vdmVEZXN0aW5hdGlvbitmZSsodGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyIvIjoiIiksU2U7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyP1NlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkscmUpOlNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkscmUpLFNlLnN1Y2Nlc3M/KHRoaXMuY2xvc2VNb3ZlRGlhbG9nKCksYXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpKTp0aGlzLm1vdmVFcnJvcj1TZS5lcnJvcnx8Ik1vdmUgb3BlcmF0aW9uIGZhaWxlZCJ9Y2F0Y2goZmUpe3RoaXMubW92ZUVycm9yPWBFcnJvcjogJHtmZX1gfXRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9fWNsb3NlTW92ZURpYWxvZygpe3RoaXMuc2hvd01vdmVEaWFsb2c9ITEsdGhpcy5tb3ZlU291cmNlPW51bGwsdGhpcy5tb3ZlRGVzdGluYXRpb249IiIsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLm1vdmVJblByb2dyZXNzPSExfW9wZW5SZW5hbWVEaWFsb2coZmUscmUpe3RoaXMucmVuYW1lU291cmNlPXtrZXk6ZmUsaXNGb2xkZXI6cmV9LHRoaXMucmVuYW1lTmFtZT1GYShmZSksdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMuc2hvd1JlbmFtZURpYWxvZz0hMCx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgU2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucmVuYW1lLWRpYWxvZy1pbnB1dCIpO2lmKFNlKWlmKFNlLmZvY3VzKCkscmUpU2Uuc2VsZWN0KCk7ZWxzZXtsZXQgT2U9dGhpcy5yZW5hbWVOYW1lLmxhc3RJbmRleE9mKCIuIik7T2U+MD9TZS5zZXRTZWxlY3Rpb25SYW5nZSgwLE9lKTpTZS5zZWxlY3QoKX19KX1hc3luYyBleGVjdXRlUmVuYW1lKCl7aWYoIXRoaXMucmVuYW1lU291cmNlfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgZmU9dGhpcy5yZW5hbWVOYW1lLnRyaW0oKSxyZT1GYSh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpO2lmKGZlPT09cmUpe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudCI7cmV0dXJufWlmKCFmZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBjYW5ub3QgYmUgZW1wdHkiO3JldHVybn1pZihmZS5pbmNsdWRlcygiLyIpKXt0aGlzLnJlbmFtZUVycm9yPSdOYW1lIGNhbm5vdCBjb250YWluICIvIic7cmV0dXJufXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMCx0aGlzLnJlbmFtZUVycm9yPW51bGw7dHJ5e2xldCBPZT1sMih0aGlzLnJlbmFtZVNvdXJjZS5rZXkpK2ZlKyh0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLEplO3RoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyP0plPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSxPZSk6SmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LE9lKSxKZS5zdWNjZXNzPyh0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCksYXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpKTp0aGlzLnJlbmFtZUVycm9yPUplLmVycm9yfHwiUmVuYW1lIGZhaWxlZCJ9Y2F0Y2goU2Upe3RoaXMucmVuYW1lRXJyb3I9YEVycm9yOiAke1NlfWB9dGhpcy5yZW5hbWVJblByb2dyZXNzPSExfWNsb3NlUmVuYW1lRGlhbG9nKCl7dGhpcy5zaG93UmVuYW1lRGlhbG9nPSExLHRoaXMucmVuYW1lU291cmNlPW51bGwsdGhpcy5yZW5hbWVOYW1lPSIiLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9cmVuZGVyUmVuYW1lRGlhbG9nKCl7aWYoIXRoaXMuc2hvd1JlbmFtZURpYWxvZ3x8IXRoaXMucmVuYW1lU291cmNlKXJldHVybiIiO2xldCBmZT10aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7U2U9PlNlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHtmZT8iUmVuYW1lIEZvbGRlciI6IlJlbmFtZSBGaWxlIn08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHtsMih0aGlzLnJlbmFtZVNvdXJjZS5rZXkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuYW1lRXJyb3I/d2A8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMucmVuYW1lRXJyb3J9PC9kaXY+YDoiIn0KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IHJlbmFtZS1kaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7ZmU/ImZvbGRlci1uYW1lIjoiZmlsZW5hbWUuZXh0In0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZW5hbWVOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtTZT0+e3RoaXMucmVuYW1lTmFtZT1TZS50YXJnZXQudmFsdWUsdGhpcy5yZW5hbWVFcnJvcj1udWxsfX0KICAgICAgICAgICAgQGtleWRvd249JHtTZT0+e1NlLmtleT09PSJFbnRlciImJnRoaXMuZXhlY3V0ZVJlbmFtZSgpLFNlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc30+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZVJlbmFtZSgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc3x8IXRoaXMucmVuYW1lTmFtZS50cmltKCl9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5hbWVJblByb2dyZXNzPyJSZW5hbWluZy4uLiI6IlJlbmFtZSJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVEaWFsb2d8fCF0aGlzLm1vdmVTb3VyY2UpcmV0dXJuIiI7bGV0IGZlPUZhKHRoaXMubW92ZVNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7cmU9PnJlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAke3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iRm9sZGVyIjoiRmlsZSJ9PC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMubW92ZUVycm9yfTwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLXN1bW1hcnkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+RnJvbTo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZVNvdXJjZS5rZXl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+VG86PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVEZXN0aW5hdGlvbn0ke2ZlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/IiI6d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZU1vdmUoKX0KICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgICAgJHt0aGlzLm1vdmVJblByb2dyZXNzPyJNb3ZpbmcuLi4iOiJNb3ZlIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZVBpY2tlckRpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nfHwhdGhpcy5tb3ZlUGlja2VyU291cmNlKXJldHVybiIiO2xldCBmZT1GYSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KSxyZT1sMih0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2cgbW92ZS1waWNrZXItZGlhbG9nIiBAY2xpY2s9JHtTZT0+U2Uuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICIke2ZlfSIgdG8uLi48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcigiIil9PgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7eWcodGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCkubWFwKFNlPT53YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihTZSl9PgogICAgICAgICAgICAgICAgJHtGYShTZSl9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nP3dgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5Mb2FkaW5nLi4uPC9kaXY+YDoiIn0KICAgICAgICAgICAgJHshdGhpcy5tb3ZlUGlja2VyTG9hZGluZyYmdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKFNlPT5TZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPk5vIHN1YmZvbGRlcnM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoU2U9PlNlIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubWFwKFNlPT53YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihTZSl9CiAgICAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbihTZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtGYShTZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9PT1yZX0+CiAgICAgICAgICAgICAgTW92ZSBIZXJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVDcmVhdGUoKXtpZighdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgZmU9dGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKSxyZTt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIj9yZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtmZSsiLy5rZWVwIjpyZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtmZTtsZXQgU2U9ZmUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIsT2U9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP1doKFNlKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixKZT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/ZXgoU2UpOiIiO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUscmUsYnRvYShKZSksT2UpJiYodGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHRoaXMuY3JlYXRlRGlhbG9nUHJlZml4KSl9cmVuZGVyQ3JlYXRlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd0NyZWF0ZURpYWxvZylyZXR1cm4iIjtsZXQgZmU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciIscmU9ZmU/IkNyZWF0ZSBOZXcgRm9sZGVyIjoiQ3JlYXRlIE5ldyBGaWxlIixTZT1mZT8iZm9sZGVyLW5hbWUgb3IgcGF0aC90by9mb2xkZXIiOiJmaWxlbmFtZS50eHQgb3IgcGF0aC90by9maWxlLnR4dCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke09lPT5PZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7cmV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXh9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke1NlfQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNyZWF0ZURpYWxvZ05hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke09lPT50aGlzLmNyZWF0ZURpYWxvZ05hbWU9T2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICBAa2V5ZG93bj0ke09lPT5PZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1oaW50Ij4KICAgICAgICAgICAgVXNlICIvIiB0byBjcmVhdGUgbmVzdGVkICR7ZmU/ImZvbGRlcnMiOiJwYXRoIn0gKGUuZy4sICR7ZmU/InBhcmVudC9jaGlsZCI6ImZvbGRlci9maWxlLnR4dCJ9KQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfQogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ3JlYXRlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5sb2FkaW5nJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImxvYWRpbmciPkxvYWRpbmcuLi48L2Rpdj5gOndgCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbnMtY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuY29sdW1ucy5tYXAoKGZlLHJlKT0+dGhpcy5yZW5kZXJDb2x1bW5XcmFwcGVyKGZlLHJlKSl9CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMucmVuZGVyQ3JlYXRlRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJNb3ZlRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJSZW5hbWVEaWFsb2coKX0KICAgIGB9cmVuZGVyQ29sdW1uV3JhcHBlcihmZSxyZSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi13cmFwcGVyIj4KICAgICAgICAke3RoaXMucmVuZGVyQ29sdW1uKGZlLHJlKX0KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSAke3RoaXMucmVzaXppbmc/LmNvbHVtbkluZGV4PT09cmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke1NlPT50aGlzLnN0YXJ0UmVzaXplKFNlLHJlKX0KICAgICAgICA+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDb2x1bW4oZmUscmUpe2xldCBTZT1mZS5wcmVmaXg/RmEoZmUucHJlZml4KTp0aGlzLmJ1Y2tldE5hbWU7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iY29sdW1uICR7dGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PT09cmU/ImRyYWctb3ZlciI6IiJ9IgogICAgICAgIHN0eWxlPSJ3aWR0aDogJHtmZS53aWR0aH1weCIKICAgICAgICBAZHJhZ2VudGVyPSR7T2U9PnRoaXMuaGFuZGxlQ29sdW1uRHJhZ0VudGVyKE9lLHJlKX0KICAgICAgICBAZHJhZ292ZXI9JHtPZT0+dGhpcy5oYW5kbGVDb2x1bW5EcmFnT3ZlcihPZSl9CiAgICAgICAgQGRyYWdsZWF2ZT0ke09lPT50aGlzLmhhbmRsZUNvbHVtbkRyYWdMZWF2ZShPZSxyZSl9CiAgICAgICAgQGRyb3A9JHtPZT0+dGhpcy5oYW5kbGVDb2x1bW5Ecm9wKE9lLHJlKX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi1oZWFkZXIiIHRpdGxlPSR7ZmUucHJlZml4fHx0aGlzLmJ1Y2tldE5hbWV9PgogICAgICAgICAgJHtTZX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4taXRlbXMiIEBjb250ZXh0bWVudT0ke09lPT50aGlzLmhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudShPZSxyZSl9PgogICAgICAgICAgJHtmZS5wcmVmaXhlcy5sZW5ndGg9PT0wJiZmZS5vYmplY3RzLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+RW1wdHkgZm9sZGVyPC9kaXY+YDoiIn0KICAgICAgICAgICR7ZmUucHJlZml4ZXMubWFwKE9lPT53YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJjb2x1bW4taXRlbSBmb2xkZXIgJHtmZS5zZWxlY3RlZEl0ZW09PT1PZT8ic2VsZWN0ZWQiOiIifSAke3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9PT1PZT8iZHJhZy10YXJnZXQiOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEZvbGRlcihyZSxPZSl9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtKZT0+dGhpcy5oYW5kbGVGb2xkZXJDb250ZXh0TWVudShKZSxyZSxPZSl9CiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7SmU9PnRoaXMuaGFuZGxlSXRlbURyYWdTdGFydChKZSxPZSwhMCl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke0plPT50aGlzLmhhbmRsZUl0ZW1EcmFnRW5kKEplKX0KICAgICAgICAgICAgICAgIEBkcmFnZW50ZXI9JHtKZT0+dGhpcy5oYW5kbGVGb2xkZXJEcmFnRW50ZXIoSmUsT2UpfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7SmU9PnRoaXMuaGFuZGxlRm9sZGVyRHJhZ092ZXIoSmUpfQogICAgICAgICAgICAgICAgQGRyYWdsZWF2ZT0ke0plPT50aGlzLmhhbmRsZUZvbGRlckRyYWdMZWF2ZShKZSxPZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiIC8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke0ZhKE9lKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJjaGV2cm9uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI5IDE4IDE1IDEyIDkgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgICR7ZmUub2JqZWN0cy5tYXAoT2U9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImNvbHVtbi1pdGVtICR7ZmUuc2VsZWN0ZWRJdGVtPT09T2Uua2V5PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0RmlsZShyZSxPZS5rZXkpfQogICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7SmU9PnRoaXMuaGFuZGxlRmlsZUNvbnRleHRNZW51KEplLHJlLE9lLmtleSl9CiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7SmU9PnRoaXMuaGFuZGxlSXRlbURyYWdTdGFydChKZSxPZS5rZXksITEpfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHtKZT0+dGhpcy5oYW5kbGVJdGVtRHJhZ0VuZChKZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBhdGggZD0iJHt0aGlzLmdldEZpbGVJY29uKE9lLmtleSl9IiAvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtGYShPZS5rZXkpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9PT1yZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZHJhZy1oaW50Ij4KICAgICAgICAgICAgJHt0aGlzLmRyYWdnZWRJdGVtP3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/YE1vdmUgdG8gJHtGYSh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4KX1gOiJNb3ZlIGhlcmUiOnRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/YERyb3AgdG8gdXBsb2FkIGludG8gJHtGYSh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4KX1gOiJEcm9wIHRvIHVwbG9hZCBoZXJlIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgJHt0aGlzLnVwbG9hZGluZz93YAogICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtdGV4dCI+VXBsb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy51cGxvYWRQcm9ncmVzcz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1wcm9ncmVzcyI+JHt0aGlzLnVwbG9hZFByb2dyZXNzLmN1cnJlbnR9IC8gJHt0aGlzLnVwbG9hZFByb2dyZXNzLnRvdGFsfSBmaWxlczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tBdChhLHQpfX07cmV0dXJuIE5yPWF9KSgpfSk7dmFyIEhzLHF0LEltYSxxaXQ9ZygoKT0+e3BlKCk7b3IoKTtwdCgpO0tYKCk7SHM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHF0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxJbWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2Uta2V5cyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdO3ZhciBhaT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VLZXlzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHplPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLHN0PVtZKCldLEllPVtZKCldLExlPVtZKCldLG90PVtZKCldLGphPVtZKCldLHlhPVtZKCldLHBzPVtZKCldLEhzKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4iZGF0YVByb3ZpZGVyImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuZGF0YVByb3ZpZGVyPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxvLGwpLEhzKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImJ1Y2tldE5hbWUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuYnVja2V0TmFtZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sZCx1KSxIcyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjdXJyZW50UHJlZml4ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmN1cnJlbnRQcmVmaXg9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGIsdiksSHModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZyZXNoS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icmVmcmVzaEtleSJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlZnJlc2hLZXksImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5yZWZyZXNoS2V5PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxtLGYpLEhzKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsS2V5cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImFsbEtleXMiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5hbGxLZXlzLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuYWxsS2V5cz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sTSx6KSxIcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZWZpeGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icHJlZml4ZXMiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5wcmVmaXhlcywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnByZWZpeGVzPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxDLF8pLEhzKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImxvYWRpbmciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubG9hZGluZz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sJCxFKSxIcyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2VsZWN0ZWRLZXkiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zZWxlY3RlZEtleSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNlbGVjdGVkS2V5PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxrLFMpLEhzKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImZpbHRlclRleHQiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5maWx0ZXJUZXh0LCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuZmlsdGVyVGV4dD1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sUCxSKSxIcyh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDcmVhdGVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJzaG93Q3JlYXRlRGlhbG9nImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuc2hvd0NyZWF0ZURpYWxvZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNob3dDcmVhdGVEaWFsb2c9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LFYsVyksSHModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImNyZWF0ZURpYWxvZ1R5cGUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5jcmVhdGVEaWFsb2dUeXBlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuY3JlYXRlRGlhbG9nVHlwZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sQixVKSxIcyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjcmVhdGVEaWFsb2dQcmVmaXgiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5jcmVhdGVEaWFsb2dQcmVmaXgsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5jcmVhdGVEaWFsb2dQcmVmaXg9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LEYsaiksSHModGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImNyZWF0ZURpYWxvZ05hbWUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5jcmVhdGVEaWFsb2dOYW1lLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuY3JlYXRlRGlhbG9nTmFtZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbGUsUSksSHModGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJzaG93TW92ZURpYWxvZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnNob3dNb3ZlRGlhbG9nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuc2hvd01vdmVEaWFsb2c9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LHRlLGVlKSxIcyh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVNvdXJjZSJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVTb3VyY2UsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlU291cmNlPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxYLFopLEhzKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVEZXN0aW5hdGlvbj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0scSxBKSxIcyh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVJblByb2dyZXNzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZUluUHJvZ3Jlc3MsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlSW5Qcm9ncmVzcz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sb2UsYWUpLEhzKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVFcnJvciJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVFcnJvciwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVFcnJvcj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sUmUsQmUpLEhzKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlUGlja2VyRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd01vdmVQaWNrZXJEaWFsb2ciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zaG93TW92ZVBpY2tlckRpYWxvZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNob3dNb3ZlUGlja2VyRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxEZSxfZSksSHModGhpcyxudWxsLENlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVQaWNrZXJTb3VyY2UiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlUGlja2VyU291cmNlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVBpY2tlclNvdXJjZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sdmUsYmUpLEhzKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJDdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxqZSxXZSksSHModGhpcyxudWxsLHN0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclByZWZpeGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVBpY2tlclByZWZpeGVzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZVBpY2tlclByZWZpeGVzLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVBpY2tlclByZWZpeGVzPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxNZSxnZSksSHModGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlUGlja2VyTG9hZGluZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVQaWNrZXJMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVBpY2tlckxvYWRpbmc9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGNlLGRlKSxIcyh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UmVuYW1lRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd1JlbmFtZURpYWxvZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnNob3dSZW5hbWVEaWFsb2csImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zaG93UmVuYW1lRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxLZSxZZSksSHModGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icmVuYW1lU291cmNlImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lU291cmNlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVuYW1lU291cmNlPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxVdCxadCksSHModGhpcyxudWxsLGphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlbmFtZU5hbWUiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5yZW5hbWVOYW1lLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVuYW1lTmFtZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sZXQsYnQpLEhzKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUluUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJyZW5hbWVJblByb2dyZXNzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnJlbmFtZUluUHJvZ3Jlc3M9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGVzLHJzKSxIcyh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlbmFtZUVycm9yImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lRXJyb3IsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5yZW5hbWVFcnJvcj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbnMsdGkpLEhzKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnplfSxudWxsLHQpLGFpPWE9ZS52YWx1ZSx6ZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6ZX0pfSNlPXF0KHRoaXMsbyxudWxsKTtnZXQgZGF0YVByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGFQcm92aWRlcih6ZSl7dGhpcy4jZT16ZX0jdD0ocXQodGhpcyxsKSxxdCh0aGlzLGQsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKHplKXt0aGlzLiN0PXplfSNhPShxdCh0aGlzLHUpLHF0KHRoaXMsYiwiIikpO2dldCBjdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRQcmVmaXgoemUpe3RoaXMuI2E9emV9I3M9KHF0KHRoaXMsdikscXQodGhpcyxtLDApKTtnZXQgcmVmcmVzaEtleSgpe3JldHVybiB0aGlzLiNzfXNldCByZWZyZXNoS2V5KHplKXt0aGlzLiNzPXplfSNpPShxdCh0aGlzLGYpLHF0KHRoaXMsTSxbXSkpO2dldCBhbGxLZXlzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbEtleXMoemUpe3RoaXMuI2k9emV9I3I9KHF0KHRoaXMseikscXQodGhpcyxDLFtdKSk7Z2V0IHByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHByZWZpeGVzKHplKXt0aGlzLiNyPXplfSNvPShxdCh0aGlzLF8pLHF0KHRoaXMsJCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGxvYWRpbmcoemUpe3RoaXMuI289emV9I249KHF0KHRoaXMsRSkscXQodGhpcyxrLCIiKSk7Z2V0IHNlbGVjdGVkS2V5KCl7cmV0dXJuIHRoaXMuI259c2V0IHNlbGVjdGVkS2V5KHplKXt0aGlzLiNuPXplfSNsPShxdCh0aGlzLFMpLHF0KHRoaXMsUCwiIikpO2dldCBmaWx0ZXJUZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGZpbHRlclRleHQoemUpe3RoaXMuI2w9emV9I2M9KHF0KHRoaXMsUikscXQodGhpcyxWLCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0NyZWF0ZURpYWxvZyh6ZSl7dGhpcy4jYz16ZX0jZD0ocXQodGhpcyxXKSxxdCh0aGlzLEIsImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNkfXNldCBjcmVhdGVEaWFsb2dUeXBlKHplKXt0aGlzLiNkPXplfSN1PShxdCh0aGlzLFUpLHF0KHRoaXMsRiwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KHplKXt0aGlzLiN1PXplfSNwPShxdCh0aGlzLGopLHF0KHRoaXMsbGUsIiIpKTtnZXQgY3JlYXRlRGlhbG9nTmFtZSgpe3JldHVybiB0aGlzLiNwfXNldCBjcmVhdGVEaWFsb2dOYW1lKHplKXt0aGlzLiNwPXplfSNoPShxdCh0aGlzLFEpLHF0KHRoaXMsdGUsITEpKTtnZXQgc2hvd01vdmVEaWFsb2coKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2hvd01vdmVEaWFsb2coemUpe3RoaXMuI2g9emV9I2Y9KHF0KHRoaXMsZWUpLHF0KHRoaXMsWCxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jZn1zZXQgbW92ZVNvdXJjZSh6ZSl7dGhpcy4jZj16ZX0jbT0ocXQodGhpcyxaKSxxdCh0aGlzLHEsIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI219c2V0IG1vdmVEZXN0aW5hdGlvbih6ZSl7dGhpcy4jbT16ZX0jZz0ocXQodGhpcyxBKSxxdCh0aGlzLG9lLCExKSk7Z2V0IG1vdmVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVJblByb2dyZXNzKHplKXt0aGlzLiNnPXplfSNiPShxdCh0aGlzLGFlKSxxdCh0aGlzLFJlLG51bGwpKTtnZXQgbW92ZUVycm9yKCl7cmV0dXJuIHRoaXMuI2J9c2V0IG1vdmVFcnJvcih6ZSl7dGhpcy4jYj16ZX0jdj0ocXQodGhpcyxCZSkscXQodGhpcyxEZSwhMSkpO2dldCBzaG93TW92ZVBpY2tlckRpYWxvZygpe3JldHVybiB0aGlzLiN2fXNldCBzaG93TW92ZVBpY2tlckRpYWxvZyh6ZSl7dGhpcy4jdj16ZX0jeD0ocXQodGhpcyxfZSkscXQodGhpcyx2ZSxudWxsKSk7Z2V0IG1vdmVQaWNrZXJTb3VyY2UoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbW92ZVBpY2tlclNvdXJjZSh6ZSl7dGhpcy4jeD16ZX0jeT0ocXQodGhpcyxiZSkscXQodGhpcyxqZSwiIikpO2dldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeCh6ZSl7dGhpcy4jeT16ZX0jdz0ocXQodGhpcyxXZSkscXQodGhpcyxNZSxbXSkpO2dldCBtb3ZlUGlja2VyUHJlZml4ZXMoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlclByZWZpeGVzKHplKXt0aGlzLiN3PXplfSNrPShxdCh0aGlzLGdlKSxxdCh0aGlzLGNlLCExKSk7Z2V0IG1vdmVQaWNrZXJMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2t9c2V0IG1vdmVQaWNrZXJMb2FkaW5nKHplKXt0aGlzLiNrPXplfSNTPShxdCh0aGlzLGRlKSxxdCh0aGlzLEtlLCExKSk7Z2V0IHNob3dSZW5hbWVEaWFsb2coKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1JlbmFtZURpYWxvZyh6ZSl7dGhpcy4jUz16ZX0jXz0ocXQodGhpcyxZZSkscXQodGhpcyxVdCxudWxsKSk7Z2V0IHJlbmFtZVNvdXJjZSgpe3JldHVybiB0aGlzLiNffXNldCByZW5hbWVTb3VyY2UoemUpe3RoaXMuI189emV9I009KHF0KHRoaXMsWnQpLHF0KHRoaXMsZXQsIiIpKTtnZXQgcmVuYW1lTmFtZSgpe3JldHVybiB0aGlzLiNNfXNldCByZW5hbWVOYW1lKHplKXt0aGlzLiNNPXplfSN6PShxdCh0aGlzLGJ0KSxxdCh0aGlzLGVzLCExKSk7Z2V0IHJlbmFtZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jen1zZXQgcmVuYW1lSW5Qcm9ncmVzcyh6ZSl7dGhpcy4jej16ZX0jQz0ocXQodGhpcyxycykscXQodGhpcyxucyxudWxsKSk7Z2V0IHJlbmFtZUVycm9yKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHJlbmFtZUVycm9yKHplKXt0aGlzLiNDPXplfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxIZSxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5rZXlzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmZpbHRlci1iYXIgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzQwNDA0MCIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC5rZXlzLWxpc3QgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgIH0KCiAgICAgIHRoZWFkIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM2NjYiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICB9CgogICAgICB0ZCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyYTJhM2UiKX07CiAgICAgIH0KCiAgICAgIHRyOmhvdmVyIHRkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykiKX07CiAgICAgIH0KCiAgICAgIHRyLnNlbGVjdGVkIHRkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLmtleS1jZWxsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAua2V5LWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZvbGRlci1pY29uIHsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLmtleS1uYW1lIHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zaXplLWNlbGwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAuZGlhbG9nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuZGlhbG9nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZTFlMWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1pbi13aWR0aDogNDAwcHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgICB9CgogICAgICAuZGlhbG9nLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctbG9jYXRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE0MTQxNCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlhbG9nLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWwgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYWFhIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1MDUwNTAiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIE1vdmUgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1zdW1tYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubW92ZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAubW92ZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLXBhdGggewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNmM2Y0NiIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAubW92ZS1lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAvKiBNb3ZlIHBpY2tlciBkaWFsb2cgc3R5bGVzICovCiAgICAgIC5tb3ZlLXBpY2tlci1kaWFsb2cgewogICAgICAgIG1pbi13aWR0aDogNDUwcHg7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItYnJlYWRjcnVtYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAucGlja2VyLXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAubmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItZW1wdHkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpfXVwZGF0ZWQoemUpeyh6ZS5oYXMoImJ1Y2tldE5hbWUiKXx8emUuaGFzKCJjdXJyZW50UHJlZml4Iil8fHplLmhhcygicmVmcmVzaEtleSIpKSYmdGhpcy5sb2FkT2JqZWN0cygpfWFzeW5jIGxvYWRPYmplY3RzKCl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IHplPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSx0aGlzLmN1cnJlbnRQcmVmaXgsIi8iKTt0aGlzLmFsbEtleXM9emUub2JqZWN0cyx0aGlzLnByZWZpeGVzPXplLnByZWZpeGVzfWNhdGNoKHplKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIG9iamVjdHM6Iix6ZSksdGhpcy5hbGxLZXlzPVtdLHRoaXMucHJlZml4ZXM9W119dGhpcy5sb2FkaW5nPSExfX1oYW5kbGVGaWx0ZXJJbnB1dCh6ZSl7dGhpcy5maWx0ZXJUZXh0PXplLnRhcmdldC52YWx1ZX1zZWxlY3RLZXkoemUseGUpe3RoaXMuc2VsZWN0ZWRLZXk9emUseGU/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmF2aWdhdGUiLHtkZXRhaWw6e3ByZWZpeDp6ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKTp0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXktc2VsZWN0ZWQiLHtkZXRhaWw6e2tleTp6ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXQgZmlsdGVyZWRJdGVtcygpe2xldCB6ZT10aGlzLmZpbHRlclRleHQudG9Mb3dlckNhc2UoKSx4ZT10aGlzLnByZWZpeGVzLmZpbHRlcih4dD0+IXplfHxGYSh4dCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6ZSkpLm1hcCh4dD0+KHtrZXk6eHQsaXNGb2xkZXI6ITAsc2l6ZTp2b2lkIDB9KSksTmU9dGhpcy5hbGxLZXlzLmZpbHRlcih4dD0+IXplfHxGYSh4dC5rZXkpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoemUpKS5tYXAoeHQ9Pih7a2V5Onh0LmtleSxpc0ZvbGRlcjohMSxzaXplOnh0LnNpemV9KSk7cmV0dXJuWy4uLnhlLC4uLk5lXX1oYW5kbGVJdGVtQ29udGV4dE1lbnUoemUseGUsTmUpe3RoaXMuZGF0YVByb3ZpZGVyJiYoemUucHJldmVudERlZmF1bHQoKSxOZT9rYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh6ZSxbe25hbWU6Ik9wZW4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyT3BlbiIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuc2VsZWN0S2V5KHhlLCEwKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh4ZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyh4ZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coeGUsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJOZXcgRm9sZGVyIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIseGUpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIix4ZSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZvbGRlciAiJHtGYSh4ZSl9IiBhbmQgYWxsIGl0cyBjb250ZW50cz9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlUHJlZml4KHRoaXMuYnVja2V0TmFtZSx4ZSkmJmF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX0sImFjdGlvbiIpfV0pOmthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHplLFt7bmFtZToiUHJldmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEtleSh4ZSwhMSl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IHh0PWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmdldE9iamVjdFVybCh0aGlzLmJ1Y2tldE5hbWUseGUpLE1hPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtNYS5ocmVmPXh0LE1hLmRvd25sb2FkPUZhKHhlKSxNYS5jbGljaygpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IFBhdGgiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHhlKX0sImFjdGlvbiIpfSx7bmFtZToiUmVuYW1lIixpY29uTmFtZToibHVjaWRlOnBlbmNpbCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuUmVuYW1lRGlhbG9nKHhlLCExKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTW92ZSB0by4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJJbnB1dCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuTW92ZVBpY2tlckRpYWxvZyh4ZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25maXJtKGBEZWxldGUgZmlsZSAiJHtGYSh4ZSl9Ij9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx4ZSkmJmF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX0sImFjdGlvbiIpfV0pKX1oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoemUpe3plLnRhcmdldC5jbG9zZXN0KCJ0ciIpfHwoemUucHJldmVudERlZmF1bHQoKSxrYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh6ZSxbe25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLHRoaXMuY3VycmVudFByZWZpeCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsdGhpcy5jdXJyZW50UHJlZml4KSwiYWN0aW9uIil9XSkpfW9wZW5DcmVhdGVEaWFsb2coemUseGUpe3RoaXMuY3JlYXRlRGlhbG9nVHlwZT16ZSx0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeD14ZSx0aGlzLmNyZWF0ZURpYWxvZ05hbWU9IiIsdGhpcy5zaG93Q3JlYXRlRGlhbG9nPSEwfWFzeW5jIGhhbmRsZUNyZWF0ZSgpe2lmKCF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCB6ZT10aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpLHhlO3RoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmb2xkZXIiP3hlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K3plKyIvLmtlZXAiOnhlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K3plO2xldCBOZT16ZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIix4dD10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/V2goTmUpOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLE1hPXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmaWxlIj9leChOZSk6IiI7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx4ZSxidG9hKE1hKSx4dCkmJih0aGlzLnNob3dDcmVhdGVEaWFsb2c9ITEsYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKX1yZW5kZXJDcmVhdGVEaWFsb2coKXtpZighdGhpcy5zaG93Q3JlYXRlRGlhbG9nKXJldHVybiIiO2xldCB6ZT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIix4ZT16ZT8iQ3JlYXRlIE5ldyBGb2xkZXIiOiJDcmVhdGUgTmV3IEZpbGUiLE5lPXplPyJmb2xkZXItbmFtZSBvciBwYXRoL3RvL2ZvbGRlciI6ImZpbGVuYW1lLnR4dCBvciBwYXRoL3RvL2ZpbGUudHh0IjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7eHQ9Pnh0LnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHt4ZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHt0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7TmV9CiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuY3JlYXRlRGlhbG9nTmFtZX0KICAgICAgICAgICAgQGlucHV0PSR7eHQ9PnRoaXMuY3JlYXRlRGlhbG9nTmFtZT14dC50YXJnZXQudmFsdWV9CiAgICAgICAgICAgIEBrZXlkb3duPSR7eHQ9Pnh0LmtleT09PSJFbnRlciImJnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWhpbnQiPgogICAgICAgICAgICBVc2UgIi8iIHRvIGNyZWF0ZSBuZXN0ZWQgJHt6ZT8iZm9sZGVycyI6InBhdGgifSAoZS5nLiwgJHt6ZT8icGFyZW50L2NoaWxkIjoiZm9sZGVyL2ZpbGUudHh0In0pCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCl9CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBDcmVhdGUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIG9wZW5Nb3ZlUGlja2VyRGlhbG9nKHplLHhlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2U9e2tleTp6ZSxpc0ZvbGRlcjp4ZX0sdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSEwLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcygiIil9YXN5bmMgbmF2aWdhdGVNb3ZlUGlja2VyKHplKXt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PXplLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcyh6ZSl9YXN5bmMgbG9hZE1vdmVQaWNrZXJQcmVmaXhlcyh6ZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubW92ZVBpY2tlckxvYWRpbmc9ITA7dHJ5e2xldCB4ZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsemUsIi8iKTt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz14ZS5wcmVmaXhlc31jYXRjaHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX10aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSExfX1zZWxlY3RNb3ZlRGVzdGluYXRpb24oemUpe3RoaXMubW92ZVBpY2tlclNvdXJjZSYmKHRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCksdGhpcy5pbml0aWF0ZU1vdmUodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSx0aGlzLm1vdmVQaWNrZXJTb3VyY2UuaXNGb2xkZXIsemUpKX1jbG9zZU1vdmVQaWNrZXJEaWFsb2coKXt0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSExLHRoaXMubW92ZVBpY2tlclNvdXJjZT1udWxsLHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119aW5pdGlhdGVNb3ZlKHplLHhlLE5lKXtsZXQgeHQ9SnYoemUsTmUpO2lmKCF4dC52YWxpZCl7dGhpcy5tb3ZlU291cmNlPXtrZXk6emUsaXNGb2xkZXI6eGV9LHRoaXMubW92ZURlc3RpbmF0aW9uPU5lLHRoaXMubW92ZUVycm9yPXh0LmVycm9yLHRoaXMuc2hvd01vdmVEaWFsb2c9ITA7cmV0dXJufXRoaXMubW92ZVNvdXJjZT17a2V5OnplLGlzRm9sZGVyOnhlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1OZSx0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMuc2hvd01vdmVEaWFsb2c9ITB9YXN5bmMgZXhlY3V0ZU1vdmUoKXtpZighKCF0aGlzLm1vdmVTb3VyY2V8fCF0aGlzLmRhdGFQcm92aWRlcikpe3RoaXMubW92ZUluUHJvZ3Jlc3M9ITA7dHJ5e2xldCB6ZT1GYSh0aGlzLm1vdmVTb3VyY2Uua2V5KSx4ZT10aGlzLm1vdmVEZXN0aW5hdGlvbit6ZSxOZTt0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/TmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSx4ZSk6TmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSx4ZSksTmUuc3VjY2Vzcz8odGhpcy5jbG9zZU1vdmVEaWFsb2coKSxhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCkpOnRoaXMubW92ZUVycm9yPU5lLmVycm9yfHwiTW92ZSBvcGVyYXRpb24gZmFpbGVkIn1jYXRjaCh6ZSl7dGhpcy5tb3ZlRXJyb3I9YEVycm9yOiAke3plfWB9dGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMX19Y2xvc2VNb3ZlRGlhbG9nKCl7dGhpcy5zaG93TW92ZURpYWxvZz0hMSx0aGlzLm1vdmVTb3VyY2U9bnVsbCx0aGlzLm1vdmVEZXN0aW5hdGlvbj0iIix0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9b3BlblJlbmFtZURpYWxvZyh6ZSx4ZSl7dGhpcy5yZW5hbWVTb3VyY2U9e2tleTp6ZSxpc0ZvbGRlcjp4ZX0sdGhpcy5yZW5hbWVOYW1lPUZhKHplKSx0aGlzLnJlbmFtZUVycm9yPW51bGwsdGhpcy5zaG93UmVuYW1lRGlhbG9nPSEwLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBOZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5yZW5hbWUtZGlhbG9nLWlucHV0Iik7aWYoTmUpaWYoTmUuZm9jdXMoKSx4ZSlOZS5zZWxlY3QoKTtlbHNle2xldCB4dD10aGlzLnJlbmFtZU5hbWUubGFzdEluZGV4T2YoIi4iKTt4dD4wP05lLnNldFNlbGVjdGlvblJhbmdlKDAseHQpOk5lLnNlbGVjdCgpfX0pfWFzeW5jIGV4ZWN1dGVSZW5hbWUoKXtpZighdGhpcy5yZW5hbWVTb3VyY2V8fCF0aGlzLnJlbmFtZU5hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCB6ZT10aGlzLnJlbmFtZU5hbWUudHJpbSgpLHhlPUZhKHRoaXMucmVuYW1lU291cmNlLmtleSk7aWYoemU9PT14ZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBpcyB0aGUgc2FtZSBhcyBjdXJyZW50IjtyZXR1cm59aWYoIXplKXt0aGlzLnJlbmFtZUVycm9yPSJOYW1lIGNhbm5vdCBiZSBlbXB0eSI7cmV0dXJufWlmKHplLmluY2x1ZGVzKCIvIikpe3RoaXMucmVuYW1lRXJyb3I9J05hbWUgY2Fubm90IGNvbnRhaW4gIi8iJztyZXR1cm59dGhpcy5yZW5hbWVJblByb2dyZXNzPSEwLHRoaXMucmVuYW1lRXJyb3I9bnVsbDt0cnl7bGV0IHh0PWwyKHRoaXMucmVuYW1lU291cmNlLmtleSkremUrKHRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyPyIvIjoiIiksTWE7dGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI/TWE9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LHh0KTpNYT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLnJlbmFtZVNvdXJjZS5rZXkseHQpLE1hLnN1Y2Nlc3M/KHRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKSxhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCkpOnRoaXMucmVuYW1lRXJyb3I9TWEuZXJyb3J8fCJSZW5hbWUgZmFpbGVkIn1jYXRjaChOZSl7dGhpcy5yZW5hbWVFcnJvcj1gRXJyb3I6ICR7TmV9YH10aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9Y2xvc2VSZW5hbWVEaWFsb2coKXt0aGlzLnNob3dSZW5hbWVEaWFsb2c9ITEsdGhpcy5yZW5hbWVTb3VyY2U9bnVsbCx0aGlzLnJlbmFtZU5hbWU9IiIsdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMX1yZW5kZXJSZW5hbWVEaWFsb2coKXtpZighdGhpcy5zaG93UmVuYW1lRGlhbG9nfHwhdGhpcy5yZW5hbWVTb3VyY2UpcmV0dXJuIiI7bGV0IHplPXRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtOZT0+TmUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj4ke3plPyJSZW5hbWUgRm9sZGVyIjoiUmVuYW1lIEZpbGUifTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWxvY2F0aW9uIj4KICAgICAgICAgICAgTG9jYXRpb246ICR7dGhpcy5idWNrZXROYW1lfS8ke2wyKHRoaXMucmVuYW1lU291cmNlLmtleSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5hbWVFcnJvcj93YDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5yZW5hbWVFcnJvcn08L2Rpdj5gOiIifQogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQgcmVuYW1lLWRpYWxvZy1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHt6ZT8iZm9sZGVyLW5hbWUiOiJmaWxlbmFtZS5leHQifQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnJlbmFtZU5hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke05lPT57dGhpcy5yZW5hbWVOYW1lPU5lLnRhcmdldC52YWx1ZSx0aGlzLnJlbmFtZUVycm9yPW51bGx9fQogICAgICAgICAgICBAa2V5ZG93bj0ke05lPT57TmUua2V5PT09IkVudGVyIiYmdGhpcy5leGVjdXRlUmVuYW1lKCksTmUua2V5PT09IkVzY2FwZSImJnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX19CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlUmVuYW1lKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKX0+CiAgICAgICAgICAgICAgJHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3M/IlJlbmFtaW5nLi4uIjoiUmVuYW1lIn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1vdmVEaWFsb2coKXtpZighdGhpcy5zaG93TW92ZURpYWxvZ3x8IXRoaXMubW92ZVNvdXJjZSlyZXR1cm4iIjtsZXQgemU9RmEodGhpcy5tb3ZlU291cmNlLmtleSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHt4ZT0+eGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICR7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyJGb2xkZXIiOiJGaWxlIn08L2Rpdj4KCiAgICAgICAgICAke3RoaXMubW92ZUVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5tb3ZlRXJyb3J9PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtc3VtbWFyeSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Gcm9tOjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLXBhdGgiPiR7dGhpcy5tb3ZlU291cmNlLmtleX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Ubzo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZURlc3RpbmF0aW9ufSR7emV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj8iIjp3YAogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlTW92ZSgpfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlSW5Qcm9ncmVzc30+CiAgICAgICAgICAgICAgICAke3RoaXMubW92ZUluUHJvZ3Jlc3M/Ik1vdmluZy4uLiI6Ik1vdmUifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2d8fCF0aGlzLm1vdmVQaWNrZXJTb3VyY2UpcmV0dXJuIiI7bGV0IHplPUZhKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLHhlPWwyKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyBtb3ZlLXBpY2tlci1kaWFsb2ciIEBjbGljaz0ke05lPT5OZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPk1vdmUgIiR7emV9IiB0by4uLjwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1icmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCIiKX0+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHt5Zyh0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4KS5tYXAoTmU9PndgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKE5lKX0+CiAgICAgICAgICAgICAgICAke0ZhKE5lKX0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWxpc3QiPgogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlckxvYWRpbmc/d2A8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPkxvYWRpbmcuLi48L2Rpdj5gOiIifQogICAgICAgICAgICAkeyF0aGlzLm1vdmVQaWNrZXJMb2FkaW5nJiZ0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoTmU9Pk5lIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1lbXB0eSI+Tm8gc3ViZm9sZGVyczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlclByZWZpeGVzLmZpbHRlcihOZT0+TmUhPT10aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KS5tYXAoTmU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItaXRlbSIKICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKE5lKX0KICAgICAgICAgICAgICAgICAgICAgQGRibGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKE5lKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke0ZhKE5lKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RNb3ZlRGVzdGluYXRpb24odGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD09PXhlfT4KICAgICAgICAgICAgICBNb3ZlIEhlcmUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJrZXlzLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWJhciI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9ImZpbHRlci1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkZpbHRlciBmaWxlcy4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5maWx0ZXJUZXh0fQogICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUZpbHRlcklucHV0fQogICAgICAgICAgLz4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ia2V5cy1saXN0IiBAY29udGV4dG1lbnU9JHt6ZT0+dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoemUpfT4KICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPkxvYWRpbmcuLi48L2Rpdj5gOnRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIG9iamVjdHMgZm91bmQ8L2Rpdj5gOndgCiAgICAgICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDogMTAwcHg7Ij5TaXplPC90aD4KICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyZWRJdGVtcy5tYXAoemU9PndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGVkS2V5PT09emUua2V5PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0S2V5KHplLmtleSx6ZS5pc0ZvbGRlcil9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHt4ZT0+dGhpcy5oYW5kbGVJdGVtQ29udGV4dE1lbnUoeGUsemUua2V5LHplLmlzRm9sZGVyKX0KICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtleS1jZWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3plLmlzRm9sZGVyP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ia2V5LWljb24gZm9sZGVyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImtleS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2V5LW5hbWUiPiR7RmEoemUua2V5KX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ic2l6ZS1jZWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt6ZS5pc0ZvbGRlcj8iLSI6UXYoemUuc2l6ZSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckNyZWF0ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZVBpY2tlckRpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyUmVuYW1lRGlhbG9nKCl9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxxdCh0aGlzLHRpKX1zdGF0aWN7cXQoYSx0KX19O3JldHVybiBhaT1hfSkoKX0pO3ZhciAkbCxacyxBbWEsaml0PWcoKCk9PntwZSgpO3B0KCk7S1goKTskbD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sWnM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEFtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3RvcmFnZS1wcmV2aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdO3ZhciBpZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHRlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W1koKV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0sJGwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJkYXRhUHJvdmlkZXIiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5kYXRhUHJvdmlkZXI9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LG8sbCksJGwodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYnVja2V0TmFtZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5idWNrZXROYW1lPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxkLHUpLCRsKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib2JqZWN0S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ib2JqZWN0S2V5ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUub2JqZWN0S2V5LCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub2JqZWN0S2V5PWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxiLHYpLCRsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImxvYWRpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUubG9hZGluZz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sbSxmKSwkbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNhdmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InNhdmluZyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNhdmluZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnNhdmluZz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sTSx6KSwkbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJjb250ZW50ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuY29udGVudCwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmNvbnRlbnQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEMsXyksJGwodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbFRleHRDb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ib3JpZ2luYWxUZXh0Q29udGVudCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm9yaWdpbmFsVGV4dENvbnRlbnQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5vcmlnaW5hbFRleHRDb250ZW50PWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSwkLEUpLCRsKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Imhhc0NoYW5nZXMiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5oYXNDaGFuZ2VzLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaGFzQ2hhbmdlcz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sayxTKSwkbCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlZGl0aW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZWRpdGluZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmVkaXRpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LFAsUiksJGwodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImNvbnRlbnRUeXBlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuY29udGVudFR5cGUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5jb250ZW50VHlwZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sVixXKSwkbCh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImZpbGVTaXplImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZmlsZVNpemUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5maWxlU2l6ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sQixVKSwkbCh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXN0TW9kaWZpZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJsYXN0TW9kaWZpZWQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5sYXN0TW9kaWZpZWQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5sYXN0TW9kaWZpZWQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEYsaiksJGwodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlcnJvciJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVycm9yLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuZXJyb3I9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGxlLFEpLCRsKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnRlfSxudWxsLHQpLGllPWE9ZS52YWx1ZSx0ZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0ZX0pfSNlPVpzKHRoaXMsbyxudWxsKTtnZXQgZGF0YVByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGFQcm92aWRlcih0ZSl7dGhpcy4jZT10ZX0jdD0oWnModGhpcyxsKSxacyh0aGlzLGQsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKHRlKXt0aGlzLiN0PXRlfSNhPShacyh0aGlzLHUpLFpzKHRoaXMsYiwiIikpO2dldCBvYmplY3RLZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb2JqZWN0S2V5KHRlKXt0aGlzLiNhPXRlfSNzPShacyh0aGlzLHYpLFpzKHRoaXMsbSwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvYWRpbmcodGUpe3RoaXMuI3M9dGV9I2k9KFpzKHRoaXMsZiksWnModGhpcyxNLCExKSk7Z2V0IHNhdmluZygpe3JldHVybiB0aGlzLiNpfXNldCBzYXZpbmcodGUpe3RoaXMuI2k9dGV9I3I9KFpzKHRoaXMseiksWnModGhpcyxDLCIiKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGVudCh0ZSl7dGhpcy4jcj10ZX0jbz0oWnModGhpcyxfKSxacyh0aGlzLCQsIiIpKTtnZXQgb3JpZ2luYWxUZXh0Q29udGVudCgpe3JldHVybiB0aGlzLiNvfXNldCBvcmlnaW5hbFRleHRDb250ZW50KHRlKXt0aGlzLiNvPXRlfSNuPShacyh0aGlzLEUpLFpzKHRoaXMsaywhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI259c2V0IGhhc0NoYW5nZXModGUpe3RoaXMuI249dGV9I2w9KFpzKHRoaXMsUyksWnModGhpcyxQLCExKSk7Z2V0IGVkaXRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZWRpdGluZyh0ZSl7dGhpcy4jbD10ZX0jYz0oWnModGhpcyxSKSxacyh0aGlzLFYsIiIpKTtnZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy4jY31zZXQgY29udGVudFR5cGUodGUpe3RoaXMuI2M9dGV9I2Q9KFpzKHRoaXMsVyksWnModGhpcyxCLDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZmlsZVNpemUodGUpe3RoaXMuI2Q9dGV9I3U9KFpzKHRoaXMsVSksWnModGhpcyxGLCIiKSk7Z2V0IGxhc3RNb2RpZmllZCgpe3JldHVybiB0aGlzLiN1fXNldCBsYXN0TW9kaWZpZWQodGUpe3RoaXMuI3U9dGV9I3A9KFpzKHRoaXMsaiksWnModGhpcyxsZSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNwfXNldCBlcnJvcih0ZSl7dGhpcy4jcD10ZX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSGUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJldmlldy1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLm1ldGEtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQgZGVlcy1wcmV2aWV3IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQuY29kZS1lZGl0b3IgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGVudC5jb2RlLWVkaXRvciBkZWVzLWlucHV0LWNvZGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctYWN0aW9ucyB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQwNDA0MCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgIGJvcmRlci1jb2xvcjogI2VmNDQ0NDsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICBib3JkZXItY29sb3I6ICMzYjgyZjY7CiAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5OmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAudW5zYXZlZC1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MSwgMTkxLCAzNiwgMC4xKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1MSwgMTkxLCAzNiwgMC4zKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAudW5zYXZlZC1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBzdmcgewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLmVycm9yLXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQogICAgYF07dXBkYXRlZCh0ZSl7KHRlLmhhcygib2JqZWN0S2V5Iil8fHRlLmhhcygiYnVja2V0TmFtZSIpKSYmKHRoaXMub2JqZWN0S2V5P3RoaXMubG9hZE9iamVjdCgpOih0aGlzLmNvbnRlbnQ9IiIsdGhpcy5jb250ZW50VHlwZT0iIix0aGlzLmVycm9yPSIiLHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD0iIix0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExKSl9YXN5bmMgbG9hZE9iamVjdCgpe2lmKCEoIXRoaXMub2JqZWN0S2V5fHwhdGhpcy5idWNrZXROYW1lfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0iIix0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExO3RyeXtsZXQgdGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZ2V0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSk7aWYoIXRlKXt0aGlzLmVycm9yPSJPYmplY3Qgbm90IGZvdW5kIix0aGlzLmxvYWRpbmc9ITE7cmV0dXJufXRoaXMuY29udGVudD10ZS5jb250ZW50fHwiIix0aGlzLmNvbnRlbnRUeXBlPXRlLmNvbnRlbnRUeXBlfHwiIix0aGlzLmZpbGVTaXplPXRlLnNpemV8fDAsdGhpcy5sYXN0TW9kaWZpZWQ9dGUubGFzdE1vZGlmaWVkfHwiIix0aGlzLmlzVGV4dCgpJiYodGhpcy5vcmlnaW5hbFRleHRDb250ZW50PXRoaXMuZ2V0VGV4dENvbnRlbnQoKSl9Y2F0Y2godGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgb2JqZWN0OiIsdGUpLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIG9iamVjdCJ9dGhpcy5sb2FkaW5nPSExfX1mb3JtYXREYXRlKHRlKXtyZXR1cm4gdGU/bmV3IERhdGUodGUpLnRvTG9jYWxlU3RyaW5nKCk6Ii0ifWlzSW1hZ2UoKXtyZXR1cm4gdGhpcy5jb250ZW50VHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKX1pc1RleHQoKXtyZXR1cm4gdGhpcy5jb250ZW50VHlwZS5zdGFydHNXaXRoKCJ0ZXh0LyIpfHx0aGlzLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL2pzb24ifHx0aGlzLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3htbCJ8fHRoaXMuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCJ9Z2V0VGV4dENvbnRlbnQoKXt0cnl7bGV0IHRlPWF0b2IodGhpcy5jb250ZW50KSxlZT1uZXcgVWludDhBcnJheSh0ZS5sZW5ndGgpO2ZvcihsZXQga2U9MDtrZTx0ZS5sZW5ndGg7a2UrKyllZVtrZV09dGUuY2hhckNvZGVBdChrZSk7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigidXRmLTgiKS5kZWNvZGUoZWUpfWNhdGNoe3JldHVybiJVbmFibGUgdG8gZGVjb2RlIGNvbnRlbnQifX1hc3luYyBoYW5kbGVEb3dubG9hZCgpe3RyeXtsZXQgdGU9bmV3IEJsb2IoW1VpbnQ4QXJyYXkuZnJvbShhdG9iKHRoaXMuY29udGVudCksWD0+WC5jaGFyQ29kZUF0KDApKV0se3R5cGU6dGhpcy5jb250ZW50VHlwZX0pLGVlPVVSTC5jcmVhdGVPYmplY3RVUkwodGUpLGtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtrZS5ocmVmPWVlLGtlLmRvd25sb2FkPUZhKHRoaXMub2JqZWN0S2V5KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGtlKSxrZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoa2UpLFVSTC5yZXZva2VPYmplY3RVUkwoZWUpfWNhdGNoKHRlKXtjb25zb2xlLmVycm9yKCJFcnJvciBkb3dubG9hZGluZzoiLHRlKX19YXN5bmMgaGFuZGxlRGVsZXRlKCl7aWYodGhpcy5kYXRhUHJvdmlkZXImJmNvbmZpcm0oYERlbGV0ZSAiJHtGYSh0aGlzLm9iamVjdEtleSl9Ij9gKSl0cnl7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JqZWN0LWRlbGV0ZWQiLHtkZXRhaWw6e2tleTp0aGlzLm9iamVjdEtleX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaCh0ZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVsZXRpbmcgb2JqZWN0OiIsdGUpfX1nZXRMYW5ndWFnZSgpe2xldCB0ZT10aGlzLm9iamVjdEtleS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm57dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsbWpzOiJqYXZhc2NyaXB0IixjanM6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6Imh0bWwiLGh0bToiaHRtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLHNhc3M6InNjc3MiLGxlc3M6Imxlc3MiLG1kOiJtYXJrZG93biIsbWFya2Rvd246Im1hcmtkb3duIix4bWw6InhtbCIseWFtbDoieWFtbCIseW1sOiJ5YW1sIixweToicHl0aG9uIixyYjoicnVieSIsZ286ImdvIixyczoicnVzdCIsamF2YToiamF2YSIsYzoiYyIsY3BwOiJjcHAiLGg6ImMiLGhwcDoiY3BwIixjczoiY3NoYXJwIixwaHA6InBocCIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCIsenNoOiJzaGVsbCIsc3FsOiJzcWwiLGdyYXBocWw6ImdyYXBocWwiLGdxbDoiZ3JhcGhxbCIsZG9ja2VyZmlsZToiZG9ja2VyZmlsZSIsdHh0OiJwbGFpbnRleHQifVt0ZV18fCJwbGFpbnRleHQifWhhbmRsZUNvbnRlbnRDaGFuZ2UodGUpe2xldCBlZT10ZS5kZXRhaWw7dGhpcy5oYXNDaGFuZ2VzPWVlIT09dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fWhhbmRsZUVkaXQoKXt0aGlzLmVkaXRpbmc9ITB9aGFuZGxlRGlzY2FyZCgpe2xldCB0ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtY29kZSIpO3RlJiYodGUudmFsdWU9dGhpcy5vcmlnaW5hbFRleHRDb250ZW50KSx0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExfWFzeW5jIGhhbmRsZVNhdmUoKXtpZighKCF0aGlzLmhhc0NoYW5nZXN8fHRoaXMuc2F2aW5nfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLnNhdmluZz0hMDt0cnl7bGV0IGVlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1jb2RlIik/LnZhbHVlPz8iIixYPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlZSksWj1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4uWCkpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXksWix0aGlzLmNvbnRlbnRUeXBlKSYmKHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD1lZSx0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExLHRoaXMuY29udGVudD1aKX1jYXRjaCh0ZSl7Y29uc29sZS5lcnJvcigiRXJyb3Igc2F2aW5nIG9iamVjdDoiLHRlKX10aGlzLnNhdmluZz0hMX19cmVuZGVyKCl7cmV0dXJuIHRoaXMub2JqZWN0S2V5P3RoaXMubG9hZGluZz93YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3RhdGUiPkxvYWRpbmcuLi48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp0aGlzLmVycm9yP3dgCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itc3RhdGUiPiR7dGhpcy5lcnJvcn08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy10aXRsZSI+JHtGYSh0aGlzLm9iamVjdEtleSl9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LW1ldGEiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS1pdGVtIj4ke3RoaXMuY29udGVudFR5cGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS1pdGVtIj4ke1F2KHRoaXMuZmlsZVNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtaXRlbSI+JHt0aGlzLmZvcm1hdERhdGUodGhpcy5sYXN0TW9kaWZpZWQpfTwvc3Bhbj4KICAgICAgICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idW5zYXZlZC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVuc2F2ZWQtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgICBVbnNhdmVkIGNoYW5nZXMKICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250ZW50ICR7dGhpcy5lZGl0aW5nPyJjb2RlLWVkaXRvciI6IiJ9Ij4KICAgICAgICAgICR7dGhpcy5lZGl0aW5nP3dgCiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jb2RlCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMub3JpZ2luYWxUZXh0Q29udGVudH0KICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5nZXRMYW5ndWFnZSgpfQogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RlPT50aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2UodGUpfQogICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogICAgICAgICAgICAgIGA6dGhpcy5pc1RleHQoKT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLnRleHRDb250ZW50PSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5maWxlbmFtZT0ke0ZhKHRoaXMub2JqZWN0S2V5KX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7ITB9CiAgICAgICAgICAgICAgICAgICAgLnNob3dGaWxlbmFtZT0keyExfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuYmFzZTY0PSR7dGhpcy5jb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5taW1lVHlwZT0ke3RoaXMuY29udGVudFR5cGV9CiAgICAgICAgICAgICAgICAgICAgLmZpbGVuYW1lPSR7RmEodGhpcy5vYmplY3RLZXkpfQogICAgICAgICAgICAgICAgICAgIC5zaG93VG9vbGJhcj0keyEwfQogICAgICAgICAgICAgICAgICAgIC5zaG93RmlsZW5hbWU9JHshMX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5lZGl0aW5nP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIHNlY29uZGFyeSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEaXNjYXJkfT4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/IkRpc2NhcmQiOiJDYW5jZWwifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24tYnRuIHByaW1hcnkiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2F2ZX0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5zYXZpbmd8fCF0aGlzLmhhc0NoYW5nZXN9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zYXZpbmc/IlNhdmluZy4uLiI6IlNhdmUifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgJHt0aGlzLmlzVGV4dCgpP3dgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biIgQGNsaWNrPSR7dGhpcy5oYW5kbGVFZGl0fT5FZGl0PC9idXR0b24+YDoiIn0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idG4iIEBjbGljaz0ke3RoaXMuaGFuZGxlRG93bmxvYWR9PkRvd25sb2FkPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIGRhbmdlciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEZWxldGV9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8cD5TZWxlY3QgYSBmaWxlIHRvIHByZXZpZXc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWnModGhpcyxRKX1zdGF0aWN7WnMoYSx0KX19O3JldHVybiBpZT1hfSkoKX0pO3ZhciBLYywkaSxObWEsQml0PWcoKCk9PntwZSgpO3B0KCk7TG1hKCk7SGl0KCk7cWl0KCk7aml0KCk7S2M9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LCRpPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxObWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2UtYnJvd3NlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXTt2YXIgaGU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlQnJvd3NlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBGPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6T2JqZWN0fSldLHg9W1koKV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0sS2ModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImRhdGFQcm92aWRlciJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmRhdGFQcm92aWRlciwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5kYXRhUHJvdmlkZXI9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sbyxsKSxLYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1Y2tldE5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImJ1Y2tldE5hbWUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmJ1Y2tldE5hbWU9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sZCx1KSxLYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9uQ2hhbmdlRXZlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Im9uQ2hhbmdlRXZlbnQiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5vbkNoYW5nZUV2ZW50LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLm9uQ2hhbmdlRXZlbnQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sYix2KSxLYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ2aWV3VHlwZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnZpZXdUeXBlLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnZpZXdUeXBlPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG0sZiksS2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJjdXJyZW50UHJlZml4ImluIGosImhhcyIpLGdldDppKGo9PmouY3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5jdXJyZW50UHJlZml4PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksS2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VsZWN0ZWRLZXkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZWxlY3RlZEtleSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5zZWxlY3RlZEtleT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxDLF8pLEtjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmcmVzaEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icmVmcmVzaEtleSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnJlZnJlc2hLZXksImdldCIpLHNldDppKChqLHVlKT0+e2oucmVmcmVzaEtleT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSwkLEUpLEtjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJldmlld1dpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJwcmV2aWV3V2lkdGgiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5wcmV2aWV3V2lkdGgsImdldCIpLHNldDppKChqLHVlKT0+e2oucHJldmlld1dpZHRoPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGssUyksS2ModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Jlc2l6aW5nUHJldmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNSZXNpemluZ1ByZXZpZXciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pc1Jlc2l6aW5nUHJldmlldywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5pc1Jlc2l6aW5nUHJldmlldz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxQLFIpLEtjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVjZW50Q2hhbmdlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InJlY2VudENoYW5nZUNvdW50ImluIGosImhhcyIpLGdldDppKGo9PmoucmVjZW50Q2hhbmdlQ291bnQsImdldCIpLHNldDppKChqLHVlKT0+e2oucmVjZW50Q2hhbmdlQ291bnQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sVixXKSxLYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1N0cmVhbUNvbm5lY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNTdHJlYW1Db25uZWN0ZWQiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pc1N0cmVhbUNvbm5lY3RlZCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5pc1N0cmVhbUNvbm5lY3RlZD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLEtjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPURtYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPSRpKHRoaXMsbyxudWxsKTtnZXQgZGF0YVByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGFQcm92aWRlcihGKXt0aGlzLiNlPUZ9I3Q9KCRpKHRoaXMsbCksJGkodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZShGKXt0aGlzLiN0PUZ9I2E9KCRpKHRoaXMsdSksJGkodGhpcyxiLG51bGwpKTtnZXQgb25DaGFuZ2VFdmVudCgpe3JldHVybiB0aGlzLiNhfXNldCBvbkNoYW5nZUV2ZW50KEYpe3RoaXMuI2E9Rn0jcz0oJGkodGhpcyx2KSwkaSh0aGlzLG0sImNvbHVtbnMiKSk7Z2V0IHZpZXdUeXBlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZpZXdUeXBlKEYpe3RoaXMuI3M9Rn0jaT0oJGkodGhpcyxmKSwkaSh0aGlzLE0sIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNpfXNldCBjdXJyZW50UHJlZml4KEYpe3RoaXMuI2k9Rn0jcj0oJGkodGhpcyx6KSwkaSh0aGlzLEMsIiIpKTtnZXQgc2VsZWN0ZWRLZXkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRLZXkoRil7dGhpcy4jcj1GfSNvPSgkaSh0aGlzLF8pLCRpKHRoaXMsJCwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jb31zZXQgcmVmcmVzaEtleShGKXt0aGlzLiNvPUZ9I249KCRpKHRoaXMsRSksJGkodGhpcyxrLDcwMCkpO2dldCBwcmV2aWV3V2lkdGgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcHJldmlld1dpZHRoKEYpe3RoaXMuI249Rn0jbD0oJGkodGhpcyxTKSwkaSh0aGlzLFAsITEpKTtnZXQgaXNSZXNpemluZ1ByZXZpZXcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgaXNSZXNpemluZ1ByZXZpZXcoRil7dGhpcy4jbD1GfSNjPSgkaSh0aGlzLFIpLCRpKHRoaXMsViwwKSk7Z2V0IHJlY2VudENoYW5nZUNvdW50KCl7cmV0dXJuIHRoaXMuI2N9c2V0IHJlY2VudENoYW5nZUNvdW50KEYpe3RoaXMuI2M9Rn0jZD0oJGkodGhpcyxXKSwkaSh0aGlzLEIsITEpKTtnZXQgaXNTdHJlYW1Db25uZWN0ZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNTdHJlYW1Db25uZWN0ZWQoRil7dGhpcy4jZD1GfWNoYW5nZVVuc3Vic2NyaWJlPSgkaSh0aGlzLFUpLG51bGwpO3N0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxIZSxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuYnJvd3Nlci1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzk5OSIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnZpZXctdG9nZ2xlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudmlldy1idG4gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLnZpZXctYnRuOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjYWFhIil9OwogICAgICB9CgogICAgICAudmlldy1idG4uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzQwNDA0MCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY29udGVudC5oYXMtcHJldmlldyB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNHB4IHZhcigtLXByZXZpZXctd2lkdGgsIDcwMHB4KTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtZGl2aWRlcjpob3ZlciwKICAgICAgLnJlc2l6ZS1kaXZpZGVyLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLm1haW4tdmlldyB7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAucHJldmlldy1wYW5lbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuY29udGVudCwKICAgICAgICAuY29udGVudC5oYXMtcHJldmlldyB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CgogICAgICAgIC5wcmV2aWV3LXBhbmVsLAogICAgICAgIC5yZXNpemUtZGl2aWRlciB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnN0cmVhbS1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdHJlYW0tZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5zdHJlYW0tZG90LmNvbm5lY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogIzIyYzU1ZTsKICAgICAgfQoKICAgICAgLmNoYW5nZS1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAuY2hhbmdlLWluZGljYXRvci5wdWxzZSB7CiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1vcmFuZ2UgMXMgZWFzZS1pbi1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2Utb3JhbmdlIHsKICAgICAgICAwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjQpOyB9CiAgICAgICAgMTAwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpOyB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnN1YnNjcmliZVRvQ2hhbmdlcygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKX1yZWZyZXNoKCl7dGhpcy5yZWZyZXNoS2V5Kyt9c2V0Vmlld1R5cGUoRil7dGhpcy52aWV3VHlwZT1GfW5hdmlnYXRlVG9QcmVmaXgoRil7dGhpcy5jdXJyZW50UHJlZml4PUYsdGhpcy5zZWxlY3RlZEtleT0iIn1oYW5kbGVLZXlTZWxlY3RlZChGKXt0aGlzLnNlbGVjdGVkS2V5PUYuZGV0YWlsLmtleX1oYW5kbGVOYXZpZ2F0ZShGKXt0aGlzLm5hdmlnYXRlVG9QcmVmaXgoRi5kZXRhaWwucHJlZml4KX1oYW5kbGVPYmplY3REZWxldGVkKEYpe3RoaXMuc2VsZWN0ZWRLZXk9IiIsdGhpcy5yZWZyZXNoS2V5Kyt9dXBkYXRlZChGKXtGLmhhcygiYnVja2V0TmFtZSIpJiYodGhpcy5zZWxlY3RlZEtleT0iIix0aGlzLmN1cnJlbnRQcmVmaXg9IiIsdGhpcy5yZWNlbnRDaGFuZ2VDb3VudD0wLHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCkpLEYuaGFzKCJvbkNoYW5nZUV2ZW50IikmJih0aGlzLnVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKSx0aGlzLnN1YnNjcmliZVRvQ2hhbmdlcygpKX1zdWJzY3JpYmVUb0NoYW5nZXMoKXtpZighdGhpcy5vbkNoYW5nZUV2ZW50KXt0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSExO3JldHVybn10cnl7dGhpcy5jaGFuZ2VVbnN1YnNjcmliZT10aGlzLm9uQ2hhbmdlRXZlbnQoRj0+e3RoaXMuaGFuZGxlQ2hhbmdlKEYpfSksdGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMH1jYXRjaChGKXtjb25zb2xlLndhcm4oIltTdG9yYWdlQnJvd3Nlcl0gRmFpbGVkIHRvIHN1YnNjcmliZSB0byBjaGFuZ2VzOiIsRiksdGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMX19dW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpe3RoaXMuY2hhbmdlVW5zdWJzY3JpYmUmJih0aGlzLmNoYW5nZVVuc3Vic2NyaWJlKCksdGhpcy5jaGFuZ2VVbnN1YnNjcmliZT1udWxsKSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSExfWhhbmRsZUNoYW5nZShGKXt0aGlzLnJlY2VudENoYW5nZUNvdW50KyssdGhpcy5yZWZyZXNoS2V5Kyt9c3RhcnRQcmV2aWV3UmVzaXplPWkoRj0+e0YucHJldmVudERlZmF1bHQoKSx0aGlzLmlzUmVzaXppbmdQcmV2aWV3PSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVQcmV2aWV3UmVzaXplKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmVuZFByZXZpZXdSZXNpemUpfSwic3RhcnRQcmV2aWV3UmVzaXplIik7aGFuZGxlUHJldmlld1Jlc2l6ZT1pKEY9PntpZighdGhpcy5pc1Jlc2l6aW5nUHJldmlldylyZXR1cm47bGV0IGo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuY29udGVudCIpO2lmKCFqKXJldHVybjtsZXQgdWU9ai5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxsZT1NYXRoLm1pbihNYXRoLm1heCh1ZS5yaWdodC1GLmNsaWVudFgsMjUwKSwxZTMpO3RoaXMucHJldmlld1dpZHRoPWxlfSwiaGFuZGxlUHJldmlld1Jlc2l6ZSIpO2VuZFByZXZpZXdSZXNpemU9aSgoKT0+e3RoaXMuaXNSZXNpemluZ1ByZXZpZXc9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVByZXZpZXdSZXNpemUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuZW5kUHJldmlld1Jlc2l6ZSl9LCJlbmRQcmV2aWV3UmVzaXplIik7cmVuZGVyKCl7bGV0IEY9dGhpcy5jdXJyZW50UHJlZml4P3RoaXMuY3VycmVudFByZWZpeC5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKTpbXTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYnJvd3Nlci1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUHJlZml4KCIiKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7Ri5tYXAoKGosdWUpPT57bGV0IGxlPUYuc2xpY2UoMCx1ZSsxKS5qb2luKCIvIikrIi8iO3JldHVybiB3YAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVUb1ByZWZpeChsZSl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7an0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMub25DaGFuZ2VFdmVudD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdHJlYW0tc3RhdHVzIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RyZWFtLWRvdCAke3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ/ImNvbm5lY3RlZCI6IiJ9Ij48L3NwYW4+CiAgICAgICAgICAgICAgJHt0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPyJMaXZlIjoiT2ZmbGluZSJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgICR7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFuZ2UtaW5kaWNhdG9yIHB1bHNlIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlY2VudENoYW5nZUNvdW50fSBjaGFuZ2Uke3RoaXMucmVjZW50Q2hhbmdlQ291bnQ+MT8icyI6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy10b2dnbGUiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InZpZXctYnRuICR7dGhpcy52aWV3VHlwZT09PSJjb2x1bW5zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2V0Vmlld1R5cGUoImNvbHVtbnMiKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIENvbHVtbnMKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idmlldy1idG4gJHt0aGlzLnZpZXdUeXBlPT09ImtleXMiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZXRWaWV3VHlwZSgia2V5cyIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgTGlzdAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50ICR7dGhpcy5zZWxlY3RlZEtleT8iaGFzLXByZXZpZXciOiIifSIgc3R5bGU9Ii0tcHJldmlldy13aWR0aDogJHt0aGlzLnByZXZpZXdXaWR0aH1weCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLXZpZXciPgogICAgICAgICAgICAke3RoaXMudmlld1R5cGU9PT0iY29sdW1ucyI/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtc3RvcmFnZS1jb2x1bW5zCiAgICAgICAgICAgICAgICAgICAgLmRhdGFQcm92aWRlcj0ke3RoaXMuZGF0YVByb3ZpZGVyfQogICAgICAgICAgICAgICAgICAgIC5idWNrZXROYW1lPSR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICAgICAgICAgIC5jdXJyZW50UHJlZml4PSR7dGhpcy5jdXJyZW50UHJlZml4fQogICAgICAgICAgICAgICAgICAgIC5yZWZyZXNoS2V5PSR7dGhpcy5yZWZyZXNoS2V5fQogICAgICAgICAgICAgICAgICAgIEBrZXktc2VsZWN0ZWQ9JHt0aGlzLmhhbmRsZUtleVNlbGVjdGVkfQogICAgICAgICAgICAgICAgICAgIEBuYXZpZ2F0ZT0ke3RoaXMuaGFuZGxlTmF2aWdhdGV9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtc3RvcmFnZS1jb2x1bW5zPgogICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLWtleXMKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLmN1cnJlbnRQcmVmaXg9JHt0aGlzLmN1cnJlbnRQcmVmaXh9CiAgICAgICAgICAgICAgICAgICAgLnJlZnJlc2hLZXk9JHt0aGlzLnJlZnJlc2hLZXl9CiAgICAgICAgICAgICAgICAgICAgQGtleS1zZWxlY3RlZD0ke3RoaXMuaGFuZGxlS2V5U2VsZWN0ZWR9CiAgICAgICAgICAgICAgICAgICAgQG5hdmlnYXRlPSR7dGhpcy5oYW5kbGVOYXZpZ2F0ZX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1zdG9yYWdlLWtleXM+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnNlbGVjdGVkS2V5P3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtZGl2aWRlciAke3RoaXMuaXNSZXNpemluZ1ByZXZpZXc/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5zdGFydFByZXZpZXdSZXNpemV9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXBhbmVsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtc3RvcmFnZS1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLmRhdGFQcm92aWRlcj0ke3RoaXMuZGF0YVByb3ZpZGVyfQogICAgICAgICAgICAgICAgICAgIC5idWNrZXROYW1lPSR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICAgICAgICAgIC5vYmplY3RLZXk9JHt0aGlzLnNlbGVjdGVkS2V5fQogICAgICAgICAgICAgICAgICAgIEBvYmplY3QtZGVsZXRlZD0ke3RoaXMuaGFuZGxlT2JqZWN0RGVsZXRlZH0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1zdG9yYWdlLXByZXZpZXc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljeyRpKGEsdCl9fTtyZXR1cm4gaGU9YX0pKCl9KTt2YXIgUm1hPWcoKCk9Pnt9KTt2YXIgT21hPWcoKCk9PntCaXQoKTtIaXQoKTtxaXQoKTtqaXQoKTtSbWEoKTtLWCgpfSk7dmFyIEZtYT1nKCgpPT57a21hKCk7VG1hKCk7a2l0KCk7JG1hKCk7T21hKCl9KTt2YXIgWVgseHUsQm1hLGUxZT1nKCgpPT57cGUoKTtwdCgpO1VhKCk7WVg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHh1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxCbWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFjdGlvbmJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQWN0aW9uYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bWSgpXSxZWCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImN1cnJlbnRCYXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jdXJyZW50QmFyLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY3VycmVudEJhcj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksWVgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lUmVtYWluaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aW1lUmVtYWluaW5nImluIHosImhhcyIpLGdldDppKHo9PnoudGltZVJlbWFpbmluZywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnRpbWVSZW1haW5pbmc9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLFlYKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwcm9ncmVzc1BlcmNlbnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wcm9ncmVzc1BlcmNlbnQsImdldCIpLHNldDppKCh6LE4pPT57ei5wcm9ncmVzc1BlcmNlbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLFlYKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc1Zpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1Zpc2libGUsImdldCIpLHNldDppKCh6LE4pPT57ei5pc1Zpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLFlYKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgZGVtbz1pKCgpPT57bGV0IE09aShfPT5fLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmRlbW8tY29udGFpbmVyIik/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYWN0aW9uYmFyIiksImdldEFjdGlvbmJhciIpO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAzMDBweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAuZGVtby1jb250ZW50IHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250ZW50Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtpKGFzeW5jIF89PntsZXQgTz1NKF8pO2lmKCFPKXJldHVybjtsZXQgJD1hd2FpdCBPLnNob3coe21lc3NhZ2U6IkZpbGUgY2hhbmdlZCBleHRlcm5hbGx5LiBSZWxvYWQ/Iix0eXBlOiJ3YXJuaW5nIixpY29uOiJsdWNpZGU6YWxlcnRUcmlhbmdsZSIsYWN0aW9uczpbe2lkOiJyZWxvYWQiLGxhYmVsOiJSZWxvYWQiLHByaW1hcnk6ITB9LHtpZDoiaWdub3JlIixsYWJlbDoiSWdub3JlIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjVlMyxkZWZhdWx0QWN0aW9uSWQ6InJlbG9hZCJ9LGRpc21pc3NpYmxlOiEwfSk7Y29uc29sZS5sb2coIkFjdGlvbiBiYXIgcmVzdWx0OiIsJCl9LCJzaG93QWN0aW9uQmFyIil9Pldhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2koYXN5bmMgXz0+e2xldCBPPU0oXyk7aWYoIU8pcmV0dXJuO2xldCAkPWF3YWl0IE8uc2hvdyh7bWVzc2FnZToiUHJvY2VzcyBmYWlsZWQgd2l0aCBleGl0IGNvZGUgMSIsdHlwZToiZXJyb3IiLGljb246Imx1Y2lkZTp4Q2lyY2xlIixhY3Rpb25zOlt7aWQ6InJldHJ5IixsYWJlbDoiUmV0cnkiLHByaW1hcnk6ITB9LHtpZDoiZGlzbWlzcyIsbGFiZWw6IkRpc21pc3MifV0sdGltZW91dDp7ZHVyYXRpb246MWU0LGRlZmF1bHRBY3Rpb25JZDoiZGlzbWlzcyJ9fSk7Y29uc29sZS5sb2coIkVycm9yIGJhciByZXN1bHQ6IiwkKX0sInNob3dFcnJvckJhciIpfT5FcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7aShhc3luYyBfPT57bGV0IE89TShfKTtpZighTylyZXR1cm47bGV0ICQ9YXdhaXQgTy5zaG93KHttZXNzYWdlOiJTYXZlIGNoYW5nZXMgYmVmb3JlIGNsb3Npbmc/Iix0eXBlOiJxdWVzdGlvbiIsaWNvbjoibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbnM6W3tpZDoic2F2ZSIsbGFiZWw6IlNhdmUiLHByaW1hcnk6ITB9LHtpZDoiZGlzY2FyZCIsbGFiZWw6IkRpc2NhcmQifSx7aWQ6ImNhbmNlbCIsbGFiZWw6IkNhbmNlbCJ9XX0pO2NvbnNvbGUubG9nKCJRdWVzdGlvbiBiYXIgcmVzdWx0OiIsJCl9LCJzaG93UXVlc3Rpb25CYXIiKX0+UXVlc3Rpb248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICA8L2Rpdj4KICAgIGB9LCJkZW1vIik7cXVldWU9W107I2U9eHUodGhpcyxvLG51bGwpO2dldCBjdXJyZW50QmFyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRCYXIoTSl7dGhpcy4jZT1NfSN0PSh4dSh0aGlzLGwpLHh1KHRoaXMsZCwwKSk7Z2V0IHRpbWVSZW1haW5pbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGltZVJlbWFpbmluZyhNKXt0aGlzLiN0PU19I2E9KHh1KHRoaXMsdSkseHUodGhpcyxiLDEwMCkpO2dldCBwcm9ncmVzc1BlcmNlbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcHJvZ3Jlc3NQZXJjZW50KE0pe3RoaXMuI2E9TX0jcz0oeHUodGhpcyx2KSx4dSh0aGlzLG0sITEpKTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzVmlzaWJsZShNKXt0aGlzLiNzPU19dGltZW91dEludGVydmFsPSh4dSh0aGlzLGYpLG51bGwpO2N1cnJlbnRSZXNvbHZlPW51bGw7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjJzIGVhc2Utb3V0OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAubWVzc2FnZS1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uaW5mbyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ucXVlc3Rpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmFjdGlvbnMtc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAzMCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDU1JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQwJSkiLCJoc2woMzggOTIlIDQ1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNDUlKSIsImhzbCgyNzAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb3VudGRvd24gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIyJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IE09dGhpcy5jdXJyZW50QmFyLHo9TT8udHlwZXx8ImluZm8iLE49TT8udGltZW91dCYmdGhpcy50aW1lUmVtYWluaW5nPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1pdGVtIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItY29udGVudCI+CiAgICAgICAgICAke00/d2AKICAgICAgICAgICAgJHtOP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzLWJhci1maWxsICR7en0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnByb2dyZXNzUGVyY2VudH0lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHtNLmljb24/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtZXNzYWdlLWljb24gJHt6fSIKICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke00uaWNvbn0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTYiCiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVzc2FnZS10ZXh0Ij4ke00ubWVzc2FnZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7TS5hY3Rpb25zLm1hcChDPT50aGlzLnJlbmRlckFjdGlvbkJ1dHRvbihDLE0sTikpfQogICAgICAgICAgICAgICAgJHtNLmRpc21pc3NpYmxlP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzbWlzcy1idXR0b24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGlzbWlzcygpfQogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJEaXNtaXNzIgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uQnV0dG9uKE0seixOKXtsZXQgQz1NLnByaW1hcnksXz16LnR5cGV8fCJpbmZvIixPPXoudGltZW91dD8uZGVmYXVsdEFjdGlvbklkPT09TS5pZCwkPU4mJk8sRT1NYXRoLmNlaWwodGhpcy50aW1lUmVtYWluaW5nLzFlMyk7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke0M/YHByaW1hcnkgJHtffWA6InNlY29uZGFyeSJ9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihNLmlkLCExKX0KICAgICAgPgogICAgICAgICR7TS5pY29uP3dgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7TS5pY29ufSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4+JHtNLmxhYmVsfTwvc3Bhbj4KICAgICAgICAkeyQ/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudGRvd24iPigke0V9cyk8L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9idXR0b24+CiAgICBgfWFzeW5jIHNob3coTSl7cmV0dXJuIG5ldyBQcm9taXNlKHo9Pnt0aGlzLnF1ZXVlLnB1c2goe29wdGlvbnM6TSxyZXNvbHZlOnp9KSx0aGlzLmN1cnJlbnRCYXJ8fHRoaXMucHJvY2Vzc1F1ZXVlKCl9KX1kaXNtaXNzKCl7dGhpcy5oYW5kbGVEaXNtaXNzKCl9Y2xlYXJRdWV1ZSgpe2ZvcihsZXQgTSBvZiB0aGlzLnF1ZXVlKU0ucmVzb2x2ZSh7YWN0aW9uSWQ6ImRpc21pc3NlZCIsdGltZWRPdXQ6ITF9KTt0aGlzLnF1ZXVlPVtdfWFzeW5jIGhpZGVDdXJyZW50QmFyKCl7dGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIiksdGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2UoTT0+c2V0VGltZW91dChNLDIyMCkpLHRoaXMuY3VycmVudEJhcj1udWxsLHRoaXMuY3VycmVudFJlc29sdmU9bnVsbH1hc3luYyBwcm9jZXNzUXVldWUoKXtpZih0aGlzLnF1ZXVlLmxlbmd0aD09PTApe3RoaXMuaGlkZUN1cnJlbnRCYXIoKTtyZXR1cm59bGV0IE09dGhpcy5xdWV1ZS5zaGlmdCgpO3RoaXMuY3VycmVudEJhcj1NLm9wdGlvbnMsdGhpcy5jdXJyZW50UmVzb2x2ZT1NLnJlc29sdmUsdGhpcy5pc1Zpc2libGU9ITAsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pLE0ub3B0aW9ucy50aW1lb3V0JiZ0aGlzLnN0YXJ0VGltZW91dChNLm9wdGlvbnMudGltZW91dC5kdXJhdGlvbixNLm9wdGlvbnMudGltZW91dC5kZWZhdWx0QWN0aW9uSWQpfXN0YXJ0VGltZW91dChNLHope3RoaXMudGltZVJlbWFpbmluZz1NLHRoaXMucHJvZ3Jlc3NQZXJjZW50PTEwMDtsZXQgTj1EYXRlLm5vdygpLEM9NTA7dGhpcy50aW1lb3V0SW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgXz1EYXRlLm5vdygpLU47dGhpcy50aW1lUmVtYWluaW5nPU1hdGgubWF4KDAsTS1fKSx0aGlzLnByb2dyZXNzUGVyY2VudD10aGlzLnRpbWVSZW1haW5pbmcvTSoxMDAsdGhpcy50aW1lUmVtYWluaW5nPD0wJiYodGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuaGFuZGxlQWN0aW9uKHosITApKX0sQyl9Y2xlYXJUaW1lb3V0SW50ZXJ2YWwoKXt0aGlzLnRpbWVvdXRJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0SW50ZXJ2YWwpLHRoaXMudGltZW91dEludGVydmFsPW51bGwpfWhhbmRsZUFjdGlvbihNLHope3RoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmN1cnJlbnRSZXNvbHZlJiZ0aGlzLmN1cnJlbnRSZXNvbHZlKHthY3Rpb25JZDpNLHRpbWVkT3V0Onp9KSx0aGlzLnByb2Nlc3NRdWV1ZSgpfWhhbmRsZURpc21pc3MoKXt0aGlzLmhhbmRsZUFjdGlvbigiZGlzbWlzc2VkIiwhMSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKX1zdGF0aWN7eHUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIEhtYT1nKCgpPT57fSk7dmFyIHFtYT1nKCgpPT57ZTFlKCk7SG1hKCl9KTt2YXIgam1hLFZtYT1nKCgpPT57cGUoKTtqbWE9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsiPgogICAgPGRlZXMtYmFkZ2UgLnRleHQ9JHsiRGVmYXVsdCJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAudGV4dD0keyJQcmltYXJ5In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsic3VjY2VzcyJ9IC50ZXh0PSR7IlN1Y2Nlc3MifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJ3YXJuaW5nIn0gLnRleHQ9JHsiV2FybmluZyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7ImVycm9yIn0gLnRleHQ9JHsiRXJyb3IifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnJvdW5kZWQ9JHshMH0gLnRleHQ9JHsiUm91bmRlZCJ9PjwvZGVlcy1iYWRnZT4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB0MWUsd2csVW1hLFdtYT1nKCgpPT57cGUoKTtrdCgpO1ZtYSgpO3B0KCk7dDFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx3Zz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVW1hPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1iYWRnZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQmFkZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0sdDFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idHlwZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnR5cGUsImdldCIpLHNldDppKChmLHkpPT57Zi50eXBlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSx0MWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0ZXh0ImluIGYsImhhcyIpLGdldDppKGY9PmYudGV4dCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRleHQ9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLHQxZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdW5kZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJvdW5kZWQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5yb3VuZGVkLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yucm91bmRlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksdDFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89am1hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT13Zyh0aGlzLG8sImRlZmF1bHQiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKG0pe3RoaXMuI2U9bX0jdD0od2codGhpcyxsKSx3Zyh0aGlzLGQsIiIpKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KG0pe3RoaXMuI3Q9bX0jYT0od2codGhpcyx1KSx3Zyh0aGlzLGIsITEpKTtnZXQgcm91bmRlZCgpe3JldHVybiB0aGlzLiNhfXNldCByb3VuZGVkKG0pe3RoaXMuI2E9bX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksd2codGhpcyx2KSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYmFkZ2Uucm91bmRlZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzMzMyIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjY2NjIil9OwogICAgICB9CgogICAgICAuYmFkZ2UucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICMyZTdkMzI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZWQ2YzAyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJiYWRnZSAke3RoaXMudHlwZX0gJHt0aGlzLnJvdW5kZWQ/InJvdW5kZWQiOiIifSI+CiAgICAgICAgJHt0aGlzLnRleHR9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7d2coYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEdtYT1nKCgpPT57V21hKCl9KTt2YXIgS21hLFltYT1nKCgpPT57cGUoKTtLbWE9aSgoKT0+d2AKICA8ZGVlcy1oaW50PjwvZGVlcy1oaW50PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFptYSxWaXQsWG1hLFFtYT1nKCgpPT57cGUoKTtrdCgpO1ltYSgpO3B0KCk7Wm1hPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxWaXQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFhtYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtaGludCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSGludCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLFptYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InR5cGUiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS50eXBlLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UudHlwZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksWm1hKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89S21hO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1WaXQodGhpcyxvLCJpbmZvIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShkKXt0aGlzLiNlPWR9Y29uc3RydWN0b3IoKXtzdXBlcigpLFZpdCh0aGlzLGwpLHRhLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AgPGRpdiBjbGFzcz0ibWFpbmJveCI+PC9kaXY+IGB9c3RhdGlje1ZpdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgSm1hPWcoKCk9PntRbWEoKX0pO3ZhciBlNmEsdDZhPWcoKCk9PntwZSgpO0l0KCk7ZTZhPWkoKCk9PntsZXQgcz1bWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIl0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiLCJWZXJpZnlpbmcgY2hlY2tzdW0iXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6IiwiVmVyaWZ5aW5nIGNoZWNrc3VtIiwiRXh0cmFjdGluZyByZWxlYXNlIGJ1bmRsZSJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiLCJWZXJpZnlpbmcgY2hlY2tzdW0iLCJFeHRyYWN0aW5nIHJlbGVhc2UgYnVuZGxlIiwiUmVzdGFydGluZyBhcHBsaWNhdGlvbiJdXSxlPWkodD0+dD49MTAwPyJVcGxvYWQgY29tcGxldGUuIEZpbmFsaXppbmcgcGFja2FnZSBtYW5pZmVzdC4uLiI6dD49ODI/IlZlcmlmeWluZyBjaGVja3N1bXMgYmVmb3JlIGhhbmRvZmYuLi4iOnQ+PTU1PyJVcGxvYWRpbmcgdGh1bWJuYWlscyB0byBlZGdlIGNhY2hlLi4uIjp0Pj0yNT8iU3RyZWFtaW5nIHNvdXJjZSBmaWxlcyB0byB0aGUgcmVtb3RlIHdvcmtlci4uLiI6IlByZXBhcmluZyBhcmNoaXZlIGFuZCBkZXBlbmRlbmN5IGdyYXBoLi4uIiwiZ2V0VXBsb2FkU3RhdHVzIik7cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjbGl2ZS1wcm9ncmVzcyIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjdGVybWluYWwtcHJvZ3Jlc3MiKSxuPXQ7aWYoIWF8fCFyKXJldHVybjtuLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZCYmd2luZG93LmNsZWFySW50ZXJ2YWwobi5fX3Byb2dyZXNzYmFyRGVtb0ludGVydmFsSWQpO2xldCBvPTEyLGw9MCxwPWkoKCk9PnthLnBlcmNlbnRhZ2U9byxhLnN0YXR1c1RleHQ9ZShvKSxyLnRlcm1pbmFsTGluZXM9Wy4uLnNbbF1dLHIucGVyY2VudGFnZT1NYXRoLm1pbigxMDAsKGwrMSkqMjApLHIuaW5kZXRlcm1pbmF0ZT1sPHMubGVuZ3RoLTEsbz1vPj0xMDA/MTI6TWF0aC5taW4oMTAwLG8rMTEpLGw9bD49cy5sZW5ndGgtMT8wOmwrMX0sInVwZGF0ZURlbW8iKTtwKCksbi5fX3Byb2dyZXNzYmFyRGVtb0ludGVydmFsSWQ9d2luZG93LnNldEludGVydmFsKHAsMTQwMCl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vSW50cm8gewogICAgICAgICAgICBtYXgtd2lkdGg6IDcyMHB4OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDMwJSkiLCJoc2woMjE1IDE4JSA3NiUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlR3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDAuNzgpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjA0KSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTAgMjIlIDg2JSkiLCJoc2woMjEwIDEwJSAxOCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCBoMyB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgcCB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0MCUpIiwiaHNsKDIxNSAxMCUgNjYlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICAgIH0KCiAgICAgICAgICAucHJvZ3Jlc3NTdGFjayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuY29kZUxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0NCUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIH0KCiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW9JbnRybyI+CiAgICAgICAgICA8Y29kZT5kZWVzLXByb2dyZXNzYmFyPC9jb2RlPiBjYW4gbm93IHBhaXIgYSBjbGFzc2ljIHByb2dyZXNzIGJhciB3aXRoIGEgZml4ZWQtaGVpZ2h0IHN0YXR1cyBhcmVhLiBVc2Ugc2ltcGxlIHN0YXR1cyB0ZXh0IGZvciBjbGVhciB1c2VyLWZhY2luZyB1cGRhdGVzIG9yIHN3aXRjaCB0byB0ZXJtaW5hbC1saWtlIGxpbmVzIHdoZW4geW91IHdhbnQgcmVjZW50IHN0ZXBzIHRvIHN0YXkgdmlzaWJsZSB3aXRob3V0IGNhdXNpbmcgbGF5b3V0IGp1bXBzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob3djYXNlR3JpZCI+CiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5EZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+UGVyY2VudGFnZSBwbHVzIGN1cnJlbnQgdGFzazwvaDM+CiAgICAgICAgICAgIDxwPlVzZSBhIGxhYmVsLCBhIHBlcmNlbnRhZ2UsIGFuZCBvbmUgc2hvcnQgc3RhdHVzIGxpbmUgd2hlbiB0aGUgd29yayBpcyBtZWFzdXJhYmxlLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJNZWRpYSB1cGxvYWQiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezY4fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iVXBsb2FkaW5nIHRodW1ibmFpbHMgdG8gZWRnZSBjYWNoZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iQXNzZXQgc3luYyIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTAwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iQWxsIGZpbGVzIGFyZSBzeW5jZWQgYW5kIGF2YWlsYWJsZS4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+SW5kZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+U3Bpbm5lci1zdHlsZSB0ZXh0IGluZGljYXRvcjwvaDM+CiAgICAgICAgICAgIDxwPldoZW4gdGhlcmUgaXMgbm8gdHJ1c3R3b3J0aHkgcGVyY2VudGFnZSB5ZXQsIGtlZXAgdGhlIGJhciBtb3ZpbmcgYW5kIGxldCB0aGUgdGV4dCBleHBsYWluIHdoYXQgaXMgaGFwcGVuaW5nLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJEZXBlbmRlbmN5IGluc3RhbGwiCiAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iRG93bmxvYWRpbmcgcGFja2FnZSBtZXRhZGF0YS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iUXVldWVkIGpvYiIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MzJ9CiAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHshMX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IldhaXRpbmcgZm9yIGEgd29ya2VyIHNsb3QgdG8gYmVjb21lIGF2YWlsYWJsZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIHdpZGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPlRlcm1pbmFsIExpbmVzPC9kaXY+CiAgICAgICAgICAgIDxoMz5GaXhlZC1oZWlnaHQgdGVybWluYWwtc3R5bGUgc3RhdHVzIG91dHB1dDwvaDM+CiAgICAgICAgICAgIDxwPlRoZSBwYW5lbCBzdGF5cyB0aGUgc2FtZSBoZWlnaHQgd2hpbGUgdGhlIGxhdGVzdCBzdGVwIHN0YXlzIHZpc2libGUuIFRoaXMgaXMgdXNlZnVsIGZvciB1cGRhdGUgZmxvd3MsIGRvd25sb2FkcywgYW5kIHN0YWdlZCBiYWNrZ3JvdW5kIHdvcmsuPC9wPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgIGlkPSJ0ZXJtaW5hbC1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iUmVsZWFzZSBidW5kbGUiCiAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHsyMH0KICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7NH0KICAgICAgICAgICAgICAudGVybWluYWxMaW5lcz0ke3NbMF19CiAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+TGl2ZSBEZW1vPC9kaXY+CiAgICAgICAgICAgIDxoMz5VcGRhdGluZyBwZXJjZW50YWdlIGFuZCB0ZXh0IHRvZ2V0aGVyPC9oMz4KICAgICAgICAgICAgPHA+QSBzaW5nbGUgY29tcG9uZW50IGNhbiBleHByZXNzIGJvdGggaG93IGZhciB0aGUgam9iIGlzIGFuZCB3aGljaCBwaGFzZSBpcyBjdXJyZW50bHkgYWN0aXZlLjwvcD4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICBpZD0ibGl2ZS1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iQ3VzdG9tZXIgZXhwb3J0IgogICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTJ9CiAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUHJlcGFyaW5nIGFyY2hpdmUgYW5kIGRlcGVuZGVuY3kgZ3JhcGguLi4iCiAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkNvbXBhdGliaWxpdHk8L2Rpdj4KICAgICAgICAgICAgPGgzPkxlZ2FjeSA8Y29kZT52YWx1ZTwvY29kZT4gYW5kIDxjb2RlPnByb2dyZXNzPC9jb2RlPiBpbnB1dHM8L2gzPgogICAgICAgICAgICA8cD5FeGlzdGluZyB1c2FnZXMgY2FuIGtlZXAgcGFzc2luZyBwZXJjZW50YWdlcyBkaXJlY3RseSBvciBub3JtYWxpemVkIHByb2dyZXNzIHZhbHVlcyBmcm9tIDAgdG8gMS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSB2YWx1ZSIKICAgICAgICAgICAgICAgIC52YWx1ZT0kezc1fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iTWlncmF0aW5nIGV4aXN0aW5nIHJlYWRtZS1zdHlsZSB1c2FnZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSBwcm9ncmVzcyIKICAgICAgICAgICAgICAgIC5wcm9ncmVzcz0key40Mn0KICAgICAgICAgICAgICAgIC5zaG93UGVyY2VudGFnZT0keyExfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUmVuZGVyaW5nIG5vcm1hbGl6ZWQgcHJvZ3Jlc3MgaW5wdXQuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIGMyLGhyLGE2YSxVaXQ9ZygoKT0+e0cxKCk7dDZhKCk7cGUoKTtwdCgpO2MyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxocj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sYTZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1wcm9ncmVzc2JhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdO3ZhciBtZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1Byb2dyZXNzYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W1koKV0sYzIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZXJjZW50YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJwZXJjZW50YWdlImluIFUsImhhcyIpLGdldDppKFU9PlUucGVyY2VudGFnZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5wZXJjZW50YWdlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksYzIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idmFsdWUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS52YWx1ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS52YWx1ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLGMyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InByb2dyZXNzImluIFUsImhhcyIpLGdldDppKFU9PlUucHJvZ3Jlc3MsImdldCIpLHNldDppKChVLGhlKT0+e1UucHJvZ3Jlc3M9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sYix2KSxjMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJsYWJlbCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmxhYmVsLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmxhYmVsPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG0sZiksYzIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXNUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJzdGF0dXNUZXh0ImluIFUsImhhcyIpLGdldDppKFU9PlUuc3RhdHVzVGV4dCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zdGF0dXNUZXh0PWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksYzIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0ZXJtaW5hbExpbmVzImluIFUsImhhcyIpLGdldDppKFU9PlUudGVybWluYWxMaW5lcywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50ZXJtaW5hbExpbmVzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LEMsXyksYzIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXNSb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJzdGF0dXNSb3dzImluIFUsImhhcyIpLGdldDppKFU9PlUuc3RhdHVzUm93cywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zdGF0dXNSb3dzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LCQsRSksYzIodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJpbmRldGVybWluYXRlImluIFUsImhhcyIpLGdldDppKFU9PlUuaW5kZXRlcm1pbmF0ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5pbmRldGVybWluYXRlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGssUyksYzIodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2hvd1BlcmNlbnRhZ2UiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zaG93UGVyY2VudGFnZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zaG93UGVyY2VudGFnZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLGMyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlU3Bpbm5lckZyYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJhY3RpdmVTcGlubmVyRnJhbWUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5hY3RpdmVTcGlubmVyRnJhbWUsImdldCIpLHNldDppKChVLGhlKT0+e1UuYWN0aXZlU3Bpbm5lckZyYW1lPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LFYsVyksYzIobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Qn0sbnVsbCx0KSxtZT1hPWUudmFsdWUsQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9c3RhdGljIGRlbW89ZTZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1ocih0aGlzLG8sMCk7Z2V0IHBlcmNlbnRhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGVyY2VudGFnZShCKXt0aGlzLiNlPUJ9I3Q9KGhyKHRoaXMsbCksaHIodGhpcyxkLG51bGwpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdmFsdWUoQil7dGhpcy4jdD1CfSNhPShocih0aGlzLHUpLGhyKHRoaXMsYixudWxsKSk7Z2V0IHByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHByb2dyZXNzKEIpe3RoaXMuI2E9Qn0jcz0oaHIodGhpcyx2KSxocih0aGlzLG0sIiIpKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbGFiZWwoQil7dGhpcy4jcz1CfSNpPShocih0aGlzLGYpLGhyKHRoaXMsTSwiIikpO2dldCBzdGF0dXNUZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0YXR1c1RleHQoQil7dGhpcy4jaT1CfSNyPShocih0aGlzLHopLGhyKHRoaXMsQyxbXSkpO2dldCB0ZXJtaW5hbExpbmVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRlcm1pbmFsTGluZXMoQil7dGhpcy4jcj1CfSNvPShocih0aGlzLF8pLGhyKHRoaXMsJCwzKSk7Z2V0IHN0YXR1c1Jvd3MoKXtyZXR1cm4gdGhpcy4jb31zZXQgc3RhdHVzUm93cyhCKXt0aGlzLiNvPUJ9I249KGhyKHRoaXMsRSksaHIodGhpcyxrLCExKSk7Z2V0IGluZGV0ZXJtaW5hdGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaW5kZXRlcm1pbmF0ZShCKXt0aGlzLiNuPUJ9I2w9KGhyKHRoaXMsUyksaHIodGhpcyxQLCEwKSk7Z2V0IHNob3dQZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dQZXJjZW50YWdlKEIpe3RoaXMuI2w9Qn0jYz0oaHIodGhpcyxSKSxocih0aGlzLFYsMCkpO2dldCBhY3RpdmVTcGlubmVyRnJhbWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZlU3Bpbm5lckZyYW1lKEIpe3RoaXMuI2M9Qn1zcGlubmVySW50ZXJ2YWxJZD0oaHIodGhpcyxXKSxudWxsKTtzcGlubmVyRnJhbWVzPVsifCIsIi8iLCItIiwiXFwiXTtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSh2aC50ZXh0LGJoLnRleHQpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyQ29udGFpbmVyIHsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NMYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLnByb2dyZXNzVmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNSUgNDAlKSIsImhzbCgyMTUgMTUlIDcwJSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWVlZWIiLCIjNDQ0Iil9OwogICAgICAgIGJvcmRlci10b3A6IDAuNXB4IHNvbGlkICR7aC5iZFRoZW1lKCJ0cmFuc3BhcmVudCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKGJoLmJsdWVBY3RpdmUsdmguYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyRmlsbC5pbmRldGVybWluYXRlIHsKICAgICAgICB3aWR0aDogMzQlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlU2xpZGUgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnN0YXR1c1BhbmVsIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zdGF0dXMtcm93cywgMykgKiAxLjM1ZW0gKyAxNnB4KTsKICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXN0YXR1cy1yb3dzLCAzKSAqIDEuMzVlbSArIDE2cHgpOwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA4NiUpIiwiaHNsKDIxMCAxMCUgMjYlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAzMyUgOTglKSIsImhzbCgyMjAgMjAlIDEwJSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zdGF0dXNUZXh0Um93LAogICAgICAudGVybWluYWxMaW5lIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEuMzVlbTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE4JSA3OCUpIiwiaHNsKDIxNSAxMCUgMzQlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmxpbmVQcmVmaXggewogICAgICAgIHdpZHRoOiAxY2g7CiAgICAgICAgZmxleDogMCAwIDFjaDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoYmguYmx1ZUFjdGl2ZSx2aC5ibHVlQWN0aXZlKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAubGluZVRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCAxNSUgMjUlKSIsImhzbCgyMTAgMTUlIDg2JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbExpbmU6bm90KC5jdXJyZW50KSAubGluZVRleHQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxMiUgNDIlKSIsImhzbCgyMTUgMTIlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZVNsaWRlIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEyMCUpOwogICAgICAgIH0KCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzIwJSk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zeW5jU3Bpbm5lclN0YXRlKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnN0b3BTcGlubmVyKCksYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX11cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksdGhpcy5zeW5jU3Bpbm5lclN0YXRlKCksQi5oYXMoInRlcm1pbmFsTGluZXMiKSYmdGhpcy50ZXJtaW5hbExpbmVzLmxlbmd0aD4wJiZ0aGlzLnNjcm9sbFRlcm1pbmFsVG9Cb3R0b20oKX1yZW5kZXIoKXtsZXQgQj10aGlzLmdldEVmZmVjdGl2ZVBlcmNlbnRhZ2UoKSxVPSEhdGhpcy5sYWJlbHx8dGhpcy5zaG93UGVyY2VudGFnZSYmIXRoaXMuaW5kZXRlcm1pbmF0ZSxoZT10aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoPjAsRj1oZXx8dGhpcy5zdGF0dXNUZXh0LnRyaW0oKS5sZW5ndGg+MCxqPXRoaXMuZ2V0UmVuZGVyZWRTdGF0dXNSb3dzKCksdWU9dGhpcy5zcGlubmVyRnJhbWVzW3RoaXMuYWN0aXZlU3Bpbm5lckZyYW1lXT8/dGhpcy5zcGlubmVyRnJhbWVzWzBdO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhckNvbnRhaW5lciI+CiAgICAgICAgJHtVP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0hlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzTGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnNob3dQZXJjZW50YWdlJiYhdGhpcy5pbmRldGVybWluYXRlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NWYWx1ZSI+JHt0aGlzLmZvcm1hdFBlcmNlbnRhZ2UoQil9JTwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJwcm9ncmVzc0JhckZpbGwgJHt0aGlzLmluZGV0ZXJtaW5hdGU/ImluZGV0ZXJtaW5hdGUiOiIifSIKICAgICAgICAgICAgc3R5bGU9IiR7dGhpcy5pbmRldGVybWluYXRlPyIiOmB3aWR0aDogJHtCfSU7YH0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHtGP3dgCiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJzdGF0dXNQYW5lbCIKICAgICAgICAgICAgc3R5bGU9Ii0tc3RhdHVzLXJvd3M6ICR7an07IgogICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgYXJpYS1hdG9taWM9InRydWUiCiAgICAgICAgICA+CiAgICAgICAgICAgICR7aGU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbFNjcm9sbGVyIj4KICAgICAgICAgICAgICAgICR7dGhpcy50ZXJtaW5hbExpbmVzLm1hcCgobGUsUSk9PntsZXQgaWU9UT09PXRoaXMudGVybWluYWxMaW5lcy5sZW5ndGgtMSx0ZT10aGlzLmluZGV0ZXJtaW5hdGUmJmllP3VlOiI+IjtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbExpbmUgJHtpZT8iY3VycmVudCI6IiJ9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lUHJlZml4Ij4ke3RlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lVGV4dCI+JHtsZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c1RleHRSb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmVQcmVmaXgiPiR7dGhpcy5pbmRldGVybWluYXRlP3VlOiI+In08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVRleHQiPiR7dGhpcy5zdGF0dXNUZXh0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRFZmZlY3RpdmVQZXJjZW50YWdlKCl7aWYodHlwZW9mIHRoaXMudmFsdWU9PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodGhpcy52YWx1ZSkpcmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKHRoaXMudmFsdWUpO2lmKHR5cGVvZiB0aGlzLnByb2dyZXNzPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHRoaXMucHJvZ3Jlc3MpKXtsZXQgQj10aGlzLnByb2dyZXNzPj0wJiZ0aGlzLnByb2dyZXNzPD0xP3RoaXMucHJvZ3Jlc3MqMTAwOnRoaXMucHJvZ3Jlc3M7cmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKEIpfXJldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZSh0aGlzLnBlcmNlbnRhZ2UpfWdldFJlbmRlcmVkU3RhdHVzUm93cygpe2xldCBCPU51bWJlci5pc0Zpbml0ZSh0aGlzLnN0YXR1c1Jvd3MpP01hdGguZmxvb3IodGhpcy5zdGF0dXNSb3dzKTozO3JldHVybiBNYXRoLm1heCgxLEIpfWNsYW1wUGVyY2VudGFnZShCKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsQikpfWZvcm1hdFBlcmNlbnRhZ2UoQil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoQik/YCR7Qn1gOkIudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIil9c3luY1NwaW5uZXJTdGF0ZSgpe2xldCBCPXRoaXMuaW5kZXRlcm1pbmF0ZSYmKHRoaXMuc3RhdHVzVGV4dC50cmltKCkubGVuZ3RoPjB8fHRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCk7aWYoQiYmdGhpcy5zcGlubmVySW50ZXJ2YWxJZD09PW51bGwpe3RoaXMuc3Bpbm5lckludGVydmFsSWQ9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy5hY3RpdmVTcGlubmVyRnJhbWU9KHRoaXMuYWN0aXZlU3Bpbm5lckZyYW1lKzEpJXRoaXMuc3Bpbm5lckZyYW1lcy5sZW5ndGh9LDEyMCk7cmV0dXJufUJ8fHRoaXMuc3RvcFNwaW5uZXIoKX1zdG9wU3Bpbm5lcigpe3RoaXMuc3Bpbm5lckludGVydmFsSWQhPT1udWxsJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5zcGlubmVySW50ZXJ2YWxJZCksdGhpcy5zcGlubmVySW50ZXJ2YWxJZD1udWxsKSx0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZT0wfXNjcm9sbFRlcm1pbmFsVG9Cb3R0b20oKXtsZXQgQj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbFNjcm9sbGVyIik7QiYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0Iuc2Nyb2xsVG9wPUIuc2Nyb2xsSGVpZ2h0fSl9c3RhdGlje2hyKGEsdCl9fTtyZXR1cm4gbWU9YX0pKCl9KTt2YXIgczZhPWcoKCk9PntVaXQoKX0pO3ZhciBhMWUsa2csaTZhLHI2YT1nKCgpPT57cGUoKTtrdCgpO3B0KCk7YTFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxrZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0saTZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zcGlubmVyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTcGlubmVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCgpXSxhMWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzaXplImluIGYsImhhcyIpLGdldDppKGY9PmYuc2l6ZSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnNpemU9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLGExZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJudyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iYm53ImluIGYsImhhcyIpLGdldDppKGY9PmYuYm53LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuYm53PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxhMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InN0YXR1cyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnN0YXR1cywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnN0YXR1cz15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksYTFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1zcGlubmVyPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc2l6ZT0kezY0fSBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezY0fSBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICBgLCJkZW1vIik7I2U9a2codGhpcyxvLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKG0pe3RoaXMuI2U9bX0jdD0oa2codGhpcyxsKSxrZyh0aGlzLGQsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyhtKXt0aGlzLiN0PW19I2E9KGtnKHRoaXMsdSksa2codGhpcyxiLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXMobSl7dGhpcy4jYT1tfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxrZyh0aGlzLHYpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAjOGJjMzRhMDA7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgI2xvYWRpbmcuc3VjY2VzcyB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgI2xvYWRpbmcgewogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgICAgI2xvYWRpbmcuc3VjY2VzcyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUodGhpcy5ibnc/IiMzMzMiOiIjOGJjMzRhIix0aGlzLmJudz8iI2ZmZiI6IiM4YmMzNGEiKX07CiAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgI2xvYWRpbmcuZXJyb3IgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiI2U2NGExOSIsdGhpcy5ibnc/IiNmZmYiOiIjZTY0YTE5Iil9OwogICAgICAgIH0KICAgICAgICBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9IiR7dGhpcy5zdGF0dXN9IiBpZD0ibG9hZGluZyI+CiAgICAgICAgJHsoKCk9PntpZih0aGlzLnN0YXR1cz09PSJzdWNjZXNzIilyZXR1cm4gd2A8ZGVlcy1pY29uIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMSUpIHRyYW5zbGF0ZVkoMyUpOyIgLmljb249JHsiZmE6Y2lyY2xlLWNoZWNrIn0+PC9kZWVzLWljb24+YDtpZih0aGlzLnN0YXR1cz09PSJlcnJvciIpcmV0dXJuIHdgPGRlZXMtaWNvbiAuaWNvbj0keyJmYTpjaXJjbGUteG1hcmsifT48L2RlZXMtaWNvbj5gfSkoKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3trZyhhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgbzZhPWcoKCk9PntyNmEoKX0pO3ZhciBuNmEsbDZhPWcoKCk9PntwZSgpO1dpdCgpO0Q4KCk7bjZhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIH0KCiAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiI2FhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KCiAgICAgIC50aGVtZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDE2cHg7CiAgICAgICAgcmlnaHQ6IDE2cHg7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGlja2VkPSR7KCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImJyaWdodCIpfX0+VG9nZ2xlIFRoZW1lPC9kZWVzLWJ1dHRvbj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Ub2FzdCBUeXBlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgRGlmZmVyZW50IHRvYXN0IHR5cGVzIGZvciB2YXJpb3VzIG5vdGlmaWNhdGlvbiBzY2VuYXJpb3MuIENsaWNrIGFueSBidXR0b24gdG8gc2hvdyBhIHRvYXN0LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLmluZm8oIlRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBtZXNzYWdlIil9fT5JbmZvIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIiBAY2xpY2tlZD0keygpPT57bXMuc3VjY2VzcygiT3BlcmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhIil9fT5TdWNjZXNzIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy53YXJuaW5nKCJQbGVhc2UgcmV2aWV3IGJlZm9yZSBwcm9jZWVkaW5nIil9fT5XYXJuaW5nIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyIpfX0+RXJyb3IgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Ub2FzdCBQb3NpdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFRvYXN0cyBjYW4gYXBwZWFyIGluIGRpZmZlcmVudCBwb3NpdGlvbnMgb24gdGhlIHNjcmVlbi4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5zaG93KHttZXNzYWdlOiJUb3AgUmlnaHQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtcmlnaHQifSl9fT5Ub3AgUmlnaHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLnNob3coe21lc3NhZ2U6IlRvcCBMZWZ0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWxlZnQifSl9fT5Ub3AgTGVmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiQm90dG9tIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLXJpZ2h0In0pfX0+Qm90dG9tIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5zaG93KHttZXNzYWdlOiJCb3R0b20gTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1sZWZ0In0pfX0+Qm90dG9tIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLnNob3coe21lc3NhZ2U6IlRvcCBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtY2VudGVyIn0pfX0+VG9wIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiQm90dG9tIENlbnRlciBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1jZW50ZXIifSl9fT5Cb3R0b20gQ2VudGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RHVyYXRpb24gT3B0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ29udHJvbCBob3cgbG9uZyB0b2FzdHMgc3RheSB2aXNpYmxlLiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiUXVpY2sgdG9hc3QgKDEgc2Vjb25kKSIsdHlwZToiaW5mbyIsZHVyYXRpb246MWUzfSl9fT4xIFNlY29uZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiU3RhbmRhcmQgdG9hc3QgKDMgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjNlM30pfX0+MyBTZWNvbmRzIChEZWZhdWx0KTwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuc2hvdyh7bWVzc2FnZToiTG9uZyB0b2FzdCAoNSBzZWNvbmRzKSIsdHlwZToiaW5mbyIsZHVyYXRpb246NWUzfSl9fT41IFNlY29uZHM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21zLnNob3coe21lc3NhZ2U6Ik1hbnVhbCBkaXNtaXNzIG9ubHkgKGNsaWNrIHRvIGNsb3NlKSIsdHlwZToid2FybmluZyIsZHVyYXRpb246MH0pfX0+Tm8gQXV0by1EaXNtaXNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TXVsdGlwbGUgVG9hc3RzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBNdWx0aXBsZSB0b2FzdHMgc3RhY2sgYXV0b21hdGljYWxseS4gVGhleSBtYWludGFpbiB0aGVpciBvcmRlciBhbmQgYW5pbWF0ZSBzbW9vdGhseS4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5pbmZvKCJGaXJzdCBub3RpZmljYXRpb24iKSxzZXRUaW1lb3V0KCgpPT5tcy5zdWNjZXNzKCJTZWNvbmQgbm90aWZpY2F0aW9uIiksMjAwKSxzZXRUaW1lb3V0KCgpPT5tcy53YXJuaW5nKCJUaGlyZCBub3RpZmljYXRpb24iKSw0MDApLHNldFRpbWVvdXQoKCk9Pm1zLmVycm9yKCJGb3VydGggbm90aWZpY2F0aW9uIiksNjAwKX19PlNob3cgTXVsdGlwbGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2ZvcihsZXQgcz0xO3M8PTU7cysrKXNldFRpbWVvdXQoKCk9Pnttcy5zaG93KHttZXNzYWdlOmBOb3RpZmljYXRpb24gIyR7c31gLHR5cGU6cyUyPT09MD8ic3VjY2VzcyI6ImluZm8iLGR1cmF0aW9uOjJlMytzKjUwMH0pfSxzKjEwMCl9fT5SYXBpZCBGaXJlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UmVhbC1Xb3JsZCBFeGFtcGxlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ29tbW9uIHVzZSBjYXNlcyBmb3IgdG9hc3Qgbm90aWZpY2F0aW9ucyBpbiBhcHBsaWNhdGlvbnMuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0ke2FzeW5jKCk9PntsZXQgcz1hd2FpdCBtcy5zaG93KHttZXNzYWdlOiJTYXZpbmcgY2hhbmdlcy4uLiIsdHlwZToiaW5mbyIsZHVyYXRpb246MH0pO3NldFRpbWVvdXQoKCk9PntzLmRpc21pc3MoKSxtcy5zdWNjZXNzKCJDaGFuZ2VzIHNhdmVkIHN1Y2Nlc3NmdWxseSEiKX0sMmUzKX19PlNhdmUgT3BlcmF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5lcnJvcigiRmFpbGVkIHRvIGNvbm5lY3QgdG8gc2VydmVyLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uLiIpfX0+TmV0d29yayBFcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMud2FybmluZygiWW91ciBzZXNzaW9uIHdpbGwgZXhwaXJlIGluIDUgbWludXRlcyIpfX0+U2Vzc2lvbiBXYXJuaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnttcy5zdWNjZXNzKCJGaWxlIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSEiKX19PlVwbG9hZCBDb21wbGV0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlByb2dyYW1tYXRpYyBDb250cm9sPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBBZHZhbmNlZCBjb250cm9sIG92ZXIgdG9hc3QgYmVoYXZpb3IuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0ke2FzeW5jKCk9PntsZXQgcz1hd2FpdCBtcy5zaG93KHttZXNzYWdlOiJUaGlzIHRvYXN0IGNhbiBiZSBkaXNtaXNzZWQgcHJvZ3JhbW1hdGljYWxseSIsdHlwZToiaW5mbyIsZHVyYXRpb246MH0pO3NldFRpbWVvdXQoKCk9PntzLmRpc21pc3MoKSxtcy5zdWNjZXNzKCJUb2FzdCBkaXNtaXNzZWQgYWZ0ZXIgMiBzZWNvbmRzIil9LDJlMyl9fT5Qcm9ncmFtbWF0aWMgRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bXMuaW5mbygiSW5mbyBtZXNzYWdlIiwyZTMpLHNldFRpbWVvdXQoKCk9Pm1zLnN1Y2Nlc3MoIlN1Y2Nlc3MgbWVzc2FnZSIsMmUzKSw1MDApLHNldFRpbWVvdXQoKCk9Pm1zLndhcm5pbmcoIldhcm5pbmcgbWVzc2FnZSIsMmUzKSwxZTMpLHNldFRpbWVvdXQoKCk9Pm1zLmVycm9yKCJFcnJvciBtZXNzYWdlIiwyZTMpLDE1MDApfX0+Q29udmVuaWVuY2UgTWV0aG9kczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBaWCx5dSxtcyxXaXQ9ZygoKT0+e3BlKCk7a3QoKTt6bigpO2w2YSgpO0NyKCk7cHQoKTtaWD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0seXU9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG1zPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10b2FzdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVG9hc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxaWCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im1lc3NhZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5tZXNzYWdlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWVzc2FnZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksWlgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0eXBlImluIHosImhhcyIpLGdldDppKHo9PnoudHlwZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnR5cGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLFpYKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImR1cmF0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZHVyYXRpb24sImdldCIpLHNldDppKCh6LE4pPT57ei5kdXJhdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksWlgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImlzVmlzaWJsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzVmlzaWJsZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmlzVmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksWlgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1uNmE7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgdG9hc3RDb250YWluZXJzPW5ldyBNYXA7c3RhdGljIGdldE9yQ3JlYXRlQ29udGFpbmVyKE0pe2lmKCF0aGlzLnRvYXN0Q29udGFpbmVycy5oYXMoTSkpe2xldCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3N3aXRjaCh6LmNsYXNzTmFtZT1gdG9hc3QtY29udGFpbmVyIHRvYXN0LWNvbnRhaW5lci0ke019YCx6LnN0eWxlLmNzc1RleHQ9YAogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB6LWluZGV4OiAke1dyLm92ZXJsYXkudG9hc3R9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICBgLE0pe2Nhc2UidG9wLXJpZ2h0Ijp6LnN0eWxlLnRvcD0iMCIsei5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6ei5zdHlsZS50b3A9IjAiLHouc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tcmlnaHQiOnouc3R5bGUuYm90dG9tPSIwIix6LnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlImJvdHRvbS1sZWZ0Ijp6LnN0eWxlLmJvdHRvbT0iMCIsei5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlInRvcC1jZW50ZXIiOnouc3R5bGUudG9wPSIwIix6LnN0eWxlLmxlZnQ9IjUwJSIsei5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrO2Nhc2UiYm90dG9tLWNlbnRlciI6ei5zdHlsZS5ib3R0b209IjAiLHouc3R5bGUubGVmdD0iNTAlIix6LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWt9ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh6KSx0aGlzLnRvYXN0Q29udGFpbmVycy5zZXQoTSx6KX1yZXR1cm4gdGhpcy50b2FzdENvbnRhaW5lcnMuZ2V0KE0pfXN0YXRpYyBhc3luYyBzaG93KE0pe2xldCB6PXR5cGVvZiBNPT0ic3RyaW5nIj97bWVzc2FnZTpNfTpNLE49bmV3IHk7cmV0dXJuIE4ubWVzc2FnZT16Lm1lc3NhZ2UsTi50eXBlPXoudHlwZXx8ImluZm8iLE4uZHVyYXRpb249ei5kdXJhdGlvbnx8M2UzLHRoaXMuZ2V0T3JDcmVhdGVDb250YWluZXIoei5wb3NpdGlvbnx8InRvcC1yaWdodCIpLmFwcGVuZENoaWxkKE4pLGF3YWl0IE4udXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5pc1Zpc2libGU9ITB9KSxOLmR1cmF0aW9uPjAmJnNldFRpbWVvdXQoKCk9PntOLmRpc21pc3MoKX0sTi5kdXJhdGlvbiksTn1zdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhNKXtyZXR1cm4gdGhpcy5zaG93KE0pfXN0YXRpYyBpbmZvKE0seil7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTpNLHR5cGU6ImluZm8iLGR1cmF0aW9uOnp9KX1zdGF0aWMgc3VjY2VzcyhNLHope3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJzdWNjZXNzIixkdXJhdGlvbjp6fSl9c3RhdGljIHdhcm5pbmcoTSx6KXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToid2FybmluZyIsZHVyYXRpb246en0pfXN0YXRpYyBlcnJvcihNLHope3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJlcnJvciIsZHVyYXRpb246en0pfSNlPXl1KHRoaXMsbywiIik7Z2V0IG1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVzc2FnZShNKXt0aGlzLiNlPU19I3Q9KHl1KHRoaXMsbCkseXUodGhpcyxkLCJpbmZvIikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHR5cGUoTSl7dGhpcy4jdD1NfSNhPSh5dSh0aGlzLHUpLHl1KHRoaXMsYiwzZTMpKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHVyYXRpb24oTSl7dGhpcy4jYT1NfSNzPSh5dSh0aGlzLHYpLHl1KHRoaXMsbSwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNWaXNpYmxlKE0pe3RoaXMuI3M9TX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCkseXUodGhpcyxmKSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICA6aG9zdChbaXN2aXNpYmxlXSkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CgogICAgICAudG9hc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZiIsIiMyMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMCwwLDAsMC4zKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudG9hc3Q6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNsb3NlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogVHlwZS1zcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3R5cGU9ImluZm8iXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMDA4NGZmOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0ic3VjY2VzcyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJ3YXJuaW5nIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9ImVycm9yIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2VmNDQ0NDsKICAgICAgfQoKICAgICAgLyogUHJvZ3Jlc3MgYmFyICovCiAgICAgIC5wcm9ncmVzcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsKICAgICAgICBhbmltYXRpb246IHByb2dyZXNzIGxpbmVhciBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTT17aW5mbzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTFhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY3eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsc3VjY2Vzczp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTkuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTAuNTg2IDcuNzA3IDkuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsNC00eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsd2FybmluZzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguMjU3IDMuMDk5Yy43NjUtMS4zNiAyLjcyMi0xLjM2IDMuNDg2IDBsNS41OCA5LjkyYy43NSAxLjMzNC0uMjEzIDIuOTgtMS43NDIgMi45OEg0LjQyYy0xLjUzIDAtMi40OTMtMS42NDYtMS43NDMtMi45OGw1LjU4LTkuOTJ6TTExIDEzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOGExIDEgMCAwMC0xIDF2M2ExIDEgMCAwMDIgMFY2YTEgMSAwIDAwLTEtMXoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLGVycm9yOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOC43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRMOC41ODYgMTBsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTEuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTEuNDE0IDEwbDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDguNTg2IDguNzA3IDcuMjkzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmB9O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0b2FzdCIgQGNsaWNrPSR7dGhpcy5kaXNtaXNzfT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uIj4KICAgICAgICAgICR7TVt0aGlzLnR5cGVdfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPiR7dGhpcy5tZXNzYWdlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIiBzdHlsZT0iYW5pbWF0aW9uLWR1cmF0aW9uOiAke3RoaXMuZHVyYXRpb259bXMiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc21pc3MoKXt0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZSh6PT5zZXRUaW1lb3V0KHosMzAwKSksdGhpcy5yZW1vdmUoKTtsZXQgTT10aGlzLnBhcmVudEVsZW1lbnQ7aWYoTSYmTS5jaGlsZHJlbi5sZW5ndGg9PT0wKXtNLnJlbW92ZSgpO2ZvcihsZXRbeixOXW9mIHkudG9hc3RDb250YWluZXJzLmVudHJpZXMoKSlpZihOPT09TSl7eS50b2FzdENvbnRhaW5lcnMuZGVsZXRlKHopO2JyZWFrfX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInR5cGUiLHRoaXMudHlwZSl9c3RhdGlje3l1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBjNmE9ZygoKT0+e1dpdCgpfSk7dmFyIGQ2YT1nKCgpPT57cW1hKCk7R21hKCk7Sm1hKCk7czZhKCk7bzZhKCk7YzZhKCl9KTt2YXIgdTZhPWcoKCk9Pnt1digpfSk7dmFyIHA2YT1nKCgpPT57QTgoKX0pO3ZhciBoNmE9ZygoKT0+e3U2YSgpO3A2YSgpfSk7dmFyIGY2YT1nKCgpPT57emkoKX0pO3ZhciBtNmE9ZygoKT0+e1JldCgpfSk7dmFyIGc2YT1nKCgpPT57WWV0KCl9KTt2YXIgYjZhPWcoKCk9PntzdHQoKX0pO3ZhciB2NmE9ZygoKT0+e1pldCgpfSk7dmFyIHg2YT1nKCgpPT57WGV0KCl9KTt2YXIgeTZhPWcoKCk9PntxZXQoKX0pO3ZhciB3NmE9ZygoKT0+e2JuZSgpfSk7dmFyIGs2YT1nKCgpPT57S2NlKCl9KTt2YXIgUzZhPWcoKCk9Pnt9KTt2YXIgXzZhPWcoKCk9PntTNmEoKX0pO3ZhciBNNmE9ZygoKT0+e0pldCgpfSk7dmFyIHo2YT1nKCgpPT57dHR0KCl9KTt2YXIgQzZhPWcoKCk9PntHY2UoKTttaXQoKX0pO3ZhciBzMWUsVDZhPWcoKCk9PntzMWU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW1hZ2VDcm9wcGVyIil9b3B0aW9ucztjYW52YXM7Y3R4O2ltZztvdmVybGF5Q2FudmFzO292ZXJsYXlDdHg7Y3JvcFg9MDtjcm9wWT0wO2Nyb3BTaXplPTIwMDttaW5Dcm9wU2l6ZT01MDtpc0RyYWdnaW5nPSExO2lzUmVzaXppbmc9ITE7ZHJhZ1N0YXJ0WD0wO2RyYWdTdGFydFk9MDtyZXNpemVIYW5kbGU9IiI7aW1hZ2VTY2FsZT0xO2ltYWdlT2Zmc2V0WD0wO2ltYWdlT2Zmc2V0WT0wO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17bWluU2l6ZTo1MCxvdXRwdXRTaXplOjgwMCxvdXRwdXRRdWFsaXR5Oi45NSwuLi5lfSx0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMub3ZlcmxheUNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLm92ZXJsYXlDdHg9dGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5pbWc9bmV3IEltYWdlfWFzeW5jIGluaXRpYWxpemUoKXthd2FpdCB0aGlzLmxvYWRJbWFnZSgpLHRoaXMuc2V0dXBDYW52YXNlcygpLHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpLHRoaXMucmVuZGVyKCl9YXN5bmMgbG9hZEltYWdlKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5pbWcub25sb2FkPSgpPT5lKCksdGhpcy5pbWcub25lcnJvcj10LHRoaXMuaW1nLnNyYz10aGlzLm9wdGlvbnMuaW1hZ2V9KX1zZXR1cENhbnZhc2VzKCl7bGV0IGU9dGhpcy5vcHRpb25zLmNvbnRhaW5lcix0PU1hdGgubWluKGUuY2xpZW50V2lkdGgsZS5jbGllbnRIZWlnaHQpO3RoaXMuY2FudmFzLndpZHRoPXQsdGhpcy5jYW52YXMuaGVpZ2h0PXQsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMuY2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aD10LHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQ9dCx0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIixlLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzKSxlLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7bGV0IGE9TWF0aC5taW4odC90aGlzLmltZy53aWR0aCx0L3RoaXMuaW1nLmhlaWdodCk7dGhpcy5pbWFnZVNjYWxlPWEsdGhpcy5pbWFnZU9mZnNldFg9KHQtdGhpcy5pbWcud2lkdGgqYSkvMix0aGlzLmltYWdlT2Zmc2V0WT0odC10aGlzLmltZy5oZWlnaHQqYSkvMjtsZXQgcj10aGlzLmltZy53aWR0aCphLG49dGhpcy5pbWcuaGVpZ2h0KmEsbz1NYXRoLm1pbihyLG4sdCouOCk7dGhpcy5jcm9wU2l6ZT1vKi44LHRoaXMuY3JvcFg9KHQtdGhpcy5jcm9wU2l6ZSkvMix0aGlzLmNyb3BZPSh0LXRoaXMuY3JvcFNpemUpLzJ9c2V0dXBFdmVudExpc3RlbmVycygpe3RoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuaGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKX1oYW5kbGVNb3VzZURvd24oZSl7bGV0IHQ9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9KGUuY2xpZW50WC10LmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvdC53aWR0aCkscj0oZS5jbGllbnRZLXQudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC90LmhlaWdodCksbj10aGlzLmdldFJlc2l6ZUhhbmRsZShhLHIpO24/KHRoaXMuaXNSZXNpemluZz0hMCx0aGlzLnJlc2l6ZUhhbmRsZT1uKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEoYSxyKSYmKHRoaXMuaXNEcmFnZ2luZz0hMCksdGhpcy5kcmFnU3RhcnRYPWEsdGhpcy5kcmFnU3RhcnRZPXJ9aGFuZGxlTW91c2VNb3ZlKGUpe2xldCB0PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShlLmNsaWVudFgtdC5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Qud2lkdGgpLHI9KGUuY2xpZW50WS10LnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvdC5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoYSxyKTtpZihuP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9dGhpcy5nZXRSZXNpemVDdXJzb3Iobik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGEscik/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSI6dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5pc0RyYWdnaW5nKXtsZXQgbz1hLXRoaXMuZHJhZ1N0YXJ0WCxsPXItdGhpcy5kcmFnU3RhcnRZLHA9dGhpcy5pbWFnZU9mZnNldFgsZD10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZSx1PXRoaXMuaW1hZ2VPZmZzZXRZLGM9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplO3RoaXMuY3JvcFg9TWF0aC5tYXgocCxNYXRoLm1pbihkLHRoaXMuY3JvcFgrbykpLHRoaXMuY3JvcFk9TWF0aC5tYXgodSxNYXRoLm1pbihjLHRoaXMuY3JvcFkrbCkpLHRoaXMuZHJhZ1N0YXJ0WD1hLHRoaXMuZHJhZ1N0YXJ0WT1yLHRoaXMucmVuZGVyKCl9dGhpcy5pc1Jlc2l6aW5nJiYodGhpcy5oYW5kbGVSZXNpemUoYSxyKSx0aGlzLmRyYWdTdGFydFg9YSx0aGlzLmRyYWdTdGFydFk9cix0aGlzLnJlbmRlcigpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuaXNSZXNpemluZz0hMSx0aGlzLnJlc2l6ZUhhbmRsZT0iIn1oYW5kbGVUb3VjaFN0YXJ0KGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdD1lLnRvdWNoZXNbMF0sYT1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7Y2xpZW50WDp0LmNsaWVudFgsY2xpZW50WTp0LmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlRG93bihhKX1oYW5kbGVUb3VjaE1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB0PWUudG91Y2hlc1swXSxhPW5ldyBNb3VzZUV2ZW50KCJtb3VzZW1vdmUiLHtjbGllbnRYOnQuY2xpZW50WCxjbGllbnRZOnQuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VNb3ZlKGEpfWhhbmRsZVRvdWNoRW5kKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1vdXNlVXAoKX1nZXRSZXNpemVIYW5kbGUoZSx0KXtsZXQgcj17bnc6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LG5lOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHN3Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHNlOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX19O2ZvcihsZXRbbixvXW9mIE9iamVjdC5lbnRyaWVzKHIpKWlmKE1hdGguYWJzKGUtby54KTwyMCYmTWF0aC5hYnModC1vLnkpPDIwKXJldHVybiBuO3JldHVybiIifWdldFJlc2l6ZUN1cnNvcihlKXtyZXR1cm57bnc6Im53LXJlc2l6ZSIsbmU6Im5lLXJlc2l6ZSIsc3c6InN3LXJlc2l6ZSIsc2U6InNlLXJlc2l6ZSJ9W2VdfHwiZGVmYXVsdCJ9aXNJbnNpZGVDcm9wQXJlYShlLHQpe3JldHVybiBlPj10aGlzLmNyb3BYJiZlPD10aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUmJnQ+PXRoaXMuY3JvcFkmJnQ8PXRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1oYW5kbGVSZXNpemUoZSx0KXtsZXQgYT1lLXRoaXMuZHJhZ1N0YXJ0WCxyPXQtdGhpcy5kcmFnU3RhcnRZLG49dGhpcy5pbWFnZU9mZnNldFgsbz10aGlzLmltYWdlT2Zmc2V0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSxwPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGU7c3dpdGNoKHRoaXMucmVzaXplSGFuZGxlKXtjYXNlInNlIjp0aGlzLmNyb3BTaXplPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsTWF0aC5taW4odGhpcy5jcm9wU2l6ZStNYXRoLm1heChhLHIpLE1hdGgubWluKGwtdGhpcy5jcm9wWCxwLXRoaXMuY3JvcFkpKSk7YnJlYWs7Y2FzZSJudyI6bGV0IGQ9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplLU1hdGgubWF4KGEscikpLHU9dGhpcy5jcm9wU2l6ZS1kLGM9dGhpcy5jcm9wWCt1LGI9dGhpcy5jcm9wWSt1O2M+PW4mJmI+PW8mJih0aGlzLmNyb3BYPWMsdGhpcy5jcm9wWT1iLHRoaXMuY3JvcFNpemU9ZCk7YnJlYWs7Y2FzZSJuZSI6bGV0IHY9TWF0aC5tYXgoYSwtcikseD1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrdiksbT14LXRoaXMuY3JvcFNpemUsZj10aGlzLmNyb3BZLW07Zj49byYmdGhpcy5jcm9wWCt4PD1sJiYodGhpcy5jcm9wWT1mLHRoaXMuY3JvcFNpemU9eCk7YnJlYWs7Y2FzZSJzdyI6bGV0IHk9TWF0aC5tYXgoLWEsciksTT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUreSksej1NLXRoaXMuY3JvcFNpemUsTj10aGlzLmNyb3BYLXo7Tj49biYmdGhpcy5jcm9wWStNPD1wJiYodGhpcy5jcm9wWD1OLHRoaXMuY3JvcFNpemU9TSk7YnJlYWt9fXJlbmRlcigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5jdHguZmlsbFN0eWxlPSIjMDAwMDAwIix0aGlzLmN0eC5maWxsUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWcsdGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMCwgMC41KSIsdGhpcy5vdmVybGF5Q3R4LmZpbGxSZWN0KHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguc2F2ZSgpLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSk6KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHgucmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LnJlc3RvcmUoKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlU3R5bGU9IndoaXRlIix0aGlzLm92ZXJsYXlDdHgubGluZVdpZHRoPTIsdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlKCkpOnRoaXMub3ZlcmxheUN0eC5zdHJva2VSZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMuZHJhd1Jlc2l6ZUhhbmRsZXMoKX1kcmF3UmVzaXplSGFuZGxlcygpe2xldCB0PVt7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfV07dGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0id2hpdGUiLHQuZm9yRWFjaChhPT57dGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmMoYS54LGEueSw4LDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguZmlsbCgpfSl9YXN5bmMgZ2V0Q3JvcHBlZEltYWdlKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdD1lLmdldENvbnRleHQoIjJkIiksYT0xL3RoaXMuaW1hZ2VTY2FsZSxyPXRoaXMuY3JvcFNpemUqYSxuPXRoaXMub3B0aW9ucy5vdXRwdXRTaXplO24+ciYmY29uc29sZS5pbmZvKGBQcm9maWxlIHBpY3R1cmU6IFVwc2NhbGluZyBmcm9tICR7TWF0aC5yb3VuZChyKX1weCB0byAke259cHhgKSxlLndpZHRoPW4sZS5oZWlnaHQ9bjtsZXQgbz0odGhpcy5jcm9wWC10aGlzLmltYWdlT2Zmc2V0WCkqYSxsPSh0aGlzLmNyb3BZLXRoaXMuaW1hZ2VPZmZzZXRZKSphLHA9dGhpcy5jcm9wU2l6ZSphO3RoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCImJih0LmJlZ2luUGF0aCgpLHQuYXJjKG4vMixuLzIsbi8yLDAsTWF0aC5QSSoyKSx0LmNsaXAoKSksdC5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsdC5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLHQuZHJhd0ltYWdlKHRoaXMuaW1nLG8sbCxwLHAsMCwwLG4sbik7bGV0IHU9dGhpcy5vcHRpb25zLmltYWdlLmluY2x1ZGVzKCJpbWFnZS9wbmciKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyI7cmV0dXJuIGUudG9EYXRhVVJMKHUsdGhpcy5vcHRpb25zLm91dHB1dFF1YWxpdHkpfWRlc3Ryb3koKXt0aGlzLmNhbnZhcy5yZW1vdmUoKSx0aGlzLm92ZXJsYXlDYW52YXMucmVtb3ZlKCl9fX0pO3ZhciBHaCxSbixHaXQsJDZhPWcoKCk9PntwZSgpO0cxKCk7Q3IoKTt6bigpO1VhKCk7RDgoKTtGMSgpO0YxKCk7VDZhKCk7cHQoKTtHaD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sUm49ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEdpdD0oKCk9PntsZXQgcz1bbmUoImRlZXMtcHJvZmlsZXBpY3R1cmUtbW9kYWwiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiUHJvZmlsZVBpY3R1cmVNb2RhbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEdoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbml0aWFsSW1hZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pbml0aWFsSW1hZ2UsImdldCIpLHNldDppKChTLEkpPT57Uy5pbml0aWFsSW1hZ2U9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLEdoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNoYXBlImluIFMsImhhcyIpLGdldDppKFM9PlMuc2hhcGUsImdldCIpLHNldDppKChTLEkpPT57Uy5zaGFwZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksR2godGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdXRwdXRTaXplImluIFMsImhhcyIpLGdldDppKFM9PlMub3V0cHV0U2l6ZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm91dHB1dFNpemU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLEdoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ib3V0cHV0UXVhbGl0eSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm91dHB1dFF1YWxpdHksImdldCIpLHNldDppKChTLEkpPT57Uy5vdXRwdXRRdWFsaXR5PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxHaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50U3RlcCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1cnJlbnRTdGVwLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFN0ZXA9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLEdoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JvcHBlZEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjcm9wcGVkSW1hZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jcm9wcGVkSW1hZ2UsImdldCIpLHNldDppKChTLEkpPT57Uy5jcm9wcGVkSW1hZ2U9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLEdoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9jZXNzaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc1Byb2Nlc3NpbmciaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc1Byb2Nlc3NpbmcsImdldCIpLHNldDppKChTLEkpPT57Uy5pc1Byb2Nlc3Npbmc9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLEdoKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9I2U9Um4odGhpcyxvLCIiKTtnZXQgaW5pdGlhbEltYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGluaXRpYWxJbWFnZShrKXt0aGlzLiNlPWt9I3Q9KFJuKHRoaXMsbCksUm4odGhpcyxkLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoayl7dGhpcy4jdD1rfSNhPShSbih0aGlzLHUpLFJuKHRoaXMsYiw4MDApKTtnZXQgb3V0cHV0U2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBvdXRwdXRTaXplKGspe3RoaXMuI2E9a30jcz0oUm4odGhpcyx2KSxSbih0aGlzLG0sLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jc31zZXQgb3V0cHV0UXVhbGl0eShrKXt0aGlzLiNzPWt9I2k9KFJuKHRoaXMsZiksUm4odGhpcyxNLCJjcm9wIikpO2dldCBjdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLiNpfXNldCBjdXJyZW50U3RlcChrKXt0aGlzLiNpPWt9I3I9KFJuKHRoaXMseiksUm4odGhpcyxDLCIiKSk7Z2V0IGNyb3BwZWRJbWFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBjcm9wcGVkSW1hZ2Uoayl7dGhpcy4jcj1rfSNvPShSbih0aGlzLF8pLFJuKHRoaXMsJCwhMSkpO2dldCBpc1Byb2Nlc3NpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQcm9jZXNzaW5nKGspe3RoaXMuI289a31jcm9wcGVyPShSbih0aGlzLEUpLG51bGwpO3dpbmRvd0xheWVyO3pJbmRleD0wO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7TmF9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogdmFyKC0tei1pbmRleCk7CiAgICAgIH0KCiAgICAgIC5tb2RhbC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICB3aWR0aDogNDgwcHg7CiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlKDAuOTgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYW5pbWF0aW9uOiBtb2RhbFNob3cgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBtb2RhbFNob3cgewogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogNTJweDsKICAgICAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubW9kYWwtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTBweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsLWJvZHkgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLmNyb3BwZXItY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OwogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNikiLCJpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2UgewogICAgICAgIHdpZHRoOiAxODBweDsKICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSkiLCIwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5zcXVhcmUgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zdWNjZXNzLW1lc3NhZ2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTBiOTgxIiwiIzEwYjk4MSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYW5pbWF0aW9uOiBzdWNjZXNzUHVsc2UgMC40cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzdWNjZXNzUHVsc2UgewogICAgICAgIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgfQogICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDIwcHggMjRweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5pbnN0cnVjdGlvbnMgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIG1heC13aWR0aDogMzIwcHg7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXJnaW46IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy53aW5kb3dMYXllcj1hd2FpdCBoby5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuY2xvc2UoKSksdGhpcy56SW5kZXg9eGEuZ2V0TmV4dFpJbmRleCgpLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tei1pbmRleCIsdGhpcy56SW5kZXgudG9TdHJpbmcoKSkseGEucmVnaXN0ZXIodGhpcyx0aGlzLnpJbmRleCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY3JvcHBlciYmdGhpcy5jcm9wcGVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx4YS51bnJlZ2lzdGVyKHRoaXMpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250YWluZXIiIEBjbGljaz0ke2s9Pmsuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9Im1vZGFsLXRpdGxlIj4KICAgICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiPyJBZGp1c3QgSW1hZ2UiOiJTdWNjZXNzIn0KICAgICAgICAgIDwvaDM+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbG9zZS1idXR0b24iIEBjbGljaz0ke3RoaXMuY2xvc2V9IHRpdGxlPSJDbG9zZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOngiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPgogICAgICAgICAgICAgIFBvc2l0aW9uIGFuZCByZXNpemUgdGhlIHNxdWFyZSB0byBzZWxlY3QgeW91ciBwcm9maWxlIGFyZWEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyb3BwZXItY29udGFpbmVyIiBpZD0iY3JvcHBlckNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgICAgICAke3RoaXMuaXNQcm9jZXNzaW5nP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5TYXZpbmcuLi48L2Rpdj4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8aW1nIAogICAgICAgICAgICAgICAgICBjbGFzcz0icHJldmlldy1pbWFnZSAke3RoaXMuc2hhcGV9IiAKICAgICAgICAgICAgICAgICAgc3JjPSIke3RoaXMuY3JvcHBlZEltYWdlfSIgCiAgICAgICAgICAgICAgICAgIGFsdD0iQ3JvcHBlZCBwcmV2aWV3IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Y2Nlc3MtbWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZWNrIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3Bhbj5Mb29raW5nIGdvb2QhPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5jbG9zZX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDcm9wfT4KICAgICAgICAgICAgICBTYXZlCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIiYmYXdhaXQgdGhpcy5pbml0aWFsaXplQ3JvcHBlcigpfWFzeW5jIGluaXRpYWxpemVDcm9wcGVyKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgaz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNyb3BwZXJDb250YWluZXIiKTtrJiYodGhpcy5jcm9wcGVyPW5ldyBzMWUoe2NvbnRhaW5lcjprLGltYWdlOnRoaXMuaW5pdGlhbEltYWdlLHNoYXBlOnRoaXMuc2hhcGUsYXNwZWN0UmF0aW86MSxvdXRwdXRTaXplOnRoaXMub3V0cHV0U2l6ZSxvdXRwdXRRdWFsaXR5OnRoaXMub3V0cHV0UXVhbGl0eX0pLGF3YWl0IHRoaXMuY3JvcHBlci5pbml0aWFsaXplKCkpfWFzeW5jIGhhbmRsZUNyb3AoKXtpZih0aGlzLmNyb3BwZXIpdHJ5e3RoaXMuaXNQcm9jZXNzaW5nPSEwLHRoaXMuY3VycmVudFN0ZXA9InByZXZpZXciLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IGs9YXdhaXQgdGhpcy5jcm9wcGVyLmdldENyb3BwZWRJbWFnZSgpO3RoaXMuY3JvcHBlZEltYWdlPWssYXdhaXQgbmV3IFByb21pc2UoUz0+c2V0VGltZW91dChTLDgwMCkpLHRoaXMuaXNQcm9jZXNzaW5nPSExLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNhdmUiLHtkZXRhaWw6e2Nyb3BwZWRJbWFnZTp0aGlzLmNyb3BwZWRJbWFnZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5jbG9zZSgpfSwxNTAwKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKCJFcnJvciBjcm9wcGluZyBpbWFnZToiLGspLHRoaXMuaXNQcm9jZXNzaW5nPSExfX1jbG9zZSgpe3RoaXMucmVtb3ZlKCl9c3RhdGlje1JuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBENmEsTDZhPWcoKCk9PntwZSgpO0l0KCk7Zm8oKTtLaXQoKTtENmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0OHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVbc2hhcGU9InJvdW5kIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9PntsZXQgYT10LnRhcmdldDtjb25zb2xlLmxvZygiUm91bmQgcHJvZmlsZSBwaWN0dXJlIGNoYW5nZWQ6IixhLnZhbHVlPy5zdWJzdHJpbmcoMCw1MCkrIi4uLiIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9maWxlIFBpY3R1cmUgSW5wdXQifSAuc3VidGl0bGU9JHsiQmFzaWMgdXNhZ2Ugd2l0aCByb3VuZCBhbmQgc3F1YXJlIHNoYXBlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJQcm9maWxlIFBpY3R1cmUgKFJvdW5kKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRvIHVwbG9hZCBvciBkcmFnICYgZHJvcCBhbiBpbWFnZSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChTcXVhcmUpIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3VwcG9ydHMgSlBFRywgUE5HLCBhbmQgV2ViUCBmb3JtYXRzIgogICAgICAgICAgICBzaGFwZT0ic3F1YXJlIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCByPWEudGFyZ2V0O2NvbnNvbGUubG9nKGBQcm9maWxlIChzaXplICR7ci5zaXplfSkgY2hhbmdlZGApfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNpemUgVmFyaWF0aW9ucyJ9IC5zdWJ0aXRsZT0keyJQcm9maWxlIHBpY3R1cmVzIGluIGRpZmZlcmVudCBzaXplcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJTbWFsbCAoODBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iODAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTWVkaXVtICgxMjBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IkxhcmdlICgxNjBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTYwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLSUNBOFpHVm1jejRLSUNBZ0lEeHNhVzVsWVhKSGNtRmthV1Z1ZENCcFpEMGlaM0poWkdsbGJuUWlJSGd4UFNJd0pTSWdlVEU5SWpBbElpQjRNajBpTVRBd0pTSWdlVEk5SWpFd01DVWlQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpBbElpQnpkRzl3TFdOdmJHOXlQU0lqTmpZM1pXVmhJaUF2UGdvZ0lDQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTTNOalJpWVRJaUlDOCtDaUFnSUNBOEwyeHBibVZoY2tkeVlXUnBaVzUwUGdvZ0lEd3ZaR1ZtY3o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnWm1sc2JEMGlkWEpzS0NObmNtRmthV1Z1ZENraUlDOCtDaUFnUEhSbGVIUWdlRDBpTlRBbElpQjVQU0kxTUNVaUlHUnZiV2x1WVc1MExXSmhjMlZzYVc1bFBTSnRhV1JrYkdVaUlIUmxlSFF0WVc1amFHOXlQU0p0YVdSa2JHVWlJR1p2Ym5RdFptRnRhV3g1UFNKQmNtbGhiQ0lnWm05dWRDMXphWHBsUFNJNE1DSWdabWxzYkQwaWQyaHBkR1VpUGtwRVBDOTBaWGgwUGdvOEwzTjJaejQ9Iix0PXMucXVlcnlTZWxlY3RvcigiI3ByZWZpbGxlZC1wcm9maWxlIik7dCYmKHQudmFsdWU9ZSx0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldCxuPXMucXVlcnlTZWxlY3RvcigiI3ByZWZpbGxlZC1vdXRwdXQiKTtuJiYobi50ZXh0Q29udGVudD1yLnZhbHVlP2BJbWFnZSBkYXRhOiAke3IudmFsdWUuc3Vic3RyaW5nKDAsODApfS4uLmA6Ik5vIGltYWdlIHNlbGVjdGVkIil9KSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcmUtZmlsbGVkIGFuZCBWYWx1ZSBCaW5kaW5nIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZSB3aXRoIGluaXRpYWwgdmFsdWUgYW5kIGNoYW5nZSB0cmFja2luZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICBpZD0icHJlZmlsbGVkLXByb2ZpbGUiCiAgICAgICAgICBsYWJlbD0iRWRpdCBFeGlzdGluZyBQcm9maWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRoZSBlZGl0IGJ1dHRvbiB0byBjaGFuZ2Ugb3IgZGVsZXRlIHRvIHJlbW92ZSIKICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgIHNpemU9IjE1MCIKICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InByZWZpbGxlZC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICBJbWFnZSBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBjaGFuZ2VkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZWQtcHJvZmlsZSIpO2UmJihlLnZhbHVlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0iKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUmVxdWlyZWQgRmllbGQiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgaWQ9ImRpc2FibGVkLXByb2ZpbGUiCiAgICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBTdGF0ZSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlVwbG9hZCBPbmx5IgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iRGVsZXRlIG5vdCBhbGxvd2VkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZmVhdHVyZSBzZXQgb2YgdGhlIHByb2ZpbGUgcGljdHVyZSBpbnB1dCJ9PgogICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIFVwbG9hZDo8L3N0cm9uZz4gQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGltYWdlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2hhcGUgU3VwcG9ydDo8L3N0cm9uZz4gUm91bmQgb3Igc3F1YXJlIHByb2ZpbGUgcGljdHVyZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2l6ZSBDdXN0b21pemF0aW9uOjwvc3Ryb25nPiBBZGp1c3RhYmxlIGRpbWVuc2lvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5GaWxlIFZhbGlkYXRpb246PC9zdHJvbmc+IEZvcm1hdCBhbmQgc2l6ZSByZXN0cmljdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBEZXNpZ246PC9zdHJvbmc+IFdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZSBkZXZpY2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5Ojwvc3Ryb25nPiBLZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBzY3JlZW4gcmVhZGVyIHN1cHBvcnQ8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Wi1JbmRleCBNYW5hZ2VtZW50Ojwvc3Ryb25nPiBQcm9wZXIgbW9kYWwgc3RhY2tpbmcgd2l0aCByZWdpc3RyeTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8c3Ryb25nPlN1cHBvcnRlZCBGb3JtYXRzOjwvc3Ryb25nPiBKUEVHLCBQTkcsIFdlYlA8YnI+CiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj4KICAgICAgICAgIDxzdHJvbmc+T3V0cHV0IEZvcm1hdDo8L3N0cm9uZz4gQmFzZTY0IGVuY29kZWQgSlBFRwogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgRGwsWHMsRTZhLEtpdD1nKCgpPT57cGUoKTt6aSgpO1VhKCk7bHYoKTskNmEoKTtMNmEoKTtwdCgpO0RsPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxYcz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRTZhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpXSxlLHQ9W10sYSxyPU90LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXTt2YXIgaWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFByb2ZpbGVQaWN0dXJlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHRlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0sTz1bTCh7dHlwZTpOdW1iZXJ9KV0sSD1bTCh7dHlwZTpBcnJheX0pXSxJPVtMKHt0eXBlOk51bWJlcn0pXSxLPVtMKHt0eXBlOk51bWJlcn0pXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxEbCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4idmFsdWUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnZhbHVlPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxvLGwpLERsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzaGFwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNoYXBlLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuc2hhcGU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGQsdSksRGwodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNpemUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5zaXplPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxiLHYpLERsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJwbGFjZWhvbGRlciJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUucGxhY2Vob2xkZXI9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LG0sZiksRGwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd1VwbG9hZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImFsbG93VXBsb2FkImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYWxsb3dVcGxvYWQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5hbGxvd1VwbG9hZD1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sTSx6KSxEbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYWxsb3dEZWxldGUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5hbGxvd0RlbGV0ZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmFsbG93RGVsZXRlPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxDLF8pLERsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJtYXhGaWxlU2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm1heEZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUubWF4RmlsZVNpemU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LCQsRSksRGwodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY2NlcHRlZEZvcm1hdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJhY2NlcHRlZEZvcm1hdHMiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5hY2NlcHRlZEZvcm1hdHMsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5hY2NlcHRlZEZvcm1hdHM9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGssUyksRGwodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ib3V0cHV0U2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm91dHB1dFNpemUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5vdXRwdXRTaXplPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxQLFIpLERsKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im91dHB1dFF1YWxpdHkiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5vdXRwdXRRdWFsaXR5LCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub3V0cHV0UXVhbGl0eT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sVixXKSxEbCh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJpc0hvdmVyZWQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5pc0hvdmVyZWQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5pc0hvdmVyZWQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEIsVSksRGwodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImlzRHJhZ2dpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5pc0RyYWdnaW5nLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaXNEcmFnZ2luZz1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sRixqKSxEbCh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJpc0xvYWRpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5pc0xvYWRpbmcsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5pc0xvYWRpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGxlLFEpLERsKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnRlfSxudWxsLHQpLGllPWE9ZS52YWx1ZSx0ZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0ZX0pfXN0YXRpYyBkZW1vPUQ2YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WHModGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUodGUpe3RoaXMuI2U9dGV9I3Q9KFhzKHRoaXMsbCksWHModGhpcyxkLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUodGUpe3RoaXMuI3Q9dGV9I2E9KFhzKHRoaXMsdSksWHModGhpcyxiLDEyMCkpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNpemUodGUpe3RoaXMuI2E9dGV9I3M9KFhzKHRoaXMsdiksWHModGhpcyxtLCIiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBsYWNlaG9sZGVyKHRlKXt0aGlzLiNzPXRlfSNpPShYcyh0aGlzLGYpLFhzKHRoaXMsTSwhMCkpO2dldCBhbGxvd1VwbG9hZCgpe3JldHVybiB0aGlzLiNpfXNldCBhbGxvd1VwbG9hZCh0ZSl7dGhpcy4jaT10ZX0jcj0oWHModGhpcyx6KSxYcyh0aGlzLEMsITApKTtnZXQgYWxsb3dEZWxldGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYWxsb3dEZWxldGUodGUpe3RoaXMuI3I9dGV9I289KFhzKHRoaXMsXyksWHModGhpcywkLDUqMTAyNCoxMDI0KSk7Z2V0IG1heEZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heEZpbGVTaXplKHRlKXt0aGlzLiNvPXRlfSNuPShYcyh0aGlzLEUpLFhzKHRoaXMsayxbImltYWdlL2pwZWciLCJpbWFnZS9wbmciLCJpbWFnZS93ZWJwIl0pKTtnZXQgYWNjZXB0ZWRGb3JtYXRzKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjY2VwdGVkRm9ybWF0cyh0ZSl7dGhpcy4jbj10ZX0jbD0oWHModGhpcyxTKSxYcyh0aGlzLFAsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb3V0cHV0U2l6ZSh0ZSl7dGhpcy4jbD10ZX0jYz0oWHModGhpcyxSKSxYcyh0aGlzLFYsLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jY31zZXQgb3V0cHV0UXVhbGl0eSh0ZSl7dGhpcy4jYz10ZX0jZD0oWHModGhpcyxXKSxYcyh0aGlzLEIsITEpKTtnZXQgaXNIb3ZlcmVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSG92ZXJlZCh0ZSl7dGhpcy4jZD10ZX0jdT0oWHModGhpcyxVKSxYcyh0aGlzLEYsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiN1fXNldCBpc0RyYWdnaW5nKHRlKXt0aGlzLiN1PXRlfSNwPShYcyh0aGlzLGopLFhzKHRoaXMsbGUsITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGlzTG9hZGluZyh0ZSl7dGhpcy4jcD10ZX1tb2RhbEluc3RhbmNlPShYcyh0aGlzLFEpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0hlLC4uLk90LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmRyYWdnaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgLm92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuOTUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC45KSIsInJnYmEoMjIwLCAzOCwgMzgsIDAuOSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2RjMjYyNiIpfTsKICAgICAgfQoKICAgICAgLmRyb3Atem9uZS10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmhpZGRlbi1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBhbmltYXRpb24gKi8KICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuY2xpY2tpbmcgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICAKICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30KICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuaGFuZGxlRHJhZ092ZXJ9CiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9CiAgICAgICAgICBAZHJvcD0ke3RoaXMuaGFuZGxlRHJvcH0KICAgICAgICAgIHN0eWxlPSItLXNpemU6ICR7dGhpcy5zaXplfXB4IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcGljdHVyZSAke3RoaXMuc2hhcGV9ICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9ICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlPyJjbGlja2luZyI6IiJ9Ij4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGltZyBjbGFzcz0icHJvZmlsZS1pbWFnZSIgc3JjPSIke3RoaXMudmFsdWV9IiBhbHQ9IlByb2ZpbGUgcGljdHVyZSIgLz4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InBsYWNlaG9sZGVyLWljb24iIGljb249Imx1Y2lkZTp1c2VyIiBpY29uU2l6ZT0iJHt0aGlzLnNpemUqLjV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0RyYWdnaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgc3R5bGU9Im9wYWNpdHk6IDEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcC16b25lLXRleHQiPgogICAgICAgICAgICAgICAgICBEcm9wIGltYWdlIGhlcmUKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLnZhbHVlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93VXBsb2FkP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24iIEBjbGljaz0ke3RlPT57dGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuTW9kYWwoKX19IHRpdGxlPSJDaGFuZ2UgcGljdHVyZSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpwZW5jaWwiIGljb25TaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd0RlbGV0ZT93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im92ZXJsYXktYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7dGU9Pnt0ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRlbGV0ZVBpY3R1cmUoKX19IHRpdGxlPSJEZWxldGUgcGljdHVyZSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp0cmFzaDIiIGljb25TaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5IHNob3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxpbnB1dAogICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgIGNsYXNzPSJoaWRkZW4taW5wdXQiCiAgICAgICAgICBhY2NlcHQ9IiR7dGhpcy5hY2NlcHRlZEZvcm1hdHMuam9pbigiLCIpfSIKICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgLz4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNsaWNrKCl7aWYoISh0aGlzLmRpc2FibGVkfHwhdGhpcy5hbGxvd1VwbG9hZCkmJiF0aGlzLnZhbHVlKXt0aGlzLmlzTG9hZGluZz0hMDtsZXQgdGU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5oaWRkZW4taW5wdXQiKSxlZT1pKCgpPT57c2V0VGltZW91dCgoKT0+eyghdGUuZmlsZXN8fHRlLmZpbGVzLmxlbmd0aD09PTApJiYodGhpcy5pc0xvYWRpbmc9ITEpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsZWUpfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGVlKSx0ZS5jbGljaygpfX1oYW5kbGVGaWxlU2VsZWN0KHRlKXtsZXQgZWU9dGUudGFyZ2V0LGtlPWVlLmZpbGVzPy5bMF07dGhpcy5pc0xvYWRpbmc9ITEsa2UmJnRoaXMucHJvY2Vzc0ZpbGUoa2UpLGVlLnZhbHVlPSIifWhhbmRsZURyYWdPdmVyKHRlKXt0ZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRpc2FibGVkJiZ0aGlzLmFsbG93VXBsb2FkJiYodGhpcy5pc0RyYWdnaW5nPSEwKX1oYW5kbGVEcmFnTGVhdmUoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRHJvcCh0ZSl7aWYodGUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITEsdGhpcy5kaXNhYmxlZHx8IXRoaXMuYWxsb3dVcGxvYWQpcmV0dXJuO2xldCBlZT10ZS5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO2VlJiZ0aGlzLnByb2Nlc3NGaWxlKGVlKX1hc3luYyBwcm9jZXNzRmlsZSh0ZSl7aWYoIXRoaXMuYWNjZXB0ZWRGb3JtYXRzLmluY2x1ZGVzKHRlLnR5cGUpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLHRlLnR5cGUpO3JldHVybn1pZih0ZS5zaXplPnRoaXMubWF4RmlsZVNpemUpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlOiIsdGUuc2l6ZSk7cmV0dXJufWxldCBlZT1uZXcgRmlsZVJlYWRlcjtlZS5vbmxvYWQ9YXN5bmMga2U9PntsZXQgWD1rZS50YXJnZXQ/LnJlc3VsdDthd2FpdCB0aGlzLm9wZW5Nb2RhbChYKX0sZWUucmVhZEFzRGF0YVVSTCh0ZSl9YXN5bmMgb3Blbk1vZGFsKHRlKXtsZXQgZWU9dGV8fHRoaXMudmFsdWU7aWYoIWVlKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmhpZGRlbi1pbnB1dCIpLmNsaWNrKCk7cmV0dXJufXRoaXMubW9kYWxJbnN0YW5jZT1uZXcgR2l0LHRoaXMubW9kYWxJbnN0YW5jZS5zaGFwZT10aGlzLnNoYXBlLHRoaXMubW9kYWxJbnN0YW5jZS5pbml0aWFsSW1hZ2U9ZWUsdGhpcy5tb2RhbEluc3RhbmNlLm91dHB1dFNpemU9dGhpcy5vdXRwdXRTaXplLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRRdWFsaXR5PXRoaXMub3V0cHV0UXVhbGl0eSx0aGlzLm1vZGFsSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigic2F2ZSIsKGtlPT57dGhpcy52YWx1ZT1rZS5kZXRhaWwuY3JvcHBlZEltYWdlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5tb2RhbEluc3RhbmNlKX1kZWxldGVQaWN0dXJlKCl7dGhpcy52YWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHRlKXt0aGlzLnZhbHVlPXRlfXN0YXRpY3tYcyhhLHQpfX07cmV0dXJuIGllPWF9KSgpfSk7dmFyIFA2YT1nKCgpPT57ZjZhKCk7dml0KCk7bTZhKCk7aG5lKCk7eGl0KCk7VWV0KCk7ZzZhKCk7YjZhKCk7djZhKCk7eDZhKCk7eTZhKCk7dzZhKCk7azZhKCk7XzZhKCk7eWl0KCk7Yml0KCk7TTZhKCk7ejZhKCk7QzZhKCk7S2l0KCl9KTt2YXIgSTZhLEE2YT1nKCgpPT57cGUoKTtJNmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtb0NvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob24tU2VsZWN0YWJsZSBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5CYXNpYyBjaGlwcyB3aXRob3V0IHNlbGVjdGlvbiBjYXBhYmlsaXR5LiBVc2UgZm9yIGRpc3BsYXktb25seSB0YWdzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im5vbmUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJzdGF0dXMiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJ0aWVyIix2YWx1ZToiUHJlbWl1bSJ9LHtrZXk6InJlZ2lvbiIsdmFsdWU6IkVVLVdlc3QifSx7a2V5OiJ0eXBlIix2YWx1ZToiRW50ZXJwcmlzZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2luZ2xlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DbGljayB0byBzZWxlY3Qgb25lIGNoaXAgYXQgYSB0aW1lLiBVc2VmdWwgZm9yIGZpbHRlcnMgYW5kIG9wdGlvbnMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiYWxsIix2YWx1ZToiQWxsIFByb2plY3RzIn0se2tleToiYWN0aXZlIix2YWx1ZToiQWN0aXZlIn0se2tleToiYXJjaGl2ZWQiLHZhbHVlOiJBcmNoaXZlZCJ9LHtrZXk6ImRyYWZ0cyIsdmFsdWU6IkRyYWZ0cyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGlwbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBtdWx0aXBsZSBjaGlwcyBzaW11bHRhbmVvdXNseS4gR3JlYXQgZm9yIHRhZyBzZWxlY3Rpb24uPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJqcyIsdmFsdWU6IkphdmFTY3JpcHQifSx7a2V5OiJ0cyIsdmFsdWU6IlR5cGVTY3JpcHQifSx7a2V5OiJyZWFjdCIsdmFsdWU6IlJlYWN0In0se2tleToidnVlIix2YWx1ZToiVnVlIn0se2tleToiYW5ndWxhciIsdmFsdWU6IkFuZ3VsYXIifSx7a2V5OiJub2RlIix2YWx1ZToiTm9kZS5qcyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmVtb3ZhYmxlIENoaXBzIHdpdGggS2V5czwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DaGlwcyB3aXRoIHJlbW92ZSBidXR0b25zIGFuZCBrZXktdmFsdWUgcGFpcnMuIFBlcmZlY3QgZm9yIGR5bmFtaWMgbGlzdHMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJlbnYiLHZhbHVlOiJQcm9kdWN0aW9uIn0se2tleToidmVyc2lvbiIsdmFsdWU6IjIuNC4xIn0se2tleToiYnJhbmNoIix2YWx1ZToibWFpbiJ9LHtrZXk6ImF1dGhvciIsdmFsdWU6IkpvaG4gRG9lIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaXhlZCBDb250ZW50IEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29tYmluaW5nIGRpZmZlcmVudCBjaGlwIHR5cGVzIGZvciBjb21wbGV4IFVJcy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToicHJpb3JpdHkiLHZhbHVlOiJIaWdoIn0se2tleToic3RhdHVzIix2YWx1ZToiSW4gUHJvZ3Jlc3MifSx7a2V5OiJidWciLHZhbHVlOiJCdWcifSx7a2V5OiJmZWF0dXJlIix2YWx1ZToiRmVhdHVyZSJ9LHtrZXk6InNwcmludCIsdmFsdWU6IlNwcmludCAyMyJ9LHtrZXk6ImFzc2lnbmVlIix2YWx1ZToiQWxpY2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB0eCxkMixONmEsUjZhPWcoKCk9PntwZSgpO2t0KCk7QTZhKCk7cHQoKTt0eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZDI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE42YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hpcHMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoaXBzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpBcnJheX0pXSx4PVtMKCldLHk9W0woe3R5cGU6QXJyYXl9KV0sdHgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3Rpb25Nb2RlImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VsZWN0aW9uTW9kZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGlvbk1vZGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHR4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hpcHNBcmVSZW1vdmFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImNoaXBzQXJlUmVtb3ZhYmxlImluIF8sImhhcyIpLGdldDppKF89Pl8uY2hpcHNBcmVSZW1vdmFibGUsImdldCIpLHNldDppKChfLE8pPT57Xy5jaGlwc0FyZVJlbW92YWJsZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksdHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RhYmxlQ2hpcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlbGVjdGFibGVDaGlwcyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGFibGVDaGlwcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGFibGVDaGlwcz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksdHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlbGVjdGVkQ2hpcCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkQ2hpcCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkQ2hpcD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksdHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZENoaXBzImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VsZWN0ZWRDaGlwcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkQ2hpcHM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLHR4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89STZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9ZDIodGhpcyxvLCJzaW5nbGUiKTtnZXQgc2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZWxlY3Rpb25Nb2RlKEMpe3RoaXMuI2U9Q30jdD0oZDIodGhpcyxsKSxkMih0aGlzLGQsITEpKTtnZXQgY2hpcHNBcmVSZW1vdmFibGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2hpcHNBcmVSZW1vdmFibGUoQyl7dGhpcy4jdD1DfSNhPShkMih0aGlzLHUpLGQyKHRoaXMsYixbXSkpO2dldCBzZWxlY3RhYmxlQ2hpcHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0YWJsZUNoaXBzKEMpe3RoaXMuI2E9Q30jcz0oZDIodGhpcyx2KSxkMih0aGlzLG0sbnVsbCkpO2dldCBzZWxlY3RlZENoaXAoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2VsZWN0ZWRDaGlwKEMpe3RoaXMuI3M9Q30jaT0oZDIodGhpcyxmKSxkMih0aGlzLE0sW10pKTtnZXQgc2VsZWN0ZWRDaGlwcygpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZENoaXBzKEMpe3RoaXMuI2k9Q31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksZDIodGhpcyx6KX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAuY2hpcDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY2hpcDphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgICAgICBwYWRkaW5nOiAwcHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICB9CgogICAgICBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMuc2VsZWN0YWJsZUNoaXBzLm1hcChDPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0Q2hpcChDKX0KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuaXNTZWxlY3RlZChDKT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7Qy5rZXk/d2A8ZGl2IGNsYXNzPSJjaGlwS2V5Ij4ke0Mua2V5fTwvZGl2PmA6d2BgfSAke0MudmFsdWV9CiAgICAgICAgICAgICAgJHt0aGlzLmNoaXBzQXJlUmVtb3ZhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7Xz0+e18uc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVDaGlwKEMpfX0KICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ImZhOnhtYXJrIn0KICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWlzU2VsZWN0ZWQoQyl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuc2VsZWN0ZWRDaGlwP3RoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCxDKTohMTp0aGlzLnNlbGVjdGVkQ2hpcHMuc29tZShfPT50aGlzLmlzU2FtZUNoaXAoXyxDKSl9aXNTYW1lQ2hpcChDLF8pe3JldHVybihDLmtleSYmXy5rZXl8fEMudmFsdWU9PT1fLnZhbHVlKSYmQy5rZXk9PT1fLmtleX1hc3luYyBzZWxlY3RDaGlwKEMpe3RoaXMuc2VsZWN0aW9uTW9kZSE9PSJub25lIiYmKHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuaXNTZWxlY3RlZChDKT8odGhpcy5zZWxlY3RlZENoaXA9bnVsbCx0aGlzLnNlbGVjdGVkQ2hpcHM9W10pOih0aGlzLnNlbGVjdGVkQ2hpcD1DLHRoaXMuc2VsZWN0ZWRDaGlwcz1bQ10pOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aXBsZSImJih0aGlzLmlzU2VsZWN0ZWQoQyk/dGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoXz0+IXRoaXMuaXNTYW1lQ2hpcChfLEMpKTp0aGlzLnNlbGVjdGVkQ2hpcHM9Wy4uLnRoaXMuc2VsZWN0ZWRDaGlwcyxDXSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksY29uc29sZS5sb2codGhpcy5zZWxlY3RlZENoaXBzKSl9cmVtb3ZlQ2hpcChDKXt0aGlzLnNlbGVjdGFibGVDaGlwcz10aGlzLnNlbGVjdGFibGVDaGlwcy5maWx0ZXIoXz0+IXRoaXMuaXNTYW1lQ2hpcChfLEMpKSx0aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcihfPT4hdGhpcy5pc1NhbWVDaGlwKF8sQykpLHRoaXMuc2VsZWN0ZWRDaGlwJiZ0aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsQykmJih0aGlzLnNlbGVjdGVkQ2hpcD1udWxsKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7ZDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIE82YT1nKCgpPT57UjZhKCl9KTt2YXIgRjZhLEI2YT1nKCgpPT57cGUoKTtJdCgpO0Y2YT1pKCgpPT53YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZEdyaWQiKSx0PVt7aWQ6Im1ldHJpY3MxIix4OjAseTowLHc6MyxoOjIsdGl0bGU6IlJldmVudWUiLGljb246Imx1Y2lkZTpkb2xsYXJTaWduIixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4kMTI0LDU2MzwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjMjJjNTVlOyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSAxMi41JSBmcm9tIGxhc3QgbW9udGg8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6Im1ldHJpY3MyIix4OjMseTowLHc6MyxoOjIsdGl0bGU6IlVzZXJzIixpY29uOiJsdWNpZGU6dXNlcnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPjgsMjM0PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMzYjgyZjY7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDUuMiUgZnJvbSBsYXN0IHdlZWs8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6ImNoYXJ0MSIseDo2LHk6MCx3OjYsaDo0LHRpdGxlOiJBbmFseXRpY3MiLGljb246Imx1Y2lkZTpsaW5lQ2hhcnQiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxpbmVDaGFydCJ9IHN0eWxlPSJmb250LXNpemU6IDQ4cHg7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXY+Q2hhcnQgdmlzdWFsaXphdGlvbiBhcmVhPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH1dO2Uud2lkZ2V0cz10Lm1hcCh5PT4oey4uLnl9KSksZS5jZWxsSGVpZ2h0PTgwLGUubWFyZ2luPXt0b3A6MTAscmlnaHQ6MTAsYm90dG9tOjEwLGxlZnQ6MTB9LGUuZW5hYmxlQW5pbWF0aW9uPSEwLGUuc2hvd0dyaWRMaW5lcz0hMTtsZXQgYT1lLmdldExheW91dCgpLm1hcCh5PT4oey4uLnl9KSkscj1lLndpZGdldHMubWFwKCh5LE0pPT4oe2lkOnkuaWQseDowLHk6TT09PTA/MDplLndpZGdldHMuc2xpY2UoMCxNKS5yZWR1Y2UoKHosTik9PnorTi5oLDApLHc6ZS5jb2x1bW5zLGg6eS5ofSkpO2UubGF5b3V0cz17YmFzZTphLG1vYmlsZTpyfTtsZXQgbj1zLnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRMYXlvdXRTdGF0dXMiKSxvPWkoKCk9PntsZXQgeT1lLmdldExheW91dCgpO24udGV4dENvbnRlbnQ9YEFjdGl2ZSBicmVha3BvaW50OiAke2UuYWN0aXZlQnJlYWtwb2ludH0gXHUyMDIyIFRpbGVzOiAke3kubGVuZ3RofWB9LCJ1cGRhdGVTdGF0dXMiKSxsPXdpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3NjhweCkiKSxwPWkoKCk9PntsZXQgeT1sLm1hdGNoZXM/Im1vYmlsZSI6ImJhc2UiO2UuYXBwbHlCcmVha3BvaW50TGF5b3V0KHkpLG8oKX0sImhhbmRsZUJyZWFrcG9pbnQiKTt0eXBlb2YgbC5hZGRFdmVudExpc3RlbmVyPT0iZnVuY3Rpb24iP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixwKTpsLmFkZExpc3RlbmVyPy4ocCkscCgpO2xldCBkPTQ7cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goeT0+e3N3aXRjaCh5LnRleHQ/LnRyaW0oKSl7Y2FzZSJUb2dnbGUgQW5pbWF0aW9uIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZW5hYmxlQW5pbWF0aW9uPSFlLmVuYWJsZUFuaW1hdGlvbn0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEdyaWQgTGluZXMiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5zaG93R3JpZExpbmVzPSFlLnNob3dHcmlkTGluZXN9KTticmVhaztjYXNlIkFkZCBXaWRnZXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IHo9e2lkOmB3aWRnZXQke2QrK31gLHg6MCx5OjAsdzozLGg6MixhdXRvUG9zaXRpb246ITAsdGl0bGU6YFdpZGdldCAke2QtMX1gLGljb246Imx1Y2lkZTpwYWNrYWdlIixjb250ZW50OndgCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjNzE3MTdhOyI+TmV3IHdpZGdldCBjb250ZW50PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyBmb250LXNpemU6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpfTwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9O2UuYWRkV2lkZ2V0KHosITApfSk7YnJlYWs7Y2FzZSJDb21wYWN0IEdyaWQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5jb21wYWN0KCl9KTticmVhaztjYXNlIlRvZ2dsZSBFZGl0IE1vZGUiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5lZGl0YWJsZT0hZS5lZGl0YWJsZSx5LnRleHQ9ZS5lZGl0YWJsZT8iTG9jayBHcmlkIjoiVW5sb2NrIEdyaWQifSk7YnJlYWs7Y2FzZSJSZXNldCBMYXlvdXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQoZS5hY3RpdmVCcmVha3BvaW50KX0pO2JyZWFrO2RlZmF1bHQ6YnJlYWt9fSk7bGV0IGM9bnVsbCxiPTAsdj1pKCh5LE0pPT57bGV0IHo9ZS5nZXRMYXlvdXQoKTtjb25zb2xlLmdyb3VwKGBcdXsxRjUwNH0gJHt5fSBbRXZlbnQgIyR7KytifV1gKSxjb25zb2xlLmxvZygiVGltZXN0YW1wOiIsbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxjb25zb2xlLmxvZygiR3JpZCBDb25maWd1cmF0aW9uOiIse2NvbHVtbnM6ZS5jb2x1bW5zLGNlbGxIZWlnaHQ6ZS5jZWxsSGVpZ2h0LG1hcmdpbjplLm1hcmdpbixlZGl0YWJsZTplLmVkaXRhYmxlLGFjdGl2ZUJyZWFrcG9pbnQ6ZS5hY3RpdmVCcmVha3BvaW50fSksY29uc29sZS5sb2coIkN1cnJlbnQgTGF5b3V0OiIseiksY29uc29sZS5sb2coIldpZGdldCBDb3VudDoiLHoubGVuZ3RoKSxjb25zb2xlLmxvZygiR3JpZCBCb3VuZHM6Iix7dG90YWxXaWRnZXRzOmUud2lkZ2V0cy5sZW5ndGgsbWF4WTpNYXRoLm1heCguLi56Lm1hcChOPT5OLnkrTi5oKSksb2NjdXBpZWQ6ei5tYXAoTj0+YCR7Ti5pZH06ICgke04ueH0sJHtOLnl9KSAke04ud314JHtOLmh9YCkuam9pbigiLCAiKX0pLE0mJmNvbnNvbGUubG9nKCJFdmVudCBEZXRhaWxzOiIsTSksY29uc29sZS5ncm91cEVuZCgpfSwibG9nR3JpZFN0YXRlIikseD1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e2xldCB5PWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnBsYWNlaG9sZGVyIik7aWYoeSl7bGV0IE09e2xlZnQ6eS5zdHlsZS5sZWZ0LHRvcDp5LnN0eWxlLnRvcCx3aWR0aDp5LnN0eWxlLndpZHRoLGhlaWdodDp5LnN0eWxlLmhlaWdodH07aWYoSlNPTi5zdHJpbmdpZnkoTSkhPT1KU09OLnN0cmluZ2lmeShjKSl7Y29uc29sZS5ncm91cCgiXHV7MUY0Q0R9IFBsYWNlaG9sZGVyIFBvc2l0aW9uIENoYW5nZWQiKSxjb25zb2xlLmxvZygiUHJldmlvdXM6IixjKSxjb25zb2xlLmxvZygiQ3VycmVudDoiLE0pO2xldCB6PWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmdyaWQtY29udGFpbmVyIik7eiYmY29uc29sZS5sb2coIkdyaWQgQ29udGFpbmVyIERpbWVuc2lvbnM6Iix7d2lkdGg6ei5jbGllbnRXaWR0aCxoZWlnaHQ6ei5jbGllbnRIZWlnaHR9KSxjb25zb2xlLmdyb3VwRW5kKCksYz1NfX19KTtlLnNoYWRvd1Jvb3QmJngub2JzZXJ2ZShlLnNoYWRvd1Jvb3Qse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsic3R5bGUiXX0pLHYoIkluaXRpYWwgR3JpZCBTdGF0ZSIpLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LW1vdmUiLHk9PntsZXQgTT15LmRldGFpbDt2KCJXaWRnZXQgTW92ZSIse3dpZGdldDpNLndpZGdldCxkaXNwbGFjZWQ6TS5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6TS5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVzaXplIix5PT57bGV0IE09eS5kZXRhaWw7digiV2lkZ2V0IFJlc2l6ZSIse3dpZGdldDpNLndpZGdldCxkaXNwbGFjZWQ6TS5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6TS5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVtb3ZlIix5PT57bGV0IE09eS5kZXRhaWw7digiV2lkZ2V0IFJlbW92ZSIse3JlbW92ZWRXaWRnZXQ6TS53aWRnZXR9KSxvKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImxheW91dC1jaGFuZ2UiLCgpPT57digiTGF5b3V0IENoYW5nZSIpLG8oKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHk9PntsZXQgTT15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0LWhlYWRlciIpLHo9eS50YXJnZXQuY2xvc2VzdCgiLnJlc2l6ZS1oYW5kbGUiKTtpZihNfHx6KXtjb25zb2xlLmdyb3VwKGBcdXsxRjNBRn0gSW50ZXJhY3Rpb24gU3RhcnRlZDogJHtNPyJEcmFnIjoiUmVzaXplIn1gKSxjb25zb2xlLmxvZygiVGFyZ2V0IFdpZGdldDoiLHkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpKSxjb25zb2xlLmxvZygiUG9pbnRlciBQb3NpdGlvbjoiLHt4OnkuY2xpZW50WCx5OnkuY2xpZW50WX0pLGNvbnNvbGUuZ3JvdXBFbmQoKTtsZXQgTj1pKF89PntsZXQgTz15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik7TyYmY29uc29sZS5sb2coIlx1MjE5NFx1RkUwRiBQb2ludGVyIE1vdmU6Iix7d2lkZ2V0SWQ6Ty5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikscG9zaXRpb246e3g6Xy5jbGllbnRYLHk6Xy5jbGllbnRZfSxkZWx0YTp7eDpfLmNsaWVudFgteS5jbGllbnRYLHk6Xy5jbGllbnRZLXkuY2xpZW50WX19KX0sImhhbmRsZVBvaW50ZXJNb3ZlIiksQz1pKCgpPT57Y29uc29sZS5ncm91cCgiXHV7MUYzQzF9IEludGVyYWN0aW9uIEVuZGVkIiksdigiRmluYWwgU3RhdGUgQWZ0ZXIgSW50ZXJhY3Rpb24iKSxjb25zb2xlLmdyb3VwRW5kKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLE4pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsQyl9LCJoYW5kbGVQb2ludGVyVXAiKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTiksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixDKX19KTtsZXQgbT1lLmFkZFdpZGdldC5iaW5kKGUpO2UuYWRkV2lkZ2V0PSh5LE0pPT57Y29uc29sZS5ncm91cCgiXHUyNzk1IEFkZGluZyBXaWRnZXQiKSxjb25zb2xlLmxvZygiTmV3IFdpZGdldDoiLHkpLGNvbnNvbGUubG9nKCJBdXRvIFBvc2l0aW9uOiIsTSk7bGV0IHo9bSh5LE0pO3JldHVybiB2KCJBZnRlciBXaWRnZXQgQWRkZWQiKSxjb25zb2xlLmdyb3VwRW5kKCksen07bGV0IGY9ZS5jb21wYWN0LmJpbmQoZSk7ZS5jb21wYWN0PXk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjVEQ31cdUZFMEYgQ29tcGFjdGluZyBHcmlkIiksY29uc29sZS5sb2coIkRpcmVjdGlvbjoiLHl8fCJ2ZXJ0aWNhbCIpLHYoIkJlZm9yZSBDb21wYWN0Iik7bGV0IE09Zih5KTtyZXR1cm4gdigiQWZ0ZXIgQ29tcGFjdCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxNfSxvKCl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIGRlZXMtYnV0dG9uIHsKICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICB9CgogICAgICAgICAgLmdyaWQtY29udGFpbmVyLXdyYXBwZXIgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQoKICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQoKICAgICAgICAgICNkYXNoYm9hcmRMYXlvdXRTdGF0dXMgewogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBbmltYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBBbmltYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRpc3BsYXk6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBHcmlkIExpbmVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgV2lkZ2V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNvbXBhY3QgR3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXNldCBMYXlvdXQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9Ik1vZGU6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBFZGl0IE1vZGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jb250YWluZXItd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1kYXNoYm9hcmRncmlkIGlkPSJkYXNoYm9hcmRHcmlkIj48L2RlZXMtZGFzaGJvYXJkZ3JpZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICA8ZGl2PkRyYWcgdG8gcmVwb3NpdGlvbiwgcmVzaXplIGZyb20gaGFuZGxlcywgb3IgcmlnaHQtY2xpY2sgYSBoZWFkZXIgdG8gZGVsZXRlIGEgdGlsZS48L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRhc2hib2FyZExheW91dFN0YXR1cyI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgSDZhLHE2YT1nKCgpPT57cGUoKTtINmE9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmdyaWQtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtlbmFibGVhbmltYXRpb25dKSAuZ3JpZC13aWRnZXQgewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyB7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC13aWRnZXQucGxhY2Vob2xkZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5yZXNpemluZyB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSIsIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldDpob3ZlciAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC40KSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LmRyYWdnaW5nIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC4yNSkiLCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNikiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgICBjdXJzb3I6IGdyYWI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyOmFjdGl2ZSB7CiAgICAgICAgY3Vyc29yOiBncmFiYmluZzsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIubG9ja2VkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWJvZHkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5Lmhhcy1oZWFkZXIgewogICAgICAgIHRvcDogNDVweDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWUgewogICAgICAgIGN1cnNvcjogZXctcmVzaXplOwogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIHJpZ2h0OiAtNnB4OwogICAgICAgIHRvcDogMTAlOwogICAgICAgIGhlaWdodDogODAlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zIHsKICAgICAgICBjdXJzb3I6IG5zLXJlc2l6ZTsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBib3R0b206IC02cHg7CiAgICAgICAgbGVmdDogMTAlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zZSB7CiAgICAgICAgY3Vyc29yOiBzZS1yZXNpemU7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIGJvdHRvbTogLTJweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAucmVzaXplLWhhbmRsZS1zZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogNHB4OwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldDpob3ZlciAucmVzaXplLWhhbmRsZS1zZSB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAucmVzaXplLWhhbmRsZS1zZTpob3Zlcjo6YWZ0ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuZ3JpZC1wbGFjZWhvbGRlciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBvcGFjaXR5OiAwLjE7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogLTE7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtdmVydGljYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZS1ob3Jpem9udGFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgYF19KTt2YXIgVjhvLFlpdCxVNmEsVzZhLGo2YSxYWCxWNmEsVlhhLFVYYSxaaXQsS2gsRzZhLEs2YSxZNmE9ZygoKT0+e1Y4bz0xMCxZaXQ9aShzPT57aWYodHlwZW9mIHM9PSJudW1iZXIiKXJldHVybntob3Jpem9udGFsOnMsdmVydGljYWw6cyx0b3A6cyxyaWdodDpzLGJvdHRvbTpzLGxlZnQ6c307bGV0IGU9e3RvcDpzLnRvcD8/MTAscmlnaHQ6cy5yaWdodD8/MTAsYm90dG9tOnMuYm90dG9tPz8xMCxsZWZ0OnMubGVmdD8/MTB9O3JldHVybnsuLi5lLGhvcml6b250YWw6KGUubGVmdCtlLnJpZ2h0KS8yLHZlcnRpY2FsOihlLnRvcCtlLmJvdHRvbSkvMn19LCJyZXNvbHZlTWFyZ2lucyIpLFU2YT1pKChzLGUsdCxhLHIpPT57bGV0IG49dC5ob3Jpem9udGFsKihlKzEpLG89TWF0aC5tYXgocy1uLDApLGw9ZT4wP28vZTowLHA9cj09PSJhdXRvIj9sOmE7cmV0dXJue2NvbnRhaW5lcldpZHRoOnMsY2VsbFdpZHRoUHg6bCxtYXJnaW5Ib3Jpem9udGFsUHg6dC5ob3Jpem9udGFsLGNlbGxIZWlnaHRQeDpwLG1hcmdpblZlcnRpY2FsUHg6dC52ZXJ0aWNhbH19LCJjYWxjdWxhdGVDZWxsTWV0cmljcyIpLFc2YT1pKChzLGUsdCk9PntpZihzLmxlbmd0aD09PTApcmV0dXJuIDA7bGV0IGE9TWF0aC5tYXgoLi4ucy5tYXAocj0+ci55K3IuaCksMCk7cmV0dXJuIGEqdCsoYSsxKSplLnZlcnRpY2FsfSwiY2FsY3VsYXRlR3JpZEhlaWdodCIpLGo2YT1pKChzLGUsdCxhLHIpPT5lPHMueCtzLncmJmUrYT5zLngmJnQ8cy55K3MuaCYmdCtyPnMueSwib3ZlcmxhcHMiKSxYWD1pKChzLGUsdCxhLHI9ZS53LG49ZS5oKT0+cy5maWx0ZXIobz0+by5pZD09PWUuaWQ/ITE6ajZhKG8sdCxhLHIsbikpLCJjb2xsZWN0Q29sbGlzaW9ucyIpLFY2YT1pKChzLGUsdCxhKT0+WFgocyxlLHQsYSkubGVuZ3RoPjAsImNoZWNrQ29sbGlzaW9uIiksVlhhPWkocz0+KHsuLi5zfSksImNsb25lV2lkZ2V0IiksVVhhPWkocz0+cy5tYXAoVlhhKSwiY2xvbmVXaWRnZXRzIiksWml0PWkoKHMsZSx0LGEpPT57Zm9yKGxldCBuPTA7bjwyMDA7bisrKWZvcihsZXQgbz0wO288PWEtZTtvKyspaWYoIXMuc29tZShwPT5qNmEocCxvLG4sZSx0KSkpcmV0dXJue3g6byx5Om59O3JldHVybnt4OjAseTpzLnJlZHVjZSgobixvKT0+TWF0aC5tYXgobixvLnkrby5oKSwwKX19LCJmaW5kQXZhaWxhYmxlUG9zaXRpb24iKSxLaD1pKChzLGUsdCxhLHIpPT57bGV0IG49VVhhKHMpLG89bi5maW5kKGI9PmIuaWQ9PT1lKSxsPXMuZmluZChiPT5iLmlkPT09ZSk7aWYoIW98fCFsKXJldHVybiBudWxsO2xldCBwPXt4OnQueCx5OnQueSx3OnQudz8/by53LGg6dC5oPz9vLmh9O28ueD1wLngsby55PXAueSxvLnc9cC53LG8uaD1wLmg7bGV0IGQ9WFgobixvLHAueCxwLnkscC53LHAuaCk7aWYoZC5sZW5ndGg9PT0wKXJldHVybnt3aWRnZXRzOm4sbW92ZWRXaWRnZXRzOltvLmlkXX07aWYoZC5sZW5ndGg9PT0xKXtsZXQgYj1kWzBdO2lmKCFiLmxvY2tlZCYmIWIubm9Nb3ZlJiZiLnc9PT1vLncmJmIuaD09PW8uaCl7bGV0IHY9bi5maW5kKHg9PnguaWQ9PT1iLmlkKTtpZih2KXtsZXQgeD1sLG09e3g6di54LHk6di55fTtpZih2Lng9eC54LHYueT14LnksWFgobixvLG8ueCxvLnksby53LG8uaCkubGVuZ3RoPT09MCYmWFgobix2LHYueCx2Lnksdi53LHYuaCkubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpuLG1vdmVkV2lkZ2V0czpbby5pZCx2LmlkXSxzd2FwcGVkV2l0aDp2LmlkfTt2Lng9bS54LHYueT1tLnl9fX1sZXQgdT1uZXcgU2V0KFtvLmlkXSk7Zm9yKGxldCBiIG9mIGQpe2lmKGIubG9ja2VkfHxiLm5vTW92ZSlyZXR1cm4gbnVsbDtsZXQgdj1uLmZpbmQoZj0+Zi5pZD09PWIuaWQpO2lmKCF2KWNvbnRpbnVlO2xldCB4PW4uZmlsdGVyKGY9PmYuaWQhPT1iLmlkKSxtPVppdCh4LHYudyx2LmgsYSk7di54PW0ueCx2Lnk9bS55LHUuYWRkKHYuaWQpfXJldHVybiBYWChuLG8sby54LG8ueSxvLncsby5oKS5sZW5ndGg+MD9udWxsOnt3aWRnZXRzOm4sbW92ZWRXaWRnZXRzOkFycmF5LmZyb20odSl9fSwicmVzb2x2ZVdpZGdldFBsYWNlbWVudCIpLEc2YT1pKChzLGU9InZlcnRpY2FsIik9PntsZXQgdD1bLi4uc10uc29ydCgoYSxyKT0+ZT09PSJ2ZXJ0aWNhbCI/YS55IT09ci55P2EueS1yLnk6YS54LXIueDphLnghPT1yLng/YS54LXIueDphLnktci55KTtmb3IobGV0IGEgb2YgdClpZighKGEubG9ja2VkfHxhLm5vTW92ZSkpaWYoZT09PSJ2ZXJ0aWNhbCIpZm9yKDthLnk+MCYmIVY2YShzLGEsYS54LGEueS0xKTspYS55LT0xO2Vsc2UgZm9yKDthLng+MCYmIVY2YShzLGEsYS54LTEsYS55KTspYS54LT0xfSwiY29tcGFjdExheW91dCIpLEs2YT1pKChzLGUpPT5zLm1hcCh0PT57bGV0IGE9ZS5maW5kKHI9PnIuaWQ9PT10LmlkKTtyZXR1cm4gYT97Li4udCwuLi5hfTp0fSksImFwcGx5TGF5b3V0Iil9KTt2YXIgWjZhLFg2YSxRNmE9ZygoKT0+e1o2YT1pKCh7cG9pbnRlcjpzLGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOnQsY29sdW1uczphLHdpZGdldDpyLHJ0bDpuLGRyYWdPZmZzZXRYOm89MCxkcmFnT2Zmc2V0WTpsPTB9KT0+e2xldCBwPXMuY2xpZW50WC1lLmxlZnQtbyxkPXMuY2xpZW50WS1lLnRvcC1sLHU9dC5tYXJnaW5Ib3Jpem9udGFsUHgsYz10Lm1hcmdpblZlcnRpY2FsUHgsYj10LmNlbGxXaWR0aFB4LHY9dC5jZWxsSGVpZ2h0UHgseD1pKChDLF8sTyk9Pk1hdGgubWF4KF8sTWF0aC5taW4oTyxDKSksImNsYW1wIiksbT14KHAtdSwwLGUud2lkdGgtdSksZj14KGQtYywwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkseT1iK3UsTT12K2Msej1NYXRoLnJvdW5kKG0veSk7biYmKHo9YS1yLncteiksej14KHosMCxhLXIudyk7bGV0IE49eChNYXRoLnJvdW5kKGYvTSksMCxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7cmV0dXJue3g6eix5Ok59fSwiY29tcHV0ZUdyaWRDb29yZGluYXRlcyIpLFg2YT1pKCh7cG9pbnRlcjpzLGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOnQsc3RhcnRXaWR0aDphLHN0YXJ0SGVpZ2h0OnIsc3RhcnRQb2ludGVyOm4saGFuZGxlcjpvLHdpZGdldDpsLGNvbHVtbnM6cH0pPT57bGV0IGQ9cy5jbGllbnRYLW4uY2xpZW50WCx1PXMuY2xpZW50WS1uLmNsaWVudFksYz1hLGI9cix2PXQuY2VsbFdpZHRoUHgrdC5tYXJnaW5Ib3Jpem9udGFsUHgseD10LmNlbGxIZWlnaHRQeCt0Lm1hcmdpblZlcnRpY2FsUHg7aWYoby5pbmNsdWRlcygiZSIpKXtsZXQgeT1NYXRoLnJvdW5kKGQvdik7Yz1hK3l9aWYoby5pbmNsdWRlcygicyIpKXtsZXQgeT1NYXRoLnJvdW5kKHUveCk7Yj1yK3l9bGV0IG09TWF0aC5tYXgobC5taW5XfHwxLE1hdGgubWluKGMsbC5tYXhXfHxwLWwueCkpLGY9TWF0aC5tYXgobC5taW5IfHwxLE1hdGgubWluKGIsbC5tYXhIfHxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpO3JldHVybnt3aWR0aDptLGhlaWdodDpmfX0sImNvbXB1dGVSZXNpemVEaW1lbnNpb25zIil9KTt2YXIgSjZhLGU1YT1nKCgpPT57b3IoKTtwbygpO0o2YT1pKCh7d2lkZ2V0OnMsaG9zdDplLGV2ZW50OnR9KT0+e2xldCBhPVt7bmFtZToiRGVsZXRlIHRpbGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT4oZS5yZW1vdmVXaWRnZXQocy5pZCksbnVsbCksImFjdGlvbiIpfV07a2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxhKX0sIm9wZW5XaWRnZXRDb250ZXh0TWVudSIpfSk7dmFyIGRuLE1zLHQ1YSxhNWE9ZygoKT0+e3BlKCk7VWEoKTtvcigpO0I2YSgpO3E2YSgpO1k2YSgpO1E2YSgpO2U1YSgpO2RuPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNcz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdDVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1kYXNoYm9hcmRncmlkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNEYXNoYm9hcmRncmlkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHE9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sTz1bTCh7dHlwZTpTdHJpbmd9KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHthdHRyaWJ1dGU6ITF9KV0sbWU9W0woe3R5cGU6U3RyaW5nfSldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLGRuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4id2lkZ2V0cyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLndpZGdldHMsImdldCIpLHNldDppKChBLHNlKT0+e0Eud2lkZ2V0cz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxvLGwpLGRuKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iY2VsbEhlaWdodCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmNlbGxIZWlnaHQsImdldCIpLHNldDppKChBLHNlKT0+e0EuY2VsbEhlaWdodD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxkLHUpLGRuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFyZ2luIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJtYXJnaW4iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5tYXJnaW4sImdldCIpLHNldDppKChBLHNlKT0+e0EubWFyZ2luPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGIsdiksZG4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJjb2x1bW5zImluIEEsImhhcyIpLGdldDppKEE9PkEuY29sdW1ucywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5jb2x1bW5zPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG0sZiksZG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZWRpdGFibGUiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5lZGl0YWJsZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5lZGl0YWJsZT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxNLHopLGRuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlQW5pbWF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJlbmFibGVBbmltYXRpb24iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5lbmFibGVBbmltYXRpb24sImdldCIpLHNldDppKChBLHNlKT0+e0EuZW5hYmxlQW5pbWF0aW9uPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEMsXyksZG4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZWxsSGVpZ2h0VW5pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iY2VsbEhlaWdodFVuaXQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5jZWxsSGVpZ2h0VW5pdCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5jZWxsSGVpZ2h0VW5pdD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSwkLEUpLGRuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnRsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJydGwiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5ydGwsImdldCIpLHNldDppKChBLHNlKT0+e0EucnRsPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGssUyksZG4odGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzaG93R3JpZExpbmVzImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd0dyaWRMaW5lcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93R3JpZExpbmVzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFAsUiksZG4odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXlvdXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJsYXlvdXRzImluIEEsImhhcyIpLGdldDppKEE9PkEubGF5b3V0cywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5sYXlvdXRzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFYsVyksZG4odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQnJlYWtwb2ludCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYWN0aXZlQnJlYWtwb2ludCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2ZUJyZWFrcG9pbnQsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZlQnJlYWtwb2ludD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxCLFUpLGRuKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InBsYWNlaG9sZGVyUG9zaXRpb24iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5wbGFjZWhvbGRlclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnBsYWNlaG9sZGVyUG9zaXRpb249c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sRixqKSxkbih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJtZXRyaWNzImluIEEsImhhcyIpLGdldDppKEE9PkEubWV0cmljcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5tZXRyaWNzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGxlLFEpLGRuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTWFyZ2lucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4icmVzb2x2ZWRNYXJnaW5zImluIEEsImhhcyIpLGdldDppKEE9PkEucmVzb2x2ZWRNYXJnaW5zLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnJlc29sdmVkTWFyZ2lucz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSx0ZSxlZSksZG4odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJldmlld1dpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InByZXZpZXdXaWRnZXRzImluIEEsImhhcyIpLGdldDppKEE9PkEucHJldmlld1dpZGdldHMsImdldCIpLHNldDppKChBLHNlKT0+e0EucHJldmlld1dpZGdldHM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sWCxaKSxkbihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpxfSxudWxsLHQpLHllPWE9ZS52YWx1ZSxxJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX1zdGF0aWMgZGVtbz1GNmE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTtzdGF0aWMgc3R5bGVzPUg2YTsjZT1Ncyh0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMocSl7dGhpcy4jZT1xfSN0PShNcyh0aGlzLGwpLE1zKHRoaXMsZCw4MCkpO2dldCBjZWxsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlbGxIZWlnaHQocSl7dGhpcy4jdD1xfSNhPShNcyh0aGlzLHUpLE1zKHRoaXMsYiwxMCkpO2dldCBtYXJnaW4oKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWFyZ2luKHEpe3RoaXMuI2E9cX0jcz0oTXModGhpcyx2KSxNcyh0aGlzLG0sMTIpKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNzfXNldCBjb2x1bW5zKHEpe3RoaXMuI3M9cX0jaT0oTXModGhpcyxmKSxNcyh0aGlzLE0sITApKTtnZXQgZWRpdGFibGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZWRpdGFibGUocSl7dGhpcy4jaT1xfSNyPShNcyh0aGlzLHopLE1zKHRoaXMsQywhMCkpO2dldCBlbmFibGVBbmltYXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlQW5pbWF0aW9uKHEpe3RoaXMuI3I9cX0jbz0oTXModGhpcyxfKSxNcyh0aGlzLCQsInB4IikpO2dldCBjZWxsSGVpZ2h0VW5pdCgpe3JldHVybiB0aGlzLiNvfXNldCBjZWxsSGVpZ2h0VW5pdChxKXt0aGlzLiNvPXF9I249KE1zKHRoaXMsRSksTXModGhpcyxrLCExKSk7Z2V0IHJ0bCgpe3JldHVybiB0aGlzLiNufXNldCBydGwocSl7dGhpcy4jbj1xfSNsPShNcyh0aGlzLFMpLE1zKHRoaXMsUCwhMSkpO2dldCBzaG93R3JpZExpbmVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dHcmlkTGluZXMocSl7dGhpcy4jbD1xfSNjPShNcyh0aGlzLFIpLE1zKHRoaXMsVix2b2lkIDApKTtnZXQgbGF5b3V0cygpe3JldHVybiB0aGlzLiNjfXNldCBsYXlvdXRzKHEpe3RoaXMuI2M9cX0jZD0oTXModGhpcyxXKSxNcyh0aGlzLEIsImJhc2UiKSk7Z2V0IGFjdGl2ZUJyZWFrcG9pbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlQnJlYWtwb2ludChxKXt0aGlzLiNkPXF9I3U9KE1zKHRoaXMsVSksTXModGhpcyxGLG51bGwpKTtnZXQgcGxhY2Vob2xkZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiN1fXNldCBwbGFjZWhvbGRlclBvc2l0aW9uKHEpe3RoaXMuI3U9cX0jcD0oTXModGhpcyxqKSxNcyh0aGlzLGxlLG51bGwpKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNwfXNldCBtZXRyaWNzKHEpe3RoaXMuI3A9cX0jaD0oTXModGhpcyxRKSxNcyh0aGlzLHRlLG51bGwpKTtnZXQgcmVzb2x2ZWRNYXJnaW5zKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJlc29sdmVkTWFyZ2lucyhxKXt0aGlzLiNoPXF9I2Y9KE1zKHRoaXMsZWUpLE1zKHRoaXMsWCxudWxsKSk7Z2V0IHByZXZpZXdXaWRnZXRzKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHByZXZpZXdXaWRnZXRzKHEpe3RoaXMuI2Y9cX1jb250YWluZXJCb3VuZHM9KE1zKHRoaXMsWiksbnVsbCk7ZHJhZ1N0YXRlPW51bGw7cmVzaXplU3RhdGU9bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcmFjdGlvbkFjdGl2ZT0hMTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb21wdXRlTWV0cmljcygpLHRoaXMub2JzZXJ2ZVJlc2l6ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX11cGRhdGVkKHEpeyhxLmhhcygibWFyZ2luIil8fHEuaGFzKCJjb2x1bW5zIil8fHEuaGFzKCJjZWxsSGVpZ2h0Iil8fHEuaGFzKCJjZWxsSGVpZ2h0VW5pdCIpKSYmdGhpcy5jb21wdXRlTWV0cmljcygpLHEuaGFzKCJ3aWRnZXRzIikmJiF0aGlzLmludGVyYWN0aW9uQWN0aXZlJiZ0aGlzLm5vdGlmeUxheW91dENoYW5nZSgpfXJlbmRlcigpe2xldCBxPXRoaXMud2lkZ2V0cztpZihxLmxlbmd0aD09PTApcmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGF5b3V0R3JpZCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+QWRkIHdpZGdldHMgdG8gcG9wdWxhdGUgdGhlIGRhc2hib2FyZDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgO2xldCBBPXRoaXMuZW5zdXJlTWV0cmljcygpLHNlPXRoaXMucmVzb2x2ZWRNYXJnaW5zPz9ZaXQodGhpcy5tYXJnaW4pLG9lPUEuY2VsbEhlaWdodFB4LGFlPXRoaXMucHJldmlld1dpZGdldHM/P3RoaXMud2lkZ2V0cyxUZT1XNmEoYWUsc2Usb2UpLFJlPXRoaXMucHJldmlld1dpZGdldHM/bmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcChCZT0+W0JlLmlkLEJlXSkpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAke1RlfXB4OyI+CiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXM/dGhpcy5yZW5kZXJHcmlkTGluZXMoQSxUZSk6bnVsbH0KICAgICAgICAke3EubWFwKEJlPT50aGlzLnJlbmRlcldpZGdldChCZSxBLHNlLFJlKSl9CiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihBLHNlKTpudWxsfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR3JpZExpbmVzKHEsQSl7bGV0IHNlPVtdLG9lPVtdLGFlPXEuY2VsbFdpZHRoUHgrcS5tYXJnaW5Ib3Jpem9udGFsUHgsVGU9cS5jZWxsSGVpZ2h0UHgrcS5tYXJnaW5WZXJ0aWNhbFB4O2ZvcihsZXQgQmU9MDtCZTw9dGhpcy5jb2x1bW5zO0JlKyspe2xldCBHZT1CZSphZStxLm1hcmdpbkhvcml6b250YWxQeCxEZT10aGlzLnB4VG9QZXJjZW50KEdlLHEuY29udGFpbmVyV2lkdGgpO3NlLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtdmVydGljYWwiIHN0eWxlPSJsZWZ0OiAke0RlfSU7Ij48L2Rpdj5gKX1sZXQgUmU9TWF0aC5jZWlsKEEvVGUpO2ZvcihsZXQgQmU9MDtCZTw9UmU7QmUrKyl7bGV0IEdlPUJlKlRlO29lLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtaG9yaXpvbnRhbCIgc3R5bGU9InRvcDogJHtHZX1weDsiPjwvZGl2PmApfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxpbmVzIj4KICAgICAgICAke3NlfQogICAgICAgICR7b2V9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQocSxBLHNlLG9lKXtsZXQgYWU9dGhpcy5kcmFnU3RhdGU/LndpZGdldElkPT09cS5pZCxUZT10aGlzLnJlc2l6ZVN0YXRlPy53aWRnZXRJZD09PXEuaWQsUmU9cS5sb2NrZWR8fCF0aGlzLmVkaXRhYmxlLEJlPW9lPy5nZXQocS5pZCk/P251bGwsR2U9YWU/cTpCZT8/cSxEZT10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KEdlLEEsc2UpLF9lPXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLENlPXRoaXMucHhUb1BlcmNlbnQoRGUubGVmdCxBLmNvbnRhaW5lcldpZHRoKSx2ZT10aGlzLnB4VG9QZXJjZW50KERlLndpZHRoLEEuY29udGFpbmVyV2lkdGgpLGJlPSIiO2lmKGFlJiZ0aGlzLmRyYWdTdGF0ZT8uY3VycmVudFBvaW50ZXIpe2xldCBFZT10aGlzLmRyYWdTdGF0ZS5jdXJyZW50UG9pbnRlcixqZT10aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxXZT1FZS5jbGllbnRYLWplLmxlZnQtdGhpcy5kcmFnU3RhdGUub2Zmc2V0WC1EZS5sZWZ0LHN0PUVlLmNsaWVudFktamUudG9wLXRoaXMuZHJhZ1N0YXRlLm9mZnNldFktRGUudG9wO2JlPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke1dlfXB4LCAke3N0fXB4KTtgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7YWU/ImRyYWdnaW5nIjoiIn0gJHtUZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke19lfTogJHtDZX0lOwogICAgICAgICAgdG9wOiAke0RlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke3ZlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7RGUuaGVpZ2h0fXB4OwogICAgICAgICAgJHtiZX0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtxLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtxLnRpdGxlP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7UmU/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshUmUmJiFxLm5vTW92ZT9FZT0+dGhpcy5zdGFydERyYWcoRWUscSk6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7RWU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoRWUscSl9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IVJlJiYhcS5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtFZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKEVlLHEpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke3EuaWNvbj93YDxkZWVzLWljb24gLmljb249JHtxLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtxLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtxLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke3EuY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshUmUmJiFxLm5vUmVzaXplP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7RWU9PnRoaXMuc3RhcnRSZXNpemUoRWUscSwiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke0VlPT50aGlzLnN0YXJ0UmVzaXplKEVlLHEsInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7RWU9PnRoaXMuc3RhcnRSZXNpemUoRWUscSwic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihxLEEpe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIHdgYDtsZXQgc2U9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24scSxBKSxvZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixhZT10aGlzLnB4VG9QZXJjZW50KHNlLmxlZnQscS5jb250YWluZXJXaWR0aCksVGU9dGhpcy5weFRvUGVyY2VudChzZS53aWR0aCxxLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke29lfTogJHthZX0lOwogICAgICAgICAgdG9wOiAke3NlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke1RlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7c2UuaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhxLEEpe2lmKCF0aGlzLmVkaXRhYmxlfHxBLm5vTW92ZXx8QS5sb2NrZWQpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKSxxLnN0b3BQcm9wYWdhdGlvbigpO2xldCBzZT1xLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIXNlKXJldHVybjtsZXQgb2U9c2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6QS5pZCxwb2ludGVySWQ6cS5wb2ludGVySWQsb2Zmc2V0WDpxLmNsaWVudFgtb2UubGVmdCxvZmZzZXRZOnEuY2xpZW50WS1vZS50b3Asc3RhcnQ6e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9LHByZXZpb3VzUG9zaXRpb246e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOnEuY2xpZW50WCxjbGllbnRZOnEuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLHEuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShxLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9fWhhbmRsZURyYWdNb3ZlPWkocT0+e2lmKCF0aGlzLmRyYWdTdGF0ZSlyZXR1cm47bGV0IEE9dGhpcy5lbnN1cmVNZXRyaWNzKCksc2U9dGhpcy53aWRnZXRzLG9lPXNlLmZpbmQoQmU9PkJlLmlkPT09dGhpcy5kcmFnU3RhdGUud2lkZ2V0SWQpO2lmKCFvZSlyZXR1cm47cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBhZT10aGlzLmRyYWdTdGF0ZS5wcmV2aW91c1Bvc2l0aW9uLFRlPVo2YSh7cG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpBLGNvbHVtbnM6dGhpcy5jb2x1bW5zLHdpZGdldDpvZSxydGw6dGhpcy5ydGwsZHJhZ09mZnNldFg6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WCxkcmFnT2Zmc2V0WTp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRZfSksUmU9S2goc2Usb2UuaWQse3g6VGUueCx5OlRlLnl9LHRoaXMuY29sdW1ucyxhZSk7aWYoUmUpe2xldCBCZT1SZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09b2UuaWQpO3RoaXMuZHJhZ1N0YXRlPXsuLi50aGlzLmRyYWdTdGF0ZSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6UmUscHJldmlvdXNQb3NpdGlvbjpCZT97aWQ6QmUuaWQseDpCZS54LHk6QmUueSx3OkJlLncsaDpCZS5ofTp7aWQ6b2UuaWQseDpUZS54LHk6VGUueSx3Om9lLncsaDpvZS5ofX0sdGhpcy5wcmV2aWV3V2lkZ2V0cz1SZS53aWRnZXRzO2xldCBHZT1SZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09b2UuaWQpO0dlP3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6R2UuaWQseDpHZS54LHk6R2UueSx3OkdlLncsaDpHZS5ofTp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOm9lLmlkLHg6VGUueCx5OlRlLnksdzpvZS53LGg6b2UuaH19ZWxzZSB0aGlzLnByZXZpZXdXaWRnZXRzPW51bGwsdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGw7dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJoYW5kbGVEcmFnTW92ZSIpO2hhbmRsZURyYWdFbmQ9aShxPT57bGV0IEE9dGhpcy5kcmFnU3RhdGU7aWYoIUF8fHEucG9pbnRlcklkIT09QS5wb2ludGVySWQpcmV0dXJuO2xldCBzZT10aGlzLndpZGdldHM7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsO2xldCBvZT10aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/P0Euc3RhcnQsYWU9S2goc2UsQS53aWRnZXRJZCx7eDpvZS54LHk6b2UueX0sdGhpcy5jb2x1bW5zLEEucHJldmlvdXNQb3NpdGlvbik7aWYoYWUpe2xldCBUZT1hZS53aWRnZXRzLmZpbmQoUmU9PlJlLmlkPT09QS53aWRnZXRJZCk7VGUmJihhZS53aWRnZXRzLnNvbWUoQmU9PkJlLmlkPT09QS53aWRnZXRJZD8hMTpUZS54PEJlLngrQmUudyYmVGUueCtUZS53PkJlLngmJlRlLnk8QmUueStCZS5oJiZUZS55K1RlLmg+QmUueSk/dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoQmU9PkJlLmlkPT09QS53aWRnZXRJZD97Li4uQmUseDpBLnN0YXJ0LngseTpBLnN0YXJ0Lnl9OkJlKTp0aGlzLmNvbW1pdFBsYWNlbWVudChhZSxBLndpZGdldElkLCJ3aWRnZXQtbW92ZSIpKX1lbHNlIHRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKFRlPT5UZS5pZD09PUEud2lkZ2V0SWQ/ey4uLlRlLHg6QS5zdGFydC54LHk6QS5zdGFydC55fTpUZSk7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX0sImhhbmRsZURyYWdFbmQiKTtzdGFydFJlc2l6ZShxLEEsc2UpeyF0aGlzLmVkaXRhYmxlfHxBLm5vUmVzaXplfHxBLmxvY2tlZHx8KHEucHJldmVudERlZmF1bHQoKSxxLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOkEuaWQscG9pbnRlcklkOnEucG9pbnRlcklkLGhhbmRsZXI6c2Usc3RhcnRQb2ludGVyOntjbGllbnRYOnEuY2xpZW50WCxjbGllbnRZOnEuY2xpZW50WX0sc3RhcnQ6e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9LHN0YXJ0V2lkdGg6QS53LHN0YXJ0SGVpZ2h0OkEuaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAscS5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKHEucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkEuaWQseDpBLngseTpBLnksdzpBLncsaDpBLmh9KX1oYW5kbGVSZXNpemVNb3ZlPWkocT0+e2lmKCF0aGlzLnJlc2l6ZVN0YXRlKXJldHVybjtsZXQgQT10aGlzLmVuc3VyZU1ldHJpY3MoKSxzZT10aGlzLndpZGdldHMsb2U9c2UuZmluZChSZT0+UmUuaWQ9PT10aGlzLnJlc2l6ZVN0YXRlLndpZGdldElkKTtpZighb2UpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKTtsZXQgYWU9WDZhKHtwb2ludGVyOntjbGllbnRYOnEuY2xpZW50WCxjbGllbnRZOnEuY2xpZW50WX0sY29udGFpbmVyUmVjdDp0aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtZXRyaWNzOkEsc3RhcnRXaWR0aDp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0V2lkdGgsc3RhcnRIZWlnaHQ6dGhpcy5yZXNpemVTdGF0ZS5zdGFydEhlaWdodCxzdGFydFBvaW50ZXI6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFBvaW50ZXIsaGFuZGxlcjp0aGlzLnJlc2l6ZVN0YXRlLmhhbmRsZXIsd2lkZ2V0Om9lLGNvbHVtbnM6dGhpcy5jb2x1bW5zfSksVGU9S2goc2Usb2UuaWQse3g6b2UueCx5Om9lLnksdzphZS53aWR0aCxoOmFlLmhlaWdodH0sdGhpcy5jb2x1bW5zLHRoaXMucmVzaXplU3RhdGUuc3RhcnQpO2lmKFRlKXt0aGlzLnJlc2l6ZVN0YXRlPXsuLi50aGlzLnJlc2l6ZVN0YXRlLGxhc3RQbGFjZW1lbnQ6VGV9LHRoaXMucHJldmlld1dpZGdldHM9VGUud2lkZ2V0cztsZXQgUmU9VGUud2lkZ2V0cy5maW5kKEJlPT5CZS5pZD09PW9lLmlkKTtSZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlJlLmlkLHg6UmUueCx5OlJlLnksdzpSZS53LGg6UmUuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpvZS5pZCx4Om9lLngseTpvZS55LHc6YWUud2lkdGgsaDphZS5oZWlnaHR9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwiaGFuZGxlUmVzaXplTW92ZSIpO2hhbmRsZVJlc2l6ZUVuZD1pKHE9PntsZXQgQT10aGlzLnJlc2l6ZVN0YXRlO2lmKCFBfHxxLnBvaW50ZXJJZCE9PUEucG9pbnRlcklkKXJldHVybjtsZXQgc2U9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgb2U9QS5sYXN0UGxhY2VtZW50Pz9LaChzZSxBLndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/QS5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9BLnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P0Euc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/QS5zdGFydC5ofSx0aGlzLmNvbHVtbnMsQS5zdGFydCk7b2U/dGhpcy5jb21taXRQbGFjZW1lbnQob2UsQS53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKGFlPT5hZS5pZD09PUEud2lkZ2V0SWQ/ey4uLmFlLHc6QS5zdGFydC53LGg6QS5zdGFydC5ofTphZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfSwiaGFuZGxlUmVzaXplRW5kIik7aGFuZGxlSGVhZGVyS2V5ZG93bihxLEEpe2lmKCF0aGlzLmVkaXRhYmxlfHxBLm5vTW92ZXx8QS5sb2NrZWQpcmV0dXJuO2xldCBzZT1xLmtleSxvZT1xLnNoaWZ0S2V5LGFlPW51bGw7aWYob2UmJlsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhzZSkpe3EucHJldmVudERlZmF1bHQoKTtsZXQgRGU9c2U9PT0iQXJyb3dSaWdodCJ8fHNlPT09IkFycm93RG93biI/MTotMTtpZihzZT09PSJBcnJvd0xlZnQifHxzZT09PSJBcnJvd1JpZ2h0Iil7bGV0IF9lPUEubWF4Vz8/dGhpcy5jb2x1bW5zLUEueCxDZT1NYXRoLm1heChBLm1pblc/PzEsTWF0aC5taW4oX2UsQS53K0RlKSk7YWU9S2godGhpcy53aWRnZXRzLEEuaWQse3g6QS54LHk6QS55LHc6Q2UsaDpBLmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgX2U9QS5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksQ2U9TWF0aC5tYXgoQS5taW5IPz8xLE1hdGgubWluKF9lLEEuaCtEZSkpO2FlPUtoKHRoaXMud2lkZ2V0cyxBLmlkLHt4OkEueCx5OkEueSx3OkEudyxoOkNlfSx0aGlzLmNvbHVtbnMpfWFlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChhZSxBLmlkLCJ3aWRnZXQtcmVzaXplIik7cmV0dXJufWxldCBSZT17QXJyb3dMZWZ0OntkeDotMSxkeTowfSxBcnJvd1JpZ2h0OntkeDoxLGR5OjB9LEFycm93VXA6e2R4OjAsZHk6LTF9LEFycm93RG93bjp7ZHg6MCxkeToxfX1bc2VdO2lmKCFSZSlyZXR1cm47cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBCZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuY29sdW1ucy1BLncsQS54K1JlLmR4KSksR2U9TWF0aC5tYXgoMCxBLnkrUmUuZHkpO2FlPUtoKHRoaXMud2lkZ2V0cyxBLmlkLHt4OkJlLHk6R2V9LHRoaXMuY29sdW1ucyksYWUmJnRoaXMuY29tbWl0UGxhY2VtZW50KGFlLEEuaWQsIndpZGdldC1tb3ZlIil9aGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUocSxBKXtxLnByZXZlbnREZWZhdWx0KCkscS5zdG9wUHJvcGFnYXRpb24oKSxKNmEoe3dpZGdldDpBLGhvc3Q6dGhpcyxldmVudDpxfSl9Y29tbWl0UGxhY2VtZW50KHEsQSxzZSl7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMud2lkZ2V0cz1xLndpZGdldHM7bGV0IG9lPXRoaXMud2lkZ2V0cy5maW5kKGFlPT5hZS5pZD09PUEpO29lJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KHNlLHtkZXRhaWw6e3dpZGdldDpvZSxkaXNwbGFjZWQ6cS5tb3ZlZFdpZGdldHMuZmlsdGVyKGFlPT5hZSE9PUEpLHN3YXBwZWRXaXRoOnEuc3dhcHBlZFdpdGh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVtb3ZlV2lkZ2V0KHEpe2xldCBBPXRoaXMud2lkZ2V0cy5maW5kKHNlPT5zZS5pZD09PXEpO0EmJih0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihzZT0+c2UuaWQhPT1xKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ3aWRnZXQtcmVtb3ZlIix7ZGV0YWlsOnt3aWRnZXQ6QX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9dXBkYXRlV2lkZ2V0KHEsQSl7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoc2U9PnNlLmlkPT09cT97Li4uc2UsLi4uQX06c2UpfWdldExheW91dCgpe3JldHVybiB0aGlzLndpZGdldHMubWFwKCh7aWQ6cSx4OkEseTpzZSx3Om9lLGg6YWV9KT0+KHtpZDpxLHg6QSx5OnNlLHc6b2UsaDphZX0pKX1zZXRMYXlvdXQocSl7dGhpcy53aWRnZXRzPUs2YSh0aGlzLndpZGdldHMscSl9bG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSExfXVubG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSEwfWFkZFdpZGdldChxLEE9ITEpe2xldCBzZT17Li4ucX07aWYoQXx8c2UuYXV0b1Bvc2l0aW9uKXtsZXQgb2U9Wml0KHRoaXMud2lkZ2V0cyxzZS53LHNlLmgsdGhpcy5jb2x1bW5zKTtzZS54PW9lLngsc2UueT1vZS55fXRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLHNlXX1jb21wYWN0KHE9InZlcnRpY2FsIil7bGV0IEE9dGhpcy53aWRnZXRzLm1hcChzZT0+KHsuLi5zZX0pKTtHNmEoQSxxKSx0aGlzLndpZGdldHM9QX1hcHBseUJyZWFrcG9pbnRMYXlvdXQocSl7dGhpcy5hY3RpdmVCcmVha3BvaW50PXE7bGV0IEE9dGhpcy5sYXlvdXRzPy5bcV07QSYmdGhpcy5zZXRMYXlvdXQoQSl9bm90aWZ5TGF5b3V0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGF5b3V0LWNoYW5nZSIse2RldGFpbDp7bGF5b3V0OnRoaXMuZ2V0TGF5b3V0KCl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9ZW5zdXJlTWV0cmljcygpe3JldHVybiB0aGlzLm1ldHJpY3N8fHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm1ldHJpY3N9Y29tcHV0ZU1ldHJpY3MoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm47bGV0IHE9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmNvbnRhaW5lckJvdW5kcz1xO2xldCBBPVlpdCh0aGlzLm1hcmdpbik7dGhpcy5yZXNvbHZlZE1hcmdpbnM9QSx0aGlzLm1ldHJpY3M9VTZhKHEud2lkdGgsdGhpcy5jb2x1bW5zLEEsdGhpcy5jZWxsSGVpZ2h0LHRoaXMuY2VsbEhlaWdodFVuaXQpfW9ic2VydmVSZXNpemUoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNvbXB1dGVNZXRyaWNzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1yZWxlYXNlUG9pbnRlckV2ZW50cygpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCl9cHhUb1BlcmNlbnQocSxBKXtyZXR1cm4gQT9OdW1iZXIoKHEvQSoxMDApLnRvRml4ZWQoNCkpOjB9Y29tcHV0ZVdpZGdldFJlY3QocSxBLHNlKXtsZXQgb2U9QS5jZWxsV2lkdGhQeCxhZT1BLmNlbGxIZWlnaHRQeCxUZT1xLngqKG9lK3NlLmhvcml6b250YWwpK3NlLmhvcml6b250YWwsUmU9cS55KihhZStzZS52ZXJ0aWNhbCkrc2UudmVydGljYWwsQmU9cS53Km9lK01hdGgubWF4KDAscS53LTEpKnNlLmhvcml6b250YWwsR2U9cS5oKmFlK01hdGgubWF4KDAscS5oLTEpKnNlLnZlcnRpY2FsO3JldHVybntsZWZ0OlRlLHRvcDpSZSx3aWR0aDpCZSxoZWlnaHQ6R2V9fXN0YXRpY3tNcyhhLHQpfX07cmV0dXJuIHllPWF9KSgpfSk7dmFyIHM1YT1nKCgpPT57YTVhKCl9KTtmdW5jdGlvbiBpNWEoKXtyZXR1cm4gd2AKICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjEiPlRoaXMgaXMgYSBIMSBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIyIj5UaGlzIGlzIGEgSDIgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMyI+VGhpcyBpcyBhIEgzIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjQiPlRoaXMgaXMgYSBINCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI1Ij5UaGlzIGlzIGEgSDUgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNiI+VGhpcyBpcyBhIEg2IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyIj5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSJociIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI3Ij5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSI3Iik8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyLXNtYWxsIj5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSJoci1zbWFsbCIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI4Ij5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSI4Iik8L2RlZXMtaGVhZGluZz4KICBgfXZhciByNWE9ZygoKT0+e3BlKCk7aShpNWEsImRlbW9GdW5jIil9KTt2YXIgbzVhLFhpdCxuNWEsbDVhPWcoKCk9PntwZSgpO3I1YSgpO0NyKCk7cHQoKTtvNWE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFhpdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbjVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1oZWFkaW5nIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNIZWFkaW5nIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxvNWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsZXZlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ibGV2ZWwiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5sZXZlbCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmxldmVsPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxvNWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1YaXQodGhpcyxvLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAvKiBIZWFkaW5nIHN0eWxlcy4KICAgICAgICogQ29sb3IgaGllcmFyY2h5OiBoMS1oMiBzdGF5IHByb21pbmVudCB3aXRoIHRleHQtcHJpbWFyeTsgaDMtaDYgc3RlcAogICAgICAgKiBkb3duIHRvIHRleHQtc2Vjb25kYXJ5IHNvIHRoZXkgcmVhZCBhcyBzdWJoZWFkaW5ncyBpbnN0ZWFkIG9mCiAgICAgICAqIG1pbmktaDFzLiBLZWVwcyB0aGUgdmlzdWFsIGxvdWRuZXNzIG91dCBvZiBzbWFsbGVyIGhlYWRpbmdzLiAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIGgxLCBoMiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAvKiBQZXItbGV2ZWwgdHlwb2dyYXBoeSArIHNwYWNpbmcuCiAgICAgICAqIE1hcmdpbiBzY2FsZXMgd2l0aCBpbXBvcnRhbmNlOiBoMSBnZXRzIHRoZSBtb3N0IGJyZWF0aGluZyByb29tLAogICAgICAgKiBoNiB0aGUgbGVhc3QuIFRvcCBtYXJnaW4gPiBib3R0b20gbWFyZ2luIHNvIGhlYWRpbmdzIGdyb3VwIHdpdGgKICAgICAgICogdGhlIGNvbnRlbnQgdGhhdCBmb2xsb3dzIHRoZW0uICovCiAgICAgIGgxIHsKICAgICAgICAvKiBoMSB1c2VzIHdlaWdodCA1MDAsIG5vdCA2MDA6IHRoZSBDYWwgU2FucyBkaXNwbGF5IGZvbnQgaXMKICAgICAgICAgKiBhbHJlYWR5IHN0eWxpemVkIGVub3VnaCB0aGF0IGJvbGQgKyBtYXggY29udHJhc3QgKyAzMnB4IHN0YWNrcwogICAgICAgICAqIHRvbyBtdWNoIGVtcGhhc2lzLiA1MDAga2VlcHMgdGhlIHR5cG9ncmFwaGljIGltcGFjdCB3aXRob3V0CiAgICAgICAgICogc2hvdXRpbmcuICovCiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7emRhfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMjVlbTsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsKICAgICAgfQogICAgICBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKSAwIHZhcigtLWRlZXMtc3BhY2luZy1tZCk7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy14bCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOwogICAgICB9CiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgICBoNSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKSAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1tZCkgMCB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOwogICAgICB9CgogICAgICAvKiBIb3Jpem9udGFsIHJ1bGUgc3R5bGUgaGVhZGluZyAqLwogICAgICAuaGVhZGluZy1ociB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1sZykgMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAvKiBGYWRlIGxpbmVzIHRvd2FyZCBhbmQgYXdheSBmcm9tIHRleHQgZm9yIGhyIHN0eWxlICovCiAgICAgIC5oZWFkaW5nLWhyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKSk7CiAgICAgICAgbWFyZ2luOiAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgLmhlYWRpbmctaHI6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKSwgdHJhbnNwYXJlbnQpOwogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIC8qIFNtYWxsIGhyIHZhcmlhbnQgd2l0aCByZWR1Y2VkIG1hcmdpbnMgKi8KICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbCB7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctc20pIDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmJlZm9yZSwKICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbDo6YWZ0ZXIgewogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSIxIjpyZXR1cm4gd2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YDtjYXNlIjIiOnJldHVybiB3YDxoMj48c2xvdD48L3Nsb3Q+PC9oMj5gO2Nhc2UiMyI6cmV0dXJuIHdgPGgzPjxzbG90Pjwvc2xvdD48L2gzPmA7Y2FzZSI0IjpyZXR1cm4gd2A8aDQ+PHNsb3Q+PC9zbG90PjwvaDQ+YDtjYXNlIjUiOnJldHVybiB3YDxoNT48c2xvdD48L3Nsb3Q+PC9oNT5gO2Nhc2UiNiI6cmV0dXJuIHdgPGg2PjxzbG90Pjwvc2xvdD48L2g2PmA7Y2FzZSI3IjpjYXNlImhyIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtjYXNlIjgiOmNhc2UiaHItc21hbGwiOnJldHVybiB3YDxkaXYgY2xhc3M9ImhlYWRpbmctaHIgaGVhZGluZy1oci1zbWFsbCI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7ZGVmYXVsdDpyZXR1cm4gd2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YH19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFhpdCh0aGlzLGwpfXN0YXRpY3tYaXQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGM1YT1nKCgpPT57bDVhKCl9KTt2YXIgZDVhPWcoKCk9PntsdigpfSk7dmFyIHU1YSxwNWE9ZygoKT0+e3BlKCk7dTVhPWkoKCk9PndgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyI+CiAgICA8IS0tIFNtYWxsIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjUgcGFnZXMsIHN0YXJ0aW5nIGF0IDE6PC9zcGFuPgogICAgICA8ZGVlcy1wYWdpbmF0aW9uCiAgICAgICAgLnRvdGFsPSR7NX0KICAgICAgICAucGFnZT0kezF9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIscy5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTGFyZ2VyIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjE1IHBhZ2VzLCBzdGFydGluZyBhdCA4Ojwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezE1fQogICAgICAgIC5wYWdlPSR7OH0KICAgICAgICBAcGFnZS1jaGFuZ2U9JHtzPT5jb25zb2xlLmxvZygiUGFnZSBjaGFuZ2VkIHRvIixzLmRldGFpbC5wYWdlKX0KICAgICAgPjwvZGVlcy1wYWdpbmF0aW9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgUWl0LFFYLGg1YSxmNWE9ZygoKT0+e3BlKCk7cDVhKCk7cHQoKTtRaXQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFYPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxoNWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXBhZ2luYXRpb24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1BhZ2luYXRpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sUWl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icGFnZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnBhZ2UsImdldCIpLHNldDppKCh2LHgpPT57di5wYWdlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxRaXQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0b3RhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4idG90YWwiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50b3RhbCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnRvdGFsPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxRaXQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz11NWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1RWCh0aGlzLG8sMSk7Z2V0IHBhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGFnZShiKXt0aGlzLiNlPWJ9I3Q9KFFYKHRoaXMsbCksUVgodGhpcyxkLDEpKTtnZXQgdG90YWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdG90YWwoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG1hcmdpbjogMCAycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZSIsIiM0NDQiKX07CiAgICAgIH0KICAgICAgYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYWFhIiwiIzY2NiIpfTsKICAgICAgfQogICAgICBidXR0b24uY3VycmVudCB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgc3Bhbi5lbGxpcHNpcyB7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICBgXTtnZXQgcGFnZXMoKXtsZXQgYj1bXSx2PXRoaXMudG90YWwseD10aGlzLnBhZ2U7aWYodjw9Nylmb3IobGV0IG09MTttPD12O20rKyliLnB1c2gobSk7ZWxzZXtiLnB1c2goMSkseD40JiZiLnB1c2goIi4uLiIpO2xldCBtPU1hdGgubWF4KDIseC0yKSxmPU1hdGgubWluKHYtMSx4KzIpO2ZvcihsZXQgeT1tO3k8PWY7eSsrKWIucHVzaCh5KTt4PHYtMyYmYi5wdXNoKCIuLi4iKSxiLnB1c2godil9cmV0dXJuIGJ9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZS0xKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U8PTF9CiAgICAgICAgYXJpYS1sYWJlbD0iUHJldmlvdXMgcGFnZSIKICAgICAgPgogICAgICAgIOKAuQogICAgICA8L2J1dHRvbj4KICAgICAgJHt0aGlzLnBhZ2VzLm1hcChiPT5iPT09Ii4uLiI/d2A8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPuKApjwvc3Bhbj5gOndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IiR7Yj09PXRoaXMucGFnZT8iY3VycmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZShiKX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke2I9PT10aGlzLnBhZ2V9CiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJQYWdlICR7Yn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UodGhpcy5wYWdlKzEpfQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMucGFnZT49dGhpcy50b3RhbH0KICAgICAgICBhcmlhLWxhYmVsPSJOZXh0IHBhZ2UiCiAgICAgID4KICAgICAgICDigLoKICAgICAgPC9idXR0b24+CiAgICBgfWNoYW5nZVBhZ2UoYil7YjwxfHxiPnRoaXMudG90YWx8fGI9PT10aGlzLnBhZ2V8fCh0aGlzLnBhZ2U9Yix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwYWdlLWNoYW5nZSIse2RldGFpbDp7cGFnZTp0aGlzLnBhZ2V9LGJ1YmJsZXM6ITB9KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxRWCh0aGlzLHUpfXN0YXRpY3tRWChhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgbTVhPWcoKCk9PntmNWEoKX0pO3ZhciBnNWE9ZygoKT0+e2ZvKCl9KTt2YXIgYjVhLHY1YT1nKCgpPT57cGUoKTtKaXQoKTtiNWE9aSgoKT0+e2xldCBzPVt7a2V5OiJlbWFpbCIsbGFiZWw6IkFjY291bnQgZW1haWwiLHZhbHVlOiJhZG1pbkBleGFtcGxlLmNvbSJ9LHtrZXk6InN0YXR1cyIsbGFiZWw6IlN0YXR1cyIsdmFsdWU6ImVuYWJsZWQifSx7a2V5OiJtb2RlIixsYWJlbDoiTW9kZSIsdmFsdWU6InByb2R1Y3Rpb24ifSx7a2V5OiJhdXRvUmVuZXciLGxhYmVsOiJBdXRvLXJlbmV3Iix2YWx1ZToib24ifSx7a2V5OiJ0aHJlc2hvbGQiLGxhYmVsOiJSZW5ld2FsIHRocmVzaG9sZCIsdmFsdWU6IjMwIGRheXMifV0sZT1be25hbWU6IkVkaXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRWRpdCBjbGlja2VkIiksImFjdGlvbiIpfV0sdD1be25hbWU6IkNvbmZpZ3VyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb25maWd1cmUgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tuYW1lOiJSZXNldCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXNldCBjbGlja2VkIiksImFjdGlvbiIpfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJFZGl0IGNsaWNrZWQiKSwiYWN0aW9uIil9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJBQ01FIFNldHRpbmdzIn0KICAgICAgICAgIC5zZXR0aW5nc0ZpZWxkcz0ke3N9CiAgICAgICAgICAuYWN0aW9ucz0ke2V9CiAgICAgICAgPjwvZGVlcy1zZXR0aW5ncz4KCiAgICAgICAgPGRlZXMtc2V0dGluZ3MKICAgICAgICAgIC5oZWFkaW5nPSR7IkFDTUUgU2V0dGluZ3MifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik5vIEFDTUUgY29uZmlndXJhdGlvbiB5ZXQuIENsaWNrIENvbmZpZ3VyZSB0byBzZXQgdXAgYXV0b21hdGVkIFRMUyBjZXJ0aWZpY2F0ZSBpc3N1YW5jZS4ifQogICAgICAgICAgLmFjdGlvbnM9JHt0fQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJTZXJ2ZXIgQ29uZmlnIn0KICAgICAgICAgIC5zZXR0aW5nc0ZpZWxkcz0ke1t7a2V5OiJob3N0IixsYWJlbDoiSG9zdG5hbWUiLHZhbHVlOiJwcm94eS5leGFtcGxlLmNvbSJ9LHtrZXk6InBvcnQiLGxhYmVsOiJQb3J0Iix2YWx1ZToiNDQzIn1dfQogICAgICAgICAgLmFjdGlvbnM9JHthfQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIEpYLHd1LHg1YSxKaXQ9ZygoKT0+e3BlKCk7djVhKCk7Q3IoKTtwdCgpO25yKCk7Slg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHd1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx4NWE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXNldHRpbmdzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTZXR0aW5ncyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe2F0dHJpYnV0ZTohMX0pXSx4PVtMKHthdHRyaWJ1dGU6ITF9KV0sSlgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJoZWFkaW5nImluIHosImhhcyIpLGdldDppKHo9PnouaGVhZGluZywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmhlYWRpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLEpYKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImRlc2NyaXB0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZGVzY3JpcHRpb24sImdldCIpLHNldDppKCh6LE4pPT57ei5kZXNjcmlwdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksSlgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR0aW5nc0ZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2V0dGluZ3NGaWVsZHMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZXR0aW5nc0ZpZWxkcywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNldHRpbmdzRmllbGRzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxKWCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImFjdGlvbnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5hY3Rpb25zLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYWN0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksSlgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1iNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT13dSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoTSl7dGhpcy4jZT1NfSN0PSh3dSh0aGlzLGwpLHd1KHRoaXMsZCwiIikpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkZXNjcmlwdGlvbihNKXt0aGlzLiN0PU19I2E9KHd1KHRoaXMsdSksd3UodGhpcyxiLFtdKSk7Z2V0IHNldHRpbmdzRmllbGRzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNldHRpbmdzRmllbGRzKE0pe3RoaXMuI2E9TX0jcz0od3UodGhpcyx2KSx3dSh0aGlzLG0sW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBhY3Rpb25zKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke05hfTsKICAgICAgfQoKICAgICAgLnNldHRpbmdzR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDEycHggMjRweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuc2V0dGluZ3NGaWVsZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZmllbGRMYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmZpZWxkVmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc2V0dGluZ3NEZXNjcmlwdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBNPXRoaXMuc2V0dGluZ3NGaWVsZHMubGVuZ3RoPjAsej10aGlzLmFjdGlvbnMubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHt0aGlzLmhlYWRpbmd9PgogICAgICAgICR7TT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzR3JpZCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2V0dGluZ3NGaWVsZHMubWFwKE49PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3NGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGRMYWJlbCI+JHtOLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZFZhbHVlIj4ke04udmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzRGVzY3JpcHRpb24iPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAke3o/d2AKICAgICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKChOLEMpPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24gJHtDPT09dGhpcy5hY3Rpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+Ti5hY3Rpb24oKX0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAke04ubmFtZX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksd3UodGhpcyxmKX1zdGF0aWN7d3UoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIHk1YT1nKCgpPT57Sml0KCl9KTt2YXIgdzVhLGVRLGs1YSxTNWEsXzVhPWcoKCk9PntwZSgpO2kxZSgpO3c1YT1pKGFzeW5jKHMsZSk9Pm5ldyBQcm9taXNlKHQ9PntsZXQgYT0hMSxyPWkobD0+e2F8fChhPSEwLGUmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pLHQobCkpfSwiZmluaXNoIiksbj1pKCgpPT57d2luZG93LmNsZWFyVGltZW91dChvKSxyKCExKX0sImhhbmRsZUFib3J0Iiksbz13aW5kb3cuc2V0VGltZW91dCgoKT0+e3IoITApfSxzKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixuLHtvbmNlOiEwfSl9KSwid2FpdEZvclByb2dyZXNzVGljayIpLGVRPWkoKHM9IkNvbnRpbnVlIik9Plt7bmFtZTpzLGFjdGlvbjppKGFzeW5jIGU9PmU/LmdvTmV4dCgpLCJhY3Rpb24iKX1dLCJjcmVhdGVDb250aW51ZU1lbnVPcHRpb25zIiksazVhPWkoKCk9Plt7dGl0bGU6IkFjY291bnQgU2V0dXAiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iZW1haWwiIGxhYmVsPSJXb3JrIEVtYWlsIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0icGFzc3dvcmQiIGxhYmVsPSJDcmVhdGUgUGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICBgLG1lbnVPcHRpb25zOmVRKCl9LHt0aXRsZToiUHJvZmlsZSBEZXRhaWxzIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJsYXN0TmFtZSIgbGFiZWw9Ikxhc3QgTmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczplUSgpfSx7dGl0bGU6IkNvbnRhY3QgSW5mb3JtYXRpb24iLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBrZXk9InBob25lIiBsYWJlbD0iTW9iaWxlIE51bWJlciIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJjb21wYW55IiBsYWJlbD0iQ29tcGFueSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczplUSgpfSx7dGl0bGU6IlByb3Zpc2lvbiBXb3Jrc3BhY2UiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+CiAgICAgICAgICBXZSBhcmUgY3JlYXRpbmcgeW91ciBzdGFydGVyIHdvcmtzcGFjZSwgYXBwbHlpbmcgeW91ciBvbmJvYXJkaW5nIGNob2ljZXMsCiAgICAgICAgICBhbmQgcHJlcGFyaW5nIGEgbGl2ZSBwcmV2aWV3LiBUaGlzIHN0ZXAgbW92ZXMgZm9yd2FyZCBhdXRvbWF0aWNhbGx5IHdoZW4KICAgICAgICAgIHRoZSBlbnZpcm9ubWVudCBpcyByZWFkeS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIGAscHJvZ3Jlc3NTdGVwOntsYWJlbDoiV29ya3NwYWNlIHNldHVwIixwZXJjZW50YWdlOjgsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNSb3dzOjQsc3RhdHVzVGV4dDoiQWxsb2NhdGluZyBhIGNsZWFuIHdvcmtzcGFjZS4uLiIsdGVybWluYWxMaW5lczpbIkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UiXX0sdmFsaWRhdGlvbkZ1bmM6aShhc3luYyhzLGUsdCk9PntsZXQgYT1be2xpbmU6IkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UiLHBlcmNlbnRhZ2U6OCxkZWxheTo1MDB9LHtsaW5lOiJTeW5jaW5nIGFjY291bnQgcHJlZmVyZW5jZXMiLHBlcmNlbnRhZ2U6MjQsZGVsYXk6NjUwfSx7bGluZToiSW5zdGFsbGluZyBzZWxlY3RlZCBpbnRlZ3JhdGlvbnMiLHBlcmNlbnRhZ2U6NDcsZGVsYXk6NzAwfSx7bGluZToiR2VuZXJhdGluZyBzdGFydGVyIHByb2plY3QgZmlsZXMiLHBlcmNlbnRhZ2U6NzEsZGVsYXk6NjUwfSx7bGluZToiQm9vdGluZyB0aGUgbGl2ZSBwcmV2aWV3IGVudmlyb25tZW50IixwZXJjZW50YWdlOjkyLGRlbGF5OjcwMH1dO3MucmVzZXRQcm9ncmVzc1N0ZXAoKTtmb3IobGV0W3Isbl1vZiBhLmVudHJpZXMoKSlpZih0Py5hYm9ydGVkfHwocj09PTA/cy51cGRhdGVQcm9ncmVzc1N0ZXAoe3BlcmNlbnRhZ2U6bi5wZXJjZW50YWdlLGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDpgJHtuLmxpbmV9Li4uYCx0ZXJtaW5hbExpbmVzOltuLmxpbmVdfSk6KHMuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShuLmxpbmUpLHMudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOm4ucGVyY2VudGFnZSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6YCR7bi5saW5lfS4uLmB9KSksIWF3YWl0IHc1YShuLmRlbGF5LHQpKSlyZXR1cm47cy5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKCJXb3Jrc3BhY2UgcmVhZHkiKSxzLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OiJXb3Jrc3BhY2UgcmVhZHkuIn0pLGF3YWl0IHc1YSgzNTAsdCl9LCJ2YWxpZGF0aW9uRnVuYyIpfSx7dGl0bGU6IlRlYW0gU2l6ZSIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICBrZXk9InRlYW1TaXplIgogICAgICAgICAgbGFiZWw9IkhvdyBiaWcgaXMgeW91ciB0ZWFtPyIKICAgICAgICAgIC5vcHRpb25zPSR7W3tsYWJlbDoiMS01Iix2YWx1ZToiMS01In0se2xhYmVsOiI2LTIwIix2YWx1ZToiNi0yMCJ9LHtsYWJlbDoiMjEtNTAiLHZhbHVlOiIyMS01MCJ9LHtsYWJlbDoiNTErIix2YWx1ZToiNTErIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6ZVEoKX0se3RpdGxlOiJHb2FscyIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICBrZXk9ImdvYWwiCiAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6Ik9uYm9hcmRpbmciLHZhbHVlOiJvbmJvYXJkaW5nIn0se2xhYmVsOiJBbmFseXRpY3MiLHZhbHVlOiJhbmFseXRpY3MifSx7bGFiZWw6IkF1dG9tYXRpb24iLHZhbHVlOiJhdXRvbWF0aW9uIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6ZVEoKX0se3RpdGxlOiJSZXZpZXcgJiBMYXVuY2giLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+CiAgICAgICAgICBZb3VyIHdvcmtzcGFjZSBpcyByZWFkeS4gUmV2aWV3IHRoZSBjb2xsZWN0ZWQgZGV0YWlscyBhbmQgbGF1bmNoIHdoZW4KICAgICAgICAgIHlvdSBhcmUgcmVhZHkgdG8gc3RhcnQuCiAgICAgICAgPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiTGF1bmNoIixhY3Rpb246aShhc3luYyBzPT57cz8ub3ZlcmxheSYmYXdhaXQgcy5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfV0sImNyZWF0ZURlbW9TdGVwcyIpLFM1YT1pKCgpPT53YAogIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7Ij4KICAgIDxkaXYKICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgei1pbmRleDogMTA7IgogICAgPgogICAgICA8ZGVlcy1idXR0b24KICAgICAgICBAY2xpY2s9JHthc3luYygpPT57YXdhaXQgYXguY3JlYXRlQW5kU2hvdyh7c3RlcHM6azVhKCl9KX19CiAgICAgID5PcGVuIHN0ZXBwZXIgYXMgb3ZlcmxheTwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkZWVzLXN0ZXBwZXIgLnN0ZXBzPSR7azVhKCl9PjwvZGVlcy1zdGVwcGVyPgogIDwvZGl2PgpgLCJzdGVwcGVyRGVtbyIpfSk7dmFyIFloLE9uLGF4LGkxZT1nKCgpPT57cG8oKTtwZSgpO2t0KCk7XzVhKCk7cHQoKTtDcigpO3puKCk7RjEoKTtKMCgpO1VpdCgpO25yKCk7WWg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE9uPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxheD0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3RlcHBlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3RlcHBlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1bTCh7dHlwZTpOdW1iZXIsYXR0cmlidXRlOiExfSldLE49W0woe3R5cGU6T2JqZWN0LGF0dHJpYnV0ZTohMX0pXSxPPVtMKHt0eXBlOkJvb2xlYW4sYXR0cmlidXRlOiExfSldLFloKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RlcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0ZXBzImluIFMsImhhcyIpLGdldDppKFM9PlMuc3RlcHMsImdldCIpLHNldDppKChTLEkpPT57Uy5zdGVwcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksWWgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFN0ZXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkU3RlcCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGVkU3RlcCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkU3RlcD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksWWgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdmVybGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdmVybGF5ImluIFMsImhhcyIpLGdldDppKFM9PlMub3ZlcmxheSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm92ZXJsYXk9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLFloKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuY2VsYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2FuY2VsYWJsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNhbmNlbGFibGUsImdldCIpLHNldDppKChTLEkpPT57Uy5jYW5jZWxhYmxlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxZaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBwZXJaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0ZXBwZXJaSW5kZXgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdGVwcGVyWkluZGV4LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3RlcHBlclpJbmRleD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksWWgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhY3RpdmVGb3JtImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlRm9ybSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmFjdGl2ZUZvcm09SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLFloKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRm9ybVZhbGlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhY3RpdmVGb3JtVmFsaWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5hY3RpdmVGb3JtVmFsaWQsImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVGb3JtVmFsaWQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLFloKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89UzVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiRm9ybSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGspe2xldCBTPWRvY3VtZW50LmJvZHksST1uZXcgSDtyZXR1cm4gSS5zdGVwcz1rLnN0ZXBzLEkub3ZlcmxheT0hMCxrLmNhbmNlbGFibGUhPT12b2lkIDAmJihJLmNhbmNlbGFibGU9ay5jYW5jZWxhYmxlKSxJLndpbmRvd0xheWVyPWF3YWl0IGhvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSxTLmFwcGVuZChJLndpbmRvd0xheWVyKSxTLmFwcGVuZChJKSxJLnN0ZXBwZXJaSW5kZXg9eGEuZ2V0TmV4dFpJbmRleCgpLHhhLnJlZ2lzdGVyKEksSS5zdGVwcGVyWkluZGV4KSxJfSNlPU9uKHRoaXMsbyxbXSk7Z2V0IHN0ZXBzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0ZXBzKGspe3RoaXMuI2U9a30jdD0oT24odGhpcyxsKSxPbih0aGlzLGQsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkU3RlcCgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFN0ZXAoayl7dGhpcy4jdD1rfSNhPShPbih0aGlzLHUpLE9uKHRoaXMsYiwhMSkpO2dldCBvdmVybGF5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG92ZXJsYXkoayl7dGhpcy4jYT1rfSNzPShPbih0aGlzLHYpLE9uKHRoaXMsbSwhMCkpO2dldCBjYW5jZWxhYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNhbmNlbGFibGUoayl7dGhpcy4jcz1rfSNpPShPbih0aGlzLGYpLE9uKHRoaXMsTSwxZTMpKTtnZXQgc3RlcHBlclpJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBzdGVwcGVyWkluZGV4KGspe3RoaXMuI2k9a30jcj0oT24odGhpcyx6KSxPbih0aGlzLEMsbnVsbCkpO2dldCBhY3RpdmVGb3JtKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFjdGl2ZUZvcm0oayl7dGhpcy4jcj1rfSNvPShPbih0aGlzLF8pLE9uKHRoaXMsJCwhMCkpO2dldCBhY3RpdmVGb3JtVmFsaWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aXZlRm9ybVZhbGlkKGspe3RoaXMuI289a31hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPU9uKHRoaXMsRSk7d2luZG93TGF5ZXI7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJHtOYX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogSW4gb3ZlcmxheSBtb2RlIHRoZSBob3N0IGlzICJ0cmFuc3BhcmVudCIgdG8gbGF5b3V0IOKAlCB0aGUgaW5uZXIKICAgICAgICogLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSBpcyB3aGF0IHBpbnMgdG8gdGhlIHZpZXdwb3J0IGFuZCBjYXJyaWVzIHRoZQogICAgICAgKiB6LWluZGV4LiBLZWVwaW5nIDpob3N0IHVucG9zaXRpb25lZCBhdm9pZHMgbmVzdGluZyB0aGUgc3RhY2tpbmcgY29udGV4dAogICAgICAgKiB1bmRlciBhbiBhdXRvLXotaW5kZXggcGFyZW50ICh3aGljaCB3YXMgdHJhcHBpbmcgLnN0ZXBwZXJDb250YWluZXIKICAgICAgICogYmVsb3cgRGVlc1dpbmRvd0xheWVyJ3Mgc2libGluZyBsYXllcnMpLiBUaGlzIG1pcnJvcnMgaG93IGRlZXMtbW9kYWwKICAgICAgICoga2VlcHMgaXRzIG93biA6aG9zdCB1bnBvc2l0aW9uZWQgYW5kIGxldHMgLm1vZGFsQ29udGFpbmVyIGRyaXZlIGxheW91dC4KICAgICAgICovCiAgICAgIDpob3N0KFtvdmVybGF5XSkgewogICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lci5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH0KCiAgICAgIC8qIEV4aXQgYW5pbWF0aW9uIOKAlCByZXZlcnNlIG9mIHRoZSBlbnRyeS4gVGlsZXMgc2xpZGUgRE9XTiArIGZhZGUgb3V0LAogICAgICAgICBtaXJyb3JpbmcgdGhlIC5lbnRyYW5jZSBzbGlkZS11cC4gVGhlIHRyYW5zaXRpb24gb3ZlcnJpZGUgaXMgbmVlZGVkCiAgICAgICAgIGJlY2F1c2UgZGVlcy10aWxlLnN0ZXAgaGFzIGl0cyBvd24gMC43cyB0cmFuc2l0aW9uIGZvciBzdGVwIHNlbGVjdGlvbgogICAgICAgICB3aGljaCB3b3VsZCBvdGhlcndpc2UgbWFrZSB0aGUgZXhpdCBzbHVnZ2lzaC4gKi8KICAgICAgLnN0ZXBwZXJDb250YWluZXIucHJlZGVzdHJveSBkZWVzLXRpbGUuc3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMsIGZpbHRlciAwLjJzOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDAuNTUpIHNhdHVyYXRlKDAuODUpOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5zZWxlY3RlZCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMSkgc2F0dXJhdGUoMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLmhpZGRlblN0ZXAgewogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuZW50cmFuY2UgewogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLCBmaWx0ZXIgMC4zNXMgZWFzZTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuZW50cmFuY2UuaGlkZGVuU3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDB2aDsKICAgICAgfQoKICAgICAgLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSBkZWVzLXRpbGUuc3RlcDo6cGFydChvdXRlcikgewogICAgICAgIGJveC1zaGFkb3c6CiAgICAgICAgICAwIDAgMCAxcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAxMDAlIC8gMC4wMykiKX0sCiAgICAgICAgICAwIDhweCA0MHB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTIpIiwiaHNsKDAgMCUgMCUgLyAwLjUpIil9LAogICAgICAgICAgMCAycHggOHB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMCUgLyAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDEycHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZ29CYWNrLXNwYWNlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2sgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjayBzcGFuIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6aG92ZXIgc3BhbiB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLnN0ZXBDb3VudGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgLnN0ZXAtYm9keSAudGl0bGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nLXRvcDogMzJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC5jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC5jb250ZW50LndpdGhQcm9ncmVzc1N0ZXAgewogICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NTdGVwIHsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBGb290ZXI6IG1vZGFsLXN0eWxlIGJvdHRvbSBidXR0b25zIC0tLSAqLwogICAgICAuYm90dG9tQnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci1sZWZ0IHNlcGFyYXRvciBvbiBldmVyeSBidXR0b24gRVhDRVBUIHRoZSBmaXJzdCBvbmUuCiAgICAgICAgIFVzZXMgZ2VuZXJhbCBzaWJsaW5nIHNvIHRoZSBzdGVwSGludCAoaWYgcmVuZGVyZWQgb24gdGhlIGxlZnQpIGRvZXMKICAgICAgICAgbm90IHNoaWZ0IHdoaWNoIGJ1dHRvbiBjb3VudHMgYXMgImZpcnN0IiBhbmQgY3JlYXRlIGEgcGhhbnRvbSBib3JkZXIuICovCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gfiAuYm90dG9tQnV0dG9uIHsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTIpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24uZGlzYWJsZWQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLmRpc2FibGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLyogSGludCBzaG93biBvbiB0aGUgbGVmdCBvZiB0aGUgZm9vdGVyIHdoZW4gdGhlIGFjdGl2ZSBzdGVwJ3MgZm9ybSBoYXMKICAgICAgICAgdW5maWxsZWQgcmVxdWlyZWQgZmllbGRzLiBVc2VzIG1hcmdpbi1yaWdodDogYXV0byB0byBwdXNoIHJpZ2h0LWFsaWduZWQKICAgICAgICAgYnV0dG9ucyB0byB0aGUgcmlnaHQgd2hpbGUga2VlcGluZyB0aGUgaGludCBmbHVzaC1sZWZ0LiAqLwogICAgICAuYm90dG9tQnV0dG9ucyAuc3RlcEhpbnQgewogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic3RlcHBlckNvbnRhaW5lciAke3RoaXMub3ZlcmxheT8ib3ZlcmxheSI6IiJ9IgogICAgICAgIHN0eWxlPSR7dGhpcy5vdmVybGF5P2B6LWluZGV4OiAke3RoaXMuc3RlcHBlclpJbmRleH07YDoiIn0KICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZU91dHNpZGVDbGlja30KICAgICAgPgogICAgICAgICR7dGhpcy5zdGVwcy5tYXAoKGssUyk9PntsZXQgST1rPT09dGhpcy5zZWxlY3RlZFN0ZXAsUD10aGlzLmdldEluZGV4T2ZTdGVwKGspPnRoaXMuZ2V0SW5kZXhPZlN0ZXAodGhpcy5zZWxlY3RlZFN0ZXApLFI9Uz09PTAsSz1rLnByb2dyZXNzU3RlcD90aGlzLmdldFByb2dyZXNzU3RlcFN0YXRlKGspOm51bGw7cmV0dXJuIHdgPGRlZXMtdGlsZQogICAgICAgICAgICBjbGFzcz0ic3RlcCAke0k/InNlbGVjdGVkIjoiIn0gJHtQPyJoaWRkZW5TdGVwIjoiIn0gJHtSPyJlbnRyYW5jZSI6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InN0ZXAtaGVhZGVyIj4KICAgICAgICAgICAgICAke1I/d2A8ZGl2IGNsYXNzPSJnb0JhY2stc3BhY2VyIj48L2Rpdj5gOndgPGRpdiBjbGFzcz0iZ29CYWNrIiBAY2xpY2s9JHt0aGlzLmdvQmFja30+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBJbnRlciI+PC08L3NwYW4+IGdvIHRvIHByZXZpb3VzIHN0ZXAKICAgICAgICAgICAgICAgICAgPC9kaXY+YH0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwQ291bnRlciI+CiAgICAgICAgICAgICAgICBTdGVwICR7UysxfSBvZiAke3RoaXMuc3RlcHMubGVuZ3RofQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcC1ib2R5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHtrLnRpdGxlfTwvZGl2PgogICAgICAgICAgICAgICR7ay5wcm9ncmVzc1N0ZXAmJks/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RlcCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICAgICAgLmxhYmVsPSR7Sy5sYWJlbD8/ay50aXRsZX0KICAgICAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0ke0sucGVyY2VudGFnZT8/MH0KICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke0suaW5kZXRlcm1pbmF0ZT8/ITF9CiAgICAgICAgICAgICAgICAgICAgLnNob3dQZXJjZW50YWdlPSR7Sy5zaG93UGVyY2VudGFnZT8/ITB9CiAgICAgICAgICAgICAgICAgICAgLnN0YXR1c1RleHQ9JHtLLnN0YXR1c1RleHQ/PyIifQogICAgICAgICAgICAgICAgICAgIC50ZXJtaW5hbExpbmVzPSR7Sy50ZXJtaW5hbExpbmVzPz9bXX0KICAgICAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0ke0suc3RhdHVzUm93cz8/M30KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCAke2sucHJvZ3Jlc3NTdGVwPyJ3aXRoUHJvZ3Jlc3NTdGVwIjoiIn0iPiR7ay5jb250ZW50fTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAke0kmJnRoaXMuYWN0aXZlRm9ybSE9PW51bGwmJiF0aGlzLmFjdGl2ZUZvcm1WYWxpZD93YDxkaXYgY2xhc3M9InN0ZXBIaW50Ij5Db21wbGV0ZSBmb3JtIHRvIGNvbnRpbnVlPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuY2FuY2VsYWJsZT93YDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYm90dG9tQnV0dG9uIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNhbmNlbFJlcXVlc3QoKX0KICAgICAgICAgICAgICAgICAgPkNhbmNlbDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtrLm1lbnVPcHRpb25zPy5tYXAoKFYsVyk9PntsZXQgbWU9Vz09PWsubWVudU9wdGlvbnMubGVuZ3RoLTEsQj1tZSYmdGhpcy5hY3RpdmVGb3JtIT09bnVsbCYmIXRoaXMuYWN0aXZlRm9ybVZhbGlkO3JldHVybiB3YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke21lPyJwcmltYXJ5IjoiIn0gJHtCPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVPcHRpb25DbGljayhWLG1lKX0KICAgICAgICAgICAgICAgICAgPiR7Vi5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYH0pPz8iIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT5gfSl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbmRleE9mU3RlcD1pKGs9PnRoaXMuc3RlcHMuZmluZEluZGV4KFM9Pms9PT1TKSwiZ2V0SW5kZXhPZlN0ZXAiKTthc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbih0aGlzLnN0ZXBzWzBdKSx0aGlzLnNlbGVjdGVkU3RlcD10aGlzLnN0ZXBzWzBdLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgdGhpcy5zZXRTY3JvbGxTdGF0dXMoKSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzUwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAuZW50cmFuY2UiKT8uY2xhc3NMaXN0LnJlbW92ZSgiZW50cmFuY2UiKSl9YXN5bmMgdXBkYXRlZChrKXshay5oYXMoInNlbGVjdGVkU3RlcCIpJiYhay5oYXMoInN0ZXBzIil8fGF3YWl0IHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCl9c2Nyb2xsZXI7YXN5bmMgc2V0U2Nyb2xsU3RhdHVzKCl7bGV0IGs9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIiksUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIik7aWYoIVMpcmV0dXJuO3RoaXMuc2NhbkFjdGl2ZUZvcm0oUyksay5zdHlsZS5wYWRkaW5nVG9wfHwoay5zdHlsZS5wYWRkaW5nVG9wPWAke2sub2Zmc2V0SGVpZ2h0LzItUy5vZmZzZXRIZWlnaHQvMn1weGApO2xldCBJPVMub2Zmc2V0VG9wLWsub2Zmc2V0SGVpZ2h0LzIrUy5vZmZzZXRIZWlnaHQvMjthd2FpdCBqaS5zZXR1cERvbVRvb2xzKCksdGhpcy5zY3JvbGxlcnx8KHRoaXMuc2Nyb2xsZXI9bmV3IHV0LlN3ZWV0U2Nyb2xsKHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGVhc2luZzoiZWFzZUluT3V0RXhwbyIsZHVyYXRpb246NzAwfSxrKSksIXRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkJiZ0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyYmKHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSEwLHRoaXMucnVuU3RlcFZhbGlkYXRpb24odGhpcy5zZWxlY3RlZFN0ZXAsUyx0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsKSksdGhpcy5zY3JvbGxlci50byhJKX1hc3luYyBnb0JhY2soKXtsZXQgaz10aGlzLnN0ZXBzLmZpbmRJbmRleChQPT5QPT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGs8PTApcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IFM9dGhpcy5zdGVwc1trXTtTLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCBJPXRoaXMuc3RlcHNbay0xXTtJLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMucHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKEkpLHRoaXMuc2VsZWN0ZWRTdGVwPUksYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5zZWxlY3RlZFN0ZXAub25SZXR1cm5Ub1N0ZXBGdW5jPy4odGhpcyx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIikpfWdvTmV4dCgpe2xldCBrPXRoaXMuc3RlcHMuZmluZEluZGV4KFA9PlA9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoazwwfHxrPj10aGlzLnN0ZXBzLmxlbmd0aC0xKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBTPXRoaXMuc3RlcHNba107Uy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgST10aGlzLnN0ZXBzW2srMV07SS52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbihJKSx0aGlzLnNlbGVjdGVkU3RlcD1JfXJlc2V0UHJvZ3Jlc3NTdGVwKGs9dGhpcy5zZWxlY3RlZFN0ZXApe2s/LnByb2dyZXNzU3RlcCYmKGsucHJvZ3Jlc3NTdGVwU3RhdGU9dGhpcy5jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoayksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfXVwZGF0ZVByb2dyZXNzU3RlcChrLFM9dGhpcy5zZWxlY3RlZFN0ZXApe2lmKCFTPy5wcm9ncmVzc1N0ZXApcmV0dXJuO2xldCBJPXRoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoUyk7Uy5wcm9ncmVzc1N0ZXBTdGF0ZT17Li4uSSwuLi5rLHRlcm1pbmFsTGluZXM6ay50ZXJtaW5hbExpbmVzP1suLi5rLnRlcm1pbmFsTGluZXNdOlsuLi5JLnRlcm1pbmFsTGluZXM/P1tdXX0sdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShrLFM9dGhpcy5zZWxlY3RlZFN0ZXApe2lmKCFTPy5wcm9ncmVzc1N0ZXApcmV0dXJuO2xldCBJPXRoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoUyk7dGhpcy51cGRhdGVQcm9ncmVzc1N0ZXAoe3Rlcm1pbmFsTGluZXM6Wy4uLkkudGVybWluYWxMaW5lcz8/W10sa119LFMpfXNjYW5BY3RpdmVGb3JtKGspe2xldCBTPWsucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7aWYoUz09PXRoaXMuYWN0aXZlRm9ybSl7dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKTtyZXR1cm59aWYodGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj12b2lkIDAsdGhpcy5hY3RpdmVGb3JtPVMsIVMpe3RoaXMuYWN0aXZlRm9ybVZhbGlkPSEwO3JldHVybn10aGlzLnJlY29tcHV0ZUZvcm1WYWxpZCgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj1TLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKX0pfXJlY29tcHV0ZUZvcm1WYWxpZCgpe2xldCBrPXRoaXMuYWN0aXZlRm9ybTtpZighayl7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9ITA7cmV0dXJufWxldCBTPWsuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9Uy5ldmVyeShJPT4hSS5yZXF1aXJlZHx8SS52YWx1ZSE9PW51bGwmJkkudmFsdWUhPT12b2lkIDAmJkkudmFsdWUhPT0iIil9YXN5bmMgaGFuZGxlTWVudU9wdGlvbkNsaWNrKGssUyl7bGV0IEk9dGhpcy5hY3RpdmVGb3JtO2lmKFMmJkkpe2lmKCF0aGlzLmFjdGl2ZUZvcm1WYWxpZClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoUD0+e0kuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5QKCkse29uY2U6ITB9KSxJLmdhdGhlckFuZERpc3BhdGNoKCl9KX1hd2FpdCBrLmFjdGlvbih0aGlzKX1nZXRQcm9ncmVzc1N0ZXBTdGF0ZShrKXtyZXR1cm4gay5wcm9ncmVzc1N0ZXA/KGsucHJvZ3Jlc3NTdGVwU3RhdGV8fChrLnByb2dyZXNzU3RlcFN0YXRlPXRoaXMuY3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKGspKSxrLnByb2dyZXNzU3RlcFN0YXRlKTp7fX1jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoayl7cmV0dXJue2xhYmVsOmsucHJvZ3Jlc3NTdGVwPy5sYWJlbD8/ay50aXRsZSxwZXJjZW50YWdlOmsucHJvZ3Jlc3NTdGVwPy5wZXJjZW50YWdlPz8wLGluZGV0ZXJtaW5hdGU6ay5wcm9ncmVzc1N0ZXA/LmluZGV0ZXJtaW5hdGU/PyExLHNob3dQZXJjZW50YWdlOmsucHJvZ3Jlc3NTdGVwPy5zaG93UGVyY2VudGFnZT8/ITAsc3RhdHVzVGV4dDprLnByb2dyZXNzU3RlcD8uc3RhdHVzVGV4dD8/IiIsdGVybWluYWxMaW5lczpbLi4uay5wcm9ncmVzc1N0ZXA/LnRlcm1pbmFsTGluZXM/P1tdXSxzdGF0dXNSb3dzOmsucHJvZ3Jlc3NTdGVwPy5zdGF0dXNSb3dzPz8zfX1wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24oayl7az8ucHJvZ3Jlc3NTdGVwJiYoay5wcm9ncmVzc1N0ZXBTdGF0ZT10aGlzLmNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShrKSl9YXN5bmMgcnVuU3RlcFZhbGlkYXRpb24oayxTLEkpe3RyeXtpZihhd2FpdCBrLnZhbGlkYXRpb25GdW5jPy4odGhpcyxTLEkpLEkuYWJvcnRlZClyZXR1cm47ay5wcm9ncmVzc1N0ZXAmJmsucHJvZ3Jlc3NTdGVwLmF1dG9BZHZhbmNlIT09ITEmJnRoaXMuc2VsZWN0ZWRTdGVwPT09ayYmdGhpcy5nb05leHQoKX1jYXRjaChQKXtpZihJLmFib3J0ZWQpcmV0dXJuO2lmKGsucHJvZ3Jlc3NTdGVwKXtsZXQgUj1QIGluc3RhbmNlb2YgRXJyb3I/UC5tZXNzYWdlOiJVbmV4cGVjdGVkIGVycm9yIjt0aGlzLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoYEVycm9yOiAke1J9YCxrKSx0aGlzLnVwZGF0ZVByb2dyZXNzU3RlcCh7aW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OlJ9LGspfWNvbnNvbGUuZXJyb3IoUCl9fWNhbmNlbENvbmZpcm1Nb2RhbDtoYW5kbGVPdXRzaWRlQ2xpY2soayl7aWYoIXRoaXMub3ZlcmxheXx8IXRoaXMuY2FuY2VsYWJsZSlyZXR1cm47ay5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKTtrLnRhcmdldD09PVMmJnRoaXMuaGFuZGxlQ2FuY2VsUmVxdWVzdCgpfWFzeW5jIGhhbmRsZUNhbmNlbFJlcXVlc3QoKXt0aGlzLmNhbmNlbGFibGUmJih0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbCYmdGhpcy5jYW5jZWxDb25maXJtTW9kYWwuaXNDb25uZWN0ZWR8fCh0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD12b2lkIDAsdGhpcy5jYW5jZWxDb25maXJtTW9kYWw9YXdhaXQgUWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2FuY2VsIHNldHVwPyIsd2lkdGg6InNtYWxsIixjb250ZW50OndgCiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsiPgogICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNhbmNlbD8gQW55IHByb2dyZXNzIG9uIHRoZSBjdXJyZW50IHN0ZXAgd2lsbCBiZSBsb3N0LgogICAgICAgIDwvcD4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNvbnRpbnVlIHNldHVwIixhY3Rpb246aShhc3luYyBrPT57dGhpcy5jYW5jZWxDb25maXJtTW9kYWw9dm9pZCAwLGF3YWl0IGsuZGVzdHJveSgpfSwiYWN0aW9uIil9LHtuYW1lOiJZZXMsIGNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgaz0+e3RoaXMuY2FuY2VsQ29uZmlybU1vZGFsPXZvaWQgMCxrLmRlc3Ryb3koKSxhd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMDApLGF3YWl0IHRoaXMuZGVzdHJveSgpfSwiYWN0aW9uIil9XX0pKSl9YXN5bmMgZGVzdHJveSgpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIik7dGhpcy5zZWxlY3RlZFN0ZXA/LmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCksUz8uY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IGsuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyNTApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb249dm9pZCAwLHRoaXMuYWN0aXZlRm9ybT1udWxsLHhhLnVucmVnaXN0ZXIodGhpcyl9c3RhdGlje09uKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBNNWE9ZygoKT0+e2kxZSgpfSk7dmFyIHo1YT1nKCgpPT57bnIoKX0pO3ZhciBDNWE9ZygoKT0+e082YSgpO3M1YSgpO2M1YSgpO2Q1YSgpO201YSgpO2c1YSgpO3k1YSgpO001YSgpO3o1YSgpfSk7dmFyIFQ1YSwkNWE9ZygoKT0+e3BlKCk7VDVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWltYWdlLXZpZXdlciB7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5jb21wYWN0IHsKICAgICAgaGVpZ2h0OiAyNTBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlBFRyBJbWFnZSB3aXRoIFRvb2xiYXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSBsYW5kc2NhcGUgcGhvdG8gd2l0aCB6b29tLCBwYW4sIGZpdCwgYW5kIGRvd25sb2FkIGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA2NzQ0MDM4MTM2LTQ2MjczODM0YjNmYj93PTEyMDAiCiAgICAgICAgYWx0PSJNb3VudGFpbiBsYW5kc2NhcGUiCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBORyB3aXRoIFRyYW5zcGFyZW5jeTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5UcmFuc3BhcmVudCBQTkcgZGlzcGxheWVkIG9uIGEgY2hlY2tlcmJvYXJkIGJhY2tncm91bmQuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy80LzQ3L1BOR190cmFuc3BhcmVuY3lfZGVtb25zdHJhdGlvbl8xLnBuZyIKICAgICAgICBhbHQ9IlBORyB0cmFuc3BhcmVuY3kgZGVtbyIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U1ZHIEltYWdlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNjYWxhYmxlIHZlY3RvciBncmFwaGljLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvMC8wMi9TVkdfbG9nby5zdmciCiAgICAgICAgYWx0PSJTVkcgbG9nbyIKICAgICAgICBmaXQ9ImNvbnRhaW4iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5vIFRvb2xiYXIgVmFyaWFudDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5JbWFnZSB2aWV3ZXIgd2l0aCB0aGUgdG9vbGJhciBoaWRkZW4uPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIGNsYXNzPSJjb21wYWN0IgogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0Njk0NzQ5NjgwMjgtNTY2MjNmMDJlNDJlP3c9ODAwIgogICAgICAgIGFsdD0iTmF0dXJlIHNjZW5lIgogICAgICAgIC5zaG93VG9vbGJhcj0keyExfQogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgZWMsZmksRDVhLGVydD1nKCgpPT57cGUoKTtVYSgpOyQ1YSgpO2VjPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRDVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbWFnZS12aWV3ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdO3ZhciB1ZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0ltYWdlVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGxlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCgpXSxjPVtMKCldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxoZT1bWSgpXSxlYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic3JjImluIFEsImhhcyIpLGdldDppKFE9PlEuc3JjLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNyYz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sbyxsKSxlYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iYWx0ImluIFEsImhhcyIpLGdldDppKFE9PlEuYWx0LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmFsdD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sZCx1KSxlYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iZml0ImluIFEsImhhcyIpLGdldDppKFE9PlEuZml0LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmZpdD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sYix2KSxlYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaG93VG9vbGJhciJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNob3dUb29sYmFyPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxtLGYpLGVjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiem9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iem9vbSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnpvb20sImdldCIpLHNldDppKChRLGllKT0+e1Euem9vbT1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sTSx6KSxlYyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhblgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InBhblgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5wYW5YLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnBhblg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LEMsXyksZWModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5ZIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJwYW5ZImluIFEsImhhcyIpLGdldDppKFE9PlEucGFuWSwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5wYW5ZPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSwkLEUpLGVjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaXNEcmFnZ2luZyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmlzRHJhZ2dpbmcsImdldCIpLHNldDppKChRLGllKT0+e1EuaXNEcmFnZ2luZz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sayxTKSxlYyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImxvYWRpbmciaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmxvYWRpbmc9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LFAsUiksZWModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iZXJyb3IiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5lcnJvciwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5lcnJvcj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sVixXKSxlYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaW1hZ2VOYXR1cmFsV2lkdGgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pbWFnZU5hdHVyYWxXaWR0aCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5pbWFnZU5hdHVyYWxXaWR0aD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sQixVKSxlYyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImltYWdlTmF0dXJhbEhlaWdodCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmltYWdlTmF0dXJhbEhlaWdodCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5pbWFnZU5hdHVyYWxIZWlnaHQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LEYsaiksZWMobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bGV9LG51bGwsdCksdWU9YT1lLnZhbHVlLGxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmxlfSl9c3RhdGljIGRlbW89VDVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1maSh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKGxlKXt0aGlzLiNlPWxlfSN0PShmaSh0aGlzLGwpLGZpKHRoaXMsZCwiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KGxlKXt0aGlzLiN0PWxlfSNhPShmaSh0aGlzLHUpLGZpKHRoaXMsYiwiY29udGFpbiIpKTtnZXQgZml0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpdChsZSl7dGhpcy4jYT1sZX0jcz0oZmkodGhpcyx2KSxmaSh0aGlzLG0sITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1Rvb2xiYXIobGUpe3RoaXMuI3M9bGV9I2k9KGZpKHRoaXMsZiksZmkodGhpcyxNLDEpKTtnZXQgem9vbSgpe3JldHVybiB0aGlzLiNpfXNldCB6b29tKGxlKXt0aGlzLiNpPWxlfSNyPShmaSh0aGlzLHopLGZpKHRoaXMsQywwKSk7Z2V0IHBhblgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcGFuWChsZSl7dGhpcy4jcj1sZX0jbz0oZmkodGhpcyxfKSxmaSh0aGlzLCQsMCkpO2dldCBwYW5ZKCl7cmV0dXJuIHRoaXMuI299c2V0IHBhblkobGUpe3RoaXMuI289bGV9I249KGZpKHRoaXMsRSksZmkodGhpcyxrLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNEcmFnZ2luZyhsZSl7dGhpcy4jbj1sZX0jbD0oZmkodGhpcyxTKSxmaSh0aGlzLFAsITApKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNsfXNldCBsb2FkaW5nKGxlKXt0aGlzLiNsPWxlfSNjPShmaSh0aGlzLFIpLGZpKHRoaXMsViwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNjfXNldCBlcnJvcihsZSl7dGhpcy4jYz1sZX0jZD0oZmkodGhpcyxXKSxmaSh0aGlzLEIsMCkpO2dldCBpbWFnZU5hdHVyYWxXaWR0aCgpe3JldHVybiB0aGlzLiNkfXNldCBpbWFnZU5hdHVyYWxXaWR0aChsZSl7dGhpcy4jZD1sZX0jdT0oZmkodGhpcyxVKSxmaSh0aGlzLEYsMCkpO2dldCBpbWFnZU5hdHVyYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KGxlKXt0aGlzLiN1PWxlfWRyYWdTdGFydFg9KGZpKHRoaXMsaiksMCk7ZHJhZ1N0YXJ0WT0wO2RyYWdTdGFydFBhblg9MDtkcmFnU3RhcnRQYW5ZPTA7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgfQoKICAgICAgICAuem9vbS1sZXZlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbWluLXdpZHRoOiA0OHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgY3Vyc29yOiAke3RoaXMuem9vbT4xP3RoaXMuaXNEcmFnZ2luZz8iZ3JhYmJpbmciOiJncmFiIjoiZGVmYXVsdCJ9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrZXJib2FyZCB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6CiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB0cmFuc3BhcmVudCA3NSUsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSA3NSUpLAogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFuc3BhcmVudCA3NSUsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSA3NSUpOwogICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDAgOHB4LCA4cHggLThweCwgLThweCAwcHg7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke3RoaXMucGFuWH1weCwgJHt0aGlzLnBhbll9cHgpIHNjYWxlKCR7dGhpcy56b29tfSk7CiAgICAgICAgICB0cmFuc2l0aW9uOiAke3RoaXMuaXNEcmFnZ2luZz8ibm9uZSI6InRyYW5zZm9ybSAwLjJzIGVhc2UifTsKICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcgewogICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICAgIG9iamVjdC1maXQ6ICR7dGhpcy5maXR9OwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS13cmFwcGVyIGltZy5hY3R1YWwgewogICAgICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICAgIG9iamVjdC1maXQ6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDAuOCkiLCJyZ2JhKDAsMCwwLDAuNikiKX07CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IC5lcnJvci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtaW5mbyB7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dUb29sYmFyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuem9vbU91dH0gdGl0bGU9Ilpvb20gb3V0Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnJlc2V0Wm9vbX0+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iem9vbS1sZXZlbCI+JHtNYXRoLnJvdW5kKHRoaXMuem9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuem9vbUlufSB0aXRsZT0iWm9vbSBpbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tSW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuZml0VG9TY3JlZW59IHRpdGxlPSJGaXQgdG8gc2NyZWVuIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOk1heGltaXplIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5hY3R1YWxTaXplfSB0aXRsZT0iQWN0dWFsIHNpemUgKDEwMCUpIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNjYW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuZG93bmxvYWR9IHRpdGxlPSJEb3dubG9hZCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGg+MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlLWluZm8iPiR7dGhpcy5pbWFnZU5hdHVyYWxXaWR0aH0geCAke3RoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJpbWFnZS1hcmVhIgogICAgICAgICAgQHdoZWVsPSR7dGhpcy5oYW5kbGVXaGVlbH0KICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZU1vdXNlRG93bn0KICAgICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLmhhbmRsZU1vdXNlTW92ZX0KICAgICAgICAgIEBtb3VzZXVwPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLmhhbmRsZU1vdXNlVXB9CiAgICAgICAgICBAZGJsY2xpY2s9JHt0aGlzLmhhbmRsZURvdWJsZUNsaWNrfQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrZXJib2FyZCI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIj4KICAgICAgICAgICAgJHt0aGlzLnNyYz93YAogICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuZml0PT09ImFjdHVhbCI/ImFjdHVhbCI6IiJ9IgogICAgICAgICAgICAgICAgc3JjPSIke3RoaXMuc3JjfSIKICAgICAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgICAgICBAbG9hZD0ke3RoaXMuaGFuZGxlSW1hZ2VMb2FkfQogICAgICAgICAgICAgICAgQGVycm9yPSR7dGhpcy5oYW5kbGVJbWFnZUVycm9yfQogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMubG9hZGluZyYmdGhpcy5zcmM/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0ibHVjaWRlOkltYWdlT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9em9vbUluKCl7dGhpcy56b29tPU1hdGgubWluKDEwLHRoaXMuem9vbSoxLjI1KX16b29tT3V0KCl7dGhpcy56b29tPU1hdGgubWF4KC4xLHRoaXMuem9vbS8xLjI1KSx0aGlzLnpvb208PTEmJih0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9cmVzZXRab29tKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTB9Zml0VG9TY3JlZW4oKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iY29udGFpbiJ9YWN0dWFsU2l6ZSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wLHRoaXMuZml0PSJhY3R1YWwifWRvd25sb2FkKCl7aWYoIXRoaXMuc3JjKXJldHVybjtsZXQgbGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2xlLmhyZWY9dGhpcy5zcmMsbGUuZG93bmxvYWQ9dGhpcy5zcmMuc3BsaXQoIi8iKS5wb3AoKXx8ImltYWdlIixsZS5jbGljaygpfWhhbmRsZUltYWdlTG9hZChsZSl7bGV0IFE9bGUudGFyZ2V0O3RoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSIiLHRoaXMuaW1hZ2VOYXR1cmFsV2lkdGg9US5uYXR1cmFsV2lkdGgsdGhpcy5pbWFnZU5hdHVyYWxIZWlnaHQ9US5uYXR1cmFsSGVpZ2h0fWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgaW1hZ2UifWhhbmRsZVdoZWVsKGxlKXtsZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBRPWxlLmRlbHRhWT4wPy45OjEuMSxpZT1NYXRoLm1pbigxMCxNYXRoLm1heCguMSx0aGlzLnpvb20qUSkpO3RoaXMuem9vbT1pZSx0aGlzLnpvb208PTEmJih0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9aGFuZGxlTW91c2VEb3duKGxlKXt0aGlzLnpvb208PTF8fCh0aGlzLmlzRHJhZ2dpbmc9ITAsdGhpcy5kcmFnU3RhcnRYPWxlLmNsaWVudFgsdGhpcy5kcmFnU3RhcnRZPWxlLmNsaWVudFksdGhpcy5kcmFnU3RhcnRQYW5YPXRoaXMucGFuWCx0aGlzLmRyYWdTdGFydFBhblk9dGhpcy5wYW5ZKX1oYW5kbGVNb3VzZU1vdmUobGUpe3RoaXMuaXNEcmFnZ2luZyYmKHRoaXMucGFuWD10aGlzLmRyYWdTdGFydFBhblgrKGxlLmNsaWVudFgtdGhpcy5kcmFnU3RhcnRYKSx0aGlzLnBhblk9dGhpcy5kcmFnU3RhcnRQYW5ZKyhsZS5jbGllbnRZLXRoaXMuZHJhZ1N0YXJ0WSkpfWhhbmRsZU1vdXNlVXAoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRG91YmxlQ2xpY2soKXt0aGlzLnpvb209PT0xP3RoaXMuem9vbT0yOih0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9dXBkYXRlZChsZSl7c3VwZXIudXBkYXRlZChsZSksbGUuaGFzKCJzcmMiKSYmKHRoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSIiLHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wLHRoaXMuaW1hZ2VOYXR1cmFsV2lkdGg9MCx0aGlzLmltYWdlTmF0dXJhbEhlaWdodD0wKX1zdGF0aWN7ZmkoYSx0KX19O3JldHVybiB1ZT1hfSkoKX0pO3ZhciBMNWE9ZygoKT0+e2VydCgpfSk7dmFyIEU1YSxQNWE9ZygoKT0+e3BlKCk7RTVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRoIFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1ZGlvIHBsYXllciB3aXRoIHdhdmVmb3JtIHZpc3VhbGl6YXRpb24gYW5kIGZ1bGwgdHJhbnNwb3J0IGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAxIgogICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRob3V0IFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBhdWRpbyBwbGF5ZXIgd2l0aCBhIHNlZWtiYXIgaW5zdGVhZCBvZiBhIHdhdmVmb3JtLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMi5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgIC5zaG93V2F2ZWZvcm09JHshMX0KICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWluaW1hbCBBdWRpbyBQbGF5ZXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Tm8gdGl0bGUgb3IgYXJ0aXN0IG1ldGFkYXRhIOKAlCBqdXN0IHRoZSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIHVuLHpzLEk1YSx0cnQ9ZygoKT0+e3BlKCk7VWEoKTtQNWEoKTt1bj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0senM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEk1YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXVkaW8tdmlld2VyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBdWRpb1ZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBxPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCgpXSxjPVtMKCldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0sdW4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNyYyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNyYywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zcmM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbyxsKSx1bih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJ0aXRsZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnRpdGxlLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnRpdGxlPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGQsdSksdW4odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcnRpc3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFydGlzdCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFydGlzdCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5hcnRpc3Q9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sYix2KSx1bih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXYXZlZm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ic2hvd1dhdmVmb3JtImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd1dhdmVmb3JtLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnNob3dXYXZlZm9ybT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxtLGYpLHVuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImF1dG9wbGF5ImluIEEsImhhcyIpLGdldDppKEE9PkEuYXV0b3BsYXksImdldCIpLHNldDppKChBLHNlKT0+e0EuYXV0b3BsYXk9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sTSx6KSx1bih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxvb3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+Imxvb3AiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5sb29wLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmxvb3A9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sQyxfKSx1bih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iaXNQbGF5aW5nImluIEEsImhhcyIpLGdldDppKEE9PkEuaXNQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmlzUGxheWluZz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSwkLEUpLHVuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImN1cnJlbnRUaW1lImluIEEsImhhcyIpLGdldDppKEE9PkEuY3VycmVudFRpbWUsImdldCIpLHNldDppKChBLHNlKT0+e0EuY3VycmVudFRpbWU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sayxTKSx1bih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJkdXJhdGlvbiJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmR1cmF0aW9uPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFAsUiksdW4odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InZvbHVtZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnZvbHVtZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS52b2x1bWU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sVixXKSx1bih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc011dGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJpc011dGVkImluIEEsImhhcyIpLGdldDppKEE9PkEuaXNNdXRlZCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5pc011dGVkPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEIsVSksdW4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibG9hZGluZyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmxvYWRpbmcsImdldCIpLHNldDppKChBLHNlKT0+e0EubG9hZGluZz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxGLGopLHVuKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJlcnJvciJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmVycm9yLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmVycm9yPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGxlLFEpLHVuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4id2F2ZWZvcm1EYXRhImluIEEsImhhcyIpLGdldDppKEE9PkEud2F2ZWZvcm1EYXRhLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLndhdmVmb3JtRGF0YT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSx0ZSxlZSksdW4odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1SZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4id2F2ZWZvcm1SZWFkeSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLndhdmVmb3JtUmVhZHksImdldCIpLHNldDppKChBLHNlKT0+e0Eud2F2ZWZvcm1SZWFkeT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxYLFopLHVuKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnF9LG51bGwsdCkseWU9YT1lLnZhbHVlLHEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pfXN0YXRpYyBkZW1vPUU1YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07I2U9enModGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhxKXt0aGlzLiNlPXF9I3Q9KHpzKHRoaXMsbCksenModGhpcyxkLCIiKSk7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpdGxlKHEpe3RoaXMuI3Q9cX0jYT0oenModGhpcyx1KSx6cyh0aGlzLGIsIiIpKTtnZXQgYXJ0aXN0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFydGlzdChxKXt0aGlzLiNhPXF9I3M9KHpzKHRoaXMsdiksenModGhpcyxtLCEwKSk7Z2V0IHNob3dXYXZlZm9ybSgpe3JldHVybiB0aGlzLiNzfXNldCBzaG93V2F2ZWZvcm0ocSl7dGhpcy4jcz1xfSNpPSh6cyh0aGlzLGYpLHpzKHRoaXMsTSwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNpfXNldCBhdXRvcGxheShxKXt0aGlzLiNpPXF9I3I9KHpzKHRoaXMseiksenModGhpcyxDLCExKSk7Z2V0IGxvb3AoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbG9vcChxKXt0aGlzLiNyPXF9I289KHpzKHRoaXMsXyksenModGhpcywkLCExKSk7Z2V0IGlzUGxheWluZygpe3JldHVybiB0aGlzLiNvfXNldCBpc1BsYXlpbmcocSl7dGhpcy4jbz1xfSNuPSh6cyh0aGlzLEUpLHpzKHRoaXMsaywwKSk7Z2V0IGN1cnJlbnRUaW1lKCl7cmV0dXJuIHRoaXMuI259c2V0IGN1cnJlbnRUaW1lKHEpe3RoaXMuI249cX0jbD0oenModGhpcyxTKSx6cyh0aGlzLFAsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNsfXNldCBkdXJhdGlvbihxKXt0aGlzLiNsPXF9I2M9KHpzKHRoaXMsUiksenModGhpcyxWLDEpKTtnZXQgdm9sdW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZvbHVtZShxKXt0aGlzLiNjPXF9I2Q9KHpzKHRoaXMsVyksenModGhpcyxCLCExKSk7Z2V0IGlzTXV0ZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNNdXRlZChxKXt0aGlzLiNkPXF9I3U9KHpzKHRoaXMsVSksenModGhpcyxGLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbG9hZGluZyhxKXt0aGlzLiN1PXF9I3A9KHpzKHRoaXMsaiksenModGhpcyxsZSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNwfXNldCBlcnJvcihxKXt0aGlzLiNwPXF9I2g9KHpzKHRoaXMsUSksenModGhpcyx0ZSxbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jaH1zZXQgd2F2ZWZvcm1EYXRhKHEpe3RoaXMuI2g9cX0jZj0oenModGhpcyxlZSksenModGhpcyxYLCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jZn1zZXQgd2F2ZWZvcm1SZWFkeShxKXt0aGlzLiNmPXF9YXVkaW9FbGVtZW50PSh6cyh0aGlzLFopLG51bGwpO2NhbnZhc0VsZW1lbnQ9bnVsbDthbmltRnJhbWVJZD0wO3ZvbHVtZUJlZm9yZU11dGU9MTtyZW5kZXIoKXtsZXQgcT10aGlzLnRpdGxlJiZ0aGlzLmFydGlzdD9gJHt0aGlzLnRpdGxlfSBcdTIwMTQgJHt0aGlzLmFydGlzdH1gOnRoaXMudGl0bGV8fHRoaXMuYXJ0aXN0fHwiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnZpZXdlci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgyMTUgMjAlIDEwJSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRpbWUtZGlzcGxheSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBtaW4td2lkdGg6IDkwcHg7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyIHsKICAgICAgICAgIHdpZHRoOiA3MHB4OwogICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAud2F2ZWZvcm0tY29udGFpbmVyIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1jb250YWluZXIgewogICAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1maWxsIHsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyOwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IC5lcnJvci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzUGxheWluZz8iUGF1c2UiOiJQbGF5In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWUtZGlzcGxheSI+CiAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7cT93YAogICAgICAgICAgICA8c3BhbiBjbGFzcz0idG9vbGJhci10aXRsZSI+JHtxfTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cC0tZW5kIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMubG9vcD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMb29wfQogICAgICAgICAgICAgIHRpdGxlPSJMb29wIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UmVwZWF0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2b2x1bWUtZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9IHRpdGxlPSIke3RoaXMuaXNNdXRlZD8iVW5tdXRlIjoiTXV0ZSJ9Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc011dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgdHlwZT0icmFuZ2UiCiAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICBzdGVwPSIwLjAxIgogICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMuaXNNdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlVm9sdW1lQ2hhbmdlfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0ibHVjaWRlOk11c2ljT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLnNob3dXYXZlZm9ybT93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlV2F2ZWZvcm1DbGlja30+CiAgICAgICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWtiYXJDbGlja30+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1maWxsIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5kdXJhdGlvbj90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb24qMTAwOjB9JSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNyYyYmdGhpcy5pbml0QXVkaW8oKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhbnVwKCl9YXN5bmMgdXBkYXRlZChxKXtzdXBlci51cGRhdGVkKHEpLHEuaGFzKCJzcmMiKSYmdGhpcy5zcmMmJih0aGlzLmNsZWFudXAoKSx0aGlzLmluaXRBdWRpbygpKSwocS5oYXMoIndhdmVmb3JtRGF0YSIpfHxxLmhhcygiY3VycmVudFRpbWUiKSkmJnRoaXMuZHJhd1dhdmVmb3JtKCl9cGxheSgpe3RoaXMuYXVkaW9FbGVtZW50Py5wbGF5KCl9cGF1c2UoKXt0aGlzLmF1ZGlvRWxlbWVudD8ucGF1c2UoKX10b2dnbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc/dGhpcy5wYXVzZSgpOnRoaXMucGxheSgpfXNlZWsocSl7dGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZT1xKX1zZXRWb2x1bWUocSl7dGhpcy52b2x1bWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHEpKSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSksdGhpcy52b2x1bWU+MCYmKHRoaXMuaXNNdXRlZD0hMSl9dG9nZ2xlTXV0ZSgpe3RoaXMuaXNNdXRlZD8odGhpcy5pc011dGVkPSExLHRoaXMudm9sdW1lPXRoaXMudm9sdW1lQmVmb3JlTXV0ZXx8LjUsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpKToodGhpcy52b2x1bWVCZWZvcmVNdXRlPXRoaXMudm9sdW1lLHRoaXMuaXNNdXRlZD0hMCx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT0wKSl9dG9nZ2xlTG9vcCgpe3RoaXMubG9vcD0hdGhpcy5sb29wLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQubG9vcD10aGlzLmxvb3ApfWluaXRBdWRpbygpe3RoaXMuYXVkaW9FbGVtZW50PW5ldyBBdWRpbyx0aGlzLmF1ZGlvRWxlbWVudC5jcm9zc09yaWdpbj0iYW5vbnltb3VzIix0aGlzLmF1ZGlvRWxlbWVudC5zcmM9dGhpcy5zcmMsdGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMuaXNNdXRlZD8wOnRoaXMudm9sdW1lLHRoaXMuYXVkaW9FbGVtZW50Lmxvb3A9dGhpcy5sb29wLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249dGhpcy5hdWRpb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMCx0aGlzLnN0YXJ0VGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGF1c2UiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5zdG9wVGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZW5kZWQiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5zdG9wVGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgYXVkaW8iLHRoaXMubG9hZGluZz0hMX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRpbWV1cGRhdGUiLCgpPT57dGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZX0pLHRoaXMuYXV0b3BsYXkmJnRoaXMuYXVkaW9FbGVtZW50LnBsYXkoKS5jYXRjaCgoKT0+e30pLHRoaXMuc2hvd1dhdmVmb3JtJiZ0aGlzLmxvYWRXYXZlZm9ybSgpfWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXt0aGlzLmxvYWRpbmc9ITA7bGV0IEE9YXdhaXQoYXdhaXQgZmV0Y2godGhpcy5zcmMpKS5hcnJheUJ1ZmZlcigpLHNlPW5ldyBBdWRpb0NvbnRleHQsYWU9KGF3YWl0IHNlLmRlY29kZUF1ZGlvRGF0YShBKSkuZ2V0Q2hhbm5lbERhdGEoMCksVGU9MjAwLFJlPU1hdGguZmxvb3IoYWUubGVuZ3RoL1RlKSxCZT1bXTtmb3IobGV0IERlPTA7RGU8VGU7RGUrKyl7bGV0IF9lPTA7Zm9yKGxldCBDZT0wO0NlPFJlO0NlKyspX2UrPU1hdGguYWJzKGFlW0RlKlJlK0NlXSk7QmUucHVzaChfZS9SZSl9bGV0IEdlPU1hdGgubWF4KC4uLkJlKTt0aGlzLndhdmVmb3JtRGF0YT1CZS5tYXAoRGU9PkdlPjA/RGUvR2U6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLHRoaXMubG9hZGluZz0hMSxhd2FpdCBzZS5jbG9zZSgpfWNhdGNoe3RoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmxvYWRpbmc9ITF9fWRyYXdXYXZlZm9ybSgpe2lmKCF0aGlzLnNob3dXYXZlZm9ybXx8IXRoaXMud2F2ZWZvcm1SZWFkeSlyZXR1cm47bGV0IHE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTtpZighcSlyZXR1cm47dGhpcy5jYW52YXNFbGVtZW50PXE7bGV0IEE9cS5wYXJlbnRFbGVtZW50LHNlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLG9lPUEuY2xpZW50V2lkdGgsYWU9QS5jbGllbnRIZWlnaHQ7cS53aWR0aD1vZSpzZSxxLmhlaWdodD1hZSpzZTtsZXQgVGU9cS5nZXRDb250ZXh0KCIyZCIpO2lmKCFUZSlyZXR1cm47VGUuc2NhbGUoc2Usc2UpLFRlLmNsZWFyUmVjdCgwLDAsb2UsYWUpO2xldCBSZT10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoUmU9PT0wKXJldHVybjtsZXQgQmU9b2UvUmUsR2U9dGhpcy5kdXJhdGlvbj4wP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbjowLERlPU1hdGguZmxvb3IoR2UqUmUpLF9lPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyxDZT1fZT8iaHNsKDIxMyA5MyUgNjglKSI6ImhzbCgyMTcgOTElIDYwJSkiLHZlPV9lPyJoc2woMjE3IDI1JSAyMiUpIjoiaHNsKDIxNCAzMSUgODYlKSI7Zm9yKGxldCBiZT0wO2JlPFJlO2JlKyspe2xldCBFZT10aGlzLndhdmVmb3JtRGF0YVtiZV0samU9TWF0aC5tYXgoMixFZSooYWUtNCkpLFdlPWJlKkJlLHN0PShhZS1qZSkvMjtUZS5maWxsU3R5bGU9YmU8RGU/Q2U6dmUsVGUuZmlsbFJlY3QoV2UrLjUsc3QsQmUtMSxqZSl9fWhhbmRsZVdhdmVmb3JtQ2xpY2socSl7bGV0IEE9cS5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPShxLmNsaWVudFgtQS5sZWZ0KS9BLndpZHRoO3RoaXMuc2VlayhzZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVTZWVrYmFyQ2xpY2socSl7bGV0IEE9cS5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPShxLmNsaWVudFgtQS5sZWZ0KS9BLndpZHRoO3RoaXMuc2VlayhzZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVWb2x1bWVDaGFuZ2UocSl7bGV0IEE9cGFyc2VGbG9hdChxLnRhcmdldC52YWx1ZSk7dGhpcy5zZXRWb2x1bWUoQSl9c3RhcnRUaW1lVXBkYXRlKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpO2xldCBxPWkoKCk9Pnt0aGlzLmF1ZGlvRWxlbWVudCYmdGhpcy5pc1BsYXlpbmcmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lLHRoaXMuYW5pbUZyYW1lSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHEpKX0sInVwZGF0ZSIpO3RoaXMuYW5pbUZyYW1lSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHEpfXN0b3BUaW1lVXBkYXRlKCl7dGhpcy5hbmltRnJhbWVJZCYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbUZyYW1lSWQpLHRoaXMuYW5pbUZyYW1lSWQ9MCl9Zm9ybWF0VGltZShxKXtpZighaXNGaW5pdGUocSl8fHE8MClyZXR1cm4iMDowMCI7bGV0IEE9TWF0aC5mbG9vcihxLzYwKSxzZT1NYXRoLmZsb29yKHElNjApO3JldHVybmAke0F9OiR7c2UudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1jbGVhbnVwKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQucGF1c2UoKSx0aGlzLmF1ZGlvRWxlbWVudC5zcmM9IiIsdGhpcy5hdWRpb0VsZW1lbnQ9bnVsbCksdGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuZHVyYXRpb249MCx0aGlzLndhdmVmb3JtRGF0YT1bXSx0aGlzLndhdmVmb3JtUmVhZHk9ITF9c3RhdGlje3pzKGEsdCl9fTtyZXR1cm4geWU9YX0pKCl9KTt2YXIgQTVhPWcoKCk9Pnt0cnQoKX0pO3ZhciBONWEsUjVhPWcoKCk9PntwZSgpO041YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZpZGVvIHdpdGggQ3VzdG9tIENvbnRyb2xzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgdmlkZW8gcGxheWVyIHdpdGggb3ZlcmxheSBjb250cm9scywgc2Vla2luZywgYW5kIHZvbHVtZSBhZGp1c3RtZW50LjwvZGl2PgogICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0JpZ0J1Y2tCdW5ueS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvQmlnQnVja0J1bm55LmpwZyIKICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXV0b3BsYXkgTXV0ZWQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdGhhdCBhdXRvcGxheXMgbXV0ZWQsIGNvbW1vbmx5IHVzZWQgZm9yIHByZXZpZXdzLjwvZGl2PgogICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0VsZXBoYW50c0RyZWFtLm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL2ltYWdlcy9FbGVwaGFudHNEcmVhbS5qcGciCiAgICAgICAgLmF1dG9wbGF5PSR7ITB9CiAgICAgICAgLm11dGVkPSR7ITB9CiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5hdGl2ZSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyB1c2luZyBicm93c2VyLW5hdGl2ZSBjb250cm9scyBpbnN0ZWFkIG9mIGN1c3RvbSBvdmVybGF5LjwvZGl2PgogICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0ZvckJpZ2dlckJsYXplcy5tcDQiCiAgICAgICAgLnNob3dDb250cm9scz0keyExfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgRm4scXMsTzVhLGFydD1nKCgpPT57cGUoKTtVYSgpO1I1YSgpO0ZuPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxxcz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sTzVhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy12aWRlby12aWV3ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVmlkZW9WaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgWD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sRm4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InNyYyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnNyYywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5zcmM9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbyxsKSxGbih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icG9zdGVyImluIFosImhhcyIpLGdldDppKFo9PloucG9zdGVyLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBvc3Rlcj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxkLHUpLEZuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzaG93Q29udHJvbHMiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaG93Q29udHJvbHMsImdldCIpLHNldDppKChaLHllKT0+e1ouc2hvd0NvbnRyb2xzPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGIsdiksRm4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iYXV0b3BsYXkiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5hdXRvcGxheSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5hdXRvcGxheT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxtLGYpLEZuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ibG9vcCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxvb3AsImdldCIpLHNldDppKChaLHllKT0+e1oubG9vcD15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxNLHopLEZuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Im11dGVkImluIFosImhhcyIpLGdldDppKFo9PloubXV0ZWQsImdldCIpLHNldDppKChaLHllKT0+e1oubXV0ZWQ9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sQyxfKSxGbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iaXNQbGF5aW5nImluIFosImhhcyIpLGdldDppKFo9PlouaXNQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmlzUGxheWluZz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSwkLEUpLEZuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImN1cnJlbnRUaW1lImluIFosImhhcyIpLGdldDppKFo9PlouY3VycmVudFRpbWUsImdldCIpLHNldDppKChaLHllKT0+e1ouY3VycmVudFRpbWU9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sayxTKSxGbih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJkdXJhdGlvbiJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmR1cmF0aW9uPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFAsUiksRm4odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZvbHVtZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnZvbHVtZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi52b2x1bWU9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVixXKSxGbih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJsb2FkaW5nImluIFosImhhcyIpLGdldDppKFo9PloubG9hZGluZywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5sb2FkaW5nPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEIsVSksRm4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImVycm9yImluIFosImhhcyIpLGdldDppKFo9PlouZXJyb3IsImdldCIpLHNldDppKChaLHllKT0+e1ouZXJyb3I9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sRixqKSxGbih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0Z1bGxzY3JlZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzRnVsbHNjcmVlbiJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmlzRnVsbHNjcmVlbiwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5pc0Z1bGxzY3JlZW49eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbGUsUSksRm4odGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udHJvbHNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjb250cm9sc1Zpc2libGUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5jb250cm9sc1Zpc2libGUsImdldCIpLHNldDppKChaLHllKT0+e1ouY29udHJvbHNWaXNpYmxlPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LHRlLGVlKSxGbihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpYfSxudWxsLHQpLGtlPWE9ZS52YWx1ZSxYJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlh9KX1zdGF0aWMgZGVtbz1ONWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPXFzKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoWCl7dGhpcy4jZT1YfSN0PShxcyh0aGlzLGwpLHFzKHRoaXMsZCwiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKFgpe3RoaXMuI3Q9WH0jYT0ocXModGhpcyx1KSxxcyh0aGlzLGIsITApKTtnZXQgc2hvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dDb250cm9scyhYKXt0aGlzLiNhPVh9I3M9KHFzKHRoaXMsdikscXModGhpcyxtLCExKSk7Z2V0IGF1dG9wbGF5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGF1dG9wbGF5KFgpe3RoaXMuI3M9WH0jaT0ocXModGhpcyxmKSxxcyh0aGlzLE0sITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNpfXNldCBsb29wKFgpe3RoaXMuI2k9WH0jcj0ocXModGhpcyx6KSxxcyh0aGlzLEMsITEpKTtnZXQgbXV0ZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbXV0ZWQoWCl7dGhpcy4jcj1YfSNvPShxcyh0aGlzLF8pLHFzKHRoaXMsJCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKFgpe3RoaXMuI289WH0jbj0ocXModGhpcyxFKSxxcyh0aGlzLGssMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50VGltZShYKXt0aGlzLiNuPVh9I2w9KHFzKHRoaXMsUykscXModGhpcyxQLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oWCl7dGhpcy4jbD1YfSNjPShxcyh0aGlzLFIpLHFzKHRoaXMsViwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoWCl7dGhpcy4jYz1YfSNkPShxcyh0aGlzLFcpLHFzKHRoaXMsQiwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGxvYWRpbmcoWCl7dGhpcy4jZD1YfSN1PShxcyh0aGlzLFUpLHFzKHRoaXMsRiwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN1fXNldCBlcnJvcihYKXt0aGlzLiN1PVh9I3A9KHFzKHRoaXMsaikscXModGhpcyxsZSwhMSkpO2dldCBpc0Z1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNGdWxsc2NyZWVuKFgpe3RoaXMuI3A9WH0jaD0ocXModGhpcyxRKSxxcyh0aGlzLHRlLCEwKSk7Z2V0IGNvbnRyb2xzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNofXNldCBjb250cm9sc1Zpc2libGUoWCl7dGhpcy4jaD1YfWhpZGVDb250cm9sc1RpbWVyPShxcyh0aGlzLGVlKSxudWxsKTt2aWRlb0VsZW1lbnQ9bnVsbDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnZpZGVvLWNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5OwogICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICB2aWRlbyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC5vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICB3aWR0aDogNjRweDsKICAgICAgICAgIGhlaWdodDogNjRweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmlzUGxheWluZz8wOjF9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6ICR7dGhpcy5pc1BsYXlpbmc/Im5vbmUiOiJhdXRvIn07CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXkgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheTpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxLjEpOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRyb2xzLWJhciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC43KSk7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDEycHggMTJweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBvcGFjaXR5OiAke3RoaXMuY29udHJvbHNWaXNpYmxlfHwhdGhpcy5pc1BsYXlpbmc/MTowfTsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93IHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1yb3c6aG92ZXIgewogICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1wcm9ncmVzcyB7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1yb3cgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jdHJsLWJ1dHRvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5jdHJsLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOwogICAgICAgIH0KCiAgICAgICAgLnRpbWUtZGlzcGxheSB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlciB7CiAgICAgICAgICB3aWR0aDogNjBweDsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InZpZGVvLWNvbnRhaW5lciIKICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLmhhbmRsZU1vdXNlTGVhdmV9CiAgICAgID4KICAgICAgICA8dmlkZW8KICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgIC5wb3N0ZXI9JHt0aGlzLnBvc3Rlcn0KICAgICAgICAgIC5tdXRlZD0ke3RoaXMubXV0ZWR9CiAgICAgICAgICAubG9vcD0ke3RoaXMubG9vcH0KICAgICAgICAgID9hdXRvcGxheT0ke3RoaXMuYXV0b3BsYXl9CiAgICAgICAgICA/Y29udHJvbHM9JHshdGhpcy5zaG93Q29udHJvbHN9CiAgICAgICAgICBwbGF5c2lubGluZQogICAgICAgICAgQGxvYWRlZG1ldGFkYXRhPSR7dGhpcy5oYW5kbGVMb2FkZWRNZXRhZGF0YX0KICAgICAgICAgIEBwbGF5PSR7dGhpcy5oYW5kbGVQbGF5fQogICAgICAgICAgQHBhdXNlPSR7dGhpcy5oYW5kbGVQYXVzZX0KICAgICAgICAgIEBlbmRlZD0ke3RoaXMuaGFuZGxlRW5kZWR9CiAgICAgICAgICBAdGltZXVwZGF0ZT0ke3RoaXMuaGFuZGxlVGltZVVwZGF0ZX0KICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlRXJyb3J9CiAgICAgICAgICBAd2FpdGluZz0keygpPT57dGhpcy5sb2FkaW5nPSEwfX0KICAgICAgICAgIEBjYW5wbGF5PSR7KCk9Pnt0aGlzLmxvYWRpbmc9ITF9fQogICAgICAgID48L3ZpZGVvPgoKICAgICAgICAke3RoaXMuc2hvd0NvbnRyb2xzP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5IiBAY2xpY2s9JHt0aGlzLmhhbmRsZU92ZXJsYXlDbGlja30+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlci1wbGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1iYXIiIEBjbGljaz0ke1g9Plguc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcm93IiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWt9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1wcm9ncmVzcyIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1yb3ciPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BhY2VyIj48L3NwYW4+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLm11dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5tdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZUZ1bGxzY3JlZW59IHRpdGxlPSJGdWxsc2NyZWVuIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzRnVsbHNjcmVlbj8iTWluaW1pemUiOiJNYXhpbWl6ZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlZpZGVvT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy52aWRlb0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpfHxudWxsLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSksdGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpfXBsYXkoKXt0aGlzLnZpZGVvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKFgpe3RoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQuY3VycmVudFRpbWU9WCl9c2V0Vm9sdW1lKFgpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxYKSksdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpfXRvZ2dsZUZ1bGxzY3JlZW4oKXtsZXQgWD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby1jb250YWluZXIiKTtYJiYodGhpcy5pc0Z1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/LigpOlgucmVxdWVzdEZ1bGxzY3JlZW4/LigpKX1oYW5kbGVMb2FkZWRNZXRhZGF0YSgpe3RoaXMudmlkZW9FbGVtZW50JiYodGhpcy5kdXJhdGlvbj10aGlzLnZpZGVvRWxlbWVudC5kdXJhdGlvbix0aGlzLmxvYWRpbmc9ITEpfWhhbmRsZVBsYXkoKXt0aGlzLmlzUGxheWluZz0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlUGF1c2UoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVFbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuY29udHJvbHNWaXNpYmxlPSEwfWhhbmRsZVRpbWVVcGRhdGUoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuY3VycmVudFRpbWU9dGhpcy52aWRlb0VsZW1lbnQuY3VycmVudFRpbWUpfWhhbmRsZUVycm9yKCl7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgdmlkZW8iLHRoaXMubG9hZGluZz0hMX1oYW5kbGVPdmVybGF5Q2xpY2soKXt0aGlzLnRvZ2dsZVBsYXkoKX1oYW5kbGVTZWVrKFgpe2xldCBaPVguY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx5ZT0oWC5jbGllbnRYLVoubGVmdCkvWi53aWR0aDt0aGlzLnNlZWsoeWUqdGhpcy5kdXJhdGlvbil9aGFuZGxlVm9sdW1lQ2hhbmdlKFgpe2xldCBaPXBhcnNlRmxvYXQoWC50YXJnZXQudmFsdWUpO3RoaXMuc2V0Vm9sdW1lKFopLHRoaXMubXV0ZWQ9Wj09PTB9dG9nZ2xlTXV0ZSgpe3RoaXMubXV0ZWQ9IXRoaXMubXV0ZWQsdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC5tdXRlZD10aGlzLm11dGVkKX1oYW5kbGVNb3VzZU1vdmUoKXt0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlTW91c2VMZWF2ZSgpe3RoaXMuaXNQbGF5aW5nJiYodGhpcy5jb250cm9sc1Zpc2libGU9ITEpfXNjaGVkdWxlSGlkZUNvbnRyb2xzKCl7dGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpLHRoaXMuaXNQbGF5aW5nJiYodGhpcy5oaWRlQ29udHJvbHNUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb250cm9sc1Zpc2libGU9ITF9LDNlMykpfWhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U9aSgoKT0+e3RoaXMuaXNGdWxsc2NyZWVuPSEhZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnR9LCJoYW5kbGVGdWxsc2NyZWVuQ2hhbmdlIik7Zm9ybWF0VGltZShYKXtpZighaXNGaW5pdGUoWCl8fFg8MClyZXR1cm4iMDowMCI7bGV0IFo9TWF0aC5mbG9vcihYLzYwKSx5ZT1NYXRoLmZsb29yKFglNjApO3JldHVybmAke1p9OiR7eWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7cXMoYSx0KX19O3JldHVybiBrZT1hfSkoKX0pO3ZhciBGNWE9ZygoKT0+e2FydCgpfSk7dmFyIEdkLHIxZT1nKCgpPT57cGUoKTtHZD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQZGZNYW5hZ2VyIil9c3RhdGljIHBkZmpzTGliO3N0YXRpYyBpbml0aWFsaXplZD0hMTtzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMuaW5pdGlhbGl6ZWR8fCh0aGlzLnBkZmpzTGliPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpLHRoaXMucGRmanNMaWIuR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzIix0aGlzLmluaXRpYWxpemVkPSEwKX1zdGF0aWMgYXN5bmMgbG9hZERvY3VtZW50KGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemUoKSxhd2FpdCB0aGlzLnBkZmpzTGliLmdldERvY3VtZW50KGUpLnByb21pc2V9c3RhdGljIHJlbGVhc2VEb2N1bWVudChlKXt9fX0pO3ZhciBCNWEsSDVhPWcoKCk9PntwZSgpO3B0KCk7QjVhPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIGNvbnRhaW46IGxheW91dCBzdHlsZTsKICAgIH0KCiAgICBkZWVzLXRpbGUgewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXI6OmJlZm9yZSwKICAgIC52aWV3ZXItY29udGFpbmVyOjphZnRlciB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBoZWlnaHQ6IDhweDsKICAgICAgei1pbmRleDogNTsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXI6OmJlZm9yZSB7CiAgICAgIHRvcDogMDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIHRvIGJvdHRvbSwKICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDAlIC8gMC40KSIpfSwKICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgdHJhbnNwYXJlbnQKICAgICAgKTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YWZ0ZXIgewogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICB0byB0b3AsCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAwJSAvIDAuMTIpIil9LAogICAgICAgIHRyYW5zcGFyZW50CiAgICAgICk7CiAgICB9CgogICAgLnRvb2xiYXIgewogICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA0cHg7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAtLWVuZCB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b246ZGlzYWJsZWQgewogICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KCiAgICAucGFnZS1pbmZvIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnBhZ2UtaW5wdXQgewogICAgICB3aWR0aDogNDhweDsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyIDQ3JSAxMSUpIiwiaHNsKDIxMCAyMCUgOTYlKSIpfTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICBvdXRsaW5lOiBub25lOwogICAgfQoKICAgIC5wYWdlLWlucHV0OmZvY3VzIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICB9CgogICAgLnBhZ2Utc2VwYXJhdG9yIHsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA2MCUpIiwiaHNsKDIxNSAxNiUgNTAlKSIpfTsKICAgIH0KCiAgICAuem9vbS1sZXZlbCB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbWluLXdpZHRoOiA0OHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5zaWRlYmFyIHsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIG9yZGVyOiAwOwogICAgfQoKICAgIC5zaWRlYmFyLXJpZ2h0IC5zaWRlYmFyIHsKICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgb3JkZXI6IDE7CiAgICB9CgogICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICB9CgogICAgLnNpZGViYXItY2xvc2U6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQoKICAgIC5zaWRlYmFyLWNvbnRlbnQgewogICAgICBmbGV4OiAxOwogICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgfQoKICAgIC50aHVtYm5haWwgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDIxNSAyMCUgMTglKSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAvKiBEZWZhdWx0IEE0IGFzcGVjdCByYXRpbyAoMjk3bW0gLyAyMTBtbSDiiYggMS40MTQpICovCiAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTc2cHggKiAxLjQxNCk7CiAgICB9CgogICAgLnRodW1ibmFpbDpsYXN0LWNoaWxkIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIH0KCiAgICAudGh1bWJuYWlsOmhvdmVyIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDM1JSkiKX07CiAgICB9CgogICAgLnRodW1ibmFpbC5hY3RpdmUgewogICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLnRodW1ibmFpbC1udW1iZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogNHB4OwogICAgICByaWdodDogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC52aWV3ZXItbWFpbiB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBnYXA6IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQoKICAgIC5sb2FkaW5nLXRleHQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnBhZ2VzLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMjBweDsKICAgIH0KCiAgICAucGFnZS13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIC5jYW52YXMtY29udGFpbmVyIHsKICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAucGFnZS1jYW52YXMgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogICAgfQoKICAgIC8qIFRleHQgbGF5ZXIgZm9yIHNlbGVjdGlvbiAqLwogICAgLnRleHQtbGF5ZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7CiAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsKICAgICAgei1pbmRleDogMTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgc3BhbiwKICAgIC50ZXh0LWxheWVyIGJyIHsKICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7CiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgfQoKICAgIC50ZXh0LWxheWVyIDo6c2VsZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDAsIDIwMCwgMC4zKTsKICAgIH0KCiAgICAudGV4dC1sYXllciBicjo6c2VsZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgLmVuZE9mQ29udGVudCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAxMDAlIDAgMDsKICAgICAgei1pbmRleDogMDsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAudGV4dC1sYXllci5zZWxlY3RpbmcgLmVuZE9mQ29udGVudCB7CiAgICAgIHRvcDogMDsKICAgIH0KCiAgICAucGRmLXZpZXdlci53aXRoLXNpZGViYXIgLnZpZXdlci1tYWluIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICB9CgogICAgLnBkZi1mb290ZXIgewogICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1sZWZ0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWxlZnQgLnBkZi1mb290ZXItaXRlbSArIC5wZGYtZm9vdGVyLWl0ZW0gewogICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICB9CgogICAgLnBkZi1mb290ZXItY2VudGVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBsZWZ0OiA1MCU7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1yaWdodCB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWl0ZW0gewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWZpbGVuYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogIGBdfSk7dmFyIHE1YSxqNWE9ZygoKT0+e3BlKCk7cTVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgIH0KCiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgIH0KCiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICB9CgogICAgZGVlcy1wZGYtdmlld2VyIHsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC52aWV3ZXItdGFsbCB7CiAgICAgIGhlaWdodDogODAwcHg7CiAgICB9CgogICAgLnZpZXdlci1jb21wYWN0IHsKICAgICAgaGVpZ2h0OiA1MDBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RnVsbCBGZWF0dXJlZCBQREYgVmlld2VyIHdpdGggVG9vbGJhcjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlBERiBWaWV3ZXIgd2l0aCBTaWRlYmFyIE5hdmlnYXRpb248L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJ0cnVlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLXdpZHRoIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q29tcGFjdCBWaWV3ZXIgd2l0aG91dCBDb250cm9sczwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLWNvbXBhY3QiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9ImZhbHNlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0iYXV0byIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBCbixqcyxWNWEsc3J0PWcoKCk9PntwZSgpO3IxZSgpO0g1YSgpO2o1YSgpO1VhKCk7bnIoKTtCbj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sanM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFY1YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtcGRmLXZpZXdlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQZGZWaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgWD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6TnVtYmVyfSldLEg9W0woe3R5cGU6TnVtYmVyfSldLEk9W0woe3R5cGU6TnVtYmVyfSldLEs9W0woe3R5cGU6Qm9vbGVhbn0pXSxtZT1bTCh7dHlwZTpTdHJpbmd9KV0saGU9W0woe3R5cGU6QXJyYXl9KV0sdWU9W0woe3R5cGU6QXJyYXl9KV0saWU9W0woe3R5cGU6TnVtYmVyfSldLEJuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJwZGZVcmwiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5wZGZVcmwsImdldCIpLHNldDppKChaLHllKT0+e1oucGRmVXJsPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LG8sbCksQm4odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iaW5pdGlhbFBhZ2UiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5pbml0aWFsUGFnZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5pbml0aWFsUGFnZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxkLHUpLEJuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImluaXRpYWxab29tImluIFosImhhcyIpLGdldDppKFo9PlouaW5pdGlhbFpvb20sImdldCIpLHNldDppKChaLHllKT0+e1ouaW5pdGlhbFpvb209eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sYix2KSxCbih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzaG93VG9vbGJhciJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnNob3dUb29sYmFyPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LG0sZiksQm4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2lkZWJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2hvd1NpZGViYXIiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaG93U2lkZWJhciwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5zaG93U2lkZWJhcj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxNLHopLEJuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2lkZWJhclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzaWRlYmFyUG9zaXRpb24iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaWRlYmFyUG9zaXRpb24sImdldCIpLHNldDppKChaLHllKT0+e1ouc2lkZWJhclBvc2l0aW9uPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEMsXyksQm4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iY3VycmVudFBhZ2UiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5jdXJyZW50UGFnZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5jdXJyZW50UGFnZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSwkLEUpLEJuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidG90YWxQYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4idG90YWxQYWdlcyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnRvdGFsUGFnZXMsImdldCIpLHNldDppKChaLHllKT0+e1oudG90YWxQYWdlcz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxrLFMpLEJuKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImN1cnJlbnRab29tImluIFosImhhcyIpLGdldDppKFo9PlouY3VycmVudFpvb20sImdldCIpLHNldDppKChaLHllKT0+e1ouY3VycmVudFpvb209eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sUCxSKSxCbih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImxvYWRpbmciaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmxvYWRpbmc9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVixXKSxCbih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb2N1bWVudElkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJkb2N1bWVudElkImluIFosImhhcyIpLGdldDppKFo9PlouZG9jdW1lbnRJZCwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5kb2N1bWVudElkPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEIsVSksQm4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGh1bWJuYWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4idGh1bWJuYWlsRGF0YSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnRodW1ibmFpbERhdGEsImdldCIpLHNldDppKChaLHllKT0+e1oudGh1bWJuYWlsRGF0YT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxGLGopLEJuKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJwYWdlRGF0YSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnBhZ2VEYXRhLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBhZ2VEYXRhPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGxlLFEpLEJuKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZkZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJwZGZGaWxlU2l6ZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnBkZkZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBkZkZpbGVTaXplPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LHRlLGVlKSxCbihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpYfSxudWxsLHQpLGtlPWE9ZS52YWx1ZSxYJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlh9KX1zdGF0aWMgZGVtbz1xNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdO3N0YXRpYyBzdHlsZXM9QjVhOyNlPWpzKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoWCl7dGhpcy4jZT1YfSN0PShqcyh0aGlzLGwpLGpzKHRoaXMsZCwxKSk7Z2V0IGluaXRpYWxQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxQYWdlKFgpe3RoaXMuI3Q9WH0jYT0oanModGhpcyx1KSxqcyh0aGlzLGIsImF1dG8iKSk7Z2V0IGluaXRpYWxab29tKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGluaXRpYWxab29tKFgpe3RoaXMuI2E9WH0jcz0oanModGhpcyx2KSxqcyh0aGlzLG0sITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1Rvb2xiYXIoWCl7dGhpcy4jcz1YfSNpPShqcyh0aGlzLGYpLGpzKHRoaXMsTSwhMSkpO2dldCBzaG93U2lkZWJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93U2lkZWJhcihYKXt0aGlzLiNpPVh9I3I9KGpzKHRoaXMseiksanModGhpcyxDLCJsZWZ0IikpO2dldCBzaWRlYmFyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2lkZWJhclBvc2l0aW9uKFgpe3RoaXMuI3I9WH0jbz0oanModGhpcyxfKSxqcyh0aGlzLCQsMSkpO2dldCBjdXJyZW50UGFnZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50UGFnZShYKXt0aGlzLiNvPVh9I249KGpzKHRoaXMsRSksanModGhpcyxrLDEpKTtnZXQgdG90YWxQYWdlcygpe3JldHVybiB0aGlzLiNufXNldCB0b3RhbFBhZ2VzKFgpe3RoaXMuI249WH0jbD0oanModGhpcyxTKSxqcyh0aGlzLFAsMSkpO2dldCBjdXJyZW50Wm9vbSgpe3JldHVybiB0aGlzLiNsfXNldCBjdXJyZW50Wm9vbShYKXt0aGlzLiNsPVh9I2M9KGpzKHRoaXMsUiksanModGhpcyxWLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jY31zZXQgbG9hZGluZyhYKXt0aGlzLiNjPVh9I2Q9KGpzKHRoaXMsVyksanModGhpcyxCLCIiKSk7Z2V0IGRvY3VtZW50SWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZG9jdW1lbnRJZChYKXt0aGlzLiNkPVh9I3U9KGpzKHRoaXMsVSksanModGhpcyxGLFtdKSk7Z2V0IHRodW1ibmFpbERhdGEoKXtyZXR1cm4gdGhpcy4jdX1zZXQgdGh1bWJuYWlsRGF0YShYKXt0aGlzLiN1PVh9I3A9KGpzKHRoaXMsaiksanModGhpcyxsZSxbXSkpO2dldCBwYWdlRGF0YSgpe3JldHVybiB0aGlzLiNwfXNldCBwYWdlRGF0YShYKXt0aGlzLiNwPVh9I2g9KGpzKHRoaXMsUSksanModGhpcyx0ZSwwKSk7Z2V0IHBkZkZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHBkZkZpbGVTaXplKFgpe3RoaXMuI2g9WH1wZGZEb2N1bWVudD1qcyh0aGlzLGVlKTtyZW5kZXJTdGF0ZT0iaWRsZSI7cmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGw7cGFnZVJlbmRlcmluZz0hMTtwYWdlTnVtUGVuZGluZz1udWxsO2N1cnJlbnRSZW5kZXJUYXNrPW51bGw7Y3VycmVudFJlbmRlclByb21pc2U9bnVsbDt0aHVtYm5haWxSZW5kZXJUYXNrcz1bXTtwYWdlUmVuZGVyVGFza3M9bmV3IE1hcDt0ZXh0TGF5ZXJSZW5kZXJUYXNrcz1uZXcgTWFwO2NhbnZhcztjdHg7dmlld2VyTWFpbj1udWxsO3Jlc2l6ZU9ic2VydmVyO2ludGVyc2VjdGlvbk9ic2VydmVyO3Njcm9sbFRocm90dGxlVGltZW91dDt2aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3ZpZXdwb3J0TW9kZT0iYXV0byI7TUFOVUFMX01JTl9aT09NPS41O01BTlVBTF9NQVhfWk9PTT0zO0FCU09MVVRFX01JTl9aT09NPS4xO0FCU09MVVRFX01BWF9aT09NPTQ7UEFHRV9HQVA9MjA7UkVOREVSX0JVRkZFUj0zO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHt0aGlzLnNob3dTaWRlYmFyPyJ3aXRoLXNpZGViYXIiOiIifSBzaWRlYmFyLSR7dGhpcy5zaWRlYmFyUG9zaXRpb259Ij4KICAgICAgICAke3RoaXMuc2hvd1Rvb2xiYXI/d2AKICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZTw9MX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uTGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudG90YWxQYWdlc30iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmN1cnJlbnRQYWdlKX0KICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlUGFnZUlucHV0fQogICAgICAgICAgICAgICAgICBjbGFzcz0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS10b3RhbCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPj10aGlzLnRvdGFsUGFnZXN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvblJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tT3V0fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucmVzZXRab29tfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tSW59CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gcGFnZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1dpZHRofQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byB3aWR0aCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcnJvd0xlZnRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCB0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSF0aGlzLnNob3dTaWRlYmFyfQogICAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5zaG93U2lkZWJhcj8iSGlkZSB0aHVtYm5haWxzIjoiU2hvdyB0aHVtYm5haWxzIn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke3RoaXMuc2hvd1NpZGViYXI/Imx1Y2lkZTpTaWRlYmFyQ2xvc2UiOiJsdWNpZGU6U2lkZWJhciJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmRvd25sb2FkUGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IkRvd25sb2FkIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IlByaW50IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlByaW50ZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2lkZWJhci1jbG9zZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9ITF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7Vmkua2V5ZWQodGhpcy5kb2N1bWVudElkLHdgCiAgICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KHRoaXMudGh1bWJuYWlsRGF0YSxYPT5YLnBhZ2UsWD0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2U9PT1YLnBhZ2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBhZ2U9IiR7WC5wYWdlfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaHVtYm5haWxDbGlja30KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0idGh1bWJuYWlsLWNhbnZhcyIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGh1bWJuYWlsLW51bWJlciI+JHtYLnBhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1tYWluIiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPkxvYWRpbmcgUERGLi4uPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgJHtWaS5yZXBlYXQodGhpcy5wYWdlRGF0YSxYPT5YLnBhZ2UsWD0+d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbnZhcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJwYWdlLWNhbnZhcyIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxheWVyIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InBkZi1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icGRmLWZvb3Rlci1sZWZ0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBkZi1mb290ZXItaXRlbSI+Wm9vbSAke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICR7dGhpcy5wZGZGaWxlU2l6ZT4wP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBkZi1mb290ZXItaXRlbSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMucGRmRmlsZVNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGRmLWZvb3Rlci1jZW50ZXIiIHN0eWxlPSJtYXJnaW4tbGVmdDogJHt0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNpZGViYXJQb3NpdGlvbj09PSJsZWZ0Ij8iMTAwcHgiOnRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2lkZWJhclBvc2l0aW9uPT09InJpZ2h0Ij8iLTEwMHB4IjoiMCJ9Ij4KICAgICAgICAgICAgPHNwYW4+UGFnZSAke3RoaXMuY3VycmVudFBhZ2V9IG9mICR7dGhpcy50b3RhbFBhZ2VzfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGRmLWZvb3Rlci1yaWdodCI+CiAgICAgICAgICAgICR7dGhpcy5wZGZVcmw/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGRmLWZvb3Rlci1maWxlbmFtZSI+JHt0aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5wZGZVcmwmJih0aGlzLmRvY3VtZW50SWQ9YCR7dGhpcy5wZGZVcmx9LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsYXdhaXQgdGhpcy5sb2FkUGRmKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDAsdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0KSx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dD12b2lkIDApLHRoaXMucmVuZGVyU3RhdGU9ImRpc3Bvc2VkIixhd2FpdCB0aGlzLmNsZWFudXBEb2N1bWVudCgpLHRoaXMuY2FudmFzPXZvaWQgMCx0aGlzLmN0eD12b2lkIDB9YXN5bmMgdXBkYXRlZChYKXtpZihzdXBlci51cGRhdGVkKFgpLFguaGFzKCJwZGZVcmwiKSYmdGhpcy5wZGZVcmwpe2xldCBaPVguZ2V0KCJwZGZVcmwiKTtaJiZHZC5yZWxlYXNlRG9jdW1lbnQoWiksdGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpfVguaGFzKCJzaG93U2lkZWJhciIpJiZ0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnBkZkRvY3VtZW50JiYoYXdhaXQgbmV3IFByb21pc2UoWj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFopKSx0aGlzLnRodW1ibmFpbERhdGEuZm9yRWFjaChaPT5aLnJlbmRlcmVkPSExKSxhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSx0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KHRoaXMuY3VycmVudFBhZ2UpKX1mb3JtYXRGaWxlU2l6ZShYKXtyZXR1cm4gWDwxMDI0P2Ake1h9IEJgOlg8MTAyNCoxMDI0P2AkeyhYLzEwMjQpLnRvRml4ZWQoMSl9IEtCYDpgJHsoWC8oMTAyNCoxMDI0KSkudG9GaXhlZCgxKX0gTUJgfWFzeW5jIGxvYWRQZGYoKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZW5kZXJTdGF0ZT0ibG9hZGluZyI7dHJ5e2F3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcjtsZXQgWD10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5zaWduYWw7aWYodGhpcy5wZGZEb2N1bWVudD1hd2FpdCBHZC5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLFguYWJvcnRlZClyZXR1cm47dGhpcy50b3RhbFBhZ2VzPXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UGFnZT10aGlzLmluaXRpYWxQYWdlLHRoaXMucmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKTt0cnl7bGV0IFo9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCk7dGhpcy5wZGZGaWxlU2l6ZT1aLmxlbmd0aH1jYXRjaHt0aGlzLnBkZkZpbGVTaXplPTB9aWYodGhpcy50aHVtYm5haWxEYXRhPUFycmF5LmZyb20oe2xlbmd0aDp0aGlzLnRvdGFsUGFnZXN9LChaLHllKT0+KHtwYWdlOnllKzEscmVuZGVyZWQ6ITF9KSksdGhpcy5wYWdlRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwoWix5ZSk9Pih7cGFnZTp5ZSsxLHJlbmRlcmVkOiExLHJlbmRlcmluZzohMSx0ZXh0TGF5ZXJSZW5kZXJlZDohMX0pKSx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmVuc3VyZVZpZXdlclJlZnMoKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSxhd2FpdCBuZXcgUHJvbWlzZShaPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoWikpLFguYWJvcnRlZHx8KHRoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy1tYWluIixhd2FpdCB0aGlzLnJlbmRlclZpc2libGVQYWdlcygpLFguYWJvcnRlZCl8fCh0aGlzLmluaXRpYWxQYWdlPjEmJmF3YWl0IHRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuaW5pdGlhbFBhZ2UsITEpLHRoaXMuc2hvd1NpZGViYXImJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKFo9PnJlcXVlc3RBbmltYXRpb25GcmFtZShaKSksWC5hYm9ydGVkfHwoYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksWC5hYm9ydGVkKSkpKXJldHVybjt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJlZCJ9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBQREY6IixYKSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5yZW5kZXJTdGF0ZT0iZXJyb3IifX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciYmdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoWj0+e2ZvcihsZXQgeWUgb2YgWil7bGV0IHE9eWUudGFyZ2V0LEE9cGFyc2VJbnQocS5kYXRhc2V0LnBhZ2V8fCIxIik7eWUuaXNJbnRlcnNlY3RpbmcmJnRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKEEpfX0se3Jvb3Q6dGhpcy52aWV3ZXJNYWluLHJvb3RNYXJnaW46YCR7dGhpcy5SRU5ERVJfQlVGRkVSKjEwMH1weCAwcHhgLHRocmVzaG9sZDouMDF9KTtsZXQgWD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wYWdlLXdyYXBwZXIiKTtYJiZYLmZvckVhY2goWj0+e3RoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUoWil9KX1hc3luYyByZW5kZXJWaXNpYmxlUGFnZXMoKXtpZighdGhpcy52aWV3ZXJNYWluKXJldHVybjtsZXQgWD10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0O2ZvcihsZXQgWiBvZiB0aGlzLnBhZ2VEYXRhKXtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtaLnBhZ2V9Il1gKTtpZigheWUpY29udGludWU7bGV0IHE9eWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksc2U9cS50b3AtQS50b3Asb2U9c2UrcS5oZWlnaHQsYWU9dGhpcy5SRU5ERVJfQlVGRkVSKlg7b2U+PS1hZSYmc2U8PVgrYWUmJmF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKFoucGFnZSl9fWFzeW5jIHJlbmRlclBhZ2VJZk5lZWRlZChYKXtsZXQgWj10aGlzLnBhZ2VEYXRhLmZpbmQoeWU9PnllLnBhZ2U9PT1YKTtpZighKCFafHxaLnJlbmRlcmVkfHxaLnJlbmRlcmluZykpe1oucmVuZGVyaW5nPSEwO3RyeXtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS1jYW52YXNbZGF0YS1wYWdlPSIke1h9Il1gKTtpZigheWUpe1oucmVuZGVyaW5nPSExO3JldHVybn1sZXQgcT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoWCksQT10aGlzLmNvbXB1dGVWaWV3cG9ydChxKSxzZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt5ZS53aWR0aD1NYXRoLmZsb29yKEEud2lkdGgqc2UpLHllLmhlaWdodD1NYXRoLmZsb29yKEEuaGVpZ2h0KnNlKSx5ZS5zdHlsZS53aWR0aD1gJHtBLndpZHRofXB4YCx5ZS5zdHlsZS5oZWlnaHQ9YCR7QS5oZWlnaHR9cHhgO2xldCBvZT15ZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFvZSl7cS5jbGVhbnVwPy4oKSxaLnJlbmRlcmluZz0hMTtyZXR1cm59b2Uuc2NhbGUoc2Usc2UpO2xldCBhZT17Y2FudmFzQ29udGV4dDpvZSx2aWV3cG9ydDpBfSxUZT1xLnJlbmRlcihhZSk7dGhpcy5wYWdlUmVuZGVyVGFza3Muc2V0KFgsVGUpLGF3YWl0IFRlLnByb21pc2UscS5jbGVhbnVwPy4oKSxaLnJlbmRlcmVkPSEwLFoucmVuZGVyaW5nPSExLHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShYKSxhd2FpdCB0aGlzLnJlbmRlclRleHRMYXllcihYKSx0aGlzLnJlcXVlc3RVcGRhdGUoInBhZ2VEYXRhIil9Y2F0Y2goeWUpe3llPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyBwYWdlICR7WH06YCx5ZSksWi5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFgpfX19YXN5bmMgcmVuZGVyVGV4dExheWVyKFgpe2xldCBaPXRoaXMucGFnZURhdGEuZmluZCh5ZT0+eWUucGFnZT09PVgpO2lmKCEoIVp8fFoudGV4dExheWVyUmVuZGVyZWQpKXRyeXtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGV4dC1sYXllcltkYXRhLXBhZ2U9IiR7WH0iXWApO2lmKCF5ZSlyZXR1cm47eWUuaW5uZXJIVE1MPSIiO2xldCBxPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShYKSxBPWF3YWl0IHEuZ2V0VGV4dENvbnRlbnQoKSxzZT10aGlzLmNvbXB1dGVWaWV3cG9ydChxKSxvZT1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKTt5ZS5zdHlsZS53aWR0aD1gJHtzZS53aWR0aH1weGAseWUuc3R5bGUuaGVpZ2h0PWAke3NlLmhlaWdodH1weGAseWUuc3R5bGUuc2V0UHJvcGVydHkoIi0tc2NhbGUtZmFjdG9yIixTdHJpbmcoc2Uuc2NhbGUpKTtsZXQgYWU9b2UucmVuZGVyVGV4dExheWVyKHt0ZXh0Q29udGVudFNvdXJjZTpBLGNvbnRhaW5lcjp5ZSx2aWV3cG9ydDpzZX0pO3RoaXMudGV4dExheWVyUmVuZGVyVGFza3Muc2V0KFgsYWUpLGF3YWl0IGFlLnByb21pc2U7bGV0IFRlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1RlLmNsYXNzTmFtZT0iZW5kT2ZDb250ZW50Iix5ZS5hcHBlbmRDaGlsZChUZSk7bGV0IFJlPSExLEJlPW51bGwsR2U9MCxEZT1pKCh2ZSxiZSk9PntsZXQgRWU9QXJyYXkuZnJvbSh5ZS5xdWVyeVNlbGVjdG9yQWxsKCJzcGFuIikpO2ZvcihsZXQgamUgb2YgRWUpe2xldCBXZT1qZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih2ZT49V2UubGVmdCYmdmU8PVdlLnJpZ2h0JiZiZT49V2UudG9wJiZiZTw9V2UuYm90dG9tKXtsZXQgc3Q9amUuZmlyc3RDaGlsZDtpZihzdCYmc3Qubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7bGV0IE1lPXN0LnRleHRDb250ZW50fHwiIixnZT1XZS53aWR0aC9NZS5sZW5ndGgsSWU9dmUtV2UubGVmdCxjZT1NYXRoLm1pbihNYXRoLnJvdW5kKEllL2dlKSxNZS5sZW5ndGgpO3JldHVybntub2RlOnN0LG9mZnNldDpjZX19fX1yZXR1cm4gbnVsbH0sImdldFRleHRQb3NpdGlvbkZyb21Qb2ludCIpLF9lPWkoKCk9PntSZSYmKFJlPSExLEJlPW51bGwseWUuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0aW5nIikpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF9lKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLENlKX0sImhhbmRsZU1vdXNlVXAiKSxDZT1pKHZlPT57aWYoIVJlfHwhQmUpcmV0dXJuO3ZlLnByZXZlbnREZWZhdWx0KCk7bGV0IGJlPURlKHZlLmNsaWVudFgsdmUuY2xpZW50WSk7aWYoYmUpe2xldCBFZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoRWUpdHJ5e0VlLnNldEJhc2VBbmRFeHRlbnQoQmUsR2UsYmUubm9kZSxiZS5vZmZzZXQpfWNhdGNoe319fSwiaGFuZGxlTW91c2VNb3ZlIik7eWUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix2ZT0+e2lmKHZlLmJ1dHRvbiE9PTApcmV0dXJuO2xldCBiZT1EZSh2ZS5jbGllbnRYLHZlLmNsaWVudFkpO2JlJiYodmUucHJldmVudERlZmF1bHQoKSxSZT0hMCxCZT1iZS5ub2RlLEdlPWJlLm9mZnNldCx5ZS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RpbmciKSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsQ2UpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF9lKSl9KSxaLnRleHRMYXllclJlbmRlcmVkPSEwLHEuY2xlYW51cD8uKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5kZWxldGUoWCl9Y2F0Y2goeWUpe3llPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyB0ZXh0IGxheWVyIGZvciBwYWdlICR7WH06YCx5ZSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5kZWxldGUoWCl9fWhhbmRsZVNjcm9sbD1pKCgpPT57dGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0aGlzLnVwZGF0ZUN1cnJlbnRQYWdlKCksdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0sNTApfSwiaGFuZGxlU2Nyb2xsIik7dXBkYXRlQ3VycmVudFBhZ2UoKXtpZighdGhpcy52aWV3ZXJNYWluKXJldHVybjtsZXQgWD10aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wLFo9dGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodCx5ZT1YK1ovMjtmb3IobGV0IHE9MDtxPHRoaXMucGFnZURhdGEubGVuZ3RoO3ErKyl7bGV0IEE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtxKzF9Il1gKTtpZighQSljb250aW51ZTtsZXQgc2U9QS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYWU9c2UudG9wLW9lLnRvcCtYLFRlPWFlK3NlLmhlaWdodDtpZih5ZT49YWUmJnllPD1UZSl7dGhpcy5jdXJyZW50UGFnZSE9PXErMSYmKHRoaXMuY3VycmVudFBhZ2U9cSsxLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcocSsxKSk7YnJlYWt9fX1zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhYKXtsZXQgWj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50aHVtYm5haWxbZGF0YS1wYWdlPSIke1h9Il1gKSx5ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKTtpZihaJiZ5ZSl7bGV0IHE9Wi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBPXllLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPXEudG9wPEEudG9wLG9lPXEuYm90dG9tPkEuYm90dG9tO2lmKHNlfHxvZSl7bGV0IGFlPVoub2Zmc2V0VG9wLFRlPVoub2Zmc2V0SGVpZ2h0LFJlPXllLmNsaWVudEhlaWdodCxCZT1hZS1SZS8yK1RlLzI7eWUuc2Nyb2xsVG8oe3RvcDpNYXRoLm1heCgwLEJlKSxiZWhhdmlvcjoic21vb3RoIn0pfX19YXN5bmMgc2Nyb2xsVG9QYWdlKFgsWj0hMCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtYfSJdYCk7aWYoeWUmJnRoaXMudmlld2VyTWFpbil7bGV0IHE9eWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCsocS50b3AtQS50b3ApLXRoaXMudmlld2VyTWFpbi5jbGllbnRUb3AtMTY7Wj90aGlzLnZpZXdlck1haW4uc2Nyb2xsVG8oe3RvcDpvZSxiZWhhdmlvcjoic21vb3RoIn0pOnRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3A9b2UsdGhpcy5jdXJyZW50UGFnZT1YLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoWCksYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoWCl9fWFzeW5jIHJlbmRlclRodW1ibmFpbHMoKXtpZighdGhpcy5wZGZEb2N1bWVudHx8dGhpcy50aHVtYm5haWxEYXRhLmxlbmd0aD4wJiZ0aGlzLnRodW1ibmFpbERhdGEuZXZlcnkoWj0+Wi5yZW5kZXJlZCl8fHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWwuYWJvcnRlZClyZXR1cm47bGV0IFg9dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI/LnNpZ25hbDt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJpbmctdGh1bWJzIjtmb3IobGV0IFogb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcyl0cnl7Wi5jYW5jZWwoKX1jYXRjaHt9dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXTt0cnl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgWj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwiKSx5ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwtY2FudmFzIikscT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKSxBPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHEpLG9lPTIwMC0ocGFyc2VGbG9hdChBLnBhZGRpbmdMZWZ0KStwYXJzZUZsb2F0KEEucGFkZGluZ1JpZ2h0KSktNDtmb3IobGV0IGFlIG9mIEFycmF5LmZyb20oeWUpKXtsZXQgVGU9YWUuZ2V0Q29udGV4dCgiMmQiKTtUZSYmVGUuY2xlYXJSZWN0KDAsMCxhZS53aWR0aCxhZS5oZWlnaHQpfWZvcihsZXQgYWU9MDthZTx5ZS5sZW5ndGg7YWUrKyl7aWYoWD8uYWJvcnRlZClyZXR1cm47bGV0IFRlPXllW2FlXSxSZT1aW2FlXSxCZT1wYXJzZUludChUZS5kYXRhc2V0LnBhZ2V8fCIxIiksR2U9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKEJlKSxEZT1HZS5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLF9lPW9lL0RlLndpZHRoLENlPUdlLmdldFZpZXdwb3J0KHtzY2FsZTpfZX0pLHZlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO1RlLndpZHRoPU1hdGguZmxvb3IoQ2Uud2lkdGgqdmUpLFRlLmhlaWdodD1NYXRoLmZsb29yKENlLmhlaWdodCp2ZSksVGUuc3R5bGUud2lkdGg9YCR7Q2Uud2lkdGh9cHhgLFRlLnN0eWxlLmhlaWdodD1gJHtDZS5oZWlnaHR9cHhgLFJlLnN0eWxlLmhlaWdodD1gJHtDZS5oZWlnaHR9cHhgLFJlLnN0eWxlLm1pbkhlaWdodD1gJHtDZS5oZWlnaHR9cHhgO2xldCBiZT1UZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFiZSl7R2UuY2xlYW51cD8uKCk7Y29udGludWV9YmUuc2NhbGUodmUsdmUpO2xldCBFZT17Y2FudmFzQ29udGV4dDpiZSx2aWV3cG9ydDpDZX0samU9R2UucmVuZGVyKEVlKTt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzLnB1c2goamUpLGF3YWl0IGplLnByb21pc2UsR2UuY2xlYW51cD8uKCk7bGV0IFdlPXRoaXMudGh1bWJuYWlsRGF0YS5maW5kKHN0PT5zdC5wYWdlPT09QmUpO1dlJiYoV2UucmVuZGVyZWQ9ITApfXRoaXMucmVxdWVzdFVwZGF0ZSgidGh1bWJuYWlsRGF0YSIpfWNhdGNoKFope1o/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIHRodW1ibmFpbHM6IixaKX1maW5hbGx5e3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W119fXByZXZpb3VzUGFnZSgpe3RoaXMuY3VycmVudFBhZ2U+MSYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZS0xKX1uZXh0UGFnZSgpe3RoaXMuY3VycmVudFBhZ2U8dGhpcy50b3RhbFBhZ2VzJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKzEpfWhhbmRsZVRodW1ibmFpbENsaWNrKFgpe2xldCBaPVguY3VycmVudFRhcmdldCx5ZT1wYXJzZUludChaLmRhdGFzZXQucGFnZXx8IjEiKTt0aGlzLnNjcm9sbFRvUGFnZSh5ZSl9aGFuZGxlUGFnZUlucHV0KFgpe2xldCBaPVgudGFyZ2V0LHllPXBhcnNlSW50KFoudmFsdWUpO3RoaXMuc2Nyb2xsVG9QYWdlKHllKX16b29tSW4oKXtsZXQgWD1NYXRoLm1pbih0aGlzLk1BTlVBTF9NQVhfWk9PTSx0aGlzLmN1cnJlbnRab29tKjEuMik7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsWCE9PXRoaXMuY3VycmVudFpvb20mJih0aGlzLmN1cnJlbnRab29tPVgsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXpvb21PdXQoKXtsZXQgWD1NYXRoLm1heCh0aGlzLk1BTlVBTF9NSU5fWk9PTSx0aGlzLmN1cnJlbnRab29tLzEuMik7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsWCE9PXRoaXMuY3VycmVudFpvb20mJih0aGlzLmN1cnJlbnRab29tPVgsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXJlc2V0Wm9vbSgpe3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLHRoaXMuY3VycmVudFpvb209MSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1maXRUb1BhZ2UoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS1maXQiLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvV2lkdGgoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9cmVSZW5kZXJBbGxQYWdlcygpe3RoaXMucGFnZURhdGEuZm9yRWFjaChYPT57WC5yZW5kZXJlZD0hMSxYLnJlbmRlcmluZz0hMSxYLnRleHRMYXllclJlbmRlcmVkPSExfSksdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsKCl9Y2F0Y2h7fX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWw/LigpfWNhdGNoe319KSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0pfWFzeW5jIGRvd25sb2FkUGRmKCl7aWYodGhpcy5wZGZEb2N1bWVudCl0cnl7bGV0IFg9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCksWj1uZXcgQmxvYihbWC5idWZmZXJdLHt0eXBlOiJhcHBsaWNhdGlvbi9wZGYifSkseWU9VVJMLmNyZWF0ZU9iamVjdFVSTChaKSxxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtxLmhyZWY9eWUscS5kb3dubG9hZD10aGlzLnBkZlVybCYmdGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIscS5jbGljaygpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoeWUpLDFlMyl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgZG93bmxvYWRpbmcgUERGOiIsWCl9fWFzeW5jIHByaW50UGRmKCl7aWYodGhpcy5wZGZEb2N1bWVudCl0cnl7bGV0IFg9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCksWj1uZXcgQmxvYihbWC5idWZmZXJdLHt0eXBlOiJhcHBsaWNhdGlvbi9wZGYifSkseWU9VVJMLmNyZWF0ZU9iamVjdFVSTChaKSxxPWAKICAgICAgICA8IURPQ1RZUEUgaHRtbD4KICAgICAgICA8aHRtbD4KICAgICAgICA8aGVhZD4KICAgICAgICAgIDx0aXRsZT5QcmludCBQREY8L3RpdGxlPgogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgICAgICAgICAgIGh0bWwsIGJvZHkgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgICAgICAgICAgIGlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlcjogbm9uZTsgfQogICAgICAgICAgICBAbWVkaWEgcHJpbnQgewogICAgICAgICAgICAgIGh0bWwsIGJvZHksIGlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICA8L2hlYWQ+CiAgICAgICAgPGJvZHk+CiAgICAgICAgICA8aWZyYW1lIHNyYz0iJHt5ZX0iIHR5cGU9ImFwcGxpY2F0aW9uL3BkZiI+PC9pZnJhbWU+CiAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1cygpOwogICAgICAgICAgICAgICAgd2luZG93LnByaW50KCk7CiAgICAgICAgICAgICAgfSwgNTAwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93Lm9uYWZ0ZXJwcmludCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBTYWZldHkgY2xvc2UgYWZ0ZXIgMiBtaW51dGVzCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5jbG9zZSgpOyB9LCAxMjAwMDApOwogICAgICAgICAgPFwvc2NyaXB0PgogICAgICAgIDwvYm9keT4KICAgICAgICA8L2h0bWw+CiAgICAgIGAsQT1uZXcgQmxvYihbcV0se3R5cGU6InRleHQvaHRtbCJ9KSxzZT1VUkwuY3JlYXRlT2JqZWN0VVJMKEEpLG9lPXdpbmRvdy5vcGVuKHNlLCJfYmxhbmsiLCJ3aWR0aD04MDAsaGVpZ2h0PTYwMCIpO2lmKG9lKXtsZXQgYWU9c2V0SW50ZXJ2YWwoKCk9PntvZS5jbG9zZWQmJihjbGVhckludGVydmFsKGFlKSxVUkwucmV2b2tlT2JqZWN0VVJMKHllKSxVUkwucmV2b2tlT2JqZWN0VVJMKHNlKSl9LDUwMCk7c2V0VGltZW91dCgoKT0+e2NsZWFySW50ZXJ2YWwoYWUpLFVSTC5yZXZva2VPYmplY3RVUkwoeWUpLFVSTC5yZXZva2VPYmplY3RVUkwoc2UpfSwxMmU0KX1lbHNlIHdpbmRvdy5vcGVuKHllLCJfYmxhbmsiKSxzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKHllKSw2ZTQpLFVSTC5yZXZva2VPYmplY3RVUkwoc2UpfWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHByaW50aW5nIFBERjoiLFgpfX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IFg9W10seWU9d2luZG93LmdldFNlbGVjdGlvbigpPy50b1N0cmluZygpfHwiIjtyZXR1cm4geWUmJihYLnB1c2goe25hbWU6IkNvcHkiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHllKX0sImFjdGlvbiIpfSksWC5wdXNoKHtkaXZpZGVyOiEwfSkpLFgucHVzaCh7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57YXdhaXQgdGhpcy5kb3dubG9hZFBkZigpfSwiYWN0aW9uIil9LHtuYW1lOiJQcmludCBQREYiLGljb25OYW1lOiJsdWNpZGU6UHJpbnRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMucHJpbnRQZGYoKX0sImFjdGlvbiIpfSksWH1nZXQgY2FuWm9vbUluKCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb208dGhpcy5NQU5VQUxfTUFYX1pPT019Z2V0IGNhblpvb21PdXQoKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbT50aGlzLk1BTlVBTF9NSU5fWk9PTX1lbnN1cmVWaWV3ZXJSZWZzKCl7dGhpcy52aWV3ZXJNYWlufHwodGhpcy52aWV3ZXJNYWluPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXdlci1tYWluIikpLHRoaXMudmlld2VyTWFpbiYmIXRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMucGRmRG9jdW1lbnQmJnRoaXMucmVSZW5kZXJBbGxQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudmlld2VyTWFpbiksdGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy52aWV3ZXJNYWluLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixYPT57bGV0IFo9WC5jdXJyZW50VGFyZ2V0LHllPVouc2Nyb2xsVG9wLHE9Wi5zY3JvbGxIZWlnaHQsQT1aLmNsaWVudEhlaWdodCxzZT1YLmRlbHRhWSxvZT15ZT09PTAsYWU9TWF0aC5hYnMoeWUrQS1xKTwxO3NlPDAmJiFvZXx8c2U+MCYmIWFlP1guc3RvcFByb3BhZ2F0aW9uKCk6KHNlPDAmJm9lfHxzZT4wJiZhZSkmJihYLnByZXZlbnREZWZhdWx0KCksWC5zdG9wUHJvcGFnYXRpb24oKSl9LHtwYXNzaXZlOiExfSkpfW1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKXtpZighdGhpcy52aWV3ZXJNYWluKXt0aGlzLnZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07cmV0dXJufWxldCBYPWdldENvbXB1dGVkU3R5bGUodGhpcy52aWV3ZXJNYWluKSxaPXBhcnNlRmxvYXQoWC5wYWRkaW5nTGVmdHx8IjAiKStwYXJzZUZsb2F0KFgucGFkZGluZ1JpZ2h0fHwiMCIpLHllPXBhcnNlRmxvYXQoWC5wYWRkaW5nVG9wfHwiMCIpK3BhcnNlRmxvYXQoWC5wYWRkaW5nQm90dG9tfHwiMCIpLHE9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudFdpZHRoLVosMCksQT1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LXllLDApO3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDpxLGhlaWdodDpBfX1yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpe3R5cGVvZiB0aGlzLmluaXRpYWxab29tPT0ibnVtYmVyIj8odGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT10aGlzLm5vcm1hbGl6ZVpvb20odGhpcy5pbml0aWFsWm9vbSwhMCkpOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS13aWR0aCI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS1maXQifHx0aGlzLmluaXRpYWxab29tPT09ImF1dG8iP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCI6dGhpcy52aWV3cG9ydE1vZGU9ImF1dG8iLHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPTEpfWNvbXB1dGVWaWV3cG9ydChYKXt0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKTtsZXQgWj1YLmdldFZpZXdwb3J0KHtzY2FsZToxfSkseWU7c3dpdGNoKHRoaXMudmlld3BvcnRNb2RlKXtjYXNlInBhZ2Utd2lkdGgiOnt5ZT0odGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fFoud2lkdGgpL1oud2lkdGg7YnJlYWt9Y2FzZSJwYWdlLWZpdCI6Y2FzZSJhdXRvIjp7bGV0IEE9dGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fFoud2lkdGgsc2U9dGhpcy52aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0fHxaLmhlaWdodCxvZT1BL1oud2lkdGgsYWU9c2UvWi5oZWlnaHQ7eWU9TWF0aC5taW4ob2UsYWUpO2JyZWFrfWRlZmF1bHQ6e3llPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmN1cnJlbnRab29tfHwxLCExKTticmVha319KCFOdW1iZXIuaXNGaW5pdGUoeWUpfHx5ZTw9MCkmJih5ZT0xKTtsZXQgcT10aGlzLnZpZXdwb3J0TW9kZT09PSJjdXN0b20iP3RoaXMubm9ybWFsaXplWm9vbSh5ZSwhMCk6dGhpcy5ub3JtYWxpemVab29tKHllLCExKTtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209cSksWC5nZXRWaWV3cG9ydCh7c2NhbGU6cX0pfW5vcm1hbGl6ZVpvb20oWCxaKXtsZXQgeWU9Wj90aGlzLk1BTlVBTF9NSU5fWk9PTTp0aGlzLkFCU09MVVRFX01JTl9aT09NLHE9Wj90aGlzLk1BTlVBTF9NQVhfWk9PTTp0aGlzLkFCU09MVVRFX01BWF9aT09NO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChYLHllKSxxKX1hc3luYyBjbGVhbnVwRG9jdW1lbnQoKXtpZih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlciYmKHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLmFib3J0KCksdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbCksdGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZSl7dHJ5e2F3YWl0IHRoaXMuY3VycmVudFJlbmRlclByb21pc2V9Y2F0Y2h7fXRoaXMuY3VycmVudFJlbmRlclByb21pc2U9bnVsbH10aGlzLmN1cnJlbnRSZW5kZXJUYXNrPW51bGwsdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsKCl9Y2F0Y2h7fX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWw/LigpfWNhdGNoe319KSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmNsZWFyKCk7Zm9yKGxldCBYIG9mIHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3N8fFtdKXRyeXtYLmNhbmNlbCgpfWNhdGNoe31pZih0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdLHRoaXMucmVuZGVyU3RhdGU9ImlkbGUiLHRoaXMucGFnZVJlbmRlcmluZz0hMSx0aGlzLnBhZ2VOdW1QZW5kaW5nPW51bGwsdGhpcy50aHVtYm5haWxEYXRhPVtdLHRoaXMucGFnZURhdGE9W10sdGhpcy5kb2N1bWVudElkPSIiLHRoaXMuY2FudmFzJiZ0aGlzLmN0eCYmdGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHQpLHRoaXMucGRmRG9jdW1lbnQpdHJ5e3RoaXMucGRmRG9jdW1lbnQuZGVzdHJveSgpfWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlc3Ryb3lpbmcgUERGIGRvY3VtZW50OiIsWCl9dGhpcy5wZGZEb2N1bWVudD1udWxsLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXN0YXRpY3tqcyhhLHQpfX07cmV0dXJuIGtlPWF9KSgpfSk7dmFyIFU1YSxXNWE9ZygoKT0+e3BlKCk7VTVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDQwcHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICAucHJldmlldy1pbWFnZSB7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICB9CgogICAgLnByZXZpZXctcGRmIHsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SW1hZ2UgUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdXRvLWRldGVjdHMgaW1hZ2UgZnJvbSBVUkwgZXh0ZW5zaW9uIGFuZCByZW5kZXJzIHdpdGggdGhlIGltYWdlIHZpZXdlci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LWltYWdlIgogICAgICAgIHVybD0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1MDY3NDQwMzgxMzYtNDYyNzM4MzRiM2ZiP3c9MTIwMCIKICAgICAgICBmaWxlbmFtZT0ibGFuZHNjYXBlLmpwZyIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBERiBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBQREYgYW5kIGRpc3BsYXlzIHdpdGggdGhlIFBERiB2aWV3ZXIgaW5jbHVkaW5nIHRvb2xiYXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjbGFzcz0icHJldmlldy1wZGYiCiAgICAgICAgdXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgZmlsZW5hbWU9InJlc2VhcmNoLXBhcGVyLnBkZiIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvZGUgUHJldmlldyAoVGV4dCBDb250ZW50KTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5UeXBlU2NyaXB0IGNvZGUgZGlzcGxheWVkIHdpdGggc3ludGF4IGhpZ2hsaWdodGluZyB2aWEgdGhlIGNvZGVib3guPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBmaWxlbmFtZT0iZXhhbXBsZS50cyIKICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAudGV4dENvbnRlbnQ9JHtgaW1wb3J0IHsgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JzsKCmV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCBleHRlbmRzIExpdEVsZW1lbnQgewogIHN0YXRpYyBzdHlsZXMgPSBjc3NcYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KICBcYDsKCiAgcmVuZGVyKCkgewogICAgcmV0dXJuIGh0bWxcYDxoMT5IZWxsbyBXb3JsZDwvaDE+XGA7CiAgfQp9YH0KICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXVkaW8gZmlsZSBkZXRlY3RlZCBieSBleHRlbnNpb24sIHNob3duIHdpdGggd2F2ZWZvcm0gcGxheWVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgdXJsPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgIGZpbGVuYW1lPSJzb25nLm1wMyIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZpZGVvIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gZmlsZSBkZXRlY3RlZCBmcm9tIFVSTCwgcmVuZGVyZWQgd2l0aCBjdXN0b20gdmlkZW8gY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0JpZ0J1Y2tCdW5ueS5tcDQiCiAgICAgICAgZmlsZW5hbWU9ImJpZy1idWNrLWJ1bm55Lm1wNCIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkV4cGxpY2l0IFR5cGUgT3ZlcnJpZGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Rm9yY2UgY29udGVudCB0eXBlIHRvICd0ZXh0JyBldmVuIHRob3VnaCB0aGUgVVJMIGhhcyBubyBleHRlbnNpb24uPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjb250ZW50VHlwZT0idGV4dCIKICAgICAgICAudGV4dENvbnRlbnQ9JHtgVGhpcyBpcyBwbGFpbiB0ZXh0IGNvbnRlbnQuCkl0IHByZXNlcnZlcyB3aGl0ZXNwYWNlIGFuZCBsaW5lIGJyZWFrcy4KClVzZWZ1bCBmb3IgbG9nIGZpbGVzLCBSRUFETUVzLCBldGMuYH0KICAgICAgICBmaWxlbmFtZT0ibm90ZXMudHh0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VW5rbm93biBUeXBlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPldoZW4gY29udGVudCB0eXBlIGNhbm5vdCBiZSBkZXRlY3RlZCwgc2hvd3MgYSBwbGFjZWhvbGRlci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJkYXRhLmJpbiIKICAgICAgICBjb250ZW50VHlwZT0idW5rbm93biIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgSW8sZ3MsRzVhLFdYYSxHWGEsS1hhLEs1YSxZNWE9ZygoKT0+e3BlKCk7ZXJ0KCk7dHJ0KCk7YXJ0KCk7Uml0KCk7c3J0KCk7VWEoKTtXNWEoKTtJbz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZ3M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEc1YT17anBnOiJpbWFnZSIsanBlZzoiaW1hZ2UiLHBuZzoiaW1hZ2UiLGdpZjoiaW1hZ2UiLHdlYnA6ImltYWdlIixzdmc6ImltYWdlIixibXA6ImltYWdlIixhdmlmOiJpbWFnZSIsaWNvOiJpbWFnZSIscGRmOiJwZGYiLG1wMzoiYXVkaW8iLHdhdjoiYXVkaW8iLG9nZzoiYXVkaW8iLGZsYWM6ImF1ZGlvIixhYWM6ImF1ZGlvIixtNGE6ImF1ZGlvIixvcHVzOiJhdWRpbyIsd2ViYToiYXVkaW8iLG1wNDoidmlkZW8iLHdlYm06InZpZGVvIixtb3Y6InZpZGVvIixhdmk6InZpZGVvIixta3Y6InZpZGVvIixvZ3Y6InZpZGVvIix0czoiY29kZSIsanM6ImNvZGUiLGpzeDoiY29kZSIsdHN4OiJjb2RlIixqc29uOiJjb2RlIixodG1sOiJjb2RlIixjc3M6ImNvZGUiLHNjc3M6ImNvZGUiLGxlc3M6ImNvZGUiLHB5OiJjb2RlIixqYXZhOiJjb2RlIixnbzoiY29kZSIscnM6ImNvZGUiLHlhbWw6ImNvZGUiLHltbDoiY29kZSIseG1sOiJjb2RlIixzcWw6ImNvZGUiLHNoOiJjb2RlIixiYXNoOiJjb2RlIix6c2g6ImNvZGUiLG1kOiJjb2RlIixjOiJjb2RlIixjcHA6ImNvZGUiLGg6ImNvZGUiLGhwcDoiY29kZSIscmI6ImNvZGUiLHBocDoiY29kZSIsc3dpZnQ6ImNvZGUiLGt0OiJjb2RlIix0eHQ6InRleHQiLGxvZzoidGV4dCIsY3N2OiJ0ZXh0IixlbnY6InRleHQifSxXWGE9eyJpbWFnZS8iOiJpbWFnZSIsImF1ZGlvLyI6ImF1ZGlvIiwidmlkZW8vIjoidmlkZW8iLCJhcHBsaWNhdGlvbi9wZGYiOiJwZGYifSxHWGE9e3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6InhtbCIseG1sOiJ4bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixsZXNzOiJsZXNzIixweToicHl0aG9uIixqYXZhOiJqYXZhIixnbzoiZ28iLHJzOiJydXN0Iix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHNxbDoic3FsIixzaDoiYmFzaCIsYmFzaDoiYmFzaCIsenNoOiJiYXNoIixjOiJjIixjcHA6ImNwcCIsaDoiYyIsaHBwOiJjcHAiLHJiOiJydWJ5IixwaHA6InBocCIsc3dpZnQ6InN3aWZ0IixrdDoia290bGluIixtZDoibWFya2Rvd24ifSxLWGE9e2ltYWdlOiJsdWNpZGU6SW1hZ2UiLHBkZjoibHVjaWRlOkZpbGVUZXh0IixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixjb2RlOiJsdWNpZGU6Q29kZSIsdGV4dDoibHVjaWRlOkZpbGVUZXh0Iix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LEs1YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdO3ZhciBzZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1ByZXZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgb2U9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sYz1bTCgpXSx4PVtMKCldLHk9W0woKV0sTj1bTCgpXSxPPVtMKCldLEg9W0woKV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W0woe3R5cGU6Qm9vbGVhbn0pXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxJbyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InVybCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnVybCwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnVybD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbyxsKSxJbyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJmaWxlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZmlsZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmZpbGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGQsdSksSW8odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYXNlNjQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJiYXNlNjQiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5iYXNlNjQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5iYXNlNjQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGIsdiksSW8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InRleHRDb250ZW50ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUudGV4dENvbnRlbnQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS50ZXh0Q29udGVudD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbSxmKSxJbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iY29udGVudFR5cGUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5jb250ZW50VHlwZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmNvbnRlbnRUeXBlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxNLHopLElvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJsYW5ndWFnZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUubGFuZ3VhZ2U9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LEMsXyksSW8odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW1lVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+Im1pbWVUeXBlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUubWltZVR5cGUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5taW1lVHlwZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sJCxFKSxJbyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iZmlsZW5hbWUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5maWxlbmFtZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmZpbGVuYW1lPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxrLFMpLElvKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rvb2xiYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzaG93VG9vbGJhciJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuc2hvd1Rvb2xiYXI9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFAsUiksSW8odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZW5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzaG93RmlsZW5hbWUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5zaG93RmlsZW5hbWUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5zaG93RmlsZW5hbWU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFYsVyksSW8odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzb2x2ZWRUeXBlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVzb2x2ZWRUeXBlLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUucmVzb2x2ZWRUeXBlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxCLFUpLElvKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkU3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzb2x2ZWRTcmMiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5yZXNvbHZlZFNyYywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkU3JjPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxGLGopLElvKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkVGV4dCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc29sdmVkVGV4dCwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkVGV4dD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbGUsUSksSW8odGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzb2x2ZWRMYW5nImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVzb2x2ZWRMYW5nLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUucmVzb2x2ZWRMYW5nPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSx0ZSxlZSksSW8odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImxvYWRpbmciaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUubG9hZGluZz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sWCxaKSxJbyh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImVycm9yImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZXJyb3IsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5lcnJvcj1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0scSxBKSxJbyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvZX0sbnVsbCx0KSxzZT1hPWUudmFsdWUsb2UmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b2V9KX1zdGF0aWMgZGVtbz1VNWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIkRhdGEgVmlldyJdOyNlPWdzKHRoaXMsbywiIik7Z2V0IHVybCgpe3JldHVybiB0aGlzLiNlfXNldCB1cmwob2Upe3RoaXMuI2U9b2V9I3Q9KGdzKHRoaXMsbCksZ3ModGhpcyxkLHZvaWQgMCkpO2dldCBmaWxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGZpbGUob2Upe3RoaXMuI3Q9b2V9I2E9KGdzKHRoaXMsdSksZ3ModGhpcyxiLCIiKSk7Z2V0IGJhc2U2NCgpe3JldHVybiB0aGlzLiNhfXNldCBiYXNlNjQob2Upe3RoaXMuI2E9b2V9I3M9KGdzKHRoaXMsdiksZ3ModGhpcyxtLCIiKSk7Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRleHRDb250ZW50KG9lKXt0aGlzLiNzPW9lfSNpPShncyh0aGlzLGYpLGdzKHRoaXMsTSx2b2lkIDApKTtnZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29udGVudFR5cGUob2Upe3RoaXMuI2k9b2V9I3I9KGdzKHRoaXMseiksZ3ModGhpcyxDLCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhbmd1YWdlKG9lKXt0aGlzLiNyPW9lfSNvPShncyh0aGlzLF8pLGdzKHRoaXMsJCwiIikpO2dldCBtaW1lVHlwZSgpe3JldHVybiB0aGlzLiNvfXNldCBtaW1lVHlwZShvZSl7dGhpcy4jbz1vZX0jbj0oZ3ModGhpcyxFKSxncyh0aGlzLGssIiIpKTtnZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZmlsZW5hbWUob2Upe3RoaXMuI249b2V9I2w9KGdzKHRoaXMsUyksZ3ModGhpcyxQLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dUb29sYmFyKG9lKXt0aGlzLiNsPW9lfSNjPShncyh0aGlzLFIpLGdzKHRoaXMsViwhMCkpO2dldCBzaG93RmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0ZpbGVuYW1lKG9lKXt0aGlzLiNjPW9lfSNkPShncyh0aGlzLFcpLGdzKHRoaXMsQiwidW5rbm93biIpKTtnZXQgcmVzb2x2ZWRUeXBlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHJlc29sdmVkVHlwZShvZSl7dGhpcy4jZD1vZX0jdT0oZ3ModGhpcyxVKSxncyh0aGlzLEYsIiIpKTtnZXQgcmVzb2x2ZWRTcmMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcmVzb2x2ZWRTcmMob2Upe3RoaXMuI3U9b2V9I3A9KGdzKHRoaXMsaiksZ3ModGhpcyxsZSwiIikpO2dldCByZXNvbHZlZFRleHQoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcmVzb2x2ZWRUZXh0KG9lKXt0aGlzLiNwPW9lfSNoPShncyh0aGlzLFEpLGdzKHRoaXMsdGUsInRleHQiKSk7Z2V0IHJlc29sdmVkTGFuZygpe3JldHVybiB0aGlzLiNofXNldCByZXNvbHZlZExhbmcob2Upe3RoaXMuI2g9b2V9I2Y9KGdzKHRoaXMsZWUpLGdzKHRoaXMsWCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGxvYWRpbmcob2Upe3RoaXMuI2Y9b2V9I209KGdzKHRoaXMsWiksZ3ModGhpcyxxLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI219c2V0IGVycm9yKG9lKXt0aGlzLiNtPW9lfW9iamVjdFVybD0oZ3ModGhpcyxBKSwiIik7cmVuZGVyKCl7bGV0IG9lPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8dGhpcy5nZXRGaWxlbmFtZUZyb21VcmwoKXx8IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItZmlsZW5hbWUgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgZmxleDogMTsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItYmFkZ2UgewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSA+ICogewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWltYWdlLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGRmLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtdmlkZW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1hdWRpby12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWRhdGF2aWV3LWNvZGVib3ggewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAudGV4dC12aWV3ZXIgewogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXIgZGVlcy1pY29uIHsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLWNvbnRhaW5lciBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuc2hvd0ZpbGVuYW1lJiZvZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJhciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImhlYWRlci1pY29uIiBpY29uPSIke0tYYVt0aGlzLnJlc29sdmVkVHlwZV19Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRlci1maWxlbmFtZSI+JHtvZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItYmFkZ2UiPiR7dGhpcy5yZXNvbHZlZFR5cGV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFsZXJ0VHJpYW5nbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5yZW5kZXJDb250ZW50KCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDb250ZW50KCl7c3dpdGNoKHRoaXMucmVzb2x2ZWRUeXBlKXtjYXNlImltYWdlIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7dGhpcy5zaG93VG9vbGJhcn0KICAgICAgICAgICAgYWx0PSIke3RoaXMuZmlsZW5hbWV8fCIifSIKICAgICAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgICAgIGA7Y2FzZSJwZGYiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgICAgICAucGRmVXJsPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7dGhpcy5zaG93VG9vbGJhcn0KICAgICAgICAgICAgaW5pdGlhbFpvb209InBhZ2UtZml0IgogICAgICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgICAgIGA7Y2FzZSJhdWRpbyI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC50aXRsZT0ke3RoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgICAgICBgO2Nhc2UidmlkZW8iOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICAgICAgYDtjYXNlImNvZGUiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveAogICAgICAgICAgICAucHJvZ0xhbmc9JHt0aGlzLnJlc29sdmVkTGFuZ30KICAgICAgICAgICAgLmNvZGVUb0Rpc3BsYXk9JHt0aGlzLnJlc29sdmVkVGV4dH0KICAgICAgICAgID48L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgICAgICBgO2Nhc2UidGV4dCI6cmV0dXJuIHdgPHByZSBjbGFzcz0idGV4dC12aWV3ZXIiPiR7dGhpcy5yZXNvbHZlZFRleHR9PC9wcmU+YDtkZWZhdWx0OnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGaWxlUXVlc3Rpb24iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYH19YXN5bmMgdXBkYXRlZChvZSl7c3VwZXIudXBkYXRlZChvZSksWyJ1cmwiLCJmaWxlIiwiYmFzZTY0IiwidGV4dENvbnRlbnQiLCJjb250ZW50VHlwZSIsImxhbmd1YWdlIiwibWltZVR5cGUiLCJmaWxlbmFtZSJdLnNvbWUoUmU9Pm9lLmhhcyhSZSkpJiZhd2FpdCB0aGlzLnJlc29sdmVDb250ZW50KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmV2b2tlT2JqZWN0VXJsKCl9YXN5bmMgcmVzb2x2ZUNvbnRlbnQoKXt0aGlzLmVycm9yPSIiLHRoaXMucmV2b2tlT2JqZWN0VXJsKCksdGhpcy5yZXNvbHZlZFR5cGU9dGhpcy5kZXRlY3RUeXBlKCk7dHJ5e2lmKHRoaXMudXJsKXtpZih0aGlzLnJlc29sdmVkU3JjPXRoaXMudXJsLHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IilpZih0aGlzLnRleHRDb250ZW50KXRoaXMucmVzb2x2ZWRUZXh0PXRoaXMudGV4dENvbnRlbnQ7ZWxzZXt0aGlzLmxvYWRpbmc9ITA7bGV0IG9lPWF3YWl0IGZldGNoKHRoaXMudXJsKTt0aGlzLnJlc29sdmVkVGV4dD1hd2FpdCBvZS50ZXh0KCksdGhpcy5sb2FkaW5nPSExfX1lbHNlIGlmKHRoaXMuZmlsZSl0aGlzLm9iamVjdFVybD1VUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMuZmlsZSksdGhpcy5yZXNvbHZlZFNyYz10aGlzLm9iamVjdFVybCwodGhpcy5yZXNvbHZlZFR5cGU9PT0iY29kZSJ8fHRoaXMucmVzb2x2ZWRUeXBlPT09InRleHQiKSYmKHRoaXMubG9hZGluZz0hMCx0aGlzLnJlc29sdmVkVGV4dD1hd2FpdCB0aGlzLmZpbGUudGV4dCgpLHRoaXMubG9hZGluZz0hMSk7ZWxzZSBpZih0aGlzLmJhc2U2NCl7bGV0IG9lPXRoaXMubWltZVR5cGV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iO3RoaXMucmVzb2x2ZWRTcmM9YGRhdGE6JHtvZX07YmFzZTY0LCR7dGhpcy5iYXNlNjR9YH1lbHNlIHRoaXMudGV4dENvbnRlbnQmJih0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50KX1jYXRjaHt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBjb250ZW50Iix0aGlzLmxvYWRpbmc9ITF9dGhpcy5yZXNvbHZlZExhbmc9dGhpcy5yZXNvbHZlTGFuZ3VhZ2UoKX1kZXRlY3RUeXBlKCl7aWYodGhpcy5jb250ZW50VHlwZSlyZXR1cm4gdGhpcy5jb250ZW50VHlwZTtsZXQgb2U9dGhpcy5taW1lVHlwZXx8dGhpcy5maWxlPy50eXBlfHwiIjtpZihvZSl7aWYob2U9PT0iYXBwbGljYXRpb24vcGRmIilyZXR1cm4icGRmIjtmb3IobGV0W1RlLFJlXW9mIE9iamVjdC5lbnRyaWVzKFdYYSkpaWYob2Uuc3RhcnRzV2l0aChUZSkpcmV0dXJuIFJlO2lmKG9lLnN0YXJ0c1dpdGgoInRleHQvIikpcmV0dXJuInRleHQifWxldCBhZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBhZSYmRzVhW2FlXT9HNWFbYWVdOnRoaXMudGV4dENvbnRlbnQ/dGhpcy5sYW5ndWFnZT8iY29kZSI6InRleHQiOiJ1bmtub3duIn1nZXRFeHRlbnNpb24oKXtsZXQgb2U9dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHwiIjtpZihvZSl7bGV0IGFlPW9lLnNwbGl0KCIuIik7aWYoYWUubGVuZ3RoPjEpcmV0dXJuIGFlLnBvcCgpLnRvTG93ZXJDYXNlKCl9aWYodGhpcy51cmwpdHJ5e2xldCBUZT1uZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIuIik7aWYoVGUubGVuZ3RoPjEpcmV0dXJuIFRlLnBvcCgpLnRvTG93ZXJDYXNlKCl9Y2F0Y2h7fXJldHVybiIifWdldEZpbGVuYW1lRnJvbVVybCgpe2lmKCF0aGlzLnVybClyZXR1cm4iIjt0cnl7cmV0dXJuIG5ldyBVUkwodGhpcy51cmwsImh0dHBzOi8vcGxhY2Vob2xkZXIuY29tIikucGF0aG5hbWUuc3BsaXQoIi8iKS5wb3AoKXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fXJlc29sdmVMYW5ndWFnZSgpe2lmKHRoaXMubGFuZ3VhZ2UpcmV0dXJuIHRoaXMubGFuZ3VhZ2U7bGV0IG9lPXRoaXMuZ2V0RXh0ZW5zaW9uKCk7cmV0dXJuIEdYYVtvZV18fCJ0ZXh0In1yZXZva2VPYmplY3RVcmwoKXt0aGlzLm9iamVjdFVybCYmKFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5vYmplY3RVcmwpLHRoaXMub2JqZWN0VXJsPSIiKX1zdGF0aWN7Z3MoYSx0KX19O3JldHVybiBzZT1hfSkoKX0pO3ZhciBaNWE9ZygoKT0+e1k1YSgpfSk7dmFyIHN4LGlydD1nKCgpPT57c3g9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FudmFzUG9vbCIpfXN0YXRpYyBwb29sPVtdO3N0YXRpYyBtYXhQb29sU2l6ZT0yMDtzdGF0aWMgTUlOX0NBTlZBU19TSVpFPTI1NjtzdGF0aWMgTUFYX0NBTlZBU19TSVpFPTQwOTY7c3RhdGljIGFjcXVpcmUoZSx0KXtsZXQgYT10aGlzLnBvb2wuZmluZChsPT4hbC5pblVzZSYmbC5jYW52YXMud2lkdGg+PWUmJmwuY2FudmFzLmhlaWdodD49dCYmbC5jYW52YXMud2lkdGg8PWUqMS41JiZsLmNhbnZhcy5oZWlnaHQ8PXQqMS41KTtpZihhKXJldHVybiBhLmluVXNlPSEwLGEubGFzdFVzZWQ9RGF0ZS5ub3coKSxhLmNhbnZhcy53aWR0aD1lLGEuY2FudmFzLmhlaWdodD10LGEuY3R4LmNsZWFyUmVjdCgwLDAsZSx0KSxhO2lmKHRoaXMucG9vbC5sZW5ndGg8dGhpcy5tYXhQb29sU2l6ZSl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikscD1sLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITAsZGVzeW5jaHJvbml6ZWQ6ITB9KTtsLndpZHRoPU1hdGgubWluKE1hdGgubWF4KGUsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKSxsLmhlaWdodD1NYXRoLm1pbihNYXRoLm1heCh0LHRoaXMuTUlOX0NBTlZBU19TSVpFKSx0aGlzLk1BWF9DQU5WQVNfU0laRSk7bGV0IGQ9e2NhbnZhczpsLGN0eDpwLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9O3JldHVybiB0aGlzLnBvb2wucHVzaChkKSxkfWxldCByPXRoaXMucG9vbC5maWx0ZXIobD0+IWwuaW5Vc2UpLnNvcnQoKGwscCk9PmwubGFzdFVzZWQtcC5sYXN0VXNlZClbMF07aWYocilyZXR1cm4gci5jYW52YXMud2lkdGg9ZSxyLmNhbnZhcy5oZWlnaHQ9dCxyLmN0eC5jbGVhclJlY3QoMCwwLGUsdCksci5pblVzZT0hMCxyLmxhc3RVc2VkPURhdGUubm93KCkscjtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxvPW4uZ2V0Q29udGV4dCgiMmQiKTtyZXR1cm4gbi53aWR0aD1lLG4uaGVpZ2h0PXQse2NhbnZhczpuLGN0eDpvLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9fXN0YXRpYyByZWxlYXNlKGUpe3RoaXMucG9vbC5pbmNsdWRlcyhlKSYmKGUuaW5Vc2U9ITEsZS5jdHguY2xlYXJSZWN0KDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpKX1zdGF0aWMgcmVsZWFzZUFsbCgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCl9c3RhdGljIGRlc3Ryb3koKXtmb3IobGV0IGUgb2YgdGhpcy5wb29sKWUuY2FudmFzLndpZHRoPTAsZS5jYW52YXMuaGVpZ2h0PTA7dGhpcy5wb29sPVtdfXN0YXRpYyBnZXRTdGF0cygpe3JldHVybntwb29sU2l6ZTp0aGlzLnBvb2wubGVuZ3RoLG1heFBvb2xTaXplOnRoaXMubWF4UG9vbFNpemUsaW5Vc2U6dGhpcy5wb29sLmZpbHRlcihlPT5lLmluVXNlKS5sZW5ndGgsYXZhaWxhYmxlOnRoaXMucG9vbC5maWx0ZXIoZT0+IWUuaW5Vc2UpLmxlbmd0aH19c3RhdGljIGFkanVzdFBvb2xTaXplKGUpe2lmKGU8dGhpcy5wb29sLmxlbmd0aCl7bGV0IHQ9dGhpcy5wb29sLmxlbmd0aC1lLGE9dGhpcy5wb29sLmZpbHRlcihyPT4hci5pblVzZSkuc2xpY2UoMCx0KTtmb3IobGV0IHIgb2YgYSl7bGV0IG49dGhpcy5wb29sLmluZGV4T2Yocik7bj4tMSYmdGhpcy5wb29sLnNwbGljZShuLDEpfX10aGlzLm1heFBvb2xTaXplPWV9fX0pO2Z1bmN0aW9uIFlYYShzLGUpe2xldCB0O3JldHVybiBpKGZ1bmN0aW9uKC4uLnIpe2xldCBuPWkoKCk9PntjbGVhclRpbWVvdXQodCkscyguLi5yKX0sImxhdGVyIik7Y2xlYXJUaW1lb3V0KHQpLHQ9d2luZG93LnNldFRpbWVvdXQobixlKX0sImV4ZWN1dGVkRnVuY3Rpb24iKX1mdW5jdGlvbiBaWGEocyxlKXtsZXQgdDtyZXR1cm4oLi4uYSk9Pnt0fHwocyguLi5hKSx0PSEwLHNldFRpbWVvdXQoKCk9PnQ9ITEsZSkpfX1mdW5jdGlvbiBycnQocyl7aWYocz09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBlPTEwMjQsdD1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0sYT1NYXRoLmZsb29yKE1hdGgubG9nKHMpL01hdGgubG9nKGUpKTtyZXR1cm4gTWF0aC5yb3VuZChzL01hdGgucG93KGUsYSkqMTAwKS8xMDArIiAiK3RbYV19ZnVuY3Rpb24gWFhhKHMsZT0wKXtsZXQgdD1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LnRvcD49LWUmJnQubGVmdD49LWUmJnQuYm90dG9tPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KStlJiZ0LnJpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkrZX12YXIgaXgsb3J0PWcoKCk9PntpKFlYYSwiZGVib3VuY2UiKTtpKFpYYSwidGhyb3R0bGUiKTtpKHJydCwiZm9ybWF0RmlsZVNpemUiKTtpKFhYYSwiaXNJblZpZXdwb3J0Iik7aXg9Y2xhc3N7c3RhdGlje2kodGhpcywiUGVyZm9ybWFuY2VNb25pdG9yIil9c3RhdGljIG1hcmtzPW5ldyBNYXA7c3RhdGljIG1lYXN1cmVzPVtdO3N0YXRpYyBtYXJrKGUpe3RoaXMubWFya3Muc2V0KGUscGVyZm9ybWFuY2Uubm93KCkpfXN0YXRpYyBtZWFzdXJlKGUsdCl7bGV0IGE9dGhpcy5tYXJrcy5nZXQodCk7aWYoYSl7bGV0IHI9cGVyZm9ybWFuY2Uubm93KCktYTtyZXR1cm4gdGhpcy5tZWFzdXJlcy5wdXNoKHtuYW1lOmUsZHVyYXRpb246cn0pLHRoaXMubWFya3MuZGVsZXRlKHQpLHJ9cmV0dXJuIDB9c3RhdGljIGdldFJlcG9ydCgpe2xldCBlPXttZWFzdXJlczpbLi4udGhpcy5tZWFzdXJlc10sYXZlcmFnZXM6e319LHQ9bmV3IE1hcDtmb3IobGV0IGEgb2YgdGhpcy5tZWFzdXJlcyl0LmhhcyhhLm5hbWUpfHx0LnNldChhLm5hbWUsW10pLHQuZ2V0KGEubmFtZSkucHVzaChhLmR1cmF0aW9uKTtmb3IobGV0W2Escl1vZiB0KWUuYXZlcmFnZXNbYV09ci5yZWR1Y2UoKG4sbyk9Pm4rbywwKS9yLmxlbmd0aDtyZXR1cm4gZX1zdGF0aWMgY2xlYXIoKXt0aGlzLm1hcmtzLmNsZWFyKCksdGhpcy5tZWFzdXJlcz1bXX19fSk7dmFyIFg1YT1nKCgpPT57aXJ0KCk7cjFlKCk7b3J0KCl9KTt2YXIgUTVhPWcoKCk9PntzcnQoKX0pO3ZhciBwbixrdT1nKCgpPT57cGUoKTtwbj1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDI2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4yNCkiKX07CgogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGUgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciB7CiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAudGlsZS1vdmVybGF5IHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAudGlsZS1jb250ZW50IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIHotaW5kZXg6IDIwOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSBzcGFuIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtaW5mby1iYXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC45NSkiLCJoc2woMjE1IDIwJSAxMiUgLyAwLjk1KSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA2cHg7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICB6LWluZGV4OiAyNTsKICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIH0KCiAgICAuaW5mby1sYWJlbCB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmluZm8tc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgIH0KCiAgICAuaW5mby1kZXRhaWwgewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcsCiAgICAudGlsZS1lcnJvciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICB9CgogICAgLnRpbGUtZXJyb3IgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDk4JSkiLCJoc2woMCA2MiUgMjAlKSIpfTsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIH0KCiAgICAudGlsZS1zcGlubmVyIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmctdGV4dCwKICAgIC50aWxlLWVycm9yLXRleHQgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICA6aG9zdChbc2l6ZT0ic21hbGwiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDE1MHB4OwogICAgICBoZWlnaHQ6IDE5NXB4OwogICAgfQoKICAgIDpob3N0KFtzaXplPSJsYXJnZSJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMjUwcHg7CiAgICAgIGhlaWdodDogMzI1cHg7CiAgICB9CgogICAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgICA6aG9zdChbZ3JpZC1tb2RlXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICB9CiAgYF19KTt2YXIgdFEsS2QsSG4sWmg9ZygoKT0+e3BlKCk7a3UoKTtVYSgpO3RRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLZD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSG49KCgpPT57bGV0IHM9d2UsZSx0PVtdLGE9W10scixuPVtdLG89W10sbCxwPVtdLGQ9W10sdSxjPVtdLGI9W10sdix4PVtdLG09W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsQmFzZSIpfXN0YXRpY3tsZXQgeT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtMKHt0eXBlOkJvb2xlYW59KV0scj1bTCh7dHlwZTpCb29sZWFufSldLGw9W0woe3R5cGU6Qm9vbGVhbn0pXSx1PVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHY9W0woe3R5cGU6U3RyaW5nfSldLHRRKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2xpY2thYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJjbGlja2FibGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5jbGlja2FibGUsImdldCIpLHNldDppKChNLHopPT57TS5jbGlja2FibGU9en0sInNldCIpfSxtZXRhZGF0YTp5fSx0LGEpLHRRKHRoaXMsbnVsbCxyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibG9hZGluZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmxvYWRpbmcsImdldCIpLHNldDppKChNLHopPT57TS5sb2FkaW5nPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0sbixvKSx0USh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJlcnJvciJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmVycm9yLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00uZXJyb3I9en0sInNldCIpfSxtZXRhZGF0YTp5fSxwLGQpLHRRKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2l6ZSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnNpemUsImdldCIpLHNldDppKChNLHopPT57TS5zaXplPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0sYyxiKSx0USh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJsYWJlbCJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmxhYmVsLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00ubGFiZWw9en0sInNldCIpfSxtZXRhZGF0YTp5fSx4LG0pLHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eX0pfXN0YXRpYyBzdHlsZXM9cG47I2U9S2QodGhpcyx0LCEwKTtnZXQgY2xpY2thYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNsaWNrYWJsZSh5KXt0aGlzLiNlPXl9I3Q9KEtkKHRoaXMsYSksS2QodGhpcyxuLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9hZGluZyh5KXt0aGlzLiN0PXl9I2E9KEtkKHRoaXMsbyksS2QodGhpcyxwLCExKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVycm9yKHkpe3RoaXMuI2E9eX0jcz0oS2QodGhpcyxkKSxLZCh0aGlzLGMsImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2l6ZSh5KXt0aGlzLiNzPXl9I2k9KEtkKHRoaXMsYiksS2QodGhpcyx4LCIiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKHkpe3RoaXMuI2k9eX1vYnNlcnZlcj1LZCh0aGlzLG0pO192aXNpYmxlPSExO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5fdmlzaWJsZX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0aWxlLWNvbnRhaW5lciAke3RoaXMuY2xpY2thYmxlPyJjbGlja2FibGUiOiIifSAke3RoaXMubG9hZGluZz8ibG9hZGluZyI6IiJ9ICR7dGhpcy5lcnJvcj8iZXJyb3IiOiIifSIKICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVRpbGVDbGlja30KICAgICAgICBAbW91c2VlbnRlcj0ke3RoaXMub25UaWxlTW91c2VFbnRlcn0KICAgICAgICBAbW91c2VsZWF2ZT0ke3RoaXMub25UaWxlTW91c2VMZWF2ZX0KICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5vblRpbGVNb3VzZU1vdmV9CiAgICAgID4KICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1sb2FkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1sb2FkaW5nLXRleHQiPkxvYWRpbmcuLi48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFsZXJ0VHJpYW5nbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWVycm9yLXRleHQiPkZhaWxlZCB0byBsb2FkPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAkeyF0aGlzLmxvYWRpbmcmJiF0aGlzLmVycm9yP3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoKToiIn0KCiAgICAgICAgJHt0aGlzLnJlbmRlckJvdHRvbUJhcigpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIiJ9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm9ic2VydmVyJiYodGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5vYnNlcnZlcj12b2lkIDApfXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLm9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih5PT57Zm9yKGxldCBNIG9mIHkpe2xldCB6PXRoaXMuX3Zpc2libGU7dGhpcy5fdmlzaWJsZT1NLmlzSW50ZXJzZWN0aW5nLHRoaXMuX3Zpc2libGUmJiF6JiZ0aGlzLm9uQmVjYW1lVmlzaWJsZSgpfX0se3Jvb3Q6bnVsbCxyb290TWFyZ2luOiIyMDBweCIsdGhyZXNob2xkOi4wMX0pLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKX1vbkJlY2FtZVZpc2libGUoKXt9b25UaWxlTW91c2VFbnRlcigpe31vblRpbGVNb3VzZUxlYXZlKCl7fW9uVGlsZU1vdXNlTW92ZSh5KXt9aGFuZGxlVGlsZUNsaWNrKCl7dGhpcy5jbGlja2FibGUmJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRpbGUtY2xpY2siLHtkZXRhaWw6dGhpcy5nZXRUaWxlQ2xpY2tEZXRhaWwoKSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybnt9fX19KSgpfSk7dmFyIEo1YT1nKCgpPT57WmgoKTtrdSgpfSk7dmFyIGU4YSx0OGE9ZygoKT0+e3BlKCk7ZThhPUpgCiAgLnByZXZpZXctc3RhY2sgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBwYWRkaW5nOiA4cHggOHB4IDI4cHggOHB4OwogIH0KCiAgLnByZXZpZXctc3RhY2subm9uLWE0IHsKICAgIHBhZGRpbmc6IDEycHggMTJweCAyOHB4IDEycHg7CiAgfQoKICAucHJldmlldy1jYW52YXMgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogIH0KCiAgLm5vbi1hNCAucHJldmlldy1jYW52YXMgewogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyNCUpIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogIH0KCiAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgOmhvc3QoW2dyaWQtbW9kZV0pIC5wcmV2aWV3LWNhbnZhcyB7CiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogIH0KYH0pO3ZhciBhOGEsczhhPWcoKCk9PntwZSgpO2E4YT1pKCgpPT57bGV0IHM9WyJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiLCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiXSxlPWkodD0+e2xldCBhPVtdO2ZvcihsZXQgcj0wO3I8dDtyKyspe2xldCBuPXNbciVzLmxlbmd0aF07YS5wdXNoKHdgCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSIke259IgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgZ3JpZC1tb2RlCiAgICAgICAgICBAdGlsZS1jbGljaz0ke289Pntjb25zb2xlLmxvZygiUERGIFRpbGUgY2xpY2tlZDoiLG8uZGV0YWlsKSxhbGVydChgUERGIGNsaWNrZWQ6ICR7by5kZXRhaWwucGFnZUNvdW50fSBwYWdlc2ApfX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIGApfXJldHVybiBhfSwiZ2VuZXJhdGVHcmlkSXRlbXMiKTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAucHJldmlldy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpbmdsZSBQREYgVGlsZTwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkRpZmZlcmVudCBTaXplczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+U21hbGw6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5EZWZhdWx0OjwvZGl2PgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5MYXJnZTo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aCBMYWJlbDwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICBsYWJlbD0iUmVzZWFyY2ggUGFwZXIucGRmIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob24tQ2xpY2thYmxlPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0iZmFsc2UiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkdyaWQgLSAyMCBQREZzIHdpdGggTGF6eSBMb2FkaW5nPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWdyaWQiPgogICAgICAgICAgJHtlKDIwKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtbyIpfSk7dmFyIFhoLHFuLGk4YSxyOGE9ZygoKT0+e3BlKCk7WmgoKTtrdSgpO3IxZSgpO2lydCgpO29ydCgpO3Q4YSgpO3M4YSgpO1hoPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxxbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0saThhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtcGRmIildLGUsdD1bXSxhLHI9SG4sbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxQZGYiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtZKCldLFhoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJwZGZVcmwiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wZGZVcmwsImdldCIpLHNldDppKChTLEkpPT57Uy5wZGZVcmw9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLFhoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZXZpZXdQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50UHJldmlld1BhZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXJyZW50UHJldmlld1BhZ2UsImdldCIpLHNldDppKChTLEkpPT57Uy5jdXJyZW50UHJldmlld1BhZ2U9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLFhoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJwYWdlQ291bnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wYWdlQ291bnQsImdldCIpLHNldDppKChTLEkpPT57Uy5wYWdlQ291bnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLFhoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuZGVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InJlbmRlcmVkImluIFMsImhhcyIpLGdldDppKFM9PlMucmVuZGVyZWQsImdldCIpLHNldDppKChTLEkpPT57Uy5yZW5kZXJlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksWGgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc0hvdmVyaW5nImluIFMsImhhcyIpLGdldDppKFM9PlMuaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmlzSG92ZXJpbmc9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLFhoKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNBNEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNBNEZvcm1hdCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzQTRGb3JtYXQsImdldCIpLHNldDppKChTLEkpPT57Uy5pc0E0Rm9ybWF0PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxYaCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJmaWxlU2l6ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZmlsZVNpemU9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLFhoKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89YThhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVsuLi5wbixlOGFdOyNlPXFuKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoayl7dGhpcy4jZT1rfSN0PShxbih0aGlzLGwpLHFuKHRoaXMsZCwxKSk7Z2V0IGN1cnJlbnRQcmV2aWV3UGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBjdXJyZW50UHJldmlld1BhZ2Uoayl7dGhpcy4jdD1rfSNhPShxbih0aGlzLHUpLHFuKHRoaXMsYiwwKSk7Z2V0IHBhZ2VDb3VudCgpe3JldHVybiB0aGlzLiNhfXNldCBwYWdlQ291bnQoayl7dGhpcy4jYT1rfSNzPShxbih0aGlzLHYpLHFuKHRoaXMsbSwhMSkpO2dldCByZW5kZXJlZCgpe3JldHVybiB0aGlzLiNzfXNldCByZW5kZXJlZChrKXt0aGlzLiNzPWt9I2k9KHFuKHRoaXMsZikscW4odGhpcyxNLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyhrKXt0aGlzLiNpPWt9I3I9KHFuKHRoaXMseikscW4odGhpcyxDLCEwKSk7Z2V0IGlzQTRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNBNEZvcm1hdChrKXt0aGlzLiNyPWt9I289KHFuKHRoaXMsXykscW4odGhpcywkLDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgZmlsZVNpemUoayl7dGhpcy4jbz1rfXJlbmRlclBhZ2VzVGFzaz0ocW4odGhpcyxFKSxudWxsKTtyZW5kZXJQYWdlc1F1ZXVlZD0hMTtwZGZEb2N1bWVudDtjYW52YXNlcz1bXTtyZXNpemVPYnNlcnZlcjtzdGFja0VsZW1lbnQ9bnVsbDtsb2FkZWRQZGZVcmw9bnVsbDtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXN0YWNrICR7dGhpcy5pc0E0Rm9ybWF0PyIiOiJub24tYTQifSI+CiAgICAgICAgPGNhbnZhcwogICAgICAgICAgY2xhc3M9InByZXZpZXctY2FudmFzIgogICAgICAgICAgZGF0YS1wYWdlPSIke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSIKICAgICAgICA+PC9jYW52YXM+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBQREY8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLnBhZ2VDb3VudCYmIXRoaXMubGFiZWw/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLnBhZ2VDb3VudD4xJiZ0aGlzLmlzSG92ZXJpbmc/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9LyR7dGhpcy5wYWdlQ291bnR9PC9zcGFuPmA6dGhpcy5wYWdlQ291bnQ+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLnBhZ2VDb3VudH0gcGc8L3NwYW4+YDoiIn0KICAgICAgICAke3RoaXMuZmlsZVNpemU+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHtycnQodGhpcy5maWxlU2l6ZSl9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57cGRmVXJsOnRoaXMucGRmVXJsLHBhZ2VDb3VudDp0aGlzLnBhZ2VDb3VudH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMucmVuZGVyZWQmJnRoaXMucGRmVXJsJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlIT09MSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfW9uVGlsZU1vdXNlTW92ZShrKXtpZighdGhpcy5pc0hvdmVyaW5nfHx0aGlzLnBhZ2VDb3VudDw9MSlyZXR1cm47bGV0IFM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJPWsuY2xpZW50WC1TLmxlZnQsUD1TLndpZHRoLFI9TWF0aC5tYXgoMCxNYXRoLm1pbigxLEkvUCkpLEs9TWF0aC5jZWlsKFIqdGhpcy5wYWdlQ291bnQpfHwxO0shPT10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPUssdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLHRoaXMuc2V0dXBSZXNpemVPYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9YXN5bmMgbG9hZEFuZFJlbmRlclByZXZpZXcoKXtpZighKHRoaXMucmVuZGVyZWR8fHRoaXMubG9hZGluZykpe3RoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSExLGl4Lm1hcmsoYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO3RyeXt0aGlzLnBkZkRvY3VtZW50PWF3YWl0IEdkLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksdGhpcy5wYWdlQ291bnQ9dGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcyx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xO3RyeXtsZXQgUz1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERvd25sb2FkSW5mbygpO3RoaXMuZmlsZVNpemU9Uy5sZW5ndGh9Y2F0Y2h7fXRoaXMubG9hZGVkUGRmVXJsPXRoaXMucGRmVXJsLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLGF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpLHRoaXMucmVuZGVyZWQ9ITA7bGV0IGs9aXgubWVhc3VyZShgcHJldmlldy1yZW5kZXItJHt0aGlzLnBkZlVybH1gLGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTtjb25zb2xlLmxvZyhgUERGIHRpbGUgcmVuZGVyZWQgaW4gJHtrfW1zYCl9Y2F0Y2goayl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgUERGIHRpbGU6IixrKSx0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX19fXNjaGVkdWxlUmVuZGVyUGFnZXMoKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudD90aGlzLnJlbmRlclBhZ2VzVGFzaz8odGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMCx0aGlzLnJlbmRlclBhZ2VzVGFzayk6KHRoaXMucmVuZGVyUGFnZXNUYXNrPShhc3luYygpPT57dHJ5e2F3YWl0IHRoaXMucGVyZm9ybVJlbmRlclBhZ2VzKCl9Y2F0Y2goayl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmRlciBQREYgdGlsZSBwYWdlczoiLGspfX0pKCkuZmluYWxseSgoKT0+e3RoaXMucmVuZGVyUGFnZXNUYXNrPW51bGwsdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZCYmKHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfSksdGhpcy5yZW5kZXJQYWdlc1Rhc2spOlByb21pc2UucmVzb2x2ZSgpfWFzeW5jIHBlcmZvcm1SZW5kZXJQYWdlcygpe2lmKCF0aGlzLnBkZkRvY3VtZW50KXJldHVybjthd2FpdCBuZXcgUHJvbWlzZShQPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUCkpO2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctY2FudmFzIik7aWYoIWspcmV0dXJuO3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMuY2FjaGVFbGVtZW50cygpO2xldHthdmFpbGFibGVXaWR0aDpTLGF2YWlsYWJsZUhlaWdodDpJfT10aGlzLmdldEF2YWlsYWJsZVNpemUoKTt0cnl7bGV0IFA9dGhpcy5jdXJyZW50UHJldmlld1BhZ2UsUj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoUCksSz1SLmdldFZpZXdwb3J0KHtzY2FsZToxfSksVj1LLmhlaWdodC9LLndpZHRoLFc9MS40MTQsbWU9LjcwNyxCPTEuMjk0LFU9Ljc3MyxoZT0uMDUsRj1NYXRoLmFicyhWLVcpPFcqaGUsaj1NYXRoLmFicyhWLW1lKTxtZSpoZSx1ZT1NYXRoLmFicyhWLUIpPEIqaGUsbGU9TWF0aC5hYnMoVi1VKTxVKmhlO3RoaXMuaXNBNEZvcm1hdD1GfHxqfHx1ZXx8bGU7bGV0IFE9dGhpcy5pc0E0Rm9ybWF0P1M6Uy0yNCxpZT10aGlzLmlzQTRGb3JtYXQ/STpJLTI0LHRlPVE+MD9RL0sud2lkdGg6MCxlZT1pZT4wP2llL0suaGVpZ2h0OjAsa2U9TWF0aC5taW4odGV8fC41LGVlfHx0ZXx8LjUpLFg9TWF0aC5taW4oa2UqMiwzKTtpZighTnVtYmVyLmlzRmluaXRlKFgpfHxYPD0wKXtSLmNsZWFudXA/LigpO3JldHVybn1sZXQgWj1SLmdldFZpZXdwb3J0KHtzY2FsZTpYfSkseWU9c3guYWNxdWlyZShaLndpZHRoLFouaGVpZ2h0KTt0aGlzLmNhbnZhc2VzLnB1c2goeWUpO2xldCBxPXtjYW52YXNDb250ZXh0OnllLmN0eCx2aWV3cG9ydDpafTthd2FpdCBSLnJlbmRlcihxKS5wcm9taXNlLGsud2lkdGg9Wi53aWR0aCxrLmhlaWdodD1aLmhlaWdodDtsZXQgQT1RLHNlPVouaGVpZ2h0L1oud2lkdGgqUTtpZihzZT5pZSl7bGV0IGFlPWllLFRlPVoud2lkdGgvWi5oZWlnaHQqaWU7ay5zdHlsZS53aWR0aD1gJHtUZX1weGAsay5zdHlsZS5oZWlnaHQ9YCR7YWV9cHhgfWVsc2Ugay5zdHlsZS53aWR0aD1gJHtBfXB4YCxrLnN0eWxlLmhlaWdodD1gJHtzZX1weGA7bGV0IG9lPWsuZ2V0Q29udGV4dCgiMmQiKTtvZSYmKG9lLmltYWdlU21vb3RoaW5nRW5hYmxlZD0hMCxvZS5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLG9lLmRyYXdJbWFnZSh5ZS5jYW52YXMsMCwwKSksUi5jbGVhbnVwKCl9Y2F0Y2goUCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHJlbmRlciBwYWdlICR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9OmAsUCl9fWNsZWFyQ2FudmFzZXMoKXtmb3IobGV0IGsgb2YgdGhpcy5jYW52YXNlcylzeC5yZWxlYXNlKGspO3RoaXMuY2FudmFzZXM9W119Y2xlYW51cCgpe3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMucGRmRG9jdW1lbnQmJihHZC5yZWxlYXNlRG9jdW1lbnQodGhpcy5sb2FkZWRQZGZVcmw/P3RoaXMucGRmVXJsKSx0aGlzLnBkZkRvY3VtZW50PW51bGwpLHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5wYWdlQ291bnQ9MCx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xLHRoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmlzQTRGb3JtYXQ9ITAsdGhpcy5zdGFja0VsZW1lbnQ9bnVsbCx0aGlzLmxvYWRlZFBkZlVybD1udWxsLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9ITF9YXN5bmMgdXBkYXRlZChrKXtpZihzdXBlci51cGRhdGVkKGspLGsuaGFzKCJwZGZVcmwiKSYmdGhpcy5wZGZVcmwpe2xldCBTPWsuZ2V0KCJwZGZVcmwiKTtTJiZHZC5yZWxlYXNlRG9jdW1lbnQoUyksdGhpcy5jbGVhbnVwKCksdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xO2xldCBJPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7SS50b3A8d2luZG93LmlubmVySGVpZ2h0JiZJLmJvdHRvbT4wJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9ay5oYXMoImN1cnJlbnRQcmV2aWV3UGFnZSIpJiZ0aGlzLnJlbmRlcmVkJiZhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IGs9W107cmV0dXJuIHRoaXMuY2xpY2thYmxlJiYoay5wdXNoKHtuYW1lOiJWaWV3IFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpFeWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0sImFjdGlvbiIpfSksay5wdXNoKHtkaXZpZGVyOiEwfSkpLGsucHVzaCh7bmFtZToiT3BlbiBQREYgaW4gTmV3IFRhYiIsaWNvbk5hbWU6Imx1Y2lkZTpFeHRlcm5hbExpbmsiLGFjdGlvbjppKGFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDb3B5IFBERiBVUkwiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX0sImFjdGlvbiIpfSx7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO1MuaHJlZj10aGlzLnBkZlVybCxTLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLFMuY2xpY2soKX0sImFjdGlvbiIpfSksdGhpcy5wYWdlQ291bnQ+MCYmay5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZTpgJHt0aGlzLnBhZ2VDb3VudH0gcGFnZSR7dGhpcy5wYWdlQ291bnQ+MT8icyI6IiJ9YCxpY29uTmFtZToibHVjaWRlOkZpbGVUZXh0IixkaXNhYmxlZDohMCxhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIil9KSxrfWNhY2hlRWxlbWVudHMoKXt0aGlzLnN0YWNrRWxlbWVudHx8KHRoaXMuc3RhY2tFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctc3RhY2siKSl9c2V0dXBSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXJ8fCh0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMucmVuZGVyZWQmJnRoaXMucGRmRG9jdW1lbnQmJiF0aGlzLmxvYWRpbmcmJnRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpKX1nZXRBdmFpbGFibGVTaXplKCl7aWYodGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpLCF0aGlzLnN0YWNrRWxlbWVudClyZXR1cm57YXZhaWxhYmxlV2lkdGg6MjAwLGF2YWlsYWJsZUhlaWdodDoyNjB9O2xldCBrPXRoaXMuc3RhY2tFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFM9TWF0aC5tYXgoay53aWR0aCwwKXx8MjAwLEk9TWF0aC5tYXgoay5oZWlnaHQsMCl8fDI2MDtyZXR1cm57YXZhaWxhYmxlV2lkdGg6UyxhdmFpbGFibGVIZWlnaHQ6SX19c3RhdGlje3FuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBvOGE9ZygoKT0+e3I4YSgpfSk7dmFyIG44YSxsOGE9ZygoKT0+e3BlKCk7bjhhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkltYWdlIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvODAwLzYwMCIKICAgICAgICAgIGFsdD0iTGFuZHNjYXBlIHBob3RvIgogICAgICAgICAgbGFiZWw9ImxhbmRzY2FwZS5qcGciCiAgICAgICAgICBAdGlsZS1jbGljaz0ke3M9PmNvbnNvbGUubG9nKCJJbWFnZSBjbGlja2VkOiIscy5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC80MDAiCiAgICAgICAgICBhbHQ9IlNxdWFyZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJzcXVhcmUucG5nIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzMwMC85MDAiCiAgICAgICAgICBhbHQ9IlBvcnRyYWl0IHBob3RvIgogICAgICAgICAgbGFiZWw9InBvcnRyYWl0LndlYnAiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDAiCiAgICAgICAgICBhbHQ9IlNtYWxsIgogICAgICAgICAgbGFiZWw9InNtYWxsLmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy82MDAvNDAwIgogICAgICAgICAgYWx0PSJEZWZhdWx0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQuanBnIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvMTIwMC84MDAiCiAgICAgICAgICBhbHQ9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RXJyb3IgU3RhdGUgKGJyb2tlbiBVUkwpPC9oMz4KICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgc3JjPSJodHRwczovL2ludmFsaWQtdXJsLXRoYXQtZG9lcy1ub3QtZXhpc3QuZXhhbXBsZS9pbWFnZS5wbmciCiAgICAgICAgYWx0PSJCcm9rZW4iCiAgICAgICAgbGFiZWw9ImJyb2tlbi5wbmciCiAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciByeCx1MixjOGEsZDhhPWcoKCk9PntwZSgpO1poKCk7a3UoKTtsOGEoKTtyeD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sdTI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGM4YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLWltYWdlIildLGUsdD1bXSxhLHI9SG4sbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxJbWFnZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLHJ4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzcmMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zcmMsImdldCIpLHNldDppKChfLE8pPT57Xy5zcmM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHJ4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWx0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJhbHQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5hbHQsImdldCIpLHNldDppKChfLE8pPT57Xy5hbHQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLHJ4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VMb2FkZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImltYWdlTG9hZGVkImluIF8sImhhcyIpLGdldDppKF89Pl8uaW1hZ2VMb2FkZWQsImdldCIpLHNldDppKChfLE8pPT57Xy5pbWFnZUxvYWRlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdikscngodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbWFnZVdpZHRoImluIF8sImhhcyIpLGdldDppKF89Pl8uaW1hZ2VXaWR0aCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmltYWdlV2lkdGg9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLHJ4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImltYWdlSGVpZ2h0ImluIF8sImhhcyIpLGdldDppKF89Pl8uaW1hZ2VIZWlnaHQsImdldCIpLHNldDppKChfLE8pPT57Xy5pbWFnZUhlaWdodD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seikscngobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1uOGE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLnBuLEpgCiAgICAgIC5pbWFnZS13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoI2U4ZThlOCAwJSAyNSUsIHdoaXRlIDAlIDUwJSkgNTAlIC8gMTZweCAxNnB4IiwicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50KGhzbCgyMTUgMjAlIDE4JSkgMCUgMjUlLCBoc2woMjE1IDIwJSAxNCUpIDAlIDUwJSkgNTAlIC8gMTZweCAxNnB4Iil9OwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nLmxvYWRlZCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nLmxvYWRpbmcgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICBgXTsjZT11Mih0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEMpe3RoaXMuI2U9Q30jdD0odTIodGhpcyxsKSx1Mih0aGlzLGQsIiIpKTtnZXQgYWx0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFsdChDKXt0aGlzLiN0PUN9I2E9KHUyKHRoaXMsdSksdTIodGhpcyxiLCExKSk7Z2V0IGltYWdlTG9hZGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGltYWdlTG9hZGVkKEMpe3RoaXMuI2E9Q30jcz0odTIodGhpcyx2KSx1Mih0aGlzLG0sMCkpO2dldCBpbWFnZVdpZHRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGltYWdlV2lkdGgoQyl7dGhpcy4jcz1DfSNpPSh1Mih0aGlzLGYpLHUyKHRoaXMsTSwwKSk7Z2V0IGltYWdlSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGltYWdlSGVpZ2h0KEMpe3RoaXMuI2k9Q31oYXNTdGFydGVkTG9hZGluZz0odTIodGhpcyx6KSwhMSk7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nP3dgCiAgICAgICAgICA8aW1nCiAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuaW1hZ2VMb2FkZWQ/ImxvYWRlZCI6ImxvYWRpbmcifSIKICAgICAgICAgICAgc3JjPSIke3RoaXMuc3JjfSIKICAgICAgICAgICAgYWx0PSIke3RoaXMuYWx0fSIKICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgQGVycm9yPSR7dGhpcy5oYW5kbGVJbWFnZUVycm9yfQogICAgICAgICAgLz4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RXllIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlZpZXcgSW1hZ2U8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhKHRoaXMuaW1hZ2VXaWR0aD4wKT8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMuaW1hZ2VXaWR0aD4wJiZ0aGlzLmltYWdlSGVpZ2h0PjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5pbWFnZVdpZHRofSDDlyAke3RoaXMuaW1hZ2VIZWlnaHR9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLGFsdDp0aGlzLmFsdCx3aWR0aDp0aGlzLmltYWdlV2lkdGgsaGVpZ2h0OnRoaXMuaW1hZ2VIZWlnaHR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5sb2FkaW5nPSEwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVJbWFnZUxvYWQoQyl7bGV0IF89Qy50YXJnZXQ7dGhpcy5pbWFnZVdpZHRoPV8ubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VIZWlnaHQ9Xy5uYXR1cmFsSGVpZ2h0LHRoaXMuaW1hZ2VMb2FkZWQ9ITAsdGhpcy5sb2FkaW5nPSExfWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX1hc3luYyB1cGRhdGVkKEMpe3N1cGVyLnVwZGF0ZWQoQyksQy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMuaW1hZ2VMb2FkZWQ9ITEsdGhpcy5sb2FkaW5nPSEwKX1zdGF0aWN7dTIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIHU4YT1nKCgpPT57ZDhhKCl9KTt2YXIgcDhhLGg4YT1nKCgpPT57cGUoKTtwOGE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICB9CiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC50aWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QXVkaW8gVGlsZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDEiCiAgICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTEubXAzIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiQXVkaW8gY2xpY2tlZDoiLHMuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMi5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDIiCiAgICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTIubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMyIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTMubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iU21hbGwiCiAgICAgICAgICBsYWJlbD0ic21hbGwubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJEZWZhdWx0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIFFoLGpuLGY4YSxtOGE9ZygoKT0+e3BlKCk7WmgoKTtrdSgpO2g4YSgpO1FoPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZjhhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtYXVkaW8iKV0sZSx0PVtdLGEscj1IbixuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbEF1ZGlvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxRaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3JjImluIFMsImhhcyIpLGdldDppKFM9PlMuc3JjLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3JjPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxRaCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0aXRsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRpdGxlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGl0bGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLFFoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhcnRpc3QiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5hcnRpc3QsImdldCIpLHNldDppKChTLEkpPT57Uy5hcnRpc3Q9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLFFoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImR1cmF0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuZHVyYXRpb24sImdldCIpLHNldDppKChTLEkpPT57Uy5kdXJhdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksUWgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+IndhdmVmb3JtRGF0YSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLndhdmVmb3JtRGF0YSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLndhdmVmb3JtRGF0YT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksUWgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ3YXZlZm9ybVJlYWR5ImluIFMsImhhcyIpLGdldDppKFM9PlMud2F2ZWZvcm1SZWFkeSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLndhdmVmb3JtUmVhZHk9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLFFoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcmV2aWV3UGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNQcmV2aWV3UGxheWluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzUHJldmlld1BsYXlpbmcsImdldCIpLHNldDppKChTLEkpPT57Uy5pc1ByZXZpZXdQbGF5aW5nPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxRaChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXA4YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4ucG4sSmAKICAgICAgLmF1ZGlvLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDQwJSA5NiUpLCBoc2woMjgwIDMwJSA5NCUpKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyNTAgMzAlIDE2JSksIGhzbCgyODAgMjUlIDE0JSkpIil9OwogICAgICB9CgogICAgICAubXVzaWMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1MCA2MCUgNjUlKSIsImhzbCgyNTAgNjAlIDcwJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuYXVkaW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1MCAyMCUgMzUlKSIsImhzbCgyNTAgMjAlIDgwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYXVkaW8tYXJ0aXN0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgMTUlIDUwJSkiLCJoc2woMjUwIDE1JSA2NSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMycHgpOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKCiAgICAgIC5wbGF5LW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnBsYXktY2lyY2xlIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIGBdOyNlPWpuKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoayl7dGhpcy4jZT1rfSN0PShqbih0aGlzLGwpLGpuKHRoaXMsZCwiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShrKXt0aGlzLiN0PWt9I2E9KGpuKHRoaXMsdSksam4odGhpcyxiLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNhfXNldCBhcnRpc3Qoayl7dGhpcy4jYT1rfSNzPShqbih0aGlzLHYpLGpuKHRoaXMsbSwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGR1cmF0aW9uKGspe3RoaXMuI3M9a30jaT0oam4odGhpcyxmKSxqbih0aGlzLE0sW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHdhdmVmb3JtRGF0YShrKXt0aGlzLiNpPWt9I3I9KGpuKHRoaXMseiksam4odGhpcyxDLCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgd2F2ZWZvcm1SZWFkeShrKXt0aGlzLiNyPWt9I289KGpuKHRoaXMsXyksam4odGhpcywkLCExKSk7Z2V0IGlzUHJldmlld1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQcmV2aWV3UGxheWluZyhrKXt0aGlzLiNvPWt9YXVkaW9FbGVtZW50PShqbih0aGlzLEUpLG51bGwpO3ByZXZpZXdUaW1lb3V0PW51bGw7aGFzTG9hZGVkV2F2ZWZvcm09ITE7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYXVkaW8tY29udGVudCI+CiAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ibXVzaWMtaWNvbiIgaWNvbj0ibHVjaWRlOk11c2ljIj48L2RlZXMtaWNvbj4KCiAgICAgICAgJHt0aGlzLnRpdGxlP3dgPGRpdiBjbGFzcz0iYXVkaW8tdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj5gOiIifQogICAgICAgICR7dGhpcy5hcnRpc3Q/d2A8ZGl2IGNsYXNzPSJhdWRpby1hcnRpc3QiPiR7dGhpcy5hcnRpc3R9PC9kaXY+YDoiIn0KCiAgICAgICAgJHt0aGlzLndhdmVmb3JtUmVhZHk/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InBsYXktb3ZlcmxheSI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxheS1jaXJjbGUiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpIZWFkcGhvbmVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlBsYXkgQXVkaW88L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5kdXJhdGlvbj8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMuZHVyYXRpb24+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLHRpdGxlOnRoaXMudGl0bGUsYXJ0aXN0OnRoaXMuYXJ0aXN0LGR1cmF0aW9uOnRoaXMuZHVyYXRpb259fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc0xvYWRlZFdhdmVmb3JtJiZ0aGlzLnNyYyYmKHRoaXMuaGFzTG9hZGVkV2F2ZWZvcm09ITAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpfWFzeW5jIGxvYWRBdWRpb01ldGEoKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBrPW5ldyBBdWRpbztrLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGsucHJlbG9hZD0ibWV0YWRhdGEiLGF3YWl0IG5ldyBQcm9taXNlKChTLEkpPT57ay5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPWsuZHVyYXRpb24sUygpfSx7b25jZTohMH0pLGsuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT5JKG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvYWQgYXVkaW8iKSkse29uY2U6ITB9KSxrLnNyYz10aGlzLnNyY30pLGF3YWl0IHRoaXMubG9hZFdhdmVmb3JtKCksdGhpcy5sb2FkaW5nPSExfWNhdGNoe3RoaXMubG9hZGluZz0hMX19YXN5bmMgbG9hZFdhdmVmb3JtKCl7dHJ5e2xldCBTPWF3YWl0KGF3YWl0IGZldGNoKHRoaXMuc3JjKSkuYXJyYXlCdWZmZXIoKSxJPW5ldyBBdWRpb0NvbnRleHQsUj0oYXdhaXQgSS5kZWNvZGVBdWRpb0RhdGEoUykpLmdldENoYW5uZWxEYXRhKDApLEs9ODAsVj1NYXRoLmZsb29yKFIubGVuZ3RoL0spLFc9W107Zm9yKGxldCBCPTA7QjxLO0IrKyl7bGV0IFU9MDtmb3IobGV0IGhlPTA7aGU8VjtoZSsrKVUrPU1hdGguYWJzKFJbQipWK2hlXSk7Vy5wdXNoKFUvVil9bGV0IG1lPU1hdGgubWF4KC4uLlcpO3RoaXMud2F2ZWZvcm1EYXRhPVcubWFwKEI9Pm1lPjA/Qi9tZTowKSx0aGlzLndhdmVmb3JtUmVhZHk9ITAsYXdhaXQgSS5jbG9zZSgpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITF9fWRyYXdXYXZlZm9ybSgpe2lmKCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMiKTtpZighaylyZXR1cm47bGV0IFM9ay5wYXJlbnRFbGVtZW50LEk9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsUD1TLmNsaWVudFdpZHRoLFI9Uy5jbGllbnRIZWlnaHQ7ay53aWR0aD1QKkksay5oZWlnaHQ9UipJO2xldCBLPWsuZ2V0Q29udGV4dCgiMmQiKTtpZighSylyZXR1cm47Sy5zY2FsZShJLEkpLEsuY2xlYXJSZWN0KDAsMCxQLFIpO2xldCBWPXRoaXMud2F2ZWZvcm1EYXRhLmxlbmd0aDtpZihWPT09MClyZXR1cm47bGV0IFc9UC9WLEI9ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInRoZW1lLWRhcmsiKXx8d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzPyJoc2woMjUwIDUwJSA2MCUpIjoiaHNsKDI1MCA1MCUgNzAlKSI7Sy5maWxsU3R5bGU9Qjtmb3IobGV0IFU9MDtVPFY7VSsrKXtsZXQgaGU9dGhpcy53YXZlZm9ybURhdGFbVV0sRj1NYXRoLm1heCgyLGhlKihSLTQpKSxqPVUqVyx1ZT0oUi1GKS8yO0suZmlsbFJlY3QoaisuNSx1ZSxXLTEsRil9fWFzeW5jIHVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSxrLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzTG9hZGVkV2F2ZWZvcm09ITAsdGhpcy53YXZlZm9ybVJlYWR5PSExLHRoaXMuZHVyYXRpb249MCx0aGlzLmxvYWRBdWRpb01ldGEoKSksay5oYXMoIndhdmVmb3JtUmVhZHkiKSYmdGhpcy53YXZlZm9ybVJlYWR5JiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmRyYXdXYXZlZm9ybSgpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5wcmV2aWV3VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucHJldmlld1RpbWVvdXQpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQucGF1c2UoKSx0aGlzLmF1ZGlvRWxlbWVudC5zcmM9IiIsdGhpcy5hdWRpb0VsZW1lbnQ9bnVsbCl9Zm9ybWF0VGltZShrKXtpZighaXNGaW5pdGUoayl8fGs8MClyZXR1cm4iMDowMCI7bGV0IFM9TWF0aC5mbG9vcihrLzYwKSxJPU1hdGguZmxvb3IoayU2MCk7cmV0dXJuYCR7U306JHtJLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje2puKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBnOGE9ZygoKT0+e204YSgpfSk7dmFyIGI4YSx2OGE9ZygoKT0+e3BlKCk7YjhhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlZpZGVvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYnVubnkubXA0IgogICAgICAgICAgQHRpbGUtY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiVmlkZW8gY2xpY2tlZDoiLHMuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvMzAwIgogICAgICAgICAgbGFiZWw9Im1vdmllLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJhbm90aGVyLXZpZGVvLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0ic21hbGwubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5XaXRoIFBvc3RlciBJbWFnZTwvaDM+CiAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdmllLm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy82MDAvNDAwIgogICAgICAgIGxhYmVsPSJwb3N0ZXItdmlkZW8ubXA0IgogICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgb3gscDIseDhhLHk4YT1nKCgpPT57cGUoKTtaaCgpO2t1KCk7djhhKCk7b3g9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHAyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx4OGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRodW1ibmFpbC12aWRlbyIpXSxlLHQ9W10sYSxyPUhuLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsVmlkZW8iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxveCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3JjImluIF8sImhhcyIpLGdldDppKF89Pl8uc3JjLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3JjPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxveCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icG9zdGVyImluIF8sImhhcyIpLGdldDppKF89Pl8ucG9zdGVyLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucG9zdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxveCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJkdXJhdGlvbiJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZHVyYXRpb249T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLG94KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGh1bWJuYWlsQ2FwdHVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InRodW1ibmFpbENhcHR1cmVkImluIF8sImhhcyIpLGdldDppKF89Pl8udGh1bWJuYWlsQ2FwdHVyZWQsImdldCIpLHNldDppKChfLE8pPT57Xy50aHVtYm5haWxDYXB0dXJlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksb3godGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpc0hvdmVyaW5nImluIF8sImhhcyIpLGdldDppKF89Pl8uaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmlzSG92ZXJpbmc9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLG94KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89YjhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5wbixKYAogICAgICAudmlkZW8td3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIHZpZGVvIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIGNhbnZhcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAucG9zdGVyLWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnBsYXktb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldy5hY3RpdmUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIGBdOyNlPXAyKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoQyl7dGhpcy4jZT1DfSN0PShwMih0aGlzLGwpLHAyKHRoaXMsZCwiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKEMpe3RoaXMuI3Q9Q30jYT0ocDIodGhpcyx1KSxwMih0aGlzLGIsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkdXJhdGlvbihDKXt0aGlzLiNhPUN9I3M9KHAyKHRoaXMsdikscDIodGhpcyxtLCExKSk7Z2V0IHRodW1ibmFpbENhcHR1cmVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRodW1ibmFpbENhcHR1cmVkKEMpe3RoaXMuI3M9Q30jaT0ocDIodGhpcyxmKSxwMih0aGlzLE0sITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNpfXNldCBpc0hvdmVyaW5nKEMpe3RoaXMuI2k9Q310aHVtYm5haWxDYW52YXM9KHAyKHRoaXMseiksbnVsbCk7aG92ZXJWaWRlbz1udWxsO2hhc1N0YXJ0ZWRMb2FkaW5nPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5wb3N0ZXI/d2AKICAgICAgICAgIDxpbWcgY2xhc3M9InBvc3Rlci1pbWFnZSIgc3JjPSIke3RoaXMucG9zdGVyfSIgYWx0PSIiIC8+CiAgICAgICAgYDp0aGlzLnRodW1ibmFpbENhcHR1cmVkP3dgCiAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgIGA6d2AKICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6ICMwMDA7Ij48L2Rpdj4KICAgICAgICBgfQoKICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmdGhpcy5zcmM/d2AKICAgICAgICAgIDx2aWRlbwogICAgICAgICAgICBjbGFzcz0idmlkZW8taG92ZXItcHJldmlldyAke3RoaXMuaXNIb3ZlcmluZz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgICAgbXV0ZWQKICAgICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgICAgQGxvYWRlZGRhdGE9JHt0aGlzLmhhbmRsZUhvdmVyVmlkZW9Mb2FkZWR9CiAgICAgICAgICA+PC92aWRlbz4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOndgCiAgICAgICAgPGRpdiBjbGFzcz0icGxheS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICBgfQoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlBsYXkgVmlkZW88L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5kdXJhdGlvbj8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMuZHVyYXRpb24+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLHBvc3Rlcjp0aGlzLnBvc3RlcixkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNTdGFydGVkTG9hZGluZyYmdGhpcy5zcmMmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMuY2FwdHVyZUZpcnN0RnJhbWUoKSl9YXN5bmMgY2FwdHVyZUZpcnN0RnJhbWUoKXtpZih0aGlzLnBvc3Rlcil7dGhpcy5sb2FkRHVyYXRpb24oKTtyZXR1cm59dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgQz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO0MuY3Jvc3NPcmlnaW49ImFub255bW91cyIsQy5tdXRlZD0hMCxDLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoXyxPKT0+e0MuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPUMuZHVyYXRpb24sQy5jdXJyZW50VGltZT0uMSxDLmFkZEV2ZW50TGlzdGVuZXIoInNlZWtlZCIsKCk9PntsZXQgJD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTskLndpZHRoPUMudmlkZW9XaWR0aCwkLmhlaWdodD1DLnZpZGVvSGVpZ2h0O2xldCBFPSQuZ2V0Q29udGV4dCgiMmQiKTtFJiYoRS5kcmF3SW1hZ2UoQywwLDApLHRoaXMudGh1bWJuYWlsQ2FudmFzPSQsdGhpcy50aHVtYm5haWxDYXB0dXJlZD0hMCksQy5zcmM9IiIsQy5sb2FkKCksXygpfSx7b25jZTohMH0pfSx7b25jZTohMH0pLEMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT5PKG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvYWQgdmlkZW8iKSkse29uY2U6ITB9KSxDLnNyYz10aGlzLnNyY30pLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY29weVRodW1ibmFpbFRvQ2FudmFzKCl9Y2F0Y2h7dGhpcy5sb2FkaW5nPSExLHRoaXMubG9hZER1cmF0aW9uKCl9fWxvYWREdXJhdGlvbigpe2xldCBDPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7Qy5wcmVsb2FkPSJtZXRhZGF0YSIsQy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPUMuZHVyYXRpb24sQy5zcmM9IiIsQy5sb2FkKCl9KSxDLnNyYz10aGlzLnNyY31jb3B5VGh1bWJuYWlsVG9DYW52YXMoKXtpZighdGhpcy50aHVtYm5haWxDYW52YXMpcmV0dXJuO2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZGVvLXdyYXBwZXIgY2FudmFzIik7aWYoIUMpcmV0dXJuO0Mud2lkdGg9dGhpcy50aHVtYm5haWxDYW52YXMud2lkdGgsQy5oZWlnaHQ9dGhpcy50aHVtYm5haWxDYW52YXMuaGVpZ2h0O2xldCBfPUMuZ2V0Q29udGV4dCgiMmQiKTtfJiZfLmRyYXdJbWFnZSh0aGlzLnRodW1ibmFpbENhbnZhcywwLDApfW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITB9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmhvdmVyVmlkZW89bnVsbH1oYW5kbGVIb3ZlclZpZGVvTG9hZGVkKEMpe3RoaXMuaG92ZXJWaWRlbz1DLnRhcmdldCx0aGlzLmhvdmVyVmlkZW8ucGxheSgpLmNhdGNoKCgpPT57fSl9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpLEMuaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLnRodW1ibmFpbENhcHR1cmVkPSExLHRoaXMuZHVyYXRpb249MCx0aGlzLmNhcHR1cmVGaXJzdEZyYW1lKCkpLEMuaGFzKCJ0aHVtYm5haWxDYXB0dXJlZCIpJiZ0aGlzLnRodW1ibmFpbENhcHR1cmVkJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNvcHlUaHVtYm5haWxUb0NhbnZhcygpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5ob3ZlclZpZGVvJiYodGhpcy5ob3ZlclZpZGVvLnBhdXNlKCksdGhpcy5ob3ZlclZpZGVvLnNyYz0iIix0aGlzLmhvdmVyVmlkZW89bnVsbCksdGhpcy50aHVtYm5haWxDYW52YXM9bnVsbH1mb3JtYXRUaW1lKEMpe2lmKCFpc0Zpbml0ZShDKXx8QzwwKXJldHVybiIwOjAwIjtsZXQgXz1NYXRoLmZsb29yKEMvNjApLE89TWF0aC5mbG9vcihDJTYwKTtyZXR1cm5gJHtffToke08udG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7cDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIHc4YT1nKCgpPT57eThhKCl9KTt2YXIgazhhLFM4YT1nKCgpPT57cGUoKTtrOGE9aSgoKT0+e2xldCBzPWBpbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0JzsKCmV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7CiAgcHJpdmF0ZSBpdGVtczogc3RyaW5nW10gPSBbXTsKCiAgcmVuZGVyKCkgewogICAgcmV0dXJuIGh0bWxcYAogICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIFwke3RoaXMuaXRlbXMubWFwKGl0ZW0gPT4gaHRtbFxgCiAgICAgICAgICA8c3Bhbj5cJHtpdGVtfTwvc3Bhbj4KICAgICAgICBcYCl9CiAgICAgIDwvZGl2PgogICAgXGA7CiAgfQp9YCxlPWBNZWV0aW5nIE5vdGVzIC0gUTQgUGxhbm5pbmcKRGF0ZTogSmFudWFyeSAxNSwgMjAyNgpBdHRlbmRlZXM6IEFsaWNlLCBCb2IsIENoYXJsaWUKCktleSBEZWNpc2lvbnM6CjEuIExhdW5jaCBuZXcgZmVhdHVyZSBieSBNYXJjaAoyLiBIaXJlIDIgbW9yZSBlbmdpbmVlcnMKMy4gTWlncmF0ZSB0byBuZXcgQ0kvQ0QgcGlwZWxpbmUKNC4gVXBkYXRlIGRlc2lnbiBzeXN0ZW0gdG8gdjMKCkFjdGlvbiBJdGVtczoKLSBBbGljZTogRHJhZnQgUFJEIGJ5IG5leHQgd2VlawotIEJvYjogU2V0IHVwIGludGVydmlldyBwaXBlbGluZQotIENoYXJsaWU6IEV2YWx1YXRlIEplbmtpbnMgdnMgR2l0SHViIEFjdGlvbnNgO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIC50aWxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Tm90ZSBUaWxlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtzfQogICAgICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAgICAgbGFiZWw9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHthPT5jb25zb2xlLmxvZygiTm90ZSBjbGlja2VkOiIsYS5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0iTWVldGluZyBOb3RlcyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgICBsYWJlbD0ibWVldGluZy1ub3Rlcy50eHQiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJwYWNrYWdlLmpzb24iCiAgICAgICAgICAgIC5jb250ZW50PSR7YHsKICAibmFtZSI6ICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLAogICJ2ZXJzaW9uIjogIjMuMzguMCIsCiAgImRlc2NyaXB0aW9uIjogIkRlc2lnbiBjb21wb25lbnQgY2F0YWxvZyIsCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiOiAiXjIuMC4wIiwKICAgICJsaXQiOiAiXjMuMS4wIgogIH0sCiAgInNjcmlwdHMiOiB7CiAgICAiYnVpbGQiOiAidHNidWlsZCIsCiAgICAidGVzdCI6ICJ0c3Rlc3QiCiAgfQp9YH0KICAgICAgICAgICAgbGFuZ3VhZ2U9Impzb24iCiAgICAgICAgICAgIGxhYmVsPSJwYWNrYWdlLmpzb24iCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICB0aXRsZT0ic21hbGwudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7c30KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0ic21hbGwudHMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJkZWZhdWx0LnRzIgogICAgICAgICAgICAuY29udGVudD0ke3N9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImRlZmF1bHQudHMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICB0aXRsZT0ibGFyZ2UudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7c30KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0ibGFyZ2UudHMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPldpdGhvdXQgVGl0bGU8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICBsYWJlbD0idW50aXRsZWQudHh0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0sImRlbW8iKX0pO3ZhciBhUSxTdSxfOGEsTThhPWcoKCk9PntwZSgpO1poKCk7a3UoKTtTOGEoKTthUT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU3U9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LF84YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLW5vdGUiKV0sZSx0PVtdLGEscj1IbixuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbE5vdGUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtZKCldLGFRKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRpdGxlImluIHosImhhcyIpLGdldDppKHo9PnoudGl0bGUsImdldCIpLHNldDppKCh6LE4pPT57ei50aXRsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksYVEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjb250ZW50ImluIHosImhhcyIpLGdldDppKHo9PnouY29udGVudCwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmNvbnRlbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLGFRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Imxhbmd1YWdlImluIHosImhhcyIpLGdldDppKHo9PnoubGFuZ3VhZ2UsImdldCIpLHNldDppKCh6LE4pPT57ei5sYW5ndWFnZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksYVEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc0hvdmVyaW5nImluIHosImhhcyIpLGdldDppKHo9PnouaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmlzSG92ZXJpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLGFRKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89azhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5wbixKYAogICAgICAubm90ZS1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCg2MCA1JSA5NiUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ub3RlLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm5vdGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMCUgMjAlKSIsImhzbCgyMTUgMjAlIDIwJSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5ub3RlLWJvZHkgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogMCAxNHB4IDE0cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ub3RlLXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxMCUgNDAlKSIsImhzbCgyMTUgMTAlIDM1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm5vdGUtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICB0cmFuc3BhcmVudCwKICAgICAgICAgICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDYwIDUlIDk2JSkiKX0KICAgICAgICApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubm90ZS1saW5lcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMzRweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDg1JSkiLCJoc2woMCA1MCUgODAlKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgIH0KCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7IC8qIG1hdGNoZXMgMTBweCAqIDEuNSBsaW5lLWhlaWdodCAqLwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxMCUgNzUlKSIsImhzbCgyMTUgMTAlIDcwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4OwogICAgICB9CgogICAgYF07I2U9U3UodGhpcyxvLCIiKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGl0bGUoTSl7dGhpcy4jZT1NfSN0PShTdSh0aGlzLGwpLFN1KHRoaXMsZCwiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQoTSl7dGhpcy4jdD1NfSNhPShTdSh0aGlzLHUpLFN1KHRoaXMsYiwiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNhfXNldCBsYW5ndWFnZShNKXt0aGlzLiNhPU19I3M9KFN1KHRoaXMsdiksU3UodGhpcyxtLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNIb3ZlcmluZyhNKXt0aGlzLiNzPU19bm90ZUJvZHlFbGVtZW50PShTdSh0aGlzLGYpLG51bGwpO3JlbmRlclRpbGVDb250ZW50KCl7bGV0IE09dGhpcy5jb250ZW50LnNwbGl0KGAKYCk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUtY29udGVudCI+CiAgICAgICAgJHt0aGlzLnRpdGxlP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtYm9keSI+CiAgICAgICAgICA8cHJlIGNsYXNzPSJub3RlLXRleHQiPiR7TS5qb2luKGAKYCl9PC9wcmU+CiAgICAgICAgICAke3RoaXMuaXNIb3ZlcmluZz8iIjp3YDxkaXYgY2xhc3M9Im5vdGUtZmFkZSI+PC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGaWxlVGV4dCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5PcGVuIE5vdGU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe2xldCBNPXRoaXMuY29udGVudC5zcGxpdChgCmApO3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5sYW5ndWFnZSYmIU0ubGVuZ3RoPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5sYW5ndWFnZT93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmxhbmd1YWdlLnRvVXBwZXJDYXNlKCl9PC9zcGFuPmA6IiJ9CiAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmcmJk0ubGVuZ3RoPjEyP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj5MaW5lICR7dGhpcy5nZXRWaXNpYmxlTGluZVJhbmdlKE0ubGVuZ3RoKX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHtNLmxlbmd0aH0gbGluZXM8L3NwYW4+YH0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybnt0aXRsZTp0aGlzLnRpdGxlLGNvbnRlbnQ6dGhpcy5jb250ZW50LGxhbmd1YWdlOnRoaXMubGFuZ3VhZ2V9fW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITAsdGhpcy5ub3RlQm9keUVsZW1lbnR8fCh0aGlzLm5vdGVCb2R5RWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ub3RlLWJvZHkiKSl9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLm5vdGVCb2R5RWxlbWVudCYmKHRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcD0wKX1vblRpbGVNb3VzZU1vdmUoTSl7aWYoIXRoaXMuaXNIb3ZlcmluZ3x8IXRoaXMubm90ZUJvZHlFbGVtZW50fHx0aGlzLmNvbnRlbnQuc3BsaXQoYApgKS5sZW5ndGg8PTEyKXJldHVybjtsZXQgTj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEM9TS5jbGllbnRYLU4ubGVmdCxfPU1hdGgubWF4KDAsTWF0aC5taW4oMSxDL04ud2lkdGgpKSxPPXRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbEhlaWdodC10aGlzLm5vdGVCb2R5RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wPV8qT31nZXRWaXNpYmxlTGluZVJhbmdlKE0pe2lmKCF0aGlzLm5vdGVCb2R5RWxlbWVudClyZXR1cm5gMVx1MjAxMzEyIG9mICR7TX1gO2xldCB6PTE1LE49TWF0aC5mbG9vcih0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3AveikrMSxDPU1hdGguZmxvb3IodGhpcy5ub3RlQm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0L3opLF89TWF0aC5taW4oTitDLTEsTSk7cmV0dXJuYCR7Tn1cdTIwMTMke199IG9mICR7TX1gfXN0YXRpY3tTdShhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgejhhPWcoKCk9PntNOGEoKX0pO3ZhciBDOGEsVDhhPWcoKCk9PntwZSgpO0M4YT1pKCgpPT57bGV0IHM9W3t0eXBlOiJpbWFnZSIsbmFtZToic3Vuc2V0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MSJ9LHt0eXBlOiJpbWFnZSIsbmFtZToibW91bnRhaW4uanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0yIn0se3R5cGU6ImltYWdlIixuYW1lOiJvY2Vhbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTMifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImZvcmVzdC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTQifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImNpdHkuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT01In0se3R5cGU6ImltYWdlIixuYW1lOiJkZXNlcnQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT02In1dO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIC50aWxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Rm9sZGVyIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IlBob3RvcyIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgICAgbGFiZWw9IjYgcGhvdG9zIgogICAgICAgICAgICBAdGlsZS1jbGljaz0ke249PmNvbnNvbGUubG9nKCJGb2xkZXIgY2xpY2tlZDoiLG4uZGV0YWlsKX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9Im15LXByb2plY3QiCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToibm90ZSIsbmFtZToiUkVBRE1FLm1kIn0se3R5cGU6Im5vdGUiLG5hbWU6InBhY2thZ2UuanNvbiJ9LHt0eXBlOiJmb2xkZXIiLG5hbWU6InNyYyJ9LHt0eXBlOiJmb2xkZXIiLG5hbWU6InRlc3QifSx7dHlwZToibm90ZSIsbmFtZToidHNjb25maWcuanNvbiJ9LHt0eXBlOiJwZGYiLG5hbWU6ImRvY3MucGRmIn0se3R5cGU6ImltYWdlIixuYW1lOiJsb2dvLnBuZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMTAwLzEwMD9yYW5kb209MTAifV19CiAgICAgICAgICAgIGxhYmVsPSJQcm9qZWN0IGZpbGVzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iTWVkaWEgQXNzZXRzIgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6InZpZGVvIixuYW1lOiJpbnRyby5tcDQifSx7dHlwZToiYXVkaW8iLG5hbWU6ImJhY2tncm91bmQubXAzIn0se3R5cGU6ImltYWdlIixuYW1lOiJ0aHVtYm5haWwuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0yMCJ9LHt0eXBlOiJwZGYiLG5hbWU6InN0b3J5Ym9hcmQucGRmIn1dfQogICAgICAgICAgICBsYWJlbD0iTWl4ZWQgbWVkaWEiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+RWRnZSBDYXNlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJFbXB0eSBGb2xkZXIiCiAgICAgICAgICAgIC5pdGVtcz0ke1tdfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iU2luZ2xlIEl0ZW0iCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToicGRmIixuYW1lOiJyZXBvcnQucGRmIn1dfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIG5hbWU9IlNtYWxsIgogICAgICAgICAgICAuaXRlbXM9JHtzfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iRGVmYXVsdCIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICBuYW1lPSJMYXJnZSIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtbyIpfSk7dmFyIG5ydCxzUSwkOGEsRDhhLEw4YT1nKCgpPT57cGUoKTtaaCgpO2t1KCk7VDhhKCk7bnJ0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxzUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sJDhhPXtwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsaW1hZ2U6Imx1Y2lkZTpJbWFnZSIsYXVkaW86Imx1Y2lkZTpNdXNpYyIsdmlkZW86Imx1Y2lkZTpWaWRlbyIsbm90ZToibHVjaWRlOkZpbGVDb2RlIixmb2xkZXI6Imx1Y2lkZTpGb2xkZXIiLHVua25vd246Imx1Y2lkZTpGaWxlIn0sRDhhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtZm9sZGVyIildLGUsdD1bXSxhLHI9SG4sbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxGb2xkZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sbnJ0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ibmFtZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52Lm5hbWUsImdldCIpLHNldDppKCh2LHgpPT57di5uYW1lPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxucnQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaXRlbXMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5pdGVtcywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2Lml0ZW1zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxucnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1DOGE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLnBuLEpgCiAgICAgIC5mb2xkZXItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0MCAzMCUgOTclKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZvbGRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZm9sZGVyLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0MCA4MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmZvbGRlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDE2JSA4MCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDk0JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1NSUpIil9OwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsLWVtcHR5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNSUgOTYlKSIsImhzbCgyMTUgMjAlIDE2JSkiKX07CiAgICAgIH0KCiAgICBgXTsjZT1zUSh0aGlzLG8sIiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoYil7dGhpcy4jZT1ifSN0PShzUSh0aGlzLGwpLHNRKHRoaXMsZCxbXSkpO2dldCBpdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBpdGVtcyhiKXt0aGlzLiN0PWJ9cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgYj10aGlzLml0ZW1zLnNsaWNlKDAsNCksdj00LWIubGVuZ3RoO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWhlYWRlciI+CiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJmb2xkZXItaWNvbiIgaWNvbj0ibHVjaWRlOkZvbGRlciI+PC9kZWVzLWljb24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItbmFtZSI+JHt0aGlzLm5hbWV8fCJVbnRpdGxlZCBGb2xkZXIifTwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWdyaWQiPgogICAgICAgICAgJHtiLm1hcCh4PT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwiPgogICAgICAgICAgICAgICR7eC50aHVtYm5haWxTcmM/d2AKICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIke3gudGh1bWJuYWlsU3JjfSIgYWx0PSIke3gubmFtZX0iIC8+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIkeyQ4YVt4LnR5cGVdfHwkOGEudW5rbm93bn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDp2fSkubWFwKCgpPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwgZ3JpZC1jZWxsLWVtcHR5Ij48L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Rm9sZGVyT3BlbiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5PcGVuIEZvbGRlcjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLml0ZW1zLmxlbmd0aD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5pdGVtcy5sZW5ndGh9IGl0ZW0ke3RoaXMuaXRlbXMubGVuZ3RoIT09MT8icyI6IiJ9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue25hbWU6dGhpcy5uYW1lLGl0ZW1Db3VudDp0aGlzLml0ZW1zLmxlbmd0aCxpdGVtczp0aGlzLml0ZW1zfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksc1EodGhpcyx1KX1zdGF0aWN7c1EoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEU4YT1nKCgpPT57TDhhKCl9KTt2YXIgUDhhPWcoKCk9PntMNWEoKTtBNWEoKTtGNWEoKTtaNWEoKTtYNWEoKTtRNWEoKTtKNWEoKTtvOGEoKTt1OGEoKTtnOGEoKTt3OGEoKTt6OGEoKTtFOGEoKX0pO3ZhciBJOGE9ZygoKT0+e29yKCl9KTt2YXIgQThhPWcoKCk9PntKMCgpfSk7dmFyIE44YSxSOGE9ZygoKT0+e3BlKCk7TjhhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5yZWYxIHsKICAgICAgICBtYXJnaW46IDIwcHg7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9InJlZjEiPjwvZGl2PgogICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7YAogICAgICAqKlRoaXMgaXMgYSBsb25nZXIgbWFya2Rvd24gdGV4dCB0aGF0ICBjYW4gYmUgdXNlZCB0aGUgd3JpdGUqKiAgCiAgICAgIGEgbG9uZ2VyIGRlc2NyaXB0aW9uIGFib3V0IHdoYXRzIGdvaW5nIG9uIHRoZSBhcHAgIAogIAogICAgICAqKlRoaXMgaXMgYSBzdWJoZWFkZXIqKgogICAgICBhbmQgYW5vdGhlciB0ZXh0CiAgICAKICAgIGB9PjwvZGVlcy1zcGVlY2hidWJibGU+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBueCxoMixPOGEsRjhhPWcoKCk9PntHMSgpO3BvKCk7UjhhKCk7cGUoKTtGMSgpO3B0KCk7bng9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGgyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxPOGE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXNwZWVjaGJ1YmJsZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3BlZWNoYnViYmxlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6U3RyaW5nfSldLG54KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmZmVkRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icmVmZmVkRWxlbWVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnJlZmZlZEVsZW1lbnQsImdldCIpLHNldDppKChfLE8pPT57Xy5yZWZmZWRFbGVtZW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxueCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InRleHQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy50ZXh0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udGV4dD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksbngodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ3YXZlImluIF8sImhhcyIpLGdldDppKF89Pl8ud2F2ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLndhdmU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLG54KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFuaWZlc3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ibWFuaWZlc3RlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLm1hbmlmZXN0ZWQsImdldCIpLHNldDppKChfLE8pPT57Xy5tYW5pZmVzdGVkPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxueCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3RhdHVzImluIF8sImhhcyIpLGdldDppKF89Pl8uc3RhdHVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3RhdHVzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxueChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPU44YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhDLF8pe2xldCBPPWF3YWl0IGhvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITF9KSwkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtc3BlZWNoYnViYmxlIik7cmV0dXJuICQud2luZG93TGF5ZXI9TywkLnJlZmZlZEVsZW1lbnQ9QywkLnRleHQ9XywkLm1hbmlmZXN0ZWQ9ITAsTy5hcHBlbmRDaGlsZCgkKSxPLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLE8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIud2luZG93T3ZlcmxheSIpLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLCR9I2U9aDIodGhpcyxvLHZvaWQgMCk7Z2V0IHJlZmZlZEVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVmZmVkRWxlbWVudChDKXt0aGlzLiNlPUN9I3Q9KGgyKHRoaXMsbCksaDIodGhpcyxkLHZvaWQgMCkpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQoQyl7dGhpcy4jdD1DfSNhPShoMih0aGlzLHUpLGgyKHRoaXMsYiwhMSkpO2dldCB3YXZlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHdhdmUoQyl7dGhpcy4jYT1DfSNzPShoMih0aGlzLHYpLGgyKHRoaXMsbSwhMSkpO2dldCBtYW5pZmVzdGVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1hbmlmZXN0ZWQoQyl7dGhpcy4jcz1DfSNpPShoMih0aGlzLGYpLGgyKHRoaXMsTSwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RhdHVzKEMpe3RoaXMuI2k9Q313aW5kb3dMYXllcj1oMih0aGlzLHopO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7CiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMikpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgIH0KCiAgICAgIC5hcnJvdyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgaGVpZ2h0OiAxNXB4OwogICAgICAgIHdpZHRoOiAxNXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuc3BlZWNoYnViYmxlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDI0MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC53YXZlIHsKICAgICAgICBhbmltYXRpb24tbmFtZTogd2F2ZS1hbmltYXRpb247IC8qIFJlZmVycyB0byB0aGUgbmFtZSBvZiB5b3VyIEBrZXlmcmFtZXMgZWxlbWVudCBiZWxvdyAqLwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMi41czsgLyogQ2hhbmdlIHRvIHNwZWVkIHVwIG9yIHNsb3cgZG93biAqLwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyAvKiBOZXZlciBzdG9wIHdhdmluZyA6KSAqLwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDcwJSA3MCU7IC8qIFBpdm90IGFyb3VuZCB0aGUgYm90dG9tLWxlZnQgcGFsbSAqLwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB3YXZlLWFuaW1hdGlvbiB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICAgIDEwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfSAvKiBUaGUgZm9sbG93aW5nIGZpdmUgdmFsdWVzIGNhbiBiZSBwbGF5ZWQgd2l0aCB0byBtYWtlIHRoZSB3YXZpbmcgbW9yZSBvciBsZXNzIGV4dHJlbWUgKi8KICAgICAgICAyMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLThkZWcpOwogICAgICAgIH0KICAgICAgICAzMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOwogICAgICAgIH0KICAgICAgICA0MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTRkZWcpOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpOwogICAgICAgIH0KICAgICAgICA2MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfSAvKiBSZXNldCBmb3IgdGhlIGxhc3QgaGFsZiB0byBwYXVzZSAqLwogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLm1hbmlmZXN0ZWQ/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJyb3ciPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwZWVjaGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAke3RoaXMud2F2ZT93YDxzcGFuIGNsYXNzPSJ3YXZlIj7wn5GLPC9zcGFuPmA6d2BgfQogICAgICAgICAgICAgICAgJHtWaS5yZXNvbHZlKHRoaXMuZ2V0SHRtbCgpKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9YXN5bmMgaGFuZGxlQ2xpY2soKXtjb25zb2xlLmxvZygic3BlZWNoYnViYmxlIGdvdCBjbGlja2VkLiIpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMucmVmZmVkRWxlbWVudHx8KHRoaXMucmVmZmVkRWxlbWVudD10aGlzLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpLHRoaXMubWFuaWZlc3RlZClhd2FpdCB0aGlzLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikuc3R5bGUub3BhY2l0eT0iMSI7ZWxzZXtsZXQgQzt0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsYXN5bmMoKT0+e0M9YXdhaXQgTi5jcmVhdGVBbmRTaG93KHRoaXMucmVmZmVkRWxlbWVudCx0aGlzLnRleHQpfSksdGhpcy5yZWZmZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57Qy5kZXN0cm95KCl9KX19YXN5bmMgdXBkYXRlUG9zaXRpb24oKXtsZXQgQz10aGlzLnJlZmZlZEVsZW1lbnQsXz1DLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN0eWxlLnRvcD1gJHtfLnRvcC0xM31weGAsdGhpcy5zdHlsZS5sZWZ0PWAke18ubGVmdCtDLmNsaWVudFdpZHRoKzR9cHhgLF8ucmlnaHQ+MjUwJiYodGhpcy5zdHlsZS53aWR0aD0iMjUwcHgiKX1hc3luYyBnZXRIdG1sKCl7aWYoIXRoaXMudGV4dClyZXR1cm4iIjtsZXQgQz1sdC5wbHVnaW5zLnNtYXJ0c3RyaW5nLm5vcm1hbGl6ZS5zdGFuZGFyZCh0aGlzLnRleHQpLF89YXdhaXQgbHQucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24uZWFzeU1hcmtkb3duVG9IdG1sKEMpO3JldHVybiBWMyhfKX1hc3luYyBzaG93KCl7fWFzeW5jIGRlc3Ryb3koKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7aDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIEI4YT1nKCgpPT57RjhhKCl9KTt2YXIgSDhhPWcoKCk9PntGMSgpfSk7dmFyIHE4YT1nKCgpPT57SThhKCk7QThhKCk7QjhhKCk7SDhhKCl9KTt2YXIgajhhPWcoKCk9Pnt9KTt2YXIgVjhhPWcoKCk9PntqOGEoKX0pO3ZhciBVOGEsbzFlLG4xZSxscnQsVzhhLGwxZSxjMWUsZDFlLHUxZT1nKCgpPT57VThhPSJodHRwczovL3N0YWNrYmxpdHouY29tIixvMWU9ImNvZGUiLG4xZT0iZXJyb3IiLGxydD0iZXJyb3JfZGVzY3JpcHRpb24iLFc4YT0iX193Y19hcGlfYmNfXyIsbDFlPSJfX3djX2FwaV90b2tlbnNfXyIsYzFlPSJfX3djX2FwaV92ZXJpZmllcl9fIixkMWU9Il9fd2NfYXBpX3BvcHVwX18ifSk7dmFyIFNnLGNydD1nKCgpPT57U2c9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRFdmVudFRhcmdldCIpfV9idXM9bmV3IEV2ZW50VGFyZ2V0O2xpc3RlbihlKXtmdW5jdGlvbiB0KGEpe2UoYS5kYXRhKX1yZXR1cm4gaSh0LCJ3cmFwcGVkTGlzdGVuZXIiKSx0aGlzLl9idXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdCksKCk9PnRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0KX1maXJlRXZlbnQoZSl7dGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgibWVzc2FnZSIse2RhdGE6ZX0pKX19fSk7ZnVuY3Rpb24gcDFlKCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0obDFlKX1mdW5jdGlvbiBYOGEocyl7cmV0dXJuIEs4YS5saXN0ZW4ocyl9ZnVuY3Rpb24gUVhhKCl7bGV0IHM9bG9jYWxTdG9yYWdlLmdldEl0ZW0obDFlKTtpZighcylyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2Uocyl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIEpYYShzKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShsMWUsSlNPTi5zdHJpbmdpZnkocykpfWZ1bmN0aW9uIFk4YSh7Y3JlYXRlZF9hdDpzLGV4cGlyZXNfaW46ZX0pe3JldHVybihzK2UpKjFlM31mdW5jdGlvbiBaOGEocyl7aWYodHlwZW9mIHMhPSJvYmplY3QifHwhcyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVG9rZW4gUmVzcG9uc2UiKTtpZih0eXBlb2Ygcy5hY2Nlc3NfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2Ygcy5yZWZyZXNoX3Rva2VuIT0ic3RyaW5nInx8dHlwZW9mIHMuY3JlYXRlZF9hdCE9Im51bWJlciJ8fHR5cGVvZiBzLmV4cGlyZXNfaW4hPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpfWZ1bmN0aW9uIGVRYShzKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+c2V0VGltZW91dChlLHMpKX1mdW5jdGlvbiB0UWEocyl7SzhhLmZpcmVFdmVudChzKX12YXIgRzhhLEs4YSxseCxkcnQ9ZygoKT0+e3UxZSgpO2NydCgpO0c4YT1uZXcgRXJyb3I7RzhhLnN0YWNrPSIiO0s4YT1uZXcgU2csbHg9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJUb2tlbnMiKX1vcmlnaW47cmVmcmVzaDthY2Nlc3M7ZXhwaXJlcztfcmV2b2tlZD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0cnVjdG9yKGUsdCxhLHIpe3RoaXMub3JpZ2luPWUsdGhpcy5yZWZyZXNoPXQsdGhpcy5hY2Nlc3M9YSx0aGlzLmV4cGlyZXM9cn1hc3luYyBhY3RpdmF0ZShlKXtpZih0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiVG9rZW4gcmV2b2tlZCIpO3JldHVybiB0aGlzLmV4cGlyZXM8RGF0ZS5ub3coKSYmIWF3YWl0IHRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKT8hMToodGhpcy5fc3luYygpLHRoaXMuX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSksITApfWFzeW5jIHJldm9rZShlLHQpe3RoaXMuX3Jldm9rZWQuYWJvcnQoKTt0cnl7aWYoIShhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvcmV2b2tlYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHt0b2tlbjp0aGlzLnJlZnJlc2gsdG9rZW5fdHlwZV9oaW50OiJyZWZyZXNoX3Rva2VuIixjbGllbnRfaWQ6ZX0pLG1vZGU6ImNvcnMifSkpLm9rKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvZ291dCIpfWNhdGNoKGEpe2lmKCF0KXRocm93IGF9cDFlKCl9c3RhdGljIGZyb21TdG9yYWdlKCl7bGV0IGU9UVhhKCk7cmV0dXJuIGU/bmV3IHMoZS5vcmlnaW4sZS5yZWZyZXNoLGUuYWNjZXNzLGUuZXhwaXJlcyk6bnVsbH1zdGF0aWMgYXN5bmMgZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46ZSxjbGllbnRJZDp0LGNvZGVWZXJpZmllcjphLGF1dGhDb2RlOnIscmVkaXJlY3RVcmk6bn0pe2xldCBvPWF3YWl0IGZldGNoKGAke2V9L29hdXRoL3Rva2VuYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHtjbGllbnRfaWQ6dCxjb2RlOnIsY29kZV92ZXJpZmllcjphLGdyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIscmVkaXJlY3RfdXJpOm59KSxtb2RlOiJjb3JzIn0pO2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHRva2VuOiAke28uc3RhdHVzfWApO2xldCBsPWF3YWl0IG8uanNvbigpO1o4YShsKTtsZXR7YWNjZXNzX3Rva2VuOnAscmVmcmVzaF90b2tlbjpkfT1sLHU9WThhKGwpO3JldHVybiBuZXcgcyhlLGQscCx1KX1hc3luYyBfZmV0Y2hOZXdBY2Nlc3NUb2tlbigpe3RyeXtsZXQgZT1hd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6InJlZnJlc2hfdG9rZW4iLHJlZnJlc2hfdG9rZW46dGhpcy5yZWZyZXNofSksbW9kZToiY29ycyIsc2lnbmFsOnRoaXMuX3Jldm9rZWQuc2lnbmFsfSk7aWYoIWUub2spdGhyb3cgRzhhO2xldCB0PWF3YWl0IGUuanNvbigpO1o4YSh0KTtsZXR7YWNjZXNzX3Rva2VuOmEscmVmcmVzaF90b2tlbjpyfT10LG49WThhKHQpO3JldHVybiB0aGlzLmFjY2Vzcz1hLHRoaXMuZXhwaXJlcz1uLHRoaXMucmVmcmVzaD1yLCEwfWNhdGNoe3JldHVybiBwMWUoKSwhMX19X3N5bmMoKXtKWGEodGhpcyksdFFhKHRoaXMuYWNjZXNzKX1hc3luYyBfc3RhcnRSZWZyZXNoVG9rZW5zTG9vcChlKXtmb3IoOzspe2xldCB0PXRoaXMuZXhwaXJlcy1EYXRlLm5vdygpLTFlMztpZihhd2FpdCBlUWEoTWF0aC5tYXgodCwxZTMpKSx0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXJldHVybjtpZighdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpKXtlKCk7cmV0dXJufXRoaXMuX3N5bmMoKX19fTtpKHAxZSwiY2xlYXJUb2tlbnNJblN0b3JhZ2UiKTtpKFg4YSwiYWRkQWNjZXNzVG9rZW5DaGFuZ2VkTGlzdGVuZXIiKTtpKFFYYSwicmVhZFRva2Vuc0Zyb21TdG9yYWdlIik7aShKWGEsInBlcnNpc3RUb2tlbnNJblN0b3JhZ2UiKTtpKFk4YSwiZ2V0RXhwaXJlc0Zyb21Ub2tlblJlc3BvbnNlIik7aShaOGEsImFzc2VydFRva2VuUmVzcG9uc2UiKTtpKGVRYSwid2FpdCIpO2kodFFhLCJmaXJlQWNjZXNzVG9rZW5DaGFuZ2VkIil9KTt2YXIgdXJ0LGgxZSxfdSxwcnQ9ZygoKT0+e3UxZSgpO3VydD17fSxoMWU9bnVsbCxfdT17Z2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBoMWU9PW51bGwmJihoMWU9bmV3IFVSTChnbG9iYWxUaGlzLldFQkNPTlRBSU5FUl9BUElfSUZSQU1FX1VSTD8/VThhKS5vcmlnaW4pLGgxZX0sc2V0IGVkaXRvck9yaWdpbihzKXtoMWU9bmV3IFVSTChzKS5vcmlnaW59LHNldFF1ZXJ5UGFyYW0ocyxlKXt1cnRbc109ZX0sZ2V0IHVybCgpe2xldCBzPW5ldyBVUkwodGhpcy5lZGl0b3JPcmlnaW4pO3MucGF0aG5hbWU9Ii9oZWFkbGVzcyI7Zm9yKGxldCBlIGluIHVydClzLnNlYXJjaFBhcmFtcy5zZXQoZSx1cnRbZV0pO3JldHVybiBzLnNlYXJjaFBhcmFtcy5zZXQoInZlcnNpb24iLCIxLjYuMSIpLHN9fX0pO2FzeW5jIGZ1bmN0aW9uIFE4YShzKXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocyksdD1uZXcgVWludDhBcnJheShhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSkpO3JldHVybiBidG9hKHQucmVkdWNlKChhLHIpPT5hK1N0cmluZy5mcm9tQ29kZVBvaW50KHIpLCIiKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBKOGEoKXtsZXQgcz1uZXcgVWludDhBcnJheSg5Nik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhzKTtsZXQgZT0iIjtmb3IobGV0IHQ9MDt0PDMyOysrdCllKz1hUWEoc1szKnQrMF0sc1szKnQrMV0sc1szKnQrMl0pO3JldHVybiBlfWZ1bmN0aW9uIGFRYShzLGUsdCl7bGV0IGE9cz4+MixyPShzJjMpPDw0fGU+PjQsbj1lJjE1fCh0JjE5Mik+PjIsbz10JjYzO3JldHVyblthLHIsbixvXS5tYXAoc1FhKS5qb2luKCIiKX1mdW5jdGlvbiBzUWEocyl7bGV0IGU7cmV0dXJuIHM8MjY/ZT1zKzY1OnM8NTI/ZT1zLTI2Kzk3OnM8NjI/ZT1zLTUyKzQ4OmU9cz09PTYyPzMwOjQ1LFN0cmluZy5mcm9tQ2hhckNvZGUoZSl9dmFyIGVnYT1nKCgpPT57aShROGEsIlMyNTYiKTtpKEo4YSwibmV3Q29kZVZlcmlmaWVyIik7aShhUWEsIm5leHRGb3VyQ2hhcnMiKTtpKHNRYSwidW5yZXNlcnZlZENoYXJhY3RlcnMiKX0pO2Z1bmN0aW9uIHRnYSgpe2xldCBzLGU7ZnVuY3Rpb24gdCgpe2U9bmV3IFByb21pc2UoYT0+cz1hKX1yZXR1cm4gaSh0LCJyZXNldCIpLHQoKSx7Z2V0IHByb21pc2UoKXtyZXR1cm4gZX0scmVzb2x2ZShhKXtyZXR1cm4gcyhhKX0scmVzZXQ6dH19dmFyIGFnYT1nKCgpPT57aSh0Z2EsInJlc2V0dGFibGVQcm9taXNlIil9KTtmdW5jdGlvbiBpUShzKXtiYS5icm9hZGNhc3RDaGFubmVsJiYoYmEuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShzKSxsb2NhbFN0b3JhZ2UuZ2V0SXRlbShkMWUpPT09InRydWUiJiZzLnR5cGUhPT0iYXV0aC1sb2dvdXQiJiYobG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZDFlKSxzZXRUaW1lb3V0KCgpPT57d2luZG93LmNsb3NlKCl9KSkpfWZ1bmN0aW9uIGhydCgpe19nLmZpcmVFdmVudCgpLGlRKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX1mdW5jdGlvbiBpZ2EoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWZ9YXN5bmMgZnVuY3Rpb24gcmdhKCl7bGV0IHM9SjhhKCk7bG9jYWxTdG9yYWdlLnNldEl0ZW0oYzFlLHMpO2xldCBlPWF3YWl0IFE4YShzKSx0PW5ldyBVUkwoIi9vYXV0aC9hdXRob3JpemUiLGJhLmVkaXRvck9yaWdpbikse3NlYXJjaFBhcmFtczphfT10O3JldHVybiBhLmFwcGVuZCgicmVzcG9uc2VfdHlwZSIsImNvZGUiKSxhLmFwcGVuZCgiY2xpZW50X2lkIixiYS5jbGllbnRJZCksYS5hcHBlbmQoInJlZGlyZWN0X3VyaSIsaWdhKCkpLGEuYXBwZW5kKCJzY29wZSIsYmEub2F1dGhTY29wZSksYS5hcHBlbmQoImNvZGVfY2hhbGxlbmdlIixlKSxhLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwiUzI1NiIpLHQudG9TdHJpbmcoKX1mdW5jdGlvbiBmcnQocyl7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJPb3BzISBUb2tlbnMgaXMgbm90IGRlZmluZWQgd2hlbiBpdCBhbHdheXMgc2hvdWxkIGJlLiIpfXZhciBiYSxzZ2EsX2csb2dhLG1ydD1nKCgpPT57ZHJ0KCk7dTFlKCk7cHJ0KCk7ZWdhKCk7YWdhKCk7Y3J0KCk7YmE9e2luaXRpYWxpemVkOiExLGJvb3RDYWxsZWQ6ITEsYXV0aENvbXBsZXRlOnRnYSgpLGNsaWVudElkOiIiLG9hdXRoU2NvcGU6IiIsYnJvYWRjYXN0Q2hhbm5lbDpudWxsLGdldCBlZGl0b3JPcmlnaW4oKXtyZXR1cm4gX3UuZWRpdG9yT3JpZ2lufSx0b2tlbnM6bnVsbH0sc2dhPW5ldyBTZyxfZz1uZXcgU2c7aShpUSwiYnJvYWRjYXN0TWVzc2FnZSIpO29nYT17aW5pdCh7ZWRpdG9yT3JpZ2luOnMsY2xpZW50SWQ6ZSxzY29wZTp0fSl7aWYoYmEuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIik7aWYoITAmJmJhLmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgYXV0aC5pbml0YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO2JhLmluaXRpYWxpemVkPSEwLGJhLnRva2Vucz1seC5mcm9tU3RvcmFnZSgpLGJhLmNsaWVudElkPWUsYmEub2F1dGhTY29wZT10LGJhLmJyb2FkY2FzdENoYW5uZWw9bmV3IEJyb2FkY2FzdENoYW5uZWwoVzhhKSxfdS5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLGUpLHMmJihfdS5lZGl0b3JPcmlnaW49bmV3IFVSTChzKS5vcmlnaW4pLF9nLmxpc3RlbigoKT0+YmEuYXV0aENvbXBsZXRlLnJlc2V0KCkpLGJhLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscik7YXN5bmMgZnVuY3Rpb24gcihwKXtsZXQgZD1wLmRhdGE7aWYoZC50eXBlPT09ImF1dGgtY29tcGxldGUiKXtiYS50b2tlbnM9bHguZnJvbVN0b3JhZ2UoKSxhd2FpdCBiYS50b2tlbnMuYWN0aXZhdGUoaHJ0KSxiYS5hdXRoQ29tcGxldGUucmVzb2x2ZSgpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1mYWlsZWQiKXtzZ2EuZmlyZUV2ZW50KGQpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1sb2dvdXQiKXtfZy5maXJlRXZlbnQoKTtyZXR1cm59fWlmKGkociwib25DaGFubmVsTWVzc2FnZSIpLGJhLnRva2Vucyl7bGV0IHA9YmEudG9rZW5zO2lmKHAub3JpZ2luPT09YmEuZWRpdG9yT3JpZ2luKXJldHVybihhc3luYygpPT57aWYoIWF3YWl0IHAuYWN0aXZhdGUoaHJ0KSl7aWYoYmEudG9rZW5zIT09cClyZXR1cm47X2cuZmlyZUV2ZW50KCk7cmV0dXJufWJhLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCl9KSgpLHtzdGF0dXM6ImF1dGhvcml6ZWQifTtwMWUoKSxiYS50b2tlbnM9bnVsbH1sZXQgbj1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx7c2VhcmNoUGFyYW1zOm99PW4sbD1pKCgpPT53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsbiksInVwZGF0ZVVSTCIpO2lmKG8uaGFzKG4xZSkpe2xldCBwPW8uZ2V0KG4xZSksZD1vLmdldChscnQpO3JldHVybiBvLmRlbGV0ZShuMWUpLG8uZGVsZXRlKGxydCksbCgpLGlRKHt0eXBlOiJhdXRoLWZhaWxlZCIsZXJyb3I6cCxkZXNjcmlwdGlvbjpkfSkse3N0YXR1czoiYXV0aC1mYWlsZWQiLGVycm9yOnAsZGVzY3JpcHRpb246ZH19aWYoby5oYXMobzFlKSl7bGV0IHA9by5nZXQobzFlKSxkPWJhLmVkaXRvck9yaWdpbjtvLmRlbGV0ZShvMWUpLGwoKTtsZXQgdT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShjMWUpO3JldHVybiB1Pyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShjMWUpLGx4LmZyb21BdXRoQ29kZSh7ZWRpdG9yT3JpZ2luOmQsY2xpZW50SWQ6YmEuY2xpZW50SWQsYXV0aENvZGU6cCxjb2RlVmVyaWZpZXI6dSxyZWRpcmVjdFVyaTppZ2EoKX0pLnRoZW4oYXN5bmMgYz0+e2lmKGJhLnRva2Vucz1jLGZydChiYS50b2tlbnMpLCFhd2FpdCBiYS50b2tlbnMuYWN0aXZhdGUoaHJ0KSl0aHJvdyBuZXcgRXJyb3I7YmEuYXV0aENvbXBsZXRlLnJlc29sdmUoKSxpUSh7dHlwZToiYXV0aC1jb21wbGV0ZSJ9KX0pLmNhdGNoKGM9Pntjb25zb2xlLmVycm9yKGMpLF9nLmZpcmVFdmVudCgpLGlRKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0pLHtzdGF0dXM6ImF1dGhvcml6ZWQifSk6e3N0YXR1czoibmVlZC1hdXRoIn19cmV0dXJue3N0YXR1czoibmVlZC1hdXRoIn19LGFzeW5jIHN0YXJ0QXV0aEZsb3coe3BvcHVwOnN9PXt9KXtpZighYmEuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJhdXRoLmluaXQgbXVzdCBiZSBjYWxsZWQgZmlyc3QiKTtpZihzKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShkMWUsInRydWUiKTtsZXQgZT01MDAsdD02MjAsYT13aW5kb3cuc2NyZWVuTGVmdCsod2luZG93Lm91dGVyV2lkdGgtdCkvMixyPXdpbmRvdy5zY3JlZW5Ub3ArKHdpbmRvdy5vdXRlckhlaWdodC1lKS8yO3dpbmRvdy5vcGVuKGF3YWl0IHJnYSgpLCJfYmxhbmsiLGBwb3B1cCx3aWR0aD0ke3R9LGhlaWdodD0ke2V9LGxlZnQ9JHthfSx0b3A9JHtyfWApfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhyZWY9YXdhaXQgcmdhKCl9LGFzeW5jIGxvZ291dCh7aWdub3JlUmV2b2tlRXJyb3I6c309e30pe2F3YWl0IGJhLnRva2Vucz8ucmV2b2tlKGJhLmNsaWVudElkLHM/PyExKSxfZy5maXJlRXZlbnQoKSxpUSh7dHlwZToiYXV0aC1sb2dvdXQifSl9LGxvZ2dlZEluKCl7cmV0dXJuIGJhLmF1dGhDb21wbGV0ZS5wcm9taXNlfSxvbihzLGUpe3N3aXRjaChzKXtjYXNlImF1dGgtZmFpbGVkIjpyZXR1cm4gc2dhLmxpc3RlbihlKTtjYXNlImxvZ2dlZC1vdXQiOnJldHVybiBfZy5saXN0ZW4oZSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgJyR7c30nLmApfX19O2koaHJ0LCJvbkZhaWxlZFRva2VuUmVmcmVzaCIpO2koaWdhLCJkZWZhdWx0UmVkaXJlY3RVcmkiKTtpKHJnYSwiZ2VuZXJhdGVPQXV0aFJlcXVlc3QiKTtpKGZydCwiYXNzZXJ0QXV0aFRva2VucyIpfSk7dmFyIE11LGYxZT1nKCgpPT57KGZ1bmN0aW9uKHMpe3MuVW5jYXVnaHRFeGNlcHRpb249IlBSRVZJRVdfVU5DQVVHSFRfRVhDRVBUSU9OIixzLlVuaGFuZGxlZFJlamVjdGlvbj0iUFJFVklFV19VTkhBTkRMRURfUkVKRUNUSU9OIixzLkNvbnNvbGVFcnJvcj0iUFJFVklFV19DT05TT0xFX0VSUk9SIn0pKE11fHwoTXU9e30pKX0pO2Z1bmN0aW9uIHhydChzLGU9c2VsZil7ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKGZ1bmN0aW9uIHQoYSl7aWYoIWF8fCFhLmRhdGEpcmV0dXJuO2xldHtpZDpyLHR5cGU6bixwYXRoOm99PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LGEuZGF0YSksbD0oYS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChNZykscDt0cnl7bGV0IGQ9by5zbGljZSgwLC0xKS5yZWR1Y2UoKGMsYik9PmNbYl0scyksdT1vLnJlZHVjZSgoYyxiKT0+Y1tiXSxzKTtzd2l0Y2gobil7Y2FzZSAwOnA9dTticmVhaztjYXNlIDE6ZFtvLnNsaWNlKC0xKVswXV09TWcoYS5kYXRhLnZhbHVlKSxwPSEwO2JyZWFrO2Nhc2UgMjpwPXUuYXBwbHkoZCxsKTticmVhaztjYXNlIDM6e2xldCBjPW5ldyB1KC4uLmwpO3A9bWdhKGMpfWJyZWFrO2Nhc2UgNDp7bGV0e3BvcnQxOmMscG9ydDI6Yn09bmV3IE1lc3NhZ2VDaGFubmVsO3hydChzLGIpLHA9ZmdhKGMsW2NdKX1icmVhaztjYXNlIDU6cD12b2lkIDA7YnJlYWt9fWNhdGNoKGQpe3A9e3ZhbHVlOmQsW2JydF06MH19UHJvbWlzZS5yZXNvbHZlKHApLmNhdGNoKGQ9Pih7dmFsdWU6ZCxbYnJ0XTowfSkpLnRoZW4oZD0+e2xldFt1LGNdPXdydChkKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx1KSx7aWQ6cn0pLGMpLG49PT01JiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0KSxkZ2EoZSkpfSl9LCJjYWxsYmFjayIpKSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gbFFhKHMpe3JldHVybiBzLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGRnYShzKXtsUWEocykmJnMuY2xvc2UoKX1mdW5jdGlvbiB1Z2EocyxlKXtyZXR1cm4geXJ0KHMsW10sZSl9ZnVuY3Rpb24gbTFlKHMpe2lmKHMpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiB5cnQocyxlPVtdLHQ9ZnVuY3Rpb24oKXt9KXtsZXQgYT0hMSxyPW5ldyBQcm94eSh0LHtnZXQobixvKXtpZihtMWUoYSksbz09PWxnYSlyZXR1cm4oKT0+Y3gocyx7dHlwZTo1LHBhdGg6ZS5tYXAobD0+bC50b1N0cmluZygpKX0pLnRoZW4oKCk9PntkZ2EocyksYT0hMH0pO2lmKG89PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjppKCgpPT5yLCJ0aGVuIil9O2xldCBsPWN4KHMse3R5cGU6MCxwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSl9KS50aGVuKE1nKTtyZXR1cm4gbC50aGVuLmJpbmQobCl9cmV0dXJuIHlydChzLFsuLi5lLG9dKX0sc2V0KG4sbyxsKXttMWUoYSk7bGV0W3AsZF09d3J0KGwpO3JldHVybiBjeChzLHt0eXBlOjEscGF0aDpbLi4uZSxvXS5tYXAodT0+dS50b1N0cmluZygpKSx2YWx1ZTpwfSxkKS50aGVuKE1nKX0sYXBwbHkobixvLGwpe20xZShhKTtsZXQgcD1lW2UubGVuZ3RoLTFdO2lmKHA9PT1uZ2EpcmV0dXJuIGN4KHMse3R5cGU6NH0pLnRoZW4oTWcpO2lmKHA9PT0iYmluZCIpcmV0dXJuIHlydChzLGUuc2xpY2UoMCwtMSkpO2xldFtkLHVdPXBnYShsKTtyZXR1cm4gY3gocyx7dHlwZToyLHBhdGg6ZS5tYXAoYz0+Yy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6ZH0sdSkudGhlbihNZyl9LGNvbnN0cnVjdChuLG8pe20xZShhKTtsZXRbbCxwXT1wZ2Eobyk7cmV0dXJuIGN4KHMse3R5cGU6MyxwYXRoOmUubWFwKGQ9PmQudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Omx9LHApLnRoZW4oTWcpfX0pO3JldHVybiByfWZ1bmN0aW9uIGNRYShzKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxzKX1mdW5jdGlvbiBwZ2Eocyl7bGV0IGU9cy5tYXAod3J0KTtyZXR1cm5bZS5tYXAodD0+dFswXSksY1FhKGUubWFwKHQ9PnRbMV0pKV19ZnVuY3Rpb24gZmdhKHMsZSl7cmV0dXJuIGhnYS5zZXQocyxlKSxzfWZ1bmN0aW9uIG1nYShzKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihzLHtbZ3J0XTohMH0pfWZ1bmN0aW9uIGRRYShzLGU9c2VsZix0PSIqIil7cmV0dXJue3Bvc3RNZXNzYWdlOmkoKGEscik9PnMucG9zdE1lc3NhZ2UoYSx0LHIpLCJwb3N0TWVzc2FnZSIpLGFkZEV2ZW50TGlzdGVuZXI6ZS5hZGRFdmVudExpc3RlbmVyLmJpbmQoZSkscmVtb3ZlRXZlbnRMaXN0ZW5lcjplLnJlbW92ZUV2ZW50TGlzdGVuZXIuYmluZChlKX19ZnVuY3Rpb24gd3J0KHMpe2ZvcihsZXRbZSx0XW9mIHZydClpZih0LmNhbkhhbmRsZShzKSl7bGV0W2Escl09dC5zZXJpYWxpemUocyk7cmV0dXJuW3t0eXBlOjMsbmFtZTplLHZhbHVlOmF9LHJdfXJldHVyblt7dHlwZTowLHZhbHVlOnN9LGhnYS5nZXQocyl8fFtdXX1mdW5jdGlvbiBNZyhzKXtzd2l0Y2gocy50eXBlKXtjYXNlIDM6cmV0dXJuIHZydC5nZXQocy5uYW1lKS5kZXNlcmlhbGl6ZShzLnZhbHVlKTtjYXNlIDA6cmV0dXJuIHMudmFsdWV9fWZ1bmN0aW9uIGN4KHMsZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoYT0+e2xldCByPXVRYSgpO3MuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaShmdW5jdGlvbiBuKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PXJ8fChzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pLGEoby5kYXRhKSl9LCJsIikpLHMuc3RhcnQmJnMuc3RhcnQoKSxzLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LGUpLHQpfSl9ZnVuY3Rpb24gdVFhKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX12YXIgaVFhLHJRYSxZYyxncnQsbmdhLGxnYSxicnQsY2dhLG9RYSxuUWEsdnJ0LGhnYSxnZ2E9ZygoKT0+e2lRYT1PYmplY3QuZGVmaW5lUHJvcGVydHksclFhPWkoKHMsZSk9Pntmb3IodmFyIHQgaW4gZSlpUWEocyx0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LCJfX2V4cG9ydCIpLFljPXt9O3JRYShZYyx7Y3JlYXRlRW5kcG9pbnQ6aSgoKT0+bmdhLCJjcmVhdGVFbmRwb2ludCIpLGV4cG9zZTppKCgpPT54cnQsImV4cG9zZSIpLHByb3h5OmkoKCk9Pm1nYSwicHJveHkiKSxwcm94eU1hcmtlcjppKCgpPT5ncnQsInByb3h5TWFya2VyIikscmVsZWFzZVByb3h5OmkoKCk9PmxnYSwicmVsZWFzZVByb3h5IiksdHJhbnNmZXI6aSgoKT0+ZmdhLCJ0cmFuc2ZlciIpLHRyYW5zZmVySGFuZGxlcnM6aSgoKT0+dnJ0LCJ0cmFuc2ZlckhhbmRsZXJzIiksd2luZG93RW5kcG9pbnQ6aSgoKT0+ZFFhLCJ3aW5kb3dFbmRwb2ludCIpLHdyYXA6aSgoKT0+dWdhLCJ3cmFwIil9KTtncnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksbmdhPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLGxnYT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksYnJ0PVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxjZ2E9aShzPT50eXBlb2Ygcz09Im9iamVjdCImJnMhPT1udWxsfHx0eXBlb2Ygcz09ImZ1bmN0aW9uIiwiaXNPYmplY3QiKSxvUWE9e2NhbkhhbmRsZTppKHM9PmNnYShzKSYmc1tncnRdLCJjYW5IYW5kbGUiKSxzZXJpYWxpemUocyl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiB4cnQocyxlKSxbdCxbdF1dfSxkZXNlcmlhbGl6ZShzKXtyZXR1cm4gcy5zdGFydCgpLHVnYShzKX19LG5RYT17Y2FuSGFuZGxlOmkocz0+Y2dhKHMpJiZicnQgaW4gcywiY2FuSGFuZGxlIiksc2VyaWFsaXplKHt2YWx1ZTpzfSl7bGV0IGU7cmV0dXJuIHMgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOnMubWVzc2FnZSxuYW1lOnMubmFtZSxzdGFjazpzLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpzfSxbZSxbXV19LGRlc2VyaWFsaXplKHMpe3Rocm93IHMuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihzLnZhbHVlLm1lc3NhZ2UpLHMudmFsdWUpOnMudmFsdWV9fSx2cnQ9bmV3IE1hcChbWyJwcm94eSIsb1FhXSxbInRocm93IixuUWFdXSk7aSh4cnQsImV4cG9zZSIpO2kobFFhLCJpc01lc3NhZ2VQb3J0Iik7aShkZ2EsImNsb3NlRW5kUG9pbnQiKTtpKHVnYSwid3JhcCIpO2kobTFlLCJ0aHJvd0lmUHJveHlSZWxlYXNlZCIpO2koeXJ0LCJjcmVhdGVQcm94eSIpO2koY1FhLCJteUZsYXQiKTtpKHBnYSwicHJvY2Vzc0FyZ3VtZW50cyIpO2hnYT1uZXcgV2Vha01hcDtpKGZnYSwidHJhbnNmZXIiKTtpKG1nYSwicHJveHkiKTtpKGRRYSwid2luZG93RW5kcG9pbnQiKTtpKHdydCwidG9XaXJlVmFsdWUiKTtpKE1nLCJmcm9tV2lyZVZhbHVlIik7aShjeCwicmVxdWVzdFJlc3BvbnNlTWVzc2FnZSIpO2kodVFhLCJnZW5lcmF0ZVVVSUQiKX0pO3ZhciBiZ2E9ZygoKT0+e30pO2Z1bmN0aW9uIGtydChzKXtyZXR1cm4hKHM9PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0Inx8ISgidHlwZSJpbiBzKXx8IXBRYS5pbmNsdWRlcyhzLnR5cGUpKX12YXIgcFFhLHZnYT1nKCgpPT57ZjFlKCk7cFFhPVtNdS5Db25zb2xlRXJyb3IsTXUuVW5jYXVnaHRFeGNlcHRpb24sTXUuVW5oYW5kbGVkUmVqZWN0aW9uXTtpKGtydCwiaXNQcmV2aWV3TWVzc2FnZSIpfSk7dmFyIFNydD1nKCgpPT57YmdhKCk7ZjFlKCk7dmdhKCl9KTtmdW5jdGlvbiB6ZyhzKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBzP09iamVjdC5hc3NpZ24oZSxzKTplfXZhciB4Z2E9ZygoKT0+e2koemcsIm51bGxQcm90b3R5cGUiKX0pO2Z1bmN0aW9uIF9ydChzKXtsZXQgZT17ZDp7fX07Zm9yKGxldCB0IG9mIE9iamVjdC5rZXlzKHMpKXtsZXQgYT1zW3RdO2lmKCJmaWxlImluIGEpe2lmKCJzeW1saW5rImluIGEuZmlsZSl7ZS5kW3RdPXtmOntsOmEuZmlsZS5zeW1saW5rfX07Y29udGludWV9bGV0IG49YS5maWxlLmNvbnRlbnRzLG89dHlwZW9mIG49PSJzdHJpbmciP246aFFhLmRlY29kZShuKSxsPXR5cGVvZiBuPT0ic3RyaW5nIj97fTp7YjohMH07ZS5kW3RdPXtmOntjOm8sLi4ubH19O2NvbnRpbnVlfWxldCByPV9ydChhLmRpcmVjdG9yeSk7ZS5kW3RdPXJ9cmV0dXJuIGV9ZnVuY3Rpb24gTXJ0KHMpe2xldCBlPXpnKCk7aWYoImYiaW4gcyl0aHJvdyBuZXcgRXJyb3IoIkl0IGlzIG5vdCBwb3NzaWJsZSB0byBleHBvcnQgYSBzaW5nbGUgZmlsZSBpbiB0aGUgSlNPTiBmb3JtYXQuIik7aWYoImQiaW4gcylmb3IobGV0IHQgb2YgT2JqZWN0LmtleXMocy5kKSl7bGV0IGE9cy5kW3RdOyJkImluIGE/ZVt0XT16Zyh7ZGlyZWN0b3J5Ok1ydChhKX0pOiJmImluIGEmJigiYyJpbiBhLmY/ZVt0XT16Zyh7ZmlsZTp6Zyh7Y29udGVudHM6YS5mLmI/ZlFhKGEuZi5jKTphLmYuY30pfSk6ImwiaW4gYS5mJiYoZVt0XT16Zyh7ZmlsZTp6Zyh7c3ltbGluazphLmYubH0pfSkpKX1yZXR1cm4gZX1mdW5jdGlvbiBmUWEocyl7bGV0IGU9bmV3IFVpbnQ4QXJyYXkocy5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKWVbdF09c1t0XS5jaGFyQ29kZUF0KDApO3JldHVybiBlfXZhciBoUWEseWdhPWcoKCk9Pnt4Z2EoKTtoUWE9bmV3IFRleHREZWNvZGVyKCJsYXRpbjEiKTtpKF9ydCwidG9JbnRlcm5hbEZpbGVTeXN0ZW1UcmVlIik7aShNcnQsInRvRXh0ZXJuYWxGaWxlU3lzdGVtVHJlZSIpO2koZlFhLCJmcm9tQmluYXJ5U3RyaW5nIil9KTtmdW5jdGlvbiB4eW8ocyl7aWYoYmEuYm9vdENhbGxlZCl0aHJvdyBuZXcgRXJyb3IoImBjb25maWd1cmVBUElLZXlgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgIik7X3Uuc2V0UXVlcnlQYXJhbSgiY2xpZW50X2lkIixzKX1hc3luYyBmdW5jdGlvbiB2UWEocyl7bGV0e3NlcnZlclByb21pc2U6ZX09eFFhKHMpLGE9YXdhaXQoYXdhaXQgZSkuYnVpbGQoe2hvc3Q6d2luZG93LmxvY2F0aW9uLmhvc3QsdmVyc2lvbjoiMS42LjEiLHdvcmtkaXJOYW1lOnMud29ya2Rpck5hbWUsZm9yd2FyZFByZXZpZXdFcnJvcnM6cy5mb3J3YXJkUHJldmlld0Vycm9yc30pLFtyLG4sb109YXdhaXQgUHJvbWlzZS5hbGwoW2EuZnMoKSxhLnByZXZpZXdTY3JpcHQoKSxhLnJ1bnRpbWVJbmZvKCldKTtyZXR1cm4gbmV3IENnKGEscixuLG8pfWZ1bmN0aW9uIExydChzKXtpZihzIT1udWxsKXJldHVybiBlPT57ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/cyh3Z2EuZGVjb2RlKGUpKTplPT1udWxsJiZzKG51bGwpfX1mdW5jdGlvbiB2MWUocyl7aWYocyE9bnVsbClyZXR1cm4gWWMucHJveHkocyl9ZnVuY3Rpb24geFFhKHMpe2lmKGIxZSE9bnVsbClyZXR1cm4gcy5jb2VwIT09enJ0LmNvZXAmJihjb25zb2xlLndhcm4oYEF0dGVtcHRpbmcgdG8gYm9vdCBXZWJDb250YWluZXIgd2l0aCAnY29lcDogJHtzLmNvZXB9J2ApLGNvbnNvbGUud2FybihgRmlyc3QgYm9vdCBoYWQgJ2NvZXA6ICR7enJ0LmNvZXB9JywgbmV3IHNldHRpbmdzIHdpbGwgbm90IHRha2UgZWZmZWN0IWApKSx7c2VydmVyUHJvbWlzZTpiMWV9O3MuY29lcCYmX3Uuc2V0UXVlcnlQYXJhbSgiY29lcCIscy5jb2VwKSxzLmV4cGVyaW1lbnRhbE5vZGUmJl91LnNldFF1ZXJ5UGFyYW0oImV4cGVyaW1lbnRhbF9ub2RlIiwiMSIpO2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Uuc3R5bGUuZGlzcGxheT0ibm9uZSIsZS5zZXRBdHRyaWJ1dGUoImFsbG93IiwiY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIik7bGV0IHQ9X3UudXJsO2Uuc3JjPXQudG9TdHJpbmcoKTtsZXR7b3JpZ2luOmF9PXQ7cmV0dXJuIHpydD17Li4uc30sYjFlPW5ldyBQcm9taXNlKHI9PntsZXQgbj1pKG89PntpZihvLm9yaWdpbiE9PWEpcmV0dXJuO2xldHtkYXRhOmx9PW87aWYobC50eXBlPT09ImluaXQiKXtyKFljLndyYXAoby5wb3J0c1swXSkpO3JldHVybn1pZihsLnR5cGU9PT0id2FybmluZyIpe2NvbnNvbGVbbC5sZXZlbF0uY2FsbChjb25zb2xlLGwubWVzc2FnZSk7cmV0dXJufX0sIm9uTWVzc2FnZSIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKX0pLGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGUsbnVsbCkse3NlcnZlclByb21pc2U6YjFlfX1mdW5jdGlvbiB5UWEocyl7cmV0dXJuIHR5cGVvZiBzWzBdPT0ic3RyaW5nIn1mdW5jdGlvbiB3UWEocyl7cmV0dXJuIHNbMF1pbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24ga1FhKCl7bGV0IHM9bnVsbDtyZXR1cm57c3RyZWFtOm5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQoYSl7cz1hfX0pLHB1c2g6aShhPT57YSE9bnVsbD9zPy5lbnF1ZXVlKGEpOihzPy5jbG9zZSgpLHM9bnVsbCl9LCJwdXNoIil9fWZ1bmN0aW9uIFNRYShzKXtsZXQgZT0hMSx0PWkoKCk9Pnt9LCJ1bnN1YnNjcmliZSIpO3JldHVybntzdWJzY3JpYmUocil7cmV0dXJuIHIudGhlbihuPT57dD1uLGUmJnQoKX0pLCgpPT57ZT0hMCx0KCl9fSxsaXN0ZW5lcjppKCgoLi4ucik9PntlfHxzKC4uLnIpfSksIndyYXBwZWQiKX19dmFyIHZ5byxnMWUsYjFlLHpydCx3Z2EsbVFhLENnLGdRYSxiUWEsQ3J0LFRydCwkcnQsRHJ0LEVydD1nKCgpPT57bXJ0KCk7ZjFlKCk7Z2dhKCk7bXJ0KCk7ZHJ0KCk7cHJ0KCk7U3J0KCk7eWdhKCk7U3J0KCk7dnlvPW9nYSxnMWU9bnVsbCxiMWU9bnVsbCx6cnQ9e30sd2dhPW5ldyBUZXh0RGVjb2RlcixtUWE9bmV3IFRleHRFbmNvZGVyLENnPWNsYXNzIHN7c3RhdGlje2kodGhpcywiV2ViQ29udGFpbmVyIil9X2luc3RhbmNlO19ydW50aW1lSW5mbztmcztzdGF0aWMgX2luc3RhbmNlPW51bGw7c3RhdGljIF90ZWFyZG93blByb21pc2U9bnVsbDtfdG9ybkRvd249ITE7X3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyPWkoKCk9Pnt9LCJfdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIiKTtjb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLl9pbnN0YW5jZT1lLHRoaXMuX3J1bnRpbWVJbmZvPXIsdGhpcy5mcz1uZXcgRHJ0KHQpLGJhLmluaXRpYWxpemVkJiYodGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXI9WDhhKG49Pnt0aGlzLl9pbnN0YW5jZS5zZXRDcmVkZW50aWFscyh7YWNjZXNzVG9rZW46bixlZGl0b3JPcmlnaW46YmEuZWRpdG9yT3JpZ2lufSl9KSwoYXN5bmMoKT0+e2F3YWl0IGJhLmF1dGhDb21wbGV0ZS5wcm9taXNlLCF0aGlzLl90b3JuRG93biYmKGZydChiYS50b2tlbnMpLGF3YWl0IHRoaXMuX2luc3RhbmNlLnNldENyZWRlbnRpYWxzKHthY2Nlc3NUb2tlbjpiYS50b2tlbnMuYWNjZXNzLGVkaXRvck9yaWdpbjpiYS5lZGl0b3JPcmlnaW59KSl9KSgpLmNhdGNoKG49Pntjb25zb2xlLmVycm9yKG4pfSkpfWFzeW5jIHNwYXduKGUsdCxhKXtsZXQgcj1bXTtBcnJheS5pc0FycmF5KHQpP3I9dDphPXQ7bGV0IG4sbz1uZXcgUmVhZGFibGVTdHJlYW07aWYoYT8ub3V0cHV0IT09ITEpe2xldCBtPWtRYSgpO249bS5wdXNoLG89bS5zdHJlYW19bGV0IGwscCxkLHUsYz12MWUoTHJ0KG4pKSxiPXYxZShMcnQobCkpLHY9djFlKExydChkKSkseD1hd2FpdCB0aGlzLl9pbnN0YW5jZS5ydW4oe2NvbW1hbmQ6ZSxhcmdzOnIsY3dkOmE/LmN3ZCxlbnY6YT8uZW52LHRlcm1pbmFsOmE/LnRlcm1pbmFsfSxiLHYsYyk7cmV0dXJuIG5ldyAkcnQoeCxvLHAsdSl9YXN5bmMgZXhwb3J0KGUsdCl7bGV0IGE9e2Zvcm1hdDp0Py5mb3JtYXQ/PyJqc29uIixpbmNsdWRlczp0Py5pbmNsdWRlcyxleGNsdWRlczp0Py5leGNsdWRlcyxleHRlcm5hbDohMH0scj1hd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXJpYWxpemUoZSxhKTtpZihhLmZvcm1hdD09PSJqc29uIil7bGV0IG49SlNPTi5wYXJzZSh3Z2EuZGVjb2RlKHIpKTtyZXR1cm4gTXJ0KG4pfXJldHVybiByfW9uKGUsdCl7aWYoZT09PSJwcmV2aWV3LW1lc3NhZ2UiKXtsZXQgbj10O3Q9aSgobz0+e2tydChvKSYmbihvKX0pLCJsaXN0ZW5lciIpfWxldHtsaXN0ZW5lcjphLHN1YnNjcmliZTpyfT1TUWEodCk7cmV0dXJuIHIodGhpcy5faW5zdGFuY2Uub24oZSxZYy5wcm94eShhKSkpfW1vdW50KGUsdCl7bGV0IGE9ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/ZTplIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVpbnQ4QXJyYXkoZSk6bVFhLmVuY29kZShKU09OLnN0cmluZ2lmeShfcnQoZSkpKTtyZXR1cm4gdGhpcy5faW5zdGFuY2UubG9hZEZpbGVzKFljLnRyYW5zZmVyKGEsW2EuYnVmZmVyXSkse21vdW50UG9pbnRzOnQ/Lm1vdW50UG9pbnR9KX1zZXRQcmV2aWV3U2NyaXB0KGUsdCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlLnNldFByZXZpZXdTY3JpcHQoZSx0KX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5wYXRofWdldCB3b3JrZGlyKCl7cmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmN3ZH10ZWFyZG93bigpe2lmKHRoaXMuX3Rvcm5Eb3duKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyIGFscmVhZHkgdG9ybiBkb3duIik7dGhpcy5fdG9ybkRvd249ITAsdGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIoKTtsZXQgZT1pKGFzeW5jKCk9Pnt0cnl7YXdhaXQgdGhpcy5mcy5fdGVhcmRvd24oKSxhd2FpdCB0aGlzLl9pbnN0YW5jZS50ZWFyZG93bigpfWZpbmFsbHl7dGhpcy5faW5zdGFuY2VbWWMucmVsZWFzZVByb3h5XSgpLHMuX2luc3RhbmNlPT09dGhpcyYmKHMuX2luc3RhbmNlPW51bGwpfX0sInRlYXJkb3duRm4iKTtzLl90ZWFyZG93blByb21pc2U9ZSgpfXN0YXRpYyBhc3luYyBib290KGU9e30pe2F3YWl0IHRoaXMuX3RlYXJkb3duUHJvbWlzZSxzLl90ZWFyZG93blByb21pc2U9bnVsbDtsZXR7d29ya2Rpck5hbWU6dH09ZTtpZih3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCYmZS5jb2VwPT09Im5vbmUiJiZjb25zb2xlLndhcm4oYEEgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBoZWFkZXIgaXMgcmVxdWlyZWQgaW4gY3Jvc3Mgb3JpZ2luIGlzb2xhdGVkIGVudmlyb25tZW50cy4KU2V0IHRoZSAnY29lcCcgb3B0aW9uIHRvICdyZXF1aXJlLWNvcnAnLmApLHQ/LmluY2x1ZGVzKCIvIil8fHQ9PT0iLi4ifHx0PT09Ii4iKXRocm93IG5ldyBFcnJvcigid29ya2Rpck5hbWUgc2hvdWxkIGJlIGEgdmFsaWQgZm9sZGVyIG5hbWUiKTtmb3IoYmEuYm9vdENhbGxlZD0hMDtnMWU7KWF3YWl0IGcxZTtpZihzLl9pbnN0YW5jZSl0aHJvdyBuZXcgRXJyb3IoIk9ubHkgYSBzaW5nbGUgV2ViQ29udGFpbmVyIGluc3RhbmNlIGNhbiBiZSBib290ZWQiKTtsZXQgYT12UWEoZSk7ZzFlPWEuY2F0Y2goKCk9Pnt9KTt0cnl7bGV0IHI9YXdhaXQgYTtyZXR1cm4gcy5faW5zdGFuY2U9cixyfWZpbmFsbHl7ZzFlPW51bGx9fX07aSh4eW8sImNvbmZpZ3VyZUFQSUtleSIpO2dRYT0xLGJRYT0yLENydD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEaXJFbnRJbXBsIil9bmFtZTtfdHlwZTtjb25zdHJ1Y3RvcihlLHQpe3RoaXMubmFtZT1lLHRoaXMuX3R5cGU9dH1pc0ZpbGUoKXtyZXR1cm4gdGhpcy5fdHlwZT09PWdRYX1pc0RpcmVjdG9yeSgpe3JldHVybiB0aGlzLl90eXBlPT09YlFhfX0sVHJ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkZTV2F0Y2hlciIpfV9hcGlDbGllbnQ7X3BhdGg7X29wdGlvbnM7X2xpc3RlbmVyO193cmFwcGVkTGlzdGVuZXI7X3dhdGNoZXI7X2Nsb3NlZD0hMTtjb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLl9hcGlDbGllbnQ9ZSx0aGlzLl9wYXRoPXQsdGhpcy5fb3B0aW9ucz1hLHRoaXMuX2xpc3RlbmVyPXIsdGhpcy5fYXBpQ2xpZW50Ll93YXRjaGVycy5hZGQodGhpcyksdGhpcy5fd3JhcHBlZExpc3RlbmVyPShuLG8pPT57dGhpcy5fbGlzdGVuZXImJiF0aGlzLl9jbG9zZWQmJnRoaXMuX2xpc3RlbmVyKG4sbyl9LHRoaXMuX2FwaUNsaWVudC5fZnMud2F0Y2godGhpcy5fcGF0aCx0aGlzLl9vcHRpb25zLHYxZSh0aGlzLl93cmFwcGVkTGlzdGVuZXIpKS50aGVuKG49PntpZih0aGlzLl93YXRjaGVyPW4sdGhpcy5fY2xvc2VkKXJldHVybiB0aGlzLl90ZWFyZG93bigpfSkuY2F0Y2goY29uc29sZS5lcnJvcil9YXN5bmMgY2xvc2UoKXt0aGlzLl9jbG9zZWR8fCh0aGlzLl9jbG9zZWQ9ITAsdGhpcy5fYXBpQ2xpZW50Ll93YXRjaGVycy5kZWxldGUodGhpcyksYXdhaXQgdGhpcy5fdGVhcmRvd24oKSl9YXN5bmMgX3RlYXJkb3duKCl7YXdhaXQgdGhpcy5fd2F0Y2hlcj8uY2xvc2UoKS5maW5hbGx5KCgpPT57dGhpcy5fd2F0Y2hlcj8uW1ljLnJlbGVhc2VQcm94eV0oKX0pfX0sJHJ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIldlYkNvbnRhaW5lclByb2Nlc3NJbXBsIil9b3V0cHV0O2lucHV0O2V4aXQ7X3Byb2Nlc3M7c3Rkb3V0O3N0ZGVycjtjb25zdHJ1Y3RvcihlLHQsYSxyKXt0aGlzLm91dHB1dD10LHRoaXMuX3Byb2Nlc3M9ZSx0aGlzLmlucHV0PW5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShuPT57dGhpcy5fZ2V0UHJvY2VzcygpPy53cml0ZShuKS5jYXRjaCgoKT0+e30pfSwid3JpdGUiKX0pLHRoaXMuZXhpdD10aGlzLl9vbkV4aXQoKSx0aGlzLnN0ZG91dD1hLHRoaXMuc3RkZXJyPXJ9a2lsbCgpe3RoaXMuX3Byb2Nlc3M/LmtpbGwoKX1yZXNpemUoZSl7dGhpcy5fZ2V0UHJvY2VzcygpPy5yZXNpemUoZSl9YXN5bmMgX29uRXhpdCgpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcHJvY2Vzcy5vbkV4aXR9ZmluYWxseXt0aGlzLl9wcm9jZXNzPy5bWWMucmVsZWFzZVByb3h5XSgpLHRoaXMuX3Byb2Nlc3M9bnVsbH19X2dldFByb2Nlc3MoKXtyZXR1cm4gdGhpcy5fcHJvY2Vzcz09bnVsbCYmY29uc29sZS53YXJuKCJUaGlzIHByb2Nlc3MgYWxyZWFkeSBleGl0ZWQiKSx0aGlzLl9wcm9jZXNzfX0sRHJ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkZpbGVTeXN0ZW1BUElDbGllbnQiKX1fZnM7X3dhdGNoZXJzPW5ldyBTZXQoW10pO2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ZzPWV9cm0oLi4uZSl7cmV0dXJuIHRoaXMuX2ZzLnJtKC4uLmUpfWFzeW5jIHJlYWRGaWxlKGUsdCl7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLnJlYWRGaWxlKGUsdCl9YXN5bmMgcmVuYW1lKGUsdCl7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLnJlbmFtZShlLHQpfWFzeW5jIHdyaXRlRmlsZShlLHQsYSl7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2xldCByPXQuYnVmZmVyLnNsaWNlKHQuYnl0ZU9mZnNldCx0LmJ5dGVPZmZzZXQrdC5ieXRlTGVuZ3RoKTt0PVljLnRyYW5zZmVyKG5ldyBVaW50OEFycmF5KHIpLFtyXSl9YXdhaXQgdGhpcy5fZnMud3JpdGVGaWxlKGUsdCxhKX1hc3luYyByZWFkZGlyKGUsdCl7bGV0IGE9YXdhaXQgdGhpcy5fZnMucmVhZGRpcihlLHQpO3JldHVybiB5UWEoYSl8fHdRYShhKT9hOmEubWFwKG49Pm5ldyBDcnQobi5uYW1lLG5bIlN5bWJvbCh0eXBlKSJdKSl9YXN5bmMgbWtkaXIoZSx0KXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMubWtkaXIoZSx0KX13YXRjaChlLHQsYSl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iJiYoYT10LHQ9bnVsbCksbmV3IFRydCh0aGlzLGUsdCxhKX1hc3luYyBfdGVhcmRvd24oKXt0aGlzLl9mc1tZYy5yZWxlYXNlUHJveHldKCksYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnRoaXMuX3dhdGNoZXJzXS5tYXAoZT0+ZS5jbG9zZSgpKSl9fTtpKHZRYSwidW5zeW5jaHJvbml6ZWRCb290Iik7aShMcnQsImJpbmFyeUxpc3RlbmVyIik7aSh2MWUsInByb3h5TGlzdGVuZXIiKTtpKHhRYSwic2VydmVyRmFjdG9yeSIpO2koeVFhLCJpc1N0cmluZ0FycmF5Iik7aSh3UWEsImlzVHlwZWRBcnJheUNvbGxlY3Rpb24iKTtpKGtRYSwic3RyZWFtV2l0aFB1c2giKTtpKFNRYSwic3luY1N1YnNjcmlwdGlvbiIpfSk7dmFyIFRnLFNnYT1nKCgpPT57RXJ0KCk7VGc9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJXZWJDb250YWluZXJFbnZpcm9ubWVudCIpfXN0YXRpYyBzaGFyZWRDb250YWluZXI9bnVsbDtzdGF0aWMgYm9vdFByb21pc2U9bnVsbDtfcmVhZHk9ITE7dHlwZT0id2ViY29udGFpbmVyIjtnZXQgcmVhZHkoKXtyZXR1cm4gdGhpcy5fcmVhZHl9Z2V0IGNvbnRhaW5lcigpe3JldHVybiBzLnNoYXJlZENvbnRhaW5lcn1hc3luYyBpbml0KCl7aWYoISh0aGlzLl9yZWFkeSYmcy5zaGFyZWRDb250YWluZXIpKXtpZihzLmJvb3RQcm9taXNlKXthd2FpdCBzLmJvb3RQcm9taXNlLHRoaXMuX3JlYWR5PSEwO3JldHVybn1pZihzLnNoYXJlZENvbnRhaW5lcil7dGhpcy5fcmVhZHk9ITA7cmV0dXJufWlmKHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcj4idSIpdGhyb3cgbmV3IEVycm9yKGBXZWJDb250YWluZXIgcmVxdWlyZXMgU2hhcmVkQXJyYXlCdWZmZXIgd2hpY2ggaXMgbm90IGF2YWlsYWJsZS4gRW5zdXJlIHlvdXIgc2VydmVyIHNlbmRzIHRoZXNlIGhlYWRlcnM6CiAgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3k6IHNhbWUtb3JpZ2luCiAgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeTogcmVxdWlyZS1jb3JwYCk7cy5ib290UHJvbWlzZT1DZy5ib290KCk7dHJ5e3Muc2hhcmVkQ29udGFpbmVyPWF3YWl0IHMuYm9vdFByb21pc2UsdGhpcy5fcmVhZHk9ITB9Y2F0Y2goZSl7dGhyb3cgcy5ib290UHJvbWlzZT1udWxsLGV9fX1hc3luYyBkZXN0cm95KCl7cy5zaGFyZWRDb250YWluZXImJihzLnNoYXJlZENvbnRhaW5lci50ZWFyZG93bigpLHMuc2hhcmVkQ29udGFpbmVyPW51bGwscy5ib290UHJvbWlzZT1udWxsLHRoaXMuX3JlYWR5PSExKX1hc3luYyByZWFkRmlsZShlKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRGaWxlKGUsInV0Zi04Iil9YXN5bmMgd3JpdGVGaWxlKGUsdCl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLndyaXRlRmlsZShlLHQsInV0Zi04Iil9YXN5bmMgcmVhZERpcihlKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLChhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkZGlyKGUse3dpdGhGaWxlVHlwZXM6ITB9KSkubWFwKGE9Pih7dHlwZTphLmlzRGlyZWN0b3J5KCk/ImRpcmVjdG9yeSI6ImZpbGUiLG5hbWU6YS5uYW1lLHBhdGg6ZT09PSIvIj9gLyR7YS5uYW1lfWA6YCR7ZX0vJHthLm5hbWV9YH0pKX1hc3luYyBta2RpcihlKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMubWtkaXIoZSx7cmVjdXJzaXZlOiEwfSl9YXN5bmMgcm0oZSx0KXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucm0oZSx7cmVjdXJzaXZlOnQ/LnJlY3Vyc2l2ZT8/ITF9KX1hc3luYyBleGlzdHMoZSl7dGhpcy5lbnN1cmVSZWFkeSgpO3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSksITB9Y2F0Y2h7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkZGlyKGUpLCEwfWNhdGNoe3JldHVybiExfX19d2F0Y2goZSx0LGEpe3RoaXMuZW5zdXJlUmVhZHkoKTtsZXQgcj10aGlzLmNvbnRhaW5lci5mcy53YXRjaChlLHtyZWN1cnNpdmU6YT8ucmVjdXJzaXZlPz8hMX0sdCk7cmV0dXJue3N0b3A6aSgoKT0+ci5jbG9zZSgpLCJzdG9wIil9fWFzeW5jIHNwYXduKGUsdD1bXSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBhPWF3YWl0IHRoaXMuY29udGFpbmVyLnNwYXduKGUsdCk7cmV0dXJue291dHB1dDphLm91dHB1dCxpbnB1dDphLmlucHV0LGV4aXQ6YS5leGl0LGtpbGw6aSgoKT0+YS5raWxsKCksImtpbGwiKX19Z2V0U2hlbGxDb21tYW5kKCl7cmV0dXJue2NvbW1hbmQ6ImpzaCIsbGFiZWw6ImpzaCIscHJvbXB0OiJ+LyJ9fWFzeW5jIG1vdW50KGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5tb3VudChlKX1nZXRDb250YWluZXIoKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLHRoaXMuY29udGFpbmVyfWVuc3VyZVJlYWR5KCl7aWYoIXRoaXMuX3JlYWR5fHwhdGhpcy5jb250YWluZXIpdGhyb3cgbmV3IEVycm9yKCJXZWJDb250YWluZXJFbnZpcm9ubWVudCBub3QgaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIGZpcnN0LiIpfX19KTt2YXIgX2dhPWcoKCk9PntTZ2EoKX0pO3ZhciB4MWU9ZygoKT0+e1Y4YSgpO19nYSgpfSk7dmFyIE1nYT1nKCgpPT57QmV0KCl9KTt2YXIgclEsUHJ0PWcoKCk9PntyUT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUZXJtaW5hbFRhYk1hbmFnZXIiKX10YWJzPW5ldyBNYXA7dGFiQ291bnRlcj0wO3h0ZXJtQnVuZGxlPW51bGw7eHRlcm1GaXRBZGRvbkJ1bmRsZT1udWxsO3NldFh0ZXJtTW9kdWxlcyhlLHQpe3RoaXMueHRlcm1CdW5kbGU9ZSx0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGU9dH1nZW5lcmF0ZVRhYklkKCl7cmV0dXJuIHRoaXMudGFiQ291bnRlcisrLGB0ZXJtaW5hbC0ke3RoaXMudGFiQ291bnRlcn0tJHtEYXRlLm5vdygpfWB9Z2V0RGVmYXVsdExhYmVsKGUsdCl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJiYXNoIjtjYXNlInNjcmlwdCI6cmV0dXJuIHQ/LnNjcmlwdE5hbWV8fCJzY3JpcHQiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiB0Py5wYWNrYWdlTmFtZT9gdXBkYXRlICR7dC5wYWNrYWdlTmFtZX1gOiJ1cGRhdGUiO2Nhc2UiY3VzdG9tIjpyZXR1cm4gdD8uY29tbWFuZHx8InByb2Nlc3MiO2RlZmF1bHQ6cmV0dXJuInRlcm1pbmFsIn19Z2V0RGVmYXVsdEljb24oZSl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJsdWNpZGU6dGVybWluYWwiO2Nhc2Uic2NyaXB0IjpyZXR1cm4ibHVjaWRlOnBsYXkiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiJsdWNpZGU6cGFja2FnZUNoZWNrIjtjYXNlImN1c3RvbSI6cmV0dXJuImx1Y2lkZTpjb2RlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6dGVybWluYWwifX1nZXRUZXJtaW5hbFRoZW1lKGUpe3JldHVybiBlP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uOiJyZ2JhKDAsIDAsIDAsIDAuMikiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjZmZmZmZmIixjdXJzb3I6IiNmZmZmZmYiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1jcmVhdGVUYWIoZSx0KXtpZighdGhpcy54dGVybUJ1bmRsZXx8IXRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZSl0aHJvdyBuZXcgRXJyb3IoIlRlcm1pbmFsVGFiTWFuYWdlcjogeHRlcm0gbW9kdWxlcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgc2V0WHRlcm1Nb2R1bGVzKCkgZmlyc3QuIik7bGV0IGE9dGhpcy5nZW5lcmF0ZVRhYklkKCkscj1lLnR5cGUsbj1uZXcgdGhpcy54dGVybUJ1bmRsZS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMCx0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUodCksZm9udEZhbWlseTonTWVubG8sIE1vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250U2l6ZToxMyxsaW5lSGVpZ2h0OjEuMn0pLG89bmV3IHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZS5GaXRBZGRvbjtuLmxvYWRBZGRvbihvKTtsZXQgbD17aWQ6YSxsYWJlbDplLmxhYmVsfHx0aGlzLmdldERlZmF1bHRMYWJlbChyLGUubWV0YWRhdGEpLGljb25OYW1lOmUuaWNvbk5hbWV8fHRoaXMuZ2V0RGVmYXVsdEljb24ociksdHlwZTpyLGNsb3NlYWJsZTplLmNsb3NlYWJsZT8/ciE9PSJzaGVsbCIsdGVybWluYWw6bixmaXRBZGRvbjpvLHByb2Nlc3M6bnVsbCxpbnB1dFdyaXRlcjpudWxsLGV4aXRlZDohMSxleGl0Q29kZTpudWxsLGNyZWF0ZWRBdDpEYXRlLm5vdygpLG1ldGFkYXRhOmUubWV0YWRhdGF9O3JldHVybiB0aGlzLnRhYnMuc2V0KGEsbCksbH1nZXRUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5nZXQoZSl9Z2V0QWxsVGFicygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudGFicy52YWx1ZXMoKSkuc29ydCgoZSx0KT0+ZS5jcmVhdGVkQXQtdC5jcmVhdGVkQXQpfWdldFRhYkNvdW50KCl7cmV0dXJuIHRoaXMudGFicy5zaXplfWhhc1RhYihlKXtyZXR1cm4gdGhpcy50YWJzLmhhcyhlKX1jbG9zZVRhYihlKXtsZXQgdD10aGlzLnRhYnMuZ2V0KGUpO2lmKCF0KXJldHVybiExO2lmKHQucHJvY2VzcyYmIXQuZXhpdGVkKXRyeXt0LnByb2Nlc3Mua2lsbCgpfWNhdGNoKGEpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGtpbGwgcHJvY2VzczoiLGEpfXRyeXt0LnRlcm1pbmFsLmRpc3Bvc2UoKX1jYXRjaChhKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBkaXNwb3NlIHRlcm1pbmFsOiIsYSl9cmV0dXJuIHRoaXMudGFicy5kZWxldGUoZSksITB9cmVuYW1lVGFiKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTtyZXR1cm4gYT8oYS5sYWJlbD10LCEwKTohMX1tYXJrVGFiRXhpdGVkKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTthJiYoYS5leGl0ZWQ9ITAsYS5leGl0Q29kZT10KX1zZXRUYWJQcm9jZXNzKGUsdCxhKXtsZXQgcj10aGlzLnRhYnMuZ2V0KGUpO3ImJihyLnByb2Nlc3M9dCxyLmlucHV0V3JpdGVyPWEpfXVwZGF0ZUFsbFRoZW1lcyhlKXtsZXQgdD10aGlzLmdldFRlcm1pbmFsVGhlbWUoZSk7Zm9yKGxldCBhIG9mIHRoaXMudGFicy52YWx1ZXMoKSlhLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dH1kaXNwb3NlQWxsKCl7Zm9yKGxldFtlXW9mIHRoaXMudGFicyl0aGlzLmNsb3NlVGFiKGUpO3RoaXMudGFicy5jbGVhcigpfX19KTt2YXIgemdhPXt9O3l0KHpnYSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOigpPT5JcnR9KTt2YXIgSmgsVm4sSXJ0LG9RPWcoKCk9PntwZSgpO2t0KCk7cHQoKTt4MWUoKTtVYSgpO2UxZSgpO1BydCgpO2Z1KCk7Smg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFZuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxJcnQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKCldLGM9W0woKV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W1koKV0sTz1bWSgpXSxKaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZXhlY3V0aW9uRW52aXJvbm1lbnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLEpoKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZXR1cENvbW1hbmQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZXR1cENvbW1hbmQsImdldCIpLHNldDppKChTLEkpPT57Uy5zZXR1cENvbW1hbmQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLEpoKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW52aXJvbm1lbnRWYXJpYWJsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImVudmlyb25tZW50VmFyaWFibGVzImluIFMsImhhcyIpLGdldDppKFM9PlMuZW52aXJvbm1lbnRWYXJpYWJsZXMsImdldCIpLHNldDppKChTLEkpPT57Uy5lbnZpcm9ubWVudFZhcmlhYmxlcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsdiksSmgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJCYXJXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGFiQmFyV2lkdGgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJCYXJXaWR0aCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkJhcldpZHRoPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxKaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dUYWJCYXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93VGFiQmFyLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYkJhcj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksSmgodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLEpoKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlVGFiSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImFjdGl2ZVRhYklkImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlVGFiSWQsImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVUYWJJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksSmgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT57bGV0IGs9bmV3IFRnO3JldHVybiB3YDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHtrfT48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPmB9LCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtyZXNpemVPYnNlcnZlcjt0YWJNYW5hZ2VyOyNlPVZuKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoayl7dGhpcy4jZT1rfSN0PShWbih0aGlzLGwpLFZuKHRoaXMsZCwiIikpO2dldCBzZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2V0dXBDb21tYW5kKGspe3RoaXMuI3Q9a30jYT0oVm4odGhpcyx1KSxWbih0aGlzLGIse30pKTtnZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoayl7dGhpcy4jYT1rfSNzPShWbih0aGlzLHYpLFZuKHRoaXMsbSwxNjApKTtnZXQgdGFiQmFyV2lkdGgoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFiQmFyV2lkdGgoayl7dGhpcy4jcz1rfSNpPShWbih0aGlzLGYpLFZuKHRoaXMsTSwhMCkpO2dldCBzaG93VGFiQmFyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dUYWJCYXIoayl7dGhpcy4jaT1rfSNyPShWbih0aGlzLHopLFZuKHRoaXMsQyxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRhYnMoayl7dGhpcy4jcj1rfSNvPShWbih0aGlzLF8pLFZuKHRoaXMsJCxudWxsKSk7Z2V0IGFjdGl2ZVRhYklkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZVRhYklkKGspe3RoaXMuI289a310ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPShWbih0aGlzLEUpLG51bGwpO2lzQnJpZ2h0PSExO3Rlcm1pbmFsQWN0aW9uYmFyPW51bGw7ZW52aXJvbm1lbnREZWZlcnJlZD1uZXcgdXQuc21hcnRwcm9taXNlLkRlZmVycmVkO2Vudmlyb25tZW50UHJvbWlzZT10aGlzLmVudmlyb25tZW50RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJNYW5hZ2VyPW5ldyByUSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuaGFuZGxlUmVzaXplKCl9KX1zdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgI2FjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCBkZWVzLWFjdGlvbmJhciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi8KICAgICAgLnRhYi1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFiLWJhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWJhci10aXRsZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudGFiLWJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudGFiLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCAzMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuZXhpdGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbi5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTAlKSIsImhzbCgxNDIgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgOTMlKSIsImhzbCgwIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGs9dGhpcy5hY3RpdmVUYWJJZD90aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBNYWluIHRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCI+CiAgICAgICAgICAke2s/d2AKICAgICAgICAgICAgPGRpdiBpZD0iYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+Tm8gdGVybWluYWwgb3Blbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gVmVydGljYWwgdGFiIGJhciBvbiB0aGUgcmlnaHQgLS0+CiAgICAgICAgJHt0aGlzLnNob3dUYWJCYXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnRhYkJhcldpZHRofXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItYmFyLXRpdGxlIj5UZXJtaW5hbHM8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT0iTmV3IFRlcm1pbmFsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKFM9PndgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC10YWIgJHtTLmlkPT09dGhpcy5hY3RpdmVUYWJJZD8iYWN0aXZlIjoiIn0gJHtTLmV4aXRlZD8iZXhpdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnN3aXRjaFRvVGFiKFMuaWQpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgLmljb249JHtTLmljb25OYW1lfQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiLWljb24gJHtTLnByb2Nlc3MmJiFTLmV4aXRlZD8icnVubmluZyI6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbGFiZWwiPiR7Uy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICR7Uy5leGl0ZWQ/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhpdC1iYWRnZSAke1MuZXhpdENvZGU9PT0wPyJzdWNjZXNzIjoiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICAgICAke1MuZXhpdENvZGV9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke1MuY2xvc2VhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7ST0+dGhpcy5oYW5kbGVUYWJDbG9zZShJLFMuaWQpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmlzQnJpZ2h0PWsudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249ay50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShSPT57dGhpcy5pc0JyaWdodD1SLHRoaXMudGFiTWFuYWdlci51cGRhdGVBbGxUaGVtZXMoUil9KTtsZXQgUz1Rci5nZXRJbnN0YW5jZSgpLFtJLFBdPWF3YWl0IFByb21pc2UuYWxsKFtTLmxvYWRYdGVybSgpLFMubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoSSxQKSxhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7bGV0IGs9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO2smJnRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGspLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgaGFuZGxlQWRkVGFiKCl7YXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWhhbmRsZVRhYkNsb3NlKGssUyl7ay5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlVGFiKFMpfXN3aXRjaFRvVGFiKGspe2lmKGs9PT10aGlzLmFjdGl2ZVRhYklkKXJldHVybjtsZXQgUz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKGspO2lmKCFTKXJldHVybjtsZXQgST10aGlzLmFjdGl2ZVRhYklkO3RoaXMuYWN0aXZlVGFiSWQmJnRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSx0aGlzLmFjdGl2ZVRhYklkPWssdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zd2l0Y2hlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDprLHByZXZpb3VzVGFiSWQ6SX19KSl9KX1kZXRhY2hBY3RpdmVUZXJtaW5hbCgpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtrJiYoay5pbm5lckhUTUw9IiIpfWF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoayl7bGV0IFM9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO1MmJih0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoUyksUy5pbm5lckhUTUw9IiIsay50ZXJtaW5hbC5vcGVuKFMpLGsuZml0QWRkb24uZml0KCksay50ZXJtaW5hbC5mb2N1cygpKX1oYW5kbGVSZXNpemUoKXtpZih0aGlzLmFjdGl2ZVRhYklkKXtsZXQgaz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpO2smJmsuZml0QWRkb24uZml0KCl9fWFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihrLFMsST1bXSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe2sudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksay50ZXJtaW5hbC53cml0ZShgXHUyNzRDIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUuXHIKYCksay50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpO3JldHVybn10cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8KGsudGVybWluYWwud3JpdGUoYEluaXRpYWxpemluZyBlbnZpcm9ubWVudC4uLlxyCmApLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpKTtsZXQgUD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKFMsSSk7UC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShLPT57ay50ZXJtaW5hbC53cml0ZShLKX0sIndyaXRlIil9KSk7bGV0IFI9UC5pbnB1dC5nZXRXcml0ZXIoKTtrLnRlcm1pbmFsLm9uRGF0YShLPT57Ui53cml0ZShLKX0pLHRoaXMudGFiTWFuYWdlci5zZXRUYWJQcm9jZXNzKGsuaWQsUCxSKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSxQLmV4aXQudGhlbihLPT57dGhpcy5oYW5kbGVQcm9jZXNzRXhpdChrLmlkLEspfSl9Y2F0Y2goUCl7ay50ZXJtaW5hbC53cml0ZSgiXHgxQlszMW0iKSxrLnRlcm1pbmFsLndyaXRlKGBcdTI3NEMgRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6ICR7UH1ccgpgKSxrLnRlcm1pbmFsLndyaXRlKCJceDFCWzBtIiksY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6IixQKX19YXN5bmMgZ2V0U2hlbGxDb21tYW5kKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJiF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5JiZhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Py5nZXRTaGVsbENvbW1hbmQ/YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5nZXRTaGVsbENvbW1hbmQoKTp7Y29tbWFuZDoianNoIixsYWJlbDoianNoIixwcm9tcHQ6In4vIn19aGFuZGxlUHJvY2Vzc0V4aXQoayxTKXtsZXQgST10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKGspO2lmKCFJKXJldHVybjt0aGlzLnRhYk1hbmFnZXIubWFya1RhYkV4aXRlZChrLFMpO2xldCBQPVM9PT0wP2BccgpceDFCWzMybVtQcm9jZXNzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHldXHgxQlswbVxyCmA6YFxyClx4MUJbMzFtW1Byb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAke1N9XVx4MUJbMG1ccgpgO0kudGVybWluYWwud3JpdGUoUCksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvY2Vzcy1jb21wbGV0ZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDprLGV4aXRDb2RlOlN9fSkpLEkuY2xvc2VhYmxlJiZ0aGlzLnNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoayxJLmxhYmVsLFMpfWFzeW5jIHNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoayxTLEkpe2xldCBQPUk9PT0wOyhhd2FpdCB0aGlzLnNob3dBY3Rpb25iYXIoe21lc3NhZ2U6UD9gIiR7U30iIGNvbXBsZXRlZC4gQ2xvc2UgdGFiP2A6YCIke1N9IiBleGl0ZWQgKGNvZGUgJHtJfSkuIENsb3NlIHRhYj9gLHR5cGU6UD8iaW5mbyI6Indhcm5pbmciLGljb246UD8ibHVjaWRlOmNoZWNrQ2lyY2xlIjoibHVjaWRlOmFsZXJ0VHJpYW5nbGUiLGFjdGlvbnM6W3tpZDoiY2xvc2UiLGxhYmVsOiJDbG9zZSBUYWIiLHByaW1hcnk6ITB9LHtpZDoia2VlcCIsbGFiZWw6IktlZXAgT3BlbiJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJjbG9zZSJ9LGRpc21pc3NpYmxlOiEwfSkpLmFjdGlvbklkPT09ImNsb3NlIiYmdGhpcy5jbG9zZVRhYihrKX1hc3luYyBjcmVhdGVTaGVsbFRhYihrKXtsZXQgUz1hd2FpdCB0aGlzLmdldFNoZWxsQ29tbWFuZCgpLEk9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOmt8fGAke1MubGFiZWx8fFMuY29tbWFuZH0gJHt0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKSsxfWAsY2xvc2VhYmxlOnRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPjB9LHRoaXMuaXNCcmlnaHQpO3JldHVybiB0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLnN3aXRjaFRvVGFiKEkuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIoSSxTLmNvbW1hbmQsUy5hcmdzfHxbXSksdGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCk9PT0xJiZ0aGlzLnNldHVwQ29tbWFuZCYmKGF3YWl0IHRoaXMud2FpdEZvclByb21wdChJLnRlcm1pbmFsLFMucHJvbXB0fHwifi8iKSxJLmlucHV0V3JpdGVyJiZJLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6SS5pZH19KSksSS5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKGspe2xldCBTPXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoayx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksay5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKFMuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsay5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihTLGsuY29tbWFuZCxrLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOlMuaWR9fSkpLFMuaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihrKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihrKT8odGhpcy5zd2l0Y2hUb1RhYihrKSwhMCk6ITF9Y2xvc2VUYWIoayl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighU3x8IVMuY2xvc2VhYmxlKXJldHVybiExO2lmKGs9PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgST10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFA9SS5maW5kSW5kZXgoSz0+Sy5pZD09PWspLFI9SVtQKzFdfHxJW1AtMV07Uj90aGlzLnN3aXRjaFRvVGFiKFIuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKGspLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6a319KSksITB9d3JpdGVUb1RhYihrLFMpe2xldCBJPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoayk7cmV0dXJuIEk/KEkudGVybWluYWwud3JpdGUoUyksITApOiExfXNlbmRJbnB1dFRvVGFiKGssUyl7bGV0IEk9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtyZXR1cm4hSXx8IUkuaW5wdXRXcml0ZXI/ITE6KEkuaW5wdXRXcml0ZXIud3JpdGUoUyksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoayl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhrKX1hc3luYyB3YWl0Rm9yUHJvbXB0KGssUyl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgUD1pKCgpPT57bGV0IFI9ay5idWZmZXIuYWN0aXZlO2ZvcihsZXQgSz0wO0s8Ui5sZW5ndGg7SysrKXtsZXQgVj1SLmdldExpbmUoSyk7aWYoViYmVi50cmFuc2xhdGVUb1N0cmluZygpLmluY2x1ZGVzKFMpKXtzZXRUaW1lb3V0KCgpPT57SSgpfSwxMDApO3JldHVybn19c2V0VGltZW91dChQLDEwMCl9LCJjaGVja1Byb21wdCIpO1AoKX0pfWFzeW5jIHNldEVudmlyb25tZW50VmFyaWFibGVzKGspe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRocm93IG5ldyBFcnJvcigiTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IGF2YWlsYWJsZSIpO2xldCBTPSIiO2ZvcihsZXQgSSBpbiBrKVMrPWBleHBvcnQgJHtJfT0iJHtrW0ldfSIKYDthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgiL3NvdXJjZS5lbnYiLFMpfWdldEV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9c3RhdGlje1ZuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBBcnQsTnJ0LENnYSxUZ2EsJGdhLERnYSxMZ2E9ZygoKT0+e3BlKCk7dXYoKTt4aCgpO29uZSgpO3duZSgpO2JuZSgpO0E4KCk7UWNlKCk7QXJ0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxOcnQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LENnYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtBcnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CiAgICBgXTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoiZmFVc2VycyIsZGVzY3JpcHRpb246IisxNSUgZnJvbSBsYXN0IHdlZWsiLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJwYWdldmlld3MiLHRpdGxlOiJQYWdlIFZpZXdzIix2YWx1ZTo1NjcwMCx0eXBlOiJudW1iZXIiLGljb246ImZhRXllIixkZXNjcmlwdGlvbjoiNTYuN2sgdG90YWwgdmlld3MiLGNvbG9yOiIjM2I4MmY2In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZTo4OSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoiZmFTZXJ2ZXIiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjkwLGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UgVGltZSIsdmFsdWU6My4yLHVuaXQ6InMiLHR5cGU6Im51bWJlciIsaWNvbjoiZmFDbG9jayIsZGVzY3JpcHRpb246Ii0wLjVzIGltcHJvdmVtZW50Iixjb2xvcjoiI2Y1OWUwYiJ9LHtpZDoicmV2ZW51ZSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6NDg1MjAsdW5pdDoiJCIsdHlwZToidHJlbmQiLGljb246ImZhRG9sbGFyU2lnbiIsZGVzY3JpcHRpb246Iis4LjIlIGdyb3d0aCIsY29sb3I6IiMyMmM1NWUiLHRyZW5kRGF0YTpbMzVlMywzOGUzLDM3NTAwLDQxZTMsMzk4MDAsNDJlMyw0NDEwMCw0MzIwMCw0NTYwMCw0NzEwMCw0NjgwMCw0ODUyMF19LHtpZDoidHJhZmZpYyIsdGl0bGU6IlRyYWZmaWMgVHJlbmQiLHZhbHVlOjE2ODAsdHlwZToidHJlbmQiLGljb246ImZhQ2hhcnRMaW5lIixkZXNjcmlwdGlvbjoiTGFzdCA3IGRheXMiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzEyMDAsMTM1MCwxMTAwLDE0NTAsMTYwMCwxNTUwLDE2ODBdfV07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIHRvIHlvdXIgYXBwbGljYXRpb24gZGFzaGJvYXJkLiBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBtZXRyaWNzOjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke289Pntjb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixvLmRldGFpbCl9fQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxoMiBzdHlsZT0ibWFyZ2luLXRvcDogNDBweDsiPlJlY2VudCBBY3Rpdml0eTwvaDI+CiAgICAgIDxwPkJlbG93IGlzIGEgbG9nIG9mIHJlY2VudCBzeXN0ZW0gZXZlbnRzIGFuZCB1c2VyIGFjdGl2aXR5IHRvIGRlbW9uc3RyYXRlIHNjcm9sbGFibGUgY29udGVudC48L3A+CgogICAgICAke1t7dGltZToiMiBtaW4gYWdvIixldmVudDoiVXNlciBqb2huQGV4YW1wbGUuY29tIGxvZ2dlZCBpbiBmcm9tIDE5Mi4xNjguMS40MiIsdHlwZToiaW5mbyJ9LHt0aW1lOiI1IG1pbiBhZ28iLGV2ZW50OiJEZXBsb3ltZW50IHYzLjUyLjEgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBvbiBwcm9kdWN0aW9uIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjEyIG1pbiBhZ28iLGV2ZW50OiJEYXRhYmFzZSBiYWNrdXAgZmluaXNoZWQgXHUyMDE0IDIuNCBHQiBjb21wcmVzc2VkIix0eXBlOiJpbmZvIn0se3RpbWU6IjE4IG1pbiBhZ28iLGV2ZW50OiJTU0wgY2VydGlmaWNhdGUgcmVuZXdlZCBmb3IgYXBpLmV4YW1wbGUuY29tIChleHBpcmVzIDIwMjctMDQtMDMpIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjI1IG1pbiBhZ28iLGV2ZW50OiJNZW1vcnkgdXNhZ2Ugc3Bpa2Ugb24gd29ya2VyLTAzICg5MiUpIFx1MjAxNCBhdXRvLXNjYWxlZCB0byA0IGluc3RhbmNlcyIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIzMSBtaW4gYWdvIixldmVudDoiTmV3IHVzZXIgcmVnaXN0cmF0aW9uOiBzYXJhaEBjb21wYW55LmlvIix0eXBlOiJpbmZvIn0se3RpbWU6IjQ1IG1pbiBhZ28iLGV2ZW50OidTY2hlZHVsZWQgam9iICJjbGVhbnVwLXRlbXAtZmlsZXMiIGNvbXBsZXRlZCBcdTIwMTQgcmVtb3ZlZCAxLDI0NyBmaWxlcycsdHlwZToiaW5mbyJ9LHt0aW1lOiIxIGhvdXIgYWdvIixldmVudDoiQVBJIHJhdGUgbGltaXQgcmVhY2hlZCBmb3IgY2xpZW50IGFwcC1tb2JpbGUtaW9zICg0MjkgcmVzcG9uc2VzKSIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIxLjUgaG91cnMgYWdvIixldmVudDoiQ0ROIGNhY2hlIHB1cmdlZCBmb3IgL2Fzc2V0cy8qIFx1MjAxNCAzNDAgb2JqZWN0cyBpbnZhbGlkYXRlZCIsdHlwZToiaW5mbyJ9LHt0aW1lOiIyIGhvdXJzIGFnbyIsZXZlbnQ6IkZhaWxlZCBsb2dpbiBhdHRlbXB0IGZvciBhZG1pbkBleGFtcGxlLmNvbSBmcm9tIDIwMy4wLjExMy41MCAoYmxvY2tlZCkiLHR5cGU6ImVycm9yIn0se3RpbWU6IjIuNSBob3VycyBhZ28iLGV2ZW50OiJXZWJob29rIGRlbGl2ZXJ5IHRvIGh0dHBzOi8vaG9va3Muc2xhY2suY29tIHN1Y2NlZWRlZCAoMjAwIE9LKSIsdHlwZToiaW5mbyJ9LHt0aW1lOiIzIGhvdXJzIGFnbyIsZXZlbnQ6J0Nyb24gam9iICJnZW5lcmF0ZS1yZXBvcnRzIiBzdGFydGVkIFx1MjAxNCBwcm9jZXNzaW5nIFExIDIwMjYgZGF0YScsdHlwZToiaW5mbyJ9LHt0aW1lOiIzLjUgaG91cnMgYWdvIixldmVudDoiTG9hZCBiYWxhbmNlciBoZWFsdGggY2hlY2s6IGFsbCA4IG5vZGVzIGhlYWx0aHkiLHR5cGU6InN1Y2Nlc3MifSx7dGltZToiNCBob3VycyBhZ28iLGV2ZW50OiJETlMgcHJvcGFnYXRpb24gY29tcGxldGUgZm9yIG5ldyBzdWJkb21haW4gc3RhZ2luZy5leGFtcGxlLmNvbSIsdHlwZToic3VjY2VzcyJ9XS5tYXAobz0+d2AKICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICI+CiAgICAgICAgICA8c3BhbiBzdHlsZT0iCiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1NSUpIiwiaHNsKDAgMCUgNDUlKSIpfTsKICAgICAgICAgICI+JHtvLnRpbWV9PC9zcGFuPgogICAgICAgICAgPHNwYW4gc3R5bGU9IgogICAgICAgICAgICBjb2xvcjogJHtvLnR5cGU9PT0iZXJyb3IiP2guYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSkiLCJoc2woMCA3MiUgNjUlKSIpOm8udHlwZT09PSJ3YXJuaW5nIj9oLmJkVGhlbWUoImhzbCgyNSA5NSUgNTAlKSIsImhzbCgyNSA5NSUgNjMlKSIpOm8udHlwZT09PSJzdWNjZXNzIj9oLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIik6aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICAgICI+JHtvLmV2ZW50fTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXN0YXRpY3tOcnQoYSx0KX19O3JldHVybiBuPWF9KSgpLFRnYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1hbmFseXRpY3MiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdBbmFseXRpY3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtBcnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPkFuYWx5dGljczwvaDE+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGFuYWx5dGljcyB2aWV3LiBZb3UgY2FuIGFkZCBjaGFydHMgYW5kIG1ldHJpY3MgaGVyZS48L3A+CiAgICBgfXN0YXRpY3tOcnQoYSx0KX19O3JldHVybiBuPWF9KSgpLCRnYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vVmlld1NldHRpbmdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7QXJ0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMWExYTFhIil9OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+Q29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24gc2V0dGluZ3MgYmVsb3c6PC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBwTmFtZSIgbGFiZWw9IkFwcGxpY2F0aW9uIE5hbWUiIHZhbHVlPSJNeSBBcHAiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwaUVuZHBvaW50IiBsYWJlbD0iQVBJIEVuZHBvaW50IiB2YWx1ZT0iaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJlbnZpcm9ubWVudCIKICAgICAgICAgICAgbGFiZWw9IkVudmlyb25tZW50IgogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJEZXZlbG9wbWVudCIsa2V5OiJkZXYifSx7b3B0aW9uOiJTdGFnaW5nIixrZXk6InN0YWdpbmcifSx7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVBbmFseXRpY3MiIGxhYmVsPSJFbmFibGUgQW5hbHl0aWNzIiB2YWx1ZT0iZmFsc2UiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNhdmUgR2VuZXJhbCBTZXR0aW5nczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24iPgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD4KICAgICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0aGVtZSIKICAgICAgICAgICAgICBsYWJlbD0iVGhlbWUiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IixrZXk6ImxpZ2h0In0se29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn0se29wdGlvbjoiQXV0byIsa2V5OiJhdXRvIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkRhcmsiLGtleToiZGFyayJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0ibGFuZ3VhZ2UiCiAgICAgICAgICAgICAgbGFiZWw9Ikxhbmd1YWdlIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn0se29wdGlvbjoiR2VybWFuIixrZXk6ImRlIn0se29wdGlvbjoiU3BhbmlzaCIsa2V5OiJlcyJ9LHtvcHRpb246IkZyZW5jaCIsa2V5OiJmciJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iY29tcGFjdE1vZGUiIGxhYmVsPSJDb21wYWN0IE1vZGUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siUmVhbC10aW1lIiwiRGFpbHkgRGlnZXN0IiwiV2Vla2x5IFN1bW1hcnkiLCJOZXZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUmVhbC10aW1lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbEZyZXF1ZW5jeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InB1c2hOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIFB1c2ggTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0ic291bmRBbGVydHMiIGxhYmVsPSJQbGF5IFNvdW5kIGZvciBBbGVydHMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tOcnQoYSx0KX19O3JldHVybiBuPWF9KSgpLERnYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICB0ZXJtaW5hbFNldHVwQ29tbWFuZD0iZWNobyAnV2VsY29tZSB0byB0aGUgdGVybWluYWwhJyIKICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7W3tpZDoidXBkYXRlIix0eXBlOiJpbmZvIixtZXNzYWdlOiJBIG5ldyB2ZXJzaW9uICh2My41MC4wKSBpcyBhdmFpbGFibGUgd2l0aCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcy4iLGRpc21pc3NpYmxlOiEwLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIlVwZGF0aW5nLi4uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJPcGVuaW5nIHJlbGVhc2Ugbm90ZXMuLi4iKSwiYWN0aW9uIil9XX0se2lkOiJtYWludGVuYW5jZSIsdHlwZToid2FybmluZyIsbWVzc2FnZToiU2NoZWR1bGVkIG1haW50ZW5hbmNlIHdpbmRvdzogQXByaWwgNSwgMjAyNiAwMjowMFx1MjAxMzA2OjAwIFVUQy4gU29tZSBzZXJ2aWNlcyBtYXkgYmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuIixkaXNtaXNzaWJsZTohMH0se2lkOiJjcml0aWNhbCIsdHlwZToiZXJyb3IiLG1lc3NhZ2U6IllvdXIgU1NMIGNlcnRpZmljYXRlIGV4cGlyZXMgaW4gMyBkYXlzLiBSZW5ldyBub3cgdG8gYXZvaWQgc2VydmljZSBkaXNydXB0aW9uLiIsZGlzbWlzc2libGU6ITEsYWN0aW9uczpbe25hbWU6IlJlbmV3IENlcnRpZmljYXRlIixpY29uTmFtZToibHVjaWRlOnNoaWVsZENoZWNrIixhY3Rpb246aSgoKT0+YWxlcnQoIlJlbmV3aW5nIGNlcnRpZmljYXRlLi4uIiksImFjdGlvbiIpfV19XX0KICAgICAgLnZpZXdUYWJzPSR7W3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsZWxlbWVudDpDZ2F9LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixlbGVtZW50OlRnYSxzdWJWaWV3czpbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixlbGVtZW50OlRnYX0se25hbWU6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGVsZW1lbnQ6Q2dhfV19LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsc3ViVmlld3M6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGVsZW1lbnQ6JGdhfSx7bmFtZToiQmlsbGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpjcmVkaXRDYXJkIixlbGVtZW50OiRnYX1dfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7cz0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIscy5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyICRnLHRjLEVnYSxQZ2E9ZygoKT0+e0xnYSgpO3BlKCk7VWEoKTtwdCgpOyRnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx0Yz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRWdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtYXBwZGFzaCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2ltcGxlQXBwRGFzaCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCAkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W1koKV0sTj1bWSgpXSwkZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5uYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksJGcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmlld1RhYnMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52aWV3VGFicywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZpZXdUYWJzPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSwkZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsU2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnRlcm1pbmFsU2V0dXBDb21tYW5kLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudGVybWluYWxTZXR1cENvbW1hbmQ9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLCRnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2xvYmFsTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imdsb2JhbE1lc3NhZ2VzImluIEUsImhhcyIpLGdldDppKEU9PkUuZ2xvYmFsTWVzc2FnZXMsImdldCIpLHNldDppKChFLEgpPT57RS5nbG9iYWxNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksJGcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkVmlldyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkVmlldywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNlbGVjdGVkVmlldz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksJGcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfYWN0aXZlTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Il9hY3RpdmVNZXNzYWdlcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLl9hY3RpdmVNZXNzYWdlcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLl9hY3RpdmVNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksJGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1EZ2E7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT10Yyh0aGlzLG8sIkFwcGxpY2F0aW9uIERhc2hib2FyZCIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoJCl7dGhpcy4jZT0kfSN0PSh0Yyh0aGlzLGwpLHRjKHRoaXMsZCxbXSkpO2dldCB2aWV3VGFicygpe3JldHVybiB0aGlzLiN0fXNldCB2aWV3VGFicygkKXt0aGlzLiN0PSR9I2E9KHRjKHRoaXMsdSksdGModGhpcyxiLCdlY2hvICJUZXJtaW5hbCByZWFkeSInKSk7Z2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCQpe3RoaXMuI2E9JH0jcz0odGModGhpcyx2KSx0Yyh0aGlzLG0sW10pKTtnZXQgZ2xvYmFsTWVzc2FnZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZ2xvYmFsTWVzc2FnZXMoJCl7dGhpcy4jcz0kfSNpPSh0Yyh0aGlzLGYpLHRjKHRoaXMsTSx2b2lkIDApKTtnZXQgc2VsZWN0ZWRWaWV3KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkVmlldygkKXt0aGlzLiNpPSR9I3I9KHRjKHRoaXMseiksdGModGhpcyxDLFtdKSk7Z2V0IF9hY3RpdmVNZXNzYWdlcygpe3JldHVybiB0aGlzLiNyfXNldCBfYWN0aXZlTWVzc2FnZXMoJCl7dGhpcy4jcj0kfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgbWluLWNvbnRlbnQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSIsIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYXBwTmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI2MjYyNiIsIiNlNWU1ZTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgc3BhbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIC5jaGV2cm9uIHsKICAgICAgICBmbGV4OiAwIDAgYXV0bzsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzOmhvdmVyIC5jaGV2cm9uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzLmdyb3VwQWN0aXZlIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjoKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93cyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLXRvcCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLWJvdHRvbSAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuc3ViVmlld3MuZXhwYW5kZWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3czo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy5leHBhbmRlZDo6YmVmb3JlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc3ViVmlld3MtaW5uZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc3ViIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIuc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTEycHg7CiAgICAgIH0KCiAgICAgIC5hcHBBY3Rpb25zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDYwJSAvIDAuMDgpIiwiaHNsKDAgODQlIDYwJSAvIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYXBwY29udGVudCB7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIGJvdHRvbTogMjRweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuYXBwY29udGVudDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gYm90dG9tLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC04cHg7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gdG9wLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgei1pbmRleDogMTE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwoKICAgICAgfQoKICAgICAgLmNvbnRyb2w6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuY29udHJvbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY29udHJvbC5zdGF0dXMtdGVybWluYWwgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogR2xvYmFsIE1lc3NhZ2UgQmFubmVycyAqLwogICAgICAubWVzc2FnZUJhbm5lckFyZWEgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlRG93biAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci5kaXNtaXNzaW5nIHsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlVXAgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGJhbm5lclNsaWRlRG93biB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgYmFubmVyU2xpZGVVcCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTUpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMTgpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3MgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGluZm8gKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NyUpIiwiaHNsKDIxMCA1MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgNzAlIDMwJSkiLCJoc2woMjEwIDcwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzAwODRmZjsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci1pbmZvIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDg0ZmY7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogc3VjY2VzcyAqLwogICAgICAubWVzc2FnZUJhbm5lci1zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTclKSIsImhzbCgxNDIgMzAlIDEwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDUwJSAyNSUpIiwiaHNsKDE0MiA1MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMyMmM1NWU7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItc3VjY2VzcyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IHdhcm5pbmcgKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MCUgOTclKSIsImhzbCgzOCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA2MCUgMjUlKSIsImhzbCgzOCA2MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmNTllMGI7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGVycm9yICovCiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDk3JSkiLCJoc2woMCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDYwJSAzMCUpIiwiaHNsKDAgNjAlIDgwJSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZWY0NDQ0OwogICAgICB9CiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB0b3A6IHZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHggLSB2YXIoLS1iYW5uZXItYXJlYS1oZWlnaHQsIDBweCkpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24td3JhcHBlciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmxheW91dEdyaWQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBOYW1lIj4ke3RoaXMubmFtZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TmF2aWdhdGlvbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicyI+CiAgICAgICAgICAgICAgJHt0aGlzLnZpZXdUYWJzLm1hcCgkPT57bGV0IEU9ISEkLnN1YlZpZXdzPy5sZW5ndGgsSD1FJiZ0aGlzLmlzR3JvdXBBY3RpdmUoJCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09JD8ic2VsZWN0ZWQiOiIifSAke0U/Imhhc1N1YnMiOiIifSAke0g/Imdyb3VwQWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubG9hZFZpZXcoJCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAkeyQuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7JC5pY29uTmFtZS5pbmNsdWRlcygiOiIpPyQuaWNvbk5hbWU6YGx1Y2lkZTokeyQuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpmaWxlIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHskLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICR7RT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgJHtFP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InN1YlZpZXdzICR7SD8iZXhwYW5kZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID9pbmVydD0keyFIfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YlZpZXdzLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgJHskLnN1YlZpZXdzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiBzdWIgJHt0aGlzLnNlbGVjdGVkVmlldz09PWs/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke1M9PntTLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubG9hZFZpZXcoayl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2suaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2suaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9rLmljb25OYW1lOmBsdWNpZGU6JHtrLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpkb3QifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7ay5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBBY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ291dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bG9nT3V0In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5fYWN0aXZlTWVzc2FnZXMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlQmFubmVyQXJlYSI+CiAgICAgICAgICAke3RoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcCgkPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2VCYW5uZXIgbWVzc2FnZUJhbm5lci0keyQudHlwZX0iCiAgICAgICAgICAgICAgZGF0YS1tZXNzYWdlLWlkPSIkeyQuaWR9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmdldE1lc3NhZ2VJY29uKCQpfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2VCYW5uZXItdGV4dCI+JHskLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICR7JC5hY3Rpb25zPy5sZW5ndGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7JC5hY3Rpb25zLm1hcChFPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9uIiBAY2xpY2s9JHsoKT0+RS5hY3Rpb24oKX0+CiAgICAgICAgICAgICAgICAgICAgICAke0UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke0UuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9FLmljb25OYW1lOmBsdWNpZGU6JHtFLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtFLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHskLmRpc21pc3NpYmxlIT09ITE/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItZGlzbWlzcyIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTWVzc2FnZSgkLmlkKX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp4In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBjb250ZW50Ij4KICAgICAgICAgIDwhLS0gQ29udGVudCBnb2VzIGhlcmUgLS0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy1jb25uZWN0ZWQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6d2lmaSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Q29ubmVjdGVkPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy10ZXJtaW5hbCIgQGNsaWNrPSR7dGhpcy5sYXVuY2hUZXJtaW5hbH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp0ZXJtaW5hbCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+VGVybWluYWw8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgkKXtsZXQgRT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtpZihzdXBlci5maXJzdFVwZGF0ZWQoJCksdGhpcy52aWV3VGFicyYmdGhpcy52aWV3VGFicy5sZW5ndGg+MCl7bGV0IEg9dGhpcy5zZWxlY3RlZFZpZXd8fHRoaXMudmlld1RhYnNbMF07YXdhaXQgdGhpcy5sb2FkVmlldyhIKX19d2lsbFVwZGF0ZSgkKXtpZigkLmhhcygiZ2xvYmFsTWVzc2FnZXMiKSl7bGV0IEU9bmV3IFNldCh0aGlzLmdsb2JhbE1lc3NhZ2VzLm1hcChSPT5SLmlkKSksSD1uZXcgU2V0KHRoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChSPT5SLmlkKSksaz10aGlzLmdsb2JhbE1lc3NhZ2VzLmZpbHRlcihSPT4hSC5oYXMoUi5pZCkpLFM9JC5nZXQoImdsb2JhbE1lc3NhZ2VzIil8fFtdLEk9bmV3IFNldChTLm1hcChSPT5SLmlkKSksUD1uZXcgU2V0KFsuLi5JXS5maWx0ZXIoUj0+IUUuaGFzKFIpKSk7dGhpcy5fYWN0aXZlTWVzc2FnZXM9Wy4uLnRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihSPT4hUC5oYXMoUi5pZCkpLC4uLmtdfX11cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy51cGRhdGVCYW5uZXJPZmZzZXQoKX11cGRhdGVCYW5uZXJPZmZzZXQoKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tZXNzYWdlQmFubmVyQXJlYSIpLEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLEg9JD8kLm9mZnNldEhlaWdodDowO0U/LnN0eWxlLnNldFByb3BlcnR5KCItLWJhbm5lci1hcmVhLWhlaWdodCIsYCR7SH1weGApfSl9Z2V0TWVzc2FnZUljb24oJCl7cmV0dXJuICQuaWNvbj8kLmljb246e2luZm86Imx1Y2lkZTppbmZvIixzdWNjZXNzOiJsdWNpZGU6Y2lyY2xlQ2hlY2siLHdhcm5pbmc6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0IixlcnJvcjoibHVjaWRlOmNpcmNsZVgifVskLnR5cGVdfWFkZE1lc3NhZ2UoJCl7bGV0IEU9JC5pZHx8YG1zZy0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YCxIPXtkaXNtaXNzaWJsZTohMCwuLi4kLGlkOkV9O3JldHVybiB0aGlzLl9hY3RpdmVNZXNzYWdlcz1bLi4udGhpcy5fYWN0aXZlTWVzc2FnZXMsSF0sRX1yZW1vdmVNZXNzYWdlKCQpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtbWVzc2FnZS1pZD0iJHskfSJdYCk7RT8oRS5jbGFzc0xpc3QuYWRkKCJkaXNtaXNzaW5nIiksRS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLCgpPT57dGhpcy5fYWN0aXZlTWVzc2FnZXM9dGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEg9PkguaWQhPT0kKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZXNzYWdlLWRpc21pc3MiLHtkZXRhaWw6e2lkOiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LHtvbmNlOiEwfSkpOnRoaXMuX2FjdGl2ZU1lc3NhZ2VzPXRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihIPT5ILmlkIT09JCl9Y2xlYXJNZXNzYWdlcygpe3RoaXMuX2FjdGl2ZU1lc3NhZ2VzPVtdfWN1cnJlbnRUZXJtaW5hbD0odGModGhpcyxfKSxudWxsKTthc3luYyBsYXVuY2hUZXJtaW5hbCgpe2xldCAkPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHRoaXMuY3VycmVudFRlcm1pbmFsKXthd2FpdCB0aGlzLmNsb3NlVGVybWluYWwoKTtyZXR1cm59bGV0IEU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDpIfT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ob1EoKSx6Z2EpKSxrPW5ldyBIO3JldHVybiBrLnNldHVwQ29tbWFuZD10aGlzLnRlcm1pbmFsU2V0dXBDb21tYW5kLHRoaXMuY3VycmVudFRlcm1pbmFsPWssRS5hcHBlbmRDaGlsZChrKSxrLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsay5zdHlsZS56SW5kZXg9IjEwIixrLnN0eWxlLnRvcD0idmFyKC0tYmFubmVyLWFyZWEtaGVpZ2h0LCAwcHgpIixrLnN0eWxlLmxlZnQ9IjI0MHB4IixrLnN0eWxlLnJpZ2h0PSIwcHgiLGsuc3R5bGUuaGVpZ2h0PSJhdXRvIixrLnN0eWxlLmJvdHRvbT0iMjRweCIsay5zdHlsZS5vcGFjaXR5PSIwIixrLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixrLnN0eWxlLnRyYW5zaXRpb249ImFsbCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIixrLnN0eWxlLmJveFNoYWRvdz0iMCAyNXB4IDUwcHggLTEycHggcmdiKDAgMCAwIC8gMC41KSwgMCAwIDAgMXB4IHJnYigyNTUgMjU1IDI1NSAvIDAuMDUpIixrLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+dGhpcy5jbG9zZVRlcm1pbmFsKCkpLGF3YWl0ICQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxrLnN0eWxlLm9wYWNpdHk9IjEiLGsuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIHNjYWxlKDEpIixrfWFzeW5jIGNsb3NlVGVybWluYWwoKXtsZXQgJD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmN1cnJlbnRUZXJtaW5hbCYmKHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixhd2FpdCAkLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLmN1cnJlbnRUZXJtaW5hbC5yZW1vdmUoKSx0aGlzLmN1cnJlbnRUZXJtaW5hbD1udWxsKX1pc0dyb3VwQWN0aXZlKCQpe3JldHVybiB0aGlzLnNlbGVjdGVkVmlldz09PSQ/ITA6JC5zdWJWaWV3cz8uc29tZShFPT5FPT09dGhpcy5zZWxlY3RlZFZpZXcpPz8hMX1jdXJyZW50Vmlldzthc3luYyBsb2FkVmlldygkKXtpZighJC5lbGVtZW50JiYkLnN1YlZpZXdzPy5sZW5ndGgpe2xldCBrPSQuc3ViVmlld3MuZmluZChTPT5TLmVsZW1lbnQpO3JldHVybiBrP3RoaXMubG9hZFZpZXcoayk6dm9pZCAwfWlmKCEkLmVsZW1lbnQpcmV0dXJuO2xldCBFPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYXBwY29udGVudCIpLEg9bmV3ICQuZWxlbWVudDt0aGlzLmN1cnJlbnRWaWV3JiZ0aGlzLmN1cnJlbnRWaWV3LnJlbW92ZSgpLEUuYXBwZW5kQ2hpbGQoSCksdGhpcy5jdXJyZW50Vmlldz1ILHRoaXMuc2VsZWN0ZWRWaWV3PSQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1zZWxlY3QiLHtkZXRhaWw6e3ZpZXc6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7dGMoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIElnYT1nKCgpPT57UGdhKCl9KTt2YXIgQWdhLE5nYT1nKCgpPT57cGUoKTtBZ2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtbG9naW4gCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICBAbG9naW49JHtzPT57Y29uc29sZS5sb2coIkxvZ2luIGV2ZW50IHJlY2VpdmVkOiIscy5kZXRhaWwpO2xldCBlPXMuZGV0YWlsPy5kYXRhfHxzLmRldGFpbDtlPy51c2VybmFtZSYmZT8ucGFzc3dvcmQ/YWxlcnQoYExvZ2luIGF0dGVtcHRlZCB3aXRoOgpVc2VybmFtZTogJHtlLnVzZXJuYW1lfQpQYXNzd29yZDogJHtlLnBhc3N3b3JkfWApOmNvbnNvbGUuZXJyb3IoIkludmFsaWQgbG9naW4gZGF0YSBzdHJ1Y3R1cmU6IixzLmRldGFpbCl9fQogICAgPgogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICA8aDE+V2VsY29tZSE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgdGhlIHNsb3R0ZWQgY29udGVudCB0aGF0IGFwcGVhcnMgYWZ0ZXIgbG9naW4uPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgUmdhLFJydCxPZ2EsRmdhPWcoKCk9PntOZ2EoKTtwZSgpO3B0KCk7bnIoKTtSZ2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFJydD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sT2dhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtbG9naW4iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NpbXBsZUxvZ2luIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxSZ2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJuYW1lImluIHUsImhhcyIpLGdldDppKHU9PnUubmFtZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lm5hbWU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFJnYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPUFnYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPVJydCh0aGlzLG8sIkFwcGxpY2F0aW9uIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5zbG90Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5sb2dpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAubG9naW4taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQoY29udGVudCkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWZvcm0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7IkNyZWRlbnRpYWxzIn0+CiAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InVzZXJuYW1lIiBsYWJlbD0iVXNlcm5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IlBhc3N3b3JkIiBpc1Bhc3N3b3JkQm9vbCByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TaWduIGluPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRhaW5lciI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGQpe3N1cGVyLmZpcnN0VXBkYXRlZChkKTtsZXQgdT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7dSYmdS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGM9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2dpbiIse2RldGFpbDpjLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSkpfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgZD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxjPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO3Uuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGMuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGIuc3R5bGUub3BhY2l0eT0iMSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgZC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksYi5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxScnQodGhpcyxsKX1zdGF0aWN7UnJ0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBCZ2E9ZygoKT0+e0ZnYSgpfSk7dmFyIEhnYT1nKCgpPT57TWdhKCk7SWdhKCk7QmdhKCl9KTt2YXIgcWdhPWcoKCk9PntVYSgpfSk7dmFyIGpnYSxWZ2E9ZygoKT0+e3BlKCk7amdhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vV3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIAogICAgICAgIGJhY2tncm91bmQ6ICM4ODg4ODg7CiAgICAgIH0KICAgICAgLmxvZ3MgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgd2lkdGg6IDYwMHB4OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgLmxvZ3MgZGl2IHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgICA8ZGVlcy1zZWFyY2hiYXIKICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtpKHQ9PntsZXQgcj10LnRhcmdldC5jbG9zZXN0KCIuZGVtb1dyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiI2NoYW5nZWQiKTtyJiYoci50ZXh0Q29udGVudD1gc2VhcmNoLWNoYW5nZWQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvbkNoYW5nZWQiKX0KICAgICAgICBAc2VhcmNoLXN1Ym1pdD0ke2kodD0+e2xldCByPXQudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjc3VibWl0dGVkIik7ciYmKHIudGV4dENvbnRlbnQ9YHNlYXJjaC1zdWJtaXQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvblN1Ym1pdCIpfQogICAgICA+PC9kZWVzLXNlYXJjaGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibG9ncyI+CiAgICAgICAgPGRpdiBpZD0iY2hhbmdlZCI+c2VhcmNoLWNoYW5nZWQ6PC9kaXY+CiAgICAgICAgPGRpdiBpZD0ic3VibWl0dGVkIj5zZWFyY2gtc3VibWl0OjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIgVWdhLE9ydCxXZ2EsR2dhPWcoKCk9PntwZSgpO0cxKCk7VmdhKCk7cHQoKTtVZ2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE9ydD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sV2dhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zZWFyY2hiYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NlYXJjaGJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0sVWdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZmlsdGVycyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmZpbHRlcnMsImdldCIpLHNldDppKCh1LGMpPT57dS5maWx0ZXJzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxVZ2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1qZ2E7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSh2aC5ibHVlLGJoLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKHZoLmJsdWVBY3RpdmUsYmguYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9T3J0KHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhkKXt0aGlzLiNlPWR9c2VhcmNoSW5wdXQ9T3J0KHRoaXMsbCk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDp3YGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntkLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje09ydChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgS2dhPWcoKCk9PntHZ2EoKX0pO3ZhciBZZ2EsWmdhPWcoKCk9PntwZSgpO1lnYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICB9CgogICAgLnRva2VuLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAudG9rZW4taXRlbSB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1uYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CgogICAgLnRva2VuLXZhbHVlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zcGFjaW5nLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNwYWNpbmctYm94IHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnJhZGl1cy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnJhZGl1cy1ib3ggewogICAgICB3aWR0aDogNjBweDsKICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuc2hhZG93LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc2hhZG93LWJveCB7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICB9CgogICAgLmhlaWdodC1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuaGVpZ2h0LWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgd2lkdGg6IDEyMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXRoZW1lPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TcGFjaW5nIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc3BhY2luZy14cyB0aHJvdWdoIC0tZGVlcy1zcGFjaW5nLTN4bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eHMgKDRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnNtICg4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZCAoMTJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPmxnICgxNnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eGwgKDI0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJ4bCAoMzJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+M3hsICg0OHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9yZGVyIFJhZGl1cyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXJhZGl1cy14cyB0aHJvdWdoIC0tZGVlcy1yYWRpdXMtZnVsbAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjRweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj44cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjEycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOyI+ZnVsbDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj45OTlweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2hhZG93IEVsZXZhdGlvbiBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNoYWRvdy14cyB0aHJvdWdoIC0tZGVlcy1zaGFkb3ctbGcKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3cteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWluaW1hbDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c3VidGxlPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZWRpdW08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnByb21pbmVudDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29udHJvbCBIZWlnaHQgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSB0aHJvdWdoIC0tZGVlcy1jb250cm9sLWhlaWdodC14bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjM2cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40MHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHJhbnNpdGlvbiBEdXJhdGlvbnM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy10cmFuc2l0aW9uLWZhc3QgdGhyb3VnaCAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXIKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1mYXN0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjFzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjE1czwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvdzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4yczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjNzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtdGhlbWU+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgZHgsZjIsWGdhLFFnYT1nKCgpPT57cGUoKTtwdCgpO1pnYSgpO2R4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWGdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aGVtZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGhlbWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSx5PVtMKHt0eXBlOk9iamVjdH0pXSxkeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVNwYWNpbmciaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21TcGFjaW5nLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY3VzdG9tU3BhY2luZz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksZHgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVJhZGl1cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmN1c3RvbVJhZGl1cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVJhZGl1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksZHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjdXN0b21TaGFkb3dzImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tU2hhZG93cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVNoYWRvd3M9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLGR4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVRyYW5zaXRpb25zImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tVHJhbnNpdGlvbnMsImdldCIpLHNldDppKChfLE8pPT57Xy5jdXN0b21UcmFuc2l0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksZHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21Db250cm9sSGVpZ2h0cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbUNvbnRyb2xIZWlnaHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxkeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPVlnYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1mMih0aGlzLG8sbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhDKXt0aGlzLiNlPUN9I3Q9KGYyKHRoaXMsbCksZjIodGhpcyxkLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhDKXt0aGlzLiN0PUN9I2E9KGYyKHRoaXMsdSksZjIodGhpcyxiLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21TaGFkb3dzKEMpe3RoaXMuI2E9Q30jcz0oZjIodGhpcyx2KSxmMih0aGlzLG0sbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBjdXN0b21UcmFuc2l0aW9ucyhDKXt0aGlzLiNzPUN9I2k9KGYyKHRoaXMsZiksZjIodGhpcyxNLG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgJHt0aGlzLmdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Z2VuZXJhdGVDdXN0b21TdHlsZXMoKXtsZXQgQz1bIjpob3N0IHsiXTtpZih0aGlzLmN1c3RvbVNwYWNpbmcpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TcGFjaW5nKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVJhZGl1cylmb3IobGV0W18sT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVJhZGl1cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1yYWRpdXMtJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVNoYWRvd3MpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TaGFkb3dzKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke199OiAke099O2ApO2lmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpe2ZvcihsZXRbXyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKWlmKE8pe2xldCAkPV89PT0iZGVmYXVsdCI/ImRlZmF1bHQiOl87Qy5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7JH06ICR7T307YCl9fWlmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke199OiAke099O2ApO3JldHVybiBDLnB1c2goIn0iKSxDLmpvaW4oYApgKX1zZXRTcGFjaW5nKEMsXyl7dGhpcy5jdXN0b21TcGFjaW5nPXsuLi50aGlzLmN1c3RvbVNwYWNpbmcsW0NdOl99fXNldFJhZGl1cyhDLF8pe3RoaXMuY3VzdG9tUmFkaXVzPXsuLi50aGlzLmN1c3RvbVJhZGl1cyxbQ106X319c2V0U2hhZG93KEMsXyl7dGhpcy5jdXN0b21TaGFkb3dzPXsuLi50aGlzLmN1c3RvbVNoYWRvd3MsW0NdOl99fXNldFRyYW5zaXRpb24oQyxfKXt0aGlzLmN1c3RvbVRyYW5zaXRpb25zPXsuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zLFtDXTpffX1zZXRDb250cm9sSGVpZ2h0KEMsXyl7dGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz17Li4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyxbQ106X319Z2V0VGhlbWUoKXtyZXR1cm57Y29sb3JzOldsLmNvbG9ycyxzcGFjaW5nOnsuLi5XbC5zcGFjaW5nLC4uLnRoaXMuY3VzdG9tU3BhY2luZ30scmFkaXVzOnsuLi5XbC5yYWRpdXMsLi4udGhpcy5jdXN0b21SYWRpdXN9LHNoYWRvd3M6ey4uLldsLnNoYWRvd3MsLi4udGhpcy5jdXN0b21TaGFkb3dzfSx0cmFuc2l0aW9uczp7Li4uV2wudHJhbnNpdGlvbnMsLi4udGhpcy5jdXN0b21UcmFuc2l0aW9uc30sY29udHJvbEhlaWdodHM6ey4uLldsLmNvbnRyb2xIZWlnaHRzLC4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHN9fX1yZXNldFRvRGVmYXVsdHMoKXt0aGlzLmN1c3RvbVNwYWNpbmc9bnVsbCx0aGlzLmN1c3RvbVJhZGl1cz1udWxsLHRoaXMuY3VzdG9tU2hhZG93cz1udWxsLHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9bnVsbCx0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPW51bGx9YXBwbHlUaGVtZShDKXtDLnNwYWNpbmcmJih0aGlzLmN1c3RvbVNwYWNpbmc9Qy5zcGFjaW5nKSxDLnJhZGl1cyYmKHRoaXMuY3VzdG9tUmFkaXVzPUMucmFkaXVzKSxDLnNoYWRvd3MmJih0aGlzLmN1c3RvbVNoYWRvd3M9Qy5zaGFkb3dzKSxDLnRyYW5zaXRpb25zJiYodGhpcy5jdXN0b21UcmFuc2l0aW9ucz1DLnRyYW5zaXRpb25zKSxDLmNvbnRyb2xIZWlnaHRzJiYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1DLmNvbnRyb2xIZWlnaHRzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZjIodGhpcyx6KX1zdGF0aWN7ZjIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIEpnYT1nKCgpPT57UWdhKCl9KTt2YXIgZTdhLHQ3YSxhN2E9ZygoKT0+e3BlKCk7RnJ0KCk7ZTdhPWkoYXN5bmMgcz0+e2F3YWl0IG5ldyBQcm9taXNlKGU9Pnt3aW5kb3cuc2V0VGltZW91dCgoKT0+ZSgpLHMpfSl9LCJ3YWl0Rm9yRGVtb1N0ZXAiKSx0N2E9aSgoKT0+e2xldCBzPSExO3JldHVybiB3YAogICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxNnB4OyBwbGFjZS1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAzMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgbWF4LXdpZHRoOiA1NDBweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgTGF1bmNoZXMgdGhlIHVwZGF0ZXIgYXMgYSBzdGVwcGVyIGZsb3cuIFRoZSBmaXJzdCBzdGVwIHN0cmVhbXMgdGVybWluYWwtc3R5bGUKICAgICAgICBwcm9ncmVzcyB1cGRhdGVzIGFuZCB0aGVuIG1vdmVzIGF1dG9tYXRpY2FsbHkgdG8gdGhlIHJlYWR5IHN0ZXAuCiAgICAgIDwvcD4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2lmKCFzKXtzPSEwO3RyeXtsZXQgZT1hd2FpdCB5MWUuY3JlYXRlQW5kU2hvdyh7Y3VycmVudFZlcnNpb246IjMuNzkuMCIsdXBkYXRlZFZlcnNpb246IjMuODAuMCIsbW9yZUluZm9Vcmw6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9kZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsY2hhbmdlbG9nVXJsOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvLS9ibG9iL21haW4vY2hhbmdlbG9nLm1kIixzdWNjZXNzQWN0aW9uOiJjbG9zZSIsc3VjY2Vzc0RlbGF5TXM6MWU0fSksdD1be2xpbmU6IkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiLHBlcmNlbnRhZ2U6MTIsZGVsYXk6NTUwfSx7bGluZToiRG93bmxvYWRpbmcgc2lnbmVkIGJ1bmRsZSIscGVyY2VudGFnZTozMyxkZWxheTo3MDB9LHtsaW5lOiJWZXJpZnlpbmcgY2hlY2tzdW0iLHBlcmNlbnRhZ2U6NTEsZGVsYXk6NjUwfSx7bGluZToiQXBwbHlpbmcgdXBkYXRlIGZpbGVzIixwZXJjZW50YWdlOjc0LGRlbGF5OjgwMH0se2xpbmU6IkNsZWFuaW5nIHVwIHByZXZpb3VzIHJlbGVhc2UiLHBlcmNlbnRhZ2U6OTEsZGVsYXk6NjAwfV07ZS51cGRhdGVQcm9ncmVzcyh7c3RhdHVzVGV4dDoiQ2hlY2tpbmcgcmVsZWFzZSBtYW5pZmVzdC4uLiIsdGVybWluYWxMaW5lczpbIkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiXSxwZXJjZW50YWdlOjEyLGluZGV0ZXJtaW5hdGU6ITB9KTtmb3IobGV0W2Escl1vZiB0LmVudHJpZXMoKSlhPjAmJihlLmFwcGVuZFByb2dyZXNzTGluZShyLmxpbmUpLGUudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6ci5wZXJjZW50YWdlLHN0YXR1c1RleHQ6YCR7ci5saW5lfS4uLmB9KSksYXdhaXQgZTdhKHIuZGVsYXkpO2F3YWl0IGUubWFya1VwZGF0ZVJlYWR5KCksYXdhaXQgZTdhKDEwNTAwKX1maW5hbGx5e3M9ITF9fX19CiAgICAgID5TaG93IHVwZGF0ZXIgZmxvdzwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBlNCxVbix5MWUsRnJ0PWcoKCk9PntwZSgpO2E3YSgpO2kxZSgpO0NyKCk7ZTQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFVuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5MWU9KCgpPT57bGV0IHM9W25lKCJkZWVzLXVwZGF0ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1VwZGF0ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxlNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50VmVyc2lvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1cnJlbnRWZXJzaW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFZlcnNpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLGU0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBkYXRlZFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InVwZGF0ZWRWZXJzaW9uImluIFMsImhhcyIpLGdldDppKFM9PlMudXBkYXRlZFZlcnNpb24sImdldCIpLHNldDppKChTLEkpPT57Uy51cGRhdGVkVmVyc2lvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksZTQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3JlSW5mb1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibW9yZUluZm9VcmwiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5tb3JlSW5mb1VybCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm1vcmVJbmZvVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxlNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYW5nZWxvZ1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2hhbmdlbG9nVXJsImluIFMsImhhcyIpLGdldDppKFM9PlMuY2hhbmdlbG9nVXJsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY2hhbmdlbG9nVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxlNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN1Y2Nlc3NBY3Rpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzQWN0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksZTQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzRGVsYXlNcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0RlbGF5TXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzRGVsYXlNcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN1Y2Nlc3NEZWxheU1zPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxlNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb25MYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0FjdGlvbkxhYmVsImluIFMsImhhcyIpLGdldDppKFM9PlMuc3VjY2Vzc0FjdGlvbkxhYmVsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbkxhYmVsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxlNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXQ3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhrPXt9KXtsZXQgUz1uZXcgSDtyZXR1cm4gUy5jdXJyZW50VmVyc2lvbj1rLmN1cnJlbnRWZXJzaW9uPz8iIixTLnVwZGF0ZWRWZXJzaW9uPWsudXBkYXRlZFZlcnNpb24/PyIiLFMubW9yZUluZm9Vcmw9ay5tb3JlSW5mb1VybD8/IiIsUy5jaGFuZ2Vsb2dVcmw9ay5jaGFuZ2Vsb2dVcmw/PyIiLFMuc3VjY2Vzc0FjdGlvbj1rLnN1Y2Nlc3NBY3Rpb24/PyJjbG9zZSIsUy5zdWNjZXNzRGVsYXlNcz1rLnN1Y2Nlc3NEZWxheU1zPz8xZTQsUy5zdWNjZXNzQWN0aW9uTGFiZWw9ay5zdWNjZXNzQWN0aW9uTGFiZWw/PyIiLFMub25TdWNjZXNzQWN0aW9uPWsub25TdWNjZXNzQWN0aW9uPz9udWxsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUyksYXdhaXQgUy5zaG93KCksU30jZT1Vbih0aGlzLG8sIiIpO2dldCBjdXJyZW50VmVyc2lvbigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmVyc2lvbihrKXt0aGlzLiNlPWt9I3Q9KFVuKHRoaXMsbCksVW4odGhpcyxkLCIiKSk7Z2V0IHVwZGF0ZWRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHVwZGF0ZWRWZXJzaW9uKGspe3RoaXMuI3Q9a30jYT0oVW4odGhpcyx1KSxVbih0aGlzLGIsIiIpKTtnZXQgbW9yZUluZm9VcmwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbW9yZUluZm9Vcmwoayl7dGhpcy4jYT1rfSNzPShVbih0aGlzLHYpLFVuKHRoaXMsbSwiIikpO2dldCBjaGFuZ2Vsb2dVcmwoKXtyZXR1cm4gdGhpcy4jc31zZXQgY2hhbmdlbG9nVXJsKGspe3RoaXMuI3M9a30jaT0oVW4odGhpcyxmKSxVbih0aGlzLE0sImNsb3NlIikpO2dldCBzdWNjZXNzQWN0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN1Y2Nlc3NBY3Rpb24oayl7dGhpcy4jaT1rfSNyPShVbih0aGlzLHopLFVuKHRoaXMsQywxZTQpKTtnZXQgc3VjY2Vzc0RlbGF5TXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3VjY2Vzc0RlbGF5TXMoayl7dGhpcy4jcj1rfSNvPShVbih0aGlzLF8pLFVuKHRoaXMsJCwiIikpO2dldCBzdWNjZXNzQWN0aW9uTGFiZWwoKXtyZXR1cm4gdGhpcy4jb31zZXQgc3VjY2Vzc0FjdGlvbkxhYmVsKGspe3RoaXMuI289a31zdGVwcGVyPShVbih0aGlzLEUpLG51bGwpO3Byb2dyZXNzU3RlcD1udWxsO3Nob3dQcm9taXNlPW51bGw7b25TdWNjZXNzQWN0aW9uPW51bGw7c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2hvdygpfWFzeW5jIHNob3coKXtpZighdGhpcy5zdGVwcGVyPy5pc0Nvbm5lY3RlZCl7aWYodGhpcy5zaG93UHJvbWlzZSlyZXR1cm4gdGhpcy5zaG93UHJvbWlzZTt0aGlzLnNob3dQcm9taXNlPXRoaXMub3BlblN0ZXBwZXJGbG93KCk7dHJ5e2F3YWl0IHRoaXMuc2hvd1Byb21pc2V9ZmluYWxseXt0aGlzLnNob3dQcm9taXNlPW51bGx9fX11cGRhdGVQcm9ncmVzcyhrKXshdGhpcy5zdGVwcGVyfHwhdGhpcy5wcm9ncmVzc1N0ZXB8fHRoaXMuc3RlcHBlci51cGRhdGVQcm9ncmVzc1N0ZXAoayx0aGlzLnByb2dyZXNzU3RlcCl9YXBwZW5kUHJvZ3Jlc3NMaW5lKGspeyF0aGlzLnN0ZXBwZXJ8fCF0aGlzLnByb2dyZXNzU3RlcHx8dGhpcy5zdGVwcGVyLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoayx0aGlzLnByb2dyZXNzU3RlcCl9bWFya1VwZGF0ZUVycm9yKGspe3RoaXMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBFcnJvcjogJHtrfWApLHRoaXMudXBkYXRlUHJvZ3Jlc3Moe2luZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDprfSl9YXN5bmMgbWFya1VwZGF0ZVJlYWR5KCl7IXRoaXMuc3RlcHBlcnx8IXRoaXMucHJvZ3Jlc3NTdGVwfHwodGhpcy5zdGVwcGVyLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OiJVcGRhdGUgcmVhZHkuIn0sdGhpcy5wcm9ncmVzc1N0ZXApLHRoaXMuc3RlcHBlci5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKCJVcGRhdGUgcmVhZHkiLHRoaXMucHJvZ3Jlc3NTdGVwKSx0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRTdGVwPT09dGhpcy5wcm9ncmVzc1N0ZXAmJnRoaXMuc3RlcHBlci5nb05leHQoKSl9YXN5bmMgZGVzdHJveSgpe2xldCBrPXRoaXMuc3RlcHBlcjt0aGlzLnN0ZXBwZXI9bnVsbCx0aGlzLnByb2dyZXNzU3RlcD1udWxsLGs/LmlzQ29ubmVjdGVkJiZhd2FpdCBrLmRlc3Ryb3koKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKX1hc3luYyBvcGVuU3RlcHBlckZsb3coKXtsZXR7c3RlcHM6ayxwcm9ncmVzc1N0ZXA6U309dGhpcy5jcmVhdGVVcGRhdGVyU3RlcHMoKTt0aGlzLnByb2dyZXNzU3RlcD1TLHRoaXMuc3RlcHBlcj1hd2FpdCBheC5jcmVhdGVBbmRTaG93KHtzdGVwczprLGNhbmNlbGFibGU6ITF9KX1jcmVhdGVVcGRhdGVyU3RlcHMoKXtsZXQgaz10aGlzLmdldExpbmtNZW51T3B0aW9ucygpLFM9e3RpdGxlOiJVcGRhdGluZyB0aGUgYXBwbGljYXRpb24iLGNvbnRlbnQ6dGhpcy5yZW5kZXJQcm9ncmVzc0NvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0UHJvZ3Jlc3NMYWJlbCgpLHBlcmNlbnRhZ2U6NSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1Jvd3M6NCxzdGF0dXNUZXh0OiJQcmVwYXJpbmcgdXBkYXRlLi4uIix0ZXJtaW5hbExpbmVzOlsiUHJlcGFyaW5nIHVwZGF0ZSJdfSxtZW51T3B0aW9uczprLmxlbmd0aD4wP2s6dm9pZCAwfSxJPXt0aXRsZTp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BWZXJzaW9uICR7dGhpcy51cGRhdGVkVmVyc2lvbn0gcmVhZHlgOiJVcGRhdGUgcmVhZHkiLGNvbnRlbnQ6dGhpcy5yZW5kZXJSZWFkeUNvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKHRoaXMuZ2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpKSxwZXJjZW50YWdlOjAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNSb3dzOjIsc3RhdHVzVGV4dDp0aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXModGhpcy5nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCkpfSx2YWxpZGF0aW9uRnVuYzppKGFzeW5jKFAsUixLKT0+e2F3YWl0IHRoaXMucnVuU3VjY2Vzc0NvdW50ZG93bihQLEksSyl9LCJ2YWxpZGF0aW9uRnVuYyIpfTtyZXR1cm57c3RlcHM6W1MsSV0scHJvZ3Jlc3NTdGVwOlN9fWdldFByb2dyZXNzTGFiZWwoKXtyZXR1cm4gdGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj9gJHt0aGlzLmN1cnJlbnRWZXJzaW9ufSAtPiAke3RoaXMudXBkYXRlZFZlcnNpb259YDp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BQcmVwYXJpbmcgJHt0aGlzLnVwZGF0ZWRWZXJzaW9ufWA6IkFwcGxpY2F0aW9uIHVwZGF0ZSJ9Z2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpe3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbCh0aGlzLnN1Y2Nlc3NEZWxheU1zLzFlMykpfWdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKXtyZXR1cm4gdGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw/dGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw6dGhpcy5vblN1Y2Nlc3NBY3Rpb24/IkNvbnRpbnVpbmcgYXV0b21hdGljYWxseSI6dGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCI/IlJlbG9hZGluZyBhcHBsaWNhdGlvbiI6IkNsb3NpbmcgdXBkYXRlciJ9Z2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKGspe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBpbiAke2t9c2B9Z2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyhrKXtsZXQgUz1rPT09MT8ic2Vjb25kIjoic2Vjb25kcyI7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IGluICR7a30gJHtTfS5gfWdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBub3cuLi5gfWdldExpbmtNZW51T3B0aW9ucygpe2xldCBrPVtdO3JldHVybiB0aGlzLm1vcmVJbmZvVXJsJiZrLnB1c2goe25hbWU6Ik1vcmUgaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMub3BlbkV4dGVybmFsVXJsKHRoaXMubW9yZUluZm9VcmwpfSwiYWN0aW9uIil9KSx0aGlzLmNoYW5nZWxvZ1VybCYmay5wdXNoKHtuYW1lOiJDaGFuZ2Vsb2ciLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLm9wZW5FeHRlcm5hbFVybCh0aGlzLmNoYW5nZWxvZ1VybCl9LCJhY3Rpb24iKX0pLGt9cmVuZGVyVmVyc2lvbk1ldGEoayxTKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDRweDsgbWluLXdpZHRoOiAxMzJweDsgcGFkZGluZzogMTJweCAxNHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOyBib3JkZXItcmFkaXVzOiA4cHg7IGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOyIKICAgICAgPgogICAgICAgIDxkaXYKICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICA+CiAgICAgICAgICAke2t9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7aW5lfTsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTtgfQogICAgICAgID4KICAgICAgICAgICR7U30KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclByb2dyZXNzQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE4cHg7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICAgID4KICAgICAgICAgICAgQXBwbGljYXRpb24gdXBkYXRlCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzU7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyIKICAgICAgICAgID4KICAgICAgICAgICAgRG93bmxvYWRpbmcgYW5kIGFwcGx5aW5nIHRoZSBsYXRlc3QgcmVsZWFzZS4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj93YE1vdmluZyBmcm9tIDxzdHJvbmc+JHt0aGlzLmN1cnJlbnRWZXJzaW9ufTwvc3Ryb25nPiB0byA8c3Ryb25nPiR7dGhpcy51cGRhdGVkVmVyc2lvbn08L3N0cm9uZz4uYDp0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgUHJlcGFyaW5nIDxzdHJvbmc+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Ryb25nPiBmb3IgaW5zdGFsbGF0aW9uLmA6IlRoZSB1cGRhdGVyIGlzIGZldGNoaW5nIHRoZSBuZXdlc3QgYnVpbGQgYW5kIHByZXBhcmluZyBpdCBmb3IgaW5zdGFsbGF0aW9uLiJ9CiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbnx8dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMuY3VycmVudFZlcnNpb24/dGhpcy5yZW5kZXJWZXJzaW9uTWV0YSgiQ3VycmVudCB2ZXJzaW9uIix0aGlzLmN1cnJlbnRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj90aGlzLnJlbmRlclZlcnNpb25NZXRhKCJJbmNvbWluZyB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBBdXRvbWF0aWMgZmxvdwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyI+CiAgICAgICAgICAgIFRoZSB1cGRhdGVyIGNvbnRpbnVlcyBvbiBpdHMgb3duIG9uY2UgdGhlIG5ldyBidWlsZCBpcyBpbnN0YWxsZWQgYW5kIHZlcmlmaWVkLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJSZWFkeUNvbnRlbnQoKXtsZXQgaz10aGlzLmdldFN1Y2Nlc3NEZWxheVNlY29uZHMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxOHB4OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDZweDsiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiCiAgICAgICAgICA+CiAgICAgICAgICAgIFVwZGF0ZSBjb21wbGV0ZQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YFZlcnNpb24gPHNwYW4gc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7aW5lfTsgZm9udC1zaXplOiAwLjk1ZW07YH0+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Bhbj4gaXMgcmVhZHkgdG8gdXNlLmA6IlRoZSBuZXcgdmVyc2lvbiBpcyByZWFkeSB0byB1c2UuIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgIFRoZSBuZXcgYnVpbGQgaGFzIGJlZW4gaW5zdGFsbGVkIGFuZCB2ZXJpZmllZC4gWW91IGNhbiByZXZpZXcgcmVsZWFzZSBkZXRhaWxzIGJlbG93IHdoaWxlIHRoZSBuZXh0IGFjdGlvbiBydW5zIGF1dG9tYXRpY2FsbHkuCiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVmVyc2lvbk1ldGEoIkluc3RhbGxlZCB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBOZXh0IGFjdGlvbgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7Ij4KICAgICAgICAgICAgJHt0aGlzLmdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiPgogICAgICAgICAgICBSdW5zIGF1dG9tYXRpY2FsbHkgaW4gJHtrfSBzZWNvbmRzLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBydW5TdWNjZXNzQ291bnRkb3duKGssUyxJKXtsZXQgUD1NYXRoLm1heCgxZTMsdGhpcy5zdWNjZXNzRGVsYXlNcyksUj1EYXRlLm5vdygpO2Zvcig7IUk/LmFib3J0ZWQ7KXtsZXQgSz1NYXRoLm1pbihQLERhdGUubm93KCktUiksVj1NYXRoLm1heCgwLFAtSyksVz1NYXRoLm1heCgwLE1hdGguY2VpbChWLzFlMykpO2lmKGsudXBkYXRlUHJvZ3Jlc3NTdGVwKHtsYWJlbDpWPjA/dGhpcy5nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKSxwZXJjZW50YWdlOksvUCoxMDAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNUZXh0OlY+MD90aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXMoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKX0sUyksVjw9MClicmVhaztpZighYXdhaXQgdGhpcy53YWl0Rm9yQ291bnRkb3duVGljaygxMDAsSSkpcmV0dXJufWF3YWl0IHRoaXMucnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKX1hc3luYyB3YWl0Rm9yQ291bnRkb3duVGljayhrLFMpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IFA9ITEsUj1pKFc9PntQfHwoUD0hMCxTJiZTLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixLKSxJKFcpKX0sImZpbmlzaCIpLEs9aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQoViksUighMSl9LCJoYW5kbGVBYm9ydCIpLFY9d2luZG93LnNldFRpbWVvdXQoKCk9PntSKCEwKX0sayk7UyYmUy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyx7b25jZTohMH0pfSl9YXN5bmMgcnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKXtpZih0aGlzLm9uU3VjY2Vzc0FjdGlvbil7YXdhaXQgdGhpcy5vblN1Y2Nlc3NBY3Rpb24oKTtyZXR1cm59aWYodGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCIpe2F3YWl0IHRoaXMuZGVzdHJveSgpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59YXdhaXQgdGhpcy5kZXN0cm95KCl9b3BlbkV4dGVybmFsVXJsKGspe3dpbmRvdy5vcGVuKGssIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKX1zdGF0aWN7VW4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIHM3YT1nKCgpPT57RnJ0KCl9KTt2YXIgaTdhPWcoKCk9PntUZXQoKX0pO3ZhciByN2E9ZygoKT0+e3FnYSgpO0tnYSgpO0pnYSgpO3M3YSgpO2k3YSgpfSk7dmFyIERnLGFjLG83YSx3MWU9ZygoKT0+e3BlKCk7a3QoKTtwdCgpO1VhKCk7b3IoKTtvcigpO0owKCk7eGgoKTt4aCgpO0RnPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxhYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbzdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZUZpbGV0cmVlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sRGcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5leGVjdXRpb25FbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmV4ZWN1dGlvbkVudmlyb25tZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxEZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvb3RQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJyb290UGF0aCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnJvb3RQYXRoLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uucm9vdFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLERnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZWxlY3RlZFBhdGgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZWxlY3RlZFBhdGgsImdldCIpLHNldDppKChFLEgpPT57RS5zZWxlY3RlZFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLERnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJlZURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRyZWVEYXRhImluIEUsImhhcyIpLGdldDppKEU9PkUudHJlZURhdGEsImdldCIpLHNldDppKChFLEgpPT57RS50cmVlRGF0YT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksRGcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImlzTG9hZGluZyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmlzTG9hZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksRGcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvck1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImVycm9yTWVzc2FnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmVycm9yTWVzc2FnZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmVycm9yTWVzc2FnZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksRGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTsjZT1hYyh0aGlzLG8sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCQpe3RoaXMuI2U9JH0jdD0oYWModGhpcyxsKSxhYyh0aGlzLGQsIi8iKSk7Z2V0IHJvb3RQYXRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvb3RQYXRoKCQpe3RoaXMuI3Q9JH0jYT0oYWModGhpcyx1KSxhYyh0aGlzLGIsIiIpKTtnZXQgc2VsZWN0ZWRQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkUGF0aCgkKXt0aGlzLiNhPSR9I3M9KGFjKHRoaXMsdiksYWModGhpcyxtLFtdKSk7Z2V0IHRyZWVEYXRhKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRyZWVEYXRhKCQpe3RoaXMuI3M9JH0jaT0oYWModGhpcyxmKSxhYyh0aGlzLE0sITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzTG9hZGluZygkKXt0aGlzLiNpPSR9I3I9KGFjKHRoaXMseiksYWModGhpcyxDLCIiKSk7Z2V0IGVycm9yTWVzc2FnZSgpe3JldHVybiB0aGlzLiNyfXNldCBlcnJvck1lc3NhZ2UoJCl7dGhpcy4jcj0kfWV4cGFuZGVkUGF0aHM9KGFjKHRoaXMsXyksbmV3IFNldCk7bG9hZFRyZWVTdGFydGVkPSExO2NsaXBib2FyZFBhdGg9bnVsbDtjbGlwYm9hcmRPcGVyYXRpb249bnVsbDtmaWxlV2F0Y2hlcj1udWxsO3JlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbDtsYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnRyZWUtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDFweCA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MyUpIiwiaHNsKDAgMCUgMTQlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCA1MCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTIlKSIsImhzbCgyMTAgNTAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pbmRlbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uaGlkZGVuIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZm9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0NSA4MCUgNDUlKSIsImhzbCg0NSA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5maWxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woMjExIDYwJSA0OCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmphdmFzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woNTMgOTMlIDU0JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uanNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5odG1sIHsKICAgICAgICBjb2xvcjogaHNsKDE0IDc3JSA1MiUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmNzcyB7CiAgICAgICAgY29sb3I6IGhzbCgyMjggNzclIDU5JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24ubWFya2Rvd24gewogICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogaHNsKDAgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50P3RoaXMuaXNMb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZyI+CiAgICAgICAgICBMb2FkaW5nIGZpbGVzLi4uCiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvck1lc3NhZ2U/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciI+CiAgICAgICAgICAke3RoaXMuZXJyb3JNZXNzYWdlfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGV0cmVlLXRvb2xiYXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj5FeHBsb3Jlcjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0gdGl0bGU9Ik5ldyBGaWxlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZVBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9IHRpdGxlPSJOZXcgRm9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlZS1jb250YWluZXIiIEBjb250ZXh0bWVudT0ke3RoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51fT4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5Ij4KICAgICAgICAgIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBwcm92aWRlZC4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZW5kZXJUcmVlKCQpe3JldHVybiAkLm1hcChFPT50aGlzLnJlbmRlck5vZGUoRSkpfXJlbmRlck5vZGUoJCl7bGV0IEU9JC50eXBlPT09ImRpcmVjdG9yeSIsSD10aGlzLmV4cGFuZGVkUGF0aHMuaGFzKCQucGF0aCksaz0kLnBhdGg9PT10aGlzLnNlbGVjdGVkUGF0aCxTPXRoaXMuZ2V0RmlsZUljb25DbGFzcygkKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0cmVlLWl0ZW0gJHtrPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7OCskLmxldmVsKjE2fXB4IgogICAgICAgIEBjbGljaz0ke0k9PnRoaXMuaGFuZGxlSXRlbUNsaWNrKEksJCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7ST0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShJLCQpfQogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZC1pY29uICR7SD8iZXhwYW5kZWQiOiIifSAke0U/IiI6ImhpZGRlbiJ9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25SaWdodCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWljb24gJHtTfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5nZXRGaWxlSWNvbigkKX0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtbmFtZSI+JHskLm5hbWV9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHtFJiZIJiYkLmNoaWxkcmVuP3RoaXMucmVuZGVyVHJlZSgkLmNoaWxkcmVuKToiIn0KICAgIGB9Z2V0RmlsZUljb24oJCl7aWYoJC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT8ibHVjaWRlOmZvbGRlck9wZW4iOiJsdWNpZGU6Zm9sZGVyIjtzd2l0Y2goJC5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqc29uIjpyZXR1cm4ibHVjaWRlOmZpbGVKc29uIjtjYXNlImh0bWwiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJtZCI6cmV0dXJuImx1Y2lkZTpmaWxlVGV4dCI7Y2FzZSJwbmciOmNhc2UianBnIjpjYXNlImpwZWciOmNhc2UiZ2lmIjpjYXNlInN2ZyI6cmV0dXJuImx1Y2lkZTppbWFnZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOmZpbGUifX1nZXRGaWxlSWNvbkNsYXNzKCQpe2lmKCQudHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiJmb2xkZXIiO3N3aXRjaCgkLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImh0bWwiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImNzcyI7Y2FzZSJtZCI6cmV0dXJuIm1hcmtkb3duIjtkZWZhdWx0OnJldHVybiJmaWxlIn19YXN5bmMgaGFuZGxlSXRlbUNsaWNrKCQsRSl7JC5zdG9wUHJvcGFnYXRpb24oKSxFLnR5cGU9PT0iZGlyZWN0b3J5Ij9hd2FpdCB0aGlzLnRvZ2dsZURpcmVjdG9yeShFKToodGhpcy5zZWxlY3RlZFBhdGg9RS5wYXRoLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtc2VsZWN0Iix7ZGV0YWlsOntwYXRoOkUucGF0aCxuYW1lOkUubmFtZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9YXN5bmMgdG9nZ2xlRGlyZWN0b3J5KCQpe3RoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT90aGlzLmV4cGFuZGVkUGF0aHMuZGVsZXRlKCQucGF0aCk6KHRoaXMuZXhwYW5kZWRQYXRocy5hZGQoJC5wYXRoKSwoISQuY2hpbGRyZW58fCQuY2hpbGRyZW4ubGVuZ3RoPT09MCkmJmF3YWl0IHRoaXMubG9hZERpcmVjdG9yeUNvbnRlbnRzKCQpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBsb2FkRGlyZWN0b3J5Q29udGVudHMoJCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IEU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCQucGF0aCk7JC5jaGlsZHJlbj10aGlzLnNvcnRFbnRyaWVzKEUpLm1hcChIPT4oey4uLkgsbGV2ZWw6JC5sZXZlbCsxLGV4cGFuZGVkOiExLGNoaWxkcmVuOkgudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkgJHskLnBhdGh9OmAsRSl9fWFzeW5jIGhhbmRsZUNvbnRleHRNZW51KCQsRSl7JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W107RS50eXBlPT09ImRpcmVjdG9yeSImJkgucHVzaCh7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKEUucGF0aCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKEUucGF0aCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0pLEgucHVzaCh7bmFtZToiUmVuYW1lIixpY29uTmFtZToicGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oRSksImFjdGlvbiIpfSx7bmFtZToiRHVwbGljYXRlIixpY29uTmFtZToiZmlsZXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShFKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jb3B5SXRlbShFKSwiYWN0aW9uIil9KSxFLnR5cGU9PT0iZGlyZWN0b3J5IiYmdGhpcy5jbGlwYm9hcmRQYXRoJiZILnB1c2goe25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbShFLnBhdGgpLCJhY3Rpb24iKX0pLEgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKEUpLCJhY3Rpb24iKX0pLGF3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KCQpe2lmKCQudGFyZ2V0LmNsb3Nlc3QoIi50cmVlLWl0ZW0iKSlyZXR1cm47JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W3tuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKSwiYWN0aW9uIil9XTt0aGlzLmNsaXBib2FyZFBhdGgmJkgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpLCJhY3Rpb24iKX0pLGF3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgc2hvd0lucHV0TW9kYWwoJCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIEU9PntsZXQgSD1hd2FpdCBRYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiQuaGVhZGluZyx3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7JC5sYWJlbH0KICAgICAgICAgICAgLnZhbHVlPSR7JC52YWx1ZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgUz0+e2F3YWl0IFMuZGVzdHJveSgpLEUobnVsbCl9LCJhY3Rpb24iKX0se25hbWU6JC5idXR0b25OYW1lfHwiQ3JlYXRlIixhY3Rpb246aShhc3luYyBTPT57bGV0IFI9Uy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IFMuZGVzdHJveSgpLEUoUnx8bnVsbCl9LCJhY3Rpb24iKX1dfSk7YXdhaXQgSC51cGRhdGVDb21wbGV0ZTtsZXQgaz1ILnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpO2lmKGspe2xldCBTPWsucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7UyYmKGF3YWl0IFMudXBkYXRlQ29tcGxldGUsUy5mb2N1cygpKX19KX1hc3luYyBjcmVhdGVOZXdGaWxlKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGaWxlIixsYWJlbDoiRmlsZSBuYW1lIn0pO2lmKCFFfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShILCIiKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZpbGU6IixrKX19YXN5bmMgY3JlYXRlTmV3Rm9sZGVyKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGb2xkZXIiLGxhYmVsOiJGb2xkZXIgbmFtZSJ9KTtpZighRXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBIPSQ9PT0iLyI/YC8ke0V9YDpgJHskfS8ke0V9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihIKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmb2xkZXItY3JlYXRlZCIse2RldGFpbDp7cGF0aDpIfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOiIsayl9fWFzeW5jIGRlbGV0ZUl0ZW0oJCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWNvbmZpcm0oYERlbGV0ZSAkeyQubmFtZX0/YCkpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCx7cmVjdXJzaXZlOiQudHlwZT09PSJkaXJlY3RvcnkifSksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kZWxldGVkIix7ZGV0YWlsOntwYXRoOiQucGF0aCx0eXBlOiQudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChIKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGl0ZW06IixIKX19YXN5bmMgcmVuYW1lSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEU9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiUmVuYW1lIixsYWJlbDoiTmV3IG5hbWUiLHZhbHVlOiQubmFtZSxidXR0b25OYW1lOiJSZW5hbWUifSk7aWYoIUV8fEU9PT0kLm5hbWUpcmV0dXJuO2xldCBIPSQucGF0aC5zdWJzdHJpbmcoMCwkLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixrPUg9PT0iLyI/YC8ke0V9YDpgJHtIfS8ke0V9YDt0cnl7aWYoJC50eXBlPT09ImZpbGUiKXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCQucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoayxTKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybSgkLnBhdGgse3JlY3Vyc2l2ZTohMH0pO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcmVuYW1lZCIse2RldGFpbDp7b2xkUGF0aDokLnBhdGgsbmV3UGF0aDprLHR5cGU6JC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKFMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5hbWUgaXRlbToiLFMpfX1hc3luYyBkdXBsaWNhdGVJdGVtKCQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgRT0kLnBhdGguc3Vic3RyaW5nKDAsJC5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIsSDtpZigkLnR5cGU9PT0iZmlsZSIpe2xldCBTPSQubmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKFM+MCl7bGV0IEk9JC5uYW1lLnN1YnN0cmluZygwLFMpLFA9JC5uYW1lLnN1YnN0cmluZyhTKTtIPWAke0l9X2NvcHkke1B9YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YDtsZXQgaz1FPT09Ii8iP2AvJHtIfWA6YCR7RX0vJHtIfWA7dHJ5e2lmKCQudHlwZT09PSJmaWxlIil7bGV0IFM9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgkLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGssUyl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kdXBsaWNhdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOiQucGF0aCxuZXdQYXRoOmssdHlwZTokLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goUyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOiIsUyl9fWFzeW5jIGNvcHlJdGVtKCQpe3RoaXMuY2xpcGJvYXJkUGF0aD0kLnBhdGgsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249ImNvcHkifWFzeW5jIHBhc3RlSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXRoaXMuY2xpcGJvYXJkUGF0aClyZXR1cm47bGV0IEU9dGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJwYXN0ZWQiLEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHModGhpcy5jbGlwYm9hcmRQYXRoKSl7Y29uc29sZS5lcnJvcigiU291cmNlIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cyIpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7cmV0dXJufXRyeXtsZXQgaz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHRoaXMuY2xpcGJvYXJkUGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSCxrKX1jYXRjaHthd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgsSCl9YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1wYXN0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6dGhpcy5jbGlwYm9hcmRQYXRoLHRhcmdldFBhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBwYXN0ZSBpdGVtOiIsayl9fWFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cygkLEUpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEUpO2xldCBIPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigkKTtmb3IobGV0IGsgb2YgSCl7bGV0IFM9JD09PSIvIj9gLyR7ay5uYW1lfWA6YCR7JH0vJHtrLm5hbWV9YCxJPUU9PT0iLyI/YC8ke2submFtZX1gOmAke0V9LyR7ay5uYW1lfWA7aWYoay50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoUyxJKTtlbHNle2xldCBQPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoUyk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSSxQKX19fWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFRyZWUoKX1hc3luYyB1cGRhdGVkKCQpeyQuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiYodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQhPT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYodGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudD10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkVHJlZSgpLHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0RmlsZVdhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmZpbGVXYXRjaGVyKSl0cnl7dGhpcy5maWxlV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvIiwoJCxFKT0+e3RoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnJlZnJlc2goKX0sMzAwKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKCQpe2NvbnNvbGUud2FybigiRmlsZSB3YXRjaGluZyBub3Qgc3VwcG9ydGVkOiIsJCl9fXN0b3BGaWxlV2F0Y2hlcigpe3RoaXMuZmlsZVdhdGNoZXImJih0aGlzLmZpbGVXYXRjaGVyLnN0b3AoKSx0aGlzLmZpbGVXYXRjaGVyPW51bGwpfWFzeW5jIGxvYWRUcmVlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMubG9hZFRyZWVTdGFydGVkKXt0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMCx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmVycm9yTWVzc2FnZT0iIjt0cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCk7bGV0ICQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO3RoaXMudHJlZURhdGE9dGhpcy5zb3J0RW50cmllcygkKS5tYXAoRT0+KHsuLi5FLGxldmVsOjAsZXhwYW5kZWQ6ITEsY2hpbGRyZW46RS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKCQpe3RoaXMuZXJyb3JNZXNzYWdlPWBGYWlsZWQgdG8gbG9hZCBmaWxlczogJHskfWAsY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgZmlsZSB0cmVlOiIsJCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzTG9hZGluZz0hMX19fXNvcnRFbnRyaWVzKCQpe3JldHVybiAkLnNvcnQoKEUsSCk9PkUudHlwZSE9PUgudHlwZT9FLnR5cGU9PT0iZGlyZWN0b3J5Ij8tMToxOkUubmFtZS5sb2NhbGVDb21wYXJlKEgubmFtZSkpfWFzeW5jIHJlZnJlc2goKXt0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMSxhd2FpdCB0aGlzLmxvYWRUcmVlKCl9c2VsZWN0RmlsZSgkKXt0aGlzLnNlbGVjdGVkUGF0aD0kfXN0YXRpY3thYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgQnJ0LG5RLG43YSxIcnQ9ZygoKT0+e3BlKCk7cHQoKTtmdSgpO25yKCk7QnJ0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxuUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbjdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxCcnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjb21tYW5kImluIHYsImhhcyIpLGdldDppKHY9PnYuY29tbWFuZCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmNvbW1hbmQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEJydCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJsaW5lcyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmxpbmVzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubGluZXM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLEJydChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAuY29tbWFuZD0keyJwbnBtIGluc3RhbGwifQogICAgICAubGluZXM9JHtbIlBhY2thZ2VzOiArNDIiLCJQcm9ncmVzczogcmVzb2x2ZWQgMTQyLCByZXVzZWQgMTQwLCBkb3dubG9hZGVkIDIsIGFkZGVkIDQyLCBkb25lIiwiIiwiZGVwZW5kZW5jaWVzOiIsIisgQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIDQuMi4zIiwiKyB0eXBlc2NyaXB0IDUuMy4zIiwiIiwiRG9uZSBpbiAyLjNzIl19CiAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPW5RKHRoaXMsbywiIik7Z2V0IGNvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29tbWFuZChiKXt0aGlzLiNlPWJ9I3Q9KG5RKHRoaXMsbCksblEodGhpcyxkLFtdKSk7Z2V0IGxpbmVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxpbmVzKGIpe3RoaXMuI3Q9Yn10ZXJtaW5hbD0oblEodGhpcyx1KSxudWxsKTtmaXRBZGRvbj1udWxsO2xhc3RMaW5lQ291bnQ9MDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItY29tbWFuZCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgICN4dGVybS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogQ3VzdG9tIHNjcm9sbGJhciBmb3IgeHRlcm0gdmlld3BvcnQgKi8KICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGVybWluYWwtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItaWNvbiI+JDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZCI+JHt0aGlzLmNvbW1hbmR8fCJXYWl0aW5nLi4uIn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgaWQ9Inh0ZXJtLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1nZXRUZXJtaW5hbFRoZW1lKGIpe3JldHVybiBiP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjIpIn06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNjY2NjY2MiLGN1cnNvcjoiI2NjY2NjYyIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1hc3luYyBmaXJzdFVwZGF0ZWQoYil7c3VwZXIuZmlyc3RVcGRhdGVkKGIpO2xldCB2PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInh0ZXJtLWNvbnRhaW5lciIpO2lmKCF2KXJldHVybjtsZXQgeD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxtPXgudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbixmPVFyLmdldEluc3RhbmNlKCksW3ksTV09YXdhaXQgUHJvbWlzZS5hbGwoW2YubG9hZFh0ZXJtKCksZi5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50ZXJtaW5hbD1uZXcgeS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKG0pLHNjcm9sbGJhY2s6MWUzfSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXgudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoej0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHopKX0pLHRoaXMuZml0QWRkb249bmV3IE0uRml0QWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5vcGVuKHYpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uJiZ0aGlzLmZpdEFkZG9uLmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHYpLHRoaXMud3JpdGVOZXdMaW5lcygpfWFzeW5jIHVwZGF0ZWQoYil7c3VwZXIudXBkYXRlZChiKSxiLmhhcygibGluZXMiKSYmdGhpcy53cml0ZU5ld0xpbmVzKCl9d3JpdGVOZXdMaW5lcygpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgYj10aGlzLmxpbmVzLnNsaWNlKHRoaXMubGFzdExpbmVDb3VudCk7Zm9yKGxldCB2IG9mIGIpdGhpcy50ZXJtaW5hbC53cml0ZWxuKHYpO3RoaXMubGFzdExpbmVDb3VudD10aGlzLmxpbmVzLmxlbmd0aH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5kaXNwb3NlKCksdGhpcy50ZXJtaW5hbD1udWxsKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFkZExpbmUoYil7dGhpcy5saW5lcz1bLi4udGhpcy5saW5lcyxiXX1jbGVhcigpe3RoaXMubGluZXM9W10sdGhpcy5sYXN0TGluZUNvdW50PTAsdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5jbGVhcigpfXN0YXRpY3tuUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgdXgsbTIsbDdhLHFydD1nKCgpPT57cGUoKTtwdCgpO1VhKCk7b3IoKTt1eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbTI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGw3YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLWJvdHRvbWJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bWSgpXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSx1eCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZXhlY3V0aW9uRW52aXJvbm1lbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHV4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2NyaXB0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2NyaXB0cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNjcmlwdHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zY3JpcHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSx1eCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhY2thZ2VTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBhY2thZ2VTdGF0dXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5wYWNrYWdlU3RhdHVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucGFja2FnZVN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksdXgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRkYXRlZFBhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJvdXRkYXRlZFBhY2thZ2VzImluIF8sImhhcyIpLGdldDppKF89Pl8ub3V0ZGF0ZWRQYWNrYWdlcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLm91dGRhdGVkUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLHV4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDaGVja2luZ1BhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpc0NoZWNraW5nUGFja2FnZXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pc0NoZWNraW5nUGFja2FnZXMsImdldCIpLHNldDppKChfLE8pPT57Xy5pc0NoZWNraW5nUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLHV4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9I2U9bTIodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChDKXt0aGlzLiNlPUN9I3Q9KG0yKHRoaXMsbCksbTIodGhpcyxkLHt9KSk7Z2V0IHNjcmlwdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2NyaXB0cyhDKXt0aGlzLiN0PUN9I2E9KG0yKHRoaXMsdSksbTIodGhpcyxiLCJpZGxlIikpO2dldCBwYWNrYWdlU3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBhY2thZ2VTdGF0dXMoQyl7dGhpcy4jYT1DfSNzPShtMih0aGlzLHYpLG0yKHRoaXMsbSxbXSkpO2dldCBvdXRkYXRlZFBhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG91dGRhdGVkUGFja2FnZXMoQyl7dGhpcy4jcz1DfSNpPShtMih0aGlzLGYpLG0yKHRoaXMsTSwhMSkpO2dldCBpc0NoZWNraW5nUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNDaGVja2luZ1BhY2thZ2VzKEMpe3RoaXMuI2k9Q31wZW5kaW5nUGFja2FnZVVwZGF0ZT0obTIodGhpcyx6KSwhMSk7aGFuZGxlUHJvY2Vzc0NvbXBsZXRlPWkoQz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfSwiaGFuZGxlUHJvY2Vzc0NvbXBsZXRlIik7c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b20tYmFyIHsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgNiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLndpZGdldC5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXAtdG8tZGF0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cGRhdGVzLWF2YWlsYWJsZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLnNwaW5uaW5nIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYm90dG9tLWJhciI+CiAgICAgICAgPCEtLSBTY3JpcHQgUnVubmVyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTY3JpcHRDbGlja30KICAgICAgICAgIHRpdGxlPSJSdW4gc2NyaXB0IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHsibHVjaWRlOnBsYXkifQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5TY3JpcHRzPC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj4KCiAgICAgICAgPCEtLSBQYWNrYWdlIENoZWNrZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQgJHt0aGlzLmdldFBhY2thZ2VTdGF0dXNDbGFzcygpfSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlUGFja2FnZUNsaWNrfQogICAgICAgICAgdGl0bGU9IiR7dGhpcy5nZXRQYWNrYWdlVG9vbHRpcCgpfSIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7dGhpcy5nZXRQYWNrYWdlSWNvbigpfQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+JHt0aGlzLmdldFBhY2thZ2VTdGF0dXNUZXh0KCl9PC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8IS0tIEZ1dHVyZSB3aWRnZXRzIGNhbiBiZSBhZGRlZCBoZXJlIC0tPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHVwZGF0ZWQoQyl7Qy5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCkpfWFzeW5jIGxvYWRTY3JpcHRzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMuc2NyaXB0cz17fTtyZXR1cm59bGV0IF89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL3BhY2thZ2UuanNvbiIpLE89SlNPTi5wYXJzZShfKTt0aGlzLnNjcmlwdHM9Ty5zY3JpcHRzfHx7fX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBsb2FkIHNjcmlwdHMgZnJvbSBwYWNrYWdlLmpzb246IixDKSx0aGlzLnNjcmlwdHM9e319fWFzeW5jIGhhbmRsZVNjcmlwdENsaWNrKEMpe0Muc3RvcFByb3BhZ2F0aW9uKCk7bGV0IF89T2JqZWN0LmtleXModGhpcy5zY3JpcHRzKTtpZihfLmxlbmd0aD09PTApcmV0dXJuO2xldCBPPV8ubWFwKCQ9Pih7bmFtZTokLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnJ1blNjcmlwdCgkKX0sImFjdGlvbiIpfSkpO2F3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEMsTyl9YXN5bmMgcnVuU2NyaXB0KEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgXz17dHlwZToic2NyaXB0IixsYWJlbDpDLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJydW4iLENdLG1ldGFkYXRhOntzY3JpcHROYW1lOkN9fTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOl99KSl9YXN5bmMgY2hlY2tQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRoaXMucGFja2FnZVN0YXR1cz0iY2hlY2tpbmciLHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPSEwO2xldCBfPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oInBucG0iLFsib3V0ZGF0ZWQiLCItLWpzb24iXSksTz0iIiwkPV8ub3V0cHV0LmdldFJlYWRlcigpO2koYXN5bmMoKT0+e3RyeXtmb3IoOzspe2xldHtkb25lOmssdmFsdWU6U309YXdhaXQgJC5yZWFkKCk7aWYoaylicmVhaztPKz1TfX1jYXRjaHt9fSwicmVhZE91dHB1dCIpKCk7bGV0IEg9YXdhaXQgUHJvbWlzZS5yYWNlKFtfLmV4aXQsbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dCgoKT0+aygtMSksMWU0KSldKTt0cnl7YXdhaXQgJC5jYW5jZWwoKX1jYXRjaHt9aWYoSD09PS0xKXtjb25zb2xlLndhcm4oIlBhY2thZ2UgY2hlY2sgdGltZWQgb3V0IiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciI7cmV0dXJufWlmKEg9PT0wKXRoaXMucGFja2FnZVN0YXR1cz0idXAtdG8tZGF0ZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdO2Vsc2UgdHJ5e2xldCBrPUpTT04ucGFyc2UoTyk7dGhpcy5vdXRkYXRlZFBhY2thZ2VzPXRoaXMucGFyc2VPdXRkYXRlZFBhY2thZ2VzKGspLHRoaXMucGFja2FnZVN0YXR1cz10aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjA/InVwZGF0ZXMtYXZhaWxhYmxlIjoidXAtdG8tZGF0ZSJ9Y2F0Y2h7dGhpcy5wYWNrYWdlU3RhdHVzPSJ1cGRhdGVzLWF2YWlsYWJsZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdfX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzOiIsQyksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciJ9ZmluYWxseXt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMX19cGFyc2VPdXRkYXRlZFBhY2thZ2VzKEMpe2xldCBfPVtdO2lmKHR5cGVvZiBDPT0ib2JqZWN0IiYmQyE9PW51bGwpZm9yKGxldFtPLCRdb2YgT2JqZWN0LmVudHJpZXMoQykpe2xldCBFPSQ7Xy5wdXNoKHtuYW1lOk8sY3VycmVudDpFLmN1cnJlbnR8fCJ1bmtub3duIix3YW50ZWQ6RS53YW50ZWR8fEUuY3VycmVudHx8InVua25vd24iLGxhdGVzdDpFLmxhdGVzdHx8RS53YW50ZWR8fCJ1bmtub3duIix0eXBlOkUuZGVwZW5kZW5jeVR5cGU9PT0iZGV2RGVwZW5kZW5jaWVzIj8iZGV2RGVwZW5kZW5jaWVzIjoiZGVwZW5kZW5jaWVzIn0pfXJldHVybiBffWFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayhDKXtDLnN0b3BQcm9wYWdhdGlvbigpO2xldCBfPVtdO2lmKF8ucHVzaCh7bmFtZTp0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iQ2hlY2tpbmcuLi4iOiJDaGVjayBmb3IgdXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKGFzeW5jKCk9PntpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm47bGV0IE89e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoiY2hlY2sgcGFja2FnZXMiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJvdXRkYXRlZCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOk99KSksc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksM2UzKX0sImFjdGlvbiIpfSksdGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wKXtfLnB1c2goe2RpdmlkZXI6ITB9KTtsZXQgTz10aGlzLm91dGRhdGVkUGFja2FnZXMuc2xpY2UoMCwxMCk7Zm9yKGxldCAkIG9mIE8pXy5wdXNoKHtuYW1lOmAkeyQubmFtZX06ICR7JC5jdXJyZW50fSBcdTIxOTIgJHskLmxhdGVzdH1gLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlUGFja2FnZSgkLm5hbWUpfSwiYWN0aW9uIil9KTt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjEwJiZfLnB1c2goe25hbWU6YC4uLiBhbmQgJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoLTEwfSBtb3JlYCxpY29uTmFtZToibHVjaWRlOm1vcmVIb3Jpem9udGFsIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIil9KSxfLnB1c2goe2RpdmlkZXI6ITB9KSxfLnB1c2goe25hbWU6IlVwZGF0ZSBhbGwgcGFja2FnZXMiLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlQWxsUGFja2FnZXMoKX0sImFjdGlvbiIpfSl9YXdhaXQga2Eub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQyxfKX1hc3luYyB1cGRhdGVQYWNrYWdlKEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBfPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6YHVwZGF0ZSAke0N9YCxjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiLENdLG1ldGFkYXRhOntwYWNrYWdlTmFtZTpDfX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpffSkpfWFzeW5jIHVwZGF0ZUFsbFBhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IEM9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoidXBkYXRlIGFsbCIsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0Il19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6Q30pKX1nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKXtyZXR1cm4gdGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IiI6dGhpcy5wYWNrYWdlU3RhdHVzfWdldFBhY2thZ2VJY29uKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuImx1Y2lkZTpsb2FkZXIyIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJsdWNpZGU6Y2hlY2tDaXJjbGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybiJsdWNpZGU6YWxlcnRDaXJjbGUiO2Nhc2UiZXJyb3IiOnJldHVybiJsdWNpZGU6eENpcmNsZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnBhY2thZ2UifX1nZXRQYWNrYWdlU3RhdHVzVGV4dCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iVXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9YDtjYXNlImVycm9yIjpyZXR1cm4iQ2hlY2sgZmFpbGVkIjtkZWZhdWx0OnJldHVybiJQYWNrYWdlcyJ9fWdldFBhY2thZ2VUb29sdGlwKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nIGZvciBwYWNrYWdlIHVwZGF0ZXMuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIkFsbCBwYWNrYWdlcyBhcmUgdXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDtjYXNlImVycm9yIjpyZXR1cm4iRmFpbGVkIHRvIGNoZWNrIGZvciB1cGRhdGVzLiBDbGljayB0byByZXRyeS4iO2RlZmF1bHQ6cmV0dXJuIkNsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMifX1hc3luYyByZWZyZXNoUGFja2FnZVN0YXR1cygpe2F3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHJlZnJlc2hTY3JpcHRzKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpfXN0YXRpY3ttMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgbFEsanJ0PWcoKCk9PntsUT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlciIpfWxvYWRlZExpYnM9bmV3IFNldDtub3RGb3VuZFBhY2thZ2VzPW5ldyBTZXQ7bW9uYWNvSW5zdGFuY2U9bnVsbDtleGVjdXRpb25FbnZpcm9ubWVudD1udWxsO2ZpbGVDYWNoZT1uZXcgTWFwO2FkZGVkRXh0cmFMaWJzPW5ldyBNYXA7Z2V0IHRzQXBpKCl7cmV0dXJuIHRoaXMubW9uYWNvSW5zdGFuY2U/dGhpcy5tb25hY29JbnN0YW5jZS5sYW5ndWFnZXMudHlwZXNjcmlwdDpudWxsfWFzeW5jIGluaXQoZSx0KXt0aGlzLm1vbmFjb0luc3RhbmNlPWUsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudD10LHRoaXMuY29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCksYXdhaXQgdGhpcy5sb2FkQWxsUHJvamVjdEZpbGVzKCl9YXN5bmMgbG9hZEFsbFByb2plY3RGaWxlcygpe3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeSgiLyIpfWFzeW5jIGxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoZSl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IHQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgYSBvZiB0KXtsZXQgcj1lPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gO2lmKGEubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihhLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3Rvcnkocik7ZWxzZSBpZihhLnR5cGU9PT0iZmlsZSIpe2xldCBuPWEubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO2lmKG49PT0idHMifHxuPT09InRzeCJ8fG49PT0ianMifHxuPT09ImpzeCIpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocik7dGhpcy5hZGRGaWxlTW9kZWwocixvKX1jYXRjaHt9fX19fWNhdGNoe319Y29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCl7bGV0IGU9dGhpcy50c0FwaTtlJiYoZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0Q29tcGlsZXJPcHRpb25zKHt0YXJnZXQ6ZS5TY3JpcHRUYXJnZXQuRVMyMDIwLG1vZHVsZTplLk1vZHVsZUtpbmQuRVNOZXh0LG1vZHVsZVJlc29sdXRpb246ZS5Nb2R1bGVSZXNvbHV0aW9uS2luZC5CdW5kbGVyPz9lLk1vZHVsZVJlc29sdXRpb25LaW5kLk5vZGVKcyxhbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzOiEwLGVzTW9kdWxlSW50ZXJvcDohMCxzdHJpY3Q6ITAsbm9FbWl0OiEwLGFsbG93SnM6ITAsY2hlY2tKczohMSxhbGxvd05vblRzRXh0ZW5zaW9uczohMCxsaWI6WyJlczIwMjAiLCJkb20iLCJkb20uaXRlcmFibGUiXSxiYXNlVXJsOiIvIixhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczohMCxyZXNvbHZlSnNvbk1vZHVsZTohMH0pLGUudHlwZXNjcmlwdERlZmF1bHRzLnNldERpYWdub3N0aWNzT3B0aW9ucyh7bm9TZW1hbnRpY1ZhbGlkYXRpb246ITEsbm9TeW50YXhWYWxpZGF0aW9uOiExfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RWFnZXJNb2RlbFN5bmMoITApKX1wYXJzZUltcG9ydHMoZSl7bGV0IHQ9W10sYT0vaW1wb3J0XHMrKD86W1x3Knt9XHMsXStmcm9tXHMrKT9bJyJdKFteJyJdKylbJyJdL2cscjtmb3IoOyhyPWEuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89clsxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTt0LnB1c2gobCl9fWxldCBuPS9yZXF1aXJlXHMqXChccypbJyJdKFteJyJdKylbJyJdXHMqXCkvZztmb3IoOyhyPW4uZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89clsxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTt0LnB1c2gobCl9fXJldHVyblsuLi5uZXcgU2V0KHQpXX1hc3luYyBsb2FkVHlwZXNGb3JQYWNrYWdlKGUpe2lmKCEoIXRoaXMubW9uYWNvSW5zdGFuY2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSYmIXRoaXMubG9hZGVkTGlicy5oYXMoZSkmJiF0aGlzLm5vdEZvdW5kUGFja2FnZXMuaGFzKGUpKXRyeXtsZXQgdD1hd2FpdCB0aGlzLnRyeUxvYWRQYWNrYWdlVHlwZXMoZSk7dHx8KHQ9YXdhaXQgdGhpcy50cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSkpLHQ/dGhpcy5sb2FkZWRMaWJzLmFkZChlKTp0aGlzLm5vdEZvdW5kUGFja2FnZXMuYWRkKGUpfWNhdGNoKHQpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgdHlwZXMgZm9yICR7ZX06YCx0KX19YXN5bmMgdHJ5TG9hZFBhY2thZ2VUeXBlcyhlKXtsZXQgdD10aGlzLnRzQXBpO2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdClyZXR1cm4hMTtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke2V9YDt0cnl7bGV0IHI9YCR7YX0vcGFja2FnZS5qc29uYDtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhyKSl7bGV0IGw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShyKSxwPUpTT04ucGFyc2UobCk7aWYodC50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobCxgZmlsZTovLyR7cn1gKSxwLnR5cGVzfHxwLnR5cGluZ3MpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoYSksITB9bGV0IG89W2Ake2F9L2luZGV4LmQudHNgLGAke2F9L2Rpc3QvaW5kZXguZC50c2AsYCR7YX0vbGliL2luZGV4LmQudHNgXTtmb3IobGV0IGwgb2YgbylpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhsKSlyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShhKSwhMDtyZXR1cm4hMX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgcGFja2FnZSB0eXBlcyBmb3IgJHtlfTpgLHIpLCExfX1hc3luYyBsb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShlKXtsZXQgdD10aGlzLnRzQXBpOyF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdHx8YXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KGUpfWFzeW5jIGxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl7bGV0IHQ9dGhpcy50c0FwaTtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdCkpdHJ5e2xldCBhPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihlKTtmb3IobGV0IHIgb2YgYSl7bGV0IG49ZT09PSIvIj9gLyR7ci5uYW1lfWA6YCR7ZX0vJHtyLm5hbWV9YDtpZihyLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYoci50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KG4pO2Vsc2UgaWYoci50eXBlPT09ImZpbGUiJiZyLm5hbWUuZW5kc1dpdGgoIi5kLnRzIikpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUobik7dC50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobyxgZmlsZTovLyR7bn1gKX1jYXRjaHt9fX19Y2F0Y2h7fX1hc3luYyB0cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuITE7bGV0IGE9YC9ub2RlX21vZHVsZXMvJHtlLnN0YXJ0c1dpdGgoIkAiKT9gQHR5cGVzLyR7ZS5zbGljZSgxKS5yZXBsYWNlKCIvIiwiX18iKX1gOmBAdHlwZXMvJHtlfWB9YDt0cnl7bGV0IHI9YCR7YX0vaW5kZXguZC50c2A7cmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHIpPyhhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGEpLCEwKTohMX1jYXRjaHtyZXR1cm4hMX19YXN5bmMgcHJvY2Vzc0NvbnRlbnRDaGFuZ2UoZSl7bGV0IHQ9dGhpcy5wYXJzZUltcG9ydHMoZSk7Zm9yKGxldCBhIG9mIHQpdGhpcy5sb2FkZWRMaWJzLmhhcyhhKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKGEpfWFzeW5jIHNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmNsZWFyKCk7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL25vZGVfbW9kdWxlcyIpKXJldHVybjtsZXQgZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoIi9ub2RlX21vZHVsZXMiKTtmb3IobGV0IHQgb2YgZSlpZih0LnR5cGU9PT0iZGlyZWN0b3J5IilpZih0Lm5hbWUuc3RhcnRzV2l0aCgiQCIpKXRyeXtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke3QubmFtZX1gLHI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGEpO2ZvcihsZXQgbiBvZiByKWlmKG4udHlwZT09PSJkaXJlY3RvcnkiKXtsZXQgbz1gJHt0Lm5hbWV9LyR7bi5uYW1lfWA7YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKG8pfX1jYXRjaHt9ZWxzZSB0Lm5hbWUuc3RhcnRzV2l0aCgiLiIpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2UodC5uYW1lKX1jYXRjaChlKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzY2FuIG5vZGVfbW9kdWxlczoiLGUpfX19YWRkRmlsZU1vZGVsKGUsdCl7aWYoIXRoaXMubW9uYWNvSW5zdGFuY2UpcmV0dXJuO3RoaXMuZmlsZUNhY2hlLnNldChlLHQpO2xldCBhPXRoaXMubW9uYWNvSW5zdGFuY2UuVXJpLnBhcnNlKGBmaWxlOi8vJHtlfWApLHI9dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuZ2V0TW9kZWwoYSk7aWYocilyLmdldFZhbHVlKCkhPT10JiZyLnNldFZhbHVlKHQpO2Vsc2V7bGV0IG49dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGUpO3RoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKHQsbixhKX10aGlzLmFkZEZpbGVBc0V4dHJhTGliKGUsdCl9YWRkRmlsZUFzRXh0cmFMaWIoZSx0KXtsZXQgYT10aGlzLnRzQXBpO2lmKCFhKXJldHVybjtsZXQgcj10aGlzLmFkZGVkRXh0cmFMaWJzLmdldChlKTtyJiZyLmRpc3Bvc2UoKTtsZXQgbj1gZmlsZTovLyR7ZX1gLG89YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIodCxuKTtpZih0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChlLG8pLGUuZW5kc1dpdGgoIi50cyIpJiYhZS5lbmRzV2l0aCgiLmQudHMiKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzJC8sIi5qcyIpLHA9YGZpbGU6Ly8ke2x9YCxkPWEudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHQscCk7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQobCxkKSx0aGlzLmZpbGVDYWNoZS5zZXQobCx0KX1lbHNlIGlmKGUuZW5kc1dpdGgoIi50c3giKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzeCQvLCIuanN4IikscD1gZmlsZTovLyR7bH1gLGQ9YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIodCxwKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChsLGQpLHRoaXMuZmlsZUNhY2hlLnNldChsLHQpfX1nZXRGaWxlQ29udGVudChlKXtyZXR1cm4gdGhpcy5maWxlQ2FjaGUuZ2V0KGUpfWdldExhbmd1YWdlRnJvbVBhdGgoZSl7c3dpdGNoKGUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2RlZmF1bHQ6cmV0dXJuInBsYWludGV4dCJ9fX19KTt2YXIgTGcsc2MsYzdhLFZydD1nKCgpPT57cGUoKTtrdCgpO05ldCgpO3B0KCk7RDgoKTtMZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sc2M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGM3YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpTdHJpbmd9KV0sTGcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9yaWdpbmFsQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm9yaWdpbmFsQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm9yaWdpbmFsQ29udGVudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksTGcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im1vZGlmaWVkQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm1vZGlmaWVkQ29udGVudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGQsdSksTGcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJvcmlnaW5hbExhYmVsImluIEUsImhhcyIpLGdldDppKEU9PkUub3JpZ2luYWxMYWJlbCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm9yaWdpbmFsTGFiZWw9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLExnKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kaWZpZWRMYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibW9kaWZpZWRMYWJlbCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkTGFiZWwsImdldCIpLHNldDppKChFLEgpPT57RS5tb2RpZmllZExhYmVsPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxMZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJsYW5ndWFnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubGFuZ3VhZ2U9SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLExnKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImZpbGVQYXRoImluIEUsImhhcyIpLGdldDppKEU9PkUuZmlsZVBhdGgsImdldCIpLHNldDppKChFLEgpPT57RS5maWxlUGF0aD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksTGcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIik7Cn1gfQogICAgICAubW9kaWZpZWRDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyBXb3JsZCEiKTsKICByZXR1cm4gdHJ1ZTsKfWB9CiAgICAgIC5sYW5ndWFnZT0keyJ0eXBlc2NyaXB0In0KICAgICAgLmZpbGVQYXRoPSR7Ii9kZW1vL2V4YW1wbGUudHMifQogICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07ZGlmZkVkaXRvckRlZmVycmVkPXV0LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPXNjKHRoaXMsbywiIik7Z2V0IG9yaWdpbmFsQ29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBvcmlnaW5hbENvbnRlbnQoJCl7dGhpcy4jZT0kfSN0PShzYyh0aGlzLGwpLHNjKHRoaXMsZCwiIikpO2dldCBtb2RpZmllZENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbW9kaWZpZWRDb250ZW50KCQpe3RoaXMuI3Q9JH0jYT0oc2ModGhpcyx1KSxzYyh0aGlzLGIsIkRpc2sgVmVyc2lvbiIpKTtnZXQgb3JpZ2luYWxMYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBvcmlnaW5hbExhYmVsKCQpe3RoaXMuI2E9JH0jcz0oc2ModGhpcyx2KSxzYyh0aGlzLG0sIkxvY2FsIFZlcnNpb24iKSk7Z2V0IG1vZGlmaWVkTGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbW9kaWZpZWRMYWJlbCgkKXt0aGlzLiNzPSR9I2k9KHNjKHRoaXMsZiksc2ModGhpcyxNLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNpfXNldCBsYW5ndWFnZSgkKXt0aGlzLiNpPSR9I3I9KHNjKHRoaXMseiksc2ModGhpcyxDLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGZpbGVQYXRoKCQpe3RoaXMuI3I9JH1kaWZmRWRpdG9yPShzYyh0aGlzLF8pLG51bGwpO21vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGw7b3JpZ2luYWxNb2RlbD1udWxsO21vZGlmaWVkTW9kZWw9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksamkuc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpZmYtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRpZmYtdG9vbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGlmZi1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1maWxlbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1sYWJlbHMgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kaWZmLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0ICQ9dGhpcy5maWxlUGF0aC5zcGxpdCgiLyIpLnBvcCgpfHwiZmlsZSI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpZmYtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtaW5mbyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWZpbGVuYW1lIj4keyR9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1sYWJlbHMiPiR7dGhpcy5vcmlnaW5hbExhYmVsfSDihpQgJHt0aGlzLm1vZGlmaWVkTGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvUHJldmlvdXNEaWZmfQogICAgICAgICAgICAgID5QcmV2aW91czwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvTmV4dERpZmZ9CiAgICAgICAgICAgICAgPk5leHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uLWJ1dHRvbnMiPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0iaGlnaGxpZ2h0ZWQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdExvY2FsfQogICAgICAgICAgICAgID5Vc2UgTG9jYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0RGlza30KICAgICAgICAgICAgICA+VXNlIERpc2s8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuY2xvc2V9CiAgICAgICAgICAgICAgPkNsb3NlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobmV3IE1hcCksYXdhaXQgdGhpcy5pbml0RGlmZkVkaXRvcigpfWFzeW5jIGluaXREaWZmRWRpdG9yKCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGlmZi1jb250YWluZXIiKTtpZighJClyZXR1cm47bGV0IEU9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke2NuZX1gLEg9d2luZG93Lm1vbmFjbztIfHwoYXdhaXQgbmV3IFByb21pc2UoVz0+e2xldCBtZT1zZXRJbnRlcnZhbCgoKT0+e3dpbmRvdy5tb25hY28mJihjbGVhckludGVydmFsKG1lKSxXKCkpfSwxMDApfSksSD13aW5kb3cubW9uYWNvKTtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxJPWsudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixQPURhdGUubm93KCksUj1ILlVyaS5wYXJzZShgZGlmZjovL29yaWdpbmFsLyR7UH0ke3RoaXMuZmlsZVBhdGh9YCksSz1ILlVyaS5wYXJzZShgZGlmZjovL21vZGlmaWVkLyR7UH0ke3RoaXMuZmlsZVBhdGh9YCk7dGhpcy5vcmlnaW5hbE1vZGVsPUguZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMub3JpZ2luYWxDb250ZW50LHRoaXMubGFuZ3VhZ2UsUiksdGhpcy5tb2RpZmllZE1vZGVsPUguZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMubW9kaWZpZWRDb250ZW50LHRoaXMubGFuZ3VhZ2UsSyksdGhpcy5kaWZmRWRpdG9yPUguZWRpdG9yLmNyZWF0ZURpZmZFZGl0b3IoJCx7YXV0b21hdGljTGF5b3V0OiEwLHJlYWRPbmx5OiExLG9yaWdpbmFsRWRpdGFibGU6ITEscmVuZGVyU2lkZUJ5U2lkZTohMCxpZ25vcmVUcmltV2hpdGVzcGFjZTohMSxmb250U2l6ZToxNCxtaW5pbWFwOntlbmFibGVkOiExfX0pLEguZWRpdG9yLnNldFRoZW1lKEkpLHRoaXMuZGlmZkVkaXRvci5zZXRNb2RlbCh7b3JpZ2luYWw6dGhpcy5vcmlnaW5hbE1vZGVsLG1vZGlmaWVkOnRoaXMubW9kaWZpZWRNb2RlbH0pLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249ay50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShXPT57bGV0IG1lPVc/InZzIjoidnMtZGFyayI7SC5lZGl0b3Iuc2V0VGhlbWUobWUpfSk7bGV0IFY9Im1vbmFjby1kaWZmLWVkaXRvci1jc3MiO2lmKCF0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKFYpKXtsZXQgbWU9YXdhaXQoYXdhaXQgZmV0Y2goYCR7RX0vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLEI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtCLmlkPVYsQi50ZXh0Q29udGVudD1tZSx0aGlzLnNoYWRvd1Jvb3Q/LmFwcGVuZChCKX1zZXRUaW1lb3V0KCgpPT57dHJ5e3RoaXMuZGlmZkVkaXRvcj8ucmV2ZWFsRmlyc3REaWZmKCl9Y2F0Y2h7fX0sMTAwKSx0aGlzLmRpZmZFZGl0b3JEZWZlcnJlZC5yZXNvbHZlKHRoaXMuZGlmZkVkaXRvcil9Z29Ub05leHREaWZmKCl7dHJ5e3RoaXMuZGlmZkVkaXRvcj8uZ29Ub0RpZmYoIm5leHQiKX1jYXRjaHt9fWdvVG9QcmV2aW91c0RpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigicHJldmlvdXMiKX1jYXRjaHt9fWFjY2VwdExvY2FsKCl7bGV0ICQ9dGhpcy5kaWZmRWRpdG9yPy5nZXRNb2RpZmllZEVkaXRvcigpLmdldFZhbHVlKCl8fHRoaXMubW9kaWZpZWRDb250ZW50O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtcmVzb2x2ZWQiLHtkZXRhaWw6e2FjdGlvbjoidXNlLWxvY2FsIixjb250ZW50OiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YWNjZXB0RGlzaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtcmVzb2x2ZWQiLHtkZXRhaWw6e2FjdGlvbjoidXNlLWRpc2siLGNvbnRlbnQ6dGhpcy5vcmlnaW5hbENvbnRlbnR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLWNsb3NlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLm9yaWdpbmFsTW9kZWwmJih0aGlzLm9yaWdpbmFsTW9kZWwuZGlzcG9zZSgpLHRoaXMub3JpZ2luYWxNb2RlbD1udWxsKSx0aGlzLm1vZGlmaWVkTW9kZWwmJih0aGlzLm1vZGlmaWVkTW9kZWwuZGlzcG9zZSgpLHRoaXMubW9kaWZpZWRNb2RlbD1udWxsKSx0aGlzLmRpZmZFZGl0b3ImJih0aGlzLmRpZmZFZGl0b3IuZGlzcG9zZSgpLHRoaXMuZGlmZkVkaXRvcj1udWxsKX1zdGF0aWN7c2MoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIERpLG9hLGQ3YSx1N2E9ZygoKT0+e3BlKCk7a3QoKTtwdCgpO3gxZSgpO1A4KCk7dzFlKCk7dzFlKCk7b1EoKTtvUSgpO0hydCgpO3FydCgpO1VhKCk7UDgoKTtqcnQoKTtvcigpO0l0KCk7ZTFlKCk7VnJ0KCk7RGk9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LG9hPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxkN2E9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdvcmtzcGFjZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdO3ZhciBJZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBjZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLHN0PVtZKCldLERpKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuZXhlY3V0aW9uRW52aXJvbm1lbnQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LG8sbCksRGkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsaXphdGlvblByb21pc2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpbml0aWFsaXphdGlvblByb21pc2UiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pbml0aWFsaXphdGlvblByb21pc2UsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pbml0aWFsaXphdGlvblByb21pc2U9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGQsdSksRGkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJzaG93RmlsZVRyZWUiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5zaG93RmlsZVRyZWUsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5zaG93RmlsZVRyZWU9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGIsdiksRGkodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJzaG93VGVybWluYWwiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5zaG93VGVybWluYWwsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5zaG93VGVybWluYWw9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LG0sZiksRGkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlVHJlZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iZmlsZVRyZWVXaWR0aCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmZpbGVUcmVlV2lkdGgsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5maWxlVHJlZVdpZHRoPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxNLHopLERpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJ0ZXJtaW5hbEhlaWdodCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnRlcm1pbmFsSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUudGVybWluYWxIZWlnaHQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LEMsXyksRGkodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuRmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJvcGVuRmlsZXMiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5vcGVuRmlsZXMsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5vcGVuRmlsZXM9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LCQsRSksRGkodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImFjdGl2ZUZpbGVQYXRoImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuYWN0aXZlRmlsZVBhdGgsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5hY3RpdmVGaWxlUGF0aD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sayxTKSxEaSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVGVybWluYWxDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc1Rlcm1pbmFsQ29sbGFwc2VkImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuaXNUZXJtaW5hbENvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzVGVybWluYWxDb2xsYXBzZWQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFAsUiksRGkodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0ZpbGVUcmVlQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iaXNGaWxlVHJlZUNvbGxhcHNlZCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzRmlsZVRyZWVDb2xsYXBzZWQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pc0ZpbGVUcmVlQ29sbGFwc2VkPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxWLFcpLERpKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSW5pdGlhbGl6aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iaXNJbml0aWFsaXppbmciaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc0luaXRpYWxpemluZywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzSW5pdGlhbGl6aW5nPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxCLFUpLERpKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJvdHRvbVBhbmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5hY3RpdmVCb3R0b21QYW5lbCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmFjdGl2ZUJvdHRvbVBhbmVsPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxGLGopLERpKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iZGlhZ25vc3RpY01hcmtlcnMiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5kaWFnbm9zdGljTWFya2VycywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmRpYWdub3N0aWNNYXJrZXJzPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxsZSxRKSxEaSh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImF1dG9TYXZlImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuYXV0b1NhdmUsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5hdXRvU2F2ZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sdGUsZWUpLERpKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iaW5pdENvbW1hbmQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pbml0Q29tbWFuZCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmluaXRDb21tYW5kPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxYLFopLERpKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRPdXRwdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpbml0T3V0cHV0ImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuaW5pdE91dHB1dCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmluaXRPdXRwdXQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LHEsQSksRGkodGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJjdXJyZW50RmlsZVRyZWVXaWR0aCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmN1cnJlbnRGaWxlVHJlZVdpZHRoLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuY3VycmVudEZpbGVUcmVlV2lkdGg9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LG9lLGFlKSxEaSh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJjdXJyZW50VGVybWluYWxIZWlnaHQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5jdXJyZW50VGVybWluYWxIZWlnaHQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5jdXJyZW50VGVybWluYWxIZWlnaHQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFJlLEJlKSxEaSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nRmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0RyYWdnaW5nRmlsZVRyZWUiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc0RyYWdnaW5nRmlsZVRyZWUsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pc0RyYWdnaW5nRmlsZVRyZWU9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LERlLF9lKSxEaSh0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nVGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0RyYWdnaW5nVGVybWluYWwiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc0RyYWdnaW5nVGVybWluYWwsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5pc0RyYWdnaW5nVGVybWluYWw9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LHZlLGJlKSxEaSh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJzaG93RGlmZlZpZXciaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5zaG93RGlmZlZpZXcsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5zaG93RGlmZlZpZXc9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGplLFdlKSxEaSh0aGlzLG51bGwsc3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWZmVmlld0NvbmZpZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImRpZmZWaWV3Q29uZmlnImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuZGlmZlZpZXdDb25maWcsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5kaWZmVmlld0NvbmZpZz1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sTWUsZ2UpLERpKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmNlfSxudWxsLHQpLEllPWE9ZS52YWx1ZSxjZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjZX0pfXN0YXRpYyBkZW1vPWkoKCk9PntsZXQgY2U9bmV3IFRnLGRlPShhc3luYygpPT57YXdhaXQgY2UuaW5pdCgpO2xldCBZZT17InBhY2thZ2UuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtuYW1lOiJkZW1vLXByb2plY3QiLHZlcnNpb246IjEuMC4wIix0eXBlOiJtb2R1bGUiLHNjcmlwdHM6e2J1aWxkOiJ0c2MiLGRldjoidHNjIC0td2F0Y2gifSxkZXBlbmRlbmNpZXM6eyJAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UiOiJeNC4yLjMifSxkZXZEZXBlbmRlbmNpZXM6eyJAdHlwZXMvbm9kZSI6Il4yMi4wLjAiLHR5cGVzY3JpcHQ6Il41LjAuMCJ9fSxudWxsLDIpfX0sIm5wbWV4dHJhLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7ZGVlc0VkaXRvcldvcmtzcGFjZTp7b25Jbml0OiJwbnBtIGluc3RhbGwifX0sbnVsbCwyKX19LCJ0c2NvbmZpZy5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe2NvbXBpbGVyT3B0aW9uczp7dGFyZ2V0OiJFUzIwMjIiLG1vZHVsZToiTm9kZU5leHQiLG1vZHVsZVJlc29sdXRpb246Ik5vZGVOZXh0IixzdHJpY3Q6ITAsb3V0RGlyOiIuL2Rpc3QiLHJvb3REaXI6Ii4vc3JjIixkZWNsYXJhdGlvbjohMH0saW5jbHVkZTpbInNyYy8qKi8qIl19LG51bGwsMil9fSxzcmM6e2RpcmVjdG9yeTp7ImluZGV4LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIE1haW4gZW50cnkgcG9pbnQKaW1wb3J0IHsgZ3JlZXQsIGZvcm1hdE5hbWUgfSBmcm9tICcuL3V0aWxzLmpzJzsKCmNvbnN0IG5hbWUgPSBmb3JtYXROYW1lKCdXb3JsZCcpOwpjb25zb2xlLmxvZyhncmVldChuYW1lKSk7CgovLyBFeGFtcGxlIGFzeW5jIGZ1bmN0aW9uCmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7CiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCdIZWxsbyBmcm9tIGFzeW5jIScpOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCm1haW4oKTsKYH19LCJ1dGlscy50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBVdGlsaXR5IGZ1bmN0aW9ucwoKZXhwb3J0IGludGVyZmFjZSBJVXNlciB7CiAgZmlyc3ROYW1lOiBzdHJpbmc7CiAgbGFzdE5hbWU6IHN0cmluZzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIFxgSGVsbG8sIFwke25hbWV9IVxgOwp9CgpleHBvcnQgZnVuY3Rpb24gZm9ybWF0TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogIHJldHVybiBuYW1lLnRyaW0oKS50b1VwcGVyQ2FzZSgpOwp9CgpleHBvcnQgZnVuY3Rpb24gY3JlYXRlVXNlcihmaXJzdE5hbWU6IHN0cmluZywgbGFzdE5hbWU6IHN0cmluZyk6IElVc2VyIHsKICByZXR1cm4geyBmaXJzdE5hbWUsIGxhc3ROYW1lIH07Cn0KYH19LCJpbXBvcnR0ZXN0LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFRlc3QgbnBtIHBhY2thZ2UgaW1wb3J0cwppbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJzsKCi8vIFRoaXMgc2hvdWxkIGhhdmUgSW50ZWxsaVNlbnNlIHNob3dpbmcgZGVmZXIoKSBtZXRob2QKY29uc3QgZGVmZXJyZWQgPSBzbWFydHByb21pc2UuZGVmZXI8c3RyaW5nPigpOwoKLy8gVGVzdCB1c2luZyB0aGUgZGVmZXJyZWQgcHJvbWlzZQphc3luYyBmdW5jdGlvbiB0ZXN0U21hcnRQcm9taXNlKCkgewogIHNldFRpbWVvdXQoKCkgPT4gewogICAgZGVmZXJyZWQucmVzb2x2ZSgnSGVsbG8gZnJvbSBzbWFydHByb21pc2UhJyk7CiAgfSwgMTAwKTsKCiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVmZXJyZWQucHJvbWlzZTsKICBjb25zb2xlLmxvZyhyZXN1bHQpOwp9Cgp0ZXN0U21hcnRQcm9taXNlKCk7CmB9fX19fTthd2FpdCBjZS5tb3VudChZZSl9KSgpLExlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0xlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IEtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtd29ya3NwYWNlIik7cmV0dXJuIEtlLmV4ZWN1dGlvbkVudmlyb25tZW50PWNlLEtlLmluaXRpYWxpemF0aW9uUHJvbWlzZT1kZSxMZS5hcHBlbmRDaGlsZChLZSksd2AKICAgICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgICAgJHtMZX0KICAgICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgYH0sImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPW9hKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoY2Upe3RoaXMuI2U9Y2V9I3Q9KG9hKHRoaXMsbCksb2EodGhpcyxkLG51bGwpKTtnZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxpemF0aW9uUHJvbWlzZShjZSl7dGhpcy4jdD1jZX0jYT0ob2EodGhpcyx1KSxvYSh0aGlzLGIsITApKTtnZXQgc2hvd0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dGaWxlVHJlZShjZSl7dGhpcy4jYT1jZX0jcz0ob2EodGhpcyx2KSxvYSh0aGlzLG0sITApKTtnZXQgc2hvd1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUZXJtaW5hbChjZSl7dGhpcy4jcz1jZX0jaT0ob2EodGhpcyxmKSxvYSh0aGlzLE0sMjUwKSk7Z2V0IGZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZmlsZVRyZWVXaWR0aChjZSl7dGhpcy4jaT1jZX0jcj0ob2EodGhpcyx6KSxvYSh0aGlzLEMsMjAwKSk7Z2V0IHRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRlcm1pbmFsSGVpZ2h0KGNlKXt0aGlzLiNyPWNlfSNvPShvYSh0aGlzLF8pLG9hKHRoaXMsJCxbXSkpO2dldCBvcGVuRmlsZXMoKXtyZXR1cm4gdGhpcy4jb31zZXQgb3BlbkZpbGVzKGNlKXt0aGlzLiNvPWNlfSNuPShvYSh0aGlzLEUpLG9hKHRoaXMsaywiIikpO2dldCBhY3RpdmVGaWxlUGF0aCgpe3JldHVybiB0aGlzLiNufXNldCBhY3RpdmVGaWxlUGF0aChjZSl7dGhpcy4jbj1jZX0jbD0ob2EodGhpcyxTKSxvYSh0aGlzLFAsITEpKTtnZXQgaXNUZXJtaW5hbENvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNsfXNldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKGNlKXt0aGlzLiNsPWNlfSNjPShvYSh0aGlzLFIpLG9hKHRoaXMsViwhMSkpO2dldCBpc0ZpbGVUcmVlQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoY2Upe3RoaXMuI2M9Y2V9I2Q9KG9hKHRoaXMsVyksb2EodGhpcyxCLCEwKSk7Z2V0IGlzSW5pdGlhbGl6aW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSW5pdGlhbGl6aW5nKGNlKXt0aGlzLiNkPWNlfSN1PShvYSh0aGlzLFUpLG9hKHRoaXMsRiwidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKGNlKXt0aGlzLiN1PWNlfSNwPShvYSh0aGlzLGopLG9hKHRoaXMsbGUsW10pKTtnZXQgZGlhZ25vc3RpY01hcmtlcnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZGlhZ25vc3RpY01hcmtlcnMoY2Upe3RoaXMuI3A9Y2V9ZWRpdG9yRWxlbWVudD0ob2EodGhpcyxRKSxudWxsKTtpbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITE7aW50ZWxsaVNlbnNlTWFuYWdlcj1udWxsO2ludGVsbGlTZW5zZUluaXRpYWxpemVkPSExO25vZGVNb2R1bGVzV2F0Y2hlcj1udWxsO25vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGw7aW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PW51bGw7b3BlbkZpbGVXYXRjaGVycz1uZXcgTWFwO2ZpbGVDaGFuZ2VEZWJvdW5jZT1uZXcgTWFwO2FjdGlvbmJhckVsZW1lbnQ9bnVsbDsjaD1vYSh0aGlzLHRlLCExKTtnZXQgYXV0b1NhdmUoKXtyZXR1cm4gdGhpcy4jaH1zZXQgYXV0b1NhdmUoY2Upe3RoaXMuI2g9Y2V9YXV0b1NhdmVJbnRlcnZhbD0ob2EodGhpcyxlZSksbnVsbCk7I2Y9b2EodGhpcyxYLCIiKTtnZXQgaW5pdENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZn1zZXQgaW5pdENvbW1hbmQoY2Upe3RoaXMuI2Y9Y2V9I209KG9hKHRoaXMsWiksb2EodGhpcyxxLFtdKSk7Z2V0IGluaXRPdXRwdXQoKXtyZXR1cm4gdGhpcy4jbX1zZXQgaW5pdE91dHB1dChjZSl7dGhpcy4jbT1jZX0jZz0ob2EodGhpcyxBKSxvYSh0aGlzLG9lLDI1MCkpO2dldCBjdXJyZW50RmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNnfXNldCBjdXJyZW50RmlsZVRyZWVXaWR0aChjZSl7dGhpcy4jZz1jZX0jYj0ob2EodGhpcyxhZSksb2EodGhpcyxSZSwyMDApKTtnZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2J9c2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodChjZSl7dGhpcy4jYj1jZX0jdj0ob2EodGhpcyxCZSksb2EodGhpcyxEZSwhMSkpO2dldCBpc0RyYWdnaW5nRmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKGNlKXt0aGlzLiN2PWNlfSN4PShvYSh0aGlzLF9lKSxvYSh0aGlzLHZlLCExKSk7Z2V0IGlzRHJhZ2dpbmdUZXJtaW5hbCgpe3JldHVybiB0aGlzLiN4fXNldCBpc0RyYWdnaW5nVGVybWluYWwoY2Upe3RoaXMuI3g9Y2V9I3k9KG9hKHRoaXMsYmUpLG9hKHRoaXMsamUsITEpKTtnZXQgc2hvd0RpZmZWaWV3KCl7cmV0dXJuIHRoaXMuI3l9c2V0IHNob3dEaWZmVmlldyhjZSl7dGhpcy4jeT1jZX0jdz0ob2EodGhpcyxXZSksb2EodGhpcyxNZSxudWxsKSk7Z2V0IGRpZmZWaWV3Q29uZmlnKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGRpZmZWaWV3Q29uZmlnKGNlKXt0aGlzLiN3PWNlfWtleWRvd25IYW5kbGVyPShvYSh0aGlzLGdlKSxjZT0+eyhjZS5tZXRhS2V5fHxjZS5jdHJsS2V5KSYmY2Uua2V5PT09InMiJiYhY2Uuc2hpZnRLZXkmJihjZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSksKGNlLm1ldGFLZXl8fGNlLmN0cmxLZXkpJiZjZS5zaGlmdEtleSYmY2Uua2V5LnRvTG93ZXJDYXNlKCk9PT0icyImJihjZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUFsbEZpbGVzKCkpfSk7aGFuZGxlRmlsZVRyZWVNb3VzZURvd249aShjZT0+e2NlLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCl9LCJoYW5kbGVGaWxlVHJlZU1vdXNlRG93biIpO2hhbmRsZUZpbGVUcmVlTW91c2VNb3ZlPWkoY2U9PntpZighdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUpcmV0dXJuO2xldCBkZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLExlPWNlLmNsaWVudFgtZGUubGVmdCxLZT0xNTAsWWU9ZGUud2lkdGgqLjUsb3Q9TWF0aC5tYXgoS2UsTWF0aC5taW4oWWUsTGUpKTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPW90fSwiaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUiKTtoYW5kbGVGaWxlVHJlZU1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfSwiaGFuZGxlRmlsZVRyZWVNb3VzZVVwIik7aGFuZGxlVGVybWluYWxNb3VzZURvd249aShjZT0+e2NlLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCl9LCJoYW5kbGVUZXJtaW5hbE1vdXNlRG93biIpO2hhbmRsZVRlcm1pbmFsTW91c2VNb3ZlPWkoY2U9PntpZighdGhpcy5pc0RyYWdnaW5nVGVybWluYWwpcmV0dXJuO2xldCBkZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLExlPWNlLmNsaWVudFktZGUudG9wLEtlPWRlLmhlaWdodC1MZSxZZT0xMDAsb3Q9ZGUuaGVpZ2h0Ki43LFV0PU1hdGgubWF4KFllLE1hdGgubWluKG90LEtlKSk7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9VXR9LCJoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSIpO2hhbmRsZVRlcm1pbmFsTW91c2VVcD1pKCgpPT57dGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVUZXJtaW5hbE1vdXNlVXAiKTtzdGF0aWMgc3R5bGVzPVtIZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAud29ya3NwYWNlLW91dGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1hcmVhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmVkaXRvci1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIG1heC13aWR0aDogMjAwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbW9kaWZpZWQgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnByb2JsZW1zLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDMycHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICAucGFuZWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDc1JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNDUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWItYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS5ub25lIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAucHJvYmxlbXMtbGlzdCB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDAgNzAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbS1tZXNzYWdlIHsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAucHJvYmxlbS1sb2NhdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbXMtZW1wdHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDU1JSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy1pY29uIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuaW5pdGlhbGl6aW5nIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY28gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBSZXNpemUgaGFuZGxlcyAqLwogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2ZTc2ODEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGN1cnNvcjogcm93LXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOmhvdmVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZmlsZXRyZWUtcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3ItcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtsZXQgY2U9WyJ3b3Jrc3BhY2UtY29udGFpbmVyIix0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZXx8dGhpcy5pc0RyYWdnaW5nVGVybWluYWw/ImRyYWdnaW5nIjoiIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtyZXR1cm4gdGhpcy5pc0luaXRpYWxpemluZz93YAogICAgICAgIDxkaXYgY2xhc3M9ImluaXRpYWxpemluZyI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsb2FkZXIyIn0gaWNvblNpemU9IjMyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPkluaXRpYWxpemluZyB3b3Jrc3BhY2UuLi48L3NwYW4+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAgICAgICAuY29tbWFuZD0ke3RoaXMuaW5pdENvbW1hbmR8fCIifQogICAgICAgICAgICAubGluZXM9JHt0aGlzLmluaXRPdXRwdXR9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1vdXRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iJHtjZX0iPgogICAgICAgICAgPCEtLSBGaWxldHJlZSBwYW5lbCAoZnVsbCBoZWlnaHQpIC0tPgogICAgICAgICAgJHt0aGlzLnNob3dGaWxlVHJlZT93YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9ImZpbGV0cmVlLXBhbmVsICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPzA6dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aH1weCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1maWxldHJlZQogICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgIC5zZWxlY3RlZFBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgQGZpbGUtc2VsZWN0PSR7dGhpcy5oYW5kbGVGaWxlU2VsZWN0fQogICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLWZpbGV0cmVlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/IiI6d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZS12ZXJ0aWNhbCAke3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8IS0tIEVkaXRvciArIFRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItYXJlYSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1wYW5lbCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAke3RoaXMub3BlbkZpbGVzLm1hcChkZT0+d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiICR7ZGUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGg/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZhdGVGaWxlKGRlLnBhdGgpfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICR7ZGUubW9kaWZpZWQ/d2A8c3BhbiBjbGFzcz0idGFiLW1vZGlmaWVkIj48L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbmFtZSI+JHtkZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke0xlPT50aGlzLmNsb3NlRmlsZShMZSxkZS5wYXRoKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLW1lbnUtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnNob3dFZGl0b3JNZW51fSB0aXRsZT0iRWRpdG9yIG9wdGlvbnMiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTptb3JlVmVydGljYWwifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNob3dEaWZmVmlldyYmdGhpcy5kaWZmVmlld0NvbmZpZz93YAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IKICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm9yaWdpbmFsQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubW9kaWZpZWRDb250ZW50PSR7dGhpcy5kaWZmVmlld0NvbmZpZy5tb2RpZmllZENvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5kaWZmVmlld0NvbmZpZy5sYW5ndWFnZX0KICAgICAgICAgICAgICAgICAgICBAZGlmZi1yZXNvbHZlZD0ke3RoaXMuaGFuZGxlRGlmZlJlc29sdmVkfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLWNsb3NlZD0keygpPT57dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsfX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgICAgICAgICAgICAgICBgOnRoaXMub3BlbkZpbGVzLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmZpbGVDb2RlIn0gaWNvblNpemU9IjQ4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZWxlY3QgYSBmaWxlIHRvIGVkaXQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgICAgICAgICAgLmZpbGVQYXRoPSR7dGhpcy5hY3RpdmVGaWxlUGF0aH0KICAgICAgICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMuZ2V0QWN0aXZlRmlsZUNvbnRlbnQoKX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCl9CiAgICAgICAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gSG9yaXpvbnRhbCByZXNpemUgaGFuZGxlIGZvciB0ZXJtaW5hbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbCYmIXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLWhvcml6b250YWwgJHt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VEb3dufQogICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgIDwhLS0gVGVybWluYWwgcGFuZWwgLS0+CiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWw/d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtcGFuZWwgJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/MzI6dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHR9cHgiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtdGFicyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InBhbmVsLXRhYiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0idGVybWluYWwiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJ0ZXJtaW5hbCJ9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgVGVybWluYWwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJwcm9ibGVtcyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InByb2JsZW1zIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaXJjbGVBbGVydCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBQcm9ibGVtcwogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYW5lbC10YWItYmFkZ2UgJHt0aGlzLmdldEVycm9yQ291bnQoKT09PTA/Indhcm5pbmciOiIifSI+JHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWFjdGlvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVUZXJtaW5hbH0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblVwIjoibHVjaWRlOmNoZXZyb25Eb3duIn0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCIgc3R5bGU9ImRpc3BsYXk6ICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImJsb2NrIjoibm9uZSJ9Ij4KICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsCiAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgICAgICAuc2V0dXBDb21tYW5kPSR7IiJ9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyUHJvYmxlbXNQYW5lbCgpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBCb3R0b20gQmFyIChmdWxsIHdpZHRoKSAtLT4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyCiAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgQHJ1bi1wcm9jZXNzPSR7dGhpcy5oYW5kbGVSdW5Qcm9jZXNzfQogICAgICAgID48L2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhcj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5rZXlkb3duSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksdGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKSx0aGlzLnN0b3BOb2RlTW9kdWxlc1dhdGNoZXIoKSx0aGlzLnN0b3BBbGxGaWxlV2F0Y2hlcnMoKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZVdvcmtzcGFjZSgpfWFzeW5jIHVwZGF0ZWQoY2Upe2NlLmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCksdGhpcy5hY3Rpb25iYXJFbGVtZW50fHwodGhpcy5hY3Rpb25iYXJFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmVkaXRvci1wYW5lbCBkZWVzLWFjdGlvbmJhciIpKX1hc3luYyBpbml0aWFsaXplV29ya3NwYWNlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkKXt0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMCx0aGlzLmlzSW5pdGlhbGl6aW5nPSEwO3RyeXt0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZT9hd2FpdCB0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZTp0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSxhd2FpdCB0aGlzLmV4ZWN1dGVPbkluaXRDb21tYW5kKCl9Y2F0Y2goY2Upe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIHdvcmtzcGFjZToiLGNlKSx0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNJbml0aWFsaXppbmc9ITF9fX1hc3luYyBleGVjdXRlT25Jbml0Q29tbWFuZCgpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbnBtZXh0cmEuanNvbiIpKXtsZXQgY2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL25wbWV4dHJhLmpzb24iKSxMZT1KU09OLnBhcnNlKGNlKT8uZGVlc0VkaXRvcldvcmtzcGFjZT8ub25Jbml0O2lmKExlJiZ0eXBlb2YgTGU9PSJzdHJpbmciKXtjb25zb2xlLmxvZygiRXhlY3V0aW5nIG9uSW5pdCBjb21tYW5kOiIsTGUpLHRoaXMuaW5pdENvbW1hbmQ9TGUsdGhpcy5pbml0T3V0cHV0PVtdO2xldFtLZSwuLi5ZZV09TGUuc3BsaXQoIiAiKSxvdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKEtlLFllKTtvdC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShadD0+e2xldCBqYT1adC5zcGxpdChgCmApO2ZvcihsZXQgZXQgb2YgamEpZXQmJih0aGlzLmluaXRPdXRwdXQ9Wy4uLnRoaXMuaW5pdE91dHB1dCxldF0pfSwid3JpdGUiKX0pKTtsZXQgVXQ9YXdhaXQgb3QuZXhpdDtjb25zb2xlLmxvZygib25Jbml0IGNvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiIsVXQpLHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LCIiLGBDb21tYW5kIGNvbXBsZXRlZCB3aXRoIGV4aXQgY29kZTogJHtVdH1gXX19fWNhdGNoKGNlKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBleGVjdXRlIG9uSW5pdCBjb21tYW5kOiIsY2UpfX1hc3luYyBpbml0aWFsaXplSW50ZWxsaVNlbnNlKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpcmV0dXJuO2xldCBjZT13aW5kb3cubW9uYWNvO2lmKGNlfHwoYXdhaXQgbmV3IFByb21pc2UoZGU9PnNldFRpbWVvdXQoZGUsMTAwKSksY2U9d2luZG93Lm1vbmFjbyksIWNlKXtjb25zb2xlLndhcm4oIk1vbmFjbyBub3QgeWV0IGxvYWRlZCwgSW50ZWxsaVNlbnNlIHdpbGwgYmUgaW5pdGlhbGl6ZWQgbGF0ZXIiKTtyZXR1cm59dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZD0hMCx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI9bmV3IGxRLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KGNlLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuc2V0dXBNYXJrZXJMaXN0ZW5lcigpLHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKSxhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX1zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyKSl0cnl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiL25vZGVfbW9kdWxlcyIsKGNlLGRlKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChjZSl7Y29uc29sZS53YXJuKCJDb3VsZCBub3Qgd2F0Y2ggbm9kZV9tb2R1bGVzOiIsY2UpfX1zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXImJih0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlci5zdG9wKCksdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9bnVsbCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0V2F0Y2hpbmdGaWxlKGNlKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKGNlKSkpdHJ5e2xldCBkZT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKGNlLChMZSxLZSk9PntsZXQgWWU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtZZSYmY2xlYXJUaW1lb3V0KFllKTtsZXQgb3Q9c2V0VGltZW91dCgoKT0+e3RoaXMuaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGNlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoY2UpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChjZSxvdCl9KTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuc2V0KGNlLGRlKX1jYXRjaChkZSl7Y29uc29sZS53YXJuKGBDb3VsZCBub3Qgd2F0Y2ggZmlsZSAke2NlfTpgLGRlKX19c3RvcFdhdGNoaW5nRmlsZShjZSl7bGV0IGRlPXRoaXMub3BlbkZpbGVXYXRjaGVycy5nZXQoY2UpO2RlJiYoZGUuc3RvcCgpLHRoaXMub3BlbkZpbGVXYXRjaGVycy5kZWxldGUoY2UpKTtsZXQgTGU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtMZSYmKGNsZWFyVGltZW91dChMZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGNlKSl9c3RvcEFsbEZpbGVXYXRjaGVycygpe2ZvcihsZXQgY2Ugb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKWNlLnN0b3AoKTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuY2xlYXIoKTtmb3IobGV0IGNlIG9mIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnZhbHVlcygpKWNsZWFyVGltZW91dChjZSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoY2Upe2xldCBkZT10aGlzLm9wZW5GaWxlcy5maW5kKExlPT5MZS5wYXRoPT09Y2UpO2lmKCEoIWRlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2xldCBMZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGNlKTtpZihMZT09PWRlLmNvbnRlbnQpcmV0dXJuO2lmKGRlLm1vZGlmaWVkKXtsZXQgS2U9YXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHttZXNzYWdlOmAiJHtkZS5uYW1lfSIgY2hhbmdlZCBvbiBkaXNrLiBXaGF0IGRvIHlvdSB3YW50IHRvIGRvP2AsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpnaXRNZXJnZSIsYWN0aW9uczpbe2lkOiJsb2FkLWRpc2siLGxhYmVsOiJMb2FkIGZyb20gRGlzayIscHJpbWFyeTohMH0se2lkOiJzYXZlLWxvY2FsIixsYWJlbDoiU2F2ZSBMb2NhbCB0byBEaXNrIn0se2lkOiJjb21wYXJlIixsYWJlbDoiQ29tcGFyZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxNWUzLGRlZmF1bHRBY3Rpb25JZDoibG9hZC1kaXNrIn0sZGlzbWlzc2libGU6ITB9KTtLZT8uYWN0aW9uSWQ9PT0ibG9hZC1kaXNrIj9hd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGNlLExlLCExKTpLZT8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLGRlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChZZT0+WWUucGF0aD09PWNlP3suLi5ZZSxtb2RpZmllZDohMX06WWUpKTpLZT8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KGNlLGRlLmNvbnRlbnQsTGUpfWVsc2UgYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChjZSxMZSwhMCl9Y2F0Y2goTGUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7Y2V9OmAsTGUpfX1hc3luYyB1cGRhdGVGaWxlQ29udGVudChjZSxkZSxMZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKEtlPT5LZS5wYXRoPT09Y2U/ey4uLktlLGNvbnRlbnQ6ZGUsbW9kaWZpZWQ6ITF9OktlKSxjZT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBLZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO0tlJiZhd2FpdCBLZS5zZXRDb250ZW50RXh0ZXJuYWwoZGUsTGUpfX1vcGVuRGlmZlZpZXcoY2UsZGUsTGUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOmNlLG9yaWdpbmFsQ29udGVudDpMZSxtb2RpZmllZENvbnRlbnQ6ZGUsbGFuZ3VhZ2U6dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGNlKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGNlKXtsZXR7YWN0aW9uOmRlLGNvbnRlbnQ6TGV9PWNlLmRldGFpbCxLZT10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZighS2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKGRlPT09InVzZS1sb2NhbCIpe2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEtlLExlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoWWU9PlllLnBhdGg9PT1LZT97Li4uWWUsY29udGVudDpMZSxtb2RpZmllZDohMX06WWUpLEtlPT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IFllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7WWUmJmF3YWl0IFllLnNldENvbnRlbnRFeHRlcm5hbChMZSwhMSl9fWVsc2UgZGU9PT0idXNlLWRpc2siJiZhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KEtlLExlLCExKTt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9YXN5bmMgaGFuZGxlRmlsZVNlbGVjdChjZSl7bGV0e3BhdGg6ZGUsbmFtZTpMZX09Y2UuZGV0YWlsO2F3YWl0IHRoaXMub3BlbkZpbGUoZGUsTGUpfWFzeW5jIG9wZW5GaWxlKGNlLGRlKXtpZih0aGlzLm9wZW5GaWxlcy5maW5kKEtlPT5LZS5wYXRoPT09Y2UpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWNlO3JldHVybn1pZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgS2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShjZSk7aWYodGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLHtwYXRoOmNlLG5hbWU6ZGUsY29udGVudDpLZSxtb2RpZmllZDohMX1dLHRoaXMuYWN0aXZlRmlsZVBhdGg9Y2UsdGhpcy5zdGFydFdhdGNoaW5nRmlsZShjZSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2Uob3Q9PnNldFRpbWVvdXQob3QsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IFllPXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChjZSk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnByb2Nlc3NDb250ZW50Q2hhbmdlKEtlKX19Y2F0Y2goS2Upe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGZpbGUgJHtjZX06YCxLZSl9fWFjdGl2YXRlRmlsZShjZSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1jZX1jbG9zZUZpbGUoY2UsZGUpe2NlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBMZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgoWWU9PlllLnBhdGg9PT1kZSk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZighKEtlLm1vZGlmaWVkJiYhY29uZmlybShgJHtLZS5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCkpJiYodGhpcy5zdG9wV2F0Y2hpbmdGaWxlKGRlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIoWWU9PlllLnBhdGghPT1kZSksdGhpcy5hY3RpdmVGaWxlUGF0aD09PWRlKSlpZih0aGlzLm9wZW5GaWxlcy5sZW5ndGg+MCl7bGV0IFllPU1hdGgubWluKExlLHRoaXMub3BlbkZpbGVzLmxlbmd0aC0xKTt0aGlzLmFjdGl2ZUZpbGVQYXRoPXRoaXMub3BlbkZpbGVzW1llXS5wYXRofWVsc2UgdGhpcy5hY3RpdmVGaWxlUGF0aD0iIn1nZXRBY3RpdmVGaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm9wZW5GaWxlcy5maW5kKGRlPT5kZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk/LmNvbnRlbnR8fCIifWhhbmRsZUNvbnRlbnRDaGFuZ2UoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KFllPT5ZZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZihLZS5jb250ZW50IT09ZGUpe3RoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcy5zbGljZSgwLExlKSx7Li4uS2UsY29udGVudDpkZSxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoTGUrMSldO2xldCBZZT10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKGRlKX0sNTAwKSl9fWdldExhbmd1YWdlRnJvbVBhdGgoY2Upe2xldCBkZT1jZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybnt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIsbWQ6Im1hcmtkb3duIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixzcWw6InNxbCIscHk6InB5dGhvbiIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCJ9W2RlfHwiIl18fCJwbGFpbnRleHQifXRvZ2dsZVRlcm1pbmFsKCl7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWR9YXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKXtsZXQgY2U9dGhpcy5vcGVuRmlsZXMuZmluZChkZT0+ZGUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKCEoIWNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLnBhdGgsY2UuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGRlPT5kZS5wYXRoPT09Y2UucGF0aD97Li4uZGUsbW9kaWZpZWQ6ITF9OmRlKSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgZmlsZToiLGRlKX19YXN5bmMgc2F2ZUFsbEZpbGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7Zm9yKGxldCBjZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoZGU9PmRlLm1vZGlmaWVkKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoY2UucGF0aCxjZS5jb250ZW50KSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHNhdmUgJHtjZS5wYXRofTpgLGRlKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoY2U9Pih7Li4uY2UsbW9kaWZpZWQ6ITF9KSl9fWFzeW5jIHNob3dFZGl0b3JNZW51KGNlKXtjZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgZGU9W3tuYW1lOnRoaXMuYXV0b1NhdmU/Ilx1MjcxMyBBdXRvIFNhdmUiOiJBdXRvIFNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50b2dnbGVBdXRvU2F2ZSgpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246aShhc3luYygpPT50aGlzLnNhdmVBbGxGaWxlcygpLCJhY3Rpb24iKX1dO2F3YWl0IGthLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGNlLGRlKX10b2dnbGVBdXRvU2F2ZSgpe3RoaXMuYXV0b1NhdmU9IXRoaXMuYXV0b1NhdmUsdGhpcy5hdXRvU2F2ZT90aGlzLmF1dG9TYXZlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLm9wZW5GaWxlcy5zb21lKGRlPT5kZS5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKGNlPT5jZS5zZXZlcml0eT09PTgpLmxlbmd0aH1yZW5kZXJQcm9ibGVtc1BhbmVsKCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPT09MD93YAogICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrQ2lyY2xlIn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIHByb2JsZW1zIGRldGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWxpc3QiPgogICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAoY2U9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKGNlKX0+CiAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICBjbGFzcz0icHJvYmxlbS1pY29uICR7Y2Uuc2V2ZXJpdHk9PT04PyJlcnJvciI6Indhcm5pbmcifSIKICAgICAgICAgICAgICAuaWNvbj0ke2NlLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke2NlLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1sb2NhdGlvbiI+CiAgICAgICAgICAgICAgICAke2NlLnJlc291cmNlLnBhdGguc3BsaXQoIi8iKS5wb3AoKX0gKCR7Y2Uuc3RhcnRMaW5lTnVtYmVyfSwgJHtjZS5zdGFydENvbHVtbn0pCiAgICAgICAgICAgICAgICAke2NlLnNvdXJjZT9gWyR7Y2Uuc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oY2Upe2xldCBkZT1jZS5yZXNvdXJjZS5wYXRoLExlPWRlLnNwbGl0KCIvIikucG9wKCl8fCIiO3RoaXMub3BlbkZpbGVzLmZpbmQob3Q9Pm90LnBhdGg9PT1kZSk/dGhpcy5hY3RpdmVGaWxlUGF0aD1kZTphd2FpdCB0aGlzLm9wZW5GaWxlKGRlLExlKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBZZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2lmKFllKXtsZXQgb3Q9YXdhaXQgWWUuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtvdC5yZXZlYWxMaW5lSW5DZW50ZXIoY2Uuc3RhcnRMaW5lTnVtYmVyKSxvdC5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpjZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmNlLnN0YXJ0Q29sdW1ufSksb3QuZm9jdXMoKX19c2V0dXBNYXJrZXJMaXN0ZW5lcigpe2xldCBjZT13aW5kb3cubW9uYWNvO2NlJiYoY2UuZWRpdG9yLm9uRGlkQ2hhbmdlTWFya2VycyhkZT0+e3RoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKX0pLHRoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKSl9dXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKXtsZXQgY2U9d2luZG93Lm1vbmFjbztpZighY2UpcmV0dXJuO2xldCBkZT1jZS5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPWRlLm1hcChMZT0+KHttZXNzYWdlOkxlLm1lc3NhZ2Usc2V2ZXJpdHk6TGUuc2V2ZXJpdHksc3RhcnRMaW5lTnVtYmVyOkxlLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpMZS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOkxlLmVuZExpbmVOdW1iZXIsZW5kQ29sdW1uOkxlLmVuZENvbHVtbixzb3VyY2U6TGUuc291cmNlLHJlc291cmNlOntwYXRoOkxlLnJlc291cmNlLnBhdGh9fSkpfWFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpO2lmKCFMZSl7Y29uc29sZS53YXJuKCJUZXJtaW5hbCBjb21wb25lbnQgbm90IGZvdW5kIik7cmV0dXJufXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCYmKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hMSksdGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwiLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgTGUuY3JlYXRlUHJvY2Vzc1RhYih7dHlwZTpkZS50eXBlLGxhYmVsOmRlLmxhYmVsLGNvbW1hbmQ6ZGUuY29tbWFuZCxhcmdzOmRlLmFyZ3MsbWV0YWRhdGE6ZGUubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCouNTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPU1hdGgubWF4KDE1MCxNYXRoLm1pbihMZSxjZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXNldFRlcm1pbmFsSGVpZ2h0KGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKExlLGNlKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9cmVzZXRMYXlvdXQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXN0YXRpY3tvYShhLHQpfX07cmV0dXJuIEllPWF9KSgpfSk7dmFyIHA3YT1nKCgpPT57dTdhKCk7anJ0KCl9KTt2YXIgaDdhPWcoKCk9PntQOCgpfSk7dmFyIGY3YT1nKCgpPT57dzFlKCl9KTt2YXIgbTdhPWcoKCk9Pnt9KTt2YXIgZzdhPWcoKCk9PntvUSgpO203YSgpO1BydCgpfSk7dmFyIGI3YT1nKCgpPT57SHJ0KCl9KTt2YXIgY1EsenUsV1NvLHY3YSx4N2E9ZygoKT0+e3BlKCk7cHQoKTtQOCgpO2NRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6dT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sV1NvPWx0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCksdjdhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1hcmtkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bWSgpXSx4PVtZKCldLGNRKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNwbGl0UmF0aW8sImdldCIpLHNldDppKCh6LE4pPT57ei5zcGxpdFJhdGlvPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxjUSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibWluUGFuZWxTaXplImluIHosImhhcyIpLGdldDppKHo9PnoubWluUGFuZWxTaXplLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWluUGFuZWxTaXplPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxjUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50U3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmN1cnJlbnRTcGxpdFJhdGlvLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY3VycmVudFNwbGl0UmF0aW89Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGNRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNEcmFnZ2luZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzRHJhZ2dpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5pc0RyYWdnaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxjUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3duPjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bSGUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuZWRpdG9yQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzAzNjNkIil9OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3JDb250YWluZXIsCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07I2U9enUodGhpcyxvLDUwKTtnZXQgc3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNlfXNldCBzcGxpdFJhdGlvKE0pe3RoaXMuI2U9TX0jdD0oenUodGhpcyxsKSx6dSh0aGlzLGQsMTApKTtnZXQgbWluUGFuZWxTaXplKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblBhbmVsU2l6ZShNKXt0aGlzLiN0PU19I2E9KHp1KHRoaXMsdSksenUodGhpcyxiLDUwKSk7Z2V0IGN1cnJlbnRTcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRTcGxpdFJhdGlvKE0pe3RoaXMuI2E9TX0jcz0oenUodGhpcyx2KSx6dSh0aGlzLG0sITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNzfXNldCBpc0RyYWdnaW5nKE0pe3RoaXMuI3M9TX1yZXNpemVIYW5kbGVFbGVtZW50PXp1KHRoaXMsZik7Y29udGFpbmVyRWxlbWVudDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic3BsaXRDb250YWluZXIgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvckNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAke3RoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5sYW5ndWFnZT0keyJtYXJrZG93biJ9CiAgICAgICAgICAgIC5jb250ZW50PSR7YCMgYSB0ZXN0IGNvbnRlbnQKClRoaXMgaXMgdGVzdCBjb250ZW50IHRoYXQgaXMgb2YgbG9uZ2VyIGZvcm0gYW4gaG9wZWZ1bGx5IHN0YXJ0cyB0byB3cmFwIHdoZW4gSSBuZWVkIGl0LiBBbmQgeWVzLCBpdCBkb2VzIHBlcmZlY3RseS4gbmljZS4KClRlc3QgfCBIZWxsbwotLS0gfCAtLS0KWWVhaCB8IFNvIGdvb2QKClRoaXMgaXMgcmVhbCBhc3NldCBJIHRoaW5rLiBXaHkgd291bGQgd2Ugd2FudCB0byBsZWF2ZSB0aGF0IG9uIHRoZSB0YWJsZT8gQ2FuIHlvdSB0ZWxsIG15IHRoYXQ/CgpXaHkgYXJlIHdlIGhlcmU/CgpEbyB5b3Uga25vdz8KCj4gbm90ZToKVGhlcmUgaXMgc29tZXRoaW5nIGdvaW5nIG9uLgoKXGBcYFxgdHlwZXNjcmlwdApjb25zdCBoZWxsbyA9ICd5ZXMnClxgXGBcYApgfQogICAgICAgICAgICB3b3JkV3JhcD0iYm91bmRlZCIKICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgID48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvdXRsZXRDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHsxMDAtdGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKE0pe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChNKSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpbyx0aGlzLmNvbnRhaW5lckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zcGxpdENvbnRhaW5lciIpLHRoaXMucmVzaXplSGFuZGxlRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnJlc2l6ZUhhbmRsZSIpO2xldCB6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxOPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpLF89YXdhaXQgbmV3IGx0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duKCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oImxvYWRpbmcuLi4iKTt6LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShhc3luYyBPPT57YXdhaXQgXy51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoTyk7bGV0ICQ9Xy5odG1sO04udXBkYXRlSHRtbFRleHQoJCl9KX1oYW5kbGVNb3VzZURvd249aShNPT57TS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZz0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfSwiaGFuZGxlTW91c2VEb3duIik7aGFuZGxlTW91c2VNb3ZlPWkoTT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmd8fCF0aGlzLmNvbnRhaW5lckVsZW1lbnQpcmV0dXJuO2xldCB6PXRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxOPXoud2lkdGgsXz0oTS5jbGllbnRYLXoubGVmdCkvTioxMDA7Xz1NYXRoLm1heCh0aGlzLm1pblBhbmVsU2l6ZSxNYXRoLm1pbigxMDAtdGhpcy5taW5QYW5lbFNpemUsXykpLHRoaXMuY3VycmVudFNwbGl0UmF0aW89X30sImhhbmRsZU1vdXNlTW92ZSIpO2hhbmRsZU1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSYmd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVNb3VzZVVwIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9c2V0U3BsaXRSYXRpbyhNKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxNKSl9cmVzZXRTcGxpdFJhdGlvKCl7dGhpcy5jdXJyZW50U3BsaXRSYXRpbz10aGlzLnNwbGl0UmF0aW99c3RhdGlje3p1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB5N2E9ZygoKT0+e3g3YSgpfSk7dmFyIHc3YSxrN2E9ZygoKT0+e3BlKCk7SXQoKTtmbygpO3c3YT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPCEtLSBEZW1vIDE6IEhlYWRpbmdzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJIZWFkaW5ncyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkFsbCBoZWFkaW5nIGxldmVscyBmcm9tIEgxIHRvIEg2In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5IZWFkaW5nIExldmVsIDE8L2gxPgogICAgICAgICAgICA8aDI+SGVhZGluZyBMZXZlbCAyPC9oMj4KICAgICAgICAgICAgPGgzPkhlYWRpbmcgTGV2ZWwgMzwvaDM+CiAgICAgICAgICAgIDxoND5IZWFkaW5nIExldmVsIDQ8L2g0PgogICAgICAgICAgICA8aDU+SGVhZGluZyBMZXZlbCA1PC9oNT4KICAgICAgICAgICAgPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDI6IFRleHQgRm9ybWF0dGluZyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGV4dCBGb3JtYXR0aW5nIn0KICAgICAgICAuc3VidGl0bGU9JHsiQm9sZCwgaXRhbGljLCBsaW5rcywgY29kZSwgYW5kIGtleWJvYXJkIGlucHV0In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBwYXJhZ3JhcGggd2l0aCA8c3Ryb25nPmJvbGQgdGV4dDwvc3Ryb25nPiBhbmQgPGVtPml0YWxpYyB0ZXh0PC9lbT4uPC9wPgogICAgICAgICAgICA8cD5Zb3UgY2FuIGFsc28gdXNlIDxzdHJvbmc+PGVtPmJvbGQgaXRhbGljPC9lbT48L3N0cm9uZz4gZm9yIGVtcGhhc2lzLjwvcD4KICAgICAgICAgICAgPHA+SGVyZSdzIGEgPGEgaHJlZj0iIyI+bGluayBleGFtcGxlPC9hPiBhbmQgc29tZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4uPC9wPgogICAgICAgICAgICA8cD5QcmVzcyA8a2JkPkN0cmw8L2tiZD4gKyA8a2JkPkM8L2tiZD4gdG8gY29weSB0ZXh0LjwvcD4KICAgICAgICAgICAgPGhyPgogICAgICAgICAgICA8cD5BYm92ZSBpcyBhIGhvcml6b250YWwgcnVsZSBzZXBhcmF0b3IuPC9wPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAzOiBMaXN0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiTGlzdHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJPcmRlcmVkLCB1bm9yZGVyZWQsIGFuZCB0YXNrIGxpc3RzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+Rmlyc3QgaXRlbTwvbGk+CiAgICAgICAgICAgICAgPGxpPlNlY29uZCBpdGVtCiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAxPC9saT4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDI8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UaGlyZCBpdGVtPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxoMz5PcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgb25lPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0d288L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHRocmVlPC9saT4KICAgICAgICAgICAgPC9vbD4KCiAgICAgICAgICAgIDxoMz5UYXNrIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkIGRpc2FibGVkPiBDb21wbGV0ZWQgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gUGVuZGluZyB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBBbm90aGVyIHRhc2s8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA0OiBDb2RlIEJsb2NrcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQ29kZSBCbG9ja3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJTeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBleGFtcGxlcyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5JbmxpbmUgY29kZTogPGNvZGU+Y29uc3QgZ3JlZXRpbmcgPSAiSGVsbG8sIFdvcmxkISI7PC9jb2RlPjwvcD4KCiAgICAgICAgICAgIDxoMz5UeXBlU2NyaXB0IEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBodG1sLCBjc3MgfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmludGVyZmFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPklVc2VyPC9zcGFuPiB7CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+bmFtZTwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmVtYWlsPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+YWdlPC9zcGFuPj86IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5udW1iZXI8L3NwYW4+Owp9Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPmdldFVzZXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXN5bmM8L3NwYW4+ICg8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5pZDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+KTogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPlByb21pc2U8L3NwYW4+Jmx0O0lVc2VyJmd0OyA9Jmd0OyB7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IHJlc3BvbnNlID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXdhaXQ8L3NwYW4+IGZldGNoKFxgL2FwaS91c2Vycy9cJHtpZH1cYCk7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+cmV0dXJuPC9zcGFuPiByZXNwb25zZS5qc29uKCk7Cn07PC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgzPkpTT04gRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+ewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJuYW1lIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+ImRlZXMtY2F0YWxvZyI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJ2ZXJzaW9uIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+IjMuMC4wIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ImRlcGVuZGVuY2llcyI8L3NwYW4+OiB7CiAgICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Ijwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+Il4yLjAuMCI8L3NwYW4+CiAgfQp9PC9jb2RlPjwvcHJlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA1OiBUYWJsZXMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRhYmxlcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN0eWxlZCB0YWJsZXMgd2l0aCBhbHRlcm5hdGluZyByb3dzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5GZWF0dXJlPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5Qcmlvcml0eTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RGFyayBtb2RlIHN1cHBvcnQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+Q29tcGxldGVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPlJlc3BvbnNpdmUgZGVzaWduPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1lZGl1bTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+QWNjZXNzaWJpbGl0eTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QbGFubmVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRvY3VtZW50YXRpb248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TG93PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNjogQmxvY2txdW90ZXMgJiBBbGVydHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkJsb2NrcXVvdGVzICYgQWxlcnRzIn0KICAgICAgICAuc3VidGl0bGU9JHsiUXVvdGVzIGFuZCBHaXRIdWItc3R5bGUgYWxlcnRzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzdGFuZGFyZCBibG9ja3F1b3RlLiBJdCdzIGdyZWF0IGZvciBoaWdobGlnaHRpbmcgaW1wb3J0YW50IGluZm9ybWF0aW9uIG9yIHF1b3RlcyBmcm9tIG90aGVyIHNvdXJjZXMuPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1ub3RlIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBub3RlIHRvIGRyYXcgYXR0ZW50aW9uIHRvIGltcG9ydGFudCBkZXRhaWxzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBIZXJlJ3MgYSBoZWxwZnVsIHRpcCB0byBpbXByb3ZlIHlvdXIgd29ya2Zsb3cuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5JbXBvcnRhbnQ6PC9zdHJvbmc+IFRoaXMgaW5mb3JtYXRpb24gaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdG9waWMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXdhcm5pbmciPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gQmUgY2FyZWZ1bCB3aGVuIHBlcmZvcm1pbmcgdGhpcyBhY3Rpb24uPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWNhdXRpb24iPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Q2F1dGlvbjo8L3N0cm9uZz4gVGhpcyBhY3Rpb24gbWF5IGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNzogRnVsbCBEb2N1bWVudCAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRnVsbCBEb2N1bWVudCJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkEgY29tcGxldGUgbWFya2Rvd24gZG9jdW1lbnQgZXhhbXBsZSJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+R2V0dGluZyBTdGFydGVkIEd1aWRlPC9oMT4KICAgICAgICAgICAgPHA+V2VsY29tZSB0byB0aGUgPHN0cm9uZz5kZWVzLWNhdGFsb2c8L3N0cm9uZz4gY29tcG9uZW50IGxpYnJhcnkuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBnZXQgdXAgYW5kIHJ1bm5pbmcgcXVpY2tseS48L3A+CgogICAgICAgICAgICA8aDI+SW5zdGFsbGF0aW9uPC9oMj4KICAgICAgICAgICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyB5b3VyIHByZWZlcnJlZCBwYWNrYWdlIG1hbmFnZXI6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgcG5wbSAocmVjb21tZW5kZWQpPC9zcGFuPgpwbnBtIGFkZCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgbnBtPC9zcGFuPgpucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDI+QmFzaWMgVXNhZ2U8L2gyPgogICAgICAgICAgICA8cD5JbXBvcnQgYW5kIHVzZSBjb21wb25lbnRzIGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlczo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IERlZXNCdXR0b24gfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPi8vIFVzZSBpbiB5b3VyIHRlbXBsYXRlczwvc3Bhbj4KaHRtbFxgJmx0O2RlZXMtYnV0dG9uJmd0O0NsaWNrIG1lJmx0Oy9kZWVzLWJ1dHRvbiZndDtcYDwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IENoZWNrIHRoZSBkZW1vIHNob3djYXNlIGZvciBsaXZlIGV4YW1wbGVzIG9mIGFsbCBjb21wb25lbnRzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8aDI+QXZhaWxhYmxlIENvbXBvbmVudHM8L2gyPgogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+Q29tcG9uZW50PC90aD4KICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWJ1dHRvbjwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UHJpbWFyeSBidXR0b24gY29tcG9uZW50PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWlucHV0LXRleHQ8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlRleHQgaW5wdXQgZmllbGQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtdGFibGU8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkRhdGEgdGFibGUgd2l0aCBzb3J0aW5nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLW1vZGFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Nb2RhbCBkaWFsb2c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgPGgyPk5leHQgU3RlcHM8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkV4cGxvcmUgdGhlIDxhIGhyZWY9IiMiPmNvbXBvbmVudCBkb2N1bWVudGF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkNoZWNrIG91dCB0aGUgPGEgaHJlZj0iIyI+dGhlbWluZyBndWlkZTwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5Kb2luIG91ciA8YSBocmVmPSIjIj5jb21tdW5pdHkgRGlzY29yZDwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+IlRoZSBiZXN0IGNvbXBvbmVudCBsaWJyYXJ5IGlzIG9uZSB0aGF0IGdldHMgb3V0IG9mIHlvdXIgd2F5LiIgXHUyMDE0IERlc2lnbiBTeXN0ZW1zIFRlYW08L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgX1FhLE1RYSxTN2EsXzdhPWcoKCk9PntwZSgpO3B0KCk7azdhKCk7X1FhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNUWE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFM3YT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO19RYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBkZW1vPXc3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W0hlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChvKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobyksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChvKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPW99c3RhdGlje01RYShhLHQpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgTTdhPWcoKCk9PntfN2EoKX0pO3ZhciB6N2E9ZygoKT0+e3FydCgpfSk7dmFyIEM3YT1nKCgpPT57VnJ0KCl9KTt2YXIgVDdhPWcoKCk9PntwN2EoKTtoN2EoKTtmN2EoKTtnN2EoKTtiN2EoKTt5N2EoKTtNN2EoKTt6N2EoKTtDN2EoKX0pO3ZhciAkN2E9ZygoKT0+e30pO3ZhciBEN2E9ZygoKT0+eyQ3YSgpfSk7dmFyIEw3YT1nKCgpPT57cGUoKX0pO3ZhciBFN2E9ZygoKT0+e0w3YSgpfSk7dmFyIFA3YT1nKCgpPT57em4oKTtwdCgpO2RmYSgpO3dmYSgpO3ZtYSgpO0ZtYSgpO2Q2YSgpO2g2YSgpO1A2YSgpO0M1YSgpO1A4YSgpO3E4YSgpO3gxZSgpO0hnYSgpO3I3YSgpO1Q3YSgpO0Q3YSgpO0U3YSgpfSk7dmFyIEk3YSxBN2E9ZygoKT0+e0k3YT17bmFtZToiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIix2ZXJzaW9uOiIzLjgyLjAiLGRlc2NyaXB0aW9uOiJBIGNvbXByZWhlbnNpdmUgbGlicmFyeSB0aGF0IHByb3ZpZGVzIGR5bmFtaWMgd2ViIGNvbXBvbmVudHMgZm9yIGJ1aWxkaW5nIHNvcGhpc3RpY2F0ZWQgYW5kIG1vZGVybiB3ZWIgYXBwbGljYXRpb25zIHVzaW5nIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQuIn19KTt2YXIgZFE9e307eXQoZFEse0NhbnZhc1Bvb2w6KCk9PnN4LERlZXNBY3Rpb25iYXI6KCk9PkJtYSxEZWVzQXBwdWk6KCk9PkozYSxEZWVzQXBwdWlBY3Rpdml0eWxvZzooKT0+c2RhLERlZXNBcHB1aUJhcjooKT0+dmRhLERlZXNBcHB1aUJvdHRvbWJhcjooKT0+a2RhLERlZXNBcHB1aU1haW5jb250ZW50OigpPT5RM2EsRGVlc0FwcHVpTWFpbm1lbnU6KCk9PlUzYSxEZWVzQXBwdWlQcm9maWxlRHJvcGRvd246KCk9PmJkYSxEZWVzQXBwdWlTZWNvbmRhcnltZW51OigpPT5LM2EsRGVlc0FwcHVpVGFiczooKT0+WDNhLERlZXNBdWRpb1ZpZXdlcjooKT0+STVhLERlZXNCYWRnZTooKT0+VW1hLERlZXNCdXR0b246KCk9PkYzYSxEZWVzQnV0dG9uRXhpdDooKT0+aGZhLERlZXNCdXR0b25Hcm91cDooKT0+dmZhLERlZXNDaGFydEFyZWE6KCk9PlRmYSxEZWVzQ2hhcnRCYXI6KCk9PkhmYSxEZWVzQ2hhcnREb251dDooKT0+WWZhLERlZXNDaGFydEdhdWdlOigpPT5zbWEsRGVlc0NoYXJ0TG9nOigpPT5ubWEsRGVlc0NoYXJ0UmFkYXI6KCk9PmdtYSxEZWVzQ2hpcHM6KCk9Pk42YSxEZWVzQ29udGV4dG1lbnU6KCk9PmthLERlZXNEYXNoYm9hcmRncmlkOigpPT50NWEsRGVlc0RhdGF2aWV3Q29kZWJveDooKT0+d21hLERlZXNEYXRhdmlld1N0YXR1c29iamVjdDooKT0+em1hLERlZXNGb3JtOigpPT5OM2EsRGVlc0Zvcm1TdWJtaXQ6KCk9PnZuZSxEZWVzRm9ybWF0dGluZ01lbnU6KCk9PkFuZSxEZWVzSGVhZGluZzooKT0+bjVhLERlZXNIaW50OigpPT5YbWEsRGVlc0ljb246KCk9PlgyYSxEZWVzSW1hZ2VWaWV3ZXI6KCk9PkQ1YSxEZWVzSW5wdXRCYXNlOigpPT5PdCxEZWVzSW5wdXRDaGVja2JveDooKT0+cm5lLERlZXNJbnB1dENvZGU6KCk9PmRuZSxEZWVzSW5wdXREYXRlcGlja2VyOigpPT5wbmUsRGVlc0lucHV0RGF0ZXBpY2tlclBvcHVwOigpPT51bmUsRGVlc0lucHV0RHJvcGRvd246KCk9PnluZSxEZWVzSW5wdXREcm9wZG93blBvcHVwOigpPT54bmUsRGVlc0lucHV0RmlsZXVwbG9hZDooKT0+a25lLERlZXNJbnB1dEliYW46KCk9Pk1uZSxEZWVzSW5wdXRMaXN0OigpPT5FbmUsRGVlc0lucHV0TXVsdGl0b2dnbGU6KCk9PnpuZSxEZWVzSW5wdXRQaG9uZTooKT0+VG5lLERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlOigpPT5FNmEsRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjooKT0+bW5lLERlZXNJbnB1dFJhZGlvZ3JvdXA6KCk9PmduZSxEZWVzSW5wdXRSaWNodGV4dDooKT0+WWNlLERlZXNJbnB1dFRhZ3M6KCk9PkxuZSxEZWVzSW5wdXRUZXh0OigpPT5mbmUsRGVlc0lucHV0VG9nZ2xlOigpPT4kbmUsRGVlc0lucHV0VHlwZWxpc3Q6KCk9PkRuZSxEZWVzSW5wdXRXeXNpd3lnOigpPT5IWCxEZWVzTGFiZWw6KCk9PkJkYSxEZWVzTW9iaWxlbmF2aWdhdGlvbjooKT0+bmZhLERlZXNNb2RhbDooKT0+UWEsRGVlc1BhZ2luYXRpb246KCk9Pmg1YSxEZWVzUGFuZWw6KCk9PkNkYSxEZWVzUGRmVmlld2VyOigpPT5WNWEsRGVlc1ByZXZpZXc6KCk9Pks1YSxEZWVzUHJvZ3Jlc3NiYXI6KCk9PmE2YSxEZWVzU2VhcmNoYmFyOigpPT5XZ2EsRGVlc1NldHRpbmdzOigpPT54NWEsRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQ6KCk9PlFkYSxEZWVzU2ltcGxlQXBwRGFzaDooKT0+RWdhLERlZXNTaW1wbGVMb2dpbjooKT0+T2dhLERlZXNTbGFzaE1lbnU6KCk9PlBuZSxEZWVzU3BlZWNoYnViYmxlOigpPT5POGEsRGVlc1NwaW5uZXI6KCk9Pmk2YSxEZWVzU3RhdHNHcmlkOigpPT5CM2EsRGVlc1N0ZXBwZXI6KCk9PmF4LERlZXNTdG9yYWdlQnJvd3NlcjooKT0+Tm1hLERlZXNTdG9yYWdlQ29sdW1uczooKT0+UG1hLERlZXNTdG9yYWdlS2V5czooKT0+SW1hLERlZXNTdG9yYWdlUHJldmlldzooKT0+QW1hLERlZXNUYWJsZTooKT0+WGNlLERlZXNUaGVtZTooKT0+WGdhLERlZXNUaHVtYm5haWxBdWRpbzooKT0+ZjhhLERlZXNUaHVtYm5haWxCYXNlOigpPT5IbixEZWVzVGh1bWJuYWlsRm9sZGVyOigpPT5EOGEsRGVlc1RodW1ibmFpbEltYWdlOigpPT5jOGEsRGVlc1RodW1ibmFpbE5vdGU6KCk9Pl84YSxEZWVzVGh1bWJuYWlsUGRmOigpPT5pOGEsRGVlc1RodW1ibmFpbFZpZGVvOigpPT54OGEsRGVlc1RpbGU6KCk9PlJkYSxEZWVzVG9hc3Q6KCk9Pm1zLERlZXNVcGRhdGVyOigpPT55MWUsRGVlc1ZpZGVvVmlld2VyOigpPT5PNWEsRGVlc1dpbmRvd0NvbnRyb2xzOigpPT5nZGEsRGVlc1dpbmRvd0xheWVyOigpPT5obyxEZWVzV29ya3NwYWNlOigpPT5kN2EsRGVlc1dvcmtzcGFjZUJvdHRvbWJhcjooKT0+bDdhLERlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yOigpPT5jN2EsRGVlc1dvcmtzcGFjZUZpbGV0cmVlOigpPT5vN2EsRGVlc1dvcmtzcGFjZU1hcmtkb3duOigpPT52N2EsRGVlc1dvcmtzcGFjZU1hcmtkb3dub3V0bGV0OigpPT5TN2EsRGVlc1dvcmtzcGFjZU1vbmFjbzooKT0+SGRhLERlZXNXb3Jrc3BhY2VUZXJtaW5hbDooKT0+SXJ0LERlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXc6KCk9Pm43YSxEZWVzV3lzaXd5Z0Jsb2NrOigpPT5tM2EsUFJPR1JBTU1JTkdfTEFOR1VBR0VTOigpPT5MWixQZGZNYW5hZ2VyOigpPT5HZCxQZXJmb3JtYW5jZU1vbml0b3I6KCk9Pml4LFRlcm1pbmFsVGFiTWFuYWdlcjooKT0+clEsVHlwZVNjcmlwdEludGVsbGlTZW5zZU1hbmFnZXI6KCk9PmxRLFZpZXdSZWdpc3RyeTooKT0+cVgsV2ViQ29udGFpbmVyRW52aXJvbm1lbnQ6KCk9PlRnLFd5c2l3eWdCbG9ja09wZXJhdGlvbnM6KCk9PkVaLFd5c2l3eWdCbG9ja3M6KCk9PkNvLFd5c2l3eWdDb252ZXJ0ZXJzOigpPT5SYyxXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyOigpPT5PWCxXeXNpd3lnRm9ybWF0dGluZzooKT0+c3UsV3lzaXd5Z0hpc3Rvcnk6KCk9PkZYLFd5c2l3eWdJbnB1dEhhbmRsZXI6KCk9Pk5YLFd5c2l3eWdLZXlib2FyZEhhbmRsZXI6KCk9PlJYLFd5c2l3eWdNb2RhbE1hbmFnZXI6KCk9PkFYLFd5c2l3eWdTZWxlY3Rpb246KCk9PlN0LFd5c2l3eWdTaG9ydGN1dHM6KCk9PmNyLFpJbmRleFJlZ2lzdHJ5OigpPT5JcmUsY29sb3JzOigpPT5udixjb21taXRpbmZvOigpPT5JN2EsY29tcG9uZW50WkluZGV4OigpPT5OcWEsZGVib3VuY2U6KCk9PllYYSxmb3JtYXRDb3VudDooKT0+RW1hLGZvcm1hdEZpbGVTaXplOigpPT5ycnQsZm9ybWF0U2l6ZTooKT0+UXYsZ2V0Q29udGVudFR5cGU6KCk9PldoLGdldERlZmF1bHRDb250ZW50OigpPT5leCxnZXRGaWxlTmFtZTooKT0+RmEsZ2V0UGFyZW50UHJlZml4OigpPT5sMixnZXRQYXRoU2VnbWVudHM6KCk9PnlnLGdldFpJbmRleDooKT0+QXFhLGljb25zOigpPT5hbmUsaXNJblZpZXdwb3J0OigpPT5YWGEscmVnaXN0ZXJBbGxCbG9ja0hhbmRsZXJzOigpPT5kM2EsdGhlbWVEZWZhdWx0U3R5bGVzOigpPT5IZSx0aGVtZURlZmF1bHRzOigpPT5XbCx0aHJvdHRsZTooKT0+WlhhLHRodW1ibmFpbEJhc2VTdHlsZXM6KCk9PnBuLHZhbGlkYXRlTW92ZTooKT0+SnYsd3lzaXd5Z1N0eWxlczooKT0+bnR0LHpJbmRleExheWVyczooKT0+V3IsekluZGV4UmVnaXN0cnk6KCk9PnhhfSk7dmFyIE43YT1nKCgpPT57UDdhKCk7RzEoKTtBN2EoKX0pO3ZhciBVcnQsdVEselFhLFdydD1nKCgpPT57cGUoKTtVcnQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHVRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6UWE9KCgpPT57bGV0IHM9W25lKCJzei1yZXNvdXJjZS11c2FnZS1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UmVzb3VyY2VVc2FnZUNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxVcnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJkYXRhImluIHYsImhhcyIpLGdldDppKHY9PnYuZGF0YSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmRhdGE9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFVydCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2VDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2VydmljZUNvdW50ImluIHYsImhhcyIpLGdldDppKHY9PnYuc2VydmljZUNvdW50LCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2VydmljZUNvdW50PXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxVcnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otcmVzb3VyY2UtdXNhZ2UtY2FyZAogICAgICAgIC5kYXRhPSR7e2NwdTouNSxtZW1vcnlVc2VkOiIxOTEgTUIiLG1lbW9yeVRvdGFsOiI0MjkuMiBHQiIsbmV0d29ya0luOiIzOC45IEtCL3MiLG5ldHdvcmtPdXQ6IjEuNyBLQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJ0ZXN0LW5naW54IixtZW1vcnk6IjMyLjEgTUIifSx7bmFtZToidGVzdC12MiIsbWVtb3J5OiIzMS43IE1CIn1dfX0KICAgICAgICBzZXJ2aWNlQ291bnQ9IjciCiAgICAgID48L3N6LXJlc291cmNlLXVzYWdlLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT11USh0aGlzLG8se2NwdTowLG1lbW9yeVVzZWQ6IjAgTUIiLG1lbW9yeVRvdGFsOiIwIEdCIixuZXR3b3JrSW46IjAgS0IvcyIsbmV0d29ya091dDoiMCBLQi9zIix0b3BDb25zdW1lcnM6W119KTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhKGIpe3RoaXMuI2U9Yn0jdD0odVEodGhpcyxsKSx1USh0aGlzLGQsIjAiKSk7Z2V0IHNlcnZpY2VDb3VudCgpe3JldHVybiB0aGlzLiN0fXNldCBzZXJ2aWNlQ291bnQoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXctYWxsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudmlldy1hbGw6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAubWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubWV0cmljLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLm5ldHdvcmstcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAubmV0d29yay1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLm5ldHdvcmstaWNvbi5kb3duIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAubmV0d29yay1pY29uLnVwIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAudG9wLWNvbnN1bWVycyB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5jb25zdW1lcnMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgfQoKICAgICAgLmNvbnN1bWVycy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5jb25zdW1lci1pdGVtIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNvbnN1bWVyLW5hbWUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlJlc291cmNlIFVzYWdlPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5BZ2dyZWdhdGVkIGFjcm9zcyAke3RoaXMuc2VydmljZUNvdW50fSBzZXJ2aWNlczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YSBjbGFzcz0idmlldy1hbGwiPlZpZXcgQWxsPC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWNzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5DUFU8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEuY3B1LnRvRml4ZWQoMSl9JTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZmlsbCIgc3R5bGU9IndpZHRoOiAke01hdGgubWluKHRoaXMuZGF0YS5jcHUsMTAwKX0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWhlYWRlciI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+TWVtb3J5PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLm1lbW9yeVVzZWR9IC8gJHt0aGlzLmRhdGEubWVtb3J5VG90YWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5jYWxjdWxhdGVNZW1vcnlQZXJjZW50KCl9JSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPk5ldHdvcms8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV0d29yay1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ldHdvcmstaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Im5ldHdvcmstaWNvbiBkb3duIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiA1djE0TTE5IDEybC03IDctNy03Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAke3RoaXMuZGF0YS5uZXR3b3JrSW59CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV0d29yay1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibmV0d29yay1pY29uIHVwIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAxOVY1TTUgMTJsNy03IDcgNyIvPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmRhdGEubmV0d29ya091dH0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmRhdGEudG9wQ29uc3VtZXJzLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3AtY29uc3VtZXJzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc3VtZXJzLWxhYmVsIj5Ub3AgY29uc3VtZXJzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnN1bWVycy1saXN0Ij4KICAgICAgICAgICAgICAke3RoaXMuZGF0YS50b3BDb25zdW1lcnMubWFwKGI9PndgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb25zdW1lci1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29uc3VtZXItbmFtZSI+JHtiLm5hbWV9Ojwvc3Bhbj4gJHtiLm1lbW9yeX0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWNhbGN1bGF0ZU1lbW9yeVBlcmNlbnQoKXtsZXQgYj1wYXJzZUZsb2F0KHRoaXMuZGF0YS5tZW1vcnlVc2VkKSx2PXBhcnNlRmxvYXQodGhpcy5kYXRhLm1lbW9yeVRvdGFsKTtyZXR1cm4gdj09PTA/MDpNYXRoLm1pbihiL3YqMTAwLDEwMCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHVRKHRoaXMsdSl9c3RhdGlje3VRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBSN2EsR3J0LENRYSxLcnQ9ZygoKT0+e3BlKCk7UjdhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxHcnQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LENRYT0oKCk9PntsZXQgcz1bbmUoInN6LXRyYWZmaWMtY2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelRyYWZmaWNDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0sUjdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZGF0YSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmRhdGEsImdldCIpLHNldDppKCh1LGMpPT57dS5kYXRhPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxSN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA1MDBweDsiPgogICAgICA8c3otdHJhZmZpYy1jYXJkCiAgICAgICAgLmRhdGE9JHt7cmVxdWVzdHM6MTI1MCxlcnJvcnM6MTUsZXJyb3JQZXJjZW50OjEuMixhdmdSZXNwb25zZToxNDUscmVxUGVyTWluOjIxLHN0YXR1czJ4eDo4NSxzdGF0dXMzeHg6NSxzdGF0dXM0eHg6OCxzdGF0dXM1eHg6Mn19CiAgICAgID48L3N6LXRyYWZmaWMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCJdOyNlPUdydCh0aGlzLG8se3JlcXVlc3RzOjAsZXJyb3JzOjAsZXJyb3JQZXJjZW50OjAsYXZnUmVzcG9uc2U6MCxyZXFQZXJNaW46MCxzdGF0dXMyeHg6MCxzdGF0dXMzeHg6MCxzdGF0dXM0eHg6MCxzdGF0dXM1eHg6MH0pO2dldCBkYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGEoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAubWV0cmljLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYXItY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuc3RhdHVzLXNlZ21lbnQgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc3RhdHVzLTJ4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLTN4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLTR4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWNjMTUiLCIjZmFjYzE1Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLTV4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWxlZ2VuZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5sZWdlbmQtaXRlbSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBkPXRoaXMuZGF0YS5zdGF0dXMyeHgrdGhpcy5kYXRhLnN0YXR1czN4eCt0aGlzLmRhdGEuc3RhdHVzNHh4K3RoaXMuZGF0YS5zdGF0dXM1eHgsdT1kPjA/dGhpcy5kYXRhLnN0YXR1czJ4eC9kKjEwMDowLGM9ZD4wP3RoaXMuZGF0YS5zdGF0dXMzeHgvZCoxMDA6MCxiPWQ+MD90aGlzLmRhdGEuc3RhdHVzNHh4L2QqMTAwOjAsdj1kPjA/dGhpcy5kYXRhLnN0YXR1czV4eC9kKjEwMDowO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlRyYWZmaWMgKExhc3QgSG91cik8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5SZXF1ZXN0IG1ldHJpY3MgZnJvbSBhY2Nlc3MgbG9nczwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWNzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPlJlcXVlc3RzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZm9ybWF0TnVtYmVyKHRoaXMuZGF0YS5yZXF1ZXN0cyl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5FcnJvcnM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLmVycm9yc30gKCR7dGhpcy5kYXRhLmVycm9yUGVyY2VudH0lKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+QXZnIFJlc3BvbnNlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5hdmdSZXNwb25zZX1tczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+UmVxL21pbjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEucmVxUGVyTWlufTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtYmFyLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLXNlZ21lbnQgc3RhdHVzLTJ4eCIgc3R5bGU9IndpZHRoOiAke3V9JSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1zZWdtZW50IHN0YXR1cy0zeHgiIHN0eWxlPSJ3aWR0aDogJHtjfSUiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtc2VnbWVudCBzdGF0dXMtNHh4IiBzdHlsZT0id2lkdGg6ICR7Yn0lIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLXNlZ21lbnQgc3RhdHVzLTV4eCIgc3R5bGU9IndpZHRoOiAke3Z9JSI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1sZWdlbmQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjJ4eDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZC1pdGVtIj4zeHg8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmQtaXRlbSI+NHh4PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjV4eDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zm9ybWF0TnVtYmVyKGQpe3JldHVybiBkPj0xZTY/KGQvMWU2KS50b0ZpeGVkKDEpKyJNIjpkPj0xZTM/KGQvMWUzKS50b0ZpeGVkKDEpKyJLIjpkLnRvU3RyaW5nKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEdydCh0aGlzLGwpfXN0YXRpY3tHcnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIE83YSxZcnQsVFFhLFpydD1nKCgpPT57cGUoKTtPN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFlydD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVFFhPSgoKT0+e2xldCBzPVtuZSgic3otcGxhdGZvcm0tc2VydmljZXMtY2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelBsYXRmb3JtU2VydmljZXNDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxPN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ic2VydmljZXMiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnNlcnZpY2VzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxPN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA1MDBweDsiPgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgIC5zZXJ2aWNlcz0ke1t7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfSx7bmFtZToiUzMgU3RvcmFnZSAoTWluSU8pIixzdGF0dXM6IjEgYnVja2V0IixydW5uaW5nOiEwfSx7bmFtZToiU21hcnRQcm94eSBSZXZlcnNlIFByb3h5IixzdGF0dXM6IlJ1bm5pbmciLHJ1bm5pbmc6ITB9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9XX0KICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlBsYXRmb3JtIl07I2U9WXJ0KHRoaXMsbyxbXSk7Z2V0IHNlcnZpY2VzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2VzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VydmljZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWl0ZW06aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAke2guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC40KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90LnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2Utc3RhdHVzIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5JbmZyYXN0cnVjdHVyZSBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZXMtbGlzdCI+CiAgICAgICAgICAke3RoaXMuc2VydmljZXMubWFwKGQ9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZXJ2aWNlQ2xpY2soZCl9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWRvdCAke2QucnVubmluZz8icnVubmluZyI6InN0b3BwZWQifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZXJ2aWNlLW5hbWUiPiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlcnZpY2Utc3RhdHVzIj4ke2Quc3RhdHVzfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTZXJ2aWNlQ2xpY2soZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFlydCh0aGlzLGwpfXN0YXRpY3tZcnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGsxZSxFZywkUWEsWHJ0PWcoKCk9PntwZSgpO2sxZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRWc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LCRRYT0oKCk9PntsZXQgcz1bbmUoInN6LWNlcnRpZmljYXRlcy1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6Q2VydGlmaWNhdGVzQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLGsxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbGlkQ291bnQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi52YWxpZENvdW50LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudmFsaWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksazFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhwaXJpbmdDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iZXhwaXJpbmdDb3VudCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmV4cGlyaW5nQ291bnQsImdldCIpLHNldDppKChmLHkpPT57Zi5leHBpcmluZ0NvdW50PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxrMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleHBpcmVkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImV4cGlyZWRDb3VudCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmV4cGlyZWRDb3VudCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmV4cGlyZWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksazFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgIDxzei1jZXJ0aWZpY2F0ZXMtY2FyZCB2YWxpZENvdW50PSIyIj48L3N6LWNlcnRpZmljYXRlcy1jYXJkPgogICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQgdmFsaWRDb3VudD0iNSIgZXhwaXJpbmdDb3VudD0iMiI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgICAgPHN6LWNlcnRpZmljYXRlcy1jYXJkIHZhbGlkQ291bnQ9IjAiIGV4cGlyZWRDb3VudD0iMSI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1FZyh0aGlzLG8sMCk7Z2V0IHZhbGlkQ291bnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsaWRDb3VudChtKXt0aGlzLiNlPW19I3Q9KEVnKHRoaXMsbCksRWcodGhpcyxkLDApKTtnZXQgZXhwaXJpbmdDb3VudCgpe3JldHVybiB0aGlzLiN0fXNldCBleHBpcmluZ0NvdW50KG0pe3RoaXMuI3Q9bX0jYT0oRWcodGhpcyx1KSxFZyh0aGlzLGIsMCkpO2dldCBleHBpcmVkQ291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZXhwaXJlZENvdW50KG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc3RhdHVzLWljb24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uLnZhbGlkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFjYzE1IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+Q2VydGlmaWNhdGVzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+U1NML1RMUyBjZXJ0aWZpY2F0ZSBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWxpc3QiPgogICAgICAgICAgJHt0aGlzLnZhbGlkQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIHZhbGlkIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjAgNiA5IDE3IDQgMTIiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij4ke3RoaXMudmFsaWRDb3VudH0gdmFsaWQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICAke3RoaXMuZXhwaXJpbmdDb3VudD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ic3RhdHVzLWljb24gd2FybmluZyIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yOSAzLjg2TDEuODIgMThhMiAyIDAgMCAwIDEuNzEgM2gxNi45NGEyIDIgMCAwIDAgMS43MS0zTDEzLjcxIDMuODZhMiAyIDAgMCAwLTMuNDIgMHoiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjkiIHgyPSIxMiIgeTI9IjEzIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyLjAxIiB5Mj0iMTciPjwvbGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXRleHQiPiR7dGhpcy5leHBpcmluZ0NvdW50fSBleHBpcmluZyBzb29uPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLmV4cGlyZWRDb3VudD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ic3RhdHVzLWljb24gZXJyb3IiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTUiIHkxPSI5IiB4Mj0iOSIgeTI9IjE1Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iOSIgeTE9IjkiIHgyPSIxNSIgeTI9IjE1Ij48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij4ke3RoaXMuZXhwaXJlZENvdW50fSBleHBpcmVkPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLnZhbGlkQ291bnQ9PT0wJiZ0aGlzLmV4cGlyaW5nQ291bnQ9PT0wJiZ0aGlzLmV4cGlyZWRDb3VudD09PTA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLXRleHQiPk5vIGNlcnRpZmljYXRlczwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEVnKHRoaXMsdil9c3RhdGlje0VnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBweCxnMixEUWEsUXJ0PWcoKCk9PntwZSgpO3B4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxnMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRFFhPSgoKT0+e2xldCBzPVtuZSgic3otcmV2ZXJzZS1wcm94eS1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UmV2ZXJzZVByb3h5Q2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0scHgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwUG9ydCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaHR0cFBvcnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5odHRwUG9ydCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmh0dHBQb3J0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxweCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imh0dHBzUG9ydCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaHR0cHNQb3J0ImluIF8sImhhcyIpLGdldDppKF89Pl8uaHR0cHNQb3J0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaHR0cHNQb3J0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxweCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imh0dHBBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imh0dHBBY3RpdmUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5odHRwQWN0aXZlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaHR0cEFjdGl2ZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdikscHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwc0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaHR0cHNBY3RpdmUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5odHRwc0FjdGl2ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmh0dHBzQWN0aXZlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxweCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdXRlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InJvdXRlQ291bnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5yb3V0ZUNvdW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucm91dGVDb3VudD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seikscHgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA0MDBweDsiPgogICAgICA8c3otcmV2ZXJzZS1wcm94eS1jYXJkCiAgICAgICAgaHR0cFBvcnQ9IjgwODAiCiAgICAgICAgaHR0cHNQb3J0PSI4NDQzIgogICAgICAgIGh0dHBBY3RpdmUKICAgICAgICBodHRwc0FjdGl2ZQogICAgICAgIHJvdXRlQ291bnQ9IjMiCiAgICAgID48L3N6LXJldmVyc2UtcHJveHktY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1nMih0aGlzLG8sIjgwIik7Z2V0IGh0dHBQb3J0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGh0dHBQb3J0KEMpe3RoaXMuI2U9Q30jdD0oZzIodGhpcyxsKSxnMih0aGlzLGQsIjQ0MyIpKTtnZXQgaHR0cHNQb3J0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGh0dHBzUG9ydChDKXt0aGlzLiN0PUN9I2E9KGcyKHRoaXMsdSksZzIodGhpcyxiLCExKSk7Z2V0IGh0dHBBY3RpdmUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaHR0cEFjdGl2ZShDKXt0aGlzLiNhPUN9I3M9KGcyKHRoaXMsdiksZzIodGhpcyxtLCExKSk7Z2V0IGh0dHBzQWN0aXZlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGh0dHBzQWN0aXZlKEMpe3RoaXMuI3M9Q30jaT0oZzIodGhpcyxmKSxnMih0aGlzLE0sIjAiKSk7Z2V0IHJvdXRlQ291bnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcm91dGVDb3VudChDKXt0aGlzLiNpPUN9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuaXRlbS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5pdGVtLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmJhZGdlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5pbmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlJldmVyc2UgUHJveHk8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5IVFRQL0hUVFBTIHByb3h5IHN0YXR1czwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtcyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkhUVFAgKCR7dGhpcy5odHRwUG9ydH0pPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmh0dHBBY3RpdmU/ImFjdGl2ZSI6ImluYWN0aXZlIn0iPgogICAgICAgICAgICAgICR7dGhpcy5odHRwQWN0aXZlPyJBY3RpdmUiOiJJbmFjdGl2ZSJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5IVFRQUyAoJHt0aGlzLmh0dHBzUG9ydH0pPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmh0dHBzQWN0aXZlPyJhY3RpdmUiOiJpbmFjdGl2ZSJ9Ij4KICAgICAgICAgICAgICAke3RoaXMuaHR0cHNBY3RpdmU/IkFjdGl2ZSI6IkluYWN0aXZlIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPlJvdXRlczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdmFsdWUiPiR7dGhpcy5yb3V0ZUNvdW50fTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGcyKHRoaXMseil9c3RhdGlje2cyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBKcnQscFEsTFFhLGVvdD1nKCgpPT57cGUoKTtKcnQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHBRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxMUWE9KCgpPT57bGV0IHM9W25lKCJzei1kbnMtc3NsLWNhcmQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEbnNTc2xDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxKcnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkbnNDb25maWd1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJkbnNDb25maWd1cmVkImluIHYsImhhcyIpLGdldDppKHY9PnYuZG5zQ29uZmlndXJlZCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmRuc0NvbmZpZ3VyZWQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEpydCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjbWVDb25maWd1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJhY21lQ29uZmlndXJlZCJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmFjbWVDb25maWd1cmVkLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuYWNtZUNvbmZpZ3VyZWQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLEpydChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDQwMHB4OyI+CiAgICAgIDxzei1kbnMtc3NsLWNhcmQKICAgICAgICBkbnNDb25maWd1cmVkCiAgICAgICAgYWNtZUNvbmZpZ3VyZWQKICAgICAgPjwvc3otZG5zLXNzbC1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPXBRKHRoaXMsbywhMSk7Z2V0IGRuc0NvbmZpZ3VyZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG5zQ29uZmlndXJlZChiKXt0aGlzLiNlPWJ9I3Q9KHBRKHRoaXMsbCkscFEodGhpcyxkLCExKSk7Z2V0IGFjbWVDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjbWVDb25maWd1cmVkKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLml0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5pdGVtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmJhZGdlLmNvbmZpZ3VyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLm5vdC1jb25maWd1cmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+RE5TICYgU1NMPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+Q29uZmlndXJhdGlvbiBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaXRlbXMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5DbG91ZGZsYXJlIEROUzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7dGhpcy5kbnNDb25maWd1cmVkPyJjb25maWd1cmVkIjoibm90LWNvbmZpZ3VyZWQifSI+CiAgICAgICAgICAgICAgJHt0aGlzLmRuc0NvbmZpZ3VyZWQ/IkNvbmZpZ3VyZWQiOiJOb3QgY29uZmlndXJlZCJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5BQ01FIChMZXQncyBFbmNyeXB0KTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7dGhpcy5hY21lQ29uZmlndXJlZD8iY29uZmlndXJlZCI6Im5vdC1jb25maWd1cmVkIn0iPgogICAgICAgICAgICAgICR7dGhpcy5hY21lQ29uZmlndXJlZD8iQ29uZmlndXJlZCI6Ik5vdCBjb25maWd1cmVkIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscFEodGhpcyx1KX1zdGF0aWN7cFEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEY3YSx0b3QsRVFhLGFvdD1nKCgpPT57cGUoKTtGN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHRvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRVFhPSgoKT0+e2xldCBzPVtuZSgic3otcXVpY2stYWN0aW9ucy1jYXJkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UXVpY2tBY3Rpb25zQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0sRjdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iYWN0aW9ucyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmFjdGlvbnMsImdldCIpLHNldDppKCh1LGMpPT57dS5hY3Rpb25zPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxGN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otcXVpY2stYWN0aW9ucy1jYXJkCiAgICAgICAgLmFjdGlvbnM9JHtbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfQogICAgICA+PC9zei1xdWljay1hY3Rpb25zLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT10b3QodGhpcyxvLFtdKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBhY3Rpb25zKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzFkNGVkOCIsIiMyNTYzZWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlF1aWNrIEFjdGlvbnM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5Db21tb24gdGFza3MgYW5kIHNob3J0Y3V0czwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5hY3Rpb25zLm1hcChkPT53YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7ZC5wcmltYXJ5PyJwcmltYXJ5Ijoic2Vjb25kYXJ5In0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb25DbGljayhkKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2QuaWNvbj09PSJwbHVzIj93YAogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJhY3Rpb24taWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7ZC5sYWJlbH0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVBY3Rpb25DbGljayhkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6ZCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0b3QodGhpcyxsKX1zdGF0aWN7dG90KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBCN2Esc290LFBRYSxpb3Q9ZygoKT0+e3BlKCk7QjdhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxzb3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBRYT0oKCk9PntsZXQgcz1bbmUoInN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTdGF0dXNHcmlkQ2x1c3RlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLEI3YSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJzdGF0cyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LnN0YXRzLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3Uuc3RhdHM9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEI3YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDkwMHB4OyI+CiAgICAgIDxzei1zdGF0dXMtZ3JpZC1jbHVzdGVyCiAgICAgICAgLnN0YXRzPSR7e3RvdGFsU2VydmljZXM6NyxydW5uaW5nOjcsc3RvcHBlZDowLGRvY2tlclN0YXR1czoicnVubmluZyJ9fQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1jbHVzdGVyPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIEdyaWRzIl07I2U9c290KHRoaXMsbyx7dG90YWxTZXJ2aWNlczowLHJ1bm5pbmc6MCxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJzdG9wcGVkIn0pO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0cyhkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoidG90YWwiLHRpdGxlOiJUb3RhbCBTZXJ2aWNlcyIsdmFsdWU6dGhpcy5zdGF0cy50b3RhbFNlcnZpY2VzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoicnVubmluZyIsdGl0bGU6IlJ1bm5pbmciLHZhbHVlOnRoaXMuc3RhdHMucnVubmluZyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjaGVjayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6InN0b3BwZWQiLHRpdGxlOiJTdG9wcGVkIix2YWx1ZTp0aGlzLnN0YXRzLnN0b3BwZWQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2lyY2xlU3RvcCIsY29sb3I6dGhpcy5zdGF0cy5zdG9wcGVkPjA/IiNmNTllMGIiOnZvaWQgMH0se2lkOiJkb2NrZXIiLHRpdGxlOiJEb2NrZXIiLHZhbHVlOnRoaXMuc3RhdHMuZG9ja2VyU3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNvbnRhaW5lciIsY29sb3I6dGhpcy5zdGF0cy5kb2NrZXJTdGF0dXM9PT0icnVubmluZyI/IiMyMmM1NWUiOiIjZWY0NDQ0In1dfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnRpbGVzfQogICAgICAgIC5taW5UaWxlV2lkdGg9JHsyMDB9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksc290KHRoaXMsbCl9c3RhdGlje3NvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgcm90LGhRLElRYSxvb3Q9ZygoKT0+e3BlKCk7V3J0KCk7WnJ0KCk7cm90PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxoUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSVFhPSgoKT0+e2xldCBzPVtuZSgic3otc3RhdHVzLWdyaWQtc2VydmljZXMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTdGF0dXNHcmlkU2VydmljZXMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOkFycmF5fSldLHJvdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc291cmNlVXNhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InJlc291cmNlVXNhZ2UiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5yZXNvdXJjZVVzYWdlLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucmVzb3VyY2VVc2FnZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCkscm90KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhdGZvcm1TZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icGxhdGZvcm1TZXJ2aWNlcyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnBsYXRmb3JtU2VydmljZXMsImdldCIpLHNldDppKCh2LHgpPT57di5wbGF0Zm9ybVNlcnZpY2VzPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxyb3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLXNlcnZpY2VzCiAgICAgICAgLnJlc291cmNlVXNhZ2U9JHt7Y3B1OjQ1LG1lbW9yeVVzZWQ6IjQuOTYgR0IiLG1lbW9yeVRvdGFsOiI4IEdCIixuZXR3b3JrSW46IjEuMiBNQi9zIixuZXR3b3JrT3V0OiIwLjggTUIvcyIsdG9wQ29uc3VtZXJzOlt7bmFtZToiYXBpLXNlcnZpY2UiLG1lbW9yeToiNTEyIE1CIn0se25hbWU6IndlYi1mcm9udGVuZCIsbWVtb3J5OiIyNTYgTUIifSx7bmFtZToid29ya2VyIixtZW1vcnk6IjEyOCBNQiJ9XX19CiAgICAgICAgLnBsYXRmb3JtU2VydmljZXM9JHtbe25hbWU6Ik1vbmdvREIiLHN0YXR1czoiMSBEQiIscnVubmluZzohMH0se25hbWU6IlMzIFN0b3JhZ2UiLHN0YXR1czoiMSBidWNrZXQiLHJ1bm5pbmc6ITB9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6IlN0b3BwZWQiLHJ1bm5pbmc6ITF9LHtuYW1lOiJSZWRpcyBDYWNoZSIsc3RhdHVzOiJSdW5uaW5nIixydW5uaW5nOiEwfV19CiAgICAgID48L3N6LXN0YXR1cy1ncmlkLXNlcnZpY2VzPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIEdyaWRzIl07I2U9aFEodGhpcyxvLHtjcHU6MCxtZW1vcnlVc2VkOiIwIEdCIixtZW1vcnlUb3RhbDoiMCBHQiIsbmV0d29ya0luOiIwIE1CL3MiLG5ldHdvcmtPdXQ6IjAgTUIvcyIsdG9wQ29uc3VtZXJzOltdfSk7Z2V0IHJlc291cmNlVXNhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVzb3VyY2VVc2FnZShiKXt0aGlzLiNlPWJ9I3Q9KGhRKHRoaXMsbCksaFEodGhpcyxkLFtdKSk7Z2V0IHBsYXRmb3JtU2VydmljZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhdGZvcm1TZXJ2aWNlcyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxzei1yZXNvdXJjZS11c2FnZS1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMucmVzb3VyY2VVc2FnZX0KICAgICAgICA+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgICAuc2VydmljZXM9JHt0aGlzLnBsYXRmb3JtU2VydmljZXN9CiAgICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxoUSh0aGlzLHUpfXN0YXRpY3toUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUzFlLFBnLEFRYSxub3Q9ZygoKT0+e3BlKCk7S3J0KCk7UXJ0KCk7WHJ0KCk7UzFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxQZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQVFhPSgoKT0+e2xldCBzPVtuZSgic3otc3RhdHVzLWdyaWQtbmV0d29yayIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelN0YXR1c0dyaWROZXR3b3JrIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sYz1bTCh7dHlwZTpPYmplY3R9KV0sUzFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJhZmZpYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idHJhZmZpYyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRyYWZmaWMsImdldCIpLHNldDppKChmLHkpPT57Zi50cmFmZmljPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxTMWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm94eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4icHJveHkiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5wcm94eSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnByb3h5PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxTMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZXJ0aWZpY2F0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImNlcnRpZmljYXRlcyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmNlcnRpZmljYXRlcywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmNlcnRpZmljYXRlcz15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksUzFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTQwMHB4OyI+CiAgICAgIDxzei1zdGF0dXMtZ3JpZC1uZXR3b3JrCiAgICAgICAgLnRyYWZmaWM9JHt7cmVxdWVzdHM6MTI1NDIwLGVycm9yczoxNTAsZXJyb3JQZXJjZW50Oi4xMixhdmdSZXNwb25zZTo0NSxyZXFQZXJNaW46ODQ3LHN0YXR1czJ4eDo5NS4yLHN0YXR1czN4eDoyLjEsc3RhdHVzNHh4OjIuMyxzdGF0dXM1eHg6LjR9fQogICAgICAgIC5wcm94eT0ke3todHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiEwLGh0dHBzQWN0aXZlOiEwLHJvdXRlQ291bnQ6IjEyIn19CiAgICAgICAgLmNlcnRpZmljYXRlcz0ke3t2YWxpZDo4LGV4cGlyaW5nOjIsZXhwaXJlZDowfX0KICAgICAgPjwvc3otc3RhdHVzLWdyaWQtbmV0d29yaz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPVBnKHRoaXMsbyx7cmVxdWVzdHM6MCxlcnJvcnM6MCxlcnJvclBlcmNlbnQ6MCxhdmdSZXNwb25zZTowLHJlcVBlck1pbjowLHN0YXR1czJ4eDowLHN0YXR1czN4eDowLHN0YXR1czR4eDowLHN0YXR1czV4eDowfSk7Z2V0IHRyYWZmaWMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHJhZmZpYyhtKXt0aGlzLiNlPW19I3Q9KFBnKHRoaXMsbCksUGcodGhpcyxkLHtodHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiExLGh0dHBzQWN0aXZlOiExLHJvdXRlQ291bnQ6IjAifSkpO2dldCBwcm94eSgpe3JldHVybiB0aGlzLiN0fXNldCBwcm94eShtKXt0aGlzLiN0PW19I2E9KFBnKHRoaXMsdSksUGcodGhpcyxiLHt2YWxpZDowLGV4cGlyaW5nOjAsZXhwaXJlZDowfSkpO2dldCBjZXJ0aWZpY2F0ZXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY2VydGlmaWNhdGVzKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5ncmlkID4gKiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8c3otdHJhZmZpYy1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMudHJhZmZpY30KICAgICAgICA+PC9zei10cmFmZmljLWNhcmQ+CiAgICAgICAgPHN6LXJldmVyc2UtcHJveHktY2FyZAogICAgICAgICAgaHR0cFBvcnQ9IiR7dGhpcy5wcm94eS5odHRwUG9ydH0iCiAgICAgICAgICBodHRwc1BvcnQ9IiR7dGhpcy5wcm94eS5odHRwc1BvcnR9IgogICAgICAgICAgP2h0dHBBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBBY3RpdmV9CiAgICAgICAgICA/aHR0cHNBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBzQWN0aXZlfQogICAgICAgICAgcm91dGVDb3VudD0iJHt0aGlzLnByb3h5LnJvdXRlQ291bnR9IgogICAgICAgID48L3N6LXJldmVyc2UtcHJveHktY2FyZD4KICAgICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQKICAgICAgICAgIHZhbGlkPSIke3RoaXMuY2VydGlmaWNhdGVzLnZhbGlkfSIKICAgICAgICAgIGV4cGlyaW5nPSIke3RoaXMuY2VydGlmaWNhdGVzLmV4cGlyaW5nfSIKICAgICAgICAgIGV4cGlyZWQ9IiR7dGhpcy5jZXJ0aWZpY2F0ZXMuZXhwaXJlZH0iCiAgICAgICAgPjwvc3otY2VydGlmaWNhdGVzLWNhcmQ+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUGcodGhpcyx2KX1zdGF0aWN7UGcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIF8xZSxJZyxOUWEsbG90PWcoKCk9PntwZSgpO2VvdCgpO2FvdCgpO18xZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSWc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE5RYT0oKCk9PntsZXQgcz1bbmUoInN6LXN0YXR1cy1ncmlkLWluZnJhIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6U3RhdHVzR3JpZEluZnJhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOkFycmF5fSldLF8xZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRuc0NvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImRuc0NvbmZpZ3VyZWQiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5kbnNDb25maWd1cmVkLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZG5zQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksXzFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNtZUNvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImFjbWVDb25maWd1cmVkImluIGYsImhhcyIpLGdldDppKGY9PmYuYWNtZUNvbmZpZ3VyZWQsImdldCIpLHNldDppKChmLHkpPT57Zi5hY21lQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksXzFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iYWN0aW9ucyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmFjdGlvbnMsImdldCIpLHNldDppKChmLHkpPT57Zi5hY3Rpb25zPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxfMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgZG5zQ29uZmlndXJlZAogICAgICAgIGFjbWVDb25maWd1cmVkCiAgICAgICAgLmFjdGlvbnM9JHtbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPUlnKHRoaXMsbywhMSk7Z2V0IGRuc0NvbmZpZ3VyZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG5zQ29uZmlndXJlZChtKXt0aGlzLiNlPW19I3Q9KElnKHRoaXMsbCksSWcodGhpcyxkLCExKSk7Z2V0IGFjbWVDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjbWVDb25maWd1cmVkKG0pe3RoaXMuI3Q9bX0jYT0oSWcodGhpcyx1KSxJZyh0aGlzLGIsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBhY3Rpb25zKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5ncmlkID4gKiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgPHN6LWRucy1zc2wtY2FyZAogICAgICAgICAgP2Ruc0NvbmZpZ3VyZWQ9JHt0aGlzLmRuc0NvbmZpZ3VyZWR9CiAgICAgICAgICA/YWNtZUNvbmZpZ3VyZWQ9JHt0aGlzLmFjbWVDb25maWd1cmVkfQogICAgICAgID48L3N6LWRucy1zc2wtY2FyZD4KICAgICAgICA8c3otcXVpY2stYWN0aW9ucy1jYXJkCiAgICAgICAgICAuYWN0aW9ucz0ke3RoaXMuYWN0aW9uc30KICAgICAgICAgIEBhY3Rpb24tY2xpY2s9JHttPT50aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6bS5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0KICAgICAgICA+PC9zei1xdWljay1hY3Rpb25zLWNhcmQ+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksSWcodGhpcyx2KX1zdGF0aWN7SWcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEg3YSxjb3QsUlFhLHE3YT1nKCgpPT57cGUoKTtpb3QoKTtvb3QoKTtub3QoKTtsb3QoKTtIN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGNvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUlFhPSgoKT0+e2xldCBzPVtuZSgic3otZGFzaGJvYXJkLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEYXNoYm9hcmRWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0sSDdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZGF0YSJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmRhdGEsImdldCIpLHNldDppKCh1LGMpPT57dS5kYXRhPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxIN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxNDAwcHg7Ij4KICAgICAgPHN6LWRhc2hib2FyZC12aWV3CiAgICAgICAgLmRhdGE9JHt7Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczo3LHJ1bm5pbmc6NyxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJydW5uaW5nIn0scmVzb3VyY2VVc2FnZTp7Y3B1Oi41LG1lbW9yeVVzZWQ6IjE5MSBNQiIsbWVtb3J5VG90YWw6IjQyOS4yIEdCIixuZXR3b3JrSW46IjM4LjkgS0IvcyIsbmV0d29ya091dDoiMS43IEtCL3MiLHRvcENvbnN1bWVyczpbe25hbWU6InRlc3QtbmdpbngiLG1lbW9yeToiMzIuMSBNQiJ9LHtuYW1lOiJ0ZXN0LXYyIixtZW1vcnk6IjMxLjcgTUIifV19LHBsYXRmb3JtU2VydmljZXM6W3tuYW1lOiJNb25nb0RCIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTMyBTdG9yYWdlIChNaW5JTykiLHN0YXR1czoiMSBidWNrZXQiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTbWFydFByb3h5IFJldmVyc2UgUHJveHkiLHN0YXR1czoiUnVubmluZyIscnVubmluZzohMH0se25hbWU6IkNsaWNrSG91c2UiLHN0YXR1czoiMSBEQiIscnVubmluZzohMH1dLHRyYWZmaWM6e3JlcXVlc3RzOjEyNTAsZXJyb3JzOjE1LGVycm9yUGVyY2VudDoxLjIsYXZnUmVzcG9uc2U6MTQ1LHJlcVBlck1pbjoyMSxzdGF0dXMyeHg6ODUsc3RhdHVzM3h4OjUsc3RhdHVzNHh4Ojgsc3RhdHVzNXh4OjJ9LHByb3h5OntodHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiEwLGh0dHBzQWN0aXZlOiEwLHJvdXRlQ291bnQ6IjEyIn0sY2VydGlmaWNhdGVzOnt2YWxpZDo4LGV4cGlyaW5nOjIsZXhwaXJlZDowfSxkbnNDb25maWd1cmVkOiEwLGFjbWVDb25maWd1cmVkOiEwLHF1aWNrQWN0aW9uczpbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfX0KICAgICAgPjwvc3otZGFzaGJvYXJkLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT1jb3QodGhpcyxvLHtjbHVzdGVyOnt0b3RhbFNlcnZpY2VzOjAscnVubmluZzowLHN0b3BwZWQ6MCxkb2NrZXJTdGF0dXM6InN0b3BwZWQifSxyZXNvdXJjZVVzYWdlOntjcHU6MCxtZW1vcnlVc2VkOiIwIE1CIixtZW1vcnlUb3RhbDoiMCBHQiIsbmV0d29ya0luOiIwIEtCL3MiLG5ldHdvcmtPdXQ6IjAgS0IvcyIsdG9wQ29uc3VtZXJzOltdfSxwbGF0Zm9ybVNlcnZpY2VzOltdLHRyYWZmaWM6e3JlcXVlc3RzOjAsZXJyb3JzOjAsZXJyb3JQZXJjZW50OjAsYXZnUmVzcG9uc2U6MCxyZXFQZXJNaW46MCxzdGF0dXMyeHg6MCxzdGF0dXMzeHg6MCxzdGF0dXM0eHg6MCxzdGF0dXM1eHg6MH0scHJveHk6e2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITEsaHR0cHNBY3RpdmU6ITEscm91dGVDb3VudDoiMCJ9LGNlcnRpZmljYXRlczp7dmFsaWQ6MCxleHBpcmluZzowLGV4cGlyZWQ6MH0sZG5zQ29uZmlndXJlZDohMSxhY21lQ29uZmlndXJlZDohMSxxdWlja0FjdGlvbnM6W119KTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZGFzaGJvYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsdXN0ZXIgT3ZlcnZpZXc8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIKICAgICAgICAgICAgLnN0YXRzPSR7dGhpcy5kYXRhLmNsdXN0ZXJ9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1jbHVzdGVyPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TZXJ2aWNlcyAmIFJlc291cmNlczwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtc2VydmljZXMKICAgICAgICAgICAgLnJlc291cmNlVXNhZ2U9JHt0aGlzLmRhdGEucmVzb3VyY2VVc2FnZX0KICAgICAgICAgICAgLnBsYXRmb3JtU2VydmljZXM9JHt0aGlzLmRhdGEucGxhdGZvcm1TZXJ2aWNlc30KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLXNlcnZpY2VzPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OZXR3b3JrICYgVHJhZmZpYzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtbmV0d29yawogICAgICAgICAgICAudHJhZmZpYz0ke3RoaXMuZGF0YS50cmFmZmljfQogICAgICAgICAgICAucHJveHk9JHt0aGlzLmRhdGEucHJveHl9CiAgICAgICAgICAgIC5jZXJ0aWZpY2F0ZXM9JHt0aGlzLmRhdGEuY2VydGlmaWNhdGVzfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtbmV0d29yaz4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SW5mcmFzdHJ1Y3R1cmU8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgICAgID9kbnNDb25maWd1cmVkPSR7dGhpcy5kYXRhLmRuc0NvbmZpZ3VyZWR9CiAgICAgICAgICAgID9hY21lQ29uZmlndXJlZD0ke3RoaXMuZGF0YS5hY21lQ29uZmlndXJlZH0KICAgICAgICAgICAgLmFjdGlvbnM9JHt0aGlzLmRhdGEucXVpY2tBY3Rpb25zfQogICAgICAgICAgICBAYWN0aW9uLWNsaWNrPSR7ZD0+dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOmQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksY290KHRoaXMsbCl9c3RhdGlje2NvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgdDQsV24sT1FhLGo3YT1nKCgpPT57cGUoKTt0ND1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sV249ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LE9RYT0oKCk9PntsZXQgcz1bbmUoInN6LW5ldHdvcmstcHJveHktdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtQcm94eVZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpCb29sZWFufSldLHQ0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJveHlTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InByb3h5U3RhdHVzImluIFMsImhhcyIpLGdldDppKFM9PlMucHJveHlTdGF0dXMsImdldCIpLHNldDppKChTLEkpPT57Uy5wcm94eVN0YXR1cz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksdDQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJyb3V0ZUNvdW50ImluIFMsImhhcyIpLGdldDppKFM9PlMucm91dGVDb3VudCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnJvdXRlQ291bnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHQ0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VydGlmaWNhdGVDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2VydGlmaWNhdGVDb3VudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNlcnRpZmljYXRlQ291bnQsImdldCIpLHNldDppKChTLEkpPT57Uy5jZXJ0aWZpY2F0ZUNvdW50PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx0NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhcmdldENvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YXJnZXRDb3VudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhcmdldENvdW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGFyZ2V0Q291bnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLHQ0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFyZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGFyZ2V0cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhcmdldHMsImdldCIpLHNldDppKChTLEkpPT57Uy50YXJnZXRzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSx0NCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImxvZ3MiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sb2dzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubG9ncz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksdDQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdHJlYW1pbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0cmVhbWluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0cmVhbWluZywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN0cmVhbWluZz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksdDQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxNDAwcHg7Ij4KICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIHByb3h5U3RhdHVzPSJydW5uaW5nIgogICAgICAgIHJvdXRlQ291bnQ9IjMiCiAgICAgICAgY2VydGlmaWNhdGVDb3VudD0iMiIKICAgICAgICB0YXJnZXRDb3VudD0iMTEiCiAgICAgICAgLnRhcmdldHM9JHtbe3R5cGU6InNlcnZpY2UiLG5hbWU6InRlc3QtbmdpbngiLGRvbWFpbjoiYXBwLmJsZXUuZGUiLHRhcmdldDoibG9jYWxob3N0OjgwODAiLHN0YXR1czoicnVubmluZyJ9LHt0eXBlOiJzZXJ2aWNlIixuYW1lOiJoZWxsby13b3JsZCIsZG9tYWluOiJoZWxsby50YXNrLnZjIix0YXJnZXQ6ImxvY2FsaG9zdDo4MDgxIixzdGF0dXM6InJ1bm5pbmcifSx7dHlwZToicmVnaXN0cnkiLG5hbWU6Im9uZWJveC1yZWdpc3RyeSIsZG9tYWluOm51bGwsdGFyZ2V0OiJsb2NhbGhvc3Q6NDAwMCIsc3RhdHVzOiJydW5uaW5nIn0se3R5cGU6InBsYXRmb3JtIixuYW1lOiJNb25nb0RCIixkb21haW46bnVsbCx0YXJnZXQ6ImxvY2FsaG9zdDoyNzAxNyIsc3RhdHVzOiJydW5uaW5nIn0se3R5cGU6InBsYXRmb3JtIixuYW1lOiJDbGlja0hvdXNlIixkb21haW46bnVsbCx0YXJnZXQ6ImxvY2FsaG9zdDo4MTIzIixzdGF0dXM6InJ1bm5pbmcifV19CiAgICAgICAgLmxvZ3M9JHtbe3RpbWVzdGFtcDoiMjAyNC0wMS0wMiAxMDoxNTozMiIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9hcGkvc2VydmljZXMiLHN0YXR1czoyMDAsZHVyYXRpb246NDUsaXA6IjE5Mi4xNjguMS4xMDAifSx7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMwIixtZXRob2Q6IlBPU1QiLHBhdGg6Ii9hcGkvYXV0aC9sb2dpbiIsc3RhdHVzOjIwMCxkdXJhdGlvbjoxMjAsaXA6IjE5Mi4xNjguMS4xMDEifSx7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjI4IixtZXRob2Q6IkdFVCIscGF0aDoiL3N0YXRpYy9idW5kbGUuanMiLHN0YXR1czozMDQsZHVyYXRpb246NSxpcDoiMTkyLjE2OC4xLjEwMCJ9XX0KICAgICAgPjwvc3otbmV0d29yay1wcm94eS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPVduKHRoaXMsbywic3RvcHBlZCIpO2dldCBwcm94eVN0YXR1cygpe3JldHVybiB0aGlzLiNlfXNldCBwcm94eVN0YXR1cyhrKXt0aGlzLiNlPWt9I3Q9KFduKHRoaXMsbCksV24odGhpcyxkLCIwIikpO2dldCByb3V0ZUNvdW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvdXRlQ291bnQoayl7dGhpcy4jdD1rfSNhPShXbih0aGlzLHUpLFduKHRoaXMsYiwiMCIpKTtnZXQgY2VydGlmaWNhdGVDb3VudCgpe3JldHVybiB0aGlzLiNhfXNldCBjZXJ0aWZpY2F0ZUNvdW50KGspe3RoaXMuI2E9a30jcz0oV24odGhpcyx2KSxXbih0aGlzLG0sIjAiKSk7Z2V0IHRhcmdldENvdW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRhcmdldENvdW50KGspe3RoaXMuI3M9a30jaT0oV24odGhpcyxmKSxXbih0aGlzLE0sW10pKTtnZXQgdGFyZ2V0cygpe3JldHVybiB0aGlzLiNpfXNldCB0YXJnZXRzKGspe3RoaXMuI2k9a30jcj0oV24odGhpcyx6KSxXbih0aGlzLEMsW10pKTtnZXQgbG9ncygpe3JldHVybiB0aGlzLiNyfXNldCBsb2dzKGspe3RoaXMuI3I9a30jbz0oV24odGhpcyxfKSxXbih0aGlzLCQsITEpKTtnZXQgc3RyZWFtaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IHN0cmVhbWluZyhrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAucmVmcmVzaC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZWZyZXNoLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxLjVmciAxLjVmciAxLjVmciA4MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDEuNWZyIDEuNWZyIDEuNWZyIDgwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAudHlwZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAudHlwZS1iYWRnZS5zZXJ2aWNlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnJlZ2lzdHJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZThmZiIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkzMzNlYSIsIiNhODU1ZjciKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnBsYXRmb3JtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC50YXJnZXQtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmxvZ3MtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAubG9nLWVudHJ5IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubG9nLXRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmxvZy1tZXRob2QgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtMnh4IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAubG9nLXN0YXR1cy0zeHggewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5sb2ctc3RhdHVzLTR4eCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtNXh4IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuZW1wdHktbG9ncyB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoicHJveHktc3RhdHVzIix0aXRsZToiUHJveHkgU3RhdHVzIix2YWx1ZTp0aGlzLnByb3h5U3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sb3I6dGhpcy5wcm94eVN0YXR1cz09PSJydW5uaW5nIj8iIzIyYzU1ZSI6IiNlZjQ0NDQifSx7aWQ6InJvdXRlcyIsdGl0bGU6IlJvdXRlcyIsdmFsdWU6dGhpcy5yb3V0ZUNvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoiY2VydGlmaWNhdGVzIix0aXRsZToiQ2VydGlmaWNhdGVzIix2YWx1ZTp0aGlzLmNlcnRpZmljYXRlQ291bnQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2hlY2sifSx7aWQ6InRhcmdldHMiLHRpdGxlOiJUYXJnZXRzIix2YWx1ZTp0aGlzLnRhcmdldENvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVmcmVzaC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlZnJlc2goKX0+UmVmcmVzaDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMudGlsZXN9CiAgICAgICAgLm1pblRpbGVXaWR0aD0kezIwMH0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYWZmaWMgVGFyZ2V0czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlNlcnZpY2VzLCByZWdpc3RyeSwgYW5kIHBsYXRmb3JtIHNlcnZpY2VzIHdpdGggdGhlaXIgcm91dGluZyBpbmZvPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPlR5cGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5OYW1lPC9zcGFuPgogICAgICAgICAgPHNwYW4+RG9tYWluPC9zcGFuPgogICAgICAgICAgPHNwYW4+VGFyZ2V0PC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy50YXJnZXRzLm1hcChrPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVUYXJnZXRDbGljayhrKX0+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLWJhZGdlICR7ay50eXBlfSI+JHtrLnR5cGV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+JHtrLm5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4ke2suZG9tYWlufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0LXZhbHVlIj4ke2sudGFyZ2V0fTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2suc3RhdHVzfSI+JHtrLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BY2Nlc3MgTG9nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlJlYWwtdGltZSBwcm94eSBhY2Nlc3MgbG9nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ3MtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5sb2dzLmxlbmd0aD4wP3RoaXMubG9ncy5tYXAoaz0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nLWVudHJ5Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nLXRpbWVzdGFtcCI+JHtrLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvZy1tZXRob2QiPiR7ay5tZXRob2R9PC9zcGFuPgogICAgICAgICAgICAgICR7ay5wYXRofQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke3RoaXMuZ2V0U3RhdHVzQ2xhc3Moay5zdGF0dXMpfSI+JHtrLnN0YXR1c308L3NwYW4+CiAgICAgICAgICAgICAgJHtrLmR1cmF0aW9ufW1zCiAgICAgICAgICAgICAgJHtrLmlwfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LWxvZ3MiPkNsaWNrICJTdHJlYW0iIHRvIHN0YXJ0IGxpdmUgYWNjZXNzIGxvZyBzdHJlYW1pbmc8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiAke3RoaXMuc3RyZWFtaW5nPyJkYW5nZXIiOiJwcmltYXJ5In0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVN0cmVhbWluZygpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAke3RoaXMuc3RyZWFtaW5nP3dgPHJlY3QgeD0iNiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMSIvPmA6d2A8cG9seWdvbiBwb2ludHM9IjUsMyAxOSwxMiA1LDIxIi8+YH0KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICR7dGhpcy5zdHJlYW1pbmc/IlN0b3AiOiJTdHJlYW0ifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2xlYXJMb2dzKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENsZWFyIGxvZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Z2V0U3RhdHVzQ2xhc3Moayl7cmV0dXJuIGs+PTUwMD8ibG9nLXN0YXR1cy01eHgiOms+PTQwMD8ibG9nLXN0YXR1cy00eHgiOms+PTMwMD8ibG9nLXN0YXR1cy0zeHgiOiJsb2ctc3RhdHVzLTJ4eCJ9aGFuZGxlUmVmcmVzaCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZnJlc2giLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhcmdldENsaWNrKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhcmdldC1jbGljayIse2RldGFpbDprLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dG9nZ2xlU3RyZWFtaW5nKCl7dGhpcy5zdHJlYW1pbmc9IXRoaXMuc3RyZWFtaW5nLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS10b2dnbGUiLHtkZXRhaWw6e3N0cmVhbWluZzp0aGlzLnN0cmVhbWluZ30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbGVhckxvZ3MoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGVhci1sb2dzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksV24odGhpcyxFKX1zdGF0aWN7V24oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIFY3YSxkb3QsRlFhLFU3YT1nKCgpPT57cGUoKTtWN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGRvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRlFhPSgoKT0+e2xldCBzPVtuZSgic3otbmV0d29yay1kbnMtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEbnNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxWN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWNvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJyZWNvcmRzImluIHUsImhhcyIpLGdldDppKHU9PnUucmVjb3JkcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnJlY29yZHM9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFY3YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otbmV0d29yay1kbnMtdmlldwogICAgICAgIC5yZWNvcmRzPSR7W3tkb21haW46InByLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIxOTUuMjAxLjk4LjIzMiJ9LHtkb21haW46Im91dGxpbmUudGFzay52YyIsdHlwZToiQSIsdmFsdWU6IjE5NS4yMDEuOTguMjMyIn0se2RvbWFpbjoibnMxLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIyMTIuOTUuOTkuMTMwIn0se2RvbWFpbjoiYmxldS5kZSIsdHlwZToiQSIsdmFsdWU6IjIxMi45NS45OS4xMzAifSx7ZG9tYWluOiJtYWlsLmJsZXUuZGUiLHR5cGU6Ik1YIix2YWx1ZToiMTAgbWFpbC5ibGV1LmRlIn1dfQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPWRvdCh0aGlzLG8sW10pO2dldCByZWNvcmRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlY29yZHMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc3luYy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciA4MHB4IDJmciAxMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDgwcHggMmZyIDEwMHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZG9tYWluIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudHlwZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC52YWx1ZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZGVsZXRlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kZWxldGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZGVzY3JpcHRpb24iPk1hbmFnZSBETlMgcmVjb3JkcyBzeW5jZWQgd2l0aCBDbG91ZGZsYXJlPC9zcGFuPgogICAgICAgIDxidXR0b24gY2xhc3M9InN5bmMtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTeW5jKCl9PgogICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5bTktOWE5IDkgMCAwIDAtOS05bTkgOUgzbTkgOWE5IDkgMCAwIDEtOS05bTkgOWMxLjY2IDAgMy00LjAzIDMtOXMtMS4zNC05LTMtOW0wIDE4Yy0xLjY2IDAtMy00LjAzLTMtOXMxLjM0LTkgMy05Ii8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIFN5bmMgQ2xvdWRmbGFyZQogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlR5cGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5WYWx1ZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlY29yZHMubGVuZ3RoPjA/dGhpcy5yZWNvcmRzLm1hcChkPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvbWFpbiI+JHtkLmRvbWFpbn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLWJhZGdlIj4ke2QudHlwZX08L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idmFsdWUiPiR7ZC52YWx1ZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlbGV0ZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShkKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gRE5TIHJlY29yZHMgZm91bmQ8L2Rpdj4KICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU3luYygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN5bmMiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZShkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUiLHtkZXRhaWw6ZCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxkb3QodGhpcyxsKX1zdGF0aWN7ZG90KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciB1b3QsZlEsQlFhLFc3YT1nKCgpPT57cGUoKTt1b3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGZRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxCUWE9KCgpPT57bGV0IHM9W25lKCJzei1uZXR3b3JrLWRvbWFpbnMtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEb21haW5zVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sdW90KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tYWlucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iZG9tYWlucyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmRvbWFpbnMsImdldCIpLHNldDppKCh2LHgpPT57di5kb21haW5zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx1b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic3RhdHMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zdGF0cywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnN0YXRzPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx1b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LW5ldHdvcmstZG9tYWlucy12aWV3CiAgICAgICAgLmRvbWFpbnM9JHtbe2RvbWFpbjoiYmxldS5kZSIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoyLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoidGFzay52YyIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoxLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoiZXhhbXBsZS5jb20iLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6MCxjZXJ0aWZpY2F0ZVN0YXR1czoiZXhwaXJpbmciLGV4cGlyZXNJbjoiNyBkYXlzIn1dfQogICAgICAgIC5zdGF0cz0ke3t0b3RhbDozLHZhbGlkOjIsZXhwaXJpbmc6MSxleHBpcmVkOjB9fQogICAgICA+PC9zei1uZXR3b3JrLWRvbWFpbnMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1mUSh0aGlzLG8sW10pO2dldCBkb21haW5zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRvbWFpbnMoYil7dGhpcy4jZT1ifSN0PShmUSh0aGlzLGwpLGZRKHRoaXMsZCx7dG90YWw6MCx2YWxpZDowLGV4cGlyaW5nOjAsZXhwaXJlZDowfSkpO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0cyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3luYy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zeW5jLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnIgODBweCAxMDBweCAxMDBweCA4MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDgwcHggMTAwcHggMTAwcHggODBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZG9tYWluLW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5wcm92aWRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXhwaXJpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5leHBpcmVkLAogICAgICAuc3RhdHVzLWJhZGdlLnBlbmRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuZXhwaXJlcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnZpZXctYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC52aWV3LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoidG90YWwiLHRpdGxlOiJUb3RhbCBEb21haW5zIix2YWx1ZTp0aGlzLnN0YXRzLnRvdGFsLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmdsb2JlIn0se2lkOiJ2YWxpZCIsdGl0bGU6IlZhbGlkIENlcnRpZmljYXRlcyIsdmFsdWU6dGhpcy5zdGF0cy52YWxpZCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaGllbGRDaGVjayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6ImV4cGlyaW5nIix0aXRsZToiRXhwaXJpbmcgU29vbiIsdmFsdWU6dGhpcy5zdGF0cy5leHBpcmluZyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaGllbGRBbGVydCIsY29sb3I6dGhpcy5zdGF0cy5leHBpcmluZz4wPyIjZjU5ZTBiIjp2b2lkIDB9LHtpZDoiZXhwaXJlZCIsdGl0bGU6IkV4cGlyZWQvUGVuZGluZyIsdmFsdWU6dGhpcy5zdGF0cy5leHBpcmVkLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNpcmNsZU9mZiIsY29sb3I6dGhpcy5zdGF0cy5leHBpcmVkPjA/IiNlZjQ0NDQiOnZvaWQgMH1dfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJkZXNjcmlwdGlvbiI+TWFuYWdlIGRvbWFpbnMgYW5kIFNTTCBjZXJ0aWZpY2F0ZXM8L3NwYW4+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic3luYy1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVN5bmMoKX0+U3luYyBDbG91ZGZsYXJlPC9idXR0b24+CiAgICAgIDwvZGl2PgoKICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy50aWxlc30KICAgICAgICAubWluVGlsZVdpZHRoPSR7MjAwfQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlByb3ZpZGVyPC9zcGFuPgogICAgICAgICAgPHNwYW4+U2VydmljZXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5DZXJ0aWZpY2F0ZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkV4cGlyZXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kb21haW5zLmxlbmd0aD4wP3RoaXMuZG9tYWlucy5tYXAoYj0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb21haW4tbmFtZSI+JHtiLmRvbWFpbn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm92aWRlciI+JHtiLnByb3ZpZGVyfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+JHtiLnNlcnZpY2VDb3VudH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtiLmNlcnRpZmljYXRlU3RhdHVzfSI+JHtiLmNlcnRpZmljYXRlU3RhdHVzfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJleHBpcmVzIj4ke2IuZXhwaXJlc0lufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ2aWV3LWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVmlldyhiKX0+VmlldzwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKTp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGRvbWFpbnMgY29uZmlndXJlZDwvZGl2PgogICAgICAgIGB9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTeW5jKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic3luYyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVmlldyhiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2aWV3Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZlEodGhpcyx1KX1zdGF0aWN7ZlEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHBvdCxtUSxIUWEsRzdhPWcoKCk9PntwZSgpO3BvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbVE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEhRYT0oKCk9PntsZXQgcz1bbmUoInN6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pSZWdpc3RyeUFkdmVydGlzZW1lbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxwb3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InN0YXR1cyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnN0YXR1cywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnN0YXR1cz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCkscG90KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVnaXN0cnlVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InJlZ2lzdHJ5VXJsImluIHYsImhhcyIpLGdldDppKHY9PnYucmVnaXN0cnlVcmwsImdldCIpLHNldDppKCh2LHgpPT57di5yZWdpc3RyeVVybD14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSkscG90KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQKICAgICAgICBzdGF0dXM9InJ1bm5pbmciCiAgICAgICAgcmVnaXN0cnlVcmw9ImxvY2FsaG9zdDozMDAwL3YyIgogICAgICA+PC9zei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9bVEodGhpcyxvLCJzdG9wcGVkIik7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0dXMoYil7dGhpcy4jZT1ifSN0PShtUSh0aGlzLGwpLG1RKHRoaXMsZCwiIikpO2dldCByZWdpc3RyeVVybCgpe3JldHVybiB0aGlzLiN0fXNldCByZWdpc3RyeVVybChiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1pY29uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5kZWZhdWx0LWJhZGdlIHsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmluZm8taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaW5mby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLm1hbmFnZS1saW5rIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5tYW5hZ2UtbGluazpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5xdWljay1zdGFydCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtZGVzYyB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuY29kZS1saW5lIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLmNvZGUtbGluZTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuY29kZS1jb21tZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY29kZS1jb21tYW5kIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjZTRlNGU3Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj4KICAgICAgICAgICAgICBSZWdpc3RyeSBBZHZlcnRpc2VtZW50CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRlZmF1bHQtYmFkZ2UiPkRlZmF1bHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkNvbnRhaW5lciByZWdpc3RyeSBmb3IgeW91ciBzZXJ2aWNlczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWdyaWQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc3RhdHVzfSI+JHt0aGlzLnN0YXR1cz09PSJydW5uaW5nIj8iUnVubmluZyI6IlN0b3BwZWQifTwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5SZWdpc3RyeSBVUkw8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPiR7dGhpcy5yZWdpc3RyeVVybH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5BdXRoZW50aWNhdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibWFuYWdlLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1hbmFnZVRva2VucygpfT5NYW5hZ2UgVG9rZW5zPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrLXN0YXJ0LXRpdGxlIj5RdWljayBTdGFydDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydC1kZXNjIj5UbyBwdXNoIGltYWdlcyB0byB0aGUgcmVnaXN0cnksIHVzZSBhIENJIG9yIEdsb2JhbCB0b2tlbjo8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWVudCI+IyBMb2dpbiB0byB0aGUgcmVnaXN0cnk8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tYW5kIj5kb2NrZXIgbG9naW4gJHt0aGlzLnJlZ2lzdHJ5VXJsLnNwbGl0KCIvIilbMF19IC11IHJlZ2lzdHJ5IC1wIFlPVVJfVE9LRU48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tZW50Ij4jIFRhZyBhbmQgcHVzaCB5b3VyIGltYWdlPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWFuZCI+ZG9ja2VyIHRhZyBteWFwcCAke3RoaXMucmVnaXN0cnlVcmwuc3BsaXQoIi8iKVswXX0vbXlzZXJ2aWNlOmxhdGVzdDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGluZSBjb2RlLWNvbW1hbmQiPmRvY2tlciBwdXNoICR7dGhpcy5yZWdpc3RyeVVybC5zcGxpdCgiLyIpWzBdfS9teXNlcnZpY2U6bGF0ZXN0PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVNYW5hZ2VUb2tlbnMoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYW5hZ2UtdG9rZW5zIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbVEodGhpcyx1KX1zdGF0aWN7bVEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEs3YSxob3QscVFhLFk3YT1nKCgpPT57cGUoKTtLN2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGhvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scVFhPSgoKT0+e2xldCBzPVtuZSgic3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelJlZ2lzdHJ5RXh0ZXJuYWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxLN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWdpc3RyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJyZWdpc3RyaWVzImluIHUsImhhcyIpLGdldDppKHU9PnUucmVnaXN0cmllcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnJlZ2lzdHJpZXM9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEs3YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbe2lkOiIxIixuYW1lOiJEb2NrZXIgSHViIix1cmw6ImRvY2tlci5pbyIsdXNlcm5hbWU6Im15dXNlciIsdHlwZToiZG9ja2VyaHViIn0se2lkOiIyIixuYW1lOiJHaXRIdWIgQ29udGFpbmVyIFJlZ2lzdHJ5Iix1cmw6ImdoY3IuaW8iLHVzZXJuYW1lOiJteW9yZyIsdHlwZToiZ2hjciJ9XX0KICAgICAgPjwvc3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkF1dGggJiBTZXR0aW5ncyJdOyNlPWhvdCh0aGlzLG8sW10pO2dldCByZWdpc3RyaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZ2lzdHJpZXMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWljb24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAucmVnaXN0cnktZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LXVybCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZW1wdHktdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj5FeHRlcm5hbCBSZWdpc3RyaWVzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkFkZCBjcmVkZW50aWFscyBmb3IgcHJpdmF0ZSBEb2NrZXIgcmVnaXN0cmllczwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFkZCgpfT5BZGQgUmVnaXN0cnk8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMucmVnaXN0cmllcy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWxpc3QiPgogICAgICAgICAgJHt0aGlzLnJlZ2lzdHJpZXMubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWl0ZW0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWluZm8iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1uYW1lIj4ke2QubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktdXJsIj4ke2QudXJsfSAoJHtkLnVzZXJuYW1lfSk8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRWRpdChkKX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShkKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJlbXB0eS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjIyLjA4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10aXRsZSI+Tm8gZXh0ZXJuYWwgcmVnaXN0cmllczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktZGVzY3JpcHRpb24iPkFkZCBjcmVkZW50aWFscyBmb3IgRG9ja2VyIEh1YiwgR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSwgb3Igb3RoZXIgcHJpdmF0ZSByZWdpc3RyaWVzLjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZW1wdHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBZGQoKX0+QWRkIEV4dGVybmFsIFJlZ2lzdHJ5PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CiAgICBgfWhhbmRsZUFkZCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFkZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdChkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0Iix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaG90KHRoaXMsbCl9c3RhdGlje2hvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgWjdhLGZvdCxqUWEsWDdhPWcoKCk9PntwZSgpO1o3YT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZm90PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxqUWE9KCgpPT57bGV0IHM9W25lKCJzei1zZXJ2aWNlcy1saXN0LXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0xpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxaN2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ic2VydmljZXMiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnNlcnZpY2VzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxaN2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2VzLWxpc3QtdmlldwogICAgICAgIC5zZXJ2aWNlcz0ke1t7bmFtZToidGVzdC1uZ2lueCIsaW1hZ2U6Im5naW54OmFscGluZSIsZG9tYWluOiJhcHAuYmxldS5kZSIsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImhlbGxvLXdvcmxkIixpbWFnZToibG9jYWxob3N0OjMwMDAvaGVsbG8td29ybGQ6bGF0ZXN0Iixkb21haW46ImhlbGxvLnRhc2sudmMiLHN0YXR1czoicnVubmluZyJ9LHtuYW1lOiJ0ZXN0LXYyIixpbWFnZToibG9jYWxob3N0OjMwMDAvdGVzdC1yZWdpc3RyeTp2MSIsZG9tYWluOm51bGwsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImFwaS1zZXJ2aWNlIixpbWFnZToibm9kZToxOC1hbHBpbmUiLGRvbWFpbjoiYXBpLmV4YW1wbGUuY29tIixzdGF0dXM6InN0b3BwZWQifV19CiAgICAgID48L3N6LXNlcnZpY2VzLWxpc3Qtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9Zm90KHRoaXMsbyxbXSk7Z2V0IHNlcnZpY2VzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2VzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudGFibGUtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMmZyIDEuNWZyIDEwMHB4IDIwMHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjVmciAyZnIgMS41ZnIgMTAwcHggMjAwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5pbWFnZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5kb21haW4tbGluayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kb21haW4tbGluazpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RhcnRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zdG9wIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjYThhMDQiLCIjZmFjYzE1Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWY5YzMiLCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc3RhcnQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnJlc3RhcnQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFibGUtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+TmFtZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkltYWdlPC9zcGFuPgogICAgICAgICAgPHNwYW4+RG9tYWluPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2VydmljZXMubGVuZ3RoPjA/dGhpcy5zZXJ2aWNlcy5tYXAoZD0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZXJ2aWNlLW5hbWUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNlcnZpY2VDbGljayhkKX0+JHtkLm5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW1hZ2UiIHRpdGxlPSIke2QuaW1hZ2V9Ij4ke2QuaW1hZ2V9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAke2QuZG9tYWluP3dgPGEgY2xhc3M9ImRvbWFpbi1saW5rIiBocmVmPSJodHRwczovLyR7ZC5kb21haW59IiB0YXJnZXQ9Il9ibGFuayI+JHtkLmRvbWFpbn08L2E+YDoiLSJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2Quc3RhdHVzfSI+JHtkLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgICAgICAgJHtkLnN0YXR1cz09PSJydW5uaW5nIj93YDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gc3RvcCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsInN0b3AiKX0+U3RvcDwvYnV0dG9uPmA6d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHN0YXJ0IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oZCwic3RhcnQiKX0+U3RhcnQ8L2J1dHRvbj5gfQogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gcmVzdGFydCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsInJlc3RhcnQiKX0+UmVzdGFydDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oZCwiZGVsZXRlIil9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKTp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIHNlcnZpY2VzIGRlcGxveWVkPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVNlcnZpY2VDbGljayhkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXJ2aWNlLWNsaWNrIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBY3Rpb24oZCx1KXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXJ2aWNlLWFjdGlvbiIse2RldGFpbDp7c2VydmljZTpkLGFjdGlvbjp1fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmb3QodGhpcyxsKX1zdGF0aWN7Zm90KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBtb3QsZ1EsVlFhLFE3YT1nKCgpPT57cGUoKTttb3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGdRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxWUWE9KCgpPT57bGV0IHM9W25lKCJzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0JhY2t1cHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkFycmF5fSldLG1vdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNjaGVkdWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2NoZWR1bGVzImluIHYsImhhcyIpLGdldDppKHY9PnYuc2NoZWR1bGVzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2NoZWR1bGVzPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxtb3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJiYWNrdXBzImluIHYsImhhcyIpLGdldDppKHY9PnYuYmFja3VwcywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmJhY2t1cHM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLG1vdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc2VydmljZXMtYmFja3Vwcy12aWV3CiAgICAgICAgLnNjaGVkdWxlcz0ke1t7aWQ6IjEiLHNjb3BlOiJBbGwgU2VydmljZXMiLHJldGVudGlvbjoiRDo3LCBXOjQsIE06MTIiLHNjaGVkdWxlOiIwIDIgKiAqICoiLGxhc3RSdW46IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixuZXh0UnVuOiIxLzMvMjAyNiwgMjowMDowMCBBTSIsc3RhdHVzOiJhY3RpdmUifV19CiAgICAgICAgLmJhY2t1cHM9JHtbe2lkOiIxIixzZXJ2aWNlOiJ0ZXN0LW5naW54IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIl19LHtpZDoiMiIsc2VydmljZToiaGVsbG8td29ybGQiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDIgQU0iLHNpemU6IjIxLjUgTUIiLGluY2x1ZGVzOlsiSW1hZ2UiXX0se2lkOiIzIixzZXJ2aWNlOiJ0ZXN0LWNoLWZpbmFsIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAwIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIiwiY2xpY2tob3VzZSJdfV19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9Z1EodGhpcyxvLFtdKTtnZXQgc2NoZWR1bGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNjaGVkdWxlcyhiKXt0aGlzLiNlPWJ9I3Q9KGdRKHRoaXMsbCksZ1EodGhpcyxkLFtdKSk7Z2V0IGJhY2t1cHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja3VwcyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2NoZWR1bGVzLWhlYWRlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxLjVmciAxLjVmciA4MHB4IDEyMHB4OwogICAgICB9CgogICAgICAuYmFja3Vwcy1oZWFkZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMS41ZnIgMTAwcHggMWZyIDEyMHB4OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuc2NoZWR1bGVzLXJvdyB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxLjVmciAxLjVmciA4MHB4IDEyMHB4OwogICAgICB9CgogICAgICAuYmFja3Vwcy1yb3cgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMS41ZnIgMTAwcHggMWZyIDEyMHB4OwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmZhaWxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubWV0YS10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmluY2x1ZGVzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaW5jbHVkZS1iYWRnZSB7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAucm93LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5CYWNrdXAgU2NoZWR1bGVzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q29uZmlndXJlIGF1dG9tYXRlZCBiYWNrdXAgc2NoZWR1bGVzIGZvciB5b3VyIHNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIHNjaGVkdWxlcy1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+U2NvcGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5SZXRlbnRpb248L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TY2hlZHVsZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkxhc3QgUnVuPC9zcGFuPgogICAgICAgICAgPHNwYW4+TmV4dCBSdW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5zY2hlZHVsZXMubWFwKGI9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3cgc2NoZWR1bGVzLXJvdyI+CiAgICAgICAgICAgIDxzcGFuPiR7Yi5zY29wZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiIHRpdGxlPSJLZWVwOiAke2IucmV0ZW50aW9ufSI+JHtiLnJldGVudGlvbn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiPiR7Yi5zY2hlZHVsZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiPiR7Yi5sYXN0UnVufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2IubmV4dFJ1bnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2Iuc3RhdHVzfSIgdGl0bGU9IiR7Yi5lcnJvcnx8IiJ9Ij4KICAgICAgICAgICAgICAgICR7Yi5zdGF0dXM9PT0iYWN0aXZlIj8iQWN0aXZlIjpiLnN0YXR1cz09PSJmYWlsZWQiPyJGYWlsZWQiOiJEaXNhYmxlZCJ9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3ctYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJSdW4gYmFja3VwIG5vdyIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUnVuTm93KGIpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBvbHlnb24gcG9pbnRzPSI1LDMgMTksMTIgNSwyMSIvPjwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iJHtiLnN0YXR1cz09PSJkaXNhYmxlZCI/IkVuYWJsZSI6IkRpc2FibGUifSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVG9nZ2xlKGIpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAke2Iuc3RhdHVzPT09ImRpc2FibGVkIj93YDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPmA6d2A8cmVjdCB4PSI2IiB5PSI2IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+YH0KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGRhbmdlciIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlU2NoZWR1bGUoYil9PgogICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMsNiA1LDYgMjEsNiIvPjxwYXRoIGQ9Ik0xOSw2djE0YTIsMiwwLDAsMS0yLDJIN2EyLDIsMCwwLDEtMi0yVjZtMywwVjRhMiwyLDAsMCwxLDItMmg0YTIsMiwwLDAsMSwyLDJ2MiIvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUltcG9ydCgpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNyA4IDEyIDMgNyA4Ii8+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMyIgeDI9IjEyIiB5Mj0iMTUiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEltcG9ydCBCYWNrdXAKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlU2NoZWR1bGUoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENyZWF0ZSBTY2hlZHVsZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BbGwgQmFja3Vwczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkJyb3dzZSBhbmQgbWFuYWdlIGFsbCBiYWNrdXBzIGFjcm9zcyBzZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciBiYWNrdXBzLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5TZXJ2aWNlPC9zcGFuPgogICAgICAgICAgPHNwYW4+Q3JlYXRlZDwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlNpemU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5JbmNsdWRlczwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmJhY2t1cHMubWFwKGI9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3cgYmFja3Vwcy1yb3ciPgogICAgICAgICAgICA8c3Bhbj4ke2Iuc2VydmljZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLXRleHQiPiR7Yi5jcmVhdGVkQXR9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2Iuc2l6ZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmNsdWRlcy1saXN0Ij4KICAgICAgICAgICAgICAke2IuaW5jbHVkZXMubWFwKHY9PndgPHNwYW4gY2xhc3M9ImluY2x1ZGUtYmFkZ2UiPiR7dn08L3NwYW4+YCl9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJvdy1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkRvd25sb2FkIGJhY2t1cCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRG93bmxvYWQoYil9PgogICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjcgMTAgMTIgMTUgMTcgMTAiLz4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTUiIHgyPSIxMiIgeTI9IjMiLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGRhbmdlciIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlQmFja3VwKGIpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWhhbmRsZUltcG9ydCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImltcG9ydCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ3JlYXRlU2NoZWR1bGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUtc2NoZWR1bGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJ1bk5vdyhiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tbm93Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVUb2dnbGUoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidG9nZ2xlLXNjaGVkdWxlIix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGVTY2hlZHVsZShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUtc2NoZWR1bGUiLHtkZXRhaWw6YixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURvd25sb2FkKGIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRvd25sb2FkIix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGVCYWNrdXAoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLWJhY2t1cCIse2RldGFpbDpiLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGdRKHRoaXMsdSl9c3RhdGlje2dRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBDdSxBbyxVUWEsSjdhPWcoKCk9PntwZSgpO0N1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVVFhPSgoKT0+e2xldCBzPVtuZSgic3otc2VydmljZS1kZXRhaWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdO3ZhciBJPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelNlcnZpY2VEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFA9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpPYmplY3R9KV0sYz1bTCh7dHlwZTpBcnJheX0pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOk9iamVjdH0pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxIPVtZKCldLEN1KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VydmljZSJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNlcnZpY2UsImdldCIpLHNldDppKChSLEspPT57Ui5zZXJ2aWNlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbyxsKSxDdSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJzdGF0cyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnN0YXRzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc3RhdHM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLEN1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFja3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iYmFja3VwcyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmJhY2t1cHMsImdldCIpLHNldDppKChSLEspPT57Ui5iYWNrdXBzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxDdSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImxvZ3MiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5sb2dzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IubG9ncz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG0sZiksQ3UodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdHJlYW1pbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InN0cmVhbWluZyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnN0cmVhbWluZywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnN0cmVhbWluZz1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LE0seiksQ3UodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3Jrc3BhY2VFbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4id29ya3NwYWNlRW52aXJvbm1lbnQiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui53b3Jrc3BhY2VFbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLndvcmtzcGFjZUVudmlyb25tZW50PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxDdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmtzcGFjZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+IndvcmtzcGFjZVBhdGgiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui53b3Jrc3BhY2VQYXRoLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iud29ya3NwYWNlUGF0aD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksQ3UodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY3VycmVudFZpZXciaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5jdXJyZW50VmlldywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmN1cnJlbnRWaWV3PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sayxTKSxDdShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpQfSxudWxsLHQpLEk9YT1lLnZhbHVlLFAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7e25hbWU6InRlc3QtbmdpbngiLHN0YXR1czoicnVubmluZyIsaW1hZ2U6Im5naW54OmFscGluZSIscG9ydDo4MCxkb21haW46ImFwcC5ibGV1LmRlIixjb250YWluZXJJZDoicGNoYmJyOWZqcjRnIixjcmVhdGVkOiIxMS8xOC8yMDI1LCAyOjA2OjU1IFBNIix1cGRhdGVkOiIxMS8yNi8yMDI1LCA0OjA1OjQ2IFBNIixyZWdpc3RyeToiRG9ja2VyIEh1YiIscmVwb3NpdG9yeToibmdpbngiLHRhZzoiYWxwaW5lIn19CiAgICAgICAgLnN0YXRzPSR7e2NwdTouNSxtZW1vcnk6IjMyLjEgTUIiLG1lbW9yeUxpbWl0OiI2MS4zIEdCIixuZXR3b3JrSW46IjYuNCBLQiIsbmV0d29ya091dDoiMjUyIEIifX0KICAgICAgICAuYmFja3Vwcz0ke1t7aWQ6IjEiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDMgQU0iLHNpemU6IjIxLjk2IE1CIix0eXBlOiJEb2NrZXIgSW1hZ2UifSx7aWQ6IjIiLGNyZWF0ZWRBdDoiMTEvMjcvMjAyNSwgMTo0MjoyNiBQTSIsc2l6ZToiNTEuNzYgTUIiLHR5cGU6IkRvY2tlciBJbWFnZSJ9XX0KICAgICAgICAubG9ncz0ke1t7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMyIixtZXNzYWdlOicxOTIuMTY4LjEuMTAwIC0gLSBbMDIvSmFuLzIwMjQ6MTA6MTU6MzIgKzAwMDBdICJHRVQgLyBIVFRQLzEuMSIgMjAwIDYxMid9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMDIgMTA6MTU6MzAiLG1lc3NhZ2U6JzE5Mi4xNjguMS4xMDAgLSAtIFswMi9KYW4vMjAyNDoxMDoxNTozMCArMDAwMF0gIkdFVCAvZmF2aWNvbi5pY28gSFRUUC8xLjEiIDQwNCAxNTMnfV19CiAgICAgID48L3N6LXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJTZXJ2aWNlcyJdOyNlPUFvKHRoaXMsbyx7bmFtZToiIixzdGF0dXM6InN0b3BwZWQiLGltYWdlOiIiLHBvcnQ6MCxkb21haW46bnVsbCxjb250YWluZXJJZDoiIixjcmVhdGVkOiIiLHVwZGF0ZWQ6IiIscmVnaXN0cnk6IiIscmVwb3NpdG9yeToiIix0YWc6IiJ9KTtnZXQgc2VydmljZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZXJ2aWNlKFApe3RoaXMuI2U9UH0jdD0oQW8odGhpcyxsKSxBbyh0aGlzLGQse2NwdTowLG1lbW9yeToiMCBNQiIsbWVtb3J5TGltaXQ6IjAgR0IiLG5ldHdvcmtJbjoiMCBCIixuZXR3b3JrT3V0OiIwIEIifSkpO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0cyhQKXt0aGlzLiN0PVB9I2E9KEFvKHRoaXMsdSksQW8odGhpcyxiLFtdKSk7Z2V0IGJhY2t1cHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYmFja3VwcyhQKXt0aGlzLiNhPVB9I3M9KEFvKHRoaXMsdiksQW8odGhpcyxtLFtdKSk7Z2V0IGxvZ3MoKXtyZXR1cm4gdGhpcy4jc31zZXQgbG9ncyhQKXt0aGlzLiNzPVB9I2k9KEFvKHRoaXMsZiksQW8odGhpcyxNLCExKSk7Z2V0IHN0cmVhbWluZygpe3JldHVybiB0aGlzLiNpfXNldCBzdHJlYW1pbmcoUCl7dGhpcy4jaT1QfSNyPShBbyh0aGlzLHopLEFvKHRoaXMsQyxudWxsKSk7Z2V0IHdvcmtzcGFjZUVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdvcmtzcGFjZUVudmlyb25tZW50KFApe3RoaXMuI3I9UH0jbz0oQW8odGhpcyxfKSxBbyh0aGlzLCQsIi8iKSk7Z2V0IHdvcmtzcGFjZVBhdGgoKXtyZXR1cm4gdGhpcy4jb31zZXQgd29ya3NwYWNlUGF0aChQKXt0aGlzLiNvPVB9I249KEFvKHRoaXMsRSksQW8odGhpcyxrLCJkZXRhaWxzIikpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50VmlldyhQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuYmFjay1saW5rIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYmFjay1saW5rOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VydmljZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnJ1bm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmNhcmQtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmNhcmQtdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kYW5nZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAuZGV0YWlsLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdmFsdWUgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdmFsdWUgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc3RhdC1pdGVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0LWxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc3RhdC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXQtc3VidmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuYWN0aW9ucy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYmFja3VwLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAuYmFja3VwLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmJhY2t1cC1kYXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmJhY2t1cC1tZXRhIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmJhY2t1cC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuaWNvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFnLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIDpob3N0KC53b3Jrc3BhY2UtbW9kZSkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWJhY2stbGluayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWJhY2stbGluazpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzkzYzVmZCIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLXN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utc3RhdHVzLWJhZGdlLnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3PT09IndvcmtzcGFjZSI/dGhpcy5yZW5kZXJXb3Jrc3BhY2VWaWV3KCk6dGhpcy5yZW5kZXJEZXRhaWxzVmlldygpfXJlbmRlcldvcmtzcGFjZVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLWJhY2stbGluayIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2xvc2VXb3Jrc3BhY2UoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEJhY2sgdG8gRGV0YWlscwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0id29ya3NwYWNlLXNlcnZpY2UtbmFtZSI+JHt0aGlzLnNlcnZpY2UubmFtZX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0id29ya3NwYWNlLXN0YXR1cy1iYWRnZSAke3RoaXMuc2VydmljZS5zdGF0dXN9Ij48L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy53b3Jrc3BhY2VFbnZpcm9ubWVudH0+PC9kZWVzLXdvcmtzcGFjZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRldGFpbHNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmFjay1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCYWNrKCl9PgogICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiI+PC9wb2x5bGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQmFjayB0byBTZXJ2aWNlcwogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaGVhZGVyIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMjRweDsiPgogICAgICAgIDxoMSBjbGFzcz0ic2VydmljZS1uYW1lIj4ke3RoaXMuc2VydmljZS5uYW1lfTwvaDE+CiAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc2VydmljZS5zdGF0dXN9Ij4ke3RoaXMuc2VydmljZS5zdGF0dXN9PC9zcGFuPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW4tY29udGVudCI+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPlNlcnZpY2UgRGV0YWlsczwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5JbWFnZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UuaW1hZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlBvcnQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLnBvcnR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuZG9tYWluP3dgPGEgaHJlZj0iaHR0cHM6Ly8ke3RoaXMuc2VydmljZS5kb21haW59IiB0YXJnZXQ9Il9ibGFuayI+JHt0aGlzLnNlcnZpY2UuZG9tYWlufTwvYT5gOiItIn0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNvbnRhaW5lciBJRDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UuY29udGFpbmVySWR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNyZWF0ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLmNyZWF0ZWR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlVwZGF0ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLnVwZGF0ZWR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVFZGl0KCl9PkVkaXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgTG9ncyJ9CiAgICAgICAgICAgIC5sb2dFbnRyaWVzPSR7dGhpcy5sb2dzLm1hcChQPT4oe3RpbWVzdGFtcDpQLnRpbWVzdGFtcD8uaW5jbHVkZXM/LigiVCIpP1AudGltZXN0YW1wOm5ldyBEYXRlKFAudGltZXN0YW1wfHxEYXRlLm5vdygpKS50b0lTT1N0cmluZygpLGxldmVsOlAubGV2ZWx8fCJpbmZvIixtZXNzYWdlOlAubWVzc2FnZX0pKX0KICAgICAgICAgICAgLmF1dG9TY3JvbGw9JHshMH0KICAgICAgICAgICAgLm1heEVudHJpZXM9JHsyZTN9CiAgICAgICAgICAgIC5zaG93TWV0cmljcz0keyEwfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5MaXZlIHN0YXRzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0cy1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPkNQVTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj4ke3RoaXMuc3RhdHMuY3B1LnRvRml4ZWQoMSl9JTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5NZW1vcnk8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JHt0aGlzLnN0YXRzLm1lbW9yeX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1zdWJ2YWx1ZSI+b2YgJHt0aGlzLnN0YXRzLm1lbW9yeUxpbWl0fTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5OZXR3b3JrIEluPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPiR7dGhpcy5zdGF0cy5uZXR3b3JrSW59PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPk5ldHdvcmsgT3V0PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPiR7dGhpcy5zdGF0cy5uZXR3b3JrT3V0fTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5BY3Rpb25zPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtc3VidGl0bGUiPk1hbmFnZSBzZXJ2aWNlIHN0YXRlPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLWdyaWQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2Uuc3RhdHVzPT09InJ1bm5pbmciP3dgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKCJzdG9wIil9PlN0b3AgU2VydmljZTwvYnV0dG9uPmA6d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oInN0YXJ0Iil9PlN0YXJ0IFNlcnZpY2U8L2J1dHRvbj5gfQogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKCJyZXN0YXJ0Iil9PlJlc3RhcnQgU2VydmljZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlT3BlbldvcmtzcGFjZSgpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgbWFyZ2luLXJpZ2h0OiA0cHg7Ij4KICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI0IDE3IDEwIDExIDQgNSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjIwIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIE9wZW4gV29ya3NwYWNlCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oImRlbGV0ZSIpfT5EZWxldGUgU2VydmljZTwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+SW1hZ2UgU291cmNlPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtc3VidGl0bGUiPiR7dGhpcy5zZXJ2aWNlLnJlZ2lzdHJ5PT09IkRvY2tlciBIdWIiPyJFeHRlcm5hbCBjb250YWluZXIgcmVnaXN0cnkiOiJPbmVib3ggcmVnaXN0cnkifTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5SZWdpc3RyeTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UucmVnaXN0cnl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlJlcG9zaXRvcnk8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLnJlcG9zaXRvcnl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlRhZzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+PHNwYW4gY2xhc3M9InRhZy1iYWRnZSI+JHt0aGlzLnNlcnZpY2UudGFnfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkJhY2t1cHM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+Q3JlYXRlIGFuZCBtYW5hZ2Ugc2VydmljZSBiYWNrdXBzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtbGlzdCI+CiAgICAgICAgICAgICAgICAke3RoaXMuYmFja3Vwcy5tYXAoUD0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1pbmZvIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1kYXRlIj4ke1AuY3JlYXRlZEF0fTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLW1ldGEiPiR7UC5zaXplfSDCtyAke1AudHlwZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkRvd25sb2FkIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEb3dubG9hZEJhY2t1cChQKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iNyAxMCAxMiAxNSAxNyAxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE1IiB4Mj0iMTIiIHkyPSIzIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IlJlc3RvcmUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlc3RvcmVCYWNrdXAoUCl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxIDQgMSAxMCA3IDEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMSAwIDIuMTMtOS4zNkwxIDEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlQmFja3VwKFApfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyw2IDUsNiAyMSw2Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5LDZ2MTRhMiwyLDAsMCwxLTIsMkg3YTIsMiwwLDAsMS0yLTJWNm0zLDBWNGEyLDIsMCwwLDEsMi0yaDRhMiwyLDAsMCwxLDIsMnYyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGVCYWNrdXAoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgQ3JlYXRlIEJhY2t1cAogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQmFjaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJhY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUVkaXQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFjdGlvbihQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXJ2aWNlLWFjdGlvbiIse2RldGFpbDp7c2VydmljZTp0aGlzLnNlcnZpY2UsYWN0aW9uOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dG9nZ2xlU3RyZWFtaW5nKCl7dGhpcy5zdHJlYW1pbmc9IXRoaXMuc3RyZWFtaW5nLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS10b2dnbGUiLHtkZXRhaWw6e3N0cmVhbWluZzp0aGlzLnN0cmVhbWluZ30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbGVhckxvZ3MoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGVhci1sb2dzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDcmVhdGVCYWNrdXAoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUtYmFja3VwIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEb3dubG9hZEJhY2t1cChQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb3dubG9hZC1iYWNrdXAiLHtkZXRhaWw6UCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc3RvcmVCYWNrdXAoUCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVzdG9yZS1iYWNrdXAiLHtkZXRhaWw6UCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZUJhY2t1cChQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUtYmFja3VwIix7ZGV0YWlsOlAsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVPcGVuV29ya3NwYWNlKCl7dGhpcy53b3Jrc3BhY2VFbnZpcm9ubWVudD8odGhpcy5jdXJyZW50Vmlldz0id29ya3NwYWNlIix0aGlzLmNsYXNzTGlzdC5hZGQoIndvcmtzcGFjZS1tb2RlIikpOnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcXVlc3Qtd29ya3NwYWNlIix7ZGV0YWlsOntzZXJ2aWNlOnRoaXMuc2VydmljZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbG9zZVdvcmtzcGFjZSgpe3RoaXMuY3VycmVudFZpZXc9ImRldGFpbHMiLHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgid29ya3NwYWNlLW1vZGUiKX11cGRhdGVkKFApe3N1cGVyLnVwZGF0ZWQoUCksUC5oYXMoIndvcmtzcGFjZUVudmlyb25tZW50IikmJnRoaXMud29ya3NwYWNlRW52aXJvbm1lbnQmJnRoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlscyImJih0aGlzLmN1cnJlbnRWaWV3PSJ3b3Jrc3BhY2UiLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEFvKHRoaXMsUyl9c3RhdGlje0FvKGEsdCl9fTtyZXR1cm4gST1hfSkoKX0pO3ZhciBNMWUsQWcsV1FhLGU5YT1nKCgpPT57cGUoKTtNMWU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEFnPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxXUWE9KCgpPT57bGV0IHM9W25lKCJzei1hcHAtc3RvcmUtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekFwcFN0b3JlVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bWSgpXSxjPVtZKCldLE0xZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImFwcHMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5hcHBzLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuYXBwcz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksTTFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDYXRlZ29yeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VsZWN0ZWRDYXRlZ29yeSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNlbGVjdGVkQ2F0ZWdvcnksImdldCIpLHNldDppKChmLHkpPT57Zi5zZWxlY3RlZENhdGVnb3J5PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxNMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hRdWVyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VhcmNoUXVlcnkiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZWFyY2hRdWVyeSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnNlYXJjaFF1ZXJ5PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxNMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LWFwcC1zdG9yZS12aWV3CiAgICAgICAgLmFwcHM9JHtbe2lkOiJ3b3JkcHJlc3MiLG5hbWU6IldvcmRQcmVzcyIsZGVzY3JpcHRpb246IlRoZSB3b3JsZCdzIG1vc3QgcG9wdWxhciBvcGVuLXNvdXJjZSBjb250ZW50IG1hbmFnZW1lbnQgc3lzdGVtIGZvciBidWlsZGluZyB3ZWJzaXRlcyBhbmQgYmxvZ3MuIixjYXRlZ29yeToiQ01TIixpY29uTmFtZToiZmlsZS10ZXh0IixpbWFnZToid29yZHByZXNzOmxhdGVzdCIscG9ydDo4MCxlbnZWYXJzOlt7a2V5OiJXT1JEUFJFU1NfREJfSE9TVCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IkRhdGFiYXNlIGhvc3QgYWRkcmVzcyIscmVxdWlyZWQ6ITB9LHtrZXk6IldPUkRQUkVTU19EQl9VU0VSIix2YWx1ZToid29yZHByZXNzIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgdXNlcm5hbWUiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfUEFTU1dPUkQiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBwYXNzd29yZCIscmVxdWlyZWQ6ITB9LHtrZXk6IldPUkRQUkVTU19EQl9OQU1FIix2YWx1ZToid29yZHByZXNzIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgbmFtZSIscmVxdWlyZWQ6ITB9XSx2b2x1bWVzOlsiL3Zhci93d3cvaHRtbCJdLGVuYWJsZU1vbmdvREI6ITEsZW5hYmxlUzM6ITF9LHtpZDoiZ2l0ZWEiLG5hbWU6IkdpdGVhIixkZXNjcmlwdGlvbjoiQSBsaWdodHdlaWdodCwgc2VsZi1ob3N0ZWQgR2l0IHNlcnZpY2UuIFBhaW5sZXNzIHNldHVwIGZvciB5b3VyIG93biBjb2RlIGhvc3RpbmcgcGxhdGZvcm0uIixjYXRlZ29yeToiRGV2ZWxvcG1lbnQiLGljb25OYW1lOiJnaXQtYnJhbmNoIixpbWFnZToiZ2l0ZWEvZ2l0ZWE6bGF0ZXN0Iixwb3J0OjNlMyxlbnZWYXJzOlt7a2V5OiJHSVRFQV9fZGF0YWJhc2VfX0RCX1RZUEUiLHZhbHVlOiJzcWxpdGUzIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgdHlwZSIscmVxdWlyZWQ6ITB9LHtrZXk6IkdJVEVBX19zZXJ2ZXJfX1JPT1RfVVJMIix2YWx1ZToiIixkZXNjcmlwdGlvbjoiUHVibGljIFVSTCBvZiB0aGUgR2l0ZWEgaW5zdGFuY2UiLHJlcXVpcmVkOiExfV0sdm9sdW1lczpbIi9kYXRhIl19LHtpZDoiZ2hvc3QiLG5hbWU6Ikdob3N0IixkZXNjcmlwdGlvbjoiQSBwb3dlcmZ1bCBvcGVuLXNvdXJjZSBwdWJsaXNoaW5nIHBsYXRmb3JtIGZvciBwcm9mZXNzaW9uYWwgYmxvZ2dlcnMgYW5kIGNvbnRlbnQgY3JlYXRvcnMuIixjYXRlZ29yeToiQ01TIixpY29uTmFtZToiYm9vay1vcGVuIixpbWFnZToiZ2hvc3Q6bGF0ZXN0Iixwb3J0OjIzNjgsZW52VmFyczpbe2tleToidXJsIix2YWx1ZToiIixkZXNjcmlwdGlvbjoiUHVibGljIFVSTCBmb3IgdGhlIEdob3N0IHNpdGUiLHJlcXVpcmVkOiEwfSx7a2V5OiJkYXRhYmFzZV9fY2xpZW50Iix2YWx1ZToic3FsaXRlMyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIGNsaWVudCB0eXBlIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvdmFyL2xpYi9naG9zdC9jb250ZW50Il19LHtpZDoibmdpbngiLG5hbWU6Ik5naW54IixkZXNjcmlwdGlvbjoiSGlnaC1wZXJmb3JtYW5jZSBIVFRQIHNlcnZlciBhbmQgcmV2ZXJzZSBwcm94eSB3aXRoIGxvdyByZXNvdXJjZSBjb25zdW1wdGlvbi4iLGNhdGVnb3J5OiJXZWIgU2VydmVyIixpY29uTmFtZToiZ2xvYmUiLGltYWdlOiJuZ2lueDphbHBpbmUiLHBvcnQ6ODAsdm9sdW1lczpbIi91c3Ivc2hhcmUvbmdpbngvaHRtbCIsIi9ldGMvbmdpbngvY29uZi5kIl19LHtpZDoicmVkaXMiLG5hbWU6IlJlZGlzIixkZXNjcmlwdGlvbjoiSW4tbWVtb3J5IGRhdGEgc3RvcmUgdXNlZCBhcyBhIGRhdGFiYXNlLCBjYWNoZSwgc3RyZWFtaW5nIGVuZ2luZSwgYW5kIG1lc3NhZ2UgYnJva2VyLiIsY2F0ZWdvcnk6IkRhdGFiYXNlIixpY29uTmFtZToiZGF0YWJhc2UiLGltYWdlOiJyZWRpczphbHBpbmUiLHBvcnQ6NjM3OX0se2lkOiJwb3N0Z3JlcyIsbmFtZToiUG9zdGdyZVNRTCIsZGVzY3JpcHRpb246IkFkdmFuY2VkIG9wZW4tc291cmNlIHJlbGF0aW9uYWwgZGF0YWJhc2Ugd2l0aCBzdHJvbmcgcmVsaWFiaWxpdHkgYW5kIGZlYXR1cmUgc2V0LiIsY2F0ZWdvcnk6IkRhdGFiYXNlIixpY29uTmFtZToiZGF0YWJhc2UiLGltYWdlOiJwb3N0Z3JlczoxNi1hbHBpbmUiLHBvcnQ6NTQzMixlbnZWYXJzOlt7a2V5OiJQT1NUR1JFU19VU0VSIix2YWx1ZToicG9zdGdyZXMiLGRlc2NyaXB0aW9uOiJTdXBlcnVzZXIgdXNlcm5hbWUiLHJlcXVpcmVkOiEwfSx7a2V5OiJQT1NUR1JFU19QQVNTV09SRCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlN1cGVydXNlciBwYXNzd29yZCIscmVxdWlyZWQ6ITB9LHtrZXk6IlBPU1RHUkVTX0RCIix2YWx1ZToicG9zdGdyZXMiLGRlc2NyaXB0aW9uOiJEZWZhdWx0IGRhdGFiYXNlIG5hbWUiLHJlcXVpcmVkOiExfV0sdm9sdW1lczpbIi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YSJdfV19CiAgICAgID48L3N6LWFwcC1zdG9yZS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1BZyh0aGlzLG8sW10pO2dldCBhcHBzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcHMobSl7dGhpcy4jZT1tfSN0PShBZyh0aGlzLGwpLEFnKHRoaXMsZCwiQWxsIikpO2dldCBzZWxlY3RlZENhdGVnb3J5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkQ2F0ZWdvcnkobSl7dGhpcy4jdD1tfSNhPShBZyh0aGlzLHUpLEFnKHRoaXMsYiwiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNhfXNldCBzZWFyY2hRdWVyeShtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LXBpbGxzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LXBpbGwgewogICAgICAgIHBhZGRpbmc6IDZweCAxNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5jYXRlZ29yeS1waWxsOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2F0ZWdvcnktcGlsbC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICB3aWR0aDogMjQwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggOHB4IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmFwcC1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmFwcC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHsKICAgICAgICAuYXBwLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgfQoKICAgICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFwcC1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuYXBwLWNhcmQ6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4wNSkiLCJyZ2JhKDAsMCwwLDAuMikiKX07CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICB9CgogICAgICAuY2FyZC10b3AgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxNHB4OwogICAgICB9CgogICAgICAuYXBwLWljb24gewogICAgICAgIHdpZHRoOiA0NHB4OwogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcC1pY29uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hcHAtaWNvbiBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLmFwcC1pY29uIC5sZXR0ZXItZmFsbGJhY2sgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jYXJkLWluZm8gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuYXBwLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYXBwLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjsKICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmNhcmQtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxYTFhMWUiKX07CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLmltYWdlLXRhZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgbWF4LXdpZHRoOiAxNjBweDsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogN3B4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDAuODU7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuZGV0YWlscy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogN3B4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlscy1idXR0b246aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICAgIHBhZGRpbmc6IDY0cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBtYXJnaW46IDAgYXV0byAxNnB4OwogICAgICB9CgogICAgICAuZW1wdHktdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuZW1wdHktZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtnZXQgY2F0ZWdvcmllcygpe2xldCBtPW5ldyBTZXQodGhpcy5hcHBzLm1hcChmPT5mLmNhdGVnb3J5KSk7cmV0dXJuWyJBbGwiLC4uLkFycmF5LmZyb20obSkuc29ydCgpXX1nZXQgZmlsdGVyZWRBcHBzKCl7bGV0IG09dGhpcy5hcHBzO2lmKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSE9PSJBbGwiJiYobT1tLmZpbHRlcihmPT5mLmNhdGVnb3J5PT09dGhpcy5zZWxlY3RlZENhdGVnb3J5KSksdGhpcy5zZWFyY2hRdWVyeS50cmltKCkpe2xldCBmPXRoaXMuc2VhcmNoUXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKCk7bT1tLmZpbHRlcih5PT55Lm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKXx8eS5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpfHx5LmNhdGVnb3J5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZikpfXJldHVybiBtfXJlbmRlcigpe2xldCBtPXRoaXMuZmlsdGVyZWRBcHBzO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+QXBwIFN0b3JlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXN1YnRpdGxlIj5EZXBsb3kgcG9wdWxhciBhcHBsaWNhdGlvbnMgd2l0aCBvbmUgY2xpY2s8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yeS1waWxscyI+CiAgICAgICAgICAke3RoaXMuY2F0ZWdvcmllcy5tYXAoZj0+d2AKICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iY2F0ZWdvcnktcGlsbCAke3RoaXMuc2VsZWN0ZWRDYXRlZ29yeT09PWY/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk9Zn19CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtmfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtd3JhcHBlciI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJzZWFyY2gtaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iOCI+PC9jaXJjbGU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyMSIgeTE9IjIxIiB4Mj0iMTYuNjUiIHkyPSIxNi42NSI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9InNlYXJjaC1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBhcHBzLi4uIgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICBAaW5wdXQ9JHtmPT57dGhpcy5zZWFyY2hRdWVyeT1mLnRhcmdldC52YWx1ZX19CiAgICAgICAgICA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iYXBwLWdyaWQiPgogICAgICAgICR7bS5sZW5ndGg+MD9tLm1hcChmPT50aGlzLnJlbmRlckFwcENhcmQoZikpOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iZW1wdHktaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4Ij48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjIxIiB5MT0iMjEiIHgyPSIxNi42NSIgeTI9IjE2LjY1Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI4IiB5MT0iMTEiIHgyPSIxNCIgeTI9IjExIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXRpdGxlIj5ObyBhcHBzIGZvdW5kPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgICAgIFRyeSBhZGp1c3RpbmcgeW91ciBzZWFyY2ggb3IgZmlsdGVyIHRvIGZpbmQgd2hhdCB5b3UncmUgbG9va2luZyBmb3IuCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFwcENhcmQobSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImFwcC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXRvcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHAtaWNvbiI+CiAgICAgICAgICAgICR7bS5pY29uVXJsP3dgPGltZyBzcmM9IiR7bS5pY29uVXJsfSIgYWx0PSIke20ubmFtZX0iPmA6bS5pY29uTmFtZT90aGlzLnJlbmRlckljb25CeU5hbWUobS5pY29uTmFtZSk6d2A8c3BhbiBjbGFzcz0ibGV0dGVyLWZhbGxiYWNrIj4ke20ubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX08L3NwYW4+YH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXBwLW5hbWUiPiR7bS5uYW1lfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yeS1iYWRnZSI+JHttLmNhdGVnb3J5fTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwLWRlc2NyaXB0aW9uIj4ke20uZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlLXRhZyIgdGl0bGU9IiR7bS5pbWFnZX0iPiR7bS5pbWFnZX08L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXRhaWxzLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVmlld0RldGFpbHMobSl9PgogICAgICAgICAgICAgIFZpZXcgRGV0YWlscwogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGVwbG95LWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVwbG95KG0pfT4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMCAxMiAyMCAyMiA0IDIyIDQgMTIiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMjAiIGhlaWdodD0iNSI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMjIiIHgyPSIxMiIgeTI9IjciPjwvbGluZT4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiA3SDcuNWEyLjUgMi41IDAgMCAxIDAtNUMxMSAyIDEyIDcgMTIgN3oiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiA3aDQuNWEyLjUgMi41IDAgMCAwIDAtNUMxMyAyIDEyIDcgMTIgN3oiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBEZXBsb3kKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckljb25CeU5hbWUobSl7cmV0dXJueyJmaWxlLXRleHQiOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIxNCAyIDE0IDggMjAgOCI+PC9wb2x5bGluZT48bGluZSB4MT0iMTYiIHkxPSIxMyIgeDI9IjgiIHkyPSIxMyI+PC9saW5lPjxsaW5lIHgxPSIxNiIgeTE9IjE3IiB4Mj0iOCIgeTI9IjE3Ij48L2xpbmU+PHBvbHlsaW5lIHBvaW50cz0iMTAgOSA5IDkgOCA5Ij48L3BvbHlsaW5lPjwvc3ZnPmAsImdpdC1icmFuY2giOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSI2IiB5MT0iMyIgeDI9IjYiIHkyPSIxNSI+PC9saW5lPjxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMyI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIj48L2NpcmNsZT48cGF0aCBkPSJNMTggOWE5IDkgMCAwIDEtOSA5Ij48L3BhdGg+PC9zdmc+YCwiYm9vay1vcGVuIjp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMiAzaDZhNCA0IDAgMCAxIDQgNHYxNGEzIDMgMCAwIDAtMy0zSDJ6Ij48L3BhdGg+PHBhdGggZD0iTTIyIDNoLTZhNCA0IDAgMCAwLTQgNHYxNGEzIDMgMCAwIDEgMy0zaDd6Ij48L3BhdGg+PC9zdmc+YCxnbG9iZTp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+PGxpbmUgeDE9IjIiIHkxPSIxMiIgeDI9IjIyIiB5Mj0iMTIiPjwvbGluZT48cGF0aCBkPSJNMTIgMmExNS4zIDE1LjMgMCAwIDEgNCAxMCAxNS4zIDE1LjMgMCAwIDEtNCAxMCAxNS4zIDE1LjMgMCAwIDEtNC0xMCAxNS4zIDE1LjMgMCAwIDEgNC0xMHoiPjwvcGF0aD48L3N2Zz5gLGRhdGFiYXNlOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxlbGxpcHNlIGN4PSIxMiIgY3k9IjUiIHJ4PSI5IiByeT0iMyI+PC9lbGxpcHNlPjxwYXRoIGQ9Ik0yMSAxMmMwIDEuNjYtNCAzLTkgM3MtOS0xLjM0LTktMyI+PC9wYXRoPjxwYXRoIGQ9Ik0zIDV2MTRjMCAxLjY2IDQgMyA5IDNzOS0xLjM0IDktM1Y1Ij48L3BhdGg+PC9zdmc+YCxzZXJ2ZXI6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PjxyZWN0IHg9IjIiIHk9IjE0IiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iNi4wMSIgeTI9IjYiPjwvbGluZT48bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iNi4wMSIgeTI9IjE4Ij48L2xpbmU+PC9zdmc+YCxwYWNrYWdlOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSIxNi41IiB5MT0iOS40IiB4Mj0iNy41IiB5Mj0iNC4yMSI+PC9saW5lPjxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIzLjI3IDYuOTYgMTIgMTIuMDEgMjAuNzMgNi45NiI+PC9wb2x5bGluZT48bGluZSB4MT0iMTIiIHkxPSIyMi4wOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT48L3N2Zz5gLG1haWw6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTQgNGgxNmMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJ6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMjIsNiAxMiwxMyAyLDYiPjwvcG9seWxpbmU+PC9zdmc+YCxzaGllbGQ6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiI+PC9wYXRoPjwvc3ZnPmAsbW9uaXRvcjp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PjxsaW5lIHgxPSI4IiB5MT0iMjEiIHgyPSIxNiIgeTI9IjIxIj48L2xpbmU+PGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMiIgeTI9IjIxIj48L2xpbmU+PC9zdmc+YH1bbV18fHdgPHNwYW4gY2xhc3M9ImxldHRlci1mYWxsYmFjayI+Pzwvc3Bhbj5gfWhhbmRsZVZpZXdEZXRhaWxzKG0pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctYXBwIix7ZGV0YWlsOnthcHA6bX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZXBsb3kobSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVwbG95LWFwcCIse2RldGFpbDp7YXBwOm19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEFnKHRoaXMsdil9c3RhdGlje0FnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBnb3QsYlEsR1FhLHQ5YT1nKCgpPT57cGUoKTtnb3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGJRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxHUWE9KCgpPT57bGV0IHM9W25lKCJzei10b2tlbnMtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelRva2Vuc1ZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6QXJyYXl9KV0sZ290KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2xvYmFsVG9rZW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJnbG9iYWxUb2tlbnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5nbG9iYWxUb2tlbnMsImdldCIpLHNldDppKCh2LHgpPT57di5nbG9iYWxUb2tlbnM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLGdvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNpVG9rZW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjaVRva2VucyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmNpVG9rZW5zLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuY2lUb2tlbnM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGdvdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otdG9rZW5zLXZpZXcKICAgICAgICAuZ2xvYmFsVG9rZW5zPSR7W3tpZDoiMSIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OiIyMDI0LTAxLTE1IixsYXN0VXNlZDoiMjAyNC0wMS0yMCJ9LHtpZDoiMiIsbmFtZToiRGV2ZWxvcG1lbnQiLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OiIyMDI0LTAxLTEwIn1dfQogICAgICAgIC5jaVRva2Vucz0ke1t7aWQ6IjMiLG5hbWU6ImhlbGxvLXdvcmxkLWNpIix0eXBlOiJjaSIsc2VydmljZToiaGVsbG8td29ybGQiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xOCJ9LHtpZDoiNCIsbmFtZToiYXBpLXNlcnZpY2UtY2kiLHR5cGU6ImNpIixzZXJ2aWNlOiJhcGktc2VydmljZSIsY3JlYXRlZEF0OiIyMDI0LTAxLTEyIixsYXN0VXNlZDoiMjAyNC0wMS0xOSJ9XX0KICAgICAgPjwvc3otdG9rZW5zLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1iUSh0aGlzLG8sW10pO2dldCBnbG9iYWxUb2tlbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ2xvYmFsVG9rZW5zKGIpe3RoaXMuI2U9Yn0jdD0oYlEodGhpcyxsKSxiUSh0aGlzLGQsW10pKTtnZXQgY2lUb2tlbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2lUb2tlbnMoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2tlbi1saXN0IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAudG9rZW4taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC50b2tlbi1pdGVtOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC50b2tlbi1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC50b2tlbi1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudG9rZW4tbWV0YSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50b2tlbi1zZXJ2aWNlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgfQoKICAgICAgLnRva2VuLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDMycHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+R2xvYmFsIFRva2Vuczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlRva2VucyB0aGF0IGNhbiBwdXNoIGltYWdlcyB0byBtdWx0aXBsZSBzZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5nbG9iYWxUb2tlbnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWxpc3QiPgogICAgICAgICAgICAke3RoaXMuZ2xvYmFsVG9rZW5zLm1hcChiPT50aGlzLnJlbmRlclRva2VuKGIpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktdGV4dCI+Tm8gZ2xvYmFsIHRva2VucyBjcmVhdGVkPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgfQogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCJnbG9iYWwiKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENyZWF0ZSBUb2tlbgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DSSBUb2tlbnMgKFNlcnZpY2Utc3BlY2lmaWMpPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+VG9rZW5zIHRpZWQgdG8gaW5kaXZpZHVhbCBzZXJ2aWNlcyBmb3IgQ0kvQ0QgcGlwZWxpbmVzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmNpVG9rZW5zLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLmNpVG9rZW5zLm1hcChiPT50aGlzLnJlbmRlclRva2VuKGIpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktdGV4dCI+Tm8gQ0kgdG9rZW5zIGNyZWF0ZWQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoImNpIil9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDcmVhdGUgVG9rZW4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyVG9rZW4oYil7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+JHtiLm5hbWV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1tZXRhIj4KICAgICAgICAgICAgJHtiLnNlcnZpY2U/d2A8c3BhbiBjbGFzcz0idG9rZW4tc2VydmljZSI+JHtiLnNlcnZpY2V9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgIENyZWF0ZWQgJHtiLmNyZWF0ZWRBdH0KICAgICAgICAgICAgJHtiLmxhc3RVc2VkP3dgIMK3IExhc3QgdXNlZCAke2IubGFzdFVzZWR9YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ29weShiKX0+Q29weTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVnZW5lcmF0ZShiKX0+UmVnZW5lcmF0ZTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShiKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDcmVhdGUoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlIix7ZGV0YWlsOnt0eXBlOmJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29weShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb3B5Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZWdlbmVyYXRlKGIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZ2VuZXJhdGUiLHtkZXRhaWw6YixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUiLHtkZXRhaWw6YixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxiUSh0aGlzLHUpfXN0YXRpY3tiUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgYm90LHZRLEtRYSxhOWE9ZygoKT0+e3BlKCk7Ym90PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2UT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sS1FhPSgoKT0+e2xldCBzPVtuZSgic3otc2V0dGluZ3MtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelNldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGJvdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHRpbmdzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJzZXR0aW5ncyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnNldHRpbmdzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2V0dGluZ3M9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLGJvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjdXJyZW50VXNlciJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmN1cnJlbnRVc2VyLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuY3VycmVudFVzZXI9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGJvdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1zZXR0aW5ncy12aWV3CiAgICAgICAgLnNldHRpbmdzPSR7e2RhcmtNb2RlOiEwLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGF1dG9SZW5ld0NlcnRzOiEwLHJlbmV3YWxUaHJlc2hvbGQ6MzAsYWNtZUVtYWlsOiJjZXJ0c0BleGFtcGxlLmNvbSIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiEwfX0KICAgICAgICBjdXJyZW50VXNlcj0iYWRtaW4iCiAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT12USh0aGlzLG8se2RhcmtNb2RlOiExLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGF1dG9SZW5ld0NlcnRzOiEwLHJlbmV3YWxUaHJlc2hvbGQ6MzAsYWNtZUVtYWlsOiIiLGh0dHBQb3J0OjgwLGh0dHBzUG9ydDo0NDMsZm9yY2VIdHRwczohMH0pO2dldCBzZXR0aW5ncygpe3JldHVybiB0aGlzLiNlfXNldCBzZXR0aW5ncyhiKXt0aGlzLiNlPWJ9I3Q9KHZRKHRoaXMsbCksdlEodGhpcyxkLCIiKSk7Z2V0IGN1cnJlbnRVc2VyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1cnJlbnRVc2VyKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmZvcm0tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuZm9ybS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmlucHV0LXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0sCiAgICAgIGlucHV0W3R5cGU9InBhc3N3b3JkIl0sCiAgICAgIGlucHV0W3R5cGU9ImVtYWlsIl0sCiAgICAgIGlucHV0W3R5cGU9Im51bWJlciJdIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiA0NHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICBsZWZ0OiAycHg7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2guYWN0aXZlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICB9CgogICAgICAucGFzc3dvcmQtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAucGFzc3dvcmQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLWZpZWxkcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmZpZWxkLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BcHBlYXJhbmNlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1sYWJlbC1ncm91cCI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0tbGFiZWwiPkRhcmsgTW9kZTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5Ub2dnbGUgZGFyayBtb2RlIG9uIG9yIG9mZjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2ggJHt0aGlzLnNldHRpbmdzLmRhcmtNb2RlPyJhY3RpdmUiOiIifSIgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlRGFya01vZGUoKX0+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsb3VkZmxhcmUgSW50ZWdyYXRpb248L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Db25maWd1cmUgQ2xvdWRmbGFyZSBBUEkgZm9yIEROUyBtYW5hZ2VtZW50PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkFQSSBUb2tlbjwvZGl2PgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IkVudGVyIENsb3VkZmxhcmUgQVBJIHRva2VuIiAudmFsdWU9JHt0aGlzLnNldHRpbmdzLmNsb3VkZmxhcmVUb2tlbn0gQGlucHV0PSR7Yj0+dGhpcy51cGRhdGVTZXR0aW5nKCJjbG91ZGZsYXJlVG9rZW4iLGIudGFyZ2V0LnZhbHVlKX0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Wm9uZSBJRCAoT3B0aW9uYWwpPC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJEZWZhdWx0IHpvbmUgSUQiIC52YWx1ZT0ke3RoaXMuc2V0dGluZ3MuY2xvdWRmbGFyZVpvbmVJZH0gQGlucHV0PSR7Yj0+dGhpcy51cGRhdGVTZXR0aW5nKCJjbG91ZGZsYXJlWm9uZUlkIixiLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5HZXQgeW91ciBBUEkgdG9rZW4gZnJvbSB0aGUgQ2xvdWRmbGFyZSBkYXNoYm9hcmQgd2l0aCBETlMgZWRpdCBwZXJtaXNzaW9ucy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U1NML1RMUyBTZXR0aW5nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBjZXJ0aWZpY2F0ZSBtYW5hZ2VtZW50PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1sYWJlbC1ncm91cCI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0tbGFiZWwiPkF1dG8tUmVuZXcgQ2VydGlmaWNhdGVzPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWhpbnQiPkF1dG9tYXRpY2FsbHkgcmVuZXcgY2VydGlmaWNhdGVzIGJlZm9yZSBleHBpcnk8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoICR7dGhpcy5zZXR0aW5ncy5hdXRvUmVuZXdDZXJ0cz8iYWN0aXZlIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVNldHRpbmcoImF1dG9SZW5ld0NlcnRzIil9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+UmVuZXdhbCBUaHJlc2hvbGQgKGRheXMpPC9kaXY+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIC52YWx1ZT0ke1N0cmluZyh0aGlzLnNldHRpbmdzLnJlbmV3YWxUaHJlc2hvbGQpfSBAaW5wdXQ9JHtiPT50aGlzLnVwZGF0ZVNldHRpbmcoInJlbmV3YWxUaHJlc2hvbGQiLHBhcnNlSW50KGIudGFyZ2V0LnZhbHVlKSl9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPlJlbmV3IGNlcnRpZmljYXRlcyB3aGVuIHRoZXkgaGF2ZSBmZXdlciB0aGFuIHRoaXMgbWFueSBkYXlzIHJlbWFpbmluZy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5BQ01FIEVtYWlsPC9kaXY+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgcGxhY2Vob2xkZXI9ImFkbWluQGV4YW1wbGUuY29tIiAudmFsdWU9JHt0aGlzLnNldHRpbmdzLmFjbWVFbWFpbH0gQGlucHV0PSR7Yj0+dGhpcy51cGRhdGVTZXR0aW5nKCJhY21lRW1haWwiLGIudGFyZ2V0LnZhbHVlKX0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+RW1haWwgYWRkcmVzcyBmb3IgTGV0J3MgRW5jcnlwdCBub3RpZmljYXRpb25zLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OZXR3b3JrIFNldHRpbmdzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q29uZmlndXJlIG5ldHdvcmsgYW5kIHByb3h5IHNldHRpbmdzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5IVFRQIFBvcnQ8L2Rpdj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiAudmFsdWU9JHtTdHJpbmcodGhpcy5zZXR0aW5ncy5odHRwUG9ydCl9IEBpbnB1dD0ke2I9PnRoaXMudXBkYXRlU2V0dGluZygiaHR0cFBvcnQiLHBhcnNlSW50KGIudGFyZ2V0LnZhbHVlKSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkhUVFBTIFBvcnQ8L2Rpdj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiAudmFsdWU9JHtTdHJpbmcodGhpcy5zZXR0aW5ncy5odHRwc1BvcnQpfSBAaW5wdXQ9JHtiPT50aGlzLnVwZGF0ZVNldHRpbmcoImh0dHBzUG9ydCIscGFyc2VJbnQoYi50YXJnZXQudmFsdWUpKX0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5Gb3JjZSBIVFRQUzwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5SZWRpcmVjdCBhbGwgSFRUUCB0cmFmZmljIHRvIEhUVFBTPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCAke3RoaXMuc2V0dGluZ3MuZm9yY2VIdHRwcz8iYWN0aXZlIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVNldHRpbmcoImZvcmNlSHR0cHMiKX0+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPkFjY291bnQ8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5NYW5hZ2UgeW91ciBhY2NvdW50IHNldHRpbmdzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Q3VycmVudCBVc2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsiPiR7dGhpcy5jdXJyZW50VXNlcnx8IlVua25vd24ifTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtdGl0bGUiPkNoYW5nZSBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC1maWVsZHMiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Q3VycmVudCBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iY3VycmVudFBhc3N3b3JkIj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPk5ldyBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0ibmV3UGFzc3dvcmQiPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+Q29uZmlybSBQYXNzd29yZDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iY29uZmlybVBhc3N3b3JkIj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDaGFuZ2VQYXNzd29yZCgpfT5VcGRhdGUgUGFzc3dvcmQ8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDEycHggMTZweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsgZm9udC1zaXplOiAxMnB4OyI+CiAgICAgICAgICBTYXZlIHlvdXIgY2hhbmdlcyBvciByZXNldCB0byBkZWZhdWx0cy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZXNldCgpfT5SZXNldDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU2F2ZSgpfT5TYXZlIFNldHRpbmdzPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH10b2dnbGVEYXJrTW9kZSgpe3RoaXMuc2V0dGluZ3M9ey4uLnRoaXMuc2V0dGluZ3MsZGFya01vZGU6IXRoaXMuc2V0dGluZ3MuZGFya01vZGV9LHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNldHRpbmctY2hhbmdlIix7ZGV0YWlsOntrZXk6ImRhcmtNb2RlIix2YWx1ZTp0aGlzLnNldHRpbmdzLmRhcmtNb2RlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXRvZ2dsZVNldHRpbmcoYil7dGhpcy5zZXR0aW5nc1tiXT0hdGhpcy5zZXR0aW5nc1tiXSx0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzfX11cGRhdGVTZXR0aW5nKGIsdil7dGhpcy5zZXR0aW5nc1tiXT12LHRoaXMuc2V0dGluZ3M9ey4uLnRoaXMuc2V0dGluZ3N9fWhhbmRsZUNoYW5nZVBhc3N3b3JkKCl7bGV0IGI9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiY3VycmVudFBhc3N3b3JkIik/LnZhbHVlLHY9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgibmV3UGFzc3dvcmQiKT8udmFsdWUseD10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJjb25maXJtUGFzc3dvcmQiKT8udmFsdWU7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlLXBhc3N3b3JkIix7ZGV0YWlsOntjdXJyZW50UGFzc3dvcmQ6YixuZXdQYXNzd29yZDp2LGNvbmZpcm1QYXNzd29yZDp4fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc2V0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVzZXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNhdmUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOnRoaXMuc2V0dGluZ3MsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdlEodGhpcyx1KX1zdGF0aWN7dlEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHhRLFR1LFlRYSxzOWE9ZygoKT0+e3BlKCk7eFE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFR1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxZUWE9KCgpPT57bGV0IHM9W25lKCJzei1sb2dpbi12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6TG9naW5WaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFufSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHhRKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibG9hZGluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmxvYWRpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5sb2FkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSx4USh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJlcnJvciJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmVycm9yLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZXJyb3I9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHhRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRpdGxlImluIHosImhhcyIpLGdldDppKHo9PnoudGl0bGUsImdldCIpLHNldDppKCh6LE4pPT57ei50aXRsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdikseFEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3VidGl0bGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zdWJ0aXRsZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnN1YnRpdGxlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSx4UShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDYwMHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYmFja2dyb3VuZDogIzA5MDkwYjsiPgogICAgICA8c3otbG9naW4tdmlldz48L3N6LWxvZ2luLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1UdSh0aGlzLG8sITEpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxvYWRpbmcoTSl7dGhpcy4jZT1NfSN0PShUdSh0aGlzLGwpLFR1KHRoaXMsZCwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN0fXNldCBlcnJvcihNKXt0aGlzLiN0PU19I2E9KFR1KHRoaXMsdSksVHUodGhpcyxiLCJzZXJ2ZS56b25lIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNhfXNldCB0aXRsZShNKXt0aGlzLiNhPU19I3M9KFR1KHRoaXMsdiksVHUodGhpcyxtLCJTaWduIGluIHRvIHlvdXIgb25lYm94IikpO2dldCBzdWJ0aXRsZSgpe3JldHVybiB0aGlzLiNzfXNldCBzdWJ0aXRsZShNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICB9CgogICAgICAubG9naW4tY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgIH0KCiAgICAgIC5sb2dvLXNlY3Rpb24gewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CgogICAgICAubG9nbyB7CiAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgaGVpZ2h0OiA2NHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtYXJnaW46IDAgYXV0byAxNnB4OwogICAgICB9CgogICAgICAubG9nbyBzdmcgewogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZSwgYm94LXNoYWRvdyAyMDBtcyBlYXNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg5NiwgMTY1LCAyNTAsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQuZXJyb3IgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuZXJyb3ItbWVzc2FnZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjJmMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmZWNhY2EiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yLW1lc3NhZ2Ugc3ZnIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5zdWJtaXQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdWJtaXQtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJtaXQtYnV0dG9uOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6IGN1cnJlbnRDb2xvcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZm9vdGVyIHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZvb3RlciBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLmZvb3RlciBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4tY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMjIuMDgiIHgyPSIxMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+JHt0aGlzLnN1YnRpdGxlfTwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0iIEBzdWJtaXQ9JHt0aGlzLmhhbmRsZVN1Ym1pdH0+CiAgICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIuMDEiIHkyPSIxNiI+PC9saW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAke3RoaXMuZXJyb3J9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiIGZvcj0idXNlcm5hbWUiPlVzZXJuYW1lPC9sYWJlbD4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBpZD0idXNlcm5hbWUiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgeW91ciB1c2VybmFtZSIKICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiCiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmxvYWRpbmd9CiAgICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiIGZvcj0icGFzc3dvcmQiPlBhc3N3b3JkPC9sYWJlbD4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InBhc3N3b3JkIgogICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkIgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQgJHt0aGlzLmVycm9yPyJlcnJvciI6IiJ9IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIHlvdXIgcGFzc3dvcmQiCiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9ImN1cnJlbnQtcGFzc3dvcmQiCiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmxvYWRpbmd9CiAgICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdC1idXR0b24iID9kaXNhYmxlZD0ke3RoaXMubG9hZGluZ30+CiAgICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgU2lnbmluZyBpbi4uLgogICAgICAgICAgICAgIGA6IlNpZ24gaW4ifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZm9ybT4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgICBQb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vc2VydmUuem9uZSIgdGFyZ2V0PSJfYmxhbmsiPnNlcnZlLnpvbmU8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVN1Ym1pdChNKXtNLnByZXZlbnREZWZhdWx0KCk7bGV0IHo9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgidXNlcm5hbWUiKSxOPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIik7aWYoIXp8fCFOKXJldHVybjtsZXQgQz16LnZhbHVlLnRyaW0oKSxfPU4udmFsdWU7aWYoIUN8fCFfKXt0aGlzLmVycm9yPSJQbGVhc2UgZW50ZXIgYm90aCB1c2VybmFtZSBhbmQgcGFzc3dvcmQiO3JldHVybn10aGlzLmVycm9yPSIiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ2luIix7ZGV0YWlsOnt1c2VybmFtZTpDLHBhc3N3b3JkOl99LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xlYXJGb3JtKCl7bGV0IE09dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgidXNlcm5hbWUiKSx6PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIik7TSYmKE0udmFsdWU9IiIpLHomJih6LnZhbHVlPSIiKSx0aGlzLmVycm9yPSIifWZvY3VzVXNlcm5hbWUoKXtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ1c2VybmFtZSIpO00mJk0uZm9jdXMoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVHUodGhpcyxmKX1zdGF0aWN7VHUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIE5vLGJzLFpRYSxpOWE9ZygoKT0+e3BlKCk7Tm89ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGJzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxaUWE9KCgpPT57bGV0IHM9W25lKCJzei1zZXJ2aWNlLWNyZWF0ZS12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W107dmFyIHNlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelNlcnZpY2VDcmVhdGVWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG9lPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpCb29sZWFufSldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxObyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZ2lzdHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJyZWdpc3RyaWVzImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVnaXN0cmllcywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlZ2lzdHJpZXM9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LG8sbCksTm8odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ibG9hZGluZyJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmxvYWRpbmcsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5sb2FkaW5nPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxkLHUpLE5vKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzZXJ2aWNlTmFtZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnNlcnZpY2VOYW1lLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuc2VydmljZU5hbWU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGIsdiksTm8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZVVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImltYWdlVXJsImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuaW1hZ2VVcmwsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5pbWFnZVVybD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbSxmKSxObyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUmVnaXN0cnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJzZWxlY3RlZFJlZ2lzdHJ5ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuc2VsZWN0ZWRSZWdpc3RyeSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnNlbGVjdGVkUmVnaXN0cnk9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LE0seiksTm8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3J0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InBvcnRzImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucG9ydHMsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5wb3J0cz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sQyxfKSxObyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudlZhcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJlbnZWYXJzImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZW52VmFycywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmVudlZhcnM9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LCQsRSksTm8odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4idm9sdW1lcyJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnZvbHVtZXMsImdldCIpLHNldDppKChhZSxUZSk9PnthZS52b2x1bWVzPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxrLFMpLE5vKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3B1TGltaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJjcHVMaW1pdCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmNwdUxpbWl0LCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuY3B1TGltaXQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFAsUiksTm8odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW1vcnlMaW1pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+Im1lbW9yeUxpbWl0ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUubWVtb3J5TGltaXQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5tZW1vcnlMaW1pdD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sVixXKSxObyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXN0YXJ0UG9saWN5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4icmVzdGFydFBvbGljeSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc3RhcnRQb2xpY3ksImdldCIpLHNldDppKChhZSxUZSk9PnthZS5yZXN0YXJ0UG9saWN5PVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxCLFUpLE5vKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5ldHdvcmtNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ibmV0d29ya01vZGUiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5uZXR3b3JrTW9kZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLm5ldHdvcmtNb2RlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxGLGopLE5vKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBZHZhbmNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InNob3dBZHZhbmNlZCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnNob3dBZHZhbmNlZCwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnNob3dBZHZhbmNlZD1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sbGUsUSksTm8odGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlTW9uZ29EQiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImVuYWJsZU1vbmdvREIiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5lbmFibGVNb25nb0RCLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuZW5hYmxlTW9uZ29EQj1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sdGUsZWUpLE5vKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVMzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iZW5hYmxlUzMiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5lbmFibGVTMywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmVuYWJsZVMzPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxYLFopLE5vKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUNsaWNrSG91c2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJlbmFibGVDbGlja0hvdXNlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZW5hYmxlQ2xpY2tIb3VzZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmVuYWJsZUNsaWNrSG91c2U9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LHEsQSksTm8obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b2V9LG51bGwsdCksc2U9YT1lLnZhbHVlLG9lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm9lfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1icyh0aGlzLG8sW10pO2dldCByZWdpc3RyaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZ2lzdHJpZXMob2Upe3RoaXMuI2U9b2V9I3Q9KGJzKHRoaXMsbCksYnModGhpcyxkLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9hZGluZyhvZSl7dGhpcy4jdD1vZX0jYT0oYnModGhpcyx1KSxicyh0aGlzLGIsIiIpKTtnZXQgc2VydmljZU5hbWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VydmljZU5hbWUob2Upe3RoaXMuI2E9b2V9I3M9KGJzKHRoaXMsdiksYnModGhpcyxtLCIiKSk7Z2V0IGltYWdlVXJsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGltYWdlVXJsKG9lKXt0aGlzLiNzPW9lfSNpPShicyh0aGlzLGYpLGJzKHRoaXMsTSwiIikpO2dldCBzZWxlY3RlZFJlZ2lzdHJ5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkUmVnaXN0cnkob2Upe3RoaXMuI2k9b2V9I3I9KGJzKHRoaXMseiksYnModGhpcyxDLFt7aG9zdFBvcnQ6IiIsY29udGFpbmVyUG9ydDoiIixwcm90b2NvbDoidGNwIn1dKSk7Z2V0IHBvcnRzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBvcnRzKG9lKXt0aGlzLiNyPW9lfSNvPShicyh0aGlzLF8pLGJzKHRoaXMsJCxbe2tleToiIix2YWx1ZToiIn1dKSk7Z2V0IGVudlZhcnMoKXtyZXR1cm4gdGhpcy4jb31zZXQgZW52VmFycyhvZSl7dGhpcy4jbz1vZX0jbj0oYnModGhpcyxFKSxicyh0aGlzLGssW10pKTtnZXQgdm9sdW1lcygpe3JldHVybiB0aGlzLiNufXNldCB2b2x1bWVzKG9lKXt0aGlzLiNuPW9lfSNsPShicyh0aGlzLFMpLGJzKHRoaXMsUCwiIikpO2dldCBjcHVMaW1pdCgpe3JldHVybiB0aGlzLiNsfXNldCBjcHVMaW1pdChvZSl7dGhpcy4jbD1vZX0jYz0oYnModGhpcyxSKSxicyh0aGlzLFYsIiIpKTtnZXQgbWVtb3J5TGltaXQoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWVtb3J5TGltaXQob2Upe3RoaXMuI2M9b2V9I2Q9KGJzKHRoaXMsVyksYnModGhpcyxCLCJhbHdheXMiKSk7Z2V0IHJlc3RhcnRQb2xpY3koKXtyZXR1cm4gdGhpcy4jZH1zZXQgcmVzdGFydFBvbGljeShvZSl7dGhpcy4jZD1vZX0jdT0oYnModGhpcyxVKSxicyh0aGlzLEYsImJyaWRnZSIpKTtnZXQgbmV0d29ya01vZGUoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbmV0d29ya01vZGUob2Upe3RoaXMuI3U9b2V9I3A9KGJzKHRoaXMsaiksYnModGhpcyxsZSwhMSkpO2dldCBzaG93QWR2YW5jZWQoKXtyZXR1cm4gdGhpcy4jcH1zZXQgc2hvd0FkdmFuY2VkKG9lKXt0aGlzLiNwPW9lfSNoPShicyh0aGlzLFEpLGJzKHRoaXMsdGUsITEpKTtnZXQgZW5hYmxlTW9uZ29EQigpe3JldHVybiB0aGlzLiNofXNldCBlbmFibGVNb25nb0RCKG9lKXt0aGlzLiNoPW9lfSNmPShicyh0aGlzLGVlKSxicyh0aGlzLFgsITEpKTtnZXQgZW5hYmxlUzMoKXtyZXR1cm4gdGhpcy4jZn1zZXQgZW5hYmxlUzMob2Upe3RoaXMuI2Y9b2V9I209KGJzKHRoaXMsWiksYnModGhpcyxxLCExKSk7Z2V0IGVuYWJsZUNsaWNrSG91c2UoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZW5hYmxlQ2xpY2tIb3VzZShvZSl7dGhpcy4jbT1vZX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLXJvdy5zaW5nbGUgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICB9CgogICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZm9ybS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwgLnJlcXVpcmVkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuZm9ybS1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQsCiAgICAgIC5mb3JtLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6Zm9jdXMsCiAgICAgIC5mb3JtLXNlbGVjdDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tc2VsZWN0IHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5keW5hbWljLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmR5bmFtaWMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAuZHluYW1pYy1yb3cgLmZvcm0taW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5keW5hbWljLXJvdyAuZm9ybS1zZWxlY3QgewogICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucmVtb3ZlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucmVtb3ZlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWNhY2EiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYWR2YW5jZWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYWR2YW5jZWQgc3ZnIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYWR2YW5jZWQub3BlbiBzdmcgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC5jaGVja2JveC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgYWNjZW50LWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pdGVtOmhhcyhpbnB1dDpjaGVja2VkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWljb24gewogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pY29uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1kZXNjIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDQ0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCBpbnB1dCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc2xpZGVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc2xpZGVyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgbGVmdDogM3B4OwogICAgICAgIGJvdHRvbTogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggaW5wdXQ6Y2hlY2tlZCArIC50b2dnbGUtc2xpZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoIGlucHV0OmNoZWNrZWQgKyAudG9nZ2xlLXNsaWRlcjo6YmVmb3JlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucHJpbWFyeTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5zcGlubmVyIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogY3VycmVudENvbG9yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdGl0bGUiPkRlcGxveSBOZXcgU2VydmljZTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXN1YnRpdGxlIj5Db25maWd1cmUgYW5kIGRlcGxveSBhIG5ldyBEb2NrZXIgY29udGFpbmVyPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBCYXNpYyBJbmZvIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICA8bGluZSB4MT0iOSIgeTE9IjkiIHgyPSIxNSIgeTI9IjkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSIxNSIgeDI9IjE1IiB5Mj0iMTUiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQmFzaWMgSW5mb3JtYXRpb24KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5TZXJ2aWNlIE5hbWUgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Im15LXNlcnZpY2UiCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZXJ2aWNlTmFtZX0KICAgICAgICAgICAgICBAaW5wdXQ9JHtvZT0+dGhpcy5zZXJ2aWNlTmFtZT1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5VbmlxdWUgbmFtZSBmb3IgdGhlIHNlcnZpY2UgKGFscGhhbnVtZXJpYyBhbmQgaHlwaGVucyk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+UmVnaXN0cnk8L2xhYmVsPgogICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgY2xhc3M9ImZvcm0tc2VsZWN0IgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VsZWN0ZWRSZWdpc3RyeX0KICAgICAgICAgICAgICBAY2hhbmdlPSR7b2U9PnRoaXMuc2VsZWN0ZWRSZWdpc3RyeT1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPkN1c3RvbSBJbWFnZSBVUkw8L29wdGlvbj4KICAgICAgICAgICAgICAke3RoaXMucmVnaXN0cmllcy5tYXAob2U9PndgCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSR7b2UuaWR9PiR7b2UubmFtZX08L29wdGlvbj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyBzaW5nbGUiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+SW1hZ2UgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Im5naW54OmxhdGVzdCBvciByZWdpc3RyeS5leGFtcGxlLmNvbS9pbWFnZTp0YWciCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbWFnZVVybH0KICAgICAgICAgICAgICBAaW5wdXQ9JHtvZT0+dGhpcy5pbWFnZVVybD1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5Eb2NrZXIgaW1hZ2UgdG8gZGVwbG95IChpbmNsdWRlIHRhZyk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUG9ydCBDb25maWd1cmF0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICA8bGluZSB4MT0iMiIgeTE9IjEyIiB4Mj0iMjIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICA8cGF0aCBkPSJNMTIgMmExNS4zIDE1LjMgMCAwIDEgNCAxMCAxNS4zIDE1LjMgMCAwIDEtNCAxMCAxNS4zIDE1LjMgMCAwIDEtNC0xMCAxNS4zIDE1LjMgMCAwIDEgNC0xMHoiPjwvcGF0aD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgUG9ydCBDb25maWd1cmF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1saXN0Ij4KICAgICAgICAgICR7dGhpcy5wb3J0cy5tYXAoKG9lLGFlKT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1yb3ciPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Ikhvc3QgUG9ydCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke29lLmhvc3RQb3J0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7VGU9PnRoaXMudXBkYXRlUG9ydChhZSwiaG9zdFBvcnQiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkNvbnRhaW5lciBQb3J0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7b2UuY29udGFpbmVyUG9ydH0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke1RlPT50aGlzLnVwZGF0ZVBvcnQoYWUsImNvbnRhaW5lclBvcnQiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLXNlbGVjdCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke29lLnByb3RvY29sfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke1RlPT50aGlzLnVwZGF0ZVBvcnQoYWUsInByb3RvY29sIixUZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InRjcCI+VENQPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ1ZHAiPlVEUDwvb3B0aW9uPgogICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICR7dGhpcy5wb3J0cy5sZW5ndGg+MT93YAogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlUG9ydChhZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRkLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkUG9ydCgpfT4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQWRkIFBvcnQgTWFwcGluZwogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gRW52aXJvbm1lbnQgVmFyaWFibGVzIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iNCAxNyAxMCAxMSA0IDUiPjwvcG9seWxpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE5IiB4Mj0iMjAiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBFbnZpcm9ubWVudCBWYXJpYWJsZXMKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLWxpc3QiPgogICAgICAgICAgJHt0aGlzLmVudlZhcnMubWFwKChvZSxhZSk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtcm93Ij4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJLRVkiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtvZS5rZXl9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHtUZT0+dGhpcy51cGRhdGVFbnZWYXIoYWUsImtleSIsVGUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0idmFsdWUiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtvZS52YWx1ZX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke1RlPT50aGlzLnVwZGF0ZUVudlZhcihhZSwidmFsdWUiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5lbnZWYXJzLmxlbmd0aD4xP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVFbnZWYXIoYWUpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmFkZEVudlZhcigpfT4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQWRkIEVudmlyb25tZW50IFZhcmlhYmxlCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBQbGF0Zm9ybSBTZXJ2aWNlcyAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iNi4wMSIgeTI9IjYiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSIxOCIgeDI9IjYuMDEiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBQbGF0Zm9ybSBTZXJ2aWNlcwogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEycHg7Ij4KICAgICAgICAgIEVuYWJsZSBtYW5hZ2VkIGluZnJhc3RydWN0dXJlIHNlcnZpY2VzIGZvciB0aGlzIGRlcGxveW1lbnQuIFJlc291cmNlcyBhcmUgYXV0b21hdGljYWxseSBwcm92aXNpb25lZCBhbmQgY29ubmVjdGlvbiBkZXRhaWxzIGluamVjdGVkIGFzIGVudmlyb25tZW50IHZhcmlhYmxlcy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtbGlzdCI+CiAgICAgICAgICA8bGFiZWwgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pY29uIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOSAxNXYxYzAgMS4xLjkgMiAyIDJ2MS45M3ptNi45LTIuNTRjLS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0yaDJjLjU1IDAgMS0uNDUgMS0xVjdoMmMxLjEgMCAyLS45IDItMnYtLjQxYzIuOTMgMS4xOSA1IDQuMDYgNSA3LjQxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5eiIvPjwvc3ZnPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtbmFtZSI+TW9uZ29EQjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWRlc2MiPkRvY3VtZW50IGRhdGFiYXNlIHdpdGggYXV0by1wcm92aXNpb25lZCBjcmVkZW50aWFsczwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5lbmFibGVNb25nb0RCfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke29lPT50aGlzLmVuYWJsZU1vbmdvREI9b2UudGFyZ2V0LmNoZWNrZWR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2dnbGUtc2xpZGVyIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWljb24iPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTIxIDE2LjVjMCAuMzgtLjIxLjcxLS41My44OGwtNy45IDQuNDRjLS4xNi4xMi0uMzYuMTgtLjU3LjE4LS4yMSAwLS40MS0uMDYtLjU3LS4xOGwtNy45LTQuNDRBLjk5MS45OTEgMCAwIDEgMyAxNi41di05YzAtLjM4LjIxLS43MS41My0uODhsNy45LTQuNDRjLjE2LS4xMi4zNi0uMTguNTctLjE4LjIxIDAgLjQxLjA2LjU3LjE4bDcuOSA0LjQ0Yy4zMi4xNy41My41LjUzLjg4djl6Ii8+PC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1uYW1lIj5TMyBTdG9yYWdlIChNaW5JTyk8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1kZXNjIj5PYmplY3Qgc3RvcmFnZSBidWNrZXQgd2l0aCBhdXRvLXByb3Zpc2lvbmVkIGFjY2VzcyBrZXlzPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmVuYWJsZVMzfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke29lPT50aGlzLmVuYWJsZVMzPW9lLnRhcmdldC5jaGVja2VkfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idG9nZ2xlLXNsaWRlciI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICA8bGFiZWwgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pY29uIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIi8+PHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iMTUiLz48cmVjdCB4PSIxNiIgeT0iMTIiIHdpZHRoPSI2IiBoZWlnaHQ9IjEwIi8+PC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1uYW1lIj5DbGlja0hvdXNlPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtZGVzYyI+QW5hbHl0aWNzIGRhdGFiYXNlIHdpdGggYXV0by1wcm92aXNpb25lZCBjcmVkZW50aWFsczwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5lbmFibGVDbGlja0hvdXNlfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke29lPT50aGlzLmVuYWJsZUNsaWNrSG91c2U9b2UudGFyZ2V0LmNoZWNrZWR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2dnbGUtc2xpZGVyIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEFkdmFuY2VkIE9wdGlvbnMgVG9nZ2xlIC0tPgogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9InRvZ2dsZS1hZHZhbmNlZCAke3RoaXMuc2hvd0FkdmFuY2VkPyJvcGVuIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0FkdmFuY2VkPSF0aGlzLnNob3dBZHZhbmNlZH0KICAgICAgPgogICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ij48L3BvbHlsaW5lPgogICAgICAgIDwvc3ZnPgogICAgICAgIEFkdmFuY2VkIE9wdGlvbnMKICAgICAgPC9idXR0b24+CgogICAgICAke3RoaXMuc2hvd0FkdmFuY2VkP3dgCiAgICAgICAgPCEtLSBWb2x1bWVzIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIFZvbHVtZSBNb3VudHMKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLnZvbHVtZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+Tm8gdm9sdW1lcyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICAgIGA6dGhpcy52b2x1bWVzLm1hcCgob2UsYWUpPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtcm93Ij4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Ii9ob3N0L3BhdGgiCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke29lLmhvc3RQYXRofQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtUZT0+dGhpcy51cGRhdGVWb2x1bWUoYWUsImhvc3RQYXRoIixUZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iL2NvbnRhaW5lci9wYXRoIgogICAgICAgICAgICAgICAgICAudmFsdWU9JHtvZS5jb250YWluZXJQYXRofQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtUZT0+dGhpcy51cGRhdGVWb2x1bWUoYWUsImNvbnRhaW5lclBhdGgiLFRlLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1yb3ciPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2hlY2tib3giCiAgICAgICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHtvZS5yZWFkT25seX0KICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPSR7VGU9PnRoaXMudXBkYXRlVm9sdW1lKGFlLCJyZWFkT25seSIsVGUudGFyZ2V0LmNoZWNrZWQpfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWhpbnQiPlJPPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVWb2x1bWUoYWUpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmFkZFZvbHVtZSgpfT4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEFkZCBWb2x1bWUgTW91bnQKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFJlc291cmNlIExpbWl0cyAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHJlY3QgeD0iMSIgeT0iNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjE2IiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICA8bGluZSB4MT0iMSIgeTE9IjEwIiB4Mj0iMjMiIHkyPSIxMCI+PC9saW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgUmVzb3VyY2UgTGltaXRzCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5DUFUgTGltaXQ8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9ImUuZy4sIDEuMCBvciAwLjUiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNwdUxpbWl0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7b2U9PnRoaXMuY3B1TGltaXQ9b2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPk51bWJlciBvZiBDUFVzIChsZWF2ZSBlbXB0eSBmb3IgdW5saW1pdGVkKTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5NZW1vcnkgTGltaXQ8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9ImUuZy4sIDUxMm0gb3IgMWciCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLm1lbW9yeUxpbWl0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7b2U9PnRoaXMubWVtb3J5TGltaXQ9b2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPk1lbW9yeSBsaW1pdCAobGVhdmUgZW1wdHkgZm9yIHVubGltaXRlZCk8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBSZXN0YXJ0IFBvbGljeSAmIE5ldHdvcmsgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiPjwvY2lyY2xlPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxIDAgMi44MyAyIDIgMCAwIDEtMi44MyAwbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxLTItMnYtLjA5QTEuNjUgMS42NSAwIDAgMCA5IDE5LjRhMS42NSAxLjY1IDAgMCAwLTEuODIuMzNsLS4wNi4wNmEyIDIgMCAwIDEtMi44MyAwIDIgMiAwIDAgMSAwLTIuODNsLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAgLjMzLTEuODIgMS42NSAxLjY1IDAgMCAwLTEuNTEtMUgzYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxIDItMmguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMC0yLjgzIDIgMiAwIDAgMSAyLjgzIDBsLjA2LjA2YTEuNjUgMS42NSAwIDAgMCAxLjgyLjMzSDlhMS42NSAxLjY1IDAgMCAwIDEtMS41MVYzYTIgMiAwIDAgMSAyLTIgMiAyIDAgMCAxIDIgMnYuMDlhMS42NSAxLjY1IDAgMCAwIDEgMS41MSAxLjY1IDEuNjUgMCAwIDAgMS44Mi0uMzNsLjA2LS4wNmEyIDIgMCAwIDEgMi44MyAwIDIgMiAwIDAgMSAwIDIuODNsLS4wNi4wNmExLjY1IDEuNjUgMCAwIDAtLjMzIDEuODJWOWExLjY1IDEuNjUgMCAwIDAgMS41MSAxSDIxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxLTIgMmgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDb250YWluZXIgU2V0dGluZ3MKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPlJlc3RhcnQgUG9saWN5PC9sYWJlbD4KICAgICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1zZWxlY3QiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnJlc3RhcnRQb2xpY3l9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7b2U9PnRoaXMucmVzdGFydFBvbGljeT1vZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYWx3YXlzIj5BbHdheXM8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im9uLWZhaWx1cmUiPk9uIEZhaWx1cmU8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im5ldmVyIj5OZXZlcjwvb3B0aW9uPgogICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5OZXR3b3JrIE1vZGU8L2xhYmVsPgogICAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLXNlbGVjdCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMubmV0d29ya01vZGV9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7b2U9PnRoaXMubmV0d29ya01vZGU9b2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJyaWRnZSI+QnJpZGdlPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJob3N0Ij5Ib3N0PC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJub25lIj5Ob25lPC9vcHRpb24+CiAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidXR0b24gc2Vjb25kYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDYW5jZWwoKX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbgogICAgICAgICAgY2xhc3M9ImJ1dHRvbiBwcmltYXJ5IgogICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5sb2FkaW5nfHwhdGhpcy5pc1ZhbGlkKCl9CiAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoKX0KICAgICAgICA+CiAgICAgICAgICAke3RoaXMubG9hZGluZz93YDxkaXYgY2xhc3M9InNwaW5uZXIiPjwvZGl2PmA6IiJ9CiAgICAgICAgICAke3RoaXMubG9hZGluZz8iRGVwbG95aW5nLi4uIjoiRGVwbG95IFNlcnZpY2UifQogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGB9aXNWYWxpZCgpe3JldHVybiB0aGlzLnNlcnZpY2VOYW1lLnRyaW0oKSE9PSIiJiZ0aGlzLmltYWdlVXJsLnRyaW0oKSE9PSIifWFkZFBvcnQoKXt0aGlzLnBvcnRzPVsuLi50aGlzLnBvcnRzLHtob3N0UG9ydDoiIixjb250YWluZXJQb3J0OiIiLHByb3RvY29sOiJ0Y3AifV19cmVtb3ZlUG9ydChvZSl7dGhpcy5wb3J0cz10aGlzLnBvcnRzLmZpbHRlcigoYWUsVGUpPT5UZSE9PW9lKX11cGRhdGVQb3J0KG9lLGFlLFRlKXtsZXQgUmU9Wy4uLnRoaXMucG9ydHNdO1JlW29lXVthZV09VGUsdGhpcy5wb3J0cz1SZX1hZGRFbnZWYXIoKXt0aGlzLmVudlZhcnM9Wy4uLnRoaXMuZW52VmFycyx7a2V5OiIiLHZhbHVlOiIifV19cmVtb3ZlRW52VmFyKG9lKXt0aGlzLmVudlZhcnM9dGhpcy5lbnZWYXJzLmZpbHRlcigoYWUsVGUpPT5UZSE9PW9lKX11cGRhdGVFbnZWYXIob2UsYWUsVGUpe2xldCBSZT1bLi4udGhpcy5lbnZWYXJzXTtSZVtvZV1bYWVdPVRlLHRoaXMuZW52VmFycz1SZX1hZGRWb2x1bWUoKXt0aGlzLnZvbHVtZXM9Wy4uLnRoaXMudm9sdW1lcyx7aG9zdFBhdGg6IiIsY29udGFpbmVyUGF0aDoiIixyZWFkT25seTohMX1dfXJlbW92ZVZvbHVtZShvZSl7dGhpcy52b2x1bWVzPXRoaXMudm9sdW1lcy5maWx0ZXIoKGFlLFRlKT0+VGUhPT1vZSl9dXBkYXRlVm9sdW1lKG9lLGFlLFRlKXtsZXQgUmU9Wy4uLnRoaXMudm9sdW1lc107UmVbb2VdW2FlXT1UZSx0aGlzLnZvbHVtZXM9UmV9aGFuZGxlQ2FuY2VsKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2FuY2VsIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDcmVhdGUoKXtsZXQgb2U9e25hbWU6dGhpcy5zZXJ2aWNlTmFtZS50cmltKCksaW1hZ2U6dGhpcy5pbWFnZVVybC50cmltKCkscG9ydHM6dGhpcy5wb3J0cy5maWx0ZXIoYWU9PmFlLmhvc3RQb3J0JiZhZS5jb250YWluZXJQb3J0KSxlbnZWYXJzOnRoaXMuZW52VmFycy5maWx0ZXIoYWU9PmFlLmtleSksdm9sdW1lczp0aGlzLnZvbHVtZXMuZmlsdGVyKGFlPT5hZS5ob3N0UGF0aCYmYWUuY29udGFpbmVyUGF0aCksY3B1TGltaXQ6dGhpcy5jcHVMaW1pdCxtZW1vcnlMaW1pdDp0aGlzLm1lbW9yeUxpbWl0LHJlc3RhcnRQb2xpY3k6dGhpcy5yZXN0YXJ0UG9saWN5LG5ldHdvcmtNb2RlOnRoaXMubmV0d29ya01vZGUsZW5hYmxlTW9uZ29EQjp0aGlzLmVuYWJsZU1vbmdvREIsZW5hYmxlUzM6dGhpcy5lbmFibGVTMyxlbmFibGVDbGlja0hvdXNlOnRoaXMuZW5hYmxlQ2xpY2tIb3VzZX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlLXNlcnZpY2UiLHtkZXRhaWw6b2UsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1yZXNldCgpe3RoaXMuc2VydmljZU5hbWU9IiIsdGhpcy5pbWFnZVVybD0iIix0aGlzLnNlbGVjdGVkUmVnaXN0cnk9IiIsdGhpcy5wb3J0cz1be2hvc3RQb3J0OiIiLGNvbnRhaW5lclBvcnQ6IiIscHJvdG9jb2w6InRjcCJ9XSx0aGlzLmVudlZhcnM9W3trZXk6IiIsdmFsdWU6IiJ9XSx0aGlzLnZvbHVtZXM9W10sdGhpcy5jcHVMaW1pdD0iIix0aGlzLm1lbW9yeUxpbWl0PSIiLHRoaXMucmVzdGFydFBvbGljeT0iYWx3YXlzIix0aGlzLm5ldHdvcmtNb2RlPSJicmlkZ2UiLHRoaXMuc2hvd0FkdmFuY2VkPSExLHRoaXMuZW5hYmxlTW9uZ29EQj0hMSx0aGlzLmVuYWJsZVMzPSExLHRoaXMuZW5hYmxlQ2xpY2tIb3VzZT0hMX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYnModGhpcyxBKX1zdGF0aWN7YnMoYSx0KX19O3JldHVybiBzZT1hfSkoKX0pO3ZhciB6MWUsTmcsWFFhLHI5YT1nKCgpPT57cGUoKTt6MWU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE5nPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxYUWE9KCgpPT57bGV0IHM9W25lKCJzei1wbGF0Zm9ybS1zZXJ2aWNlLWRldGFpbC12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6UGxhdGZvcm1TZXJ2aWNlRGV0YWlsVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6QXJyYXl9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHoxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNlcnZpY2UiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VydmljZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksejFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9ncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibG9ncyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmxvZ3MsImdldCIpLHNldDppKChmLHkpPT57Zi5sb2dzPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSx6MWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25Mb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJhY3Rpb25Mb2FkaW5nImluIGYsImhhcyIpLGdldDppKGY9PmYuYWN0aW9uTG9hZGluZywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmFjdGlvbkxvYWRpbmc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLHoxZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7e2lkOiIxIixuYW1lOiJNb25nb0RCIix0eXBlOiJtb25nb2RiIixzdGF0dXM6InJ1bm5pbmciLHZlcnNpb246IjcuMC40Iixob3N0OiJsb2NhbGhvc3QiLHBvcnQ6MjcwMTcsY3JlZGVudGlhbHM6e3VzZXJuYW1lOiJhZG1pbiIscGFzc3dvcmQ6Ilx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMiJ9LGNvbmZpZzp7cmVwbGljYVNldDoicnMwIixhdXRoRW5hYmxlZDohMH0sbWV0cmljczp7Y3B1OjEyLG1lbW9yeTo0NSxzdG9yYWdlOjIzLGNvbm5lY3Rpb25zOjh9fX0KICAgICAgICAubG9ncz0ke1t7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIyIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiQ29ubmVjdGlvbiBhY2NlcHRlZCBmcm9tIDEyNy4wLjAuMTo1NDMyMSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjAiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJJbmRleCBidWlsZCBjb21wbGV0ZWQgb24gY29sbGVjdGlvbiB1c2VycyJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTUiLGxldmVsOiJ3YXJuIixtZXNzYWdlOiJTbG93IHF1ZXJ5IGRldGVjdGVkOiAxLjJzIG9uIGNvbGxlY3Rpb24gb3JkZXJzIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoxMCIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNoZWNrcG9pbnQgY29tcGxldGUifV19CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJQbGF0Zm9ybSJdOyNlPU5nKHRoaXMsbyxudWxsKTtnZXQgc2VydmljZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZXJ2aWNlKG0pe3RoaXMuI2U9bX0jdD0oTmcodGhpcyxsKSxOZyh0aGlzLGQsW10pKTtnZXQgbG9ncygpe3JldHVybiB0aGlzLiN0fXNldCBsb2dzKG0pe3RoaXMuI3Q9bX0jYT0oTmcodGhpcyx1KSxOZyh0aGlzLGIsITEpKTtnZXQgYWN0aW9uTG9hZGluZygpe3JldHVybiB0aGlzLiNhfXNldCBhY3Rpb25Mb2FkaW5nKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gewogICAgICAgIHdpZHRoOiA1NnB4OwogICAgICAgIGhlaWdodDogNTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuc2VydmljZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VydmljZS1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuZnVsbC13aWR0aCB7CiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5pbmZvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtY2FyZCB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWZpbGwubWVkaXVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VhYjMwOCIsIiNlYWIzMDgiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1rZXkgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlLnRydWUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jb25maWctdmFsdWUuZmFsc2UgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5zZXJ2aWNlP3dgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uIj4KICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNlcnZpY2VJY29uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtZGV0YWlscyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbmFtZSI+JHt0aGlzLnNlcnZpY2UubmFtZX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1tZXRhIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0aGlzLnNlcnZpY2Uuc3RhdHVzLnNsaWNlKDEpfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj5WZXJzaW9uICR7dGhpcy5zZXJ2aWNlLnZlcnNpb259PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cz09PSJydW5uaW5nIj93YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlc3RhcnQoKX0+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjMgNCAyMyAxMCAxNyAxMCI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjEgMjAgMSAxNCA3IDE0Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMuNTEgOWE5IDkgMCAwIDEgMTQuODUtMy4zNkwyMyAxME0xIDE0bDQuNjQgNC4zNkE5IDkgMCAwIDAgMjAuNDkgMTUiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBSZXN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRhbmdlciIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTdG9wKCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjEiPjwvcmVjdD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBTdG9wCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVN0YXJ0KCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI1LDMgMTksMTIgNSwyMSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8IS0tIENvbm5lY3Rpb24gSW5mbyAtLT4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBDb25uZWN0aW9uCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkhvc3Q8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuaG9zdH0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmhvc3QpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Qb3J0PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMuc2VydmljZS5wb3J0fTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzPy51c2VybmFtZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Vc2VybmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMudXNlcm5hbWV9CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLnVzZXJuYW1lKX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+UGFzc3dvcmQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCiPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMuc2VydmljZS5jcmVkZW50aWFscz8uYWNjZXNzS2V5P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkFjY2VzcyBLZXk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLmFjY2Vzc0tleX0KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29weS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNvcHlUb0NsaXBib2FyZCh0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMuYWNjZXNzS2V5KX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+U2VjcmV0IEtleTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj7igKLigKLigKLigKLigKLigKLigKLigKI8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPCEtLSBDb25maWd1cmF0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkuNCAxNWExLjY1IDEuNjUgMCAwIDAgLjMzIDEuODJsLjA2LjA2YTIgMiAwIDAgMSAwIDIuODMgMiAyIDAgMCAxLTIuODMgMGwtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMS0yLTJ2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMgMCAyIDIgMCAwIDEgMC0yLjgzbC4wNi0uMDZhMS42NSAxLjY1IDAgMCAwIC4zMy0xLjgyIDEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMSAyLTJoLjA5QTEuNjUgMS42NSAwIDAgMCA0LjYgOWExLjY1IDEuNjUgMCAwIDAtLjMzLTEuODJsLS4wNi0uMDZhMiAyIDAgMCAxIDAtMi44MyAyIDIgMCAwIDEgMi44MyAwbC4wNi4wNmExLjY1IDEuNjUgMCAwIDAgMS44Mi4zM0g5YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgMi0yIDIgMiAwIDAgMSAyIDJ2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMCAyIDIgMCAwIDEgMCAyLjgzbC0uMDYuMDZhMS42NSAxLjY1IDAgMCAwLS4zMyAxLjgyVjlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMS0yIDJoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxeiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXModGhpcy5zZXJ2aWNlLmNvbmZpZykubWFwKChbbSxmXSk9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy1rZXkiPiR7dGhpcy5mb3JtYXRDb25maWdLZXkobSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy12YWx1ZSAke3R5cGVvZiBmPT0iYm9vbGVhbiI/Zj8idHJ1ZSI6ImZhbHNlIjoiIn0iPiR7dGhpcy5mb3JtYXRDb25maWdWYWx1ZShmKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gTWV0cmljcyAtLT4KICAgICAgICAke3RoaXMuc2VydmljZS5tZXRyaWNzP3dgCiAgICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJmdWxsLXdpZHRoIj4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjIwIiB4Mj0iMTgiIHkyPSIxMCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMCIgeDI9IjEyIiB5Mj0iNCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjIwIiB4Mj0iNiIgeTI9IjE0Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIFJlc291cmNlIFVzYWdlCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPkNQVTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MuY3B1KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPk1lbW9yeTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MubWVtb3J5KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWxhYmVsIj5TdG9yYWdlPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZmlsbCAke3RoaXMuZ2V0UHJvZ3Jlc3NDbGFzcyh0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlKX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSUiPjwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jb25uZWN0aW9ucyE9PXZvaWQgMD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuc2VydmljZS5tZXRyaWNzLmNvbm5lY3Rpb25zfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1sYWJlbCI+Q29ubmVjdGlvbnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIGA6IiJ9CgogICAgICAgIDwhLS0gTG9ncyAtLT4KICAgICAgICA8ZGl2IHN0eWxlPSJncmlkLWNvbHVtbjogMSAvIC0xOyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgTG9ncyJ9CiAgICAgICAgICAgIC5sb2dFbnRyaWVzPSR7dGhpcy5sb2dzLm1hcChtPT4oe3RpbWVzdGFtcDptLnRpbWVzdGFtcC5pbmNsdWRlcygiVCIpP20udGltZXN0YW1wOm5ldyBEYXRlKG0udGltZXN0YW1wKS50b0lTT1N0cmluZygpLGxldmVsOm0ubGV2ZWwsbWVzc2FnZTptLm1lc3NhZ2V9KSl9CiAgICAgICAgICAgIC5hdXRvU2Nyb2xsPSR7ITB9CiAgICAgICAgICAgIC5tYXhFbnRyaWVzPSR7MmUzfQogICAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGA6d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gc2VydmljZSBzZWxlY3RlZDwvZGl2PmB9cmVuZGVyU2VydmljZUljb24oKXtzd2l0Y2godGhpcy5zZXJ2aWNlPy50eXBlKXtjYXNlIm1vbmdvZGIiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOSAxNXYxYzAgMS4xLjkgMiAyIDJ2MS45M3ptNi45LTIuNTRjLS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0yaDJjLjU1IDAgMS0uNDUgMS0xVjdoMmMxLjEgMCAyLS45IDItMnYtLjQxYzIuOTMgMS4xOSA1IDQuMDYgNSA3LjQxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5eiIvPjwvc3ZnPmA7Y2FzZSJtaW5pbyI6cmV0dXJuIHdgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTIxIDE2LjVjMCAuMzgtLjIxLjcxLS41My44OGwtNy45IDQuNDRjLS4xNi4xMi0uMzYuMTgtLjU3LjE4LS4yMSAwLS40MS0uMDYtLjU3LS4xOGwtNy45LTQuNDRBLjk5MS45OTEgMCAwIDEgMyAxNi41di05YzAtLjM4LjIxLS43MS41My0uODhsNy45LTQuNDRjLjE2LS4xMi4zNi0uMTguNTctLjE4LjIxIDAgLjQxLjA2LjU3LjE4bDcuOSA0LjQ0Yy4zMi4xNy41My41LjUzLjg4djl6Ii8+PC9zdmc+YDtjYXNlImNsaWNraG91c2UiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIi8+PHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iMTUiLz48cmVjdCB4PSIxNiIgeT0iMTIiIHdpZHRoPSI2IiBoZWlnaHQ9IjEwIi8+PC9zdmc+YDtjYXNlInJlZGlzIjpyZXR1cm4gd2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTIgMkwyIDdsMTAgNSAxMC01LTEwLTV6TTIgMTdsMTAgNSAxMC01TTIgMTJsMTAgNSAxMC01Ii8+PC9zdmc+YDtkZWZhdWx0OnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSI2LjAxIiB5Mj0iMTgiPjwvbGluZT48L3N2Zz5gfX1nZXRQcm9ncmVzc0NsYXNzKG0pe3JldHVybiBtPDUwPyJsb3ciOm08ODA/Im1lZGl1bSI6ImhpZ2gifWZvcm1hdENvbmZpZ0tleShtKXtyZXR1cm4gbS5yZXBsYWNlKC8oW0EtWl0pL2csIiAkMSIpLnJlcGxhY2UoL14uLyxmPT5mLnRvVXBwZXJDYXNlKCkpfWZvcm1hdENvbmZpZ1ZhbHVlKG0pe3JldHVybiB0eXBlb2YgbT09ImJvb2xlYW4iP20/IkVuYWJsZWQiOiJEaXNhYmxlZCI6U3RyaW5nKG0pfWNvcHlUb0NsaXBib2FyZChtKXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChtKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb3B5Iix7ZGV0YWlsOm0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTdGFydCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVN0b3AoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdG9wIix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc3RhcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxOZyh0aGlzLHYpfXN0YXRpY3tOZyhhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgeVEsJHUsUVFhLG85YT1nKCgpPT57cGUoKTt5UT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sJHU9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFFRYT0oKCk9PntsZXQgcz1bbmUoInN6LWRvbWFpbi1kZXRhaWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekRvbWFpbkRldGFpbFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkFycmF5fSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5USh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRvbWFpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZG9tYWluImluIHosImhhcyIpLGdldDppKHo9PnouZG9tYWluLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZG9tYWluPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSx5USh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlcnRpZmljYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjZXJ0aWZpY2F0ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNlcnRpZmljYXRlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY2VydGlmaWNhdGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHlRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG5zUmVjb3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZG5zUmVjb3JkcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmRuc1JlY29yZHMsImdldCIpLHNldDppKCh6LE4pPT57ei5kbnNSZWNvcmRzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSx5USh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbkxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImFjdGlvbkxvYWRpbmciaW4geiwiaGFzIiksZ2V0Omkoej0+ei5hY3Rpb25Mb2FkaW5nLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYWN0aW9uTG9hZGluZz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZikseVEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMDAwcHg7Ij4KICAgICAgPHN6LWRvbWFpbi1kZXRhaWwtdmlldwogICAgICAgIC5kb21haW49JHt7aWQ6IjEiLG5hbWU6ImV4YW1wbGUuY29tIixzdGF0dXM6ImFjdGl2ZSIsdmVyaWZpZWQ6ITAsY3JlYXRlZEF0OiIyMDI0LTAxLTEwIixwcm94eVJvdXRlczpbIi9hcGkvKiIsIi9hcHAvKiJdfX0KICAgICAgICAuY2VydGlmaWNhdGU9JHt7aWQ6IjEiLGRvbWFpbjoiZXhhbXBsZS5jb20iLGlzc3VlcjoiTGV0J3MgRW5jcnlwdCIsdmFsaWRGcm9tOiIyMDI0LTAxLTEwIix2YWxpZFVudGlsOiIyMDI0LTA0LTEwIixkYXlzUmVtYWluaW5nOjQ1LHN0YXR1czoidmFsaWQiLGF1dG9SZW5ldzohMCxjaGFpbjpbIlIzIiwiSVNSRyBSb290IFgxIl19fQogICAgICAgIC5kbnNSZWNvcmRzPSR7W3tpZDoiMSIsdHlwZToiQSIsbmFtZToiQCIsdmFsdWU6IjE5Mi4xNjguMS4xMDAiLHR0bDozNjAwfSx7aWQ6IjIiLHR5cGU6IkNOQU1FIixuYW1lOiJ3d3ciLHZhbHVlOiJleGFtcGxlLmNvbSIsdHRsOjM2MDB9LHtpZDoiMyIsdHlwZToiTVgiLG5hbWU6IkAiLHZhbHVlOiJtYWlsLmV4YW1wbGUuY29tIix0dGw6MzYwMCxwcmlvcml0eToxMH0se2lkOiI0Iix0eXBlOiJUWFQiLG5hbWU6IkAiLHZhbHVlOiJ2PXNwZjEgaW5jbHVkZTpfc3BmLmV4YW1wbGUuY29tIH5hbGwiLHR0bDozNjAwfV19CiAgICAgID48L3N6LWRvbWFpbi1kZXRhaWwtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT0kdSh0aGlzLG8sbnVsbCk7Z2V0IGRvbWFpbigpe3JldHVybiB0aGlzLiNlfXNldCBkb21haW4oTSl7dGhpcy4jZT1NfSN0PSgkdSh0aGlzLGwpLCR1KHRoaXMsZCxudWxsKSk7Z2V0IGNlcnRpZmljYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlcnRpZmljYXRlKE0pe3RoaXMuI3Q9TX0jYT0oJHUodGhpcyx1KSwkdSh0aGlzLGIsW10pKTtnZXQgZG5zUmVjb3Jkcygpe3JldHVybiB0aGlzLiNhfXNldCBkbnNSZWNvcmRzKE0pe3RoaXMuI2E9TX0jcz0oJHUodGhpcyx2KSwkdSh0aGlzLG0sITEpKTtnZXQgYWN0aW9uTG9hZGluZygpe3JldHVybiB0aGlzLiNzfXNldCBhY3Rpb25Mb2FkaW5nKE0pe3RoaXMuI3M9TX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRvbWFpbi1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYzYzciLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkOTc3MDYiLCIjZjU5ZTBiIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLmRvbWFpbi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudmVyaWZpZWQtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnZlcmlmaWVkLWJhZGdlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kYW5nZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlcjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZ1bGwtd2lkdGggewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCgogICAgICAuc2VjdGlvbi1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuY2VydC1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZmRmNCIsInJnYmEoMzQsIDE5NywgOTQsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LXN0YXR1cy5leHBpcmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZiZWIiLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtc3RhdHVzLmV4cGlyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmMmYyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24udmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuY2VydC1pY29uLmV4cGlyaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24uZXhwaXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWluZm8gewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5jZXJ0LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2VydC1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuY2VydC1kYXlzIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMudmFsaWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMuZXhwaXJpbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMuZXhwaXJlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmluZm8tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEwcHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaW5mby1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmluZm8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuaW5mby12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tdmFsdWUuZW5hYmxlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmNoYWluLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hhaW4tYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRucy10YWJsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kbnMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxZnIgMmZyIDgwcHggNjBweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5kbnMtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxZnIgMmZyIDgwcHggNjBweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmRucy1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmRucy1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBtYXJnaW46IDAgLTE2cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kbnMtdHlwZSB7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmRucy1uYW1lIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZG5zLXZhbHVlIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZG5zLXR0bCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRucy1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuaWNvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmljb24tYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAucm91dGVzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucm91dGUtYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuZG9tYWluP3dgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluLW5hbWUiPgogICAgICAgICAgICAke3RoaXMuZG9tYWluLm5hbWV9CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHt0aGlzLmRvbWFpbi5zdGF0dXN9Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAgICR7dGhpcy5kb21haW4uc3RhdHVzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3RoaXMuZG9tYWluLnN0YXR1cy5zbGljZSgxKX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW4tbWV0YSI+CiAgICAgICAgICAgICR7dGhpcy5kb21haW4udmVyaWZpZWQ/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmVyaWZpZWQtYmFkZ2UiPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTEuMDhWMTJhMTAgMTAgMCAxIDEtNS45My05LjE0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIyIDQgMTIgMTQuMDEgOSAxMS4wMSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgVmVyaWZpZWQKICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGA6d2A8c3Bhbj5Ob3QgdmVyaWZpZWQ8L3NwYW4+YH0KICAgICAgICAgICAgPHNwYW4+QWRkZWQgJHt0aGlzLmRvbWFpbi5jcmVhdGVkQXR9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWFjdGlvbnMiPgogICAgICAgICAgJHt0aGlzLmRvbWFpbi52ZXJpZmllZD8iIjp3YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVZlcmlmeSgpfT4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMCA2IDkgMTcgNCAxMiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBWZXJpZnkgRG9tYWluCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYH0KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGFuZ2VyIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZSgpfT4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2bTMgMFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgPCEtLSBDZXJ0aWZpY2F0ZSBTZWN0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMTEiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMSIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNyAxMVY3YTUgNSAwIDAgMSAxMCAwdjQiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBTU0wgQ2VydGlmaWNhdGUKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7dGhpcy5jZXJ0aWZpY2F0ZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtc3RhdHVzICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXN9Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtaWNvbiAke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzfSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXM9PT0idmFsaWQiP3dgCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDExLjA4VjEyYTEwIDEwIDAgMSAxLTUuOTMtOS4xNCI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjIgNCAxMiAxNC4wMSA5IDExLjAxIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICBgOnRoaXMuY2VydGlmaWNhdGUuc3RhdHVzPT09ImV4cGlyaW5nIj93YAogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyLjAxIiB5Mj0iMTYiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxNSIgeTE9IjkiIHgyPSI5IiB5Mj0iMTUiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI5IiB5MT0iOSIgeDI9IjE1IiB5Mj0iMTUiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1pbmZvIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC10aXRsZSI+JHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1cz09PSJ2YWxpZCI/IkNlcnRpZmljYXRlIFZhbGlkIjp0aGlzLmNlcnRpZmljYXRlLnN0YXR1cz09PSJleHBpcmluZyI/IkNlcnRpZmljYXRlIEV4cGlyaW5nIFNvb24iOiJDZXJ0aWZpY2F0ZSBFeHBpcmVkIn08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1zdWJ0aXRsZSI+SXNzdWVkIGJ5ICR7dGhpcy5jZXJ0aWZpY2F0ZS5pc3N1ZXJ9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtZGF5cyAke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzfSI+JHtNYXRoLmFicyh0aGlzLmNlcnRpZmljYXRlLmRheXNSZW1haW5pbmcpfTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LWRheXMtbGFiZWwiPiR7dGhpcy5jZXJ0aWZpY2F0ZS5kYXlzUmVtYWluaW5nPj0wPyJkYXlzIGxlZnQiOiJkYXlzIGFnbyJ9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPlZhbGlkIEZyb208L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+JHt0aGlzLmNlcnRpZmljYXRlLnZhbGlkRnJvbX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPlZhbGlkIFVudGlsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPiR7dGhpcy5jZXJ0aWZpY2F0ZS52YWxpZFVudGlsfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+QXV0by1SZW5ldzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlICR7dGhpcy5jZXJ0aWZpY2F0ZS5hdXRvUmVuZXc/ImVuYWJsZWQiOiIifSI+JHt0aGlzLmNlcnRpZmljYXRlLmF1dG9SZW5ldz8iRW5hYmxlZCI6IkRpc2FibGVkIn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlLmNoYWluJiZ0aGlzLmNlcnRpZmljYXRlLmNoYWluLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5DZXJ0aWZpY2F0ZSBDaGFpbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhaW4tbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlLmNoYWluLm1hcChNPT53YDxzcGFuIGNsYXNzPSJjaGFpbi1iYWRnZSI+JHtNfTwvc3Bhbj5gKX0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGNlcnRpZmljYXRlIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlbmV3Q2VydGlmaWNhdGUoKX0+UmVuZXc8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8IS0tIFByb3h5IFJvdXRlcyBTZWN0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTYgMyAyMSAzIDIxIDgiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iNCIgeTE9IjIwIiB4Mj0iMjEiIHkyPSIzIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMSAxNiAyMSAyMSAxNiAyMSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxNSIgeTE9IjE1IiB4Mj0iMjEiIHkyPSIyMSI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjQiIHkxPSI0IiB4Mj0iOSIgeTI9IjkiPjwvbGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBQcm94eSBSb3V0ZXMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7dGhpcy5kb21haW4ucHJveHlSb3V0ZXMmJnRoaXMuZG9tYWluLnByb3h5Um91dGVzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm91dGVzLWxpc3QiPgogICAgICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi5wcm94eVJvdXRlcy5tYXAoTT0+d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJvdXRlLWJhZGdlIj4ke019PC9zcGFuPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gcHJveHkgcm91dGVzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8IS0tIEROUyBSZWNvcmRzIFNlY3Rpb24gLS0+CiAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iZnVsbC13aWR0aCI+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjIiIHkxPSIxMiIgeDI9IjIyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAyYTE1LjMgMTUuMyAwIDAgMSA0IDEwIDE1LjMgMTUuMyAwIDAgMS00IDEwIDE1LjMgMTUuMyAwIDAgMS00LTEwIDE1LjMgMTUuMyAwIDAgMSA0LTEweiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIEROUyBSZWNvcmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAke3RoaXMuZG5zUmVjb3Jkcy5sZW5ndGg+MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRucy10YWJsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkbnMtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+VHlwZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+TmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+VmFsdWU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPlRUTDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke3RoaXMuZG5zUmVjb3Jkcy5tYXAoTT0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG5zLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy10eXBlIj4ke00udHlwZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy1uYW1lIj4ke00ubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy12YWx1ZSIgdGl0bGU9IiR7TS52YWx1ZX0iPiR7TS5wcmlvcml0eT9gJHtNLnByaW9yaXR5fSBgOiIifSR7TS52YWx1ZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy10dGwiPiR7TS50dGx9czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJFZGl0IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVFZGl0RG5zUmVjb3JkKE0pfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSA0SDRhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTguNSAyLjVhMi4xMjEgMi4xMjEgMCAwIDEgMyAzTDEyIDE1bC00IDEgMS00IDkuNS05LjV6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZURuc1JlY29yZChNKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzIDYgNSA2IDIxIDYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNm0zIDBWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIEROUyByZWNvcmRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFkZERuc1JlY29yZCgpfT4KICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIEFkZCBSZWNvcmQKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgPC9kaXY+CiAgICBgOndgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGRvbWFpbiBzZWxlY3RlZDwvZGl2PmB9aGFuZGxlVmVyaWZ5KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmVyaWZ5LWRvbWFpbiIse2RldGFpbDp0aGlzLmRvbWFpbixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1kb21haW4iLHtkZXRhaWw6dGhpcy5kb21haW4sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZW5ld0NlcnRpZmljYXRlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVuZXctY2VydGlmaWNhdGUiLHtkZXRhaWw6dGhpcy5jZXJ0aWZpY2F0ZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFkZERuc1JlY29yZCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFkZC1kbnMtcmVjb3JkIix7ZGV0YWlsOnRoaXMuZG9tYWluLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdERuc1JlY29yZChNKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0LWRucy1yZWNvcmQiLHtkZXRhaWw6TSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlbGV0ZURuc1JlY29yZChNKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUtZG5zLXJlY29yZCIse2RldGFpbDpNLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLCR1KHRoaXMsZil9c3RhdGljeyR1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB3USxEdSxKUWEsbjlhPWcoKCk9PntwZSgpO3dRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxEdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSlFhPSgoKT0+e2xldCBzPVtuZSgic3otbXRhLWxpc3QtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek10YUxpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtZKCldLGM9W1koKV0seD1bWSgpXSx3USh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVtYWlscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZW1haWxzImluIHosImhhcyIpLGdldDppKHo9PnouZW1haWxzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZW1haWxzPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSx3USh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWFyY2hRdWVyeSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouc2VhcmNoUXVlcnk9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHdRKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdGF0dXNGaWx0ZXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zdGF0dXNGaWx0ZXIsImdldCIpLHNldDppKCh6LE4pPT57ei5zdGF0dXNGaWx0ZXI9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLHdRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkaXJlY3Rpb25GaWx0ZXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5kaXJlY3Rpb25GaWx0ZXIsImdldCIpLHNldDppKCh6LE4pPT57ei5kaXJlY3Rpb25GaWx0ZXI9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLHdRKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1tdGEtbGlzdC12aWV3CiAgICAgICAgLmVtYWlscz0ke1t7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIixzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIn0se2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6Mjg6MTAiLG1lc3NhZ2VJZDoiPGRlZjQ1NkBzZXJ2ZS56b25lPiIsc2l6ZToiOC4yIEtCIn0se2lkOiIzIixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsdG86ImFkbWluQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IifSx7aWQ6IjQiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicmVqZWN0ZWQiLGZyb206ImJpbGxpbmdAc2VydmUuem9uZSIsdG86ImJsb2NrZWRAc3BhbS1kb21haW4udGVzdCIsc3ViamVjdDoiSW52b2ljZSAjMjAyNC0wMDEiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyMDo0NSIsbWVzc2FnZUlkOiI8amtsMDEyQHNlcnZlLnpvbmU+IixzaXplOiI0NS42IEtCIn0se2lkOiI1IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlZmVycmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJzbG93QHJlbW90ZS1zZXJ2ZXIudGVzdCIsc3ViamVjdDoiUGFzc3dvcmQgUmVzZXQgUmVxdWVzdCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjE1OjMwIixtZXNzYWdlSWQ6Ijxtbm8zNDVAc2VydmUuem9uZT4iLHNpemU6IjYuOCBLQiJ9LHtpZDoiNiIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToiY2lAZ2l0aHViLmNvbSIsdG86ImRldm9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJCdWlsZCAjNDUyMSBwYXNzZWQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxMDowMCIsbWVzc2FnZUlkOiI8cHFyNjc4QGdpdGh1Yi5jb20+IixzaXplOiIxNS4zIEtCIn0se2lkOiI3IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InBlbmRpbmciLGZyb206InJlcG9ydHNAc2VydmUuem9uZSIsdG86InRlYW1Ac2VydmUuem9uZSIsc3ViamVjdDoiV2Vla2x5IEluZnJhc3RydWN0dXJlIFJlcG9ydCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjA1OjAwIixtZXNzYWdlSWQ6IjxzdHU5MDFAc2VydmUuem9uZT4iLHNpemU6IjEwMi43IEtCIn1dfQogICAgICA+PC9zei1tdGEtbGlzdC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTVRBIl07I2U9RHUodGhpcyxvLFtdKTtnZXQgZW1haWxzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVtYWlscyhNKXt0aGlzLiNlPU19I3Q9KER1KHRoaXMsbCksRHUodGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KE0pe3RoaXMuI3Q9TX0jYT0oRHUodGhpcyx1KSxEdSh0aGlzLGIsImFsbCIpKTtnZXQgc3RhdHVzRmlsdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1c0ZpbHRlcihNKXt0aGlzLiNhPU19I3M9KER1KHRoaXMsdiksRHUodGhpcyxtLCJhbGwiKSk7Z2V0IGRpcmVjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNzfXNldCBkaXJlY3Rpb25GaWx0ZXIoTSl7dGhpcy4jcz1NfWdldCBmaWx0ZXJlZEVtYWlscygpe3JldHVybiB0aGlzLmVtYWlscy5maWx0ZXIoTT0+e2lmKHRoaXMuc3RhdHVzRmlsdGVyIT09ImFsbCImJk0uc3RhdHVzIT09dGhpcy5zdGF0dXNGaWx0ZXJ8fHRoaXMuZGlyZWN0aW9uRmlsdGVyIT09ImFsbCImJk0uZGlyZWN0aW9uIT09dGhpcy5kaXJlY3Rpb25GaWx0ZXIpcmV0dXJuITE7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IHo9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiBNLmZyb20udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KXx8TS50by50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHopfHxNLnN1YmplY3QudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KXx8TS5tZXNzYWdlSWQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KX1yZXR1cm4hMH0pfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuY2hpcC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmNoaXA6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2hpcC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucmVzdWx0cy1jb3VudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHggOTBweCAxLjVmciAxLjVmciAyZnIgMTQwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHggOTBweCAxLjVmciAxLjVmciAyZnIgMTQwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24taWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWljb24uaW5ib3VuZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1pY29uLm91dGJvdW5kIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlbGl2ZXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYm91bmNlZCwKICAgICAgLnN0YXR1cy1iYWRnZS5yZWplY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGVmZXJyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5lbWFpbC1mcm9tLAogICAgICAuZW1haWwtdG8gewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmVtYWlsLXN1YmplY3QgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZW1haWwtdGltZXN0YW1wIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IE09dGhpcy5maWx0ZXJlZEVtYWlscztyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWJhciI+CiAgICAgICAgPGlucHV0CiAgICAgICAgICBjbGFzcz0ic2VhcmNoLWlucHV0IgogICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYnkgZnJvbSwgdG8sIHN1YmplY3QsIG9yIG1lc3NhZ2UgSUQuLi4iCiAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgQGlucHV0PSR7ej0+e3RoaXMuc2VhcmNoUXVlcnk9ei50YXJnZXQudmFsdWV9fQogICAgICAgIC8+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiaW5ib3VuZCIsIm91dGJvdW5kIl0ubWFwKHo9PndgCiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuZGlyZWN0aW9uRmlsdGVyPT09ej8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmRpcmVjdGlvbkZpbHRlcj16fX0KICAgICAgICAgICAgPiR7ej09PSJhbGwiPyJBbGwiOno9PT0iaW5ib3VuZCI/IkluYm91bmQiOiJPdXRib3VuZCJ9PC9idXR0b24+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwLWdyb3VwIj4KICAgICAgICAgICR7WyJhbGwiLCJkZWxpdmVyZWQiLCJib3VuY2VkIiwicmVqZWN0ZWQiLCJkZWZlcnJlZCIsInBlbmRpbmciXS5tYXAoej0+d2AKICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5zdGF0dXNGaWx0ZXI9PT16PyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3RoaXMuc3RhdHVzRmlsdGVyPXp9fQogICAgICAgICAgICA+JHt6PT09ImFsbCI/IkFsbCI6ei5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt6LnNsaWNlKDEpfTwvYnV0dG9uPgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icmVzdWx0cy1jb3VudCI+U2hvd2luZyAke00ubGVuZ3RofSBvZiAke3RoaXMuZW1haWxzLmxlbmd0aH0gZW1haWxzPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5Gcm9tPC9zcGFuPgogICAgICAgICAgPHNwYW4+VG88L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TdWJqZWN0PC9zcGFuPgogICAgICAgICAgPHNwYW4+VGltZXN0YW1wPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7TS5sZW5ndGg+MD9NLm1hcCh6PT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVFbWFpbENsaWNrKHopfT4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpcmVjdGlvbi1pY29uICR7ei5kaXJlY3Rpb259Ij4KICAgICAgICAgICAgICAke3ouZGlyZWN0aW9uPT09ImluYm91bmQiP3dgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48cG9seWxpbmUgcG9pbnRzPSIxOSAxMiAxMiAxOSA1IDEyIi8+PC9zdmc+YDp3YDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSIxMiIgeTE9IjE5IiB4Mj0iMTIiIHkyPSI1Ii8+PHBvbHlsaW5lIHBvaW50cz0iNSAxMiAxMiA1IDE5IDEyIi8+PC9zdmc+YH0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7ei5zdGF0dXN9Ij4ke3ouc3RhdHVzfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC1mcm9tIiB0aXRsZT0iJHt6LmZyb219Ij4ke3ouZnJvbX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC10byIgdGl0bGU9IiR7ei50b30iPiR7ei50b308L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC1zdWJqZWN0IiB0aXRsZT0iJHt6LnN1YmplY3R9Ij4ke3ouc3ViamVjdH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbWFpbC10aW1lc3RhbXAiPiR7ei50aW1lc3RhbXB9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBlbWFpbHMgZm91bmQ8L2Rpdj4KICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlRW1haWxDbGljayhNKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlbWFpbC1jbGljayIse2RldGFpbDpNLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLER1KHRoaXMsZil9c3RhdGlje0R1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBsOWEsdm90LGVKYSxjOWE9ZygoKT0+e3BlKCk7bDlhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2b3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGVKYT0oKCk9PntsZXQgcz1bbmUoInN6LW10YS1kZXRhaWwtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTek10YURldGFpbFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxsOWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbWFpbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZW1haWwiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5lbWFpbCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmVtYWlsPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxsOWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LW10YS1kZXRhaWwtdmlldwogICAgICAgIC5lbWFpbD0ke3tpZDoiMSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InVzZXJAZXhhbXBsZS5jb20iLHRvTGlzdDpbInVzZXJAZXhhbXBsZS5jb20iXSxzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIixzbXRwTG9nOlt7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtU1RBUlRUTFMiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIFNJWkUgNTI0Mjg4MDAiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiU1RBUlRUTFMifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMCBSZWFkeSB0byBzdGFydCBUTFMiLHJlc3BvbnNlQ29kZToyMjB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLnNlcnZlLnpvbmUifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLmV4YW1wbGUuY29tIEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1BVVRIIFBMQUlOIExPR0lOIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkFVVEggUExBSU4gQUhWelpYSUFjR0Z6YzNkdmNtUT0ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIzNSAyLjcuMCBBdXRoZW50aWNhdGlvbiBzdWNjZXNzZnVsIixyZXNwb25zZUNvZGU6MjM1fSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8bm9yZXBseUBzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlJDUFQgVE86PHVzZXJAZXhhbXBsZS5jb20+In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgQWNjZXB0ZWQiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiREFUQSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDonMzU0IEVudGVyIG1lc3NhZ2UsIGVuZGluZyB3aXRoICIuIiBvbiBhIGxpbmUgYnkgaXRzZWxmJyxyZXNwb25zZUNvZGU6MzU0fSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ii4ifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyBpZD0xcFEyclMtMDAwM0FiLUM0IixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlFVSVQifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMSBtYWlsLmV4YW1wbGUuY29tIGNsb3NpbmcgY29ubmVjdGlvbiIscmVzcG9uc2VDb2RlOjIyMX1dLGNvbm5lY3Rpb25JbmZvOntzb3VyY2VJcDoiMTAuMC4xLjUwIixzb3VyY2VIb3N0bmFtZToibWFpbC5zZXJ2ZS56b25lIixkZXN0aW5hdGlvbklwOiI5My4xODQuMjE2LjM0IixkZXN0aW5hdGlvblBvcnQ6MjUsdGxzVmVyc2lvbjoiVExTdjEuMyIsdGxzQ2lwaGVyOiJUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IixhdXRoZW50aWNhdGVkOiEwLGF1dGhNZXRob2Q6IlBMQUlOIixhdXRoVXNlcjoibm9yZXBseUBzZXJ2ZS56b25lIn0sYXV0aGVudGljYXRpb25SZXN1bHRzOntzcGY6InBhc3MiLHNwZkRvbWFpbjoic2VydmUuem9uZSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoic2VydmUuem9uZSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJyZWplY3QifSxoZWFkZXJzOntGcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLFRvOiJ1c2VyQGV4YW1wbGUuY29tIixTdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6MzA6MjIgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgifSxib2R5Oic8aHRtbD5cXG48aGVhZD48dGl0bGU+V2VsY29tZTwvdGl0bGU+PC9oZWFkPlxcbjxib2R5PlxcbiAgPGgxPldlbGNvbWUgdG8gc2VydmUuem9uZSE8L2gxPlxcbiAgPHA+WW91ciBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LjwvcD5cXG4gIDxhIGhyZWY9Imh0dHBzOi8vc2VydmUuem9uZS9kYXNoYm9hcmQiPkdvIHRvIERhc2hib2FyZDwvYT5cXG48L2JvZHk+XFxuPC9odG1sPid9fQogICAgICA+PC9zei1tdGEtZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJNVEEiXTsjZT12b3QodGhpcyxvLG51bGwpO2dldCBlbWFpbCgpe3JldHVybiB0aGlzLiNlfXNldCBlbWFpbChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuYmFjay1saW5rIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYmFjay1saW5rOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZW1haWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5lbWFpbC1zdWJqZWN0IHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmJhZGdlLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kZWxpdmVyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmJvdW5jZWQsCiAgICAgIC5zdGF0dXMtYmFkZ2UucmVqZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlZmVycmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1iYWRnZS5pbmJvdW5kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1iYWRnZS5vdXRib3VuZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuc2lkZWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmNhcmQtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmNhcmQtdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmRldGFpbC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLnNtdHAtbG9nLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zbXRwLWxvZy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAuc210cC1sb2ctY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zbXRwLWxvZy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBQaGFzZSBzZXBhcmF0b3JzICovCiAgICAgIC5zbXRwLXBoYXNlLXNlcGFyYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuc210cC1waGFzZS1saW5lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnNtdHAtcGhhc2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLyogQ2hhdCBidWJibGVzICovCiAgICAgIC5zbXRwLWJ1YmJsZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgICBtYXgtd2lkdGg6IDcwJTsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLmNsaWVudCB7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLnNlcnZlciB7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMDYpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xMCkiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjNGFkZTgwIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICB9CgogICAgICAuc210cC1idWJibGUtY29tbWFuZCB7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc210cC1idWJibGUtbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLnNlcnZlciAuc210cC1idWJibGUtbWV0YSB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLXRhZyB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi10YWcuY2xpZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tdGFnLnNlcnZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzRhZGU4MCIpfTsKICAgICAgfQoKICAgICAgLyogUmVzcG9uc2UgY29kZSBiYWRnZXMgKi8KICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAxcHggN3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS0yeHggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjE1KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlLmNvZGUtM3h4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlLmNvZGUtNHh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTAsIDIwNCwgMjEsIDAuMTUpIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlLmNvZGUtNXh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xNSkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjI1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAvKiBTTVRQIG1ldGFkYXRhIGJhbm5lciDigJQgc2l0cyBpbnNpZGUgY29udGVudCwgYWJvdmUgdGhlIGxvZyAqLwogICAgICAuc210cC1oZWFkZXItc3VidGl0bGUgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4OwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tYmFkZ2UuaW5ib3VuZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMTIpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tYmFkZ2Uub3V0Ym91bmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZW1haWwtYm9keS1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGxzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYXV0aC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5hdXRoLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYXV0aC1kb21haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5hdXRoLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYXV0aC1iYWRnZS5wYXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtYmFkZ2UuZmFpbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLWJhZGdlLnNvZnRmYWlsLAogICAgICAuYXV0aC1iYWRnZS5uZXV0cmFsLAogICAgICAuYXV0aC1iYWRnZS5ub25lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5yZWplY3Rpb24tY2FyZDo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWNhY2EiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAucmVqZWN0aW9uLWNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAucmVqZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYyZjIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5MWIxYiIsIiNmY2E1YTUiKX07CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tdGV4dDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAubm8tZW1haWwgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMuZW1haWwpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibm8tZW1haWwiPk5vIGVtYWlsIHNlbGVjdGVkPC9kaXY+YDtsZXQgZD10aGlzLmVtYWlsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImJhY2stbGluayIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQmFjaygpfT4KICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiPjwvcG9seWxpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEJhY2sgdG8gRW1haWxzCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZW1haWwtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9ImVtYWlsLXN1YmplY3QiPiR7ZC5zdWJqZWN0fTwvaDE+CiAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtZ3JvdXAiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke2Quc3RhdHVzfSI+JHtkLnN0YXR1c308L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlyZWN0aW9uLWJhZGdlICR7ZC5kaXJlY3Rpb259Ij4ke2QuZGlyZWN0aW9ufTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPgogICAgICAgICAgPCEtLSBFbWFpbCBNZXRhZGF0YSAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+RW1haWwgTWV0YWRhdGE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1saXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RnJvbTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmZyb219PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlRvPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QudG9MaXN0LmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke2QuY2MmJmQuY2MubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNDPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jYy5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5TdWJqZWN0PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2Quc3ViamVjdH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RGF0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+TWVzc2FnZSBJRDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLm1lc3NhZ2VJZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+U2l6ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLnNpemV9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPCEtLSBTTVRQIFRyYW5zYWN0aW9uIExvZyAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+U01UUCBUcmFuc2FjdGlvbiBMb2c8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic210cC1kaXJlY3Rpb24tYmFkZ2UgJHtkLmRpcmVjdGlvbn0iPiR7ZC5kaXJlY3Rpb259PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1oZWFkZXItc3VidGl0bGUiPgogICAgICAgICAgICAgICR7ZC5kaXJlY3Rpb249PT0ib3V0Ym91bmQiP2Ake2QuY29ubmVjdGlvbkluZm8uc291cmNlSG9zdG5hbWV9IFx1MjE5MiAke2QuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25JcH06JHtkLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uUG9ydH1gOmAke2QuY29ubmVjdGlvbkluZm8uc291cmNlSXB9IFx1MjE5MiAke2QuY29ubmVjdGlvbkluZm8uc291cmNlSG9zdG5hbWV9OiR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvblBvcnR9YH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJTbXRwTG9nKGQpfQogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY29weVNtdHBMb2coKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIENvcHkgTG9nCiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPCEtLSBFbWFpbCBCb2R5IC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5FbWFpbCBCb2R5IChFc2NhcGVkKTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5SYXcgY29udGVudCDigJQgSFRNTCBpcyBub3QgcmVuZGVyZWQ8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cHJlIGNsYXNzPSJlbWFpbC1ib2R5LWNvbnRhaW5lciI+JHtkLmJvZHl9PC9wcmU+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciI+CiAgICAgICAgICA8IS0tIENvbm5lY3Rpb24gSW5mbyAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+Q29ubmVjdGlvbiBJbmZvPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlNvdXJjZSBJUDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLnNvdXJjZUlwfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Tb3VyY2UgSG9zdG5hbWU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VIb3N0bmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RGVzdGluYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvbklwfToke2QuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25Qb3J0fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5UTFM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPgogICAgICAgICAgICAgICAgICAgICR7ZC5jb25uZWN0aW9uSW5mby50bHNWZXJzaW9uP3dgPHNwYW4gY2xhc3M9InRscy1iYWRnZSI+JHtkLmNvbm5lY3Rpb25JbmZvLnRsc1ZlcnNpb259PC9zcGFuPmA6Ik5vbmUifQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7ZC5jb25uZWN0aW9uSW5mby50bHNDaXBoZXI/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkNpcGhlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8udGxzQ2lwaGVyfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5BdXRoZW50aWNhdGVkPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8uYXV0aGVudGljYXRlZD8iWWVzIjoiTm8ifTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtkLmNvbm5lY3Rpb25JbmZvLmF1dGhlbnRpY2F0ZWQ/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkF1dGggTWV0aG9kPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5hdXRoTWV0aG9kfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5BdXRoIFVzZXI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLmF1dGhVc2VyfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDwhLS0gQXV0aGVudGljYXRpb24gUmVzdWx0cyAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+QXV0aGVudGljYXRpb24gUmVzdWx0czwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0aC1yb3ciPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtbGFiZWwiPlNQRjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtZG9tYWluIj4ke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLnNwZkRvbWFpbn08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWJhZGdlICR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuc3BmfSI+JHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5zcGZ9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dGgtcm93Ij4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWxhYmVsIj5ES0lNPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1kb21haW4iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZGtpbURvbWFpbn08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWJhZGdlICR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZGtpbX0iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZGtpbX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0aC1yb3ciPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtbGFiZWwiPkRNQVJDPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1kb21haW4iPnBvbGljeTogJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5kbWFyY1BvbGljeX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWJhZGdlICR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZG1hcmN9Ij4ke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLmRtYXJjfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8IS0tIFJlamVjdGlvbiBEZXRhaWxzIChjb25kaXRpb25hbCkgLS0+CiAgICAgICAgICAke2Quc3RhdHVzPT09InJlamVjdGVkInx8ZC5zdGF0dXM9PT0iYm91bmNlZCI/d2AKICAgICAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0icmVqZWN0aW9uLWNhcmQiPgogICAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPlJlamVjdGlvbiBEZXRhaWxzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7ZC5yZWplY3Rpb25SZWFzb24/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLWxhYmVsIj5SZWplY3Rpb24gUmVhc29uPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlamVjdGlvbi10ZXh0Ij4ke2QucmVqZWN0aW9uUmVhc29ufTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7ZC5ib3VuY2VNZXNzYWdlP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlamVjdGlvbi1sYWJlbCI+Qm91bmNlIE1lc3NhZ2U8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLXRleHQiPiR7ZC5ib3VuY2VNZXNzYWdlfTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Z2V0UmVzcG9uc2VDb2RlQmFkZ2VDbGFzcyhkKXtyZXR1cm4gZD49NTAwPyJjb2RlLTV4eCI6ZD49NDAwPyJjb2RlLTR4eCI6ZD49MzAwPyJjb2RlLTN4eCI6ImNvZGUtMnh4In1nZXRTbXRwUGhhc2VzKGQpe2xldCB1PVtdLGM9IiIsYj0wO2ZvcihsZXQgdiBvZiBkKXtsZXQgeD12LmNvbW1hbmQudG9VcHBlckNhc2UoKSxtPWM7aWYodi5kaXJlY3Rpb249PT0iY2xpZW50IiYmKHguc3RhcnRzV2l0aCgiRUhMTyIpfHx4LnN0YXJ0c1dpdGgoIkhFTE8iKT8oYisrLGI9PT0xP209ImNvbm5lY3Rpb24iOm09InBvc3QtdGxzIik6eD09PSJTVEFSVFRMUyI/bT0idGxzIjp4LnN0YXJ0c1dpdGgoIkFVVEgiKT9tPSJhdXRoIjp4LnN0YXJ0c1dpdGgoIk1BSUwgRlJPTSIpfHx4LnN0YXJ0c1dpdGgoIlJDUFQgVE8iKXx8eD09PSJEQVRBInx8eD09PSIuIj9tPSJ0cmFuc2ZlciI6eD09PSJRVUlUIiYmKG09ImNsb3NpbmciKSksdi5kaXJlY3Rpb249PT0ic2VydmVyIiYmbT09PSIiJiYobT1jfHwiY29ubmVjdGlvbiIpLG09PT0iIiYmKG09ImNvbm5lY3Rpb24iKSxtIT09Yyl7Yz1tO2xldCBmPXtjb25uZWN0aW9uOiJDb25uZWN0aW9uIix0bHM6IlRMUyBOZWdvdGlhdGlvbiIsInBvc3QtdGxzIjoiUG9zdC1UTFMgSGFuZHNoYWtlIixhdXRoOiJBdXRoZW50aWNhdGlvbiIsdHJhbnNmZXI6Ik1haWwgVHJhbnNmZXIiLGNsb3Npbmc6IkNsb3NpbmcifTt1LnB1c2goe3BoYXNlOm0sbGFiZWw6ZlttXXx8bSxlbnRyaWVzOltdfSl9dS5sZW5ndGg9PT0wJiZ1LnB1c2goe3BoYXNlOiJjb25uZWN0aW9uIixsYWJlbDoiQ29ubmVjdGlvbiIsZW50cmllczpbXX0pLHVbdS5sZW5ndGgtMV0uZW50cmllcy5wdXNoKHYpfXJldHVybiB1fXJlbmRlclNtdHBMb2coZCl7bGV0IHU9dGhpcy5nZXRTbXRwUGhhc2VzKGQuc210cExvZyk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InNtdHAtbG9nLWNvbnRhaW5lciI+CiAgICAgICAgJHt1Lm1hcChjPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1waGFzZS1zZXBhcmF0b3IiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLXBoYXNlLWxpbmUiPjwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic210cC1waGFzZS1sYWJlbCI+JHtjLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1waGFzZS1saW5lIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtjLmVudHJpZXMubWFwKGI9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtYnViYmxlICR7Yi5kaXJlY3Rpb259Ij4KICAgICAgICAgICAgICAke2IuZGlyZWN0aW9uPT09InNlcnZlciImJmIucmVzcG9uc2VDb2RlP3dgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVzcG9uc2UtY29kZS1iYWRnZSAke3RoaXMuZ2V0UmVzcG9uc2VDb2RlQmFkZ2VDbGFzcyhiLnJlc3BvbnNlQ29kZSl9Ij4ke2IucmVzcG9uc2VDb2RlfTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtYnViYmxlLWNvbW1hbmQiPiR7Yi5jb21tYW5kfTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtYnViYmxlLW1ldGEiPgogICAgICAgICAgICAgICAgPHNwYW4+JHtiLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj7Ctzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbXRwLWRpcmVjdGlvbi10YWcgJHtiLmRpcmVjdGlvbn0iPiR7Yi5kaXJlY3Rpb249PT0iY2xpZW50Ij8iQ2xpZW50IjoiU2VydmVyIn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1jb3B5U210cExvZygpe2lmKCF0aGlzLmVtYWlsKXJldHVybjtsZXQgZD10aGlzLmVtYWlsLnNtdHBMb2cubWFwKHU9PmBbJHt1LnRpbWVzdGFtcH1dICR7dS5kaXJlY3Rpb249PT0iY2xpZW50Ij8iQzoiOiJTOiJ9ICR7dS5jb21tYW5kfWApLmpvaW4oYApgKTtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChkKX1oYW5kbGVCYWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmFjayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHZvdCh0aGlzLGwpfXN0YXRpY3t2b3QoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7ZnVuY3Rpb24gdEphKHMpe3JldHVybiB0eXBlb2Ygcz09Im51bWJlciI/U3RyaW5nKHMpOkFycmF5LmlzQXJyYXkocyk/cy5tYXAoZT0+dHlwZW9mIGU9PSJudW1iZXIiP1N0cmluZyhlKTpgJHtlLmZyb219XHUyMDEzJHtlLnRvfWApLmpvaW4oIiwgIik6U3RyaW5nKHMpfWZ1bmN0aW9uIGFKYShzKXtsZXQgZT1bXTtmb3IobGV0IHQgb2Ygcyl7bGV0IGE9QXJyYXkuaXNBcnJheSh0Lmhvc3QpP3QuaG9zdDpbdC5ob3N0XSxyPXQucG9ydD09PSJwcmVzZXJ2ZSI/IihwcmVzZXJ2ZSkiOlN0cmluZyh0LnBvcnQpO2ZvcihsZXQgbiBvZiBhKWUucHVzaChgJHtufToke3J9YCl9cmV0dXJuIGV9dmFyIHhvdCxrUSxzSmEsZDlhPWcoKCk9PntwZSgpO3hvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sa1E9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9O2kodEphLCJmb3JtYXRQb3J0cyIpO2koYUphLCJmb3JtYXRUYXJnZXRzIik7c0phPSgoKT0+e2xldCBzPVtuZSgic3otcm91dGUtY2FyZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelJvdXRlQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSx4b3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icm91dGUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5yb3V0ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnJvdXRlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx4b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2hvd0FjdGlvbnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zaG93QWN0aW9ucywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnNob3dBY3Rpb25zPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx4b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA1MjBweDsiPgogICAgICA8c3otcm91dGUtY2FyZAogICAgICAgIC5yb3V0ZT0ke3tuYW1lOiJBUEkgR2F0ZXdheSIsZGVzY3JpcHRpb246Ik1haW4gQVBJIGdhdGV3YXkgd2l0aCBUTFMgdGVybWluYXRpb24gYW5kIGxvYWQgYmFsYW5jaW5nIixlbmFibGVkOiEwLHByaW9yaXR5OjEwLHRhZ3M6WyJ3ZWIiLCJhcGkiLCJwcm9kdWN0aW9uIl0sbWF0Y2g6e3BvcnRzOls0NDMsODQ0M10sZG9tYWluczpbImFwaS5leGFtcGxlLmNvbSIsIiouYXBpLnNlcnZlLnpvbmUiXSxwYXRoOiIvYXBpLyoiLHByb3RvY29sOiJodHRwIixjbGllbnRJcDpbIjEwLjAuMC4wLzgiXX0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDpbIjEwLjAuMC4xIiwiMTAuMC4wLjIiXSxwb3J0OjgwODB9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifSx3ZWJzb2NrZXQ6e2VuYWJsZWQ6ITB9LGxvYWRCYWxhbmNpbmc6e2FsZ29yaXRobToicm91bmQtcm9iaW4ifSxmb3J3YXJkaW5nRW5naW5lOiJuZnRhYmxlcyJ9LHNlY3VyaXR5OntpcEFsbG93TGlzdDpbIjEwLjAuMC4wLzgiXSxpcEJsb2NrTGlzdDpbIjE5Mi4xNjguMTAwLjAvMjQiXSxyYXRlTGltaXQ6e2VuYWJsZWQ6ITAsbWF4UmVxdWVzdHM6MTAwLHdpbmRvdzo2MH0sbWF4Q29ubmVjdGlvbnM6MWUzfSx2cG5Pbmx5OiEwLG1ldGFkYXRhOntzb3VyY2VQcm9maWxlTmFtZToiU1RBTkRBUkQiLG5ldHdvcmtUYXJnZXROYW1lOiJMT1NTTEVTU19JTkZSQSJ9fX0KICAgICAgPjwvc3otcm91dGUtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlJvdXRlcyJdOyNlPWtRKHRoaXMsbyxudWxsKTtnZXQgcm91dGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcm91dGUoYil7dGhpcy4jZT1ifSN0PShrUSh0aGlzLGwpLGtRKHRoaXMsZCwhMSkpO2dldCBzaG93QWN0aW9ucygpe3JldHVybiB0aGlzLiN0fXNldCBzaG93QWN0aW9ucyhiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjA2KSIsInJnYmEoMCwwLDAsMC4yKSIpfTsKICAgICAgfQoKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlci1sZWZ0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QuZW5hYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggJHtoLmJkVGhlbWUoInJnYmEoMzQsMTk3LDk0LDAuNCkiLCJyZ2JhKDM0LDE5Nyw5NCwwLjMpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAucm91dGUtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmhlYWRlci1iYWRnZXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYmFkZ2UuZm9yd2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uuc29ja2V0LWhhbmRsZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWRlOWZlIiwicmdiYSgxMzksIDkyLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVuYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYmFkZ2UuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWJvZHkgewogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLm1ldGEtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGFncyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM1MjUyNWIiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAucHJpb3JpdHkgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC8qIFNlY3Rpb25zICovCiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNnB4IDZweCAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzEwMTAxMCIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb246bGFzdC1vZi10eXBlIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi5tYXRjaCB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24uYWN0aW9uIHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi5zZWN1cml0eSB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZjU5ZTBiIiwiI2Y1OWUwYiIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24ubGlua2VkIHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHtoLmJkVGhlbWUoIiM4YjVjZjYiLCIjOGI1Y2Y2Iil9OwogICAgICB9CgogICAgICAubGlua2VkLW5hbWUgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZGU5ZmUiLCJyZ2JhKDEzOSwgOTIsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmQyOGQ5IiwiI2E3OGJmYSIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmZpZWxkLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5maWVsZC1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmZpZWxkLWtleSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtaW4td2lkdGg6IDY0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmZpZWxkLXZhbHVlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZTRlNGU3Iil9OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmRvbWFpbi1jaGlwIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRvbWFpbi1jaGlwLmdsb2IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmM2M3IiwicmdiYSgyNDUsIDE1OCwgMTEsIDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkyNDAwZSIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC5tb25vIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnByb3RvY29sLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnByb3RvY29sLWJhZGdlLmh0dHAgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnByb3RvY29sLWJhZGdlLnRjcCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudGxzLWJhZGdlLmF1dG8gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAudGxzLWJhZGdlLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmVkZDUiLCJyZ2JhKDI0OSwgMTE1LCAyMiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjMjQxMGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuZW5naW5lLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZThmZiIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdlMjJjZSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItcGFpciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICAvKiBGZWF0dXJlIGljb25zICovCiAgICAgIC5mZWF0dXJlcy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNHB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxYTFhMWEiKX07CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubm8tcm91dGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuc2VjdGlvbi52cG4gewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke2guYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgIH0KCiAgICAgIC52cG4tYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnZwbi1iYWRnZS5tYW5kYXRvcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmN2VkIiwicmdiYSgyNDksIDExNSwgMjIsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYzI0MTBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQoKICAgICAgLnZwbi1iYWRnZS5vcHRpb25hbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlY2ZkZjUiLCJyZ2JhKDE2LCAxODUsIDEyOSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwNDc4NTciLCIjMzRkMzk5Iil9OwogICAgICB9CgogICAgICAudnBuLXRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlY2ZlZmYiLCJyZ2JhKDYsIDE4MiwgMjEyLCAwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwZTc0OTAiLCIjMjJkM2VlIil9OwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5lZGl0OmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMucm91dGUpcmV0dXJuIHdgCiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+PGRpdiBjbGFzcz0ibm8tcm91dGUiPk5vIHJvdXRlIGRhdGE8L2Rpdj48L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgYDtsZXQgYj10aGlzLnJvdXRlLHY9Yi5lbmFibGVkIT09ITEseD1iLm1hdGNoLG09Yi5hY3Rpb24sZj1iLnNlY3VyaXR5O3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDwhLS0gSGVhZGVyIC0tPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1sZWZ0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QgJHt2PyJlbmFibGVkIjoiZGlzYWJsZWQifSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icm91dGUtbmFtZSI+JHtiLm5hbWV8fGIuaWR8fCJVbm5hbWVkIFJvdXRlIn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1iYWRnZXMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHttLnR5cGV9Ij4ke20udHlwZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3Y/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9Ij4ke3Y/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+CiAgICAgICAgICAke2IuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JHtiLmRlc2NyaXB0aW9ufTwvZGl2PmA6IiJ9CgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0YS1yb3ciPgogICAgICAgICAgICAke2IudGFncyYmYi50YWdzLmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0idGFncyI+JHtiLnRhZ3MubWFwKHk9PndgPHNwYW4gY2xhc3M9InRhZyI+JHt5fTwvc3Bhbj5gKX08L2Rpdj5gOndgPGRpdj48L2Rpdj5gfQogICAgICAgICAgICAke2IucHJpb3JpdHkhPW51bGw/d2A8c3BhbiBjbGFzcz0icHJpb3JpdHkiPlByaW9yaXR5OiAke2IucHJpb3JpdHl9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8IS0tIE1hdGNoIFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiBtYXRjaCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5NYXRjaDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UG9ydHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke3RKYSh4LnBvcnRzKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7eC5kb21haW5zP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Eb21haW5zPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7dGhpcy5yZW5kZXJEb21haW5zKHguZG9tYWlucyl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7eC5wYXRoP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5QYXRoPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHt4LnBhdGh9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7eC5wcm90b2NvbD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UHJvdG9jb2w8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb3RvY29sLWJhZGdlICR7eC5wcm90b2NvbH0iPiR7eC5wcm90b2NvbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3guY2xpZW50SXAmJnguY2xpZW50SXAubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkNsaWVudDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7eC5jbGllbnRJcC5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3gudGxzVmVyc2lvbiYmeC50bHNWZXJzaW9uLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5UTFMgVmVyPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7eC50bHNWZXJzaW9uLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7eC5oZWFkZXJzP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5IZWFkZXJzPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPgogICAgICAgICAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMoeC5oZWFkZXJzKS5tYXAoKFt5LE1dKT0+d2A8c3BhbiBjbGFzcz0iaGVhZGVyLXBhaXIiPiR7eX09JHtNfTwvc3Bhbj4gYCl9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gQWN0aW9uIFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiBhY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+QWN0aW9uPC9kaXY+CiAgICAgICAgICAke20udGFyZ2V0cyYmbS50YXJnZXRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5UYXJnZXRzPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHthSmEobS50YXJnZXRzKS5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke20udGxzP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5UTFM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHttLnRscy5tb2RlfQogICAgICAgICAgICAgICAgICAgICR7bS50bHMuY2VydGlmaWNhdGU/bS50bHMuY2VydGlmaWNhdGU9PT0iYXV0byI/d2AgPHNwYW4gY2xhc3M9InRscy1iYWRnZSBhdXRvIj5hdXRvIGNlcnQ8L3NwYW4+YDp3YCA8c3BhbiBjbGFzcz0idGxzLWJhZGdlIGN1c3RvbSI+Y3VzdG9tIGNlcnQ8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7bS5mb3J3YXJkaW5nRW5naW5lP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5FbmdpbmU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+PHNwYW4gY2xhc3M9ImVuZ2luZS1iYWRnZSI+JHttLmZvcndhcmRpbmdFbmdpbmV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke20ubG9hZEJhbGFuY2luZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+TEI8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHttLmxvYWRCYWxhbmNpbmcuYWxnb3JpdGhtfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke20ud2Vic29ja2V0Py5lbmFibGVkP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5XUzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj48c3BhbiBjbGFzcz0iYmFkZ2UgZW5hYmxlZCI+ZW5hYmxlZDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFNlY3VyaXR5IFNlY3Rpb24gLS0+CiAgICAgICAgJHtmP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiBzZWN1cml0eSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5TZWN1cml0eTwvZGl2PgogICAgICAgICAgICAgICAgJHtmLmlwQWxsb3dMaXN0JiZmLmlwQWxsb3dMaXN0Lmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5BbGxvdzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7Zi5pcEFsbG93TGlzdC5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAke2YuaXBCbG9ja0xpc3QmJmYuaXBCbG9ja0xpc3QubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkJsb2NrPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHtmLmlwQmxvY2tMaXN0LmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7Zi5yYXRlTGltaXQ/LmVuYWJsZWQ/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlJhdGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHtmLnJhdGVMaW1pdC5tYXhSZXF1ZXN0c30gcmVxIC8gJHtmLnJhdGVMaW1pdC53aW5kb3d9czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAke2YubWF4Q29ubmVjdGlvbnM/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPk1heCBDb25uPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7Zi5tYXhDb25uZWN0aW9uc308L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gVlBOIFNlY3Rpb24gLS0+CiAgICAgICAgICAke3RoaXMucmVuZGVyVnBuKCl9CgogICAgICAgICAgPCEtLSBMaW5rZWQgUmVmZXJlbmNlcyBTZWN0aW9uIC0tPgogICAgICAgICAgJHt0aGlzLnJlbmRlckxpbmtlZCgpfQoKICAgICAgICAgIDwhLS0gRmVhdHVyZSBJY29ucyBSb3cgLS0+CiAgICAgICAgICAke3RoaXMucmVuZGVyRmVhdHVyZXMoKX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBBY3Rpb24gQnV0dG9ucyAtLT4KICAgICAgICAke3RoaXMuc2hvd0FjdGlvbnM/d2AKICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBlZGl0IiBAY2xpY2s9JHt5PT57eS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3V0ZS1lZGl0Iix7ZGV0YWlsOnRoaXMucm91dGUsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PkVkaXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHt5PT57eS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3V0ZS1kZWxldGUiLHtkZXRhaWw6dGhpcy5yb3V0ZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyRG9tYWlucyhiKXtsZXQgdj1BcnJheS5pc0FycmF5KGIpP2I6W2JdO3JldHVybiB3YCR7di5tYXAoeD0+d2A8c3BhbiBjbGFzcz0iZG9tYWluLWNoaXAgJHt4LmluY2x1ZGVzKCIqIik/Imdsb2IiOiIifSI+JHt4fTwvc3Bhbj5gKX1gfXJlbmRlclZwbigpe3JldHVybiB0aGlzLnJvdXRlPy52cG5Pbmx5P3dgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24gdnBuIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5WUE4gQWNjZXNzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPk1vZGU8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idnBuLWJhZGdlIG1hbmRhdG9yeSI+VlBOIE9ubHk8L3NwYW4+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYDp3YGB9cmVuZGVyTGlua2VkKCl7bGV0IGI9dGhpcy5yb3V0ZT8ubWV0YWRhdGE7aWYoIWIpcmV0dXJuIHdgYDtsZXQgdj0hIWIuc291cmNlUHJvZmlsZU5hbWUseD0hIWIubmV0d29ya1RhcmdldE5hbWU7cmV0dXJuIXYmJiF4P3dgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIGxpbmtlZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TGlua2VkPC9kaXY+CiAgICAgICAgJHt2P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlByb2ZpbGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPjxzcGFuIGNsYXNzPSJsaW5rZWQtbmFtZSI+JHtiLnNvdXJjZVByb2ZpbGVOYW1lfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgJHt4P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRhcmdldDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+PHNwYW4gY2xhc3M9ImxpbmtlZC1uYW1lIj4ke2IubmV0d29ya1RhcmdldE5hbWV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZlYXR1cmVzKCl7aWYoIXRoaXMucm91dGUpcmV0dXJuIHdgYDtsZXQgYj1bXSx2PXRoaXMucm91dGUuYWN0aW9uLHg9dGhpcy5yb3V0ZS5zZWN1cml0eSxtPXRoaXMucm91dGUuaGVhZGVycyxmPXRoaXMucm91dGUubWV0YWRhdGE7cmV0dXJuIHYudGxzJiZiLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MWY1MTI7PC9zcGFuPlRMUzwvc3Bhbj5gKSx2LndlYnNvY2tldD8uZW5hYmxlZCYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDIxOTQ7PC9zcGFuPldTPC9zcGFuPmApLHYubG9hZEJhbGFuY2luZyYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDI2OTY7PC9zcGFuPkxCPC9zcGFuPmApLHgmJmIucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gxZjZlMTs8L3NwYW4+U2VjdXJpdHk8L3NwYW4+YCksbSYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDI2OTk7PC9zcGFuPkhlYWRlcnM8L3NwYW4+YCksdGhpcy5yb3V0ZT8udnBuT25seSYmYi5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDFmNTEwOzwvc3Bhbj5WUE48L3NwYW4+YCksKGY/LnNvdXJjZVByb2ZpbGVOYW1lfHxmPy5uZXR3b3JrVGFyZ2V0TmFtZSkmJmIucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gxZjUxNzs8L3NwYW4+TGlua2VkPC9zcGFuPmApLGIubGVuZ3RoPT09MD93YGA6d2A8ZGl2IGNsYXNzPSJmZWF0dXJlcy1yb3ciPiR7Yn08L2Rpdj5gfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxrUSh0aGlzLHUpfXN0YXRpY3trUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgaHgsYjIsaUphLHU5YT1nKCgpPT57cGUoKTtoeD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYjI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGlKYT0oKCk9PntsZXQgcz1bbmUoInN6LXJvdXRlLWxpc3QtdmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTelJvdXRlTGlzdFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe2F0dHJpYnV0ZTohMX0pXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxoeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4icm91dGVzImluIF8sImhhcyIpLGdldDppKF89Pl8ucm91dGVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucm91dGVzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxoeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBY3Rpb25zRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93QWN0aW9uc0ZpbHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNob3dBY3Rpb25zRmlsdGVyLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2hvd0FjdGlvbnNGaWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLGh4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlYXJjaFF1ZXJ5ImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VhcmNoUXVlcnksImdldCIpLHNldDppKChfLE8pPT57Xy5zZWFyY2hRdWVyeT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksaHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25GaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImFjdGlvbkZpbHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmFjdGlvbkZpbHRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmFjdGlvbkZpbHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksaHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVkRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJlbmFibGVkRmlsdGVyImluIF8sImhhcyIpLGdldDppKF89Pl8uZW5hYmxlZEZpbHRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmVuYWJsZWRGaWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLGh4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1yb3V0ZS1saXN0LXZpZXcKICAgICAgICAucm91dGVzPSR7W3tuYW1lOiJIVFRQUyBHYXRld2F5IixkZXNjcmlwdGlvbjoiTWFpbiB3ZWIgZ2F0ZXdheSB3aXRoIFRMUyB0ZXJtaW5hdGlvbiIsZW5hYmxlZDohMCx0YWdzOlsid2ViIiwiaHR0cHMiLCJwcm9kdWN0aW9uIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOlsiKi5leGFtcGxlLmNvbSIsInNlcnZlLnpvbmUiXSxwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4xIixwb3J0OjgwODB9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtuYW1lOiJTTVRQIEluYm91bmQiLGRlc2NyaXB0aW9uOiJFbWFpbCByZWxheSBmb3IgaW5jb21pbmcgbWFpbCIsZW5hYmxlZDohMCx0YWdzOlsiZW1haWwiLCJzbXRwIl0sbWF0Y2g6e3BvcnRzOjI1LGRvbWFpbnM6Im1haWwuc2VydmUuem9uZSJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMS41Iixwb3J0OjI1fV19fSx7bmFtZToiV2ViU29ja2V0IEFQSSIsZGVzY3JpcHRpb246IlJlYWwtdGltZSBXZWJTb2NrZXQgY29ubmVjdGlvbnMiLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImFwaSJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoid3MuZXhhbXBsZS5jb20iLHBhdGg6Ii93cy8qIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC4wLjMiLHBvcnQ6OTA5MH1dLHdlYnNvY2tldDp7ZW5hYmxlZDohMH0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7bmFtZToiTWFpbnRlbmFuY2UgUGFnZSIsZW5hYmxlZDohMSx0YWdzOlsid2ViIl0sbWF0Y2g6e3BvcnRzOls4MCw0NDNdLGRvbWFpbnM6Im9sZC5leGFtcGxlLmNvbSJ9LGFjdGlvbjp7dHlwZToic29ja2V0LWhhbmRsZXIifX1dfQogICAgICA+PC9zei1yb3V0ZS1saXN0LXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJSb3V0ZXMiXTsjZT1iMih0aGlzLG8sW10pO2dldCByb3V0ZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcm91dGVzKEMpe3RoaXMuI2U9Q30jdD0oYjIodGhpcyxsKSxiMih0aGlzLGQsbnVsbCkpO2dldCBzaG93QWN0aW9uc0ZpbHRlcigpe3JldHVybiB0aGlzLiN0fXNldCBzaG93QWN0aW9uc0ZpbHRlcihDKXt0aGlzLiN0PUN9I2E9KGIyKHRoaXMsdSksYjIodGhpcyxiLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlYXJjaFF1ZXJ5KEMpe3RoaXMuI2E9Q30jcz0oYjIodGhpcyx2KSxiMih0aGlzLG0sImFsbCIpKTtnZXQgYWN0aW9uRmlsdGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFjdGlvbkZpbHRlcihDKXt0aGlzLiNzPUN9I2k9KGIyKHRoaXMsZiksYjIodGhpcyxNLCJhbGwiKSk7Z2V0IGVuYWJsZWRGaWx0ZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZW5hYmxlZEZpbHRlcihDKXt0aGlzLiNpPUN9Z2V0IGZpbHRlcmVkUm91dGVzKCl7cmV0dXJuIHRoaXMucm91dGVzLmZpbHRlcihDPT57aWYodGhpcy5hY3Rpb25GaWx0ZXIhPT0iYWxsIiYmQy5hY3Rpb24udHlwZSE9PXRoaXMuYWN0aW9uRmlsdGVyfHx0aGlzLmVuYWJsZWRGaWx0ZXI9PT0iZW5hYmxlZCImJkMuZW5hYmxlZD09PSExfHx0aGlzLmVuYWJsZWRGaWx0ZXI9PT0iZGlzYWJsZWQiJiZDLmVuYWJsZWQhPT0hMSlyZXR1cm4hMTtpZih0aGlzLnNlYXJjaFF1ZXJ5KXtsZXQgXz10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRoaXMucm91dGVNYXRjaGVzU2VhcmNoKEMsXyl9cmV0dXJuITB9KX1yb3V0ZU1hdGNoZXNTZWFyY2goQyxfKXtpZihDLm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXyl8fEMuZGVzY3JpcHRpb24/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXyl8fEMubWF0Y2guZG9tYWlucyYmKEFycmF5LmlzQXJyYXkoQy5tYXRjaC5kb21haW5zKT9DLm1hdGNoLmRvbWFpbnM6W0MubWF0Y2guZG9tYWluc10pLnNvbWUoRT0+RS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKF8pKXx8dGhpcy5mb3JtYXRQb3J0c0ZvclNlYXJjaChDLm1hdGNoLnBvcnRzKS5pbmNsdWRlcyhfKXx8Qy5tYXRjaC5wYXRoPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKF8pfHxDLm1hdGNoLmNsaWVudElwPy5zb21lKCQ9PiQuaW5jbHVkZXMoXykpKXJldHVybiEwO2lmKEMuYWN0aW9uLnRhcmdldHMpe2ZvcihsZXQgJCBvZiBDLmFjdGlvbi50YXJnZXRzKWlmKChBcnJheS5pc0FycmF5KCQuaG9zdCk/JC5ob3N0OlskLmhvc3RdKS5zb21lKEg9PkgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhfKSkpcmV0dXJuITB9cmV0dXJuISFDLnRhZ3M/LnNvbWUoJD0+JC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKF8pKX1mb3JtYXRQb3J0c0ZvclNlYXJjaChDKXtyZXR1cm4gdHlwZW9mIEM9PSJudW1iZXIiP1N0cmluZyhDKTpBcnJheS5pc0FycmF5KEMpP0MubWFwKF89PnR5cGVvZiBfPT0ibnVtYmVyIj9TdHJpbmcoXyk6YCR7Xy5mcm9tfS0ke18udG99YCkuam9pbigiICIpOlN0cmluZyhDKX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmNoaXAtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlc3VsdHMtY291bnQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDQyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5ncmlkIHN6LXJvdXRlLWNhcmQgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgQz10aGlzLmZpbHRlcmVkUm91dGVzO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItYmFyIj4KICAgICAgICA8aW5wdXQKICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaW5wdXQiCiAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCByb3V0ZXMgYnkgZG9tYWluLCBJUCwgcG9ydCwgcGF0aCwgb3IgdGFnLi4uIgogICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgIEBpbnB1dD0ke189Pnt0aGlzLnNlYXJjaFF1ZXJ5PV8udGFyZ2V0LnZhbHVlfX0KICAgICAgICAvPgogICAgICAgIDxkaXYgY2xhc3M9ImNoaXAtZ3JvdXAiPgogICAgICAgICAgJHtbImFsbCIsImZvcndhcmQiLCJzb2NrZXQtaGFuZGxlciJdLm1hcChfPT53YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5hY3Rpb25GaWx0ZXI9PT1fPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5hY3Rpb25GaWx0ZXI9X319CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtfPT09ImFsbCI/IkFsbCI6Xz09PSJmb3J3YXJkIj8iRm9yd2FyZCI6IlNvY2tldCBIYW5kbGVyIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiZW5hYmxlZCIsImRpc2FibGVkIl0ubWFwKF89PndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmVuYWJsZWRGaWx0ZXI9PT1fPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5lbmFibGVkRmlsdGVyPV99fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJyZXN1bHRzLWNvdW50Ij4KICAgICAgICBTaG93aW5nICR7Qy5sZW5ndGh9IG9mICR7dGhpcy5yb3V0ZXMubGVuZ3RofSByb3V0ZXMKICAgICAgPC9kaXY+CgogICAgICAke0MubGVuZ3RoPjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgICAgICAgJHtDLm1hcChfPT53YAogICAgICAgICAgICAgICAgICA8c3otcm91dGUtY2FyZAogICAgICAgICAgICAgICAgICAgIC5yb3V0ZT0ke199CiAgICAgICAgICAgICAgICAgICAgLnNob3dBY3Rpb25zPSR7dGhpcy5zaG93QWN0aW9uc0ZpbHRlcj8uKF8pPz8hMX0KICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSb3V0ZUNsaWNrKF8pfQogICAgICAgICAgICAgICAgICA+PC9zei1yb3V0ZS1jYXJkPgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtaWNvbiI+JiN4MWY1MGQ7PC9kaXY+CiAgICAgICAgICAgICAgPGRpdj5ObyByb3V0ZXMgbWF0Y2ggeW91ciBmaWx0ZXJzPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgIGB9aGFuZGxlUm91dGVDbGljayhDKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3V0ZS1jbGljayIse2RldGFpbDpDLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGIyKHRoaXMseil9c3RhdGlje2IyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBaYyxMaSxySmEscDlhPWcoKCk9PntwZSgpO1pjPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxMaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sckphPSgoKT0+e2xldCBzPVtuZSgic3otY29uZmlnLXNlY3Rpb24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekNvbmZpZ1NlY3Rpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpBcnJheX0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W1koKV0sbWU9W1koKV0sWmModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4idGl0bGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai50aXRsZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai50aXRsZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxvLGwpLFpjKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InN1YnRpdGxlImluIGosImhhcyIpLGdldDppKGo9Pmouc3VidGl0bGUsImdldCIpLHNldDppKChqLHVlKT0+e2ouc3VidGl0bGU9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sZCx1KSxaYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Imljb24iaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pY29uLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmljb249dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sYix2KSxaYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic3RhdHVzImluIGosImhhcyIpLGdldDppKGo9Pmouc3RhdHVzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnN0YXR1cz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLFpjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmllbGRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJmaWVsZHMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5maWVsZHMsImdldCIpLHNldDppKChqLHVlKT0+e2ouZmllbGRzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LE0seiksWmModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhY3Rpb25zImluIGosImhhcyIpLGdldDppKGo9PmouYWN0aW9ucywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5hY3Rpb25zPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LEMsXyksWmModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5rcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGlua3MiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5saW5rcywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5saW5rcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSwkLEUpLFpjKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImNvbGxhcHNpYmxlImluIGosImhhcyIpLGdldDppKGo9PmouY29sbGFwc2libGUsImdldCIpLHNldDppKChqLHVlKT0+e2ouY29sbGFwc2libGU9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sayxTKSxaYyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iY29sbGFwc2VkImluIGosImhhcyIpLGdldDppKGo9PmouY29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmNvbGxhcHNlZD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxQLFIpLFpjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzQ29sbGFwc2VkImluIGosImhhcyIpLGdldDppKGo9PmouaXNDb2xsYXBzZWQsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNDb2xsYXBzZWQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sVixXKSxaYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNTbG90dGVkQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaGFzU2xvdHRlZENvbnRlbnQiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5oYXNTbG90dGVkQ29udGVudCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5oYXNTbG90dGVkQ29udGVudD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLFpjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IlNtYXJ0UHJveHkiCiAgICAgIHN1YnRpdGxlPSJIVFRQL0hUVFBTIGFuZCBUQ1AvU05JIHJldmVyc2UgcHJveHkiCiAgICAgIGljb249Imx1Y2lkZTpuZXR3b3JrIgogICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgIC5maWVsZHM9JHtbe2tleToiUm91dGUgQ291bnQiLHZhbHVlOjEyfSx7a2V5OiJBQ01FIEVuYWJsZWQiLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBY2NvdW50IEVtYWlsIix2YWx1ZToiYWRtaW5AZXhhbXBsZS5jb20ifSx7a2V5OiJVc2UgUHJvZHVjdGlvbiIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9LHtrZXk6IkF1dG8gUmVuZXciLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJSZW5ldyBUaHJlc2hvbGQiLHZhbHVlOiIzMCBkYXlzIn1dfQogICAgICAubGlua3M9JHtbe2xhYmVsOiJEb2NzIixocmVmOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9zbWFydHByb3h5IixpY29uOiJsdWNpZGU6Ym9va09wZW4iLGV4dGVybmFsOiEwfV19CiAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiQ29uZmlndXJlIixpY29uOiJsdWNpZGU6c2V0dGluZ3MiLGV2ZW50OiJjb25maWd1cmUifV19CiAgICA+PC9zei1jb25maWctc2VjdGlvbj4KICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICB0aXRsZT0iRW1haWwgU2VydmVyIgogICAgICBzdWJ0aXRsZT0iU01UUCBlbWFpbCBoYW5kbGluZyB3aXRoIHNtYXJ0bXRhIgogICAgICBpY29uPSJsdWNpZGU6bWFpbCIKICAgICAgc3RhdHVzPSJkaXNhYmxlZCIKICAgICAgLmZpZWxkcz0ke1t7a2V5OiJQb3J0cyIsdmFsdWU6WyIyNSIsIjQ2NSIsIjU4NyJdLHR5cGU6InBpbGxzIn0se2tleToiSG9zdG5hbWUiLHZhbHVlOm51bGx9LHtrZXk6IkRvbWFpbnMiLHZhbHVlOlsiZXhhbXBsZS5jb20iLCJtYWlsLmV4YW1wbGUuY29tIl0sdHlwZToicGlsbHMifV19CiAgICAgIC5saW5rcz0ke1t7bGFiZWw6IkRvY3MiLGhyZWY6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL3NtYXJ0bXRhIixpY29uOiJsdWNpZGU6Ym9va09wZW4iLGV4dGVybmFsOiEwfSx7bGFiZWw6IlNvdXJjZSIsaHJlZjoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvc21hcnRtdGEiLGljb246Imx1Y2lkZTpnaXRodWIiLGV4dGVybmFsOiEwfV19CiAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiRW5hYmxlIixpY29uOiJsdWNpZGU6cG93ZXIiLGV2ZW50OiJlbmFibGUifV19CiAgICA+PC9zei1jb25maWctc2VjdGlvbj4KICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICB0aXRsZT0iRE5TIFNlcnZlciIKICAgICAgc3VidGl0bGU9IkF1dGhvcml0YXRpdmUgRE5TIHdpdGggc21hcnRkbnMiCiAgICAgIGljb249Imx1Y2lkZTpnbG9iZSIKICAgICAgc3RhdHVzPSJub3QtY29uZmlndXJlZCIKICAgICAgY29sbGFwc2libGUKICAgICAgLmZpZWxkcz0ke1t7a2V5OiJQb3J0Iix2YWx1ZTo1M30se2tleToiTlMgRG9tYWlucyIsdmFsdWU6WyJuczEuZXhhbXBsZS5jb20iLCJuczIuZXhhbXBsZS5jb20iXSx0eXBlOiJwaWxscyJ9XX0KICAgICAgLmxpbmtzPSR7W3tsYWJlbDoiR2V0dGluZyBTdGFydGVkIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZG5zIixpY29uOiJsdWNpZGU6Ym9va09wZW4iLGV4dGVybmFsOiEwfV19CiAgICA+PC9zei1jb25maWctc2VjdGlvbj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJDb25maWd1cmF0aW9uIl07I2U9TGkodGhpcyxvLCIiKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGl0bGUoRil7dGhpcy4jZT1GfSN0PShMaSh0aGlzLGwpLExpKHRoaXMsZCwiIikpO2dldCBzdWJ0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCBzdWJ0aXRsZShGKXt0aGlzLiN0PUZ9I2E9KExpKHRoaXMsdSksTGkodGhpcyxiLCIiKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgaWNvbihGKXt0aGlzLiNhPUZ9I3M9KExpKHRoaXMsdiksTGkodGhpcyxtLCJlbmFibGVkIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3RhdHVzKEYpe3RoaXMuI3M9Rn0jaT0oTGkodGhpcyxmKSxMaSh0aGlzLE0sW10pKTtnZXQgZmllbGRzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGZpZWxkcyhGKXt0aGlzLiNpPUZ9I3I9KExpKHRoaXMseiksTGkodGhpcyxDLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYWN0aW9ucyhGKXt0aGlzLiNyPUZ9I289KExpKHRoaXMsXyksTGkodGhpcywkLFtdKSk7Z2V0IGxpbmtzKCl7cmV0dXJuIHRoaXMuI299c2V0IGxpbmtzKEYpe3RoaXMuI289Rn0jbj0oTGkodGhpcyxFKSxMaSh0aGlzLGssITEpKTtnZXQgY29sbGFwc2libGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29sbGFwc2libGUoRil7dGhpcy4jbj1GfSNsPShMaSh0aGlzLFMpLExpKHRoaXMsUCwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY29sbGFwc2VkKEYpe3RoaXMuI2w9Rn0jYz0oTGkodGhpcyxSKSxMaSh0aGlzLFYsITEpKTtnZXQgaXNDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNDb2xsYXBzZWQoRil7dGhpcy4jYz1GfSNkPShMaSh0aGlzLFcpLExpKHRoaXMsQiwhMSkpO2dldCBoYXNTbG90dGVkQ29udGVudCgpe3JldHVybiB0aGlzLiNkfXNldCBoYXNTbG90dGVkQ29udGVudChGKXt0aGlzLiNkPUZ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgZGVlcy10aWxlOjpwYXJ0KGNvbnRlbnQpIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgZGVlcy10aWxlOjpwYXJ0KGZvb3RlcikgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzaWJsZV0pIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2libGVdKSAuc2VjdGlvbi1oZWFkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CgogICAgICAuaGVhZGVyLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmhlYWRlci10ZXh0IHsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBiYWRnZSAqLwogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDNweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmVuYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwxOTcsOTQsMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LDY4LDY4LDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ub3QtY29uZmlndXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCJyZ2JhKDExMywxMTMsMTIyLDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LDE1OCwxMSwwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5MjQwMGUiLCIjZmJiZjI0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdCB7CiAgICAgICAgd2lkdGg6IDdweDsKICAgICAgICBoZWlnaHQ6IDdweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZW5hYmxlZCAuc3RhdHVzLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRpc2FibGVkIC5zdGF0dXMtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uubm90LWNvbmZpZ3VyZWQgLnN0YXR1cy1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS53YXJuaW5nIC5zdGF0dXMtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1OWUwYiIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvb3RlciBhY3Rpb24gYnV0dG9ucyDigJQgY2Fub25pY2FsIGRlZXMtbW9kYWwgLyBkZWVzLXRpbGUgcGF0dGVybiAqLwogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIC8qIENoZXZyb24gKi8KICAgICAgLmNoZXZyb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNoZXZyb24uY29sbGFwc2VkIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAuY2hldnJvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLyogQ29udGVudCAqLwogICAgICAuc2VjdGlvbi1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuZmllbGRzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLyogRmllbGQgcm93cyAqLwogICAgICAuZmllbGQtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzFhMWExZSIpfTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWVsZHMtbGlzdCAuZmllbGQtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5maWVsZC1rZXkgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgICBwYWRkaW5nLXRvcDogMXB4OwogICAgICB9CgogICAgICAuZmllbGQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuZmllbGQtdmFsdWUubnVsbC12YWx1ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC8qIEJvb2xlYW4gZGlzcGxheSAqLwogICAgICAuYm9vbC12YWx1ZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDVweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUudHJ1ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUuZmFsc2UgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5ib29sLWRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5ib29sLXZhbHVlLnRydWUgLmJvb2wtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5ib29sLXZhbHVlLmZhbHNlIC5ib29sLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAvKiBQaWxscyAqLwogICAgICAucGlsbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNXB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5waWxsIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA5cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LDEzMCwyNDYsMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAvKiBDb2RlIHZhbHVlICovCiAgICAgIC5jb2RlLXZhbHVlIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLyogTGluayB2YWx1ZSAqLwogICAgICAubGluay12YWx1ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxpbmstdmFsdWU6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAvKiBEZXNjcmlwdGlvbiBoaW50ICovCiAgICAgIC5maWVsZC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgbWFyZ2luLXRvcDogM3B4OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICB9CgogICAgICAvKiBTbG90IGZvciBjdXN0b20gY29udGVudCAqLwogICAgICAuc2xvdC1jb250ZW50IHsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMWExYTFlIil9OwogICAgICB9CgogICAgICAuc2xvdC1jb250ZW50LmVtcHR5IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCYWRnZSB0eXBlICovCiAgICAgIC5iYWRnZS12YWx1ZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTI1MjViIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaXNDb2xsYXBzZWQ9dGhpcy5jb2xsYXBzZWQsdGhpcy5jb2xsYXBzaWJsZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNvbGxhcHNpYmxlIiwiIil9dXBkYXRlZChGKXtzdXBlci51cGRhdGVkKEYpLEYuaGFzKCJpc0NvbGxhcHNlZCIpJiZ0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgiY29sbGFwc2VkIix0aGlzLmlzQ29sbGFwc2VkKX1vblNsb3RDaGFuZ2UoRil7bGV0IGo9Ri50YXJnZXQ7dGhpcy5oYXNTbG90dGVkQ29udGVudD1qLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KS5sZW5ndGg+MH1yZW5kZXIoKXtsZXQgRj17ZW5hYmxlZDoiRW5hYmxlZCIsZGlzYWJsZWQ6IkRpc2FibGVkIiwibm90LWNvbmZpZ3VyZWQiOiJOb3QgQ29uZmlndXJlZCIsd2FybmluZzoiV2FybmluZyJ9O3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYKICAgICAgICAgIHNsb3Q9ImhlYWRlciIKICAgICAgICAgIGNsYXNzPSJzZWN0aW9uLWhlYWRlciIKICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5jb2xsYXBzaWJsZSYmKHRoaXMuaXNDb2xsYXBzZWQ9IXRoaXMuaXNDb2xsYXBzZWQpfX0KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItbGVmdCI+CiAgICAgICAgICAgICR7dGhpcy5pY29uP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10ZXh0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj4KICAgICAgICAgICAgICAke3RoaXMuc3VidGl0bGU/d2A8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPiR7dGhpcy5zdWJ0aXRsZX08L2Rpdj5gOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXJpZ2h0Ij4KICAgICAgICAgICAgJHt0aGlzLnN0YXR1cz93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHt0aGlzLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICR7Rlt0aGlzLnN0YXR1c118fHRoaXMuc3RhdHVzfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLmNvbGxhcHNpYmxlP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZXZyb24gJHt0aGlzLmlzQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAke3RoaXMuZmllbGRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkcy1saXN0Ij4KICAgICAgICAgICAgICAke3RoaXMuZmllbGRzLm1hcChqPT50aGlzLnJlbmRlckZpZWxkKGopKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic2xvdC1jb250ZW50ICR7dGhpcy5oYXNTbG90dGVkQ29udGVudD8iIjoiZW1wdHkifSI+CiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5vblNsb3RDaGFuZ2V9Pjwvc2xvdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5saW5rcy5sZW5ndGg+MHx8dGhpcy5hY3Rpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgICAgJHt0aGlzLmxpbmtzLm1hcChqPT53YAogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBjbGFzcz0idGlsZS1idXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSR7ai5ocmVmfQogICAgICAgICAgICAgICAgdGFyZ2V0PSR7ai5leHRlcm5hbD8iX2JsYW5rIjoiX3NlbGYifQogICAgICAgICAgICAgICAgcmVsPSR7ai5leHRlcm5hbD8ibm9vcGVuZXIgbm9yZWZlcnJlciI6IiJ9CiAgICAgICAgICAgICAgICBAY2xpY2s9JHt1ZT0+dWUuc3RvcFByb3BhZ2F0aW9uKCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtqLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7ai5pY29ufT48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgJHtqLmxhYmVsfQogICAgICAgICAgICAgICAgJHtqLmV4dGVybmFsP3dgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZXh0ZXJuYWxMaW5rIn0+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIGApfQogICAgICAgICAgICAke3RoaXMuYWN0aW9ucy5tYXAoaj0+d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHt1ZT0+e3VlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoai5ldmVudHx8ImFjdGlvbiIse2RldGFpbDpqLmRldGFpbHx8e2xhYmVsOmoubGFiZWx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICAgICR7ai5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke2ouaWNvbn0+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAgICR7ai5sYWJlbH0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyRmllbGQoRil7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQta2V5Ij4ke0Yua2V5fTwvZGl2PgogICAgICAgIDxkaXY+CiAgICAgICAgICAke3RoaXMucmVuZGVyRmllbGRWYWx1ZShGKX0KICAgICAgICAgICR7Ri5kZXNjcmlwdGlvbj93YDxkaXYgY2xhc3M9ImZpZWxkLWRlc2NyaXB0aW9uIj4ke0YuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpZWxkVmFsdWUoRil7bGV0IGo9Ri52YWx1ZSx1ZT1GLnR5cGV8fHRoaXMuaW5mZXJUeXBlKGopO2lmKGo9PW51bGwpcmV0dXJuIHdgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG51bGwtdmFsdWUiPk5vdCBjb25maWd1cmVkPC9zcGFuPmA7c3dpdGNoKHVlKXtjYXNlImJvb2xlYW4iOnJldHVybiB3YAogICAgICAgICAgPHNwYW4gY2xhc3M9ImJvb2wtdmFsdWUgJHtqPyJ0cnVlIjoiZmFsc2UifSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib29sLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAke2o/IkVuYWJsZWQiOiJEaXNhYmxlZCJ9CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgYDtjYXNlInBpbGxzIjpyZXR1cm4gQXJyYXkuaXNBcnJheShqKSYmai5sZW5ndGg9PT0wP3dgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG51bGwtdmFsdWUiPk5vbmU8L3NwYW4+YDp3YAogICAgICAgICAgPGRpdiBjbGFzcz0icGlsbHMiPgogICAgICAgICAgICAke2oubWFwKGxlPT53YDxzcGFuIGNsYXNzPSJwaWxsIj4ke2xlfTwvc3Bhbj5gKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7Y2FzZSJjb2RlIjpyZXR1cm4gd2A8c3BhbiBjbGFzcz0iY29kZS12YWx1ZSI+JHtTdHJpbmcoail9PC9zcGFuPmA7Y2FzZSJiYWRnZSI6cmV0dXJuIHdgPHNwYW4gY2xhc3M9ImJhZGdlLXZhbHVlIj4ke1N0cmluZyhqKX08L3NwYW4+YDtjYXNlImxpbmsiOnJldHVybiB3YAogICAgICAgICAgPHNwYW4KICAgICAgICAgICAgY2xhc3M9ImxpbmstdmFsdWUiCiAgICAgICAgICAgIEBjbGljaz0keygpPT57Ri5saW5rVG8mJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5hdmlnYXRlIix7ZGV0YWlsOnt0YXJnZXQ6Ri5saW5rVG99LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fQogICAgICAgICAgPiR7U3RyaW5nKGopfTwvc3Bhbj4KICAgICAgICBgO2RlZmF1bHQ6cmV0dXJuIHdgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke1N0cmluZyhqKX08L3NwYW4+YH19aW5mZXJUeXBlKEYpe3JldHVybiB0eXBlb2YgRj09ImJvb2xlYW4iPyJib29sZWFuIjpBcnJheS5pc0FycmF5KEYpPyJwaWxscyI6InRleHQifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxMaSh0aGlzLFUpfXN0YXRpY3tMaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyIHlvdCxTUSxvSmEsaDlhPWcoKCk9PntwZSgpO3lvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sU1E9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG9KYT0oKCk9PntsZXQgcz1bbmUoInN6LWNvbmZpZy1vdmVydmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekNvbmZpZ092ZXJ2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0seW90KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaGVhZGluZyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmhlYWRpbmcsImdldCIpLHNldDppKCh2LHgpPT57di5oZWFkaW5nPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx5b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmZvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaW5mb1RleHQiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5pbmZvVGV4dCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmluZm9UZXh0PXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx5b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxzei1jb25maWctb3ZlcnZpZXcKICAgIGhlYWRpbmc9IkNvbmZpZ3VyYXRpb24iCiAgICBpbmZvVGV4dD0iVGhpcyBpcyBhIHJlYWQtb25seSB2aWV3IG9mIHRoZSBjdXJyZW50IHJ1bm5pbmcgY29uZmlndXJhdGlvbi4iCiAgPgogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzcxNzE3YTsgZm9udC1zaXplOiAxNHB4OyI+CiAgICAgIFBsYWNlICZsdDtzei1jb25maWctc2VjdGlvbiZndDsgZWxlbWVudHMgaGVyZQogICAgPC9kaXY+CiAgPC9zei1jb25maWctb3ZlcnZpZXc+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ29uZmlndXJhdGlvbiJdOyNlPVNRKHRoaXMsbywiIik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhiKXt0aGlzLiNlPWJ9I3Q9KFNRKHRoaXMsbCksU1EodGhpcyxkLCIiKSk7Z2V0IGluZm9UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZm9UZXh0KGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuaW5mby1iYW5uZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE0cHggMThweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksMTMwLDI0NiwwLjA4KSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2JmZGJmZSIsInJnYmEoNTksMTMwLDI0NiwwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFlNDBhZiIsIiM5M2M1ZmQiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5pbmZvLWJhbm5lciBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChzei1jb25maWctc2VjdGlvbikgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIDo6c2xvdHRlZChzei1jb25maWctc2VjdGlvbjpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5oZWFkaW5nP3dgPGRpdiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9kaXY+YDoiIn0KICAgICAgJHt0aGlzLmluZm9UZXh0P3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1iYW5uZXIiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6aW5mbyJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+JHt0aGlzLmluZm9UZXh0fTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksU1EodGhpcyx1KX1zdGF0aWN7U1EoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIG5KYSxsSmEsY0phLGY5YT1nKCgpPT57cGUoKTtpYygpO25KYT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbEphPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxjSmE9KCgpPT57bGV0IHM9W25lKCJzei1kZW1vLXZpZXctZGFzaGJvYXJkIildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuSmEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1hcHB1aT1udWxsO2FzeW5jIG9uQWN0aXZhdGUobyl7dGhpcy5hcHB1aT1vLmFwcHVpLHRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRGFzaGJvYXJkIixncm91cHM6W3tuYW1lOiJRdWljayBBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJEZXBsb3kgU2VydmljZSIsaWNvbk5hbWU6Imx1Y2lkZTpSb2NrZXQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkRlcGxveSBzZXJ2aWNlIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgRG9tYWluIixpY29uTmFtZToibHVjaWRlOkdsb2JlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgZG9tYWluIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJDcmVhdGUgVG9rZW4iLGljb25OYW1lOiJsdWNpZGU6S2V5IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJDcmVhdGUgdG9rZW4iKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTeXN0ZW0iLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggU3RhdHMiLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6VGVybWluYWwiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlZpZXcgbG9ncyIpfSwiYWN0aW9uIil9XX1dfSl9b25EZWFjdGl2YXRlKCl7fXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wYWdlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICB9CgogICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+RGFzaGJvYXJkPC9oMT4KICAgICAgICA8cCBjbGFzcz0icGFnZS1zdWJ0aXRsZSI+T3ZlcnZpZXcgb2YgeW91ciBvbmVib3ggaW5mcmFzdHJ1Y3R1cmU8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LWRhc2hib2FyZC12aWV3CiAgICAgICAgLmNsdXN0ZXJTdGF0cz0ke3t0b3RhbFNlcnZpY2VzOjEyLHJ1bm5pbmc6OSxzdG9wcGVkOjMsZG9ja2VyU3RhdHVzOiJydW5uaW5nIn19CiAgICAgICAgLnJlc291cmNlVXNhZ2U9JHt7Y3B1OjQ1LG1lbW9yeVVzZWQ6IjYuMiBHQiIsbWVtb3J5VG90YWw6IjE2IEdCIixuZXR3b3JrSW46IjIuNSBNQi9zIixuZXR3b3JrT3V0OiIxLjIgTUIvcyIsdG9wQ29uc3VtZXJzOlt7bmFtZToibW9uZ29kYiIsbWVtb3J5OiIxLjIgR0IifSx7bmFtZToiY2xpY2tob3VzZSIsbWVtb3J5OiI5ODAgTUIifSx7bmFtZToibmdpbngtcHJveHkiLG1lbW9yeToiMjU2IE1CIn1dfX0KICAgICAgICAucGxhdGZvcm1TZXJ2aWNlcz0ke1t7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiJydW5uaW5nIixpY29uOiJkYXRhYmFzZSJ9LHtuYW1lOiJTMyBTdG9yYWdlIixzdGF0dXM6InJ1bm5pbmciLGljb246InN0b3JhZ2UifSx7bmFtZToiQ2xpY2tIb3VzZSIsc3RhdHVzOiJzdG9wcGVkIixpY29uOiJhbmFseXRpY3MifSx7bmFtZToiUmVkaXMgQ2FjaGUiLHN0YXR1czoicnVubmluZyIsaWNvbjoiY2FjaGUifV19CiAgICAgICAgLnRyYWZmaWM9JHt7cmVxdWVzdHM6MTU0MjAsZXJyb3JzOjIzLGVycm9yUGVyY2VudDouMTUsYXZnUmVzcG9uc2U6MTQ1LHJlcVBlck1pbjo4NTYsc3RhdHVzMnh4OjE0ODUwLHN0YXR1czN4eDozMjAsc3RhdHVzNHh4OjIyNyxzdGF0dXM1eHg6MjN9fQogICAgICAgIC5wcm94eT0ke3todHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiEwLGh0dHBzQWN0aXZlOiEwLHJvdXRlQ291bnQ6IjI0In19CiAgICAgICAgLmNlcnRpZmljYXRlcz0ke3t2YWxpZDoxOCxleHBpcmluZzoyLGV4cGlyZWQ6MH19CiAgICAgICAgLmRucz0ke3tyZWNvcmRzOjQ1LHpvbmVzOjgscGVuZGluZ0NoYW5nZXM6MH19CiAgICAgICAgLnNzbD0ke3thY3RpdmVDZXJ0czoyMCxhdXRvUmVuZXc6ITAscHJvdmlkZXI6IkxldCdzIEVuY3J5cHQifX0KICAgICAgICBAcXVpY2stYWN0aW9uPSR7bz0+Y29uc29sZS5sb2coIlF1aWNrIGFjdGlvbjoiLG8uZGV0YWlsKX0KICAgICAgPjwvc3otZGFzaGJvYXJkLXZpZXc+CiAgICBgfXN0YXRpY3tsSmEoYSx0KX19O3JldHVybiBuPWF9KSgpfSk7dmFyIEMxZSxSZyxkSmEsbTlhPWcoKCk9PntwZSgpO2ljKCk7QzFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxSZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZEphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LXNlcnZpY2VzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdTZXJ2aWNlcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLEMxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJjdXJyZW50VmlldyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuY3VycmVudFZpZXc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLEMxZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkU2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VsZWN0ZWRTZXJ2aWNlImluIGYsImhhcyIpLGdldDppKGY9PmYuc2VsZWN0ZWRTZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VsZWN0ZWRTZXJ2aWNlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxDMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFBsYXRmb3JtU2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZWxlY3RlZFBsYXRmb3JtU2VydmljZSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxDMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1hcHB1aT1udWxsOyNlPVJnKHRoaXMsbywibGlzdCIpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmlldyhtKXt0aGlzLiNlPW19I3Q9KFJnKHRoaXMsbCksUmcodGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRTZXJ2aWNlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkU2VydmljZShtKXt0aGlzLiN0PW19I2E9KFJnKHRoaXMsdSksUmcodGhpcyxiLG51bGwpKTtnZXQgc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UobSl7dGhpcy4jYT1tfWRlbW9TZXJ2aWNlcz0oUmcodGhpcyx2KSxbe2lkOiIxIixuYW1lOiJuZ2lueC1wcm94eSIsaW1hZ2U6Im5naW54OmxhdGVzdCIsc3RhdHVzOiJydW5uaW5nIixjcHU6IjIuNSUiLG1lbW9yeToiMjU2IE1CIixwb3J0czoiODAsIDQ0MyIsdXB0aW1lOiI1ZCAxMmgifSx7aWQ6IjIiLG5hbWU6ImFwaS1nYXRld2F5IixpbWFnZToiYXBpLWdhdGV3YXk6djIuMS4wIixzdGF0dXM6InJ1bm5pbmciLGNwdToiOC4yJSIsbWVtb3J5OiI1MTIgTUIiLHBvcnRzOiIzMDAwIix1cHRpbWU6IjNkIDhoIn0se2lkOiIzIixuYW1lOiJ3b3JrZXItc2VydmljZSIsaW1hZ2U6IndvcmtlcjpsYXRlc3QiLHN0YXR1czoic3RvcHBlZCIsY3B1OiIwJSIsbWVtb3J5OiIwIE1CIixwb3J0czoiLSIsdXB0aW1lOiItIn0se2lkOiI0IixuYW1lOiJyZWRpcy1jYWNoZSIsaW1hZ2U6InJlZGlzOjctYWxwaW5lIixzdGF0dXM6InJ1bm5pbmciLGNwdToiMS4yJSIsbWVtb3J5OiIxMjggTUIiLHBvcnRzOiI2Mzc5Iix1cHRpbWU6IjEwZCA0aCJ9XSk7ZGVtb1BsYXRmb3JtU2VydmljZT17aWQ6IjEiLG5hbWU6Ik1vbmdvREIiLHR5cGU6Im1vbmdvZGIiLHN0YXR1czoicnVubmluZyIsdmVyc2lvbjoiNy4wLjQiLGhvc3Q6ImxvY2FsaG9zdCIscG9ydDoyNzAxNyxjcmVkZW50aWFsczp7dXNlcm5hbWU6ImFkbWluIixwYXNzd29yZDoiXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyIn0sY29uZmlnOntyZXBsaWNhU2V0OiJyczAiLGF1dGhFbmFibGVkOiEwLGpvdXJuYWxpbmc6ITB9LG1ldHJpY3M6e2NwdToxMixtZW1vcnk6NDUsc3RvcmFnZToyMyxjb25uZWN0aW9uczo4fX07ZGVtb1BsYXRmb3JtTG9ncz1be3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMiIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNvbm5lY3Rpb24gYWNjZXB0ZWQgZnJvbSAxMjcuMC4wLjE6NTQzMjEifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIwIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiSW5kZXggYnVpbGQgY29tcGxldGVkIG9uIGNvbGxlY3Rpb24gdXNlcnMifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjE1IixsZXZlbDoid2FybiIsbWVzc2FnZToiU2xvdyBxdWVyeSBkZXRlY3RlZDogMS4ycyBvbiBjb2xsZWN0aW9uIG9yZGVycyJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTAiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJDaGVja3BvaW50IGNvbXBsZXRlIn1dO2RlbW9CYWNrdXBTY2hlZHVsZXM9W3tpZDoiMSIsc2NvcGU6IkFsbCBTZXJ2aWNlcyIscmV0ZW50aW9uOiJEOjcsIFc6NCwgTToxMiIsc2NoZWR1bGU6IjAgMiAqICogKiIsbGFzdFJ1bjoiMS8yLzIwMjYsIDI6MDA6MDMgQU0iLG5leHRSdW46IjEvMy8yMDI2LCAyOjAwOjAwIEFNIixzdGF0dXM6ImFjdGl2ZSJ9XTtkZW1vQmFja3Vwcz1be2lkOiIxIixzZXJ2aWNlOiJuZ2lueC1wcm94eSIsY3JlYXRlZEF0OiIxLzIvMjAyNiwgMjowMDowMyBBTSIsc2l6ZToiMjIuMCBNQiIsaW5jbHVkZXM6WyJJbWFnZSJdfSx7aWQ6IjIiLHNlcnZpY2U6ImFwaS1nYXRld2F5IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAyIEFNIixzaXplOiIxNTYuNSBNQiIsaW5jbHVkZXM6WyJJbWFnZSIsIlZvbHVtZXMiXX0se2lkOiIzIixzZXJ2aWNlOiJyZWRpcy1jYWNoZSIsY3JlYXRlZEF0OiIxLzIvMjAyNiwgMjowMDowMCBBTSIsc2l6ZToiNDguMCBNQiIsaW5jbHVkZXM6WyJJbWFnZSIsIkRhdGEiXX1dO3N0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CgogICAgICAuYmFjay1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJsaXN0Ij90aGlzLnJlbmRlckxpc3RWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJjcmVhdGUiP3RoaXMucmVuZGVyQ3JlYXRlVmlldygpOiIifQogICAgICAke3RoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIj90aGlzLnJlbmRlckRldGFpbFZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09ImJhY2t1cHMiP3RoaXMucmVuZGVyQmFja3Vwc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09InBsYXRmb3JtLWRldGFpbCI/dGhpcy5yZW5kZXJQbGF0Zm9ybURldGFpbFZpZXcoKToiIn0KICAgIGB9cmVuZGVyTGlzdFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+U2VydmljZXM8L2gxPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPk1hbmFnZSB5b3VyIERvY2tlciBjb250YWluZXJzIGFuZCBwbGF0Zm9ybSBzZXJ2aWNlczwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHNlY29uZGFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImJhY2t1cHMifT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNyA4IDEyIDMgNyA4Ii8+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMyIgeDI9IjEyIiB5Mj0iMTUiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEJhY2t1cHMKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImNyZWF0ZSJ9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBEZXBsb3kgU2VydmljZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGFicyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIGFjdGl2ZSI+RG9ja2VyIFNlcnZpY2VzPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2U9dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlLHRoaXMuY3VycmVudFZpZXc9InBsYXRmb3JtLWRldGFpbCJ9fT5QbGF0Zm9ybSBTZXJ2aWNlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei1zZXJ2aWNlcy1saXN0LXZpZXcKICAgICAgICAuc2VydmljZXM9JHt0aGlzLmRlbW9TZXJ2aWNlc30KICAgICAgICBAdmlldy1zZXJ2aWNlPSR7bT0+e3RoaXMuc2VsZWN0ZWRTZXJ2aWNlPW0uZGV0YWlsLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCJ9fQogICAgICAgIEBzdGFydC1zZXJ2aWNlPSR7bT0+Y29uc29sZS5sb2coIlN0YXJ0IHNlcnZpY2U6IixtLmRldGFpbCl9CiAgICAgICAgQHN0b3Atc2VydmljZT0ke209PmNvbnNvbGUubG9nKCJTdG9wIHNlcnZpY2U6IixtLmRldGFpbCl9CiAgICAgICAgQHJlc3RhcnQtc2VydmljZT0ke209PmNvbnNvbGUubG9nKCJSZXN0YXJ0IHNlcnZpY2U6IixtLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1zZXJ2aWNlPSR7bT0+Y29uc29sZS5sb2coIkRlbGV0ZSBzZXJ2aWNlOiIsbS5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1saXN0LXZpZXc+CiAgICBgfXJlbmRlckNyZWF0ZVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICAgIEBjcmVhdGUtc2VydmljZT0ke209Pntjb25zb2xlLmxvZygiQ3JlYXRlIHNlcnZpY2U6IixtLmRldGFpbCksdGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBjYW5jZWw9JHsoKT0+dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9CiAgICAgID48L3N6LXNlcnZpY2UtY3JlYXRlLXZpZXc+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tpZDp0aGlzLnNlbGVjdGVkU2VydmljZT8uaWR8fCIxIixuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5uYW1lfHwibmdpbngtcHJveHkiLGltYWdlOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5pbWFnZXx8Im5naW54OmxhdGVzdCIsc3RhdHVzOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0dXN8fCJydW5uaW5nIixwb3J0czpbe2hvc3Q6IjgwIixjb250YWluZXI6IjgwIn0se2hvc3Q6IjQ0MyIsY29udGFpbmVyOiI0NDMifV0sZW52VmFyczpbe2tleToiTkdJTlhfSE9TVCIsdmFsdWU6ImxvY2FsaG9zdCJ9LHtrZXk6Ik5HSU5YX1BPUlQiLHZhbHVlOiI4MCJ9XSx2b2x1bWVzOlt7aG9zdDoiL2RhdGEvbmdpbngvY29uZiIsY29udGFpbmVyOiIvZXRjL25naW54L2NvbmYuZCJ9XSxjcmVhdGVkQXQ6IjIwMjQtMDEtMTUgMTA6MzA6MDAiLHJlc3RhcnRQb2xpY3k6ImFsd2F5cyJ9fQogICAgICAgIC5sb2dzPSR7W3t0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjIiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoyMiArMDAwMF0gIkdFVCAvIEhUVFAvMS4xIiAyMDAgNjEyJ30se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMSIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6JzEyNy4wLjAuMSAtIC0gWzIwL0phbi8yMDI0OjE0OjMwOjIxICswMDAwXSAiR0VUIC9hcGkvaGVhbHRoIEhUVFAvMS4xIiAyMDAgMTUnfSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIwIixsZXZlbDoid2FybiIsbWVzc2FnZToidXBzdHJlYW0gdGltZWQgb3V0ICgxMTA6IENvbm5lY3Rpb24gdGltZWQgb3V0KSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTkiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoxOSArMDAwMF0gIlBPU1QgL2FwaS9kYXRhIEhUVFAvMS4xIiAyMDEgODknfV19CiAgICAgICAgQHN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJTdGFydCIpfQogICAgICAgIEBzdG9wPSR7KCk9PmNvbnNvbGUubG9nKCJTdG9wIil9CiAgICAgICAgQHJlc3RhcnQ9JHsoKT0+Y29uc29sZS5sb2coIlJlc3RhcnQiKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHttPT5jb25zb2xlLmxvZygiV29ya3NwYWNlIHJlcXVlc3RlZCBmb3I6IixtLmRldGFpbC5zZXJ2aWNlLm5hbWUpfQogICAgICA+PC9zei1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgYH1yZW5kZXJCYWNrdXBzVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5CYWNrdXBzPC9oMT4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgYmFja3VwIHNjaGVkdWxlcyBhbmQgcmVzdG9yZSBwb2ludHM8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LXNlcnZpY2VzLWJhY2t1cHMtdmlldwogICAgICAgIC5zY2hlZHVsZXM9JHt0aGlzLmRlbW9CYWNrdXBTY2hlZHVsZXN9CiAgICAgICAgLmJhY2t1cHM9JHt0aGlzLmRlbW9CYWNrdXBzfQogICAgICAgIEBjcmVhdGUtc2NoZWR1bGU9JHsoKT0+Y29uc29sZS5sb2coIkNyZWF0ZSBzY2hlZHVsZSIpfQogICAgICAgIEBydW4tbm93PSR7bT0+Y29uc29sZS5sb2coIlJ1biBub3c6IixtLmRldGFpbCl9CiAgICAgICAgQGRvd25sb2FkPSR7bT0+Y29uc29sZS5sb2coIkRvd25sb2FkOiIsbS5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXc+CiAgICBgfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlfQogICAgICAgIC5sb2dzPSR7dGhpcy5kZW1vUGxhdGZvcm1Mb2dzfQogICAgICAgIEBzdGFydD0keygpPT5jb25zb2xlLmxvZygiU3RhcnQiKX0KICAgICAgICBAc3RvcD0keygpPT5jb25zb2xlLmxvZygiU3RvcCIpfQogICAgICAgIEByZXN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJSZXN0YXJ0Iil9CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfWFzeW5jIG9uQWN0aXZhdGUobSl7dGhpcy5hcHB1aT1tLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkRvY2tlciBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJQbGF0Zm9ybSBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJwbGF0Zm9ybS1kZXRhaWwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkJhY2t1cHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50Vmlldz0iYmFja3VwcyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXJ2aWNlcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRGVwbG95IFNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJjcmVhdGUifSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpSZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlZnJlc2giKX0sImFjdGlvbiIpfV19LHtuYW1lOiJRdWljayBGaWx0ZXJzIixpdGVtczpbe2tleToiUnVubmluZyIsaWNvbk5hbWU6Imx1Y2lkZTpQbGF5IixiYWRnZToiMyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgcnVubmluZyIpfSwiYWN0aW9uIil9LHtrZXk6IlN0b3BwZWQiLGljb25OYW1lOiJsdWNpZGU6U3F1YXJlIixiYWRnZToiMSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHN0b3BwZWQiKX0sImFjdGlvbiIpfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWN7UmcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIHdvdCxfUSx1SmEsZzlhPWcoKCk9PntwZSgpO2ljKCk7d290PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxfUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdUphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LW5ldHdvcmsiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld05ldHdvcmsiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sd290KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iY3VycmVudFRhYiJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmN1cnJlbnRUYWIsImdldCIpLHNldDppKCh2LHgpPT57di5jdXJyZW50VGFiPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx3b3QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERvbWFpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4ic2VsZWN0ZWREb21haW4iaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zZWxlY3RlZERvbWFpbiwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnNlbGVjdGVkRG9tYWluPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSx3b3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1hcHB1aT1udWxsOyNlPV9RKHRoaXMsbywicHJveHkiKTtnZXQgY3VycmVudFRhYigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VGFiKGIpe3RoaXMuI2U9Yn1hc3luYyBvbkFjdGl2YXRlKGIpe3RoaXMuYXBwdWk9Yi5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJSZXZlcnNlIFByb3h5IixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0icHJveHkiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkROUyBSZWNvcmRzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZG5zIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJEb21haW5zIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZG9tYWlucyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmKHRoaXMuY3VycmVudFRhYj09PSJwcm94eSI/dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJSZXZlcnNlIFByb3h5Iixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgUm91dGUiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQWRkIHJvdXRlIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiNDIgQWN0aXZlIENvbm5lY3Rpb25zIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6IjE1LDQyMCBSZXF1ZXN0cyBUb2RheSJ9XX1dfSk6dGhpcy5jdXJyZW50VGFiPT09ImRucyI/dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJETlMgUmVjb3JkcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFJlY29yZCIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcmVjb3JkIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgWm9uZSIsaWNvbk5hbWU6Imx1Y2lkZTpVcGxvYWQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkltcG9ydCB6b25lIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiWm9uZXMiLGl0ZW1zOlt7a2V5OiJleGFtcGxlLmNvbSIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiU2VsZWN0IGV4YW1wbGUuY29tIil9LCJhY3Rpb24iKX0se2tleToiZXhhbXBsZS5uZXQiLGljb25OYW1lOiJsdWNpZGU6R2xvYmUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlNlbGVjdCBleGFtcGxlLm5ldCIpfSwiYWN0aW9uIil9LHtrZXk6Im15YXBwLmlvIixpY29uTmFtZToibHVjaWRlOkdsb2JlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJTZWxlY3QgbXlhcHAuaW8iKX0sImFjdGlvbiIpfV19XX0pOih0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWlucyJ8fHRoaXMuY3VycmVudFRhYj09PSJkb21haW4tZGV0YWlsIikmJnRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRG9tYWlucyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIERvbWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgZG9tYWluIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJWZXJpZnkgQWxsIixpY29uTmFtZToibHVjaWRlOkNoZWNrQ2lyY2xlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJWZXJpZnkgYWxsIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiQ2VydGlmaWNhdGVzIixpdGVtczpbe2tleToiVmFsaWQiLGljb25OYW1lOiJsdWNpZGU6U2hpZWxkQ2hlY2siLGJhZGdlOiIzIixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciB2YWxpZCIpfSwiYWN0aW9uIil9LHtrZXk6IkV4cGlyaW5nIFNvb24iLGljb25OYW1lOiJsdWNpZGU6QWxlcnRUcmlhbmdsZSIsYmFkZ2U6IjEiLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGV4cGlyaW5nIil9LCJhY3Rpb24iKX1dfV19KSl9b25EZWFjdGl2YXRlKCl7fSN0PShfUSh0aGlzLGwpLF9RKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkRG9tYWluKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkRG9tYWluKGIpe3RoaXMuI3Q9Yn1kZW1vUHJveHlSb3V0ZXM9KF9RKHRoaXMsdSksW3tpZDoiMSIsZG9tYWluOiJhcGkuZXhhbXBsZS5jb20iLHRhcmdldDoiaHR0cDovL2FwaS1nYXRld2F5OjMwMDAiLHNzbDohMCxzdGF0dXM6ImFjdGl2ZSJ9LHtpZDoiMiIsZG9tYWluOiJhcHAuZXhhbXBsZS5jb20iLHRhcmdldDoiaHR0cDovL2Zyb250ZW5kOjgwODAiLHNzbDohMCxzdGF0dXM6ImFjdGl2ZSJ9LHtpZDoiMyIsZG9tYWluOiJhZG1pbi5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vYWRtaW4tcGFuZWw6NDAwMCIsc3NsOiEwLHN0YXR1czoiYWN0aXZlIn0se2lkOiI0Iixkb21haW46ImxlZ2FjeS5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vbGVnYWN5OjUwMDAiLHNzbDohMSxzdGF0dXM6ImluYWN0aXZlIn1dKTtkZW1vQWNjZXNzTG9ncz1be3RpbWVzdGFtcDoiMTQ6MzA6MjIiLG1ldGhvZDoiR0VUIixwYXRoOiIvYXBpL3VzZXJzIixzdGF0dXM6MjAwLGR1cmF0aW9uOiI0NW1zIixpcDoiMTkyLjE2OC4xLjEwMCJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixtZXRob2Q6IlBPU1QiLHBhdGg6Ii9hcGkvb3JkZXJzIixzdGF0dXM6MjAxLGR1cmF0aW9uOiIxMjBtcyIsaXA6IjE5Mi4xNjguMS4xMDUifSx7dGltZXN0YW1wOiIxNDozMDoyMCIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9hcGkvcHJvZHVjdHMiLHN0YXR1czoyMDAsZHVyYXRpb246Ijg5bXMiLGlwOiIxOTIuMTY4LjEuMTAwIn0se3RpbWVzdGFtcDoiMTQ6MzA6MTkiLG1ldGhvZDoiREVMRVRFIixwYXRoOiIvYXBpL2NhY2hlIixzdGF0dXM6MjA0LGR1cmF0aW9uOiIxMm1zIixpcDoiMTkyLjE2OC4xLjUwIn0se3RpbWVzdGFtcDoiMTQ6MzA6MTgiLG1ldGhvZDoiR0VUIixwYXRoOiIvaGVhbHRoIixzdGF0dXM6MjAwLGR1cmF0aW9uOiI1bXMiLGlwOiIxMC4wLjAuMSJ9XTtkZW1vRG5zUmVjb3Jkcz1be2lkOiIxIix0eXBlOiJBIixuYW1lOiJAIix2YWx1ZToiMTkyLjE2OC4xLjEwMCIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifSx7aWQ6IjIiLHR5cGU6IkEiLG5hbWU6ImFwaSIsdmFsdWU6IjE5Mi4xNjguMS4xMDAiLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIn0se2lkOiIzIix0eXBlOiJDTkFNRSIsbmFtZToid3d3Iix2YWx1ZToiZXhhbXBsZS5jb20iLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIn0se2lkOiI0Iix0eXBlOiJNWCIsbmFtZToiQCIsdmFsdWU6Im1haWwuZXhhbXBsZS5jb20iLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIixwcmlvcml0eToxMH0se2lkOiI1Iix0eXBlOiJUWFQiLG5hbWU6IkAiLHZhbHVlOiJ2PXNwZjEgaW5jbHVkZTpfc3BmLmV4YW1wbGUuY29tIH5hbGwiLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIn1dO2RlbW9Eb21haW5zPVt7aWQ6IjEiLG5hbWU6ImV4YW1wbGUuY29tIixzdGF0dXM6ImFjdGl2ZSIsc3NsOiEwLHNzbEV4cGlyeToiMjAyNC0wNC0xNSIsZG5zUHJvdmlkZXI6IkNsb3VkZmxhcmUiLHJlY29yZENvdW50OjEyfSx7aWQ6IjIiLG5hbWU6ImFwaS5leGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHNzbDohMCxzc2xFeHBpcnk6IjIwMjQtMDUtMjAiLGRuc1Byb3ZpZGVyOiJDbG91ZGZsYXJlIixyZWNvcmRDb3VudDozfSx7aWQ6IjMiLG5hbWU6InN0YWdpbmcuZXhhbXBsZS5jb20iLHN0YXR1czoicGVuZGluZyIsc3NsOiExLHNzbEV4cGlyeTpudWxsLGRuc1Byb3ZpZGVyOiJDbG91ZGZsYXJlIixyZWNvcmRDb3VudDoyfSx7aWQ6IjQiLG5hbWU6ImxlZ2FjeS5leGFtcGxlLm5ldCIsc3RhdHVzOiJhY3RpdmUiLHNzbDohMCxzc2xFeHBpcnk6IjIwMjQtMDItMTAiLGRuc1Byb3ZpZGVyOiJNYW51YWwiLHJlY29yZENvdW50OjV9XTtkZW1vRG9tYWluRGV0YWlsPXtpZDoiMSIsbmFtZToiZXhhbXBsZS5jb20iLHN0YXR1czoiYWN0aXZlIix2ZXJpZmllZDohMCxjcmVhdGVkQXQ6IjIwMjQtMDEtMTAiLHByb3h5Um91dGVzOlsiL2FwaS8qIiwiL2FwcC8qIiwiL2FkbWluLyoiXX07ZGVtb0NlcnRpZmljYXRlPXtpZDoiMSIsZG9tYWluOiJleGFtcGxlLmNvbSIsaXNzdWVyOiJMZXQncyBFbmNyeXB0Iix2YWxpZEZyb206IjIwMjQtMDEtMTAiLHZhbGlkVW50aWw6IjIwMjQtMDQtMTAiLGRheXNSZW1haW5pbmc6NDUsc3RhdHVzOiJ2YWxpZCIsYXV0b1JlbmV3OiEwLGNoYWluOlsiUjMiLCJJU1JHIFJvb3QgWDEiXX07ZGVtb0RvbWFpbkRuc1JlY29yZHM9W3tpZDoiMSIsdHlwZToiQSIsbmFtZToiQCIsdmFsdWU6IjE5Mi4xNjguMS4xMDAiLHR0bDozNjAwfSx7aWQ6IjIiLHR5cGU6IkNOQU1FIixuYW1lOiJ3d3ciLHZhbHVlOiJleGFtcGxlLmNvbSIsdHRsOjM2MDB9LHtpZDoiMyIsdHlwZToiTVgiLG5hbWU6IkAiLHZhbHVlOiJtYWlsLmV4YW1wbGUuY29tIix0dGw6MzYwMCxwcmlvcml0eToxMH0se2lkOiI0Iix0eXBlOiJUWFQiLG5hbWU6IkAiLHZhbHVlOiJ2PXNwZjEgaW5jbHVkZTpfc3BmLmV4YW1wbGUuY29tIH5hbGwiLHR0bDozNjAwfV07c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC50YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogLTFweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWluLWRldGFpbCI/dGhpcy5yZW5kZXJEb21haW5EZXRhaWwoKTp3YAogICAgICAke3RoaXMuY3VycmVudFRhYj09PSJwcm94eSI/dGhpcy5yZW5kZXJQcm94eVZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLnJlbmRlckRuc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWlucyI/dGhpcy5yZW5kZXJEb21haW5zVmlldygpOiIifQogICAgYH1yZW5kZXJQcm94eVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIC5yb3V0ZXM9JHt0aGlzLmRlbW9Qcm94eVJvdXRlc30KICAgICAgICAuYWNjZXNzTG9ncz0ke3RoaXMuZGVtb0FjY2Vzc0xvZ3N9CiAgICAgICAgLnN0YXRzPSR7e2FjdGl2ZUNvbm5lY3Rpb25zOjQyLHJlcXVlc3RzVG9kYXk6MTU0MjAsYnl0ZXNUcmFuc2ZlcnJlZDoiMi40IEdCIn19CiAgICAgICAgQGFkZC1yb3V0ZT0keygpPT5jb25zb2xlLmxvZygiQWRkIHJvdXRlIil9CiAgICAgICAgQGVkaXQtcm91dGU9JHtiPT5jb25zb2xlLmxvZygiRWRpdCByb3V0ZToiLGIuZGV0YWlsKX0KICAgICAgICBAZGVsZXRlLXJvdXRlPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSByb3V0ZToiLGIuZGV0YWlsKX0KICAgICAgPjwvc3otbmV0d29yay1wcm94eS12aWV3PgogICAgYH1yZW5kZXJEbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRucy12aWV3CiAgICAgICAgLnJlY29yZHM9JHt0aGlzLmRlbW9EbnNSZWNvcmRzfQogICAgICAgIC56b25lcz0ke1siZXhhbXBsZS5jb20iLCJleGFtcGxlLm5ldCIsIm15YXBwLmlvIl19CiAgICAgICAgLnNlbGVjdGVkWm9uZT0keyJleGFtcGxlLmNvbSJ9CiAgICAgICAgQGFkZC1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWNvcmQiKX0KICAgICAgICBAZWRpdC1yZWNvcmQ9JHtiPT5jb25zb2xlLmxvZygiRWRpdCByZWNvcmQ6IixiLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1yZWNvcmQ9JHtiPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlY29yZDoiLGIuZGV0YWlsKX0KICAgICAgICBAY2hhbmdlLXpvbmU9JHtiPT5jb25zb2xlLmxvZygiQ2hhbmdlIHpvbmU6IixiLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG5zLXZpZXc+CiAgICBgfXJlbmRlckRvbWFpbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRvbWFpbnMtdmlldwogICAgICAgIC5kb21haW5zPSR7dGhpcy5kZW1vRG9tYWluc30KICAgICAgICBAYWRkLWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfQogICAgICAgIEB2aWV3LWRvbWFpbj0ke2I9Pnt0aGlzLnNlbGVjdGVkRG9tYWluPWIuZGV0YWlsLHRoaXMuY3VycmVudFRhYj0iZG9tYWluLWRldGFpbCJ9fQogICAgICAgIEByZW5ldy1zc2w9JHtiPT5jb25zb2xlLmxvZygiUmVuZXcgU1NMOiIsYi5kZXRhaWwpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSBkb21haW46IixiLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG9tYWlucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5EZXRhaWwoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRUYWI9ImRvbWFpbnMifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gRG9tYWlucwogICAgICA8L2J1dHRvbj4KCiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7dGhpcy5kZW1vRG9tYWluRGV0YWlsfQogICAgICAgIC5jZXJ0aWZpY2F0ZT0ke3RoaXMuZGVtb0NlcnRpZmljYXRlfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5kZW1vRG9tYWluRG5zUmVjb3Jkc30KICAgICAgICBAdmVyaWZ5LWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiVmVyaWZ5IGRvbWFpbiIpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7KCk9Pntjb25zb2xlLmxvZygiRGVsZXRlIGRvbWFpbiIpLHRoaXMuY3VycmVudFRhYj0iZG9tYWlucyJ9fQogICAgICAgIEByZW5ldy1jZXJ0aWZpY2F0ZT0keygpPT5jb25zb2xlLmxvZygiUmVuZXcgY2VydGlmaWNhdGUiKX0KICAgICAgICBAYWRkLWRucy1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCBETlMgcmVjb3JkIil9CiAgICAgICAgQGVkaXQtZG5zLXJlY29yZD0ke2I9PmNvbnNvbGUubG9nKCJFZGl0IEROUyByZWNvcmQ6IixiLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1kbnMtcmVjb3JkPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSBETlMgcmVjb3JkOiIsYi5kZXRhaWwpfQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfXN0YXRpY3tfUShhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgYjlhLGtvdCxwSmEsdjlhPWcoKCk9PntwZSgpO2ljKCk7YjlhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxrb3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHBKYT0oKCk9PntsZXQgcz1bbmUoInN6LWRlbW8tdmlldy1yZWdpc3RyaWVzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdSZWdpc3RyaWVzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxiOWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJjdXJyZW50VGFiImluIHUsImhhcyIpLGdldDppKHU9PnUuY3VycmVudFRhYiwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmN1cnJlbnRUYWI9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLGI5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfWFwcHVpPW51bGw7I2U9a290KHRoaXMsbywib25lYm94Iik7Z2V0IGN1cnJlbnRUYWIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFRhYihkKXt0aGlzLiNlPWR9YXN5bmMgb25BY3RpdmF0ZShkKXt0aGlzLmFwcHVpPWQuYXBwdWksdGhpcy5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiUmVnaXN0cnkgQWR2ZXJ0aXNlbWVudCIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9Im9uZWJveCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRXh0ZXJuYWwgUmVnaXN0cmllcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9ImV4dGVybmFsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXt0aGlzLmFwcHVpJiYodGhpcy5jdXJyZW50VGFiPT09Im9uZWJveCI/dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJSZWdpc3RyeSBBZHZlcnRpc2VtZW50Iixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJQdXNoIEltYWdlIixpY29uTmFtZToibHVjaWRlOlVwbG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUHVzaCBpbWFnZSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLHZhcmlhbnQ6ImRhbmdlciIsa2V5OiJHYXJiYWdlIENvbGxlY3QiLGljb25OYW1lOiJsdWNpZGU6VHJhc2gyIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJHQyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiNCBJbWFnZXMifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiNjQwIE1CIFRvdGFsIn1dfV19KTp0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkV4dGVybmFsIFJlZ2lzdHJpZXMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSZWdpc3RyeSIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcmVnaXN0cnkiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IlRlc3QgQWxsIixpY29uTmFtZToibHVjaWRlOkNoZWNrQ2lyY2xlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJUZXN0IGFsbCIpfSwiYWN0aW9uIil9XX0se25hbWU6IkNvbm5lY3RlZCIsaXRlbXM6W3trZXk6IkRvY2tlciBIdWIiLGljb25OYW1lOiJsdWNpZGU6Qm94IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJEb2NrZXIgSHViIil9LCJhY3Rpb24iKX0se2tleToiR0hDUiIsaWNvbk5hbWU6Imx1Y2lkZTpHaXRodWIiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkdIQ1IiKX0sImFjdGlvbiIpfV19XX0pKX1vbkRlYWN0aXZhdGUoKXt9ZGVtb09uZWJveEltYWdlcz0oa290KHRoaXMsbCksW3tpZDoiMSIsbmFtZToiYXBpLWdhdGV3YXkiLHRhZ3M6WyJsYXRlc3QiLCJ2Mi4xLjAiLCJ2Mi4wLjAiXSxzaXplOiIyNTYgTUIiLHVwZGF0ZWQ6IjIwMjQtMDEtMjAiLHB1bGxzOjE0Mn0se2lkOiIyIixuYW1lOiJmcm9udGVuZCIsdGFnczpbImxhdGVzdCIsInYxLjUuMCJdLHNpemU6IjEyOCBNQiIsdXBkYXRlZDoiMjAyNC0wMS0xOSIscHVsbHM6ODl9LHtpZDoiMyIsbmFtZToid29ya2VyLXNlcnZpY2UiLHRhZ3M6WyJsYXRlc3QiXSxzaXplOiI2NCBNQiIsdXBkYXRlZDoiMjAyNC0wMS0xOCIscHVsbHM6NTZ9LHtpZDoiNCIsbmFtZToiYWRtaW4tcGFuZWwiLHRhZ3M6WyJsYXRlc3QiLCJ2My4wLjAiLCJ2Mi45LjAiXSxzaXplOiIxOTIgTUIiLHVwZGF0ZWQ6IjIwMjQtMDEtMTciLHB1bGxzOjM0fV0pO2RlbW9FeHRlcm5hbFJlZ2lzdHJpZXM9W3tpZDoiMSIsbmFtZToiRG9ja2VyIEh1YiIsdXJsOiJkb2NrZXIuaW8iLHN0YXR1czoiY29ubmVjdGVkIixpbWFnZXM6MTJ9LHtpZDoiMiIsbmFtZToiR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSIsdXJsOiJnaGNyLmlvIixzdGF0dXM6ImNvbm5lY3RlZCIsaW1hZ2VzOjh9LHtpZDoiMyIsbmFtZToiQVdTIEVDUiIsdXJsOiIxMjM0NTY3ODkuZGtyLmVjci51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsc3RhdHVzOiJlcnJvciIsaW1hZ2VzOjB9XTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0ib25lYm94Ij93YAogICAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgICAuaW1hZ2VzPSR7dGhpcy5kZW1vT25lYm94SW1hZ2VzfQogICAgICAgICAgLnN0YXRzPSR7e3RvdGFsSW1hZ2VzOjQsdG90YWxTaXplOiI2NDAgTUIiLHRvdGFsUHVsbHM6MzIxfX0KICAgICAgICAgIEB2aWV3LWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIlZpZXcgaW1hZ2U6IixkLmRldGFpbCl9CiAgICAgICAgICBAZGVsZXRlLWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSBpbWFnZToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtdGFnPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSB0YWc6IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudD4KICAgICAgYDp3YAogICAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgICAucmVnaXN0cmllcz0ke3RoaXMuZGVtb0V4dGVybmFsUmVnaXN0cmllc30KICAgICAgICAgIEBhZGQtcmVnaXN0cnk9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWdpc3RyeSIpfQogICAgICAgICAgQGVkaXQtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRWRpdCByZWdpc3RyeToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlZ2lzdHJ5OiIsZC5kZXRhaWwpfQogICAgICAgICAgQHRlc3QtY29ubmVjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUZXN0IGNvbm5lY3Rpb246IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldz4KICAgICAgYH0KICAgIGB9c3RhdGlje2tvdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgaEphLGZKYSxtSmEseDlhPWcoKCk9PntwZSgpO2ljKCk7aEphPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmSmE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG1KYT0oKCk9PntsZXQgcz1bbmUoInN6LWRlbW8tdmlldy10b2tlbnMiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld1Rva2VucyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2hKYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfWFwcHVpPW51bGw7YXN5bmMgb25BY3RpdmF0ZShvKXt0aGlzLmFwcHVpPW8uYXBwdWksdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUb2tlbnMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBHbG9iYWwgVG9rZW4iLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIGdsb2JhbCB0b2tlbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIENJIFRva2VuIixpY29uTmFtZToibHVjaWRlOkdpdEJyYW5jaCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIENJIHRva2VuIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiVG9rZW4gVHlwZXMiLGl0ZW1zOlt7a2V5OiJHbG9iYWwgVG9rZW5zIixpY29uTmFtZToibHVjaWRlOktleSIsYmFkZ2U6IjMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBnbG9iYWwiKX0sImFjdGlvbiIpfSx7a2V5OiJDSSBUb2tlbnMiLGljb25OYW1lOiJsdWNpZGU6Q3B1IixiYWRnZToiMyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIENJIil9LCJhY3Rpb24iKX1dfV19KX1vbkRlYWN0aXZhdGUoKXt9ZGVtb0dsb2JhbFRva2Vucz1be2lkOiIxIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTUiLGxhc3RVc2VkOiIyMDI0LTAxLTIwIn0se2lkOiIyIixuYW1lOiJEZXZlbG9wbWVudCIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTAifSx7aWQ6IjMiLG5hbWU6IlByb2R1Y3Rpb24gRGVwbG95Iix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wNSIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifV07ZGVtb0NpVG9rZW5zPVt7aWQ6IjQiLG5hbWU6ImFwaS1nYXRld2F5LWNpIix0eXBlOiJjaSIsc2VydmljZToiYXBpLWdhdGV3YXkiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xOCIsbGFzdFVzZWQ6IjIwMjQtMDEtMjAifSx7aWQ6IjUiLG5hbWU6ImZyb250ZW5kLWNpIix0eXBlOiJjaSIsc2VydmljZToiZnJvbnRlbmQiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMiIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifSx7aWQ6IjYiLG5hbWU6Indvcmtlci1zZXJ2aWNlLWNpIix0eXBlOiJjaSIsc2VydmljZToid29ya2VyLXNlcnZpY2UiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wOCJ9XTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPlRva2VuczwvaDE+CiAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPk1hbmFnZSByZWdpc3RyeSBhY2Nlc3MgdG9rZW5zIGZvciBDSS9DRCBwaXBlbGluZXM8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LXRva2Vucy12aWV3CiAgICAgICAgLmdsb2JhbFRva2Vucz0ke3RoaXMuZGVtb0dsb2JhbFRva2Vuc30KICAgICAgICAuY2lUb2tlbnM9JHt0aGlzLmRlbW9DaVRva2Vuc30KICAgICAgICBAY3JlYXRlPSR7bz0+Y29uc29sZS5sb2coIkNyZWF0ZSB0b2tlbjoiLG8uZGV0YWlsKX0KICAgICAgICBAY29weT0ke289PmNvbnNvbGUubG9nKCJDb3B5IHRva2VuOiIsby5kZXRhaWwpfQogICAgICAgIEByZWdlbmVyYXRlPSR7bz0+Y29uc29sZS5sb2coIlJlZ2VuZXJhdGUgdG9rZW46IixvLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZT0ke289PmNvbnNvbGUubG9nKCJEZWxldGUgdG9rZW46IixvLmRldGFpbCl9CiAgICAgID48L3N6LXRva2Vucy12aWV3PgogICAgYH1zdGF0aWN7ZkphKGEsdCl9fTtyZXR1cm4gbj1hfSkoKX0pO3ZhciBnSmEsYkphLHZKYSx5OWE9ZygoKT0+e3BlKCk7aWMoKTtnSmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGJKYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdkphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LXNldHRpbmdzIildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdTZXR0aW5ncyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2dKYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfWFwcHVpPW51bGw7YXN5bmMgb25BY3RpdmF0ZShvKXt0aGlzLmFwcHVpPW8uYXBwdWksdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXR0aW5ncyIsZ3JvdXBzOlt7bmFtZToiQ2F0ZWdvcmllcyIsaXRlbXM6W3trZXk6IkdlbmVyYWwiLGljb25OYW1lOiJsdWNpZGU6U2V0dGluZ3MiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkdlbmVyYWwgc2V0dGluZ3MiKX0sImFjdGlvbiIpfSx7a2V5OiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOk5ldHdvcmsiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIk5ldHdvcmsgc2V0dGluZ3MiKX0sImFjdGlvbiIpfSx7a2V5OiJTZWN1cml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpTaGllbGQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlNlY3VyaXR5IHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiQ2VydGlmaWNhdGVzIixpY29uTmFtZToibHVjaWRlOkZpbGVCYWRnZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ2VydGlmaWNhdGUgc2V0dGluZ3MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJFeHBvcnQgQ29uZmlnIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJFeHBvcnQgY29uZmlnIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgQ29uZmlnIixpY29uTmFtZToibHVjaWRlOlVwbG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiSW1wb3J0IGNvbmZpZyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLHZhcmlhbnQ6ImRhbmdlciIsa2V5OiJSZXNldCB0byBEZWZhdWx0IixpY29uTmFtZToibHVjaWRlOlJvdGF0ZUNjdyIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXNldCBhbGwgc2V0dGluZ3MgdG8gZGVmYXVsdD8iLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlc2V0IHNldHRpbmdzIil9LCJhY3Rpb24iKX1dfV19KX1vbkRlYWN0aXZhdGUoKXt9ZGVtb1NldHRpbmdzPXtkYXJrTW9kZTohMCxjbG91ZGZsYXJlVG9rZW46IiIsY2xvdWRmbGFyZVpvbmVJZDoiIixhdXRvUmVuZXdDZXJ0czohMCxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiYWRtaW5Ac2VydmUuem9uZSIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiEwfTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLnNldHRpbmdzLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPlNldHRpbmdzPC9oMT4KICAgICAgICA8cCBjbGFzcz0icGFnZS1zdWJ0aXRsZSI+Q29uZmlndXJlIHlvdXIgb25lYm94IGluc3RhbmNlPC9wPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgPHN6LXNldHRpbmdzLXZpZXcKICAgICAgICAgIC5zZXR0aW5ncz0ke3RoaXMuZGVtb1NldHRpbmdzfQogICAgICAgICAgY3VycmVudFVzZXI9ImFkbWluIgogICAgICAgICAgQHNldHRpbmctY2hhbmdlPSR7bz0+Y29uc29sZS5sb2coIlNldHRpbmcgY2hhbmdlOiIsby5kZXRhaWwpfQogICAgICAgICAgQGNoYW5nZS1wYXNzd29yZD0ke289PmNvbnNvbGUubG9nKCJDaGFuZ2UgcGFzc3dvcmQ6IixvLmRldGFpbCl9CiAgICAgICAgICBAcmVzZXQ9JHsoKT0+Y29uc29sZS5sb2coIlJlc2V0IHNldHRpbmdzIil9CiAgICAgICAgICBAc2F2ZT0ke289PmNvbnNvbGUubG9nKCJTYXZlIHNldHRpbmdzOiIsby5kZXRhaWwpfQogICAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7YkphKGEsdCl9fTtyZXR1cm4gbj1hfSkoKX0pO3ZhciBUMWUsT2cseEphLHc5YT1nKCgpPT57cGUoKTtpYygpO1QxZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sT2c9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHhKYT0oKCk9PntsZXQgcz1bbmUoInN6LWRlbW8tdmlldy1tdGEiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld010YSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLFQxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJjdXJyZW50VmlldyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuY3VycmVudFZpZXc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLFQxZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRW1haWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNlbGVjdGVkRW1haWwiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZWxlY3RlZEVtYWlsLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VsZWN0ZWRFbWFpbD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksVDFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudERpcmVjdGlvbkZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iY3VycmVudERpcmVjdGlvbkZpbHRlciJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXIsImdldCIpLHNldDppKChmLHkpPT57Zi5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxUMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1hcHB1aT1udWxsOyNlPU9nKHRoaXMsbywibGlzdCIpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmlldyhtKXt0aGlzLiNlPW19I3Q9KE9nKHRoaXMsbCksT2codGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRFbWFpbCgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZEVtYWlsKG0pe3RoaXMuI3Q9bX0jYT0oT2codGhpcyx1KSxPZyh0aGlzLGIsImFsbCIpKTtnZXQgY3VycmVudERpcmVjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50RGlyZWN0aW9uRmlsdGVyKG0pe3RoaXMuI2E9bX1kZW1vRW1haWxzPShPZyh0aGlzLHYpLFt7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIixzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIn0se2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6Mjg6MTAiLG1lc3NhZ2VJZDoiPGRlZjQ1NkBzZXJ2ZS56b25lPiIsc2l6ZToiOC4yIEtCIn0se2lkOiIzIixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsdG86ImFkbWluQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IifSx7aWQ6IjQiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicmVqZWN0ZWQiLGZyb206ImJpbGxpbmdAc2VydmUuem9uZSIsdG86ImJsb2NrZWRAc3BhbS1kb21haW4udGVzdCIsc3ViamVjdDoiSW52b2ljZSAjMjAyNC0wMDEiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyMDo0NSIsbWVzc2FnZUlkOiI8amtsMDEyQHNlcnZlLnpvbmU+IixzaXplOiI0NS42IEtCIn0se2lkOiI1IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlZmVycmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJzbG93QHJlbW90ZS1zZXJ2ZXIudGVzdCIsc3ViamVjdDoiUGFzc3dvcmQgUmVzZXQgUmVxdWVzdCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjE1OjMwIixtZXNzYWdlSWQ6Ijxtbm8zNDVAc2VydmUuem9uZT4iLHNpemU6IjYuOCBLQiJ9LHtpZDoiNiIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToiY2lAZ2l0aHViLmNvbSIsdG86ImRldm9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJCdWlsZCAjNDUyMSBwYXNzZWQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxMDowMCIsbWVzc2FnZUlkOiI8cHFyNjc4QGdpdGh1Yi5jb20+IixzaXplOiIxNS4zIEtCIn0se2lkOiI3IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InBlbmRpbmciLGZyb206InJlcG9ydHNAc2VydmUuem9uZSIsdG86InRlYW1Ac2VydmUuem9uZSIsc3ViamVjdDoiV2Vla2x5IEluZnJhc3RydWN0dXJlIFJlcG9ydCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjA1OjAwIixtZXNzYWdlSWQ6IjxzdHU5MDFAc2VydmUuem9uZT4iLHNpemU6IjEwMi43IEtCIn0se2lkOiI4IixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJtb25pdG9yaW5nQHVwdGltZS5pbyIsdG86Im9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJVcHRpbWUgUmVwb3J0OiA5OS45OCUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxMzo1NTowMCIsbWVzc2FnZUlkOiI8dnd4MjM0QHVwdGltZS5pbz4iLHNpemU6IjkuMSBLQiJ9XSk7ZGVtb0VtYWlsRGV0YWlscz17MTp7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIix0b0xpc3Q6WyJ1c2VyQGV4YW1wbGUuY29tIl0sc3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MzA6MjIiLG1lc3NhZ2VJZDoiPGFiYzEyM0BzZXJ2ZS56b25lPiIsc2l6ZToiMTIuNCBLQiIsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuZXhhbXBsZS5jb20gSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLVNUQVJUVExTIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlNUQVJUVExTIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjAgUmVhZHkgdG8gc3RhcnQgVExTIixyZXNwb25zZUNvZGU6MjIwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtQVVUSCBQTEFJTiBMT0dJTiIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgU0laRSA1MjQyODgwMCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJBVVRIIFBMQUlOIEFIVnpaWElBY0dGemMzZHZjbVE9In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMzUgMi43LjAgQXV0aGVudGljYXRpb24gc3VjY2Vzc2Z1bCIscmVzcG9uc2VDb2RlOjIzNX0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PG5vcmVwbHlAc2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjx1c2VyQGV4YW1wbGUuY29tPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIEFjY2VwdGVkIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkRBVEEifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6JzM1NCBFbnRlciBtZXNzYWdlLCBlbmRpbmcgd2l0aCAiLiIgb24gYSBsaW5lIGJ5IGl0c2VsZicscmVzcG9uc2VDb2RlOjM1NH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiIuIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0sgaWQ9MXBRMnJTLTAwMDNBYi1DNCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJRVUlUIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjEgbWFpbC5leGFtcGxlLmNvbSBjbG9zaW5nIGNvbm5lY3Rpb24iLHJlc3BvbnNlQ29kZToyMjF9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjEwLjAuMS41MCIsc291cmNlSG9zdG5hbWU6Im1haWwuc2VydmUuem9uZSIsZGVzdGluYXRpb25JcDoiOTMuMTg0LjIxNi4zNCIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjMiLHRsc0NpcGhlcjoiVExTX0FFU18yNTZfR0NNX1NIQTM4NCIsYXV0aGVudGljYXRlZDohMCxhdXRoTWV0aG9kOiJQTEFJTiIsYXV0aFVzZXI6Im5vcmVwbHlAc2VydmUuem9uZSJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46InNlcnZlLnpvbmUiLGRraW06InBhc3MiLGRraW1Eb21haW46InNlcnZlLnpvbmUiLGRtYXJjOiJwYXNzIixkbWFyY1BvbGljeToicmVqZWN0In0saGVhZGVyczp7RnJvbToibm9yZXBseUBzZXJ2ZS56b25lIixUbzoidXNlckBleGFtcGxlLmNvbSIsU3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIixEYXRlOiJNb24sIDE1IEphbiAyMDI0IDE0OjMwOjIyICswMDAwIiwiTUlNRS1WZXJzaW9uIjoiMS4wIiwiQ29udGVudC1UeXBlIjoidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sYm9keTpgPGh0bWw+CjxoZWFkPjx0aXRsZT5XZWxjb21lPC90aXRsZT48L2hlYWQ+Cjxib2R5PgogIDxoMT5XZWxjb21lIHRvIHNlcnZlLnpvbmUhPC9oMT4KICA8cD5Zb3VyIGFjY291bnQgaGFzIGJlZW4gY3JlYXRlZCBzdWNjZXNzZnVsbHkuPC9wPgogIDxwPkdldCBzdGFydGVkIGJ5IHZpc2l0aW5nIHlvdXIgPGEgaHJlZj0iaHR0cHM6Ly9zZXJ2ZS56b25lL2Rhc2hib2FyZCI+ZGFzaGJvYXJkPC9hPi48L3A+CjwvYm9keT4KPC9odG1sPmB9LDI6e2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHRvTGlzdDpbImludmFsaWRAbm93aGVyZS50ZXN0Il0sc3ViamVjdDoiU2VydmljZSBBbGVydDogQ1BVIFVzYWdlIEhpZ2giLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyODoxMCIsbWVzc2FnZUlkOiI8ZGVmNDU2QHNlcnZlLnpvbmU+IixzaXplOiI4LjIgS0IiLHJlamVjdGlvblJlYXNvbjoiNTUwIDUuMS4xIFRoZSBlbWFpbCBhY2NvdW50IHRoYXQgeW91IHRyaWVkIHRvIHJlYWNoIGRvZXMgbm90IGV4aXN0LiIsYm91bmNlTWVzc2FnZTpgRGVsaXZlcnkgdG8gdGhlIGZvbGxvd2luZyByZWNpcGllbnQgZmFpbGVkIHBlcm1hbmVudGx5OgoKICAgIGludmFsaWRAbm93aGVyZS50ZXN0CgpUZWNobmljYWwgZGV0YWlscyBvZiBwZXJtYW5lbnQgZmFpbHVyZToKR29vZ2xlIHRyaWVkIHRvIGRlbGl2ZXIgeW91ciBtZXNzYWdlLCBidXQgaXQgd2FzIHJlamVjdGVkIGJ5IHRoZSBzZXJ2ZXIgZm9yIHRoZSByZWNpcGllbnQgZG9tYWluIG5vd2hlcmUudGVzdC5gLHNtdHBMb2c6W3t0aW1lc3RhbXA6IjE0OjI4OjA4IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLnNlcnZlLnpvbmUifSx7dGltZXN0YW1wOiIxNDoyODowOCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLm5vd2hlcmUudGVzdCBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6Mjg6MDgiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PGFsZXJ0c0BzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjI4OjA5IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyODowOSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlJDUFQgVE86PGludmFsaWRAbm93aGVyZS50ZXN0PiJ9LHt0aW1lc3RhbXA6IjE0OjI4OjEwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiNTUwIDUuMS4xIFRoZSBlbWFpbCBhY2NvdW50IHRoYXQgeW91IHRyaWVkIHRvIHJlYWNoIGRvZXMgbm90IGV4aXN0LiIscmVzcG9uc2VDb2RlOjU1MH0se3RpbWVzdGFtcDoiMTQ6Mjg6MTAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJRVUlUIn0se3RpbWVzdGFtcDoiMTQ6Mjg6MTAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjEgQnllIixyZXNwb25zZUNvZGU6MjIxfV0sY29ubmVjdGlvbkluZm86e3NvdXJjZUlwOiIxMC4wLjEuNTAiLHNvdXJjZUhvc3RuYW1lOiJtYWlsLnNlcnZlLnpvbmUiLGRlc3RpbmF0aW9uSXA6IjE5OC41MS4xMDAuMjUiLGRlc3RpbmF0aW9uUG9ydDoyNSx0bHNWZXJzaW9uOiJUTFN2MS4yIix0bHNDaXBoZXI6IkVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiIsYXV0aGVudGljYXRlZDohMCxhdXRoTWV0aG9kOiJQTEFJTiIsYXV0aFVzZXI6ImFsZXJ0c0BzZXJ2ZS56b25lIn0sYXV0aGVudGljYXRpb25SZXN1bHRzOntzcGY6InBhc3MiLHNwZkRvbWFpbjoic2VydmUuem9uZSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoic2VydmUuem9uZSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJxdWFyYW50aW5lIn0saGVhZGVyczp7RnJvbToiYWxlcnRzQHNlcnZlLnpvbmUiLFRvOiJpbnZhbGlkQG5vd2hlcmUudGVzdCIsU3ViamVjdDoiU2VydmljZSBBbGVydDogQ1BVIFVzYWdlIEhpZ2giLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6Mjg6MTAgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04In0sYm9keTpgQUxFUlQ6IENQVSBVc2FnZSBIaWdoCgpTZXJ2aWNlOiBhcGktZ2F0ZXdheQpDdXJyZW50IFVzYWdlOiA5NC4yJQpUaHJlc2hvbGQ6IDkwJQpUaW1lc3RhbXA6IDIwMjQtMDEtMTUgMTQ6Mjg6MDAgVVRDCgpQbGVhc2UgaW52ZXN0aWdhdGUgaW1tZWRpYXRlbHkuYH0sMzp7aWQ6IjMiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206InN1cHBvcnRAY3VzdG9tZXIuY29tIix0bzoiYWRtaW5Ac2VydmUuem9uZSIsdG9MaXN0OlsiYWRtaW5Ac2VydmUuem9uZSJdLGNjOlsib3BzQHNlcnZlLnpvbmUiXSxzdWJqZWN0OiJSZTogSW5mcmFzdHJ1Y3R1cmUgUmV2aWV3Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MjU6MDAiLG1lc3NhZ2VJZDoiPGdoaTc4OUBjdXN0b21lci5jb20+IixzaXplOiIyNC4xIEtCIixzbXRwTG9nOlt7dGltZXN0YW1wOiIxNDoyNDo1OCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5jdXN0b21lci5jb20ifSx7dGltZXN0YW1wOiIxNDoyNDo1OCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLnNlcnZlLnpvbmUgSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLVNUQVJUVExTIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNDo1OCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlNUQVJUVExTIn0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjAgUmVhZHkgdG8gc3RhcnQgVExTIixyZXNwb25zZUNvZGU6MjIwfSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8c3VwcG9ydEBjdXN0b21lci5jb20+In0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0siLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiUkNQVCBUTzo8YWRtaW5Ac2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBBY2NlcHRlZCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJEQVRBIn0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIzNTQgRW50ZXIgbWVzc2FnZSIscmVzcG9uc2VDb2RlOjM1NH0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiIuIn0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0sgaWQ9MmJSM3NULTAwMDRDZC1FNSIscmVzcG9uc2VDb2RlOjI1MH1dLGNvbm5lY3Rpb25JbmZvOntzb3VyY2VJcDoiMjAzLjAuMTEzLjQ1Iixzb3VyY2VIb3N0bmFtZToibWFpbC5jdXN0b21lci5jb20iLGRlc3RpbmF0aW9uSXA6IjEwLjAuMS41MCIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjMiLHRsc0NpcGhlcjoiVExTX0FFU18xMjhfR0NNX1NIQTI1NiIsYXV0aGVudGljYXRlZDohMSxhdXRoTWV0aG9kOiIiLGF1dGhVc2VyOiIifSxhdXRoZW50aWNhdGlvblJlc3VsdHM6e3NwZjoicGFzcyIsc3BmRG9tYWluOiJjdXN0b21lci5jb20iLGRraW06InBhc3MiLGRraW1Eb21haW46ImN1c3RvbWVyLmNvbSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJub25lIn0saGVhZGVyczp7RnJvbToic3VwcG9ydEBjdXN0b21lci5jb20iLFRvOiJhZG1pbkBzZXJ2ZS56b25lIixDQzoib3BzQHNlcnZlLnpvbmUiLFN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6MjU6MDAgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04IiwiSW4tUmVwbHktVG8iOiI8cHJldjEyM0BzZXJ2ZS56b25lPiJ9LGJvZHk6YEhpIEFkbWluLAoKVGhhbmsgeW91IGZvciB0aGUgZGV0YWlsZWQgaW5mcmFzdHJ1Y3R1cmUgcmV2aWV3IHJlcG9ydC4KCldlIGhhdmUgcmV2aWV3ZWQgdGhlIHJlY29tbWVuZGF0aW9ucyBhbmQgd291bGQgbGlrZSB0bwpwcm9jZWVkIHdpdGggdGhlIGZvbGxvd2luZzoKCjEuIFVwZ3JhZGUgdG8gdGhlIFBybyB0aWVyCjIuIEVuYWJsZSBhdXRvbWF0aWMgYmFja3VwcwozLiBTZXQgdXAgbW9uaXRvcmluZyBhbGVydHMKClBsZWFzZSBsZXQgdXMga25vdyB0aGUgdGltZWxpbmUgZm9yIHRoZXNlIGNoYW5nZXMuCgpCZXN0IHJlZ2FyZHMsCkN1c3RvbWVyIFN1cHBvcnQgVGVhbWB9fTthc3luYyBvbkFjdGl2YXRlKG0pe3RoaXMuYXBwdWk9bS5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJBbGwgRW1haWxzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudERpcmVjdGlvbkZpbHRlcj0iYWxsIix0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJJbmJvdW5kIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudERpcmVjdGlvbkZpbHRlcj0iaW5ib3VuZCIsdGhpcy5jdXJyZW50Vmlldz0ibGlzdCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiT3V0Ym91bmQiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPSJvdXRib3VuZCIsdGhpcy5jdXJyZW50Vmlldz0ibGlzdCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJFbWFpbCAvIE1UQSIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpSZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlZnJlc2ggZW1haWxzIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJFeHBvcnQgTG9ncyIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRXhwb3J0IGxvZ3MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0dXMgRmlsdGVycyIsaXRlbXM6W3trZXk6IkRlbGl2ZXJlZCIsaWNvbk5hbWU6Imx1Y2lkZTpDaGVja0NpcmNsZSIsYmFkZ2U6IjUiLGJhZGdlVmFyaWFudDoic3VjY2VzcyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGRlbGl2ZXJlZCIpfSwiYWN0aW9uIil9LHtrZXk6IkJvdW5jZWQiLGljb25OYW1lOiJsdWNpZGU6WENpcmNsZSIsYmFkZ2U6IjEiLGJhZGdlVmFyaWFudDoiZXJyb3IiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBib3VuY2VkIil9LCJhY3Rpb24iKX0se2tleToiRGVmZXJyZWQiLGljb25OYW1lOiJsdWNpZGU6Q2xvY2siLGJhZGdlOiIxIixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBkZWZlcnJlZCIpfSwiYWN0aW9uIil9LHtrZXk6IlBlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6TG9hZGVyIixiYWRnZToiMSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHBlbmRpbmciKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0aXN0aWNzIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IjggVG90YWwgRW1haWxzIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6IjYyLjUlIERlbGl2ZXJ5IFJhdGUifV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIiYmdGhpcy5zZWxlY3RlZEVtYWlsP3dgCiAgICAgICAgPHN6LW10YS1kZXRhaWwtdmlldwogICAgICAgICAgLmVtYWlsPSR7dGhpcy5zZWxlY3RlZEVtYWlsfQogICAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRFbWFpbD1udWxsfX0KICAgICAgICA+PC9zei1tdGEtZGV0YWlsLXZpZXc+CiAgICAgIGA6d2AKICAgICAgPHN6LW10YS1saXN0LXZpZXcKICAgICAgICAuZW1haWxzPSR7dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPT09ImFsbCI/dGhpcy5kZW1vRW1haWxzOnRoaXMuZGVtb0VtYWlscy5maWx0ZXIobT0+bS5kaXJlY3Rpb249PT10aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXIpfQogICAgICAgIEBlbWFpbC1jbGljaz0ke209PnRoaXMuaGFuZGxlRW1haWxDbGljayhtLmRldGFpbCl9CiAgICAgID48L3N6LW10YS1saXN0LXZpZXc+CiAgICBgfWhhbmRsZUVtYWlsQ2xpY2sobSl7bGV0IGY9dGhpcy5kZW1vRW1haWxEZXRhaWxzW20uaWRdO2Y/KHRoaXMuc2VsZWN0ZWRFbWFpbD1mLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIpOmNvbnNvbGUubG9nKCJObyBkZXRhaWwgZGF0YSBhdmFpbGFibGUgZm9yIGVtYWlsOiIsbS5pZCl9c3RhdGlje09nKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBrOWEsU290LHlKYSxTOWE9ZygoKT0+e3BlKCk7aWMoKTtrOWE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFNvdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0seUphPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LXJvdXRlcyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3Um91dGVzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxrOWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJjdXJyZW50VGFiImluIHUsImhhcyIpLGdldDppKHU9PnUuY3VycmVudFRhYiwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LmN1cnJlbnRUYWI9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLGs5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfWFwcHVpPW51bGw7I2U9U290KHRoaXMsbywiYWxsIik7Z2V0IGN1cnJlbnRUYWIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFRhYihkKXt0aGlzLiNlPWR9ZGVtb1JvdXRlcz0oU290KHRoaXMsbCksW3tpZDoicm91dGUtMSIsbmFtZToiV2ViIEZyb250ZW5kIixkZXNjcmlwdGlvbjoiTWFpbiB3ZWJzaXRlIHdpdGggVExTIHRlcm1pbmF0aW9uIGFuZCBhdXRvbWF0aWMgY2VydGlmaWNhdGVzIixlbmFibGVkOiEwLHByaW9yaXR5OjEwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6WyJzZXJ2ZS56b25lIiwid3d3LnNlcnZlLnpvbmUiXSxwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4xMCIscG9ydDozZTN9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtMiIsbmFtZToiSFRUUCBSZWRpcmVjdCIsZGVzY3JpcHRpb246IlJlZGlyZWN0cyBhbGwgSFRUUCB0cmFmZmljIHRvIEhUVFBTIixlbmFibGVkOiEwLHByaW9yaXR5OjEwMCx0YWdzOlsid2ViIiwiaHR0cCIsInJlZGlyZWN0Il0sbWF0Y2g6e3BvcnRzOjgwLGRvbWFpbnM6WyJzZXJ2ZS56b25lIiwid3d3LnNlcnZlLnpvbmUiXSxwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToic29ja2V0LWhhbmRsZXIifX0se2lkOiJyb3V0ZS0zIixuYW1lOiJTTVRQIEluYm91bmQiLGRlc2NyaXB0aW9uOiJJbmJvdW5kIGVtYWlsIHJlbGF5IGZvciBzZXJ2ZS56b25lIGRvbWFpbiIsZW5hYmxlZDohMCx0YWdzOlsiZW1haWwiLCJzbXRwIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czoyNSxkb21haW5zOiJtYWlsLnNlcnZlLnpvbmUifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjEuNSIscG9ydDoyNX1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fX0se2lkOiJyb3V0ZS00IixuYW1lOiJBUEkgR2F0ZXdheSIsZGVzY3JpcHRpb246IkFQSSBnYXRld2F5IHdpdGggcmF0ZSBsaW1pdGluZywgQ09SUyBoZWFkZXJzLCBhbmQgbG9hZCBiYWxhbmNpbmciLGVuYWJsZWQ6ITAscHJpb3JpdHk6MjAsdGFnczpbIndlYiIsImFwaSIsImh0dHBzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoiYXBpLnNlcnZlLnpvbmUiLHBhdGg6Ii92Mi8qIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjAuMjAiLCIxMC4wLjAuMjEiLCIxMC4wLjAuMjIiXSxwb3J0OjgwODB9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06InJvdW5kLXJvYmluIn19LHNlY3VyaXR5OntyYXRlTGltaXQ6e2VuYWJsZWQ6ITAsbWF4UmVxdWVzdHM6MjAwLHdpbmRvdzo2MH0sbWF4Q29ubmVjdGlvbnM6NWUzfSxoZWFkZXJzOntyZXNwb25zZTp7IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiI6IioiLCJYLVJlcXVlc3QtSWQiOiJ7e3JlcXVlc3RJZH19In19fSx7aWQ6InJvdXRlLTUiLG5hbWU6IldlYlNvY2tldCBSZWFsdGltZSIsZGVzY3JpcHRpb246IlJlYWwtdGltZSBXZWJTb2NrZXQgY29ubmVjdGlvbnMgZm9yIGxpdmUgdXBkYXRlcyIsZW5hYmxlZDohMCx0YWdzOlsid2ViIiwiaHR0cHMiLCJ3ZWJzb2NrZXQiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6IndzLnNlcnZlLnpvbmUiLHBhdGg6Ii93cy8qIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4zMCIscG9ydDo5MDkwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sd2Vic29ja2V0OntlbmFibGVkOiEwfX19LHtpZDoicm91dGUtNiIsbmFtZToiVGVuYW50IFdpbGRjYXJkIixkZXNjcmlwdGlvbjoiTXVsdGktdGVuYW50IHdpbGRjYXJkIHJvdXRpbmcgZm9yIGN1c3RvbWVyIHN1YmRvbWFpbnMiLGVuYWJsZWQ6ITAscHJpb3JpdHk6NTAsdGFnczpbIndlYiIsImh0dHBzIiwibXVsdGktdGVuYW50Il0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiIqLmN1c3RvbWVycy5zZXJ2ZS56b25lIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC40MCIscG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19LHNlY3VyaXR5OntpcEFsbG93TGlzdDpbIjEwLjAuMC4wLzgiLCIxNzIuMTYuMC4wLzEyIl19fSx7aWQ6InJvdXRlLTciLG5hbWU6Ik1pY3Jvc2VydmljZXMgTEIiLGRlc2NyaXB0aW9uOiJMb2FkLWJhbGFuY2VkIG1pY3Jvc2VydmljZXMgYmFja2VuZCB3aXRoIElQLWhhc2ggYWZmaW5pdHkiLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czpbNDQzLDg0NDNdLGRvbWFpbnM6InNlcnZpY2VzLnNlcnZlLnpvbmUiLHByb3RvY29sOiJodHRwIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDpbIjEwLjAuMi4xIiwiMTAuMC4yLjIiLCIxMC4wLjIuMyIsIjEwLjAuMi40Il0scG9ydDozZTN9XSx0bHM6e21vZGU6InRlcm1pbmF0ZS1hbmQtcmVlbmNyeXB0IixjZXJ0aWZpY2F0ZToiYXV0byJ9LGxvYWRCYWxhbmNpbmc6e2FsZ29yaXRobToiaXAtaGFzaCJ9fX0se2lkOiJyb3V0ZS04IixuYW1lOiJETlMgb3ZlciBIVFRQUyIsZGVzY3JpcHRpb246IkROUy1vdmVyLUhUVFBTIHJlc29sdmVyIGVuZHBvaW50IixlbmFibGVkOiEwLHRhZ3M6WyJkbnMiLCJodHRwcyJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoiZG5zLnNlcnZlLnpvbmUiLHBhdGg6Ii9kbnMtcXVlcnkiLHByb3RvY29sOiJodHRwIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC4zLjEiLHBvcnQ6ODA1M31dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fX0se2lkOiJyb3V0ZS05IixuYW1lOiJIaWdoLVBlcmYgVENQIFByb3h5IixkZXNjcmlwdGlvbjoiTkZUYWJsZXMtYWNjZWxlcmF0ZWQgVENQIHByb3h5IGZvciBnYW1lIHNlcnZlcnMiLGVuYWJsZWQ6ITAsdGFnczpbInRjcCIsIm5mdGFibGVzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czpbe2Zyb206MjdlMyx0bzoyNzA1MH1dLHByb3RvY29sOiJ0Y3AifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjQuMSIscG9ydDoicHJlc2VydmUifV0sZm9yd2FyZGluZ0VuZ2luZToibmZ0YWJsZXMifX0se2lkOiJyb3V0ZS0xMCIsbmFtZToiTGVnYWN5IEFkbWluIFBhbmVsIixkZXNjcmlwdGlvbjoiRGVwcmVjYXRlZCBhZG1pbiBwYW5lbCBcdTIwMTQgZGlzYWJsZWQgZm9yIG1haW50ZW5hbmNlIixlbmFibGVkOiExLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsImRlcHJlY2F0ZWQiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImFkbWluLW9sZC5zZXJ2ZS56b25lIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToic29ja2V0LWhhbmRsZXIifSxzZWN1cml0eTp7aXBCbG9ja0xpc3Q6WyIwLjAuMC4wLzAiXX19XSk7Z2V0IGZpbHRlcmVkUm91dGVzKCl7cmV0dXJuIHRoaXMuY3VycmVudFRhYj09PSJhbGwiP3RoaXMuZGVtb1JvdXRlczp0aGlzLmN1cnJlbnRUYWI9PT0iaHR0cHMiP3RoaXMuZGVtb1JvdXRlcy5maWx0ZXIoZD0+ZC50YWdzPy5zb21lKHU9Plsid2ViIiwiaHR0cHMiLCJodHRwIl0uaW5jbHVkZXModSkpKTp0aGlzLmN1cnJlbnRUYWI9PT0iZW1haWwiP3RoaXMuZGVtb1JvdXRlcy5maWx0ZXIoZD0+ZC50YWdzPy5zb21lKHU9PlsiZW1haWwiLCJzbXRwIl0uaW5jbHVkZXModSkpKTp0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGQ9PmQudGFncz8uc29tZSh1PT5bImRucyJdLmluY2x1ZGVzKHUpKSk6dGhpcy5kZW1vUm91dGVzfWFzeW5jIG9uQWN0aXZhdGUoZCl7dGhpcy5hcHB1aT1kLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkFsbCBSb3V0ZXMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJhbGwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkhUVFAvUyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9Imh0dHBzIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJFbWFpbCIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9ImVtYWlsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJETlMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJkbnMiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9XSksdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9dXBkYXRlU2Vjb25kYXJ5TWVudSgpe2lmKCF0aGlzLmFwcHVpKXJldHVybjtsZXQgZD10aGlzLmRlbW9Sb3V0ZXMubGVuZ3RoLHU9dGhpcy5kZW1vUm91dGVzLmZpbHRlcihiPT5iLmVuYWJsZWQhPT0hMSkubGVuZ3RoLGM9dGhpcy5kZW1vUm91dGVzLmZpbHRlcihiPT5iLmFjdGlvbi50eXBlPT09ImZvcndhcmQiKS5sZW5ndGg7dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJSb3V0ZXMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIHJvdXRlcyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQWRkIFJvdXRlIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCByb3V0ZSIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDpgJHtkfSBUb3RhbCBSb3V0ZXNgfSx7dHlwZToiaGVhZGVyIixsYWJlbDpgJHt1fSBBY3RpdmVgfSx7dHlwZToiaGVhZGVyIixsYWJlbDpgJHtjfSBGb3J3YXJkYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7ZC1jfSBTb2NrZXQgSGFuZGxlcmB9XX1dfSl9b25EZWFjdGl2YXRlKCl7fXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN6LXJvdXRlLWxpc3QtdmlldwogICAgICAgIC5yb3V0ZXM9JHt0aGlzLmZpbHRlcmVkUm91dGVzfQogICAgICAgIEByb3V0ZS1jbGljaz0ke2Q9Pntjb25zb2xlLmxvZygiUm91dGUgY2xpY2tlZDoiLGQuZGV0YWlsLm5hbWUpfX0KICAgICAgPjwvc3otcm91dGUtbGlzdC12aWV3PgogICAgYH1zdGF0aWN7U290KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciB3SmEsa0phLFNKYSxfOWE9ZygoKT0+e3BlKCk7aWMoKTt3SmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGtKYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sU0phPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby12aWV3LWNvbmZpZyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3Q29uZmlnIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7d0phKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3otY29uZmlnLW92ZXJ2aWV3CiAgICAgICAgaW5mb1RleHQ9IlRoaXMgdmlldyBkaXNwbGF5cyB0aGUgY3VycmVudCBydW5uaW5nIGNvbmZpZ3VyYXRpb24uIERjUm91dGVyIGlzIGNvbmZpZ3VyZWQgdGhyb3VnaCBjb2RlIG9yIHJlbW90ZSBtYW5hZ2VtZW50LiIKICAgICAgPgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlN5c3RlbSIKICAgICAgICAgIHN1YnRpdGxlPSJCYXNlIHBhdGhzIGFuZCBpbmZyYXN0cnVjdHVyZSIKICAgICAgICAgIGljb249Imx1Y2lkZTpzZXJ2ZXIiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IkJhc2UgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlciJ9LHtrZXk6IkRhdGEgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci9kYXRhIn0se2tleToiUHVibGljIElQIix2YWx1ZToiMjAzLjAuMTEzLjUwIn0se2tleToiUHJveHkgSVBzIix2YWx1ZTpbIjIwMy4wLjExMy4xMCIsIjIwMy4wLjExMy4xMSJdLHR5cGU6InBpbGxzIn0se2tleToiVXB0aW1lIix2YWx1ZToiM2QgMTRoIDIybSJ9LHtrZXk6IlN0b3JhZ2UgQmFja2VuZCIsdmFsdWU6ImZpbGVzeXN0ZW0iLHR5cGU6ImJhZGdlIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJTbWFydFByb3h5IgogICAgICAgICAgc3VidGl0bGU9IkhUVFAvSFRUUFMgYW5kIFRDUC9TTkkgcmV2ZXJzZSBwcm94eSIKICAgICAgICAgIGljb249Imx1Y2lkZTpuZXR3b3JrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJSb3V0ZSBDb3VudCIsdmFsdWU6MTJ9LHtrZXk6IkFDTUUgRW5hYmxlZCIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9LHtrZXk6IkFjY291bnQgRW1haWwiLHZhbHVlOiJhZG1pbkBzZXJ2ZS56b25lIn0se2tleToiVXNlIFByb2R1Y3Rpb24iLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBdXRvIFJlbmV3Iix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiUmVuZXcgVGhyZXNob2xkIix2YWx1ZToiMzAgZGF5cyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiVmlldyBSb3V0ZXMiLGljb246Imx1Y2lkZTphcnJvdy1yaWdodCIsZXZlbnQ6Im5hdmlnYXRlIixkZXRhaWw6e3ZpZXc6InJvdXRlcyJ9fV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkVtYWlsIFNlcnZlciIKICAgICAgICAgIHN1YnRpdGxlPSJTTVRQIGVtYWlsIGhhbmRsaW5nIHdpdGggc21hcnRtdGEiCiAgICAgICAgICBpY29uPSJsdWNpZGU6bWFpbCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydHMiLHZhbHVlOlsiMjUiLCI0NjUiLCI1ODciXSx0eXBlOiJwaWxscyJ9LHtrZXk6Ikhvc3RuYW1lIix2YWx1ZToibWFpbC5zZXJ2ZS56b25lIn0se2tleToiRG9tYWlucyIsdmFsdWU6WyJzZXJ2ZS56b25lIiwibWFpbC5zZXJ2ZS56b25lIl0sdHlwZToicGlsbHMifSx7a2V5OiJFbWFpbCBSb3V0ZXMiLHZhbHVlOjV9LHtrZXk6IlJlY2VpdmVkIFBhdGgiLHZhbHVlOiIvZGF0YS9lbWFpbHMifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkROUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iQXV0aG9yaXRhdGl2ZSBETlMgd2l0aCBzbWFydGRucyIKICAgICAgICAgIGljb249Imx1Y2lkZTpnbG9iZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydCIsdmFsdWU6NTN9LHtrZXk6Ik5TIERvbWFpbnMiLHZhbHVlOlsibnMxLnNlcnZlLnpvbmUiLCJuczIuc2VydmUuem9uZSJdLHR5cGU6InBpbGxzIn0se2tleToiU2NvcGVzIix2YWx1ZTpbInNlcnZlLnpvbmUiLCJleGFtcGxlLmNvbSJdLHR5cGU6InBpbGxzIn0se2tleToiUmVjb3JkIENvdW50Iix2YWx1ZToyNH0se2tleToiRE5TIENoYWxsZW5nZSIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9XX0KICAgICAgICA+PC9zei1jb25maWctc2VjdGlvbj4KCiAgICAgICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgICAgICB0aXRsZT0iVExTIC8gQ2VydGlmaWNhdGVzIgogICAgICAgICAgc3VidGl0bGU9IkNlcnRpZmljYXRlIG1hbmFnZW1lbnQgYW5kIEFDTUUiCiAgICAgICAgICBpY29uPSJsdWNpZGU6c2hpZWxkLWNoZWNrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJDb250YWN0IEVtYWlsIix2YWx1ZToiYWRtaW5Ac2VydmUuem9uZSJ9LHtrZXk6IkRvbWFpbiIsdmFsdWU6InNlcnZlLnpvbmUifSx7a2V5OiJTb3VyY2UiLHZhbHVlOiJhY21lIix0eXBlOiJiYWRnZSJ9LHtrZXk6IkNlcnRpZmljYXRlIFBhdGgiLHZhbHVlOm51bGx9LHtrZXk6IktleSBQYXRoIix2YWx1ZTpudWxsfV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkNhY2hlIERhdGFiYXNlIgogICAgICAgICAgc3VidGl0bGU9IlBlcnNpc3RlbnQgY2FjaGluZyB3aXRoIHNtYXJ0ZGF0YSIKICAgICAgICAgIGljb249Imx1Y2lkZTpkYXRhYmFzZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiU3RvcmFnZSBQYXRoIix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci90c21kYiJ9LHtrZXk6IkRCIE5hbWUiLHZhbHVlOiJkY3JvdXRlciJ9LHtrZXk6IkRlZmF1bHQgVFRMIix2YWx1ZToiMzAgZGF5cyJ9LHtrZXk6IkNsZWFudXAgSW50ZXJ2YWwiLHZhbHVlOiIxIGhvdXIifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlJBRElVUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iTmV0d29yayBhdXRoZW50aWNhdGlvbiBhbmQgVkxBTiBhc3NpZ25tZW50IgogICAgICAgICAgaWNvbj0ibHVjaWRlOndpZmkiCiAgICAgICAgICBzdGF0dXM9Im5vdC1jb25maWd1cmVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJBdXRoIFBvcnQiLHZhbHVlOm51bGx9LHtrZXk6IkFjY291bnRpbmcgUG9ydCIsdmFsdWU6bnVsbH1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJSZW1vdGUgSW5ncmVzcyIKICAgICAgICAgIHN1YnRpdGxlPSJFZGdlIHR1bm5lbCBub2RlcyIKICAgICAgICAgIGljb249Imx1Y2lkZTpjbG91ZCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiVHVubmVsIFBvcnQiLHZhbHVlOjg0NDN9LHtrZXk6Ikh1YiBEb21haW4iLHZhbHVlOiJodWIuc2VydmUuem9uZSJ9LHtrZXk6IlRMUyBDb25maWd1cmVkIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgogICAgICA8L3N6LWNvbmZpZy1vdmVydmlldz4KICAgIGB9c3RhdGlje2tKYShhLHQpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgaWM9ZygoKT0+e1dydCgpO0tydCgpO1pydCgpO1hydCgpO1FydCgpO2VvdCgpO2FvdCgpO2lvdCgpO29vdCgpO25vdCgpO2xvdCgpO3E3YSgpO2o3YSgpO1U3YSgpO1c3YSgpO0c3YSgpO1k3YSgpO1g3YSgpO1E3YSgpO0o3YSgpO2U5YSgpO3Q5YSgpO2E5YSgpO3M5YSgpO2k5YSgpO3I5YSgpO285YSgpO245YSgpO2M5YSgpO2Q5YSgpO3U5YSgpO3A5YSgpO2g5YSgpO2Y5YSgpO205YSgpO2c5YSgpO3Y5YSgpO3g5YSgpO3k5YSgpO3c5YSgpO1M5YSgpO185YSgpfSk7dmFyIGgkbyxNOWE9ZygoKT0+e3BlKCk7aCRvPWkoKCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgaDEgewogICAgICBtYXJnaW46IDAgMCAzMnB4IDA7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICBjb2xvcjogIzFhMWExYTsKICAgIH0KICAgIC5jb21wb25lbnQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMT5TZXJ2ZS5ab25lIENhdGFsb2c8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJjb21wb25lbnQtZGVtbyI+CiAgICAgICAgPHN6LWhlbGxvPjwvc3otaGVsbG8+CiAgICAgICAgPHN6LWhlbGxvIHRleHQ9IldlbGNvbWUgdG8gU2VydmUuWm9uZSEiPjwvc3otaGVsbG8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsIm1haW5wYWdlIil9KTt2YXIgdiRvLHo5YT1nKCgpPT57cGUoKTtpYygpO3Ykbz1pKCgpPT53YAogIDxzdHlsZT4KICAgIGh0bWwsIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgICBzei1kZW1vLWFwcC1zaGVsbCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB3aWR0aDogMTAwdnc7CiAgICB9CiAgPC9zdHlsZT4KICA8c3otZGVtby1hcHAtc2hlbGw+PC9zei1kZW1vLWFwcC1zaGVsbD4KYCwic3pEZW1vQXBwIil9KTtmdW5jdGlvbiB3JG8ocyxlKXtsZXQgdD1ib1tzXTtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZlP3RbZV18fCJhdXRvIjp0eXBlb2YgdD09Im51bWJlciI/dDoiYXV0byJ9dmFyIGJvLGskbyxfb3QsX2EsR249ZygoKT0+e2JvPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07aSh3JG8sImdldFpJbmRleCIpO2skbz17ImRlZXMtbW9kYWwiOmJvLm92ZXJsYXkubW9kYWwsImRlZXMtd2luZG93bGF5ZXIiOmJvLm92ZXJsYXkuZHJvcGRvd24sImRlZXMtY29udGV4dG1lbnUiOmJvLm92ZXJsYXkuY29udGV4dE1lbnUsImRlZXMtdG9hc3QiOmJvLm92ZXJsYXkudG9hc3QsImRlZXMtYXBwdWktbWFpbm1lbnUiOmJvLmZpeGVkLmFwcEJhciwiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIjpiby5maXhlZC5tb2JpbGVOYXYsImRlZXMtc2xhc2gtbWVudSI6Ym8ud3lzaXd5Z01lbnVzLCJkZWVzLWZvcm1hdHRpbmctbWVudSI6Ym8ud3lzaXd5Z01lbnVzfSxfb3Q9Y2xhc3Mgc3tzdGF0aWN7aSh0aGlzLCJaSW5kZXhSZWdpc3RyeSIpfXN0YXRpYyBpbnN0YW5jZTthY3RpdmVFbGVtZW50cz1uZXcgU2V0O2VsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXA7Y3VycmVudFpJbmRleD0xZTM7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHMuaW5zdGFuY2V8fChzLmluc3RhbmNlPW5ldyBzKSxzLmluc3RhbmNlfWdldE5leHRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4Kz0xMCx0aGlzLmN1cnJlbnRaSW5kZXh9cmVnaXN0ZXIoZSx0KXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmFkZChlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuc2V0KGUsdCl9dW5yZWdpc3RlcihlKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmRlbGV0ZShlKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZGVsZXRlKGUpLHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZT09PTAmJih0aGlzLmN1cnJlbnRaSW5kZXg9MWUzKX1nZXRFbGVtZW50WkluZGV4KGUpe3JldHVybiB0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGUpfWdldEFjdGl2ZUNvdW50KCl7cmV0dXJuIHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZX1nZXRDdXJyZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleH1jbGVhcigpe3RoaXMuYWN0aXZlRWxlbWVudHMuY2xlYXIoKSx0aGlzLmVsZW1lbnRaSW5kZXhNYXA9bmV3IFdlYWtNYXAsdGhpcy5jdXJyZW50WkluZGV4PTFlM31nZXRBY3RpdmVFbGVtZW50c0luT3JkZXIoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFjdGl2ZUVsZW1lbnRzKS5zb3J0KChlLHQpPT57bGV0IGE9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKXx8MCxyPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQodCl8fDA7cmV0dXJuIGEtcn0pfX0sX2E9X290LmdldEluc3RhbmNlKCl9KTt2YXIgWGMsWWksWmkscWUsaHQ9ZygoKT0+e3BlKCk7WGM9e2NvbG9yczp7bGlnaHQ6e2JnUHJpbWFyeToiaHNsKDAgMCUgMTAwJSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSA5OCUpIixiZ1RlcnRpYXJ5OiJoc2woMCAwJSA5NiUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLHRleHRTZWNvbmRhcnk6ImhzbCgwIDAlIDIwJSkiLHRleHRNdXRlZDoiaHNsKDAgMCUgNDUlKSIsdGV4dFdhcm06IiM3ODcxNmMiLGJvcmRlckRlZmF1bHQ6ImhzbCgwIDAlIDg5LjglKSIsYm9yZGVyU3VidGxlOiJoc2woMCAwJSA5MyUpIixib3JkZXJTdHJvbmc6ImhzbCgwIDAlIDgwJSkiLGFjY2VudFByaW1hcnk6IiMzYjgyZjYiLGFjY2VudFN1Y2Nlc3M6IiMyMmM1NWUiLGFjY2VudFdhcm5pbmc6IiNmNTllMGIiLGFjY2VudEVycm9yOiIjZWY0NDQ0IixiYWRnZURlZmF1bHRCZzoiI2Y0ZjRmNSIsYmFkZ2VEZWZhdWx0Rmc6IiMzZjNmNDYiLGJhZGdlU3VjY2Vzc0JnOiIjZGNmY2U3IixiYWRnZVN1Y2Nlc3NGZzoiIzE2NjUzNCIsYmFkZ2VXYXJuaW5nQmc6IiNmZWYzYzciLGJhZGdlV2FybmluZ0ZnOiIjOTI0MDBlIixiYWRnZUVycm9yQmc6IiNmZWUyZTIiLGJhZGdlRXJyb3JGZzoiIzk5MWIxYiJ9LGRhcms6e2JnUHJpbWFyeToiaHNsKDAgMCUgMy45JSkiLGJnU2Vjb25kYXJ5OiJoc2woMCAwJSAzLjklKSIsYmdUZXJ0aWFyeToiaHNsKDAgMCUgNyUpIix0ZXh0UHJpbWFyeToiaHNsKDAgMCUgOTglKSIsdGV4dFNlY29uZGFyeToiaHNsKDAgMCUgNjMuOSUpIix0ZXh0TXV0ZWQ6ImhzbCgwIDAlIDU1JSkiLHRleHRXYXJtOiIjYjVhOTlhIixib3JkZXJEZWZhdWx0OiJoc2woMCAwJSAxNC45JSkiLGJvcmRlclN1YnRsZToiaHNsKDAgMCUgMTElKSIsYm9yZGVyU3Ryb25nOiJoc2woMCAwJSAyMCUpIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCIsYmFkZ2VEZWZhdWx0Qmc6IiMyNzI3MmEiLGJhZGdlRGVmYXVsdEZnOiIjYTFhMWFhIixiYWRnZVN1Y2Nlc3NCZzoiIzE0NTMyZCIsYmFkZ2VTdWNjZXNzRmc6IiM0YWRlODAiLGJhZGdlV2FybmluZ0JnOiIjNDUxYTAzIixiYWRnZVdhcm5pbmdGZzoiI2ZiYmYyNCIsYmFkZ2VFcnJvckJnOiIjNDUwYTBhIixiYWRnZUVycm9yRmc6IiNmODcxNzEifX0sc3BhY2luZzp7eHM6IjRweCIsc206IjhweCIsbWQ6IjEycHgiLGxnOiIxNnB4Iix4bDoiMjRweCIsIjJ4bCI6IjMycHgiLCIzeGwiOiI0OHB4In0scmFkaXVzOnt4czoiMnB4IixzbToiNHB4IixtZDoiNnB4IixsZzoiOHB4Iix4bDoiMTJweCIsZnVsbDoiOTk5cHgifSxzaGFkb3dzOnt4czoiMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSkiLHNtOiIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIixtZDoiMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLGxnOiIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkifSx0cmFuc2l0aW9uczp7ZmFzdDoiMC4xcyIsZGVmYXVsdDoiMC4xNXMiLHNsb3c6IjAuMnMiLHNsb3dlcjoiMC4zcyJ9LGNvbnRyb2xIZWlnaHRzOntzbToiMzJweCIsbWQ6IjM2cHgiLGxnOiI0MHB4Iix4bDoiNDhweCJ9fSxZaT1YYy5jb2xvcnMubGlnaHQsWmk9WGMuY29sb3JzLmRhcmsscWU9SmAKICA6aG9zdCB7CiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJhY2tncm91bmQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5OiAke2guYmRUaGVtZShZaS5iZ1ByaW1hcnksWmkuYmdQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5OiAke2guYmRUaGVtZShZaS5iZ1NlY29uZGFyeSxaaS5iZ1NlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5OiAke2guYmRUaGVtZShZaS5iZ1RlcnRpYXJ5LFppLmJnVGVydGlhcnkpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFRleHQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnk6ICR7aC5iZFRoZW1lKFlpLnRleHRQcmltYXJ5LFppLnRleHRQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnk6ICR7aC5iZFRoZW1lKFlpLnRleHRTZWNvbmRhcnksWmkudGV4dFNlY29uZGFyeSl9OwogICAgLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQ6ICR7aC5iZFRoZW1lKFlpLnRleHRNdXRlZCxaaS50ZXh0TXV0ZWQpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJvcmRlciAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0OiAke2guYmRUaGVtZShZaS5ib3JkZXJEZWZhdWx0LFppLmJvcmRlckRlZmF1bHQpfTsKICAgIC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlOiAke2guYmRUaGVtZShZaS5ib3JkZXJTdWJ0bGUsWmkuYm9yZGVyU3VidGxlKX07CiAgICAtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZzogJHtoLmJkVGhlbWUoWWkuYm9yZGVyU3Ryb25nLFppLmJvcmRlclN0cm9uZyl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgV2FybSBUZXh0IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdGV4dC13YXJtOiAke2guYmRUaGVtZShZaS50ZXh0V2FybSxaaS50ZXh0V2FybSl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQWNjZW50IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnk6ICR7aC5iZFRoZW1lKFlpLmFjY2VudFByaW1hcnksWmkuYWNjZW50UHJpbWFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzOiAke2guYmRUaGVtZShZaS5hY2NlbnRTdWNjZXNzLFppLmFjY2VudFN1Y2Nlc3MpfTsKICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZzogJHtoLmJkVGhlbWUoWWkuYWNjZW50V2FybmluZyxaaS5hY2NlbnRXYXJuaW5nKX07CiAgICAtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yOiAke2guYmRUaGVtZShZaS5hY2NlbnRFcnJvcixaaS5hY2NlbnRFcnJvcil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQmFkZ2UgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnOiAke2guYmRUaGVtZShZaS5iYWRnZURlZmF1bHRCZyxaaS5iYWRnZURlZmF1bHRCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmc6ICR7aC5iZFRoZW1lKFlpLmJhZGdlRGVmYXVsdEZnLFppLmJhZGdlRGVmYXVsdEZnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1iZzogJHtoLmJkVGhlbWUoWWkuYmFkZ2VTdWNjZXNzQmcsWmkuYmFkZ2VTdWNjZXNzQmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnOiAke2guYmRUaGVtZShZaS5iYWRnZVN1Y2Nlc3NGZyxaaS5iYWRnZVN1Y2Nlc3NGZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctYmc6ICR7aC5iZFRoZW1lKFlpLmJhZGdlV2FybmluZ0JnLFppLmJhZGdlV2FybmluZ0JnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZzogJHtoLmJkVGhlbWUoWWkuYmFkZ2VXYXJuaW5nRmcsWmkuYmFkZ2VXYXJuaW5nRmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZzogJHtoLmJkVGhlbWUoWWkuYmFkZ2VFcnJvckJnLFppLmJhZGdlRXJyb3JCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWZnOiAke2guYmRUaGVtZShZaS5iYWRnZUVycm9yRmcsWmkuYmFkZ2VFcnJvckZnKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBJbnRlcmFjdGl2ZSBTdGF0ZXMKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1ob3ZlcjogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgLS1kZWVzLWNvbG9yLWFjdGl2ZTogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgLS1kZWVzLWNvbG9yLXByZXNzZWQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgIC0tZGVlcy1jb2xvci1yb3ctaG92ZXI6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgRm9jdXMgUmluZwogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWZvY3VzLXJpbmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC40KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgVG9vbHRpcCAoaW52ZXJ0ZWQgY29udHJhc3QpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdG9vbHRpcC1iZzogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgLS1kZWVzLWNvbG9yLXRvb2x0aXAtZmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIExpbmsKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1saW5rOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAtLWRlZXMtY29sb3ItbGluay1ob3ZlcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjOTNiYmZkIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQ29kZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmc6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgLS1kZWVzLWNvbG9yLWNvZGUtYmxvY2stYmc6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFNlbGVjdGlvbgogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXNlbGVjdGlvbjogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBTY3JvbGxiYXIKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgIC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTcGFjaW5nIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc3BhY2luZy14czogNHB4OwogICAgLS1kZWVzLXNwYWNpbmctc206IDhweDsKICAgIC0tZGVlcy1zcGFjaW5nLW1kOiAxMnB4OwogICAgLS1kZWVzLXNwYWNpbmctbGc6IDE2cHg7CiAgICAtLWRlZXMtc3BhY2luZy14bDogMjRweDsKICAgIC0tZGVlcy1zcGFjaW5nLTJ4bDogMzJweDsKICAgIC0tZGVlcy1zcGFjaW5nLTN4bDogNDhweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBCb3JkZXIgUmFkaXVzIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtcmFkaXVzLXhzOiAycHg7CiAgICAtLWRlZXMtcmFkaXVzLXNtOiA0cHg7CiAgICAtLWRlZXMtcmFkaXVzLW1kOiA2cHg7CiAgICAtLWRlZXMtcmFkaXVzLWxnOiA4cHg7CiAgICAtLWRlZXMtcmFkaXVzLXhsOiAxMnB4OwogICAgLS1kZWVzLXJhZGl1cy1mdWxsOiA5OTlweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTaGFkb3cgRWxldmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgIC0tZGVlcy1zaGFkb3ctc206IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAtLWRlZXMtc2hhZG93LW1kOiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgIC0tZGVlcy1zaGFkb3ctbGc6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBUcmFuc2l0aW9uIER1cmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0OiAwLjFzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDogMC4xNXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93OiAwLjJzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyOiAwLjNzOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbnRyb2wgSGVpZ2h0IFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtc206IDMycHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQ6IDM2cHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbGc6IDQwcHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQteGw6IDQ4cHg7CiAgfQpgfSk7dmFyIHZvPWcoKCk9PntpbygpO1NuKCl9KTt2YXIgQzlhLFQ5YT1nKCgpPT57cGUoKTt2bygpO2ZyKCk7QzlhPWkoKCk9PndgCjxzdHlsZT4KICAud2l0aE1hcmdpbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMjBweDsKICB9CiAgLmRlbW8tY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAyMHB4OwogICAgcGFkZGluZzogMjBweDsKICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogIH0KICAuZGVtby1hcmVhIHsKICAgIHBhZGRpbmc6IDQwcHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IGNvbnRleHQtbWVudTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICB9CiAgLmRlbW8tYXJlYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpOwogIH0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkJhc2ljIENvbnRleHQgTWVudSB3aXRoIE5lc3RlZCBTdWJtZW51cyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PnskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRmlsZSIsaWNvbk5hbWU6ImZpbGVUZXh0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyIsaWNvbk5hbWU6ImZpbGVQbHVzIixzaG9ydGN1dDoiQ21kK04iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4iLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIixpY29uTmFtZToic2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHBvcnQgYXMgUERGIixpY29uTmFtZToiZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHBvcnQgUERGIiksImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IGFzIEhUTUwiLGljb25OYW1lOiJjb2RlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IEhUTUwiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJlZGl0MyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsaWNvbk5hbWU6InNlYXJjaCIsc2hvcnRjdXQ6IkNtZCtGIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLGljb25OYW1lOiJyZXBlYXQiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiWm9vbSBJbiIsaWNvbk5hbWU6Inpvb21JbiIsc2hvcnRjdXQ6IkNtZCsrIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBpbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gT3V0IixpY29uTmFtZToiem9vbU91dCIsc2hvcnRjdXQ6IkNtZCstIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBvdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCBab29tIixpY29uTmFtZToibWF4aW1pemUyIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXNldCB6b29tIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZ1bGwgU2NyZWVuIixpY29uTmFtZToibWF4aW1pemUiLHNob3J0Y3V0OiJGMTEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsIHNjcmVlbiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se25hbWU6IkhlbHAiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRhdGlvbiIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0IiksImFjdGlvbiIpfV19XSl9fT4KICAgICAgPGgzPlJpZ2h0LWNsaWNrIGFueXdoZXJlIGluIHRoaXMgYXJlYTwvaDM+CiAgICAgIDxwPkEgY29udGV4dCBtZW51IHdpdGggbmVzdGVkIHN1Ym1lbnVzIHdpbGwgYXBwZWFyPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkNvbXBvbmVudC1TcGVjaWZpYyBDb250ZXh0IE1lbnUiPgogICAgPGRlZXMtYnV0dG9uIHN0eWxlPSJtYXJnaW46IDIwcHg7IiBAY29udGV4dG1lbnU9JHtzPT57JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMocyxbe25hbWU6IkJ1dHRvbiBBY3Rpb25zIixpY29uTmFtZToibW91c2VQb2ludGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkNsaWNrIixpY29uTmFtZToibW91c2UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDbGljayBhY3Rpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJEb3VibGUgQ2xpY2siLGljb25OYW1lOiJ6YXAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb3VibGUgY2xpY2siKSwiYWN0aW9uIil9LHtuYW1lOiJMb25nIFByZXNzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb25nIHByZXNzIiksImFjdGlvbiIpfV19LHtuYW1lOiJCdXR0b24gU3RhdGUiLGljb25OYW1lOiJ0b2dnbGVMZWZ0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkVuYWJsZSIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRW5hYmxlIiksImFjdGlvbiIpfSx7bmFtZToiRGlzYWJsZSIsaWNvbk5hbWU6InhDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEaXNhYmxlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNob3ciLGljb25OYW1lOiJleWUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG93IiksImFjdGlvbiIpfSx7bmFtZToiSGlkZSIsaWNvbk5hbWU6ImV5ZU9mZiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhpZGUiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEaXNhYmxlZCBBY3Rpb24iLGljb25OYW1lOiJiYW4iLGRpc2FibGVkOiEwLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUaGlzIHNob3VsZCBub3QgcnVuIiksImFjdGlvbiIpfSx7bmFtZToiUHJvcGVydGllcyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQnV0dG9uIHByb3BlcnRpZXMiKSwiYWN0aW9uIil9XSl9fT5SaWdodC1jbGljayBvbiB0aGlzIGJ1dHRvbjwvZGVlcy1idXR0b24+CiAgPC9kZWVzLXBhbmVsPgoKICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJBZHZhbmNlZCBDb250ZXh0IE1lbnUgRXhhbXBsZSI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke3M9PnskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhzLFt7bmFtZToiRm9ybWF0IixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJCb2xkIixpY29uTmFtZToiYm9sZCIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQm9sZCIpLCJhY3Rpb24iKX0se25hbWU6Ikl0YWxpYyIsaWNvbk5hbWU6Iml0YWxpYyIsc2hvcnRjdXQ6IkNtZCtJIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSXRhbGljIiksImFjdGlvbiIpfSx7bmFtZToiVW5kZXJsaW5lIixpY29uTmFtZToidW5kZXJsaW5lIixzaG9ydGN1dDoiQ21kK1UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRlcmxpbmUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRm9udCBTaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZvbnQgc2l6ZSBtZW51IiksImFjdGlvbiIpfSx7bmFtZToiRm9udCBDb2xvciIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IGNvbG9yIG1lbnUiKSwiYWN0aW9uIil9XX0se25hbWU6IlRyYW5zZm9ybSIsaWNvbk5hbWU6InNodWZmbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG8gVXBwZXJjYXNlIixpY29uTmFtZToiYXJyb3dVcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVwcGVyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IlRvIExvd2VyY2FzZSIsaWNvbk5hbWU6ImFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkxvd2VyY2FzZSIpLCJhY3Rpb24iKX0se25hbWU6IkNhcGl0YWxpemUiLGljb25OYW1lOiJ0eXBlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ2FwaXRhbGl6ZSIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRlbGV0ZSIpLCJhY3Rpb24iKX1dKX19PgogICAgICA8aDM+QWR2YW5jZWQgTmVzdGVkIE1lbnUgRXhhbXBsZTwvaDM+CiAgICAgIDxwPlRoaXMgc2hvd3MgZGVlcGx5IG5lc3RlZCBzdWJtZW51cyBhbmQgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnM8L3A+CiAgICA8L2Rpdj4KICA8L2RlZXMtcGFuZWw+CiAgCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iU3RhdGljIENvbnRleHQgTWVudSAoQWx3YXlzIFZpc2libGUpIj4KICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgIGNsYXNzPSJ3aXRoTWFyZ2luIgogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyUGx1cyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtOIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IHByb2plY3QiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIFByb2plY3QiLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK1NoaWZ0K08iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHByb2plY3QiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiUHJvamVjdCBBbHBoYSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gQWxwaGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEJldGEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEJldGEiKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9qZWN0IEdhbW1hIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBHYW1tYSIpLCJhY3Rpb24iKX1dfV19LHtuYW1lOiJUb29scyIsaWNvbk5hbWU6InRvb2wiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVGVybWluYWwiLGljb25OYW1lOiJ0ZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtUIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVGVybWluYWwiKSwiYWN0aW9uIil9LHtuYW1lOiJDb25zb2xlIixpY29uTmFtZToibW9uaXRvciIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29uc29sZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHRlbnNpb25zIixpY29uTmFtZToicGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4dGVuc2lvbnMiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6InNsaWRlcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcmVmZXJlbmNlcyIpLCJhY3Rpb24iKX1dfQogICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICA8L2RlZXMtcGFuZWw+CjwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE1RLEx1LFJvLHYyPWcoKCk9PntwZSgpO0duKCk7TVE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEx1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxSbz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd2luZG93bGF5ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0xheWVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0seD1bTCh7dHlwZTpCb29sZWFufSldLE1RKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3B0aW9ucyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm9wdGlvbnMsImdldCIpLHNldDppKCh6LE4pPT57ei5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxNUSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2tkcm9wWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJiYWNrZHJvcFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJhY2tkcm9wWkluZGV4LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYmFja2Ryb3BaSW5kZXg9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLE1RKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29udGVudFpJbmRleCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRlbnRaSW5kZXgsImdldCIpLHNldDppKCh6LE4pPT57ei5jb250ZW50WkluZGV4PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxNUSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InZpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksTVEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdpbmRvd2xheWVyPjwvZGVlcy13aW5kb3dsYXllcj5gLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coTSl7bGV0IHo9bHQuRG9tVG9vbHMuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCksTj1uZXcgeTtyZXR1cm4gTi5vcHRpb25zPXsuLi5OLm9wdGlvbnMsLi4uTX0sZG9jdW1lbnQuYm9keS5hcHBlbmQoTiksYXdhaXQgei5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLE4uc2hvdygpLE59I2U9THUodGhpcyxvLHtibHVyOiExfSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhNKXt0aGlzLiNlPU19I3Q9KEx1KHRoaXMsbCksTHUodGhpcyxkLDFlMykpO2dldCBiYWNrZHJvcFpJbmRleCgpe3JldHVybiB0aGlzLiN0fXNldCBiYWNrZHJvcFpJbmRleChNKXt0aGlzLiN0PU19I2E9KEx1KHRoaXMsdSksTHUodGhpcyxiLDEwMDEpKTtnZXQgY29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBjb250ZW50WkluZGV4KE0pe3RoaXMuI2E9TX0jcz0oTHUodGhpcyx2KSxMdSh0aGlzLG0sITEpKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCB2aXNpYmxlKE0pe3RoaXMuI3M9TX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksTHUodGhpcyxmKSxsdC5lbGVtZW50QmFzaWMuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtsdC5lbGVtZW50QmFzaWMuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgLndpbmRvd092ZXJsYXkgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxKSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDBweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmJhY2tkcm9wWkluZGV4fTsKICAgICAgICB9CiAgICAgICAgLnNsb3RDb250ZW50IHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmNvbnRlbnRaSW5kZXh9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zbG90Q29udGVudCA+ICogewogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aXNpYmxlIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygwLjkpICR7dGhpcy5vcHRpb25zLmJsdXI/ImJsdXIoMnB4KSI6IiJ9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5kaXNwYXRjaENsaWNrZWR9IGNsYXNzPSJ3aW5kb3dPdmVybGF5ICR7dGhpcy52aXNpYmxlPyJ2aXNpYmxlIjpudWxsfSI+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7c2V0VGltZW91dCgoKT0+e3RoaXMudmlzaWJsZT0hMH0sMTAwKX1kaXNwYXRjaENsaWNrZWQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIikpfXRvZ2dsZVZpc2liaWxpdHkoKXt0aGlzLnZpc2libGU9IXRoaXMudmlzaWJsZX1nZXRDb250ZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY29udGVudFpJbmRleH1hc3luYyBzaG93KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5iYWNrZHJvcFpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksdGhpcy5jb250ZW50WkluZGV4PV9hLmdldE5leHRaSW5kZXgoKSxfYS5yZWdpc3Rlcih0aGlzLHRoaXMuYmFja2Ryb3BaSW5kZXgpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITB9YXN5bmMgaGlkZSgpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMX1hc3luYyBkZXN0cm95KCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7YXdhaXQgdGhpcy5oaWRlKCksYXdhaXQgTS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksX2EudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnJlbW92ZSgpfXN0YXRpY3tMdShhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgJDlhLEQ5YT1nKCgpPT57cGUoKTtHYSgpO0M4KCk7JDlhPWkoKCk9PntsZXQgcz1PYmplY3Qua2V5cyhNb3QuZmEpO2NvbnNvbGUubG9nKCJGaXJzdCBmZXcgTHVjaWRlIGtleXM6IixPYmplY3Qua2V5cyhHcikuc2xpY2UoMCw1KSk7bGV0IGU9T2JqZWN0LmtleXMoR3IpLmZpbHRlcihuPT57bGV0IG89blswXT09PW5bMF0udG9VcHBlckNhc2UoKSYmblswXSE9PW5bMF0udG9Mb3dlckNhc2UoKSxsPXR5cGVvZiBHcltuXT09ImZ1bmN0aW9uIixwPSFbImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVJY29ucyIsImRlZmF1bHQiXS5pbmNsdWRlcyhuKTtyZXR1cm4gbCYmbyYmcH0pLm1hcChuPT5uLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK24uc2xpY2UoMSkpO2lmKGNvbnNvbGUubG9nKGBGb3VuZCAke2UubGVuZ3RofSBMdWNpZGUgaWNvbnNgKSxlLmxlbmd0aD09PTAmJihjb25zb2xlLmxvZygiVHJ5aW5nIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGZpbmQgTHVjaWRlIGljb25zIiksQ2QpKXtsZXQgbj1DZHx8e307ZS5wdXNoKC4uLk9iamVjdC5rZXlzKG4pKSxjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gaWNvbnMgdmlhIGFsdGVybmF0aXZlIG1ldGhvZGApfWxldCB0PWkoKCk9PntsZXQgbj1zLm1hcChkPT5gZmE6JHtkfWApLG89ZS5tYXAoZD0+YGx1Y2lkZToke2R9YCksbD1bLi4ubiwuLi5vXSxwPWwuam9pbihgCmApO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHApLnRoZW4oKCk9PntsZXQgdT13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldCxjPXUudGV4dENvbnRlbnQ7dS50ZXh0Q29udGVudD1gXHUyNzEzIENvcGllZCAke2wubGVuZ3RofSBpY29uIG5hbWVzIWAsc2V0VGltZW91dCgoKT0+e3UudGV4dENvbnRlbnQ9Y30sMmUzKX0pfSwiY29weUFsbEljb25OYW1lcyIpLGE9aShuPT57bGV0IG89bi50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksbD1uLnRhcmdldC5jbG9zZXN0KCIuZGVtb0NvbnRhaW5lciIpO2wucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXIiKS5mb3JFYWNoKGQ9PntsZXQgdT1kLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7bz09PSIifHx1JiZ1LmluY2x1ZGVzKG8pP2QuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLGwucXVlcnlTZWxlY3RvckFsbCgiLnNlY3Rpb24tY29udGFpbmVyIikuZm9yRWFjaChkPT57bGV0IHU9ZC5xdWVyeVNlbGVjdG9yQWxsKCIuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbikiKS5sZW5ndGgsYz1kLnF1ZXJ5U2VsZWN0b3IoIi5pY29uLWNvdW50Iik7aWYoYyl7bGV0IGI9ZC5jbGFzc0xpc3QuY29udGFpbnMoImZhLXNlY3Rpb24iKT9zLmxlbmd0aDplLmxlbmd0aDtjLnRleHRDb250ZW50PXU9PT1iP2Ake2J9IGljb25zYDpgJHt1fSBvZiAke2J9IGljb25zYH19KX0sInNlYXJjaEljb25zIikscj1pKChuLG8pPT57bGV0IGw9YCR7b306JHtufWA7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobCkudGhlbigoKT0+e2xldCB1PXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRvb2x0aXAiKTt1JiYodS50ZXh0Q29udGVudD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e3UudGV4dENvbnRlbnQ9IkNsaWNrIHRvIGNvcHkifSwyZTMpKX0pfSwiY29weUljb25OYW1lIik7cmV0dXJuIHdgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBiYWNrZ3JvdW5kOiAjMTExMTExOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuc2VhcmNoLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoIHsKICAgICAgZmxleDogMTsKICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIAogICAgI2ljb25TZWFyY2g6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7CiAgICB9CiAgICAKICAgIC5jb3B5LWFsbC1idXR0b24gewogICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogI2M0MDAxYjsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgZGVlcy1pY29uIHsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICB9CgogICAgLmljb25Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgICB9CgogICAgLmljb25OYW1lIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiAjY2NjOwogICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAuYXBpLW5vdGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjZTQwMDJiOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBwYWRkaW5nOiAxMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQwMDJiOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI4LCAwLCA0MywgMC4xKTsKICAgIH0KICAgIAogICAgLmljb24tY291bnQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjODg4OwogICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAgIAogICAgLmljb25zLWdyaWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIAogICAgLmNvcHktdG9vbHRpcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHRvcDogLTMwcHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIC5jb3B5LXRvb2x0aXAgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KICAgIAogICAgLmhpZGRlbiB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaWNvblNlYXJjaCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBpY29ucy4uLiIgQGlucHV0PSR7YX0+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYWxsLWJ1dHRvbiIgQGNsaWNrPSR7dH0+8J+TiyBDb3B5IEFsbCBJY29uIE5hbWVzPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iYXBpLW5vdGUiPgogICAgICBOZXcgQVBJOiBVc2UgPGNvZGU+aWNvbj0iZmE6aWNvbk5hbWUiPC9jb2RlPiBvciA8Y29kZT5pY29uPSJsdWNpZGU6aWNvbk5hbWUiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIAogICAgICBDbGljayBhbnkgaWNvbiB0byBjb3B5IGl0cyBuZXcgZm9ybWF0IHRvIGNsaXBib2FyZC4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBmYS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgRm9udEF3ZXNvbWUgSWNvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1jb3VudCI+JHtzLmxlbmd0aH0gaWNvbnM8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpY29ucy1ncmlkIj4KICAgICAgICAke3MubWFwKG49PntsZXQgbz1gZmE6JHtufWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBmYS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5yKG4sImZhIil9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke299IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uTmFtZSI+ZmE6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIGx1Y2lkZS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgTHVjaWRlIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7ZS5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHtlLm1hcChuPT57bGV0IG89YGx1Y2lkZToke259YDtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uQ29udGFpbmVyIGx1Y2lkZS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5yKG4sImx1Y2lkZSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmx1Y2lkZToke259PC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10b29sdGlwIj5DbGljayB0byBjb3B5PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgYH0sImRlbW9GdW5jIil9KTtmdW5jdGlvbiB6SmEoKXtteC5zaXplPkw5YSYmQXJyYXkuZnJvbShteC5rZXlzKCkpLnNsaWNlKDAsTDlhLzUpLmZvckVhY2goZT0+bXguZGVsZXRlKGUpKX12YXIgZngseDIsTUphLE1vdCxteCxMOWEsQ0phLEdhPWcoKCk9PntwZSgpO2t0KCk7aHQoKTtrOGUoKTtzZ2UoKTt6N2UoKTtSa2UoKTtEOWEoKTtDOCgpO0M4KCk7Zng9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHgyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxNSmE9e2Fycm93UmlnaHQ6WGIsYXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTpnZixiZWxsOkZiLGJ1ZzpldixidWlsZGluZzpLYixjYXJldExlZnQ6cWIsY2FyZXRSaWdodDpPYixjaGVjazpaYixjaXJjbGVJbmZvOnZmLGNpcmNsZUNoZWNrOnRmLGNpcmNsZUNoZWNrU29saWQ6cGYsY2lyY2xlWG1hcms6dWgsY2lyY2xlWG1hcmtTb2xpZDpwaCxjbG9ja1JvdGF0ZUxlZnQ6aGYsY29weTpQYixjb3B5U29saWQ6dHYsZGVza3RvcDpiZixleWU6SGIsZXllU2xhc2g6YXYsZmlsZUludm9pY2U6UWIsZmlsZUludm9pY2VEb2xsZXI6SmIsZ2VhcjpkZixncmlwOmhoLG1hZ25pZnlpbmdHbGFzczpuZixtZXNzYWdlOkozLG1lc3NhZ2VTb2xpZDpyZixtb25leUNoZWNrRG9sbGFyOm1mLG11Z0hvdDpzdixtaW51czpzZixuZXR3b3JrV2lyZWQ6V2IscGFwZXJjbGlwOlliLHBhc3RlOlEzLHBhc3RlU29saWQ6YWYscGVuVG9TcXVhcmU6bGYscGx1czpmZixyZWNlaXB0OmpiLHJzczpvZixzaGFyZTpjZixzdW46RWIsc3VuU29saWQ6VWIsdGVybWluYWw6R2IsdHJhc2g6ZmgsdHJhc2hTb2xpZDpmaCx0cmFzaENhbjplZix0cmFzaENhblNvbGlkOnVmLHVzZXJzOlZiLHdhbGxldDpCYix4bWFyazp6ZCxmYWNlYm9vazpDYixnb29nbGU6TWIsaW5zdGFncmFtOkRiLGxpbmtlZGluOnpiLG1lZGl1bTpYMyxzbGFjazpUYix0aWt0b2s6JGIsdHdpdHRlcjpMYn0sTW90PXtmYTpNSmF9LG14PW5ldyBNYXAsTDlhPTUwMDtpKHpKYSwibGltaXRDYWNoZVNpemUiKTtDSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWljb24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0ljb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxjb252ZXJ0ZXI6e2Zyb21BdHRyaWJ1dGU6aShfPT5fLCJmcm9tQXR0cmlidXRlIiksdG9BdHRyaWJ1dGU6aShfPT5fLCJ0b0F0dHJpYnV0ZSIpfX0pXSxwPVtMKHt0eXBlOlN0cmluZyxjb252ZXJ0ZXI6e2Zyb21BdHRyaWJ1dGU6aShfPT5fLCJmcm9tQXR0cmlidXRlIiksdG9BdHRyaWJ1dGU6aShfPT5fLCJ0b0F0dHJpYnV0ZSIpfX0pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxmeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25GQSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaWNvbkZBImluIF8sImhhcyIpLGdldDppKF89Pl8uaWNvbkZBLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaWNvbkZBPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxmeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Imljb24iaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pY29uLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaWNvbj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksZngodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaWNvblNpemUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pY29uU2l6ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmljb25TaXplPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxmeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjb2xvciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNvbG9yLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY29sb3I9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGZ4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3Ryb2tlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InN0cm9rZVdpZHRoImluIF8sImhhcyIpLGdldDppKF89Pl8uc3Ryb2tlV2lkdGgsImdldCIpLHNldDppKChfLE8pPT57Xy5zdHJva2VXaWR0aD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksZngobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz0kOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07I2U9eDIodGhpcyxvLHZvaWQgMCk7Z2V0IGljb25GQSgpe3JldHVybiB0aGlzLiNlfXNldCBpY29uRkEoQyl7dGhpcy4jZT1DfSN0PSh4Mih0aGlzLGwpLHgyKHRoaXMsZCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiN0fXNldCBpY29uKEMpe3RoaXMuI3Q9Q30jYT0oeDIodGhpcyx1KSx4Mih0aGlzLGIsdm9pZCAwKSk7Z2V0IGljb25TaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGljb25TaXplKEMpe3RoaXMuI2E9Q30jcz0oeDIodGhpcyx2KSx4Mih0aGlzLG0sImN1cnJlbnRDb2xvciIpKTtnZXQgY29sb3IoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29sb3IoQyl7dGhpcy4jcz1DfSNpPSh4Mih0aGlzLGYpLHgyKHRoaXMsTSwyKSk7Z2V0IHN0cm9rZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0cm9rZVdpZHRoKEMpe3RoaXMuI2k9Q31sYXN0SWNvbj0oeDIodGhpcyx6KSxudWxsKTtsYXN0SWNvblNpemU9bnVsbDtsYXN0Q29sb3I9bnVsbDtsYXN0U3Ryb2tlV2lkdGg9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGEuc2V0dXAoKX1nZXRFZmZlY3RpdmVJY29uKCl7cmV0dXJuIHRoaXMuaWNvbj90aGlzLmljb246dGhpcy5pY29uRkE/dGhpcy5pY29uRkEuc3RhcnRzV2l0aCgibHVjaWRlOiIpP3RoaXMuaWNvbkZBOmBmYToke3RoaXMuaWNvbkZBfWA6bnVsbH1wYXJzZUljb25TdHJpbmcoQyl7bGV0IF89Qy50b0xvd2VyQ2FzZSgpO3JldHVybiBfLnN0YXJ0c1dpdGgoImZhOiIpP3t0eXBlOiJmYSIsbmFtZTpDLnN1YnN0cmluZygzKX06Xy5zdGFydHNXaXRoKCJsdWNpZGU6Iik/e3R5cGU6Imx1Y2lkZSIsbmFtZTpDLnN1YnN0cmluZyg3KX06e3R5cGU6Imx1Y2lkZSIsbmFtZTpDfX1yZW5kZXJMdWNpZGVJY29uKEMpe2xldCBfPWBsdWNpZGU6JHtDfToke3RoaXMuaWNvblNpemV9OiR7dGhpcy5jb2xvcn06JHt0aGlzLnN0cm9rZVdpZHRofWA7aWYobXguaGFzKF8pKXJldHVybiBteC5nZXQoXyl8fCIiO3RyeXtsZXQgTz1DLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK0Muc2xpY2UoMSk7aWYoIUdyW09dKXJldHVybiBjb25zb2xlLndhcm4oYEx1Y2lkZSBpY29uICcke099JyBub3QgZm91bmQgaW4gbHVjaWRlSWNvbnMgb2JqZWN0YCksIiI7bGV0ICQ9ajEoR3JbT10se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZighJClyZXR1cm4gY29uc29sZS53YXJuKGBjcmVhdGVFbGVtZW50IHJldHVybmVkIGVtcHR5IHJlc3VsdCBmb3IgJHtPfWApLCIiO2xldCBFPSQub3V0ZXJIVE1MO3JldHVybiBteC5zZXQoXyxFKSx6SmEoKSxFfWNhdGNoKE8pe3JldHVybiBjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb24gJHtDfTpgLE8pLGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IiR7dGhpcy5pY29uU2l6ZX0iIGhlaWdodD0iJHt0aGlzLmljb25TaXplfSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiR7dGhpcy5jb2xvcn0iIHN0cm9rZS13aWR0aD0iJHt0aGlzLnN0cm9rZVdpZHRofSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZm9udC1zaXplPSI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiBmaWxsPSIke3RoaXMuY29sb3J9Ij4ke0N9PC90ZXh0PgogICAgICA8L3N2Zz5gfX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSW1wcm92ZSByZW5kZXJpbmcgcGVyZm9ybWFuY2UgKi8KICAgICAgI2ljb25Db250YWluZXIgc3ZnIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogSGVscHMgd2l0aCBhbmltYXRpb25zICovCiAgICAgICAgY29udGFpbjogc3RyaWN0OyAvKiBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gKi8KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGEuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgI2ljb25Db250YWluZXIgewogICAgICAgICAgd2lkdGg6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmljb25TaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBpZD0iaWNvbkNvbnRhaW5lciI+PC9kaXY+CiAgICBgfXVwZGF0ZWQoKXt0aGlzLmljb25TaXplfHwodGhpcy5pY29uU2l6ZT1wYXJzZUludChnbG9iYWxUaGlzLmdldENvbXB1dGVkU3R5bGUodGhpcykuZm9udFNpemUucmVwbGFjZSgvXEQvZywiIikpKTtsZXQgQz10aGlzLmdldEVmZmVjdGl2ZUljb24oKTtpZih0aGlzLmxhc3RJY29uPT09QyYmdGhpcy5sYXN0SWNvblNpemU9PT10aGlzLmljb25TaXplJiZ0aGlzLmxhc3RDb2xvcj09PXRoaXMuY29sb3ImJnRoaXMubGFzdFN0cm9rZVdpZHRoPT09dGhpcy5zdHJva2VXaWR0aClyZXR1cm47dGhpcy5sYXN0SWNvbj1DLHRoaXMubGFzdEljb25TaXplPXRoaXMuaWNvblNpemUsdGhpcy5sYXN0Q29sb3I9dGhpcy5jb2xvcix0aGlzLmxhc3RTdHJva2VXaWR0aD10aGlzLnN0cm9rZVdpZHRoO2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiI2ljb25Db250YWluZXIiKTtpZighKCFffHwhQykpdHJ5e2xldHt0eXBlOk8sbmFtZTokfT10aGlzLnBhcnNlSWNvblN0cmluZyhDKTtpZihPPT09Imx1Y2lkZSIpe18uaW5uZXJIVE1MPSIiO3RyeXtsZXQgRT0kLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpKyQuc2xpY2UoMSk7aWYoR3JbRV0pe2xldCBIPWoxKEdyW0VdLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoSCl7Xy5hcHBlbmRDaGlsZChIKTtyZXR1cm59fXRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGNyZWF0ZSBlbGVtZW50IGZvciAke0V9YCl9Y2F0Y2goRSl7Y29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uOiIsRSk7bGV0IEg9dGhpcy5yZW5kZXJMdWNpZGVJY29uKCQpO0gmJihfLmlubmVySFRNTD1IKX19ZWxzZXtsZXQgRT1Nb3QuZmFbJF07aWYoRSl7bGV0IEg9R2soRSkuaHRtbFswXTtfLmlubmVySFRNTD1IfWVsc2UgY29uc29sZS53YXJuKGBGb250QXdlc29tZSBpY29uIG5vdCBmb3VuZDogJHskfWApfX1jYXRjaChPKXtjb25zb2xlLmVycm9yKGBFcnJvciB1cGRhdGluZyBpY29uICR7Q306YCxPKX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubGFzdEljb249bnVsbCx0aGlzLmxhc3RJY29uU2l6ZT1udWxsLHRoaXMubGFzdENvbG9yPW51bGwsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9bnVsbH1zdGF0aWN7eDIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIEU5YSx6b3QsJGEsZnI9ZygoKT0+e3ZvKCk7VDlhKCk7cGUoKTtrdCgpO3YyKCk7R24oKTtHYSgpO2h0KCk7RTlhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6b3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LCRhPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jb250ZXh0bWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQ29udGV4dG1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLEU5YSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4ibWVudUl0ZW1zImluIHUsImhhcyIpLGdldDppKHU9PnUubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UubWVudUl0ZW1zPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxFOWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1DOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITE7c3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO3N0YXRpYyBpbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZD0+e2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLHAuYWNjdW11bGF0ZWRNZW51SXRlbXM9W107bGV0IHU9ZC5jb21wb3NlZFBhdGgoKTtmb3IobGV0IGMgb2YgdSlpZihjLmdldENvbnRleHRNZW51SXRlbXMpe2xldCBiPWMuZ2V0Q29udGV4dE1lbnVJdGVtcygpO2ImJmIubGVuZ3RoPjAmJihwLmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aD4wJiZwLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goe2RpdmlkZXI6ITB9KSxwLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uYikpfXAub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZCxwLmFjY3VtdWxhdGVkTWVudUl0ZW1zKX0pfXN0YXRpYyBhc3luYyBvcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhkLHUpe2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGM9bmV3IHA7Yy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGMuc3R5bGUuekluZGV4PVN0cmluZyhiby5vdmVybGF5LmNvbnRleHRNZW51KSxjLnN0eWxlLm9wYWNpdHk9IjAiLGMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsYy5tZW51SXRlbXM9dSxjLndpbmRvd0xheWVyPWF3YWl0IFJvLmNyZWF0ZUFuZFNob3coKSxjLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYyB5PT57eS50YXJnZXQuY2xvc2VzdCgiZGVlcy1jb250ZXh0bWVudSIpfHxhd2FpdCBjLmRlc3Ryb3koKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kKGMpLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGI9Yy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PXdpbmRvdy5pbm5lcldpZHRoLHg9d2luZG93LmlubmVySGVpZ2h0LG09ZC5jbGllbnRZLGY9ZC5jbGllbnRYO2YrYi53aWR0aD52JiYoZj12LWIud2lkdGgtMTApLG0rYi5oZWlnaHQ+eCYmKG09eC1iLmhlaWdodC0xMCksZjwxMCYmKGY9MTApLG08MTAmJihtPTEwKSxjLnN0eWxlLnRvcD1gJHttfXB4YCxjLnN0eWxlLmxlZnQ9YCR7Zn1weGAsYy5zdHlsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iixhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLGMuc3R5bGUub3BhY2l0eT0iMSIsYy5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkifSNlPXpvdCh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKGQpe3RoaXMuI2U9ZH13aW5kb3dMYXllcj16b3QodGhpcyxsKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIG1heC13aWR0aDogMjgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CgogICAgICAubWVudWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5oYXMtc3VibWVudTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICfigLonOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTphY3RpdmU6bm90KC5oYXMtc3VibWVudSkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1lbnVpdGVtLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKGQ9PntpZigiZGl2aWRlciJpbiBkJiZkLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCB1PWQsYz11LnN1Ym1lbnUmJnUuc3VibWVudS5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibWVudWl0ZW0gJHt1LmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9ICR7Yz8iaGFzLXN1Ym1lbnUiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiF1LmRpc2FibGVkJiYhYyYmdGhpcy5oYW5kbGVDbGljayh1KX0KICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtSG92ZXIodSxjKX0KICAgICAgICAgICAgICBAbW91c2VsZWF2ZT0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dS5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt1Lmljb25OYW1lfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+JHt1Lm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICR7dS5zaG9ydGN1dCYmIWM/d2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS1zaG9ydGN1dCI+JHt1LnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9KX0KICAgICAgICAke3RoaXMubWVudUl0ZW1zLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudWl0ZW0iIEBjbGljaz0keygpPT57cC5jb250ZXh0TWVudURlYWN0aXZhdGVkPSEwLHRoaXMuZGVzdHJveSgpfX0+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ibHVjaWRlOngiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS10ZXh0Ij5BbGxvdyBuYXRpdmUgY29udGV4dDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YGB9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmZvY3VzKCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleWRvd24pfWhhbmRsZUtleWRvd249aShkPT57bGV0IHU9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVpdGVtOm5vdCguZGlzYWJsZWQpIikpLGM9dS5maW5kSW5kZXgoYj0+Yi5tYXRjaGVzKCI6aG92ZXIiKSk7c3dpdGNoKGQua2V5KXtjYXNlIkFycm93RG93biI6ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCBiPWMrMTx1Lmxlbmd0aD9jKzE6MDt1W2JdLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjpkLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9Yy0xPj0wP2MtMTp1Lmxlbmd0aC0xO3Vbdl0uZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgibW91c2VlbnRlciIpKTticmVhaztjYXNlIkVudGVyIjpkLnByZXZlbnREZWZhdWx0KCksYz49MCYmdVtjXS5jbGljaygpO2JyZWFrO2Nhc2UiRXNjYXBlIjpkLnByZXZlbnREZWZhdWx0KCksdGhpcy5kZXN0cm95KCk7YnJlYWt9fSwiaGFuZGxlS2V5ZG93biIpO2FzeW5jIGhhbmRsZUNsaWNrKGQpe2QuYWN0aW9uKCksYXdhaXQgdGhpcy5kZXN0cm95QWxsKCl9YXN5bmMgaGFuZGxlTWVudUl0ZW1Ib3ZlcihkLHUpe3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJmF3YWl0IHRoaXMuaGlkZVN1Ym1lbnUoKSx1JiZkLnN1Ym1lbnUmJih0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWJtZW51KGQpfSwyMDApKX1oYW5kbGVNZW51SXRlbUxlYXZlKCl7dGhpcy5zdWJtZW51VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3VibWVudSYmIXRoaXMuc3VibWVudS5tYXRjaGVzKCI6aG92ZXIiKSYmdGhpcy5oaWRlU3VibWVudSgpfSwzMDApfWFzeW5jIHNob3dTdWJtZW51KGQpe2lmKCFkLnN1Ym1lbnV8fGQuc3VibWVudS5sZW5ndGg9PT0wKXJldHVybjtsZXQgYz1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW0iKSkuZmluZChNPT5NLnF1ZXJ5U2VsZWN0b3IoIi5tZW51aXRlbS10ZXh0Iik/LnRleHRDb250ZW50PT09ZC5uYW1lKTtpZighYylyZXR1cm47dGhpcy5zdWJtZW51PW5ldyBwLHRoaXMuc3VibWVudS5tZW51SXRlbXM9ZC5zdWJtZW51LHRoaXMuc3VibWVudS5wYXJlbnRNZW51PXRoaXMsdGhpcy5zdWJtZW51LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdWJtZW51LnN0eWxlLnpJbmRleD1TdHJpbmcocGFyc2VJbnQodGhpcy5zdHlsZS56SW5kZXgpKzEpLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSIsZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zdWJtZW51KSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBiPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHg9dGhpcy5zdWJtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09d2luZG93LmlubmVyV2lkdGgsZj12LnJpZ2h0LTQseT1iLnRvcDtmK3gud2lkdGg+bS0xMCYmKGY9di5sZWZ0LXgud2lkdGgrNCkseSt4LmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQtMTAmJih5PXdpbmRvdy5pbm5lckhlaWdodC14LmhlaWdodC0xMCksdGhpcy5zdWJtZW51LnN0eWxlLmxlZnQ9YCR7Zn1weGAsdGhpcy5zdWJtZW51LnN0eWxlLnRvcD1gJHt5fXB4YCxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIxIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgxKSIsdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCgpPT57dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpfSksdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9KX1hc3luYyBoaWRlU3VibWVudSgpe3RoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpfWFzeW5jIGRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHRoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKSx0aGlzLndpbmRvd0xheWVyJiYhdGhpcy5wYXJlbnRNZW51JiZ0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpKX1hc3luYyBkZXN0cm95QWxsKCl7bGV0IGQ9dGhpcztmb3IoO2QucGFyZW50TWVudTspZD1kLnBhcmVudE1lbnU7YXdhaXQgZC5kZXN0cm95KCl9c3RhdGlje3pvdChhLHQpfX07cmV0dXJuIHA9YX0pKCk7JGEuaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCl9KTt2YXIgUDlhLEk5YT1nKCgpPT57cGUoKTtJdCgpO1A5YT1pKCgpPT57bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpO3JldHVybiBzZXRUaW1lb3V0KCgpPT57cy5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZTonY3JlYXRlZCBhIG5ldyBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9LHt0eXBlOiJsb2dvdXQiLHVzZXI6IkFsaWNlIEJyb3duIixtZXNzYWdlOiJsb2dnZWQgb3V0In0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToiY3JlYXRlZCBpbnZvaWNlICMxMjM0In1dKSxzLmVudHJpZXMkLnN1YnNjcmliZShlPT57Y29uc29sZS5sb2coIkFjdGl2aXR5IGxvZyB1cGRhdGVkOiIsZS5sZW5ndGgsImVudHJpZXMiKX0pfSwxMDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgJHtzfQogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciAkMWUsRmcsVEphLENvdD1nKCgpPT57cGUoKTtrdCgpO2ZyKCk7R2EoKTtJOWEoKTtodCgpOyQxZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRmc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFRKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQWN0aXZpdHlsb2ciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sYz1bWSgpXSwkMWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJlbnRyaWVzImluIGYsImhhcyIpLGdldDppKGY9PmYuZW50cmllcywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmVudHJpZXM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLCQxZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzZWFyY2hRdWVyeSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoZix5KT0+e2Yuc2VhcmNoUXVlcnk9eX0sInNldCIpfSxtZXRhZGF0YTptfSxkLHUpLCQxZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlckNyaXRlcmlhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJmaWx0ZXJDcml0ZXJpYSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmZpbHRlckNyaXRlcmlhLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZmlsdGVyQ3JpdGVyaWE9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLCQxZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPVA5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUZnKHRoaXMsbyxbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyhtKXt0aGlzLiNlPW19I3Q9KEZnKHRoaXMsbCksRmcodGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KG0pe3RoaXMuI3Q9bX0jYT0oRmcodGhpcyx1KSxGZyh0aGlzLGIse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyQ3JpdGVyaWEobSl7dGhpcy4jYT1tfWVudHJpZXMkPShGZyh0aGlzLHYpLG5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGFsaWduZWQgd2l0aCBzZWNvbmRhcnkgbWVudSAqLwogICAgICAgIC0tYWN0aXZpdHlsb2ctYmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnOiAke2guYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1tdXRlZDogJHtoLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlOiAke2guYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ib3JkZXI6ICR7aC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWhvdmVyOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1hY2NlbnQ6ICR7aC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKCiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgd2l0aCBzdHJlYW1pbmcgaW5kaWNhdG9yICovCiAgICAgIC50b3BiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRvcGJhciAuaGVhZGluZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgLmRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH0KICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0KICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgY29udGFpbmVyICovCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDhweDsKICAgICAgICBib3R0b206IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTNhM2EzIiwiIzUyNTI1MiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBEYXRlIHNlcGFyYXRvciAtIHdhcm0gdGF1cGUgc3R5bGluZyAqLwogICAgICAuZGF0ZS1zZXBhcmF0b3IgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWFjY2VudCk7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGVudHJ5IC0gbW9kZXJuIHN0YWNrZWQgbGF5b3V0ICovCiAgICAgIC5hY3Rpdml0eWVudHJ5IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFjdGl2aXR5ZW50cnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ2luIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wOCkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dvdXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNjgsIDg1LCAyNDcsIDAuMDgpIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkzMzNlYSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnVwZGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjUxLCAxNDYsIDYwLCAwLjA4KSIsInJnYmEoMjUxLCAxNDYsIDYwLCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5kZWxldGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4wOCkiLCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzQ3NTU2OSIsIiM5NGEzYjgiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXVzZXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogU2VhcmNoIGJveCAtIHJlZmluZWQgc3R5bGluZyAqLwogICAgICAuc2VhcmNoYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCAzNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IG09dGhpcy5nZXRGaWx0ZXJlZEVudHJpZXMoKSxmPXRoaXMuZ3JvdXBFbnRyaWVzQnlEYXRlKG0pO3JldHVybiB3YAogICAgICAke3RhLnN0eWxlc30KICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj5BY3Rpdml0eSBMb2c8L2Rpdj4KICAgICAgICAgICR7bS5sZW5ndGg+MD93YDxkaXYgY2xhc3M9ImxpdmUtaW5kaWNhdG9yIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+TGl2ZTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHlDb250YWluZXIiPgogICAgICAgICAgJHttLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gYWN0aXZpdHkgZW50cmllczwvZGl2PmA6Zi5tYXAoeT0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1zZXBhcmF0b3IiPiR7eS5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgICAgICAgJHt5LmVudHJpZXMubWFwKE09PnRoaXMucmVuZGVyQWN0aXZpdHlFbnRyeShNKSl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJzZWFyY2gtaWNvbiIgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYWN0aXZpdGllcywgdXNlcnMuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVNlYXJjaElucHV0fQogICAgICAgICAgICAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpdml0eUVudHJ5KG0pe2xldCBmPW0udGltZXN0YW1wfHxuZXcgRGF0ZSx5PXRoaXMuZm9ybWF0VGltZShmKSxNPW0uaWNvbk5hbWV8fHRoaXMuZ2V0SWNvbkZvclR5cGUobS50eXBlKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpdml0eWVudHJ5IgogICAgICAgIEBjb250ZXh0bWVudT0ke3o9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoeixtKX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWljb24gJHttLnR5cGV9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtNfT48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS11c2VyIj4ke20udXNlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1zZXBhcmF0b3IiPsK3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZXN0YW1wIj4ke3l9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1tZXNzYWdlIj4ke20ubWVzc2FnZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZChtKXtsZXQgZj17Li4ubSxpZDptLmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6bS50aW1lc3RhbXB8fG5ldyBEYXRlfTt0aGlzLmVudHJpZXM9W2YsLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1hZGRNYW55KG0pe2xldCBmPW0ubWFwKHk9Pih7Li4ueSxpZDp5LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6eS50aW1lc3RhbXB8fG5ldyBEYXRlfSkpO3RoaXMuZW50cmllcz1bLi4uZi5yZXZlcnNlKCksLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1jbGVhcigpe3RoaXMuZW50cmllcz1bXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1nZXRFbnRyaWVzKCl7cmV0dXJuWy4uLnRoaXMuZW50cmllc119ZmlsdGVyKG0pe3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKGY9PiEobS51c2VyJiZmLnVzZXIhPT1tLnVzZXJ8fG0udHlwZSYmZi50eXBlIT09bS50eXBlKSl9c2VhcmNoKG0pe2xldCBmPW0udG9Mb3dlckNhc2UoKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcih5PT55Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKXx8eS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZikpfWdlbmVyYXRlSWQoKXtyZXR1cm5gYWN0aXZpdHktJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9Z2V0RmlsdGVyZWRFbnRyaWVzKCl7bGV0IG09dGhpcy5lbnRyaWVzO2lmKHRoaXMuc2VhcmNoUXVlcnkpe2xldCBmPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTttPW0uZmlsdGVyKHk9PnkubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGYpfHx5LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmKSl9cmV0dXJuKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSYmKG09bS5maWx0ZXIoZj0+ISh0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXImJmYudXNlciE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlJiZmLnR5cGUhPT10aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpKSksbX1ncm91cEVudHJpZXNCeURhdGUobSl7bGV0IGY9bmV3IE1hcCx5PW5ldyBEYXRlLE09bmV3IERhdGUoeSk7TS5zZXREYXRlKE0uZ2V0RGF0ZSgpLTEpO2ZvcihsZXQgeiBvZiBtKXtsZXQgTj16LnRpbWVzdGFtcHx8bmV3IERhdGUsQzt0aGlzLmlzU2FtZURheShOLHkpP0M9IlRvZGF5Ijp0aGlzLmlzU2FtZURheShOLE0pP0M9Illlc3RlcmRheSI6Qz1OLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHttb250aDoic2hvcnQiLGRheToibnVtZXJpYyIseWVhcjpOLmdldEZ1bGxZZWFyKCkhPT15LmdldEZ1bGxZZWFyKCk/Im51bWVyaWMiOnZvaWQgMH0pLGYuaGFzKEMpfHxmLnNldChDLFtdKSxmLmdldChDKS5wdXNoKHopfXJldHVybiBBcnJheS5mcm9tKGYuZW50cmllcygpKS5tYXAoKFt6LE5dKT0+KHtsYWJlbDp6LGVudHJpZXM6Tn0pKX1pc1NhbWVEYXkobSxmKXtyZXR1cm4gbS5nZXRGdWxsWWVhcigpPT09Zi5nZXRGdWxsWWVhcigpJiZtLmdldE1vbnRoKCk9PT1mLmdldE1vbnRoKCkmJm0uZ2V0RGF0ZSgpPT09Zi5nZXREYXRlKCl9Zm9ybWF0VGltZShtKXtyZXR1cm4gbS50b0xvY2FsZVRpbWVTdHJpbmcoImVuLVVTIix7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITF9KX1nZXRJY29uRm9yVHlwZShtKXtsZXQgZj17bG9naW46Imx1Y2lkZTpsb2dJbiIsbG9nb3V0OiJsdWNpZGU6bG9nT3V0Iix2aWV3OiJsdWNpZGU6ZXllIixjcmVhdGU6Imx1Y2lkZTpwbHVzIix1cGRhdGU6Imx1Y2lkZTplZGl0IixkZWxldGU6Imx1Y2lkZTp0cmFzaDIiLGN1c3RvbToibHVjaWRlOmFjdGl2aXR5In07cmV0dXJuIGZbbV18fGYuY3VzdG9tfWhhbmRsZVNlYXJjaElucHV0KG0pe2xldCBmPW0udGFyZ2V0O3RoaXMuc2VhcmNoUXVlcnk9Zi52YWx1ZX1oYW5kbGVDb250ZXh0TWVudShtLGYpe20ucHJldmVudERlZmF1bHQoKSwkYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhtLFt7bmFtZToiQ29weSBhY3Rpdml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYCR7Zi51c2VyfSAke2YubWVzc2FnZX1gKX0sImFjdGlvbiIpfSx7bmFtZToiRmlsdGVyIGJ5IHVzZXIiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3VzZXI6Zi51c2VyfX0sImFjdGlvbiIpfSx7bmFtZToiRmlsdGVyIGJ5IHR5cGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixhY3Rpb246aShhc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17dHlwZTpmLnR5cGV9fSwiYWN0aW9uIil9LHtuYW1lOiJDbGVhciBmaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt9LHRoaXMuc2VhcmNoUXVlcnk9IiJ9LCJhY3Rpb24iKX1dKX1zdGF0aWN7RmcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIEE5YT1nKCgpPT57Q290KCl9KTt2YXIgTjlhPWcoKCk9Pnt9KTt2YXIgUjlhPWcoKCk9Pnt2bygpfSk7dmFyIE85YT1nKCgpPT57fSk7dmFyIEY5YT1nKCgpPT57fSk7dmFyIEI5YT1nKCgpPT57fSk7dmFyIGE0PWcoKCk9PntOOWEoKTtSOWEoKTtPOWEoKTtGOWEoKTtCOWEoKX0pO3ZhciBIOWEscTlhPWcoKCk9PntwZSgpO0l0KCk7VG90KCk7SDlhPWkoKCk9PntsZXQgcz1be25hbWU6IkZpbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiTmV3IEZpbGUiLHNob3J0Y3V0OiJDbWQrTiIsaWNvbk5hbWU6ImZpbGUtcGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIiksImFjdGlvbiIpfSx7bmFtZToiT3Blbi4uLiIsc2hvcnRjdXQ6IkNtZCtPIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIiksImFjdGlvbiIpfSx7bmFtZToiT3BlbiBSZWNlbnQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToicHJvamVjdC1hbHBoYS50cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKSwiYWN0aW9uIil9LHtuYW1lOiJjb25maWcuanNvbiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKSwiYWN0aW9uIil9LHtuYW1lOiJyZWFkbWUubWQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFzLi4uIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksImFjdGlvbiIpLGRpc2FibGVkOiEwfSx7ZGl2aWRlcjohMH0se25hbWU6IkV4aXQiLHNob3J0Y3V0OiJDbWQrUSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsc2hvcnRjdXQ6IkNtZCtGIixpY29uTmFtZToic2VhcmNoIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIEZ1bGxzY3JlZW4iLHNob3J0Y3V0OiJGMTEiLGljb25OYW1lOiJleHBhbmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIiksImFjdGlvbiIpfSx7bmFtZToiWm9vbSBJbiIsc2hvcnRjdXQ6IkNtZCsrIixpY29uTmFtZToiem9vbS1pbiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIE91dCIsc2hvcnRjdXQ6IkNtZCstIixpY29uTmFtZToiem9vbS1vdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpLCJhY3Rpb24iKX0se25hbWU6IlJlc2V0IFpvb20iLHNob3J0Y3V0OiJDbWQrMCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIiksImFjdGlvbiIpfSx7bmFtZToiVG9nZ2xlIFRlcm1pbmFsIixzaG9ydGN1dDoiQ21kK0oiLGljb25OYW1lOiJ0ZXJtaW5hbCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiSGVscCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWxlYXNlIE5vdGVzIixpY29uTmFtZToiZmlsZS10ZXh0IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJSZXBvcnQgSXNzdWUiLGljb25OYW1lOiJidWciLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKSwiYWN0aW9uIil9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjYXBwYmFyIiksYT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGF0dXMtdG9nZ2xlIGRlZXMtYnV0dG9uIik7YVswXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6Im9ubGluZSJ9fSksYVsxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6ImJ1c3kifX0pLGFbMl0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC51c2VyPXsuLi50LnVzZXIsc3RhdHVzOiJhd2F5In19KSxhWzNdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudXNlcj17Li4udC51c2VyLHN0YXR1czoib2ZmbGluZSJ9fSksZS5xdWVyeVNlbGVjdG9yKCIud2luZG93LWNvbnRyb2xzLXRvZ2dsZSBkZWVzLWJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3Quc2hvd1dpbmRvd0NvbnRyb2xzPSF0LnNob3dXaW5kb3dDb250cm9sc30pO2xldCBuPWUucXVlcnlTZWxlY3RvckFsbCgiLmJyZWFkY3J1bWItdG9nZ2xlIGRlZXMtYnV0dG9uIik7blswXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmJyZWFkY3J1bWJzPSJIb21lID4gRG9jdW1lbnRzID4gUHJvamVjdHMgPiBNeUFwcCA+IHNyYyA+IGluZGV4LnRzIn0pLG5bMV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5icmVhZGNydW1icz0iRGFzaGJvYXJkIn0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCBsYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIGlkPSJhcHBiYXIiCiAgICAgICAgLm1lbnVJdGVtcz0ke3N9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7IlByb2plY3QgPiBzcmMgPiBjb21wb25lbnRzID4gQXBwQmFyLnRzIn0KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0keyIgPiAifQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHshMH0KICAgICAgICAuc2hvd1NlYXJjaD0keyEwfQogICAgICAgIC50aGVtZT0keyJkYXJrIn0KICAgICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHtlPT5jb25zb2xlLmxvZygiTWVudSBzZWxlY3RlZDoiLGUuZGV0YWlsLml0ZW0pfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7ZT0+Y29uc29sZS5sb2coIkJyZWFkY3J1bWIgY2xpY2tlZDoiLGUuZGV0YWlsKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PmNvbnNvbGUubG9nKCJTZWFyY2ggY2xpY2tlZCIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT5jb25zb2xlLmxvZygiVXNlciBtZW51IGNsaWNrZWQiKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8aDI+QXBwIEJhciBEZW1vPC9oMj4KICAgICAgICA8cD5UaGlzIGRlbW8gc2hvd3MgdmFyaW91cyBmZWF0dXJlcyBvZiB0aGUgYXBwIGJhciBjb21wb25lbnQ6PC9wPgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5EeW5hbWljIG1lbnUgaXRlbXMgd2l0aCBpY29ucywgc2hvcnRjdXRzLCBhbmQgc3VibWVudXM8L2xpPgogICAgICAgICAgPGxpPkJyZWFkY3J1bWIgbmF2aWdhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+VXNlciBhY2NvdW50IHNlY3Rpb24gd2l0aCBzdGF0dXMgaW5kaWNhdG9yPC9saT4KICAgICAgICAgIDxsaT5TZWFyY2ggaWNvbjwvbGk+CiAgICAgICAgICA8bGk+V2luZG93IGNvbnRyb2xzIChwbGF0Zm9ybS1zcGVjaWZpYyk8L2xpPgogICAgICAgICAgPGxpPkRhcmsvbGlnaHQgdGhlbWUgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+S2V5Ym9hcmQgbmF2aWdhdGlvbiAoVGFiLCBFbnRlciwgRXNjYXBlKTwvbGk+CiAgICAgICAgICA8bGk+Q3VzdG9tIGV2ZW50cyBmb3IgYWxsIGludGVyYWN0aW9uczwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VGhlbWU8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ0aGVtZS10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFyazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPlVzZXIgU3RhdHVzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0ic3RhdHVzLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PbmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QnVzeTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Bd2F5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9mZmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5XaW5kb3cgQ29udHJvbHM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ3aW5kb3ctY29udHJvbHMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPkJyZWFkY3J1bWJzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0iYnJlYWRjcnVtYi10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TG9uZyBQYXRoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNob3J0IFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBqOWEsVjlhPWcoKCk9PntwZSgpO2o5YT1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciB0aGVtaW5nICovCiAgICAgICAgLS1hcHBiYXItaGVpZ2h0OiA0MHB4OwogICAgICAgIC0tYXBwYmFyLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hcHBiYXItaGVpZ2h0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLWFwcGJhci1mb250LXNpemUpOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvOwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogZHJhZzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogT3B0aW9uYWw6IFN0eWxlIGZvciBtZW51IGl0ZW1zIHdpdGggaWNvbnMgKG5vdCB0eXBpY2FsbHkgdXNlZCBmb3IgdG9wLWxldmVsIGl0ZW1zKSAqLwogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW1bZGlzYWJsZWRdIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmZvY3VzLXZpc2libGUgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICB9CgoKICAgICAgLyogRHJvcGRvd24gc3R5bGVzICovCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24ub3BlbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW06aG92ZXIsCiAgICAgIC5kcm9wZG93bi1pdGVtLmZvY3VzZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGxvZyB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5hY3Rpdml0eS10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwNjAiLCIjZmZmZmZmNjAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYxNSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGUuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDE1IiwiI2ZmZmZmZjIwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWJhZGdlIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjNTI1MjUyIiwiIzUyNTI1MiIpfTsKICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CiAgICBgXX0pO3ZhciBVOWEsVzlhPWcoKCk9PntwZSgpO1U5YT1pKHM9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudXMiPgogICAgICAgICAgJHtzLnNob3dXaW5kb3dDb250cm9scz93YDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gOiIifQogICAgICAgICAgJHtzLnJlbmRlck1lbnVJdGVtcygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4KICAgICAgICAgICR7cy5yZW5kZXJCcmVhZGNydW1icygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjY291bnQiPgogICAgICAgICAgJHtzLnJlbmRlckFjY291bnRTZWN0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlckFwcHVpQXBwYmFyIil9KTt2YXIgJG90LHpRLCRKYSxEb3Q9ZygoKT0+e3BlKCk7aHQoKTskb3Q9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHpRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSwkSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdpbmRvd2NvbnRyb2xzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXaW5kb3dDb250cm9scyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3JlZmxlY3Q6ITB9KV0scD1bTCh7cmVmbGVjdDohMH0pXSwkb3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ0eXBlImluIHYsImhhcyIpLGdldDppKHY9PnYudHlwZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnR5cGU9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLCRvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJwb3NpdGlvbiJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucG9zaXRpb249eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLCRvdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT16USh0aGlzLG8sIm1hYyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoYil7dGhpcy4jZT1ifSN0PSh6USh0aGlzLGwpLHpRKHRoaXMsZCwibGVmdCIpKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHpRKHRoaXMsdSl9c3RhdGlje3pRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBDUSxFdSxESmEsTG90PWcoKCk9Pnt2bygpO0duKCk7cGUoKTtodCgpO0NRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxFdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sREphPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpUHJvZmlsZURyb3Bkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSxDUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InVzZXIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei51c2VyLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudXNlcj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksQ1EodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im1lbnVJdGVtcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6Lm1lbnVJdGVtcz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksQ1EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImlzT3BlbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzT3BlbiwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmlzT3Blbj1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksQ1EodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4icG9zaXRpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnBvc2l0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxDUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgLnVzZXI9JHt7bmFtZToiSm9obiBEb2UiLGVtYWlsOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsYXZhdGFyOiJodHRwczovL3JhbmRvbXVzZXIubWUvYXBpL3BvcnRyYWl0cy9tZW4vMS5qcGciLHN0YXR1czoib25saW5lIn19CiAgICAgIC5tZW51SXRlbXM9JHtbe25hbWU6IlByb2ZpbGUgU2V0dGluZ3MiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFjY291bnQiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCAmIFN1cHBvcnQiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kK0siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfQogICAgICAuaXNPcGVuPSR7ITB9CiAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1FdSh0aGlzLG8sdm9pZCAwKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNlfXNldCB1c2VyKE0pe3RoaXMuI2U9TX0jdD0oRXUodGhpcyxsKSxFdSh0aGlzLGQsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyhNKXt0aGlzLiN0PU19I2E9KEV1KHRoaXMsdSksRXUodGhpcyxiLCExKSk7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLiNhfXNldCBpc09wZW4oTSl7dGhpcy4jYT1NfSNzPShFdSh0aGlzLHYpLEV1KHRoaXMsbSwidG9wLXJpZ2h0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBwb3NpdGlvbihNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHotaW5kZXg6ICR7Ym8ub3ZlcmxheS5kcm9wZG93bn07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuYmFja2Ryb3AgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFBvc2l0aW9uIHZhcmlhbnRzICovCiAgICAgIC5kcm9wZG93bi50b3AtcmlnaHQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi50b3AtbGVmdCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLXJpZ2h0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLWxlZnQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogVXNlciBzZWN0aW9uICovCiAgICAgIC51c2VyLXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC51c2VyLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudXNlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnVzZXItZW1haWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgc2VjdGlvbiAqLwogICAgICAubWVudS1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm1lbnUtc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIEJhY2tkcm9wIGZvciBtb2JpbGUgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmJhY2tkcm9wIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMDsKICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICByaWdodDogMDsKICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICAgIHotaW5kZXg6ICR7Ym8uYmFja2Ryb3AuZHJvcGRvd259OwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmJhY2tkcm9wIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRyb3Bkb3duIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgcmlnaHQ6IGF1dG87CiAgICAgICAgICBib3R0b206IGF1dG87CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjk1KTsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpOwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJhY2tkcm9wIiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZSgpfT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24gJHt0aGlzLnBvc2l0aW9ufSI+CiAgICAgICAgJHt0aGlzLnVzZXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP3dgPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6dGhpcy5nZXRJbml0aWFscyh0aGlzLnVzZXIubmFtZSl9CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5zdGF0dXM/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZGV0YWlscyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLW5hbWUiPiR7dGhpcy51c2VyLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5lbWFpbD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWVtYWlsIj4ke3RoaXMudXNlci5lbWFpbH08L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LXNlY3Rpb24iPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoTT0+dGhpcy5yZW5kZXJNZW51SXRlbShNKSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNZW51SXRlbShNKXtpZigiZGl2aWRlciJpbiBNJiZNLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCB6PU07cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1lbnUtaXRlbSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlTWVudUNsaWNrKHopfT4KICAgICAgICAke3ouaWNvbk5hbWU/d2AKICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke3ouaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtaXRlbS10ZXh0Ij4ke3oubmFtZX08L3NwYW4+CiAgICAgICAgJHt6LnNob3J0Y3V0P3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1zaG9ydGN1dCI+JHt6LnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0SW5pdGlhbHMoTSl7cmV0dXJuIE0uc3BsaXQoIiAiKS5tYXAoej0+elswXSkuam9pbigiIikudG9VcHBlckNhc2UoKS5zbGljZSgwLDIpfWFzeW5jIGhhbmRsZU1lbnVDbGljayhNKXthd2FpdCBNLmFjdGlvbigpLHRoaXMuY2xvc2UoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpNfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfW9wZW4oKXt0aGlzLmlzT3Blbj0hMH1jbG9zZSgpe3RoaXMuaXNPcGVuPSExfXRvZ2dsZSgpe3RoaXMuaXNPcGVuPSF0aGlzLmlzT3Blbn1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2s9dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2suYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWhhbmRsZU91dHNpZGVDbGljayhNKXtpZih0aGlzLmlzT3BlbiYmIXRoaXMuY29udGFpbnMoTS50YXJnZXQpKXtsZXQgej10aGlzLnBhcmVudEVsZW1lbnQ7aWYoeiYmei5jb250YWlucyhNLnRhcmdldCkpcmV0dXJuO3RoaXMuY2xvc2UoKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEV1KHRoaXMsZil9c3RhdGlje0V1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBobixDcyxMSmEsVG90PWcoKCk9PntwZSgpO2t0KCk7YTQoKTt2bygpO3E5YSgpO1Y5YSgpO1c5YSgpO0dhKCk7RG90KCk7TG90KCk7aG49ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LENzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxMSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLWFwcGJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W107dmFyIHllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlCYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgcT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOk9iamVjdH0pXSxOPVtMKHt0eXBlOkFycmF5fSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOkJvb2xlYW59KV0sST1bTCh7dHlwZTpOdW1iZXJ9KV0sSz1bTCh7dHlwZTpCb29sZWFufSldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLGhuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJtZW51SXRlbXMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5tZW51SXRlbXMsImdldCIpLHNldDppKChBLHNlKT0+e0EubWVudUl0ZW1zPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG8sbCksaG4odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYnJlYWRjcnVtYnMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5icmVhZGNydW1icywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5icmVhZGNydW1icz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxkLHUpLGhuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnJlYWRjcnVtYlNlcGFyYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYnJlYWRjcnVtYlNlcGFyYXRvciJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmJyZWFkY3J1bWJTZXBhcmF0b3IsImdldCIpLHNldDppKChBLHNlKT0+e0EuYnJlYWRjcnVtYlNlcGFyYXRvcj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxiLHYpLGhuKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzaG93V2luZG93Q29udHJvbHMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5zaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChBLHNlKT0+e0Euc2hvd1dpbmRvd0NvbnRyb2xzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG0sZiksaG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1c2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJ1c2VyImluIEEsImhhcyIpLGdldDppKEE9PkEudXNlciwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS51c2VyPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LE0seiksaG4odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9maWxlTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJwcm9maWxlTWVudUl0ZW1zImluIEEsImhhcyIpLGdldDppKEE9PkEucHJvZmlsZU1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5wcm9maWxlTWVudUl0ZW1zPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEMsXyksaG4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzaG93U2VhcmNoImluIEEsImhhcyIpLGdldDppKEE9PkEuc2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93U2VhcmNoPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LCQsRSksaG4odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aXZpdHlMb2dUb2dnbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93QWN0aXZpdHlMb2dUb2dnbGU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sayxTKSxobih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFjdGl2aXR5TG9nQ291bnQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5hY3Rpdml0eUxvZ0NvdW50LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmFjdGl2aXR5TG9nQ291bnQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sUCxSKSxobih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nQWN0aXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhY3Rpdml0eUxvZ0FjdGl2ZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2aXR5TG9nQWN0aXZlLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmFjdGl2aXR5TG9nQWN0aXZlPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFYsVyksaG4odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlTWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iYWN0aXZlTWVudSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmFjdGl2ZU1lbnUsImdldCIpLHNldDppKChBLHNlKT0+e0EuYWN0aXZlTWVudT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxCLFUpLGhuKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5Ecm9wZG93bnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+Im9wZW5Ecm9wZG93bnMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5vcGVuRHJvcGRvd25zLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLm9wZW5Ecm9wZG93bnM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sRixqKSxobih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZm9jdXNlZEl0ZW0iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5mb2N1c2VkSXRlbSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5mb2N1c2VkSXRlbT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxsZSxRKSxobih0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkRHJvcGRvd25JdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJmb2N1c2VkRHJvcGRvd25JdGVtImluIEEsImhhcyIpLGdldDppKEE9PkEuZm9jdXNlZERyb3Bkb3duSXRlbSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5mb2N1c2VkRHJvcGRvd25JdGVtPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LHRlLGVlKSxobih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Byb2ZpbGVEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImlzUHJvZmlsZURyb3Bkb3duT3BlbiJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmlzUHJvZmlsZURyb3Bkb3duT3BlbiwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5pc1Byb2ZpbGVEcm9wZG93bk9wZW49c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sWCxaKSxobihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpxfSxudWxsLHQpLHllPWE9ZS52YWx1ZSxxJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX1zdGF0aWMgZGVtbz1IOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Dcyh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKHEpe3RoaXMuI2U9cX0jdD0oQ3ModGhpcyxsKSxDcyh0aGlzLGQsIiIpKTtnZXQgYnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnJlYWRjcnVtYnMocSl7dGhpcy4jdD1xfSNhPShDcyh0aGlzLHUpLENzKHRoaXMsYiwiID4gIikpO2dldCBicmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IocSl7dGhpcy4jYT1xfSNzPShDcyh0aGlzLHYpLENzKHRoaXMsbSwhMCkpO2dldCBzaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1dpbmRvd0NvbnRyb2xzKHEpe3RoaXMuI3M9cX0jaT0oQ3ModGhpcyxmKSxDcyh0aGlzLE0sdm9pZCAwKSk7Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdXNlcihxKXt0aGlzLiNpPXF9I3I9KENzKHRoaXMseiksQ3ModGhpcyxDLFtdKSk7Z2V0IHByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcHJvZmlsZU1lbnVJdGVtcyhxKXt0aGlzLiNyPXF9I289KENzKHRoaXMsXyksQ3ModGhpcywkLCExKSk7Z2V0IHNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd1NlYXJjaChxKXt0aGlzLiNvPXF9I249KENzKHRoaXMsRSksQ3ModGhpcyxrLCExKSk7Z2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZSgpe3JldHVybiB0aGlzLiNufXNldCBzaG93QWN0aXZpdHlMb2dUb2dnbGUocSl7dGhpcy4jbj1xfSNsPShDcyh0aGlzLFMpLENzKHRoaXMsUCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgYWN0aXZpdHlMb2dDb3VudChxKXt0aGlzLiNsPXF9I2M9KENzKHRoaXMsUiksQ3ModGhpcyxWLCExKSk7Z2V0IGFjdGl2aXR5TG9nQWN0aXZlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2aXR5TG9nQWN0aXZlKHEpe3RoaXMuI2M9cX0jZD0oQ3ModGhpcyxXKSxDcyh0aGlzLEIsbnVsbCkpO2dldCBhY3RpdmVNZW51KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGFjdGl2ZU1lbnUocSl7dGhpcy4jZD1xfSN1PShDcyh0aGlzLFUpLENzKHRoaXMsRixuZXcgU2V0KSk7Z2V0IG9wZW5Ecm9wZG93bnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgb3BlbkRyb3Bkb3ducyhxKXt0aGlzLiN1PXF9I3A9KENzKHRoaXMsaiksQ3ModGhpcyxsZSxudWxsKSk7Z2V0IGZvY3VzZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGZvY3VzZWRJdGVtKHEpe3RoaXMuI3A9cX0jaD0oQ3ModGhpcyxRKSxDcyh0aGlzLHRlLC0xKSk7Z2V0IGZvY3VzZWREcm9wZG93bkl0ZW0oKXtyZXR1cm4gdGhpcy4jaH1zZXQgZm9jdXNlZERyb3Bkb3duSXRlbShxKXt0aGlzLiNoPXF9I2Y9KENzKHRoaXMsZWUpLENzKHRoaXMsWCwhMSkpO2dldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jZn1zZXQgaXNQcm9maWxlRHJvcGRvd25PcGVuKHEpe3RoaXMuI2Y9cX1zdGF0aWMgc3R5bGVzPWo5YTtyZW5kZXIoKXtyZXR1cm4gVTlhKHRoaXMpfXJlbmRlck1lbnVJdGVtcygpe3JldHVybiB3YAogICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgocSxBKT0+dGhpcy5yZW5kZXJNZW51SXRlbShxLGBtZW51LSR7QX1gKSl9CiAgICBgfXJlbmRlck1lbnVJdGVtKHEsQSl7aWYoImRpdmlkZXIiaW4gcSYmcS5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHNlPXEsb2U9dGhpcy5hY3RpdmVNZW51PT09QSxhZT1zZS5zdWJtZW51JiZzZS5zdWJtZW51Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7b2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3NlLmRpc2FibGVkfQogICAgICAgIHRhYmluZGV4PSIke3NlLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtBfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soc2UsQSl9CiAgICAgICAgQGtleWRvd249JHtUZT0+dGhpcy5oYW5kbGVNZW51S2V5ZG93bihUZSxzZSxBKX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICBhcmlhLWhhc3BvcHVwPSIke2FlfSIKICAgICAgICBhcmlhLWV4cGFuZGVkPSIke29lfSIKICAgICAgPgogICAgICAgICR7c2UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtzZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAke3NlLm5hbWV9CiAgICAgICAgJHthZT90aGlzLnJlbmRlckRyb3Bkb3duKHNlLnN1Ym1lbnUsQSxvZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihxLEEsc2Upe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJkcm9wZG93biAke3NlPyJvcGVuIjoiIn0iIAogICAgICAgIEBjbGljaz0ke29lPT5vZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICBAa2V5ZG93bj0ke29lPT50aGlzLmhhbmRsZURyb3Bkb3duS2V5ZG93bihvZSxxLEEpfQogICAgICAgIHRhYmluZGV4PSIke3NlPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke3EubWFwKChvZSxhZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKG9lLGAke0F9LSR7YWV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKHEsQSl7aWYoImRpdmlkZXIiaW4gcSYmcS5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHNlPXEsb2U9cGFyc2VJbnQoQS5zcGxpdCgiLSIpLnBvcCgpfHwiMCIpLGFlPXRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT09PW9lO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0gJHthZT8iZm9jdXNlZCI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3NlLmRpc2FibGVkfQogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURyb3Bkb3duSXRlbUNsaWNrKHNlKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09b2V9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7c2UuZGlzYWJsZWQ/LTE6MH0iCiAgICAgID4KICAgICAgICAke3NlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7c2UuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHtzZS5uYW1lfTwvc3Bhbj4KICAgICAgICAke3NlLnNob3J0Y3V0P3dgPHNwYW4gY2xhc3M9InNob3J0Y3V0Ij4ke3NlLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gd2BgO2xldCBxPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gd2AKICAgICAgJHtxLm1hcCgoQSxzZSk9PndgCiAgICAgICAgJHtzZT4wP3dgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4ke3RoaXMuYnJlYWRjcnVtYlNlcGFyYXRvcn08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiAKICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iIAogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQnJlYWRjcnVtYkNsaWNrKEEsc2UpfQogICAgICAgID4KICAgICAgICAgICR7QX0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiB3YAogICAgICAke3RoaXMuc2hvd1NlYXJjaD93YAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOndgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke3E9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QocSl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT93YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhxLEEpe3EuZGlzYWJsZWR8fChxLnN1Ym1lbnUmJnEuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1BP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1BOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxxLmFjdGlvbiYmcS5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpxfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2socSl7cS5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLHEuYWN0aW9uJiZxLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOnF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKHEsQSxzZSl7c3dpdGNoKHEua2V5KXtjYXNlIkVudGVyIjpjYXNlIiAiOnEucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1lbnVDbGljayhBLHNlKTticmVhaztjYXNlIkFycm93RG93biI6aWYoQS5zdWJtZW51JiZ0aGlzLmFjdGl2ZU1lbnU9PT1zZSl7cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBvZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEuc3VibWVudSwtMSwxKTtvZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPW9lLHNldFRpbWVvdXQoKCk9PntsZXQgYWU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7YWUmJmFlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT1zZSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShzZSwxKTticmVhaztjYXNlIkFycm93TGVmdCI6cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0TWVudUl0ZW0oc2UsLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2socSxBKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOnEsaW5kZXg6QX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QocSl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KENzKHRoaXMsWikscT0+e3Euc3RvcFByb3BhZ2F0aW9uKCl9KTtoYW5kbGVEb2N1bWVudENsaWNrPWkoKCk9Pnt0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTF9LCJoYW5kbGVEb2N1bWVudENsaWNrIik7aGFuZGxlRHJvcGRvd25LZXlkb3duKHEsQSxzZSl7bGV0IG9lPUEuZmlsdGVyKGFlPT4hKCJkaXZpZGVyImluIGFlJiZhZS5kaXZpZGVyKSk7c3dpdGNoKHEua2V5KXtjYXNlIkFycm93RG93biI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBhZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLDEpO2FlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09YWUpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBUZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLC0xKTtUZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPVRlKTticmVhaztjYXNlIkVudGVyIjppZihxLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtIT09LTEpe2xldCBEZT1vZVt0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW1dO0RlJiYiYWN0aW9uImluIERlJiYhRGUuZGlzYWJsZWQmJnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soRGUpfWJyZWFrO2Nhc2UiSG9tZSI6cS5wcmV2ZW50RGVmYXVsdCgpO2xldCBSZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEEsLTEsMSk7UmUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1SZSk7YnJlYWs7Y2FzZSJFbmQiOnEucHJldmVudERlZmF1bHQoKTtsZXQgQmU9dGhpcy5maW5kTmV4dFZhbGlkSXRlbShBLEEubGVuZ3RoLC0xKTtCZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPUJlKTticmVhaztjYXNlIkVzY2FwZSI6cS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMTtsZXQgR2U9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5tZW51SXRlbS5hY3RpdmUiKTtHZSYmR2UuZm9jdXMoKTticmVha319ZmluZE5leHRWYWxpZEl0ZW0ocSxBLHNlKXtsZXQgb2U9QStzZTtmb3IoO29lPj0wJiZvZTxxLmxlbmd0aDspe2xldCBhZT1xW29lXTtpZighKCJkaXZpZGVyImluIGFlJiZhZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gYWUmJmFlLmRpc2FibGVkKSlyZXR1cm4gb2U7b2UrPXNlfXJldHVybi0xfWZvY3VzTmV4dE1lbnVJdGVtKHEsQSl7bGV0IHNlPUFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51SXRlbSIpKSxvZT1zZS5maW5kSW5kZXgoUmU9PlJlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1xKTtpZihvZT09PS0xKXJldHVybjtsZXQgYWU9b2UrQTthZTwwP2FlPXNlLmxlbmd0aC0xOmFlPj1zZS5sZW5ndGgmJihhZT0wKTtsZXQgVGU9MDtmb3IoO1RlPHNlLmxlbmd0aDspe2xldCBSZT1zZVthZV07aWYoIVJlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7UmUuZm9jdXMoKSx0aGlzLmFjdGl2ZU1lbnUmJih0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTEpO2JyZWFrfWFlPShhZStBK3NlLmxlbmd0aCklc2UubGVuZ3RoLFRlKyt9fXN0YXRpY3tDcyhhLHQpfX07cmV0dXJuIHllPWF9KSgpfSk7dmFyIEVvdD1nKCgpPT57VG90KCl9KTt2YXIgRzlhLEs5YSxZOWE9ZygoKT0+e3BlKCk7SXQoKTtLOWE9aSgoKT0+dyhHOWF8fChHOWE9YmMoW2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzczNzM3MzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ib3R0b21iYXItd3JhcHBlciB7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCAwJSAyMCUpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Qm90dG9tIGJhciB3aXRoIHN0YXR1cyB3aWRnZXRzIGFuZCBhY3Rpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWJvdHRvbWJhci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyCiAgICAgICAgICAgICAgaWQ9ImRlbW8tYm90dG9tYmFyIgogICAgICAgICAgICA+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Q29udHJvbHM8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRTdWNjZXNzV2lkZ2V0KCkiPkFkZCBTdWNjZXNzIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFdhcm5pbmdXaWRnZXQoKSI+QWRkIFdhcm5pbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkRXJyb3JXaWRnZXQoKSI+QWRkIEVycm9yIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZExvYWRpbmdXaWRnZXQoKSI+QWRkIExvYWRpbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkUmlnaHRXaWRnZXQoKSI+QWRkIFJpZ2h0IFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEFjdGlvbigpIj5BZGQgQWN0aW9uPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iY2xlYXJBbGwoKSI+Q2xlYXIgQWxsPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KICAgICAgICBjb25zdCBib3R0b21iYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVtby1ib3R0b21iYXInKTsKCiAgICAgICAgLy8gV2FpdCBmb3IgY29tcG9uZW50IHRvIGluaXRpYWxpemUKICAgICAgICBhd2FpdCBib3R0b21iYXIudXBkYXRlQ29tcGxldGU7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIHdpZGdldHMKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnc3RhdHVzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFjdGl2aXR5JywKICAgICAgICAgIGxhYmVsOiAnU3lzdGVtIE9ubGluZScsCiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgIHRvb2x0aXA6ICdBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnU3RhdHVzIGNsaWNrZWQnKSwKICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IFsKICAgICAgICAgICAgeyBuYW1lOiAnVmlldyBEZXRhaWxzJywgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1N5c3RlbSBkZXRhaWxzJykgfSwKICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgbmFtZTogJ1JlZnJlc2ggU3RhdHVzJywgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaEN3JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnUmVmcmVzaGluZy4uLicpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJywKICAgICAgICAgIGxhYmVsOiAnMyBub3RpZmljYXRpb25zJywKICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgdG9vbHRpcDogJ1lvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdOb3RpZmljYXRpb25zIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3ZlcnNpb24nLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJywKICAgICAgICAgIGxhYmVsOiAndjEuMi4zJywKICAgICAgICAgIHRvb2x0aXA6ICdDdXJyZW50IHZlcnNpb24nLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnVmVyc2lvbiBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIGFjdGlvbnMKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLAogICAgICAgICAgdG9vbHRpcDogJ1NldHRpbmdzJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ1NldHRpbmdzIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ2hlbHAnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsCiAgICAgICAgICB0b29sdGlwOiAnSGVscCcsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gRGVtbyBjb250cm9sIGZ1bmN0aW9ucwogICAgICAgIGxldCB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICBsZXQgYWN0aW9uQ291bnRlciA9IDA7CgogICAgICAgIHdpbmRvdy5hZGRTdWNjZXNzV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2tDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ1N1Y2Nlc3MgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICB0b29sdGlwOiAnU3VjY2VzcyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRXYXJuaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWxlcnRUcmlhbmdsZScsCiAgICAgICAgICAgIGxhYmVsOiAnV2FybmluZyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdXYXJuaW5nIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEVycm9yV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnZXJyb3ItJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnhDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ0Vycm9yICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsCiAgICAgICAgICAgIHRvb2x0aXA6ICdFcnJvciB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdlcnJvci0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkTG9hZGluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGNvbnN0IGlkID0gJ2xvYWRpbmctJyArIHdpZGdldENvdW50ZXI7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2FkZXIyJywKICAgICAgICAgICAgbGFiZWw6ICdMb2FkaW5nLi4uJywKICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJywKICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgICAgICAgdG9vbHRpcDogJ0xvYWRpbmcgaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgfSk7CgogICAgICAgICAgLy8gU2ltdWxhdGUgY29tcGxldGlvbiBhZnRlciAzIHNlY29uZHMKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICBib3R0b21iYXIudXBkYXRlV2lkZ2V0KGlkLCB7CiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2snLAogICAgICAgICAgICAgIGxhYmVsOiAnRG9uZSEnLAogICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIDMwMDApOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRSaWdodFdpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywKICAgICAgICAgICAgbGFiZWw6ICdSaWdodCAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRBY3Rpb24gPSAoKSA9PiB7CiAgICAgICAgICBhY3Rpb25Db3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgICAgaWQ6ICdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsCiAgICAgICAgICAgIHRvb2x0aXA6ICdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHsKICAgICAgICAgICAgICBhbGVydCgnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyICsgJyBjbGlja2VkJyk7CiAgICAgICAgICAgICAgYm90dG9tYmFyLnJlbW92ZUFjdGlvbignYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5jbGVhckFsbCA9ICgpID0+IHsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhcldpZGdldHMoKTsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhckFjdGlvbnMoKTsKICAgICAgICAgIHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgICAgYWN0aW9uQ291bnRlciA9IDA7CiAgICAgICAgfTsKICAgICAgPFwvc2NyaXB0PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkpLCJkZW1vRnVuYyIpfSk7dmFyIFBvdCxUUSxFSmEsSW90PWcoKCk9PntwZSgpO2h0KCk7R2EoKTtmcigpO1k5YSgpO1BvdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sVFE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEVKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtYXBwdWktYm90dG9tYmFyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aUJvdHRvbWJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxQb3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ3aWRnZXRzImluIHYsImhhcyIpLGdldDppKHY9PnYud2lkZ2V0cywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LndpZGdldHM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFBvdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+ImFjdGlvbnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5hY3Rpb25zLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuYWN0aW9ucz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksUG90KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89SzlhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9VFEodGhpcyxvLFtdKTtnZXQgd2lkZ2V0cygpe3JldHVybiB0aGlzLiNlfXNldCB3aWRnZXRzKGIpe3RoaXMuI2U9Yn0jdD0oVFEodGhpcyxsKSxUUSh0aGlzLGQsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiN0fXNldCBhY3Rpb25zKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBjb2xvcnMgbWF0Y2hpbmcgZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyICovCiAgICAgIC53aWRnZXQuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuc3VjY2VzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGI9dGhpcy53aWRnZXRzLmZpbHRlcihmPT5mLnBvc2l0aW9uIT09InJpZ2h0Iikuc29ydCgoZix5KT0+KGYub3JkZXJ8fDApLSh5Lm9yZGVyfHwwKSksdj10aGlzLndpZGdldHMuZmlsdGVyKGY9PmYucG9zaXRpb249PT0icmlnaHQiKS5zb3J0KChmLHkpPT4oZi5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSx4PXRoaXMuYWN0aW9ucy5maWx0ZXIoZj0+Zi5wb3NpdGlvbj09PSJsZWZ0IiksbT10aGlzLmFjdGlvbnMuZmlsdGVyKGY9PmYucG9zaXRpb24hPT0ibGVmdCIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIExlZnQgYWN0aW9ucyAtLT4KICAgICAgICAke3gubWFwKGY9PnRoaXMucmVuZGVyQWN0aW9uKGYpKX0KCiAgICAgICAgPCEtLSBMZWZ0IHdpZGdldHMgLS0+CiAgICAgICAgJHtiLm1hcCgoZix5KT0+d2AKICAgICAgICAgICR7eT4wfHx4Lmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQoZil9CiAgICAgICAgYCl9CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gUmlnaHQgd2lkZ2V0cyAtLT4KICAgICAgICAke3YubWFwKChmLHkpPT53YAogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChmKX0KICAgICAgICAgICR7eTx2Lmxlbmd0aC0xfHxtLmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICBgKX0KCiAgICAgICAgPCEtLSBSaWdodCBhY3Rpb25zIC0tPgogICAgICAgICR7bS5tYXAoZj0+dGhpcy5yZW5kZXJBY3Rpb24oZikpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KGIpe2xldCB2PWIuc3RhdHVzJiZiLnN0YXR1cyE9PSJpZGxlIj9iLnN0YXR1czoiIix4PWIuaWNvbk5hbWU/Yi5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/Yi5pY29uTmFtZTpgbHVjaWRlOiR7Yi5pY29uTmFtZX1gOiIiO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IndpZGdldCAke3Z9IgogICAgICAgIHRpdGxlPSIke2IudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT5iLm9uQ2xpY2s/LigpfQogICAgICAgIEBjb250ZXh0bWVudT0ke209PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUobSxiKX0KICAgICAgPgogICAgICAgICR7eD93YAogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3h9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7Yi5sb2FkaW5nPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtiLmxhYmVsP3dgPHNwYW4+JHtiLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uKGIpe2xldCB2PWIuaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP2IuaWNvbk5hbWU6YGx1Y2lkZToke2IuaWNvbk5hbWV9YDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7Yi5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICB0aXRsZT0iJHtiLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+IWIuZGlzYWJsZWQmJmIub25DbGljaz8uKCl9CiAgICAgID4KICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAuaWNvbj0ke3Z9CiAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoYix2KXtpZighdi5jb250ZXh0TWVudUl0ZW1zfHx2LmNvbnRleHRNZW51SXRlbXMubGVuZ3RoPT09MClyZXR1cm47Yi5wcmV2ZW50RGVmYXVsdCgpO2xldCB4PVtdO2ZvcihsZXQgbSBvZiB2LmNvbnRleHRNZW51SXRlbXMpbS5kaXZpZGVyP3gucHVzaCh7ZGl2aWRlcjohMH0pOngucHVzaCh7bmFtZTptLm5hbWUsaWNvbk5hbWU6bS5pY29uTmFtZSxhY3Rpb246aShhc3luYygpPT57YXdhaXQgbS5hY3Rpb24oKX0sImFjdGlvbiIpLGRpc2FibGVkOm0uZGlzYWJsZWR9KTthd2FpdCAkYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhiLHgpfWFkZFdpZGdldChiKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcih2PT52LmlkIT09Yi5pZCksdGhpcy53aWRnZXRzPVsuLi50aGlzLndpZGdldHMsYl19dXBkYXRlV2lkZ2V0KGIsdil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoeD0+eC5pZD09PWI/ey4uLngsLi4udn06eCl9cmVtb3ZlV2lkZ2V0KGIpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKHY9PnYuaWQhPT1iKX1nZXRXaWRnZXQoYil7cmV0dXJuIHRoaXMud2lkZ2V0cy5maW5kKHY9PnYuaWQ9PT1iKX1jbGVhcldpZGdldHMoKXt0aGlzLndpZGdldHM9W119YWRkQWN0aW9uKGIpe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKHY9PnYuaWQhPT1iLmlkKSx0aGlzLmFjdGlvbnM9Wy4uLnRoaXMuYWN0aW9ucyxiXX1yZW1vdmVBY3Rpb24oYil7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIodj0+di5pZCE9PWIpfWNsZWFyQWN0aW9ucygpe3RoaXMuYWN0aW9ucz1bXX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVFEodGhpcyx1KX1zdGF0aWN7VFEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFo5YT1nKCgpPT57SW90KCl9KTt2YXIgWDlhLFE5YT1nKCgpPT57cGUoKTtYOWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWJhY2tncm91bmQgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIG1hcmdpbjogMzJweCAwIDE2cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZTpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLTNjb2wgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjhweCkgewogICAgICAgIC5ncmlkLTNjb2wgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tYmFja2dyb3VuZCI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RGVmYXVsdCBQYW5lbHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBhbmVsIENvbXBvbmVudCJ9IC5zdWJ0aXRsZT0keyJUaGUgZGVmYXVsdCBwYW5lbCB2YXJpYW50IHdpdGggc2hhZGNuLWluc3BpcmVkIHN0eWxpbmcifT4KICAgICAgICA8cD5UaGUgcGFuZWwgY29tcG9uZW50IGF1dG9tYXRpY2FsbHkgZm9sbG93cyB0aGUgdGhlbWUgYW5kIHByb3ZpZGVzIGNvbnNpc3RlbnQgc3R5bGluZyBmb3IgZ3JvdXBlZCBjb250ZW50LjwvcD4KICAgICAgICA8cD5JdCdzIHBlcmZlY3QgZm9yIGNyZWF0aW5nIHNlY3Rpb25zIGluIHlvdXIgYXBwbGljYXRpb24gd2l0aCBwcm9wZXIgc3BhY2luZyBhbmQgYm9yZGVycy48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBPdmVydmlldyJ9IC5zdWJ0aXRsZT0keyJLZXkgY2FwYWJpbGl0aWVzIn0+CiAgICAgICAgICA8cD5HcmlkIGxheW91dHMgd29yayBncmVhdCB3aXRoIHBhbmVscyBmb3IgY3JlYXRpbmcgZGFzaGJvYXJkcyBhbmQgZmVhdHVyZSBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGVhcm4gTW9yZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJRdWljayBBY3Rpb25zIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiB0YXNrcyJ9PgogICAgICAgICAgPHA+RWFjaCBwYW5lbCBtYWludGFpbnMgY29uc2lzdGVudCBzcGFjaW5nIGFuZCBzdHlsaW5nIGFjcm9zcyB5b3VyIGFwcGxpY2F0aW9uLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5HZXQgU3RhcnRlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFuZWwgVmFyaWFudHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRlZmF1bHQgVmFyaWFudCJ9IC52YXJpYW50PSR7ImRlZmF1bHQifT4KICAgICAgICA8cD5UaGUgZGVmYXVsdCB2YXJpYW50IGhhcyBhIHdoaXRlIGJhY2tncm91bmQsIHN1YnRsZSBib3JkZXIsIGFuZCBtaW5pbWFsIHNoYWRvdy4gSXQncyB0aGUgc3RhbmRhcmQgY2hvaWNlIGZvciBtb3N0IGNvbnRlbnQuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJkZWZhdWx0IjwvY29kZT4gb3Igb21pdCB0aGUgdmFyaWFudCBwcm9wZXJ0eS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJPdXRsaW5lIFZhcmlhbnQifSAuc3VidGl0bGU9JHsiVHJhbnNwYXJlbnQgYmFja2dyb3VuZCB3aXRoIGJvcmRlciJ9IC52YXJpYW50PSR7Im91dGxpbmUifT4KICAgICAgICA8cD5UaGUgb3V0bGluZSB2YXJpYW50IHJlbW92ZXMgdGhlIGJhY2tncm91bmQgY29sb3IgYW5kIHNoYWRvdywga2VlcGluZyBvbmx5IHRoZSBib3JkZXIuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJvdXRsaW5lIjwvY29kZT4gZm9yIGEgbGlnaHRlciB2aXN1YWwgd2VpZ2h0LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikdob3N0IFZhcmlhbnQifSAuc3VidGl0bGU9JHsiTWluaW1hbCBzdHlsaW5nIGZvciBzdWJ0bGUgc2VjdGlvbnMifSAudmFyaWFudD0keyJnaG9zdCJ9PgogICAgICAgIDxwPlRoZSBnaG9zdCB2YXJpYW50IGhhcyBubyBib3JkZXIgb3IgYmFja2dyb3VuZCBieSBkZWZhdWx0LCBvbmx5IHNob3dpbmcgYSBzdWJ0bGUgYmFja2dyb3VuZCBvbiBob3Zlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Imdob3N0IjwvY29kZT4gZm9yIHRoZSBtb3N0IG1pbmltYWwgYXBwZWFyYW5jZS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFuZWwgU2l6ZXM8L2gyPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC0zY29sIj4KICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU21hbGwgUGFuZWwifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+Q29tcGFjdCBwYWRkaW5nIGZvciBkZW5zZSBsYXlvdXRzLjwvcD4KICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPSJzbSI8L2NvZGU+PC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTWVkaXVtIFBhbmVsIn0gLnNpemU9JHsibWQifT4KICAgICAgICAgIDxwPkRlZmF1bHQgc2l6ZSB3aXRoIGJhbGFuY2VkIHNwYWNpbmcuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9Im1kIjwvY29kZT4gb3Igb21pdC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJMYXJnZSBQYW5lbCJ9IC5zaXplPSR7ImxnIn0+CiAgICAgICAgICA8cD5HZW5lcm91cyBwYWRkaW5nIGZvciBwcm9taW5lbnQgc2VjdGlvbnMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9ImxnIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29tcGxleCBFeGFtcGxlczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlBhbmVscyB3b3JrIGdyZWF0IGZvciBvcmdhbml6aW5nIGZvcm0gc2VjdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRGVzY3JpcHRpb24ifSAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93biAKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3J5In0gCiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IldlYiBEZXZlbG9wbWVudCIsa2V5OiJ3ZWIifSx7b3B0aW9uOiJNb2JpbGUgQXBwIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgU29mdHdhcmUiLGtleToiZGVza3RvcCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgUHJvamVjdDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbHMifSAuc3VidGl0bGU9JHsiUGFuZWxzIGNhbiBiZSBuZXN0ZWQgZm9yIGhpZXJhcmNoaWNhbCBvcmdhbml6YXRpb24ifT4KICAgICAgICA8cD5Zb3UgY2FuIG5lc3QgcGFuZWxzIHRvIGNyZWF0ZSBtb3JlIGNvbXBsZXggbGF5b3V0czo8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbCAxIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGEgbmVzdGVkIHBhbmVsIHdpdGggb3V0bGluZSB2YXJpYW50IGFuZCBzbWFsbCBzaXplLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbCAyIn0gLnZhcmlhbnQ9JHsiZ2hvc3QifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+VGhpcyBpcyBhbm90aGVyIG5lc3RlZCBwYW5lbCB3aXRoIGdob3N0IHZhcmlhbnQuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5VbnRpdGxlZCBQYW5lbHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+UGFuZWxzIHdvcmsgZ3JlYXQgZXZlbiB3aXRob3V0IGEgdGl0bGUgZm9yIHNpbXBsZSBjb250ZW50IGdyb3VwaW5nLjwvcD4KICAgICAgICA8cD5UaGV5IHByb3ZpZGUgdmlzdWFsIHNlcGFyYXRpb24gYW5kIGNvbnNpc3RlbnQgcGFkZGluZyB0aHJvdWdob3V0IHlvdXIgaW50ZXJmYWNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC52YXJpYW50PSR7Im91dGxpbmUifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPkN1c3RvbSBDb250ZW50PC9oND4KICAgICAgICAgIDxwPllvdSBjYW4gYWRkIHlvdXIgb3duIGhlYWRpbmdzIGFuZCBzdHJ1Y3R1cmUgd2l0aGluIHVudGl0bGVkIHBhbmVscy48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij5NaW5pbWFsIFN0eWxlPC9oND4KICAgICAgICAgIDxwPkdob3N0IHBhbmVscyB3aXRob3V0IHRpdGxlcyBjcmVhdGUgdmVyeSBzdWJ0bGUgY29udGVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFBKYSxJSmEsQW90LEQxZSxCYSxCZyxBSmEsTkphLEo5YSxSSmEsT0phLE5MbyxSTG8sRXI9ZygoKT0+e3BlKCk7UEphPSJHZWlzdCBTYW5zIixJSmE9IkludGVsIE9uZSBNb25vIixBb3Q9YCcke1BKYX0nLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmYCxEMWU9YCcke0lKYX0nLCAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgJ0ZpcmEgTW9ubycsICdEcm9pZCBTYW5zIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2VgLEJhPWFhKEFvdCksQmc9YWEoRDFlKSxBSmE9IkNhbCBTYW5zIixOSmE9YCcke0FKYX0nLCAke0FvdH1gLEo5YT1hYShOSmEpLFJKYT0iUm9ib3RvIFNsYWIiLE9KYT1gJyR7UkphfScsIEdlb3JnaWEsIHNlcmlmYCxOTG89YWEoT0phKSxSTG89YWEoYAogIGZvbnQtZmFtaWx5OiAke0FvdH07CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdjdjExJywgJ3RudW0nLCAnY3YwNScgMTsKYCl9KTt2YXIgZ3gseTIsRkphLHhvPWcoKCk9PntwZSgpO1E5YSgpO0VyKCk7aHQoKTtneD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0seTI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEZKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtcGFuZWwiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1BhbmVsIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7YXR0cmlidXRlOiExfSldLGd4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InRpdGxlImluIF8sImhhcyIpLGdldDppKF89Pl8udGl0bGUsImdldCIpLHNldDppKChfLE8pPT57Xy50aXRsZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksZ3godGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3VidGl0bGUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zdWJ0aXRsZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnN1YnRpdGxlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxneCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhcmlhbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InZhcmlhbnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy52YXJpYW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udmFyaWFudD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksZ3godGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaXplImluIF8sImhhcyIpLGdldDppKF89Pl8uc2l6ZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNpemU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGd4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InJ1bkFmdGVyUmVuZGVyImluIF8sImhhcyIpLGdldDppKF89Pl8ucnVuQWZ0ZXJSZW5kZXIsImdldCIpLHNldDppKChfLE8pPT57Xy5ydW5BZnRlclJlbmRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksZ3gobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1YOWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT15Mih0aGlzLG8sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShDKXt0aGlzLiNlPUN9I3Q9KHkyKHRoaXMsbCkseTIodGhpcyxkLCIiKSk7Z2V0IHN1YnRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN1YnRpdGxlKEMpe3RoaXMuI3Q9Q30jYT0oeTIodGhpcyx1KSx5Mih0aGlzLGIsImRlZmF1bHQiKSk7Z2V0IHZhcmlhbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFyaWFudChDKXt0aGlzLiNhPUN9I3M9KHkyKHRoaXMsdikseTIodGhpcyxtLCJtZCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNzfXNldCBzaXplKEMpe3RoaXMuI3M9Q30jaT0oeTIodGhpcyxmKSx5Mih0aGlzLE0sdm9pZCAwKSk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHJ1bkFmdGVyUmVuZGVyKEMpe3RoaXMuI2k9Q31zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT93YDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx5Mih0aGlzLHopfXN0YXRpY3t5MihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgZWJhLE5vdCx0YmEsYWJhPWcoKCk9PntwZSgpO0l0KCk7eG8oKTtOb3Q9aShzPT5BcnJheS5mcm9tKHtsZW5ndGg6c30sKGUsdCk9Pih7aWQ6dCx1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKSxsYWJlbDpgJHt0fWB9KSksImdlbmVyYXRlQ3B1Q29yZXMiKSx0YmE9aSgoKT0+dyhlYmF8fChlYmE9YmMoW2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgYCxgCiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImFjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiBgLCI7IGJvcmRlci1yYWRpdXM6IDZweDsgZm9udC1zaXplOiAxNHB4OyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogIixgOyI+CiAgICAgICAgICA8ZW0+Q2xpY2sgb24gdGlsZSBhY3Rpb25zIG9yIGdyaWQgYWN0aW9ucyB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5Db25maWd1cmF0aW9uIE9wdGlvbnM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICBFYWNoIHRpbGUgdHlwZSBzdXBwb3J0cyBkaWZmZXJlbnQgcHJvcGVydGllczoKICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TnVtYmVyOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkdhdWdlOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgZ2F1Z2VPcHRpb25zIChtaW4sIG1heCwgdGhyZXNob2xkcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+UGVyY2VudGFnZTo8L3N0cm9uZz4gdmFsdWUgKDAtMTAwKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRyZW5kOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgdHJlbmREYXRhIGFycmF5LCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UZXh0Ojwvc3Ryb25nPiB2YWx1ZSAoc3RyaW5nKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPkNvbXBhY3QgTGF5b3V0ICgxODBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDI0cHggMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPlNwYWNpb3VzIExheW91dCAoMzIwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICBpZD0iY3B1LWNvcmVzLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPmAsYDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPlBhcnRpdGlvbiBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS51c2VkOjwvc3Ryb25nPiBVc2VkIHNwYWNlIGluIGJ5dGVzIChhdXRvLWZvcm1hdHRlZCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS50b3RhbDo8L3N0cm9uZz4gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5maWxlc3lzdGVtOjwvc3Ryb25nPiBGaWxlc3lzdGVtIHR5cGUgKGV4dDQsIHhmcywgbnRmcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5tb3VudFBvaW50Ojwvc3Ryb25nPiBNb3VudCBwb2ludCBwYXRoIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgQ29sb3IgdGhyZXNob2xkczogTm9ybWFsICgmbHQ7NzUlKSwgV2FybmluZyAoNzUtOTAlKSwgQ3JpdGljYWwgKCZndDs5MCUpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+RGlzayBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuY2FwYWNpdHk6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLm1vZGVsOjwvc3Ryb25nPiBEaXNrIG1vZGVsIG5hbWUgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS50eXBlOjwvc3Ryb25nPiBEaXNrIHR5cGU6ICdzc2QnLCAnaGRkJywgb3IgJ252bWUnPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmlvcHM6PC9zdHJvbmc+IFJlYWQvd3JpdGUgSU9QUyAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmhlYWx0aDo8L3N0cm9uZz4gSGVhbHRoIHBlcmNlbnRhZ2UgMC0xMDAgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICBIZWFsdGggdGhyZXNob2xkczogR29vZCAoNzAtMTAwJSksIFdhcm5pbmcgKDMwLTcwJSksIENyaXRpY2FsICgmbHQ7MzAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAvLyBDbGVhbnVwIGxpdmUgdXBkYXRlcyBvbiBwYWdlIHVubG9hZAogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKCkgPT4gewogICAgICAgIGlmICgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpOwogICAgICAgIH0KICAgICAgfSk7CiAgICA8XC9zY3JpcHQ+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSksSmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpbGUtY29uZmlnIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctc2VjdGlvbiB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29kZS1ibG9jayB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgICB9CiAgICAgIGAsIjEuIENvbXByZWhlbnNpdmUgRGFzaGJvYXJkIiwiRnVsbC1mZWF0dXJlZCBzdGF0cyBncmlkIHdpdGggdmFyaW91cyB0aWxlIHR5cGVzLCBhY3Rpb25zLCBhbmQgTHVjaWRlIGljb25zIixbe2lkOiJyZXZlbnVlIix0aXRsZToiVG90YWwgUmV2ZW51ZSIsdmFsdWU6MTI1NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIixkZXNjcmlwdGlvbjoiKzEyLjUlIGZyb20gbGFzdCBtb250aCIsYWN0aW9uczpbe25hbWU6IlZpZXcgRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTp0cmVuZGluZy11cCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9IlZpZXdpbmcgcmV2ZW51ZSBkZXRhaWxzOiAkMTI1LDQyMCAoKzEyLjUlKSIpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQgRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9IkV4cG9ydGluZyByZXZlbnVlIGRhdGEgdG8gQ1NWLi4uIil9LCJhY3Rpb24iKX1dfSx7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZTozODQ3LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIixkZXNjcmlwdGlvbjoiMzI0IG5ldyB0aGlzIHdlZWsiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IFVzZXIgTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aShhc3luYygpPT57bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD0iT3BlbmluZyB1c2VyIGxpc3QuLi4iKX0sImFjdGlvbiIpfV19LHtpZDoiY3B1Iix0aXRsZToiQ1BVIFVzYWdlIix2YWx1ZTo3Myx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoic3RvcmFnZSIsdGl0bGU6IlN0b3JhZ2UgVXNlZCIsdmFsdWU6NjUsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI2NTAgR0Igb2YgMSBUQiJ9LHtpZDoibGF0ZW5jeSIsdGl0bGU6IlJlc3BvbnNlIFRpbWUiLHZhbHVlOjE0Mix1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOlsxNTAsMTQ1LDE0OCwxNDIsMTM4LDE0MCwxMzUsMTQ1LDE0Ml0sZGVzY3JpcHRpb246IlA5NSJ9LHtpZDoidXB0aW1lIix0aXRsZToiU3lzdGVtIFVwdGltZSIsdmFsdWU6Ijk5Ljk1JSIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNoZWNrLWNpcmNsZSIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMifV0sW3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLXN0YXRzZ3JpZCIpO3MmJihzLnN0eWxlLm9wYWNpdHk9IjAuNSIsc2V0VGltZW91dCgoKT0+e3Muc3R5bGUub3BhY2l0eT0iMSJ9LDMwMCkpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQiLGljb25OYW1lOiJsdWNpZGU6c2hhcmUiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3MmJihzLnRleHRDb250ZW50PSJFeHBvcnRpbmcgZGFzaGJvYXJkIHJlcG9ydC4uLiIpfSwiYWN0aW9uIil9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9Ik9wZW5pbmcgZGFzaGJvYXJkIHNldHRpbmdzLi4uIil9LCJhY3Rpb24iKX1dLDI1MCwxNixoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIiksaC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpLCIyLiBUaWxlIFR5cGVzIiwiRGlmZmVyZW50IHZpc3VhbGl6YXRpb24gdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBzdGF0cyBncmlkIixbe2lkOiJudW1iZXItZXhhbXBsZSIsdGl0bGU6Ik51bWJlciBUaWxlIix2YWx1ZTo0MjE5NSx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpoYXNoIixkZXNjcmlwdGlvbjoiU2ltcGxlIG51bWVyaWMgZGlzcGxheSJ9LHtpZDoiZ2F1Z2UtZXhhbXBsZSIsdGl0bGU6IkdhdWdlIFRpbGUiLHZhbHVlOjY4LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Z2F1Z2UiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo1MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InBlcmNlbnRhZ2UtZXhhbXBsZSIsdGl0bGU6IlBlcmNlbnRhZ2UgVGlsZSIsdmFsdWU6NzgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnBlcmNlbnQiLGRlc2NyaXB0aW9uOiJQcm9ncmVzcyBiYXIgdmlzdWFsaXphdGlvbiJ9LHtpZDoidHJlbmQtZXhhbXBsZSIsdGl0bGU6IlRyZW5kIFRpbGUiLHZhbHVlOjg5Mix1bml0OiJvcHMvcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsdHJlbmREYXRhOls3MjAsNzUwLDc4MCw3OTUsODEwLDgzNSw4NTAsODY1LDg4MCw4OTJdLGRlc2NyaXB0aW9uOiJhdmcifSx7aWQ6InRleHQtZXhhbXBsZSIsdGl0bGU6IlRleHQgVGlsZSIsdmFsdWU6Ik9wZXJhdGlvbmFsIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6aW5mbyIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJTdGF0dXMgZGlzcGxheSJ9XSwyODAsMTYsIjMuIEdyaWQgQ29uZmlndXJhdGlvbnMiLCJEaWZmZXJlbnQgbGF5b3V0IG9wdGlvbnMgYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3IiLFt7aWQ6IjEiLHRpdGxlOiJPcmRlcnMiLHZhbHVlOjE1Nix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaG9wcGluZy1jYXJ0In0se2lkOiIyIix0aXRsZToiUmV2ZW51ZSIsdmFsdWU6ODQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiJ9LHtpZDoiMyIsdGl0bGU6IlVzZXJzIix2YWx1ZTo0MjMsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMifSx7aWQ6IjQiLHRpdGxlOiJHcm93dGgiLHZhbHVlOjEyLjUsdW5pdDoiJSIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn1dLDE4MCwxMixbe2lkOiJzcGFjaW91czEiLHRpdGxlOiJNb250aGx5IFJldmVudWUiLHZhbHVlOjE4NDUwMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjcmVkaXQtY2FyZCIsZGVzY3JpcHRpb246IlRvdGFsIHJldmVudWUgdGhpcyBtb250aCJ9LHtpZDoic3BhY2lvdXMyIix0aXRsZToiQ3VzdG9tZXIgU2F0aXNmYWN0aW9uIix2YWx1ZTo5NCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c21pbGUiLGRlc2NyaXB0aW9uOiJCYXNlZCBvbiAxLDIzNCByZXZpZXdzIn0se2lkOiJzcGFjaW91czMiLHRpdGxlOiJTZXJ2ZXIgUmVzcG9uc2UiLHZhbHVlOjk4LHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnNlcnZlciIsdHJlbmREYXRhOlsxMDUsMTAyLDEwMCw5OSw5OCw5OCw5Nyw5OF0sZGVzY3JpcHRpb246ImF2ZyByZXNwb25zZSB0aW1lIn1dLDMyMCwyMCwiNC4gQ1BVIENvcmVzIFZpc3VhbGl6YXRpb24iLCJWZXJ0aWNhbCBiYXIgdmlzdWFsaXphdGlvbiBmb3IgbXVsdGktY29yZSBDUFUgdXNhZ2Ugd2l0aCBjb2x1bW4gc3Bhbm5pbmciLFt7aWQ6ImNwdS1jb3Jlcy04Iix0aXRsZToiQ1BVIENvcmVzICg4LWNvcmUpIix2YWx1ZTowLHR5cGU6ImNwdUNvcmVzIixpY29uOiJsdWNpZGU6Y3B1Iixjb2x1bW5TcGFuOjIsY29yZXNEYXRhOk5vdCg4KSxkZXNjcmlwdGlvbjoiSW50ZWwgaTcgLSA4IGNvcmVzIn0se2lkOiJtZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjY4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSIsZGVzY3JpcHRpb246IjEzLjYgR0Igb2YgMjAgR0IifSx7aWQ6ImNwdS1jb3Jlcy0xNiIsdGl0bGU6IkNQVSBDb3JlcyAoMTYtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6Tm90KDE2KSxkZXNjcmlwdGlvbjoiQU1EIFJ5emVuIDkgLSAxNiBjb3JlcyJ9LHtpZDoibmV0d29yayIsdGl0bGU6Ik5ldHdvcmsgSS9PIix2YWx1ZToyNDUsdW5pdDoiTUIvcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTpuZXR3b3JrIix0cmVuZERhdGE6WzIwMCwyMjAsMjM1LDI0MCwyMzgsMjQ1XSxkZXNjcmlwdGlvbjoidGhyb3VnaHB1dCJ9LHtpZDoiY3B1LWNvcmVzLTMyIix0aXRsZToiU2VydmVyIENQVSAoMzItY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLGNvbHVtblNwYW46Myxjb3Jlc0RhdGE6Tm90KDMyKSxkZXNjcmlwdGlvbjoiQU1EIEVQWUMgLSAzMiBjb3JlcyJ9LHtpZDoiZGlzayIsdGl0bGU6IkRpc2sgVXNhZ2UiLHZhbHVlOjQyLHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkZXNjcmlwdGlvbjoiNDIwIEdCIG9mIDEgVEIifV0sW3tuYW1lOiJSYW5kb21pemUiLGljb25OYW1lOiJsdWNpZGU6c2h1ZmZsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjcHUtY29yZXMtZ3JpZCIpO2lmKCFzKXJldHVybjtsZXQgZT1zLnRpbGVzLm1hcCh0PT50LnR5cGU9PT0iY3B1Q29yZXMiJiZ0LmNvcmVzRGF0YT97Li4udCxjb3Jlc0RhdGE6dC5jb3Jlc0RhdGEubWFwKGE9Pih7Li4uYSx1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKX0pKX06dCk7cy50aWxlcz1lfSwiYWN0aW9uIil9XSwyNTAsMTYsIjUuIEludGVyYWN0aXZlIEZlYXR1cmVzIiwiVGlsZXMgd2l0aCBhY3Rpb25zIGFuZCByZWFsLXRpbWUgdXBkYXRlcyIsW3tpZDoibGl2ZS1jcHUiLHRpdGxlOiJMaXZlIENQVSIsdmFsdWU6NDUsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpjcHUiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo2MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6ImxpdmUtcmVxdWVzdHMiLHRpdGxlOiJSZXF1ZXN0cy9zZWMiLHZhbHVlOjg5Mix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5Iix0cmVuZERhdGE6Wzg1MCw4NjAsODcwLDg4MCw4ODUsODkwLDg5Ml19LHtpZDoibGl2ZS1tZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjYyLHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSJ9LHtpZDoiY291bnRlciIsdGl0bGU6IkV2ZW50IENvdW50ZXIiLHZhbHVlOjAsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6emFwIixhY3Rpb25zOlt7bmFtZToiSW5jcmVtZW50IixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFzKXJldHVybjtsZXQgZT1zLnRpbGVzLmZpbmQodD0+dC5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT10eXBlb2YgZS52YWx1ZT09Im51bWJlciI/ZS52YWx1ZSsxOjEscy50aWxlcz1bLi4ucy50aWxlc119LCJhY3Rpb24iKX0se25hbWU6IlJlc2V0IixpY29uTmFtZToibHVjaWRlOnJvdGF0ZS1jY3ciLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFzKXJldHVybjtsZXQgZT1zLnRpbGVzLmZpbmQodD0+dC5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT0wLHMudGlsZXM9Wy4uLnMudGlsZXNdfSwiYWN0aW9uIil9XX1dLFt7bmFtZToiU3RhcnQgTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnBsYXkiLGFjdGlvbjppKGFzeW5jIGZ1bmN0aW9uKCl7d2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD8oY2xlYXJJbnRlcnZhbCh3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsKSx3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPW51bGwsdGhpcy5uYW1lPSJTdGFydCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwbGF5Iik6KHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKHMpe2xldCBlPVsuLi5zLnRpbGVzXSx0PWUuZmluZChvPT5vLmlkPT09ImxpdmUtY3B1Iik7dC52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCx0LnZhbHVlKyhNYXRoLnJhbmRvbSgpKjIwLTEwKSkpO2xldCBhPWUuZmluZChvPT5vLmlkPT09ImxpdmUtcmVxdWVzdHMiKSxyPWEudmFsdWUrTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjUwLTI1KTthLnZhbHVlPU1hdGgubWF4KDgwMCxyKSxhLnRyZW5kRGF0YT1bLi4uYS50cmVuZERhdGEuc2xpY2UoMSksYS52YWx1ZV07bGV0IG49ZS5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1tZW1vcnkiKTtuLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLG4udmFsdWUrKE1hdGgucmFuZG9tKCkqMTAtNSkpKSxzLnRpbGVzPWV9fSwxZTMpLHRoaXMubmFtZT0iU3RvcCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwYXVzZSIpfSwiYWN0aW9uIil9XSwyNTAsMTYsIjYuIENvZGUgRXhhbXBsZSIsIkhvdyB0byBpbXBsZW1lbnQgYSBzdGF0cyBncmlkIHdpdGggVHlwZVNjcmlwdCIsYGNvbnN0IHRpbGVzOiBJU3RhdHNUaWxlW10gPSBbCiAgewogICAgaWQ6ICdyZXZlbnVlJywKICAgIHRpdGxlOiAnVG90YWwgUmV2ZW51ZScsCiAgICB2YWx1ZTogMTI1NDIwLAogICAgdW5pdDogJyQnLAogICAgdHlwZTogJ251bWJlcicsCiAgICBpY29uOiAnbHVjaWRlOmRvbGxhci1zaWduJywKICAgIGRlc2NyaXB0aW9uOiAnKzEyLjUlIGZyb20gbGFzdCBtb250aCcsCiAgICBhY3Rpb25zOiBbCiAgICAgIHsKICAgICAgICBuYW1lOiAnVmlldyBEZXRhaWxzJywKICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp0cmVuZGluZy11cCcsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7CiAgICAgICAgICBjb25zb2xlLmxvZygnVmlldyByZXZlbnVlIGRldGFpbHMnKTsKICAgICAgICB9CiAgICAgIH0KICAgIF0KICB9LAogIHsKICAgIGlkOiAnY3B1JywKICAgIHRpdGxlOiAnQ1BVIFVzYWdlJywKICAgIHZhbHVlOiA3MywKICAgIHVuaXQ6ICclJywKICAgIHR5cGU6ICdnYXVnZScsCiAgICBpY29uOiAnbHVjaWRlOmNwdScsCiAgICBnYXVnZU9wdGlvbnM6IHsKICAgICAgbWluOiAwLAogICAgICBtYXg6IDEwMCwKICAgICAgdGhyZXNob2xkczogWwogICAgICAgIHsgdmFsdWU6IDAsIGNvbG9yOiAnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKScgfSwKICAgICAgICB7IHZhbHVlOiA2MCwgY29sb3I6ICdoc2woNDUuNCA5My40JSA0Ny41JSknIH0sCiAgICAgICAgeyB2YWx1ZTogODAsIGNvbG9yOiAnaHNsKDAgODQuMiUgNjAuMiUpJyB9CiAgICAgIF0KICAgIH0KICB9Cl07CgovLyBSZW5kZXIgdGhlIHN0YXRzIGdyaWQKaHRtbFxgCiAgPGRlZXMtc3RhdHNncmlkCiAgICAudGlsZXM9XCR7dGlsZXN9CiAgICAubWluVGlsZVdpZHRoPVwkezI1MH0KICAgIC5nYXA9XCR7MTZ9CiAgICAuZ3JpZEFjdGlvbnM9XCR7WwogICAgICB7CiAgICAgICAgbmFtZTogJ1JlZnJlc2gnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnJlZnJlc2gtY3cnLAogICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1JlZnJlc2gnKQogICAgICB9CiAgICBdfQogID48L2RlZXMtc3RhdHNncmlkPgpcYDtgLCI3LiBEaXNrICYgU3RvcmFnZSBUaWxlcyIsIlBhcnRpdGlvbiBhbmQgcGh5c2ljYWwgZGlzayB2aXN1YWxpemF0aW9uIHRpbGVzIixbe2lkOiJyb290LXBhcnRpdGlvbiIsdGl0bGU6IlJvb3QgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmZvbGRlci1yb290IixwYXJ0aXRpb25EYXRhOnt1c2VkOjY5ODM0MTQyNTE1Mix0b3RhbDoxMDczNzQxODI0ZTMsZmlsZXN5c3RlbToiZXh0NCIsbW91bnRQb2ludDoiLyJ9fSx7aWQ6ImhvbWUtcGFydGl0aW9uIix0aXRsZToiSG9tZSBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6aG9tZSIscGFydGl0aW9uRGF0YTp7dXNlZDoyMTQ3NDgzNjQ4MDAsdG90YWw6NTM2ODcwOTEyZTMsZmlsZXN5c3RlbToiZXh0NCIsbW91bnRQb2ludDoiL2hvbWUifX0se2lkOiJkYXRhLXBhcnRpdGlvbiIsdGl0bGU6IkRhdGEgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIixwYXJ0aXRpb25EYXRhOnt1c2VkOjE5MzI3MzUyODMyMDAsdG90YWw6MjE0NzQ4MzY0OGUzLGZpbGVzeXN0ZW06InhmcyIsbW91bnRQb2ludDoiL2RhdGEifX0se2lkOiJudm1lLXNzZCIsdGl0bGU6IlByaW1hcnkgTlZNZSIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsY29sdW1uU3BhbjoyLGRpc2tEYXRhOntjYXBhY2l0eToyZTEyLG1vZGVsOiJTYW1zdW5nIDk5MCBQcm8iLHR5cGU6Im52bWUiLGlvcHM6e3JlYWQ6NzQ1MCx3cml0ZTo2OTAwfSxoZWFsdGg6OTh9fSx7aWQ6InNhdGEtc3NkIix0aXRsZToiU2Vjb25kYXJ5IFNTRCIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGlza0RhdGE6e2NhcGFjaXR5OjFlMTIsbW9kZWw6IkNydWNpYWwgTVg1MDAiLHR5cGU6InNzZCIsaW9wczp7cmVhZDo1NjAsd3JpdGU6NTEwfSxoZWFsdGg6ODV9fSx7aWQ6ImhkZC1zdG9yYWdlIix0aXRsZToiQmFja3VwIEhERCIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6YXJjaGl2ZSIsZGlza0RhdGE6e2NhcGFjaXR5OjhlMTIsbW9kZWw6IlNlYWdhdGUgSXJvbldvbGYiLHR5cGU6ImhkZCIsaW9wczp7cmVhZDoyMTAsd3JpdGU6MTk1fSxoZWFsdGg6NDJ9fV0sMjgwLDE2KSwiZGVtb0Z1bmMiKX0pO3ZhciBzNCxmbixCdCxFaT1nKCgpPT57cGUoKTtrdCgpO3M0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQnQ9KCgpPT57bGV0IHM9d2UsZSx0PVtdLGE9W10scixuPVtdLG89W10sbCxwPVtdLGQ9W10sdSxjPVtdLGI9W10sdix4PVtdLG09W10sZix5PVtdLE09W10seixOPVtdLEM9W10sXyxPPVtdLCQ9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRCYXNlIil9c3RhdGlje2xldCBIPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W0woe3R5cGU6U3RyaW5nfSldLHI9W0woe3R5cGU6U3RyaW5nfSldLGw9W0woe3R5cGU6U3RyaW5nfSldLHU9W0woe3R5cGU6U3RyaW5nfSldLHY9W0woe3R5cGU6Qm9vbGVhbn0pXSxmPVtMKHt0eXBlOkJvb2xlYW59KV0sej1bTCh7dHlwZTpTdHJpbmd9KV0sXz1bTCh7dHlwZTpTdHJpbmd9KV0sczQodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXlvdXRNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJsYXlvdXRNb2RlImluIGssImhhcyIpLGdldDppKGs9PmsubGF5b3V0TW9kZSwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmxheW91dE1vZGU9U30sInNldCIpfSxtZXRhZGF0YTpIfSx0LGEpLHM0KHRoaXMsbnVsbCxyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWxQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ibGFiZWxQb3NpdGlvbiJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmxhYmVsUG9zaXRpb24sImdldCIpLHNldDppKChrLFMpPT57ay5sYWJlbFBvc2l0aW9uPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0sbixvKSxzNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ia2V5ImluIGssImhhcyIpLGdldDppKGs9Pmsua2V5LCJnZXQiKSxzZXQ6aSgoayxTKT0+e2sua2V5PVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0scCxkKSxzNCh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJsYWJlbCJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmxhYmVsLCJnZXQiKSxzZXQ6aSgoayxTKT0+e2subGFiZWw9U30sInNldCIpfSxtZXRhZGF0YTpIfSxjLGIpLHM0KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+InJlcXVpcmVkImluIGssImhhcyIpLGdldDppKGs9PmsucmVxdWlyZWQsImdldCIpLHNldDppKChrLFMpPT57ay5yZXF1aXJlZD1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LHgsbSksczQodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4iZGlzYWJsZWQiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKGssUyk9PntrLmRpc2FibGVkPVN9LCJzZXQiKX0sbWV0YWRhdGE6SH0seSxNKSxzNCh0aGlzLG51bGwseix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZm9UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJpbmZvVGV4dCJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLmluZm9UZXh0LCJnZXQiKSxzZXQ6aSgoayxTKT0+e2suaW5mb1RleHQ9U30sInNldCIpfSxtZXRhZGF0YTpIfSxOLEMpLHM0KHRoaXMsbnVsbCxfLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImRlc2NyaXB0aW9uImluIGssImhhcyIpLGdldDppKGs9PmsuZGVzY3JpcHRpb24sImdldCIpLHNldDppKChrLFMpPT57ay5kZXNjcmlwdGlvbj1TfSwic2V0Iil9LG1ldGFkYXRhOkh9LE8sJCksSCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpIfSl9I2U9Zm4odGhpcyx0LCJhdXRvIik7Z2V0IGxheW91dE1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGF5b3V0TW9kZShIKXt0aGlzLiNlPUh9I3Q9KGZuKHRoaXMsYSksZm4odGhpcyxuLCJ0b3AiKSk7Z2V0IGxhYmVsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFiZWxQb3NpdGlvbihIKXt0aGlzLiN0PUh9I2E9KGZuKHRoaXMsbyksZm4odGhpcyxwLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQga2V5KEgpe3RoaXMuI2E9SH0jcz0oZm4odGhpcyxkKSxmbih0aGlzLGMsdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhYmVsKEgpe3RoaXMuI3M9SH0jaT0oZm4odGhpcyxiKSxmbih0aGlzLHgsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcmVxdWlyZWQoSCl7dGhpcy4jaT1IfSNyPShmbih0aGlzLG0pLGZuKHRoaXMseSwhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNyfXNldCBkaXNhYmxlZChIKXt0aGlzLiNyPUh9I289KGZuKHRoaXMsTSksZm4odGhpcyxOLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCBpbmZvVGV4dChIKXt0aGlzLiNvPUh9I249KGZuKHRoaXMsQyksZm4odGhpcyxPLHZvaWQgMCkpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiNufXNldCBkZXNjcmlwdGlvbihIKXt0aGlzLiNuPUh9c3RhdGljIGdldCBiYXNlU3R5bGVzKCl7cmV0dXJuW0pgCiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgY29uc2lzdGVudCBzcGFjaW5nICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdDogOHB4OwogICAgICAgICAgLS1kZWVzLWlucHV0LWxhYmVsLWdhcDogdmFyKC0tZGVlcy1pbnB1dC1zcGFjaW5nLXVuaXQpOyAvKiA4cHggKi8KICAgICAgICB9CgogICAgICAgIC8qIERlZmF1bHQgYmxvY2sgZGlzcGxheSB3aXRoIG5vIG1hcmdpbnMgLSBzcGFjaW5nIGlzIGNvbnRhaW5lci1kcml2ZW4gKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICB9CgogICAgICAgIC8qIEhvcml6b250YWwgbGF5b3V0IG1vZGUgLSBhY3RpdmF0ZWQgYnkgYXR0cmlidXRlICovCiAgICAgICAgOmhvc3QoW2xheW91dC1tb2RlPSJob3Jpem9udGFsIl0pIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB9CgogICAgICAgIC8qIExhYmVsIHBvc2l0aW9uIHZhcmlhdGlvbnMgKi8KICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InJpZ2h0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvOwogICAgICAgICAgZ2FwOiB2YXIoLS1kZWVzLWlucHV0LWxhYmVsLWdhcCk7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249Im5vbmUiXSkgZGVlcy1sYWJlbCB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLyogRGVzY3JpcHRpb24gdGV4dCBiZWxvdyBpbnB1dCAqLwogICAgICAgIC5kZXNjcmlwdGlvblRleHQgewogICAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIH0KICAgICAgYF19Y2hhbmdlU3ViamVjdD0oZm4odGhpcywkKSxuZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3QpO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRldGVjdExheW91dE1vZGUoKX1kZXRlY3RMYXlvdXRNb2RlKCl7aWYodGhpcy5sYXlvdXRNb2RlIT09ImF1dG8iKXt0aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLHRoaXMubGF5b3V0TW9kZSk7cmV0dXJufWxldCBIPXRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIik7SCYmSC5oYXNBdHRyaWJ1dGUoImhvcml6b250YWwtbGF5b3V0Iik/dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwiaG9yaXpvbnRhbCIpOnRoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsInZlcnRpY2FsIil9dXBkYXRlZChIKXtzdXBlci51cGRhdGVkKEgpLEguaGFzKCJsYXlvdXRNb2RlIikmJnRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpLEguaGFzKCJsYWJlbFBvc2l0aW9uIikmJnRoaXMuc2V0QXR0cmlidXRlKCJsYWJlbC1wb3NpdGlvbiIsdGhpcy5sYWJlbFBvc2l0aW9uKX1hc3luYyBmcmVlemUoKXt0aGlzLmRpc2FibGVkPSEwfWFzeW5jIHVuZnJlZXplKCl7dGhpcy5kaXNhYmxlZD0hMX1yZW5kZXJEZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmRlc2NyaXB0aW9uP3dgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb25UZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn19fSkoKX0pO3ZhciBzYmEsaWJhPWcoKCk9PntwZSgpO0l0KCk7eG8oKTtIZygpO3NiYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtY2hlY2tib3giKSx0PXMucXVlcnlTZWxlY3RvcigiI3NlbGVjdC1hbGwtYnRuIiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNjbGVhci1hbGwtYnRuIik7dCYmYSYmKHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHI9Pnshci5kaXNhYmxlZCYmci5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHIudmFsdWU9ITApfSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZm9yRWFjaChyPT57IXIuZGlzYWJsZWQmJnIua2V5Py5zdGFydHNXaXRoKCJmZWF0dXJlIikmJihyLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsidGVybXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJuZXdzbGV0dGVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIGVtYWlsIHVwZGF0ZXMgYWJvdXQgeW91ciBhY2NvdW50In0KICAgICAgICAgICAgLmtleT0keyJub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDaGVja2JveCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGNoZWNrYm94IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkNoZWNrZWQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIHVuY2hlY2tlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGNoZWNrZWQifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBjaGVja2JveCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7InJlcXVpcmVkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJDaGVja2JveGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWNoZWNrYm94ZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25BIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBCIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gRCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25EIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBTZWxlY3Rpb24gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdXNlIGNhc2UgZm9yIGZlYXR1cmUgdG9nZ2xlcyB3aXRoIGJhdGNoIG9wZXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJzZWxlY3QtYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5TZWxlY3QgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0iY2xlYXItYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5DbGVhciBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUgU3VwcG9ydCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiQVBJIEFjY2VzcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlNCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcml2YWN5IFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2hlY2tib3hlcyBpbiBhIHR5cGljYWwgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHJpdmFjeSBQcmVmZXJlbmNlczwvaDQ+CgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiU2hhcmUgYW5hbHl0aWNzIGRhdGEifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJQZXJzb25hbGl6ZWQgcmVjb21tZW5kYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiR2V0IHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHlvdXIgYWN0aXZpdHkifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwcm9tb3Rpb25hbCBlbWFpbHMgYW5kIHNwZWNpYWwgb2ZmZXJzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRoaXJkLXBhcnR5IGludGVncmF0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGVja2JveC1vdXRwdXQiKTtpZihlJiZzLmRldGFpbCl7bGV0IHQ9cy5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBGZWF0dXJlIGlzICR7dD8iZW5hYmxlZCI6ImRpc2FibGVkIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkZWJ1Zy1vdXRwdXQiKTtpZihlJiZzLmRldGFpbCl7bGV0IHQ9cy5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBEZWJ1ZyBtb2RlOiAke3Q/Ik9OIjoiT0ZGIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgUm90LCRRLE9vdCxMMWU9ZygoKT0+e3BlKCk7RWkoKTtpYmEoKTtFcigpO2h0KCk7Um90PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSwkUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sT290PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1jaGVja2JveCIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRDaGVja2JveCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbn0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sUm90KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InZhbHVlImluIHYsImhhcyIpLGdldDppKHY9PnYudmFsdWUsImdldCIpLHNldDppKCh2LHgpPT57di52YWx1ZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksUm90KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iaW5kZXRlcm1pbmF0ZSJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmluZGV0ZXJtaW5hdGUsImdldCIpLHNldDppKCh2LHgpPT57di5pbmRldGVybWluYXRlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxSb3QobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1zYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPSRRKHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGIpe3RoaXMuI2U9Yn0jdD0oJFEodGhpcyxsKSwkUSh0aGlzLGQsITEpKTtnZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbmRldGVybWluYXRlKGIpe3RoaXMuI3Q9Yn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksJFEodGhpcyx1KSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgKiB7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3ggewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi8KICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCAuY2hlY2ttYXJrIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayBzdmcgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBzdHJva2U6IHdoaXRlOwogICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgIH0KCiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCAqLwogICAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDJweDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiBAY2xpY2s9IiR7dGhpcy50b2dnbGVTZWxlY3RlZH0iPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9ImNoZWNrYm94ICR7dGhpcy52YWx1ZT8ic2VsZWN0ZWQiOiIifSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIAogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIwIDZMOSAxN0w0IDEyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6dGhpcy5pbmRldGVybWluYXRlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZWNrbWFyayI+CiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTJIMTkiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9ImNoZWNrYm94LWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIHRvZ2dsZVNlbGVjdGVkKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWU9IXRoaXMudmFsdWUsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGIpe3RoaXMudmFsdWU9Yn1mb2N1cygpe2xldCBiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hlY2tib3giKTtiJiZiLmZvY3VzKCl9aGFuZGxlS2V5ZG93bihiKXsoYi5rZXk9PT0iICJ8fGIua2V5PT09IkVudGVyIikmJihiLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3RlZCgpKX1zdGF0aWN7JFEoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIERRPXt9O3l0KERRLHticmlnaHQ6KCk9PnI0LGRhcms6KCk9Pmk0fSk7dmFyIGk0LHI0LHcyPWcoKCk9PntpND17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDEyNDUyIix0ZXh0OiIjZmZmZmZmIn0scjQ9e2JsdWU6IiMwMDUwYjkiLGJsdWVBY3RpdmU6IiMwMDY5ZjIiLGJsdWVNdXRlZDoiIzAwNjlmMiIsdGV4dDoiIzMzMzMzMyJ9fSk7dmFyIHJiYSxvYmE9ZygoKT0+e3BlKCk7UHUoKTtyYmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoYXN5bmMoKT0+e2F3YWl0IGlzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkhlbHAiLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLHNob3dIZWxwQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHByb3ZpZGUgY29udGV4dC1zcGVjaWZpYyBoZWxwIGhlcmUuPC9wPgogICAgICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX0sIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOmkoKCk9PmFsZXJ0KCJIZWxwIGNsaWNrZWQhIiksIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6Ik9LIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKGFzeW5jKCk9PnthbGVydCgiSW4gYSByZWFsIGFwcCwgdGhpcyB3b3VsZCBzaG93IGVkaXRvciBkb2N1bWVudGF0aW9uIil9LCJvbkhlbHAiKSxjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKCgpPT5jb25zb2xlLmxvZygiSGVscCByZXF1ZXN0ZWQgZm9yIHJlc3BvbnNpdmUgbW9kYWwiKSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNjcm9sbGFibGUgQ29udGVudDwvaDM+CiAgICAgIDxwPldoZW4gY29udGVudCBleGNlZWRzIHRoZSBtb2RhbCdzIG1heC1oZWlnaHQgKDxjb2RlPmNhbGMoMTAwdmggLSA4MHB4KTwvY29kZT4pLCB0aGUgdGlsZSBjYXBzIGF0IHRoYXQgaGVpZ2h0IGFuZCB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgaW5zaWRlLiBUaGUgaGVhZGluZyBhbmQgYm90dG9tIGJ1dHRvbnMgc3RheSBwaW5uZWQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBBcnRpY2xlIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2g0PgogICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjQwfSwocyxlKT0+d2AKICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICA8c3Ryb25nPsKnICR7ZSsxfS48L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGRvCiAgICAgICAgICAgICAgICAgIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0CiAgICAgICAgICAgICAgICAgIGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcwogICAgICAgICAgICAgICAgICBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvcgogICAgICAgICAgICAgICAgICBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0CiAgICAgICAgICAgICAgICAgIG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LAogICAgICAgICAgICAgICAgICBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJBY2NlcHQiLGFjdGlvbjppKGFzeW5jIHM9PnMuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIEFydGljbGU8L2RlZXMtYnV0dG9uPgoKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pntpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIExpc3QiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNlbGVjdGVkIGl0ZW1zOjwvcD4KICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmctbGVmdDogMjBweDsgbWFyZ2luOiAwOyI+CiAgICAgICAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDo4MH0sKHMsZSk9PndgCiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0icGFkZGluZzogNHB4IDA7Ij5JdGVtICR7ZSsxfSDigJQgb3B0aW9uIGxhYmVsPC9saT4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMaXN0PC9kZWVzLWJ1dHRvbj4KCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiVGFsbCBGb3JtIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjI1fSwocyxlKT0+d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHtgRmllbGQgJHtlKzF9YH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgcz0+cy5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU3VibWl0IixhY3Rpb246aShhc3luYyBzPT5zLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGFsbCBGb3JtPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBuYmEsbGJhPWcoKCk9PntwZSgpO21yKCk7bmJhPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC50aWxlLWRlbW8tY29udGVudCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB9CiAgICAgICAgICAuZm9vdGVyLXN0YXRzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyAuc3RhdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyAuc3RhdCBzdHJvbmcgewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkZWVzLXRpbGUgaGVhZGluZz0iU2ltcGxlIFRpbGUiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q29udGVudCBhcmVhIHdpdGggcm91bmRlZCBjb3JuZXJzPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDxkZWVzLXRpbGUgaGVhZGluZz0iVGlsZSB3aXRoIEZvb3RlciIgc3R5bGU9ImhlaWdodDogMjAwcHg7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVtby1jb250ZW50Ij5Db250ZW50IGdvZXMgaGVyZTwvZGl2PgogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJmb290ZXItc3RhdHMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+bGF0ZXN0IDxzdHJvbmc+NDI8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5taW4gPHN0cm9uZz4xMjwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPm1heCA8c3Ryb25nPjg3PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+YXZnIDxzdHJvbmc+NDUuMzwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8ZGVlcy10aWxlIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7d2lkdGg6MTAwJTsiPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NTAwOyI+Q3VzdG9tIEhlYWRlcjwvc3Bhbj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2guLi4iIHN0eWxlPSJmbGV4OjE7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6MnB4IDhweDtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXItY29sb3I6aW5oZXJpdDsiPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q3VzdG9tIGhlYWRlciBzbG90IHdpdGggc2VhcmNoIGlucHV0PC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgRTFlLHFnLEJKYSxtcj1nKCgpPT57cGUoKTtsYmEoKTtFcigpO2h0KCk7RTFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxxZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQkphPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aWxlIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaWxlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjPVtZKCldLEUxZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImhlYWRpbmciaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuaGVhZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksRTFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3ZlcnNjcm9sbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ib3ZlcnNjcm9sbCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm92ZXJzY3JvbGwsImdldCIpLHNldDppKChmLHkpPT57Zi5vdmVyc2Nyb2xsPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxFMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNGb290ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+Imhhc0Zvb3RlciJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmhhc0Zvb3RlciwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmhhc0Zvb3Rlcj15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksRTFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89bmJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9cWcodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKG0pe3RoaXMuI2U9bX0jdD0ocWcodGhpcyxsKSxxZyh0aGlzLGQsImF1dG8iKSk7Z2V0IG92ZXJzY3JvbGwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3ZlcnNjcm9sbChtKXt0aGlzLiN0PW19I2E9KHFnKHRoaXMsdSkscWcodGhpcyxiLCExKSk7Z2V0IGhhc0Zvb3Rlcigpe3JldHVybiB0aGlzLiNhfXNldCBoYXNGb290ZXIobSl7dGhpcy4jYT1tfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAvKiAtLS0gVGhlIGZyYW1lIC0tLSAqLwogICAgICAudGlsZS1vdXRlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLyogLS0tIEhlYWRlcjogYmFyZSBjb250YWluZXIsIG9ubHkgdGhlIGRlZmF1bHQgaGVhZGluZyBnZXRzIHN0eWxlZCAtLS0gKi8KICAgICAgLnRpbGUtaGVhZGVyIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBDb250ZW50OiB0aGUgcm91bmRlZCBpbnNldCAtLS0KICAgICAgICAgVXNlcyBvdmVyZmxvdy15OiBhdXRvIHNvIHRoYXQgd2hlbiBhIGNvbnN1bWVyIChlLmcuIGRlZXMtbW9kYWwpIGNhcHMKICAgICAgICAgdGhlIHRpbGUgd2l0aCBtYXgtaGVpZ2h0LCBsb25nIGNvbnRlbnQgc2Nyb2xscyBpbnNpZGUgdGhlIHRpbGUKICAgICAgICAgaW5zdGVhZCBvZiBiZWluZyBjbGlwcGVkLiBGb3IgY29uc3VtZXJzIHdpdGhvdXQgbWF4LWhlaWdodAogICAgICAgICAoZS5nLiBkZWVzLXN0ZXBwZXIpLCB0aGUgdGlsZSBncm93cyB3aXRoIGNvbnRlbnQgYW5kIHRoZSBzY3JvbGwKICAgICAgICAgbmV2ZXIgYWN0aXZhdGVzLiBIb3Jpem9udGFsIG92ZXJmbG93IHN0YXlzIGNsaXBwZWQgdG8gcHJlc2VydmUgdGhlCiAgICAgICAgIHJvdW5kZWQgY29ybmVycy4gKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgOmhvc3QoW292ZXJzY3JvbGw9ImNvbnRhaW4iXSkgLnRpbGUtY29udGVudCB7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGVudC5uby1mb290ZXIgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsKICAgICAgfQoKICAgICAgLyogLS0tIEZvb3RlcjogYmFyZSBjb250YWluZXIsIGNvbnN1bWVyIHN0eWxlcyB0aGUgc2xvdHRlZCBjb250ZW50IC0tLSAqLwogICAgICAudGlsZS1mb290ZXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS1mb290ZXIuaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdXRlciIgcGFydD0ib3V0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaGVhZGVyIiBwYXJ0PSJoZWFkZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgIDwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbnRlbnQgJHt0aGlzLmhhc0Zvb3Rlcj8iIjoibm8tZm9vdGVyIn0iIHBhcnQ9ImNvbnRlbnQiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZm9vdGVyICR7dGhpcy5oYXNGb290ZXI/IiI6ImhpZGRlbiJ9IiBwYXJ0PSJmb290ZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iZm9vdGVyIiBAc2xvdGNoYW5nZT0ke3RoaXMub25Gb290ZXJTbG90Q2hhbmdlfT48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1vbkZvb3RlclNsb3RDaGFuZ2UobSl7bGV0IGY9bS50YXJnZXQ7dGhpcy5oYXNGb290ZXI9Zi5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkubGVuZ3RoPjB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHFnKHRoaXMsdil9c3RhdGlje3FnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciByYyxtaSxpcyxQdT1nKCgpPT57dzIoKTt2bygpO0duKCk7RXIoKTtvYmEoKTtwZSgpO2t0KCk7djIoKTtHYSgpO21yKCk7aHQoKTtyYz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbWk9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGlzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1tb2RhbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W107dmFyIHVlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzTW9kYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bWSh7fSldLGM9W1koe30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOk51bWJlcn0pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe2F0dHJpYnV0ZTohMX0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W0woe3R5cGU6TnVtYmVyfSldLGhlPVtZKCldLHJjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaGVhZGluZyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmhlYWRpbmcsImdldCIpLHNldDppKChRLGllKT0+e1EuaGVhZGluZz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sbyxsKSxyYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImNvbnRlbnQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5jb250ZW50LCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmNvbnRlbnQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGQsdSkscmModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51T3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWVudU9wdGlvbnMiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5tZW51T3B0aW9ucywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tZW51T3B0aW9ucz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sYix2KSxyYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ3aWR0aCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLndpZHRoLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLndpZHRoPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxtLGYpLHJjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4V2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Im1heFdpZHRoImluIFEsImhhcyIpLGdldDppKFE9PlEubWF4V2lkdGgsImdldCIpLHNldDppKChRLGllKT0+e1EubWF4V2lkdGg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LE0seikscmModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5XaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWluV2lkdGgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5taW5XaWR0aCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5taW5XaWR0aD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sQyxfKSxyYyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic2hvd0Nsb3NlQnV0dG9uImluIFEsImhhcyIpLGdldDppKFE9PlEuc2hvd0Nsb3NlQnV0dG9uLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNob3dDbG9zZUJ1dHRvbj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sJCxFKSxyYyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIZWxwQnV0dG9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaG93SGVscEJ1dHRvbiJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnNob3dIZWxwQnV0dG9uLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnNob3dIZWxwQnV0dG9uPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxrLFMpLHJjKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib25IZWxwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJvbkhlbHAiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5vbkhlbHAsImdldCIpLHNldDppKChRLGllKT0+e1Eub25IZWxwPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxQLFIpLHJjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibW9iaWxlRnVsbHNjcmVlbiJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1vYmlsZUZ1bGxzY3JlZW4sImdldCIpLHNldDppKChRLGllKT0+e1EubW9iaWxlRnVsbHNjcmVlbj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sVixXKSxyYyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50UGFkZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iY29udGVudFBhZGRpbmciaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5jb250ZW50UGFkZGluZywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5jb250ZW50UGFkZGluZz1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sQixVKSxyYyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RhbFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibW9kYWxaSW5kZXgiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5tb2RhbFpJbmRleCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5tb2RhbFpJbmRleD1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sRixqKSxyYyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpsZX0sbnVsbCx0KSx1ZT1hPWUudmFsdWUsbGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bGV9KX1zdGF0aWMgZGVtbz1yYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3cobGUpe2xldCBRPWRvY3VtZW50LmJvZHksaWU9bmV3IHVlO3JldHVybiBpZS5oZWFkaW5nPWxlLmhlYWRpbmcsaWUuY29udGVudD1sZS5jb250ZW50LGllLm1lbnVPcHRpb25zPWxlLm1lbnVPcHRpb25zLGxlLndpZHRoJiYoaWUud2lkdGg9bGUud2lkdGgpLGxlLm1heFdpZHRoJiYoaWUubWF4V2lkdGg9bGUubWF4V2lkdGgpLGxlLm1pbldpZHRoJiYoaWUubWluV2lkdGg9bGUubWluV2lkdGgpLGxlLnNob3dDbG9zZUJ1dHRvbiE9PXZvaWQgMCYmKGllLnNob3dDbG9zZUJ1dHRvbj1sZS5zaG93Q2xvc2VCdXR0b24pLGxlLnNob3dIZWxwQnV0dG9uIT09dm9pZCAwJiYoaWUuc2hvd0hlbHBCdXR0b249bGUuc2hvd0hlbHBCdXR0b24pLGxlLm9uSGVscCYmKGllLm9uSGVscD1sZS5vbkhlbHApLGxlLm1vYmlsZUZ1bGxzY3JlZW4hPT12b2lkIDAmJihpZS5tb2JpbGVGdWxsc2NyZWVuPWxlLm1vYmlsZUZ1bGxzY3JlZW4pLGxlLmNvbnRlbnRQYWRkaW5nIT09dm9pZCAwJiYoaWUuY29udGVudFBhZGRpbmc9bGUuY29udGVudFBhZGRpbmcpLGllLndpbmRvd0xheWVyPWF3YWl0IFJvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSxpZS53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2F3YWl0IGllLmRlc3Ryb3koKX0pLFEuYXBwZW5kKGllLndpbmRvd0xheWVyKSxRLmFwcGVuZChpZSksaWUubW9kYWxaSW5kZXg9X2EuZ2V0TmV4dFpJbmRleCgpLF9hLnJlZ2lzdGVyKGllLGllLm1vZGFsWkluZGV4KSxpZX0jZT1taSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobGUpe3RoaXMuI2U9bGV9I3Q9KG1pKHRoaXMsbCksbWkodGhpcyxkLHZvaWQgMCkpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQobGUpe3RoaXMuI3Q9bGV9I2E9KG1pKHRoaXMsdSksbWkodGhpcyxiLFtdKSk7Z2V0IG1lbnVPcHRpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1lbnVPcHRpb25zKGxlKXt0aGlzLiNhPWxlfSNzPShtaSh0aGlzLHYpLG1pKHRoaXMsbSwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCB3aWR0aChsZSl7dGhpcy4jcz1sZX0jaT0obWkodGhpcyxmKSxtaSh0aGlzLE0sdm9pZCAwKSk7Z2V0IG1heFdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1heFdpZHRoKGxlKXt0aGlzLiNpPWxlfSNyPShtaSh0aGlzLHopLG1pKHRoaXMsQyx2b2lkIDApKTtnZXQgbWluV2lkdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWluV2lkdGgobGUpe3RoaXMuI3I9bGV9I289KG1pKHRoaXMsXyksbWkodGhpcywkLCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNvfXNldCBzaG93Q2xvc2VCdXR0b24obGUpe3RoaXMuI289bGV9I249KG1pKHRoaXMsRSksbWkodGhpcyxrLCExKSk7Z2V0IHNob3dIZWxwQnV0dG9uKCl7cmV0dXJuIHRoaXMuI259c2V0IHNob3dIZWxwQnV0dG9uKGxlKXt0aGlzLiNuPWxlfSNsPShtaSh0aGlzLFMpLG1pKHRoaXMsUCx2b2lkIDApKTtnZXQgb25IZWxwKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG9uSGVscChsZSl7dGhpcy4jbD1sZX0jYz0obWkodGhpcyxSKSxtaSh0aGlzLFYsITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKGxlKXt0aGlzLiNjPWxlfSNkPShtaSh0aGlzLFcpLG1pKHRoaXMsQiwxNikpO2dldCBjb250ZW50UGFkZGluZygpe3JldHVybiB0aGlzLiNkfXNldCBjb250ZW50UGFkZGluZyhsZSl7dGhpcy4jZD1sZX0jdT0obWkodGhpcyxVKSxtaSh0aGlzLEYsMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI3V9c2V0IG1vZGFsWkluZGV4KGxlKXt0aGlzLiN1PWxlfWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICBkZWVzLXRpbGUgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLCBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICBtYXJnaW46IDQwcHg7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm94LXNoYWRvdzoKICAgICAgICAgIDAgMCAwIDFweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDEwMCUgLyAwLjAzKSIpfSwKICAgICAgICAgIDAgOHB4IDQwcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4xMikiLCJoc2woMCAwJSAwJSAvIDAuNSkiKX0sCiAgICAgICAgICAwIDJweCA4cHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAwJSAvIDAuMjUpIil9OwogICAgICB9CgogICAgICAvKiBXaWR0aCB2YXJpYXRpb25zICovCiAgICAgIGRlZXMtdGlsZS53aWR0aC1zbWFsbCB7CiAgICAgICAgd2lkdGg6IDM4MHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtbWVkaXVtIHsKICAgICAgICB3aWR0aDogNTYwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS53aWR0aC1sYXJnZSB7CiAgICAgICAgd2lkdGg6IDgwMHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtZnVsbHNjcmVlbiB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB9CgogICAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIH0KCiAgICAgICAgZGVlcy10aWxlIHsKICAgICAgICAgIG1hcmdpbjogMTBweDsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTsKICAgICAgICB9CgogICAgICAgIGRlZXMtdGlsZS5tb2JpbGUtZnVsbHNjcmVlbiB7CiAgICAgICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDsKICAgICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXRpbGUubW9iaWxlLWZ1bGxzY3JlZW46OnBhcnQob3V0ZXIpIHsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zaG93LnByZWRlc3Ryb3kgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgc2NhbGUoMC45OCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UtaW4sIG9wYWNpdHkgMC4xNXMgZWFzZS1pbjsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRpbmctdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEyKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMTIpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgbGU9dHlwZW9mIHRoaXMud2lkdGg9PSJzdHJpbmciP2B3aWR0aC0ke3RoaXMud2lkdGh9YDoiIixRPXR5cGVvZiB0aGlzLndpZHRoPT0ibnVtYmVyIj9gJHt0aGlzLndpZHRofXB4YDoiIixpZT10aGlzLm1heFdpZHRoP2Ake3RoaXMubWF4V2lkdGh9cHhgOiIiLHRlPXRoaXMubWluV2lkdGg/YCR7dGhpcy5taW5XaWR0aH1weGA6IiIsZWU9dGhpcy5tb2JpbGVGdWxsc2NyZWVuPyJtb2JpbGUtZnVsbHNjcmVlbiI6IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAke1E/YGRlZXMtdGlsZSB7IHdpZHRoOiAke1F9OyB9YDoiIn0KICAgICAgICAke2llP2BkZWVzLXRpbGUgeyBtYXgtd2lkdGg6ICR7aWV9OyB9YDoiIn0KICAgICAgICAke3RlP2BkZWVzLXRpbGUgeyBtaW4td2lkdGg6ICR7dGV9OyB9YDoiIn0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWxDb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfSBzdHlsZT0iei1pbmRleDogJHt0aGlzLm1vZGFsWkluZGV4fSI+CiAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHtsZX0gJHtlZX0iIC5vdmVyc2Nyb2xsPSR7ImNvbnRhaW4ifT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctdGV4dCI+JHt0aGlzLmhlYWRpbmd9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b25zIj4KICAgICAgICAgICAgICAke3RoaXMuc2hvd0hlbHBCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlSGVscH0gdGl0bGU9IkhlbHAiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICR7dGhpcy5zaG93Q2xvc2VCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlc3Ryb3koKX0gdGl0bGU9IkNsb3NlIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiAke3RoaXMuY29udGVudFBhZGRpbmd9cHg7Ij4ke3RoaXMuY29udGVudH08L2Rpdj4KICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5tYXAoKGtlLFgpPT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CdXR0b24gJHtYPT09dGhpcy5tZW51T3B0aW9ucy5sZW5ndGgtMT8icHJpbWFyeSI6IiJ9ICR7a2UubmFtZT09PSJPSyI/Im9rIjoiIn0iIEBjbGljaz0keygpPT57a2UuYWN0aW9uKHRoaXMpfX0+JHtrZS5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyPW1pKHRoaXMsaik7YXN5bmMgZmlyc3RVcGRhdGVkKGxlKXtzdXBlci5maXJzdFVwZGF0ZWQobGUpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy10aWxlIikuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhhbmRsZU91dHNpZGVDbGljayhsZSl7bGUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbENvbnRhaW5lciIpO2xlLnRhcmdldD09PVEmJmF3YWl0IHRoaXMuZGVzdHJveSgpfWFzeW5jIGRlc3Ryb3koKXtsZXQgbGU9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtdGlsZSIpLmNsYXNzTGlzdC5hZGQoInByZWRlc3Ryb3kiKSxhd2FpdCBsZS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDIwMCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzKSxhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSxfYS51bnJlZ2lzdGVyKHRoaXMpfWFzeW5jIGhhbmRsZUhlbHAoKXt0aGlzLm9uSGVscCYmYXdhaXQgdGhpcy5vbkhlbHAoKX1zdGF0aWN7bWkoYSx0KX19O3JldHVybiB1ZT1hfSkoKX0pO3ZhciBjYmEsZGJhPWcoKCk9PntwZSgpO2NiYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gcCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxhYmVsLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sYWJlbC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxhYmVsLXJvdyAuYW5ub3RhdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjODg4IiwiIzY2NiIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CYXNpYyBMYWJlbDwvaDM+CiAgICAgIDxwPkEgc2ltcGxlIHRleHQgbGFiZWwgd2l0aCBubyBhZGRpdGlvbmFsIGluZGljYXRvcnMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSJVc2VybmFtZSI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5sYWJlbD0iRW1haWwgQWRkcmVzcyI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVxdWlyZWQgSW5kaWNhdG9yPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5yZXF1aXJlZDwvY29kZT4gaXMgc2V0LCBhIHJlZCBhc3RlcmlzayBhcHBlYXJzIGFmdGVyIHRoZSBsYWJlbCB0ZXh0LjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZD0keyJ7dHJ1ZX0ifTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQ9JHsie2ZhbHNlfSJ9IChkZWZhdWx0KTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJOaWNrbmFtZSJ9IC5yZXF1aXJlZD0keyExfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkluZm8gVGV4dCAoSW5mbyBJY29uKTwvaDM+CiAgICAgIDxwPldoZW4gPGNvZGU+aW5mb1RleHQ8L2NvZGU+IGlzIHNldCwgYW4gaW5mbyBpY29uIGFwcGVhcnMgbmV4dCB0byB0aGUgbGFiZWwuIEhvdmVyIG92ZXIgaXQgdG8gc2VlIHRoZSB0b29sdGlwLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5pbmZvVGV4dD0iLi4uIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJBUEkgS2V5In0gLmluZm9UZXh0PSR7IllvdXIgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIGRldmVsb3BlciBzZXR0aW5ncyBkYXNoYm9hcmQuIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+c2hvcnQgaW5mb1RleHQ8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiUmVnaW9uIn0gLmluZm9UZXh0PSR7IlNlbGVjdCB5b3VyIG5lYXJlc3QgZGF0YWNlbnRlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlJlcXVpcmVkICsgSW5mbyBUZXh0PC9oMz4KICAgICAgPHA+Qm90aCBpbmRpY2F0b3JzIGNhbiBiZSBjb21iaW5lZC4gVGhlIGFzdGVyaXNrIGFwcGVhcnMgZmlyc3QsIHRoZW4gdGhlIGluZm8gaWNvbi48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQgKyBpbmZvVGV4dDwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJQYXNzd29yZCJ9IC5yZXF1aXJlZD0keyEwfSAuaW5mb1RleHQ9JHsiTXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgd2l0aCBvbmUgdXBwZXJjYXNlIGxldHRlciBhbmQgb25lIG51bWJlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZCArIGluZm9UZXh0PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkVtYWlsIEFkZHJlc3MifSAucmVxdWlyZWQ9JHshMH0gLmluZm9UZXh0PSR7IldlIHdpbGwgc2VuZCBhIHZlcmlmaWNhdGlvbiBsaW5rIHRvIHRoaXMgYWRkcmVzcy4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVtcHR5IExhYmVsPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5sYWJlbDwvY29kZT4gaXMgZW1wdHkgb3Igbm90IHNldCwgbm90aGluZyBpcyByZW5kZXJlZC4gVGhlIGVsZW1lbnQgYmVsb3cgaGFzIG5vIGxhYmVsIHRleHQ6PC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSIiIChlbXB0eSk8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFAxZSxqZyxISmEsYng9ZygoKT0+e3ZvKCk7dzIoKTtwZSgpO2RiYSgpO2h0KCk7UDFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSEphPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1sYWJlbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzTGFiZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sUDFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImxhYmVsImluIGYsImhhcyIpLGdldDppKGY9PmYubGFiZWwsImdldCIpLHNldDppKChmLHkpPT57Zi5sYWJlbD15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksUDFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImluZm9UZXh0ImluIGYsImhhcyIpLGdldDppKGY9PmYuaW5mb1RleHQsImdldCIpLHNldDppKChmLHkpPT57Zi5pbmZvVGV4dD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksUDFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJlcXVpcmVkImluIGYsImhhcyIpLGdldDppKGY9PmYucmVxdWlyZWQsImdldCIpLHNldDppKChmLHkpPT57Zi5yZXF1aXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksUDFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89Y2JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiSW5wdXQiXTsjZT1qZyh0aGlzLG8sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChtKXt0aGlzLiNlPW19I3Q9KGpnKHRoaXMsbCksamcodGhpcyxkLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChtKXt0aGlzLiN0PW19I2E9KGpnKHRoaXMsdSksamcodGhpcyxiLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJlcXVpcmVkKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5yZXF1aXJlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIG1hcmdpbjogLTZweCAwIC02cHggMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24taWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyNSUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubGFiZWw/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPgogICAgICAgICAgICAgICR7dGhpcy5sYWJlbH0KICAgICAgICAgICAgICAke3RoaXMucmVxdWlyZWQ/d2A8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuaW5mb1RleHQ/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi1pY29uIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmluZm8ifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtc3BlZWNoYnViYmxlPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGpnKHRoaXMsdil9c3RhdGlje2pnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBJMWUsRm90PWcoKCk9PntJMWU9IjAuNTUuMSJ9KTt2YXIgdngsazIscUphLFZnPWcoKCk9PntwZSgpO2t0KCk7Rm90KCk7aHQoKTt2eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sazI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHFKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlTW9uYWNvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLHZ4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY29udGVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNvbnRlbnQsImdldCIpLHNldDppKChfLE8pPT57Xy5jb250ZW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx2eCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJsYW5ndWFnZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ubGFuZ3VhZ2U9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLHZ4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImZpbGVQYXRoImluIF8sImhhcyIpLGdldDppKF89Pl8uZmlsZVBhdGgsImdldCIpLHNldDppKChfLE8pPT57Xy5maWxlUGF0aD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksdngodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50U3ViamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY29udGVudFN1YmplY3QiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jb250ZW50U3ViamVjdCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmNvbnRlbnRTdWJqZWN0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSx2eCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ3b3JkV3JhcCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLndvcmRXcmFwLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ud29yZFdyYXA9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLHZ4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBtb25hY29EZWZlcnJlZDtlZGl0b3JEZWZlcnJlZD11dC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1rMih0aGlzLG8sYGZ1bmN0aW9uIGhlbGxvKCkgewoJYWxlcnQoJ0hlbGxvIHdvcmxkIScpOwp9YCk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29udGVudChDKXt0aGlzLiNlPUN9I3Q9KGsyKHRoaXMsbCksazIodGhpcyxkLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBsYW5ndWFnZShDKXt0aGlzLiN0PUN9I2E9KGsyKHRoaXMsdSksazIodGhpcyxiLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbGVQYXRoKEMpe3RoaXMuI2E9Q30jcz0oazIodGhpcyx2KSxrMih0aGlzLG0sbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KSk7Z2V0IGNvbnRlbnRTdWJqZWN0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbnRlbnRTdWJqZWN0KEMpe3RoaXMuI3M9Q30jaT0oazIodGhpcyxmKSxrMih0aGlzLE0sIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd29yZFdyYXAoQyl7dGhpcy4jaT1DfW1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPShrMih0aGlzLHopLG51bGwpO2lzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITE7Y29uc3RydWN0b3IoKXtzdXBlcigpLGppLnNldHVwRG9tVG9vbHMoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAjY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChDKXtzdXBlci5maXJzdFVwZGF0ZWQoQyk7bGV0IF89dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKSxPPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtJMWV9YDtpZighTi5tb25hY29EZWZlcnJlZCl7Ti5tb25hY29EZWZlcnJlZD11dC5zbWFydHByb21pc2UuZGVmZXIoKTtsZXQgaz1gJHtPfS9taW4vdnMvbG9hZGVyLmpzYCxTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1Muc3JjPWssUy5vbmxvYWQ9KCk9PntOLm1vbmFjb0RlZmVycmVkLnJlc29sdmUoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChTKX1hd2FpdCBOLm1vbmFjb0RlZmVycmVkLnByb21pc2Usd2luZG93LnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6YCR7T30vbWluL3ZzYH19KSx3aW5kb3cucmVxdWlyZShbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdLGFzeW5jKCk9PntsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxJPWsudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixQPXdpbmRvdy5tb25hY28sUj1udWxsO2lmKHRoaXMuZmlsZVBhdGgpe2xldCBWPVAuVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApO1I9UC5lZGl0b3IuZ2V0TW9kZWwoViksUj9SLnNldFZhbHVlKHRoaXMuY29udGVudCk6Uj1QLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxWKX1sZXQgSz1QLmVkaXRvci5jcmVhdGUoXyx7bW9kZWw6Unx8dm9pZCAwLHZhbHVlOlI/dm9pZCAwOnRoaXMuY29udGVudCxsYW5ndWFnZTpSP3ZvaWQgMDp0aGlzLmxhbmd1YWdlLHRoZW1lOkksdXNlU2hhZG93RE9NOiEwLGZvbnRTaXplOjE2LGF1dG9tYXRpY0xheW91dDohMCx3b3JkV3JhcDp0aGlzLndvcmRXcmFwLGhvdmVyOntlbmFibGVkOiEwLGRlbGF5OjMwMCxzdGlja3k6ITAsYWJvdmU6ITF9fSk7dGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1rLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFY9PntsZXQgVz1WPyJ2cyI6InZzLWRhcmsiO0sudXBkYXRlT3B0aW9ucyh7dGhlbWU6V30pfSksdGhpcy5lZGl0b3JEZWZlcnJlZC5yZXNvbHZlKEspfSk7bGV0ICQ9YXdhaXQoYXdhaXQgZmV0Y2goYCR7T30vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLEU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtFLnRleHRDb250ZW50PSQsdGhpcy5zaGFkb3dSb290LmFwcGVuZChFKTtsZXQgSD1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7SC5vbkRpZENoYW5nZU1vZGVsQ29udGVudChhc3luYyBrPT57aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsKXJldHVybjtsZXQgUz1ILmdldFZhbHVlKCk7dGhpcy5jb250ZW50U3ViamVjdC5uZXh0KFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtY2hhbmdlIix7ZGV0YWlsOlMsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pLHRoaXMuY29udGVudFN1YmplY3QubmV4dChILmdldFZhbHVlKCkpfWFzeW5jIHVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKTtsZXQgXz13aW5kb3cubW9uYWNvO2lmKF8pe2lmKEMuaGFzKCJmaWxlUGF0aCIpJiZ0aGlzLmZpbGVQYXRoKXtsZXQgTz1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2UsJD1fLlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKSxFPV8uZWRpdG9yLmdldE1vZGVsKCQpO0U/RS5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLEUuc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpOkU9Xy5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5jb250ZW50LHRoaXMubGFuZ3VhZ2UsJCksTy5nZXRNb2RlbCgpPy51cmkudG9TdHJpbmcoKSE9PSQudG9TdHJpbmcoKSYmTy5zZXRNb2RlbChFKTtyZXR1cm59aWYoQy5oYXMoImNvbnRlbnQiKSl7bGV0IE89YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO08uZ2V0VmFsdWUoKSE9PXRoaXMuY29udGVudCYmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxPLnNldFZhbHVlKHRoaXMuY29udGVudCksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExKX1pZihDLmhhcygibGFuZ3VhZ2UiKSl7bGV0ICQ9KGF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTskJiZfLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKCQsdGhpcy5sYW5ndWFnZSl9fX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpfWFzeW5jIHNldENvbnRlbnRFeHRlcm5hbChDLF89ITApe2xldCBPPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtpZihPLmdldFZhbHVlKCk9PT1DKXJldHVybjtsZXQgRT1fP08uZ2V0UG9zaXRpb24oKTpudWxsLEg9Xz9PLmdldFNlbGVjdGlvbnMoKTpudWxsLGs9Xz9PLmdldFNjcm9sbFRvcCgpOjAsUz1fP08uZ2V0U2Nyb2xsTGVmdCgpOjA7aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE8uc2V0VmFsdWUoQyksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExLF8pe2lmKEUpe2xldCBJPU8uZ2V0TW9kZWwoKSxQPUk/LmdldExpbmVDb3VudCgpfHwxLFI9TWF0aC5taW4oRS5saW5lTnVtYmVyLFApLEs9ST8uZ2V0TGluZU1heENvbHVtbihSKXx8MSxWPU1hdGgubWluKEUuY29sdW1uLEspO08uc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6Uixjb2x1bW46Vn0pfWlmKEgmJkgubGVuZ3RoPjApdHJ5e08uc2V0U2VsZWN0aW9ucyhIKX1jYXRjaHt9Ty5zZXRTY3JvbGxQb3NpdGlvbih7c2Nyb2xsVG9wOmssc2Nyb2xsTGVmdDpTfSl9fXN0YXRpY3trMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgWWQsSnIsVWcsQm90LEhvdD1nKCgpPT57RWkoKTtwZSgpO2h0KCk7UHUoKTtHYSgpO2J4KCk7bXIoKTtWZygpO1ZnKCk7WWQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEpyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxVZz1be2tleToidHlwZXNjcmlwdCIsbGFiZWw6IlR5cGVTY3JpcHQifSx7a2V5OiJqYXZhc2NyaXB0IixsYWJlbDoiSmF2YVNjcmlwdCJ9LHtrZXk6Impzb24iLGxhYmVsOiJKU09OIn0se2tleToiaHRtbCIsbGFiZWw6IkhUTUwifSx7a2V5OiJjc3MiLGxhYmVsOiJDU1MifSx7a2V5OiJzY3NzIixsYWJlbDoiU0NTUyJ9LHtrZXk6Im1hcmtkb3duIixsYWJlbDoiTWFya2Rvd24ifSx7a2V5OiJ5YW1sIixsYWJlbDoiWUFNTCJ9LHtrZXk6InhtbCIsbGFiZWw6IlhNTCJ9LHtrZXk6InNxbCIsbGFiZWw6IlNRTCJ9LHtrZXk6InB5dGhvbiIsbGFiZWw6IlB5dGhvbiJ9LHtrZXk6ImphdmEiLGxhYmVsOiJKYXZhIn0se2tleToiY3NoYXJwIixsYWJlbDoiQyMifSx7a2V5OiJjcHAiLGxhYmVsOiJDKysifSx7a2V5OiJnbyIsbGFiZWw6IkdvIn0se2tleToicnVzdCIsbGFiZWw6IlJ1c3QifSx7a2V5OiJzaGVsbCIsbGFiZWw6IlNoZWxsIn0se2tleToicGxhaW50ZXh0IixsYWJlbDoiUGxhaW4gVGV4dCJ9XSxCb3Q9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWNvZGUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXTt2YXIgSz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0Q29kZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBWPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLFlkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InZhbHVlImluIFcsImhhcyIpLGdldDppKFc9PlcudmFsdWUsImdldCIpLHNldDppKChXLG1lKT0+e1cudmFsdWU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbyxsKSxZZCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJsYW5ndWFnZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmxhbmd1YWdlPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGQsdSksWWQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImhlaWdodCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmhlaWdodCwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5oZWlnaHQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sYix2KSxZZCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJ3b3JkV3JhcCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLndvcmRXcmFwLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLndvcmRXcmFwPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LG0sZiksWWQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGluZU51bWJlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InNob3dMaW5lTnVtYmVycyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnNob3dMaW5lTnVtYmVycywiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5zaG93TGluZU51bWJlcnM9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sTSx6KSxZZCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sQyxfKSxZZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvcHlTdWNjZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjb3B5U3VjY2VzcyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNvcHlTdWNjZXNzLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmNvcHlTdWNjZXNzPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LCQsRSksWWQodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5lQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImxpbmVDb3VudCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmxpbmVDb3VudCwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5saW5lQ291bnQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sayxTKSxZZCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnNvclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjdXJzb3JQb3NpdGlvbiJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmN1cnNvclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmN1cnNvclBvc2l0aW9uPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LFAsUiksWWQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Vn0sbnVsbCx0KSxLPWE9ZS52YWx1ZSxWJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlZ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9SnIodGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVil7dGhpcy4jZT1WfSN0PShKcih0aGlzLGwpLEpyKHRoaXMsZCwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoVil7dGhpcy4jdD1WfSNhPShKcih0aGlzLHUpLEpyKHRoaXMsYiwiMjAwcHgiKSk7Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLiNhfXNldCBoZWlnaHQoVil7dGhpcy4jYT1WfSNzPShKcih0aGlzLHYpLEpyKHRoaXMsbSwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNzfXNldCB3b3JkV3JhcChWKXt0aGlzLiNzPVZ9I2k9KEpyKHRoaXMsZiksSnIodGhpcyxNLCEwKSk7Z2V0IHNob3dMaW5lTnVtYmVycygpe3JldHVybiB0aGlzLiNpfXNldCBzaG93TGluZU51bWJlcnMoVil7dGhpcy4jaT1WfSNyPShKcih0aGlzLHopLEpyKHRoaXMsQywhMSkpO2dldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oVil7dGhpcy4jcj1WfSNvPShKcih0aGlzLF8pLEpyKHRoaXMsJCwhMSkpO2dldCBjb3B5U3VjY2Vzcygpe3JldHVybiB0aGlzLiNvfXNldCBjb3B5U3VjY2VzcyhWKXt0aGlzLiNvPVZ9I249KEpyKHRoaXMsRSksSnIodGhpcyxrLDApKTtnZXQgbGluZUNvdW50KCl7cmV0dXJuIHRoaXMuI259c2V0IGxpbmVDb3VudChWKXt0aGlzLiNuPVZ9I2w9KEpyKHRoaXMsUyksSnIodGhpcyxQLHtsaW5lOjEsY29sdW1uOjF9KSk7Z2V0IGN1cnNvclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGN1cnNvclBvc2l0aW9uKFYpe3RoaXMuI2w9Vn1lZGl0b3JFbGVtZW50PShKcih0aGlzLFIpLG51bGwpO3N0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0idG9wIl0pIC5pbnB1dC13cmFwcGVyLAogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24gewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGNvbG9yOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAuZWRpdG9yLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIE1hdGNoIE1vbmFjbyBiYWNrZ3JvdW5kIHRvIHRpbGUgKi8KICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvOjpwYXJ0KGNvbnRhaW5lcikgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIEZvb3RlciAqLwogICAgICAuZWRpdG9yLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZm9vdGVyLWxlZnQsCiAgICAgIC5mb290ZXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXItc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBWPVVnLmZpbmQoVz0+Vy5rZXk9PT10aGlzLmxhbmd1YWdlKXx8VWdbMF07cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5oZWlnaHR9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWxlZnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMYW5ndWFnZURyb3Bkb3dufQogICAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlTGFuZ3VhZ2VCbHVyfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1YubGFiZWx9CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZXZyb25Eb3duIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgJHt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICR7VWcubWFwKFc9PndgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1vcHRpb24gJHtXLmtleT09PXRoaXMubGFuZ3VhZ2U/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHttZT0+dGhpcy5zZWxlY3RMYW5ndWFnZShtZSxXLmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7Vy5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImVkaXRvci1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbGVmdCI+CiAgICAgICAgICAgICAgPHNwYW4+TG4gJHt0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmV9LCBDb2wgJHt0aGlzLmN1cnNvclBvc2l0aW9uLmNvbHVtbn08L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXNlcGFyYXRvciI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4+JHt0aGlzLmxpbmVDb3VudH0gbGluZSR7dGhpcy5saW5lQ291bnQhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItcmlnaHQiPgogICAgICAgICAgICAgIDxzcGFuPiR7KFVnLmZpbmQoVz0+Vy5rZXk9PT10aGlzLmxhbmd1YWdlKXx8VWdbMF0pLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLHRoaXMuZWRpdG9yRWxlbWVudCl7dGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShVPT57dGhpcy52YWx1ZSE9PVUmJih0aGlzLnZhbHVlPVUsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfSk7bGV0IFY9YXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UsVz1WLmdldE1vZGVsKCk7VyYmKHRoaXMubGluZUNvdW50PVcuZ2V0TGluZUNvdW50KCksVy5vbkRpZENoYW5nZUNvbnRlbnQoKCk9Pnt0aGlzLmxpbmVDb3VudD1XLmdldExpbmVDb3VudCgpfSkpLFYub25EaWRDaGFuZ2VDdXJzb3JQb3NpdGlvbihVPT57dGhpcy5jdXJzb3JQb3NpdGlvbj17bGluZTpVLnBvc2l0aW9uLmxpbmVOdW1iZXIsY29sdW1uOlUucG9zaXRpb24uY29sdW1ufX0pO2xldCBtZT1hd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZG9tdG9vbHNQcm9taXNlLEI9aShVPT57bGV0IGhlPVU/IiNmZmZmZmYiOiIjMGEwYTBhIjtWLnVwZGF0ZU9wdGlvbnMoe30pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1saWdodCIse2Jhc2U6InZzIixpbmhlcml0OiEwLHJ1bGVzOltdLGNvbG9yczp7ImVkaXRvci5iYWNrZ3JvdW5kIjpoZX19KSx3aW5kb3cubW9uYWNvPy5lZGl0b3I/LmRlZmluZVRoZW1lPy4oImRlZXMtZGFyayIse2Jhc2U6InZzLWRhcmsiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOmhlfX0pLFYudXBkYXRlT3B0aW9ucyh7dGhlbWU6VT8iZGVlcy1saWdodCI6ImRlZXMtZGFyayJ9KX0sInVwZGF0ZUVkaXRvckJnIik7QihtZS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuKSxtZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShVPT57QihVKX0pfX10b2dnbGVMYW5ndWFnZURyb3Bkb3duKCl7dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSF0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW59aGFuZGxlTGFuZ3VhZ2VCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0hMX0sMTUwKX1hc3luYyBzZWxlY3RMYW5ndWFnZShWLFcpe2lmKFYucHJldmVudERlZmF1bHQoKSx0aGlzLmxhbmd1YWdlPVcsdGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExLHRoaXMuZWRpdG9yRWxlbWVudCl7dGhpcy5lZGl0b3JFbGVtZW50Lmxhbmd1YWdlPVc7bGV0IEI9KGF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO0ImJndpbmRvdy5tb25hY28uZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoQixXKX19dG9nZ2xlV29yZFdyYXAoKXt0aGlzLndvcmRXcmFwPXRoaXMud29yZFdyYXA9PT0ib24iPyJvZmYiOiJvbiIsdGhpcy51cGRhdGVFZGl0b3JPcHRpb24oIndvcmRXcmFwIix0aGlzLndvcmRXcmFwKX10b2dnbGVMaW5lTnVtYmVycygpe3RoaXMuc2hvd0xpbmVOdW1iZXJzPSF0aGlzLnNob3dMaW5lTnVtYmVycyx0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigibGluZU51bWJlcnMiLHRoaXMuc2hvd0xpbmVOdW1iZXJzPyJvbiI6Im9mZiIpfWFzeW5jIHVwZGF0ZUVkaXRvck9wdGlvbihWLFcpe3RoaXMuZWRpdG9yRWxlbWVudCYmKGF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHtbVl06V30pfWFzeW5jIGNvcHlDb2RlKCl7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMudmFsdWUpLHRoaXMuY29weVN1Y2Nlc3M9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuY29weVN1Y2Nlc3M9ITF9LDJlMyl9Y2F0Y2goVil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHkgY29kZToiLFYpfX1oYW5kbGVDb250ZW50Q2hhbmdlKFYpe2xldCBXPVYuZGV0YWlsO3RoaXMudmFsdWUhPT1XJiYodGhpcy52YWx1ZT1XLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1hc3luYyBvcGVuRnVsbHNjcmVlbigpe2xldCBWPXRoaXMudmFsdWUsVz1udWxsLG1lPXRoaXMubGFuZ3VhZ2UsQj10aGlzLndvcmRXcmFwLFU9dGhpcy5zaG93TGluZU51bWJlcnMsaGU9ITEsRj0hMSxqPWkoKCk9PntsZXQgWD1VZy5maW5kKFo9Ploua2V5PT09bWUpO3JldHVybiBYP1gubGFiZWw6IlR5cGVTY3JpcHQifSwiZ2V0TGFuZ3VhZ2VMYWJlbCIpLHVlPWkoWD0+e2xldCBaPVguc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsLXRvb2xiYXIiKTtpZighWilyZXR1cm47bGV0IHllPVoucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLWJ1dHRvbiBzcGFuIik7eWUmJih5ZS50ZXh0Q29udGVudD1qKCkpO2xldCBxPVoucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik7cSYmcS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLEI9PT0ib24iKTtsZXQgQT1aLnF1ZXJ5U2VsZWN0b3IoIi5saW5lcy1idG4iKTtBJiZBLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsVSk7bGV0IHNlPVoucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIiksb2U9c2U/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpO3NlJiZvZSYmKHNlLmNsYXNzTGlzdC50b2dnbGUoInN1Y2Nlc3MiLEYpLG9lLmljb249Rj8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkiKTtsZXQgYWU9Wi5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtZHJvcGRvd24iKTthZSYmKGFlLnN0eWxlLmRpc3BsYXk9aGU/ImJsb2NrIjoibm9uZSIpfSwidXBkYXRlVG9vbGJhclVJIiksbGU9aShYPT57bGV0IFo9WC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwtZm9vdGVyIik7aWYoIVopcmV0dXJuO2xldCB5ZT1aLnF1ZXJ5U2VsZWN0b3IoIi5mb290ZXItY3Vyc29yIikscT1aLnF1ZXJ5U2VsZWN0b3IoIi5mb290ZXItbGluZXMiKSxBPVoucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1sYW5nIik7eWUmJih5ZS50ZXh0Q29udGVudD1gTG4gJHtRfSwgQ29sICR7aWV9YCkscSYmKHEudGV4dENvbnRlbnQ9YCR7dGV9IGxpbmUke3RlIT09MT8icyI6IiJ9YCksQSYmKEEudGV4dENvbnRlbnQ9aigpKX0sInVwZGF0ZUZvb3RlclVJIiksUT0xLGllPTEsdGU9Vi5zcGxpdChgCmApLmxlbmd0aCxlZT1hd2FpdCBpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOnRoaXMubGFiZWx8fCJDb2RlIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLGNvbnRlbnRQYWRkaW5nOjAsY29udGVudDp3YAogICAgICAgIDxzdHlsZT4KICAgICAgICAgIC5tb2RhbC10b29sYmFyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1mb290ZXIgLmZvb3Rlci1sZWZ0LAogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLXJpZ2h0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLXNlcGFyYXRvciB7CiAgICAgICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtdG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWxlZnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIj4KICAgICAgICAgICAgICAgIDxzcGFuPiR7aigpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZXZyb25Eb3duIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAke1VnLm1hcChYPT53YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke1gua2V5PT09bWU/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke1gua2V5fSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7WC5sYWJlbH0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItcmlnaHQiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiB3cmFwLWJ0biAke0I9PT0ib24iPyJhY3RpdmUiOiIifSIgdGl0bGU9IldvcmQgV3JhcCI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6V3JhcFRleHQifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24gbGluZXMtYnRuICR7VT8iYWN0aXZlIjoiIn0iIHRpdGxlPSJMaW5lIE51bWJlcnMiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkhhc2gifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24gY29weS1idG4iIHRpdGxlPSJDb3B5IENvZGUiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWVkaXRvci13cmFwcGVyIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgLmNvbnRlbnQ9JHtWfQogICAgICAgICAgICAubGFuZ3VhZ2U9JHttZX0KICAgICAgICAgICAgLndvcmRXcmFwPSR7Qn0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxlZnQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWN1cnNvciI+TG4gJHtRfSwgQ29sICR7aWV9PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItc2VwYXJhdG9yIj48L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1saW5lcyI+JHt0ZX0gbGluZSR7dGUhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1yaWdodCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290ZXItbGFuZyI+JHtqKCl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIFg9Pnthd2FpdCBYLmRlc3Ryb3koKX0sImFjdGlvbiIpfSx7bmFtZToiU2F2ZSAmIENsb3NlIixhY3Rpb246aShhc3luYyBYPT57aWYoVz1YLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLFcpe2xldCB5ZT0oYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRWYWx1ZSgpO3RoaXMuc2V0VmFsdWUoeWUpfWF3YWl0IFguZGVzdHJveSgpfSwiYWN0aW9uIil9XX0pO2lmKGF3YWl0IG5ldyBQcm9taXNlKFg9PnNldFRpbWVvdXQoWCwxMDApKSxXPWVlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLFcpe2xldCBYPWF3YWl0IFcuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxaPWF3YWl0IFcuZG9tdG9vbHNQcm9taXNlLHllPWkoQT0+e2xldCBzZT1BPyIjZmZmZmZmIjoiIzBhMGEwYSI7d2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWxpZ2h0Iix7YmFzZToidnMiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOnNlfX0pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1kYXJrIix7YmFzZToidnMtZGFyayIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6c2V9fSksWC51cGRhdGVPcHRpb25zKHt0aGVtZTpBPyJkZWVzLWxpZ2h0IjoiZGVlcy1kYXJrIn0pfSwiYXBwbHlNb2RhbFRoZW1lIik7eWUoWi50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuKSxaLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEE9Pnt5ZShBKX0pLFgub25EaWRDaGFuZ2VDdXJzb3JQb3NpdGlvbihBPT57UT1BLnBvc2l0aW9uLmxpbmVOdW1iZXIsaWU9QS5wb3NpdGlvbi5jb2x1bW4sbGUoZWUpfSk7bGV0IHE9WC5nZXRNb2RlbCgpO3EmJih0ZT1xLmdldExpbmVDb3VudCgpLGxlKGVlKSxxLm9uRGlkQ2hhbmdlQ29udGVudCgoKT0+e3RlPXEuZ2V0TGluZUNvdW50KCksbGUoZWUpfSkpfWxldCBrZT1lZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwtdG9vbGJhciIpO2lmKGtlKXtsZXQgWD1rZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIik7WD8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57aGU9IWhlLHVlKGVlKX0pO2xldCBaPWtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5sYW5ndWFnZS1vcHRpb24iKTtaLmZvckVhY2goc2U9PntzZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2xldCBvZT1zZS5kYXRhc2V0Lmxhbmc7aWYob2UmJlcpe21lPW9lLGhlPSExO2xldCBUZT0oYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO1RlJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKFRlLG9lKSxaLmZvckVhY2goUmU9PlJlLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIikpLHNlLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIiksdWUoZWUpLGxlKGVlKX19KX0pLGtlLnF1ZXJ5U2VsZWN0b3IoIi53cmFwLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e0I9Qj09PSJvbiI/Im9mZiI6Im9uIixXJiYoYXdhaXQgVy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHt3b3JkV3JhcDpCfSksdWUoZWUpfSksa2UucXVlcnlTZWxlY3RvcigiLmxpbmVzLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e1U9IVUsVyYmKGF3YWl0IFcuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7bGluZU51bWJlcnM6VT8ib24iOiJvZmYifSksdWUoZWUpfSksa2UucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57aWYoVyl7bGV0IG9lPShhd2FpdCBXLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG9lKSxGPSEwLHVlKGVlKSxzZXRUaW1lb3V0KCgpPT57Rj0hMSx1ZShlZSl9LDJlMyl9Y2F0Y2goYWUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5IGNvZGU6IixhZSl9fX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzZT0+e2hlJiYhWD8uY29udGFpbnMoc2UudGFyZ2V0KSYmKGhlPSExLHVlKGVlKSl9LHtvbmNlOiEwfSl9fWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoVil7dGhpcy52YWx1ZT1WLHRoaXMuZWRpdG9yRWxlbWVudCYmKHRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50PVYsdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UudGhlbihXPT57Vy5nZXRWYWx1ZSgpIT09ViYmVy5zZXRWYWx1ZShWKX0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1zdGF0aWN7SnIoYSx0KX19O3JldHVybiBLPWF9KSgpfSk7dmFyIHViYSxwYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO3FvdCgpO3ViYT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kYXRlLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9Pntjb25zb2xlLmxvZygiQmFzaWMgZGF0ZSBzZWxlY3RlZDoiLHQudGFyZ2V0LnZhbHVlKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgRGF0ZSBQaWNrZXIifSAuc3VidGl0bGU9JHsiU2ltcGxlIGRhdGUgc2VsZWN0aW9uIHdpdGhvdXQgdGltZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJTZWxlY3QgRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDaG9vc2UgYSBkYXRlIGZyb20gdGhlIGNhbGVuZGFyIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iRXZlbnQgRGF0ZSAmIFRpbWUiXScpLHQ9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkFwcG9pbnRtZW50Il0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldC52YWx1ZTtjb25zb2xlLmxvZygiMjRoIGZvcm1hdCBkYXRldGltZToiLHIpfSkpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCByPWEudGFyZ2V0LnZhbHVlO2NvbnNvbGUubG9nKCIxMmggZm9ybWF0IGRhdGV0aW1lOiIscil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgYW5kIFRpbWUgU2VsZWN0aW9uIn0gLnN1YnRpdGxlPSR7IkRhdGUgcGlja2VycyB3aXRoIHRpbWUgc2VsZWN0aW9uIGluIGRpZmZlcmVudCBmb3JtYXRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IERhdGUgJiBUaW1lIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBib3RoIGRhdGUgYW5kIHRpbWUgKDI0LWhvdXIgZm9ybWF0KSIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJBcHBvaW50bWVudCIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJEYXRlIGFuZCB0aW1lIHdpdGggQU0vUE0gc2VsZWN0b3IgKDE1LW1pbnV0ZSBpbmNyZW1lbnRzKSIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIxMmgiCiAgICAgICAgICAubWludXRlSW5jcmVtZW50PSR7MTV9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQ7Y29uc29sZS5sb2coYCR7ci5sYWJlbH0gdmFsdWU6YCxyLnZhbHVlKTtsZXQgbj1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7biYmY29uc29sZS5sb2coYCR7ci5sYWJlbH0gZm9ybWF0dGVkOmAsbi52YWx1ZSl9KSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVGltZXpvbmUgU3VwcG9ydCJ9IC5zdWJ0aXRsZT0keyJEYXRlIGFuZCB0aW1lIHNlbGVjdGlvbiB3aXRoIHRpbWV6b25lIGF3YXJlbmVzcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIFRpbWUgKHdpdGggVGltZXpvbmUpIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBhIGRhdGUvdGltZSBhbmQgdGltZXpvbmUgZm9yIHRoZSBtZWV0aW5nIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIC5lbmFibGVUaW1lem9uZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgICAgdGltZXpvbmU9IkFtZXJpY2EvTmV3X1lvcmsiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJHbG9iYWwgRXZlbnQgU2NoZWR1bGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2NoZWR1bGUgYW4gZXZlbnQgYWNyb3NzIGRpZmZlcmVudCB0aW1lem9uZXMiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIxMmgiCiAgICAgICAgICB0aW1lem9uZT0iRXVyb3BlL0xvbmRvbiIKICAgICAgICAgIC5taW51dGVJbmNyZW1lbnQ9JHszMH0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9PntsZXQgYT10LnRhcmdldC52YWx1ZTtpZihhKXtsZXQgcj1uZXcgRGF0ZShhKSxuPW5ldyBEYXRlLG89TWF0aC5mbG9vcigoci5nZXRUaW1lKCktbi5nZXRUaW1lKCkpLygxZTMqNjAqNjAqMjQpKTtjb25zb2xlLmxvZyhgU2VsZWN0ZWQgZGF0ZSBpcyAke299IGRheXMgZnJvbSB0b2RheWApfX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBSYW5nZSBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaW1pdCBzZWxlY3RhYmxlIGRhdGVzIHdpdGggbWluIGFuZCBtYXggdmFsdWVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkZ1dHVyZSBEYXRlIE9ubHkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2FuIG9ubHkgc2VsZWN0IGRhdGVzIGZyb20gdG9kYXkgdG8gOTAgZGF5cyBpbiB0aGUgZnV0dXJlIgogICAgICAgICAgLm1pbkRhdGU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICAubWF4RGF0ZT0ke25ldyBEYXRlKERhdGUubm93KCkrMjE2MCo2MCo2MCoxZTMpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXsiREQvTU0vWVlZWSI6IkV1cm9wZWFuIiwiTU0vREQvWVlZWSI6IlVTIiwiWVlZWS1NTS1ERCI6IklTTyJ9O3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChyPT57bGV0IG49ci50YXJnZXQsbz1uLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7byYmY29uc29sZS5sb2coYCR7bi5sYWJlbH0gZm9ybWF0OmAsby52YWx1ZSl9KSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBGb3JtYXRzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBkYXRlIGRpc3BsYXkgZm9ybWF0cyBmb3IgdmFyaW91cyByZWdpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJFdXJvcGVhbiBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9IkREL01NL1lZWVkiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iVVMgRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJNTS9ERC9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IklTTyBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9IllZWVktTU0tREQiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlcltyZXF1aXJlZF0iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57ZS5nZXRWYWx1ZSgpfHxjb25zb2xlLmxvZygiUmVxdWlyZWQgZGF0ZSBmaWVsZCBpcyBlbXB0eSIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGFuZCBkaXNhYmxlZCBzdGF0ZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQmlydGggRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VsZWN0IHlvdXIgYmlydGggZGF0ZSIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkRpc2FibGVkIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBjYW5ub3QgYmUgZWRpdGVkIgogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJVUyBDYWxlbmRhciJdJyksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iRVUgQ2FsZW5kYXIiXScpO2UmJmNvbnNvbGUubG9nKCJVUyBDYWxlbmRhciBzdGFydHMgb24gU3VuZGF5ICgwKSIpLHQmJmNvbnNvbGUubG9nKCJFVSBDYWxlbmRhciBzdGFydHMgb24gTW9uZGF5ICgxKSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciBDdXN0b21pemF0aW9uIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB3ZWVrIHN0YXJ0IGRheXMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iVVMgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBTdW5kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHswfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJFVSBDYWxlbmRhciIKICAgICAgICAgICAgZGVzY3JpcHRpb249IldlZWsgc3RhcnRzIG9uIE1vbmRheSIKICAgICAgICAgICAgLndlZWtTdGFydHNPbj0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9aSgoKT0+e2xldCBhPVtdLHI9bmV3IERhdGUsbj1yLmdldEZ1bGxZZWFyKCksbz1yLmdldE1vbnRoKCksbD1uZXcgRGF0ZShuLG8sMSk7Zm9yKDtsLmdldE1vbnRoKCk9PT1vOykobC5nZXREYXkoKT09PTB8fGwuZ2V0RGF5KCk9PT02KSYmYS5wdXNoKG5ldyBEYXRlKGwpLnRvSVNPU3RyaW5nKCkpLGwuc2V0RGF0ZShsLmdldERhdGUoKSsxKTtyZXR1cm4gYX0sImdlbmVyYXRlV2Vla2VuZHMiKSx0PXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7dCYmKHQuZGlzYWJsZWREYXRlcz1lKCksY29uc29sZS5sb2coIkRpc2FibGVkIHdlZWtlbmQgZGF0ZXMgZm9yIGN1cnJlbnQgbW9udGgiKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRpc2FibGVkIERhdGVzIn0gLnN1YnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggc3BlY2lmaWMgZGF0ZXMgZGlzYWJsZWQgKHdlZWtlbmRzIGluIGN1cnJlbnQgbW9udGgpIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkF2YWlsYWJpbGl0eSBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrZW5kcyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBjdXJyZW50IG1vbnRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1uZXcgRGF0ZSx0PWUuZ2V0TW9udGgoKSxhPWUuZ2V0RnVsbFllYXIoKSxyPVt7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2UuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlRlYW0gTWVldGluZyIsdHlwZToiaW5mbyIsY291bnQ6Mn0se2RhdGU6YCR7YX0tJHsodCsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUHJvamVjdCBEZWFkbGluZSIsdHlwZToid2FybmluZyJ9LHtkYXRlOmAke2F9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlJlbGVhc2UgRGF5Iix0eXBlOiJzdWNjZXNzIn0se2RhdGU6YCR7YX0tJHsodCsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrNSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVXJnZW50IEZpeCBSZXF1aXJlZCIsdHlwZToiZXJyb3IifSx7ZGF0ZTpgJHthfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs3KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJNdWx0aXBsZSBFdmVudHMgVG9kYXkiLHR5cGU6ImluZm8iLGNvdW50OjV9LHtkYXRlOmAke2F9LSR7KHQrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LTE1YCx0aXRsZToiRnV0dXJlIFBsYW5uaW5nIFNlc3Npb24iLHR5cGU6ImluZm8ifV0sbj1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO24mJihuLmV2ZW50cz1yLGNvbnNvbGUubG9nKCJDYWxlbmRhciBldmVudHMgbG9hZGVkOiIscikpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciB3aXRoIEV2ZW50cyJ9IC5zdWJ0aXRsZT0keyJWaXN1YWwgZmVlZGJhY2sgZm9yIHNjaGVkdWxlZCBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF5cyB3aXRoIGNvbG9yZWQgZG90cyBoYXZlIGV2ZW50cy4gSG92ZXIgdG8gc2VlIGRldGFpbHMuIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+RXZlbnQgTGVnZW5kOjwvc3Ryb25nPjxicj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzA5NjlkYTsiPuKXjyBJbmZvPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjZDI5OTIyOyI+4pePIFdhcm5pbmc8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMyZWEwNDM7Ij7il48gU3VjY2Vzczwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2NmMjIyZTsiPuKXjyBFcnJvcjwvc3Bhbj48YnI+CiAgICAgICAgICA8ZW0+RGF5cyB3aXRoIG1vcmUgdGhhbiAzIGV2ZW50cyBzaG93IGEgY291bnQgYmFkZ2U8L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiNldmVudC1vdXRwdXQiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQsbj1yLnZhbHVlO2lmKG4pe2xldCBvPW5ldyBEYXRlKG4pLHA9ci5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGF0ZS1pbnB1dCIpPy52YWx1ZXx8Ik4vQSI7dC5pbm5lckhUTUw9YAogICAgICAgICAgICAgIDxzdHJvbmc+RXZlbnQgdHJpZ2dlcmVkITwvc3Ryb25nPjxicj4KICAgICAgICAgICAgICBJU08gVmFsdWU6ICR7bn08YnI+CiAgICAgICAgICAgICAgRm9ybWF0dGVkOiAke3B9PGJyPgogICAgICAgICAgICAgIERhdGUgb2JqZWN0OiAke28udG9Mb2NhbGVTdHJpbmcoKX0KICAgICAgICAgICAgYH1lbHNlIHQuaW5uZXJIVE1MPSI8ZW0+RGF0ZSBjbGVhcmVkPC9lbT4ifSkpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiRGF0ZXBpY2tlciBsb3N0IGZvY3VzIil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkV2ZW50IEhhbmRsaW5nIn0gLnN1YnRpdGxlPSR7IkludGVyYWN0aXZlIGRlbW9uc3RyYXRpb24gb2YgY2hhbmdlIGV2ZW50cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEZW1vIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBhIGRhdGUgdG8gc2VlIHRoZSBldmVudCBkZXRhaWxzIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJldmVudC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U2VsZWN0IGEgZGF0ZSB0byBzZWUgZXZlbnQgZGV0YWlscy4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBoYmEsZmJhPWcoKCk9PntwZSgpO0VpKCk7aGJhPVsuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpmb2N1cywKICAgICAgLmRhdGUtaW5wdXQub3BlbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX0sCiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5pY29uLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyID4gKiB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQogICAgYF19KTt2YXIgbWJhLGdiYT1nKCgpPT57cGUoKTttYmE9aShzPT53YAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7cy5sYWJlbH0gLmluZm9UZXh0PSR7cy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7cy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtY29udGFpbmVyIj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZGF0ZS1pbnB1dCAke3MuaXNPcGVuZWQ/Im9wZW4iOiIifSIKICAgICAgICAgICAgICAudmFsdWU9JHtzLmZvcm1hdERhdGUocy52YWx1ZSl9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7cy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtzLmRpc2FibGVkfQogICAgICAgICAgICAgIEBjbGljaz0ke3MudG9nZ2xlQ2FsZW5kYXJ9CiAgICAgICAgICAgICAgQGtleWRvd249JHtzLmhhbmRsZUtleWRvd259CiAgICAgICAgICAgICAgQGlucHV0PSR7cy5oYW5kbGVNYW51YWxJbnB1dH0KICAgICAgICAgICAgICBAYmx1cj0ke3MuaGFuZGxlSW5wdXRCbHVyfQogICAgICAgICAgICAgIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAke3MudmFsdWU/IjY0cHgiOiI0MHB4In0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tY29udGFpbmVyIj4KICAgICAgICAgICAgICAke3MudmFsdWUmJiFzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbGVhci1idXR0b24iIEBjbGljaz0ke3MuY2xlYXJWYWx1ZX0gdGl0bGU9IkNsZWFyIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6eCIgaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FsZW5kYXItaWNvbiIgaWNvbj0ibHVjaWRlOmNhbGVuZGFyIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlckRhdGVwaWNrZXIiKX0pO3ZhciBQcixEYSxqb3QsVm90PWcoKCk9PntwZSgpO2t0KCk7R24oKTtodCgpO3YyKCk7R2EoKTtQcj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRGE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGpvdD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtZGF0ZXBpY2tlci1wb3B1cCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdO3ZhciBDZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0RGF0ZXBpY2tlclBvcHVwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IHZlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe2F0dHJpYnV0ZTohMX0pXSxwPVtMKHthdHRyaWJ1dGU6ITF9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6U3RyaW5nfSldLEk9W0woe3R5cGU6QXJyYXl9KV0sSz1bTCh7dHlwZTpCb29sZWFufSldLG1lPVtMKHt0eXBlOlN0cmluZ30pXSxoZT1bTCh7dHlwZTpBcnJheX0pXSx1ZT1bTCh7dHlwZTpCb29sZWFufSldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLFByKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJpZ2dlclJlY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0cmlnZ2VyUmVjdCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUudHJpZ2dlclJlY3Q9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LG8sbCksUHIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im93bmVyQ29tcG9uZW50ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUub3duZXJDb21wb25lbnQsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5vd25lckNvbXBvbmVudD1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sZCx1KSxQcih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJlbmFibGVUaW1lImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZW5hYmxlVGltZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLmVuYWJsZVRpbWU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LGIsdiksUHIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4idGltZUZvcm1hdCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRpbWVGb3JtYXQsImdldCIpLHNldDppKChiZSxFZSk9PntiZS50aW1lRm9ybWF0PUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxtLGYpLFByKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWludXRlSW5jcmVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4ibWludXRlSW5jcmVtZW50ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUubWludXRlSW5jcmVtZW50LCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWludXRlSW5jcmVtZW50PUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxNLHopLFByKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2Vla1N0YXJ0c09uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4id2Vla1N0YXJ0c09uImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUud2Vla1N0YXJ0c09uLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUud2Vla1N0YXJ0c09uPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxDLF8pLFByKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+Im1pbkRhdGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5taW5EYXRlLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUubWluRGF0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sJCxFKSxQcih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJtYXhEYXRlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUubWF4RGF0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm1heERhdGU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LGssUyksUHIodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZGlzYWJsZWREYXRlcyJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmRpc2FibGVkRGF0ZXMsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5kaXNhYmxlZERhdGVzPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxQLFIpLFByKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJlbmFibGVUaW1lem9uZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmVuYWJsZVRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuZW5hYmxlVGltZXpvbmU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFYsVyksUHIodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0aW1lem9uZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUudGltZXpvbmU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LEIsVSksUHIodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZXZlbnRzImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZXZlbnRzLCJnZXQiKSxzZXQ6aSgoYmUsRWUpPT57YmUuZXZlbnRzPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxGLGopLFByKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJvcGVuc1RvVG9wImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUub3BlbnNUb1RvcCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm9wZW5zVG9Ub3A9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LGxlLFEpLFByKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InNlbGVjdGVkRGF0ZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnNlbGVjdGVkRGF0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnNlbGVjdGVkRGF0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sdGUsZWUpLFByKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4idmlld0RhdGUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS52aWV3RGF0ZSwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnZpZXdEYXRlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxYLFopLFByKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSG91ciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InNlbGVjdGVkSG91ciJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnNlbGVjdGVkSG91ciwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLnNlbGVjdGVkSG91cj1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0scSxBKSxQcih0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+InNlbGVjdGVkTWludXRlImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuc2VsZWN0ZWRNaW51dGUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS5zZWxlY3RlZE1pbnV0ZT1FZX0sInNldCIpfSxtZXRhZGF0YTp2ZX0sb2UsYWUpLFByKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJtZW51WkluZGV4ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUubWVudVpJbmRleCwiZ2V0Iiksc2V0OmkoKGJlLEVlKT0+e2JlLm1lbnVaSW5kZXg9RWV9LCJzZXQiKX0sbWV0YWRhdGE6dmV9LFJlLEJlKSxQcih0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4idmlzaWJsZSJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnZpc2libGUsImdldCIpLHNldDppKChiZSxFZSk9PntiZS52aXNpYmxlPUVlfSwic2V0Iil9LG1ldGFkYXRhOnZlfSxEZSxfZSksUHIobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6dmV9LG51bGwsdCksQ2U9YT1lLnZhbHVlLHZlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZlfSl9I2U9RGEodGhpcyxvLG51bGwpO2dldCB0cmlnZ2VyUmVjdCgpe3JldHVybiB0aGlzLiNlfXNldCB0cmlnZ2VyUmVjdCh2ZSl7dGhpcy4jZT12ZX0jdD0oRGEodGhpcyxsKSxEYSh0aGlzLGQsbnVsbCkpO2dldCBvd25lckNvbXBvbmVudCgpe3JldHVybiB0aGlzLiN0fXNldCBvd25lckNvbXBvbmVudCh2ZSl7dGhpcy4jdD12ZX0jYT0oRGEodGhpcyx1KSxEYSh0aGlzLGIsITEpKTtnZXQgZW5hYmxlVGltZSgpe3JldHVybiB0aGlzLiNhfXNldCBlbmFibGVUaW1lKHZlKXt0aGlzLiNhPXZlfSNzPShEYSh0aGlzLHYpLERhKHRoaXMsbSwiMjRoIikpO2dldCB0aW1lRm9ybWF0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRpbWVGb3JtYXQodmUpe3RoaXMuI3M9dmV9I2k9KERhKHRoaXMsZiksRGEodGhpcyxNLDEpKTtnZXQgbWludXRlSW5jcmVtZW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1pbnV0ZUluY3JlbWVudCh2ZSl7dGhpcy4jaT12ZX0jcj0oRGEodGhpcyx6KSxEYSh0aGlzLEMsMSkpO2dldCB3ZWVrU3RhcnRzT24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgd2Vla1N0YXJ0c09uKHZlKXt0aGlzLiNyPXZlfSNvPShEYSh0aGlzLF8pLERhKHRoaXMsJCwiIikpO2dldCBtaW5EYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IG1pbkRhdGUodmUpe3RoaXMuI289dmV9I249KERhKHRoaXMsRSksRGEodGhpcyxrLCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWF4RGF0ZSh2ZSl7dGhpcy4jbj12ZX0jbD0oRGEodGhpcyxTKSxEYSh0aGlzLFAsW10pKTtnZXQgZGlzYWJsZWREYXRlcygpe3JldHVybiB0aGlzLiNsfXNldCBkaXNhYmxlZERhdGVzKHZlKXt0aGlzLiNsPXZlfSNjPShEYSh0aGlzLFIpLERhKHRoaXMsViwhMSkpO2dldCBlbmFibGVUaW1lem9uZSgpe3JldHVybiB0aGlzLiNjfXNldCBlbmFibGVUaW1lem9uZSh2ZSl7dGhpcy4jYz12ZX0jZD0oRGEodGhpcyxXKSxEYSh0aGlzLEIsSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lKSk7Z2V0IHRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHRpbWV6b25lKHZlKXt0aGlzLiNkPXZlfSN1PShEYSh0aGlzLFUpLERhKHRoaXMsRixbXSkpO2dldCBldmVudHMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZXZlbnRzKHZlKXt0aGlzLiN1PXZlfSNwPShEYSh0aGlzLGopLERhKHRoaXMsbGUsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNwfXNldCBvcGVuc1RvVG9wKHZlKXt0aGlzLiNwPXZlfSNoPShEYSh0aGlzLFEpLERhKHRoaXMsdGUsbnVsbCkpO2dldCBzZWxlY3RlZERhdGUoKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2VsZWN0ZWREYXRlKHZlKXt0aGlzLiNoPXZlfSNmPShEYSh0aGlzLGVlKSxEYSh0aGlzLFgsbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgdmlld0RhdGUodmUpe3RoaXMuI2Y9dmV9I209KERhKHRoaXMsWiksRGEodGhpcyxxLDApKTtnZXQgc2VsZWN0ZWRIb3VyKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkSG91cih2ZSl7dGhpcy4jbT12ZX0jZz0oRGEodGhpcyxBKSxEYSh0aGlzLG9lLDApKTtnZXQgc2VsZWN0ZWRNaW51dGUoKXtyZXR1cm4gdGhpcy4jZ31zZXQgc2VsZWN0ZWRNaW51dGUodmUpe3RoaXMuI2c9dmV9I2I9KERhKHRoaXMsYWUpLERhKHRoaXMsUmUsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYn1zZXQgbWVudVpJbmRleCh2ZSl7dGhpcy4jYj12ZX0jdj0oRGEodGhpcyxCZSksRGEodGhpcyxEZSwhMSkpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHZpc2libGUodmUpe3RoaXMuI3Y9dmV9d2luZG93TGF5ZXI9KERhKHRoaXMsX2UpLG51bGwpO2lzRGVzdHJveWluZz0hMTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMSkiLCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4yKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogMjgwcHg7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuc2hvdyB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIENhbGVuZGFyIEhlYWRlciAqLwogICAgICAuY2FsZW5kYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb250aC15ZWFyLWRpc3BsYXkgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgZmxleDogMTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdlZWtkYXkgaGVhZGVycyAqLwogICAgICAud2Vla2RheXMgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC53ZWVrZGF5IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgcGFkZGluZzogMCAwIDhweCAwOwogICAgICB9CgogICAgICAvKiBEYXlzIGdyaWQgKi8KICAgICAgLmRheXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZGF5IHsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmRheTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRheS5vdGhlci1tb250aCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuZGF5LnRvZGF5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuZGlzYWJsZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAvKiBFdmVudCBpbmRpY2F0b3JzICovCiAgICAgIC5ldmVudC1pbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuaW5mbyB7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjExIDcwJSA1MiUpIiwiaHNsKDIxMSA3MCUgNjIlKSIpfTsgfQogICAgICAuZXZlbnQtZG90Lndhcm5pbmcgeyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkwJSA0NSUpIiwiaHNsKDQ1IDkwJSA1NSUpIil9OyB9CiAgICAgIC5ldmVudC1kb3Quc3VjY2VzcyB7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDY5JSA0NSUpIiwiaHNsKDE0MiA2OSUgNTUlKSIpfTsgfQogICAgICAuZXZlbnQtZG90LmVycm9yIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA1MSUpIiwiaHNsKDAgNzIlIDYxJSkiKX07IH0KCiAgICAgIC5ldmVudC1jb3VudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMnB4OwogICAgICAgIHJpZ2h0OiAycHg7CiAgICAgICAgbWluLXdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmV2ZW50LXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLmRheS5oYXMtZXZlbnQ6aG92ZXIgLmV2ZW50LXRvb2x0aXAgeyBvcGFjaXR5OiAxOyB9CgogICAgICAvKiBUaW1lIHNlbGVjdG9yICovCiAgICAgIC50aW1lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAudGltZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDY1cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlcGFyYXRvciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1zZWxlY3RvciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyBtYXJnaW4tbGVmdDogOHB4OyB9CgogICAgICAuYW0tcG0tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uOmhvdmVyOm5vdCguc2VsZWN0ZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAvKiBUaW1lem9uZSBzZWxlY3RvciAqLwogICAgICAudGltZXpvbmUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLmNhbGVuZGFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSAzMC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KICAgIGBdO3N0YXRpYyBNT05USF9OQU1FUz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07c3RhdGljIFRJTUVaT05FUz1be3ZhbHVlOiJVVEMiLGxhYmVsOiJVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKSJ9LHt2YWx1ZToiQW1lcmljYS9OZXdfWW9yayIsbGFiZWw6IkVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0NoaWNhZ28iLGxhYmVsOiJDZW50cmFsIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9EZW52ZXIiLGxhYmVsOiJNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGxhYmVsOiJQYWNpZmljIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiRXVyb3BlL0xvbmRvbiIsbGFiZWw6IkxvbmRvbiJ9LHt2YWx1ZToiRXVyb3BlL1BhcmlzIixsYWJlbDoiUGFyaXMifSx7dmFsdWU6IkV1cm9wZS9CZXJsaW4iLGxhYmVsOiJCZXJsaW4ifSx7dmFsdWU6IkV1cm9wZS9Nb3Njb3ciLGxhYmVsOiJNb3Njb3cifSx7dmFsdWU6IkFzaWEvRHViYWkiLGxhYmVsOiJEdWJhaSJ9LHt2YWx1ZToiQXNpYS9Lb2xrYXRhIixsYWJlbDoiSW5kaWEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9TaGFuZ2hhaSIsbGFiZWw6IkNoaW5hIFN0YW5kYXJkIFRpbWUifSx7dmFsdWU6IkFzaWEvVG9reW8iLGxhYmVsOiJUb2t5byJ9LHt2YWx1ZToiQXVzdHJhbGlhL1N5ZG5leSIsbGFiZWw6IlN5ZG5leSJ9LHt2YWx1ZToiUGFjaWZpYy9BdWNrbGFuZCIsbGFiZWw6IkF1Y2tsYW5kIn1dO3JlbmRlcigpe2lmKCF0aGlzLnRyaWdnZXJSZWN0KXJldHVybiB3YGA7bGV0IHZlPXRoaXMuY29tcHV0ZVBvc2l0aW9uU3R5bGUoKSxiZT10aGlzLndlZWtTdGFydHNPbj09PTE/WyJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiLCJTdSJdOlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxFZT10aGlzLmdldERheXNJbk1vbnRoKCksamU9dGhpcy5zZWxlY3RlZEhvdXI8MTI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iY2FsZW5kYXItcG9wdXAgJHt0aGlzLnZpc2libGU/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iCiAgICAgICAgc3R5bGU9IiR7dmV9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItaGVhZGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3RoaXMucHJldmlvdXNNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25MZWZ0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtb250aC15ZWFyLWRpc3BsYXkiPgogICAgICAgICAgICAke0NlLk1PTlRIX05BTUVTW3RoaXMudmlld0RhdGUuZ2V0TW9udGgoKV19ICR7dGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLm5leHRNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25SaWdodCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3ZWVrZGF5cyI+CiAgICAgICAgICAke2JlLm1hcChXZT0+d2A8ZGl2IGNsYXNzPSJ3ZWVrZGF5Ij4ke1dlfTwvZGl2PmApfQogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkYXlzLWdyaWQiPgogICAgICAgICAgJHtFZS5tYXAoV2U9PntsZXQgc3Q9dGhpcy5pc1RvZGF5KFdlKSxNZT10aGlzLmlzU2VsZWN0ZWQoV2UpLGdlPVdlLmdldE1vbnRoKCkhPT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksSWU9dGhpcy5pc0RheURpc2FibGVkKFdlKSxjZT10aGlzLmdldEV2ZW50c0ZvckRhdGUoV2UpLGRlPWNlLmxlbmd0aD4wLExlPWNlLnJlZHVjZSgoS2UsWWUpPT5LZSsoWWUuY291bnR8fDEpLDApO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJkYXkgJHtnZT8ib3RoZXItbW9udGgiOiIifSAke3N0PyJ0b2RheSI6IiJ9ICR7TWU/InNlbGVjdGVkIjoiIn0gJHtJZT8iZGlzYWJsZWQiOiIifSAke2RlPyJoYXMtZXZlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT4hSWUmJnRoaXMuaGFuZGxlU2VsZWN0RGF0ZShXZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtXZS5nZXREYXRlKCl9CiAgICAgICAgICAgICAgICAke2RlP3dgCiAgICAgICAgICAgICAgICAgICR7TGU+Mz93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWNvdW50Ij4ke0xlfTwvZGl2PgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICR7Y2Uuc2xpY2UoMCwzKS5tYXAoS2U9PndgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWRvdCAke0tlLnR5cGV8fCJpbmZvIn0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICR7Y2VbMF0udGl0bGU/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC10b29sdGlwIj4KICAgICAgICAgICAgICAgICAgICAgICR7Y2VbMF0udGl0bGV9CiAgICAgICAgICAgICAgICAgICAgICAke0xlPjE/d2AgKCske0xlLTF9IG1vcmUpYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3IiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNlbGVjdG9yLXRpdGxlIj5UaW1lPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtaW5wdXRzIj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0idGltZS1pbnB1dCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyh0aGlzLnNlbGVjdGVkSG91cj09PTA/MTI6dGhpcy5zZWxlY3RlZEhvdXI+MTI/dGhpcy5zZWxlY3RlZEhvdXItMTI6dGhpcy5zZWxlY3RlZEhvdXIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpOnRoaXMuc2VsZWN0ZWRIb3VyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVIb3VySW5wdXR9CiAgICAgICAgICAgICAgICBtaW49IiR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/MTowfSIKICAgICAgICAgICAgICAgIG1heD0iJHt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj8xMjoyM30iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1zZXBhcmF0b3IiPjo8L3NwYW4+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9InRpbWUtaW5wdXQiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVNaW51dGVJbnB1dH0KICAgICAgICAgICAgICAgIG1pbj0iMCIgbWF4PSI1OSIgc3RlcD0iJHt0aGlzLm1pbnV0ZUluY3JlbWVudHx8MX0iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAke3RoaXMudGltZUZvcm1hdD09PSIxMmgiP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbS1wbS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFtLXBtLWJ1dHRvbiAke2plPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5zZXRBTVBNKCJhbSIpfT5BTTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhbS1wbS1idXR0b24gJHtqZT8iIjoic2VsZWN0ZWQifSIgQGNsaWNrPSR7KCk9PnRoaXMuc2V0QU1QTSgicG0iKX0+UE08L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWV6b25lP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3RvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIj5UaW1lem9uZTwvZGl2PgogICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3QiIC52YWx1ZT0ke3RoaXMudGltZXpvbmV9IEBjaGFuZ2U9JHt0aGlzLmhhbmRsZVRpbWV6b25lQ2hhbmdlfT4KICAgICAgICAgICAgICAke0NlLlRJTUVaT05FUy5tYXAoV2U9PndgCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIke1dlLnZhbHVlfSIgP3NlbGVjdGVkPSR7V2UudmFsdWU9PT10aGlzLnRpbWV6b25lfT4ke1dlLmxhYmVsfTwvb3B0aW9uPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiB0b2RheS1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlU2VsZWN0VG9kYXl9PlRvZGF5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNsZWFyLWFjdGlvbi1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xlYXJ9PkNsZWFyPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb21wdXRlUG9zaXRpb25TdHlsZSgpe2xldCB2ZT10aGlzLnRyaWdnZXJSZWN0LGJlPXZlLmxlZnQ7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgRWU9d2luZG93LmlubmVySGVpZ2h0LXZlLnRvcCs0O3JldHVybmBsZWZ0OiAke2JlfXB4OyBib3R0b206ICR7RWV9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgRWU9dmUuYm90dG9tKzQ7cmV0dXJuYGxlZnQ6ICR7YmV9cHg7IHRvcDogJHtFZX1weGB9fWdldERheXNJbk1vbnRoKCl7bGV0IHZlPXRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSxiZT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksRWU9bmV3IERhdGUodmUsYmUsMSksamU9bmV3IERhdGUodmUsYmUrMSwwKSxXZT1bXSxzdD10aGlzLndlZWtTdGFydHNPbj09PTE/RWUuZ2V0RGF5KCk9PT0wPzY6RWUuZ2V0RGF5KCktMTpFZS5nZXREYXkoKTtmb3IobGV0IGdlPXN0O2dlPjA7Z2UtLSlXZS5wdXNoKG5ldyBEYXRlKHZlLGJlLDEtZ2UpKTtmb3IobGV0IGdlPTE7Z2U8PWplLmdldERhdGUoKTtnZSsrKVdlLnB1c2gobmV3IERhdGUodmUsYmUsZ2UpKTtsZXQgTWU9NDItV2UubGVuZ3RoO2ZvcihsZXQgZ2U9MTtnZTw9TWU7Z2UrKylXZS5wdXNoKG5ldyBEYXRlKHZlLGJlKzEsZ2UpKTtyZXR1cm4gV2V9aXNUb2RheSh2ZSl7bGV0IGJlPW5ldyBEYXRlO3JldHVybiB2ZS5nZXREYXRlKCk9PT1iZS5nZXREYXRlKCkmJnZlLmdldE1vbnRoKCk9PT1iZS5nZXRNb250aCgpJiZ2ZS5nZXRGdWxsWWVhcigpPT09YmUuZ2V0RnVsbFllYXIoKX1pc1NlbGVjdGVkKHZlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZERhdGU/dmUuZ2V0RGF0ZSgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpJiZ2ZS5nZXRNb250aCgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSYmdmUuZ2V0RnVsbFllYXIoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCk6ITF9aXNEYXlEaXNhYmxlZCh2ZSl7aWYodGhpcy5taW5EYXRlKXtsZXQgYmU9bmV3IERhdGUodGhpcy5taW5EYXRlKTtpZih2ZTxiZSlyZXR1cm4hMH1pZih0aGlzLm1heERhdGUpe2xldCBiZT1uZXcgRGF0ZSh0aGlzLm1heERhdGUpO2lmKHZlPmJlKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXM/Lmxlbmd0aD90aGlzLmRpc2FibGVkRGF0ZXMuc29tZShiZT0+e3RyeXtsZXQgRWU9bmV3IERhdGUoYmUpO3JldHVybiB2ZS5nZXREYXRlKCk9PT1FZS5nZXREYXRlKCkmJnZlLmdldE1vbnRoKCk9PT1FZS5nZXRNb250aCgpJiZ2ZS5nZXRGdWxsWWVhcigpPT09RWUuZ2V0RnVsbFllYXIoKX1jYXRjaHtyZXR1cm4hMX19KTohMX1nZXRFdmVudHNGb3JEYXRlKHZlKXtpZighdGhpcy5ldmVudHM/Lmxlbmd0aClyZXR1cm5bXTtsZXQgYmU9YCR7dmUuZ2V0RnVsbFllYXIoKX0tJHsodmUuZ2V0TW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHt2ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YDtyZXR1cm4gdGhpcy5ldmVudHMuZmlsdGVyKEVlPT5FZS5kYXRlPT09YmUpfXByZXZpb3VzTW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCktMSwxKX1uZXh0TW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkrMSwxKX1oYW5kbGVTZWxlY3REYXRlKHZlKXt0aGlzLnNlbGVjdGVkRGF0ZT1uZXcgRGF0ZSh2ZS5nZXRGdWxsWWVhcigpLHZlLmdldE1vbnRoKCksdmUuZ2V0RGF0ZSgpLHRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMuc2VsZWN0ZWRNaW51dGUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRhdGUtc2VsZWN0ZWQiLHtkZXRhaWw6dGhpcy5zZWxlY3RlZERhdGV9KSksdGhpcy5lbmFibGVUaW1lfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfWhhbmRsZVNlbGVjdFRvZGF5KCl7bGV0IHZlPW5ldyBEYXRlO3RoaXMuc2VsZWN0ZWREYXRlPXZlLHRoaXMudmlld0RhdGU9bmV3IERhdGUodmUpLHRoaXMuc2VsZWN0ZWRIb3VyPXZlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT12ZS5nZXRNaW51dGVzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSx0aGlzLmVuYWJsZVRpbWV8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9aGFuZGxlQ2xlYXIoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLWNsZWFyZWQiKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX1oYW5kbGVIb3VySW5wdXQ9aSh2ZT0+e2xldCBiZT12ZS50YXJnZXQsRWU9cGFyc2VJbnQoYmUudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyhFZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLEVlKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZFZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPUVlKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZFZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9RWUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsRWUpKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVIb3VySW5wdXQiKTtoYW5kbGVNaW51dGVJbnB1dD1pKHZlPT57bGV0IGJlPXZlLnRhcmdldCxFZT1wYXJzZUludChiZS52YWx1ZSl8fDA7RWU9TWF0aC5tYXgoMCxNYXRoLm1pbig1OSxFZSkpLHRoaXMubWludXRlSW5jcmVtZW50PjEmJihFZT1NYXRoLnJvdW5kKEVlL3RoaXMubWludXRlSW5jcmVtZW50KSp0aGlzLm1pbnV0ZUluY3JlbWVudCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1FZSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVNaW51dGVJbnB1dCIpO3NldEFNUE0odmUpe3ZlPT09ImFtIiYmdGhpcy5zZWxlY3RlZEhvdXI+PTEyP3RoaXMuc2VsZWN0ZWRIb3VyLT0xMjp2ZT09PSJwbSImJnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiYodGhpcy5zZWxlY3RlZEhvdXIrPTEyKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9aGFuZGxlVGltZXpvbmVDaGFuZ2U9aSh2ZT0+e3RoaXMudGltZXpvbmU9dmUudGFyZ2V0LnZhbHVlLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZVRpbWV6b25lQ2hhbmdlIik7ZW1pdFRpbWVVcGRhdGUoKXt0aGlzLnNlbGVjdGVkRGF0ZSYmKHRoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSl9YXN5bmMgc2hvdygpe3RoaXMud2luZG93TGF5ZXI9YXdhaXQgUm8uY3JlYXRlQW5kU2hvdygpLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX0pLHRoaXMubWVudVpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksX2EucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcyksYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7cGFzc2l2ZTohMH0pfWFzeW5jIGhpZGUoKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSxfYS51bnJlZ2lzdGVyKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJih0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyPW51bGwpLHRoaXMudmlzaWJsZT0hMSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5pc0Rlc3Ryb3lpbmc9ITEpfWhhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSksX2EudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7RGEoYSx0KX19O3JldHVybiBDZT1hfSkoKX0pO3ZhciBlbyxLYSxVb3QscW90PWcoKCk9PntwZSgpO0VpKCk7cGJhKCk7ZmJhKCk7Z2JhKCk7Vm90KCk7R2EoKTtieCgpO2VvPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLYT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sVW90PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W107dmFyIEdlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IERlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxIPVtMKHt0eXBlOkFycmF5fSldLEk9W0woe3R5cGU6TnVtYmVyfSldLEs9W0woe3R5cGU6U3RyaW5nfSldLG1lPVtMKHt0eXBlOkJvb2xlYW59KV0saGU9W0woe3R5cGU6U3RyaW5nfSldLHVlPVtMKHt0eXBlOkFycmF5fSldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLGVvKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ2YWx1ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnZhbHVlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UudmFsdWU9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LG8sbCksZW8odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZW5hYmxlVGltZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmVuYWJsZVRpbWUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5lbmFibGVUaW1lPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxkLHUpLGVvKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InRpbWVGb3JtYXQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS50aW1lRm9ybWF0LCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UudGltZUZvcm1hdD1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sYix2KSxlbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbnV0ZUluY3JlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+Im1pbnV0ZUluY3JlbWVudCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLm1pbnV0ZUluY3JlbWVudCwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLm1pbnV0ZUluY3JlbWVudD1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sbSxmKSxlbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJkYXRlRm9ybWF0ImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZGF0ZUZvcm1hdCwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmRhdGVGb3JtYXQ9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LE0seiksZW8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5EYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ibWluRGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLm1pbkRhdGUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5taW5EYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxDLF8pLGVvKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+Im1heERhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5tYXhEYXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2UubWF4RGF0ZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sJCxFKSxlbyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkRGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJkaXNhYmxlZERhdGVzImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZGlzYWJsZWREYXRlcywiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmRpc2FibGVkRGF0ZXM9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGssUyksZW8odGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3ZWVrU3RhcnRzT24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ3ZWVrU3RhcnRzT24iaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS53ZWVrU3RhcnRzT24sImdldCIpLHNldDppKChfZSxDZSk9PntfZS53ZWVrU3RhcnRzT249Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFAsUiksZW8odGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InBsYWNlaG9sZGVyImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5wbGFjZWhvbGRlcj1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sVixXKSxlbyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImVuYWJsZVRpbWV6b25lImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZW5hYmxlVGltZXpvbmUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5lbmFibGVUaW1lem9uZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sQixVKSxlbyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InRpbWV6b25lImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UudGltZXpvbmUsImdldCIpLHNldDppKChfZSxDZSk9PntfZS50aW1lem9uZT1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sRixqKSxlbyh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJldmVudHMiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5ldmVudHMsImdldCIpLHNldDppKChfZSxDZSk9PntfZS5ldmVudHM9Q2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGxlLFEpLGVvKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iaXNPcGVuZWQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5pc09wZW5lZCwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLmlzT3BlbmVkPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSx0ZSxlZSksZW8odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ic2VsZWN0ZWREYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uuc2VsZWN0ZWREYXRlLCJnZXQiKSxzZXQ6aSgoX2UsQ2UpPT57X2Uuc2VsZWN0ZWREYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxYLFopLGVvKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idmlld0RhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS52aWV3RGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnZpZXdEYXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxxLEEpLGVvKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSG91ciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InNlbGVjdGVkSG91ciJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnNlbGVjdGVkSG91ciwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnNlbGVjdGVkSG91cj1DZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sb2UsYWUpLGVvKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkTWludXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4ic2VsZWN0ZWRNaW51dGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5zZWxlY3RlZE1pbnV0ZSwiZ2V0Iiksc2V0OmkoKF9lLENlKT0+e19lLnNlbGVjdGVkTWludXRlPUNlfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxSZSxCZSksZW8obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RGV9LG51bGwsdCksR2U9YT1lLnZhbHVlLERlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkRlfSl9c3RhdGljIGRlbW89dWJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1LYSh0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShEZSl7dGhpcy4jZT1EZX0jdD0oS2EodGhpcyxsKSxLYSh0aGlzLGQsITEpKTtnZXQgZW5hYmxlVGltZSgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVUaW1lKERlKXt0aGlzLiN0PURlfSNhPShLYSh0aGlzLHUpLEthKHRoaXMsYiwiMjRoIikpO2dldCB0aW1lRm9ybWF0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRpbWVGb3JtYXQoRGUpe3RoaXMuI2E9RGV9I3M9KEthKHRoaXMsdiksS2EodGhpcyxtLDEpKTtnZXQgbWludXRlSW5jcmVtZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbnV0ZUluY3JlbWVudChEZSl7dGhpcy4jcz1EZX0jaT0oS2EodGhpcyxmKSxLYSh0aGlzLE0sIllZWVktTU0tREQiKSk7Z2V0IGRhdGVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZGF0ZUZvcm1hdChEZSl7dGhpcy4jaT1EZX0jcj0oS2EodGhpcyx6KSxLYSh0aGlzLEMsIiIpKTtnZXQgbWluRGF0ZSgpe3JldHVybiB0aGlzLiNyfXNldCBtaW5EYXRlKERlKXt0aGlzLiNyPURlfSNvPShLYSh0aGlzLF8pLEthKHRoaXMsJCwiIikpO2dldCBtYXhEYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heERhdGUoRGUpe3RoaXMuI289RGV9I249KEthKHRoaXMsRSksS2EodGhpcyxrLFtdKSk7Z2V0IGRpc2FibGVkRGF0ZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGlzYWJsZWREYXRlcyhEZSl7dGhpcy4jbj1EZX0jbD0oS2EodGhpcyxTKSxLYSh0aGlzLFAsMSkpO2dldCB3ZWVrU3RhcnRzT24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgd2Vla1N0YXJ0c09uKERlKXt0aGlzLiNsPURlfSNjPShLYSh0aGlzLFIpLEthKHRoaXMsViwiWVlZWS1NTS1ERCIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jY31zZXQgcGxhY2Vob2xkZXIoRGUpe3RoaXMuI2M9RGV9I2Q9KEthKHRoaXMsVyksS2EodGhpcyxCLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGVuYWJsZVRpbWV6b25lKERlKXt0aGlzLiNkPURlfSN1PShLYSh0aGlzLFUpLEthKHRoaXMsRixJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUpKTtnZXQgdGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jdX1zZXQgdGltZXpvbmUoRGUpe3RoaXMuI3U9RGV9I3A9KEthKHRoaXMsaiksS2EodGhpcyxsZSxbXSkpO2dldCBldmVudHMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXZlbnRzKERlKXt0aGlzLiNwPURlfSNoPShLYSh0aGlzLFEpLEthKHRoaXMsdGUsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jaH1zZXQgaXNPcGVuZWQoRGUpe3RoaXMuI2g9RGV9I2Y9KEthKHRoaXMsZWUpLEthKHRoaXMsWCxudWxsKSk7Z2V0IHNlbGVjdGVkRGF0ZSgpe3JldHVybiB0aGlzLiNmfXNldCBzZWxlY3RlZERhdGUoRGUpe3RoaXMuI2Y9RGV9I209KEthKHRoaXMsWiksS2EodGhpcyxxLG5ldyBEYXRlKSk7Z2V0IHZpZXdEYXRlKCl7cmV0dXJuIHRoaXMuI219c2V0IHZpZXdEYXRlKERlKXt0aGlzLiNtPURlfSNnPShLYSh0aGlzLEEpLEthKHRoaXMsb2UsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jZ31zZXQgc2VsZWN0ZWRIb3VyKERlKXt0aGlzLiNnPURlfSNiPShLYSh0aGlzLGFlKSxLYSh0aGlzLFJlLDApKTtnZXQgc2VsZWN0ZWRNaW51dGUoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2VsZWN0ZWRNaW51dGUoRGUpe3RoaXMuI2I9RGV9cG9wdXBJbnN0YW5jZT0oS2EodGhpcyxCZSksbnVsbCk7c3RhdGljIHN0eWxlcz1oYmE7cmVuZGVyKCl7cmV0dXJuIG1iYSh0aGlzKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT0iIiksdGhpcy52YWx1ZSl0cnl7bGV0IERlPW5ldyBEYXRlKHRoaXMudmFsdWUpO2lzTmFOKERlLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1EZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKERlKSx0aGlzLnNlbGVjdGVkSG91cj1EZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9RGUuZ2V0TWludXRlcygpKX1jYXRjaHt9ZWxzZXtsZXQgRGU9bmV3IERhdGU7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShEZSksdGhpcy5zZWxlY3RlZEhvdXI9RGUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPTB9fWZvcm1hdERhdGUoRGUpe2lmKCFEZSlyZXR1cm4iIjt0cnl7bGV0IF9lPW5ldyBEYXRlKERlKTtpZihpc05hTihfZS5nZXRUaW1lKCkpKXJldHVybiIiO2xldCBDZT10aGlzLmRhdGVGb3JtYXQsdmU9X2UuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLGJlPShfZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLEVlPV9lLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtpZihDZT1DZS5yZXBsYWNlKCJZWVlZIixFZSksQ2U9Q2UucmVwbGFjZSgiWVkiLEVlLnNsaWNlKC0yKSksQ2U9Q2UucmVwbGFjZSgiTU0iLGJlKSxDZT1DZS5yZXBsYWNlKCJERCIsdmUpLHRoaXMuZW5hYmxlVGltZSl7bGV0IGplPV9lLmdldEhvdXJzKCksV2U9amU9PT0wPzEyOmplPjEyP2plLTEyOmplLHN0PV9lLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxNZT1qZT49MTI/IlBNIjoiQU0iO3RoaXMudGltZUZvcm1hdD09PSIxMmgiP0NlKz1gICR7V2V9OiR7c3R9ICR7TWV9YDpDZSs9YCAke2plLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke3N0fWB9aWYodGhpcy5lbmFibGVUaW1lem9uZSl7bGV0IHN0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3RpbWVab25lTmFtZToic2hvcnQiLHRpbWVab25lOnRoaXMudGltZXpvbmV9KS5mb3JtYXRUb1BhcnRzKF9lKS5maW5kKE1lPT5NZS50eXBlPT09InRpbWVab25lTmFtZSIpO3N0JiYoQ2UrPWAgJHtzdC52YWx1ZX1gKX1yZXR1cm4gQ2V9Y2F0Y2h7cmV0dXJuIiJ9fWFzeW5jIHRvZ2dsZUNhbGVuZGFyKCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47aWYodGhpcy5pc09wZW5lZCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufXRoaXMuaXNPcGVuZWQ9ITA7bGV0IF9lPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQ2U9d2luZG93LmlubmVySGVpZ2h0LV9lLmJvdHRvbSx2ZT1fZS50b3AsYmU9Q2U8NDAwJiZ2ZT5DZTt0aGlzLnBvcHVwSW5zdGFuY2V8fCh0aGlzLnBvcHVwSW5zdGFuY2U9bmV3IGpvdCksdGhpcy5wb3B1cEluc3RhbmNlLnRyaWdnZXJSZWN0PV9lLHRoaXMucG9wdXBJbnN0YW5jZS5vd25lckNvbXBvbmVudD10aGlzLHRoaXMucG9wdXBJbnN0YW5jZS5vcGVuc1RvVG9wPWJlLHRoaXMucG9wdXBJbnN0YW5jZS5lbmFibGVUaW1lPXRoaXMuZW5hYmxlVGltZSx0aGlzLnBvcHVwSW5zdGFuY2UudGltZUZvcm1hdD10aGlzLnRpbWVGb3JtYXQsdGhpcy5wb3B1cEluc3RhbmNlLm1pbnV0ZUluY3JlbWVudD10aGlzLm1pbnV0ZUluY3JlbWVudCx0aGlzLnBvcHVwSW5zdGFuY2Uud2Vla1N0YXJ0c09uPXRoaXMud2Vla1N0YXJ0c09uLHRoaXMucG9wdXBJbnN0YW5jZS5taW5EYXRlPXRoaXMubWluRGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2UubWF4RGF0ZT10aGlzLm1heERhdGUsdGhpcy5wb3B1cEluc3RhbmNlLmRpc2FibGVkRGF0ZXM9dGhpcy5kaXNhYmxlZERhdGVzLHRoaXMucG9wdXBJbnN0YW5jZS5lbmFibGVUaW1lem9uZT10aGlzLmVuYWJsZVRpbWV6b25lLHRoaXMucG9wdXBJbnN0YW5jZS50aW1lem9uZT10aGlzLnRpbWV6b25lLHRoaXMucG9wdXBJbnN0YW5jZS5ldmVudHM9dGhpcy5ldmVudHMsdGhpcy5wb3B1cEluc3RhbmNlLnNlbGVjdGVkRGF0ZT10aGlzLnNlbGVjdGVkRGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2Uudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZSksdGhpcy5wb3B1cEluc3RhbmNlLnNlbGVjdGVkSG91cj10aGlzLnNlbGVjdGVkSG91cix0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWRNaW51dGU9dGhpcy5zZWxlY3RlZE1pbnV0ZSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLnNob3coKX1jbG9zZVBvcHVwKCl7dGhpcy5pc09wZW5lZD0hMSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSl9aGFuZGxlRGF0ZVNlbGVjdGVkPWkoRGU9PntsZXQgX2U9RGUuZGV0YWlsO3RoaXMuc2VsZWN0ZWREYXRlPV9lLHRoaXMuc2VsZWN0ZWRIb3VyPV9lLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1fZS5nZXRNaW51dGVzKCksdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShfZSksdGhpcy52YWx1ZT10aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKF9lKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImhhbmRsZURhdGVTZWxlY3RlZCIpO2hhbmRsZURhdGVDbGVhcmVkPWkoKCk9Pnt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJoYW5kbGVEYXRlQ2xlYXJlZCIpO2hhbmRsZUNsb3NlUmVxdWVzdD1pKCgpPT57dGhpcy5jbG9zZVBvcHVwKCl9LCJoYW5kbGVDbG9zZVJlcXVlc3QiKTtoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdD1pKCgpPT57aWYoIXRoaXMucG9wdXBJbnN0YW5jZXx8IXRoaXMuaXNPcGVuZWQpcmV0dXJuO2xldCBEZT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbnRhaW5lciIpO2lmKCFEZSlyZXR1cm47bGV0IF9lPURlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKF9lLmJvdHRvbTwwfHxfZS50b3A+d2luZG93LmlubmVySGVpZ2h0KXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59bGV0IENlPXdpbmRvdy5pbm5lckhlaWdodC1fZS5ib3R0b20sdmU9X2UudG9wO3RoaXMucG9wdXBJbnN0YW5jZS5vcGVuc1RvVG9wPUNlPDQwMCYmdmU+Q2UsdGhpcy5wb3B1cEluc3RhbmNlLnRyaWdnZXJSZWN0PV9lfSwiaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QiKTtoYW5kbGVLZXlkb3duKERlKXtEZS5rZXk9PT0iRW50ZXIifHxEZS5rZXk9PT0iICI/KERlLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVDYWxlbmRhcigpKTpEZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5pc09wZW5lZCYmKERlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZVBvcHVwKCkpfWNsZWFyVmFsdWUoRGUpe0RlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1oYW5kbGVNYW51YWxJbnB1dChEZSl7bGV0IENlPURlLnRhcmdldC52YWx1ZS50cmltKCk7aWYoIUNlKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGw7cmV0dXJufWxldCB2ZT10aGlzLnBhcnNlTWFudWFsRGF0ZShDZSk7dmUmJiFpc05hTih2ZS5nZXRUaW1lKCkpJiYodGhpcy52YWx1ZT12ZS50b0lTT1N0cmluZygpLHRoaXMuc2VsZWN0ZWREYXRlPXZlLHRoaXMudmlld0RhdGU9bmV3IERhdGUodmUpLHRoaXMuc2VsZWN0ZWRIb3VyPXZlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT12ZS5nZXRNaW51dGVzKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWhhbmRsZUlucHV0Qmx1cihEZSl7bGV0IF9lPURlLnRhcmdldCxDZT1fZS52YWx1ZS50cmltKCk7aWYoIUNlKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7cmV0dXJufWxldCB2ZT10aGlzLnBhcnNlTWFudWFsRGF0ZShDZSk7dmUmJiFpc05hTih2ZS5nZXRUaW1lKCkpPyh0aGlzLnZhbHVlPXZlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9dmUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh2ZSksdGhpcy5zZWxlY3RlZEhvdXI9dmUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXZlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxfZS52YWx1ZT10aGlzLmZvcm1hdERhdGUodGhpcy52YWx1ZSkpOl9lLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKX1wYXJzZU1hbnVhbERhdGUoRGUpe2lmKCFEZSlyZXR1cm4gbnVsbDtsZXQgX2U9RGUuc3BsaXQoIiAiKSxDZT1fZVswXSx2ZT1fZVsxXXx8IiIsYmU9bnVsbCxFZT1DZS5tYXRjaCgvXihcZHs0fSktKFxkezEsMn0pLShcZHsxLDJ9KSQvKTtpZihFZSl7bGV0W2plLFdlLHN0LE1lXT1FZTtiZT1uZXcgRGF0ZShwYXJzZUludChXZSkscGFyc2VJbnQoc3QpLTEscGFyc2VJbnQoTWUpKX1pZighYmUpe2xldCBqZT1DZS5tYXRjaCgvXihcZHsxLDJ9KVwuKFxkezEsMn0pXC4oXGR7NH0pJC8pO2lmKGplKXtsZXRbV2Usc3QsTWUsZ2VdPWplO2JlPW5ldyBEYXRlKHBhcnNlSW50KGdlKSxwYXJzZUludChNZSktMSxwYXJzZUludChzdCkpfX1pZighYmUpe2xldCBqZT1DZS5tYXRjaCgvXihcZHsxLDJ9KVwvKFxkezEsMn0pXC8oXGR7NH0pJC8pO2lmKGplKXtsZXRbV2Usc3QsTWUsZ2VdPWplO2JlPW5ldyBEYXRlKHBhcnNlSW50KGdlKSxwYXJzZUludChzdCktMSxwYXJzZUludChNZSkpfX1pZighYmV8fGlzTmFOKGJlLmdldFRpbWUoKSkpcmV0dXJuIG51bGw7aWYodmUpe2xldCBqZT12ZS5tYXRjaCgvXihcZHsxLDJ9KTooXGR7Mn0pJC8pO2lmKGplKXtsZXRbV2Usc3QsTWVdPWplO2JlLnNldEhvdXJzKHBhcnNlSW50KHN0KSksYmUuc2V0TWludXRlcyhwYXJzZUludChNZSkpfX1lbHNlIGlmKCF0aGlzLmVuYWJsZVRpbWUpe2xldCBqZT1uZXcgRGF0ZTtiZS5zZXRIb3VycyhqZS5nZXRIb3VycygpKSxiZS5zZXRNaW51dGVzKGplLmdldE1pbnV0ZXMoKSksYmUuc2V0U2Vjb25kcygwKSxiZS5zZXRNaWxsaXNlY29uZHMoMCl9cmV0dXJuIGJlfWZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKERlKXtpZighdGhpcy5lbmFibGVUaW1lem9uZSlyZXR1cm4gRGUudG9JU09TdHJpbmcoKTtsZXQgQ2U9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7eWVhcjoibnVtZXJpYyIsbW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGhvdXIxMjohMSx0aW1lWm9uZTp0aGlzLnRpbWV6b25lLHRpbWVab25lTmFtZToic2hvcnQifSkuZm9ybWF0VG9QYXJ0cyhEZSksdmU9e307Q2UuZm9yRWFjaChqZT0+e3ZlW2plLnR5cGVdPWplLnZhbHVlfSk7bGV0IGJlPWAke3ZlLnllYXJ9LSR7dmUubW9udGh9LSR7dmUuZGF5fVQke3ZlLmhvdXJ9OiR7dmUubWludXRlfToke3ZlLnNlY29uZH1gLEVlPXRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoRGUsdGhpcy50aW1lem9uZSk7cmV0dXJuYCR7YmV9JHtFZX1gfWdldFRpbWV6b25lT2Zmc2V0KERlLF9lKXtsZXQgQ2U9bmV3IERhdGUoRGUudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7dGltZVpvbmU6X2V9KSksdmU9bmV3IERhdGUoRGUudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7dGltZVpvbmU6IlVUQyJ9KSksYmU9KENlLmdldFRpbWUoKS12ZS5nZXRUaW1lKCkpLygxZTMqNjApLEVlPU1hdGguZmxvb3IoTWF0aC5hYnMoYmUpLzYwKSxqZT1NYXRoLmFicyhiZSklNjA7cmV0dXJuYCR7YmU+PTA/IisiOiItIn0ke0VlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke2plLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShEZSl7aWYodGhpcy52YWx1ZT1EZSxEZSl0cnl7bGV0IF9lPW5ldyBEYXRlKERlKTtpc05hTihfZS5nZXRUaW1lKCkpfHwodGhpcy5zZWxlY3RlZERhdGU9X2UsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShfZSksdGhpcy5zZWxlY3RlZEhvdXI9X2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPV9lLmdldE1pbnV0ZXMoKSl9Y2F0Y2h7fX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5wb3B1cEluc3RhbmNlJiYodGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRhdGUtc2VsZWN0ZWQiLHRoaXMuaGFuZGxlRGF0ZVNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1jbGVhcmVkIix0aGlzLmhhbmRsZURhdGVDbGVhcmVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCksdGhpcy5wb3B1cEluc3RhbmNlPW51bGwpfXN0YXRpY3tLYShhLHQpfX07cmV0dXJuIEdlPWF9KSgpfSk7dmFyIEExZT1nKCgpPT57cW90KCk7Vm90KCl9KTt2YXIgYmJhLHZiYT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7YmJhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuaW50ZXJhY3RpdmUtc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLChyPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBjaGFuZ2VkIHRvOmAsYS5nZXRWYWx1ZSgpKX0pKSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBsb3N0IGZvY3VzYCl9KX0pLHMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0icGFzc3dvcmQiXScpJiZjb25zb2xlLmxvZygiUGFzc3dvcmQgaW5wdXQgaW5jbHVkZXMgdmlzaWJpbGl0eSB0b2dnbGUiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVGV4dCBJbnB1dHMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgdGV4dCBpbnB1dHMgd2l0aCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJVc2VybmFtZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huZG9lIn0KICAgICAgICAgICAgLmtleT0keyJ1c2VybmFtZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJZb3VyIHVzZXJuYW1lIHdpbGwgYmUgdmlzaWJsZSB0byBvdGhlciB1c2VycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huQGV4YW1wbGUuY29tIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgbmV2ZXIgc2hhcmUgeW91ciBlbWFpbCB3aXRoIGFueW9uZSJ9CiAgICAgICAgICAgIC5rZXk9JHsiZW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIn0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzZWNyZXQxMjMifQogICAgICAgICAgICAua2V5PSR7InBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKHI9PntsZXQgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKTtjb25zb2xlLmxvZyhgSG9yaXpvbnRhbCBpbnB1dCAiJHtyLmxhYmVsfSIgZGlzcGxheTpgLG4uZGlzcGxheSl9KTtsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9ImZpcnN0TmFtZSJdJyksYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9Imxhc3ROYW1lIl0nKTtpZih0JiZhKXtsZXQgcj1pKCgpPT57bGV0IG49dC5nZXRWYWx1ZSgpLG89YS5nZXRWYWx1ZSgpO2NvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7bn0gJHtvfWApfSwidXBkYXRlRnVsbE5hbWUiKTt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLHIpLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIscil9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkZpcnN0IE5hbWUifQogICAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7ImZpcnN0TmFtZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAubGFiZWw9JHsiTGFzdCBOYW1lIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiRG9lIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Imxhc3ROYW1lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZ2UifQogICAgICAgICAgICAgIC52YWx1ZT0keyIyOCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJhZ2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PntsZXQgcj1hLmxhYmVsUG9zaXRpb247Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBoYXMgbGFiZWwgcG9zaXRpb246ICR7cn1gKX0pO2xldCB0PXMucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1pbnB1dC10ZXh0W2xhYmVsUG9zaXRpb249ImxlZnQiXScpO3QubGVuZ3RoPjAmJmNvbnNvbGUubG9nKGAke3QubGVuZ3RofSBpbnB1dHMgaGF2ZSBsZWZ0LWFsaWduZWQgbGFiZWxzIGZvciBpbmxpbmUgbGF5b3V0YCl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhYmVsIFBvc2l0aW9ucyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgbGFiZWwgcG9zaXRpb25pbmcgb3B0aW9ucyBmb3IgdmFyaW91cyBsYXlvdXRzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIFRvcCAoRGVmYXVsdCkifQogICAgICAgICAgICAudmFsdWU9JHsiU3RhbmRhcmQgbGF5b3V0In0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsidG9wIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBMZWZ0In0KICAgICAgICAgICAgLnZhbHVlPSR7IklubGluZSBsYWJlbCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkNpdHkifQogICAgICAgICAgICAudmFsdWU9JHsiTmV3IFlvcmsifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJaSVAgQ29kZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyIxMDAwMSJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWRGaWVsZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRmllbGQifQogICAgICAgICAgICAudmFsdWU9JHsiQ2Fubm90IGVkaXQgdGhpcyJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIHdpdGggVmFsaWRhdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJpbnZhbGlkQCJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHtzPT4vXlteXHNAXStAW15cc0BdK1wuW15cc0BdKyQvLnRlc3Qocyk/e3ZhbGlkOiEwLG1lc3NhZ2U6IkVtYWlsIGFkZHJlc3MgaXMgdmFsaWQifTp7dmFsaWQ6ITEsbWVzc2FnZToiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dFtpc1Bhc3N3b3JkQm9vbF0iKS5mb3JFYWNoKHQ9PntsZXQgYT10LHI9aSgoKT0+e2xldCBuPWEuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgUGFzc3dvcmQgZmllbGQgIiR7YS5sYWJlbH0iIHR5cGU6YCxuLnR5cGUpfSwiY2hlY2tUb2dnbGUiKTtpZihhLnNoYWRvd1Jvb3Qpe2xldCBuPW5ldyBNdXRhdGlvbk9ic2VydmVyKHIpLG89YS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7byYmbi5vYnNlcnZlKG8se2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsidHlwZSJdfSl9fSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkFkdmFuY2VkIEZlYXR1cmVzIn0gLnN1YnRpdGxlPSR7IlBhc3N3b3JkIHZpc2liaWxpdHkgdG9nZ2xlIGFuZCBvdGhlciBhZHZhbmNlZCBmZWF0dXJlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCB3aXRoIFRvZ2dsZSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsibXlTZWN1cmVQYXNzd29yZDEyMyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgS2V5In0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzay0xMjM0NTY3ODkwYWJjZGVmIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IktlZXAgdGhpcyBrZXkgc2VjdXJlIGFuZCBuZXZlciBzaGFyZSBpdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0IiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiN0ZXh0LWlucHV0LW91dHB1dCIpO2UmJnQmJmUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0LnRleHRDb250ZW50PWBDdXJyZW50IHZhbHVlOiAiJHtlLmdldFZhbHVlKCl9ImB9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUcnkgdHlwaW5nIGluIHRoZSBpbnB1dCB0byBzZWUgcmVhbC10aW1lIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAubGFiZWw9JHsiRHluYW1pYyBJbnB1dCJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9InRleHQtaW5wdXQtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkN1cnJlbnQgdmFsdWU6ICIiPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBJdSxPbyxXb3QsbzQ9ZygoKT0+e3cyKCk7RWkoKTt2YmEoKTtFcigpO3BlKCk7aHQoKTtmcigpO0l1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxPbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sV290PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10ZXh0IildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGM9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seT1bTCh7cmVmbGVjdDohMH0pXSxOPVtMKHthdHRyaWJ1dGU6ITF9KV0sTz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sSD1bTCh7YXR0cmlidXRlOiExfSldLEl1KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbHVlImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsdWUsImdldCIpLHNldDppKChSLEspPT57Ui52YWx1ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG8sbCksSXUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iaXNQYXNzd29yZEJvb2wiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5pc1Bhc3N3b3JkQm9vbCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmlzUGFzc3dvcmRCb29sPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sZCx1KSxJdSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InNob3dQYXNzd29yZEJvb2wiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5zaG93UGFzc3dvcmRCb29sLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2hvd1Bhc3N3b3JkQm9vbD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGIsdiksSXUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbGlkYXRpb25TdGF0ZSJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbGlkYXRpb25TdGF0ZT1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LG0sZiksSXUodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRhdGlvblRleHQiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWxpZGF0aW9uVGV4dCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbGlkYXRpb25UZXh0PUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxJdSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25GdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsaWRhdGlvbkZ1bmN0aW9uImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRhdGlvbkZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmFsaWRhdGlvbkZ1bmN0aW9uPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxJdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpbnRlZ3JhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJ2aW50ZWdyYXRlZCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnZpbnRlZ3JhdGVkLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IudmludGVncmF0ZWQ9S30sInNldCIpfSxtZXRhZGF0YTpQfSwkLEUpLEl1KHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRDb25maXJtZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbGlkQ29uZmlybWVkImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRDb25maXJtZWQsImdldCIpLHNldDppKChSLEspPT57Ui52YWxpZENvbmZpcm1lZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksSXUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1iYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPU9vKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFApe3RoaXMuI2U9UH0jdD0oT28odGhpcyxsKSxPbyh0aGlzLGQsITEpKTtnZXQgaXNQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNQYXNzd29yZEJvb2woUCl7dGhpcy4jdD1QfSNhPShPbyh0aGlzLHUpLE9vKHRoaXMsYiwhMSkpO2dldCBzaG93UGFzc3dvcmRCb29sKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dQYXNzd29yZEJvb2woUCl7dGhpcy4jYT1QfSNzPShPbyh0aGlzLHYpLE9vKHRoaXMsbSx2b2lkIDApKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25TdGF0ZShQKXt0aGlzLiNzPVB9I2k9KE9vKHRoaXMsZiksT28odGhpcyxNLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbGlkYXRpb25UZXh0KFApe3RoaXMuI2k9UH0jcj0oT28odGhpcyx6KSxPbyh0aGlzLEMsdm9pZCAwKSk7Z2V0IHZhbGlkYXRpb25GdW5jdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCB2YWxpZGF0aW9uRnVuY3Rpb24oUCl7dGhpcy4jcj1QfSNvPShPbyh0aGlzLF8pLE9vKHRoaXMsJCwhMSkpO2dldCB2aW50ZWdyYXRlZCgpe3JldHVybiB0aGlzLiNvfXNldCB2aW50ZWdyYXRlZChQKXt0aGlzLiNvPVB9I249KE9vKHRoaXMsRSksT28odGhpcyxrLCExKSk7Z2V0IHZhbGlkQ29uZmlybWVkKCl7cmV0dXJuIHRoaXMuI259c2V0IHZhbGlkQ29uZmlybWVkKFApe3RoaXMuI249UH12YWxpZFRpbWVvdXQ9T28odGhpcyxTKTtzdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoOmZvY3VzKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIFBhc3N3b3JkIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLnNob3dQYXNzd29yZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxcHg7CiAgICAgICAgdG9wOiAyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM4cHg7CiAgICAgICAgaGVpZ2h0OiAzOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDVweCA1cHggMDsKICAgICAgfQoKICAgICAgLnNob3dQYXNzd29yZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkIGNoZWNrbWFyayBpY29uICovCiAgICAgIC52YWxpZEljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTBweDsKICAgICAgICB0b3A6IDIwcHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZEljb24uc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnZhbGlkSWNvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLmludmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLndhcm4gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMSkiLCJoc2woMjUgOTUlIDYzJSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLyogRXJyb3Igc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9ImludmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjA1KSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdhcm5pbmcgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9Indhcm4iXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0id2FybiJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjA1KSIsImhzbCgyNSA5NSUgNjMlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ2YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9InZhbGlkIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMDUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZpc3VhbGx5IGludGVncmF0ZWQgbW9kZTogc2hlZCBjaHJvbWUgdG8gYmxlbmQgaW50byBhIGhvc3QgY29tcG9uZW50CiAgICAgICAgIChlLmcuIGEgZGVlcy10YWJsZSBjZWxsIGluIGVkaXQgbW9kZSkuICovCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGRlZXMtbGFiZWwsCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5tYWluY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgaW5wdXQgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoOmZvY3VzKSwKICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5zaG93UGFzc3dvcmQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgaW5wdXQgewogICAgICAgICAgZm9udC1mYW1pbHk6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD9CZzoiaW5oZXJpdCJ9OwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD8iMC41cHgiOiJub3JtYWwifTsKICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD8iNDhweCI6dGhpcy52YWxpZENvbmZpcm1lZD8iNDBweCI6IjEycHgifTsKICAgICAgICB9CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0JiYhdGhpcy52YWxpZENvbmZpcm1lZD9KYAogICAgICAgICAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBgOkpgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSIke3RoaXMuaXNQYXNzd29yZEJvb2wmJiF0aGlzLnNob3dQYXNzd29yZEJvb2w/InBhc3N3b3JkIjoidGV4dCJ9IgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy51cGRhdGVWYWx1ZX0iCiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIke3RoaXMubGFiZWw/IiI6IkVudGVyIHRleHQuLi4ifSIKICAgICAgICAgIC8+CiAgICAgICAgICAke3RoaXMuaXNQYXNzd29yZEJvb2w/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3dQYXNzd29yZCIgQGNsaWNrPSR7dGhpcy50b2dnbGVQYXNzd29yZFZpZXd9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5zaG93UGFzc3dvcmRCb29sPyJsdWNpZGU6RXllIjoibHVjaWRlOkV5ZU9mZiJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZEljb24gJHt0aGlzLnZhbGlkQ29uZmlybWVkPyJzaG93IjoiIn0iPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIgJHt0aGlzLnZhbGlkYXRpb25TdGF0ZXx8ImludmFsaWQifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyIj48L2Rpdj5gfQogICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbGlkYXRpb25GdW5jdGlvbiYmdGhpcy52YWx1ZSl7bGV0IFA9dGhpcy52YWxpZGF0aW9uRnVuY3Rpb24odGhpcy52YWx1ZSk7dGhpcy52YWxpZGF0aW9uU3RhdGU9UC52YWxpZD8idmFsaWQiOiJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25UZXh0PVAubWVzc2FnZXx8IiIsUC52YWxpZCYmKHRoaXMudmFsaWRDb25maXJtZWQ9ITEsdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKX19YXN5bmMgdXBkYXRlVmFsdWUoUCl7bGV0IFI9UC50YXJnZXQ7aWYodGhpcy52YWx1ZT1SLnZhbHVlLHRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uKXtsZXQgSz10aGlzLnZhbGlkYXRpb25GdW5jdGlvbih0aGlzLnZhbHVlKTt0aGlzLnZhbGlkYXRpb25TdGF0ZT1LLnZhbGlkPyJ2YWxpZCI6ImludmFsaWQiLHRoaXMudmFsaWRhdGlvblRleHQ9Sy5tZXNzYWdlfHwiIixLLnZhbGlkPyh0aGlzLnZhbGlkQ29uZmlybWVkPSExLGNsZWFyVGltZW91dCh0aGlzLnZhbGlkVGltZW91dCksdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKTooY2xlYXJUaW1lb3V0KHRoaXMudmFsaWRUaW1lb3V0KSx0aGlzLnZhbGlkQ29uZmlybWVkPSExKX10aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IFA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IiksUj1QLnNlbGVjdGlvblN0YXJ0IT09UC5zZWxlY3Rpb25FbmQ7cmV0dXJuW3tuYW1lOiJDdXQiLGljb25OYW1lOiJsdWNpZGU6U2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsZGlzYWJsZWQ6IVIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBLPXRoaXMudmFsdWUuc3Vic3RyaW5nKFAuc2VsZWN0aW9uU3RhcnQsUC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEspO2xldCBWPVAuc2VsZWN0aW9uU3RhcnQ7dGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLFYpK3RoaXMudmFsdWUuc3Vic3RyaW5nKFAuc2VsZWN0aW9uRW5kKSxQLnZhbHVlPXRoaXMudmFsdWUsUC5zZXRTZWxlY3Rpb25SYW5nZShWLFYpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsZGlzYWJsZWQ6IVIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBLPXRoaXMudmFsdWUuc3Vic3RyaW5nKFAuc2VsZWN0aW9uU3RhcnQsUC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEspfSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpDbGlwYm9hcmRQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT57bGV0IEs9YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpLFY9UC5zZWxlY3Rpb25TdGFydCxXPVAuc2VsZWN0aW9uRW5kO3RoaXMudmFsdWU9dGhpcy52YWx1ZS5zdWJzdHJpbmcoMCxWKStLK3RoaXMudmFsdWUuc3Vic3RyaW5nKFcpLFAudmFsdWU9dGhpcy52YWx1ZSxQLnNldFNlbGVjdGlvblJhbmdlKFYrSy5sZW5ndGgsVitLLmxlbmd0aCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZWxlY3QgQWxsIixpY29uTmFtZToibHVjaWRlOlRleHRDdXJzb3JJbnB1dCIsc2hvcnRjdXQ6IkNtZCtBIixhY3Rpb246aShhc3luYygpPT57UC5zZWxlY3QoKX0sImFjdGlvbiIpfV19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShQKXt0aGlzLnZhbHVlPVB9YXN5bmMgdG9nZ2xlUGFzc3dvcmRWaWV3KCl7dGhpcy5zaG93UGFzc3dvcmRCb29sPSF0aGlzLnNob3dQYXNzd29yZEJvb2x9YXN5bmMgZm9jdXMoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfWFzeW5jIGJsdXIoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5ibHVyKCl9c3RhdGlje09vKGEsdCl9fTtyZXR1cm4gST1hfSkoKX0pO3ZhciB4YmEseWJhPWcoKCk9PntwZSgpO0l0KCk7eG8oKTt4YmE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJvZHVjdC1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnktdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXRvdGFsIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdGVkLXByb2R1Y3RzIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQcm9kdWN0IENhcmRzIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBwcm9kdWN0IGRpc3BsYXkgd2l0aCB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJXaXJlbGVzcyBCbHVldG9vdGggSGVhZHBob25lcyIsY2F0ZWdvcnk6IkF1ZGlvIixkZXNjcmlwdGlvbjoiUHJlbWl1bSBzb3VuZCBxdWFsaXR5IHdpdGggYWN0aXZlIG5vaXNlIGNhbmNlbGxhdGlvbiIscHJpY2U6MTQ5Ljk5LG9yaWdpbmFsUHJpY2U6MTk5Ljk5LGljb25OYW1lOiJsdWNpZGU6aGVhZHBob25lcyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU21hcnQgV2F0Y2ggU2VyaWVzIDciLGNhdGVnb3J5OiJXZWFyYWJsZXMiLGRlc2NyaXB0aW9uOiJUcmFjayB5b3VyIGZpdG5lc3MgYW5kIHN0YXkgY29ubmVjdGVkIG9uIHRoZSBnbyIscHJpY2U6Mzk5LGljb25OYW1lOiJsdWNpZGU6d2F0Y2gifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlVTQi1DIEh1YiIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixwcmljZTo0OS45OSxpY29uTmFtZToibHVjaWRlOnVzYiIsaW5TdG9jazohMX19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJQcm9kdWN0IGNhcmRzIHdpdGggZHluYW1pYyBjYXJ0IGNhbGN1bGF0aW9uIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPVt7aWQ6ImxhcHRvcCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6J01hY0Jvb2sgUHJvIDE0IicsY2F0ZWdvcnk6IkNvbXB1dGVycyIsZGVzY3JpcHRpb246Ik0zIFBybyBjaGlwIHdpdGggMThHQiBSQU0iLHByaWNlOjE5OTksb3JpZ2luYWxQcmljZToyMTk5LGljb25OYW1lOiJsdWNpZGU6bGFwdG9wIn19LHtpZDoiaXBhZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6ImlQYWQgQWlyIixjYXRlZ29yeToiVGFibGV0cyIsZGVzY3JpcHRpb246JzEwLjkiIExpcXVpZCBSZXRpbmEgZGlzcGxheScscHJpY2U6NTk5LGljb25OYW1lOiJsdWNpZGU6dGFibGV0In19LHtpZDoia2V5Ym9hcmQiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX1dLHQ9aSgoKT0+e2xldCBhPTAscj1bXTtlLmZvckVhY2gobz0+e2xldCBsPXMucXVlcnlTZWxlY3RvcihgIyR7by5pZH1gKTtpZihsJiZsLnF1YW50aXR5PjApe2xldCBwPW8uZGF0YS5wcmljZSpsLnF1YW50aXR5O2ErPXAsci5wdXNoKGAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7by5kYXRhLm5hbWV9ICgke2wucXVhbnRpdHl9KTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JCR7cC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfX0pO2xldCBuPXMucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSIpO24mJihuLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtyLmpvaW4oIiIpfQogICAgICAgICAgICAgICR7ci5sZW5ndGg9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7YS50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9LCJ1cGRhdGVDYXJ0U3VtbWFyeSIpO3NldFRpbWVvdXQodCwxMDApLHMucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLHQpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImxhcHRvcCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6J01hY0Jvb2sgUHJvIDE0IicsY2F0ZWdvcnk6IkNvbXB1dGVycyIsZGVzY3JpcHRpb246Ik0zIFBybyBjaGlwIHdpdGggMThHQiBSQU0iLHByaWNlOjE5OTksb3JpZ2luYWxQcmljZToyMTk5LGljb25OYW1lOiJsdWNpZGU6bGFwdG9wIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJpcGFkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPlNob3BwaW5nIENhcnQ8L2gzPgogICAgICAgICAgPGRpdiBpZD0iaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgICAgPCEtLSBEeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZWxlY3RhYmxlIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiQ2xpY2sgY2FyZHMgb3IgY2hlY2tib3hlcyB0byBzZWxlY3QgcHJvZHVjdHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgQWxwaGEgNyBJViIsY2F0ZWdvcnk6IkNhbWVyYXMiLGRlc2NyaXB0aW9uOiJGdWxsLWZyYW1lIG1pcnJvcmxlc3MgY2FtZXJhIixwcmljZToyNDk4LGljb25OYW1lOiJsdWNpZGU6Y2FtZXJhIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGE9W107dC5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZhLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9YS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7YS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiREpJIE1pbmkgMyBQcm8iLGNhdGVnb3J5OiJEcm9uZXMiLGRlc2NyaXB0aW9uOiJMaWdodHdlaWdodCBkcm9uZSB3aXRoIDRLIGNhbWVyYSIscHJpY2U6NzU5LGljb25OYW1lOiJsdWNpZGU6cGxhbmUifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksYT1bXTt0LmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmEucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1hLmxlbmd0aD4wP2BTZWxlY3RlZDogJHthLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJHb1BybyBIRVJPMTIiLGNhdGVnb3J5OiJBY3Rpb24gQ2FtZXJhcyIsZGVzY3JpcHRpb246IjUuM0sgdmlkZW8gd2l0aCBIeXBlclNtb290aCA2LjAiLHByaWNlOjM5OSxvcmlnaW5hbFByaWNlOjQ0OSxpY29uTmFtZToibHVjaWRlOnZpZGVvIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGE9W107dC5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZhLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9YS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7YS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3RlZC1wcm9kdWN0cyIgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICBObyBwcm9kdWN0cyBzZWxlY3RlZAogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZHVjdCBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMaW1pdGVkIEVkaXRpb24gU25lYWtlcnMiLGNhdGVnb3J5OiJGb290d2VhciIsZGVzY3JpcHRpb246IkV4Y2x1c2l2ZSBjb2xvcndheSAtIE9ubHkgNTAwIHBhaXJzIixwcmljZToyOTksaWNvbk5hbWU6Imx1Y2lkZTpmb290cHJpbnRzIixpblN0b2NrOiExLHN0b2NrVGV4dDoiU29sZCBPdXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6Ik1pbmltYWxpc3QgV2FsbGV0IixwcmljZTozOS45OSxpY29uTmFtZToibHVjaWRlOndhbGxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiUHJlbWl1bSBDb2ZmZWUgQmVhbnMiLGNhdGVnb3J5OiJGb29kICYgQmV2ZXJhZ2UiLGRlc2NyaXB0aW9uOiJTaW5nbGUgb3JpZ2luLCBtZWRpdW0gcm9hc3QiLHByaWNlOjE4LjUsaWNvbk5hbWU6Imx1Y2lkZTpjb2ZmZWUiLGN1cnJlbmN5OiJcdTIwQUMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB4eCxTMixqSmEsR290PWcoKCk9PntwZSgpO3liYSgpO2h0KCk7bXIoKTt4eD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sUzI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGpKYT0oKCk9PntsZXQgcz1bbmUoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk51bWJlcn0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSx4eCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2R1Y3REYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJwcm9kdWN0RGF0YSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnByb2R1Y3REYXRhLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucHJvZHVjdERhdGE9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHh4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicXVhbnRpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InF1YW50aXR5ImluIF8sImhhcyIpLGdldDppKF89Pl8ucXVhbnRpdHksImdldCIpLHNldDppKChfLE8pPT57Xy5xdWFudGl0eT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSkseHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UXVhbnRpdHlTZWxlY3RvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2hvd1F1YW50aXR5U2VsZWN0b3IiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zaG93UXVhbnRpdHlTZWxlY3RvciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNob3dRdWFudGl0eVNlbGVjdG9yPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSx4eCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNlbGVjdGFibGUiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RhYmxlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc2VsZWN0YWJsZT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZikseHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RlZCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSx4eChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPXhiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPVMyKHRoaXMsbyx7bmFtZToiUHJvZHVjdCBOYW1lIixwcmljZTowfSk7Z2V0IHByb2R1Y3REYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2R1Y3REYXRhKEMpe3RoaXMuI2U9Q30jdD0oUzIodGhpcyxsKSxTMih0aGlzLGQsMCkpO2dldCBxdWFudGl0eSgpe3JldHVybiB0aGlzLiN0fXNldCBxdWFudGl0eShDKXt0aGlzLiN0PUN9I2E9KFMyKHRoaXMsdSksUzIodGhpcyxiLCEwKSk7Z2V0IHNob3dRdWFudGl0eVNlbGVjdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dRdWFudGl0eVNlbGVjdG9yKEMpe3RoaXMuI2E9Q30jcz0oUzIodGhpcyx2KSxTMih0aGlzLG0sITEpKTtnZXQgc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RhYmxlKEMpe3RoaXMuI3M9Q30jaT0oUzIodGhpcyxmKSxTMih0aGlzLE0sITEpKTtnZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWQoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zZWxlY3RhYmxlIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zZWxlY3RlZDo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucHJvZHVjdC1pbWFnZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICB9CgogICAgICAucHJvZHVjdC1oZWFkZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhdGVnb3J5IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtYm9keSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgICAKICAgICAgLnByb2R1Y3QtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtcHJpY2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnByaWNlLWN1cnJlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5wcmljZS1vcmlnaW5hbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMuaW4tc3RvY2sgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMub3V0LW9mLXN0b2NrIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cyBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0e25hbWU6QyxjYXRlZ29yeTpfLGRlc2NyaXB0aW9uOk8scHJpY2U6JCxvcmlnaW5hbFByaWNlOkUsY3VycmVuY3k6SD0iJCIsaW5TdG9jazprPSEwLHN0b2NrVGV4dDpTPWs/IkluIFN0b2NrIjoiT3V0IG9mIFN0b2NrIixpbWFnZVVybDpJLGljb25OYW1lOlA9Imx1Y2lkZTpwYWNrYWdlIn09dGhpcy5wcm9kdWN0RGF0YSxSPWkoSz0+YCR7SH0ke0sudG9GaXhlZCgyKX1gLCJmb3JtYXRQcmljZSIpO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlCiAgICAgICAgY2xhc3M9IiR7dGhpcy5zZWxlY3RhYmxlPyJzZWxlY3RhYmxlIjoiIn0gJHt0aGlzLnNlbGVjdGVkPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2FyZENsaWNrfQogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJwcm9kdWN0LWhlYWRlci1iYXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtbmFtZSI+JHtDfTwvc3Bhbj4KICAgICAgICAgICR7Xz93YDxzcGFuIGNsYXNzPSJwcm9kdWN0LWNhdGVnb3J5Ij4ke199PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ib2R5Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtaW1hZ2UiPgogICAgICAgICAgICAke0k/d2AKICAgICAgICAgICAgICA8aW1nIHNyYz0iJHtJfSIgYWx0PSIke0N9Ij4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtQfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGFibGU/d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ic2VsZWN0aW9uLWNoZWNrYm94ICR7dGhpcy5zZWxlY3RlZD8iY2hlY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7Sz0+e0suc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5oYW5kbGVTZWxlY3Rpb25Ub2dnbGUoKX19CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50Ij4KICAgICAgICAgICAgJHtPP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1kZXNjcmlwdGlvbiI+JHtPfTwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdG9jay1zdGF0dXMgJHtrPyJpbi1zdG9jayI6Im91dC1vZi1zdG9jayJ9Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7az8ibHVjaWRlOmNoZWNrLWNpcmNsZSI6Imx1Y2lkZTp4LWNpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICR7U30KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InByb2R1Y3QtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcHJpY2UiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtY3VycmVudCI+JHtSKCQpfTwvc3Bhbj4KICAgICAgICAgICAgJHtFJiZFPiQ/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2Utb3JpZ2luYWwiPiR7UihFKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5zaG93UXVhbnRpdHlTZWxlY3Rvcj93YAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5xdWFudGl0eX0KICAgICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke0s9Pnt0aGlzLnF1YW50aXR5PUsuZGV0YWlsLmdldFZhbHVlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicXVhbnRpdHlDaGFuZ2UiLHtkZXRhaWw6e3F1YW50aXR5OnRoaXMucXVhbnRpdHkscHJvZHVjdERhdGE6dGhpcy5wcm9kdWN0RGF0YX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1oYW5kbGVDYXJkQ2xpY2soKXt0aGlzLnNlbGVjdGFibGUmJih0aGlzLnNlbGVjdGVkPSF0aGlzLnNlbGVjdGVkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWQ6dGhpcy5zZWxlY3RlZCxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1oYW5kbGVTZWxlY3Rpb25Ub2dnbGUoKXt0aGlzLnNlbGVjdGVkPSF0aGlzLnNlbGVjdGVkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWQ6dGhpcy5zZWxlY3RlZCxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxTMih0aGlzLHopfXN0YXRpY3tTMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgd2JhLGtiYT1nKCgpPT57cGUoKTtHb3QoKTt3YmE9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hvcHBpbmctZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBRdWFudGl0eSBTZWxlY3RvciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcXVhbnRpdHkgaW5wdXQgd2l0aCBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik1pbmltdW0gb3JkZXIgcXVhbnRpdHkgaXMgMSBpdGVtIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPWkoKCk9PntsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoIiNoZWFkcGhvbmVzLXF0eSIpLGE9cy5xdWVyeVNlbGVjdG9yKCIjbW91c2UtcXR5Iikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNrZXlib2FyZC1xdHkiKSxuPXQ/LnF1YW50aXR5fHwwLG89YT8ucXVhbnRpdHl8fDAsbD1yPy5xdWFudGl0eXx8MCxwPTM0OS45OSpuLGQ9OTkuOTkqbyx1PTc5Ljk5KmwsYz1wK2QrdSxiPXMucXVlcnlTZWxlY3RvcigiI2NhcnQtc3VtbWFyeS1jb250ZW50Iik7YiYmKGIuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke24+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPlNvbnkgV0gtMTAwMFhNNSAoJHtufSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtwLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtvPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Mb2dpdGVjaCBNWCBNYXN0ZXIgM1MgKCR7b30pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bD4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+S2V5Y2hyb24gSzIgKCR7bH0pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7dS50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7Yz09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtjLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0sInVwZGF0ZUNhcnRTdW1tYXJ5Iik7c2V0VGltZW91dChlLDEwMCkscy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIsZSl9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InNob3BwaW5nLWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImhlYWRwaG9uZXMtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBXSC0xMDAwWE01IFdpcmVsZXNzIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IkluZHVzdHJ5LWxlYWRpbmcgbm9pc2UgY2FuY2VsaW5nIHdpdGggQXV0byBOQyBPcHRpbWl6ZXIiLHByaWNlOjM0OS45OSxvcmlnaW5hbFByaWNlOjM5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJtb3VzZS1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMb2dpdGVjaCBNWCBNYXN0ZXIgM1MiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IlBlcmZvcm1hbmNlIHdpcmVsZXNzIG1vdXNlIHdpdGggdWx0cmEtZmFzdCBzY3JvbGxpbmciLHByaWNlOjk5Ljk5LGljb25OYW1lOiJsdWNpZGU6bW91c2UtcG9pbnRlciJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IktleWNocm9uIEsyIFdpcmVsZXNzIE1lY2hhbmljYWwgS2V5Ym9hcmQiLGNhdGVnb3J5OiJLZXlib2FyZHMiLGRlc2NyaXB0aW9uOiJDb21wYWN0IDc1JSBsYXlvdXQgd2l0aCBob3Qtc3dhcHBhYmxlIHN3aXRjaGVzIixwcmljZTo3OS45OSxvcmlnaW5hbFByaWNlOjk0Ljk5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+T3JkZXIgU3VtbWFyeTwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJjYXJ0LXN1bW1hcnktY29udGVudCI+CiAgICAgICAgICAgIDwhLS0gQ29udGVudCB3aWxsIGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24gYW5kIHJlc3RyaWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBTYmEsS290LFlvdCxab3Q9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO2tiYSgpO2h0KCk7U2JhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLb3Q9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFlvdD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvciIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0sU2JhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InZhbHVlImluIHUsImhhcyIpLGdldDppKHU9PnUudmFsdWUsImdldCIpLHNldDppKCh1LGMpPT57dS52YWx1ZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksU2JhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89d2JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1Lb3QodGhpcyxvLDEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyIHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yIHsKICAgICAgICAgIGZsZXg6IDAgMCA0MHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTElKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLnBsdXMgewogICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5IHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICB9CgogICAgICAgIC8qIEtleWJvYXJkIG5hdmlnYXRpb24gZm9jdXMgc3R5bGVzICovCiAgICAgICAgLnNlbGVjdG9yOmZvY3VzIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLyogTWluIHZhbHVlIHN0YXRlICovCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51czpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJxdWFudGl0eS1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgZGF0YS1taW49IiR7dGhpcy52YWx1ZTw9MH0iCiAgICAgICAgPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIG1pbnVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5kZWNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtkPT57KGQua2V5PT09IkVudGVyInx8ZC5rZXk9PT0iICIpJiYoZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVjcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJEZWNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID7iiJI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InF1YW50aXR5IiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1hdG9taWM9InRydWUiPiR7dGhpcy52YWx1ZX08L2Rpdj4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RvciBwbHVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5pbmNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtkPT57KGQua2V5PT09IkVudGVyInx8ZC5rZXk9PT0iICIpJiYoZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJJbmNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID4rPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1pbmNyZWFzZSgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlKyssdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWRlY3JlYXNlKCl7IXRoaXMuZGlzYWJsZWQmJnRoaXMudmFsdWU+MCYmKHRoaXMudmFsdWUtLSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShkKXt0aGlzLnZhbHVlPWR9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEtvdCh0aGlzLGwpfXN0YXRpY3tLb3QoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIF9iYSxNYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO19iYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmVzdWx0LWRpc3BsYXkgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBSYWRpbyBHcm91cHMifSAuc3VidGl0bGU9JHsiU2ltcGxlIHN0cmluZyBvcHRpb25zIGZvciBjb21tb24gdXNlIGNhc2VzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaXB0aW9uIFBsYW4ifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyAtICQ5L21vbnRoIiwiUHJvIC0gJDI5L21vbnRoIiwiRW50ZXJwcmlzZSAtICQ5OS9tb250aCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm8gLSAkMjkvbW9udGgifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgeW91ciBzdWJzY3JpcHRpb24gdGllciJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiUHJpb3JpdHkgTGV2ZWwifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJIaWdoIiwiTWVkaXVtIiwiTG93Il19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1lZGl1bSJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUmFkaW8gZ3JvdXBzIHdpdGggaG9yaXpvbnRhbCBhcnJhbmdlbWVudCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJEbyB5b3UgYWdyZWUgd2l0aCB0aGUgdGVybXM/In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlllcyIsIk5vIiwiTWF5YmUiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlllcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiRXhwZXJpZW5jZSBMZXZlbCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCZWdpbm5lciIsIkludGVybWVkaWF0ZSIsIkV4cGVydCJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSW50ZXJtZWRpYXRlIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB5b3VyIGV4cGVyaWVuY2UgbGV2ZWwgd2l0aCB3ZWIgZGV2ZWxvcG1lbnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gQWR2YW5jZWQgT3B0aW9ucyJ9IC5zdWJ0aXRsZT0keyJVc2luZyBvYmplY3QgZm9ybWF0IHdpdGgga2V5cyBhbmQgcGF5bG9hZHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICBpZD0iYWR2YW5jZWQtcmFkaW8iCiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFJlZ2lvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIChVUyBFYXN0KSIsa2V5OiJ1cy1lYXN0IixwYXlsb2FkOntyZWdpb246InVzLWVhc3QtMSIsbGF0ZW5jeToyMH19LHtvcHRpb246IkV1cm9wZSAoRnJhbmtmdXJ0KSIsa2V5OiJldS1jZW50cmFsIixwYXlsb2FkOntyZWdpb246ImV1LWNlbnRyYWwtMSIsbGF0ZW5jeTo1MH19LHtvcHRpb246IkFzaWEgUGFjaWZpYyAoU2luZ2Fwb3JlKSIsa2V5OiJhcC1zb3V0aGVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoiYXAtc291dGhlYXN0LTEiLGxhdGVuY3k6MTIwfX1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ImV1LWNlbnRyYWwifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB0aGUgY2xvc2VzdCByZWdpb24gZm9yIG9wdGltYWwgcGVyZm9ybWFuY2UifQogICAgICAgICAgQGNoYW5nZT0ke3M9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVnaW9uLXJlc3VsdCIpO2UmJihlLnRleHRDb250ZW50PSJTZWxlY3RlZDogIitKU09OLnN0cmluZ2lmeShzLmRldGFpbC52YWx1ZSxudWxsLDIpKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDxkaXYgaWQ9InJlZ2lvbi1yZXN1bHQiIGNsYXNzPSJyZXN1bHQtZGlzcGxheSI+U2VsZWN0ZWQ6IHsgInJlZ2lvbiI6ICJldS1jZW50cmFsLTEiLCAibGF0ZW5jeSI6IDUwIH08L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN1cnZleSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIHJhZGlvIGdyb3VwcyBmb3Igc3VydmV5cyBhbmQgZm9ybXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJIb3cgc2F0aXNmaWVkIGFyZSB5b3U/In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siVmVyeSBTYXRpc2ZpZWQiLCJTYXRpc2ZpZWQiLCJOZXV0cmFsIiwiRGlzc2F0aXNmaWVkIiwiVmVyeSBEaXNzYXRpc2ZpZWQiXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiU2F0aXNmaWVkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJXb3VsZCB5b3UgcmVjb21tZW5kIHVzPyJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRlZmluaXRlbHkiLCJQcm9iYWJseSIsIk5vdCBTdXJlIiwiUHJvYmFibHkgTm90IiwiRGVmaW5pdGVseSBOb3QiXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJvYmFibHkifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIFN0YXRlcyAmIFZhbGlkYXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgdmFsaWRhdGlvbiBleGFtcGxlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIFNlbGVjdGlvbiJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk9wdGlvbiBBIiwiT3B0aW9uIEIiLCJPcHRpb24gQyJdfQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBTdGF0ZSJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRpc2FibGVkIE9wdGlvbiAxIiwiRGlzYWJsZWQgT3B0aW9uIDIiLCJEaXNhYmxlZCBPcHRpb24gMyJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJEaXNhYmxlZCBPcHRpb24gMiJ9CiAgICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gU2V0dGluZ3MgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gcGF0dGVybnMgaW4gYXBwbGljYXRpb24gc2V0dGluZ3MifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgUHJlZmVyZW5jZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IFRoZW1lIixrZXk6ImxpZ2h0IixwYXlsb2FkOiJsaWdodCJ9LHtvcHRpb246IkRhcmsgVGhlbWUiLGtleToiZGFyayIscGF5bG9hZDoiZGFyayJ9LHtvcHRpb246IlN5c3RlbSBEZWZhdWx0IixrZXk6InN5c3RlbSIscGF5bG9hZDoiYXV0byJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ImRhcmsifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIGhvdyB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGFwcGVhciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIEZyZXF1ZW5jeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJBbGwgTm90aWZpY2F0aW9ucyIsIkltcG9ydGFudCBPbmx5IiwiTm9uZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSW1wb3J0YW50IE9ubHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ29udHJvbCBob3cgb2Z0ZW4geW91IHJlY2VpdmUgbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTGFuZ3VhZ2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giLCJKYXBhbmVzZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IldvcmtzIHNlYW1sZXNzbHkgd2l0aCBkZWVzLWZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBOYW1lIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicHJvZHVjdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IENhdGVnb3J5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVsZWN0cm9uaWNzIiwiQ2xvdGhpbmciLCJCb29rcyIsIkhvbWUgJiBHYXJkZW4iLCJTcG9ydHMiXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiY2F0ZWdvcnkifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJDb25kaXRpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTmV3IiwiTGlrZSBOZXciLCJHb29kIiwiRmFpciIsIlBvb3IiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJjb25kaXRpb24ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTmV3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU2hpcHBpbmcgU3BlZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJTdGFuZGFyZCAoNS03IGRheXMpIixrZXk6InN0YW5kYXJkIixwYXlsb2FkOntkYXlzOjcscHJpY2U6MH19LHtvcHRpb246IkV4cHJlc3MgKDItMyBkYXlzKSIsa2V5OiJleHByZXNzIixwYXlsb2FkOntkYXlzOjMscHJpY2U6MTB9fSx7b3B0aW9uOiJPdmVybmlnaHQiLGtleToib3Zlcm5pZ2h0IixwYXlsb2FkOntkYXlzOjEscHJpY2U6MjV9fV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJzdGFuZGFyZCJ9CiAgICAgICAgICAgIC5rZXk9JHsic2hpcHBpbmcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTdWJtaXQgUHJvZHVjdCJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIExRLEF1LFhvdCxOMWU9ZygoKT0+e3BlKCk7RWkoKTtNYmEoKTtodCgpO0xRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWG90PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1yYWRpb2dyb3VwIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFJhZGlvZ3JvdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woKV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxMUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im9wdGlvbnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oub3B0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksTFEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2VsZWN0ZWRPcHRpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNlbGVjdGVkT3B0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxMUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZGlyZWN0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZGlyZWN0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZGlyZWN0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxMUSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idmFsaWRhdGlvblN0YXRlImluIHosImhhcyIpLGdldDppKHo9PnoudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudmFsaWRhdGlvblN0YXRlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxMUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPV9iYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9QXUodGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKE0pe3RoaXMuI2U9TX0jdD0oQXUodGhpcyxsKSxBdSh0aGlzLGQsIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oTSl7dGhpcy4jdD1NfSNhPShBdSh0aGlzLHUpLEF1KHRoaXMsYiwidmVydGljYWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkaXJlY3Rpb24oTSl7dGhpcy4jYT1NfSNzPShBdSh0aGlzLHYpLEF1KHRoaXMsbSxudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNzfXNldCB2YWxpZGF0aW9uU3RhdGUoTSl7dGhpcy4jcz1NfWdldCB2YWx1ZSgpe2xldCBNPXRoaXMuZ2V0T3B0aW9uQnlLZXkodGhpcy5zZWxlY3RlZE9wdGlvbik7cmV0dXJuIHR5cGVvZiBNPT0ib2JqZWN0IiYmTS5wYXlsb2FkIT09dm9pZCAwP00ucGF5bG9hZDp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShNKXtpZih0eXBlb2YgTT09InN0cmluZyIpdGhpcy5zZWxlY3RlZE9wdGlvbj1NO2Vsc2V7bGV0IHo9dGhpcy5vcHRpb25zLmZpbmQoTj0+dHlwZW9mIE49PSJvYmplY3QiJiZOLnBheWxvYWQ9PT1NKTt6JiZ0eXBlb2Ygej09Im9iamVjdCImJih0aGlzLnNlbGVjdGVkT3B0aW9uPXoua2V5KX19c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmhvcml6b250YWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIC5yYWRpby1vcHRpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAyMHB4IDZweCAwOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGU6OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICB9CgogICAgICAucmFkaW8tY2lyY2xlOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDMuOSUpIil9LAogICAgICAgICAgICAgICAgICAgIDAgMCAwIDRweCAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgfQoKICAgICAgLmxhYmVsLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9InZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ3YXJuIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE92ZXJyaWRlIGJhc2UgZ3JpZCBsYXlvdXQgZm9yIHJhZGlvZ3JvdXAgdG8gcHJldmVudCBsYXJnZSBnYXBzICovCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0ibGFiZWwtdGV4dCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoTT0+e2xldCB6PXRoaXMuZ2V0T3B0aW9uS2V5KE0pLE49dGhpcy5nZXRPcHRpb25MYWJlbChNKSxDPXRoaXMuc2VsZWN0ZWRPcHRpb249PT16O3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tb3B0aW9uICR7Qz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oeil9IgogICAgICAgICAgICAgICAgQGtleWRvd249IiR7Xz0+dGhpcy5oYW5kbGVLZXlkb3duKF8seil9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1jaXJjbGUiIAogICAgICAgICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgICAgICAgcm9sZT0icmFkaW8iCiAgICAgICAgICAgICAgICAgIGFyaWEtY2hlY2tlZD0iJHtDfSIKICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJHtOfSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGlvLWxhYmVsIj4ke059PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWdldE9wdGlvbktleShNKXtyZXR1cm4gdHlwZW9mIE09PSJzdHJpbmciP006TS5rZXl9Z2V0T3B0aW9uTGFiZWwoTSl7cmV0dXJuIHR5cGVvZiBNPT0ic3RyaW5nIj9NOk0ub3B0aW9ufWdldE9wdGlvbkJ5S2V5KE0pe3JldHVybiB0aGlzLm9wdGlvbnMuZmluZCh6PT50aGlzLmdldE9wdGlvbktleSh6KT09PU0pfXNlbGVjdE9wdGlvbihNKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgej10aGlzLnNlbGVjdGVkT3B0aW9uO3RoaXMuc2VsZWN0ZWRPcHRpb249TSx6IT09TSYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShNKXt0aGlzLnZhbHVlPU19YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmIXRoaXMuc2VsZWN0ZWRPcHRpb24/KHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMSk6KHRoaXMudmFsaWRhdGlvblN0YXRlPSJ2YWxpZCIsITApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJiF0aGlzLnJlcXVpcmVkKXtsZXQgTT10aGlzLm9wdGlvbnNbMF07dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmdldE9wdGlvbktleShNKX19aGFuZGxlS2V5ZG93bihNLHope3RoaXMuZGlzYWJsZWR8fChNLmtleT09PSIgInx8TS5rZXk9PT0iRW50ZXIiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RPcHRpb24oeikpOk0ua2V5PT09IkFycm93RG93biJ8fE0ua2V5PT09IkFycm93UmlnaHQiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRPcHRpb24oKSk6KE0ua2V5PT09IkFycm93VXAifHxNLmtleT09PSJBcnJvd0xlZnQiKSYmKE0ucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzUHJldmlvdXNPcHRpb24oKSkpfWZvY3VzTmV4dE9wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksTj0oTS5maW5kSW5kZXgoQz0+Qz09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSsxKSVNLmxlbmd0aDtNW05dLmZvY3VzKCl9Zm9jdXNQcmV2aW91c09wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksej1NLmZpbmRJbmRleChDPT5DPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpLE49ejw9MD9NLmxlbmd0aC0xOnotMTtNW05dLmZvY3VzKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEF1KHRoaXMsZil9c3RhdGlje0F1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB6YmEsQ2JhPWcoKCk9PntwZSgpO3piYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMjRweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICM4ODg7CiAgICB9CiAgICAuZGVtby1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEycHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CYXNpYyBVc2FnZTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0ZXh0PSJXaXRoIFRleHQgUHJvcGVydHkiPjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+V2l0aCBJY29ucyAoaW5oZXJpdGVkIGZyb20gRGVlc0J1dHRvbik8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiPlN1Ym1pdDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6c2F2ZSIgaWNvblBvc2l0aW9uPSJsZWZ0Ij5TYXZlIEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOmFycm93LXJpZ2h0IiBpY29uUG9zaXRpb249InJpZ2h0Ij5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QnV0dG9uIFR5cGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9ImhpZ2hsaWdodGVkIiBpY29uPSJsdWNpZGU6c2VuZCI+SGlnaGxpZ2h0ZWQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0ibm9ybWFsIiBpY29uPSJsdWNpZGU6c2VuZCI+Tm9ybWFsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9ImRpc2NyZWV0IiBpY29uPSJsdWNpZGU6c2VuZCI+RGlzY3JlZXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9InNtYWxsIiBpY29uPSJsdWNpZGU6c2VuZCI+U21hbGw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ibm9ybWFsIiBpY29uPSJsdWNpZGU6c2VuZCI+Tm9ybWFsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9ImxhcmdlIiBpY29uPSJsdWNpZGU6c2VuZCI+TGFyZ2U8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlN0YXRlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InBlbmRpbmciIGljb249Imx1Y2lkZTpzZW5kIj5QZW5kaW5nPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0ic3VjY2VzcyIgaWNvbj0ibHVjaWRlOmNoZWNrIj5TdWNjZXNzPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0iZXJyb3IiIGljb249Imx1Y2lkZTp4Ij5FcnJvcjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBkaXNhYmxlZCBpY29uPSJsdWNpZGU6c2VuZCI+RGlzYWJsZWQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkluIGEgRm9ybSBDb250ZXh0PC9oMz4KICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJOYW1lIiBrZXk9Im5hbWUiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9IkVtYWlsIiBrZXk9ImVtYWlsIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6c2VuZCIgdHlwZT0iaGlnaGxpZ2h0ZWQiPlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIG40LEtuLFFvdCxXZz1nKCgpPT57Q2JhKCk7cGUoKTtodCgpO240PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxLbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sUW90PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1mb3JtLXN1Ym1pdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRm9ybVN1Ym1pdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seT1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxuNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJkaXNhYmxlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmRpc2FibGVkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZGlzYWJsZWQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLG40KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRleHQsImdldCIpLHNldDppKChTLEkpPT57Uy50ZXh0PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxuNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3RhdHVzImluIFMsImhhcyIpLGdldDppKFM9PlMuc3RhdHVzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3RhdHVzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxuNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InR5cGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50eXBlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudHlwZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksbjQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaXplImluIFMsImhhcyIpLGdldDppKFM9PlMuc2l6ZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNpemU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLG40KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaWNvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmljb24sImdldCIpLHNldDppKChTLEkpPT57Uy5pY29uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxuNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaWNvblBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvblBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaWNvblBvc2l0aW9uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxuNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXpiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZvcm0iLCJCdXR0b24iXTsjZT1Lbih0aGlzLG8sITEpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNlfXNldCBkaXNhYmxlZChrKXt0aGlzLiNlPWt9I3Q9KEtuKHRoaXMsbCksS24odGhpcyxkLHZvaWQgMCkpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQoayl7dGhpcy4jdD1rfSNhPShLbih0aGlzLHUpLEtuKHRoaXMsYiwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3RhdHVzKGspe3RoaXMuI2E9a30jcz0oS24odGhpcyx2KSxLbih0aGlzLG0sImRlZmF1bHQiKSk7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdHlwZShrKXt0aGlzLiNzPWt9I2k9KEtuKHRoaXMsZiksS24odGhpcyxNLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNpemUoayl7dGhpcy4jaT1rfSNyPShLbih0aGlzLHopLEtuKHRoaXMsQyx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNyfXNldCBpY29uKGspe3RoaXMuI3I9a30jbz0oS24odGhpcyxfKSxLbih0aGlzLCQsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNvfXNldCBpY29uUG9zaXRpb24oayl7dGhpcy4jbz1rfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxLbih0aGlzLEUpfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CiAgICAgIGRlZXMtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgIC5zdGF0dXM9JHt0aGlzLnN0YXR1c30KICAgICAgICAudHlwZT0ke3RoaXMudHlwZX0KICAgICAgICAuc2l6ZT0ke3RoaXMuc2l6ZX0KICAgICAgICAuaWNvbj0ke3RoaXMuaWNvbn0KICAgICAgICAuaWNvblBvc2l0aW9uPSR7dGhpcy5pY29uUG9zaXRpb259CiAgICAgICAgLnRleHQ9JHt0aGlzLnRleHR9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICBAY2xpY2tlZD0ke3RoaXMuc3VibWl0fQogICAgICA+PC9kZWVzLWJ1dHRvbj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoIXRoaXMudGV4dCl7bGV0IGs9dGhpcy50ZXh0Q29udGVudD8udHJpbSgpO2smJih0aGlzLnRleHQ9ayl9fWFzeW5jIHN1Ym1pdCgpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBrPXRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIik7ayYmay5nYXRoZXJBbmREaXNwYXRjaCYmay5nYXRoZXJBbmREaXNwYXRjaCgpfWFzeW5jIGZvY3VzKCl7bGV0IGs9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5kaXNhYmxlZHx8KGF3YWl0IGsuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1pdCgpKX1zdGF0aWN7S24oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIFRiYSwkYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO3l4KCk7V2coKTtUYmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnNwYWNlciB7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltsYWJlbD0iU2VsZWN0IENvdW50cnkiXScpLHQ9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgUm9sZSJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKGE9Pntjb25zb2xlLmxvZygiQ291bnRyeSBzZWxlY3RlZDoiLGEuZGV0YWlsKX0pKSx0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2NvbnNvbGUubG9nKCJSb2xlIHNlbGVjdGVkOiIsYS5kZXRhaWwpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBEcm9wZG93bnMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgZHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBhbmQgdmFyaW91cyBvcHRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgQ291bnRyeSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgdGhlIGNvdW50cnkgd2hlcmUgeW91ciBidXNpbmVzcyBpcyByZWdpc3RlcmVkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9LHtvcHRpb246IkNhbmFkYSIsa2V5OiJjYSJ9LHtvcHRpb246Ikdlcm1hbnkiLGtleToiZGUifSx7b3B0aW9uOiJGcmFuY2UiLGtleToiZnIifSx7b3B0aW9uOiJVbml0ZWQgS2luZ2RvbSIsa2V5OiJ1ayJ9LHtvcHRpb246IkF1c3RyYWxpYSIsa2V5OiJhdSJ9LHtvcHRpb246IkphcGFuIixrZXk6ImpwIn0se29wdGlvbjoiQnJhemlsIixrZXk6ImJyIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUm9sZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFkbWluaXN0cmF0b3IiLGtleToiYWRtaW4ifSx7b3B0aW9uOiJFZGl0b3IiLGtleToiZWRpdG9yIn0se29wdGlvbjoiVmlld2VyIixrZXk6InZpZXdlciJ9LHtvcHRpb246Ikd1ZXN0IixrZXk6Imd1ZXN0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHQ9Pntjb25zb2xlLmxvZyhgUHJpb3JpdHkgY2hhbmdlZCB0bzogJHt0LmRldGFpbC5vcHRpb259YCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGhvdXQgU2VhcmNoIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgZGlzYWJsZWQgZm9yIHNpbXBsZXIgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJIaWdoIixrZXk6ImhpZ2gifSx7b3B0aW9uOiJNZWRpdW0iLGtleToibWVkaXVtIn0se29wdGlvbjoiTG93IixrZXk6ImxvdyJ9XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZHJvcGRvd24iKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2xldCByPXQuZ2V0QXR0cmlidXRlKCJsYWJlbCIpO2NvbnNvbGUubG9nKGAke3J9OiAke2EuZGV0YWlsLm9wdGlvbn1gKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBkcm9wZG93bnMgaW4gYSBob3Jpem9udGFsIGxheW91dCBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiRGVwYXJ0bWVudCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5naW5lZXJpbmciLGtleToiZW5nIn0se29wdGlvbjoiRGVzaWduIixrZXk6ImRlc2lnbiJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gU2l6ZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IjEtNSIsa2V5OiJzbWFsbCJ9LHtvcHRpb246IjYtMjAiLGtleToibWVkaXVtIn0se29wdGlvbjoiMjEtNTAiLGtleToibGFyZ2UifSx7b3B0aW9uOiI1MCsiLGtleToieGxhcmdlIn1dfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiTG9jYXRpb24ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlJlbW90ZSIsa2V5OiJyZW1vdGUifSx7b3B0aW9uOiJPbi1zaXRlIixrZXk6Im9uc2l0ZSJ9LHtvcHRpb246Ikh5YnJpZCIsa2V5OiJoeWJyaWQifV19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiUmVxdWlyZWQgZHJvcGRvd24gbG9zdCBmb2N1cyIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiT3B0aW9uIEEiLGtleToiYSJ9LHtvcHRpb246Ik9wdGlvbiBCIixrZXk6ImIifSx7b3B0aW9uOiJPcHRpb24gQyIsa2V5OiJjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRHJvcGRvd24ifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICAoU3BhY2VyIHRvIHRlc3QgZHJvcGRvd24gcG9zaXRpb25pbmcpCiAgICA8L2Rpdj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLCh0PT57Y29uc29sZS5sb2coIkJvdHRvbSBkcm9wZG93biBzZWxlY3RlZDoiLHQuZGV0YWlsKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQm90dG9tIFBvc2l0aW9uaW5nIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHRoYXQgb3BlbnMgdXB3YXJkIHdoZW4gbmVhciBib3R0b20gb2Ygdmlld3BvcnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7Ik9wZW5zIFVwd2FyZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJGaXJzdCBPcHRpb24iLGtleToiZmlyc3QifSx7b3B0aW9uOiJTZWNvbmQgT3B0aW9uIixrZXk6InNlY29uZCJ9LHtvcHRpb246IlRoaXJkIE9wdGlvbiIsa2V5OiJ0aGlyZCJ9LHtvcHRpb246IkZvdXJ0aCBPcHRpb24iLGtleToiZm91cnRoIn0se29wdGlvbjoiRmlmdGggT3B0aW9uIixrZXk6ImZpZnRoIn1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIiksdD1zLnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7ZSYmdCYmKHQuaW5uZXJIVE1MPSI8ZW0+U2VsZWN0IGEgcHJvZHVjdCB0byBzZWUgZGV0YWlscy4uLjwvZW0+IixlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PnthLmRldGFpbC52YWx1ZSYmKHQuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPlNlbGVjdGVkOjwvc3Ryb25nPiAke2EuZGV0YWlsLnZhbHVlLm9wdGlvbn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5LZXk6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUua2V5fTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPlByaWNlOjwvc3Ryb25nPiAkJHthLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5wcmljZXx8Ik4vQSJ9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+RmVhdHVyZXM6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUucGF5bG9hZD8uZmVhdHVyZXM/LmpvaW4oIiwgIil8fCJOL0EifQogICAgICAgICAgICBgKX0pKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nICYgUGF5bG9hZCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHBheWxvYWQgZGF0YSBhbmQgY2hhbmdlIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUHJvZHVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJCYXNpYyBQbGFuIixrZXk6ImJhc2ljIixwYXlsb2FkOntwcmljZTo5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIl19fSx7b3B0aW9uOiJQcm8gUGxhbiIsa2V5OiJwcm8iLHBheWxvYWQ6e3ByaWNlOjE5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIl19fSx7b3B0aW9uOiJFbnRlcnByaXNlIFBsYW4iLGtleToiZW50ZXJwcmlzZSIscGF5bG9hZDp7cHJpY2U6NDkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiLCJGZWF0dXJlIEMiXX19XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOyBib3JkZXItcmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTogMTRweDsiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIiksdD1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJwcm9qZWN0VHlwZSJdJyksYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJmcmFtZXdvcmsiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChyPT57Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLHIuZGV0YWlsLmRhdGEpfSkpLHQmJmEmJnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChyPT57bGV0IG49ci5kZXRhaWwua2V5O2NvbnNvbGUubG9nKGBQcm9qZWN0IHR5cGUgY2hhbmdlZCB0bzogJHtufWApfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdvcmtpbmcgd2l0aGluIGEgZm9ybSB3aXRoIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgVHlwZSJ9CiAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdFR5cGUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIEFwcGxpY2F0aW9uIixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHBsaWNhdGlvbiIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIEFwcGxpY2F0aW9uIixrZXk6ImRlc2t0b3AifSx7b3B0aW9uOiJBUEkgU2VydmljZSIsa2V5OiJhcGkifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcG1lbnQgRnJhbWV3b3JrIn0KICAgICAgICAgICAgLmtleT0keyJmcmFtZXdvcmsifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVhY3QiLGtleToicmVhY3QiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJWdWUuanMiLGtleToidnVlIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiQW5ndWxhciIsa2V5OiJhbmd1bGFyIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiUmVhY3QgTmF0aXZlIixrZXk6InJlYWN0LW5hdGl2ZSIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkZsdXR0ZXIiLGtleToiZmx1dHRlciIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkVsZWN0cm9uIixrZXk6ImVsZWN0cm9uIixwYXlsb2FkOnt0eXBlOiJkZXNrdG9wIn19XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IkNyZWF0ZSBQcm9qZWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgXzIsZ3IsSm90LGVudD1nKCgpPT57cGUoKTtrdCgpO0duKCk7RXIoKTtodCgpO3YyKCk7XzI9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGdyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxKb3Q9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWRyb3Bkb3duLXBvcHVwIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93blBvcHVwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe2F0dHJpYnV0ZTohMX0pXSx5PVtMKHthdHRyaWJ1dGU6ITF9KV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLF8yKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ib3B0aW9ucyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLm9wdGlvbnMsImdldCIpLHNldDppKChVLGhlKT0+e1Uub3B0aW9ucz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxvLGwpLF8yKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlU2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJlbmFibGVTZWFyY2giaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5lbmFibGVTZWFyY2gsImdldCIpLHNldDppKChVLGhlKT0+e1UuZW5hYmxlU2VhcmNoPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGQsdSksXzIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJvcGVuc1RvVG9wImluIFUsImhhcyIpLGdldDppKFU9PlUub3BlbnNUb1RvcCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5vcGVuc1RvVG9wPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGIsdiksXzIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmlnZ2VyUmVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idHJpZ2dlclJlY3QiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS50cmlnZ2VyUmVjdCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50cmlnZ2VyUmVjdD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxtLGYpLF8yKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3duZXJDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Im93bmVyQ29tcG9uZW50ImluIFUsImhhcyIpLGdldDppKFU9PlUub3duZXJDb21wb25lbnQsImdldCIpLHNldDppKChVLGhlKT0+e1Uub3duZXJDb21wb25lbnQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sTSx6KSxfMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlcmVkT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iZmlsdGVyZWRPcHRpb25zImluIFUsImhhcyIpLGdldDppKFU9PlUuZmlsdGVyZWRPcHRpb25zLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmZpbHRlcmVkT3B0aW9ucz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLF8yKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaGlnaGxpZ2h0ZWRJbmRleCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmhpZ2hsaWdodGVkSW5kZXgsImdldCIpLHNldDppKChVLGhlKT0+e1UuaGlnaGxpZ2h0ZWRJbmRleD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSwkLEUpLF8yKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InNlYXJjaFZhbHVlImluIFUsImhhcyIpLGdldDppKFU9PlUuc2VhcmNoVmFsdWUsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2VhcmNoVmFsdWU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sayxTKSxfMih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Im1lbnVaSW5kZXgiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5tZW51WkluZGV4LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLm1lbnVaSW5kZXg9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sUCxSKSxfMih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InZpc2libGUiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnZpc2libGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sVixXKSxfMihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpCfSxudWxsLHQpLG1lPWE9ZS52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX0jZT1ncih0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoQil7dGhpcy4jZT1CfSN0PShncih0aGlzLGwpLGdyKHRoaXMsZCwhMCkpO2dldCBlbmFibGVTZWFyY2goKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW5hYmxlU2VhcmNoKEIpe3RoaXMuI3Q9Qn0jYT0oZ3IodGhpcyx1KSxncih0aGlzLGIsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNhfXNldCBvcGVuc1RvVG9wKEIpe3RoaXMuI2E9Qn0jcz0oZ3IodGhpcyx2KSxncih0aGlzLG0sbnVsbCkpO2dldCB0cmlnZ2VyUmVjdCgpe3JldHVybiB0aGlzLiNzfXNldCB0cmlnZ2VyUmVjdChCKXt0aGlzLiNzPUJ9I2k9KGdyKHRoaXMsZiksZ3IodGhpcyxNLG51bGwpKTtnZXQgb3duZXJDb21wb25lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgb3duZXJDb21wb25lbnQoQil7dGhpcy4jaT1CfSNyPShncih0aGlzLHopLGdyKHRoaXMsQyxbXSkpO2dldCBmaWx0ZXJlZE9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyZWRPcHRpb25zKEIpe3RoaXMuI3I9Qn0jbz0oZ3IodGhpcyxfKSxncih0aGlzLCQsMCkpO2dldCBoaWdobGlnaHRlZEluZGV4KCl7cmV0dXJuIHRoaXMuI299c2V0IGhpZ2hsaWdodGVkSW5kZXgoQil7dGhpcy4jbz1CfSNuPShncih0aGlzLEUpLGdyKHRoaXMsaywiIikpO2dldCBzZWFyY2hWYWx1ZSgpe3JldHVybiB0aGlzLiNufXNldCBzZWFyY2hWYWx1ZShCKXt0aGlzLiNuPUJ9I2w9KGdyKHRoaXMsUyksZ3IodGhpcyxQLDFlMykpO2dldCBtZW51WkluZGV4KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1lbnVaSW5kZXgoQil7dGhpcy4jbD1CfSNjPShncih0aGlzLFIpLGdyKHRoaXMsViwhMSkpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZpc2libGUoQil7dGhpcy4jYz1CfXdpbmRvd0xheWVyPShncih0aGlzLFcpLG51bGwpO2lzRGVzdHJveWluZz0hMTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3ggewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAub3B0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAycHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAubm8tb3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuc2VhcmNoIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMudHJpZ2dlclJlY3QpcmV0dXJuIHdgYDtsZXQgQj10aGlzLmNvbXB1dGVQb3NpdGlvblN0eWxlKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic2VsZWN0aW9uQm94ICR7dGhpcy52aXNpYmxlPyJzaG93IjoiIn0gJHt0aGlzLm9wZW5zVG9Ub3A/InRvcCI6ImJvdHRvbSJ9IgogICAgICAgIHN0eWxlPSIke0J9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgJHt0aGlzLmVuYWJsZVNlYXJjaD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaCI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBvcHRpb25zLi4uIgogICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5zZWFyY2hWYWx1ZX0iCiAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLmhhbmRsZVNlYXJjaH0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHtVPT5VLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3dufSIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJuby1vcHRpb25zIj5ObyBvcHRpb25zIGZvdW5kPC9kaXY+YDp0aGlzLmZpbHRlcmVkT3B0aW9ucy5tYXAoKFUsaGUpPT57bGV0IEY9dGhpcy5oaWdobGlnaHRlZEluZGV4PT09aGU7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3B0aW9uICR7Rj8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0T3B0aW9uKFUpfSIKICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0iJHsoKT0+dGhpcy5oaWdobGlnaHRlZEluZGV4PWhlfSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7VS5vcHRpb259CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29tcHV0ZVBvc2l0aW9uU3R5bGUoKXtsZXQgQj10aGlzLnRyaWdnZXJSZWN0LFU9Qi5sZWZ0LGhlPUIud2lkdGg7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgRj13aW5kb3cuaW5uZXJIZWlnaHQtQi50b3ArNDtyZXR1cm5gbGVmdDogJHtVfXB4OyB3aWR0aDogJHtoZX1weDsgYm90dG9tOiAke0Z9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgRj1CLmJvdHRvbSs0O3JldHVybmBsZWZ0OiAke1V9cHg7IHdpZHRoOiAke2hlfXB4OyB0b3A6ICR7Rn1weGB9fWFzeW5jIHNob3coKXt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5oaWdobGlnaHRlZEluZGV4PTAsdGhpcy5zZWFyY2hWYWx1ZT0iIix0aGlzLndpbmRvd0xheWVyPWF3YWl0IFJvLmNyZWF0ZUFuZFNob3coKSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9KSx0aGlzLm1lbnVaSW5kZXg9X2EuZ2V0TmV4dFpJbmRleCgpLF9hLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMpLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse3Bhc3NpdmU6ITB9KX1hc3luYyBoaWRlKCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSksX2EudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLndpbmRvd0xheWVyJiYodGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllcj1udWxsKSx0aGlzLnZpc2libGU9ITEsYXdhaXQgdXQuc21hcnRkZWxheS5kZWxheUZvcigxNTApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMuaXNEZXN0cm95aW5nPSExKX1hc3luYyBmb2N1c1NlYXJjaElucHV0KCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgQj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaCBpbnB1dCIpO0ImJkIuZm9jdXMoKX11cGRhdGVPcHRpb25zKEIpe2lmKHRoaXMub3B0aW9ucz1CLHRoaXMuc2VhcmNoVmFsdWUpe2xldCBVPXRoaXMuc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKGhlPT5oZS5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhVKSl9ZWxzZSB0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnM7dGhpcy5oaWdobGlnaHRlZEluZGV4PTB9c2VsZWN0T3B0aW9uKEIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9wdGlvbi1zZWxlY3RlZCIse2RldGFpbDpCfSkpfWhhbmRsZVNlYXJjaD1pKEI9PntsZXQgVT1CLnRhcmdldC52YWx1ZTt0aGlzLnNlYXJjaFZhbHVlPVU7bGV0IGhlPVUudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKEY9PkYub3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaGUpKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH0sImhhbmRsZVNlYXJjaCIpO2hhbmRsZVNlYXJjaEtleWRvd249aShCPT57bGV0IFU9Qi5rZXksaGU9dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoLTE7VT09PSJBcnJvd0Rvd24iPyhCLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZEluZGV4PXRoaXMuaGlnaGxpZ2h0ZWRJbmRleCsxPmhlPzA6dGhpcy5oaWdobGlnaHRlZEluZGV4KzEpOlU9PT0iQXJyb3dVcCI/KEIucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4LTE8MD9oZTp0aGlzLmhpZ2hsaWdodGVkSW5kZXgtMSk6VT09PSJFbnRlciI/KEIucHJldmVudERlZmF1bHQoKSx0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdJiZ0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdKSk6VT09PSJFc2NhcGUiJiYoQi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSkpfSwiaGFuZGxlU2VhcmNoS2V5ZG93biIpO2hhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSksX2EudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7Z3IoYSx0KX19O3JldHVybiBtZT1hfSkoKX0pO3ZhciB3eCxNMix0bnQsUjFlPWcoKCk9PntwZSgpOyRiYSgpO0VpKCk7RXIoKTtodCgpO2VudCgpO3d4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxNMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdG50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1kcm9wZG93biIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93biIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCgpXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1bWSgpXSx3eCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Im9wdGlvbnMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ub3B0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksd3godGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWRPcHRpb24iaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkT3B0aW9uPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSx3eCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVNlYXJjaCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZW5hYmxlU2VhcmNoImluIF8sImhhcyIpLGdldDppKF89Pl8uZW5hYmxlU2VhcmNoLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZW5hYmxlU2VhcmNoPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSx3eCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpbnRlZ3JhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ2aW50ZWdyYXRlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZpbnRlZ3JhdGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udmludGVncmF0ZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLHd4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImlzT3BlbmVkImluIF8sImhhcyIpLGdldDppKF89Pl8uaXNPcGVuZWQsImdldCIpLHNldDppKChfLE8pPT57Xy5pc09wZW5lZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksd3gobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1UYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPU0yKHRoaXMsbyxbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhDKXt0aGlzLiNlPUN9I3Q9KE0yKHRoaXMsbCksTTIodGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oQyl7dGhpcy4jdD1DfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShDKXt0aGlzLnNlbGVjdGVkT3B0aW9uPUN9I2E9KE0yKHRoaXMsdSksTTIodGhpcyxiLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiNhfXNldCBlbmFibGVTZWFyY2goQyl7dGhpcy4jYT1DfSNzPShNMih0aGlzLHYpLE0yKHRoaXMsbSwhMSkpO2dldCB2aW50ZWdyYXRlZCgpe3JldHVybiB0aGlzLiNzfXNldCB2aW50ZWdyYXRlZChDKXt0aGlzLiNzPUN9I2k9KE0yKHRoaXMsZiksTTIodGhpcyxNLCExKSk7Z2V0IGlzT3BlbmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzT3BlbmVkKEMpe3RoaXMuI2k9Q31wb3B1cEluc3RhbmNlPShNMih0aGlzLHopLG51bGwpO3N0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveCB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveDpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIERyb3Bkb3duIGFycm93ICovCiAgICAgIC5zZWxlY3RlZEJveDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5vcGVuOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpOwogICAgICB9CgogICAgICAvKiBWaXN1YWxseSBpbnRlZ3JhdGVkIG1vZGU6IHNoZWQgY2hyb21lIHRvIGJsZW5kIGludG8gYSBob3N0IGNvbXBvbmVudAogICAgICAgICAoZS5nLiBhIGRlZXMtdGFibGUgY2VsbCBpbiBlZGl0IG1vZGUpLiAqLwogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBkZWVzLWxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5tYWluY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94IHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCAzMnB4IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5zZWxlY3RlZEJveDpob3Zlcjpub3QoLmRpc2FibGVkKSwKICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIC5zZWxlY3RlZEJveDo6YWZ0ZXIgewogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InNlbGVjdGVkQm94ICR7dGhpcy5pc09wZW5lZD8ib3BlbiI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlbGVjdGVkQm94S2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy5zZWxlY3RlZE9wdGlvbj8ub3B0aW9ufHwiU2VsZWN0IGFuIG9wdGlvbiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5zZWxlY3RlZE9wdGlvbnx8bnVsbH11cGRhdGVkKEMpe3N1cGVyLnVwZGF0ZWQoQyksQy5oYXMoIm9wdGlvbnMiKSYmdGhpcy5wb3B1cEluc3RhbmNlJiZ0aGlzLmlzT3BlbmVkJiZ0aGlzLnBvcHVwSW5zdGFuY2UudXBkYXRlT3B0aW9ucyh0aGlzLm9wdGlvbnMpfWFzeW5jIHVwZGF0ZVNlbGVjdGlvbihDKXt0aGlzLnNlbGVjdGVkT3B0aW9uPUMsdGhpcy5jbG9zZVBvcHVwKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0ZWRPcHRpb24iLHtkZXRhaWw6QyxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWFzeW5jIHRvZ2dsZVNlbGVjdGlvbkJveCgpe2lmKHRoaXMuaXNPcGVuZWQpe3RoaXMuY2xvc2VQb3B1cCgpO3JldHVybn10aGlzLmlzT3BlbmVkPSEwO2xldCBfPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWRCb3giKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxPPXdpbmRvdy5pbm5lckhlaWdodC1fLmJvdHRvbSwkPV8udG9wLEU9TzwzMDAmJiQ+Tzt0aGlzLnBvcHVwSW5zdGFuY2V8fCh0aGlzLnBvcHVwSW5zdGFuY2U9bmV3IEpvdCksdGhpcy5wb3B1cEluc3RhbmNlLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMucG9wdXBJbnN0YW5jZS5lbmFibGVTZWFyY2g9dGhpcy5lbmFibGVTZWFyY2gsdGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9RSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9Xyx0aGlzLnBvcHVwSW5zdGFuY2Uub3duZXJDb21wb25lbnQ9dGhpcyx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLGF3YWl0IHRoaXMucG9wdXBJbnN0YW5jZS5zaG93KCksdGhpcy5lbmFibGVTZWFyY2gmJmF3YWl0IHRoaXMucG9wdXBJbnN0YW5jZS5mb2N1c1NlYXJjaElucHV0KCl9Y2xvc2VQb3B1cCgpe3RoaXMuaXNPcGVuZWQ9ITEsdGhpcy5wb3B1cEluc3RhbmNlJiYodGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9wdGlvbi1zZWxlY3RlZCIsdGhpcy5oYW5kbGVPcHRpb25TZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuaGlkZSgpKX1oYW5kbGVPcHRpb25TZWxlY3RlZD1pKEM9PntsZXQgXz1DLmRldGFpbDt0aGlzLnVwZGF0ZVNlbGVjdGlvbihfKX0sImhhbmRsZU9wdGlvblNlbGVjdGVkIik7aGFuZGxlQ2xvc2VSZXF1ZXN0PWkoKCk9Pnt0aGlzLmNsb3NlUG9wdXAoKX0sImhhbmRsZUNsb3NlUmVxdWVzdCIpO2hhbmRsZVJlcG9zaXRpb25SZXF1ZXN0PWkoKCk9PntpZighdGhpcy5wb3B1cEluc3RhbmNlfHwhdGhpcy5pc09wZW5lZClyZXR1cm47bGV0IEM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpO2lmKCFDKXJldHVybjtsZXQgXz1DLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKF8uYm90dG9tPDB8fF8udG9wPndpbmRvdy5pbm5lckhlaWdodCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufWxldCBPPXdpbmRvdy5pbm5lckhlaWdodC1fLmJvdHRvbSwkPV8udG9wO3RoaXMucG9wdXBJbnN0YW5jZS5vcGVuc1RvVG9wPU88MzAwJiYkPk8sdGhpcy5wb3B1cEluc3RhbmNlLnRyaWdnZXJSZWN0PV99LCJoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCIpO2hhbmRsZVNlbGVjdGVkQm94S2V5ZG93bihDKXt0aGlzLmRpc2FibGVkfHwoQy5rZXk9PT0iRW50ZXIifHxDLmtleT09PSIgIj8oQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCkpOkMua2V5PT09IkFycm93RG93biJ8fEMua2V5PT09IkFycm93VXAiPyhDLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZHx8dGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Qy5rZXk9PT0iRXNjYXBlIiYmKEMucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkJiZ0aGlzLmNsb3NlUG9wdXAoKSkpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoQyl7dGhpcy5zZWxlY3RlZE9wdGlvbj1DfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCksdGhpcy5wb3B1cEluc3RhbmNlPW51bGwpfXN0YXRpY3tNMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgRGJhLExiYT1nKCgpPT57cGUoKTthbnQoKTt4bygpO0RiYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tc2hlbGwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMTYwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgewogICAgICAgICAgLmRlbW8tZ3JpZC0tdHdvIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc3RhY2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxNSAyMCUgMjYlKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEzIDEwMCUgOTclKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjUlIDMyJSkiLCJoc2woMjE1IDIwJSA4MiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDQ1JSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2hlbGwiPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJNb2Rlcm4gZmlsZSB1cGxvYWRlciJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlNoYWRjbi1pbnNwaXJlZCBsYXlvdXQgd2l0aCBkcmFnICYgZHJvcCwgcHJldmlld3MgYW5kIHZhbGlkYXRpb24ifQogICAgICA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCBkZW1vLWdyaWQtLXR3byI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJBdHRhY2htZW50cyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIHN1cHBvcnRpbmcgZG9jdW1lbnRzIGZvciB5b3VyIHJlcXVlc3QifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFjY2VwdGVkIGZvcm1hdHM6IGltYWdlcywgUERGLCBhbmQgWklQIGFyY2hpdmVzIHVwIHRvIDEwTUIifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qLC5wZGYsLnppcCJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezEwKjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJCcmFuZCBhc3NldHMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IlVwbG9hZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VyeSAoSlBHL1BORykifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS9qcGVnLGltYWdlL3BuZyJ9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7NSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAuYnV0dG9uVGV4dD0keyJTZWxlY3QgY292ZXIgaW1hZ2UifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQXVkaW8gdXBsb2FkcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2hhcmUgcG9kY2FzdCBkcmFmdHMgKE1QMy9XQVYsIG1heCAyNU1CIGVhY2gpIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXVkaW8vKiJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezI1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBleGFtcGxlIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWRlciBpcyBkaXNhYmxlZCB3aGlsZSBtb2RlcmF0aW9uIGlzIHBlbmRpbmcifQogICAgICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGb3JtIGludGVncmF0aW9uIn0KICAgICAgICAuc3VidGl0bGU9JHsiQ29tYmluZSBmaWxlIHVwbG9hZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgREVFUyBmb3JtIGVjb3N5c3RlbSJ9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBuYW1lIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJIb3cgc2hvdWxkIHdlIHJlZmVyIHRvIHRoaXMgcHJvamVjdCBpbnRlcm5hbGx5PyJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdE5hbWUifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgZW1haWwifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJlbWFpbCJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsiY29udGFjdEVtYWlsIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJTdGF0ZW1lbnQgb2Ygd29yayJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIGEgc2lnbmVkIHN0YXRlbWVudCBvZiB3b3JrIChQREYsIG1heCAxNU1CKSJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXBwbGljYXRpb24vcGRmIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTUqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgICAua2V5PSR7InNvdyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ3JlYXRpdmUgcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiT3B0aW9uYWwuIFVwbG9hZCB1cCB0byBmaXZlIHZpc3VhbCByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiJ9CiAgICAgICAgICAgICAgICAubWF4RmlsZXM9JHs1fQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs4KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiTm90ZXMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBvcHRpb25hbCBjb250ZXh0IGZvciByZXZpZXdlcnMifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgICAgICAua2V5PSR7Im5vdGVzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBicmllZmluZyJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+R29vZCB0byBrbm93Ojwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkRyYWcgJiBkcm9wIGhpZ2hsaWdodHMgdGhlIGRyb3B6b25lIGFuZCBzdXBwb3J0cyBrZXlib2FyZCBhY3RpdmF0aW9uLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHN1bW1hcmlzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSA8Y29kZT5hY2NlcHQ8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgogICAgICAgICAgICAgIDxsaT5JbWFnZSB1cGxvYWRzIHNob3cgbGl2ZSBwcmV2aWV3cyBnZW5lcmF0ZWQgdmlhIDxjb2RlPlVSTC5jcmVhdGVPYmplY3RVUkw8L2NvZGU+LjwvbGk+CiAgICAgICAgICAgICAgPGxpPkZpbGUgc2l6ZSBhbmQgZmlsZS1jb3VudCBsaW1pdHMgc3VyZmFjZSBpbmxpbmUgdmFsaWRhdGlvbiBtZXNzYWdlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UaGUgY29tcG9uZW50IHN0YXlzIGNvbXBhdGlibGUgd2l0aCA8Y29kZT5kZWVzLWZvcm08L2NvZGU+IHZhbHVlIGFjY2Vzc29ycy48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBFYmEsUGJhPWcoKCk9PntwZSgpO0VpKCk7aHQoKTtFYmE9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICA6aG9zdCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgogICAgLmlucHV0LXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLyog4pSA4pSAIFRpbGUgaW50ZWdyYXRpb24g4pSA4pSAICovCiAgICBkZWVzLXRpbGUgewogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgIH0KCiAgICBkZWVzLXRpbGUuZHJhZ292ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUgLyAwLjE1KSIsImhzbCgyMTMgOTMlIDY4JSAvIDAuMTUpIil9OwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF0pIGRlZXMtdGlsZSB7CiAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CgogICAgLyog4pSA4pSAIEhlYWRlciBzbG90OiBzbGVlayB0b29sYmFyIOKUgOKUgCAqLwogICAgLmRyb3B6b25lLWhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgIH0KCiAgICAuZHJvcHpvbmUtaGVhZGVyIGRlZXMtaWNvbiB7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5kcm9wem9uZS1sb2FkZXIgewogICAgICB3aWR0aDogMTRweDsKICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsKICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMTUsIDIzLCA0MiwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgYW5pbWF0aW9uOiBsb2FkZXItc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAuZHJvcHpvbmUtdGl0bGUgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5kcm9wem9uZS1icm93c2UgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC5kcm9wem9uZS1icm93c2U6aG92ZXIgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuZHJvcHpvbmUtYnJvd3NlOmRpc2FibGVkIHsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgb3BhY2l0eTogMC41OwogICAgfQoKICAgIC8qIOKUgOKUgCBDb250ZW50IHNsb3Q6IGZpbGUgbGlzdCBpbiByb3VuZGVkIGluc2V0IOKUgOKUgCAqLwogICAgLmZpbGUtbGlzdC1lbXB0eSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgcGFkZGluZzogMjRweCAxNnB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgfQoKICAgIC5maWxlLWxpc3QtZW1wdHkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBvcGFjaXR5OiAwLjQ7CiAgICB9CgogICAgLmZpbGUtbGlzdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CgogICAgLmZpbGUtbGlzdC1oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5maWxlLWxpc3QtY2xlYXIgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5KTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgfQoKICAgIC5maWxlLWxpc3QtY2xlYXI6aG92ZXIgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuZmlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWRlZXMtdHJhbnNpdGlvbi1mYXN0KSBlYXNlOwogICAgfQoKICAgIC5maWxlLXJvdzpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itcm93LWhvdmVyKTsKICAgIH0KCiAgICAuZmlsZS10aHVtYiB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZmlsZS10aHVtYiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE2cHg7CiAgICAgIGhlaWdodDogMTZweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC50aHVtYi1pbWFnZSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgfQoKICAgIC5maWxlLW1ldGEgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDJweDsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5maWxlLW5hbWUgewogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIC5maWxlLWRldGFpbHMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5maWxlLXNpemUgewogICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgfQoKICAgIC5maWxlLXR5cGUgewogICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQoKICAgIC5maWxlLWFjdGlvbnMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbiB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhzKTsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kZWVzLXRyYW5zaXRpb24tZmFzdCkgZWFzZSwKICAgICAgICAgICAgICAgICAgY29sb3IgdmFyKC0tZGVlcy10cmFuc2l0aW9uLWZhc3QpIGVhc2U7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA1MCUgLyAwLjA4KSIsImhzbCgwIDYyJSAzMiUgLyAwLjE1KSIpfTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbjphY3RpdmUgewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTRweDsKICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAvKiDilIDilIAgRm9vdGVyIHNsb3Q6IG1ldGEgY2hpcHMg4pSA4pSAICovCiAgICAuZHJvcHpvbmUtZm9vdGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBnYXA6IDZweDsKICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CgogICAgLm1ldGEtY2hpcCB7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgIH0KCiAgICAvKiDilIDilIAgVmFsaWRhdGlvbiDilIDilIAgKi8KICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICB9CgogICAgQGtleWZyYW1lcyBsb2FkZXItc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CiAgYF19KTt2YXIgWmQsdG8sc250LGFudD1nKCgpPT57RWkoKTtMYmEoKTtQYmEoKTtHYSgpO2J4KCk7bXIoKTtwZSgpO1pkPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx0bz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sc250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1maWxldXBsb2FkIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W107dmFyIEs9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dEZpbGV1cGxvYWQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgVj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHthdHRyaWJ1dGU6ITF9KV0scD1bWSgpXSxjPVtZKCldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOk51bWJlcn0pXSxJPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLFpkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InZhbHVlImluIFcsImhhcyIpLGdldDppKFc9PlcudmFsdWUsImdldCIpLHNldDppKChXLG1lKT0+e1cudmFsdWU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbyxsKSxaZCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJzdGF0ZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnN0YXRlLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLnN0YXRlPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGQsdSksWmQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzTG9hZGluZyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy5pc0xvYWRpbmc9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sYix2KSxaZCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1dHRvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImJ1dHRvblRleHQiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5idXR0b25UZXh0LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmJ1dHRvblRleHQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbSxmKSxaZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYWNjZXB0ImluIFcsImhhcyIpLGdldDppKFc9PlcuYWNjZXB0LCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLmFjY2VwdD1tZX0sInNldCIpfSxtZXRhZGF0YTpWfSxNLHopLFpkKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXVsdGlwbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Im11bHRpcGxlImluIFcsImhhcyIpLGdldDppKFc9PlcubXVsdGlwbGUsImdldCIpLHNldDppKChXLG1lKT0+e1cubXVsdGlwbGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sQyxfKSxaZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Im1heFNpemUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5tYXhTaXplLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLm1heFNpemU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sJCxFKSxaZCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtYXhGaWxlcyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLm1heEZpbGVzLCJnZXQiKSxzZXQ6aSgoVyxtZSk9PntXLm1heEZpbGVzPW1lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGssUyksWmQodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InZhbGlkYXRpb25TdGF0ZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKFcsbWUpPT57Vy52YWxpZGF0aW9uU3RhdGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sUCxSKSxaZChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpWfSxudWxsLHQpLEs9YT1lLnZhbHVlLFYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Vn0pfXN0YXRpYyBkZW1vPURiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9dG8odGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVil7dGhpcy4jZT1WfSN0PSh0byh0aGlzLGwpLHRvKHRoaXMsZCwiaWRsZSIpKTtnZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdGUoVil7dGhpcy4jdD1WfSNhPSh0byh0aGlzLHUpLHRvKHRoaXMsYiwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNMb2FkaW5nKFYpe3RoaXMuI2E9Vn0jcz0odG8odGhpcyx2KSx0byh0aGlzLG0sIlNlbGVjdCBmaWxlcyIpKTtnZXQgYnV0dG9uVGV4dCgpe3JldHVybiB0aGlzLiNzfXNldCBidXR0b25UZXh0KFYpe3RoaXMuI3M9Vn0jaT0odG8odGhpcyxmKSx0byh0aGlzLE0sIiIpKTtnZXQgYWNjZXB0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFjY2VwdChWKXt0aGlzLiNpPVZ9I3I9KHRvKHRoaXMseiksdG8odGhpcyxDLCEwKSk7Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG11bHRpcGxlKFYpe3RoaXMuI3I9Vn0jbz0odG8odGhpcyxfKSx0byh0aGlzLCQsMCkpO2dldCBtYXhTaXplKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heFNpemUoVil7dGhpcy4jbz1WfSNuPSh0byh0aGlzLEUpLHRvKHRoaXMsaywwKSk7Z2V0IG1heEZpbGVzKCl7cmV0dXJuIHRoaXMuI259c2V0IG1heEZpbGVzKFYpe3RoaXMuI249Vn0jbD0odG8odGhpcyxTKSx0byh0aGlzLFAsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgdmFsaWRhdGlvblN0YXRlKFYpe3RoaXMuI2w9Vn0jYz0odG8odGhpcyxSKSwiIik7Z2V0IHZhbGlkYXRpb25NZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25NZXNzYWdlKFYpe3RoaXMuI2M9Vn1wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwO2Ryb3BBcmVhPW51bGw7c3RhdGljIHN0eWxlcz1FYmE7cmVuZGVyKCl7bGV0IFY9dGhpcy5nZXRBY2NlcHRlZFN1bW1hcnkoKSxXPVt0aGlzLm11bHRpcGxlPyJNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQiOiJTaW5nbGUgZmlsZSBvbmx5Iix0aGlzLm1heFNpemU+MD9gTWF4ICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWA6Ik5vIHNpemUgbGltaXQiXTtyZXR1cm4gViYmVy5wdXNoKGBBY2NlcHRzICR7Vn1gKSx3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbAogICAgICAgICAgLmxhYmVsPSR7dGhpcy5sYWJlbH0KICAgICAgICAgIC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgID48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtdGlsZQogICAgICAgICAgY2xhc3M9IiR7dGhpcy5zdGF0ZT09PSJkcmFnT3ZlciI/ImRyYWdvdmVyIjoiIn0iCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZURyb3B6b25lQ2xpY2t9CiAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlRHJvcHpvbmVLZXlkb3dufQogICAgICAgICAgdGFiaW5kZXg9JHt0aGlzLmRpc2FibGVkPy0xOjB9CiAgICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIGFyaWEtbGFiZWw9JHtgU2VsZWN0IGZpbGVzJHtWP2AgKCR7Vn0pYDoiIn1gfQogICAgICAgID4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0iZmlsZS1pbnB1dCIKICAgICAgICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyB0b3A6IDA7IGxlZnQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IgogICAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgICA/bXVsdGlwbGU9JHt0aGlzLm11bHRpcGxlfQogICAgICAgICAgICBhY2NlcHQ9JHt0aGlzLmFjY2VwdHx8IiJ9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVJbnB1dENoYW5nZX0KICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iZHJvcHpvbmUtaGVhZGVyIj4KICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZz93YDxzcGFuIGNsYXNzPSJkcm9wem9uZS1sb2FkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+YDp3YDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlVwbG9hZCI+PC9kZWVzLWljb24+YH0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3B6b25lLXRpdGxlIj5Ecm9wIGZpbGVzIGhlcmUgb3I8L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgICAgY2xhc3M9ImRyb3B6b25lLWJyb3dzZSIKICAgICAgICAgICAgICBAY2xpY2s9JHttZT0+e21lLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpfX0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICA+YnJvd3NlPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWxlTGlzdCgpfQogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJkcm9wem9uZS1mb290ZXIiPgogICAgICAgICAgICAke1cubWFwKG1lPT53YDxzcGFuIGNsYXNzPSJtZXRhLWNoaXAiPiR7bWV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlP3dgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIiBhcmlhLWxpdmU9InBvbGl0ZSI+JHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlfTwvZGl2PmA6d2BgfQogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZUxpc3QoKXtyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGg9PT0wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0LWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVTdGFjayI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5ObyBmaWxlcyBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+JHt0aGlzLnZhbHVlLmxlbmd0aH0gZmlsZSR7dGhpcy52YWx1ZS5sZW5ndGg9PT0xPyIiOiJzIn0gc2VsZWN0ZWQ8L3NwYW4+CiAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtbGlzdC1jbGVhciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhckFsbH0+Q2xlYXIgJHt0aGlzLnZhbHVlLmxlbmd0aD4xPyJhbGwiOiIifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy52YWx1ZS5tYXAoVj0+dGhpcy5yZW5kZXJGaWxlUm93KFYpKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVSb3coVil7bGV0IFc9dGhpcy5nZXRGaWxlVHlwZShWKSxtZT10aGlzLmNhblNob3dQcmV2aWV3KFYpP3RoaXMuZ2V0UHJldmlld1VybChWKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLXJvdyAke1d9LWZpbGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtdGh1bWIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICR7bWU/d2A8aW1nIGNsYXNzPSJ0aHVtYi1pbWFnZSIgc3JjPSR7bWV9IGFsdD0ke2BQcmV2aWV3IG9mICR7Vi5uYW1lfWB9PmA6d2A8ZGVlcy1pY29uIGljb249JHt0aGlzLmdldEZpbGVJY29uKFYpfT48L2RlZXMtaWNvbj5gfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbWV0YSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiIHRpdGxlPSR7Vi5uYW1lfT4ke1YubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtZGV0YWlscyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShWLnNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgJHtXIT09ImZpbGUiP3dgPHNwYW4gY2xhc3M9ImZpbGUtdHlwZSI+JHtXfTwvc3Bhbj5gOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgY2xhc3M9InJlbW92ZS1idXR0b24iCiAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUZpbGUoVil9CiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgUmVtb3ZlICR7Vi5uYW1lfWB9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVGaWxlSW5wdXRDaGFuZ2U9aShhc3luYyBWPT57dGhpcy5pc0xvYWRpbmc9ITE7bGV0IFc9Vi50YXJnZXQsbWU9QXJyYXkuZnJvbShXLmZpbGVzPz9bXSk7bWUubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMobWUpLFcudmFsdWU9IiJ9LCJoYW5kbGVGaWxlSW5wdXRDaGFuZ2UiKTtoYW5kbGVEcm9wem9uZUNsaWNrPWkoVj0+e3RoaXMuZGlzYWJsZWR8fFYudGFyZ2V0LmNsb3Nlc3QoIi5maWxlLWxpc3QsIC5kcm9wem9uZS1oZWFkZXIsIC5kcm9wem9uZS1mb290ZXIiKXx8dGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9LCJoYW5kbGVEcm9wem9uZUNsaWNrIik7aGFuZGxlRHJvcHpvbmVLZXlkb3duPWkoVj0+e3RoaXMuZGlzYWJsZWR8fChWLmtleT09PSJFbnRlciJ8fFYua2V5PT09IiAiKSYmKFYucHJldmVudERlZmF1bHQoKSx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKSl9LCJoYW5kbGVEcm9wem9uZUtleWRvd24iKTtoYW5kbGVDbGVhckFsbD1pKFY9PntWLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbGVhckFsbCgpfSwiaGFuZGxlQ2xlYXJBbGwiKTtoYW5kbGVEcmFnRXZlbnQ9aShhc3luYyBWPT57aWYoVi5wcmV2ZW50RGVmYXVsdCgpLFYuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuZGlzYWJsZWQpe2lmKFYudHlwZT09PSJkcmFnZW50ZXIifHxWLnR5cGU9PT0iZHJhZ292ZXIiKXtWLmRhdGFUcmFuc2ZlciYmKFYuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkiKSx0aGlzLnN0YXRlPSJkcmFnT3ZlciI7cmV0dXJufWlmKFYudHlwZT09PSJkcmFnbGVhdmUiKXtpZighdGhpcy5kcm9wQXJlYSl7dGhpcy5zdGF0ZT0iaWRsZSI7cmV0dXJufWxldCBXPXRoaXMuZHJvcEFyZWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2NsaWVudFg6bWU9MCxjbGllbnRZOkI9MH09VjsobWU8PVcubGVmdHx8bWU+PVcucmlnaHR8fEI8PVcudG9wfHxCPj1XLmJvdHRvbSkmJih0aGlzLnN0YXRlPSJpZGxlIik7cmV0dXJufWlmKFYudHlwZT09PSJkcm9wIil7dGhpcy5zdGF0ZT0iaWRsZSI7bGV0IFc9QXJyYXkuZnJvbShWLmRhdGFUcmFuc2Zlcj8uZmlsZXM/P1tdKTtXLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmFkZEZpbGVzKFcpfX19LCJoYW5kbGVEcmFnRXZlbnQiKTthdHRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKFY9Pnt0aGlzLmRyb3BBcmVhLmFkZEV2ZW50TGlzdGVuZXIoVix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1kZXRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKFY9Pnt0aGlzLmRyb3BBcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoVix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl7bGV0IFY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKTtWIT09dGhpcy5kcm9wQXJlYSYmKHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpLHRoaXMuZHJvcEFyZWE9Vix0aGlzLmF0dGFjaERyb3BMaXN0ZW5lcnMoKSl9Zm9ybWF0RmlsZVNpemUoVil7bGV0IFc9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdO2lmKFY9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgbWU9TWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZyhWKS9NYXRoLmxvZygxMDI0KSksVy5sZW5ndGgtMSksQj1WL01hdGgucG93KDEwMjQsbWUpO3JldHVybmAke01hdGgucm91bmQoQioxMDApLzEwMH0gJHtXW21lXX1gfWdldEZpbGVUeXBlKFYpe2xldCBXPVYudHlwZS50b0xvd2VyQ2FzZSgpO3JldHVybiBXLnN0YXJ0c1dpdGgoImltYWdlLyIpPyJpbWFnZSI6Vz09PSJhcHBsaWNhdGlvbi9wZGYiPyJwZGYiOlcuaW5jbHVkZXMoIndvcmQiKXx8Vy5pbmNsdWRlcygiZG9jdW1lbnQiKT8iZG9jIjpXLmluY2x1ZGVzKCJzaGVldCIpfHxXLmluY2x1ZGVzKCJleGNlbCIpPyJzcHJlYWRzaGVldCI6Vy5pbmNsdWRlcygicHJlc2VudGF0aW9uIil8fFcuaW5jbHVkZXMoInBvd2VycG9pbnQiKT8icHJlc2VudGF0aW9uIjpXLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJ2aWRlbyI6Vy5zdGFydHNXaXRoKCJhdWRpby8iKT8iYXVkaW8iOlcuaW5jbHVkZXMoInppcCIpfHxXLmluY2x1ZGVzKCJjb21wcmVzc2VkIik/ImFyY2hpdmUiOiJmaWxlIn1nZXRGaWxlSWNvbihWKXtsZXQgVz10aGlzLmdldEZpbGVUeXBlKFYpO3JldHVybntpbWFnZToibHVjaWRlOkZpbGVJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGRvYzoibHVjaWRlOkZpbGVUZXh0IixzcHJlYWRzaGVldDoibHVjaWRlOkZpbGVTcHJlYWRzaGVldCIscHJlc2VudGF0aW9uOiJsdWNpZGU6RmlsZUJhckNoYXJ0Iix2aWRlbzoibHVjaWRlOkZpbGVWaWRlbyIsYXVkaW86Imx1Y2lkZTpGaWxlQXVkaW8iLGFyY2hpdmU6Imx1Y2lkZTpGaWxlQXJjaGl2ZSIsZmlsZToibHVjaWRlOkZpbGUifVtXXT8/Imx1Y2lkZTpGaWxlIn1jYW5TaG93UHJldmlldyhWKXtyZXR1cm4gVi50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiZWLnNpemU8NSoxMDI0KjEwMjR9dmFsaWRhdGVGaWxlKFYpe2lmKHRoaXMubWF4U2l6ZT4wJiZWLnNpemU+dGhpcy5tYXhTaXplKXJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBGaWxlICIke1YubmFtZX0iIGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBvZiAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMTtpZih0aGlzLmFjY2VwdCl7bGV0IFc9dGhpcy5hY2NlcHQuc3BsaXQoIiwiKS5tYXAobWU9Pm1lLnRyaW0oKSkuZmlsdGVyKG1lPT5tZS5sZW5ndGg+MCk7aWYoVy5sZW5ndGg+MCl7bGV0IG1lPSExO2ZvcihsZXQgQiBvZiBXKWlmKEIuc3RhcnRzV2l0aCgiLiIpKXtpZihWLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChCLnRvTG93ZXJDYXNlKCkpKXttZT0hMDticmVha319ZWxzZSBpZihCLmVuZHNXaXRoKCIvKiIpKXtsZXQgVT1CLnNsaWNlKDAsLTIpO2lmKFYudHlwZS5zdGFydHNXaXRoKFUpKXttZT0hMDticmVha319ZWxzZSBpZihWLnR5cGU9PT1CKXttZT0hMDticmVha31pZighbWUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgdHlwZSBub3QgYWNjZXB0ZWQuIEFsbG93ZWQ6ICR7Vy5qb2luKCIsICIpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExfX1yZXR1cm4hMH1nZXRQcmV2aWV3VXJsKFYpe2xldCBXPXRoaXMucHJldmlld1VybE1hcC5nZXQoVik7cmV0dXJuIFd8fChXPVVSTC5jcmVhdGVPYmplY3RVUkwoViksdGhpcy5wcmV2aWV3VXJsTWFwLnNldChWLFcpKSxXfXJlbGVhc2VQcmV2aWV3KFYpe2xldCBXPXRoaXMucHJldmlld1VybE1hcC5nZXQoVik7VyYmKFVSTC5yZXZva2VPYmplY3RVUkwoVyksdGhpcy5wcmV2aWV3VXJsTWFwLmRlbGV0ZShWKSl9Z2V0QWNjZXB0ZWRTdW1tYXJ5KCl7aWYoIXRoaXMuYWNjZXB0KXJldHVybiBudWxsO2xldCBWPUFycmF5LmZyb20obmV3IFNldCh0aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChXPT5XLnRyaW0oKSkuZmlsdGVyKFc9PlcubGVuZ3RoPjApLm1hcChXPT50aGlzLmZvcm1hdEFjY2VwdFRva2VuKFcpKSkpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gVi5sZW5ndGg9PT0wP251bGw6Vi5sZW5ndGg9PT0xP1ZbMF06Vi5sZW5ndGg9PT0yP2Ake1ZbMF19LCAke1ZbMV19YDpgJHtWLnNsaWNlKDAsMikuam9pbigiLCAiKX1cdTIwMjZgfWZvcm1hdEFjY2VwdFRva2VuKFYpe2lmKFY9PT0iKi8qIilyZXR1cm4iQWxsIGZpbGVzIjtpZihWLmVuZHNXaXRoKCIvKiIpKXtsZXQgQj1WLnNwbGl0KCIvIilbMF07cmV0dXJuIEI/YCR7Qi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke0Iuc2xpY2UoMSl9IGZpbGVzYDoiQWxsIGZpbGVzIn1yZXR1cm4gVi5zdGFydHNXaXRoKCIuIik/Vi5zbGljZSgxKS50b1VwcGVyQ2FzZSgpOlYuaW5jbHVkZXMoInBkZiIpPyJQREYiOlYuaW5jbHVkZXMoInppcCIpPyJaSVAiOlYuaW5jbHVkZXMoImpzb24iKT8iSlNPTiI6Vi5pbmNsdWRlcygibXN3b3JkIik/IkRPQyI6Vi5pbmNsdWRlcygid29yZHByb2Nlc3NpbmdtbCIpPyJET0NYIjpWLmluY2x1ZGVzKCJleGNlbCIpPyJYTFMiOlYuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJQUFQiOihWLnNwbGl0KCIvIikucG9wKCk/P1YpLnRvVXBwZXJDYXNlKCl9YXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl7dGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9Zmlyc3RVcGRhdGVkKFYpe3N1cGVyLmZpcnN0VXBkYXRlZChWKSx0aGlzLmF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpfXVwZGF0ZWQoVil7c3VwZXIudXBkYXRlZChWKSxWLmhhcygidmFsdWUiKSYmdGhpcy52YWxpZGF0ZSgpLHRoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy52YWx1ZS5mb3JFYWNoKFY9PnRoaXMucmVsZWFzZVByZXZpZXcoVikpLHRoaXMucHJldmlld1VybE1hcD1uZXcgV2Vha01hcCxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIG9wZW5GaWxlU2VsZWN0b3IoKXtpZih0aGlzLmRpc2FibGVkfHx0aGlzLmlzTG9hZGluZylyZXR1cm47dGhpcy5pc0xvYWRpbmc9ITA7bGV0IFY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmlsZS1pbnB1dCIpO2lmKCFWKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59bGV0IFc9aSgoKT0+e3NldFRpbWVvdXQoKCk9PnsoIVYuZmlsZXN8fFYuZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixXKX0sMzAwKX0sImhhbmRsZUZvY3VzIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixXKSxWLmNsaWNrKCl9cmVtb3ZlRmlsZShWKXtsZXQgVz10aGlzLnZhbHVlLmluZGV4T2YoVik7Vz4tMSYmKHRoaXMucmVsZWFzZVByZXZpZXcoViksdGhpcy52YWx1ZS5zcGxpY2UoVywxKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1jbGVhckFsbCgpe2xldCBWPVsuLi50aGlzLnZhbHVlXTt0aGlzLnZhbHVlPVtdLFYuZm9yRWFjaChXPT50aGlzLnJlbGVhc2VQcmV2aWV3KFcpKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB1cGRhdGVWYWx1ZShWKXtsZXQgVz1WLnRhcmdldDt0aGlzLnZhbHVlPUFycmF5LmZyb20oVy5maWxlcz8/W10pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXNldFZhbHVlKFYpe3RoaXMudmFsdWUuZm9yRWFjaChXPT50aGlzLnJlbGVhc2VQcmV2aWV3KFcpKSx0aGlzLnZhbHVlPVYsVi5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIix0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9YXN5bmMgYWRkRmlsZXMoVil7bGV0IFc9W107Zm9yKGxldCBtZSBvZiBWKXRoaXMudmFsaWRhdGVGaWxlKG1lKSYmVy5wdXNoKG1lKTtpZihXLmxlbmd0aD09PTApe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1pZih0aGlzLm1heEZpbGVzPjAmJnRoaXMudmFsdWUubGVuZ3RoK1cubGVuZ3RoPnRoaXMubWF4RmlsZXMpe2xldCBCPXRoaXMubWF4RmlsZXMtdGhpcy52YWx1ZS5sZW5ndGg7aWYoQjw9MCl7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59Vy5zcGxpY2UoQiksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gT25seSAke0J9IG1vcmUgZmlsZShzKSBjYW4gYmUgYWRkZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJ3YXJuIn0hdGhpcy5tdWx0aXBsZSYmVy5sZW5ndGg+MD8odGhpcy52YWx1ZS5mb3JFYWNoKG1lPT50aGlzLnJlbGVhc2VQcmV2aWV3KG1lKSksdGhpcy52YWx1ZT1bV1swXV0pOnRoaXMudmFsdWUucHVzaCguLi5XKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMudmFsaWRhdGlvblN0YXRlPW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLGF3YWl0IHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHZhbGlkYXRlKCl7aWYodGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnJlcXVpcmVkJiZ0aGlzLnZhbHVlLmxlbmd0aD09PTApcmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBmaWxlIiwhMTtmb3IobGV0IFYgb2YgdGhpcy52YWx1ZSlpZighdGhpcy52YWxpZGF0ZUZpbGUoVikpcmV0dXJuITE7cmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPXRoaXMudmFsdWUubGVuZ3RoPjA/InZhbGlkIjpudWxsLCEwfXN0YXRpY3t0byhhLHQpfX07cmV0dXJuIEs9YX0pKCl9KTt2YXIgaW50PWcoKCk9PnthbnQoKX0pO3ZhciBJYmEsQWJhPWcoKCk9PntwZSgpO0liYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXltZW50LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIElCQU4gSW5wdXQifSAuc3VidGl0bGU9JHsiSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIHdpdGggYXV0b21hdGljIGZvcm1hdHRpbmcifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiQmFuayBBY2NvdW50IElCQU4ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW50ZXIgeW91ciBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBJQkFOIGNhbiBiZSBmb3VuZCBvbiB5b3VyIGJhbmsgc3RhdGVtZW50In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBoYXMgYmVlbiB2ZXJpZmllZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBheW1lbnQgSW5mb3JtYXRpb24ifSAuc3VidGl0bGU9JHsiSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgSG9sZGVyIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiSm9obiBEb2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgICAgLmxhYmVsPSR7IklCQU4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0keyJHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IlBheW1lbnQgQWNjb3VudCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJSZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBwYXltZW50cyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkxvY2tlZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJGUjE0MjAwNDEwMTAwNTA1MDAwMTNNMDI2MDYifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhbmsgVHJhbnNmZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIGV4YW1wbGUgd2l0aCBJQkFOIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUmVjaXBpZW50IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIC5sYWJlbD0keyJSZWNpcGllbnQgSUJBTiJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlRyYW5zZmVyIFJlZmVyZW5jZSJ9IC5pbmZvVGV4dD0keyJPcHRpb25hbCByZWZlcmVuY2UgZm9yIHRoZSB0cmFuc2ZlciJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQW1vdW50In0gLmlucHV0VHlwZT0keyJudW1iZXIifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBPMWUsR2cscm50LG9udD1nKCgpPT57cGUoKTtrdCgpO0VpKCk7S2V0KCk7QWJhKCk7aHQoKTtPMWU9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEdnPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxybnQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LWliYW4iKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0SWJhbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtMKHt0eXBlOlN0cmluZ30pXSxPMWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkU3RyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJlbnRlcmVkU3RyaW5nImluIGYsImhhcyIpLGdldDppKGY9PmYuZW50ZXJlZFN0cmluZywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmVudGVyZWRTdHJpbmc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLE8xZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRJYmFuSXNWYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iZW50ZXJlZEliYW5Jc1ZhbGlkImluIGYsImhhcyIpLGdldDppKGY9PmYuZW50ZXJlZEliYW5Jc1ZhbGlkLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YuZW50ZXJlZEliYW5Jc1ZhbGlkPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxPMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idmFsdWUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi52YWx1ZSwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnZhbHVlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYix2KSxPMWUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1JYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUdnKHRoaXMsbywiIik7Z2V0IGVudGVyZWRTdHJpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50ZXJlZFN0cmluZyhtKXt0aGlzLiNlPW19I3Q9KEdnKHRoaXMsbCksR2codGhpcyxkLCExKSk7Z2V0IGVudGVyZWRJYmFuSXNWYWxpZCgpe3JldHVybiB0aGlzLiN0fXNldCBlbnRlcmVkSWJhbklzVmFsaWQobSl7dGhpcy4jdD1tfSNhPShHZyh0aGlzLHUpLEdnKHRoaXMsYiwiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNhfXNldCB2YWx1ZShtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHttPT57bGV0IGY9bS5yZXBsYWNlKC8gL2csIiIpO3JldHVybiBmLmxlbmd0aD09PTA/e3ZhbGlkOiEwLG1lc3NhZ2U6IiJ9Ok44KGYpP3t2YWxpZDohMCxtZXNzYWdlOiJJQkFOIGlzIHZhbGlkIn06e3ZhbGlkOiExLG1lc3NhZ2U6IlBsZWFzZSBlbnRlciBhIHZhbGlkIElCQU4ifX19CiAgICAgICAgICBAaW5wdXQ9JHttPT57dGhpcy52YWxpZGF0ZUliYW4obSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZChtKXtzdXBlci5maXJzdFVwZGF0ZWQobSk7bGV0IGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO2YmJmYuY2hhbmdlU3ViamVjdCYmZi5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSl9YXN5bmMgdmFsaWRhdGVJYmFuKG0pe2xldCBmPW0udGFyZ2V0LHk9Zj8udmFsdWU7eT15fHwiIix0aGlzLmVudGVyZWRTdHJpbmchPT15JiYodGhpcy5lbnRlcmVkU3RyaW5nPWZ2KHkpfHwiIixmJiYoZi52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpKSx0aGlzLmVudGVyZWRJYmFuSXNWYWxpZD1OOCh0aGlzLmVudGVyZWRTdHJpbmcucmVwbGFjZSgvIC9nLCIiKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShtKXt0aGlzLnZhbHVlPW0sdGhpcy5lbnRlcmVkU3RyaW5nPWZ2KG0pfHwiIn1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksR2codGhpcyx2KX1zdGF0aWN7R2coYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIE5iYSxSYmE9ZygoKT0+e3BlKCk7TmJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpLU9wdGlvbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgZnJvbSBtdWx0aXBsZSBvcHRpb25zIHdpdGggYSBzbW9vdGggc2xpZGluZyBpbmRpY2F0b3IgYW5pbWF0aW9uLjwvZGl2PgoKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc3BsYXkgTW9kZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJDaG9vc2UgaG93IGNvbnRlbnQgaXMgZGlzcGxheWVkIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgc2V0dGluZyBhZmZlY3RzIGhvdyBpdGVtcyBhcHBlYXIgb24geW91ciBkYXNoYm9hcmQifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTGlzdCBWaWV3IiwiR3JpZCBWaWV3IiwiQ29tcGFjdCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiR3JpZCBWaWV3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlQtU2hpcnQgU2l6ZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgeW91ciBwcmVmZXJyZWQgc2l6ZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJYUyIsIlMiLCJNIiwiTCIsIlhMIiwiWFhMIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJNIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9vbGVhbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TaW1wbGUgb24vb2ZmIHN3aXRjaGVzIHdpdGggY3VzdG9taXphYmxlIGxhYmVscyBmb3IgY2xlYXJlciBjb250ZXh0LjwvZGl2PgoKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW5hYmxlIG9yIGRpc2FibGUgcHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0cnVlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlRoZW1lIE1vZGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgdGhlbWUifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJEYXJrIn0KICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiTGlnaHQifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRGFyayJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNldHRpbmdzIEdyaWQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Db25maWd1cmF0aW9uIG9wdGlvbnMgYXJyYW5nZWQgaW4gYSByZXNwb25zaXZlIGdyaWQgbGF5b3V0LjwvZGl2PgoKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tU2F2ZSJ9CiAgICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJFbmFibGVkIn0KICAgICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJEaXNhYmxlZCJ9CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuYWJsZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiTGFuZ3VhZ2UifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlF1YWxpdHkifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJMb3ciLCJNZWRpdW0iLCJIaWdoIiwiVWx0cmEiXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSGlnaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJQcml2YWN5In0KICAgICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IlB1YmxpYyJ9CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3RhdGVzICYgRm9ybSBJbnRlZ3JhdGlvbjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkV4YW1wbGVzIG9mIGRpc2FibGVkIHN0YXRlcyBhbmQgaW50ZWdyYXRpb24gd2l0aGluIGZvcm1zLjwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiQWNjb3VudCBUeXBlIn0KICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIHNldHRpbmcgaXMgbG9ja2VkIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJGcmVlIiwiUHJvIiwiRW50ZXJwcmlzZSJdfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVudGVycHJpc2UifQogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAKICAgICAgICA8YnI+PGJyPgogICAgICAgIAogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiVmlzaWJpbGl0eSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlB1YmxpYyJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkxpY2Vuc2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTUlUIiwiQXBhY2hlIDIuMCIsIkdQTCB2MyIsIlByb3ByaWV0YXJ5Il19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJNSVQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgS2csb2Msbm50LGxudD1nKCgpPT57cGUoKTtFaSgpO3cyKCk7UmJhKCk7aHQoKTtLZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sb2M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG5udD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0TXVsdGl0b2dnbGUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCgpXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W0woKV0sTj1bTCh7dHlwZTpCb29sZWFufSldLEtnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idHlwZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnR5cGUsImdldCIpLHNldDppKChFLEgpPT57RS50eXBlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxLZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5UcnVlTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iYm9vbGVhblRydWVOYW1lImluIEUsImhhcyIpLGdldDppKEU9PkUuYm9vbGVhblRydWVOYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UuYm9vbGVhblRydWVOYW1lPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxLZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5GYWxzZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImJvb2xlYW5GYWxzZU5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ib29sZWFuRmFsc2VOYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UuYm9vbGVhbkZhbHNlTmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGIsdiksS2codGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJvcHRpb25zImluIEUsImhhcyIpLGdldDppKEU9PkUub3B0aW9ucywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm9wdGlvbnM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxtLGYpLEtnKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkT3B0aW9uImluIEUsImhhcyIpLGdldDppKEU9PkUuc2VsZWN0ZWRPcHRpb24sImdldCIpLHNldDppKChFLEgpPT57RS5zZWxlY3RlZE9wdGlvbj1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksS2codGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImJvb2xWYWx1ZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmJvb2xWYWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmJvb2xWYWx1ZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksS2cobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1OYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPW9jKHRoaXMsbywibXVsdGkiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKCQpe3RoaXMuI2U9JH0jdD0ob2ModGhpcyxsKSxvYyh0aGlzLGQsInRydWUiKSk7Z2V0IGJvb2xlYW5UcnVlTmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBib29sZWFuVHJ1ZU5hbWUoJCl7dGhpcy4jdD0kfSNhPShvYyh0aGlzLHUpLG9jKHRoaXMsYiwiZmFsc2UiKSk7Z2V0IGJvb2xlYW5GYWxzZU5hbWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYm9vbGVhbkZhbHNlTmFtZSgkKXt0aGlzLiNhPSR9I3M9KG9jKHRoaXMsdiksb2ModGhpcyxtLFtdKSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgb3B0aW9ucygkKXt0aGlzLiNzPSR9I2k9KG9jKHRoaXMsZiksb2ModGhpcyxNLCIiKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkT3B0aW9uKCQpe3RoaXMuI2k9JH0jcj0ob2ModGhpcyx6KSxvYyh0aGlzLEMsITEpKTtnZXQgYm9vbFZhbHVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJvb2xWYWx1ZSgkKXt0aGlzLiNyPSR9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMudHlwZT09PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPT09dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoJCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgJD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249JD90aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLmJvb2xlYW5GYWxzZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbj0kLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuaGFzVXBkYXRlZCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zZXRJbmRpY2F0b3IoKX0pfXN0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2U0ZTRlNyIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmluZGljYXRvciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuc2VsZWN0aW9ucyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5pbmRpY2F0b3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5kaWNhdG9yIj48L2Rpdj4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcCgkPT53YDxkaXYgY2xhc3M9Im9wdGlvbiAkeyQ9PT10aGlzLnNlbGVjdGVkT3B0aW9uPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZWxlY3Rpb24oJCl9PgogICAgICAgICAgICAgICAgJHskfQogICAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudHlwZT09PSJib29sZWFuIiYmdGhpcy5vcHRpb25zLmxlbmd0aD09PTAmJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSx0aGlzLnNlbGVjdGVkT3B0aW9ufHwodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSIpKSwhdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLm9wdGlvbnNbMF0pfWFzeW5jIGZpcnN0VXBkYXRlZCgkKXtzdXBlci5maXJzdFVwZGF0ZWQoJCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0pLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LGF3YWl0IG5ldyBQcm9taXNlKEU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShFKSksdGhpcy5zZXRJbmRpY2F0b3IoKX1hc3luYyBoYW5kbGVTZWxlY3Rpb24oJCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRPcHRpb249JCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc2V0SW5kaWNhdG9yKCkpfWluZGljYXRvckluaXRpYWxpemVkPShvYyh0aGlzLF8pLCExKTthc3luYyBzZXRJbmRpY2F0b3IoKXtsZXQgJD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmluZGljYXRvciIpLEU9dGhpcy5vcHRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZE9wdGlvbik7aWYoRT09PS0xfHwhJCl7JCYmKCQuc3R5bGUub3BhY2l0eT0iMCIpO3JldHVybn1sZXQgSD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgLm9wdGlvbjpudGgtY2hpbGQoJHtFKzJ9KWApOyQmJkgmJih0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoJC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57JC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSksJC5zdHlsZS53aWR0aD1gJHtILmNsaWVudFdpZHRofXB4YCwkLnN0eWxlLmxlZnQ9YCR7SC5vZmZzZXRMZWZ0fXB4YCwkLnN0eWxlLm9wYWNpdHk9IjEiKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoJCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgJD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249JD90aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiOnRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIjp0aGlzLnNlbGVjdGVkT3B0aW9uPSQsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGlje29jKGEsdCl9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBPYmEsRmJhPWcoKCk9PntwZSgpO09iYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFBob25lIElucHV0In0gLnN1YnRpdGxlPSR7IkF1dG9tYXRpYyBmb3JtYXR0aW5nIGZvciBwaG9uZSBudW1iZXJzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW50ZXIgeW91ciBwaG9uZSBudW1iZXIgd2l0aCBjb3VudHJ5IGNvZGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiSW5jbHVkZSBjb3VudHJ5IGNvZGUgZm9yIGludGVybmF0aW9uYWwgbnVtYmVycyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI1NTUxMjM0NTY3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgUGhvbmUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiUmVxdWlyZWQgZm9yIGFjY291bnQgdmVyaWZpY2F0aW9uIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyIrMSAoNTU1KSAwMDAtMDAwMCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXRzIGFycmFuZ2VkIGhvcml6b250YWxseSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgICAubGFiZWw9JHsiTW9iaWxlIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiNDE1NTU1MTIzNCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAgIC5sYWJlbD0keyJPZmZpY2UifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyIrMSAoODAwKSA1NTUtMDAwMCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVybmF0aW9uYWwgTnVtYmVycyJ9IC5zdWJ0aXRsZT0keyJTdXBwb3J0cyBmb3JtYXR0aW5nIGZvciBudW1iZXJzIHdpdGggY291bnRyeSBjb2RlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiSW50ZXJuYXRpb25hbCBDb250YWN0In0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkF1dG9tYXRpY2FsbHkgZm9ybWF0cyBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNDQxMjM0NTY3ODkwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkVtZXJnZW5jeSBDb250YWN0In0KICAgICAgICAgICAgLnZhbHVlPSR7IjkxMSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXQgYXMgcGFydCBvZiBhIGNvbnRhY3QgZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgRjFlLFlnLGNudCxkbnQ9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO0ZiYSgpO2h0KCk7RjFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxZZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sY250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC1waG9uZSIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRQaG9uZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0sRjFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9ybWF0dGVkUGhvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImZvcm1hdHRlZFBob25lImluIGYsImhhcyIpLGdldDppKGY9PmYuZm9ybWF0dGVkUGhvbmUsImdldCIpLHNldDppKChmLHkpPT57Zi5mb3JtYXR0ZWRQaG9uZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksRjFlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbHVlImluIGYsImhhcyIpLGdldDppKGY9PmYudmFsdWUsImdldCIpLHNldDppKChmLHkpPT57Zi52YWx1ZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksRjFlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InBsYWNlaG9sZGVyImluIGYsImhhcyIpLGdldDppKGY9PmYucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChmLHkpPT57Zi5wbGFjZWhvbGRlcj15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksRjFlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89T2JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1ZZyh0aGlzLG8sIiIpO2dldCBmb3JtYXR0ZWRQaG9uZSgpe3JldHVybiB0aGlzLiNlfXNldCBmb3JtYXR0ZWRQaG9uZShtKXt0aGlzLiNlPW19I3Q9KFlnKHRoaXMsbCksWWcodGhpcyxkLCIiKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZhbHVlKG0pe3RoaXMuI3Q9bX0jYT0oWWcodGhpcyx1KSxZZyh0aGlzLGIsIisxICg1NTUpIDEyMy00NTY3IikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNhfXNldCBwbGFjZWhvbGRlcihtKXt0aGlzLiNhPW19c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogUGhvbmUgaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZm9ybWF0dGVkUGhvbmV9CiAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICBAaW5wdXQ9JHttPT50aGlzLmhhbmRsZVBob25lSW5wdXQobSl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKG0pe3N1cGVyLmZpcnN0VXBkYXRlZChtKSx0aGlzLnZhbHVlJiYodGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKHRoaXMudmFsdWUpKTtsZXQgZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7ZiYmZi5jaGFuZ2VTdWJqZWN0JiZmLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KX1oYW5kbGVQaG9uZUlucHV0KG0pe2xldCBmPW0udGFyZ2V0LHk9dGhpcy5jbGVhblBob25lTnVtYmVyKGYudmFsdWUpLE09dGhpcy5mb3JtYXRQaG9uZU51bWJlcih5KTtpZihmLnZhbHVlIT09TSl7bGV0IHo9Zi5zZWxlY3Rpb25TdGFydHx8MDtmLnZhbHVlPU07bGV0IE49dGhpcy5jYWxjdWxhdGVDdXJzb3JQb3NpdGlvbih5LE0seik7Zi5zZXRTZWxlY3Rpb25SYW5nZShOLE4pfXRoaXMuZm9ybWF0dGVkUGhvbmU9TSx0aGlzLnZhbHVlPXksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Y2xlYW5QaG9uZU51bWJlcihtKXtyZXR1cm4gbS5yZXBsYWNlKC9cRC9nLCIiKX1mb3JtYXRQaG9uZU51bWJlcihtKXtsZXQgZj10aGlzLmNsZWFuUGhvbmVOdW1iZXIobSk7cmV0dXJuIGYubGVuZ3RoPT09MD8iIjpmLmxlbmd0aDw9Mz9mOmYubGVuZ3RoPD02P2AoJHtmLnNsaWNlKDAsMyl9KSAke2Yuc2xpY2UoMyl9YDpmLmxlbmd0aDw9MTA/YCgke2Yuc2xpY2UoMCwzKX0pICR7Zi5zbGljZSgzLDYpfS0ke2Yuc2xpY2UoNil9YDpgKyR7Zi5zbGljZSgwLGYubGVuZ3RoLTEwKX0gKCR7Zi5zbGljZSgtMTAsLTcpfSkgJHtmLnNsaWNlKC03LC00KX0tJHtmLnNsaWNlKC00KX1gfWNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKG0sZix5KXtsZXQgTT0wO2ZvcihsZXQgej0wO3o8eSYmejxmLmxlbmd0aDt6KyspL1xkLy50ZXN0KGZbel0pfHxNKys7cmV0dXJuIE1hdGgubWluKHkrTSxmLmxlbmd0aCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShtKXt0aGlzLnZhbHVlPW0sdGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKG0pfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZZyh0aGlzLHYpfXN0YXRpY3tZZyhhLHQpfX07cmV0dXJuIHg9YX0pKCl9KTt2YXIgQmJhLEhiYT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7QmJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSx0PXMucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksYT1zLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLmZvckVhY2gocj0+e2xldCBuPXI7IW4uZGlzYWJsZWQmJiFuLnJlcXVpcmVkJiYobi52YWx1ZT0hMCl9KX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5mb3JFYWNoKHI9PntsZXQgbj1yOyFuLmRpc2FibGVkJiYhbi5yZXF1aXJlZCYmKG4udmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQoKICAgICAgICAudG9nZ2xlLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmhvcml6b250YWwtdG9nZ2xlcyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KCiAgICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQoKICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtdG9nZ2xlcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CgogICAgICAgIC5kcmFnLWhpbnQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUb2dnbGUifSAuc3VidGl0bGU9JHsiU2ltcGxlIG9uL29mZiB0b2dnbGUgc3dpdGNoIHdpdGggZHJhZyBzdXBwb3J0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlIGZlYXR1cmUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJiYXNpYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSB0b2dnbGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmtleT0keyJhY3RpdmUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJXaXRoIGRlc2NyaXB0aW9uIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHRvZ2dsZSBoYXMgYWRkaXRpb25hbCBoZWxwZXIgdGV4dCBleHBsYWluaW5nIGl0cyBwdXJwb3NlIn0KICAgICAgICAgICAgLmtleT0keyJ3aXRoRGVzYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8cCBjbGFzcz0iZHJhZy1oaW50Ij5UaXA6IFlvdSBjYW4gZHJhZyB0aGUgdG9nZ2xlIGtub2IgdG8gc3dpdGNoIHN0YXRlczwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlRvZ2dsZSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHRvZ2dsZSBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGVmYXVsdCAob2ZmKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJFbmFibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIChhbHdheXMgb24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgY2Fubm90IGJlIHR1cm5lZCBvZmYifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJUb2dnbGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBpbnRlcmZhY2VzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtdG9nZ2xlcyI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJXaUZpIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmx1ZXRvb3RoIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiR1BTIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiTkZDIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlcyBpbiBhIHR5cGljYWwgc2V0dGluZ3MgY29udGV4dCJ9PgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgICAgPGg0IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2g0PgoKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJQdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIHB1c2ggbm90aWZpY2F0aW9ucyBvbiB5b3VyIGRldmljZSJ9CiAgICAgICAgICAgICAgLmtleT0keyJwdXNoIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkdldCBpbXBvcnRhbnQgdXBkYXRlcyB2aWEgZW1haWwifQogICAgICAgICAgICAgIC5rZXk9JHsiZW1haWwifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJTb3VuZCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlBsYXkgYSBzb3VuZCBmb3Igbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLmtleT0keyJzb3VuZCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlZpYnJhdGlvbiJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlZpYnJhdGUgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsidmlicmF0aW9uIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgVG9nZ2xlcyJ9IC5zdWJ0aXRsZT0keyJCYXRjaCBvcGVyYXRpb25zIG9uIG11bHRpcGxlIHRvZ2dsZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJ0b2dnbGUtYWxsLW9uIiB0eXBlPSJzZWNvbmRhcnkiPkVuYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJ0b2dnbGUtYWxsLW9mZiIgdHlwZT0ic2Vjb25kYXJ5Ij5EaXNhYmxlIEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtdG9nZ2xlcyI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiRGFyayBNb2RlIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImRhcmtNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQXV0by1zYXZlIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImF1dG9TYXZlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU3BlbGwgY2hlY2sifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsic3BlbGxDaGVjayJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRldmVsb3BlciBtb2RlIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImRldk1vZGUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJCZXRhIGZlYXR1cmVzIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImJldGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUb2dnbGUgdG8gc2VlIHZhbHVlIGNoYW5nZXMgaW4gcmVhbC10aW1lIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQWlycGxhbmUgbW9kZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAbmV3VmFsdWU9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpcnBsYW5lLW91dHB1dCIpO2UmJihlLnRleHRDb250ZW50PWBBaXJwbGFuZSBtb2RlOiAke3MuZGV0YWlsPyJPTiI6Ik9GRiJ9YCl9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEbyBub3QgZGlzdHVyYiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAbmV3VmFsdWU9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2RuZC1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gRG8gbm90IGRpc3R1cmI6ICR7cy5kZXRhaWw/IkVOQUJMRUQiOiJESVNBQkxFRCJ9YCl9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0iYWlycGxhbmUtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkFpcnBsYW5lIG1vZGU6IE9GRjwvZGl2PgogICAgICAgICAgPGRpdiBpZD0iZG5kLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0IiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyI+RG8gbm90IGRpc3R1cmI6IERJU0FCTEVEPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBxYmEsdW50LHBudCxobnQ9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO0hiYSgpO0VyKCk7aHQoKTtxYmE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHVudD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scG50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10b2dnbGUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0VG9nZ2xlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scWJhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InZhbHVlImluIHUsImhhcyIpLGdldDppKHU9PnUudmFsdWUsImdldCIpLHNldDppKCh1LGMpPT57dS52YWx1ZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCkscWJhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89QmJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT11bnQodGhpcyxvLCExKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoZCl7dGhpcy4jZT1kfWN1cnJlbnRYPSh1bnQodGhpcyxsKSwwKTtpc0RyYWdnaW5nPSExO2hhc0RyYWdnZWQ9ITE7c3RhcnRYPTA7dHJhY2tXaWR0aD0zNjt0cmFja0hlaWdodD0yMDtrbm9iU2l6ZT0xNDtwYWRkaW5nPTI7bWF4VHJhdmVsPTE2O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2sgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWx1ZV0pIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjazpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUta25vYiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMnB4OwogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b2dnbGUta25vYi5kcmFnZ2luZyB7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbdmFsdWVdKSAudG9nZ2xlLWtub2IgewogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2suZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBSZXF1aXJlZCBzdGF0ZSAobG9ja2VkIG9uKSAqLwogICAgICA6aG9zdChbcmVxdWlyZWRdW3ZhbHVlXSkgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA2MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNDkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA2MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNDkuOCUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtyZXF1aXJlZF1bdmFsdWVdKSAudG9nZ2xlLWtub2IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLyogTGFiZWwgKi8KICAgICAgLmxhYmVsLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiBAY2xpY2s9IiR7dGhpcy5oYW5kbGVDbGlja30iPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLXRyYWNrICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWtub2IiCiAgICAgICAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wYWRkaW5nK3RoaXMuY3VycmVudFh9cHg7IgogICAgICAgICAgICAgIEBwb2ludGVyZG93bj0iJHt0aGlzLm9uUG9pbnRlckRvd259IgogICAgICAgICAgICAgIEBwb2ludGVybW92ZT0iJHt0aGlzLm9uUG9pbnRlck1vdmV9IgogICAgICAgICAgICAgIEBwb2ludGVydXA9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgICAgQHBvaW50ZXJjYW5jZWw9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0idG9nZ2xlLWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChkKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoZCksdGhpcy5yZXF1aXJlZCYmIXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPSEwKSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBoYW5kbGVDbGljayhkKXtpZih0aGlzLmlzRHJhZ2dpbmd8fHRoaXMuaGFzRHJhZ2dlZCl7ZC5zdG9wUHJvcGFnYXRpb24oKSxkLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCF0aGlzLmRpc2FibGVkKXtpZih0aGlzLnJlcXVpcmVkKXt0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IG5ldyBQcm9taXNlKHU9PnNldFRpbWVvdXQodSwxMCkpLHRoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwtMyx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB1dC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbCx0aGlzLnJlcXVlc3RVcGRhdGUoKTtyZXR1cm59ZC5zdG9wUHJvcGFnYXRpb24oKSxkLnByZXZlbnREZWZhdWx0KCksdGhpcy52YWx1ZT0hdGhpcy52YWx1ZSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdXQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9fW9uUG9pbnRlckRvd24oZCl7dGhpcy5yZXF1aXJlZHx8dGhpcy5kaXNhYmxlZHx8KHRoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLnN0YXJ0WD1kLmNsaWVudFgtdGhpcy5jdXJyZW50WCxkLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShkLnBvaW50ZXJJZCkpfW9uUG9pbnRlck1vdmUoZCl7aWYoIXRoaXMuaXNEcmFnZ2luZylyZXR1cm47bGV0IHU9ZC5jbGllbnRYLXRoaXMuc3RhcnRYO3RoaXMuaGFzRHJhZ2dlZD0hMDtsZXQgYz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO2MmJmMuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSx0aGlzLmN1cnJlbnRYPU1hdGgubWF4KDAsTWF0aC5taW4odSx0aGlzLm1heFRyYXZlbCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfW9uUG9pbnRlclVwKGQpe2lmKCF0aGlzLmlzRHJhZ2dpbmd8fChkLnRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoZC5wb2ludGVySWQpLHRoaXMuaXNEcmFnZ2luZz0hMSwhdGhpcy5oYXNEcmFnZ2VkKSlyZXR1cm47bGV0IHU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLWtub2IiKTt1JiZ1LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7bGV0IGM9dGhpcy5tYXhUcmF2ZWwvMjt0aGlzLnZhbHVlPXRoaXMuY3VycmVudFg+Yyx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdXQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9dXBkYXRlZChkKXtzdXBlci51cGRhdGVkKGQpLGQuaGFzKCJ2YWx1ZSIpJiYhdGhpcy5pc0RyYWdnaW5nJiYhdGhpcy5oYXNEcmFnZ2VkJiYodGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWhhbmRsZUtleWRvd24oZCl7KGQua2V5PT09IiAifHxkLmtleT09PSJFbnRlciIpJiYoZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQ2xpY2soZCkpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoZCl7dGhpcy52YWx1ZT1kfWZvY3VzKCl7bGV0IGQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLXRyYWNrIik7ZCYmZC5mb2N1cygpfXN0YXRpY3t1bnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGpiYSxWYmE9ZygoKT0+e3BlKCk7amJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7SmAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTNmMmZkOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICMxOTc2ZDI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTBjYWY5OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFR5cGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJBZGQgYW5kIHJlbW92ZSBpdGVtcyBmcm9tIGEgbGlzdCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgdGFncyBieSB0eXBpbmcgYW5kIHByZXNzaW5nIEVudGVyIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRhZ3MgaGVscCBjYXRlZ29yaXplIGFuZCBmaWx0ZXIgeW91ciBjb250ZW50In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJqYXZhc2NyaXB0IiwidHlwZXNjcmlwdCIsIndlYi1jb21wb25lbnRzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHtbImFsaWNlQGV4YW1wbGUuY29tIiwiYm9iQGV4YW1wbGUuY29tIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2tpbGxzICYgS2V5d29yZHMifSAuc3VidGl0bGU9JHsiTWFuYWdlIGxpc3RzIG9mIHNraWxscyBhbmQga2V5d29yZHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcmllcyJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJUZWNobm9sb2d5IiwiRGVzaWduIiwiQnVzaW5lc3MiXX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IktleXdvcmRzIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHtbImlubm92YXRpb24iLCJzdGFydHVwIiwiZ3Jvd3RoIl19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgRGVwZW5kZW5jaWVzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgYWxsIHJlcXVpcmVkIG5wbSBwYWNrYWdlcyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCIsIkBkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlN5c3RlbSBUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoZXNlIHRhZ3MgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbInN5c3RlbSIsInByb3RlY3RlZCIsInJlYWRvbmx5Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQXJ0aWNsZSBQdWJsaXNoaW5nIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSB3aXRoIHRhZyBtYW5hZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFydGljbGUgVGl0bGUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiU3VtbWFyeSJ9IAogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBhcnRpY2xlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCByZWxldmFudCB0YWdzIGZvciBiZXR0ZXIgZGlzY292ZXJhYmlsaXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJ0dXRvcmlhbCIsIndlYi1kZXZlbG9wbWVudCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDby1BdXRob3JzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgY28tYXV0aG9ycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICAgIDxzdHJvbmc+VGlwOjwvc3Ryb25nPiBUeXBlIGEgdmFsdWUgYW5kIHByZXNzIEVudGVyIHRvIGFkZCBpdCB0byB0aGUgbGlzdC4gQ2xpY2sgb24gYW55IGl0ZW0gdG8gcmVtb3ZlIGl0LgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgZm50LEVRLG1udCxnbnQ9ZygoKT0+e3BlKCk7a3QoKTtFaSgpO1ZiYSgpO2h0KCk7Zm50PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxFUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbW50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10eXBlbGlzdCIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRUeXBlbGlzdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bWSgpXSxmbnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4idmFsdWUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di52YWx1ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnZhbHVlPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxmbnQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJpbnB1dFZhbHVlImluIHYsImhhcyIpLGdldDppKHY9PnYuaW5wdXRWYWx1ZSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmlucHV0VmFsdWU9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGZudChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWpiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9RVEodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoYil7dGhpcy4jZT1ifSN0PShFUSh0aGlzLGwpLEVRKHRoaXMsZCwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlucHV0VmFsdWUoYil7dGhpcy4jdD1ifXN0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CiAgICAgIC5tYWluYm94IHsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMjIyMjIyIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm9yZGVyLXRvcDogJHtoLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICNmZmZmZmYxMCIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgIzIyMiIpfTsKICAgICAgICBib3JkZXItcmlnaHQ6ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjBweCAxcHggNHB4IHJnYmEoMCwwLDAsMC4zKSIsIm5vbmUiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpob3ZlciB7CiAgICAgICAgZmlsdGVyOiAke2guYmRUaGVtZSgiYnJpZ2h0bmVzcygwLjk4KSIsImJyaWdodG5lc3MoMS4wNSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYWluYm94OmZvY3VzLXdpdGhpbiB7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDA2OWYyIiwiIzAwODRmZiIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQoKICAgICAgLnRhZ3MgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAubm90YWdzIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MTgiKX07CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICBoZWlnaHQ6IDBweDsKICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yczsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzFhMWExYSIpfTsKICAgICAgfQogICAgICAKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAudGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlOGY1ZTkiLCIjMmQzYTJkIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzJlN2QzMiIsIiM4MWM3ODQiKX07CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjYzhlNmM5IiwiIzFiNWUyMCIpfTsKICAgICAgfQogICAgICAKICAgICAgLnRhZzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNjOGU2YzkiLCIjM2Q0ZjNkIil9OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlIHsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAudGFnIC5yZW1vdmU6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYzYyODI4IiwiI2VmNTM1MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLm1haW5ib3ggewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudGFncyB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIGlucHV0IHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRhZ3MiIEBjbGljaz0keygpPT57dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKX19PgogICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9Im5vdGFncyI+Tm8gdGFncyB5ZXQ8L2Rpdj5gOnRoaXMudmFsdWUubWFwKGI9PndgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZyI+CiAgICAgICAgICAgICAgICAgICAgICAke2J9CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVtb3ZlIiBAY2xpY2s9JHt2PT57di5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnJlbW92ZVRhZyhiKX19PsOXPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iVHlwZSwgcHJlc3MgRW50ZXIgdG8gYWRkIGl0Li4uIgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgIEBpbnB1dD0ke2I9Pnt0aGlzLmlucHV0VmFsdWU9Yi50YXJnZXQudmFsdWV9fQogICAgICAgICAgICBAa2V5ZG93bj0ke2I9PntiLmtleT09PSJFbnRlciImJnRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJihiLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlLnRyaW0oKSkpfX0KICAgICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1hZGRUYWcoYil7dGhpcy52YWx1ZS5pbmNsdWRlcyhiKXx8KHRoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsYl0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1yZW1vdmVUYWcoYil7dGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcih2PT52IT09YiksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShiKXt0aGlzLnZhbHVlPWJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEVRKHRoaXMsdSl9c3RhdGlje0VRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBVYmEsV2JhLEdiYT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7V2JhPWkoKCk9PncoVWJhfHwoVWJhPWJjKFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRpc2FibGVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAuaW5wdXRUeXBlPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PWAsYD48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtdGFncyIKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIEBjaGFuZ2U9YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRhZy1wcmV2aWV3IiBpZD0idGFncy1wcmV2aWV3Ij4KICAgICAgICAgIDxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJ0YWdzLWpzb24iPgogICAgICAgICAgPGVtPkpTT04gb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAvLyBVcGRhdGUgSlNPTiBwcmV2aWV3CiAgICAgICAgICBjb25zdCB0YWdzSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtdGFncycpOwogICAgICAgICAgdGFnc0lucHV0Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4gewogICAgICAgICAgICBjb25zdCBqc29uUHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YWdzLWpzb24nKTsKICAgICAgICAgICAgaWYgKGpzb25QcmV2aWV3KSB7CiAgICAgICAgICAgICAganNvblByZXZpZXcudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShlLmRldGFpbC52YWx1ZSwgbnVsbCwgMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIDxcL3NjcmlwdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgXSkpLEpgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFnLXByZXZpZXcgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmOWZhZmI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFmMjkzNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTBlN2ZmOwogICAgICAgICAgY29sb3I6ICM0MzM4Y2E7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzMTJlODE7CiAgICAgICAgICAgIGNvbG9yOiAjYzdkMmZlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYCwiMS4gQmFzaWMgVGFncyBJbnB1dCIsIlNpbXBsZSB0YWcgaW5wdXQgd2l0aCBjb21tb24gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIiwiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzIiwiQWRkIGEgbGFuZ3VhZ2UuLi4iLFsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJHbyJdLCJQcmVzcyBFbnRlciBvciBjb21tYSB0byBhZGQgdGFncyIsIjIuIFRhZ3Mgd2l0aCBTdWdnZXN0aW9ucyIsIkF1dG8tY29tcGxldGUgc3VnZ2VzdGlvbnMgZm9yIGZhc3RlciBpbnB1dCIsIlRlY2ggU3RhY2siLCJUeXBlIHRvIHNlZSBzdWdnZXN0aW9ucy4uLiIsWyJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJMaXQiLCJOZXh0LmpzIiwiTnV4dCIsIlN2ZWx0ZUtpdCIsIk5vZGUuanMiLCJEZW5vIiwiQnVuIiwiRXhwcmVzcyIsIkZhc3RpZnkiLCJOZXN0LmpzIiwiS29hIiwiTW9uZ29EQiIsIlBvc3RncmVTUUwiLCJSZWRpcyIsIk15U1FMIiwiU1FMaXRlIiwiQ2Fzc2FuZHJhIiwiRG9ja2VyIiwiS3ViZXJuZXRlcyIsIkFXUyIsIkF6dXJlIiwiR0NQIiwiVmVyY2VsIiwiTmV0bGlmeSJdLFsiUmVhY3QiLCJOb2RlLmpzIiwiUG9zdGdyZVNRTCIsIkRvY2tlciJdLCJTdGFydCB0eXBpbmcgdG8gc2VlIHN1Z2dlc3Rpb25zIGZyb20gcG9wdWxhciB0ZWNobm9sb2dpZXMiLCIzLiBMaW1pdGVkIFRhZ3MiLCJSZXN0cmljdCB0aGUgbnVtYmVyIG9mIHRhZ3MgdXNlcnMgY2FuIGFkZCIsIlRvcCAzIFNraWxscyIsIkFkZCB1cCB0byAzIHNraWxscy4uLiIsMyxbIkRlc2lnbiIsIkRldmVsb3BtZW50Il0sIk1heGltdW0gMyB0YWdzIGFsbG93ZWQiLCJDYXRlZ29yaWVzIChNYXggNSkiLCJTZWxlY3QgY2F0ZWdvcmllcy4uLiIsNSxbIkJsb2ciLCJUdXRvcmlhbCIsIk5ld3MiLCJSZXZpZXciLCJHdWlkZSIsIkNhc2UgU3R1ZHkiLCJJbnRlcnZpZXciXSxbIlR1dG9yaWFsIiwiR3VpZGUiXSwiQ2hvb3NlIHVwIHRvIDUgY2F0ZWdvcmllcyIsIjQuIFJlcXVpcmVkICYgVmFsaWRhdGlvbiIsIlRhZ3MgaW5wdXQgd2l0aCB2YWxpZGF0aW9uIHJlcXVpcmVtZW50cyIsIlByb2plY3QgVGFncyIsIkFkZCBhdCBsZWFzdCBvbmUgdGFnLi4uIiwhMCwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCAtIGFkZCBhdCBsZWFzdCBvbmUgdGFnIiwiNS4gRGlzYWJsZWQgU3RhdGUiLCJSZWFkLW9ubHkgdGFncyBkaXNwbGF5IiwiU3lzdGVtIFRhZ3MiLFsiU3lzdGVtIiwiUHJvdGVjdGVkIiwiUmVhZC1Pbmx5IiwiQXJjaGl2ZSJdLCEwLCJUaGVzZSB0YWdzIGNhbm5vdCBiZSBtb2RpZmllZCIsIjYuIEZvcm0gSW50ZWdyYXRpb24iLCJUYWdzIGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0IiwiUHJvamVjdCBOYW1lIiwiTXkgQXdlc29tZSBQcm9qZWN0IiwhMCwibmFtZSIsIlRlY2hub2xvZ2llcyBVc2VkIiwiQWRkIHRlY2hub2xvZ2llcy4uLiIsITAsInRlY2hub2xvZ2llcyIsWyJUeXBlU2NyaXB0IiwiSmF2YVNjcmlwdCIsIlB5dGhvbiIsIkdvIiwiUnVzdCIsIlJlYWN0IiwiVnVlIiwiQW5ndWxhciIsIlN2ZWx0ZSIsIk5vZGUuanMiLCJEZW5vIiwiRXhwcmVzcyIsIkZhc3RBUEkiXSwiUHJvamVjdCBUYWdzIiwiQWRkIGRlc2NyaXB0aXZlIHRhZ3MuLi4iLCJ0YWdzIiwxMCxbImZyb250ZW5kIiwiYmFja2VuZCIsImZ1bGxzdGFjayIsIm1vYmlsZSIsImRlc2t0b3AiLCJ3ZWIiLCJhcGkiLCJkYXRhYmFzZSIsImRldm9wcyIsInVpL3V4Iiwib3BlbnNvdXJjZSIsInNhYXMiLCJlbnRlcnByaXNlIiwic3RhcnR1cCJdLCJEZXNjcmlwdGlvbiIsInRleHRhcmVhIiwiRGVzY3JpYmUgeW91ciBwcm9qZWN0Li4uIiwiZGVzY3JpcHRpb24iLCJDcmVhdGUgUHJvamVjdCIsIjcuIEludGVyYWN0aXZlIERlbW8iLCJBZGQgdGFncyBhbmQgc2VlIHRoZW0gY29sbGVjdGVkIGluIHJlYWwtdGltZSIsIllvdXIgSW50ZXJlc3RzIiwiVHlwZSB5b3VyIGludGVyZXN0cy4uLiIsWyJNdXNpYyIsIk1vdmllcyIsIkJvb2tzIiwiVHJhdmVsIiwiUGhvdG9ncmFwaHkiLCJDb29raW5nIiwiR2FtaW5nIiwiU3BvcnRzIiwiQXJ0IiwiVGVjaG5vbG9neSIsIkZhc2hpb24iLCJGaXRuZXNzIiwiTmF0dXJlIiwiU2NpZW5jZSIsIkhpc3RvcnkiXSxzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3RhZ3MtcHJldmlldyIpLHQ9cy5kZXRhaWwudmFsdWU7ZSYmKHQubGVuZ3RoPT09MD9lLmlubmVySFRNTD0nPGVtIHN0eWxlPSJjb2xvcjogIzk5OTsiPk5vIHRhZ3MgYWRkZWQgeWV0Li4uPC9lbT4nOmUuaW5uZXJIVE1MPXQubWFwKGE9PmA8c3BhbiBjbGFzcz0idGFnLXByZXZpZXctaXRlbSI+JHthfTwvc3Bhbj5gKS5qb2luKCIiKSl9KSwiZGVtb0Z1bmMiKX0pO3ZhciBOdSxGbyxibnQsdm50PWcoKCk9PntwZSgpO0VpKCk7R2EoKTtHYmEoKTtodCgpO051PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxGbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sYm50PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1pbnB1dC10YWdzIildLGUsdD1bXSxhLHI9QnQsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRhZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6QXJyYXl9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sTnUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4idmFsdWUiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui52YWx1ZSwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLnZhbHVlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbyxsKSxOdSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJwbGFjZWhvbGRlciJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IucGxhY2Vob2xkZXI9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLE51KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4VGFncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ibWF4VGFncyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLm1heFRhZ3MsImdldCIpLHNldDppKChSLEspPT57Ui5tYXhUYWdzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxOdSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Z2dlc3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJzdWdnZXN0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnN1Z2dlc3Rpb25zLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc3VnZ2VzdGlvbnM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxtLGYpLE51KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iaW5wdXRWYWx1ZSJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmlucHV0VmFsdWUsImdldCIpLHNldDppKChSLEspPT57Ui5pbnB1dFZhbHVlPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxOdSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2hvd1N1Z2dlc3Rpb25zImluIFIsImhhcyIpLGdldDppKFI9PlIuc2hvd1N1Z2dlc3Rpb25zLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2hvd1N1Z2dlc3Rpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxOdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9S30sInNldCIpfSxtZXRhZGF0YTpQfSwkLEUpLE51KHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InZhbGlkYXRpb25UZXh0ImluIFIsImhhcyIpLGdldDppKFI9PlIudmFsaWRhdGlvblRleHQsImdldCIpLHNldDppKChSLEspPT57Ui52YWxpZGF0aW9uVGV4dD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksTnUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1XYmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUZvKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFApe3RoaXMuI2U9UH0jdD0oRm8odGhpcyxsKSxGbyh0aGlzLGQsIkFkZCB0YWdzLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihQKXt0aGlzLiN0PVB9I2E9KEZvKHRoaXMsdSksRm8odGhpcyxiLDApKTtnZXQgbWF4VGFncygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhUYWdzKFApe3RoaXMuI2E9UH0jcz0oRm8odGhpcyx2KSxGbyh0aGlzLG0sW10pKTtnZXQgc3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3VnZ2VzdGlvbnMoUCl7dGhpcy4jcz1QfSNpPShGbyh0aGlzLGYpLEZvKHRoaXMsTSwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlucHV0VmFsdWUoUCl7dGhpcy4jaT1QfSNyPShGbyh0aGlzLHopLEZvKHRoaXMsQywhMSkpO2dldCBzaG93U3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1N1Z2dlc3Rpb25zKFApe3RoaXMuI3I9UH0jbz0oRm8odGhpcyxfKSxGbyh0aGlzLCQsLTEpKTtnZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoKXtyZXR1cm4gdGhpcy4jb31zZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoUCl7dGhpcy4jbz1QfSNuPShGbyh0aGlzLEUpLEZvKHRoaXMsaywiIikpO2dldCB2YWxpZGF0aW9uVGV4dCgpe3JldHVybiB0aGlzLiNufXNldCB2YWxpZGF0aW9uVGV4dChQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1bcWUsLi4uQnQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMikiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMykiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiB0YWdBcHBlYXIgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB0YWdBcHBlYXIgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA0Ni43JSkiLCJoc2woMjE3LjkgMTAuNiUgNTQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIFN1Z2dlc3Rpb25zIGRyb3Bkb3duICovCiAgICAgIC5zdWdnZXN0aW9ucy1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uLmhpZ2hsaWdodGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IFA9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoUj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoUikmJlIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0idGFncy1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUNvbnRhaW5lckNsaWNrfQogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMudmFsdWUubWFwKFI9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnIj4KICAgICAgICAgICAgICAgIDxzcGFuPiR7Un08L3NwYW4+CiAgICAgICAgICAgICAgICAke3RoaXMuZGlzYWJsZWQ/IiI6d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnLXJlbW92ZSIgQGNsaWNrPSR7Sz0+dGhpcy5yZW1vdmVUYWcoSyxSKX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgICAKICAgICAgICAgICAgJHshdGhpcy5kaXNhYmxlZCYmKCF0aGlzLm1heFRhZ3N8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4VGFncyk/d2AKICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0idGFnLWlucHV0IgogICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlSW5wdXR9CiAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlS2V5RG93bn0KICAgICAgICAgICAgICAgIEBmb2N1cz0ke3RoaXMuaGFuZGxlRm9jdXN9CiAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlQmx1cn0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5zaG93U3VnZ2VzdGlvbnMmJlAubGVuZ3RoPjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtZHJvcGRvd24iPgogICAgICAgICAgICAgICR7UC5tYXAoKFIsSyk9PndgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJzdWdnZXN0aW9uICR7Sz09PXRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg/ImhpZ2hsaWdodGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHtWPT57Vi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKFIpfX0KICAgICAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1LfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1J9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSI+JHt0aGlzLnZhbGlkYXRpb25UZXh0fTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDb250YWluZXJDbGljayhQKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWctaW5wdXQiKTtSJiZQLnRhcmdldCE9PVImJlIuZm9jdXMoKX1oYW5kbGVJbnB1dChQKXtsZXQgUj1QLnRhcmdldDtpZih0aGlzLmlucHV0VmFsdWU9Ui52YWx1ZSx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIiwiKXx8dGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCI7Iikpe2xldCBLPXRoaXMuaW5wdXRWYWx1ZS5yZXBsYWNlKC9bLDtdL2csIiIpLnRyaW0oKTtLJiZ0aGlzLmFkZFRhZyhLKX19aGFuZGxlS2V5RG93bihQKXtsZXQgUj1QLnRhcmdldDtpZihQLmtleT09PSJFbnRlciIpaWYoUC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg+PTAmJnRoaXMuc2hvd1N1Z2dlc3Rpb25zKXtsZXQgSz10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihWPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhWKSYmVi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7S1t0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4XSYmdGhpcy5hZGRUYWcoS1t0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4XSl9ZWxzZSB0aGlzLmlucHV0VmFsdWUudHJpbSgpJiZ0aGlzLmFkZFRhZyh0aGlzLmlucHV0VmFsdWUudHJpbSgpKTtlbHNlIGlmKFAua2V5PT09IkJhY2tzcGFjZSImJiF0aGlzLmlucHV0VmFsdWUmJnRoaXMudmFsdWUubGVuZ3RoPjApdGhpcy5yZW1vdmVUYWcoUCx0aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoLTFdKTtlbHNlIGlmKFAua2V5PT09IkFycm93RG93biImJnRoaXMuc2hvd1N1Z2dlc3Rpb25zKXtQLnByZXZlbnREZWZhdWx0KCk7bGV0IEs9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoVj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoVikmJlYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpLmxlbmd0aDt0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWluKHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgrMSxLLTEpfWVsc2UgUC5rZXk9PT0iQXJyb3dVcCImJnRoaXMuc2hvd1N1Z2dlc3Rpb25zPyhQLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1NYXRoLm1heCh0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LTEsMCkpOlAua2V5PT09IkVzY2FwZSImJih0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xKX1oYW5kbGVGb2N1cygpe3RoaXMuc3VnZ2VzdGlvbnMubGVuZ3RoPjAmJih0aGlzLnNob3dTdWdnZXN0aW9ucz0hMCl9aGFuZGxlQmx1cigpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xfSwyMDApfWFkZFRhZyhQKXtpZighUHx8dGhpcy52YWx1ZS5pbmNsdWRlcyhQKXx8dGhpcy5tYXhUYWdzJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhUYWdzKXJldHVybjt0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLFBdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xO2xldCBSPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpO1ImJihSLnZhbHVlPSIiKSx0aGlzLmVtaXRDaGFuZ2UoKX1yZW1vdmVUYWcoUCxSKXtQLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIoSz0+SyE9PVIpLHRoaXMuZW1pdENoYW5nZSgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShQKXt0aGlzLnZhbHVlPVB8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIHRhZyBpcyByZXF1aXJlZCIsITEpOih0aGlzLnZhbGlkYXRpb25UZXh0PSIiLCEwKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRm8odGhpcyxTKX1zdGF0aWN7Rm8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIEtiYSxZYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO3l4KCk7bzQoKTtXZygpO0tiYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2VmZjZmZjsKICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzNiODJmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAjMWU0MGFmOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5M2M1ZmQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgTGlzdCBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgbGlzdCBtYW5hZ2VtZW50IHdpdGggYWRkLCBlZGl0LCBhbmQgZGVsZXRlIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlNob3BwaW5nIExpc3QifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpdGVtIHRvIHlvdXIgbGlzdC4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIk1pbGsiLCJCcmVhZCIsIkVnZ3MiLCJDaGVlc2UiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEb3VibGUtY2xpY2sgdG8gZWRpdCBpdGVtcywgb3IgdXNlIHRoZSBlZGl0IGJ1dHRvbiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5KhIERvdWJsZS1jbGljayBhbnkgaXRlbSB0byBxdWlja2x5IGVkaXQgaXQgaW5saW5lCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBTb3J0YWJsZSBMaXN0In0gLnN1YnRpdGxlPSR7IkRyYWcgYW5kIGRyb3AgdG8gcmVvcmRlciBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYXNrIFByaW9yaXR5In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSB0YXNrLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJSZXZpZXcgcHVsbCByZXF1ZXN0cyIsIkZpeCBjcml0aWNhbCBidWciLCJVcGRhdGUgZG9jdW1lbnRhdGlvbiIsIkRlcGxveSB0byBwcm9kdWN0aW9uIiwiVGVhbSBzdGFuZHVwIG1lZXRpbmciXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEcmFnIGl0ZW1zIHVzaW5nIHRoZSBoYW5kbGUgdG8gcmVvcmRlciB0aGVtIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgIPCflIQgRHJhZyB0aGUgZ3JpcCBoYW5kbGUgdG8gcmVvcmRlciB0YXNrcyBieSBwcmlvcml0eQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gVmFsaWRhdGlvbiAmIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7Ikxpc3RzIHdpdGggbWluaW11bS9tYXhpbXVtIGl0ZW1zIGFuZCBkdXBsaWNhdGUgcHJldmVudGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIChNaW4gMiwgTWF4IDUpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5tYXhJdGVtcz0kezV9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJBZGQgMi01IHRlYW0gbWVtYmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHVuaXF1ZSB0YWcuLi4ifQogICAgICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkR1cGxpY2F0ZSBpdGVtcyBhcmUgbm90IGFsbG93ZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7cz0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZihlKXtsZXQgdD17aXRlbXM6cy5kZXRhaWwudmFsdWUsY291bnQ6cy5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIENhbmRpZGF0ZXMgd2l0aCBUYWIgQ29tcGxldGlvbiJ9IC5zdWJ0aXRsZT0keyJUZXJtaW5hbC1zdHlsZSBhdXRvY29tcGxldGUgXHUyMDE0IFRhYiBhY2NlcHRzLCBTaGlmdCtUYWIgY3ljbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICBpZD0iY2FuZGlkYXRlLWxpc3QiCiAgICAgICAgICAgIC5sYWJlbD0keyJBc3NpZ24gVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSBuYW1lLi4uIChUYWIgdG8gY29tcGxldGUpIn0KICAgICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6IkFsaWNlIFNtaXRoIixwYXlsb2FkOntpZDoxLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJGcm9udGVuZCJ9fSx7dmlld0tleToiQm9iIEpvaG5zb24iLHBheWxvYWQ6e2lkOjIscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJDYXJvbCBXaWxsaWFtcyIscGF5bG9hZDp7aWQ6Myxyb2xlOiJQcm9kdWN0IE1hbmFnZXIiLGRlcGFydG1lbnQ6IlByb2R1Y3QifX0se3ZpZXdLZXk6IkRhdmlkIEJyb3duIixwYXlsb2FkOntpZDo0LHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJCYWNrZW5kIn19LHt2aWV3S2V5OiJFdmUgRGF2aXMiLHBheWxvYWQ6e2lkOjUscm9sZToiUUEgRW5naW5lZXIiLGRlcGFydG1lbnQ6IlF1YWxpdHkifX0se3ZpZXdLZXk6IkZyYW5rIE1pbGxlciIscGF5bG9hZDp7aWQ6Nixyb2xlOiJEZXZPcHMiLGRlcGFydG1lbnQ6IkluZnJhc3RydWN0dXJlIn19LHt2aWV3S2V5OiJHcmFjZSBXaWxzb24iLHBheWxvYWQ6e2lkOjcscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJIZW5yeSBNb29yZSIscGF5bG9hZDp7aWQ6OCxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiRnJvbnRlbmQifX1dfQogICAgICAgICAgICAudmFsdWU9JHtbIkFsaWNlIFNtaXRoIiwiQ2Fyb2wgV2lsbGlhbXMiXX0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlR5cGUgdG8gc2VlIGdob3N0IGNvbXBsZXRpb24uIFRhYiB0byBhY2NlcHQsIFNoaWZ0K1RhYiB0byBjeWNsZSwgRW50ZXIgdG8gYWRkLiJ9CiAgICAgICAgICAgIEBjaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhbmRpZGF0ZS1qc29uIik7aWYoZSl7bGV0IGE9cy50YXJnZXQuZ2V0QWRkZWRDYW5kaWRhdGVzKCk7ZS50ZXh0Q29udGVudD1KU09OLnN0cmluZ2lmeShhLG51bGwsMil9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IG1hcmdpbi1ib3R0b206IDhweDsgY29sb3I6IGluaGVyaXQ7Ij5TZWxlY3RlZCBDYW5kaWRhdGVzICh3aXRoIHBheWxvYWRzKTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9ImNhbmRpZGF0ZS1qc29uIj5bXTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAgICAgIFRyeSB0eXBpbmcgIkQiIOKAlCBnaG9zdCB0ZXh0IHNob3dzICJhdmlkIEJyb3duIi4gUHJlc3MgU2hpZnQrVGFiIHRvIGN5Y2xlIHRvIG90aGVyIEQtbWF0Y2hlcy4gVGFiIGFjY2VwdHMsIEVudGVyIGFkZHMuCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMC4gVGVjaG5vbG9neSBTdGFjayJ9IC5zdWJ0aXRsZT0keyJMYXJnZXIgY2FuZGlkYXRlIHBvb2wgd2l0aCBTaGlmdCtUYWIgY3ljbGluZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgVGVjaG5vbG9naWVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHRvIGF1dG9jb21wbGV0ZS4uLiJ9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiVHlwZVNjcmlwdCIscGF5bG9hZDp7Y2F0ZWdvcnk6Imxhbmd1YWdlIn19LHt2aWV3S2V5OiJSZWFjdCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiVnVlLmpzIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJBbmd1bGFyIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJOb2RlLmpzIixwYXlsb2FkOntjYXRlZ29yeToicnVudGltZSJ9fSx7dmlld0tleToiRGVubyIscGF5bG9hZDp7Y2F0ZWdvcnk6InJ1bnRpbWUifX0se3ZpZXdLZXk6IkRvY2tlciIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRldm9wcyJ9fSx7dmlld0tleToiUG9zdGdyZVNRTCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJNb25nb0RCIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6IlJlZGlzIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6Ikt1YmVybmV0ZXMiLHBheWxvYWQ6e2NhdGVnb3J5OiJkZXZvcHMifX1dfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1RyeSAiRCIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIERlbm8vRG9ja2VyLiAiUiIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIFJlYWN0L1JlZGlzLid9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTEuIEZyZWVmb3JtICsgQ2FuZGlkYXRlcyJ9IC5zdWJ0aXRsZT0keyJBbGxvdyBhZGRpbmcgaXRlbXMgbm90IGluIHRoZSBjYW5kaWRhdGUgbGlzdCAoc2hvd24gd2l0aCBhIHF1ZXN0aW9uIG1hcmspIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSB0YWcuLi4gKGZyZWVmb3JtIGFsbG93ZWQpIn0KICAgICAgICAgIC5hbGxvd0ZyZWVmb3JtPSR7ITB9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiYnVnIixwYXlsb2FkOntjb2xvcjoicmVkIn19LHt2aWV3S2V5OiJmZWF0dXJlIixwYXlsb2FkOntjb2xvcjoiYmx1ZSJ9fSx7dmlld0tleToiZG9jcyIscGF5bG9hZDp7Y29sb3I6ImdyZWVuIn19LHt2aWV3S2V5OiJyZWZhY3RvciIscGF5bG9hZDp7Y29sb3I6InB1cnBsZSJ9fSx7dmlld0tleToicGVyZm9ybWFuY2UiLHBheWxvYWQ6e2NvbG9yOiJvcmFuZ2UifX0se3ZpZXdLZXk6InNlY3VyaXR5IixwYXlsb2FkOntjb2xvcjoicmVkIn19XX0KICAgICAgICAgIC52YWx1ZT0ke1siYnVnIiwibXktY3VzdG9tLXRhZyIsImZlYXR1cmUiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJLbm93biB0YWdzIGdldCBhIGNoZWNrbWFyaywgY3VzdG9tIHRhZ3MgZ2V0IGEgcXVlc3Rpb24gbWFyay4gVGFiIHRvIGNvbXBsZXRlLCBFbnRlciB0byBhZGQgZnJlZWZvcm0uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMi4gRW1wdHkgU3RhdGUifSAuc3VidGl0bGU9JHsiSG93IHRoZSBjb21wb25lbnQgbG9va3Mgd2l0aCBubyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJZb3VyIElkZWFzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTaGFyZSB5b3VyIGlkZWFzLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1tdfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlN0YXJ0IGFkZGluZyBpdGVtcyB0byBidWlsZCB5b3VyIGxpc3QifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIFhpLG1hLHhudCx5bnQ9ZygoKT0+e3BlKCk7RWkoKTtHYSgpO21yKCk7WWJhKCk7aHQoKTtYaT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbWE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHhudD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtbGlzdCIpXSxlLHQ9W10sYSxyPUJ0LG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdO3ZhciBzdD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0TGlzdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0sTz1bTCh7dHlwZTpCb29sZWFufSldLEg9W0woe3R5cGU6QXJyYXl9KV0sST1bTCh7dHlwZTpCb29sZWFufSldLEs9W0woe3R5cGU6U3RyaW5nfSldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLFhpKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJ2YWx1ZSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UudmFsdWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LG8sbCksWGkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InBsYWNlaG9sZGVyImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5wbGFjZWhvbGRlcj1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sZCx1KSxYaSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4ibWF4SXRlbXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5tYXhJdGVtcywiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLm1heEl0ZW1zPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxiLHYpLFhpKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluSXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJtaW5JdGVtcyJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLm1pbkl0ZW1zLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UubWluSXRlbXM9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LG0sZiksWGkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0R1cGxpY2F0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJhbGxvd0R1cGxpY2F0ZXMiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5hbGxvd0R1cGxpY2F0ZXMsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5hbGxvd0R1cGxpY2F0ZXM9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LE0seiksWGkodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzb3J0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+InNvcnRhYmxlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2Uuc29ydGFibGUsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5zb3J0YWJsZT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sQyxfKSxYaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbmZpcm1EZWxldGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJjb25maXJtRGVsZXRlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuY29uZmlybURlbGV0ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmNvbmZpcm1EZWxldGU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LCQsRSksWGkodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5kaWRhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iY2FuZGlkYXRlcyJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmNhbmRpZGF0ZXMsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5jYW5kaWRhdGVzPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxrLFMpLFhpKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dGcmVlZm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImFsbG93RnJlZWZvcm0iaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5hbGxvd0ZyZWVmb3JtLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuYWxsb3dGcmVlZm9ybT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sUCxSKSxYaSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4idmFsaWRhdGlvblRleHQiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS52YWxpZGF0aW9uVGV4dCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLnZhbGlkYXRpb25UZXh0PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxWLFcpLFhpKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlucHV0VmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZ2U9PiJpbnB1dFZhbHVlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuaW5wdXRWYWx1ZSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmlucHV0VmFsdWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6TWV9LEIsVSksWGkodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2hvc3RUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZ2hvc3RUZXh0ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZ2hvc3RUZXh0LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZ2hvc3RUZXh0PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxGLGopLFhpKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRDYW5kaWRhdGVJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImN1cnJlbnRDYW5kaWRhdGVJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmN1cnJlbnRDYW5kaWRhdGVJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmN1cnJlbnRDYW5kaWRhdGVJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sbGUsUSksWGkodGhpcyxudWxsLGllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ0luZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZWRpdGluZ0luZGV4ImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZWRpdGluZ0luZGV4LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZWRpdGluZ0luZGV4PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSx0ZSxlZSksWGkodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ1ZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZWRpdGluZ1ZhbHVlImluIGdlLCJoYXMiKSxnZXQ6aShnZT0+Z2UuZWRpdGluZ1ZhbHVlLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZWRpdGluZ1ZhbHVlPUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxYLFopLFhpKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdnZWRJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmRyYWdnZWRJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmRyYWdnZWRJbmRleD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0scSxBKSxYaSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4iZHJhZ092ZXJJbmRleCJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmRyYWdPdmVySW5kZXgsImdldCIpLHNldDppKChnZSxJZSk9PntnZS5kcmFnT3ZlckluZGV4PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSxvZSxhZSksWGkodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ1N0YXJ0WSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdTdGFydFkiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5kcmFnU3RhcnRZLCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuZHJhZ1N0YXJ0WT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sUmUsQmUpLFhpKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdDdXJyZW50WSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+ImRyYWdDdXJyZW50WSJpbiBnZSwiaGFzIiksZ2V0OmkoZ2U9PmdlLmRyYWdDdXJyZW50WSwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLmRyYWdDdXJyZW50WT1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0sRGUsX2UpLFhpKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhcmdldEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGdlPT4idGFyZ2V0SW5kZXgiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS50YXJnZXRJbmRleCwiZ2V0Iiksc2V0OmkoKGdlLEllKT0+e2dlLnRhcmdldEluZGV4PUllfSwic2V0Iil9LG1ldGFkYXRhOk1lfSx2ZSxiZSksWGkodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXRlbUhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnZT0+Iml0ZW1IZWlnaHQiaW4gZ2UsImhhcyIpLGdldDppKGdlPT5nZS5pdGVtSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoZ2UsSWUpPT57Z2UuaXRlbUhlaWdodD1JZX0sInNldCIpfSxtZXRhZGF0YTpNZX0samUsV2UpLFhpKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk1lfSxudWxsLHQpLHN0PWE9ZS52YWx1ZSxNZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNZX0pfXN0YXRpYyBkZW1vPUtiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bWEodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoTWUpe3RoaXMuI2U9TWV9I3Q9KG1hKHRoaXMsbCksbWEodGhpcyxkLCJBZGQgbmV3IGl0ZW0uLi4iKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYWNlaG9sZGVyKE1lKXt0aGlzLiN0PU1lfSNhPShtYSh0aGlzLHUpLG1hKHRoaXMsYiwwKSk7Z2V0IG1heEl0ZW1zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1heEl0ZW1zKE1lKXt0aGlzLiNhPU1lfSNzPShtYSh0aGlzLHYpLG1hKHRoaXMsbSwwKSk7Z2V0IG1pbkl0ZW1zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbkl0ZW1zKE1lKXt0aGlzLiNzPU1lfSNpPShtYSh0aGlzLGYpLG1hKHRoaXMsTSwhMSkpO2dldCBhbGxvd0R1cGxpY2F0ZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWxsb3dEdXBsaWNhdGVzKE1lKXt0aGlzLiNpPU1lfSNyPShtYSh0aGlzLHopLG1hKHRoaXMsQywhMSkpO2dldCBzb3J0YWJsZSgpe3JldHVybiB0aGlzLiNyfXNldCBzb3J0YWJsZShNZSl7dGhpcy4jcj1NZX0jbz0obWEodGhpcyxfKSxtYSh0aGlzLCQsITEpKTtnZXQgY29uZmlybURlbGV0ZSgpe3JldHVybiB0aGlzLiNvfXNldCBjb25maXJtRGVsZXRlKE1lKXt0aGlzLiNvPU1lfSNuPShtYSh0aGlzLEUpLG1hKHRoaXMsayxbXSkpO2dldCBjYW5kaWRhdGVzKCl7cmV0dXJuIHRoaXMuI259c2V0IGNhbmRpZGF0ZXMoTWUpe3RoaXMuI249TWV9I2w9KG1hKHRoaXMsUyksbWEodGhpcyxQLCExKSk7Z2V0IGFsbG93RnJlZWZvcm0oKXtyZXR1cm4gdGhpcy4jbH1zZXQgYWxsb3dGcmVlZm9ybShNZSl7dGhpcy4jbD1NZX0jYz0obWEodGhpcyxSKSxtYSh0aGlzLFYsIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmFsaWRhdGlvblRleHQoTWUpe3RoaXMuI2M9TWV9YWRkZWRDYW5kaWRhdGVzTWFwPShtYSh0aGlzLFcpLG5ldyBNYXApO21hdGNoaW5nQ2FuZGlkYXRlcz1bXTsjZD1tYSh0aGlzLEIsIiIpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlucHV0VmFsdWUoTWUpe3RoaXMuI2Q9TWV9I3U9KG1hKHRoaXMsVSksbWEodGhpcyxGLCIiKSk7Z2V0IGdob3N0VGV4dCgpe3JldHVybiB0aGlzLiN1fXNldCBnaG9zdFRleHQoTWUpe3RoaXMuI3U9TWV9I3A9KG1hKHRoaXMsaiksbWEodGhpcyxsZSwtMSkpO2dldCBjdXJyZW50Q2FuZGlkYXRlSW5kZXgoKXtyZXR1cm4gdGhpcy4jcH1zZXQgY3VycmVudENhbmRpZGF0ZUluZGV4KE1lKXt0aGlzLiNwPU1lfSNoPShtYSh0aGlzLFEpLG1hKHRoaXMsdGUsLTEpKTtnZXQgZWRpdGluZ0luZGV4KCl7cmV0dXJuIHRoaXMuI2h9c2V0IGVkaXRpbmdJbmRleChNZSl7dGhpcy4jaD1NZX0jZj0obWEodGhpcyxlZSksbWEodGhpcyxYLCIiKSk7Z2V0IGVkaXRpbmdWYWx1ZSgpe3JldHVybiB0aGlzLiNmfXNldCBlZGl0aW5nVmFsdWUoTWUpe3RoaXMuI2Y9TWV9I209KG1hKHRoaXMsWiksbWEodGhpcyxxLC0xKSk7Z2V0IGRyYWdnZWRJbmRleCgpe3JldHVybiB0aGlzLiNtfXNldCBkcmFnZ2VkSW5kZXgoTWUpe3RoaXMuI209TWV9I2c9KG1hKHRoaXMsQSksbWEodGhpcyxvZSwtMSkpO2dldCBkcmFnT3ZlckluZGV4KCl7cmV0dXJuIHRoaXMuI2d9c2V0IGRyYWdPdmVySW5kZXgoTWUpe3RoaXMuI2c9TWV9I2I9KG1hKHRoaXMsYWUpLG1hKHRoaXMsUmUsMCkpO2dldCBkcmFnU3RhcnRZKCl7cmV0dXJuIHRoaXMuI2J9c2V0IGRyYWdTdGFydFkoTWUpe3RoaXMuI2I9TWV9I3Y9KG1hKHRoaXMsQmUpLG1hKHRoaXMsRGUsMCkpO2dldCBkcmFnQ3VycmVudFkoKXtyZXR1cm4gdGhpcy4jdn1zZXQgZHJhZ0N1cnJlbnRZKE1lKXt0aGlzLiN2PU1lfSN4PShtYSh0aGlzLF9lKSxtYSh0aGlzLHZlLC0xKSk7Z2V0IHRhcmdldEluZGV4KCl7cmV0dXJuIHRoaXMuI3h9c2V0IHRhcmdldEluZGV4KE1lKXt0aGlzLiN4PU1lfSN5PShtYSh0aGlzLGJlKSxtYSh0aGlzLGplLDApKTtnZXQgaXRlbUhlaWdodCgpe3JldHVybiB0aGlzLiN5fXNldCBpdGVtSGVpZ2h0KE1lKXt0aGlzLiN5PU1lfWJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9KG1hKHRoaXMsV2UpLG51bGwpO2JvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD1udWxsO29yaWdpbmFsSXRlbVJlY3RzPVtdO3N0YXRpYyBzdHlsZXM9W3FlLC4uLkJ0LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpmb2N1cy13aXRoaW46OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSBkZWVzLXRpbGUgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubGlzdC1pdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1yb3ctaG92ZXIpOwogICAgICB9CgogICAgICAvKiBEcmFnZ2luZyBpdGVtIC0gZm9sbG93cyBjdXJzb3IgKi8KICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTIlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgdXAgdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtdXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKSk7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIGRvd24gdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7CiAgICAgIH0KCgogICAgICAuY2FuZGlkYXRlLWNoZWNrIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNhbmRpZGF0ZS11bmtub3duIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDU4JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5pdGVtLWJ1bGxldCB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBtb3ZlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLml0ZW0tY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLml0ZW0tZWRpdC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAzcHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLml0ZW0tYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxM3B4OwogICAgICAgIGhlaWdodDogMTNweDsKICAgICAgfQoKICAgICAgLmFkZC1pdGVtLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDE2cHggMTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMzQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlIHRyYW5zaXRpb25zIGR1cmluZyBkcm9wIHRvIHByZXZlbnQgZmxhc2ggKi8KICAgICAgLmxpc3QtaXRlbXMuZHJvcHBpbmcgLmxpc3QtaXRlbSB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiDilIDilIAgVGVybWluYWwtc3R5bGUgaW5saW5lIGF1dG9jb21wbGV0ZSDilIDilIAgKi8KICAgICAgLmF1dG9jb21wbGV0ZS13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LXRleHQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZ2hvc3QtdHlwZWQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LWNvbXBsZXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9IiR7dGhpcy52YWx1ZS5sZW5ndGh9IGl0ZW0ke3RoaXMudmFsdWUubGVuZ3RoIT09MT8icyI6IiJ9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtaXRlbXMiPgogICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy52YWx1ZS5tYXAoKE1lLGdlKT0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibGlzdC1pdGVtICR7dGhpcy5kcmFnZ2VkSW5kZXg9PT1nZT8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZH0iCiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7SWU9PnRoaXMuaGFuZGxlRHJhZ1N0YXJ0KEllLGdlKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7dGhpcy5oYW5kbGVEcmFnRW5kfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7SWU9PnRoaXMuaGFuZGxlRHJhZ092ZXIoSWUsZ2UpfQogICAgICAgICAgICAgICAgQGRyb3A9JHtJZT0+dGhpcy5oYW5kbGVEcm9wKEllLGdlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYWctaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpncmlwVmVydGljYWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLnNvbWUoSWU9PkllLnZpZXdLZXk9PT1NZSk/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYW5kaWRhdGUtY2hlY2siIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FuZGlkYXRlLXVua25vd24iIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICBgOiF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9Iml0ZW0tYnVsbGV0IiAuaWNvbj0keyJsdWNpZGU6ZG90In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT1nZT93YAogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpdGVtLWVkaXQtaW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke0llPT50aGlzLmVkaXRpbmdWYWx1ZT1JZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke0llPT50aGlzLmhhbmRsZUVkaXRLZXlEb3duKEllLGdlKX0KICAgICAgICAgICAgICAgICAgICAgIEBibHVyPSR7KCk9PnRoaXMuc2F2ZUVkaXQoZ2UpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXRleHQiIEBkYmxjbGljaz0keygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy5zdGFydEVkaXQoZ2UpfT4KICAgICAgICAgICAgICAgICAgICAgICR7TWV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PWdlP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzYXZlIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRWRpdChnZSl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2FuY2VsRWRpdCgpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjp3YAogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc3RhcnRFZGl0KGdlKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBlbmNpbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlSXRlbShnZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmFzaDIifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCk6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXQKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4SXRlbXN8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4SXRlbXMpP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYWRkLWl0ZW0tY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRvY29tcGxldGUtd3JhcHBlciI+CiAgICAgICAgICAgICAgICAke3RoaXMuZ2hvc3RUZXh0P3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnaG9zdC10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2hvc3QtdHlwZWQiPiR7dGhpcy5pbnB1dFZhbHVlfTwvc3Bhbj48c3BhbiBjbGFzcz0iZ2hvc3QtY29tcGxldGlvbiI+JHt0aGlzLmdob3N0VGV4dH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1pbnB1dCIKICAgICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlQWRkS2V5RG93bn0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFkZEl0ZW19CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5pbnB1dFZhbHVlLnRyaW0oKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwbHVzIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlSW5wdXQoTWUpe3RoaXMuaW5wdXRWYWx1ZT1NZS50YXJnZXQudmFsdWUsdGhpcy51cGRhdGVHaG9zdFRleHQoKX11cGRhdGVHaG9zdFRleHQoKXtpZih0aGlzLmNhbmRpZGF0ZXMubGVuZ3RoPT09MHx8IXRoaXMuaW5wdXRWYWx1ZSl7dGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWxldCBNZT10aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz10aGlzLmNhbmRpZGF0ZXMuZmlsdGVyKGdlPT50aGlzLnZhbHVlLmluY2x1ZGVzKGdlLnZpZXdLZXkpPyExOmdlLnZpZXdLZXkudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKE1lKSkuc29ydCgoZ2UsSWUpPT5nZS52aWV3S2V5Lmxlbmd0aC1JZS52aWV3S2V5Lmxlbmd0aCksdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoPjA/KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PTAsdGhpcy5naG9zdFRleHQ9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbMF0udmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKSk6KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMuZ2hvc3RUZXh0PSIiKX1oYW5kbGVBZGRLZXlEb3duKE1lKXtpZihNZS5rZXk9PT0iVGFiIiYmdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wJiZ0aGlzLmlucHV0VmFsdWUpe2lmKE1lLnByZXZlbnREZWZhdWx0KCksTWUuc2hpZnRLZXkmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXt0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0odGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXgrMSkldGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoO2xldCBnZT10aGlzLm1hdGNoaW5nQ2FuZGlkYXRlc1t0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleF07dGhpcy5naG9zdFRleHQ9Z2Uudmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKX1lbHNlIGlmKCFNZS5zaGlmdEtleSYmdGhpcy5naG9zdFRleHQmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgZ2U9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXhdO3RoaXMuaW5wdXRWYWx1ZT1nZS52aWV3S2V5LHRoaXMuZ2hvc3RUZXh0PSIiO2xldCBJZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtJZSYmKEllLnZhbHVlPWdlLnZpZXdLZXkpfXJldHVybn1pZihNZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5naG9zdFRleHQpe01lLnByZXZlbnREZWZhdWx0KCksdGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWlmKE1lLmtleT09PSJFbnRlciImJnRoaXMuaW5wdXRWYWx1ZS50cmltKCkpe2lmKE1lLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgZ2U9dGhpcy5jYW5kaWRhdGVzLmZpbmQoSWU9PkllLnZpZXdLZXkudG9Mb3dlckNhc2UoKT09PXRoaXMuaW5wdXRWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSk7Z2U/dGhpcy5zZWxlY3RDYW5kaWRhdGUoZ2UpOnRoaXMuYWxsb3dGcmVlZm9ybSYmKHRoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdLHRoaXMuYWRkSXRlbSgpKTtyZXR1cm59dGhpcy5hZGRJdGVtKCl9fWhhbmRsZUVkaXRLZXlEb3duKE1lLGdlKXtNZS5rZXk9PT0iRW50ZXIiPyhNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUVkaXQoZ2UpKTpNZS5rZXk9PT0iRXNjYXBlIiYmKE1lLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5jZWxFZGl0KCkpfXNlbGVjdENhbmRpZGF0ZShNZSl7aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhNZS52aWV3S2V5KSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLnNldChNZS52aWV3S2V5LE1lKSx0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLE1lLnZpZXdLZXldLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmdob3N0VGV4dD0iIix0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz1bXSx0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtnZSYmKGdlLnZhbHVlPSIiLGdlLmZvY3VzKCkpfSl9Z2V0Q2FuZGlkYXRlRm9ySXRlbShNZSl7cmV0dXJuIHRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLmdldChNZSl9Z2V0QWRkZWRDYW5kaWRhdGVzKCl7cmV0dXJuIHRoaXMudmFsdWUubWFwKE1lPT50aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5nZXQoTWUpKS5maWx0ZXIoTWU9Pk1lIT09dm9pZCAwKX1hZGRJdGVtKCl7bGV0IE1lPXRoaXMuaW5wdXRWYWx1ZS50cmltKCk7aWYoTWUpe2lmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhNZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZih0aGlzLm1heEl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhJdGVtcyl7dGhpcy52YWxpZGF0aW9uVGV4dD1gTWF4aW11bSAke3RoaXMubWF4SXRlbXN9IGl0ZW1zIGFsbG93ZWRgLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxNZV0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IGdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmFkZC1pbnB1dCIpO2dlJiYoZ2UudmFsdWU9IiIsZ2UuZm9jdXMoKSl9KX19c3RhcnRFZGl0KE1lKXt0aGlzLmVkaXRpbmdJbmRleD1NZSx0aGlzLmVkaXRpbmdWYWx1ZT10aGlzLnZhbHVlW01lXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgZ2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuaXRlbS1lZGl0LWlucHV0Iik7Z2UmJihnZS5mb2N1cygpLGdlLnNlbGVjdCgpKX0pfXNhdmVFZGl0KE1lKXtsZXQgZ2U9dGhpcy5lZGl0aW5nVmFsdWUudHJpbSgpO2lmKCFnZSl7dGhpcy5jYW5jZWxFZGl0KCk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmZ2UhPT10aGlzLnZhbHVlW01lXSYmdGhpcy52YWx1ZS5pbmNsdWRlcyhnZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1sZXQgSWU9Wy4uLnRoaXMudmFsdWVdO0llW01lXT1nZSx0aGlzLnZhbHVlPUllLHRoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCl9Y2FuY2VsRWRpdCgpe3RoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIifWFzeW5jIHJlbW92ZUl0ZW0oTWUpe2lmKHRoaXMuY29uZmlybURlbGV0ZSYmIWF3YWl0IHRoaXMuc2hvd0NvbmZpcm1EaWFsb2coYERlbGV0ZSAiJHt0aGlzLnZhbHVlW01lXX0iP2ApKXJldHVybjtsZXQgZ2U9dGhpcy52YWx1ZVtNZV07dGhpcy5hZGRlZENhbmRpZGF0ZXNNYXAuZGVsZXRlKGdlKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKChJZSxjZSk9PmNlIT09TWUpLHRoaXMuZW1pdENoYW5nZSgpfWFzeW5jIHNob3dDb25maXJtRGlhbG9nKE1lKXtyZXR1cm4gY29uZmlybShNZSl9aGFuZGxlRHJhZ1N0YXJ0KE1lLGdlKXtpZighdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZClyZXR1cm47dGhpcy5kcmFnZ2VkSW5kZXg9Z2UsdGhpcy50YXJnZXRJbmRleD1nZSxNZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0ibW92ZSIsTWUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLGdlLnRvU3RyaW5nKCkpO2xldCBJZT1uZXcgSW1hZ2U7SWUuc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBVUVCQUFBQUN3QUFBQUFBUUFCQUFBQ0FrUUJBRHM9IixNZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKEllLDAsMCksdGhpcy5kcmFnU3RhcnRZPU1lLmNsaWVudFksdGhpcy5kcmFnQ3VycmVudFk9TWUuY2xpZW50WTtsZXQgY2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLGRlPUFycmF5LmZyb20oY2U/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKXx8W10pO2RlW2dlXSYmKHRoaXMuaXRlbUhlaWdodD1kZVtnZV0ub2Zmc2V0SGVpZ2h0KSx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPWRlLm1hcChMZT0+TGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLGNlPy5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj10aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyLmJpbmQodGhpcyksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpfWhhbmRsZUdsb2JhbERyYWdPdmVyKE1lKXtpZihNZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZHJhZ2dlZEluZGV4PT09LTEpcmV0dXJuO3RoaXMuZHJhZ0N1cnJlbnRZPU1lLmNsaWVudFk7bGV0IGdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtpZighZ2UpcmV0dXJuO2xldCBJZT1BcnJheS5mcm9tKGdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSksY2U9SWVbdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKCFjZSlyZXR1cm47bGV0IGRlPXRoaXMuZHJhZ0N1cnJlbnRZLXRoaXMuZHJhZ1N0YXJ0WTtjZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtkZX1weClgO2xldCBMZT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighTGUpcmV0dXJuO2xldCBLZT1MZS50b3ArTGUuaGVpZ2h0LzIrZGUsWWU9dGhpcy5kcmFnZ2VkSW5kZXg7Zm9yKGxldCBvdD0wO290PEllLmxlbmd0aDtvdCsrKXtpZihvdD09PXRoaXMuZHJhZ2dlZEluZGV4KWNvbnRpbnVlO2xldCBVdD10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW290XTtpZighVXQpY29udGludWU7bGV0IFp0PVV0LnRvcCtVdC5oZWlnaHQvMjtpZihJZVtvdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLXVwIik/WnQtPXRoaXMuaXRlbUhlaWdodDpJZVtvdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLWRvd24iKSYmKFp0Kz10aGlzLml0ZW1IZWlnaHQpLEtlPFp0JiZvdDx0aGlzLmRyYWdnZWRJbmRleCl7WWU9b3Q7YnJlYWt9ZWxzZSBLZT5adCYmb3Q+dGhpcy5kcmFnZ2VkSW5kZXgmJihZZT1vdCl9WWUhPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD1ZZSx0aGlzLnVwZGF0ZUl0ZW1Qb3NpdGlvbnMoSWUpKX11cGRhdGVJdGVtUG9zaXRpb25zKE1lKXtsZXQgZ2U9dGhpcy5kcmFnZ2VkSW5kZXgsSWU9dGhpcy50YXJnZXRJbmRleCxjZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7Y2UmJmNlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxNZS5mb3JFYWNoKChkZSxMZSk9PntMZSE9PWdlJiYoZGUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLGRlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxnZTxJZT9MZT5nZSYmTGU8PUllJiZkZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIik6Z2U+SWUmJkxlPj1JZSYmTGU8Z2UmJmRlLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQoKXt0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9bnVsbCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbCk7bGV0IE1lPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxnZT1NZT8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpLEllPWdlPy5bdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKHRoaXMuZHJhZ2dlZEluZGV4PT09LTF8fHRoaXMudGFyZ2V0SW5kZXg9PT0tMXx8dGhpcy5kcmFnZ2VkSW5kZXg9PT10aGlzLnRhcmdldEluZGV4KXtpZihJZSYmdGhpcy5kcmFnZ2VkSW5kZXghPT0tMSl7SWUuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLEllLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSI7bGV0IG90PSExLFV0PWkoKCk9PntvdHx8KG90PSEwLEllLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFV0KSx0aGlzLmNsZWFudXBEcmFnU3RhdGUoTWUsZ2UpKX0sIm9uUmV0dXJuIik7SWUuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsVXQse29uY2U6ITB9KSxzZXRUaW1lb3V0KFV0LDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUoTWUsZ2UpO3JldHVybn1sZXQgY2U9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0sZGU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighY2V8fCFkZXx8IUllKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUoTWUsZ2UpO3JldHVybn1sZXQgTGU7dGhpcy50YXJnZXRJbmRleD50aGlzLmRyYWdnZWRJbmRleD9MZT1kZS5ib3R0b20tY2UuYm90dG9tOkxlPWRlLnRvcC1jZS50b3AsSWUuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLEllLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke0xlfXB4KWA7bGV0IEtlPSExLFllPWkoKCk9PntpZihLZSlyZXR1cm47S2U9ITAsSWUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsWWUpLE1lPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLE1lPy5vZmZzZXRIZWlnaHQsZ2U/LmZvckVhY2goWnQ9PntadC5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxadC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksWnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pO2xldCBvdD1bLi4udGhpcy52YWx1ZV0sW1V0XT1vdC5zcGxpY2UodGhpcy5kcmFnZ2VkSW5kZXgsMSk7b3Quc3BsaWNlKHRoaXMudGFyZ2V0SW5kZXgsMCxVdCksdGhpcy52YWx1ZT1vdCx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFp0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO1p0Py5mb3JFYWNoKGphPT57amEuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntadD8uZm9yRWFjaChqYT0+e2phLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxNZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX0sIm9uVHJhbnNpdGlvbkVuZCIpO0llLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFllLHtvbmNlOiEwfSksc2V0VGltZW91dChZZSwyMDApfWNsZWFudXBEcmFnU3RhdGUoTWUsZ2Upe01lPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLE1lPy5vZmZzZXRIZWlnaHQsZ2U/LmZvckVhY2goSWU9PntJZS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxJZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksSWUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLHRoaXMuZHJhZ2dlZEluZGV4PS0xLHRoaXMuZHJhZ092ZXJJbmRleD0tMSx0aGlzLnRhcmdldEluZGV4PS0xLHRoaXMuZHJhZ1N0YXJ0WT0wLHRoaXMuZHJhZ0N1cnJlbnRZPTAsdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1bXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgSWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIik7SWU/LmZvckVhY2goY2U9PntjZS5zdHlsZS50cmFuc2l0aW9uPSJub25lIn0pLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKT8ub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0llPy5mb3JFYWNoKGNlPT57Y2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLE1lPy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wcGluZyIsImlzLWRyYWdnaW5nIil9KX0pfWhhbmRsZURyYWdFbmQoKXt0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQoKX1oYW5kbGVEcmFnT3ZlcihNZSxnZSl7IXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWR8fChNZS5wcmV2ZW50RGVmYXVsdCgpLE1lLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIil9aGFuZGxlRHJhZ0xlYXZlKCl7fWhhbmRsZURyb3AoTWUsZ2UpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHxNZS5wcmV2ZW50RGVmYXVsdCgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShNZSl7dGhpcy52YWx1ZT1NZXx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgaXRlbSBpcyByZXF1aXJlZCIsITEpOnRoaXMubWluSXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWluSXRlbXM/KHRoaXMudmFsaWRhdGlvblRleHQ9YEF0IGxlYXN0ICR7dGhpcy5taW5JdGVtc30gaXRlbXMgcmVxdWlyZWRgLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9c3RhdGlje21hKGEsdCl9fTtyZXR1cm4gc3Q9YX0pKCl9KTt2YXIgVkphLFVKYSxXSmEsR0phLEtKYSxZSmEsWkphLFpiYSxYYmE9ZygoKT0+e3BlKCk7SXQoKTt4bygpO1ZKYT1pKCgpPT57bGV0IHM9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmB0aXRsZS0ke3N9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IlN5c3RlbSBQZXJmb3JtYW5jZSBSZXBvcnQifSx7aWQ6YGRhdGUtJHtzKzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6YEdlbmVyYXRlZCBvbjogJHtuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCl9YH0se2lkOmBzdW1tYXJ5LWhlYWRpbmctJHtzKzJ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkV4ZWN1dGl2ZSBTdW1tYXJ5In0se2lkOmBzdW1tYXJ5LSR7cyszfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIHJlcG9ydCBwcm92aWRlcyBhbiBhbmFseXNpcyBvZiBzeXN0ZW0gcGVyZm9ybWFuY2UgbWV0cmljcyBvdmVyIHRoZSBsYXN0IDMwIGRheXMuIn0se2lkOmBtZXRyaWNzLWhlYWRpbmctJHtzKzR9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IktleSBNZXRyaWNzIn0se2lkOmBtZXRyaWNzLWxpc3QtJHtzKzV9YCx0eXBlOiJsaXN0Iixjb250ZW50OmBBdmVyYWdlIHJlc3BvbnNlIHRpbWU6IDEyNG1zClVwdGltZTogOTkuOTclCkNQVSB1dGlsaXphdGlvbjogNDUlCk1lbW9yeSB1c2FnZTogMi4zR0IgLyA4R0JgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgYW5hbHlzaXMtaGVhZGluZy0ke3MrNn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiUGVyZm9ybWFuY2UgQW5hbHlzaXMifSx7aWQ6YGFuYWx5c2lzLXF1b3RlLSR7cys3fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlN5c3RlbSBwZXJmb3JtYW5jZSByZW1haW5zIHdpdGhpbiBhY2NlcHRhYmxlIHBhcmFtZXRlcnMgd2l0aCByb29tIGZvciBvcHRpbWl6YXRpb24gaW4gbWVtb3J5IG1hbmFnZW1lbnQuIn0se2lkOmBjb2RlLWhlYWRpbmctJHtzKzh9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IlNhbXBsZSBRdWVyeSBQZXJmb3JtYW5jZSJ9LHtpZDpgY29kZS1ibG9jay0ke3MrOX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YFNFTEVDVCBBVkcocmVzcG9uc2VfdGltZSkgYXMgYXZnX3RpbWUsCiAgICAgICBDT1VOVCgqKSBhcyB0b3RhbF9yZXF1ZXN0cywKICAgICAgIERBVEUoY3JlYXRlZF9hdCkgYXMgZGF0ZQpGUk9NIHBlcmZvcm1hbmNlX2xvZ3MKV0hFUkUgY3JlYXRlZF9hdCA+PSBOT1coKSAtIElOVEVSVkFMIDMwIERBWQpHUk9VUCBCWSBEQVRFKGNyZWF0ZWRfYXQpCk9SREVSIEJZIGRhdGUgREVTQztgLG1ldGFkYXRhOntsYW5ndWFnZToic3FsIn19LHtpZDpgZGl2aWRlci0ke3MrMTB9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6YGZvb3Rlci0ke3MrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlJlcG9ydCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBTeXN0ZW0gTW9uaXRvciB2Mi41LjAifV19LCJnZW5lcmF0ZVJlcG9ydEJsb2NrcyIpLFVKYT1pKCgpPT57bGV0IHM9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmByZWNpcGUtdGl0bGUtJHtzfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJDbGFzc2ljIE1hcmdoZXJpdGEgUGl6emEifSx7aWQ6YHJlY2lwZS1pbnRyby0ke3MrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuIn0se2lkOmBpbmdyZWRpZW50cy1oZWFkaW5nLSR7cysyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjM1NX0gSW5ncmVkaWVudHMifSx7aWQ6YGRvdWdoLWhlYWRpbmctJHtzKzN9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgRG91Z2g6In0se2lkOmBkb3VnaC1saXN0LSR7cys0fWAsdHlwZToibGlzdCIsY29udGVudDpgNTAwZyB0aXBvICIwMCIgZmxvdXIKMzI1bWwgd2FybSB3YXRlcgoxMGcgc2FsdAo3ZyBhY3RpdmUgZHJ5IHllYXN0CjIgdGJzcCBvbGl2ZSBvaWxgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgdG9wcGluZ3MtaGVhZGluZy0ke3MrNX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBUb3BwaW5nczoifSx7aWQ6YHRvcHBpbmdzLWxpc3QtJHtzKzZ9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lcwoyNTBnIGZyZXNoIG1venphcmVsbGEKRnJlc2ggYmFzaWwgbGVhdmVzCkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWwKU2FsdCBhbmQgcGVwcGVyIHRvIHRhc3RlYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGluc3RydWN0aW9ucy1oZWFkaW5nLSR7cys3fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjQ2OH1cdTIwMERcdXsxRjM3M30gSW5zdHJ1Y3Rpb25zIn0se2lkOmBzdGVwcy1saXN0LSR7cys4fWAsdHlwZToibGlzdCIsY29udGVudDpgRGlzc29sdmUgeWVhc3QgaW4gd2FybSB3YXRlciBhbmQgbGV0IHN0YW5kIGZvciA1IG1pbnV0ZXMKTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlcgpBZGQgeWVhc3QgbWl4dHVyZSBhbmQgb2xpdmUgb2lsCktuZWFkIGZvciAxMCBtaW51dGVzIHVudGlsIHNtb290aApMZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWQKUHVuY2ggZG93biBhbmQgZGl2aWRlIGludG8gcG9ydGlvbnMKUm9sbCBvdXQgZWFjaCBwb3J0aW9uIHRvIDEyLWluY2ggY2lyY2xlcwpUb3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWwKQmFrZSBhdCA0NzVceEIwRiAoMjQ1XHhCMEMpIGZvciAxMC0xMiBtaW51dGVzYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOmB0aXAtJHtzKzl9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiUHJvIHRpcDogRm9yIGFuIGF1dGhlbnRpYyB0YXN0ZSwgdXNlIGEgcGl6emEgc3RvbmUgYW5kIHByZWhlYXQgaXQgaW4gdGhlIG92ZW4gZm9yIGF0IGxlYXN0IDMwIG1pbnV0ZXMgYmVmb3JlIGJha2luZy4ifSx7aWQ6YGRpdmlkZXItJHtzKzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBzZXJ2aW5ncy0ke3MrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlNlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcyJ9XX0sImdlbmVyYXRlUmVjaXBlQmxvY2tzIiksV0phPWkocz0+e2xldCBlPXt9O3JldHVybiBlLmJhc2ljPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1iYXNpYyIpLGUuYXJ0aWNsZT1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYXJ0aWNsZSIpLGUuZHJhZ0Ryb3A9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWRyYWdkcm9wIiksZS50dXRvcmlhbD1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItdHV0b3JpYWwiKSxlLm1lZXRpbmc9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLW1lZXRpbmciKSxlLnJlY2lwZT1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItcmVjaXBlIiksZS50ZWNobmljYWw9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXRlY2huaWNhbCIpLGUuZm9ybUludGVncmF0aW9uPXMucXVlcnlTZWxlY3RvcigiI2VkaXRvci1mb3JtLWludGVncmF0aW9uIiksZS5wcm9ncmFtbWF0aWM9cy5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXByb2dyYW1tYXRpYyIpLGUuZXhwb3J0RGVtbz1zLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZXhwb3J0IiksZX0sImluaXRpYWxpemVFZGl0b3JzIiksR0phPWkoKHMsZSk9PntsZXQgdD1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVwb3J0IiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVjaXBlIikscj1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tY2xlYXItZWRpdG9yIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhWSmEoKSl9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKFVKYSgpKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoW10pfSl9LCJzZXR1cFByb2dyYW1tYXRpY0RlbW8iKSxLSmE9aSgocyxlKT0+e2xldCB0PXMucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtYmxvY2tzIiksYT1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWh0bWwiKSxyPXMucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtbWFya2Rvd24iKSxuPXMucXVlcnlTZWxlY3RvcigiI2J0bi1zYXZlLXN0YXRlIiksbz1zLnF1ZXJ5U2VsZWN0b3IoIiNidG4tcmVzdG9yZS1zdGF0ZSIpLGw9bnVsbDt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBwPWUuZXhwb3J0QmxvY2tzKCk7Y29uc29sZS5sb2coIkV4cG9ydGVkIGJsb2NrczoiLHApLGFsZXJ0KGBFeHBvcnRlZCAke3AubGVuZ3RofSBibG9ja3MgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLmApfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgcD1lLmV4cG9ydEFzSHRtbCgpO2NvbnNvbGUubG9nKCJIVE1MIEV4cG9ydDoiLHApLGFsZXJ0KCJIVE1MIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IHA9ZS5leHBvcnRBc01hcmtkb3duKCk7Y29uc29sZS5sb2coIk1hcmtkb3duIEV4cG9ydDoiLHApLGFsZXJ0KCJNYXJrZG93biBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w9ZS5leHBvcnRTdGF0ZSgpLGNvbnNvbGUubG9nKCJTYXZlZCBzdGF0ZToiLGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgc2F2ZWQhIil9KSxvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w/KGUuaW1wb3J0U3RhdGUobCksYWxlcnQoIkVkaXRvciBzdGF0ZSByZXN0b3JlZCEiKSk6YWxlcnQoIk5vIHNhdmVkIHN0YXRlIGZvdW5kLiBTYXZlIHN0YXRlIGZpcnN0ISIpfSl9LCJzZXR1cEV4cG9ydERlbW8iKSxZSmE9aSgocyxlLHQpPT57bGV0IGE9cy5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctaHRtbC1vdXRwdXQiKSxyPXMucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LWh0bWwiKTthJiZyJiZlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudGV4dENvbnRlbnQ9ZS5nZXRWYWx1ZSgpLHIuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSk7bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0Iiksbz1zLnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1tYXJrZG93biIpO24mJm8mJnQmJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57by50ZXh0Q29udGVudD10LmdldFZhbHVlKCksby5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KX0sInNldHVwT3V0cHV0Rm9ybWF0RGVtbyIpLFpKYT1pKHM9PntzLmFydGljbGUmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJpbnRyby1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkludHJvZHVjdGlvbiB0byBNb2Rlcm4gV2ViIERldmVsb3BtZW50In0se2lkOiJpbnRyby1wYXJhLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik1vZGVybiB3ZWIgZGV2ZWxvcG1lbnQgaGFzIGV2b2x2ZWQgc2lnbmlmaWNhbnRseSBvdmVyIHRoZSBwYXN0IGRlY2FkZS4gSW4gdGhpcyBhcnRpY2xlLCB3ZSdsbCBleHBsb3JlIHRoZSBrZXkgdGVjaG5vbG9naWVzIGFuZCBiZXN0IHByYWN0aWNlcyB0aGF0IGRlZmluZSB3ZWIgZGV2ZWxvcG1lbnQgaW4gMjAyNC4ifSx7aWQ6InRlY2gtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJLZXkgVGVjaG5vbG9naWVzIn0se2lkOiJ0ZWNoLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YFR5cGVTY3JpcHQgLSBUeXBlLXNhZmUgSmF2YVNjcmlwdCBkZXZlbG9wbWVudApXZWIgQ29tcG9uZW50cyAtIE5hdGl2ZSBjb21wb25lbnQgbW9kZWwKRVMgTW9kdWxlcyAtIE1vZGVybiBtb2R1bGUgc3lzdGVtCldlYkFzc2VtYmx5IC0gSGlnaC1wZXJmb3JtYW5jZSBjb21wdXRpbmdgLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6InF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGJlc3Qgd2F5IHRvIHByZWRpY3QgdGhlIGZ1dHVyZSBpcyB0byBpbnZlbnQgaXQuIC0gQWxhbiBLYXkifSx7aWQ6ImV4YW1wbGUtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJDb2RlIEV4YW1wbGUifSx7aWQ6ImNvZGUtZXhhbXBsZS0iK0RhdGUubm93KCksdHlwZToiY29kZSIsY29udGVudDpgY2xhc3MgTW9kZXJuV2ViQXBwIGV4dGVuZHMgSFRNTEVsZW1lbnQgewogIGNvbnN0cnVjdG9yKCkgewogICAgc3VwZXIoKTsKICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pOwogIH0KICAKICBjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgIHRoaXMucmVuZGVyKCk7CiAgfQp9YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6ImphdmFzY3JpcHQifX1dO3MuYXJ0aWNsZS5pbXBvcnRCbG9ja3MoZSl9LDUwMCkscy5kcmFnRHJvcCYmc2V0VGltZW91dCgoKT0+e2xldCBlPVt7aWQ6ImRyYWctdGl0bGUtIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiRHJhZyAmIERyb3AgRGVtbyJ9LHtpZDoiZHJhZy1pbnRyby0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIGVkaXRvciBkZW1vbnN0cmF0ZXMgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbmFsaXR5LiBUcnkgZHJhZ2dpbmcgdGhlc2UgYmxvY2tzIGFyb3VuZCEifSx7aWQ6ImRyYWctaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJIb3cgSXQgV29ya3MifSx7aWQ6ImRyYWctbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZQpDbGljayBhbmQgaG9sZCB0aGUgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nCkRyYWcgdG8gcmVvcmRlciBibG9ja3MKUmVsZWFzZSB0byBkcm9wIGluIHRoZSBuZXcgcG9zaXRpb25gLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6ImRyYWctcXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgZHJhZyBhbmQgZHJvcCBmZWF0dXJlIG1ha2VzIGl0IGVhc3kgdG8gcmVvcmdhbml6ZSB5b3VyIGNvbnRlbnQgd2l0aG91dCBjdXR0aW5nIGFuZCBwYXN0aW5nLiJ9LHtpZDoiZHJhZy1kaXZpZGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6ImRyYWctZm9vdGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik5vdGU6IERpdmlkZXIgYmxvY2tzIGNhbm5vdCBiZSBkcmFnZ2VkLCBidXQgb3RoZXIgYmxvY2tzIGNhbiBiZSBtb3ZlZCBhcm91bmQgdGhlbS4ifV07cy5kcmFnRHJvcC5pbXBvcnRCbG9ja3MoZSl9LDYwMCl9LCJwb3B1bGF0ZUluaXRpYWxDb250ZW50IiksWmJhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IG5ldyBQcm9taXNlKHQ9PnNldFRpbWVvdXQodCw1MDApKTtsZXQgZT1XSmEocyk7ZS5wcm9ncmFtbWF0aWMmJkdKYShzLGUucHJvZ3JhbW1hdGljKSxlLmV4cG9ydERlbW8mJktKYShzLGUuZXhwb3J0RGVtbyksWUphKHMsZS5tZWV0aW5nLGUucmVjaXBlKSxaSmEoZSksY29uc29sZS5sb2coIldZU0lXWUcgRGVtbyBpbml0aWFsaXplZCB3aXRoIGVkaXRvcnM6IixPYmplY3Qua2V5cyhlKSl9fT4KICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMzJweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CiAgICAgIAogICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5wYW5lbC1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjb2xvcjogIzU1NTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlLWljb24gewogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYWFhOwogICAgICAgIH0KICAgICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ib3ggewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMTAyLCAyMDQsIDAuMik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtdGl0bGUgewogICAgICAgIG1hcmdpbjogMCAwIDEycHggMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dHMtdGl0bGUgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTgwcHgsIDFmcikpOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc2hvcnRjdXQtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogIzU1NTsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWtleSB7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgICAgY29sb3I6ICNiYmI7CiAgICAgICAgfQogICAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgICAgIGNvbG9yOiAjZGRkOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzIwcHgsIDFmcikpOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICB9CgogICAgICAub3V0cHV0LWNhcmQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjA0KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LCAjMGYxNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1heC1oZWlnaHQ6IDI4MHB4OwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbdGhlbWU9J2RhcmsnXSkgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMDYpOwogICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjE1KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LCAjZjRmNGY1KTsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3LnZpc2libGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAub3V0cHV0LWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmOGZmOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnRpcHMtYm94IHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgewogICAgICAgIG1hcmdpbjogOHB4IDAgMCAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLnRpcHMtbGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZThlOGU4OwogICAgICAgIGJvcmRlci1jb2xvcjogI2NjYzsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuZGVtby1idXR0b24gewogICAgICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgICAgIGJvcmRlci1jb2xvcjogIzU1NTsKICAgICAgICAgIGNvbG9yOiAjZGRkOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZGVtby1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogIzQ0NDsKICAgICAgICAgIGJvcmRlci1jb2xvcjogIzY2NjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmJsb2NrcyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIwNCwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NiwgMTc1LCA4MCwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQubWFya2Rvd24gewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxNTIsIDAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLnN0YXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1NiwgMzksIDE3NiwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgc3Ryb25nIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmJsb2NrcyBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5odG1sIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICM0Q0FGNTA7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICNGRjk4MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLnN0YXRlIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICM5QzI3QjA7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHAgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gXHV7MUY2ODB9IE1vZGVybiBXWVNJV1lHIEVkaXRvciJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBBIHBvd2VyZnVsIGJsb2NrLWJhc2VkIGVkaXRvciB3aXRoIHNsYXNoIGNvbW1hbmRzLCBrZXlib2FyZCBzaG9ydGN1dHMsIGFuZCBtdWx0aXBsZSBvdXRwdXQgZm9ybWF0cy4gCiAgICAgICAgICBQZXJmZWN0IGZvciBjb250ZW50IGNyZWF0aW9uLCBibG9nIHBvc3RzLCBkb2N1bWVudGF0aW9uLCBhbmQgbW9yZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+U2xhc2ggY29tbWFuZHMgKC8pPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPktleWJvYXJkIHNob3J0Y3V0czwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5CbG9jay1iYXNlZCBlZGl0aW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkRyYWcgJiBkcm9wIHJlb3JkZXJpbmc8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+SFRNTCAmIE1hcmtkb3duIG91dHB1dDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EYXJrIG1vZGUgc3VwcG9ydDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5Nb2JpbGUgcmVzcG9uc2l2ZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLWJhc2ljIgogICAgICAgICAgbGFiZWw9IlJpY2ggVGV4dCBFZGl0b3IiIAogICAgICAgICAgZGVzY3JpcHRpb249IlN0YXJ0IHR5cGluZyBvciB1c2UgJy8nIHRvIGluc2VydCBkaWZmZXJlbnQgYmxvY2sgdHlwZXMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgoKICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtYm94Ij4KICAgICAgICAgIDxoNCBjbGFzcz0ic2hvcnRjdXRzLXRpdGxlIj7ijKjvuI8gS2V5Ym9hcmQgU2hvcnRjdXRzPC9oND4KICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0cy1ncmlkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Lzwvc3Bhbj4gU2xhc2ggY29tbWFuZHMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiM8L3NwYW4+IEhlYWRpbmcgMQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+IyM8L3NwYW4+IEhlYWRpbmcgMgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+IyMjPC9zcGFuPiBIZWFkaW5nIDMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPj48L3NwYW4+IFF1b3RlCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij5cYFxgXGA8L3NwYW4+IENvZGUgYmxvY2sKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPio8L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi08L3NwYW4+IEJ1bGxldCBsaXN0CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4xLjwvc3Bhbj4gTnVtYmVyZWQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+LS0tPC9zcGFuPiBEaXZpZGVyCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBcdXsxRjRERH0gQmxvZyBQb3N0IEV4YW1wbGUifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgUGVyZmVjdCBmb3IgY3JlYXRpbmcgcmljaCBjb250ZW50IHdpdGggbXVsdGlwbGUgYmxvY2sgdHlwZXMuIAogICAgICAgICAgVGhlIGVkaXRvciBwcmVzZXJ2ZXMgZm9ybWF0dGluZyBhbmQgcHJvdmlkZXMgYSBjbGVhbiBlZGl0aW5nIGV4cGVyaWVuY2UuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLWFydGljbGUiCiAgICAgICAgICBsYWJlbD0iQmxvZyBQb3N0IENvbnRlbnQiIAogICAgICAgICAgZGVzY3JpcHRpb249IldyaXRlIHlvdXIgYXJ0aWNsZSB1c2luZyB2YXJpb3VzIGZvcm1hdHRpbmcgb3B0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBcdXsxRjUwMH0gRHJhZyAmIERyb3AgUmVvcmRlcmluZyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBFYXNpbHkgcmVhcnJhbmdlIHlvdXIgY29udGVudCBibG9ja3MgYnkgZHJhZ2dpbmcgdGhlbS4gCiAgICAgICAgICBIb3ZlciBvdmVyIGFueSBibG9jayB0byByZXZlYWwgdGhlIGRyYWcgaGFuZGxlIG9uIHRoZSBsZWZ0IHNpZGUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLWRyYWdkcm9wIgogICAgICAgICAgbGFiZWw9IkRyYWcgJiBEcm9wIERlbW8iIAogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSBkcmFnZ2luZyBibG9ja3MgdG8gcmVvcmRlciB0aGVtIC0gaG92ZXIgdG8gc2VlIGRyYWcgaGFuZGxlcyIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0idGlwcy1ib3giPgogICAgICAgICAgPHN0cm9uZz7wn5KhIFRpcHM6PC9zdHJvbmc+CiAgICAgICAgICA8dWwgY2xhc3M9InRpcHMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5Ib3ZlciBvdmVyIGFueSBibG9jayB0byBzZWUgdGhlIGRyYWcgaGFuZGxlICjii67ii64pIG9uIHRoZSBsZWZ0PC9saT4KICAgICAgICAgICAgPGxpPkNsaWNrIGFuZCBob2xkIHRoZSBkcmFnIGhhbmRsZSB0byBzdGFydCBkcmFnZ2luZzwvbGk+CiAgICAgICAgICAgIDxsaT5CbHVlIGluZGljYXRvcnMgc2hvdyB3aGVyZSB0aGUgYmxvY2sgd2lsbCBiZSBkcm9wcGVkPC9saT4KICAgICAgICAgICAgPGxpPkRpdmlkZXIgYmxvY2tzIGNhbm5vdCBiZSBkcmFnZ2VkPC9saT4KICAgICAgICAgICAgPGxpPlRoZSBlZGl0b3IgbWFpbnRhaW5zIGZvY3VzIG9uIHRoZSBtb3ZlZCBibG9jayBhZnRlciBkcm9wcGluZzwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gXHV7MUY0REF9IFR1dG9yaWFsICYgRG9jdW1lbnRhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDcmVhdGUgY29tcHJlaGVuc2l2ZSB0dXRvcmlhbHMgYW5kIGRvY3VtZW50YXRpb24gd2l0aCBjb2RlIGV4YW1wbGVzLCBsaXN0cywgYW5kIHN0cnVjdHVyZWQgY29udGVudC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItdHV0b3JpYWwiCiAgICAgICAgICBsYWJlbD0iR2l0IFR1dG9yaWFsIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGVwLWJ5LXN0ZXAgZ3VpZGUgd2l0aCBjb21tYW5kcyBhbmQgZXhwbGFuYXRpb25zIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgIHZhbHVlPSIjIEdpdCBUdXRvcmlhbCBmb3IgQmVnaW5uZXJzCgpHaXQgaXMgYSBkaXN0cmlidXRlZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIHRoYXQgaGVscHMgeW91IHRyYWNrIGNoYW5nZXMgaW4geW91ciBjb2RlIG92ZXIgdGltZS4gVGhpcyB0dXRvcmlhbCB3aWxsIGd1aWRlIHlvdSB0aHJvdWdoIHRoZSBiYXNpY3MuCgojIyBQcmVyZXF1aXNpdGVzCgpCZWZvcmUgc3RhcnRpbmcsIGVuc3VyZSB5b3UgaGF2ZToKCi0gR2l0IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbQotIEEgdGV4dCBlZGl0b3Igb3IgSURFCi0gQmFzaWMgY29tbWFuZCBsaW5lIGtub3dsZWRnZQoKIyMgR2V0dGluZyBTdGFydGVkCgojIyMgMS4gQ29uZmlndXJlIEdpdAoKRmlyc3QsIHNldCB1cCB5b3VyIGlkZW50aXR5OgoKXGBcYFxgYmFzaApnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAmcXVvdDtZb3VyIE5hbWUmcXVvdDsKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsICZxdW90O3lvdXIuZW1haWxAZXhhbXBsZS5jb20mcXVvdDsKXGBcYFxgCgojIyMgMi4gSW5pdGlhbGl6ZSBhIFJlcG9zaXRvcnkKCkNyZWF0ZSBhIG5ldyBHaXQgcmVwb3NpdG9yeToKClxgXGBcYGJhc2gKbWtkaXIgbXktcHJvamVjdApjZCBteS1wcm9qZWN0CmdpdCBpbml0ClxgXGBcYAoKIyMjIDMuIEJhc2ljIEdpdCBXb3JrZmxvdwoKIyMjIyBBZGRpbmcgRmlsZXMKCkNyZWF0ZSBhIGZpbGUgYW5kIGFkZCBpdCB0byBzdGFnaW5nOgoKXGBcYFxgYmFzaAplY2hvICZxdW90OyMgTXkgUHJvamVjdCZxdW90OyA+IFJFQURNRS5tZApnaXQgYWRkIFJFQURNRS5tZApcYFxgXGAKCiMjIyMgQ29tbWl0dGluZyBDaGFuZ2VzCgpcYFxgXGBiYXNoCmdpdCBjb21taXQgLW0gJnF1b3Q7SW5pdGlhbCBjb21taXQmcXVvdDsKXGBcYFxgCgo+ICoqQmVzdCBQcmFjdGljZToqKiBXcml0ZSBjbGVhciwgZGVzY3JpcHRpdmUgY29tbWl0IG1lc3NhZ2VzIHRoYXQgZXhwbGFpbiB3aGF0IGNoYW5nZXMgd2VyZSBtYWRlIGFuZCB3aHkuCgojIyMgNC4gV29ya2luZyB3aXRoIEJyYW5jaGVzCgpCcmFuY2hlcyBhbGxvdyB5b3UgdG8gd29yayBvbiBmZWF0dXJlcyBpbmRlcGVuZGVudGx5OgoKXGBcYFxgYmFzaAojIENyZWF0ZSBhbmQgc3dpdGNoIHRvIGEgbmV3IGJyYW5jaApnaXQgY2hlY2tvdXQgLWIgZmVhdHVyZS1icmFuY2gKCiMgTWFrZSBjaGFuZ2VzIGFuZCBjb21taXQKZ2l0IGFkZCAuCmdpdCBjb21taXQgLW0gJnF1b3Q7QWRkIG5ldyBmZWF0dXJlJnF1b3Q7CgojIFN3aXRjaCBiYWNrIHRvIG1haW4KZ2l0IGNoZWNrb3V0IG1haW4KCiMgTWVyZ2UgdGhlIGZlYXR1cmUKZ2l0IG1lcmdlIGZlYXR1cmUtYnJhbmNoClxgXGBcYAoKLS0tCgojIyBDb21tb24gQ29tbWFuZHMgUmVmZXJlbmNlCgp8IENvbW1hbmQgfCBEZXNjcmlwdGlvbiB8CnwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKfCBcYGdpdCBzdGF0dXNcYCB8IENoZWNrIHJlcG9zaXRvcnkgc3RhdHVzIHwKfCBcYGdpdCBsb2dcYCB8IFZpZXcgY29tbWl0IGhpc3RvcnkgfAp8IFxgZ2l0IGRpZmZcYCB8IFNob3cgY2hhbmdlcyB8CnwgXGBnaXQgcHVsbFxgIHwgRmV0Y2ggYW5kIG1lcmdlIGNoYW5nZXMgfAp8IFxgZ2l0IHB1c2hcYCB8IFVwbG9hZCBjaGFuZ2VzIHRvIHJlbW90ZSB8CgojIyBOZXh0IFN0ZXBzCgoxLiBMZWFybiBhYm91dCByZW1vdGUgcmVwb3NpdG9yaWVzCjIuIEV4cGxvcmUgYWR2YW5jZWQgR2l0IGZlYXR1cmVzCjMuIFByYWN0aWNlIHdpdGggcmVhbCBwcm9qZWN0cwo0LiBDb250cmlidXRlIHRvIG9wZW4gc291cmNlCgoqKkhhcHB5IGNvZGluZyEqKiDwn5qAIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIFx1ezFGNTA0fSBPdXRwdXQgRm9ybWF0cyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDaG9vc2UgYmV0d2VlbiBIVE1MIGFuZCBNYXJrZG93biBvdXRwdXQgZm9ybWF0cyBkZXBlbmRpbmcgb24geW91ciBuZWVkcy4gCiAgICAgICAgICBQZXJmZWN0IGZvciBzdGF0aWMgc2l0ZSBnZW5lcmF0b3JzLCBkb2N1bWVudGF0aW9uIHN5c3RlbXMsIG9yIGFueSBjb250ZW50IG1hbmFnZW1lbnQgd29ya2Zsb3cuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgICAgICBpZD0iZWRpdG9yLW1lZXRpbmciCiAgICAgICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgTm90ZXMiIAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdHJ1Y3R1cmVkIG1lZXRpbmcgZG9jdW1lbnRhdGlvbiIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgICAgICAgdmFsdWU9IjxoMj5RNCBQbGFubmluZyBNZWV0aW5nPC9oMj48cD48c3Ryb25nPkRhdGU6PC9zdHJvbmc+IERlY2VtYmVyIDE1LCAyMDI0PGJyPjxzdHJvbmc+QXR0ZW5kZWVzOjwvc3Ryb25nPiBQcm9kdWN0IFRlYW0sIEVuZ2luZWVyaW5nLCBEZXNpZ248L3A+PGgzPkFnZW5kYSBJdGVtczwvaDM+PG9sPjxsaT5SZXZpZXcgUTMgYWNoaWV2ZW1lbnRzPC9saT48bGk+U2V0IFE0IG9iamVjdGl2ZXM8L2xpPjxsaT5SZXNvdXJjZSBhbGxvY2F0aW9uPC9saT48bGk+VGltZWxpbmUgZGlzY3Vzc2lvbjwvbGk+PC9vbD48aDM+S2V5IERlY2lzaW9uczwvaDM+PHVsPjxsaT5MYXVuY2ggbmV3IGRhc2hib2FyZCBmZWF0dXJlIGJ5IGVuZCBvZiBKYW51YXJ5PC9saT48bGk+SW5jcmVhc2UgZW5naW5lZXJpbmcgdGVhbSBieSAyIGRldmVsb3BlcnM8L2xpPjxsaT5JbXBsZW1lbnQgd2Vla2x5IGRlc2lnbiByZXZpZXdzPC9saT48L3VsPjxibG9ja3F1b3RlPiZxdW90O0ZvY3VzIG9uIHVzZXIgZXhwZXJpZW5jZSBpbXByb3ZlbWVudHMgYmFzZWQgb24gUTMgZmVlZGJhY2smcXVvdDsgLSBQcm9kdWN0IE1hbmFnZXI8L2Jsb2NrcXVvdGU+PGgzPkFjdGlvbiBJdGVtczwvaDM+PHVsPjxsaT5TYXJhaDogQ3JlYXRlIGRldGFpbGVkIHByb2plY3QgdGltZWxpbmU8L2xpPjxsaT5NaWtlOiBEcmFmdCB0ZWNobmljYWwgcmVxdWlyZW1lbnRzPC9saT48bGk+TGlzYTogU2NoZWR1bGUgdXNlciByZXNlYXJjaCBzZXNzaW9uczwvbGk+PC91bD48aHI+PHA+TmV4dCBtZWV0aW5nOiBKYW51YXJ5IDUsIDIwMjU8L3A+IgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1odG1sLW91dHB1dCIgY2xhc3M9ImRlbW8tYnV0dG9uIj5TaG93IEhUTUwgT3V0cHV0PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cHJlIGlkPSJvdXRwdXQtcHJldmlldy1odG1sIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1yZWNpcGUiCiAgICAgICAgICAgICAgbGFiZWw9IlJlY2lwZSBCbG9nIFBvc3QiIAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJGb29kIGJsb2cgd2l0aCBtaXhlZCBjb250ZW50IgogICAgICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICAgICAgdmFsdWU9IiMgVWx0aW1hdGUgQ2hvY29sYXRlIENoaXAgQ29va2llcwoKVGhlcmUncyBub3RoaW5nIHF1aXRlIGxpa2UgdGhlIHNtZWxsIG9mIGZyZXNobHkgYmFrZWQgY2hvY29sYXRlIGNoaXAgY29va2llcy4gVGhpcyByZWNpcGUgaGFzIGJlZW4gcGVyZmVjdGVkIG92ZXIgeWVhcnMgb2YgdGVzdGluZyEKCiMjIEluZ3JlZGllbnRzCgotIDLCvCBjdXBzIGFsbC1wdXJwb3NlIGZsb3VyCi0gMSB0c3AgYmFraW5nIHNvZGEKLSAxIHRzcCBzYWx0Ci0gMSBjdXAgYnV0dGVyLCBzb2Z0ZW5lZAotIMK+IGN1cCBncmFudWxhdGVkIHN1Z2FyCi0gwr4gY3VwIHBhY2tlZCBicm93biBzdWdhcgotIDIgbGFyZ2UgZWdncwotIDIgdHNwIHZhbmlsbGEgZXh0cmFjdAotIDIgY3VwcyBjaG9jb2xhdGUgY2hpcHMKCiMjIEluc3RydWN0aW9ucwoKIyMjIFN0ZXAgMTogUHJlcGFyYXRpb24KClByZWhlYXQgeW91ciBvdmVuIHRvICoqMzc1wrBGICgxOTDCsEMpKiouIFRoaXMgdGVtcGVyYXR1cmUgaXMgY3J1Y2lhbCBmb3IgYWNoaWV2aW5nIHRoZSBwZXJmZWN0IHRleHR1cmUuCgojIyMgU3RlcCAyOiBNaXggRHJ5IEluZ3JlZGllbnRzCgpJbiBhIG1lZGl1bSBib3dsLCB3aGlzayB0b2dldGhlcjoKCjEuIEZsb3VyCjIuIEJha2luZyBzb2RhCjMuIFNhbHQKCiMjIyBTdGVwIDM6IENyZWFtIEJ1dHRlciBhbmQgU3VnYXJzCgpcYFxgXGAKQ3JlYW0gYnV0dGVyIGFuZCBzdWdhcnMgZm9yIDMtNCBtaW51dGVzCnVudGlsIGxpZ2h0IGFuZCBmbHVmZnkKXGBcYFxgCgo+ICoqUHJvIHRpcDoqKiBSb29tIHRlbXBlcmF0dXJlIGluZ3JlZGllbnRzIG1peCBiZXR0ZXIgYW5kIGNyZWF0ZSBhIG1vcmUgdW5pZm9ybSBkb3VnaC4KCiMjIyBTdGVwIDQ6IEFkZCBXZXQgSW5ncmVkaWVudHMKCkJlYXQgaW4gZWdncyBvbmUgYXQgYSB0aW1lLCB0aGVuIGFkZCB2YW5pbGxhIGV4dHJhY3QuCgojIyMgU3RlcCA1OiBDb21iaW5lIGFuZCBCYWtlCgpHcmFkdWFsbHkgYmxlbmQgaW4gZmxvdXIgbWl4dHVyZSwgdGhlbiBzdGlyIGluIGNob2NvbGF0ZSBjaGlwcy4gRHJvcCByb3VuZGVkIHRhYmxlc3Bvb25zIG9udG8gdW5ncmVhc2VkIGNvb2tpZSBzaGVldHMuCgotLS0KCioqQmFraW5nIHRpbWU6KiogOS0xMSBtaW51dGVzIG9yIHVudGlsIGdvbGRlbiBicm93bgoKKipZaWVsZDoqKiBBYm91dCA1IGRvemVuIGNvb2tpZXMiCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zaG93LW1hcmtkb3duLW91dHB1dCIgY2xhc3M9ImRlbW8tYnV0dG9uIj5TaG93IE1hcmtkb3duIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctbWFya2Rvd24iIGNsYXNzPSJvdXRwdXQtcHJldmlldyIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBcdXsxRjNBOH0gQWR2YW5jZWQgRWRpdGluZyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDcmVhdGUgY29tcGxleCBkb2N1bWVudHMgd2l0aCBtaXhlZCBjb250ZW50IHR5cGVzLiBUaGUgZWRpdG9yIGhhbmRsZXMgYWxsIGZvcm1hdHRpbmcgc2VhbWxlc3NseS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItdGVjaG5pY2FsIgogICAgICAgICAgbGFiZWw9IlRlY2huaWNhbCBEb2N1bWVudGF0aW9uIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDcmVhdGUgdGVjaG5pY2FsIGRvY3Mgd2l0aCBjb2RlIGV4YW1wbGVzIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQiCiAgICAgICAgICB2YWx1ZT0iPGgxPkFQSSBEb2N1bWVudGF0aW9uPC9oMT48cD5XZWxjb21lIHRvIG91ciBBUEkgZG9jdW1lbnRhdGlvbi4gQmVsb3cgeW91J2xsIGZpbmQgZXhhbXBsZXMgb2YgaG93IHRvIHVzZSBvdXIgZW5kcG9pbnRzLjwvcD48aDI+QXV0aGVudGljYXRpb248L2gyPjxwPkFsbCBBUEkgcmVxdWVzdHMgcmVxdWlyZSBhdXRoZW50aWNhdGlvbiB1c2luZyBhbiBBUEkga2V5OjwvcD48cHJlPjxjb2RlPkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVk8L2NvZGU+PC9wcmU+PGgyPkVuZHBvaW50czwvaDI+PGgzPkdFVCAvdXNlcnM8L2gzPjxwPlJldHJpZXZlIGEgbGlzdCBvZiB1c2VycyBmcm9tIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+Y3VybCAtWCBHRVQgaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMgXFwKICAtSCAmcXVvdDtBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJnF1b3Q7PC9jb2RlPjwvcHJlPjxibG9ja3F1b3RlPk5vdGU6IFJhdGUgbGltaXRpbmcgYXBwbGllcyB0byBhbGwgZW5kcG9pbnRzLiBZb3UgY2FuIG1ha2UgdXAgdG8gMTAwIHJlcXVlc3RzIHBlciBtaW51dGUuPC9ibG9ja3F1b3RlPjxoMz5QT1NUIC91c2VyczwvaDM+PHA+Q3JlYXRlIGEgbmV3IHVzZXIgaW4gdGhlIHN5c3RlbS48L3A+PHByZT48Y29kZT57CiAgJnF1b3Q7bmFtZSZxdW90OzogJnF1b3Q7Sm9obiBEb2UmcXVvdDssCiAgJnF1b3Q7ZW1haWwmcXVvdDs6ICZxdW90O2pvaG5AZXhhbXBsZS5jb20mcXVvdDssCiAgJnF1b3Q7cm9sZSZxdW90OzogJnF1b3Q7dXNlciZxdW90Owp9PC9jb2RlPjwvcHJlPjxocj48cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHJlZmVyIHRvIG91ciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLjwvcD4iCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gXHUyNjk5XHVGRTBGIEZvcm0gSW50ZWdyYXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgU2VhbWxlc3NseSBpbnRlZ3JhdGVzIHdpdGggZGVlcy1mb3JtIGZvciBjb21wbGV0ZSBmb3JtIHNvbHV0aW9ucy4gCiAgICAgICAgICBBbGwgc3RhbmRhcmQgZm9ybSBmZWF0dXJlcyBsaWtlIHZhbGlkYXRpb24sIHJlcXVpcmVkIGZpZWxkcywgYW5kIGRhdGEgYmluZGluZyB3b3JrIG91dCBvZiB0aGUgYm94LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgVGl0bGUiIAogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgdmFsdWU9IkhvdyB0byBCdWlsZCBNb2Rlcm4gV2ViIEFwcGxpY2F0aW9ucyIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgICAgaWQ9ImVkaXRvci1mb3JtLWludGVncmF0aW9uIgogICAgICAgICAgICBsYWJlbD0iQXJ0aWNsZSBDb250ZW50IiAKICAgICAgICAgICAgZGVzY3JpcHRpb249IldyaXRlIHlvdXIgYXJ0aWNsZSBjb250ZW50IGhlcmUiCiAgICAgICAgICAgIHJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgIGxhYmVsPSJUYWdzIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iQWRkIHJlbGV2YW50IHRhZ3MgZm9yIHlvdXIgYXJ0aWNsZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjguIFx1ezFGOUU5fSBQcm9ncmFtbWF0aWMgQmxvY2sgQ3JlYXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbnRlbnQgcHJvZ3JhbW1hdGljYWxseSB1c2luZyB0aGUgYmxvY2sgQVBJIGZvciBkeW5hbWljIGRvY3VtZW50IGdlbmVyYXRpb24uCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcKICAgICAgICAgIGlkPSJlZGl0b3ItcHJvZ3JhbW1hdGljIgogICAgICAgICAgbGFiZWw9IlByb2dyYW1tYXRpY2FsbHkgR2VuZXJhdGVkIENvbnRlbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBjb250ZW50IHdhcyBjcmVhdGVkIHVzaW5nIHRoZSBpbXBvcnRCbG9ja3MgQVBJIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWdlbmVyYXRlLXJlcG9ydCIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgR2VuZXJhdGUgUmVwb3J0CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWdlbmVyYXRlLXJlY2lwZSIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgR2VuZXJhdGUgUmVjaXBlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWNsZWFyLWVkaXRvciIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgQ2xlYXIgRWRpdG9yCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIFx1ezFGNEU0fSBFeHBvcnQvSW1wb3J0IEZlYXR1cmVzIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFRoZSBXWVNJV1lHIGVkaXRvciBwcm92aWRlcyBtdWx0aXBsZSBleHBvcnQgZm9ybWF0cyBhbmQgbG9zc2xlc3Mgc2F2ZS9yZXN0b3JlIGNhcGFiaWxpdGllcyBmb3IgbWF4aW11bSBmbGV4aWJpbGl0eS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIGJsb2NrcyI+CiAgICAgICAgICAgIDxzdHJvbmc+TG9zc2xlc3MgQmxvY2tzPC9zdHJvbmc+CiAgICAgICAgICAgIDxwPkV4cG9ydCBhbmQgaW1wb3J0IHJhdyBibG9jayBzdHJ1Y3R1cmUgZm9yIHBlcmZlY3Qgcm91bmQtdHJpcCBlZGl0aW5nPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIGh0bWwiPgogICAgICAgICAgICA8c3Ryb25nPkhUTUwgRXhwb3J0PC9zdHJvbmc+CiAgICAgICAgICAgIDxwPkdldCBjbGVhbiwgc2VtYW50aWMgSFRNTCByZWdhcmRsZXNzIG9mIG91dHB1dCBmb3JtYXQgc2V0dGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBtYXJrZG93biI+CiAgICAgICAgICAgIDxzdHJvbmc+TWFya2Rvd24gRXhwb3J0PC9zdHJvbmc+CiAgICAgICAgICAgIDxwPkV4cG9ydCBhcyBNYXJrZG93biBmb3IgZG9jcywgUkVBRE1FcywgYW5kIHN0YXRpYyBzaXRlczwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBzdGF0ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+U3RhdGUgTWFuYWdlbWVudDwvc3Ryb25nPgogICAgICAgICAgICA8cD5TYXZlIGFuZCByZXN0b3JlIGNvbXBsZXRlIGVkaXRvciBzdGF0ZSBpbmNsdWRpbmcgc2V0dGluZ3M8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLWV4cG9ydCIKICAgICAgICAgIGxhYmVsPSJFeHBvcnQgRGVtbyBFZGl0b3IiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVHJ5IHRoZSBleHBvcnQgYnV0dG9ucyBiZWxvdyB0byBzZWUgZGlmZmVyZW50IG91dHB1dCBmb3JtYXRzIgogICAgICAgICAgdmFsdWU9IjxoMT5Tb2Z0d2FyZSBSZWxlYXNlIE5vdGVzPC9oMT48cD48c3Ryb25nPlZlcnNpb24gMi41LjA8L3N0cm9uZz4gLSBSZWxlYXNlZCBEZWNlbWJlciAxNSwgMjAyNDwvcD48aDI+8J+OiSBOZXcgRmVhdHVyZXM8L2gyPjx1bD48bGk+QWRkZWQgZGFyayBtb2RlIHN1cHBvcnQgYWNyb3NzIGFsbCBjb21wb25lbnRzPC9saT48bGk+SW1wbGVtZW50ZWQgcmVhbC10aW1lIGNvbGxhYm9yYXRpb24gZmVhdHVyZXM8L2xpPjxsaT5OZXcgZGFzaGJvYXJkIGFuYWx5dGljcyB3aWRnZXRzPC9saT48bGk+RXhwb3J0IGZ1bmN0aW9uYWxpdHkgZm9yIGFsbCByZXBvcnQgdHlwZXM8L2xpPjwvdWw+PGgyPvCfkJsgQnVnIEZpeGVzPC9oMj48dWw+PGxpPkZpeGVkIG1lbW9yeSBsZWFrIGluIGRhdGEgcHJvY2Vzc2luZyBtb2R1bGU8L2xpPjxsaT5SZXNvbHZlZCBhdXRoZW50aWNhdGlvbiB0aW1lb3V0IGlzc3VlczwvbGk+PGxpPkNvcnJlY3RlZCB0aW1lem9uZSBoYW5kbGluZyBpbiBzY2hlZHVsZWQgdGFza3M8L2xpPjwvdWw+PGgyPuKaoSBQZXJmb3JtYW5jZSBJbXByb3ZlbWVudHM8L2gyPjxibG9ja3F1b3RlPlBhZ2UgbG9hZCB0aW1lcyByZWR1Y2VkIGJ5IDQwJSB0aHJvdWdoIGxhenkgbG9hZGluZyBhbmQgY29kZSBzcGxpdHRpbmc8L2Jsb2NrcXVvdGU+PGgyPvCflKcgVGVjaG5pY2FsIERldGFpbHM8L2gyPjxwcmU+PGNvZGU+Ly8gTmV3IEFQSSBlbmRwb2ludCBmb3IgYmF0Y2ggb3BlcmF0aW9ucwpQT1NUIC9hcGkvdjIvYmF0Y2gKewogICZxdW90O29wZXJhdGlvbnMmcXVvdDs6IFsKICAgIHsgJnF1b3Q7bWV0aG9kJnF1b3Q7OiAmcXVvdDtHRVQmcXVvdDssICZxdW90O3BhdGgmcXVvdDs6ICZxdW90Oy91c2Vycy8xMjMmcXVvdDsgfSwKICAgIHsgJnF1b3Q7bWV0aG9kJnF1b3Q7OiAmcXVvdDtQVVQmcXVvdDssICZxdW90O3BhdGgmcXVvdDs6ICZxdW90Oy9zZXR0aW5ncyZxdW90OywgJnF1b3Q7Ym9keSZxdW90Ozogey4uLn0gfQogIF0KfTwvY29kZT48L3ByZT48aDI+8J+SoSBNaWdyYXRpb24gR3VpZGU8L2gyPjxvbD48bGk+VXBkYXRlIHlvdXIgZGVwZW5kZW5jaWVzIHRvIHRoZSBsYXRlc3QgdmVyc2lvbnM8L2xpPjxsaT5SdW4gZGF0YWJhc2UgbWlncmF0aW9uczogPGNvZGU+bnBtIHJ1biBtaWdyYXRlPC9jb2RlPjwvbGk+PGxpPkNsZWFyIGNhY2hlOiA8Y29kZT5ucG0gcnVuIGNhY2hlOmNsZWFyPC9jb2RlPjwvbGk+PGxpPlJlc3RhcnQgYWxsIHNlcnZpY2VzPC9saT48L29sPjxocj48cD5Gb3IgcXVlc3Rpb25zIG9yIGlzc3VlcywgcGxlYXNlIGNvbnRhY3QgdGhlIGRldmVsb3BtZW50IHRlYW0gb3IgZmlsZSBhIHRpY2tldCBpbiBvdXIgaXNzdWUgdHJhY2tlci48L3A+IgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1ibG9ja3MiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBCbG9ja3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LWh0bWwiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBIVE1MCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1tYXJrZG93biIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IGFzIE1hcmtkb3duCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNhdmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFNhdmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tcmVzdG9yZS1zdGF0ZSIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgUmVzdG9yZSBTdGF0ZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBMbD1nKCgpPT57fSk7dmFyIElyLFpnPWcoKCk9PntMbCgpO0lyPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdTaG9ydGN1dHMiKX1zdGF0aWMgSEVBRElOR19QQVRURVJOUz1be3BhdHRlcm46L14jW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMSJ9LHtwYXR0ZXJuOi9eIyNbXHNcdTAwQTBdJC8sdHlwZToiaGVhZGluZy0yIn0se3BhdHRlcm46L14jIyNbXHNcdTAwQTBdJC8sdHlwZToiaGVhZGluZy0zIn1dO3N0YXRpYyBMSVNUX1BBVFRFUk5TPVt7cGF0dGVybjovXlsqLV1bXHNcdTAwQTBdJC8sdHlwZToiYnVsbGV0In0se3BhdHRlcm46L14oXGQrKVwuW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifSx7cGF0dGVybjovXihcZCspXClbXHNcdTAwQTBdJC8sdHlwZToib3JkZXJlZCJ9XTtzdGF0aWMgUVVPVEVfUEFUVEVSTj0vXj5bXHNcdTAwQTBdJC87c3RhdGljIENPREVfUEFUVEVSTj0vXmBgYCQvO3N0YXRpYyBESVZJREVSX1BBVFRFUk5TPVsiLS0tIiwiKioqIiwiX19fIl07c3RhdGljIGNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpe2ZvcihsZXR7cGF0dGVybjp0LHR5cGU6YX1vZiB0aGlzLkhFQURJTkdfUEFUVEVSTlMpaWYodC50ZXN0KGUpKXJldHVybnt0eXBlOmF9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja0xpc3RTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46dCx0eXBlOmF9b2YgdGhpcy5MSVNUX1BBVFRFUk5TKWlmKHQudGVzdChlKSlyZXR1cm57dHlwZToibGlzdCIsbGlzdFR5cGU6YX07cmV0dXJuIG51bGx9c3RhdGljIGNoZWNrUXVvdGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5RVU9URV9QQVRURVJOLnRlc3QoZSl9c3RhdGljIGNoZWNrQ29kZVNob3J0Y3V0KGUpe3JldHVybiB0aGlzLkNPREVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0RpdmlkZXJTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5ESVZJREVSX1BBVFRFUk5TLmluY2x1ZGVzKGUpfXN0YXRpYyBnZXRTbGFzaE1lbnVJdGVtcygpe3JldHVyblt7dHlwZToicGFyYWdyYXBoIixsYWJlbDoiUGFyYWdyYXBoIixpY29uOiJsdWNpZGU6cGlsY3JvdyJ9LHt0eXBlOiJoZWFkaW5nLTEiLGxhYmVsOiJIZWFkaW5nIDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSJ9LHt0eXBlOiJoZWFkaW5nLTIiLGxhYmVsOiJIZWFkaW5nIDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiJ9LHt0eXBlOiJoZWFkaW5nLTMiLGxhYmVsOiJIZWFkaW5nIDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyJ9LHt0eXBlOiJxdW90ZSIsbGFiZWw6IlF1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUifSx7dHlwZToiY29kZSIsbGFiZWw6IkNvZGUgQmxvY2siLGljb246Imx1Y2lkZTpmaWxlQ29kZSJ9LHt0eXBlOiJsaXN0IixsYWJlbDoiQnVsbGV0IExpc3QiLGljb246Imx1Y2lkZTpsaXN0In0se3R5cGU6ImltYWdlIixsYWJlbDoiSW1hZ2UiLGljb246Imx1Y2lkZTppbWFnZSJ9LHt0eXBlOiJkaXZpZGVyIixsYWJlbDoiRGl2aWRlciIsaWNvbjoibHVjaWRlOm1pbnVzIn0se3R5cGU6InlvdXR1YmUiLGxhYmVsOiJZb3VUdWJlIixpY29uOiJsdWNpZGU6eW91dHViZSJ9LHt0eXBlOiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIixpY29uOiJsdWNpZGU6ZmlsZVRleHQifSx7dHlwZToiaHRtbCIsbGFiZWw6IkhUTUwiLGljb246Imx1Y2lkZTpjb2RlIn0se3R5cGU6ImF0dGFjaG1lbnQiLGxhYmVsOiJGaWxlIEF0dGFjaG1lbnQiLGljb246Imx1Y2lkZTpwYXBlcmNsaXAifV19c3RhdGljIGdlbmVyYXRlQmxvY2tJZCgpe3JldHVybmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YH19fSk7dmFyIGt4LHoyLHdudCxrbnQ9ZygoKT0+e3BlKCk7R24oKTtHYSgpO0xsKCk7WmcoKTtodCgpO2t4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx6Mj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sd250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zbGFzaC1tZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTbGFzaE1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtZKCldLHA9W1koKV0sYz1bWSgpXSx4PVtZKCldLHk9W1koKV0sa3godGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ2aXNpYmxlImluIF8sImhhcyIpLGdldDppKF89Pl8udmlzaWJsZSwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnZpc2libGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGt4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBvc2l0aW9uImluIF8sImhhcyIpLGdldDppKF89Pl8ucG9zaXRpb24sImdldCIpLHNldDppKChfLE8pPT57Xy5wb3NpdGlvbj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksa3godGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImZpbHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmZpbHRlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmZpbHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksa3godGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZEluZGV4ImluIF8sImhhcyIpLGdldDppKF89Pl8uc2VsZWN0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNlbGVjdGVkSW5kZXg9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLGt4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ibWVudVpJbmRleCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChfLE8pPT57Xy5tZW51WkluZGV4PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxreChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gTi5pbnN0YW5jZXx8KE4uaW5zdGFuY2U9bmV3IE4sZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChOLmluc3RhbmNlKSksTi5pbnN0YW5jZX0jZT16Mih0aGlzLG8sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUoQyl7dGhpcy4jZT1DfSN0PSh6Mih0aGlzLGwpLHoyKHRoaXMsZCx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oQyl7dGhpcy4jdD1DfSNhPSh6Mih0aGlzLHUpLHoyKHRoaXMsYiwiIikpO2dldCBmaWx0ZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyKEMpe3RoaXMuI2E9Q30jcz0oejIodGhpcyx2KSx6Mih0aGlzLG0sMCkpO2dldCBzZWxlY3RlZEluZGV4KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkSW5kZXgoQyl7dGhpcy4jcz1DfSNpPSh6Mih0aGlzLGYpLHoyKHRoaXMsTSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBtZW51WkluZGV4KEMpe3RoaXMuI2k9Q31jYWxsYmFjaz0oejIodGhpcyx6KSxudWxsKTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2lmKCF0aGlzLnZpc2libGUpcmV0dXJuIHdgYDt0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKTtsZXQgQz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJzbGFzaCIKICAgICAgPgogICAgICAgICR7Qy5tYXAoKF8sTyk9PndgCiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2xhc2gtbWVudS1pdGVtICR7Tz09PXRoaXMuc2VsZWN0ZWRJbmRleD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgZGF0YS1pdGVtLXR5cGU9IiR7Xy50eXBlfSIKICAgICAgICAgICAgZGF0YS1pdGVtLWluZGV4PSIke099IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJpY29uIiAuaWNvbj0iJHtfLmljb259IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj4ke18ubGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRGaWx0ZXJlZE1lbnVJdGVtcygpe3JldHVybiBJci5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihfPT50aGlzLmZpbHRlcj09PSIifHxfLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSkpfXNlbGVjdEl0ZW0oQyl7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayhDKSx0aGlzLmhpZGUoKX1zaG93KEMsXyl7dGhpcy5wb3NpdGlvbj1DLHRoaXMuY2FsbGJhY2s9Xyx0aGlzLmZpbHRlcj0iIix0aGlzLnNlbGVjdGVkSW5kZXg9MCx0aGlzLm1lbnVaSW5kZXg9X2EuZ2V0TmV4dFpJbmRleCgpLF9hLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwsdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsX2EudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVGaWx0ZXIoQyl7dGhpcy5maWx0ZXI9Qyx0aGlzLnNlbGVjdGVkSW5kZXg9MH1uYXZpZ2F0ZShDKXtsZXQgXz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7Qz09PSJkb3duIj90aGlzLnNlbGVjdGVkSW5kZXg9KHRoaXMuc2VsZWN0ZWRJbmRleCsxKSVfLmxlbmd0aDp0aGlzLnNlbGVjdGVkSW5kZXg9dGhpcy5zZWxlY3RlZEluZGV4PT09MD9fLmxlbmd0aC0xOnRoaXMuc2VsZWN0ZWRJbmRleC0xfXNlbGVjdEN1cnJlbnQoKXtsZXQgQz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7Q1t0aGlzLnNlbGVjdGVkSW5kZXhdJiZ0aGlzLnNlbGVjdEl0ZW0oQ1t0aGlzLnNlbGVjdGVkSW5kZXhdLnR5cGUpfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLEM9PntsZXQgXz1DLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO08mJk8uY29udGFpbnMoXy50YXJnZXQpJiYoXy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDPT57bGV0IF89QywkPV8udGFyZ2V0LmNsb3Nlc3QoIi5zbGFzaC1tZW51LWl0ZW0iKTtpZigkKXtfLnByZXZlbnREZWZhdWx0KCksXy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgRT0kLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLXR5cGUiKTtFJiZ0aGlzLnNlbGVjdEl0ZW0oRSl9fSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLEM9PntsZXQgJD1DLnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoJCl7bGV0IEU9cGFyc2VJbnQoJC5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS1pbmRleCIpfHwiMCIsMTApO3RoaXMuc2VsZWN0ZWRJbmRleD1FfX0sITApLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsQz0+e2xldCBfPUMsTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zbGFzaC1tZW51Iik7TyYmTy5jb250YWlucyhfLnRhcmdldCkmJihfLnByZXZlbnREZWZhdWx0KCksXy5zdG9wUHJvcGFnYXRpb24oKSl9LCEwKX1zdGF0aWN7ejIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyICR0LFhkPWcoKCk9PnskdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnU2VsZWN0aW9uIil9c3RhdGljIGdldFNlbGVjdGlvbkluZm8oLi4uZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGNvbnNvbGUubG9nKCJXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8gLSBzZWxlY3Rpb246Iix0LCJyYW5nZUNvdW50OiIsdD8ucmFuZ2VDb3VudCksIXQpcmV0dXJuIG51bGw7aWYoImdldENvbXBvc2VkUmFuZ2VzImluIHQmJnR5cGVvZiB0LmdldENvbXBvc2VkUmFuZ2VzPT0iZnVuY3Rpb24iKXtjb25zb2xlLmxvZygiVXNpbmcgZ2V0Q29tcG9zZWRSYW5nZXMgd2l0aCIsZS5sZW5ndGgsInNoYWRvdyByb290cyIpO3RyeXtsZXQgYT10LmdldENvbXBvc2VkUmFuZ2VzKHtzaGFkb3dSb290czplfSk7aWYoY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIHJldHVybmVkIixhLmxlbmd0aCwicmFuZ2VzIiksYS5sZW5ndGg+MCl7bGV0IHI9YVswXTtyZXR1cm57c3RhcnRDb250YWluZXI6ci5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpyLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjpyLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6ci5lbmRPZmZzZXQsY29sbGFwc2VkOnIuY29sbGFwc2VkfX19Y2F0Y2goYSl7Y29uc29sZS53YXJuKCJnZXRDb21wb3NlZFJhbmdlcyBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBnZXRSYW5nZUF0OiIsYSl9fWVsc2UgY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIG5vdCBhdmFpbGFibGUsIHVzaW5nIGZhbGxiYWNrIik7aWYodC5yYW5nZUNvdW50PjApe2xldCBhPXQuZ2V0UmFuZ2VBdCgwKTtyZXR1cm57c3RhcnRDb250YWluZXI6YS5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDphLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjphLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6YS5lbmRPZmZzZXQsY29sbGFwc2VkOmEuY29sbGFwc2VkfX1yZXR1cm4gbnVsbH1zdGF0aWMgaXNTZWxlY3Rpb25JbkVsZW1lbnQoZSx0KXtsZXQgYT10P3RoaXMuZ2V0U2VsZWN0aW9uSW5mbyh0KTp0aGlzLmdldFNlbGVjdGlvbkluZm8oKTtyZXR1cm4gYT9lLmNvbnRhaW5zKGEuc3RhcnRDb250YWluZXIpfHxlLmNvbnRhaW5zKGEuZW5kQ29udGFpbmVyKTohMX1zdGF0aWMgZ2V0U2VsZWN0ZWRUZXh0KCl7bGV0IGU9d2luZG93LmdldFNlbGVjdGlvbigpO3JldHVybiBlP2UudG9TdHJpbmcoKToiIn1zdGF0aWMgY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB0LnNldFN0YXJ0KGUuc3RhcnRDb250YWluZXIsZS5zdGFydE9mZnNldCksdC5zZXRFbmQoZS5lbmRDb250YWluZXIsZS5lbmRPZmZzZXQpLHR9c3RhdGljIHNldFNlbGVjdGlvbkZyb21SYW5nZShlKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7dCYmKHQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShlKSl9c3RhdGljIGdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGUsLi4udCl7bGV0IGE9dC5sZW5ndGg+MD90aGlzLmdldFNlbGVjdGlvbkluZm8oLi4udCk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7aWYoIWF8fCFhLmNvbGxhcHNlZClyZXR1cm4gbnVsbDt0cnl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihyLnNlbGVjdE5vZGVDb250ZW50cyhlKSx0aGlzLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsYS5zdGFydENvbnRhaW5lcikpcmV0dXJuIHIuc2V0RW5kKGEuc3RhcnRDb250YWluZXIsYS5zdGFydE9mZnNldCksci50b1N0cmluZygpLmxlbmd0aDt7bGV0IG89ZS50ZXh0Q29udGVudHx8IiIsbD1hLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fHwiIjtyZXR1cm4gYS5zdGFydE9mZnNldD09PTA/MDphLnN0YXJ0T2Zmc2V0PT09bC5sZW5ndGg/by5sZW5ndGg6KGNvbnNvbGUud2FybigiU2VsZWN0aW9uIGNvbnRhaW5lciBub3Qgd2l0aGluIGVsZW1lbnQsIHVzaW5nIHRleHQgbWF0Y2hpbmcgZmFsbGJhY2siKSxhLnN0YXJ0T2Zmc2V0KX19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIGdldCBjdXJzb3IgcG9zaXRpb246IixyKSxudWxsfX1zdGF0aWMgZ2V0Q3Vyc29yUG9zaXRpb25Gcm9tUG9pbnQoZSx0LGEsLi4ucil7aWYoImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQmJmRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpe2xldCBuPW51bGw7dHJ5e249ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQsLi4ucil9Y2F0Y2h7bj1kb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KGUsdCl9aWYobiYmYS5jb250YWlucyhuLm9mZnNldE5vZGUpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChuLm9mZnNldE5vZGUsbi5vZmZzZXQsYSl9aWYoImNhcmV0UmFuZ2VGcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBuPWRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoZSx0KTtpZihuJiZhLmNvbnRhaW5zKG4uc3RhcnRDb250YWluZXIpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChuLnN0YXJ0Q29udGFpbmVyLG4uc3RhcnRPZmZzZXQsYSl9cmV0dXJuIG51bGx9c3RhdGljIGdldE9mZnNldEluRWxlbWVudChlLHQsYSl7bGV0IHI9MCxuPSExLG89ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihhLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLGw7Zm9yKDtsPW8ubmV4dE5vZGUoKTspaWYobD09PWUpe3IrPXQsbj0hMDticmVha31lbHNlIHIrPWwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gbj9yOjB9c3RhdGljIHNldEN1cnNvclBvc2l0aW9uKGUsdCl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLHI9MCxuPW51bGwsbz0wO2Zvcig7YS5uZXh0Tm9kZSgpOyl7bGV0IGw9YS5jdXJyZW50Tm9kZSxwPWwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihyK3A+PXQpe249bCxvPXQtcjticmVha31yKz1wfWlmKG4pe2xldCBsPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bC5zZXRTdGFydChuLG8pLGwuY29sbGFwc2UoITApLHRoaXMuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKGwpfX1zdGF0aWMgY29udGFpbnNBY3Jvc3NTaGFkb3dET00oZSx0KXtpZighZXx8IXQpcmV0dXJuITE7bGV0IGE9dDtmb3IoO2E7KXtpZihhPT09ZSlyZXR1cm4hMDtpZihhLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZhLmhvc3Qpe2xldCByPWE7aWYoci5jb250YWlucyhlKSlyZXR1cm4hMTthPXIuaG9zdH1lbHNlIGE9YS5wYXJlbnROb2RlfXJldHVybiExfX19KTt2YXIgbDQsU250PWcoKCk9PntwZSgpO1hkKCk7bDQ9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Zvcm1hdHRpbmciKX1zdGF0aWMgZm9ybWF0QnV0dG9ucz1be2NvbW1hbmQ6ImJvbGQiLGljb246IkIiLGxhYmVsOiJCb2xkIixzaG9ydGN1dDoiXHUyMzE4QiJ9LHtjb21tYW5kOiJpdGFsaWMiLGljb246IkkiLGxhYmVsOiJJdGFsaWMiLHNob3J0Y3V0OiJcdTIzMThJIn0se2NvbW1hbmQ6InVuZGVybGluZSIsaWNvbjoiVSIsbGFiZWw6IlVuZGVybGluZSIsc2hvcnRjdXQ6Ilx1MjMxOFUifSx7Y29tbWFuZDoic3RyaWtlVGhyb3VnaCIsaWNvbjoiU1x1MDMzNiIsbGFiZWw6IlN0cmlrZXRocm91Z2gifSx7Y29tbWFuZDoiY29kZSIsaWNvbjoieyB9IixsYWJlbDoiSW5saW5lIENvZGUifSx7Y29tbWFuZDoibGluayIsaWNvbjoiXHV7MUY1MTd9IixsYWJlbDoiTGluayIsc2hvcnRjdXQ6Ilx1MjMxOEsifV07c3RhdGljIHJlbmRlckZvcm1hdHRpbmdNZW51KGUsdCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9InRvcDogJHtlLnl9cHg7IGxlZnQ6ICR7ZS54fXB4OyIKICAgICAgICBAbW91c2Vkb3duPSIke2E9PnthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX19IgogICAgICAgIEBjbGljaz0iJHthPT5hLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgPgogICAgICAgICR7dGhpcy5mb3JtYXRCdXR0b25zLm1hcChhPT53YAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHthLmNvbW1hbmR9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnQoYS5jb21tYW5kKX0iCiAgICAgICAgICAgIHRpdGxlPSIke2EubGFiZWx9JHthLnNob3J0Y3V0P2AgKCR7YS5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke2EuY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7YS5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGFwcGx5Rm9ybWF0KGUsdCxhLHIpe2xldCBuO2lmKGEpbj1hO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybiExO249by5nZXRSYW5nZUF0KDApfXN3aXRjaChlKXtjYXNlImJvbGQiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJzdHJvbmciKTticmVhaztjYXNlIml0YWxpYyI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImVtIik7YnJlYWs7Y2FzZSJ1bmRlcmxpbmUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJ1Iik7YnJlYWs7Y2FzZSJzdHJpa2VUaHJvdWdoIjp0aGlzLndyYXBTZWxlY3Rpb24obiwicyIpO2JyZWFrO2Nhc2UiY29kZSI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImNvZGUiKTticmVhaztjYXNlImxpbmsiOmlmKCF0KXJldHVybiExO3RoaXMud3JhcFNlbGVjdGlvbldpdGhMaW5rKG4sdCk7YnJlYWt9aWYociYmci5sZW5ndGg+MCkkdC5zZXRTZWxlY3Rpb25Gcm9tUmFuZ2Uobik7ZWxzZXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7byYmKG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShuKSl9cmV0dXJuITB9c3RhdGljIHdyYXBTZWxlY3Rpb24oZSx0KXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWEpcmV0dXJuO2lmKHRoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcoZSx0KSl0aGlzLnJlbW92ZVRhZ0Zyb21TZWxlY3Rpb24oZSx0KTtlbHNle2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7dHJ5e2xldCBvPWUuZXh0cmFjdENvbnRlbnRzKCk7bi5hcHBlbmRDaGlsZChvKSxlLmluc2VydE5vZGUobiksZS5zZWxlY3ROb2RlQ29udGVudHMobiksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGUpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB3cmFwIHNlbGVjdGlvbjoiLG8pfX19c3RhdGljIHNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsdCl7bGV0IGE9ZS5zdGFydENvbnRhaW5lcjtmb3IoO2EmJmEhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmEudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dClyZXR1cm4hMDthPWEucGFyZW50Tm9kZX1mb3IoYT1lLmVuZENvbnRhaW5lcjthJiZhIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZhLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXQpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1lLmNsb25lQ29udGVudHMoKTtyZXR1cm4gci5hcHBlbmRDaGlsZChuKSxyLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpLmxlbmd0aD4wfXN0YXRpYyByZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsdCl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtsZXQgcj1lLmNsb25lUmFuZ2UoKSxuPWUuc3RhcnRDb250YWluZXIsbz1udWxsO2Zvcig7biYmbiE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKG4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10KXtvPW47YnJlYWt9bj1uLnBhcmVudE5vZGV9bGV0IGw9ZS5lbmRDb250YWluZXIscD1udWxsO2Zvcig7bCYmbCE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKGwubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10KXtwPWw7YnJlYWt9bD1sLnBhcmVudE5vZGV9byYmci5zZXRTdGFydEJlZm9yZShvKSxwJiZyLnNldEVuZEFmdGVyKHApO2xldCBkPXIuZXh0cmFjdENvbnRlbnRzKCksdT10aGlzLnJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoZCx0KTtyLmluc2VydE5vZGUodSk7bGV0IGM9W10sYj1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHUsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCksdjtmb3IoO3Y9Yi5uZXh0Tm9kZSgpOyljLnB1c2godik7aWYoYy5sZW5ndGg+MCl7bGV0IHg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt4LnNldFN0YXJ0KGNbMF0sMCkseC5zZXRFbmQoY1tjLmxlbmd0aC0xXSxjW2MubGVuZ3RoLTFdLnRleHRDb250ZW50Py5sZW5ndGh8fDApLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZSh4KX19c3RhdGljIHJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoZSx0KXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmFwcGVuZENoaWxkKGUpO2xldCByPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk7QXJyYXkuZnJvbShyKS5mb3JFYWNoKGw9PntsZXQgcD1sLnBhcmVudE5vZGU7aWYocCl7Zm9yKDtsLmZpcnN0Q2hpbGQ7KXAuaW5zZXJ0QmVmb3JlKGwuZmlyc3RDaGlsZCxsKTtwLnJlbW92ZUNoaWxkKGwpfX0pO2xldCBvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IoO2EuZmlyc3RDaGlsZDspby5hcHBlbmRDaGlsZChhLmZpcnN0Q2hpbGQpO3JldHVybiBvfXN0YXRpYyB3cmFwU2VsZWN0aW9uV2l0aExpbmsoZSx0KXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWEpcmV0dXJuO3RoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcoZSwiYSIpJiYodGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsImEiKSxhLnJhbmdlQ291bnQ+MCYmKGU9YS5nZXRSYW5nZUF0KDApKSk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3IuaHJlZj10LHIudGFyZ2V0PSJfYmxhbmsiLHIucmVsPSJub29wZW5lciBub3JlZmVycmVyIjt0cnl7bGV0IG49ZS5leHRyYWN0Q29udGVudHMoKTtyLmFwcGVuZENoaWxkKG4pLGUuaW5zZXJ0Tm9kZShyKSxlLnNlbGVjdE5vZGVDb250ZW50cyhyKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2UoZSl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBsaW5rOiIsbil9fXN0YXRpYyBnZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi5lKXtsZXQgdD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLmUpO2lmKGNvbnNvbGUubG9nKCJnZXRTZWxlY3Rpb25Db29yZGluYXRlcyAtIHNlbGVjdGlvbkluZm86Iix0KSwhdClyZXR1cm4gY29uc29sZS5sb2coIk5vIHNlbGVjdGlvbiBpbmZvIGF2YWlsYWJsZSIpLG51bGw7bGV0IHI9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyh0KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihjb25zb2xlLmxvZygiUmFuZ2UgcmVjdDoiLHIpLHIud2lkdGg9PT0wJiZyLmhlaWdodD09PTApe2lmKGNvbnNvbGUubG9nKCJSZWN0IHdpZHRoIGFuZCBoZWlnaHQgYXJlIDAsIHRyeWluZyBkaWZmZXJlbnQgYXBwcm9hY2giKSwiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCJpbiBkb2N1bWVudCl7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG8mJm8ucmFuZ2VDb3VudD4wKXtsZXQgbD1vLmdldFJhbmdlQXQoMCkscD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cC50ZXh0Q29udGVudD0iXHUyMDBCIixsLmluc2VydE5vZGUocCk7bGV0IGQ9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihwLnJlbW92ZSgpLGQud2lkdGg+MHx8ZC5oZWlnaHQ+MCl7bGV0IHU9e3g6ZC5sZWZ0LHk6TWF0aC5tYXgoNDUsZC50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlVzZWQgc3BhbiB0cmljayBmb3IgY29vcmRzOiIsdSksdX19fXJldHVybiBudWxsfWxldCBuPXt4OnIubGVmdCtyLndpZHRoLzIseTpNYXRoLm1heCg0NSxyLnRvcC00NSl9O3JldHVybiBjb25zb2xlLmxvZygiUmV0dXJuaW5nIGNvb3JkczoiLG4pLG59fX0pO3ZhciBCMWUsWGcsX250LE1udD1nKCgpPT57cGUoKTtHbigpO1NudCgpO2h0KCk7QjFlPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxYZz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX250PSgoKT0+e2xldCBzPVtuZSgiZGVlcy1mb3JtYXR0aW5nLW1lbnUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0Zvcm1hdHRpbmdNZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0sQjFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idmlzaWJsZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnZpc2libGUsImdldCIpLHNldDppKChmLHkpPT57Zi52aXNpYmxlPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxCMWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4icG9zaXRpb24iaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5wb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnBvc2l0aW9uPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxCMWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJtZW51WkluZGV4ImluIGYsImhhcyIpLGdldDppKGY9PmYubWVudVpJbmRleCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLm1lbnVaSW5kZXg9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLEIxZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4geC5pbnN0YW5jZXx8KHguaW5zdGFuY2U9bmV3IHgsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh4Lmluc3RhbmNlKSkseC5pbnN0YW5jZX0jZT1YZyh0aGlzLG8sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUobSl7dGhpcy4jZT1tfSN0PShYZyh0aGlzLGwpLFhnKHRoaXMsZCx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24obSl7dGhpcy4jdD1tfSNhPShYZyh0aGlzLHUpLFhnKHRoaXMsYiwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBtZW51WkluZGV4KG0pe3RoaXMuI2E9bX1jYWxsYmFjaz0oWGcodGhpcyx2KSxudWxsKTtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXR0aW5nLW1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNjI2MjYiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjNDA0MDQwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKDVweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzMzMzMzMyIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLnZpc2libGU/KHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4OyIKICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgZGF0YS1tZW51LXR5cGU9ImZvcm1hdHRpbmciCiAgICAgID4KICAgICAgICAke2w0LmZvcm1hdEJ1dHRvbnMubWFwKG09PndgCiAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICBjbGFzcz0iZm9ybWF0LWJ1dHRvbiAke20uY29tbWFuZH0iCiAgICAgICAgICAgIGRhdGEtY29tbWFuZD0iJHttLmNvbW1hbmR9IgogICAgICAgICAgICB0aXRsZT0iJHttLmxhYmVsfSR7bS5zaG9ydGN1dD9gICgke20uc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHttLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke20uaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgKTp3YGB9YXBwbHlGb3JtYXQobSl7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayhtKSxtPT09ImxpbmsiJiZ0aGlzLmhpZGUoKX1zaG93KG0sZil7Y29uc29sZS5sb2coIkZvcm1hdHRpbmdNZW51LnNob3cgY2FsbGVkOiIse3Bvc2l0aW9uOm0sdmlzaWJsZTp0aGlzLnZpc2libGV9KSx0aGlzLnBvc2l0aW9uPW0sdGhpcy5jYWxsYmFjaz1mLHRoaXMubWVudVpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksX2EucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHRoaXMudmlzaWJsZT0hMH1oaWRlKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuY2FsbGJhY2s9bnVsbCxfYS51bnJlZ2lzdGVyKHRoaXMpfXVwZGF0ZVBvc2l0aW9uKG0pe3RoaXMucG9zaXRpb249bX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixtPT57bGV0IGY9bSx5PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO3kmJnkuY29udGFpbnMoZi50YXJnZXQpJiYoZi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixtPT57bGV0IGY9bSxNPWYudGFyZ2V0LmNsb3Nlc3QoIi5mb3JtYXQtYnV0dG9uIik7aWYoTSl7Zi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHo9TS5nZXRBdHRyaWJ1dGUoImRhdGEtY29tbWFuZCIpO3omJnRoaXMuYXBwbHlGb3JtYXQoeil9fSksdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixtPT57bGV0IGY9bSx5PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO3kmJnkuY29udGFpbnMoZi50YXJnZXQpJiYoZi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje1hnKGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBTeD1nKCgpPT57cGUoKTtMbCgpO2tudCgpO01udCgpfSk7dmFyIEgxZSxxMWU9ZygoKT0+e0gxZT1bIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiSmF2YSIsIkMrKyIsIkMjIiwiR28iLCJSdXN0IiwiSFRNTCIsIkNTUyIsIlNRTCIsIlNoZWxsIiwiSlNPTiIsIllBTUwiLCJNYXJrZG93biIsIlBsYWluIFRleHQiXX0pO3ZhciBRYmEsSmJhPWcoKCk9PntwZSgpO1FiYT1KYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgcGFkZGluZzogMjRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfSwgMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIil9OwogICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBWaXN1YWwgaGludCBmb3IgdGV4dCBzZWxlY3Rpb24gKi8KICAuZWRpdG9yLWNvbnRlbnQ6aG92ZXIgewogICAgY3Vyc29yOiB0ZXh0OwogIH0KCiAgLmVkaXRvci1jb250ZW50IHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBtaW4taGVpZ2h0OiAxNjBweDsKICAgIG1hcmdpbjogMCAtOHB4OwogICAgcGFkZGluZzogMCA4cHg7CiAgfQoKICAuYmxvY2sgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogNHB4IDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC8qIEZpcnN0IGFuZCBsYXN0IGJsb2NrcyBkb24ndCBuZWVkIGV4dHJhIHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBtYXJnaW4tbGVmdDogLThweDsKICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgcGFkZGluZy1yaWdodDogOHB4OwogIH0KCiAgLmJsb2NrW2NvbnRlbnRlZGl0YWJsZV0gewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGggewogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlR5cGUgJy8nIGZvciBjb21tYW5kcy4uLiI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTEgewogICAgZm9udC1zaXplOiAzMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDEiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAzMnB4OwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0yIHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTI6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAyIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0zOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMyI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5xdW90ZSB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2sucXVvdGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiUXVvdGUiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luOiAyMHB4IDA7CiAgfQoKICAuY29kZS1sYW5ndWFnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDAgNHB4OwogICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKICAgIHotaW5kZXg6IDE7CiAgfQoKICAuYmxvY2suY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiAxNnB4OwogICAgcGFkZGluZy10b3A6IDMycHg7IC8qIE1ha2Ugcm9vbSBmb3IgbGFuZ3VhZ2UgaW5kaWNhdG9yICovCiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgb3ZlcmZsb3cteDogYXV0bzsKICB9CgogIC5ibG9jay5jb2RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIi8vIENvZGUgYmxvY2siOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5saXN0IHsKICAgIHBhZGRpbmctbGVmdDogMDsKICB9CgogIC5ibG9jay5saXN0IHVsLAogIC5ibG9jay5saXN0IG9sIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDAgMCAwIDI0cHg7CiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwgewogICAgbGlzdC1zdHlsZTogZGlzYzsKICB9CgogIC5ibG9jay5saXN0IG9sIHsKICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7CiAgfQoKICAuYmxvY2subGlzdCBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLmxpc3QgbGk6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMjBweCAwOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYmxvY2suZGl2aWRlciBociB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgbWFyZ2luOiAwOwogIH0KCiAgLnNsYXNoLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogICAgbWluLXdpZHRoOiAyMjBweDsKICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIHsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXNpemU6IDE0cHg7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gLmljb24gewogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC50b29sYmFyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTQwcHg7CiAgICBsZWZ0OiAwOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZ2FwOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogIH0KCiAgLnRvb2xiYXIudmlzaWJsZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBEcmFnIGFuZCBEcm9wIFN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogIH0KCiAgLyogRW5zdXJlIHByb3BlciBzcGFjaW5nIGNvbnRleHQgZm9yIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgfQoKICAvKiBPdmVycmlkZSBmb3IgaGVhZGluZ3MgZm9sbG93aW5nIG90aGVyIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTIsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0zIHsKICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgfQoKICAvKiBDb2RlIGFuZCBxdW90ZSBibG9ja3MgbmVlZCBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5jb2RlLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLnF1b3RlIHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgfQoKICAuZHJhZy1oYW5kbGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTI4cHg7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgY3Vyc29yOiBncmFiOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAuZHJhZy1oYW5kbGU6OmJlZm9yZSB7CiAgICBjb250ZW50OiAi4ouu4ouuIjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxldHRlci1zcGFjaW5nOiAtMnB4OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6aG92ZXIgLmRyYWctaGFuZGxlIHsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICB9CgogIC5kcmFnLWhhbmRsZTphY3RpdmUgewogICAgY3Vyc29yOiBncmFiYmluZzsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICB9CgogIC5ibG9jay13cmFwcGVyLmRyYWdnaW5nIHsKICAgIG9wYWNpdHk6IDAuODsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMjAwMTsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9CgoKICAvKiBCbG9ja3MgdGhhdCBzaG91bGQgbW92ZSBvdXQgb2YgdGhlIHdheSAqLwogIC5ibG9jay13cmFwcGVyLm1vdmUtZG93biB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpOwogIH0KCiAgLmJsb2NrLXdyYXBwZXIubW92ZS11cCB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKSk7CiAgfQoKICAvKiBEcm9wIGluZGljYXRvciAqLwogIC5kcm9wLWluZGljYXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgYm9yZGVyOiAycHggZGFzaGVkICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGVhc2UsIGhlaWdodCAwLjJzIGVhc2U7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHotaW5kZXg6IDE5OTk7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogUmVtb3ZlIG9sZCBkcmFnLW92ZXIgc3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWJlZm9yZSwKICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYWZ0ZXIgewogICAgLyogTm8gbG9uZ2VyIG5lZWRlZCwgdXNpbmcgZHJvcCBpbmRpY2F0b3IgaW5zdGVhZCAqLwogIH0KCiAgLmVkaXRvci1jb250ZW50LmRyYWdnaW5nICogewogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAvKiBCbG9jayBTZXR0aW5ncyBCdXR0b24gLSBSZW1vdmVkIGluIGZhdm9yIG9mIGNvbnRleHQgbWVudSAqLwoKICAvKiBUZXh0IFNlbGVjdGlvbiBTdHlsZXMgKi8KICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBjb2xvcjogaW5oZXJpdDsKICB9CgogIC8qIEZvcm1hdHRpbmcgTWVudSAqLwogIC5mb3JtYXR0aW5nLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAycHg7CiAgICB6LWluZGV4OiAxMDAxOwogICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICB9CgogIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgZnJvbSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgycHgpOwogICAgfQogICAgdG8gewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICB9CgogIC8qIEFwcGxpZWQgZm9ybWF0IHN0eWxlcyBpbiBjb250ZW50ICovCiAgLmJsb2NrIHN0cm9uZywKICAuYmxvY2sgYiB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBlbSwKICAuYmxvY2sgaSB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuYmxvY2sgdSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5ibG9jayBzdHJpa2UsCiAgLmJsb2NrIHMgewogICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICBvcGFjaXR5OiAwLjc7CiAgfQoKICAuYmxvY2sgY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDAuOWVtOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBhIHsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICB9CgogIC5ibG9jayBhOmhvdmVyIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CmB9KTt2YXIgQzIsem50PWcoKCk9PntMbCgpO0MyPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdDb252ZXJ0ZXJzIil9c3RhdGljIGVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1zdGF0aWMgZm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCB0PTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scj1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHQpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyh0LHIpKS50b0ZpeGVkKDIpKSsiICIrYVtyXX1zdGF0aWMgZ2V0SHRtbE91dHB1dChlKXtyZXR1cm4gZS5tYXAodD0+e2xldCBhPXQuY29udGVudC5pbmNsdWRlcygiPCIpJiZ0LmNvbnRlbnQuaW5jbHVkZXMoIj4iKT90LmNvbnRlbnQ6dGhpcy5lc2NhcGVIdG1sKHQuY29udGVudCk7c3dpdGNoKHQudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiB0LmNvbnRlbnQ/YDxwPiR7YX08L3A+YDoiIjtjYXNlImhlYWRpbmctMSI6cmV0dXJuYDxoMT4ke2F9PC9oMT5gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gPGgyPiR7YX08L2gyPmA7Y2FzZSJoZWFkaW5nLTMiOnJldHVybmA8aDM+JHthfTwvaDM+YDtjYXNlInF1b3RlIjpyZXR1cm5gPGJsb2NrcXVvdGU+JHthfTwvYmxvY2txdW90ZT5gO2Nhc2UiY29kZSI6cmV0dXJuYDxwcmU+PGNvZGU+JHt0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KX08L2NvZGU+PC9wcmU+YDtjYXNlImxpc3QiOmxldCByPXQuY29udGVudC5zcGxpdChgCmApLmZpbHRlcihwPT5wLnRyaW0oKSk7aWYoci5sZW5ndGg+MCl7bGV0IHA9dC5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO3JldHVybmA8JHtwfT4ke3IubWFwKGQ9PmA8bGk+JHtkfTwvbGk+YCkuam9pbigiIil9PC8ke3B9PmB9cmV0dXJuIiI7Y2FzZSJkaXZpZGVyIjpyZXR1cm4iPGhyPiI7Y2FzZSJpbWFnZSI6bGV0IG49dC5tZXRhZGF0YT8udXJsO2lmKG4pe2xldCBwPXRoaXMuZXNjYXBlSHRtbCh0LmNvbnRlbnR8fCJJbWFnZSIpO3JldHVybmA8aW1nIHNyYz0iJHtufSIgYWx0PSIke3B9IiAvPmB9cmV0dXJuIiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz10Lm1ldGFkYXRhPy52aWRlb0lkO3JldHVybiBvP2A8aWZyYW1lIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7b30iIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPmA6IiI7Y2FzZSJtYXJrZG93biI6cmV0dXJuYDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPiR7dGhpcy5lc2NhcGVIdG1sKHQuY29udGVudCl9PC9kaXY+YDtjYXNlImh0bWwiOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJhdHRhY2htZW50IjpsZXQgbD10Lm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuIGwubGVuZ3RoPjA/YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnRzIj4ke2wubWFwKHA9PmA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHtwLmlkfSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIke3AuZGF0YX0iIGRvd25sb2FkPSIke3AubmFtZX0iPiR7dGhpcy5lc2NhcGVIdG1sKHAubmFtZSl9PC9hPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+KCR7dGhpcy5mb3JtYXRGaWxlU2l6ZShwLnNpemUpfSk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YCkuam9pbigiIil9PC9kaXY+YDoiIjtkZWZhdWx0OnJldHVybmA8cD4ke2F9PC9wPmB9fSkuZmlsdGVyKHQ9PnQhPT0iIikuam9pbihgCmApfXN0YXRpYyBnZXRNYXJrZG93bk91dHB1dChlKXtyZXR1cm4gZS5tYXAodD0+e3N3aXRjaCh0LnR5cGUpe2Nhc2UicGFyYWdyYXBoIjpyZXR1cm4gdC5jb250ZW50O2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gIyAke3QuY29udGVudH1gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gIyMgJHt0LmNvbnRlbnR9YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYCMjIyAke3QuY29udGVudH1gO2Nhc2UicXVvdGUiOnJldHVybmA+ICR7dC5jb250ZW50fWA7Y2FzZSJjb2RlIjpyZXR1cm5gXGBcYFxgCiR7dC5jb250ZW50fQpcYFxgXGBgO2Nhc2UibGlzdCI6bGV0IGE9dC5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGQ9PmQudHJpbSgpKTtyZXR1cm4gdC5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/YS5tYXAoKGQsdSk9PmAke3UrMX0uICR7ZH1gKS5qb2luKGAKYCk6YS5tYXAoZD0+YC0gJHtkfWApLmpvaW4oYApgKTtjYXNlImRpdmlkZXIiOnJldHVybiItLS0iO2Nhc2UiaW1hZ2UiOmxldCByPXQubWV0YWRhdGE/LnVybCxuPXQuY29udGVudHx8IkltYWdlIjtyZXR1cm4gcj9gIVske259XSgke3J9KWA6IiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz10Lm1ldGFkYXRhPy52aWRlb0lkLGw9dC5tZXRhZGF0YT8udXJsfHwobz9gaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PSR7b31gOiIiKTtyZXR1cm4gbD9gW1lvdVR1YmUgVmlkZW9dKCR7bH0pYDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm4gdC5jb250ZW50O2Nhc2UiaHRtbCI6cmV0dXJuYDwhLS0gSFRNTCBCbG9jawoke3QuY29udGVudH0KLS0+YDtjYXNlImF0dGFjaG1lbnQiOmxldCBwPXQubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gcC5sZW5ndGg+MD9wLm1hcChkPT5gLSBbJHtkLm5hbWV9XSgke2QuZGF0YX0pYCkuam9pbihgCmApOiIiO2RlZmF1bHQ6cmV0dXJuIHQuY29udGVudH19KS5maWx0ZXIodD0+dCE9PSIiKS5qb2luKGAKCmApfXN0YXRpYyBwYXJzZUh0bWxUb0Jsb2NrcyhlKXtsZXQgYT1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsInRleHQvaHRtbCIpLHI9W10sbj1pKG89PntpZihvLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJm8udGV4dENvbnRlbnQ/LnRyaW0oKSlyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6by50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IGw9byxwPWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChwKXtjYXNlInAiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6bC50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgdT1BcnJheS5mcm9tKGwucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGI9PmIuaW5uZXJIVE1MfHwiIikuam9pbihgCmApO3IucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6dSxtZXRhZGF0YTp7bGlzdFR5cGU6cD09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBjPWw7ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6Yy5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6Yy5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpsLmNoaWxkTm9kZXMuZm9yRWFjaChiPT5uKGIpKX19fSwicHJvY2Vzc05vZGUiKTtyZXR1cm4gYS5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChvPT5uKG8pKSxyfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3MoZSl7bGV0IHQ9ZS5zcGxpdChgCmApLGE9W10scj1bXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IG89dFtuXTtpZihvLnN0YXJ0c1dpdGgoIiMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om8uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjICIpKWEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpvLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCIjIyMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50Om8uc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIj4gIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiYGBgIikpe2xldCBsPVtdO2ZvcihuKys7bjx0Lmxlbmd0aCYmIXRbbl0uc3RhcnRzV2l0aCgiYGBgIik7KWwucHVzaCh0W25dKSxuKys7YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLmpvaW4oYApgKX0pfWVsc2UgaWYoby5tYXRjaCgvXihcKnwtKSAvKSlyLnB1c2goby5zdWJzdHJpbmcoMikpLChuPT09dC5sZW5ndGgtMXx8IXRbbisxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OnIuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxyPVtdKTtlbHNlIGlmKG8ubWF0Y2goL15cZCtcLiAvKSlyLnB1c2goby5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChuPT09dC5sZW5ndGgtMXx8IXRbbisxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKGEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6ci5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxyPVtdKTtlbHNlIGlmKG89PT0iLS0tInx8bz09PSIqKioifHxvPT09Il9fXyIpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKG8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgbD1vLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtsJiZhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpsWzFdfHwiIixtZXRhZGF0YTp7dXJsOmxbMl19fSl9ZWxzZSBvLnRyaW0oKSYmYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om99KX1yZXR1cm4gYX19fSk7dmFyIG1uLFJ1PWcoKCk9PntwZSgpO0xsKCk7em50KCk7bW49Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrcyIpfXN0YXRpYyByZW5kZXJMaXN0Q29udGVudChlLHQpe2xldCBhPWUuc3BsaXQoYApgKS5maWx0ZXIobj0+bi50cmltKCkpO2lmKGEubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgcj10Py5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke3J9PiR7YS5tYXAobj0+YDxsaT4ke259PC9saT5gKS5qb2luKCIiKX08LyR7cn0+YH1zdGF0aWMgcmVuZGVyQmxvY2soZSx0LGEpe2lmKGUudHlwZT09PSJkaXZpZGVyIilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgZGl2aWRlciIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgPgogICAgICAgICAgPGhyPgogICAgICAgIDwvZGl2PgogICAgICBgO2lmKGUudHlwZT09PSJsaXN0IilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgbGlzdCAke3Q/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgQG1vdXNldXA9IiR7bj0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG4pfX0iCiAgICAgICAgICAuaW5uZXJIVE1MPSIke3RoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpfSIKICAgICAgICA+PC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09ImNvZGUiKXtsZXQgbj1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InBsYWluIHRleHQiO3JldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGFuZ3VhZ2UiPiR7bn08L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke3Q/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICAgICAgQG1vdXNldXA9IiR7bz0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG8pfX0iCiAgICAgICAgICAgIC50ZXh0Q29udGVudD0iJHtlLmNvbnRlbnR8fCIifSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke2UudHlwZX0gJHt0PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobil9fSIKICAgICAgICAuaW5uZXJIVE1MPSIke2UuY29udGVudHx8IiJ9IgogICAgICA+PC9kaXY+CiAgICBgfXN0YXRpYyBzZXRDdXJzb3JUb0VuZChlKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXQpcmV0dXJuO2xldCBhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApe2xldCByPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKTtlLmFwcGVuZENoaWxkKHIpLGEuc2V0U3RhcnQociwxKSxhLmNvbGxhcHNlKCEwKX1lbHNle2xldCByPXRoaXMuZ2V0TGFzdE5vZGUoZSk7ci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2Euc2V0U3RhcnQocixyLnRleHRDb250ZW50Py5sZW5ndGh8fDApOmEuc2V0U3RhcnRBZnRlcihyKSxhLmNvbGxhcHNlKCEwKX10LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoYSksZS50ZXh0Q29udGVudD09PSJcdTIwMEIiJiYoZS50ZXh0Q29udGVudD0iIil9c3RhdGljIHNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCF0KXJldHVybjtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKWEuc2V0U3RhcnQoZSwwKSxhLmNvbGxhcHNlKCEwKTtlbHNle2xldCByPXRoaXMuZ2V0Rmlyc3ROb2RlKGUpO3Iubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9hLnNldFN0YXJ0KHIsMCk6YS5zZXRTdGFydEJlZm9yZShyKSxhLmNvbGxhcHNlKCEwKX10LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoYSl9c3RhdGljIGdldExhc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCB0PWUuY2hpbGROb2Rlc1tlLmNoaWxkTm9kZXMubGVuZ3RoLTFdO3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHQuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3Q6dGhpcy5nZXRMYXN0Tm9kZSh0KX1zdGF0aWMgZ2V0Rmlyc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCB0PWUuY2hpbGROb2Rlc1swXTtyZXR1cm4gdC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFfHx0LmNoaWxkTm9kZXMubGVuZ3RoPT09MD90OnRoaXMuZ2V0Rmlyc3ROb2RlKHQpfXN0YXRpYyBmb2N1c0xpc3RJdGVtKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigibGkiKTtpZih0KXt0LmZvY3VzKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxyPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTthLnNlbGVjdE5vZGVDb250ZW50cyh0KSxhLmNvbGxhcHNlKCEwKSxyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoYSl9fX19KTt2YXIgajFlLENudD1nKCgpPT57TGwoKTtTeCgpO1pnKCk7UnUoKTtqMWU9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyIpfWNvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIsdD0iIixhKXtyZXR1cm57aWQ6SXIuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6dCwuLi5hJiZ7bWV0YWRhdGE6YX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSx0LGE9ITApe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrcyxuPXIuZmluZEluZGV4KG89Pm8uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLnIuc2xpY2UoMCxuKzEpLHQsLi4uci5zbGljZShuKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbz10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihvKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQodCk7by5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxhJiZ0LnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayh0LmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcih0PT50LmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IHQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7dCYmdC5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQodD0+dC5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgodD0+dC5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSx0PSJzdGFydCIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKGEpe2xldCByPWEucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7ciYmKGF3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSksci5mb2N1c1dpdGhDdXJzb3IodCkpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSx0KXtsZXQgYT10aGlzLmZpbmRCbG9jayhlKTthJiYoYS5jb250ZW50PXQsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSx0LGEpe2xldCByPXRoaXMuZmluZEJsb2NrKGUpO3ImJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxyLnR5cGU9dCxyLmNvbnRlbnQ9IiIsYSYmKHIubWV0YWRhdGE9YSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLHQpe2xldCBhPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHI9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKHI9PT0tMXx8dDwwfHx0Pj1hLmxlbmd0aClyZXR1cm47bGV0W25dPWEuc3BsaWNlKHIsMSk7YS5zcGxpY2UodCwwLG4pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1hLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ+MD90aGlzLmNvbXBvbmVudC5ibG9ja3NbdC0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1t0KzFdOm51bGx9fX0pO3ZhciBnaSxuYz1nKCgpPT57Z2k9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZUJsb2NrSGFuZGxlciIpfXNldHVwKGUsdCxhKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciBBcyxldmE9ZygoKT0+e0FzPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJsb2NrUmVnaXN0cnkiKX1zdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSx0KXt0aGlzLmhhbmRsZXJzLnNldChlLHQpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciB0dmE9ZygoKT0+e30pO3ZhciBQUSxhdmE9ZygoKT0+e25jKCk7cGUoKTtSdSgpO1hkKCk7UFE9Y2xhc3MgZXh0ZW5kcyBnaXtzdGF0aWN7aSh0aGlzLCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIiKX10eXBlPSJwYXJhZ3JhcGgiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcGFyYWdyYXBoJHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcil7Y29uc29sZS5lcnJvcigiUGFyYWdyYXBoQmxvY2tIYW5kbGVyLnNldHVwOiBObyBwYXJhZ3JhcGggYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn10LmNvbnRlbnQmJiFyLmlubmVySFRNTCYmKHIuaW5uZXJIVE1MPXQuY29udGVudCksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25LZXlEb3duKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnthLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2Eub25Db21wb3NpdGlvblN0YXJ0KCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2Eub25Db21wb3NpdGlvbkVuZCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbk1vdXNlVXA/LihuKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxyLHQpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHQsYSl7bGV0IHI9aSgoKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9by50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBwPXQuZ2V0Um9vdE5vZGUoKS5ob3N0LHU9cD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsYz1wPy5zaGFkb3dSb290LGI9W107dSYmYi5wdXNoKHUpLGMmJmIucHVzaChjKTtsZXQgdj0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLmIpO2lmKCF2KXJldHVybjtsZXQgeD0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuc3RhcnRDb250YWluZXIpLG09JHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCx2LmVuZENvbnRhaW5lcik7aWYoeHx8bSl7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IGY9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyh2KSx5PWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDphLmlkLHJhbmdlOmYscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1yO2xldCBuPWUuY2xvc2VzdCgiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBQYXJhZ3JhcGggc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5wYXJhZ3JhcGggewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIn1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiZtbi5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7YSYmbW4uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiYkdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPSR0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoISR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIFFnLHN2YT1nKCgpPT57bmMoKTtwZSgpO1J1KCk7WGQoKTtRZz1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIkhlYWRpbmdCbG9ja0hhbmRsZXIiKX10eXBlO2xldmVsO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLmxldmVsPXBhcnNlSW50KGUuc3BsaXQoIi0iKVsxXSl9cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgaGVhZGluZy0ke3RoaXMubGV2ZWx9JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcil7Y29uc29sZS5lcnJvcigiSGVhZGluZ0Jsb2NrSGFuZGxlci5zZXR1cDogTm8gaGVhZGluZyBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PSR0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PSR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj0kdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suaGVhZGluZy0xIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMjRweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW46IDE2cHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UgMTpyZXR1cm4iSGVhZGluZyAxIjtjYXNlIDI6cmV0dXJuIkhlYWRpbmcgMiI7Y2FzZSAzOnJldHVybiJIZWFkaW5nIDMiO2RlZmF1bHQ6cmV0dXJuIkhlYWRpbmcifX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXIpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPXQsbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiZtbi5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7YSYmbW4uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxwPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO3Aubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChwLHAudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQocCxwLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMocCksbC5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShsKX19ci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHQ9PSJudW1iZXIiJiYkdC5zZXRDdXJzb3JQb3NpdGlvbihyLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QscD1bXTtvJiZwLnB1c2gobyksbCYmcC5wdXNoKGwpO2xldCBkPSR0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9aWYoISR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1hLnRleHRDb250ZW50fHwiIix6PU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCx6KSxhZnRlcjpNLnN1YnN0cmluZyh6KX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgYz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtjLnNldFN0YXJ0KGEsMCksYy5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksYi5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj1jLmNsb25lQ29udGVudHMoKSx4PWIuY2xvbmVDb250ZW50cygpLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5hcHBlbmRDaGlsZCh2KTtsZXQgZj1tLmlubmVySFRNTDttLmlubmVySFRNTD0iIixtLmFwcGVuZENoaWxkKHgpO2xldCB5PW0uaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZixhZnRlcjp5fX19fSk7dmFyIElRLGl2YT1nKCgpPT57bmMoKTtwZSgpO1J1KCk7WGQoKTtJUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIlF1b3RlQmxvY2tIYW5kbGVyIil9dHlwZT0icXVvdGUiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IGE9dD8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcXVvdGUke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3J9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIlF1b3RlQmxvY2tIYW5kbGVyLnNldHVwOiBObyBxdW90ZSBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dC5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxhKXtsZXQgcj1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IHA9dC5nZXRSb290Tm9kZSgpLmhvc3QsdT1wPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxjPXA/LnNoYWRvd1Jvb3QsYj1bXTt1JiZiLnB1c2godSksYyYmYi5wdXNoKGMpO2xldCB2PSR0LmdldFNlbGVjdGlvbkluZm8oLi4uYik7aWYoIXYpcmV0dXJuO2xldCB4PSR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksbT0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxtKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZj0kdC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZixyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IG49dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybiBudWxsO2xldCBvPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LHA9W107byYmcC5wdXNoKG8pLGwmJnAucHVzaChsKTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCFkfHwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhhKSx1LnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtsZXQgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cjtyLmlubmVySFRNTD10LG4mJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZtbi5zZXRDdXJzb3JUb1N0YXJ0KGEpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTthJiZtbi5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybjtyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksci5mb2N1cygpO2xldCBuPWkoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxhKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlLGEpOnR5cGVvZiB0PT0ibnVtYmVyIiYmJHQuc2V0Q3Vyc29yUG9zaXRpb24ocix0KX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz10Py5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9dD8uc2hhZG93Um9vdCxwPVtdO28mJnAucHVzaChvKSxsJiZwLnB1c2gobCk7bGV0IGQ9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1pZighJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWEudGV4dENvbnRlbnR8fCIiLHo9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLHopLGFmdGVyOk0uc3Vic3RyaW5nKHopfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUsdCk7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksYj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Muc2V0U3RhcnQoYSwwKSxjLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGIuc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxiLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCB2PWMuY2xvbmVDb250ZW50cygpLHg9Yi5jbG9uZUNvbnRlbnRzKCksbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTttLmFwcGVuZENoaWxkKHYpO2xldCBmPW0uaW5uZXJIVE1MO20uaW5uZXJIVE1MPSIiLG0uYXBwZW5kQ2hpbGQoeCk7bGV0IHk9bS5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpmLGFmdGVyOnl9fX19KTt2YXIgVDIsJDIsVG50PWcoKCk9PntUMj17eHRlcm06IjUuMy4wIix4dGVybUFkZG9uRml0OiIwLjguMCIseHRlcm1BZGRvblNlYXJjaDoiMC4xMy4wIixoaWdobGlnaHRKczoiMTEuMTEuMSIsZWNoYXJ0czoiNS42LjAiLGxpZ2h0d2VpZ2h0Q2hhcnRzOiI1LjEuMCIsdGlwdGFwOiIyLjI3LjIiLGZvbnRhd2Vzb21lOiI3LjIuMCJ9LCQyPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtIn0pO3ZhciBhbyxydmE9ZygoKT0+e1RudCgpO2FvPWNsYXNzIHN7c3RhdGlje2kodGhpcywiRGVlc1NlcnZpY2VMaWJMb2FkZXIiKX1zdGF0aWMgaW5zdGFuY2U7eHRlcm1MaWI9bnVsbDt4dGVybUZpdEFkZG9uTGliPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxpYj1udWxsO2hpZ2hsaWdodEpzTGliPW51bGw7bGlnaHR3ZWlnaHRDaGFydHNMaWI9bnVsbDtlY2hhcnRzTGliPW51bGw7dGlwdGFwTGliPW51bGw7eHRlcm1Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO2hpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9bnVsbDtsaWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7ZWNoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7dGlwdGFwTG9hZGluZ1Byb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gcy5pbnN0YW5jZXx8KHMuaW5zdGFuY2U9bmV3IHMpLHMuaW5zdGFuY2V9YXN5bmMgbG9hZFh0ZXJtKCl7cmV0dXJuIHRoaXMueHRlcm1MaWI/dGhpcy54dGVybUxpYjp0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybUxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7JDJ9L3h0ZXJtQCR7VDIueHRlcm19Lytlc21gKTtyZXR1cm4gYXdhaXQgdGhpcy5pbmplY3RYdGVybVN0eWxlcygpLHRoaXMueHRlcm1MaWI9e1Rlcm1pbmFsOnQuVGVybWluYWx9LHRoaXMueHRlcm1MaWJ9KSgpLHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFh0ZXJtRml0QWRkb24oKXtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliP3RoaXMueHRlcm1GaXRBZGRvbkxpYjp0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7JDJ9L3h0ZXJtLWFkZG9uLWZpdEAke1QyLnh0ZXJtQWRkb25GaXR9Lytlc21gKTtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliPXtGaXRBZGRvbjp0LkZpdEFkZG9ufSx0aGlzLnh0ZXJtRml0QWRkb25MaWJ9KSgpLHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1TZWFyY2hBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI/dGhpcy54dGVybVNlYXJjaEFkZG9uTGliOnRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHskMn0veHRlcm0tYWRkb24tc2VhcmNoQCR7VDIueHRlcm1BZGRvblNlYXJjaH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI9e1NlYXJjaEFkZG9uOnQuU2VhcmNoQWRkb259LHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYn0pKCksdGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzKCl7bGV0IGU9Inh0ZXJtLWNkbi1zdHlsZXMiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKXJldHVybjtsZXQgdD1gJHskMn0veHRlcm1AJHtUMi54dGVybX0vY3NzL3h0ZXJtLmNzc2Ascj1hd2FpdChhd2FpdCBmZXRjaCh0KSkudGV4dCgpLG49YAovKiBGaXggeHRlcm0uanMgV2lkdGhDYWNoZSBtZWFzdXJlbWVudCBjb250YWluZXIgY2F1c2luZyBob3Jpem9udGFsIHNjcm9sbGJhciAqLwovKiB4dGVybSBjcmVhdGVzIHRoaXMgb24gZG9jdW1lbnQuYm9keSAtIG1vdmUgaXQgb2ZmLXNjcmVlbiBob3Jpem9udGFsbHkgdG9vICovCmJvZHkgPiBkaXZbc3R5bGUqPSJ0b3A6IC01MDAwMHB4Il1bc3R5bGUqPSJ3aWR0aDogNTAwMDBweCJdIHsKICBsZWZ0OiAtNTAwMDBweCAhaW1wb3J0YW50Owp9CmAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO28uaWQ9ZSxvLnRleHRDb250ZW50PXIrbixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pfWFzeW5jIGxvYWRIaWdobGlnaHRKcygpe3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliP3RoaXMuaGlnaGxpZ2h0SnNMaWI6dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlP3RoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZToodGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAkeyQyfS9oaWdobGlnaHQuanNAJHtUMi5oaWdobGlnaHRKc30vK2VzbWApO3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliPXQuZGVmYXVsdCx0aGlzLmhpZ2hsaWdodEpzTGlifSkoKSx0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRMaWdodHdlaWdodENoYXJ0cygpe3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI6dGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAkeyQyfS9saWdodHdlaWdodC1jaGFydHNAJHtUMi5saWdodHdlaWdodENoYXJ0c30vK2VzbWApO3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliPXtjcmVhdGVDaGFydDp0LmNyZWF0ZUNoYXJ0LEFyZWFTZXJpZXM6dC5BcmVhU2VyaWVzLExpbmVTZXJpZXM6dC5MaW5lU2VyaWVzLENvbG9yVHlwZTp0LkNvbG9yVHlwZSxMaW5lVHlwZTp0LkxpbmVUeXBlLENyb3NzaGFpck1vZGU6dC5Dcm9zc2hhaXJNb2RlfSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGlifSkoKSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRFY2hhcnRzKCl7cmV0dXJuIHRoaXMuZWNoYXJ0c0xpYj90aGlzLmVjaGFydHNMaWI6dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U6KHRoaXMuZWNoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAkeyQyfS9lY2hhcnRzQCR7VDIuZWNoYXJ0c30vZGlzdC9lY2hhcnRzLmVzbS5taW4uanNgKTtyZXR1cm4gdGhpcy5lY2hhcnRzTGliPXtpbml0OnQuaW5pdCxkaXNwb3NlOnQuZGlzcG9zZSxnZXRJbnN0YW5jZUJ5RG9tOnQuZ2V0SW5zdGFuY2VCeURvbX0sdGhpcy5lY2hhcnRzTGlifSkoKSx0aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFRpcHRhcCgpe3JldHVybiB0aGlzLnRpcHRhcExpYj90aGlzLnRpcHRhcExpYjp0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlP3RoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U6KHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXRbZSx0LGEscixuLG9dPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaWkoKSxLYXQpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4obnN0KCksb3N0KSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGRzdCgpLGNzdCkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pihoc3QoKSxwc3QpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oRnN0KCksT3N0KSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGRpdCgpLGNpdCkpXSk7cmV0dXJuIHRoaXMudGlwdGFwTGliPXtFZGl0b3I6ZS5FZGl0b3IsU3RhcnRlcktpdDp0LmRlZmF1bHR8fHQuU3RhcnRlcktpdCxVbmRlcmxpbmU6YS5kZWZhdWx0fHxhLlVuZGVybGluZSxUZXh0QWxpZ246ci5kZWZhdWx0fHxyLlRleHRBbGlnbixMaW5rOm4uZGVmYXVsdHx8bi5MaW5rLFR5cG9ncmFwaHk6by5kZWZhdWx0fHxvLlR5cG9ncmFwaHl9LHRoaXMudGlwdGFwTGlifSkoKSx0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlKX1hc3luYyBwcmVsb2FkQWxsKCl7YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZFh0ZXJtKCksdGhpcy5sb2FkWHRlcm1GaXRBZGRvbigpLHRoaXMubG9hZFh0ZXJtU2VhcmNoQWRkb24oKSx0aGlzLmxvYWRIaWdobGlnaHRKcygpLHRoaXMubG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCksdGhpcy5sb2FkRWNoYXJ0cygpLHRoaXMubG9hZFRpcHRhcCgpXSl9aXNMb2FkZWQoZSl7c3dpdGNoKGUpe2Nhc2UieHRlcm0iOnJldHVybiB0aGlzLnh0ZXJtTGliIT09bnVsbDtjYXNlInh0ZXJtRml0QWRkb24iOnJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWIhPT1udWxsO2Nhc2UieHRlcm1TZWFyY2hBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYiE9PW51bGw7Y2FzZSJoaWdobGlnaHRKcyI6cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWIhPT1udWxsO2Nhc2UibGlnaHR3ZWlnaHRDaGFydHMiOnJldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliIT09bnVsbDtjYXNlImVjaGFydHMiOnJldHVybiB0aGlzLmVjaGFydHNMaWIhPT1udWxsO2Nhc2UidGlwdGFwIjpyZXR1cm4gdGhpcy50aXB0YXBMaWIhPT1udWxsO2RlZmF1bHQ6cmV0dXJuITF9fX19KTt2YXIgT3U9ZygoKT0+e3J2YSgpO1RudCgpfSk7dmFyIEFRLG92YT1nKCgpPT57bmMoKTtwZSgpO1hkKCk7RXIoKTtxMWUoKTtPdSgpO0FRPWNsYXNzIGV4dGVuZHMgZ2l7c3RhdGlje2kodGhpcywiQ29kZUJsb2NrSGFuZGxlciIpfXR5cGU9ImNvZGUiO2hpZ2hsaWdodFRpbWVyPW51bGw7aGlnaGxpZ2h0SnM9bnVsbDtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiLHI9ZS5jb250ZW50fHwiIixuPXIuc3BsaXQoYApgKS5sZW5ndGgsbz0iIjtmb3IobGV0IHA9MTtwPD1uO3ArKylvKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7cH08L2Rpdj5gO2xldCBsPUgxZS5tYXAocD0+e2xldCBkPXAudG9Mb3dlckNhc2UoKTtyZXR1cm5gPG9wdGlvbiB2YWx1ZT0iJHtkfSIgJHtkPT09YT8ic2VsZWN0ZWQiOiIifT4ke3B9PC9vcHRpb24+YH0pLmpvaW4oIiIpO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWxhbmd1YWdlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWhlYWRlciI+CiAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciIgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSI+CiAgICAgICAgICAgICR7bH0KICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29weS1idXR0b24iIHRpdGxlPSJDb3B5IGNvZGUiPgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJjb3B5LWljb24iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wIDYuNzVDMCA1Ljc4NC43ODQgNSAxLjc1IDVoMS41YS43NS43NSAwIDAxMCAxLjVoLTEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtMS41YS43NS43NSAwIDAxMS41IDB2MS41QTEuNzUgMS43NSAwIDAxOS4yNSAxNmgtNy41QTEuNzUgMS43NSAwIDAxMCAxNC4yNXYtNy41eiI+PC9wYXRoPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEuNzVDNSAuNzg0IDUuNzg0IDAgNi43NSAwaDcuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTFoLTcuNUExLjc1IDEuNzUgMCAwMTUgOS4yNXYtNy41em0xLjc1LS4yNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtNy41YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTcuNXoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRleHQiPkNvcHk8L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZS1udW1iZXJzIj4ke299PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWNvbnRlbnQiPgogICAgICAgICAgICA8cHJlIGNsYXNzPSJjb2RlLXByZSI+PGNvZGUgY2xhc3M9ImNvZGUtZWRpdG9yIiAKICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwocil9PC9jb2RlPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKSxuPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtYmxvY2stY29udGFpbmVyIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LWJ1dHRvbiIpLGw9ZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2Utc2VsZWN0b3IiKTtpZighcnx8IW4pcmV0dXJuO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixkPT57bGV0IHU9ZC50YXJnZXQudmFsdWU7dC5tZXRhZGF0YT17Li4udC5tZXRhZGF0YSxsYW5ndWFnZTp1fSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1sYW5ndWFnZSIsdSksdC5jb250ZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHQpLGEub25JbnB1dCYmYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKX0pLG8mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntsZXQgZD1yLnRleHRDb250ZW50fHwiIjt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCk7bGV0IHU9by5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksYz11LnRleHRDb250ZW50O3UudGV4dENvbnRlbnQ9IkNvcGllZCEiLG8uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e3UudGV4dENvbnRlbnQ9YyxvLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKHUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5OiIsdSk7bGV0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtjLnZhbHVlPWQsYy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGMuc3R5bGUub3BhY2l0eT0iMCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKSxjLnNlbGVjdCgpO3RyeXtkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpO2xldCBiPW8ucXVlcnlTZWxlY3RvcigiLmNvcHktdGV4dCIpLHY9Yi50ZXh0Q29udGVudDtiLnRleHRDb250ZW50PSJDb3BpZWQhIixvLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoKCk9PntiLnRleHRDb250ZW50PXYsby5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX1jYXRjaChiKXtjb25zb2xlLmVycm9yKCJGYWxsYmFjayBjb3B5IGZhaWxlZDoiLGIpfWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYyl9fSk7bGV0IHA9ITE7ci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntwPSEwLG4uY2xhc3NMaXN0LmFkZCgiZWRpdGluZyIpO2xldCBkPXIudGV4dENvbnRlbnR8fCIiO3IudGV4dENvbnRlbnQ9ZCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9d2luZG93LmdldFNlbGVjdGlvbigpO3IuZmlyc3RDaGlsZCYmKHUuc2V0U3RhcnQoci5maXJzdENoaWxkLDApLHUuY29sbGFwc2UoITApLGM/LnJlbW92ZUFsbFJhbmdlcygpLGM/LmFkZFJhbmdlKHUpKX0pLGEub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3A9ITEsbi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHQpLGEub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixkPT57YS5vbklucHV0KGQpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSksY2xlYXJUaW1lb3V0KHRoaXMuaGlnaGxpZ2h0VGltZXIpfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixkPT57aWYoZC5rZXk9PT0iVGFiIil7ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZih1JiZ1LnJhbmdlQ291bnQ+MCl7bGV0IGM9dS5nZXRSYW5nZUF0KDApLGI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAgIik7Yy5pbnNlcnROb2RlKGIpLGMuc2V0U3RhcnRBZnRlcihiKSxjLnNldEVuZEFmdGVyKGIpLHUucmVtb3ZlQWxsUmFuZ2VzKCksdS5hZGRSYW5nZShjKSxhLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSl9cmV0dXJufWlmKFsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhkLmtleSkpe2xldCB1PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSksYz1yLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoZC5rZXk9PT0iQXJyb3dMZWZ0IiYmdT09PTB8fGQua2V5PT09IkFycm93UmlnaHQiJiZ1PT09Yyl7YS5vbktleURvd24oZCk7cmV0dXJufWlmKGQua2V5PT09IkFycm93VXAifHxkLmtleT09PSJBcnJvd0Rvd24iKXtsZXQgYj0oci50ZXh0Q29udGVudHx8IiIpLnNwbGl0KGAKYCksdj10aGlzLmdldEN1cnJlbnRMaW5lSW5kZXgocik7aWYoZC5rZXk9PT0iQXJyb3dVcCImJnY9PT0wfHxkLmtleT09PSJBcnJvd0Rvd24iJiZ2PT09Yi5sZW5ndGgtMSl7YS5vbktleURvd24oZCk7cmV0dXJufX19YS5vbktleURvd24oZCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PWQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgidGV4dC9wbGFpbiIpO2lmKHUpe2xldCBjPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjJiZjLnJhbmdlQ291bnQ+MCl7bGV0IGI9Yy5nZXRSYW5nZUF0KDApO2IuZGVsZXRlQ29udGVudHMoKTtsZXQgdj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh1KTtiLmluc2VydE5vZGUodiksYi5zZXRTdGFydEFmdGVyKHYpLGIuc2V0RW5kQWZ0ZXIodiksYy5yZW1vdmVBbGxSYW5nZXMoKSxjLmFkZFJhbmdlKGIpLGEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKX19fSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+YS5vbkNvbXBvc2l0aW9uU3RhcnQoKSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PmEub25Db21wb3NpdGlvbkVuZCgpKSx0LmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1yJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsdCl9KX11cGRhdGVMaW5lTnVtYmVycyhlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIubGluZS1udW1iZXJzIik7aWYoIXR8fCFhKXJldHVybjtsZXQgbz0odC50ZXh0Q29udGVudHx8IiIpLnNwbGl0KGAKYCkubGVuZ3RofHwxLGw9IiI7Zm9yKGxldCBwPTE7cDw9bztwKyspbCs9YDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVyIj4ke3B9PC9kaXY+YDthLmlubmVySFRNTD1sfWdldEN1cnJlbnRMaW5lSW5kZXgoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCF0fHx0LnJhbmdlQ291bnQ9PT0wKXJldHVybiAwO2xldCBhPXQuZ2V0UmFuZ2VBdCgwKSxyPWEuY2xvbmVSYW5nZSgpO3JldHVybiByLnNlbGVjdE5vZGVDb250ZW50cyhlKSxyLnNldEVuZChhLnN0YXJ0Q29udGFpbmVyLGEuc3RhcnRPZmZzZXQpLHIudG9TdHJpbmcoKS5zcGxpdChgCmApLmxlbmd0aC0xfWFzeW5jIGFwcGx5SGlnaGxpZ2h0aW5nKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighYSlyZXR1cm47dGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgYW8uZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHI9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKSxuPWEudGV4dENvbnRlbnR8fCIiLG89dC5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJ0eXBlc2NyaXB0Ijt0cnl7bGV0IGw9dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQobix7bGFuZ3VhZ2U6byxpZ25vcmVJbGxlZ2FsczohMH0pO2wudmFsdWUmJihhLmlubmVySFRNTD1sLnZhbHVlLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiZyIT09bnVsbCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57JHQuc2V0Q3Vyc29yUG9zaXRpb24oYSxyKX0pKX1jYXRjaChsKXtjb25zb2xlLndhcm4oIlN5bnRheCBoaWdobGlnaHRpbmcgZmFpbGVkOiIsbCl9fWVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1nZXRDb250ZW50KGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy50ZXh0Q29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoYSYmKGEudGV4dENvbnRlbnQ9dCx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hKSl7bGV0IHI9e2lkOmEuZGF0YXNldC5ibG9ja0lkfHwiIix0eXBlOiJjb2RlIixjb250ZW50OnQsbWV0YWRhdGE6e2xhbmd1YWdlOmUucXVlcnlTZWxlY3RvcigiLmNvZGUtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1sYW5ndWFnZSIpfHwidHlwZXNjcmlwdCJ9fTt0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUscil9fWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhfHxhLnJhbmdlQ291bnQ9PT0wKXJldHVybiBudWxsO2xldCByPWEuZ2V0UmFuZ2VBdCgwKTtpZighdC5jb250YWlucyhyLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgbj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBuLnNlbGVjdE5vZGVDb250ZW50cyh0KSxuLnNldEVuZChyLnN0YXJ0Q29udGFpbmVyLHIuc3RhcnRPZmZzZXQpLG4udG9TdHJpbmcoKS5sZW5ndGh9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO3QmJiR0LnNldEN1cnNvclBvc2l0aW9uKHQsMCl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZih0KXtsZXQgYT10LnRleHRDb250ZW50Py5sZW5ndGh8fDA7JHQuc2V0Q3Vyc29yUG9zaXRpb24odCxhKX19Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2EmJihhLmZvY3VzKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiB0PT0ibnVtYmVyIiYmJHQuc2V0Q3Vyc29yUG9zaXRpb24oYSx0KX0pKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IHQ9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtpZih0PT09bnVsbClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLmdldENvbnRlbnQoZSk7cmV0dXJue2JlZm9yZTphLnN1YnN0cmluZygwLHQpLGFmdGVyOmEuc3Vic3RyaW5nKHQpfX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIENvZGUgQmxvY2sgQ29udGFpbmVyIC0gTWluaW1hbGlzdCBzaGFkY24gc3R5bGUgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgLSBTaW1wbGlmaWVkICovCiAgICAgIC5jb2RlLWhlYWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yOmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29weSBCdXR0b24gLSBNaW5pbWFsICovCiAgICAgIC5jb3B5LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uLmNvcGllZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgLmNvcHktaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktdGV4dCB7CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLyogQ29kZSBCb2R5ICovCiAgICAgIC5jb2RlLWJvZHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogTGluZSBOdW1iZXJzIC0gU3VidGxlICovCiAgICAgIC5saW5lLW51bWJlcnMgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICB9CiAgICAgIAogICAgICAubGluZS1udW1iZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweCAwIDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JnfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIENvbnRlbnQgKi8KICAgICAgLmNvZGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtcHJlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JnfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFBsYWNlaG9sZGVyICovCiAgICAgIC5jb2RlLWVkaXRvcjplbXB0eTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAiLy8gVHlwZSBvciBwYXN0ZSBjb2RlIGhlcmUuLi4iOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFdoZW4gZWRpdGluZyAoZm9jdXNlZCksIHNob3cgZ3JleSB0ZXh0IHdpdGhvdXQgaGlnaGxpZ2h0aW5nICovCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfSAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyAuY29kZS1lZGl0b3IgKiB7CiAgICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLyogU3ludGF4IEhpZ2hsaWdodGluZyAtIE11dGVkIGNvbG9ycyAqLwogICAgICAuY29kZS1lZGl0b3IgLmhsanMta2V5d29yZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc3RyaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbnVtYmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtZnVuY3Rpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jb21tZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXZhcmlhYmxlLAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0ciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNsYXNzLAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGl0bGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXBhcmFtcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbGl0ZXJhbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLW1ldGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1wdW5jdHVhdGlvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2QxZDVkYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRhZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWF0dHJpYnV0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLXRhZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWNsYXNzIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItaWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNlbGVjdGlvbiAqLwogICAgICAuY29kZS1lZGl0b3I6OnNlbGVjdGlvbiwKICAgICAgLmNvZGUtZWRpdG9yICo6OnNlbGVjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoOTksIDEwMiwgMjQxLCAwLjIpIiwicmdiYSg5OSwgMTAyLCAyNDEsIDAuMykiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nIC0gTWluaW1hbCAqLwogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgIGB9fX0pO3ZhciBOUSxudmE9ZygoKT0+e25jKCk7cGUoKTtSdSgpO1hkKCk7TlE9Y2xhc3MgZXh0ZW5kcyBnaXtzdGF0aWN7aSh0aGlzLCJMaXN0QmxvY2tIYW5kbGVyIil9dHlwZT0ibGlzdCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSx0KXtsZXQgYT10PyIgc2VsZWN0ZWQiOiIiLG49KGUubWV0YWRhdGE/Lmxpc3RUeXBlfHwidW5vcmRlcmVkIik9PT0ib3JkZXJlZCI/Im9sIjoidWwiLG89dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIGxpc3Qke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+JHtvfTwvZGl2PgogICAgYH1yZW5kZXJMaXN0Q29udGVudChlLHQpe2lmKCFlKXJldHVybiI8dWw+PGxpPjwvbGk+PC91bD4iO2xldCByPSh0Py5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixuPWUuc3BsaXQoYApgKS5maWx0ZXIobD0+bC50cmltKCkpO2lmKG4ubGVuZ3RoPT09MClyZXR1cm5gPCR7cn0+PGxpPjwvbGk+PC8ke3J9PmA7bGV0IG89bi5tYXAobD0+YDxsaT4ke2x9PC9saT5gKS5qb2luKCIiKTtyZXR1cm5gPCR7cn0+JHtvfTwvJHtyfT5gfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkxpc3RCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIGxpc3QgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn10LmNvbnRlbnQmJiFyLmlubmVySFRNTCYmKHIuaW5uZXJIVE1MPXRoaXMucmVuZGVyTGlzdENvbnRlbnQodC5jb250ZW50LHQubWV0YWRhdGEpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtpZihvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksbi5rZXk9PT0iRW50ZXIiJiYhbi5zaGlmdEtleSl7bGV0IGw9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGwmJmwucmFuZ2VDb3VudD4wKXtsZXQgZD1sLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIucGFyZW50RWxlbWVudD8uY2xvc2VzdCgibGkiKTtpZihkJiZkLnRleHRDb250ZW50PT09IiIpe24ucHJldmVudERlZmF1bHQoKSxhLm9uS2V5RG93bihuKTtyZXR1cm59fX1hLm9uS2V5RG93bihuKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57YS5vbkZvY3VzKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXIoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PnthLm9uQ29tcG9zaXRpb25TdGFydCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PnthLm9uQ29tcG9zaXRpb25FbmQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25Nb3VzZVVwPy4obil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuPT57c2V0VGltZW91dCgoKT0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSwwKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscix0KX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSx0LGEpe2xldCByPWkoKCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBsPW8udG9TdHJpbmcoKTtpZihsLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgcD10LmdldFJvb3ROb2RlKCkuaG9zdCx1PXA/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGM9cD8uc2hhZG93Um9vdCxiPVtdO3UmJmIucHVzaCh1KSxjJiZiLnB1c2goYyk7bGV0IHY9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5iKTtpZighdilyZXR1cm47bGV0IHg9JHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCx2LnN0YXJ0Q29udGFpbmVyKSxtPSR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5lbmRDb250YWluZXIpO2lmKHh8fG0pe2lmKGwhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1sO2xldCBmPSR0LmNyZWF0ZVJhbmdlRnJvbUluZm8odikseT1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OmwudHJpbSgpLGJsb2NrSWQ6YS5pZCxyYW5nZTpmLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9cjtsZXQgbj10LmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrLGw9dGhpcztuLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7bC5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixsLnNlbGVjdGlvbkhhbmRsZXIpLGwuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxvJiZhd2FpdCBvLmNhbGwobil9fX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUsdCl7bGV0IGE9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnQsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChhKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIExpc3Qgc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5saXN0IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCB1bCwKICAgICAgLmJsb2NrLmxpc3Qgb2wgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iIn1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz10Py5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9dD8uc2hhZG93Um9vdCxwPVtdO28mJnAucHVzaChvKSxsJiZwLnB1c2gobCk7bGV0IGQ9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZHx8ISR0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdS5zZWxlY3ROb2RlQ29udGVudHMoYSksdS5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSx1LnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuIiI7bGV0IHI9YS5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO3JldHVybiBBcnJheS5mcm9tKHIpLm1hcChvPT5vLnRleHRDb250ZW50fHwiIikuam9pbihgCmApfXNldENvbnRlbnQoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcilyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXIsbD1yLnF1ZXJ5U2VsZWN0b3IoInVsLCBvbCIpPy50YWdOYW1lPT09Ik9MIjtyLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHQse2xpc3RUeXBlOmw/Im9yZGVyZWQiOiJ1bm9yZGVyZWQifSksbiYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuO2xldCByPWEucXVlcnlTZWxlY3RvcigibGkiKTtpZihyKXtsZXQgbj10aGlzLmdldEZpcnN0VGV4dE5vZGUocik7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtvLnNldFN0YXJ0KG4sMCksby5zZXRFbmQobiwwKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShvKX19fXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybjtsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoImxpOmxhc3QtY2hpbGQiKTtpZihyKXtsZXQgbj10aGlzLmdldExhc3RUZXh0Tm9kZShyKTtpZihuKXtsZXQgbz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGw9d2luZG93LmdldFNlbGVjdGlvbigpLHA9bi50ZXh0Q29udGVudD8ubGVuZ3RofHwwO28uc2V0U3RhcnQobixwKSxvLnNldEVuZChuLHApLGw/LnJlbW92ZUFsbFJhbmdlcygpLGw/LmFkZFJhbmdlKG8pfX19Z2V0Rmlyc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCB0PTA7dDxlLmNoaWxkTm9kZXMubGVuZ3RoO3QrKyl7bGV0IGE9dGhpcy5nZXRGaXJzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1mb2N1cyhlLHQpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTthJiYoYS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09YSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2EuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcilyZXR1cm47ci5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxyLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHIuZm9jdXMoKTtsZXQgbj1pKCgpPT57dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUsYSk6dD09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2YgdD09Im51bWJlciImJnRoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7cmV0dXJuIGUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKSxudWxsfX19KTt2YXIgUlEsbHZhPWcoKCk9PntuYygpO3BlKCk7UlE9Y2xhc3MgZXh0ZW5kcyBnaXtzdGF0aWN7aSh0aGlzLCJJbWFnZUJsb2NrSGFuZGxlciIpfXR5cGU9ImltYWdlIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy51cmwscj1lLmNvbnRlbnR8fCJJbWFnZSIsbj1lLm1ldGFkYXRhPy5sb2FkaW5nO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtYmxvY2stY29udGFpbmVyJHt0PyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy1pbWFnZT0iJHshIWF9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAke24/dGhpcy5yZW5kZXJMb2FkaW5nKCk6YT90aGlzLnJlbmRlckltYWdlKGEscik6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlLWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBhY2NlcHQ9ImltYWdlLyoiIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWljb24iIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iOC41IiBjeT0iOC41IiByPSIxLjUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjEgMTUgMTYgMTAgNSAyMSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPkNsaWNrIHRvIHVwbG9hZCBhbiBpbWFnZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1oaW50IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJJbWFnZShlLHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtY29udGFpbmVyIj4KICAgICAgICA8aW1nIHNyYz0iJHtlfSIgYWx0PSIke3RoaXMuZXNjYXBlSHRtbCh0KX0iIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMb2FkaW5nKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1sb2FkaW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+VXBsb2FkaW5nIGltYWdlLi4uPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1maWxlLWlucHV0Iik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBjb250YWluZXIiKTtyZXR1cm59aWYoIW4pe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBmaWxlIGlucHV0Iik7cmV0dXJufWxldCBvPXIucXVlcnlTZWxlY3RvcigiLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFBsYWNlaG9sZGVyIGNsaWNrZWQsIG9wZW5pbmcgZmlsZSBzZWxlY3RvciIpLG4uY2xpY2soKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5vbkZvY3VzKCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgbD0+e2xldCBkPWwudGFyZ2V0LmZpbGVzPy5bMF07ZCYmKGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogRmlsZSBzZWxlY3RlZDoiLGQubmFtZSksYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGQsdCxhKSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksdC5tZXRhZGF0YT8udXJsfHxyLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgcD1sLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07cCYmcC50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiYhdC5tZXRhZGF0YT8udXJsJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQocCx0LGEpfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntpZigobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJnQubWV0YWRhdGE/LnVybCl7dC5tZXRhZGF0YS51cmw9dm9pZCAwLHQubWV0YWRhdGEubG9hZGluZz0hMSx0LmNvbnRlbnQ9IiIsYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKTtyZXR1cm59YS5vbktleURvd24obCl9KX1hc3luYyBoYW5kbGVGaWxlVXBsb2FkKGUsdCxhKXtpZihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFN0YXJ0aW5nIGZpbGUgdXBsb2FkIix7ZmlsZU5hbWU6ZS5uYW1lLGZpbGVTaXplOmUuc2l6ZSxibG9ja0lkOnQuaWR9KSwhZS50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLGUudHlwZSk7cmV0dXJufWxldCByPTEwKjEwMjQqMTAyNDtpZihlLnNpemU+cil7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2UuIE1heGltdW0gc2l6ZSBpcyAxME1CIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmxvYWRpbmc9ITAsdC5tZXRhZGF0YS5maWxlTmFtZT1lLm5hbWUsdC5tZXRhZGF0YS5maWxlU2l6ZT1lLnNpemUsdC5tZXRhZGF0YS5taW1lVHlwZT1lLnR5cGUsY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTZXQgbG9hZGluZyBzdGF0ZSwgcmVxdWVzdGluZyB1cGRhdGUiKSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7dHJ5e2xldCBuPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChlKTt0Lm1ldGFkYXRhLnVybD1uLHQubWV0YWRhdGEubG9hZGluZz0hMTtsZXQgbz1lLm5hbWUucmVwbGFjZSgvXC5bXi8uXSskLywiIik7dC5jb250ZW50PW8sY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBVcGxvYWQgY29tcGxldGUsIHJlcXVlc3RpbmcgdXBkYXRlIix7aGFzVXJsOiEhdC5tZXRhZGF0YS51cmwsdXJsTGVuZ3RoOm4ubGVuZ3RoLGFsdFRleHQ6dC5jb250ZW50fSksYS5vblJlcXVlc3RVcGRhdGU/LigpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGxvYWQgaW1hZ2U6IixuKSx0Lm1ldGFkYXRhLmxvYWRpbmc9ITEsYS5vblJlcXVlc3RVcGRhdGU/LigpfX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgodCxhKT0+e2xldCByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPW49PntsZXQgbz1uLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBvPT0ic3RyaW5nIj90KG8pOmEobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxyLm9uZXJyb3I9YSxyLnJlYWRBc0RhdGFVUkwoZSl9KX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9dCl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBJbWFnZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBVcGxvYWQgUGxhY2Vob2xkZXIgKi8KICAgICAgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWZmNmZmIiwiIzFlMWI0YiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC1pY29uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEltYWdlIENvbnRhaW5lciAqLwogICAgICAuaW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExvYWRpbmcgU3RhdGUgKi8KICAgICAgLmltYWdlLWxvYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQogICAgICAKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQogICAgICAKICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgaW5wdXQgaGlkZGVuICovCiAgICAgIC5pbWFnZS1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBPUSxjdmE9ZygoKT0+e25jKCk7cGUoKTtPUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIllvdVR1YmVCbG9ja0hhbmRsZXIiKX10eXBlPSJ5b3V0dWJlIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy52aWRlb0lkLHI9ZS5tZXRhZGF0YT8udXJsfHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtYmxvY2stY29udGFpbmVyJHt0PyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy12aWRlbz0iJHshIWF9Ij4KICAgICAgICAke2E/dGhpcy5yZW5kZXJWaWRlbyhhKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKHIpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLXBsYWNlaG9sZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIj4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MTUgMy4xODRjLTMuNjA0LS4yNDYtMTEuNjMxLS4yNDUtMTUuMjMgMC0zLjg5Ny4yNjYtNC4zNTYgMi42Mi00LjM4NSA4LjgxNi4wMjkgNi4xODUuNDg0IDguNTQ5IDQuMzg1IDguODE2IDMuNi4yNDUgMTEuNjI2LjI0NiAxNS4yMyAwIDMuODk3LS4yNjYgNC4zNTYtMi42MiA0LjM4NS04LjgxNi0uMDI5LTYuMTg1LS40ODQtOC41NDktNC4zODUtOC44MTZ6bS0xMC42MTUgMTIuODE2di04bDggMy45OTMtOCA0LjAwN3oiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPkVudGVyIFlvdVR1YmUgVVJMPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9InVybCIgCiAgICAgICAgICAgICAgIGNsYXNzPSJ5b3V0dWJlLXVybC1pbnB1dCIgCiAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9Li4uIiAKICAgICAgICAgICAgICAgdmFsdWU9IiR7dGhpcy5lc2NhcGVIdG1sKGUpfSIgLz4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJ5b3V0dWJlLWVtYmVkLWJ0biI+RW1iZWQgVmlkZW88L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclZpZGVvKGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1jb250YWluZXIiPgogICAgICAgIDxpZnJhbWUgCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7ZX0iCiAgICAgICAgICBmcmFtZWJvcmRlcj0iMCIKICAgICAgICAgIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIgogICAgICAgICAgYWxsb3dmdWxsc2NyZWVuCiAgICAgICAgPjwvaWZyYW1lPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik7aWYoIXIpcmV0dXJuO2lmKHQubWV0YWRhdGE/LnZpZGVvSWQpe3Iuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbD0+eyhsLmtleT09PSJEZWxldGUifHxsLmtleT09PSJCYWNrc3BhY2UiKSYmbC5wcmV2ZW50RGVmYXVsdCgpLGEub25LZXlEb3duKGwpfSk7cmV0dXJufWxldCBuPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWVtYmVkLWJ0biIpOyFufHwhb3x8KG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmVtYmVkVmlkZW8obi52YWx1ZSx0LGEpfSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57bC5rZXk9PT0iRW50ZXIiPyhsLnByZXZlbnREZWZhdWx0KCksdGhpcy5lbWJlZFZpZGVvKG4udmFsdWUsdCxhKSk6bC5rZXk9PT0iRXNjYXBlIiYmKGwucHJldmVudERlZmF1bHQoKSxuLmJsdXIoKSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixsPT57c2V0VGltZW91dCgoKT0+e2xldCBwPW4udmFsdWU7dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQocCkmJnRoaXMuZW1iZWRWaWRlbyhwLHQsYSl9LDApfSksbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS51cmw9bi52YWx1ZX0pKX1lbWJlZFZpZGVvKGUsdCxhKXtsZXQgcj10aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZChlKTtpZighcil7Y29uc29sZS5lcnJvcigiSW52YWxpZCBZb3VUdWJlIFVSTCIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS52aWRlb0lkPXIsdC5tZXRhZGF0YS51cmw9ZSx0LmNvbnRlbnQ9YFlvdVR1YmUgVmlkZW86ICR7cn1gLGEub25SZXF1ZXN0VXBkYXRlPy4oKX1leHRyYWN0WW91VHViZVZpZGVvSWQoZSl7bGV0IHQ9Wy8oPzp5b3V0dWJlXC5jb21cLyg/OlteXC9dK1wvLitcL3woPzp2fGUoPzptYmVkKT8pXC98LipbPyZddj0pfHlvdXR1XC5iZVwvKShbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvZW1iZWRcLyhbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvd2F0Y2hcP3Y9KFteIiY/XC8gXXsxMX0pLywveW91dHVcLmJlXC8oW14iJj9cLyBdezExfSkvXTtmb3IobGV0IGEgb2YgdCl7bGV0IHI9ZS5tYXRjaChhKTtpZihyKXJldHVybiByWzFdfXJldHVybiBudWxsfWVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1nZXRDb250ZW50KGUpe3JldHVybiB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZSk/LmNvbnRlbnR8fCIifXNldENvbnRlbnQoZSx0KXtsZXQgYT10aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZSk7YSYmKGEuY29udGVudD10KX1nZXRCbG9ja0Zyb21FbGVtZW50KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBhP3tpZDphLHR5cGU6InlvdXR1YmUiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKSxhPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iik7YT9hLmZvY3VzKCk6dCYmdC5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogWW91VHViZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIFBsYWNlaG9sZGVyICovCiAgICAgIC55b3V0dWJlLXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogNDAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzFmMjkzNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IC8qIDE2OjkgYXNwZWN0IHJhdGlvICovCiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1jb250YWluZXIgaWZyYW1lIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBGUSxkdmE9ZygoKT0+e25jKCk7cGUoKTtGUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIkF0dGFjaG1lbnRCbG9ja0hhbmRsZXIiKX10eXBlPSJhdHRhY2htZW50IjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaWNvbiI+XHV7MUY0Q0V9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LXRpdGxlIj5GaWxlIEF0dGFjaG1lbnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1saXN0Ij4KICAgICAgICAgICR7YS5sZW5ndGg+MD90aGlzLnJlbmRlckZpbGVzKGEpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJhdHRhY2htZW50LWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBtdWx0aXBsZSAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICAgICR7YS5sZW5ndGg+MD8nPGJ1dHRvbiBjbGFzcz0iYWRkLW1vcmUtZmlsZXMiPkFkZCBNb3JlIEZpbGVzPC9idXR0b24+JzoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LXBsYWNlaG9sZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5DbGljayB0byBhZGQgZmlsZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci1oaW50Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlcyhlKXtyZXR1cm4gZS5tYXAodD0+YAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHt0LmlkfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pY29uIj4ke3RoaXMuZ2V0RmlsZUljb24odC50eXBlKX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1uYW1lIj4ke3RoaXMuZXNjYXBlSHRtbCh0Lm5hbWUpfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1zaXplIj4ke3RoaXMuZm9ybWF0RmlsZVNpemUodC5zaXplKX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtZmlsZSIgZGF0YS1maWxlLWlkPSIke3QuaWR9Ij5ceEQ3PC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYCkuam9pbigiIil9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWZpbGUtaW5wdXQiKTtpZighcnx8IW4pe2NvbnNvbGUuZXJyb3IoIkF0dGFjaG1lbnRCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmZpbGVzfHwodC5tZXRhZGF0YS5maWxlcz1bXSk7bGV0IG89ci5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1wbGFjZWhvbGRlciIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHA9PntwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKSxuLmNsaWNrKCl9KTtsZXQgbD1yLnF1ZXJ5U2VsZWN0b3IoIi5hZGQtbW9yZS1maWxlcyIpO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHA9PntwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKSxuLmNsaWNrKCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgcD0+e2xldCBkPXAudGFyZ2V0LHU9ZC5maWxlczt1JiZ1Lmxlbmd0aD4wJiYoYXdhaXQgdGhpcy5oYW5kbGVGaWxlQXR0YWNobWVudHModSx0LGEpLGQudmFsdWU9IiIpfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscD0+e2xldCBkPXAudGFyZ2V0O2lmKGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZW1vdmUtZmlsZSIpKXtwLnByZXZlbnREZWZhdWx0KCkscC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgdT1kLmdldEF0dHJpYnV0ZSgiZGF0YS1maWxlLWlkIik7dSYmdGhpcy5yZW1vdmVGaWxlKHUsdCxhKX19KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixwPT57cC5wcmV2ZW50RGVmYXVsdCgpLHAuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgcD0+e3AucHJldmVudERlZmF1bHQoKSxwLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IGQ9cC5kYXRhVHJhbnNmZXI/LmZpbGVzO2QmJmQubGVuZ3RoPjAmJmF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGQsdCxhKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixwPT57aWYoKHAua2V5PT09IkRlbGV0ZSJ8fHAua2V5PT09IkJhY2tzcGFjZSIpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ciYmdC5tZXRhZGF0YT8uZmlsZXM/Lmxlbmd0aD4wKXtwLnByZXZlbnREZWZhdWx0KCksdC5tZXRhZGF0YS5maWxlcz1bXSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKHApfSl9YXN5bmMgaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGUsdCxhKXt0Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5maWxlc3x8KHQubWV0YWRhdGEuZmlsZXM9W10pO2ZvcihsZXQgciBvZiBBcnJheS5mcm9tKGUpKXRyeXtsZXQgbj1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwociksbz17aWQ6dGhpcy5nZW5lcmF0ZUlkKCksbmFtZTpyLm5hbWUsc2l6ZTpyLnNpemUsdHlwZTpyLnR5cGUsZGF0YTpufTt0Lm1ldGFkYXRhLmZpbGVzLnB1c2gobyl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGF0dGFjaCBmaWxlOiIsci5uYW1lLG4pfXQuY29udGVudD1gJHt0Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgLGEub25SZXF1ZXN0VXBkYXRlPy4oKX1yZW1vdmVGaWxlKGUsdCxhKXt0Lm1ldGFkYXRhPy5maWxlcyYmKHQubWV0YWRhdGEuZmlsZXM9dC5tZXRhZGF0YS5maWxlcy5maWx0ZXIocj0+ci5pZCE9PWUpLHQuY29udGVudD10Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aD4wP2Ake3QubWV0YWRhdGEuZmlsZXMubGVuZ3RofSBmaWxlJHt0Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aCE9PTE/InMiOiIifSBhdHRhY2hlZGA6IiIsYS5vblJlcXVlc3RVcGRhdGU/LigpKX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgodCxhKT0+e2xldCByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPW49PntsZXQgbz1uLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBvPT0ic3RyaW5nIj90KG8pOmEobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxyLm9uZXJyb3I9YSxyLnJlYWRBc0RhdGFVUkwoZSl9KX1nZXRGaWxlSWNvbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCJpbWFnZS8iKT8iXHV7MUY1QkN9XHVGRTBGIjplLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJcdXsxRjNBNX0iOmUuc3RhcnRzV2l0aCgiYXVkaW8vIik/Ilx1ezFGM0I1fSI6ZS5pbmNsdWRlcygicGRmIik/Ilx1ezFGNEM0fSI6ZS5pbmNsdWRlcygiemlwIil8fGUuaW5jbHVkZXMoInJhciIpfHxlLmluY2x1ZGVzKCJ0YXIiKT8iXHV7MUY1QzR9XHVGRTBGIjplLmluY2x1ZGVzKCJzaGVldCIpPyJcdXsxRjRDQX0iOmUuaW5jbHVkZXMoImRvY3VtZW50Iil8fGUuaW5jbHVkZXMoIm1zd29yZCIpPyJcdXsxRjRERH0iOmUuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJcdXsxRjRDQn0iOmUuaW5jbHVkZXMoInRleHQiKT8iXHV7MUY0QzN9IjoiXHV7MUY0QzF9In1mb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHQ9MTAyNCxhPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxyPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2codCkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KHQscikpLnRvRml4ZWQoMikpKyIgIithW3JdfWdlbmVyYXRlSWQoKXtyZXR1cm5gZmlsZS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YH1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9dCl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gYT97aWQ6YSx0eXBlOiJhdHRhY2htZW50Iixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBBdHRhY2htZW50IEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lci5kcmFnLW92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5hdHRhY2htZW50LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgTGlzdCAqLwogICAgICAuYXR0YWNobWVudC1saXN0IHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgbWluLWhlaWdodDogODBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFBsYWNlaG9sZGVyICovCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIEl0ZW1zICovCiAgICAgIC5hdHRhY2htZW50LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1pbmZvIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLXNpemUgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQogICAgICAKICAgICAgLnJlbW92ZS1maWxlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLnJlbW92ZS1maWxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsIiM5OTFiMWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZjYTVhNSIsIiNkYzI2MjYiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2ZjYTVhNSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQWRkIE1vcmUgRmlsZXMgQnV0dG9uICovCiAgICAgIC5hZGQtbW9yZS1maWxlcyB7CiAgICAgICAgbWFyZ2luOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgfQogICAgICAKICAgICAgLmFkZC1tb3JlLWZpbGVzOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhpZGRlbiBmaWxlIGlucHV0ICovCiAgICAgIC5hdHRhY2htZW50LWZpbGUtaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgYH19fSk7dmFyIEJRLHV2YT1nKCgpPT57bmMoKTtwZSgpO0JRPWNsYXNzIGV4dGVuZHMgZ2l7c3RhdGlje2kodGhpcywiRGl2aWRlckJsb2NrSGFuZGxlciIpfXR5cGU9ImRpdmlkZXIiO3JlbmRlcihlLHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYmxvY2sgZGl2aWRlciR7dD8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IiB0YWJpbmRleD0iMCI+CiAgICAgICAgPGhyPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmRpdmlkZXIiKTtyJiYoci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e24uc3RvcFByb3BhZ2F0aW9uKCksci5mb2N1cygpLGEub25Gb2N1cz8uKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cz8uKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXI/LigpfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57KG4ua2V5PT09IkJhY2tzcGFjZSJ8fG4ua2V5PT09IkRlbGV0ZSIpJiZuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24/LihuKX0pKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5kaXZpZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXI6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBIUSxwdmE9ZygoKT0+e25jKCk7cGUoKTtIUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIk1hcmtkb3duQmxvY2tIYW5kbGVyIil9dHlwZT0ibWFya2Rvd24iO3JlbmRlcihlLHQpe2xldCBhPWUubWV0YWRhdGE/LmlzRWRpdE1vZGU/PyEwLHI9ZS5jb250ZW50fHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9IiR7YX0iPgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1pY29uIj5NXHUyMTkzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi10aXRsZSI+TWFya2Rvd248L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im1hcmtkb3duLXRvZ2dsZS1tb2RlIiB0aXRsZT0iJHthPyJQcmV2aWV3IjoiRWRpdCJ9Ij4KICAgICAgICAgICAgJHthPyJcdXsxRjQ0MX1cdUZFMEYiOiJcdTI3MEZcdUZFMEYifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+CiAgICAgICAgICAke2E/dGhpcy5yZW5kZXJFZGl0b3Iocik6dGhpcy5yZW5kZXJQcmV2aWV3KHIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJtYXJrZG93bi1lZGl0b3IiIAogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIG1hcmtkb3duIGNvbnRlbnQuLi4iCiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwoZSl9PC90ZXh0YXJlYT4KICAgIGB9cmVuZGVyUHJldmlldyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLXByZXZpZXciPgogICAgICAgICR7dGhpcy5wYXJzZU1hcmtkb3duKGUpfHwnPGRpdiBjbGFzcz0icHJldmlldy1lbXB0eSI+Tm8gY29udGVudCB0byBwcmV2aWV3PC9kaXY+J30KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXRvZ2dsZS1tb2RlIik7aWYoIXJ8fCFuKXtjb25zb2xlLmVycm9yKCJNYXJrZG93bkJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEuaXNFZGl0TW9kZT09PXZvaWQgMCYmKHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e2lmKG8ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLHQubWV0YWRhdGEuaXNFZGl0TW9kZSl7bGV0IGw9ci5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7bCYmKHQuY29udGVudD1sLnZhbHVlKX10Lm1ldGFkYXRhLmlzRWRpdE1vZGU9IXQubWV0YWRhdGEuaXNFZGl0TW9kZSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLHQsYSk6dGhpcy5zZXR1cFByZXZpZXcoZSx0LGEpfXNldHVwRWRpdG9yKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyJiYoci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e3QuY29udGVudD1yLnZhbHVlfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57aWYobi5rZXk9PT0iVGFiIil7bi5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXIuc2VsZWN0aW9uU3RhcnQsbD1yLnNlbGVjdGlvbkVuZCxwPXIudmFsdWU7aWYobi5zaGlmdEtleSl7bGV0IGM9cC5zdWJzdHJpbmcoMCxvKS5sYXN0SW5kZXhPZihgCmApKzEsYj1wLnN1YnN0cmluZyhjLG8pO2Iuc3RhcnRzV2l0aCgiICAiKSYmKHIudmFsdWU9cC5zdWJzdHJpbmcoMCxjKStiLnN1YnN0cmluZygyKStwLnN1YnN0cmluZyhvKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW8tMil9ZWxzZSByLnZhbHVlPXAuc3Vic3RyaW5nKDAsbykrIiAgIitwLnN1YnN0cmluZyhsKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW8rMjt0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKG4uY3RybEtleXx8bi5tZXRhS2V5KSYmbi5rZXk9PT0iYiIpe24ucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24ociwiKioiLCIqKiIpLHQuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJpIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMud3JhcFNlbGVjdGlvbihyLCJfIiwiXyIpLHQuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJrIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5zZXJ0TGluayhyKSx0LmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59YS5vbktleURvd24obil9KSx0aGlzLmF1dG9SZXNpemUociksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnRoaXMuYXV0b1Jlc2l6ZShyKSkpfXNldHVwUHJldmlldyhlLHQsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1wcmV2aWV3Iik7IXJ8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKG8pfSkpfXdyYXBTZWxlY3Rpb24oZSx0LGEpe2xldCByPWUuc2VsZWN0aW9uU3RhcnQsbj1lLnNlbGVjdGlvbkVuZCxvPWUudmFsdWUuc3Vic3RyaW5nKHIsbiksbD10KyhvfHwidGV4dCIpK2E7ZS52YWx1ZT1lLnZhbHVlLnN1YnN0cmluZygwLHIpK2wrZS52YWx1ZS5zdWJzdHJpbmcobiksbz8oZS5zZWxlY3Rpb25TdGFydD1yLGUuc2VsZWN0aW9uRW5kPXIrbC5sZW5ndGgpOihlLnNlbGVjdGlvblN0YXJ0PXIrdC5sZW5ndGgsZS5zZWxlY3Rpb25FbmQ9cit0Lmxlbmd0aCs0KSxlLmZvY3VzKCl9aW5zZXJ0TGluayhlKXtsZXQgdD1lLnNlbGVjdGlvblN0YXJ0LGE9ZS5zZWxlY3Rpb25FbmQsbj1lLnZhbHVlLnN1YnN0cmluZyh0LGEpfHwibGluayB0ZXh0IixvPWBbJHtufV0odXJsKWA7ZS52YWx1ZT1lLnZhbHVlLnN1YnN0cmluZygwLHQpK28rZS52YWx1ZS5zdWJzdHJpbmcoYSksZS5zZWxlY3Rpb25TdGFydD10K24ubGVuZ3RoKzMsZS5zZWxlY3Rpb25FbmQ9dCtuLmxlbmd0aCs2LGUuZm9jdXMoKX1hdXRvUmVzaXplKGUpe2Uuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1lLnNjcm9sbEhlaWdodCsicHgifXBhcnNlTWFya2Rvd24oZSl7bGV0IHQ9dGhpcy5lc2NhcGVIdG1sKGUpO3JldHVybiB0PXQucmVwbGFjZSgvXiMjIyAoLispJC9nbSwiPGgzPiQxPC9oMz4iKSx0PXQucmVwbGFjZSgvXiMjICguKykkL2dtLCI8aDI+JDE8L2gyPiIpLHQ9dC5yZXBsYWNlKC9eIyAoLispJC9nbSwiPGgxPiQxPC9oMT4iKSx0PXQucmVwbGFjZSgvXCpcKiguKz8pXCpcKi9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL19fKC4rPylfXy9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqKC4rPylcKi9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC9fKC4rPylfL2csIjxlbT4kMTwvZW0+IiksdD10LnJlcGxhY2UoL2BgYChbXHNcU10qPylgYGAvZywiPHByZT48Y29kZT4kMTwvY29kZT48L3ByZT4iKSx0PXQucmVwbGFjZSgvYCguKz8pYC9nLCI8Y29kZT4kMTwvY29kZT4iKSx0PXQucmVwbGFjZSgvXFsoW15cXV0rKVxdXCgoW14pXSspXCkvZywnPGEgaHJlZj0iJDIiPiQxPC9hPicpLHQ9dC5yZXBsYWNlKC9eXCogKC4rKSQvZ20sIjxsaT4kMTwvbGk+IiksdD10LnJlcGxhY2UoL14tICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC9eXGQrXC4gKC4rKSQvZ20sIjxsaT4kMTwvbGk+IiksdD10LnJlcGxhY2UoLyg8bGk+Lio8XC9saT5cbj8pKy9nLGE9PiI8dWw+IithKyI8L3VsPiIpLHQ9dC5yZXBsYWNlKC9cblxuL2csIjwvcD48cD4iKSx0PSI8cD4iK3QrIjwvcD4iLHQ9dC5yZXBsYWNlKC88cD48XC9wPi9nLCIiKSx0PXQucmVwbGFjZSgvPHA+KDxoWzEtM10+KS9nLCIkMSIpLHQ9dC5yZXBsYWNlKC8oPFwvaFsxLTNdPik8XC9wPi9nLCIkMSIpLHQ9dC5yZXBsYWNlKC88cD4oPHVsPikvZywiJDEiKSx0PXQucmVwbGFjZSgvKDxcL3VsPik8XC9wPi9nLCIkMSIpLHQ9dC5yZXBsYWNlKC88cD4oPHByZT4pL2csIiQxIiksdD10LnJlcGxhY2UoLyg8XC9wcmU+KTxcL3A+L2csIiQxIiksdH1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZih0KXJldHVybiB0LnZhbHVlO2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4iIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7YSYmKGEudmFsdWU9dCx0aGlzLmF1dG9SZXNpemUoYSkpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3JldHVybiB0P3Quc2VsZWN0aW9uU3RhcnQ6bnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3Q/KHQuc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9MCx0LmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYodCl7bGV0IGE9dC52YWx1ZS5sZW5ndGg7dC5zZWxlY3Rpb25TdGFydD10LnNlbGVjdGlvbkVuZD1hLHQuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7dD90LmZvY3VzKCk6ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2E/dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiB0PT0ibnVtYmVyIiYmKGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9dCxhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKCF0KXJldHVybiBudWxsO2xldCBhPXQuc2VsZWN0aW9uU3RhcnQ7cmV0dXJue2JlZm9yZTp0LnZhbHVlLnN1YnN0cmluZygwLGEpLGFmdGVyOnQudmFsdWUuc3Vic3RyaW5nKGEpfX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIE1hcmtkb3duIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAubWFya2Rvd24tYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAubWFya2Rvd24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdG9nZ2xlLW1vZGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAubWFya2Rvd24tY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBFZGl0b3IgKi8KICAgICAgLm1hcmtkb3duLWVkaXRvciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAubWFya2Rvd24tcHJldmlldyB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiA5NnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnByZXZpZXctZW1wdHkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAvKiBNYXJrZG93biBwcmV2aWV3IHN0eWxlcyAqLwogICAgICAubWFya2Rvd24tcHJldmlldyBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDAgOHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTRweCAwIDZweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgzIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDEycHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyB1bCwKICAgICAgLm1hcmtkb3duLXByZXZpZXcgb2wgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBlbSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGJsb2NrcXVvdGUgewogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgIGB9fX0pO3ZhciBxUSxodmE9ZygoKT0+e25jKCk7cGUoKTtxUT1jbGFzcyBleHRlbmRzIGdpe3N0YXRpY3tpKHRoaXMsIkh0bWxCbG9ja0hhbmRsZXIiKX10eXBlPSJodG1sIjtyZW5kZXIoZSx0KXtsZXQgYT1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxyPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9IiR7YX0iPgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaWNvbiI+Jmx0Oy8mZ3Q7PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLXRpdGxlIj5IVE1MPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJodG1sLXRvZ2dsZS1tb2RlIiB0aXRsZT0iJHthPyJQcmV2aWV3IjoiRWRpdCJ9Ij4KICAgICAgICAgICAgJHthPyJcdXsxRjQ0MX1cdUZFMEYiOiJcdTI3MEZcdUZFMEYifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC1jb250ZW50Ij4KICAgICAgICAgICR7YT90aGlzLnJlbmRlckVkaXRvcihyKTp0aGlzLnJlbmRlclByZXZpZXcocil9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IoZSl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Imh0bWwtZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBIVE1MIGNvbnRlbnQuLi4iCiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwoZSl9PC90ZXh0YXJlYT4KICAgIGB9cmVuZGVyUHJldmlldyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Imh0bWwtcHJldmlldyI+CiAgICAgICAgJHtlfHwnPGRpdiBjbGFzcz0icHJldmlldy1lbXB0eSI+Tm8gY29udGVudCB0byBwcmV2aWV3PC9kaXY+J30KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC10b2dnbGUtbW9kZSIpO2lmKCFyfHwhbil7Y29uc29sZS5lcnJvcigiSHRtbEJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEuaXNFZGl0TW9kZT09PXZvaWQgMCYmKHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e2lmKG8ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLHQubWV0YWRhdGEuaXNFZGl0TW9kZSl7bGV0IGw9ci5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtsJiYodC5jb250ZW50PWwudmFsdWUpfXQubWV0YWRhdGEuaXNFZGl0TW9kZT0hdC5tZXRhZGF0YS5pc0VkaXRNb2RlLGEub25SZXF1ZXN0VXBkYXRlPy4oKX0pLHQubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKGUsdCxhKTp0aGlzLnNldHVwUHJldmlldyhlLHQsYSl9c2V0dXBFZGl0b3IoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0LmNvbnRlbnQ9ci52YWx1ZSx0aGlzLnZhbGlkYXRlSHRtbChyLnZhbHVlKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2lmKG4ua2V5PT09IlRhYiIpe24ucHJldmVudERlZmF1bHQoKTtsZXQgbz1yLnNlbGVjdGlvblN0YXJ0LGw9ci5zZWxlY3Rpb25FbmQscD1yLnZhbHVlO2lmKG4uc2hpZnRLZXkpe2xldCBjPXAuc3Vic3RyaW5nKDAsbykubGFzdEluZGV4T2YoYApgKSsxLGI9cC5zdWJzdHJpbmcoYyxvKTtiLnN0YXJ0c1dpdGgoIiAgIikmJihyLnZhbHVlPXAuc3Vic3RyaW5nKDAsYykrYi5zdWJzdHJpbmcoMikrcC5zdWJzdHJpbmcobyksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vLTIpfWVsc2Ugci52YWx1ZT1wLnN1YnN0cmluZygwLG8pKyIgICIrcC5zdWJzdHJpbmcobCksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1vKzI7dC5jb250ZW50PXIudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09Ii8iKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdXRvQ2xvc2VUYWcociksdC5jb250ZW50PXIudmFsdWU7cmV0dXJufWEub25LZXlEb3duKG4pfSksdGhpcy5hdXRvUmVzaXplKHIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUocikpKX1zZXR1cFByZXZpZXcoZSx0LGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKTshcnx8IW58fChuLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksbi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZihvLmtleT09PSJFbnRlciImJiFvLnNoaWZ0S2V5KXtvLnByZXZlbnREZWZhdWx0KCksdC5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLGEub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59YS5vbktleURvd24obyl9KSx0aGlzLnNhbmRib3hDb250ZW50KG4pKX1hdXRvQ2xvc2VUYWcoZSl7bGV0IHQ9ZS5zZWxlY3Rpb25TdGFydCxhPWUudmFsdWUscj10O2Zvcig7cj4wJiZhW3ItMV0hPT0iPCI7KXItLTtpZihyPjApe2xldCBvPWEuc3Vic3RyaW5nKHIsdCkubWF0Y2goL14oXHcrKS8pO2lmKG8pe2xldCBwPWA8LyR7b1sxXX0+YDtlLnZhbHVlPWEuc3Vic3RyaW5nKDAsdCkrIj4iK3ArYS5zdWJzdHJpbmcodCksZS5zZWxlY3Rpb25TdGFydD1lLnNlbGVjdGlvbkVuZD10KzF9fX1hdXRvUmVzaXplKGUpe2Uuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1lLnNjcm9sbEhlaWdodCsicHgifXZhbGlkYXRlSHRtbChlKXtsZXQgdD1bXSxhPS88XC8/KFthLXpBLVpdW2EtekEtWjAtOV0qKVxiW14+XSo+L2cscjtmb3IoOyhyPWEuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG49clswXS5zdGFydHNXaXRoKCI8LyIpLG89clsxXS50b0xvd2VyQ2FzZSgpO2lmKG4pe2lmKHQubGVuZ3RoPT09MHx8dFt0Lmxlbmd0aC0xXSE9PW8pcmV0dXJuIGNvbnNvbGUud2FybihgTWlzbWF0Y2hlZCBjbG9zaW5nIHRhZzogJHtvfWApLCExO3QucG9wKCl9ZWxzZSByWzBdLmVuZHNXaXRoKCIvPiIpfHx0LnB1c2gobyl9cmV0dXJuIHQubGVuZ3RoPjA/KGNvbnNvbGUud2FybihgVW5jbG9zZWQgdGFnczogJHt0LmpvaW4oIiwgIil9YCksITEpOiEwfXNhbmRib3hDb250ZW50KGUpe2UucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikuZm9yRWFjaChuPT5uLnJlbW92ZSgpKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5mb3JFYWNoKG49PntBcnJheS5mcm9tKG4uYXR0cmlidXRlcykuZm9yRWFjaChvPT57by5uYW1lLnN0YXJ0c1dpdGgoIm9uIikmJm4ucmVtb3ZlQXR0cmlidXRlKG8ubmFtZSl9KX0pLGUucXVlcnlTZWxlY3RvckFsbCgiZm9ybSIpLmZvckVhY2gobj0+e24uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixvPT57by5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCl9KX0pfWVzY2FwZUh0bWwoZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSx0LmlubmVySFRNTH1nZXRDb250ZW50KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYodClyZXR1cm4gdC52YWx1ZTtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4iIn1zZXRDb250ZW50KGUsdCl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTthJiYoYS52YWx1ZT10LHRoaXMuYXV0b1Jlc2l6ZShhKSl9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyZXR1cm4gdD90LnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3Q/KHQuc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9MCx0LmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZih0KXtsZXQgYT10LnZhbHVlLmxlbmd0aDt0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPWEsdC5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3Q/dC5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLmh0bWwtcHJldmlldyIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YT90PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6dD09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIHQ9PSJudW1iZXIiJiYoYS5zZWxlY3Rpb25TdGFydD1hLnNlbGVjdGlvbkVuZD10LGEuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZighdClyZXR1cm4gbnVsbDtsZXQgYT10LnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6dC52YWx1ZS5zdWJzdHJpbmcoMCxhKSxhZnRlcjp0LnZhbHVlLnN1YnN0cmluZyhhKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBIVE1MIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmh0bWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5odG1sLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5odG1sLWVkaXRvciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5odG1sLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogU2FuZGJveGVkIEhUTUwgcHJldmlldyBzdHlsZXMgKi8KICAgICAgLmh0bWwtcHJldmlldyAqIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgaW1nIHsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCwKICAgICAgLmh0bWwtcHJldmlldyB0ZCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgIGB9fX0pO3ZhciAkbnQ9ZygoKT0+e25jKCk7ZXZhKCk7dHZhKCk7YXZhKCk7c3ZhKCk7aXZhKCk7b3ZhKCk7bnZhKCk7bHZhKCk7Y3ZhKCk7ZHZhKCk7dXZhKCk7cHZhKCk7aHZhKCl9KTtmdW5jdGlvbiBYSmEoKXtBcy5yZWdpc3RlcigiZGl2aWRlciIsbmV3IEJRKSxBcy5yZWdpc3RlcigicGFyYWdyYXBoIixuZXcgUFEpLEFzLnJlZ2lzdGVyKCJoZWFkaW5nLTEiLG5ldyBRZygiaGVhZGluZy0xIikpLEFzLnJlZ2lzdGVyKCJoZWFkaW5nLTIiLG5ldyBRZygiaGVhZGluZy0yIikpLEFzLnJlZ2lzdGVyKCJoZWFkaW5nLTMiLG5ldyBRZygiaGVhZGluZy0zIikpLEFzLnJlZ2lzdGVyKCJxdW90ZSIsbmV3IElRKSxBcy5yZWdpc3RlcigiY29kZSIsbmV3IEFRKSxBcy5yZWdpc3RlcigibGlzdCIsbmV3IE5RKSxBcy5yZWdpc3RlcigiaW1hZ2UiLG5ldyBSUSksQXMucmVnaXN0ZXIoInlvdXR1YmUiLG5ldyBPUSksQXMucmVnaXN0ZXIoImF0dGFjaG1lbnQiLG5ldyBGUSksQXMucmVnaXN0ZXIoIm1hcmtkb3duIixuZXcgSFEpLEFzLnJlZ2lzdGVyKCJodG1sIixuZXcgcVEpfXZhciBEbnQ9ZygoKT0+eyRudCgpO2koWEphLCJyZWdpc3RlckFsbEJsb2NrSGFuZGxlcnMiKSxYSmEoKX0pO3ZhciBWMWUsTG50PWcoKCk9PntwZSgpO1B1KCk7TGwoKTtaZygpO3ExZSgpO1YxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnTW9kYWxNYW5hZ2VyIil9c3RhdGljIGFzeW5jIHNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntsZXQgdD1udWxsO2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNlbGVjdCBQcm9ncmFtbWluZyBMYW5ndWFnZSIsY29udGVudDp3YAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGFuZ3VhZ2UtY29udGFpbmVyIHsKICAgICAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTIwcHgsIDFmcikpOwogICAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWdyaWQiPgogICAgICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAoYT0+d2AKICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1idXR0b24gJHt0PT09YS50b0xvd2VyQ2FzZSgpPyJzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dD1hLnRvTG93ZXJDYXNlKCk7bGV0IHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO3ImJnR5cGVvZiByLmRlc3Ryb3k9PSJmdW5jdGlvbiImJnIuZGVzdHJveSgpLGUodCl9fSI+CiAgICAgICAgICAgICAgICAgICR7YX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIGE9PnthLmRlc3Ryb3koKSxlKG51bGwpfSwiYWN0aW9uIil9XX0pfSl9c3RhdGljIGFzeW5jIHNob3dCbG9ja1NldHRpbmdzTW9kYWwoZSx0KXtsZXQgYT13YAogICAgICA8c3R5bGU+CiAgICAgICAgLnNldHRpbmdzLWNvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1sYWJlbCB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNjBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWljb24gewogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5nZXRCbG9ja1R5cGVTZWxlY3RvcihlLHQpfQogICAgICAgICR7ZS50eXBlPT09ImNvZGUiP3RoaXMuZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSx0KToiIn0KICAgICAgPC9kaXY+CiAgICBgO2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkJsb2NrIFNldHRpbmdzIixjb250ZW50OmEsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyByPT57ci5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfSl9c3RhdGljIGdldENvZGVCbG9ja1NldHRpbmdzKGUsdCl7bGV0IGE9ZS5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJqYXZhc2NyaXB0IjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5sYW5ndWFnZS1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDZweDsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgfQogICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlByb2dyYW1taW5nIExhbmd1YWdlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAke3RoaXMuZ2V0TGFuZ3VhZ2VzKCkubWFwKHI9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke2E9PT1yLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e2UubWV0YWRhdGF8fChlLm1ldGFkYXRhPXt9KSxlLm1ldGFkYXRhLmxhbmd1YWdlPXIudG9Mb3dlckNhc2UoKSx0KGUpO2xldCBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwiKTtuJiZ0eXBlb2Ygbi5kZXN0cm95PT0iZnVuY3Rpb24iJiZuLmRlc3Ryb3koKX19IgogICAgICAgICAgICAgIGRhdGEtbGFuZz0iJHtyfSIKICAgICAgICAgICAgPiR7cn08L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGdldExhbmd1YWdlcygpe3JldHVyblsuLi5IMWVdfXN0YXRpYyBnZXRCbG9ja1R5cGVTZWxlY3RvcihlLHQpe2xldCBhPUlyLmdldFNsYXNoTWVudUl0ZW1zKCkuZmlsdGVyKHI9PnIudHlwZSE9PSJkaXZpZGVyIik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWxhYmVsIj5CbG9jayBUeXBlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2stdHlwZS1ncmlkIj4KICAgICAgICAgICR7YS5tYXAocj0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0iYmxvY2stdHlwZS1idXR0b24gJHtlLnR5cGU9PT1yLnR5cGU/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSIke2FzeW5jIG49PntsZXQgbz1uLmN1cnJlbnRUYXJnZXQsbD1lLnR5cGU7aWYoZS50eXBlPXIudHlwZSxsPT09ImNvZGUiJiZlLnR5cGUhPT0iY29kZSIpZGVsZXRlIGUubWV0YWRhdGE/Lmxhbmd1YWdlO2Vsc2UgaWYobD09PSJsaXN0IiYmZS50eXBlIT09Imxpc3QiKWRlbGV0ZSBlLm1ldGFkYXRhPy5saXN0VHlwZTtlbHNlIGlmKGUudHlwZT09PSJsaXN0IiYmIWUubWV0YWRhdGE/Lmxpc3RUeXBlKWUubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifTtlbHNlIGlmKGUudHlwZT09PSJjb2RlIiYmIWUubWV0YWRhdGE/Lmxhbmd1YWdlKXtsZXQgZD1hd2FpdCB0aGlzLnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7aWYoZCllLm1ldGFkYXRhPXtsYW5ndWFnZTpkfTtlbHNle2UudHlwZT1sO3JldHVybn19dChlKTtsZXQgcD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7cCYmdHlwZW9mIHAuZGVzdHJveT09ImZ1bmN0aW9uIiYmcC5kZXN0cm95KCl9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJibG9jay10eXBlLWljb24iPiR7ci5pY29ufTwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj4ke3IubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fX0pO3ZhciBVMWUsZnZhPWcoKCk9PntMbCgpO1N4KCk7WmcoKTtSdSgpO0NudCgpO0xudCgpO1UxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnSW5wdXRIYW5kbGVyIil9Y29tcG9uZW50O3NhdmVUaW1lb3V0PW51bGw7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1oYW5kbGVCbG9ja0lucHV0KGUsdCl7aWYodGhpcy5jb21wb25lbnQuaXNDb21wb3NpbmcpcmV0dXJuO2xldCBhPWUudGFyZ2V0LHI9YS50ZXh0Q29udGVudHx8IiIsbj10aGlzLmRldGVjdEJsb2NrVHlwZUludGVudChyKTtpZihuJiZuLnR5cGUhPT10LnR5cGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24odCxuLGEpO3JldHVybn10aGlzLmhhbmRsZVNsYXNoQ29tbWFuZChyLGEpLHRoaXMuc2NoZWR1bGVBdXRvU2F2ZSgpfXVwZGF0ZUJsb2NrQ29udGVudChlLHQpe2xldCByPXQuY2xvc2VzdCgiLmJsb2NrLXdyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYocil7bGV0IG49ci5nZXRDb250ZW50KCk7aWYoZS5jb250ZW50IT09biYmKGUuY29udGVudD1uKSxlLnR5cGU9PT0ibGlzdCIpe2xldCBvPXQucXVlcnlTZWxlY3Rvcigib2wsIHVsIik7byYmKGUubWV0YWRhdGE9e2xpc3RUeXBlOm8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9KX19ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCIpe2xldCBuPXQucXVlcnlTZWxlY3RvckFsbCgibGkiKTtlLmNvbnRlbnQ9QXJyYXkuZnJvbShuKS5tYXAobD0+bC5pbm5lckhUTUx8fCIiKS5qb2luKGAKYCk7bGV0IG89dC5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtvJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6by50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfWVsc2UgZS50eXBlPT09ImNvZGUiP2UuY29udGVudD10LnRleHRDb250ZW50fHwiIjplLmNvbnRlbnQ9dC5pbm5lckhUTUx8fCIifWRldGVjdEJsb2NrVHlwZUludGVudChlKXtsZXQgdD1Jci5jaGVja0hlYWRpbmdTaG9ydGN1dChlKTtpZih0KXJldHVybiB0O2xldCBhPUlyLmNoZWNrTGlzdFNob3J0Y3V0KGUpO3JldHVybiBhfHwoSXIuY2hlY2tRdW90ZVNob3J0Y3V0KGUpP3t0eXBlOiJxdW90ZSJ9OklyLmNoZWNrQ29kZVNob3J0Y3V0KGUpP3t0eXBlOiJjb2RlIn06SXIuY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSk/e3R5cGU6ImRpdmlkZXIifTpudWxsKX1hc3luYyBoYW5kbGVCbG9ja1RyYW5zZm9ybWF0aW9uKGUsdCxhKXtsZXQgcj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYodC50eXBlPT09Imxpc3QiKXtlLnR5cGU9Imxpc3QiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsaXN0VHlwZTp0Lmxpc3RUeXBlfTtsZXQgbj10Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjthLmlubmVySFRNTD1gPCR7bn0+PGxpPjwvbGk+PC8ke259PmAsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dCgoKT0+e21uLmZvY3VzTGlzdEl0ZW0oYSl9LDApfWVsc2UgaWYodC50eXBlPT09ImRpdmlkZXIiKXtlLnR5cGU9ImRpdmlkZXIiLGUuY29udGVudD0iICIsdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpO2xldCBuPXIuY3JlYXRlQmxvY2soKTtyLmluc2VydEJsb2NrQWZ0ZXIoZSxuKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWVsc2UgaWYodC50eXBlPT09ImNvZGUiKXtsZXQgbj1hd2FpdCBWMWUuc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTtuJiYoZS50eXBlPSJjb2RlIixlLmNvbnRlbnQ9IiIsZS5tZXRhZGF0YT17bGFuZ3VhZ2U6bn0sYS50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCByLmZvY3VzQmxvY2soZS5pZCwic3RhcnQiKX0sNTApKX1lbHNlIGUudHlwZT10LnR5cGUsZS5jb250ZW50PSIiLGEudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgci5mb2N1c0Jsb2NrKGUuaWQsInN0YXJ0Iil9LDUwKX1oYW5kbGVTbGFzaENvbW1hbmQoZSx0KXtsZXQgYT10aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUscj1hJiZhLnZpc2libGU7aWYoZT09PSIvInx8ZS5zdGFydHNXaXRoKCIvIikmJnIpe2lmKCFyJiZlPT09Ii8iKXtsZXQgbj10aGlzLmdldENhcmV0Q29vcmRpbmF0ZXModCk7YS5zaG93KHt4Om4ubGVmdCx5Om4uYm90dG9tKzR9LG89Pnt0aGlzLmNvbXBvbmVudC5pbnNlcnRCbG9jayhvKX0pLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10JiZ0LmZvY3VzKCl9KX1hJiZhLnVwZGF0ZUZpbHRlcihlLnNsaWNlKDEpKX1lbHNlIGUuc3RhcnRzV2l0aCgiLyIpfHx0aGlzLmNvbXBvbmVudC5jbG9zZVNsYXNoTWVudSgpfWdldENhcmV0Q29vcmRpbmF0ZXMoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHQmJnQucmFuZ2VDb3VudD4wKXtsZXQgcj10LmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoci53aWR0aD4wfHxyLmhlaWdodD4wKXJldHVybiByfXJldHVybiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfXNjaGVkdWxlQXV0b1NhdmUoKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCksISh0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUmJnRoaXMuY29tcG9uZW50LnNsYXNoTWVudS52aXNpYmxlKSYmKHRoaXMuc2F2ZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3luY0FsbEJsb2NrQ29udGVudCgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9LDJlMykpfXN5bmNBbGxCbG9ja0NvbnRlbnQoKXt0aGlzLmNvbXBvbmVudC5ibG9ja3MuZm9yRWFjaChlPT57bGV0IGE9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZS5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihhJiZhLmdldENvbnRlbnQpe2xldCByPWEuZ2V0Q29udGVudCgpO2UuY29udGVudCE9PXImJihlLmNvbnRlbnQ9cil9fSl9ZGVzdHJveSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KX19fSk7dmFyIFcxZSxtdmE9ZygoKT0+e0xsKCk7U3goKTtYZCgpO1cxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnS2V5Ym9hcmRIYW5kbGVyIil9Y29tcG9uZW50O2NvbnN0cnVjdG9yKGUpe3RoaXMuY29tcG9uZW50PWV9YXN5bmMgaGFuZGxlQmxvY2tLZXlEb3duKGUsdCl7aWYodGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUmJnRoaXMuaXNTbGFzaE1lbnVLZXkoZS5rZXkpKXt0aGlzLmNvbXBvbmVudC5oYW5kbGVTbGFzaE1lbnVLZXlib2FyZChlKTtyZXR1cm59aWYoIXRoaXMuaGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyhlKSlzd2l0Y2goZS5rZXkpe2Nhc2UiVGFiIjp0aGlzLmhhbmRsZVRhYihlLHQpO2JyZWFrO2Nhc2UiRW50ZXIiOmF3YWl0IHRoaXMuaGFuZGxlRW50ZXIoZSx0KTticmVhaztjYXNlIkJhY2tzcGFjZSI6YXdhaXQgdGhpcy5oYW5kbGVCYWNrc3BhY2UoZSx0KTticmVhaztjYXNlIkRlbGV0ZSI6YXdhaXQgdGhpcy5oYW5kbGVEZWxldGUoZSx0KTticmVhaztjYXNlIkFycm93VXAiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dVcChlLHQpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjphd2FpdCB0aGlzLmhhbmRsZUFycm93RG93bihlLHQpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93TGVmdChlLHQpO2JyZWFrO2Nhc2UiQXJyb3dSaWdodCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1JpZ2h0KGUsdCk7YnJlYWt9fWlzU2xhc2hNZW51S2V5KGUpe3JldHVyblsiQXJyb3dEb3duIiwiQXJyb3dVcCIsIkVudGVyIiwiRXNjYXBlIl0uaW5jbHVkZXMoZSl9aGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyhlKXtpZighKGUubWV0YUtleXx8ZS5jdHJsS2V5KSlyZXR1cm4hMTtzd2l0Y2goZS5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSJiIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJib2xkIikpLCEwO2Nhc2UiaSI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgiaXRhbGljIikpLCEwO2Nhc2UidSI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgidW5kZXJsaW5lIikpLCEwO2Nhc2UiayI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgibGluayIpKSwhMH1yZXR1cm4hMX1oYW5kbGVUYWIoZSx0KXt0LnR5cGUhPT0iY29kZSImJnQudHlwZT09PSJsaXN0IiYmZS5wcmV2ZW50RGVmYXVsdCgpfWFzeW5jIGhhbmRsZUVudGVyKGUsdCl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0LnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG49YS5jcmVhdGVCbG9jaygpO2F3YWl0IGEuaW5zZXJ0QmxvY2tBZnRlcih0LG4pO3JldHVybn1pZih0LnR5cGU9PT0iY29kZSIpe2lmKGUuc2hpZnRLZXkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQsbil9cmV0dXJufWlmKCFlLnNoaWZ0S2V5KWlmKHQudHlwZT09PSJsaXN0Iilhd2FpdCB0aGlzLmhhbmRsZUVudGVySW5MaXN0KGUsdCk7ZWxzZXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihvJiZvLmdldFNwbGl0Q29udGVudCl7bGV0IGw9by5nZXRTcGxpdENvbnRlbnQoKTtpZihsKXtvLnNldENvbnRlbnQobC5iZWZvcmUpLHQuY29udGVudD1sLmJlZm9yZTtsZXQgcD1hLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLGwuYWZ0ZXIpO2F3YWl0IGEuaW5zZXJ0QmxvY2tBZnRlcih0LHApLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZXtsZXQgcD1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHQscCl9fWVsc2V7bGV0IGw9YS5jcmVhdGVCbG9jaygpO2F3YWl0IGEuaW5zZXJ0QmxvY2tBZnRlcih0LGwpfX19YXN5bmMgaGFuZGxlRW50ZXJJbkxpc3QoZSx0KXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoYSYmYS5yYW5nZUNvdW50PjApe2xldCBuPWEuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCJsaSIpO2lmKG4mJm4udGV4dENvbnRlbnQ9PT0iIil7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxsPW8uY3JlYXRlQmxvY2soKTthd2FpdCBvLmluc2VydEJsb2NrQWZ0ZXIodCxsKX19fWFzeW5jIGhhbmRsZUJhY2tzcGFjZShlLHQpe2xldCBhPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxhLnJlbW92ZUJsb2NrKHQuaWQpO2xldCB4PWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1beF0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGEuZm9jdXNCbG9jayh4LmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBiPWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKSx2PWEuZ2V0TmV4dEJsb2NrKHQuaWQpO2EucmVtb3ZlQmxvY2sodC5pZCksYiYmYi50eXBlIT09ImRpdmlkZXIiJiZiLnR5cGUhPT0iaW1hZ2UiP2F3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJlbmQiKTp2JiZ2LnR5cGUhPT0iZGl2aWRlciImJnYudHlwZSE9PSJpbWFnZSI/YXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0Iik6Yj9hd2FpdCBhLmZvY3VzQmxvY2soYi5pZCk6diYmYXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbD10LnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbClyZXR1cm47bGV0IHA9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO3A/LnNoYWRvd1Jvb3QmJmQucHVzaChwLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCB1PSR0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGwsLi4uZCksYz1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6bC50ZXh0Q29udGVudDtpZih1PT09MCl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBiPWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihiKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYi50eXBlKSl7YXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQpO3JldHVybn1pZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxiLnR5cGU9PT0iY29kZSImJnQudHlwZSE9PSJjb2RlIil7dC5jb250ZW50PT09IiImJihhLnJlbW92ZUJsb2NrKHQuaWQpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJlbmQiKSk7cmV0dXJufWlmKHQudHlwZT09PSJjb2RlIiYmYi50eXBlIT09ImNvZGUiKXtsZXQgTj1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6dC5jb250ZW50OyhOPT09IiJ8fE4udHJpbSgpPT09IiIpJiYoYS5yZW1vdmVCbG9jayh0LmlkKSxhd2FpdCBhLmZvY3VzQmxvY2soYi5pZCwiZW5kIikpO3JldHVybn1sZXQgbT10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtiLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpLGY9bT8uZ2V0Q29udGVudCgpfHxiLmNvbnRlbnR8fCIiLHk9by5nZXRDb250ZW50KCl8fHQuY29udGVudHx8IiIsTT0iIjtiLnR5cGU9PT0iY29kZSImJnQudHlwZT09PSJjb2RlInx8Yi50eXBlPT09Imxpc3QiJiZ0LnR5cGU9PT0ibGlzdCI/TT1mKyhmJiZ5P2AKYDoiIikreTpNPWYrKGYmJnk/IiAiOiIiKSt5O2xldCB6PWYubGVuZ3RoO2EudXBkYXRlQmxvY2tDb250ZW50KGIuaWQsTSksbSYmbS5zZXRDb250ZW50KE0pLGEucmVtb3ZlQmxvY2sodC5pZCksYXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQseil9fWVsc2UgaWYodGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD4xKXtsZXQgYj1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6dC5jb250ZW50O2lmKGI9PT0iInx8Yi50cmltKCk9PT0iIil7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB2PWEuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTt2JiYoYS5yZW1vdmVCbG9jayh0LmlkKSx2LnR5cGUhPT0iZGl2aWRlciImJmF3YWl0IGEuZm9jdXNCbG9jayh2LmlkLCJlbmQiKSl9fX1hc3luYyBoYW5kbGVEZWxldGUoZSx0KXtsZXQgYT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2lmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPT09MSl7dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksYS5yZW1vdmVCbG9jayh0LmlkKTtsZXQgbT1hLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLCIiKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9W21dLHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSxhd2FpdCBhLmZvY3VzQmxvY2sobS5pZCwic3RhcnQiKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO3JldHVybn10aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKTtsZXQgYj1hLmdldFByZXZpb3VzQmxvY2sodC5pZCksdj1hLmdldE5leHRCbG9jayh0LmlkKTthLnJlbW92ZUJsb2NrKHQuaWQpO2xldCB4PVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTt2JiYheC5pbmNsdWRlcyh2LnR5cGUpP2F3YWl0IGEuZm9jdXNCbG9jayh2LmlkLCJzdGFydCIpOmImJiF4LmluY2x1ZGVzKGIudHlwZSk/YXdhaXQgYS5mb2N1c0Jsb2NrKGIuaWQsImVuZCIpOnY/YXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQpOmImJmF3YWl0IGEuZm9jdXNCbG9jayhiLmlkKTtyZXR1cm59bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighb3x8IW8uc2hhZG93Um9vdClyZXR1cm47bGV0IGw9dC50eXBlPT09ImNvZGUiP28uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpvLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIWwpcmV0dXJuO2xldCBwPW8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksZD1bXTtwPy5zaGFkb3dSb290JiZkLnB1c2gocC5zaGFkb3dSb290KSxkLnB1c2goby5zaGFkb3dSb290KTtsZXQgdT0kdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChsLC4uLmQpLGM9bC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1jKXtsZXQgYj1hLmdldE5leHRCbG9jayh0LmlkKTtpZihiJiZbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYi50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkKTtyZXR1cm59fX1hc3luYyBoYW5kbGVBcnJvd1VwKGUsdCl7bGV0IGE9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2lmKGEuaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtjJiZhd2FpdCB1LmZvY3VzQmxvY2soYy5pZCxhLmluY2x1ZGVzKGMudHlwZSk/dm9pZCAwOiJlbmQiKTtyZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89dC50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIikscD1bXTtsPy5zaGFkb3dSb290JiZwLnB1c2gobC5zaGFkb3dSb290KSxwLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCEoIWR8fCFkLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkZpcnN0TGluZShkLG8sLi4ucCkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsYz11LmdldFByZXZpb3VzQmxvY2sodC5pZCk7aWYoYyl7bGV0IGI9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHUuZm9jdXNCbG9jayhjLmlkLGIuaW5jbHVkZXMoYy50eXBlKT92b2lkIDA6ImVuZCIpfX19YXN5bmMgaGFuZGxlQXJyb3dEb3duKGUsdCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsYz11LmdldE5leHRCbG9jayh0LmlkKTtpZihjKXtsZXQgYj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKGMuaWQsYi5pbmNsdWRlcyhjLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89dC50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIikscD1bXTtsPy5zaGFkb3dSb290JiZwLnB1c2gobC5zaGFkb3dSb290KSxwLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLnApO2lmKCEoIWR8fCFkLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkxhc3RMaW5lKGQsbywuLi5wKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxjPXUuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKGMpe2xldCBiPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCB1LmZvY3VzQmxvY2soYy5pZCxiLmluY2x1ZGVzKGMudHlwZSk/dm9pZCAwOiJzdGFydCIpfX19Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IHQ9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3Q+PTA7dC0tKXtsZXQgYT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9YXN5bmMgaGFuZGxlQXJyb3dMZWZ0KGUsdCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgYz10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsYj1jLmdldFByZXZpb3VzQmxvY2sodC5pZCk7aWYoYil7bGV0IHY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGMuZm9jdXNCbG9jayhiLmlkLHYuaW5jbHVkZXMoYi50eXBlKT92b2lkIDA6ImVuZCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz10LnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxwPVtdO2w/LnNoYWRvd1Jvb3QmJnAucHVzaChsLnNoYWRvd1Jvb3QpLHAucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPSR0LmdldFNlbGVjdGlvbkluZm8oLi4ucCk7aWYoIWR8fCFkLmNvbGxhcHNlZClyZXR1cm47aWYoJHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobywuLi5wKT09PTApe2xldCBjPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxiPWMuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGIudHlwZSk/dm9pZCAwOiJlbmQiO2F3YWl0IGMuZm9jdXNCbG9jayhiLmlkLHgpfX19YXN5bmMgaGFuZGxlQXJyb3dSaWdodChlLHQpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0LnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGI9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHY9Yi5nZXROZXh0QmxvY2sodC5pZCk7aWYodil7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGIuZm9jdXNCbG9jayh2LmlkLHguaW5jbHVkZXModi50eXBlKT92b2lkIDA6InN0YXJ0Iil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXQudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgbD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLHA9W107bD8uc2hhZG93Um9vdCYmcC5wdXNoKGwuc2hhZG93Um9vdCkscC5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGQ9JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5wKTtpZighZHx8IWQuY29sbGFwc2VkKXJldHVybjtsZXQgdT0kdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLnApLGM9by50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1jKXtsZXQgYj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsdj1iLmdldE5leHRCbG9jayh0LmlkKTtpZih2KXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGIuZm9jdXNCbG9jayh2LmlkLHguaW5jbHVkZXModi50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1pc09uRmlyc3RMaW5lKGUsdCwuLi5hKXt0cnl7bGV0IHI9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKSxuPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgbD1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHA9bi50b3AtbC50b3A8NTtyZXR1cm4gby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKT8kdC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmEpPT09MDpwfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGZpcnN0IGxpbmU6IixyKSxlLnN0YXJ0T2Zmc2V0PT09MH19aXNPbkxhc3RMaW5lKGUsdCwuLi5hKXt0cnl7bGV0IHI9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKSxuPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgcD1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbS1uLmJvdHRvbTw1O2lmKG8udGV4dENvbnRlbnQmJiFvLnRleHRDb250ZW50LmluY2x1ZGVzKGAKYCkpe2xldCBkPXQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gJHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodCwuLi5hKT09PWR9cmV0dXJuIHB9Y2F0Y2gocil7Y29uc29sZS53YXJuKCJFcnJvciBjaGVja2luZyBsYXN0IGxpbmU6IixyKTtsZXQgbj10LnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuICR0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHQsLi4uYSk9PT1ufX19fSk7dmFyIEcxZSxndmE9ZygoKT0+e0xsKCk7U3goKTtHMWU9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0RyYWdEcm9wSGFuZGxlciIpfWNvbXBvbmVudDtkcmFnZ2VkQmxvY2tJZD1udWxsO2RyYWdPdmVyQmxvY2tJZD1udWxsO2RyYWdPdmVyUG9zaXRpb249bnVsbDtkcm9wSW5kaWNhdG9yPW51bGw7aW5pdGlhbE1vdXNlWT0wO2luaXRpYWxCbG9ja1k9MDtkcmFnZ2VkQmxvY2tFbGVtZW50PW51bGw7ZHJhZ2dlZEJsb2NrSGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wO2RyYWdnZWRCbG9ja01hcmdpblRvcD0wO2xhc3RVcGRhdGVUaW1lPTA7dXBkYXRlVGhyb3R0bGU9ODA7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1nZXQgZHJhZ1N0YXRlKCl7cmV0dXJue2RyYWdnZWRCbG9ja0lkOnRoaXMuZHJhZ2dlZEJsb2NrSWQsZHJhZ092ZXJCbG9ja0lkOnRoaXMuZHJhZ092ZXJCbG9ja0lkLGRyYWdPdmVyUG9zaXRpb246dGhpcy5kcmFnT3ZlclBvc2l0aW9ufX1oYW5kbGVEcmFnU3RhcnQoZSx0KXtpZighZS5kYXRhVHJhbnNmZXIpcmV0dXJuO3RoaXMuZHJhZ2dlZEJsb2NrSWQ9dC5pZCxlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIixlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIix0LmlkKTtsZXQgYT1uZXcgSW1hZ2U7aWYoYS5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShhLDAsMCksdGhpcy5pbml0aWFsTW91c2VZPWUuY2xpZW50WSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgcj10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbml0aWFsQmxvY2tZPXIudG9wO2xldCBuPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihuKXtsZXQgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9cGFyc2VJbnQobC5tYXJnaW5Ub3ApfHwwLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD1vLmhlaWdodH10aGlzLmRyYWdnZWRCbG9ja0hlaWdodD1yLmhlaWdodCxjb25zb2xlLmxvZygiRHJhZyBtZWFzdXJlbWVudHM6Iix7d3JhcHBlckhlaWdodDpyLmhlaWdodCxtYXJnaW5Ub3A6dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AsZHJvcEluZGljYXRvckhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxjb250ZW50SGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxibG9ja0lkOnQuaWR9KSx0aGlzLmNyZWF0ZURyb3BJbmRpY2F0b3IoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKX10aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD10aGlzLmRyYWdnZWRCbG9ja0lkLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQmJnRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sMTApfWhhbmRsZURyYWdFbmQoKXt0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaCh0PT57dC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIsIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSx0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IiksdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIil9KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD0wLHRoaXMuaW5pdGlhbEJsb2NrWT0wLHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyYWdPdmVyKGUsdCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCFlLmRhdGFUcmFuc2Zlcnx8IXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT10LmlkKXJldHVybjtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIjtsZXQgYT1lLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1hLnRvcCthLmhlaWdodC8yO3RoaXMuZHJhZ092ZXJCbG9ja0lkPXQuaWQsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPWUuY2xpZW50WTxyPyJiZWZvcmUiOiJhZnRlciIsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPXRoaXMuZHJhZ092ZXJCbG9ja0lkLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249dGhpcy5kcmFnT3ZlclBvc2l0aW9ufWhhbmRsZURyYWdMZWF2ZShlKXt0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWUuaWQmJih0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbCl9aGFuZGxlRHJvcChlLHQpe2UucHJldmVudERlZmF1bHQoKSwhKCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09dC5pZCkmJnRoaXMuY29tcG9uZW50LmhhbmRsZURyb3AoZSx0KX1pc0RyYWdnaW5nKGUpe3JldHVybiB0aGlzLmRyYWdnZWRCbG9ja0lkPT09ZX1pc0RyYWdPdmVyKGUpe3JldHVybiB0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWV9Z2V0RHJhZ092ZXJDbGFzc2VzKGUpe3JldHVybiB0aGlzLmlzRHJhZ092ZXIoZSk/dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImJlZm9yZSI/ImRyYWctb3Zlci1iZWZvcmUiOiJkcmFnLW92ZXItYWZ0ZXIiOiIifWNyZWF0ZURyb3BJbmRpY2F0b3IoKXt0aGlzLmRyb3BJbmRpY2F0b3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5kcm9wSW5kaWNhdG9yLmNsYXNzTmFtZT0iZHJvcC1pbmRpY2F0b3IiLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcil9aGFuZGxlR2xvYmFsRHJhZ092ZXI9aShlPT57aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO2xldCB0PWUuY2xpZW50WS10aGlzLmluaXRpYWxNb3VzZVk7dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3R9cHgpYDtsZXQgYT1EYXRlLm5vdygpO2EtdGhpcy5sYXN0VXBkYXRlVGltZTx0aGlzLnVwZGF0ZVRocm90dGxlfHwodGhpcy5sYXN0VXBkYXRlVGltZT1hLHRoaXMudXBkYXRlQmxvY2tQb3NpdGlvbnMoZS5jbGllbnRZKSl9LCJoYW5kbGVHbG9iYWxEcmFnT3ZlciIpO3VwZGF0ZUJsb2NrUG9zaXRpb25zKGUpe2xldCB0PUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKSxhPXQuZmluZEluZGV4KG49Pm4uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihhPT09LTEpcmV0dXJuO3QuZm9yRWFjaChuPT57bi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSE9PXRoaXMuZHJhZ2dlZEJsb2NrSWQmJihuLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxuLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IikpfSk7bGV0IHI9dC5sZW5ndGg7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBsPXRbbl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1sLnRvcDtpZihlPHArbC5oZWlnaHQqLjUpe3I9bjticmVha319Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKG49PT1hKWNvbnRpbnVlO2xldCBvPXRbbl07YTxyP24+YSYmbjxyJiYoby5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIiksby5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSk6YT5yJiZuPj1yJiZuPGEmJihvLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpLG8uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpfXRoaXMudXBkYXRlRHJvcEluZGljYXRvcih0LHIsYSl9dXBkYXRlRHJvcEluZGljYXRvcihlLHQsYSl7aWYoIXRoaXMuZHJvcEluZGljYXRvcnx8IXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgcj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49MCxvPVtdO2ZvcihsZXQgZD0wO2Q8ZS5sZW5ndGg7ZCsrKXtpZihkPT09YSljb250aW51ZTtsZXQgdT1lW2RdLGM9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWMudG9wLXIudG9wLHY9Yy5ib3R0b20tci50b3AseD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh1KS50cmFuc2Zvcm07aWYoeCYmeCE9PSJub25lIil7bGV0IGY9bmV3IERPTU1hdHJpeCh4KS5tNDI7Yis9Zix2Kz1mfW8ucHVzaCh7aW5kZXg6ZCx0b3A6Yixib3R0b206dn0pfW8uc29ydCgoZCx1KT0+ZC50b3AtdS50b3ApO2xldCBsPXQ7dD5hJiZsLS07bGV0IHA9MTY7aWYodGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgZD10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoZCl7bGV0IHU9ZC50eXBlO3U9PT0iaGVhZGluZy0xInx8dT09PSJoZWFkaW5nLTIifHx1PT09ImhlYWRpbmctMyI/cD0yNDoodT09PSJjb2RlInx8dT09PSJxdW90ZSIpJiYocD0yMCl9fWlmKGw9PT0wKW49MDtlbHNlIGlmKGw+PW8ubGVuZ3RoKXtsZXQgZD1vW28ubGVuZ3RoLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfWVsc2V7bGV0IGQ9b1tsLTFdO2QmJihuPWQuYm90dG9tLG4rPXApfXRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5oZWlnaHQ9YCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS50b3A9YCR7TWF0aC5tYXgoMCxuKX1weGAsY29uc29sZS5sb2coIkRyb3AgaW5kaWNhdG9yIHVwZGF0ZToiLHt0YXJnZXRJbmRleDp0LGFkanVzdGVkVGFyZ2V0SW5kZXg6bCxkcmFnZ2VkSW5kZXg6YSx0b3BQb3NpdGlvbjpuLGhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxibG9ja01hcmdpbjpwLHZpc3VhbEJsb2NrczpvLm1hcChkPT4oe2luZGV4OmQuaW5kZXgsdG9wOmQudG9wLGJvdHRvbTpkLmJvdHRvbX0pKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQ9aSgoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuZHJvcEluZGljYXRvciYmKHRoaXMuZHJvcEluZGljYXRvci5yZW1vdmUoKSx0aGlzLmRyb3BJbmRpY2F0b3I9bnVsbCksdGhpcy5kcmFnZ2VkQmxvY2tJZD9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnBlcmZvcm1Ecm9wKCksdGhpcy5oYW5kbGVEcmFnRW5kKCl9KTp0aGlzLmhhbmRsZURyYWdFbmQoKX0sImhhbmRsZUdsb2JhbERyYWdFbmQiKTtwZXJmb3JtRHJvcCgpe2lmKCF0aGlzLmRyYWdnZWRCbG9ja0lkKXJldHVybjtsZXQgZT1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSk7aWYoIWUuZmluZCh1PT51LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCkpcmV0dXJuO2xldCBhPWUubWFwKHU9PntsZXQgYz11LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpLGI9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PWIudG9wK2IuaGVpZ2h0LzI7cmV0dXJue2lkOmMsY2VudGVyWTp2LGVsZW1lbnQ6dX19KTthLnNvcnQoKHUsYyk9PnUuY2VudGVyWS1jLmNlbnRlclkpO2xldCByPWEubWFwKHU9PnUuaWQpLmZpbHRlcih1PT51IT09bnVsbCksbj1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxvPW4uZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoIW8pcmV0dXJuO2xldCBsPW4ubWFwKHU9PnUuaWQpO2lmKCEhci5ldmVyeSgodSxjKT0+dT09PWxbY10pKXJldHVybjtsZXQgZD1yLm1hcCh1PT5uLmZpbmQoYz0+Yy5pZD09PXUpKS5maWx0ZXIoQm9vbGVhbik7dGhpcy5jb21wb25lbnQuYmxvY2tzPWQsdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksc2V0VGltZW91dCgoKT0+e28udHlwZSE9PSJkaXZpZGVyIiYmdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soby5pZCl9LDEwMCl9fX0pO3ZhciBLMWUsYnZhPWcoKCk9PntMbCgpO0sxZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnSGlzdG9yeSIpfWhpc3Rvcnk9W107Y3VycmVudEluZGV4PS0xO21heEhpc3RvcnlTaXplPTUwO2xhc3RTYXZlVGltZT0wO3NhdmVEZWJvdW5jZU1zPTUwMDtjb25zdHJ1Y3Rvcigpe3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMX1zYXZlU3RhdGUoZSx0LGEpe2xldCByPURhdGUubm93KCk7aWYoci10aGlzLmxhc3RTYXZlVGltZTx0aGlzLnNhdmVEZWJvdW5jZU1zJiZ0aGlzLmN1cnJlbnRJbmRleD49MCl7dGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XT17YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZSksc2VsZWN0ZWRCbG9ja0lkOnQsY3Vyc29yUG9zaXRpb246YT97Li4uYX06dm9pZCAwLHRpbWVzdGFtcDpyfTtyZXR1cm59dGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xJiYodGhpcy5oaXN0b3J5PXRoaXMuaGlzdG9yeS5zbGljZSgwLHRoaXMuY3VycmVudEluZGV4KzEpKTtsZXQgbj17YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZSksc2VsZWN0ZWRCbG9ja0lkOnQsY3Vyc29yUG9zaXRpb246YT97Li4uYX06dm9pZCAwLHRpbWVzdGFtcDpyfTt0aGlzLmhpc3RvcnkucHVzaChuKSx0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuaGlzdG9yeS5sZW5ndGg+dGhpcy5tYXhIaXN0b3J5U2l6ZSYmKHRoaXMuaGlzdG9yeS5zaGlmdCgpLHRoaXMuY3VycmVudEluZGV4LS0pLHRoaXMubGFzdFNhdmVUaW1lPXJ9c2F2ZUNoZWNrcG9pbnQoZSx0LGEpe3RoaXMubGFzdFNhdmVUaW1lPTAsdGhpcy5zYXZlU3RhdGUoZSx0LGEpfXVuZG8oKXtyZXR1cm4gdGhpcy5jYW5VbmRvKCk/KHRoaXMuY3VycmVudEluZGV4LS0sdGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pKTpudWxsfXJlZG8oKXtyZXR1cm4gdGhpcy5jYW5SZWRvKCk/KHRoaXMuY3VycmVudEluZGV4KyssdGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pKTpudWxsfWNhblVuZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg+MH1jYW5SZWRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMX1nZXRDdXJyZW50U3RhdGUoKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg+PTAmJnRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGg/dGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pOm51bGx9Y2xlYXIoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTEsdGhpcy5sYXN0U2F2ZVRpbWU9MH1jbG9uZUJsb2NrcyhlKXtyZXR1cm4gZS5tYXAodD0+KHsuLi50LG1ldGFkYXRhOnQubWV0YWRhdGE/ey4uLnQubWV0YWRhdGF9OnZvaWQgMH0pKX1jbG9uZVN0YXRlKGUpe3JldHVybntibG9ja3M6dGhpcy5jbG9uZUJsb2NrcyhlLmJsb2Nrcyksc2VsZWN0ZWRCbG9ja0lkOmUuc2VsZWN0ZWRCbG9ja0lkLGN1cnNvclBvc2l0aW9uOmUuY3Vyc29yUG9zaXRpb24/ey4uLmUuY3Vyc29yUG9zaXRpb259OnZvaWQgMCx0aW1lc3RhbXA6ZS50aW1lc3RhbXB9fWdldEhpc3RvcnlJbmZvKCl7cmV0dXJue3NpemU6dGhpcy5oaXN0b3J5Lmxlbmd0aCxjdXJyZW50SW5kZXg6dGhpcy5jdXJyZW50SW5kZXgsY2FuVW5kbzp0aGlzLmNhblVuZG8oKSxjYW5SZWRvOnRoaXMuY2FuUmVkbygpfX19fSk7dmFyIGpRLEZ1LFFKYSx2dmE9ZygoKT0+e3BlKCk7TGwoKTtSdSgpO1hkKCk7JG50KCk7RG50KCk7WmcoKTtmcigpO2h0KCk7alE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEZ1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxRSmE9KCgpPT57bGV0IHM9W25lKCJkZWVzLXd5c2l3eWctYmxvY2siKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1d5c2l3eWdCbG9jayIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6Qm9vbGVhbn0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSxqUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJsb2NrIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJibG9jayJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJsb2NrLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouYmxvY2s9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLGpRKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTZWxlY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNTZWxlY3RlZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzU2VsZWN0ZWQsImdldCIpLHNldDppKCh6LE4pPT57ei5pc1NlbGVjdGVkPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxqUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhhbmRsZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJoYW5kbGVycyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmhhbmRsZXJzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaGFuZGxlcnM9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGpRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid3lzaXd5Z0NvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4id3lzaXd5Z0NvbXBvbmVudCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lnd5c2l3eWdDb21wb25lbnQsImdldCIpLHNldDppKCh6LE4pPT57ei53eXNpd3lnQ29tcG9uZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxqUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXIpfSNlPUZ1KHRoaXMsbyx2b2lkIDApO2dldCBibG9jaygpe3JldHVybiB0aGlzLiNlfXNldCBibG9jayhNKXt0aGlzLiNlPU19I3Q9KEZ1KHRoaXMsbCksRnUodGhpcyxkLCExKSk7Z2V0IGlzU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNTZWxlY3RlZChNKXt0aGlzLiN0PU19I2E9KEZ1KHRoaXMsdSksRnUodGhpcyxiLHZvaWQgMCkpO2dldCBoYW5kbGVycygpe3JldHVybiB0aGlzLiNhfXNldCBoYW5kbGVycyhNKXt0aGlzLiNhPU19I3M9KEZ1KHRoaXMsdiksRnUodGhpcyxtLHZvaWQgMCkpO2dldCB3eXNpd3lnQ29tcG9uZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHd5c2l3eWdDb21wb25lbnQoTSl7dGhpcy4jcz1NfWJsb2NrRWxlbWVudD0oRnUodGhpcyxmKSxudWxsKTtjb250ZW50SW5pdGlhbGl6ZWQ9ITE7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO2hhbmRsZXJTdHlsZXNJbmplY3RlZD0hMTtzdGF0aWMgTk9OX0VESVRBQkxFX1RZUEVTPVsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSJdO2luamVjdEhhbmRsZXJTdHlsZXMoKXtpZih0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZClyZXR1cm47dGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITA7bGV0IE09IiIsej1Bcy5nZXRBbGxUeXBlcygpO2ZvcihsZXQgTiBvZiB6KXtsZXQgQz1Bcy5nZXRIYW5kbGVyKE4pO0MmJihNKz1DLmdldFN0eWxlcygpKX1pZihNKXtsZXQgTj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO04udGV4dENvbnRlbnQ9TSx0aGlzLnNoYWRvd1Jvb3Q/LmFwcGVuZENoaWxkKE4pfX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYmxvY2sgewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuYmxvY2s6ZW1wdHk6bm90KDpmb2N1cyk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogQmxvY2stc3BlY2lmaWMgc3R5bGVzIG1vdmVkIHRvIGhhbmRsZXJzICovCgoKICAgICAgLyogRm9ybWF0dGluZyBzdHlsZXMgKi8KICAgICAgLmJsb2NrIDppcyhiLCBzdHJvbmcpIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jayA6aXMoaSwgZW0pIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5ibG9jayB1IHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmJsb2NrIHMgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuYmxvY2sgY29kZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkMTQiLCIjZmY2YjZiIil9OwogICAgICB9CgogICAgICAuYmxvY2sgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmJsb2NrIGE6aG92ZXIgewogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9jayBjb250YWluZXIgYW5kIGxhbmd1YWdlIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVyICovCgogICAgICAvKiBTZWxlY3Rpb24gc3R5bGVzICovCiAgICAgIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMykiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQoKCiAgICAgIC8qIFN0cmlrZSB0aHJvdWdoICovCiAgICAgIC5ibG9jayA6aXMocywgc3RyaWtlKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgoKICAgICAgLyogQmxvY2sgbWFyZ2luIGFkanVzdG1lbnRzIGJhc2VkIG9uIHR5cGUgKi8KICAgICAgOmhvc3QtY29udGV4dCguYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBTZWxlY3RlZCBzdGF0ZSAqLwogICAgICAuYmxvY2suc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMikiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKICAgICAgfQoKCgoKICAgIGBdO3Nob3VsZFVwZGF0ZShNKXtpZihNLmhhcygiaXNTZWxlY3RlZCIpJiZ0aGlzLmJsb2NrKXtsZXQgej1udWxsLEM9YC5ibG9jay4ke3RoaXMuYmxvY2sudHlwZX1gO3JldHVybiB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihDKSx6JiYodGhpcy5pc1NlbGVjdGVkP3ouY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTp6LmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIikpLCExfWlmKE0uaGFzKCJibG9jayIpJiZ0aGlzLmJsb2NrKXtsZXQgej1NLmdldCgiYmxvY2siKTtpZih6JiZ6LmlkJiZ6LnR5cGUmJnouaWQ9PT10aGlzLmJsb2NrLmlkJiZ6LnR5cGU9PT10aGlzLmJsb2NrLnR5cGUpcmV0dXJuITF9cmV0dXJuIXRoaXMuYmxvY2tFbGVtZW50fHx0aGlzLmJsb2NrPy50eXBlIT09dGhpcy5ibG9ja0VsZW1lbnQuZGF0YXNldC5ibG9ja1R5cGV9Zmlyc3RVcGRhdGVkKCl7dGhpcy5jb250ZW50SW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbmplY3RIYW5kbGVyU3R5bGVzKCk7bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKTtpZihNJiZ0aGlzLmJsb2NrJiYoTS5pbm5lckhUTUw9dGhpcy5yZW5kZXJCbG9ja0NvbnRlbnQoKSksdGhpcy5ibG9jayl7bGV0IE49QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE4pe2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7QyYmTi5zZXR1cChDLHRoaXMuYmxvY2ssdGhpcy5oYW5kbGVycyk7cmV0dXJufX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKHope3ouc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIix0aGlzLmJsb2NrLmlkKSx6LnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay10eXBlIix0aGlzLmJsb2NrLnR5cGUpLHouYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLEM9Pnt0aGlzLmhhbmRsZXJzPy5vbklucHV0Py4oQyk7bGV0IF89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtfIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249Xyl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEM9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKSx0aGlzLmhhbmRsZXJzPy5vbktleURvd24/LihDKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Gb2N1cz8uKCl9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57dGhpcy5oYW5kbGVycz8ub25CbHVyPy4oKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uU3RhcnQ/LigpfSksei5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uRW5kPy4oKX0pLHouYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsQz0+e2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pLHRoaXMuaGFuZGxlcnM/Lm9uTW91c2VVcD8uKEMpfSksei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntzZXRUaW1lb3V0KCgpPT57bGV0IEM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih6KTtDIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249Qyl9LDApfSk7bGV0IE49aSgoKT0+e2xldCBDPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighQ3x8Qy5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IF89Qy50b1N0cmluZygpO2lmKF8ubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6IiIsYmxvY2tJZDp0aGlzLmJsb2NrLmlkLGhhc1NlbGVjdGlvbjohMX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSk7cmV0dXJufWxldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU8pcmV0dXJuO2xldCBFPXRoaXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsSD1bXTtFJiZILnB1c2goRSksdGhpcy5zaGFkb3dSb290JiZILnB1c2godGhpcy5zaGFkb3dSb290KTtsZXQgaz0kdC5nZXRTZWxlY3Rpb25JbmZvKC4uLkgpO2lmKCFrKXJldHVybjtsZXQgUz0kdC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShPLGsuc3RhcnRDb250YWluZXIpLEk9JHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTyxrLmVuZENvbnRhaW5lcik7aWYoU3x8SSl7aWYoXyE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PV87bGV0IFA9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhrKSxSPVAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDpfLnRyaW0oKSxibG9ja0lkOnRoaXMuYmxvY2suaWQscmFuZ2U6UCxyZWN0OlIsaGFzU2VsZWN0aW9uOiEwfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLE4pLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXI9Tix6LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwoKT0+e2xldCBDPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oeik7QyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPUMpfSksdGhpcy5ibG9jay5jb250ZW50JiYoei5pbm5lckhUTUw9dGhpcy5ibG9jay5jb250ZW50KX10aGlzLmJsb2NrRWxlbWVudD16fXJlbmRlcigpe3JldHVybiB0aGlzLmJsb2NrP01uYDxkaXYgY2xhc3M9Ind5c2l3eWctYmxvY2stY29udGFpbmVyIj48L2Rpdj5gOk1uYGB9cmVuZGVyQmxvY2tDb250ZW50KCl7aWYoIXRoaXMuYmxvY2spcmV0dXJuIiI7bGV0IE09QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0pcmV0dXJuIE0ucmVuZGVyKHRoaXMuYmxvY2ssdGhpcy5pc1NlbGVjdGVkKTtsZXQgej10aGlzLmlzU2VsZWN0ZWQ/IiBzZWxlY3RlZCI6IiI7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7dGhpcy5ibG9jay50eXBlfSR7en0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICA+PC9kaXY+CiAgICBgfWZvY3VzKCl7bGV0IE09QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZm9jdXMpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmZvY3VzKE4sQyl9aWYodGhpcy5ibG9jayYmeS5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YCk7TiYmTi5mb2N1cygpO3JldHVybn1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3omJih6Lmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHouc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksei5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT16JiZ0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT16JiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57ei5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihNPSJlbmQiKXtsZXQgej1Bcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoeiYmei5mb2N1c1dpdGhDdXJzb3Ipe2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB6LmZvY3VzV2l0aEN1cnNvcihfLE0sTyl9aWYodGhpcy5ibG9jayYmeS5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7dGhpcy5mb2N1cygpO3JldHVybn1sZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFOKXJldHVybjtOLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fE4uc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksTi5mb2N1cygpO2xldCBDPWkoKCk9PntNPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoKTpNPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZCgpOnR5cGVvZiBNPT0ibnVtYmVyIiYmJHQuc2V0Q3Vyc29yUG9zaXRpb24oTixNKX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OP0MoKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OKSYmQygpfSl9Z2V0Q3Vyc29yUG9zaXRpb24oTSl7bGV0IHo9QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHomJnouZ2V0Q3Vyc29yUG9zaXRpb24pe2xldCBIPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHouZ2V0Q3Vyc29yUG9zaXRpb24oTSxIKX1sZXQgQz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LF89W107QyYmXy5wdXNoKEMpLHRoaXMuc2hhZG93Um9vdCYmXy5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IE89JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5fKTtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFNlbGVjdGlvbiBpbmZvIGZyb20gc2hhZG93IERPTXM6Iix7c2VsZWN0aW9uSW5mbzpPLHNoYWRvd1Jvb3RzQ291bnQ6Xy5sZW5ndGh9KSwhTylyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBObyBzZWxlY3Rpb24gZm91bmQiKSxudWxsO2lmKGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2UgaW5mbzoiLHtzdGFydENvbnRhaW5lcjpPLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0Ok8uc3RhcnRPZmZzZXQsY29sbGFwc2VkOk8uY29sbGFwc2VkLHN0YXJ0Q29udGFpbmVyVGV4dDpPLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fSksIU0uY29udGFpbnMoTy5zdGFydENvbnRhaW5lcikpcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2Ugbm90IGluIGVsZW1lbnQiKSxudWxsO2xldCAkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7JC5zZWxlY3ROb2RlQ29udGVudHMoTSksJC5zZXRFbmQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KTtsZXQgRT0kLnRvU3RyaW5nKCkubGVuZ3RoO3JldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IENhbGN1bGF0ZWQgcG9zaXRpb246Iix7cG9zaXRpb246RSxwcmVDYXJldFRleHQ6JC50b1N0cmluZygpLGVsZW1lbnRUZXh0Ok0udGV4dENvbnRlbnQsZWxlbWVudFRleHRMZW5ndGg6TS50ZXh0Q29udGVudD8ubGVuZ3RofSksRX1nZXRDb250ZW50KCl7bGV0IE09QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZ2V0Q29udGVudCl7bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxfPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uZ2V0Q29udGVudChDLF8pfWxldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXopcmV0dXJuIiI7bGV0IE49ei5pbm5lckhUTUx8fCIiO3JldHVybiBjb25zb2xlLmxvZygiR2V0dGluZyBjb250ZW50IGZyb20gYmxvY2s6IixOKSxOfXNldENvbnRlbnQoTSl7bGV0IHo9QXMuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHomJnouc2V0Q29udGVudCl7bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxPPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHouc2V0Q29udGVudChfLE0sTyl9bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47bGV0IEM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PU58fHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PU47Ti5pbm5lckhUTUw9TSxDJiZOLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydCgpe2xldCBNPUFzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLnNldEN1cnNvclRvU3RhcnQpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLnNldEN1cnNvclRvU3RhcnQoTixDKX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3omJm1uLnNldEN1cnNvclRvU3RhcnQoeil9c2V0Q3Vyc29yVG9FbmQoKXtsZXQgTT1Bcy5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSYmTS5zZXRDdXJzb3JUb0VuZCl7bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxDPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uc2V0Q3Vyc29yVG9FbmQoTixDKX1sZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3omJm1uLnNldEN1cnNvclRvRW5kKHopfWdldENvbnRleHRNZW51SXRlbXMoKXtpZighdGhpcy5ibG9ja3x8dGhpcy5ibG9jay50eXBlPT09ImRpdmlkZXIiKXJldHVybltdO2xldCBNPUlyLmdldFNsYXNoTWVudUl0ZW1zKCksej10aGlzLmJsb2NrLnR5cGUsTj10aGlzLnd5c2l3eWdDb21wb25lbnQsQz10aGlzLmJsb2NrLmlkLE89W3tuYW1lOiJDaGFuZ2UgVHlwZSIsaWNvbk5hbWU6InR5cGUiLHN1Ym1lbnU6TS5maWx0ZXIoJD0+JC50eXBlIT09eiYmJC50eXBlIT09ImRpdmlkZXIiKS5tYXAoJD0+KHtuYW1lOiQubGFiZWwsaWNvbk5hbWU6JC5pY29uLnJlcGxhY2UoImx1Y2lkZToiLCIiKSxhY3Rpb246aShhc3luYygpPT57aWYoTiYmTi5ibG9ja09wZXJhdGlvbnMpe2xldCBFPU4uYmxvY2tzLmZpbmQoSD0+SC5pZD09PUMpO0UmJihFLnR5cGU9JC50eXBlLEUuY29udGVudD1FLmNvbnRlbnR8fCIiLCQudHlwZT09PSJjb2RlIj9FLm1ldGFkYXRhPXtsYW5ndWFnZToidHlwZXNjcmlwdCJ9OiQudHlwZT09PSJsaXN0Ij9FLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In06JC50eXBlPT09ImltYWdlIj8oRS5jb250ZW50PSIiLEUubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6JC50eXBlPT09InlvdXR1YmUiPyhFLmNvbnRlbnQ9IiIsRS5tZXRhZGF0YT17dmlkZW9JZDoiIix1cmw6IiJ9KTokLnR5cGU9PT0ibWFya2Rvd24iP0UubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTokLnR5cGU9PT0iaHRtbCI/RS5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OiQudHlwZT09PSJhdHRhY2htZW50IiYmKEUuY29udGVudD0iIixFLm1ldGFkYXRhPXtmaWxlczpbXX0pLE4udXBkYXRlQmxvY2tFbGVtZW50KEMpLE4udXBkYXRlVmFsdWUoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntOLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEMpfSkpfX0sImFjdGlvbiIpfSkpfV07cmV0dXJuWyJpbWFnZSIsImRpdmlkZXIiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSl8fE8ucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsaWNvbk5hbWU6InNjaXNzb3JzIixzaG9ydGN1dDoiQ21kK1giLGFjdGlvbjppKGFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgiY3V0Iil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjppKGFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoInBhc3RlIil9LCJhY3Rpb24iKX0pLE8ucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBCbG9jayIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e04mJk4uYmxvY2tPcGVyYXRpb25zJiZOLmJsb2NrT3BlcmF0aW9ucy5kZWxldGVCbG9jayhDKX0sImFjdGlvbiIpfSksT31nZXRTcGxpdENvbnRlbnQoKXtjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTdGFydGluZy4uLiIpO2xldCBNPUFzLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDaGVja2luZyBmb3IgaGFuZGxlciIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaGFzSGFuZGxlcjohIU0saGFzU3BsaXRNZXRob2Q6ISEoTSYmTS5nZXRTcGxpdENvbnRlbnQpfSksTSYmTS5nZXRTcGxpdENvbnRlbnQpe2xldCBLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRm91bmQgY29udGFpbmVyIix7Y29udGFpbmVyOiEhSyxjb250YWluZXJIVE1MOks/LmlubmVySFRNTD8uc3Vic3RyaW5nKDAsMTAwKX0pO2xldCBWPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uZ2V0U3BsaXRDb250ZW50KEssVil9bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZigheilyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogTm8gZWRpdGFibGUgZWxlbWVudCBmb3VuZCIpLG51bGw7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRWxlbWVudCBpbmZvOiIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaW5uZXJIVE1MOnouaW5uZXJIVE1MLHRleHRDb250ZW50OnoudGV4dENvbnRlbnQsdGV4dExlbmd0aDp6LnRleHRDb250ZW50Py5sZW5ndGh9KTtsZXQgQz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LF89W107QyYmXy5wdXNoKEMpLHRoaXMuc2hhZG93Um9vdCYmXy5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IE89JHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5fKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TyxzaGFkb3dSb290c0NvdW50Ol8ubGVuZ3RofSksIU8pe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIHNlbGVjdGlvbiwgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgSz16LnRleHRDb250ZW50fHwiIixWPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sSy5sZW5ndGgpO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTcGxpdHRpbmcgd2l0aCBsYXN0IGtub3duIHBvc2l0aW9uOiIse3BvczpWLGZ1bGxUZXh0TGVuZ3RoOksubGVuZ3RoLGJlZm9yZTpLLnN1YnN0cmluZygwLFYpLGFmdGVyOksuc3Vic3RyaW5nKFYpfSkse2JlZm9yZTpLLnN1YnN0cmluZygwLFYpLGFmdGVyOksuc3Vic3RyaW5nKFYpfX1yZXR1cm4gbnVsbH1pZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gcmFuZ2U6Iix7c3RhcnRDb250YWluZXI6Ty5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpPLnN0YXJ0T2Zmc2V0LHN0YXJ0Q29udGFpbmVySW5FbGVtZW50OnouY29udGFpbnMoTy5zdGFydENvbnRhaW5lcil9KSwhJHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oeixPLnN0YXJ0Q29udGFpbmVyKSl7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIG5vdCBpbiB0aGlzIGJsb2NrLCB1c2luZyBsYXN0IGtub3duIHBvc2l0aW9uOiIsdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiksdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBLPXoudGV4dENvbnRlbnR8fCIiLFY9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixLLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpLLnN1YnN0cmluZygwLFYpLGFmdGVyOksuc3Vic3RyaW5nKFYpfX1yZXR1cm4gbnVsbH1sZXQgJD10aGlzLmdldEN1cnNvclBvc2l0aW9uKHopO2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBwb3NpdGlvbiBmb3IgSFRNTCBzcGxpdDoiLCQpLCQ9PT1udWxsfHwkPT09MClyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ3Vyc29yIGF0IHN0YXJ0IG9yIG51bGwsIG1vdmluZyBhbGwgY29udGVudCIpLHtiZWZvcmU6IiIsYWZ0ZXI6ei5pbm5lckhUTUx9O2xldCBFPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksSD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO0Uuc2V0U3RhcnQoeiwwKSxFLnNldEVuZChPLnN0YXJ0Q29udGFpbmVyLE8uc3RhcnRPZmZzZXQpLEguc2V0U3RhcnQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KSxILnNldEVuZCh6LHouY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBrPUUuY2xvbmVDb250ZW50cygpLFM9SC5jbG9uZUNvbnRlbnRzKCksST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtJLmFwcGVuZENoaWxkKGspO2xldCBQPUkuaW5uZXJIVE1MO0kuaW5uZXJIVE1MPSIiLEkuYXBwZW5kQ2hpbGQoUyk7bGV0IFI9SS5pbm5lckhUTUw7cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZpbmFsIHNwbGl0IHJlc3VsdDoiLHtjdXJzb3JQb3M6JCxiZWZvcmVIdG1sOlAsYmVmb3JlTGVuZ3RoOlAubGVuZ3RoLGJlZm9yZUh0bWxQcmV2aWV3OlAuc3Vic3RyaW5nKDAsMTAwKSsoUC5sZW5ndGg+MTAwPyIuLi4iOiIiKSxhZnRlckh0bWw6UixhZnRlckxlbmd0aDpSLmxlbmd0aCxhZnRlckh0bWxQcmV2aWV3OlIuc3Vic3RyaW5nKDAsMTAwKSsoUi5sZW5ndGg+MTAwPyIuLi4iOiIiKX0pLHtiZWZvcmU6UCxhZnRlcjpSfX1zdGF0aWN7RnUoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIEVudD1nKCgpPT57WTFlKCk7TGwoKTtTeCgpO3ExZSgpO0piYSgpO3pudCgpO1pnKCk7U250KCk7WGQoKTtSdSgpO0NudCgpO0RudCgpO2Z2YSgpO212YSgpO2d2YSgpO0xudCgpO2J2YSgpO2tudCgpO01udCgpO3Z2YSgpfSk7dmFyIGM0LFluLFoxZSxZMWU9ZygoKT0+e0VpKCk7WGJhKCk7UHUoKTtwZSgpO0VudCgpO2h0KCk7YzQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFluPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxaMWU9KCgpPT57bGV0IHM9W25lKCJkZWVzLWlucHV0LXd5c2l3eWciKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0V3lzaXd5ZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W1koKV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxjNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ2YWx1ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnZhbHVlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudmFsdWU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLGM0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0Rm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdXRwdXRGb3JtYXQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5vdXRwdXRGb3JtYXQsImdldCIpLHNldDppKChTLEkpPT57Uy5vdXRwdXRGb3JtYXQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLGM0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJibG9ja3MiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ibG9ja3MsImdldCIpLHNldDppKChTLEkpPT57Uy5ibG9ja3M9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLGM0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRyYWdnZWRCbG9ja0lkImluIFMsImhhcyIpLGdldDppKFM9PlMuZHJhZ2dlZEJsb2NrSWQsImdldCIpLHNldDppKChTLEkpPT57Uy5kcmFnZ2VkQmxvY2tJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksYzQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImRyYWdPdmVyQmxvY2tJZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmRyYWdPdmVyQmxvY2tJZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmRyYWdPdmVyQmxvY2tJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksYzQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJkcmFnT3ZlclBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuZHJhZ092ZXJQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmRyYWdPdmVyUG9zaXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLGM0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZFRleHQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFRleHQsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFRleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSwkLEUpLGM0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCksSD1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89WmJhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiLCJXb3Jrc3BhY2UiXTsjZT1Zbih0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShrKXt0aGlzLiNlPWt9I3Q9KFluKHRoaXMsbCksWW4odGhpcyxkLCJodG1sIikpO2dldCBvdXRwdXRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3V0cHV0Rm9ybWF0KGspe3RoaXMuI3Q9a30jYT0oWW4odGhpcyx1KSxZbih0aGlzLGIsW3tpZDpJci5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSkpO2dldCBibG9ja3MoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYmxvY2tzKGspe3RoaXMuI2E9a31zZWxlY3RlZEJsb2NrSWQ9KFluKHRoaXMsdiksbnVsbCk7c2xhc2hNZW51PXdudC5nZXRJbnN0YW5jZSgpOyNzPVluKHRoaXMsbSxudWxsKTtnZXQgZHJhZ2dlZEJsb2NrSWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgZHJhZ2dlZEJsb2NrSWQoayl7dGhpcy4jcz1rfSNpPShZbih0aGlzLGYpLFluKHRoaXMsTSxudWxsKSk7Z2V0IGRyYWdPdmVyQmxvY2tJZCgpe3JldHVybiB0aGlzLiNpfXNldCBkcmFnT3ZlckJsb2NrSWQoayl7dGhpcy4jaT1rfSNyPShZbih0aGlzLHopLFluKHRoaXMsQyxudWxsKSk7Z2V0IGRyYWdPdmVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgZHJhZ092ZXJQb3NpdGlvbihrKXt0aGlzLiNyPWt9Zm9ybWF0dGluZ01lbnU9KFluKHRoaXMsXyksX250LmdldEluc3RhbmNlKCkpOyNvPVluKHRoaXMsJCwiIik7Z2V0IHNlbGVjdGVkVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCBzZWxlY3RlZFRleHQoayl7dGhpcy4jbz1rfWVkaXRvckNvbnRlbnRSZWY9WW4odGhpcyxFKTtpc0NvbXBvc2luZz0hMTtibG9ja09wZXJhdGlvbnM7aW5wdXRIYW5kbGVyO2tleWJvYXJkSGFuZGxlcjtkcmFnRHJvcEhhbmRsZXI7aGlzdG9yeTtzdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYmFdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmJsb2NrT3BlcmF0aW9ucz1uZXcgajFlKHRoaXMpLHRoaXMuaW5wdXRIYW5kbGVyPW5ldyBVMWUodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IFcxZSh0aGlzKSx0aGlzLmRyYWdEcm9wSGFuZGxlcj1uZXcgRzFlKHRoaXMpLHRoaXMuaGlzdG9yeT1uZXcgSzFlfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBrPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP0MyLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOkMyLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtrLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9ayl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGs9PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soaykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsKGs9PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmay5kZXRhaWwuaGFzU2VsZWN0aW9uJiZrLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9ay5kZXRhaWwudGV4dCxrLmRldGFpbC5yZWN0KSl7bGV0IFM9e3g6ay5kZXRhaWwucmVjdC5sZWZ0K2suZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LGsuZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KFMsYXN5bmMgST0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChJKSl9fSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaz0+e2xldCBTPXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKFMmJlMuY29udGFpbnMoay50YXJnZXQpKXJldHVybjtsZXQgST13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7SSYmSS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixrPT57bGV0IFM9ay50YXJnZXQ7IXRoaXMuY29udGFpbnMoUykmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKFMpfHwoKGsubWV0YUtleXx8ay5jdHJsS2V5KSYmIWsuc2hpZnRLZXkmJmsua2V5PT09InoiPyhrLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihrLm1ldGFLZXl8fGsuY3RybEtleSkmJmsuc2hpZnRLZXkmJmsua2V5PT09InoiJiYoay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKGs9PntsZXQgUz10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChrKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoUyl9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKFMuY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIixTLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsay5pZCksay50eXBlIT09ImRpdmlkZXIiKXtsZXQgUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtQLmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLFAuZHJhZ2dhYmxlPSEwLFAuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixSPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoUixrKSksUy5hcHBlbmRDaGlsZChQKX1sZXQgST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gSS5ibG9jaz1rLEkuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PWsuaWQsSS53eXNpd3lnQ29tcG9uZW50PXRoaXMsSS5oYW5kbGVycz17b25JbnB1dDppKFA9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoUCxrKSwib25JbnB1dCIpLG9uS2V5RG93bjppKFA9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bihQLGspLCJvbktleURvd24iKSxvbkZvY3VzOmkoKCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhrKSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihrKSwib25CbHVyIiksb25Db21wb3NpdGlvblN0YXJ0OmkoKCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsIm9uQ29tcG9zaXRpb25TdGFydCIpLG9uQ29tcG9zaXRpb25FbmQ6aSgoKT0+dGhpcy5pc0NvbXBvc2luZz0hMSwib25Db21wb3NpdGlvbkVuZCIpLG9uTW91c2VVcDppKFA9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihQKSwib25Nb3VzZVVwIiksb25SZXF1ZXN0VXBkYXRlOmkoKCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KGsuaWQpLCJvblJlcXVlc3RVcGRhdGUiKX0sUy5hcHBlbmRDaGlsZChJKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixQPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcihQLGspKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLFA9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoUCxrKSksUy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoaykpLFN9dXBkYXRlQmxvY2tFbGVtZW50KGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PWspO2lmKCFTKXJldHVybjtsZXQgST10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7a30iXWApO2lmKCFJKXJldHVybjtsZXQgUD10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChTKTtJLnJlcGxhY2VXaXRoKFApfXJlbmRlcigpe3JldHVybiBNbmAKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmluZm9UZXh0PSIke3RoaXMuaW5mb1RleHR9IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGspe3N3aXRjaChrLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmsucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoaz0hMSl7aWYoayYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoST0+SS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZihTKXtsZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1AuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoayl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCBTPXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuaWQsUyE9PWsuaWQpe2lmKFMpe2xldCBLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7U30iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtLJiYoSy5pc1NlbGVjdGVkPSExKX1sZXQgUD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7UCYmKFAuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKGspe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgST10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoSSYmSS5nZXRDb250ZW50KXtsZXQgUD1JLmdldENvbnRlbnQoKTtrLmNvbnRlbnQhPT1QJiYoay5jb250ZW50PVApfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soayl7bGV0IFM9ay50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksUy5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBJPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEkuaWQsSS50eXBlPT09ImRpdmlkZXIifHxJLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKGs9InBhcmFncmFwaCIsUz0iIixJKXtyZXR1cm57aWQ6SXIuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTprLGNvbnRlbnQ6UywuLi5JJiZ7bWV0YWRhdGE6SX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoayxTLEk9ITApe2xldCBQPXRoaXMuYmxvY2tzLmZpbmRJbmRleChLPT5LLmlkPT09ay5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsUCsxKSxTLC4uLnRoaXMuYmxvY2tzLnNsaWNlKFArMSldO2xldCBSPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtrLmlkfSJdYCk7aWYoUil7bGV0IEs9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoUyk7Ui5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixLKX10aGlzLnVwZGF0ZVZhbHVlKCksSSYmUy50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoSz0+c2V0VGltZW91dChLLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKFMuaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKGspe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoUj0+Ui5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZighUyl7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQKXtsZXQgUj1QLmdldENvbnRlbnQoKTtpZihSLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IEs9Ui5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7UC5zZXRDb250ZW50KEspLFMuY29udGVudD1LfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxrPT09ImNvZGUiJiYoUy5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksUy50eXBlPWssUy5jb250ZW50PVMuY29udGVudHx8IiIsaz09PSJkaXZpZGVyIil7Uy5jb250ZW50PSIgIjtsZXQgUj10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKFMsUil9ZWxzZSBrPT09Imxpc3QiPyhTLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sUy5jb250ZW50PSIiKTprPT09ImltYWdlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6az09PSJ5b3V0dWJlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6az09PSJtYXJrZG93biI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iaHRtbCI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Oms9PT0iYXR0YWNobWVudCI/KFMuY29udGVudD0iIixTLm1ldGFkYXRhPXtmaWxlczpbXX0pOlMuY29udGVudD1TLmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KFMuaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZShSPT5zZXRUaW1lb3V0KFIsMCkpLGs9PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke1MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7SyYmSy5mb2N1c0xpc3RJdGVtKCl9KSk6ayE9PSJkaXZpZGVyIiYmayE9PSJpbWFnZSImJmshPT0ieW91dHViZSImJmshPT0ibWFya2Rvd24iJiZrIT09Imh0bWwiJiZrIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKTooaz09PSJpbWFnZSJ8fGs9PT0ieW91dHViZSJ8fGs9PT0ibWFya2Rvd24ifHxrPT09Imh0bWwifHxrPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9QzIuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT1DMi5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGspe3RoaXMudmFsdWU9ayx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz1DMi5wYXJzZUh0bWxUb0Jsb2NrcyhrKTp0aGlzLmJsb2Nrcz1DMi5wYXJzZU1hcmtkb3duVG9CbG9ja3MoayksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6SXIuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3Moayl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShrKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIEMyLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4gQzIuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoayl7ay5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1rLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3Moay5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgUz10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO1MmJlMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKFM9PntTLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoayxTKXtpZihrLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1TLmlkKXJldHVybjtsZXQgST10aGlzLmJsb2Nrcy5maW5kSW5kZXgoVj0+Vi5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLFA9dGhpcy5ibG9ja3MuZmluZEluZGV4KFY9PlYuaWQ9PT1TLmlkKTtpZihJPT09LTF8fFA9PT0tMSlyZXR1cm47bGV0W1JdPXRoaXMuYmxvY2tzLnNwbGljZShJLDEpLEs9UDt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP0s9STxQP1A6UCsxOks9STxQP1AtMTpQLHRoaXMuYmxvY2tzLnNwbGljZShLLDAsUiksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Ui5pZH0iXSAuYmxvY2tgKTtWJiZSLnR5cGUhPT0iZGl2aWRlciImJlYuZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKGspe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBrPVtdO3RoaXMuc2hhZG93Um9vdCYmay5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKFA9PntsZXQgUj1QLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1I/LnNoYWRvd1Jvb3QmJmsucHVzaChSLnNoYWRvd1Jvb3QpfSk7bGV0IEk9bDQuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uayk7SSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkkueCx5OkkueX0sYXN5bmMgUD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChQKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoayl7bGV0IFM9W107dGhpcy5zaGFkb3dSb290JiZTLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2gobWU9PntsZXQgQj1tZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtCPy5zaGFkb3dSb290JiZTLnB1c2goQi5zaGFkb3dSb290KX0pO2xldCBQPSR0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoIVApcmV0dXJuO2xldCBSLEssVj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IG1lPTA7bWU8Vi5sZW5ndGg7bWUrKyl7bGV0IEI9VlttZV0sVT1CLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFU/LnNoYWRvd1Jvb3Qpe2xldCBoZT1VLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoaGUmJihoZS5jb250YWlucyhQLnN0YXJ0Q29udGFpbmVyKXx8aGUuY29udGFpbnMoUC5lbmRDb250YWluZXIpKSl7bGV0IEY9Qi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtSPXRoaXMuYmxvY2tzLmZpbmQoaj0+ai5pZD09PUYpLEs9VTticmVha319fWlmKCFSfHwhSylyZXR1cm47bGV0IFc9JHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhQKTtpZihrPT09ImxpbmsiKXtsZXQgbWU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFtZSl7Sy5mb2N1cygpO3JldHVybn1sNC5hcHBseUZvcm1hdChrLG1lLFcsUyl9ZWxzZSBsNC5hcHBseUZvcm1hdChrLHZvaWQgMCxXLFMpO2F3YWl0IG5ldyBQcm9taXNlKG1lPT5zZXRUaW1lb3V0KG1lLDEwKSksUi5jb250ZW50PUsuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxLLmZvY3VzKCksaz09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKGs9PntsZXQgUz1udWxsO2lzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50Ok1uYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0k9PntpZihJLmtleT09PSJFbnRlciIpe2xldCBQPUkudGFyZ2V0O1M9UC52YWx1ZTtsZXQgUj1QLmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZihSKXtsZXQgSz1SLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO0smJksuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtJPT57Uz1JLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBJPT57SS5kZXN0cm95KCksayhudWxsKX0sImFjdGlvbiIpfSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjppKGFzeW5jIEk9PntJLmRlc3Ryb3koKSxrKFMpfSwiYWN0aW9uIil9XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgST1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7SSYmSS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBrPXRoaXMuaGlzdG9yeS51bmRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVkbygpe2xldCBrPXRoaXMuaGlzdG9yeS5yZWRvKCk7ayYmdGhpcy5yZXN0b3JlU3RhdGUoayl9cmVzdG9yZVN0YXRlKGspe3RoaXMuYmxvY2tzPWsuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPWsuc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGsuY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBJPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ay5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0kmJkkuZm9jdXNXaXRoQ3Vyc29yKGsuY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOmsuc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhrLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShrPSEwKXtsZXQgUztpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IFA9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihQJiZ0eXBlb2YgUC5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0IFI9UC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihSKXtsZXQgSz1QLmdldEN1cnNvclBvc2l0aW9uKFIpO0shPT1udWxsJiYoUz17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6S30pfX19az90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFMpOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCxTKX1zdGF0aWN7WW4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIHh2YSx5dmE9ZygoKT0+e3BlKCk7SXQoKTtYMWUoKTt4bygpO3h2YT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJpY2ggVGV4dCBFZGl0b3IifSAuc3VidGl0bGU9JHsiQSBmdWxsLWZlYXR1cmVkIHJpY2ggdGV4dCBlZGl0b3Igd2l0aCBmb3JtYXR0aW5nIHRvb2xiYXIifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBcnRpY2xlIENvbnRlbnQifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDE+V2VsY29tZSB0byB0aGUgUmljaCBUZXh0IEVkaXRvciE8L2gxPjxwPlRoaXMgaXMgYSBmZWF0dXJlLXJpY2ggZWRpdG9yIGJ1aWx0IHdpdGggVGlwVGFwLiBZb3UgY2FuOjwvcD48dWw+PGxpPjxzdHJvbmc+Rm9ybWF0IHRleHQ8L3N0cm9uZz4gd2l0aCA8ZW0+dmFyaW91czwvZW0+IDx1PnN0eWxlczwvdT48L2xpPjxsaT5DcmVhdGUgZGlmZmVyZW50IGhlYWRpbmcgbGV2ZWxzPC9saT48bGk+QWRkIDxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS5jb20iPmxpbmtzPC9hPiB0byBleHRlcm5hbCByZXNvdXJjZXM8L2xpPjxsaT5Xcml0ZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4gb3IgY29kZSBibG9ja3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+PHA+VXNlIHRoZSB0b29sYmFyIGFib3ZlIHRvIGV4cGxvcmUgYWxsIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnMgYXZhaWxhYmxlITwvcD48L2Jsb2NrcXVvdGU+PHA+U3RhcnQgdHlwaW5nIHRvIHNlZSB0aGUgbWFnaWMgaGFwcGVuLi4uPC9wPid9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXNlIHRoZSB0b29sYmFyIHRvIGZvcm1hdCB5b3VyIGNvbnRlbnQgd2l0aCBoZWFkaW5ncywgbGlzdHMsIGxpbmtzLCBhbmQgbW9yZSJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRoIFBsYWNlaG9sZGVyIn0gLnN1YnRpdGxlPSR7IkVtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJCbG9nIFBvc3QifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gRGlmZmVyZW50IEhlaWdodHMifSAuc3VidGl0bGU9JHsiRWRpdG9ycyB3aXRoIGRpZmZlcmVudCBtaW5pbXVtIGhlaWdodHMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTaG9ydCBOb3RlIn0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHsxNTB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJRdWljayBub3RlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRXh0ZW5kZWQgQ29udGVudCJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MzAwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIENvZGUgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiRWRpdG9yIHByZS1maWxsZWQgd2l0aCBjb2RlIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiVGVjaG5pY2FsIERvY3VtZW50YXRpb24ifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+SW5zdGFsbGF0aW9uIEd1aWRlPC9oMj48cD5UbyBpbnN0YWxsIHRoZSBwYWNrYWdlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD48cHJlPjxjb2RlPm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT48cD5UaGVuIGltcG9ydCB0aGUgY29tcG9uZW50IGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlOjwvcD48cHJlPjxjb2RlPmltcG9ydCB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIjs8L2NvZGU+PC9wcmU+PHA+WW91IGNhbiBub3cgdXNlIHRoZSA8Y29kZT4mbHQ7ZGVlcy1pbnB1dC1yaWNodGV4dCZndDs8L2NvZGU+IGVsZW1lbnQgaW4geW91ciB0ZW1wbGF0ZXMuPC9wPid9CiAgICAgICAgICAubWluSGVpZ2h0PSR7MjUwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUHVibGlzaGVkIEFydGljbGUgKFJlYWQgT25seSkifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+IlRoZSBmdXR1cmUgb2Ygd2ViIGRldmVsb3BtZW50IGxpZXMgaW4gcmV1c2FibGUsIGVuY2Fwc3VsYXRlZCBjb21wb25lbnRzLiI8L3A+PC9ibG9ja3F1b3RlPid9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZWRpdG9yIgogICAgICAgICAgLmxhYmVsPSR7IlRyeSBpdCB5b3Vyc2VsZiJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgIEBjaGFuZ2U9JHtzPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3Iik7ZSYmKGUudGV4dENvbnRlbnQ9cy5kZXRhaWwudmFsdWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ib3V0cHV0LXByZXZpZXciPgogICAgICAgICAgPGVtPkhUTUwgb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgd3ZhLGt2YT1nKCgpPT57cGUoKTtFaSgpO2h0KCk7d3ZhPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZvY3VzZWQ6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHAgewogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHVsLAogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIG9sIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtOwogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBsaSB7CiAgICAgICAgbWFyZ2luOiAwLjI1ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTsKICAgICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0ZpcmEgQ29kZScsICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsICdSb2JvdG8gTW9ubycsIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMWVtOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNDEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDY5LjglKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLndvcmQtY291bnQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIGRlZXMtdGlsZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b29sYmFyLWJ1dHRvbiwKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF19KTt2YXIgU3ZhLF92YT1nKCgpPT57cGUoKTtTdmE9aShzPT53YAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgJHtzLmxhYmVsP3dgPGxhYmVsIGNsYXNzPSJsYWJlbCI+JHtzLmxhYmVsfTwvbGFiZWw+YDoiIn0KICAgICAgICAgIDxkZWVzLXRpbGUgY2xhc3M9IiR7cy5lZGl0b3I/LmlzRm9jdXNlZD8iZm9jdXNlZCI6IiJ9IiBzdHlsZT0iLS1taW4taGVpZ2h0OiAke3MubWluSGVpZ2h0fXB4Ij4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJlZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICAgICAgJHtzLnJlbmRlclRvb2xiYXIoKX0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0ICR7cy5zaG93TGlua0lucHV0PyJzaG93IjoiIn0iPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InVybCIgcGxhY2Vob2xkZXI9IkVudGVyIFVSTC4uLiIgQGtleWRvd249JHtzLmhhbmRsZUxpbmtJbnB1dEtleWRvd259IC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmltYXJ5IiBAY2xpY2s9JHtzLnNhdmVMaW5rfT5TYXZlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7cy5yZW1vdmVMaW5rfT5SZW1vdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHtzLmhpZGVMaW5rSW5wdXR9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+PC9kaXY+CiAgICAgICAgICAgICR7cy5zaG93V29yZENvdW50P3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7cy53b3JkQ291bnR9IHdvcmQke3Mud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAgICR7cy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgIDwvZGl2PgogICAgICBgLCJyZW5kZXJSaWNodGV4dCIpfSk7dmFyIEpnLGxjLFBudCxYMWU9ZygoKT0+e0VpKCk7eXZhKCk7a3ZhKCk7X3ZhKCk7R2EoKTtwZSgpO091KCk7bXIoKTtKZz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbGM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBudD0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UmljaHRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sSmcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxKZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJwbGFjZWhvbGRlciJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UucGxhY2Vob2xkZXI9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLEpnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2hvd1dvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dXb3JkQ291bnQsImdldCIpLHNldDppKChFLEgpPT57RS5zaG93V29yZENvdW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxKZyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluSGVpZ2h0ImluIEUsImhhcyIpLGdldDppKEU9PkUubWluSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWluSGVpZ2h0PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbSxmKSxKZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dMaW5rSW5wdXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93TGlua0lucHV0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc2hvd0xpbmtJbnB1dD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksSmcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+IndvcmRDb3VudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLndvcmRDb3VudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLndvcmRDb3VudD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksSmcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz14dmE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWxjKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0obGModGhpcyxsKSxsYyh0aGlzLGQsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoJCl7dGhpcy4jdD0kfSNhPShsYyh0aGlzLHUpLGxjKHRoaXMsYiwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dXb3JkQ291bnQoJCl7dGhpcy4jYT0kfSNzPShsYyh0aGlzLHYpLGxjKHRoaXMsbSwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1pbkhlaWdodCgkKXt0aGlzLiNzPSR9I2k9KGxjKHRoaXMsZiksbGModGhpcyxNLCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xpbmtJbnB1dCgkKXt0aGlzLiNpPSR9I3I9KGxjKHRoaXMseiksbGModGhpcyxDLDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdvcmRDb3VudCgkKXt0aGlzLiNyPSR9ZWRpdG9yRWxlbWVudD1sYyh0aGlzLF8pO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9d3ZhO3JlbmRlcigpe3JldHVybiBTdmEodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCAkPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gd2AKICAgICAgJHskLm1hcChFPT5FLmlzRGl2aWRlcj93YDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtFLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke0UuYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke0UudGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke0UuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQm9sZCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYm9sZCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiaXRhbGljIixpY29uOiJsdWNpZGU6aXRhbGljIix0aXRsZToiSXRhbGljIChDdHJsK0kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUl0YWxpYygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaXRhbGljIiksImlzQWN0aXZlIil9LHtuYW1lOiJ1bmRlcmxpbmUiLGljb246Imx1Y2lkZTp1bmRlcmxpbmUiLHRpdGxlOiJVbmRlcmxpbmUgKEN0cmwrVSkiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKSwiaXNBY3RpdmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgic3RyaWtlIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMSIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToiaDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSIsdGl0bGU6IkhlYWRpbmcgMSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoxfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6MX0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiIsdGl0bGU6IkhlYWRpbmcgMiIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDozfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6M30pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjIiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImJ1bGxldExpc3QiLGljb246Imx1Y2lkZTpsaXN0Iix0aXRsZToiQnVsbGV0IExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQnVsbGV0TGlzdCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYnVsbGV0TGlzdCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToib3JkZXJlZExpc3QiLGljb246Imx1Y2lkZTpsaXN0T3JkZXJlZCIsdGl0bGU6Ik51bWJlcmVkIExpc3QiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0IiksImlzQWN0aXZlIil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCbG9ja3F1b3RlKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJibG9ja3F1b3RlIiksImlzQWN0aXZlIil9LHtuYW1lOiJjb2RlIixpY29uOiJsdWNpZGU6Y29kZSIsdGl0bGU6IkNvZGUiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQ29kZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiY29kZUJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUiLHRpdGxlOiJDb2RlIEJsb2NrIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOmkoKCk9PnRoaXMudG9nZ2xlTGluaygpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25MZWZ0IixpY29uOiJsdWNpZGU6YWxpZ25MZWZ0Iix0aXRsZToiQWxpZ24gTGVmdCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oImxlZnQiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoibGVmdCJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduQ2VudGVyIixpY29uOiJsdWNpZGU6YWxpZ25DZW50ZXIiLHRpdGxlOiJBbGlnbiBDZW50ZXIiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oInJpZ2h0IikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246InJpZ2h0In0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjQiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6InVuZG8iLGljb246Imx1Y2lkZTp1bmRvIix0aXRsZToiVW5kbyAoQ3RybCtaKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bmRvKCkucnVuKCksImFjdGlvbiIpfSx7bmFtZToicmVkbyIsaWNvbjoibHVjaWRlOnJlZG8iLHRpdGxlOiJSZWRvIChDdHJsK1kpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJlZG8oKS5ydW4oKSwiYWN0aW9uIil9XTpbXX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMudGlwdGFwQnVuZGxlPWF3YWl0IGFvLmdldEluc3RhbmNlKCkubG9hZFRpcHRhcCgpLHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5saW5rSW5wdXRFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubGluay1pbnB1dCBpbnB1dCIpLHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWluaXRpYWxpemVFZGl0b3IoKXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy50aXB0YXBCdW5kbGUpcmV0dXJuO2xldHtFZGl0b3I6JCxTdGFydGVyS2l0OkUsVW5kZXJsaW5lOkgsVGV4dEFsaWduOmssTGluazpTLFR5cG9ncmFwaHk6SX09dGhpcy50aXB0YXBCdW5kbGU7dGhpcy5lZGl0b3I9bmV3ICQoe2VsZW1lbnQ6dGhpcy5lZGl0b3JFbGVtZW50LGV4dGVuc2lvbnM6W0UuY29uZmlndXJlKHtoZWFkaW5nOntsZXZlbHM6WzEsMiwzXX19KSxILmNvbmZpZ3VyZSh7fSksay5jb25maWd1cmUoe3R5cGVzOlsiaGVhZGluZyIsInBhcmFncmFwaCJdfSksUy5jb25maWd1cmUoe29wZW5PbkNsaWNrOiExLEhUTUxBdHRyaWJ1dGVzOntjbGFzczoiZWRpdG9yLWxpbmsifX0pLEkuY29uZmlndXJlKHt9KV0sY29udGVudDp0aGlzLnZhbHVlfHwodGhpcy5wbGFjZWhvbGRlcj9gPHA+JHt0aGlzLnBsYWNlaG9sZGVyfTwvcD5gOiIiKSxvblVwZGF0ZTppKCh7ZWRpdG9yOlB9KT0+e3RoaXMudmFsdWU9UC5nZXRIVE1MKCksdGhpcy51cGRhdGVXb3JkQ291bnQoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJvblVwZGF0ZSIpLG9uU2VsZWN0aW9uVXBkYXRlOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uU2VsZWN0aW9uVXBkYXRlIiksb25Gb2N1czppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvbkZvY3VzIiksb25CbHVyOmkoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uQmx1ciIpfSksdGhpcy51cGRhdGVXb3JkQ291bnQoKX11cGRhdGVXb3JkQ291bnQoKXtpZighdGhpcy5lZGl0b3IpcmV0dXJuO2xldCAkPXRoaXMuZWRpdG9yLmdldFRleHQoKTt0aGlzLndvcmRDb3VudD0kLnRyaW0oKT8kLnRyaW0oKS5zcGxpdCgvXHMrLykubGVuZ3RoOjB9dG9nZ2xlTGluaygpe2lmKHRoaXMuZWRpdG9yKWlmKHRoaXMuZWRpdG9yLmlzQWN0aXZlKCJsaW5rIikpe2xldCAkPXRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoImxpbmsiKS5ocmVmO3RoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9JHx8IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCksdGhpcy5saW5rSW5wdXRFbGVtZW50LnNlbGVjdCgpKX0pfWVsc2UgdGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT0iIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSl9KX1zYXZlTGluaygpe2lmKCF0aGlzLmVkaXRvcnx8IXRoaXMubGlua0lucHV0RWxlbWVudClyZXR1cm47bGV0ICQ9dGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlOyQmJnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRMaW5rKHtocmVmOiR9KS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKX1yZW1vdmVMaW5rKCl7dGhpcy5lZGl0b3ImJih0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5zZXRMaW5rKCkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCkpfWhpZGVMaW5rSW5wdXQoKXt0aGlzLnNob3dMaW5rSW5wdXQ9ITEsdGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9aGFuZGxlTGlua0lucHV0S2V5ZG93bigkKXskLmtleT09PSJFbnRlciI/KCQucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVMaW5rKCkpOiQua2V5PT09IkVzY2FwZSImJigkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlTGlua0lucHV0KCkpfXNldFZhbHVlKCQpe3RoaXMudmFsdWU9JCx0aGlzLmVkaXRvciYmJCE9PXRoaXMuZWRpdG9yLmdldEhUTUwoKSYmdGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0Q29udGVudCgkKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfWNsZWFyKCl7dGhpcy5zZXRWYWx1ZSgiIil9Zm9jdXMoKXt0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmRlc3Ryb3koKX1zdGF0aWN7bGMoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIE12YSx6dmE9ZygoKT0+e0ludCgpO3ZvKCk7cGUoKTtJdCgpO012YT1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7SmAKICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGljaz0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImRhcmsiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIFRhYmxlIHdpdGggQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgc3RhbmRhcmQgdGFibGUgd2l0aCByb3cgYWN0aW9ucywgZWRpdGFibGUgY2VsbHMsIGFuZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4gRG91YmxlLWNsaWNrIGFueSBjZWxsIHRvIGVkaXQuIFRhYiBtb3ZlcyB0byB0aGUgbmV4dCBlZGl0YWJsZSBjZWxsLCBFbnRlciB0byB0aGUgcm93IGJlbG93LCBFc2MgY2FuY2Vscy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJkYXRlIixoZWFkZXI6IkRhdGUiLHNvcnRhYmxlOiEwLGVkaXRhYmxlOiEwLGVkaXRvcjoiZGF0ZSJ9LHtrZXk6ImFtb3VudCIsaGVhZGVyOiJBbW91bnQiLGVkaXRhYmxlOiEwLGVkaXRvcjoidGV4dCJ9LHtrZXk6ImNhdGVnb3J5IixoZWFkZXI6IkNhdGVnb3J5IixlZGl0YWJsZTohMCxlZGl0b3I6ImRyb3Bkb3duIixlZGl0b3JPcHRpb25zOntvcHRpb25zOlt7b3B0aW9uOiJPZmZpY2UgU3VwcGxpZXMiLGtleToib2ZmaWNlIn0se29wdGlvbjoiSGFyZHdhcmUiLGtleToiaGFyZHdhcmUifSx7b3B0aW9uOiJTb2Z0d2FyZSIsa2V5OiJzb2Z0d2FyZSJ9LHtvcHRpb246IlRyYXZlbCIsa2V5OiJ0cmF2ZWwifV19fSx7a2V5OiJkZXNjcmlwdGlvbiIsaGVhZGVyOiJEZXNjcmlwdGlvbiIsZWRpdGFibGU6ITB9LHtrZXk6InJlY29uY2lsZWQiLGhlYWRlcjoiT0siLGVkaXRhYmxlOiEwLGVkaXRvcjoiY2hlY2tib3gifV19CiAgICAgICAgICBAY2VsbEVkaXQ9JHtzPT5jb25zb2xlLmxvZygiY2VsbEVkaXQiLHMuZGV0YWlsKX0KICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixjYXRlZ29yeToib2ZmaWNlIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDIiLGFtb3VudDoiMTY1LjY1IFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTG9naXRlY2ggTW91c2UgLSBsb2dpLmNvbSBPbmxpbmVTaG9wIixyZWNvbmNpbGVkOiExfSx7ZGF0ZToiMjAyMS0wNC0wMyIsYW1vdW50OiIyOTk5LDAwIFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIC0gQXBwbGUuZGUgT25saW5lU2hvcCIscmVjb25jaWxlZDohMX0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH1dfQogICAgICAgICAgZGF0YU5hbWU9InRyYW5zYWN0aW9ucyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6InVwbG9hZCIsaWNvbk5hbWU6ImJlbGwiLHVzZVRhYmxlQmVoYXZpb3VyOiJ1cGxvYWQiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57YWxlcnQocy5pdGVtLmFtb3VudCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJ2aXNpYmlsaXR5IixpY29uTmFtZToiY29weSIsdHlwZTpbImluUm93Il0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6InRvIGdhbGxlcnkiLGljb25OYW1lOiJtZXNzYWdlIix0eXBlOlsiZm9vdGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY29weSIsaWNvbk5hbWU6ImNvcHlTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51IiwiaW5Sb3ciXSxhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX0se25hbWU6ImVkaXQgKGZyb20gZGVtbykiLGljb25OYW1lOiJwZW5Ub1NxdWFyZSIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9LHtuYW1lOiJwYXN0ZSIsaWNvbk5hbWU6InBhc3RlU29saWQiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjppKGFzeW5jKCk9Pm51bGwsImFjdGlvbiIpfSx7bmFtZToicHJldmlldyIsdHlwZTpbImRvdWJsZUNsaWNrIiwiY29udGV4dG1lbnUiXSxpY29uTmFtZToiZXllIixhY3Rpb25GdW5jOmkoYXN5bmMgcz0+KGFsZXJ0KHMuaXRlbS5hbW91bnQpLG51bGwpLCJhY3Rpb25GdW5jIil9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMgcz0+e2NvbnNvbGUubG9nKCJDb25uZWN0aW5nIHRvOiIscy5pdGVtLnNlcnZlcil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6ZmlsZS10ZXh0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IlJlc3RhcnQgU2VydmVyIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyBzPT57Y29uc29sZS5sb2coIlJlc3RhcnRpbmc6IixzLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cz0+KHtQcm9kdWN0OnMucHJvZHVjdCwiVW5pdHMgU29sZCI6cy51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK3MucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDoocy5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK3MuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjppKHM9PndgPGRlZXMtYmFkZ2U+JHtzfTwvZGVlcy1iYWRnZT5gLCJyZW5kZXJlciIpfSx7a2V5OiJqb2luZWRBdCIsaGVhZGVyOiJKb2luZWQiLHJlbmRlcmVyOmkocz0+bmV3IERhdGUocykudG9Mb2NhbGVEYXRlU3RyaW5nKCksInJlbmRlcmVyIil9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSIsZW1haWw6ImFsaWNlQGV4YW1wbGUuY29tIixqb2luZWRBdDoiMjAyMi0wOC0wMSJ9LHtuYW1lOiJCb2IiLGVtYWlsOiJib2JAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIxLTEyLTExIn0se25hbWU6IkNhcm9sIixlbWFpbDoiY2Fyb2xAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIzLTAzLTIyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudCkiCiAgICAgICAgICBoZWFkaW5nMj0iTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke3M9Pih7bmFtZTpzLm5hbWUsZW1haWw6cy5lbWFpbCxyb2xlOnMucm9sZX0pfQogICAgICAgICAgLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiRXJpbiIsZW1haWw6ImVyaW5AZXhhbXBsZS5jb20iLHJvbGU6IkFkbWluIn0se25hbWU6IkZpbm4iLGVtYWlsOiJmaW5uQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn0se25hbWU6IkdpbmEiLGVtYWlsOiJnaW5hQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIiAKICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7cz0+e2NvbnNvbGUubG9nKCJTZWxlY3Rpb24gY2hhbmdlZCIscy5kZXRhaWwpfX0KICAgICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtzPT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dChzLmRldGFpbC52YWx1ZSl9fQogICAgICAgICAgIEBzZWFyY2gtc3VibWl0PSR7cz0+e2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZUZpbHRlclNlbGVjdERlbW8iKTtlJiZlLnNldEZpbHRlclRleHQocy5kZXRhaWwudmFsdWUpfX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPgogICAgICAgIDxkZWVzLXNlYXJjaGJhcj48L2RlZXMtc2VhcmNoYmFyPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTJweCI+PC9kaXY+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJ0YWJsZUZpbHRlclNlbGVjdERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iSW52ZW50b3J5IChGaWx0ZXIgKyBTZWxlY3QpIgogICAgICAgICAgaGVhZGluZzI9IlRyeSB0eXBpbmcgdG8gZmlsdGVyIGFuZCBzZWxlY3RpbmcgbXVsdGlwbGUgcm93cyIKICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7Im11bHRpIn0KICAgICAgICAgIC5yb3dLZXk9JHsic2t1In0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InNrdSIsaGVhZGVyOiJTS1UiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJzdG9jayIsaGVhZGVyOiJTdG9jayIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tza3U6IkEtMTAwIixuYW1lOiJVU0ItQyBDYWJsZSIsc3RvY2s6MTIwfSx7c2t1OiJBLTEwMSIsbmFtZToiV2lyZWxlc3MgTW91c2UiLHN0b2NrOjU1fSx7c2t1OiJBLTEwMiIsbmFtZToiTGFwdG9wIFN0YW5kIixzdG9jazoxOH0se3NrdToiQi0yMDAiLG5hbWU6IktleWJvYXJkIChJU08pIixzdG9jazo4OX0se3NrdToiQi0yMDEiLG5hbWU6IkhETUkgQWRhcHRlciIsc3RvY2s6MH0se3NrdToiQy0zMDAiLG5hbWU6IldlYmNhbSAxMDgwcCIsc3RvY2s6NDJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Db2x1bW4gRmlsdGVycyArIFN0aWNreSBIZWFkZXIgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5QZXItY29sdW1uIHF1aWNrIGZpbHRlcnMgYW5kIHN0aWNreSBoZWFkZXIgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRyeSBmaWx0ZXJpbmcgdGhlIE5hbWUgY29sdW1uLiBVc2VzIC0tdGFibGUtbWF4LWhlaWdodCB2YXIuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgIGRlZXMtdGFibGVbZml4ZWQtaGVpZ2h0XSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLmZpeGVkSGVpZ2h0PSR7ITB9CiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSBKb2huc29uIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkJvYiBTbWl0aCIsZW1haWw6ImJvYkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiQ2hhcmxpZSBEYXZpcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkhSIn0se25hbWU6IkRpYW5hIE1hcnRpbmV6IixlbWFpbDoiZGlhbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkV0aGFuIEJyb3duIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiRmlvbmEgQ2xhcmsiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiR3JhY2UgTGVlIixlbWFpbDoiZ3JhY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkhlbnJ5IFdpbHNvbiIsZW1haWw6ImhlbnJ5QGNvcnAuY29tIixkZXBhcnRtZW50OiJNYXJrZXRpbmcifSx7bmFtZToiSXJlbmUgV2Fsa2VyIixlbWFpbDoiaXJlbmVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiSmFjayBUdXJuZXIiLGVtYWlsOiJqYWNrQGNvcnAuY29tIixkZXBhcnRtZW50OiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9ImVtcGxveWVlcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiIKICAgICAgICBAc2VhcmNoUmVxdWVzdD0ke2FzeW5jIHM9PntsZXR7cXVlcnk6ZX09cy5kZXRhaWx8fHtxdWVyeToiIn0sdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VydmVyU2VhcmNoRGVtbyIpLGE9W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV07YXdhaXQgbmV3IFByb21pc2Uobz0+c2V0VGltZW91dChvLDMwMCkpO2xldCByPVN0cmluZyhlfHwiIikudG9Mb3dlckNhc2UoKSxuPXI/YS5maWx0ZXIobz0+T2JqZWN0LnZhbHVlcyhvKS5zb21lKGw9PlN0cmluZyhsKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHIpKSk6YTt0LmRhdGE9bn19CiAgICAgID4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNlcnZlciBTZWFyY2ggKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5TZWxlY3QgU2VydmVyIG1vZGUsIHR5cGUgYSBxdWVyeSwgYW5kIHdhdGNoIHRoZSB0YWJsZSBmZXRjaCBzaW11bGF0ZWQgcmVzdWx0cy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzZXJ2ZXJTZWFyY2hEZW1vIgogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSAoU2VydmVyIFNlYXJjaCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ2xpY2sgU2VhcmNoLCBjaG9vc2UgU2VydmVyIG1vZGUsIGFuZCB0eXBlIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIn0se2tleToiY2l0eSIsaGVhZGVyOiJDaXR5In0se2tleToidGl0bGUiLGhlYWRlcjoiVGl0bGUifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9InBlb3BsZSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aS1Db2x1bW4gU29ydDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2xpY2sgYW55IGNvbHVtbiBoZWFkZXIgZm9yIGEgc2luZ2xlLWNvbHVtbiBzb3J0LiBIb2xkIFNoaWZ0IHdoaWxlIGNsaWNraW5nIHRvIGFkZCB0aGUKICAgICAgICAgIGNvbHVtbiB0byBhIG11bHRpLXNvcnQgY2FzY2FkZSAob3IgY3ljbGUgaXRzIGRpcmVjdGlvbikuIFJpZ2h0LWNsaWNrIGFueSBzb3J0YWJsZSBoZWFkZXIKICAgICAgICAgIHRvIG9wZW4gYSBtZW51IHdoZXJlIHlvdSBjYW4gcGluIGEgY29sdW1uIHRvIGEgc3BlY2lmaWMgcHJpb3JpdHkgc2xvdCwgcmVtb3ZlIGl0LCBvcgogICAgICAgICAgY2xlYXIgdGhlIGNhc2NhZGUuCiAgICAgICAgPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJQcmUtc2VlZGVkIHdpdGggZGVwYXJ0bWVudCDilrIgMSwgbmFtZSDilrIgMiIKICAgICAgICAgIC5zb3J0Qnk9JHtbe2tleToiZGVwYXJ0bWVudCIsZGlyOiJhc2MifSx7a2V5OiJuYW1lIixkaXI6ImFzYyJ9XX0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe2RlcGFydG1lbnQ6IlImRCIsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJNYXJrIExlZSIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyNC0wMy0wNCIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJTYXJhIEtpbSIscm9sZToiRGVzaWduZXIiLGNyZWF0ZWRBdDoiMjAyMS0wOC0xOSIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiSGVsZW5hIFZvc3MiLHJvbGU6IlNSRSIsY3JlYXRlZEF0OiIyMDIzLTA3LTIyIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJRQSIsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IlFBIixuYW1lOiJUb21ceEUxcyBSaXZlcmEiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjQtMDEtMDkiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IkNTIixuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSJ9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5XaWRlIFByb3BlcnRpZXMgKyBNYW55IEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHRhYmxlIHdpdGggbWFueSBjb2x1bW5zIGFuZCByaWNoIGFjdGlvbnMgdG8gc3RyZXNzIHRlc3QgbGF5b3V0IGFuZCBzdGlja3kgQWN0aW9ucy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IgogICAgICAgICAgaGVhZGluZzI9Ik1hbnkgcHJvcGVydGllcyBhbmQgYWN0aW9ucyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUiZEIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTEiLGxvY2F0aW9uOiJCZXJsaW4iLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjMtMDEtMTIiLHVwZGF0ZWRBdDoiMjAyNC0wNS0wMyIsbGFzdExvZ2luOiIyMDI0LTEwLTAxIixwcm9qZWN0czo1LHRhZ3M6InR5cGVzY3JpcHQsIHVpIixub3RlczoiTWVudG9yIn0se2lkOjIsbmFtZToiQm9iIFNtaXRoIixyb2xlOiJEZXNpZ25lciIsZGVwYXJ0bWVudDoiRGVzaWduIixlbWFpbDoiYm9iQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEyIixsb2NhdGlvbjoiUGFyaXMiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLHVwZGF0ZWRBdDoiMjAyNC0wNC0xMCIsbGFzdExvZ2luOiIyMDI0LTA5LTI4Iixwcm9qZWN0czo4LHRhZ3M6ImZpZ21hLCBicmFuZCIsbm90ZXM6IlBhcnQtdGltZSJ9LHtpZDozLG5hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6Ik1hbmFnZXIiLGRlcGFydG1lbnQ6Ik9wcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTMiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiT24gTGVhdmUiLGNyZWF0ZWRBdDoiMjAyMS0wNC0yMSIsdXBkYXRlZEF0OiIyMDI0LTAyLTE1IixsYXN0TG9naW46IjIwMjQtMDgtMTIiLHByb2plY3RzOjMsdGFnczoic3JlLCBsZWFkZXJzaGlwIixub3RlczoiIn0se2lkOjQsbmFtZToiRGlhbmEgTWFydGluZXoiLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJQbGF0Zm9ybSIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE0Iixsb2NhdGlvbjoiTWFkcmlkIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIwLTA2LTMwIix1cGRhdGVkQXQ6IjIwMjQtMDYtMjUiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMiIscHJvamVjdHM6Nix0YWdzOiJub2RlLCBhcGkiLG5vdGVzOiJPbi1jYWxsIn0se2lkOjUsbmFtZToiRXRoYW4gQnJvd24iLHJvbGU6IlN1cHBvcnQiLGRlcGFydG1lbnQ6IkNTIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTUiLGxvY2F0aW9uOiJSb21lIixzdGF0dXM6IkluYWN0aXZlIixjcmVhdGVkQXQ6IjIwMTktMDktMTgiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wOSIsbGFzdExvZ2luOiIyMDI0LTA2LTE5Iixwcm9qZWN0czoyLHRhZ3M6InplbmRlc2siLG5vdGVzOiJSZWhpcmUifSx7aWQ6NixuYW1lOiJGaW9uYSBDbGFyayIscm9sZToiUUEiLGRlcGFydG1lbnQ6IlFBIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTYiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wMSIsbGFzdExvZ2luOiIyMDI0LTA5LTA3Iixwcm9qZWN0czo3LHRhZ3M6InBsYXl3cmlnaHQiLG5vdGVzOiIifV19CiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTpzfSk9Pntjb25zb2xlLmxvZygidmlldyIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJlZGl0IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coImRlbGV0ZSIscyl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNZXNzYWdlIixpY29uTmFtZToibHVjaWRlOm1lc3NhZ2Utc3F1YXJlIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06c30pPT57Y29uc29sZS5sb2coIm1lc3NhZ2UiLHMpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e2NvbnNvbGUubG9nKCJoaXN0b3J5IixzKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkFkZCBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImFkZCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRXhwb3J0IENTViIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImV4cG9ydCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6aShhc3luYyh7dGFibGU6c30pPT57Y29uc29sZS5sb2coImJ1bGsgZGVsZXRlIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY3JvbGxhYmxlIFNtYWxsIEhlaWdodDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIG1hbnkgaXRlbXMgYW5kIGEgc21hbGwgZml4ZWQgaGVpZ2h0IHRvIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGluZyBpbnNpZGUgdGhlIHRhYmxlLiBBY3Rpb25zIHJlbWFpbiB2aXNpYmxlIG9uIHRoZSByaWdodDsgaG9yaXpvbnRhbCBzY3JvbGwgYXBwZWFycyBpZiBuZWVkZWQuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICNzY3JvbGxTbWFsbEhlaWdodCB7IC0tdGFibGUtbWF4LWhlaWdodDogMjQwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2Nyb2xsU21hbGxIZWlnaHQiCiAgICAgICAgICAuZml4ZWRIZWlnaHQ9JHshMH0KICAgICAgICAgIC52aXJ0dWFsaXplZD0keyEwfQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkgKFNjcm9sbGFibGUsIFZpcnR1YWxpemVkKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LChzLGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnN9KT0+e30sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2RlbW9MaXZlRmxhc2giKTtpZighZSlyZXR1cm47ZS5fX2xpdmVGbGFzaFRpbWVySWQmJndpbmRvdy5jbGVhckludGVydmFsKGUuX19saXZlRmxhc2hUaW1lcklkKTtsZXQgdD1pKCgpPT57aWYoIUFycmF5LmlzQXJyYXkoZS5kYXRhKXx8ZS5kYXRhLmxlbmd0aD09PTApcmV0dXJuO2xldCBhPWUuZGF0YS5tYXAobj0+KHsuLi5ufSkpLHI9MStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyk7Zm9yKGxldCBuPTA7bjxyO24rKyl7bGV0IG89TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmEubGVuZ3RoKSxsPSsoKE1hdGgucmFuZG9tKCkqMi0xKSozKS50b0ZpeGVkKDIpLHA9TWF0aC5tYXgoMSwrKGFbb10ucHJpY2UrbCkudG9GaXhlZCgyKSk7YVtvXT17Li4uYVtvXSxwcmljZTpwLGNoYW5nZTpsLHVwZGF0ZWRBdDpuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfX1lLmRhdGE9YX0sInRpY2siKTtlLl9fbGl2ZUZsYXNoVGltZXJJZD13aW5kb3cuc2V0SW50ZXJ2YWwodCwxNTAwKX19PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxpdmUgVXBkYXRlcyB3aXRoIEZsYXNoIEhpZ2hsaWdodGluZzwvaDI+CiAgICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgIE9wdC1pbiBjZWxsLWZsYXNoIHZpYSA8Y29kZT5oaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giPC9jb2RlPi4gVGhlIHRpY2tlciBiZWxvdyBtdXRhdGVzCiAgICAgICAgICAgIHJhbmRvbSByb3dzIGV2ZXJ5IDEuNXMgYW5kIHJlYXNzaWducyA8Y29kZT4uZGF0YTwvY29kZT4uIFVwZGF0ZWQgY2VsbHMgYnJpZWZseSBmbGFzaAogICAgICAgICAgICBhbWJlciBhbmQgZmFkZSBvdXQuIFJlcXVpcmVzIDxjb2RlPnJvd0tleTwvY29kZT4gKGhlcmUgPGNvZGU+InN5bWJvbCI8L2NvZGU+KS4gSG9ub3JzCiAgICAgICAgICAgIDxjb2RlPnByZWZlcnMtcmVkdWNlZC1tb3Rpb248L2NvZGU+LiBSb3cgc2VsZWN0aW9uIHBlcnNpc3RzIGFjcm9zcyB1cGRhdGVzIOKAlCBjbGljayBhCiAgICAgICAgICAgIHJvdywgdGhlbiB3YXRjaCBpdCBzdGF5IHNlbGVjdGVkIGFzIHRoZSBkYXRhIGNodXJucy4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgIGlkPSJkZW1vTGl2ZUZsYXNoIgogICAgICAgICAgICAucm93S2V5PSR7InN5bWJvbCJ9CiAgICAgICAgICAgIGhpZ2hsaWdodC11cGRhdGVzPSJmbGFzaCIKICAgICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgICBoZWFkaW5nMT0iTGl2ZSBNYXJrZXQgRmVlZCIKICAgICAgICAgICAgaGVhZGluZzI9IkZsYXNoaW5nIGNlbGxzIGluZGljYXRlIHVwZGF0ZWQgdmFsdWVzIgogICAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJzeW1ib2wiLGhlYWRlcjoiU3ltYm9sIixzb3J0YWJsZTohMH0se2tleToicHJpY2UiLGhlYWRlcjoiUHJpY2UiLHNvcnRhYmxlOiEwfSx7a2V5OiJjaGFuZ2UiLGhlYWRlcjoiXHUwMzk0Iixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQifV19CiAgICAgICAgICAgIC5kYXRhPSR7W3tzeW1ib2w6IkFBUEwiLHByaWNlOjE4Mi41MixjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6Ik1TRlQiLHByaWNlOjQxNC4xOCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkdPT0ciLHByaWNlOjE2OC43NCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkFNWk4iLHByaWNlOjE4Ni4xMyxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IlRTTEEiLHByaWNlOjI0OC41LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTlZEQSIscHJpY2U6ODc3LjM1LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTUVUQSIscHJpY2U6NDkyLjk2LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTkZMWCIscHJpY2U6NjA1Ljg4LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiQU1EIixwcmljZToxNjUuMjQsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJJTlRDIixwcmljZTo0Mi4xNSxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9XX0KICAgICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEN2YSxUdmE9ZygoKT0+e3BlKCk7RXIoKTtodCgpO0N2YT1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBtb2RlIChNb2RlIEIsIHBhZ2Ugc3RpY2t5KTogaG9yaXpvbnRhbCBzY3JvbGwgbGl2ZXMgb24KICAgICAgICAgLnRhYmxlU2Nyb2xsIChzbyB3aWRlIHRhYmxlcyBkb24ndCBnZXQgY2xpcHBlZCBieSBhbiBhbmNlc3RvcgogICAgICAgICBvdmVyZmxvdzpoaWRkZW4gc3VjaCBhcyBkZWVzLXRpbGUpLiBWZXJ0aWNhbCBzdGlja3kgaXMgaGFuZGxlZCBieQogICAgICAgICBhIEpTLW1hbmFnZWQgZmxvYXRpbmcgaGVhZGVyICguZmxvYXRpbmdIZWFkZXIsIHBvc2l0aW9uOmZpeGVkKSwKICAgICAgICAgd2hpY2ggaXMgdW5hZmZlY3RlZCBieSBhbmNlc3RvciBvdmVyZmxvdy4gKi8KICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOwogICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgICAgfQogICAgICAvKiBNb2RlIEEsIGludGVybmFsIHNjcm9sbDogb3B0LWluIHZpYSBmaXhlZC1oZWlnaHQgYXR0cmlidXRlLgogICAgICAgICBUaGUgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIG93biBib3ggYW5kIHRoZSBoZWFkZXIgc3RpY2tzIHZpYSBwbGFpbiBDU1Mgc3RpY2t5LiAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGhlYWRlciBvdmVybGF5IChNb2RlIEIpLiBQb3NpdGlvbiBpcyBtYW5hZ2VkIGJ5IEpTIHNvIGl0CiAgICAgICAgIGVzY2FwZXMgYW55IGFuY2VzdG9yIG92ZXJmbG93OmhpZGRlbiAocG9zaXRpb246Zml4ZWQgaXMgbm90IGNsaXBwZWQKICAgICAgICAgYnkgb3ZlcmZsb3cgYW5jZXN0b3JzKS4gKi8KICAgICAgLmZsb2F0aW5nSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIC5mbG9hdGluZ0hlYWRlci5hY3RpdmUgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRhYmxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRoIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KICAgICAgLyogdGggbmVlZHMgaXRzIG93biBiYWNrZ3JvdW5kIHNvIHN0aWNreSBjZWxscyBwYWludCBvdmVyIHNjcm9sbGVkIHJvd3MKICAgICAgICAgKGJyb3dzZXJzIGRvbid0IHBhaW50IHRoZSA8dGhlYWQ+IGJveCBiZWhpbmQgYSBzdGlja3kgPHRoPikuICovCiAgICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CiAgICAgIC8qIE1vZGUgQSDigJQgaW50ZXJuYWwgc2Nyb2xsIHN0aWNreSAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHRvcDogMzZweDsgLyogbWF0Y2hlcyB0aCB7IGhlaWdodDogMzZweCB9IGJlbG93ICovCiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogRnVsbCBob3Jpem9udGFsIGxpbmVzIHdoZW4gZW5hYmxlZCAqLwogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNCkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA1KSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBlZGdlIGJvcmRlcnMgdGhhdCB3b3VsZCBkb3VibGUgd2l0aCB0aWxlIGZyYW1lICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICB0aFtyb2xlPSdjb2x1bW5oZWFkZXInXTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgdGggLnNvcnRBcnJvdyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICB0aCAuc29ydEJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDMwJSkiLCJoc2woMjE3LjIgOTEuMiUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIAogICAgICB0aDpmaXJzdC1jaGlsZCwKICAgICAgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgdGg6bGFzdC1jaGlsZCwKICAgICAgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBib3R0b20gYm9yZGVyIG9uIGxhc3Qgcm93IHJlbW92ZWQg4oCUIHRpbGUgZnJhbWUgaGFuZGxlcyBpdCAqLwogICAgICA6aG9zdCg6bm90KFtzaG93LWhvcml6b250YWwtbGluZXNdKSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLS0gQ2VsbCBmbGFzaCBoaWdobGlnaHRpbmcgKG9wdC1pbiB2aWEgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIikgLS0tLQogICAgICAgICBCbG9vbWJlcmcvVHJhZGluZ1ZpZXctc3R5bGU6IHRoZSB0ZXh0IGl0c2VsZiBicmllZmx5IHRha2VzIGFuIGFjY2VudAogICAgICAgICBjb2xvciB0aGVuIGZhZGVzIGJhY2sgdG8gdGhlIGRlZmF1bHQuIE5vIGJhY2tncm91bmQgdGludCwgbm8gbGF5b3V0CiAgICAgICAgIHNoaWZ0LCBubyB3ZWlnaHQgY2hhbmdlLiBSZWFkYWJsZSwgbW9kZXJuLCBzdWJ0bGUuCiAgICAgICAgIENvbnN1bWVycyBjYW4gb3ZlcnJpZGUgcGVyIGluc3RhbmNlOgogICAgICAgICAgIGRlZXMtdGFibGUjbXlUYWJsZSB7IC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcjogaHNsKDE0MiA3NiUgNDAlKTsgfQogICAgICAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDMyIDk1JSA0NCUpIiwiaHNsKDQ1IDkzJSA2MiUpIil9OwogICAgICAgIC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmc6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsKICAgICAgfQoKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBkZWVzLXRhYmxlLWNlbGwtZmxhc2gKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICB9CgogICAgICAvKiBIb2xkIHRoZSBhY2NlbnQgY29sb3IgYnJpZWZseSwgdGhlbiBmYWRlIGJhY2sgdG8gdGhlIHRoZW1lJ3MgZGVmYXVsdAogICAgICAgICB0ZXh0IGNvbG9yLiBJbmhlcml0cyB0byBjaGlsZCB0ZXh0IGFuZCB0byBTVkcgaWNvbnMgdGhhdCB1c2UKICAgICAgICAgY3VycmVudENvbG9yLiBDZWxscyB3aXRoIGV4cGxpY2l0IGNvbG9yIG92ZXJyaWRlcyBpbiByZW5kZXJlcnMgYXJlCiAgICAgICAgIGludGVudGlvbmFsbHkgdW5hZmZlY3RlZC4gKi8KICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2ggewogICAgICAgIDAlLAogICAgICAgIDM1JSB7IGNvbG9yOiB2YXIoLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yKTsgfQogICAgICAgIDEwMCUgeyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyB9CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci9iYWNrZ3JvdW5kIGZsYXNoIHZhcmlhbnQgZm9yIGNlbGxzIHdpdGggc3R5bGVkIGNvbnRlbnQKICAgICAgICAgKGJhZGdlcywgaWNvbnMsIGN1c3RvbSBjb21wb25lbnRzKSB3aGVyZSBhIHRleHQtY29sb3IgYW5pbWF0aW9uCiAgICAgICAgIHdvdWxkIGJlIGludmlzaWJsZS4gQWN0aXZhdGVkIHZpYSBmbGFzaEJvcmRlciBvbiBDb2x1bW4uICovCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICBhbmltYXRpb246IGRlZXMtdGFibGUtY2VsbC1mbGFzaC1ib3JkZXIKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2gtYm9yZGVyIHsKICAgICAgICAwJSwKICAgICAgICAzNSUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA2MiUgLyAwLjEwKSIsImhzbCg0NSA5MyUgNjIlIC8gMC4wOCkiKX07CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdHJhbnNwYXJlbnQ7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgfQogICAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWRlZXMtdGFibGUtZmxhc2gtY29sb3IpOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNjIlIC8gMC4xMCkiLCJoc2woNDUgOTMlIDYyJSAvIDAuMDgpIil9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogRGV2LXRpbWUgd2FybmluZyBiYW5uZXIgc2hvd24gd2hlbiBoaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giIGJ1dAogICAgICAgICByb3dLZXkgaXMgbWlzc2luZy4gQ29uc3VtZXJzIHNob3VsZCBuZXZlciBzaGlwIHRoaXMgdG8gcHJvZHVjdGlvbi4gKi8KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHggMDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woNDggOTYlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0OCA5NiUgODklIC8gMC42KSIsImhzbCg0OCA5NiUgMzAlIC8gMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzIgODElIDI5JSkiLCJoc2woNDggOTYlIDgwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIC5mbGFzaENvbmZpZ1dhcm5pbmcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAxcHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuNikiLCJoc2woMCAwJSAwJSAvIDAuMykiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogRWRpdGFibGUgY2VsbCBhZmZvcmRhbmNlcyAqLwogICAgICB0ZC5lZGl0YWJsZSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CiAgICAgIHRkLmZvY3VzZWQgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC42KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuNikiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC42KSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQogICAgICB0ZC5lZGl0aW5nQ2VsbCAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsCiAgICAgIHRkLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIGZpbHRlciByb3cgKi8KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggMTJweCAxMnB4OwogICAgICB9CiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggaW5wdXRbdHlwZT0ndGV4dCddIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAuYWN0aW9uc0NvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDExLjglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGFibGVTdGF0aXN0aWNzIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICBgXX0pO3ZhciBBbnQ9ZygoKT0+e280KCl9KTt2YXIgTm50PWcoKCk9PntMMWUoKX0pO3ZhciBSbnQ9ZygoKT0+e1IxZSgpO2VudCgpfSk7dmFyIE9udD1nKCgpPT57dm50KCl9KTtmdW5jdGlvbiBGbnQocyxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCB0PXMoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcChyPT4oe2tleTpyLGhlYWRlcjpyLHZhbHVlOmkobj0+cyhuKVtyXSwidmFsdWUiKX0pKX1mdW5jdGlvbiAkdmEocyxlLHQsYSl7bGV0IHI9KHN8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiByO2xldCBuPUZudCh0LGEpLG89bmV3IFNldChyLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG4pby5oYXMoU3RyaW5nKGwua2V5KSl8fHIucHVzaChsKTtyZXR1cm4gcn1mdW5jdGlvbiBkNChzLGUsdCl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZShzKTpzW2Uua2V5XX1mdW5jdGlvbiBKSmEocyxlKXtpZihzPT1udWxsJiZlPT1udWxsKXJldHVybiAwO2lmKHM9PW51bGwpcmV0dXJuLTE7aWYoZT09bnVsbClyZXR1cm4gMTtpZih0eXBlb2Ygcz09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIilyZXR1cm4gczxlPy0xOnM+ZT8xOjA7bGV0IHQ9U3RyaW5nKHMpLnRvTG93ZXJDYXNlKCksYT1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gdDxhPy0xOnQ+YT8xOjB9ZnVuY3Rpb24gRHZhKHMsZSx0LGEscixuPSJ0YWJsZSIsbyl7bGV0IGw9cy5zbGljZSgpLHA9KGF8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxkPXJ8fHt9LHU9T2JqZWN0LmtleXMoZCkuZmlsdGVyKGI9PihkW2JdPz8iIikudHJpbSgpLmxlbmd0aD4wKTtpZigocHx8dS5sZW5ndGg+MCkmJihsPWwuZmlsdGVyKGI9Pntmb3IobGV0IHYgb2YgdSlpZihuPT09ImRhdGEiKXtsZXQgeD1iW3ZdLG09U3RyaW5nKHg/PyIiKS50b0xvd2VyQ2FzZSgpLGY9U3RyaW5nKGRbdl0pLnRvTG93ZXJDYXNlKCk7aWYoIW0uaW5jbHVkZXMoZikpcmV0dXJuITF9ZWxzZXtsZXQgeD1lLmZpbmQoTT0+U3RyaW5nKE0ua2V5KT09PXYpO2lmKCF4fHx4LmhpZGRlbnx8eC5maWx0ZXJhYmxlPT09ITEpY29udGludWU7bGV0IG09ZDQoYix4KSxmPVN0cmluZyhtPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyhkW3ZdKS50b0xvd2VyQ2FzZSgpO2lmKCFmLmluY2x1ZGVzKHkpKXJldHVybiExfWlmKHApe2lmKG8pcmV0dXJuISFvKGIpO2xldCB2PSExO2lmKG49PT0iZGF0YSIpe2ZvcihsZXQgeCBvZiBPYmplY3QudmFsdWVzKGIpKWlmKFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwKSl7dj0hMDticmVha319ZWxzZSBmb3IobGV0IHggb2YgZSl7aWYoeC5oaWRkZW4pY29udGludWU7bGV0IG09ZDQoYix4KTtpZihTdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocCkpe3Y9ITA7YnJlYWt9fWlmKCF2KXJldHVybiExfXJldHVybiEwfSkpLCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIGw7bGV0IGM9dC5tYXAoYj0+KHtkZXNjOmIsY29sOmUuZmluZCh2PT5TdHJpbmcodi5rZXkpPT09Yi5rZXkpfSkpLmZpbHRlcihiPT4hIWIuY29sKTtyZXR1cm4gYy5sZW5ndGg9PT0wfHxsLnNvcnQoKGIsdik9Pntmb3IobGV0e2Rlc2M6eCxjb2w6bX1vZiBjKXtsZXQgZj1KSmEoZDQoYixtKSxkNCh2LG0pKTtpZihmIT09MClyZXR1cm4geC5kaXI9PT0iYXNjIj9mOi1mfXJldHVybiAwfSksbH12YXIgTHZhPWcoKCk9PntpKEZudCwiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIik7aSgkdmEsImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIik7aShkNCwiZ2V0Q2VsbFZhbHVlIik7aShKSmEsImNvbXBhcmVDZWxsVmFsdWVzIik7aShEdmEsImdldFZpZXdEYXRhIil9KTtmdW5jdGlvbiBRMWUocyl7cmV0dXJuIHMuc3RhcnRzV2l0aCgnIicpJiZzLmVuZHNXaXRoKCciJyl8fHMuc3RhcnRzV2l0aCgiJyIpJiZzLmVuZHNXaXRoKCInIik/cy5zbGljZSgxLC0xKTpzfWZ1bmN0aW9uIGVlcyhzKXtyZXR1cm4gcy5zcGxpdCgvXHMrT1JccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gdGVzKHMpe3JldHVybiBzLnNwbGl0KC9ccytBTkRccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gYWVzKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPSExLHQ9cy5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTt0JiYoZT0hMCxzPXRbMl0pO2xldCBhPXMubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoYSlyZXR1cm57ZmllbGQ6YVsxXSxuZWdhdGU6ZSxyYW5nZTp7bG93ZXI6UTFlKGFbMl0pLnRvTG93ZXJDYXNlKCksdXBwZXI6UTFlKGFbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHI9cy5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcj97ZmllbGQ6clsxXSx2YWx1ZTpRMWUoclsyXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6ZX06cy5sZW5ndGg+MD97dmFsdWU6UTFlKHMpLnRvTG93ZXJDYXNlKCksbmVnYXRlOmV9Om51bGx9ZnVuY3Rpb24gc2VzKHMpe2lmKCFzKXJldHVybiBudWxsO2xldCBlPWVlcyhzKS5tYXAodD0+KHt0ZXJtczp0ZXModCkubWFwKGFlcykuZmlsdGVyKHI9PiEhciYmISFyLnZhbHVlKX0pKS5maWx0ZXIodD0+dC50ZXJtcy5sZW5ndGg+MCk7cmV0dXJuIGUubGVuZ3RoPT09MD9udWxsOntjbGF1c2VzOmV9fWZ1bmN0aW9uIEV2YShzLGUsdCl7bGV0IGE9c2VzKHMpO2lmKCFhKXJldHVybiBudWxsO2xldCByPW5ldyBNYXAodC5tYXAocD0+W1N0cmluZyhwLmtleSkscF0pKSxuPWkoKHAsZCk9PnA8ZD8tMTpwPmQ/MTowLCJjbXAiKSxvPWkocD0+e2xldCBkPVN0cmluZyhwPz8iIikudG9Mb3dlckNhc2UoKSx1PU51bWJlcihkKSxjPURhdGUucGFyc2UoZCk7cmV0dXJuIU51bWJlci5pc05hTih1KSYmZC50cmltKCkhPT0iIj97dDoibiIsdjp1fTpOdW1iZXIuaXNOYU4oYyk/e3Q6InMiLHY6ZH06e3Q6ImQiLHY6Y319LCJjb2VyY2UiKSxsPWkoKHAsZCx1KT0+e2xldCBjPW8ocCksYj1vKGQpLHY9byh1KTtpZihjLnQ9PT0icyImJmIudD09PSJzIiYmdi50PT09InMiKXtsZXQgbT1jLnY7cmV0dXJuIG4obSxiLnYpPj0wJiZuKG0sdi52KTw9MH1pZihjLnQ9PT0ibiImJmIudD09PSJuIiYmdi50PT09Im4iKXtsZXQgbT1jLnY7cmV0dXJuIG0+PWIudiYmbTw9di52fWlmKGMudD09PSJkIiYmYi50PT09ImQiJiZ2LnQ9PT0iZCIpe2xldCBtPWMudjtyZXR1cm4gbT49Yi52JiZtPD12LnZ9bGV0IHg9U3RyaW5nKHA/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHgsZCk+PTAmJm4oeCx1KTw9MH0sImluUmFuZ2UiKTtyZXR1cm4gcD0+e2ZvcihsZXQgZCBvZiBhLmNsYXVzZXMpe2xldCB1PSEwO2ZvcihsZXQgYyBvZiBkLnRlcm1zKXtsZXQgYj0hMTtpZihjLnJhbmdlJiZjLmZpZWxkKWlmKGU9PT0iZGF0YSIpYj1sKHBbYy5maWVsZF0sYy5yYW5nZS5sb3dlcixjLnJhbmdlLnVwcGVyKTtlbHNle2xldCB2PXIuZ2V0KGMuZmllbGQpO2lmKCF2fHx2LmhpZGRlbiliPSExO2Vsc2V7bGV0IHg9di52YWx1ZT92LnZhbHVlKHApOnBbdi5rZXldO2I9bCh4LGMucmFuZ2UubG93ZXIsYy5yYW5nZS51cHBlcil9fWVsc2UgaWYoYy5maWVsZCYmYy52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWI9U3RyaW5nKHBbYy5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMudmFsdWUpO2Vsc2V7bGV0IHY9ci5nZXQoYy5maWVsZCk7aWYoIXZ8fHYuaGlkZGVuPT09ITApYj0hMTtlbHNle2xldCB4PXYudmFsdWU/di52YWx1ZShwKTpwW3Yua2V5XTtiPVN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX19ZWxzZSBjLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9iPU9iamVjdC52YWx1ZXMocCkuc29tZSh2PT5TdHJpbmcodj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYy52YWx1ZSkpOmI9dC5zb21lKHY9PntpZih2LmhpZGRlbilyZXR1cm4hMTtsZXQgeD12LnZhbHVlP3YudmFsdWUocCk6cFt2LmtleV07cmV0dXJuIFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjLnZhbHVlKX0pKTtpZihjLm5lZ2F0ZSYmKGI9IWIpLCFiKXt1PSExO2JyZWFrfX1pZih1KXJldHVybiEwfXJldHVybiExfX12YXIgUHZhPWcoKCk9PntpKFExZSwic3RyaXBRdW90ZXMiKTtpKGVlcywic3BsaXRCeU9yIik7aSh0ZXMsInNwbGl0QnlBbmQiKTtpKGFlcywicGFyc2VUZXJtIik7aShzZXMsInBhcnNlTHVjZW5lIik7aShFdmEsImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiKX0pO2Z1bmN0aW9uIGllcyhzKXtsZXQgZT1bInRoIiwic3QiLCJuZCIsInJkIl0sdD1zJTEwMDtyZXR1cm4gcysoZVsodC0yMCklMTBdfHxlW3RdfHxlWzBdKX12YXIgSGEsQ3QsQm50LEludD1nKCgpPT57dm8oKTt6dmEoKTtwZSgpO2ZyKCk7UHUoKTtrdCgpO0dhKCk7VHZhKCk7QW50KCk7Tm50KCk7Um50KCk7QTFlKCk7T250KCk7THZhKCk7UHZhKCk7aHQoKTttcigpO0hhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxDdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH07aShpZXMsIm9yZGluYWxMYWJlbCIpO0JudD0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGFibGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXSxzdCxNZT1bXSxnZT1bXSxJZSxjZT1bXSxkZT1bXSxMZSxLZT1bXSxZZT1bXSxvdCxVdD1bXSxadD1bXSxqYSxldD1bXSxidD1bXSx5YSxlcz1bXSxycz1bXSxwcyxucz1bXSx0aT1bXSxhaSx6ZT1bXSx4ZT1bXSxOZSx4dD1bXSxNYT1bXSxOcixmZT1bXSxyZT1bXSxTZSxPZT1bXSxKZT1bXSx6YSxkYT1bXSx3cz1bXSxraSxKaT1bXSxScj1bXSxTaSx2bj1bXSxyMT1bXSxvMSxuMT1bXSxsMT1bXSxjMSxkMT1bXSx1MT1bXTt2YXIgcDE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUYWJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBEPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpTdHJpbmd9KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6Qm9vbGVhbn0pXSxIPVtMKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOkFycmF5fSldLG1lPVtMKHthdHRyaWJ1dGU6ITF9KV0saGU9W0woe2F0dHJpYnV0ZTohMX0pXSx1ZT1bTCh7dHlwZTpCb29sZWFufSldLGllPVtMKHthdHRyaWJ1dGU6ITF9KV0sa2U9W0woe2F0dHJpYnV0ZTohMX0pXSx5ZT1bTCh7dHlwZTpPYmplY3R9KV0sc2U9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy12ZXJ0aWNhbC1saW5lcyJ9KV0sVGU9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ob3Jpem9udGFsLWxpbmVzIn0pXSxHZT1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWdyaWQifSldLENlPVtMKHthdHRyaWJ1dGU6ITF9KV0sRWU9W0woe3R5cGU6U3RyaW5nfSldLHN0PVtMKHthdHRyaWJ1dGU6ITF9KV0sSWU9W0woe3R5cGU6Qm9vbGVhbixhdHRyaWJ1dGU6InNob3ctY29sdW1uLWZpbHRlcnMifSldLExlPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctc2VsZWN0aW9uLWNoZWNrYm94In0pXSxvdD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJ2aXJ0dWFsaXplZCJ9KV0samE9W0woe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZToidmlydHVhbC1vdmVyc2NhbiJ9KV0seWE9W0woe3R5cGU6U3RyaW5nLGF0dHJpYnV0ZToiaGlnaGxpZ2h0LXVwZGF0ZXMifSldLHBzPVtMKHt0eXBlOk51bWJlcixhdHRyaWJ1dGU6ImhpZ2hsaWdodC1kdXJhdGlvbiJ9KV0sYWk9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiZml4ZWQtaGVpZ2h0In0pXSxOZT1bTCh7dHlwZTpTdHJpbmd9KV0sTnI9W0woe3R5cGU6U3RyaW5nfSldLFNlPVtMKHthdHRyaWJ1dGU6ITF9KV0semE9W1koKV0sa2k9W1koKV0sU2k9W1koKV0sbzE9W1koKV0sYzE9W1koKV0sSGEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nMSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGVhZGluZzEiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oZWFkaW5nMSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhlYWRpbmcxPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbyxsKSxIYSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJoZWFkaW5nMiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmhlYWRpbmcyLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGVhZGluZzI9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkLHUpLEhhKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iZGF0YSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGEsImdldCIpLHNldDppKChULEcpPT57VC5kYXRhPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sYix2KSxIYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ia2V5ImluIFQsImhhcyIpLGdldDppKFQ9PlQua2V5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Qua2V5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbSxmKSxIYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJsYWJlbCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmxhYmVsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubGFiZWw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNLHopLEhhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc2FibGVkImluIFQsImhhcyIpLGdldDppKFQ9PlQuZGlzYWJsZWQsImdldCIpLHNldDppKChULEcpPT57VC5kaXNhYmxlZD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXyksSGEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4icmVxdWlyZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yZXF1aXJlZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJlcXVpcmVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxFKSxIYSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhTmFtZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFOYW1lLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YU5hbWU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxrLFMpLEhhKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoYWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaGFibGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hhYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUCxSKSxIYSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJkYXRhQWN0aW9ucyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRhdGFBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZGF0YUFjdGlvbnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxWLFcpLEhhKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbHVtbnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29sdW1ucz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSksSGEodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm93S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyb3dLZXkiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5yb3dLZXksImdldCIpLHNldDppKChULEcpPT57VC5yb3dLZXk9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLEhhKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxsZSxRKSxIYSh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImRpc3BsYXlGdW5jdGlvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmRpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmRpc3BsYXlGdW5jdGlvbj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LHRlLGVlKSxIYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJyZXZlcnNlRGlzcGxheUZ1bmN0aW9uImluIFQsImhhcyIpLGdldDppKFQ9PlQucmV2ZXJzZURpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnJldmVyc2VEaXNwbGF5RnVuY3Rpb249R30sInNldCIpfSxtZXRhZGF0YTpEfSxYLFopLEhhKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0YVJvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWREYXRhUm93ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2VsZWN0ZWREYXRhUm93LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0ZWREYXRhUm93PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0scSxBKSxIYSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd1ZlcnRpY2FsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93VmVydGljYWxMaW5lcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dWZXJ0aWNhbExpbmVzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sb2UsYWUpLEhhKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIb3Jpem9udGFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dIb3Jpem9udGFsTGluZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93SG9yaXpvbnRhbExpbmVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2hvd0hvcml6b250YWxMaW5lcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFJlLEJlKSxIYSh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2hvd0dyaWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zaG93R3JpZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dHcmlkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLEhhKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRCeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic29ydEJ5ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc29ydEJ5LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc29ydEJ5PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdmUsYmUpLEhhKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImZpbHRlclRleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5maWx0ZXJUZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZmlsdGVyVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGplLFdlKSxIYSh0aGlzLG51bGwsc3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29sdW1uRmlsdGVycywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbHVtbkZpbHRlcnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxNZSxnZSksSGEodGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dDb2x1bW5GaWx0ZXJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2hvd0NvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChULEcpPT57VC5zaG93Q29sdW1uRmlsdGVycz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGNlLGRlKSxIYSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2VsZWN0aW9uQ2hlY2tib3giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNob3dTZWxlY3Rpb25DaGVja2JveCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNob3dTZWxlY3Rpb25DaGVja2JveCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNob3dTZWxlY3Rpb25DaGVja2JveD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEtlLFllKSxIYSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXJ0dWFsaXplZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbGl6ZWQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC52aXJ0dWFsaXplZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnZpcnR1YWxpemVkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLEhhKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpcnR1YWxPdmVyc2NhbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4idmlydHVhbE92ZXJzY2FuImluIFQsImhhcyIpLGdldDppKFQ9PlQudmlydHVhbE92ZXJzY2FuLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QudmlydHVhbE92ZXJzY2FuPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLEhhKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodFVwZGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImhpZ2hsaWdodFVwZGF0ZXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHRVcGRhdGVzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuaGlnaGxpZ2h0VXBkYXRlcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxIYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHREdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iaGlnaGxpZ2h0RHVyYXRpb24iaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5oaWdobGlnaHREdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmhpZ2hsaWdodER1cmF0aW9uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbnMsdGkpLEhhKHRoaXMsbnVsbCxhaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpeGVkSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJmaXhlZEhlaWdodCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmZpeGVkSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuZml4ZWRIZWlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSksSGEodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VhcmNoTW9kZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlYXJjaE1vZGUsImdldCIpLHNldDppKChULEcpPT57VC5zZWFyY2hNb2RlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0seHQsTWEpLEhhKHRoaXMsbnVsbCxOcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+InNlbGVjdGlvbk1vZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3Rpb25Nb2RlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2VsZWN0aW9uTW9kZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxIYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2VsZWN0ZWRJZHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5zZWxlY3RlZElkcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlbGVjdGVkSWRzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sT2UsSmUpLEhhKHRoaXMsbnVsbCx6YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZm9jdXNlZENlbGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Il9fZm9jdXNlZENlbGwiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5fX2ZvY3VzZWRDZWxsLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mb2N1c2VkQ2VsbD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxIYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2VkaXRpbmdDZWxsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX2VkaXRpbmdDZWxsImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19lZGl0aW5nQ2VsbCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULl9fZWRpdGluZ0NlbGw9R30sInNldCIpfSxtZXRhZGF0YTpEfSxKaSxSciksSGEodGhpcyxudWxsLFNpLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbG9hdGluZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbG9hdGluZ0FjdGl2ZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fZmxvYXRpbmdBY3RpdmUsImdldCIpLHNldDppKChULEcpPT57VC5fX2Zsb2F0aW5nQWN0aXZlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdm4scjEpLEhhKHRoaXMsbnVsbCxvMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fZmxhc2hpbmdDZWxscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iX19mbGFzaGluZ0NlbGxzImluIFQsImhhcyIpLGdldDppKFQ9PlQuX19mbGFzaGluZ0NlbGxzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX19mbGFzaGluZ0NlbGxzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLEhhKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fdmlydHVhbFJhbmdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJfX3ZpcnR1YWxSYW5nZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULl9fdmlydHVhbFJhbmdlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuX192aXJ0dWFsUmFuZ2U9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSksSGEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89TXZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9Q3QodGhpcyxvLCJoZWFkaW5nIDEiKTtnZXQgaGVhZGluZzEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZzEoRCl7dGhpcy4jZT1EfSN0PShDdCh0aGlzLGwpLEN0KHRoaXMsZCwiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihEKXt0aGlzLiN0PUR9I2E9KEN0KHRoaXMsdSksQ3QodGhpcyxiLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGF0YShEKXt0aGlzLiNhPUR9I3M9KEN0KHRoaXMsdiksQ3QodGhpcyxtLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQga2V5KEQpe3RoaXMuI3M9RH0jaT0oQ3QodGhpcyxmKSxDdCh0aGlzLE0sdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKEQpe3RoaXMuI2k9RH0jcj0oQ3QodGhpcyx6KSxDdCh0aGlzLEMsITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGlzYWJsZWQoRCl7dGhpcy4jcj1EfSNvPShDdCh0aGlzLF8pLEN0KHRoaXMsJCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNvfXNldCByZXF1aXJlZChEKXt0aGlzLiNvPUR9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoRCl7fWNoYW5nZVN1YmplY3Q9KEN0KHRoaXMsRSksbmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTsjbj1DdCh0aGlzLGssdm9pZCAwKTtnZXQgZGF0YU5hbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGF0YU5hbWUoRCl7dGhpcy4jbj1EfSNsPShDdCh0aGlzLFMpLEN0KHRoaXMsUCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoRCl7dGhpcy4jbD1EfSNjPShDdCh0aGlzLFIpLEN0KHRoaXMsVixbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhEKXt0aGlzLiNjPUR9I2Q9KEN0KHRoaXMsVyksQ3QodGhpcyxCLFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29sdW1ucyhEKXt0aGlzLiNkPUR9I3U9KEN0KHRoaXMsVSksQ3QodGhpcyxGLHZvaWQgMCkpO2dldCByb3dLZXkoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcm93S2V5KEQpe3RoaXMuI3U9RH0jcD0oQ3QodGhpcyxqKSxDdCh0aGlzLGxlLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKEQpe3RoaXMuI3A9RH0jaD0oQ3QodGhpcyxRKSxDdCh0aGlzLHRlLEQ9PkQpKTtnZXQgZGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGRpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNoPUR9I2Y9KEN0KHRoaXMsZWUpLEN0KHRoaXMsWCxEPT5EKSk7Z2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4jZn1zZXQgcmV2ZXJzZURpc3BsYXlGdW5jdGlvbihEKXt0aGlzLiNmPUR9I209KEN0KHRoaXMsWiksQ3QodGhpcyxxLHZvaWQgMCkpO2dldCBzZWxlY3RlZERhdGFSb3coKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWREYXRhUm93KEQpe3RoaXMuI209RH0jZz0oQ3QodGhpcyxBKSxDdCh0aGlzLG9lLCExKSk7Z2V0IHNob3dWZXJ0aWNhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IHNob3dWZXJ0aWNhbExpbmVzKEQpe3RoaXMuI2c9RH0jYj0oQ3QodGhpcyxhZSksQ3QodGhpcyxSZSwhMSkpO2dldCBzaG93SG9yaXpvbnRhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNob3dIb3Jpem9udGFsTGluZXMoRCl7dGhpcy4jYj1EfSN2PShDdCh0aGlzLEJlKSxDdCh0aGlzLERlLCEwKSk7Z2V0IHNob3dHcmlkKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dHcmlkKEQpe3RoaXMuI3Y9RH1maWxlcz0oQ3QodGhpcyxfZSksW10pO2ZpbGVXZWFrTWFwPW5ldyBXZWFrTWFwO2RhdGFDaGFuZ2VTdWJqZWN0PW5ldyB1dC5zbWFydHJ4LnJ4anMuU3ViamVjdDsjeD1DdCh0aGlzLHZlLFtdKTtnZXQgc29ydEJ5KCl7cmV0dXJuIHRoaXMuI3h9c2V0IHNvcnRCeShEKXt0aGlzLiN4PUR9I3k9KEN0KHRoaXMsYmUpLEN0KHRoaXMsamUsIiIpKTtnZXQgZmlsdGVyVGV4dCgpe3JldHVybiB0aGlzLiN5fXNldCBmaWx0ZXJUZXh0KEQpe3RoaXMuI3k9RH0jdz0oQ3QodGhpcyxXZSksQ3QodGhpcyxNZSx7fSkpO2dldCBjb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbHVtbkZpbHRlcnMoRCl7dGhpcy4jdz1EfSNrPShDdCh0aGlzLGdlKSxDdCh0aGlzLGNlLCExKSk7Z2V0IHNob3dDb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IHNob3dDb2x1bW5GaWx0ZXJzKEQpe3RoaXMuI2s9RH0jUz0oQ3QodGhpcyxkZSksQ3QodGhpcyxLZSwhMSkpO2dldCBzaG93U2VsZWN0aW9uQ2hlY2tib3goKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1NlbGVjdGlvbkNoZWNrYm94KEQpe3RoaXMuI1M9RH0jXz0oQ3QodGhpcyxZZSksQ3QodGhpcyxVdCwhMSkpO2dldCB2aXJ0dWFsaXplZCgpe3JldHVybiB0aGlzLiNffXNldCB2aXJ0dWFsaXplZChEKXt0aGlzLiNfPUR9I009KEN0KHRoaXMsWnQpLEN0KHRoaXMsZXQsOCkpO2dldCB2aXJ0dWFsT3ZlcnNjYW4oKXtyZXR1cm4gdGhpcy4jTX1zZXQgdmlydHVhbE92ZXJzY2FuKEQpe3RoaXMuI009RH0jej0oQ3QodGhpcyxidCksQ3QodGhpcyxlcywibm9uZSIpKTtnZXQgaGlnaGxpZ2h0VXBkYXRlcygpe3JldHVybiB0aGlzLiN6fXNldCBoaWdobGlnaHRVcGRhdGVzKEQpe3RoaXMuI3o9RH0jQz0oQ3QodGhpcyxycyksQ3QodGhpcyxucyw5MDApKTtnZXQgaGlnaGxpZ2h0RHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jQ31zZXQgaGlnaGxpZ2h0RHVyYXRpb24oRCl7dGhpcy4jQz1EfSNUPShDdCh0aGlzLHRpKSxDdCh0aGlzLHplLCExKSk7Z2V0IGZpeGVkSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI1R9c2V0IGZpeGVkSGVpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oQ3QodGhpcyx4ZSksQ3QodGhpcyx4dCwidGFibGUiKSk7Z2V0IHNlYXJjaE1vZGUoKXtyZXR1cm4gdGhpcy4jJH1zZXQgc2VhcmNoTW9kZShEKXt0aGlzLiMkPUR9X19zZWFyY2hUZXh0U3ViPUN0KHRoaXMsTWEpO19fc2VhcmNoTW9kZVN1YjsjRD1DdCh0aGlzLGZlLCJub25lIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jRH1zZXQgc2VsZWN0aW9uTW9kZShEKXt0aGlzLiNEPUR9I0w9KEN0KHRoaXMscmUpLEN0KHRoaXMsT2UsbmV3IFNldCkpO2dldCBzZWxlY3RlZElkcygpe3JldHVybiB0aGlzLiNMfXNldCBzZWxlY3RlZElkcyhEKXt0aGlzLiNMPUR9X3Jvd0lkTWFwPShDdCh0aGlzLEplKSxuZXcgV2Vha01hcCk7X3Jvd0lkQ291bnRlcj0wO19fc2VsZWN0aW9uQW5jaG9ySWQ7I0U9Q3QodGhpcyxkYSx2b2lkIDApO2dldCBfX2ZvY3VzZWRDZWxsKCl7cmV0dXJuIHRoaXMuI0V9c2V0IF9fZm9jdXNlZENlbGwoRCl7dGhpcy4jRT1EfSNQPShDdCh0aGlzLHdzKSxDdCh0aGlzLEppLHZvaWQgMCkpO2dldCBfX2VkaXRpbmdDZWxsKCl7cmV0dXJuIHRoaXMuI1B9c2V0IF9fZWRpdGluZ0NlbGwoRCl7dGhpcy4jUD1EfSNJPShDdCh0aGlzLFJyKSxDdCh0aGlzLHZuLCExKSk7Z2V0IF9fZmxvYXRpbmdBY3RpdmUoKXtyZXR1cm4gdGhpcy4jSX1zZXQgX19mbG9hdGluZ0FjdGl2ZShEKXt0aGlzLiNJPUR9I0E9KEN0KHRoaXMscjEpLEN0KHRoaXMsbjEsbmV3IE1hcCkpO2dldCBfX2ZsYXNoaW5nQ2VsbHMoKXtyZXR1cm4gdGhpcy4jQX1zZXQgX19mbGFzaGluZ0NlbGxzKEQpe3RoaXMuI0E9RH1fX3ByZXZTbmFwc2hvdD1DdCh0aGlzLGwxKTtfX2ZsYXNoQ2xlYXJUaW1lcjtfX2ZsYXNoVGljaz0wO19fZmxhc2hXYXJuZWROb1Jvd0tleT0hMTtfX21lbW9FZmZlY3RpdmVDb2xzO19fbWVtb1ZpZXdEYXRhO19fY29sdW1uc1NpemVkRm9yO19fcm93SGVpZ2h0PTM2O19fcm93SGVpZ2h0TWVhc3VyZWQ9ITE7I049Q3QodGhpcyxkMSx7c3RhcnQ6MCxlbmQ6MH0pO2dldCBfX3ZpcnR1YWxSYW5nZSgpe3JldHVybiB0aGlzLiNOfXNldCBfX3ZpcnR1YWxSYW5nZShEKXt0aGlzLiNOPUR9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9faGFuZGxlSG9zdEtleWRvd24pfV9faGFuZGxlSG9zdEtleWRvd249KEN0KHRoaXMsdTEpLEQ9PntsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdLEc9ITE7Zm9yKGxldCBQZSBvZiBUKXtsZXQgRmU9UGU/LnRhZ05hbWU7aWYoRmU9PT0iSU5QVVQifHxGZT09PSJURVhUQVJFQSJ8fFBlPy5pc0NvbnRlbnRFZGl0YWJsZSl7Rz0hMDticmVha319aWYoKEQubWV0YUtleXx8RC5jdHJsS2V5KSYmKEQua2V5PT09ImMifHxELmtleT09PSJDIikpe2lmKEcpcmV0dXJuO2xldCBQZT1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEZlIG9mIHRoaXMuZGF0YSl0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEZlKSkmJlBlLnB1c2goRmUpO2Vsc2UgdGhpcy5zZWxlY3RlZERhdGFSb3cmJlBlLnB1c2godGhpcy5zZWxlY3RlZERhdGFSb3cpO2lmKFBlLmxlbmd0aD09PTApcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLl9fd3JpdGVSb3dzQXNKc29uKFBlKTtyZXR1cm59aWYoIShHfHx0aGlzLl9fZWRpdGluZ0NlbGwpKXN3aXRjaChELmtleSl7Y2FzZSJBcnJvd0xlZnQiOkQucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgtMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1JpZ2h0IjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1VwIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwtMSwhMSk7cmV0dXJuO2Nhc2UiQXJyb3dEb3duIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwxLCExKTtyZXR1cm47Y2FzZSJFbnRlciI6Y2FzZSJGMiI6e2lmKCF0aGlzLl9fZm9jdXNlZENlbGwpcmV0dXJuO2xldCBGZT0odGhpcy5fbGFzdFZpZXdEYXRhPz9bXSkuZmluZChYZT0+dGhpcy5nZXRSb3dJZChYZSk9PT10aGlzLl9fZm9jdXNlZENlbGwucm93SWQpO2lmKCFGZSlyZXR1cm47bGV0IFVlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZChYZT0+U3RyaW5nKFhlLmtleSk9PT10aGlzLl9fZm9jdXNlZENlbGwuY29sS2V5KTtpZighVWV8fCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShVZSkpcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLnN0YXJ0RWRpdGluZyhGZSxVZSk7cmV0dXJufWNhc2UiRXNjYXBlIjp0aGlzLl9fZm9jdXNlZENlbGwmJih0aGlzLl9fZm9jdXNlZENlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtyZXR1cm47ZGVmYXVsdDpyZXR1cm59fSk7Y29weVNlbGVjdGlvbkFzSnNvbihEKXtsZXQgVD1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IEcgb2YgdGhpcy5kYXRhKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpJiZULnB1c2goRyk7ZWxzZSBEP1QucHVzaChEKTp0aGlzLnNlbGVjdGVkRGF0YVJvdyYmVC5wdXNoKHRoaXMuc2VsZWN0ZWREYXRhUm93KTtULmxlbmd0aCE9PTAmJnRoaXMuX193cml0ZVJvd3NBc0pzb24oVCl9X193cml0ZVJvd3NBc0pzb24oRCl7dHJ5e2xldCBUPUpTT04uc3RyaW5naWZ5KEQsbnVsbCwyKTtuYXZpZ2F0b3IuY2xpcGJvYXJkPy53cml0ZVRleHQoVCl9Y2F0Y2h7fX1zdGF0aWMgc3R5bGVzPUN2YTtfX2dldERpc3BsYXlGdW5jdGlvblNoYXBlS2V5KCl7aWYoIXRoaXMuZGF0YXx8dGhpcy5kYXRhLmxlbmd0aD09PTApcmV0dXJuIiI7bGV0IEQ9dGhpcy5kaXNwbGF5RnVuY3Rpb24odGhpcy5kYXRhWzBdKT8/e307cmV0dXJuIE9iamVjdC5rZXlzKEQpLmpvaW4oIlwwIil9X19nZXRFZmZlY3RpdmVDb2x1bW5zKCl7bGV0IEQ9QXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPjAsVD0hRHx8dGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj90aGlzLl9fZ2V0RGlzcGxheUZ1bmN0aW9uU2hhcGVLZXkoKToiIixHPXRoaXMuX19tZW1vRWZmZWN0aXZlQ29scztpZihHJiZHLmNvbHVtbnM9PT10aGlzLmNvbHVtbnMmJkcuYXVnbWVudD09PXRoaXMuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheUZ1bmN0aW9uPT09dGhpcy5kaXNwbGF5RnVuY3Rpb24mJkcuZGlzcGxheVNoYXBlS2V5PT09VClyZXR1cm4gRy5vdXQ7bGV0ICRlPUQ/JHZhKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6Rm50KHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuX19tZW1vRWZmZWN0aXZlQ29scz17Y29sdW1uczp0aGlzLmNvbHVtbnMsYXVnbWVudDp0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLGRpc3BsYXlGdW5jdGlvbjp0aGlzLmRpc3BsYXlGdW5jdGlvbixkaXNwbGF5U2hhcGVLZXk6VCxvdXQ6JGV9LCRlfV9fZ2V0Vmlld0RhdGEoRCl7bGV0IFQ9dGhpcy5zZWFyY2hNb2RlPT09ImRhdGEiPyJkYXRhIjoidGFibGUiLEc9dGhpcy5fX21lbW9WaWV3RGF0YTtpZihHJiZHLmRhdGE9PT10aGlzLmRhdGEmJkcuc29ydEJ5PT09dGhpcy5zb3J0QnkmJkcuZmlsdGVyVGV4dD09PXRoaXMuZmlsdGVyVGV4dCYmRy5jb2x1bW5GaWx0ZXJzPT09dGhpcy5jb2x1bW5GaWx0ZXJzJiZHLnNlYXJjaE1vZGU9PT1UJiZHLmVmZmVjdGl2ZUNvbHVtbnM9PT1EKXJldHVybiBHLm91dDtsZXQgJGU9RXZhKHRoaXMuZmlsdGVyVGV4dCxULEQpLFBlPUR2YSh0aGlzLmRhdGEsRCx0aGlzLnNvcnRCeSx0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLFQsJGV8fHZvaWQgMCk7cmV0dXJuIHRoaXMuX19tZW1vVmlld0RhdGE9e2RhdGE6dGhpcy5kYXRhLHNvcnRCeTp0aGlzLnNvcnRCeSxmaWx0ZXJUZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5GaWx0ZXJzOnRoaXMuY29sdW1uRmlsdGVycyxzZWFyY2hNb2RlOlQsZWZmZWN0aXZlQ29sdW1uczpELG91dDpQZX0sUGV9cmVuZGVyKCl7bGV0IEQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSxUPXRoaXMuX19nZXRWaWV3RGF0YShEKSxHPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImhlYWRlciIpLCRlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImZvb3RlciIpLFBlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93Iik7dGhpcy5fbGFzdFZpZXdEYXRhPVQ7bGV0IEZlPXRoaXMudmlydHVhbGl6ZWQmJlQubGVuZ3RoPjAsVmU9VCxVZT0wLFhlPTAsd3Q9MDtpZihGZSl7bGV0IFFlPXRoaXMuX192aXJ0dWFsUmFuZ2UsdmE9TWF0aC5tYXgoMCxRZS5zdGFydCksTnM9TWF0aC5taW4oVC5sZW5ndGgsUWUuZW5kfHwwKSx1YT1Ocz4wP05zOk1hdGgubWluKFQubGVuZ3RoLHRoaXMudmlydHVhbE92ZXJzY2FuKjIrMTYpO1VlPXZhLFZlPVQuc2xpY2UodmEsdWEpLFhlPXZhKnRoaXMuX19yb3dIZWlnaHQsd3Q9TWF0aC5tYXgoMCxULmxlbmd0aC11YSkqdGhpcy5fX3Jvd0hlaWdodH1yZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMSI+JHt0aGlzLmxhYmVsfHx0aGlzLmhlYWRpbmcxfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIGhlYWRpbmcyIj4ke3RoaXMuaGVhZGluZzJ9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlckFjdGlvbnMiPgogICAgICAgICAgICAke0cubWFwKFFlPT53YDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJoZWFkZXJBY3Rpb24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FlLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1FlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHtRZS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAke1FlLm5hbWV9YDpRZS5uYW1lfQogICAgICAgICAgICAgIDwvZGl2PmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ1NlcGFyYXRpb24iPjwvZGl2PgogICAgICAgICR7dGhpcy5oaWdobGlnaHRVcGRhdGVzPT09ImZsYXNoIiYmIXRoaXMucm93S2V5P3dgPGRpdiBjbGFzcz0iZmxhc2hDb25maWdXYXJuaW5nIiByb2xlPSJhbGVydCI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGNvZGU+aGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIjwvY29kZT4gcmVxdWlyZXMKICAgICAgICAgICAgICAgIDxjb2RlPnJvd0tleTwvY29kZT4gdG8gYmUgc2V0LiBGbGFzaCBpcyBkaXNhYmxlZC4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmA6d2BgfQogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEdyaWQgaGlkZGVuIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Imx1Y2VuZSBzeW50YXggc2VhcmNoIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7YAogICAgICAgICAgICAgIFlvdSBjYW4gdXNlIHRoZSBsdWNlbmUgc3ludGF4IHRvIHNlYXJjaCBmb3IgZGF0YSwgZS5nLjoKCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7InNlYXJjaCBtb2RlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbInRhYmxlIiwiZGF0YSIsInNlcnZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidGFibGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHtgCiAgICAgICAgICAgICAgVGhlcmUgYXJlIHRocmVlIGJhc2ljIG1vZGVzOgoKICAgICAgICAgICAgICAqIHRhYmxlOiBvbmx5IHNlYXJjaGVzIGRhdGEgYWxyZWFkeSBpbiB0aGUgdGFibGUKICAgICAgICAgICAgICAqIGRhdGE6IHNlYXJjaGVzIG9yaWdpbmFsIGRhdGEsIGlnbm9yaW5nIHRhYmxlIHRyYW5zZm9ybXMKICAgICAgICAgICAgICAqIHNlcnZlcjogc2VhcmNoZXMgZGF0YSBvbiB0aGUgc2VydmVyCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgPHRib2R5CiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuX19vblRib2R5Q2xpY2t9CiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0ke3RoaXMuX19vblRib2R5RGJsY2xpY2t9CiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLl9fb25UYm9keU1vdXNlZG93bn0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7dGhpcy5fX29uVGJvZHlDb250ZXh0bWVudX0KICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke3RoaXMuX19vblRib2R5RHJhZ2VudGVyfQogICAgICAgICAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fX29uVGJvZHlEcmFnbGVhdmV9CiAgICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuX19vblRib2R5RHJhZ292ZXJ9CiAgICAgICAgICAgICAgICAgIEBkcm9wPSR7dGhpcy5fX29uVGJvZHlEcm9wfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0ZlJiZYZT4wP3dgPHRyIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iaGVpZ2h0OiR7WGV9cHgiPjx0ZD48L3RkPjwvdHI+YDp3YGB9CiAgICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KFZlLFFlPT50aGlzLmdldFJvd0lkKFFlKSwoUWUsdmEpPT57bGV0IE5zPVVlK3ZhLHVhPXRoaXMuZ2V0Um93SWQoUWUpLEdzPXRoaXMuX19mbGFzaGluZ0NlbGxzLmdldCh1YSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb3ctaWR4PSR7TnN9CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSIke1FlPT09dGhpcy5zZWxlY3RlZERhdGFSb3d8fHRoaXMuaXNSb3dTZWxlY3RlZChRZSk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKFFlKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtmdD0+e2Z0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoUWUsZnQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDp3YGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7RC5maWx0ZXIoZnQ9PiFmdC5oaWRkZW4pLm1hcCgoZnQsZXIpPT57bGV0IGtzPWQ0KFFlLGZ0LHRoaXMuZGlzcGxheUZ1bmN0aW9uKSxocz1mdC5yZW5kZXJlcj9mdC5yZW5kZXJlcihrcyxRZSx7cm93SW5kZXg6TnMsY29sSW5kZXg6ZXIsY29sdW1uOmZ0fSk6a3MsX2k9U3RyaW5nKGZ0LmtleSksQTJlPSEhKGZ0LmVkaXRhYmxlfHxmdC5lZGl0b3IpLE4yZT10aGlzLl9fZm9jdXNlZENlbGw/LnJvd0lkPT09dWEmJnRoaXMuX19mb2N1c2VkQ2VsbD8uY29sS2V5PT09X2ksRDQ9dGhpcy5fX2VkaXRpbmdDZWxsPy5yb3dJZD09PXVhJiZ0aGlzLl9fZWRpdGluZ0NlbGw/LmNvbEtleT09PV9pLFd4PUdzPy5nZXQoX2kpLEw0PVd4IT09dm9pZCAwLFIyZT1MNCYmISFmdC5mbGFzaEJvcmRlcixPMmU9W0EyZT8iZWRpdGFibGUiOiIiLE4yZSYmIUQ0PyJmb2N1c2VkIjoiIixEND8iZWRpdGluZ0NlbGwiOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpLEd4PXdgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ke0w0P1IyZT8iaW5uZXJDZWxsQ29udGFpbmVyIGZsYXNoaW5nLWJvcmRlciI6ImlubmVyQ2VsbENvbnRhaW5lciBmbGFzaGluZyI6ImlubmVyQ2VsbENvbnRhaW5lciJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7RDQ/dGhpcy5yZW5kZXJDZWxsRWRpdG9yKFFlLGZ0KTpoc30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7TzJlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29sLWtleT0ke19pfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtMND9WaS5rZXllZChgJHt1YX06JHtfaX06JHtXeH1gLEd4KTpHeH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZihQZS5sZW5ndGg+MClyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJhY3Rpb25zQ29sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7UGUubWFwKGZ0PT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+ZnQuYWN0aW9uRnVuYyh7aXRlbTpRZSx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtmdC5pY29uTmFtZT93YCA8ZGVlcy1pY29uIC5pY29uPSR7ZnQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOmZ0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgICAgJHtGZSYmd3Q+MD93YDx0ciBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9ImhlaWdodDoke3d0fXB4Ij48dGQ+PC90ZD48L3RyPmA6d2BgfQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nSGVhZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgICAke3RoaXMuX19mbG9hdGluZ0FjdGl2ZT93YDx0YWJsZT4KICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+YDp3YGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AgPGRpdiBjbGFzcz0ibm9EYXRhU2V0Ij5ObyBkYXRhIHNldCE8L2Rpdj4gYH0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHskZS5tYXAoUWU9PndgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57UWUuYWN0aW9uRnVuYyh7aXRlbTp0aGlzLnNlbGVjdGVkRGF0YVJvdyx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7UWUuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FlLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICR7UWUubmFtZX1gOlFlLm5hbWV9CiAgICAgICAgICAgICAgPC9kaXY+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckhlYWRlclJvd3MoRCl7cmV0dXJuIHdgCiAgICAgIDx0cj4KICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgCiAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtUPT57VC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnNldFNlbGVjdFZpc2libGUoVC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICBgOndgYH0KICAgICAgICAke0QuZmlsdGVyKFQ9PiFULmhpZGRlbikubWFwKFQ9PntsZXQgRz1ULnNvcnRhYmxlIT09ITEsJGU9dGhpcy5nZXRBcmlhU29ydChUKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8dGgKICAgICAgICAgICAgICAgIHJvbGU9ImNvbHVtbmhlYWRlciIKICAgICAgICAgICAgICAgIGFyaWEtc29ydD0keyRlfQogICAgICAgICAgICAgICAgc3R5bGU9IiR7Rz8iY3Vyc29yOiBwb2ludGVyOyI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7UGU9Pkc/dGhpcy5oYW5kbGVIZWFkZXJDbGljayhQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtQZT0+Rz90aGlzLm9wZW5IZWFkZXJDb250ZXh0TWVudShQZSxULEQpOm51bGx9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtULmhlYWRlcj8/VC5rZXl9CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihUKX0KICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAke3RoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjA/d2A8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPmA6d2BgfQogICAgICA8L3RyPgogICAgICAke3RoaXMuc2hvd0NvbHVtbkZpbHRlcnM/d2A8dHIgY2xhc3M9ImZpbHRlcnNSb3ciPgogICAgICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyI+PC90aD5gOndgYH0KICAgICAgICAgICAgJHtELmZpbHRlcihUPT4hVC5oaWRkZW4pLm1hcChUPT57bGV0IEc9U3RyaW5nKFQua2V5KTtyZXR1cm4gVC5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgZGF0YS1jb2wta2V5PSR7R30gLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW0ddfHwiIn0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHskZT0+dGhpcy5zZXRDb2x1bW5GaWx0ZXIoRywkZS50YXJnZXQudmFsdWUpfSAvPgogICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aD48L3RoPmA6d2BgfQogICAgICAgICAgPC90cj5gOndgYH0KICAgIGB9X19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyO19fZmxvYXRpbmdTY3JvbGxIYW5kbGVyO19fc2Nyb2xsQW5jZXN0b3JzPVtdO2dldCBfX2Zsb2F0aW5nSGVhZGVyRWwoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmxvYXRpbmdIZWFkZXIiKT8/bnVsbH1nZXQgX19yZWFsVGFibGVFbCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCA+IHRhYmxlIik/P251bGx9Z2V0IF9fZmxvYXRpbmdUYWJsZUVsKCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZsb2F0aW5nSGVhZGVyID4gdGFibGUiKT8/bnVsbH1fX2NvbGxlY3RTY3JvbGxBbmNlc3RvcnMoKXtsZXQgRD1bXSxUPXRoaXMsRz1pKCRlPT4kZT09PSJhdXRvInx8JGU9PT0ic2Nyb2xsInx8JGU9PT0ib3ZlcmxheSIsInNjcm9sbGlzaCIpO2Zvcig7VDspe2lmKFQgaW5zdGFuY2VvZiBFbGVtZW50KXtsZXQgUGU9Z2V0Q29tcHV0ZWRTdHlsZShUKSxGZT1HKFBlLm92ZXJmbG93WSksVmU9RyhQZS5vdmVyZmxvd1gpOyhGZXx8VmUpJiZELnB1c2goe3RhcmdldDpULHNjcm9sbHNZOkZlLHNjcm9sbHNYOlZlfSl9bGV0ICRlPVQuYXNzaWduZWRTbG90P1QuYXNzaWduZWRTbG90OlQucGFyZW50Tm9kZTskZT9UPSRlOlQuaG9zdD9UPVQuaG9zdDpUPW51bGx9cmV0dXJuIEQucHVzaCh7dGFyZ2V0OndpbmRvdyxzY3JvbGxzWTohMCxzY3JvbGxzWDohMH0pLER9X19nZXRTdGlja0NvbnRleHQoKXtsZXQgRD0wLFQ9MCxHPXdpbmRvdy5pbm5lcldpZHRoO2ZvcihsZXQgJGUgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoJGUudGFyZ2V0PT09d2luZG93KWNvbnRpbnVlO2xldCBQZT0kZS50YXJnZXQsRmU9UGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVmU9Z2V0Q29tcHV0ZWRTdHlsZShQZSk7aWYoJGUuc2Nyb2xsc1kpe2xldCBVZT1wYXJzZUZsb2F0KFZlLmJvcmRlclRvcFdpZHRoKXx8MDtEPU1hdGgubWF4KEQsRmUudG9wK1VlKX1pZigkZS5zY3JvbGxzWCl7bGV0IFVlPXBhcnNlRmxvYXQoVmUuYm9yZGVyTGVmdFdpZHRoKXx8MCxYZT1wYXJzZUZsb2F0KFZlLmJvcmRlclJpZ2h0V2lkdGgpfHwwO1Q9TWF0aC5tYXgoVCxGZS5sZWZ0K1VlKSxHPU1hdGgubWluKEcsRmUucmlnaHQtWGUpfX1yZXR1cm57dG9wOkQsbGVmdDpULHJpZ2h0Okd9fXNldHVwRmxvYXRpbmdIZWFkZXIoKXtpZih0aGlzLnRlYXJkb3duRmxvYXRpbmdIZWFkZXIoKSx0aGlzLmZpeGVkSGVpZ2h0JiYhdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IEQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEKXJldHVybjt0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzPXRoaXMuX19jb2xsZWN0U2Nyb2xsQW5jZXN0b3JzKCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwiKTtUJiZ0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzLnVuc2hpZnQoe3RhcmdldDpULHNjcm9sbHNZOnRoaXMuZml4ZWRIZWlnaHQsc2Nyb2xsc1g6ITB9KSx0aGlzLl9fZmxvYXRpbmdSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy52aXJ0dWFsaXplZCYmdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKX0pLHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoRCksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj0oKT0+e3RoaXMuZml4ZWRIZWlnaHR8fHRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnZpcnR1YWxpemVkJiZ0aGlzLl9fY29tcHV0ZVZpcnR1YWxSYW5nZSgpfTtmb3IobGV0IEcgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycylHLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksdGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9dGVhcmRvd25GbG9hdGluZ0hlYWRlcigpe2lmKHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpe2ZvcihsZXQgVCBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKVQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlciksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj12b2lkIDB9dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz1bXSx0aGlzLl9fZmxvYXRpbmdBY3RpdmU9ITE7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7RCYmRC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1fX3RyYW5zZmVyRm9jdXNUb1JlYWxIZWFkZXIoKXtsZXQgRD10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbDtpZighRClyZXR1cm47bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50O2lmKCFUfHwhRC5jb250YWlucyhUKSlyZXR1cm47bGV0IEc9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCFHKXJldHVybjtsZXQgJGU9VCxQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50YWJsZVNjcm9sbCA+IHRhYmxlID4gdGhlYWQgaW5wdXRbZGF0YS1jb2wta2V5PSIke0NTUy5lc2NhcGUoRyl9Il1gKTtpZighUGV8fFBlPT09JGUpcmV0dXJuO2xldCBGZT0kZS5zZWxlY3Rpb25TdGFydCxWZT0kZS5zZWxlY3Rpb25FbmQsVWU9JGUuc2VsZWN0aW9uRGlyZWN0aW9uO1BlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e0ZlIT1udWxsJiZWZSE9bnVsbCYmUGUuc2V0U2VsZWN0aW9uUmFuZ2UoRmUsVmUsVWV8fHZvaWQgMCl9Y2F0Y2h7fX1fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7aWYoIUR8fCF0aGlzLl9fZmxvYXRpbmdBY3RpdmUpcmV0dXJuO2xldCBUPXRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudDtpZighVClyZXR1cm47bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwgPiB0YWJsZSA+IHRoZWFkIik7aWYoIUd8fCFHLmNvbnRhaW5zKFQpKXJldHVybjtsZXQgJGU9VC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCEkZSlyZXR1cm47bGV0IFBlPVQsRmU9RC5xdWVyeVNlbGVjdG9yKGBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZSgkZSl9Il1gKTtpZighRmV8fEZlPT09UGUpcmV0dXJuO2xldCBWZT1QZS5zZWxlY3Rpb25TdGFydCxVZT1QZS5zZWxlY3Rpb25FbmQsWGU9UGUuc2VsZWN0aW9uRGlyZWN0aW9uO0ZlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e1ZlIT1udWxsJiZVZSE9bnVsbCYmRmUuc2V0U2VsZWN0aW9uUmFuZ2UoVmUsVWUsWGV8fHZvaWQgMCl9Y2F0Y2h7fX1fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKXtpZighdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IFQ9KHRoaXMuX2xhc3RWaWV3RGF0YT8/W10pLmxlbmd0aDtpZihUPT09MCl7KHRoaXMuX192aXJ0dWFsUmFuZ2Uuc3RhcnQhPT0wfHx0aGlzLl9fdmlydHVhbFJhbmdlLmVuZCE9PTApJiYodGhpcy5fX3ZpcnR1YWxSYW5nZT17c3RhcnQ6MCxlbmQ6MH0pO3JldHVybn1sZXQgRz10aGlzLl9fcmVhbFRhYmxlRWw7aWYoIUcpcmV0dXJuO2xldCAkZT1HLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFBlPTAsRmU9d2luZG93LmlubmVySGVpZ2h0O2ZvcihsZXQgZnQgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYoZnQudGFyZ2V0PT09d2luZG93fHwhZnQuc2Nyb2xsc1kpY29udGludWU7bGV0IGVyPWZ0LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxrcz1nZXRDb21wdXRlZFN0eWxlKGZ0LnRhcmdldCksaHM9cGFyc2VGbG9hdChrcy5ib3JkZXJUb3BXaWR0aCl8fDAsX2k9cGFyc2VGbG9hdChrcy5ib3JkZXJCb3R0b21XaWR0aCl8fDA7UGU9TWF0aC5tYXgoUGUsZXIudG9wK2hzKSxGZT1NYXRoLm1pbihGZSxlci5ib3R0b20tX2kpfWxldCBWZT1NYXRoLm1heCgxLHRoaXMuX19yb3dIZWlnaHQpLFVlPUcudEhlYWQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodD8/MCxYZT0kZS50b3ArVWUsd3Q9TWF0aC5tYXgoMCxQZS1YZSksUWU9TWF0aC5tYXgoMCxGZS1NYXRoLm1heChQZSxYZSkpLHZhPU1hdGguZmxvb3Iod3QvVmUpLE5zPU1hdGguY2VpbChRZS9WZSkrMSx1YT1NYXRoLm1heCgwLHZhLXRoaXMudmlydHVhbE92ZXJzY2FuKSxHcz1NYXRoLm1pbihULHZhK05zK3RoaXMudmlydHVhbE92ZXJzY2FuKTsodWEhPT10aGlzLl9fdmlydHVhbFJhbmdlLnN0YXJ0fHxHcyE9PXRoaXMuX192aXJ0dWFsUmFuZ2UuZW5kKSYmKHRoaXMuX192aXJ0dWFsUmFuZ2U9e3N0YXJ0OnVhLGVuZDpHc30pfV9fbWVhc3VyZVJvd0hlaWdodCgpe2lmKCF0aGlzLnZpcnR1YWxpemVkfHx0aGlzLl9fcm93SGVpZ2h0TWVhc3VyZWQpcmV0dXJuO2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidGJvZHkiKTtpZighRClyZXR1cm47bGV0IFQ9QXJyYXkuZnJvbShELnJvd3MpLmZpbmQoJGU9PiRlLmhhc0F0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpO2lmKCFUKXJldHVybjtsZXQgRz1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtHPjAmJih0aGlzLl9fcm93SGVpZ2h0PUcsdGhpcy5fX3Jvd0hlaWdodE1lYXN1cmVkPSEwKX1fX3N5bmNGbG9hdGluZ0hlYWRlcigpe2xldCBEPXRoaXMuX19mbG9hdGluZ0hlYWRlckVsLFQ9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCFEfHwhVClyZXR1cm47bGV0IEc9VC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwkZT10aGlzLl9fZ2V0U3RpY2tDb250ZXh0KCksUGU9VC50SGVhZD8ucm93cyxGZT0wO2lmKFBlKWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGg7ZnQrKylGZSs9UGVbZnRdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtsZXQgVmU9Ry5ib3R0b20tJGUudG9wLFVlPUcudG9wPCRlLnRvcCYmVmU+MDtpZihVZSE9PXRoaXMuX19mbG9hdGluZ0FjdGl2ZSl7aWYoVWV8fHRoaXMuX190cmFuc2ZlckZvY3VzVG9SZWFsSGVhZGVyKCksdGhpcy5fX2Zsb2F0aW5nQWN0aXZlPVVlLEQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixVZSksIVVlKXtELnN0eWxlLmhlaWdodD0iIjtsZXQgZnQ9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtmdCYmKGZ0LnN0eWxlLnRyYW5zZm9ybT0iIil9aWYoVWUpe3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLl9fdHJhbnNmZXJGb2N1c1RvRmxvYXRpbmdIZWFkZXIoKX0pO3JldHVybn19aWYoIVVlKXJldHVybjtsZXQgWGU9dGhpcy5fX2Zsb2F0aW5nVGFibGVFbDtpZighWGUpcmV0dXJuO1hlLnN0eWxlLnRhYmxlTGF5b3V0PVQuc3R5bGUudGFibGVMYXlvdXR8fCJhdXRvIjtsZXQgd3Q9WGUudEhlYWQ/LnJvd3M7aWYoUGUmJnd0KWZvcihsZXQgZnQ9MDtmdDxQZS5sZW5ndGgmJmZ0PHd0Lmxlbmd0aDtmdCsrKXtsZXQgZXI9UGVbZnRdLmNlbGxzLGtzPXd0W2Z0XS5jZWxscztmb3IobGV0IGhzPTA7aHM8ZXIubGVuZ3RoJiZoczxrcy5sZW5ndGg7aHMrKyl7bGV0IF9pPWVyW2hzXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtrc1toc10uc3R5bGUud2lkdGg9YCR7X2l9cHhgLGtzW2hzXS5zdHlsZS5taW5XaWR0aD1gJHtfaX1weGAsa3NbaHNdLnN0eWxlLm1heFdpZHRoPWAke19pfXB4YH19bGV0IFFlPU1hdGgubWF4KEcubGVmdCwkZS5sZWZ0KSx2YT1NYXRoLm1pbihHLnJpZ2h0LCRlLnJpZ2h0KSxOcz1NYXRoLm1heCgwLHZhLVFlKTtELnN0eWxlLnRvcD1gJHskZS50b3B9cHhgLEQuc3R5bGUubGVmdD1gJHtRZX1weGAsRC5zdHlsZS53aWR0aD1gJHtOc31weGA7bGV0IHVhPU1hdGgubWluKEZlLFZlKSxHcz1GZS11YTtELnN0eWxlLmhlaWdodD1gJHt1YX1weGAsWGUuc3R5bGUud2lkdGg9YCR7Ry53aWR0aH1weGAsWGUuc3R5bGUubWFyZ2luTGVmdD1gJHtHLmxlZnQtUWV9cHhgLFhlLnN0eWxlLnRyYW5zZm9ybT1Hcz4wP2B0cmFuc2xhdGVZKC0ke0dzfXB4KWA6IiJ9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpLHRoaXMuX19mbGFzaENsZWFyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj12b2lkIDApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe313aWxsVXBkYXRlKEQpe2lmKEQuaGFzKCJkYXRhIikmJnRoaXMuc2VsZWN0ZWREYXRhUm93JiZ0aGlzLnJvd0tleSl7bGV0IHd0PXRoaXMuZ2V0Um93SWQodGhpcy5zZWxlY3RlZERhdGFSb3cpLFFlO2ZvcihsZXQgdmEgb2YgdGhpcy5kYXRhKWlmKHRoaXMuZ2V0Um93SWQodmEpPT09d3Qpe1FlPXZhO2JyZWFrfVFlP1FlIT09dGhpcy5zZWxlY3RlZERhdGFSb3cmJih0aGlzLnNlbGVjdGVkRGF0YVJvdz1RZSk6dGhpcy5zZWxlY3RlZERhdGFSb3c9dm9pZCAwfWlmKHRoaXMuaGlnaGxpZ2h0VXBkYXRlcyE9PSJmbGFzaCIpeyh0aGlzLl9fcHJldlNuYXBzaG90fHx0aGlzLl9fZmxhc2hpbmdDZWxscy5zaXplPjApJiYodGhpcy5fX3ByZXZTbmFwc2hvdD12b2lkIDAsdGhpcy5fX2ZsYXNoaW5nQ2VsbHMuc2l6ZT4wJiYodGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMCkpO3JldHVybn1pZighdGhpcy5yb3dLZXkpe3RoaXMuX19mbGFzaFdhcm5lZE5vUm93S2V5fHwodGhpcy5fX2ZsYXNoV2FybmVkTm9Sb3dLZXk9ITAsY29uc29sZS53YXJuKCdbZGVlcy10YWJsZV0gaGlnaGxpZ2h0VXBkYXRlcz0iZmxhc2giIHJlcXVpcmVzIGByb3dLZXlgIHRvIGJlIHNldC4gRmxhc2ggaXMgZGlzYWJsZWQuIFNldCB0aGUgcm93S2V5IHByb3BlcnR5L2F0dHJpYnV0ZSB0byBhIHN0YWJsZSBpZGVudGlmaWVyIG9uIHlvdXIgcm93IGRhdGEgKGUuZy4gYHJvd0tleT0iaWQiYCkuJykpO3JldHVybn1pZighRC5oYXMoImRhdGEiKSlyZXR1cm47bGV0IEc9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maWx0ZXIod3Q9PiF3dC5oaWRkZW4pLCRlPW5ldyBNYXAoRy5tYXAod3Q9PltTdHJpbmcod3Qua2V5KSx3dF0pKSxQZT1uZXcgTWFwLEZlPW5ldyBNYXA7Zm9yKGxldCB3dCBvZiB0aGlzLmRhdGEpe2xldCBRZT10aGlzLmdldFJvd0lkKHd0KSx2YT1uZXcgTWFwO2ZvcihsZXQgdWEgb2YgRyl2YS5zZXQoU3RyaW5nKHVhLmtleSksZDQod3QsdWEsdGhpcy5kaXNwbGF5RnVuY3Rpb24pKTtQZS5zZXQoUWUsdmEpO2xldCBOcz10aGlzLl9fcHJldlNuYXBzaG90Py5nZXQoUWUpO2lmKE5zKWZvcihsZXRbdWEsR3Ndb2YgdmEpe2xldCBmdD1Ocy5nZXQodWEpLGVyPSRlLmdldCh1YSksa3M7aWYoZXI/LmZsYXNoQ29tcGFyZT9rcz1lci5mbGFzaENvbXBhcmUoZnQsR3MpOkdzIT1udWxsJiZ0eXBlb2YgR3M9PSJvYmplY3QiP2tzPSExOmtzPWZ0IT09R3Msa3Mpe2lmKHRoaXMuX19lZGl0aW5nQ2VsbCYmdGhpcy5fX2VkaXRpbmdDZWxsLnJvd0lkPT09UWUmJnRoaXMuX19lZGl0aW5nQ2VsbC5jb2xLZXk9PT11YSljb250aW51ZTtsZXQgaHM9RmUuZ2V0KFFlKTtoc3x8KGhzPW5ldyBTZXQsRmUuc2V0KFFlLGhzKSksaHMuYWRkKHVhKX19fWxldCBWZT0hIXRoaXMuX19wcmV2U25hcHNob3Q7aWYodGhpcy5fX3ByZXZTbmFwc2hvdD1QZSwhVmV8fEZlLnNpemU9PT0wKXJldHVybjtsZXQgVWU9Kyt0aGlzLl9fZmxhc2hUaWNrLFhlPW5ldyBNYXAodGhpcy5fX2ZsYXNoaW5nQ2VsbHMpO2ZvcihsZXRbd3QsUWVdb2YgRmUpe2xldCB2YT1uZXcgTWFwKFhlLmdldCh3dCk/P1tdKTtmb3IobGV0IE5zIG9mIFFlKXZhLnNldChOcyxVZSk7WGUuc2V0KHd0LHZhKX10aGlzLl9fZmxhc2hpbmdDZWxscz1YZSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMH0sTWF0aC5tYXgoMCx0aGlzLmhpZ2hsaWdodER1cmF0aW9uKSl9YXN5bmMgdXBkYXRlZChEKXtzdXBlci51cGRhdGVkKEQpO2xldCBUPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik/P251bGwsJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKS5sZW5ndGg7RC5oYXMoImhpZ2hsaWdodER1cmF0aW9uIikmJnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZGVlcy10YWJsZS1mbGFzaC1kdXJhdGlvbiIsYCR7dGhpcy5oaWdobGlnaHREdXJhdGlvbn1tc2ApO2xldCBQZT0hIUcmJighdGhpcy5fX2NvbHVtbnNTaXplZEZvcnx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5lZmZlY3RpdmVDb2x1bW5zIT09VHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5zaG93U2VsZWN0aW9uQ2hlY2tib3ghPT10aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveHx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci5pblJvd0FjdGlvbkNvdW50IT09JGV8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IudGFibGUhPT1HKTtHJiZQZSYmKHRoaXMuX19jb2x1bW5zU2l6ZWRGb3I9e2VmZmVjdGl2ZUNvbHVtbnM6VCxzaG93U2VsZWN0aW9uQ2hlY2tib3g6dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3gsaW5Sb3dBY3Rpb25Db3VudDokZSx0YWJsZTpHfSx0aGlzLmRldGVybWluZUNvbHVtbldpZHRocygpLHRoaXMuX19yb3dIZWlnaHRNZWFzdXJlZD0hMSksdGhpcy52aXJ0dWFsaXplZCYmKHRoaXMuX19tZWFzdXJlUm93SGVpZ2h0KCksdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKSksKEQuaGFzKCJmaXhlZEhlaWdodCIpfHxELmhhcygidmlydHVhbGl6ZWQiKXx8RC5oYXMoImRhdGEiKXx8RC5oYXMoImNvbHVtbnMiKXx8IXRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpJiYoKCF0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLnZpcnR1YWxpemVkKSYmdGhpcy5kYXRhLmxlbmd0aD4wP3RoaXMuc2V0dXBGbG9hdGluZ0hlYWRlcigpOnRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpKSwhdGhpcy5maXhlZEhlaWdodCYmdGhpcy5kYXRhLmxlbmd0aD4wJiYodGhpcy5fX2Zsb2F0aW5nQWN0aXZlfHxQZSkmJnRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnNlYXJjaGFibGUmJih0aGlzLmRhdGFBY3Rpb25zLmZpbmQoVmU9PlZlLnR5cGU/LmluY2x1ZGVzKCJoZWFkZXIiKSYmVmUubmFtZT09PSJTZWFyY2giKXx8KHRoaXMuZGF0YUFjdGlvbnMudW5zaGlmdCh7bmFtZToiU2VhcmNoIixpY29uTmFtZToibHVjaWRlOlNlYXJjaCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57Y29uc29sZS5sb2coIm9wZW4gc2VhcmNoIiksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIikuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIil9LCJhY3Rpb25GdW5jIil9KSxjb25zb2xlLmxvZyh0aGlzLmRhdGFBY3Rpb25zKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksdGhpcy53aXJlU2VhcmNoSW5wdXRzKCkpfV9fZGVib3VuY2VUaW1lcjtkZWJvdW5jZVJ1bihELFQ9MjAwKXt0aGlzLl9fZGVib3VuY2VUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX19kZWJvdW5jZVRpbWVyKSx0aGlzLl9fZGVib3VuY2VUaW1lcj1zZXRUaW1lb3V0KEQsVCl9d2lyZVNlYXJjaElucHV0cygpe2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC10ZXh0IiksVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKTtEJiYhdGhpcy5fX3NlYXJjaFRleHRTdWImJih0aGlzLl9fc2VhcmNoVGV4dFN1Yj1ELmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTokZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dCgkZSl9KX0pKSxUJiYhdGhpcy5fX3NlYXJjaE1vZGVTdWImJih0aGlzLl9fc2VhcmNoTW9kZVN1Yj1ULmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEc9PntsZXQgJGU9Rz8uc2VsZWN0ZWRPcHRpb258fEc/LnZhbHVlfHwidGFibGUiO2lmKCRlPT09InRhYmxlInx8JGU9PT0iZGF0YSJ8fCRlPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT0kZTtsZXQgUGU9RD8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpQZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChQZSl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IFQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik7aWYoIVQpcmV0dXJuO2xldCBHPVQucm93c1swXS5jZWxscywkZT1pKGFzeW5jKFBlLEZlPSExKT0+e2xldCBWZT1tdC5kZWZlcigpLFVlPUdbUGVdLFhlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFVlKS53aWR0aDtpZihVZS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpKXtsZXQgd3Q9dGhpcy5kYXRhQWN0aW9ucy5maWx0ZXIoUWU9PlFlLnR5cGU/LmluY2x1ZGVzKCJpblJvdyIpKS5sZW5ndGgqMzY7VWUuc3R5bGUud2lkdGg9YCR7TWF0aC5tYXgod3QsNjgpfXB4YH1lbHNlIFVlLnN0eWxlLndpZHRoPVhlO0ZlJiYocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VmUucmVzb2x2ZSgpfSksYXdhaXQgVmUucHJvbWlzZSl9LCJoYW5kbGVDb2x1bW5CeUluZGV4Iik7R1tHLmxlbmd0aC0xXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpJiZhd2FpdCAkZShHLmxlbmd0aC0xLCEwKTtmb3IobGV0IFBlPTA7UGU8Ry5sZW5ndGg7UGUrKylHW1BlXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpfHxhd2FpdCAkZShQZSk7VC5zdHlsZS50YWJsZUxheW91dD0iZml4ZWQifWdldFNvcnREZXNjcmlwdG9yKEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kKFQ9PlQua2V5PT09RCl9Z2V0U29ydFByaW9yaXR5KEQpe3JldHVybiB0aGlzLnNvcnRCeS5maW5kSW5kZXgoVD0+VC5rZXk9PT1EKX1zZXRTb3J0KEQsVCl7dGhpcy5zb3J0Qnk9W3trZXk6RCxkaXI6VH1dLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hZGRTb3J0QXQoRCxULEcpe2xldCAkZT10aGlzLnNvcnRCeS5maWx0ZXIoRmU9PkZlLmtleSE9PUQpLFBlPU1hdGgubWF4KDAsTWF0aC5taW4oVCwkZS5sZW5ndGgpKTskZS5zcGxpY2UoUGUsMCx7a2V5OkQsZGlyOkd9KSx0aGlzLnNvcnRCeT0kZSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kU29ydChELFQpe2xldCBHPXRoaXMuc29ydEJ5LmZpbHRlcigkZT0+JGUua2V5IT09RCk7Ry5wdXNoKHtrZXk6RCxkaXI6VH0pLHRoaXMuc29ydEJ5PUcsdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXJlbW92ZVNvcnQoRCl7dGhpcy5zb3J0Qnkuc29tZShUPT5ULmtleT09PUQpJiYodGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkuZmlsdGVyKFQ9PlQua2V5IT09RCksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1jbGVhclNvcnRzKCl7dGhpcy5zb3J0QnkubGVuZ3RoIT09MCYmKHRoaXMuc29ydEJ5PVtdLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9ZW1pdFNvcnRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzb3J0Q2hhbmdlIix7ZGV0YWlsOntzb3J0Qnk6dGhpcy5zb3J0QnkubWFwKEQ9Pih7Li4uRH0pKX0sYnViYmxlczohMH0pKX1hc3luYyBoYW5kbGVIZWFkZXJDbGljayhELFQsRyl7aWYoRC5zaGlmdEtleSl7dGhpcy5oYW5kbGVIZWFkZXJTaGlmdENsaWNrKFQpO3JldHVybn1hd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShUKSYmdGhpcy5jeWNsZVNpbmdsZVNvcnQoVCl9Y3ljbGVTaW5nbGVTb3J0KEQpe2xldCBUPVN0cmluZyhELmtleSksRz10aGlzLnNvcnRCeS5sZW5ndGg9PT0xJiZ0aGlzLnNvcnRCeVswXS5rZXk9PT1UP3RoaXMuc29ydEJ5WzBdLmRpcjpudWxsO0c9PT0iYXNjIj90aGlzLnNldFNvcnQoVCwiZGVzYyIpOkc9PT0iZGVzYyI/dGhpcy5jbGVhclNvcnRzKCk6dGhpcy5zZXRTb3J0KFQsImFzYyIpfWhhbmRsZUhlYWRlclNoaWZ0Q2xpY2soRCl7bGV0IFQ9U3RyaW5nKEQua2V5KSxHPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoVCk7Rz9HLmRpcj09PSJhc2MiPyh0aGlzLnNvcnRCeT10aGlzLnNvcnRCeS5tYXAoJGU9PiRlLmtleT09PVQ/e2tleTpULGRpcjoiZGVzYyJ9OiRlKSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpOnRoaXMucmVtb3ZlU29ydChUKTp0aGlzLmFwcGVuZFNvcnQoVCwiYXNjIil9Y29uZmlybVJlcGxhY2VDYXNjYWRlKEQpe3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg8PTE/UHJvbWlzZS5yZXNvbHZlKCEwKTpuZXcgUHJvbWlzZShUPT57bGV0IEc9ITEsJGU9aShGZT0+e0d8fChHPSEwLFQoRmUpKX0sInNldHRsZSIpLFBlPXRoaXMuc29ydEJ5Lm1hcCgoRmUsVmUpPT57bGV0IFhlPXRoaXMuX2xvb2t1cENvbHVtbkJ5S2V5Py4oRmUua2V5KT8uaGVhZGVyPz9GZS5rZXk7cmV0dXJuIHdgPGxpPiR7VmUrMX0uICR7WGV9ICR7RmUuZGlyPT09ImFzYyI/Ilx1MjVCMiI6Ilx1MjVCQyJ9PC9saT5gfSk7aXMuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiUmVwbGFjZSBtdWx0aS1jb2x1bW4gc29ydD8iLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxLjU1OyI+CiAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46MCAwIDhweDsiPgogICAgICAgICAgICAgIFlvdSBjdXJyZW50bHkgaGF2ZSBhICR7dGhpcy5zb3J0QnkubGVuZ3RofS1jb2x1bW4gc29ydCBhY3RpdmU6CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7IHBhZGRpbmctbGVmdDoxOHB4OyI+JHtQZX08L3VsPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOjA7Ij4KICAgICAgICAgICAgICBDb250aW51aW5nIHdpbGwgZGlzY2FyZCB0aGUgY2FzY2FkZSBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgc2luZ2xlIHNvcnQgb24KICAgICAgICAgICAgICA8c3Ryb25nPiR7RC5oZWFkZXI/P1N0cmluZyhELmtleSl9PC9zdHJvbmc+LgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjppKGFzeW5jIEZlPT4oJGUoITEpLGF3YWl0IEZlLmRlc3Ryb3koKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToibHVjaWRlOmNoZWNrIixhY3Rpb246aShhc3luYyBGZT0+KCRlKCEwKSxhd2FpdCBGZS5kZXN0cm95KCksbnVsbCksImFjdGlvbiIpfV19KX0pfV9sb29rdXBDb2x1bW5CeUtleShEKXtyZXR1cm4gdGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKEc9PlN0cmluZyhHLmtleSk9PT1EKX1vcGVuSGVhZGVyQ29udGV4dE1lbnUoRCxULEcpe2xldCAkZT10aGlzLmJ1aWxkSGVhZGVyTWVudUl0ZW1zKFQsRyk7JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCwkZSl9YnVpbGRIZWFkZXJNZW51SXRlbXMoRCxUKXtsZXQgRz1TdHJpbmcoRC5rZXkpLCRlPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoRyksUGU9dGhpcy5zb3J0QnkubGVuZ3RoLEZlPVQuZmlsdGVyKFhlPT5YZS5zb3J0YWJsZSE9PSExKS5sZW5ndGgsVmU9TWF0aC5taW4oTWF0aC5tYXgoUGUrKCRlPzA6MSksMSksTWF0aC5tYXgoRmUsMSkpLFVlPVtdO1VlLnB1c2goe25hbWU6IlNvcnQgQXNjZW5kaW5nIixpY29uTmFtZTpQZT09PTEmJiRlPy5kaXI9PT0iYXNjIj8ibHVjaWRlOmNoZWNrIjoibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShEKSYmdGhpcy5zZXRTb3J0KEcsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0pLFVlLnB1c2goe25hbWU6IlNvcnQgRGVzY2VuZGluZyIsaWNvbk5hbWU6UGU9PT0xJiYkZT8uZGlyPT09ImRlc2MiPyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4oYXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoRCkmJnRoaXMuc2V0U29ydChHLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfSksVWUucHVzaCh7ZGl2aWRlcjohMH0pO2ZvcihsZXQgWGU9MTtYZTw9VmU7WGUrKyl7bGV0IHd0PWllcyhYZSksUWU9JGUmJnRoaXMuZ2V0U29ydFByaW9yaXR5KEcpPT09WGUtMTtVZS5wdXNoKHtuYW1lOmBTZXQgYXMgJHt3dH0gc29ydGAsaWNvbk5hbWU6UWU/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTpsaXN0T3JkZXJlZCIsc3VibWVudTpbe25hbWU6IkFzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd1VwIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hZGRTb3J0QXQoRyxYZS0xLCJhc2MiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJEZXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93RG93biIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuYWRkU29ydEF0KEcsWGUtMSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSl9cmV0dXJuIFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOiJBcHBlbmQgdG8gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixzdWJtZW51Olt7bmFtZToiQXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiYXNjIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiRGVzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQoRywiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSksJGUmJihVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiUmVtb3ZlIGZyb20gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTptaW51cyIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMucmVtb3ZlU29ydChHKSxudWxsKSwiYWN0aW9uIil9KSksUGU+MCYmKCRlfHxVZS5wdXNoKHtkaXZpZGVyOiEwfSksVWUucHVzaCh7bmFtZToiQ2xlYXIgYWxsIHNvcnRzIixpY29uTmFtZToibHVjaWRlOnRyYXNoIixhY3Rpb246aShhc3luYygpPT4odGhpcy5jbGVhclNvcnRzKCksbnVsbCksImFjdGlvbiIpfSkpLFVlLnB1c2goe2RpdmlkZXI6ITB9KSxVZS5wdXNoKHtuYW1lOnRoaXMuc2hvd0NvbHVtbkZpbHRlcnM/IkhpZGUgY29sdW1uIGZpbHRlcnMiOiJTaG93IGNvbHVtbiBmaWx0ZXJzIixpY29uTmFtZTp0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPyJsdWNpZGU6ZmlsdGVyWCI6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPSF0aGlzLnNob3dDb2x1bW5GaWx0ZXJzLHRoaXMucmVxdWVzdFVwZGF0ZSgpLG51bGwpLCJhY3Rpb24iKX0pLFVlfWdldEFyaWFTb3J0KEQpe2xldCBUPXRoaXMuc29ydEJ5WzBdO3JldHVybiFUfHxULmtleSE9PVN0cmluZyhELmtleSk/Im5vbmUiOlQuZGlyPT09ImFzYyI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmcifXJlbmRlclNvcnRJbmRpY2F0b3IoRCl7bGV0IFQ9dGhpcy5nZXRTb3J0UHJpb3JpdHkoU3RyaW5nKEQua2V5KSk7aWYoVDwwKXJldHVybiB3YGA7bGV0ICRlPXRoaXMuc29ydEJ5W1RdLmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMiO3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg9PT0xP3dgPHNwYW4gY2xhc3M9InNvcnRBcnJvdyI+JHskZX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJzb3J0QXJyb3ciPiR7JGV9PC9zcGFuPjxzcGFuIGNsYXNzPSJzb3J0QmFkZ2UiPiR7VCsxfTwvc3Bhbj5gfXNldEZpbHRlclRleHQoRCl7bGV0IFQ9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1EPz8iIixUIT09dGhpcy5maWx0ZXJUZXh0JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1zZXRDb2x1bW5GaWx0ZXIoRCxUKXt0aGlzLmNvbHVtbkZpbHRlcnM9ey4uLnRoaXMuY29sdW1uRmlsdGVycyxbRF06VH0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKEQpe2lmKHRoaXMucm93S2V5KXJldHVybiB0eXBlb2YgdGhpcy5yb3dLZXk9PSJmdW5jdGlvbiI/dGhpcy5yb3dLZXkoRCk6U3RyaW5nKERbdGhpcy5yb3dLZXldKTtsZXQgVD1EO3JldHVybiB0aGlzLl9yb3dJZE1hcC5oYXMoVCl8fHRoaXMuX3Jvd0lkTWFwLnNldChULFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpLHRoaXMuX3Jvd0lkTWFwLmdldChUKX1pc1Jvd1NlbGVjdGVkKEQpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEQpKX10b2dnbGVSb3dTZWxlY3RlZChEKXtsZXQgVD10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoVCkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJih0aGlzLnNlbGVjdGVkSWRzLmhhcyhUKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShUKTp0aGlzLnNlbGVjdGVkSWRzLmFkZChUKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9X19yZXNvbHZlUm93KEQpe2xldCBUPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sRz1udWxsO2ZvcihsZXQgVmUgb2YgVCl7bGV0IFVlPVZlO2lmKFVlPy50YWdOYW1lPT09IlRSIiYmVWUuaGFzQXR0cmlidXRlKCJkYXRhLXJvdy1pZHgiKSl7Rz1VZTticmVha319aWYoIUcpcmV0dXJuIG51bGw7bGV0ICRlPU51bWJlcihHLmdldEF0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4IikpLEZlPSh0aGlzLl9sYXN0Vmlld0RhdGE/P1tdKVskZV07cmV0dXJuIEZlP3tpdGVtOkZlLHJvd0lkeDokZX06bnVsbH1fX3Jlc29sdmVDZWxsKEQpe2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybiBudWxsO2xldCBHPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sJGU9bnVsbDtmb3IobGV0IFVlIG9mIEcpe2xldCBYZT1VZTtpZihYZT8udGFnTmFtZT09PSJURCImJlhlLmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IikpeyRlPVhlO2JyZWFrfX1pZighJGUpcmV0dXJuIG51bGw7bGV0IFBlPSRlLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IiksVmU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKFVlPT5TdHJpbmcoVWUua2V5KT09PVBlKTtyZXR1cm4gVmU/e2l0ZW06VC5pdGVtLHJvd0lkeDpULnJvd0lkeCxjb2w6VmV9Om51bGx9X19pc0luQWN0aW9uc0NvbChEKXtsZXQgVD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgRyBvZiBUKWlmKEc/LmNsYXNzTGlzdD8uY29udGFpbnMoImFjdGlvbnNDb2wiKSlyZXR1cm4hMDtyZXR1cm4hMX1fX2lzSW5FZGl0b3IoRCl7bGV0IFQ9RC5jb21wb3NlZFBhdGg/LigpfHxbXTtmb3IobGV0IEcgb2YgVCl7bGV0ICRlPUcsUGU9JGU/LnRhZ05hbWU7aWYoUGU9PT0iSU5QVVQifHxQZT09PSJURVhUQVJFQSJ8fCRlPy5pc0NvbnRlbnRFZGl0YWJsZXx8UGUmJlBlLnN0YXJ0c1dpdGgoIkRFRVMtSU5QVVQtIikpcmV0dXJuITB9cmV0dXJuITF9X19vblRib2R5Q2xpY2s9aShEPT57aWYodGhpcy5fX2lzSW5FZGl0b3IoRCl8fHRoaXMuX19pc0luQWN0aW9uc0NvbChEKSlyZXR1cm47bGV0IFQ9dGhpcy5fX3Jlc29sdmVDZWxsKEQpO2lmKCFUKXJldHVybjtsZXQgRz10aGlzLl9sYXN0Vmlld0RhdGE/P1tdOyhULmNvbC5lZGl0YWJsZXx8VC5jb2wuZWRpdG9yKSYmKHRoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChULml0ZW0pLGNvbEtleTpTdHJpbmcoVC5jb2wua2V5KX0pLHRoaXMuaGFuZGxlUm93Q2xpY2soRCxULml0ZW0sVC5yb3dJZHgsRyl9LCJfX29uVGJvZHlDbGljayIpO19fb25UYm9keURibGNsaWNrPWkoRD0+e2lmKHRoaXMuX19pc0luRWRpdG9yKEQpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woRCkpcmV0dXJuO2xldCBUPXRoaXMuX19yZXNvbHZlQ2VsbChEKTtpZighVClyZXR1cm47aWYoISEoVC5jb2wuZWRpdGFibGV8fFQuY29sLmVkaXRvcikpe0Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zdGFydEVkaXRpbmcoVC5pdGVtLFQuY29sKTtyZXR1cm59bGV0ICRlPXRoaXMuZGF0YUFjdGlvbnMuZmluZChQZT0+UGUudHlwZT8uaW5jbHVkZXMoImRvdWJsZUNsaWNrIikpOyRlJiYkZS5hY3Rpb25GdW5jKHtpdGVtOlQuaXRlbSx0YWJsZTp0aGlzfSl9LCJfX29uVGJvZHlEYmxjbGljayIpO19fb25UYm9keU1vdXNlZG93bj1pKEQ9PntELnNoaWZ0S2V5JiZ0aGlzLnNlbGVjdGlvbk1vZGUhPT0ic2luZ2xlIiYmRC5wcmV2ZW50RGVmYXVsdCgpfSwiX19vblRib2R5TW91c2Vkb3duIik7X19vblRib2R5Q29udGV4dG1lbnU9aShEPT57aWYodGhpcy5fX2lzSW5BY3Rpb25zQ29sKEQpKXJldHVybjtsZXQgVD10aGlzLl9fcmVzb2x2ZVJvdyhEKTtpZighVClyZXR1cm47bGV0IEc9VC5pdGVtO3RoaXMuaXNSb3dTZWxlY3RlZChHKXx8KHRoaXMuc2VsZWN0ZWREYXRhUm93PUcsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpLHRoaXMuX19zZWxlY3Rpb25BbmNob3JJZD10aGlzLmdldFJvd0lkKEcpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtsZXQgJGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoRmU9Pih7bmFtZTpGZS5uYW1lLGljb25OYW1lOkZlLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCBGZS5hY3Rpb25GdW5jKHtpdGVtOkcsdGFibGU6dGhpc30pLG51bGwpLCJhY3Rpb24iKX0pKSxQZT1be25hbWU6dGhpcy5zZWxlY3RlZElkcy5zaXplPjE/YENvcHkgJHt0aGlzLnNlbGVjdGVkSWRzLnNpemV9IHJvd3MgYXMgSlNPTmA6IkNvcHkgcm93IGFzIEpTT04iLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuY29weVNlbGVjdGlvbkFzSnNvbihHKSxudWxsKSwiYWN0aW9uIil9XTskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhELFsuLi4kZSwuLi5QZV0pfSwiX19vblRib2R5Q29udGV4dG1lbnUiKTtfX29uVGJvZHlEcmFnZW50ZXI9aShEPT57aWYoRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuX19yZXNvbHZlUm93KEQpKXJldHVybjtsZXQgRz0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZCgkZT0+JGU/LnRhZ05hbWU9PT0iVFIiKTtHJiZzZXRUaW1lb3V0KCgpPT5HLmNsYXNzTGlzdC5hZGQoImhhc0F0dGFjaG1lbnQiKSwwKX0sIl9fb25UYm9keURyYWdlbnRlciIpO19fb25UYm9keURyYWdsZWF2ZT1pKEQ9PntELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVD0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZChHPT5HPy50YWdOYW1lPT09IlRSIik7VCYmVC5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9LCJfX29uVGJvZHlEcmFnbGVhdmUiKTtfX29uVGJvZHlEcmFnb3Zlcj1pKEQ9PntELnByZXZlbnREZWZhdWx0KCl9LCJfX29uVGJvZHlEcmFnb3ZlciIpO19fb25UYm9keURyb3A9aShhc3luYyBEPT57RC5wcmV2ZW50RGVmYXVsdCgpO2xldCBUPXRoaXMuX19yZXNvbHZlUm93KEQpO2lmKCFUKXJldHVybjtsZXQgRz1ULml0ZW0sJGU9W107Zm9yKGxldCBGZSBvZiBBcnJheS5mcm9tKEQuZGF0YVRyYW5zZmVyLmZpbGVzKSl0aGlzLmZpbGVzLnB1c2goRmUpLCRlLnB1c2goRmUpLHRoaXMucmVxdWVzdFVwZGF0ZSgpO2xldCBQZT10aGlzLmZpbGVXZWFrTWFwLmdldChHKTtQZT9QZS5wdXNoKC4uLiRlKTp0aGlzLmZpbGVXZWFrTWFwLnNldChHLCRlKX0sIl9fb25UYm9keURyb3AiKTtoYW5kbGVSb3dDbGljayhELFQsRywkZSl7bGV0IFBlPXRoaXMuZ2V0Um93SWQoVCk7aWYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSIpe3RoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGUsdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCk7cmV0dXJufWxldCBGZT1ELm1ldGFLZXl8fEQuY3RybEtleTtpZihELnNoaWZ0S2V5JiZ0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQhPT12b2lkIDApe3dpbmRvdy5nZXRTZWxlY3Rpb24/LigpPy5yZW1vdmVBbGxSYW5nZXMoKTtsZXQgVWU9JGUuZmluZEluZGV4KFhlPT50aGlzLmdldFJvd0lkKFhlKT09PXRoaXMuX19zZWxlY3Rpb25BbmNob3JJZCk7aWYoVWU+PTApe2xldFtYZSx3dF09VWU8PUc/W1VlLEddOltHLFVlXTt0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCk7Zm9yKGxldCBRZT1YZTtRZTw9d3Q7UWUrKyl0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKCRlW1FlXSkpfWVsc2UgdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5zZWxlY3RlZERhdGFSb3c9VH1lbHNlIGlmKEZlKXtpZih0aGlzLnNlbGVjdGVkSWRzLmhhcyhQZSkpe2lmKHRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz09PVQpe2xldCBYZT0kZS5maW5kKHd0PT50aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKHd0KSkpO3RoaXMuc2VsZWN0ZWREYXRhUm93PVhlfX1lbHNlIHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLnNlbGVjdGVkRGF0YVJvdz1UO3RoaXMuX19zZWxlY3Rpb25BbmNob3JJZD1QZX1lbHNlIHRoaXMuc2VsZWN0ZWREYXRhUm93PVQsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKFBlKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UGU7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c2V0Um93U2VsZWN0ZWQoRCxUKXtsZXQgRz10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksVCYmdGhpcy5zZWxlY3RlZElkcy5hZGQoRykpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJihUP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKEcpOnRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKEcpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKXtsZXQgRD10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKEQubGVuZ3RoPT09MClyZXR1cm4hMTtmb3IobGV0IFQgb2YgRClpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChUKSkpcmV0dXJuITE7cmV0dXJuITB9aXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpe2xldCBEPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoRC5sZW5ndGg9PT0wKXJldHVybiExO2xldCBUPTA7Zm9yKGxldCBHIG9mIEQpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChHKSkmJlQrKztyZXR1cm4gVD4wJiZUPEQubGVuZ3RofXNldFNlbGVjdFZpc2libGUoRCl7bGV0IFQ9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihEKWZvcihsZXQgRyBvZiBUKXRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRykpO2Vsc2UgZm9yKGxldCBHIG9mIFQpdGhpcy5zZWxlY3RlZElkcy5kZWxldGUodGhpcy5nZXRSb3dJZChHKSk7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9ZW1pdFNlbGVjdGlvbkNoYW5nZSgpe2xldCBEPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcyksVD10aGlzLmRhdGEuZmlsdGVyKEc9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoRykpKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkSWRzOkQsc2VsZWN0ZWRSb3dzOlR9LGJ1YmJsZXM6ITB9KSl9Z2V0QWN0aW9uc0ZvclR5cGUoRCl7bGV0IFQ9W107Zm9yKGxldCBHIG9mIHRoaXMuZGF0YUFjdGlvbnMpRy50eXBlPy5pbmNsdWRlcyhEKSYmVC5wdXNoKEcpO3JldHVybiBUfV9faXNDb2x1bW5FZGl0YWJsZShEKXtyZXR1cm4hIShELmVkaXRhYmxlfHxELmVkaXRvcil9X19lZGl0YWJsZUNvbHVtbnMoRCl7cmV0dXJuIEQuZmlsdGVyKFQ9PiFULmhpZGRlbiYmdGhpcy5fX2lzQ29sdW1uRWRpdGFibGUoVCkpfXN0YXJ0RWRpdGluZyhELFQpe2lmKCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShUKSlyZXR1cm47bGV0IEc9dGhpcy5nZXRSb3dJZChEKSwkZT1TdHJpbmcoVC5rZXkpO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMuX19lZGl0aW5nQ2VsbD17cm93SWQ6Ryxjb2xLZXk6JGV9LHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBQZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LXRleHQsIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC1kcm9wZG93biwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtZGF0ZXBpY2tlciwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyIpO1BlPy5mb2N1cz8uKCksUGU/LnRhZ05hbWU9PT0iREVFUy1JTlBVVC1EUk9QRE9XTiImJlBlLnVwZGF0ZUNvbXBsZXRlPy50aGVuKCgpPT5QZS50b2dnbGVTZWxlY3Rpb25Cb3g/LigpKX0pfWNhbmNlbENlbGxFZGl0KCl7dGhpcy5fX2VkaXRpbmdDZWxsPXZvaWQgMCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1jb21taXRDZWxsRWRpdChELFQsRyl7bGV0ICRlPVN0cmluZyhULmtleSksUGU9RFtULmtleV0sRmU9VC5wYXJzZT9ULnBhcnNlKEcsRCk6RztpZihULnZhbGlkYXRlKXtsZXQgVmU9VC52YWxpZGF0ZShGZSxEKTtpZih0eXBlb2YgVmU9PSJzdHJpbmciKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdEVycm9yIix7ZGV0YWlsOntyb3c6RCxrZXk6JGUsdmFsdWU6RmUsbWVzc2FnZTpWZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKTtyZXR1cm59fUZlIT09UGUmJihEW1Qua2V5XT1GZSx0aGlzLl9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsRWRpdCIse2RldGFpbDp7cm93OkQsa2V5OiRlLG9sZFZhbHVlOlBlLG5ld1ZhbHVlOkZlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKSx0aGlzLl9fZWRpdGluZ0NlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpfV9fcmVjb3JkQ2VsbEluU25hcHNob3QoRCxUKXtpZih0aGlzLmhpZ2hsaWdodFVwZGF0ZXMhPT0iZmxhc2gifHwhdGhpcy5fX3ByZXZTbmFwc2hvdHx8IXRoaXMucm93S2V5KXJldHVybjtsZXQgRz10aGlzLmdldFJvd0lkKEQpLCRlPXRoaXMuX19wcmV2U25hcHNob3QuZ2V0KEcpOyRlfHwoJGU9bmV3IE1hcCx0aGlzLl9fcHJldlNuYXBzaG90LnNldChHLCRlKSksJGUuc2V0KFN0cmluZyhULmtleSksZDQoRCxULHRoaXMuZGlzcGxheUZ1bmN0aW9uKSl9cmVuZGVyQ2VsbEVkaXRvcihELFQpe2xldCBHPURbVC5rZXldLCRlPVQuZm9ybWF0P1QuZm9ybWF0KEcsRCk6RyxQZT1ULmVkaXRvcj8/InRleHQiLEZlPWkoVmU9PnRoaXMuY29tbWl0Q2VsbEVkaXQoRCxULFZlLnZhbHVlKSwib25UZXh0Q29tbWl0Iik7c3dpdGNoKFBlKXtjYXNlImNoZWNrYm94IjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgLnZhbHVlPSR7ISEkZX0KICAgICAgICAgIEBuZXdWYWx1ZT0ke1ZlPT57VmUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jb21taXRDZWxsRWRpdChELFQsVmUuZGV0YWlsKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5gO2Nhc2UiZHJvcGRvd24iOntsZXQgVmU9VC5lZGl0b3JPcHRpb25zPy5vcHRpb25zPz9bXSxVZT1WZS5maW5kKFhlPT5YZT09bnVsbD8hMTp0eXBlb2YgWGU9PSJzdHJpbmciP1hlPT09RzpYZS5rZXk9PT1HfHxYZS5vcHRpb249PT1HKT8/bnVsbDtyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLnZpbnRlZ3JhdGVkPSR7ITB9CiAgICAgICAgICAub3B0aW9ucz0ke1ZlfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7VWV9CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtYZT0+e1hlLnN0b3BQcm9wYWdhdGlvbigpO2xldCB3dD1YZS5kZXRhaWwsUWU9d3Q/Lm9wdGlvbj8/d3Q/LmtleT8/d3Q7dGhpcy5jb21taXRDZWxsRWRpdChELFQsUWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPmB9Y2FzZSJkYXRlIjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAudmFsdWU9JHskZX0KICAgICAgICAgIEBmb2N1c291dD0ke1ZlPT5GZShWZS50YXJnZXQpfQogICAgICAgICAgQGtleWRvd249JHtWZT0+dGhpcy5fX2hhbmRsZUVkaXRvcktleShWZSxELFQpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5gO2Nhc2UidGFncyI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLnZhbHVlPSR7JGU/P1tdfQogICAgICAgICAgQGZvY3Vzb3V0PSR7VmU9PkZlKFZlLnRhcmdldCl9CiAgICAgICAgICBAa2V5ZG93bj0ke1ZlPT50aGlzLl9faGFuZGxlRWRpdG9yS2V5KFZlLEQsVCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPmA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmludGVncmF0ZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0keyRlPT1udWxsPyIiOlN0cmluZygkZSl9CiAgICAgICAgICBAZm9jdXNvdXQ9JHtWZT0+RmUoVmUudGFyZ2V0KX0KICAgICAgICAgIEBrZXlkb3duPSR7VmU9PnRoaXMuX19oYW5kbGVFZGl0b3JLZXkoVmUsRCxUKX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+YH19X19oYW5kbGVFZGl0b3JLZXkoRCxULEcpe2lmKEQua2V5PT09IkVzY2FwZSIpRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jYW5jZWxDZWxsRWRpdCgpLHRoaXMuZm9jdXMoKTtlbHNlIGlmKEQua2V5PT09IkVudGVyIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITApfWVsc2UgaWYoRC5rZXk9PT0iVGFiIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoVCxHLCRlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbChELnNoaWZ0S2V5Py0xOjEsMCwhMCl9fW1vdmVGb2N1c2VkQ2VsbChELFQsRyl7bGV0ICRlPXRoaXMuX2xhc3RWaWV3RGF0YT8/W107aWYoJGUubGVuZ3RoPT09MClyZXR1cm47bGV0IFBlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksRmU9dGhpcy5fX2VkaXRhYmxlQ29sdW1ucyhQZSk7aWYoRmUubGVuZ3RoPT09MClyZXR1cm47bGV0IFZlPTAsVWU9MDtpZih0aGlzLl9fZm9jdXNlZENlbGwmJihWZT0kZS5maW5kSW5kZXgoUWU9PnRoaXMuZ2V0Um93SWQoUWUpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLnJvd0lkKSxVZT1GZS5maW5kSW5kZXgoUWU9PlN0cmluZyhRZS5rZXkpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLmNvbEtleSksVmU8MCYmKFZlPTApLFVlPDAmJihVZT0wKSksRCE9PTApe2ZvcihVZSs9RDtVZT49RmUubGVuZ3RoOylVZS09RmUubGVuZ3RoLFZlKz0xO2Zvcig7VWU8MDspVWUrPUZlLmxlbmd0aCxWZS09MX1pZihUIT09MCYmKFZlKz1UKSxWZTwwfHxWZT49JGUubGVuZ3RoKXt0aGlzLmNhbmNlbENlbGxFZGl0KCk7cmV0dXJufWxldCBYZT0kZVtWZV0sd3Q9RmVbVWVdO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChYZSksY29sS2V5OlN0cmluZyh3dC5rZXkpfSxHP3RoaXMuc3RhcnRFZGl0aW5nKFhlLHd0KTp0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7Q3QoYSx0KX19O3JldHVybiBwMT1hfSkoKX0pO3ZhciBIbnQ9ZygoKT0+e0ludCgpfSk7dmFyIEl2YSxBdmE9ZygoKT0+e3BlKCk7SXQoKTtJdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHQ9cy5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTtlJiZ0JiYoZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJGb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlByb2Nlc3NpbmcgeW91ciByZWdpc3RyYXRpb24uLi4iKSx0LmlubmVySFRNTD1gPHN0cm9uZz5TdWJtaXR0ZWQgRGF0YTo8L3N0cm9uZz4KJHtKU09OLnN0cmluZ2lmeShuLG51bGwsMil9YCxhd2FpdCBsdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnNldFN0YXR1cygic3VjY2VzcyIsIlJlZ2lzdHJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUucmVzZXQoKSx0LmlubmVySFRNTD0iPGVtPkZvcm0gaGFzIGJlZW4gcmVzZXQ8L2VtPiJ9KSksZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQsIGRlZXMtaW5wdXQtZHJvcGRvd24sIGRlZXMtaW5wdXQtY2hlY2tib3giKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLCgpPT57Y29uc29sZS5sb2coIkZpZWxkIGNoYW5nZWQ6IixyLmdldEF0dHJpYnV0ZSgia2V5IikpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkNvbXBsZXRlIEZvcm0gRXhhbXBsZSIgLmRlc2NyaXB0aW9uPSJBIGNvbXByZWhlbnNpdmUgZm9ybSB3aXRoIHZhcmlvdXMgaW5wdXQgdHlwZXMsIHZhbGlkYXRpb24sIGFuZCBmb3JtIHN1Ym1pc3Npb24gaGFuZGxpbmciPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZmlyc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9IkZpcnN0IE5hbWUiCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJZb3VyIGdpdmVuIG5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0ibGFzdE5hbWUiIAogICAgICAgICAgICBsYWJlbD0iTGFzdCBOYW1lIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZW1haWwiIAogICAgICAgICAgICBsYWJlbD0iRW1haWwgQWRkcmVzcyIKICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgdXNlIHRoaXMgdG8gY29udGFjdCB5b3UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJjb3VudHJ5IgogICAgICAgICAgICAubGFiZWw9JHsiQ291bnRyeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifSx7b3B0aW9uOiJDYW5hZGEiLGtleToiY2EifSx7b3B0aW9uOiJHZXJtYW55IixrZXk6ImRlIn0se29wdGlvbjoiRnJhbmNlIixrZXk6ImZyIn0se29wdGlvbjoiVW5pdGVkIEtpbmdkb20iLGtleToidWsifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InBhc3N3b3JkIgogICAgICAgICAgICBsYWJlbD0iUGFzc3dvcmQiCiAgICAgICAgICAgIGlzUGFzc3dvcmRCb29sCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJNaW5pbXVtIDggY2hhcmFjdGVycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InRlcm1zIgogICAgICAgICAgICBsYWJlbD0iSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9Im5ld3NsZXR0ZXIiCiAgICAgICAgICAgIGxhYmVsPSJTZW5kIG1lIHByb21vdGlvbmFsIGVtYWlscyIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgQWNjb3VudDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgY29sbGVjdGVkIGRhdGEuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO2UmJihjb25zb2xlLmxvZygiSG9yaXpvbnRhbCBmb3JtIGxheW91dCBhY3RpdmUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoYT0+e2xldCByPWEuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIscik7bGV0IG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtufSByZXN1bHRzIHdpdGggZmlsdGVyczpgLHIpfSkpLGUucXVlcnlTZWxlY3RvckFsbCgiW2tleV0iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGFzeW5jKCk9PntsZXQgcj1hd2FpdCBlLmNvbGxlY3RGb3JtRGF0YSgpO2NvbnNvbGUubG9nKCJMaXZlIGZpbHRlciB1cGRhdGU6IixyKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJIb3Jpem9udGFsIEZvcm0gTGF5b3V0IiAuZGVzY3JpcHRpb249IkNvbXBhY3QgZm9ybSB3aXRoIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgLSBwZXJmZWN0IGZvciBmaWx0ZXJzIGFuZCBxdWljayBmb3JtcyI+CiAgICAgICAgPGRlZXMtZm9ybSBob3Jpem9udGFsLWxheW91dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGtleT0ic2VhcmNoIiAKICAgICAgICAgICAgbGFiZWw9IlNlYXJjaCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIGtleXdvcmRzLi4uIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9ImNhdGVnb3J5IgogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFsbCIsa2V5OiJhbGwifSx7b3B0aW9uOiJQcm9kdWN0cyIsa2V5OiJwcm9kdWN0cyJ9LHtvcHRpb246IlNlcnZpY2VzIixrZXk6InNlcnZpY2VzIn0se29wdGlvbjoiU3VwcG9ydCIsa2V5OiJzdXBwb3J0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJzb3J0IgogICAgICAgICAgICAubGFiZWw9JHsiU29ydCBCeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTmV3ZXN0IixrZXk6Im5ld2VzdCJ9LHtvcHRpb246IlBvcHVsYXIiLGtleToicG9wdWxhciJ9LHtvcHRpb246IlByaWNlOiBMb3cgdG8gSGlnaCIsa2V5OiJwcmljZV9hc2MifSx7b3B0aW9uOiJQcmljZTogSGlnaCB0byBMb3ciLGtleToicHJpY2VfZGVzYyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIGtleT0iaW5TdG9jayIKICAgICAgICAgICAgbGFiZWw9IkluIFN0b2NrIE9ubHkiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcigiI3N0YXR1cy1kaXNwbGF5Iik7aWYoZSl7ZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGFzeW5jIHI9PntsZXQgbj1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJBZHZhbmNlZCBmb3JtIGRhdGE6IixuKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlZhbGlkYXRpbmcgeW91ciBpbmZvcm1hdGlvbi4uLiIpLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigxNTAwKSxuLmliYW4mJm4uaWJhbi5sZW5ndGg+MTU/KGUuc2V0U3RhdHVzKCJzdWNjZXNzIiwiQXBwbGljYXRpb24gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSEiKSx0JiYodC5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIHN1Y2Nlc3MiLHQudGV4dENvbnRlbnQ9Ilx1MjcxMyBZb3VyIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHN1Ym1pdHRlZC4gV2Ugd2lsbCBjb250YWN0IHlvdSBzb29uLiIpKTooZS5zZXRTdGF0dXMoImVycm9yIiwiUGxlYXNlIGNoZWNrIHlvdXIgSUJBTiIpLHQmJih0LmNsYXNzTmFtZT0ic3RhdHVzLW1lc3NhZ2UgZXJyb3IiLHQudGV4dENvbnRlbnQ9Ilx1MjcxNyBJbnZhbGlkIElCQU4gZm9ybWF0LiBQbGVhc2UgY2hlY2sgYW5kIHRyeSBhZ2Fpbi4iKSksY29uc29sZS5sb2coIkZvcm0gZGF0YSBsb2dnZWQ6IixuKX0pKTtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IG49ci5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtuLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgTnZhLHFudCxSdmEscmVzLHl4PWcoKCk9PntwZSgpO2t0KCk7TDFlKCk7SG90KCk7QTFlKCk7bzQoKTtab3QoKTtOMWUoKTtSMWUoKTtpbnQoKTtvbnQoKTtsbnQoKTtkbnQoKTtobnQoKTtnbnQoKTt2bnQoKTt5bnQoKTtZMWUoKTtYMWUoKTtXZygpO0hudCgpO0F2YSgpO052YT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0scW50PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxSdmE9W09vdCxCb3QsVW90LHRudCxzbnQscm50LG5udCxjbnQsWW90LFhvdCxXb3QscG50LG1udCxibnQseG50LFoxZSxQbnQsQm50XSxyZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWZvcm0iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0Zvcm0iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6Imhvcml6b250YWwtbGF5b3V0In0pXSxOdmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJob3Jpem9udGFsTGF5b3V0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJob3Jpem9udGFsTGF5b3V0ImluIHUsImhhcyIpLGdldDppKHU9PnUuaG9yaXpvbnRhbExheW91dCwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lmhvcml6b250YWxMYXlvdXQ9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLE52YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPUl2YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZvcm0iXTtuYW1lPSJteWZvcm0iO2NoYW5nZVN1YmplY3Q9bmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3JlYWR5RGVmZXJyZWQ9dXQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9cW50KHRoaXMsbywhMSk7Z2V0IGhvcml6b250YWxMYXlvdXQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaG9yaXpvbnRhbExheW91dChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtob3Jpem9udGFsLWxheW91dF0pIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpLHRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCk7Zm9yKGxldCB1IG9mIGQpdS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShhc3luYygpPT57bGV0IGM9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTt0aGlzLmNoYW5nZVN1YmplY3QubmV4dChjKSxjb25zb2xlLmxvZyhjKSx0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl9KTthd2FpdCB0aGlzLmFkZEJlaGF2aW91cnMoKSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWdldEZvcm1FbGVtZW50cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoZD0+UnZhLmluY2x1ZGVzKGQuY29uc3RydWN0b3IpKX1nZXRTdWJtaXRCdXR0b24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkuZmluZChkPT5kIGluc3RhbmNlb2YgUW90KX1hc3luYyB1cGRhdGVSZXF1aXJlZFN0YXR1cygpe2NvbnNvbGUubG9nKCJjaGVja2luZyB0aGUgcmVxdWlyZWQgc3RhdHVzLiIpO2xldCBkPSEwO2ZvcihsZXQgYyBvZiB0aGlzLmdldEZvcm1FbGVtZW50cygpKWMucmVxdWlyZWQmJiFjLnZhbHVlJiYoZD0hMSk7bGV0IHU9dGhpcy5nZXRTdWJtaXRCdXR0b24oKTt1JiYodS5kaXNhYmxlZD0hZCl9YXN5bmMgY29sbGVjdEZvcm1EYXRhKCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSx1PXt9O2ZvcihsZXQgYyBvZiBkKXtpZighYy5rZXkpe2NvbnNvbGUubG9nKGBmb3JtIGVsZW1lbnQgd2l0aCBsYWJlbCAiJHtjLmxhYmVsfSIgaGFzIG5vIGtleS4gc2tpcHBpbmcuYCk7Y29udGludWV9dVtjLmtleV09Yy52YWx1ZX1yZXR1cm4gdX1hc3luYyBnYXRoZXJBbmREaXNwYXRjaCgpe2xldCBkPWF3YWl0IHRoaXMuY29sbGVjdEZvcm1EYXRhKCksdT1uZXcgQ3VzdG9tRXZlbnQoImZvcm1EYXRhIix7ZGV0YWlsOntkYXRhOmR9LGJ1YmJsZXM6ITB9KTt0aGlzLmRpc3BhdGNoRXZlbnQodSksY29uc29sZS5sb2coImRpc3BhdGNoZWQgZGF0YToiKSxjb25zb2xlLmxvZyhkKX1zZXRTdGF0dXMoZCx1KXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpLGI9dGhpcy5nZXRTdWJtaXRCdXR0b24oKTtpZihiKXtzd2l0Y2goZCl7Y2FzZSJub3JtYWwiOmIuZGlzYWJsZWQ9ITEsYi5zdGF0dXM9Im5vcm1hbCI7Zm9yKGxldCB2IG9mIGMpdi5kaXNhYmxlZD0hMTticmVhaztjYXNlInBlbmRpbmciOmIuZGlzYWJsZWQ9ITAsYi5zdGF0dXM9InBlbmRpbmciO2ZvcihsZXQgdiBvZiBjKXYuZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJzdWNjZXNzIjpiLmRpc2FibGVkPSEwLGIuc3RhdHVzPSJzdWNjZXNzIjtmb3IobGV0IHYgb2YgYyl2LmRpc2FibGVkPSEwO2JyZWFrO2Nhc2UiZXJyb3IiOmIuZGlzYWJsZWQ9ITAsYi5zdGF0dXM9ImVycm9yIjtmb3IobGV0IHYgb2YgYyl2LmRpc2FibGVkPSEwO2JyZWFrfWIudGV4dD11fX1yZXNldCgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCB1IG9mIGQpdS52YWx1ZT1udWxsO3RoaXMuc2V0U3RhdHVzKCJub3JtYWwiLCJTdWJtaXQiKX1hc3luYyBhZGRCZWhhdmlvdXJzKCl7dGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixkPT57bGV0IHU9ZC50YXJnZXQ7aWYoUnZhLmluY2x1ZGVzKHUuY29uc3RydWN0b3IpJiZkLmtleT09PSJFbnRlciIpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksYj1jLmluZGV4T2YodSk7YjxjLmxlbmd0aC0xP2NbYisxXS5mb2N1cygpOih1LmJsdXIoKSx0aGlzLmdldFN1Ym1pdEJ1dHRvbigpPy5mb2N1cygpKX19KX11cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpO2ZvcihsZXQgdSBvZiBkKSJsYXlvdXRNb2RlImluIHUmJih1LmxheW91dE1vZGU9ImF1dG8iKX11cGRhdGVkKGQpe3N1cGVyLnVwZGF0ZWQoZCksZC5oYXMoImhvcml6b250YWxMYXlvdXQiKSYmdGhpcy51cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscW50KHRoaXMsbCl9c3RhdGlje3FudChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgT3ZhLEZ2YT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7eXgoKTtXZygpO280KCk7R2EoKTtPdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke0pgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT10LmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYoYSl7bGV0IHI9YS5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7cn1gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT10LmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIscj10LmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHthfSwgcG9zaXRpb249JHtyfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLHQ9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLGE9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTtlJiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0IiksdD1zLnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxhPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxyPXMucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO3QmJmUmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLGEmJmUmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsbj0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke24uZGV0YWlsLmRhdGF9YH0pLHImJmUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e2UudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IGx0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PXMucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7ZSYmdCYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsbj0+e3QuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShuLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgYT1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJykscj1zLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHQ9PntsZXQgYT10LmdldEF0dHJpYnV0ZSgidHlwZSIpO2EmJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHthfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0sdD1zLnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO2UmJmUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChyLG4pPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBvPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtuXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke299IGNsaWNrZWRgKX0pfSksdCYmdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKHIsbik9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtuXTtuIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke299IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgRDIsYnIsb2VzLEhnPWcoKCk9PntwZSgpO2t0KCk7RnZhKCk7aHQoKTtEMj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYnI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG9lcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtYnV0dG9uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLHA9W0woKV0sYz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6U3RyaW5nfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEk9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sSz1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxEMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InRleHQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS50ZXh0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnRleHQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbyxsKSxEMih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iZXZlbnREZXRhaWxEYXRhImluIFUsImhhcyIpLGdldDppKFU9PlUuZXZlbnREZXRhaWxEYXRhLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmV2ZW50RGV0YWlsRGF0YT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLEQyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImRpc2FibGVkImluIFUsImhhcyIpLGdldDppKFU9PlUuZGlzYWJsZWQsImdldCIpLHNldDppKChVLGhlKT0+e1UuZGlzYWJsZWQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sYix2KSxEMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJpc0hpZGRlbiJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmlzSGlkZGVuLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmlzSGlkZGVuPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG0sZiksRDIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0eXBlImluIFUsImhhcyIpLGdldDppKFU9PlUudHlwZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50eXBlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksRDIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJzaXplImluIFUsImhhcyIpLGdldDppKFU9PlUuc2l6ZSwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zaXplPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LEMsXyksRDIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InN0YXR1cyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zdGF0dXM9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sJCxFKSxEMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Imluc2lkZUZvcm0iaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5pbnNpZGVGb3JtLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmluc2lkZUZvcm09aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sayxTKSxEMih0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+Imljb24iaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5pY29uLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmljb249aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sUCxSKSxEMih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaWNvblBvc2l0aW9uImluIFUsImhhcyIpLGdldDppKFU9PlUuaWNvblBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmljb25Qb3NpdGlvbj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxWLFcpLEQyKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsdCksbWU9YT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPU92YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPWJyKHRoaXMsbyx2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoQil7dGhpcy4jZT1CfSN0PShicih0aGlzLGwpLGJyKHRoaXMsZCx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShCKXt0aGlzLiN0PUJ9I2E9KGJyKHRoaXMsdSksYnIodGhpcyxiLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpc2FibGVkKEIpe3RoaXMuI2E9Qn0jcz0oYnIodGhpcyx2KSxicih0aGlzLG0sITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNIaWRkZW4oQil7dGhpcy4jcz1CfSNpPShicih0aGlzLGYpLGJyKHRoaXMsTSwiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNpfXNldCB0eXBlKEIpe3RoaXMuI2k9Qn0jcj0oYnIodGhpcyx6KSxicih0aGlzLEMsImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2l6ZShCKXt0aGlzLiNyPUJ9I289KGJyKHRoaXMsXyksYnIodGhpcywkLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNvfXNldCBzdGF0dXMoQil7dGhpcy4jbz1CfSNuPShicih0aGlzLEUpLGJyKHRoaXMsaywhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI259c2V0IGluc2lkZUZvcm0oQil7dGhpcy4jbj1CfSNsPShicih0aGlzLFMpLGJyKHRoaXMsUCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKEIpe3RoaXMuI2w9Qn0jYz0oYnIodGhpcyxSKSxicih0aGlzLFYsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oQil7dGhpcy4jYz1CfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxicih0aGlzLFcpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogRm9ybSBzcGFjaW5nIHN0eWxlcyAqLwogICAgICA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXTpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1yaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLWZvcm1baG9yaXpvbnRhbC1sYXlvdXRdIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgICAgfQoKICAgICAgLmJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogU2l6ZSB2YXJpYW50cyAqLwogICAgICAuYnV0dG9uLnNpemUtZGVmYXVsdCB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1zbSB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1sZyB7CiAgICAgICAgaGVpZ2h0OiA0NHB4OwogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1pY29uIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgICB9CgogICAgICAuYnV0dG9uLmRlZmF1bHQ6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDEwLjIlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGVzdHJ1Y3RpdmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDk4JSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDU2LjIlKTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDUyLjIlKTsKICAgICAgfQoKICAgICAgLyogT3V0bGluZSB2YXJpYW50ICovCiAgICAgIC5idXR0b24ub3V0bGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjYuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBTZWNvbmRhcnkgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICB9CgogICAgICAvKiBHaG9zdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZ2hvc3QgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5naG9zdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExpbmsgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmxpbmsgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24ubGluazpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBzdGF0ZXMgKi8KICAgICAgLmJ1dHRvbi5wZW5kaW5nLAogICAgICAuYnV0dG9uLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uZXJyb3IgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmctbGVmdDogMzZweDsgLyogU3BhY2UgZm9yIHNwaW5uZXIgKi8KICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1zbS5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtc20uZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1sZy5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtbGcuZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNjIuOCUgNzAuNiUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCA2Mi44JSA3MC42JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBIaWRkZW4gc3RhdGUgKi8KICAgICAgLmJ1dHRvbi5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlICovCiAgICAgIC5idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgICB9CgogICAgICAvKiBMb2FkaW5nIHNwaW5uZXIgKi8KICAgICAgZGVlcy1zcGlubmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTBweDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbSBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDE0cHg7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBJY29uIHNpemluZyB3aXRoaW4gYnV0dG9ucyAqLwogICAgICAuYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQoKICAgICAgLyogVGV4dCBhbGlnbm1lbnQgKi8KICAgICAgLnRleHRib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgIGBdO2V4dHJhY3RMaWdodERvbSgpe2xldCBCPXRoaXMucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIiksVT1BcnJheS5mcm9tKHRoaXMuY2hpbGROb2RlcykuZmlsdGVyKGhlPT5oZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKS5tYXAoaGU9PmhlLnRleHRDb250ZW50Py50cmltKCkpLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIik7aWYoVSYmIXRoaXMudGV4dCYmKHRoaXMudGV4dD1VKSxCKXtsZXQgaGU9Qi5pY29ufHxCLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwoQi5pY29uRkE/YGZhOiR7Qi5pY29uRkF9YDpudWxsKTtpZihoZSl7bGV0IEY9QXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMpLGo9Ri5pbmRleE9mKEIpLHVlPUYuZmlsdGVyKGxlPT5sZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZsZS50ZXh0Q29udGVudD8udHJpbSgpKTtpZih1ZS5sZW5ndGg+MCl7bGV0IGxlPUYuaW5kZXhPZih1ZVswXSk7dGhpcy5pY29uUG9zaXRpb249ajxsZT8ibGVmdCI6InJpZ2h0In10aGlzLmljb249aGV9Qi5yZW1vdmUoKX10aGlzLmlubmVySFRNTD0iIn1yZW5kZXIoKXtsZXQgVT17bm9ybWFsOiJkZWZhdWx0IixoaWdobGlnaHRlZDoiZGVzdHJ1Y3RpdmUiLGRpc2NyZWV0OiJvdXRsaW5lIixiaWc6ImRlZmF1bHQifVt0aGlzLnR5cGVdfHx0aGlzLnR5cGUsaGU9dGhpcy50eXBlPT09ImJpZyI/ImxnIjp0aGlzLnNpemUsRj10aGlzLmljb25Qb3NpdGlvbj09PSJsZWZ0IiYmdGhpcy5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIixqPXRoaXMuaWNvblBvc2l0aW9uPT09InJpZ2h0IiYmdGhpcy5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIix1ZT1oZT09PSJpY29uIiYmdGhpcy5pY29uO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJ1dHRvbiAke3RoaXMuaXNIaWRkZW4/ImhpZGRlbiI6IiJ9ICR7VX0gc2l6ZS0ke2hlfSAke3RoaXMuc3RhdHVzfSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIke3RoaXMuZGlzcGF0Y2hDbGlja30iCiAgICAgID4KICAgICAgICAke3RoaXMuc3RhdHVzPT09Im5vcm1hbCI/d2BgOndgCiAgICAgICAgICA8ZGVlcy1zcGlubmVyCiAgICAgICAgICAgIC5ibnc9JHshMH0KICAgICAgICAgICAgc3RhdHVzPSIke3RoaXMuc3RhdHVzfSIKICAgICAgICAgICAgc2l6ZT0iJHtoZT09PSJzbSI/MTQ6aGU9PT0ibGciPzE4OjE2fSIKICAgICAgICAgID48L2RlZXMtc3Bpbm5lcj4KICAgICAgICBgfQogICAgICAgICR7Rn0KICAgICAgICAke3VlPyIiOndgPGRpdiBjbGFzcz0idGV4dGJveCI+JHt0aGlzLnRleHR8fCJCdXR0b24ifTwvZGl2PmB9CiAgICAgICAgJHtqfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZGlzcGF0Y2hDbGljaygpe3RoaXMuZGlzYWJsZWR8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrZWQiLHtkZXRhaWw6e2RhdGE6dGhpcy5ldmVudERldGFpbERhdGF9LGJ1YmJsZXM6ITB9KSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5leHRyYWN0TGlnaHREb20oKX1zdGF0aWN7YnIoYSx0KX19O3JldHVybiBtZT1hfSkoKX0pO3ZhciB1NCxabixuZXMsSjFlPWcoKCk9PnthYmEoKTt2bygpO0VyKCk7cGUoKTtHYSgpO2ZyKCk7SGcoKTtodCgpO21yKCk7dTQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFpuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxuZXM9KCgpPT57bGV0IHM9W3ZiKCksbmUoImRlZXMtc3RhdHNncmlkIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdGF0c0dyaWQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6QXJyYXl9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sdTQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGlsZXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50aWxlcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRpbGVzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSx1NCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblRpbGVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWluVGlsZVdpZHRoImluIFMsImhhcyIpLGdldDppKFM9PlMubWluVGlsZVdpZHRoLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubWluVGlsZVdpZHRoPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSx1NCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZ2FwImluIFMsImhhcyIpLGdldDppKFM9PlMuZ2FwLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZ2FwPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx1NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdyaWRBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJncmlkQWN0aW9ucyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmdyaWRBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZ3JpZEFjdGlvbnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLHU0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjb250ZXh0TWVudVZpc2libGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb250ZXh0TWVudVZpc2libGUsImdldCIpLHNldDppKChTLEkpPT57Uy5jb250ZXh0TWVudVZpc2libGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLHU0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY29udGV4dE1lbnVQb3NpdGlvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbnRleHRNZW51UG9zaXRpb24sImdldCIpLHNldDppKChTLEkpPT57Uy5jb250ZXh0TWVudVBvc2l0aW9uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSx1NCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRleHRNZW51QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY29udGV4dE1lbnVBY3Rpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMuY29udGV4dE1lbnVBY3Rpb25zLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY29udGV4dE1lbnVBY3Rpb25zPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSx1NChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXRiYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPVpuKHRoaXMsbyxbXSk7Z2V0IHRpbGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpbGVzKGspe3RoaXMuI2U9a30jdD0oWm4odGhpcyxsKSxabih0aGlzLGQsMjUwKSk7Z2V0IG1pblRpbGVXaWR0aCgpe3JldHVybiB0aGlzLiN0fXNldCBtaW5UaWxlV2lkdGgoayl7dGhpcy4jdD1rfSNhPShabih0aGlzLHUpLFpuKHRoaXMsYiwxNikpO2dldCBnYXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZ2FwKGspe3RoaXMuI2E9a30jcz0oWm4odGhpcyx2KSxabih0aGlzLG0sW10pKTtnZXQgZ3JpZEFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZ3JpZEFjdGlvbnMoayl7dGhpcy4jcz1rfSNpPShabih0aGlzLGYpLFpuKHRoaXMsTSwhMSkpO2dldCBjb250ZXh0TWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29udGV4dE1lbnVWaXNpYmxlKGspe3RoaXMuI2k9a30jcj0oWm4odGhpcyx6KSxabih0aGlzLEMse3g6MCx5OjB9KSk7Z2V0IGNvbnRleHRNZW51UG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGV4dE1lbnVQb3NpdGlvbihrKXt0aGlzLiNyPWt9I289KFpuKHRoaXMsXyksWm4odGhpcywkLFtdKSk7Z2V0IGNvbnRleHRNZW51QWN0aW9ucygpe3JldHVybiB0aGlzLiNvfXNldCBjb250ZXh0TWVudUFjdGlvbnMoayl7dGhpcy4jbz1rfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICB9CgogICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHNpemluZyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1ncmlkLWdhcDogMTJweDsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTZweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiAxMnB4OwogICAgICAgIC0tY29udGVudC1taW4taGVpZ2h0OiA0MHB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyNnB4OwogICAgICAgIC0tdW5pdC1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1sYWJlbC1mb250LXNpemU6IDEycHg7CiAgICAgICAgLS10aXRsZS1mb250LXNpemU6IDEzcHg7CiAgICAgICAgLS1kZXNjcmlwdGlvbi1zcGFjaW5nOiA4cHg7CiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgfQoKICAgICAgLyogR3JpZCBMYXlvdXQgKi8KICAgICAgLmdyaWQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ3JpZC1nYXApICogMS41KTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JpZC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICB9CgogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7YWEoMjUwKX1weCwgMWZyKSk7CiAgICAgICAgZ2FwOiAke2FhKDE2KX1weDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogVGlsZSBCYXNlIFN0eWxlcyDigJQgZnJhbWUgcHJvdmlkZWQgYnkgZGVlcy10aWxlLCBob3ZlciB2aWEgOjpwYXJ0ICovCiAgICAgIC5zdGF0cy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAzKSIsInJnYmEoMCwwLDAsMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgSGVhZGVyIOKAlCBzbG90dGVkIGludG8gZGVlcy10aWxlIGhlYWRlciAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGl0bGUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAudGlsZS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUaWxlIENvbnRlbnQg4oCUIHNsb3R0ZWQgaW50byBkZWVzLXRpbGUgY29udGVudCBhcmVhICovCiAgICAgIC50aWxlLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7CiAgICAgIH0KCiAgICAgIC50aWxlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudGlsZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudGlsZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIEdhdWdlIFN0eWxlcyAqLwogICAgICAuZ2F1Z2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZ2F1Z2UtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTIwcHg7CiAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4OwogICAgICB9CgogICAgICAuZ2F1Z2Utc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1iYWNrZ3JvdW5kIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICB9CgogICAgICAuZ2F1Z2UtZmlsbCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdhdWdlLXRleHQgewogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbmNob3I6IG1pZGRsZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5nYXVnZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmaWxsOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICB9CgogICAgICAvKiBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAucGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBNdWx0aSBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAubXVsdGktcGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogQ1BVIENvcmVzIFN0eWxlcyAqLwogICAgICAuY3B1LWNvcmVzLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGdhcDogM3B4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1iYXJzLmNlbnRlcmVkIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiA2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci13cmFwcGVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubG93IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZyk7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5oaWdoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogUGFydGl0aW9uIFN0eWxlcyAqLwogICAgICAucGFydGl0aW9uLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tcGVyY2VudGFnZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXdhcm5pbmcpOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1maWxlc3lzdGVtIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbW91bnRwb2ludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNrIFN0eWxlcyAqLwogICAgICAuZGlzay13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpc2stY2FwYWNpdHkgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5kaXNrLW1vZGVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZGlzay10eXBlLWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmRpc2stbWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5nb29kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAvKiBUcmVuZCBTdHlsZXMgKi8KICAgICAgLnRyZW5kLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50cmVuZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudHJlbmQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudHJlbmQtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtZ3JhcGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudHJlbmQtbGluZSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIH0KCiAgICAgIC50cmVuZC1hcmVhIHsKICAgICAgICBmaWxsOiAke2guYmRUaGVtZSgicmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KSIsInJnYmEoMTAwLCAxMDAsIDEwMCwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRleHQgVmFsdWUgU3R5bGVzICovCiAgICAgIC50ZXh0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAvKiBDb250ZXh0IE1lbnUgKi8KICAgICAgZGVlcy1jb250ZXh0bWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGAsaC5jc3NGb3JUYWJsZXQoSmAKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICAgIH0KICAgIGAsYSksaC5jc3NGb3JQaGFibGV0KEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTJweDsKICAgICAgICAtLXZhbHVlLWZvbnQtc2l6ZTogMjJweDsKICAgICAgICAtLXRpdGxlLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAtLWdyaWQtZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy10aWxlIHsKICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGAsYSksaC5jc3NGb3JQaG9uZShKYAogICAgICA6aG9zdCB7CiAgICAgICAgLS10aWxlLXBhZGRpbmc6IDEwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDIwcHg7CiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQogICAgYCxhKV07Y29uc3RydWN0b3IoKXtzdXBlcigpLFpuKHRoaXMsRSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtdGl0bGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1hY3Rpb25zIj4KICAgICAgICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLm1hcChrPT53YAogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiAKICAgICAgICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuaGFuZGxlR3JpZEFjdGlvbihrKX0KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBzaXplPSJzbSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2suaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSR7ay5pY29uTmFtZX0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke2submFtZX0KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDsiPgogICAgICAgICR7dGhpcy50aWxlcy5tYXAoaz0+dGhpcy5yZW5kZXJUaWxlKGspKX0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY29udGV4dE1lbnVWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtY29udGV4dG1lbnUKICAgICAgICAgIC54PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnh9CiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fQogICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuY29udGV4dE1lbnVBY3Rpb25zfQogICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITF9CiAgICAgICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyVGlsZShrKXtsZXQgUz1rLmFjdGlvbnMmJmsuYWN0aW9ucy5sZW5ndGg+MCxJPVMmJmsuYWN0aW9ucy5sZW5ndGg9PT0xLFA9ay5jb2x1bW5TcGFuJiZrLmNvbHVtblNwYW4+MT9rLmNvbHVtblNwYW46dm9pZCAwO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlCiAgICAgICAgY2xhc3M9InN0YXRzLXRpbGUgJHtJPyJjbGlja2FibGUiOiIifSIKICAgICAgICBzdHlsZT0iJHtQP2BncmlkLWNvbHVtbjogc3BhbiAke1B9YDoiIn0iCiAgICAgICAgQGNsaWNrPSR7ST8oKT0+dGhpcy5oYW5kbGVUaWxlQWN0aW9uKGsuYWN0aW9uc1swXSxrKTp2b2lkIDB9CiAgICAgICAgQGNvbnRleHRtZW51PSR7Uz9SPT50aGlzLnNob3dDb250ZXh0TWVudShSLGspOnZvaWQgMH0KICAgICAgPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGlsZS1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJ0aWxlLXRpdGxlIj4ke2sudGl0bGV9PC9oMz4KICAgICAgICAgICR7ay5pY29uP3dgCiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InRpbGUtaWNvbiIgLmljb249JHtrLmljb259IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoayl9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7ay5kZXNjcmlwdGlvbiYmay50eXBlIT09InRyZW5kIj93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJ0aWxlLWRlc2NyaXB0aW9uIj4ke2suZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlclRpbGVDb250ZW50KGspe3N3aXRjaChrLnR5cGUpe2Nhc2UibnVtYmVyIjpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiIHN0eWxlPSIke2suY29sb3I/YGNvbG9yOiAke2suY29sb3J9YDoiIn0iPgogICAgICAgICAgICA8c3Bhbj4ke2sudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAke2sudW5pdD93YDxzcGFuIGNsYXNzPSJ0aWxlLXVuaXQiPiR7ay51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImdhdWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJHYXVnZShrKTtjYXNlInBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlclBlcmNlbnRhZ2Uoayk7Y2FzZSJ0cmVuZCI6cmV0dXJuIHRoaXMucmVuZGVyVHJlbmQoayk7Y2FzZSJtdWx0aVBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlck11bHRpUGVyY2VudGFnZShrKTtjYXNlImNwdUNvcmVzIjpyZXR1cm4gdGhpcy5yZW5kZXJDcHVDb3JlcyhrKTtjYXNlInBhcnRpdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyUGFydGl0aW9uKGspO2Nhc2UiZGlzayI6cmV0dXJuIHRoaXMucmVuZGVyRGlzayhrKTtjYXNlInRleHQiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC12YWx1ZSIgc3R5bGU9IiR7ay5jb2xvcj9gY29sb3I6ICR7ay5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgICR7ay52YWx1ZX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YH19cmVuZGVyR2F1Z2Uoayl7bGV0IFM9dHlwZW9mIGsudmFsdWU9PSJudW1iZXIiP2sudmFsdWU6cGFyc2VGbG9hdChrLnZhbHVlKSxJPWsuZ2F1Z2VPcHRpb25zfHx7bWluOjAsbWF4OjEwMH0sUD0oUy1JLm1pbikvKEkubWF4LUkubWluKSoxMDAsUj0xMjAsSz03MCxXPTYvMisyLG1lPTQwLEI9Ui8yLFU9Sy1XLGhlPUItbWUsRj1VLGo9QittZSxsZT1gTSAke2hlfSAke0Z9IEEgJHttZX0gJHttZX0gMCAwIDEgJHtqfSAke1V9YCxRPU1hdGguUEkqbWUsaWU9US1RKlAvMTAwLHRlPWsuY29sb3J8fGguYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyOC44JSkiLCJoc2woMjEwIDQwJSA3OCUpIik7aWYoSS50aHJlc2hvbGRzKXtsZXQgZWU9Wy4uLkkudGhyZXNob2xkc10uc29ydCgoa2UsWCk9PlgudmFsdWUta2UudmFsdWUpO2ZvcihsZXQga2Ugb2YgZWUpaWYoUz49a2UudmFsdWUpe3RlPWtlLmNvbG9yO2JyZWFrfX1yZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2UtY29udGFpbmVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9ImdhdWdlLXN2ZyIgdmlld0JveD0iMCAwICR7Un0gJHtLfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgICAgICAgICAgIDwhLS0gQmFja2dyb3VuZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWJhY2tncm91bmQiCiAgICAgICAgICAgICAgZD0iJHtsZX0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gRmlsbGVkIGFyYyAtLT4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICBjbGFzcz0iZ2F1Z2UtZmlsbCIKICAgICAgICAgICAgICBkPSIke2xlfSIKICAgICAgICAgICAgICBzdHJva2U9IiR7dGV9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IiR7UX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IiR7aWV9IgogICAgICAgICAgICAvPgogICAgICAgICAgICA8IS0tIFZhbHVlIHRleHQgLS0+CiAgICAgICAgICAgIDx0ZXh0IGNsYXNzPSJnYXVnZS10ZXh0IiB4PSIke0J9IiB5PSIke1UtOH0iIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiPgogICAgICAgICAgICAgIDx0c3Bhbj4ke1N9PC90c3Bhbj4ke2sudW5pdD93YDx0c3BhbiBjbGFzcz0iZ2F1Z2UtdW5pdCIgZHg9IjIiIGR5PSIwIj4ke2sudW5pdH08L3RzcGFuPmA6IiJ9CiAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGVyY2VudGFnZShrKXtsZXQgUz10eXBlb2Ygay52YWx1ZT09Im51bWJlciI/ay52YWx1ZTpwYXJzZUZsb2F0KGsudmFsdWUpLEk9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsUykpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2UtdmFsdWUiPiR7SX0lPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InBlcmNlbnRhZ2UtZmlsbCIgCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtJfSU7ICR7ay5jb2xvcj9gYmFja2dyb3VuZDogJHtrLmNvbG9yfWA6IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVHJlbmQoayl7aWYoIWsudHJlbmREYXRhfHxrLnRyZW5kRGF0YS5sZW5ndGg8MilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXQgUz1rLnRyZW5kRGF0YSxJPU1hdGgubWF4KC4uLlMpLFA9TWF0aC5taW4oLi4uUyksUj1JLVB8fDEsSz0zMDAsVj0zMixXPTIsbWU9Uy5tYXAoKFUsaGUpPT57bGV0IEY9aGUvKFMubGVuZ3RoLTEpKkssaj1XKyhWLTIqVyktKFUtUCkvUiooVi0yKlcpO3JldHVybmAke0Z9LCR7an1gfSkuam9pbigiICIpLEI9YDAsJHtWfSAke21lfSAke0t9LCR7Vn1gO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idHJlbmQtdmFsdWUiPiR7ay52YWx1ZX08L3NwYW4+CiAgICAgICAgICAke2sudW5pdD93YDxzcGFuIGNsYXNzPSJ0cmVuZC11bml0Ij4ke2sudW5pdH08L3NwYW4+YDoiIn0KICAgICAgICAgICR7ay5kZXNjcmlwdGlvbj93YDxzcGFuIGNsYXNzPSJ0cmVuZC1sYWJlbCI+JHtrLmRlc2NyaXB0aW9ufTwvc3Bhbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWdyYXBoIj4KICAgICAgICAgIDxzdmcgY2xhc3M9InRyZW5kLXN2ZyIgdmlld0JveD0iMCAwICR7S30gJHtWfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJ0cmVuZC1hcmVhIiBwb2ludHM9IiR7Qn0iIC8+CiAgICAgICAgICAgIDxwb2x5bGluZSBjbGFzcz0idHJlbmQtbGluZSIgcG9pbnRzPSIke21lfSIgLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlQZXJjZW50YWdlKGspe2lmKCFrLnBlcmNlbnRhZ2VzfHxrLnBlcmNlbnRhZ2VzLmxlbmd0aD09PTApcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtrLnZhbHVlfTwvZGl2PmA7bGV0IFM9ay5wZXJjZW50YWdlcy5zbGljZSgwLDMpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaXRlbXMiPgogICAgICAgICAgJHtTLm1hcChJPT57bGV0IFA9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsSS52YWx1ZSkpO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaXRlbSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWxhYmVsIj4ke0kubGFiZWx9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS12YWx1ZSI+JHtQfSU8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtYmFyIj4KICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWZpbGwiCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke1B9JTsgJHtJLmNvbG9yP2BiYWNrZ3JvdW5kOiAke0kuY29sb3J9YDoiIn0iCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDcHVDb3JlcyhrKXtpZighay5jb3Jlc0RhdGF8fGsuY29yZXNEYXRhLmxlbmd0aD09PTApcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtrLnZhbHVlfTwvZGl2PmA7bGV0IFM9ay5jb3Jlc0RhdGEsST1NYXRoLnJvdW5kKFMucmVkdWNlKChtZSxCKT0+bWUrQi51c2FnZSwwKS9TLmxlbmd0aCksUD1pKG1lPT5tZTw1MD8ibG93IjptZTw4MD8ibWVkaXVtIjoiaGlnaCIsImdldENvbG9yQ2xhc3MiKSxSPVMubGVuZ3RoKjI0KyhTLmxlbmd0aC0xKSozLEs9ay5jb2x1bW5TcGFufHwxLFY9dGhpcy5taW5UaWxlV2lkdGgqSysoSy0xKSp0aGlzLmdhcC0zMixXPVI8ViouNjY2O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXZhbHVlIj4ke0l9PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy11bml0Ij4lPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy1sYWJlbCI+JHtTLmxlbmd0aH0gY29yZXM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWJhcnMgJHtXPyJjZW50ZXJlZCI6IiJ9Ij4KICAgICAgICAgICR7Uy5tYXAobWU9PntsZXQgQj1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxtZS51c2FnZSkpLFU9UChCKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZS1iYXItY29udGFpbmVyIiB0aXRsZT0iQ29yZSAke21lLmxhYmVsfHxtZS5pZH06ICR7Qn0lIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3JlLWJhci13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjcHUtY29yZS1iYXItZmlsbCAke1V9IgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSJoZWlnaHQ6ICR7Qn0lIgogICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7Uy5sZW5ndGg8PTE2P3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZS1sYWJlbCI+JHttZS5sYWJlbHx8bWUuaWR9PC9zcGFuPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zm9ybWF0Qnl0ZXMoayl7aWYoaz09PTApcmV0dXJuIjAgQiI7bGV0IFM9MTAyNCxJPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIiwiUEIiXSxQPU1hdGguZmxvb3IoTWF0aC5sb2coaykvTWF0aC5sb2coUykpO3JldHVybiBwYXJzZUZsb2F0KChrL01hdGgucG93KFMsUCkpLnRvRml4ZWQoMSkpKyIgIitJW1BdfXJlbmRlclBhcnRpdGlvbihrKXtpZighay5wYXJ0aXRpb25EYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7ay52YWx1ZX08L2Rpdj5gO2xldHt1c2VkOlMsdG90YWw6SSxmaWxlc3lzdGVtOlAsbW91bnRQb2ludDpSfT1rLnBhcnRpdGlvbkRhdGEsSz1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxTL0kqMTAwKSksVj1JLVMsVz1pKCgpPT5LPj05MD8iY3JpdGljYWwiOks+PTc1PyJ3YXJuaW5nIjoiIiwiZ2V0Q29sb3JDbGFzcyIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24td3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXBlcmNlbnRhZ2UiPiR7TWF0aC5yb3VuZChLKX0lPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1iYXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icGFydGl0aW9uLWJhci1maWxsICR7VygpfSIKICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke0t9JSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdHMiPgogICAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtbGFiZWwiPlVzZWQ8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC12YWx1ZSI+JHt0aGlzLmZvcm1hdEJ5dGVzKFMpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtbGFiZWwiPkZyZWU8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC12YWx1ZSI+JHt0aGlzLmZvcm1hdEJ5dGVzKFYpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1tZXRhIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tZmlsZXN5c3RlbSI+JHtQfTwvc3Bhbj4KICAgICAgICAgICR7Uj93YDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tbW91bnRwb2ludCI+JHtSfTwvc3Bhbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGlzayhrKXtpZighay5kaXNrRGF0YSlyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke2sudmFsdWV9PC9kaXY+YDtsZXR7Y2FwYWNpdHk6Uyxtb2RlbDpJLHR5cGU6UCxpb3BzOlIsaGVhbHRoOkt9PWsuZGlza0RhdGEsVj1pKFc9Plc+PTcwPyJnb29kIjpXPj0zMD8id2FybmluZyI6ImNyaXRpY2FsIiwiZ2V0SGVhbHRoQ2xhc3MiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlzay13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWNhcGFjaXR5Ij4ke3RoaXMuZm9ybWF0Qnl0ZXMoUyl9PC9kaXY+CiAgICAgICAgJHtJfHxQP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLW1vZGVsIj4KICAgICAgICAgICAgJHtJP3dgPHNwYW4+JHtJfTwvc3Bhbj5gOiIifQogICAgICAgICAgICAke1A/d2A8c3BhbiBjbGFzcz0iZGlzay10eXBlLWJhZGdlIj4ke1B9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbWV0cmljcyI+CiAgICAgICAgICAke1I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1pb3BzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5SZWFkPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy12YWx1ZSI+JHtSLnJlYWQudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1pb3BzLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy1sYWJlbCI+V3JpdGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke1Iud3JpdGUudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgICR7SyE9PXZvaWQgMD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1oZWFsdGgtaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWhlYWx0aC1sYWJlbCI+SGVhbHRoPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLXZhbHVlIj4ke0t9JTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1iYXIiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzay1oZWFsdGgtZmlsbCAke1YoSyl9IgogICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7S30lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVHcmlkQWN0aW9uKGspe2suYWN0aW9uJiZhd2FpdCBrLmFjdGlvbigpfWFzeW5jIGhhbmRsZVRpbGVBY3Rpb24oayxTKXtrLmFjdGlvbiYmYXdhaXQgay5hY3Rpb24oKX1zaG93Q29udGV4dE1lbnUoayxTKXtpZighUy5hY3Rpb25zfHxTLmFjdGlvbnMubGVuZ3RoPT09MClyZXR1cm47ay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbj17eDprLmNsaWVudFgseTprLmNsaWVudFl9LHRoaXMuY29udGV4dE1lbnVBY3Rpb25zPVMuYWN0aW9ucyx0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMDtsZXQgST1pKCgpPT57dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLEkpfSwiY2xvc2VIYW5kbGVyIik7c2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixJKX0sMTAwKX1zdGF0aWN7Wm4oYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIGU3LFFkLGxWbyxjVm8sZFZvLHVWbyxCdmEsSHZhPWcoKCk9PntwZSgpO0l0KCk7SjFlKCk7ZTc9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFkPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxsVm89KCgpPT57bGV0IHM9W25lKCJkZW1vLWRhc2hib2FyZC12aWV3IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlbW9EYXNoYm9hcmRWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxlNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2YXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iYWN0aXZhdGVkImluIHUsImhhcyIpLGdldDppKHU9PnUuYWN0aXZhdGVkLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3UuYWN0aXZhdGVkPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxlNyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pLFFkKGEsdCl9I2U9UWQodGhpcyxvLCExKTtnZXQgYWN0aXZhdGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFjdGl2YXRlZChkKXt0aGlzLiNlPWR9Y3R4PVFkKHRoaXMsbCk7c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246Ik9ubGluZSBub3ciLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJhcGktY2FsbHMiLHRpdGxlOiJBUEkgQ2FsbHMiLHZhbHVlOjQ1MjAwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLGRlc2NyaXB0aW9uOiIrMTIlIGZyb20gbGFzdCBob3VyIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlszMmUzLDM1ZTMsMzhlMyw0MWUzLDM5ZTMsNDJlMyw0NTIwMF19LHtpZDoiaGVhbHRoIix0aXRsZToiU3lzdGVtIEhlYWx0aCIsdmFsdWU6OTkuOSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmhlYXJ0LXB1bHNlIixkZXNjcmlwdGlvbjoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjk1LGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UiLHZhbHVlOjEyNyx1bml0OiJtcyIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dGltZXIiLGRlc2NyaXB0aW9uOiItMTVtcyBmcm9tIHllc3RlcmRheSIsY29sb3I6IiM4YjVjZjYifSx7aWQ6InJlc291cmNlcyIsdGl0bGU6IlJlc291cmNlIFVzYWdlIix2YWx1ZToiIix0eXBlOiJtdWx0aVBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHBlcmNlbnRhZ2VzOlt7bGFiZWw6IkNQVSIsdmFsdWU6NjcsY29sb3I6IiMzYjgyZjYifSx7bGFiZWw6Ik1lbW9yeSIsdmFsdWU6ODQsY29sb3I6IiM4YjVjZjYifSx7bGFiZWw6IkRpc2siLHZhbHVlOjQ1LGNvbG9yOiIjMTBiOTgxIn1dfSx7aWQ6InJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZToxODUwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6emFwIixkZXNjcmlwdGlvbjoiQ3VycmVudCB0aHJvdWdocHV0Iixjb2xvcjoiIzA2YjZkNCIsdHJlbmREYXRhOlsxMjAwLDE0MDAsMTM1MCwxNjAwLDE3NTAsMTY4MCwxODUwXX1dO29uQWN0aXZhdGUoZCl7dGhpcy5jdHg9ZCx0aGlzLmFjdGl2YXRlZD0hMCxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGFjdGl2YXRlZCB3aXRoIGNvbnRleHQ6IixkKSxkLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWNjZXNzIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibGF5b3V0RGFzaGJvYXJkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJSZWNlbnQiLGljb25OYW1lOiJjbG9jayIsYmFkZ2U6NSxhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlY2VudCIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT5hbGVydCgiUmVmcmVzaGluZyBkYXNoYm9hcmQgZGF0YS4uLiIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiVGltZSBSYW5nZSJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJhZGlvIixhY3RpdmU6ITAsb25Ub2dnbGU6aSh1PT5jb25zb2xlLmxvZygiTGl2ZSB1cGRhdGVzOiIsdSksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aSh1PT5jb25zb2xlLmxvZygiU2hvdyBhcmNoaXZlZDoiLHUpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJEYXRhIFNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UiLG9wdGlvbnM6W3trZXk6ImFwaSIsbGFiZWw6IkFQSSBTZXJ2ZXIiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJ3ZWIiLGxhYmVsOiJXZWIgVHJhZmZpYyIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmdsb2JlIn0se2tleToibW9iaWxlIixsYWJlbDoiTW9iaWxlIEFwcCIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnNtYXJ0cGhvbmUifV0sb25DaGFuZ2U6aSh1PT5jb25zb2xlLmxvZygiRGF0YSBzb3VyY2VzOiIsdSksIm9uQ2hhbmdlIil9XX0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDMiLGl0ZW1zOlt7a2V5OiJNZXRyaWNzIixpY29uTmFtZToiYWN0aXZpdHkiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWV0cmljcyIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6ImZpbGVUZXh0IixiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVwb3J0cyIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJBbmFseXRpY3MgRG9jcyIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9hbmFseXRpY3MifV19XX0pLGQuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyB0YWIiKSwiYWN0aW9uIil9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgdGFiIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgdGFiIiksImFjdGlvbiIpfV0pfW9uRGVhY3RpdmF0ZSgpe3RoaXMuYWN0aXZhdGVkPSExLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgZGVhY3RpdmF0ZWQiKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDMycHg7IH0KICAgICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmN0eC1hY3Rpb25zIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAyKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5jdHgtYWN0aW9ucyBoMiB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAgICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0biB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5zdWNjZXNzIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7CiAgICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2Vzczpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjUpOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPkRhc2hib2FyZDwvaDE+CiAgICAgIDxwPldlbGNvbWUgYmFjayEgSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgc3lzdGVtLjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUaWxlIGFjdGlvbjoiLGQuZGV0YWlsKX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJjdHgtYWN0aW9ucyI+CiAgICAgICAgPGgyPkNvbnRleHQgQWN0aW9ucyAoY3R4LmFwcHVpKTwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITEpfT5IaWRlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMCl9PlNob3cgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCExKX0+SGlkZSBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCEwKX0+U2hvdyBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITEpfT5IaWRlIENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMCl9PlNob3cgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCEwKX0+Q29sbGFwc2UgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITEpfT5FeHBhbmQgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldEJyZWFkY3J1bWJzKFsiRGFzaGJvYXJkIiwiT3ZlcnZpZXciLCJTdGF0cyJdKX0+U2V0IEJyZWFkY3J1bWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJwcm9qZWN0cyIpfT5HbyB0byBQcm9qZWN0czwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiLHtzZWN0aW9uOiJzZWN1cml0eSJ9KX0+R28gdG8gU2V0dGluZ3MvU2VjdXJpdHk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJjdXN0b20iLHVzZXI6IkRlbW8gVXNlciIsbWVzc2FnZToiQnV0dG9uIGNsaWNrZWQgZnJvbSBjdHghIixpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXItY2xpY2sifSl9PkFkZCBBY3Rpdml0eSBFbnRyeTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsOTkpfT5TZXQgVGFza3MgQmFkZ2UgdG8gOTk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmNsZWFyTWFpbk1lbnVCYWRnZSgidGFza3MiKX0+Q2xlYXIgVGFza3MgQmFkZ2U8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMCwxKX0+QXV0by1oaWRlIFRhYnMgKOKJpDEpPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCExKX0+RGlzYWJsZSBBdXRvLWhpZGU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ2xvc2VhYmxlVGFiKCl9PkFkZCBDbG9zZWFibGUgVGFiPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH10YWJDb3VudGVyPTA7YWRkQ2xvc2VhYmxlVGFiKCl7aWYoIXRoaXMuY3R4KXJldHVybjt0aGlzLnRhYkNvdW50ZXIrKztsZXQgZD1gVGFiICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy5jdHguYXBwdWkuYWRkQ29udGVudFRhYih7a2V5OmQsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYFNlbGVjdGVkICR7ZH1gKSwiYWN0aW9uIiksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6aSgoKT0+e3RoaXMuY3R4Py5hcHB1aS5yZW1vdmVDb250ZW50VGFiKGQpfSwib25DbG9zZSIpfSl9fTtyZXR1cm4gcD1hfSkoKSxjVm89KCgpPT57bGV0IHM9W25lKCJkZW1vLXNldHRpbmdzLXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1NldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxlNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InNlY3Rpb24iaW4gdiwiaGFzIiksZ2V0Omkodj0+di5zZWN0aW9uLCJnZXQiKSxzZXQ6aSgodix4KT0+e3Yuc2VjdGlvbj14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZTcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNDaGFuZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJoYXNDaGFuZ2VzImluIHYsImhhcyIpLGdldDppKHY9PnYuaGFzQ2hhbmdlcywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2Lmhhc0NoYW5nZXM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLGU3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSksUWQoYSx0KX0jZT1RZCh0aGlzLG8sImdlbmVyYWwiKTtnZXQgc2VjdGlvbigpe3JldHVybiB0aGlzLiNlfXNldCBzZWN0aW9uKGIpe3RoaXMuI2U9Yn0jdD0oUWQodGhpcyxsKSxRZCh0aGlzLGQsITEpKTtnZXQgaGFzQ2hhbmdlcygpe3JldHVybiB0aGlzLiN0fXNldCBoYXNDaGFuZ2VzKGIpe3RoaXMuI3Q9Yn1hcHB1aT1RZCh0aGlzLHUpO29uQWN0aXZhdGUoYil7dGhpcy5hcHB1aT1iLmFwcHVpLGNvbnNvbGUubG9nKCJTZXR0aW5ncyBhY3RpdmF0ZWQgd2l0aCBwYXJhbXM6IixiLnBhcmFtcyksYi5wYXJhbXM/LnNlY3Rpb24mJih0aGlzLnNlY3Rpb249Yi5wYXJhbXMuc2VjdGlvbiksYi5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXR0aW5ncyIsZ3JvdXBzOlt7bmFtZToiQWNjb3VudCIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixpdGVtczpbe2tleToiZ2VuZXJhbCIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigiZ2VuZXJhbCIpLCJhY3Rpb24iKX0se2tleToicHJvZmlsZSIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJwcm9maWxlIiksImFjdGlvbiIpfSx7a2V5OiJzZWN1cml0eSIsaWNvbk5hbWU6InNoaWVsZCIsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oInNlY3VyaXR5IiksImFjdGlvbiIpfV19LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpzbGlkZXJzIixpdGVtczpbe2tleToibm90aWZpY2F0aW9ucyIsaWNvbk5hbWU6ImJlbGwiLGJhZGdlOjMsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oIm5vdGlmaWNhdGlvbnMiKSwiYWN0aW9uIil9LHtrZXk6ImFwcGVhcmFuY2UiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigiYXBwZWFyYW5jZSIpLCJhY3Rpb24iKX1dfV19KSxiLmFwcHVpLnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24odGhpcy5zZWN0aW9uKSxiLmFwcHVpLnNldENvbnRlbnRUYWJzKFtdKX1vbkRlYWN0aXZhdGUoKXtjb25zb2xlLmxvZygiU2V0dGluZ3MgZGVhY3RpdmF0ZWQiKSx0aGlzLmhhc0NoYW5nZXM9ITF9Y2FuRGVhY3RpdmF0ZSgpe3JldHVybiB0aGlzLmhhc0NoYW5nZXM/IllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTGVhdmUgYW55d2F5PyI6ITB9c2hvd1NlY3Rpb24oYil7dGhpcy5zZWN0aW9uPWIsdGhpcy5hcHB1aT8uc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihiKX1zaW11bGF0ZUNoYW5nZSgpe3RoaXMuaGFzQ2hhbmdlcz0hMH1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAuc2VjdGlvbi1uYW1lIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KICAgICAgICAuYWN0aW9ucyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICBidXR0b24gewogICAgICAgICAgYmFja2dyb3VuZDogIzNiODJmNjsKICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgICBidXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogIzI1NjNlYjsKICAgICAgICB9CiAgICAgICAgLndhcm5pbmcgewogICAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+TWFuYWdlIHlvdXIgYWNjb3VudCBhbmQgYXBwbGljYXRpb24gcHJlZmVyZW5jZXMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLW5hbWUiPgogICAgICAgIEN1cnJlbnQgc2VjdGlvbjogPHN0cm9uZz4ke3RoaXMuc2VjdGlvbn08L3N0cm9uZz4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2ltdWxhdGVDaGFuZ2UoKX0+TWFrZSBDaGFuZ2VzPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuaGFzQ2hhbmdlcz93YDxwIGNsYXNzPSJ3YXJuaW5nIj5Zb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIE5hdmlnYXRpb24gd2lsbCBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvbi48L3A+YDoiIn0KICAgIGB9fTtyZXR1cm4gYz1hfSkoKSxkVm89KCgpPT57bGV0IHM9W25lKCJkZW1vLXByb2plY3RzLXZpZXciKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1Byb2plY3RzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSksUWQoYSx0KX1vbkFjdGl2YXRlKG8pe28uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUHJvamVjdHMiLGdyb3Vwczpbe25hbWU6Ik15IFByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsaXRlbXM6W3trZXk6IkFjdGl2ZSIsaWNvbk5hbWU6ImZvbGRlciIsYmFkZ2U6MyxhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFjdGl2ZSIpLCJhY3Rpb24iKX0se2tleToiQXJjaGl2ZWQiLGljb25OYW1lOiJhcmNoaXZlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFyY2hpdmVkIiksImFjdGlvbiIpfSx7a2V5OiJTaGFyZWQiLGljb25OYW1lOiJ1c2VycyIsYmFkZ2U6MixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2hhcmVkIiksImFjdGlvbiIpfV19LHtuYW1lOiJRdWljayBBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiTmV3IFByb2plY3QiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJDcmVhdGUgbmV3IHByb2plY3QiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBwcm9qZWN0IiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJsaW5rIixrZXk6IlRlbXBsYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXRUZW1wbGF0ZSIsaHJlZjoiaHR0cHM6Ly90ZW1wbGF0ZXMuZXhhbXBsZS5jb20ifV19XX0pLG8uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkdyaWQiLGljb25OYW1lOiJsdWNpZGU6Z3JpZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJHcmlkIHZpZXciKSwiYWN0aW9uIil9LHtrZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJMaXN0IHZpZXciKSwiYWN0aW9uIil9LHtrZXk6IkJvYXJkIixpY29uTmFtZToibHVjaWRlOmthbmJhbiIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJCb2FyZCB2aWV3IiksImFjdGlvbiIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAucHJvamVjdHMgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzOwogICAgICAgIH0KICAgICAgICAucHJvamVjdDpob3ZlciB7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgaDMgeyBjb2xvcjogI2ZhZmFmYTsgbWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICAgIC5wcm9qZWN0IHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEzcHg7IH0KICAgICAgICAuYmFkZ2UgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgYmFja2dyb3VuZDogIzE0NTMyZDsKICAgICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+UHJvamVjdHM8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0cyI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RnJvbnRlbmQgQXBwIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5SZWFjdC1iYXNlZCBkYXNoYm9hcmQgYXBwbGljYXRpb248L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+QVBJIFNlcnZlciA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+Tm9kZS5qcyBSRVNUIEFQSSBiYWNrZW5kPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPk1vYmlsZSBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0IE5hdGl2ZSBpT1MvQW5kcm9pZCBhcHA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RG9jdW1lbnRhdGlvbjwvaDM+CiAgICAgICAgICA8cD5UZWNobmljYWwgZG9jdW1lbnRhdGlvbiBzaXRlPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gbj1hfSkoKSx1Vm89KCgpPT57bGV0IHM9W25lKCJkZW1vLXRhc2tzLXZpZXciKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1Rhc2tzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSksUWQoYSx0KX1vbkFjdGl2YXRlKG8pe28uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiVGFza3MiLGdyb3Vwczpbe25hbWU6IlZpZXdzIixpY29uTmFtZToibHVjaWRlOmV5ZSIsaXRlbXM6W3trZXk6IkFsbCBUYXNrcyIsaWNvbk5hbWU6Imxpc3QiLGJhZGdlOjEyLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWxsIiksImFjdGlvbiIpfSx7a2V5OiJUb2RheSIsaWNvbk5hbWU6ImNhbGVuZGFyIixiYWRnZTozLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVG9kYXkiKSwiYWN0aW9uIil9LHtrZXk6IlVwY29taW5nIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVXBjb21pbmciKSwiYWN0aW9uIil9LHtrZXk6IkNvbXBsZXRlZCIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiUHJpb3JpdHkifSx7dHlwZToibXVsdGlGaWx0ZXIiLGtleToiUHJpb3JpdHkiLGljb25OYW1lOiJsdWNpZGU6ZmxhZyIsb3B0aW9uczpbe2tleToiaGlnaCIsbGFiZWw6IkhpZ2giLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTphbGVydENpcmNsZSJ9LHtrZXk6Im1lZGl1bSIsbGFiZWw6Ik1lZGl1bSIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOm1pbnVzQ2lyY2xlIn0se2tleToibG93IixsYWJlbDoiTG93IixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6Y2lyY2xlIn1dLG9uQ2hhbmdlOmkobD0+Y29uc29sZS5sb2coIlByaW9yaXR5IGZpbHRlcjoiLGwpLCJvbkNoYW5nZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJPcHRpb25zIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IFN1YnRhc2tzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixhY3RpdmU6ITAsb25Ub2dnbGU6aShsPT5jb25zb2xlLmxvZygiU2hvdyBzdWJ0YXNrczoiLGwpLCJvblRvZ2dsZSIpfSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQ29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShsPT5jb25zb2xlLmxvZygiU2hvdyBjb21wbGV0ZWQ6IixsKSwib25Ub2dnbGUiKX1dfSx7bmFtZToiQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBUYXNrIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKCgpPT5hbGVydCgiQWRkIG5ldyB0YXNrIiksImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTp1cGxvYWQiLGFjdGlvbjppKCgpPT5hbGVydCgiSW1wb3J0IHRhc2tzIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiQ2xlYXIgQ29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsdmFyaWFudDoiZGFuZ2VyIixjb25maXJtTWVzc2FnZToiRGVsZXRlIGFsbCBjb21wbGV0ZWQgdGFza3M/IixhY3Rpb246aSgoKT0+YWxlcnQoIkNsZWFyZWQgY29tcGxldGVkIHRhc2tzIiksImFjdGlvbiIpfV19XX0pLG8uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJMaXN0IiksImFjdGlvbiIpfSx7a2V5OiJDYWxlbmRhciIsaWNvbk5hbWU6Imx1Y2lkZTpjYWxlbmRhciIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDYWxlbmRhciIpLCJhY3Rpb24iKX1dKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnRhc2stbGlzdCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAudGFzayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIH0KICAgICAgICAuY2hlY2tib3ggewogICAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjNTI1MjUyOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KICAgICAgICAudGFzay10ZXh0IHsgY29sb3I6ICNmYWZhZmE7IGZsZXg6IDE7IH0KICAgICAgICAuZHVlLWRhdGUgeyBjb2xvcjogIzczNzM3MzsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgICAgLnByaW9yaXR5IHsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC5wcmlvcml0eS5oaWdoIHsgYmFja2dyb3VuZDogIzQ1MGEwYTsgY29sb3I6ICNmODcxNzE7IH0KICAgICAgICAucHJpb3JpdHkubWVkaXVtIHsgYmFja2dyb3VuZDogIzQ1MWEwMzsgY29sb3I6ICNmYmJmMjQ7IH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlRhc2tzPC9oMT4KICAgICAgPGRpdiBjbGFzcz0idGFzay1saXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YXNrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij48L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXNrLXRleHQiPlJldmlldyBwdWxsIHJlcXVlc3QgIzQyPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5Ub2RheTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmlvcml0eSBoaWdoIj5IaWdoPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+VXBkYXRlIGRvY3VtZW50YXRpb248L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvbW9ycm93PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IG1lZGl1bSI+TWVkaXVtPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+V3JpdGUgdW5pdCB0ZXN0czwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+RGVjIDIwPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gbj1hfSkoKSxCdmE9aSgoKT0+e2xldCBzPXticmFuZGluZzp7bG9nb0ljb246Imx1Y2lkZTpib3giLGxvZ29UZXh0OiJBY21lIEFwcCJ9LGFwcEJhcjp7bWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXciKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXJPcGVuIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiIpLCJhY3Rpb24iKX0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJteS1hcHAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIG15LWFwcCIpLCJhY3Rpb24iKX0se25hbWU6ImNvbXBvbmVudC1saWIiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIGNvbXBvbmVudC1saWIiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIEFsbCIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIiksImFjdGlvbiIpfSx7bmFtZToiVG9nZ2xlIEFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIGFjdGl2aXR5IiksImFjdGlvbiIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG9jcyIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kKy8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQWJvdXQiLGljb25OYW1lOiJpbmZvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKSwiYWN0aW9uIil9XX1dLGJyZWFkY3J1bWJzOiJEYXNoYm9hcmQiLHNob3dXaW5kb3dDb250cm9sczohMCxzaG93U2VhcmNoOiEwLHVzZXI6e25hbWU6IkphbmUgU21pdGgiLGVtYWlsOiJqYW5lLnNtaXRoQGV4YW1wbGUuY29tIixzdGF0dXM6Im9ubGluZSJ9LHByb2ZpbGVNZW51SXRlbXM6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlByb2ZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJBY2NvdW50IFNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2lnbiBvdXQiKSwiYWN0aW9uIil9XX0sdmlld3M6W3tpZDoiZGFzaGJvYXJkIixuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsY29udGVudDoiZGVtby1kYXNoYm9hcmQtdmlldyIscm91dGU6ImRhc2hib2FyZCJ9LHtpZDoicHJvamVjdHMiLG5hbWU6IlByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsY29udGVudDoiZGVtby1wcm9qZWN0cy12aWV3Iixyb3V0ZToicHJvamVjdHMiLGJhZGdlOjN9LHtpZDoidGFza3MiLG5hbWU6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixjb250ZW50OiJkZW1vLXRhc2tzLXZpZXciLHJvdXRlOiJ0YXNrcyIsYmFkZ2U6MTJ9LHtpZDoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixjb250ZW50OiJkZW1vLXNldHRpbmdzLXZpZXciLHJvdXRlOiJzZXR0aW5ncy86c2VjdGlvbj8ifV0sbWFpbk1lbnU6e3NlY3Rpb25zOlt7bmFtZToiTWFpbiIsdmlld3M6WyJkYXNoYm9hcmQiXX0se25hbWU6IldvcmtzcGFjZSIsdmlld3M6WyJwcm9qZWN0cyIsInRhc2tzIl19XSxib3R0b21JdGVtczpbInNldHRpbmdzIl19LGRlZmF1bHRWaWV3OiJkYXNoYm9hcmQiLGJvdHRvbUJhcjp7dmlzaWJsZTohMCx3aWRnZXRzOlt7aWQ6InN0YXR1cyIsaWNvbk5hbWU6Imx1Y2lkZTphY3Rpdml0eSIsbGFiZWw6IlN5c3RlbSBPbmxpbmUiLHN0YXR1czoic3VjY2VzcyIsdG9vbHRpcDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLG9uQ2xpY2s6aSgoKT0+Y29uc29sZS5sb2coIlN0YXR1cyBjbGlja2VkIiksIm9uQ2xpY2siKX0se2lkOiJub3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGxhYmVsOiIzIG5vdGlmaWNhdGlvbnMiLHN0YXR1czoid2FybmluZyIsdG9vbHRpcDoiWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMiLG9uQ2xpY2s6aSgoKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpLCJvbkNsaWNrIil9LHtpZDoidmVyc2lvbiIsaWNvbk5hbWU6Imx1Y2lkZTpnaXRCcmFuY2giLGxhYmVsOiJ2MS4yLjMiLHBvc2l0aW9uOiJyaWdodCIsdG9vbHRpcDoiQ3VycmVudCB2ZXJzaW9uIn1dLGFjdGlvbnM6W3tpZDoidGVybWluYWwiLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLHRvb2x0aXA6Ik9wZW4gVGVybWluYWwiLHBvc2l0aW9uOiJyaWdodCIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiVGVybWluYWwgY2xpY2tlZCIpLCJvbkNsaWNrIil9XX0sb25WaWV3Q2hhbmdlOmkoKGEscik9Pntjb25zb2xlLmxvZyhgVmlldyBjaGFuZ2VkIHRvOiAke2F9ICgke3IubmFtZX0pYCl9LCJvblZpZXdDaGFuZ2UiKSxvblNlYXJjaDppKGE9Pntjb25zb2xlLmxvZygiU2VhcmNoIHF1ZXJ5OiIsYSl9LCJvblNlYXJjaCIpfSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NOYW1lPSJkZW1vLWNvbnRhaW5lciIsZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiO2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtYXBwdWkiKTtyZXR1cm4gZS5hcHBlbmRDaGlsZCh0KSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCB0LnVwZGF0ZUNvbXBsZXRlLHQuY29uZmlndXJlKHMpLHNldFRpbWVvdXQoKCk9Pnt0LmFjdGl2aXR5TG9nLmFkZE1hbnkoW3t0eXBlOiJsb2dpbiIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToibG9nZ2VkIGluIGZyb20gQ2hyb21lIG9uIG1hY09TIn0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZTonY3JlYXRlZCBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6InVwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24ifSx7dHlwZToidmlldyIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9XSl9LDUwMCksdC52aWV3Q2hhbmdlZCQuc3Vic2NyaWJlKGE9Pntjb25zb2xlLmxvZygiVmlldyBjaGFuZ2VkIGV2ZW50OiIsYSksdC5zZXRCcmVhZGNydW1icyhhLnZpZXcubmFtZSl9KSx0LnZpZXdMaWZlY3ljbGUkLnN1YnNjcmliZShhPT57Y29uc29sZS5sb2coIkxpZmVjeWNsZSBldmVudDoiLGEudHlwZSxhLnZpZXdJZCl9KSxzZXRUaW1lb3V0KCgpPT57dC5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsMTUpLHQuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJ1cGRhdGUiLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToibmV3IHRhc2tzIGFkZGVkIn0pfSw1ZTMpfSwwKSx3YAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgICR7ZX0KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBlMmUsam50PWcoKCk9PntwZSgpO2UyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaWV3UmVnaXN0cnkiKX12aWV3cz1uZXcgTWFwO2luc3RhbmNlcz1uZXcgTWFwO2N1cnJlbnRWaWV3SWQ9bnVsbDthcHB1aT1udWxsO3NldEFwcHVpUmVmKGUpe3RoaXMuYXBwdWk9ZX1yZWdpc3RlcihlKXt0aGlzLnZpZXdzLmhhcyhlLmlkKSYmY29uc29sZS53YXJuKGBWaWV3IHdpdGggaWQgIiR7ZS5pZH0iIGFscmVhZHkgcmVnaXN0ZXJlZC4gT3ZlcndyaXRpbmcuYCksdGhpcy52aWV3cy5zZXQoZS5pZCxlKX1yZWdpc3RlckFsbChlKXtlLmZvckVhY2godD0+dGhpcy5yZWdpc3Rlcih0KSl9Z2V0KGUpe3JldHVybiB0aGlzLnZpZXdzLmdldChlKX1nZXRWaWV3SWRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy5rZXlzKCkpfWdldEFsbCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmlld3MudmFsdWVzKCkpfWdldFJvdXRlKGUpe2xldCB0PXRoaXMudmlld3MuZ2V0KGUpO3JldHVybiB0Py5yb3V0ZXx8dD8uaWR8fCIifWZpbmRCeVJvdXRlKGUpe2ZvcihsZXQgdCBvZiB0aGlzLnZpZXdzLnZhbHVlcygpKXtsZXQgYT10LnJvdXRlfHx0LmlkLHI9dGhpcy5tYXRjaFJvdXRlKGEsZSk7aWYociE9PW51bGwpcmV0dXJue3ZpZXc6dCxwYXJhbXM6cn19fW1hdGNoUm91dGUoZSx0KXtsZXQgYT1lLnNwbGl0KCIvIikscj10LnNwbGl0KCIvIik7aWYoYS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXS5lbmRzV2l0aCgiPyIpKXtpZihyLmxlbmd0aDxhLmxlbmd0aC0xfHxyLmxlbmd0aD5hLmxlbmd0aClyZXR1cm4gbnVsbH1lbHNlIGlmKGEubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IG89e307Zm9yKGxldCBsPTA7bDxhLmxlbmd0aDtsKyspe2xldCBwPWFbbF0sZD1wLmVuZHNXaXRoKCI/Iik7aWYoZCYmKHA9cC5zbGljZSgwLC0xKSkscC5zdGFydHNXaXRoKCI6Iikpe2xldCB1PXAuc2xpY2UoMSk7aWYocltsXSE9PXZvaWQgMClvW3VdPXJbbF07ZWxzZSBpZighZClyZXR1cm4gbnVsbH1lbHNlIGlmKHJbbF0hPT1wKXJldHVybiBudWxsfXJldHVybiBvfWFzeW5jIGNhbkxlYXZlQ3VycmVudFZpZXcoKXtpZighdGhpcy5jdXJyZW50Vmlld0lkKXJldHVybiEwO2xldCBlPXRoaXMuaW5zdGFuY2VzLmdldCh0aGlzLmN1cnJlbnRWaWV3SWQpO2lmKCFlKXJldHVybiEwO2xldCB0PWU7cmV0dXJuIHR5cGVvZiB0LmNhbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiI/YXdhaXQgdC5jYW5EZWFjdGl2YXRlKCk6ITB9YXN5bmMgYWN0aXZhdGVWaWV3KGUsdCxhKXtsZXQgcj10aGlzLnZpZXdzLmdldChlKTtpZighcilyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDtsZXQgbj1yLmNhY2hlIT09ITE7dGhpcy5jdXJyZW50Vmlld0lkJiZ0aGlzLmN1cnJlbnRWaWV3SWQhPT1lJiZhd2FpdCB0aGlzLmRlYWN0aXZhdGVWaWV3KHRoaXMuY3VycmVudFZpZXdJZCk7bGV0IG89bj90aGlzLmluc3RhbmNlcy5nZXQoZSk6dm9pZCAwO2lmKG8pby5zdHlsZS5kaXNwbGF5PSIiO2Vsc2V7aWYobz1hd2FpdCB0aGlzLmNyZWF0ZVZpZXdFbGVtZW50KHIpLCFvKXJldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGVsZW1lbnQgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDt0LmFwcGVuZENoaWxkKG8pLG4mJnRoaXMuaW5zdGFuY2VzLnNldChlLG8pfXJldHVybiB0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxhd2FpdCB0aGlzLmNhbGxPbkFjdGl2YXRlKG8sZSxhKSxvfWFzeW5jIGRlYWN0aXZhdGVWaWV3KGUpe2xldCB0PXRoaXMuaW5zdGFuY2VzLmdldChlKTtpZighdClyZXR1cm47bGV0IGE9dDt0eXBlb2YgYS5vbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiImJmF3YWl0IGEub25EZWFjdGl2YXRlKCksdC5zdHlsZS5kaXNwbGF5PSJub25lIn1hc3luYyBjcmVhdGVWaWV3RWxlbWVudChlKXtsZXQgdD1lLmNvbnRlbnQ7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiImJiEodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkmJnQuY29uc3RydWN0b3IubmFtZT09PSJBc3luY0Z1bmN0aW9uIil0cnl7dD1hd2FpdCB0KCl9Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGFzeW5jIGNvbnRlbnQgZm9yIHZpZXcgIiR7ZS5pZH0iOmAsciksbnVsbH1sZXQgYTtpZih0eXBlb2YgdD09InN0cmluZyIpYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpaWYodC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClhPW5ldyB0O2Vsc2V7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixyLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IG49dCgpO2gxKG4sciksYT1yfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2UuaWR9ImApLG51bGw7cmV0dXJuIGEuZGF0YXNldC52aWV3SWQ9ZS5pZCxhfWFzeW5jIGNhbGxPbkFjdGl2YXRlKGUsdCxhKXtsZXQgcj1lO2lmKHR5cGVvZiByLm9uQWN0aXZhdGU9PSJmdW5jdGlvbiIpe2xldCBuPXthcHB1aTp0aGlzLmFwcHVpLHZpZXdJZDp0LHBhcmFtczphfTthd2FpdCByLm9uQWN0aXZhdGUobil9fXJlbmRlclZpZXcoZSx0KXtsZXQgYT10aGlzLnZpZXdzLmdldChlKTtpZighYSlyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDt0LmlubmVySFRNTD0iIjtsZXQgcixuPWEuY29udGVudDtpZih0eXBlb2Ygbj09InN0cmluZyIpcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KG4pO2Vsc2UgaWYodHlwZW9mIG49PSJmdW5jdGlvbiIpaWYobi5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClyPW5ldyBuO2Vsc2V7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixvLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IGw9bigpO2gxKGwsbykscj1vfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2V9ImApLG51bGw7cmV0dXJuIHQuYXBwZW5kQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuc2V0KGUsciksdGhpcy5jdXJyZW50Vmlld0lkPWUscn1nZXRDdXJyZW50Vmlld0lkKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZH1nZXRJbnN0YW5jZShlKXtyZXR1cm4gdGhpcy5pbnN0YW5jZXMuZ2V0KGUpfWNsZWFySW5zdGFuY2UoZSl7bGV0IHQ9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHRoaXMuaW5zdGFuY2VzLmRlbGV0ZShlKSx0aGlzLmN1cnJlbnRWaWV3SWQ9PT1lJiYodGhpcy5jdXJyZW50Vmlld0lkPW51bGwpfWNsZWFySW5zdGFuY2VzKCl7Zm9yKGxldFtlLHRdb2YgdGhpcy5pbnN0YW5jZXMpdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7dGhpcy5pbnN0YW5jZXMuY2xlYXIoKSx0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbH11bnJlZ2lzdGVyKGUpe3JldHVybiB0aGlzLmNsZWFySW5zdGFuY2UoZSksdGhpcy52aWV3cy5kZWxldGUoZSl9Y2xlYXIoKXt0aGlzLnZpZXdzLmNsZWFyKCksdGhpcy5jbGVhckluc3RhbmNlcygpfWhhcyhlKXtyZXR1cm4gdGhpcy52aWV3cy5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy52aWV3cy5zaXplfX19KTt2YXIgcXZhLGp2YT1nKCgpPT57cGUoKTtxdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1tYWlubWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tbWFpbm1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgIC5sb2dvSWNvbj0keyJsdWNpZGU6Ym94In0KICAgICAgLmxvZ29UZXh0PSR7IkFjbWUgQXBwIn0KICAgICAgLm1lbnVHcm91cHM9JHtbe3RhYnM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRhc2hib2FyZCIpLCJhY3Rpb24iKX0se2tleToiSW5ib3giLGljb25OYW1lOiJsdWNpZGU6aW5ib3giLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5ib3giKSwiYWN0aW9uIil9XX0se25hbWU6IldvcmtzcGFjZSIsdGFiczpbe2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlByb2plY3RzIiksImFjdGlvbiIpfSx7a2V5OiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUYXNrcyIpLCJhY3Rpb24iKX0se2tleToiRG9jdW1lbnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50cyIpLCJhY3Rpb24iKX1dfSx7bmFtZToiQW5hbHl0aWNzIix0YWJzOlt7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIiksImFjdGlvbiIpfSx7a2V5OiJJbnNpZ2h0cyIsaWNvbk5hbWU6Imx1Y2lkZTpsaWdodGJ1bGIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSW5zaWdodHMiKSwiYWN0aW9uIil9XX1dfQogICAgICAuYm90dG9tVGFicz0ke1t7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9XX0KICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIHA0LFhuLGxlcyxWbnQ9ZygoKT0+e3ZvKCk7YTQoKTtHbigpO3BlKCk7ZnIoKTtqdmEoKTtodCgpO3A0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxYbj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1tYWlubWVudSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlNYWlubWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpBcnJheX0pXSx5PVtMKHt0eXBlOkFycmF5fSldLE49W0woKV0sTz1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scDQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibG9nb0ljb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sb2dvSWNvbiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmxvZ29JY29uPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxwNCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJsb2dvVGV4dCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MubG9nb1RleHQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHA0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWVudUdyb3VwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm1lbnVHcm91cHMsImdldCIpLHNldDppKChTLEkpPT57Uy5tZW51R3JvdXBzPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxwNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImJvdHRvbVRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ib3R0b21UYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYm90dG9tVGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZikscDQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLHA0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkVGFiImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRUYWIsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFRhYj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXykscDQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbGxhcHNlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmNvbGxhcHNlZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSkscDQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1xdmE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Ybih0aGlzLG8sIiIpO2dldCBsb2dvSWNvbigpe3JldHVybiB0aGlzLiNlfXNldCBsb2dvSWNvbihrKXt0aGlzLiNlPWt9I3Q9KFhuKHRoaXMsbCksWG4odGhpcyxkLCIiKSk7Z2V0IGxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ29UZXh0KGspe3RoaXMuI3Q9a30jYT0oWG4odGhpcyx1KSxYbih0aGlzLGIsW10pKTtnZXQgbWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBtZW51R3JvdXBzKGspe3RoaXMuI2E9a30jcz0oWG4odGhpcyx2KSxYbih0aGlzLG0sW10pKTtnZXQgYm90dG9tVGFicygpe3JldHVybiB0aGlzLiNzfXNldCBib3R0b21UYWJzKGspe3RoaXMuI3M9a30jaT0oWG4odGhpcyxmKSxYbih0aGlzLE0sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzKGspe3RoaXMuI2k9a30jcj0oWG4odGhpcyx6KSxYbih0aGlzLEMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3I9a30jbz0oWG4odGhpcyxfKSxYbih0aGlzLCQsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNlZChrKXt0aGlzLiNvPWt9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmcpOwogICAgICAgIC0tdG9vbHRpcC1mZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHotaW5kZXg6ICR7Ym8uZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29JY29uIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBNaWRkbGUgU2VjdGlvbiAoc2Nyb2xsYWJsZSkgKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubWVudUdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCb3R0b20gU2VjdGlvbiAqLwogICAgICAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7Uz0+eyRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKFMsW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP3dgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/d2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChrPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke2submFtZT93YDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke2submFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtrLml0ZW1zLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKGs9PnRoaXMucmVuZGVyVGFiKGspKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihrKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtrPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihrKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtrLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtrLmtleX08L3NwYW4+CiAgICAgICAgJHtrLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtrLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtrLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtrLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoUz0+Uy5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKGspe3RoaXMuc2VsZWN0ZWRUYWI9ayx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjprfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBrPXRoaXMuZ2V0QWxsVGFicygpO2subGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKGtbMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxYbih0aGlzLEUpfXN0YXRpY3tYbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgVnZhLFV2YT1nKCgpPT57cGUoKTtWdmE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBjb2RlIHsKICAgICAgYmFja2dyb3VuZDogIzI3MjcyYTsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHVsIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAuaGVhZGluZz0keyJQcm9qZWN0cyJ9CiAgICAgIC5ncm91cHM9JHtbe25hbWU6Ik5hdmlnYXRpb24iLGljb25OYW1lOiJsdWNpZGU6Y29tcGFzcyIsaXRlbXM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIGNsaWNrZWQiKSwiYWN0aW9uIiksYmFkZ2U6MyxiYWRnZVZhcmlhbnQ6Indhcm5pbmcifSx7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMgY2xpY2tlZCIpLCJhY3Rpb24iKSxiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MifSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBOZXcgY2xpY2tlZCEiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBEYXRhIGNsaWNrZWQhIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiRGVsZXRlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGl0ZW1zPyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJEZWxldGVkISIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiU3RhdHVzIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFjdGl2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja0NpcmNsZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOmkocz0+Y29uc29sZS5sb2coIlNob3cgQWN0aXZlOiIscyksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShzPT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLHMpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6aShzPT5jb25zb2xlLmxvZygiU2VsZWN0ZWQgY2F0ZWdvcmllczoiLHMpLCJvbkNoYW5nZSIpfV19LHtuYW1lOiJSZXNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6Ym9va09wZW4iLGNvbGxhcHNlZDohMCxpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IkRvY3VtZW50YXRpb24ifSx7dHlwZToibGluayIsa2V5OiJBUEkgUmVmZXJlbmNlIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixocmVmOiJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kb2NzIn0se3R5cGU6ImxpbmsiLGtleToiVXNlciBHdWlkZSIsaWNvbk5hbWU6Imx1Y2lkZTpib29rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZ3VpZGUifSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdXBwb3J0In0se3R5cGU6ImxpbmsiLGtleToiSGVscCBDZW50ZXIiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsaHJlZjoiL2hlbHAiLGV4dGVybmFsOiExfSx7dHlwZToibGluayIsa2V5OiJHaXRIdWIgSXNzdWVzIixpY29uTmFtZToibHVjaWRlOmdpdGh1YiIsaHJlZjoiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvaXNzdWVzIn1dfV19CiAgICAgIEBpdGVtLXNlbGVjdD0ke3M9PmNvbnNvbGUubG9nKCJUYWIgc2VsZWN0ZWQ6IixzLmRldGFpbCl9CiAgICAgIEBhY3Rpb24tY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiQWN0aW9uIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgIEBmaWx0ZXItdG9nZ2xlPSR7cz0+Y29uc29sZS5sb2coIkZpbHRlciB0b2dnbGVkOiIscy5kZXRhaWwpfQogICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIk11bHRpLWZpbHRlciBjaGFuZ2VkOiIscy5kZXRhaWwpfQogICAgICBAbGluay1jbGljaz0ke3M9PmNvbnNvbGUubG9nKCJMaW5rIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+CiAgICAgIDxwPlRoaXMgZGVtbyBzaG93Y2FzZXMgYWxsIDggaXRlbSB0eXBlczo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiAtIEJsdWUgYWN0aW9ucyAoQWN0aW9ucyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IHdpdGggPGNvZGU+dmFyaWFudDogJ2Rhbmdlcic8L2NvZGU+IC0gUmVkIGRhbmdlciBhY3Rpb248L2xpPgogICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5tdWx0aUZpbHRlcjwvY29kZT4gLSBDb2xsYXBzaWJsZSBtdWx0aS1zZWxlY3QgKENhdGVnb3JpZXMpPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZGl2aWRlcjwvY29kZT4gLSBWaXN1YWwgc2VwYXJhdG9yczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmxpbms8L2NvZGU+IC0gRXh0ZXJuYWwvaW50ZXJuYWwgbGlua3MgKFJlc291cmNlcyBncm91cCk8L2xpPgogICAgICA8L3VsPgogICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEJ1LEJvLGNlcyxVbnQ9ZygoKT0+e3ZvKCk7YTQoKTtmcigpO0dhKCk7cGUoKTtVdmEoKTtodCgpO0J1PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxCbz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sY2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W107dmFyIEk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVNlY29uZGFyeW1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOkFycmF5fSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCh7dHlwZTpPYmplY3R9KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sQnUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJoZWFkaW5nImluIFIsImhhcyIpLGdldDppKFI9PlIuaGVhZGluZywiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmhlYWRpbmc9S30sInNldCIpfSxtZXRhZGF0YTpQfSxvLGwpLEJ1KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFI9PiJncm91cHMiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5ncm91cHMsImdldCIpLHNldDppKChSLEspPT57Ui5ncm91cHM9S30sInNldCIpfSxtZXRhZGF0YTpQfSxkLHUpLEJ1KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0aW9uT3B0aW9ucyJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLnNlbGVjdGlvbk9wdGlvbnMsImdldCIpLHNldDppKChSLEspPT57Ui5zZWxlY3Rpb25PcHRpb25zPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sYix2KSxCdSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4ic2VsZWN0ZWRJdGVtImluIFIsImhhcyIpLGdldDppKFI9PlIuc2VsZWN0ZWRJdGVtLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1Iuc2VsZWN0ZWRJdGVtPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sbSxmKSxCdSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZEdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkR3JvdXBzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkR3JvdXBzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkR3JvdXBzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sTSx6KSxCdSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZE11bHRpRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShSPT4iY29sbGFwc2VkTXVsdGlGaWx0ZXJzImluIFIsImhhcyIpLGdldDppKFI9PlIuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPUt9LCJzZXQiKX0sbWV0YWRhdGE6UH0sQyxfKSxCdSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlckNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+InJlbmRlckNvdW50ZXIiaW4gUiwiaGFzIiksZ2V0OmkoUj0+Ui5yZW5kZXJDb3VudGVyLCJnZXQiKSxzZXQ6aSgoUixLKT0+e1IucmVuZGVyQ291bnRlcj1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LCQsRSksQnUodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUj0+ImNvbGxhcHNlZCJpbiBSLCJoYXMiKSxnZXQ6aShSPT5SLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFIsSyk9PntSLmNvbGxhcHNlZD1LfSwic2V0Iil9LG1ldGFkYXRhOlB9LGssUyksQnUobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6UH0sbnVsbCx0KSxJPWE9ZS52YWx1ZSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX1zdGF0aWMgZGVtbz1WdmE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Cbyh0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKFApe3RoaXMuI2U9UH0jdD0oQm8odGhpcyxsKSxCbyh0aGlzLGQsW10pKTtnZXQgZ3JvdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGdyb3VwcyhQKXt0aGlzLiN0PVB9I2E9KEJvKHRoaXMsdSksQm8odGhpcyxiLFtdKSk7Z2V0IHNlbGVjdGlvbk9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0aW9uT3B0aW9ucyhQKXt0aGlzLiNhPVB9I3M9KEJvKHRoaXMsdiksQm8odGhpcyxtLG51bGwpKTtnZXQgc2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkSXRlbShQKXt0aGlzLiNzPVB9I2k9KEJvKHRoaXMsZiksQm8odGhpcyxNLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkR3JvdXBzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbGxhcHNlZEdyb3VwcyhQKXt0aGlzLiNpPVB9I3I9KEJvKHRoaXMseiksQm8odGhpcyxDLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycyhQKXt0aGlzLiNyPVB9I289KEJvKHRoaXMsXyksQm8odGhpcywkLDApKTtnZXQgcmVuZGVyQ291bnRlcigpe3JldHVybiB0aGlzLiNvfXNldCByZW5kZXJDb3VudGVyKFApe3RoaXMuI289UH0jbj0oQm8odGhpcyxFKSxCbyh0aGlzLGssITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbGxhcHNlZChQKXt0aGlzLiNuPVB9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQ6IDI0MHB4OwogICAgICAgIC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS1zaWRlYmFyLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgLS1zaWRlYmFyLWZnOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICAtLXNpZGViYXItZmctbXV0ZWQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgLS1zaWRlYmFyLWZnLWFjdGl2ZTogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tc2lkZWJhci1ib3JkZXI6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgLS1zaWRlYmFyLWhvdmVyOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICAtLXNpZGViYXItYWN0aXZlOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgLS1zaWRlYmFyLWFjY2VudDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIC0tdG9vbHRpcC1iZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWJnKTsKICAgICAgICAtLXRvb2x0aXAtZmc6IHZhcigtLWRlZXMtY29sb3ItdG9vbHRpcC1mZyk7CgogICAgICAgIC8qIEJhZGdlIGNvbG9ycyAqLwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICAtLWJhZGdlLWRlZmF1bHQtZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1mZyk7CiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgICAtLWJhZGdlLXdhcm5pbmctYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItYmcpOwogICAgICAgIC0tYmFkZ2UtZXJyb3ItZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwoKICAgICAgICAvKiBBY3Rpb24gY29sb3JzICovCiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeTogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICAgIC0tYWN0aW9uLXByaW1hcnktaG92ZXI6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzYwYTVmYSIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXI6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXItaG92ZXI6ICR7aC5iZFRoZW1lKCIjYjkxYzFjIiwiI2Y4NzE3MSIpfTsKCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZyk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGxhYmxlIE1lbnUgU2VjdGlvbiAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpob3ZlciB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIHBhZGRpbmc6IDdweCAxMXB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6bm90KC5jb2xsYXBzZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXdhcm0pOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtd2FybSk7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC13YXJtKTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLyogSGlkZSBncm91cCBoZWFkZXJzIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEdyb3VwIEl0ZW1zIENvbnRhaW5lciAqLwogICAgICAuZ3JvdXBJdGVtcyB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXJnaW4gMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBJdGVtcy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBBbHdheXMgc2hvdyBpdGVtcyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKHJlZ2FyZGxlc3Mgb2YgZ3JvdXAgY29sbGFwc2Ugc3RhdGUpICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBJdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBNZW51IEl0ZW0gQmFzZSAqLwogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5LWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNywgOTksIDIzNSwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlci1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogRmlsdGVyIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAvKiBNdWx0aS1GaWx0ZXIgQ29udGFpbmVyICovCiAgICAgIC5tdWx0aUZpbHRlciB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKi8KICAgICAgLm1lbnVEaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7CiAgICAgICAgbWFyZ2luOiA4cHggNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIvTGFiZWwgKi8KICAgICAgLm1lbnVIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUhlYWRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGluayBJdGVtICovCiAgICAgIC5tZW51SXRlbS5saW5rIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgbWVudSBpdGVtIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCwKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tdWx0aUZpbHRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC5pdGVtLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbTpob3ZlciAuaXRlbS10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOwogICAgICB9CgogICAgICAvKiBCYWRnZSBTdHlsZXMgKi8KICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMZWdhY3kgb3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLmxlZ2FjeU9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyIChsZWdhY3kpICovCiAgICAgIC5kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5ncm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeU9wdGlvbnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyR3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncm91cHMubWFwKFA9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9Imdyb3VwSGVhZGVyICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFAubmFtZSk/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlR3JvdXAoUC5uYW1lKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJncm91cFRpdGxlIj4KICAgICAgICAgICAgICAke1AuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihQLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgJHtQLm5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBJdGVtcyAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhQLm5hbWUpPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICR7UC5pdGVtcy5tYXAoUj0+dGhpcy5yZW5kZXJJdGVtKFIsUCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJJdGVtKFAsUil7aWYoImhpZGRlbiJpbiBQJiZQLmhpZGRlbilyZXR1cm4gd2BgO3N3aXRjaCgidHlwZSJpbiBQP1AudHlwZToidGFiIil7Y2FzZSJhY3Rpb24iOnJldHVybiB0aGlzLnJlbmRlckFjdGlvbkl0ZW0oUCk7Y2FzZSJmaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oUCk7Y2FzZSJtdWx0aUZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIHRoaXMucmVuZGVyRGl2aWRlcigpO2Nhc2UiaGVhZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJIZWFkZXIoUCk7Y2FzZSJsaW5rIjpyZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShQKTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oUCxSKX19cmVuZGVyVGFiSXRlbShQLFIpe2xldCBLPXRoaXMuc2VsZWN0ZWRJdGVtPy5rZXk9PT1QLmtleSxWPVAuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSAke0s/InNlbGVjdGVkIjoiIn0gJHtWPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IVYmJnRoaXMuc2VsZWN0VGFiSXRlbShQLFIpfSIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Vz0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShXLFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1AuYmFkZ2UhPT12b2lkIDA/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke1AuYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke1AuYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtQLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25JdGVtKFApe2xldCBSPVAudmFyaWFudHx8InByaW1hcnkiLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGFjdGlvbi0ke1J9ICR7Sz8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFLJiZ0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbHRlckl0ZW0oUCl7bGV0IFI9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGZpbHRlciAke1AuYWN0aXZlPyJhY3RpdmUiOiIifSAke1I/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hUiYmdGhpcy5oYW5kbGVGaWx0ZXJUb2dnbGUoUCl9IgogICAgICA+CiAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7UC5rZXl9PC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1jaGVja2JveCAke1AuYWN0aXZlPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgJHtQLmFjdGl2ZT93YDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFApe2xldCBSPXRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLmhhcyhQLmtleSksSz1QLm9wdGlvbnMuZmlsdGVyKFY9PlYuY2hlY2tlZCkubGVuZ3RoO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlciI+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLWhlYWRlciAke1I/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZU11bHRpRmlsdGVyKFAua2V5KX0iCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLXRpdGxlIj4KICAgICAgICAgICAgJHtQLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke1Aua2V5fQogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgJHtLPjA/d2A8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItY291bnQiPiR7S308L3NwYW4+YDoiIn0KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9ucyAke1I/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICR7UC5vcHRpb25zLm1hcChWPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbiIKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoUCxWLmtleSl9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNoZWNrYm94ICR7Vi5jaGVja2VkPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgICAgICAgJHtWLmNoZWNrZWQ/d2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke1YuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIGNsYXNzPSJvcHRpb24taWNvbiIgLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFYuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8c3Bhbj4ke1YubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGl2aWRlcigpe3JldHVybiB3YDxkaXYgY2xhc3M9Im1lbnVEaXZpZGVyIj48L2Rpdj5gfXJlbmRlckhlYWRlcihQKXtyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51SGVhZGVyIj4ke1AubGFiZWx9PC9kaXY+YH1yZW5kZXJMaW5rSXRlbShQKXtsZXQgUj1QLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpLEs9UC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGxpbmsgJHtLPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUsmJnRoaXMuaGFuZGxlTGlua0NsaWNrKFApfSIKICAgICAgPgogICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFAuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Aua2V5fTwvc3Bhbj4KICAgICAgICAke1I/d2A8ZGVlcy1pY29uIGNsYXNzPSJleHRlcm5hbC1pY29uIiAuaWNvbj0iJHsibHVjaWRlOmV4dGVybmFsTGluayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7UC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGVnYWN5T3B0aW9ucygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsZWdhY3lPcHRpb25zIj4KICAgICAgICAke3RoaXMuc2VsZWN0aW9uT3B0aW9ucy5tYXAoUD0+e2lmKCJkaXZpZGVyImluIFAmJlAuZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj5gO2xldCBSPVAsSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9uLGJhZGdlOlIuYmFkZ2UsYmFkZ2VWYXJpYW50OlIuYmFkZ2VWYXJpYW50fTtyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKEspfSl9CiAgICAgIDwvZGl2PgogICAgYH1ub3JtYWxpemVJY29uKFApe3JldHVybiBQLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9QOmBsdWNpZGU6JHtQfWB9dG9nZ2xlR3JvdXAoUCl7bGV0IFI9bmV3IFNldCh0aGlzLmNvbGxhcHNlZEdyb3Vwcyk7Ui5oYXMoUCk/Ui5kZWxldGUoUCk6Ui5hZGQoUCksdGhpcy5jb2xsYXBzZWRHcm91cHM9Un10b2dnbGVNdWx0aUZpbHRlcihQKXtsZXQgUj1uZXcgU2V0KHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzKTtSLmhhcyhQKT9SLmRlbGV0ZShQKTpSLmFkZChQKSx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1SfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXNlbGVjdFRhYkl0ZW0oUCxSKXt0aGlzLnNlbGVjdGVkSXRlbT1QLFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06UCxncm91cDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGhhbmRsZUFjdGlvbkNsaWNrKFApe1AuY29uZmlybU1lc3NhZ2UmJiF3aW5kb3cuY29uZmlybShQLmNvbmZpcm1NZXNzYWdlKXx8KGF3YWl0IFAuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZUZpbHRlclRvZ2dsZShQKXtsZXQgUj0hUC5hY3RpdmU7UC5hY3RpdmU9UixQLm9uVG9nZ2xlKFIpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlci10b2dnbGUiLHtkZXRhaWw6e2l0ZW06UCxhY3RpdmU6Un0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShQLFIpe2xldCBLPVAub3B0aW9ucy5maW5kKFc9Plcua2V5PT09Uik7SyYmKEsuY2hlY2tlZD0hSy5jaGVja2VkKTtsZXQgVj1QLm9wdGlvbnMuZmlsdGVyKFc9PlcuY2hlY2tlZCkubWFwKFc9Plcua2V5KTtQLm9uQ2hhbmdlKFYpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm11bHRpZmlsdGVyLWNoYW5nZSIse2RldGFpbDp7aXRlbTpQLHNlbGVjdGVkS2V5czpWfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUxpbmtDbGljayhQKXtQLmV4dGVybmFsPz9QLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpP3dpbmRvdy5vcGVuKFAuaHJlZiwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpOndpbmRvdy5sb2NhdGlvbi5ocmVmPVAuaHJlZix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsaW5rLWNsaWNrIix7ZGV0YWlsOntpdGVtOlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGV4dE1lbnUoUCxSKXskYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhQLFt7bmFtZToiVmlldyBkZXRhaWxzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksaWNvbk5hbWU6Imx1Y2lkZTpleWUifSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIn1dKX1hc3luYyBmaXJzdFVwZGF0ZWQoUCl7aWYoYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKFApLHRoaXMuZ3JvdXBzLmxlbmd0aD4wKXtsZXQgUj1uZXcgU2V0LEs9bmV3IFNldDtpZih0aGlzLmdyb3Vwcy5mb3JFYWNoKFY9PntWLmNvbGxhcHNlZCYmUi5hZGQoVi5uYW1lKSxWLml0ZW1zLmZvckVhY2goVz0+e2lmKCJ0eXBlImluIFcmJlcudHlwZT09PSJtdWx0aUZpbHRlciIpe2xldCBtZT1XO21lLmNvbGxhcHNlZCYmSy5hZGQobWUua2V5KX19KX0pLHRoaXMuY29sbGFwc2VkR3JvdXBzPVIsdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9SywhdGhpcy5zZWxlY3RlZEl0ZW0pZm9yKGxldCBWIG9mIHRoaXMuZ3JvdXBzKWZvcihsZXQgVyBvZiBWLml0ZW1zKXtsZXQgbWU9InR5cGUiaW4gVz9XLnR5cGU6InRhYiI7aWYobWU9PT0idGFiInx8bWU9PT12b2lkIDApe2xldCBCPVc7aWYoIUIuZGlzYWJsZWQpe3RoaXMuc2VsZWN0VGFiSXRlbShCLFYpO3JldHVybn19fX1lbHNlIGlmKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGg+MCl7bGV0IFI9dGhpcy5zZWxlY3Rpb25PcHRpb25zLmZpbmQoSz0+ISgiZGl2aWRlciJpbiBLKSk7aWYoUiYmIXRoaXMuc2VsZWN0ZWRJdGVtKXtsZXQgSz17a2V5OlIua2V5LGljb25OYW1lOlIuaWNvbk5hbWUsYWN0aW9uOlIuYWN0aW9ufTt0aGlzLnNlbGVjdFRhYkl0ZW0oSyl9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQm8odGhpcyxTKX1zdGF0aWN7Qm8oYSx0KX19O3JldHVybiBJPWF9KSgpfSk7dmFyIHQ3LFFjLFpWbyxYVm8sV3ZhLEd2YT1nKCgpPT57cGUoKTthNCgpO3Q3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxRYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sWlZvPSgoKT0+e2xldCBzPVtuZSgiZGVtby1jbG9zZWFibGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQ2xvc2VhYmxlVGFicyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSx0Nyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InRhYnMiaW4gdiwiaGFzIiksZ2V0Omkodj0+di50YWJzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YudGFicz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksdDcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJ0YWJDb3VudGVyImluIHYsImhhcyIpLGdldDppKHY9PnYudGFiQ291bnRlciwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnRhYkNvdW50ZXI9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLHQ3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9I2U9UWModGhpcyxvLFt7a2V5OiJNYWluIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWFpbiBjbGlja2VkIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoYil7dGhpcy4jZT1ifSN0PShRYyh0aGlzLGwpLFFjKHRoaXMsZCwwKSk7Z2V0IHRhYkNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGFiQ291bnRlcihiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTthZGRUYWIoKXt0aGlzLnRhYkNvdW50ZXIrKztsZXQgYj1gRG9jdW1lbnQgJHt0aGlzLnRhYkNvdW50ZXJ9YDt0aGlzLnRhYnM9Wy4uLnRoaXMudGFicyx7a2V5OmIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYCR7Yn0gY2xpY2tlZGApLCJhY3Rpb24iKSxjbG9zZWFibGU6ITAsb25DbG9zZTppKCgpPT50aGlzLnJlbW92ZVRhYihiKSwib25DbG9zZSIpfV19cmVtb3ZlVGFiKGIpe3RoaXMudGFicz10aGlzLnRhYnMuZmlsdGVyKHY9PnYua2V5IT09Yil9Y2xlYXJBbGwoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS10YWJzIik/LmNsZWFyKCksdGhpcy50YWJzPVtdLHRoaXMudGFiQ291bnRlcj0wfXJlbmRlcigpe2xldCBiPVt7aWQ6ImFkZCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+dGhpcy5hZGRUYWIoKSwiYWN0aW9uIiksdG9vbHRpcDoiTmV3IFRhYiJ9LHtpZDoiY2xlYXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aSgoKT0+dGhpcy5jbGVhckFsbCgpLCJhY3Rpb24iKSx0b29sdGlwOiJDbGVhciBBbGwgVGFicyJ9XTtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtifQogICAgICAgIEB0YWItY2xvc2U9JHt2PT50aGlzLnJlbW92ZVRhYih2LmRldGFpbC50YWIua2V5KX0KICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBDbGljayB0aGUgWCBidXR0b24gb24gdGFicyB0byBjbG9zZSB0aGVtLiBVc2UgdGhlICsgYnV0dG9uIHRvIGFkZCB0YWJzIGFuZCB0aGUgdHJhc2ggYnV0dG9uIHRvIGNsZWFyIGFsbC4KICAgICAgICA8YnI+Q3VycmVudCB0YWJzOiAke3RoaXMudGFicy5sZW5ndGh9CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUWModGhpcyx1KX1zdGF0aWN7UWMoYSx0KX19O3JldHVybiBjPWF9KSgpLFhWbz0oKCk9PntsZXQgcz1bbmUoImRlbW8tYXV0b2hpZGUtdGFicyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vQXV0b0hpZGVUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bWSgpXSxwPVtZKCldLGM9W1koKV0sdDcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0YWJzImluIGYsImhhcyIpLGdldDppKGY9PmYudGFicywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRhYnM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLHQ3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImF1dG9IaWRlImluIGYsImhhcyIpLGdldDppKGY9PmYuYXV0b0hpZGUsImdldCIpLHNldDppKChmLHkpPT57Zi5hdXRvSGlkZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksdDcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InRocmVzaG9sZCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnRocmVzaG9sZD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksdDcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx4PWE9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX0jZT1RYyh0aGlzLG8sW3trZXk6IlRhYiAxIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDEiKSwiYWN0aW9uIil9LHtrZXk6IlRhYiAyIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiVGFiIDIiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhtKXt0aGlzLiNlPW19I3Q9KFFjKHRoaXMsbCksUWModGhpcyxkLCEwKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGF1dG9IaWRlKG0pe3RoaXMuI3Q9bX0jYT0oUWModGhpcyx1KSxRYyh0aGlzLGIsMSkpO2dldCB0aHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGhyZXNob2xkKG0pe3RoaXMuI2E9bX1zdGF0aWMgc3R5bGVzPVtKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgZGVlcy1hcHB1aS10YWJzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAucGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTt0YWJDb3VudGVyPShRYyh0aGlzLHYpLDIpO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrLHRoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6YFRhYiAke3RoaXMudGFiQ291bnRlcn1gLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCksImFjdGlvbiIpfV19cmVtb3ZlTGFzdFRhYigpe3RoaXMudGFicy5sZW5ndGg+MCYmKHRoaXMudGFicz10aGlzLnRhYnMuc2xpY2UoMCwtMSkpfWNsZWFyVGFicygpe3RoaXMudGFicz1bXX1yZW5kZXIoKXtsZXQgbT10aGlzLmF1dG9IaWRlJiZ0aGlzLnRhYnMubGVuZ3RoPD10aGlzLnRocmVzaG9sZDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICR7bT93YDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlciI+VGFicyBoaWRkZW4gKCR7dGhpcy50YWJzLmxlbmd0aH0gdGFicyDiiaQgdGhyZXNob2xkICR7dGhpcy50aHJlc2hvbGR9KTwvc3Bhbj5gOndgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgICAgICAgIC5hdXRvSGlkZT0ke3RoaXMuYXV0b0hpZGV9CiAgICAgICAgICAgICAgLmF1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy50aHJlc2hvbGR9CiAgICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz5gfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkVGFiKCl9PisgQWRkIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTGFzdFRhYigpfT4tIFJlbW92ZSBUYWI8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmNsZWFyVGFicygpfT5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9MH19PlRocmVzaG9sZDogMDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0xfX0+VGhyZXNob2xkOiAxPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTJ9fT5UaHJlc2hvbGQ6IDI8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIEF1dG8taGlkZTogJHt0aGlzLmF1dG9IaWRlPyJPTiI6Ik9GRiJ9IHwgVGhyZXNob2xkOiAke3RoaXMudGhyZXNob2xkfSB8IFRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgICA8YnI+VGFicyB3aWxsIGhpZGUgd2hlbiBjb3VudCDiiaQgdGhyZXNob2xkLgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1FjKGEsdCl9fTtyZXR1cm4geD1hfSkoKSxXdmE9aSgoKT0+e2xldCBzPVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSG9tZSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkhlbHAgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGU9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZWN1cml0eSBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbnRlZ3JhdGlvbnMgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBZHZhbmNlZCBjbGlja2VkIiksImFjdGlvbiIpfV0sdD1be2tleToiQWxsIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFsbCBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb21wbGV0ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tpZDoiYmFjayIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd0xlZnQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQmFjayIpLCJhY3Rpb24iKSx0b29sdGlwOiJHbyBCYWNrIn1dLHI9W3tpZDoiYWRkIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWRkIHRhYiIpLCJhY3Rpb24iKSx0b29sdGlwOiJOZXcgVGFiIn0se2lkOiJzZWFyY2giLGljb25OYW1lOiJsdWNpZGU6c2VhcmNoIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNlYXJjaCIpLCJhY3Rpb24iKSx0b29sdGlwOiJTZWFyY2ggVGFicyJ9LHtpZDoiZGlzYWJsZWQiLGljb25OYW1lOiJsdWNpZGU6bG9jayIsYWN0aW9uOmkoKCk9Pnt9LCJhY3Rpb24iKSx0b29sdGlwOiJEaXNhYmxlZCBBY3Rpb24iLGRpc2FibGVkOiEwfV0sbj1pKG89PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OyI+CiAgICAgICR7b30KICAgIDwvZGl2PgogIGAsImRlbW9Db250ZW50Iik7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnR3by1jb2x1bW4gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMDBweCAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SG9yaXpvbnRhbCBUYWJzIHdpdGggQW5pbWF0ZWQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFicz0ke3N9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7bigiU2VsZWN0IGEgdGFiIHRvIHNlZSB0aGUgc21vb3RoIHNsaWRpbmcgYW5pbWF0aW9uIG9mIHRoZSBpbmRpY2F0b3IuIFRoZSBpbmRpY2F0b3IgYXV0b21hdGljYWxseSBhZGp1c3RzIGl0cyB3aWR0aCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgd2l0aCBtaW5pbWFsIHBhZGRpbmcuIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VGFicyB3aXRoIEFjdGlvbiBCdXR0b25zPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgLnRhYnM9JHtzfQogICAgICAgICAgLmFjdGlvbnNMZWZ0PSR7YX0KICAgICAgICAgIC5hY3Rpb25zUmlnaHQ9JHtyfQogICAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke24oIkFjdGlvbiBidXR0b25zIGNhbiBiZSBwbGFjZWQgb24gZWl0aGVyIHNpZGUgb2YgdGhlIHRhYiBiYXIuIFRoZXkgcmVtYWluIGZpeGVkIHdoaWxlIHRhYnMgc2Nyb2xsLiBUaGUgbG9jayBpY29uIHNob3dzIGEgZGlzYWJsZWQgYWN0aW9uLiIpfQogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsb3NlYWJsZSBUYWJzIHdpdGggQWN0aW9uczwvZGl2PgogICAgICAgIDxkZW1vLWNsb3NlYWJsZS10YWJzPjwvZGVtby1jbG9zZWFibGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdXRvLWhpZGUgVGFiczwvZGl2PgogICAgICAgIDxkZW1vLWF1dG9oaWRlLXRhYnM+PC9kZW1vLWF1dG9oaWRlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmVydGljYWwgVGFicyBMYXlvdXQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0d28tY29sdW1uIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnRhYlN0eWxlPSR7InZlcnRpY2FsIn0gLnRhYnM9JHtlfT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAgICR7bigiVmVydGljYWwgdGFicyB3b3JrIGdyZWF0IGZvciBzZXR0aW5ncyBwYWdlcyBhbmQgbmF2aWdhdGlvbiBtZW51cy4gVGhlIGFuaW1hdGVkIGluZGljYXRvciBzbW9vdGhseSB0cmFuc2l0aW9ucyBiZXR3ZWVuIHNlbGVjdGlvbnMuIil9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+V2l0aG91dCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC5zaG93VGFiSW5kaWNhdG9yPSR7ITF9IC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtuKCJUYWJzIGNhbiBhbHNvIGJlIHVzZWQgd2l0aG91dCB0aGUgYW5pbWF0ZWQgaW5kaWNhdG9yIGJ5IHNldHRpbmcgc2hvd1RhYkluZGljYXRvciB0byBmYWxzZS4iKX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBMMix2cixkZXMsV250PWcoKCk9PnthNCgpO3BlKCk7a3QoKTtHdmEoKTtodCgpO0wyPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSx2cj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aS10YWJzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W107dmFyIG1lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXBwdWlUYWJzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W0woe3R5cGU6QXJyYXl9KV0sSD1bTCh7dHlwZTpBcnJheX0pXSxJPVtZKCldLEs9W1koKV0sTDIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJ0YWJzImluIFUsImhhcyIpLGdldDppKFU9PlUudGFicywiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS50YWJzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LG8sbCksTDIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2VsZWN0ZWRUYWIiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5zZWxlY3RlZFRhYj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxkLHUpLEwyKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkluZGljYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic2hvd1RhYkluZGljYXRvciJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnNob3dUYWJJbmRpY2F0b3IsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2hvd1RhYkluZGljYXRvcj1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxiLHYpLEwyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiU3R5bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InRhYlN0eWxlImluIFUsImhhcyIpLGdldDppKFU9PlUudGFiU3R5bGUsImdldCIpLHNldDppKChVLGhlKT0+e1UudGFiU3R5bGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbSxmKSxMMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJhdXRvSGlkZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmF1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmF1dG9IaWRlPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE0seiksTDIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYXV0b0hpZGVUaHJlc2hvbGQiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5hdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5hdXRvSGlkZVRocmVzaG9sZD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLEwyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImFjdGlvbnNMZWZ0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc0xlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuYWN0aW9uc0xlZnQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sJCxFKSxMMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYWN0aW9uc1JpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmFjdGlvbnNSaWdodD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLEwyKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iY2FuU2Nyb2xsTGVmdCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmNhblNjcm9sbExlZnQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsTGVmdD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxQLFIpLEwyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+ImNhblNjcm9sbFJpZ2h0ImluIFUsImhhcyIpLGdldDppKFU9PlUuY2FuU2Nyb2xsUmlnaHQsImdldCIpLHNldDppKChVLGhlKT0+e1UuY2FuU2Nyb2xsUmlnaHQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sVixXKSxMMihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpCfSxudWxsLHQpLG1lPWE9ZS52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX1zdGF0aWMgZGVtbz1XdmE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT12cih0aGlzLG8sW10pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoQil7dGhpcy4jZT1CfSN0PSh2cih0aGlzLGwpLHZyKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKEIpe3RoaXMuI3Q9Qn0jYT0odnIodGhpcyx1KSx2cih0aGlzLGIsITApKTtnZXQgc2hvd1RhYkluZGljYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFiSW5kaWNhdG9yKEIpe3RoaXMuI2E9Qn0jcz0odnIodGhpcyx2KSx2cih0aGlzLG0sImhvcml6b250YWwiKSk7Z2V0IHRhYlN0eWxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRhYlN0eWxlKEIpe3RoaXMuI3M9Qn0jaT0odnIodGhpcyxmKSx2cih0aGlzLE0sITEpKTtnZXQgYXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b0hpZGUoQil7dGhpcy4jaT1CfSNyPSh2cih0aGlzLHopLHZyKHRoaXMsQywwKSk7Z2V0IGF1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGF1dG9IaWRlVGhyZXNob2xkKEIpe3RoaXMuI3I9Qn0jbz0odnIodGhpcyxfKSx2cih0aGlzLCQsW10pKTtnZXQgYWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aW9uc0xlZnQoQil7dGhpcy4jbz1CfSNuPSh2cih0aGlzLEUpLHZyKHRoaXMsayxbXSkpO2dldCBhY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWN0aW9uc1JpZ2h0KEIpe3RoaXMuI249Qn0jbD0odnIodGhpcyxTKSx2cih0aGlzLFAsITEpKTtnZXQgY2FuU2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLiNsfXNldCBjYW5TY3JvbGxMZWZ0KEIpe3RoaXMuI2w9Qn0jYz0odnIodGhpcyxSKSx2cih0aGlzLFYsITEpKTtnZXQgY2FuU2Nyb2xsUmlnaHQoKXtyZXR1cm4gdGhpcy4jY31zZXQgY2FuU2Nyb2xsUmlnaHQoQil7dGhpcy4jYz1CfXJlc2l6ZU9ic2VydmVyPSh2cih0aGlzLFcpLG51bGwpO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyLmhvcml6b250YWwtd3JhcHBlciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsIGZhZGUgaW5kaWNhdG9ycyAqLwogICAgICAuc2Nyb2xsLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAxcHg7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLWxlZnQgewogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtcmlnaHQgewogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9IDAlLAogICAgICAgICAgJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMCkiLCJyZ2JhKDIyLDIyLDIyLDApIil9IDEwMCUpOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUudmlzaWJsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1hcmVhIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAvKiBUYWIgYWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLnRhYi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9ucy5sZWZ0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbnMucmlnaHQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXByZXNzZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogU2hvdyBzY3JvbGxiYXIgb24gaG92ZXIgKi8KICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwKICAgICAgLnNjcm9sbC1hcmVhOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9OwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMzUpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjM1KSIpfTsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIudmVydGljYWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLmhvcml6b250YWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI0NCwgMjQ0LCAyNDUsIDAuNSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuNSkiKX07CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAudGFiSW5kaWNhdG9yIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CiAgICAgIAogICAgICAudGFiSW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwOwogICAgICAgIHotaW5kZXg6IDM7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbC13cmFwcGVyIC50YWJJbmRpY2F0b3IgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCk7CiAgICAgIH0KCiAgICAgIC8qIENsb3NlIGJ1dHRvbiAqLwogICAgICAudGFiLWNsb3NlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1wcmVzc2VkKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMuYXV0b0hpZGVUaHJlc2hvbGQ/d2BgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfQogICAgYH1yZW5kZXJUYWJzV3JhcHBlcigpe2xldCBCPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCIsVT1CPyJ0YWJzLXdyYXBwZXIgaG9yaXpvbnRhbC13cmFwcGVyIjoidmVydGljYWwtd3JhcHBlciIsaGU9YHRhYnNDb250YWluZXIgJHt0aGlzLnRhYlN0eWxlfWA7aWYoQil7bGV0IEY9dGhpcy5hY3Rpb25zTGVmdCYmdGhpcy5hY3Rpb25zTGVmdC5sZW5ndGg+MCxqPXRoaXMuYWN0aW9uc1JpZ2h0JiZ0aGlzLmFjdGlvbnNSaWdodC5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICAgICR7Rj90aGlzLnJlbmRlckFjdGlvbnModGhpcy5hY3Rpb25zTGVmdCwibGVmdCIpOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWFyZWEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1sZWZ0ICR7dGhpcy5jYW5TY3JvbGxMZWZ0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgICAke3RoaXMudGFicy5tYXAodWU9PnRoaXMucmVuZGVyVGFiKHVlLEIpKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1mYWRlIHNjcm9sbC1mYWRlLXJpZ2h0ICR7dGhpcy5jYW5TY3JvbGxSaWdodD8idmlzaWJsZSI6IiJ9Ij48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtqP3RoaXMucmVuZGVyQWN0aW9ucyh0aGlzLmFjdGlvbnNSaWdodCwicmlnaHQiKToiIn0KICAgICAgICAgICR7dGhpcy5zaG93VGFiSW5kaWNhdG9yP3dgPGRpdiBjbGFzcz0idGFiSW5kaWNhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSIke1V9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSIke2hlfSI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoRj0+dGhpcy5yZW5kZXJUYWIoRixCKSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25zKEIsVSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb25zICR7VX0iPgogICAgICAgICR7Qi5tYXAoaGU9PndgCiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWItYWN0aW9uLWJ1dHRvbiAke2hlLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0aXRsZT0iJHtoZS50b29sdGlwfHxoZS5pZH0iCiAgICAgICAgICAgIEBjbGljaz0keygpPT4haGUuZGlzYWJsZWQmJmhlLmFjdGlvbigpfQogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7aGUuaWNvbk5hbWV9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoQixVKXtsZXQgRj1gdGFiICR7Qj09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn1gLGo9Qi5jbG9zZWFibGU/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSIke2xlPT50aGlzLmNsb3NlVGFiKGxlLEIpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48L2RlZXMtaWNvbj4KICAgICAgPC9zcGFuPgogICAgYDoiIix1ZT1VP3dgCiAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY29udGVudCI+CiAgICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oQil9CiAgICAgICAgJHtCLmtleX0KICAgICAgPC9zcGFuPgogICAgICAke2p9CiAgICBgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKEIpfQogICAgICAke0Iua2V5fQogICAgICAke2p9CiAgICBgO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IiR7Rn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdFRhYihCKX0iCiAgICAgID4KICAgICAgICAke3VlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGFiSWNvbihCKXtyZXR1cm4gQi5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtCLmljb25OYW1lfT48L2RlZXMtaWNvbj5gOiIifXNlbGVjdFRhYihCKXt0aGlzLnNlbGVjdGVkVGFiPUIsQi5hY3Rpb24oKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNjcm9sbFRhYkludG9WaWV3KEIpfSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOkJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xlYXIoKXt0aGlzLnRhYnM9W10sdGhpcy5zZWxlY3RlZFRhYj1udWxsfWNsb3NlVGFiKEIsVSl7Qi5zdG9wUHJvcGFnYXRpb24oKSxVLm9uQ2xvc2UmJlUub25DbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDp7dGFiOlV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjt0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pO2xldCBCPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpO0ImJnRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShCKX1oYW5kbGVTY3JvbGw9aSgoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0sImhhbmRsZVNjcm9sbCIpO3VwZGF0ZVNjcm9sbFN0YXRlKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7aWYoIUIpcmV0dXJuO2xldCBVPUIuc2Nyb2xsTGVmdCxoZT1CLnNjcm9sbFdpZHRoLEY9Qi5jbGllbnRXaWR0aCxqPTI7dGhpcy5jYW5TY3JvbGxMZWZ0PVU+aix0aGlzLmNhblNjcm9sbFJpZ2h0PVU8aGUtRi1qfXNjcm9sbFRhYkludG9WaWV3KEIpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO2xldCBVPXRoaXMudGFicy5pbmRleE9mKEIpO2lmKFU9PT0tMSlyZXR1cm47bGV0IGhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpLEY9aGU/LnF1ZXJ5U2VsZWN0b3IoYC50YWI6bnRoLWNoaWxkKCR7VSsxfSlgKTtpZihGJiZoZSl7bGV0IGo9aGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdWU9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1ZS5sZWZ0Pj1qLmxlZnQmJnVlLnJpZ2h0PD1qLnJpZ2h0fHxGLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfX1hc3luYyB1cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksQi5oYXMoInRhYnMiKSYmKCF0aGlzLnRhYnN8fHRoaXMudGFicy5sZW5ndGg9PT0wP3RoaXMuc2VsZWN0ZWRUYWIhPT1udWxsJiYodGhpcy5zZWxlY3RlZFRhYj1udWxsLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpudWxsfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKTp0aGlzLnNlbGVjdGVkVGFiJiYhdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpP3RoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSk6dGhpcy5zZWxlY3RlZFRhYnx8dGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKSksKEIuaGFzKCJzZWxlY3RlZFRhYiIpfHxCLmhhcygidGFicyIpKSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsIXRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQmJmRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVRhYkluZGljYXRvcigpLHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pKX1pbmRpY2F0b3JJbml0aWFsaXplZD0hMTt1cGRhdGVUYWJJbmRpY2F0b3IoKXtpZighdGhpcy5zaG91bGRTaG93SW5kaWNhdG9yKCkpcmV0dXJuO2xldCBCPXRoaXMuZ2V0U2VsZWN0ZWRUYWJFbGVtZW50KCk7aWYoIUIpcmV0dXJuO2xldCBVPXRoaXMuZ2V0SW5kaWNhdG9yRWxlbWVudCgpO1UmJih0aGlzLmhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKFUpLHRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/dGhpcy51cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKFUsQik6dGhpcy51cGRhdGVWZXJ0aWNhbEluZGljYXRvcihVLEIpLFUuc3R5bGUub3BhY2l0eT0iMSIpfXNob3VsZFNob3dJbmRpY2F0b3IoKXtyZXR1cm4hIXRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2hvd1RhYkluZGljYXRvciYmdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpfWdldFNlbGVjdGVkVGFiRWxlbWVudCgpe2xldCBCPXRoaXMudGFicy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRUYWIpLGhlPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/YC50YWJzLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtCKzF9KWA6YC52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7QisxfSlgO3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihoZSl9Z2V0SW5kaWNhdG9yRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRhYkluZGljYXRvciIpfWhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKEIpe3RoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChCLmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntCLmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKX11cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPVUucXVlcnlTZWxlY3RvcigiLnRhYi1jb250ZW50Iik7aWYoIWhlKXJldHVybjtsZXQgRj1CLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaj1oZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1ZT1qLmxlZnQtRi5sZWZ0LGxlPWoud2lkdGgrOCxRPXVlLTQ7Qi5zdHlsZS53aWR0aD1gJHtsZX1weGAsQi5zdHlsZS5sZWZ0PWAke1F9cHhgfXVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKEIsVSl7bGV0IGhlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciIpO2hlJiYoQi5zdHlsZS50b3A9YCR7VS5vZmZzZXRUb3AraGUub2Zmc2V0VG9wfXB4YCxCLnN0eWxlLmhlaWdodD1gJHtVLmNsaWVudEhlaWdodH1weGApfXN0YXRpY3t2cihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIGg0LFFuLHVlcyxHbnQ9ZygoKT0+e2E0KCk7cGUoKTtrdCgpO1dudCgpO2h0KCk7aDQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx1ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWFwcHVpLW1haW5jb250ZW50IildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aU1haW5jb250ZW50Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpBcnJheX0pXSxoNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYnMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MudGFicz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksaDQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0ZWRUYWIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNlbGVjdGVkVGFiPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxoNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaG93VGFicyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNob3dUYWJzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxiLHYpLGg0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGUsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLGg0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLGg0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNMZWZ0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGFiQWN0aW9uc0xlZnQsImdldCIpLHNldDppKChTLEkpPT57Uy50YWJBY3Rpb25zTGVmdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksaDQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJBY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InRhYkFjdGlvbnNSaWdodCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkFjdGlvbnNSaWdodD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksaDQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgLnRhYnM9JHtbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyIpLCJhY3Rpb24iKX0se2tleToiRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkRldGFpbHMiKSwiYWN0aW9uIil9LHtrZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfV19CiAgICA+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjOyI+CiAgICAgICAgPGgxPk1haW4gQ29udGVudCBBcmVhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9UW4odGhpcyxvLFt7a2V5OiJcdTI2QTBcdUZFMEYgUGxlYXNlIHNldCB0YWJzIixhY3Rpb246aSgoKT0+Y29uc29sZS53YXJuKCJObyB0YWJzIGNvbmZpZ3VyZWQgZm9yIG1haW5jb250ZW50IiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoayl7dGhpcy4jZT1rfSN0PShRbih0aGlzLGwpLFFuKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKGspe3RoaXMuI3Q9a30jYT0oUW4odGhpcyx1KSxRbih0aGlzLGIsITApKTtnZXQgc2hvd1RhYnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1RhYnMoayl7dGhpcy4jYT1rfSNzPShRbih0aGlzLHYpLFFuKHRoaXMsbSwhMSkpO2dldCB0YWJzQXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFic0F1dG9IaWRlKGspe3RoaXMuI3M9a30jaT0oUW4odGhpcyxmKSxRbih0aGlzLE0sMCkpO2dldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFic0F1dG9IaWRlVGhyZXNob2xkKGspe3RoaXMuI2k9a30jcj0oUW4odGhpcyx6KSxRbih0aGlzLEMsW10pKTtnZXQgdGFiQWN0aW9uc0xlZnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGFiQWN0aW9uc0xlZnQoayl7dGhpcy4jcj1rfSNvPShRbih0aGlzLF8pLFFuKHRoaXMsJCxbXSkpO2dldCB0YWJBY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdGFiQWN0aW9uc1JpZ2h0KGspe3RoaXMuI289a31zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHt0aGlzLnRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7dGhpcy50YWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7az0+dGhpcy5oYW5kbGVUYWJTZWxlY3Qoayl9CiAgICAgICAgICAgIEB0YWItY2xvc2U9JHtrPT50aGlzLmhhbmRsZVRhYkNsb3NlKGspfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVUYWJTZWxlY3Qoayl7dGhpcy5zZWxlY3RlZFRhYj1rLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhYkNsb3NlKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDprLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSxrLmhhcygic2hvd1RhYnMiKSYmKHRoaXMuc2hvd1RhYnM/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm5vdGFicyIpOnRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKSl9YXN5bmMgZmlyc3RVcGRhdGVkKGspe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChrKSx0aGlzLnNob3dUYWJzfHx0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIik7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpO1MmJmF3YWl0IFMudXBkYXRlQ29tcGxldGV9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFFuKHRoaXMsRSl9c3RhdGlje1FuKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBxYSxUdCxwZXMsS3ZhPWcoKCk9PntwZSgpO2t0KCk7YTQoKTtIdmEoKTtodCgpO2pudCgpO0VvdCgpO0lvdCgpO1ZudCgpO1VudCgpO0dudCgpO0NvdCgpO3FhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hcHB1aSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdLGFpLHplPVtdLHhlPVtdLE5lLHh0PVtdLE1hPVtdLE5yLGZlPVtdLHJlPVtdLFNlLE9lPVtdLEplPVtdLHphLGRhPVtdLHdzPVtdLGtpLEppPVtdLFJyPVtdLFNpLHZuPVtdLHIxPVtdLG8xLG4xPVtdLGwxPVtdLGMxLGQxPVtdLHUxPVtdO3ZhciBwMT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpPYmplY3R9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bTCh7dHlwZTpTdHJpbmd9KV0sST1bTCh7dHlwZTpTdHJpbmd9KV0sSz1bTCh7dHlwZTpBcnJheX0pXSxtZT1bTCh7dHlwZTpBcnJheX0pXSxoZT1bTCh7dHlwZTpBcnJheX0pXSx1ZT1bTCh7dHlwZTpPYmplY3R9KV0saWU9W0woe3R5cGU6U3RyaW5nfSldLGtlPVtMKHt0eXBlOkFycmF5fSldLHllPVtMKHt0eXBlOk9iamVjdH0pXSxzZT1bTCh7dHlwZTpCb29sZWFufSldLFRlPVtMKHt0eXBlOkJvb2xlYW59KV0sR2U9W0woe3R5cGU6Qm9vbGVhbn0pXSxDZT1bTCh7dHlwZTpCb29sZWFufSldLEVlPVtMKHt0eXBlOkJvb2xlYW59KV0sc3Q9W0woe3R5cGU6Qm9vbGVhbn0pXSxJZT1bTCh7dHlwZTpOdW1iZXJ9KV0sTGU9W1koKV0sb3Q9W1koKV0samE9W0woe3R5cGU6QXJyYXl9KV0seWE9W0woe3R5cGU6T2JqZWN0fSldLHBzPVtMKHt0eXBlOkFycmF5fSldLGFpPVtMKHt0eXBlOkFycmF5fSldLE5lPVtZKCldLE5yPVtZKCldLFNlPVtZKCldLHphPVtZKCldLGtpPVtZKCldLFNpPVtZKCldLG8xPVtZKCldLGMxPVtZKCldLHFhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJNZW51SXRlbXMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJNZW51SXRlbXM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLHFhKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhckJyZWFkY3J1bWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYnMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJCcmVhZGNydW1icz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGQsdSkscWEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I9R30sInNldCIpfSxtZXRhZGF0YTpEfSxiLHYpLHFhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxtLGYpLHFhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyVXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYXBwYmFyVXNlciJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFwcGJhclVzZXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXJVc2VyPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTSx6KSxxYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXJQcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEMsXykscWEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXJTaG93U2VhcmNoImluIFQsImhhcyIpLGdldDppKFQ9PlQuYXBwYmFyU2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFwcGJhclNob3dTZWFyY2g9R30sInNldCIpfSxtZXRhZGF0YTpEfSwkLEUpLHFhKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVMb2dvSWNvbiJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51TG9nb0ljb24sImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudUxvZ29JY29uPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sayxTKSxxYSh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51TG9nb1RleHQiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUxvZ29UZXh0LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVMb2dvVGV4dD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LFAsUikscWEodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVHcm91cHMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVixXKSxxYSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51Qm90dG9tVGFicyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Qm90dG9tVGFicywiZ2V0Iiksc2V0OmkoKFQsRyk9PntULm1haW5tZW51Qm90dG9tVGFicz1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEIsVSkscWEodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudVRhYnMiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVRhYnMsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudVRhYnM9R30sInNldCIpfSxtZXRhZGF0YTpEfSxGLGopLHFhKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWlubWVudVNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGxlLFEpLHFhKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVIZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51SGVhZGluZyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVIZWFkaW5nLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudUhlYWRpbmc9R30sInNldCIpfSxtZXRhZGF0YTpEfSx0ZSxlZSkscWEodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUdyb3VwcyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVHcm91cHMsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51R3JvdXBzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sWCxaKSxxYSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09R30sInNldCIpfSxtZXRhZGF0YTpEfSxxLEEpLHFhKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJtYWlubWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5tZW51Q29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVDb2xsYXBzZWQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxvZSxhZSkscWEodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVDb2xsYXBzZWQsImdldCIpLHNldDppKChULEcpPT57VC5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUmUsQmUpLHFhKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbm1lbnVWaXNpYmxlImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbm1lbnVWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sRGUsX2UpLHFhKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51VmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULnNlY29uZGFyeW1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1Quc2Vjb25kYXJ5bWVudVZpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2ZSxiZSkscWEodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULm1haW5jb250ZW50VGFic1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudFRhYnNWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0samUsV2UpLHFhKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5jb250ZW50VGFic0F1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY29udGVudFRhYnNBdXRvSGlkZT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LE1lLGdlKSxxYSh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSxjZSxkZSkscWEodGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhY3Rpdml0eUxvZ1Zpc2libGUiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hY3Rpdml0eUxvZ1Zpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ1Zpc2libGU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxLZSxZZSkscWEodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChULEcpPT57VC5hY3Rpdml0eUxvZ0NvdW50PUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVXQsWnQpLHFhKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4ibWFpbmNvbnRlbnRUYWJzImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnRUYWJzLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRUYWJzPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZXQsYnQpLHFhKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5tYWluY29udGVudFNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGVzLHJzKSxxYSh0aGlzLG51bGwscHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImNvbnRlbnRUYWJBY3Rpb25zTGVmdCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmNvbnRlbnRUYWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zTGVmdD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LG5zLHRpKSxxYSh0aGlzLG51bGwsYWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjb250ZW50VGFiQWN0aW9uc1JpZ2h0ImluIFQsImhhcyIpLGdldDppKFQ9PlQuY29udGVudFRhYkFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx6ZSx4ZSkscWEodGhpcyxudWxsLE5lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJhcHBiYXIiaW4gVCwiaGFzIiksZ2V0OmkoVD0+VC5hcHBiYXIsImdldCIpLHNldDppKChULEcpPT57VC5hcHBiYXI9R30sInNldCIpfSxtZXRhZGF0YTpEfSx4dCxNYSkscWEodGhpcyxudWxsLE5yLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5tZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbm1lbnUsImdldCIpLHNldDppKChULEcpPT57VC5tYWlubWVudT1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZlLHJlKSxxYSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJzZWNvbmRhcnltZW51ImluIFQsImhhcyIpLGdldDppKFQ9PlQuc2Vjb25kYXJ5bWVudSwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULnNlY29uZGFyeW1lbnU9R30sInNldCIpfSxtZXRhZGF0YTpEfSxPZSxKZSkscWEodGhpcyxudWxsLHphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+Im1haW5jb250ZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQubWFpbmNvbnRlbnQsImdldCIpLHNldDppKChULEcpPT57VC5tYWluY29udGVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRhLHdzKSxxYSh0aGlzLG51bGwsa2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eWxvZ0VsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVD0+ImFjdGl2aXR5bG9nRWxlbWVudCJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmFjdGl2aXR5bG9nRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmFjdGl2aXR5bG9nRWxlbWVudD1HfSwic2V0Iil9LG1ldGFkYXRhOkR9LEppLFJyKSxxYSh0aGlzLG51bGwsU2kse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJib3R0b21iYXJFbGVtZW50ImluIFQsImhhcyIpLGdldDppKFQ9PlQuYm90dG9tYmFyRWxlbWVudCwiZ2V0Iiksc2V0OmkoKFQsRyk9PntULmJvdHRvbWJhckVsZW1lbnQ9R30sInNldCIpfSxtZXRhZGF0YTpEfSx2bixyMSkscWEodGhpcyxudWxsLG8xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShUPT4iYm90dG9tYmFyVmlzaWJsZSJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmJvdHRvbWJhclZpc2libGUsImdldCIpLHNldDppKChULEcpPT57VC5ib3R0b21iYXJWaXNpYmxlPUd9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbjEsbDEpLHFhKHRoaXMsbnVsbCxjMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFQ9PiJjdXJyZW50VmlldyJpbiBULCJoYXMiKSxnZXQ6aShUPT5ULmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoVCxHKT0+e1QuY3VycmVudFZpZXc9R30sInNldCIpfSxtZXRhZGF0YTpEfSxkMSx1MSkscWEobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCx0KSxwMT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89QnZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07dmlld0xpZmVjeWNsZSQ9bmV3IHV0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3ZpZXdDaGFuZ2VkJD1uZXcgdXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7I2U9VHQodGhpcyxvLFtdKTtnZXQgYXBwYmFyTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcGJhck1lbnVJdGVtcyhEKXt0aGlzLiNlPUR9I3Q9KFR0KHRoaXMsbCksVHQodGhpcyxkLCIiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFwcGJhckJyZWFkY3J1bWJzKEQpe3RoaXMuI3Q9RH0jYT0oVHQodGhpcyx1KSxUdCh0aGlzLGIsIiA+ICIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKEQpe3RoaXMuI2E9RH0jcz0oVHQodGhpcyx2KSxUdCh0aGlzLG0sITApKTtnZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scyhEKXt0aGlzLiNzPUR9I2k9KFR0KHRoaXMsZiksVHQodGhpcyxNLHZvaWQgMCkpO2dldCBhcHBiYXJVc2VyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFwcGJhclVzZXIoRCl7dGhpcy4jaT1EfSNyPShUdCh0aGlzLHopLFR0KHRoaXMsQyxbXSkpO2dldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoRCl7dGhpcy4jcj1EfSNvPShUdCh0aGlzLF8pLFR0KHRoaXMsJCwhMSkpO2dldCBhcHBiYXJTaG93U2VhcmNoKCl7cmV0dXJuIHRoaXMuI299c2V0IGFwcGJhclNob3dTZWFyY2goRCl7dGhpcy4jbz1EfSNuPShUdCh0aGlzLEUpLFR0KHRoaXMsaywiIikpO2dldCBtYWlubWVudUxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI259c2V0IG1haW5tZW51TG9nb0ljb24oRCl7dGhpcy4jbj1EfSNsPShUdCh0aGlzLFMpLFR0KHRoaXMsUCwiIikpO2dldCBtYWlubWVudUxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1haW5tZW51TG9nb1RleHQoRCl7dGhpcy4jbD1EfSNjPShUdCh0aGlzLFIpLFR0KHRoaXMsVixbXSkpO2dldCBtYWlubWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNjfXNldCBtYWlubWVudUdyb3VwcyhEKXt0aGlzLiNjPUR9I2Q9KFR0KHRoaXMsVyksVHQodGhpcyxCLFtdKSk7Z2V0IG1haW5tZW51Qm90dG9tVGFicygpe3JldHVybiB0aGlzLiNkfXNldCBtYWlubWVudUJvdHRvbVRhYnMoRCl7dGhpcy4jZD1EfSN1PShUdCh0aGlzLFUpLFR0KHRoaXMsRixbXSkpO2dldCBtYWlubWVudVRhYnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbWFpbm1lbnVUYWJzKEQpe3RoaXMuI3U9RH0jcD0oVHQodGhpcyxqKSxUdCh0aGlzLGxlLHZvaWQgMCkpO2dldCBtYWlubWVudVNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoRCl7dGhpcy4jcD1EfSNoPShUdCh0aGlzLFEpLFR0KHRoaXMsdGUsIiIpKTtnZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoRCl7dGhpcy4jaD1EfSNmPShUdCh0aGlzLGVlKSxUdCh0aGlzLFgsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNmfXNldCBzZWNvbmRhcnltZW51R3JvdXBzKEQpe3RoaXMuI2Y9RH0jbT0oVHQodGhpcyxaKSxUdCh0aGlzLHEsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbShEKXt0aGlzLiNtPUR9I2c9KFR0KHRoaXMsQSksVHQodGhpcyxvZSwhMSkpO2dldCBtYWlubWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNnfXNldCBtYWlubWVudUNvbGxhcHNlZChEKXt0aGlzLiNnPUR9I2I9KFR0KHRoaXMsYWUpLFR0KHRoaXMsUmUsITEpKTtnZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNifXNldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKEQpe3RoaXMuI2I9RH0jdj0oVHQodGhpcyxCZSksVHQodGhpcyxEZSwhMCkpO2dldCBtYWlubWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbWFpbm1lbnVWaXNpYmxlKEQpe3RoaXMuI3Y9RH0jeD0oVHQodGhpcyxfZSksVHQodGhpcyx2ZSwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN4fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShEKXt0aGlzLiN4PUR9I3k9KFR0KHRoaXMsYmUpLFR0KHRoaXMsamUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKEQpe3RoaXMuI3k9RH0jdz0oVHQodGhpcyxXZSksVHQodGhpcyxNZSwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoRCl7dGhpcy4jdz1EfSNrPShUdCh0aGlzLGdlKSxUdCh0aGlzLGNlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNrfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKEQpe3RoaXMuI2s9RH0jUz0oVHQodGhpcyxkZSksVHQodGhpcyxLZSwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKEQpe3RoaXMuI1M9RH0jXz0oVHQodGhpcyxZZSksVHQodGhpcyxVdCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jX31zZXQgYWN0aXZpdHlMb2dDb3VudChEKXt0aGlzLiNfPUR9I009KFR0KHRoaXMsWnQpLFR0KHRoaXMsZXQsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI019c2V0IG1haW5jb250ZW50VGFicyhEKXt0aGlzLiNNPUR9I3o9KFR0KHRoaXMsYnQpLFR0KHRoaXMsZXMsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jen1zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihEKXt0aGlzLiN6PUR9I0M9KFR0KHRoaXMscnMpLFR0KHRoaXMsbnMsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI0N9c2V0IGNvbnRlbnRUYWJBY3Rpb25zTGVmdChEKXt0aGlzLiNDPUR9I1Q9KFR0KHRoaXMsdGkpLFR0KHRoaXMsemUsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBjb250ZW50VGFiQWN0aW9uc1JpZ2h0KEQpe3RoaXMuI1Q9RH0jJD0oVHQodGhpcyx4ZSksVHQodGhpcyx4dCx2b2lkIDApKTtnZXQgYXBwYmFyKCl7cmV0dXJuIHRoaXMuIyR9c2V0IGFwcGJhcihEKXt0aGlzLiMkPUR9I0Q9KFR0KHRoaXMsTWEpLFR0KHRoaXMsZmUsdm9pZCAwKSk7Z2V0IG1haW5tZW51KCl7cmV0dXJuIHRoaXMuI0R9c2V0IG1haW5tZW51KEQpe3RoaXMuI0Q9RH0jTD0oVHQodGhpcyxyZSksVHQodGhpcyxPZSx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudSgpe3JldHVybiB0aGlzLiNMfXNldCBzZWNvbmRhcnltZW51KEQpe3RoaXMuI0w9RH0jRT0oVHQodGhpcyxKZSksVHQodGhpcyxkYSx2b2lkIDApKTtnZXQgbWFpbmNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgbWFpbmNvbnRlbnQoRCl7dGhpcy4jRT1EfSNQPShUdCh0aGlzLHdzKSxUdCh0aGlzLEppLHZvaWQgMCkpO2dldCBhY3Rpdml0eWxvZ0VsZW1lbnQoKXtyZXR1cm4gdGhpcy4jUH1zZXQgYWN0aXZpdHlsb2dFbGVtZW50KEQpe3RoaXMuI1A9RH0jST0oVHQodGhpcyxSciksVHQodGhpcyx2bix2b2lkIDApKTtnZXQgYm90dG9tYmFyRWxlbWVudCgpe3JldHVybiB0aGlzLiNJfXNldCBib3R0b21iYXJFbGVtZW50KEQpe3RoaXMuI0k9RH0jQT0oVHQodGhpcyxyMSksVHQodGhpcyxuMSwhMCkpO2dldCBib3R0b21iYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI0F9c2V0IGJvdHRvbWJhclZpc2libGUoRCl7dGhpcy4jQT1EfSNOPShUdCh0aGlzLGwxKSxUdCh0aGlzLGQxLHZvaWQgMCkpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNOfXNldCBjdXJyZW50VmlldyhEKXt0aGlzLiNOPUR9dmlld1JlZ2lzdHJ5PShUdCh0aGlzLHUxKSxuZXcgZTJlKTtyb3V0ZXJDbGVhbnVwPW51bGw7c2VhcmNoQ2FsbGJhY2s9bnVsbDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgIH0KICAgICAgLm1haW5ncmlkIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0MHB4OwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgLyogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHNldCBkeW5hbWljYWxseSBpbiB0ZW1wbGF0ZSAqLwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtY29sdW1ucyAwLjNzIGVhc2UsIGhlaWdodCAwLjNzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2JvdHRvbWJhci1oaWRkZW5dKSAubWFpbmdyaWQgewogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIGRlZXMtYXBwdWktYm90dG9tYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogNDsKICAgICAgfQoKICAgICAgLyogWi1pbmRleCBsYXllcmluZyBmb3IgcHJvcGVyIHN0YWNraW5nICovCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktbWFpbm1lbnUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAzOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5oaWRkZW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CgogICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovCiAgICAgIC52aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC52aWV3LWNvbnRhaW5lcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc30KICAgICAgICAuYnJlYWRjcnVtYnM9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJzfQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yfQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc30KICAgICAgICAudXNlcj0ke3RoaXMuYXBwYmFyVXNlcn0KICAgICAgICAucHJvZmlsZU1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH0KICAgICAgICAuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPSR7ITB9CiAgICAgICAgLmFjdGl2aXR5TG9nQ291bnQ9JHt0aGlzLmFjdGl2aXR5TG9nQ291bnR9CiAgICAgICAgLmFjdGl2aXR5TG9nQWN0aXZlPSR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9CiAgICAgICAgQG1lbnUtc2VsZWN0PSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEQpfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoRCl9CiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl9CiAgICAgICAgQHNlYXJjaC1xdWVyeT0ke0Q9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRCl9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl9CiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KEQpfQogICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKT0+dGhpcy50b2dnbGVBY3Rpdml0eUxvZygpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnIgJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8iMjgwcHgiOiIwcHgifTsiPgogICAgICAgICR7dGhpcy5tYWlubWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgICAgICAgIC5sb2dvSWNvbj0ke3RoaXMubWFpbm1lbnVMb2dvSWNvbn0KICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fQogICAgICAgICAgICAubWVudUdyb3Vwcz0ke3RoaXMubWFpbm1lbnVHcm91cHN9CiAgICAgICAgICAgIC5ib3R0b21UYWJzPSR7dGhpcy5tYWlubWVudUJvdHRvbVRhYnN9CiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYn0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMubWFpbm1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7RD0+dGhpcy5oYW5kbGVNYWlubWVudVRhYlNlbGVjdChEKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke0Q9PnRoaXMuaGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShEKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgICAgICAgLmhlYWRpbmc9JHt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nfQogICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfQogICAgICAgICAgICAuc2VsZWN0ZWRJdGVtPSR7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtfQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEQpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7RD0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoRCl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic30KICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn0KICAgICAgICAgIC5zaG93VGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGU9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgLnRhYkFjdGlvbnNMZWZ0PSR7dGhpcy5jb250ZW50VGFiQWN0aW9uc0xlZnR9CiAgICAgICAgICAudGFiQWN0aW9uc1JpZ2h0PSR7dGhpcy5jb250ZW50VGFiQWN0aW9uc1JpZ2h0fQogICAgICAgICAgQHRhYi1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoRCl9CiAgICAgICAgICBAdGFiLWNsb3NlPSR7RD0+dGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UoRCl9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgPHNsb3QgbmFtZT0ibWFpbmNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2cKICAgICAgICAgIGNsYXNzPSIke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyJ2aXNpYmxlIjoiaGlkZGVuIn0iCiAgICAgICAgPjwvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZz4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5ib3R0b21iYXJWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgIGA6IiJ9CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuYXBwYmFyPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFwcGJhciIpLHRoaXMubWFpbm1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbm1lbnUiKSx0aGlzLnNlY29uZGFyeW1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpLHRoaXMubWFpbmNvbnRlbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpLHRoaXMuYm90dG9tYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1ib3R0b21iYXIiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCYmdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZW50cmllcyQuc3Vic2NyaWJlKEQ9Pnt0aGlzLmFjdGl2aXR5TG9nQ291bnQ9RC5sZW5ndGh9KSx0aGlzLnZpZXdSZWdpc3RyeS5zZXRBcHB1aVJlZih0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yb3V0ZXJDbGVhbnVwJiYodGhpcy5yb3V0ZXJDbGVhbnVwKCksdGhpcy5yb3V0ZXJDbGVhbnVwPW51bGwpLHRoaXMudmlld0xpZmVjeWNsZSQuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2VkJC5jb21wbGV0ZSgpfXNldEFwcEJhck1lbnVzKEQpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPVsuLi5EXX11cGRhdGVBcHBCYXJNZW51KEQsVCl7dGhpcy5hcHBiYXJNZW51SXRlbXM9dGhpcy5hcHBiYXJNZW51SXRlbXMubWFwKEc9PiJuYW1lImluIEcmJkcubmFtZT09PUQ/ey4uLkcsLi4uVH06Ryl9c2V0QnJlYWRjcnVtYnMoRCl7QXJyYXkuaXNBcnJheShEKT90aGlzLmFwcGJhckJyZWFkY3J1bWJzPUQuam9pbih0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IpOnRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9RH1zZXRVc2VyKEQpe3RoaXMuYXBwYmFyVXNlcj1EfXNldFByb2ZpbGVNZW51SXRlbXMoRCl7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPVsuLi5EXX1zZXRTZWFyY2hWaXNpYmxlKEQpe3RoaXMuYXBwYmFyU2hvd1NlYXJjaD1EfXNldFdpbmRvd0NvbnRyb2xzVmlzaWJsZShEKXt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1EfW9uU2VhcmNoKEQpe3RoaXMuc2VhcmNoQ2FsbGJhY2s9RH1zZXRNYWluTWVudShEKXtELmxvZ29JY29uIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUQubG9nb0ljb24pLEQubG9nb1RleHQhPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9RC5sb2dvVGV4dCksRC5ncm91cHMhPT12b2lkIDAmJih0aGlzLm1haW5tZW51R3JvdXBzPVsuLi5ELmdyb3Vwc10pLEQuYm90dG9tVGFicyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPVsuLi5ELmJvdHRvbVRhYnNdKX11cGRhdGVNYWluTWVudUdyb3VwKEQsVCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLC4uLlR9OkcpfWFkZE1haW5NZW51SXRlbShELFQpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoRz0+Ry5uYW1lPT09RD97Li4uRyxpdGVtczpbLi4uRy5pdGVtc3x8W10sVF19OkcpfXJlbW92ZU1haW5NZW51SXRlbShELFQpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoRz0+Ry5uYW1lPT09RD97Li4uRyxpdGVtczooRy5pdGVtc3x8W10pLmZpbHRlcigkZT0+JGUua2V5IT09VCl9OkcpfXNldE1haW5NZW51U2VsZWN0aW9uKEQpe2ZvcihsZXQgRyBvZiB0aGlzLm1haW5tZW51R3JvdXBzKXtsZXQgJGU9Ry5pdGVtcz8uZmluZChQZT0+UGUua2V5PT09RCk7aWYoJGUpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj0kZTtyZXR1cm59fWxldCBUPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLmZpbmQoRz0+Ry5rZXk9PT1EKTtUJiYodGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPVQpfXNldE1haW5NZW51Q29sbGFwc2VkKEQpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9RH1zZXRNYWluTWVudVZpc2libGUoRCl7dGhpcy5tYWlubWVudVZpc2libGU9RH1zZXRTZWNvbmRhcnlNZW51Q29sbGFwc2VkKEQpe3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1EfXNldFNlY29uZGFyeU1lbnVWaXNpYmxlKEQpe3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU9RH1zZXRDb250ZW50VGFic1Zpc2libGUoRCl7dGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlPUR9c2V0Q29udGVudFRhYnNBdXRvSGlkZShELFQ9MCl7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlPUQsdGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkPVR9c2V0TWFpbk1lbnVCYWRnZShELFQpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoRz0+KHsuLi5HLGl0ZW1zOihHLml0ZW1zfHxbXSkubWFwKCRlPT4kZS5rZXk9PT1EP3suLi4kZSxiYWRnZTpUfTokZSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKEc9Pkcua2V5PT09RD97Li4uRyxiYWRnZTpUfTpHKX1jbGVhck1haW5NZW51QmFkZ2UoRCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChUPT4oey4uLlQsaXRlbXM6KFQuaXRlbXN8fFtdKS5tYXAoRz0+e2lmKEcua2V5PT09RCl7bGV0e2JhZGdlOiRlLC4uLlBlfT1HO3JldHVybiBQZX1yZXR1cm4gR30pfSkpLHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLm1hcChUPT57aWYoVC5rZXk9PT1EKXtsZXR7YmFkZ2U6RywuLi4kZX09VDtyZXR1cm4gJGV9cmV0dXJuIFR9KX1zZXRTZWNvbmRhcnlNZW51KEQpe0QuaGVhZGluZyE9PXZvaWQgMCYmKHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9RC5oZWFkaW5nKSx0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Wy4uLkQuZ3JvdXBzXX11cGRhdGVTZWNvbmRhcnlNZW51R3JvdXAoRCxUKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChHPT5HLm5hbWU9PT1EP3suLi5HLC4uLlR9OkcpfWFkZFNlY29uZGFyeU1lbnVJdGVtKEQsVCl7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPXRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcy5tYXAoRz0+Ry5uYW1lPT09RD97Li4uRyxpdGVtczpbLi4uRy5pdGVtcyxUXX06Ryl9c2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihEKXtmb3IobGV0IFQgb2YgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzKXtsZXQgRz1ULml0ZW1zLmZpbmQoJGU9PiJrZXkiaW4gJGUmJiRlLmtleT09PUQpO2lmKEcmJighKCJ0eXBlImluIEcpfHxHLnR5cGU9PT0idGFiInx8Ry50eXBlPT09dm9pZCAwKSl7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPUc7cmV0dXJufX19Y2xlYXJTZWNvbmRhcnlNZW51KCl7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz0iIix0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9W10sdGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPXZvaWQgMH1zZXRDb250ZW50VGFicyhEKXt0aGlzLm1haW5jb250ZW50VGFicz1bLi4uRF0sRC5sZW5ndGg+MCYmIXRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYiYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1EWzBdKX1hZGRDb250ZW50VGFiKEQpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi50aGlzLm1haW5jb250ZW50VGFicyxEXX1yZW1vdmVDb250ZW50VGFiKEQpe3RoaXMubWFpbmNvbnRlbnRUYWJzPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbHRlcihUPT5ULmtleSE9PUQpLHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj8ua2V5PT09RCYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj10aGlzLm1haW5jb250ZW50VGFic1swXSl9c2VsZWN0Q29udGVudFRhYihEKXtsZXQgVD10aGlzLm1haW5jb250ZW50VGFicy5maW5kKEc9Pkcua2V5PT09RCk7VCYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1UKX1nZXRTZWxlY3RlZENvbnRlbnRUYWIoKXtyZXR1cm4gdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFifXNldENvbnRlbnRUYWJBY3Rpb25zTGVmdChEKXt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zTGVmdD1bLi4uRF19c2V0Q29udGVudFRhYkFjdGlvbnNSaWdodChEKXt0aGlzLmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9Wy4uLkRdfWdldCBhY3Rpdml0eUxvZygpe3JldHVybiB0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD97YWRkOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkKEQpLCJhZGQiKSxhZGRNYW55OmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkTWFueShEKSwiYWRkTWFueSIpLGNsZWFyOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmNsZWFyKCksImNsZWFyIiksZ2V0RW50cmllczppKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5nZXRFbnRyaWVzKCksImdldEVudHJpZXMiKSxmaWx0ZXI6aShEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5maWx0ZXIoRCksImZpbHRlciIpLHNlYXJjaDppKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LnNlYXJjaChEKSwic2VhcmNoIil9OnthZGQ6aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uYWRkKEQpKX0sImFkZCIpLGFkZE1hbnk6aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uYWRkTWFueShEKSl9LCJhZGRNYW55IiksY2xlYXI6aSgoKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmNsZWFyKCkpfSwiY2xlYXIiKSxnZXRFbnRyaWVzOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5nZXRFbnRyaWVzKCl8fFtdLCJnZXRFbnRyaWVzIiksZmlsdGVyOmkoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmZpbHRlcihEKXx8W10sImZpbHRlciIpLHNlYXJjaDppKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5zZWFyY2goRCl8fFtdLCJzZWFyY2giKX19c2V0QWN0aXZpdHlMb2dWaXNpYmxlKEQpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPUR9dG9nZ2xlQWN0aXZpdHlMb2coKXt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT0hdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0QWN0aXZpdHlMb2dWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfWdldCBib3R0b21CYXIoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJFbGVtZW50P3thZGRXaWRnZXQ6aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkV2lkZ2V0KEQpLCJhZGRXaWRnZXQiKSx1cGRhdGVXaWRnZXQ6aSgoRCxUKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnVwZGF0ZVdpZGdldChELFQpLCJ1cGRhdGVXaWRnZXQiKSxyZW1vdmVXaWRnZXQ6aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlV2lkZ2V0KEQpLCJyZW1vdmVXaWRnZXQiKSxnZXRXaWRnZXQ6aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuZ2V0V2lkZ2V0KEQpLCJnZXRXaWRnZXQiKSxjbGVhcldpZGdldHM6aSgoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyV2lkZ2V0cygpLCJjbGVhcldpZGdldHMiKSxhZGRBY3Rpb246aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkQWN0aW9uKEQpLCJhZGRBY3Rpb24iKSxyZW1vdmVBY3Rpb246aShEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlQWN0aW9uKEQpLCJyZW1vdmVBY3Rpb24iKSxjbGVhckFjdGlvbnM6aSgoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyQWN0aW9ucygpLCJjbGVhckFjdGlvbnMiKX06e2FkZFdpZGdldDppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkV2lkZ2V0KEQpKX0sImFkZFdpZGdldCIpLHVwZGF0ZVdpZGdldDppKChELFQpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnVwZGF0ZVdpZGdldChELFQpKX0sInVwZGF0ZVdpZGdldCIpLHJlbW92ZVdpZGdldDppKEQ9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlV2lkZ2V0KEQpKX0sInJlbW92ZVdpZGdldCIpLGdldFdpZGdldDppKEQ9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uZ2V0V2lkZ2V0KEQpLCJnZXRXaWRnZXQiKSxjbGVhcldpZGdldHM6aSgoKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhcldpZGdldHMoKSl9LCJjbGVhcldpZGdldHMiKSxhZGRBY3Rpb246aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmFkZEFjdGlvbihEKSl9LCJhZGRBY3Rpb24iKSxyZW1vdmVBY3Rpb246aShEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnJlbW92ZUFjdGlvbihEKSl9LCJyZW1vdmVBY3Rpb24iKSxjbGVhckFjdGlvbnM6aSgoKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhckFjdGlvbnMoKSl9LCJjbGVhckFjdGlvbnMiKX19c2V0Qm90dG9tQmFyVmlzaWJsZShEKXt0aGlzLmJvdHRvbWJhclZpc2libGU9RCxEP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJib3R0b21iYXItaGlkZGVuIik6dGhpcy5zZXRBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iLCIiKX1nZXRCb3R0b21CYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYm90dG9tYmFyVmlzaWJsZX1hc3luYyBuYXZpZ2F0ZVRvVmlldyhELFQpe2xldCBHPXRoaXMudmlld1JlZ2lzdHJ5LmdldChEKTtpZighRylyZXR1cm4gY29uc29sZS53YXJuKGBDYW5ub3QgbmF2aWdhdGUgdG8gdW5rbm93biB2aWV3OiAke0R9YCksITE7bGV0ICRlPWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmNhbkxlYXZlQ3VycmVudFZpZXcoKTtpZigkZSE9PSEwKWlmKHR5cGVvZiAkZT09InN0cmluZyIpe2lmKCF3aW5kb3cuY29uZmlybSgkZSkpcmV0dXJuITF9ZWxzZSByZXR1cm4hMTt0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImxvYWRpbmciLHZpZXdJZDpEfSk7dHJ5e2F3YWl0IHRoaXMubG9hZFZpZXcoRyxUKTtsZXQgUGU9Ry5yb3V0ZXx8RDtpZihUKWZvcihsZXRbVmUsVWVdb2YgT2JqZWN0LmVudHJpZXMoVCkpUGU9UGUucmVwbGFjZShgOiR7VmV9YCxVZSk7bGV0IEZlPWAjJHtQZX1gO3JldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaCE9PUZlJiZ3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe3ZpZXdJZDpEfSwiIixGZSksITB9Y2F0Y2goUGUpe3JldHVybiB0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImxvYWRFcnJvciIsdmlld0lkOkQsZXJyb3I6UGV9KSwhMX19Z2V0Q3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld31nZXRWaWV3UmVnaXN0cnkoKXtyZXR1cm4gdGhpcy52aWV3UmVnaXN0cnl9Y29uZmlndXJlKEQpe0Qudmlld3MmJih0aGlzLnZpZXdSZWdpc3RyeS5jbGVhcigpLHRoaXMudmlld1JlZ2lzdHJ5LnJlZ2lzdGVyQWxsKEQudmlld3MpKSxELmJyYW5kaW5nJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUQuYnJhbmRpbmcubG9nb0ljb258fCIiLHRoaXMubWFpbm1lbnVMb2dvVGV4dD1ELmJyYW5kaW5nLmxvZ29UZXh0fHwiIiksRC5hcHBCYXImJih0aGlzLmFwcGJhck1lbnVJdGVtcz1ELmFwcEJhci5tZW51SXRlbXN8fFtdLHRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9RC5hcHBCYXIuYnJlYWRjcnVtYnN8fCIiLHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj1ELmFwcEJhci5icmVhZGNydW1iU2VwYXJhdG9yfHwiID4gIix0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1ELmFwcEJhci5zaG93V2luZG93Q29udHJvbHM/PyEwLHRoaXMuYXBwYmFyU2hvd1NlYXJjaD1ELmFwcEJhci5zaG93U2VhcmNoPz8hMSx0aGlzLmFwcGJhclVzZXI9RC5hcHBCYXIudXNlcix0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9RC5hcHBCYXIucHJvZmlsZU1lbnVJdGVtc3x8W10pLEQubWFpbk1lbnUmJihELm1haW5NZW51LnNlY3Rpb25zP3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5idWlsZE1haW5NZW51RnJvbVNlY3Rpb25zKEQpOkQubWFpbk1lbnUuZ3JvdXBzJiYodGhpcy5tYWlubWVudUdyb3Vwcz1ELm1haW5NZW51Lmdyb3VwcyksRC5tYWluTWVudS5sb2dvSWNvbiYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1ELm1haW5NZW51LmxvZ29JY29uKSxELm1haW5NZW51LmxvZ29UZXh0JiYodGhpcy5tYWlubWVudUxvZ29UZXh0PUQubWFpbk1lbnUubG9nb1RleHQpLEQubWFpbk1lbnUuYm90dG9tVGFicz90aGlzLm1haW5tZW51Qm90dG9tVGFicz1ELm1haW5NZW51LmJvdHRvbVRhYnM6RC5tYWluTWVudS5ib3R0b21JdGVtcyYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPXRoaXMuYnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKEQubWFpbk1lbnUuYm90dG9tSXRlbXMpKSksRC5ib3R0b21CYXImJih0aGlzLnNldEJvdHRvbUJhclZpc2libGUoRC5ib3R0b21CYXIudmlzaWJsZT8/ITApLEQuYm90dG9tQmFyLndpZGdldHMmJkQuYm90dG9tQmFyLndpZGdldHMuZm9yRWFjaChUPT57dGhpcy5ib3R0b21CYXIuYWRkV2lkZ2V0KFQpfSksRC5ib3R0b21CYXIuYWN0aW9ucyYmRC5ib3R0b21CYXIuYWN0aW9ucy5mb3JFYWNoKFQ9Pnt0aGlzLmJvdHRvbUJhci5hZGRBY3Rpb24oVCl9KSksdGhpcy5zZXR1cFJvdXRlckludGVncmF0aW9uKEQpLEQub25WaWV3Q2hhbmdlJiZ0aGlzLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoVD0+e0Qub25WaWV3Q2hhbmdlKFQudmlld0lkLFQudmlldyl9KSxELm9uU2VhcmNoJiYodGhpcy5zZWFyY2hDYWxsYmFjaz1ELm9uU2VhcmNoKSxELmRlZmF1bHRWaWV3JiZ0aGlzLm5hdmlnYXRlVG9WaWV3KEQuZGVmYXVsdFZpZXcpfXNldHVwUm91dGVySW50ZWdyYXRpb24oRCl7bGV0IFQ9aSgoKT0+e2xldCAkZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZighJGUpcmV0dXJuO2xldCBQZT10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZSgkZSk7UGUmJnRoaXMubmF2aWdhdGVUb1ZpZXcoUGUudmlldy5pZCxQZS5wYXJhbXMpfSwiaGFuZGxlSGFzaENoYW5nZSIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixUKSx0aGlzLnJvdXRlckNsZWFudXA9KCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsVCl9O2xldCBHPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKEcpe2xldCAkZT10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZShHKTskZSYmc2V0VGltZW91dCgoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldygkZS52aWV3LmlkLCRlLnBhcmFtcyksMCl9fWJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoRCl7cmV0dXJuIEQubWFpbk1lbnU/LnNlY3Rpb25zP0QubWFpbk1lbnUuc2VjdGlvbnMubWFwKFQ9Pih7bmFtZTpULm5hbWV8fCIiLGl0ZW1zOlQudmlld3MubWFwKEc9PntsZXQgJGU9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KEcpO3JldHVybiAkZT97a2V5OiRlLmlkLGljb25OYW1lOiRlLmljb25OYW1lLGFjdGlvbjppKCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KEcpLCJhY3Rpb24iKSxiYWRnZTokZS5iYWRnZX06KGNvbnNvbGUud2FybihgVmlldyAiJHtHfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbCl9KS5maWx0ZXIoQm9vbGVhbil9KSk6W119YnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKEQpe3JldHVybiBELm1hcChUPT57bGV0IEc9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KFQpO3JldHVybiBHP3trZXk6Ry5pZCxpY29uTmFtZTpHLmljb25OYW1lLGFjdGlvbjppKCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KFQpLCJhY3Rpb24iKX06KGNvbnNvbGUud2FybihgVmlldyAiJHtUfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbCl9KS5maWx0ZXIoQm9vbGVhbil9YXN5bmMgbG9hZFZpZXcoRCxUKXtsZXQgRz10aGlzLmN1cnJlbnRWaWV3O3RoaXMuY3VycmVudFZpZXc9RDtsZXQgJGU9dGhpcy5tYWluY29udGVudD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIil8fHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIik7aWYoJGUpe2xldCBGZT1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5hY3RpdmF0ZVZpZXcoRC5pZCwkZSxUKTtGZSYmdGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJhY3RpdmF0ZWQiLHZpZXdJZDpELmlkLGVsZW1lbnQ6RmUscGFyYW1zOlR9KX1ELnNlY29uZGFyeU1lbnUmJih0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9RC5zZWNvbmRhcnlNZW51LHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9RC5uYW1lKSxELmNvbnRlbnRUYWJzJiYodGhpcy5tYWluY29udGVudFRhYnM9RC5jb250ZW50VGFicyksdGhpcy5zZXRNYWluTWVudVNlbGVjdGlvbihELmlkKTtsZXQgUGU9e3ZpZXdJZDpELmlkLHZpZXc6RCxwcmV2aW91c1ZpZXc6RyxwYXJhbXM6VH07dGhpcy52aWV3Q2hhbmdlZCQubmV4dChQZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1jaGFuZ2UiLHtkZXRhaWw6UGUsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1tZW51LXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItYnJlYWRjcnVtYi1uYXZpZ2F0ZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRCl7dGhpcy5zZWFyY2hDYWxsYmFjayYmdGhpcy5zZWFyY2hDYWxsYmFjayhELmRldGFpbC5xdWVyeSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLXF1ZXJ5Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItcHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU1haW5tZW51VGFiU2VsZWN0KEQpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1ELmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFpbm1lbnUtdGFiLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEQpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1ELmRldGFpbC5pdGVtLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtaXRlbS1zZWxlY3QiLHtkZXRhaWw6RC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKEQpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9RC5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShEKXt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9RC5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGVudFRhYlNlbGVjdChEKXt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9RC5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtdGFiLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJDbG9zZShEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1jbG9zZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXN0YXRpY3tUdChhLHQpfX07cmV0dXJuIHAxPWF9KSgpfSk7dmFyIFl2YT1nKCgpPT57S3ZhKCk7am50KCl9KTt2YXIgWnZhPWcoKCk9PntHbnQoKX0pO3ZhciBYdmE9ZygoKT0+e1ZudCgpfSk7dmFyIFF2YT1nKCgpPT57VW50KCl9KTt2YXIgSnZhPWcoKCk9PntMb3QoKX0pO3ZhciBleGE9ZygoKT0+e1dudCgpfSk7dmFyIHQyZSxhNyxoZXMsdHhhPWcoKCk9Pnt2bygpO0duKCk7RXIoKTtwZSgpO3YyKCk7R2EoKTtodCgpO3QyZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYTc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGhlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtbW9iaWxlbmF2aWdhdGlvbiIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzTW9iaWxlbmF2aWdhdGlvbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6QXJyYXl9KV0sYz1bWSgpXSx0MmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJoZWFkaW5nImluIGYsImhhcyIpLGdldDppKGY9PmYuaGVhZGluZywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmhlYWRpbmc9eX0sInNldCIpfSxtZXRhZGF0YTptfSxvLGwpLHQyZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibWVudUl0ZW1zImluIGYsImhhcyIpLGdldDppKGY9PmYubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YubWVudUl0ZW1zPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSx0MmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVOYXZaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+Im1vYmlsZU5hdlpJbmRleCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm1vYmlsZU5hdlpJbmRleCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLm1vYmlsZU5hdlpJbmRleD15fSwic2V0Iil9LG1ldGFkYXRhOm19LGIsdiksdDJlKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCkseD1hPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTtzdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57eC5jcmVhdGVBbmRTaG93KFt7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dC1kYXNoYm9hcmQiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gZGFzaGJvYXJkIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246aShhc3luYyBtPT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHByb2ZpbGUiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMgbT0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBzZXR0aW5ncyIpLG51bGwpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHAtY2lyY2xlIixhY3Rpb246aShhc3luYyBtPT4oY29uc29sZS5sb2coIlNob3cgaGVscCIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOmxvZy1vdXQiLGFjdGlvbjppKGFzeW5jIG09Pihjb25zb2xlLmxvZygiU2lnbiBvdXQiKSxudWxsKSwiYWN0aW9uIil9XSl9fT5PcGVuIE1vYmlsZSBOYXZpZ2F0aW9uPC9kZWVzLWJ1dHRvbj4KICBgLCJkZW1vIik7c3RhdGljIHNpbmdsZXRvblJlZjtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhtKXtyZXR1cm4gdGhpcy5zaW5nbGV0b25SZWZ8fCh0aGlzLnNpbmdsZXRvblJlZj1uZXcgeCxkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLnNpbmdsZXRvblJlZiksYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYuaW5pdCgpKSx0aGlzLnNpbmdsZXRvblJlZi5tZW51SXRlbXM9bSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5yZWFkeURlZmVycmVkLnByb21pc2UsdGhpcy5zaW5nbGV0b25SZWYuc2hvdygpLHRoaXMuc2luZ2xldG9uUmVmfSNlPWE3KHRoaXMsbywiTWVudSIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobSl7dGhpcy4jZT1tfSN0PShhNyh0aGlzLGwpLGE3KHRoaXMsZCxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKG0pe3RoaXMuI3Q9bX0jYT0oYTcodGhpcyx1KSxhNyh0aGlzLGIsMWUzKSk7Z2V0IG1vYmlsZU5hdlpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBtb2JpbGVOYXZaSW5kZXgobSl7dGhpcy4jYT1tfXJlYWR5RGVmZXJyZWQ9KGE3KHRoaXMsdiksbHQucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKSk7Y29uc3RydWN0b3IoKXtzdXBlcigpfWFzeW5jIGluaXQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgIH0KCiAgICAgIC5tYWluIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5tYWluLnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luOiA4cHggMTZweDsKICAgICAgfQoKICAgICAgLyogTW9iaWxlIHJlc3BvbnNpdmVuZXNzICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkgewogICAgICAgIC5tYWluIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7CiAgICAgICAgICB3aWR0aDogODV2dzsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIEFuaW1hdGlvbiBmb3IgbWVudSBpdGVtcyAqLwogICAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4uc2hvdyAubWVudUl0ZW0gewogICAgICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWl0ZW0taW5kZXgsIDApICogMC4wNXMpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW4gewogICAgICAgICAgLS16LWluZGV4OiAke3RoaXMubW9iaWxlTmF2WkluZGV4fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8aDIgY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoKG0sZik9PiJkaXZpZGVyImluIG0mJm0uZGl2aWRlcj93YDxkaXYgY2xhc3M9Im1lbnVJdGVtLWRpdmlkZXIiPjwvZGl2PmA6d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibWVudUl0ZW0iCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1pdGVtLWluZGV4OiAke2Z9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5oaWRlKCksbS5hY3Rpb24odGhpcyl9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke20uaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke20uaWNvbk5hbWV9IHNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudUl0ZW0tdGV4dCI+JHttLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyO2FzeW5jIHNob3coKXtsZXQgbT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbiIpO3RoaXMud2luZG93TGF5ZXI/KGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMud2luZG93TGF5ZXIpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuc2hvdygpKToodGhpcy53aW5kb3dMYXllcj1hd2FpdCBSby5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmhpZGUoKX0pKSx0aGlzLm1vYmlsZU5hdlpJbmRleD1fYS5nZXROZXh0WkluZGV4KCksX2EucmVnaXN0ZXIodGhpcyx0aGlzLm1vYmlsZU5hdlpJbmRleCksYXdhaXQgbS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwKSxmLmNsYXNzTGlzdC5hZGQoInNob3ciKX1hc3luYyBoaWRlKCl7bGV0IG09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIikuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLF9hLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLF9hLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje2E3KGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBheGE9ZygoKT0+e3R4YSgpfSk7dmFyIHN4YT1nKCgpPT57QTlhKCk7RW90KCk7WjlhKCk7WXZhKCk7WnZhKCk7WHZhKCk7UXZhKCk7SnZhKCk7ZXhhKCk7YXhhKCl9KTt2YXIgaXhhPWcoKCk9PntIZygpfSk7dmFyIHJ4YSxLbnQsZmVzLG94YT1nKCgpPT57cGUoKTtyeGE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEtudD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZmVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1idXR0b24tZXhpdCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uRXhpdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHJ4YSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+InNpemUiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zaXplLCJnZXQiKSxzZXQ6aSgodSxjKT0+e3Uuc2l6ZT1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCkscnhhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLWJ1dHRvbi1leGl0PjwvZGVlcy1idXR0b24tZXhpdD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1LbnQodGhpcyxvLDI0KTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGQpe3RoaXMuI2U9ZH1zdHlsZXM9KEtudCh0aGlzLGwpLFtoLmRlZmF1bHRTdHlsZXMsSmAKCiAgICBgXSk7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RMaW5lIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmRMaW5lIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tLbnQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIG54YT1nKCgpPT57b3hhKCl9KTt2YXIgbHhhLGN4YT1nKCgpPT57cGUoKTtseGE9aSgoKT0+d2AKICAgIDxzdHlsZT4KICAgICAgJHtKYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGhvdXQgbGFiZWxzIGZvciBzaW1wbGUgZ3JvdXBpbmc8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAxPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxhYmVsZWQgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCBkZXNjcmlwdGl2ZSBsYWJlbHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJWaWV3IE1vZGU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+R3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGlzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2FyZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPk11bHRpcGxlIGJ1dHRvbiBncm91cHMgdXNlZCB0b2dldGhlcjwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcms8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJUaW1lIFJhbmdlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4xSDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+MjRIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjdEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjMwRDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RXhwb3J0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlZlcnRpY2FsIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggdmVydGljYWwgbGF5b3V0PC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMjRweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiIGxhYmVsPSJOYXZpZ2F0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXNoYm9hcmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkFuYWx5dGljczwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXBvcnRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkVkaXQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EZWxldGUgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NaXhlZCBCdXR0b24gVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EaWZmZXJlbnQgYnV0dG9uIHR5cGVzIHdpdGhpbiBncm91cHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJTdGF0dXM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzdWNjZXNzIj5BY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlBlbmRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRhbmdlciI+SW5hY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBZbnQsVlEsbWVzLGR4YT1nKCgpPT57cGUoKTtrdCgpO2N4YSgpO2h0KCk7WW50PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxWUT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbWVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1idXR0b24tZ3JvdXAiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0J1dHRvbkdyb3VwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLFludCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJsYWJlbCJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmxhYmVsLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubGFiZWw9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFludCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4iZGlyZWN0aW9uImluIHYsImhhcyIpLGdldDppKHY9PnYuZGlyZWN0aW9uLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YuZGlyZWN0aW9uPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCx1KSxZbnQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSxjPWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1seGE7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1WUSh0aGlzLG8sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChiKXt0aGlzLiNlPWJ9I3Q9KFZRKHRoaXMsbCksVlEodGhpcyxkLCJob3Jpem9udGFsIikpO2dldCBkaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGlyZWN0aW9uKGIpe3RoaXMuI3Q9Yn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksVlEodGhpcyx1KSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwLnZlcnRpY2FsIC5sYWJlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKCopIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImxhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1ZRKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciB1eGE9ZygoKT0+e2R4YSgpfSk7dmFyIHB4YT1nKCgpPT57aXhhKCk7bnhhKCk7dXhhKCl9KTt2YXIgaHhhLGZ4YT1nKCgpPT57cGUoKTtJdCgpO1pudCgpO2h4YT1pKCgpPT57bGV0IHM9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseToyNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6MzB9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjI4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTozNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTozMn0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6Mzh9XX0se25hbWU6Ik1lbW9yeSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseTo0NX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6NDh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjQ2fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTo1Mn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTo1MH0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6NTV9XX1dfX0sZT17c3lzdGVtOmkodD0+YCR7dH0lYCwic3lzdGVtIil9O3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiI21haW4tY2hhcnQiKSxyPXQucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3Rpb25zLWNoYXJ0IiksbixvLGw9InN5c3RlbSIscD17c3lzdGVtOmkoSD0+YCR7SH0lYCwic3lzdGVtIiksbmV0d29yazppKEg9PmAke0h9IE1icHNgLCJuZXR3b3JrIiksc2FsZXM6aShIPT5gJCR7SC50b0xvY2FsZVN0cmluZygpfWAsInNhbGVzIil9LGQ9MTIwKjFlMyx1PTFlMyxjPTVlMyxiPXtjcHU6MzAsbWVtb3J5OjUwLGRvd25sb2FkOjE1MCx1cGxvYWQ6MzAsY29ubmVjdGlvbnM6MTUwfSx2PWkoKEgsayxTPWMpPT57bGV0IEk9W10sUD1EYXRlLm5vdygpLFI9TWF0aC5mbG9vcihkL1MpO2ZvcihsZXQgSz1SO0s+PTA7Sy0tKXtsZXQgVj1uZXcgRGF0ZShQLUsqUykudG9JU09TdHJpbmcoKSxXPUgrKE1hdGgucmFuZG9tKCktLjUpKms7SS5wdXNoKHt4OlYseTpNYXRoLnJvdW5kKFcpfSl9cmV0dXJuIEl9LCJnZW5lcmF0ZUluaXRpYWxEYXRhIikseD17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOnYoYi5jcHUsMTApfSx7bmFtZToiTWVtb3J5IixkYXRhOnYoYi5tZW1vcnksOCl9XX0sbmV0d29yazp7bGFiZWw6Ik5ldHdvcmsgVHJhZmZpYyAoTWJwcykiLHNlcmllczpbe25hbWU6IkRvd25sb2FkIixkYXRhOnYoYi5kb3dubG9hZCwzMCl9LHtuYW1lOiJVcGxvYWQiLGRhdGE6dihiLnVwbG9hZCwxMCl9XX0sc2FsZXM6e2xhYmVsOiJTYWxlcyBBbmFseXRpY3MiLHNlcmllczpbe25hbWU6IlJldmVudWUiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjQ1ZTN9LHt4OiIyMDI1LTAxLTAyIix5OjUyZTN9LHt4OiIyMDI1LTAxLTAzIix5OjQ4ZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjYxZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjU4ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjY1ZTN9XX0se25hbWU6IlByb2ZpdCIsZGF0YTpbe3g6IjIwMjUtMDEtMDEiLHk6MTJlM30se3g6IjIwMjUtMDEtMDIiLHk6MTRlM30se3g6IjIwMjUtMDEtMDMiLHk6MTFlM30se3g6IjIwMjUtMDEtMDQiLHk6MThlM30se3g6IjIwMjUtMDEtMDUiLHk6MTZlM30se3g6IjIwMjUtMDEtMDYiLHk6MmU0fV19XX19LG09aSgoSCxrLFMsST01KT0+e2xldCBQPShNYXRoLnJhbmRvbSgpLS41KSpJKjIsUj1IK1AsVj0oKGsrUykvMi1SKSouMTtyZXR1cm4gUis9VixSPU1hdGgubWF4KGssTWF0aC5taW4oUyxSKSksTWF0aC5yb3VuZChSKX0sImdldE5leHRWYWx1ZSIpLGY9RGF0ZS5ub3coKSx5PURhdGUubm93KCksTT1pKCgpPT57aWYoIWEpcmV0dXJuO2xldCBIPURhdGUubm93KCk7aWYoSC1mPj1jKXtmPUg7bGV0IFM9bmV3IERhdGUoSCkudG9JU09TdHJpbmcoKTtpZihsPT09InN5c3RlbSIpe2IuY3B1PW0oYi5jcHUsMjAsNTAsMyksYi5tZW1vcnk9bShiLm1lbW9yeSw0MCw3MCwyKTtsZXQgST1hLmNoYXJ0U2VyaWVzLm1hcCgoUCxSKT0+KHtuYW1lOlAubmFtZSxkYXRhOlsuLi5QLmRhdGEsUj09PTA/e3g6Uyx5OmIuY3B1fTp7eDpTLHk6Yi5tZW1vcnl9XX0pKTthLnVwZGF0ZVNlcmllcyhJLCExKX1lbHNlIGlmKGw9PT0ibmV0d29yayIpe2IuZG93bmxvYWQ9bShiLmRvd25sb2FkLDEwMCwyMDAsMTApLGIudXBsb2FkPW0oYi51cGxvYWQsMjAsNTAsNSk7bGV0IEk9YS5jaGFydFNlcmllcy5tYXAoKFAsUik9Pih7bmFtZTpQLm5hbWUsZGF0YTpbLi4uUC5kYXRhLFI9PT0wP3t4OlMseTpiLmRvd25sb2FkfTp7eDpTLHk6Yi51cGxvYWR9XX0pKTthLnVwZGF0ZVNlcmllcyhJLCExKX19fSwiYWRkUmVhbHRpbWVEYXRhIiksej1pKCgpPT57aWYoIXIpcmV0dXJuO2xldCBIPURhdGUubm93KCksaz1uZXcgRGF0ZShIKS50b0lTT1N0cmluZygpLFM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIxKS0xMDtiLmNvbm5lY3Rpb25zPU1hdGgubWF4KDUwLE1hdGgubWluKDMwMCxiLmNvbm5lY3Rpb25zK1MpKTtsZXQgST1yLmNoYXJ0U2VyaWVzLFA9W3tuYW1lOklbMF0/Lm5hbWV8fCJDb25uZWN0aW9ucyIsZGF0YTpbLi4uSVswXT8uZGF0YXx8W10se3g6ayx5OmIuY29ubmVjdGlvbnN9XX1dO3IudXBkYXRlU2VyaWVzKFAsITEpfSwidXBkYXRlQ29ubmVjdGlvbnMiKSxOPWkoSD0+e2w9SDtsZXQgaz14W0hdO2EubGFiZWw9ay5sYWJlbCxhLnNlcmllcz1rLnNlcmllcyxhLnlBeGlzRm9ybWF0dGVyPXBbSF0sSD09PSJzeXN0ZW0iPyhhLnlBeGlzU2NhbGluZz0icGVyY2VudGFnZSIsYS55QXhpc01heD0xMDApOmEueUF4aXNTY2FsaW5nPSJkeW5hbWljIixmPURhdGUubm93KCktY30sInN3aXRjaERhdGFzZXQiKSxDPWkoKCk9PnshbiYmKGw9PT0ic3lzdGVtInx8bD09PSJuZXR3b3JrIikmJihhLnJlYWx0aW1lTW9kZT0hMCxuPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+TSgpLGMpKSxvfHwoci5yZWFsdGltZU1vZGU9ITAsbz13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PnooKSx1KSl9LCJzdGFydFJlYWx0aW1lIiksXz1pKCgpPT57biYmKHdpbmRvdy5jbGVhckludGVydmFsKG4pLG49bnVsbCxhLnJlYWx0aW1lTW9kZT0hMSksbyYmKHdpbmRvdy5jbGVhckludGVydmFsKG8pLG89bnVsbCxyLnJlYWx0aW1lTW9kZT0hMSl9LCJzdG9wUmVhbHRpbWUiKSxPPWkoKCk9PntsPT09InN5c3RlbSI/KGIuY3B1PU1hdGgucmFuZG9tKCk+LjU/ODU6MjUsYi5tZW1vcnk9TWF0aC5yYW5kb20oKT4uNT84MDo0NSk6bD09PSJuZXR3b3JrIiYmKGIuZG93bmxvYWQ9TWF0aC5yYW5kb20oKT4uNT8yNTA6MTAwLGIudXBsb2FkPU1hdGgucmFuZG9tKCk+LjU/ODA6MjApLGIuY29ubmVjdGlvbnM9TWF0aC5yYW5kb20oKT4uNT8yODA6ODAsZj0wLHk9MH0sInJhbmRvbWl6ZURhdGEiKSwkPWkoKCk9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChrPT57bGV0IFM9ay50ZXh0Py50cmltKCk7Uz09PSJTeXN0ZW0gVXNhZ2UiP2sudHlwZT1sPT09InN5c3RlbSI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpTPT09Ik5ldHdvcmsgVHJhZmZpYyI/ay50eXBlPWw9PT0ibmV0d29yayI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpTPT09IlNhbGVzIERhdGEiJiYoay50eXBlPWw9PT0ic2FsZXMiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCIpfSl9LCJ1cGRhdGVCdXR0b25TdGF0ZXMiKTtpZih0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChIPT57bGV0IGs9SC50ZXh0Py50cmltKCk7az09PSJTeXN0ZW0gVXNhZ2UiP0guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57Tigic3lzdGVtIiksJCgpfSk6az09PSJOZXR3b3JrIFRyYWZmaWMiP0guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57TigibmV0d29yayIpLCQoKX0pOms9PT0iU2FsZXMgRGF0YSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntOKCJzYWxlcyIpLCQoKX0pOms9PT0iU3RhcnQgTGl2ZSI/SC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkMoKSk6az09PSJTdG9wIExpdmUiP0guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCkpOms9PT0iU3Bpa2UgVmFsdWVzIiYmSC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oKSl9KSxhLnJvbGxpbmdXaW5kb3c9ZCxhLnJlYWx0aW1lTW9kZT0hMSxhLnlBeGlzU2NhbGluZz0icGVyY2VudGFnZSIsYS55QXhpc01heD0xMDAsYS5hdXRvU2Nyb2xsSW50ZXJ2YWw9MWUzLHNldFRpbWVvdXQoKCk9PnthLnVwZGF0ZVRpbWVXaW5kb3coKX0sMTAwKSxyKXtsZXQgSD12KGIuY29ubmVjdGlvbnMsMzAsdSk7ci5zZXJpZXM9W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpIfV0sci5yb2xsaW5nV2luZG93PWQsci5yZWFsdGltZU1vZGU9ITEsci55QXhpc1NjYWxpbmc9ImZpeGVkIixyLnlBeGlzTWF4PTM1MCxyLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e3IudXBkYXRlVGltZVdpbmRvdygpfSwxMDApfX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtKYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGF0YXNldDoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW0gVXNhZ2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcmsgVHJhZmZpYzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXMgRGF0YTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlJlYWwtdGltZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IExpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TcGlrZSBWYWx1ZXM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0ibWFpbi1jaGFydCIKICAgICAgICAgIC5sYWJlbD0ke3Muc3lzdGVtLmxhYmVsfQogICAgICAgICAgLnNlcmllcz0ke3Muc3lzdGVtLnNlcmllc30KICAgICAgICAgIC55QXhpc0Zvcm1hdHRlcj0ke2Uuc3lzdGVtfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiIHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+CiAgICAgICAgPGRlZXMtY2hhcnQtYXJlYQogICAgICAgICAgaWQ9ImNvbm5lY3Rpb25zLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSBDb25uZWN0aW9ucyJ9CiAgICAgICAgICAuc2VyaWVzPSR7W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpbXX1dfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7dD0+YCR7dH1gfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBSZWFsLXRpbWUgbW9uaXRvcmluZyB3aXRoIDItbWludXRlIHJvbGxpbmcgd2luZG93IOKAoiAKICAgICAgICBVcGRhdGVzIGV2ZXJ5IHNlY29uZCB3aXRoIHNtb290aCB2YWx1ZSB0cmFuc2l0aW9ucyDigKIgCiAgICAgICAgQ2xpY2sgJ1NwaWtlIFZhbHVlcycgdG8gc2ltdWxhdGUgbG9hZCBzcGlrZXMKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBteGEsZ3hhPWcoKCk9PntwZSgpO2h0KCk7bXhhPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmNoYXJ0SGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgfQogICAgICAuY2hhcnRMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KICAgICAgLmV4cGFuZEJ0biB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIC5leHBhbmRCdG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMCAwIDRweCAwOwogICAgICB9CiAgICAgIC5zdGF0c0JhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzICsgLnN0YXRzU2VyaWVzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAuc3RhdHNDb2xvciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgLnN0YXRzTmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICB9CiAgICAgIC5zdGF0c0l0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAuc3RhdHNJdGVtIHN0cm9uZyB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAubHctdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KICAgIGBdfSk7dmFyIGJ4YSx2eGE9ZygoKT0+e3BlKCk7R2EoKTtieGE9aShzPT53YAogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImV4cGFuZEJ0biIgQGNsaWNrPSR7KCk9PnMudG9nZ2xlRnVsbFBhZ2UoKX0gdGl0bGU9IiR7cy5pc0Z1bGxQYWdlPyJFeGl0IGZ1bGwgcGFnZSI6IkZ1bGwgcGFnZSJ9Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7cy5pc0Z1bGxQYWdlPyJsdWNpZGU6TWluaW1pemUyIjoibHVjaWRlOk1heGltaXplMiJ9IC5pY29uU2l6ZT0kezE0fT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICR7cy5zZXJpZXNTdGF0cy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InN0YXRzQmFyIj4KICAgICAgICAgICAgICAke3Muc2VyaWVzU3RhdHMubWFwKGU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0c1NlcmllcyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0NvbG9yIiBzdHlsZT0iYmFja2dyb3VuZDoke2UuY29sb3J9Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c05hbWUiPiR7ZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+bGF0ZXN0IDxzdHJvbmc+JHtzLnlBeGlzRm9ybWF0dGVyKGUubGF0ZXN0KX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0l0ZW0iPm1pbiA8c3Ryb25nPiR7cy55QXhpc0Zvcm1hdHRlcihlLm1pbil9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5tYXggPHN0cm9uZz4ke3MueUF4aXNGb3JtYXR0ZXIoZS5tYXgpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+YXZnIDxzdHJvbmc+JHtzLnlBeGlzRm9ybWF0dGVyKGUuYXZnKX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICBgLCJyZW5kZXJDaGFydEFyZWEiKX0pO3ZhciBKYyxQaSxnZXMsWm50PWcoKCk9PntwZSgpO2t0KCk7ZnhhKCk7Z3hhKCk7dnhhKCk7T3UoKTttcigpO0pjPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxQaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZ2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1jaGFydC1hcmVhIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdO3ZhciBoZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0QXJlYSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBGPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLHg9W0woKV0seT1bTCh7dHlwZTpBcnJheX0pXSxOPVtMKHthdHRyaWJ1dGU6ITF9KV0sTz1bTCh7dHlwZTpOdW1iZXJ9KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe3R5cGU6U3RyaW5nfSldLEs9W0woe3R5cGU6TnVtYmVyfSldLG1lPVtMKHt0eXBlOk51bWJlcn0pXSxKYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYXJ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJjaGFydCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmNoYXJ0LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmNoYXJ0PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG8sbCksSmModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXNTdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VyaWVzU3RhdHMiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZXJpZXNTdGF0cywiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5zZXJpZXNTdGF0cz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxkLHUpLEpjKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNGdWxsUGFnZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmlzRnVsbFBhZ2UsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNGdWxsUGFnZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxiLHYpLEpjKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImxhYmVsImluIGosImhhcyIpLGdldDppKGo9PmoubGFiZWwsImdldCIpLHNldDppKChqLHVlKT0+e2oubGFiZWw9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sbSxmKSxKYyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VyaWVzImluIGosImhhcyIpLGdldDppKGo9Pmouc2VyaWVzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNlcmllcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxNLHopLEpjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InlBeGlzRm9ybWF0dGVyImluIGosImhhcyIpLGdldDppKGo9PmoueUF4aXNGb3JtYXR0ZXIsImdldCIpLHNldDppKChqLHVlKT0+e2oueUF4aXNGb3JtYXR0ZXI9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQyxfKSxKYyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvbGxpbmdXaW5kb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InJvbGxpbmdXaW5kb3ciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5yb2xsaW5nV2luZG93LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJvbGxpbmdXaW5kb3c9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sJCxFKSxKYyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlYWx0aW1lTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icmVhbHRpbWVNb2RlImluIGosImhhcyIpLGdldDppKGo9PmoucmVhbHRpbWVNb2RlLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJlYWx0aW1lTW9kZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxrLFMpLEpjKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNTY2FsaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ5QXhpc1NjYWxpbmciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai55QXhpc1NjYWxpbmcsImdldCIpLHNldDppKChqLHVlKT0+e2oueUF4aXNTY2FsaW5nPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFAsUiksSmModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc01heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ieUF4aXNNYXgiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai55QXhpc01heCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai55QXhpc01heD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxWLFcpLEpjKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGxJbnRlcnZhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYXV0b1Njcm9sbEludGVydmFsImluIGosImhhcyIpLGdldDppKGo9PmouYXV0b1Njcm9sbEludGVydmFsLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLmF1dG9TY3JvbGxJbnRlcnZhbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxCLFUpLEpjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkZ9LG51bGwsdCksaGU9YT1lLnZhbHVlLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pfXN0YXRpYyBkZW1vPWh4YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9UGkodGhpcyxvLG51bGwpO2dldCBjaGFydCgpe3JldHVybiB0aGlzLiNlfXNldCBjaGFydChGKXt0aGlzLiNlPUZ9I3Q9KFBpKHRoaXMsbCksUGkodGhpcyxkLFtdKSk7Z2V0IHNlcmllc1N0YXRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllc1N0YXRzKEYpe3RoaXMuI3Q9Rn0jYT0oUGkodGhpcyx1KSxQaSh0aGlzLGIsITEpKTtnZXQgaXNGdWxsUGFnZSgpe3JldHVybiB0aGlzLiNhfXNldCBpc0Z1bGxQYWdlKEYpe3RoaXMuI2E9Rn0jcz0oUGkodGhpcyx2KSxQaSh0aGlzLG0sIlVudGl0bGVkIENoYXJ0IikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNzfXNldCBsYWJlbChGKXt0aGlzLiNzPUZ9I2k9KFBpKHRoaXMsZiksUGkodGhpcyxNLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiNpfXNldCBzZXJpZXMoRil7dGhpcy4jaT1GfWdldCBjaGFydFNlcmllcygpe3JldHVybiB0aGlzLmludGVybmFsQ2hhcnREYXRhLmxlbmd0aD4wP3RoaXMuaW50ZXJuYWxDaGFydERhdGE6dGhpcy5zZXJpZXN9I3I9KFBpKHRoaXMseiksUGkodGhpcyxDLEY9PmAke0Z9IE1icHNgKSk7Z2V0IHlBeGlzRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHlBeGlzRm9ybWF0dGVyKEYpe3RoaXMuI3I9Rn0jbz0oUGkodGhpcyxfKSxQaSh0aGlzLCQsMCkpO2dldCByb2xsaW5nV2luZG93KCl7cmV0dXJuIHRoaXMuI299c2V0IHJvbGxpbmdXaW5kb3coRil7dGhpcy4jbz1GfSNuPShQaSh0aGlzLEUpLFBpKHRoaXMsaywhMSkpO2dldCByZWFsdGltZU1vZGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcmVhbHRpbWVNb2RlKEYpe3RoaXMuI249Rn0jbD0oUGkodGhpcyxTKSxQaSh0aGlzLFAsImR5bmFtaWMiKSk7Z2V0IHlBeGlzU2NhbGluZygpe3JldHVybiB0aGlzLiNsfXNldCB5QXhpc1NjYWxpbmcoRil7dGhpcy4jbD1GfSNjPShQaSh0aGlzLFIpLFBpKHRoaXMsViwxMDApKTtnZXQgeUF4aXNNYXgoKXtyZXR1cm4gdGhpcy4jY31zZXQgeUF4aXNNYXgoRil7dGhpcy4jYz1GfSNkPShQaSh0aGlzLFcpLFBpKHRoaXMsQiwxZTMpKTtnZXQgYXV0b1Njcm9sbEludGVydmFsKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGF1dG9TY3JvbGxJbnRlcnZhbChGKXt0aGlzLiNkPUZ9aW50ZXJuYWxDaGFydERhdGE9KFBpKHRoaXMsVSksW10pO2F1dG9TY3JvbGxUaW1lcj1udWxsO2xjQnVuZGxlPW51bGw7c2VyaWVzQXBpcz1uZXcgTWFwO3ByaWNlTGluZXM9bmV3IE1hcDt0b29sdGlwRWw9bnVsbDtDSEFSVF9DT0xPUlM9e2Rhcms6WyJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDE3My40IDgwLjQlIDQwJSkiLCJoc2woMjgwLjMgODcuNCUgNjYuNyUpIiwiaHNsKDI0LjYgOTUlIDUzLjElKSJdLGxpZ2h0OlsiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMjgwLjMgNDcuNyUgNTAuMiUpIiwiaHNsKDIwLjUgOTAuMiUgNDguMiUpIl19O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0YS5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLmNoYXJ0KXRyeXt0aGlzLmNoYXJ0LnJlbW92ZSgpLHRoaXMuY2hhcnQ9bnVsbCx0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKX1jYXRjaChGKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIGNoYXJ0OiIsRil9fSl9c3RhdGljIHN0eWxlcz1teGE7cmVuZGVyKCl7cmV0dXJuIGJ4YSh0aGlzKX1jb252ZXJ0RGF0YVRvTEMoRil7cmV0dXJuIEYubWFwKGo9PntsZXQgdWU9dHlwZW9mIGoueD09Im51bWJlciI/ai54Om5ldyBEYXRlKGoueCkuZ2V0VGltZSgpO3JldHVybnt0aW1lOk1hdGguZmxvb3IodWUvMWUzKSx2YWx1ZTpqLnl9fSkuc29ydCgoaix1ZSk9PmoudGltZS11ZS50aW1lKX1oc2xUb1JnYmEoRixqKXtsZXQgdWU9Ri5tYXRjaCgvaHNsXCgoW14pXSspXCkvKTtpZighdWUpcmV0dXJuIEY7bGV0IGxlPXVlWzFdLnRyaW0oKS5zcGxpdCgvXHMrLyk7aWYobGUubGVuZ3RoPDMpcmV0dXJuIEY7bGV0IFE9cGFyc2VGbG9hdChsZVswXSkvMzYwLGllPXBhcnNlRmxvYXQobGVbMV0pLzEwMCx0ZT1wYXJzZUZsb2F0KGxlWzJdKS8xMDAsZWUsa2UsWDtpZihpZT09PTApZWU9a2U9WD10ZTtlbHNle2xldCBaPWkoKEEsc2Usb2UpPT4ob2U8MCYmKG9lKz0xKSxvZT4xJiYob2UtPTEpLG9lPC4xNjY2NjY2NjY2NjY2NjY2Nj9BKyhzZS1BKSo2Km9lOm9lPC41P3NlOm9lPC42NjY2NjY2NjY2NjY2NjY2P0ErKHNlLUEpKiguNjY2NjY2NjY2NjY2NjY2Ni1vZSkqNjpBKSwiaHVlMnJnYiIpLHllPXRlPC41P3RlKigxK2llKTp0ZStpZS10ZSppZSxxPTIqdGUteWU7ZWU9WihxLHllLFErMS8zKSxrZT1aKHEseWUsUSksWD1aKHEseWUsUS0xLzMpfXJldHVybmByZ2JhKCR7TWF0aC5yb3VuZChlZSoyNTUpfSwgJHtNYXRoLnJvdW5kKGtlKjI1NSl9LCAke01hdGgucm91bmQoWCoyNTUpfSwgJHtqfSlgfWdldFNlcmllc0NvbG9ycyhGKXtyZXR1cm4gRj90aGlzLkNIQVJUX0NPTE9SUy5kYXJrOnRoaXMuQ0hBUlRfQ09MT1JTLmxpZ2h0fWFwcGx5VGhlbWUoKXtpZighdGhpcy5jaGFydHx8IXRoaXMubGNCdW5kbGUpcmV0dXJuO2xldCBGPSF0aGlzLmdvQnJpZ2h0LGo9dGhpcy5nZXRTZXJpZXNDb2xvcnMoRik7dGhpcy5jaGFydC5hcHBseU9wdGlvbnMoe2xheW91dDp7YmFja2dyb3VuZDp7dHlwZTp0aGlzLmxjQnVuZGxlLkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjoidHJhbnNwYXJlbnQifSx0ZXh0Q29sb3I6Rj8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSIsYXR0cmlidXRpb25Mb2dvOiExfSxncmlkOnt2ZXJ0TGluZXM6e2NvbG9yOkY/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn0saG9yekxpbmVzOntjb2xvcjpGPyJoc2woMCAwJSA4LjUlKSI6ImhzbCgwIDAlIDk1LjUlKSJ9fX0pO2xldCB1ZT0wO2ZvcihsZXRbLGxlXW9mIHRoaXMuc2VyaWVzQXBpcyl7bGV0IFE9alt1ZSVqLmxlbmd0aF07bGUuYXBwbHlPcHRpb25zKHt0b3BDb2xvcjp0aGlzLmhzbFRvUmdiYShRLEY/LjQ6LjUpLGJvdHRvbUNvbG9yOnRoaXMuaHNsVG9SZ2JhKFEsMCksbGluZUNvbG9yOlF9KSx1ZSsrfX1yZWNyZWF0ZVNlcmllcyhGKXtpZighdGhpcy5jaGFydHx8IXRoaXMubGNCdW5kbGUpcmV0dXJuO2xldCBqPSF0aGlzLmdvQnJpZ2h0LHVlPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKGopO2ZvcihsZXRbLGxlXW9mIHRoaXMuc2VyaWVzQXBpcyl0aGlzLmNoYXJ0LnJlbW92ZVNlcmllcyhsZSk7dGhpcy5zZXJpZXNBcGlzLmNsZWFyKCksdGhpcy5wcmljZUxpbmVzLmNsZWFyKCksRi5mb3JFYWNoKChsZSxRKT0+e2xldCBpZT11ZVtRJXVlLmxlbmd0aF0sdGU9dGhpcy5jaGFydC5hZGRTZXJpZXModGhpcy5sY0J1bmRsZS5BcmVhU2VyaWVzLHt0b3BDb2xvcjp0aGlzLmhzbFRvUmdiYShpZSxqPy40Oi41KSxib3R0b21Db2xvcjp0aGlzLmhzbFRvUmdiYShpZSwwKSxsaW5lQ29sb3I6aWUsbGluZVdpZHRoOjIsbGluZVR5cGU6dGhpcy5sY0J1bmRsZS5MaW5lVHlwZS5DdXJ2ZWQsbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZUxpbmVWaXNpYmxlOiExLGNyb3NzaGFpck1hcmtlclZpc2libGU6ITAsY3Jvc3NoYWlyTWFya2VyUmFkaXVzOjR9KTt0ZS5zZXREYXRhKHRoaXMuY29udmVydERhdGFUb0xDKGxlLmRhdGEpKSx0aGlzLnVwZGF0ZVByaWNlTGluZXMobGUubmFtZXx8YHNlcmllcy0ke1F9YCx0ZSxsZS5kYXRhLGllKSx0aGlzLnlBeGlzU2NhbGluZyE9PSJkeW5hbWljIiYmdGUuYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6aSgoKT0+KHtwcmljZVJhbmdlOnttaW5WYWx1ZTowLG1heFZhbHVlOnRoaXMueUF4aXNNYXh9fSksImF1dG9zY2FsZUluZm9Qcm92aWRlciIpfSksdGhpcy5zZXJpZXNBcGlzLnNldChsZS5uYW1lfHxgc2VyaWVzLSR7UX1gLHRlKX0pLHRoaXMuY29tcHV0ZVN0YXRzKEYpfWNvbXB1dGVTdGF0cyhGKXtsZXQgaj0hdGhpcy5nb0JyaWdodCx1ZT10aGlzLmdldFNlcmllc0NvbG9ycyhqKTt0aGlzLnNlcmllc1N0YXRzPUYubWFwKChsZSxRKT0+e2xldCBpZT1sZS5kYXRhLm1hcChaPT5aLnkpO2lmKGllLmxlbmd0aD09PTApcmV0dXJue25hbWU6bGUubmFtZXx8YHNlcmllcy0ke1F9YCxsYXRlc3Q6MCxtaW46MCxtYXg6MCxhdmc6MCxjb2xvcjp1ZVtRJXVlLmxlbmd0aF19O2xldCB0ZT1pZVtpZS5sZW5ndGgtMV0sZWU9TWF0aC5taW4oLi4uaWUpLGtlPU1hdGgubWF4KC4uLmllKSxYPU1hdGgucm91bmQoaWUucmVkdWNlKChaLHllKT0+Wit5ZSwwKS9pZS5sZW5ndGgqMTAwKS8xMDA7cmV0dXJue25hbWU6bGUubmFtZXx8YHNlcmllcy0ke1F9YCxsYXRlc3Q6dGUsbWluOmVlLG1heDprZSxhdmc6WCxjb2xvcjp1ZVtRJXVlLmxlbmd0aF19fSl9dXBkYXRlUHJpY2VMaW5lcyhGLGosdWUsbGUpe2xldCBRPXRoaXMucHJpY2VMaW5lcy5nZXQoRik7aWYoUSlmb3IobGV0IFggb2YgUSlqLnJlbW92ZVByaWNlTGluZShYKTtpZih1ZS5sZW5ndGg9PT0wKXt0aGlzLnByaWNlTGluZXMuc2V0KEYsW10pO3JldHVybn1sZXQgaWU9dWUubWFwKFg9PlgueSksdGU9aWUucmVkdWNlKChYLFopPT5YK1osMCkvaWUubGVuZ3RoLGVlPU1hdGgubWF4KC4uLmllKSxrZT1bXTtrZS5wdXNoKGouY3JlYXRlUHJpY2VMaW5lKHtwcmljZTpNYXRoLnJvdW5kKHRlKjEwMCkvMTAwLGNvbG9yOnRoaXMuaHNsVG9SZ2JhKGxlLC41KSxsaW5lV2lkdGg6MSxsaW5lU3R5bGU6MixheGlzTGFiZWxWaXNpYmxlOiEwLHRpdGxlOiJhdmcifSkpLHRlPjAmJihlZS10ZSkvdGU+LjEmJmtlLnB1c2goai5jcmVhdGVQcmljZUxpbmUoe3ByaWNlOmVlLGNvbG9yOnRoaXMuaHNsVG9SZ2JhKGxlLC44KSxsaW5lV2lkdGg6MSxsaW5lU3R5bGU6MSxheGlzTGFiZWxWaXNpYmxlOiEwLHRpdGxlOiJtYXgifSkpLHRoaXMucHJpY2VMaW5lcy5zZXQoRixrZSl9c2V0dXBUb29sdGlwKCl7dGhpcy5jaGFydCYmKHRoaXMudG9vbHRpcEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMudG9vbHRpcEVsLmNsYXNzTmFtZT0ibHctdG9vbHRpcCIsdGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpPy5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBFbCksdGhpcy5jaGFydC5zdWJzY3JpYmVDcm9zc2hhaXJNb3ZlKEY9PntpZighdGhpcy50b29sdGlwRWwpcmV0dXJuO2lmKCFGLnBvaW50fHwhRi50aW1lfHxGLnBvaW50Lng8MHx8Ri5wb2ludC55PDApe3RoaXMudG9vbHRpcEVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybn1sZXQgaj0hdGhpcy5nb0JyaWdodCx1ZT1qPyJoc2woMCAwJSA5JSkiOiJoc2woMCAwJSAxMDAlKSIsbGU9aj8iaHNsKDAgMCUgOTUlKSI6ImhzbCgwIDAlIDklKSIsUT1qPyJoc2woMCAwJSAxNC45JSkiOiJoc2woMCAwJSA4OS44JSkiLGllPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKGopLHRlPSIiLGVlPTAsa2U9ITE7Zm9yKGxldFt5ZSxxXW9mIHRoaXMuc2VyaWVzQXBpcyl7bGV0IEE9Ri5zZXJpZXNEYXRhLmdldChxKTtpZihBJiYidmFsdWUiaW4gQSYmQS52YWx1ZSE9PXZvaWQgMCl7a2U9ITA7bGV0IHNlPWllW2VlJWllLmxlbmd0aF0sb2U9dGhpcy55QXhpc0Zvcm1hdHRlcihBLnZhbHVlKTt0ZSs9YDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttYXJnaW46JHtlZT4wPyI2cHgiOiIwIn0gMDsiPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kOiR7c2V9O2JvcmRlci1yYWRpdXM6MnB4OyI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NTAwOyI+JHt5ZX06PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0bztmb250LXdlaWdodDo2MDA7Ij4ke29lfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PmB9ZWUrK31pZigha2Upe3RoaXMudG9vbHRpcEVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybn10aGlzLnRvb2x0aXBFbC5pbm5lckhUTUw9dGUsT2JqZWN0LmFzc2lnbih0aGlzLnRvb2x0aXBFbC5zdHlsZSx7ZGlzcGxheToiYmxvY2siLGJhY2tncm91bmQ6dWUsY29sb3I6bGUsYm9yZGVyQ29sb3I6UX0pO2xldCBYPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKS5jbGllbnRXaWR0aCxaPUYucG9pbnQueCsxNjtaKzIwMD5YJiYoWj1GLnBvaW50LngtMjE2KSx0aGlzLnRvb2x0aXBFbC5zdHlsZS5sZWZ0PWAke1p9cHhgLHRoaXMudG9vbHRpcEVsLnN0eWxlLnRvcD1gJHtGLnBvaW50LnktMTZ9cHhgfSkpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHRoaXMubGNCdW5kbGU9YXdhaXQgYW8uZ2V0SW5zdGFuY2UoKS5sb2FkTGlnaHR3ZWlnaHRDaGFydHMoKSxhd2FpdCBuZXcgUHJvbWlzZSh1ZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHVlKSk7bGV0IEY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFGKXJldHVybjtsZXQgaj0hdGhpcy5nb0JyaWdodDt0cnl7dGhpcy5jaGFydD10aGlzLmxjQnVuZGxlLmNyZWF0ZUNoYXJ0KEYse2F1dG9TaXplOiEwLGxheW91dDp7YmFja2dyb3VuZDp7dHlwZTp0aGlzLmxjQnVuZGxlLkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjoidHJhbnNwYXJlbnQifSx0ZXh0Q29sb3I6aj8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSIsZm9udEZhbWlseTonLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBzYW5zLXNlcmlmJyxmb250U2l6ZToxMixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6aj8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOmo/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19LHJpZ2h0UHJpY2VTY2FsZTp7Ym9yZGVyVmlzaWJsZTohMSxzY2FsZU1hcmdpbnM6e3RvcDouMSxib3R0b206LjF9fSx0aW1lU2NhbGU6e2JvcmRlclZpc2libGU6ITEsdGltZVZpc2libGU6ITAsc2Vjb25kc1Zpc2libGU6ITB9LGNyb3NzaGFpcjp7bW9kZTp0aGlzLmxjQnVuZGxlLkNyb3NzaGFpck1vZGUuTWFnbmV0fSxoYW5kbGVTY3JvbGw6ITEsaGFuZGxlU2NhbGU6ITF9KTtsZXQgdWU9dGhpcy5zZXJpZXMubGVuZ3RoPjA/dGhpcy5zZXJpZXM6W3tuYW1lOiJjcHUiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjI1fSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MjB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjM1fSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseToyNX1dfSx7bmFtZToibWVtb3J5IixkYXRhOlt7eDoiMjAyNS0wMS0xNVQwMzowMDowMCIseToxMH0se3g6IjIwMjUtMDEtMTVUMDc6MDA6MDAiLHk6MTJ9LHt4OiIyMDI1LTAxLTE1VDExOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQxNTowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTk6MDA6MDAiLHk6NDB9XX1dO3RoaXMuaW50ZXJuYWxDaGFydERhdGE9dWUsdGhpcy5yZWNyZWF0ZVNlcmllcyh1ZSksdGhpcy5zZXR1cFRvb2x0aXAoKX1jYXRjaCh1ZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhcnQ6Iix1ZSl9fWFzeW5jIHVwZGF0ZWQoRil7aWYoc3VwZXIudXBkYXRlZChGKSxGLmhhcygiZ29CcmlnaHQiKSYmdGhpcy5jaGFydCYmdGhpcy5hcHBseVRoZW1lKCksRi5oYXMoInNlcmllcyIpJiZ0aGlzLmNoYXJ0JiZ0aGlzLnNlcmllcy5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGRhdGVTZXJpZXModGhpcy5zZXJpZXMpLEYuaGFzKCJ5QXhpc0Zvcm1hdHRlciIpJiZ0aGlzLmNoYXJ0LEYuaGFzKCJyZWFsdGltZU1vZGUiKSYmdGhpcy5jaGFydCYmKHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MD90aGlzLnN0YXJ0QXV0b1Njcm9sbCgpOnRoaXMuc3RvcEF1dG9TY3JvbGwoKSksRi5oYXMoImF1dG9TY3JvbGxJbnRlcnZhbCIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MCYmdGhpcy5zdGFydEF1dG9TY3JvbGwoKSksKEYuaGFzKCJ5QXhpc1NjYWxpbmciKXx8Ri5oYXMoInlBeGlzTWF4IikpJiZ0aGlzLmNoYXJ0KWZvcihsZXRbLGpdb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP2ouYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6dm9pZCAwfSk6ai5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KX1hc3luYyB1cGRhdGVTZXJpZXMoRixqPSEwKXtpZih0aGlzLmNoYXJ0KXRyeXtpZih0aGlzLmludGVybmFsQ2hhcnREYXRhPUYsdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMucmVhbHRpbWVNb2RlKXtsZXQgdWU9RGF0ZS5ub3coKSxsZT11ZS10aGlzLnJvbGxpbmdXaW5kb3c7aWYoRi5sZW5ndGghPT10aGlzLnNlcmllc0FwaXMuc2l6ZSl0aGlzLnJlY3JlYXRlU2VyaWVzKEYpO2Vsc2V7bGV0IFE9dGhpcy5nZXRTZXJpZXNDb2xvcnMoIXRoaXMuZ29CcmlnaHQpO0YuZm9yRWFjaCgoaWUsdGUpPT57bGV0IGVlPWllLm5hbWV8fGBzZXJpZXMtJHt0ZX1gLGtlPXRoaXMuc2VyaWVzQXBpcy5nZXQoZWUpO2lmKCFrZSlyZXR1cm47bGV0IFg9aWUuZGF0YS5maWx0ZXIoWj0+KHR5cGVvZiBaLng9PSJudW1iZXIiP1oueDpuZXcgRGF0ZShaLngpLmdldFRpbWUoKSk+bGUpO2tlLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMoWCkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhlZSxrZSxYLFFbdGUlUS5sZW5ndGhdKX0pLHRoaXMuY29tcHV0ZVN0YXRzKEYpfXRyeXt0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLnNldFZpc2libGVSYW5nZSh7ZnJvbTpNYXRoLmZsb29yKGxlLzFlMyksdG86TWF0aC5mbG9vcih1ZS8xZTMpfSl9Y2F0Y2h7fWlmKHRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiKXtsZXQgUT1GLmZsYXRNYXAoaWU9PmllLmRhdGEuZmlsdGVyKHRlPT4odHlwZW9mIHRlLng9PSJudW1iZXIiP3RlLng6bmV3IERhdGUodGUueCkuZ2V0VGltZSgpKT5sZSkubWFwKHRlPT50ZS55KSk7aWYoUS5sZW5ndGg+MCl7bGV0IGllPU1hdGguY2VpbChNYXRoLm1heCguLi5RKSoxLjEpO2ZvcihsZXRbLHRlXW9mIHRoaXMuc2VyaWVzQXBpcyl0ZS5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6aWV9fSksImF1dG9zY2FsZUluZm9Qcm92aWRlciIpfSl9fX1lbHNlIGlmKEYubGVuZ3RoIT09dGhpcy5zZXJpZXNBcGlzLnNpemUpdGhpcy5yZWNyZWF0ZVNlcmllcyhGKTtlbHNle2xldCB1ZT10aGlzLmdldFNlcmllc0NvbG9ycyghdGhpcy5nb0JyaWdodCk7Ri5mb3JFYWNoKChsZSxRKT0+e2xldCBpZT1sZS5uYW1lfHxgc2VyaWVzLSR7UX1gLHRlPXRoaXMuc2VyaWVzQXBpcy5nZXQoaWUpO3RlJiYodGUuc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyhsZS5kYXRhKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKGllLHRlLGxlLmRhdGEsdWVbUSV1ZS5sZW5ndGhdKSl9KSx0aGlzLmNvbXB1dGVTdGF0cyhGKX19Y2F0Y2godWUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGRhdGUgY2hhcnQgc2VyaWVzOiIsdWUpfX1hc3luYyB1cGRhdGVUaW1lV2luZG93KCl7aWYoIXRoaXMuY2hhcnR8fHRoaXMucm9sbGluZ1dpbmRvdzw9MClyZXR1cm47bGV0IEY9RGF0ZS5ub3coKSxqPUYtdGhpcy5yb2xsaW5nV2luZG93O3RyeXt0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLnNldFZpc2libGVSYW5nZSh7ZnJvbTpNYXRoLmZsb29yKGovMWUzKSx0bzpNYXRoLmZsb29yKEYvMWUzKX0pfWNhdGNoe319YXN5bmMgYXBwZW5kRGF0YShGKXt0aGlzLmNoYXJ0JiZGLmZvckVhY2goKGosdWUpPT57bGV0IGxlPWoubmFtZXx8YHNlcmllcy0ke3VlfWAsUT10aGlzLnNlcmllc0FwaXMuZ2V0KGxlKTtpZighKCFRfHxqLmRhdGEubGVuZ3RoPT09MCkpZm9yKGxldCBpZSBvZiBqLmRhdGEpe2xldCB0ZT10aGlzLmNvbnZlcnREYXRhVG9MQyhbaWVdKTt0ZS5sZW5ndGg+MCYmUS51cGRhdGUodGVbMF0pfX0pfWFzeW5jIHVwZGF0ZU9wdGlvbnMoRil7dGhpcy5jaGFydCYmdGhpcy5jaGFydC5hcHBseU9wdGlvbnMoRil9YXN5bmMgcmVzaXplQ2hhcnQoKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX1hc3luYyBmb3JjZVJlc2l6ZSgpe2F3YWl0IHRoaXMucmVzaXplQ2hhcnQoKX10b2dnbGVGdWxsUGFnZSgpe3RoaXMuaXNGdWxsUGFnZT0hdGhpcy5pc0Z1bGxQYWdlLHRoaXMuaXNGdWxsUGFnZT8odGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUuaW5zZXQ9IjAiLHRoaXMuc3R5bGUuekluZGV4PSIxMDAwMCIsdGhpcy5zdHlsZS5oZWlnaHQ9IjEwMHZoIix0aGlzLnN0eWxlLnBhZGRpbmc9IjAiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpOih0aGlzLnN0eWxlLnBvc2l0aW9uPSIiLHRoaXMuc3R5bGUuaW5zZXQ9IiIsdGhpcy5zdHlsZS56SW5kZXg9IiIsdGhpcy5zdHlsZS5oZWlnaHQ9IiIsdGhpcy5zdHlsZS5wYWRkaW5nPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9IiIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2hhcnQ/LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX0pfXN0YXJ0QXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyfHwodGhpcy5hdXRvU2Nyb2xsVGltZXI9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy51cGRhdGVUaW1lV2luZG93KCl9LHRoaXMuYXV0b1Njcm9sbEludGVydmFsKSl9c3RvcEF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGxUaW1lciYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuYXV0b1Njcm9sbFRpbWVyKSx0aGlzLmF1dG9TY3JvbGxUaW1lcj1udWxsKX1zdGF0aWN7UGkoYSx0KX19O3JldHVybiBoZT1hfSkoKX0pO3ZhciB4eGE9ZygoKT0+e1pudCgpfSk7ZnVuY3Rpb24gZjQocyl7cmV0dXJuIHM/a3hhLmxpZ2h0Omt4YS5kYXJrfWZ1bmN0aW9uIG00KHMsZSl7bGV0IHQ9cGFyc2VJbnQocy5zbGljZSgxLDMpLDE2KSxhPXBhcnNlSW50KHMuc2xpY2UoMyw1KSwxNikscj1wYXJzZUludChzLnNsaWNlKDUsNyksMTYpO3JldHVybmByZ2JhKCR7dH0sICR7YX0sICR7cn0sICR7ZX0pYH1mdW5jdGlvbiBTeGEocyl7bGV0IGU9cz95eGE6d3hhO3JldHVybntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iix0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRTaXplOjEyfSx0b29sdGlwOntiYWNrZ3JvdW5kQ29sb3I6ZS5iZ1ByaW1hcnksYm9yZGVyQ29sb3I6ZS5ib3JkZXJEZWZhdWx0LHRleHRTdHlsZTp7Y29sb3I6ZS50ZXh0UHJpbWFyeSxmb250U2l6ZToxMn0sY29uZmluZTohMH0sbGVnZW5kOnt0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250U2l6ZToxMn19fX1mdW5jdGlvbiBnNChzKXtyZXR1cm4gcz95eGE6d3hhfXZhciB5eGEsd3hhLGt4YSxfeD1nKCgpPT57aHQoKTt5eGE9WGMuY29sb3JzLmxpZ2h0LHd4YT1YYy5jb2xvcnMuZGFyayxreGE9e2Rhcms6WyIjNjBhNWZhIiwiIzJkZDRiZiIsIiNhNzhiZmEiLCIjZmJiZjI0IiwiIzM0ZDM5OSIsIiNmYjcxODUiXSxsaWdodDpbIiMzYjgyZjYiLCIjMTRiOGE2IiwiIzhiNWNmNiIsIiNmNTllMGIiLCIjMTBiOTgxIiwiI2Y0M2Y1ZSJdfTtpKGY0LCJnZXRFY2hhcnRzU2VyaWVzQ29sb3JzIik7aShtNCwiaGV4VG9SZ2JhIik7aShTeGEsImdldEVjaGFydHNUaGVtZU9wdGlvbnMiKTtpKGc0LCJnZXRUaGVtZUNvbG9ycyIpfSk7dmFyIGJlcyxfeGEsSHUsVVE9ZygoKT0+e3BlKCk7a3QoKTtPdSgpO194KCk7bXIoKTtiZXM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LF94YT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSHU9KCgpPT57bGV0IHM9d2UsZSx0PVtdLGE9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRFY2hhcnRzQmFzZSIpfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtMKCldLGJlcyh0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG89PiJsYWJlbCJpbiBvLCJoYXMiKSxnZXQ6aShvPT5vLmxhYmVsLCJnZXQiKSxzZXQ6aSgobyxsKT0+e28ubGFiZWw9bH0sInNldCIpfSxtZXRhZGF0YTpufSx0LGEpLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfSNlPV94YSh0aGlzLHQsIlVudGl0bGVkIENoYXJ0Iik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKG4pe3RoaXMuI2U9bn1jaGFydEluc3RhbmNlPShfeGEodGhpcyxhKSxudWxsKTtlY2hhcnRzQnVuZGxlPW51bGw7cmVzaXplT2JzZXJ2ZXI9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGEuc2V0dXAoKSx0aGlzLnJlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGFzeW5jKCk9PntpZih0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1udWxsKSx0aGlzLmNoYXJ0SW5zdGFuY2UpdHJ5e3RoaXMuY2hhcnRJbnN0YW5jZS5kaXNwb3NlKCksdGhpcy5jaGFydEluc3RhbmNlPW51bGx9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRXJyb3IgZGlzcG9zaW5nIEVDaGFydHMgaW5zdGFuY2U6IixuKX19KX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHRoaXMuZWNoYXJ0c0J1bmRsZT1hd2FpdCBhby5nZXRJbnN0YW5jZSgpLmxvYWRFY2hhcnRzKCksYXdhaXQgbmV3IFByb21pc2Uobz0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pKTtsZXQgbj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik7aWYobil0cnl7dGhpcy5jaGFydEluc3RhbmNlPXRoaXMuZWNoYXJ0c0J1bmRsZS5pbml0KG4sbnVsbCx7cmVuZGVyZXI6InN2ZyJ9KSx0aGlzLnVwZGF0ZUNoYXJ0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNoYXJ0SW5zdGFuY2U/LnJlc2l6ZSgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKG4pfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIEVDaGFydHM6IixvKX19YXN5bmMgdXBkYXRlZChuKXtzdXBlci51cGRhdGVkKG4pLG4uaGFzKCJnb0JyaWdodCIpJiZ0aGlzLmNoYXJ0SW5zdGFuY2UmJnRoaXMuYXBwbHlUaGVtZSgpfXVwZGF0ZUNoYXJ0KCl7aWYoIXRoaXMuY2hhcnRJbnN0YW5jZSlyZXR1cm47bGV0IG49U3hhKHRoaXMuZ29CcmlnaHQpLG89dGhpcy5idWlsZE9wdGlvbigpLGw9ey4uLm4sLi4ubyx0ZXh0U3R5bGU6ey4uLm4udGV4dFN0eWxlLC4uLm8udGV4dFN0eWxlfHx7fX0sdG9vbHRpcDp7Li4ubi50b29sdGlwLC4uLm8udG9vbHRpcHx8e319LGxlZ2VuZDp7Li4ubi5sZWdlbmQsLi4uby5sZWdlbmR8fHt9LHRleHRTdHlsZTp7Li4ubi5sZWdlbmQ/LnRleHRTdHlsZXx8e30sLi4uby5sZWdlbmQ/LnRleHRTdHlsZXx8e319fX07dGhpcy5jaGFydEluc3RhbmNlLnNldE9wdGlvbihsLCEwKX1hcHBseVRoZW1lKCl7dGhpcy51cGRhdGVDaGFydCgpfWFzeW5jIGZvcmNlUmVzaXplKCl7dGhpcy5jaGFydEluc3RhbmNlPy5yZXNpemUoKX19fSkoKX0pO3ZhciBNeGEsenhhPWcoKCk9PntwZSgpO0l0KCk7WG50KCk7TXhhPWkoKCk9PntsZXQgcz1bIi9hcGkvdXNlcnMiLCIvYXBpL29yZGVycyIsIi9hcGkvcHJvZHVjdHMiLCIvYXBpL2F1dGgiLCIvYXBpL3NlYXJjaCJdLGU9W3tuYW1lOiJHRVQiLGRhdGE6WzEyNDAsODkwLDcyMCwyMTAwLDU2MF19LHtuYW1lOiJQT1NUIixkYXRhOlszMjAsNDUwLDE4MCw4OTAsNDBdfSx7bmFtZToiUFVUIixkYXRhOls5MCwyMTAsMTUwLDMwLDEwXX1dLHQ9WyJVUy1FYXN0IiwiVVMtV2VzdCIsIkVVIiwiQXNpYSIsIk90aGVyIl0sYT1be25hbWU6IlJlcXVlc3RzIixkYXRhOls0NTAwLDMyMDAsMjgwMCwxOTAwLDYwMF19XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHI9PntsZXQgbj1yLnF1ZXJ5U2VsZWN0b3IoIiN2ZXJ0LWNoYXJ0Iiksbz1yLnF1ZXJ5U2VsZWN0b3IoIiNob3Jpei1jaGFydCIpLGw9ci5xdWVyeVNlbGVjdG9yKCIjc3RhY2stY2hhcnQiKTtyLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChkPT57ZC50ZXh0Py50cmltKCk9PT0iUmFuZG9taXplIiYmZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntuLnNlcmllcz1lLm1hcChjPT4oey4uLmMsZGF0YTpjLmRhdGEubWFwKGI9Pk1hdGgucm91bmQoYiooLjUrTWF0aC5yYW5kb20oKSkpKX0pKSxvLnNlcmllcz1hLm1hcChjPT4oey4uLmMsZGF0YTpjLmRhdGEubWFwKGI9Pk1hdGgucm91bmQoYiooLjUrTWF0aC5yYW5kb20oKSkpKX0pKSxsLnNlcmllcz1lLm1hcChjPT4oey4uLmMsZGF0YTpjLmRhdGEubWFwKGI9Pk1hdGgucm91bmQoYiooLjUrTWF0aC5yYW5kb20oKSkpKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgICAgaWQ9InZlcnQtY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1ZXN0cyBieSBFbmRwb2ludCJ9CiAgICAgICAgICAgIC5jYXRlZ29yaWVzPSR7c30KICAgICAgICAgICAgLnNlcmllcz0ke2V9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke3I9PmAke3J9IHJlcWB9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWJhcj4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgICAgaWQ9Imhvcml6LWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiVHJhZmZpYyBieSBSZWdpb24ifQogICAgICAgICAgICAuY2F0ZWdvcmllcz0ke3R9CiAgICAgICAgICAgIC5zZXJpZXM9JHthfQogICAgICAgICAgICAuaG9yaXpvbnRhbD0keyEwfQogICAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHtyPT5gJHsoci8xZTMpLnRvRml4ZWQoMSl9a2B9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWJhcj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRlZXMtY2hhcnQtYmFyCiAgICAgICAgICBpZD0ic3RhY2stY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiU3RhY2tlZDogUmVxdWVzdHMgYnkgRW5kcG9pbnQifQogICAgICAgICAgLmNhdGVnb3JpZXM9JHtzfQogICAgICAgICAgLnNlcmllcz0ke2V9CiAgICAgICAgICAuc3RhY2tlZD0keyEwfQogICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cj0+YCR7cn0gcmVxYH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWJhcj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBCYXIgY2hhcnQgd2l0aCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCwgYW5kIHN0YWNrZWQgbW9kZXMg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YSB3aXRoIGFuaW1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBiNCxXUT1nKCgpPT57cGUoKTtodCgpO2I0PVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CiAgICBkZWVzLXRpbGUgewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CiAgICAuY2hhcnRIZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgIH0KICAgIC5jaGFydExhYmVsIHsKICAgICAgZmxleDogMTsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgfQogICAgLmNoYXJ0Q29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMDsKICAgIH0KICBgXX0pO3ZhciBDeGEsVHhhPWcoKCk9PntwZSgpO1dRKCk7Q3hhPVsuLi5iNCxKYGBdfSk7dmFyICR4YSxEeGE9ZygoKT0+e3BlKCk7JHhhPWkocz0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3MubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnRCYXIiKX0pO3ZhciBzNyxjYyx2ZXMsWG50PWcoKCk9PntwZSgpO1VRKCk7enhhKCk7VHhhKCk7RHhhKCk7X3goKTtzNz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sY2M9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHZlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtYmFyIildLGUsdD1bXSxhLHI9SHUsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCAkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHthdHRyaWJ1dGU6ITF9KV0sczcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYXRlZ29yaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJjYXRlZ29yaWVzImluIEUsImhhcyIpLGdldDppKEU9PkUuY2F0ZWdvcmllcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmNhdGVnb3JpZXM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxvLGwpLHM3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZXJpZXMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZXJpZXMsImdldCIpLHNldDppKChFLEgpPT57RS5zZXJpZXM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLHM3KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaG9yaXpvbnRhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iaG9yaXpvbnRhbCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmhvcml6b250YWwsImdldCIpLHNldDppKChFLEgpPT57RS5ob3Jpem9udGFsPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxzNyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YWNrZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InN0YWNrZWQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zdGFja2VkLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uuc3RhY2tlZD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksczcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93TGVnZW5kImluIEUsImhhcyIpLGdldDppKEU9PkUuc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNob3dMZWdlbmQ9SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLHM3KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWVGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InZhbHVlRm9ybWF0dGVyImluIEUsImhhcyIpLGdldDppKEU9PkUudmFsdWVGb3JtYXR0ZXIsImdldCIpLHNldDppKChFLEgpPT57RS52YWx1ZUZvcm1hdHRlcj1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksczcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1NeGE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPWNjKHRoaXMsbyxbXSk7Z2V0IGNhdGVnb3JpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY2F0ZWdvcmllcygkKXt0aGlzLiNlPSR9I3Q9KGNjKHRoaXMsbCksY2ModGhpcyxkLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiN0fXNldCBzZXJpZXMoJCl7dGhpcy4jdD0kfSNhPShjYyh0aGlzLHUpLGNjKHRoaXMsYiwhMSkpO2dldCBob3Jpem9udGFsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGhvcml6b250YWwoJCl7dGhpcy4jYT0kfSNzPShjYyh0aGlzLHYpLGNjKHRoaXMsbSwhMSkpO2dldCBzdGFja2VkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHN0YWNrZWQoJCl7dGhpcy4jcz0kfSNpPShjYyh0aGlzLGYpLGNjKHRoaXMsTSwhMCkpO2dldCBzaG93TGVnZW5kKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dMZWdlbmQoJCl7dGhpcy4jaT0kfSNyPShjYyh0aGlzLHopLGNjKHRoaXMsQywkPT5gJHskfWApKTtnZXQgdmFsdWVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFsdWVGb3JtYXR0ZXIoJCl7dGhpcy4jcj0kfXN0YXRpYyBzdHlsZXM9Q3hhO3JlbmRlcigpe3JldHVybiAkeGEodGhpcyl9YXN5bmMgdXBkYXRlZCgkKXtzdXBlci51cGRhdGVkKCQpLHRoaXMuY2hhcnRJbnN0YW5jZSYmKCQuaGFzKCJjYXRlZ29yaWVzIil8fCQuaGFzKCJzZXJpZXMiKXx8JC5oYXMoImhvcml6b250YWwiKXx8JC5oYXMoInN0YWNrZWQiKXx8JC5oYXMoInNob3dMZWdlbmQiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCAkPWc0KHRoaXMuZ29CcmlnaHQpLEU9ZjQodGhpcy5nb0JyaWdodCksSD10aGlzLnZhbHVlRm9ybWF0dGVyLGs9e3R5cGU6ImNhdGVnb3J5IixkYXRhOnRoaXMuY2F0ZWdvcmllcyxheGlzTGluZTp7bGluZVN0eWxlOntjb2xvcjokLmJvcmRlclN0cm9uZ319LGF4aXNMYWJlbDp7Y29sb3I6JC50ZXh0TXV0ZWR9fSxTPXt0eXBlOiJ2YWx1ZSIsYXhpc0xpbmU6e3Nob3c6ITF9LGF4aXNMYWJlbDp7Y29sb3I6JC50ZXh0TXV0ZWQsZm9ybWF0dGVyOmkoVz0+SChXKSwiZm9ybWF0dGVyIil9LHNwbGl0TGluZTp7bGluZVN0eWxlOntjb2xvcjokLmJvcmRlclN1YnRsZX19fSxJPXRoaXMuZ29CcmlnaHQ/LjE1Oi4yNSxQPXRoaXMuaG9yaXpvbnRhbD9bMCw0LDQsMF06WzQsNCwwLDBdLFI9WzAsMCwwLDBdLEs9W10sVj10aGlzLnNlcmllcy5tYXAoKFcsbWUpPT57bGV0IEI9Vy5jb2xvcnx8RVttZSVFLmxlbmd0aF07cmV0dXJuIEsucHVzaCh7bmFtZTpXLm5hbWUsaXRlbVN0eWxlOntjb2xvcjpCfX0pLHtuYW1lOlcubmFtZSx0eXBlOiJiYXIiLGRhdGE6Vy5kYXRhLHN0YWNrOnRoaXMuc3RhY2tlZD8idG90YWwiOnZvaWQgMCxpdGVtU3R5bGU6e2NvbG9yOm00KEIsSSksYm9yZGVyQ29sb3I6Qixib3JkZXJXaWR0aDoxLGJvcmRlclJhZGl1czp0aGlzLnN0YWNrZWQ/UjpQfSxiYXJNYXhXaWR0aDo0MCxiYXJHYXA6IjIwJSIsZW1waGFzaXM6e2l0ZW1TdHlsZTp7Y29sb3I6bTQoQixJKy4xNSksYm9yZGVyQ29sb3I6Qixib3JkZXJXaWR0aDoxLjV9fX19KTtpZih0aGlzLnN0YWNrZWQmJlYubGVuZ3RoPjApe2xldCBXPVZbVi5sZW5ndGgtMV07Vy5pdGVtU3R5bGUuYm9yZGVyUmFkaXVzPVB9cmV0dXJue3Rvb2x0aXA6e3RyaWdnZXI6ImF4aXMiLGF4aXNQb2ludGVyOnt0eXBlOiJzaGFkb3cifSxmb3JtYXR0ZXI6aShXPT57bGV0IG1lPUFycmF5LmlzQXJyYXkoVyk/VzpbV10sQj1gPHN0cm9uZz4ke21lWzBdLmF4aXNWYWx1ZUxhYmVsfTwvc3Ryb25nPjxici8+YDtmb3IobGV0IFUgb2YgbWUpe2xldCBGPWA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjRweDtib3JkZXItcmFkaXVzOjEwcHg7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiR7VS5ib3JkZXJDb2xvcnx8VS5jb2xvcn07Ij48L3NwYW4+YDtCKz1gJHtGfSR7VS5zZXJpZXNOYW1lfTogPHN0cm9uZz4ke0goVS52YWx1ZSl9PC9zdHJvbmc+PGJyLz5gfXJldHVybiBCfSwiZm9ybWF0dGVyIil9LGxlZ2VuZDp0aGlzLnNob3dMZWdlbmQmJnRoaXMuc2VyaWVzLmxlbmd0aD4xP3tib3R0b206OCxpdGVtV2lkdGg6MTAsaXRlbUhlaWdodDoxMCxkYXRhOkt9OntzaG93OiExfSxncmlkOntsZWZ0OjE2LHJpZ2h0OjE2LHRvcDoxNixib3R0b206dGhpcy5zaG93TGVnZW5kJiZ0aGlzLnNlcmllcy5sZW5ndGg+MT80MDoxNixjb250YWluTGFiZWw6ITB9LHhBeGlzOnRoaXMuaG9yaXpvbnRhbD9TOmsseUF4aXM6dGhpcy5ob3Jpem9udGFsP2s6UyxzZXJpZXM6Vn19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGNjKHRoaXMsXyl9c3RhdGlje2NjKGEsdCl9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBMeGE9ZygoKT0+e1hudCgpfSk7dmFyIEV4YSxQeGE9ZygoKT0+e3BlKCk7SXQoKTtRbnQoKTtFeGE9aSgoKT0+e2xldCBzPVt7bmFtZToiRG9jdW1lbnRzIix2YWx1ZTo0Mn0se25hbWU6Ik1lZGlhIix2YWx1ZToyOH0se25hbWU6IkFwcGxpY2F0aW9ucyIsdmFsdWU6MTV9LHtuYW1lOiJTeXN0ZW0iLHZhbHVlOjEwfSx7bmFtZToiT3RoZXIiLHZhbHVlOjV9XSxlPVt7bmFtZToiSGVhbHRoeSIsdmFsdWU6MTU2fSx7bmFtZToiV2FybmluZyIsdmFsdWU6MjN9LHtuYW1lOiJDcml0aWNhbCIsdmFsdWU6OH0se25hbWU6IlVua25vd24iLHZhbHVlOjN9XSx0PVt7bmFtZToiQVBJIix2YWx1ZTo0NTIwMH0se25hbWU6IlN0YXRpYyBBc3NldHMiLHZhbHVlOjIzMTAwfSx7bmFtZToiV2ViU29ja2V0Iix2YWx1ZToxMjgwMH0se25hbWU6IkdyYXBoUUwiLHZhbHVlOjg5MDB9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoIiNkaXNrLWNoYXJ0Iiksbj1hLnF1ZXJ5U2VsZWN0b3IoIiNzdGF0dXMtY2hhcnQiKSxvPWEucXVlcnlTZWxlY3RvcigiI3RyYWZmaWMtY2hhcnQiKTthLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChwPT57cC50ZXh0Py50cmltKCk9PT0iUmFuZG9taXplIiYmcC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLmRhdGE9cy5tYXAodT0+KHsuLi51LHZhbHVlOk1hdGgucm91bmQodS52YWx1ZSooLjUrTWF0aC5yYW5kb20oKSkpfSkpLG4uZGF0YT1lLm1hcCh1PT4oey4uLnUsdmFsdWU6TWF0aC5yb3VuZCh1LnZhbHVlKiguMytNYXRoLnJhbmRvbSgpKjEuNCkpfSkpLG8uZGF0YT10Lm1hcCh1PT4oey4uLnUsdmFsdWU6TWF0aC5yb3VuZCh1LnZhbHVlKiguNStNYXRoLnJhbmRvbSgpKSl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jaGFydFJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SYW5kb21pemU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRSb3ciPgogICAgICAgICAgPGRlZXMtY2hhcnQtZG9udXQKICAgICAgICAgICAgaWQ9ImRpc2stY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNrIFVzYWdlIChHQikifQogICAgICAgICAgICAuZGF0YT0ke3N9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAke2F9IEdCYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZG9udXQ+CgogICAgICAgICAgPGRlZXMtY2hhcnQtZG9udXQKICAgICAgICAgICAgaWQ9InN0YXR1cy1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgU3RhdHVzIn0KICAgICAgICAgICAgLmRhdGE9JHtlfQogICAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHthPT5gJHthfSBzZXJ2aWNlc2B9CiAgICAgICAgICAgIC5pbm5lclJhZGl1c1BlcmNlbnQ9JHsiMCUifQogICAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRlZXMtY2hhcnQtZG9udXQKICAgICAgICAgIGlkPSJ0cmFmZmljLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7IlRyYWZmaWMgRGlzdHJpYnV0aW9uIn0KICAgICAgICAgIC5kYXRhPSR7dH0KICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAkeyhhLzFlMykudG9GaXhlZCgxKX1rIHJlcWB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBEb251dCBjaGFydCB3aXRoIGNvbmZpZ3VyYWJsZSBpbm5lciByYWRpdXMgKHNldCB0byAwJSBmb3IgZnVsbCBwaWUpIOKAogogICAgICAgICAgQ2xpY2sgJ1JhbmRvbWl6ZScgdG8gdXBkYXRlIGRhdGEgd2l0aCBhbmltYXRpb24KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgSXhhLEF4YT1nKCgpPT57cGUoKTtXUSgpO0l4YT1bLi4uYjQsSmAKICAgIDpob3N0IHsKICAgICAgaGVpZ2h0OiAzNjBweDsKICAgIH0KICAgIC5jaGFydENvbnRhaW5lciB7CiAgICAgIGluc2V0OiAxMnB4IDA7CiAgICB9CiAgYF19KTt2YXIgTnhhLFJ4YT1nKCgpPT57cGUoKTtOeGE9aShzPT53YAogICAgPGRlZXMtdGlsZT4KICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICA8L2RlZXMtdGlsZT4KICBgLCJyZW5kZXJDaGFydERvbnV0Iil9KTt2YXIgTXgsRTIseGVzLFFudD1nKCgpPT57cGUoKTtVUSgpO1B4YSgpO0F4YSgpO1J4YSgpO194KCk7TXg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEUyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx4ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWRvbnV0IildLGUsdD1bXSxhLHI9SHUsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydERvbnV0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpBcnJheX0pXSxwPVtMKHt0eXBlOkJvb2xlYW59KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe2F0dHJpYnV0ZTohMX0pXSxNeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImRhdGEiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5kYXRhLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZGF0YT1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksTXgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzaG93TGVnZW5kImluIF8sImhhcyIpLGdldDppKF89Pl8uc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNob3dMZWdlbmQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLE14KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0xhYmVscyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2hvd0xhYmVscyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNob3dMYWJlbHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zaG93TGFiZWxzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxNeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlubmVyUmFkaXVzUGVyY2VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaW5uZXJSYWRpdXNQZXJjZW50ImluIF8sImhhcyIpLGdldDppKF89Pl8uaW5uZXJSYWRpdXNQZXJjZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaW5uZXJSYWRpdXNQZXJjZW50PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxNeCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlRm9ybWF0dGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ2YWx1ZUZvcm1hdHRlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnZhbHVlRm9ybWF0dGVyLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udmFsdWVGb3JtYXR0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLE14KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89RXhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1FMih0aGlzLG8sW10pO2dldCBkYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGEoQyl7dGhpcy4jZT1DfSN0PShFMih0aGlzLGwpLEUyKHRoaXMsZCwhMCkpO2dldCBzaG93TGVnZW5kKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNob3dMZWdlbmQoQyl7dGhpcy4jdD1DfSNhPShFMih0aGlzLHUpLEUyKHRoaXMsYiwhMCkpO2dldCBzaG93TGFiZWxzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dMYWJlbHMoQyl7dGhpcy4jYT1DfSNzPShFMih0aGlzLHYpLEUyKHRoaXMsbSwiNTUlIikpO2dldCBpbm5lclJhZGl1c1BlcmNlbnQoKXtyZXR1cm4gdGhpcy4jc31zZXQgaW5uZXJSYWRpdXNQZXJjZW50KEMpe3RoaXMuI3M9Q30jaT0oRTIodGhpcyxmKSxFMih0aGlzLE0sQz0+YCR7Q31gKSk7Z2V0IHZhbHVlRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbHVlRm9ybWF0dGVyKEMpe3RoaXMuI2k9Q31zdGF0aWMgc3R5bGVzPUl4YTtyZW5kZXIoKXtyZXR1cm4gTnhhKHRoaXMpfWFzeW5jIHVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihDLmhhcygiZGF0YSIpfHxDLmhhcygic2hvd0xlZ2VuZCIpfHxDLmhhcygic2hvd0xhYmVscyIpfHxDLmhhcygiaW5uZXJSYWRpdXNQZXJjZW50IikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgQz1nNCh0aGlzLmdvQnJpZ2h0KSxfPWY0KHRoaXMuZ29CcmlnaHQpLE89dGhpcy5nb0JyaWdodD8uMTU6LjIsJD1bXSxFPXRoaXMuZGF0YS5tYXAoKGssUyk9PntsZXQgST1rLmNvbG9yfHxfW1MlXy5sZW5ndGhdO3JldHVybiAkLnB1c2goe25hbWU6ay5uYW1lLGl0ZW1TdHlsZTp7Y29sb3I6SX19KSx7bmFtZTprLm5hbWUsdmFsdWU6ay52YWx1ZSxpdGVtU3R5bGU6e2NvbG9yOm00KEksTyksYm9yZGVyQ29sb3I6SSxib3JkZXJXaWR0aDoxfSxlbXBoYXNpczp7aXRlbVN0eWxlOntjb2xvcjptNChJLE8rLjE1KSxib3JkZXJDb2xvcjpJLGJvcmRlcldpZHRoOjEuNX19fX0pLEg9dGhpcy52YWx1ZUZvcm1hdHRlcjtyZXR1cm57dG9vbHRpcDp7dHJpZ2dlcjoiaXRlbSIsZm9ybWF0dGVyOmkoaz0+YCR7YDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MTBweDt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6JHtrLmRhdGE/Lml0ZW1TdHlsZT8uYm9yZGVyQ29sb3J8fGsuY29sb3J9OyI+PC9zcGFuPmB9JHtrLm5hbWV9OiA8c3Ryb25nPiR7SChrLnZhbHVlKX08L3N0cm9uZz4gKCR7ay5wZXJjZW50fSUpYCwiZm9ybWF0dGVyIil9LGxlZ2VuZDp0aGlzLnNob3dMZWdlbmQ/e29yaWVudDoidmVydGljYWwiLHJpZ2h0OjE2LHRvcDoiY2VudGVyIixpdGVtV2lkdGg6MTAsaXRlbUhlaWdodDoxMCxpdGVtR2FwOjEyLGRhdGE6JCxmb3JtYXR0ZXI6aShrPT57bGV0IFM9dGhpcy5kYXRhLmZpbmQoST0+SS5uYW1lPT09ayk7cmV0dXJuIFM/YCR7a30gICR7SChTLnZhbHVlKX1gOmt9LCJmb3JtYXR0ZXIiKX06e3Nob3c6ITF9LHNlcmllczpbe3R5cGU6InBpZSIscmFkaXVzOlt0aGlzLmlubmVyUmFkaXVzUGVyY2VudCwiODUlIl0sY2VudGVyOnRoaXMuc2hvd0xlZ2VuZD9bIjM1JSIsIjUwJSJdOlsiNTAlIiwiNTAlIl0sYXZvaWRMYWJlbE92ZXJsYXA6ITAscGFkQW5nbGU6MixpdGVtU3R5bGU6e2JvcmRlclJhZGl1czo0fSxsYWJlbDp0aGlzLnNob3dMYWJlbHM/e3Nob3c6ITAsZm9ybWF0dGVyOiJ7Yn06IHtkfSUiLGZvbnRTaXplOjExLGNvbG9yOkMudGV4dFNlY29uZGFyeSx0ZXh0Qm9yZGVyQ29sb3I6InRyYW5zcGFyZW50In06e3Nob3c6ITF9LGRhdGE6RX1dfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRTIodGhpcyx6KX1zdGF0aWN7RTIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIE94YT1nKCgpPT57UW50KCl9KTt2YXIgRnhhLEJ4YT1nKCgpPT57cGUoKTtJdCgpO0pudCgpO0Z4YT1pKCgpPT57bGV0IHM9W3t2YWx1ZTo2MCxjb2xvcjoiaHNsKDE0MiA3NiUgMzYlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDM4IDkyJSA1MCUpIn0se3ZhbHVlOjEwMCxjb2xvcjoiaHNsKDAgNzIlIDUwJSkifV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY3B1LWdhdWdlIiksYT1lLnF1ZXJ5U2VsZWN0b3IoIiNtZW0tZ2F1Z2UiKSxyPWUucXVlcnlTZWxlY3RvcigiI3NsYS1nYXVnZSIpLG49bnVsbDtlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChsPT57bGV0IHA9bC50ZXh0Py50cmltKCk7cD09PSJBbmltYXRlIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e258fChuPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+e3QudmFsdWU9TWF0aC5yb3VuZCgzMCtNYXRoLnJhbmRvbSgpKjYwKSxhLnZhbHVlPU1hdGgucm91bmQoNDArTWF0aC5yYW5kb20oKSo1MCksci52YWx1ZT1NYXRoLnJvdW5kKCg5NStNYXRoLnJhbmRvbSgpKjUpKjEwMCkvMTAwfSwyZTMpKX0pOnA9PT0iU3RvcCI/bC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntuJiYod2luZG93LmNsZWFySW50ZXJ2YWwobiksbj1udWxsKX0pOnA9PT0iU3Bpa2UiJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudmFsdWU9OTUsYS52YWx1ZT04OCxyLnZhbHVlPTk2LjV9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5nYXVnZVJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QW5pbWF0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdhdWdlUm93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWdhdWdlCiAgICAgICAgICAgIGlkPSJjcHUtZ2F1Z2UiCiAgICAgICAgICAgIC5sYWJlbD0keyJDUFUgVXNhZ2UifQogICAgICAgICAgICAudmFsdWU9JHs0Mn0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC50aHJlc2hvbGRzPSR7c30KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CgogICAgICAgICAgPGRlZXMtY2hhcnQtZ2F1Z2UKICAgICAgICAgICAgaWQ9Im1lbS1nYXVnZSIKICAgICAgICAgICAgLmxhYmVsPSR7Ik1lbW9yeSBVc2FnZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezY3fQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnRocmVzaG9sZHM9JHtzfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1nYXVnZQogICAgICAgICAgICBpZD0ic2xhLWdhdWdlIgogICAgICAgICAgICAubGFiZWw9JHsiU0xBIFVwdGltZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezk5Ljh9CiAgICAgICAgICAgIC5taW49JHs5NX0KICAgICAgICAgICAgLm1heD0kezEwMH0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC5zaG93VGlja3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgR2F1Z2UgY2hhcnQgd2l0aCBhbmltYXRlZCB2YWx1ZSB0cmFuc2l0aW9ucyBhbmQgdGhyZXNob2xkIGNvbG9yaW5nIOKAogogICAgICAgICAgQ2xpY2sgJ0FuaW1hdGUnIGZvciBsaXZlIHVwZGF0ZXMsICdTcGlrZScgdG8gc2ltdWxhdGUgaGlnaCBsb2FkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIEh4YSxxeGE9ZygoKT0+e3BlKCk7V1EoKTtIeGE9Wy4uLmI0LEpgCiAgICA6aG9zdCB7CiAgICAgIGhlaWdodDogMzIwcHg7CiAgICB9CiAgYF19KTt2YXIganhhLFZ4YT1nKCgpPT57cGUoKTtqeGE9aShzPT53YAogICAgPGRlZXMtdGlsZT4KICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICA8L2RlZXMtdGlsZT4KICBgLCJyZW5kZXJDaGFydEdhdWdlIil9KTt2YXIgaTcsZGMseWVzLEpudD1nKCgpPT57cGUoKTtVUSgpO0J4YSgpO3F4YSgpO1Z4YSgpO194KCk7aTc9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LGRjPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWdhdWdlIildLGUsdD1bXSxhLHI9SHUsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEdhdWdlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpTdHJpbmd9KV0seT1bTCh7dHlwZTpBcnJheX0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0saTcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZhbHVlPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxpNyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluImluIEUsImhhcyIpLGdldDppKEU9PkUubWluLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWluPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxpNyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWF4ImluIEUsImhhcyIpLGdldDppKEU9PkUubWF4LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubWF4PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYix2KSxpNyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InVuaXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS51bml0LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudW5pdD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksaTcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0aHJlc2hvbGRzImluIEUsImhhcyIpLGdldDppKEU9PkUudGhyZXNob2xkcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnRocmVzaG9sZHM9SH0sInNldCIpfSxtZXRhZGF0YTokfSxNLHopLGk3KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RpY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93VGlja3MiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93VGlja3MsImdldCIpLHNldDppKChFLEgpPT57RS5zaG93VGlja3M9SH0sInNldCIpfSxtZXRhZGF0YTokfSxDLF8pLGk3KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOiR9LG51bGwsdCksTz1hPWUudmFsdWUsJCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTokfSl9c3RhdGljIGRlbW89RnhhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1kYyh0aGlzLG8sMCk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0oZGModGhpcyxsKSxkYyh0aGlzLGQsMCkpO2dldCBtaW4oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluKCQpe3RoaXMuI3Q9JH0jYT0oZGModGhpcyx1KSxkYyh0aGlzLGIsMTAwKSk7Z2V0IG1heCgpe3JldHVybiB0aGlzLiNhfXNldCBtYXgoJCl7dGhpcy4jYT0kfSNzPShkYyh0aGlzLHYpLGRjKHRoaXMsbSwiJSIpKTtnZXQgdW5pdCgpe3JldHVybiB0aGlzLiNzfXNldCB1bml0KCQpe3RoaXMuI3M9JH0jaT0oZGModGhpcyxmKSxkYyh0aGlzLE0sW10pKTtnZXQgdGhyZXNob2xkcygpe3JldHVybiB0aGlzLiNpfXNldCB0aHJlc2hvbGRzKCQpe3RoaXMuI2k9JH0jcj0oZGModGhpcyx6KSxkYyh0aGlzLEMsITApKTtnZXQgc2hvd1RpY2tzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUaWNrcygkKXt0aGlzLiNyPSR9c3RhdGljIHN0eWxlcz1IeGE7cmVuZGVyKCl7cmV0dXJuIGp4YSh0aGlzKX1hc3luYyB1cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy5jaGFydEluc3RhbmNlJiYoJC5oYXMoInZhbHVlIil8fCQuaGFzKCJtaW4iKXx8JC5oYXMoIm1heCIpfHwkLmhhcygidW5pdCIpfHwkLmhhcygidGhyZXNob2xkcyIpfHwkLmhhcygic2hvd1RpY2tzIikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgJD1nNCh0aGlzLmdvQnJpZ2h0KSxIPWY0KHRoaXMuZ29CcmlnaHQpWzBdLGs7aWYodGhpcy50aHJlc2hvbGRzLmxlbmd0aD4wKXtsZXQgUz1bLi4udGhpcy50aHJlc2hvbGRzXS5zb3J0KChJLFApPT5JLnZhbHVlLVAudmFsdWUpO2s9Uy5tYXAoST0+WyhJLnZhbHVlLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLEkuY29sb3JdKSxrW2subGVuZ3RoLTFdWzBdPDEmJmsucHVzaChbMSxTW1MubGVuZ3RoLTFdLmNvbG9yXSl9ZWxzZSBrPVtbMSxIXV07cmV0dXJue3Nlcmllczpbe3R5cGU6ImdhdWdlIixtaW46dGhpcy5taW4sbWF4OnRoaXMubWF4LHN0YXJ0QW5nbGU6MjIwLGVuZEFuZ2xlOi00MCxwcm9ncmVzczp7c2hvdzohMCx3aWR0aDoxNCxyb3VuZENhcDohMH0scG9pbnRlcjp7c2hvdzohMCxsZW5ndGg6IjYwJSIsd2lkdGg6NSxpdGVtU3R5bGU6e2NvbG9yOiJhdXRvIn19LGF4aXNMaW5lOntsaW5lU3R5bGU6e3dpZHRoOjE0LGNvbG9yOmssb3BhY2l0eTouM319LGF4aXNUaWNrOntzaG93OnRoaXMuc2hvd1RpY2tzLGRpc3RhbmNlOi0yMCxsZW5ndGg6NixsaW5lU3R5bGU6e2NvbG9yOiQuYm9yZGVyU3Ryb25nLHdpZHRoOjF9fSxzcGxpdExpbmU6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6LTI0LGxlbmd0aDoxMCxsaW5lU3R5bGU6e2NvbG9yOiQudGV4dE11dGVkLHdpZHRoOjJ9fSxheGlzTGFiZWw6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6MzAsY29sb3I6JC50ZXh0TXV0ZWQsZm9udFNpemU6MTF9LGRldGFpbDp7dmFsdWVBbmltYXRpb246ITAsZm9udFNpemU6MjgsZm9udFdlaWdodDo2MDAsb2Zmc2V0Q2VudGVyOlswLCI2NSUiXSxjb2xvcjokLnRleHRQcmltYXJ5LGZvcm1hdHRlcjpge3ZhbHVlfSR7dGhpcy51bml0fWB9LHRpdGxlOntzaG93OiExfSxkYXRhOlt7dmFsdWU6dGhpcy52YWx1ZX1dfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxkYyh0aGlzLF8pfXN0YXRpY3tkYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgVXhhPWcoKCk9PntKbnQoKX0pO3ZhciBXeGEsR3hhPWcoKCk9PntwZSgpO0l0KCk7V3hhPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCIjc3RydWN0dXJlZC1sb2ciKSx0PXMucXVlcnlTZWxlY3RvcigiI3Jhdy1sb2ciKSxhLHIsbj1bIlNlcnZlciIsIkRhdGFiYXNlIiwiQVBJIiwiQXV0aCIsIkNhY2hlIiwiUXVldWUiLCJXZWJTb2NrZXQiLCJTY2hlZHVsZXIiXSxvPXtkZWJ1ZzpbIkxvYWRpbmcgbW9kdWxlOiB7e21vZHVsZX19IiwiQ2FjaGUgaGl0IGZvciBrZXk6IHt7a2V5fX0iLCJTUUwgcXVlcnkgZXhlY3V0ZWQgaW4ge3t0aW1lfX1tcyIsIlJlcXVlc3QgaGVhZGVyczoge3toZWFkZXJzfX0iLCJFbnZpcm9ubWVudCB2YXJpYWJsZSBsb2FkZWQ6IHt7dmFyfX0iXSxpbmZvOlsiUmVxdWVzdCByZWNlaXZlZDoge3ttZXRob2R9fSB7e3BhdGh9fSIsIlVzZXIge3t1c2VySWR9fSBhdXRoZW50aWNhdGVkIHN1Y2Nlc3NmdWxseSIsIlByb2Nlc3Npbmcgam9iIHt7am9iSWR9fSBmcm9tIHF1ZXVlIiwnU2NoZWR1bGVkIHRhc2sgInt7dGFza319IiBzdGFydGVkJywiV2ViU29ja2V0IGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgZnJvbSB7e2lwfX0iXSx3YXJuOlsiU2xvdyBxdWVyeSBkZXRlY3RlZDoge3txdWVyeX19ICh7e3RpbWV9fW1zKSIsIk1lbW9yeSB1c2FnZSBhdCB7e3BlcmNlbnR9fSUiLCJSYXRlIGxpbWl0IGFwcHJvYWNoaW5nIGZvciBJUCB7e2lwfX0iLCJEZXByZWNhdGVkIEFQSSBlbmRwb2ludCBjYWxsZWQ6IHt7ZW5kcG9pbnR9fSIsIkNlcnRpZmljYXRlIGV4cGlyZXMgaW4ge3tkYXlzfX0gZGF5cyJdLGVycm9yOlsiRGF0YWJhc2UgY29ubmVjdGlvbiBsb3N0OiB7e2Vycm9yfX0iLCJGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiB7e2Vycm9yfX0iLCJBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIge3t1c2VyfX0iLCJGaWxlIG5vdCBmb3VuZDoge3twYXRofX0iLCJTZXJ2aWNlIHVuYXZhaWxhYmxlOiB7e3NlcnZpY2V9fSJdLHN1Y2Nlc3M6WyJTZXJ2ZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkgb24gcG9ydCB7e3BvcnR9fSIsIkRhdGFiYXNlIG1pZ3JhdGlvbiBjb21wbGV0ZWQiLCJCYWNrdXAgY29tcGxldGVkOiB7e3NpemV9fSBNQiIsIlNTTCBjZXJ0aWZpY2F0ZSByZW5ld2VkIiwiSGVhbHRoIGNoZWNrIHBhc3NlZDogYWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiXX0sbD1bIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS4xMjNaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbbmdpbnhdIEdFVCAvYXBpL2hlYWx0aCAyMDAgLSAybXMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNDU2Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JlZGlzXSBDb25uZWN0aW9uIHBvb2wgcnVubmluZyBsb3c6IDMvMTAiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNzg5Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW21vbmdvZGJdIFF1ZXJ5IHRpbWVvdXQgYWZ0ZXIgMzAwMDBtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ni4wMTJaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbYXBwXSBQcm9jZXNzaW5nIGJhdGNoIGpvYiAje3tqb2JJZH19IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjM0NVpceDFCWzBtIFx4MUJbMzJtT0tceDFCWzBtICAgIFtoZWFsdGhdIEFsbCBzZXJ2aWNlcyBoZWFsdGh5IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjY3OFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtrYWZrYV0gTWVzc2FnZSBjb25zdW1lZCBmcm9tIHRvcGljOiBldmVudHMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMDAxWlx4MUJbMG0gXHgxQlszNW1ERUJVR1x4MUJbMG0gW2dycGNdIFJlcXVlc3QgcmVjZWl2ZWQ6IEdldFVzZXIoaWQ9e3t1c2VySWR9fSkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMjM0Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW2F1dGhdIFRva2VuIHZhbGlkYXRpb24gZmFpbGVkOiBleHBpcmVkIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3LjU2N1pceDFCWzBtIFx4MUJbMzNtV0FSTlx4MUJbMG0gIFtyYXRlLWxpbWl0XSBJUCB7e2lwfX0gYXBwcm9hY2hpbmcgcmF0ZSBsaW1pdCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny44OTBaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbd2Vic29ja2V0XSBDbGllbnQgY29ubmVjdGVkOiBzZXNzaW9uPXt7c2Vzc2lvbn19IixgXHgxQlszMW1FcnJvcjogQ29ubmVjdGlvbiByZWZ1c2VkXHgxQlswbQogICAgYXQgVGNwQ29ubmVjdGlvbi5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvY29ubmVjdGlvbi5qczoxMjoxNSkKICAgIGF0IFBvb2wuY29ubmVjdCAoL2FwcC9ub2RlX21vZHVsZXMvcGcvbGliL3Bvb2wuanM6NDU6MjMpCiAgICBhdCBhc3luYyBEYXRhYmFzZVNlcnZpY2UucXVlcnkgKC9hcHAvc3JjL2RiL3NlcnZpY2UudHM6ODk6MTIpYF0scD1pKCgpPT57bGV0IG09WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sZj1bLjIsLjUsLjE1LC4xLC4wNV0seT1NYXRoLnJhbmRvbSgpLE09MCx6PSJpbmZvIjtmb3IobGV0ICQ9MDskPGYubGVuZ3RoOyQrKylpZihNKz1mWyRdLHk8TSl7ej1tWyRdO2JyZWFrfWxldCBOPW5bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4ubGVuZ3RoKV0sQz1vW3pdLE89Q1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqQy5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7ZS5hZGRMb2coeixPLE4pfSwiZ2VuZXJhdGVSYW5kb21Mb2ciKSxkPWkoKCk9PntsZXQgbT1sW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpsLmxlbmd0aCldLGY9bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk9bS5yZXBsYWNlKC8yMDI0LTAxLTE1VDEwOjIzOlxkezJ9XC5cZHszfVovZyxmKS5yZXBsYWNlKCJ7e2pvYklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7dXNlcklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7aXB9fSIsYDE5Mi4xNjguMS4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTUpfWApLnJlcGxhY2UoInt7c2Vzc2lvbn19IixNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwxMSkpO3Qud3JpdGVsblJhdyh5KX0sImdlbmVyYXRlRG9ja2VyTG9nIiksdT1pKCgpPT57aWYoIWEpe2xldCBtPWkoKCk9PntwKCk7bGV0IGY9TWF0aC5yYW5kb20oKSoyZTMrNTAwO2E9d2luZG93LnNldFRpbWVvdXQoKCk9PnthJiZtKCl9LGYpfSwic2NoZWR1bGVOZXh0Iik7bSgpfX0sInN0YXJ0U3RydWN0dXJlZFNpbXVsYXRpb24iKSxjPWkoKCk9PnthJiYod2luZG93LmNsZWFyVGltZW91dChhKSxhPW51bGwpfSwic3RvcFN0cnVjdHVyZWRTaW11bGF0aW9uIiksYj1pKCgpPT57aWYoIXIpe2xldCBtPWkoKCk9PntkKCk7bGV0IGY9TWF0aC5yYW5kb20oKSoxZTMrMjAwO3I9d2luZG93LnNldFRpbWVvdXQoKCk9PntyJiZtKCl9LGYpfSwic2NoZWR1bGVOZXh0Iik7bSgpfX0sInN0YXJ0UmF3U2ltdWxhdGlvbiIpLHY9aSgoKT0+e3ImJih3aW5kb3cuY2xlYXJUaW1lb3V0KHIpLHI9bnVsbCl9LCJzdG9wUmF3U2ltdWxhdGlvbiIpO3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKG09Pntzd2l0Y2gobS50ZXh0Py50cmltKCkpe2Nhc2UiQWRkIFN0cnVjdHVyZWQgTG9nIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+cCgpKTticmVhaztjYXNlIlN0YXJ0IFN0cnVjdHVyZWQiOm0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT51KCkpO2JyZWFrO2Nhc2UiU3RvcCBTdHJ1Y3R1cmVkIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YygpKTticmVhaztjYXNlIkFkZCBEb2NrZXIgTG9nIjptLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZCgpKTticmVhaztjYXNlIlN0YXJ0IERvY2tlciI6bS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PmIoKSk7YnJlYWs7Y2FzZSJTdG9wIERvY2tlciI6bS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnYoKSk7YnJlYWt9fSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8IS0tIFN0cnVjdHVyZWQgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdHJ1Y3R1cmVkIExvZ3MgKElMb2dFbnRyeSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFN0cnVjdHVyZWQgbG9nIGVudHJpZXMgd2l0aCBsZXZlbCwgbWVzc2FnZSwgYW5kIHNvdXJjZS4gU3VwcG9ydHMgc2VhcmNoIGFuZCBrZXl3b3JkIGhpZ2hsaWdodGluZy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFN0cnVjdHVyZWQgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBTdHJ1Y3R1cmVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InN0cnVjdHVyZWQtbG9nIgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3Rpb24gU2VydmVyIExvZ3MifQogICAgICAgICAgLmhpZ2hsaWdodEtleXdvcmRzPSR7WyJlcnJvciIsImZhaWxlZCIsInRpbWVvdXQiXX0KICAgICAgICAgIC5zaG93TWV0cmljcz0keyEwfQogICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUmF3IExvZ3MgU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmF3IExvZ3MgKERvY2tlci9Db250YWluZXIgU3R5bGUpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBSYXcgbG9nIG91dHB1dCB3aXRoIEFOU0kgZXNjYXBlIHNlcXVlbmNlcyBmb3IgcmVhbCBEb2NrZXIvY29udGFpbmVyIGxvZ3MuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBEb2NrZXIgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgRG9ja2VyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgIGlkPSJyYXctbG9nIgogICAgICAgICAgLmxhYmVsPSR7IkRvY2tlciBDb250YWluZXIgTG9ncyJ9CiAgICAgICAgICAubW9kZT0keyJyYXcifQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITF9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBlMSxJaSx3ZXMsS3hhPWcoKCk9PntwZSgpO2t0KCk7R3hhKCk7aHQoKTtPdSgpO21yKCk7ZTE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LElpPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx3ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoYXJ0LWxvZyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXTt2YXIgaGU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydExvZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBGPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpBcnJheX0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpOdW1iZXJ9KV0sTj1bTCh7dHlwZTpBcnJheX0pXSxPPVtMKHt0eXBlOkJvb2xlYW59KV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0sZTEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGFiZWwiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5sYWJlbCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5sYWJlbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxvLGwpLGUxKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibW9kZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm1vZGUsImdldCIpLHNldDppKChqLHVlKT0+e2oubW9kZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxkLHUpLGUxKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nRW50cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibG9nRW50cmllcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmxvZ0VudHJpZXMsImdldCIpLHNldDppKChqLHVlKT0+e2oubG9nRW50cmllcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxiLHYpLGUxKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYXV0b1Njcm9sbCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmF1dG9TY3JvbGwsImdldCIpLHNldDppKChqLHVlKT0+e2ouYXV0b1Njcm9sbD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLGUxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RW50cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibWF4RW50cmllcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm1heEVudHJpZXMsImdldCIpLHNldDppKChqLHVlKT0+e2oubWF4RW50cmllcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxNLHopLGUxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0S2V5d29yZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImhpZ2hsaWdodEtleXdvcmRzImluIGosImhhcyIpLGdldDppKGo9PmouaGlnaGxpZ2h0S2V5d29yZHMsImdldCIpLHNldDppKChqLHVlKT0+e2ouaGlnaGxpZ2h0S2V5d29yZHM9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQyxfKSxlMSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJzaG93TWV0cmljcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNob3dNZXRyaWNzLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnNob3dNZXRyaWNzPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LCQsRSksZTEodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hRdWVyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2VhcmNoUXVlcnkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zZWFyY2hRdWVyeSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5zZWFyY2hRdWVyeT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxrLFMpLGUxKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iZmlsdGVyTW9kZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmZpbHRlck1vZGUsImdldCIpLHNldDppKChqLHVlKT0+e2ouZmlsdGVyTW9kZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxQLFIpLGUxKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibWV0cmljcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm1ldHJpY3MsImdldCIpLHNldDppKChqLHVlKT0+e2oubWV0cmljcz11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxWLFcpLGUxKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InRlcm1pbmFsUmVhZHkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai50ZXJtaW5hbFJlYWR5LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnRlcm1pbmFsUmVhZHk9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQixVKSxlMShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpGfSxudWxsLHQpLGhlPWE9ZS52YWx1ZSxGJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KX1zdGF0aWMgZGVtbz1XeGE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCIsIldvcmtzcGFjZSJdOyNlPUlpKHRoaXMsbywiU2VydmVyIExvZ3MiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwoRil7dGhpcy4jZT1GfSN0PShJaSh0aGlzLGwpLElpKHRoaXMsZCwic3RydWN0dXJlZCIpKTtnZXQgbW9kZSgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RlKEYpe3RoaXMuI3Q9Rn0jYT0oSWkodGhpcyx1KSxJaSh0aGlzLGIsW10pKTtnZXQgbG9nRW50cmllcygpe3JldHVybiB0aGlzLiNhfXNldCBsb2dFbnRyaWVzKEYpe3RoaXMuI2E9Rn0jcz0oSWkodGhpcyx2KSxJaSh0aGlzLG0sITApKTtnZXQgYXV0b1Njcm9sbCgpe3JldHVybiB0aGlzLiNzfXNldCBhdXRvU2Nyb2xsKEYpe3RoaXMuI3M9Rn0jaT0oSWkodGhpcyxmKSxJaSh0aGlzLE0sMWU0KSk7Z2V0IG1heEVudHJpZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWF4RW50cmllcyhGKXt0aGlzLiNpPUZ9I3I9KElpKHRoaXMseiksSWkodGhpcyxDLFtdKSk7Z2V0IGhpZ2hsaWdodEtleXdvcmRzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGhpZ2hsaWdodEtleXdvcmRzKEYpe3RoaXMuI3I9Rn0jbz0oSWkodGhpcyxfKSxJaSh0aGlzLCQsITApKTtnZXQgc2hvd01ldHJpY3MoKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd01ldHJpY3MoRil7dGhpcy4jbz1GfSNuPShJaSh0aGlzLEUpLElpKHRoaXMsaywiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNufXNldCBzZWFyY2hRdWVyeShGKXt0aGlzLiNuPUZ9I2w9KElpKHRoaXMsUyksSWkodGhpcyxQLCExKSk7Z2V0IGZpbHRlck1vZGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZmlsdGVyTW9kZShGKXt0aGlzLiNsPUZ9I2M9KElpKHRoaXMsUiksSWkodGhpcyxWLHtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9KSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWV0cmljcyhGKXt0aGlzLiNjPUZ9I2Q9KElpKHRoaXMsVyksSWkodGhpcyxCLCExKSk7Z2V0IHRlcm1pbmFsUmVhZHkoKXtyZXR1cm4gdGhpcy4jZH1zZXQgdGVybWluYWxSZWFkeShGKXt0aGlzLiNkPUZ9bG9nQnVmZmVyPShJaSh0aGlzLFUpLFtdKTt0cmFpbGluZ0hpZGRlbkNvdW50PTA7dGVybWluYWw9bnVsbDtmaXRBZGRvbj1udWxsO3NlYXJjaEFkZG9uPW51bGw7cmVzaXplT2JzZXJ2ZXI9bnVsbDt0ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGw7ZG9tdG9vbHNJbnN0YW5jZT1udWxsO3JhdGVCdWZmZXI9W107cmF0ZUludGVydmFsPW51bGw7c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgLnh0ZXJtIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLm1ldHJpYzo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5lcnJvcjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMud2Fybjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjUgOTUlIDUzJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuaW5mbzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjIyLjIgNDcuNCUgNTEuMiUpOwogICAgICB9CgogICAgICAubWV0cmljLnN1Y2Nlc3M6OmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5kZWJ1Zzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSA2My45JSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZTo6YmVmb3JlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGEuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZSAuaGVhZGluZz0ke3RoaXMubGFiZWx9PgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtYm94Ij4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGxvZ3MuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHtGPT50aGlzLmhhbmRsZVNlYXJjaElucHV0KEYpfQogICAgICAgICAgICAgIEBrZXlkb3duPSR7Rj0+dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3duKEYpfQogICAgICAgICAgICAvPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtbmF2Ij4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaFByZXZpb3VzKCl9IHRpdGxlPSJQcmV2aW91cyBtYXRjaCI+4oaRPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zZWFyY2hOZXh0KCl9IHRpdGxlPSJOZXh0IG1hdGNoIj7ihpM8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iZmlsdGVyLXRvZ2dsZSAke3RoaXMuZmlsdGVyTW9kZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlRmlsdGVyTW9kZSgpfQogICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuZmlsdGVyTW9kZT8iU3dpdGNoIHRvIGhpZ2hsaWdodCBtb2RlIjoiU3dpdGNoIHRvIGZpbHRlciBtb2RlIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyTW9kZT8iRmlsdGVyIjoiSGlnaGxpZ2h0In0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLWJ1dHRvbiAke3RoaXMuYXV0b1Njcm9sbD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlQXV0b1Njcm9sbCgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQXV0byBTY3JvbGwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvbnRyb2wtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jbGVhckxvZ3MoKX0+CiAgICAgICAgICAgICAgQ2xlYXIKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy50ZXJtaW5hbFJlYWR5PyIiOndgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZyB0ZXJtaW5hbC4uLjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5zaG93TWV0cmljcz93YAogICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ibWV0cmljcy1iYXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBlcnJvciI+ZXJyb3JzOiAke3RoaXMubWV0cmljcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHdhcm4iPndhcm5zOiAke3RoaXMubWV0cmljcy53YXJufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgaW5mbyI+aW5mbzogJHt0aGlzLm1ldHJpY3MuaW5mb308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHN1Y2Nlc3MiPnN1Y2Nlc3M6ICR7dGhpcy5tZXRyaWNzLnN1Y2Nlc3N9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBkZWJ1ZyI+ZGVidWc6ICR7dGhpcy5tZXRyaWNzLmRlYnVnfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgcmF0ZSI+JHt0aGlzLm1ldHJpY3MucmF0ZS50b0ZpeGVkKDEpfSBsb2dzL3NlYzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZG9tdG9vbHNJbnN0YW5jZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmluaXRpYWxpemVUZXJtaW5hbCgpLHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPT09MCl7dGhpcy5sb2dCdWZmZXI9Wy4uLnRoaXMubG9nRW50cmllc107Zm9yKGxldCBGIG9mIHRoaXMubG9nRW50cmllcyl0aGlzLnVwZGF0ZU1ldHJpY3MoRi5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KEYpfWVsc2UgaWYodGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+MCl7bGV0IEY9bmV3IFNldCh0aGlzLmxvZ0J1ZmZlci5tYXAoaj0+YCR7ai50aW1lc3RhbXB9fCR7ai5tZXNzYWdlfWApKTtmb3IobGV0IGogb2YgdGhpcy5sb2dFbnRyaWVzKUYuaGFzKGAke2oudGltZXN0YW1wfXwke2oubWVzc2FnZX1gKXx8KHRoaXMubG9nQnVmZmVyLnB1c2goaiksdGhpcy51cGRhdGVNZXRyaWNzKGoubGV2ZWwpLHRoaXMud3JpdGVMb2dFbnRyeShqKSl9fWFzeW5jIGluaXRpYWxpemVUZXJtaW5hbCgpe2xldCBGPWFvLmdldEluc3RhbmNlKCksW2osdWUsbGVdPWF3YWl0IFByb21pc2UuYWxsKFtGLmxvYWRYdGVybSgpLEYubG9hZFh0ZXJtRml0QWRkb24oKSxGLmxvYWRYdGVybVNlYXJjaEFkZG9uKCldKTthd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpLHRoaXMudGVybWluYWw9bmV3IGouVGVybWluYWwoe2N1cnNvckJsaW5rOiExLGRpc2FibGVTdGRpbjohMCxmb250U2l6ZToxMixmb250RmFtaWx5OiInU0YgTW9ubycsICdNb25hY28nLCAnQ29uc29sYXMnLCAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlIix0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUoKSxzY3JvbGxiYWNrOnRoaXMubWF4RW50cmllcyxjb252ZXJ0RW9sOiEwfSksdGhpcy5maXRBZGRvbj1uZXcgdWUuRml0QWRkb24sdGhpcy5zZWFyY2hBZGRvbj1uZXcgbGUuU2VhcmNoQWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5zZWFyY2hBZGRvbik7bGV0IFE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbC1jb250YWluZXIiKTt0aGlzLnRlcm1pbmFsLm9wZW4oUSksYXdhaXQgbmV3IFByb21pc2UoaWU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShpZSkpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uPy5maXQoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShRKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249dGhpcy5kb210b29sc0luc3RhbmNlLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKCgpPT57dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUoKSl9KSx0aGlzLnJhdGVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+dGhpcy5jYWxjdWxhdGVSYXRlKCksMWUzKSx0aGlzLnRlcm1pbmFsUmVhZHk9ITA7Zm9yKGxldCBpZSBvZiB0aGlzLmxvZ0J1ZmZlcil0aGlzLndyaXRlTG9nRW50cnkoaWUpfXVwZGF0ZWQoRil7aWYoc3VwZXIudXBkYXRlZChGKSxGLmhhcygiZ29CcmlnaHQiKSYmdGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUoKSksRi5oYXMoImxvZ0VudHJpZXMiKSYmdGhpcy50ZXJtaW5hbFJlYWR5JiZ0aGlzLmxvZ0VudHJpZXMubGVuZ3RoPjApe2xldCBqPUYuZ2V0KCJsb2dFbnRyaWVzIil8fFtdLHVlPXRoaXMubG9nRW50cmllcztpZihqLmxlbmd0aD09PXVlLmxlbmd0aCYmai5sZW5ndGg+MCYmaltqLmxlbmd0aC0xXS50aW1lc3RhbXA9PT11ZVt1ZS5sZW5ndGgtMV0udGltZXN0YW1wJiZqW2oubGVuZ3RoLTFdLm1lc3NhZ2U9PT11ZVt1ZS5sZW5ndGgtMV0ubWVzc2FnZSlyZXR1cm47aWYodWUubGVuZ3RoPmoubGVuZ3RoJiZqLmxlbmd0aD4wJiZqW2oubGVuZ3RoLTFdLnRpbWVzdGFtcD09PXVlW2oubGVuZ3RoLTFdLnRpbWVzdGFtcCYmaltqLmxlbmd0aC0xXS5tZXNzYWdlPT09dWVbai5sZW5ndGgtMV0ubWVzc2FnZSl7bGV0IGxlPXVlLnNsaWNlKGoubGVuZ3RoKTtmb3IobGV0IFEgb2YgbGUpdGhpcy5sb2dCdWZmZXIucHVzaChRKSx0aGlzLnVwZGF0ZU1ldHJpY3MoUS5sZXZlbCksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwoIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnl8fHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKFEpKSYmdGhpcy53cml0ZUxvZ0VudHJ5KFEpO3JldHVybn10aGlzLmxvZ0J1ZmZlcj1bLi4udWVdLHRoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKX19Z2V0VGVybWluYWxUaGVtZSgpe3JldHVybiF0aGlzLmdvQnJpZ2h0P3tiYWNrZ3JvdW5kOiIjMGEwYTBhIixmb3JlZ3JvdW5kOiIjZTBlMGUwIixjdXJzb3I6IiNlMGUwZTAiLHNlbGVjdGlvbkJhY2tncm91bmQ6IiM0MDQwNDAiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNmZjU1NTUiLGdyZWVuOiIjNTBmYTdiIix5ZWxsb3c6IiNmMWZhOGMiLGJsdWU6IiM2MjcyYTQiLG1hZ2VudGE6IiNmZjc5YzYiLGN5YW46IiM4YmU5ZmQiLHdoaXRlOiIjZjhmOGYyIixicmlnaHRCbGFjazoiIzYyNzJhNCIsYnJpZ2h0UmVkOiIjZmY2ZTZlIixicmlnaHRHcmVlbjoiIzY5ZmY5NCIsYnJpZ2h0WWVsbG93OiIjZmZmZmE1IixicmlnaHRCbHVlOiIjZDZhY2ZmIixicmlnaHRNYWdlbnRhOiIjZmY5MmRmIixicmlnaHRDeWFuOiIjYTRmZmZmIixicmlnaHRXaGl0ZToiI2ZmZmZmZiJ9OntiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLHNlbGVjdGlvbkJhY2tncm91bmQ6IiNhZGQ2ZmYiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9fWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpe2xldCBGPSJ4dGVybS1zaGFkb3ctc3R5bGVzIjtpZih0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoRikpcmV0dXJuO2xldCBqPWAkeyQyfS94dGVybUAke1QyLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxsZT1hd2FpdChhd2FpdCBmZXRjaChqKSkudGV4dCgpLFE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtRLmlkPUYsUS50ZXh0Q29udGVudD1sZSx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoUSl9YWRkTG9nKEYsaix1ZSl7bGV0IGxlPXt0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGxldmVsOkYsbWVzc2FnZTpqLHNvdXJjZTp1ZX07dGhpcy5sb2dCdWZmZXIucHVzaChsZSksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeT90aGlzLndyaXRlTG9nRW50cnkobGUpOnRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKGxlKT8odGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsdGhpcy53cml0ZUxvZ0VudHJ5KGxlKSk6dGhpcy51cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCksdGhpcy51cGRhdGVNZXRyaWNzKGxlLmxldmVsKX11cGRhdGVMb2coRil7aWYoRilmb3IobGV0IGogb2YgRil0aGlzLmxvZ0J1ZmZlci5wdXNoKGopLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnk/dGhpcy53cml0ZUxvZ0VudHJ5KGopOnRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKGopPyh0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLndyaXRlTG9nRW50cnkoaikpOnRoaXMudXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpLHRoaXMudXBkYXRlTWV0cmljcyhqLmxldmVsKX11cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD4wJiZ0aGlzLnRlcm1pbmFsLndyaXRlKCJceDFCWzFBXHgxQlsyS1xyIiksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50KyssdGhpcy53cml0ZUhpZGRlblBsYWNlaG9sZGVyKHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWVudHJ5TWF0Y2hlc0ZpbHRlcihGKXtpZighdGhpcy5zZWFyY2hRdWVyeSlyZXR1cm4hMDtsZXQgaj10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7cmV0dXJuIEYubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGopfHxGLmxldmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoail8fChGLnNvdXJjZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhqKT8/ITEpfXdyaXRlTG9nRW50cnkoRil7aWYoIXRoaXMudGVybWluYWwpcmV0dXJuO2xldCBqPXRoaXMuZm9ybWF0TG9nRW50cnkoRik7dGhpcy50ZXJtaW5hbC53cml0ZWxuKGopLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfWZvcm1hdExvZ0VudHJ5KEYpe2xldCBqPXRoaXMuZm9ybWF0VGltZXN0YW1wKEYudGltZXN0YW1wKSx1ZT17ZGVidWc6Ilx4MUJbOTBtIixpbmZvOiJceDFCWzM2bSIsd2FybjoiXHgxQlszM20iLGVycm9yOiJceDFCWzMxbSIsc3VjY2VzczoiXHgxQlszMm0ifSxsZT0iXHgxQlswbSIsUT0iXHgxQlsybSIsaWU9YCR7dWVbRi5sZXZlbF19WyR7Ri5sZXZlbC50b1VwcGVyQ2FzZSgpLnBhZEVuZCg3KX1dJHtsZX1gLHRlPUYuc291cmNlP2Ake1F9WyR7Ri5zb3VyY2V9XSR7bGV9IGA6IiIsZWU9dGhpcy5hcHBseUhpZ2hsaWdodHMoRi5tZXNzYWdlKTtyZXR1cm5gJHtRfSR7an0ke2xlfSAke2llfSAke3RlfSR7ZWV9YH1mb3JtYXRUaW1lc3RhbXAoRil7cmV0dXJuIG5ldyBEYXRlKEYpLnRvTG9jYWxlVGltZVN0cmluZygiZW4tVVMiLHtob3VyMTI6ITEsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGZyYWN0aW9uYWxTZWNvbmREaWdpdHM6M30pfWFwcGx5SGlnaGxpZ2h0cyhGKXtsZXQgaj1bLi4udGhpcy5oaWdobGlnaHRLZXl3b3Jkc107aWYodGhpcy5maWx0ZXJNb2RlJiZ0aGlzLnNlYXJjaFF1ZXJ5JiZqLnB1c2godGhpcy5zZWFyY2hRdWVyeSksai5sZW5ndGg9PT0wKXJldHVybiBGO2xldCB1ZT1GO2ZvcihsZXQgbGUgb2Ygail7bGV0IFE9bGUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csIlxcJCYiKSxpZT1uZXcgUmVnRXhwKGAoJHtRfSlgLCJnaSIpO3VlPXVlLnJlcGxhY2UoaWUsIlx4MUJbNDNtXHgxQlszMG0kMVx4MUJbMG0iKX1yZXR1cm4gdWV9d3JpdGVSYXcoRil7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGUoRiksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX13cml0ZWxuUmF3KEYpe3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLndyaXRlbG4oRiksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1oYW5kbGVTZWFyY2hJbnB1dChGKXtsZXQgdWU9Ri50YXJnZXQudmFsdWUsbGU9dGhpcy5zZWFyY2hRdWVyeSE9PXVlO3RoaXMuc2VhcmNoUXVlcnk9dWUsdGhpcy5maWx0ZXJNb2RlJiZsZT90aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCk6dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9aGFuZGxlU2VhcmNoS2V5ZG93bihGKXtGLmtleT09PSJFbnRlciI/Ri5zaGlmdEtleT90aGlzLnNlYXJjaFByZXZpb3VzKCk6dGhpcy5zZWFyY2hOZXh0KCk6Ri5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2VhcmNoUXVlcnk9IiIsRi50YXJnZXQudmFsdWU9IiIpfXNlYXJjaChGKXt0aGlzLnNlYXJjaFF1ZXJ5PUYsdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQoRil9c2VhcmNoTmV4dCgpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfXNlYXJjaFByZXZpb3VzKCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZFByZXZpb3VzKHRoaXMuc2VhcmNoUXVlcnkpfXRvZ2dsZUF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbCx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX10b2dnbGVGaWx0ZXJNb2RlKCl7dGhpcy5maWx0ZXJNb2RlPSF0aGlzLmZpbHRlck1vZGUsdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfXJlUmVuZGVyRmlsdGVyZWRMb2dzKCl7aWYodGhpcy50ZXJtaW5hbCl7aWYodGhpcy50ZXJtaW5hbC5jbGVhcigpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5KWZvcihsZXQgRiBvZiB0aGlzLmxvZ0J1ZmZlcil7bGV0IGo9dGhpcy5mb3JtYXRMb2dFbnRyeShGKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oail9ZWxzZXtsZXQgRj0wO2ZvcihsZXQgaiBvZiB0aGlzLmxvZ0J1ZmZlcilpZih0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihqKSl7Rj4wJiYodGhpcy53cml0ZUhpZGRlblBsYWNlaG9sZGVyKEYpLEY9MCk7bGV0IHVlPXRoaXMuZm9ybWF0TG9nRW50cnkoaik7dGhpcy50ZXJtaW5hbC53cml0ZWxuKHVlKX1lbHNlIEYrKztGPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoRiksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PUYpfXRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfX13cml0ZUhpZGRlblBsYWNlaG9sZGVyKEYpe2xldCBqPSJceDFCWzJtIix1ZT0iXHgxQlswbSIsbGU9Rj09PTE/IlsxIGxvZyBsaW5lIGhpZGRlbiBieSBmaWx0ZXIgLi4uXSI6YFske0Z9IGxvZyBsaW5lcyBoaWRkZW4gYnkgZmlsdGVyIC4uLl1gO3RoaXMudGVybWluYWw/LndyaXRlbG4oYCR7an0ke2xlfSR7dWV9YCl9Y2xlYXJMb2dzKCl7dGhpcy50ZXJtaW5hbD8uY2xlYXIoKSx0aGlzLmxvZ0J1ZmZlcj1bXSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLnJlc2V0TWV0cmljcygpfXNjcm9sbFRvQm90dG9tKCl7dGhpcy50ZXJtaW5hbD8uc2Nyb2xsVG9Cb3R0b20oKX11cGRhdGVNZXRyaWNzKEYpe3RoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLFtGXTp0aGlzLm1ldHJpY3NbRl0rMSx0b3RhbDp0aGlzLm1ldHJpY3MudG90YWwrMX0sdGhpcy5yZWNvcmRMb2dFdmVudCgpfXJlY29yZExvZ0V2ZW50KCl7dGhpcy5yYXRlQnVmZmVyLnB1c2goRGF0ZS5ub3coKSl9Y2FsY3VsYXRlUmF0ZSgpe2xldCBGPURhdGUubm93KCk7dGhpcy5yYXRlQnVmZmVyPXRoaXMucmF0ZUJ1ZmZlci5maWx0ZXIodWU9PkYtdWU8MWU0KTtsZXQgaj10aGlzLnJhdGVCdWZmZXIubGVuZ3RoLzEwO2ohPT10aGlzLm1ldHJpY3MucmF0ZSYmKHRoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLHJhdGU6an0pfXJlc2V0TWV0cmljcygpe3RoaXMubWV0cmljcz17ZGVidWc6MCxpbmZvOjAsd2FybjowLGVycm9yOjAsc3VjY2VzczowLHRvdGFsOjAscmF0ZTowfSx0aGlzLnJhdGVCdWZmZXI9W119YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJnRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5yYXRlSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5yYXRlSW50ZXJ2YWwpLHRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuZGlzcG9zZSgpfXN0YXRpY3tJaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyIFl4YT1nKCgpPT57S3hhKCl9KTt2YXIgWnhhLFh4YT1nKCgpPT57cGUoKTtJdCgpO2VsdCgpO1p4YT1pKCgpPT57bGV0IHM9W3tuYW1lOiJMYXRlbmN5IixtYXg6MTAwfSx7bmFtZToiVGhyb3VnaHB1dCIsbWF4OjEwMH0se25hbWU6IkF2YWlsYWJpbGl0eSIsbWF4OjEwMH0se25hbWU6IkVycm9yIFJhdGUiLG1heDoxMDB9LHtuYW1lOiJTYXR1cmF0aW9uIixtYXg6MTAwfSx7bmFtZToiU2VjdXJpdHkiLG1heDoxMDB9XSxlPVt7bmFtZToiU2VydmljZSBBIix2YWx1ZXM6Wzg1LDkwLDk5LDEyLDQ1LDc4XX0se25hbWU6IlNlcnZpY2UgQiIsdmFsdWVzOls3MCw2NSw5NSwyOCw2MCw5MF19XSx0PVt7bmFtZToiU3BlZWQiLG1heDoxMH0se25hbWU6IlJlbGlhYmlsaXR5IixtYXg6MTB9LHtuYW1lOiJDb21mb3J0IixtYXg6MTB9LHtuYW1lOiJTYWZldHkiLG1heDoxMH0se25hbWU6IkNvc3QiLG1heDoxMH1dLGE9W3tuYW1lOiJSYXRpbmciLHZhbHVlczpbOC41LDkuMiw3LDkuNSw2XX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcj0+e2xldCBuPXIucXVlcnlTZWxlY3RvcigiI2NvbXBhcmlzb24tY2hhcnQiKSxvPXIucXVlcnlTZWxlY3RvcigiI3NpbmdsZS1jaGFydCIpO3IucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHA9PntwLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZwLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24uc2VyaWVzPWUubWFwKHU9Pih7Li4udSx2YWx1ZXM6dS52YWx1ZXMubWFwKCgpPT5NYXRoLnJvdW5kKDIwK01hdGgucmFuZG9tKCkqODApKX0pKSxvLnNlcmllcz1hLm1hcCh1PT4oey4uLnUsdmFsdWVzOnUudmFsdWVzLm1hcCgoKT0+TWF0aC5yb3VuZCgoMitNYXRoLnJhbmRvbSgpKjgpKjEwKS8xMCl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jaGFydFJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SYW5kb21pemU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRSb3ciPgogICAgICAgICAgPGRlZXMtY2hhcnQtcmFkYXIKICAgICAgICAgICAgaWQ9ImNvbXBhcmlzb24tY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJTZXJ2aWNlIEhlYWx0aCBDb21wYXJpc29uIn0KICAgICAgICAgICAgLmluZGljYXRvcnM9JHtzfQogICAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgID48L2RlZXMtY2hhcnQtcmFkYXI+CgogICAgICAgICAgPGRlZXMtY2hhcnQtcmFkYXIKICAgICAgICAgICAgaWQ9InNpbmdsZS1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgUmF0aW5nIn0KICAgICAgICAgICAgLmluZGljYXRvcnM9JHt0fQogICAgICAgICAgICAuc2VyaWVzPSR7YX0KICAgICAgICAgICAgLmZpbGxBcmVhPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LXJhZGFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIFJhZGFyIGNoYXJ0IGZvciBtdWx0aS1kaW1lbnNpb25hbCBjb21wYXJpc29uIOKAogogICAgICAgICAgU3VwcG9ydHMgbXVsdGlwbGUgb3ZlcmxheSBzZXJpZXMgYW5kIGNvbmZpZ3VyYWJsZSBmaWxsIOKAogogICAgICAgICAgQ2xpY2sgJ1JhbmRvbWl6ZScgdG8gdXBkYXRlIGRhdGEKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgUXhhLEp4YT1nKCgpPT57cGUoKTtXUSgpO1F4YT1bLi4uYjQsSmBgXX0pO3ZhciBleWEsdHlhPWcoKCk9PntwZSgpO2V5YT1pKHM9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHtzLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0UmFkYXIiKX0pO3ZhciBHUSxxdSxrZXMsZWx0PWcoKCk9PntwZSgpO1VRKCk7WHhhKCk7SnhhKCk7dHlhKCk7X3goKTtHUT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0scXU9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGtlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtY2hhcnQtcmFkYXIiKV0sZSx0PVtdLGEscj1IdSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0UmFkYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6QXJyYXl9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSxHUSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZGljYXRvcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImluZGljYXRvcnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pbmRpY2F0b3JzLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaW5kaWNhdG9ycz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG8sbCksR1EodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNlcmllcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlcmllcywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNlcmllcz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGQsdSksR1EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzaG93TGVnZW5kImluIHosImhhcyIpLGdldDppKHo9Pnouc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LnNob3dMZWdlbmQ9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLEdRKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsbEFyZWEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImZpbGxBcmVhImluIHosImhhcyIpLGdldDppKHo9PnouZmlsbEFyZWEsImdldCIpLHNldDppKCh6LE4pPT57ei5maWxsQXJlYT1OfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sZiksR1EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSx5PWE9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1aeGE7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPXF1KHRoaXMsbyxbXSk7Z2V0IGluZGljYXRvcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaW5kaWNhdG9ycyhNKXt0aGlzLiNlPU19I3Q9KHF1KHRoaXMsbCkscXUodGhpcyxkLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiN0fXNldCBzZXJpZXMoTSl7dGhpcy4jdD1NfSNhPShxdSh0aGlzLHUpLHF1KHRoaXMsYiwhMCkpO2dldCBzaG93TGVnZW5kKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dMZWdlbmQoTSl7dGhpcy4jYT1NfSNzPShxdSh0aGlzLHYpLHF1KHRoaXMsbSwhMCkpO2dldCBmaWxsQXJlYSgpe3JldHVybiB0aGlzLiNzfXNldCBmaWxsQXJlYShNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1ReGE7cmVuZGVyKCl7cmV0dXJuIGV5YSh0aGlzKX1hc3luYyB1cGRhdGVkKE0pe3N1cGVyLnVwZGF0ZWQoTSksdGhpcy5jaGFydEluc3RhbmNlJiYoTS5oYXMoImluZGljYXRvcnMiKXx8TS5oYXMoInNlcmllcyIpfHxNLmhhcygic2hvd0xlZ2VuZCIpfHxNLmhhcygiZmlsbEFyZWEiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBNPWc0KHRoaXMuZ29CcmlnaHQpLHo9ZjQodGhpcy5nb0JyaWdodCksTj10aGlzLmdvQnJpZ2h0Py4xOi4xNSxDPXRoaXMuc2VyaWVzLm1hcCgoXyxPKT0+e2xldCAkPV8uY29sb3J8fHpbTyV6Lmxlbmd0aF07cmV0dXJue25hbWU6Xy5uYW1lLHZhbHVlOl8udmFsdWVzLGl0ZW1TdHlsZTp7Y29sb3I6JCxib3JkZXJDb2xvcjokLGJvcmRlcldpZHRoOjF9LGxpbmVTdHlsZTp7Y29sb3I6JCx3aWR0aDoxLjV9LGFyZWFTdHlsZTp0aGlzLmZpbGxBcmVhP3tjb2xvcjptNCgkLE4pfTp2b2lkIDAsc3ltYm9sOiJjaXJjbGUiLHN5bWJvbFNpemU6NX19KTtyZXR1cm57dG9vbHRpcDp7dHJpZ2dlcjoiaXRlbSJ9LGxlZ2VuZDp0aGlzLnNob3dMZWdlbmQmJnRoaXMuc2VyaWVzLmxlbmd0aD4xP3tib3R0b206OCxpdGVtV2lkdGg6MTAsaXRlbUhlaWdodDoxMH06e3Nob3c6ITF9LHJhZGFyOntpbmRpY2F0b3I6dGhpcy5pbmRpY2F0b3JzLm1hcChfPT4oe25hbWU6Xy5uYW1lLG1heDpfLm1heH0pKSxzaGFwZToicG9seWdvbiIsc3BsaXROdW1iZXI6NCxheGlzTmFtZTp7Y29sb3I6TS50ZXh0U2Vjb25kYXJ5LGZvbnRTaXplOjExfSxzcGxpdEFyZWE6e2FyZWFTdHlsZTp7Y29sb3I6W00uYmdUZXJ0aWFyeSxNLmJnU2Vjb25kYXJ5XX19LHNwbGl0TGluZTp7bGluZVN0eWxlOntjb2xvcjpNLmJvcmRlckRlZmF1bHR9fSxheGlzTGluZTp7bGluZVN0eWxlOntjb2xvcjpNLmJvcmRlckRlZmF1bHR9fX0sc2VyaWVzOlt7dHlwZToicmFkYXIiLGRhdGE6QyxlbXBoYXNpczp7bGluZVN0eWxlOnt3aWR0aDozfX19XX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHF1KHRoaXMsZil9c3RhdGlje3F1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBheWE9ZygoKT0+e2VsdCgpfSk7dmFyIHN5YT1nKCgpPT57eHhhKCk7THhhKCk7T3hhKCk7VXhhKCk7WXhhKCk7YXlhKCl9KTt2YXIgaXlhLHJ5YT1nKCgpPT57cGUoKTtpeWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtb1dyYXBwZXIgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHlwZVNjcmlwdCBDb2RlIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSBjb21wcmVoZW5zaXZlIFR5cGVTY3JpcHQgY29kZSBleGFtcGxlIHdpdGggdmFyaW91cyBzeW50YXggaGlnaGxpZ2h0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJ0eXBlc2NyaXB0Ij4KaW50ZXJmYWNlIFVzZXIgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwogIGVtYWlsOiBzdHJpbmc7CiAgaXNBY3RpdmU6IGJvb2xlYW47Cn0KCmNsYXNzIFVzZXJTZXJ2aWNlIHsKICBwcml2YXRlIHVzZXJzOiBVc2VyW10gPSBbXTsKICAKICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVVybDogc3RyaW5nKSB7CiAgICBjb25zb2xlLmxvZygnVXNlclNlcnZpY2UgaW5pdGlhbGl6ZWQnKTsKICB9CiAgCiAgYXN5bmMgZ2V0VXNlcnMoKTogUHJvbWlzZTxVc2VyW10+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy5hcGlVcmwpOwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpOwogICAgICByZXR1cm4gZGF0YS51c2VyczsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCB1c2VyczonLCBlcnJvcik7CiAgICAgIHJldHVybiBbXTsKICAgIH0KICB9CiAgCiAgYWRkVXNlcih1c2VyOiBVc2VyKTogdm9pZCB7CiAgICB0aGlzLnVzZXJzLnB1c2godXNlcik7CiAgfQp9CgovLyBVc2FnZSBleGFtcGxlCmNvbnN0IHNlcnZpY2UgPSBuZXcgVXNlclNlcnZpY2UoJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzJyk7CmNvbnN0IHVzZXJzID0gYXdhaXQgc2VydmljZS5nZXRVc2VycygpOwpjb25zb2xlLmxvZygnRm91bmQgdXNlcnM6JywgdXNlcnMubGVuZ3RoKTsKICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkphdmFTY3JpcHQgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gSmF2YVNjcmlwdCB3aXRoIEVTNisgZmVhdHVyZXMuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImphdmFzY3JpcHQiPgovLyBBcnJheSBtYW5pcHVsYXRpb24gZXhhbXBsZXMKY29uc3QgbnVtYmVycyA9IFsxLCAyLCAzLCA0LCA1XTsKY29uc3QgZG91YmxlZCA9IG51bWJlcnMubWFwKG4gPT4gbiAqIDIpOwpjb25zdCBmaWx0ZXJlZCA9IG51bWJlcnMuZmlsdGVyKG4gPT4gbiA+IDMpOwoKLy8gT2JqZWN0IGRlc3RydWN0dXJpbmcKY29uc3QgdXNlciA9IHsgbmFtZTogJ0pvaG4nLCBhZ2U6IDMwLCBjaXR5OiAnTmV3IFlvcmsnIH07CmNvbnN0IHsgbmFtZSwgYWdlIH0gPSB1c2VyOwoKLy8gUHJvbWlzZSBoYW5kbGluZwpjb25zdCBmZXRjaERhdGEgPSBhc3luYyAodXJsKSA9PiB7CiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpOwogIHJldHVybiByZXNwb25zZS5qc29uKCk7Cn07CgovLyBNb2Rlcm4gc3ludGF4CmNvbnN0IGdyZWV0ID0gKG5hbWUgPSAnV29ybGQnKSA9PiBcYEhlbGxvLCBcJHtuYW1lfSFcYDsKY29uc29sZS5sb2coZ3JlZXQoJ1NoYWRDTicpKTsKICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlB5dGhvbiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlB5dGhvbiBjb2RlIHdpdGggY2xhc3NlcyBhbmQgdHlwZSBoaW50cy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0icHl0aG9uIj4KZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QsIE9wdGlvbmFsCmltcG9ydCBhc3luY2lvCgpjbGFzcyBEYXRhUHJvY2Vzc29yOgogICAgIiIiQSBzaW1wbGUgZGF0YSBwcm9jZXNzb3IgY2xhc3MiIiIKICAgIAogICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWU6IHN0cik6CiAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgIHNlbGYuZGF0YTogTGlzdFtkaWN0XSA9IFtdCiAgICAKICAgIGFzeW5jIGRlZiBwcm9jZXNzX2RhdGEoc2VsZiwgaXRlbXM6IExpc3RbZGljdF0pIC0+IExpc3RbZGljdF06CiAgICAgICAgIiIiUHJvY2VzcyBkYXRhIGl0ZW1zIGFzeW5jaHJvbm91c2x5IiIiCiAgICAgICAgcmVzdWx0cyA9IFtdCiAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CiAgICAgICAgICAgICMgU2ltdWxhdGUgYXN5bmMgcHJvY2Vzc2luZwogICAgICAgICAgICBhd2FpdCBhc3luY2lvLnNsZWVwKDAuMSkKICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoewogICAgICAgICAgICAgICAgJ2lkJzogaXRlbS5nZXQoJ2lkJyksCiAgICAgICAgICAgICAgICAncHJvY2Vzc2VkJzogVHJ1ZSwKICAgICAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUKICAgICAgICAgICAgfSkKICAgICAgICByZXR1cm4gcmVzdWx0cwogICAgCiAgICBkZWYgZ2V0X3N1bW1hcnkoc2VsZikgLT4gZGljdDoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAncHJvY2Vzc29yJzogc2VsZi5uYW1lLAogICAgICAgICAgICAnaXRlbXNfcHJvY2Vzc2VkJzogbGVuKHNlbGYuZGF0YSkKICAgICAgICB9CgojIFVzYWdlCnByb2Nlc3NvciA9IERhdGFQcm9jZXNzb3IoIk1haW4iKQpkYXRhID0gYXdhaXQgcHJvY2Vzc29yLnByb2Nlc3NfZGF0YShbeydpZCc6IDF9LCB7J2lkJzogMn1dKQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q1NTIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+TW9kZXJuIENTUyB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzIGFuZCBhbmltYXRpb25zLiBOb3RlIHRoZSBzaG9ydGVyIGxhbmd1YWdlIGxhYmVsLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJjc3MiPgovKiBNb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgKi8KOnJvb3QgewogIC0tcHJpbWFyeS1jb2xvcjogIzNiODJmNjsKICAtLXNlY29uZGFyeS1jb2xvcjogIzEwYjk4MTsKICAtLWJhY2tncm91bmQ6ICNmZmZmZmY7CiAgLS10ZXh0LWNvbG9yOiAjMDkwOTBiOwogIC0tYm9yZGVyLXJhZGl1czogNnB4Owp9CgouY2FyZCB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7CiAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTsKICBwYWRkaW5nOiAyNHB4OwogIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKfQoKLmNhcmQ6aG92ZXIgewogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpOwp9CgpAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfQogIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpTT04gRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5KU09OIGNvbmZpZ3VyYXRpb24gd2l0aCBwcm9wZXIgZm9ybWF0dGluZy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0ianNvbiI+CnsKICAibmFtZSI6ICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLAogICJ2ZXJzaW9uIjogIjEuMTAuNyIsCiAgImRlc2NyaXB0aW9uIjogIkEgY29tcHJlaGVuc2l2ZSBjYXRhbG9nIG9mIHdlYiBjb21wb25lbnRzIiwKICAibWFpbiI6ICJkaXN0X3RzX3dlYi9pbmRleC5qcyIsCiAgInR5cGUiOiAibW9kdWxlIiwKICAic2NyaXB0cyI6IHsKICAgICJidWlsZCI6ICJ0c2J1aWxkIHRzZm9sZGVycyAtLWFsbG93aW1wbGljaXRhbnkgJiYgdHNidW5kbGUgZWxlbWVudCAtLXByb2R1Y3Rpb24iLAogICAgIndhdGNoIjogInRzd2F0Y2ggZWxlbWVudCIsCiAgICAidGVzdCI6ICJ0c3Rlc3QgdGVzdC8gLS13ZWIgLS12ZXJib3NlIgogIH0sCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiOiAiXjIuMC40NSIsCiAgICAiaGlnaGxpZ2h0LmpzIjogIl4xMS45LjAiCiAgfQp9CiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgdGx0LEtRLFNlcyxhbHQ9ZygoKT0+e3J5YSgpO3BlKCk7RXIoKTtodCgpO28zKCk7a3QoKTtmcigpO091KCk7bXIoKTt0bHQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEtRPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxTZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWRhdGF2aWV3LWNvZGVib3giKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0RhdGF2aWV3Q29kZWJveCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx0bHQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9nTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh2PT4icHJvZ0xhbmciaW4gdiwiaGFzIiksZ2V0Omkodj0+di5wcm9nTGFuZywiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LnByb2dMYW5nPXh9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx0bHQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2RlVG9EaXNwbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjb2RlVG9EaXNwbGF5ImluIHYsImhhcyIpLGdldDppKHY9PnYuY29kZVRvRGlzcGxheSwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmNvZGVUb0Rpc3BsYXk9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLHRsdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWl5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyIsIldvcmtzcGFjZSJdOyNlPUtRKHRoaXMsbywidHlwZXNjcmlwdCIpO2dldCBwcm9nTGFuZygpe3JldHVybiB0aGlzLiNlfXNldCBwcm9nTGFuZyhiKXt0aGlzLiNlPWJ9I3Q9KEtRKHRoaXMsbCksS1EodGhpcyxkLCIiKSk7Z2V0IGNvZGVUb0Rpc3BsYXkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29kZVRvRGlzcGxheShiKXt0aGlzLiN0PWJ9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGEuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgZGVlcy10aWxlIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgfQoKICAgICAgICAuYXBwYmFyIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciAuZmlsZU5hbWUgewogICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmJvdHRvbUJhciB7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlc0xhYmVsIHsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmxhbmd1YWdlTGFiZWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5obGpzLWtleXdvcmQgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5jb2RlZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IGF1dG87CiAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICB9CgogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAwcHggMHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB9CgogICAgICAgIC5saW5lQ291bnRlcjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG9wYWNpdHk6IDUwJTsKICAgICAgICB9CgogICAgICAgIHByZSB7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBjb2RlIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICB9CgogICAgICAgIGNvZGUsCiAgICAgICAgY29kZSAqLAogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgICBmb250LXdlaWdodDogMjAwOwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7Qmd9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtc3RyaW5nIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM4YjVjZjYiLCIjYTc4YmZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtZnVuY3Rpb24gewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXBhcmFtcyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwODkxYjIiLCIjMDZiNmQ0Iil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtY29tbWVudCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtbnVtYmVyIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1saXRlcmFsIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1hdHRyIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy12YXJpYWJsZSB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRlZXMtdGlsZQogICAgICAgIEBjb250ZXh0bWVudT0iJHtiPT57JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYixbe25hbWU6IkFib3V0IixpY29uTmFtZToiY2lyY2xlSW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9XSl9fSIKICAgICAgPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGVOYW1lIj5pbmRleC50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGVncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmVOdW1iZXJzIj4KICAgICAgICAgICAgJHsoKCk9PntsZXQgYj0wO3JldHVybiB0aGlzLmNvZGVUb0Rpc3BsYXkuc3BsaXQoYApgKS5tYXAodj0+KGIrKyx3YDxkaXYgY2xhc3M9ImxpbmVDb3VudGVyIj4ke2J9PC9kaXY+YCkpfSkoKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHByZT48Y29kZT48L2NvZGU+PC9wcmU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VzTGFiZWwiPlNwYWNlczogMjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2VMYWJlbCI+JHt0aGlzLnByb2dMYW5nfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Y29kZVRvRGlzcGxheVN0b3JlPShLUSh0aGlzLHUpLCIiKTtoaWdobGlnaHRKcz1udWxsO2FzeW5jIHVwZGF0ZWQoYil7c3VwZXIudXBkYXRlZChiKSxjb25zb2xlLmxvZygiaGlnaGxpZ2h0aW5nIG5vdyIpLGNvbnNvbGUubG9nKHRoaXMuY2hpbGROb2Rlcyk7bGV0IHY9W107dGhpcy5jaGlsZE5vZGVzLmZvckVhY2goZj0+e2Yubm9kZU5hbWU9PT0iI3RleHQiJiZ2LnB1c2goZil9KSx0aGlzLmNvZGVUb0Rpc3BsYXkmJnRoaXMuY29kZVRvRGlzcGxheSE9PXRoaXMuY29kZVRvRGlzcGxheVN0b3JlJiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9bmQubm9ybWFsaXplKHRoaXMuY29kZVRvRGlzcGxheSkudHJpbVN0YXJ0KCkpLHZbMF0mJnZbMF0ud2hvbGVUZXh0JiYhdGhpcy5jb2RlVG9EaXNwbGF5JiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9bmQubm9ybWFsaXplKHZbMF0ud2hvbGVUZXh0KS50cmltU3RhcnQoKSx0aGlzLmNvZGVUb0Rpc3BsYXk9dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUpLGF3YWl0IHV0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgYW8uZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImNvZGUiKSxtPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KHRoaXMuY29kZVRvRGlzcGxheVN0b3JlLHtsYW5ndWFnZTp0aGlzLnByb2dMYW5nLGlnbm9yZUlsbGVnYWxzOiEwfSk7eC5pbm5lckhUTUw9bS52YWx1ZX1zdGF0aWN7S1EoYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIG95YT1nKCgpPT57YWx0KCl9KTt2YXIgbnlhLGx5YT1nKCgpPT57cGUoKTtTbigpO255YT1pKCgpPT53YCA8c3R5bGU+CiAgICAuZGVtbyB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwYWRkaW5nOiA0MHB4OwogICAgfQogICAgCiAgICAuZGVtby1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICAgIAogICAgLmRlbW8tdGl0bGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAKICAgIC5kZW1vLW5vdGUgewogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8iPgogICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgUmlnaHQtY2xpY2sgb24gYW55IGRldGFpbCByb3cgdG8gY29weSB0aGUgdmFsdWUsIGtleSwgb3Iga2V5OnZhbHVlIGNvbWJpbmF0aW9uCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmljZSBIZWFsdGggU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIxIixuYW1lOiJBUEkgR2F0ZXdheSBTZXJ2aWNlIixsYXN0VXBkYXRlZDpEYXRlLm5vdygpLGNvbWJpbmVkU3RhdHVzOiJvayIsY29tYmluZWRTdGF0dXNUZXh0OiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsZGV0YWlsczpbe25hbWU6IlJlc3BvbnNlIFRpbWUiLHZhbHVlOiI0NW1zIChhdmcpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbm9ybWFsIHJhbmdlIn0se25hbWU6IlVwdGltZSIsdmFsdWU6Ijk5Ljk5JSAoMzAgZGF5cykiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IkV4Y2VsbGVudCB1cHRpbWUifSx7bmFtZToiQWN0aXZlIENvbm5lY3Rpb25zIix2YWx1ZToiMSwyMzQgLyAxMCwwMDAiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBsb2FkIn0se25hbWU6IlNTTCBDZXJ0aWZpY2F0ZSIsdmFsdWU6IlZhbGlkIHVudGlsIDIwMjQtMTItMzEiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IkNlcnRpZmljYXRlIHZhbGlkIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkRhdGFiYXNlIENsdXN0ZXIgU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIyIixuYW1lOiJQb3N0Z3JlU1FMIENsdXN0ZXIiLGxhc3RVcGRhdGVkOkRhdGUubm93KCktMzZlNSxjb21iaW5lZFN0YXR1czoicGFydGx5X29rIixjb21iaW5lZFN0YXR1c1RleHQ6Ik1pbm9yIGlzc3VlcyBkZXRlY3RlZCIsZGV0YWlsczpbe25hbWU6IlByaW1hcnkgTm9kZSIsdmFsdWU6ImRiLXByaW1hcnktMDEgKGhlYWx0aHkpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJPcGVyYXRpbmcgbm9ybWFsbHkifSx7bmFtZToiUmVwbGljYSBMYWciLHZhbHVlOiIyLjUgc2Vjb25kcyIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IlNsaWdodGx5IGVsZXZhdGVkIn0se25hbWU6IkRpc2sgVXNhZ2UiLHZhbHVlOiI3OCUgKDMxMkdCIC8gNDAwR0IpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQXBwcm9hY2hpbmcgdGhyZXNob2xkIn0se25hbWU6IkNvbm5lY3Rpb24gUG9vbCIsdmFsdWU6Ijg5IC8gMTAwIGNvbm5lY3Rpb25zIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbGltaXRzIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkJ1aWxkIFBpcGVsaW5lIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMyIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLGxhc3RVcGRhdGVkOkRhdGUubm93KCktODY0ZTUsY29tYmluZWRTdGF0dXM6Im5vdF9vayIsY29tYmluZWRTdGF0dXNUZXh0OiJCdWlsZCBmYWlsdXJlIixkZXRhaWxzOlt7bmFtZToiTGFzdCBCdWlsZCIsdmFsdWU6IkJ1aWxkICMxMjM0IC0gRmFpbGVkIixzdGF0dXM6Im5vdF9vayIsc3RhdHVzVGV4dDoiVGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJGYWlsZWQgVGVzdHMiLHZhbHVlOiIzIHRlc3RzIGZhaWxlZDogYXV0aC5zcGVjLnRzLCB1c2VyLnNwZWMudHMsIGFwaS5zcGVjLnRzIixzdGF0dXM6Im5vdF9vayIsc3RhdHVzVGV4dDoiVW5pdCB0ZXN0IGZhaWx1cmVzIn0se25hbWU6IkNvZGUgQ292ZXJhZ2UiLHZhbHVlOiI4Mi41JSAodGFyZ2V0OiA4NSUpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQmVsb3cgdGFyZ2V0In0se25hbWU6IkJ1aWxkIER1cmF0aW9uIix2YWx1ZToiMTJtIDM0cyIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiTm9ybWFsIGR1cmF0aW9uIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj5gLCJkZW1vRnVuYyIpfSk7dmFyIGN5YSxzbHQsX2VzLGR5YT1nKCgpPT57dzIoKTt2bygpO2x5YSgpO3BlKCk7U24oKTtmcigpO2h0KCk7bXIoKTtjeWE9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHNsdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0sY3lhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzT2JqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJzdGF0dXNPYmplY3QiaW4gdSwiaGFzIiksZ2V0OmkodT0+dS5zdGF0dXNPYmplY3QsImdldCIpLHNldDppKCh1LGMpPT57dS5zdGF0dXNPYmplY3Q9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLGN5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPW55YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPXNsdCh0aGlzLG8sdm9pZCAwKTtnZXQgc3RhdHVzT2JqZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXR1c09iamVjdChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QgewogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSAvIDAuMikiLCJoc2woMCAwJSA0NS4xJSAvIDAuMikiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLmNvcHlNYWluIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuY29weU1haW46YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm9rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjIpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5ub3Rfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMikiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QucGFydGx5X29rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjIpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogY29udGV4dC1tZW51OwogICAgICB9CgogICAgICAuZGV0YWlsOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA0KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDYpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIC5zdGF0dXNkb3QgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCAubGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC52YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmJvdHRvbUJhciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJhciAuc3RhdHVzTGFiZWwgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNkb3QgJHt0aGlzLnN0YXR1c09iamVjdD8uY29tYmluZWRTdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgIDxoMT4ke3RoaXMuc3RhdHVzT2JqZWN0Py5uYW1lfHwiTm8gc3RhdHVzIG9iamVjdCBhc3NpZ25lZCJ9PC9oMT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvcHlNYWluIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNvcHlBc0pzb259PkNvcHkgSlNPTjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5zdGF0dXNPYmplY3Q/LmRldGFpbHM/Lm1hcChkPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9ImRldGFpbCIKICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHt1PT57dS5wcmV2ZW50RGVmYXVsdCgpLCRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHUsW3tuYW1lOiJDb3B5IFZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChkLnZhbHVlLCJWYWx1ZSIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IEtleSIsaWNvbk5hbWU6Imx1Y2lkZTprZXkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChkLm5hbWUsIktleSIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IEtleTpWYWx1ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5LXBsdXMiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChgJHtkLm5hbWV9OiAke2QudmFsdWV9YCwiS2V5OlZhbHVlIil9LCJhY3Rpb24iKX1dKX19CiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNkb3QgJHtkLnN0YXR1c30iPjwvZGl2PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWxzVGV4dCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFiZWwiPiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2YWx1ZSI+JHtkLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzTGFiZWwiPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lmxhc3RVcGRhdGVkP2BMYXN0IHVwZGF0ZWQ6ICR7bmV3IERhdGUodGhpcy5zdGF0dXNPYmplY3QubGFzdFVwZGF0ZWQpLnRvTG9jYWxlU3RyaW5nKCl9YDoiIn08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31hc3luYyBjb3B5VG9DbGlwYm9hcmQoZCx1PSJUZXh0Iil7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGQpLGNvbnNvbGUubG9nKGAke3V9IGNvcGllZCB0byBjbGlwYm9hcmRgKX1jYXRjaChjKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY29weSAke3V9OmAsYyl9fWFzeW5jIGhhbmRsZUNvcHlBc0pzb24oKXtpZih0aGlzLnN0YXR1c09iamVjdCl0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0dXNPYmplY3QsbnVsbCwyKSk7bGV0IGQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5TWFpbiIpLHU9ZC50ZXh0Q29udGVudDtkLnRleHRDb250ZW50PSJDb3BpZWQhIjtsZXQgYz0hdGhpcy5nb0JyaWdodDtkLnN0eWxlLmJhY2tncm91bmQ9Yz8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLGQuc3R5bGUuYm9yZGVyQ29sb3I9Yz8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGQuc3R5bGUuY29sb3I9Yz8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLHNldFRpbWVvdXQoKCk9PntkLnRleHRDb250ZW50PXUsZC5zdHlsZS5iYWNrZ3JvdW5kPSIiLGQuc3R5bGUuYm9yZGVyQ29sb3I9IiIsZC5zdHlsZS5jb2xvcj0iIn0sMTUwMCl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6IixkKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHNsdCh0aGlzLGwpfXN0YXRpY3tzbHQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIHV5YT1nKCgpPT57ZHlhKCl9KTt2YXIgcHlhPWcoKCk9PntKMWUoKX0pO3ZhciBpbHQsaHlhLGZ5YT1nKCgpPT57cGUoKTtybHQoKTtpbHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiTW9ja1N0b3JhZ2VEYXRhUHJvdmlkZXIiKX1vYmplY3RzPW5ldyBNYXA7Y29uc3RydWN0b3IoKXtsZXQgZT1uZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7dGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL3JlYWRtZS5tZCIse2NvbnRlbnQ6YnRvYShgIyBXZWxjb21lCgpUaGlzIGlzIGEgZGVtbyBTdG9yYWdlIGJyb3dzZXIuCmApLGNvbnRlbnRUeXBlOiJ0ZXh0L21hcmtkb3duIixzaXplOjQyLGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL2NvbmZpZy5qc29uIix7Y29udGVudDpidG9hKGB7CiAgIm5hbWUiOiAiZGVtbyIsCiAgInZlcnNpb24iOiAiMS4wLjAiCn1gKSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsc2l6ZTo0OCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImRvY3VtZW50cy9ub3Rlcy90b2RvLnR4dCIse2NvbnRlbnQ6YnRvYShgQnV5IG1pbGsKRml4IGJ1ZyAjNDIKRGVwbG95IHRvIHByb2R1Y3Rpb25gKSxjb250ZW50VHlwZToidGV4dC9wbGFpbiIsc2l6ZTo0NSxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImltYWdlcy9sb2dvLnBuZyIse2NvbnRlbnQ6YnRvYSgiZmFrZS1wbmctZGF0YSIpLGNvbnRlbnRUeXBlOiJpbWFnZS9wbmciLHNpemU6MjQ1MDAsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJpbWFnZXMvYmFubmVyLmpwZyIse2NvbnRlbnQ6YnRvYSgiZmFrZS1qcGctZGF0YSIpLGNvbnRlbnRUeXBlOiJpbWFnZS9qcGVnIixzaXplOjE1NmUzLGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgic2NyaXB0cy9kZXBsb3kuc2giLHtjb250ZW50OmJ0b2EoYCMhL2Jpbi9iYXNoCmVjaG8gIkRlcGxveWluZy4uLiIKYCksY29udGVudFR5cGU6InRleHQvcGxhaW4iLHNpemU6MzQsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJpbmRleC5odG1sIix7Y29udGVudDpidG9hKGA8IURPQ1RZUEUgaHRtbD4KPGh0bWw+Cjxib2R5PgogIDxoMT5IZWxsbyBXb3JsZDwvaDE+CjwvYm9keT4KPC9odG1sPmApLGNvbnRlbnRUeXBlOiJ0ZXh0L2h0bWwiLHNpemU6NzIsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJzdHlsZXMuY3NzIix7Y29udGVudDpidG9hKCJib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgfSIpLGNvbnRlbnRUeXBlOiJ0ZXh0L2NzcyIsc2l6ZTo0NCxsYXN0TW9kaWZpZWQ6ZX0pfWFzeW5jIGxpc3RPYmplY3RzKGUsdCxhKXtsZXQgcj10fHwiIixuPVtdLG89bmV3IFNldDtmb3IobGV0W2wscF1vZiB0aGlzLm9iamVjdHMpe2lmKCFsLnN0YXJ0c1dpdGgocikpY29udGludWU7bGV0IGQ9bC5zbGljZShyLmxlbmd0aCk7aWYoYSl7bGV0IHU9ZC5pbmRleE9mKGEpO3U+PTA/by5hZGQocitkLnNsaWNlKDAsdSsxKSk6bi5wdXNoKHtrZXk6bCxzaXplOnAuc2l6ZSxsYXN0TW9kaWZpZWQ6cC5sYXN0TW9kaWZpZWR9KX1lbHNlIG4ucHVzaCh7a2V5Omwsc2l6ZTpwLnNpemUsbGFzdE1vZGlmaWVkOnAubGFzdE1vZGlmaWVkfSl9cmV0dXJue29iamVjdHM6bixwcmVmaXhlczpBcnJheS5mcm9tKG8pLnNvcnQoKX19YXN5bmMgZ2V0T2JqZWN0KGUsdCl7bGV0IGE9dGhpcy5vYmplY3RzLmdldCh0KTtpZighYSl0aHJvdyBuZXcgRXJyb3IoIk5vdCBmb3VuZCIpO3JldHVybnsuLi5hfX1hc3luYyBwdXRPYmplY3QoZSx0LGEscil7cmV0dXJuIHRoaXMub2JqZWN0cy5zZXQodCx7Y29udGVudDphLGNvbnRlbnRUeXBlOnIsc2l6ZTphdG9iKGEpLmxlbmd0aCxsYXN0TW9kaWZpZWQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSksITB9YXN5bmMgZGVsZXRlT2JqZWN0KGUsdCl7cmV0dXJuIHRoaXMub2JqZWN0cy5kZWxldGUodCl9YXN5bmMgZGVsZXRlUHJlZml4KGUsdCl7Zm9yKGxldCBhIG9mIHRoaXMub2JqZWN0cy5rZXlzKCkpYS5zdGFydHNXaXRoKHQpJiZ0aGlzLm9iamVjdHMuZGVsZXRlKGEpO3JldHVybiEwfWFzeW5jIGdldE9iamVjdFVybChlLHQpe2xldCBhPXRoaXMub2JqZWN0cy5nZXQodCk7aWYoIWEpcmV0dXJuIiI7bGV0IHI9bmV3IEJsb2IoW1VpbnQ4QXJyYXkuZnJvbShhdG9iKGEuY29udGVudCksbj0+bi5jaGFyQ29kZUF0KDApKV0se3R5cGU6YS5jb250ZW50VHlwZX0pO3JldHVybiBVUkwuY3JlYXRlT2JqZWN0VVJMKHIpfWFzeW5jIG1vdmVPYmplY3QoZSx0LGEpe2xldCByPXRoaXMub2JqZWN0cy5nZXQodCk7cmV0dXJuIHI/KHRoaXMub2JqZWN0cy5zZXQoYSx7Li4ucixsYXN0TW9kaWZpZWQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSksdGhpcy5vYmplY3RzLmRlbGV0ZSh0KSx7c3VjY2VzczohMH0pOntzdWNjZXNzOiExLGVycm9yOiJTb3VyY2Ugbm90IGZvdW5kIn19YXN5bmMgbW92ZVByZWZpeChlLHQsYSl7bGV0IHI9MCxuPUFycmF5LmZyb20odGhpcy5vYmplY3RzLmVudHJpZXMoKSkuZmlsdGVyKChbb10pPT5vLnN0YXJ0c1dpdGgodCkpO2ZvcihsZXRbbyxsXW9mIG4pe2xldCBwPWErby5zbGljZSh0Lmxlbmd0aCk7dGhpcy5vYmplY3RzLnNldChwLHsuLi5sLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSx0aGlzLm9iamVjdHMuZGVsZXRlKG8pLHIrK31yZXR1cm57c3VjY2VzczohMCxtb3ZlZENvdW50OnJ9fX0saHlhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXN0b3JhZ2UtYnJvd3NlcgogICAgICAuZGF0YVByb3ZpZGVyPSR7bmV3IGlsdH0KICAgICAgLmJ1Y2tldE5hbWU9JHsiZGVtby1idWNrZXQifQogICAgPjwvZGVlcy1zdG9yYWdlLWJyb3dzZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTtmdW5jdGlvbiBZUShzKXtpZihzPT1udWxsKXJldHVybiItIjtpZihzPT09MClyZXR1cm4iMCBCIjtsZXQgZT1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdLHQ9cyxhPTA7Zm9yKDt0Pj0xMDI0JiZhPGUubGVuZ3RoLTE7KXQvPTEwMjQsYSsrO3JldHVybmAke3QudG9GaXhlZChhPjA/MTowKX0gJHtlW2FdfWB9ZnVuY3Rpb24gTWVzKHMpe3JldHVybiBzPT1udWxsPyIiOnM+PTFlNj9gJHsocy8xZTYpLnRvRml4ZWQoMSl9TWA6cz49MWUzP2AkeyhzLzFlMykudG9GaXhlZCgxKX1LYDpzLnRvU3RyaW5nKCl9ZnVuY3Rpb24gWWEocyl7bGV0IGU9cy5yZXBsYWNlKC9cLyQvLCIiKS5zcGxpdCgiLyIpO3JldHVybiBlW2UubGVuZ3RoLTFdfHxzfWZ1bmN0aW9uIFpRKHMsZSl7cmV0dXJuIHMuZW5kc1dpdGgoIi8iKSYmZS5zdGFydHNXaXRoKHMpP3t2YWxpZDohMSxlcnJvcjoiQ2Fubm90IG1vdmUgYSBmb2xkZXIgaW50byBpdHNlbGYifTpKZChzKT09PWU/e3ZhbGlkOiExLGVycm9yOiJJdGVtIGlzIGFscmVhZHkgaW4gdGhpcyBsb2NhdGlvbiJ9Ont2YWxpZDohMH19ZnVuY3Rpb24gSmQocyl7bGV0IGU9cy5lbmRzV2l0aCgiLyIpP3Muc2xpY2UoMCwtMSk6cyx0PWUubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gdD49MD9lLnN1YnN0cmluZygwLHQrMSk6IiJ9ZnVuY3Rpb24gcjcocyl7cmV0dXJue2pzb246ImFwcGxpY2F0aW9uL2pzb24iLHR4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIixjc3M6InRleHQvY3NzIixqczoiYXBwbGljYXRpb24vamF2YXNjcmlwdCIsdHM6InRleHQvdHlwZXNjcmlwdCIsbWQ6InRleHQvbWFya2Rvd24iLHhtbDoiYXBwbGljYXRpb24veG1sIix5YW1sOiJ0ZXh0L3lhbWwiLHltbDoidGV4dC95YW1sIixjc3Y6InRleHQvY3N2In1bc118fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0ifWZ1bmN0aW9uIFhRKHMpe3JldHVybntqc29uOmB7CiAgCn1gLGh0bWw6YDwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPGhlYWQ+CiAgPHRpdGxlPjwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+CiAgCjwvYm9keT4KPC9odG1sPmAsbWQ6YCMgVGl0bGUKCmAsdHh0OiIifVtzXXx8IiJ9ZnVuY3Rpb24gengocyl7aWYoIXMpcmV0dXJuW107bGV0IGU9cy5zcGxpdCgiLyIpLmZpbHRlcihyPT5yKSx0PVtdLGE9IiI7Zm9yKGxldCByIG9mIGUpYSs9cisiLyIsdC5wdXNoKGEpO3JldHVybiB0fXZhciBRUT1nKCgpPT57aShZUSwiZm9ybWF0U2l6ZSIpO2koTWVzLCJmb3JtYXRDb3VudCIpO2koWWEsImdldEZpbGVOYW1lIik7aShaUSwidmFsaWRhdGVNb3ZlIik7aShKZCwiZ2V0UGFyZW50UHJlZml4Iik7aShyNywiZ2V0Q29udGVudFR5cGUiKTtpKFhRLCJnZXREZWZhdWx0Q29udGVudCIpO2koengsImdldFBhdGhTZWdtZW50cyIpfSk7dmFyIFRzLE50LHplcyxvbHQ9ZygoKT0+e3BlKCk7ZnIoKTtodCgpO1FRKCk7VHM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LE50PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx6ZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2UtY29sdW1ucyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W10seWUscT1bXSxBPVtdLHNlLG9lPVtdLGFlPVtdLFRlLFJlPVtdLEJlPVtdLEdlLERlPVtdLF9lPVtdLENlLHZlPVtdLGJlPVtdLEVlLGplPVtdLFdlPVtdLHN0LE1lPVtdLGdlPVtdLEllLGNlPVtdLGRlPVtdLExlLEtlPVtdLFllPVtdLG90LFV0PVtdLFp0PVtdLGphLGV0PVtdLGJ0PVtdLHlhLGVzPVtdLHJzPVtdLHBzLG5zPVtdLHRpPVtdLGFpLHplPVtdLHhlPVtdLE5lLHh0PVtdLE1hPVtdO3ZhciBOcj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VDb2x1bW5zIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGZlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W0woe3R5cGU6TnVtYmVyfSldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLHllPVtZKCldLHNlPVtZKCldLFRlPVtZKCldLEdlPVtZKCldLENlPVtZKCldLEVlPVtZKCldLHN0PVtZKCldLEllPVtZKCldLExlPVtZKCldLG90PVtZKCldLGphPVtZKCldLHlhPVtZKCldLHBzPVtZKCldLGFpPVtZKCldLE5lPVtZKCldLFRzKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZGF0YVByb3ZpZGVyImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuZGF0YVByb3ZpZGVyPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxvLGwpLFRzKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImJ1Y2tldE5hbWUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuYnVja2V0TmFtZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sZCx1KSxUcyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJjdXJyZW50UHJlZml4ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuY3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmN1cnJlbnRQcmVmaXg9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGIsdiksVHModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZyZXNoS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVmcmVzaEtleSJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnJlZnJlc2hLZXksImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZWZyZXNoS2V5PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxtLGYpLFRzKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNvbHVtbnMiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY29sdW1ucz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sTSx6KSxUcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJsb2FkaW5nImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubG9hZGluZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmxvYWRpbmc9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LEMsXyksVHModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q3JlYXRlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ic2hvd0NyZWF0ZURpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dDcmVhdGVEaWFsb2csImdldCIpLHNldDppKChyZSxTZSk9PntyZS5zaG93Q3JlYXRlRGlhbG9nPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSwkLEUpLFRzKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNyZWF0ZURpYWxvZ1R5cGUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5jcmVhdGVEaWFsb2dUeXBlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuY3JlYXRlRGlhbG9nVHlwZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sayxTKSxUcyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1ByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImNyZWF0ZURpYWxvZ1ByZWZpeCJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLmNyZWF0ZURpYWxvZ1ByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmNyZWF0ZURpYWxvZ1ByZWZpeD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sUCxSKSxUcyh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ05hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJjcmVhdGVEaWFsb2dOYW1lImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuY3JlYXRlRGlhbG9nTmFtZSwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmNyZWF0ZURpYWxvZ05hbWU9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LFYsVyksVHModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJDb2x1bW5JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImRyYWdPdmVyQ29sdW1uSW5kZXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kcmFnT3ZlckNvbHVtbkluZGV4LCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuZHJhZ092ZXJDb2x1bW5JbmRleD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sQixVKSxUcyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckZvbGRlclByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+ImRyYWdPdmVyRm9sZGVyUHJlZml4ImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUuZHJhZ092ZXJGb2xkZXJQcmVmaXgsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5kcmFnT3ZlckZvbGRlclByZWZpeD1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sRixqKSxUcyh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cGxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJ1cGxvYWRpbmciaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS51cGxvYWRpbmcsImdldCIpLHNldDppKChyZSxTZSk9PntyZS51cGxvYWRpbmc9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGxlLFEpLFRzKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwbG9hZFByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4idXBsb2FkUHJvZ3Jlc3MiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS51cGxvYWRQcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnVwbG9hZFByb2dyZXNzPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx0ZSxlZSksVHModGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJzaG93TW92ZURpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dNb3ZlRGlhbG9nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUuc2hvd01vdmVEaWFsb2c9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LFgsWiksVHModGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVTb3VyY2UiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlU291cmNlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVNvdXJjZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0scSxBKSxUcyh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlRGVzdGluYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlRGVzdGluYXRpb24iaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlRGVzdGluYXRpb24sImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlRGVzdGluYXRpb249U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG9lLGFlKSxUcyh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVJblByb2dyZXNzImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZUluUHJvZ3Jlc3MsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5tb3ZlSW5Qcm9ncmVzcz1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sUmUsQmUpLFRzKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVFcnJvciJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVFcnJvciwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVFcnJvcj1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sRGUsX2UpLFRzKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlUGlja2VyRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ic2hvd01vdmVQaWNrZXJEaWFsb2ciaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5zaG93TW92ZVBpY2tlckRpYWxvZywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnNob3dNb3ZlUGlja2VyRGlhbG9nPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx2ZSxiZSksVHModGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+Im1vdmVQaWNrZXJTb3VyY2UiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlUGlja2VyU291cmNlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlclNvdXJjZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0samUsV2UpLFRzKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJDdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxNZSxnZSksVHModGhpcyxudWxsLEllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclByZWZpeGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ibW92ZVBpY2tlclByZWZpeGVzImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUubW92ZVBpY2tlclByZWZpeGVzLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlclByZWZpeGVzPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxjZSxkZSksVHModGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJtb3ZlUGlja2VyTG9hZGluZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLm1vdmVQaWNrZXJMb2FkaW5nLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUubW92ZVBpY2tlckxvYWRpbmc9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LEtlLFllKSxUcyh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UmVuYW1lRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4ic2hvd1JlbmFtZURpYWxvZyJpbiByZSwiaGFzIiksZ2V0OmkocmU9PnJlLnNob3dSZW5hbWVEaWFsb2csImdldCIpLHNldDppKChyZSxTZSk9PntyZS5zaG93UmVuYW1lRGlhbG9nPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxVdCxadCksVHModGhpcyxudWxsLGphLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4icmVuYW1lU291cmNlImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVuYW1lU291cmNlLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUucmVuYW1lU291cmNlPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxldCxidCksVHModGhpcyxudWxsLHlhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InJlbmFtZU5hbWUiaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5yZW5hbWVOYW1lLCJnZXQiKSxzZXQ6aSgocmUsU2UpPT57cmUucmVuYW1lTmFtZT1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sZXMscnMpLFRzKHRoaXMsbnVsbCxwcyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUluUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocmU9PiJyZW5hbWVJblByb2dyZXNzImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVuYW1lSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLnJlbmFtZUluUHJvZ3Jlc3M9U2V9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG5zLHRpKSxUcyh0aGlzLG51bGwsYWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShyZT0+InJlbmFtZUVycm9yImluIHJlLCJoYXMiKSxnZXQ6aShyZT0+cmUucmVuYW1lRXJyb3IsImdldCIpLHNldDppKChyZSxTZSk9PntyZS5yZW5hbWVFcnJvcj1TZX0sInNldCIpfSxtZXRhZGF0YTpmZX0semUseGUpLFRzKHRoaXMsbnVsbCxOZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHJlPT4iZHJhZ2dlZEl0ZW0iaW4gcmUsImhhcyIpLGdldDppKHJlPT5yZS5kcmFnZ2VkSXRlbSwiZ2V0Iiksc2V0OmkoKHJlLFNlKT0+e3JlLmRyYWdnZWRJdGVtPVNlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx4dCxNYSksVHMobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZmV9LG51bGwsdCksTnI9YT1lLnZhbHVlLGZlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZlfSl9I2U9TnQodGhpcyxvLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKGZlKXt0aGlzLiNlPWZlfSN0PShOdCh0aGlzLGwpLE50KHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoZmUpe3RoaXMuI3Q9ZmV9I2E9KE50KHRoaXMsdSksTnQodGhpcyxiLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY3VycmVudFByZWZpeChmZSl7dGhpcy4jYT1mZX0jcz0oTnQodGhpcyx2KSxOdCh0aGlzLG0sMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHJlZnJlc2hLZXkoZmUpe3RoaXMuI3M9ZmV9I2k9KE50KHRoaXMsZiksTnQodGhpcyxNLFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29sdW1ucyhmZSl7dGhpcy4jaT1mZX0jcj0oTnQodGhpcyx6KSxOdCh0aGlzLEMsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNyfXNldCBsb2FkaW5nKGZlKXt0aGlzLiNyPWZlfSNvPShOdCh0aGlzLF8pLE50KHRoaXMsJCwhMSkpO2dldCBzaG93Q3JlYXRlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dDcmVhdGVEaWFsb2coZmUpe3RoaXMuI289ZmV9I249KE50KHRoaXMsRSksTnQodGhpcyxrLCJmb2xkZXIiKSk7Z2V0IGNyZWF0ZURpYWxvZ1R5cGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3JlYXRlRGlhbG9nVHlwZShmZSl7dGhpcy4jbj1mZX0jbD0oTnQodGhpcyxTKSxOdCh0aGlzLFAsIiIpKTtnZXQgY3JlYXRlRGlhbG9nUHJlZml4KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGNyZWF0ZURpYWxvZ1ByZWZpeChmZSl7dGhpcy4jbD1mZX0jYz0oTnQodGhpcyxSKSxOdCh0aGlzLFYsIiIpKTtnZXQgY3JlYXRlRGlhbG9nTmFtZSgpe3JldHVybiB0aGlzLiNjfXNldCBjcmVhdGVEaWFsb2dOYW1lKGZlKXt0aGlzLiNjPWZlfSNkPShOdCh0aGlzLFcpLE50KHRoaXMsQiwtMSkpO2dldCBkcmFnT3ZlckNvbHVtbkluZGV4KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGRyYWdPdmVyQ29sdW1uSW5kZXgoZmUpe3RoaXMuI2Q9ZmV9I3U9KE50KHRoaXMsVSksTnQodGhpcyxGLG51bGwpKTtnZXQgZHJhZ092ZXJGb2xkZXJQcmVmaXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZHJhZ092ZXJGb2xkZXJQcmVmaXgoZmUpe3RoaXMuI3U9ZmV9I3A9KE50KHRoaXMsaiksTnQodGhpcyxsZSwhMSkpO2dldCB1cGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgdXBsb2FkaW5nKGZlKXt0aGlzLiNwPWZlfSNoPShOdCh0aGlzLFEpLE50KHRoaXMsdGUsbnVsbCkpO2dldCB1cGxvYWRQcm9ncmVzcygpe3JldHVybiB0aGlzLiNofXNldCB1cGxvYWRQcm9ncmVzcyhmZSl7dGhpcy4jaD1mZX0jZj0oTnQodGhpcyxlZSksTnQodGhpcyxYLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNob3dNb3ZlRGlhbG9nKGZlKXt0aGlzLiNmPWZlfSNtPShOdCh0aGlzLFopLE50KHRoaXMscSxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jbX1zZXQgbW92ZVNvdXJjZShmZSl7dGhpcy4jbT1mZX0jZz0oTnQodGhpcyxBKSxOdCh0aGlzLG9lLCIiKSk7Z2V0IG1vdmVEZXN0aW5hdGlvbigpe3JldHVybiB0aGlzLiNnfXNldCBtb3ZlRGVzdGluYXRpb24oZmUpe3RoaXMuI2c9ZmV9I2I9KE50KHRoaXMsYWUpLE50KHRoaXMsUmUsITEpKTtnZXQgbW92ZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jYn1zZXQgbW92ZUluUHJvZ3Jlc3MoZmUpe3RoaXMuI2I9ZmV9I3Y9KE50KHRoaXMsQmUpLE50KHRoaXMsRGUsbnVsbCkpO2dldCBtb3ZlRXJyb3IoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbW92ZUVycm9yKGZlKXt0aGlzLiN2PWZlfSN4PShOdCh0aGlzLF9lKSxOdCh0aGlzLHZlLCExKSk7Z2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKCl7cmV0dXJuIHRoaXMuI3h9c2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKGZlKXt0aGlzLiN4PWZlfSN5PShOdCh0aGlzLGJlKSxOdCh0aGlzLGplLG51bGwpKTtnZXQgbW92ZVBpY2tlclNvdXJjZSgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyU291cmNlKGZlKXt0aGlzLiN5PWZlfSN3PShOdCh0aGlzLFdlKSxOdCh0aGlzLE1lLCIiKSk7Z2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI3d9c2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KGZlKXt0aGlzLiN3PWZlfSNrPShOdCh0aGlzLGdlKSxOdCh0aGlzLGNlLFtdKSk7Z2V0IG1vdmVQaWNrZXJQcmVmaXhlcygpe3JldHVybiB0aGlzLiNrfXNldCBtb3ZlUGlja2VyUHJlZml4ZXMoZmUpe3RoaXMuI2s9ZmV9I1M9KE50KHRoaXMsZGUpLE50KHRoaXMsS2UsITEpKTtnZXQgbW92ZVBpY2tlckxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jU31zZXQgbW92ZVBpY2tlckxvYWRpbmcoZmUpe3RoaXMuI1M9ZmV9I189KE50KHRoaXMsWWUpLE50KHRoaXMsVXQsITEpKTtnZXQgc2hvd1JlbmFtZURpYWxvZygpe3JldHVybiB0aGlzLiNffXNldCBzaG93UmVuYW1lRGlhbG9nKGZlKXt0aGlzLiNfPWZlfSNNPShOdCh0aGlzLFp0KSxOdCh0aGlzLGV0LG51bGwpKTtnZXQgcmVuYW1lU291cmNlKCl7cmV0dXJuIHRoaXMuI019c2V0IHJlbmFtZVNvdXJjZShmZSl7dGhpcy4jTT1mZX0jej0oTnQodGhpcyxidCksTnQodGhpcyxlcywiIikpO2dldCByZW5hbWVOYW1lKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHJlbmFtZU5hbWUoZmUpe3RoaXMuI3o9ZmV9I0M9KE50KHRoaXMscnMpLE50KHRoaXMsbnMsITEpKTtnZXQgcmVuYW1lSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNDfXNldCByZW5hbWVJblByb2dyZXNzKGZlKXt0aGlzLiNDPWZlfSNUPShOdCh0aGlzLHRpKSxOdCh0aGlzLHplLG51bGwpKTtnZXQgcmVuYW1lRXJyb3IoKXtyZXR1cm4gdGhpcy4jVH1zZXQgcmVuYW1lRXJyb3IoZmUpe3RoaXMuI1Q9ZmV9IyQ9KE50KHRoaXMseGUpLE50KHRoaXMseHQsbnVsbCkpO2dldCBkcmFnZ2VkSXRlbSgpe3JldHVybiB0aGlzLiMkfXNldCBkcmFnZ2VkSXRlbShmZSl7dGhpcy4jJD1mZX1yZXNpemluZz0oTnQodGhpcyxNYSksbnVsbCk7REVGQVVMVF9DT0xVTU5fV0lEVEg9MjUwO01JTl9DT0xVTU5fV0lEVEg9MTUwO01BWF9DT0xVTU5fV0lEVEg9NTAwO2RyYWdDb3VudGVycz1uZXcgTWFwO2ZvbGRlckhvdmVyVGltZXI9bnVsbDtmaWxlSW5wdXRFbGVtZW50PW51bGw7Zm9sZGVySW5wdXRFbGVtZW50PW51bGw7c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLHFlLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jb2x1bW5zLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiBtYXgtY29udGVudDsKICAgICAgfQoKICAgICAgLmNvbHVtbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUgewogICAgICAgIHdpZHRoOiA1cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAycHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZTpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLmFjdGl2ZTo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzQwNDA0MCIpfTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGxlZnQ6IDFweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi13cmFwcGVyOmxhc3QtY2hpbGQgLnJlc2l6ZS1oYW5kbGUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNjY2Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW1zIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZDRlZDgiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZm9sZGVyIHsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSAubmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSAuY2hldnJvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAuY29sdW1uLmRyYWctb3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpOwogICAgICAgIG91dGxpbmU6IDJweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNCk7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5mb2xkZXIuZHJhZy10YXJnZXQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpICFpbXBvcnRhbnQ7CiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICB9CgogICAgICAudXBsb2FkLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLnVwbG9hZC1vdmVybGF5IC51cGxvYWQtdGV4dCB7CiAgICAgICAgY29sb3I6ICNlMGUwZTA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudXBsb2FkLW92ZXJsYXkgLnVwbG9hZC1wcm9ncmVzcyB7CiAgICAgICAgY29sb3I6ICM4ODg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICB9CgogICAgICAuZHJhZy1oaW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC45KTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5kaWFsb2cgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzFlMWUxZSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWluLXdpZHRoOiA0MDBweDsKICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuNSk7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1sb2NhdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZGlhbG9nLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTQxNDE0Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0biB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNhbmNlbCB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNhbmNlbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjNDA0MDQwIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzUwNTA1MCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLyogTW92ZSBkaWFsb2cgc3R5bGVzICovCiAgICAgIC5tb3ZlLXN1bW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubW92ZS1pdGVtOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgfQoKICAgICAgLm1vdmUtcGF0aCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2UwZTBlMCIpfTsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC8qIE1vdmUgcGlja2VyIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtcGlja2VyLWRpYWxvZyB7CiAgICAgICAgbWluLXdpZHRoOiA0NTBweDsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgfQoKICAgICAgLnBpY2tlci1icmVhZGNydW1iIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5waWNrZXItY3J1bWIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItY3J1bWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAucGlja2VyLWxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDI4MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLmljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIC5uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5kcmFnZ2luZyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZHJvcC10YXJnZXQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSAhaW1wb3J0YW50OwogICAgICAgIG91dGxpbmU6IDFweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5kcm9wLWludmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSkgIWltcG9ydGFudDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy5sb2FkSW5pdGlhbENvbHVtbigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSx0aGlzLmRyYWdDb3VudGVycy5jbGVhcigpLHRoaXMuZmlsZUlucHV0RWxlbWVudCYmKHRoaXMuZmlsZUlucHV0RWxlbWVudC5yZW1vdmUoKSx0aGlzLmZpbGVJbnB1dEVsZW1lbnQ9bnVsbCksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQmJih0aGlzLmZvbGRlcklucHV0RWxlbWVudC5yZW1vdmUoKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudD1udWxsKX11cGRhdGVkKGZlKXtmZS5oYXMoImJ1Y2tldE5hbWUiKXx8ZmUuaGFzKCJjdXJyZW50UHJlZml4Iik/dGhpcy5sb2FkSW5pdGlhbENvbHVtbigpOmZlLmhhcygicmVmcmVzaEtleSIpJiZ0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCl9YXN5bmMgbG9hZEluaXRpYWxDb2x1bW4oKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgZmU9engodGhpcy5jdXJyZW50UHJlZml4KSxyZT1bIiIsLi4uZmVdLFNlPWF3YWl0IFByb21pc2UuYWxsKHJlLm1hcChPZT0+dGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLE9lLCIvIikpKTt0aGlzLmNvbHVtbnM9U2UubWFwKChPZSxKZSk9PntsZXQgemE9cmVbSmVdLGRhPUplPGZlLmxlbmd0aD9mZVtKZV06bnVsbDtyZXR1cm57cHJlZml4OnphLG9iamVjdHM6T2Uub2JqZWN0cyxwcmVmaXhlczpPZS5wcmVmaXhlcyxzZWxlY3RlZEl0ZW06ZGEsd2lkdGg6dGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSH19KSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuc2Nyb2xsVG9FbmQoKSl9Y2F0Y2goZmUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgb2JqZWN0czoiLGZlKSx0aGlzLmNvbHVtbnM9W119dGhpcy5sb2FkaW5nPSExfX1hc3luYyByZWZyZXNoQWxsQ29sdW1ucygpe2lmKCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGZlPWF3YWl0IFByb21pc2UuYWxsKHRoaXMuY29sdW1ucy5tYXAoYXN5bmMgcmU9Pnt0cnl7bGV0IFNlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxyZS5wcmVmaXgsIi8iKTtyZXR1cm57Li4ucmUsb2JqZWN0czpTZS5vYmplY3RzLHByZWZpeGVzOlNlLnByZWZpeGVzfX1jYXRjaHtyZXR1cm4gcmV9fSkpO3RoaXMuY29sdW1ucz1mZX1hc3luYyBzZWxlY3RGb2xkZXIoZmUscmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoU2UsT2UpPT5PZT09PWZlP3suLi5TZSxzZWxlY3RlZEl0ZW06cmV9OlNlKSx0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAsZmUrMSk7dHJ5e2xldCBTZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUscmUsIi8iKTt0aGlzLmNvbHVtbnM9Wy4uLnRoaXMuY29sdW1ucyx7cHJlZml4OnJlLG9iamVjdHM6U2Uub2JqZWN0cyxwcmVmaXhlczpTZS5wcmVmaXhlcyxzZWxlY3RlZEl0ZW06bnVsbCx3aWR0aDp0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIfV0sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLnNjcm9sbFRvRW5kKCkpfWNhdGNoKFNlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIGZvbGRlcjoiLFNlKX19fXNjcm9sbFRvRW5kKCl7dGhpcy5zY3JvbGxMZWZ0PXRoaXMuc2Nyb2xsV2lkdGgtdGhpcy5jbGllbnRXaWR0aH1zdGFydFJlc2l6ZShmZSxyZSl7ZmUucHJldmVudERlZmF1bHQoKSx0aGlzLnJlc2l6aW5nPXtjb2x1bW5JbmRleDpyZSxzdGFydFg6ZmUuY2xpZW50WCxzdGFydFdpZHRoOnRoaXMuY29sdW1uc1tyZV0ud2lkdGh9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVSZXNpemUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuc3RvcFJlc2l6ZSksZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9ImNvbC1yZXNpemUiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0ibm9uZSJ9aGFuZGxlUmVzaXplPWkoZmU9PntpZighdGhpcy5yZXNpemluZylyZXR1cm47bGV0IHJlPWZlLmNsaWVudFgtdGhpcy5yZXNpemluZy5zdGFydFgsU2U9TWF0aC5taW4odGhpcy5NQVhfQ09MVU1OX1dJRFRILE1hdGgubWF4KHRoaXMuTUlOX0NPTFVNTl9XSURUSCx0aGlzLnJlc2l6aW5nLnN0YXJ0V2lkdGgrcmUpKTt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoT2UsSmUpPT5KZT09PXRoaXMucmVzaXppbmcuY29sdW1uSW5kZXg/ey4uLk9lLHdpZHRoOlNlfTpPZSl9LCJoYW5kbGVSZXNpemUiKTtzdG9wUmVzaXplPWkoKCk9Pnt0aGlzLnJlc2l6aW5nPW51bGwsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5zdG9wUmVzaXplKSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9IiJ9LCJzdG9wUmVzaXplIik7c2VsZWN0RmlsZShmZSxyZSl7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKFNlLE9lKT0+T2U9PT1mZT97Li4uU2Usc2VsZWN0ZWRJdGVtOnJlfTpTZSksdGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5zbGljZSgwLGZlKzEpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImtleS1zZWxlY3RlZCIse2RldGFpbDp7a2V5OnJlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWdldEZpbGVJY29uKGZlKXtsZXQgcmU9ZmUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiI7cmV0dXJue2pzb246Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiLHR4dDoiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIscG5nOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIsanBnOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIsanBlZzoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLGdpZjoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLHBkZjoiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiJ9W3JlXXx8Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoifWhhbmRsZUZvbGRlckNvbnRleHRNZW51KGZlLHJlLFNlKXt0aGlzLmRhdGFQcm92aWRlciYmKGZlLnByZXZlbnREZWZhdWx0KCksJGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZmUsW3tuYW1lOiJPcGVuIixpY29uTmFtZToibHVjaWRlOmZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEZvbGRlcihyZSxTZSl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoU2UpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coU2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKFNlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTmV3IEZvbGRlciBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLFNlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsU2UpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGaWxlcy4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKFNlLCJmaWxlcyIpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGb2xkZXIuLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyVXAiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZvbGRlciIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmb2xkZXIgIiR7WWEoU2UpfSIgYW5kIGFsbCBpdHMgY29udGVudHM/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsU2UpJiYodGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5zbGljZSgwLHJlKzEpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChKZSx6YSk9PnphPT09cmU/ey4uLkplLHNlbGVjdGVkSXRlbTpudWxsfTpKZSksYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgodGhpcy5jb2x1bW5zW3JlXS5wcmVmaXgpKX0sImFjdGlvbiIpfV0pKX1oYW5kbGVGaWxlQ29udGV4dE1lbnUoZmUscmUsU2Upe3RoaXMuZGF0YVByb3ZpZGVyJiYoZmUucHJldmVudERlZmF1bHQoKSwkYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhmZSxbe25hbWU6IlByZXZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RGaWxlKHJlLFNlKX0sImFjdGlvbiIpfSx7bmFtZToiRG93bmxvYWQiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgT2U9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZ2V0T2JqZWN0VXJsKHRoaXMuYnVja2V0TmFtZSxTZSksSmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO0plLmhyZWY9T2UsSmUuZG93bmxvYWQ9WWEoU2UpLEplLmNsaWNrKCl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoU2UpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coU2UsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKFNlLCExKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmaWxlICIke1lhKFNlKX0iP2ApJiZhd2FpdCB0aGlzLmRhdGFQcm92aWRlci5kZWxldGVPYmplY3QodGhpcy5idWNrZXROYW1lLFNlKSYmYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgodGhpcy5jb2x1bW5zW3JlXS5wcmVmaXgpfSwiYWN0aW9uIil9XSkpfWhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudShmZSxyZSl7aWYoZmUudGFyZ2V0IT09ZmUuY3VycmVudFRhcmdldClyZXR1cm47ZmUucHJldmVudERlZmF1bHQoKTtsZXQgU2U9dGhpcy5jb2x1bW5zW3JlXS5wcmVmaXg7JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZmUsW3tuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIixTZSksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsU2UpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGaWxlcy4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKFNlLCJmaWxlcyIpLCJhY3Rpb24iKX0se25hbWU6IlVwbG9hZCBGb2xkZXIuLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyVXAiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoU2UsImZvbGRlciIpLCJhY3Rpb24iKX1dKX1vcGVuQ3JlYXRlRGlhbG9nKGZlLHJlKXt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9ZmUsdGhpcy5jcmVhdGVEaWFsb2dQcmVmaXg9cmUsdGhpcy5jcmVhdGVEaWFsb2dOYW1lPSIiLHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMH1lbnN1cmVGaWxlSW5wdXRzKCl7dGhpcy5maWxlSW5wdXRFbGVtZW50fHwodGhpcy5maWxlSW5wdXRFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy5maWxlSW5wdXRFbGVtZW50LnR5cGU9ImZpbGUiLHRoaXMuZmlsZUlucHV0RWxlbWVudC5tdWx0aXBsZT0hMCx0aGlzLmZpbGVJbnB1dEVsZW1lbnQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMuZmlsZUlucHV0RWxlbWVudCkpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50fHwodGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudC50eXBlPSJmaWxlIix0aGlzLmZvbGRlcklucHV0RWxlbWVudC5tdWx0aXBsZT0hMCx0aGlzLmZvbGRlcklucHV0RWxlbWVudC53ZWJraXRkaXJlY3Rvcnk9ITAsdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMuZm9sZGVySW5wdXRFbGVtZW50KSl9dHJpZ2dlckZpbGVVcGxvYWQoZmUscmUpe3RoaXMuZW5zdXJlRmlsZUlucHV0cygpO2xldCBTZT1yZT09PSJmb2xkZXIiP3RoaXMuZm9sZGVySW5wdXRFbGVtZW50OnRoaXMuZmlsZUlucHV0RWxlbWVudDtTZS52YWx1ZT0iIjtsZXQgT2U9aShhc3luYygpPT57U2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixPZSksU2UuZmlsZXMmJlNlLmZpbGVzLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwbG9hZEZpbGVzKEFycmF5LmZyb20oU2UuZmlsZXMpLGZlKX0sImhhbmRsZXIiKTtTZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLE9lKSxTZS5jbGljaygpfWFzeW5jIHVwbG9hZEZpbGVzKGZlLHJlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy51cGxvYWRpbmc9ITAsdGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDowLHRvdGFsOmZlLmxlbmd0aH07Zm9yKGxldCBTZT0wO1NlPGZlLmxlbmd0aDtTZSsrKXtsZXQgT2U9ZmVbU2VdO3RoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6U2UrMSx0b3RhbDpmZS5sZW5ndGh9O3RyeXtsZXQgSmU9YXdhaXQgdGhpcy5yZWFkRmlsZUFzQmFzZTY0KE9lKSx6YT1PZS53ZWJraXRSZWxhdGl2ZVBhdGh8fE9lLm5hbWUsZGE9cmUremEsd3M9T2UudHlwZXx8cjcoT2UubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIik7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSxkYSxKZSx3cyl9Y2F0Y2goSmUpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byB1cGxvYWQgJHtPZS5uYW1lfTpgLEplKX19dGhpcy51cGxvYWRpbmc9ITEsdGhpcy51cGxvYWRQcm9ncmVzcz1udWxsLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHJlKX19YXN5bmMgdXBsb2FkRmlsZXNXaXRoUGF0aHMoZmUscmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLnVwbG9hZGluZz0hMCx0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OjAsdG90YWw6ZmUubGVuZ3RofTtmb3IobGV0IFNlPTA7U2U8ZmUubGVuZ3RoO1NlKyspe2xldHtmaWxlOk9lLHJlbGF0aXZlUGF0aDpKZX09ZmVbU2VdO3RoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6U2UrMSx0b3RhbDpmZS5sZW5ndGh9O3RyeXtsZXQgemE9YXdhaXQgdGhpcy5yZWFkRmlsZUFzQmFzZTY0KE9lKSxkYT1yZStKZSx3cz1PZS50eXBlfHxyNyhPZS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiKTthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLGRhLHphLHdzKX1jYXRjaCh6YSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHVwbG9hZCAke0plfTpgLHphKX19dGhpcy51cGxvYWRpbmc9ITEsdGhpcy51cGxvYWRQcm9ncmVzcz1udWxsLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHJlKX19cmVhZEZpbGVBc0Jhc2U2NChmZSl7cmV0dXJuIG5ldyBQcm9taXNlKChyZSxTZSk9PntsZXQgT2U9bmV3IEZpbGVSZWFkZXI7T2Uub25sb2FkPSgpPT57bGV0IEplPU9lLnJlc3VsdDtyZShKZS5zcGxpdCgiLCIpWzFdfHwiIil9LE9lLm9uZXJyb3I9KCk9PlNlKE9lLmVycm9yKSxPZS5yZWFkQXNEYXRhVVJMKGZlKX0pfWFzeW5jIHJlZnJlc2hDb2x1bW5CeVByZWZpeChmZSl7aWYoIXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgcmU9dGhpcy5jb2x1bW5zLmZpbmRJbmRleChTZT0+U2UucHJlZml4PT09ZmUpO2lmKHJlPT09LTEpe2F3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKTtyZXR1cm59dHJ5e2xldCBTZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsZmUsIi8iKTt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoT2UsSmUpPT5KZT09PXJlP3suLi5PZSxvYmplY3RzOlNlLm9iamVjdHMscHJlZml4ZXM6U2UucHJlZml4ZXN9Ok9lKX1jYXRjaHthd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCl9fWhhbmRsZUNvbHVtbkRyYWdFbnRlcihmZSxyZSl7ZmUucHJldmVudERlZmF1bHQoKSxmZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgU2U9KHRoaXMuZHJhZ0NvdW50ZXJzLmdldChyZSl8fDApKzE7dGhpcy5kcmFnQ291bnRlcnMuc2V0KHJlLFNlKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9cmV9aGFuZGxlQ29sdW1uRHJhZ092ZXIoZmUpe2ZlLnByZXZlbnREZWZhdWx0KCksZmUuc3RvcFByb3BhZ2F0aW9uKCksZmUuZGF0YVRyYW5zZmVyJiYoZmUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9dGhpcy5kcmFnZ2VkSXRlbT8ibW92ZSI6ImNvcHkiKX1oYW5kbGVDb2x1bW5EcmFnTGVhdmUoZmUscmUpe2ZlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTZT0odGhpcy5kcmFnQ291bnRlcnMuZ2V0KHJlKXx8MSktMTt0aGlzLmRyYWdDb3VudGVycy5zZXQocmUsU2UpLFNlPD0wJiYodGhpcy5kcmFnQ291bnRlcnMuZGVsZXRlKHJlKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9PT1yZSYmKHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD0tMSksdGhpcy5jbGVhckZvbGRlckhvdmVyKCkpfWFzeW5jIGhhbmRsZUNvbHVtbkRyb3AoZmUscmUpe2ZlLnByZXZlbnREZWZhdWx0KCksZmUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFNlPXRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/P3RoaXMuY29sdW1uc1tyZV0ucHJlZml4O2lmKHRoaXMuZHJhZ2dlZEl0ZW0pe3RoaXMuaW5pdGlhdGVNb3ZlKHRoaXMuZHJhZ2dlZEl0ZW0ua2V5LHRoaXMuZHJhZ2dlZEl0ZW0uaXNGb2xkZXIsU2UpLHRoaXMuZHJhZ2dlZEl0ZW09bnVsbCx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSx0aGlzLmRyYWdDb3VudGVycy5jbGVhcigpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD0tMTtyZXR1cm59dGhpcy5kcmFnQ291bnRlcnMuY2xlYXIoKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9LTE7bGV0IE9lPWZlLmRhdGFUcmFuc2Zlcj8uaXRlbXM7aWYoIU9lfHxPZS5sZW5ndGg9PT0wKXJldHVybjt0aGlzLmNsZWFyRm9sZGVySG92ZXIoKTtsZXQgSmU9W10semE9aShhc3luYyhkYSx3cyk9PntpZihkYS5pc0ZpbGUpe2xldCBraT1kYSxKaT1hd2FpdCBuZXcgUHJvbWlzZSgoUnIsU2kpPT57a2kuZmlsZShScixTaSl9KTtKZS5wdXNoKHtmaWxlOkppLHJlbGF0aXZlUGF0aDp3cytKaS5uYW1lfSl9ZWxzZSBpZihkYS5pc0RpcmVjdG9yeSl7bGV0IEppPWRhLmNyZWF0ZVJlYWRlcigpLFJyPWF3YWl0IG5ldyBQcm9taXNlKChTaSx2bik9PntKaS5yZWFkRW50cmllcyhTaSx2bil9KTtmb3IobGV0IFNpIG9mIFJyKWF3YWl0IHphKFNpLHdzK2RhLm5hbWUrIi8iKX19LCJwcm9jZXNzRW50cnkiKTtmb3IobGV0IGRhPTA7ZGE8T2UubGVuZ3RoO2RhKyspe2xldCB3cz1PZVtkYV07aWYod3Mua2luZD09PSJmaWxlIil7bGV0IGtpPXdzLndlYmtpdEdldEFzRW50cnkoKTtraSYmYXdhaXQgemEoa2ksIiIpfX1KZS5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGxvYWRGaWxlc1dpdGhQYXRocyhKZSxTZSl9aGFuZGxlRm9sZGVyRHJhZ0VudGVyKGZlLHJlKXtmZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSx0aGlzLmZvbGRlckhvdmVyVGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9cmV9LDUwMCl9aGFuZGxlRm9sZGVyRHJhZ0xlYXZlKGZlLHJlKXtmZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgU2U9ZmUuY3VycmVudFRhcmdldCxPZT1mZS5yZWxhdGVkVGFyZ2V0O09lJiZTZS5jb250YWlucyhPZSl8fCh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PT09cmUmJih0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PW51bGwpLHRoaXMuZm9sZGVySG92ZXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLmZvbGRlckhvdmVyVGltZXIpLHRoaXMuZm9sZGVySG92ZXJUaW1lcj1udWxsKSl9aGFuZGxlRm9sZGVyRHJhZ092ZXIoZmUpe2ZlLnByZXZlbnREZWZhdWx0KCksZmUuc3RvcFByb3BhZ2F0aW9uKCksZmUuZGF0YVRyYW5zZmVyJiYoZmUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9dGhpcy5kcmFnZ2VkSXRlbT8ibW92ZSI6ImNvcHkiKX1jbGVhckZvbGRlckhvdmVyKCl7dGhpcy5mb2xkZXJIb3ZlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuZm9sZGVySG92ZXJUaW1lciksdGhpcy5mb2xkZXJIb3ZlclRpbWVyPW51bGwpLHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9bnVsbH1oYW5kbGVJdGVtRHJhZ1N0YXJ0KGZlLHJlLFNlKXt0aGlzLmRyYWdnZWRJdGVtPXtrZXk6cmUsaXNGb2xkZXI6U2V9LGZlLmRhdGFUcmFuc2Zlcj8uc2V0RGF0YSgidGV4dC9wbGFpbiIscmUpLGZlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJjb3B5TW92ZSIsZmUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIil9aGFuZGxlSXRlbURyYWdFbmQoZmUpe3RoaXMuZHJhZ2dlZEl0ZW09bnVsbCxmZS50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX1hc3luYyBvcGVuTW92ZVBpY2tlckRpYWxvZyhmZSxyZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlPXtrZXk6ZmUsaXNGb2xkZXI6cmV9LHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMCxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoIiIpfWFzeW5jIG5hdmlnYXRlTW92ZVBpY2tlcihmZSl7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD1mZSxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoZmUpfWFzeW5jIGxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoZmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSEwO3RyeXtsZXQgcmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLGZlLCIvIik7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9cmUucHJlZml4ZXN9Y2F0Y2h7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMX19c2VsZWN0TW92ZURlc3RpbmF0aW9uKGZlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2UmJih0aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpLHRoaXMuaW5pdGlhdGVNb3ZlKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXksdGhpcy5tb3ZlUGlja2VyU291cmNlLmlzRm9sZGVyLGZlKSl9Y2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl7dGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMSx0aGlzLm1vdmVQaWNrZXJTb3VyY2U9bnVsbCx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfWluaXRpYXRlTW92ZShmZSxyZSxTZSl7bGV0IE9lPVpRKGZlLFNlKTtpZighT2UudmFsaWQpe3RoaXMubW92ZVNvdXJjZT17a2V5OmZlLGlzRm9sZGVyOnJlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1TZSx0aGlzLm1vdmVFcnJvcj1PZS5lcnJvcix0aGlzLnNob3dNb3ZlRGlhbG9nPSEwO3JldHVybn10aGlzLm1vdmVTb3VyY2U9e2tleTpmZSxpc0ZvbGRlcjpyZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249U2UsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLnNob3dNb3ZlRGlhbG9nPSEwfWFzeW5jIGV4ZWN1dGVNb3ZlKCl7aWYoISghdGhpcy5tb3ZlU291cmNlfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLm1vdmVJblByb2dyZXNzPSEwO3RyeXtsZXQgZmU9WWEodGhpcy5tb3ZlU291cmNlLmtleSkscmU9dGhpcy5tb3ZlRGVzdGluYXRpb24rZmUrKHRoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLFNlO3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj9TZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlUHJlZml4KHRoaXMuYnVja2V0TmFtZSx0aGlzLm1vdmVTb3VyY2Uua2V5LHJlKTpTZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm1vdmVTb3VyY2Uua2V5LHJlKSxTZS5zdWNjZXNzPyh0aGlzLmNsb3NlTW92ZURpYWxvZygpLGF3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKSk6dGhpcy5tb3ZlRXJyb3I9U2UuZXJyb3J8fCJNb3ZlIG9wZXJhdGlvbiBmYWlsZWQifWNhdGNoKGZlKXt0aGlzLm1vdmVFcnJvcj1gRXJyb3I6ICR7ZmV9YH10aGlzLm1vdmVJblByb2dyZXNzPSExfX1jbG9zZU1vdmVEaWFsb2coKXt0aGlzLnNob3dNb3ZlRGlhbG9nPSExLHRoaXMubW92ZVNvdXJjZT1udWxsLHRoaXMubW92ZURlc3RpbmF0aW9uPSIiLHRoaXMubW92ZUVycm9yPW51bGwsdGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMX1vcGVuUmVuYW1lRGlhbG9nKGZlLHJlKXt0aGlzLnJlbmFtZVNvdXJjZT17a2V5OmZlLGlzRm9sZGVyOnJlfSx0aGlzLnJlbmFtZU5hbWU9WWEoZmUpLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnNob3dSZW5hbWVEaWFsb2c9ITAsdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFNlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnJlbmFtZS1kaWFsb2ctaW5wdXQiKTtpZihTZSlpZihTZS5mb2N1cygpLHJlKVNlLnNlbGVjdCgpO2Vsc2V7bGV0IE9lPXRoaXMucmVuYW1lTmFtZS5sYXN0SW5kZXhPZigiLiIpO09lPjA/U2Uuc2V0U2VsZWN0aW9uUmFuZ2UoMCxPZSk6U2Uuc2VsZWN0KCl9fSl9YXN5bmMgZXhlY3V0ZVJlbmFtZSgpe2lmKCF0aGlzLnJlbmFtZVNvdXJjZXx8IXRoaXMucmVuYW1lTmFtZS50cmltKCl8fCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGZlPXRoaXMucmVuYW1lTmFtZS50cmltKCkscmU9WWEodGhpcy5yZW5hbWVTb3VyY2Uua2V5KTtpZihmZT09PXJlKXt0aGlzLnJlbmFtZUVycm9yPSJOYW1lIGlzIHRoZSBzYW1lIGFzIGN1cnJlbnQiO3JldHVybn1pZighZmUpe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgY2Fubm90IGJlIGVtcHR5IjtyZXR1cm59aWYoZmUuaW5jbHVkZXMoIi8iKSl7dGhpcy5yZW5hbWVFcnJvcj0nTmFtZSBjYW5ub3QgY29udGFpbiAiLyInO3JldHVybn10aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITAsdGhpcy5yZW5hbWVFcnJvcj1udWxsO3RyeXtsZXQgT2U9SmQodGhpcy5yZW5hbWVTb3VyY2Uua2V5KStmZSsodGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI/Ii8iOiIiKSxKZTt0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj9KZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlUHJlZml4KHRoaXMuYnVja2V0TmFtZSx0aGlzLnJlbmFtZVNvdXJjZS5rZXksT2UpOkplPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSxPZSksSmUuc3VjY2Vzcz8odGhpcy5jbG9zZVJlbmFtZURpYWxvZygpLGF3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKSk6dGhpcy5yZW5hbWVFcnJvcj1KZS5lcnJvcnx8IlJlbmFtZSBmYWlsZWQifWNhdGNoKFNlKXt0aGlzLnJlbmFtZUVycm9yPWBFcnJvcjogJHtTZX1gfXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMX1jbG9zZVJlbmFtZURpYWxvZygpe3RoaXMuc2hvd1JlbmFtZURpYWxvZz0hMSx0aGlzLnJlbmFtZVNvdXJjZT1udWxsLHRoaXMucmVuYW1lTmFtZT0iIix0aGlzLnJlbmFtZUVycm9yPW51bGwsdGhpcy5yZW5hbWVJblByb2dyZXNzPSExfXJlbmRlclJlbmFtZURpYWxvZygpe2lmKCF0aGlzLnNob3dSZW5hbWVEaWFsb2d8fCF0aGlzLnJlbmFtZVNvdXJjZSlyZXR1cm4iIjtsZXQgZmU9dGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke1NlPT5TZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7ZmU/IlJlbmFtZSBGb2xkZXIiOiJSZW5hbWUgRmlsZSJ9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7SmQodGhpcy5yZW5hbWVTb3VyY2Uua2V5KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnJlbmFtZUVycm9yP3dgPGRpdiBjbGFzcz0ibW92ZS1lcnJvciI+JHt0aGlzLnJlbmFtZUVycm9yfTwvZGl2PmA6IiJ9CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1pbnB1dCByZW5hbWUtZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke2ZlPyJmb2xkZXItbmFtZSI6ImZpbGVuYW1lLmV4dCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMucmVuYW1lTmFtZX0KICAgICAgICAgICAgQGlucHV0PSR7U2U9Pnt0aGlzLnJlbmFtZU5hbWU9U2UudGFyZ2V0LnZhbHVlLHRoaXMucmVuYW1lRXJyb3I9bnVsbH19CiAgICAgICAgICAgIEBrZXlkb3duPSR7U2U9PntTZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmV4ZWN1dGVSZW5hbWUoKSxTZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfX0KICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3N9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmV4ZWN1dGVSZW5hbWUoKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3N8fCF0aGlzLnJlbmFtZU5hbWUudHJpbSgpfT4KICAgICAgICAgICAgICAke3RoaXMucmVuYW1lSW5Qcm9ncmVzcz8iUmVuYW1pbmcuLi4iOiJSZW5hbWUifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZURpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlRGlhbG9nfHwhdGhpcy5tb3ZlU291cmNlKXJldHVybiIiO2xldCBmZT1ZYSh0aGlzLm1vdmVTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZURpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke3JlPT5yZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPk1vdmUgJHt0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/IkZvbGRlciI6IkZpbGUifTwvZGl2PgoKICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1lcnJvciI+JHt0aGlzLm1vdmVFcnJvcn08L2Rpdj4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1zdW1tYXJ5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtbGFiZWwiPkZyb206PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVTb3VyY2Uua2V5fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtbGFiZWwiPlRvOjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLXBhdGgiPiR7dGhpcy5tb3ZlRGVzdGluYXRpb259JHtmZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlSW5Qcm9ncmVzc30+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAke3RoaXMubW92ZUVycm9yPyIiOndgCiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmV4ZWN1dGVNb3ZlKCl9CiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICAgICR7dGhpcy5tb3ZlSW5Qcm9ncmVzcz8iTW92aW5nLi4uIjoiTW92ZSJ9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1vdmVQaWNrZXJEaWFsb2coKXtpZighdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZ3x8IXRoaXMubW92ZVBpY2tlclNvdXJjZSlyZXR1cm4iIjtsZXQgZmU9WWEodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkscmU9SmQodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVQaWNrZXJEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIG1vdmUtcGlja2VyLWRpYWxvZyIgQGNsaWNrPSR7U2U9PlNlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAiJHtmZX0iIHRvLi4uPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWJyZWFkY3J1bWIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlja2VyLWNydW1iIiBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZU1vdmVQaWNrZXIoIiIpfT4KICAgICAgICAgICAgICAke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAke3p4KHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpLm1hcChTZT0+d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlja2VyLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlja2VyLWNydW1iIiBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZU1vdmVQaWNrZXIoU2UpfT4KICAgICAgICAgICAgICAgICR7WWEoU2UpfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItbGlzdCI+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlUGlja2VyTG9hZGluZz93YDxkaXYgY2xhc3M9InBpY2tlci1lbXB0eSI+TG9hZGluZy4uLjwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7IXRoaXMubW92ZVBpY2tlckxvYWRpbmcmJnRoaXMubW92ZVBpY2tlclByZWZpeGVzLmZpbHRlcihTZT0+U2UhPT10aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KS5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5ObyBzdWJmb2xkZXJzPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKFNlPT5TZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLm1hcChTZT0+d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1pdGVtIgogICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZU1vdmVQaWNrZXIoU2UpfQogICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RNb3ZlRGVzdGluYXRpb24oU2UpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hbWUiPiR7WWEoU2UpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVQaWNrZXJEaWFsb2coKX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbih0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4KX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PT09cmV9PgogICAgICAgICAgICAgIE1vdmUgSGVyZQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlQ3JlYXRlKCl7aWYoIXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCl8fCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGZlPXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCkscmU7dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciI/cmU9dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXgrZmUrIi8ua2VlcCI6cmU9dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXgrZmU7bGV0IFNlPWZlLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiLE9lPXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmaWxlIj9yNyhTZSk6ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsSmU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP1hRKFNlKToiIjthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLHJlLGJ0b2EoSmUpLE9lKSYmKHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMSxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCkpfXJlbmRlckNyZWF0ZURpYWxvZygpe2lmKCF0aGlzLnNob3dDcmVhdGVEaWFsb2cpcmV0dXJuIiI7bGV0IGZlPXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmb2xkZXIiLHJlPWZlPyJDcmVhdGUgTmV3IEZvbGRlciI6IkNyZWF0ZSBOZXcgRmlsZSIsU2U9ZmU/ImZvbGRlci1uYW1lIG9yIHBhdGgvdG8vZm9sZGVyIjoiZmlsZW5hbWUudHh0IG9yIHBhdGgvdG8vZmlsZS50eHQiO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtPZT0+T2Uuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj4ke3JlfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWxvY2F0aW9uIj4KICAgICAgICAgICAgTG9jYXRpb246ICR7dGhpcy5idWNrZXROYW1lfS8ke3RoaXMuY3JlYXRlRGlhbG9nUHJlZml4fQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtTZX0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5jcmVhdGVEaWFsb2dOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtPZT0+dGhpcy5jcmVhdGVEaWFsb2dOYW1lPU9lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgQGtleWRvd249JHtPZT0+T2Uua2V5PT09IkVudGVyIiYmdGhpcy5oYW5kbGVDcmVhdGUoKX0KICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctaGludCI+CiAgICAgICAgICAgIFVzZSAiLyIgdG8gY3JlYXRlIG5lc3RlZCAke2ZlPyJmb2xkZXJzIjoicGF0aCJ9IChlLmcuLCAke2ZlPyJwYXJlbnQvY2hpbGQiOiJmb2xkZXIvZmlsZS50eHQifSkKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKX0KICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIENyZWF0ZQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyKCl7cmV0dXJuIHRoaXMubG9hZGluZyYmdGhpcy5jb2x1bW5zLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJsb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+YDp3YAogICAgICA8ZGl2IGNsYXNzPSJjb2x1bW5zLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmNvbHVtbnMubWFwKChmZSxyZSk9PnRoaXMucmVuZGVyQ29sdW1uV3JhcHBlcihmZSxyZSkpfQogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckNyZWF0ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZVBpY2tlckRpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyUmVuYW1lRGlhbG9nKCl9CiAgICBgfXJlbmRlckNvbHVtbldyYXBwZXIoZmUscmUpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4td3JhcHBlciI+CiAgICAgICAgJHt0aGlzLnJlbmRlckNvbHVtbihmZSxyZSl9CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgJHt0aGlzLnJlc2l6aW5nPy5jb2x1bW5JbmRleD09PXJlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBtb3VzZWRvd249JHtTZT0+dGhpcy5zdGFydFJlc2l6ZShTZSxyZSl9CiAgICAgICAgPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ29sdW1uKGZlLHJlKXtsZXQgU2U9ZmUucHJlZml4P1lhKGZlLnByZWZpeCk6dGhpcy5idWNrZXROYW1lO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImNvbHVtbiAke3RoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD09PXJlPyJkcmFnLW92ZXIiOiIifSIKICAgICAgICBzdHlsZT0id2lkdGg6ICR7ZmUud2lkdGh9cHgiCiAgICAgICAgQGRyYWdlbnRlcj0ke09lPT50aGlzLmhhbmRsZUNvbHVtbkRyYWdFbnRlcihPZSxyZSl9CiAgICAgICAgQGRyYWdvdmVyPSR7T2U9PnRoaXMuaGFuZGxlQ29sdW1uRHJhZ092ZXIoT2UpfQogICAgICAgIEBkcmFnbGVhdmU9JHtPZT0+dGhpcy5oYW5kbGVDb2x1bW5EcmFnTGVhdmUoT2UscmUpfQogICAgICAgIEBkcm9wPSR7T2U9PnRoaXMuaGFuZGxlQ29sdW1uRHJvcChPZSxyZSl9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4taGVhZGVyIiB0aXRsZT0ke2ZlLnByZWZpeHx8dGhpcy5idWNrZXROYW1lfT4KICAgICAgICAgICR7U2V9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uLWl0ZW1zIiBAY29udGV4dG1lbnU9JHtPZT0+dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoT2UscmUpfT4KICAgICAgICAgICR7ZmUucHJlZml4ZXMubGVuZ3RoPT09MCYmZmUub2JqZWN0cy5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPkVtcHR5IGZvbGRlcjwvZGl2PmA6IiJ9CiAgICAgICAgICAke2ZlLnByZWZpeGVzLm1hcChPZT0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iY29sdW1uLWl0ZW0gZm9sZGVyICR7ZmUuc2VsZWN0ZWRJdGVtPT09T2U/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PT09T2U/ImRyYWctdGFyZ2V0IjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9InRydWUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RGb2xkZXIocmUsT2UpfQogICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7SmU9PnRoaXMuaGFuZGxlRm9sZGVyQ29udGV4dE1lbnUoSmUscmUsT2UpfQogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke0plPT50aGlzLmhhbmRsZUl0ZW1EcmFnU3RhcnQoSmUsT2UsITApfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHtKZT0+dGhpcy5oYW5kbGVJdGVtRHJhZ0VuZChKZSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VudGVyPSR7SmU9PnRoaXMuaGFuZGxlRm9sZGVyRHJhZ0VudGVyKEplLE9lKX0KICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke0plPT50aGlzLmhhbmRsZUZvbGRlckRyYWdPdmVyKEplKX0KICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHtKZT0+dGhpcy5oYW5kbGVGb2xkZXJEcmFnTGVhdmUoSmUsT2UpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6IiAvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtZYShPZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY2hldnJvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iOSAxOCAxNSAxMiA5IDYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAke2ZlLm9iamVjdHMubWFwKE9lPT53YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJjb2x1bW4taXRlbSAke2ZlLnNlbGVjdGVkSXRlbT09PU9lLmtleT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEZpbGUocmUsT2Uua2V5KX0KICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke0plPT50aGlzLmhhbmRsZUZpbGVDb250ZXh0TWVudShKZSxyZSxPZS5rZXkpfQogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke0plPT50aGlzLmhhbmRsZUl0ZW1EcmFnU3RhcnQoSmUsT2Uua2V5LCExKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7SmU9PnRoaXMuaGFuZGxlSXRlbURyYWdFbmQoSmUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9IiR7dGhpcy5nZXRGaWxlSWNvbihPZS5rZXkpfSIgLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hbWUiPiR7WWEoT2Uua2V5KX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PT09cmU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYWctaGludCI+CiAgICAgICAgICAgICR7dGhpcy5kcmFnZ2VkSXRlbT90aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4P2BNb3ZlIHRvICR7WWEodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeCl9YDoiTW92ZSBoZXJlIjp0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4P2BEcm9wIHRvIHVwbG9hZCBpbnRvICR7WWEodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeCl9YDoiRHJvcCB0byB1cGxvYWQgaGVyZSJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgICR7dGhpcy51cGxvYWRpbmc/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1vdmVybGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiPlVwbG9hZGluZy4uLjwvZGl2PgogICAgICAgICAgICAke3RoaXMudXBsb2FkUHJvZ3Jlc3M/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtcHJvZ3Jlc3MiPiR7dGhpcy51cGxvYWRQcm9ncmVzcy5jdXJyZW50fSAvICR7dGhpcy51cGxvYWRQcm9ncmVzcy50b3RhbH0gZmlsZXM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7TnQoYSx0KX19O3JldHVybiBOcj1hfSkoKX0pO3ZhciBWcyxqdCxDZXMsbmx0PWcoKCk9PntwZSgpO2ZyKCk7aHQoKTtRUSgpO1ZzPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sQ2VzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zdG9yYWdlLWtleXMiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXSxzZSxvZT1bXSxhZT1bXSxUZSxSZT1bXSxCZT1bXSxHZSxEZT1bXSxfZT1bXSxDZSx2ZT1bXSxiZT1bXSxFZSxqZT1bXSxXZT1bXSxzdCxNZT1bXSxnZT1bXSxJZSxjZT1bXSxkZT1bXSxMZSxLZT1bXSxZZT1bXSxvdCxVdD1bXSxadD1bXSxqYSxldD1bXSxidD1bXSx5YSxlcz1bXSxycz1bXSxwcyxucz1bXSx0aT1bXTt2YXIgYWk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlS2V5cyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCB6ZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSxIPVtZKCldLEk9W1koKV0sSz1bWSgpXSxtZT1bWSgpXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSx5ZT1bWSgpXSxzZT1bWSgpXSxUZT1bWSgpXSxHZT1bWSgpXSxDZT1bWSgpXSxFZT1bWSgpXSxzdD1bWSgpXSxJZT1bWSgpXSxMZT1bWSgpXSxvdD1bWSgpXSxqYT1bWSgpXSx5YT1bWSgpXSxwcz1bWSgpXSxWcyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFQcm92aWRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+ImRhdGFQcm92aWRlciJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLmRhdGFQcm92aWRlciwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmRhdGFQcm92aWRlcj1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbyxsKSxWcyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1Y2tldE5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJidWNrZXROYW1lImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmJ1Y2tldE5hbWU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGQsdSksVnModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4iY3VycmVudFByZWZpeCJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLmN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5jdXJyZW50UHJlZml4PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxiLHYpLFZzKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmcmVzaEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlZnJlc2hLZXkiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5yZWZyZXNoS2V5LCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVmcmVzaEtleT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sbSxmKSxWcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbEtleXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJhbGxLZXlzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuYWxsS2V5cywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmFsbEtleXM9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LE0seiksVnModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmVmaXhlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InByZWZpeGVzImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucHJlZml4ZXMsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5wcmVmaXhlcz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sQyxfKSxWcyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJsb2FkaW5nImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubG9hZGluZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmxvYWRpbmc9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LCQsRSksVnModGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InNlbGVjdGVkS2V5ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuc2VsZWN0ZWRLZXksImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zZWxlY3RlZEtleT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sayxTKSxWcyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJmaWx0ZXJUZXh0ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuZmlsdGVyVGV4dCwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmZpbHRlclRleHQ9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LFAsUiksVnModGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q3JlYXRlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd0NyZWF0ZURpYWxvZyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnNob3dDcmVhdGVEaWFsb2csImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zaG93Q3JlYXRlRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxWLFcpLFZzKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1R5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjcmVhdGVEaWFsb2dUeXBlImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3JlYXRlRGlhbG9nVHlwZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmNyZWF0ZURpYWxvZ1R5cGU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LEIsVSksVnModGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4iY3JlYXRlRGlhbG9nUHJlZml4ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3JlYXRlRGlhbG9nUHJlZml4LCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuY3JlYXRlRGlhbG9nUHJlZml4PU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxGLGopLFZzKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ05hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJjcmVhdGVEaWFsb2dOYW1lImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuY3JlYXRlRGlhbG9nTmFtZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLmNyZWF0ZURpYWxvZ05hbWU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGxlLFEpLFZzKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ic2hvd01vdmVEaWFsb2ciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zaG93TW92ZURpYWxvZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnNob3dNb3ZlRGlhbG9nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSx0ZSxlZSksVnModGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVTb3VyY2UiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlU291cmNlLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZVNvdXJjZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sWCxaKSxWcyh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlRGVzdGluYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlRGVzdGluYXRpb24iaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlRGVzdGluYXRpb24sImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlRGVzdGluYXRpb249TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LHEsQSksVnModGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUluUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlSW5Qcm9ncmVzcyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUubW92ZUluUHJvZ3Jlc3M9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LG9lLGFlKSxWcyh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlRXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlRXJyb3IiaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlRXJyb3IsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlRXJyb3I9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LFJlLEJlKSxWcyh0aGlzLG51bGwsR2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TW92ZVBpY2tlckRpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InNob3dNb3ZlUGlja2VyRGlhbG9nImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUuc2hvd01vdmVQaWNrZXJEaWFsb2csImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5zaG93TW92ZVBpY2tlckRpYWxvZz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sRGUsX2UpLFZzKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJtb3ZlUGlja2VyU291cmNlImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZVBpY2tlclNvdXJjZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJTb3VyY2U9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LHZlLGJlKSxWcyh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVQaWNrZXJDdXJyZW50UHJlZml4ImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0samUsV2UpLFZzKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJQcmVmaXhlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+Im1vdmVQaWNrZXJQcmVmaXhlcyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLm1vdmVQaWNrZXJQcmVmaXhlcywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJQcmVmaXhlcz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sTWUsZ2UpLFZzKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4ibW92ZVBpY2tlckxvYWRpbmciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5tb3ZlUGlja2VyTG9hZGluZywiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLm1vdmVQaWNrZXJMb2FkaW5nPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxjZSxkZSksVnModGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1JlbmFtZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InNob3dSZW5hbWVEaWFsb2ciaW4geGUsImhhcyIpLGdldDppKHhlPT54ZS5zaG93UmVuYW1lRGlhbG9nLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUuc2hvd1JlbmFtZURpYWxvZz1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sS2UsWWUpLFZzKHRoaXMsbnVsbCxvdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZVNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh4ZT0+InJlbmFtZVNvdXJjZSJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlbmFtZVNvdXJjZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnJlbmFtZVNvdXJjZT1OZX0sInNldCIpfSxtZXRhZGF0YTp6ZX0sVXQsWnQpLFZzKHRoaXMsbnVsbCxqYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJyZW5hbWVOYW1lImluIHhlLCJoYXMiKSxnZXQ6aSh4ZT0+eGUucmVuYW1lTmFtZSwiZ2V0Iiksc2V0OmkoKHhlLE5lKT0+e3hlLnJlbmFtZU5hbWU9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LGV0LGJ0KSxWcyh0aGlzLG51bGwseWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHhlPT4icmVuYW1lSW5Qcm9ncmVzcyJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlbmFtZUluUHJvZ3Jlc3MsImdldCIpLHNldDppKCh4ZSxOZSk9Pnt4ZS5yZW5hbWVJblByb2dyZXNzPU5lfSwic2V0Iil9LG1ldGFkYXRhOnplfSxlcyxycyksVnModGhpcyxudWxsLHBzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lRXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoeGU9PiJyZW5hbWVFcnJvciJpbiB4ZSwiaGFzIiksZ2V0OmkoeGU9PnhlLnJlbmFtZUVycm9yLCJnZXQiKSxzZXQ6aSgoeGUsTmUpPT57eGUucmVuYW1lRXJyb3I9TmV9LCJzZXQiKX0sbWV0YWRhdGE6emV9LG5zLHRpKSxWcyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp6ZX0sbnVsbCx0KSxhaT1hPWUudmFsdWUsemUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6emV9KX0jZT1qdCh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoemUpe3RoaXMuI2U9emV9I3Q9KGp0KHRoaXMsbCksanQodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZSh6ZSl7dGhpcy4jdD16ZX0jYT0oanQodGhpcyx1KSxqdCh0aGlzLGIsIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50UHJlZml4KHplKXt0aGlzLiNhPXplfSNzPShqdCh0aGlzLHYpLGp0KHRoaXMsbSwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVmcmVzaEtleSh6ZSl7dGhpcy4jcz16ZX0jaT0oanQodGhpcyxmKSxqdCh0aGlzLE0sW10pKTtnZXQgYWxsS2V5cygpe3JldHVybiB0aGlzLiNpfXNldCBhbGxLZXlzKHplKXt0aGlzLiNpPXplfSNyPShqdCh0aGlzLHopLGp0KHRoaXMsQyxbXSkpO2dldCBwcmVmaXhlcygpe3JldHVybiB0aGlzLiNyfXNldCBwcmVmaXhlcyh6ZSl7dGhpcy4jcj16ZX0jbz0oanQodGhpcyxfKSxqdCh0aGlzLCQsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNvfXNldCBsb2FkaW5nKHplKXt0aGlzLiNvPXplfSNuPShqdCh0aGlzLEUpLGp0KHRoaXMsaywiIikpO2dldCBzZWxlY3RlZEtleSgpe3JldHVybiB0aGlzLiNufXNldCBzZWxlY3RlZEtleSh6ZSl7dGhpcy4jbj16ZX0jbD0oanQodGhpcyxTKSxqdCh0aGlzLFAsIiIpKTtnZXQgZmlsdGVyVGV4dCgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJUZXh0KHplKXt0aGlzLiNsPXplfSNjPShqdCh0aGlzLFIpLGp0KHRoaXMsViwhMSkpO2dldCBzaG93Q3JlYXRlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHNob3dDcmVhdGVEaWFsb2coemUpe3RoaXMuI2M9emV9I2Q9KGp0KHRoaXMsVyksanQodGhpcyxCLCJmb2xkZXIiKSk7Z2V0IGNyZWF0ZURpYWxvZ1R5cGUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY3JlYXRlRGlhbG9nVHlwZSh6ZSl7dGhpcy4jZD16ZX0jdT0oanQodGhpcyxVKSxqdCh0aGlzLEYsIiIpKTtnZXQgY3JlYXRlRGlhbG9nUHJlZml4KCl7cmV0dXJuIHRoaXMuI3V9c2V0IGNyZWF0ZURpYWxvZ1ByZWZpeCh6ZSl7dGhpcy4jdT16ZX0jcD0oanQodGhpcyxqKSxqdCh0aGlzLGxlLCIiKSk7Z2V0IGNyZWF0ZURpYWxvZ05hbWUoKXtyZXR1cm4gdGhpcy4jcH1zZXQgY3JlYXRlRGlhbG9nTmFtZSh6ZSl7dGhpcy4jcD16ZX0jaD0oanQodGhpcyxRKSxqdCh0aGlzLHRlLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNob3dNb3ZlRGlhbG9nKHplKXt0aGlzLiNoPXplfSNmPShqdCh0aGlzLGVlKSxqdCh0aGlzLFgsbnVsbCkpO2dldCBtb3ZlU291cmNlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IG1vdmVTb3VyY2UoemUpe3RoaXMuI2Y9emV9I209KGp0KHRoaXMsWiksanQodGhpcyxxLCIiKSk7Z2V0IG1vdmVEZXN0aW5hdGlvbigpe3JldHVybiB0aGlzLiNtfXNldCBtb3ZlRGVzdGluYXRpb24oemUpe3RoaXMuI209emV9I2c9KGp0KHRoaXMsQSksanQodGhpcyxvZSwhMSkpO2dldCBtb3ZlSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNnfXNldCBtb3ZlSW5Qcm9ncmVzcyh6ZSl7dGhpcy4jZz16ZX0jYj0oanQodGhpcyxhZSksanQodGhpcyxSZSxudWxsKSk7Z2V0IG1vdmVFcnJvcigpe3JldHVybiB0aGlzLiNifXNldCBtb3ZlRXJyb3IoemUpe3RoaXMuI2I9emV9I3Y9KGp0KHRoaXMsQmUpLGp0KHRoaXMsRGUsITEpKTtnZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coKXtyZXR1cm4gdGhpcy4jdn1zZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coemUpe3RoaXMuI3Y9emV9I3g9KGp0KHRoaXMsX2UpLGp0KHRoaXMsdmUsbnVsbCkpO2dldCBtb3ZlUGlja2VyU291cmNlKCl7cmV0dXJuIHRoaXMuI3h9c2V0IG1vdmVQaWNrZXJTb3VyY2UoemUpe3RoaXMuI3g9emV9I3k9KGp0KHRoaXMsYmUpLGp0KHRoaXMsamUsIiIpKTtnZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jeX1zZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoemUpe3RoaXMuI3k9emV9I3c9KGp0KHRoaXMsV2UpLGp0KHRoaXMsTWUsW10pKTtnZXQgbW92ZVBpY2tlclByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI3d9c2V0IG1vdmVQaWNrZXJQcmVmaXhlcyh6ZSl7dGhpcy4jdz16ZX0jaz0oanQodGhpcyxnZSksanQodGhpcyxjZSwhMSkpO2dldCBtb3ZlUGlja2VyTG9hZGluZygpe3JldHVybiB0aGlzLiNrfXNldCBtb3ZlUGlja2VyTG9hZGluZyh6ZSl7dGhpcy4jaz16ZX0jUz0oanQodGhpcyxkZSksanQodGhpcyxLZSwhMSkpO2dldCBzaG93UmVuYW1lRGlhbG9nKCl7cmV0dXJuIHRoaXMuI1N9c2V0IHNob3dSZW5hbWVEaWFsb2coemUpe3RoaXMuI1M9emV9I189KGp0KHRoaXMsWWUpLGp0KHRoaXMsVXQsbnVsbCkpO2dldCByZW5hbWVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jX31zZXQgcmVuYW1lU291cmNlKHplKXt0aGlzLiNfPXplfSNNPShqdCh0aGlzLFp0KSxqdCh0aGlzLGV0LCIiKSk7Z2V0IHJlbmFtZU5hbWUoKXtyZXR1cm4gdGhpcy4jTX1zZXQgcmVuYW1lTmFtZSh6ZSl7dGhpcy4jTT16ZX0jej0oanQodGhpcyxidCksanQodGhpcyxlcywhMSkpO2dldCByZW5hbWVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHJlbmFtZUluUHJvZ3Jlc3MoemUpe3RoaXMuI3o9emV9I0M9KGp0KHRoaXMscnMpLGp0KHRoaXMsbnMsbnVsbCkpO2dldCByZW5hbWVFcnJvcigpe3JldHVybiB0aGlzLiNDfXNldCByZW5hbWVFcnJvcih6ZSl7dGhpcy4jQz16ZX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMscWUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAua2V5cy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAua2V5cy1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CgogICAgICB0aGVhZCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMWExYTFhIil9OwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIHRoIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNjY2Iil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMmEyYTNlIil9OwogICAgICB9CgogICAgICB0cjpob3ZlciB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpIil9OwogICAgICB9CgogICAgICB0ci5zZWxlY3RlZCB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5rZXktY2VsbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmtleS1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5rZXktbmFtZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2l6ZS1jZWxsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLmRpYWxvZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMWUxZTFlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtaW4td2lkdGg6IDQwMHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgfQoKICAgICAgLmRpYWxvZy10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWxvY2F0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxNDE0MTQiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1oaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGlhbG9nLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTA1MDUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBNb3ZlIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtc3VtbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm1vdmUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICB9CgogICAgICAubW92ZS1wYXRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLm1vdmUtZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLyogTW92ZSBwaWNrZXIgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1waWNrZXItZGlhbG9nIHsKICAgICAgICBtaW4td2lkdGg6IDQ1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX11cGRhdGVkKHplKXsoemUuaGFzKCJidWNrZXROYW1lIil8fHplLmhhcygiY3VycmVudFByZWZpeCIpfHx6ZS5oYXMoInJlZnJlc2hLZXkiKSkmJnRoaXMubG9hZE9iamVjdHMoKX1hc3luYyBsb2FkT2JqZWN0cygpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCB6ZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5jdXJyZW50UHJlZml4LCIvIik7dGhpcy5hbGxLZXlzPXplLm9iamVjdHMsdGhpcy5wcmVmaXhlcz16ZS5wcmVmaXhlc31jYXRjaCh6ZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3RzOiIsemUpLHRoaXMuYWxsS2V5cz1bXSx0aGlzLnByZWZpeGVzPVtdfXRoaXMubG9hZGluZz0hMX19aGFuZGxlRmlsdGVySW5wdXQoemUpe3RoaXMuZmlsdGVyVGV4dD16ZS50YXJnZXQudmFsdWV9c2VsZWN0S2V5KHplLHhlKXt0aGlzLnNlbGVjdGVkS2V5PXplLHhlP3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5hdmlnYXRlIix7ZGV0YWlsOntwcmVmaXg6emV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSk6dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5LXNlbGVjdGVkIix7ZGV0YWlsOntrZXk6emV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0IGZpbHRlcmVkSXRlbXMoKXtsZXQgemU9dGhpcy5maWx0ZXJUZXh0LnRvTG93ZXJDYXNlKCkseGU9dGhpcy5wcmVmaXhlcy5maWx0ZXIoeHQ9PiF6ZXx8WWEoeHQpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoemUpKS5tYXAoeHQ9Pih7a2V5Onh0LGlzRm9sZGVyOiEwLHNpemU6dm9pZCAwfSkpLE5lPXRoaXMuYWxsS2V5cy5maWx0ZXIoeHQ9PiF6ZXx8WWEoeHQua2V5KS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHplKSkubWFwKHh0PT4oe2tleTp4dC5rZXksaXNGb2xkZXI6ITEsc2l6ZTp4dC5zaXplfSkpO3JldHVyblsuLi54ZSwuLi5OZV19aGFuZGxlSXRlbUNvbnRleHRNZW51KHplLHhlLE5lKXt0aGlzLmRhdGFQcm92aWRlciYmKHplLnByZXZlbnREZWZhdWx0KCksTmU/JGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoemUsW3tuYW1lOiJPcGVuIixpY29uTmFtZToibHVjaWRlOmZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEtleSh4ZSwhMCl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoeGUpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coeGUsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKHhlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTmV3IEZvbGRlciBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLHhlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIseGUpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmb2xkZXIgIiR7WWEoeGUpfSIgYW5kIGFsbCBpdHMgY29udGVudHM/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUseGUpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKTokYS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh6ZSxbe25hbWU6IlByZXZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RLZXkoeGUsITEpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCB4dD1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3RVcmwodGhpcy5idWNrZXROYW1lLHhlKSxNYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7TWEuaHJlZj14dCxNYS5kb3dubG9hZD1ZYSh4ZSksTWEuY2xpY2soKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh4ZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyh4ZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coeGUsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZpbGUgIiR7WWEoeGUpfSI/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUseGUpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KHplKXt6ZS50YXJnZXQuY2xvc2VzdCgidHIiKXx8KHplLnByZXZlbnREZWZhdWx0KCksJGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoemUsW3tuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIix0aGlzLmN1cnJlbnRQcmVmaXgpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLHRoaXMuY3VycmVudFByZWZpeCksImFjdGlvbiIpfV0pKX1vcGVuQ3JlYXRlRGlhbG9nKHplLHhlKXt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9emUsdGhpcy5jcmVhdGVEaWFsb2dQcmVmaXg9eGUsdGhpcy5jcmVhdGVEaWFsb2dOYW1lPSIiLHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMH1hc3luYyBoYW5kbGVDcmVhdGUoKXtpZighdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgemU9dGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKSx4ZTt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIj94ZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCt6ZSsiLy5rZWVwIjp4ZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCt6ZTtsZXQgTmU9emUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIseHQ9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP3I3KE5lKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixNYT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/WFEoTmUpOiIiO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUseGUsYnRvYShNYSkseHQpJiYodGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKSl9cmVuZGVyQ3JlYXRlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd0NyZWF0ZURpYWxvZylyZXR1cm4iIjtsZXQgemU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciIseGU9emU/IkNyZWF0ZSBOZXcgRm9sZGVyIjoiQ3JlYXRlIE5ldyBGaWxlIixOZT16ZT8iZm9sZGVyLW5hbWUgb3IgcGF0aC90by9mb2xkZXIiOiJmaWxlbmFtZS50eHQgb3IgcGF0aC90by9maWxlLnR4dCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke3h0PT54dC5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7eGV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXh9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke05lfQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNyZWF0ZURpYWxvZ05hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke3h0PT50aGlzLmNyZWF0ZURpYWxvZ05hbWU9eHQudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICBAa2V5ZG93bj0ke3h0PT54dC5rZXk9PT0iRW50ZXIiJiZ0aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1oaW50Ij4KICAgICAgICAgICAgVXNlICIvIiB0byBjcmVhdGUgbmVzdGVkICR7emU/ImZvbGRlcnMiOiJwYXRoIn0gKGUuZy4sICR7emU/InBhcmVudC9jaGlsZCI6ImZvbGRlci9maWxlLnR4dCJ9KQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfQogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ3JlYXRlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBvcGVuTW92ZVBpY2tlckRpYWxvZyh6ZSx4ZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlPXtrZXk6emUsaXNGb2xkZXI6eGV9LHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMCxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoIiIpfWFzeW5jIG5hdmlnYXRlTW92ZVBpY2tlcih6ZSl7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD16ZSxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoemUpfWFzeW5jIGxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoemUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSEwO3RyeXtsZXQgeGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLHplLCIvIik7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9eGUucHJlZml4ZXN9Y2F0Y2h7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMX19c2VsZWN0TW92ZURlc3RpbmF0aW9uKHplKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2UmJih0aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpLHRoaXMuaW5pdGlhdGVNb3ZlKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXksdGhpcy5tb3ZlUGlja2VyU291cmNlLmlzRm9sZGVyLHplKSl9Y2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl7dGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMSx0aGlzLm1vdmVQaWNrZXJTb3VyY2U9bnVsbCx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfWluaXRpYXRlTW92ZSh6ZSx4ZSxOZSl7bGV0IHh0PVpRKHplLE5lKTtpZigheHQudmFsaWQpe3RoaXMubW92ZVNvdXJjZT17a2V5OnplLGlzRm9sZGVyOnhlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1OZSx0aGlzLm1vdmVFcnJvcj14dC5lcnJvcix0aGlzLnNob3dNb3ZlRGlhbG9nPSEwO3JldHVybn10aGlzLm1vdmVTb3VyY2U9e2tleTp6ZSxpc0ZvbGRlcjp4ZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249TmUsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLnNob3dNb3ZlRGlhbG9nPSEwfWFzeW5jIGV4ZWN1dGVNb3ZlKCl7aWYoISghdGhpcy5tb3ZlU291cmNlfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLm1vdmVJblByb2dyZXNzPSEwO3RyeXtsZXQgemU9WWEodGhpcy5tb3ZlU291cmNlLmtleSkseGU9dGhpcy5tb3ZlRGVzdGluYXRpb24remUsTmU7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyP05lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkseGUpOk5lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXkseGUpLE5lLnN1Y2Nlc3M/KHRoaXMuY2xvc2VNb3ZlRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLm1vdmVFcnJvcj1OZS5lcnJvcnx8Ik1vdmUgb3BlcmF0aW9uIGZhaWxlZCJ9Y2F0Y2goemUpe3RoaXMubW92ZUVycm9yPWBFcnJvcjogJHt6ZX1gfXRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9fWNsb3NlTW92ZURpYWxvZygpe3RoaXMuc2hvd01vdmVEaWFsb2c9ITEsdGhpcy5tb3ZlU291cmNlPW51bGwsdGhpcy5tb3ZlRGVzdGluYXRpb249IiIsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLm1vdmVJblByb2dyZXNzPSExfW9wZW5SZW5hbWVEaWFsb2coemUseGUpe3RoaXMucmVuYW1lU291cmNlPXtrZXk6emUsaXNGb2xkZXI6eGV9LHRoaXMucmVuYW1lTmFtZT1ZYSh6ZSksdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMuc2hvd1JlbmFtZURpYWxvZz0hMCx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgTmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucmVuYW1lLWRpYWxvZy1pbnB1dCIpO2lmKE5lKWlmKE5lLmZvY3VzKCkseGUpTmUuc2VsZWN0KCk7ZWxzZXtsZXQgeHQ9dGhpcy5yZW5hbWVOYW1lLmxhc3RJbmRleE9mKCIuIik7eHQ+MD9OZS5zZXRTZWxlY3Rpb25SYW5nZSgwLHh0KTpOZS5zZWxlY3QoKX19KX1hc3luYyBleGVjdXRlUmVuYW1lKCl7aWYoIXRoaXMucmVuYW1lU291cmNlfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgemU9dGhpcy5yZW5hbWVOYW1lLnRyaW0oKSx4ZT1ZYSh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpO2lmKHplPT09eGUpe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudCI7cmV0dXJufWlmKCF6ZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBjYW5ub3QgYmUgZW1wdHkiO3JldHVybn1pZih6ZS5pbmNsdWRlcygiLyIpKXt0aGlzLnJlbmFtZUVycm9yPSdOYW1lIGNhbm5vdCBjb250YWluICIvIic7cmV0dXJufXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMCx0aGlzLnJlbmFtZUVycm9yPW51bGw7dHJ5e2xldCB4dD1KZCh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpK3plKyh0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLE1hO3RoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyP01hPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSx4dCk6TWE9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LHh0KSxNYS5zdWNjZXNzPyh0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLnJlbmFtZUVycm9yPU1hLmVycm9yfHwiUmVuYW1lIGZhaWxlZCJ9Y2F0Y2goTmUpe3RoaXMucmVuYW1lRXJyb3I9YEVycm9yOiAke05lfWB9dGhpcy5yZW5hbWVJblByb2dyZXNzPSExfWNsb3NlUmVuYW1lRGlhbG9nKCl7dGhpcy5zaG93UmVuYW1lRGlhbG9nPSExLHRoaXMucmVuYW1lU291cmNlPW51bGwsdGhpcy5yZW5hbWVOYW1lPSIiLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9cmVuZGVyUmVuYW1lRGlhbG9nKCl7aWYoIXRoaXMuc2hvd1JlbmFtZURpYWxvZ3x8IXRoaXMucmVuYW1lU291cmNlKXJldHVybiIiO2xldCB6ZT10aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7TmU9Pk5lLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHt6ZT8iUmVuYW1lIEZvbGRlciI6IlJlbmFtZSBGaWxlIn08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHtKZCh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuYW1lRXJyb3I/d2A8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMucmVuYW1lRXJyb3J9PC9kaXY+YDoiIn0KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IHJlbmFtZS1kaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7emU/ImZvbGRlci1uYW1lIjoiZmlsZW5hbWUuZXh0In0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZW5hbWVOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtOZT0+e3RoaXMucmVuYW1lTmFtZT1OZS50YXJnZXQudmFsdWUsdGhpcy5yZW5hbWVFcnJvcj1udWxsfX0KICAgICAgICAgICAgQGtleWRvd249JHtOZT0+e05lLmtleT09PSJFbnRlciImJnRoaXMuZXhlY3V0ZVJlbmFtZSgpLE5lLmtleT09PSJFc2NhcGUiJiZ0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc30+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZVJlbmFtZSgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc3x8IXRoaXMucmVuYW1lTmFtZS50cmltKCl9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5hbWVJblByb2dyZXNzPyJSZW5hbWluZy4uLiI6IlJlbmFtZSJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVEaWFsb2d8fCF0aGlzLm1vdmVTb3VyY2UpcmV0dXJuIiI7bGV0IHplPVlhKHRoaXMubW92ZVNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7eGU9PnhlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAke3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iRm9sZGVyIjoiRmlsZSJ9PC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMubW92ZUVycm9yfTwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLXN1bW1hcnkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+RnJvbTo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZVNvdXJjZS5rZXl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+VG86PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVEZXN0aW5hdGlvbn0ke3plfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/IiI6d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZU1vdmUoKX0KICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgICAgJHt0aGlzLm1vdmVJblByb2dyZXNzPyJNb3ZpbmcuLi4iOiJNb3ZlIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZVBpY2tlckRpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nfHwhdGhpcy5tb3ZlUGlja2VyU291cmNlKXJldHVybiIiO2xldCB6ZT1ZYSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KSx4ZT1KZCh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2cgbW92ZS1waWNrZXItZGlhbG9nIiBAY2xpY2s9JHtOZT0+TmUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICIke3plfSIgdG8uLi48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcigiIil9PgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7engodGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCkubWFwKE5lPT53YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihOZSl9PgogICAgICAgICAgICAgICAgJHtZYShOZSl9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nP3dgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5Mb2FkaW5nLi4uPC9kaXY+YDoiIn0KICAgICAgICAgICAgJHshdGhpcy5tb3ZlUGlja2VyTG9hZGluZyYmdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKE5lPT5OZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPk5vIHN1YmZvbGRlcnM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoTmU9Pk5lIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubWFwKE5lPT53YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihOZSl9CiAgICAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbihOZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtZYShOZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9PT14ZX0+CiAgICAgICAgICAgICAgTW92ZSBIZXJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ia2V5cy1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJGaWx0ZXIgZmlsZXMuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZmlsdGVyVGV4dH0KICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVGaWx0ZXJJbnB1dH0KICAgICAgICAgIC8+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImtleXMtbGlzdCIgQGNvbnRleHRtZW51PSR7emU9PnRoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KHplKX0+CiAgICAgICAgICAke3RoaXMubG9hZGluZz93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5Mb2FkaW5nLi4uPC9kaXY+YDp0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBvYmplY3RzIGZvdW5kPC9kaXY+YDp3YAogICAgICAgICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDEwMHB4OyI+U2l6ZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmZpbHRlcmVkSXRlbXMubWFwKHplPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgIDx0cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5zZWxlY3RlZEtleT09PXplLmtleT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEtleSh6ZS5rZXksemUuaXNGb2xkZXIpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7eGU9PnRoaXMuaGFuZGxlSXRlbUNvbnRleHRNZW51KHhlLHplLmtleSx6ZS5pc0ZvbGRlcil9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZXktY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt6ZS5pc0ZvbGRlcj93YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImtleS1pY29uIGZvbGRlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJrZXktaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleS1uYW1lIj4ke1lhKHplLmtleSl9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InNpemUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7emUuaXNGb2xkZXI/Ii0iOllRKHplLnNpemUpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJDcmVhdGVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVQaWNrZXJEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlclJlbmFtZURpYWxvZygpfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksanQodGhpcyx0aSl9c3RhdGlje2p0KGEsdCl9fTtyZXR1cm4gYWk9YX0pKCl9KTt2YXIgRWwsUXMsVGVzLGxsdD1nKCgpPT57cGUoKTtodCgpO1FRKCk7RWw9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFFzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxUZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0b3JhZ2UtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXTt2YXIgaWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlUHJldmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCB0ZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtZKCldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLEVsKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZGF0YVByb3ZpZGVyImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuZGF0YVByb3ZpZGVyPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxvLGwpLEVsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImJ1Y2tldE5hbWUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5idWNrZXROYW1lLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuYnVja2V0TmFtZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sZCx1KSxFbCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9iamVjdEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im9iamVjdEtleSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm9iamVjdEtleSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLm9iamVjdEtleT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sYix2KSxFbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJsb2FkaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubG9hZGluZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmxvYWRpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LG0sZiksRWwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzYXZpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzYXZpbmciaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zYXZpbmcsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5zYXZpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LE0seiksRWwodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iY29udGVudCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmNvbnRlbnQsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5jb250ZW50PWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxDLF8pLEVsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3JpZ2luYWxUZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im9yaWdpbmFsVGV4dENvbnRlbnQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5vcmlnaW5hbFRleHRDb250ZW50LCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub3JpZ2luYWxUZXh0Q29udGVudD1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sJCxFKSxFbCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0NoYW5nZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJoYXNDaGFuZ2VzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaGFzQ2hhbmdlcywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmhhc0NoYW5nZXM9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LGssUyksRWwodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZWRpdGluZyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVkaXRpbmcsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5lZGl0aW5nPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxQLFIpLEVsKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJjb250ZW50VHlwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmNvbnRlbnRUeXBlLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuY29udGVudFR5cGU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LFYsVyksRWwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJmaWxlU2l6ZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuZmlsZVNpemU9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEIsVSksRWwodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFzdE1vZGlmaWVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibGFzdE1vZGlmaWVkImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubGFzdE1vZGlmaWVkLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUubGFzdE1vZGlmaWVkPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxGLGopLEVsKHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZXJyb3IiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5lcnJvciwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmVycm9yPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxsZSxRKSxFbChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp0ZX0sbnVsbCx0KSxpZT1hPWUudmFsdWUsdGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dGV9KX0jZT1Rcyh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIodGUpe3RoaXMuI2U9dGV9I3Q9KFFzKHRoaXMsbCksUXModGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZSh0ZSl7dGhpcy4jdD10ZX0jYT0oUXModGhpcyx1KSxRcyh0aGlzLGIsIiIpKTtnZXQgb2JqZWN0S2V5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9iamVjdEtleSh0ZSl7dGhpcy4jYT10ZX0jcz0oUXModGhpcyx2KSxRcyh0aGlzLG0sITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNzfXNldCBsb2FkaW5nKHRlKXt0aGlzLiNzPXRlfSNpPShRcyh0aGlzLGYpLFFzKHRoaXMsTSwhMSkpO2dldCBzYXZpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2F2aW5nKHRlKXt0aGlzLiNpPXRlfSNyPShRcyh0aGlzLHopLFFzKHRoaXMsQywiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbnRlbnQodGUpe3RoaXMuI3I9dGV9I289KFFzKHRoaXMsXyksUXModGhpcywkLCIiKSk7Z2V0IG9yaWdpbmFsVGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jb31zZXQgb3JpZ2luYWxUZXh0Q29udGVudCh0ZSl7dGhpcy4jbz10ZX0jbj0oUXModGhpcyxFKSxRcyh0aGlzLGssITEpKTtnZXQgaGFzQ2hhbmdlcygpe3JldHVybiB0aGlzLiNufXNldCBoYXNDaGFuZ2VzKHRlKXt0aGlzLiNuPXRlfSNsPShRcyh0aGlzLFMpLFFzKHRoaXMsUCwhMSkpO2dldCBlZGl0aW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGVkaXRpbmcodGUpe3RoaXMuI2w9dGV9I2M9KFFzKHRoaXMsUiksUXModGhpcyxWLCIiKSk7Z2V0IGNvbnRlbnRUeXBlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNvbnRlbnRUeXBlKHRlKXt0aGlzLiNjPXRlfSNkPShRcyh0aGlzLFcpLFFzKHRoaXMsQiwwKSk7Z2V0IGZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGZpbGVTaXplKHRlKXt0aGlzLiNkPXRlfSN1PShRcyh0aGlzLFUpLFFzKHRoaXMsRiwiIikpO2dldCBsYXN0TW9kaWZpZWQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbGFzdE1vZGlmaWVkKHRlKXt0aGlzLiN1PXRlfSNwPShRcyh0aGlzLGopLFFzKHRoaXMsbGUsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IodGUpe3RoaXMuI3A9dGV9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLHFlLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAucHJldmlldy1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5tZXRhLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50IGRlZXMtcHJldmlldyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50LmNvZGUtZWRpdG9yIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQuY29kZS1lZGl0b3IgZGVlcy1pbnB1dC1jb2RlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0MDQwNDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2UwZTBlMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICBib3JkZXItY29sb3I6ICNlZjQ0NDQ7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2I4MmY2OwogICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTEsIDE5MSwgMzYsIDAuMyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmJiZjI0OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgc3ZnIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvci1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgIGBdO3VwZGF0ZWQodGUpeyh0ZS5oYXMoIm9iamVjdEtleSIpfHx0ZS5oYXMoImJ1Y2tldE5hbWUiKSkmJih0aGlzLm9iamVjdEtleT90aGlzLmxvYWRPYmplY3QoKToodGhpcy5jb250ZW50PSIiLHRoaXMuY29udGVudFR5cGU9IiIsdGhpcy5lcnJvcj0iIix0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQ9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSkpfWFzeW5jIGxvYWRPYmplY3QoKXtpZighKCF0aGlzLm9iamVjdEtleXx8IXRoaXMuYnVja2V0TmFtZXx8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMTt0cnl7bGV0IHRlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmdldE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXkpO2lmKCF0ZSl7dGhpcy5lcnJvcj0iT2JqZWN0IG5vdCBmb3VuZCIsdGhpcy5sb2FkaW5nPSExO3JldHVybn10aGlzLmNvbnRlbnQ9dGUuY29udGVudHx8IiIsdGhpcy5jb250ZW50VHlwZT10ZS5jb250ZW50VHlwZXx8IiIsdGhpcy5maWxlU2l6ZT10ZS5zaXplfHwwLHRoaXMubGFzdE1vZGlmaWVkPXRlLmxhc3RNb2RpZmllZHx8IiIsdGhpcy5pc1RleHQoKSYmKHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD10aGlzLmdldFRleHRDb250ZW50KCkpfWNhdGNoKHRlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIG9iamVjdDoiLHRlKSx0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBvYmplY3QifXRoaXMubG9hZGluZz0hMX19Zm9ybWF0RGF0ZSh0ZSl7cmV0dXJuIHRlP25ldyBEYXRlKHRlKS50b0xvY2FsZVN0cmluZygpOiItIn1pc0ltYWdlKCl7cmV0dXJuIHRoaXMuY29udGVudFR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIil9aXNUZXh0KCl7cmV0dXJuIHRoaXMuY29udGVudFR5cGUuc3RhcnRzV2l0aCgidGV4dC8iKXx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi9qc29uInx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94bWwifHx0aGlzLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifWdldFRleHRDb250ZW50KCl7dHJ5e2xldCB0ZT1hdG9iKHRoaXMuY29udGVudCksZWU9bmV3IFVpbnQ4QXJyYXkodGUubGVuZ3RoKTtmb3IobGV0IGtlPTA7a2U8dGUubGVuZ3RoO2tlKyspZWVba2VdPXRlLmNoYXJDb2RlQXQoa2UpO3JldHVybiBuZXcgVGV4dERlY29kZXIoInV0Zi04IikuZGVjb2RlKGVlKX1jYXRjaHtyZXR1cm4iVW5hYmxlIHRvIGRlY29kZSBjb250ZW50In19YXN5bmMgaGFuZGxlRG93bmxvYWQoKXt0cnl7bGV0IHRlPW5ldyBCbG9iKFtVaW50OEFycmF5LmZyb20oYXRvYih0aGlzLmNvbnRlbnQpLFg9PlguY2hhckNvZGVBdCgwKSldLHt0eXBlOnRoaXMuY29udGVudFR5cGV9KSxlZT1VUkwuY3JlYXRlT2JqZWN0VVJMKHRlKSxrZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7a2UuaHJlZj1lZSxrZS5kb3dubG9hZD1ZYSh0aGlzLm9iamVjdEtleSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChrZSksa2UuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGtlKSxVUkwucmV2b2tlT2JqZWN0VVJMKGVlKX1jYXRjaCh0ZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgZG93bmxvYWRpbmc6Iix0ZSl9fWFzeW5jIGhhbmRsZURlbGV0ZSgpe2lmKHRoaXMuZGF0YVByb3ZpZGVyJiZjb25maXJtKGBEZWxldGUgIiR7WWEodGhpcy5vYmplY3RLZXkpfSI/YCkpdHJ5e2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9iamVjdC1kZWxldGVkIix7ZGV0YWlsOntrZXk6dGhpcy5vYmplY3RLZXl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2godGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlbGV0aW5nIG9iamVjdDoiLHRlKX19Z2V0TGFuZ3VhZ2UoKXtsZXQgdGU9dGhpcy5vYmplY3RLZXkuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiI7cmV0dXJue3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLG1qczoiamF2YXNjcmlwdCIsY2pzOiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixodG06Imh0bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixzYXNzOiJzY3NzIixsZXNzOiJsZXNzIixtZDoibWFya2Rvd24iLG1hcmtkb3duOiJtYXJrZG93biIseG1sOiJ4bWwiLHlhbWw6InlhbWwiLHltbDoieWFtbCIscHk6InB5dGhvbiIscmI6InJ1YnkiLGdvOiJnbyIscnM6InJ1c3QiLGphdmE6ImphdmEiLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIsY3M6ImNzaGFycCIscGhwOiJwaHAiLHNoOiJzaGVsbCIsYmFzaDoic2hlbGwiLHpzaDoic2hlbGwiLHNxbDoic3FsIixncmFwaHFsOiJncmFwaHFsIixncWw6ImdyYXBocWwiLGRvY2tlcmZpbGU6ImRvY2tlcmZpbGUiLHR4dDoicGxhaW50ZXh0In1bdGVdfHwicGxhaW50ZXh0In1oYW5kbGVDb250ZW50Q2hhbmdlKHRlKXtsZXQgZWU9dGUuZGV0YWlsO3RoaXMuaGFzQ2hhbmdlcz1lZSE9PXRoaXMub3JpZ2luYWxUZXh0Q29udGVudH1oYW5kbGVFZGl0KCl7dGhpcy5lZGl0aW5nPSEwfWhhbmRsZURpc2NhcmQoKXtsZXQgdGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWNvZGUiKTt0ZSYmKHRlLnZhbHVlPXRoaXMub3JpZ2luYWxUZXh0Q29udGVudCksdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMX1hc3luYyBoYW5kbGVTYXZlKCl7aWYoISghdGhpcy5oYXNDaGFuZ2VzfHx0aGlzLnNhdmluZ3x8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5zYXZpbmc9ITA7dHJ5e2xldCBlZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtY29kZSIpPy52YWx1ZT8/IiIsWD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZWUpLFo9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLlgpKTthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMub2JqZWN0S2V5LFosdGhpcy5jb250ZW50VHlwZSkmJih0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQ9ZWUsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSx0aGlzLmNvbnRlbnQ9Wil9Y2F0Y2godGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHNhdmluZyBvYmplY3Q6Iix0ZSl9dGhpcy5zYXZpbmc9ITF9fXJlbmRlcigpe3JldHVybiB0aGlzLm9iamVjdEtleT90aGlzLmxvYWRpbmc/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvcj93YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLXN0YXRlIj4ke3RoaXMuZXJyb3J9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctdGl0bGUiPiR7WWEodGhpcy5vYmplY3RLZXkpfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1tZXRhIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtaXRlbSI+JHt0aGlzLmNvbnRlbnRUeXBlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtaXRlbSI+JHtZUSh0aGlzLmZpbGVTaXplKX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7dGhpcy5mb3JtYXREYXRlKHRoaXMubGFzdE1vZGlmaWVkKX08L3NwYW4+CiAgICAgICAgICAgICR7dGhpcy5oYXNDaGFuZ2VzP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVuc2F2ZWQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1bnNhdmVkLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAgICAgVW5zYXZlZCBjaGFuZ2VzCiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGVudCAke3RoaXMuZWRpdGluZz8iY29kZS1lZGl0b3IiOiIifSI+CiAgICAgICAgICAke3RoaXMuZWRpdGluZz93YAogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtY29kZQogICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnR9CiAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2UoKX0KICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0ZT0+dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlKHRlKX0KICAgICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY29kZT4KICAgICAgICAgICAgICBgOnRoaXMuaXNUZXh0KCk/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtcHJldmlldwogICAgICAgICAgICAgICAgICAgIC50ZXh0Q29udGVudD0ke3RoaXMub3JpZ2luYWxUZXh0Q29udGVudH0KICAgICAgICAgICAgICAgICAgICAuZmlsZW5hbWU9JHtZYSh0aGlzLm9iamVjdEtleSl9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5nZXRMYW5ndWFnZSgpfQogICAgICAgICAgICAgICAgICAgIC5zaG93VG9vbGJhcj0keyEwfQogICAgICAgICAgICAgICAgICAgIC5zaG93RmlsZW5hbWU9JHshMX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLmJhc2U2ND0ke3RoaXMuY29udGVudH0KICAgICAgICAgICAgICAgICAgICAubWltZVR5cGU9JHt0aGlzLmNvbnRlbnRUeXBlfQogICAgICAgICAgICAgICAgICAgIC5maWxlbmFtZT0ke1lhKHRoaXMub2JqZWN0S2V5KX0KICAgICAgICAgICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHshMH0KICAgICAgICAgICAgICAgICAgICAuc2hvd0ZpbGVuYW1lPSR7ITF9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtcHJldmlldz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctYWN0aW9ucyI+CiAgICAgICAgICAke3RoaXMuZWRpdGluZz93YAogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biBzZWNvbmRhcnkiIEBjbGljaz0ke3RoaXMuaGFuZGxlRGlzY2FyZH0+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5oYXNDaGFuZ2VzPyJEaXNjYXJkIjoiQ2FuY2VsIn0KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0iYWN0aW9uLWJ0biBwcmltYXJ5IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNhdmV9CiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuc2F2aW5nfHwhdGhpcy5oYXNDaGFuZ2VzfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke3RoaXMuc2F2aW5nPyJTYXZpbmcuLi4iOiJTYXZlIn0KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICR7dGhpcy5pc1RleHQoKT93YDxidXR0b24gY2xhc3M9ImFjdGlvbi1idG4iIEBjbGljaz0ke3RoaXMuaGFuZGxlRWRpdH0+RWRpdDwvYnV0dG9uPmA6IiJ9CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIiBAY2xpY2s9JHt0aGlzLmhhbmRsZURvd25sb2FkfT5Eb3dubG9hZDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biBkYW5nZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlRGVsZXRlfT5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6IiAvPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE0IDIgMTQgOCAyMCA4IiAvPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPHA+U2VsZWN0IGEgZmlsZSB0byBwcmV2aWV3PC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFFzKHRoaXMsUSl9c3RhdGlje1FzKGEsdCl9fTtyZXR1cm4gaWU9YX0pKCl9KTt2YXIgdDEsQWksJGVzLHJsdD1nKCgpPT57cGUoKTtodCgpO2Z5YSgpO29sdCgpO25sdCgpO2xsdCgpO3QxPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxBaT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sJGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zdG9yYWdlLWJyb3dzZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3RvcmFnZUJyb3dzZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtZKCldLHk9W1koKV0sTj1bWSgpXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLHQxKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJkYXRhUHJvdmlkZXIiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChqLHVlKT0+e2ouZGF0YVByb3ZpZGVyPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LG8sbCksdDEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJidWNrZXROYW1lImluIGosImhhcyIpLGdldDppKGo9PmouYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5idWNrZXROYW1lPXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGQsdSksdDEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkNoYW5nZUV2ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJvbkNoYW5nZUV2ZW50ImluIGosImhhcyIpLGdldDppKGo9Pmoub25DaGFuZ2VFdmVudCwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai5vbkNoYW5nZUV2ZW50PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LGIsdiksdDEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4idmlld1R5cGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai52aWV3VHlwZSwiZ2V0Iiksc2V0OmkoKGosdWUpPT57ai52aWV3VHlwZT11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxtLGYpLHQxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iY3VycmVudFByZWZpeCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKChqLHVlKT0+e2ouY3VycmVudFByZWZpeD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxNLHopLHQxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InNlbGVjdGVkS2V5ImluIGosImhhcyIpLGdldDppKGo9Pmouc2VsZWN0ZWRLZXksImdldCIpLHNldDppKChqLHVlKT0+e2ouc2VsZWN0ZWRLZXk9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQyxfKSx0MSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InJlZnJlc2hLZXkiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5yZWZyZXNoS2V5LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJlZnJlc2hLZXk9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sJCxFKSx0MSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4icHJldmlld1dpZHRoImluIGosImhhcyIpLGdldDppKGo9PmoucHJldmlld1dpZHRoLCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnByZXZpZXdXaWR0aD11ZX0sInNldCIpfSxtZXRhZGF0YTpGfSxrLFMpLHQxKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNSZXNpemluZ1ByZXZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzUmVzaXppbmdQcmV2aWV3ImluIGosImhhcyIpLGdldDppKGo9PmouaXNSZXNpemluZ1ByZXZpZXcsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNSZXNpemluZ1ByZXZpZXc9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sUCxSKSx0MSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlY2VudENoYW5nZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJyZWNlbnRDaGFuZ2VDb3VudCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnJlY2VudENoYW5nZUNvdW50LCJnZXQiKSxzZXQ6aSgoaix1ZSk9PntqLnJlY2VudENoYW5nZUNvdW50PXVlfSwic2V0Iil9LG1ldGFkYXRhOkZ9LFYsVyksdDEodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTdHJlYW1Db25uZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzU3RyZWFtQ29ubmVjdGVkImluIGosImhhcyIpLGdldDppKGo9PmouaXNTdHJlYW1Db25uZWN0ZWQsImdldCIpLHNldDppKChqLHVlKT0+e2ouaXNTdHJlYW1Db25uZWN0ZWQ9dWV9LCJzZXQiKX0sbWV0YWRhdGE6Rn0sQixVKSx0MShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpGfSxudWxsLHQpLGhlPWE9ZS52YWx1ZSxGJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KX1zdGF0aWMgZGVtbz1oeWE7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1BaSh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoRil7dGhpcy4jZT1GfSN0PShBaSh0aGlzLGwpLEFpKHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoRil7dGhpcy4jdD1GfSNhPShBaSh0aGlzLHUpLEFpKHRoaXMsYixudWxsKSk7Z2V0IG9uQ2hhbmdlRXZlbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb25DaGFuZ2VFdmVudChGKXt0aGlzLiNhPUZ9I3M9KEFpKHRoaXMsdiksQWkodGhpcyxtLCJjb2x1bW5zIikpO2dldCB2aWV3VHlwZSgpe3JldHVybiB0aGlzLiNzfXNldCB2aWV3VHlwZShGKXt0aGlzLiNzPUZ9I2k9KEFpKHRoaXMsZiksQWkodGhpcyxNLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VycmVudFByZWZpeChGKXt0aGlzLiNpPUZ9I3I9KEFpKHRoaXMseiksQWkodGhpcyxDLCIiKSk7Z2V0IHNlbGVjdGVkS2V5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkS2V5KEYpe3RoaXMuI3I9Rn0jbz0oQWkodGhpcyxfKSxBaSh0aGlzLCQsMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI299c2V0IHJlZnJlc2hLZXkoRil7dGhpcy4jbz1GfSNuPShBaSh0aGlzLEUpLEFpKHRoaXMsayw3MDApKTtnZXQgcHJldmlld1dpZHRoKCl7cmV0dXJuIHRoaXMuI259c2V0IHByZXZpZXdXaWR0aChGKXt0aGlzLiNuPUZ9I2w9KEFpKHRoaXMsUyksQWkodGhpcyxQLCExKSk7Z2V0IGlzUmVzaXppbmdQcmV2aWV3KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzUmVzaXppbmdQcmV2aWV3KEYpe3RoaXMuI2w9Rn0jYz0oQWkodGhpcyxSKSxBaSh0aGlzLFYsMCkpO2dldCByZWNlbnRDaGFuZ2VDb3VudCgpe3JldHVybiB0aGlzLiNjfXNldCByZWNlbnRDaGFuZ2VDb3VudChGKXt0aGlzLiNjPUZ9I2Q9KEFpKHRoaXMsVyksQWkodGhpcyxCLCExKSk7Z2V0IGlzU3RyZWFtQ29ubmVjdGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzU3RyZWFtQ29ubmVjdGVkKEYpe3RoaXMuI2Q9Rn1jaGFuZ2VVbnN1YnNjcmliZT0oQWkodGhpcyxVKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMscWUsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmJyb3dzZXItY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM5OTkiKX07CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW0gewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LXRvZ2dsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnZpZXctYnRuIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0bjpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLnZpZXctYnRuLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmNvbnRlbnQuaGFzLXByZXZpZXcgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDRweCB2YXIoLS1wcmV2aWV3LXdpZHRoLCA3MDBweCk7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtZGl2aWRlciB7CiAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAucmVzaXplLWRpdmlkZXI6aG92ZXIsCiAgICAgIC5yZXNpemUtZGl2aWRlci5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5tYWluLXZpZXcgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctcGFuZWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmNvbnRlbnQsCiAgICAgICAgLmNvbnRlbnQuaGFzLXByZXZpZXcgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAucHJldmlldy1wYW5lbCwKICAgICAgICAucmVzaXplLWRpdmlkZXIgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zdHJlYW0tc3RhdHVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAuc3RyZWFtLWRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjODg4Iil9OwogICAgICB9CgogICAgICAuc3RyZWFtLWRvdC5jb25uZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIC5jaGFuZ2UtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLmNoYW5nZS1pbmRpY2F0b3IucHVsc2UgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2Utb3JhbmdlIDFzIGVhc2UtaW4tb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlLW9yYW5nZSB7CiAgICAgICAgMCUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC40KTsgfQogICAgICAgIDEwMCUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKTsgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy51bnN1YnNjcmliZUZyb21DaGFuZ2VzKCl9cmVmcmVzaCgpe3RoaXMucmVmcmVzaEtleSsrfXNldFZpZXdUeXBlKEYpe3RoaXMudmlld1R5cGU9Rn1uYXZpZ2F0ZVRvUHJlZml4KEYpe3RoaXMuY3VycmVudFByZWZpeD1GLHRoaXMuc2VsZWN0ZWRLZXk9IiJ9aGFuZGxlS2V5U2VsZWN0ZWQoRil7dGhpcy5zZWxlY3RlZEtleT1GLmRldGFpbC5rZXl9aGFuZGxlTmF2aWdhdGUoRil7dGhpcy5uYXZpZ2F0ZVRvUHJlZml4KEYuZGV0YWlsLnByZWZpeCl9aGFuZGxlT2JqZWN0RGVsZXRlZChGKXt0aGlzLnNlbGVjdGVkS2V5PSIiLHRoaXMucmVmcmVzaEtleSsrfXVwZGF0ZWQoRil7Ri5oYXMoImJ1Y2tldE5hbWUiKSYmKHRoaXMuc2VsZWN0ZWRLZXk9IiIsdGhpcy5jdXJyZW50UHJlZml4PSIiLHRoaXMucmVjZW50Q2hhbmdlQ291bnQ9MCx0aGlzLnVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKSx0aGlzLnN1YnNjcmliZVRvQ2hhbmdlcygpKSxGLmhhcygib25DaGFuZ2VFdmVudCIpJiYodGhpcy51bnN1YnNjcmliZUZyb21DaGFuZ2VzKCksdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKSl9c3Vic2NyaWJlVG9DaGFuZ2VzKCl7aWYoIXRoaXMub25DaGFuZ2VFdmVudCl7dGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMTtyZXR1cm59dHJ5e3RoaXMuY2hhbmdlVW5zdWJzY3JpYmU9dGhpcy5vbkNoYW5nZUV2ZW50KEY9Pnt0aGlzLmhhbmRsZUNoYW5nZShGKX0pLHRoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITB9Y2F0Y2goRil7Y29uc29sZS53YXJuKCJbU3RvcmFnZUJyb3dzZXJdIEZhaWxlZCB0byBzdWJzY3JpYmUgdG8gY2hhbmdlczoiLEYpLHRoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITF9fXVuc3Vic2NyaWJlRnJvbUNoYW5nZXMoKXt0aGlzLmNoYW5nZVVuc3Vic2NyaWJlJiYodGhpcy5jaGFuZ2VVbnN1YnNjcmliZSgpLHRoaXMuY2hhbmdlVW5zdWJzY3JpYmU9bnVsbCksdGhpcy5pc1N0cmVhbUNvbm5lY3RlZD0hMX1oYW5kbGVDaGFuZ2UoRil7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudCsrLHRoaXMucmVmcmVzaEtleSsrfXN0YXJ0UHJldmlld1Jlc2l6ZT1pKEY9PntGLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc1Jlc2l6aW5nUHJldmlldz0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUHJldmlld1Jlc2l6ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5lbmRQcmV2aWV3UmVzaXplKX0sInN0YXJ0UHJldmlld1Jlc2l6ZSIpO2hhbmRsZVByZXZpZXdSZXNpemU9aShGPT57aWYoIXRoaXMuaXNSZXNpemluZ1ByZXZpZXcpcmV0dXJuO2xldCBqPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmNvbnRlbnQiKTtpZighailyZXR1cm47bGV0IHVlPWouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9TWF0aC5taW4oTWF0aC5tYXgodWUucmlnaHQtRi5jbGllbnRYLDI1MCksMWUzKTt0aGlzLnByZXZpZXdXaWR0aD1sZX0sImhhbmRsZVByZXZpZXdSZXNpemUiKTtlbmRQcmV2aWV3UmVzaXplPWkoKCk9Pnt0aGlzLmlzUmVzaXppbmdQcmV2aWV3PSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVQcmV2aWV3UmVzaXplKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmVuZFByZXZpZXdSZXNpemUpfSwiZW5kUHJldmlld1Jlc2l6ZSIpO3JlbmRlcigpe2xldCBGPXRoaXMuY3VycmVudFByZWZpeD90aGlzLmN1cnJlbnRQcmVmaXguc3BsaXQoIi8iKS5maWx0ZXIoQm9vbGVhbik6W107cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJyb3dzZXItY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWIiPgogICAgICAgICAgICA8c3BhbgogICAgICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVUb1ByZWZpeCgiIil9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAke0YubWFwKChqLHVlKT0+e2xldCBsZT1GLnNsaWNlKDAsdWUrMSkuam9pbigiLyIpKyIvIjtyZXR1cm4gd2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJicmVhZGNydW1iLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9QcmVmaXgobGUpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke2p9CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLm9uQ2hhbmdlRXZlbnQ/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RyZWFtLXN0YXR1cyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0cmVhbS1kb3QgJHt0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPyJjb25uZWN0ZWQiOiIifSI+PC9zcGFuPgogICAgICAgICAgICAgICR7dGhpcy5pc1N0cmVhbUNvbm5lY3RlZD8iTGl2ZSI6Ik9mZmxpbmUifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3RoaXMucmVjZW50Q2hhbmdlQ291bnQ+MD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhbmdlLWluZGljYXRvciBwdWxzZSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudH0gY2hhbmdlJHt0aGlzLnJlY2VudENoYW5nZUNvdW50PjE/InMiOiIifQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXctdG9nZ2xlIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ2aWV3LWJ0biAke3RoaXMudmlld1R5cGU9PT0iY29sdW1ucyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNldFZpZXdUeXBlKCJjb2x1bW5zIil9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBDb2x1bW5zCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InZpZXctYnRuICR7dGhpcy52aWV3VHlwZT09PSJrZXlzIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2V0Vmlld1R5cGUoImtleXMiKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIExpc3QKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCAke3RoaXMuc2VsZWN0ZWRLZXk/Imhhcy1wcmV2aWV3IjoiIn0iIHN0eWxlPSItLXByZXZpZXctd2lkdGg6ICR7dGhpcy5wcmV2aWV3V2lkdGh9cHgiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi12aWV3Ij4KICAgICAgICAgICAgJHt0aGlzLnZpZXdUeXBlPT09ImNvbHVtbnMiP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXN0b3JhZ2UtY29sdW1ucwogICAgICAgICAgICAgICAgICAgIC5kYXRhUHJvdmlkZXI9JHt0aGlzLmRhdGFQcm92aWRlcn0KICAgICAgICAgICAgICAgICAgICAuYnVja2V0TmFtZT0ke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgICAgICAgICAuY3VycmVudFByZWZpeD0ke3RoaXMuY3VycmVudFByZWZpeH0KICAgICAgICAgICAgICAgICAgICAucmVmcmVzaEtleT0ke3RoaXMucmVmcmVzaEtleX0KICAgICAgICAgICAgICAgICAgICBAa2V5LXNlbGVjdGVkPSR7dGhpcy5oYW5kbGVLZXlTZWxlY3RlZH0KICAgICAgICAgICAgICAgICAgICBAbmF2aWdhdGU9JHt0aGlzLmhhbmRsZU5hdmlnYXRlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2UtY29sdW1ucz4KICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtc3RvcmFnZS1rZXlzCiAgICAgICAgICAgICAgICAgICAgLmRhdGFQcm92aWRlcj0ke3RoaXMuZGF0YVByb3ZpZGVyfQogICAgICAgICAgICAgICAgICAgIC5idWNrZXROYW1lPSR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICAgICAgICAgIC5jdXJyZW50UHJlZml4PSR7dGhpcy5jdXJyZW50UHJlZml4fQogICAgICAgICAgICAgICAgICAgIC5yZWZyZXNoS2V5PSR7dGhpcy5yZWZyZXNoS2V5fQogICAgICAgICAgICAgICAgICAgIEBrZXktc2VsZWN0ZWQ9JHt0aGlzLmhhbmRsZUtleVNlbGVjdGVkfQogICAgICAgICAgICAgICAgICAgIEBuYXZpZ2F0ZT0ke3RoaXMuaGFuZGxlTmF2aWdhdGV9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtc3RvcmFnZS1rZXlzPgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5zZWxlY3RlZEtleT93YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWRpdmlkZXIgJHt0aGlzLmlzUmVzaXppbmdQcmV2aWV3PyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuc3RhcnRQcmV2aWV3UmVzaXplfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1wYW5lbCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLXN0b3JhZ2UtcHJldmlldwogICAgICAgICAgICAgICAgICAgIC5kYXRhUHJvdmlkZXI9JHt0aGlzLmRhdGFQcm92aWRlcn0KICAgICAgICAgICAgICAgICAgICAuYnVja2V0TmFtZT0ke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgICAgICAgICAub2JqZWN0S2V5PSR7dGhpcy5zZWxlY3RlZEtleX0KICAgICAgICAgICAgICAgICAgICBAb2JqZWN0LWRlbGV0ZWQ9JHt0aGlzLmhhbmRsZU9iamVjdERlbGV0ZWR9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtc3RvcmFnZS1wcmV2aWV3PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tBaShhLHQpfX07cmV0dXJuIGhlPWF9KSgpfSk7dmFyIG15YT1nKCgpPT57fSk7dmFyIGd5YT1nKCgpPT57cmx0KCk7b2x0KCk7bmx0KCk7bGx0KCk7bXlhKCk7UVEoKX0pO3ZhciBieWE9ZygoKT0+e295YSgpO3V5YSgpO0hudCgpO3B5YSgpO2d5YSgpfSk7dmFyIEpRLGp1LERlcyxhMmU9ZygoKT0+e3BlKCk7aHQoKTtHYSgpO0pRPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxqdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sRGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1hY3Rpb25iYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0FjdGlvbmJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1koKV0scD1bWSgpXSxjPVtZKCldLHg9W1koKV0sSlEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50QmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50QmFyImluIHosImhhcyIpLGdldDppKHo9PnouY3VycmVudEJhciwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmN1cnJlbnRCYXI9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLEpRKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZVJlbWFpbmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGltZVJlbWFpbmluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpbWVSZW1haW5pbmcsImdldCIpLHNldDppKCh6LE4pPT57ei50aW1lUmVtYWluaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxKUSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dyZXNzUGVyY2VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4icHJvZ3Jlc3NQZXJjZW50ImluIHosImhhcyIpLGdldDppKHo9PnoucHJvZ3Jlc3NQZXJjZW50LCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oucHJvZ3Jlc3NQZXJjZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sYix2KSxKUSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNWaXNpYmxlImluIHosImhhcyIpLGdldDppKHo9PnouaXNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouaXNWaXNpYmxlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxKUShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siLCJPdmVybGF5Il07c3RhdGljIGRlbW89aSgoKT0+e2xldCBNPWkoXz0+Xy5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoIi5kZW1vLWNvbnRhaW5lciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWFjdGlvbmJhciIpLCJnZXRBY3Rpb25iYXIiKTtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmRlbW8tY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGVudCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7aShhc3luYyBfPT57bGV0IE89TShfKTtpZighTylyZXR1cm47bGV0ICQ9YXdhaXQgTy5zaG93KHttZXNzYWdlOiJGaWxlIGNoYW5nZWQgZXh0ZXJuYWxseS4gUmVsb2FkPyIsdHlwZToid2FybmluZyIsaWNvbjoibHVjaWRlOmFsZXJ0VHJpYW5nbGUiLGFjdGlvbnM6W3tpZDoicmVsb2FkIixsYWJlbDoiUmVsb2FkIixwcmltYXJ5OiEwfSx7aWQ6Imlnbm9yZSIsbGFiZWw6Iklnbm9yZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjo1ZTMsZGVmYXVsdEFjdGlvbklkOiJyZWxvYWQifSxkaXNtaXNzaWJsZTohMH0pO2NvbnNvbGUubG9nKCJBY3Rpb24gYmFyIHJlc3VsdDoiLCQpfSwic2hvd0FjdGlvbkJhciIpfT5XYXJuaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtpKGFzeW5jIF89PntsZXQgTz1NKF8pO2lmKCFPKXJldHVybjtsZXQgJD1hd2FpdCBPLnNob3coe21lc3NhZ2U6IlByb2Nlc3MgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEiLHR5cGU6ImVycm9yIixpY29uOiJsdWNpZGU6eENpcmNsZSIsYWN0aW9uczpbe2lkOiJyZXRyeSIsbGFiZWw6IlJldHJ5IixwcmltYXJ5OiEwfSx7aWQ6ImRpc21pc3MiLGxhYmVsOiJEaXNtaXNzIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImRpc21pc3MifX0pO2NvbnNvbGUubG9nKCJFcnJvciBiYXIgcmVzdWx0OiIsJCl9LCJzaG93RXJyb3JCYXIiKX0+RXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2koYXN5bmMgXz0+e2xldCBPPU0oXyk7aWYoIU8pcmV0dXJuO2xldCAkPWF3YWl0IE8uc2hvdyh7bWVzc2FnZToiU2F2ZSBjaGFuZ2VzIGJlZm9yZSBjbG9zaW5nPyIsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb25zOlt7aWQ6InNhdmUiLGxhYmVsOiJTYXZlIixwcmltYXJ5OiEwfSx7aWQ6ImRpc2NhcmQiLGxhYmVsOiJEaXNjYXJkIn0se2lkOiJjYW5jZWwiLGxhYmVsOiJDYW5jZWwifV19KTtjb25zb2xlLmxvZygiUXVlc3Rpb24gYmFyIHJlc3VsdDoiLCQpfSwic2hvd1F1ZXN0aW9uQmFyIil9PlF1ZXN0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1hY3Rpb25iYXI+PC9kZWVzLWFjdGlvbmJhcj4KICAgICAgPC9kaXY+CiAgICBgfSwiZGVtbyIpO3F1ZXVlPVtdOyNlPWp1KHRoaXMsbyxudWxsKTtnZXQgY3VycmVudEJhcigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50QmFyKE0pe3RoaXMuI2U9TX0jdD0oanUodGhpcyxsKSxqdSh0aGlzLGQsMCkpO2dldCB0aW1lUmVtYWluaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpbWVSZW1haW5pbmcoTSl7dGhpcy4jdD1NfSNhPShqdSh0aGlzLHUpLGp1KHRoaXMsYiwxMDApKTtnZXQgcHJvZ3Jlc3NQZXJjZW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHByb2dyZXNzUGVyY2VudChNKXt0aGlzLiNhPU19I3M9KGp1KHRoaXMsdiksanUodGhpcyxtLCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCBpc1Zpc2libGUoTSl7dGhpcy4jcz1NfXRpbWVvdXRJbnRlcnZhbD0oanUodGhpcyxmKSxudWxsKTtjdXJyZW50UmVzb2x2ZT1udWxsO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25iYXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4ycyBlYXNlLW91dDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItaXRlbSB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25iYXItY29udGVudCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE4JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBsaW5lYXI7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA1MCUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwucXVlc3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogMzJweDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2Utc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmluZm8gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLnF1ZXN0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODUlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zLXNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMzAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDE4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA1NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0MCUpIiwiaHNsKDM4IDkyJSA0NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5lcnJvcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA0NSUpIiwiaHNsKDAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkucXVlc3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDQ1JSkiLCJoc2woMjcwIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY291bnRkb3duIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIC5kaXNtaXNzLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNtaXNzLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMiUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBNPXRoaXMuY3VycmVudEJhcix6PU0/LnR5cGV8fCJpbmZvIixOPU0/LnRpbWVvdXQmJnRoaXMudGltZVJlbWFpbmluZz4wO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItaXRlbSI+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uYmFyLWNvbnRlbnQiPgogICAgICAgICAgJHtNP3dgCiAgICAgICAgICAgICR7Tj93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9ncmVzcy1iYXItZmlsbCAke3p9IgogICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7dGhpcy5wcm9ncmVzc1BlcmNlbnR9JSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZS1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7TS5pY29uP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibWVzc2FnZS1pY29uICR7en0iCiAgICAgICAgICAgICAgICAgICAgLmljb249JHtNLmljb259CiAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE2IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2UtdGV4dCI+JHtNLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMtc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAke00uYWN0aW9ucy5tYXAoQz0+dGhpcy5yZW5kZXJBY3Rpb25CdXR0b24oQyxNLE4pKX0KICAgICAgICAgICAgICAgICR7TS5kaXNtaXNzaWJsZT93YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImRpc21pc3MtYnV0dG9uIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURpc21pc3MoKX0KICAgICAgICAgICAgICAgICAgICB0aXRsZT0iRGlzbWlzcyIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbkJ1dHRvbihNLHosTil7bGV0IEM9TS5wcmltYXJ5LF89ei50eXBlfHwiaW5mbyIsTz16LnRpbWVvdXQ/LmRlZmF1bHRBY3Rpb25JZD09PU0uaWQsJD1OJiZPLEU9TWF0aC5jZWlsKHRoaXMudGltZVJlbWFpbmluZy8xZTMpO3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtDP2BwcmltYXJ5ICR7X31gOiJzZWNvbmRhcnkifSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oTS5pZCwhMSl9CiAgICAgID4KICAgICAgICAke00uaWNvbj93YAogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke00uaWNvbn0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuPiR7TS5sYWJlbH08L3NwYW4+CiAgICAgICAgJHskP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iY291bnRkb3duIj4oJHtFfXMpPC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgIDwvYnV0dG9uPgogICAgYH1hc3luYyBzaG93KE0pe3JldHVybiBuZXcgUHJvbWlzZSh6PT57dGhpcy5xdWV1ZS5wdXNoKHtvcHRpb25zOk0scmVzb2x2ZTp6fSksdGhpcy5jdXJyZW50QmFyfHx0aGlzLnByb2Nlc3NRdWV1ZSgpfSl9ZGlzbWlzcygpe3RoaXMuaGFuZGxlRGlzbWlzcygpfWNsZWFyUXVldWUoKXtmb3IobGV0IE0gb2YgdGhpcy5xdWV1ZSlNLnJlc29sdmUoe2FjdGlvbklkOiJkaXNtaXNzZWQiLHRpbWVkT3V0OiExfSk7dGhpcy5xdWV1ZT1bXX1hc3luYyBoaWRlQ3VycmVudEJhcigpe3RoaXMuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpLHRoaXMuaXNWaXNpYmxlPSExLGF3YWl0IG5ldyBQcm9taXNlKE09PnNldFRpbWVvdXQoTSwyMjApKSx0aGlzLmN1cnJlbnRCYXI9bnVsbCx0aGlzLmN1cnJlbnRSZXNvbHZlPW51bGx9YXN5bmMgcHJvY2Vzc1F1ZXVlKCl7aWYodGhpcy5xdWV1ZS5sZW5ndGg9PT0wKXt0aGlzLmhpZGVDdXJyZW50QmFyKCk7cmV0dXJufWxldCBNPXRoaXMucXVldWUuc2hpZnQoKTt0aGlzLmN1cnJlbnRCYXI9TS5vcHRpb25zLHRoaXMuY3VycmVudFJlc29sdmU9TS5yZXNvbHZlLHRoaXMuaXNWaXNpYmxlPSEwLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KSxNLm9wdGlvbnMudGltZW91dCYmdGhpcy5zdGFydFRpbWVvdXQoTS5vcHRpb25zLnRpbWVvdXQuZHVyYXRpb24sTS5vcHRpb25zLnRpbWVvdXQuZGVmYXVsdEFjdGlvbklkKX1zdGFydFRpbWVvdXQoTSx6KXt0aGlzLnRpbWVSZW1haW5pbmc9TSx0aGlzLnByb2dyZXNzUGVyY2VudD0xMDA7bGV0IE49RGF0ZS5ub3coKSxDPTUwO3RoaXMudGltZW91dEludGVydmFsPXNldEludGVydmFsKCgpPT57bGV0IF89RGF0ZS5ub3coKS1OO3RoaXMudGltZVJlbWFpbmluZz1NYXRoLm1heCgwLE0tXyksdGhpcy5wcm9ncmVzc1BlcmNlbnQ9dGhpcy50aW1lUmVtYWluaW5nL00qMTAwLHRoaXMudGltZVJlbWFpbmluZzw9MCYmKHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmhhbmRsZUFjdGlvbih6LCEwKSl9LEMpfWNsZWFyVGltZW91dEludGVydmFsKCl7dGhpcy50aW1lb3V0SW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMudGltZW91dEludGVydmFsKSx0aGlzLnRpbWVvdXRJbnRlcnZhbD1udWxsKX1oYW5kbGVBY3Rpb24oTSx6KXt0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCksdGhpcy5jdXJyZW50UmVzb2x2ZSYmdGhpcy5jdXJyZW50UmVzb2x2ZSh7YWN0aW9uSWQ6TSx0aW1lZE91dDp6fSksdGhpcy5wcm9jZXNzUXVldWUoKX1oYW5kbGVEaXNtaXNzKCl7dGhpcy5oYW5kbGVBY3Rpb24oImRpc21pc3NlZCIsITEpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCl9c3RhdGlje2p1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciB2eWE9ZygoKT0+e30pO3ZhciB4eWE9ZygoKT0+e2EyZSgpO3Z5YSgpfSk7dmFyIHl5YSx3eWE9ZygoKT0+e3BlKCk7eXlhPWkoKCk9PndgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgIDxkZWVzLWJhZGdlIC50ZXh0PSR7IkRlZmF1bHQifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnRleHQ9JHsiUHJpbWFyeSJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InN1Y2Nlc3MifSAudGV4dD0keyJTdWNjZXNzIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsid2FybmluZyJ9IC50ZXh0PSR7Ildhcm5pbmcifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJlcnJvciJ9IC50ZXh0PSR7IkVycm9yIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsicHJpbWFyeSJ9IC5yb3VuZGVkPSR7ITB9IC50ZXh0PSR7IlJvdW5kZWQifT48L2RlZXMtYmFkZ2U+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgczJlLG83LExlcyxreWE9ZygoKT0+e3BlKCk7a3QoKTt3eWEoKTtodCgpO3MyZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbzc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LExlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtYmFkZ2UiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0JhZGdlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHMyZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InR5cGUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi50eXBlLCJnZXQiKSxzZXQ6aSgoZix5KT0+e2YudHlwZT15fSwic2V0Iil9LG1ldGFkYXRhOm19LG8sbCksczJlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4idGV4dCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnRleHQsImdldCIpLHNldDppKChmLHkpPT57Zi50ZXh0PXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sZCx1KSxzMmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3VuZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJyb3VuZGVkImluIGYsImhhcyIpLGdldDppKGY9PmYucm91bmRlZCwiZ2V0Iiksc2V0OmkoKGYseSk9PntmLnJvdW5kZWQ9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLHMyZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPXl5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9bzcodGhpcyxvLCJkZWZhdWx0Iik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShtKXt0aGlzLiNlPW19I3Q9KG83KHRoaXMsbCksbzcodGhpcyxkLCIiKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChtKXt0aGlzLiN0PW19I2E9KG83KHRoaXMsdSksbzcodGhpcyxiLCExKSk7Z2V0IHJvdW5kZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcm91bmRlZChtKXt0aGlzLiNhPW19Y29uc3RydWN0b3IoKXtzdXBlcigpLG83KHRoaXMsdiksdGEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmJhZGdlLnJvdW5kZWQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMmU3ZDMyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogI2VkNmMwMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UgJHt0aGlzLnR5cGV9ICR7dGhpcy5yb3VuZGVkPyJyb3VuZGVkIjoiIn0iPgogICAgICAgICR7dGhpcy50ZXh0fQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje283KGEsdCl9fTtyZXR1cm4geD1hfSkoKX0pO3ZhciBTeWE9ZygoKT0+e2t5YSgpfSk7dmFyIF95YSxNeWE9ZygoKT0+e3BlKCk7X3lhPWkoKCk9PndgCiAgPGRlZXMtaGludD48L2RlZXMtaGludD4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB6eWEsY2x0LEVlcyxDeWE9ZygoKT0+e3BlKCk7a3QoKTtNeWEoKTtodCgpO3p5YT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sY2x0PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxFZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWhpbnQiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc0hpbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSx6eWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJ0eXBlImluIHUsImhhcyIpLGdldDppKHU9PnUudHlwZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1LnR5cGU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLHp5YShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPV95YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9Y2x0KHRoaXMsbywiaW5mbyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoZCl7dGhpcy4jZT1kfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxjbHQodGhpcyxsKSx0YS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgIDxkaXYgY2xhc3M9Im1haW5ib3giPjwvZGl2PiBgfXN0YXRpY3tjbHQoYSx0KX19O3JldHVybiBwPWF9KSgpfSk7dmFyIFR5YT1nKCgpPT57Q3lhKCl9KTt2YXIgJHlhLER5YT1nKCgpPT57cGUoKTtJdCgpOyR5YT1pKCgpPT57bGV0IHM9W1siUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6IiwiVmVyaWZ5aW5nIGNoZWNrc3VtIl0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSIsIkV4dHJhY3RpbmcgcmVsZWFzZSBidW5kbGUiXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6IiwiVmVyaWZ5aW5nIGNoZWNrc3VtIiwiRXh0cmFjdGluZyByZWxlYXNlIGJ1bmRsZSIsIlJlc3RhcnRpbmcgYXBwbGljYXRpb24iXV0sZT1pKHQ9PnQ+PTEwMD8iVXBsb2FkIGNvbXBsZXRlLiBGaW5hbGl6aW5nIHBhY2thZ2UgbWFuaWZlc3QuLi4iOnQ+PTgyPyJWZXJpZnlpbmcgY2hlY2tzdW1zIGJlZm9yZSBoYW5kb2ZmLi4uIjp0Pj01NT8iVXBsb2FkaW5nIHRodW1ibmFpbHMgdG8gZWRnZSBjYWNoZS4uLiI6dD49MjU/IlN0cmVhbWluZyBzb3VyY2UgZmlsZXMgdG8gdGhlIHJlbW90ZSB3b3JrZXIuLi4iOiJQcmVwYXJpbmcgYXJjaGl2ZSBhbmQgZGVwZW5kZW5jeSBncmFwaC4uLiIsImdldFVwbG9hZFN0YXR1cyIpO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiI2xpdmUtcHJvZ3Jlc3MiKSxyPXQucXVlcnlTZWxlY3RvcigiI3Rlcm1pbmFsLXByb2dyZXNzIiksbj10O2lmKCFhfHwhcilyZXR1cm47bi5fX3Byb2dyZXNzYmFyRGVtb0ludGVydmFsSWQmJndpbmRvdy5jbGVhckludGVydmFsKG4uX19wcm9ncmVzc2JhckRlbW9JbnRlcnZhbElkKTtsZXQgbz0xMixsPTAscD1pKCgpPT57YS5wZXJjZW50YWdlPW8sYS5zdGF0dXNUZXh0PWUobyksci50ZXJtaW5hbExpbmVzPVsuLi5zW2xdXSxyLnBlcmNlbnRhZ2U9TWF0aC5taW4oMTAwLChsKzEpKjIwKSxyLmluZGV0ZXJtaW5hdGU9bDxzLmxlbmd0aC0xLG89bz49MTAwPzEyOk1hdGgubWluKDEwMCxvKzExKSxsPWw+PXMubGVuZ3RoLTE/MDpsKzF9LCJ1cGRhdGVEZW1vIik7cCgpLG4uX19wcm9ncmVzc2JhckRlbW9JbnRlcnZhbElkPXdpbmRvdy5zZXRJbnRlcnZhbChwLDE0MDApfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtb0ludHJvIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA3MjBweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSAzMCUpIiwiaHNsKDIxNSAxOCUgNzYlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUdyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgICAgZ2FwOiAxOHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjc4KSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wNCkiKX07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEwIDIyJSA4NiUpIiwiaHNsKDIxMCAxMCUgMTglKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgICAgIH0KCiAgICAgICAgICAuc2hvd2Nhc2VDYXJkLndpZGUgewogICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgaDMgewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIH0KCiAgICAgICAgICAuc2hvd2Nhc2VDYXJkIHAgewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNCUgNDAlKSIsImhzbCgyMTUgMTAlIDY2JSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgICB9CgogICAgICAgICAgLnByb2dyZXNzU3RhY2sgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDE0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmNvZGVMYWJlbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNCUgNDQlKSIsImhzbCgyMTUgMTAlIDcwJSkiKX07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICB9CgogICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgICB9CgogICAgICAgICAgICAuc2hvd2Nhc2VDYXJkLndpZGUgewogICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vSW50cm8iPgogICAgICAgICAgPGNvZGU+ZGVlcy1wcm9ncmVzc2JhcjwvY29kZT4gY2FuIG5vdyBwYWlyIGEgY2xhc3NpYyBwcm9ncmVzcyBiYXIgd2l0aCBhIGZpeGVkLWhlaWdodCBzdGF0dXMgYXJlYS4gVXNlIHNpbXBsZSBzdGF0dXMgdGV4dCBmb3IgY2xlYXIgdXNlci1mYWNpbmcgdXBkYXRlcyBvciBzd2l0Y2ggdG8gdGVybWluYWwtbGlrZSBsaW5lcyB3aGVuIHlvdSB3YW50IHJlY2VudCBzdGVwcyB0byBzdGF5IHZpc2libGUgd2l0aG91dCBjYXVzaW5nIGxheW91dCBqdW1wcy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaG93Y2FzZUdyaWQiPgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+RGV0ZXJtaW5hdGU8L2Rpdj4KICAgICAgICAgICAgPGgzPlBlcmNlbnRhZ2UgcGx1cyBjdXJyZW50IHRhc2s8L2gzPgogICAgICAgICAgICA8cD5Vc2UgYSBsYWJlbCwgYSBwZXJjZW50YWdlLCBhbmQgb25lIHNob3J0IHN0YXR1cyBsaW5lIHdoZW4gdGhlIHdvcmsgaXMgbWVhc3VyYWJsZS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iTWVkaWEgdXBsb2FkIgogICAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHs2OH0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IlVwbG9hZGluZyB0aHVtYm5haWxzIHRvIGVkZ2UgY2FjaGUuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IkFzc2V0IHN5bmMiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezEwMH0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IkFsbCBmaWxlcyBhcmUgc3luY2VkIGFuZCBhdmFpbGFibGUuIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkluZGV0ZXJtaW5hdGU8L2Rpdj4KICAgICAgICAgICAgPGgzPlNwaW5uZXItc3R5bGUgdGV4dCBpbmRpY2F0b3I8L2gzPgogICAgICAgICAgICA8cD5XaGVuIHRoZXJlIGlzIG5vIHRydXN0d29ydGh5IHBlcmNlbnRhZ2UgeWV0LCBrZWVwIHRoZSBiYXIgbW92aW5nIGFuZCBsZXQgdGhlIHRleHQgZXhwbGFpbiB3aGF0IGlzIGhhcHBlbmluZy48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRGVwZW5kZW5jeSBpbnN0YWxsIgogICAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHshMH0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IkRvd25sb2FkaW5nIHBhY2thZ2UgbWV0YWRhdGEuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IlF1ZXVlZCBqb2IiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezMyfQogICAgICAgICAgICAgICAgLnNob3dQZXJjZW50YWdlPSR7ITF9CiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJXYWl0aW5nIGZvciBhIHdvcmtlciBzbG90IHRvIGJlY29tZSBhdmFpbGFibGUuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCB3aWRlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5UZXJtaW5hbCBMaW5lczwvZGl2PgogICAgICAgICAgICA8aDM+Rml4ZWQtaGVpZ2h0IHRlcm1pbmFsLXN0eWxlIHN0YXR1cyBvdXRwdXQ8L2gzPgogICAgICAgICAgICA8cD5UaGUgcGFuZWwgc3RheXMgdGhlIHNhbWUgaGVpZ2h0IHdoaWxlIHRoZSBsYXRlc3Qgc3RlcCBzdGF5cyB2aXNpYmxlLiBUaGlzIGlzIHVzZWZ1bCBmb3IgdXBkYXRlIGZsb3dzLCBkb3dubG9hZHMsIGFuZCBzdGFnZWQgYmFja2dyb3VuZCB3b3JrLjwvcD4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICBpZD0idGVybWluYWwtcHJvZ3Jlc3MiCiAgICAgICAgICAgICAgbGFiZWw9IlJlbGVhc2UgYnVuZGxlIgogICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MjB9CiAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHshMH0KICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezR9CiAgICAgICAgICAgICAgLnRlcm1pbmFsTGluZXM9JHtzWzBdfQogICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkxpdmUgRGVtbzwvZGl2PgogICAgICAgICAgICA8aDM+VXBkYXRpbmcgcGVyY2VudGFnZSBhbmQgdGV4dCB0b2dldGhlcjwvaDM+CiAgICAgICAgICAgIDxwPkEgc2luZ2xlIGNvbXBvbmVudCBjYW4gZXhwcmVzcyBib3RoIGhvdyBmYXIgdGhlIGpvYiBpcyBhbmQgd2hpY2ggcGhhc2UgaXMgY3VycmVudGx5IGFjdGl2ZS48L3A+CiAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgaWQ9ImxpdmUtcHJvZ3Jlc3MiCiAgICAgICAgICAgICAgbGFiZWw9IkN1c3RvbWVyIGV4cG9ydCIKICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezEyfQogICAgICAgICAgICAgIHN0YXR1c1RleHQ9IlByZXBhcmluZyBhcmNoaXZlIGFuZCBkZXBlbmRlbmN5IGdyYXBoLi4uIgogICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5Db21wYXRpYmlsaXR5PC9kaXY+CiAgICAgICAgICAgIDxoMz5MZWdhY3kgPGNvZGU+dmFsdWU8L2NvZGU+IGFuZCA8Y29kZT5wcm9ncmVzczwvY29kZT4gaW5wdXRzPC9oMz4KICAgICAgICAgICAgPHA+RXhpc3RpbmcgdXNhZ2VzIGNhbiBrZWVwIHBhc3NpbmcgcGVyY2VudGFnZXMgZGlyZWN0bHkgb3Igbm9ybWFsaXplZCBwcm9ncmVzcyB2YWx1ZXMgZnJvbSAwIHRvIDEuPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1N0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IkZyb20gdmFsdWUiCiAgICAgICAgICAgICAgICAudmFsdWU9JHs3NX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9Ik1pZ3JhdGluZyBleGlzdGluZyByZWFkbWUtc3R5bGUgdXNhZ2UuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IkZyb20gcHJvZ3Jlc3MiCiAgICAgICAgICAgICAgICAucHJvZ3Jlc3M9JHsuNDJ9CiAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHshMX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IlJlbmRlcmluZyBub3JtYWxpemVkIHByb2dyZXNzIGlucHV0Li4uIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBQMix4cixQZXMsZGx0PWcoKCk9Pnt3MigpO0R5YSgpO3BlKCk7aHQoKTtQMj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0seHI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFBlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtcHJvZ3Jlc3NiYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXTt2YXIgbWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQcm9ncmVzc2JhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBCPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHA9W0woe3R5cGU6TnVtYmVyfSldLGM9W0woe3R5cGU6TnVtYmVyfSldLHg9W0woe3R5cGU6U3RyaW5nfSldLHk9W0woe3R5cGU6U3RyaW5nfSldLE49W0woe3R5cGU6QXJyYXl9KV0sTz1bTCh7dHlwZTpOdW1iZXJ9KV0sSD1bTCh7dHlwZTpCb29sZWFufSldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtZKCldLFAyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4icGVyY2VudGFnZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnBlcmNlbnRhZ2UsImdldCIpLHNldDppKChVLGhlKT0+e1UucGVyY2VudGFnZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxvLGwpLFAyKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InZhbHVlImluIFUsImhhcyIpLGdldDppKFU9PlUudmFsdWUsImdldCIpLHNldDppKChVLGhlKT0+e1UudmFsdWU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sZCx1KSxQMih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFU9PiJwcm9ncmVzcyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLnByb2dyZXNzPWhlfSwic2V0Iil9LG1ldGFkYXRhOkJ9LGIsdiksUDIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ibGFiZWwiaW4gVSwiaGFzIiksZ2V0OmkoVT0+VS5sYWJlbCwiZ2V0Iiksc2V0OmkoKFUsaGUpPT57VS5sYWJlbD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxtLGYpLFAyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic3RhdHVzVGV4dCJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnN0YXR1c1RleHQsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc3RhdHVzVGV4dD1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxNLHopLFAyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4idGVybWluYWxMaW5lcyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnRlcm1pbmFsTGluZXMsImdldCIpLHNldDppKChVLGhlKT0+e1UudGVybWluYWxMaW5lcz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxDLF8pLFAyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzUm93cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4ic3RhdHVzUm93cyJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLnN0YXR1c1Jvd3MsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc3RhdHVzUm93cz1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSwkLEUpLFAyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iaW5kZXRlcm1pbmF0ZSJpbiBVLCJoYXMiKSxnZXQ6aShVPT5VLmluZGV0ZXJtaW5hdGUsImdldCIpLHNldDppKChVLGhlKT0+e1UuaW5kZXRlcm1pbmF0ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxrLFMpLFAyKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1BlcmNlbnRhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVT0+InNob3dQZXJjZW50YWdlImluIFUsImhhcyIpLGdldDppKFU9PlUuc2hvd1BlcmNlbnRhZ2UsImdldCIpLHNldDppKChVLGhlKT0+e1Uuc2hvd1BlcmNlbnRhZ2U9aGV9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sUCxSKSxQMih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVNwaW5uZXJGcmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShVPT4iYWN0aXZlU3Bpbm5lckZyYW1lImluIFUsImhhcyIpLGdldDppKFU9PlUuYWN0aXZlU3Bpbm5lckZyYW1lLCJnZXQiKSxzZXQ6aSgoVSxoZSk9PntVLmFjdGl2ZVNwaW5uZXJGcmFtZT1oZX0sInNldCIpfSxtZXRhZGF0YTpCfSxWLFcpLFAyKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsdCksbWU9YT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPSR5YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9eHIodGhpcyxvLDApO2dldCBwZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBlcmNlbnRhZ2UoQil7dGhpcy4jZT1CfSN0PSh4cih0aGlzLGwpLHhyKHRoaXMsZCxudWxsKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZhbHVlKEIpe3RoaXMuI3Q9Qn0jYT0oeHIodGhpcyx1KSx4cih0aGlzLGIsbnVsbCkpO2dldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLiNhfXNldCBwcm9ncmVzcyhCKXt0aGlzLiNhPUJ9I3M9KHhyKHRoaXMsdikseHIodGhpcyxtLCIiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhYmVsKEIpe3RoaXMuI3M9Qn0jaT0oeHIodGhpcyxmKSx4cih0aGlzLE0sIiIpKTtnZXQgc3RhdHVzVGV4dCgpe3JldHVybiB0aGlzLiNpfXNldCBzdGF0dXNUZXh0KEIpe3RoaXMuI2k9Qn0jcj0oeHIodGhpcyx6KSx4cih0aGlzLEMsW10pKTtnZXQgdGVybWluYWxMaW5lcygpe3JldHVybiB0aGlzLiNyfXNldCB0ZXJtaW5hbExpbmVzKEIpe3RoaXMuI3I9Qn0jbz0oeHIodGhpcyxfKSx4cih0aGlzLCQsMykpO2dldCBzdGF0dXNSb3dzKCl7cmV0dXJuIHRoaXMuI299c2V0IHN0YXR1c1Jvd3MoQil7dGhpcy4jbz1CfSNuPSh4cih0aGlzLEUpLHhyKHRoaXMsaywhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI259c2V0IGluZGV0ZXJtaW5hdGUoQil7dGhpcy4jbj1CfSNsPSh4cih0aGlzLFMpLHhyKHRoaXMsUCwhMCkpO2dldCBzaG93UGVyY2VudGFnZSgpe3JldHVybiB0aGlzLiNsfXNldCBzaG93UGVyY2VudGFnZShCKXt0aGlzLiNsPUJ9I2M9KHhyKHRoaXMsUikseHIodGhpcyxWLDApKTtnZXQgYWN0aXZlU3Bpbm5lckZyYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2ZVNwaW5uZXJGcmFtZShCKXt0aGlzLiNjPUJ9c3Bpbm5lckludGVydmFsSWQ9KHhyKHRoaXMsVyksbnVsbCk7c3Bpbm5lckZyYW1lcz1bInwiLCIvIiwiLSIsIlxcIl07c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUocjQudGV4dCxpNC50ZXh0KX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckNvbnRhaW5lciB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzTGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc1ZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTUlIDQwJSkiLCJoc2woMjE1IDE1JSA3MCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWVlZWViIiwiIzQ0NCIpfTsKICAgICAgICBib3JkZXItdG9wOiAwLjVweCBzb2xpZCAke2guYmRUaGVtZSgidHJhbnNwYXJlbnQiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJGaWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZShpNC5ibHVlQWN0aXZlLHI0LmJsdWVBY3RpdmUpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckZpbGwuaW5kZXRlcm1pbmF0ZSB7CiAgICAgICAgd2lkdGg6IDM0JTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZVNsaWRlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNQYW5lbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3RhdHVzLXJvd3MsIDMpICogMS4zNWVtICsgMTZweCk7CiAgICAgICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1zdGF0dXMtcm93cywgMykgKiAxLjM1ZW0gKyAxNnB4KTsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgODYlKSIsImhzbCgyMTAgMTAlIDI2JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMzMlIDk4JSkiLCJoc2woMjIwIDIwJSAxMCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc3RhdHVzVGV4dFJvdywKICAgICAgLnRlcm1pbmFsTGluZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjM1ZW07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsU2Nyb2xsZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxOCUgNzglKSIsImhzbCgyMTUgMTAlIDM0JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5saW5lUHJlZml4IHsKICAgICAgICB3aWR0aDogMWNoOwogICAgICAgIGZsZXg6IDAgMCAxY2g7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKGk0LmJsdWVBY3RpdmUscjQuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxpbmVUZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgMTUlIDI1JSkiLCJoc2woMjEwIDE1JSA4NiUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAudGVybWluYWxMaW5lOm5vdCguY3VycmVudCkgLmxpbmVUZXh0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTIlIDQyJSkiLCJoc2woMjE1IDEyJSA2MyUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGVTbGlkZSB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMjAlKTsKICAgICAgICB9CgogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMyMCUpOwogICAgICAgIH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3luY1NwaW5uZXJTdGF0ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5zdG9wU3Bpbm5lcigpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9dXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLHRoaXMuc3luY1NwaW5uZXJTdGF0ZSgpLEIuaGFzKCJ0ZXJtaW5hbExpbmVzIikmJnRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCYmdGhpcy5zY3JvbGxUZXJtaW5hbFRvQm90dG9tKCl9cmVuZGVyKCl7bGV0IEI9dGhpcy5nZXRFZmZlY3RpdmVQZXJjZW50YWdlKCksVT0hIXRoaXMubGFiZWx8fHRoaXMuc2hvd1BlcmNlbnRhZ2UmJiF0aGlzLmluZGV0ZXJtaW5hdGUsaGU9dGhpcy50ZXJtaW5hbExpbmVzLmxlbmd0aD4wLEY9aGV8fHRoaXMuc3RhdHVzVGV4dC50cmltKCkubGVuZ3RoPjAsaj10aGlzLmdldFJlbmRlcmVkU3RhdHVzUm93cygpLHVlPXRoaXMuc3Bpbm5lckZyYW1lc1t0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZV0/P3RoaXMuc3Bpbm5lckZyYW1lc1swXTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXJDb250YWluZXIiPgogICAgICAgICR7VT93YAogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NIZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0xhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5zaG93UGVyY2VudGFnZSYmIXRoaXMuaW5kZXRlcm1pbmF0ZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzVmFsdWUiPiR7dGhpcy5mb3JtYXRQZXJjZW50YWdlKEIpfSU8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icHJvZ3Jlc3NCYXJGaWxsICR7dGhpcy5pbmRldGVybWluYXRlPyJpbmRldGVybWluYXRlIjoiIn0iCiAgICAgICAgICAgIHN0eWxlPSIke3RoaXMuaW5kZXRlcm1pbmF0ZT8iIjpgd2lkdGg6ICR7Qn0lO2B9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7Rj93YAogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic3RhdHVzUGFuZWwiCiAgICAgICAgICAgIHN0eWxlPSItLXN0YXR1cy1yb3dzOiAke2p9OyIKICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgIGFyaWEtYXRvbWljPSJ0cnVlIgogICAgICAgICAgPgogICAgICAgICAgICAke2hlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWxTY3JvbGxlciI+CiAgICAgICAgICAgICAgICAke3RoaXMudGVybWluYWxMaW5lcy5tYXAoKGxlLFEpPT57bGV0IGllPVE9PT10aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoLTEsdGU9dGhpcy5pbmRldGVybWluYXRlJiZpZT91ZToiPiI7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWxMaW5lICR7aWU/ImN1cnJlbnQiOiIifSI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVByZWZpeCI+JHt0ZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVRleHQiPiR7bGV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNUZXh0Um93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lUHJlZml4Ij4ke3RoaXMuaW5kZXRlcm1pbmF0ZT91ZToiPiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmVUZXh0Ij4ke3RoaXMuc3RhdHVzVGV4dH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RWZmZWN0aXZlUGVyY2VudGFnZSgpe2lmKHR5cGVvZiB0aGlzLnZhbHVlPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHRoaXMudmFsdWUpKXJldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZSh0aGlzLnZhbHVlKTtpZih0eXBlb2YgdGhpcy5wcm9ncmVzcz09Im51bWJlciImJk51bWJlci5pc0Zpbml0ZSh0aGlzLnByb2dyZXNzKSl7bGV0IEI9dGhpcy5wcm9ncmVzcz49MCYmdGhpcy5wcm9ncmVzczw9MT90aGlzLnByb2dyZXNzKjEwMDp0aGlzLnByb2dyZXNzO3JldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZShCKX1yZXR1cm4gdGhpcy5jbGFtcFBlcmNlbnRhZ2UodGhpcy5wZXJjZW50YWdlKX1nZXRSZW5kZXJlZFN0YXR1c1Jvd3MoKXtsZXQgQj1OdW1iZXIuaXNGaW5pdGUodGhpcy5zdGF0dXNSb3dzKT9NYXRoLmZsb29yKHRoaXMuc3RhdHVzUm93cyk6MztyZXR1cm4gTWF0aC5tYXgoMSxCKX1jbGFtcFBlcmNlbnRhZ2UoQil7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMTAwLEIpKX1mb3JtYXRQZXJjZW50YWdlKEIpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEIpP2Ake0J9YDpCLnRvRml4ZWQoMSkucmVwbGFjZSgvXC4wJC8sIiIpfXN5bmNTcGlubmVyU3RhdGUoKXtsZXQgQj10aGlzLmluZGV0ZXJtaW5hdGUmJih0aGlzLnN0YXR1c1RleHQudHJpbSgpLmxlbmd0aD4wfHx0aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoPjApO2lmKEImJnRoaXMuc3Bpbm5lckludGVydmFsSWQ9PT1udWxsKXt0aGlzLnNwaW5uZXJJbnRlcnZhbElkPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+e3RoaXMuYWN0aXZlU3Bpbm5lckZyYW1lPSh0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZSsxKSV0aGlzLnNwaW5uZXJGcmFtZXMubGVuZ3RofSwxMjApO3JldHVybn1CfHx0aGlzLnN0b3BTcGlubmVyKCl9c3RvcFNwaW5uZXIoKXt0aGlzLnNwaW5uZXJJbnRlcnZhbElkIT09bnVsbCYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuc3Bpbm5lckludGVydmFsSWQpLHRoaXMuc3Bpbm5lckludGVydmFsSWQ9bnVsbCksdGhpcy5hY3RpdmVTcGlubmVyRnJhbWU9MH1zY3JvbGxUZXJtaW5hbFRvQm90dG9tKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGVybWluYWxTY3JvbGxlciIpO0ImJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntCLnNjcm9sbFRvcD1CLnNjcm9sbEhlaWdodH0pfXN0YXRpY3t4cihhLHQpfX07cmV0dXJuIG1lPWF9KSgpfSk7dmFyIEx5YT1nKCgpPT57ZGx0KCl9KTt2YXIgaTJlLG43LEllcyxFeWE9ZygoKT0+e3BlKCk7a3QoKTtodCgpO2kyZT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbjc9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEllcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtc3Bpbm5lciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU3Bpbm5lciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6TnVtYmVyfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woKV0saTJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2l6ZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNpemUsImdldCIpLHNldDppKChmLHkpPT57Zi5zaXplPXl9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbyxsKSxpMmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibnciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImJudyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmJudywiZ2V0Iiksc2V0OmkoKGYseSk9PntmLmJudz15fSwic2V0Iil9LG1ldGFkYXRhOm19LGQsdSksaTJlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzdGF0dXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zdGF0dXMsImdldCIpLHNldDppKChmLHkpPT57Zi5zdGF0dXM9eX0sInNldCIpfSxtZXRhZGF0YTptfSxiLHYpLGkyZShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHg9YT1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTtzdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtc3Bpbm5lcj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc3RhdHVzPSJzdWNjZXNzIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc3RhdHVzPSJlcnJvciI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHNpemU9JHs2NH0gc3RhdHVzPSJzdWNjZXNzIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgLnNpemU9JHs2NH0gc3RhdHVzPSJlcnJvciI+PC9kZWVzLXNwaW5uZXI+CiAgYCwiZGVtbyIpOyNlPW43KHRoaXMsbywyMCk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2l6ZShtKXt0aGlzLiNlPW19I3Q9KG43KHRoaXMsbCksbjcodGhpcyxkLCExKSk7Z2V0IGJudygpe3JldHVybiB0aGlzLiN0fXNldCBibncobSl7dGhpcy4jdD1tfSNhPShuNyh0aGlzLHUpLG43KHRoaXMsYiwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3RhdHVzKG0pe3RoaXMuI2E9bX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksbjcodGhpcyx2KX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIHdgPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiB3YDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7bjcoYSx0KX19O3JldHVybiB4PWF9KSgpfSk7dmFyIFB5YT1nKCgpPT57RXlhKCl9KTt2YXIgSXlhLEF5YT1nKCgpPT57cGUoKTt1bHQoKTtIZygpO0l5YT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CgogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiNhYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CgogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2tlZD0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIERpZmZlcmVudCB0b2FzdCB0eXBlcyBmb3IgdmFyaW91cyBub3RpZmljYXRpb24gc2NlbmFyaW9zLiBDbGljayBhbnkgYnV0dG9uIHRvIHNob3cgYSB0b2FzdC4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5pbmZvKCJUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSIpfX0+SW5mbyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCIgQGNsaWNrZWQ9JHsoKT0+e3lzLnN1Y2Nlc3MoIk9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+U3VjY2VzcyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMud2FybmluZygiUGxlYXNlIHJldmlldyBiZWZvcmUgcHJvY2VlZGluZyIpfX0+V2FybmluZyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmciKX19PkVycm9yIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgUG9zaXRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUb2FzdHMgY2FuIGFwcGVhciBpbiBkaWZmZXJlbnQgcG9zaXRpb25zIG9uIHRoZSBzY3JlZW4uCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuc2hvdyh7bWVzc2FnZToiVG9wIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLXJpZ2h0In0pfX0+VG9wIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5zaG93KHttZXNzYWdlOiJUb3AgTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1sZWZ0In0pfX0+VG9wIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IkJvdHRvbSBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1yaWdodCJ9KX19PkJvdHRvbSBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuc2hvdyh7bWVzc2FnZToiQm90dG9tIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tbGVmdCJ9KX19PkJvdHRvbSBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5zaG93KHttZXNzYWdlOiJUb3AgQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWNlbnRlciJ9KX19PlRvcCBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IkJvdHRvbSBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tY2VudGVyIn0pfX0+Qm90dG9tIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkR1cmF0aW9uIE9wdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbnRyb2wgaG93IGxvbmcgdG9hc3RzIHN0YXkgdmlzaWJsZS4gRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IlF1aWNrIHRvYXN0ICgxIHNlY29uZCkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjFlM30pfX0+MSBTZWNvbmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IlN0YW5kYXJkIHRvYXN0ICgzIHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjozZTN9KX19PjMgU2Vjb25kcyAoRGVmYXVsdCk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLnNob3coe21lc3NhZ2U6IkxvbmcgdG9hc3QgKDUgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjVlM30pfX0+NSBTZWNvbmRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pnt5cy5zaG93KHttZXNzYWdlOiJNYW51YWwgZGlzbWlzcyBvbmx5IChjbGljayB0byBjbG9zZSkiLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOjB9KX19Pk5vIEF1dG8tRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIFRvYXN0czwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgTXVsdGlwbGUgdG9hc3RzIHN0YWNrIGF1dG9tYXRpY2FsbHkuIFRoZXkgbWFpbnRhaW4gdGhlaXIgb3JkZXIgYW5kIGFuaW1hdGUgc21vb3RobHkuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuaW5mbygiRmlyc3Qgbm90aWZpY2F0aW9uIiksc2V0VGltZW91dCgoKT0+eXMuc3VjY2VzcygiU2Vjb25kIG5vdGlmaWNhdGlvbiIpLDIwMCksc2V0VGltZW91dCgoKT0+eXMud2FybmluZygiVGhpcmQgbm90aWZpY2F0aW9uIiksNDAwKSxzZXRUaW1lb3V0KCgpPT55cy5lcnJvcigiRm91cnRoIG5vdGlmaWNhdGlvbiIpLDYwMCl9fT5TaG93IE11bHRpcGxlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntmb3IobGV0IHM9MTtzPD01O3MrKylzZXRUaW1lb3V0KCgpPT57eXMuc2hvdyh7bWVzc2FnZTpgTm90aWZpY2F0aW9uICMke3N9YCx0eXBlOnMlMj09PTA/InN1Y2Nlc3MiOiJpbmZvIixkdXJhdGlvbjoyZTMrcyo1MDB9KX0scyoxMDApfX0+UmFwaWQgRmlyZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlJlYWwtV29ybGQgRXhhbXBsZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbW1vbiB1c2UgY2FzZXMgZm9yIHRvYXN0IG5vdGlmaWNhdGlvbnMgaW4gYXBwbGljYXRpb25zLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHM9YXdhaXQgeXMuc2hvdyh7bWVzc2FnZToiU2F2aW5nIGNoYW5nZXMuLi4iLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57cy5kaXNtaXNzKCkseXMuc3VjY2VzcygiQ2hhbmdlcyBzYXZlZCBzdWNjZXNzZnVsbHkhIil9LDJlMyl9fT5TYXZlIE9wZXJhdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuZXJyb3IoIkZhaWxlZCB0byBjb25uZWN0IHRvIHNlcnZlci4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbi4iKX19Pk5ldHdvcmsgRXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLndhcm5pbmcoIllvdXIgc2Vzc2lvbiB3aWxsIGV4cGlyZSBpbiA1IG1pbnV0ZXMiKX19PlNlc3Npb24gV2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57eXMuc3VjY2VzcygiRmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhIil9fT5VcGxvYWQgQ29tcGxldGU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Qcm9ncmFtbWF0aWMgQ29udHJvbDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQWR2YW5jZWQgY29udHJvbCBvdmVyIHRvYXN0IGJlaGF2aW9yLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHM9YXdhaXQgeXMuc2hvdyh7bWVzc2FnZToiVGhpcyB0b2FzdCBjYW4gYmUgZGlzbWlzc2VkIHByb2dyYW1tYXRpY2FsbHkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57cy5kaXNtaXNzKCkseXMuc3VjY2VzcygiVG9hc3QgZGlzbWlzc2VkIGFmdGVyIDIgc2Vjb25kcyIpfSwyZTMpfX0+UHJvZ3JhbW1hdGljIERpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e3lzLmluZm8oIkluZm8gbWVzc2FnZSIsMmUzKSxzZXRUaW1lb3V0KCgpPT55cy5zdWNjZXNzKCJTdWNjZXNzIG1lc3NhZ2UiLDJlMyksNTAwKSxzZXRUaW1lb3V0KCgpPT55cy53YXJuaW5nKCJXYXJuaW5nIG1lc3NhZ2UiLDJlMyksMWUzKSxzZXRUaW1lb3V0KCgpPT55cy5lcnJvcigiRXJyb3IgbWVzc2FnZSIsMmUzKSwxNTAwKX19PkNvbnZlbmllbmNlIE1ldGhvZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIgZUosVnUseXMsdWx0PWcoKCk9PntwZSgpO2t0KCk7R24oKTtBeWEoKTtFcigpO2h0KCk7ZUo9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFZ1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx5cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdG9hc3QiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RvYXN0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sZUoodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJtZXNzYWdlImluIHosImhhcyIpLGdldDppKHo9PnoubWVzc2FnZSwiZ2V0Iiksc2V0OmkoKHosTik9Pnt6Lm1lc3NhZ2U9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLGVKKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idHlwZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnR5cGUsImdldCIpLHNldDppKCh6LE4pPT57ei50eXBlPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxlSih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkdXJhdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZHVyYXRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGVKKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc1Zpc2libGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1Zpc2libGUsImdldCIpLHNldDppKCh6LE4pPT57ei5pc1Zpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLGVKKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89SXlhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siLCJPdmVybGF5Il07c3RhdGljIHRvYXN0Q29udGFpbmVycz1uZXcgTWFwO3N0YXRpYyBnZXRPckNyZWF0ZUNvbnRhaW5lcihNKXtpZighdGhpcy50b2FzdENvbnRhaW5lcnMuaGFzKE0pKXtsZXQgej1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzd2l0Y2goei5jbGFzc05hbWU9YHRvYXN0LWNvbnRhaW5lciB0b2FzdC1jb250YWluZXItJHtNfWAsei5zdHlsZS5jc3NUZXh0PWAKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgei1pbmRleDogJHtiby5vdmVybGF5LnRvYXN0fTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgYCxNKXtjYXNlInRvcC1yaWdodCI6ei5zdHlsZS50b3A9IjAiLHouc3R5bGUucmlnaHQ9IjAiO2JyZWFrO2Nhc2UidG9wLWxlZnQiOnouc3R5bGUudG9wPSIwIix6LnN0eWxlLmxlZnQ9IjAiO2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0Ijp6LnN0eWxlLmJvdHRvbT0iMCIsei5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tbGVmdCI6ei5zdHlsZS5ib3R0b209IjAiLHouc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJ0b3AtY2VudGVyIjp6LnN0eWxlLnRvcD0iMCIsei5zdHlsZS5sZWZ0PSI1MCUiLHouc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC01MCUpIjticmVhaztjYXNlImJvdHRvbS1jZW50ZXIiOnouc3R5bGUuYm90dG9tPSIwIix6LnN0eWxlLmxlZnQ9IjUwJSIsei5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrfWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoeiksdGhpcy50b2FzdENvbnRhaW5lcnMuc2V0KE0seil9cmV0dXJuIHRoaXMudG9hc3RDb250YWluZXJzLmdldChNKX1zdGF0aWMgYXN5bmMgc2hvdyhNKXtsZXQgej10eXBlb2YgTT09InN0cmluZyI/e21lc3NhZ2U6TX06TSxOPW5ldyB5O3JldHVybiBOLm1lc3NhZ2U9ei5tZXNzYWdlLE4udHlwZT16LnR5cGV8fCJpbmZvIixOLmR1cmF0aW9uPXouZHVyYXRpb258fDNlMyx0aGlzLmdldE9yQ3JlYXRlQ29udGFpbmVyKHoucG9zaXRpb258fCJ0b3AtcmlnaHQiKS5hcHBlbmRDaGlsZChOKSxhd2FpdCBOLnVwZGF0ZUNvbXBsZXRlLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e04uaXNWaXNpYmxlPSEwfSksTi5kdXJhdGlvbj4wJiZzZXRUaW1lb3V0KCgpPT57Ti5kaXNtaXNzKCl9LE4uZHVyYXRpb24pLE59c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coTSl7cmV0dXJuIHRoaXMuc2hvdyhNKX1zdGF0aWMgaW5mbyhNLHope3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJpbmZvIixkdXJhdGlvbjp6fSl9c3RhdGljIHN1Y2Nlc3MoTSx6KXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToic3VjY2VzcyIsZHVyYXRpb246en0pfXN0YXRpYyB3YXJuaW5nKE0seil7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTpNLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOnp9KX1zdGF0aWMgZXJyb3IoTSx6KXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToiZXJyb3IiLGR1cmF0aW9uOnp9KX0jZT1WdSh0aGlzLG8sIiIpO2dldCBtZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG1lc3NhZ2UoTSl7dGhpcy4jZT1NfSN0PShWdSh0aGlzLGwpLFZ1KHRoaXMsZCwiaW5mbyIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiN0fXNldCB0eXBlKE0pe3RoaXMuI3Q9TX0jYT0oVnUodGhpcyx1KSxWdSh0aGlzLGIsM2UzKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGR1cmF0aW9uKE0pe3RoaXMuI2E9TX0jcz0oVnUodGhpcyx2KSxWdSh0aGlzLG0sITEpKTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzVmlzaWJsZShNKXt0aGlzLiNzPU19Y29uc3RydWN0b3IoKXtzdXBlcigpLFZ1KHRoaXMsZiksdGEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzdmlzaWJsZV0pIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgfQoKICAgICAgLnRvYXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmYiLCIjMjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMSkiLCJyZ2JhKDAsMCwwLDAuMykiKX07CiAgICAgICAgbWluLXdpZHRoOiAzMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnRvYXN0OmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOwogICAgICB9CgogICAgICAuaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jbG9zZSBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFR5cGUtc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIDpob3N0KFt0eXBlPSJpbmZvIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogIzAwODRmZjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9InN1Y2Nlc3MiXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0id2FybmluZyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJlcnJvciJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC8qIFByb2dyZXNzIGJhciAqLwogICAgICAucHJvZ3Jlc3MgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzcyBsaW5lYXIgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHJvZ3Jlc3MgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IE09e2luZm86d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTExYTEgMSAwIDEwLTIgMHYySDdhMSAxIDAgMTAwIDJoMnYyYTEgMSAwIDEwMiAwdi0yaDJhMSAxIDAgMTAwLTJoLTJWN3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHN1Y2Nlc3M6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy05LjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHdhcm5pbmc6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjI1NyAzLjA5OWMuNzY1LTEuMzYgMi43MjItMS4zNiAzLjQ4NiAwbDUuNTggOS45MmMuNzUgMS4zMzQtLjIxMyAyLjk4LTEuNzQyIDIuOThINC40MmMtMS41MyAwLTIuNDkzLTEuNjQ2LTEuNzQzLTIuOThsNS41OC05Ljkyek0xMSAxM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0xLThhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAyIDBWNmExIDEgMCAwMC0xLTF6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YCxlcnJvcjp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDguNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDExLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NiA4LjcwNyA3LjI5M3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gfTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idG9hc3QiIEBjbGljaz0ke3RoaXMuZGlzbWlzc30+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbiI+CiAgICAgICAgICAke01bdGhpcy50eXBlXX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj4ke3RoaXMubWVzc2FnZX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOHoiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciIgc3R5bGU9ImFuaW1hdGlvbi1kdXJhdGlvbjogJHt0aGlzLmR1cmF0aW9ufW1zIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNtaXNzKCl7dGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2Uoej0+c2V0VGltZW91dCh6LDMwMCkpLHRoaXMucmVtb3ZlKCk7bGV0IE09dGhpcy5wYXJlbnRFbGVtZW50O2lmKE0mJk0uY2hpbGRyZW4ubGVuZ3RoPT09MCl7TS5yZW1vdmUoKTtmb3IobGV0W3osTl1vZiB5LnRvYXN0Q29udGFpbmVycy5lbnRyaWVzKCkpaWYoTj09PU0pe3kudG9hc3RDb250YWluZXJzLmRlbGV0ZSh6KTticmVha319fWZpcnN0VXBkYXRlZCgpe3RoaXMuc2V0QXR0cmlidXRlKCJ0eXBlIix0aGlzLnR5cGUpfXN0YXRpY3tWdShhLHQpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgTnlhPWcoKCk9Pnt1bHQoKX0pO3ZhciBSeWE9ZygoKT0+e3h5YSgpO1N5YSgpO1R5YSgpO0x5YSgpO1B5YSgpO055YSgpfSk7dmFyIE95YT1nKCgpPT57eXgoKX0pO3ZhciBGeWE9ZygoKT0+e1dnKCl9KTt2YXIgQnlhPWcoKCk9PntPeWEoKTtGeWEoKX0pO3ZhciBIeWE9ZygoKT0+e0VpKCl9KTt2YXIgcXlhPWcoKCk9PntIb3QoKX0pO3ZhciBqeWE9ZygoKT0+e29udCgpfSk7dmFyIFZ5YT1nKCgpPT57eW50KCl9KTt2YXIgVXlhPWcoKCk9PntsbnQoKX0pO3ZhciBXeWE9ZygoKT0+e2RudCgpfSk7dmFyIEd5YT1nKCgpPT57Wm90KCl9KTt2YXIgS3lhPWcoKCk9PntOMWUoKX0pO3ZhciBZeWE9ZygoKT0+e1gxZSgpfSk7dmFyIFp5YT1nKCgpPT57fSk7dmFyIFh5YT1nKCgpPT57WnlhKCl9KTt2YXIgUXlhPWcoKCk9PntobnQoKX0pO3ZhciBKeWE9ZygoKT0+e2dudCgpfSk7dmFyIGV3YT1nKCgpPT57WTFlKCk7RW50KCl9KTt2YXIgcjJlLHR3YT1nKCgpPT57cjJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkltYWdlQ3JvcHBlciIpfW9wdGlvbnM7Y2FudmFzO2N0eDtpbWc7b3ZlcmxheUNhbnZhcztvdmVybGF5Q3R4O2Nyb3BYPTA7Y3JvcFk9MDtjcm9wU2l6ZT0yMDA7bWluQ3JvcFNpemU9NTA7aXNEcmFnZ2luZz0hMTtpc1Jlc2l6aW5nPSExO2RyYWdTdGFydFg9MDtkcmFnU3RhcnRZPTA7cmVzaXplSGFuZGxlPSIiO2ltYWdlU2NhbGU9MTtpbWFnZU9mZnNldFg9MDtpbWFnZU9mZnNldFk9MDtjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9e21pblNpemU6NTAsb3V0cHV0U2l6ZTo4MDAsb3V0cHV0UXVhbGl0eTouOTUsLi4uZX0sdGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLm92ZXJsYXlDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5vdmVybGF5Q3R4PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMuaW1nPW5ldyBJbWFnZX1hc3luYyBpbml0aWFsaXplKCl7YXdhaXQgdGhpcy5sb2FkSW1hZ2UoKSx0aGlzLnNldHVwQ2FudmFzZXMoKSx0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLnJlbmRlcigpfWFzeW5jIGxvYWRJbWFnZSgpe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3RoaXMuaW1nLm9ubG9hZD0oKT0+ZSgpLHRoaXMuaW1nLm9uZXJyb3I9dCx0aGlzLmltZy5zcmM9dGhpcy5vcHRpb25zLmltYWdlfSl9c2V0dXBDYW52YXNlcygpe2xldCBlPXRoaXMub3B0aW9ucy5jb250YWluZXIsdD1NYXRoLm1pbihlLmNsaWVudFdpZHRoLGUuY2xpZW50SGVpZ2h0KTt0aGlzLmNhbnZhcy53aWR0aD10LHRoaXMuY2FudmFzLmhlaWdodD10LHRoaXMuY2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLmNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5jYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLmNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMud2lkdGg9dCx0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0PXQsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUubGVmdD0iMCIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSIsZS5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhcyksZS5hcHBlbmRDaGlsZCh0aGlzLm92ZXJsYXlDYW52YXMpO2xldCBhPU1hdGgubWluKHQvdGhpcy5pbWcud2lkdGgsdC90aGlzLmltZy5oZWlnaHQpO3RoaXMuaW1hZ2VTY2FsZT1hLHRoaXMuaW1hZ2VPZmZzZXRYPSh0LXRoaXMuaW1nLndpZHRoKmEpLzIsdGhpcy5pbWFnZU9mZnNldFk9KHQtdGhpcy5pbWcuaGVpZ2h0KmEpLzI7bGV0IHI9dGhpcy5pbWcud2lkdGgqYSxuPXRoaXMuaW1nLmhlaWdodCphLG89TWF0aC5taW4ocixuLHQqLjgpO3RoaXMuY3JvcFNpemU9byouOCx0aGlzLmNyb3BYPSh0LXRoaXMuY3JvcFNpemUpLzIsdGhpcy5jcm9wWT0odC10aGlzLmNyb3BTaXplKS8yfXNldHVwRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmhhbmRsZU1vdXNlRG93bi5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuaGFuZGxlVG91Y2hTdGFydC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmhhbmRsZVRvdWNoTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuaGFuZGxlVG91Y2hFbmQuYmluZCh0aGlzKSl9aGFuZGxlTW91c2VEb3duKGUpe2xldCB0PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShlLmNsaWVudFgtdC5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Qud2lkdGgpLHI9KGUuY2xpZW50WS10LnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvdC5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoYSxyKTtuPyh0aGlzLmlzUmVzaXppbmc9ITAsdGhpcy5yZXNpemVIYW5kbGU9bik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGEscikmJih0aGlzLmlzRHJhZ2dpbmc9ITApLHRoaXMuZHJhZ1N0YXJ0WD1hLHRoaXMuZHJhZ1N0YXJ0WT1yfWhhbmRsZU1vdXNlTW92ZShlKXtsZXQgdD10aGlzLm92ZXJsYXlDYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT0oZS5jbGllbnRYLXQubGVmdCkqKHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aC90LndpZHRoKSxyPShlLmNsaWVudFktdC50b3ApKih0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0L3QuaGVpZ2h0KSxuPXRoaXMuZ2V0UmVzaXplSGFuZGxlKGEscik7aWYobj90aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPXRoaXMuZ2V0UmVzaXplQ3Vyc29yKG4pOnRoaXMuaXNJbnNpZGVDcm9wQXJlYShhLHIpP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9Im1vdmUiOnRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiLHRoaXMuaXNEcmFnZ2luZyl7bGV0IG89YS10aGlzLmRyYWdTdGFydFgsbD1yLXRoaXMuZHJhZ1N0YXJ0WSxwPXRoaXMuaW1hZ2VPZmZzZXRYLGQ9dGhpcy5pbWFnZU9mZnNldFgrdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLXRoaXMuY3JvcFNpemUsdT10aGlzLmltYWdlT2Zmc2V0WSxjPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZTt0aGlzLmNyb3BYPU1hdGgubWF4KHAsTWF0aC5taW4oZCx0aGlzLmNyb3BYK28pKSx0aGlzLmNyb3BZPU1hdGgubWF4KHUsTWF0aC5taW4oYyx0aGlzLmNyb3BZK2wpKSx0aGlzLmRyYWdTdGFydFg9YSx0aGlzLmRyYWdTdGFydFk9cix0aGlzLnJlbmRlcigpfXRoaXMuaXNSZXNpemluZyYmKHRoaXMuaGFuZGxlUmVzaXplKGEsciksdGhpcy5kcmFnU3RhcnRYPWEsdGhpcy5kcmFnU3RhcnRZPXIsdGhpcy5yZW5kZXIoKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmlzUmVzaXppbmc9ITEsdGhpcy5yZXNpemVIYW5kbGU9IiJ9aGFuZGxlVG91Y2hTdGFydChlKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHQ9ZS50b3VjaGVzWzBdLGE9bmV3IE1vdXNlRXZlbnQoIm1vdXNlZG93biIse2NsaWVudFg6dC5jbGllbnRYLGNsaWVudFk6dC5jbGllbnRZfSk7dGhpcy5oYW5kbGVNb3VzZURvd24oYSl9aGFuZGxlVG91Y2hNb3ZlKGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdD1lLnRvdWNoZXNbMF0sYT1uZXcgTW91c2VFdmVudCgibW91c2Vtb3ZlIix7Y2xpZW50WDp0LmNsaWVudFgsY2xpZW50WTp0LmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlTW92ZShhKX1oYW5kbGVUb3VjaEVuZChlKXtlLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVNb3VzZVVwKCl9Z2V0UmVzaXplSGFuZGxlKGUsdCl7bGV0IHI9e253Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZfSxuZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZfSxzdzp7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfSxzZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9fTtmb3IobGV0W24sb11vZiBPYmplY3QuZW50cmllcyhyKSlpZihNYXRoLmFicyhlLW8ueCk8MjAmJk1hdGguYWJzKHQtby55KTwyMClyZXR1cm4gbjtyZXR1cm4iIn1nZXRSZXNpemVDdXJzb3IoZSl7cmV0dXJue253OiJudy1yZXNpemUiLG5lOiJuZS1yZXNpemUiLHN3OiJzdy1yZXNpemUiLHNlOiJzZS1yZXNpemUifVtlXXx8ImRlZmF1bHQifWlzSW5zaWRlQ3JvcEFyZWEoZSx0KXtyZXR1cm4gZT49dGhpcy5jcm9wWCYmZTw9dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplJiZ0Pj10aGlzLmNyb3BZJiZ0PD10aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9aGFuZGxlUmVzaXplKGUsdCl7bGV0IGE9ZS10aGlzLmRyYWdTdGFydFgscj10LXRoaXMuZHJhZ1N0YXJ0WSxuPXRoaXMuaW1hZ2VPZmZzZXRYLG89dGhpcy5pbWFnZU9mZnNldFksbD10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUscD10aGlzLmltYWdlT2Zmc2V0WSt0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlO3N3aXRjaCh0aGlzLnJlc2l6ZUhhbmRsZSl7Y2FzZSJzZSI6dGhpcy5jcm9wU2l6ZT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLE1hdGgubWluKHRoaXMuY3JvcFNpemUrTWF0aC5tYXgoYSxyKSxNYXRoLm1pbihsLXRoaXMuY3JvcFgscC10aGlzLmNyb3BZKSkpO2JyZWFrO2Nhc2UibnciOmxldCBkPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsdGhpcy5jcm9wU2l6ZS1NYXRoLm1heChhLHIpKSx1PXRoaXMuY3JvcFNpemUtZCxjPXRoaXMuY3JvcFgrdSxiPXRoaXMuY3JvcFkrdTtjPj1uJiZiPj1vJiYodGhpcy5jcm9wWD1jLHRoaXMuY3JvcFk9Yix0aGlzLmNyb3BTaXplPWQpO2JyZWFrO2Nhc2UibmUiOmxldCB2PU1hdGgubWF4KGEsLXIpLHg9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK3YpLG09eC10aGlzLmNyb3BTaXplLGY9dGhpcy5jcm9wWS1tO2Y+PW8mJnRoaXMuY3JvcFgreDw9bCYmKHRoaXMuY3JvcFk9Zix0aGlzLmNyb3BTaXplPXgpO2JyZWFrO2Nhc2Uic3ciOmxldCB5PU1hdGgubWF4KC1hLHIpLE09TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK3kpLHo9TS10aGlzLmNyb3BTaXplLE49dGhpcy5jcm9wWC16O04+PW4mJnRoaXMuY3JvcFkrTTw9cCYmKHRoaXMuY3JvcFg9Tix0aGlzLmNyb3BTaXplPU0pO2JyZWFrfX1yZW5kZXIoKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMuY3R4LmZpbGxTdHlsZT0iIzAwMDAwMCIsdGhpcy5jdHguZmlsbFJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5jdHguZHJhd0ltYWdlKHRoaXMuaW1nLHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguZmlsbFN0eWxlPSJyZ2JhKDAsIDAsIDAsIDAuNSkiLHRoaXMub3ZlcmxheUN0eC5maWxsUmVjdCh0aGlzLmltYWdlT2Zmc2V0WCx0aGlzLmltYWdlT2Zmc2V0WSx0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUsdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZSksdGhpcy5vdmVybGF5Q3R4LnNhdmUoKSx0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiPyh0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LmFyYyh0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BTaXplLzIsMCxNYXRoLlBJKjIpLHRoaXMub3ZlcmxheUN0eC5jbGlwKCkpOih0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LnJlY3QodGhpcy5jcm9wWCx0aGlzLmNyb3BZLHRoaXMuY3JvcFNpemUsdGhpcy5jcm9wU2l6ZSksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMub3ZlcmxheUN0eC5yZXN0b3JlKCksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZVN0eWxlPSJ3aGl0ZSIsdGhpcy5vdmVybGF5Q3R4LmxpbmVXaWR0aD0yLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZSgpKTp0aGlzLm92ZXJsYXlDdHguc3Ryb2tlUmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLmRyYXdSZXNpemVIYW5kbGVzKCl9ZHJhd1Jlc2l6ZUhhbmRsZXMoKXtsZXQgdD1be3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1dO3RoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9IndoaXRlIix0LmZvckVhY2goYT0+e3RoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKGEueCxhLnksOCwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmZpbGwoKX0pfWFzeW5jIGdldENyb3BwZWRJbWFnZSgpe2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQ9ZS5nZXRDb250ZXh0KCIyZCIpLGE9MS90aGlzLmltYWdlU2NhbGUscj10aGlzLmNyb3BTaXplKmEsbj10aGlzLm9wdGlvbnMub3V0cHV0U2l6ZTtuPnImJmNvbnNvbGUuaW5mbyhgUHJvZmlsZSBwaWN0dXJlOiBVcHNjYWxpbmcgZnJvbSAke01hdGgucm91bmQocil9cHggdG8gJHtufXB4YCksZS53aWR0aD1uLGUuaGVpZ2h0PW47bGV0IG89KHRoaXMuY3JvcFgtdGhpcy5pbWFnZU9mZnNldFgpKmEsbD0odGhpcy5jcm9wWS10aGlzLmltYWdlT2Zmc2V0WSkqYSxwPXRoaXMuY3JvcFNpemUqYTt0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiJiYodC5iZWdpblBhdGgoKSx0LmFyYyhuLzIsbi8yLG4vMiwwLE1hdGguUEkqMiksdC5jbGlwKCkpLHQuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLHQuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIix0LmRyYXdJbWFnZSh0aGlzLmltZyxvLGwscCxwLDAsMCxuLG4pO2xldCB1PXRoaXMub3B0aW9ucy5pbWFnZS5pbmNsdWRlcygiaW1hZ2UvcG5nIik/ImltYWdlL3BuZyI6ImltYWdlL2pwZWciO3JldHVybiBlLnRvRGF0YVVSTCh1LHRoaXMub3B0aW9ucy5vdXRwdXRRdWFsaXR5KX1kZXN0cm95KCl7dGhpcy5jYW52YXMucmVtb3ZlKCksdGhpcy5vdmVybGF5Q2FudmFzLnJlbW92ZSgpfX19KTt2YXIgdjQsSm4scGx0LGF3YT1nKCgpPT57cGUoKTt3MigpO0VyKCk7R24oKTtHYSgpO0hnKCk7djIoKTt2MigpO3R3YSgpO2h0KCk7djQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEpuPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxwbHQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLXByb2ZpbGVwaWN0dXJlLW1vZGFsIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIlByb2ZpbGVQaWN0dXJlTW9kYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOk51bWJlcn0pXSx5PVtZKCldLE49W1koKV0sTz1bWSgpXSx2NCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaW5pdGlhbEltYWdlImluIFMsImhhcyIpLGdldDppKFM9PlMuaW5pdGlhbEltYWdlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaW5pdGlhbEltYWdlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSx2NCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaGFwZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNoYXBlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hhcGU9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHY0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ib3V0cHV0U2l6ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm91dHB1dFNpemUsImdldCIpLHNldDppKChTLEkpPT57Uy5vdXRwdXRTaXplPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx2NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Im91dHB1dFF1YWxpdHkiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5vdXRwdXRRdWFsaXR5LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Mub3V0cHV0UXVhbGl0eT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZiksdjQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50U3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3VycmVudFN0ZXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXJyZW50U3RlcCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmN1cnJlbnRTdGVwPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSx2NCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyb3BwZWRJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3JvcHBlZEltYWdlImluIFMsImhhcyIpLGdldDppKFM9PlMuY3JvcHBlZEltYWdlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3JvcHBlZEltYWdlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSx2NCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvY2Vzc2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNQcm9jZXNzaW5nImluIFMsImhhcyIpLGdldDppKFM9PlMuaXNQcm9jZXNzaW5nLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaXNQcm9jZXNzaW5nPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSx2NChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfSNlPUpuKHRoaXMsbywiIik7Z2V0IGluaXRpYWxJbWFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBpbml0aWFsSW1hZ2Uoayl7dGhpcy4jZT1rfSN0PShKbih0aGlzLGwpLEpuKHRoaXMsZCwicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKGspe3RoaXMuI3Q9a30jYT0oSm4odGhpcyx1KSxKbih0aGlzLGIsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3V0cHV0U2l6ZShrKXt0aGlzLiNhPWt9I3M9KEpuKHRoaXMsdiksSm4odGhpcyxtLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IG91dHB1dFF1YWxpdHkoayl7dGhpcy4jcz1rfSNpPShKbih0aGlzLGYpLEpuKHRoaXMsTSwiY3JvcCIpKTtnZXQgY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VycmVudFN0ZXAoayl7dGhpcy4jaT1rfSNyPShKbih0aGlzLHopLEpuKHRoaXMsQywiIikpO2dldCBjcm9wcGVkSW1hZ2UoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3JvcHBlZEltYWdlKGspe3RoaXMuI3I9a30jbz0oSm4odGhpcyxfKSxKbih0aGlzLCQsITEpKTtnZXQgaXNQcm9jZXNzaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUHJvY2Vzc2luZyhrKXt0aGlzLiNvPWt9Y3JvcHBlcj0oSm4odGhpcyxFKSxudWxsKTt3aW5kb3dMYXllcjt6SW5kZXg9MDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0JhfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICB9CgogICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwYTBhMGEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgd2lkdGg6IDQ4MHB4OwogICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGFuaW1hdGlvbjogbW9kYWxTaG93IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgbW9kYWxTaG93IHsKICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubW9kYWwtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDUycHg7CiAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5jcm9wcGVyLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpIiwiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgICB3aWR0aDogMTgwcHg7CiAgICAgICAgaGVpZ2h0OiAxODBweDsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpIiwiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uucm91bmQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICB9CgogICAgICAuc3VjY2Vzcy1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzEwYjk4MSIsIiMxMGI5ODEiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGFuaW1hdGlvbjogc3VjY2Vzc1B1bHNlIDAuNHMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3VjY2Vzc1B1bHNlIHsKICAgICAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgb3BhY2l0eTogMDsgfQogICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wMik7IH0KICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQogICAgICB9CgogICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuaW5zdHJ1Y3Rpb25zIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICB9CgogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWFyZ2luOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgUm8uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT50aGlzLmNsb3NlKCkpLHRoaXMuekluZGV4PV9hLmdldE5leHRaSW5kZXgoKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLXotaW5kZXgiLHRoaXMuekluZGV4LnRvU3RyaW5nKCkpLF9hLnJlZ2lzdGVyKHRoaXMsdGhpcy56SW5kZXgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNyb3BwZXImJnRoaXMuY3JvcHBlci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksX2EudW5yZWdpc3Rlcih0aGlzKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGFpbmVyIiBAY2xpY2s9JHtrPT5rLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJtb2RhbC10aXRsZSI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj8iQWRqdXN0IEltYWdlIjoiU3VjY2VzcyJ9CiAgICAgICAgICA8L2gzPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xvc2UtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmNsb3NlfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj4KICAgICAgICAgICAgICBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBzcXVhcmUgdG8gc2VsZWN0IHlvdXIgcHJvZmlsZSBhcmVhCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcm9wcGVyLWNvbnRhaW5lciIgaWQ9ImNyb3BwZXJDb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgJHt0aGlzLmlzUHJvY2Vzc2luZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+U2F2aW5nLi4uPC9kaXY+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgPGltZyAKICAgICAgICAgICAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UgJHt0aGlzLnNoYXBlfSIgCiAgICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLmNyb3BwZWRJbWFnZX0iIAogICAgICAgICAgICAgICAgICBhbHQ9IkNyb3BwZWQgcHJldmlldyIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWNjZXNzLW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpjaGVjayIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+TG9va2luZyBnb29kITwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP3dgCiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuY2xvc2V9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ3JvcH0+CiAgICAgICAgICAgICAgU2F2ZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCImJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZUNyb3BwZXIoKX1hc3luYyBpbml0aWFsaXplQ3JvcHBlcigpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IGs9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjcm9wcGVyQ29udGFpbmVyIik7ayYmKHRoaXMuY3JvcHBlcj1uZXcgcjJlKHtjb250YWluZXI6ayxpbWFnZTp0aGlzLmluaXRpYWxJbWFnZSxzaGFwZTp0aGlzLnNoYXBlLGFzcGVjdFJhdGlvOjEsb3V0cHV0U2l6ZTp0aGlzLm91dHB1dFNpemUsb3V0cHV0UXVhbGl0eTp0aGlzLm91dHB1dFF1YWxpdHl9KSxhd2FpdCB0aGlzLmNyb3BwZXIuaW5pdGlhbGl6ZSgpKX1hc3luYyBoYW5kbGVDcm9wKCl7aWYodGhpcy5jcm9wcGVyKXRyeXt0aGlzLmlzUHJvY2Vzc2luZz0hMCx0aGlzLmN1cnJlbnRTdGVwPSJwcmV2aWV3Iixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBrPWF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTt0aGlzLmNyb3BwZWRJbWFnZT1rLGF3YWl0IG5ldyBQcm9taXNlKFM9PnNldFRpbWVvdXQoUyw4MDApKSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOntjcm9wcGVkSW1hZ2U6dGhpcy5jcm9wcGVkSW1hZ2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2xvc2UoKX0sMTUwMCl9Y2F0Y2goayl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JvcHBpbmcgaW1hZ2U6IixrKSx0aGlzLmlzUHJvY2Vzc2luZz0hMX19Y2xvc2UoKXt0aGlzLnJlbW92ZSgpfXN0YXRpY3tKbihhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgc3dhLGl3YT1nKCgpPT57cGUoKTtJdCgpO3hvKCk7aGx0KCk7c3dhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtKYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgICB9CiAgICAgIAogICAgICAuZmVhdHVyZS1saXN0IGxpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9cy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlW3NoYXBlPSJyb3VuZCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCh0PT57bGV0IGE9dC50YXJnZXQ7Y29uc29sZS5sb2coIlJvdW5kIHByb2ZpbGUgcGljdHVyZSBjaGFuZ2VkOiIsYS52YWx1ZT8uc3Vic3RyaW5nKDAsNTApKyIuLi4iKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZmlsZSBQaWN0dXJlIElucHV0In0gLnN1YnRpdGxlPSR7IkJhc2ljIHVzYWdlIHdpdGggcm91bmQgYW5kIHNxdWFyZSBzaGFwZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChSb3VuZCkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgYW4gaW1hZ2UiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoU3F1YXJlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1cHBvcnRzIEpQRUcsIFBORywgYW5kIFdlYlAgZm9ybWF0cyIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntzLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcj1hLnRhcmdldDtjb25zb2xlLmxvZyhgUHJvZmlsZSAoc2l6ZSAke3Iuc2l6ZX0pIGNoYW5nZWRgKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTaXplIFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiUHJvZmlsZSBwaWN0dXJlcyBpbiBkaWZmZXJlbnQgc2l6ZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iU21hbGwgKDgwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjgwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9Ik1lZGl1bSAoMTIwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjEyMCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJMYXJnZSAoMTYwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjE2MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IGU9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S0lDQThaR1ZtY3o0S0lDQWdJRHhzYVc1bFlYSkhjbUZrYVdWdWRDQnBaRDBpWjNKaFpHbGxiblFpSUhneFBTSXdKU0lnZVRFOUlqQWxJaUI0TWowaU1UQXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqQWxJaUJ6ZEc5d0xXTnZiRzl5UFNJak5qWTNaV1ZoSWlBdlBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU0zTmpSaVlUSWlJQzgrQ2lBZ0lDQThMMnhwYm1WaGNrZHlZV1JwWlc1MFBnb2dJRHd2WkdWbWN6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrYVdWdWRDa2lJQzgrQ2lBZ1BIUmxlSFFnZUQwaU5UQWxJaUI1UFNJMU1DVWlJR1J2YldsdVlXNTBMV0poYzJWc2FXNWxQU0p0YVdSa2JHVWlJSFJsZUhRdFlXNWphRzl5UFNKdGFXUmtiR1VpSUdadmJuUXRabUZ0YVd4NVBTSkJjbWxoYkNJZ1ptOXVkQzF6YVhwbFBTSTRNQ0lnWm1sc2JEMGlkMmhwZEdVaVBrcEVQQzkwWlhoMFBnbzhMM04yWno0PSIsdD1zLnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtcHJvZmlsZSIpO3QmJih0LnZhbHVlPWUsdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHI9YS50YXJnZXQsbj1zLnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtb3V0cHV0Iik7biYmKG4udGV4dENvbnRlbnQ9ci52YWx1ZT9gSW1hZ2UgZGF0YTogJHtyLnZhbHVlLnN1YnN0cmluZygwLDgwKX0uLi5gOiJObyBpbWFnZSBzZWxlY3RlZCIpfSkpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJlLWZpbGxlZCBhbmQgVmFsdWUgQmluZGluZyJ9IC5zdWJ0aXRsZT0keyJQcm9maWxlIHBpY3R1cmUgd2l0aCBpbml0aWFsIHZhbHVlIGFuZCBjaGFuZ2UgdHJhY2tpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgaWQ9InByZWZpbGxlZC1wcm9maWxlIgogICAgICAgICAgbGFiZWw9IkVkaXQgRXhpc3RpbmcgUHJvZmlsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0aGUgZWRpdCBidXR0b24gdG8gY2hhbmdlIG9yIGRlbGV0ZSB0byByZW1vdmUiCiAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICBzaXplPSIxNTAiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJwcmVmaWxsZWQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgSW1hZ2UgZGF0YSB3aWxsIGFwcGVhciBoZXJlIHdoZW4gY2hhbmdlZAogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBlPXMucXVlcnlTZWxlY3RvcigiI2Rpc2FibGVkLXByb2ZpbGUiKTtlJiYoZS52YWx1ZT0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaUkyTmpZMk5qWXlJZ0x6NEtJQ0E4ZEdWNGRDQjRQU0kxTUNVaUlIazlJalV3SlNJZ1pHOXRhVzVoYm5RdFltRnpaV3hwYm1VOUltMXBaR1JzWlNJZ2RHVjRkQzFoYm1Ob2IzSTlJbTFwWkdSc1pTSWdabTl1ZEMxbVlXMXBiSGs5SWtGeWFXRnNJaUJtYjI1MExYTnBlbVU5SWpZd0lpQm1hV3hzUFNKM2FHbDBaU0krVGtFOEwzUmxlSFErQ2p3dmMzWm5QZz09Iil9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlJlcXVpcmVkIEZpZWxkIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGlkPSJkaXNhYmxlZC1wcm9maWxlIgogICAgICAgICAgICBsYWJlbD0iRGlzYWJsZWQgU3RhdGUiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDYW5ub3QgYmUgZWRpdGVkIgogICAgICAgICAgICBzaGFwZT0ic3F1YXJlIgogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJVcGxvYWQgT25seSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkRlbGV0ZSBub3QgYWxsb3dlZCIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICAuYWxsb3dEZWxldGU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIGZlYXR1cmUgc2V0IG9mIHRoZSBwcm9maWxlIHBpY3R1cmUgaW5wdXQifT4KICAgICAgICA8dWwgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBVcGxvYWQ6PC9zdHJvbmc+IENsaWNrIHRvIHVwbG9hZCBvciBkcmFnICYgZHJvcCBpbWFnZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgQ3JvcHBpbmc6PC9zdHJvbmc+IEludGVyYWN0aXZlIGNyb3AgdG9vbCB3aXRoIHJlc2l6ZSBoYW5kbGVzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlNoYXBlIFN1cHBvcnQ6PC9zdHJvbmc+IFJvdW5kIG9yIHNxdWFyZSBwcm9maWxlIHBpY3R1cmVzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlNpemUgQ3VzdG9taXphdGlvbjo8L3N0cm9uZz4gQWRqdXN0YWJsZSBkaW1lbnNpb25zPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlByZXZpZXcgJiBFZGl0Ojwvc3Ryb25nPiBIb3ZlciBvdmVybGF5IHdpdGggZWRpdCBhbmQgZGVsZXRlIG9wdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+RmlsZSBWYWxpZGF0aW9uOjwvc3Ryb25nPiBGb3JtYXQgYW5kIHNpemUgcmVzdHJpY3Rpb25zPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlJlc3BvbnNpdmUgRGVzaWduOjwvc3Ryb25nPiBXb3JrcyBvbiBkZXNrdG9wIGFuZCBtb2JpbGUgZGV2aWNlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5Gb3JtIEludGVncmF0aW9uOjwvc3Ryb25nPiBTdGFuZGFyZCBmb3JtIHZhbHVlIGJpbmRpbmcgYW5kIHZhbGlkYXRpb248L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+QWNjZXNzaWJpbGl0eTo8L3N0cm9uZz4gS2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgc2NyZWVuIHJlYWRlciBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPlotSW5kZXggTWFuYWdlbWVudDo8L3N0cm9uZz4gUHJvcGVyIG1vZGFsIHN0YWNraW5nIHdpdGggcmVnaXN0cnk8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPHN0cm9uZz5TdXBwb3J0ZWQgRm9ybWF0czo8L3N0cm9uZz4gSlBFRywgUE5HLCBXZWJQPGJyPgogICAgICAgICAgPHN0cm9uZz5NYXggRmlsZSBTaXplOjwvc3Ryb25nPiA1TUIgKGNvbmZpZ3VyYWJsZSk8YnI+CiAgICAgICAgICA8c3Ryb25nPk91dHB1dCBGb3JtYXQ6PC9zdHJvbmc+IEJhc2U2NCBlbmNvZGVkIEpQRUcKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFBsLEpzLEFlcyxobHQ9ZygoKT0+e3BlKCk7RWkoKTtHYSgpO2J4KCk7YXdhKCk7aXdhKCk7aHQoKTtQbD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sSnM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEFlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKV0sZSx0PVtdLGEscj1CdCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W107dmFyIGllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRQcm9maWxlUGljdHVyZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCB0ZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOk51bWJlcn0pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOkJvb2xlYW59KV0sTj1bTCh7dHlwZTpCb29sZWFufSldLE89W0woe3R5cGU6TnVtYmVyfSldLEg9W0woe3R5cGU6QXJyYXl9KV0sST1bTCh7dHlwZTpOdW1iZXJ9KV0sSz1bTCh7dHlwZTpOdW1iZXJ9KV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0sUGwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InZhbHVlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUudmFsdWUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS52YWx1ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sbyxsKSxQbCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2hhcGUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zaGFwZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnNoYXBlPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxkLHUpLFBsKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InNpemUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuc2l6ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sYix2KSxQbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4icGxhY2Vob2xkZXIiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLnBsYWNlaG9sZGVyPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxtLGYpLFBsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dVcGxvYWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJhbGxvd1VwbG9hZCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmFsbG93VXBsb2FkLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuYWxsb3dVcGxvYWQ9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LE0seiksUGwodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0RlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImFsbG93RGVsZXRlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYWxsb3dEZWxldGUsImdldCIpLHNldDppKChlZSxrZSk9PntlZS5hbGxvd0RlbGV0ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sQyxfKSxQbCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibWF4RmlsZVNpemUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5tYXhGaWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLm1heEZpbGVTaXplPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSwkLEUpLFBsKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0ZWRGb3JtYXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYWNjZXB0ZWRGb3JtYXRzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYWNjZXB0ZWRGb3JtYXRzLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuYWNjZXB0ZWRGb3JtYXRzPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxrLFMpLFBsKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im91dHB1dFNpemUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5vdXRwdXRTaXplLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUub3V0cHV0U2l6ZT1rZX0sInNldCIpfSxtZXRhZGF0YTp0ZX0sUCxSKSxQbCh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJvdXRwdXRRdWFsaXR5ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUub3V0cHV0UXVhbGl0eSwiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLm91dHB1dFF1YWxpdHk9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LFYsVyksUGwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iaXNIb3ZlcmVkImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaXNIb3ZlcmVkLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaXNIb3ZlcmVkPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxCLFUpLFBsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJpc0RyYWdnaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaXNEcmFnZ2luZywiZ2V0Iiksc2V0OmkoKGVlLGtlKT0+e2VlLmlzRHJhZ2dpbmc9a2V9LCJzZXQiKX0sbWV0YWRhdGE6dGV9LEYsaiksUGwodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iaXNMb2FkaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoZWUsa2UpPT57ZWUuaXNMb2FkaW5nPWtlfSwic2V0Iil9LG1ldGFkYXRhOnRlfSxsZSxRKSxQbChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTp0ZX0sbnVsbCx0KSxpZT1hPWUudmFsdWUsdGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dGV9KX1zdGF0aWMgZGVtbz1zd2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUpzKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKHRlKXt0aGlzLiNlPXRlfSN0PShKcyh0aGlzLGwpLEpzKHRoaXMsZCwicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKHRlKXt0aGlzLiN0PXRlfSNhPShKcyh0aGlzLHUpLEpzKHRoaXMsYiwxMjApKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBzaXplKHRlKXt0aGlzLiNhPXRlfSNzPShKcyh0aGlzLHYpLEpzKHRoaXMsbSwiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNzfXNldCBwbGFjZWhvbGRlcih0ZSl7dGhpcy4jcz10ZX0jaT0oSnModGhpcyxmKSxKcyh0aGlzLE0sITApKTtnZXQgYWxsb3dVcGxvYWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWxsb3dVcGxvYWQodGUpe3RoaXMuI2k9dGV9I3I9KEpzKHRoaXMseiksSnModGhpcyxDLCEwKSk7Z2V0IGFsbG93RGVsZXRlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFsbG93RGVsZXRlKHRlKXt0aGlzLiNyPXRlfSNvPShKcyh0aGlzLF8pLEpzKHRoaXMsJCw1KjEwMjQqMTAyNCkpO2dldCBtYXhGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNvfXNldCBtYXhGaWxlU2l6ZSh0ZSl7dGhpcy4jbz10ZX0jbj0oSnModGhpcyxFKSxKcyh0aGlzLGssWyJpbWFnZS9qcGVnIiwiaW1hZ2UvcG5nIiwiaW1hZ2Uvd2VicCJdKSk7Z2V0IGFjY2VwdGVkRm9ybWF0cygpe3JldHVybiB0aGlzLiNufXNldCBhY2NlcHRlZEZvcm1hdHModGUpe3RoaXMuI249dGV9I2w9KEpzKHRoaXMsUyksSnModGhpcyxQLDgwMCkpO2dldCBvdXRwdXRTaXplKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG91dHB1dFNpemUodGUpe3RoaXMuI2w9dGV9I2M9KEpzKHRoaXMsUiksSnModGhpcyxWLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG91dHB1dFF1YWxpdHkodGUpe3RoaXMuI2M9dGV9I2Q9KEpzKHRoaXMsVyksSnModGhpcyxCLCExKSk7Z2V0IGlzSG92ZXJlZCgpe3JldHVybiB0aGlzLiNkfXNldCBpc0hvdmVyZWQodGUpe3RoaXMuI2Q9dGV9I3U9KEpzKHRoaXMsVSksSnModGhpcyxGLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaXNEcmFnZ2luZyh0ZSl7dGhpcy4jdT10ZX0jcD0oSnModGhpcyxqKSxKcyh0aGlzLGxlLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCBpc0xvYWRpbmcodGUpe3RoaXMuI3A9dGV9bW9kYWxJbnN0YW5jZT0oSnModGhpcyxRKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtxZSwuLi5CdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5kcmFnZ2luZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyOmhvdmVyIC5vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3ZlcmxheS1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjk1KSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuOSkiLCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjkpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNkYzI2MjYiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wLXpvbmUtdGV4dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oaWRkZW4taW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExvYWRpbmcgYW5pbWF0aW9uICovCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAubG9hZGluZy1vdmVybGF5LnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmNsaWNraW5nIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDAuM3MgZWFzZS1vdXQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgCiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJwcm9maWxlLWNvbnRhaW5lciIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLmhhbmRsZURyYWdPdmVyfQogICAgICAgICAgQGRyYWdsZWF2ZT0ke3RoaXMuaGFuZGxlRHJhZ0xlYXZlfQogICAgICAgICAgQGRyb3A9JHt0aGlzLmhhbmRsZURyb3B9CiAgICAgICAgICBzdHlsZT0iLS1zaXplOiAke3RoaXMuc2l6ZX1weCIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLXBpY3R1cmUgJHt0aGlzLnNoYXBlfSAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSAke3RoaXMuaXNMb2FkaW5nJiYhdGhpcy52YWx1ZT8iY2xpY2tpbmciOiIifSI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT93YAogICAgICAgICAgICAgIDxpbWcgY2xhc3M9InByb2ZpbGUtaW1hZ2UiIHNyYz0iJHt0aGlzLnZhbHVlfSIgYWx0PSJQcm9maWxlIHBpY3R1cmUiIC8+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6dXNlciIgaWNvblNpemU9IiR7dGhpcy5zaXplKi41fSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIGB9CiAgICAgICAgICAgIAogICAgICAgICAgICAke3RoaXMuaXNEcmFnZ2luZz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiIHN0eWxlPSJvcGFjaXR5OiAxIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Atem9uZS10ZXh0Ij4KICAgICAgICAgICAgICAgICAgRHJvcCBpbWFnZSBoZXJlCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy52YWx1ZSYmIXRoaXMuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd1VwbG9hZD93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im92ZXJsYXktYnV0dG9uIiBAY2xpY2s9JHt0ZT0+e3RlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1vZGFsKCl9fSB0aXRsZT0iQ2hhbmdlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6cGVuY2lsIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGU/d2AKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdmVybGF5LWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke3RlPT57dGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kZWxldGVQaWN0dXJlKCl9fSB0aXRsZT0iRGVsZXRlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6dHJhc2gyIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIAogICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nJiYhdGhpcy52YWx1ZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSBzaG93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8aW5wdXQKICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICBjbGFzcz0iaGlkZGVuLWlucHV0IgogICAgICAgICAgYWNjZXB0PSIke3RoaXMuYWNjZXB0ZWRGb3JtYXRzLmpvaW4oIiwiKX0iCiAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5oYW5kbGVGaWxlU2VsZWN0fQogICAgICAgIC8+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDbGljaygpe2lmKCEodGhpcy5kaXNhYmxlZHx8IXRoaXMuYWxsb3dVcGxvYWQpJiYhdGhpcy52YWx1ZSl7dGhpcy5pc0xvYWRpbmc9ITA7bGV0IHRlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IiksZWU9aSgoKT0+e3NldFRpbWVvdXQoKCk9PnsoIXRlLmZpbGVzfHx0ZS5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGVlKX0sMzAwKX0sImhhbmRsZUZvY3VzIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixlZSksdGUuY2xpY2soKX19aGFuZGxlRmlsZVNlbGVjdCh0ZSl7bGV0IGVlPXRlLnRhcmdldCxrZT1lZS5maWxlcz8uWzBdO3RoaXMuaXNMb2FkaW5nPSExLGtlJiZ0aGlzLnByb2Nlc3NGaWxlKGtlKSxlZS52YWx1ZT0iIn1oYW5kbGVEcmFnT3Zlcih0ZSl7dGUucHJldmVudERlZmF1bHQoKSwhdGhpcy5kaXNhYmxlZCYmdGhpcy5hbGxvd1VwbG9hZCYmKHRoaXMuaXNEcmFnZ2luZz0hMCl9aGFuZGxlRHJhZ0xlYXZlKCl7dGhpcy5pc0RyYWdnaW5nPSExfWhhbmRsZURyb3AodGUpe2lmKHRlLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKXJldHVybjtsZXQgZWU9dGUuZGF0YVRyYW5zZmVyPy5maWxlc1swXTtlZSYmdGhpcy5wcm9jZXNzRmlsZShlZSl9YXN5bmMgcHJvY2Vzc0ZpbGUodGUpe2lmKCF0aGlzLmFjY2VwdGVkRm9ybWF0cy5pbmNsdWRlcyh0ZS50eXBlKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6Iix0ZS50eXBlKTtyZXR1cm59aWYodGUuc2l6ZT50aGlzLm1heEZpbGVTaXplKXtjb25zb2xlLmVycm9yKCJGaWxlIHRvbyBsYXJnZToiLHRlLnNpemUpO3JldHVybn1sZXQgZWU9bmV3IEZpbGVSZWFkZXI7ZWUub25sb2FkPWFzeW5jIGtlPT57bGV0IFg9a2UudGFyZ2V0Py5yZXN1bHQ7YXdhaXQgdGhpcy5vcGVuTW9kYWwoWCl9LGVlLnJlYWRBc0RhdGFVUkwodGUpfWFzeW5jIG9wZW5Nb2RhbCh0ZSl7bGV0IGVlPXRlfHx0aGlzLnZhbHVlO2lmKCFlZSl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5oaWRkZW4taW5wdXQiKS5jbGljaygpO3JldHVybn10aGlzLm1vZGFsSW5zdGFuY2U9bmV3IHBsdCx0aGlzLm1vZGFsSW5zdGFuY2Uuc2hhcGU9dGhpcy5zaGFwZSx0aGlzLm1vZGFsSW5zdGFuY2UuaW5pdGlhbEltYWdlPWVlLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRTaXplPXRoaXMub3V0cHV0U2l6ZSx0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0UXVhbGl0eT10aGlzLm91dHB1dFF1YWxpdHksdGhpcy5tb2RhbEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInNhdmUiLChrZT0+e3RoaXMudmFsdWU9a2UuZGV0YWlsLmNyb3BwZWRJbWFnZSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubW9kYWxJbnN0YW5jZSl9ZGVsZXRlUGljdHVyZSgpe3RoaXMudmFsdWU9IiIsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSh0ZSl7dGhpcy52YWx1ZT10ZX1zdGF0aWN7SnMoYSx0KX19O3JldHVybiBpZT1hfSkoKX0pO3ZhciByd2E9ZygoKT0+e0h5YSgpO05udCgpO3F5YSgpO0ExZSgpO1JudCgpO2ludCgpO2p5YSgpO1Z5YSgpO1V5YSgpO1d5YSgpO0d5YSgpO0t5YSgpO1l5YSgpO1h5YSgpO09udCgpO0FudCgpO1F5YSgpO0p5YSgpO2V3YSgpO2hsdCgpfSk7dmFyIG93YSxud2E9ZygoKT0+e3BlKCk7b3dhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb0NvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm9uLVNlbGVjdGFibGUgQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QmFzaWMgY2hpcHMgd2l0aG91dCBzZWxlY3Rpb24gY2FwYWJpbGl0eS4gVXNlIGZvciBkaXNwbGF5LW9ubHkgdGFncy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJub25lIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToic3RhdHVzIix2YWx1ZToiQWN0aXZlIn0se2tleToidGllciIsdmFsdWU6IlByZW1pdW0ifSx7a2V5OiJyZWdpb24iLHZhbHVlOiJFVS1XZXN0In0se2tleToidHlwZSIsdmFsdWU6IkVudGVycHJpc2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNpbmdsZSBTZWxlY3Rpb24gQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2xpY2sgdG8gc2VsZWN0IG9uZSBjaGlwIGF0IGEgdGltZS4gVXNlZnVsIGZvciBmaWx0ZXJzIGFuZCBvcHRpb25zLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImFsbCIsdmFsdWU6IkFsbCBQcm9qZWN0cyJ9LHtrZXk6ImFjdGl2ZSIsdmFsdWU6IkFjdGl2ZSJ9LHtrZXk6ImFyY2hpdmVkIix2YWx1ZToiQXJjaGl2ZWQifSx7a2V5OiJkcmFmdHMiLHZhbHVlOiJEcmFmdHMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpcGxlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgbXVsdGlwbGUgY2hpcHMgc2ltdWx0YW5lb3VzbHkuIEdyZWF0IGZvciB0YWcgc2VsZWN0aW9uLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im11bHRpcGxlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToianMiLHZhbHVlOiJKYXZhU2NyaXB0In0se2tleToidHMiLHZhbHVlOiJUeXBlU2NyaXB0In0se2tleToicmVhY3QiLHZhbHVlOiJSZWFjdCJ9LHtrZXk6InZ1ZSIsdmFsdWU6IlZ1ZSJ9LHtrZXk6ImFuZ3VsYXIiLHZhbHVlOiJBbmd1bGFyIn0se2tleToibm9kZSIsdmFsdWU6Ik5vZGUuanMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlJlbW92YWJsZSBDaGlwcyB3aXRoIEtleXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2hpcHMgd2l0aCByZW1vdmUgYnV0dG9ucyBhbmQga2V5LXZhbHVlIHBhaXJzLiBQZXJmZWN0IGZvciBkeW5hbWljIGxpc3RzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiZW52Iix2YWx1ZToiUHJvZHVjdGlvbiJ9LHtrZXk6InZlcnNpb24iLHZhbHVlOiIyLjQuMSJ9LHtrZXk6ImJyYW5jaCIsdmFsdWU6Im1haW4ifSx7a2V5OiJhdXRob3IiLHZhbHVlOiJKb2huIERvZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWl4ZWQgQ29udGVudCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbWJpbmluZyBkaWZmZXJlbnQgY2hpcCB0eXBlcyBmb3IgY29tcGxleCBVSXMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgY2hpcHNBcmVSZW1vdmFibGUKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6InByaW9yaXR5Iix2YWx1ZToiSGlnaCJ9LHtrZXk6InN0YXR1cyIsdmFsdWU6IkluIFByb2dyZXNzIn0se2tleToiYnVnIix2YWx1ZToiQnVnIn0se2tleToiZmVhdHVyZSIsdmFsdWU6IkZlYXR1cmUifSx7a2V5OiJzcHJpbnQiLHZhbHVlOiJTcHJpbnQgMjMifSx7a2V5OiJhc3NpZ25lZSIsdmFsdWU6IkFsaWNlIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQ3gsSTIsTmVzLGx3YT1nKCgpPT57cGUoKTtrdCgpO253YSgpO2h0KCk7Q3g9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEkyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxOZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWNoaXBzIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNDaGlwcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpCb29sZWFufSldLGM9W0woe3R5cGU6QXJyYXl9KV0seD1bTCgpXSx5PVtMKHt0eXBlOkFycmF5fSldLEN4KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0aW9uTW9kZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGlvbk1vZGUsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3Rpb25Nb2RlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxDeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjaGlwc0FyZVJlbW92YWJsZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmNoaXBzQXJlUmVtb3ZhYmxlLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY2hpcHNBcmVSZW1vdmFibGU9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLEN4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RhYmxlQ2hpcHMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RhYmxlQ2hpcHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RhYmxlQ2hpcHM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLEN4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJzZWxlY3RlZENoaXAiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5zZWxlY3RlZENoaXAsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RlZENoaXA9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLEN4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2VsZWN0ZWRDaGlwcyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNlbGVjdGVkQ2hpcHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zZWxlY3RlZENoaXBzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxDeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPW93YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPUkyKHRoaXMsbywic2luZ2xlIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VsZWN0aW9uTW9kZShDKXt0aGlzLiNlPUN9I3Q9KEkyKHRoaXMsbCksSTIodGhpcyxkLCExKSk7Z2V0IGNoaXBzQXJlUmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNoaXBzQXJlUmVtb3ZhYmxlKEMpe3RoaXMuI3Q9Q30jYT0oSTIodGhpcyx1KSxJMih0aGlzLGIsW10pKTtnZXQgc2VsZWN0YWJsZUNoaXBzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGFibGVDaGlwcyhDKXt0aGlzLiNhPUN9I3M9KEkyKHRoaXMsdiksSTIodGhpcyxtLG51bGwpKTtnZXQgc2VsZWN0ZWRDaGlwKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkQ2hpcChDKXt0aGlzLiNzPUN9I2k9KEkyKHRoaXMsZiksSTIodGhpcyxNLFtdKSk7Z2V0IHNlbGVjdGVkQ2hpcHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRDaGlwcyhDKXt0aGlzLiNpPUN9Y29uc3RydWN0b3IoKXtzdXBlcigpLEkyKHRoaXMseil9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTsKICAgICAgfQoKICAgICAgLmNoaXA6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmNoaXA6YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICB9CgogICAgICAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICAgICAgcGFkZGluZzogMHB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgLmNoaXBLZXkgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsKICAgICAgfQoKICAgICAgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIGRlZXMtaWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgJHt0aGlzLnNlbGVjdGFibGVDaGlwcy5tYXAoQz0+d2AKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdENoaXAoQyl9CiAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmlzU2VsZWN0ZWQoQyk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke0Mua2V5P3dgPGRpdiBjbGFzcz0iY2hpcEtleSI+JHtDLmtleX08L2Rpdj5gOndgYH0gJHtDLnZhbHVlfQogICAgICAgICAgICAgICR7dGhpcy5jaGlwc0FyZVJlbW92YWJsZT93YAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke189PntfLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMucmVtb3ZlQ2hpcChDKX19CiAgICAgICAgICAgICAgICAgICAgICAuaWNvbj0keyJmYTp4bWFyayJ9CiAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31pc1NlbGVjdGVkKEMpe3JldHVybiB0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj90aGlzLnNlbGVjdGVkQ2hpcD90aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsQyk6ITE6dGhpcy5zZWxlY3RlZENoaXBzLnNvbWUoXz0+dGhpcy5pc1NhbWVDaGlwKF8sQykpfWlzU2FtZUNoaXAoQyxfKXtyZXR1cm4oQy5rZXkmJl8ua2V5fHxDLnZhbHVlPT09Xy52YWx1ZSkmJkMua2V5PT09Xy5rZXl9YXN5bmMgc2VsZWN0Q2hpcChDKXt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSImJih0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj90aGlzLmlzU2VsZWN0ZWQoQyk/KHRoaXMuc2VsZWN0ZWRDaGlwPW51bGwsdGhpcy5zZWxlY3RlZENoaXBzPVtdKToodGhpcy5zZWxlY3RlZENoaXA9Qyx0aGlzLnNlbGVjdGVkQ2hpcHM9W0NdKTp0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGlwbGUiJiYodGhpcy5pc1NlbGVjdGVkKEMpP3RoaXMuc2VsZWN0ZWRDaGlwcz10aGlzLnNlbGVjdGVkQ2hpcHMuZmlsdGVyKF89PiF0aGlzLmlzU2FtZUNoaXAoXyxDKSk6dGhpcy5zZWxlY3RlZENoaXBzPVsuLi50aGlzLnNlbGVjdGVkQ2hpcHMsQ10sdGhpcy5yZXF1ZXN0VXBkYXRlKCkpLGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRDaGlwcykpfXJlbW92ZUNoaXAoQyl7dGhpcy5zZWxlY3RhYmxlQ2hpcHM9dGhpcy5zZWxlY3RhYmxlQ2hpcHMuZmlsdGVyKF89PiF0aGlzLmlzU2FtZUNoaXAoXyxDKSksdGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoXz0+IXRoaXMuaXNTYW1lQ2hpcChfLEMpKSx0aGlzLnNlbGVjdGVkQ2hpcCYmdGhpcy5pc1NhbWVDaGlwKHRoaXMuc2VsZWN0ZWRDaGlwLEMpJiYodGhpcy5zZWxlY3RlZENoaXA9bnVsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje0kyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBjd2E9ZygoKT0+e2x3YSgpfSk7dmFyIGR3YSx1d2E9ZygoKT0+e3BlKCk7SXQoKTtkd2E9aSgoKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHM9PntsZXQgZT1zLnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRHcmlkIiksdD1be2lkOiJtZXRyaWNzMSIseDowLHk6MCx3OjMsaDoyLHRpdGxlOiJSZXZlbnVlIixpY29uOiJsdWNpZGU6ZG9sbGFyU2lnbiIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JDEyNCw1NjM8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzIyYzU1ZTsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tdG9wOiA4cHg7Ij7ihpEgMTIuNSUgZnJvbSBsYXN0IG1vbnRoPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJtZXRyaWNzMiIseDozLHk6MCx3OjMsaDoyLHRpdGxlOiJVc2VycyIsaWNvbjoibHVjaWRlOnVzZXJzIixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij44LDIzNDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjM2I4MmY2OyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSA1LjIlIGZyb20gbGFzdCB3ZWVrPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJjaGFydDEiLHg6Nix5OjAsdzo2LGg6NCx0aXRsZToiQW5hbHl0aWNzIixpY29uOiJsdWNpZGU6bGluZUNoYXJ0Iixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjNzE3MTdhOyI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsaW5lQ2hhcnQifSBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAxNnB4OyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2PkNoYXJ0IHZpc3VhbGl6YXRpb24gYXJlYTwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9XTtlLndpZGdldHM9dC5tYXAoeT0+KHsuLi55fSkpLGUuY2VsbEhlaWdodD04MCxlLm1hcmdpbj17dG9wOjEwLHJpZ2h0OjEwLGJvdHRvbToxMCxsZWZ0OjEwfSxlLmVuYWJsZUFuaW1hdGlvbj0hMCxlLnNob3dHcmlkTGluZXM9ITE7bGV0IGE9ZS5nZXRMYXlvdXQoKS5tYXAoeT0+KHsuLi55fSkpLHI9ZS53aWRnZXRzLm1hcCgoeSxNKT0+KHtpZDp5LmlkLHg6MCx5Ok09PT0wPzA6ZS53aWRnZXRzLnNsaWNlKDAsTSkucmVkdWNlKCh6LE4pPT56K04uaCwwKSx3OmUuY29sdW1ucyxoOnkuaH0pKTtlLmxheW91dHM9e2Jhc2U6YSxtb2JpbGU6cn07bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIiksbz1pKCgpPT57bGV0IHk9ZS5nZXRMYXlvdXQoKTtuLnRleHRDb250ZW50PWBBY3RpdmUgYnJlYWtwb2ludDogJHtlLmFjdGl2ZUJyZWFrcG9pbnR9IFx1MjAyMiBUaWxlczogJHt5Lmxlbmd0aH1gfSwidXBkYXRlU3RhdHVzIiksbD13aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzY4cHgpIikscD1pKCgpPT57bGV0IHk9bC5tYXRjaGVzPyJtb2JpbGUiOiJiYXNlIjtlLmFwcGx5QnJlYWtwb2ludExheW91dCh5KSxvKCl9LCJoYW5kbGVCcmVha3BvaW50Iik7dHlwZW9mIGwuYWRkRXZlbnRMaXN0ZW5lcj09ImZ1bmN0aW9uIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscCk6bC5hZGRMaXN0ZW5lcj8uKHApLHAoKTtsZXQgZD00O3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHk9Pntzd2l0Y2goeS50ZXh0Py50cmltKCkpe2Nhc2UiVG9nZ2xlIEFuaW1hdGlvbiI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmVuYWJsZUFuaW1hdGlvbj0hZS5lbmFibGVBbmltYXRpb259KTticmVhaztjYXNlIlRvZ2dsZSBHcmlkIExpbmVzIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2Uuc2hvd0dyaWRMaW5lcz0hZS5zaG93R3JpZExpbmVzfSk7YnJlYWs7Y2FzZSJBZGQgV2lkZ2V0Ijp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCB6PXtpZDpgd2lkZ2V0JHtkKyt9YCx4OjAseTowLHc6MyxoOjIsYXV0b1Bvc2l0aW9uOiEwLHRpdGxlOmBXaWRnZXQgJHtkLTF9YCxpY29uOiJsdWNpZGU6cGFja2FnZSIsY29udGVudDp3YAogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzcxNzE3YTsiPk5ldyB3aWRnZXQgY29udGVudDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsgZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfTtlLmFkZFdpZGdldCh6LCEwKX0pO2JyZWFrO2Nhc2UiQ29tcGFjdCBHcmlkIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuY29tcGFjdCgpfSk7YnJlYWs7Y2FzZSJUb2dnbGUgRWRpdCBNb2RlIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZWRpdGFibGU9IWUuZWRpdGFibGUseS50ZXh0PWUuZWRpdGFibGU/IkxvY2sgR3JpZCI6IlVubG9jayBHcmlkIn0pO2JyZWFrO2Nhc2UiUmVzZXQgTGF5b3V0Ijp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuYXBwbHlCcmVha3BvaW50TGF5b3V0KGUuYWN0aXZlQnJlYWtwb2ludCl9KTticmVhaztkZWZhdWx0OmJyZWFrfX0pO2xldCBjPW51bGwsYj0wLHY9aSgoeSxNKT0+e2xldCB6PWUuZ2V0TGF5b3V0KCk7Y29uc29sZS5ncm91cChgXHV7MUY1MDR9ICR7eX0gW0V2ZW50ICMkeysrYn1dYCksY29uc29sZS5sb2coIlRpbWVzdGFtcDoiLG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSksY29uc29sZS5sb2coIkdyaWQgQ29uZmlndXJhdGlvbjoiLHtjb2x1bW5zOmUuY29sdW1ucyxjZWxsSGVpZ2h0OmUuY2VsbEhlaWdodCxtYXJnaW46ZS5tYXJnaW4sZWRpdGFibGU6ZS5lZGl0YWJsZSxhY3RpdmVCcmVha3BvaW50OmUuYWN0aXZlQnJlYWtwb2ludH0pLGNvbnNvbGUubG9nKCJDdXJyZW50IExheW91dDoiLHopLGNvbnNvbGUubG9nKCJXaWRnZXQgQ291bnQ6Iix6Lmxlbmd0aCksY29uc29sZS5sb2coIkdyaWQgQm91bmRzOiIse3RvdGFsV2lkZ2V0czplLndpZGdldHMubGVuZ3RoLG1heFk6TWF0aC5tYXgoLi4uei5tYXAoTj0+Ti55K04uaCkpLG9jY3VwaWVkOnoubWFwKE49PmAke04uaWR9OiAoJHtOLnh9LCR7Ti55fSkgJHtOLnd9eCR7Ti5ofWApLmpvaW4oIiwgIil9KSxNJiZjb25zb2xlLmxvZygiRXZlbnQgRGV0YWlsczoiLE0pLGNvbnNvbGUuZ3JvdXBFbmQoKX0sImxvZ0dyaWRTdGF0ZSIpLHg9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCk9PntsZXQgeT1lLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wbGFjZWhvbGRlciIpO2lmKHkpe2xldCBNPXtsZWZ0Onkuc3R5bGUubGVmdCx0b3A6eS5zdHlsZS50b3Asd2lkdGg6eS5zdHlsZS53aWR0aCxoZWlnaHQ6eS5zdHlsZS5oZWlnaHR9O2lmKEpTT04uc3RyaW5naWZ5KE0pIT09SlNPTi5zdHJpbmdpZnkoYykpe2NvbnNvbGUuZ3JvdXAoIlx1ezFGNENEfSBQbGFjZWhvbGRlciBQb3NpdGlvbiBDaGFuZ2VkIiksY29uc29sZS5sb2coIlByZXZpb3VzOiIsYyksY29uc29sZS5sb2coIkN1cnJlbnQ6IixNKTtsZXQgej1lLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ncmlkLWNvbnRhaW5lciIpO3omJmNvbnNvbGUubG9nKCJHcmlkIENvbnRhaW5lciBEaW1lbnNpb25zOiIse3dpZHRoOnouY2xpZW50V2lkdGgsaGVpZ2h0OnouY2xpZW50SGVpZ2h0fSksY29uc29sZS5ncm91cEVuZCgpLGM9TX19fSk7ZS5zaGFkb3dSb290JiZ4Lm9ic2VydmUoZS5zaGFkb3dSb290LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInN0eWxlIl19KSx2KCJJbml0aWFsIEdyaWQgU3RhdGUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1tb3ZlIix5PT57bGV0IE09eS5kZXRhaWw7digiV2lkZ2V0IE1vdmUiLHt3aWRnZXQ6TS53aWRnZXQsZGlzcGxhY2VkOk0uZGlzcGxhY2VkLHN3YXBwZWRXaXRoOk0uc3dhcHBlZFdpdGh9KX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlc2l6ZSIseT0+e2xldCBNPXkuZGV0YWlsO3YoIldpZGdldCBSZXNpemUiLHt3aWRnZXQ6TS53aWRnZXQsZGlzcGxhY2VkOk0uZGlzcGxhY2VkLHN3YXBwZWRXaXRoOk0uc3dhcHBlZFdpdGh9KX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlbW92ZSIseT0+e2xldCBNPXkuZGV0YWlsO3YoIldpZGdldCBSZW1vdmUiLHtyZW1vdmVkV2lkZ2V0Ok0ud2lkZ2V0fSksbygpfSksZS5hZGRFdmVudExpc3RlbmVyKCJsYXlvdXQtY2hhbmdlIiwoKT0+e3YoIkxheW91dCBDaGFuZ2UiKSxvKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix5PT57bGV0IE09eS50YXJnZXQuY2xvc2VzdCgiLndpZGdldC1oZWFkZXIiKSx6PXkudGFyZ2V0LmNsb3Nlc3QoIi5yZXNpemUtaGFuZGxlIik7aWYoTXx8eil7Y29uc29sZS5ncm91cChgXHV7MUYzQUZ9IEludGVyYWN0aW9uIFN0YXJ0ZWQ6ICR7TT8iRHJhZyI6IlJlc2l6ZSJ9YCksY29uc29sZS5sb2coIlRhcmdldCBXaWRnZXQ6Iix5LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik/LmdldEF0dHJpYnV0ZSgiZGF0YS13aWRnZXQtaWQiKSksY29uc29sZS5sb2coIlBvaW50ZXIgUG9zaXRpb246Iix7eDp5LmNsaWVudFgseTp5LmNsaWVudFl9KSxjb25zb2xlLmdyb3VwRW5kKCk7bGV0IE49aShfPT57bGV0IE89eS50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpO08mJmNvbnNvbGUubG9nKCJcdTIxOTRcdUZFMEYgUG9pbnRlciBNb3ZlOiIse3dpZGdldElkOk8uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpLHBvc2l0aW9uOnt4Ol8uY2xpZW50WCx5Ol8uY2xpZW50WX0sZGVsdGE6e3g6Xy5jbGllbnRYLXkuY2xpZW50WCx5Ol8uY2xpZW50WS15LmNsaWVudFl9fSl9LCJoYW5kbGVQb2ludGVyTW92ZSIpLEM9aSgoKT0+e2NvbnNvbGUuZ3JvdXAoIlx1ezFGM0MxfSBJbnRlcmFjdGlvbiBFbmRlZCIpLHYoIkZpbmFsIFN0YXRlIEFmdGVyIEludGVyYWN0aW9uIiksY29uc29sZS5ncm91cEVuZCgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixOKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLEMpfSwiaGFuZGxlUG9pbnRlclVwIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLE4pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsQyl9fSk7bGV0IG09ZS5hZGRXaWRnZXQuYmluZChlKTtlLmFkZFdpZGdldD0oeSxNKT0+e2NvbnNvbGUuZ3JvdXAoIlx1Mjc5NSBBZGRpbmcgV2lkZ2V0IiksY29uc29sZS5sb2coIk5ldyBXaWRnZXQ6Iix5KSxjb25zb2xlLmxvZygiQXV0byBQb3NpdGlvbjoiLE0pO2xldCB6PW0oeSxNKTtyZXR1cm4gdigiQWZ0ZXIgV2lkZ2V0IEFkZGVkIiksY29uc29sZS5ncm91cEVuZCgpLHp9O2xldCBmPWUuY29tcGFjdC5iaW5kKGUpO2UuY29tcGFjdD15PT57Y29uc29sZS5ncm91cCgiXHV7MUY1REN9XHVGRTBGIENvbXBhY3RpbmcgR3JpZCIpLGNvbnNvbGUubG9nKCJEaXJlY3Rpb246Iix5fHwidmVydGljYWwiKSx2KCJCZWZvcmUgQ29tcGFjdCIpO2xldCBNPWYoeSk7cmV0dXJuIHYoIkFmdGVyIENvbXBhY3QiKSxjb25zb2xlLmdyb3VwRW5kKCksTX0sbygpfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke0pgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW8tY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5ncmlkLWNvbnRhaW5lci13cmFwcGVyIHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICAgICAgbWluLWhlaWdodDogNjAwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIH0KCiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIH0KCiAgICAgICAgICAjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQW5pbWF0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgQW5pbWF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEaXNwbGF5OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgR3JpZCBMaW5lczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFdpZGdldDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Db21wYWN0IEdyaWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVzZXQgTGF5b3V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJNb2RlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgRWRpdCBNb2RlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtZGFzaGJvYXJkZ3JpZCBpZD0iZGFzaGJvYXJkR3JpZCI+PC9kZWVzLWRhc2hib2FyZGdyaWQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgPGRpdj5EcmFnIHRvIHJlcG9zaXRpb24sIHJlc2l6ZSBmcm9tIGhhbmRsZXMsIG9yIHJpZ2h0LWNsaWNrIGEgaGVhZGVyIHRvIGRlbGV0ZSBhIHRpbGUuPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkYXNoYm9hcmRMYXlvdXRTdGF0dXMiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIHB3YSxod2E9ZygoKT0+e3BlKCk7cHdhPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZW5hYmxlYW5pbWF0aW9uXSkgLmdyaWQtd2lkZ2V0IHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgewogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQucmVzaXppbmcgewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLndpZGdldC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpIiwiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjYpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjphY3RpdmUgewogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keS5oYXMtaGVhZGVyIHsKICAgICAgICB0b3A6IDQ1cHg7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1lIHsKICAgICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICByaWdodDogLTZweDsKICAgICAgICB0b3A6IDEwJTsKICAgICAgICBoZWlnaHQ6IDgwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtcyB7CiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgYm90dG9tOiAtNnB4OwogICAgICAgIGxlZnQ6IDEwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIGN1cnNvcjogc2UtcmVzaXplOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXI6OmFmdGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtcGxhY2Vob2xkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLXZlcnRpY2FsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtaG9yaXpvbnRhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogIGBdfSk7dmFyIGdlbixmbHQsZ3dhLGJ3YSxmd2EsdEosbXdhLFJlcyxPZXMsbWx0LHg0LHZ3YSx4d2EseXdhPWcoKCk9PntnZW49MTAsZmx0PWkocz0+e2lmKHR5cGVvZiBzPT0ibnVtYmVyIilyZXR1cm57aG9yaXpvbnRhbDpzLHZlcnRpY2FsOnMsdG9wOnMscmlnaHQ6cyxib3R0b206cyxsZWZ0OnN9O2xldCBlPXt0b3A6cy50b3A/PzEwLHJpZ2h0OnMucmlnaHQ/PzEwLGJvdHRvbTpzLmJvdHRvbT8/MTAsbGVmdDpzLmxlZnQ/PzEwfTtyZXR1cm57Li4uZSxob3Jpem9udGFsOihlLmxlZnQrZS5yaWdodCkvMix2ZXJ0aWNhbDooZS50b3ArZS5ib3R0b20pLzJ9fSwicmVzb2x2ZU1hcmdpbnMiKSxnd2E9aSgocyxlLHQsYSxyKT0+e2xldCBuPXQuaG9yaXpvbnRhbCooZSsxKSxvPU1hdGgubWF4KHMtbiwwKSxsPWU+MD9vL2U6MCxwPXI9PT0iYXV0byI/bDphO3JldHVybntjb250YWluZXJXaWR0aDpzLGNlbGxXaWR0aFB4OmwsbWFyZ2luSG9yaXpvbnRhbFB4OnQuaG9yaXpvbnRhbCxjZWxsSGVpZ2h0UHg6cCxtYXJnaW5WZXJ0aWNhbFB4OnQudmVydGljYWx9fSwiY2FsY3VsYXRlQ2VsbE1ldHJpY3MiKSxid2E9aSgocyxlLHQpPT57aWYocy5sZW5ndGg9PT0wKXJldHVybiAwO2xldCBhPU1hdGgubWF4KC4uLnMubWFwKHI9PnIueStyLmgpLDApO3JldHVybiBhKnQrKGErMSkqZS52ZXJ0aWNhbH0sImNhbGN1bGF0ZUdyaWRIZWlnaHQiKSxmd2E9aSgocyxlLHQsYSxyKT0+ZTxzLngrcy53JiZlK2E+cy54JiZ0PHMueStzLmgmJnQrcj5zLnksIm92ZXJsYXBzIiksdEo9aSgocyxlLHQsYSxyPWUudyxuPWUuaCk9PnMuZmlsdGVyKG89Pm8uaWQ9PT1lLmlkPyExOmZ3YShvLHQsYSxyLG4pKSwiY29sbGVjdENvbGxpc2lvbnMiKSxtd2E9aSgocyxlLHQsYSk9PnRKKHMsZSx0LGEpLmxlbmd0aD4wLCJjaGVja0NvbGxpc2lvbiIpLFJlcz1pKHM9Pih7Li4uc30pLCJjbG9uZVdpZGdldCIpLE9lcz1pKHM9PnMubWFwKFJlcyksImNsb25lV2lkZ2V0cyIpLG1sdD1pKChzLGUsdCxhKT0+e2ZvcihsZXQgbj0wO248MjAwO24rKylmb3IobGV0IG89MDtvPD1hLWU7bysrKWlmKCFzLnNvbWUocD0+ZndhKHAsbyxuLGUsdCkpKXJldHVybnt4Om8seTpufTtyZXR1cm57eDowLHk6cy5yZWR1Y2UoKG4sbyk9Pk1hdGgubWF4KG4sby55K28uaCksMCl9fSwiZmluZEF2YWlsYWJsZVBvc2l0aW9uIikseDQ9aSgocyxlLHQsYSxyKT0+e2xldCBuPU9lcyhzKSxvPW4uZmluZChiPT5iLmlkPT09ZSksbD1zLmZpbmQoYj0+Yi5pZD09PWUpO2lmKCFvfHwhbClyZXR1cm4gbnVsbDtsZXQgcD17eDp0LngseTp0Lnksdzp0Lnc/P28udyxoOnQuaD8/by5ofTtvLng9cC54LG8ueT1wLnksby53PXAudyxvLmg9cC5oO2xldCBkPXRKKG4sbyxwLngscC55LHAudyxwLmgpO2lmKGQubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpuLG1vdmVkV2lkZ2V0czpbby5pZF19O2lmKGQubGVuZ3RoPT09MSl7bGV0IGI9ZFswXTtpZighYi5sb2NrZWQmJiFiLm5vTW92ZSYmYi53PT09by53JiZiLmg9PT1vLmgpe2xldCB2PW4uZmluZCh4PT54LmlkPT09Yi5pZCk7aWYodil7bGV0IHg9bCxtPXt4OnYueCx5OnYueX07aWYodi54PXgueCx2Lnk9eC55LHRKKG4sbyxvLngsby55LG8udyxvLmgpLmxlbmd0aD09PTAmJnRKKG4sdix2Lngsdi55LHYudyx2LmgpLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWQsdi5pZF0sc3dhcHBlZFdpdGg6di5pZH07di54PW0ueCx2Lnk9bS55fX19bGV0IHU9bmV3IFNldChbby5pZF0pO2ZvcihsZXQgYiBvZiBkKXtpZihiLmxvY2tlZHx8Yi5ub01vdmUpcmV0dXJuIG51bGw7bGV0IHY9bi5maW5kKGY9PmYuaWQ9PT1iLmlkKTtpZighdiljb250aW51ZTtsZXQgeD1uLmZpbHRlcihmPT5mLmlkIT09Yi5pZCksbT1tbHQoeCx2Lncsdi5oLGEpO3YueD1tLngsdi55PW0ueSx1LmFkZCh2LmlkKX1yZXR1cm4gdEoobixvLG8ueCxvLnksby53LG8uaCkubGVuZ3RoPjA/bnVsbDp7d2lkZ2V0czpuLG1vdmVkV2lkZ2V0czpBcnJheS5mcm9tKHUpfX0sInJlc29sdmVXaWRnZXRQbGFjZW1lbnQiKSx2d2E9aSgocyxlPSJ2ZXJ0aWNhbCIpPT57bGV0IHQ9Wy4uLnNdLnNvcnQoKGEscik9PmU9PT0idmVydGljYWwiP2EueSE9PXIueT9hLnktci55OmEueC1yLng6YS54IT09ci54P2EueC1yLng6YS55LXIueSk7Zm9yKGxldCBhIG9mIHQpaWYoIShhLmxvY2tlZHx8YS5ub01vdmUpKWlmKGU9PT0idmVydGljYWwiKWZvcig7YS55PjAmJiFtd2EocyxhLGEueCxhLnktMSk7KWEueS09MTtlbHNlIGZvcig7YS54PjAmJiFtd2EocyxhLGEueC0xLGEueSk7KWEueC09MX0sImNvbXBhY3RMYXlvdXQiKSx4d2E9aSgocyxlKT0+cy5tYXAodD0+e2xldCBhPWUuZmluZChyPT5yLmlkPT09dC5pZCk7cmV0dXJuIGE/ey4uLnQsLi4uYX06dH0pLCJhcHBseUxheW91dCIpfSk7dmFyIHd3YSxrd2EsU3dhPWcoKCk9Pnt3d2E9aSgoe3BvaW50ZXI6cyxjb250YWluZXJSZWN0OmUsbWV0cmljczp0LGNvbHVtbnM6YSx3aWRnZXQ6cixydGw6bixkcmFnT2Zmc2V0WDpvPTAsZHJhZ09mZnNldFk6bD0wfSk9PntsZXQgcD1zLmNsaWVudFgtZS5sZWZ0LW8sZD1zLmNsaWVudFktZS50b3AtbCx1PXQubWFyZ2luSG9yaXpvbnRhbFB4LGM9dC5tYXJnaW5WZXJ0aWNhbFB4LGI9dC5jZWxsV2lkdGhQeCx2PXQuY2VsbEhlaWdodFB4LHg9aSgoQyxfLE8pPT5NYXRoLm1heChfLE1hdGgubWluKE8sQykpLCJjbGFtcCIpLG09eChwLXUsMCxlLndpZHRoLXUpLGY9eChkLWMsMCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHk9Yit1LE09ditjLHo9TWF0aC5yb3VuZChtL3kpO24mJih6PWEtci53LXopLHo9eCh6LDAsYS1yLncpO2xldCBOPXgoTWF0aC5yb3VuZChmL00pLDAsTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO3JldHVybnt4OnoseTpOfX0sImNvbXB1dGVHcmlkQ29vcmRpbmF0ZXMiKSxrd2E9aSgoe3BvaW50ZXI6cyxjb250YWluZXJSZWN0OmUsbWV0cmljczp0LHN0YXJ0V2lkdGg6YSxzdGFydEhlaWdodDpyLHN0YXJ0UG9pbnRlcjpuLGhhbmRsZXI6byx3aWRnZXQ6bCxjb2x1bW5zOnB9KT0+e2xldCBkPXMuY2xpZW50WC1uLmNsaWVudFgsdT1zLmNsaWVudFktbi5jbGllbnRZLGM9YSxiPXIsdj10LmNlbGxXaWR0aFB4K3QubWFyZ2luSG9yaXpvbnRhbFB4LHg9dC5jZWxsSGVpZ2h0UHgrdC5tYXJnaW5WZXJ0aWNhbFB4O2lmKG8uaW5jbHVkZXMoImUiKSl7bGV0IHk9TWF0aC5yb3VuZChkL3YpO2M9YSt5fWlmKG8uaW5jbHVkZXMoInMiKSl7bGV0IHk9TWF0aC5yb3VuZCh1L3gpO2I9cit5fWxldCBtPU1hdGgubWF4KGwubWluV3x8MSxNYXRoLm1pbihjLGwubWF4V3x8cC1sLngpKSxmPU1hdGgubWF4KGwubWluSHx8MSxNYXRoLm1pbihiLGwubWF4SHx8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtyZXR1cm57d2lkdGg6bSxoZWlnaHQ6Zn19LCJjb21wdXRlUmVzaXplRGltZW5zaW9ucyIpfSk7dmFyIF93YSxNd2E9ZygoKT0+e2ZyKCk7dm8oKTtfd2E9aSgoe3dpZGdldDpzLGhvc3Q6ZSxldmVudDp0fSk9PntsZXQgYT1be25hbWU6IkRlbGV0ZSB0aWxlIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+KGUucmVtb3ZlV2lkZ2V0KHMuaWQpLG51bGwpLCJhY3Rpb24iKX1dOyRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHQsYSl9LCJvcGVuV2lkZ2V0Q29udGV4dE1lbnUiKX0pO3ZhciBnbiwkcyxGZXMsendhPWcoKCk9PntwZSgpO0dhKCk7ZnIoKTt1d2EoKTtod2EoKTt5d2EoKTtTd2EoKTtNd2EoKTtnbj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sJHM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEZlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtZGFzaGJvYXJkZ3JpZCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W107dmFyIHllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzRGFzaGJvYXJkZ3JpZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBxPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6QXJyYXl9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpPYmplY3R9KV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLE89W0woe3R5cGU6U3RyaW5nfSldLEg9W0woe3R5cGU6Qm9vbGVhbn0pXSxJPVtMKHt0eXBlOkJvb2xlYW59KV0sSz1bTCh7YXR0cmlidXRlOiExfSldLG1lPVtMKHt0eXBlOlN0cmluZ30pXSxoZT1bWSgpXSx1ZT1bWSgpXSxpZT1bWSgpXSxrZT1bWSgpXSxnbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+IndpZGdldHMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS53aWRnZXRzLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLndpZGdldHM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbyxsKSxnbih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImNlbGxIZWlnaHQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5jZWxsSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmNlbGxIZWlnaHQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sZCx1KSxnbih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hcmdpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibWFyZ2luImluIEEsImhhcyIpLGdldDppKEE9PkEubWFyZ2luLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLm1hcmdpbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxiLHYpLGduKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iY29sdW1ucyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmNvbHVtbnMsImdldCIpLHNldDppKChBLHNlKT0+e0EuY29sdW1ucz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxtLGYpLGduKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImVkaXRhYmxlImluIEEsImhhcyIpLGdldDppKEE9PkEuZWRpdGFibGUsImdldCIpLHNldDppKChBLHNlKT0+e0EuZWRpdGFibGU9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sTSx6KSxnbih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUFuaW1hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZW5hYmxlQW5pbWF0aW9uImluIEEsImhhcyIpLGdldDppKEE9PkEuZW5hYmxlQW5pbWF0aW9uLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmVuYWJsZUFuaW1hdGlvbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxDLF8pLGduKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodFVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImNlbGxIZWlnaHRVbml0ImluIEEsImhhcyIpLGdldDppKEE9PkEuY2VsbEhlaWdodFVuaXQsImdldCIpLHNldDppKChBLHNlKT0+e0EuY2VsbEhlaWdodFVuaXQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sJCxFKSxnbih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ0bCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4icnRsImluIEEsImhhcyIpLGdldDppKEE9PkEucnRsLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnJ0bD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxrLFMpLGduKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWRMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ic2hvd0dyaWRMaW5lcyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dHcmlkTGluZXMsImdldCIpLHNldDppKChBLHNlKT0+e0Euc2hvd0dyaWRMaW5lcz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxQLFIpLGduKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibGF5b3V0cyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmxheW91dHMsImdldCIpLHNldDppKChBLHNlKT0+e0EubGF5b3V0cz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxWLFcpLGduKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJyZWFrcG9pbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImFjdGl2ZUJyZWFrcG9pbnQiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5hY3RpdmVCcmVha3BvaW50LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmFjdGl2ZUJyZWFrcG9pbnQ9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sQixVKSxnbih0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJwbGFjZWhvbGRlclBvc2l0aW9uImluIEEsImhhcyIpLGdldDppKEE9PkEucGxhY2Vob2xkZXJQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5wbGFjZWhvbGRlclBvc2l0aW9uPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEYsaiksZ24odGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4ibWV0cmljcyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLm1ldHJpY3MsImdldCIpLHNldDppKChBLHNlKT0+e0EubWV0cmljcz1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxsZSxRKSxnbih0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InJlc29sdmVkTWFyZ2lucyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnJlc29sdmVkTWFyZ2lucywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5yZXNvbHZlZE1hcmdpbnM9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sdGUsZWUpLGduKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJwcmV2aWV3V2lkZ2V0cyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnByZXZpZXdXaWRnZXRzLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLnByZXZpZXdXaWRnZXRzPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFgsWiksZ24obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6cX0sbnVsbCx0KSx5ZT1hPWUudmFsdWUscSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSl9c3RhdGljIGRlbW89ZHdhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07c3RhdGljIHN0eWxlcz1wd2E7I2U9JHModGhpcyxvLFtdKTtnZXQgd2lkZ2V0cygpe3JldHVybiB0aGlzLiNlfXNldCB3aWRnZXRzKHEpe3RoaXMuI2U9cX0jdD0oJHModGhpcyxsKSwkcyh0aGlzLGQsODApKTtnZXQgY2VsbEhlaWdodCgpe3JldHVybiB0aGlzLiN0fXNldCBjZWxsSGVpZ2h0KHEpe3RoaXMuI3Q9cX0jYT0oJHModGhpcyx1KSwkcyh0aGlzLGIsMTApKTtnZXQgbWFyZ2luKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1hcmdpbihxKXt0aGlzLiNhPXF9I3M9KCRzKHRoaXMsdiksJHModGhpcyxtLDEyKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29sdW1ucyhxKXt0aGlzLiNzPXF9I2k9KCRzKHRoaXMsZiksJHModGhpcyxNLCEwKSk7Z2V0IGVkaXRhYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGVkaXRhYmxlKHEpe3RoaXMuI2k9cX0jcj0oJHModGhpcyx6KSwkcyh0aGlzLEMsITApKTtnZXQgZW5hYmxlQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGVuYWJsZUFuaW1hdGlvbihxKXt0aGlzLiNyPXF9I289KCRzKHRoaXMsXyksJHModGhpcywkLCJweCIpKTtnZXQgY2VsbEhlaWdodFVuaXQoKXtyZXR1cm4gdGhpcy4jb31zZXQgY2VsbEhlaWdodFVuaXQocSl7dGhpcy4jbz1xfSNuPSgkcyh0aGlzLEUpLCRzKHRoaXMsaywhMSkpO2dldCBydGwoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcnRsKHEpe3RoaXMuI249cX0jbD0oJHModGhpcyxTKSwkcyh0aGlzLFAsITEpKTtnZXQgc2hvd0dyaWRMaW5lcygpe3JldHVybiB0aGlzLiNsfXNldCBzaG93R3JpZExpbmVzKHEpe3RoaXMuI2w9cX0jYz0oJHModGhpcyxSKSwkcyh0aGlzLFYsdm9pZCAwKSk7Z2V0IGxheW91dHMoKXtyZXR1cm4gdGhpcy4jY31zZXQgbGF5b3V0cyhxKXt0aGlzLiNjPXF9I2Q9KCRzKHRoaXMsVyksJHModGhpcyxCLCJiYXNlIikpO2dldCBhY3RpdmVCcmVha3BvaW50KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGFjdGl2ZUJyZWFrcG9pbnQocSl7dGhpcy4jZD1xfSN1PSgkcyh0aGlzLFUpLCRzKHRoaXMsRixudWxsKSk7Z2V0IHBsYWNlaG9sZGVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdX1zZXQgcGxhY2Vob2xkZXJQb3NpdGlvbihxKXt0aGlzLiN1PXF9I3A9KCRzKHRoaXMsaiksJHModGhpcyxsZSxudWxsKSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWV0cmljcyhxKXt0aGlzLiNwPXF9I2g9KCRzKHRoaXMsUSksJHModGhpcyx0ZSxudWxsKSk7Z2V0IHJlc29sdmVkTWFyZ2lucygpe3JldHVybiB0aGlzLiNofXNldCByZXNvbHZlZE1hcmdpbnMocSl7dGhpcy4jaD1xfSNmPSgkcyh0aGlzLGVlKSwkcyh0aGlzLFgsbnVsbCkpO2dldCBwcmV2aWV3V2lkZ2V0cygpe3JldHVybiB0aGlzLiNmfXNldCBwcmV2aWV3V2lkZ2V0cyhxKXt0aGlzLiNmPXF9Y29udGFpbmVyQm91bmRzPSgkcyh0aGlzLFopLG51bGwpO2RyYWdTdGF0ZT1udWxsO3Jlc2l6ZVN0YXRlPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJhY3Rpb25BY3RpdmU9ITE7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm9ic2VydmVSZXNpemUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9dXBkYXRlZChxKXsocS5oYXMoIm1hcmdpbiIpfHxxLmhhcygiY29sdW1ucyIpfHxxLmhhcygiY2VsbEhlaWdodCIpfHxxLmhhcygiY2VsbEhlaWdodFVuaXQiKSkmJnRoaXMuY29tcHV0ZU1ldHJpY3MoKSxxLmhhcygid2lkZ2V0cyIpJiYhdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZSYmdGhpcy5ub3RpZnlMYXlvdXRDaGFuZ2UoKX1yZW5kZXIoKXtsZXQgcT10aGlzLndpZGdldHM7aWYocS5sZW5ndGg9PT0wKXJldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxheW91dEdyaWQifT48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXY+Tm8gd2lkZ2V0cyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPkFkZCB3aWRnZXRzIHRvIHBvcHVsYXRlIHRoZSBkYXNoYm9hcmQ8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDtsZXQgQT10aGlzLmVuc3VyZU1ldHJpY3MoKSxzZT10aGlzLnJlc29sdmVkTWFyZ2lucz8/Zmx0KHRoaXMubWFyZ2luKSxvZT1BLmNlbGxIZWlnaHRQeCxhZT10aGlzLnByZXZpZXdXaWRnZXRzPz90aGlzLndpZGdldHMsVGU9YndhKGFlLHNlLG9lKSxSZT10aGlzLnByZXZpZXdXaWRnZXRzP25ldyBNYXAodGhpcy5wcmV2aWV3V2lkZ2V0cy5tYXAoQmU9PltCZS5pZCxCZV0pKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWNvbnRhaW5lciIgc3R5bGU9ImhlaWdodDogJHtUZX1weDsiPgogICAgICAgICR7dGhpcy5zaG93R3JpZExpbmVzP3RoaXMucmVuZGVyR3JpZExpbmVzKEEsVGUpOm51bGx9CiAgICAgICAgJHtxLm1hcChCZT0+dGhpcy5yZW5kZXJXaWRnZXQoQmUsQSxzZSxSZSkpfQogICAgICAgICR7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uP3RoaXMucmVuZGVyUGxhY2Vob2xkZXIoQSxzZSk6bnVsbH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckdyaWRMaW5lcyhxLEEpe2xldCBzZT1bXSxvZT1bXSxhZT1xLmNlbGxXaWR0aFB4K3EubWFyZ2luSG9yaXpvbnRhbFB4LFRlPXEuY2VsbEhlaWdodFB4K3EubWFyZ2luVmVydGljYWxQeDtmb3IobGV0IEJlPTA7QmU8PXRoaXMuY29sdW1ucztCZSsrKXtsZXQgR2U9QmUqYWUrcS5tYXJnaW5Ib3Jpem9udGFsUHgsRGU9dGhpcy5weFRvUGVyY2VudChHZSxxLmNvbnRhaW5lcldpZHRoKTtzZS5wdXNoKHdgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLXZlcnRpY2FsIiBzdHlsZT0ibGVmdDogJHtEZX0lOyI+PC9kaXY+YCl9bGV0IFJlPU1hdGguY2VpbChBL1RlKTtmb3IobGV0IEJlPTA7QmU8PVJlO0JlKyspe2xldCBHZT1CZSpUZTtvZS5wdXNoKHdgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLWhvcml6b250YWwiIHN0eWxlPSJ0b3A6ICR7R2V9cHg7Ij48L2Rpdj5gKX1yZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1saW5lcyI+CiAgICAgICAgJHtzZX0KICAgICAgICAke29lfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KHEsQSxzZSxvZSl7bGV0IGFlPXRoaXMuZHJhZ1N0YXRlPy53aWRnZXRJZD09PXEuaWQsVGU9dGhpcy5yZXNpemVTdGF0ZT8ud2lkZ2V0SWQ9PT1xLmlkLFJlPXEubG9ja2VkfHwhdGhpcy5lZGl0YWJsZSxCZT1vZT8uZ2V0KHEuaWQpPz9udWxsLEdlPWFlP3E6QmU/P3EsRGU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdChHZSxBLHNlKSxfZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixDZT10aGlzLnB4VG9QZXJjZW50KERlLmxlZnQsQS5jb250YWluZXJXaWR0aCksdmU9dGhpcy5weFRvUGVyY2VudChEZS53aWR0aCxBLmNvbnRhaW5lcldpZHRoKSxiZT0iIjtpZihhZSYmdGhpcy5kcmFnU3RhdGU/LmN1cnJlbnRQb2ludGVyKXtsZXQgRWU9dGhpcy5kcmFnU3RhdGUuY3VycmVudFBvaW50ZXIsamU9dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksV2U9RWUuY2xpZW50WC1qZS5sZWZ0LXRoaXMuZHJhZ1N0YXRlLm9mZnNldFgtRGUubGVmdCxzdD1FZS5jbGllbnRZLWplLnRvcC10aGlzLmRyYWdTdGF0ZS5vZmZzZXRZLURlLnRvcDtiZT1gdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHtXZX1weCwgJHtzdH1weCk7YH1yZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCAke2FlPyJkcmFnZ2luZyI6IiJ9ICR7VGU/InJlc2l6aW5nIjoiIn0iCiAgICAgICAgc3R5bGU9IgogICAgICAgICAgJHtfZX06ICR7Q2V9JTsKICAgICAgICAgIHRvcDogJHtEZS50b3B9cHg7CiAgICAgICAgICB3aWR0aDogJHt2ZX0lOwogICAgICAgICAgaGVpZ2h0OiAke0RlLmhlaWdodH1weDsKICAgICAgICAgICR7YmV9CiAgICAgICAgIgogICAgICAgIGRhdGEtd2lkZ2V0LWlkPSR7cS5pZH0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij4KICAgICAgICAgICR7cS50aXRsZT93YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0id2lkZ2V0LWhlYWRlciAke1JlPyJsb2NrZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7IVJlJiYhcS5ub01vdmU/RWU9PnRoaXMuc3RhcnREcmFnKEVlLHEpOm51bGx9CiAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke0VlPT50aGlzLmhhbmRsZVdpZGdldENvbnRleHRNZW51KEVlLHEpfQogICAgICAgICAgICAgICAgICB0YWJpbmRleD0keyFSZSYmIXEubm9Nb3ZlPzA6LTF9CiAgICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7RWU9PnRoaXMuaGFuZGxlSGVhZGVyS2V5ZG93bihFZSxxKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtxLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7cS5pY29ufT48L2RlZXMtaWNvbj5gOm51bGx9CiAgICAgICAgICAgICAgICAgICR7cS50aXRsZX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1ib2R5ICR7cS50aXRsZT8iaGFzLWhlYWRlciI6IiJ9Ij4KICAgICAgICAgICAgJHtxLmNvbnRlbnR9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7IVJlJiYhcS5ub1Jlc2l6ZT93YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLWUiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke0VlPT50aGlzLnN0YXJ0UmVzaXplKEVlLHEsImUiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zIgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHtFZT0+dGhpcy5zdGFydFJlc2l6ZShFZSxxLCJzIil9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtc2UiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke0VlPT50aGlzLnN0YXJ0UmVzaXplKEVlLHEsInNlIil9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIocSxBKXtpZighdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uKXJldHVybiB3YGA7bGV0IHNlPXRoaXMuY29tcHV0ZVdpZGdldFJlY3QodGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uLHEsQSksb2U9dGhpcy5ydGw/InJpZ2h0IjoibGVmdCIsYWU9dGhpcy5weFRvUGVyY2VudChzZS5sZWZ0LHEuY29udGFpbmVyV2lkdGgpLFRlPXRoaXMucHhUb1BlcmNlbnQoc2Uud2lkdGgscS5jb250YWluZXJXaWR0aCk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZ3JpZC13aWRnZXQgcGxhY2Vob2xkZXIiCiAgICAgICAgc3R5bGU9IgogICAgICAgICAgJHtvZX06ICR7YWV9JTsKICAgICAgICAgIHRvcDogJHtzZS50b3B9cHg7CiAgICAgICAgICB3aWR0aDogJHtUZX0lOwogICAgICAgICAgaGVpZ2h0OiAke3NlLmhlaWdodH1weDsKICAgICAgICAiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtY29udGVudCI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGFydERyYWcocSxBKXtpZighdGhpcy5lZGl0YWJsZXx8QS5ub01vdmV8fEEubG9ja2VkKXJldHVybjtxLnByZXZlbnREZWZhdWx0KCkscS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgc2U9cS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoIi5ncmlkLXdpZGdldCIpO2lmKCFzZSlyZXR1cm47bGV0IG9lPXNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuY29udGFpbmVyQm91bmRzPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5lbnN1cmVNZXRyaWNzKCksdGhpcy5kcmFnU3RhdGU9e3dpZGdldElkOkEuaWQscG9pbnRlcklkOnEucG9pbnRlcklkLG9mZnNldFg6cS5jbGllbnRYLW9lLmxlZnQsb2Zmc2V0WTpxLmNsaWVudFktb2UudG9wLHN0YXJ0OntpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSxwcmV2aW91c1Bvc2l0aW9uOntpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6bnVsbH0sdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMCxxLmN1cnJlbnRUYXJnZXQuc2V0UG9pbnRlckNhcHR1cmUocS5wb2ludGVySWQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofX1oYW5kbGVEcmFnTW92ZT1pKHE9PntpZighdGhpcy5kcmFnU3RhdGUpcmV0dXJuO2xldCBBPXRoaXMuZW5zdXJlTWV0cmljcygpLHNlPXRoaXMud2lkZ2V0cyxvZT1zZS5maW5kKEJlPT5CZS5pZD09PXRoaXMuZHJhZ1N0YXRlLndpZGdldElkKTtpZighb2UpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKTtsZXQgYWU9dGhpcy5kcmFnU3RhdGUucHJldmlvdXNQb3NpdGlvbixUZT13d2Eoe3BvaW50ZXI6e2NsaWVudFg6cS5jbGllbnRYLGNsaWVudFk6cS5jbGllbnRZfSxjb250YWluZXJSZWN0OnRoaXMuY29udGFpbmVyQm91bmRzPz90aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1ldHJpY3M6QSxjb2x1bW5zOnRoaXMuY29sdW1ucyx3aWRnZXQ6b2UscnRsOnRoaXMucnRsLGRyYWdPZmZzZXRYOnRoaXMuZHJhZ1N0YXRlLm9mZnNldFgsZHJhZ09mZnNldFk6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WX0pLFJlPXg0KHNlLG9lLmlkLHt4OlRlLngseTpUZS55fSx0aGlzLmNvbHVtbnMsYWUpO2lmKFJlKXtsZXQgQmU9UmUud2lkZ2V0cy5maW5kKERlPT5EZS5pZD09PW9lLmlkKTt0aGlzLmRyYWdTdGF0ZT17Li4udGhpcy5kcmFnU3RhdGUsY3VycmVudFBvaW50ZXI6e2NsaWVudFg6cS5jbGllbnRYLGNsaWVudFk6cS5jbGllbnRZfSxsYXN0UGxhY2VtZW50OlJlLHByZXZpb3VzUG9zaXRpb246QmU/e2lkOkJlLmlkLHg6QmUueCx5OkJlLnksdzpCZS53LGg6QmUuaH06e2lkOm9lLmlkLHg6VGUueCx5OlRlLnksdzpvZS53LGg6b2UuaH19LHRoaXMucHJldmlld1dpZGdldHM9UmUud2lkZ2V0cztsZXQgR2U9UmUud2lkZ2V0cy5maW5kKERlPT5EZS5pZD09PW9lLmlkKTtHZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkdlLmlkLHg6R2UueCx5OkdlLnksdzpHZS53LGg6R2UuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpvZS5pZCx4OlRlLngseTpUZS55LHc6b2UudyxoOm9lLmh9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwiaGFuZGxlRHJhZ01vdmUiKTtoYW5kbGVEcmFnRW5kPWkocT0+e2xldCBBPXRoaXMuZHJhZ1N0YXRlO2lmKCFBfHxxLnBvaW50ZXJJZCE9PUEucG9pbnRlcklkKXJldHVybjtsZXQgc2U9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgb2U9dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPz9BLnN0YXJ0LGFlPXg0KHNlLEEud2lkZ2V0SWQse3g6b2UueCx5Om9lLnl9LHRoaXMuY29sdW1ucyxBLnByZXZpb3VzUG9zaXRpb24pO2lmKGFlKXtsZXQgVGU9YWUud2lkZ2V0cy5maW5kKFJlPT5SZS5pZD09PUEud2lkZ2V0SWQpO1RlJiYoYWUud2lkZ2V0cy5zb21lKEJlPT5CZS5pZD09PUEud2lkZ2V0SWQ/ITE6VGUueDxCZS54K0JlLncmJlRlLngrVGUudz5CZS54JiZUZS55PEJlLnkrQmUuaCYmVGUueStUZS5oPkJlLnkpP3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKEJlPT5CZS5pZD09PUEud2lkZ2V0SWQ/ey4uLkJlLHg6QS5zdGFydC54LHk6QS5zdGFydC55fTpCZSk6dGhpcy5jb21taXRQbGFjZW1lbnQoYWUsQS53aWRnZXRJZCwid2lkZ2V0LW1vdmUiKSl9ZWxzZSB0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChUZT0+VGUuaWQ9PT1BLndpZGdldElkP3suLi5UZSx4OkEuc3RhcnQueCx5OkEuc3RhcnQueX06VGUpO3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsLHRoaXMuZHJhZ1N0YXRlPW51bGwsdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9LCJoYW5kbGVEcmFnRW5kIik7c3RhcnRSZXNpemUocSxBLHNlKXshdGhpcy5lZGl0YWJsZXx8QS5ub1Jlc2l6ZXx8QS5sb2NrZWR8fChxLnByZXZlbnREZWZhdWx0KCkscS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLnJlc2l6ZVN0YXRlPXt3aWRnZXRJZDpBLmlkLHBvaW50ZXJJZDpxLnBvaW50ZXJJZCxoYW5kbGVyOnNlLHN0YXJ0UG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LHN0YXJ0OntpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSxzdGFydFdpZHRoOkEudyxzdGFydEhlaWdodDpBLmgsbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLHEuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShxLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpBLmlkLHg6QS54LHk6QS55LHc6QS53LGg6QS5ofSl9aGFuZGxlUmVzaXplTW92ZT1pKHE9PntpZighdGhpcy5yZXNpemVTdGF0ZSlyZXR1cm47bGV0IEE9dGhpcy5lbnN1cmVNZXRyaWNzKCksc2U9dGhpcy53aWRnZXRzLG9lPXNlLmZpbmQoUmU9PlJlLmlkPT09dGhpcy5yZXNpemVTdGF0ZS53aWRnZXRJZCk7aWYoIW9lKXJldHVybjtxLnByZXZlbnREZWZhdWx0KCk7bGV0IGFlPWt3YSh7cG9pbnRlcjp7Y2xpZW50WDpxLmNsaWVudFgsY2xpZW50WTpxLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpBLHN0YXJ0V2lkdGg6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFdpZHRoLHN0YXJ0SGVpZ2h0OnRoaXMucmVzaXplU3RhdGUuc3RhcnRIZWlnaHQsc3RhcnRQb2ludGVyOnRoaXMucmVzaXplU3RhdGUuc3RhcnRQb2ludGVyLGhhbmRsZXI6dGhpcy5yZXNpemVTdGF0ZS5oYW5kbGVyLHdpZGdldDpvZSxjb2x1bW5zOnRoaXMuY29sdW1uc30pLFRlPXg0KHNlLG9lLmlkLHt4Om9lLngseTpvZS55LHc6YWUud2lkdGgsaDphZS5oZWlnaHR9LHRoaXMuY29sdW1ucyx0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0KTtpZihUZSl7dGhpcy5yZXNpemVTdGF0ZT17Li4udGhpcy5yZXNpemVTdGF0ZSxsYXN0UGxhY2VtZW50OlRlfSx0aGlzLnByZXZpZXdXaWRnZXRzPVRlLndpZGdldHM7bGV0IFJlPVRlLndpZGdldHMuZmluZChCZT0+QmUuaWQ9PT1vZS5pZCk7UmU/dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpSZS5pZCx4OlJlLngseTpSZS55LHc6UmUudyxoOlJlLmh9OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6b2UuaWQseDpvZS54LHk6b2UueSx3OmFlLndpZHRoLGg6YWUuaGVpZ2h0fX1lbHNlIHRoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbDt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sImhhbmRsZVJlc2l6ZU1vdmUiKTtoYW5kbGVSZXNpemVFbmQ9aShxPT57bGV0IEE9dGhpcy5yZXNpemVTdGF0ZTtpZighQXx8cS5wb2ludGVySWQhPT1BLnBvaW50ZXJJZClyZXR1cm47bGV0IHNlPXRoaXMud2lkZ2V0czt0aGlzLnByZXZpZXdXaWRnZXRzPW51bGw7bGV0IG9lPUEubGFzdFBsYWNlbWVudD8/eDQoc2UsQS53aWRnZXRJZCx7eDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lng/P0Euc3RhcnQueCx5OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueT8/QS5zdGFydC55LHc6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy53Pz9BLnN0YXJ0LncsaDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lmg/P0Euc3RhcnQuaH0sdGhpcy5jb2x1bW5zLEEuc3RhcnQpO29lP3RoaXMuY29tbWl0UGxhY2VtZW50KG9lLEEud2lkZ2V0SWQsIndpZGdldC1yZXNpemUiKTp0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChhZT0+YWUuaWQ9PT1BLndpZGdldElkP3suLi5hZSx3OkEuc3RhcnQudyxoOkEuc3RhcnQuaH06YWUpLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsLHRoaXMucmVzaXplU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX0sImhhbmRsZVJlc2l6ZUVuZCIpO2hhbmRsZUhlYWRlcktleWRvd24ocSxBKXtpZighdGhpcy5lZGl0YWJsZXx8QS5ub01vdmV8fEEubG9ja2VkKXJldHVybjtsZXQgc2U9cS5rZXksb2U9cS5zaGlmdEtleSxhZT1udWxsO2lmKG9lJiZbIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIl0uaW5jbHVkZXMoc2UpKXtxLnByZXZlbnREZWZhdWx0KCk7bGV0IERlPXNlPT09IkFycm93UmlnaHQifHxzZT09PSJBcnJvd0Rvd24iPzE6LTE7aWYoc2U9PT0iQXJyb3dMZWZ0Inx8c2U9PT0iQXJyb3dSaWdodCIpe2xldCBfZT1BLm1heFc/P3RoaXMuY29sdW1ucy1BLngsQ2U9TWF0aC5tYXgoQS5taW5XPz8xLE1hdGgubWluKF9lLEEudytEZSkpO2FlPXg0KHRoaXMud2lkZ2V0cyxBLmlkLHt4OkEueCx5OkEueSx3OkNlLGg6QS5ofSx0aGlzLmNvbHVtbnMpfWVsc2V7bGV0IF9lPUEubWF4SD8/TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLENlPU1hdGgubWF4KEEubWluSD8/MSxNYXRoLm1pbihfZSxBLmgrRGUpKTthZT14NCh0aGlzLndpZGdldHMsQS5pZCx7eDpBLngseTpBLnksdzpBLncsaDpDZX0sdGhpcy5jb2x1bW5zKX1hZSYmdGhpcy5jb21taXRQbGFjZW1lbnQoYWUsQS5pZCwid2lkZ2V0LXJlc2l6ZSIpO3JldHVybn1sZXQgUmU9e0Fycm93TGVmdDp7ZHg6LTEsZHk6MH0sQXJyb3dSaWdodDp7ZHg6MSxkeTowfSxBcnJvd1VwOntkeDowLGR5Oi0xfSxBcnJvd0Rvd246e2R4OjAsZHk6MX19W3NlXTtpZighUmUpcmV0dXJuO3EucHJldmVudERlZmF1bHQoKTtsZXQgQmU9TWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmNvbHVtbnMtQS53LEEueCtSZS5keCkpLEdlPU1hdGgubWF4KDAsQS55K1JlLmR5KTthZT14NCh0aGlzLndpZGdldHMsQS5pZCx7eDpCZSx5OkdlfSx0aGlzLmNvbHVtbnMpLGFlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChhZSxBLmlkLCJ3aWRnZXQtbW92ZSIpfWhhbmRsZVdpZGdldENvbnRleHRNZW51KHEsQSl7cS5wcmV2ZW50RGVmYXVsdCgpLHEuc3RvcFByb3BhZ2F0aW9uKCksX3dhKHt3aWRnZXQ6QSxob3N0OnRoaXMsZXZlbnQ6cX0pfWNvbW1pdFBsYWNlbWVudChxLEEsc2Upe3RoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLndpZGdldHM9cS53aWRnZXRzO2xldCBvZT10aGlzLndpZGdldHMuZmluZChhZT0+YWUuaWQ9PT1BKTtvZSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChzZSx7ZGV0YWlsOnt3aWRnZXQ6b2UsZGlzcGxhY2VkOnEubW92ZWRXaWRnZXRzLmZpbHRlcihhZT0+YWUhPT1BKSxzd2FwcGVkV2l0aDpxLnN3YXBwZWRXaXRofSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXJlbW92ZVdpZGdldChxKXtsZXQgQT10aGlzLndpZGdldHMuZmluZChzZT0+c2UuaWQ9PT1xKTtBJiYodGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIoc2U9PnNlLmlkIT09cSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgid2lkZ2V0LXJlbW92ZSIse2RldGFpbDp7d2lkZ2V0OkF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfXVwZGF0ZVdpZGdldChxLEEpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHNlPT5zZS5pZD09PXE/ey4uLnNlLC4uLkF9OnNlKX1nZXRMYXlvdXQoKXtyZXR1cm4gdGhpcy53aWRnZXRzLm1hcCgoe2lkOnEseDpBLHk6c2UsdzpvZSxoOmFlfSk9Pih7aWQ6cSx4OkEseTpzZSx3Om9lLGg6YWV9KSl9c2V0TGF5b3V0KHEpe3RoaXMud2lkZ2V0cz14d2EodGhpcy53aWRnZXRzLHEpfWxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMX11bmxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMH1hZGRXaWRnZXQocSxBPSExKXtsZXQgc2U9ey4uLnF9O2lmKEF8fHNlLmF1dG9Qb3NpdGlvbil7bGV0IG9lPW1sdCh0aGlzLndpZGdldHMsc2UudyxzZS5oLHRoaXMuY29sdW1ucyk7c2UueD1vZS54LHNlLnk9b2UueX10aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyxzZV19Y29tcGFjdChxPSJ2ZXJ0aWNhbCIpe2xldCBBPXRoaXMud2lkZ2V0cy5tYXAoc2U9Pih7Li4uc2V9KSk7dndhKEEscSksdGhpcy53aWRnZXRzPUF9YXBwbHlCcmVha3BvaW50TGF5b3V0KHEpe3RoaXMuYWN0aXZlQnJlYWtwb2ludD1xO2xldCBBPXRoaXMubGF5b3V0cz8uW3FdO0EmJnRoaXMuc2V0TGF5b3V0KEEpfW5vdGlmeUxheW91dENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxheW91dC1jaGFuZ2UiLHtkZXRhaWw6e2xheW91dDp0aGlzLmdldExheW91dCgpfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWVuc3VyZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy5tZXRyaWNzfHx0aGlzLmNvbXB1dGVNZXRyaWNzKCksdGhpcy5tZXRyaWNzfWNvbXB1dGVNZXRyaWNzKCl7aWYoIXRoaXMuaXNDb25uZWN0ZWQpcmV0dXJuO2xldCBxPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9cTtsZXQgQT1mbHQodGhpcy5tYXJnaW4pO3RoaXMucmVzb2x2ZWRNYXJnaW5zPUEsdGhpcy5tZXRyaWNzPWd3YShxLndpZHRoLHRoaXMuY29sdW1ucyxBLHRoaXMuY2VsbEhlaWdodCx0aGlzLmNlbGxIZWlnaHRVbml0KX1vYnNlcnZlUmVzaXplKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5jb21wdXRlTWV0cmljcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpKX1kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9cmVsZWFzZVBvaW50ZXJFdmVudHMoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVEcmFnTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZURyYWdFbmQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVSZXNpemVFbmQpfXB4VG9QZXJjZW50KHEsQSl7cmV0dXJuIEE/TnVtYmVyKChxL0EqMTAwKS50b0ZpeGVkKDQpKTowfWNvbXB1dGVXaWRnZXRSZWN0KHEsQSxzZSl7bGV0IG9lPUEuY2VsbFdpZHRoUHgsYWU9QS5jZWxsSGVpZ2h0UHgsVGU9cS54KihvZStzZS5ob3Jpem9udGFsKStzZS5ob3Jpem9udGFsLFJlPXEueSooYWUrc2UudmVydGljYWwpK3NlLnZlcnRpY2FsLEJlPXEudypvZStNYXRoLm1heCgwLHEudy0xKSpzZS5ob3Jpem9udGFsLEdlPXEuaCphZStNYXRoLm1heCgwLHEuaC0xKSpzZS52ZXJ0aWNhbDtyZXR1cm57bGVmdDpUZSx0b3A6UmUsd2lkdGg6QmUsaGVpZ2h0OkdlfX1zdGF0aWN7JHMoYSx0KX19O3JldHVybiB5ZT1hfSkoKX0pO3ZhciBDd2E9ZygoKT0+e3p3YSgpfSk7ZnVuY3Rpb24gVHdhKCl7cmV0dXJuIHdgCiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIxIj5UaGlzIGlzIGEgSDEgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMiI+VGhpcyBpcyBhIEgyIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjMiPlRoaXMgaXMgYSBIMyBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI0Ij5UaGlzIGlzIGEgSDQgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNSI+VGhpcyBpcyBhIEg1IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjYiPlRoaXMgaXMgYSBINiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJociI+VGhpcyBpcyBhbiBociBoZWFkaW5nIChsZXZlbD0iaHIiKTwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNyI+VGhpcyBpcyBhbiBociBoZWFkaW5nIChsZXZlbD0iNyIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+VGhpcyBpcyBhbiBoci1zbWFsbCBoZWFkaW5nIChsZXZlbD0iaHItc21hbGwiKTwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iOCI+VGhpcyBpcyBhbiBoci1zbWFsbCBoZWFkaW5nIChsZXZlbD0iOCIpPC9kZWVzLWhlYWRpbmc+CiAgYH12YXIgJHdhPWcoKCk9PntwZSgpO2koVHdhLCJkZW1vRnVuYyIpfSk7dmFyIER3YSxnbHQsQmVzLEx3YT1nKCgpPT57cGUoKTskd2EoKTtFcigpO2h0KCk7RHdhPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxnbHQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEJlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtaGVhZGluZyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzSGVhZGluZyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sRHdhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGV2ZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodT0+ImxldmVsImluIHUsImhhcyIpLGdldDppKHU9PnUubGV2ZWwsImdldCIpLHNldDppKCh1LGMpPT57dS5sZXZlbD1jfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksRHdhKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsdCkscD1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89VHdhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9Z2x0KHRoaXMsbywiMSIpO2dldCBsZXZlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsZXZlbChkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLyogSGVhZGluZyBzdHlsZXMuCiAgICAgICAqIENvbG9yIGhpZXJhcmNoeTogaDEtaDIgc3RheSBwcm9taW5lbnQgd2l0aCB0ZXh0LXByaW1hcnk7IGgzLWg2IHN0ZXAKICAgICAgICogZG93biB0byB0ZXh0LXNlY29uZGFyeSBzbyB0aGV5IHJlYWQgYXMgc3ViaGVhZGluZ3MgaW5zdGVhZCBvZgogICAgICAgKiBtaW5pLWgxcy4gS2VlcHMgdGhlIHZpc3VhbCBsb3VkbmVzcyBvdXQgb2Ygc21hbGxlciBoZWFkaW5ncy4gKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICBoMSwgaDIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLyogUGVyLWxldmVsIHR5cG9ncmFwaHkgKyBzcGFjaW5nLgogICAgICAgKiBNYXJnaW4gc2NhbGVzIHdpdGggaW1wb3J0YW5jZTogaDEgZ2V0cyB0aGUgbW9zdCBicmVhdGhpbmcgcm9vbSwKICAgICAgICogaDYgdGhlIGxlYXN0LiBUb3AgbWFyZ2luID4gYm90dG9tIG1hcmdpbiBzbyBoZWFkaW5ncyBncm91cCB3aXRoCiAgICAgICAqIHRoZSBjb250ZW50IHRoYXQgZm9sbG93cyB0aGVtLiAqLwogICAgICBoMSB7CiAgICAgICAgLyogaDEgdXNlcyB3ZWlnaHQgNTAwLCBub3QgNjAwOiB0aGUgQ2FsIFNhbnMgZGlzcGxheSBmb250IGlzCiAgICAgICAgICogYWxyZWFkeSBzdHlsaXplZCBlbm91Z2ggdGhhdCBib2xkICsgbWF4IGNvbnRyYXN0ICsgMzJweCBzdGFja3MKICAgICAgICAgKiB0b28gbXVjaCBlbXBoYXNpcy4gNTAwIGtlZXBzIHRoZSB0eXBvZ3JhcGhpYyBpbXBhY3Qgd2l0aG91dAogICAgICAgICAqIHNob3V0aW5nLiAqLwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0o5YX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKSAwIHZhcigtLWRlZXMtc3BhY2luZy1sZyk7CiAgICAgIH0KICAgICAgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy14bCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsKICAgICAgfQogICAgICBoNCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKSAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1tZCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIGg2IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsKICAgICAgfQoKICAgICAgLyogSG9yaXpvbnRhbCBydWxlIHN0eWxlIGhlYWRpbmcgKi8KICAgICAgLmhlYWRpbmctaHIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpIDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KICAgICAgLyogRmFkZSBsaW5lcyB0b3dhcmQgYW5kIGF3YXkgZnJvbSB0ZXh0IGZvciBociBzdHlsZSAqLwogICAgICAuaGVhZGluZy1ocjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZykpOwogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyksIHRyYW5zcGFyZW50KTsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgICAvKiBTbWFsbCBociB2YXJpYW50IHdpdGggcmVkdWNlZCBtYXJnaW5zICovCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGwgewogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKSAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsOjpiZWZvcmUsCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmFmdGVyIHsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UiMSI6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmA7Y2FzZSIyIjpyZXR1cm4gd2A8aDI+PHNsb3Q+PC9zbG90PjwvaDI+YDtjYXNlIjMiOnJldHVybiB3YDxoMz48c2xvdD48L3Nsb3Q+PC9oMz5gO2Nhc2UiNCI6cmV0dXJuIHdgPGg0PjxzbG90Pjwvc2xvdD48L2g0PmA7Y2FzZSI1IjpyZXR1cm4gd2A8aDU+PHNsb3Q+PC9zbG90PjwvaDU+YDtjYXNlIjYiOnJldHVybiB3YDxoNj48c2xvdD48L3Nsb3Q+PC9oNj5gO2Nhc2UiNyI6Y2FzZSJociI6cmV0dXJuIHdgPGRpdiBjbGFzcz0iaGVhZGluZy1ociI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7Y2FzZSI4IjpjYXNlImhyLXNtYWxsIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIGhlYWRpbmctaHItc21hbGwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmB9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxnbHQodGhpcyxsKX1zdGF0aWN7Z2x0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBFd2E9ZygoKT0+e0x3YSgpfSk7dmFyIFB3YT1nKCgpPT57YngoKX0pO3ZhciBJd2EsQXdhPWcoKCk9PntwZSgpO0l3YT1pKCgpPT53YAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTZweDsiPgogICAgPCEtLSBTbWFsbCBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj41IHBhZ2VzLCBzdGFydGluZyBhdCAxOjwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezV9CiAgICAgICAgLnBhZ2U9JHsxfQogICAgICAgIEBwYWdlLWNoYW5nZT0ke3M9PmNvbnNvbGUubG9nKCJQYWdlIGNoYW5nZWQgdG8iLHMuZGV0YWlsLnBhZ2UpfQogICAgICA+PC9kZWVzLXBhZ2luYXRpb24+CiAgICA8L2Rpdj4KCiAgICA8IS0tIExhcmdlciBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj4xNSBwYWdlcywgc3RhcnRpbmcgYXQgODo8L3NwYW4+CiAgICAgIDxkZWVzLXBhZ2luYXRpb24KICAgICAgICAudG90YWw9JHsxNX0KICAgICAgICAucGFnZT0kezh9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7cz0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIscy5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGJsdCxhSixIZXMsTndhPWcoKCk9PntwZSgpO0F3YSgpO2h0KCk7Ymx0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxhSj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sSGVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1wYWdpbmF0aW9uIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQYWdpbmF0aW9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXIscmVmbGVjdDohMH0pXSxwPVtMKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLGJsdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InBhZ2UiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5wYWdlLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YucGFnZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksYmx0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidG90YWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+InRvdGFsImluIHYsImhhcyIpLGdldDppKHY9PnYudG90YWwsImdldCIpLHNldDppKCh2LHgpPT57di50b3RhbD14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksYmx0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89SXdhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9YUoodGhpcyxvLDEpO2dldCBwYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBhZ2UoYil7dGhpcy4jZT1ifSN0PShhSih0aGlzLGwpLGFKKHRoaXMsZCwxKSk7Z2V0IHRvdGFsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRvdGFsKGIpe3RoaXMuI3Q9Yn1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBtYXJnaW46IDAgMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWUiLCIjNDQ0Iil9OwogICAgICB9CiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2FhYSIsIiM2NjYiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmN1cnJlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIHNwYW4uZWxsaXBzaXMgewogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgYF07Z2V0IHBhZ2VzKCl7bGV0IGI9W10sdj10aGlzLnRvdGFsLHg9dGhpcy5wYWdlO2lmKHY8PTcpZm9yKGxldCBtPTE7bTw9djttKyspYi5wdXNoKG0pO2Vsc2V7Yi5wdXNoKDEpLHg+NCYmYi5wdXNoKCIuLi4iKTtsZXQgbT1NYXRoLm1heCgyLHgtMiksZj1NYXRoLm1pbih2LTEseCsyKTtmb3IobGV0IHk9bTt5PD1mO3krKyliLnB1c2goeSk7eDx2LTMmJmIucHVzaCgiLi4uIiksYi5wdXNoKHYpfXJldHVybiBifXJlbmRlcigpe3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UtMSl9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlPD0xfQogICAgICAgIGFyaWEtbGFiZWw9IlByZXZpb3VzIHBhZ2UiCiAgICAgID4KICAgICAgICDigLkKICAgICAgPC9idXR0b24+CiAgICAgICR7dGhpcy5wYWdlcy5tYXAoYj0+Yj09PSIuLi4iP3dgPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj7igKY8L3NwYW4+YDp3YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSIke2I9PT10aGlzLnBhZ2U/ImN1cnJlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UoYil9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtiPT09dGhpcy5wYWdlfQogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZSAke2J9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7Yn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZSsxKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U+PXRoaXMudG90YWx9CiAgICAgICAgYXJpYS1sYWJlbD0iTmV4dCBwYWdlIgogICAgICA+CiAgICAgICAg4oC6CiAgICAgIDwvYnV0dG9uPgogICAgYH1jaGFuZ2VQYWdlKGIpe2I8MXx8Yj50aGlzLnRvdGFsfHxiPT09dGhpcy5wYWdlfHwodGhpcy5wYWdlPWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicGFnZS1jaGFuZ2UiLHtkZXRhaWw6e3BhZ2U6dGhpcy5wYWdlfSxidWJibGVzOiEwfSkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYUoodGhpcyx1KX1zdGF0aWN7YUooYSx0KX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFJ3YT1nKCgpPT57TndhKCl9KTt2YXIgT3dhPWcoKCk9Pnt4bygpfSk7dmFyIEZ3YSxCd2E9ZygoKT0+e3BlKCk7dmx0KCk7RndhPWkoKCk9PntsZXQgcz1be2tleToiZW1haWwiLGxhYmVsOiJBY2NvdW50IGVtYWlsIix2YWx1ZToiYWRtaW5AZXhhbXBsZS5jb20ifSx7a2V5OiJzdGF0dXMiLGxhYmVsOiJTdGF0dXMiLHZhbHVlOiJlbmFibGVkIn0se2tleToibW9kZSIsbGFiZWw6Ik1vZGUiLHZhbHVlOiJwcm9kdWN0aW9uIn0se2tleToiYXV0b1JlbmV3IixsYWJlbDoiQXV0by1yZW5ldyIsdmFsdWU6Im9uIn0se2tleToidGhyZXNob2xkIixsYWJlbDoiUmVuZXdhbCB0aHJlc2hvbGQiLHZhbHVlOiIzMCBkYXlzIn1dLGU9W3tuYW1lOiJFZGl0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkVkaXQgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLHQ9W3tuYW1lOiJDb25maWd1cmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQ29uZmlndXJlIGNsaWNrZWQiKSwiYWN0aW9uIil9XSxhPVt7bmFtZToiUmVzZXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVzZXQgY2xpY2tlZCIpLCJhY3Rpb24iKX0se25hbWU6IkVkaXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRWRpdCBjbGlja2VkIiksImFjdGlvbiIpfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgICR7SmAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiQUNNRSBTZXR0aW5ncyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHtzfQogICAgICAgICAgLmFjdGlvbnM9JHtlfQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJBQ01FIFNldHRpbmdzIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJObyBBQ01FIGNvbmZpZ3VyYXRpb24geWV0LiBDbGljayBDb25maWd1cmUgdG8gc2V0IHVwIGF1dG9tYXRlZCBUTFMgY2VydGlmaWNhdGUgaXNzdWFuY2UuIn0KICAgICAgICAgIC5hY3Rpb25zPSR7dH0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgoKICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiU2VydmVyIENvbmZpZyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHtbe2tleToiaG9zdCIsbGFiZWw6Ikhvc3RuYW1lIix2YWx1ZToicHJveHkuZXhhbXBsZS5jb20ifSx7a2V5OiJwb3J0IixsYWJlbDoiUG9ydCIsdmFsdWU6IjQ0MyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7YX0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBzSixVdSxxZXMsdmx0PWcoKCk9PntwZSgpO0J3YSgpO0VyKCk7aHQoKTttcigpO3NKPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxVdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scWVzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zZXR0aW5ncyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2V0dGluZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHthdHRyaWJ1dGU6ITF9KV0seD1bTCh7YXR0cmlidXRlOiExfSldLHNKKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaGVhZGluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmhlYWRpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5oZWFkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxzSih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRlc2NyaXB0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkZXNjcmlwdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmRlc2NyaXB0aW9uLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouZGVzY3JpcHRpb249Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxkLHUpLHNKKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2V0dGluZ3NGaWVsZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNldHRpbmdzRmllbGRzImluIHosImhhcyIpLGdldDppKHo9Pnouc2V0dGluZ3NGaWVsZHMsImdldCIpLHNldDppKCh6LE4pPT57ei5zZXR0aW5nc0ZpZWxkcz1OfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsdiksc0oodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJhY3Rpb25zImluIHosImhhcyIpLGdldDppKHo9PnouYWN0aW9ucywiZ2V0Iiksc2V0OmkoKHosTik9Pnt6LmFjdGlvbnM9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxtLGYpLHNKKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCkseT1hPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89RndhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9VXUodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKE0pe3RoaXMuI2U9TX0jdD0oVXUodGhpcyxsKSxVdSh0aGlzLGQsIiIpKTtnZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGVzY3JpcHRpb24oTSl7dGhpcy4jdD1NfSNhPShVdSh0aGlzLHUpLFV1KHRoaXMsYixbXSkpO2dldCBzZXR0aW5nc0ZpZWxkcygpe3JldHVybiB0aGlzLiNhfXNldCBzZXR0aW5nc0ZpZWxkcyhNKXt0aGlzLiNhPU19I3M9KFV1KHRoaXMsdiksVXUodGhpcyxtLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWN0aW9ucyhNKXt0aGlzLiNzPU19c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogJHtCYX07CiAgICAgIH0KCiAgICAgIC5zZXR0aW5nc0dyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxODBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxMnB4IDI0cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLnNldHRpbmdzRmllbGQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmZpZWxkTGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5maWVsZFZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnNldHRpbmdzRGVzY3JpcHRpb24gewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE1KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMTUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTT10aGlzLnNldHRpbmdzRmllbGRzLmxlbmd0aD4wLHo9dGhpcy5hY3Rpb25zLmxlbmd0aD4wO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7dGhpcy5oZWFkaW5nfT4KICAgICAgICAke00/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5nc0dyaWQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNldHRpbmdzRmllbGRzLm1hcChOPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkTGFiZWwiPiR7Ti5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGRWYWx1ZSI+JHtOLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5nc0Rlc2NyaXB0aW9uIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgJHt6P3dgCiAgICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAgICR7dGhpcy5hY3Rpb25zLm1hcCgoTixDKT0+d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYm90dG9tQnV0dG9uICR7Qz09PXRoaXMuYWN0aW9ucy5sZW5ndGgtMT8icHJpbWFyeSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pk4uYWN0aW9uKCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtOLm5hbWV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFV1KHRoaXMsZil9c3RhdGlje1V1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBId2E9ZygoKT0+e3ZsdCgpfSk7dmFyIHF3YSxpSixqd2EsVndhLFV3YT1nKCgpPT57cGUoKTtvMmUoKTtxd2E9aShhc3luYyhzLGUpPT5uZXcgUHJvbWlzZSh0PT57bGV0IGE9ITEscj1pKGw9PnthfHwoYT0hMCxlJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKSx0KGwpKX0sImZpbmlzaCIpLG49aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQobykscighMSl9LCJoYW5kbGVBYm9ydCIpLG89d2luZG93LnNldFRpbWVvdXQoKCk9PntyKCEwKX0scyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbix7b25jZTohMH0pfSksIndhaXRGb3JQcm9ncmVzc1RpY2siKSxpSj1pKChzPSJDb250aW51ZSIpPT5be25hbWU6cyxhY3Rpb246aShhc3luYyBlPT5lPy5nb05leHQoKSwiYWN0aW9uIil9XSwiY3JlYXRlQ29udGludWVNZW51T3B0aW9ucyIpLGp3YT1pKCgpPT5be3RpdGxlOiJBY2NvdW50IFNldHVwIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImVtYWlsIiBsYWJlbD0iV29yayBFbWFpbCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iQ3JlYXRlIFBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczppSigpfSx7dGl0bGU6IlByb2ZpbGUgRGV0YWlscyIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJmaXJzdE5hbWUiIGxhYmVsPSJGaXJzdCBOYW1lIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0ibGFzdE5hbWUiIGxhYmVsPSJMYXN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6aUooKX0se3RpdGxlOiJDb250YWN0IEluZm9ybWF0aW9uIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUga2V5PSJwaG9uZSIgbGFiZWw9Ik1vYmlsZSBOdW1iZXIiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iY29tcGFueSIgbGFiZWw9IkNvbXBhbnkiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6aUooKX0se3RpdGxlOiJQcm92aXNpb24gV29ya3NwYWNlIixjb250ZW50OndgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPgogICAgICAgICAgV2UgYXJlIGNyZWF0aW5nIHlvdXIgc3RhcnRlciB3b3Jrc3BhY2UsIGFwcGx5aW5nIHlvdXIgb25ib2FyZGluZyBjaG9pY2VzLAogICAgICAgICAgYW5kIHByZXBhcmluZyBhIGxpdmUgcHJldmlldy4gVGhpcyBzdGVwIG1vdmVzIGZvcndhcmQgYXV0b21hdGljYWxseSB3aGVuCiAgICAgICAgICB0aGUgZW52aXJvbm1lbnQgaXMgcmVhZHkuCiAgICAgICAgPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICBgLHByb2dyZXNzU3RlcDp7bGFiZWw6IldvcmtzcGFjZSBzZXR1cCIscGVyY2VudGFnZTo4LGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzUm93czo0LHN0YXR1c1RleHQ6IkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UuLi4iLHRlcm1pbmFsTGluZXM6WyJBbGxvY2F0aW5nIGEgY2xlYW4gd29ya3NwYWNlIl19LHZhbGlkYXRpb25GdW5jOmkoYXN5bmMocyxlLHQpPT57bGV0IGE9W3tsaW5lOiJBbGxvY2F0aW5nIGEgY2xlYW4gd29ya3NwYWNlIixwZXJjZW50YWdlOjgsZGVsYXk6NTAwfSx7bGluZToiU3luY2luZyBhY2NvdW50IHByZWZlcmVuY2VzIixwZXJjZW50YWdlOjI0LGRlbGF5OjY1MH0se2xpbmU6Ikluc3RhbGxpbmcgc2VsZWN0ZWQgaW50ZWdyYXRpb25zIixwZXJjZW50YWdlOjQ3LGRlbGF5OjcwMH0se2xpbmU6IkdlbmVyYXRpbmcgc3RhcnRlciBwcm9qZWN0IGZpbGVzIixwZXJjZW50YWdlOjcxLGRlbGF5OjY1MH0se2xpbmU6IkJvb3RpbmcgdGhlIGxpdmUgcHJldmlldyBlbnZpcm9ubWVudCIscGVyY2VudGFnZTo5MixkZWxheTo3MDB9XTtzLnJlc2V0UHJvZ3Jlc3NTdGVwKCk7Zm9yKGxldFtyLG5db2YgYS5lbnRyaWVzKCkpaWYodD8uYWJvcnRlZHx8KHI9PT0wP3MudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOm4ucGVyY2VudGFnZSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6YCR7bi5saW5lfS4uLmAsdGVybWluYWxMaW5lczpbbi5saW5lXX0pOihzLmFwcGVuZFByb2dyZXNzU3RlcExpbmUobi5saW5lKSxzLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZTpuLnBlcmNlbnRhZ2UsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OmAke24ubGluZX0uLi5gfSkpLCFhd2FpdCBxd2Eobi5kZWxheSx0KSkpcmV0dXJuO3MuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZSgiV29ya3NwYWNlIHJlYWR5Iikscy51cGRhdGVQcm9ncmVzc1N0ZXAoe3BlcmNlbnRhZ2U6MTAwLGluZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDoiV29ya3NwYWNlIHJlYWR5LiJ9KSxhd2FpdCBxd2EoMzUwLHQpfSwidmFsaWRhdGlvbkZ1bmMiKX0se3RpdGxlOiJUZWFtIFNpemUiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAga2V5PSJ0ZWFtU2l6ZSIKICAgICAgICAgIGxhYmVsPSJIb3cgYmlnIGlzIHlvdXIgdGVhbT8iCiAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6IjEtNSIsdmFsdWU6IjEtNSJ9LHtsYWJlbDoiNi0yMCIsdmFsdWU6IjYtMjAifSx7bGFiZWw6IjIxLTUwIix2YWx1ZToiMjEtNTAifSx7bGFiZWw6IjUxKyIsdmFsdWU6IjUxKyJ9XX0KICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLWZvcm0+CiAgICBgLG1lbnVPcHRpb25zOmlKKCl9LHt0aXRsZToiR29hbHMiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAga2V5PSJnb2FsIgogICAgICAgICAgbGFiZWw9Ik1haW4gb2JqZWN0aXZlIgogICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiJPbmJvYXJkaW5nIix2YWx1ZToib25ib2FyZGluZyJ9LHtsYWJlbDoiQW5hbHl0aWNzIix2YWx1ZToiYW5hbHl0aWNzIn0se2xhYmVsOiJBdXRvbWF0aW9uIix2YWx1ZToiYXV0b21hdGlvbiJ9XX0KICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgPC9kZWVzLWZvcm0+CiAgICBgLG1lbnVPcHRpb25zOmlKKCl9LHt0aXRsZToiUmV2aWV3ICYgTGF1bmNoIixjb250ZW50OndgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPgogICAgICAgICAgWW91ciB3b3Jrc3BhY2UgaXMgcmVhZHkuIFJldmlldyB0aGUgY29sbGVjdGVkIGRldGFpbHMgYW5kIGxhdW5jaCB3aGVuCiAgICAgICAgICB5b3UgYXJlIHJlYWR5IHRvIHN0YXJ0LgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkxhdW5jaCIsYWN0aW9uOmkoYXN5bmMgcz0+e3M/Lm92ZXJsYXkmJmF3YWl0IHMuZGVzdHJveSgpfSwiYWN0aW9uIil9XX1dLCJjcmVhdGVEZW1vU3RlcHMiKSxWd2E9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyI+CiAgICA8ZGl2CiAgICAgIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTZweDsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IHotaW5kZXg6IDEwOyIKICAgID4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IHJKLmNyZWF0ZUFuZFNob3coe3N0ZXBzOmp3YSgpfSl9fQogICAgICA+T3BlbiBzdGVwcGVyIGFzIG92ZXJsYXk8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGVlcy1zdGVwcGVyIC5zdGVwcz0ke2p3YSgpfT48L2RlZXMtc3RlcHBlcj4KICA8L2Rpdj4KYCwic3RlcHBlckRlbW8iKX0pO3ZhciB5NCxlbCxySixvMmU9ZygoKT0+e3ZvKCk7cGUoKTtrdCgpO1V3YSgpO2h0KCk7RXIoKTtHbigpO3YyKCk7UHUoKTtkbHQoKTttcigpO3k0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxlbD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scko9KCgpPT57bGV0IHM9W25lKCJkZWVzLXN0ZXBwZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1N0ZXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOkFycmF5fSldLHA9W0woe3R5cGU6T2JqZWN0fSldLGM9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0woe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHk9W0woe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZTohMX0pXSxOPVtMKHt0eXBlOk9iamVjdCxhdHRyaWJ1dGU6ITF9KV0sTz1bTCh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZTohMX0pXSx5NCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdGVwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0ZXBzLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3RlcHM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLHk0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZFN0ZXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZFN0ZXAsImdldCIpLHNldDppKChTLEkpPT57Uy5zZWxlY3RlZFN0ZXA9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLHk0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3ZlcmxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ib3ZlcmxheSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm92ZXJsYXksImdldCIpLHNldDppKChTLEkpPT57Uy5vdmVybGF5PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSx5NCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhbmNlbGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNhbmNlbGFibGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jYW5jZWxhYmxlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY2FuY2VsYWJsZT1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sZikseTQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGVwcGVyWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdGVwcGVyWkluZGV4ImluIFMsImhhcyIpLGdldDppKFM9PlMuc3RlcHBlclpJbmRleCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN0ZXBwZXJaSW5kZXg9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLHk0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYWN0aXZlRm9ybSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmFjdGl2ZUZvcm0sImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVGb3JtPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSx5NCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUZvcm1WYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYWN0aXZlRm9ybVZhbGlkImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlRm9ybVZhbGlkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYWN0aXZlRm9ybVZhbGlkPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSx5NChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPVZ3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCIsIkZvcm0iXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhrKXtsZXQgUz1kb2N1bWVudC5ib2R5LEk9bmV3IEg7cmV0dXJuIEkuc3RlcHM9ay5zdGVwcyxJLm92ZXJsYXk9ITAsay5jYW5jZWxhYmxlIT09dm9pZCAwJiYoSS5jYW5jZWxhYmxlPWsuY2FuY2VsYWJsZSksSS53aW5kb3dMYXllcj1hd2FpdCBSby5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksUy5hcHBlbmQoSS53aW5kb3dMYXllciksUy5hcHBlbmQoSSksSS5zdGVwcGVyWkluZGV4PV9hLmdldE5leHRaSW5kZXgoKSxfYS5yZWdpc3RlcihJLEkuc3RlcHBlclpJbmRleCksSX0jZT1lbCh0aGlzLG8sW10pO2dldCBzdGVwcygpe3JldHVybiB0aGlzLiNlfXNldCBzdGVwcyhrKXt0aGlzLiNlPWt9I3Q9KGVsKHRoaXMsbCksZWwodGhpcyxkLHZvaWQgMCkpO2dldCBzZWxlY3RlZFN0ZXAoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRTdGVwKGspe3RoaXMuI3Q9a30jYT0oZWwodGhpcyx1KSxlbCh0aGlzLGIsITEpKTtnZXQgb3ZlcmxheSgpe3JldHVybiB0aGlzLiNhfXNldCBvdmVybGF5KGspe3RoaXMuI2E9a30jcz0oZWwodGhpcyx2KSxlbCh0aGlzLG0sITApKTtnZXQgY2FuY2VsYWJsZSgpe3JldHVybiB0aGlzLiNzfXNldCBjYW5jZWxhYmxlKGspe3RoaXMuI3M9a30jaT0oZWwodGhpcyxmKSxlbCh0aGlzLE0sMWUzKSk7Z2V0IHN0ZXBwZXJaSW5kZXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RlcHBlclpJbmRleChrKXt0aGlzLiNpPWt9I3I9KGVsKHRoaXMseiksZWwodGhpcyxDLG51bGwpKTtnZXQgYWN0aXZlRm9ybSgpe3JldHVybiB0aGlzLiNyfXNldCBhY3RpdmVGb3JtKGspe3RoaXMuI3I9a30jbz0oZWwodGhpcyxfKSxlbCh0aGlzLCQsITApKTtnZXQgYWN0aXZlRm9ybVZhbGlkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZUZvcm1WYWxpZChrKXt0aGlzLiNvPWt9YWN0aXZlRm9ybVN1YnNjcmlwdGlvbj1lbCh0aGlzLEUpO3dpbmRvd0xheWVyO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QmF9OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIEluIG92ZXJsYXkgbW9kZSB0aGUgaG9zdCBpcyAidHJhbnNwYXJlbnQiIHRvIGxheW91dCDigJQgdGhlIGlubmVyCiAgICAgICAqIC5zdGVwcGVyQ29udGFpbmVyLm92ZXJsYXkgaXMgd2hhdCBwaW5zIHRvIHRoZSB2aWV3cG9ydCBhbmQgY2FycmllcyB0aGUKICAgICAgICogei1pbmRleC4gS2VlcGluZyA6aG9zdCB1bnBvc2l0aW9uZWQgYXZvaWRzIG5lc3RpbmcgdGhlIHN0YWNraW5nIGNvbnRleHQKICAgICAgICogdW5kZXIgYW4gYXV0by16LWluZGV4IHBhcmVudCAod2hpY2ggd2FzIHRyYXBwaW5nIC5zdGVwcGVyQ29udGFpbmVyCiAgICAgICAqIGJlbG93IERlZXNXaW5kb3dMYXllcidzIHNpYmxpbmcgbGF5ZXJzKS4gVGhpcyBtaXJyb3JzIGhvdyBkZWVzLW1vZGFsCiAgICAgICAqIGtlZXBzIGl0cyBvd24gOmhvc3QgdW5wb3NpdGlvbmVkIGFuZCBsZXRzIC5tb2RhbENvbnRhaW5lciBkcml2ZSBsYXlvdXQuCiAgICAgICAqLwogICAgICA6aG9zdChbb3ZlcmxheV0pIHsKICAgICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnN0ZXBwZXJDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAvKiBFeGl0IGFuaW1hdGlvbiDigJQgcmV2ZXJzZSBvZiB0aGUgZW50cnkuIFRpbGVzIHNsaWRlIERPV04gKyBmYWRlIG91dCwKICAgICAgICAgbWlycm9yaW5nIHRoZSAuZW50cmFuY2Ugc2xpZGUtdXAuIFRoZSB0cmFuc2l0aW9uIG92ZXJyaWRlIGlzIG5lZWRlZAogICAgICAgICBiZWNhdXNlIGRlZXMtdGlsZS5zdGVwIGhhcyBpdHMgb3duIDAuN3MgdHJhbnNpdGlvbiBmb3Igc3RlcCBzZWxlY3Rpb24KICAgICAgICAgd2hpY2ggd291bGQgb3RoZXJ3aXNlIG1ha2UgdGhlIGV4aXQgc2x1Z2dpc2guICovCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyLnByZWRlc3Ryb3kgZGVlcy10aWxlLnN0ZXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzLCBmaWx0ZXIgMC4yczsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwLjU1KSBzYXR1cmF0ZSgwLjg1KTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSksIGZpbHRlciAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuc2VsZWN0ZWQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDEpIHNhdHVyYXRlKDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBhdXRvOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5oaWRkZW5TdGVwIHsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMCk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLmVudHJhbmNlIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgZWFzZSwgZmlsdGVyIDAuMzVzIGVhc2U7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLmVudHJhbmNlLmhpZGRlblN0ZXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdmg7CiAgICAgIH0KCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyLm92ZXJsYXkgZGVlcy10aWxlLnN0ZXA6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3gtc2hhZG93OgogICAgICAgICAgMCAwIDAgMXB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDMpIil9LAogICAgICAgICAgMCA4cHggNDBweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjEyKSIsImhzbCgwIDAlIDAlIC8gMC41KSIpfSwKICAgICAgICAgIDAgMnB4IDhweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA2KSIsImhzbCgwIDAlIDAlIC8gMC4yNSkiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxMnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmdvQmFjay1zcGFjZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjazphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2sgc3BhbiB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrOmhvdmVyIHNwYW4gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5zdGVwQ291bnRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIH0KCiAgICAgIC5zdGVwLWJvZHkgLnRpdGxlIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZy10b3A6IDMycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLnN0ZXAtYm9keSAuY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLnN0ZXAtYm9keSAuY29udGVudC53aXRoUHJvZ3Jlc3NTdGVwIHsKICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzU3RlcCB7CiAgICAgICAgcGFkZGluZzogMCAyNHB4OwogICAgICB9CgogICAgICAvKiAtLS0gRm9vdGVyOiBtb2RhbC1zdHlsZSBib3R0b20gYnV0dG9ucyAtLS0gKi8KICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAvKiBCb3JkZXItbGVmdCBzZXBhcmF0b3Igb24gZXZlcnkgYnV0dG9uIEVYQ0VQVCB0aGUgZmlyc3Qgb25lLgogICAgICAgICBVc2VzIGdlbmVyYWwgc2libGluZyBzbyB0aGUgc3RlcEhpbnQgKGlmIHJlbmRlcmVkIG9uIHRoZSBsZWZ0KSBkb2VzCiAgICAgICAgIG5vdCBzaGlmdCB3aGljaCBidXR0b24gY291bnRzIGFzICJmaXJzdCIgYW5kIGNyZWF0ZSBhIHBoYW50b20gYm9yZGVyLiAqLwogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIH4gLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEyKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMTIpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC8qIEhpbnQgc2hvd24gb24gdGhlIGxlZnQgb2YgdGhlIGZvb3RlciB3aGVuIHRoZSBhY3RpdmUgc3RlcCdzIGZvcm0gaGFzCiAgICAgICAgIHVuZmlsbGVkIHJlcXVpcmVkIGZpZWxkcy4gVXNlcyBtYXJnaW4tcmlnaHQ6IGF1dG8gdG8gcHVzaCByaWdodC1hbGlnbmVkCiAgICAgICAgIGJ1dHRvbnMgdG8gdGhlIHJpZ2h0IHdoaWxlIGtlZXBpbmcgdGhlIGhpbnQgZmx1c2gtbGVmdC4gKi8KICAgICAgLmJvdHRvbUJ1dHRvbnMgLnN0ZXBIaW50IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InN0ZXBwZXJDb250YWluZXIgJHt0aGlzLm92ZXJsYXk/Im92ZXJsYXkiOiIifSIKICAgICAgICBzdHlsZT0ke3RoaXMub3ZlcmxheT9gei1pbmRleDogJHt0aGlzLnN0ZXBwZXJaSW5kZXh9O2A6IiJ9CiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2t9CiAgICAgID4KICAgICAgICAke3RoaXMuc3RlcHMubWFwKChrLFMpPT57bGV0IEk9az09PXRoaXMuc2VsZWN0ZWRTdGVwLFA9dGhpcy5nZXRJbmRleE9mU3RlcChrKT50aGlzLmdldEluZGV4T2ZTdGVwKHRoaXMuc2VsZWN0ZWRTdGVwKSxSPVM9PT0wLEs9ay5wcm9ncmVzc1N0ZXA/dGhpcy5nZXRQcm9ncmVzc1N0ZXBTdGF0ZShrKTpudWxsO3JldHVybiB3YDxkZWVzLXRpbGUKICAgICAgICAgICAgY2xhc3M9InN0ZXAgJHtJPyJzZWxlY3RlZCI6IiJ9ICR7UD8iaGlkZGVuU3RlcCI6IiJ9ICR7Uj8iZW50cmFuY2UiOiIifSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzdGVwLWhlYWRlciI+CiAgICAgICAgICAgICAgJHtSP3dgPGRpdiBjbGFzcz0iZ29CYWNrLXNwYWNlciI+PC9kaXY+YDp3YDxkaXYgY2xhc3M9ImdvQmFjayIgQGNsaWNrPSR7dGhpcy5nb0JhY2t9PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSW50ZXIiPjwtPC9zcGFuPiBnbyB0byBwcmV2aW91cyBzdGVwCiAgICAgICAgICAgICAgICAgIDwvZGl2PmB9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcENvdW50ZXIiPgogICAgICAgICAgICAgICAgU3RlcCAke1MrMX0gb2YgJHt0aGlzLnN0ZXBzLmxlbmd0aH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0ZXAtYm9keSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7ay50aXRsZX08L2Rpdj4KICAgICAgICAgICAgICAke2sucHJvZ3Jlc3NTdGVwJiZLP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1N0ZXAiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgICAgIC5sYWJlbD0ke0subGFiZWw/P2sudGl0bGV9CiAgICAgICAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHtLLnBlcmNlbnRhZ2U/PzB9CiAgICAgICAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHtLLmluZGV0ZXJtaW5hdGU/PyExfQogICAgICAgICAgICAgICAgICAgIC5zaG93UGVyY2VudGFnZT0ke0suc2hvd1BlcmNlbnRhZ2U/PyEwfQogICAgICAgICAgICAgICAgICAgIC5zdGF0dXNUZXh0PSR7Sy5zdGF0dXNUZXh0Pz8iIn0KICAgICAgICAgICAgICAgICAgICAudGVybWluYWxMaW5lcz0ke0sudGVybWluYWxMaW5lcz8/W119CiAgICAgICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHtLLnN0YXR1c1Jvd3M/PzN9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQgJHtrLnByb2dyZXNzU3RlcD8id2l0aFByb2dyZXNzU3RlcCI6IiJ9Ij4ke2suY29udGVudH08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYm90dG9tQnV0dG9ucyI+CiAgICAgICAgICAgICAgJHtJJiZ0aGlzLmFjdGl2ZUZvcm0hPT1udWxsJiYhdGhpcy5hY3RpdmVGb3JtVmFsaWQ/d2A8ZGl2IGNsYXNzPSJzdGVwSGludCI+Q29tcGxldGUgZm9ybSB0byBjb250aW51ZTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLmNhbmNlbGFibGU/d2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJvdHRvbUJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDYW5jZWxSZXF1ZXN0KCl9CiAgICAgICAgICAgICAgICAgID5DYW5jZWw8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7ay5tZW51T3B0aW9ucz8ubWFwKChWLFcpPT57bGV0IG1lPVc9PT1rLm1lbnVPcHRpb25zLmxlbmd0aC0xLEI9bWUmJnRoaXMuYWN0aXZlRm9ybSE9PW51bGwmJiF0aGlzLmFjdGl2ZUZvcm1WYWxpZDtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24gJHttZT8icHJpbWFyeSI6IiJ9ICR7Qj8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51T3B0aW9uQ2xpY2soVixtZSl9CiAgICAgICAgICAgICAgICAgID4ke1YubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgIGB9KT8/IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+YH0pfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0SW5kZXhPZlN0ZXA9aShrPT50aGlzLnN0ZXBzLmZpbmRJbmRleChTPT5rPT09UyksImdldEluZGV4T2ZTdGVwIik7YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3RlcHMubGVuZ3RoJiYodGhpcy5wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24odGhpcy5zdGVwc1swXSksdGhpcy5zZWxlY3RlZFN0ZXA9dGhpcy5zdGVwc1swXSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCksYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDM1MCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwLmVudHJhbmNlIik/LmNsYXNzTGlzdC5yZW1vdmUoImVudHJhbmNlIikpfWFzeW5jIHVwZGF0ZWQoayl7IWsuaGFzKCJzZWxlY3RlZFN0ZXAiKSYmIWsuaGFzKCJzdGVwcyIpfHxhd2FpdCB0aGlzLnNldFNjcm9sbFN0YXR1cygpfXNjcm9sbGVyO2FzeW5jIHNldFNjcm9sbFN0YXR1cygpe2xldCBrPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcHBlckNvbnRhaW5lciIpLFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpO2lmKCFTKXJldHVybjt0aGlzLnNjYW5BY3RpdmVGb3JtKFMpLGsuc3R5bGUucGFkZGluZ1RvcHx8KGsuc3R5bGUucGFkZGluZ1RvcD1gJHtrLm9mZnNldEhlaWdodC8yLVMub2Zmc2V0SGVpZ2h0LzJ9cHhgKTtsZXQgST1TLm9mZnNldFRvcC1rLm9mZnNldEhlaWdodC8yK1Mub2Zmc2V0SGVpZ2h0LzI7YXdhaXQgamkuc2V0dXBEb21Ub29scygpLHRoaXMuc2Nyb2xsZXJ8fCh0aGlzLnNjcm9sbGVyPW5ldyB1dC5Td2VldFNjcm9sbCh7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxlYXNpbmc6ImVhc2VJbk91dEV4cG8iLGR1cmF0aW9uOjcwMH0saykpLCF0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCYmdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmMmJih0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMCx0aGlzLnJ1blN0ZXBWYWxpZGF0aW9uKHRoaXMuc2VsZWN0ZWRTdGVwLFMsdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLnNpZ25hbCkpLHRoaXMuc2Nyb2xsZXIudG8oSSl9YXN5bmMgZ29CYWNrKCl7bGV0IGs9dGhpcy5zdGVwcy5maW5kSW5kZXgoUD0+UD09PXRoaXMuc2VsZWN0ZWRTdGVwKTtpZihrPD0wKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBTPXRoaXMuc3RlcHNba107Uy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgST10aGlzLnN0ZXBzW2stMV07SS52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbihJKSx0aGlzLnNlbGVjdGVkU3RlcD1JLGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMuc2VsZWN0ZWRTdGVwLm9uUmV0dXJuVG9TdGVwRnVuYz8uKHRoaXMsdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpKX1nb05leHQoKXtsZXQgaz10aGlzLnN0ZXBzLmZpbmRJbmRleChQPT5QPT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGs8MHx8az49dGhpcy5zdGVwcy5sZW5ndGgtMSlyZXR1cm47dGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtsZXQgUz10aGlzLnN0ZXBzW2tdO1MudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITE7bGV0IEk9dGhpcy5zdGVwc1trKzFdO0kudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITEsdGhpcy5wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24oSSksdGhpcy5zZWxlY3RlZFN0ZXA9SX1yZXNldFByb2dyZXNzU3RlcChrPXRoaXMuc2VsZWN0ZWRTdGVwKXtrPy5wcm9ncmVzc1N0ZXAmJihrLnByb2dyZXNzU3RlcFN0YXRlPXRoaXMuY3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKGspLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX11cGRhdGVQcm9ncmVzc1N0ZXAoayxTPXRoaXMuc2VsZWN0ZWRTdGVwKXtpZighUz8ucHJvZ3Jlc3NTdGVwKXJldHVybjtsZXQgST10aGlzLmdldFByb2dyZXNzU3RlcFN0YXRlKFMpO1MucHJvZ3Jlc3NTdGVwU3RhdGU9ey4uLkksLi4uayx0ZXJtaW5hbExpbmVzOmsudGVybWluYWxMaW5lcz9bLi4uay50ZXJtaW5hbExpbmVzXTpbLi4uSS50ZXJtaW5hbExpbmVzPz9bXV19LHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFwcGVuZFByb2dyZXNzU3RlcExpbmUoayxTPXRoaXMuc2VsZWN0ZWRTdGVwKXtpZighUz8ucHJvZ3Jlc3NTdGVwKXJldHVybjtsZXQgST10aGlzLmdldFByb2dyZXNzU3RlcFN0YXRlKFMpO3RoaXMudXBkYXRlUHJvZ3Jlc3NTdGVwKHt0ZXJtaW5hbExpbmVzOlsuLi5JLnRlcm1pbmFsTGluZXM/P1tdLGtdfSxTKX1zY2FuQWN0aXZlRm9ybShrKXtsZXQgUz1rLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO2lmKFM9PT10aGlzLmFjdGl2ZUZvcm0pe3RoaXMucmVjb21wdXRlRm9ybVZhbGlkKCk7cmV0dXJufWlmKHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb249dm9pZCAwLHRoaXMuYWN0aXZlRm9ybT1TLCFTKXt0aGlzLmFjdGl2ZUZvcm1WYWxpZD0hMDtyZXR1cm59dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb249Uy5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMucmVjb21wdXRlRm9ybVZhbGlkKCl9KX1yZWNvbXB1dGVGb3JtVmFsaWQoKXtsZXQgaz10aGlzLmFjdGl2ZUZvcm07aWYoIWspe3RoaXMuYWN0aXZlRm9ybVZhbGlkPSEwO3JldHVybn1sZXQgUz1rLmdldEZvcm1FbGVtZW50cygpO3RoaXMuYWN0aXZlRm9ybVZhbGlkPVMuZXZlcnkoST0+IUkucmVxdWlyZWR8fEkudmFsdWUhPT1udWxsJiZJLnZhbHVlIT09dm9pZCAwJiZJLnZhbHVlIT09IiIpfWFzeW5jIGhhbmRsZU1lbnVPcHRpb25DbGljayhrLFMpe2xldCBJPXRoaXMuYWN0aXZlRm9ybTtpZihTJiZJKXtpZighdGhpcy5hY3RpdmVGb3JtVmFsaWQpcmV0dXJuO2F3YWl0IG5ldyBQcm9taXNlKFA9PntJLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+UCgpLHtvbmNlOiEwfSksSS5nYXRoZXJBbmREaXNwYXRjaCgpfSl9YXdhaXQgay5hY3Rpb24odGhpcyl9Z2V0UHJvZ3Jlc3NTdGVwU3RhdGUoayl7cmV0dXJuIGsucHJvZ3Jlc3NTdGVwPyhrLnByb2dyZXNzU3RlcFN0YXRlfHwoay5wcm9ncmVzc1N0ZXBTdGF0ZT10aGlzLmNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShrKSksay5wcm9ncmVzc1N0ZXBTdGF0ZSk6e319Y3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKGspe3JldHVybntsYWJlbDprLnByb2dyZXNzU3RlcD8ubGFiZWw/P2sudGl0bGUscGVyY2VudGFnZTprLnByb2dyZXNzU3RlcD8ucGVyY2VudGFnZT8/MCxpbmRldGVybWluYXRlOmsucHJvZ3Jlc3NTdGVwPy5pbmRldGVybWluYXRlPz8hMSxzaG93UGVyY2VudGFnZTprLnByb2dyZXNzU3RlcD8uc2hvd1BlcmNlbnRhZ2U/PyEwLHN0YXR1c1RleHQ6ay5wcm9ncmVzc1N0ZXA/LnN0YXR1c1RleHQ/PyIiLHRlcm1pbmFsTGluZXM6Wy4uLmsucHJvZ3Jlc3NTdGVwPy50ZXJtaW5hbExpbmVzPz9bXV0sc3RhdHVzUm93czprLnByb2dyZXNzU3RlcD8uc3RhdHVzUm93cz8/M319cHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKGspe2s/LnByb2dyZXNzU3RlcCYmKGsucHJvZ3Jlc3NTdGVwU3RhdGU9dGhpcy5jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoaykpfWFzeW5jIHJ1blN0ZXBWYWxpZGF0aW9uKGssUyxJKXt0cnl7aWYoYXdhaXQgay52YWxpZGF0aW9uRnVuYz8uKHRoaXMsUyxJKSxJLmFib3J0ZWQpcmV0dXJuO2sucHJvZ3Jlc3NTdGVwJiZrLnByb2dyZXNzU3RlcC5hdXRvQWR2YW5jZSE9PSExJiZ0aGlzLnNlbGVjdGVkU3RlcD09PWsmJnRoaXMuZ29OZXh0KCl9Y2F0Y2goUCl7aWYoSS5hYm9ydGVkKXJldHVybjtpZihrLnByb2dyZXNzU3RlcCl7bGV0IFI9UCBpbnN0YW5jZW9mIEVycm9yP1AubWVzc2FnZToiVW5leHBlY3RlZCBlcnJvciI7dGhpcy5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKGBFcnJvcjogJHtSfWAsayksdGhpcy51cGRhdGVQcm9ncmVzc1N0ZXAoe2luZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDpSfSxrKX1jb25zb2xlLmVycm9yKFApfX1jYW5jZWxDb25maXJtTW9kYWw7aGFuZGxlT3V0c2lkZUNsaWNrKGspe2lmKCF0aGlzLm92ZXJsYXl8fCF0aGlzLmNhbmNlbGFibGUpcmV0dXJuO2suc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIik7ay50YXJnZXQ9PT1TJiZ0aGlzLmhhbmRsZUNhbmNlbFJlcXVlc3QoKX1hc3luYyBoYW5kbGVDYW5jZWxSZXF1ZXN0KCl7dGhpcy5jYW5jZWxhYmxlJiYodGhpcy5jYW5jZWxDb25maXJtTW9kYWwmJnRoaXMuY2FuY2VsQ29uZmlybU1vZGFsLmlzQ29ubmVjdGVkfHwodGhpcy5jYW5jZWxDb25maXJtTW9kYWw9dm9pZCAwLHRoaXMuY2FuY2VsQ29uZmlybU1vZGFsPWF3YWl0IGlzLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkNhbmNlbCBzZXR1cD8iLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDA7Ij4KICAgICAgICAgIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjYW5jZWw/IEFueSBwcm9ncmVzcyBvbiB0aGUgY3VycmVudCBzdGVwIHdpbGwgYmUgbG9zdC4KICAgICAgICA8L3A+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDb250aW51ZSBzZXR1cCIsYWN0aW9uOmkoYXN5bmMgaz0+e3RoaXMuY2FuY2VsQ29uZmlybU1vZGFsPXZvaWQgMCxhd2FpdCBrLmRlc3Ryb3koKX0sImFjdGlvbiIpfSx7bmFtZToiWWVzLCBjYW5jZWwiLGFjdGlvbjppKGFzeW5jIGs9Pnt0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD12b2lkIDAsay5kZXN0cm95KCksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSxhd2FpdCB0aGlzLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KSkpfWFzeW5jIGRlc3Ryb3koKXtsZXQgaz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxTPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcHBlckNvbnRhaW5lciIpO3RoaXMuc2VsZWN0ZWRTdGVwPy5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpLFM/LmNsYXNzTGlzdC5hZGQoInByZWRlc3Ryb3kiKSxhd2FpdCBrLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPXZvaWQgMCx0aGlzLmFjdGl2ZUZvcm09bnVsbCxfYS51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tlbChhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgV3dhPWcoKCk9PntvMmUoKX0pO3ZhciBHd2E9ZygoKT0+e21yKCl9KTt2YXIgS3dhPWcoKCk9Pntjd2EoKTtDd2EoKTtFd2EoKTtQd2EoKTtSd2EoKTtPd2EoKTtId2EoKTtXd2EoKTtHd2EoKX0pO3ZhciBZd2EsWndhPWcoKCk9PntwZSgpO1l3YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuY29tcGFjdCB7CiAgICAgIGhlaWdodDogMjUwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpQRUcgSW1hZ2Ugd2l0aCBUb29sYmFyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgbGFuZHNjYXBlIHBob3RvIHdpdGggem9vbSwgcGFuLCBmaXQsIGFuZCBkb3dubG9hZCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGFsdD0iTW91bnRhaW4gbGFuZHNjYXBlIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QTkcgd2l0aCBUcmFuc3BhcmVuY3k8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VHJhbnNwYXJlbnQgUE5HIGRpc3BsYXllZCBvbiBhIGNoZWNrZXJib2FyZCBiYWNrZ3JvdW5kLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvNC80Ny9QTkdfdHJhbnNwYXJlbmN5X2RlbW9uc3RyYXRpb25fMS5wbmciCiAgICAgICAgYWx0PSJQTkcgdHJhbnNwYXJlbmN5IGRlbW8iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNWRyBJbWFnZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TY2FsYWJsZSB2ZWN0b3IgZ3JhcGhpYy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzAvMDIvU1ZHX2xvZ28uc3ZnIgogICAgICAgIGFsdD0iU1ZHIGxvZ28iCiAgICAgICAgZml0PSJjb250YWluIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5ObyBUb29sYmFyIFZhcmlhbnQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+SW1hZ2Ugdmlld2VyIHdpdGggdGhlIHRvb2xiYXIgaGlkZGVuLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBjbGFzcz0iY29tcGFjdCIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDY5NDc0OTY4MDI4LTU2NjIzZjAyZTQyZT93PTgwMCIKICAgICAgICBhbHQ9Ik5hdHVyZSBzY2VuZSIKICAgICAgICAuc2hvd1Rvb2xiYXI9JHshMX0KICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIHVjLGJpLGplcyx4bHQ9ZygoKT0+e3BlKCk7R2EoKTtad2EoKTt1Yz1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sYmk9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGplcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtaW1hZ2Utdmlld2VyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXTt2YXIgdWU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNJbWFnZVZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBsZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCgpXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNyYyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnNyYywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5zcmM9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LG8sbCksdWModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImFsdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmFsdCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5hbHQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGQsdSksdWModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImZpdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmZpdCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5maXQ9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGIsdiksdWModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic2hvd1Rvb2xiYXIiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5zaG93VG9vbGJhcj1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sbSxmKSx1Yyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Inpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Inpvb20iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US56b29tLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLnpvb209aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LE0seiksdWModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5YIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJwYW5YImluIFEsImhhcyIpLGdldDppKFE9PlEucGFuWCwiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5wYW5YPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxDLF8pLHVjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFuWSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4icGFuWSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnBhblksImdldCIpLHNldDppKChRLGllKT0+e1EucGFuWT1pZX0sInNldCIpfSxtZXRhZGF0YTpsZX0sJCxFKSx1Yyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImlzRHJhZ2dpbmciaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pc0RyYWdnaW5nLCJnZXQiKSxzZXQ6aSgoUSxpZSk9PntRLmlzRHJhZ2dpbmc9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LGssUyksdWModGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJsb2FkaW5nImluIFEsImhhcyIpLGdldDppKFE9PlEubG9hZGluZywiZ2V0Iiksc2V0OmkoKFEsaWUpPT57US5sb2FkaW5nPWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxQLFIpLHVjKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImVycm9yImluIFEsImhhcyIpLGdldDppKFE9PlEuZXJyb3IsImdldCIpLHNldDppKChRLGllKT0+e1EuZXJyb3I9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LFYsVyksdWModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImltYWdlTmF0dXJhbFdpZHRoImluIFEsImhhcyIpLGdldDppKFE9PlEuaW1hZ2VOYXR1cmFsV2lkdGgsImdldCIpLHNldDppKChRLGllKT0+e1EuaW1hZ2VOYXR1cmFsV2lkdGg9aWV9LCJzZXQiKX0sbWV0YWRhdGE6bGV9LEIsVSksdWModGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJpbWFnZU5hdHVyYWxIZWlnaHQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pbWFnZU5hdHVyYWxIZWlnaHQsImdldCIpLHNldDppKChRLGllKT0+e1EuaW1hZ2VOYXR1cmFsSGVpZ2h0PWllfSwic2V0Iil9LG1ldGFkYXRhOmxlfSxGLGopLHVjKG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmxlfSxudWxsLHQpLHVlPWE9ZS52YWx1ZSxsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpsZX0pfXN0YXRpYyBkZW1vPVl3YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07I2U9YmkodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhsZSl7dGhpcy4jZT1sZX0jdD0oYmkodGhpcyxsKSxiaSh0aGlzLGQsIiIpKTtnZXQgYWx0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFsdChsZSl7dGhpcy4jdD1sZX0jYT0oYmkodGhpcyx1KSxiaSh0aGlzLGIsImNvbnRhaW4iKSk7Z2V0IGZpdCgpe3JldHVybiB0aGlzLiNhfXNldCBmaXQobGUpe3RoaXMuI2E9bGV9I3M9KGJpKHRoaXMsdiksYmkodGhpcyxtLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUb29sYmFyKGxlKXt0aGlzLiNzPWxlfSNpPShiaSh0aGlzLGYpLGJpKHRoaXMsTSwxKSk7Z2V0IHpvb20oKXtyZXR1cm4gdGhpcy4jaX1zZXQgem9vbShsZSl7dGhpcy4jaT1sZX0jcj0oYmkodGhpcyx6KSxiaSh0aGlzLEMsMCkpO2dldCBwYW5YKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBhblgobGUpe3RoaXMuI3I9bGV9I289KGJpKHRoaXMsXyksYmkodGhpcywkLDApKTtnZXQgcGFuWSgpe3JldHVybiB0aGlzLiNvfXNldCBwYW5ZKGxlKXt0aGlzLiNvPWxlfSNuPShiaSh0aGlzLEUpLGJpKHRoaXMsaywhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzRHJhZ2dpbmcobGUpe3RoaXMuI249bGV9I2w9KGJpKHRoaXMsUyksYmkodGhpcyxQLCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhsZSl7dGhpcy4jbD1sZX0jYz0oYmkodGhpcyxSKSxiaSh0aGlzLFYsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jY31zZXQgZXJyb3IobGUpe3RoaXMuI2M9bGV9I2Q9KGJpKHRoaXMsVyksYmkodGhpcyxCLDApKTtnZXQgaW1hZ2VOYXR1cmFsV2lkdGgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaW1hZ2VOYXR1cmFsV2lkdGgobGUpe3RoaXMuI2Q9bGV9I3U9KGJpKHRoaXMsVSksYmkodGhpcyxGLDApKTtnZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3V9c2V0IGltYWdlTmF0dXJhbEhlaWdodChsZSl7dGhpcy4jdT1sZX1kcmFnU3RhcnRYPShiaSh0aGlzLGopLDApO2RyYWdTdGFydFk9MDtkcmFnU3RhcnRQYW5YPTA7ZHJhZ1N0YXJ0UGFuWT0wO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnpvb20tbGV2ZWwgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGN1cnNvcjogJHt0aGlzLnpvb20+MT90aGlzLmlzRHJhZ2dpbmc/ImdyYWJiaW5nIjoiZ3JhYiI6ImRlZmF1bHQifTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2VyYm9hcmQgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKTsKICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDhweCwgOHB4IC04cHgsIC04cHggMHB4OwogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHt0aGlzLnBhblh9cHgsICR7dGhpcy5wYW5ZfXB4KSBzY2FsZSgke3RoaXMuem9vbX0pOwogICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGlzLmlzRHJhZ2dpbmc/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlIn07CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiAke3RoaXMuZml0fTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcuYWN0dWFsIHsKICAgICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgICBvYmplY3QtZml0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjgpIiwicmdiYSgwLDAsMCwwLjYpIil9OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWluZm8gewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21PdXR9IHRpdGxlPSJab29tIG91dCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLnpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21Jbn0gdGl0bGU9Ilpvb20gaW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmZpdFRvU2NyZWVufSB0aXRsZT0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuYWN0dWFsU2l6ZX0gdGl0bGU9IkFjdHVhbCBzaXplICgxMDAlKSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTY2FuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmRvd25sb2FkfSB0aXRsZT0iRG93bmxvYWQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmltYWdlTmF0dXJhbFdpZHRoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS1pbmZvIj4ke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGh9IHggJHt0aGlzLmltYWdlTmF0dXJhbEhlaWdodH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iaW1hZ2UtYXJlYSIKICAgICAgICAgIEB3aGVlbD0ke3RoaXMuaGFuZGxlV2hlZWx9CiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgICBAbW91c2V1cD0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5oYW5kbGVEb3VibGVDbGlja30KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2VyYm9hcmQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgICAgICR7dGhpcy5zcmM/d2AKICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmZpdD09PSJhY3R1YWwiPyJhY3R1YWwiOiIifSIKICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmxvYWRpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpJbWFnZU9mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXpvb21Jbigpe3RoaXMuem9vbT1NYXRoLm1pbigxMCx0aGlzLnpvb20qMS4yNSl9em9vbU91dCgpe3RoaXMuem9vbT1NYXRoLm1heCguMSx0aGlzLnpvb20vMS4yNSksdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXJlc2V0Wm9vbSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wfWZpdFRvU2NyZWVuKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImNvbnRhaW4ifWFjdHVhbFNpemUoKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iYWN0dWFsIn1kb3dubG9hZCgpe2lmKCF0aGlzLnNyYylyZXR1cm47bGV0IGxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtsZS5ocmVmPXRoaXMuc3JjLGxlLmRvd25sb2FkPXRoaXMuc3JjLnNwbGl0KCIvIikucG9wKCl8fCJpbWFnZSIsbGUuY2xpY2soKX1oYW5kbGVJbWFnZUxvYWQobGUpe2xldCBRPWxlLnRhcmdldDt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iIix0aGlzLmltYWdlTmF0dXJhbFdpZHRoPVEubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PVEubmF0dXJhbEhlaWdodH1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGltYWdlIn1oYW5kbGVXaGVlbChsZSl7bGUucHJldmVudERlZmF1bHQoKTtsZXQgUT1sZS5kZWx0YVk+MD8uOToxLjEsaWU9TWF0aC5taW4oMTAsTWF0aC5tYXgoLjEsdGhpcy56b29tKlEpKTt0aGlzLnpvb209aWUsdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfWhhbmRsZU1vdXNlRG93bihsZSl7dGhpcy56b29tPD0xfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuZHJhZ1N0YXJ0WD1sZS5jbGllbnRYLHRoaXMuZHJhZ1N0YXJ0WT1sZS5jbGllbnRZLHRoaXMuZHJhZ1N0YXJ0UGFuWD10aGlzLnBhblgsdGhpcy5kcmFnU3RhcnRQYW5ZPXRoaXMucGFuWSl9aGFuZGxlTW91c2VNb3ZlKGxlKXt0aGlzLmlzRHJhZ2dpbmcmJih0aGlzLnBhblg9dGhpcy5kcmFnU3RhcnRQYW5YKyhsZS5jbGllbnRYLXRoaXMuZHJhZ1N0YXJ0WCksdGhpcy5wYW5ZPXRoaXMuZHJhZ1N0YXJ0UGFuWSsobGUuY2xpZW50WS10aGlzLmRyYWdTdGFydFkpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExfWhhbmRsZURvdWJsZUNsaWNrKCl7dGhpcy56b29tPT09MT90aGlzLnpvb209MjoodGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXVwZGF0ZWQobGUpe3N1cGVyLnVwZGF0ZWQobGUpLGxlLmhhcygic3JjIikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0iIix0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmltYWdlTmF0dXJhbFdpZHRoPTAsdGhpcy5pbWFnZU5hdHVyYWxIZWlnaHQ9MCl9c3RhdGlje2JpKGEsdCl9fTtyZXR1cm4gdWU9YX0pKCl9KTt2YXIgWHdhPWcoKCk9Pnt4bHQoKX0pO3ZhciBRd2EsSndhPWcoKCk9PntwZSgpO1F3YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1hdWRpby12aWV3ZXIgewogICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gd2l0aCBXYXZlZm9ybTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBwbGF5ZXIgd2l0aCB3YXZlZm9ybSB2aXN1YWxpemF0aW9uIGFuZCBmdWxsIHRyYW5zcG9ydCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gd2l0aG91dCBXYXZlZm9ybTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TaW1wbGUgYXVkaW8gcGxheWVyIHdpdGggYSBzZWVrYmFyIGluc3RlYWQgb2YgYSB3YXZlZm9ybS48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMiIKICAgICAgICAuc2hvd1dhdmVmb3JtPSR7ITF9CiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk1pbmltYWwgQXVkaW8gUGxheWVyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk5vIHRpdGxlIG9yIGFydGlzdCBtZXRhZGF0YSDigJQganVzdCB0aGUgcGxheWVyLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMy5tcDMiCiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBibixEcyxWZXMseWx0PWcoKCk9PntwZSgpO0dhKCk7SndhKCk7Ym49ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LERzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxWZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLWF1ZGlvLXZpZXdlciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdLEgsaz1bXSxTPVtdLEksUD1bXSxSPVtdLEssVj1bXSxXPVtdLG1lLEI9W10sVT1bXSxoZSxGPVtdLGo9W10sdWUsbGU9W10sUT1bXSxpZSx0ZT1bXSxlZT1bXSxrZSxYPVtdLFo9W107dmFyIHllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzQXVkaW9WaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgcT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKCldLHA9W0woKV0sYz1bTCgpXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLGtlPVtZKCldLGJuKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJzcmMiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5zcmMsImdldCIpLHNldDppKChBLHNlKT0+e0Euc3JjPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LG8sbCksYm4odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4idGl0bGUiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS50aXRsZSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS50aXRsZT1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxkLHUpLGJuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhcnRpc3QiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5hcnRpc3QsImdldCIpLHNldDppKChBLHNlKT0+e0EuYXJ0aXN0PXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGIsdiksYm4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2F2ZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+InNob3dXYXZlZm9ybSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLnNob3dXYXZlZm9ybSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5zaG93V2F2ZWZvcm09c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sbSxmKSxibih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9wbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJhdXRvcGxheSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmF1dG9wbGF5LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmF1dG9wbGF5PXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LE0seiksYm4odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb29wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJsb29wImluIEEsImhhcyIpLGdldDppKEE9PkEubG9vcCwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5sb29wPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LEMsXyksYm4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImlzUGxheWluZyJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmlzUGxheWluZywiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5pc1BsYXlpbmc9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sJCxFKSxibih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJjdXJyZW50VGltZSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmN1cnJlbnRUaW1lLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmN1cnJlbnRUaW1lPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LGssUyksYm4odGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZHVyYXRpb24iaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5kdXJhdGlvbj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxQLFIpLGJuKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEE9PiJ2b2x1bWUiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS52b2x1bWUsImdldCIpLHNldDppKChBLHNlKT0+e0Eudm9sdW1lPXNlfSwic2V0Iil9LG1ldGFkYXRhOnF9LFYsVyksYm4odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNNdXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iaXNNdXRlZCJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLmlzTXV0ZWQsImdldCIpLHNldDppKChBLHNlKT0+e0EuaXNNdXRlZD1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxCLFUpLGJuKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+ImxvYWRpbmciaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLmxvYWRpbmc9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sRixqKSxibih0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShBPT4iZXJyb3IiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS5lcnJvciwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS5lcnJvcj1zZX0sInNldCIpfSxtZXRhZGF0YTpxfSxsZSxRKSxibih0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+IndhdmVmb3JtRGF0YSJpbiBBLCJoYXMiKSxnZXQ6aShBPT5BLndhdmVmb3JtRGF0YSwiZ2V0Iiksc2V0OmkoKEEsc2UpPT57QS53YXZlZm9ybURhdGE9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sdGUsZWUpLGJuKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQT0+IndhdmVmb3JtUmVhZHkiaW4gQSwiaGFzIiksZ2V0OmkoQT0+QS53YXZlZm9ybVJlYWR5LCJnZXQiKSxzZXQ6aSgoQSxzZSk9PntBLndhdmVmb3JtUmVhZHk9c2V9LCJzZXQiKX0sbWV0YWRhdGE6cX0sWCxaKSxibihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpxfSxudWxsLHQpLHllPWE9ZS52YWx1ZSxxJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX1zdGF0aWMgZGVtbz1Rd2E7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPURzKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMocSl7dGhpcy4jZT1xfSN0PShEcyh0aGlzLGwpLERzKHRoaXMsZCwiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShxKXt0aGlzLiN0PXF9I2E9KERzKHRoaXMsdSksRHModGhpcyxiLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNhfXNldCBhcnRpc3QocSl7dGhpcy4jYT1xfSNzPShEcyh0aGlzLHYpLERzKHRoaXMsbSwhMCkpO2dldCBzaG93V2F2ZWZvcm0oKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1dhdmVmb3JtKHEpe3RoaXMuI3M9cX0jaT0oRHModGhpcyxmKSxEcyh0aGlzLE0sITEpKTtnZXQgYXV0b3BsYXkoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b3BsYXkocSl7dGhpcy4jaT1xfSNyPShEcyh0aGlzLHopLERzKHRoaXMsQywhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvb3AocSl7dGhpcy4jcj1xfSNvPShEcyh0aGlzLF8pLERzKHRoaXMsJCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKHEpe3RoaXMuI289cX0jbj0oRHModGhpcyxFKSxEcyh0aGlzLGssMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50VGltZShxKXt0aGlzLiNuPXF9I2w9KERzKHRoaXMsUyksRHModGhpcyxQLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24ocSl7dGhpcy4jbD1xfSNjPShEcyh0aGlzLFIpLERzKHRoaXMsViwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUocSl7dGhpcy4jYz1xfSNkPShEcyh0aGlzLFcpLERzKHRoaXMsQiwhMSkpO2dldCBpc011dGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzTXV0ZWQocSl7dGhpcy4jZD1xfSN1PShEcyh0aGlzLFUpLERzKHRoaXMsRiwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGxvYWRpbmcocSl7dGhpcy4jdT1xfSNwPShEcyh0aGlzLGopLERzKHRoaXMsbGUsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IocSl7dGhpcy4jcD1xfSNoPShEcyh0aGlzLFEpLERzKHRoaXMsdGUsW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHdhdmVmb3JtRGF0YShxKXt0aGlzLiNoPXF9I2Y9KERzKHRoaXMsZWUpLERzKHRoaXMsWCwhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHdhdmVmb3JtUmVhZHkocSl7dGhpcy4jZj1xfWF1ZGlvRWxlbWVudD0oRHModGhpcyxaKSxudWxsKTtjYW52YXNFbGVtZW50PW51bGw7YW5pbUZyYW1lSWQ9MDt2b2x1bWVCZWZvcmVNdXRlPTE7cmVuZGVyKCl7bGV0IHE9dGhpcy50aXRsZSYmdGhpcy5hcnRpc3Q/YCR7dGhpcy50aXRsZX0gXHUyMDE0ICR7dGhpcy5hcnRpc3R9YDp0aGlzLnRpdGxlfHx0aGlzLmFydGlzdHx8IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAtLWVuZCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgbWluLXdpZHRoOiA5MHB4OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlciB7CiAgICAgICAgICB3aWR0aDogNzBweDsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYiB7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItZmlsbCB7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuY3VycmVudFRpbWUpfSAvICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3E/d2AKICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPiR7cX08L3NwYW4+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAtLWVuZCI+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmxvb3A/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTG9vcH0KICAgICAgICAgICAgICB0aXRsZT0iTG9vcCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlJlcGVhdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVNdXRlfSB0aXRsZT0iJHt0aGlzLmlzTXV0ZWQ/IlVubXV0ZSI6Ik11dGUifSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNNdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpNdXNpY09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5zaG93V2F2ZWZvcm0/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0id2F2ZWZvcm0tY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZVdhdmVmb3JtQ2xpY2t9PgogICAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrYmFyQ2xpY2t9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItZmlsbCIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zcmMmJnRoaXMuaW5pdEF1ZGlvKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYW51cCgpfWFzeW5jIHVwZGF0ZWQocSl7c3VwZXIudXBkYXRlZChxKSxxLmhhcygic3JjIikmJnRoaXMuc3JjJiYodGhpcy5jbGVhbnVwKCksdGhpcy5pbml0QXVkaW8oKSksKHEuaGFzKCJ3YXZlZm9ybURhdGEiKXx8cS5oYXMoImN1cnJlbnRUaW1lIikpJiZ0aGlzLmRyYXdXYXZlZm9ybSgpfXBsYXkoKXt0aGlzLmF1ZGlvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKHEpe3RoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWU9cSl9c2V0Vm9sdW1lKHEpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxxKSksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpLHRoaXMudm9sdW1lPjAmJih0aGlzLmlzTXV0ZWQ9ITEpfXRvZ2dsZU11dGUoKXt0aGlzLmlzTXV0ZWQ/KHRoaXMuaXNNdXRlZD0hMSx0aGlzLnZvbHVtZT10aGlzLnZvbHVtZUJlZm9yZU11dGV8fC41LHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSk6KHRoaXMudm9sdW1lQmVmb3JlTXV0ZT10aGlzLnZvbHVtZSx0aGlzLmlzTXV0ZWQ9ITAsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9MCkpfXRvZ2dsZUxvb3AoKXt0aGlzLmxvb3A9IXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50Lmxvb3A9dGhpcy5sb29wKX1pbml0QXVkaW8oKXt0aGlzLmF1ZGlvRWxlbWVudD1uZXcgQXVkaW8sdGhpcy5hdWRpb0VsZW1lbnQuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdGhpcy5hdWRpb0VsZW1lbnQuc3JjPXRoaXMuc3JjLHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSx0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPXRoaXMuYXVkaW9FbGVtZW50LmR1cmF0aW9uLHRoaXMubG9hZGluZz0hMX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zdGFydFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVuZGVkIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGF1ZGlvIix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0aW1ldXBkYXRlIiwoKT0+e3RoaXMuY3VycmVudFRpbWU9dGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWV9KSx0aGlzLmF1dG9wbGF5JiZ0aGlzLmF1ZGlvRWxlbWVudC5wbGF5KCkuY2F0Y2goKCk9Pnt9KSx0aGlzLnNob3dXYXZlZm9ybSYmdGhpcy5sb2FkV2F2ZWZvcm0oKX1hc3luYyBsb2FkV2F2ZWZvcm0oKXt0cnl7dGhpcy5sb2FkaW5nPSEwO2xldCBBPWF3YWl0KGF3YWl0IGZldGNoKHRoaXMuc3JjKSkuYXJyYXlCdWZmZXIoKSxzZT1uZXcgQXVkaW9Db250ZXh0LGFlPShhd2FpdCBzZS5kZWNvZGVBdWRpb0RhdGEoQSkpLmdldENoYW5uZWxEYXRhKDApLFRlPTIwMCxSZT1NYXRoLmZsb29yKGFlLmxlbmd0aC9UZSksQmU9W107Zm9yKGxldCBEZT0wO0RlPFRlO0RlKyspe2xldCBfZT0wO2ZvcihsZXQgQ2U9MDtDZTxSZTtDZSsrKV9lKz1NYXRoLmFicyhhZVtEZSpSZStDZV0pO0JlLnB1c2goX2UvUmUpfWxldCBHZT1NYXRoLm1heCguLi5CZSk7dGhpcy53YXZlZm9ybURhdGE9QmUubWFwKERlPT5HZT4wP0RlL0dlOjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgc2UuY2xvc2UoKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5sb2FkaW5nPSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy5zaG93V2F2ZWZvcm18fCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBxPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiY2FudmFzIik7aWYoIXEpcmV0dXJuO3RoaXMuY2FudmFzRWxlbWVudD1xO2xldCBBPXEucGFyZW50RWxlbWVudCxzZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxvZT1BLmNsaWVudFdpZHRoLGFlPUEuY2xpZW50SGVpZ2h0O3Eud2lkdGg9b2Uqc2UscS5oZWlnaHQ9YWUqc2U7bGV0IFRlPXEuZ2V0Q29udGV4dCgiMmQiKTtpZighVGUpcmV0dXJuO1RlLnNjYWxlKHNlLHNlKSxUZS5jbGVhclJlY3QoMCwwLG9lLGFlKTtsZXQgUmU9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKFJlPT09MClyZXR1cm47bGV0IEJlPW9lL1JlLEdlPXRoaXMuZHVyYXRpb24+MD90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb246MCxEZT1NYXRoLmZsb29yKEdlKlJlKSxfZT1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXMsQ2U9X2U/ImhzbCgyMTMgOTMlIDY4JSkiOiJoc2woMjE3IDkxJSA2MCUpIix2ZT1fZT8iaHNsKDIxNyAyNSUgMjIlKSI6ImhzbCgyMTQgMzElIDg2JSkiO2ZvcihsZXQgYmU9MDtiZTxSZTtiZSsrKXtsZXQgRWU9dGhpcy53YXZlZm9ybURhdGFbYmVdLGplPU1hdGgubWF4KDIsRWUqKGFlLTQpKSxXZT1iZSpCZSxzdD0oYWUtamUpLzI7VGUuZmlsbFN0eWxlPWJlPERlP0NlOnZlLFRlLmZpbGxSZWN0KFdlKy41LHN0LEJlLTEsamUpfX1oYW5kbGVXYXZlZm9ybUNsaWNrKHEpe2xldCBBPXEuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzZT0ocS5jbGllbnRYLUEubGVmdCkvQS53aWR0aDt0aGlzLnNlZWsoc2UqdGhpcy5kdXJhdGlvbil9aGFuZGxlU2Vla2JhckNsaWNrKHEpe2xldCBBPXEuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzZT0ocS5jbGllbnRYLUEubGVmdCkvQS53aWR0aDt0aGlzLnNlZWsoc2UqdGhpcy5kdXJhdGlvbil9aGFuZGxlVm9sdW1lQ2hhbmdlKHEpe2xldCBBPXBhcnNlRmxvYXQocS50YXJnZXQudmFsdWUpO3RoaXMuc2V0Vm9sdW1lKEEpfXN0YXJ0VGltZVVwZGF0ZSgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKTtsZXQgcT1pKCgpPT57dGhpcy5hdWRpb0VsZW1lbnQmJnRoaXMuaXNQbGF5aW5nJiYodGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZSx0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShxKSl9LCJ1cGRhdGUiKTt0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShxKX1zdG9wVGltZVVwZGF0ZSgpe3RoaXMuYW5pbUZyYW1lSWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1GcmFtZUlkKSx0aGlzLmFuaW1GcmFtZUlkPTApfWZvcm1hdFRpbWUocSl7aWYoIWlzRmluaXRlKHEpfHxxPDApcmV0dXJuIjA6MDAiO2xldCBBPU1hdGguZmxvb3IocS82MCksc2U9TWF0aC5mbG9vcihxJTYwKTtyZXR1cm5gJHtBfToke3NlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9Y2xlYW51cCgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmR1cmF0aW9uPTAsdGhpcy53YXZlZm9ybURhdGE9W10sdGhpcy53YXZlZm9ybVJlYWR5PSExfXN0YXRpY3tEcyhhLHQpfX07cmV0dXJuIHllPWF9KSgpfSk7dmFyIGVrYT1nKCgpPT57eWx0KCl9KTt2YXIgdGthLGFrYT1nKCgpPT57cGUoKTt0a2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyB3aXRoIEN1c3RvbSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIHZpZGVvIHBsYXllciB3aXRoIG92ZXJsYXkgY29udHJvbHMsIHNlZWtpbmcsIGFuZCB2b2x1bWUgYWRqdXN0bWVudC48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0JpZ0J1Y2tCdW5ueS5qcGciCiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG9wbGF5IE11dGVkPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHRoYXQgYXV0b3BsYXlzIG11dGVkLCBjb21tb25seSB1c2VkIGZvciBwcmV2aWV3cy48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9FbGVwaGFudHNEcmVhbS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvRWxlcGhhbnRzRHJlYW0uanBnIgogICAgICAgIC5hdXRvcGxheT0keyEwfQogICAgICAgIC5tdXRlZD0keyEwfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OYXRpdmUgQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdXNpbmcgYnJvd3Nlci1uYXRpdmUgY29udHJvbHMgaW5zdGVhZCBvZiBjdXN0b20gb3ZlcmxheS48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9Gb3JCaWdnZXJCbGF6ZXMubXA0IgogICAgICAgIC5zaG93Q29udHJvbHM9JHshMX0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIHRsLFVzLFVlcyx3bHQ9ZygoKT0+e3BlKCk7R2EoKTtha2EoKTt0bD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sVXM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFVlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdmlkZW8tdmlld2VyIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdO3ZhciBrZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1ZpZGVvVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxwPVtMKCldLGM9W0woe3R5cGU6Qm9vbGVhbn0pXSx4PVtMKHt0eXBlOkJvb2xlYW59KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W0woe3R5cGU6Qm9vbGVhbn0pXSxPPVtZKCldLEg9W1koKV0sST1bWSgpXSxLPVtZKCldLG1lPVtZKCldLGhlPVtZKCldLHVlPVtZKCldLGllPVtZKCldLHRsKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzcmMiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zcmMsImdldCIpLHNldDppKChaLHllKT0+e1ouc3JjPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LG8sbCksdGwodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InBvc3RlciJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnBvc3RlciwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5wb3N0ZXI9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sZCx1KSx0bCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2hvd0NvbnRyb2xzImluIFosImhhcyIpLGdldDppKFo9Plouc2hvd0NvbnRyb2xzLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnNob3dDb250cm9scz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxiLHYpLHRsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImF1dG9wbGF5ImluIFosImhhcyIpLGdldDppKFo9PlouYXV0b3BsYXksImdldCIpLHNldDppKChaLHllKT0+e1ouYXV0b3BsYXk9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbSxmKSx0bCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxvb3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Imxvb3AiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5sb29wLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmxvb3A9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sTSx6KSx0bCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im11dGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJtdXRlZCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLm11dGVkLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLm11dGVkPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEMsXyksdGwodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzUGxheWluZyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmlzUGxheWluZywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5pc1BsYXlpbmc9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sJCxFKSx0bCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjdXJyZW50VGltZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmN1cnJlbnRUaW1lLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmN1cnJlbnRUaW1lPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGssUyksdGwodGhpcyxudWxsLEkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iZHVyYXRpb24iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5kdXJhdGlvbj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxQLFIpLHRsKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJ2b2x1bWUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi52b2x1bWUsImdldCIpLHNldDppKChaLHllKT0+e1oudm9sdW1lPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFYsVyksdGwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ibG9hZGluZyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxvYWRpbmcsImdldCIpLHNldDppKChaLHllKT0+e1oubG9hZGluZz15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxCLFUpLHRsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJlcnJvciJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmVycm9yLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmVycm9yPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LEYsaiksdGwodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsc2NyZWVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJpc0Z1bGxzY3JlZW4iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5pc0Z1bGxzY3JlZW4sImdldCIpLHNldDppKChaLHllKT0+e1ouaXNGdWxsc2NyZWVuPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGxlLFEpLHRsKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRyb2xzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iY29udHJvbHNWaXNpYmxlImluIFosImhhcyIpLGdldDppKFo9PlouY29udHJvbHNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmNvbnRyb2xzVmlzaWJsZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSx0ZSxlZSksdGwobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6WH0sbnVsbCx0KSxrZT1hPWUudmFsdWUsWCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpYfSl9c3RhdGljIGRlbW89dGthO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1Vcyh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKFgpe3RoaXMuI2U9WH0jdD0oVXModGhpcyxsKSxVcyh0aGlzLGQsIiIpKTtnZXQgcG9zdGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc3RlcihYKXt0aGlzLiN0PVh9I2E9KFVzKHRoaXMsdSksVXModGhpcyxiLCEwKSk7Z2V0IHNob3dDb250cm9scygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93Q29udHJvbHMoWCl7dGhpcy4jYT1YfSNzPShVcyh0aGlzLHYpLFVzKHRoaXMsbSwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNzfXNldCBhdXRvcGxheShYKXt0aGlzLiNzPVh9I2k9KFVzKHRoaXMsZiksVXModGhpcyxNLCExKSk7Z2V0IGxvb3AoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbG9vcChYKXt0aGlzLiNpPVh9I3I9KFVzKHRoaXMseiksVXModGhpcyxDLCExKSk7Z2V0IG11dGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG11dGVkKFgpe3RoaXMuI3I9WH0jbz0oVXModGhpcyxfKSxVcyh0aGlzLCQsITEpKTtnZXQgaXNQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUGxheWluZyhYKXt0aGlzLiNvPVh9I249KFVzKHRoaXMsRSksVXModGhpcyxrLDApKTtnZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3VycmVudFRpbWUoWCl7dGhpcy4jbj1YfSNsPShVcyh0aGlzLFMpLFVzKHRoaXMsUCwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGR1cmF0aW9uKFgpe3RoaXMuI2w9WH0jYz0oVXModGhpcyxSKSxVcyh0aGlzLFYsMSkpO2dldCB2b2x1bWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdm9sdW1lKFgpe3RoaXMuI2M9WH0jZD0oVXModGhpcyxXKSxVcyh0aGlzLEIsITApKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNkfXNldCBsb2FkaW5nKFgpe3RoaXMuI2Q9WH0jdT0oVXModGhpcyxVKSxVcyh0aGlzLEYsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZXJyb3IoWCl7dGhpcy4jdT1YfSNwPShVcyh0aGlzLGopLFVzKHRoaXMsbGUsITEpKTtnZXQgaXNGdWxsc2NyZWVuKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGlzRnVsbHNjcmVlbihYKXt0aGlzLiNwPVh9I2g9KFVzKHRoaXMsUSksVXModGhpcyx0ZSwhMCkpO2dldCBjb250cm9sc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jaH1zZXQgY29udHJvbHNWaXNpYmxlKFgpe3RoaXMuI2g9WH1oaWRlQ29udHJvbHNUaW1lcj0oVXModGhpcyxlZSksbnVsbCk7dmlkZW9FbGVtZW50PW51bGw7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgdmlkZW8gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAub3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5pc1BsYXlpbmc/MDoxfTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiAke3RoaXMuaXNQbGF5aW5nPyJub25lIjoiYXV0byJ9OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXk6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xKTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1iYXIgewogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuNykpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxMnB4IDEycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmNvbnRyb2xzVmlzaWJsZXx8IXRoaXMuaXNQbGF5aW5nPzE6MH07CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93OmhvdmVyIHsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcHJvZ3Jlc3MgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtcm93IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ2aWRlby1jb250YWluZXIiCiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICA+CiAgICAgICAgPHZpZGVvCiAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAucG9zdGVyPSR7dGhpcy5wb3N0ZXJ9CiAgICAgICAgICAubXV0ZWQ9JHt0aGlzLm11dGVkfQogICAgICAgICAgLmxvb3A9JHt0aGlzLmxvb3B9CiAgICAgICAgICA/YXV0b3BsYXk9JHt0aGlzLmF1dG9wbGF5fQogICAgICAgICAgP2NvbnRyb2xzPSR7IXRoaXMuc2hvd0NvbnRyb2xzfQogICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgIEBsb2FkZWRtZXRhZGF0YT0ke3RoaXMuaGFuZGxlTG9hZGVkTWV0YWRhdGF9CiAgICAgICAgICBAcGxheT0ke3RoaXMuaGFuZGxlUGxheX0KICAgICAgICAgIEBwYXVzZT0ke3RoaXMuaGFuZGxlUGF1c2V9CiAgICAgICAgICBAZW5kZWQ9JHt0aGlzLmhhbmRsZUVuZGVkfQogICAgICAgICAgQHRpbWV1cGRhdGU9JHt0aGlzLmhhbmRsZVRpbWVVcGRhdGV9CiAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUVycm9yfQogICAgICAgICAgQHdhaXRpbmc9JHsoKT0+e3RoaXMubG9hZGluZz0hMH19CiAgICAgICAgICBAY2FucGxheT0keygpPT57dGhpcy5sb2FkaW5nPSExfX0KICAgICAgICA+PC92aWRlbz4KCiAgICAgICAgJHt0aGlzLnNob3dDb250cm9scz93YAogICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdmVybGF5Q2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXItcGxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtYmFyIiBAY2xpY2s9JHtYPT5YLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLXJvdyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrfT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcHJvZ3Jlc3MiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtcm93Ij4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgICAgICA8L3NwYW4+CgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwYWNlciI+PC9zcGFuPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5tdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMubXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHJsLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVGdWxsc2NyZWVufSB0aXRsZT0iRnVsbHNjcmVlbiI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc0Z1bGxzY3JlZW4/Ik1pbmltaXplIjoiTWF4aW1pemUifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpWaWRlb09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMudmlkZW9FbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidmlkZW8iKXx8bnVsbCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpLHRoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKX1wbGF5KCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMudmlkZW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhYKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lPVgpfXNldFZvbHVtZShYKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsWCkpLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKX10b2dnbGVGdWxsc2NyZWVuKCl7bGV0IFg9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8tY29udGFpbmVyIik7WCYmKHRoaXMuaXNGdWxsc2NyZWVuP2RvY3VtZW50LmV4aXRGdWxsc2NyZWVuPy4oKTpYLnJlcXVlc3RGdWxsc2NyZWVuPy4oKSl9aGFuZGxlTG9hZGVkTWV0YWRhdGEoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuZHVyYXRpb249dGhpcy52aWRlb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExKX1oYW5kbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZVBhdXNlKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVUaW1lVXBkYXRlKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKX1oYW5kbGVFcnJvcigpe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIHZpZGVvIix0aGlzLmxvYWRpbmc9ITF9aGFuZGxlT3ZlcmxheUNsaWNrKCl7dGhpcy50b2dnbGVQbGF5KCl9aGFuZGxlU2VlayhYKXtsZXQgWj1YLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseWU9KFguY2xpZW50WC1aLmxlZnQpL1oud2lkdGg7dGhpcy5zZWVrKHllKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShYKXtsZXQgWj1wYXJzZUZsb2F0KFgudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZShaKSx0aGlzLm11dGVkPVo9PT0wfXRvZ2dsZU11dGUoKXt0aGlzLm11dGVkPSF0aGlzLm11dGVkLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQubXV0ZWQ9dGhpcy5tdXRlZCl9aGFuZGxlTW91c2VNb3ZlKCl7dGhpcy5jb250cm9sc1Zpc2libGU9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZU1vdXNlTGVhdmUoKXt0aGlzLmlzUGxheWluZyYmKHRoaXMuY29udHJvbHNWaXNpYmxlPSExKX1zY2hlZHVsZUhpZGVDb250cm9scygpe3RoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKSx0aGlzLmlzUGxheWluZyYmKHRoaXMuaGlkZUNvbnRyb2xzVGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuY29udHJvbHNWaXNpYmxlPSExfSwzZTMpKX1oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlPWkoKCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fSwiaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSIpO2Zvcm1hdFRpbWUoWCl7aWYoIWlzRmluaXRlKFgpfHxYPDApcmV0dXJuIjA6MDAiO2xldCBaPU1hdGguZmxvb3IoWC82MCkseWU9TWF0aC5mbG9vcihYJTYwKTtyZXR1cm5gJHtafToke3llLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje1VzKGEsdCl9fTtyZXR1cm4ga2U9YX0pKCl9KTt2YXIgc2thPWcoKCk9Pnt3bHQoKX0pO3ZhciBXdSxuMmU9ZygoKT0+e3BlKCk7V3U9Y2xhc3N7c3RhdGlje2kodGhpcywiUGRmTWFuYWdlciIpfXN0YXRpYyBwZGZqc0xpYjtzdGF0aWMgaW5pdGlhbGl6ZWQ9ITE7c3RhdGljIGFzeW5jIGluaXRpYWxpemUoKXt0aGlzLmluaXRpYWxpemVkfHwodGhpcy5wZGZqc0xpYj1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKSx0aGlzLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS9idWlsZC9wZGYud29ya2VyLm1qcyIsdGhpcy5pbml0aWFsaXplZD0hMCl9c3RhdGljIGFzeW5jIGxvYWREb2N1bWVudChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplKCksYXdhaXQgdGhpcy5wZGZqc0xpYi5nZXREb2N1bWVudChlKS5wcm9taXNlfXN0YXRpYyByZWxlYXNlRG9jdW1lbnQoZSl7fX19KTt2YXIgaWthLHJrYT1nKCgpPT57cGUoKTtodCgpO2lrYT1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICBjb250YWluOiBsYXlvdXQgc3R5bGU7CiAgICB9CgogICAgZGVlcy10aWxlIHsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyOjpiZWZvcmUsCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YWZ0ZXIgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgIHotaW5kZXg6IDU7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyOjpiZWZvcmUgewogICAgICB0b3A6IDA7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICB0byBib3R0b20sCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAwJSAvIDAuMTIpIil9LAogICAgICAgIHRyYW5zcGFyZW50CiAgICAgICk7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXI6OmFmdGVyIHsKICAgICAgYm90dG9tOiAwOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgdG8gdG9wLAogICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMCUgLyAwLjQpIil9LAogICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMCUgLyAwLjEyKSIpfSwKICAgICAgICB0cmFuc3BhcmVudAogICAgICApOwogICAgfQoKICAgIC50b29sYmFyIHsKICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogNHB4OwogICAgfQoKICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgb3BhY2l0eTogMC40OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CgogICAgLnBhZ2UtaW5mbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5wYWdlLWlucHV0IHsKICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAucGFnZS1pbnB1dDpmb2N1cyB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC5wYWdlLXNlcGFyYXRvciB7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDUwJSkiKX07CiAgICB9CgogICAgLnpvb20tbGV2ZWwgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuc2lkZWJhciB7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBvcmRlcjogMDsKICAgIH0KCiAgICAuc2lkZWJhci1yaWdodCAuc2lkZWJhciB7CiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIG9yZGVyOiAxOwogICAgfQoKICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KCiAgICAuc2lkZWJhci1jb250ZW50IHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAxMnB4OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgIH0KCiAgICAudGh1bWJuYWlsIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgyMTUgMjAlIDE4JSkiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgLyogRGVmYXVsdCBBNCBhc3BlY3QgcmF0aW8gKDI5N21tIC8gMjEwbW0g4omIIDEuNDE0KSAqLwogICAgICBtaW4taGVpZ2h0OiBjYWxjKDE3NnB4ICogMS40MTQpOwogICAgfQoKICAgIC50aHVtYm5haWw6bGFzdC1jaGlsZCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICB9CgogICAgLnRodW1ibmFpbDpob3ZlciB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAzNSUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwuYWN0aXZlIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICB9CgogICAgLnRodW1ibmFpbC1jYW52YXMgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogYXV0bzsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogICAgfQoKICAgIC50aHVtYm5haWwtbnVtYmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDRweDsKICAgICAgcmlnaHQ6IDRweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC43KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIH0KCiAgICAudmlld2VyLW1haW4gewogICAgICBmbGV4OiAxOwogICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOwogICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLmxvYWRpbmctY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZ2FwOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAubG9hZGluZy10ZXh0IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC5wYWdlcy1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDIwcHg7CiAgICB9CgogICAgLnBhZ2Utd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAuY2FudmFzLWNvbnRhaW5lciB7CiAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnBhZ2UtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAvKiBUZXh0IGxheWVyIGZvciBzZWxlY3Rpb24gKi8KICAgIC50ZXh0LWxheWVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMDsKICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB0ZXh0LXNpemUtYWRqdXN0OiBub25lOwogICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7CiAgICAgIHotaW5kZXg6IDE7CiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgfQoKICAgIC50ZXh0LWxheWVyIHNwYW4sCiAgICAudGV4dC1sYXllciBiciB7CiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciA6OnNlbGVjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAwLCAyMDAsIDAuMyk7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgYnI6OnNlbGVjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgfQoKICAgIC50ZXh0LWxheWVyIC5lbmRPZkNvbnRlbnQgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMTAwJSAwIDA7CiAgICAgIHotaW5kZXg6IDA7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLnRleHQtbGF5ZXIuc2VsZWN0aW5nIC5lbmRPZkNvbnRlbnQgewogICAgICB0b3A6IDA7CiAgICB9CgogICAgLnBkZi12aWV3ZXIud2l0aC1zaWRlYmFyIC52aWV3ZXItbWFpbiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgfQoKICAgIC5wZGYtZm9vdGVyIHsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnBkZi1mb290ZXItbGVmdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1sZWZ0IC5wZGYtZm9vdGVyLWl0ZW0gKyAucGRmLWZvb3Rlci1pdGVtIHsKICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWNlbnRlciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogNTAlOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuMTVzIGVhc2U7CiAgICB9CgogICAgLnBkZi1mb290ZXItcmlnaHQgewogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1pdGVtIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1maWxlbmFtZSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgb3BhY2l0eTogMC43OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KICBgXX0pO3ZhciBva2EsbmthPWcoKCk9PntwZSgpO29rYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICB9CgogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CgogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgfQoKICAgIGRlZXMtcGRmLXZpZXdlciB7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudmlld2VyLXRhbGwgewogICAgICBoZWlnaHQ6IDgwMHB4OwogICAgfQoKICAgIC52aWV3ZXItY29tcGFjdCB7CiAgICAgIGhlaWdodDogNTAwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkZ1bGwgRmVhdHVyZWQgUERGIFZpZXdlciB3aXRoIFRvb2xiYXI8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS1maXQiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5QREYgVmlld2VyIHdpdGggU2lkZWJhciBOYXZpZ2F0aW9uPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0idHJ1ZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS13aWR0aCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkNvbXBhY3QgVmlld2VyIHdpdGhvdXQgQ29udHJvbHM8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci1jb21wYWN0IgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJmYWxzZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209ImF1dG8iCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgYWwsV3MsV2VzLGtsdD1nKCgpPT57cGUoKTtuMmUoKTtya2EoKTtua2EoKTtHYSgpO21yKCk7YWw9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LFdzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxXZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXBkZi12aWV3ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzUGRmVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxPPVtMKHt0eXBlOk51bWJlcn0pXSxIPVtMKHt0eXBlOk51bWJlcn0pXSxJPVtMKHt0eXBlOk51bWJlcn0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W0woe3R5cGU6U3RyaW5nfSldLGhlPVtMKHt0eXBlOkFycmF5fSldLHVlPVtMKHt0eXBlOkFycmF5fSldLGllPVtMKHt0eXBlOk51bWJlcn0pXSxhbCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icGRmVXJsImluIFosImhhcyIpLGdldDppKFo9PloucGRmVXJsLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnBkZlVybD15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxvLGwpLGFsKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImluaXRpYWxQYWdlImluIFosImhhcyIpLGdldDppKFo9PlouaW5pdGlhbFBhZ2UsImdldCIpLHNldDppKChaLHllKT0+e1ouaW5pdGlhbFBhZ2U9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sZCx1KSxhbCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJpbml0aWFsWm9vbSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmluaXRpYWxab29tLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmluaXRpYWxab29tPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LGIsdiksYWwodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2hvd1Rvb2xiYXIiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5zaG93VG9vbGJhcj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxtLGYpLGFsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NpZGViYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InNob3dTaWRlYmFyImluIFosImhhcyIpLGdldDppKFo9Plouc2hvd1NpZGViYXIsImdldCIpLHNldDppKChaLHllKT0+e1ouc2hvd1NpZGViYXI9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sTSx6KSxhbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpZGViYXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4ic2lkZWJhclBvc2l0aW9uImluIFosImhhcyIpLGdldDppKFo9Plouc2lkZWJhclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnNpZGViYXJQb3NpdGlvbj15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxDLF8pLGFsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImN1cnJlbnRQYWdlImluIFosImhhcyIpLGdldDppKFo9PlouY3VycmVudFBhZ2UsImdldCIpLHNldDppKChaLHllKT0+e1ouY3VycmVudFBhZ2U9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sJCxFKSxhbCh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsUGFnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InRvdGFsUGFnZXMiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi50b3RhbFBhZ2VzLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnRvdGFsUGFnZXM9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sayxTKSxhbCh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjdXJyZW50Wm9vbSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmN1cnJlbnRab29tLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLmN1cnJlbnRab29tPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFAsUiksYWwodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJsb2FkaW5nImluIFosImhhcyIpLGdldDppKFo9PloubG9hZGluZywiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5sb2FkaW5nPXllfSwic2V0Iil9LG1ldGFkYXRhOlh9LFYsVyksYWwodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9jdW1lbnRJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iZG9jdW1lbnRJZCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmRvY3VtZW50SWQsImdldCIpLHNldDppKChaLHllKT0+e1ouZG9jdW1lbnRJZD15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxCLFUpLGFsKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InRodW1ibmFpbERhdGEiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi50aHVtYm5haWxEYXRhLCJnZXQiKSxzZXQ6aSgoWix5ZSk9PntaLnRodW1ibmFpbERhdGE9eWV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sRixqKSxhbCh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icGFnZURhdGEiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5wYWdlRGF0YSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5wYWdlRGF0YT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxsZSxRKSxhbCh0aGlzLG51bGwsaWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZGZGaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4icGRmRmlsZVNpemUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5wZGZGaWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKFoseWUpPT57Wi5wZGZGaWxlU2l6ZT15ZX0sInNldCIpfSxtZXRhZGF0YTpYfSx0ZSxlZSksYWwobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6WH0sbnVsbCx0KSxrZT1hPWUudmFsdWUsWCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpYfSl9c3RhdGljIGRlbW89b2thO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPWlrYTsjZT1Xcyh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKFgpe3RoaXMuI2U9WH0jdD0oV3ModGhpcyxsKSxXcyh0aGlzLGQsMSkpO2dldCBpbml0aWFsUGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbml0aWFsUGFnZShYKXt0aGlzLiN0PVh9I2E9KFdzKHRoaXMsdSksV3ModGhpcyxiLCJhdXRvIikpO2dldCBpbml0aWFsWm9vbSgpe3JldHVybiB0aGlzLiNhfXNldCBpbml0aWFsWm9vbShYKXt0aGlzLiNhPVh9I3M9KFdzKHRoaXMsdiksV3ModGhpcyxtLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUb29sYmFyKFgpe3RoaXMuI3M9WH0jaT0oV3ModGhpcyxmKSxXcyh0aGlzLE0sITEpKTtnZXQgc2hvd1NpZGViYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1NpZGViYXIoWCl7dGhpcy4jaT1YfSNyPShXcyh0aGlzLHopLFdzKHRoaXMsQywibGVmdCIpKTtnZXQgc2lkZWJhclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNpZGViYXJQb3NpdGlvbihYKXt0aGlzLiNyPVh9I289KFdzKHRoaXMsXyksV3ModGhpcywkLDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jb31zZXQgY3VycmVudFBhZ2UoWCl7dGhpcy4jbz1YfSNuPShXcyh0aGlzLEUpLFdzKHRoaXMsaywxKSk7Z2V0IHRvdGFsUGFnZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdG90YWxQYWdlcyhYKXt0aGlzLiNuPVh9I2w9KFdzKHRoaXMsUyksV3ModGhpcyxQLDEpKTtnZXQgY3VycmVudFpvb20oKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3VycmVudFpvb20oWCl7dGhpcy4jbD1YfSNjPShXcyh0aGlzLFIpLFdzKHRoaXMsViwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxvYWRpbmcoWCl7dGhpcy4jYz1YfSNkPShXcyh0aGlzLFcpLFdzKHRoaXMsQiwiIikpO2dldCBkb2N1bWVudElkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGRvY3VtZW50SWQoWCl7dGhpcy4jZD1YfSN1PShXcyh0aGlzLFUpLFdzKHRoaXMsRixbXSkpO2dldCB0aHVtYm5haWxEYXRhKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHRodW1ibmFpbERhdGEoWCl7dGhpcy4jdT1YfSNwPShXcyh0aGlzLGopLFdzKHRoaXMsbGUsW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcGFnZURhdGEoWCl7dGhpcy4jcD1YfSNoPShXcyh0aGlzLFEpLFdzKHRoaXMsdGUsMCkpO2dldCBwZGZGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNofXNldCBwZGZGaWxlU2l6ZShYKXt0aGlzLiNoPVh9cGRmRG9jdW1lbnQ9V3ModGhpcyxlZSk7cmVuZGVyU3RhdGU9ImlkbGUiO3JlbmRlckFib3J0Q29udHJvbGxlcj1udWxsO3BhZ2VSZW5kZXJpbmc9ITE7cGFnZU51bVBlbmRpbmc9bnVsbDtjdXJyZW50UmVuZGVyVGFzaz1udWxsO2N1cnJlbnRSZW5kZXJQcm9taXNlPW51bGw7dGh1bWJuYWlsUmVuZGVyVGFza3M9W107cGFnZVJlbmRlclRhc2tzPW5ldyBNYXA7dGV4dExheWVyUmVuZGVyVGFza3M9bmV3IE1hcDtjYW52YXM7Y3R4O3ZpZXdlck1haW49bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcnNlY3Rpb25PYnNlcnZlcjtzY3JvbGxUaHJvdHRsZVRpbWVvdXQ7dmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDowLGhlaWdodDowfTt2aWV3cG9ydE1vZGU9ImF1dG8iO01BTlVBTF9NSU5fWk9PTT0uNTtNQU5VQUxfTUFYX1pPT009MztBQlNPTFVURV9NSU5fWk9PTT0uMTtBQlNPTFVURV9NQVhfWk9PTT00O1BBR0VfR0FQPTIwO1JFTkRFUl9CVUZGRVI9Mztjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUgY2xhc3M9IiR7dGhpcy5zaG93U2lkZWJhcj8id2l0aC1zaWRlYmFyIjoiIn0gc2lkZWJhci0ke3RoaXMuc2lkZWJhclBvc2l0aW9ufSI+CiAgICAgICAgJHt0aGlzLnNob3dUb29sYmFyP3dgCiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByZXZpb3VzUGFnZX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuY3VycmVudFBhZ2U8PTF9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvbkxlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICAgICAgICBtaW49IjEiCiAgICAgICAgICAgICAgICAgIG1heD0iJHt0aGlzLnRvdGFsUGFnZXN9IgogICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5jdXJyZW50UGFnZSl9CiAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZVBhZ2VJbnB1dH0KICAgICAgICAgICAgICAgICAgY2xhc3M9InBhZ2UtaW5wdXQiCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2Utc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2UtdG90YWwiPiR7dGhpcy50b3RhbFBhZ2VzfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm5leHRQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZT49dGhpcy50b3RhbFBhZ2VzfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkNoZXZyb25SaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tT3V0fQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY2FuWm9vbU91dH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnJlc2V0Wm9vbX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iem9vbS1sZXZlbCI+JHtNYXRoLnJvdW5kKHRoaXMuY3VycmVudFpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuem9vbUlufQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY2FuWm9vbUlufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21JbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1BhZ2V9CiAgICAgICAgICAgICAgICB0aXRsZT0iRml0IHRvIHBhZ2UiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TWF4aW1pemUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZml0VG9XaWR0aH0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gd2lkdGgiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJyb3dMZWZ0UmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAgdG9vbGJhci1ncm91cC0tZW5kIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zaG93U2lkZWJhcj0hdGhpcy5zaG93U2lkZWJhcn0KICAgICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuc2hvd1NpZGViYXI/IkhpZGUgdGh1bWJuYWlscyI6IlNob3cgdGh1bWJuYWlscyJ9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iJHt0aGlzLnNob3dTaWRlYmFyPyJsdWNpZGU6U2lkZWJhckNsb3NlIjoibHVjaWRlOlNpZGViYXIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5kb3dubG9hZFBkZn0KICAgICAgICAgICAgICAgIHRpdGxlPSJEb3dubG9hZCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5wcmludFBkZn0KICAgICAgICAgICAgICAgIHRpdGxlPSJQcmludCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQcmludGVyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5zaG93U2lkZWJhcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8c3Bhbj5QYWdlczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgY2xhc3M9InNpZGViYXItY2xvc2UiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSExfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpYIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItY29udGVudCI+CiAgICAgICAgICAgICAgICAke1ZpLmtleWVkKHRoaXMuZG9jdW1lbnRJZCx3YAogICAgICAgICAgICAgICAgICAke1ZpLnJlcGVhdCh0aGlzLnRodW1ibmFpbERhdGEsWD0+WC5wYWdlLFg9PndgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0aHVtYm5haWwgJHt0aGlzLmN1cnJlbnRQYWdlPT09WC5wYWdlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wYWdlPSIke1gucGFnZX0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVGh1bWJuYWlsQ2xpY2t9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InRodW1ibmFpbC1jYW52YXMiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij48L2NhbnZhcz4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRodW1ibmFpbC1udW1iZXIiPiR7WC5wYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItbWFpbiIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy10ZXh0Ij5Mb2FkaW5nIFBERi4uLjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZXMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICR7VmkucmVwZWF0KHRoaXMucGFnZURhdGEsWD0+WC5wYWdlLFg9PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS13cmFwcGVyIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYW52YXMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0icGFnZS1jYW52YXMiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij48L2NhbnZhcz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1sYXllciIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJwZGYtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItbGVmdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWl0ZW0iPlpvb20gJHtNYXRoLnJvdW5kKHRoaXMuY3VycmVudFpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAke3RoaXMucGRmRmlsZVNpemU+MD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWl0ZW0iPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLnBkZkZpbGVTaXplKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItY2VudGVyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICR7dGhpcy5zaG93U2lkZWJhciYmdGhpcy5zaWRlYmFyUG9zaXRpb249PT0ibGVmdCI/IjEwMHB4Ijp0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNpZGViYXJQb3NpdGlvbj09PSJyaWdodCI/Ii0xMDBweCI6IjAifSI+CiAgICAgICAgICAgIDxzcGFuPlBhZ2UgJHt0aGlzLmN1cnJlbnRQYWdlfSBvZiAke3RoaXMudG90YWxQYWdlc308L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItcmlnaHQiPgogICAgICAgICAgICAke3RoaXMucGRmVXJsP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBkZi1mb290ZXItZmlsZW5hbWUiPiR7dGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMucGRmVXJsJiYodGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPXZvaWQgMCx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9dm9pZCAwKSx0aGlzLnJlbmRlclN0YXRlPSJkaXNwb3NlZCIsYXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLmNhbnZhcz12b2lkIDAsdGhpcy5jdHg9dm9pZCAwfWFzeW5jIHVwZGF0ZWQoWCl7aWYoc3VwZXIudXBkYXRlZChYKSxYLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgWj1YLmdldCgicGRmVXJsIik7WiYmV3UucmVsZWFzZURvY3VtZW50KFopLHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKX1YLmhhcygic2hvd1NpZGViYXIiKSYmdGhpcy5zaG93U2lkZWJhciYmdGhpcy5wZGZEb2N1bWVudCYmKGF3YWl0IG5ldyBQcm9taXNlKFo9PnJlcXVlc3RBbmltYXRpb25GcmFtZShaKSksdGhpcy50aHVtYm5haWxEYXRhLmZvckVhY2goWj0+Wi5yZW5kZXJlZD0hMSksYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyh0aGlzLmN1cnJlbnRQYWdlKSl9Zm9ybWF0RmlsZVNpemUoWCl7cmV0dXJuIFg8MTAyND9gJHtYfSBCYDpYPDEwMjQqMTAyND9gJHsoWC8xMDI0KS50b0ZpeGVkKDEpfSBLQmA6YCR7KFgvKDEwMjQqMTAyNCkpLnRvRml4ZWQoMSl9IE1CYH1hc3luYyBsb2FkUGRmKCl7dGhpcy5sb2FkaW5nPSEwLHRoaXMucmVuZGVyU3RhdGU9ImxvYWRpbmciO3RyeXthd2FpdCB0aGlzLmNsZWFudXBEb2N1bWVudCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXI7bGV0IFg9dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsO2lmKHRoaXMucGRmRG9jdW1lbnQ9YXdhaXQgV3UubG9hZERvY3VtZW50KHRoaXMucGRmVXJsKSxYLmFib3J0ZWQpcmV0dXJuO3RoaXMudG90YWxQYWdlcz10aGlzLnBkZkRvY3VtZW50Lm51bVBhZ2VzLHRoaXMuY3VycmVudFBhZ2U9dGhpcy5pbml0aWFsUGFnZSx0aGlzLnJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCk7dHJ5e2xldCBaPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RGF0YSgpO3RoaXMucGRmRmlsZVNpemU9Wi5sZW5ndGh9Y2F0Y2h7dGhpcy5wZGZGaWxlU2l6ZT0wfWlmKHRoaXMudGh1bWJuYWlsRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwoWix5ZSk9Pih7cGFnZTp5ZSsxLHJlbmRlcmVkOiExfSkpLHRoaXMucGFnZURhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKFoseWUpPT4oe3BhZ2U6eWUrMSxyZW5kZXJlZDohMSxyZW5kZXJpbmc6ITEsdGV4dExheWVyUmVuZGVyZWQ6ITF9KSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksYXdhaXQgbmV3IFByb21pc2UoWj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFopKSxYLmFib3J0ZWR8fCh0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJpbmctbWFpbiIsYXdhaXQgdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKSxYLmFib3J0ZWQpfHwodGhpcy5pbml0aWFsUGFnZT4xJiZhd2FpdCB0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmluaXRpYWxQYWdlLCExKSx0aGlzLnNob3dTaWRlYmFyJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShaPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoWikpLFguYWJvcnRlZHx8KGF3YWl0IHRoaXMucmVuZGVyVGh1bWJuYWlscygpLFguYWJvcnRlZCkpKSlyZXR1cm47dGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyZWQifWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgUERGOiIsWCksdGhpcy5sb2FkaW5nPSExLHRoaXMucmVuZGVyU3RhdGU9ImVycm9yIn19c2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpe3RoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXImJnRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFo9Pntmb3IobGV0IHllIG9mIFope2xldCBxPXllLnRhcmdldCxBPXBhcnNlSW50KHEuZGF0YXNldC5wYWdlfHwiMSIpO3llLmlzSW50ZXJzZWN0aW5nJiZ0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChBKX19LHtyb290OnRoaXMudmlld2VyTWFpbixyb290TWFyZ2luOmAke3RoaXMuUkVOREVSX0JVRkZFUioxMDB9cHggMHB4YCx0aHJlc2hvbGQ6LjAxfSk7bGV0IFg9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIucGFnZS13cmFwcGVyIik7WCYmWC5mb3JFYWNoKFo9Pnt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy5vYnNlcnZlKFopfSl9YXN5bmMgcmVuZGVyVmlzaWJsZVBhZ2VzKCl7aWYoIXRoaXMudmlld2VyTWFpbilyZXR1cm47bGV0IFg9dGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodDtmb3IobGV0IFogb2YgdGhpcy5wYWdlRGF0YSl7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7Wi5wYWdlfSJdYCk7aWYoIXllKWNvbnRpbnVlO2xldCBxPXllLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEE9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPXEudG9wLUEudG9wLG9lPXNlK3EuaGVpZ2h0LGFlPXRoaXMuUkVOREVSX0JVRkZFUipYO29lPj0tYWUmJnNlPD1YK2FlJiZhd2FpdCB0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChaLnBhZ2UpfX1hc3luYyByZW5kZXJQYWdlSWZOZWVkZWQoWCl7bGV0IFo9dGhpcy5wYWdlRGF0YS5maW5kKHllPT55ZS5wYWdlPT09WCk7aWYoISghWnx8Wi5yZW5kZXJlZHx8Wi5yZW5kZXJpbmcpKXtaLnJlbmRlcmluZz0hMDt0cnl7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2UtY2FudmFzW2RhdGEtcGFnZT0iJHtYfSJdYCk7aWYoIXllKXtaLnJlbmRlcmluZz0hMTtyZXR1cm59bGV0IHE9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFgpLEE9dGhpcy5jb21wdXRlVmlld3BvcnQocSksc2U9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7eWUud2lkdGg9TWF0aC5mbG9vcihBLndpZHRoKnNlKSx5ZS5oZWlnaHQ9TWF0aC5mbG9vcihBLmhlaWdodCpzZSkseWUuc3R5bGUud2lkdGg9YCR7QS53aWR0aH1weGAseWUuc3R5bGUuaGVpZ2h0PWAke0EuaGVpZ2h0fXB4YDtsZXQgb2U9eWUuZ2V0Q29udGV4dCgiMmQiKTtpZighb2Upe3EuY2xlYW51cD8uKCksWi5yZW5kZXJpbmc9ITE7cmV0dXJufW9lLnNjYWxlKHNlLHNlKTtsZXQgYWU9e2NhbnZhc0NvbnRleHQ6b2Usdmlld3BvcnQ6QX0sVGU9cS5yZW5kZXIoYWUpO3RoaXMucGFnZVJlbmRlclRhc2tzLnNldChYLFRlKSxhd2FpdCBUZS5wcm9taXNlLHEuY2xlYW51cD8uKCksWi5yZW5kZXJlZD0hMCxaLnJlbmRlcmluZz0hMSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5kZWxldGUoWCksYXdhaXQgdGhpcy5yZW5kZXJUZXh0TGF5ZXIoWCksdGhpcy5yZXF1ZXN0VXBkYXRlKCJwYWdlRGF0YSIpfWNhdGNoKHllKXt5ZT8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgcGFnZSAke1h9OmAseWUpLFoucmVuZGVyaW5nPSExLHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShYKX19fWFzeW5jIHJlbmRlclRleHRMYXllcihYKXtsZXQgWj10aGlzLnBhZ2VEYXRhLmZpbmQoeWU9PnllLnBhZ2U9PT1YKTtpZighKCFafHxaLnRleHRMYXllclJlbmRlcmVkKSl0cnl7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRleHQtbGF5ZXJbZGF0YS1wYWdlPSIke1h9Il1gKTtpZigheWUpcmV0dXJuO3llLmlubmVySFRNTD0iIjtsZXQgcT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoWCksQT1hd2FpdCBxLmdldFRleHRDb250ZW50KCksc2U9dGhpcy5jb21wdXRlVmlld3BvcnQocSksb2U9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIik7eWUuc3R5bGUud2lkdGg9YCR7c2Uud2lkdGh9cHhgLHllLnN0eWxlLmhlaWdodD1gJHtzZS5oZWlnaHR9cHhgLHllLnN0eWxlLnNldFByb3BlcnR5KCItLXNjYWxlLWZhY3RvciIsU3RyaW5nKHNlLnNjYWxlKSk7bGV0IGFlPW9lLnJlbmRlclRleHRMYXllcih7dGV4dENvbnRlbnRTb3VyY2U6QSxjb250YWluZXI6eWUsdmlld3BvcnQ6c2V9KTt0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLnNldChYLGFlKSxhd2FpdCBhZS5wcm9taXNlO2xldCBUZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtUZS5jbGFzc05hbWU9ImVuZE9mQ29udGVudCIseWUuYXBwZW5kQ2hpbGQoVGUpO2xldCBSZT0hMSxCZT1udWxsLEdlPTAsRGU9aSgodmUsYmUpPT57bGV0IEVlPUFycmF5LmZyb20oeWUucXVlcnlTZWxlY3RvckFsbCgic3BhbiIpKTtmb3IobGV0IGplIG9mIEVlKXtsZXQgV2U9amUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYodmU+PVdlLmxlZnQmJnZlPD1XZS5yaWdodCYmYmU+PVdlLnRvcCYmYmU8PVdlLmJvdHRvbSl7bGV0IHN0PWplLmZpcnN0Q2hpbGQ7aWYoc3QmJnN0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCBNZT1zdC50ZXh0Q29udGVudHx8IiIsZ2U9V2Uud2lkdGgvTWUubGVuZ3RoLEllPXZlLVdlLmxlZnQsY2U9TWF0aC5taW4oTWF0aC5yb3VuZChJZS9nZSksTWUubGVuZ3RoKTtyZXR1cm57bm9kZTpzdCxvZmZzZXQ6Y2V9fX19cmV0dXJuIG51bGx9LCJnZXRUZXh0UG9zaXRpb25Gcm9tUG9pbnQiKSxfZT1pKCgpPT57UmUmJihSZT0hMSxCZT1udWxsLHllLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGluZyIpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixfZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixDZSl9LCJoYW5kbGVNb3VzZVVwIiksQ2U9aSh2ZT0+e2lmKCFSZXx8IUJlKXJldHVybjt2ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBiZT1EZSh2ZS5jbGllbnRYLHZlLmNsaWVudFkpO2lmKGJlKXtsZXQgRWU9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKEVlKXRyeXtFZS5zZXRCYXNlQW5kRXh0ZW50KEJlLEdlLGJlLm5vZGUsYmUub2Zmc2V0KX1jYXRjaHt9fX0sImhhbmRsZU1vdXNlTW92ZSIpO3llLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdmU9PntpZih2ZS5idXR0b24hPT0wKXJldHVybjtsZXQgYmU9RGUodmUuY2xpZW50WCx2ZS5jbGllbnRZKTtiZSYmKHZlLnByZXZlbnREZWZhdWx0KCksUmU9ITAsQmU9YmUubm9kZSxHZT1iZS5vZmZzZXQseWUuY2xhc3NMaXN0LmFkZCgic2VsZWN0aW5nIiksd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLENlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixfZSkpfSksWi50ZXh0TGF5ZXJSZW5kZXJlZD0hMCxxLmNsZWFudXA/LigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZGVsZXRlKFgpfWNhdGNoKHllKXt5ZT8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgdGV4dCBsYXllciBmb3IgcGFnZSAke1h9OmAseWUpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZGVsZXRlKFgpfX1oYW5kbGVTY3JvbGw9aSgoKT0+e3RoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy51cGRhdGVDdXJyZW50UGFnZSgpLHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCl9LDUwKX0sImhhbmRsZVNjcm9sbCIpO3VwZGF0ZUN1cnJlbnRQYWdlKCl7aWYoIXRoaXMudmlld2VyTWFpbilyZXR1cm47bGV0IFg9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCxaPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQseWU9WCtaLzI7Zm9yKGxldCBxPTA7cTx0aGlzLnBhZ2VEYXRhLmxlbmd0aDtxKyspe2xldCBBPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7cSsxfSJdYCk7aWYoIUEpY29udGludWU7bGV0IHNlPUEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGFlPXNlLnRvcC1vZS50b3ArWCxUZT1hZStzZS5oZWlnaHQ7aWYoeWU+PWFlJiZ5ZTw9VGUpe3RoaXMuY3VycmVudFBhZ2UhPT1xKzEmJih0aGlzLmN1cnJlbnRQYWdlPXErMSx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KHErMSkpO2JyZWFrfX19c2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoWCl7bGV0IFo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGh1bWJuYWlsW2RhdGEtcGFnZT0iJHtYfSJdYCkseWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50Iik7aWYoWiYmeWUpe2xldCBxPVouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQT15ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzZT1xLnRvcDxBLnRvcCxvZT1xLmJvdHRvbT5BLmJvdHRvbTtpZihzZXx8b2Upe2xldCBhZT1aLm9mZnNldFRvcCxUZT1aLm9mZnNldEhlaWdodCxSZT15ZS5jbGllbnRIZWlnaHQsQmU9YWUtUmUvMitUZS8yO3llLnNjcm9sbFRvKHt0b3A6TWF0aC5tYXgoMCxCZSksYmVoYXZpb3I6InNtb290aCJ9KX19fWFzeW5jIHNjcm9sbFRvUGFnZShYLFo9ITApe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7WH0iXWApO2lmKHllJiZ0aGlzLnZpZXdlck1haW4pe2xldCBxPXllLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEE9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG9lPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3ArKHEudG9wLUEudG9wKS10aGlzLnZpZXdlck1haW4uY2xpZW50VG9wLTE2O1o/dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvKHt0b3A6b2UsYmVoYXZpb3I6InNtb290aCJ9KTp0aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wPW9lLHRoaXMuY3VycmVudFBhZ2U9WCx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KFgpLGF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKFgpfX1hc3luYyByZW5kZXJUaHVtYm5haWxzKCl7aWYoIXRoaXMucGRmRG9jdW1lbnR8fHRoaXMudGh1bWJuYWlsRGF0YS5sZW5ndGg+MCYmdGhpcy50aHVtYm5haWxEYXRhLmV2ZXJ5KFo9PloucmVuZGVyZWQpfHx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2xldCBYPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWw7dGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLXRodW1icyI7Zm9yKGxldCBaIG9mIHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MpdHJ5e1ouY2FuY2VsKCl9Y2F0Y2h7fXRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W107dHJ5e2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IFo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIudGh1bWJuYWlsIikseWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIudGh1bWJuYWlsLWNhbnZhcyIpLHE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50IiksQT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShxKSxvZT0yMDAtKHBhcnNlRmxvYXQoQS5wYWRkaW5nTGVmdCkrcGFyc2VGbG9hdChBLnBhZGRpbmdSaWdodCkpLTQ7Zm9yKGxldCBhZSBvZiBBcnJheS5mcm9tKHllKSl7bGV0IFRlPWFlLmdldENvbnRleHQoIjJkIik7VGUmJlRlLmNsZWFyUmVjdCgwLDAsYWUud2lkdGgsYWUuaGVpZ2h0KX1mb3IobGV0IGFlPTA7YWU8eWUubGVuZ3RoO2FlKyspe2lmKFg/LmFib3J0ZWQpcmV0dXJuO2xldCBUZT15ZVthZV0sUmU9WlthZV0sQmU9cGFyc2VJbnQoVGUuZGF0YXNldC5wYWdlfHwiMSIpLEdlPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShCZSksRGU9R2UuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxfZT1vZS9EZS53aWR0aCxDZT1HZS5nZXRWaWV3cG9ydCh7c2NhbGU6X2V9KSx2ZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtUZS53aWR0aD1NYXRoLmZsb29yKENlLndpZHRoKnZlKSxUZS5oZWlnaHQ9TWF0aC5mbG9vcihDZS5oZWlnaHQqdmUpLFRlLnN0eWxlLndpZHRoPWAke0NlLndpZHRofXB4YCxUZS5zdHlsZS5oZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YCxSZS5zdHlsZS5oZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YCxSZS5zdHlsZS5taW5IZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YDtsZXQgYmU9VGUuZ2V0Q29udGV4dCgiMmQiKTtpZighYmUpe0dlLmNsZWFudXA/LigpO2NvbnRpbnVlfWJlLnNjYWxlKHZlLHZlKTtsZXQgRWU9e2NhbnZhc0NvbnRleHQ6YmUsdmlld3BvcnQ6Q2V9LGplPUdlLnJlbmRlcihFZSk7dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcy5wdXNoKGplKSxhd2FpdCBqZS5wcm9taXNlLEdlLmNsZWFudXA/LigpO2xldCBXZT10aGlzLnRodW1ibmFpbERhdGEuZmluZChzdD0+c3QucGFnZT09PUJlKTtXZSYmKFdlLnJlbmRlcmVkPSEwKX10aGlzLnJlcXVlc3RVcGRhdGUoInRodW1ibmFpbERhdGEiKX1jYXRjaChaKXtaPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyB0aHVtYm5haWxzOiIsWil9ZmluYWxseXt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdfX1wcmV2aW91c1BhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPjEmJnRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UtMSl9bmV4dFBhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPHRoaXMudG90YWxQYWdlcyYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZSsxKX1oYW5kbGVUaHVtYm5haWxDbGljayhYKXtsZXQgWj1YLmN1cnJlbnRUYXJnZXQseWU9cGFyc2VJbnQoWi5kYXRhc2V0LnBhZ2V8fCIxIik7dGhpcy5zY3JvbGxUb1BhZ2UoeWUpfWhhbmRsZVBhZ2VJbnB1dChYKXtsZXQgWj1YLnRhcmdldCx5ZT1wYXJzZUludChaLnZhbHVlKTt0aGlzLnNjcm9sbFRvUGFnZSh5ZSl9em9vbUluKCl7bGV0IFg9TWF0aC5taW4odGhpcy5NQU5VQUxfTUFYX1pPT00sdGhpcy5jdXJyZW50Wm9vbSoxLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLFghPT10aGlzLmN1cnJlbnRab29tJiYodGhpcy5jdXJyZW50Wm9vbT1YLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpKX16b29tT3V0KCl7bGV0IFg9TWF0aC5tYXgodGhpcy5NQU5VQUxfTUlOX1pPT00sdGhpcy5jdXJyZW50Wm9vbS8xLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLFghPT10aGlzLmN1cnJlbnRab29tJiYodGhpcy5jdXJyZW50Wm9vbT1YLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpKX1yZXNldFpvb20oKXt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIix0aGlzLmN1cnJlbnRab29tPTEsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9QYWdlKCl7dGhpcy52aWV3cG9ydE1vZGU9InBhZ2UtZml0Iix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1maXRUb1dpZHRoKCl7dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfXJlUmVuZGVyQWxsUGFnZXMoKXt0aGlzLnBhZ2VEYXRhLmZvckVhY2goWD0+e1gucmVuZGVyZWQ9ITEsWC5yZW5kZXJpbmc9ITEsWC50ZXh0TGF5ZXJSZW5kZXJlZD0hMX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCl9KX1hc3luYyBkb3dubG9hZFBkZigpe2lmKHRoaXMucGRmRG9jdW1lbnQpdHJ5e2xldCBYPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RGF0YSgpLFo9bmV3IEJsb2IoW1guYnVmZmVyXSx7dHlwZToiYXBwbGljYXRpb24vcGRmIn0pLHllPVVSTC5jcmVhdGVPYmplY3RVUkwoWikscT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cS5ocmVmPXllLHEuZG93bmxvYWQ9dGhpcy5wZGZVcmwmJnRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLHEuY2xpY2soKSxzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKHllKSwxZTMpfWNhdGNoKFgpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRvd25sb2FkaW5nIFBERjoiLFgpfX1hc3luYyBwcmludFBkZigpe2lmKHRoaXMucGRmRG9jdW1lbnQpdHJ5e2xldCBYPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RGF0YSgpLFo9bmV3IEJsb2IoW1guYnVmZmVyXSx7dHlwZToiYXBwbGljYXRpb24vcGRmIn0pLHllPVVSTC5jcmVhdGVPYmplY3RVUkwoWikscT1gCiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICA8dGl0bGU+UHJpbnQgUERGPC90aXRsZT4KICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogICAgICAgICAgICBodG1sLCBib2R5IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgICAgICAgICBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IG5vbmU7IH0KICAgICAgICAgICAgQG1lZGlhIHByaW50IHsKICAgICAgICAgICAgICBodG1sLCBib2R5LCBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CiAgICAgICAgICAgIH0KICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5PgogICAgICAgICAgPGlmcmFtZSBzcmM9IiR7eWV9IiB0eXBlPSJhcHBsaWNhdGlvbi9wZGYiPjwvaWZyYW1lPgogICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cuZm9jdXMoKTsKICAgICAgICAgICAgICAgIHdpbmRvdy5wcmludCgpOwogICAgICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHdpbmRvdy5vbmFmdGVycHJpbnQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgLy8gU2FmZXR5IGNsb3NlIGFmdGVyIDIgbWludXRlcwogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cuY2xvc2UoKTsgfSwgMTIwMDAwKTsKICAgICAgICAgIDxcL3NjcmlwdD4KICAgICAgICA8L2JvZHk+CiAgICAgICAgPC9odG1sPgogICAgICBgLEE9bmV3IEJsb2IoW3FdLHt0eXBlOiJ0ZXh0L2h0bWwifSksc2U9VVJMLmNyZWF0ZU9iamVjdFVSTChBKSxvZT13aW5kb3cub3BlbihzZSwiX2JsYW5rIiwid2lkdGg9ODAwLGhlaWdodD02MDAiKTtpZihvZSl7bGV0IGFlPXNldEludGVydmFsKCgpPT57b2UuY2xvc2VkJiYoY2xlYXJJbnRlcnZhbChhZSksVVJMLnJldm9rZU9iamVjdFVSTCh5ZSksVVJMLnJldm9rZU9iamVjdFVSTChzZSkpfSw1MDApO3NldFRpbWVvdXQoKCk9PntjbGVhckludGVydmFsKGFlKSxVUkwucmV2b2tlT2JqZWN0VVJMKHllKSxVUkwucmV2b2tlT2JqZWN0VVJMKHNlKX0sMTJlNCl9ZWxzZSB3aW5kb3cub3Blbih5ZSwiX2JsYW5rIiksc2V0VGltZW91dCgoKT0+VVJMLnJldm9rZU9iamVjdFVSTCh5ZSksNmU0KSxVUkwucmV2b2tlT2JqZWN0VVJMKHNlKX1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBwcmludGluZyBQREY6IixYKX19Z2V0Q29udGV4dE1lbnVJdGVtcygpe2xldCBYPVtdLHllPXdpbmRvdy5nZXRTZWxlY3Rpb24oKT8udG9TdHJpbmcoKXx8IiI7cmV0dXJuIHllJiYoWC5wdXNoKHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh5ZSl9LCJhY3Rpb24iKX0pLFgucHVzaCh7ZGl2aWRlcjohMH0pKSxYLnB1c2goe25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuZG93bmxvYWRQZGYoKX0sImFjdGlvbiIpfSx7bmFtZToiUHJpbnQgUERGIixpY29uTmFtZToibHVjaWRlOlByaW50ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnByaW50UGRmKCl9LCJhY3Rpb24iKX0pLFh9Z2V0IGNhblpvb21Jbigpe3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20ifHx0aGlzLmN1cnJlbnRab29tPHRoaXMuTUFOVUFMX01BWF9aT09NfWdldCBjYW5ab29tT3V0KCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb20+dGhpcy5NQU5VQUxfTUlOX1pPT019ZW5zdXJlVmlld2VyUmVmcygpe3RoaXMudmlld2VyTWFpbnx8KHRoaXMudmlld2VyTWFpbj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWV3ZXItbWFpbiIpKSx0aGlzLnZpZXdlck1haW4mJiF0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKSx0aGlzLnBkZkRvY3VtZW50JiZ0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnZpZXdlck1haW4pLHRoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMudmlld2VyTWFpbi5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsWD0+e2xldCBaPVguY3VycmVudFRhcmdldCx5ZT1aLnNjcm9sbFRvcCxxPVouc2Nyb2xsSGVpZ2h0LEE9Wi5jbGllbnRIZWlnaHQsc2U9WC5kZWx0YVksb2U9eWU9PT0wLGFlPU1hdGguYWJzKHllK0EtcSk8MTtzZTwwJiYhb2V8fHNlPjAmJiFhZT9YLnN0b3BQcm9wYWdhdGlvbigpOihzZTwwJiZvZXx8c2U+MCYmYWUpJiYoWC5wcmV2ZW50RGVmYXVsdCgpLFguc3RvcFByb3BhZ2F0aW9uKCkpfSx7cGFzc2l2ZTohMX0pKX1tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCl7aWYoIXRoaXMudmlld2VyTWFpbil7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3JldHVybn1sZXQgWD1nZXRDb21wdXRlZFN0eWxlKHRoaXMudmlld2VyTWFpbiksWj1wYXJzZUZsb2F0KFgucGFkZGluZ0xlZnR8fCIwIikrcGFyc2VGbG9hdChYLnBhZGRpbmdSaWdodHx8IjAiKSx5ZT1wYXJzZUZsb2F0KFgucGFkZGluZ1RvcHx8IjAiKStwYXJzZUZsb2F0KFgucGFkZGluZ0JvdHRvbXx8IjAiKSxxPU1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRXaWR0aC1aLDApLEE9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodC15ZSwwKTt0aGlzLnZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6cSxoZWlnaHQ6QX19cmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKXt0eXBlb2YgdGhpcy5pbml0aWFsWm9vbT09Im51bWJlciI/KHRoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLHRoaXMuY3VycmVudFpvb209dGhpcy5ub3JtYWxpemVab29tKHRoaXMuaW5pdGlhbFpvb20sITApKTp0aGlzLmluaXRpYWxab29tPT09InBhZ2Utd2lkdGgiP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIjp0aGlzLmluaXRpYWxab29tPT09InBhZ2UtZml0Inx8dGhpcy5pbml0aWFsWm9vbT09PSJhdXRvIj90aGlzLnZpZXdwb3J0TW9kZT0icGFnZS1maXQiOnRoaXMudmlld3BvcnRNb2RlPSJhdXRvIix0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20iJiYodGhpcy5jdXJyZW50Wm9vbT0xKX1jb21wdXRlVmlld3BvcnQoWCl7dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCk7bGV0IFo9WC5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLHllO3N3aXRjaCh0aGlzLnZpZXdwb3J0TW9kZSl7Y2FzZSJwYWdlLXdpZHRoIjp7eWU9KHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxaLndpZHRoKS9aLndpZHRoO2JyZWFrfWNhc2UicGFnZS1maXQiOmNhc2UiYXV0byI6e2xldCBBPXRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxaLndpZHRoLHNlPXRoaXMudmlld3BvcnREaW1lbnNpb25zLmhlaWdodHx8Wi5oZWlnaHQsb2U9QS9aLndpZHRoLGFlPXNlL1ouaGVpZ2h0O3llPU1hdGgubWluKG9lLGFlKTticmVha31kZWZhdWx0Ont5ZT10aGlzLm5vcm1hbGl6ZVpvb20odGhpcy5jdXJyZW50Wm9vbXx8MSwhMSk7YnJlYWt9fSghTnVtYmVyLmlzRmluaXRlKHllKXx8eWU8PTApJiYoeWU9MSk7bGV0IHE9dGhpcy52aWV3cG9ydE1vZGU9PT0iY3VzdG9tIj90aGlzLm5vcm1hbGl6ZVpvb20oeWUsITApOnRoaXMubm9ybWFsaXplWm9vbSh5ZSwhMSk7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPXEpLFguZ2V0Vmlld3BvcnQoe3NjYWxlOnF9KX1ub3JtYWxpemVab29tKFgsWil7bGV0IHllPVo/dGhpcy5NQU5VQUxfTUlOX1pPT006dGhpcy5BQlNPTFVURV9NSU5fWk9PTSxxPVo/dGhpcy5NQU5VQUxfTUFYX1pPT006dGhpcy5BQlNPTFVURV9NQVhfWk9PTTtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoWCx5ZSkscSl9YXN5bmMgY2xlYW51cERvY3VtZW50KCl7aWYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXImJih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5hYm9ydCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGwpLHRoaXMuY3VycmVudFJlbmRlclByb21pc2Upe3RyeXthd2FpdCB0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlfWNhdGNoe310aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlPW51bGx9dGhpcy5jdXJyZW50UmVuZGVyVGFzaz1udWxsLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZm9yRWFjaChYPT57dHJ5e1guY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpO2ZvcihsZXQgWCBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzfHxbXSl0cnl7WC5jYW5jZWwoKX1jYXRjaHt9aWYodGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXSx0aGlzLnJlbmRlclN0YXRlPSJpZGxlIix0aGlzLnBhZ2VSZW5kZXJpbmc9ITEsdGhpcy5wYWdlTnVtUGVuZGluZz1udWxsLHRoaXMudGh1bWJuYWlsRGF0YT1bXSx0aGlzLnBhZ2VEYXRhPVtdLHRoaXMuZG9jdW1lbnRJZD0iIix0aGlzLmNhbnZhcyYmdGhpcy5jdHgmJnRoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLnBkZkRvY3VtZW50KXRyeXt0aGlzLnBkZkRvY3VtZW50LmRlc3Ryb3koKX1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIFBERiBkb2N1bWVudDoiLFgpfXRoaXMucGRmRG9jdW1lbnQ9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7V3MoYSx0KX19O3JldHVybiBrZT1hfSkoKX0pO3ZhciBsa2EsY2thPWcoKCk9PntwZSgpO2xrYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiA0MHB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgLnByZXZpZXctaW1hZ2UgewogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgfQoKICAgIC5wcmV2aWV3LXBkZiB7CiAgICAgIGhlaWdodDogNjAwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkltYWdlIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIGltYWdlIGZyb20gVVJMIGV4dGVuc2lvbiBhbmQgcmVuZGVycyB3aXRoIHRoZSBpbWFnZSB2aWV3ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjbGFzcz0icHJldmlldy1pbWFnZSIKICAgICAgICB1cmw9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA2NzQ0MDM4MTM2LTQ2MjczODM0YjNmYj93PTEyMDAiCiAgICAgICAgZmlsZW5hbWU9ImxhbmRzY2FwZS5qcGciCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QREYgUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdXRvLWRldGVjdHMgUERGIGFuZCBkaXNwbGF5cyB3aXRoIHRoZSBQREYgdmlld2VyIGluY2x1ZGluZyB0b29sYmFyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctcGRmIgogICAgICAgIHVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIGZpbGVuYW1lPSJyZXNlYXJjaC1wYXBlci5wZGYiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db2RlIFByZXZpZXcgKFRleHQgQ29udGVudCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VHlwZVNjcmlwdCBjb2RlIGRpc3BsYXllZCB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgdmlhIHRoZSBjb2RlYm94LjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImV4YW1wbGUudHMiCiAgICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgICAgLnRleHRDb250ZW50PSR7YGltcG9ydCB7IGh0bWwsIGNzcyB9IGZyb20gJ2xpdCc7CgpleHBvcnQgY2xhc3MgTXlDb21wb25lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHsKICBzdGF0aWMgc3R5bGVzID0gY3NzXGAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICB9CiAgXGA7CgogIHJlbmRlcigpIHsKICAgIHJldHVybiBodG1sXGA8aDE+SGVsbG8gV29ybGQ8L2gxPlxgOwogIH0KfWB9CiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1ZGlvIGZpbGUgZGV0ZWN0ZWQgYnkgZXh0ZW5zaW9uLCBzaG93biB3aXRoIHdhdmVmb3JtIHBsYXllci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICBmaWxlbmFtZT0ic29uZy5tcDMiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIGZpbGUgZGV0ZWN0ZWQgZnJvbSBVUkwsIHJlbmRlcmVkIHdpdGggY3VzdG9tIHZpZGVvIGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgdXJsPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIGZpbGVuYW1lPSJiaWctYnVjay1idW5ueS5tcDQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5FeHBsaWNpdCBUeXBlIE92ZXJyaWRlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkZvcmNlIGNvbnRlbnQgdHlwZSB0byAndGV4dCcgZXZlbiB0aG91Z2ggdGhlIFVSTCBoYXMgbm8gZXh0ZW5zaW9uLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY29udGVudFR5cGU9InRleHQiCiAgICAgICAgLnRleHRDb250ZW50PSR7YFRoaXMgaXMgcGxhaW4gdGV4dCBjb250ZW50LgpJdCBwcmVzZXJ2ZXMgd2hpdGVzcGFjZSBhbmQgbGluZSBicmVha3MuCgpVc2VmdWwgZm9yIGxvZyBmaWxlcywgUkVBRE1FcywgZXRjLmB9CiAgICAgICAgZmlsZW5hbWU9Im5vdGVzLnR4dCIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVua25vd24gVHlwZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5XaGVuIGNvbnRlbnQgdHlwZSBjYW5ub3QgYmUgZGV0ZWN0ZWQsIHNob3dzIGEgcGxhY2Vob2xkZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBmaWxlbmFtZT0iZGF0YS5iaW4iCiAgICAgICAgY29udGVudFR5cGU9InVua25vd24iCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEhvLHZzLGRrYSxHZXMsS2VzLFllcyxaZXMsdWthPWcoKCk9PntwZSgpO3hsdCgpO3lsdCgpO3dsdCgpO2FsdCgpO2tsdCgpO0dhKCk7Y2thKCk7SG89ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHZzPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxka2E9e2pwZzoiaW1hZ2UiLGpwZWc6ImltYWdlIixwbmc6ImltYWdlIixnaWY6ImltYWdlIix3ZWJwOiJpbWFnZSIsc3ZnOiJpbWFnZSIsYm1wOiJpbWFnZSIsYXZpZjoiaW1hZ2UiLGljbzoiaW1hZ2UiLHBkZjoicGRmIixtcDM6ImF1ZGlvIix3YXY6ImF1ZGlvIixvZ2c6ImF1ZGlvIixmbGFjOiJhdWRpbyIsYWFjOiJhdWRpbyIsbTRhOiJhdWRpbyIsb3B1czoiYXVkaW8iLHdlYmE6ImF1ZGlvIixtcDQ6InZpZGVvIix3ZWJtOiJ2aWRlbyIsbW92OiJ2aWRlbyIsYXZpOiJ2aWRlbyIsbWt2OiJ2aWRlbyIsb2d2OiJ2aWRlbyIsdHM6ImNvZGUiLGpzOiJjb2RlIixqc3g6ImNvZGUiLHRzeDoiY29kZSIsanNvbjoiY29kZSIsaHRtbDoiY29kZSIsY3NzOiJjb2RlIixzY3NzOiJjb2RlIixsZXNzOiJjb2RlIixweToiY29kZSIsamF2YToiY29kZSIsZ286ImNvZGUiLHJzOiJjb2RlIix5YW1sOiJjb2RlIix5bWw6ImNvZGUiLHhtbDoiY29kZSIsc3FsOiJjb2RlIixzaDoiY29kZSIsYmFzaDoiY29kZSIsenNoOiJjb2RlIixtZDoiY29kZSIsYzoiY29kZSIsY3BwOiJjb2RlIixoOiJjb2RlIixocHA6ImNvZGUiLHJiOiJjb2RlIixwaHA6ImNvZGUiLHN3aWZ0OiJjb2RlIixrdDoiY29kZSIsdHh0OiJ0ZXh0Iixsb2c6InRleHQiLGNzdjoidGV4dCIsZW52OiJ0ZXh0In0sR2VzPXsiaW1hZ2UvIjoiaW1hZ2UiLCJhdWRpby8iOiJhdWRpbyIsInZpZGVvLyI6InZpZGVvIiwiYXBwbGljYXRpb24vcGRmIjoicGRmIn0sS2VzPXt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJ4bWwiLHhtbDoieG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIscHk6InB5dGhvbiIsamF2YToiamF2YSIsZ286ImdvIixyczoicnVzdCIseWFtbDoieWFtbCIseW1sOiJ5YW1sIixzcWw6InNxbCIsc2g6ImJhc2giLGJhc2g6ImJhc2giLHpzaDoiYmFzaCIsYzoiYyIsY3BwOiJjcHAiLGg6ImMiLGhwcDoiY3BwIixyYjoicnVieSIscGhwOiJwaHAiLHN3aWZ0OiJzd2lmdCIsa3Q6ImtvdGxpbiIsbWQ6Im1hcmtkb3duIn0sWWVzPXtpbWFnZToibHVjaWRlOkltYWdlIixwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsYXVkaW86Imx1Y2lkZTpNdXNpYyIsdmlkZW86Imx1Y2lkZTpWaWRlbyIsY29kZToibHVjaWRlOkNvZGUiLHRleHQ6Imx1Y2lkZTpGaWxlVGV4dCIsdW5rbm93bjoibHVjaWRlOkZpbGUifSxaZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXByZXZpZXciKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXSxILGs9W10sUz1bXSxJLFA9W10sUj1bXSxLLFY9W10sVz1bXSxtZSxCPVtdLFU9W10saGUsRj1bXSxqPVtdLHVlLGxlPVtdLFE9W10saWUsdGU9W10sZWU9W10sa2UsWD1bXSxaPVtdLHllLHE9W10sQT1bXTt2YXIgc2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG9lPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7YXR0cmlidXRlOiExfSldLGM9W0woKV0seD1bTCgpXSx5PVtMKCldLE49W0woKV0sTz1bTCgpXSxIPVtMKCldLEk9W0woe3R5cGU6Qm9vbGVhbn0pXSxLPVtMKHt0eXBlOkJvb2xlYW59KV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sSG8odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJ1cmwiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS51cmwsImdldCIpLHNldDppKChhZSxUZSk9PnthZS51cmw9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LG8sbCksSG8odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iZmlsZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmZpbGUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5maWxlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxkLHUpLEhvKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFzZTY0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4iYmFzZTY0ImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuYmFzZTY0LCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuYmFzZTY0PVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxiLHYpLEhvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJ0ZXh0Q29udGVudCJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnRleHRDb250ZW50LCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUudGV4dENvbnRlbnQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LG0sZiksSG8odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImNvbnRlbnRUeXBlImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuY29udGVudFR5cGUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5jb250ZW50VHlwZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sTSx6KSxIbyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ibGFuZ3VhZ2UiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmxhbmd1YWdlPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxDLF8pLEhvKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWltZVR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJtaW1lVHlwZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLm1pbWVUeXBlLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUubWltZVR5cGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LCQsRSksSG8odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlbmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+ImZpbGVuYW1lImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuZmlsZW5hbWUsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5maWxlbmFtZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sayxTKSxIbyh0aGlzLG51bGwsSSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ic2hvd1Rvb2xiYXIiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnNob3dUb29sYmFyPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxQLFIpLEhvKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGFlPT4ic2hvd0ZpbGVuYW1lImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUuc2hvd0ZpbGVuYW1lLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuc2hvd0ZpbGVuYW1lPVRlfSwic2V0Iil9LG1ldGFkYXRhOm9lfSxWLFcpLEhvKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkVHlwZSJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc29sdmVkVHlwZSwiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkVHlwZT1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sQixVKSxIbyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkU3JjImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUucmVzb2x2ZWRTcmMsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5yZXNvbHZlZFNyYz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sRixqKSxIbyh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJyZXNvbHZlZFRleHQiaW4gYWUsImhhcyIpLGdldDppKGFlPT5hZS5yZXNvbHZlZFRleHQsImdldCIpLHNldDppKChhZSxUZSk9PnthZS5yZXNvbHZlZFRleHQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LGxlLFEpLEhvKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShhZT0+InJlc29sdmVkTGFuZyJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLnJlc29sdmVkTGFuZywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLnJlc29sdmVkTGFuZz1UZX0sInNldCIpfSxtZXRhZGF0YTpvZX0sdGUsZWUpLEhvKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJsb2FkaW5nImluIGFlLCJoYXMiKSxnZXQ6aShhZT0+YWUubG9hZGluZywiZ2V0Iiksc2V0OmkoKGFlLFRlKT0+e2FlLmxvYWRpbmc9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LFgsWiksSG8odGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYWU9PiJlcnJvciJpbiBhZSwiaGFzIiksZ2V0OmkoYWU9PmFlLmVycm9yLCJnZXQiKSxzZXQ6aSgoYWUsVGUpPT57YWUuZXJyb3I9VGV9LCJzZXQiKX0sbWV0YWRhdGE6b2V9LHEsQSksSG8obnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b2V9LG51bGwsdCksc2U9YT1lLnZhbHVlLG9lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm9lfSl9c3RhdGljIGRlbW89bGthO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJEYXRhIFZpZXciXTsjZT12cyh0aGlzLG8sIiIpO2dldCB1cmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdXJsKG9lKXt0aGlzLiNlPW9lfSN0PSh2cyh0aGlzLGwpLHZzKHRoaXMsZCx2b2lkIDApKTtnZXQgZmlsZSgpe3JldHVybiB0aGlzLiN0fXNldCBmaWxlKG9lKXt0aGlzLiN0PW9lfSNhPSh2cyh0aGlzLHUpLHZzKHRoaXMsYiwiIikpO2dldCBiYXNlNjQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYmFzZTY0KG9lKXt0aGlzLiNhPW9lfSNzPSh2cyh0aGlzLHYpLHZzKHRoaXMsbSwiIikpO2dldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLiNzfXNldCB0ZXh0Q29udGVudChvZSl7dGhpcy4jcz1vZX0jaT0odnModGhpcyxmKSx2cyh0aGlzLE0sdm9pZCAwKSk7Z2V0IGNvbnRlbnRUeXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRlbnRUeXBlKG9lKXt0aGlzLiNpPW9lfSNyPSh2cyh0aGlzLHopLHZzKHRoaXMsQywiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBsYW5ndWFnZShvZSl7dGhpcy4jcj1vZX0jbz0odnModGhpcyxfKSx2cyh0aGlzLCQsIiIpKTtnZXQgbWltZVR5cGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWltZVR5cGUob2Upe3RoaXMuI289b2V9I249KHZzKHRoaXMsRSksdnModGhpcyxrLCIiKSk7Z2V0IGZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI259c2V0IGZpbGVuYW1lKG9lKXt0aGlzLiNuPW9lfSNsPSh2cyh0aGlzLFMpLHZzKHRoaXMsUCwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNsfXNldCBzaG93VG9vbGJhcihvZSl7dGhpcy4jbD1vZX0jYz0odnModGhpcyxSKSx2cyh0aGlzLFYsITApKTtnZXQgc2hvd0ZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHNob3dGaWxlbmFtZShvZSl7dGhpcy4jYz1vZX0jZD0odnModGhpcyxXKSx2cyh0aGlzLEIsInVua25vd24iKSk7Z2V0IHJlc29sdmVkVHlwZSgpe3JldHVybiB0aGlzLiNkfXNldCByZXNvbHZlZFR5cGUob2Upe3RoaXMuI2Q9b2V9I3U9KHZzKHRoaXMsVSksdnModGhpcyxGLCIiKSk7Z2V0IHJlc29sdmVkU3JjKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkU3JjKG9lKXt0aGlzLiN1PW9lfSNwPSh2cyh0aGlzLGopLHZzKHRoaXMsbGUsIiIpKTtnZXQgcmVzb2x2ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJlc29sdmVkVGV4dChvZSl7dGhpcy4jcD1vZX0jaD0odnModGhpcyxRKSx2cyh0aGlzLHRlLCJ0ZXh0IikpO2dldCByZXNvbHZlZExhbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgcmVzb2x2ZWRMYW5nKG9lKXt0aGlzLiNoPW9lfSNmPSh2cyh0aGlzLGVlKSx2cyh0aGlzLFgsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNmfXNldCBsb2FkaW5nKG9lKXt0aGlzLiNmPW9lfSNtPSh2cyh0aGlzLFopLHZzKHRoaXMscSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNtfXNldCBlcnJvcihvZSl7dGhpcy4jbT1vZX1vYmplY3RVcmw9KHZzKHRoaXMsQSksIiIpO3JlbmRlcigpe2xldCBvZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fHRoaXMuZ2V0RmlsZW5hbWVGcm9tVXJsKCl8fCIiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWZpbGVuYW1lIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhZGdlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgPiAqIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXZpZGVvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1kYXRhdmlldy1jb2RlYm94IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnRleHQtdmlld2VyIHsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dGaWxlbmFtZSYmb2U/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1iYXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJoZWFkZXItaWNvbiIgaWNvbj0iJHtZZXNbdGhpcy5yZXNvbHZlZFR5cGVdfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItZmlsZW5hbWUiPiR7b2V9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWJhZGdlIj4ke3RoaXMucmVzb2x2ZWRUeXBlfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMucmVuZGVyQ29udGVudCgpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ29udGVudCgpe3N3aXRjaCh0aGlzLnJlc29sdmVkVHlwZSl7Y2FzZSJpbWFnZSI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmZpbGVuYW1lfHwiIn0iCiAgICAgICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgICAgICBgO2Nhc2UicGRmIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICAgICAgLnBkZlVybD0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiYXVkaW8iOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAudGl0bGU9JHt0aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIifQogICAgICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICAgICAgYDtjYXNlInZpZGVvIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJjb2RlIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3gKICAgICAgICAgICAgLnByb2dMYW5nPSR7dGhpcy5yZXNvbHZlZExhbmd9CiAgICAgICAgICAgIC5jb2RlVG9EaXNwbGF5PSR7dGhpcy5yZXNvbHZlZFRleHR9CiAgICAgICAgICA+PC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICAgICAgYDtjYXNlInRleHQiOnJldHVybiB3YDxwcmUgY2xhc3M9InRleHQtdmlld2VyIj4ke3RoaXMucmVzb2x2ZWRUZXh0fTwvcHJlPmA7ZGVmYXVsdDpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVF1ZXN0aW9uIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9fWFzeW5jIHVwZGF0ZWQob2Upe3N1cGVyLnVwZGF0ZWQob2UpLFsidXJsIiwiZmlsZSIsImJhc2U2NCIsInRleHRDb250ZW50IiwiY29udGVudFR5cGUiLCJsYW5ndWFnZSIsIm1pbWVUeXBlIiwiZmlsZW5hbWUiXS5zb21lKFJlPT5vZS5oYXMoUmUpKSYmYXdhaXQgdGhpcy5yZXNvbHZlQ29udGVudCgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJldm9rZU9iamVjdFVybCgpfWFzeW5jIHJlc29sdmVDb250ZW50KCl7dGhpcy5lcnJvcj0iIix0aGlzLnJldm9rZU9iamVjdFVybCgpLHRoaXMucmVzb2x2ZWRUeXBlPXRoaXMuZGV0ZWN0VHlwZSgpO3RyeXtpZih0aGlzLnVybCl7aWYodGhpcy5yZXNvbHZlZFNyYz10aGlzLnVybCx0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpaWYodGhpcy50ZXh0Q29udGVudCl0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50O2Vsc2V7dGhpcy5sb2FkaW5nPSEwO2xldCBvZT1hd2FpdCBmZXRjaCh0aGlzLnVybCk7dGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgb2UudGV4dCgpLHRoaXMubG9hZGluZz0hMX19ZWxzZSBpZih0aGlzLmZpbGUpdGhpcy5vYmplY3RVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLmZpbGUpLHRoaXMucmVzb2x2ZWRTcmM9dGhpcy5vYmplY3RVcmwsKHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgdGhpcy5maWxlLnRleHQoKSx0aGlzLmxvYWRpbmc9ITEpO2Vsc2UgaWYodGhpcy5iYXNlNjQpe2xldCBvZT10aGlzLm1pbWVUeXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjt0aGlzLnJlc29sdmVkU3JjPWBkYXRhOiR7b2V9O2Jhc2U2NCwke3RoaXMuYmFzZTY0fWB9ZWxzZSB0aGlzLnRleHRDb250ZW50JiYodGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudCl9Y2F0Y2h7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgY29udGVudCIsdGhpcy5sb2FkaW5nPSExfXRoaXMucmVzb2x2ZWRMYW5nPXRoaXMucmVzb2x2ZUxhbmd1YWdlKCl9ZGV0ZWN0VHlwZSgpe2lmKHRoaXMuY29udGVudFR5cGUpcmV0dXJuIHRoaXMuY29udGVudFR5cGU7bGV0IG9lPXRoaXMubWltZVR5cGV8fHRoaXMuZmlsZT8udHlwZXx8IiI7aWYob2Upe2lmKG9lPT09ImFwcGxpY2F0aW9uL3BkZiIpcmV0dXJuInBkZiI7Zm9yKGxldFtUZSxSZV1vZiBPYmplY3QuZW50cmllcyhHZXMpKWlmKG9lLnN0YXJ0c1dpdGgoVGUpKXJldHVybiBSZTtpZihvZS5zdGFydHNXaXRoKCJ0ZXh0LyIpKXJldHVybiJ0ZXh0In1sZXQgYWU9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gYWUmJmRrYVthZV0/ZGthW2FlXTp0aGlzLnRleHRDb250ZW50P3RoaXMubGFuZ3VhZ2U/ImNvZGUiOiJ0ZXh0IjoidW5rbm93biJ9Z2V0RXh0ZW5zaW9uKCl7bGV0IG9lPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiI7aWYob2Upe2xldCBhZT1vZS5zcGxpdCgiLiIpO2lmKGFlLmxlbmd0aD4xKXJldHVybiBhZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWlmKHRoaXMudXJsKXRyeXtsZXQgVGU9bmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLiIpO2lmKFRlLmxlbmd0aD4xKXJldHVybiBUZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWNhdGNoe31yZXR1cm4iIn1nZXRGaWxlbmFtZUZyb21VcmwoKXtpZighdGhpcy51cmwpcmV0dXJuIiI7dHJ5e3JldHVybiBuZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIvIikucG9wKCl8fCIifWNhdGNoe3JldHVybiIifX1yZXNvbHZlTGFuZ3VhZ2UoKXtpZih0aGlzLmxhbmd1YWdlKXJldHVybiB0aGlzLmxhbmd1YWdlO2xldCBvZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBLZXNbb2VdfHwidGV4dCJ9cmV2b2tlT2JqZWN0VXJsKCl7dGhpcy5vYmplY3RVcmwmJihVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKSx0aGlzLm9iamVjdFVybD0iIil9c3RhdGlje3ZzKGEsdCl9fTtyZXR1cm4gc2U9YX0pKCl9KTt2YXIgcGthPWcoKCk9Pnt1a2EoKX0pO3ZhciBvSixTbHQ9ZygoKT0+e29KPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhbnZhc1Bvb2wiKX1zdGF0aWMgcG9vbD1bXTtzdGF0aWMgbWF4UG9vbFNpemU9MjA7c3RhdGljIE1JTl9DQU5WQVNfU0laRT0yNTY7c3RhdGljIE1BWF9DQU5WQVNfU0laRT00MDk2O3N0YXRpYyBhY3F1aXJlKGUsdCl7bGV0IGE9dGhpcy5wb29sLmZpbmQobD0+IWwuaW5Vc2UmJmwuY2FudmFzLndpZHRoPj1lJiZsLmNhbnZhcy5oZWlnaHQ+PXQmJmwuY2FudmFzLndpZHRoPD1lKjEuNSYmbC5jYW52YXMuaGVpZ2h0PD10KjEuNSk7aWYoYSlyZXR1cm4gYS5pblVzZT0hMCxhLmxhc3RVc2VkPURhdGUubm93KCksYS5jYW52YXMud2lkdGg9ZSxhLmNhbnZhcy5oZWlnaHQ9dCxhLmN0eC5jbGVhclJlY3QoMCwwLGUsdCksYTtpZih0aGlzLnBvb2wubGVuZ3RoPHRoaXMubWF4UG9vbFNpemUpe2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHA9bC5nZXRDb250ZXh0KCIyZCIse2FscGhhOiEwLGRlc3luY2hyb25pemVkOiEwfSk7bC53aWR0aD1NYXRoLm1pbihNYXRoLm1heChlLHRoaXMuTUlOX0NBTlZBU19TSVpFKSx0aGlzLk1BWF9DQU5WQVNfU0laRSksbC5oZWlnaHQ9TWF0aC5taW4oTWF0aC5tYXgodCx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpO2xldCBkPXtjYW52YXM6bCxjdHg6cCxpblVzZTohMCxsYXN0VXNlZDpEYXRlLm5vdygpfTtyZXR1cm4gdGhpcy5wb29sLnB1c2goZCksZH1sZXQgcj10aGlzLnBvb2wuZmlsdGVyKGw9PiFsLmluVXNlKS5zb3J0KChsLHApPT5sLmxhc3RVc2VkLXAubGFzdFVzZWQpWzBdO2lmKHIpcmV0dXJuIHIuY2FudmFzLndpZHRoPWUsci5jYW52YXMuaGVpZ2h0PXQsci5jdHguY2xlYXJSZWN0KDAsMCxlLHQpLHIuaW5Vc2U9ITAsci5sYXN0VXNlZD1EYXRlLm5vdygpLHI7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksbz1uLmdldENvbnRleHQoIjJkIik7cmV0dXJuIG4ud2lkdGg9ZSxuLmhlaWdodD10LHtjYW52YXM6bixjdHg6byxpblVzZTohMCxsYXN0VXNlZDpEYXRlLm5vdygpfX1zdGF0aWMgcmVsZWFzZShlKXt0aGlzLnBvb2wuaW5jbHVkZXMoZSkmJihlLmluVXNlPSExLGUuY3R4LmNsZWFyUmVjdCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KSl9c3RhdGljIHJlbGVhc2VBbGwoKXtmb3IobGV0IGUgb2YgdGhpcy5wb29sKWUuaW5Vc2U9ITEsZS5jdHguY2xlYXJSZWN0KDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpfXN0YXRpYyBkZXN0cm95KCl7Zm9yKGxldCBlIG9mIHRoaXMucG9vbCllLmNhbnZhcy53aWR0aD0wLGUuY2FudmFzLmhlaWdodD0wO3RoaXMucG9vbD1bXX1zdGF0aWMgZ2V0U3RhdHMoKXtyZXR1cm57cG9vbFNpemU6dGhpcy5wb29sLmxlbmd0aCxtYXhQb29sU2l6ZTp0aGlzLm1heFBvb2xTaXplLGluVXNlOnRoaXMucG9vbC5maWx0ZXIoZT0+ZS5pblVzZSkubGVuZ3RoLGF2YWlsYWJsZTp0aGlzLnBvb2wuZmlsdGVyKGU9PiFlLmluVXNlKS5sZW5ndGh9fXN0YXRpYyBhZGp1c3RQb29sU2l6ZShlKXtpZihlPHRoaXMucG9vbC5sZW5ndGgpe2xldCB0PXRoaXMucG9vbC5sZW5ndGgtZSxhPXRoaXMucG9vbC5maWx0ZXIocj0+IXIuaW5Vc2UpLnNsaWNlKDAsdCk7Zm9yKGxldCByIG9mIGEpe2xldCBuPXRoaXMucG9vbC5pbmRleE9mKHIpO24+LTEmJnRoaXMucG9vbC5zcGxpY2UobiwxKX19dGhpcy5tYXhQb29sU2l6ZT1lfX19KTtmdW5jdGlvbiB2c24ocyxlKXtsZXQgdDtyZXR1cm4gaShmdW5jdGlvbiguLi5yKXtsZXQgbj1pKCgpPT57Y2xlYXJUaW1lb3V0KHQpLHMoLi4ucil9LCJsYXRlciIpO2NsZWFyVGltZW91dCh0KSx0PXdpbmRvdy5zZXRUaW1lb3V0KG4sZSl9LCJleGVjdXRlZEZ1bmN0aW9uIil9ZnVuY3Rpb24geHNuKHMsZSl7bGV0IHQ7cmV0dXJuKC4uLmEpPT57dHx8KHMoLi4uYSksdD0hMCxzZXRUaW1lb3V0KCgpPT50PSExLGUpKX19ZnVuY3Rpb24gaGthKHMpe2lmKHM9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgZT0xMDI0LHQ9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdLGE9TWF0aC5mbG9vcihNYXRoLmxvZyhzKS9NYXRoLmxvZyhlKSk7cmV0dXJuIE1hdGgucm91bmQocy9NYXRoLnBvdyhlLGEpKjEwMCkvMTAwKyIgIit0W2FdfWZ1bmN0aW9uIHlzbihzLGU9MCl7bGV0IHQ9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdC50b3A+PS1lJiZ0LmxlZnQ+PS1lJiZ0LmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkrZSYmdC5yaWdodDw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpK2V9dmFyIG5KLF9sdD1nKCgpPT57aSh2c24sImRlYm91bmNlIik7aSh4c24sInRocm90dGxlIik7aShoa2EsImZvcm1hdEZpbGVTaXplIik7aSh5c24sImlzSW5WaWV3cG9ydCIpO25KPWNsYXNze3N0YXRpY3tpKHRoaXMsIlBlcmZvcm1hbmNlTW9uaXRvciIpfXN0YXRpYyBtYXJrcz1uZXcgTWFwO3N0YXRpYyBtZWFzdXJlcz1bXTtzdGF0aWMgbWFyayhlKXt0aGlzLm1hcmtzLnNldChlLHBlcmZvcm1hbmNlLm5vdygpKX1zdGF0aWMgbWVhc3VyZShlLHQpe2xldCBhPXRoaXMubWFya3MuZ2V0KHQpO2lmKGEpe2xldCByPXBlcmZvcm1hbmNlLm5vdygpLWE7cmV0dXJuIHRoaXMubWVhc3VyZXMucHVzaCh7bmFtZTplLGR1cmF0aW9uOnJ9KSx0aGlzLm1hcmtzLmRlbGV0ZSh0KSxyfXJldHVybiAwfXN0YXRpYyBnZXRSZXBvcnQoKXtsZXQgZT17bWVhc3VyZXM6Wy4uLnRoaXMubWVhc3VyZXNdLGF2ZXJhZ2VzOnt9fSx0PW5ldyBNYXA7Zm9yKGxldCBhIG9mIHRoaXMubWVhc3VyZXMpdC5oYXMoYS5uYW1lKXx8dC5zZXQoYS5uYW1lLFtdKSx0LmdldChhLm5hbWUpLnB1c2goYS5kdXJhdGlvbik7Zm9yKGxldFthLHJdb2YgdCllLmF2ZXJhZ2VzW2FdPXIucmVkdWNlKChuLG8pPT5uK28sMCkvci5sZW5ndGg7cmV0dXJuIGV9c3RhdGljIGNsZWFyKCl7dGhpcy5tYXJrcy5jbGVhcigpLHRoaXMubWVhc3VyZXM9W119fX0pO3ZhciBma2E9ZygoKT0+e1NsdCgpO24yZSgpO19sdCgpfSk7dmFyIG1rYT1nKCgpPT57a2x0KCl9KTt2YXIgc2wsR3U9ZygoKT0+e3BlKCk7c2w9W2guZGVmYXVsdFN0eWxlcyxKYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgaGVpZ2h0OiAyNjBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMjQpIil9OwoKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgewogICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnRpbGUtb3ZlcmxheSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLnRpbGUtY29udGVudCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB6LWluZGV4OiAyMDsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgc3BhbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLWluZm8tYmFyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOTUpIiwiaHNsKDIxNSAyMCUgMTIlIC8gMC45NSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogNnB4OwogICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsKICAgICAgei1pbmRleDogMjU7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmluZm8tbGFiZWwgewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5pbmZvLXNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICB9CgogICAgLmluZm8tZGV0YWlsIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3BhY2l0eTogMC43OwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLAogICAgLnRpbGUtZXJyb3IgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA5OCUpIiwiaHNsKDAgNjIlIDIwJSkiKX07CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDQwJSkiLCJoc2woMCA3MCUgNjglKSIpfTsKICAgIH0KCiAgICAudGlsZS1lcnJvciBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDMycHg7CiAgICB9CgogICAgLnRpbGUtc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLXRleHQsCiAgICAudGlsZS1lcnJvci10ZXh0IHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgLyogU2l6ZSB2YXJpYW50cyAqLwogICAgOmhvc3QoW3NpemU9InNtYWxsIl0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgaGVpZ2h0OiAxOTVweDsKICAgIH0KCiAgICA6aG9zdChbc2l6ZT0ibGFyZ2UiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDI1MHB4OwogICAgICBoZWlnaHQ6IDMyNXB4OwogICAgfQoKICAgIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogICAgOmhvc3QoW2dyaWQtbW9kZV0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgfQogIGBdfSk7dmFyIGxKLGUwLElsLHc0PWcoKCk9PntwZSgpO0d1KCk7R2EoKTtsSj1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZTA9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LElsPSgoKT0+e2xldCBzPXdlLGUsdD1bXSxhPVtdLHIsbj1bXSxvPVtdLGwscD1bXSxkPVtdLHUsYz1bXSxiPVtdLHYseD1bXSxtPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbEJhc2UiKX1zdGF0aWN7bGV0IHk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bTCh7dHlwZTpCb29sZWFufSldLHI9W0woe3R5cGU6Qm9vbGVhbn0pXSxsPVtMKHt0eXBlOkJvb2xlYW59KV0sdT1bTCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx2PVtMKHt0eXBlOlN0cmluZ30pXSxsSih0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNsaWNrYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iY2xpY2thYmxlImluIE0sImhhcyIpLGdldDppKE09Pk0uY2xpY2thYmxlLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00uY2xpY2thYmxlPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0sdCxhKSxsSih0aGlzLG51bGwscix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImxvYWRpbmciaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00ubG9hZGluZz16fSwic2V0Iil9LG1ldGFkYXRhOnl9LG4sbyksbEoodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZXJyb3IiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5lcnJvciwiZ2V0Iiksc2V0OmkoKE0seik9PntNLmVycm9yPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0scCxkKSxsSih0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InNpemUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zaXplLCJnZXQiKSxzZXQ6aSgoTSx6KT0+e00uc2l6ZT16fSwic2V0Iil9LG1ldGFkYXRhOnl9LGMsYiksbEoodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibGFiZWwiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5sYWJlbCwiZ2V0Iiksc2V0OmkoKE0seik9PntNLmxhYmVsPXp9LCJzZXQiKX0sbWV0YWRhdGE6eX0seCxtKSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1zdGF0aWMgc3R5bGVzPXNsOyNlPWUwKHRoaXMsdCwhMCk7Z2V0IGNsaWNrYWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCBjbGlja2FibGUoeSl7dGhpcy4jZT15fSN0PShlMCh0aGlzLGEpLGUwKHRoaXMsbiwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvYWRpbmcoeSl7dGhpcy4jdD15fSNhPShlMCh0aGlzLG8pLGUwKHRoaXMscCwhMSkpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNhfXNldCBlcnJvcih5KXt0aGlzLiNhPXl9I3M9KGUwKHRoaXMsZCksZTAodGhpcyxjLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNpemUoeSl7dGhpcy4jcz15fSNpPShlMCh0aGlzLGIpLGUwKHRoaXMseCwiIikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBsYWJlbCh5KXt0aGlzLiNpPXl9b2JzZXJ2ZXI9ZTAodGhpcyxtKTtfdmlzaWJsZT0hMTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Zpc2libGV9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idGlsZS1jb250YWluZXIgJHt0aGlzLmNsaWNrYWJsZT8iY2xpY2thYmxlIjoiIn0gJHt0aGlzLmxvYWRpbmc/ImxvYWRpbmciOiIifSAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaWxlQ2xpY2t9CiAgICAgICAgQG1vdXNlZW50ZXI9JHt0aGlzLm9uVGlsZU1vdXNlRW50ZXJ9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLm9uVGlsZU1vdXNlTGVhdmV9CiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMub25UaWxlTW91c2VNb3ZlfQogICAgICA+CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZy10ZXh0Ij5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3IiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvci10ZXh0Ij5GYWlsZWQgdG8gbG9hZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHshdGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj90aGlzLnJlbmRlclRpbGVDb250ZW50KCk6IiJ9CgogICAgICAgICR7dGhpcy5yZW5kZXJCb3R0b21CYXIoKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiIifWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMub2JzZXJ2ZXI9dm9pZCAwKX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoeT0+e2ZvcihsZXQgTSBvZiB5KXtsZXQgej10aGlzLl92aXNpYmxlO3RoaXMuX3Zpc2libGU9TS5pc0ludGVyc2VjdGluZyx0aGlzLl92aXNpYmxlJiYheiYmdGhpcy5vbkJlY2FtZVZpc2libGUoKX19LHtyb290Om51bGwscm9vdE1hcmdpbjoiMjAwcHgiLHRocmVzaG9sZDouMDF9KSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcyl9b25CZWNhbWVWaXNpYmxlKCl7fW9uVGlsZU1vdXNlRW50ZXIoKXt9b25UaWxlTW91c2VMZWF2ZSgpe31vblRpbGVNb3VzZU1vdmUoeSl7fWhhbmRsZVRpbGVDbGljaygpe3RoaXMuY2xpY2thYmxlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57fX19fSkoKX0pO3ZhciBna2E9ZygoKT0+e3c0KCk7R3UoKX0pO3ZhciBia2EsdmthPWcoKCk9PntwZSgpO2JrYT1KYAogIC5wcmV2aWV3LXN0YWNrIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgcGFkZGluZzogOHB4IDhweCAyOHB4IDhweDsKICB9CgogIC5wcmV2aWV3LXN0YWNrLm5vbi1hNCB7CiAgICBwYWRkaW5nOiAxMnB4IDEycHggMjhweCAxMnB4OwogIH0KCiAgLnByZXZpZXctY2FudmFzIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICB9CgogIC5ub24tYTQgLnByZXZpZXctY2FudmFzIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjQlKSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogIDpob3N0KFtncmlkLW1vZGVdKSAucHJldmlldy1jYW52YXMgewogICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICB9CmB9KTt2YXIgeGthLHlrYT1nKCgpPT57cGUoKTt4a2E9aSgoKT0+e2xldCBzPVsiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIiwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIl0sZT1pKHQ9PntsZXQgYT1bXTtmb3IobGV0IHI9MDtyPHQ7cisrKXtsZXQgbj1zW3Ilcy5sZW5ndGhdO2EucHVzaCh3YAogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iJHtufSIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGdyaWQtbW9kZQogICAgICAgICAgQHRpbGUtY2xpY2s9JHtvPT57Y29uc29sZS5sb2coIlBERiBUaWxlIGNsaWNrZWQ6IixvLmRldGFpbCksYWxlcnQoYFBERiBjbGlja2VkOiAke28uZGV0YWlsLnBhZ2VDb3VudH0gcGFnZXNgKX19CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICBgKX1yZXR1cm4gYX0sImdlbmVyYXRlR3JpZEl0ZW1zIik7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KCiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtaW4td2lkdGg6IDEwMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaW5nbGUgUERGIFRpbGU8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5EaWZmZXJlbnQgU2l6ZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPlNtYWxsOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+RGVmYXVsdDo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+TGFyZ2U6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPldpdGggTGFiZWw8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgbGFiZWw9IlJlc2VhcmNoIFBhcGVyLnBkZiIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Tm9uLUNsaWNrYWJsZTwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICBjbGlja2FibGU9ImZhbHNlIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5HcmlkIC0gMjAgUERGcyB3aXRoIExhenkgTG9hZGluZzwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1ncmlkIj4KICAgICAgICAgICR7ZSgyMCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0sImRlbW8iKX0pO3ZhciBrNCxpbCxYZXMsd2thPWcoKCk9PntwZSgpO3c0KCk7R3UoKTtuMmUoKTtTbHQoKTtfbHQoKTt2a2EoKTt5a2EoKTtrND1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0saWw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LFhlcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLXBkZiIpXSxlLHQ9W10sYSxyPUlsLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsUGRmIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bTCh7dHlwZTpOdW1iZXJ9KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6Qm9vbGVhbn0pXSxOPVtMKHt0eXBlOkJvb2xlYW59KV0sTz1bWSgpXSxrNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icGRmVXJsImluIFMsImhhcyIpLGdldDppKFM9PlMucGRmVXJsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MucGRmVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxrNCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmV2aWV3UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3VycmVudFByZXZpZXdQYWdlImluIFMsImhhcyIpLGdldDppKFM9PlMuY3VycmVudFByZXZpZXdQYWdlLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFByZXZpZXdQYWdlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxrNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icGFnZUNvdW50ImluIFMsImhhcyIpLGdldDppKFM9PlMucGFnZUNvdW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MucGFnZUNvdW50PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxrNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJyZW5kZXJlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnJlbmRlcmVkLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MucmVuZGVyZWQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLGs0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNIb3ZlcmluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzSG92ZXJpbmcsImdldCIpLHNldDppKChTLEkpPT57Uy5pc0hvdmVyaW5nPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sTSx6KSxrNCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQTRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImlzQTRGb3JtYXQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc0E0Rm9ybWF0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaXNBNEZvcm1hdD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LEMsXyksazQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZmlsZVNpemUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5maWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLmZpbGVTaXplPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxrNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXhrYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIiwiUERGIl07c3RhdGljIHN0eWxlcz1bLi4uc2wsYmthXTsjZT1pbCh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKGspe3RoaXMuI2U9a30jdD0oaWwodGhpcyxsKSxpbCh0aGlzLGQsMSkpO2dldCBjdXJyZW50UHJldmlld1BhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VycmVudFByZXZpZXdQYWdlKGspe3RoaXMuI3Q9a30jYT0oaWwodGhpcyx1KSxpbCh0aGlzLGIsMCkpO2dldCBwYWdlQ291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGFnZUNvdW50KGspe3RoaXMuI2E9a30jcz0oaWwodGhpcyx2KSxpbCh0aGlzLG0sITEpKTtnZXQgcmVuZGVyZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVuZGVyZWQoayl7dGhpcy4jcz1rfSNpPShpbCh0aGlzLGYpLGlsKHRoaXMsTSwhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzSG92ZXJpbmcoayl7dGhpcy4jaT1rfSNyPShpbCh0aGlzLHopLGlsKHRoaXMsQywhMCkpO2dldCBpc0E0Rm9ybWF0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlzQTRGb3JtYXQoayl7dGhpcy4jcj1rfSNvPShpbCh0aGlzLF8pLGlsKHRoaXMsJCwwKSk7Z2V0IGZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI299c2V0IGZpbGVTaXplKGspe3RoaXMuI289a31yZW5kZXJQYWdlc1Rhc2s9KGlsKHRoaXMsRSksbnVsbCk7cmVuZGVyUGFnZXNRdWV1ZWQ9ITE7cGRmRG9jdW1lbnQ7Y2FudmFzZXM9W107cmVzaXplT2JzZXJ2ZXI7c3RhY2tFbGVtZW50PW51bGw7bG9hZGVkUGRmVXJsPW51bGw7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1zdGFjayAke3RoaXMuaXNBNEZvcm1hdD8iIjoibm9uLWE0In0iPgogICAgICAgIDxjYW52YXMKICAgICAgICAgIGNsYXNzPSJwcmV2aWV3LWNhbnZhcyIKICAgICAgICAgIGRhdGEtcGFnZT0iJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0iCiAgICAgICAgPjwvY2FudmFzPgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RXllIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlZpZXcgUERGPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5wYWdlQ291bnQmJiF0aGlzLmxhYmVsPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5wYWdlQ291bnQ+MSYmdGhpcy5pc0hvdmVyaW5nP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfS8ke3RoaXMucGFnZUNvdW50fTwvc3Bhbj5gOnRoaXMucGFnZUNvdW50PjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5wYWdlQ291bnR9IHBnPC9zcGFuPmA6IiJ9CiAgICAgICAgJHt0aGlzLmZpbGVTaXplPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7aGthKHRoaXMuZmlsZVNpemUpfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3BkZlVybDp0aGlzLnBkZlVybCxwYWdlQ291bnQ6dGhpcy5wYWdlQ291bnR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZlVybCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITB9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSE9PTEmJih0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX1vblRpbGVNb3VzZU1vdmUoayl7aWYoIXRoaXMuaXNIb3ZlcmluZ3x8dGhpcy5wYWdlQ291bnQ8PTEpcmV0dXJuO2xldCBTPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksST1rLmNsaWVudFgtUy5sZWZ0LFA9Uy53aWR0aCxSPU1hdGgubWF4KDAsTWF0aC5taW4oMSxJL1ApKSxLPU1hdGguY2VpbChSKnRoaXMucGFnZUNvdW50KXx8MTtLIT09dGhpcy5jdXJyZW50UHJldmlld1BhZ2UmJih0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT1LLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSx0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhbnVwKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwfWFzeW5jIGxvYWRBbmRSZW5kZXJQcmV2aWV3KCl7aWYoISh0aGlzLnJlbmRlcmVkfHx0aGlzLmxvYWRpbmcpKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0hMSxuSi5tYXJrKGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTt0cnl7dGhpcy5wZGZEb2N1bWVudD1hd2FpdCBXdS5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLHRoaXMucGFnZUNvdW50PXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MTt0cnl7bGV0IFM9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREb3dubG9hZEluZm8oKTt0aGlzLmZpbGVTaXplPVMubGVuZ3RofWNhdGNoe310aGlzLmxvYWRlZFBkZlVybD10aGlzLnBkZlVybCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSxhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSx0aGlzLnJlbmRlcmVkPSEwO2xldCBrPW5KLm1lYXN1cmUoYHByZXZpZXctcmVuZGVyLSR7dGhpcy5wZGZVcmx9YCxgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7Y29uc29sZS5sb2coYFBERiB0aWxlIHJlbmRlcmVkIGluICR7a31tc2ApfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIFBERiB0aWxlOiIsayksdGhpcy5lcnJvcj0hMCx0aGlzLmxvYWRpbmc9ITF9fX1zY2hlZHVsZVJlbmRlclBhZ2VzKCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQ/dGhpcy5yZW5kZXJQYWdlc1Rhc2s/KHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITAsdGhpcy5yZW5kZXJQYWdlc1Rhc2spOih0aGlzLnJlbmRlclBhZ2VzVGFzaz0oYXN5bmMoKT0+e3RyeXthd2FpdCB0aGlzLnBlcmZvcm1SZW5kZXJQYWdlcygpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5kZXIgUERGIHRpbGUgcGFnZXM6IixrKX19KSgpLmZpbmFsbHkoKCk9Pnt0aGlzLnJlbmRlclBhZ2VzVGFzaz1udWxsLHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQmJih0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX0pLHRoaXMucmVuZGVyUGFnZXNUYXNrKTpQcm9taXNlLnJlc29sdmUoKX1hc3luYyBwZXJmb3JtUmVuZGVyUGFnZXMoKXtpZighdGhpcy5wZGZEb2N1bWVudClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoUD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFApKTtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LWNhbnZhcyIpO2lmKCFrKXJldHVybjt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLmNhY2hlRWxlbWVudHMoKTtsZXR7YXZhaWxhYmxlV2lkdGg6UyxhdmFpbGFibGVIZWlnaHQ6SX09dGhpcy5nZXRBdmFpbGFibGVTaXplKCk7dHJ5e2xldCBQPXRoaXMuY3VycmVudFByZXZpZXdQYWdlLFI9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFApLEs9Ui5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLFY9Sy5oZWlnaHQvSy53aWR0aCxXPTEuNDE0LG1lPS43MDcsQj0xLjI5NCxVPS43NzMsaGU9LjA1LEY9TWF0aC5hYnMoVi1XKTxXKmhlLGo9TWF0aC5hYnMoVi1tZSk8bWUqaGUsdWU9TWF0aC5hYnMoVi1CKTxCKmhlLGxlPU1hdGguYWJzKFYtVSk8VSpoZTt0aGlzLmlzQTRGb3JtYXQ9Rnx8anx8dWV8fGxlO2xldCBRPXRoaXMuaXNBNEZvcm1hdD9TOlMtMjQsaWU9dGhpcy5pc0E0Rm9ybWF0P0k6SS0yNCx0ZT1RPjA/US9LLndpZHRoOjAsZWU9aWU+MD9pZS9LLmhlaWdodDowLGtlPU1hdGgubWluKHRlfHwuNSxlZXx8dGV8fC41KSxYPU1hdGgubWluKGtlKjIsMyk7aWYoIU51bWJlci5pc0Zpbml0ZShYKXx8WDw9MCl7Ui5jbGVhbnVwPy4oKTtyZXR1cm59bGV0IFo9Ui5nZXRWaWV3cG9ydCh7c2NhbGU6WH0pLHllPW9KLmFjcXVpcmUoWi53aWR0aCxaLmhlaWdodCk7dGhpcy5jYW52YXNlcy5wdXNoKHllKTtsZXQgcT17Y2FudmFzQ29udGV4dDp5ZS5jdHgsdmlld3BvcnQ6Wn07YXdhaXQgUi5yZW5kZXIocSkucHJvbWlzZSxrLndpZHRoPVoud2lkdGgsay5oZWlnaHQ9Wi5oZWlnaHQ7bGV0IEE9USxzZT1aLmhlaWdodC9aLndpZHRoKlE7aWYoc2U+aWUpe2xldCBhZT1pZSxUZT1aLndpZHRoL1ouaGVpZ2h0KmllO2suc3R5bGUud2lkdGg9YCR7VGV9cHhgLGsuc3R5bGUuaGVpZ2h0PWAke2FlfXB4YH1lbHNlIGsuc3R5bGUud2lkdGg9YCR7QX1weGAsay5zdHlsZS5oZWlnaHQ9YCR7c2V9cHhgO2xldCBvZT1rLmdldENvbnRleHQoIjJkIik7b2UmJihvZS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsb2UuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixvZS5kcmF3SW1hZ2UoeWUuY2FudmFzLDAsMCkpLFIuY2xlYW51cCgpfWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byByZW5kZXIgcGFnZSAke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfTpgLFApfX1jbGVhckNhbnZhc2VzKCl7Zm9yKGxldCBrIG9mIHRoaXMuY2FudmFzZXMpb0oucmVsZWFzZShrKTt0aGlzLmNhbnZhc2VzPVtdfWNsZWFudXAoKXt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLnBkZkRvY3VtZW50JiYoV3UucmVsZWFzZURvY3VtZW50KHRoaXMubG9hZGVkUGRmVXJsPz90aGlzLnBkZlVybCksdGhpcy5wZGZEb2N1bWVudD1udWxsKSx0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMucGFnZUNvdW50PTAsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5pc0E0Rm9ybWF0PSEwLHRoaXMuc3RhY2tFbGVtZW50PW51bGwsdGhpcy5sb2FkZWRQZGZVcmw9bnVsbCx0aGlzLnJlbmRlcmVkPSExLHRoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSExfWFzeW5jIHVwZGF0ZWQoayl7aWYoc3VwZXIudXBkYXRlZChrKSxrLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgUz1rLmdldCgicGRmVXJsIik7UyYmV3UucmVsZWFzZURvY3VtZW50KFMpLHRoaXMuY2xlYW51cCgpLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MTtsZXQgST10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO0kudG9wPHdpbmRvdy5pbm5lckhlaWdodCYmSS5ib3R0b20+MCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfWsuaGFzKCJjdXJyZW50UHJldmlld1BhZ2UiKSYmdGhpcy5yZW5kZXJlZCYmYXdhaXQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9Z2V0Q29udGV4dE1lbnVJdGVtcygpe2xldCBrPVtdO3JldHVybiB0aGlzLmNsaWNrYWJsZSYmKGsucHVzaCh7bmFtZToiVmlldyBQREYiLGljb25OYW1lOiJsdWNpZGU6RXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGlsZS1jbGljayIse2RldGFpbDp0aGlzLmdldFRpbGVDbGlja0RldGFpbCgpLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJhY3Rpb24iKX0pLGsucHVzaCh7ZGl2aWRlcjohMH0pKSxrLnB1c2goe25hbWU6Ik9wZW4gUERGIGluIE5ldyBUYWIiLGljb25OYW1lOiJsdWNpZGU6RXh0ZXJuYWxMaW5rIixhY3Rpb246aShhc3luYygpPT57d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ29weSBQREYgVVJMIixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnBkZlVybCl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtTLmhyZWY9dGhpcy5wZGZVcmwsUy5kb3dubG9hZD10aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIixTLmNsaWNrKCl9LCJhY3Rpb24iKX0pLHRoaXMucGFnZUNvdW50PjAmJmsucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6YCR7dGhpcy5wYWdlQ291bnR9IHBhZ2Uke3RoaXMucGFnZUNvdW50PjE/InMiOiIifWAsaWNvbk5hbWU6Imx1Y2lkZTpGaWxlVGV4dCIsZGlzYWJsZWQ6ITAsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpfSksa31jYWNoZUVsZW1lbnRzKCl7dGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZkRvY3VtZW50JiYhdGhpcy5sb2FkaW5nJiZ0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKSl9Z2V0QXZhaWxhYmxlU2l6ZSgpe2lmKHRoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKSwhdGhpcy5zdGFja0VsZW1lbnQpcmV0dXJue2F2YWlsYWJsZVdpZHRoOjIwMCxhdmFpbGFibGVIZWlnaHQ6MjYwfTtsZXQgaz10aGlzLnN0YWNrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxTPU1hdGgubWF4KGsud2lkdGgsMCl8fDIwMCxJPU1hdGgubWF4KGsuaGVpZ2h0LDApfHwyNjA7cmV0dXJue2F2YWlsYWJsZVdpZHRoOlMsYXZhaWxhYmxlSGVpZ2h0Okl9fXN0YXRpY3tpbChhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIga2thPWcoKCk9Pnt3a2EoKX0pO3ZhciBTa2EsX2thPWcoKCk9PntwZSgpO1NrYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbWFnZSBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzgwMC82MDAiCiAgICAgICAgICBhbHQ9IkxhbmRzY2FwZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJsYW5kc2NhcGUuanBnIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiSW1hZ2UgY2xpY2tlZDoiLHMuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNDAwIgogICAgICAgICAgYWx0PSJTcXVhcmUgcGhvdG8iCiAgICAgICAgICBsYWJlbD0ic3F1YXJlLnBuZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8zMDAvOTAwIgogICAgICAgICAgYWx0PSJQb3J0cmFpdCBwaG90byIKICAgICAgICAgIGxhYmVsPSJwb3J0cmFpdC53ZWJwIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwIgogICAgICAgICAgYWx0PSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICAgIGFsdD0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0LmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEyMDAvODAwIgogICAgICAgICAgYWx0PSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVycm9yIFN0YXRlIChicm9rZW4gVVJMKTwvaDM+CiAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgIHNyYz0iaHR0cHM6Ly9pbnZhbGlkLXVybC10aGF0LWRvZXMtbm90LWV4aXN0LmV4YW1wbGUvaW1hZ2UucG5nIgogICAgICAgIGFsdD0iQnJva2VuIgogICAgICAgIGxhYmVsPSJicm9rZW4ucG5nIgogICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgVHgsQTIsUWVzLE1rYT1nKCgpPT57cGUoKTt3NCgpO0d1KCk7X2thKCk7VHg9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEEyPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxRZXM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRodW1ibmFpbC1pbWFnZSIpXSxlLHQ9W10sYSxyPUlsLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsSW1hZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxUeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic3JjImluIF8sImhhcyIpLGdldDppKF89Pl8uc3JjLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uc3JjPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxUeCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iYWx0ImluIF8sImhhcyIpLGdldDppKF89Pl8uYWx0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uYWx0PU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxUeCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTG9hZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbWFnZUxvYWRlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmltYWdlTG9hZGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaW1hZ2VMb2FkZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLFR4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaW1hZ2VXaWR0aCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmltYWdlV2lkdGgsImdldCIpLHNldDppKChfLE8pPT57Xy5pbWFnZVdpZHRoPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sbSxmKSxUeCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpbWFnZUhlaWdodCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmltYWdlSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uaW1hZ2VIZWlnaHQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLFR4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89U2thO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5zbCxKYAogICAgICAuaW1hZ2Utd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50KCNlOGU4ZTggMCUgMjUlLCB3aGl0ZSAwJSA1MCUpIDUwJSAvIDE2cHggMTZweCIsInJlcGVhdGluZy1jb25pYy1ncmFkaWVudChoc2woMjE1IDIwJSAxOCUpIDAlIDI1JSwgaHNsKDIxNSAyMCUgMTQlKSAwJSA1MCUpIDUwJSAvIDE2cHggMTZweCIpfTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZy5sb2FkZWQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZy5sb2FkaW5nIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgYF07I2U9QTIodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhDKXt0aGlzLiNlPUN9I3Q9KEEyKHRoaXMsbCksQTIodGhpcyxkLCIiKSk7Z2V0IGFsdCgpe3JldHVybiB0aGlzLiN0fXNldCBhbHQoQyl7dGhpcy4jdD1DfSNhPShBMih0aGlzLHUpLEEyKHRoaXMsYiwhMSkpO2dldCBpbWFnZUxvYWRlZCgpe3JldHVybiB0aGlzLiNhfXNldCBpbWFnZUxvYWRlZChDKXt0aGlzLiNhPUN9I3M9KEEyKHRoaXMsdiksQTIodGhpcyxtLDApKTtnZXQgaW1hZ2VXaWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCBpbWFnZVdpZHRoKEMpe3RoaXMuI3M9Q30jaT0oQTIodGhpcyxmKSxBMih0aGlzLE0sMCkpO2dldCBpbWFnZUhlaWdodCgpe3JldHVybiB0aGlzLiNpfXNldCBpbWFnZUhlaWdodChDKXt0aGlzLiNpPUN9aGFzU3RhcnRlZExvYWRpbmc9KEEyKHRoaXMseiksITEpO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5oYXNTdGFydGVkTG9hZGluZz93YAogICAgICAgICAgPGltZwogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmltYWdlTG9hZGVkPyJsb2FkZWQiOiJsb2FkaW5nIn0iCiAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgIEBsb2FkPSR7dGhpcy5oYW5kbGVJbWFnZUxvYWR9CiAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgIC8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5WaWV3IEltYWdlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmISh0aGlzLmltYWdlV2lkdGg+MCk/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmltYWdlV2lkdGg+MCYmdGhpcy5pbWFnZUhlaWdodD4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuaW1hZ2VXaWR0aH0gw5cgJHt0aGlzLmltYWdlSGVpZ2h0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxhbHQ6dGhpcy5hbHQsd2lkdGg6dGhpcy5pbWFnZVdpZHRoLGhlaWdodDp0aGlzLmltYWdlSGVpZ2h0fX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNTdGFydGVkTG9hZGluZyYmdGhpcy5zcmMmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMubG9hZGluZz0hMCx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9aGFuZGxlSW1hZ2VMb2FkKEMpe2xldCBfPUMudGFyZ2V0O3RoaXMuaW1hZ2VXaWR0aD1fLm5hdHVyYWxXaWR0aCx0aGlzLmltYWdlSGVpZ2h0PV8ubmF0dXJhbEhlaWdodCx0aGlzLmltYWdlTG9hZGVkPSEwLHRoaXMubG9hZGluZz0hMX1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5lcnJvcj0hMCx0aGlzLmxvYWRpbmc9ITF9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpLEMuaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmltYWdlTG9hZGVkPSExLHRoaXMubG9hZGluZz0hMCl9c3RhdGlje0EyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciB6a2E9ZygoKT0+e01rYSgpfSk7dmFyIENrYSxUa2E9ZygoKT0+e3BlKCk7Q2thPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkF1ZGlvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAxIgogICAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0xLm1wMyIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7cz0+Y29uc29sZS5sb2coIkF1ZGlvIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0yLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMy5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDMiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0zLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IlNtYWxsIgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wMyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBTNCxybCxKZXMsJGthPWcoKCk9PntwZSgpO3c0KCk7R3UoKTtUa2EoKTtTND1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0scmw9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEplcz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLWF1ZGlvIildLGUsdD1bXSxhLHI9SWwsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxBdWRpbyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6U3RyaW5nfSldLHA9W0woe3R5cGU6U3RyaW5nfSldLGM9W0woe3R5cGU6U3RyaW5nfSldLHg9W1koKV0seT1bWSgpXSxOPVtZKCldLE89W1koKV0sUzQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNyYyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNyYywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnNyYz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksUzQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGl0bGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50aXRsZSwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRpdGxlPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sZCx1KSxTNCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFydGlzdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYXJ0aXN0ImluIFMsImhhcyIpLGdldDppKFM9PlMuYXJ0aXN0LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuYXJ0aXN0PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxTNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJkdXJhdGlvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZHVyYXRpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxtLGYpLFM0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1EYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ3YXZlZm9ybURhdGEiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy53YXZlZm9ybURhdGEsImdldCIpLHNldDppKChTLEkpPT57Uy53YXZlZm9ybURhdGE9SX0sInNldCIpfSxtZXRhZGF0YTprfSxNLHopLFM0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1SZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4id2F2ZWZvcm1SZWFkeSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLndhdmVmb3JtUmVhZHksImdldCIpLHNldDppKChTLEkpPT57Uy53YXZlZm9ybVJlYWR5PUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxTNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJldmlld1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImlzUHJldmlld1BsYXlpbmciaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc1ByZXZpZXdQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuaXNQcmV2aWV3UGxheWluZz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksUzQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1Da2E7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLnNsLEpgCiAgICAgIC5hdWRpby1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDI1MCA0MCUgOTYlKSwgaHNsKDI4MCAzMCUgOTQlKSkiLCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDMwJSAxNiUpLCBoc2woMjgwIDI1JSAxNCUpKSIpfTsKICAgICAgfQoKICAgICAgLm11c2ljLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgNjAlIDY1JSkiLCJoc2woMjUwIDYwJSA3MCUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLmF1ZGlvLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgMjAlIDM1JSkiLCJoc2woMjUwIDIwJSA4MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmF1ZGlvLWFydGlzdCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUwIDE1JSA1MCUpIiwiaHNsKDI1MCAxNSUgNjUlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IC0xMnB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDE4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICB9CgogICAgICAucGxheS1jaXJjbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CiAgICBgXTsjZT1ybCh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKGspe3RoaXMuI2U9a30jdD0ocmwodGhpcyxsKSxybCh0aGlzLGQsIiIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGl0bGUoayl7dGhpcy4jdD1rfSNhPShybCh0aGlzLHUpLHJsKHRoaXMsYiwiIikpO2dldCBhcnRpc3QoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXJ0aXN0KGspe3RoaXMuI2E9a30jcz0ocmwodGhpcyx2KSxybCh0aGlzLG0sMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBkdXJhdGlvbihrKXt0aGlzLiNzPWt9I2k9KHJsKHRoaXMsZikscmwodGhpcyxNLFtdKSk7Z2V0IHdhdmVmb3JtRGF0YSgpe3JldHVybiB0aGlzLiNpfXNldCB3YXZlZm9ybURhdGEoayl7dGhpcy4jaT1rfSNyPShybCh0aGlzLHopLHJsKHRoaXMsQywhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHdhdmVmb3JtUmVhZHkoayl7dGhpcy4jcj1rfSNvPShybCh0aGlzLF8pLHJsKHRoaXMsJCwhMSkpO2dldCBpc1ByZXZpZXdQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUHJldmlld1BsYXlpbmcoayl7dGhpcy4jbz1rfWF1ZGlvRWxlbWVudD0ocmwodGhpcyxFKSxudWxsKTtwcmV2aWV3VGltZW91dD1udWxsO2hhc0xvYWRlZFdhdmVmb3JtPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImF1ZGlvLWNvbnRlbnQiPgogICAgICAgIDxkZWVzLWljb24gY2xhc3M9Im11c2ljLWljb24iIGljb249Imx1Y2lkZTpNdXNpYyI+PC9kZWVzLWljb24+CgogICAgICAgICR7dGhpcy50aXRsZT93YDxkaXYgY2xhc3M9ImF1ZGlvLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+YDoiIn0KICAgICAgICAke3RoaXMuYXJ0aXN0P3dgPGRpdiBjbGFzcz0iYXVkaW8tYXJ0aXN0Ij4ke3RoaXMuYXJ0aXN0fTwvZGl2PmA6IiJ9CgogICAgICAgICR7dGhpcy53YXZlZm9ybVJlYWR5P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiPgogICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYXktY2lyY2xlIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVhZHBob25lcyI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5QbGF5IEF1ZGlvPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuZHVyYXRpb24/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyx0aXRsZTp0aGlzLnRpdGxlLGFydGlzdDp0aGlzLmFydGlzdCxkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNMb2FkZWRXYXZlZm9ybSYmdGhpcy5zcmMmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMubG9hZEF1ZGlvTWV0YSgpKX1hc3luYyBsb2FkQXVkaW9NZXRhKCl7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgaz1uZXcgQXVkaW87ay5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixrLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoUyxJKT0+e2suYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1rLmR1cmF0aW9uLFMoKX0se29uY2U6ITB9KSxrLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+SShuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGF1ZGlvIikpLHtvbmNlOiEwfSksay5zcmM9dGhpcy5zcmN9KSxhd2FpdCB0aGlzLmxvYWRXYXZlZm9ybSgpLHRoaXMubG9hZGluZz0hMX1jYXRjaHt0aGlzLmxvYWRpbmc9ITF9fWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXtsZXQgUz1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksST1uZXcgQXVkaW9Db250ZXh0LFI9KGF3YWl0IEkuZGVjb2RlQXVkaW9EYXRhKFMpKS5nZXRDaGFubmVsRGF0YSgwKSxLPTgwLFY9TWF0aC5mbG9vcihSLmxlbmd0aC9LKSxXPVtdO2ZvcihsZXQgQj0wO0I8SztCKyspe2xldCBVPTA7Zm9yKGxldCBoZT0wO2hlPFY7aGUrKylVKz1NYXRoLmFicyhSW0IqVitoZV0pO1cucHVzaChVL1YpfWxldCBtZT1NYXRoLm1heCguLi5XKTt0aGlzLndhdmVmb3JtRGF0YT1XLm1hcChCPT5tZT4wP0IvbWU6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLGF3YWl0IEkuY2xvc2UoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIik7aWYoIWspcmV0dXJuO2xldCBTPWsucGFyZW50RWxlbWVudCxJPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLFA9Uy5jbGllbnRXaWR0aCxSPVMuY2xpZW50SGVpZ2h0O2sud2lkdGg9UCpJLGsuaGVpZ2h0PVIqSTtsZXQgSz1rLmdldENvbnRleHQoIjJkIik7aWYoIUspcmV0dXJuO0suc2NhbGUoSSxJKSxLLmNsZWFyUmVjdCgwLDAsUCxSKTtsZXQgVj10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoVj09PTApcmV0dXJuO2xldCBXPVAvVixCPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iaHNsKDI1MCA1MCUgNjAlKSI6ImhzbCgyNTAgNTAlIDcwJSkiO0suZmlsbFN0eWxlPUI7Zm9yKGxldCBVPTA7VTxWO1UrKyl7bGV0IGhlPXRoaXMud2F2ZWZvcm1EYXRhW1VdLEY9TWF0aC5tYXgoMixoZSooUi00KSksaj1VKlcsdWU9KFItRikvMjtLLmZpbGxSZWN0KGorLjUsdWUsVy0xLEYpfX1hc3luYyB1cGRhdGVkKGspe3N1cGVyLnVwZGF0ZWQoayksay5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpLGsuaGFzKCJ3YXZlZm9ybVJlYWR5IikmJnRoaXMud2F2ZWZvcm1SZWFkeSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucHJldmlld1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnByZXZpZXdUaW1lb3V0KSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpfWZvcm1hdFRpbWUoayl7aWYoIWlzRmluaXRlKGspfHxrPDApcmV0dXJuIjA6MDAiO2xldCBTPU1hdGguZmxvb3Ioay82MCksST1NYXRoLmZsb29yKGslNjApO3JldHVybmAke1N9OiR7SS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3tybChhLHQpfX07cmV0dXJuIEg9YX0pKCl9KTt2YXIgRGthPWcoKCk9Pnska2EoKX0pO3ZhciBMa2EsRWthPWcoKCk9PntwZSgpO0xrYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5WaWRlbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImJ1bm55Lm1wNCIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7cz0+Y29uc29sZS5sb2coIlZpZGVvIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92aWUubXA0IgogICAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzMwMCIKICAgICAgICAgIGxhYmVsPSJtb3ZpZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYW5vdGhlci12aWRlby5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+V2l0aCBQb3N0ZXIgSW1hZ2U8L2gzPgogICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICBsYWJlbD0icG9zdGVyLXZpZGVvLm1wNCIKICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyICR4LE4yLGV0cyxQa2E9ZygoKT0+e3BlKCk7dzQoKTtHdSgpO0VrYSgpOyR4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxOMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sZXRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aHVtYm5haWwtdmlkZW8iKV0sZSx0PVtdLGEscj1JbCxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbFZpZGVvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bWSgpXSx4PVtZKCldLHk9W1koKV0sJHgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InNyYyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNyYywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnNyYz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksJHgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBvc3RlciJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnBvc3RlciwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnBvc3Rlcj1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksJHgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iZHVyYXRpb24iaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmR1cmF0aW9uPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSwkeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbENhcHR1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ0aHVtYm5haWxDYXB0dXJlZCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnRodW1ibmFpbENhcHR1cmVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18udGh1bWJuYWlsQ2FwdHVyZWQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLCR4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iaXNIb3ZlcmluZyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmlzSG92ZXJpbmcsImdldCIpLHNldDppKChfLE8pPT57Xy5pc0hvdmVyaW5nPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSwkeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPUxrYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uc2wsSmAKICAgICAgLnZpZGVvLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwOwogICAgICB9CgogICAgICAudmlkZW8td3JhcHBlciB2aWRlbyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudmlkZW8td3JhcHBlciBjYW52YXMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnBvc3Rlci1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgoKICAgICAgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wbGF5LW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52aWRlby1ob3Zlci1wcmV2aWV3IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcuYWN0aXZlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTsjZT1OMih0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEMpe3RoaXMuI2U9Q30jdD0oTjIodGhpcyxsKSxOMih0aGlzLGQsIiIpKTtnZXQgcG9zdGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc3RlcihDKXt0aGlzLiN0PUN9I2E9KE4yKHRoaXMsdSksTjIodGhpcyxiLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHVyYXRpb24oQyl7dGhpcy4jYT1DfSNzPShOMih0aGlzLHYpLE4yKHRoaXMsbSwhMSkpO2dldCB0aHVtYm5haWxDYXB0dXJlZCgpe3JldHVybiB0aGlzLiNzfXNldCB0aHVtYm5haWxDYXB0dXJlZChDKXt0aGlzLiNzPUN9I2k9KE4yKHRoaXMsZiksTjIodGhpcyxNLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyhDKXt0aGlzLiNpPUN9dGh1bWJuYWlsQ2FudmFzPShOMih0aGlzLHopLG51bGwpO2hvdmVyVmlkZW89bnVsbDtoYXNTdGFydGVkTG9hZGluZz0hMTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWRlby13cmFwcGVyIj4KICAgICAgICAke3RoaXMucG9zdGVyP3dgCiAgICAgICAgICA8aW1nIGNsYXNzPSJwb3N0ZXItaW1hZ2UiIHNyYz0iJHt0aGlzLnBvc3Rlcn0iIGFsdD0iIiAvPgogICAgICAgIGA6dGhpcy50aHVtYm5haWxDYXB0dXJlZD93YAogICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICBgOndgCiAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiAjMDAwOyI+PC9kaXY+CiAgICAgICAgYH0KCiAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICA8dmlkZW8KICAgICAgICAgICAgY2xhc3M9InZpZGVvLWhvdmVyLXByZXZpZXcgJHt0aGlzLmlzSG92ZXJpbmc/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAgIG11dGVkCiAgICAgICAgICAgIHBsYXlzaW5saW5lCiAgICAgICAgICAgIEBsb2FkZWRkYXRhPSR7dGhpcy5oYW5kbGVIb3ZlclZpZGVvTG9hZGVkfQogICAgICAgICAgPjwvdmlkZW8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuaXNIb3ZlcmluZz8iIjp3YAogICAgICAgIDxkaXYgY2xhc3M9InBsYXktb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgYH0KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5QbGF5IFZpZGVvPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuZHVyYXRpb24/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxwb3N0ZXI6dGhpcy5wb3N0ZXIsZHVyYXRpb246dGhpcy5kdXJhdGlvbn19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmNhcHR1cmVGaXJzdEZyYW1lKCkpfWFzeW5jIGNhcHR1cmVGaXJzdEZyYW1lKCl7aWYodGhpcy5wb3N0ZXIpe3RoaXMubG9hZER1cmF0aW9uKCk7cmV0dXJufXRoaXMubG9hZGluZz0hMDt0cnl7bGV0IEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtDLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLEMubXV0ZWQ9ITAsQy5wcmVsb2FkPSJtZXRhZGF0YSIsYXdhaXQgbmV3IFByb21pc2UoKF8sTyk9PntDLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1DLmR1cmF0aW9uLEMuY3VycmVudFRpbWU9LjEsQy5hZGRFdmVudExpc3RlbmVyKCJzZWVrZWQiLCgpPT57bGV0ICQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7JC53aWR0aD1DLnZpZGVvV2lkdGgsJC5oZWlnaHQ9Qy52aWRlb0hlaWdodDtsZXQgRT0kLmdldENvbnRleHQoIjJkIik7RSYmKEUuZHJhd0ltYWdlKEMsMCwwKSx0aGlzLnRodW1ibmFpbENhbnZhcz0kLHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITApLEMuc3JjPSIiLEMubG9hZCgpLF8oKX0se29uY2U6ITB9KX0se29uY2U6ITB9KSxDLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+TyhuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIHZpZGVvIikpLHtvbmNlOiEwfSksQy5zcmM9dGhpcy5zcmN9KSx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNvcHlUaHVtYm5haWxUb0NhbnZhcygpfWNhdGNoe3RoaXMubG9hZGluZz0hMSx0aGlzLmxvYWREdXJhdGlvbigpfX1sb2FkRHVyYXRpb24oKXtsZXQgQz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO0MucHJlbG9hZD0ibWV0YWRhdGEiLEMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1DLmR1cmF0aW9uLEMuc3JjPSIiLEMubG9hZCgpfSksQy5zcmM9dGhpcy5zcmN9Y29weVRodW1ibmFpbFRvQ2FudmFzKCl7aWYoIXRoaXMudGh1bWJuYWlsQ2FudmFzKXJldHVybjtsZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby13cmFwcGVyIGNhbnZhcyIpO2lmKCFDKXJldHVybjtDLndpZHRoPXRoaXMudGh1bWJuYWlsQ2FudmFzLndpZHRoLEMuaGVpZ2h0PXRoaXMudGh1bWJuYWlsQ2FudmFzLmhlaWdodDtsZXQgXz1DLmdldENvbnRleHQoIjJkIik7XyYmXy5kcmF3SW1hZ2UodGhpcy50aHVtYm5haWxDYW52YXMsMCwwKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ob3ZlclZpZGVvPW51bGx9aGFuZGxlSG92ZXJWaWRlb0xvYWRlZChDKXt0aGlzLmhvdmVyVmlkZW89Qy50YXJnZXQsdGhpcy5ob3ZlclZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+e30pfWFzeW5jIHVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSxDLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy50aHVtYm5haWxDYXB0dXJlZD0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKSxDLmhhcygidGh1bWJuYWlsQ2FwdHVyZWQiKSYmdGhpcy50aHVtYm5haWxDYXB0dXJlZCYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaG92ZXJWaWRlbyYmKHRoaXMuaG92ZXJWaWRlby5wYXVzZSgpLHRoaXMuaG92ZXJWaWRlby5zcmM9IiIsdGhpcy5ob3ZlclZpZGVvPW51bGwpLHRoaXMudGh1bWJuYWlsQ2FudmFzPW51bGx9Zm9ybWF0VGltZShDKXtpZighaXNGaW5pdGUoQyl8fEM8MClyZXR1cm4iMDowMCI7bGV0IF89TWF0aC5mbG9vcihDLzYwKSxPPU1hdGguZmxvb3IoQyU2MCk7cmV0dXJuYCR7X306JHtPLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje04yKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBJa2E9ZygoKT0+e1BrYSgpfSk7dmFyIEFrYSxOa2E9ZygoKT0+e3BlKCk7QWthPWkoKCk9PntsZXQgcz1gaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdCc7CgpleHBvcnQgY2xhc3MgTXlDb21wb25lbnQgewogIHByaXZhdGUgaXRlbXM6IHN0cmluZ1tdID0gW107CgogIHJlbmRlcigpIHsKICAgIHJldHVybiBodG1sXGAKICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICBcJHt0aGlzLml0ZW1zLm1hcChpdGVtID0+IGh0bWxcYAogICAgICAgICAgPHNwYW4+XCR7aXRlbX08L3NwYW4+CiAgICAgICAgXGApfQogICAgICA8L2Rpdj4KICAgIFxgOwogIH0KfWAsZT1gTWVldGluZyBOb3RlcyAtIFE0IFBsYW5uaW5nCkRhdGU6IEphbnVhcnkgMTUsIDIwMjYKQXR0ZW5kZWVzOiBBbGljZSwgQm9iLCBDaGFybGllCgpLZXkgRGVjaXNpb25zOgoxLiBMYXVuY2ggbmV3IGZlYXR1cmUgYnkgTWFyY2gKMi4gSGlyZSAyIG1vcmUgZW5naW5lZXJzCjMuIE1pZ3JhdGUgdG8gbmV3IENJL0NEIHBpcGVsaW5lCjQuIFVwZGF0ZSBkZXNpZ24gc3lzdGVtIHRvIHYzCgpBY3Rpb24gSXRlbXM6Ci0gQWxpY2U6IERyYWZ0IFBSRCBieSBuZXh0IHdlZWsKLSBCb2I6IFNldCB1cCBpbnRlcnZpZXcgcGlwZWxpbmUKLSBDaGFybGllOiBFdmFsdWF0ZSBKZW5raW5zIHZzIEdpdEh1YiBBY3Rpb25zYDtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAudGlsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPk5vdGUgVGlsZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJjb21wb25lbnQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7c30KICAgICAgICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgICAgICAgIGxhYmVsPSJjb21wb25lbnQudHMiCiAgICAgICAgICAgIEB0aWxlLWNsaWNrPSR7YT0+Y29uc29sZS5sb2coIk5vdGUgY2xpY2tlZDoiLGEuZGV0YWlsKX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9Ik1lZXRpbmcgTm90ZXMiCiAgICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgICAgbGFiZWw9Im1lZXRpbmctbm90ZXMudHh0IgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0icGFja2FnZS5qc29uIgogICAgICAgICAgICAuY29udGVudD0ke2B7CiAgIm5hbWUiOiAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIiwKICAidmVyc2lvbiI6ICIzLjM4LjAiLAogICJkZXNjcmlwdGlvbiI6ICJEZXNpZ24gY29tcG9uZW50IGNhdGFsb2ciLAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IjogIl4yLjAuMCIsCiAgICAibGl0IjogIl4zLjEuMCIKICB9LAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQiLAogICAgInRlc3QiOiAidHN0ZXN0IgogIH0KfWB9CiAgICAgICAgICAgIGxhbmd1YWdlPSJqc29uIgogICAgICAgICAgICBsYWJlbD0icGFja2FnZS5qc29uIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgdGl0bGU9InNtYWxsLnRzIgogICAgICAgICAgICAuY29udGVudD0ke3N9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9InNtYWxsLnRzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0iZGVmYXVsdC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtzfQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJkZWZhdWx0LnRzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgdGl0bGU9ImxhcmdlLnRzIgogICAgICAgICAgICAuY29udGVudD0ke3N9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImxhcmdlLnRzIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5XaXRob3V0IFRpdGxlPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgbGFiZWw9InVudGl0bGVkLnR4dCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgY0osS3UsdHRzLFJrYT1nKCgpPT57cGUoKTt3NCgpO0d1KCk7TmthKCk7Y0o9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LEt1PWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSx0dHM9KCgpPT57bGV0IHM9W25lKCJkZWVzLXRodW1ibmFpbC1ub3RlIildLGUsdD1bXSxhLHI9SWwsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxOb3RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSxjSih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aXRsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpdGxlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oudGl0bGU9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxvLGwpLGNKKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29udGVudCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRlbnQsImdldCIpLHNldDppKCh6LE4pPT57ei5jb250ZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxjSih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJsYW5ndWFnZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubGFuZ3VhZ2U9Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGNKKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNIb3ZlcmluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzSG92ZXJpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5pc0hvdmVyaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxjSihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPUFrYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uc2wsSmAKICAgICAgLm5vdGUtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDIwJSAyMCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAubm90ZS1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTAlIDQwJSkiLCJoc2woMjE1IDEwJSAzNSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdHJhbnNwYXJlbnQsCiAgICAgICAgICAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCg2MCA1JSA5NiUpIil9CiAgICAgICAgKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm5vdGUtbGluZXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgd2lkdGg6IDM0cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA4NSUpIiwiaHNsKDAgNTAlIDgwJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICB9CgogICAgICAubGluZS1udW1iZXIgewogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4OyAvKiBtYXRjaGVzIDEwcHggKiAxLjUgbGluZS1oZWlnaHQgKi8KICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTAlIDc1JSkiLCJoc2woMjE1IDEwJSA3MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsKICAgICAgfQoKICAgIGBdOyNlPUt1KHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKE0pe3RoaXMuI2U9TX0jdD0oS3UodGhpcyxsKSxLdSh0aGlzLGQsIiIpKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBjb250ZW50KE0pe3RoaXMuI3Q9TX0jYT0oS3UodGhpcyx1KSxLdSh0aGlzLGIsIiIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbGFuZ3VhZ2UoTSl7dGhpcy4jYT1NfSNzPShLdSh0aGlzLHYpLEt1KHRoaXMsbSwhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzSG92ZXJpbmcoTSl7dGhpcy4jcz1NfW5vdGVCb2R5RWxlbWVudD0oS3UodGhpcyxmKSxudWxsKTtyZW5kZXJUaWxlQ29udGVudCgpe2xldCBNPXRoaXMuY29udGVudC5zcGxpdChgCmApO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJub3RlLWNvbnRlbnQiPgogICAgICAgICR7dGhpcy50aXRsZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLWJvZHkiPgogICAgICAgICAgPHByZSBjbGFzcz0ibm90ZS10ZXh0Ij4ke00uam9pbihgCmApfTwvcHJlPgogICAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6d2A8ZGl2IGNsYXNzPSJub3RlLWZhZGUiPjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVRleHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+T3BlbiBOb3RlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtsZXQgTT10aGlzLmNvbnRlbnQuc3BsaXQoYApgKTtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMubGFuZ3VhZ2UmJiFNLmxlbmd0aD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMubGFuZ3VhZ2U/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5sYW5ndWFnZS50b1VwcGVyQ2FzZSgpfTwvc3Bhbj5gOiIifQogICAgICAgICR7dGhpcy5pc0hvdmVyaW5nJiZNLmxlbmd0aD4xMj93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+TGluZSAke3RoaXMuZ2V0VmlzaWJsZUxpbmVSYW5nZShNLmxlbmd0aCl9PC9zcGFuPmA6d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7TS5sZW5ndGh9IGxpbmVzPC9zcGFuPmB9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57dGl0bGU6dGhpcy50aXRsZSxjb250ZW50OnRoaXMuY29udGVudCxsYW5ndWFnZTp0aGlzLmxhbmd1YWdlfX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwLHRoaXMubm90ZUJvZHlFbGVtZW50fHwodGhpcy5ub3RlQm9keUVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubm90ZS1ib2R5IikpfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ub3RlQm9keUVsZW1lbnQmJih0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9MCl9b25UaWxlTW91c2VNb3ZlKE0pe2lmKCF0aGlzLmlzSG92ZXJpbmd8fCF0aGlzLm5vdGVCb2R5RWxlbWVudHx8dGhpcy5jb250ZW50LnNwbGl0KGAKYCkubGVuZ3RoPD0xMilyZXR1cm47bGV0IE49dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxDPU0uY2xpZW50WC1OLmxlZnQsXz1NYXRoLm1heCgwLE1hdGgubWluKDEsQy9OLndpZHRoKSksTz10aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5ub3RlQm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcD1fKk99Z2V0VmlzaWJsZUxpbmVSYW5nZShNKXtpZighdGhpcy5ub3RlQm9keUVsZW1lbnQpcmV0dXJuYDFcdTIwMTMxMiBvZiAke019YDtsZXQgej0xNSxOPU1hdGguZmxvb3IodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wL3opKzEsQz1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodC96KSxfPU1hdGgubWluKE4rQy0xLE0pO3JldHVybmAke059XHUyMDEzJHtffSBvZiAke019YH1zdGF0aWN7S3UoYSx0KX19O3JldHVybiB5PWF9KSgpfSk7dmFyIE9rYT1nKCgpPT57UmthKCl9KTt2YXIgRmthLEJrYT1nKCgpPT57cGUoKTtGa2E9aSgoKT0+e2xldCBzPVt7dHlwZToiaW1hZ2UiLG5hbWU6InN1bnNldC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTEifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im1vdW50YWluLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MiJ9LHt0eXBlOiJpbWFnZSIsbmFtZToib2NlYW4uanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0zIn0se3R5cGU6ImltYWdlIixuYW1lOiJmb3Jlc3QuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT00In0se3R5cGU6ImltYWdlIixuYW1lOiJjaXR5LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NSJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZGVzZXJ0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NiJ9XTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAudGlsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkZvbGRlciBUaWxlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJQaG90b3MiCiAgICAgICAgICAgIC5pdGVtcz0ke3N9CiAgICAgICAgICAgIGxhYmVsPSI2IHBob3RvcyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHtuPT5jb25zb2xlLmxvZygiRm9sZGVyIGNsaWNrZWQ6IixuLmRldGFpbCl9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJteS1wcm9qZWN0IgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6Im5vdGUiLG5hbWU6IlJFQURNRS5tZCJ9LHt0eXBlOiJub3RlIixuYW1lOiJwYWNrYWdlLmpzb24ifSx7dHlwZToiZm9sZGVyIixuYW1lOiJzcmMifSx7dHlwZToiZm9sZGVyIixuYW1lOiJ0ZXN0In0se3R5cGU6Im5vdGUiLG5hbWU6InRzY29uZmlnLmpzb24ifSx7dHlwZToicGRmIixuYW1lOiJkb2NzLnBkZiJ9LHt0eXBlOiJpbWFnZSIsbmFtZToibG9nby5wbmciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMC8xMDA/cmFuZG9tPTEwIn1dfQogICAgICAgICAgICBsYWJlbD0iUHJvamVjdCBmaWxlcyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9Ik1lZGlhIEFzc2V0cyIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJ2aWRlbyIsbmFtZToiaW50cm8ubXA0In0se3R5cGU6ImF1ZGlvIixuYW1lOiJiYWNrZ3JvdW5kLm1wMyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToidGh1bWJuYWlsLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MjAifSx7dHlwZToicGRmIixuYW1lOiJzdG9yeWJvYXJkLnBkZiJ9XX0KICAgICAgICAgICAgbGFiZWw9Ik1peGVkIG1lZGlhIgogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkVkZ2UgQ2FzZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iRW1wdHkgRm9sZGVyIgogICAgICAgICAgICAuaXRlbXM9JHtbXX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IlNpbmdsZSBJdGVtIgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6InBkZiIsbmFtZToicmVwb3J0LnBkZiJ9XX0KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICBuYW1lPSJTbWFsbCIKICAgICAgICAgICAgLml0ZW1zPSR7c30KICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IkRlZmF1bHQiCiAgICAgICAgICAgIC5pdGVtcz0ke3N9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgbmFtZT0iTGFyZ2UiCiAgICAgICAgICAgIC5pdGVtcz0ke3N9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0sImRlbW8iKX0pO3ZhciBNbHQsZEosSGthLGF0cyxxa2E9ZygoKT0+e3BlKCk7dzQoKTtHdSgpO0JrYSgpO01sdD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sZEo9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LEhrYT17cGRmOiJsdWNpZGU6RmlsZVRleHQiLGltYWdlOiJsdWNpZGU6SW1hZ2UiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLG5vdGU6Imx1Y2lkZTpGaWxlQ29kZSIsZm9sZGVyOiJsdWNpZGU6Rm9sZGVyIix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LGF0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtdGh1bWJuYWlsLWZvbGRlciIpXSxlLHQ9W10sYSxyPUlsLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsRm9sZGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7YXR0cmlidXRlOiExfSldLE1sdCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+Im5hbWUiaW4gdiwiaGFzIiksZ2V0Omkodj0+di5uYW1lLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubmFtZT14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksTWx0KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkodj0+Iml0ZW1zImluIHYsImhhcyIpLGdldDppKHY9PnYuaXRlbXMsImdldCIpLHNldDppKCh2LHgpPT57di5pdGVtcz14fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsdSksTWx0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCksYz1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89RmthO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5zbCxKYAogICAgICAuZm9sZGVyLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDAgMzAlIDk3JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZvbGRlci1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDAgODAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5mb2xkZXItbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSAyMCUpIiwiaHNsKDIxNSAxNiUgODAlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnByZXZpZXctZ3JpZCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxNHB4IDE0cHg7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSA5NCUpIiwiaHNsKDIxNSAyMCUgMTglKSIpfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA2MCUpIiwiaHNsKDIxNSAxNiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbC1lbXB0eSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTUlIDk2JSkiLCJoc2woMjE1IDIwJSAxNiUpIil9OwogICAgICB9CgogICAgYF07I2U9ZEoodGhpcyxvLCIiKTtnZXQgbmFtZSgpe3JldHVybiB0aGlzLiNlfXNldCBuYW1lKGIpe3RoaXMuI2U9Yn0jdD0oZEoodGhpcyxsKSxkSih0aGlzLGQsW10pKTtnZXQgaXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXRlbXMoYil7dGhpcy4jdD1ifXJlbmRlclRpbGVDb250ZW50KCl7bGV0IGI9dGhpcy5pdGVtcy5zbGljZSgwLDQpLHY9NC1iLmxlbmd0aDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1oZWFkZXIiPgogICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZm9sZGVyLWljb24iIGljb249Imx1Y2lkZTpGb2xkZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLW5hbWUiPiR7dGhpcy5uYW1lfHwiVW50aXRsZWQgRm9sZGVyIn08L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1ncmlkIj4KICAgICAgICAgICR7Yi5tYXAoeD0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jZWxsIj4KICAgICAgICAgICAgICAke3gudGh1bWJuYWlsU3JjP3dgCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iJHt4LnRodW1ibmFpbFNyY30iIGFsdD0iJHt4Lm5hbWV9IiAvPgogICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iJHtIa2FbeC50eXBlXXx8SGthLnVua25vd259Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtBcnJheS5mcm9tKHtsZW5ndGg6dn0pLm1hcCgoKT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jZWxsIGdyaWQtY2VsbC1lbXB0eSI+PC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZvbGRlck9wZW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+T3BlbiBGb2xkZXI8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLmxhYmVsJiYhdGhpcy5pdGVtcy5sZW5ndGg/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuaXRlbXMubGVuZ3RofSBpdGVtJHt0aGlzLml0ZW1zLmxlbmd0aCE9PTE/InMiOiIifTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntuYW1lOnRoaXMubmFtZSxpdGVtQ291bnQ6dGhpcy5pdGVtcy5sZW5ndGgsaXRlbXM6dGhpcy5pdGVtc319Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGRKKHRoaXMsdSl9c3RhdGlje2RKKGEsdCl9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBqa2E9ZygoKT0+e3FrYSgpfSk7dmFyIFZrYT1nKCgpPT57WHdhKCk7ZWthKCk7c2thKCk7cGthKCk7ZmthKCk7bWthKCk7Z2thKCk7a2thKCk7emthKCk7RGthKCk7SWthKCk7T2thKCk7amthKCl9KTt2YXIgVWthPWcoKCk9PntmcigpfSk7dmFyIFdrYT1nKCgpPT57UHUoKX0pO3ZhciBHa2EsS2thPWcoKCk9PntwZSgpO0drYT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAucmVmMSB7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJyZWYxIj48L2Rpdj4KICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2AKICAgICAgKipUaGlzIGlzIGEgbG9uZ2VyIG1hcmtkb3duIHRleHQgdGhhdCAgY2FuIGJlIHVzZWQgdGhlIHdyaXRlKiogIAogICAgICBhIGxvbmdlciBkZXNjcmlwdGlvbiBhYm91dCB3aGF0cyBnb2luZyBvbiB0aGUgYXBwICAKICAKICAgICAgKipUaGlzIGlzIGEgc3ViaGVhZGVyKioKICAgICAgYW5kIGFub3RoZXIgdGV4dAogICAgCiAgICBgfT48L2RlZXMtc3BlZWNoYnViYmxlPgogIGAsImRlbW9GdW5jIil9KTt2YXIgRHgsUjIsc3RzLFlrYT1nKCgpPT57dzIoKTt2bygpO0trYSgpO3BlKCk7djIoKTtodCgpO0R4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxSMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sc3RzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zcGVlY2hidWJibGUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NwZWVjaGJ1YmJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sYz1bTCh7dHlwZTpCb29sZWFufSldLHg9W0woe3R5cGU6Qm9vbGVhbn0pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxEeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZmZlZEVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InJlZmZlZEVsZW1lbnQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5yZWZmZWRFbGVtZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucmVmZmVkRWxlbWVudD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksRHgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJ0ZXh0ImluIF8sImhhcyIpLGdldDppKF89Pl8udGV4dCwiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnRleHQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxkLHUpLER4KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4id2F2ZSJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLndhdmUsImdldCIpLHNldDppKChfLE8pPT57Xy53YXZlPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sYix2KSxEeCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hbmlmZXN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+Im1hbmlmZXN0ZWQiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5tYW5pZmVzdGVkLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ubWFuaWZlc3RlZD1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksRHgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InN0YXR1cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnN0YXR1cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLnN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LE0seiksRHgobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCx0KSxOPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1Ha2E7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coQyxfKXtsZXQgTz1hd2FpdCBSby5jcmVhdGVBbmRTaG93KHtibHVyOiExfSksJD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXNwZWVjaGJ1YmJsZSIpO3JldHVybiAkLndpbmRvd0xheWVyPU8sJC5yZWZmZWRFbGVtZW50PUMsJC50ZXh0PV8sJC5tYW5pZmVzdGVkPSEwLE8uYXBwZW5kQ2hpbGQoJCksTy5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixPLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLndpbmRvd092ZXJsYXkiKS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIiwkfSNlPVIyKHRoaXMsbyx2b2lkIDApO2dldCByZWZmZWRFbGVtZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZmZlZEVsZW1lbnQoQyl7dGhpcy4jZT1DfSN0PShSMih0aGlzLGwpLFIyKHRoaXMsZCx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KEMpe3RoaXMuI3Q9Q30jYT0oUjIodGhpcyx1KSxSMih0aGlzLGIsITEpKTtnZXQgd2F2ZSgpe3JldHVybiB0aGlzLiNhfXNldCB3YXZlKEMpe3RoaXMuI2E9Q30jcz0oUjIodGhpcyx2KSxSMih0aGlzLG0sITEpKTtnZXQgbWFuaWZlc3RlZCgpe3JldHVybiB0aGlzLiNzfXNldCBtYW5pZmVzdGVkKEMpe3RoaXMuI3M9Q30jaT0oUjIodGhpcyxmKSxSMih0aGlzLE0sIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0YXR1cyhDKXt0aGlzLiNpPUN9d2luZG93TGF5ZXI9UjIodGhpcyx6KTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yczsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB9CgogICAgICAuYXJyb3cgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmYiLCIjMzMzIil9OwogICAgICAgIGhlaWdodDogMTVweDsKICAgICAgICB3aWR0aDogMTVweDsKICAgICAgICBsZWZ0OiAycHg7CiAgICAgICAgdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnNwZWVjaGJ1YmJsZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmYiLCIjMzMzIil9OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWluLXdpZHRoOiAyNDBweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogOHB4OwogICAgICB9CgogICAgICAud2F2ZSB7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHdhdmUtYW5pbWF0aW9uOyAvKiBSZWZlcnMgdG8gdGhlIG5hbWUgb2YgeW91ciBAa2V5ZnJhbWVzIGVsZW1lbnQgYmVsb3cgKi8KICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDIuNXM7IC8qIENoYW5nZSB0byBzcGVlZCB1cCBvciBzbG93IGRvd24gKi8KICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgLyogTmV2ZXIgc3RvcCB3YXZpbmcgOikgKi8KICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA3MCUgNzAlOyAvKiBQaXZvdCBhcm91bmQgdGhlIGJvdHRvbS1sZWZ0IHBhbG0gKi8KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgd2F2ZS1hbmltYXRpb24gewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgICAgIH0KICAgICAgICAxMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOwogICAgICAgIH0gLyogVGhlIGZvbGxvd2luZyBmaXZlIHZhbHVlcyBjYW4gYmUgcGxheWVkIHdpdGggdG8gbWFrZSB0aGUgd2F2aW5nIG1vcmUgb3IgbGVzcyBleHRyZW1lICovCiAgICAgICAgMjAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC04ZGVnKTsKICAgICAgICB9CiAgICAgICAgMzAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9CiAgICAgICAgNDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00ZGVnKTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEwZGVnKTsKICAgICAgICB9CiAgICAgICAgNjAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgICAgIH0gLyogUmVzZXQgZm9yIHRoZSBsYXN0IGhhbGYgdG8gcGF1c2UgKi8KICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tYW5pZmVzdGVkP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGVlY2hidWJibGUiPgogICAgICAgICAgICAgICAgJHt0aGlzLndhdmU/d2A8c3BhbiBjbGFzcz0id2F2ZSI+8J+Rizwvc3Bhbj5gOndgYH0KICAgICAgICAgICAgICAgICR7VmkucmVzb2x2ZSh0aGlzLmdldEh0bWwoKSl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YGB9CiAgICBgfWFzeW5jIGhhbmRsZUNsaWNrKCl7Y29uc29sZS5sb2coInNwZWVjaGJ1YmJsZSBnb3QgY2xpY2tlZC4iKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLnJlZmZlZEVsZW1lbnR8fCh0aGlzLnJlZmZlZEVsZW1lbnQ9dGhpcy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSx0aGlzLm1hbmlmZXN0ZWQpYXdhaXQgdGhpcy51cGRhdGVQb3NpdGlvbigpLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLnN0eWxlLm9wYWNpdHk9IjEiO2Vsc2V7bGV0IEM7dGhpcy5yZWZmZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGFzeW5jKCk9PntDPWF3YWl0IE4uY3JlYXRlQW5kU2hvdyh0aGlzLnJlZmZlZEVsZW1lbnQsdGhpcy50ZXh0KX0pLHRoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKT0+e0MuZGVzdHJveSgpfSl9fWFzeW5jIHVwZGF0ZVBvc2l0aW9uKCl7bGV0IEM9dGhpcy5yZWZmZWRFbGVtZW50LF89Qy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS50b3A9YCR7Xy50b3AtMTN9cHhgLHRoaXMuc3R5bGUubGVmdD1gJHtfLmxlZnQrQy5jbGllbnRXaWR0aCs0fXB4YCxfLnJpZ2h0PjI1MCYmKHRoaXMuc3R5bGUud2lkdGg9IjI1MHB4Iil9YXN5bmMgZ2V0SHRtbCgpe2lmKCF0aGlzLnRleHQpcmV0dXJuIiI7bGV0IEM9bHQucGx1Z2lucy5zbWFydHN0cmluZy5ub3JtYWxpemUuc3RhbmRhcmQodGhpcy50ZXh0KSxfPWF3YWl0IGx0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duLmVhc3lNYXJrZG93blRvSHRtbChDKTtyZXR1cm4gVjMoXyl9YXN5bmMgc2hvdygpe31hc3luYyBkZXN0cm95KCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje1IyKGEsdCl9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBaa2E9ZygoKT0+e1lrYSgpfSk7dmFyIFhrYT1nKCgpPT57djIoKX0pO3ZhciBRa2E9ZygoKT0+e1VrYSgpO1drYSgpO1prYSgpO1hrYSgpfSk7dmFyIEprYT1nKCgpPT57fSk7dmFyIGVTYT1nKCgpPT57SmthKCl9KTt2YXIgTHgsdFNhPWcoKCk9PntFcnQoKTtMeD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIldlYkNvbnRhaW5lckVudmlyb25tZW50Iil9c3RhdGljIHNoYXJlZENvbnRhaW5lcj1udWxsO3N0YXRpYyBib290UHJvbWlzZT1udWxsO19yZWFkeT0hMTt0eXBlPSJ3ZWJjb250YWluZXIiO2dldCByZWFkeSgpe3JldHVybiB0aGlzLl9yZWFkeX1nZXQgY29udGFpbmVyKCl7cmV0dXJuIHMuc2hhcmVkQ29udGFpbmVyfWFzeW5jIGluaXQoKXtpZighKHRoaXMuX3JlYWR5JiZzLnNoYXJlZENvbnRhaW5lcikpe2lmKHMuYm9vdFByb21pc2Upe2F3YWl0IHMuYm9vdFByb21pc2UsdGhpcy5fcmVhZHk9ITA7cmV0dXJufWlmKHMuc2hhcmVkQ29udGFpbmVyKXt0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYodHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPiJ1Iil0aHJvdyBuZXcgRXJyb3IoYFdlYkNvbnRhaW5lciByZXF1aXJlcyBTaGFyZWRBcnJheUJ1ZmZlciB3aGljaCBpcyBub3QgYXZhaWxhYmxlLiBFbnN1cmUgeW91ciBzZXJ2ZXIgc2VuZHMgdGhlc2UgaGVhZGVyczoKICBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeTogc2FtZS1vcmlnaW4KICBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5OiByZXF1aXJlLWNvcnBgKTtzLmJvb3RQcm9taXNlPUNnLmJvb3QoKTt0cnl7cy5zaGFyZWRDb250YWluZXI9YXdhaXQgcy5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMH1jYXRjaChlKXt0aHJvdyBzLmJvb3RQcm9taXNlPW51bGwsZX19fWFzeW5jIGRlc3Ryb3koKXtzLnNoYXJlZENvbnRhaW5lciYmKHMuc2hhcmVkQ29udGFpbmVyLnRlYXJkb3duKCkscy5zaGFyZWRDb250YWluZXI9bnVsbCxzLmJvb3RQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITEpfWFzeW5jIHJlYWRGaWxlKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSwidXRmLTgiKX1hc3luYyB3cml0ZUZpbGUoZSx0KXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMud3JpdGVGaWxlKGUsdCwidXRmLTgiKX1hc3luYyByZWFkRGlyKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksKGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSx7d2l0aEZpbGVUeXBlczohMH0pKS5tYXAoYT0+KHt0eXBlOmEuaXNEaXJlY3RvcnkoKT8iZGlyZWN0b3J5IjoiZmlsZSIsbmFtZTphLm5hbWUscGF0aDplPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gfSkpfWFzeW5jIG1rZGlyKGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ta2RpcihlLHtyZWN1cnNpdmU6ITB9KX1hc3luYyBybShlLHQpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ybShlLHtyZWN1cnNpdmU6dD8ucmVjdXJzaXZlPz8hMX0pfWFzeW5jIGV4aXN0cyhlKXt0aGlzLmVuc3VyZVJlYWR5KCk7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZShlKSwhMH1jYXRjaHt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSksITB9Y2F0Y2h7cmV0dXJuITF9fX13YXRjaChlLHQsYSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCByPXRoaXMuY29udGFpbmVyLmZzLndhdGNoKGUse3JlY3Vyc2l2ZTphPy5yZWN1cnNpdmU/PyExfSx0KTtyZXR1cm57c3RvcDppKCgpPT5yLmNsb3NlKCksInN0b3AiKX19YXN5bmMgc3Bhd24oZSx0PVtdKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IGE9YXdhaXQgdGhpcy5jb250YWluZXIuc3Bhd24oZSx0KTtyZXR1cm57b3V0cHV0OmEub3V0cHV0LGlucHV0OmEuaW5wdXQsZXhpdDphLmV4aXQsa2lsbDppKCgpPT5hLmtpbGwoKSwia2lsbCIpfX1hc3luYyBtb3VudChlKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIubW91bnQoZSl9Z2V0Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSx0aGlzLmNvbnRhaW5lcn1lbnN1cmVSZWFkeSgpe2lmKCF0aGlzLl9yZWFkeXx8IXRoaXMuY29udGFpbmVyKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4iKX19fSk7dmFyIGFTYT1nKCgpPT57dFNhKCl9KTt2YXIgbDJlPWcoKCk9PntlU2EoKTthU2EoKX0pO3ZhciBzU2E9ZygoKT0+e0dvdCgpfSk7dmFyIGMyZSx6bHQ9ZygoKT0+e2MyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUZXJtaW5hbFRhYk1hbmFnZXIiKX10YWJzPW5ldyBNYXA7dGFiQ291bnRlcj0wO3h0ZXJtQnVuZGxlPW51bGw7eHRlcm1GaXRBZGRvbkJ1bmRsZT1udWxsO3NldFh0ZXJtTW9kdWxlcyhlLHQpe3RoaXMueHRlcm1CdW5kbGU9ZSx0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGU9dH1nZW5lcmF0ZVRhYklkKCl7cmV0dXJuIHRoaXMudGFiQ291bnRlcisrLGB0ZXJtaW5hbC0ke3RoaXMudGFiQ291bnRlcn0tJHtEYXRlLm5vdygpfWB9Z2V0RGVmYXVsdExhYmVsKGUsdCl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJiYXNoIjtjYXNlInNjcmlwdCI6cmV0dXJuIHQ/LnNjcmlwdE5hbWV8fCJzY3JpcHQiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiB0Py5wYWNrYWdlTmFtZT9gdXBkYXRlICR7dC5wYWNrYWdlTmFtZX1gOiJ1cGRhdGUiO2Nhc2UiY3VzdG9tIjpyZXR1cm4gdD8uY29tbWFuZHx8InByb2Nlc3MiO2RlZmF1bHQ6cmV0dXJuInRlcm1pbmFsIn19Z2V0RGVmYXVsdEljb24oZSl7c3dpdGNoKGUpe2Nhc2Uic2hlbGwiOnJldHVybiJsdWNpZGU6dGVybWluYWwiO2Nhc2Uic2NyaXB0IjpyZXR1cm4ibHVjaWRlOnBsYXkiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiJsdWNpZGU6cGFja2FnZUNoZWNrIjtjYXNlImN1c3RvbSI6cmV0dXJuImx1Y2lkZTpjb2RlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6dGVybWluYWwifX1nZXRUZXJtaW5hbFRoZW1lKGUpe3JldHVybiBlP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uOiJyZ2JhKDAsIDAsIDAsIDAuMikiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjZmZmZmZmIixjdXJzb3I6IiNmZmZmZmYiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1jcmVhdGVUYWIoZSx0KXtpZighdGhpcy54dGVybUJ1bmRsZXx8IXRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZSl0aHJvdyBuZXcgRXJyb3IoIlRlcm1pbmFsVGFiTWFuYWdlcjogeHRlcm0gbW9kdWxlcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgc2V0WHRlcm1Nb2R1bGVzKCkgZmlyc3QuIik7bGV0IGE9dGhpcy5nZW5lcmF0ZVRhYklkKCkscj1lLnR5cGUsbj1uZXcgdGhpcy54dGVybUJ1bmRsZS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMCx0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUodCksZm9udEZhbWlseTonTWVubG8sIE1vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250U2l6ZToxMyxsaW5lSGVpZ2h0OjEuMn0pLG89bmV3IHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZS5GaXRBZGRvbjtuLmxvYWRBZGRvbihvKTtsZXQgbD17aWQ6YSxsYWJlbDplLmxhYmVsfHx0aGlzLmdldERlZmF1bHRMYWJlbChyLGUubWV0YWRhdGEpLGljb25OYW1lOmUuaWNvbk5hbWV8fHRoaXMuZ2V0RGVmYXVsdEljb24ociksdHlwZTpyLGNsb3NlYWJsZTplLmNsb3NlYWJsZT8/ciE9PSJzaGVsbCIsdGVybWluYWw6bixmaXRBZGRvbjpvLHByb2Nlc3M6bnVsbCxpbnB1dFdyaXRlcjpudWxsLGV4aXRlZDohMSxleGl0Q29kZTpudWxsLGNyZWF0ZWRBdDpEYXRlLm5vdygpLG1ldGFkYXRhOmUubWV0YWRhdGF9O3JldHVybiB0aGlzLnRhYnMuc2V0KGEsbCksbH1nZXRUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5nZXQoZSl9Z2V0QWxsVGFicygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudGFicy52YWx1ZXMoKSkuc29ydCgoZSx0KT0+ZS5jcmVhdGVkQXQtdC5jcmVhdGVkQXQpfWdldFRhYkNvdW50KCl7cmV0dXJuIHRoaXMudGFicy5zaXplfWhhc1RhYihlKXtyZXR1cm4gdGhpcy50YWJzLmhhcyhlKX1jbG9zZVRhYihlKXtsZXQgdD10aGlzLnRhYnMuZ2V0KGUpO2lmKCF0KXJldHVybiExO2lmKHQucHJvY2VzcyYmIXQuZXhpdGVkKXRyeXt0LnByb2Nlc3Mua2lsbCgpfWNhdGNoKGEpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGtpbGwgcHJvY2VzczoiLGEpfXRyeXt0LnRlcm1pbmFsLmRpc3Bvc2UoKX1jYXRjaChhKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBkaXNwb3NlIHRlcm1pbmFsOiIsYSl9cmV0dXJuIHRoaXMudGFicy5kZWxldGUoZSksITB9cmVuYW1lVGFiKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTtyZXR1cm4gYT8oYS5sYWJlbD10LCEwKTohMX1tYXJrVGFiRXhpdGVkKGUsdCl7bGV0IGE9dGhpcy50YWJzLmdldChlKTthJiYoYS5leGl0ZWQ9ITAsYS5leGl0Q29kZT10KX1zZXRUYWJQcm9jZXNzKGUsdCxhKXtsZXQgcj10aGlzLnRhYnMuZ2V0KGUpO3ImJihyLnByb2Nlc3M9dCxyLmlucHV0V3JpdGVyPWEpfXVwZGF0ZUFsbFRoZW1lcyhlKXtsZXQgdD10aGlzLmdldFRlcm1pbmFsVGhlbWUoZSk7Zm9yKGxldCBhIG9mIHRoaXMudGFicy52YWx1ZXMoKSlhLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dH1kaXNwb3NlQWxsKCl7Zm9yKGxldFtlXW9mIHRoaXMudGFicyl0aGlzLmNsb3NlVGFiKGUpO3RoaXMudGFicy5jbGVhcigpfX19KTt2YXIgclNhPXt9O3l0KHJTYSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOigpPT5pU2F9KTt2YXIgXzQsb2wsaVNhLHVKPWcoKCk9PntwZSgpO2t0KCk7aHQoKTtsMmUoKTtHYSgpO2EyZSgpO3psdCgpO091KCk7XzQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LG9sPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxpU2E9KCgpPT57bGV0IHM9W25lKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdLE8sJD1bXSxFPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKCldLGM9W0woKV0seD1bTCh7dHlwZTpOdW1iZXJ9KV0seT1bTCh7dHlwZTpCb29sZWFufSldLE49W1koKV0sTz1bWSgpXSxfNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuZXhlY3V0aW9uRW52aXJvbm1lbnQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLF80KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZXR1cENvbW1hbmQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZXR1cENvbW1hbmQsImdldCIpLHNldDppKChTLEkpPT57Uy5zZXR1cENvbW1hbmQ9SX0sInNldCIpfSxtZXRhZGF0YTprfSxkLHUpLF80KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW52aXJvbm1lbnRWYXJpYWJsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImVudmlyb25tZW50VmFyaWFibGVzImluIFMsImhhcyIpLGdldDppKFM9PlMuZW52aXJvbm1lbnRWYXJpYWJsZXMsImdldCIpLHNldDppKChTLEkpPT57Uy5lbnZpcm9ubWVudFZhcmlhYmxlcz1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsdiksXzQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJCYXJXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGFiQmFyV2lkdGgiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50YWJCYXJXaWR0aCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYkJhcldpZHRoPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxfNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dUYWJCYXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93VGFiQmFyLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc2hvd1RhYkJhcj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksXzQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0YWJzImluIFMsImhhcyIpLGdldDppKFM9PlMudGFicywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnRhYnM9SX0sInNldCIpfSxtZXRhZGF0YTprfSxDLF8pLF80KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlVGFiSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImFjdGl2ZVRhYklkImluIFMsImhhcyIpLGdldDppKFM9PlMuYWN0aXZlVGFiSWQsImdldCIpLHNldDppKChTLEkpPT57Uy5hY3RpdmVUYWJJZD1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LCQsRSksXzQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSxIPWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT57bGV0IGs9bmV3IEx4O3JldHVybiB3YDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHtrfT48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPmB9LCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtyZXNpemVPYnNlcnZlcjt0YWJNYW5hZ2VyOyNlPW9sKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoayl7dGhpcy4jZT1rfSN0PShvbCh0aGlzLGwpLG9sKHRoaXMsZCwiIikpO2dldCBzZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2V0dXBDb21tYW5kKGspe3RoaXMuI3Q9a30jYT0ob2wodGhpcyx1KSxvbCh0aGlzLGIse30pKTtnZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoayl7dGhpcy4jYT1rfSNzPShvbCh0aGlzLHYpLG9sKHRoaXMsbSwxNjApKTtnZXQgdGFiQmFyV2lkdGgoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFiQmFyV2lkdGgoayl7dGhpcy4jcz1rfSNpPShvbCh0aGlzLGYpLG9sKHRoaXMsTSwhMCkpO2dldCBzaG93VGFiQmFyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dUYWJCYXIoayl7dGhpcy4jaT1rfSNyPShvbCh0aGlzLHopLG9sKHRoaXMsQyxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRhYnMoayl7dGhpcy4jcj1rfSNvPShvbCh0aGlzLF8pLG9sKHRoaXMsJCxudWxsKSk7Z2V0IGFjdGl2ZVRhYklkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZVRhYklkKGspe3RoaXMuI289a310ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPShvbCh0aGlzLEUpLG51bGwpO2lzQnJpZ2h0PSExO3Rlcm1pbmFsQWN0aW9uYmFyPW51bGw7ZW52aXJvbm1lbnREZWZlcnJlZD1uZXcgdXQuc21hcnRwcm9taXNlLkRlZmVycmVkO2Vudmlyb25tZW50UHJvbWlzZT10aGlzLmVudmlyb25tZW50RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJNYW5hZ2VyPW5ldyBjMmUsdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmhhbmRsZVJlc2l6ZSgpfSl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgICNhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRlbnQgZGVlcy1hY3Rpb25iYXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUYWIgYmFyIG9uIHRoZSByaWdodCBzaWRlICovCiAgICAgIC50YWItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYi1iYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1iYXItdGl0bGUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnRhYi1iYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24gewogICAgICAgIHdpZHRoOiAyMnB4OwogICAgICAgIGhlaWdodDogMjJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbGlzdCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyNSUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTUlKSIsImhzbCgyMTAgMzAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDAlKSIsImhzbCgyMTAgMTAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmV4aXRlZCB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAudGFiLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWljb24ucnVubmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSA0MCUpIiwiaHNsKDE0MiA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1sYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMXB4IDVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDkwJSkiLCJoc2woMTQyIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDkzJSkiLCJoc2woMCAzMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA0NSUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuYWN0aXZlVGFiSWQ/dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgIDwhLS0gTWFpbiB0ZXJtaW5hbCBhcmVhIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRlbnQiPgogICAgICAgICAgJHtrP3dgCiAgICAgICAgICAgIDxkaXYgaWQ9ImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPk5vIHRlcm1pbmFsIG9wZW48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFZlcnRpY2FsIHRhYiBiYXIgb24gdGhlIHJpZ2h0IC0tPgogICAgICAgICR7dGhpcy5zaG93VGFiQmFyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYmFyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy50YWJCYXJXaWR0aH1weCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWJhci10aXRsZSI+VGVybWluYWxzPC9zcGFuPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYWN0aW9uIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUFkZFRhYn0gdGl0bGU9Ik5ldyBUZXJtaW5hbCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBsdXMifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChTPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtdGFiICR7Uy5pZD09PXRoaXMuYWN0aXZlVGFiSWQ/ImFjdGl2ZSI6IiJ9ICR7Uy5leGl0ZWQ/ImV4aXRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zd2l0Y2hUb1RhYihTLmlkKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7Uy5pY29uTmFtZX0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRhYi1pY29uICR7Uy5wcm9jZXNzJiYhUy5leGl0ZWQ/InJ1bm5pbmciOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWxhYmVsIj4ke1MubGFiZWx9PC9zcGFuPgogICAgICAgICAgICAgICAgICAke1MuZXhpdGVkP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV4aXQtYmFkZ2UgJHtTLmV4aXRDb2RlPT09MD8ic3VjY2VzcyI6ImVycm9yIn0iPgogICAgICAgICAgICAgICAgICAgICAgJHtTLmV4aXRDb2RlfQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgJHtTLmNsb3NlYWJsZT93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke0k9PnRoaXMuaGFuZGxlVGFiQ2xvc2UoSSxTLmlkKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IGs9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5pc0JyaWdodD1rLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4sdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPWsudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoUj0+e3RoaXMuaXNCcmlnaHQ9Uix0aGlzLnRhYk1hbmFnZXIudXBkYXRlQWxsVGhlbWVzKFIpfSk7bGV0IFM9YW8uZ2V0SW5zdGFuY2UoKSxbSSxQXT1hd2FpdCBQcm9taXNlLmFsbChbUy5sb2FkWHRlcm0oKSxTLmxvYWRYdGVybUZpdEFkZG9uKCldKTt0aGlzLnRhYk1hbmFnZXIuc2V0WHRlcm1Nb2R1bGVzKEksUCksYXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtrJiZ0aGlzLnJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShrKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy50YWJNYW5hZ2VyLmRpc3Bvc2VBbGwoKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGhhbmRsZUFkZFRhYigpe2F3YWl0IHRoaXMuY3JlYXRlU2hlbGxUYWIoKX1oYW5kbGVUYWJDbG9zZShrLFMpe2suc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbG9zZVRhYihTKX1zd2l0Y2hUb1RhYihrKXtpZihrPT09dGhpcy5hY3RpdmVUYWJJZClyZXR1cm47bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighUylyZXR1cm47bGV0IEk9dGhpcy5hY3RpdmVUYWJJZDt0aGlzLmFjdGl2ZVRhYklkJiZ0aGlzLmRldGFjaEFjdGl2ZVRlcm1pbmFsKCksdGhpcy5hY3RpdmVUYWJJZD1rLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuYXR0YWNoVGVybWluYWxUb0NvbnRhaW5lcihTKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc3dpdGNoZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6ayxwcmV2aW91c1RhYklkOkl9fSkpfSl9ZGV0YWNoQWN0aXZlVGVybWluYWwoKXtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIik7ayYmKGsuaW5uZXJIVE1MPSIiKX1hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKGspe2xldCBTPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtTJiYodGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFMpLFMuaW5uZXJIVE1MPSIiLGsudGVybWluYWwub3BlbihTKSxrLmZpdEFkZG9uLmZpdCgpLGsudGVybWluYWwuZm9jdXMoKSl9aGFuZGxlUmVzaXplKCl7aWYodGhpcy5hY3RpdmVUYWJJZCl7bGV0IGs9dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTtrJiZrLmZpdEFkZG9uLmZpdCgpfX1hc3luYyBzcGF3blByb2Nlc3NGb3JUYWIoayxTLEk9W10pe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXtrLnRlcm1pbmFsLndyaXRlKCJceDFCWzMxbSIpLGsudGVybWluYWwud3JpdGUoYFx1Mjc0QyBObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlLlxyCmApLGsudGVybWluYWwud3JpdGUoIlx4MUJbMG0iKTtyZXR1cm59dHJ5e3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fChrLnRlcm1pbmFsLndyaXRlKGBJbml0aWFsaXppbmcgZW52aXJvbm1lbnQuLi5ccgpgKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSk7bGV0IFA9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bihTLEkpO1Aub3V0cHV0LnBpcGVUbyhuZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOmkoSz0+e2sudGVybWluYWwud3JpdGUoSyl9LCJ3cml0ZSIpfSkpO2xldCBSPVAuaW5wdXQuZ2V0V3JpdGVyKCk7ay50ZXJtaW5hbC5vbkRhdGEoSz0+e1Iud3JpdGUoSyl9KSx0aGlzLnRhYk1hbmFnZXIuc2V0VGFiUHJvY2VzcyhrLmlkLFAsUiksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksUC5leGl0LnRoZW4oSz0+e3RoaXMuaGFuZGxlUHJvY2Vzc0V4aXQoay5pZCxLKX0pfWNhdGNoKFApe2sudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksay50ZXJtaW5hbC53cml0ZShgXHUyNzRDIEZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiAke1B9XHIKYCksay50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpLGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiIsUCl9fWhhbmRsZVByb2Nlc3NFeGl0KGssUyl7bGV0IEk9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighSSlyZXR1cm47dGhpcy50YWJNYW5hZ2VyLm1hcmtUYWJFeGl0ZWQoayxTKTtsZXQgUD1TPT09MD9gXHIKXHgxQlszMm1bUHJvY2VzcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XVx4MUJbMG1ccgpgOmBccgpceDFCWzMxbVtQcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJHtTfV1ceDFCWzBtXHIKYDtJLnRlcm1pbmFsLndyaXRlKFApLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInByb2Nlc3MtY29tcGxldGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6ayxleGl0Q29kZTpTfX0pKSxJLmNsb3NlYWJsZSYmdGhpcy5zaG93RXhpdGVkVGFiQWN0aW9uYmFyKGssSS5sYWJlbCxTKX1hc3luYyBzaG93RXhpdGVkVGFiQWN0aW9uYmFyKGssUyxJKXtsZXQgUD1JPT09MDsoYXdhaXQgdGhpcy5zaG93QWN0aW9uYmFyKHttZXNzYWdlOlA/YCIke1N9IiBjb21wbGV0ZWQuIENsb3NlIHRhYj9gOmAiJHtTfSIgZXhpdGVkIChjb2RlICR7SX0pLiBDbG9zZSB0YWI/YCx0eXBlOlA/ImluZm8iOiJ3YXJuaW5nIixpY29uOlA/Imx1Y2lkZTpjaGVja0NpcmNsZSI6Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6ImNsb3NlIixsYWJlbDoiQ2xvc2UgVGFiIixwcmltYXJ5OiEwfSx7aWQ6ImtlZXAiLGxhYmVsOiJLZWVwIE9wZW4ifV0sdGltZW91dDp7ZHVyYXRpb246MWU0LGRlZmF1bHRBY3Rpb25JZDoiY2xvc2UifSxkaXNtaXNzaWJsZTohMH0pKS5hY3Rpb25JZD09PSJjbG9zZSImJnRoaXMuY2xvc2VUYWIoayl9YXN5bmMgY3JlYXRlU2hlbGxUYWIoayl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOmt8fGBiYXNoICR7dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCkrMX1gLGNsb3NlYWJsZTp0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT4wfSx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5zd2l0Y2hUb1RhYihTLmlkKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IHRoaXMuc3Bhd25Qcm9jZXNzRm9yVGFiKFMsImpzaCIpLHRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPT09MSYmdGhpcy5zZXR1cENvbW1hbmQmJihhd2FpdCB0aGlzLndhaXRGb3JQcm9tcHQoUy50ZXJtaW5hbCwifi8iKSxTLmlucHV0V3JpdGVyJiZTLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Uy5pZH19KSksUy5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKGspe2xldCBTPXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoayx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksay5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKFMuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsay5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihTLGsuY29tbWFuZCxrLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOlMuaWR9fSkpLFMuaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihrKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihrKT8odGhpcy5zd2l0Y2hUb1RhYihrKSwhMCk6ITF9Y2xvc2VUYWIoayl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtpZighU3x8IVMuY2xvc2VhYmxlKXJldHVybiExO2lmKGs9PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgST10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFA9SS5maW5kSW5kZXgoSz0+Sy5pZD09PWspLFI9SVtQKzFdfHxJW1AtMV07Uj90aGlzLnN3aXRjaFRvVGFiKFIuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKGspLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6a319KSksITB9d3JpdGVUb1RhYihrLFMpe2xldCBJPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoayk7cmV0dXJuIEk/KEkudGVybWluYWwud3JpdGUoUyksITApOiExfXNlbmRJbnB1dFRvVGFiKGssUyl7bGV0IEk9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihrKTtyZXR1cm4hSXx8IUkuaW5wdXRXcml0ZXI/ITE6KEkuaW5wdXRXcml0ZXIud3JpdGUoUyksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoayl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhrKX1hc3luYyB3YWl0Rm9yUHJvbXB0KGssUyl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgUD1pKCgpPT57bGV0IFI9ay5idWZmZXIuYWN0aXZlO2ZvcihsZXQgSz0wO0s8Ui5sZW5ndGg7SysrKXtsZXQgVj1SLmdldExpbmUoSyk7aWYoViYmVi50cmFuc2xhdGVUb1N0cmluZygpLmluY2x1ZGVzKFMpKXtzZXRUaW1lb3V0KCgpPT57SSgpfSwxMDApO3JldHVybn19c2V0VGltZW91dChQLDEwMCl9LCJjaGVja1Byb21wdCIpO1AoKX0pfWFzeW5jIHNldEVudmlyb25tZW50VmFyaWFibGVzKGspe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRocm93IG5ldyBFcnJvcigiTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IGF2YWlsYWJsZSIpO2xldCBTPSIiO2ZvcihsZXQgSSBpbiBrKVMrPWBleHBvcnQgJHtJfT0iJHtrW0ldfSIKYDthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgiL3NvdXJjZS5lbnYiLFMpfWdldEV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9c3RhdGlje29sKGEsdCl9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBDbHQsVGx0LG9TYSxuU2EsbFNhLGNTYSxkU2E9ZygoKT0+e3BlKCk7eXgoKTtvNCgpO0wxZSgpO1IxZSgpO04xZSgpO1dnKCk7SjFlKCk7Q2x0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxUbHQ9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LG9TYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtDbHQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CiAgICBgXTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoiZmFVc2VycyIsZGVzY3JpcHRpb246IisxNSUgZnJvbSBsYXN0IHdlZWsiLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJwYWdldmlld3MiLHRpdGxlOiJQYWdlIFZpZXdzIix2YWx1ZTo1NjcwMCx0eXBlOiJudW1iZXIiLGljb246ImZhRXllIixkZXNjcmlwdGlvbjoiNTYuN2sgdG90YWwgdmlld3MiLGNvbG9yOiIjM2I4MmY2In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZTo4OSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoiZmFTZXJ2ZXIiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjkwLGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UgVGltZSIsdmFsdWU6My4yLHVuaXQ6InMiLHR5cGU6Im51bWJlciIsaWNvbjoiZmFDbG9jayIsZGVzY3JpcHRpb246Ii0wLjVzIGltcHJvdmVtZW50Iixjb2xvcjoiI2Y1OWUwYiJ9LHtpZDoicmV2ZW51ZSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6NDg1MjAsdW5pdDoiJCIsdHlwZToidHJlbmQiLGljb246ImZhRG9sbGFyU2lnbiIsZGVzY3JpcHRpb246Iis4LjIlIGdyb3d0aCIsY29sb3I6IiMyMmM1NWUiLHRyZW5kRGF0YTpbMzVlMywzOGUzLDM3NTAwLDQxZTMsMzk4MDAsNDJlMyw0NDEwMCw0MzIwMCw0NTYwMCw0NzEwMCw0NjgwMCw0ODUyMF19LHtpZDoidHJhZmZpYyIsdGl0bGU6IlRyYWZmaWMgVHJlbmQiLHZhbHVlOjE2ODAsdHlwZToidHJlbmQiLGljb246ImZhQ2hhcnRMaW5lIixkZXNjcmlwdGlvbjoiTGFzdCA3IGRheXMiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzEyMDAsMTM1MCwxMTAwLDE0NTAsMTYwMCwxNTUwLDE2ODBdfV07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIHRvIHlvdXIgYXBwbGljYXRpb24gZGFzaGJvYXJkLiBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBtZXRyaWNzOjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke289Pntjb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixvLmRldGFpbCl9fQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgIDxoMiBzdHlsZT0ibWFyZ2luLXRvcDogNDBweDsiPlJlY2VudCBBY3Rpdml0eTwvaDI+CiAgICAgIDxwPkJlbG93IGlzIGEgbG9nIG9mIHJlY2VudCBzeXN0ZW0gZXZlbnRzIGFuZCB1c2VyIGFjdGl2aXR5IHRvIGRlbW9uc3RyYXRlIHNjcm9sbGFibGUgY29udGVudC48L3A+CgogICAgICAke1t7dGltZToiMiBtaW4gYWdvIixldmVudDoiVXNlciBqb2huQGV4YW1wbGUuY29tIGxvZ2dlZCBpbiBmcm9tIDE5Mi4xNjguMS40MiIsdHlwZToiaW5mbyJ9LHt0aW1lOiI1IG1pbiBhZ28iLGV2ZW50OiJEZXBsb3ltZW50IHYzLjUyLjEgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBvbiBwcm9kdWN0aW9uIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjEyIG1pbiBhZ28iLGV2ZW50OiJEYXRhYmFzZSBiYWNrdXAgZmluaXNoZWQgXHUyMDE0IDIuNCBHQiBjb21wcmVzc2VkIix0eXBlOiJpbmZvIn0se3RpbWU6IjE4IG1pbiBhZ28iLGV2ZW50OiJTU0wgY2VydGlmaWNhdGUgcmVuZXdlZCBmb3IgYXBpLmV4YW1wbGUuY29tIChleHBpcmVzIDIwMjctMDQtMDMpIix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjI1IG1pbiBhZ28iLGV2ZW50OiJNZW1vcnkgdXNhZ2Ugc3Bpa2Ugb24gd29ya2VyLTAzICg5MiUpIFx1MjAxNCBhdXRvLXNjYWxlZCB0byA0IGluc3RhbmNlcyIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIzMSBtaW4gYWdvIixldmVudDoiTmV3IHVzZXIgcmVnaXN0cmF0aW9uOiBzYXJhaEBjb21wYW55LmlvIix0eXBlOiJpbmZvIn0se3RpbWU6IjQ1IG1pbiBhZ28iLGV2ZW50OidTY2hlZHVsZWQgam9iICJjbGVhbnVwLXRlbXAtZmlsZXMiIGNvbXBsZXRlZCBcdTIwMTQgcmVtb3ZlZCAxLDI0NyBmaWxlcycsdHlwZToiaW5mbyJ9LHt0aW1lOiIxIGhvdXIgYWdvIixldmVudDoiQVBJIHJhdGUgbGltaXQgcmVhY2hlZCBmb3IgY2xpZW50IGFwcC1tb2JpbGUtaW9zICg0MjkgcmVzcG9uc2VzKSIsdHlwZToid2FybmluZyJ9LHt0aW1lOiIxLjUgaG91cnMgYWdvIixldmVudDoiQ0ROIGNhY2hlIHB1cmdlZCBmb3IgL2Fzc2V0cy8qIFx1MjAxNCAzNDAgb2JqZWN0cyBpbnZhbGlkYXRlZCIsdHlwZToiaW5mbyJ9LHt0aW1lOiIyIGhvdXJzIGFnbyIsZXZlbnQ6IkZhaWxlZCBsb2dpbiBhdHRlbXB0IGZvciBhZG1pbkBleGFtcGxlLmNvbSBmcm9tIDIwMy4wLjExMy41MCAoYmxvY2tlZCkiLHR5cGU6ImVycm9yIn0se3RpbWU6IjIuNSBob3VycyBhZ28iLGV2ZW50OiJXZWJob29rIGRlbGl2ZXJ5IHRvIGh0dHBzOi8vaG9va3Muc2xhY2suY29tIHN1Y2NlZWRlZCAoMjAwIE9LKSIsdHlwZToiaW5mbyJ9LHt0aW1lOiIzIGhvdXJzIGFnbyIsZXZlbnQ6J0Nyb24gam9iICJnZW5lcmF0ZS1yZXBvcnRzIiBzdGFydGVkIFx1MjAxNCBwcm9jZXNzaW5nIFExIDIwMjYgZGF0YScsdHlwZToiaW5mbyJ9LHt0aW1lOiIzLjUgaG91cnMgYWdvIixldmVudDoiTG9hZCBiYWxhbmNlciBoZWFsdGggY2hlY2s6IGFsbCA4IG5vZGVzIGhlYWx0aHkiLHR5cGU6InN1Y2Nlc3MifSx7dGltZToiNCBob3VycyBhZ28iLGV2ZW50OiJETlMgcHJvcGFnYXRpb24gY29tcGxldGUgZm9yIG5ldyBzdWJkb21haW4gc3RhZ2luZy5leGFtcGxlLmNvbSIsdHlwZToic3VjY2VzcyJ9XS5tYXAobz0+d2AKICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICI+CiAgICAgICAgICA8c3BhbiBzdHlsZT0iCiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1NSUpIiwiaHNsKDAgMCUgNDUlKSIpfTsKICAgICAgICAgICI+JHtvLnRpbWV9PC9zcGFuPgogICAgICAgICAgPHNwYW4gc3R5bGU9IgogICAgICAgICAgICBjb2xvcjogJHtvLnR5cGU9PT0iZXJyb3IiP2guYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSkiLCJoc2woMCA3MiUgNjUlKSIpOm8udHlwZT09PSJ3YXJuaW5nIj9oLmJkVGhlbWUoImhzbCgyNSA5NSUgNTAlKSIsImhzbCgyNSA5NSUgNjMlKSIpOm8udHlwZT09PSJzdWNjZXNzIj9oLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIik6aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICAgICI+JHtvLmV2ZW50fTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXN0YXRpY3tUbHQoYSx0KX19O3JldHVybiBuPWF9KSgpLG5TYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1hbmFseXRpY3MiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdBbmFseXRpY3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtDbHQobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPkFuYWx5dGljczwvaDE+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGFuYWx5dGljcyB2aWV3LiBZb3UgY2FuIGFkZCBjaGFydHMgYW5kIG1ldHJpY3MgaGVyZS48L3A+CiAgICBgfXN0YXRpY3tUbHQoYSx0KX19O3JldHVybiBuPWF9KSgpLGxTYT0oKCk9PntsZXQgcz1bbmUoImRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLHQ9W10sYSxyPXdlO3ZhciBuPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZW1vVmlld1NldHRpbmdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7Q2x0KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsdCksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMWExYTFhIil9OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+Q29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24gc2V0dGluZ3MgYmVsb3c6PC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBwTmFtZSIgbGFiZWw9IkFwcGxpY2F0aW9uIE5hbWUiIHZhbHVlPSJNeSBBcHAiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwaUVuZHBvaW50IiBsYWJlbD0iQVBJIEVuZHBvaW50IiB2YWx1ZT0iaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJlbnZpcm9ubWVudCIKICAgICAgICAgICAgbGFiZWw9IkVudmlyb25tZW50IgogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJEZXZlbG9wbWVudCIsa2V5OiJkZXYifSx7b3B0aW9uOiJTdGFnaW5nIixrZXk6InN0YWdpbmcifSx7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVBbmFseXRpY3MiIGxhYmVsPSJFbmFibGUgQW5hbHl0aWNzIiB2YWx1ZT0iZmFsc2UiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNhdmUgR2VuZXJhbCBTZXR0aW5nczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24iPgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD4KICAgICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0aGVtZSIKICAgICAgICAgICAgICBsYWJlbD0iVGhlbWUiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IixrZXk6ImxpZ2h0In0se29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn0se29wdGlvbjoiQXV0byIsa2V5OiJhdXRvIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkRhcmsiLGtleToiZGFyayJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0ibGFuZ3VhZ2UiCiAgICAgICAgICAgICAgbGFiZWw9Ikxhbmd1YWdlIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn0se29wdGlvbjoiR2VybWFuIixrZXk6ImRlIn0se29wdGlvbjoiU3BhbmlzaCIsa2V5OiJlcyJ9LHtvcHRpb246IkZyZW5jaCIsa2V5OiJmciJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iY29tcGFjdE1vZGUiIGxhYmVsPSJDb21wYWN0IE1vZGUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siUmVhbC10aW1lIiwiRGFpbHkgRGlnZXN0IiwiV2Vla2x5IFN1bW1hcnkiLCJOZXZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUmVhbC10aW1lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbEZyZXF1ZW5jeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InB1c2hOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIFB1c2ggTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0ic291bmRBbGVydHMiIGxhYmVsPSJQbGF5IFNvdW5kIGZvciBBbGVydHMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tUbHQoYSx0KX19O3JldHVybiBuPWF9KSgpLGNTYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICB0ZXJtaW5hbFNldHVwQ29tbWFuZD0iZWNobyAnV2VsY29tZSB0byB0aGUgdGVybWluYWwhJyIKICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7W3tpZDoidXBkYXRlIix0eXBlOiJpbmZvIixtZXNzYWdlOiJBIG5ldyB2ZXJzaW9uICh2My41MC4wKSBpcyBhdmFpbGFibGUgd2l0aCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcy4iLGRpc21pc3NpYmxlOiEwLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIlVwZGF0aW5nLi4uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJPcGVuaW5nIHJlbGVhc2Ugbm90ZXMuLi4iKSwiYWN0aW9uIil9XX0se2lkOiJtYWludGVuYW5jZSIsdHlwZToid2FybmluZyIsbWVzc2FnZToiU2NoZWR1bGVkIG1haW50ZW5hbmNlIHdpbmRvdzogQXByaWwgNSwgMjAyNiAwMjowMFx1MjAxMzA2OjAwIFVUQy4gU29tZSBzZXJ2aWNlcyBtYXkgYmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuIixkaXNtaXNzaWJsZTohMH0se2lkOiJjcml0aWNhbCIsdHlwZToiZXJyb3IiLG1lc3NhZ2U6IllvdXIgU1NMIGNlcnRpZmljYXRlIGV4cGlyZXMgaW4gMyBkYXlzLiBSZW5ldyBub3cgdG8gYXZvaWQgc2VydmljZSBkaXNydXB0aW9uLiIsZGlzbWlzc2libGU6ITEsYWN0aW9uczpbe25hbWU6IlJlbmV3IENlcnRpZmljYXRlIixpY29uTmFtZToibHVjaWRlOnNoaWVsZENoZWNrIixhY3Rpb246aSgoKT0+YWxlcnQoIlJlbmV3aW5nIGNlcnRpZmljYXRlLi4uIiksImFjdGlvbiIpfV19XX0KICAgICAgLnZpZXdUYWJzPSR7W3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsZWxlbWVudDpvU2F9LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixlbGVtZW50Om5TYSxzdWJWaWV3czpbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixlbGVtZW50Om5TYX0se25hbWU6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGVsZW1lbnQ6b1NhfV19LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsc3ViVmlld3M6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGVsZW1lbnQ6bFNhfSx7bmFtZToiQmlsbGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpjcmVkaXRDYXJkIixlbGVtZW50OmxTYX1dfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7cz0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIscy5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGw3LHBjLGl0cyx1U2E9ZygoKT0+e2RTYSgpO3BlKCk7R2EoKTtodCgpO2w3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxwYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0saXRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtYXBwZGFzaCIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdLE4sQz1bXSxfPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzU2ltcGxlQXBwRGFzaCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCAkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0scD1bTCh7dHlwZTpBcnJheX0pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOkFycmF5fSldLHk9W1koKV0sTj1bWSgpXSxsNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5uYW1lLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubmFtZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksbDcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmlld1RhYnMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52aWV3VGFicywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnZpZXdUYWJzPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxsNyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsU2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnRlcm1pbmFsU2V0dXBDb21tYW5kLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UudGVybWluYWxTZXR1cENvbW1hbmQ9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLGw3KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2xvYmFsTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imdsb2JhbE1lc3NhZ2VzImluIEUsImhhcyIpLGdldDppKEU9PkUuZ2xvYmFsTWVzc2FnZXMsImdldCIpLHNldDppKChFLEgpPT57RS5nbG9iYWxNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksbDcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkVmlldyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkVmlldywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLnNlbGVjdGVkVmlldz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksbDcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfYWN0aXZlTWVzc2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Il9hY3RpdmVNZXNzYWdlcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLl9hY3RpdmVNZXNzYWdlcywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLl9hY3RpdmVNZXNzYWdlcz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksbDcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1jU2E7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1wYyh0aGlzLG8sIkFwcGxpY2F0aW9uIERhc2hib2FyZCIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoJCl7dGhpcy4jZT0kfSN0PShwYyh0aGlzLGwpLHBjKHRoaXMsZCxbXSkpO2dldCB2aWV3VGFicygpe3JldHVybiB0aGlzLiN0fXNldCB2aWV3VGFicygkKXt0aGlzLiN0PSR9I2E9KHBjKHRoaXMsdSkscGModGhpcyxiLCdlY2hvICJUZXJtaW5hbCByZWFkeSInKSk7Z2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCQpe3RoaXMuI2E9JH0jcz0ocGModGhpcyx2KSxwYyh0aGlzLG0sW10pKTtnZXQgZ2xvYmFsTWVzc2FnZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZ2xvYmFsTWVzc2FnZXMoJCl7dGhpcy4jcz0kfSNpPShwYyh0aGlzLGYpLHBjKHRoaXMsTSx2b2lkIDApKTtnZXQgc2VsZWN0ZWRWaWV3KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkVmlldygkKXt0aGlzLiNpPSR9I3I9KHBjKHRoaXMseikscGModGhpcyxDLFtdKSk7Z2V0IF9hY3RpdmVNZXNzYWdlcygpe3JldHVybiB0aGlzLiNyfXNldCBfYWN0aXZlTWVzc2FnZXMoJCl7dGhpcy4jcj0kfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgbWluLWNvbnRlbnQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSIsIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYXBwTmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI2MjYyNiIsIiNlNWU1ZTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgc3BhbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIC5jaGV2cm9uIHsKICAgICAgICBmbGV4OiAwIDAgYXV0bzsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzOmhvdmVyIC5jaGV2cm9uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzLmdyb3VwQWN0aXZlIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjoKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93cyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLXRvcCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLWJvdHRvbSAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuc3ViVmlld3MuZXhwYW5kZWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3czo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy5leHBhbmRlZDo6YmVmb3JlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc3ViVmlld3MtaW5uZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc3ViIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIuc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTEycHg7CiAgICAgIH0KCiAgICAgIC5hcHBBY3Rpb25zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDYwJSAvIDAuMDgpIiwiaHNsKDAgODQlIDYwJSAvIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYXBwY29udGVudCB7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIGJvdHRvbTogMjRweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuYXBwY29udGVudDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gYm90dG9tLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC04cHg7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gdG9wLAogICAgICAgICAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgei1pbmRleDogMTE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwoKICAgICAgfQoKICAgICAgLmNvbnRyb2w6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuY29udHJvbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY29udHJvbC5zdGF0dXMtdGVybWluYWwgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogR2xvYmFsIE1lc3NhZ2UgQmFubmVycyAqLwogICAgICAubWVzc2FnZUJhbm5lckFyZWEgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlRG93biAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci5kaXNtaXNzaW5nIHsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlVXAgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGJhbm5lclNsaWRlRG93biB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgYmFubmVyU2xpZGVVcCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTUpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMTgpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3MgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGluZm8gKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NyUpIiwiaHNsKDIxMCA1MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgNzAlIDMwJSkiLCJoc2woMjEwIDcwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzAwODRmZjsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci1pbmZvIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDg0ZmY7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogc3VjY2VzcyAqLwogICAgICAubWVzc2FnZUJhbm5lci1zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTclKSIsImhzbCgxNDIgMzAlIDEwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDUwJSAyNSUpIiwiaHNsKDE0MiA1MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMyMmM1NWU7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItc3VjY2VzcyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IHdhcm5pbmcgKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MCUgOTclKSIsImhzbCgzOCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA2MCUgMjUlKSIsImhzbCgzOCA2MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmNTllMGI7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGVycm9yICovCiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDk3JSkiLCJoc2woMCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDYwJSAzMCUpIiwiaHNsKDAgNjAlIDgwJSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZWY0NDQ0OwogICAgICB9CiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB0b3A6IHZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHggLSB2YXIoLS1iYW5uZXItYXJlYS1oZWlnaHQsIDBweCkpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24td3JhcHBlciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmxheW91dEdyaWQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBOYW1lIj4ke3RoaXMubmFtZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TmF2aWdhdGlvbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicyI+CiAgICAgICAgICAgICAgJHt0aGlzLnZpZXdUYWJzLm1hcCgkPT57bGV0IEU9ISEkLnN1YlZpZXdzPy5sZW5ndGgsSD1FJiZ0aGlzLmlzR3JvdXBBY3RpdmUoJCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09JD8ic2VsZWN0ZWQiOiIifSAke0U/Imhhc1N1YnMiOiIifSAke0g/Imdyb3VwQWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubG9hZFZpZXcoJCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAkeyQuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7JC5pY29uTmFtZS5pbmNsdWRlcygiOiIpPyQuaWNvbk5hbWU6YGx1Y2lkZTokeyQuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpmaWxlIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHskLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICR7RT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgJHtFP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InN1YlZpZXdzICR7SD8iZXhwYW5kZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID9pbmVydD0keyFIfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YlZpZXdzLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgJHskLnN1YlZpZXdzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiBzdWIgJHt0aGlzLnNlbGVjdGVkVmlldz09PWs/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke1M9PntTLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubG9hZFZpZXcoayl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2suaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2suaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9rLmljb25OYW1lOmBsdWNpZGU6JHtrLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpkb3QifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7ay5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBBY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ291dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bG9nT3V0In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5fYWN0aXZlTWVzc2FnZXMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlQmFubmVyQXJlYSI+CiAgICAgICAgICAke3RoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcCgkPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2VCYW5uZXIgbWVzc2FnZUJhbm5lci0keyQudHlwZX0iCiAgICAgICAgICAgICAgZGF0YS1tZXNzYWdlLWlkPSIkeyQuaWR9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmdldE1lc3NhZ2VJY29uKCQpfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2VCYW5uZXItdGV4dCI+JHskLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICR7JC5hY3Rpb25zPy5sZW5ndGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7JC5hY3Rpb25zLm1hcChFPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9uIiBAY2xpY2s9JHsoKT0+RS5hY3Rpb24oKX0+CiAgICAgICAgICAgICAgICAgICAgICAke0UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke0UuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9FLmljb25OYW1lOmBsdWNpZGU6JHtFLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtFLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHskLmRpc21pc3NpYmxlIT09ITE/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItZGlzbWlzcyIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTWVzc2FnZSgkLmlkKX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp4In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBjb250ZW50Ij4KICAgICAgICAgIDwhLS0gQ29udGVudCBnb2VzIGhlcmUgLS0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy1jb25uZWN0ZWQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6d2lmaSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Q29ubmVjdGVkPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy10ZXJtaW5hbCIgQGNsaWNrPSR7dGhpcy5sYXVuY2hUZXJtaW5hbH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp0ZXJtaW5hbCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+VGVybWluYWw8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgkKXtsZXQgRT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtpZihzdXBlci5maXJzdFVwZGF0ZWQoJCksdGhpcy52aWV3VGFicyYmdGhpcy52aWV3VGFicy5sZW5ndGg+MCl7bGV0IEg9dGhpcy5zZWxlY3RlZFZpZXd8fHRoaXMudmlld1RhYnNbMF07YXdhaXQgdGhpcy5sb2FkVmlldyhIKX19d2lsbFVwZGF0ZSgkKXtpZigkLmhhcygiZ2xvYmFsTWVzc2FnZXMiKSl7bGV0IEU9bmV3IFNldCh0aGlzLmdsb2JhbE1lc3NhZ2VzLm1hcChSPT5SLmlkKSksSD1uZXcgU2V0KHRoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChSPT5SLmlkKSksaz10aGlzLmdsb2JhbE1lc3NhZ2VzLmZpbHRlcihSPT4hSC5oYXMoUi5pZCkpLFM9JC5nZXQoImdsb2JhbE1lc3NhZ2VzIil8fFtdLEk9bmV3IFNldChTLm1hcChSPT5SLmlkKSksUD1uZXcgU2V0KFsuLi5JXS5maWx0ZXIoUj0+IUUuaGFzKFIpKSk7dGhpcy5fYWN0aXZlTWVzc2FnZXM9Wy4uLnRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihSPT4hUC5oYXMoUi5pZCkpLC4uLmtdfX11cGRhdGVkKCQpe3N1cGVyLnVwZGF0ZWQoJCksdGhpcy51cGRhdGVCYW5uZXJPZmZzZXQoKX11cGRhdGVCYW5uZXJPZmZzZXQoKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tZXNzYWdlQmFubmVyQXJlYSIpLEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLEg9JD8kLm9mZnNldEhlaWdodDowO0U/LnN0eWxlLnNldFByb3BlcnR5KCItLWJhbm5lci1hcmVhLWhlaWdodCIsYCR7SH1weGApfSl9Z2V0TWVzc2FnZUljb24oJCl7cmV0dXJuICQuaWNvbj8kLmljb246e2luZm86Imx1Y2lkZTppbmZvIixzdWNjZXNzOiJsdWNpZGU6Y2lyY2xlQ2hlY2siLHdhcm5pbmc6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0IixlcnJvcjoibHVjaWRlOmNpcmNsZVgifVskLnR5cGVdfWFkZE1lc3NhZ2UoJCl7bGV0IEU9JC5pZHx8YG1zZy0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YCxIPXtkaXNtaXNzaWJsZTohMCwuLi4kLGlkOkV9O3JldHVybiB0aGlzLl9hY3RpdmVNZXNzYWdlcz1bLi4udGhpcy5fYWN0aXZlTWVzc2FnZXMsSF0sRX1yZW1vdmVNZXNzYWdlKCQpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtbWVzc2FnZS1pZD0iJHskfSJdYCk7RT8oRS5jbGFzc0xpc3QuYWRkKCJkaXNtaXNzaW5nIiksRS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLCgpPT57dGhpcy5fYWN0aXZlTWVzc2FnZXM9dGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEg9PkguaWQhPT0kKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZXNzYWdlLWRpc21pc3MiLHtkZXRhaWw6e2lkOiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LHtvbmNlOiEwfSkpOnRoaXMuX2FjdGl2ZU1lc3NhZ2VzPXRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihIPT5ILmlkIT09JCl9Y2xlYXJNZXNzYWdlcygpe3RoaXMuX2FjdGl2ZU1lc3NhZ2VzPVtdfWN1cnJlbnRUZXJtaW5hbD0ocGModGhpcyxfKSxudWxsKTthc3luYyBsYXVuY2hUZXJtaW5hbCgpe2xldCAkPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHRoaXMuY3VycmVudFRlcm1pbmFsKXthd2FpdCB0aGlzLmNsb3NlVGVybWluYWwoKTtyZXR1cm59bGV0IEU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDpIfT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odUooKSxyU2EpKSxrPW5ldyBIO3JldHVybiBrLnNldHVwQ29tbWFuZD10aGlzLnRlcm1pbmFsU2V0dXBDb21tYW5kLHRoaXMuY3VycmVudFRlcm1pbmFsPWssRS5hcHBlbmRDaGlsZChrKSxrLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsay5zdHlsZS56SW5kZXg9IjEwIixrLnN0eWxlLnRvcD0idmFyKC0tYmFubmVyLWFyZWEtaGVpZ2h0LCAwcHgpIixrLnN0eWxlLmxlZnQ9IjI0MHB4IixrLnN0eWxlLnJpZ2h0PSIwcHgiLGsuc3R5bGUuaGVpZ2h0PSJhdXRvIixrLnN0eWxlLmJvdHRvbT0iMjRweCIsay5zdHlsZS5vcGFjaXR5PSIwIixrLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixrLnN0eWxlLnRyYW5zaXRpb249ImFsbCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIixrLnN0eWxlLmJveFNoYWRvdz0iMCAyNXB4IDUwcHggLTEycHggcmdiKDAgMCAwIC8gMC41KSwgMCAwIDAgMXB4IHJnYigyNTUgMjU1IDI1NSAvIDAuMDUpIixrLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+dGhpcy5jbG9zZVRlcm1pbmFsKCkpLGF3YWl0ICQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxrLnN0eWxlLm9wYWNpdHk9IjEiLGsuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIHNjYWxlKDEpIixrfWFzeW5jIGNsb3NlVGVybWluYWwoKXtsZXQgJD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmN1cnJlbnRUZXJtaW5hbCYmKHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixhd2FpdCAkLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLmN1cnJlbnRUZXJtaW5hbC5yZW1vdmUoKSx0aGlzLmN1cnJlbnRUZXJtaW5hbD1udWxsKX1pc0dyb3VwQWN0aXZlKCQpe3JldHVybiB0aGlzLnNlbGVjdGVkVmlldz09PSQ/ITA6JC5zdWJWaWV3cz8uc29tZShFPT5FPT09dGhpcy5zZWxlY3RlZFZpZXcpPz8hMX1jdXJyZW50Vmlldzthc3luYyBsb2FkVmlldygkKXtpZighJC5lbGVtZW50JiYkLnN1YlZpZXdzPy5sZW5ndGgpe2xldCBrPSQuc3ViVmlld3MuZmluZChTPT5TLmVsZW1lbnQpO3JldHVybiBrP3RoaXMubG9hZFZpZXcoayk6dm9pZCAwfWlmKCEkLmVsZW1lbnQpcmV0dXJuO2xldCBFPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYXBwY29udGVudCIpLEg9bmV3ICQuZWxlbWVudDt0aGlzLmN1cnJlbnRWaWV3JiZ0aGlzLmN1cnJlbnRWaWV3LnJlbW92ZSgpLEUuYXBwZW5kQ2hpbGQoSCksdGhpcy5jdXJyZW50Vmlldz1ILHRoaXMuc2VsZWN0ZWRWaWV3PSQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1zZWxlY3QiLHtkZXRhaWw6e3ZpZXc6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7cGMoYSx0KX19O3JldHVybiBPPWF9KSgpfSk7dmFyIHBTYT1nKCgpPT57dVNhKCl9KTt2YXIgaFNhLGZTYT1nKCgpPT57cGUoKTtoU2E9aSgoKT0+d2AKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtbG9naW4gCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICBAbG9naW49JHtzPT57Y29uc29sZS5sb2coIkxvZ2luIGV2ZW50IHJlY2VpdmVkOiIscy5kZXRhaWwpO2xldCBlPXMuZGV0YWlsPy5kYXRhfHxzLmRldGFpbDtlPy51c2VybmFtZSYmZT8ucGFzc3dvcmQ/YWxlcnQoYExvZ2luIGF0dGVtcHRlZCB3aXRoOgpVc2VybmFtZTogJHtlLnVzZXJuYW1lfQpQYXNzd29yZDogJHtlLnBhc3N3b3JkfWApOmNvbnNvbGUuZXJyb3IoIkludmFsaWQgbG9naW4gZGF0YSBzdHJ1Y3R1cmU6IixzLmRldGFpbCl9fQogICAgPgogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICA8aDE+V2VsY29tZSE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgdGhlIHNsb3R0ZWQgY29udGVudCB0aGF0IGFwcGVhcnMgYWZ0ZXIgbG9naW4uPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgbVNhLCRsdCxydHMsZ1NhPWcoKCk9PntmU2EoKTtwZSgpO2h0KCk7bXIoKTttU2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LCRsdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0scnRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zaW1wbGUtbG9naW4iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NpbXBsZUxvZ2luIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCgpXSxtU2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHU9PiJuYW1lImluIHUsImhhcyIpLGdldDppKHU9PnUubmFtZSwiZ2V0Iiksc2V0OmkoKHUsYyk9Pnt1Lm5hbWU9Y30sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLG1TYShudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHQpLHA9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWhTYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPSRsdCh0aGlzLG8sIkFwcGxpY2F0aW9uIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5zbG90Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5sb2dpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAubG9naW4taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQoY29udGVudCkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWZvcm0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7IkNyZWRlbnRpYWxzIn0+CiAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InVzZXJuYW1lIiBsYWJlbD0iVXNlcm5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IlBhc3N3b3JkIiBpc1Bhc3N3b3JkQm9vbCByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TaWduIGluPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRhaW5lciI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGQpe3N1cGVyLmZpcnN0VXBkYXRlZChkKTtsZXQgdT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7dSYmdS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGM9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2dpbiIse2RldGFpbDpjLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSkpfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgZD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxjPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO3Uuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGMuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGIuc3R5bGUub3BhY2l0eT0iMSIsYi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgZC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksYi5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSwkbHQodGhpcyxsKX1zdGF0aWN7JGx0KGEsdCl9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBiU2E9ZygoKT0+e2dTYSgpfSk7dmFyIHZTYT1nKCgpPT57c1NhKCk7cFNhKCk7YlNhKCl9KTt2YXIgeFNhPWcoKCk9PntHYSgpfSk7dmFyIHlTYSx3U2E9ZygoKT0+e3BlKCk7eVNhPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vV3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIAogICAgICAgIGJhY2tncm91bmQ6ICM4ODg4ODg7CiAgICAgIH0KICAgICAgLmxvZ3MgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgd2lkdGg6IDYwMHB4OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgLmxvZ3MgZGl2IHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgICA8ZGVlcy1zZWFyY2hiYXIKICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtpKHQ9PntsZXQgcj10LnRhcmdldC5jbG9zZXN0KCIuZGVtb1dyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiI2NoYW5nZWQiKTtyJiYoci50ZXh0Q29udGVudD1gc2VhcmNoLWNoYW5nZWQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvbkNoYW5nZWQiKX0KICAgICAgICBAc2VhcmNoLXN1Ym1pdD0ke2kodD0+e2xldCByPXQudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjc3VibWl0dGVkIik7ciYmKHIudGV4dENvbnRlbnQ9YHNlYXJjaC1zdWJtaXQ6ICR7dC5kZXRhaWwudmFsdWV9YCl9LCJvblN1Ym1pdCIpfQogICAgICA+PC9kZWVzLXNlYXJjaGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibG9ncyI+CiAgICAgICAgPGRpdiBpZD0iY2hhbmdlZCI+c2VhcmNoLWNoYW5nZWQ6PC9kaXY+CiAgICAgICAgPGRpdiBpZD0ic3VibWl0dGVkIj5zZWFyY2gtc3VibWl0OjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIga1NhLERsdCxvdHMsU1NhPWcoKCk9PntwZSgpO3cyKCk7d1NhKCk7aHQoKTtrU2E9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LERsdD1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sb3RzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy1zZWFyY2hiYXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1NlYXJjaGJhciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woKV0sa1NhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh1PT4iZmlsdGVycyJpbiB1LCJoYXMiKSxnZXQ6aSh1PT51LmZpbHRlcnMsImdldCIpLHNldDppKCh1LGMpPT57dS5maWx0ZXJzPWN9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxrU2EobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCx0KSxwPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz15U2E7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZShyNC5ibHVlLGk0LmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKHI0LmJsdWVBY3RpdmUsaTQuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9RGx0KHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhkKXt0aGlzLiNlPWR9c2VhcmNoSW5wdXQ9RGx0KHRoaXMsbCk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDp3YGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntkLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje0RsdChhLHQpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgX1NhPWcoKCk9PntTU2EoKX0pO3ZhciBNU2EselNhPWcoKCk9PntwZSgpO01TYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICB9CgogICAgLnRva2VuLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAudG9rZW4taXRlbSB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1uYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CgogICAgLnRva2VuLXZhbHVlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zcGFjaW5nLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNwYWNpbmctYm94IHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnJhZGl1cy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnJhZGl1cy1ib3ggewogICAgICB3aWR0aDogNjBweDsKICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuc2hhZG93LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc2hhZG93LWJveCB7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICB9CgogICAgLmhlaWdodC1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuaGVpZ2h0LWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgd2lkdGg6IDEyMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXRoZW1lPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TcGFjaW5nIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc3BhY2luZy14cyB0aHJvdWdoIC0tZGVlcy1zcGFjaW5nLTN4bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eHMgKDRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnNtICg4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZCAoMTJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPmxnICgxNnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eGwgKDI0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJ4bCAoMzJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+M3hsICg0OHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9yZGVyIFJhZGl1cyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXJhZGl1cy14cyB0aHJvdWdoIC0tZGVlcy1yYWRpdXMtZnVsbAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjRweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj44cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjEycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOyI+ZnVsbDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj45OTlweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2hhZG93IEVsZXZhdGlvbiBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNoYWRvdy14cyB0aHJvdWdoIC0tZGVlcy1zaGFkb3ctbGcKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3cteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWluaW1hbDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c3VidGxlPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZWRpdW08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnByb21pbmVudDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29udHJvbCBIZWlnaHQgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSB0aHJvdWdoIC0tZGVlcy1jb250cm9sLWhlaWdodC14bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjM2cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40MHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHJhbnNpdGlvbiBEdXJhdGlvbnM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy10cmFuc2l0aW9uLWZhc3QgdGhyb3VnaCAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXIKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1mYXN0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjFzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjE1czwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvdzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4yczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjNzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtdGhlbWU+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgRXgsTzIsbnRzLENTYT1nKCgpPT57cGUoKTtodCgpO3pTYSgpO0V4PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxPMj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbnRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy10aGVtZSIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzVGhlbWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOk9iamVjdH0pXSxwPVtMKHt0eXBlOk9iamVjdH0pXSxjPVtMKHt0eXBlOk9iamVjdH0pXSx4PVtMKHt0eXBlOk9iamVjdH0pXSx5PVtMKHt0eXBlOk9iamVjdH0pXSxFeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVNwYWNpbmciaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21TcGFjaW5nLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uY3VzdG9tU3BhY2luZz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG8sbCksRXgodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVJhZGl1cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmN1c3RvbVJhZGl1cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVJhZGl1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsdSksRXgodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJjdXN0b21TaGFkb3dzImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tU2hhZG93cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbVNoYWRvd3M9T30sInNldCIpfSxtZXRhZGF0YTpDfSxiLHYpLEV4KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+ImN1c3RvbVRyYW5zaXRpb25zImluIF8sImhhcyIpLGdldDppKF89Pl8uY3VzdG9tVHJhbnNpdGlvbnMsImdldCIpLHNldDppKChfLE8pPT57Xy5jdXN0b21UcmFuc2l0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LG0sZiksRXgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5jdXN0b21Db250cm9sSGVpZ2h0cywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLmN1c3RvbUNvbnRyb2xIZWlnaHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sTSx6KSxFeChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHQpLE49YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPU1TYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1PMih0aGlzLG8sbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhDKXt0aGlzLiNlPUN9I3Q9KE8yKHRoaXMsbCksTzIodGhpcyxkLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhDKXt0aGlzLiN0PUN9I2E9KE8yKHRoaXMsdSksTzIodGhpcyxiLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21TaGFkb3dzKEMpe3RoaXMuI2E9Q30jcz0oTzIodGhpcyx2KSxPMih0aGlzLG0sbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBjdXN0b21UcmFuc2l0aW9ucyhDKXt0aGlzLiNzPUN9I2k9KE8yKHRoaXMsZiksTzIodGhpcyxNLG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgJHt0aGlzLmdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Z2VuZXJhdGVDdXN0b21TdHlsZXMoKXtsZXQgQz1bIjpob3N0IHsiXTtpZih0aGlzLmN1c3RvbVNwYWNpbmcpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TcGFjaW5nKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVJhZGl1cylmb3IobGV0W18sT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVJhZGl1cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1yYWRpdXMtJHtffTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVNoYWRvd3MpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TaGFkb3dzKSlPJiZDLnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke199OiAke099O2ApO2lmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpe2ZvcihsZXRbXyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKWlmKE8pe2xldCAkPV89PT0iZGVmYXVsdCI/ImRlZmF1bHQiOl87Qy5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7JH06ICR7T307YCl9fWlmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpZm9yKGxldFtfLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cykpTyYmQy5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke199OiAke099O2ApO3JldHVybiBDLnB1c2goIn0iKSxDLmpvaW4oYApgKX1zZXRTcGFjaW5nKEMsXyl7dGhpcy5jdXN0b21TcGFjaW5nPXsuLi50aGlzLmN1c3RvbVNwYWNpbmcsW0NdOl99fXNldFJhZGl1cyhDLF8pe3RoaXMuY3VzdG9tUmFkaXVzPXsuLi50aGlzLmN1c3RvbVJhZGl1cyxbQ106X319c2V0U2hhZG93KEMsXyl7dGhpcy5jdXN0b21TaGFkb3dzPXsuLi50aGlzLmN1c3RvbVNoYWRvd3MsW0NdOl99fXNldFRyYW5zaXRpb24oQyxfKXt0aGlzLmN1c3RvbVRyYW5zaXRpb25zPXsuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zLFtDXTpffX1zZXRDb250cm9sSGVpZ2h0KEMsXyl7dGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz17Li4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyxbQ106X319Z2V0VGhlbWUoKXtyZXR1cm57Y29sb3JzOlhjLmNvbG9ycyxzcGFjaW5nOnsuLi5YYy5zcGFjaW5nLC4uLnRoaXMuY3VzdG9tU3BhY2luZ30scmFkaXVzOnsuLi5YYy5yYWRpdXMsLi4udGhpcy5jdXN0b21SYWRpdXN9LHNoYWRvd3M6ey4uLlhjLnNoYWRvd3MsLi4udGhpcy5jdXN0b21TaGFkb3dzfSx0cmFuc2l0aW9uczp7Li4uWGMudHJhbnNpdGlvbnMsLi4udGhpcy5jdXN0b21UcmFuc2l0aW9uc30sY29udHJvbEhlaWdodHM6ey4uLlhjLmNvbnRyb2xIZWlnaHRzLC4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHN9fX1yZXNldFRvRGVmYXVsdHMoKXt0aGlzLmN1c3RvbVNwYWNpbmc9bnVsbCx0aGlzLmN1c3RvbVJhZGl1cz1udWxsLHRoaXMuY3VzdG9tU2hhZG93cz1udWxsLHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9bnVsbCx0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPW51bGx9YXBwbHlUaGVtZShDKXtDLnNwYWNpbmcmJih0aGlzLmN1c3RvbVNwYWNpbmc9Qy5zcGFjaW5nKSxDLnJhZGl1cyYmKHRoaXMuY3VzdG9tUmFkaXVzPUMucmFkaXVzKSxDLnNoYWRvd3MmJih0aGlzLmN1c3RvbVNoYWRvd3M9Qy5zaGFkb3dzKSxDLnRyYW5zaXRpb25zJiYodGhpcy5jdXN0b21UcmFuc2l0aW9ucz1DLnRyYW5zaXRpb25zKSxDLmNvbnRyb2xIZWlnaHRzJiYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1DLmNvbnRyb2xIZWlnaHRzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTzIodGhpcyx6KX1zdGF0aWN7TzIoYSx0KX19O3JldHVybiBOPWF9KSgpfSk7dmFyIFRTYT1nKCgpPT57Q1NhKCl9KTt2YXIgJFNhLERTYSxMU2E9ZygoKT0+e3BlKCk7RWx0KCk7JFNhPWkoYXN5bmMgcz0+e2F3YWl0IG5ldyBQcm9taXNlKGU9Pnt3aW5kb3cuc2V0VGltZW91dCgoKT0+ZSgpLHMpfSl9LCJ3YWl0Rm9yRGVtb1N0ZXAiKSxEU2E9aSgoKT0+e2xldCBzPSExO3JldHVybiB3YAogICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxNnB4OyBwbGFjZS1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAzMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgbWF4LXdpZHRoOiA1NDBweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgTGF1bmNoZXMgdGhlIHVwZGF0ZXIgYXMgYSBzdGVwcGVyIGZsb3cuIFRoZSBmaXJzdCBzdGVwIHN0cmVhbXMgdGVybWluYWwtc3R5bGUKICAgICAgICBwcm9ncmVzcyB1cGRhdGVzIGFuZCB0aGVuIG1vdmVzIGF1dG9tYXRpY2FsbHkgdG8gdGhlIHJlYWR5IHN0ZXAuCiAgICAgIDwvcD4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2lmKCFzKXtzPSEwO3RyeXtsZXQgZT1hd2FpdCBMbHQuY3JlYXRlQW5kU2hvdyh7Y3VycmVudFZlcnNpb246IjMuNzkuMCIsdXBkYXRlZFZlcnNpb246IjMuODAuMCIsbW9yZUluZm9Vcmw6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9kZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsY2hhbmdlbG9nVXJsOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvLS9ibG9iL21haW4vY2hhbmdlbG9nLm1kIixzdWNjZXNzQWN0aW9uOiJjbG9zZSIsc3VjY2Vzc0RlbGF5TXM6MWU0fSksdD1be2xpbmU6IkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiLHBlcmNlbnRhZ2U6MTIsZGVsYXk6NTUwfSx7bGluZToiRG93bmxvYWRpbmcgc2lnbmVkIGJ1bmRsZSIscGVyY2VudGFnZTozMyxkZWxheTo3MDB9LHtsaW5lOiJWZXJpZnlpbmcgY2hlY2tzdW0iLHBlcmNlbnRhZ2U6NTEsZGVsYXk6NjUwfSx7bGluZToiQXBwbHlpbmcgdXBkYXRlIGZpbGVzIixwZXJjZW50YWdlOjc0LGRlbGF5OjgwMH0se2xpbmU6IkNsZWFuaW5nIHVwIHByZXZpb3VzIHJlbGVhc2UiLHBlcmNlbnRhZ2U6OTEsZGVsYXk6NjAwfV07ZS51cGRhdGVQcm9ncmVzcyh7c3RhdHVzVGV4dDoiQ2hlY2tpbmcgcmVsZWFzZSBtYW5pZmVzdC4uLiIsdGVybWluYWxMaW5lczpbIkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QiXSxwZXJjZW50YWdlOjEyLGluZGV0ZXJtaW5hdGU6ITB9KTtmb3IobGV0W2Escl1vZiB0LmVudHJpZXMoKSlhPjAmJihlLmFwcGVuZFByb2dyZXNzTGluZShyLmxpbmUpLGUudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6ci5wZXJjZW50YWdlLHN0YXR1c1RleHQ6YCR7ci5saW5lfS4uLmB9KSksYXdhaXQgJFNhKHIuZGVsYXkpO2F3YWl0IGUubWFya1VwZGF0ZVJlYWR5KCksYXdhaXQgJFNhKDEwNTAwKX1maW5hbGx5e3M9ITF9fX19CiAgICAgID5TaG93IHVwZGF0ZXIgZmxvdzwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBNNCxubCxMbHQsRWx0PWcoKCk9PntwZSgpO0xTYSgpO28yZSgpO0VyKCk7TTQ9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LG5sPWZ1bmN0aW9uKHMsZSx0KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKyl0PWE/ZVtyXS5jYWxsKHMsdCk6ZVtyXS5jYWxsKHMpO3JldHVybiBhP3Q6dm9pZCAwfSxMbHQ9KCgpPT57bGV0IHM9W25lKCJkZWVzLXVwZGF0ZXIiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXSxPLCQ9W10sRT1bXTt2YXIgSD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1VwZGF0ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOk51bWJlcn0pXSxPPVtMKHt0eXBlOlN0cmluZ30pXSxNNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXJyZW50VmVyc2lvbiJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1cnJlbnRWZXJzaW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY3VycmVudFZlcnNpb249SX0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLE00KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBkYXRlZFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InVwZGF0ZWRWZXJzaW9uImluIFMsImhhcyIpLGdldDppKFM9PlMudXBkYXRlZFZlcnNpb24sImdldCIpLHNldDppKChTLEkpPT57Uy51cGRhdGVkVmVyc2lvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsdSksTTQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3JlSW5mb1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibW9yZUluZm9VcmwiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5tb3JlSW5mb1VybCwiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLm1vcmVJbmZvVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sYix2KSxNNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYW5nZWxvZ1VybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY2hhbmdlbG9nVXJsImluIFMsImhhcyIpLGdldDppKFM9PlMuY2hhbmdlbG9nVXJsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1MuY2hhbmdlbG9nVXJsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sbSxmKSxNNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN1Y2Nlc3NBY3Rpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzQWN0aW9uLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbj1JfSwic2V0Iil9LG1ldGFkYXRhOmt9LE0seiksTTQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzRGVsYXlNcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0RlbGF5TXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zdWNjZXNzRGVsYXlNcywiZ2V0Iiksc2V0OmkoKFMsSSk9PntTLnN1Y2Nlc3NEZWxheU1zPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sQyxfKSxNNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NBY3Rpb25MYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3VjY2Vzc0FjdGlvbkxhYmVsImluIFMsImhhcyIpLGdldDppKFM9PlMuc3VjY2Vzc0FjdGlvbkxhYmVsLCJnZXQiKSxzZXQ6aSgoUyxJKT0+e1Muc3VjY2Vzc0FjdGlvbkxhYmVsPUl9LCJzZXQiKX0sbWV0YWRhdGE6a30sJCxFKSxNNChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLEg9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPURTYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhrPXt9KXtsZXQgUz1uZXcgSDtyZXR1cm4gUy5jdXJyZW50VmVyc2lvbj1rLmN1cnJlbnRWZXJzaW9uPz8iIixTLnVwZGF0ZWRWZXJzaW9uPWsudXBkYXRlZFZlcnNpb24/PyIiLFMubW9yZUluZm9Vcmw9ay5tb3JlSW5mb1VybD8/IiIsUy5jaGFuZ2Vsb2dVcmw9ay5jaGFuZ2Vsb2dVcmw/PyIiLFMuc3VjY2Vzc0FjdGlvbj1rLnN1Y2Nlc3NBY3Rpb24/PyJjbG9zZSIsUy5zdWNjZXNzRGVsYXlNcz1rLnN1Y2Nlc3NEZWxheU1zPz8xZTQsUy5zdWNjZXNzQWN0aW9uTGFiZWw9ay5zdWNjZXNzQWN0aW9uTGFiZWw/PyIiLFMub25TdWNjZXNzQWN0aW9uPWsub25TdWNjZXNzQWN0aW9uPz9udWxsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUyksYXdhaXQgUy5zaG93KCksU30jZT1ubCh0aGlzLG8sIiIpO2dldCBjdXJyZW50VmVyc2lvbigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmVyc2lvbihrKXt0aGlzLiNlPWt9I3Q9KG5sKHRoaXMsbCksbmwodGhpcyxkLCIiKSk7Z2V0IHVwZGF0ZWRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHVwZGF0ZWRWZXJzaW9uKGspe3RoaXMuI3Q9a30jYT0obmwodGhpcyx1KSxubCh0aGlzLGIsIiIpKTtnZXQgbW9yZUluZm9VcmwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbW9yZUluZm9Vcmwoayl7dGhpcy4jYT1rfSNzPShubCh0aGlzLHYpLG5sKHRoaXMsbSwiIikpO2dldCBjaGFuZ2Vsb2dVcmwoKXtyZXR1cm4gdGhpcy4jc31zZXQgY2hhbmdlbG9nVXJsKGspe3RoaXMuI3M9a30jaT0obmwodGhpcyxmKSxubCh0aGlzLE0sImNsb3NlIikpO2dldCBzdWNjZXNzQWN0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN1Y2Nlc3NBY3Rpb24oayl7dGhpcy4jaT1rfSNyPShubCh0aGlzLHopLG5sKHRoaXMsQywxZTQpKTtnZXQgc3VjY2Vzc0RlbGF5TXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3VjY2Vzc0RlbGF5TXMoayl7dGhpcy4jcj1rfSNvPShubCh0aGlzLF8pLG5sKHRoaXMsJCwiIikpO2dldCBzdWNjZXNzQWN0aW9uTGFiZWwoKXtyZXR1cm4gdGhpcy4jb31zZXQgc3VjY2Vzc0FjdGlvbkxhYmVsKGspe3RoaXMuI289a31zdGVwcGVyPShubCh0aGlzLEUpLG51bGwpO3Byb2dyZXNzU3RlcD1udWxsO3Nob3dQcm9taXNlPW51bGw7b25TdWNjZXNzQWN0aW9uPW51bGw7c3RhdGljIHN0eWxlcz1bSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2hvdygpfWFzeW5jIHNob3coKXtpZighdGhpcy5zdGVwcGVyPy5pc0Nvbm5lY3RlZCl7aWYodGhpcy5zaG93UHJvbWlzZSlyZXR1cm4gdGhpcy5zaG93UHJvbWlzZTt0aGlzLnNob3dQcm9taXNlPXRoaXMub3BlblN0ZXBwZXJGbG93KCk7dHJ5e2F3YWl0IHRoaXMuc2hvd1Byb21pc2V9ZmluYWxseXt0aGlzLnNob3dQcm9taXNlPW51bGx9fX11cGRhdGVQcm9ncmVzcyhrKXshdGhpcy5zdGVwcGVyfHwhdGhpcy5wcm9ncmVzc1N0ZXB8fHRoaXMuc3RlcHBlci51cGRhdGVQcm9ncmVzc1N0ZXAoayx0aGlzLnByb2dyZXNzU3RlcCl9YXBwZW5kUHJvZ3Jlc3NMaW5lKGspeyF0aGlzLnN0ZXBwZXJ8fCF0aGlzLnByb2dyZXNzU3RlcHx8dGhpcy5zdGVwcGVyLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoayx0aGlzLnByb2dyZXNzU3RlcCl9bWFya1VwZGF0ZUVycm9yKGspe3RoaXMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBFcnJvcjogJHtrfWApLHRoaXMudXBkYXRlUHJvZ3Jlc3Moe2luZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDprfSl9YXN5bmMgbWFya1VwZGF0ZVJlYWR5KCl7IXRoaXMuc3RlcHBlcnx8IXRoaXMucHJvZ3Jlc3NTdGVwfHwodGhpcy5zdGVwcGVyLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OiJVcGRhdGUgcmVhZHkuIn0sdGhpcy5wcm9ncmVzc1N0ZXApLHRoaXMuc3RlcHBlci5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKCJVcGRhdGUgcmVhZHkiLHRoaXMucHJvZ3Jlc3NTdGVwKSx0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRTdGVwPT09dGhpcy5wcm9ncmVzc1N0ZXAmJnRoaXMuc3RlcHBlci5nb05leHQoKSl9YXN5bmMgZGVzdHJveSgpe2xldCBrPXRoaXMuc3RlcHBlcjt0aGlzLnN0ZXBwZXI9bnVsbCx0aGlzLnByb2dyZXNzU3RlcD1udWxsLGs/LmlzQ29ubmVjdGVkJiZhd2FpdCBrLmRlc3Ryb3koKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKX1hc3luYyBvcGVuU3RlcHBlckZsb3coKXtsZXR7c3RlcHM6ayxwcm9ncmVzc1N0ZXA6U309dGhpcy5jcmVhdGVVcGRhdGVyU3RlcHMoKTt0aGlzLnByb2dyZXNzU3RlcD1TLHRoaXMuc3RlcHBlcj1hd2FpdCBySi5jcmVhdGVBbmRTaG93KHtzdGVwczprLGNhbmNlbGFibGU6ITF9KX1jcmVhdGVVcGRhdGVyU3RlcHMoKXtsZXQgaz10aGlzLmdldExpbmtNZW51T3B0aW9ucygpLFM9e3RpdGxlOiJVcGRhdGluZyB0aGUgYXBwbGljYXRpb24iLGNvbnRlbnQ6dGhpcy5yZW5kZXJQcm9ncmVzc0NvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0UHJvZ3Jlc3NMYWJlbCgpLHBlcmNlbnRhZ2U6NSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1Jvd3M6NCxzdGF0dXNUZXh0OiJQcmVwYXJpbmcgdXBkYXRlLi4uIix0ZXJtaW5hbExpbmVzOlsiUHJlcGFyaW5nIHVwZGF0ZSJdfSxtZW51T3B0aW9uczprLmxlbmd0aD4wP2s6dm9pZCAwfSxJPXt0aXRsZTp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BWZXJzaW9uICR7dGhpcy51cGRhdGVkVmVyc2lvbn0gcmVhZHlgOiJVcGRhdGUgcmVhZHkiLGNvbnRlbnQ6dGhpcy5yZW5kZXJSZWFkeUNvbnRlbnQoKSxwcm9ncmVzc1N0ZXA6e2xhYmVsOnRoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKHRoaXMuZ2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpKSxwZXJjZW50YWdlOjAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNSb3dzOjIsc3RhdHVzVGV4dDp0aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXModGhpcy5nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCkpfSx2YWxpZGF0aW9uRnVuYzppKGFzeW5jKFAsUixLKT0+e2F3YWl0IHRoaXMucnVuU3VjY2Vzc0NvdW50ZG93bihQLEksSyl9LCJ2YWxpZGF0aW9uRnVuYyIpfTtyZXR1cm57c3RlcHM6W1MsSV0scHJvZ3Jlc3NTdGVwOlN9fWdldFByb2dyZXNzTGFiZWwoKXtyZXR1cm4gdGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj9gJHt0aGlzLmN1cnJlbnRWZXJzaW9ufSAtPiAke3RoaXMudXBkYXRlZFZlcnNpb259YDp0aGlzLnVwZGF0ZWRWZXJzaW9uP2BQcmVwYXJpbmcgJHt0aGlzLnVwZGF0ZWRWZXJzaW9ufWA6IkFwcGxpY2F0aW9uIHVwZGF0ZSJ9Z2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpe3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbCh0aGlzLnN1Y2Nlc3NEZWxheU1zLzFlMykpfWdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKXtyZXR1cm4gdGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw/dGhpcy5zdWNjZXNzQWN0aW9uTGFiZWw6dGhpcy5vblN1Y2Nlc3NBY3Rpb24/IkNvbnRpbnVpbmcgYXV0b21hdGljYWxseSI6dGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCI/IlJlbG9hZGluZyBhcHBsaWNhdGlvbiI6IkNsb3NpbmcgdXBkYXRlciJ9Z2V0U3VjY2Vzc0NvdW50ZG93bkxhYmVsKGspe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBpbiAke2t9c2B9Z2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyhrKXtsZXQgUz1rPT09MT8ic2Vjb25kIjoic2Vjb25kcyI7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IGluICR7a30gJHtTfS5gfWdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpe3JldHVybmAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfSBub3cuLi5gfWdldExpbmtNZW51T3B0aW9ucygpe2xldCBrPVtdO3JldHVybiB0aGlzLm1vcmVJbmZvVXJsJiZrLnB1c2goe25hbWU6Ik1vcmUgaW5mbyIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMub3BlbkV4dGVybmFsVXJsKHRoaXMubW9yZUluZm9VcmwpfSwiYWN0aW9uIil9KSx0aGlzLmNoYW5nZWxvZ1VybCYmay5wdXNoKHtuYW1lOiJDaGFuZ2Vsb2ciLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLm9wZW5FeHRlcm5hbFVybCh0aGlzLmNoYW5nZWxvZ1VybCl9LCJhY3Rpb24iKX0pLGt9cmVuZGVyVmVyc2lvbk1ldGEoayxTKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDRweDsgbWluLXdpZHRoOiAxMzJweDsgcGFkZGluZzogMTJweCAxNHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOyBib3JkZXItcmFkaXVzOiA4cHg7IGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOyIKICAgICAgPgogICAgICAgIDxkaXYKICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICA+CiAgICAgICAgICAke2t9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7RDFlfTsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTtgfQogICAgICAgID4KICAgICAgICAgICR7U30KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclByb2dyZXNzQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE4cHg7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICAgID4KICAgICAgICAgICAgQXBwbGljYXRpb24gdXBkYXRlCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzU7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyIKICAgICAgICAgID4KICAgICAgICAgICAgRG93bmxvYWRpbmcgYW5kIGFwcGx5aW5nIHRoZSBsYXRlc3QgcmVsZWFzZS4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbiYmdGhpcy51cGRhdGVkVmVyc2lvbj93YE1vdmluZyBmcm9tIDxzdHJvbmc+JHt0aGlzLmN1cnJlbnRWZXJzaW9ufTwvc3Ryb25nPiB0byA8c3Ryb25nPiR7dGhpcy51cGRhdGVkVmVyc2lvbn08L3N0cm9uZz4uYDp0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgUHJlcGFyaW5nIDxzdHJvbmc+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Ryb25nPiBmb3IgaW5zdGFsbGF0aW9uLmA6IlRoZSB1cGRhdGVyIGlzIGZldGNoaW5nIHRoZSBuZXdlc3QgYnVpbGQgYW5kIHByZXBhcmluZyBpdCBmb3IgaW5zdGFsbGF0aW9uLiJ9CiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbnx8dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMuY3VycmVudFZlcnNpb24/dGhpcy5yZW5kZXJWZXJzaW9uTWV0YSgiQ3VycmVudCB2ZXJzaW9uIix0aGlzLmN1cnJlbnRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj90aGlzLnJlbmRlclZlcnNpb25NZXRhKCJJbmNvbWluZyB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKToiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBBdXRvbWF0aWMgZmxvdwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyI+CiAgICAgICAgICAgIFRoZSB1cGRhdGVyIGNvbnRpbnVlcyBvbiBpdHMgb3duIG9uY2UgdGhlIG5ldyBidWlsZCBpcyBpbnN0YWxsZWQgYW5kIHZlcmlmaWVkLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJSZWFkeUNvbnRlbnQoKXtsZXQgaz10aGlzLmdldFN1Y2Nlc3NEZWxheVNlY29uZHMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiAxOHB4OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDZweDsiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiCiAgICAgICAgICA+CiAgICAgICAgICAgIFVwZGF0ZSBjb21wbGV0ZQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YFZlcnNpb24gPHNwYW4gc3R5bGU9JHtgZm9udC1mYW1pbHk6ICR7RDFlfTsgZm9udC1zaXplOiAwLjk1ZW07YH0+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Bhbj4gaXMgcmVhZHkgdG8gdXNlLmA6IlRoZSBuZXcgdmVyc2lvbiBpcyByZWFkeSB0byB1c2UuIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42NTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgICAgIFRoZSBuZXcgYnVpbGQgaGFzIGJlZW4gaW5zdGFsbGVkIGFuZCB2ZXJpZmllZC4gWW91IGNhbiByZXZpZXcgcmVsZWFzZSBkZXRhaWxzIGJlbG93IHdoaWxlIHRoZSBuZXh0IGFjdGlvbiBydW5zIGF1dG9tYXRpY2FsbHkuCiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy51cGRhdGVkVmVyc2lvbj93YAogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVmVyc2lvbk1ldGEoIkluc3RhbGxlZCB2ZXJzaW9uIix0aGlzLnVwZGF0ZWRWZXJzaW9uKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBwYWRkaW5nOiAxNHB4IDE2cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICAgID4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICBOZXh0IGFjdGlvbgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7Ij4KICAgICAgICAgICAgJHt0aGlzLmdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsiPgogICAgICAgICAgICBSdW5zIGF1dG9tYXRpY2FsbHkgaW4gJHtrfSBzZWNvbmRzLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBydW5TdWNjZXNzQ291bnRkb3duKGssUyxJKXtsZXQgUD1NYXRoLm1heCgxZTMsdGhpcy5zdWNjZXNzRGVsYXlNcyksUj1EYXRlLm5vdygpO2Zvcig7IUk/LmFib3J0ZWQ7KXtsZXQgSz1NYXRoLm1pbihQLERhdGUubm93KCktUiksVj1NYXRoLm1heCgwLFAtSyksVz1NYXRoLm1heCgwLE1hdGguY2VpbChWLzFlMykpO2lmKGsudXBkYXRlUHJvZ3Jlc3NTdGVwKHtsYWJlbDpWPjA/dGhpcy5nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKSxwZXJjZW50YWdlOksvUCoxMDAsaW5kZXRlcm1pbmF0ZTohMSxzaG93UGVyY2VudGFnZTohMSxzdGF0dXNUZXh0OlY+MD90aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25TdGF0dXMoVyk6dGhpcy5nZXRTdWNjZXNzQWN0aW9uTm93TGFiZWwoKX0sUyksVjw9MClicmVhaztpZighYXdhaXQgdGhpcy53YWl0Rm9yQ291bnRkb3duVGljaygxMDAsSSkpcmV0dXJufWF3YWl0IHRoaXMucnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKX1hc3luYyB3YWl0Rm9yQ291bnRkb3duVGljayhrLFMpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IFA9ITEsUj1pKFc9PntQfHwoUD0hMCxTJiZTLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixLKSxJKFcpKX0sImZpbmlzaCIpLEs9aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQoViksUighMSl9LCJoYW5kbGVBYm9ydCIpLFY9d2luZG93LnNldFRpbWVvdXQoKCk9PntSKCEwKX0sayk7UyYmUy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyx7b25jZTohMH0pfSl9YXN5bmMgcnVuQ29uZmlndXJlZFN1Y2Nlc3NBY3Rpb24oKXtpZih0aGlzLm9uU3VjY2Vzc0FjdGlvbil7YXdhaXQgdGhpcy5vblN1Y2Nlc3NBY3Rpb24oKTtyZXR1cm59aWYodGhpcy5zdWNjZXNzQWN0aW9uPT09InJlbG9hZCIpe2F3YWl0IHRoaXMuZGVzdHJveSgpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59YXdhaXQgdGhpcy5kZXN0cm95KCl9b3BlbkV4dGVybmFsVXJsKGspe3dpbmRvdy5vcGVuKGssIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKX1zdGF0aWN7bmwoYSx0KX19O3JldHVybiBIPWF9KSgpfSk7dmFyIEVTYT1nKCgpPT57RWx0KCl9KTt2YXIgUFNhPWcoKCk9PntEb3QoKX0pO3ZhciBJU2E9ZygoKT0+e3hTYSgpO19TYSgpO1RTYSgpO0VTYSgpO1BTYSgpfSk7dmFyIGM3LGhjLGx0cyxkMmU9ZygoKT0+e3BlKCk7a3QoKTtodCgpO0dhKCk7ZnIoKTtmcigpO1B1KCk7bzQoKTtvNCgpO2M3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxoYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sbHRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZUZpbGV0cmVlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bTCh7dHlwZTpTdHJpbmd9KV0sYz1bTCh7dHlwZTpTdHJpbmd9KV0seD1bWSgpXSx5PVtZKCldLE49W1koKV0sYzcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5leGVjdXRpb25FbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmV4ZWN1dGlvbkVudmlyb25tZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxjNyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvb3RQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJyb290UGF0aCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnJvb3RQYXRoLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uucm9vdFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxkLHUpLGM3KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzZWxlY3RlZFBhdGgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZWxlY3RlZFBhdGgsImdldCIpLHNldDppKChFLEgpPT57RS5zZWxlY3RlZFBhdGg9SH0sInNldCIpfSxtZXRhZGF0YTokfSxiLHYpLGM3KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJlZURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRyZWVEYXRhImluIEUsImhhcyIpLGdldDppKEU9PkUudHJlZURhdGEsImdldCIpLHNldDppKChFLEgpPT57RS50cmVlRGF0YT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LG0sZiksYzcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImlzTG9hZGluZyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmlzTG9hZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksYzcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvck1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImVycm9yTWVzc2FnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmVycm9yTWVzc2FnZSwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmVycm9yTWVzc2FnZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMsXyksYzcobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCx0KSxPPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTsjZT1oYyh0aGlzLG8sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCQpe3RoaXMuI2U9JH0jdD0oaGModGhpcyxsKSxoYyh0aGlzLGQsIi8iKSk7Z2V0IHJvb3RQYXRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvb3RQYXRoKCQpe3RoaXMuI3Q9JH0jYT0oaGModGhpcyx1KSxoYyh0aGlzLGIsIiIpKTtnZXQgc2VsZWN0ZWRQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkUGF0aCgkKXt0aGlzLiNhPSR9I3M9KGhjKHRoaXMsdiksaGModGhpcyxtLFtdKSk7Z2V0IHRyZWVEYXRhKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRyZWVEYXRhKCQpe3RoaXMuI3M9JH0jaT0oaGModGhpcyxmKSxoYyh0aGlzLE0sITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzTG9hZGluZygkKXt0aGlzLiNpPSR9I3I9KGhjKHRoaXMseiksaGModGhpcyxDLCIiKSk7Z2V0IGVycm9yTWVzc2FnZSgpe3JldHVybiB0aGlzLiNyfXNldCBlcnJvck1lc3NhZ2UoJCl7dGhpcy4jcj0kfWV4cGFuZGVkUGF0aHM9KGhjKHRoaXMsXyksbmV3IFNldCk7bG9hZFRyZWVTdGFydGVkPSExO2NsaXBib2FyZFBhdGg9bnVsbDtjbGlwYm9hcmRPcGVyYXRpb249bnVsbDtmaWxlV2F0Y2hlcj1udWxsO3JlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbDtsYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnRyZWUtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDFweCA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MyUpIiwiaHNsKDAgMCUgMTQlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCA1MCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTIlKSIsImhzbCgyMTAgNTAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pbmRlbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uaGlkZGVuIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZm9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0NSA4MCUgNDUlKSIsImhzbCg0NSA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5maWxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woMjExIDYwJSA0OCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmphdmFzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woNTMgOTMlIDU0JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uanNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5odG1sIHsKICAgICAgICBjb2xvcjogaHNsKDE0IDc3JSA1MiUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmNzcyB7CiAgICAgICAgY29sb3I6IGhzbCgyMjggNzclIDU5JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24ubWFya2Rvd24gewogICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogaHNsKDAgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50P3RoaXMuaXNMb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZyI+CiAgICAgICAgICBMb2FkaW5nIGZpbGVzLi4uCiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvck1lc3NhZ2U/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciI+CiAgICAgICAgICAke3RoaXMuZXJyb3JNZXNzYWdlfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGV0cmVlLXRvb2xiYXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj5FeHBsb3Jlcjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0gdGl0bGU9Ik5ldyBGaWxlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZVBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9IHRpdGxlPSJOZXcgRm9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlZS1jb250YWluZXIiIEBjb250ZXh0bWVudT0ke3RoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51fT4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5Ij4KICAgICAgICAgIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBwcm92aWRlZC4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZW5kZXJUcmVlKCQpe3JldHVybiAkLm1hcChFPT50aGlzLnJlbmRlck5vZGUoRSkpfXJlbmRlck5vZGUoJCl7bGV0IEU9JC50eXBlPT09ImRpcmVjdG9yeSIsSD10aGlzLmV4cGFuZGVkUGF0aHMuaGFzKCQucGF0aCksaz0kLnBhdGg9PT10aGlzLnNlbGVjdGVkUGF0aCxTPXRoaXMuZ2V0RmlsZUljb25DbGFzcygkKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0cmVlLWl0ZW0gJHtrPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7OCskLmxldmVsKjE2fXB4IgogICAgICAgIEBjbGljaz0ke0k9PnRoaXMuaGFuZGxlSXRlbUNsaWNrKEksJCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7ST0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShJLCQpfQogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZC1pY29uICR7SD8iZXhwYW5kZWQiOiIifSAke0U/IiI6ImhpZGRlbiJ9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25SaWdodCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWljb24gJHtTfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5nZXRGaWxlSWNvbigkKX0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtbmFtZSI+JHskLm5hbWV9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHtFJiZIJiYkLmNoaWxkcmVuP3RoaXMucmVuZGVyVHJlZSgkLmNoaWxkcmVuKToiIn0KICAgIGB9Z2V0RmlsZUljb24oJCl7aWYoJC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT8ibHVjaWRlOmZvbGRlck9wZW4iOiJsdWNpZGU6Zm9sZGVyIjtzd2l0Y2goJC5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqc29uIjpyZXR1cm4ibHVjaWRlOmZpbGVKc29uIjtjYXNlImh0bWwiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJtZCI6cmV0dXJuImx1Y2lkZTpmaWxlVGV4dCI7Y2FzZSJwbmciOmNhc2UianBnIjpjYXNlImpwZWciOmNhc2UiZ2lmIjpjYXNlInN2ZyI6cmV0dXJuImx1Y2lkZTppbWFnZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOmZpbGUifX1nZXRGaWxlSWNvbkNsYXNzKCQpe2lmKCQudHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiJmb2xkZXIiO3N3aXRjaCgkLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImh0bWwiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImNzcyI7Y2FzZSJtZCI6cmV0dXJuIm1hcmtkb3duIjtkZWZhdWx0OnJldHVybiJmaWxlIn19YXN5bmMgaGFuZGxlSXRlbUNsaWNrKCQsRSl7JC5zdG9wUHJvcGFnYXRpb24oKSxFLnR5cGU9PT0iZGlyZWN0b3J5Ij9hd2FpdCB0aGlzLnRvZ2dsZURpcmVjdG9yeShFKToodGhpcy5zZWxlY3RlZFBhdGg9RS5wYXRoLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtc2VsZWN0Iix7ZGV0YWlsOntwYXRoOkUucGF0aCxuYW1lOkUubmFtZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9YXN5bmMgdG9nZ2xlRGlyZWN0b3J5KCQpe3RoaXMuZXhwYW5kZWRQYXRocy5oYXMoJC5wYXRoKT90aGlzLmV4cGFuZGVkUGF0aHMuZGVsZXRlKCQucGF0aCk6KHRoaXMuZXhwYW5kZWRQYXRocy5hZGQoJC5wYXRoKSwoISQuY2hpbGRyZW58fCQuY2hpbGRyZW4ubGVuZ3RoPT09MCkmJmF3YWl0IHRoaXMubG9hZERpcmVjdG9yeUNvbnRlbnRzKCQpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBsb2FkRGlyZWN0b3J5Q29udGVudHMoJCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IEU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCQucGF0aCk7JC5jaGlsZHJlbj10aGlzLnNvcnRFbnRyaWVzKEUpLm1hcChIPT4oey4uLkgsbGV2ZWw6JC5sZXZlbCsxLGV4cGFuZGVkOiExLGNoaWxkcmVuOkgudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkgJHskLnBhdGh9OmAsRSl9fWFzeW5jIGhhbmRsZUNvbnRleHRNZW51KCQsRSl7JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W107RS50eXBlPT09ImRpcmVjdG9yeSImJkgucHVzaCh7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKEUucGF0aCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKEUucGF0aCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0pLEgucHVzaCh7bmFtZToiUmVuYW1lIixpY29uTmFtZToicGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oRSksImFjdGlvbiIpfSx7bmFtZToiRHVwbGljYXRlIixpY29uTmFtZToiZmlsZXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShFKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jb3B5SXRlbShFKSwiYWN0aW9uIil9KSxFLnR5cGU9PT0iZGlyZWN0b3J5IiYmdGhpcy5jbGlwYm9hcmRQYXRoJiZILnB1c2goe25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbShFLnBhdGgpLCJhY3Rpb24iKX0pLEgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKEUpLCJhY3Rpb24iKX0pLGF3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KCQpe2lmKCQudGFyZ2V0LmNsb3Nlc3QoIi50cmVlLWl0ZW0iKSlyZXR1cm47JC5wcmV2ZW50RGVmYXVsdCgpLCQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEg9W3tuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKSwiYWN0aW9uIil9XTt0aGlzLmNsaXBib2FyZFBhdGgmJkgucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpLCJhY3Rpb24iKX0pLGF3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKCQsSCl9YXN5bmMgc2hvd0lucHV0TW9kYWwoJCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIEU9PntsZXQgSD1hd2FpdCBpcy5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiQuaGVhZGluZyx3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7JC5sYWJlbH0KICAgICAgICAgICAgLnZhbHVlPSR7JC52YWx1ZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgUz0+e2F3YWl0IFMuZGVzdHJveSgpLEUobnVsbCl9LCJhY3Rpb24iKX0se25hbWU6JC5idXR0b25OYW1lfHwiQ3JlYXRlIixhY3Rpb246aShhc3luYyBTPT57bGV0IFI9Uy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IFMuZGVzdHJveSgpLEUoUnx8bnVsbCl9LCJhY3Rpb24iKX1dfSk7YXdhaXQgSC51cGRhdGVDb21wbGV0ZTtsZXQgaz1ILnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpO2lmKGspe2xldCBTPWsucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7UyYmKGF3YWl0IFMudXBkYXRlQ29tcGxldGUsUy5mb2N1cygpKX19KX1hc3luYyBjcmVhdGVOZXdGaWxlKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGaWxlIixsYWJlbDoiRmlsZSBuYW1lIn0pO2lmKCFFfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShILCIiKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZpbGU6IixrKX19YXN5bmMgY3JlYXRlTmV3Rm9sZGVyKCQpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGb2xkZXIiLGxhYmVsOiJGb2xkZXIgbmFtZSJ9KTtpZighRXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBIPSQ9PT0iLyI/YC8ke0V9YDpgJHskfS8ke0V9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihIKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmb2xkZXItY3JlYXRlZCIse2RldGFpbDp7cGF0aDpIfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOiIsayl9fWFzeW5jIGRlbGV0ZUl0ZW0oJCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWNvbmZpcm0oYERlbGV0ZSAkeyQubmFtZX0/YCkpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCx7cmVjdXJzaXZlOiQudHlwZT09PSJkaXJlY3RvcnkifSksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kZWxldGVkIix7ZGV0YWlsOntwYXRoOiQucGF0aCx0eXBlOiQudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChIKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGl0ZW06IixIKX19YXN5bmMgcmVuYW1lSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEU9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiUmVuYW1lIixsYWJlbDoiTmV3IG5hbWUiLHZhbHVlOiQubmFtZSxidXR0b25OYW1lOiJSZW5hbWUifSk7aWYoIUV8fEU9PT0kLm5hbWUpcmV0dXJuO2xldCBIPSQucGF0aC5zdWJzdHJpbmcoMCwkLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixrPUg9PT0iLyI/YC8ke0V9YDpgJHtIfS8ke0V9YDt0cnl7aWYoJC50eXBlPT09ImZpbGUiKXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCQucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoayxTKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKCQucGF0aCl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybSgkLnBhdGgse3JlY3Vyc2l2ZTohMH0pO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcmVuYW1lZCIse2RldGFpbDp7b2xkUGF0aDokLnBhdGgsbmV3UGF0aDprLHR5cGU6JC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKFMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5hbWUgaXRlbToiLFMpfX1hc3luYyBkdXBsaWNhdGVJdGVtKCQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgRT0kLnBhdGguc3Vic3RyaW5nKDAsJC5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIsSDtpZigkLnR5cGU9PT0iZmlsZSIpe2xldCBTPSQubmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKFM+MCl7bGV0IEk9JC5uYW1lLnN1YnN0cmluZygwLFMpLFA9JC5uYW1lLnN1YnN0cmluZyhTKTtIPWAke0l9X2NvcHkke1B9YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YH1lbHNlIEg9YCR7JC5uYW1lfV9jb3B5YDtsZXQgaz1FPT09Ii8iP2AvJHtIfWA6YCR7RX0vJHtIfWA7dHJ5e2lmKCQudHlwZT09PSJmaWxlIil7bGV0IFM9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgkLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGssUyl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cygkLnBhdGgsayk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kdXBsaWNhdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOiQucGF0aCxuZXdQYXRoOmssdHlwZTokLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goUyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOiIsUyl9fWFzeW5jIGNvcHlJdGVtKCQpe3RoaXMuY2xpcGJvYXJkUGF0aD0kLnBhdGgsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249ImNvcHkifWFzeW5jIHBhc3RlSXRlbSgkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXRoaXMuY2xpcGJvYXJkUGF0aClyZXR1cm47bGV0IEU9dGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJwYXN0ZWQiLEg9JD09PSIvIj9gLyR7RX1gOmAkeyR9LyR7RX1gO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHModGhpcy5jbGlwYm9hcmRQYXRoKSl7Y29uc29sZS5lcnJvcigiU291cmNlIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cyIpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7cmV0dXJufXRyeXtsZXQgaz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHRoaXMuY2xpcGJvYXJkUGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSCxrKX1jYXRjaHthd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgsSCl9YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1wYXN0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6dGhpcy5jbGlwYm9hcmRQYXRoLHRhcmdldFBhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBwYXN0ZSBpdGVtOiIsayl9fWFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cygkLEUpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEUpO2xldCBIPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigkKTtmb3IobGV0IGsgb2YgSCl7bGV0IFM9JD09PSIvIj9gLyR7ay5uYW1lfWA6YCR7JH0vJHtrLm5hbWV9YCxJPUU9PT0iLyI/YC8ke2submFtZX1gOmAke0V9LyR7ay5uYW1lfWA7aWYoay50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoUyxJKTtlbHNle2xldCBQPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoUyk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSSxQKX19fWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFRyZWUoKX1hc3luYyB1cGRhdGVkKCQpeyQuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiYodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQhPT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYodGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudD10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkVHJlZSgpLHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0RmlsZVdhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmZpbGVXYXRjaGVyKSl0cnl7dGhpcy5maWxlV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvIiwoJCxFKT0+e3RoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnJlZnJlc2goKX0sMzAwKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKCQpe2NvbnNvbGUud2FybigiRmlsZSB3YXRjaGluZyBub3Qgc3VwcG9ydGVkOiIsJCl9fXN0b3BGaWxlV2F0Y2hlcigpe3RoaXMuZmlsZVdhdGNoZXImJih0aGlzLmZpbGVXYXRjaGVyLnN0b3AoKSx0aGlzLmZpbGVXYXRjaGVyPW51bGwpfWFzeW5jIGxvYWRUcmVlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMubG9hZFRyZWVTdGFydGVkKXt0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMCx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmVycm9yTWVzc2FnZT0iIjt0cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCk7bGV0ICQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO3RoaXMudHJlZURhdGE9dGhpcy5zb3J0RW50cmllcygkKS5tYXAoRT0+KHsuLi5FLGxldmVsOjAsZXhwYW5kZWQ6ITEsY2hpbGRyZW46RS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKCQpe3RoaXMuZXJyb3JNZXNzYWdlPWBGYWlsZWQgdG8gbG9hZCBmaWxlczogJHskfWAsY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgZmlsZSB0cmVlOiIsJCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzTG9hZGluZz0hMX19fXNvcnRFbnRyaWVzKCQpe3JldHVybiAkLnNvcnQoKEUsSCk9PkUudHlwZSE9PUgudHlwZT9FLnR5cGU9PT0iZGlyZWN0b3J5Ij8tMToxOkUubmFtZS5sb2NhbGVDb21wYXJlKEgubmFtZSkpfWFzeW5jIHJlZnJlc2goKXt0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMSxhd2FpdCB0aGlzLmxvYWRUcmVlKCl9c2VsZWN0RmlsZSgkKXt0aGlzLnNlbGVjdGVkUGF0aD0kfXN0YXRpY3toYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgUGx0LHBKLGN0cyxJbHQ9ZygoKT0+e3BlKCk7aHQoKTtPdSgpO21yKCk7UGx0PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxwSj1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sY3RzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpTdHJpbmd9KV0scD1bTCh7dHlwZTpBcnJheX0pXSxQbHQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJjb21tYW5kImluIHYsImhhcyIpLGdldDppKHY9PnYuY29tbWFuZCwiZ2V0Iiksc2V0OmkoKHYseCk9Pnt2LmNvbW1hbmQ9eH0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLFBsdCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHY9PiJsaW5lcyJpbiB2LCJoYXMiKSxnZXQ6aSh2PT52LmxpbmVzLCJnZXQiKSxzZXQ6aSgodix4KT0+e3YubGluZXM9eH0sInNldCIpfSxtZXRhZGF0YTpifSxkLHUpLFBsdChudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLGM9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAuY29tbWFuZD0keyJwbnBtIGluc3RhbGwifQogICAgICAubGluZXM9JHtbIlBhY2thZ2VzOiArNDIiLCJQcm9ncmVzczogcmVzb2x2ZWQgMTQyLCByZXVzZWQgMTQwLCBkb3dubG9hZGVkIDIsIGFkZGVkIDQyLCBkb25lIiwiIiwiZGVwZW5kZW5jaWVzOiIsIisgQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIDQuMi4zIiwiKyB0eXBlc2NyaXB0IDUuMy4zIiwiIiwiRG9uZSBpbiAyLjNzIl19CiAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPXBKKHRoaXMsbywiIik7Z2V0IGNvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29tbWFuZChiKXt0aGlzLiNlPWJ9I3Q9KHBKKHRoaXMsbCkscEoodGhpcyxkLFtdKSk7Z2V0IGxpbmVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxpbmVzKGIpe3RoaXMuI3Q9Yn10ZXJtaW5hbD0ocEoodGhpcyx1KSxudWxsKTtmaXRBZGRvbj1udWxsO2xhc3RMaW5lQ291bnQ9MDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtxZSxoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItY29tbWFuZCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgICN4dGVybS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogQ3VzdG9tIHNjcm9sbGJhciBmb3IgeHRlcm0gdmlld3BvcnQgKi8KICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGVybWluYWwtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItaWNvbiI+JDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZCI+JHt0aGlzLmNvbW1hbmR8fCJXYWl0aW5nLi4uIn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgaWQ9Inh0ZXJtLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1nZXRUZXJtaW5hbFRoZW1lKGIpe3JldHVybiBiP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjIpIn06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNjY2NjY2MiLGN1cnNvcjoiI2NjY2NjYyIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1hc3luYyBmaXJzdFVwZGF0ZWQoYil7c3VwZXIuZmlyc3RVcGRhdGVkKGIpO2xldCB2PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInh0ZXJtLWNvbnRhaW5lciIpO2lmKCF2KXJldHVybjtsZXQgeD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxtPXgudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbixmPWFvLmdldEluc3RhbmNlKCksW3ksTV09YXdhaXQgUHJvbWlzZS5hbGwoW2YubG9hZFh0ZXJtKCksZi5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50ZXJtaW5hbD1uZXcgeS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKG0pLHNjcm9sbGJhY2s6MWUzfSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXgudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoej0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHopKX0pLHRoaXMuZml0QWRkb249bmV3IE0uRml0QWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5vcGVuKHYpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uJiZ0aGlzLmZpdEFkZG9uLmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHYpLHRoaXMud3JpdGVOZXdMaW5lcygpfWFzeW5jIHVwZGF0ZWQoYil7c3VwZXIudXBkYXRlZChiKSxiLmhhcygibGluZXMiKSYmdGhpcy53cml0ZU5ld0xpbmVzKCl9d3JpdGVOZXdMaW5lcygpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgYj10aGlzLmxpbmVzLnNsaWNlKHRoaXMubGFzdExpbmVDb3VudCk7Zm9yKGxldCB2IG9mIGIpdGhpcy50ZXJtaW5hbC53cml0ZWxuKHYpO3RoaXMubGFzdExpbmVDb3VudD10aGlzLmxpbmVzLmxlbmd0aH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5kaXNwb3NlKCksdGhpcy50ZXJtaW5hbD1udWxsKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFkZExpbmUoYil7dGhpcy5saW5lcz1bLi4udGhpcy5saW5lcyxiXX1jbGVhcigpe3RoaXMubGluZXM9W10sdGhpcy5sYXN0TGluZUNvdW50PTAsdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5jbGVhcigpfXN0YXRpY3twSihhLHQpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUHgsRjIsZHRzLEFsdD1nKCgpPT57cGUoKTtodCgpO0dhKCk7ZnIoKTtQeD1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sRjI9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGR0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLWJvdHRvbWJhciIpXSxlLHQ9W10sYSxyPXdlLG4sbz1bXSxsPVtdLHAsZD1bXSx1PVtdLGMsYj1bXSx2PVtdLHgsbT1bXSxmPVtdLHksTT1bXSx6PVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpPYmplY3R9KV0scD1bWSgpXSxjPVtZKCldLHg9W1koKV0seT1bWSgpXSxQeCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18uZXhlY3V0aW9uRW52aXJvbm1lbnQ9T30sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLFB4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2NyaXB0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfPT4ic2NyaXB0cyJpbiBfLCJoYXMiKSxnZXQ6aShfPT5fLnNjcmlwdHMsImdldCIpLHNldDppKChfLE8pPT57Xy5zY3JpcHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCx1KSxQeCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhY2thZ2VTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoXz0+InBhY2thZ2VTdGF0dXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5wYWNrYWdlU3RhdHVzLCJnZXQiKSxzZXQ6aSgoXyxPKT0+e18ucGFja2FnZVN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsdiksUHgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRkYXRlZFBhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJvdXRkYXRlZFBhY2thZ2VzImluIF8sImhhcyIpLGdldDppKF89Pl8ub3V0ZGF0ZWRQYWNrYWdlcywiZ2V0Iiksc2V0OmkoKF8sTyk9PntfLm91dGRhdGVkUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxtLGYpLFB4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDaGVja2luZ1BhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF89PiJpc0NoZWNraW5nUGFja2FnZXMiaW4gXywiaGFzIiksZ2V0OmkoXz0+Xy5pc0NoZWNraW5nUGFja2FnZXMsImdldCIpLHNldDppKChfLE8pPT57Xy5pc0NoZWNraW5nUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpDfSxNLHopLFB4KG51bGwsZT17dmFsdWU6YX0scyx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsdCksTj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9I2U9RjIodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChDKXt0aGlzLiNlPUN9I3Q9KEYyKHRoaXMsbCksRjIodGhpcyxkLHt9KSk7Z2V0IHNjcmlwdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2NyaXB0cyhDKXt0aGlzLiN0PUN9I2E9KEYyKHRoaXMsdSksRjIodGhpcyxiLCJpZGxlIikpO2dldCBwYWNrYWdlU3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBhY2thZ2VTdGF0dXMoQyl7dGhpcy4jYT1DfSNzPShGMih0aGlzLHYpLEYyKHRoaXMsbSxbXSkpO2dldCBvdXRkYXRlZFBhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG91dGRhdGVkUGFja2FnZXMoQyl7dGhpcy4jcz1DfSNpPShGMih0aGlzLGYpLEYyKHRoaXMsTSwhMSkpO2dldCBpc0NoZWNraW5nUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNDaGVja2luZ1BhY2thZ2VzKEMpe3RoaXMuI2k9Q31wZW5kaW5nUGFja2FnZVVwZGF0ZT0oRjIodGhpcyx6KSwhMSk7aGFuZGxlUHJvY2Vzc0NvbXBsZXRlPWkoQz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfSwiaGFuZGxlUHJvY2Vzc0NvbXBsZXRlIik7c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b20tYmFyIHsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgNiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLndpZGdldC5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXAtdG8tZGF0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cGRhdGVzLWF2YWlsYWJsZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLnNwaW5uaW5nIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYm90dG9tLWJhciI+CiAgICAgICAgPCEtLSBTY3JpcHQgUnVubmVyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTY3JpcHRDbGlja30KICAgICAgICAgIHRpdGxlPSJSdW4gc2NyaXB0IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHsibHVjaWRlOnBsYXkifQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5TY3JpcHRzPC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj4KCiAgICAgICAgPCEtLSBQYWNrYWdlIENoZWNrZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQgJHt0aGlzLmdldFBhY2thZ2VTdGF0dXNDbGFzcygpfSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlUGFja2FnZUNsaWNrfQogICAgICAgICAgdGl0bGU9IiR7dGhpcy5nZXRQYWNrYWdlVG9vbHRpcCgpfSIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7dGhpcy5nZXRQYWNrYWdlSWNvbigpfQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+JHt0aGlzLmdldFBhY2thZ2VTdGF0dXNUZXh0KCl9PC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8IS0tIEZ1dHVyZSB3aWRnZXRzIGNhbiBiZSBhZGRlZCBoZXJlIC0tPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHVwZGF0ZWQoQyl7Qy5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCkpfWFzeW5jIGxvYWRTY3JpcHRzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMuc2NyaXB0cz17fTtyZXR1cm59bGV0IF89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL3BhY2thZ2UuanNvbiIpLE89SlNPTi5wYXJzZShfKTt0aGlzLnNjcmlwdHM9Ty5zY3JpcHRzfHx7fX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBsb2FkIHNjcmlwdHMgZnJvbSBwYWNrYWdlLmpzb246IixDKSx0aGlzLnNjcmlwdHM9e319fWFzeW5jIGhhbmRsZVNjcmlwdENsaWNrKEMpe0Muc3RvcFByb3BhZ2F0aW9uKCk7bGV0IF89T2JqZWN0LmtleXModGhpcy5zY3JpcHRzKTtpZihfLmxlbmd0aD09PTApcmV0dXJuO2xldCBPPV8ubWFwKCQ9Pih7bmFtZTokLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnJ1blNjcmlwdCgkKX0sImFjdGlvbiIpfSkpO2F3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEMsTyl9YXN5bmMgcnVuU2NyaXB0KEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgXz17dHlwZToic2NyaXB0IixsYWJlbDpDLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJydW4iLENdLG1ldGFkYXRhOntzY3JpcHROYW1lOkN9fTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOl99KSl9YXN5bmMgY2hlY2tQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRoaXMucGFja2FnZVN0YXR1cz0iY2hlY2tpbmciLHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPSEwO2xldCBfPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oInBucG0iLFsib3V0ZGF0ZWQiLCItLWpzb24iXSksTz0iIiwkPV8ub3V0cHV0LmdldFJlYWRlcigpO2koYXN5bmMoKT0+e3RyeXtmb3IoOzspe2xldHtkb25lOmssdmFsdWU6U309YXdhaXQgJC5yZWFkKCk7aWYoaylicmVhaztPKz1TfX1jYXRjaHt9fSwicmVhZE91dHB1dCIpKCk7bGV0IEg9YXdhaXQgUHJvbWlzZS5yYWNlKFtfLmV4aXQsbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dCgoKT0+aygtMSksMWU0KSldKTt0cnl7YXdhaXQgJC5jYW5jZWwoKX1jYXRjaHt9aWYoSD09PS0xKXtjb25zb2xlLndhcm4oIlBhY2thZ2UgY2hlY2sgdGltZWQgb3V0IiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciI7cmV0dXJufWlmKEg9PT0wKXRoaXMucGFja2FnZVN0YXR1cz0idXAtdG8tZGF0ZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdO2Vsc2UgdHJ5e2xldCBrPUpTT04ucGFyc2UoTyk7dGhpcy5vdXRkYXRlZFBhY2thZ2VzPXRoaXMucGFyc2VPdXRkYXRlZFBhY2thZ2VzKGspLHRoaXMucGFja2FnZVN0YXR1cz10aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjA/InVwZGF0ZXMtYXZhaWxhYmxlIjoidXAtdG8tZGF0ZSJ9Y2F0Y2h7dGhpcy5wYWNrYWdlU3RhdHVzPSJ1cGRhdGVzLWF2YWlsYWJsZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdfX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzOiIsQyksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciJ9ZmluYWxseXt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMX19cGFyc2VPdXRkYXRlZFBhY2thZ2VzKEMpe2xldCBfPVtdO2lmKHR5cGVvZiBDPT0ib2JqZWN0IiYmQyE9PW51bGwpZm9yKGxldFtPLCRdb2YgT2JqZWN0LmVudHJpZXMoQykpe2xldCBFPSQ7Xy5wdXNoKHtuYW1lOk8sY3VycmVudDpFLmN1cnJlbnR8fCJ1bmtub3duIix3YW50ZWQ6RS53YW50ZWR8fEUuY3VycmVudHx8InVua25vd24iLGxhdGVzdDpFLmxhdGVzdHx8RS53YW50ZWR8fCJ1bmtub3duIix0eXBlOkUuZGVwZW5kZW5jeVR5cGU9PT0iZGV2RGVwZW5kZW5jaWVzIj8iZGV2RGVwZW5kZW5jaWVzIjoiZGVwZW5kZW5jaWVzIn0pfXJldHVybiBffWFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayhDKXtDLnN0b3BQcm9wYWdhdGlvbigpO2xldCBfPVtdO2lmKF8ucHVzaCh7bmFtZTp0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iQ2hlY2tpbmcuLi4iOiJDaGVjayBmb3IgdXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKGFzeW5jKCk9PntpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm47bGV0IE89e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoiY2hlY2sgcGFja2FnZXMiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJvdXRkYXRlZCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOk99KSksc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksM2UzKX0sImFjdGlvbiIpfSksdGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wKXtfLnB1c2goe2RpdmlkZXI6ITB9KTtsZXQgTz10aGlzLm91dGRhdGVkUGFja2FnZXMuc2xpY2UoMCwxMCk7Zm9yKGxldCAkIG9mIE8pXy5wdXNoKHtuYW1lOmAkeyQubmFtZX06ICR7JC5jdXJyZW50fSBcdTIxOTIgJHskLmxhdGVzdH1gLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlUGFja2FnZSgkLm5hbWUpfSwiYWN0aW9uIil9KTt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjEwJiZfLnB1c2goe25hbWU6YC4uLiBhbmQgJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoLTEwfSBtb3JlYCxpY29uTmFtZToibHVjaWRlOm1vcmVIb3Jpem9udGFsIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIil9KSxfLnB1c2goe2RpdmlkZXI6ITB9KSxfLnB1c2goe25hbWU6IlVwZGF0ZSBhbGwgcGFja2FnZXMiLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlQWxsUGFja2FnZXMoKX0sImFjdGlvbiIpfSl9YXdhaXQgJGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQyxfKX1hc3luYyB1cGRhdGVQYWNrYWdlKEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBfPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6YHVwZGF0ZSAke0N9YCxjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiLENdLG1ldGFkYXRhOntwYWNrYWdlTmFtZTpDfX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpffSkpfWFzeW5jIHVwZGF0ZUFsbFBhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IEM9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoidXBkYXRlIGFsbCIsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0Il19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6Q30pKX1nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKXtyZXR1cm4gdGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IiI6dGhpcy5wYWNrYWdlU3RhdHVzfWdldFBhY2thZ2VJY29uKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuImx1Y2lkZTpsb2FkZXIyIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJsdWNpZGU6Y2hlY2tDaXJjbGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybiJsdWNpZGU6YWxlcnRDaXJjbGUiO2Nhc2UiZXJyb3IiOnJldHVybiJsdWNpZGU6eENpcmNsZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnBhY2thZ2UifX1nZXRQYWNrYWdlU3RhdHVzVGV4dCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iVXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9YDtjYXNlImVycm9yIjpyZXR1cm4iQ2hlY2sgZmFpbGVkIjtkZWZhdWx0OnJldHVybiJQYWNrYWdlcyJ9fWdldFBhY2thZ2VUb29sdGlwKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nIGZvciBwYWNrYWdlIHVwZGF0ZXMuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIkFsbCBwYWNrYWdlcyBhcmUgdXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDtjYXNlImVycm9yIjpyZXR1cm4iRmFpbGVkIHRvIGNoZWNrIGZvciB1cGRhdGVzLiBDbGljayB0byByZXRyeS4iO2RlZmF1bHQ6cmV0dXJuIkNsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMifX1hc3luYyByZWZyZXNoUGFja2FnZVN0YXR1cygpe2F3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHJlZnJlc2hTY3JpcHRzKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpfXN0YXRpY3tGMihhLHQpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgdTJlLE5sdD1nKCgpPT57dTJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVTY3JpcHRJbnRlbGxpU2Vuc2VNYW5hZ2VyIil9bG9hZGVkTGlicz1uZXcgU2V0O25vdEZvdW5kUGFja2FnZXM9bmV3IFNldDttb25hY29JbnN0YW5jZT1udWxsO2V4ZWN1dGlvbkVudmlyb25tZW50PW51bGw7ZmlsZUNhY2hlPW5ldyBNYXA7YWRkZWRFeHRyYUxpYnM9bmV3IE1hcDtnZXQgdHNBcGkoKXtyZXR1cm4gdGhpcy5tb25hY29JbnN0YW5jZT90aGlzLm1vbmFjb0luc3RhbmNlLmxhbmd1YWdlcy50eXBlc2NyaXB0Om51bGx9YXN5bmMgaW5pdChlLHQpe3RoaXMubW9uYWNvSW5zdGFuY2U9ZSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50PXQsdGhpcy5jb25maWd1cmVDb21waWxlck9wdGlvbnMoKSxhd2FpdCB0aGlzLmxvYWRBbGxQcm9qZWN0RmlsZXMoKX1hc3luYyBsb2FkQWxsUHJvamVjdEZpbGVzKCl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5sb2FkRmlsZXNGcm9tRGlyZWN0b3J5KCIvIil9YXN5bmMgbG9hZEZpbGVzRnJvbURpcmVjdG9yeShlKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoZSk7Zm9yKGxldCBhIG9mIHQpe2xldCByPWU9PT0iLyI/YC8ke2EubmFtZX1gOmAke2V9LyR7YS5uYW1lfWA7aWYoYS5uYW1lIT09Im5vZGVfbW9kdWxlcyIpe2lmKGEudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeShyKTtlbHNlIGlmKGEudHlwZT09PSJmaWxlIil7bGV0IG49YS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7aWYobj09PSJ0cyJ8fG49PT0idHN4Inx8bj09PSJqcyJ8fG49PT0ianN4Iil0cnl7bGV0IG89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShyKTt0aGlzLmFkZEZpbGVNb2RlbChyLG8pfWNhdGNoe319fX19Y2F0Y2h7fX1jb25maWd1cmVDb21waWxlck9wdGlvbnMoKXtsZXQgZT10aGlzLnRzQXBpO2UmJihlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRDb21waWxlck9wdGlvbnMoe3RhcmdldDplLlNjcmlwdFRhcmdldC5FUzIwMjAsbW9kdWxlOmUuTW9kdWxlS2luZC5FU05leHQsbW9kdWxlUmVzb2x1dGlvbjplLk1vZHVsZVJlc29sdXRpb25LaW5kLkJ1bmRsZXI/P2UuTW9kdWxlUmVzb2x1dGlvbktpbmQuTm9kZUpzLGFsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHM6ITAsZXNNb2R1bGVJbnRlcm9wOiEwLHN0cmljdDohMCxub0VtaXQ6ITAsYWxsb3dKczohMCxjaGVja0pzOiExLGFsbG93Tm9uVHNFeHRlbnNpb25zOiEwLGxpYjpbImVzMjAyMCIsImRvbSIsImRvbS5pdGVyYWJsZSJdLGJhc2VVcmw6Ii8iLGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiEwLHJlc29sdmVKc29uTW9kdWxlOiEwfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RGlhZ25vc3RpY3NPcHRpb25zKHtub1NlbWFudGljVmFsaWRhdGlvbjohMSxub1N5bnRheFZhbGlkYXRpb246ITF9KSxlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRFYWdlck1vZGVsU3luYyghMCkpfXBhcnNlSW1wb3J0cyhlKXtsZXQgdD1bXSxhPS9pbXBvcnRccysoPzpbXHcqe31ccyxdK2Zyb21ccyspP1snIl0oW14nIl0rKVsnIl0vZyxyO2Zvcig7KHI9YS5leGVjKGUpKSE9PW51bGw7KXtsZXQgbz1yWzFdO2lmKCFvLnN0YXJ0c1dpdGgoIi4iKSYmIW8uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbD1vLnN0YXJ0c1dpdGgoIkAiKT9vLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6by5zcGxpdCgiLyIpWzBdO3QucHVzaChsKX19bGV0IG49L3JlcXVpcmVccypcKFxzKlsnIl0oW14nIl0rKVsnIl1ccypcKS9nO2Zvcig7KHI9bi5leGVjKGUpKSE9PW51bGw7KXtsZXQgbz1yWzFdO2lmKCFvLnN0YXJ0c1dpdGgoIi4iKSYmIW8uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbD1vLnN0YXJ0c1dpdGgoIkAiKT9vLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6by5zcGxpdCgiLyIpWzBdO3QucHVzaChsKX19cmV0dXJuWy4uLm5ldyBTZXQodCldfWFzeW5jIGxvYWRUeXBlc0ZvclBhY2thZ2UoZSl7aWYoISghdGhpcy5tb25hY29JbnN0YW5jZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpJiYhdGhpcy5sb2FkZWRMaWJzLmhhcyhlKSYmIXRoaXMubm90Rm91bmRQYWNrYWdlcy5oYXMoZSkpdHJ5e2xldCB0PWF3YWl0IHRoaXMudHJ5TG9hZFBhY2thZ2VUeXBlcyhlKTt0fHwodD1hd2FpdCB0aGlzLnRyeUxvYWRBdFR5cGVzUGFja2FnZShlKSksdD90aGlzLmxvYWRlZExpYnMuYWRkKGUpOnRoaXMubm90Rm91bmRQYWNrYWdlcy5hZGQoZSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKGBGYWlsZWQgdG8gbG9hZCB0eXBlcyBmb3IgJHtlfTpgLHQpfX1hc3luYyB0cnlMb2FkUGFja2FnZVR5cGVzKGUpe2xldCB0PXRoaXMudHNBcGk7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0KXJldHVybiExO2xldCBhPWAvbm9kZV9tb2R1bGVzLyR7ZX1gO3RyeXtsZXQgcj1gJHthfS9wYWNrYWdlLmpzb25gO2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHIpKXtsZXQgbD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHIpLHA9SlNPTi5wYXJzZShsKTtpZih0LnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihsLGBmaWxlOi8vJHtyfWApLHAudHlwZXN8fHAudHlwaW5ncylyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShhKSwhMH1sZXQgbz1bYCR7YX0vaW5kZXguZC50c2AsYCR7YX0vZGlzdC9pbmRleC5kLnRzYCxgJHthfS9saWIvaW5kZXguZC50c2BdO2ZvcihsZXQgbCBvZiBvKWlmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKGwpKXJldHVybiBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGEpLCEwO3JldHVybiExfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBwYWNrYWdlIHR5cGVzIGZvciAke2V9OmAsciksITF9fWFzeW5jIGxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGUpe2xldCB0PXRoaXMudHNBcGk7IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0fHxhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl9YXN5bmMgbG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShlKXtsZXQgdD10aGlzLnRzQXBpO2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0KSl0cnl7bGV0IGE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgciBvZiBhKXtsZXQgbj1lPT09Ii8iP2AvJHtyLm5hbWV9YDpgJHtlfS8ke3IubmFtZX1gO2lmKHIubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihyLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3Rvcnkobik7ZWxzZSBpZihyLnR5cGU9PT0iZmlsZSImJnIubmFtZS5lbmRzV2l0aCgiLmQudHMiKSl0cnl7bGV0IG89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShuKTt0LnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihvLGBmaWxlOi8vJHtufWApfWNhdGNoe319fX1jYXRjaHt9fWFzeW5jIHRyeUxvYWRBdFR5cGVzUGFja2FnZShlKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm4hMTtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke2Uuc3RhcnRzV2l0aCgiQCIpP2BAdHlwZXMvJHtlLnNsaWNlKDEpLnJlcGxhY2UoIi8iLCJfXyIpfWA6YEB0eXBlcy8ke2V9YH1gO3RyeXtsZXQgcj1gJHthfS9pbmRleC5kLnRzYDtyZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMocik/KGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoYSksITApOiExfWNhdGNoe3JldHVybiExfX1hc3luYyBwcm9jZXNzQ29udGVudENoYW5nZShlKXtsZXQgdD10aGlzLnBhcnNlSW1wb3J0cyhlKTtmb3IobGV0IGEgb2YgdCl0aGlzLmxvYWRlZExpYnMuaGFzKGEpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2UoYSl9YXN5bmMgc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLm5vdEZvdW5kUGFja2FnZXMuY2xlYXIoKTt0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbm9kZV9tb2R1bGVzIikpcmV0dXJuO2xldCBlPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigiL25vZGVfbW9kdWxlcyIpO2ZvcihsZXQgdCBvZiBlKWlmKHQudHlwZT09PSJkaXJlY3RvcnkiKWlmKHQubmFtZS5zdGFydHNXaXRoKCJAIikpdHJ5e2xldCBhPWAvbm9kZV9tb2R1bGVzLyR7dC5uYW1lfWAscj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoYSk7Zm9yKGxldCBuIG9mIHIpaWYobi50eXBlPT09ImRpcmVjdG9yeSIpe2xldCBvPWAke3QubmFtZX0vJHtuLm5hbWV9YDthd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2Uobyl9fWNhdGNoe31lbHNlIHQubmFtZS5zdGFydHNXaXRoKCIuIil8fGF3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZSh0Lm5hbWUpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIHNjYW4gbm9kZV9tb2R1bGVzOiIsZSl9fX1hZGRGaWxlTW9kZWwoZSx0KXtpZighdGhpcy5tb25hY29JbnN0YW5jZSlyZXR1cm47dGhpcy5maWxlQ2FjaGUuc2V0KGUsdCk7bGV0IGE9dGhpcy5tb25hY29JbnN0YW5jZS5VcmkucGFyc2UoYGZpbGU6Ly8ke2V9YCkscj10aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5nZXRNb2RlbChhKTtpZihyKXIuZ2V0VmFsdWUoKSE9PXQmJnIuc2V0VmFsdWUodCk7ZWxzZXtsZXQgbj10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoZSk7dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuY3JlYXRlTW9kZWwodCxuLGEpfXRoaXMuYWRkRmlsZUFzRXh0cmFMaWIoZSx0KX1hZGRGaWxlQXNFeHRyYUxpYihlLHQpe2xldCBhPXRoaXMudHNBcGk7aWYoIWEpcmV0dXJuO2xldCByPXRoaXMuYWRkZWRFeHRyYUxpYnMuZ2V0KGUpO3ImJnIuZGlzcG9zZSgpO2xldCBuPWBmaWxlOi8vJHtlfWAsbz1hLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYih0LG4pO2lmKHRoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGUsbyksZS5lbmRzV2l0aCgiLnRzIikmJiFlLmVuZHNXaXRoKCIuZC50cyIpKXtsZXQgbD1lLnJlcGxhY2UoL1wudHMkLywiLmpzIikscD1gZmlsZTovLyR7bH1gLGQ9YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIodCxwKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChsLGQpLHRoaXMuZmlsZUNhY2hlLnNldChsLHQpfWVsc2UgaWYoZS5lbmRzV2l0aCgiLnRzeCIpKXtsZXQgbD1lLnJlcGxhY2UoL1wudHN4JC8sIi5qc3giKSxwPWBmaWxlOi8vJHtsfWAsZD1hLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYih0LHApO3RoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGwsZCksdGhpcy5maWxlQ2FjaGUuc2V0KGwsdCl9fWdldEZpbGVDb250ZW50KGUpe3JldHVybiB0aGlzLmZpbGVDYWNoZS5nZXQoZSl9Z2V0TGFuZ3VhZ2VGcm9tUGF0aChlKXtzd2l0Y2goZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7ZGVmYXVsdDpyZXR1cm4icGxhaW50ZXh0In19fX0pO3ZhciBkNyxmYyx1dHMsUmx0PWcoKCk9PntwZSgpO2t0KCk7Rm90KCk7aHQoKTtIZygpO2Q3PWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxmYz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sdXRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IiKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXSx5LE09W10sej1bXSxOLEM9W10sXz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZURpZmZFZGl0b3IiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtMKHt0eXBlOlN0cmluZ30pXSxwPVtMKHt0eXBlOlN0cmluZ30pXSxjPVtMKHt0eXBlOlN0cmluZ30pXSx4PVtMKHt0eXBlOlN0cmluZ30pXSx5PVtMKHt0eXBlOlN0cmluZ30pXSxOPVtMKHt0eXBlOlN0cmluZ30pXSxkNyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ib3JpZ2luYWxDb250ZW50ImluIEUsImhhcyIpLGdldDppKEU9PkUub3JpZ2luYWxDb250ZW50LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uub3JpZ2luYWxDb250ZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sbyxsKSxkNyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGlmaWVkQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibW9kaWZpZWRDb250ZW50ImluIEUsImhhcyIpLGdldDppKEU9PkUubW9kaWZpZWRDb250ZW50LCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0UubW9kaWZpZWRDb250ZW50PUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCx1KSxkNyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsTGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9yaWdpbmFsTGFiZWwiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5vcmlnaW5hbExhYmVsLCJnZXQiKSxzZXQ6aSgoRSxIKT0+e0Uub3JpZ2luYWxMYWJlbD1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LGIsdiksZDcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJtb2RpZmllZExhYmVsImluIEUsImhhcyIpLGdldDppKEU9PkUubW9kaWZpZWRMYWJlbCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLm1vZGlmaWVkTGFiZWw9SH0sInNldCIpfSxtZXRhZGF0YTokfSxtLGYpLGQ3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imxhbmd1YWdlImluIEUsImhhcyIpLGdldDppKEU9PkUubGFuZ3VhZ2UsImdldCIpLHNldDppKChFLEgpPT57RS5sYW5ndWFnZT1IfSwic2V0Iil9LG1ldGFkYXRhOiR9LE0seiksZDcodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZmlsZVBhdGgiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5maWxlUGF0aCwiZ2V0Iiksc2V0OmkoKEUsSCk9PntFLmZpbGVQYXRoPUh9LCJzZXQiKX0sbWV0YWRhdGE6JH0sQyxfKSxkNyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTokfSxudWxsLHQpLE89YT1lLnZhbHVlLCQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IKICAgICAgLm9yaWdpbmFsQ29udGVudD0ke2BmdW5jdGlvbiBoZWxsbygpIHsKICBjb25zb2xlLmxvZygiSGVsbG8iKTsKfWB9CiAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIFdvcmxkISIpOwogIHJldHVybiB0cnVlOwp9YH0KICAgICAgLmxhbmd1YWdlPSR7InR5cGVzY3JpcHQifQogICAgICAuZmlsZVBhdGg9JHsiL2RlbW8vZXhhbXBsZS50cyJ9CiAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtkaWZmRWRpdG9yRGVmZXJyZWQ9dXQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9ZmModGhpcyxvLCIiKTtnZXQgb3JpZ2luYWxDb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9yaWdpbmFsQ29udGVudCgkKXt0aGlzLiNlPSR9I3Q9KGZjKHRoaXMsbCksZmModGhpcyxkLCIiKSk7Z2V0IG1vZGlmaWVkQ29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RpZmllZENvbnRlbnQoJCl7dGhpcy4jdD0kfSNhPShmYyh0aGlzLHUpLGZjKHRoaXMsYiwiRGlzayBWZXJzaW9uIikpO2dldCBvcmlnaW5hbExhYmVsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9yaWdpbmFsTGFiZWwoJCl7dGhpcy4jYT0kfSNzPShmYyh0aGlzLHYpLGZjKHRoaXMsbSwiTG9jYWwgVmVyc2lvbiIpKTtnZXQgbW9kaWZpZWRMYWJlbCgpe3JldHVybiB0aGlzLiNzfXNldCBtb2RpZmllZExhYmVsKCQpe3RoaXMuI3M9JH0jaT0oZmModGhpcyxmKSxmYyh0aGlzLE0sInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhbmd1YWdlKCQpe3RoaXMuI2k9JH0jcj0oZmModGhpcyx6KSxmYyh0aGlzLEMsIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsZVBhdGgoJCl7dGhpcy4jcj0kfWRpZmZFZGl0b3I9KGZjKHRoaXMsXyksbnVsbCk7bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbDtvcmlnaW5hbE1vZGVsPW51bGw7bW9kaWZpZWRNb2RlbD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxqaS5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlmZi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZGlmZi10b29sYmFyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kaWZmLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWZpbGVuYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWxhYmVscyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpZmYtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgJD10aGlzLmZpbGVQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJmaWxlIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlmZi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLXRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1pbmZvIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtZmlsZW5hbWUiPiR7JH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWxhYmVscyI+JHt0aGlzLm9yaWdpbmFsTGFiZWx9IOKGlCAke3RoaXMubW9kaWZpZWRMYWJlbH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtYWN0aW9ucyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9QcmV2aW91c0RpZmZ9CiAgICAgICAgICAgICAgPlByZXZpb3VzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9OZXh0RGlmZn0KICAgICAgICAgICAgICA+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24tYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJoaWdobGlnaHRlZCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0TG9jYWx9CiAgICAgICAgICAgICAgPlVzZSBMb2NhbDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHREaXNrfQogICAgICAgICAgICAgID5Vc2UgRGlzazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jbG9zZX0KICAgICAgICAgICAgICA+Q2xvc2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuZXcgTWFwKSxhd2FpdCB0aGlzLmluaXREaWZmRWRpdG9yKCl9YXN5bmMgaW5pdERpZmZFZGl0b3IoKXtsZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kaWZmLWNvbnRhaW5lciIpO2lmKCEkKXJldHVybjtsZXQgRT1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7STFlfWAsSD13aW5kb3cubW9uYWNvO0h8fChhd2FpdCBuZXcgUHJvbWlzZShXPT57bGV0IG1lPXNldEludGVydmFsKCgpPT57d2luZG93Lm1vbmFjbyYmKGNsZWFySW50ZXJ2YWwobWUpLFcoKSl9LDEwMCl9KSxIPXdpbmRvdy5tb25hY28pO2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLEk9ay50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLFA9RGF0ZS5ub3coKSxSPUguVXJpLnBhcnNlKGBkaWZmOi8vb3JpZ2luYWwvJHtQfSR7dGhpcy5maWxlUGF0aH1gKSxLPUguVXJpLnBhcnNlKGBkaWZmOi8vbW9kaWZpZWQvJHtQfSR7dGhpcy5maWxlUGF0aH1gKTt0aGlzLm9yaWdpbmFsTW9kZWw9SC5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5vcmlnaW5hbENvbnRlbnQsdGhpcy5sYW5ndWFnZSxSKSx0aGlzLm1vZGlmaWVkTW9kZWw9SC5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5tb2RpZmllZENvbnRlbnQsdGhpcy5sYW5ndWFnZSxLKSx0aGlzLmRpZmZFZGl0b3I9SC5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcigkLHthdXRvbWF0aWNMYXlvdXQ6ITAscmVhZE9ubHk6ITEsb3JpZ2luYWxFZGl0YWJsZTohMSxyZW5kZXJTaWRlQnlTaWRlOiEwLGlnbm9yZVRyaW1XaGl0ZXNwYWNlOiExLGZvbnRTaXplOjE0LG1pbmltYXA6e2VuYWJsZWQ6ITF9fSksSC5lZGl0b3Iuc2V0VGhlbWUoSSksdGhpcy5kaWZmRWRpdG9yLnNldE1vZGVsKHtvcmlnaW5hbDp0aGlzLm9yaWdpbmFsTW9kZWwsbW9kaWZpZWQ6dGhpcy5tb2RpZmllZE1vZGVsfSksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1rLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFc9PntsZXQgbWU9Vz8idnMiOiJ2cy1kYXJrIjtILmVkaXRvci5zZXRUaGVtZShtZSl9KTtsZXQgVj0ibW9uYWNvLWRpZmYtZWRpdG9yLWNzcyI7aWYoIXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoVikpe2xldCBtZT1hd2FpdChhd2FpdCBmZXRjaChgJHtFfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksQj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0IuaWQ9VixCLnRleHRDb250ZW50PW1lLHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kKEIpfXNldFRpbWVvdXQoKCk9Pnt0cnl7dGhpcy5kaWZmRWRpdG9yPy5yZXZlYWxGaXJzdERpZmYoKX1jYXRjaHt9fSwxMDApLHRoaXMuZGlmZkVkaXRvckRlZmVycmVkLnJlc29sdmUodGhpcy5kaWZmRWRpdG9yKX1nb1RvTmV4dERpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigibmV4dCIpfWNhdGNoe319Z29Ub1ByZXZpb3VzRGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJwcmV2aW91cyIpfWNhdGNoe319YWNjZXB0TG9jYWwoKXtsZXQgJD10aGlzLmRpZmZFZGl0b3I/LmdldE1vZGlmaWVkRWRpdG9yKCkuZ2V0VmFsdWUoKXx8dGhpcy5tb2RpZmllZENvbnRlbnQ7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtbG9jYWwiLGNvbnRlbnQ6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hY2NlcHREaXNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtZGlzayIsY29udGVudDp0aGlzLm9yaWdpbmFsQ29udGVudH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtY2xvc2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMub3JpZ2luYWxNb2RlbCYmKHRoaXMub3JpZ2luYWxNb2RlbC5kaXNwb3NlKCksdGhpcy5vcmlnaW5hbE1vZGVsPW51bGwpLHRoaXMubW9kaWZpZWRNb2RlbCYmKHRoaXMubW9kaWZpZWRNb2RlbC5kaXNwb3NlKCksdGhpcy5tb2RpZmllZE1vZGVsPW51bGwpLHRoaXMuZGlmZkVkaXRvciYmKHRoaXMuZGlmZkVkaXRvci5kaXNwb3NlKCksdGhpcy5kaWZmRWRpdG9yPW51bGwpfXN0YXRpY3tmYyhhLHQpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgTmksbmEscHRzLEFTYT1nKCgpPT57cGUoKTtrdCgpO2h0KCk7bDJlKCk7VmcoKTtkMmUoKTtkMmUoKTt1SigpO3VKKCk7SWx0KCk7QWx0KCk7R2EoKTtWZygpO05sdCgpO2ZyKCk7SXQoKTthMmUoKTtSbHQoKTtOaT1mdW5jdGlvbihzLGUsdCxhLHIsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxwPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZzP2Euc3RhdGljP3M6cy5wcm90b3R5cGU6bnVsbCx1PWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxjLGI9ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIG0gaW4gYSl4W21dPW09PT0iYWNjZXNzIj97fTphW21dO2Zvcih2YXIgbSBpbiBhLmFjY2Vzcyl4LmFjY2Vzc1ttXT1hLmFjY2Vzc1ttXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZj0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtwXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZj09PXZvaWQgMCljb250aW51ZTtpZihmPT09bnVsbHx8dHlwZW9mIGYhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhjPW8oZi5nZXQpKSYmKHUuZ2V0PWMpLChjPW8oZi5zZXQpKSYmKHUuc2V0PWMpLChjPW8oZi5pbml0KSkmJnIudW5zaGlmdChjKX1lbHNlKGM9byhmKSkmJihsPT09ImZpZWxkIj9yLnVuc2hpZnQoYyk6dVtwXT1jKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsdSksYj0hMH0sbmE9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LHB0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlIildLGUsdD1bXSxhLHI9d2UsbixvPVtdLGw9W10scCxkPVtdLHU9W10sYyxiPVtdLHY9W10seCxtPVtdLGY9W10seSxNPVtdLHo9W10sTixDPVtdLF89W10sTywkPVtdLEU9W10sSCxrPVtdLFM9W10sSSxQPVtdLFI9W10sSyxWPVtdLFc9W10sbWUsQj1bXSxVPVtdLGhlLEY9W10saj1bXSx1ZSxsZT1bXSxRPVtdLGllLHRlPVtdLGVlPVtdLGtlLFg9W10sWj1bXSx5ZSxxPVtdLEE9W10sc2Usb2U9W10sYWU9W10sVGUsUmU9W10sQmU9W10sR2UsRGU9W10sX2U9W10sQ2UsdmU9W10sYmU9W10sRWUsamU9W10sV2U9W10sc3QsTWU9W10sZ2U9W107dmFyIEllPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGNlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W0woe3R5cGU6T2JqZWN0fSldLHA9W0woe2F0dHJpYnV0ZTohMX0pXSxjPVtMKHt0eXBlOkJvb2xlYW59KV0seD1bTCh7dHlwZTpCb29sZWFufSldLHk9W0woe3R5cGU6TnVtYmVyfSldLE49W0woe3R5cGU6TnVtYmVyfSldLE89W1koKV0sSD1bWSgpXSxJPVtZKCldLEs9W1koKV0sbWU9W1koKV0saGU9W1koKV0sdWU9W1koKV0saWU9W1koKV0sa2U9W1koKV0seWU9W1koKV0sc2U9W1koKV0sVGU9W1koKV0sR2U9W1koKV0sQ2U9W1koKV0sRWU9W1koKV0sc3Q9W1koKV0sTmkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuZXhlY3V0aW9uRW52aXJvbm1lbnQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5leGVjdXRpb25FbnZpcm9ubWVudD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sbyxsKSxOaSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxpemF0aW9uUHJvbWlzZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImluaXRpYWxpemF0aW9uUHJvbWlzZSJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmluaXRpYWxpemF0aW9uUHJvbWlzZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmluaXRpYWxpemF0aW9uUHJvbWlzZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sZCx1KSxOaSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dGaWxlVHJlZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InNob3dGaWxlVHJlZSJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnNob3dGaWxlVHJlZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLnNob3dGaWxlVHJlZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sYix2KSxOaSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InNob3dUZXJtaW5hbCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnNob3dUZXJtaW5hbCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLnNob3dUZXJtaW5hbD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sbSxmKSxOaSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJmaWxlVHJlZVdpZHRoImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuZmlsZVRyZWVXaWR0aCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmZpbGVUcmVlV2lkdGg9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LE0seiksTmkodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InRlcm1pbmFsSGVpZ2h0ImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUudGVybWluYWxIZWlnaHQsImdldCIpLHNldDppKChkZSxMZSk9PntkZS50ZXJtaW5hbEhlaWdodD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sQyxfKSxOaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5GaWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+Im9wZW5GaWxlcyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLm9wZW5GaWxlcywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLm9wZW5GaWxlcz1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sJCxFKSxOaSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUZpbGVQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iYWN0aXZlRmlsZVBhdGgiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5hY3RpdmVGaWxlUGF0aCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmFjdGl2ZUZpbGVQYXRoPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxrLFMpLE5pKHRoaXMsbnVsbCxJLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNUZXJtaW5hbENvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImlzVGVybWluYWxDb2xsYXBzZWQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pc1Rlcm1pbmFsQ29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaXNUZXJtaW5hbENvbGxhcHNlZD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sUCxSKSxOaSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRmlsZVRyZWVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0ZpbGVUcmVlQ29sbGFwc2VkImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuaXNGaWxlVHJlZUNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzRmlsZVRyZWVDb2xsYXBzZWQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFYsVyksTmkodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNJbml0aWFsaXppbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpc0luaXRpYWxpemluZyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzSW5pdGlhbGl6aW5nLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaXNJbml0aWFsaXppbmc9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LEIsVSksTmkodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQm90dG9tUGFuZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJhY3RpdmVCb3R0b21QYW5lbCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmFjdGl2ZUJvdHRvbVBhbmVsLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuYWN0aXZlQm90dG9tUGFuZWw9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LEYsaiksTmkodGhpcyxudWxsLHVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlhZ25vc3RpY01hcmtlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJkaWFnbm9zdGljTWFya2VycyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmRpYWdub3N0aWNNYXJrZXJzLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuZGlhZ25vc3RpY01hcmtlcnM9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LGxlLFEpLE5pKHRoaXMsbnVsbCxpZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TYXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iYXV0b1NhdmUiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5hdXRvU2F2ZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmF1dG9TYXZlPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSx0ZSxlZSksTmkodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZGU9PiJpbml0Q29tbWFuZCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmluaXRDb21tYW5kLCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaW5pdENvbW1hbmQ9TGV9LCJzZXQiKX0sbWV0YWRhdGE6Y2V9LFgsWiksTmkodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdE91dHB1dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImluaXRPdXRwdXQiaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5pbml0T3V0cHV0LCJnZXQiKSxzZXQ6aSgoZGUsTGUpPT57ZGUuaW5pdE91dHB1dD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0scSxBKSxOaSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50RmlsZVRyZWVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImN1cnJlbnRGaWxlVHJlZVdpZHRoImluIGRlLCJoYXMiKSxnZXQ6aShkZT0+ZGUuY3VycmVudEZpbGVUcmVlV2lkdGgsImdldCIpLHNldDppKChkZSxMZSk9PntkZS5jdXJyZW50RmlsZVRyZWVXaWR0aD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sb2UsYWUpLE5pKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImN1cnJlbnRUZXJtaW5hbEhlaWdodCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmN1cnJlbnRUZXJtaW5hbEhlaWdodCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sUmUsQmUpLE5pKHRoaXMsbnVsbCxHZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdGaWxlVHJlZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImlzRHJhZ2dpbmdGaWxlVHJlZSJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzRHJhZ2dpbmdGaWxlVHJlZSwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzRHJhZ2dpbmdGaWxlVHJlZT1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sRGUsX2UpLE5pKHRoaXMsbnVsbCxDZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+ImlzRHJhZ2dpbmdUZXJtaW5hbCJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLmlzRHJhZ2dpbmdUZXJtaW5hbCwiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmlzRHJhZ2dpbmdUZXJtaW5hbD1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0sdmUsYmUpLE5pKHRoaXMsbnVsbCxFZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dEaWZmVmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShkZT0+InNob3dEaWZmVmlldyJpbiBkZSwiaGFzIiksZ2V0OmkoZGU9PmRlLnNob3dEaWZmVmlldywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLnNob3dEaWZmVmlldz1MZX0sInNldCIpfSxtZXRhZGF0YTpjZX0samUsV2UpLE5pKHRoaXMsbnVsbCxzdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpZmZWaWV3Q29uZmlnIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGRlPT4iZGlmZlZpZXdDb25maWciaW4gZGUsImhhcyIpLGdldDppKGRlPT5kZS5kaWZmVmlld0NvbmZpZywiZ2V0Iiksc2V0OmkoKGRlLExlKT0+e2RlLmRpZmZWaWV3Q29uZmlnPUxlfSwic2V0Iil9LG1ldGFkYXRhOmNlfSxNZSxnZSksTmkobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Y2V9LG51bGwsdCksSWU9YT1lLnZhbHVlLGNlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmNlfSl9c3RhdGljIGRlbW89aSgoKT0+e2xldCBjZT1uZXcgTHgsZGU9KGFzeW5jKCk9Pnthd2FpdCBjZS5pbml0KCk7bGV0IFllPXsicGFja2FnZS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe25hbWU6ImRlbW8tcHJvamVjdCIsdmVyc2lvbjoiMS4wLjAiLHR5cGU6Im1vZHVsZSIsc2NyaXB0czp7YnVpbGQ6InRzYyIsZGV2OiJ0c2MgLS13YXRjaCJ9LGRlcGVuZGVuY2llczp7IkBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSI6Il40LjIuMyJ9LGRldkRlcGVuZGVuY2llczp7IkB0eXBlcy9ub2RlIjoiXjIyLjAuMCIsdHlwZXNjcmlwdDoiXjUuMC4wIn19LG51bGwsMil9fSwibnBtZXh0cmEuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtkZWVzRWRpdG9yV29ya3NwYWNlOntvbkluaXQ6InBucG0gaW5zdGFsbCJ9fSxudWxsLDIpfX0sInRzY29uZmlnLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7Y29tcGlsZXJPcHRpb25zOnt0YXJnZXQ6IkVTMjAyMiIsbW9kdWxlOiJOb2RlTmV4dCIsbW9kdWxlUmVzb2x1dGlvbjoiTm9kZU5leHQiLHN0cmljdDohMCxvdXREaXI6Ii4vZGlzdCIscm9vdERpcjoiLi9zcmMiLGRlY2xhcmF0aW9uOiEwfSxpbmNsdWRlOlsic3JjLyoqLyoiXX0sbnVsbCwyKX19LHNyYzp7ZGlyZWN0b3J5OnsiaW5kZXgudHMiOntmaWxlOntjb250ZW50czpgLy8gTWFpbiBlbnRyeSBwb2ludAppbXBvcnQgeyBncmVldCwgZm9ybWF0TmFtZSB9IGZyb20gJy4vdXRpbHMuanMnOwoKY29uc3QgbmFtZSA9IGZvcm1hdE5hbWUoJ1dvcmxkJyk7CmNvbnNvbGUubG9nKGdyZWV0KG5hbWUpKTsKCi8vIEV4YW1wbGUgYXN5bmMgZnVuY3Rpb24KYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoJ0hlbGxvIGZyb20gYXN5bmMhJyk7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKbWFpbigpOwpgfX0sInV0aWxzLnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFV0aWxpdHkgZnVuY3Rpb25zCgpleHBvcnQgaW50ZXJmYWNlIElVc2VyIHsKICBmaXJzdE5hbWU6IHN0cmluZzsKICBsYXN0TmFtZTogc3RyaW5nOwp9CgpleHBvcnQgZnVuY3Rpb24gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gXGBIZWxsbywgXCR7bmFtZX0hXGA7Cn0KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIG5hbWUudHJpbSgpLnRvVXBwZXJDYXNlKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2VyKGZpcnN0TmFtZTogc3RyaW5nLCBsYXN0TmFtZTogc3RyaW5nKTogSVVzZXIgewogIHJldHVybiB7IGZpcnN0TmFtZSwgbGFzdE5hbWUgfTsKfQpgfX0sImltcG9ydHRlc3QudHMiOntmaWxlOntjb250ZW50czpgLy8gVGVzdCBucG0gcGFja2FnZSBpbXBvcnRzCmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnOwoKLy8gVGhpcyBzaG91bGQgaGF2ZSBJbnRlbGxpU2Vuc2Ugc2hvd2luZyBkZWZlcigpIG1ldGhvZApjb25zdCBkZWZlcnJlZCA9IHNtYXJ0cHJvbWlzZS5kZWZlcjxzdHJpbmc+KCk7CgovLyBUZXN0IHVzaW5nIHRoZSBkZWZlcnJlZCBwcm9taXNlCmFzeW5jIGZ1bmN0aW9uIHRlc3RTbWFydFByb21pc2UoKSB7CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkZWZlcnJlZC5yZXNvbHZlKCdIZWxsbyBmcm9tIHNtYXJ0cHJvbWlzZSEnKTsKICB9LCAxMDApOwoKICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWZlcnJlZC5wcm9taXNlOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCnRlc3RTbWFydFByb21pc2UoKTsKYH19fX19O2F3YWl0IGNlLm1vdW50KFllKX0pKCksTGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgS2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy13b3Jrc3BhY2UiKTtyZXR1cm4gS2UuZXhlY3V0aW9uRW52aXJvbm1lbnQ9Y2UsS2UuaW5pdGlhbGl6YXRpb25Qcm9taXNlPWRlLExlLmFwcGVuZENoaWxkKEtlKSx3YAogICAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgICAke0xlfQogICAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICBgfSwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9bmEodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChjZSl7dGhpcy4jZT1jZX0jdD0obmEodGhpcyxsKSxuYSh0aGlzLGQsbnVsbCkpO2dldCBpbml0aWFsaXphdGlvblByb21pc2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKGNlKXt0aGlzLiN0PWNlfSNhPShuYSh0aGlzLHUpLG5hKHRoaXMsYiwhMCkpO2dldCBzaG93RmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0ZpbGVUcmVlKGNlKXt0aGlzLiNhPWNlfSNzPShuYSh0aGlzLHYpLG5hKHRoaXMsbSwhMCkpO2dldCBzaG93VGVybWluYWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1Rlcm1pbmFsKGNlKXt0aGlzLiNzPWNlfSNpPShuYSh0aGlzLGYpLG5hKHRoaXMsTSwyNTApKTtnZXQgZmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBmaWxlVHJlZVdpZHRoKGNlKXt0aGlzLiNpPWNlfSNyPShuYSh0aGlzLHopLG5hKHRoaXMsQywyMDApKTtnZXQgdGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGVybWluYWxIZWlnaHQoY2Upe3RoaXMuI3I9Y2V9I289KG5hKHRoaXMsXyksbmEodGhpcywkLFtdKSk7Z2V0IG9wZW5GaWxlcygpe3JldHVybiB0aGlzLiNvfXNldCBvcGVuRmlsZXMoY2Upe3RoaXMuI289Y2V9I249KG5hKHRoaXMsRSksbmEodGhpcyxrLCIiKSk7Z2V0IGFjdGl2ZUZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjdGl2ZUZpbGVQYXRoKGNlKXt0aGlzLiNuPWNlfSNsPShuYSh0aGlzLFMpLG5hKHRoaXMsUCwhMSkpO2dldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzVGVybWluYWxDb2xsYXBzZWQoY2Upe3RoaXMuI2w9Y2V9I2M9KG5hKHRoaXMsUiksbmEodGhpcyxWLCExKSk7Z2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNGaWxlVHJlZUNvbGxhcHNlZChjZSl7dGhpcy4jYz1jZX0jZD0obmEodGhpcyxXKSxuYSh0aGlzLEIsITApKTtnZXQgaXNJbml0aWFsaXppbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNJbml0aWFsaXppbmcoY2Upe3RoaXMuI2Q9Y2V9I3U9KG5hKHRoaXMsVSksbmEodGhpcyxGLCJ0ZXJtaW5hbCIpKTtnZXQgYWN0aXZlQm90dG9tUGFuZWwoKXtyZXR1cm4gdGhpcy4jdX1zZXQgYWN0aXZlQm90dG9tUGFuZWwoY2Upe3RoaXMuI3U9Y2V9I3A9KG5hKHRoaXMsaiksbmEodGhpcyxsZSxbXSkpO2dldCBkaWFnbm9zdGljTWFya2Vycygpe3JldHVybiB0aGlzLiNwfXNldCBkaWFnbm9zdGljTWFya2VycyhjZSl7dGhpcy4jcD1jZX1lZGl0b3JFbGVtZW50PShuYSh0aGlzLFEpLG51bGwpO2luaXRpYWxpemF0aW9uU3RhcnRlZD0hMTtpbnRlbGxpU2Vuc2VNYW5hZ2VyPW51bGw7aW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQ9ITE7bm9kZU1vZHVsZXNXYXRjaGVyPW51bGw7bm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9bnVsbDtpbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQ9bnVsbDtvcGVuRmlsZVdhdGNoZXJzPW5ldyBNYXA7ZmlsZUNoYW5nZURlYm91bmNlPW5ldyBNYXA7YWN0aW9uYmFyRWxlbWVudD1udWxsOyNoPW5hKHRoaXMsdGUsITEpO2dldCBhdXRvU2F2ZSgpe3JldHVybiB0aGlzLiNofXNldCBhdXRvU2F2ZShjZSl7dGhpcy4jaD1jZX1hdXRvU2F2ZUludGVydmFsPShuYSh0aGlzLGVlKSxudWxsKTsjZj1uYSh0aGlzLFgsIiIpO2dldCBpbml0Q29tbWFuZCgpe3JldHVybiB0aGlzLiNmfXNldCBpbml0Q29tbWFuZChjZSl7dGhpcy4jZj1jZX0jbT0obmEodGhpcyxaKSxuYSh0aGlzLHEsW10pKTtnZXQgaW5pdE91dHB1dCgpe3JldHVybiB0aGlzLiNtfXNldCBpbml0T3V0cHV0KGNlKXt0aGlzLiNtPWNlfSNnPShuYSh0aGlzLEEpLG5hKHRoaXMsb2UsMjUwKSk7Z2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2d9c2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKGNlKXt0aGlzLiNnPWNlfSNiPShuYSh0aGlzLGFlKSxuYSh0aGlzLFJlLDIwMCkpO2dldCBjdXJyZW50VGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jYn1zZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KGNlKXt0aGlzLiNiPWNlfSN2PShuYSh0aGlzLEJlKSxuYSh0aGlzLERlLCExKSk7Z2V0IGlzRHJhZ2dpbmdGaWxlVHJlZSgpe3JldHVybiB0aGlzLiN2fXNldCBpc0RyYWdnaW5nRmlsZVRyZWUoY2Upe3RoaXMuI3Y9Y2V9I3g9KG5hKHRoaXMsX2UpLG5hKHRoaXMsdmUsITEpKTtnZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3h9c2V0IGlzRHJhZ2dpbmdUZXJtaW5hbChjZSl7dGhpcy4jeD1jZX0jeT0obmEodGhpcyxiZSksbmEodGhpcyxqZSwhMSkpO2dldCBzaG93RGlmZlZpZXcoKXtyZXR1cm4gdGhpcy4jeX1zZXQgc2hvd0RpZmZWaWV3KGNlKXt0aGlzLiN5PWNlfSN3PShuYSh0aGlzLFdlKSxuYSh0aGlzLE1lLG51bGwpKTtnZXQgZGlmZlZpZXdDb25maWcoKXtyZXR1cm4gdGhpcy4jd31zZXQgZGlmZlZpZXdDb25maWcoY2Upe3RoaXMuI3c9Y2V9a2V5ZG93bkhhbmRsZXI9KG5hKHRoaXMsZ2UpLGNlPT57KGNlLm1ldGFLZXl8fGNlLmN0cmxLZXkpJiZjZS5rZXk9PT0icyImJiFjZS5zaGlmdEtleSYmKGNlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlQWN0aXZlRmlsZSgpKSwoY2UubWV0YUtleXx8Y2UuY3RybEtleSkmJmNlLnNoaWZ0S2V5JiZjZS5rZXkudG9Mb3dlckNhc2UoKT09PSJzIiYmKGNlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlQWxsRmlsZXMoKSl9KTtoYW5kbGVGaWxlVHJlZU1vdXNlRG93bj1pKGNlPT57Y2UucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKX0sImhhbmRsZUZpbGVUcmVlTW91c2VEb3duIik7aGFuZGxlRmlsZVRyZWVNb3VzZU1vdmU9aShjZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZSlyZXR1cm47bGV0IGRlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTGU9Y2UuY2xpZW50WC1kZS5sZWZ0LEtlPTE1MCxZZT1kZS53aWR0aCouNSxvdD1NYXRoLm1heChLZSxNYXRoLm1pbihZZSxMZSkpO3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9b3R9LCJoYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSIpO2hhbmRsZUZpbGVUcmVlTW91c2VVcD1pKCgpPT57dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVGaWxlVHJlZU1vdXNlVXAiKTtoYW5kbGVUZXJtaW5hbE1vdXNlRG93bj1pKGNlPT57Y2UucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKX0sImhhbmRsZVRlcm1pbmFsTW91c2VEb3duIik7aGFuZGxlVGVybWluYWxNb3VzZU1vdmU9aShjZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbClyZXR1cm47bGV0IGRlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTGU9Y2UuY2xpZW50WS1kZS50b3AsS2U9ZGUuaGVpZ2h0LUxlLFllPTEwMCxvdD1kZS5oZWlnaHQqLjcsVXQ9TWF0aC5tYXgoWWUsTWF0aC5taW4ob3QsS2UpKTt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1VdH0sImhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlIik7aGFuZGxlVGVybWluYWxNb3VzZVVwPWkoKCk9Pnt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZVRlcm1pbmFsTW91c2VVcCIpO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utb3V0ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZWRpdG9yLWFyZWEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZWRpdG9yLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucGFuZWwtYWN0aW9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFiLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudGFiLWNsb3NlIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1tb2RpZmllZCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAzMnB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbXMtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA0NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQwIDcwJSA1MCUpIiwiaHNsKDQwIDcwJSA0NSUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlLm5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1saXN0IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0tZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLW1lc3NhZ2UgewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWxvY2F0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1lbXB0eSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyBkZWVzLWljb24gewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFJlc2l6ZSBoYW5kbGVzICovCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3ZlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5maWxldHJlZS1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvci1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe2xldCBjZT1bIndvcmtzcGFjZS1jb250YWluZXIiLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlfHx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO3JldHVybiB0aGlzLmlzSW5pdGlhbGl6aW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5pdGlhbGl6aW5nIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxvYWRlcjIifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgICAgICAgIC5jb21tYW5kPSR7dGhpcy5pbml0Q29tbWFuZHx8IiJ9CiAgICAgICAgICAgIC5saW5lcz0ke3RoaXMuaW5pdE91dHB1dH0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSIke2NlfSI+CiAgICAgICAgICA8IS0tIEZpbGV0cmVlIHBhbmVsIChmdWxsIGhlaWdodCkgLS0+CiAgICAgICAgICAke3RoaXMuc2hvd0ZpbGVUcmVlP3dgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZmlsZXRyZWUtcGFuZWwgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/MDp0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRofXB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlCiAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgLnNlbGVjdGVkUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICBAZmlsZS1zZWxlY3Q9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iIjp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLXZlcnRpY2FsICR7dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gRWRpdG9yICsgVGVybWluYWwgYXJlYSAtLT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1hcmVhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXBhbmVsIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcGVuRmlsZXMubWFwKGRlPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWIgJHtkZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmF0ZUZpbGUoZGUucGF0aCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtkZS5tb2RpZmllZD93YDxzcGFuIGNsYXNzPSJ0YWItbW9kaWZpZWQiPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1uYW1lIj4ke2RlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7TGU9PnRoaXMuY2xvc2VGaWxlKExlLGRlLnBhdGgpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbWVudS1idXR0b24iIEBjbGljaz0ke3RoaXMuc2hvd0VkaXRvck1lbnV9IHRpdGxlPSJFZGl0b3Igb3B0aW9ucyI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOm1vcmVWZXJ0aWNhbCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2hvd0RpZmZWaWV3JiZ0aGlzLmRpZmZWaWV3Q29uZmlnP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuZGlmZlZpZXdDb25maWcuZmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLm9yaWdpbmFsQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcub3JpZ2luYWxDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm1vZGlmaWVkQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmxhbmd1YWdlfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLXJlc29sdmVkPSR7dGhpcy5oYW5kbGVEaWZmUmVzb2x2ZWR9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtY2xvc2VkPSR7KCk9Pnt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9fQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICAgICAgICAgICAgICAgIGA6dGhpcy5vcGVuRmlsZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZUNvZGUifSBpY29uU2l6ZT0iNDgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBhIGZpbGUgdG8gZWRpdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy5nZXRBY3RpdmVGaWxlQ29udGVudCgpfQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKX0KICAgICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIHJlc2l6ZSBoYW5kbGUgZm9yIHRlcm1pbmFsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsJiYhdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkP3dgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCAke3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlVGVybWluYWxNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgPCEtLSBUZXJtaW5hbCBwYW5lbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC1wYW5lbCAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgICBzdHlsZT0iaGVpZ2h0OiAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8zMjp0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodH1weCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC10YWJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0icHJvYmxlbXMifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNpcmNsZUFsZXJ0In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFByb2JsZW1zCiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhbmVsLXRhYi1iYWRnZSAke3RoaXMuZ2V0RXJyb3JDb3VudCgpPT09MD8id2FybmluZyI6IiJ9Ij4ke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RofTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYWN0aW9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVRlcm1pbmFsfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgLmljb249JHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uVXAiOiJsdWNpZGU6Y2hldnJvbkRvd24ifQogICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwKICAgICAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgICAgIC5zZXR1cENvbW1hbmQ9JHsiIn0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcm9ibGVtc1BhbmVsKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEJvdHRvbSBCYXIgKGZ1bGwgd2lkdGgpIC0tPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIKICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICBAcnVuLXByb2Nlc3M9JHt0aGlzLmhhbmRsZVJ1blByb2Nlc3N9CiAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpLHRoaXMuc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpLHRoaXMuc3RvcEFsbEZpbGVXYXRjaGVycygpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCl9YXN5bmMgdXBkYXRlZChjZSl7Y2UuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKSx0aGlzLmFjdGlvbmJhckVsZW1lbnR8fCh0aGlzLmFjdGlvbmJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLXBhbmVsIGRlZXMtYWN0aW9uYmFyIikpfWFzeW5jIGluaXRpYWxpemVXb3Jrc3BhY2UoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpe3RoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSEwLHRoaXMuaXNJbml0aWFsaXppbmc9ITA7dHJ5e3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLGF3YWl0IHRoaXMuZXhlY3V0ZU9uSW5pdENvbW1hbmQoKX1jYXRjaChjZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgd29ya3NwYWNlOiIsY2UpLHRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSExfWZpbmFsbHl7dGhpcy5pc0luaXRpYWxpemluZz0hMX19fWFzeW5jIGV4ZWN1dGVPbkluaXRDb21tYW5kKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ucG1leHRyYS5qc29uIikpe2xldCBjZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvbnBtZXh0cmEuanNvbiIpLExlPUpTT04ucGFyc2UoY2UpPy5kZWVzRWRpdG9yV29ya3NwYWNlPy5vbkluaXQ7aWYoTGUmJnR5cGVvZiBMZT09InN0cmluZyIpe2NvbnNvbGUubG9nKCJFeGVjdXRpbmcgb25Jbml0IGNvbW1hbmQ6IixMZSksdGhpcy5pbml0Q29tbWFuZD1MZSx0aGlzLmluaXRPdXRwdXQ9W107bGV0W0tlLC4uLlllXT1MZS5zcGxpdCgiICIpLG90PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oS2UsWWUpO290Lm91dHB1dC5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTppKFp0PT57bGV0IGphPVp0LnNwbGl0KGAKYCk7Zm9yKGxldCBldCBvZiBqYSlldCYmKHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LGV0XSl9LCJ3cml0ZSIpfSkpO2xldCBVdD1hd2FpdCBvdC5leGl0O2NvbnNvbGUubG9nKCJvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6IixVdCksdGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsIiIsYENvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiAke1V0fWBdfX19Y2F0Y2goY2Upe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGV4ZWN1dGUgb25Jbml0IGNvbW1hbmQ6IixjZSl9fWFzeW5jIGluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZClyZXR1cm47bGV0IGNlPXdpbmRvdy5tb25hY287aWYoY2V8fChhd2FpdCBuZXcgUHJvbWlzZShkZT0+c2V0VGltZW91dChkZSwxMDApKSxjZT13aW5kb3cubW9uYWNvKSwhY2Upe2NvbnNvbGUud2FybigiTW9uYWNvIG5vdCB5ZXQgbG9hZGVkLCBJbnRlbGxpU2Vuc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBsYXRlciIpO3JldHVybn10aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkPSEwLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj1uZXcgdTJlLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KGNlLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuc2V0dXBNYXJrZXJMaXN0ZW5lcigpLHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKSxhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX1zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyKSl0cnl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiL25vZGVfbW9kdWxlcyIsKGNlLGRlKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChjZSl7Y29uc29sZS53YXJuKCJDb3VsZCBub3Qgd2F0Y2ggbm9kZV9tb2R1bGVzOiIsY2UpfX1zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXImJih0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlci5zdG9wKCksdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9bnVsbCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0V2F0Y2hpbmdGaWxlKGNlKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKGNlKSkpdHJ5e2xldCBkZT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKGNlLChMZSxLZSk9PntsZXQgWWU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtZZSYmY2xlYXJUaW1lb3V0KFllKTtsZXQgb3Q9c2V0VGltZW91dCgoKT0+e3RoaXMuaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGNlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoY2UpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChjZSxvdCl9KTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuc2V0KGNlLGRlKX1jYXRjaChkZSl7Y29uc29sZS53YXJuKGBDb3VsZCBub3Qgd2F0Y2ggZmlsZSAke2NlfTpgLGRlKX19c3RvcFdhdGNoaW5nRmlsZShjZSl7bGV0IGRlPXRoaXMub3BlbkZpbGVXYXRjaGVycy5nZXQoY2UpO2RlJiYoZGUuc3RvcCgpLHRoaXMub3BlbkZpbGVXYXRjaGVycy5kZWxldGUoY2UpKTtsZXQgTGU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGNlKTtMZSYmKGNsZWFyVGltZW91dChMZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGNlKSl9c3RvcEFsbEZpbGVXYXRjaGVycygpe2ZvcihsZXQgY2Ugb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKWNlLnN0b3AoKTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuY2xlYXIoKTtmb3IobGV0IGNlIG9mIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnZhbHVlcygpKWNsZWFyVGltZW91dChjZSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoY2Upe2xldCBkZT10aGlzLm9wZW5GaWxlcy5maW5kKExlPT5MZS5wYXRoPT09Y2UpO2lmKCEoIWRlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2xldCBMZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGNlKTtpZihMZT09PWRlLmNvbnRlbnQpcmV0dXJuO2lmKGRlLm1vZGlmaWVkKXtsZXQgS2U9YXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHttZXNzYWdlOmAiJHtkZS5uYW1lfSIgY2hhbmdlZCBvbiBkaXNrLiBXaGF0IGRvIHlvdSB3YW50IHRvIGRvP2AsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpnaXRNZXJnZSIsYWN0aW9uczpbe2lkOiJsb2FkLWRpc2siLGxhYmVsOiJMb2FkIGZyb20gRGlzayIscHJpbWFyeTohMH0se2lkOiJzYXZlLWxvY2FsIixsYWJlbDoiU2F2ZSBMb2NhbCB0byBEaXNrIn0se2lkOiJjb21wYXJlIixsYWJlbDoiQ29tcGFyZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxNWUzLGRlZmF1bHRBY3Rpb25JZDoibG9hZC1kaXNrIn0sZGlzbWlzc2libGU6ITB9KTtLZT8uYWN0aW9uSWQ9PT0ibG9hZC1kaXNrIj9hd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGNlLExlLCExKTpLZT8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLGRlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChZZT0+WWUucGF0aD09PWNlP3suLi5ZZSxtb2RpZmllZDohMX06WWUpKTpLZT8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KGNlLGRlLmNvbnRlbnQsTGUpfWVsc2UgYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChjZSxMZSwhMCl9Y2F0Y2goTGUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7Y2V9OmAsTGUpfX1hc3luYyB1cGRhdGVGaWxlQ29udGVudChjZSxkZSxMZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKEtlPT5LZS5wYXRoPT09Y2U/ey4uLktlLGNvbnRlbnQ6ZGUsbW9kaWZpZWQ6ITF9OktlKSxjZT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBLZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO0tlJiZhd2FpdCBLZS5zZXRDb250ZW50RXh0ZXJuYWwoZGUsTGUpfX1vcGVuRGlmZlZpZXcoY2UsZGUsTGUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOmNlLG9yaWdpbmFsQ29udGVudDpMZSxtb2RpZmllZENvbnRlbnQ6ZGUsbGFuZ3VhZ2U6dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGNlKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGNlKXtsZXR7YWN0aW9uOmRlLGNvbnRlbnQ6TGV9PWNlLmRldGFpbCxLZT10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZighS2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKGRlPT09InVzZS1sb2NhbCIpe2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEtlLExlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoWWU9PlllLnBhdGg9PT1LZT97Li4uWWUsY29udGVudDpMZSxtb2RpZmllZDohMX06WWUpLEtlPT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IFllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7WWUmJmF3YWl0IFllLnNldENvbnRlbnRFeHRlcm5hbChMZSwhMSl9fWVsc2UgZGU9PT0idXNlLWRpc2siJiZhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KEtlLExlLCExKTt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9YXN5bmMgaGFuZGxlRmlsZVNlbGVjdChjZSl7bGV0e3BhdGg6ZGUsbmFtZTpMZX09Y2UuZGV0YWlsO2F3YWl0IHRoaXMub3BlbkZpbGUoZGUsTGUpfWFzeW5jIG9wZW5GaWxlKGNlLGRlKXtpZih0aGlzLm9wZW5GaWxlcy5maW5kKEtlPT5LZS5wYXRoPT09Y2UpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWNlO3JldHVybn1pZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgS2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShjZSk7aWYodGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLHtwYXRoOmNlLG5hbWU6ZGUsY29udGVudDpLZSxtb2RpZmllZDohMX1dLHRoaXMuYWN0aXZlRmlsZVBhdGg9Y2UsdGhpcy5zdGFydFdhdGNoaW5nRmlsZShjZSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2Uob3Q9PnNldFRpbWVvdXQob3QsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IFllPXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChjZSk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnByb2Nlc3NDb250ZW50Q2hhbmdlKEtlKX19Y2F0Y2goS2Upe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGZpbGUgJHtjZX06YCxLZSl9fWFjdGl2YXRlRmlsZShjZSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1jZX1jbG9zZUZpbGUoY2UsZGUpe2NlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBMZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgoWWU9PlllLnBhdGg9PT1kZSk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZighKEtlLm1vZGlmaWVkJiYhY29uZmlybShgJHtLZS5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCkpJiYodGhpcy5zdG9wV2F0Y2hpbmdGaWxlKGRlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIoWWU9PlllLnBhdGghPT1kZSksdGhpcy5hY3RpdmVGaWxlUGF0aD09PWRlKSlpZih0aGlzLm9wZW5GaWxlcy5sZW5ndGg+MCl7bGV0IFllPU1hdGgubWluKExlLHRoaXMub3BlbkZpbGVzLmxlbmd0aC0xKTt0aGlzLmFjdGl2ZUZpbGVQYXRoPXRoaXMub3BlbkZpbGVzW1llXS5wYXRofWVsc2UgdGhpcy5hY3RpdmVGaWxlUGF0aD0iIn1nZXRBY3RpdmVGaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm9wZW5GaWxlcy5maW5kKGRlPT5kZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk/LmNvbnRlbnR8fCIifWhhbmRsZUNvbnRlbnRDaGFuZ2UoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KFllPT5ZZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoTGU9PT0tMSlyZXR1cm47bGV0IEtlPXRoaXMub3BlbkZpbGVzW0xlXTtpZihLZS5jb250ZW50IT09ZGUpe3RoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcy5zbGljZSgwLExlKSx7Li4uS2UsY29udGVudDpkZSxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoTGUrMSldO2xldCBZZT10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoWWU9PT0idHlwZXNjcmlwdCJ8fFllPT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKGRlKX0sNTAwKSl9fWdldExhbmd1YWdlRnJvbVBhdGgoY2Upe2xldCBkZT1jZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybnt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIsbWQ6Im1hcmtkb3duIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixzcWw6InNxbCIscHk6InB5dGhvbiIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCJ9W2RlfHwiIl18fCJwbGFpbnRleHQifXRvZ2dsZVRlcm1pbmFsKCl7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWR9YXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKXtsZXQgY2U9dGhpcy5vcGVuRmlsZXMuZmluZChkZT0+ZGUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKCEoIWNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGNlLnBhdGgsY2UuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGRlPT5kZS5wYXRoPT09Y2UucGF0aD97Li4uZGUsbW9kaWZpZWQ6ITF9OmRlKSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgZmlsZToiLGRlKX19YXN5bmMgc2F2ZUFsbEZpbGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7Zm9yKGxldCBjZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoZGU9PmRlLm1vZGlmaWVkKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoY2UucGF0aCxjZS5jb250ZW50KSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoY2UucGF0aCxjZS5jb250ZW50KX1jYXRjaChkZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHNhdmUgJHtjZS5wYXRofTpgLGRlKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoY2U9Pih7Li4uY2UsbW9kaWZpZWQ6ITF9KSl9fWFzeW5jIHNob3dFZGl0b3JNZW51KGNlKXtjZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgZGU9W3tuYW1lOnRoaXMuYXV0b1NhdmU/Ilx1MjcxMyBBdXRvIFNhdmUiOiJBdXRvIFNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50b2dnbGVBdXRvU2F2ZSgpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246aShhc3luYygpPT50aGlzLnNhdmVBbGxGaWxlcygpLCJhY3Rpb24iKX1dO2F3YWl0ICRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGNlLGRlKX10b2dnbGVBdXRvU2F2ZSgpe3RoaXMuYXV0b1NhdmU9IXRoaXMuYXV0b1NhdmUsdGhpcy5hdXRvU2F2ZT90aGlzLmF1dG9TYXZlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLm9wZW5GaWxlcy5zb21lKGRlPT5kZS5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKGNlPT5jZS5zZXZlcml0eT09PTgpLmxlbmd0aH1yZW5kZXJQcm9ibGVtc1BhbmVsKCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPT09MD93YAogICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrQ2lyY2xlIn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIHByb2JsZW1zIGRldGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWxpc3QiPgogICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAoY2U9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKGNlKX0+CiAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICBjbGFzcz0icHJvYmxlbS1pY29uICR7Y2Uuc2V2ZXJpdHk9PT04PyJlcnJvciI6Indhcm5pbmcifSIKICAgICAgICAgICAgICAuaWNvbj0ke2NlLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke2NlLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1sb2NhdGlvbiI+CiAgICAgICAgICAgICAgICAke2NlLnJlc291cmNlLnBhdGguc3BsaXQoIi8iKS5wb3AoKX0gKCR7Y2Uuc3RhcnRMaW5lTnVtYmVyfSwgJHtjZS5zdGFydENvbHVtbn0pCiAgICAgICAgICAgICAgICAke2NlLnNvdXJjZT9gWyR7Y2Uuc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oY2Upe2xldCBkZT1jZS5yZXNvdXJjZS5wYXRoLExlPWRlLnNwbGl0KCIvIikucG9wKCl8fCIiO3RoaXMub3BlbkZpbGVzLmZpbmQob3Q9Pm90LnBhdGg9PT1kZSk/dGhpcy5hY3RpdmVGaWxlUGF0aD1kZTphd2FpdCB0aGlzLm9wZW5GaWxlKGRlLExlKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBZZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2lmKFllKXtsZXQgb3Q9YXdhaXQgWWUuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtvdC5yZXZlYWxMaW5lSW5DZW50ZXIoY2Uuc3RhcnRMaW5lTnVtYmVyKSxvdC5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpjZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmNlLnN0YXJ0Q29sdW1ufSksb3QuZm9jdXMoKX19c2V0dXBNYXJrZXJMaXN0ZW5lcigpe2xldCBjZT13aW5kb3cubW9uYWNvO2NlJiYoY2UuZWRpdG9yLm9uRGlkQ2hhbmdlTWFya2VycyhkZT0+e3RoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKX0pLHRoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKSl9dXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKXtsZXQgY2U9d2luZG93Lm1vbmFjbztpZighY2UpcmV0dXJuO2xldCBkZT1jZS5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPWRlLm1hcChMZT0+KHttZXNzYWdlOkxlLm1lc3NhZ2Usc2V2ZXJpdHk6TGUuc2V2ZXJpdHksc3RhcnRMaW5lTnVtYmVyOkxlLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpMZS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOkxlLmVuZExpbmVOdW1iZXIsZW5kQ29sdW1uOkxlLmVuZENvbHVtbixzb3VyY2U6TGUuc291cmNlLHJlc291cmNlOntwYXRoOkxlLnJlc291cmNlLnBhdGh9fSkpfWFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoY2Upe2xldCBkZT1jZS5kZXRhaWwsTGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpO2lmKCFMZSl7Y29uc29sZS53YXJuKCJUZXJtaW5hbCBjb21wb25lbnQgbm90IGZvdW5kIik7cmV0dXJufXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCYmKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hMSksdGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwiLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgTGUuY3JlYXRlUHJvY2Vzc1RhYih7dHlwZTpkZS50eXBlLGxhYmVsOmRlLmxhYmVsLGNvbW1hbmQ6ZGUuY29tbWFuZCxhcmdzOmRlLmFyZ3MsbWV0YWRhdGE6ZGUubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCouNTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPU1hdGgubWF4KDE1MCxNYXRoLm1pbihMZSxjZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXNldFRlcm1pbmFsSGVpZ2h0KGNlKXtsZXQgTGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKExlLGNlKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9cmVzZXRMYXlvdXQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXN0YXRpY3tuYShhLHQpfX07cmV0dXJuIEllPWF9KSgpfSk7dmFyIE5TYT1nKCgpPT57QVNhKCk7Tmx0KCl9KTt2YXIgUlNhPWcoKCk9PntWZygpfSk7dmFyIE9TYT1nKCgpPT57ZDJlKCl9KTt2YXIgRlNhPWcoKCk9Pnt9KTt2YXIgQlNhPWcoKCk9Pnt1SigpO0ZTYSgpO3psdCgpfSk7dmFyIEhTYT1nKCgpPT57SWx0KCl9KTt2YXIgaEosWXUsX2NuLGh0cyxxU2E9ZygoKT0+e3BlKCk7aHQoKTtWZygpO2hKPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxZdT1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0sX2NuPWx0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCksaHRzPSgoKT0+e2xldCBzPVtuZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24iKV0sZSx0PVtdLGEscj13ZSxuLG89W10sbD1bXSxwLGQ9W10sdT1bXSxjLGI9W10sdj1bXSx4LG09W10sZj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1hcmtkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bTCh7dHlwZTpOdW1iZXJ9KV0scD1bTCh7dHlwZTpOdW1iZXJ9KV0sYz1bWSgpXSx4PVtZKCldLGhKKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNwbGl0UmF0aW8sImdldCIpLHNldDppKCh6LE4pPT57ei5zcGxpdFJhdGlvPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbyxsKSxoSih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibWluUGFuZWxTaXplImluIHosImhhcyIpLGdldDppKHo9PnoubWluUGFuZWxTaXplLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3oubWluUGFuZWxTaXplPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sZCx1KSxoSih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50U3BsaXRSYXRpbyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmN1cnJlbnRTcGxpdFJhdGlvLCJnZXQiKSxzZXQ6aSgoeixOKT0+e3ouY3VycmVudFNwbGl0UmF0aW89Tn0sInNldCIpfSxtZXRhZGF0YTpNfSxiLHYpLGhKKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNEcmFnZ2luZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzRHJhZ2dpbmcsImdldCIpLHNldDppKCh6LE4pPT57ei5pc0RyYWdnaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSxmKSxoSihudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLHk9YT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3duPjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bcWUsaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuZWRpdG9yQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzAzNjNkIil9OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3JDb250YWluZXIsCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07I2U9WXUodGhpcyxvLDUwKTtnZXQgc3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNlfXNldCBzcGxpdFJhdGlvKE0pe3RoaXMuI2U9TX0jdD0oWXUodGhpcyxsKSxZdSh0aGlzLGQsMTApKTtnZXQgbWluUGFuZWxTaXplKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblBhbmVsU2l6ZShNKXt0aGlzLiN0PU19I2E9KFl1KHRoaXMsdSksWXUodGhpcyxiLDUwKSk7Z2V0IGN1cnJlbnRTcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRTcGxpdFJhdGlvKE0pe3RoaXMuI2E9TX0jcz0oWXUodGhpcyx2KSxZdSh0aGlzLG0sITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNzfXNldCBpc0RyYWdnaW5nKE0pe3RoaXMuI3M9TX1yZXNpemVIYW5kbGVFbGVtZW50PVl1KHRoaXMsZik7Y29udGFpbmVyRWxlbWVudDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic3BsaXRDb250YWluZXIgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvckNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAke3RoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5sYW5ndWFnZT0keyJtYXJrZG93biJ9CiAgICAgICAgICAgIC5jb250ZW50PSR7YCMgYSB0ZXN0IGNvbnRlbnQKClRoaXMgaXMgdGVzdCBjb250ZW50IHRoYXQgaXMgb2YgbG9uZ2VyIGZvcm0gYW4gaG9wZWZ1bGx5IHN0YXJ0cyB0byB3cmFwIHdoZW4gSSBuZWVkIGl0LiBBbmQgeWVzLCBpdCBkb2VzIHBlcmZlY3RseS4gbmljZS4KClRlc3QgfCBIZWxsbwotLS0gfCAtLS0KWWVhaCB8IFNvIGdvb2QKClRoaXMgaXMgcmVhbCBhc3NldCBJIHRoaW5rLiBXaHkgd291bGQgd2Ugd2FudCB0byBsZWF2ZSB0aGF0IG9uIHRoZSB0YWJsZT8gQ2FuIHlvdSB0ZWxsIG15IHRoYXQ/CgpXaHkgYXJlIHdlIGhlcmU/CgpEbyB5b3Uga25vdz8KCj4gbm90ZToKVGhlcmUgaXMgc29tZXRoaW5nIGdvaW5nIG9uLgoKXGBcYFxgdHlwZXNjcmlwdApjb25zdCBoZWxsbyA9ICd5ZXMnClxgXGBcYApgfQogICAgICAgICAgICB3b3JkV3JhcD0iYm91bmRlZCIKICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgID48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvdXRsZXRDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHsxMDAtdGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKE0pe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChNKSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpbyx0aGlzLmNvbnRhaW5lckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zcGxpdENvbnRhaW5lciIpLHRoaXMucmVzaXplSGFuZGxlRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnJlc2l6ZUhhbmRsZSIpO2xldCB6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxOPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpLF89YXdhaXQgbmV3IGx0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duKCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oImxvYWRpbmcuLi4iKTt6LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShhc3luYyBPPT57YXdhaXQgXy51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoTyk7bGV0ICQ9Xy5odG1sO04udXBkYXRlSHRtbFRleHQoJCl9KX1oYW5kbGVNb3VzZURvd249aShNPT57TS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZz0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfSwiaGFuZGxlTW91c2VEb3duIik7aGFuZGxlTW91c2VNb3ZlPWkoTT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmd8fCF0aGlzLmNvbnRhaW5lckVsZW1lbnQpcmV0dXJuO2xldCB6PXRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxOPXoud2lkdGgsXz0oTS5jbGllbnRYLXoubGVmdCkvTioxMDA7Xz1NYXRoLm1heCh0aGlzLm1pblBhbmVsU2l6ZSxNYXRoLm1pbigxMDAtdGhpcy5taW5QYW5lbFNpemUsXykpLHRoaXMuY3VycmVudFNwbGl0UmF0aW89X30sImhhbmRsZU1vdXNlTW92ZSIpO2hhbmRsZU1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSYmd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVNb3VzZVVwIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9c2V0U3BsaXRSYXRpbyhNKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxNKSl9cmVzZXRTcGxpdFJhdGlvKCl7dGhpcy5jdXJyZW50U3BsaXRSYXRpbz10aGlzLnNwbGl0UmF0aW99c3RhdGlje1l1KGEsdCl9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBqU2E9ZygoKT0+e3FTYSgpfSk7dmFyIFZTYSxVU2E9ZygoKT0+e3BlKCk7SXQoKTt4bygpO1ZTYT1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke0pgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPCEtLSBEZW1vIDE6IEhlYWRpbmdzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJIZWFkaW5ncyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkFsbCBoZWFkaW5nIGxldmVscyBmcm9tIEgxIHRvIEg2In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5IZWFkaW5nIExldmVsIDE8L2gxPgogICAgICAgICAgICA8aDI+SGVhZGluZyBMZXZlbCAyPC9oMj4KICAgICAgICAgICAgPGgzPkhlYWRpbmcgTGV2ZWwgMzwvaDM+CiAgICAgICAgICAgIDxoND5IZWFkaW5nIExldmVsIDQ8L2g0PgogICAgICAgICAgICA8aDU+SGVhZGluZyBMZXZlbCA1PC9oNT4KICAgICAgICAgICAgPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDI6IFRleHQgRm9ybWF0dGluZyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGV4dCBGb3JtYXR0aW5nIn0KICAgICAgICAuc3VidGl0bGU9JHsiQm9sZCwgaXRhbGljLCBsaW5rcywgY29kZSwgYW5kIGtleWJvYXJkIGlucHV0In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBwYXJhZ3JhcGggd2l0aCA8c3Ryb25nPmJvbGQgdGV4dDwvc3Ryb25nPiBhbmQgPGVtPml0YWxpYyB0ZXh0PC9lbT4uPC9wPgogICAgICAgICAgICA8cD5Zb3UgY2FuIGFsc28gdXNlIDxzdHJvbmc+PGVtPmJvbGQgaXRhbGljPC9lbT48L3N0cm9uZz4gZm9yIGVtcGhhc2lzLjwvcD4KICAgICAgICAgICAgPHA+SGVyZSdzIGEgPGEgaHJlZj0iIyI+bGluayBleGFtcGxlPC9hPiBhbmQgc29tZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4uPC9wPgogICAgICAgICAgICA8cD5QcmVzcyA8a2JkPkN0cmw8L2tiZD4gKyA8a2JkPkM8L2tiZD4gdG8gY29weSB0ZXh0LjwvcD4KICAgICAgICAgICAgPGhyPgogICAgICAgICAgICA8cD5BYm92ZSBpcyBhIGhvcml6b250YWwgcnVsZSBzZXBhcmF0b3IuPC9wPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAzOiBMaXN0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiTGlzdHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJPcmRlcmVkLCB1bm9yZGVyZWQsIGFuZCB0YXNrIGxpc3RzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+Rmlyc3QgaXRlbTwvbGk+CiAgICAgICAgICAgICAgPGxpPlNlY29uZCBpdGVtCiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAxPC9saT4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDI8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UaGlyZCBpdGVtPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxoMz5PcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgb25lPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0d288L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHRocmVlPC9saT4KICAgICAgICAgICAgPC9vbD4KCiAgICAgICAgICAgIDxoMz5UYXNrIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkIGRpc2FibGVkPiBDb21wbGV0ZWQgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gUGVuZGluZyB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBBbm90aGVyIHRhc2s8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA0OiBDb2RlIEJsb2NrcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQ29kZSBCbG9ja3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJTeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBleGFtcGxlcyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5JbmxpbmUgY29kZTogPGNvZGU+Y29uc3QgZ3JlZXRpbmcgPSAiSGVsbG8sIFdvcmxkISI7PC9jb2RlPjwvcD4KCiAgICAgICAgICAgIDxoMz5UeXBlU2NyaXB0IEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBodG1sLCBjc3MgfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmludGVyZmFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPklVc2VyPC9zcGFuPiB7CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+bmFtZTwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmVtYWlsPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+YWdlPC9zcGFuPj86IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5udW1iZXI8L3NwYW4+Owp9Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPmdldFVzZXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXN5bmM8L3NwYW4+ICg8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5pZDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+KTogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPlByb21pc2U8L3NwYW4+Jmx0O0lVc2VyJmd0OyA9Jmd0OyB7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IHJlc3BvbnNlID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXdhaXQ8L3NwYW4+IGZldGNoKFxgL2FwaS91c2Vycy9cJHtpZH1cYCk7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+cmV0dXJuPC9zcGFuPiByZXNwb25zZS5qc29uKCk7Cn07PC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgzPkpTT04gRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+ewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJuYW1lIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+ImRlZXMtY2F0YWxvZyI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJ2ZXJzaW9uIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+IjMuMC4wIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ImRlcGVuZGVuY2llcyI8L3NwYW4+OiB7CiAgICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Ijwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+Il4yLjAuMCI8L3NwYW4+CiAgfQp9PC9jb2RlPjwvcHJlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA1OiBUYWJsZXMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRhYmxlcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN0eWxlZCB0YWJsZXMgd2l0aCBhbHRlcm5hdGluZyByb3dzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5GZWF0dXJlPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5Qcmlvcml0eTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RGFyayBtb2RlIHN1cHBvcnQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+Q29tcGxldGVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPlJlc3BvbnNpdmUgZGVzaWduPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1lZGl1bTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+QWNjZXNzaWJpbGl0eTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QbGFubmVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRvY3VtZW50YXRpb248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TG93PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNjogQmxvY2txdW90ZXMgJiBBbGVydHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkJsb2NrcXVvdGVzICYgQWxlcnRzIn0KICAgICAgICAuc3VidGl0bGU9JHsiUXVvdGVzIGFuZCBHaXRIdWItc3R5bGUgYWxlcnRzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57YXdhaXQgcy5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzdGFuZGFyZCBibG9ja3F1b3RlLiBJdCdzIGdyZWF0IGZvciBoaWdobGlnaHRpbmcgaW1wb3J0YW50IGluZm9ybWF0aW9uIG9yIHF1b3RlcyBmcm9tIG90aGVyIHNvdXJjZXMuPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1ub3RlIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBub3RlIHRvIGRyYXcgYXR0ZW50aW9uIHRvIGltcG9ydGFudCBkZXRhaWxzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBIZXJlJ3MgYSBoZWxwZnVsIHRpcCB0byBpbXByb3ZlIHlvdXIgd29ya2Zsb3cuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5JbXBvcnRhbnQ6PC9zdHJvbmc+IFRoaXMgaW5mb3JtYXRpb24gaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdG9waWMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXdhcm5pbmciPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gQmUgY2FyZWZ1bCB3aGVuIHBlcmZvcm1pbmcgdGhpcyBhY3Rpb24uPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWNhdXRpb24iPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Q2F1dGlvbjo8L3N0cm9uZz4gVGhpcyBhY3Rpb24gbWF5IGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNzogRnVsbCBEb2N1bWVudCAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRnVsbCBEb2N1bWVudCJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkEgY29tcGxldGUgbWFya2Rvd24gZG9jdW1lbnQgZXhhbXBsZSJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2F3YWl0IHMucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+R2V0dGluZyBTdGFydGVkIEd1aWRlPC9oMT4KICAgICAgICAgICAgPHA+V2VsY29tZSB0byB0aGUgPHN0cm9uZz5kZWVzLWNhdGFsb2c8L3N0cm9uZz4gY29tcG9uZW50IGxpYnJhcnkuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBnZXQgdXAgYW5kIHJ1bm5pbmcgcXVpY2tseS48L3A+CgogICAgICAgICAgICA8aDI+SW5zdGFsbGF0aW9uPC9oMj4KICAgICAgICAgICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyB5b3VyIHByZWZlcnJlZCBwYWNrYWdlIG1hbmFnZXI6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgcG5wbSAocmVjb21tZW5kZWQpPC9zcGFuPgpwbnBtIGFkZCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgbnBtPC9zcGFuPgpucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDI+QmFzaWMgVXNhZ2U8L2gyPgogICAgICAgICAgICA8cD5JbXBvcnQgYW5kIHVzZSBjb21wb25lbnRzIGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlczo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IERlZXNCdXR0b24gfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPi8vIFVzZSBpbiB5b3VyIHRlbXBsYXRlczwvc3Bhbj4KaHRtbFxgJmx0O2RlZXMtYnV0dG9uJmd0O0NsaWNrIG1lJmx0Oy9kZWVzLWJ1dHRvbiZndDtcYDwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IENoZWNrIHRoZSBkZW1vIHNob3djYXNlIGZvciBsaXZlIGV4YW1wbGVzIG9mIGFsbCBjb21wb25lbnRzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8aDI+QXZhaWxhYmxlIENvbXBvbmVudHM8L2gyPgogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+Q29tcG9uZW50PC90aD4KICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWJ1dHRvbjwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UHJpbWFyeSBidXR0b24gY29tcG9uZW50PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWlucHV0LXRleHQ8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlRleHQgaW5wdXQgZmllbGQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtdGFibGU8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkRhdGEgdGFibGUgd2l0aCBzb3J0aW5nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLW1vZGFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Nb2RhbCBkaWFsb2c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgPGgyPk5leHQgU3RlcHM8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkV4cGxvcmUgdGhlIDxhIGhyZWY9IiMiPmNvbXBvbmVudCBkb2N1bWVudGF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkNoZWNrIG91dCB0aGUgPGEgaHJlZj0iIyI+dGhlbWluZyBndWlkZTwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5Kb2luIG91ciA8YSBocmVmPSIjIj5jb21tdW5pdHkgRGlzY29yZDwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+IlRoZSBiZXN0IGNvbXBvbmVudCBsaWJyYXJ5IGlzIG9uZSB0aGF0IGdldHMgb3V0IG9mIHlvdXIgd2F5LiIgXHUyMDE0IERlc2lnbiBTeXN0ZW1zIFRlYW08L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgZnRzLG10cyxndHMsV1NhPWcoKCk9PntwZSgpO2h0KCk7VVNhKCk7ZnRzPWZ1bmN0aW9uKHMsZSx0LGEscixuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLHA9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnM/YS5zdGF0aWM/czpzLnByb3RvdHlwZTpudWxsLHU9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLGMsYj0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgbSBpbiBhKXhbbV09bT09PSJhY2Nlc3MiP3t9OmFbbV07Zm9yKHZhciBtIGluIGEuYWNjZXNzKXguYWNjZXNzW21dPWEuYWNjZXNzW21dO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoYil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBmPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W3BdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihmPT09dm9pZCAwKWNvbnRpbnVlO2lmKGY9PT1udWxsfHx0eXBlb2YgZiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGM9byhmLmdldCkpJiYodS5nZXQ9YyksKGM9byhmLnNldCkpJiYodS5zZXQ9YyksKGM9byhmLmluaXQpKSYmci51bnNoaWZ0KGMpfWVsc2UoYz1vKGYpKSYmKGw9PT0iZmllbGQiP3IudW5zaGlmdChjKTp1W3BdPWMpfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSx1KSxiPSEwfSxtdHM9ZnVuY3Rpb24ocyxlLHQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKXQ9YT9lW3JdLmNhbGwocyx0KTplW3JdLmNhbGwocyk7cmV0dXJuIGE/dDp2b2lkIDB9LGd0cz0oKCk9PntsZXQgcz1bbmUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IildLGUsdD1bXSxhLHI9d2U7dmFyIG49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2Z0cyhudWxsLGU9e3ZhbHVlOmF9LHMse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHQpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBkZW1vPVZTYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W3FlLGguZGVmYXVsdFN0eWxlcyxKYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChvKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobyksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChvKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPW99c3RhdGlje210cyhhLHQpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgR1NhPWcoKCk9PntXU2EoKX0pO3ZhciBLU2E9ZygoKT0+e0FsdCgpfSk7dmFyIFlTYT1nKCgpPT57Umx0KCl9KTt2YXIgWlNhPWcoKCk9PntOU2EoKTtSU2EoKTtPU2EoKTtCU2EoKTtIU2EoKTtqU2EoKTtHU2EoKTtLU2EoKTtZU2EoKX0pO3ZhciBYU2E9ZygoKT0+e30pO3ZhciBRU2E9ZygoKT0+e1hTYSgpfSk7dmFyIEpTYT1nKCgpPT57cGUoKX0pO3ZhciBlX2E9ZygoKT0+e0pTYSgpfSk7dmFyIHRfYT1nKCgpPT57R24oKTtodCgpO3N4YSgpO3B4YSgpO3N5YSgpO2J5YSgpO1J5YSgpO0J5YSgpO3J3YSgpO0t3YSgpO1ZrYSgpO1FrYSgpO2wyZSgpO3ZTYSgpO0lTYSgpO1pTYSgpO1FTYSgpO2VfYSgpfSk7dmFyIGFfYT1nKCgpPT57fSk7dmFyIHNfYT1nKCgpPT57dF9hKCk7dzIoKTthX2EoKX0pO3ZhciBidHMsdnRzLHh0cyxpX2E9ZygoKT0+e3BlKCk7c19hKCk7aWMoKTtidHM9ZnVuY3Rpb24ocyxlLHQsYSxyLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQscD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmcz9hLnN0YXRpYz9zOnMucHJvdG90eXBlOm51bGwsdT1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSksYyxiPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBtIGluIGEpeFttXT1tPT09ImFjY2VzcyI/e306YVttXTtmb3IodmFyIG0gaW4gYS5hY2Nlc3MpeC5hY2Nlc3NbbV09YS5hY2Nlc3NbbV07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGY9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbcF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGY9PT12b2lkIDApY29udGludWU7aWYoZj09PW51bGx8fHR5cGVvZiBmIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoYz1vKGYuZ2V0KSkmJih1LmdldD1jKSwoYz1vKGYuc2V0KSkmJih1LnNldD1jKSwoYz1vKGYuaW5pdCkpJiZyLnVuc2hpZnQoYyl9ZWxzZShjPW8oZikpJiYobD09PSJmaWVsZCI/ci51bnNoaWZ0KGMpOnVbcF09Yyl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLHUpLGI9ITB9LHZ0cz1mdW5jdGlvbihzLGUsdCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspdD1hP2Vbcl0uY2FsbChzLHQpOmVbcl0uY2FsbChzKTtyZXR1cm4gYT90OnZvaWQgMH0seHRzPSgoKT0+e2xldCBzPVtuZSgic3otZGVtby1hcHAtc2hlbGwiKV0sZSx0PVtdLGEscj13ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2kodGhpcywiU3pEZW1vQXBwU2hlbGwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtidHMobnVsbCxlPXt2YWx1ZTphfSxzLHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCx0KSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy1hcHB1aSB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWk+PC9kZWVzLWFwcHVpPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgbz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWkiKTtvJiYoby5jb25maWd1cmUoe2JyYW5kaW5nOntsb2dvSWNvbjoibHVjaWRlOkJveCIsbG9nb1RleHQ6InNlcnZlLnpvbmUifSxhcHBCYXI6e3Nob3dTZWFyY2g6ITAsYnJlYWRjcnVtYnM6InNlcnZlLnpvbmUiLG1lbnVJdGVtczpbe25hbWU6IkZpbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiTmV3IFNlcnZpY2UiLHNob3J0Y3V0OiJDbWQrTiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJOZXcgU2VydmljZSIpfSwiYWN0aW9uIil9LHtuYW1lOiJJbXBvcnQgQ29uZmlndXJhdGlvbiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJJbXBvcnQiKX0sImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IENvbmZpZ3VyYXRpb24iLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiRXhwb3J0Iil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsc2hvcnRjdXQ6IkNtZCssIixhY3Rpb246aShhc3luYygpPT57by5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRhc2hib2FyZCIsc2hvcnRjdXQ6IkNtZCsxIixhY3Rpb246aShhc3luYygpPT57by5uYXZpZ2F0ZVRvVmlldygiZGFzaGJvYXJkIil9LCJhY3Rpb24iKX0se25hbWU6IlNlcnZpY2VzIixzaG9ydGN1dDoiQ21kKzIiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJzZXJ2aWNlcyIpfSwiYWN0aW9uIil9LHtuYW1lOiJOZXR3b3JrIixzaG9ydGN1dDoiQ21kKzMiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJuZXR3b3JrIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBY3Rpdml0eSBMb2ciLHNob3J0Y3V0OiJDbWQrU2hpZnQrQSIsYWN0aW9uOmkoYXN5bmMoKT0+e28udG9nZ2xlQWN0aXZpdHlMb2coKX0sImFjdGlvbiIpfSx7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+e28uc2V0TWFpbk1lbnVDb2xsYXBzZWQoIW8ubWFpbm1lbnVDb2xsYXBzZWQpfSwiYWN0aW9uIil9XX0se25hbWU6IlNlcnZpY2VzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRlcGxveSBOZXcgU2VydmljZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJEZXBsb3kiKX0sImFjdGlvbiIpfSx7bmFtZToiU3RhcnQgQWxsIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlN0YXJ0IGFsbCIpfSwiYWN0aW9uIil9LHtuYW1lOiJTdG9wIEFsbCIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJTdG9wIGFsbCIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiR2FyYmFnZSBDb2xsZWN0IixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkdDIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiSGVscCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixhY3Rpb246aShhc3luYygpPT57d2luZG93Lm9wZW4oImh0dHBzOi8vZG9jcy5zZXJ2ZS56b25lIiwiX2JsYW5rIil9LCJhY3Rpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQWJvdXQgc2VydmUuem9uZSIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJBYm91dCIpfSwiYWN0aW9uIil9XX1dfSx2aWV3czpbe2lkOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpMYXlvdXREYXNoYm9hcmQiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1kYXNoYm9hcmQifSx7aWQ6InNlcnZpY2VzIixuYW1lOiJTZXJ2aWNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpTZXJ2ZXIiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1zZXJ2aWNlcyJ9LHtpZDoibmV0d29yayIsbmFtZToiTmV0d29yayIsaWNvbk5hbWU6Imx1Y2lkZTpOZXR3b3JrIixjb250ZW50OiJzei1kZW1vLXZpZXctbmV0d29yayJ9LHtpZDoicmVnaXN0cmllcyIsbmFtZToiUmVnaXN0cmllcyIsaWNvbk5hbWU6Imx1Y2lkZTpBcmNoaXZlIixjb250ZW50OiJzei1kZW1vLXZpZXctcmVnaXN0cmllcyJ9LHtpZDoidG9rZW5zIixuYW1lOiJUb2tlbnMiLGljb25OYW1lOiJsdWNpZGU6S2V5Iixjb250ZW50OiJzei1kZW1vLXZpZXctdG9rZW5zIn0se2lkOiJtdGEiLG5hbWU6IkVtYWlsIC8gTVRBIixpY29uTmFtZToibHVjaWRlOk1haWwiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1tdGEifSx7aWQ6InJvdXRlcyIsbmFtZToiUm91dGVzIixpY29uTmFtZToibHVjaWRlOlJvdXRlIixjb250ZW50OiJzei1kZW1vLXZpZXctcm91dGVzIn0se2lkOiJzZXR0aW5ncyIsbmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6U2V0dGluZ3MiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1zZXR0aW5ncyJ9XSxtYWluTWVudTp7c2VjdGlvbnM6W3tuYW1lOiJPdmVydmlldyIsdmlld3M6WyJkYXNoYm9hcmQiXX0se25hbWU6IkluZnJhc3RydWN0dXJlIix2aWV3czpbInNlcnZpY2VzIiwibmV0d29yayIsInJlZ2lzdHJpZXMiLCJtdGEiLCJyb3V0ZXMiXX0se25hbWU6IkFkbWluaXN0cmF0aW9uIix2aWV3czpbInRva2VucyIsInNldHRpbmdzIl19XX0sZGVmYXVsdFZpZXc6ImRhc2hib2FyZCIsb25WaWV3Q2hhbmdlOmkoKGwscCk9Pntjb25zb2xlLmxvZygiVmlldyBjaGFuZ2VkIHRvOiIsbCxwKX0sIm9uVmlld0NoYW5nZSIpfSksby5zZXRVc2VyKHtuYW1lOiJBZG1pbiBVc2VyIixlbWFpbDoiYWRtaW5Ac2VydmUuem9uZSIsc3RhdHVzOiJvbmxpbmUifSksby5zZXRQcm9maWxlTWVudUl0ZW1zKFt7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTpVc2VyIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlByb2ZpbGUiKX0sImFjdGlvbiIpfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJsdWNpZGU6U2xpZGVyc0hvcml6b250YWwiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiUHJlZmVyZW5jZXMiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOkxvZ091dCIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJTaWduIE91dCIpfSwiYWN0aW9uIil9XSkpfXN0YXRpY3t2dHMoYSx0KX19O3JldHVybiBuPWF9KSgpfSk7dmFyIHJfYT1nKCgpPT57TTlhKCk7ejlhKCk7aV9hKCl9KTt2YXIgb19hPWcoKCk9PntpYygpO3JfYSgpfSk7dmFyIG5fYT1wbChBcj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoQXIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEFyLmdldEZpcnN0VHJ1ZU9yRmFsc2U9QXIudGltZW91dEFuZENvbnRpbnVlPUFyLnRpbWVvdXRXcmFwPUFyLm1hcD1Bci5yZWplY3RlZFByb21pc2U9QXIucmVzb2x2ZWRQcm9taXNlPUFyLmRlZmVyPUFyLkRlZmVycmVkPXZvaWQgMDt2YXIgcDJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRlZmVycmVkIil9Y29uc3RydWN0b3IoKXt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLnJlc29sdmU9YT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksZShhKX0sdGhpcy5yZWplY3Q9YT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSx0KGEpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fX07QXIuRGVmZXJyZWQ9cDJlLEFyLmRlZmVyPSgpPT5uZXcgcDJlLEFyLnJlc29sdmVkUHJvbWlzZT1zPT5Qcm9taXNlLnJlc29sdmUocyksQXIucmVqZWN0ZWRQcm9taXNlPXM9PlByb21pc2UucmVqZWN0KHMpLEFyLm1hcD1hc3luYyhzLGUpPT57bGV0IHQ9W10sYT1bXTtmb3IobGV0IHIgb2Ygcyl7bGV0IG49ZShyKTt0LnB1c2gobiksbi50aGVuKG89PnthLnB1c2gobyl9KX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwodCksYX0sQXIudGltZW91dFdyYXA9YXN5bmMocyxlLHQ9ITApPT5uZXcgUHJvbWlzZSgoYSxyKT0+e3NldFRpbWVvdXQoKCk9Pnt0P3IobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHMudGhlbihhLHIpfSksQXIudGltZW91dEFuZENvbnRpbnVlPWFzeW5jKHMsZT02ZTQpPT5Bci50aW1lb3V0V3JhcChzLGUsITEpLEFyLmdldEZpcnN0VHJ1ZU9yRmFsc2U9YXN5bmMgcz0+e2xldCBlPUFyLmRlZmVyKCk7Zm9yKGxldCB0IG9mIHMpdC50aGVuKGE9PnthPT09ITAmJmUucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwocykudGhlbigoKT0+e2UucmVzb2x2ZSghMSl9KSxlLnByb21pc2V9fSk7dmFyIE9sdCxsX2E9ZygoKT0+e09sdD14bihuX2EoKSwxKX0pO3ZhciBjX2E9ZygoKT0+e30pO3ZhciBGbHQsZF9hPWcoKCk9PntsX2EoKTtjX2EoKTtGbHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlKXtpZighdGhpcy5pc05vZGUpe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgbm9kZSBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9YCk7cmV0dXJufXJldHVybiBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCl9YXN5bmMgZ2V0U2FmZVdlYk1vZHVsZShlLHQpe2lmKCF0aGlzLmlzQnJvd3Nlcil7Y29uc29sZS5lcnJvcigiWW91IHRyaWVkIHRvIGxvYWQgYSB3ZWIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dCIpO3JldHVybn1pZih0aGlzLmxvYWRlZFNjcmlwdHMuaW5jbHVkZXMoZSkpcmV0dXJuIHQoKTt0aGlzLmxvYWRlZFNjcmlwdHMucHVzaChlKTtsZXQgYT1PbHQuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ci5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0sci5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHIpfXJldHVybiBhd2FpdCBhLnByb21pc2UsdCgpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBmSj17fTt5dChmSix7U21hcnRlbnY6KCk9PkZsdH0pO3ZhciB1X2E9ZygoKT0+e2RfYSgpfSk7dmFyIHBfYT1nKCgpPT57dV9hKCl9KTt2YXIgQmx0PXt9O3l0KEJsdCx7c2hhMjU2RnJvbVN0cmluZzooKT0+U3RzfSk7dmFyIGt0cyxTdHMsaF9hPWcoKCk9PntwX2EoKTtrdHM9aShzPT57bGV0IGU9W10sdD1uZXcgRGF0YVZpZXcocyk7Zm9yKGxldCBhPTA7YTx0LmJ5dGVMZW5ndGg7YSs9NCl7bGV0IG49dC5nZXRVaW50MzIoYSkudG9TdHJpbmcoMTYpLG89IjAwMDAwMDAwIixsPShvK24pLnNsaWNlKC1vLmxlbmd0aCk7ZS5wdXNoKGwpfXJldHVybiBlLmpvaW4oIiIpfSwiaGV4IiksU3RzPWkoYXN5bmMgcz0+e2xldCBlPW5ldyBmSi5TbWFydGVudjtpZihlLmlzQnJvd3Nlcil7bGV0IHQ9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHMpLGE9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBrdHMoYSl9ZWxzZSBpZihlLmlzTm9kZSlyZXR1cm4gYXdhaXQoYXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiQHB1c2hyb2Nrcy9zbWFydGhhc2giKSkuc2hhMjU2RnJvbVN0cmluZyhzKX0sInNoYTI1NkZyb21TdHJpbmciKX0pO3ZhciBmX2E9ZygoKT0+e2lvKCl9KTt2YXIgbV9hPWcoKCk9Pnt9KTt2YXIgSGx0LGdfYT1nKCgpPT57Zl9hKCk7bV9hKCk7SGx0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0ZW52Iil9Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUoZSl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoZS5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShlLndlYlVybEFyZyxlLmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUoZSx0KXtpZighdGhpcy5pc05vZGUpe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgbm9kZSBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgYT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCk7cmV0dXJuIHQmJmF3YWl0IHQoYSksYX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUsdCl7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gdCgpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBhPW10LmRlZmVyKCk7aWYoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKWdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cyhlKSxhLnJlc29sdmUoKTtlbHNle2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iub25sb2FkPSgpPT57YS5yZXNvbHZlKCl9LHIuc3JjPWUsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyKX1yZXR1cm4gYXdhaXQgYS5wcm9taXNlLHQoKX1nZXQgcnVudGltZUVudigpe3JldHVybiB0eXBlb2YgcHJvY2VzczwidSI/Im5vZGUiOiJicm93c2VyIn1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIXRoaXMuaXNOb2RlfWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gcHJvY2Vzcy52ZXJzaW9ufWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgcWx0PXt9O3l0KHFsdCx7U21hcnRlbnY6KCk9PkhsdH0pO3ZhciBiX2E9ZygoKT0+e2dfYSgpfSk7dmFyIHJNYT1wbCgoYkosUngpPT57dmFyIE10cz0yMDAsdl9hPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIix4X2E9OTAwNzE5OTI1NDc0MDk5MSxqbHQ9IltvYmplY3QgQXJndW1lbnRzXSIsenRzPSJbb2JqZWN0IEFycmF5XSIseV9hPSJbb2JqZWN0IEJvb2xlYW5dIix3X2E9IltvYmplY3QgRGF0ZV0iLEN0cz0iW29iamVjdCBFcnJvcl0iLFZsdD0iW29iamVjdCBGdW5jdGlvbl0iLGtfYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLGgyZT0iW29iamVjdCBNYXBdIixTX2E9IltvYmplY3QgTnVtYmVyXSIsVWx0PSJbb2JqZWN0IE9iamVjdF0iLF9fYT0iW29iamVjdCBQcm9taXNlXSIsTV9hPSJbb2JqZWN0IFJlZ0V4cF0iLGYyZT0iW29iamVjdCBTZXRdIix6X2E9IltvYmplY3QgU3RyaW5nXSIsQ19hPSJbb2JqZWN0IFN5bWJvbF0iLFdsdD0iW29iamVjdCBXZWFrTWFwXSIsVF9hPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsbTJlPSJbb2JqZWN0IERhdGFWaWV3XSIsJF9hPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLERfYT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixMX2E9IltvYmplY3QgSW50OEFycmF5XSIsRV9hPSJbb2JqZWN0IEludDE2QXJyYXldIixQX2E9IltvYmplY3QgSW50MzJBcnJheV0iLElfYT0iW29iamVjdCBVaW50OEFycmF5XSIsQV9hPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsTl9hPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsUl9hPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsVHRzPS9bXFxeJC4qKz8oKVtcXXt9fF0vZywkdHM9L1x3KiQvLER0cz0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxMdHM9L14oPzowfFsxLTldXGQqKSQvLHJpPXt9O3JpW2psdF09cmlbenRzXT1yaVtUX2FdPXJpW20yZV09cmlbeV9hXT1yaVt3X2FdPXJpWyRfYV09cmlbRF9hXT1yaVtMX2FdPXJpW0VfYV09cmlbUF9hXT1yaVtoMmVdPXJpW1NfYV09cmlbVWx0XT1yaVtNX2FdPXJpW2YyZV09cmlbel9hXT1yaVtDX2FdPXJpW0lfYV09cmlbQV9hXT1yaVtOX2FdPXJpW1JfYV09ITAscmlbQ3RzXT1yaVtWbHRdPXJpW1dsdF09ITE7dmFyIEV0cz10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsUHRzPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsWnU9RXRzfHxQdHN8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksT19hPXR5cGVvZiBiSj09Im9iamVjdCImJmJKJiYhYkoubm9kZVR5cGUmJmJKLEZfYT1PX2EmJnR5cGVvZiBSeD09Im9iamVjdCImJlJ4JiYhUngubm9kZVR5cGUmJlJ4LEl0cz1GX2EmJkZfYS5leHBvcnRzPT09T19hO2Z1bmN0aW9uIEF0cyhzLGUpe3JldHVybiBzLnNldChlWzBdLGVbMV0pLHN9aShBdHMsImFkZE1hcEVudHJ5Iik7ZnVuY3Rpb24gTnRzKHMsZSl7cmV0dXJuIHMuYWRkKGUpLHN9aShOdHMsImFkZFNldEVudHJ5Iik7ZnVuY3Rpb24gUnRzKHMsZSl7Zm9yKHZhciB0PS0xLGE9cz9zLmxlbmd0aDowOysrdDxhJiZlKHNbdF0sdCxzKSE9PSExOyk7cmV0dXJuIHN9aShSdHMsImFycmF5RWFjaCIpO2Z1bmN0aW9uIE90cyhzLGUpe2Zvcih2YXIgdD0tMSxhPWUubGVuZ3RoLHI9cy5sZW5ndGg7Kyt0PGE7KXNbcit0XT1lW3RdO3JldHVybiBzfWkoT3RzLCJhcnJheVB1c2giKTtmdW5jdGlvbiBCX2EocyxlLHQsYSl7dmFyIHI9LTEsbj1zP3MubGVuZ3RoOjA7Zm9yKGEmJm4mJih0PXNbKytyXSk7KytyPG47KXQ9ZSh0LHNbcl0scixzKTtyZXR1cm4gdH1pKEJfYSwiYXJyYXlSZWR1Y2UiKTtmdW5jdGlvbiBGdHMocyxlKXtmb3IodmFyIHQ9LTEsYT1BcnJheShzKTsrK3Q8czspYVt0XT1lKHQpO3JldHVybiBhfWkoRnRzLCJiYXNlVGltZXMiKTtmdW5jdGlvbiBCdHMocyxlKXtyZXR1cm4gcz8uW2VdfWkoQnRzLCJnZXRWYWx1ZSIpO2Z1bmN0aW9uIEhfYShzKXt2YXIgZT0hMTtpZihzIT1udWxsJiZ0eXBlb2Ygcy50b1N0cmluZyE9ImZ1bmN0aW9uIil0cnl7ZT0hIShzKyIiKX1jYXRjaHt9cmV0dXJuIGV9aShIX2EsImlzSG9zdE9iamVjdCIpO2Z1bmN0aW9uIHFfYShzKXt2YXIgZT0tMSx0PUFycmF5KHMuc2l6ZSk7cmV0dXJuIHMuZm9yRWFjaChmdW5jdGlvbihhLHIpe3RbKytlXT1bcixhXX0pLHR9aShxX2EsIm1hcFRvQXJyYXkiKTtmdW5jdGlvbiBHbHQocyxlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHMoZSh0KSl9fWkoR2x0LCJvdmVyQXJnIik7ZnVuY3Rpb24gal9hKHMpe3ZhciBlPS0xLHQ9QXJyYXkocy5zaXplKTtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3RbKytlXT1hfSksdH1pKGpfYSwic2V0VG9BcnJheSIpO3ZhciBIdHM9QXJyYXkucHJvdG90eXBlLHF0cz1GdW5jdGlvbi5wcm90b3R5cGUsZzJlPU9iamVjdC5wcm90b3R5cGUsS2x0PVp1WyJfX2NvcmUtanNfc2hhcmVkX18iXSxWX2E9KGZ1bmN0aW9uKCl7dmFyIHM9L1teLl0rJC8uZXhlYyhLbHQmJktsdC5rZXlzJiZLbHQua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiBzPyJTeW1ib2woc3JjKV8xLiIrczoiIn0pKCksVV9hPXF0cy50b1N0cmluZyx6ND1nMmUuaGFzT3duUHJvcGVydHksYjJlPWcyZS50b1N0cmluZyxqdHM9UmVnRXhwKCJeIitVX2EuY2FsbCh6NCkucmVwbGFjZShUdHMsIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksV19hPUl0cz9adS5CdWZmZXI6dm9pZCAwLEdfYT1adS5TeW1ib2wsS19hPVp1LlVpbnQ4QXJyYXksVnRzPUdsdChPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KSxVdHM9T2JqZWN0LmNyZWF0ZSxXdHM9ZzJlLnByb3BlcnR5SXNFbnVtZXJhYmxlLEd0cz1IdHMuc3BsaWNlLFlfYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLEt0cz1XX2E/V19hLmlzQnVmZmVyOnZvaWQgMCxZdHM9R2x0KE9iamVjdC5rZXlzLE9iamVjdCksWWx0PU54KFp1LCJEYXRhVmlldyIpLG1KPU54KFp1LCJNYXAiKSxabHQ9TngoWnUsIlByb21pc2UiKSxYbHQ9TngoWnUsIlNldCIpLFFsdD1OeChadSwiV2Vha01hcCIpLGdKPU54KE9iamVjdCwiY3JlYXRlIiksWnRzPWg3KFlsdCksWHRzPWg3KG1KKSxRdHM9aDcoWmx0KSxKdHM9aDcoWGx0KSxlYXM9aDcoUWx0KSxaX2E9R19hP0dfYS5wcm90b3R5cGU6dm9pZCAwLFhfYT1aX2E/Wl9hLnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIHU3KHMpe3ZhciBlPS0xLHQ9cz9zLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHQ7KXt2YXIgYT1zW2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkodTcsIkhhc2giKTtmdW5jdGlvbiB0YXMoKXt0aGlzLl9fZGF0YV9fPWdKP2dKKG51bGwpOnt9fWkodGFzLCJoYXNoQ2xlYXIiKTtmdW5jdGlvbiBhYXMocyl7cmV0dXJuIHRoaXMuaGFzKHMpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1tzXX1pKGFhcywiaGFzaERlbGV0ZSIpO2Z1bmN0aW9uIHNhcyhzKXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGdKKXt2YXIgdD1lW3NdO3JldHVybiB0PT09dl9hP3ZvaWQgMDp0fXJldHVybiB6NC5jYWxsKGUscyk/ZVtzXTp2b2lkIDB9aShzYXMsImhhc2hHZXQiKTtmdW5jdGlvbiBpYXMocyl7dmFyIGU9dGhpcy5fX2RhdGFfXztyZXR1cm4gZ0o/ZVtzXSE9PXZvaWQgMDp6NC5jYWxsKGUscyl9aShpYXMsImhhc2hIYXMiKTtmdW5jdGlvbiByYXMocyxlKXt2YXIgdD10aGlzLl9fZGF0YV9fO3JldHVybiB0W3NdPWdKJiZlPT09dm9pZCAwP3ZfYTplLHRoaXN9aShyYXMsImhhc2hTZXQiKSx1Ny5wcm90b3R5cGUuY2xlYXI9dGFzLHU3LnByb3RvdHlwZS5kZWxldGU9YWFzLHU3LnByb3RvdHlwZS5nZXQ9c2FzLHU3LnByb3RvdHlwZS5oYXM9aWFzLHU3LnByb3RvdHlwZS5zZXQ9cmFzO2Z1bmN0aW9uIFh1KHMpe3ZhciBlPS0xLHQ9cz9zLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHQ7KXt2YXIgYT1zW2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkoWHUsIkxpc3RDYWNoZSIpO2Z1bmN0aW9uIG9hcygpe3RoaXMuX19kYXRhX189W119aShvYXMsImxpc3RDYWNoZUNsZWFyIik7ZnVuY3Rpb24gbmFzKHMpe3ZhciBlPXRoaXMuX19kYXRhX18sdD12MmUoZSxzKTtpZih0PDApcmV0dXJuITE7dmFyIGE9ZS5sZW5ndGgtMTtyZXR1cm4gdD09YT9lLnBvcCgpOkd0cy5jYWxsKGUsdCwxKSwhMH1pKG5hcywibGlzdENhY2hlRGVsZXRlIik7ZnVuY3Rpb24gbGFzKHMpe3ZhciBlPXRoaXMuX19kYXRhX18sdD12MmUoZSxzKTtyZXR1cm4gdDwwP3ZvaWQgMDplW3RdWzFdfWkobGFzLCJsaXN0Q2FjaGVHZXQiKTtmdW5jdGlvbiBjYXMocyl7cmV0dXJuIHYyZSh0aGlzLl9fZGF0YV9fLHMpPi0xfWkoY2FzLCJsaXN0Q2FjaGVIYXMiKTtmdW5jdGlvbiBkYXMocyxlKXt2YXIgdD10aGlzLl9fZGF0YV9fLGE9djJlKHQscyk7cmV0dXJuIGE8MD90LnB1c2goW3MsZV0pOnRbYV1bMV09ZSx0aGlzfWkoZGFzLCJsaXN0Q2FjaGVTZXQiKSxYdS5wcm90b3R5cGUuY2xlYXI9b2FzLFh1LnByb3RvdHlwZS5kZWxldGU9bmFzLFh1LnByb3RvdHlwZS5nZXQ9bGFzLFh1LnByb3RvdHlwZS5oYXM9Y2FzLFh1LnByb3RvdHlwZS5zZXQ9ZGFzO2Z1bmN0aW9uIEl4KHMpe3ZhciBlPS0xLHQ9cz9zLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHQ7KXt2YXIgYT1zW2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkoSXgsIk1hcENhY2hlIik7ZnVuY3Rpb24gdWFzKCl7dGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgdTcsbWFwOm5ldyhtSnx8WHUpLHN0cmluZzpuZXcgdTd9fWkodWFzLCJtYXBDYWNoZUNsZWFyIik7ZnVuY3Rpb24gcGFzKHMpe3JldHVybiB4MmUodGhpcyxzKS5kZWxldGUocyl9aShwYXMsIm1hcENhY2hlRGVsZXRlIik7ZnVuY3Rpb24gaGFzKHMpe3JldHVybiB4MmUodGhpcyxzKS5nZXQocyl9aShoYXMsIm1hcENhY2hlR2V0Iik7ZnVuY3Rpb24gZmFzKHMpe3JldHVybiB4MmUodGhpcyxzKS5oYXMocyl9aShmYXMsIm1hcENhY2hlSGFzIik7ZnVuY3Rpb24gbWFzKHMsZSl7cmV0dXJuIHgyZSh0aGlzLHMpLnNldChzLGUpLHRoaXN9aShtYXMsIm1hcENhY2hlU2V0IiksSXgucHJvdG90eXBlLmNsZWFyPXVhcyxJeC5wcm90b3R5cGUuZGVsZXRlPXBhcyxJeC5wcm90b3R5cGUuZ2V0PWhhcyxJeC5wcm90b3R5cGUuaGFzPWZhcyxJeC5wcm90b3R5cGUuc2V0PW1hcztmdW5jdGlvbiBBeChzKXt0aGlzLl9fZGF0YV9fPW5ldyBYdShzKX1pKEF4LCJTdGFjayIpO2Z1bmN0aW9uIGdhcygpe3RoaXMuX19kYXRhX189bmV3IFh1fWkoZ2FzLCJzdGFja0NsZWFyIik7ZnVuY3Rpb24gYmFzKHMpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShzKX1pKGJhcywic3RhY2tEZWxldGUiKTtmdW5jdGlvbiB2YXMocyl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHMpfWkodmFzLCJzdGFja0dldCIpO2Z1bmN0aW9uIHhhcyhzKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMocyl9aSh4YXMsInN0YWNrSGFzIik7ZnVuY3Rpb24geWFzKHMsZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztpZih0IGluc3RhbmNlb2YgWHUpe3ZhciBhPXQuX19kYXRhX187aWYoIW1KfHxhLmxlbmd0aDxNdHMtMSlyZXR1cm4gYS5wdXNoKFtzLGVdKSx0aGlzO3Q9dGhpcy5fX2RhdGFfXz1uZXcgSXgoYSl9cmV0dXJuIHQuc2V0KHMsZSksdGhpc31pKHlhcywic3RhY2tTZXQiKSxBeC5wcm90b3R5cGUuY2xlYXI9Z2FzLEF4LnByb3RvdHlwZS5kZWxldGU9YmFzLEF4LnByb3RvdHlwZS5nZXQ9dmFzLEF4LnByb3RvdHlwZS5oYXM9eGFzLEF4LnByb3RvdHlwZS5zZXQ9eWFzO2Z1bmN0aW9uIHdhcyhzLGUpe3ZhciB0PXRjdChzKXx8VWFzKHMpP0Z0cyhzLmxlbmd0aCxTdHJpbmcpOltdLGE9dC5sZW5ndGgscj0hIWE7Zm9yKHZhciBuIGluIHMpKGV8fHo0LmNhbGwocyxuKSkmJiEociYmKG49PSJsZW5ndGgifHxIYXMobixhKSkpJiZ0LnB1c2gobik7cmV0dXJuIHR9aSh3YXMsImFycmF5TGlrZUtleXMiKTtmdW5jdGlvbiBRX2EocyxlLHQpe3ZhciBhPXNbZV07KCEoejQuY2FsbChzLGUpJiZhTWEoYSx0KSl8fHQ9PT12b2lkIDAmJiEoZSBpbiBzKSkmJihzW2VdPXQpfWkoUV9hLCJhc3NpZ25WYWx1ZSIpO2Z1bmN0aW9uIHYyZShzLGUpe2Zvcih2YXIgdD1zLmxlbmd0aDt0LS07KWlmKGFNYShzW3RdWzBdLGUpKXJldHVybiB0O3JldHVybi0xfWkodjJlLCJhc3NvY0luZGV4T2YiKTtmdW5jdGlvbiBrYXMocyxlKXtyZXR1cm4gcyYmSl9hKGUsYWN0KGUpLHMpfWkoa2FzLCJiYXNlQXNzaWduIik7ZnVuY3Rpb24gSmx0KHMsZSx0LGEscixuLG8pe3ZhciBsO2lmKGEmJihsPW4/YShzLHIsbixvKTphKHMpKSxsIT09dm9pZCAwKXJldHVybiBsO2lmKCF5MmUocykpcmV0dXJuIHM7dmFyIHA9dGN0KHMpO2lmKHApe2lmKGw9T2FzKHMpLCFlKXJldHVybiBBYXMocyxsKX1lbHNle3ZhciBkPXA3KHMpLHU9ZD09Vmx0fHxkPT1rX2E7aWYoR2FzKHMpKXJldHVybiBUYXMocyxlKTtpZihkPT1VbHR8fGQ9PWpsdHx8dSYmIW4pe2lmKEhfYShzKSlyZXR1cm4gbj9zOnt9O2lmKGw9RmFzKHU/e306cyksIWUpcmV0dXJuIE5hcyhzLGthcyhsLHMpKX1lbHNle2lmKCFyaVtkXSlyZXR1cm4gbj9zOnt9O2w9QmFzKHMsZCxKbHQsZSl9fW98fChvPW5ldyBBeCk7dmFyIGM9by5nZXQocyk7aWYoYylyZXR1cm4gYztpZihvLnNldChzLGwpLCFwKXZhciBiPXQ/UmFzKHMpOmFjdChzKTtyZXR1cm4gUnRzKGJ8fHMsZnVuY3Rpb24odix4KXtiJiYoeD12LHY9c1t4XSksUV9hKGwseCxKbHQodixlLHQsYSx4LHMsbykpfSksbH1pKEpsdCwiYmFzZUNsb25lIik7ZnVuY3Rpb24gU2FzKHMpe3JldHVybiB5MmUocyk/VXRzKHMpOnt9fWkoU2FzLCJiYXNlQ3JlYXRlIik7ZnVuY3Rpb24gX2FzKHMsZSx0KXt2YXIgYT1lKHMpO3JldHVybiB0Y3Qocyk/YTpPdHMoYSx0KHMpKX1pKF9hcywiYmFzZUdldEFsbEtleXMiKTtmdW5jdGlvbiBNYXMocyl7cmV0dXJuIGIyZS5jYWxsKHMpfWkoTWFzLCJiYXNlR2V0VGFnIik7ZnVuY3Rpb24gemFzKHMpe2lmKCF5MmUocyl8fGphcyhzKSlyZXR1cm4hMTt2YXIgZT1pTWEocyl8fEhfYShzKT9qdHM6RHRzO3JldHVybiBlLnRlc3QoaDcocykpfWkoemFzLCJiYXNlSXNOYXRpdmUiKTtmdW5jdGlvbiBDYXMocyl7aWYoIXRNYShzKSlyZXR1cm4gWXRzKHMpO3ZhciBlPVtdO2Zvcih2YXIgdCBpbiBPYmplY3QocykpejQuY2FsbChzLHQpJiZ0IT0iY29uc3RydWN0b3IiJiZlLnB1c2godCk7cmV0dXJuIGV9aShDYXMsImJhc2VLZXlzIik7ZnVuY3Rpb24gVGFzKHMsZSl7aWYoZSlyZXR1cm4gcy5zbGljZSgpO3ZhciB0PW5ldyBzLmNvbnN0cnVjdG9yKHMubGVuZ3RoKTtyZXR1cm4gcy5jb3B5KHQpLHR9aShUYXMsImNsb25lQnVmZmVyIik7ZnVuY3Rpb24gZWN0KHMpe3ZhciBlPW5ldyBzLmNvbnN0cnVjdG9yKHMuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBLX2EoZSkuc2V0KG5ldyBLX2EocykpLGV9aShlY3QsImNsb25lQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiAkYXMocyxlKXt2YXIgdD1lP2VjdChzLmJ1ZmZlcik6cy5idWZmZXI7cmV0dXJuIG5ldyBzLmNvbnN0cnVjdG9yKHQscy5ieXRlT2Zmc2V0LHMuYnl0ZUxlbmd0aCl9aSgkYXMsImNsb25lRGF0YVZpZXciKTtmdW5jdGlvbiBEYXMocyxlLHQpe3ZhciBhPWU/dChxX2EocyksITApOnFfYShzKTtyZXR1cm4gQl9hKGEsQXRzLG5ldyBzLmNvbnN0cnVjdG9yKX1pKERhcywiY2xvbmVNYXAiKTtmdW5jdGlvbiBMYXMocyl7dmFyIGU9bmV3IHMuY29uc3RydWN0b3Iocy5zb3VyY2UsJHRzLmV4ZWMocykpO3JldHVybiBlLmxhc3RJbmRleD1zLmxhc3RJbmRleCxlfWkoTGFzLCJjbG9uZVJlZ0V4cCIpO2Z1bmN0aW9uIEVhcyhzLGUsdCl7dmFyIGE9ZT90KGpfYShzKSwhMCk6al9hKHMpO3JldHVybiBCX2EoYSxOdHMsbmV3IHMuY29uc3RydWN0b3IpfWkoRWFzLCJjbG9uZVNldCIpO2Z1bmN0aW9uIFBhcyhzKXtyZXR1cm4gWF9hP09iamVjdChYX2EuY2FsbChzKSk6e319aShQYXMsImNsb25lU3ltYm9sIik7ZnVuY3Rpb24gSWFzKHMsZSl7dmFyIHQ9ZT9lY3Qocy5idWZmZXIpOnMuYnVmZmVyO3JldHVybiBuZXcgcy5jb25zdHJ1Y3Rvcih0LHMuYnl0ZU9mZnNldCxzLmxlbmd0aCl9aShJYXMsImNsb25lVHlwZWRBcnJheSIpO2Z1bmN0aW9uIEFhcyhzLGUpe3ZhciB0PS0xLGE9cy5sZW5ndGg7Zm9yKGV8fChlPUFycmF5KGEpKTsrK3Q8YTspZVt0XT1zW3RdO3JldHVybiBlfWkoQWFzLCJjb3B5QXJyYXkiKTtmdW5jdGlvbiBKX2EocyxlLHQsYSl7dHx8KHQ9e30pO2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoOysrcjxuOyl7dmFyIG89ZVtyXSxsPWE/YSh0W29dLHNbb10sbyx0LHMpOnZvaWQgMDtRX2EodCxvLGw9PT12b2lkIDA/c1tvXTpsKX1yZXR1cm4gdH1pKEpfYSwiY29weU9iamVjdCIpO2Z1bmN0aW9uIE5hcyhzLGUpe3JldHVybiBKX2EocyxlTWEocyksZSl9aShOYXMsImNvcHlTeW1ib2xzIik7ZnVuY3Rpb24gUmFzKHMpe3JldHVybiBfYXMocyxhY3QsZU1hKX1pKFJhcywiZ2V0QWxsS2V5cyIpO2Z1bmN0aW9uIHgyZShzLGUpe3ZhciB0PXMuX19kYXRhX187cmV0dXJuIHFhcyhlKT90W3R5cGVvZiBlPT0ic3RyaW5nIj8ic3RyaW5nIjoiaGFzaCJdOnQubWFwfWkoeDJlLCJnZXRNYXBEYXRhIik7ZnVuY3Rpb24gTngocyxlKXt2YXIgdD1CdHMocyxlKTtyZXR1cm4gemFzKHQpP3Q6dm9pZCAwfWkoTngsImdldE5hdGl2ZSIpO3ZhciBlTWE9WV9hP0dsdChZX2EsT2JqZWN0KTpaYXMscDc9TWFzOyhZbHQmJnA3KG5ldyBZbHQobmV3IEFycmF5QnVmZmVyKDEpKSkhPW0yZXx8bUomJnA3KG5ldyBtSikhPWgyZXx8Wmx0JiZwNyhabHQucmVzb2x2ZSgpKSE9X19hfHxYbHQmJnA3KG5ldyBYbHQpIT1mMmV8fFFsdCYmcDcobmV3IFFsdCkhPVdsdCkmJihwNz1pKGZ1bmN0aW9uKHMpe3ZhciBlPWIyZS5jYWxsKHMpLHQ9ZT09VWx0P3MuY29uc3RydWN0b3I6dm9pZCAwLGE9dD9oNyh0KTp2b2lkIDA7aWYoYSlzd2l0Y2goYSl7Y2FzZSBadHM6cmV0dXJuIG0yZTtjYXNlIFh0czpyZXR1cm4gaDJlO2Nhc2UgUXRzOnJldHVybiBfX2E7Y2FzZSBKdHM6cmV0dXJuIGYyZTtjYXNlIGVhczpyZXR1cm4gV2x0fXJldHVybiBlfSwiZ2V0VGFnIikpO2Z1bmN0aW9uIE9hcyhzKXt2YXIgZT1zLmxlbmd0aCx0PXMuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJnR5cGVvZiBzWzBdPT0ic3RyaW5nIiYmejQuY2FsbChzLCJpbmRleCIpJiYodC5pbmRleD1zLmluZGV4LHQuaW5wdXQ9cy5pbnB1dCksdH1pKE9hcywiaW5pdENsb25lQXJyYXkiKTtmdW5jdGlvbiBGYXMocyl7cmV0dXJuIHR5cGVvZiBzLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhdE1hKHMpP1NhcyhWdHMocykpOnt9fWkoRmFzLCJpbml0Q2xvbmVPYmplY3QiKTtmdW5jdGlvbiBCYXMocyxlLHQsYSl7dmFyIHI9cy5jb25zdHJ1Y3Rvcjtzd2l0Y2goZSl7Y2FzZSBUX2E6cmV0dXJuIGVjdChzKTtjYXNlIHlfYTpjYXNlIHdfYTpyZXR1cm4gbmV3IHIoK3MpO2Nhc2UgbTJlOnJldHVybiAkYXMocyxhKTtjYXNlICRfYTpjYXNlIERfYTpjYXNlIExfYTpjYXNlIEVfYTpjYXNlIFBfYTpjYXNlIElfYTpjYXNlIEFfYTpjYXNlIE5fYTpjYXNlIFJfYTpyZXR1cm4gSWFzKHMsYSk7Y2FzZSBoMmU6cmV0dXJuIERhcyhzLGEsdCk7Y2FzZSBTX2E6Y2FzZSB6X2E6cmV0dXJuIG5ldyByKHMpO2Nhc2UgTV9hOnJldHVybiBMYXMocyk7Y2FzZSBmMmU6cmV0dXJuIEVhcyhzLGEsdCk7Y2FzZSBDX2E6cmV0dXJuIFBhcyhzKX19aShCYXMsImluaXRDbG9uZUJ5VGFnIik7ZnVuY3Rpb24gSGFzKHMsZSl7cmV0dXJuIGU9ZT8/eF9hLCEhZSYmKHR5cGVvZiBzPT0ibnVtYmVyInx8THRzLnRlc3QocykpJiZzPi0xJiZzJTE9PTAmJnM8ZX1pKEhhcywiaXNJbmRleCIpO2Z1bmN0aW9uIHFhcyhzKXt2YXIgZT10eXBlb2YgcztyZXR1cm4gZT09InN0cmluZyJ8fGU9PSJudW1iZXIifHxlPT0ic3ltYm9sInx8ZT09ImJvb2xlYW4iP3MhPT0iX19wcm90b19fIjpzPT09bnVsbH1pKHFhcywiaXNLZXlhYmxlIik7ZnVuY3Rpb24gamFzKHMpe3JldHVybiEhVl9hJiZWX2EgaW4gc31pKGphcywiaXNNYXNrZWQiKTtmdW5jdGlvbiB0TWEocyl7dmFyIGU9cyYmcy5jb25zdHJ1Y3Rvcix0PXR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlLnByb3RvdHlwZXx8ZzJlO3JldHVybiBzPT09dH1pKHRNYSwiaXNQcm90b3R5cGUiKTtmdW5jdGlvbiBoNyhzKXtpZihzIT1udWxsKXt0cnl7cmV0dXJuIFVfYS5jYWxsKHMpfWNhdGNoe310cnl7cmV0dXJuIHMrIiJ9Y2F0Y2h7fX1yZXR1cm4iIn1pKGg3LCJ0b1NvdXJjZSIpO2Z1bmN0aW9uIFZhcyhzKXtyZXR1cm4gSmx0KHMsITAsITApfWkoVmFzLCJjbG9uZURlZXAiKTtmdW5jdGlvbiBhTWEocyxlKXtyZXR1cm4gcz09PWV8fHMhPT1zJiZlIT09ZX1pKGFNYSwiZXEiKTtmdW5jdGlvbiBVYXMocyl7cmV0dXJuIFdhcyhzKSYmejQuY2FsbChzLCJjYWxsZWUiKSYmKCFXdHMuY2FsbChzLCJjYWxsZWUiKXx8YjJlLmNhbGwocyk9PWpsdCl9aShVYXMsImlzQXJndW1lbnRzIik7dmFyIHRjdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHNNYShzKXtyZXR1cm4gcyE9bnVsbCYmS2FzKHMubGVuZ3RoKSYmIWlNYShzKX1pKHNNYSwiaXNBcnJheUxpa2UiKTtmdW5jdGlvbiBXYXMocyl7cmV0dXJuIFlhcyhzKSYmc01hKHMpfWkoV2FzLCJpc0FycmF5TGlrZU9iamVjdCIpO3ZhciBHYXM9S3RzfHxYYXM7ZnVuY3Rpb24gaU1hKHMpe3ZhciBlPXkyZShzKT9iMmUuY2FsbChzKToiIjtyZXR1cm4gZT09Vmx0fHxlPT1rX2F9aShpTWEsImlzRnVuY3Rpb24iKTtmdW5jdGlvbiBLYXMocyl7cmV0dXJuIHR5cGVvZiBzPT0ibnVtYmVyIiYmcz4tMSYmcyUxPT0wJiZzPD14X2F9aShLYXMsImlzTGVuZ3RoIik7ZnVuY3Rpb24geTJlKHMpe3ZhciBlPXR5cGVvZiBzO3JldHVybiEhcyYmKGU9PSJvYmplY3QifHxlPT0iZnVuY3Rpb24iKX1pKHkyZSwiaXNPYmplY3QiKTtmdW5jdGlvbiBZYXMocyl7cmV0dXJuISFzJiZ0eXBlb2Ygcz09Im9iamVjdCJ9aShZYXMsImlzT2JqZWN0TGlrZSIpO2Z1bmN0aW9uIGFjdChzKXtyZXR1cm4gc01hKHMpP3dhcyhzKTpDYXMocyl9aShhY3QsImtleXMiKTtmdW5jdGlvbiBaYXMoKXtyZXR1cm5bXX1pKFphcywic3R1YkFycmF5Iik7ZnVuY3Rpb24gWGFzKCl7cmV0dXJuITF9aShYYXMsInN0dWJGYWxzZSIpLFJ4LmV4cG9ydHM9VmFzfSk7dmFyIHcyZSxvTWEsazJlLHNjdD1nKCgpPT57Yl9hKCk7bzMoKTt3MmU9eG4ock1hKCksMSksb01hPXhuKEJoZSgpLDEpLGsyZT1vTWEuZGVmYXVsdH0pO2Z1bmN0aW9uIEphcyhzKXtyZXR1cm4gdHlwZW9mIEJ1ZmZlcjwidSI/QnVmZmVyLmZyb20ocykudG9TdHJpbmcoImJhc2U2NCIpOmJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5zKSl9ZnVuY3Rpb24gZXNzKHMpe2lmKHR5cGVvZiBCdWZmZXI8InUiKXtsZXQgZT1CdWZmZXIuZnJvbShzLCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYihzKSkubWFwKGU9PmUuY2hhckNvZGVBdCgwKSkpfWZ1bmN0aW9uIHJjdChzLGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShzLFMyZSxlKX1mdW5jdGlvbiBvY3Qocyl7cmV0dXJuIEpTT04ucGFyc2UocyxuTWEpfWZ1bmN0aW9uIHRzcyhzKXtyZXR1cm4gY01hKHMpJiZzLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJmljdChzLmRhdGEpfWZ1bmN0aW9uIGFzcyhzKXtyZXR1cm4gY01hKHMpJiZzLnR5cGU9PT0iQnVmZmVyIiYmKGxNYShzLmRhdGEpfHxpY3Qocy5kYXRhKSl8fHMgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIGxNYShzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKX1mdW5jdGlvbiBpY3Qocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIn1mdW5jdGlvbiBjTWEocyl7cmV0dXJuIHR5cGVvZiBzPT0ib2JqZWN0IiYmcyE9PW51bGx9dmFyIFMyZSxuTWEsZE1hPWcoKCk9PntzY3QoKTtpKEphcywiYmFzZTY0RW5jb2RlIik7aShlc3MsImJhc2U2NERlY29kZSIpO2kocmN0LCJzdHJpbmdpZnkiKTtpKG9jdCwicGFyc2UiKTtTMmU9aSgocyxlKT0+e2lmKGFzcyhlKSl7bGV0IHQ7aWYoImRhdGEiaW4gZSYmbE1hKGUuZGF0YSkpdD1uZXcgVWludDhBcnJheShlLmRhdGEpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpdD1lO2Vsc2UgcmV0dXJuIGU7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK0phcyh0KX19cmV0dXJuIGV9LCJyZXBsYWNlciIpLG5NYT1pKChzLGUpPT57aWYodHNzKGUpJiZpY3QoZS5kYXRhKSYmZS5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHQ9ZS5kYXRhLnNsaWNlKDcpO3JldHVybiBlc3ModCl9cmV0dXJuIGV9LCJyZXZpdmVyIik7aSh0c3MsImlzRW5jb2RlZEJ1ZmZlciIpO2koYXNzLCJpc0J1ZmZlckxpa2UiKTtpKGxNYSwiaXNBcnJheSIpO2koaWN0LCJpc1N0cmluZyIpO2koY01hLCJpc09iamVjdCIpfSk7dmFyIHQwPXt9O3l0KHQwLHtTbWFydGpzb246KCk9PmxjdCxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PmRzcyxkZWVwRXF1YWxPYmplY3RzOigpPT51TWEsZm9sZERlYzooKT0+Y3NzLHBhcnNlOigpPT5fMmUscGFyc2VCYXNlNjQ6KCk9PmxzcyxwYXJzZUpzb25MOigpPT5uY3Qsc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT5yc3Msc3RyaW5naWZ5OigpPT5mNyxzdHJpbmdpZnlCYXNlNjQ6KCk9Pm5zcyxzdHJpbmdpZnlKc29uTDooKT0+aXNzLHN0cmluZ2lmeVByZXR0eTooKT0+b3NzfSk7dmFyIF8yZSxuY3QsaXNzLHJzcyxmNyxvc3MsbnNzLGxzcyxsY3QsY3NzLHVNYSxkc3MscE1hPWcoKCk9PntzY3QoKTtkTWEoKTtfMmU9b2N0LG5jdD1pKHM9PnMuc3BsaXQoYApgKS5yZWR1Y2UoKGEscik9PntsZXQgbj1yLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MCYmYS5wdXNoKF8yZShuKSksYX0sW10pLCJwYXJzZUpzb25MIiksaXNzPWkocz0+cy5tYXAoZT0+ZjcoZSkpLmpvaW4oYApgKSwic3RyaW5naWZ5SnNvbkwiKSxyc3M9aSgocyxlLHQ9e30pPT57bGV0IGE9bmV3IFdlYWtTZXQscj1pKGw9PntpZihsPT09bnVsbHx8dHlwZW9mIGwhPSJvYmplY3QiKXJldHVybiBsO2xldCBwPVMyZSgiIixsKTtpZihwJiZwLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBwLmRhdGE9PSJzdHJpbmciKXJldHVybiBwO2lmKGEuaGFzKGwpKXJldHVybiJfX2N5Y2xlX18iO2lmKGEuYWRkKGwpLEFycmF5LmlzQXJyYXkobCkpcmV0dXJuIGwubWFwKHU9PnIodSkpO2xldCBkPXt9O2ZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyhsKSl0cnl7ZFt1XT1yKGxbdV0pfWNhdGNoe2RbdV09Il9fdW5zZXJpYWxpemFibGVfXyJ9cmV0dXJuIGR9LCJzYW5pdGl6ZSIpLG49cihzKSxvPXsuLi50LGN5Y2xlczohMH07aWYoZSYmIW8uY21wKXtsZXQgbD1uZXcgTWFwO2UuZm9yRWFjaCgocCxkKT0+bC5zZXQocCxkKSksby5jbXA9KHAsZCk9PntsZXQgdT1sLmhhcyhwLmtleSk/bC5nZXQocC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxjPWwuaGFzKGQua2V5KT9sLmdldChkLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiB1IT09Yz91LWM6cC5rZXk8ZC5rZXk/LTE6cC5rZXk+ZC5rZXk/MTowfX1yZXR1cm4gazJlKG4sbyl9LCJzdGFibGVPbmVXYXlTdHJpbmdpZnkiKSxmNz1pKChzLGUsdD17fSk9PntsZXQgYT1yY3Qocyk7cz1KU09OLnBhcnNlKGEpO2xldCByPXsuLi50fTtpZihlJiYhci5jbXApe2xldCBvPW5ldyBNYXA7ZS5mb3JFYWNoKChsLHApPT5vLnNldChsLHApKSxyLmNtcD0obCxwKT0+e2xldCBkPW8uaGFzKGwua2V5KT9vLmdldChsLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9by5oYXMocC5rZXkpP28uZ2V0KHAua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGQhPT11P2QtdTpsLmtleTxwLmtleT8tMTpsLmtleT5wLmtleT8xOjB9fXJldHVybiBrMmUocyxyKX0sInN0cmluZ2lmeSIpLG9zcz1pKHM9PntsZXQgZT1mNyhzKSx0PUpTT04ucGFyc2UoZSk7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQsbnVsbCwyKX0sInN0cmluZ2lmeVByZXR0eSIpLG5zcz1pKCguLi5zKT0+e2xldCBlPWY3KC4uLnMpO3JldHVybiBhci5iYXNlNjQuZW5jb2RlVXJpKGUpfSwic3RyaW5naWZ5QmFzZTY0IiksbHNzPWkocz0+e2xldCBlPWFyLmJhc2U2NCxhPShlLmRlY29kZVVyaXx8ZS5kZWNvZGUpKHMpO3JldHVybiBfMmUoYSl9LCJwYXJzZUJhc2U2NCIpLGxjdD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlNtYXJ0anNvbiIpfXN0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KGUpe2xldCB0PW5ldyB0aGlzLGE9dC5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgciBpbiBlKWEuaW5kZXhPZihyKSE9PS0xJiYodFtyXT1lW3JdKTtyZXR1cm4gdH1zdGF0aWMgZW5mb2xkRnJvbUpzb24oZSl7bGV0IHQ9XzJlKGUpO3JldHVybiB0aGlzLmVuZm9sZEZyb21PYmplY3QodCl9Zm9sZFRvT2JqZWN0KCl7bGV0IGU9bmV3IFNldDtyZXR1cm4gZS5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1mb2xkVG9PYmplY3RJbnRlcm5hbChlKXtsZXQgdD17fSxhPWkobj0+e2lmKG4gaW5zdGFuY2VvZiBzKXtpZihlLmhhcyhuKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKG4pLG4uZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bi5tYXAobz0+YShvKSk6dzJlLmRlZmF1bHQobil9LCJmb2xkVmFsdWUiKSxyPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2Ygcil7bGV0IG89dGhpc1tuXTt0W25dPWEobyl9cmV0dXJuIHR9Zm9sZFRvSnNvbigpe2xldCBlPXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIGY3KGUpfX0sY3NzPWkoKCk9PihzLGUpPT57cy5zYXZlYWJsZVByb3BlcnRpZXN8fChzLnNhdmVhYmxlUHJvcGVydGllcz1bXSkscy5zYXZlYWJsZVByb3BlcnRpZXMucHVzaChlKX0sImZvbGREZWMiKSx1TWE9aSgocyxlKT0+e2xldCB0PWY3KHMpLGE9ZjcoZSk7cmV0dXJuIHQ9PT1hfSwiZGVlcEVxdWFsT2JqZWN0cyIpLGRzcz1pKChzLGUpPT57bGV0IHQ9bmN0KHMpLGE9bmN0KGUpO3JldHVybiB1TWEodCxhKX0sImRlZXBFcXVhbEpzb25MU3RyaW5ncyIpfSk7dmFyIGhNYT1nKCgpPT57cHNlKCk7VTQoKTtoX2EoKTtkMCgpO3BNYSgpO2lvKCk7WjIoKTtvMygpO0c2ZSgpfSk7ZnVuY3Rpb24gcHNzKHMpe3JldHVybntwZWVyOnMsYXN5bmMgZ2V0VGFnQnlJZChlKXtpZighcy50YWdzLmhhcyhlKSlyZXR1cm47bGV0IHQ9cy5kYXRhLmdldChgJHtjY3R9JHtlfWApO3JldHVybntpZDplLHBheWxvYWQ6dH19fX12YXIgY2N0LGRjdCxmTWE9ZygoKT0+e2hNYSgpO2NjdD0iX190eXBlZHNvY2tldF90YWdfXyI7aShwc3MsIndyYXBTbWFydFNlcnZlUGVlciIpO2RjdD1jbGFzcyBze3N0YXRpY3tpKHRoaXMsIlR5cGVkU29ja2V0Iil9c3RhdGljIGFzeW5jIGNyZWF0ZUNsaWVudChlLHQsYT17fSl7bGV0IG49ey4uLnthdXRvUmVjb25uZWN0OiEwLG1heFJldHJpZXM6MTAwLGluaXRpYWxCYWNrb2ZmTXM6MWUzLG1heEJhY2tvZmZNczo2ZTR9LC4uLmF9LG89bmV3IHMoImNsaWVudCIsZSk7cmV0dXJuIG8uY2xpZW50T3B0aW9ucz1uLG8uc2VydmVyVXJsPXQsby5jdXJyZW50QmFja29mZj1uLmluaXRpYWxCYWNrb2ZmTXMsYXdhaXQgby5jb25uZWN0KCksb31zdGF0aWN7dGhpcy51c2VXaW5kb3dMb2NhdGlvbk9yaWdpblVybD0oKT0+UjEuU21hcnR1cmwuY3JlYXRlRnJvbVVybChnbG9iYWxUaGlzLmxvY2F0aW9uLm9yaWdpbikudG9TdHJpbmcoKX1zdGF0aWMgZnJvbVNtYXJ0U2VydmUoZSx0KXtsZXQgYT1uZXcgTWFwO3MucmVnaXN0ZXJUYWdIYW5kbGVycyh0KTtsZXQgcj1uZXcgcygic2VydmVyIix0KTtyZXR1cm4gci5zbWFydFNlcnZlUmVmPWUsci5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzPWEscn1zdGF0aWMgcmVnaXN0ZXJUYWdIYW5kbGVycyhlKXtlLmFkZFR5cGVkSGFuZGxlcihuZXcgZ2wuVHlwZWRIYW5kbGVyKCJfX3R5cGVkc29ja2V0X3NldFRhZyIsYXN5bmModCxhKT0+e2xldCByPWE/LmxvY2FsRGF0YT8ucGVlcjtyZXR1cm4gcj8oci50YWdzLmFkZCh0Lm5hbWUpLHIuZGF0YS5zZXQoYCR7Y2N0fSR7dC5uYW1lfWAsdC5wYXlsb2FkKSx7c3VjY2VzczohMH0pOihjb25zb2xlLndhcm4oInNldFRhZzogTm8gcGVlciBmb3VuZCBpbiByZXF1ZXN0IGNvbnRleHQiKSx7c3VjY2VzczohMX0pfSkpLGUuYWRkVHlwZWRIYW5kbGVyKG5ldyBnbC5UeXBlZEhhbmRsZXIoIl9fdHlwZWRzb2NrZXRfcmVtb3ZlVGFnIixhc3luYyh0LGEpPT57bGV0IHI9YT8ubG9jYWxEYXRhPy5wZWVyO3JldHVybiByPyhyLnRhZ3MuZGVsZXRlKHQubmFtZSksci5kYXRhLmRlbGV0ZShgJHtjY3R9JHt0Lm5hbWV9YCkse3N1Y2Nlc3M6ITB9KTooY29uc29sZS53YXJuKCJyZW1vdmVUYWc6IE5vIHBlZXIgZm91bmQgaW4gcmVxdWVzdCBjb250ZXh0Iikse3N1Y2Nlc3M6ITF9KX0pKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RhdHVzU3ViamVjdD1uZXcgbHMucnhqcy5TdWJqZWN0LHRoaXMuY29ubmVjdGlvblN0YXR1cz0ibmV3Iix0aGlzLndlYnNvY2tldD1udWxsLHRoaXMuY2xpZW50T3B0aW9ucz1udWxsLHRoaXMuc2VydmVyVXJsPSIiLHRoaXMucmV0cnlDb3VudD0wLHRoaXMuY3VycmVudEJhY2tvZmY9MWUzLHRoaXMucGVuZGluZ1JlcXVlc3RzPW5ldyBNYXAsdGhpcy5zbWFydFNlcnZlUmVmPW51bGwsdGhpcy5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzPW5ldyBNYXAsdGhpcy5zaWRlPWUsdGhpcy50eXBlZHJvdXRlcj10fWFzeW5jIGNvbm5lY3QoKXtsZXQgZT1tdC5kZWZlcigpO3RoaXMudXBkYXRlU3RhdHVzKCJjb25uZWN0aW5nIik7bGV0IHQ9dGhpcy50b1dlYlNvY2tldFVybCh0aGlzLnNlcnZlclVybCk7Y29uc29sZS5sb2coYFR5cGVkU29ja2V0IGNvbm5lY3RpbmcgdG8gJHt0fS4uLmApLHRoaXMud2Vic29ja2V0PW5ldyBXZWJTb2NrZXQodCk7bGV0IGE9c2V0VGltZW91dCgoKT0+e3RoaXMuY29ubmVjdGlvblN0YXR1cyE9PSJjb25uZWN0ZWQiJiYoY29uc29sZS53YXJuKCJUeXBlZFNvY2tldCBjb25uZWN0aW9uIHRpbWVvdXQiKSx0aGlzLndlYnNvY2tldD8uY2xvc2UoKSxlLnJlamVjdChuZXcgRXJyb3IoIkNvbm5lY3Rpb24gdGltZW91dCIpKSl9LDFlNCk7dGhpcy53ZWJzb2NrZXQub25vcGVuPSgpPT57Y2xlYXJUaW1lb3V0KGEpLGNvbnNvbGUubG9nKCJUeXBlZFNvY2tldCBjb25uZWN0ZWQhIiksdGhpcy51cGRhdGVTdGF0dXMoImNvbm5lY3RlZCIpLHRoaXMucmV0cnlDb3VudD0wLHRoaXMuY3VycmVudEJhY2tvZmY9dGhpcy5jbGllbnRPcHRpb25zPy5pbml0aWFsQmFja29mZk1zPz8xZTMsZS5yZXNvbHZlKCl9LHRoaXMud2Vic29ja2V0Lm9ubWVzc2FnZT1hc3luYyByPT57YXdhaXQgdGhpcy5oYW5kbGVNZXNzYWdlKHIuZGF0YSl9LHRoaXMud2Vic29ja2V0Lm9uY2xvc2U9KCk9PntjbGVhclRpbWVvdXQoYSksdGhpcy5oYW5kbGVEaXNjb25uZWN0KCl9LHRoaXMud2Vic29ja2V0Lm9uZXJyb3I9cj0+e2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IFdlYlNvY2tldCBlcnJvcjoiLHIpfTt0cnl7YXdhaXQgZS5wcm9taXNlfWNhdGNoKHIpe2lmKGNsZWFyVGltZW91dChhKSx0aGlzLmNsaWVudE9wdGlvbnM/LmF1dG9SZWNvbm5lY3QpYXdhaXQgdGhpcy5zY2hlZHVsZVJlY29ubmVjdCgpO2Vsc2UgdGhyb3cgcn19dG9XZWJTb2NrZXRVcmwoZSl7bGV0IHQ9bmV3IFVSTChlKTtyZXR1cm5gJHt0LnByb3RvY29sPT09Imh0dHBzOiI/IndzczoiOiJ3czoifS8vJHt0Lmhvc3R9JHt0LnBhdGhuYW1lfWB9YXN5bmMgaGFuZGxlTWVzc2FnZShlKXt0cnl7bGV0IHQ9dHlwZW9mIGU9PSJzdHJpbmciP2U6bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGUpLGE9dDAucGFyc2UodCk7aWYoYS5jb3JyZWxhdGlvbj8uaWQmJnRoaXMucGVuZGluZ1JlcXVlc3RzLmhhcyhhLmNvcnJlbGF0aW9uLmlkKSl7bGV0IG49dGhpcy5wZW5kaW5nUmVxdWVzdHMuZ2V0KGEuY29ycmVsYXRpb24uaWQpO3RoaXMucGVuZGluZ1JlcXVlc3RzLmRlbGV0ZShhLmNvcnJlbGF0aW9uLmlkKSxuLnJlc29sdmUoYSk7cmV0dXJufWxldCByPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIucm91dGVBbmRBZGRSZXNwb25zZShhKTtyJiZ0aGlzLndlYnNvY2tldD8ucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOJiZ0aGlzLndlYnNvY2tldC5zZW5kKHQwLnN0cmluZ2lmeShyKSl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVHlwZWRTb2NrZXQgZmFpbGVkIHRvIHByb2Nlc3MgbWVzc2FnZToiLHQpfX1oYW5kbGVEaXNjb25uZWN0KCl7aWYodGhpcy5jb25uZWN0aW9uU3RhdHVzIT09ImRpc2Nvbm5lY3RlZCIpe3RoaXMudXBkYXRlU3RhdHVzKCJkaXNjb25uZWN0ZWQiKTtmb3IobGV0W2UsdF1vZiB0aGlzLnBlbmRpbmdSZXF1ZXN0cyl0LnJlamVjdChuZXcgRXJyb3IoIlR5cGVkU29ja2V0IGRpc2Nvbm5lY3RlZCIpKTt0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpLHRoaXMuY2xpZW50T3B0aW9ucz8uYXV0b1JlY29ubmVjdCYmdGhpcy5yZXRyeUNvdW50PHRoaXMuY2xpZW50T3B0aW9ucy5tYXhSZXRyaWVzJiZ0aGlzLnNjaGVkdWxlUmVjb25uZWN0KCl9fWFzeW5jIHNjaGVkdWxlUmVjb25uZWN0KCl7aWYoIXRoaXMuY2xpZW50T3B0aW9ucylyZXR1cm47dGhpcy51cGRhdGVTdGF0dXMoInJlY29ubmVjdGluZyIpLHRoaXMucmV0cnlDb3VudCsrO2xldCBlPXRoaXMuY3VycmVudEJhY2tvZmYqLjIqKE1hdGgucmFuZG9tKCkqMi0xKSx0PU1hdGgubWluKHRoaXMuY3VycmVudEJhY2tvZmYrZSx0aGlzLmNsaWVudE9wdGlvbnMubWF4QmFja29mZk1zKTtjb25zb2xlLmxvZyhgVHlwZWRTb2NrZXQgcmVjb25uZWN0aW5nIGluICR7TWF0aC5yb3VuZCh0KX1tcyAoYXR0ZW1wdCAke3RoaXMucmV0cnlDb3VudH0vJHt0aGlzLmNsaWVudE9wdGlvbnMubWF4UmV0cmllc30pYCksYXdhaXQgWHQuZGVsYXlGb3IodCksdGhpcy5jdXJyZW50QmFja29mZj1NYXRoLm1pbih0aGlzLmN1cnJlbnRCYWNrb2ZmKjIsdGhpcy5jbGllbnRPcHRpb25zLm1heEJhY2tvZmZNcyk7dHJ5e2F3YWl0IHRoaXMuY29ubmVjdCgpfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IHJlY29ubmVjdGlvbiBmYWlsZWQ6IixhKX19dXBkYXRlU3RhdHVzKGUpe3RoaXMuY29ubmVjdGlvblN0YXR1cyE9PWUmJih0aGlzLmNvbm5lY3Rpb25TdGF0dXM9ZSx0aGlzLnN0YXR1c1N1YmplY3QubmV4dChlKSl9YXN5bmMgc2VuZFJlcXVlc3QoZSl7aWYoIXRoaXMud2Vic29ja2V0fHx0aGlzLndlYnNvY2tldC5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU4pdGhyb3cgbmV3IEVycm9yKCJXZWJTb2NrZXQgbm90IGNvbm5lY3RlZCIpO2UuY29ycmVsYXRpb258fD17aWQ6YXIuY3JlYXRlLmNyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZygpLHBoYXNlOiJyZXF1ZXN0In07bGV0IHQ9ZS5jb3JyZWxhdGlvbi5pZDtyZXR1cm4gbmV3IFByb21pc2UoKGEscik9PntsZXQgbj1zZXRUaW1lb3V0KCgpPT57dGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHQpLHIobmV3IEVycm9yKCJSZXF1ZXN0IHRpbWVvdXQiKSl9LDNlNCk7dGhpcy5wZW5kaW5nUmVxdWVzdHMuc2V0KHQse3Jlc29sdmU6aShvPT57Y2xlYXJUaW1lb3V0KG4pLGEobyl9LCJyZXNvbHZlIikscmVqZWN0Omkobz0+e2NsZWFyVGltZW91dChuKSxyKG8pfSwicmVqZWN0Iil9KSx0aGlzLndlYnNvY2tldC5zZW5kKHQwLnN0cmluZ2lmeShlKSl9KX1jcmVhdGVUeXBlZFJlcXVlc3QoZSx0KXtsZXQgYT1pKGFzeW5jIHI9PntpZih0aGlzLnNpZGU9PT0iY2xpZW50IilyZXR1cm4gdGhpcy5zZW5kUmVxdWVzdChyKTtpZighdGhpcy5zbWFydFNlcnZlUmVmKXRocm93IG5ldyBFcnJvcigiU2VydmVyIG5vdCBpbml0aWFsaXplZCIpO2xldCBuPXQ7aWYoIW4pe2xldCBsPXRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9ucygpO2lmKGwubGVuZ3RoPT09MSl7bGV0IHA9bFswXTtuPXRoaXMuZ2V0T3JDcmVhdGVXcmFwcGVyKHApfWVsc2UgdGhyb3cgbC5sZW5ndGg9PT0wP25ldyBFcnJvcigiTm8gV2ViU29ja2V0IGNvbm5lY3Rpb25zIGF2YWlsYWJsZSIpOm5ldyBFcnJvcigiTXVsdGlwbGUgY29ubmVjdGlvbnMgYXZhaWxhYmxlIC0gc3BlY2lmeSB0YXJnZXRDb25uZWN0aW9uIil9bGV0IG89YXdhaXQgdGhpcy50eXBlZHJvdXRlci5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChyLmNvcnJlbGF0aW9uLmlkLHIpO3JldHVybiBuLnBlZXIuc2VuZCh0MC5zdHJpbmdpZnkocikpLGF3YWl0IG8uaW50ZXJlc3RGdWxsZmlsbGVkfSwicG9zdE1ldGhvZCIpO3JldHVybiBuZXcgZ2wuVHlwZWRSZXF1ZXN0KG5ldyBnbC5UeXBlZFRhcmdldCh7cG9zdE1ldGhvZDphfSksZSl9Z2V0U3RhdHVzKCl7cmV0dXJuIHRoaXMuY29ubmVjdGlvblN0YXR1c31hc3luYyBzdG9wKCl7dGhpcy5zaWRlPT09ImNsaWVudCI/KHRoaXMuY2xpZW50T3B0aW9ucyYmKHRoaXMuY2xpZW50T3B0aW9ucy5hdXRvUmVjb25uZWN0PSExKSx0aGlzLndlYnNvY2tldCYmKHRoaXMud2Vic29ja2V0LmNsb3NlKCksdGhpcy53ZWJzb2NrZXQ9bnVsbCksdGhpcy5wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKSk6dGhpcy5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzLmNsZWFyKCl9YXN5bmMgc2V0VGFnKGUsdCl7aWYodGhpcy5zaWRlIT09ImNsaWVudCIpdGhyb3cgbmV3IEVycm9yKCJzZXRUYWcgaXMgb25seSBhdmFpbGFibGUgb24gY2xpZW50cyIpO2lmKCEoYXdhaXQgdGhpcy5jcmVhdGVUeXBlZFJlcXVlc3QoIl9fdHlwZWRzb2NrZXRfc2V0VGFnIikuZmlyZSh7bmFtZTplLHBheWxvYWQ6dH0pKS5zdWNjZXNzKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHNldCB0YWcgb24gc2VydmVyIil9YXN5bmMgcmVtb3ZlVGFnKGUpe2lmKHRoaXMuc2lkZSE9PSJjbGllbnQiKXRocm93IG5ldyBFcnJvcigicmVtb3ZlVGFnIGlzIG9ubHkgYXZhaWxhYmxlIG9uIGNsaWVudHMiKTtpZighKGF3YWl0IHRoaXMuY3JlYXRlVHlwZWRSZXF1ZXN0KCJfX3R5cGVkc29ja2V0X3JlbW92ZVRhZyIpLmZpcmUoe25hbWU6ZX0pKS5zdWNjZXNzKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlbW92ZSB0YWcgb24gc2VydmVyIil9Z2V0T3JDcmVhdGVXcmFwcGVyKGUpe2xldCB0PXRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycy5nZXQoZS5pZCk7cmV0dXJuIHR8fCh0PXBzcyhlKSx0aGlzLnNtYXJ0U2VydmVDb25uZWN0aW9uV3JhcHBlcnMuc2V0KGUuaWQsdCkpLHR9YXN5bmMgZmluZEFsbFRhcmdldENvbm5lY3Rpb25zKGUpe2lmKHRoaXMuc2lkZSE9PSJzZXJ2ZXIifHwhdGhpcy5zbWFydFNlcnZlUmVmKXRocm93IG5ldyBFcnJvcigiZmluZEFsbFRhcmdldENvbm5lY3Rpb25zIGlzIG9ubHkgYXZhaWxhYmxlIG9uIHNlcnZlcnMiKTtsZXQgdD1bXTtmb3IobGV0IGEgb2YgdGhpcy5zbWFydFNlcnZlUmVmLmdldFdlYlNvY2tldENvbm5lY3Rpb25zKCkpe2xldCByPXRoaXMuZ2V0T3JDcmVhdGVXcmFwcGVyKGEpO2F3YWl0IGUocikmJnQucHVzaChyKX1yZXR1cm4gdH1hc3luYyBmaW5kVGFyZ2V0Q29ubmVjdGlvbihlKXtyZXR1cm4oYXdhaXQgdGhpcy5maW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnMoZSkpWzBdfWFzeW5jIGZpbmRBbGxUYXJnZXRDb25uZWN0aW9uc0J5VGFnKGUsdCl7aWYodGhpcy5zaWRlIT09InNlcnZlciJ8fCF0aGlzLnNtYXJ0U2VydmVSZWYpdGhyb3cgbmV3IEVycm9yKCJmaW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBzZXJ2ZXJzIik7bGV0IGE9dGhpcy5zbWFydFNlcnZlUmVmLmdldFdlYlNvY2tldENvbm5lY3Rpb25zQnlUYWcoZSkscj1bXTtmb3IobGV0IG4gb2YgYSl7bGV0IG89dGhpcy5nZXRPckNyZWF0ZVdyYXBwZXIobik7aWYodCE9PXZvaWQgMCl7bGV0IGw9YXdhaXQgby5nZXRUYWdCeUlkKGUpO2lmKHQwLnN0cmluZ2lmeShsPy5wYXlsb2FkKSE9PXQwLnN0cmluZ2lmeSh0KSljb250aW51ZX1yLnB1c2gobyl9cmV0dXJuIHJ9YXN5bmMgZmluZFRhcmdldENvbm5lY3Rpb25CeVRhZyhlLHQpe3JldHVybihhd2FpdCB0aGlzLmZpbmRBbGxUYXJnZXRDb25uZWN0aW9uc0J5VGFnKGUsdCkpWzBdfX19KTt2YXIgUXU9e307eXQoUXUse1R5cGVkU29ja2V0OigpPT5kY3R9KTt2YXIgbU1hPWcoKCk9PntmTWEoKX0pO3ZhciBndCxsbD1nKCgpPT57cGUoKTtON2EoKTtvX2EoKTttTWEoKTtndD1sdH0pO3ZhciB5byxnTWE9ZygoKT0+e3BlKCk7eW89SmAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogYXV0bzsKICAgIG1heC13aWR0aDogMTI4MHB4OwogICAgcGFkZGluZzogMTZweCAxNnB4OwogIH0KYH0pO3ZhciBiTWEsdWN0LGhzcyx2Six2TWE9ZygoKT0+e3BlKCk7Yk1hPVtuZSgib2Itc2VjdGlvbmhlYWRpbmciKV07dko9Y2xhc3MgZXh0ZW5kcyhoc3M9d2Upe3N0YXRpY3tpKHRoaXMsIk9iU2VjdGlvbkhlYWRpbmciKX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsSmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLmhlYWRpbmcgewogICAgICAgIGZvbnQtZmFtaWx5OiAnQ2FsIFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMSIsIiNmZmYiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDEgY2xhc3M9ImhlYWRpbmciPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9oMT4KICAgIGB9fTt1Y3Q9UmkoaHNzKSx2Sj1SdCh1Y3QsMCwiT2JTZWN0aW9uSGVhZGluZyIsYk1hLHZKKSxpdCh1Y3QsMSx2Sil9KTt2YXIgQjI9ZygoKT0+e2dNYSgpO3ZNYSgpfSk7dmFyIHFvPWcoKCk9PntVNCgpfSk7dmFyIHhNYT1nKCgpPT57fSk7dmFyIHlNYT1nKCgpPT57fSk7dmFyIHdNYT1nKCgpPT57fSk7dmFyIGtNYT1nKCgpPT57fSk7dmFyIFNNYT1nKCgpPT57fSk7dmFyIF9NYT1nKCgpPT57fSk7dmFyIGZzcyxNTWE9ZygoKT0+e2Zzcz17c3RhbmRhcmQ6e2hvdXJseTowLGRhaWx5Ojcsd2Vla2x5OjQsbW9udGhseToxMn0sZnJlcXVlbnQ6e2hvdXJseToyNCxkYWlseTo3LHdlZWtseTo0LG1vbnRobHk6MTJ9LG1pbmltYWw6e2hvdXJseTowLGRhaWx5OjMsd2Vla2x5OjIsbW9udGhseTo2fSxsb25ndGVybTp7aG91cmx5OjAsZGFpbHk6MTQsd2Vla2x5OjgsbW9udGhseToyNH19fSk7dmFyIHpNYT1nKCgpPT57fSk7dmFyIENNYT1nKCgpPT57fSk7dmFyIHBjdD17fTt5dChwY3Qse1JFVEVOVElPTl9QUkVTRVRTOigpPT5mc3N9KTt2YXIgam89ZygoKT0+e3hNYSgpO3lNYSgpO3dNYSgpO2tNYSgpO1NNYSgpO19NYSgpO01NYSgpO3pNYSgpO0NNYSgpfSk7dmFyIFRNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyICRNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIERNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIExNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEVNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIFBNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIElNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEFNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIE5NYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIFJNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIE9NYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEZNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEJNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIEhNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIHFNYT1nKCgpPT57cW8oKTtqbygpfSk7dmFyIGpNYT17fTt2YXIgVk1hPWcoKCk9PntUTWEoKTskTWEoKTtETWEoKTtMTWEoKTtFTWEoKTtQTWEoKTtJTWEoKTtBTWEoKTtOTWEoKTtSTWEoKTtPTWEoKTtGTWEoKTtCTWEoKTtITWEoKTtxTWEoKX0pO3ZhciBGeD1nKCgpPT57cW8oKTtqbygpO1ZNYSgpfSk7YXN5bmMgZnVuY3Rpb24gZ3NzKCl7aWYoIW03KXRyeXttNz1hd2FpdCBRdS5UeXBlZFNvY2tldC5jcmVhdGVDbGllbnQoeEosUXUuVHlwZWRTb2NrZXQudXNlV2luZG93TG9jYXRpb25PcmlnaW5VcmwoKSksYXdhaXQgbTcuc2V0VGFnKCJyb2xlIiwib3BzX2Rhc2hib2FyZCIpLGNvbnNvbGUubG9nKCJUeXBlZFNvY2tldCBkYXNoYm9hcmQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCIpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IGNvbm5lY3Rpb24gZmFpbGVkOiIscyksbTc9bnVsbH19YXN5bmMgZnVuY3Rpb24gYnNzKCl7aWYobTcpe3RyeXthd2FpdCBtNy5kaXNjb25uZWN0KCl9Y2F0Y2h7fW03PW51bGx9fXZhciBlcCxRaSxhMCxZdCxaYSxxMixIMixzbyxjbCxtYyxpYSxHTWEsTTJlLEh4LHoyZSxLTWEsZmN0LFlNYSxaTWEsWE1hLFFNYSxKTWEsZXphLEMyZSxtY3QsZ2N0LFQyZSx0emEsYmN0LHlKLHdKLGF6YSxzemEsdmN0LHhjdCx5Y3QsJDJlLGl6YSxEMmUscnphLG96YSxrZG4sbnphLFNkbixsemEsX2RuLGN6YSx3Y3Qsa0osZHphLHV6YSxwemEsaHphLE1kbix6ZG4sQ2RuLEJ4LG1zcyxoY3QsbTcseEosVU1hLFdNYSxmemEsbXphLEwyZSxnemEsYTE9Zyhhc3luYygpPT57bGwoKTtGeCgpO2VwPW5ldyBndC5wbHVnaW5zLnNtYXJ0c3RhdGUuU21hcnRzdGF0ZSxRaT1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoImxvZ2luIix7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSwicGVyc2lzdGVudCIpLGEwPWF3YWl0IGVwLmdldFN0YXRlUGFydCgic3lzdGVtIix7c3RhdHVzOm51bGx9LCJzb2Z0IiksWXQ9YXdhaXQgZXAuZ2V0U3RhdGVQYXJ0KCJzZXJ2aWNlcyIse3NlcnZpY2VzOltdLGN1cnJlbnRTZXJ2aWNlOm51bGwsY3VycmVudFNlcnZpY2VMb2dzOltdLGN1cnJlbnRTZXJ2aWNlU3RhdHM6bnVsbCxwbGF0Zm9ybVNlcnZpY2VzOltdLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0sInNvZnQiKSxaYT1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoIm5ldHdvcmsiLHt0YXJnZXRzOltdLHN0YXRzOm51bGwsdHJhZmZpY1N0YXRzOm51bGwsZG5zUmVjb3JkczpbXSxkb21haW5zOltdLGdhdGV3YXlEb21haW5zOltdLGdhdGV3YXlEbnNSZWNvcmRzOltdLGNlcnRpZmljYXRlczpbXX0sInNvZnQiKSxxMj1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoInJlZ2lzdHJpZXMiLHt0b2tlbnM6W10scmVnaXN0cnlTdGF0dXM6bnVsbH0sInNvZnQiKSxIMj1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoImJhY2t1cHMiLHtiYWNrdXBzOltdLHNjaGVkdWxlczpbXX0sInNvZnQiKSxzbz1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoInNldHRpbmdzIix7c2V0dGluZ3M6bnVsbCxiYWNrdXBQYXNzd29yZENvbmZpZ3VyZWQ6ITEsbWFuYWdlZERjUm91dGVyU3RhdHVzOm51bGx9LCJzb2Z0IiksY2w9YXdhaXQgZXAuZ2V0U3RhdGVQYXJ0KCJhcHBTdG9yZSIse2FwcHM6W10sdXBncmFkZWFibGVTZXJ2aWNlczpbXSx1cGdyYWRlT3BlcmF0aW9uczpbXX0sInNvZnQiKSxtYz1hd2FpdCBlcC5nZXRTdGF0ZVBhcnQoInVpIix7YWN0aXZlVmlldzoiZGFzaGJvYXJkIixhY3RpdmVTdWJ2aWV3Om51bGwsYXV0b1JlZnJlc2g6ITAscmVmcmVzaEludGVydmFsOjNlNH0pLGlhPWkoKCk9Pih7aWRlbnRpdHk6UWkuZ2V0U3RhdGUoKS5pZGVudGl0eX0pLCJnZXRBY3Rpb25Db250ZXh0IiksR01hPVFpLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57dHJ5e3JldHVybntpZGVudGl0eTooYXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9naW5XaXRoVXNlcm5hbWVBbmRQYXNzd29yZCIpLmZpcmUoe3VzZXJuYW1lOmUudXNlcm5hbWUscGFzc3dvcmQ6ZS5wYXNzd29yZH0pKS5pZGVudGl0eSxpc0xvZ2dlZEluOiEwfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiTG9naW4gZmFpbGVkOiIsdCkse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX19fSksTTJlPVFpLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7ZS5pZGVudGl0eSYmYXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9nb3V0IikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIkxvZ291dCBlcnJvcjoiLHQpfXJldHVybntpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fSksSHg9YTAuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtyZXR1cm57c3RhdHVzOihhd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U3lzdGVtU3RhdHVzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pKS5zdGF0dXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc3lzdGVtIHN0YXR1czoiLHQpLHMuZ2V0U3RhdGUoKX19KSx6MmU9WXQuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXJ2aWNlczphLnNlcnZpY2VzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNlcnZpY2VzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLEtNYT1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2xldCByPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGN1cnJlbnRTZXJ2aWNlOnIuc2VydmljZX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLGZjdD1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlQ29uZmlnOmUuY29uZmlnfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksc2VydmljZXM6bi5zZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2VydmljZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxZTWE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IHI9cy5nZXRTdGF0ZSgpO3JldHVybnsuLi5yLHNlcnZpY2VzOnIuc2VydmljZXMuZmlsdGVyKG49Pm4ubmFtZSE9PWUubmFtZSksY3VycmVudFNlcnZpY2U6bnVsbH19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgc2VydmljZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxaTWE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RhcnRTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXJ2aWNlczpuLnNlcnZpY2VzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN0YXJ0IHNlcnZpY2U6IixhKSxzLmdldFN0YXRlKCl9fSksWE1hPVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0b3BTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXJ2aWNlczpuLnNlcnZpY2VzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN0b3Agc2VydmljZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxRTWE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmVzdGFydFNlcnZpY2UiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZX0pO2xldCBuPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHNlcnZpY2VzOm4uc2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVzdGFydCBzZXJ2aWNlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLEpNYT1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2xldCByPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlTG9ncyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lLHRhaWw6ZS5saW5lc3x8MjAwfSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZUxvZ3M6ci5sb2dzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNlcnZpY2UgbG9nczoiLGEpLHMuZ2V0U3RhdGUoKX19KSxlemE9WXQuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZVN0YXRzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGN1cnJlbnRTZXJ2aWNlU3RhdHM6ci5zdGF0c319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIHN0YXRzOiIsYSkscy5nZXRTdGF0ZSgpfX0pLEMyZT1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczphLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGxhdGZvcm0gc2VydmljZXM6Iix0KSxzLmdldFN0YXRlKCl9fSksbWN0PVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0UGxhdGZvcm1TZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxwbGF0Zm9ybVNlcnZpY2VzOm4ucGxhdGZvcm1TZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBwbGF0Zm9ybSBzZXJ2aWNlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLGdjdD1ZdC5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdG9wUGxhdGZvcm1TZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxwbGF0Zm9ybVNlcnZpY2VzOm4ucGxhdGZvcm1TZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIHBsYXRmb3JtIHNlcnZpY2U6IixhKSxzLmdldFN0YXRlKCl9fSksVDJlPVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZVN0YXRzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlfSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6ci5zdGF0c319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBwbGF0Zm9ybSBzZXJ2aWNlIHN0YXRzOiIsYSksey4uLnMuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbH19fSksdHphPVl0LmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBsYXRmb3JtU2VydmljZUxvZ3MiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNlcnZpY2VUeXBlOmUuc2VydmljZVR5cGUsdGFpbDplLnRhaWx8fDEwMH0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6ci5sb2dzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHBsYXRmb3JtIHNlcnZpY2UgbG9nczoiLGEpLHsuLi5zLmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119fX0pLGJjdD1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXROZXR3b3JrVGFyZ2V0cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHRhcmdldHM6YS50YXJnZXRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIG5ldHdvcmsgdGFyZ2V0czoiLHQpLHMuZ2V0U3RhdGUoKX19KSx5Sj1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXROZXR3b3JrU3RhdHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzdGF0czphLnN0YXRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIG5ldHdvcmsgc3RhdHM6Iix0KSxzLmdldFN0YXRlKCl9fSksd0o9WmEuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0VHJhZmZpY1N0YXRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksdHJhZmZpY1N0YXRzOmEuc3RhdHN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdHJhZmZpYyBzdGF0czoiLHQpLHMuZ2V0U3RhdGUoKX19KSxhemE9WmEuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0RG5zUmVjb3JkcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGRuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIEROUyByZWNvcmRzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHN6YT1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzeW5jRG5zIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO2xldCByPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXREbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksZG5zUmVjb3JkczpyLnJlY29yZHN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3luYyBETlM6Iix0KSxzLmdldFN0YXRlKCl9fSksdmN0PVphLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldERvbWFpbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxkb21haW5zOmEuZG9tYWluc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBkb21haW5zOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHhjdD1aYS5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRHYXRld2F5RG9tYWlucyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGdhdGV3YXlEb21haW5zOmEuZG9tYWluc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBnYXRld2F5IGRvbWFpbnM6Iix0KSxzLmdldFN0YXRlKCl9fSkseWN0PVphLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEdhdGV3YXlEbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksZ2F0ZXdheURuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGdhdGV3YXkgRE5TIHJlY29yZHM6Iix0KSxzLmdldFN0YXRlKCl9fSksJDJlPVphLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImxpc3RDZXJ0aWZpY2F0ZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxjZXJ0aWZpY2F0ZXM6YS5jZXJ0aWZpY2F0ZXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggY2VydGlmaWNhdGVzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLGl6YT1aYS5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJyZW5ld0NlcnRpZmljYXRlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxkb21haW46ZS5kb21haW59KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwibGlzdENlcnRpZmljYXRlcyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGNlcnRpZmljYXRlczpuLmNlcnRpZmljYXRlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5ldyBjZXJ0aWZpY2F0ZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxEMmU9cTIuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UmVnaXN0cnlUb2tlbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSx0b2tlbnM6YS50b2tlbnN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcmVnaXN0cnkgdG9rZW5zOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHJ6YT1xMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVSZWdpc3RyeVRva2VuIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSx0b2tlbjplLnRva2VufSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFJlZ2lzdHJ5VG9rZW5zIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksdG9rZW5zOm4udG9rZW5zfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSByZWdpc3RyeSB0b2tlbjoiLGEpLHMuZ2V0U3RhdGUoKX19KSxvemE9cTIuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlUmVnaXN0cnlUb2tlbiIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksdG9rZW5JZDplLnRva2VuSWR9KTtsZXQgcj1zLmdldFN0YXRlKCk7cmV0dXJuey4uLnIsdG9rZW5zOnIudG9rZW5zLmZpbHRlcihuPT5uLmlkIT09ZS50b2tlbklkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgcmVnaXN0cnkgdG9rZW46IixhKSxzLmdldFN0YXRlKCl9fSksa2RuPUgyLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxiYWNrdXBzOmEuYmFja3Vwc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBiYWNrdXBzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLG56YT1IMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJkZWxldGVCYWNrdXAiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LGJhY2t1cElkOmUuYmFja3VwSWR9KTtsZXQgcj1zLmdldFN0YXRlKCk7cmV0dXJuey4uLnIsYmFja3VwczpyLmJhY2t1cHMuZmlsdGVyKG49Pm4uaWQhPT1lLmJhY2t1cElkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgYmFja3VwOiIsYSkscy5nZXRTdGF0ZSgpfX0pLFNkbj1IMi5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRCYWNrdXBTY2hlZHVsZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzY2hlZHVsZXM6YS5zY2hlZHVsZXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2NoZWR1bGVzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLGx6YT1IMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVCYWNrdXBTY2hlZHVsZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2NoZWR1bGVDb25maWc6ZS5jb25maWd9KTtsZXQgbj1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwU2NoZWR1bGVzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksc2NoZWR1bGVzOm4uc2NoZWR1bGVzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBzY2hlZHVsZToiLGEpLHMuZ2V0U3RhdGUoKX19KSxfZG49SDIuY3JlYXRlQWN0aW9uKGFzeW5jKHMsZSk9PntsZXQgdD1pYSgpO3RyeXthd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IHI9cy5nZXRTdGF0ZSgpO3JldHVybnsuLi5yLHNjaGVkdWxlczpyLnNjaGVkdWxlcy5maWx0ZXIobj0+bi5pZCE9PWUuc2NoZWR1bGVJZCl9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNjaGVkdWxlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLGN6YT1IMi5jcmVhdGVBY3Rpb24oYXN5bmMocyxlKT0+e2xldCB0PWlhKCk7dHJ5e2F3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ0cmlnZ2VyQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IG49YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxiYWNrdXBzOm4uYmFja3Vwc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB0cmlnZ2VyIHNjaGVkdWxlOiIsYSkscy5nZXRTdGF0ZSgpfX0pLHdjdD1zby5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldFt0LGEscl09YXdhaXQgUHJvbWlzZS5hbGwoW25ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXR0aW5ncyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KSxuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwUGFzc3dvcmRTdGF0dXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSksbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE1hbmFnZWREY1JvdXRlclN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KV0pO3JldHVybntzZXR0aW5nczp0LnNldHRpbmdzLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDphLnN0YXR1cy5pc0NvbmZpZ3VyZWQsbWFuYWdlZERjUm91dGVyU3RhdHVzOnIuc3RhdHVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNldHRpbmdzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLGtKPXNvLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInVwZGF0ZVNldHRpbmdzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXR0aW5nczplLnNldHRpbmdzfSk7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxzZXR0aW5nczpyLnNldHRpbmdzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBzZXR0aW5nczoiLGEpLHMuZ2V0U3RhdGUoKX19KSxkemE9c28uY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgdD1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0TWFuYWdlZERjUm91dGVyU3RhdHVzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksbWFuYWdlZERjUm91dGVyU3RhdHVzOnQuc3RhdHVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIG1hbmFnZWQgZGNyb3V0ZXIgc3RhdHVzOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHV6YT1zby5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCB0PWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydE1hbmFnZWREY1JvdXRlciIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czp0LnN0YXR1c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBtYW5hZ2VkIGRjcm91dGVyOiIsdCkscy5nZXRTdGF0ZSgpfX0pLHB6YT1zby5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCB0PWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdG9wTWFuYWdlZERjUm91dGVyIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5zLmdldFN0YXRlKCksbWFuYWdlZERjUm91dGVyU3RhdHVzOnQuc3RhdHVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN0b3AgbWFuYWdlZCBkY3JvdXRlcjoiLHQpLHMuZ2V0U3RhdGUoKX19KSxoemE9c28uY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgdD1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmVzdGFydE1hbmFnZWREY1JvdXRlciIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czp0LnN0YXR1c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXN0YXJ0IG1hbmFnZWQgZGNyb3V0ZXI6Iix0KSxzLmdldFN0YXRlKCl9fSksTWRuPXNvLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7cmV0dXJuIGF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzZXRCYWNrdXBQYXNzd29yZCIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHkscGFzc3dvcmQ6ZS5wYXNzd29yZH0pLHsuLi5zLmdldFN0YXRlKCksYmFja3VwUGFzc3dvcmRDb25maWd1cmVkOiEwfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNldCBiYWNrdXAgcGFzc3dvcmQ6IixhKSxzLmdldFN0YXRlKCl9fSksemRuPW1jLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9ZS52aWV3LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKSxhPWUuc3Vidmlldz9lLnN1YnZpZXcudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiLSIpOm51bGw7cmV0dXJuey4uLnMuZ2V0U3RhdGUoKSxhY3RpdmVWaWV3OnQsYWN0aXZlU3VidmlldzphfX0pLENkbj1tYy5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPXMuZ2V0U3RhdGUoKTtyZXR1cm57Li4uZSxhdXRvUmVmcmVzaDohZS5hdXRvUmVmcmVzaH19KSxCeD1udWxsLG1zcz1pKGFzeW5jKCk9PntpZihRaS5nZXRTdGF0ZSgpLmlzTG9nZ2VkSW4pdHJ5e2F3YWl0IFByb21pc2UuYWxsKFthMC5kaXNwYXRjaEFjdGlvbihIeCxudWxsKSxaYS5kaXNwYXRjaEFjdGlvbih3SixudWxsKV0pfWNhdGNoe319LCJkaXNwYXRjaENvbWJpbmVkUmVmcmVzaEFjdGlvbiIpLGhjdD1pKCgpPT57bGV0IHM9bWMuZ2V0U3RhdGUoKSxlPVFpLmdldFN0YXRlKCk7cy5hdXRvUmVmcmVzaCYmZS5pc0xvZ2dlZEluPyhCeCYmY2xlYXJJbnRlcnZhbChCeCksQng9c2V0SW50ZXJ2YWwoKCk9Pnttc3MoKX0scy5yZWZyZXNoSW50ZXJ2YWwpKTpCeCYmKGNsZWFySW50ZXJ2YWwoQngpLEJ4PW51bGwpfSwic3RhcnRBdXRvUmVmcmVzaCIpO21jLnNlbGVjdChzPT5zKS5zdWJzY3JpYmUoKCk9PmhjdCgpKSxRaS5zZWxlY3Qocz0+cykuc3Vic2NyaWJlKCgpPT5oY3QoKSksaGN0KCk7bTc9bnVsbCx4Sj1uZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSb3V0ZXIsVU1hPWkoKHMsZSk9PntsZXQgdD1zLmZpbmRJbmRleChyPT5yLm5hbWU9PT1lLm5hbWUpO2lmKHQ9PT0tMSlyZXR1cm5bLi4ucyxlXTtsZXQgYT1bLi4uc107cmV0dXJuIGFbdF09ZSxhfSwidXBzZXJ0U2VydmljZSIpLFdNYT1pKChzLGUpPT4ocy5maW5kSW5kZXgocj0+ci5pZD09PWUuaWQpPT09LTE/W2UsLi4uc106cy5tYXAocj0+ci5pZD09PWUuaWQ/ZTpyKSkuc29ydCgocixuKT0+bi5zdGFydGVkQXQtci5zdGFydGVkQXQpLnNsaWNlKDAsMjUpLCJ1cHNlcnRVcGdyYWRlT3BlcmF0aW9uIik7eEouYWRkVHlwZWRIYW5kbGVyKG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hTZXJ2aWNlVXBkYXRlIixhc3luYyBzPT57bGV0IGU9WXQuZ2V0U3RhdGUoKSx0PWUuc2VydmljZXMsYT1lLmN1cnJlbnRTZXJ2aWNlLHI9ZS5jdXJyZW50U2VydmljZUxvZ3Msbj1lLmN1cnJlbnRTZXJ2aWNlU3RhdHM7cmV0dXJuIHMuYWN0aW9uPT09ImRlbGV0ZWQiPyh0PXQuZmlsdGVyKG89Pm8ubmFtZSE9PXMuc2VydmljZU5hbWUpLGE/Lm5hbWU9PT1zLnNlcnZpY2VOYW1lJiYoYT1udWxsLHI9W10sbj1udWxsKSk6cy5zZXJ2aWNlJiYodD1VTWEodCxzLnNlcnZpY2UpLGE/Lm5hbWU9PT1zLnNlcnZpY2UubmFtZSYmKGE9cy5zZXJ2aWNlKSksWXQuc2V0U3RhdGUoey4uLmUsc2VydmljZXM6dCxjdXJyZW50U2VydmljZTphLGN1cnJlbnRTZXJ2aWNlTG9nczpyLGN1cnJlbnRTZXJ2aWNlU3RhdHM6bn0pLHt9fSkpLHhKLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoQXBwU3RvcmVVcGdyYWRlUHJvZ3Jlc3MiLGFzeW5jIHM9PntsZXQgZT1jbC5nZXRTdGF0ZSgpO2lmKGNsLnNldFN0YXRlKHsuLi5lLHVwZ3JhZGVPcGVyYXRpb25zOldNYShlLnVwZ3JhZGVPcGVyYXRpb25zLHMub3BlcmF0aW9uKSx1cGdyYWRlYWJsZVNlcnZpY2VzOnMub3BlcmF0aW9uLnN0YXR1cz09PSJzdWNjZXNzIj9lLnVwZ3JhZGVhYmxlU2VydmljZXMuZmlsdGVyKHQ9PnQuc2VydmljZU5hbWUhPT1zLm9wZXJhdGlvbi5zZXJ2aWNlTmFtZSk6ZS51cGdyYWRlYWJsZVNlcnZpY2VzfSkscy5vcGVyYXRpb24uc2VydmljZSl7bGV0IHQ9WXQuZ2V0U3RhdGUoKTtZdC5zZXRTdGF0ZSh7Li4udCxzZXJ2aWNlczpVTWEodC5zZXJ2aWNlcyxzLm9wZXJhdGlvbi5zZXJ2aWNlKSxjdXJyZW50U2VydmljZTp0LmN1cnJlbnRTZXJ2aWNlPy5uYW1lPT09cy5vcGVyYXRpb24uc2VydmljZS5uYW1lP3Mub3BlcmF0aW9uLnNlcnZpY2U6dC5jdXJyZW50U2VydmljZX0pfXJldHVybnt9fSkpLHhKLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoUGxhdGZvcm1TZXJ2aWNlTG9nIixhc3luYyBzPT57bGV0IGU9WXQuZ2V0U3RhdGUoKSx0PXtpZDplLmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzLmxlbmd0aCxzZXJ2aWNlSWQ6MCx0aW1lc3RhbXA6bmV3IERhdGUocy5lbnRyeS50aW1lc3RhbXApLmdldFRpbWUoKSxtZXNzYWdlOnMuZW50cnkubWVzc2FnZSxsZXZlbDpzLmVudHJ5LmxldmVsLHNvdXJjZToic3Rkb3V0In0sYT1bLi4uZS5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9ncyx0XTtyZXR1cm4gYS5sZW5ndGg+MmUzJiZhLnNwbGljZSgwLGEubGVuZ3RoLTJlMyksWXQuc2V0U3RhdGUoey4uLmUsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6YX0pLHt9fSkpLHhKLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoU2VydmljZUxvZyIsYXN5bmMgcz0+e2xldCBlPVl0LmdldFN0YXRlKCk7aWYoIWUuY3VycmVudFNlcnZpY2V8fGUuY3VycmVudFNlcnZpY2UubmFtZSE9PXMuc2VydmljZU5hbWUpcmV0dXJue307bGV0IHQ9e2lkOmUuY3VycmVudFNlcnZpY2VMb2dzLmxlbmd0aCxzZXJ2aWNlSWQ6MCx0aW1lc3RhbXA6bmV3IERhdGUocy5lbnRyeS50aW1lc3RhbXApLmdldFRpbWUoKSxtZXNzYWdlOnMuZW50cnkubWVzc2FnZSxsZXZlbDpzLmVudHJ5LmxldmVsLHNvdXJjZToic3Rkb3V0In0sYT1bLi4uZS5jdXJyZW50U2VydmljZUxvZ3MsdF07cmV0dXJuIGEubGVuZ3RoPjJlMyYmYS5zcGxpY2UoMCxhLmxlbmd0aC0yZTMpLFl0LnNldFN0YXRlKHsuLi5lLGN1cnJlbnRTZXJ2aWNlTG9nczphfSkse319KSk7aShnc3MsImNvbm5lY3RTb2NrZXQiKTtpKGJzcywiZGlzY29ubmVjdFNvY2tldCIpO2Z6YT1jbC5jcmVhdGVBY3Rpb24oYXN5bmMgcz0+e2xldCBlPWlhKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRBcHBTdG9yZVRlbXBsYXRlcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLGFwcHM6YS5hcHBzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGFwcCB0ZW1wbGF0ZXM6Iix0KSxzLmdldFN0YXRlKCl9fSksbXphPWNsLmNyZWF0ZUFjdGlvbihhc3luYyBzPT57bGV0IGU9aWEoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFVwZ3JhZGVhYmxlQXBwU3RvcmVTZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHVwZ3JhZGVhYmxlU2VydmljZXM6YS5zZXJ2aWNlc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCB1cGdyYWRlYWJsZSBzZXJ2aWNlczoiLHQpLHMuZ2V0U3RhdGUoKX19KSxMMmU9Y2wuY3JlYXRlQWN0aW9uKGFzeW5jIHM9PntsZXQgZT1pYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QXBwU3RvcmVVcGdyYWRlT3BlcmF0aW9ucyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4ucy5nZXRTdGF0ZSgpLHVwZ3JhZGVPcGVyYXRpb25zOmEub3BlcmF0aW9uc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCB1cGdyYWRlIG9wZXJhdGlvbnM6Iix0KSxzLmdldFN0YXRlKCl9fSksZ3phPWNsLmNyZWF0ZUFjdGlvbihhc3luYyhzLGUpPT57bGV0IHQ9aWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0QXBwU3RvcmVTZXJ2aWNlVXBncmFkZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5zZXJ2aWNlTmFtZSx0YXJnZXRWZXJzaW9uOmUudGFyZ2V0VmVyc2lvbn0pLG49cy5nZXRTdGF0ZSgpO3JldHVybnsuLi5uLHVwZ3JhZGVPcGVyYXRpb25zOldNYShuLnVwZ3JhZGVPcGVyYXRpb25zLHIub3BlcmF0aW9uKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGdyYWRlIHNlcnZpY2U6IixhKSxzLmdldFN0YXRlKCl9fSk7UWkuc2VsZWN0KHM9PnMpLnN1YnNjcmliZShzPT57cy5pc0xvZ2dlZEluP2dzcygpOmJzcygpfSl9KTtmdW5jdGlvbiB2emEocyl7cmV0dXJuIHlzcy5pbmNsdWRlcyhzKX1mdW5jdGlvbiB4emEocyxlKXtyZXR1cm4gcXhbc10/LmluY2x1ZGVzKGUpPz8hMX12YXIgdnNzLGJ6YSxxeCxrY3QseHNzLHlzcyxTY3QsZGwsZzc9Zyhhc3luYygpPT57bGwoKTthd2FpdCBhMSgpO3Zzcz1ndC5wbHVnaW5zLnNtYXJ0cm91dGVyLlNtYXJ0Um91dGVyLGJ6YT1bImRhc2hib2FyZCIsInNldHRpbmdzIl0scXg9e2FwcHM6WyJhcHAtc3RvcmUiLCJzZXJ2aWNlcyJdLG5ldHdvcms6WyJwcm94eSIsImRvbWFpbnMiLCJkbnMtcmVjb3JkcyJdLHJlZ2lzdHJ5OlsicmVnaXN0cmllcyIsInRva2VucyJdfSxrY3Q9e2FwcHM6ImFwcC1zdG9yZSIsbmV0d29yazoicHJveHkiLHJlZ2lzdHJ5OiJyZWdpc3RyaWVzIn0seHNzPXsiYXBwLXN0b3JlIjp7dmlldzoiYXBwcyIsc3VidmlldzoiYXBwLXN0b3JlIn0sc2VydmljZXM6e3ZpZXc6ImFwcHMiLHN1YnZpZXc6InNlcnZpY2VzIn0scHJveHk6e3ZpZXc6Im5ldHdvcmsiLHN1YnZpZXc6InByb3h5In0sZG9tYWluczp7dmlldzoibmV0d29yayIsc3VidmlldzoiZG9tYWlucyJ9LCJkbnMtcmVjb3JkcyI6e3ZpZXc6Im5ldHdvcmsiLHN1YnZpZXc6ImRucy1yZWNvcmRzIn0scmVnaXN0cmllczp7dmlldzoicmVnaXN0cnkiLHN1YnZpZXc6InJlZ2lzdHJpZXMifSx0b2tlbnM6e3ZpZXc6InJlZ2lzdHJ5IixzdWJ2aWV3OiJ0b2tlbnMifX0seXNzPVsuLi5iemEsLi4uT2JqZWN0LmtleXMocXgpXTtpKHZ6YSwiaXNWYWxpZFZpZXciKTtpKHh6YSwiaXNWYWxpZFN1YnZpZXciKTtTY3Q9Y2xhc3N7c3RhdGlje2kodGhpcywiQXBwUm91dGVyIil9cm91dGVyO2luaXRpYWxpemVkPSExO3N1cHByZXNzU3RhdGVVcGRhdGU9ITE7Y29uc3RydWN0b3IoKXt0aGlzLnJvdXRlcj1uZXcgdnNzKHtkZWJ1ZzohMX0pfWluaXQoKXt0aGlzLmluaXRpYWxpemVkfHwodGhpcy5zZXR1cFJvdXRlcygpLHRoaXMuc2V0dXBTdGF0ZVN5bmMoKSx0aGlzLmhhbmRsZUluaXRpYWxSb3V0ZSgpLHRoaXMuaW5pdGlhbGl6ZWQ9ITApfXNldHVwUm91dGVzKCl7Zm9yKGxldCBlIG9mIGJ6YSl0aGlzLnJvdXRlci5vbihgLyR7ZX1gLGFzeW5jKCk9Pnt0aGlzLnVwZGF0ZVZpZXdTdGF0ZShlLG51bGwpfSk7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHF4KSl7dGhpcy5yb3V0ZXIub24oYC8ke2V9YCxhc3luYygpPT57dGhpcy5uYXZpZ2F0ZVRvKGAvJHtlfS8ke2tjdFtlXX1gKX0pO2ZvcihsZXQgdCBvZiBxeFtlXSl0aGlzLnJvdXRlci5vbihgLyR7ZX0vJHt0fWAsYXN5bmMoKT0+e3RoaXMudXBkYXRlVmlld1N0YXRlKGUsdCl9KX10aGlzLnJvdXRlci5vbigiLyIsYXN5bmMoKT0+e3RoaXMubmF2aWdhdGVUbygiL2Rhc2hib2FyZCIpfSl9c2V0dXBTdGF0ZVN5bmMoKXttYy5zZWxlY3QoKS5zdWJzY3JpYmUoZT0+e2lmKHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZSlyZXR1cm47bGV0IHQ9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLGE9ZS5hY3RpdmVTdWJ2aWV3P2AvJHtlLmFjdGl2ZVZpZXd9LyR7ZS5hY3RpdmVTdWJ2aWV3fWA6YC8ke2UuYWN0aXZlVmlld31gO3QhPT1hJiYodGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSEwLHRoaXMucm91dGVyLnB1c2hVcmwoYSksdGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSExKX0pfWhhbmRsZUluaXRpYWxSb3V0ZSgpe2xldCBlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtpZighZXx8ZT09PSIvIil7dGhpcy5yb3V0ZXIucHVzaFVybCgiL2Rhc2hib2FyZCIpO3JldHVybn1sZXQgdD1lLnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pLGE9dFswXSxyPXRbMV07aWYoIXZ6YShhKSl7dGhpcy5yb3V0ZXIucHVzaFVybCgiL2Rhc2hib2FyZCIpO3JldHVybn1xeFthXT9yJiZ4emEoYSxyKT90aGlzLnVwZGF0ZVZpZXdTdGF0ZShhLHIpOnRoaXMucm91dGVyLnB1c2hVcmwoYC8ke2F9LyR7a2N0W2FdfWApOnRoaXMudXBkYXRlVmlld1N0YXRlKGEsbnVsbCl9dXBkYXRlVmlld1N0YXRlKGUsdCl7dGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSEwO2xldCBhPW1jLmdldFN0YXRlKCk7KGEuYWN0aXZlVmlldyE9PWV8fGEuYWN0aXZlU3VidmlldyE9PXQpJiZtYy5zZXRTdGF0ZSh7Li4uYSxhY3RpdmVWaWV3OmUsYWN0aXZlU3Vidmlldzp0fSksdGhpcy5zdXBwcmVzc1N0YXRlVXBkYXRlPSExfW5hdmlnYXRlVG8oZSl7dGhpcy5yb3V0ZXIucHVzaFVybChlKX1uYXZpZ2F0ZVRvVmlldyhlLHQpe2xldCBhPWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiLSIpLHI9dD8udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiLSIpO2lmKCF2emEoYSkpe2xldCBuPXhzc1thXTtpZihuKXt0aGlzLm5hdmlnYXRlVG9WaWV3KG4udmlldyxuLnN1YnZpZXcpO3JldHVybn10aGlzLm5hdmlnYXRlVG8oIi9kYXNoYm9hcmQiKTtyZXR1cm59ciYmeHphKGEscik/dGhpcy5uYXZpZ2F0ZVRvKGAvJHthfS8ke3J9YCk6cXhbYV0/dGhpcy5uYXZpZ2F0ZVRvKGAvJHthfS8ke2tjdFthXX1gKTp0aGlzLm5hdmlnYXRlVG8oYC8ke2F9YCl9Z2V0Q3VycmVudFZpZXcoKXtsZXQgZT1tYy5nZXRTdGF0ZSgpO3JldHVybiBlLmFjdGl2ZVN1YnZpZXc/YCR7ZS5hY3RpdmVWaWV3fS8ke2UuYWN0aXZlU3Vidmlld31gOmUuYWN0aXZlVmlld31kZXN0cm95KCl7dGhpcy5yb3V0ZXIuZGVzdHJveSgpLHRoaXMuaW5pdGlhbGl6ZWQ9ITF9fSxkbD1uZXcgU2N0fSk7dmFyIEN6YT17fTt5dChDemEse09iVmlld0Rhc2hib2FyZDooKT0+Q2N0fSk7ZnVuY3Rpb24gd3phKHMpe3JldHVybiFzfHxzPT09MD8wOk1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2cocykvTWF0aC5sb2coMTAyNCkpLHl6YS5sZW5ndGgtMSl9ZnVuY3Rpb24gRTJlKHMsZSl7aWYoKCFzfHxzPT09MCkmJmU9PT12b2lkIDApcmV0dXJuIjAgQiI7bGV0IHQ9ZT8/d3phKHMpO3JldHVybmAkeyhzL01hdGgucG93KDEwMjQsdCkpLnRvRml4ZWQoMSl9ICR7eXphW3RdfWB9dmFyIGt6YSxTemEsX3phLE16YSx6emEsczEsX2N0LE1jdCx6Y3QseXphLHMwLENjdCxUY3Q9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7YXdhaXQgZzcoKTtwZSgpO3l6YT1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdO2kod3phLCJnZXRCeXRlVW5pdEluZGV4Iik7aShFMmUsImZvcm1hdEJ5dGVzIiksenphPVtuZSgib2Itdmlldy1kYXNoYm9hcmQiKV07czA9Y2xhc3MgczAgZXh0ZW5kcyhNemE9d2UsX3phPVtZKCldLFN6YT1bWSgpXSxremE9W1koKV0sTXphKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7ZWEodGhpcyxfY3QsaXQoczEsOCx0aGlzLHtzdGF0dXM6bnVsbH0pKSxpdChzMSwxMSx0aGlzKTtlYSh0aGlzLE1jdCxpdChzMSwxMix0aGlzLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119KSksaXQoczEsMTUsdGhpcyk7ZWEodGhpcyx6Y3QsaXQoczEsMTYsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoczEsMTksdGhpcyk7bGV0IHQ9YTAuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5zeXN0ZW1TdGF0ZT1ufSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0KTtsZXQgYT1ZdC5zZWxlY3Qobj0+bikuc3Vic2NyaWJlKG49Pnt0aGlzLnNlcnZpY2VzU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IHI9WmEuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5uZXR3b3JrU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFByb21pc2UuYWxsKFthMC5kaXNwYXRjaEFjdGlvbihIeCxudWxsKSxZdC5kaXNwYXRjaEFjdGlvbih6MmUsbnVsbCksWXQuZGlzcGF0Y2hBY3Rpb24oQzJlLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHlKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHdKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKCQyZSxudWxsKV0pfXJlbmRlcigpe2xldCB0PXRoaXMuc3lzdGVtU3RhdGUuc3RhdHVzLGE9dGhpcy5zZXJ2aWNlc1N0YXRlLnNlcnZpY2VzLHI9dGhpcy5zZXJ2aWNlc1N0YXRlLnBsYXRmb3JtU2VydmljZXMsbj10aGlzLm5ldHdvcmtTdGF0ZS5zdGF0cyxvPXRoaXMubmV0d29ya1N0YXRlLnRyYWZmaWNTdGF0cyxsPXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcyxwPW8/LnN0YXR1c0NvdW50c3x8e30sZD1hLmZpbHRlcihmPT5mLnN0YXR1cz09PSJydW5uaW5nIikubGVuZ3RoLHU9YS5maWx0ZXIoZj0+Zi5zdGF0dXM9PT0ic3RvcHBlZCIpLmxlbmd0aCxjPXd6YSh0Py5kb2NrZXI/Lm1lbW9yeVRvdGFsfHx0Py5kb2NrZXI/Lm1lbW9yeVVzYWdlfHwwKSxiPWwuZmlsdGVyKGY9PmYuaXNWYWxpZCkubGVuZ3RoLHY9bC5maWx0ZXIoZj0+Zi5pc1ZhbGlkJiZmLmV4cGlyZXNBdCYmZi5leHBpcmVzQXQtRGF0ZS5ub3coKTw3MjAqNjAqNjAqMWUzKS5sZW5ndGgseD1sLmZpbHRlcihmPT4hZi5pc1ZhbGlkKS5sZW5ndGgsbT17Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczphLmxlbmd0aCxydW5uaW5nOmQsc3RvcHBlZDp1LGRvY2tlclN0YXR1czp0Py5kb2NrZXI/LnJ1bm5pbmc/InJ1bm5pbmciOiJzdG9wcGVkIn0scmVzb3VyY2VVc2FnZTp7Y3B1OnQ/LmRvY2tlcj8uY3B1VXNhZ2V8fDAsbWVtb3J5VXNlZDpFMmUodD8uZG9ja2VyPy5tZW1vcnlVc2FnZXx8MCxjKSxtZW1vcnlUb3RhbDpFMmUodD8uZG9ja2VyPy5tZW1vcnlUb3RhbHx8MCxjKSxuZXR3b3JrSW46RTJlKHQ/LmRvY2tlcj8ubmV0d29ya0lufHwwKSxuZXR3b3JrT3V0OkUyZSh0Py5kb2NrZXI/Lm5ldHdvcmtPdXR8fDApLHRvcENvbnN1bWVyczpbXX0scGxhdGZvcm1TZXJ2aWNlczpyLmZpbHRlcihmPT5mLnN0YXR1cz09PSJydW5uaW5nInx8Zi5zdGF0dXM9PT0ic3RhcnRpbmcifHxmLnN0YXR1cz09PSJzdG9wcGluZyJ8fGYuaXNDb3JlKS5tYXAoZj0+KHtuYW1lOmYuZGlzcGxheU5hbWUsc3RhdHVzOmYuc3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjpmLnN0YXR1cz09PSJzdGFydGluZyI/IlN0YXJ0aW5nLi4uIjpmLnN0YXR1cz09PSJzdG9wcGluZyI/IlN0b3BwaW5nLi4uIjoiU3RvcHBlZCIscnVubmluZzpmLnN0YXR1cz09PSJydW5uaW5nIn0pKSx0cmFmZmljOntyZXF1ZXN0czpvPy5yZXF1ZXN0Q291bnR8fDAsZXJyb3JzOm8/LmVycm9yQ291bnR8fDAsZXJyb3JQZXJjZW50Om8/LmVycm9yUmF0ZXx8MCxhdmdSZXNwb25zZTpvPy5hdmdSZXNwb25zZVRpbWV8fDAscmVxUGVyTWluOm8/LnJlcXVlc3RzUGVyTWludXRlfHwwLHN0YXR1czJ4eDpwWyIyeHgiXXx8MCxzdGF0dXMzeHg6cFsiM3h4Il18fDAsc3RhdHVzNHh4OnBbIjR4eCJdfHwwLHN0YXR1czV4eDpwWyI1eHgiXXx8MH0scHJveHk6e2h0dHBQb3J0OlN0cmluZyhuPy5wcm94eT8uaHR0cFBvcnR8fDgwKSxodHRwc1BvcnQ6U3RyaW5nKG4/LnByb3h5Py5odHRwc1BvcnR8fDQ0MyksaHR0cEFjdGl2ZTpuPy5wcm94eT8ucnVubmluZ3x8ITEsaHR0cHNBY3RpdmU6bj8ucHJveHk/LnJ1bm5pbmd8fCExLHJvdXRlQ291bnQ6U3RyaW5nKG4/LnByb3h5Py5yb3V0ZXN8fDApfSxjZXJ0aWZpY2F0ZXM6e3ZhbGlkOmIsZXhwaXJpbmc6dixleHBpcmVkOnh9LGRuc0NvbmZpZ3VyZWQ6dD8uZG5zPy5jb25maWd1cmVkfHwhMSxhY21lQ29uZmlndXJlZDp0Py5zc2w/LmNvbmZpZ3VyZWR8fCExLHF1aWNrQWN0aW9uczpbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoibHVjaWRlOlBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiQWRkIERvbWFpbiIsaWNvbjoibHVjaWRlOkdsb2JlIn0se2xhYmVsOiJWaWV3IExvZ3MiLGljb246Imx1Y2lkZTpGaWxlVGV4dCJ9XX07cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5EYXNoYm9hcmQ8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2x1c3RlciBPdmVydmlldzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtY2x1c3RlciAuc3RhdHM9JHttLmNsdXN0ZXJ9Pjwvc3otc3RhdHVzLWdyaWQtY2x1c3Rlcj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2VydmljZXMgJiBSZXNvdXJjZXM8L2gyPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZXMtZ3JpZCI+CiAgICAgICAgICAgIDxzei1yZXNvdXJjZS11c2FnZS1jYXJkIC5kYXRhPSR7bS5yZXNvdXJjZVVzYWdlfT48L3N6LXJlc291cmNlLXVzYWdlLWNhcmQ+CiAgICAgICAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgICAgICAgLnNlcnZpY2VzPSR7bS5wbGF0Zm9ybVNlcnZpY2VzfQogICAgICAgICAgICAgIEBzZXJ2aWNlLWNsaWNrPSR7Zj0+dGhpcy5oYW5kbGVQbGF0Zm9ybVNlcnZpY2VDbGljayhmKX0KICAgICAgICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OZXR3b3JrICYgVHJhZmZpYzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtbmV0d29yawogICAgICAgICAgICAudHJhZmZpYz0ke20udHJhZmZpY30KICAgICAgICAgICAgLnByb3h5PSR7bS5wcm94eX0KICAgICAgICAgICAgLmNlcnRpZmljYXRlcz0ke20uY2VydGlmaWNhdGVzfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtbmV0d29yaz4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SW5mcmFzdHJ1Y3R1cmU8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgICAgID9kbnNDb25maWd1cmVkPSR7bS5kbnNDb25maWd1cmVkfQogICAgICAgICAgICA/YWNtZUNvbmZpZ3VyZWQ9JHttLmFjbWVDb25maWd1cmVkfQogICAgICAgICAgICAuYWN0aW9ucz0ke20ucXVpY2tBY3Rpb25zfQogICAgICAgICAgICBAYWN0aW9uLWNsaWNrPSR7Zj0+dGhpcy5oYW5kbGVRdWlja0FjdGlvbihmKX0KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLWluZnJhPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVF1aWNrQWN0aW9uKHQpe2xldCBhPXQuZGV0YWlsPy5hY3Rpb258fHQuZGV0YWlsPy5sYWJlbDthPT09IkRlcGxveSBTZXJ2aWNlIj9kbC5uYXZpZ2F0ZVRvVmlldygic2VydmljZXMiKTphPT09IkFkZCBEb21haW4iJiZkbC5uYXZpZ2F0ZVRvVmlldygibmV0d29yayIpfWhhbmRsZVBsYXRmb3JtU2VydmljZUNsaWNrKHQpe2xldCBhPXQuZGV0YWlsPy5uYW1lLHI9dGhpcy5zZXJ2aWNlc1N0YXRlLnBsYXRmb3JtU2VydmljZXMuZmluZChuPT5uLmRpc3BsYXlOYW1lPT09YSk7ciYmKFl0LnNldFN0YXRlKHsuLi5ZdC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6cn0pLGRsLm5hdmlnYXRlVG9WaWV3KCJzZXJ2aWNlcyIpKX19O3MxPVJpKE16YSksX2N0PW5ldyBXZWFrTWFwLE1jdD1uZXcgV2Vha01hcCx6Y3Q9bmV3IFdlYWtNYXAsUnQoczEsNCwic3lzdGVtU3RhdGUiLF96YSxzMCxfY3QpLFJ0KHMxLDQsInNlcnZpY2VzU3RhdGUiLFN6YSxzMCxNY3QpLFJ0KHMxLDQsIm5ldHdvcmtTdGF0ZSIsa3phLHMwLHpjdCksczA9UnQoczEsMCwiT2JWaWV3RGFzaGJvYXJkIix6emEsczApLGkoczAsIk9iVmlld0Rhc2hib2FyZCIpLHZpKHMwLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMseW8sSmAKICAgICAgLmRhc2hib2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgMTJweDsKICAgICAgfQoKICAgICAgLnNlcnZpY2VzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuc2VydmljZXMtZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLnNlcnZpY2VzLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIH0KICAgICAgfQogICAgYF0pLGl0KHMxLDEsczApO0NjdD1zMH0pO3ZhciBIemE9e307eXQoSHphLHtPYlZpZXdBcHBTdG9yZTooKT0+QmN0fSk7dmFyIFR6YSwkemEsRHphLEx6YSxFemEsUHphLEl6YSxBemEsTnphLFJ6YSxPemEsRnphLEJ6YSxKYSwkY3QsRGN0LExjdCxFY3QsUGN0LEljdCxBY3QsTmN0LFJjdCxPY3QsRmN0LHdvLEJjdCxxemE9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7RngoKTthd2FpdCBnNygpO3BlKCk7QnphPVtuZSgib2Itdmlldy1hcHBzdG9yZSIpXTt3bz1jbGFzcyB3byBleHRlbmRzKEZ6YT13ZSxPemE9W1koKV0sUnphPVtZKCldLE56YT1bWSgpXSxBemE9W1koKV0sSXphPVtZKCldLFB6YT1bWSgpXSxFemE9W1koKV0sTHphPVtZKCldLER6YT1bWSgpXSwkemE9W1koKV0sVHphPVtZKCldLEZ6YSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsJGN0LGl0KEphLDgsdGhpcyx7YXBwczpbXSx1cGdyYWRlYWJsZVNlcnZpY2VzOltdLHVwZ3JhZGVPcGVyYXRpb25zOltdfSkpLGl0KEphLDExLHRoaXMpO2VhKHRoaXMsRGN0LGl0KEphLDEyLHRoaXMsImdyaWQiKSksaXQoSmEsMTUsdGhpcyk7ZWEodGhpcyxMY3QsaXQoSmEsMTYsdGhpcyxudWxsKSksaXQoSmEsMTksdGhpcyk7ZWEodGhpcyxFY3QsaXQoSmEsMjAsdGhpcyxudWxsKSksaXQoSmEsMjMsdGhpcyk7ZWEodGhpcyxQY3QsaXQoSmEsMjQsdGhpcyxudWxsKSksaXQoSmEsMjcsdGhpcyk7ZWEodGhpcyxJY3QsaXQoSmEsMjgsdGhpcywiIikpLGl0KEphLDMxLHRoaXMpO2VhKHRoaXMsQWN0LGl0KEphLDMyLHRoaXMsW10pKSxpdChKYSwzNSx0aGlzKTtlYSh0aGlzLE5jdCxpdChKYSwzNix0aGlzLCIiKSksaXQoSmEsMzksdGhpcyk7ZWEodGhpcyxSY3QsaXQoSmEsNDAsdGhpcywiIikpLGl0KEphLDQzLHRoaXMpO2VhKHRoaXMsT2N0LGl0KEphLDQ0LHRoaXMsITEpKSxpdChKYSw0Nyx0aGlzKTtlYSh0aGlzLEZjdCxpdChKYSw0OCx0aGlzLCExKSksaXQoSmEsNTEsdGhpcyk7bGV0IHQ9Y2wuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5hcHBTdG9yZVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbY2wuZGlzcGF0Y2hBY3Rpb24oZnphLG51bGwpLGNsLmRpc3BhdGNoQWN0aW9uKEwyZSxudWxsKV0pfXJlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3PT09ImRldGFpbCI/dGhpcy5yZW5kZXJEZXRhaWxWaWV3KCk6dGhpcy5yZW5kZXJHcmlkVmlldygpfXJlbmRlckdyaWRWaWV3KCl7bGV0IHQ9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMubWFwKGE9Pih7aWQ6YS5pZCxuYW1lOmEubmFtZSxkZXNjcmlwdGlvbjphLmRlc2NyaXB0aW9uLGNhdGVnb3J5OmEuY2F0ZWdvcnksaWNvbk5hbWU6YS5pY29uTmFtZSxpY29uVXJsOmEuaWNvblVybCxpbWFnZToiIixwb3J0OjB9KSk7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAke3RoaXMucmVuZGVyVXBncmFkZU9wZXJhdGlvbnMoKX0KICAgICAgJHt0Lmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPkxvYWRpbmcgYXBwIHRlbXBsYXRlcy4uLjwvZGl2PmA6d2AKICAgICAgICAgIDxzei1hcHAtc3RvcmUtdmlldwogICAgICAgICAgICAuYXBwcz0ke3R9CiAgICAgICAgICAgIEB2aWV3LWFwcD0ke2E9PnRoaXMuaGFuZGxlVmlld0RldGFpbHMoYSl9CiAgICAgICAgICAgIEBkZXBsb3ktYXBwPSR7YT0+dGhpcy5oYW5kbGVBcHBDbGljayhhKX0KICAgICAgICAgID48L3N6LWFwcC1zdG9yZS12aWV3PgogICAgICAgIGB9CiAgICBgfXJlbmRlclVwZ3JhZGVPcGVyYXRpb25zKCl7bGV0IHQ9dGhpcy5hcHBTdG9yZVN0YXRlLnVwZ3JhZGVPcGVyYXRpb25zLmZpbHRlcihhPT5hLnN0YXR1cz09PSJydW5uaW5nInx8YS5zdGF0dXM9PT0iZmFpbGVkIikuc2xpY2UoMCwzKTtyZXR1cm4gdC5sZW5ndGg9PT0wPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5SZWNlbnQgVXBncmFkZSBPcGVyYXRpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWxpc3QiPgogICAgICAgICAgJHt0Lm1hcChhPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4+JHthLnNlcnZpY2VOYW1lfTogJHthLmZyb21WZXJzaW9ufSAmcmFycjsgJHthLnRhcmdldFZlcnNpb259PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290cHJpbnQtbWV0YSI+JHthLnN0YXR1c30gLyAke2Euc3RlcH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEZXRhaWxWaWV3KCl7aWYodGhpcy5sb2FkaW5nKXJldHVybiB3YAogICAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+TG9hZGluZyBhcHAgZGV0YWlscy4uLjwvZGl2PgogICAgICBgO2xldCB0PXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwTWV0YSxyPXRoaXMuc2VsZWN0ZWRBcHBDb25maWc7aWYoIXR8fCFyKXJldHVybiB3YAogICAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+QXBwIG5vdCBmb3VuZC48L2Rpdj4KICAgICAgYDtsZXQgbj1yLnBsYXRmb3JtUmVxdWlyZW1lbnRzfHx7fSxvPU9iamVjdC52YWx1ZXMobikuc29tZShCb29sZWFuKSxsPXttb25nb2RiOiJNb25nb0RCIixzMzoiUzMgKE1pbklPKSIsY2xpY2tob3VzZToiQ2xpY2tIb3VzZSIscmVkaXM6IlJlZGlzIixtYXJpYWRiOiJNYXJpYURCIn07cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDE2cHg7IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9ImdyaWQifX0+CiAgICAgICAgJmxhcnI7IEJhY2sgdG8gQXBwIFN0b3JlCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pY29uIj4keyh0Lm5hbWV8fCI/IilbMF0udG9VcHBlckNhc2UoKX08L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZsZXg6IDE7Ij4KICAgICAgICAgICAgPGgyIGNsYXNzPSJkZXRhaWwtdGl0bGUiPiR7dC5uYW1lfTwvaDI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtY2F0ZWdvcnkiPiR7dC5jYXRlZ29yeX08L3NwYW4+CiAgICAgICAgICAgIDxwIGNsYXNzPSJkZXRhaWwtZGVzY3JpcHRpb24iPiR7dC5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1tZXRhIj4KICAgICAgICAgICAgICAke2E/Lm1haW50YWluZXI/d2A8c3Bhbj5NYWludGFpbmVyOiA8c3Ryb25nPiR7YS5tYWludGFpbmVyfTwvc3Ryb25nPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7YT8ubGlua3M/T2JqZWN0LmVudHJpZXMoYS5saW5rcykubWFwKChbcCxkXSk9PndgPGEgaHJlZj0iJHtkfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiR7cH08L2E+YCk6IiJ9CiAgICAgICAgICAgICAgJHt0LnRhZ3M/Lmxlbmd0aD93YDxzcGFuPlRhZ3M6ICR7dC50YWdzLmpvaW4oIiwgIil9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBQbGF0Zm9ybSBTZXJ2aWNlcyAtLT4KICAgICAgJHtvP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMobikuZmlsdGVyKChbcCxkXSk9PmQpLm1hcCgoW3BdKT0+d2A8c3BhbiBjbGFzcz0iYmFkZ2UiPiR7bFtwXXx8cH08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA4cHg7Ij4KICAgICAgICAgICAgVGhlc2UgcGxhdGZvcm0gc2VydmljZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHByb3Zpc2lvbmVkIHdoZW4geW91IGRlcGxveS4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLnJlbmRlckRlcGxveW1lbnRGb290cHJpbnQocil9CgogICAgICA8IS0tIFZlcnNpb24gJiBJbWFnZSAtLT4KICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlZlcnNpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLXJvdyI+CiAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJ2ZXJzaW9uLXNlbGVjdCIgQGNoYW5nZT0ke3A9PnRoaXMuaGFuZGxlVmVyc2lvbkNoYW5nZShwLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICAkeyhhPy52ZXJzaW9uc3x8W3RoaXMuc2VsZWN0ZWRWZXJzaW9uXSkubWFwKHA9PndgPG9wdGlvbiB2YWx1ZT0iJHtwfSIgP3NlbGVjdGVkPSR7cD09PXRoaXMuc2VsZWN0ZWRWZXJzaW9ufT4ke3B9JHtwPT09dC5sYXRlc3RWZXJzaW9uPyIgKGxhdGVzdCkiOiIifTwvb3B0aW9uPmApfQogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaW1hZ2UtdGFnIj4ke3IuaW1hZ2V9PC9zcGFuPgogICAgICAgICAgJHtyLm1pbk9uZWJveFZlcnNpb24/d2A8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7Ij5SZXF1aXJlcyBvbmVib3ggJmdlOyAke3IubWluT25lYm94VmVyc2lvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEVudmlyb25tZW50IFZhcmlhYmxlcyAtLT4KICAgICAgJHt0aGlzLmVkaXRhYmxlRW52VmFycy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkVudmlyb25tZW50IFZhcmlhYmxlczwvZGl2PgogICAgICAgICAgPHRhYmxlIGNsYXNzPSJlbnYtdGFibGUiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDogMzAlOyI+VmFyaWFibGU8L3RoPgogICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDogNDAlOyI+VmFsdWU8L3RoPgogICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgJHt0aGlzLmVkaXRhYmxlRW52VmFycy5tYXAoKHAsZCk9PndgCiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW52LWtleSI+JHtwLmtleX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgJHtwLnJlcXVpcmVkP3dgPHNwYW4gY2xhc3M9ImVudi1iYWRnZSByZXF1aXJlZCI+cmVxdWlyZWQ8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAke3AucGxhdGZvcm1JbmplY3RlZD93YDxzcGFuIGNsYXNzPSJlbnYtYmFkZ2UgYXV0byI+YXV0bzwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZW52LWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3AudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtwLnBsYXRmb3JtSW5qZWN0ZWR8fCF0aGlzLmRlcGxveU1vZGV9CiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ke3AucGxhdGZvcm1JbmplY3RlZD8iQXV0by1pbmplY3RlZCBieSBwbGF0Zm9ybSI6IkVudGVyIHZhbHVlLi4uIn0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3U9PnRoaXMuaGFuZGxlRW52VmFyQ2hhbmdlKGQsdS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iZW52LWRlc2MiPiR7cC5kZXNjcmlwdGlvbnx8IiJ9PC9zcGFuPjwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgIDwhLS0gRGVwbG95IHNlY3Rpb24gKG9ubHkgaW4gZGVwbG95IG1vZGUpIG9yIGFjdGlvbiBidXR0b24gKHZpZXcgbW9kZSkgLS0+CiAgICAgICR7dGhpcy5kZXBsb3lNb2RlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+U2VydmljZSBOYW1lPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgY2xhc3M9Im5hbWUtaW5wdXQiCiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VydmljZU5hbWV9CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJlLmcuIG15LWdob3N0LWJsb2ciCiAgICAgICAgICAgIEBpbnB1dD0ke3A9Pnt0aGlzLnNlcnZpY2VOYW1lPXAudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsgbWFyZ2luLXRvcDogNnB4OyI+CiAgICAgICAgICAgIExvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyBvbmx5LgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCIgc3R5bGU9Im1hcmdpbi10b3A6IDE4cHg7Ij5Eb21haW48L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0ibmFtZS1pbnB1dCIKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZXJ2aWNlRG9tYWlufQogICAgICAgICAgICBwbGFjZWhvbGRlcj0iZS5nLiBjbG91ZGx5LmV4YW1wbGUuY29tIgogICAgICAgICAgICBAaW5wdXQ9JHtwPT50aGlzLmhhbmRsZVNlcnZpY2VEb21haW5DaGFuZ2UocC50YXJnZXQudmFsdWUpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA2cHg7Ij4KICAgICAgICAgICAgT25lYm94IHJvdXRlcyB0aGlzIGRvbWFpbiB0byB0aGUgZGVwbG95ZWQgYXBwLiBSZXF1aXJlZCB3aGVuIHRoZSBhcHAgdXNlcyBTRVJWSUNFX0RPTUFJTi4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5yZW5kZXJEZXBsb3lDb25maXJtYXRpb24ocil9CgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1yb3ciPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSIgQGNsaWNrPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJncmlkIn19PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlcGxveSgpfT4KICAgICAgICAgICAgICBEZXBsb3kgdiR7dGhpcy5zZWxlY3RlZFZlcnNpb259CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXJvdyIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iZ3JpZCJ9fT4KICAgICAgICAgICAgJmxhcnI7IEJhY2sKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBAY2xpY2s9JHsoKT0+e3RoaXMuZGVwbG95TW9kZT0hMH19PgogICAgICAgICAgICBEZXBsb3kgdGhpcyBBcHAKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgfQogICAgYH1yZW5kZXJEZXBsb3ltZW50Rm9vdHByaW50KHQpe2xldCBhPXRoaXMuZ2V0Q29uZmlnVm9sdW1lcyh0KSxyPXQucHVibGlzaGVkUG9ydHN8fFtdO3JldHVybiBhLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+RGVwbG95bWVudCBGb290cHJpbnQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtbGlzdCI+CiAgICAgICAgICAke2EubWFwKG49PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RwcmludC1pdGVtIj4KICAgICAgICAgICAgICA8c3Bhbj5Wb2x1bWUgbW91bnQ8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3RwcmludC1tZXRhIj4KICAgICAgICAgICAgICAgICR7bi5zb3VyY2V8fG4ubmFtZXx8Im1hbmFnZWQgdm9sdW1lIn06JHtuLm1vdW50UGF0aH0ke24ucmVhZE9ubHk/IjpybyI6IiJ9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtyLm1hcChuPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4+UHVibGlzaGVkIGhvc3QgcG9ydDwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdHByaW50LW1ldGEiPiR7dGhpcy5mb3JtYXRQdWJsaXNoZWRQb3J0KG4pfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3IubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9zdXJlLXdhcm5pbmciPgogICAgICAgICAgICBUaGlzIGFwcCBwdWJsaXNoZXMgcmF3IGhvc3QgcG9ydHMgb3V0c2lkZSB0aGUgSFRUUCBwcm94eS4gQ29uZmlybSBmaXJld2FsbCBhbmQgbmV0d29yayBwb2xpY3kgYmVmb3JlIGRlcGxveWluZy4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEZXBsb3lDb25maXJtYXRpb24odCl7bGV0IGE9dGhpcy5nZXRDb25maWdWb2x1bWVzKHQpLHI9dC5wdWJsaXNoZWRQb3J0c3x8W107cmV0dXJuIGEubGVuZ3RoPT09MCYmci5sZW5ndGg9PT0wPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9ImV4cG9zdXJlLXdhcm5pbmciPgogICAgICAgIERlcGxveWluZyB0aGlzIGFwcCB3aWxsIGNyZWF0ZSAke2EubGVuZ3RofSBwZXJzaXN0ZW50IHZvbHVtZShzKQogICAgICAgICR7ci5sZW5ndGg+MD93YGFuZCBleHBvc2UgJHtyLmxlbmd0aH0gaG9zdCBwb3J0IGRlY2xhcmF0aW9uKHMpYDoiIn0uCiAgICAgIDwvZGl2PgogICAgYH1nZXRDb25maWdWb2x1bWVzKHQpe3JldHVybih0LnZvbHVtZXN8fFtdKS5tYXAoYT0+dHlwZW9mIGE9PSJzdHJpbmciP3ttb3VudFBhdGg6YX06YSkuZmlsdGVyKGE9PiEhYS5tb3VudFBhdGgpfWZvcm1hdFB1Ymxpc2hlZFBvcnQodCl7bGV0IGE9dC5wcm90b2NvbHx8InRjcCIscj10LnRhcmdldFBvcnRFbmQ/YCR7dC50YXJnZXRQb3J0fS0ke3QudGFyZ2V0UG9ydEVuZH1gOlN0cmluZyh0LnRhcmdldFBvcnQpLG49dC5wdWJsaXNoZWRQb3J0fHx0LnRhcmdldFBvcnQsbz10LnB1Ymxpc2hlZFBvcnRFbmR8fCh0LnRhcmdldFBvcnRFbmQ/bisodC50YXJnZXRQb3J0RW5kLXQudGFyZ2V0UG9ydCk6dm9pZCAwKSxsPW8/YCR7bn0tJHtvfWA6U3RyaW5nKG4pO3JldHVybmAke3QuaG9zdElwfHwiMC4wLjAuMCJ9OiR7bH0vJHthfSAtPiAke3J9LyR7YX1gfWFzeW5jIGhhbmRsZVZpZXdEZXRhaWxzKHQpe2xldCBhPXQuZGV0YWlsPy5hcHA7aWYoIWEpcmV0dXJuO2xldCByPXRoaXMuYXBwU3RvcmVTdGF0ZS5hcHBzLmZpbmQobj0+bi5pZD09PWEuaWQpO3ImJih0aGlzLmRlcGxveU1vZGU9ITEsdGhpcy5zZWxlY3RlZEFwcD1yLHRoaXMuc2VsZWN0ZWRWZXJzaW9uPXIubGF0ZXN0VmVyc2lvbix0aGlzLnNlcnZpY2VOYW1lPXIuaWQsdGhpcy5sb2FkaW5nPSEwLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIsYXdhaXQgdGhpcy5mZXRjaFZlcnNpb25Db25maWcoci5pZCxyLmxhdGVzdFZlcnNpb24pLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgaGFuZGxlQXBwQ2xpY2sodCl7bGV0IGE9dC5kZXRhaWw/LmFwcDtpZighYSlyZXR1cm47bGV0IHI9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMuZmluZChuPT5uLmlkPT09YS5pZCk7ciYmKHRoaXMuZGVwbG95TW9kZT0hMCx0aGlzLnNlbGVjdGVkQXBwPXIsdGhpcy5zZWxlY3RlZFZlcnNpb249ci5sYXRlc3RWZXJzaW9uLHRoaXMuc2VydmljZU5hbWU9ci5pZCx0aGlzLmxvYWRpbmc9ITAsdGhpcy5jdXJyZW50Vmlldz0iZGV0YWlsIixhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyhyLmlkLHIubGF0ZXN0VmVyc2lvbiksdGhpcy5sb2FkaW5nPSExKX1hc3luYyBoYW5kbGVWZXJzaW9uQ2hhbmdlKHQpeyF0aGlzLnNlbGVjdGVkQXBwfHx0PT09dGhpcy5zZWxlY3RlZFZlcnNpb258fCh0aGlzLnNlbGVjdGVkVmVyc2lvbj10LHRoaXMubG9hZGluZz0hMCxhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyh0aGlzLnNlbGVjdGVkQXBwLmlkLHQpLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgZmV0Y2hWZXJzaW9uQ29uZmlnKHQsYSl7dHJ5e2xldCByPVFpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoIXIpcmV0dXJuO2xldCBvPWF3YWl0IG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRBcHBTdG9yZUNvbmZpZyIpLmZpcmUoe2lkZW50aXR5OnIsYXBwSWQ6dCx2ZXJzaW9uOmF9KTt0aGlzLnNlbGVjdGVkQXBwTWV0YT1vLmFwcE1ldGEsdGhpcy5zZWxlY3RlZEFwcENvbmZpZz1vLmNvbmZpZyx0aGlzLmVkaXRhYmxlRW52VmFycz0oby5jb25maWcuZW52VmFyc3x8W10pLm1hcChsPT4oe2tleTpsLmtleSx2YWx1ZTpsLnZhbHVlfHwiIixkZXNjcmlwdGlvbjpsLmRlc2NyaXB0aW9ufHwiIixyZXF1aXJlZDpsLnJlcXVpcmVkLHBsYXRmb3JtSW5qZWN0ZWQ6bC52YWx1ZT8uaW5jbHVkZXMoIiR7Iil8fCExfSkpLHRoaXMuc2VydmljZURvbWFpbj0iIn1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggYXBwIGNvbmZpZzoiLHIpfX1oYW5kbGVFbnZWYXJDaGFuZ2UodCxhKXtsZXQgcj1bLi4udGhpcy5lZGl0YWJsZUVudlZhcnNdO3JbdF09ey4uLnJbdF0sdmFsdWU6YX0sdGhpcy5lZGl0YWJsZUVudlZhcnM9cn1oYW5kbGVTZXJ2aWNlRG9tYWluQ2hhbmdlKHQpe3RoaXMuc2VydmljZURvbWFpbj10aGlzLm5vcm1hbGl6ZURvbWFpbih0KX1ub3JtYWxpemVEb21haW4odCl7cmV0dXJuIHQudHJpbSgpLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpLnJlcGxhY2UoL1wvJC8sIiIpfWFzeW5jIGhhbmRsZURlcGxveSgpe2xldCB0PXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwQ29uZmlnO2lmKCF0fHwhYSlyZXR1cm47bGV0IHI9dGhpcy5lZGl0YWJsZUVudlZhcnMuZmlsdGVyKGw9PmwucmVxdWlyZWQmJiFsLnBsYXRmb3JtSW5qZWN0ZWQmJiFsLnZhbHVlLnRyaW0oKSk7aWYoci5sZW5ndGg+MCl7Y29uc29sZS5lcnJvcihgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6ICR7ci5tYXAobD0+bC5rZXkpLmpvaW4oIiwgIil9YCk7cmV0dXJufWlmKChhLmVudlZhcnN8fFtdKS5zb21lKGw9PmwudmFsdWU/LmluY2x1ZGVzKCIke1NFUlZJQ0VfRE9NQUlOfSIpKSYmIXRoaXMuc2VydmljZURvbWFpbil7Y29uc29sZS5lcnJvcigiQSBkb21haW4gaXMgcmVxdWlyZWQgZm9yIHRoaXMgYXBwLiIpO3JldHVybn1sZXQgbz17fTtmb3IobGV0IGwgb2YgdGhpcy5lZGl0YWJsZUVudlZhcnMpbC5rZXkmJmwudmFsdWUmJihvW2wua2V5XT1sLnZhbHVlKTt0cnl7bGV0IGw9UWkuZ2V0U3RhdGUoKS5pZGVudGl0eTtpZighbClyZXR1cm47YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImluc3RhbGxBcHBTdG9yZUFwcCIpLmZpcmUoe2lkZW50aXR5OmwsaW5zdGFsbDp7YXBwSWQ6dC5pZCx2ZXJzaW9uOnRoaXMuc2VsZWN0ZWRWZXJzaW9uLHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWV8fHQuaWQsZG9tYWluOnRoaXMuc2VydmljZURvbWFpbnx8dm9pZCAwLGVudlZhcnM6b319KSxzZXRUaW1lb3V0KCgpPT57ZGwubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LDApfWNhdGNoKGwpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZXBsb3kgZnJvbSBBcHAgU3RvcmU6IixsKX19fTtKYT1SaShGemEpLCRjdD1uZXcgV2Vha01hcCxEY3Q9bmV3IFdlYWtNYXAsTGN0PW5ldyBXZWFrTWFwLEVjdD1uZXcgV2Vha01hcCxQY3Q9bmV3IFdlYWtNYXAsSWN0PW5ldyBXZWFrTWFwLEFjdD1uZXcgV2Vha01hcCxOY3Q9bmV3IFdlYWtNYXAsUmN0PW5ldyBXZWFrTWFwLE9jdD1uZXcgV2Vha01hcCxGY3Q9bmV3IFdlYWtNYXAsUnQoSmEsNCwiYXBwU3RvcmVTdGF0ZSIsT3phLHdvLCRjdCksUnQoSmEsNCwiY3VycmVudFZpZXciLFJ6YSx3byxEY3QpLFJ0KEphLDQsInNlbGVjdGVkQXBwIixOemEsd28sTGN0KSxSdChKYSw0LCJzZWxlY3RlZEFwcE1ldGEiLEF6YSx3byxFY3QpLFJ0KEphLDQsInNlbGVjdGVkQXBwQ29uZmlnIixJemEsd28sUGN0KSxSdChKYSw0LCJzZWxlY3RlZFZlcnNpb24iLFB6YSx3byxJY3QpLFJ0KEphLDQsImVkaXRhYmxlRW52VmFycyIsRXphLHdvLEFjdCksUnQoSmEsNCwic2VydmljZU5hbWUiLEx6YSx3byxOY3QpLFJ0KEphLDQsInNlcnZpY2VEb21haW4iLER6YSx3byxSY3QpLFJ0KEphLDQsImxvYWRpbmciLCR6YSx3byxPY3QpLFJ0KEphLDQsImRlcGxveU1vZGUiLFR6YSx3byxGY3QpLHdvPVJ0KEphLDAsIk9iVmlld0FwcFN0b3JlIixCemEsd28pLGkod28sIk9iVmlld0FwcFN0b3JlIiksdmkod28sInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyx5byxKYAogICAgICAuZGV0YWlsLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICMwOTA5MGIpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWljb24gewogICAgICAgIHdpZHRoOiA2NHB4OwogICAgICAgIGhlaWdodDogNjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsKICAgICAgICBtYXJnaW46IDAgMCA0cHggMDsKICAgICAgfQoKICAgICAgLmRldGFpbC1jYXRlZ29yeSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsLW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICB9CgogICAgICAuZGV0YWlsLW1ldGEgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbC1tZXRhIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuc2VjdGlvbi1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KTsKICAgICAgICBjb2xvcjogIzYwYTVmYTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CiAgICAgIH0KCiAgICAgIC52ZXJzaW9uLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLnZlcnNpb24tc2VsZWN0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5pbWFnZS10YWcgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmVudi10YWJsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgfQoKICAgICAgLmVudi10YWJsZSB0aCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgICAgcGFkZGluZzogOHB4IDhweCA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgIH0KCiAgICAgIC5lbnYtdGFibGUgdGQgewogICAgICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDA7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQoKICAgICAgLmVudi1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5lbnYtaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuZW52LWtleSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTYsICNkNGQ0ZDgpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5lbnYtZGVzYyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgfQoKICAgICAgLmVudi1iYWRnZSB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgIH0KCiAgICAgIC5lbnYtYmFkZ2UucmVxdWlyZWQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICB9CgogICAgICAuZW52LWJhZGdlLmF1dG8gewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMTUpOwogICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICB9CgogICAgICAubmFtZS1pbnB1dCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYWN0aW9ucy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLmJ0biB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYnRuOmhvdmVyIHsgb3BhY2l0eTogMC45OyB9CgogICAgICAuYnRuLXByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS0wLCAjMDkwOTBiKTsKICAgICAgfQoKICAgICAgLmJ0bi1zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS02LCAjZDRkNGQ4KTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICB9CgogICAgICAuZm9vdHByaW50LWxpc3QgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5mb290cHJpbnQtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS02LCAjZDRkNGQ4KTsKICAgICAgfQoKICAgICAgLmZvb3RwcmludC1tZXRhIHsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmV4cG9zdXJlLXdhcm5pbmcgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGBdKSxpdChKYSwxLHdvKTtCY3Q9d299KTt2YXIgd3NzLFAyZSxqemE9ZygoKT0+e2xsKCk7RngoKTt3c3M9RzMuZG9tdG9vbHMsUDJlPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zZXJ2aWNlTmFtZT1lO3RoaXMuaWRlbnRpdHk9dCx0aGlzLnJlZ2lzdGVyUHJvY2Vzc1NvY2tldEhhbmRsZXJzKCl9c2VydmljZU5hbWU7c3RhdGlje2kodGhpcywiQmFja2VuZEV4ZWN1dGlvbkVudmlyb25tZW50Iil9dHlwZT0iYmFja2VuZCI7X3JlYWR5PSExO2lkZW50aXR5O3Byb2Nlc3NSb3V0ZXI9bmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUm91dGVyO3Byb2Nlc3NTb2NrZXQ9bnVsbDtwcm9jZXNzU29ja2V0UHJvbWlzZT1udWxsO3Byb2Nlc3NTdGF0ZXM9bmV3IE1hcDtnZXQgcmVhZHkoKXtyZXR1cm4gdGhpcy5fcmVhZHl9YXN5bmMgaW5pdCgpe2lmKCEoYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlRXhpc3RzIix7cGF0aDoiLyJ9KSkuZXhpc3RzKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGFjY2VzcyBjb250YWluZXIgZmlsZXN5c3RlbSBmb3Igc2VydmljZTogJHt0aGlzLnNlcnZpY2VOYW1lfWApO3RoaXMuX3JlYWR5PSEwfWFzeW5jIGRlc3Ryb3koKXtmb3IobGV0IGUgb2YgQXJyYXkuZnJvbSh0aGlzLnByb2Nlc3NTdGF0ZXMua2V5cygpKSlhd2FpdCB0aGlzLmtpbGxQcm9jZXNzKGUpLmNhdGNoKCgpPT57fSk7YXdhaXQgdGhpcy5wcm9jZXNzU29ja2V0Py5zdG9wKCkuY2F0Y2goKCk9Pnt9KSx0aGlzLnByb2Nlc3NTb2NrZXQ9bnVsbCx0aGlzLnByb2Nlc3NTb2NrZXRQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITF9YXN5bmMgcmVhZEZpbGUoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZVJlYWRGaWxlIix7cGF0aDplfSkpLmNvbnRlbnR9YXN5bmMgd3JpdGVGaWxlKGUsdCl7YXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlV3JpdGVGaWxlIix7cGF0aDplLGNvbnRlbnQ6dH0pfWFzeW5jIHJlYWREaXIoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZVJlYWREaXIiLHtwYXRoOmV9KSkuZW50cmllc31hc3luYyBta2RpcihlKXthd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VNa2RpciIse3BhdGg6ZX0pfWFzeW5jIHJtKGUsdCl7YXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlUm0iLHtwYXRoOmUscmVjdXJzaXZlOnQ/LnJlY3Vyc2l2ZX0pfWFzeW5jIGV4aXN0cyhlKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlRXhpc3RzIix7cGF0aDplfSkpLmV4aXN0c313YXRjaChlLHQsYSl7cmV0dXJue3N0b3A6aSgoKT0+e30sInN0b3AiKX19YXN5bmMgc3Bhd24oZSx0KXtsZXQgYT1hd2FpdCB0aGlzLmVuc3VyZVByb2Nlc3NTb2NrZXQoKSxyPWNyeXB0by5yYW5kb21VVUlEKCk7YXdhaXQgYS5zZXRUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtyfWAsITApO2xldCBuPWkoKCk9Pnt9LCJyZXNvbHZlRXhpdCIpLG89bmV3IFByb21pc2UoZD0+e249ZH0pLGw9bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydDppKGQ9Pnt0aGlzLnByb2Nlc3NTdGF0ZXMuc2V0KHIse291dHB1dENvbnRyb2xsZXI6ZCxyZXNvbHZlRXhpdDpufSl9LCJzdGFydCIpLGNhbmNlbDppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmtpbGxQcm9jZXNzKHIpLmNhdGNoKCgpPT57fSl9LCJjYW5jZWwiKX0pO3RyeXthd2FpdCBhLmNyZWF0ZVR5cGVkUmVxdWVzdCgid29ya3NwYWNlU3RhcnRQcm9jZXNzIikuZmlyZSh7aWRlbnRpdHk6dGhpcy5pZGVudGl0eSxzZXJ2aWNlTmFtZTp0aGlzLnNlcnZpY2VOYW1lLHByb2Nlc3NJZDpyLGNvbW1hbmQ6ZSxhcmdzOnR9KX1jYXRjaChkKXtsZXQgdT10aGlzLnByb2Nlc3NTdGF0ZXMuZ2V0KHIpO3RoaXMucHJvY2Vzc1N0YXRlcy5kZWxldGUociksYXdhaXQgYS5yZW1vdmVUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtyfWApLmNhdGNoKCgpPT57fSk7dHJ5e3U/Lm91dHB1dENvbnRyb2xsZXIuZXJyb3IoZCl9Y2F0Y2h7fXRocm93IGR9bGV0IHA9bmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTppKGFzeW5jIGQ9Pnthd2FpdCBhLmNyZWF0ZVR5cGVkUmVxdWVzdCgid29ya3NwYWNlUHJvY2Vzc0lucHV0IikuZmlyZSh7aWRlbnRpdHk6dGhpcy5pZGVudGl0eSxwcm9jZXNzSWQ6cixpbnB1dDpkfSl9LCJ3cml0ZSIpLGFib3J0OmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMua2lsbFByb2Nlc3MocikuY2F0Y2goKCk9Pnt9KX0sImFib3J0Iil9KTtyZXR1cm57b3V0cHV0OmwsaW5wdXQ6cCxleGl0Om8sa2lsbDppKCgpPT57dGhpcy5raWxsUHJvY2VzcyhyKX0sImtpbGwiKX19YXN5bmMgZ2V0U2hlbGxDb21tYW5kKCl7cmV0dXJuKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZUdldFNoZWxsQ29tbWFuZCIse30pKS5zaGVsbENvbW1hbmR9cmVnaXN0ZXJQcm9jZXNzU29ja2V0SGFuZGxlcnMoKXt0aGlzLnByb2Nlc3NSb3V0ZXIuYWRkVHlwZWRIYW5kbGVyKG5ldyBndC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hXb3Jrc3BhY2VQcm9jZXNzT3V0cHV0Iixhc3luYyBlPT4odGhpcy5wcm9jZXNzU3RhdGVzLmdldChlLnByb2Nlc3NJZCk/Lm91dHB1dENvbnRyb2xsZXIuZW5xdWV1ZShlLm91dHB1dCkse30pKSksdGhpcy5wcm9jZXNzUm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoV29ya3NwYWNlUHJvY2Vzc0V4aXQiLGFzeW5jIGU9Pih0aGlzLmNvbXBsZXRlUHJvY2Vzc1N0YXRlKGUucHJvY2Vzc0lkLGUuZXhpdENvZGUpLGF3YWl0IHRoaXMucHJvY2Vzc1NvY2tldD8ucmVtb3ZlVGFnKGB3b3Jrc3BhY2VQcm9jZXNzOiR7ZS5wcm9jZXNzSWR9YCkuY2F0Y2goKCk9Pnt9KSx7fSkpKX1hc3luYyBlbnN1cmVQcm9jZXNzU29ja2V0KCl7cmV0dXJuIHRoaXMucHJvY2Vzc1NvY2tldD90aGlzLnByb2Nlc3NTb2NrZXQ6KHRoaXMucHJvY2Vzc1NvY2tldFByb21pc2V8fCh0aGlzLnByb2Nlc3NTb2NrZXRQcm9taXNlPVF1LlR5cGVkU29ja2V0LmNyZWF0ZUNsaWVudCh0aGlzLnByb2Nlc3NSb3V0ZXIsUXUuVHlwZWRTb2NrZXQudXNlV2luZG93TG9jYXRpb25PcmlnaW5VcmwoKSx7YXV0b1JlY29ubmVjdDohMH0pKSx0aGlzLnByb2Nlc3NTb2NrZXQ9YXdhaXQgdGhpcy5wcm9jZXNzU29ja2V0UHJvbWlzZSx0aGlzLnByb2Nlc3NTb2NrZXQpfWNvbXBsZXRlUHJvY2Vzc1N0YXRlKGUsdCl7bGV0IGE9dGhpcy5wcm9jZXNzU3RhdGVzLmdldChlKTtpZihhKXt0cnl7YS5vdXRwdXRDb250cm9sbGVyLmNsb3NlKCl9Y2F0Y2h7fWEucmVzb2x2ZUV4aXQodCksdGhpcy5wcm9jZXNzU3RhdGVzLmRlbGV0ZShlKX19YXN5bmMga2lsbFByb2Nlc3MoZSl7bGV0IHQ9dGhpcy5wcm9jZXNzU29ja2V0O3QmJihhd2FpdCB0LmNyZWF0ZVR5cGVkUmVxdWVzdCgid29ya3NwYWNlS2lsbFByb2Nlc3MiKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHByb2Nlc3NJZDplfSkuY2F0Y2goKCk9Pnt9KSx0aGlzLmNvbXBsZXRlUHJvY2Vzc1N0YXRlKGUsLTEpLGF3YWl0IHQucmVtb3ZlVGFnKGB3b3Jrc3BhY2VQcm9jZXNzOiR7ZX1gKS5jYXRjaCgoKT0+e30pKX1hc3luYyBmaXJlUmVxdWVzdChlLHQpe3JldHVybiBhd2FpdCBuZXcgd3NzLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsZSkuZmlyZSh7aWRlbnRpdHk6dGhpcy5pZGVudGl0eSxzZXJ2aWNlTmFtZTp0aGlzLnNlcnZpY2VOYW1lLC4uLnR9KX19fSk7dmFyIHRDYT17fTt5dCh0Q2Ese09iVmlld1NlcnZpY2VzOigpPT5ZY3R9KTtmdW5jdGlvbiBJMmUocyl7aWYoIXN8fHM9PT0wKXJldHVybiIwIEIiO2xldCBlPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIl0sdD0xMDI0LGE9TWF0aC5mbG9vcihNYXRoLmxvZyhzKS9NYXRoLmxvZyh0KSk7cmV0dXJuYCR7KHMvTWF0aC5wb3codCxhKSkudG9GaXhlZCgxKX0gJHtlW2FdfWB9ZnVuY3Rpb24ga3NzKHMpe2xldCBlPXMubGFzdEluZGV4T2YoIjoiKSx0PXMubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gZT50JiZlPjA/e3JlcG9zaXRvcnk6cy5zdWJzdHJpbmcoMCxlKSx0YWc6cy5zdWJzdHJpbmcoZSsxKX06e3JlcG9zaXRvcnk6cyx0YWc6ImxhdGVzdCJ9fWZ1bmN0aW9uIFZ6YShzKXtzd2l0Y2gocyl7Y2FzZSJydW5uaW5nIjpyZXR1cm4icnVubmluZyI7Y2FzZSJzdGFydGluZyI6cmV0dXJuInN0YXJ0aW5nIjtjYXNlImZhaWxlZCI6cmV0dXJuImVycm9yIjtkZWZhdWx0OnJldHVybiJzdG9wcGVkIn19ZnVuY3Rpb24gU3NzKHMpe2xldCBlPWtzcyhzLmltYWdlKTtyZXR1cm57bmFtZTpzLm5hbWUsc3RhdHVzOlZ6YShzLnN0YXR1cyksaW1hZ2U6cy5pbWFnZSxwb3J0OnMucG9ydCxkb21haW46cy5kb21haW58fG51bGwsY29udGFpbmVySWQ6cy5jb250YWluZXJJRHx8IiIsY3JlYXRlZDpzLmNyZWF0ZWRBdD9uZXcgRGF0ZShzLmNyZWF0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKToiLSIsdXBkYXRlZDpzLnVwZGF0ZWRBdD9uZXcgRGF0ZShzLnVwZGF0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKToiLSIscmVnaXN0cnk6cy51c2VPbmVib3hSZWdpc3RyeT8iT25lYm94IFJlZ2lzdHJ5IjpzLnJlZ2lzdHJ5fHwiRG9ja2VyIEh1YiIscmVwb3NpdG9yeTpzLnJlZ2lzdHJ5UmVwb3NpdG9yeXx8ZS5yZXBvc2l0b3J5LHRhZzpzLnJlZ2lzdHJ5SW1hZ2VUYWd8fGUudGFnfX1mdW5jdGlvbiBfc3Mocyl7cmV0dXJue2NwdTpzLmNwdVBlcmNlbnQsbWVtb3J5OkkyZShzLm1lbW9yeVVzZWQpLG1lbW9yeUxpbWl0OkkyZShzLm1lbW9yeUxpbWl0KSxuZXR3b3JrSW46STJlKHMubmV0d29ya1J4KSxuZXR3b3JrT3V0OkkyZShzLm5ldHdvcmtUeCl9fWZ1bmN0aW9uIE1zcyhzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9zLm1hcChlPT57bGV0IHQ9ZS50aW1lc3RhbXA/dHlwZW9mIGUudGltZXN0YW1wPT0ibnVtYmVyIj9uZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKTpTdHJpbmcoZS50aW1lc3RhbXApOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxhPWUubWVzc2FnZXx8U3RyaW5nKGUpLHI9ZS5sZXZlbHx8ImluZm8iO3JldHVybnt0aW1lc3RhbXA6dCxtZXNzYWdlOmEsbGV2ZWw6cn19KTp0eXBlb2Ygcz09InN0cmluZyImJnMudHJpbSgpP3Muc3BsaXQoYApgKS5maWx0ZXIoZT0+ZS50cmltKCkpLm1hcChlPT57bGV0IHQ9ZS5tYXRjaCgvXihcZHs0fS1cZHsyfS1cZHsyfVRbXGQ6Ll0rWj8pXHMrKC4qKS8pLGE9dD90WzFdOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxyPXQ/dFsyXTplLG49ci50b0xvd2VyQ2FzZSgpLG89bi5pbmNsdWRlcygiZXJyb3IiKXx8bi5pbmNsdWRlcygiZmF0YWwiKT8iZXJyb3IiOm4uaW5jbHVkZXMoIndhcm4iKT8id2FybiI6ImluZm8iO3JldHVybnt0aW1lc3RhbXA6YSxtZXNzYWdlOnIsbGV2ZWw6b319KTpbXX12YXIgVXphLFd6YSxHemEsS3phLFl6YSxaemEsWHphLFF6YSxKemEsZUNhLGVpLEhjdCxxY3QsamN0LFZjdCxVY3QsV2N0LEdjdCxLY3QsenNzLHVsLFljdCxaY3Q9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7RngoKTtqemEoKTtwZSgpO2koSTJlLCJmb3JtYXRCeXRlcyIpO2koa3NzLCJwYXJzZUltYWdlU3RyaW5nIik7aShWemEsIm1hcFN0YXR1cyIpO2koU3NzLCJ0b1NlcnZpY2VEZXRhaWwiKTtpKF9zcywidG9TZXJ2aWNlU3RhdHMiKTtpKE1zcywicGFyc2VMb2dzIik7enNzPXtjcHU6MCxtZW1vcnk6IjAgQiIsbWVtb3J5TGltaXQ6IjAgQiIsbmV0d29ya0luOiIwIEIiLG5ldHdvcmtPdXQ6IjAgQiJ9O2VDYT1bbmUoIm9iLXZpZXctc2VydmljZXMiKV07dWw9Y2xhc3MgdWwgZXh0ZW5kcyhKemE9d2UsUXphPVtZKCldLFh6YT1bWSgpXSxaemE9W1koKV0sWXphPVtZKCldLEt6YT1bWSgpXSxHemE9W1koKV0sV3phPVtZKCldLFV6YT1bWSgpXSxKemEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtlYSh0aGlzLEhjdCxpdChlaSw4LHRoaXMse3NlcnZpY2VzOltdLGN1cnJlbnRTZXJ2aWNlOm51bGwsY3VycmVudFNlcnZpY2VMb2dzOltdLGN1cnJlbnRTZXJ2aWNlU3RhdHM6bnVsbCxwbGF0Zm9ybVNlcnZpY2VzOltdLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0pKSxpdChlaSwxMSx0aGlzKTtlYSh0aGlzLHFjdCxpdChlaSwxMix0aGlzLHtiYWNrdXBzOltdLHNjaGVkdWxlczpbXX0pKSxpdChlaSwxNSx0aGlzKTtlYSh0aGlzLGpjdCxpdChlaSwxNix0aGlzLCJsaXN0IikpLGl0KGVpLDE5LHRoaXMpO2VhKHRoaXMsVmN0LGl0KGVpLDIwLHRoaXMsIiIpKSxpdChlaSwyMyx0aGlzKTtlYSh0aGlzLFVjdCxpdChlaSwyNCx0aGlzLCIiKSksaXQoZWksMjcsdGhpcyk7ZWEodGhpcyxXY3QsaXQoZWksMjgsdGhpcywhMSkpLGl0KGVpLDMxLHRoaXMpO2VhKHRoaXMsR2N0LGl0KGVpLDMyLHRoaXMsbnVsbCkpLGl0KGVpLDM1LHRoaXMpO2VhKHRoaXMsS2N0LGl0KGVpLDM2LHRoaXMse2FwcHM6W10sdXBncmFkZWFibGVTZXJ2aWNlczpbXSx1cGdyYWRlT3BlcmF0aW9uczpbXX0pKSxpdChlaSwzOSx0aGlzKTtsZXQgdD1ZdC5zZWxlY3Qobj0+bikuc3Vic2NyaWJlKG49Pnt0aGlzLnNlcnZpY2VzU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCk7bGV0IGE9SDIuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5iYWNrdXBzU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IHI9Y2wuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5hcHBTdG9yZVN0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbWXQuZGlzcGF0Y2hBY3Rpb24oejJlLG51bGwpLFl0LmRpc3BhdGNoQWN0aW9uKEMyZSxudWxsKSxjbC5kaXNwYXRjaEFjdGlvbihtemEsbnVsbCksY2wuZGlzcGF0Y2hBY3Rpb24oTDJlLG51bGwpXSk7bGV0IHQ9WXQuZ2V0U3RhdGUoKTtpZih0LmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2Upe2xldCBhPXQuY3VycmVudFBsYXRmb3JtU2VydmljZS50eXBlO1l0LnNldFN0YXRlKHsuLi5ZdC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2U6bnVsbH0pLHRoaXMubmF2aWdhdGVUb1BsYXRmb3JtRGV0YWlsKGEpfX1yZW5kZXIoKXtzd2l0Y2godGhpcy5jdXJyZW50Vmlldyl7Y2FzZSJjcmVhdGUiOnJldHVybiB0aGlzLnJlbmRlckNyZWF0ZVZpZXcoKTtjYXNlImRldGFpbCI6cmV0dXJuIHRoaXMucmVuZGVyRGV0YWlsVmlldygpO2Nhc2UiYmFja3VwcyI6cmV0dXJuIHRoaXMucmVuZGVyQmFja3Vwc1ZpZXcoKTtjYXNlInBsYXRmb3JtLWRldGFpbCI6cmV0dXJuIHRoaXMucmVuZGVyUGxhdGZvcm1EZXRhaWxWaWV3KCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5yZW5kZXJMaXN0VmlldygpfX1yZW5kZXJMaXN0Vmlldygpe2xldCB0PXRoaXMuc2VydmljZXNTdGF0ZS5zZXJ2aWNlcy5tYXAobD0+KHtuYW1lOmwubmFtZSxpbWFnZTpsLmltYWdlLGRvbWFpbjpsLmRvbWFpbnx8bnVsbCxzdGF0dXM6VnphKGwuc3RhdHVzKX0pKSxhPWkobD0+e3N3aXRjaChsKXtjYXNlInJ1bm5pbmciOnJldHVybiJSdW5uaW5nIjtjYXNlInN0b3BwZWQiOnJldHVybiJTdG9wcGVkIjtjYXNlInN0YXJ0aW5nIjpyZXR1cm4iU3RhcnRpbmcuLi4iO2Nhc2Uic3RvcHBpbmciOnJldHVybiJTdG9wcGluZy4uLiI7Y2FzZSJmYWlsZWQiOnJldHVybiJGYWlsZWQiO2Nhc2Uibm90LWRlcGxveWVkIjpyZXR1cm4iTm90IERlcGxveWVkIjtkZWZhdWx0OnJldHVybiBsfX0sImRpc3BsYXlTdGF0dXMiKSxyPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbHRlcihsPT5sLnN0YXR1cz09PSJydW5uaW5nInx8bC5zdGF0dXM9PT0ic3RhcnRpbmcifHxsLnN0YXR1cz09PSJzdG9wcGluZyJ8fGwuaXNDb3JlKSxuPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbHRlcihsPT4hbC5pc0NvcmUmJihsLnN0YXR1cz09PSJub3QtZGVwbG95ZWQifHxsLnN0YXR1cz09PSJzdG9wcGVkInx8bC5zdGF0dXM9PT0iZmFpbGVkIikpLG89ci5tYXAobD0+KHtuYW1lOmwuZGlzcGxheU5hbWUsc3RhdHVzOmEobC5zdGF0dXMpLHJ1bm5pbmc6bC5zdGF0dXM9PT0icnVubmluZyIsdHlwZTpsLnR5cGV9KSk7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5TZXJ2aWNlczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGVwbG95LWJ1dHRvbiIgQGNsaWNrPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJjcmVhdGUifX0+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIERlcGxveSBTZXJ2aWNlCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8c3otc2VydmljZXMtbGlzdC12aWV3CiAgICAgICAgLnNlcnZpY2VzPSR7dH0KICAgICAgICBAc2VydmljZS1jbGljaz0ke2w9Pnt0aGlzLnNlbGVjdGVkU2VydmljZU5hbWU9bC5kZXRhaWwubmFtZXx8bC5kZXRhaWwuc2VydmljZT8ubmFtZSxZdC5kaXNwYXRjaEFjdGlvbihLTWEse25hbWU6dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lfSksWXQuZGlzcGF0Y2hBY3Rpb24oSk1hLHtuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZX0pLFl0LmRpc3BhdGNoQWN0aW9uKGV6YSx7bmFtZTp0aGlzLnNlbGVjdGVkU2VydmljZU5hbWV9KSx0aGlzLmN1cnJlbnRWaWV3PSJkZXRhaWwifX0KICAgICAgICBAc2VydmljZS1hY3Rpb249JHtsPT50aGlzLmhhbmRsZVNlcnZpY2VBY3Rpb24obCl9CiAgICAgID48L3N6LXNlcnZpY2VzLWxpc3Qtdmlldz4KICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nIHN0eWxlPSJtYXJnaW4tdG9wOiAzMnB4OyI+UGxhdGZvcm0gU2VydmljZXM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IHN0eWxlPSJtYXgtd2lkdGg6IDUwMHB4OyI+CiAgICAgICAgJHtvLmxlbmd0aD4wP3dgCiAgICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgICAuc2VydmljZXM9JHtvfQogICAgICAgICAgICBAc2VydmljZS1jbGljaz0ke2w9PntsZXQgcD1sLmRldGFpbC50eXBlfHx0aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maW5kKGQ9PmQuZGlzcGxheU5hbWU9PT1sLmRldGFpbC5uYW1lKT8udHlwZTtwJiZ0aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChwKX19CiAgICAgICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtuLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgIzA5MDkwYik7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7by5sZW5ndGg+MD8iMTJweCI6IjAifTsKICAgICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgIj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi1ib3R0b206IDEycHg7Ij5BdmFpbGFibGUg4oCUIG5vdCBpbiB1c2U8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4OyI+CiAgICAgICAgICAgICAgJHtuLm1hcChsPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiA4cHggMDsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUGxhdGZvcm1EZXRhaWwobC50eXBlKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7IGZsZXgtc2hyaW5rOiAwOyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyI+JHtsLmRpc3BsYXlOYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsiPiR7YShsLnN0YXR1cyl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRlcGxveUZyb21UZW1wbGF0ZSh0KXtsZXQgYT10LmlkfHx0Lm5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOS1dL2csIi0iKSxyPXt9O2lmKHQuZW52VmFycylmb3IobGV0IG8gb2YgdC5lbnZWYXJzKW8ua2V5JiZvLnZhbHVlJiYocltvLmtleV09by52YWx1ZSk7bGV0IG49e25hbWU6YSxpbWFnZTp0LmltYWdlLHBvcnQ6dC5wb3J0fHw4MCxlbnZWYXJzOnIsZW5hYmxlTW9uZ29EQjp0LmVuYWJsZU1vbmdvREJ8fCExLGVuYWJsZVMzOnQuZW5hYmxlUzN8fCExLGVuYWJsZUNsaWNrSG91c2U6dC5lbmFibGVDbGlja0hvdXNlfHwhMSxlbmFibGVSZWRpczp0LmVuYWJsZVJlZGlzfHwhMSxlbmFibGVNYXJpYURCOnQuZW5hYmxlTWFyaWFEQnx8ITF9O2F3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKGZjdCx7Y29uZmlnOm59KSx0aGlzLnBlbmRpbmdUZW1wbGF0ZT1udWxsLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifXJlbmRlckNyZWF0ZVZpZXcoKXtpZih0aGlzLnBlbmRpbmdUZW1wbGF0ZSl7bGV0IHQ9dGhpcy5wZW5kaW5nVGVtcGxhdGU7cmV0dXJuIHdgCiAgICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkRlcGxveSAke3QubmFtZX08L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgc3R5bGU9Im1heC13aWR0aDogNjAwcHg7IG1hcmdpbjogMCBhdXRvOyI+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMjRweDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPgogICAgICAgICAgICA8aDMgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE4cHg7Ij4ke3QubmFtZX08L2gzPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7IGZvbnQtc2l6ZTogMTRweDsiPiR7dC5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiAxMnB4OyBmb250LXNpemU6IDEzcHg7Ij4KICAgICAgICAgICAgICA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij5JbWFnZTo8L3NwYW4+IDxzdHJvbmc+JHt0LmltYWdlfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlBvcnQ6PC9zcGFuPiA8c3Ryb25nPiR7dC5wb3J0fTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlNlcnZpY2UgTmFtZTo8L3NwYW4+IDxzdHJvbmc+JHt0LmlkfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPkNhdGVnb3J5Ojwvc3Bhbj4gPHN0cm9uZz4ke3QuY2F0ZWdvcnl9PC9zdHJvbmc+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3QuZW5hYmxlTW9uZ29EQnx8dC5lbmFibGVTM3x8dC5lbmFibGVDbGlja0hvdXNlfHx0LmVuYWJsZVJlZGlzfHx0LmVuYWJsZU1hcmlhREI/d2AKICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMnB4OyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPgogICAgICAgICAgICAgICAgUGxhdGZvcm0gU2VydmljZXM6CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlTW9uZ29EQj93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPk1vbmdvREI8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICR7dC5lbmFibGVTMz93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPlMzPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlQ2xpY2tIb3VzZT93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPkNsaWNrSG91c2U8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICR7dC5lbmFibGVSZWRpcz93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPlJlZGlzPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlTWFyaWFEQj93YDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPk1hcmlhREI8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIHN0eWxlPSJiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGNvbG9yOiBpbmhlcml0OyIgQGNsaWNrPSR7KCk9Pnt0aGlzLnBlbmRpbmdUZW1wbGF0ZT1udWxsLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlcGxveUZyb21UZW1wbGF0ZSh0KX0+RGVwbG95ICR7dC5uYW1lfTwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5DcmVhdGUgU2VydmljZTwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1zZXJ2aWNlLWNyZWF0ZS12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbXX0KICAgICAgICBAY3JlYXRlLXNlcnZpY2U9JHthc3luYyB0PT57bGV0IGE9dC5kZXRhaWwscj17bmFtZTphLm5hbWUsaW1hZ2U6YS5pbWFnZSxwb3J0OmEucG9ydHM/LlswXT8uY29udGFpbmVyUG9ydD9wYXJzZUludChhLnBvcnRzWzBdLmNvbnRhaW5lclBvcnQsMTApOjgwLGVudlZhcnM6YS5lbnZWYXJzPy5yZWR1Y2UoKG4sbyk9PihvLmtleSYmKG5bby5rZXldPW8udmFsdWUpLG4pLHt9KSxlbmFibGVNb25nb0RCOmEuZW5hYmxlTW9uZ29EQnx8ITEsZW5hYmxlUzM6YS5lbmFibGVTM3x8ITEsZW5hYmxlQ2xpY2tIb3VzZTphLmVuYWJsZUNsaWNrSG91c2V8fCExLGVuYWJsZVJlZGlzOmEuZW5hYmxlUmVkaXN8fCExLGVuYWJsZU1hcmlhREI6YS5lbmFibGVNYXJpYURCfHwhMX07YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oZmN0LHtjb25maWc6cn0pLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgICBAY2FuY2VsPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In19CiAgICAgID48L3N6LXNlcnZpY2UtY3JlYXRlLXZpZXc+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtsZXQgdD10aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFNlcnZpY2UsYT10P1Nzcyh0KTpudWxsLHI9dGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRTZXJ2aWNlU3RhdHM/X3NzKHRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZVN0YXRzKTp6c3Msbj1Nc3ModGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRTZXJ2aWNlTG9ncyksbz10P3RoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlYWJsZVNlcnZpY2VzLmZpbmQoZD0+ZC5zZXJ2aWNlTmFtZT09PXQubmFtZSk6bnVsbCxsPXQ/dGhpcy5hcHBTdG9yZVN0YXRlLnVwZ3JhZGVPcGVyYXRpb25zLmZpbmQoZD0+ZC5zZXJ2aWNlTmFtZT09PXQubmFtZSYmZC5zdGF0dXM9PT0icnVubmluZyIpOm51bGwscD10P3RoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlT3BlcmF0aW9ucy5maW5kKGQ9PmQuc2VydmljZU5hbWU9PT10Lm5hbWUpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5TZXJ2aWNlIERldGFpbHM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAke2w/dGhpcy5yZW5kZXJVcGdyYWRlT3BlcmF0aW9uKGwpOiIifQogICAgICAkeyFsJiZwPy5zdGF0dXM9PT0iZmFpbGVkIj90aGlzLnJlbmRlclVwZ3JhZGVPcGVyYXRpb24ocCk6IiJ9CiAgICAgICR7bz93YAogICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSksIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjEpKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7Ij4KICAgICAgICAgICAgICBVcGRhdGUgYXZhaWxhYmxlOiB2JHtvLmN1cnJlbnRWZXJzaW9ufSAmcmFycjsgdiR7by5sYXRlc3RWZXJzaW9ufQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDRweDsiPgogICAgICAgICAgICAgICR7by5oYXNNaWdyYXRpb24/Ik1pZ3JhdGlvbiBzY3JpcHQgYXZhaWxhYmxlIjoiQ29uZmlnLW9ubHkgdXBncmFkZSJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJkZXBsb3ktYnV0dG9uIgogICAgICAgICAgICBzdHlsZT0icGFkZGluZzogOHB4IDE2cHg7IGZvbnQtc2l6ZTogMTNweDsiCiAgICAgICAgICAgID9kaXNhYmxlZD0keyEhbH0KICAgICAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IGNsLmRpc3BhdGNoQWN0aW9uKGd6YSx7c2VydmljZU5hbWU6by5zZXJ2aWNlTmFtZSx0YXJnZXRWZXJzaW9uOm8ubGF0ZXN0VmVyc2lvbn0pfX0KICAgICAgICAgID4ke2w/IlVwZ3JhZGluZy4uLiI6IlVwZ3JhZGUifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8c3otc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7YX0KICAgICAgICAubG9ncz0ke259CiAgICAgICAgLnN0YXRzPSR7cn0KICAgICAgICBAYmFjaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBzZXJ2aWNlLWFjdGlvbj0ke2Q9PnRoaXMuaGFuZGxlU2VydmljZUFjdGlvbihkKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHthc3luYyBkPT57bGV0IHU9ZC5kZXRhaWw/LnNlcnZpY2U/Lm5hbWV8fHRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZSxjPVFpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoISghdXx8IWMpKXRyeXtsZXQgYj1uZXcgUDJlKHUsYyk7YXdhaXQgYi5pbml0KCk7bGV0IHY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJzei1zZXJ2aWNlLWRldGFpbC12aWV3Iik7diYmKHYud29ya3NwYWNlRW52aXJvbm1lbnQ9YiksdGhpcy53b3Jrc3BhY2VPcGVuPSEwLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKX1jYXRjaChiKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gb3BlbiB3b3Jrc3BhY2U6IixiKX19fQogICAgICAgIEBiYWNrPSR7KCk9Pnt0aGlzLndvcmtzcGFjZU9wZW49ITEsdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ3b3Jrc3BhY2UtbW9kZSIpLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgPjwvc3otc2VydmljZS1kZXRhaWwtdmlldz4KICAgIGB9cmVuZGVyVXBncmFkZU9wZXJhdGlvbih0KXtsZXQgYT10LnN0YXR1cz09PSJmYWlsZWQiPyIjZjg3MTcxIjoiIzYwYTVmYSI7cmV0dXJuIHdgCiAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICMwOTA5MGIpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7YX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgIj4KICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogMTZweDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Ij4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOyI+CiAgICAgICAgICAgICAgVXBncmFkZSAke3QuZnJvbVZlcnNpb259ICZyYXJyOyAke3QudGFyZ2V0VmVyc2lvbn06ICR7dC5zdGVwfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDRweDsiPgogICAgICAgICAgICAgICR7dC5zdGF0dXM9PT0icnVubmluZyI/Ik9wZXJhdGlvbiBpcyBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kLiI6dC5lcnJvcnx8Ik9wZXJhdGlvbiBmaW5pc2hlZC4ifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICR7YX07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjA0ZW07Ij4KICAgICAgICAgICAgJHt0LnN0YXR1c30KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0wLCAjMDMwMzA1KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgICAgbWF4LWhlaWdodDogMTMwcHg7CiAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICAiPiR7dC5wcm9ncmVzc0xpbmVzLnNsaWNlKC04KS5qb2luKGAKYCl9PC9kaXY+CiAgICAgICAgJHt0Lndhcm5pbmdzLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyBjb2xvcjogI2ZiYmYyNDsgZm9udC1zaXplOiAxMnB4OyI+CiAgICAgICAgICAgICR7dC53YXJuaW5ncy5qb2luKCIgfCAiKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJCYWNrdXBzVmlldygpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QmFja3Vwczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXcKICAgICAgICAuc2NoZWR1bGVzPSR7dGhpcy5iYWNrdXBzU3RhdGUuc2NoZWR1bGVzfQogICAgICAgIC5iYWNrdXBzPSR7dGhpcy5iYWNrdXBzU3RhdGUuYmFja3Vwc30KICAgICAgICBAY3JlYXRlLXNjaGVkdWxlPSR7dD0+e0gyLmRpc3BhdGNoQWN0aW9uKGx6YSx7Y29uZmlnOnQuZGV0YWlsfSl9fQogICAgICAgIEBydW4tbm93PSR7dD0+e0gyLmRpc3BhdGNoQWN0aW9uKGN6YSx7c2NoZWR1bGVJZDp0LmRldGFpbC5zY2hlZHVsZUlkfSl9fQogICAgICAgIEBkZWxldGUtYmFja3VwPSR7dD0+e0gyLmRpc3BhdGNoQWN0aW9uKG56YSx7YmFja3VwSWQ6dC5kZXRhaWwuYmFja3VwSWR9KX19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIGB9bmF2aWdhdGVUb1BsYXRmb3JtRGV0YWlsKHQpe3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGU9dCxZdC5zZXRTdGF0ZSh7Li4uWXQuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0pO2xldCBhPXQ7WXQuZGlzcGF0Y2hBY3Rpb24oVDJlLHtzZXJ2aWNlVHlwZTphfSksWXQuZGlzcGF0Y2hBY3Rpb24odHphLHtzZXJ2aWNlVHlwZTphfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jdXJyZW50Vmlldz0icGxhdGZvcm0tZGV0YWlsIn0pfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe2xldCB0PXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbmQocD0+cC50eXBlPT09dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZSksYT10aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzLHI9e2NwdTphP01hdGgucm91bmQoYS5jcHVQZXJjZW50KTowLG1lbW9yeTphP01hdGgucm91bmQoYS5tZW1vcnlQZXJjZW50KTowLHN0b3JhZ2U6MCxjb25uZWN0aW9uczp2b2lkIDB9LG89dD97bW9uZ29kYjp7aG9zdDoib25lYm94LW1vbmdvZGIiLHBvcnQ6MjcwMTcsdmVyc2lvbjoiNC40Iixjb25maWc6e2VuZ2luZToiV2lyZWRUaWdlciIsYXV0aEVuYWJsZWQ6ITB9fSxtaW5pbzp7aG9zdDoib25lYm94LW1pbmlvIixwb3J0OjllMyx2ZXJzaW9uOiJsYXRlc3QiLGNvbmZpZzp7Y29uc29sZVBvcnQ6OTAwMSxyZWdpb246InVzLWVhc3QtMSJ9fSxjbGlja2hvdXNlOntob3N0OiJvbmVib3gtY2xpY2tob3VzZSIscG9ydDo4MTIzLHZlcnNpb246ImxhdGVzdCIsY29uZmlnOntuYXRpdmVQb3J0OjllMyxodHRwUG9ydDo4MTIzfX0sc21hcnRwcm94eTp7aG9zdDoib25lYm94LXNtYXJ0cHJveHkiLHBvcnQ6ODAsdmVyc2lvbjoibGF0ZXN0Iixjb25maWc6e2h0dHBzUG9ydDo0NDMsYWRtaW5BcGk6MjAxOX19LG1hcmlhZGI6e2hvc3Q6Im9uZWJveC1tYXJpYWRiIixwb3J0OjMzMDYsdmVyc2lvbjoiMTEiLGNvbmZpZzp7ZW5naW5lOiJJbm5vREIiLGF1dGhFbmFibGVkOiEwfX0scmVkaXM6e2hvc3Q6Im9uZWJveC1yZWRpcyIscG9ydDo2Mzc5LHZlcnNpb246IjctYWxwaW5lIixjb25maWc6e2FwcGVuZG9ubHk6ITAsbWF4RGF0YWJhc2VzOjE2fX19W3QudHlwZV18fHtob3N0OiJ1bmtub3duIixwb3J0OjAsdmVyc2lvbjoiIixjb25maWc6e319Ontob3N0OiIiLHBvcnQ6MCx2ZXJzaW9uOiIiLGNvbmZpZzp7fX0sbD1pKHA9Pntzd2l0Y2gocCl7Y2FzZSJydW5uaW5nIjpyZXR1cm4icnVubmluZyI7Y2FzZSJmYWlsZWQiOnJldHVybiJlcnJvciI7ZGVmYXVsdDpyZXR1cm4ic3RvcHBlZCJ9fSwibWFwUGxhdGZvcm1TdGF0dXMiKTtyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPlBsYXRmb3JtIFNlcnZpY2U8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWFjdGlvbnMiIHN0eWxlPSJqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ij4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBzdHlsZT0iYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOyBjb2xvcjogaW5oZXJpdDsiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fT4KICAgICAgICAgICZsYXJyOyBCYWNrIHRvIFNlcnZpY2VzCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7dD97aWQ6dC50eXBlLG5hbWU6dC5kaXNwbGF5TmFtZSx0eXBlOnQudHlwZSxzdGF0dXM6bCh0LnN0YXR1cyksdmVyc2lvbjpvLnZlcnNpb24saG9zdDpvLmhvc3QscG9ydDpvLnBvcnQsY29uZmlnOm8uY29uZmlnLG1ldHJpY3M6cn06bnVsbH0KICAgICAgICAubG9ncz0ke3RoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9ncy5tYXAocD0+KHt0aW1lc3RhbXA6bmV3IERhdGUocC50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksbGV2ZWw6cC5sZXZlbCxtZXNzYWdlOnAubWVzc2FnZX0pKX0KICAgICAgICBAYmFjaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBzdGFydD0ke2FzeW5jKCk9Pnthd2FpdCBZdC5kaXNwYXRjaEFjdGlvbihtY3Qse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxZdC5kaXNwYXRjaEFjdGlvbihUMmUse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KX19CiAgICAgICAgQHN0b3A9JHthc3luYygpPT57YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oZ2N0LHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSl9fQogICAgICAgIEByZXN0YXJ0PSR7YXN5bmMoKT0+e2F3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKGdjdCx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pLGF3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKG1jdCx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pLFl0LmRpc3BhdGNoQWN0aW9uKFQyZSx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pfX0KICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldz4KICAgIGB9YXN5bmMgaGFuZGxlU2VydmljZUFjdGlvbih0KXtsZXQgYT10LmRldGFpbC5hY3Rpb24scj10LmRldGFpbC5zZXJ2aWNlPy5uYW1lfHx0LmRldGFpbC5uYW1lfHx0aGlzLnNlbGVjdGVkU2VydmljZU5hbWU7c3dpdGNoKGEpe2Nhc2Uic3RhcnQiOmF3YWl0IFl0LmRpc3BhdGNoQWN0aW9uKFpNYSx7bmFtZTpyfSk7YnJlYWs7Y2FzZSJzdG9wIjphd2FpdCBZdC5kaXNwYXRjaEFjdGlvbihYTWEse25hbWU6cn0pO2JyZWFrO2Nhc2UicmVzdGFydCI6YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oUU1hLHtuYW1lOnJ9KTticmVhaztjYXNlImRlbGV0ZSI6YXdhaXQgWXQuZGlzcGF0Y2hBY3Rpb24oWU1hLHtuYW1lOnJ9KSx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0IjticmVha319fTtlaT1SaShKemEpLEhjdD1uZXcgV2Vha01hcCxxY3Q9bmV3IFdlYWtNYXAsamN0PW5ldyBXZWFrTWFwLFZjdD1uZXcgV2Vha01hcCxVY3Q9bmV3IFdlYWtNYXAsV2N0PW5ldyBXZWFrTWFwLEdjdD1uZXcgV2Vha01hcCxLY3Q9bmV3IFdlYWtNYXAsUnQoZWksNCwic2VydmljZXNTdGF0ZSIsUXphLHVsLEhjdCksUnQoZWksNCwiYmFja3Vwc1N0YXRlIixYemEsdWwscWN0KSxSdChlaSw0LCJjdXJyZW50VmlldyIsWnphLHVsLGpjdCksUnQoZWksNCwic2VsZWN0ZWRTZXJ2aWNlTmFtZSIsWXphLHVsLFZjdCksUnQoZWksNCwic2VsZWN0ZWRQbGF0Zm9ybVR5cGUiLEt6YSx1bCxVY3QpLFJ0KGVpLDQsIndvcmtzcGFjZU9wZW4iLEd6YSx1bCxXY3QpLFJ0KGVpLDQsInBlbmRpbmdUZW1wbGF0ZSIsV3phLHVsLEdjdCksUnQoZWksNCwiYXBwU3RvcmVTdGF0ZSIsVXphLHVsLEtjdCksdWw9UnQoZWksMCwiT2JWaWV3U2VydmljZXMiLGVDYSx1bCksaSh1bCwiT2JWaWV3U2VydmljZXMiKSx2aSh1bCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgCiAgICAgIC5wYWdlLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiBzdmcgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoLndvcmtzcGFjZS1tb2RlKSB7CiAgICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgOmhvc3QoLndvcmtzcGFjZS1tb2RlKSBvYi1zZWN0aW9uaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF0pLGl0KGVpLDEsdWwpO1ljdD11bH0pO3ZhciBuQ2E9e307eXQobkNhLHtPYlZpZXdOZXR3b3JrOigpPT5lMXR9KTt2YXIgYUNhLHNDYSxpQ2EsckNhLG9DYSxpMSxYY3QsUWN0LEpjdCxpMCxlMXQsdDF0PWcoYXN5bmMoKT0+e2xsKCk7QjIoKTthd2FpdCBhMSgpO3BlKCk7b0NhPVtuZSgib2Itdmlldy1uZXR3b3JrIildO2kwPWNsYXNzIGkwIGV4dGVuZHMockNhPXdlLGlDYT1bWSgpXSxzQ2E9W1koKV0sYUNhPVtZKCldLHJDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsWGN0LGl0KGkxLDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoaTEsMTEsdGhpcyk7ZWEodGhpcyxRY3QsaXQoaTEsMTIsdGhpcywicHJveHkiKSksaXQoaTEsMTUsdGhpcyk7ZWEodGhpcyxKY3QsaXQoaTEsMTYsdGhpcywiIikpLGl0KGkxLDE5LHRoaXMpO2xldCB0PVphLnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMubmV0d29ya1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbWmEuZGlzcGF0Y2hBY3Rpb24oYmN0LG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHlKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKHdKLG51bGwpLFphLmRpc3BhdGNoQWN0aW9uKGF6YSxudWxsKSxaYS5kaXNwYXRjaEFjdGlvbih2Y3QsbnVsbCksWmEuZGlzcGF0Y2hBY3Rpb24oJDJlLG51bGwpXSl9cmVuZGVyKCl7c3dpdGNoKHRoaXMuY3VycmVudFRhYil7Y2FzZSJkbnMiOnJldHVybiB0aGlzLnJlbmRlckRuc1ZpZXcoKTtjYXNlImRvbWFpbnMiOnJldHVybiB0aGlzLnJlbmRlckRvbWFpbnNWaWV3KCk7Y2FzZSJkb21haW4tZGV0YWlsIjpyZXR1cm4gdGhpcy5yZW5kZXJEb21haW5EZXRhaWxWaWV3KCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5yZW5kZXJQcm94eVZpZXcoKX19cmVuZGVyUHJveHlWaWV3KCl7bGV0IHQ9dGhpcy5uZXR3b3JrU3RhdGUuc3RhdHM7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5OZXR3b3JrPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIC5wcm94eVN0YXR1cz0ke3Q/LnByb3h5Py5ydW5uaW5nPyJydW5uaW5nIjoic3RvcHBlZCJ9CiAgICAgICAgLnJvdXRlQ291bnQ9JHtTdHJpbmcodD8ucHJveHk/LnJvdXRlc3x8MCl9CiAgICAgICAgLmNlcnRpZmljYXRlQ291bnQ9JHtTdHJpbmcodD8ucHJveHk/LmNlcnRpZmljYXRlc3x8MCl9CiAgICAgICAgLnRhcmdldENvdW50PSR7U3RyaW5nKHRoaXMubmV0d29ya1N0YXRlLnRhcmdldHMubGVuZ3RoKX0KICAgICAgICAudGFyZ2V0cz0ke3RoaXMubmV0d29ya1N0YXRlLnRhcmdldHMubWFwKGE9Pih7dHlwZTphLnR5cGUsbmFtZTphLm5hbWUsZG9tYWluOmEuZG9tYWluLHRhcmdldDpgJHthLnRhcmdldEhvc3R9OiR7YS50YXJnZXRQb3J0fWAsc3RhdHVzOmEuc3RhdHVzfSkpfQogICAgICAgIC5sb2dzPSR7W119CiAgICAgICAgQHJlZnJlc2g9JHsoKT0+e1phLmRpc3BhdGNoQWN0aW9uKGJjdCxudWxsKSxaYS5kaXNwYXRjaEFjdGlvbih5SixudWxsKX19CiAgICAgID48L3N6LW5ldHdvcmstcHJveHktdmlldz4KICAgIGB9cmVuZGVyRG5zVmlldygpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RE5TIFJlY29yZHM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otbmV0d29yay1kbnMtdmlldwogICAgICAgIC5yZWNvcmRzPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG5zUmVjb3Jkc30KICAgICAgICBAc3luYz0keygpPT57WmEuZGlzcGF0Y2hBY3Rpb24oc3phLG51bGwpfX0KICAgICAgICBAZGVsZXRlPSR7dD0+e2NvbnNvbGUubG9nKCJEZWxldGUgRE5TIHJlY29yZDoiLHQuZGV0YWlsKX19CiAgICAgID48L3N6LW5ldHdvcmstZG5zLXZpZXc+CiAgICBgfXJlbmRlckRvbWFpbnNWaWV3KCl7bGV0IHQ9dGhpcy5uZXR3b3JrU3RhdGUuY2VydGlmaWNhdGVzO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RG9tYWluczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1uZXR3b3JrLWRvbWFpbnMtdmlldwogICAgICAgIC5kb21haW5zPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG9tYWlucy5tYXAoYT0+e2xldCByPXQuZmluZChvPT5vLmNlcnREb21haW49PT1hLmRvbWFpbiksbj0icGVuZGluZyI7cmV0dXJuIHImJihyLmlzVmFsaWQ/ci5leHBpcmVzQXQmJnIuZXhwaXJlc0F0LURhdGUubm93KCk8NzIwKjYwKjYwKjFlMz9uPSJleHBpcmluZyI6bj0idmFsaWQiOm49ImV4cGlyZWQiKSx7ZG9tYWluOmEuZG9tYWluLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6YS5zZXJ2aWNlcz8ubGVuZ3RofHwwLGNlcnRpZmljYXRlU3RhdHVzOm59fSl9CiAgICAgICAgQHN5bmM9JHsoKT0+e1phLmRpc3BhdGNoQWN0aW9uKHZjdCxudWxsKX19CiAgICAgICAgQHZpZXc9JHthPT57dGhpcy5zZWxlY3RlZERvbWFpbj1hLmRldGFpbC5kb21haW58fGEuZGV0YWlsLHRoaXMuY3VycmVudFRhYj0iZG9tYWluLWRldGFpbCJ9fQogICAgICA+PC9zei1uZXR3b3JrLWRvbWFpbnMtdmlldz4KICAgIGB9cmVuZGVyRG9tYWluRGV0YWlsVmlldygpe2xldCB0PXRoaXMubmV0d29ya1N0YXRlLmRvbWFpbnMuZmluZChyPT5yLmRvbWFpbj09PXRoaXMuc2VsZWN0ZWREb21haW4pLGE9dGhpcy5uZXR3b3JrU3RhdGUuY2VydGlmaWNhdGVzLmZpbmQocj0+ci5jZXJ0RG9tYWluPT09dGhpcy5zZWxlY3RlZERvbWFpbik7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW4gRGV0YWlsczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7dD97aWQ6dGhpcy5zZWxlY3RlZERvbWFpbixuYW1lOnRoaXMuc2VsZWN0ZWREb21haW4sc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiIn06bnVsbH0KICAgICAgICAuY2VydGlmaWNhdGU9JHthP3tpZDphLmRvbWFpbklkLGRvbWFpbjphLmNlcnREb21haW4saXNzdWVyOiJMZXQncyBFbmNyeXB0Iix2YWxpZEZyb206YS5pc3N1ZWRBdD9uZXcgRGF0ZShhLmlzc3VlZEF0KS50b0lTT1N0cmluZygpOiIiLHZhbGlkVW50aWw6YS5leHBpcmVzQXQ/bmV3IERhdGUoYS5leHBpcmVzQXQpLnRvSVNPU3RyaW5nKCk6IiIsZGF5c1JlbWFpbmluZzphLmV4cGlyZXNBdD9NYXRoLmZsb29yKChhLmV4cGlyZXNBdC1EYXRlLm5vdygpKS8oMTQ0MCo2MCoxZTMpKTowLHN0YXR1czphLmlzVmFsaWQ/InZhbGlkIjoiZXhwaXJlZCIsYXV0b1JlbmV3OiEwfTpudWxsfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG5zUmVjb3Jkcy5maWx0ZXIocj0+ci5kb21haW4/LmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWREb21haW4pKS5tYXAocj0+KHtpZDpyLmlkfHwiIix0eXBlOnIudHlwZSxuYW1lOnIuZG9tYWluLHZhbHVlOnIudmFsdWUsdHRsOjM2MDB9KSl9CiAgICAgICAgQHJlbmV3LWNlcnRpZmljYXRlPSR7KCk9PntaYS5kaXNwYXRjaEFjdGlvbihpemEse2RvbWFpbjp0aGlzLnNlbGVjdGVkRG9tYWlufSl9fQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfX07aTE9UmkockNhKSxYY3Q9bmV3IFdlYWtNYXAsUWN0PW5ldyBXZWFrTWFwLEpjdD1uZXcgV2Vha01hcCxSdChpMSw0LCJuZXR3b3JrU3RhdGUiLGlDYSxpMCxYY3QpLFJ0KGkxLDQsImN1cnJlbnRUYWIiLHNDYSxpMCxRY3QpLFJ0KGkxLDQsInNlbGVjdGVkRG9tYWluIixhQ2EsaTAsSmN0KSxpMD1SdChpMSwwLCJPYlZpZXdOZXR3b3JrIixvQ2EsaTApLGkoaTAsIk9iVmlld05ldHdvcmsiKSx2aShpMCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgYF0pLGl0KGkxLDEsaTApO2UxdD1pMH0pO3ZhciB1Q2E9e307eXQodUNhLHtPYlZpZXdEb21haW5zOigpPT5zMXR9KTt2YXIgbENhLGNDYSxkQ2EsangsYTF0LEM0LHMxdCxwQ2E9Zyhhc3luYygpPT57QjIoKTtsbCgpO2F3YWl0IGExKCk7cGUoKTtkQ2E9W25lKCJvYi12aWV3LWRvbWFpbnMiKV07QzQ9Y2xhc3MgQzQgZXh0ZW5kcyhjQ2E9d2UsbENhPVtZKCldLGNDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsYTF0LGl0KGp4LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoangsMTEsdGhpcyk7bGV0IHQ9WmEuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFphLmRpc3BhdGNoQWN0aW9uKHhjdCxudWxsKX1yZW5kZXIoKXtsZXQgdD10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG9tYWlucztyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkRvbWFpbnM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IGNsYXNzPSJtdXRlZCIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDE2cHg7Ij4KICAgICAgICBEb21haW5zIGFyZSBtYW5hZ2VkIGluIGRjcm91dGVyLiBPbmVib3ggc2hvd3MgZ2F0ZXdheSB2aXNpYmlsaXR5IGZvciBkZXBsb3llZCBzZXJ2aWNlcy4KICAgICAgPC9kaXY+CiAgICAgICR7dC5sZW5ndGg/d2AKICAgICAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgICAgICAuaGVhZGluZzE9JHsiR2F0ZXdheSBEb21haW5zIn0KICAgICAgICAgICAgICAuaGVhZGluZzI9JHsiRG9tYWlucyBpbXBvcnRlZCBmcm9tIGRjcm91dGVyIGdhdGV3YXkgdmlzaWJpbGl0eSJ9CiAgICAgICAgICAgICAgLmRhdGE9JHt0fQogICAgICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHthPT4oe0RvbWFpbjp3YAogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbiI+JHthLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgJHthLnByb3ZpZGVySWQ/d2A8ZGl2IGNsYXNzPSJtdXRlZCI+UHJvdmlkZXI6ICR7YS5wcm92aWRlcklkfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCxTb3VyY2U6d2A8c3BhbiBjbGFzcz0iYmFkZ2UiPiR7YS5zb3VyY2V8fCJkY3JvdXRlciJ9PC9zcGFuPmAsQXV0aG9yaXRhdGl2ZTphLmF1dGhvcml0YXRpdmU/IlllcyI6Ik5vIixTZXJ2aWNlczphLnNlcnZpY2VDb3VudHx8MH0pfQogICAgICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGVDdyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57YXdhaXQgWmEuZGlzcGF0Y2hBY3Rpb24oeGN0LG51bGwpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiTWFuYWdlIGluIGRjcm91dGVyIixpY29uTmFtZToibHVjaWRlOmV4dGVybmFsTGluayIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25SZWxldmFuY3lDaGVja0Z1bmM6aShhPT4hIWEubWFuYWdlVXJsLCJhY3Rpb25SZWxldmFuY3lDaGVja0Z1bmMiKSxhY3Rpb25GdW5jOmkoYXN5bmMgYT0+e2EuaXRlbS5tYW5hZ2VVcmwmJmdsb2JhbFRoaXMub3BlbihhLml0ZW0ubWFuYWdlVXJsLCJfYmxhbmsiLCJub29wZW5lciIpfSwiYWN0aW9uRnVuYyIpfV19CiAgICAgICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgICAgICBgOndgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGdhdGV3YXkgZG9tYWlucyBmb3VuZC4gQ29uZmlndXJlIGEgZGNyb3V0ZXIgZ2F0ZXdheSBpbiBTZXR0aW5ncy48L2Rpdj5gfQogICAgYH19O2p4PVJpKGNDYSksYTF0PW5ldyBXZWFrTWFwLFJ0KGp4LDQsIm5ldHdvcmtTdGF0ZSIsbENhLEM0LGExdCksQzQ9UnQoangsMCwiT2JWaWV3RG9tYWlucyIsZENhLEM0KSxpKEM0LCJPYlZpZXdEb21haW5zIiksdmkoQzQsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyx5byxKYAogICAgICAuZG9tYWluIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgICAubXV0ZWQgeyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAuYmFkZ2UgeyBib3JkZXItcmFkaXVzOiA5OTlweDsgcGFkZGluZzogM3B4IDhweDsgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgI2Y0ZjRmNSk7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAuZW1wdHkgeyBwYWRkaW5nOiAzMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjNzE3MTdhKTsgfQogICAgYF0pLGl0KGp4LDEsQzQpO3MxdD1DNH0pO3ZhciBnQ2E9e307eXQoZ0NhLHtPYlZpZXdEbnNSZWNvcmRzOigpPT5yMXR9KTt2YXIgaENhLGZDYSxtQ2EsVngsaTF0LFQ0LHIxdCxiQ2E9Zyhhc3luYygpPT57QjIoKTtsbCgpO2F3YWl0IGExKCk7YXdhaXQgZzcoKTtwZSgpO21DYT1bbmUoIm9iLXZpZXctZG5zLXJlY29yZHMiKV07VDQ9Y2xhc3MgVDQgZXh0ZW5kcyhmQ2E9d2UsaENhPVtZKCldLGZDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsaTF0LGl0KFZ4LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksaXQoVngsMTEsdGhpcyk7bGV0IHQ9WmEuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFphLmRpc3BhdGNoQWN0aW9uKHljdCxudWxsKX1yZW5kZXIoKXtsZXQgdD10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG5zUmVjb3JkcztyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkROUyBSZWNvcmRzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgJHt0Lmxlbmd0aD93YAogICAgICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgICAgIC5oZWFkaW5nMT0keyJHYXRld2F5IEROUyBSZWNvcmRzIn0KICAgICAgICAgICAgICAuaGVhZGluZzI9JHsiRE5TIHJlY29yZHMgcHVibGlzaGVkIHRocm91Z2ggZGNyb3V0ZXIgZm9yIE9uZWJveCBzZXJ2aWNlcyJ9CiAgICAgICAgICAgICAgLmRhdGE9JHt0fQogICAgICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHthPT4oe05hbWU6d2AKICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lIj4ke2EubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAke2EuZG9tYWluTmFtZT93YDxkaXYgY2xhc3M9Im11dGVkIj4ke2EuZG9tYWluTmFtZX08L2Rpdj5gOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGAsVHlwZTp3YDxzcGFuIGNsYXNzPSJiYWRnZSI+JHthLnR5cGV9PC9zcGFuPmAsVmFsdWU6d2A8c3BhbiBjbGFzcz0idmFsdWUiPiR7YS52YWx1ZXx8Ii0ifTwvc3Bhbj5gLFN0YXR1czp3YDxzcGFuIGNsYXNzPSR7YS5zdGF0dXM9PT0ibWlzc2luZyI/Im1pc3NpbmciOiIifT4ke2Euc3RhdHVzfTwvc3Bhbj5gLFNlcnZpY2U6YS5zZXJ2aWNlTmFtZXx8YS5hcHBJZHx8Ii0ifSl9CiAgICAgICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJvdGF0ZUN3Iix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKCk9Pnthd2FpdCBaYS5kaXNwYXRjaEFjdGlvbih5Y3QsbnVsbCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJWaWV3IHNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6Ym94ZXMiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKCk9PntkbC5uYXZpZ2F0ZVRvVmlldygic2VydmljZXMiKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6Ik1hbmFnZSBpbiBkY3JvdXRlciIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uUmVsZXZhbmN5Q2hlY2tGdW5jOmkoYT0+ISFhLm1hbmFnZVVybCwiYWN0aW9uUmVsZXZhbmN5Q2hlY2tGdW5jIiksYWN0aW9uRnVuYzppKGFzeW5jIGE9PnthLml0ZW0ubWFuYWdlVXJsJiZnbG9iYWxUaGlzLm9wZW4oYS5pdGVtLm1hbmFnZVVybCwiX2JsYW5rIiwibm9vcGVuZXIiKX0sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICAgICAgYDp3YDxkaXYgY2xhc3M9ImVtcHR5Ij5ObyBnYXRld2F5IEROUyByZWNvcmRzIGZvdW5kLiBDb25maWd1cmUgYSBkY3JvdXRlciBnYXRld2F5IGluIFNldHRpbmdzLjwvZGl2PmB9CiAgICBgfX07Vng9UmkoZkNhKSxpMXQ9bmV3IFdlYWtNYXAsUnQoVngsNCwibmV0d29ya1N0YXRlIixoQ2EsVDQsaTF0KSxUND1SdChWeCwwLCJPYlZpZXdEbnNSZWNvcmRzIixtQ2EsVDQpLGkoVDQsIk9iVmlld0Ruc1JlY29yZHMiKSx2aShUNCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgCiAgICAgIC5uYW1lIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgICAudmFsdWUgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IG92ZXJmbG93LXdyYXA6IGFueXdoZXJlOyB9CiAgICAgIC5tdXRlZCB7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjNzE3MTdhKTsgZm9udC1zaXplOiAxM3B4OyB9CiAgICAgIC5iYWRnZSB7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBwYWRkaW5nOiAzcHggOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjZjRmNGY1KTsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgIC5taXNzaW5nIHsgY29sb3I6ICNkYzI2MjY7IH0KICAgICAgLmVtcHR5IHsgcGFkZGluZzogMzJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IH0KICAgIGBdKSxpdChWeCwxLFQ0KTtyMXQ9VDR9KTt2YXIga0NhPXt9O3l0KGtDYSx7T2JWaWV3UmVnaXN0cmllczooKT0+bDF0fSk7dmFyIHZDYSx4Q2EseUNhLHdDYSx0cCxvMXQsbjF0LGFwLGwxdCxjMXQ9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7YXdhaXQgZzcoKTtwZSgpO3dDYT1bbmUoIm9iLXZpZXctcmVnaXN0cmllcyIpXTthcD1jbGFzcyBhcCBleHRlbmRzKHlDYT13ZSx4Q2E9W1koKV0sdkNhPVtZKCldLHlDYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsbzF0LGl0KHRwLDgsdGhpcyx7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9KSksaXQodHAsMTEsdGhpcyk7ZWEodGhpcyxuMXQsaXQodHAsMTIsdGhpcywib25lYm94IikpLGl0KHRwLDE1LHRoaXMpO2xldCB0PXEyLnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMucmVnaXN0cmllc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBxMi5kaXNwYXRjaEFjdGlvbihEMmUsbnVsbCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFRhYj09PSJleHRlcm5hbCI/dGhpcy5yZW5kZXJFeHRlcm5hbFZpZXcoKTp0aGlzLnJlbmRlck9uZWJveFZpZXcoKX1yZW5kZXJPbmVib3hWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5SZWdpc3RyaWVzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQKICAgICAgICAuc3RhdHVzPSR7InJ1bm5pbmcifQogICAgICAgIC5yZWdpc3RyeVVybD0keyJsb2NhbGhvc3Q6NTAwMCJ9CiAgICAgICAgQG1hbmFnZS10b2tlbnM9JHsoKT0+e2RsLm5hdmlnYXRlVG9WaWV3KCJ0b2tlbnMiKX19CiAgICAgID48L3N6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQ+CiAgICBgfXJlbmRlckV4dGVybmFsVmlldygpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RXh0ZXJuYWwgUmVnaXN0cmllczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbXX0KICAgICAgICBAYWRkPSR7dD0+e2NvbnNvbGUubG9nKCJBZGQgZXh0ZXJuYWwgcmVnaXN0cnk6Iix0LmRldGFpbCl9fQogICAgICA+PC9zei1yZWdpc3RyeS1leHRlcm5hbC12aWV3PgogICAgYH19O3RwPVJpKHlDYSksbzF0PW5ldyBXZWFrTWFwLG4xdD1uZXcgV2Vha01hcCxSdCh0cCw0LCJyZWdpc3RyaWVzU3RhdGUiLHhDYSxhcCxvMXQpLFJ0KHRwLDQsImN1cnJlbnRUYWIiLHZDYSxhcCxuMXQpLGFwPVJ0KHRwLDAsIk9iVmlld1JlZ2lzdHJpZXMiLHdDYSxhcCksaShhcCwiT2JWaWV3UmVnaXN0cmllcyIpLHZpKGFwLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMseW8sSmBgXSksaXQodHAsMSxhcCk7bDF0PWFwfSk7dmFyIHpDYT17fTt5dCh6Q2Ese09iVmlld1Rva2VuczooKT0+dTF0fSk7dmFyIFNDYSxfQ2EsTUNhLFV4LGQxdCwkNCx1MXQscDF0PWcoYXN5bmMoKT0+e2xsKCk7QjIoKTthd2FpdCBhMSgpO3BlKCk7TUNhPVtuZSgib2Itdmlldy10b2tlbnMiKV07JDQ9Y2xhc3MgJDQgZXh0ZW5kcyhfQ2E9d2UsU0NhPVtZKCldLF9DYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO2VhKHRoaXMsZDF0LGl0KFV4LDgsdGhpcyx7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9KSksaXQoVXgsMTEsdGhpcyk7bGV0IHQ9cTIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5yZWdpc3RyaWVzU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHEyLmRpc3BhdGNoQWN0aW9uKEQyZSxudWxsKX1yZW5kZXIoKXtsZXQgdD10aGlzLnJlZ2lzdHJpZXNTdGF0ZS50b2tlbnMuZmlsdGVyKHI9PnIudHlwZT09PSJnbG9iYWwiKSxhPXRoaXMucmVnaXN0cmllc1N0YXRlLnRva2Vucy5maWx0ZXIocj0+ci50eXBlPT09ImNpIik7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Ub2tlbnM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otdG9rZW5zLXZpZXcKICAgICAgICAuZ2xvYmFsVG9rZW5zPSR7dC5tYXAocj0+KHtpZDpyLmlkLG5hbWU6ci5uYW1lLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OnIuY3JlYXRlZEF0LGxhc3RVc2VkOnIubGFzdFVzZWR9KSl9CiAgICAgICAgLmNpVG9rZW5zPSR7YS5tYXAocj0+KHtpZDpyLmlkLG5hbWU6ci5uYW1lLHR5cGU6ImNpIixzZXJ2aWNlOnIuc2VydmljZSxjcmVhdGVkQXQ6ci5jcmVhdGVkQXQsbGFzdFVzZWQ6ci5sYXN0VXNlZH0pKX0KICAgICAgICBAY3JlYXRlPSR7cj0+e3EyLmRpc3BhdGNoQWN0aW9uKHJ6YSx7dG9rZW46e25hbWU6YG5ldy0ke3IuZGV0YWlsLnR5cGV9LXRva2VuYCx0eXBlOnIuZGV0YWlsLnR5cGUscGVybWlzc2lvbnM6WyJwdWxsIl19fSl9fQogICAgICAgIEBkZWxldGU9JHtyPT57cTIuZGlzcGF0Y2hBY3Rpb24ob3phLHt0b2tlbklkOnIuZGV0YWlsLmlkfHxyLmRldGFpbC50b2tlbklkfSl9fQogICAgICA+PC9zei10b2tlbnMtdmlldz4KICAgIGB9fTtVeD1SaShfQ2EpLGQxdD1uZXcgV2Vha01hcCxSdChVeCw0LCJyZWdpc3RyaWVzU3RhdGUiLFNDYSwkNCxkMXQpLCQ0PVJ0KFV4LDAsIk9iVmlld1Rva2VucyIsTUNhLCQ0KSxpKCQ0LCJPYlZpZXdUb2tlbnMiKSx2aSgkNCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLHlvLEpgYF0pLGl0KFV4LDEsJDQpO3UxdD0kNH0pO3ZhciBMQ2E9e307eXQoTENhLHtPYlZpZXdTZXR0aW5nczooKT0+bTF0fSk7dmFyIENDYSxUQ2EsJENhLERDYSxzcCxoMXQsZjF0LGlwLG0xdCxnMXQ9Zyhhc3luYygpPT57bGwoKTtCMigpO2F3YWl0IGExKCk7cGUoKTtEQ2E9W25lKCJvYi12aWV3LXNldHRpbmdzIildO2lwPWNsYXNzIGlwIGV4dGVuZHMoJENhPXdlLFRDYT1bWSgpXSxDQ2E9W1koKV0sJENhKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7ZWEodGhpcyxoMXQsaXQoc3AsOCx0aGlzLHtzZXR0aW5nczpudWxsLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDohMSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6bnVsbH0pKSxpdChzcCwxMSx0aGlzKTtlYSh0aGlzLGYxdCxpdChzcCwxMix0aGlzLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9KSksaXQoc3AsMTUsdGhpcyk7bGV0IHQ9c28uc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5zZXR0aW5nc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpO2xldCBhPVFpLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMubG9naW5TdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChhKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgc28uZGlzcGF0Y2hBY3Rpb24od2N0LG51bGwpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+U2V0dGluZ3M8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAke3RoaXMucmVuZGVyQWRtaW5VaVNldHRpbmdzKCl9CiAgICAgICR7dGhpcy5yZW5kZXJFeHRlcm5hbEdhdGV3YXlTZXR0aW5ncygpfQogICAgICA8c3otc2V0dGluZ3MtdmlldwogICAgICAgIC5zZXR0aW5ncz0ke3RoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5nc3x8e2RhcmtNb2RlOiEwLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGFkbWluVWlEb21haW46IiIsZGNyb3V0ZXJNb2RlOiJtYW5hZ2VkIixkY3JvdXRlck1hbmFnZWRJbWFnZToiY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL2Rjcm91dGVyOmxhdGVzdCIsZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydDozMzAwLGRjcm91dGVyTWFuYWdlZEh0dHBQb3J0OjgwLGRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydDo0NDMsZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcjoiLi8ubm9naXQvZGNyb3V0ZXItZGF0YSIsZGNyb3V0ZXJHYXRld2F5Q2xpZW50SWQ6IiIsZGNyb3V0ZXJXb3JrSG9zdGVySWQ6IiIsYXV0b1JlbmV3Q2VydHM6ITEscmVuZXdhbFRocmVzaG9sZDozMCxhY21lRW1haWw6IiIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiExfX0KICAgICAgICAuY3VycmVudFVzZXI9JHt0aGlzLmxvZ2luU3RhdGUuaWRlbnRpdHk/LnVzZXJuYW1lfHwiYWRtaW4ifQogICAgICAgIEBzZXR0aW5nLWNoYW5nZT0ke3Q9PntsZXR7a2V5OmEsdmFsdWU6cn09dC5kZXRhaWw7c28uZGlzcGF0Y2hBY3Rpb24oa0ose3NldHRpbmdzOntbYV06cn19KX19CiAgICAgICAgQHNhdmU9JHt0PT57c28uZGlzcGF0Y2hBY3Rpb24oa0ose3NldHRpbmdzOnQuZGV0YWlsfSl9fQogICAgICAgIEBjaGFuZ2UtcGFzc3dvcmQ9JHt0PT57Y29uc29sZS5sb2coIkNoYW5nZSBwYXNzd29yZCByZXF1ZXN0ZWQ6Iix0LmRldGFpbCl9fQogICAgICAgIEByZXNldD0keygpPT57c28uZGlzcGF0Y2hBY3Rpb24od2N0LG51bGwpfX0KICAgICAgPjwvc3otc2V0dGluZ3Mtdmlldz4KICAgIGB9cmVuZGVyQWRtaW5VaVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iZ2F0ZXdheS1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktdGl0bGUiPk9uZWJveCBBZG1pbiBVSTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktc3VidGl0bGUiPkNvbmZpZ3VyZSB0aGUgcHVibGljIGhvc3RuYW1lIGZvciB0aGlzIE9uZWJveCBkYXNoYm9hcmQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWNvbnRlbnQiPgogICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiYWRtaW5VaURvbWFpbiIsIkFkbWluIFVJIERvbWFpbiIsdD8uYWRtaW5VaURvbWFpbnx8IiIsIkV4YW1wbGU6IG9uZWJveC5leGFtcGxlLmNvbS4gTGVhdmUgZW1wdHkgdG8gZGlzYWJsZSB0aGUgcHVibGljIEFkbWluIFVJIHJvdXRlLiIpfQogICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlSZWFkb25seSgiTG9jYWwgVGFyZ2V0IiwiT25lYm94IE9wc1NlcnZlciBvbiBwb3J0IDMwMDAiLCJUaGUgZXh0ZXJuYWwgZ2F0ZXdheSBmb3J3YXJkcyB0byBTbWFydFByb3h5LCB3aGljaCBmb3J3YXJkcyB0aGlzIGhvc3RuYW1lIHRvIHRoZSBPbmVib3ggQWRtaW4gVUkuIil9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJnYXRld2F5LWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiB0eXBlPSJidXR0b24iIEBjbGljaz0keygpPT50aGlzLnNhdmVBZG1pblVpU2V0dGluZ3MoKX0+CiAgICAgICAgICAgIFNhdmUgQWRtaW4gVUkgRG9tYWluCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckV4dGVybmFsR2F0ZXdheVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzLGE9dD8uZGNyb3V0ZXJNb2RlfHwibWFuYWdlZCI7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJnYXRld2F5LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS10aXRsZSI+ZGNyb3V0ZXIgR2F0ZXdheTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktc3VidGl0bGUiPlJ1biBhIGxvY2FsIG1hbmFnZWQgZGNyb3V0ZXIgb3IgZGVsZWdhdGUgcm91dGluZyB0byBhbiBleHRlcm5hbCBkY3JvdXRlcjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktbW9kZS1yb3ciPgogICAgICAgICAgJHt0aGlzLnJlbmRlck1vZGVCdXR0b24oIm1hbmFnZWQiLCJNYW5hZ2VkIExvY2FsIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJleHRlcm5hbCIsIkV4dGVybmFsIGRjcm91dGVyIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJkaXNhYmxlZCIsIkRpc2FibGVkIixhKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke2E9PT0ibWFuYWdlZCI/dGhpcy5yZW5kZXJNYW5hZ2VkR2F0ZXdheVN0YXR1cygpOm51bGx9CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1jb250ZW50Ij4KICAgICAgICAgICR7YT09PSJtYW5hZ2VkIj93YAogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlck1hbmFnZWRJbWFnZSIsImRjcm91dGVyIEltYWdlIix0Py5kY3JvdXRlck1hbmFnZWRJbWFnZXx8ImNvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9kY3JvdXRlcjpsYXRlc3QiLCJPQ0kgaW1hZ2UgdXNlZCBmb3IgdGhlIG1hbmFnZWQgbG9jYWwgZ2F0ZXdheS4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkRGF0YURpciIsIkRhdGEgRGlyZWN0b3J5Iix0Py5kY3JvdXRlck1hbmFnZWREYXRhRGlyfHwiLi8ubm9naXQvZGNyb3V0ZXItZGF0YSIsIkhvc3QgZGlyZWN0b3J5IG1vdW50ZWQgaW50byB0aGUgZGNyb3V0ZXIgY29udGFpbmVyLiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlck1hbmFnZWRPcHNQb3J0IiwiTG9jYWwgT3BzIFBvcnQiLFN0cmluZyh0Py5kY3JvdXRlck1hbmFnZWRPcHNQb3J0fHwzMzAwKSwiQm91bmQgdG8gMTI3LjAuMC4xIGZvciBPbmVib3ggdG8gY2FsbCBkY3JvdXRlciBBUElzLiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlck1hbmFnZWRIdHRwUG9ydCIsIlB1YmxpYyBIVFRQIFBvcnQiLFN0cmluZyh0Py5kY3JvdXRlck1hbmFnZWRIdHRwUG9ydHx8ODApLCJIb3N0IHBvcnQgb3duZWQgYnkgZGNyb3V0ZXIgZm9yIEhUVFAgaW5ncmVzcy4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0IiwiUHVibGljIEhUVFBTIFBvcnQiLFN0cmluZyh0Py5kY3JvdXRlck1hbmFnZWRIdHRwc1BvcnR8fDQ0MyksIkhvc3QgcG9ydCBvd25lZCBieSBkY3JvdXRlciBmb3IgSFRUUFMgaW5ncmVzcy4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlSZWFkb25seSgiR2F0ZXdheSBDbGllbnQgSUQiLHQ/LmRjcm91dGVyR2F0ZXdheUNsaWVudElkfHx0Py5kY3JvdXRlcldvcmtIb3N0ZXJJZHx8IkNyZWF0ZWQgd2hlbiBtYW5hZ2VkIGRjcm91dGVyIHN0YXJ0cyIsIkRpYWdub3N0aWMgb25seS4gT25lYm94IG1hbmFnZXMgdGhpcyBsb2NhbCBjbGllbnQgYXV0b21hdGljYWxseS4iKX0KICAgICAgICAgIGA6YT09PSJleHRlcm5hbCI/d2AKICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJHYXRld2F5VXJsIiwiR2F0ZXdheSBVUkwiLHQ/LmRjcm91dGVyR2F0ZXdheVVybHx8IiIsIkJhc2UgVVJMIG9mIHRoZSBkY3JvdXRlciBPcHNTZXJ2ZXIuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyR2F0ZXdheUFwaVRva2VuIiwiQVBJIFRva2VuIix0Py5kY3JvdXRlckdhdGV3YXlBcGlUb2tlbnx8IiIsIlJlcXVpcmVzIGdhdGV3YXktY2xpZW50IGFjY2VzcyBpbiBkY3JvdXRlci4iLCEwKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlSZWFkb25seSgiR2F0ZXdheSBDbGllbnQgSUQiLHQ/LmRjcm91dGVyR2F0ZXdheUNsaWVudElkfHx0Py5kY3JvdXRlcldvcmtIb3N0ZXJJZHx8IkRlcml2ZWQgZnJvbSB0b2tlbiIsIkNvbmZpZ3VyZSB0aGlzIGluIGRjcm91dGVyIEdhdGV3YXkgQ2xpZW50cywgbm90IGluIE9uZWJveC4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJUYXJnZXRIb3N0IiwiVGFyZ2V0IEhvc3QiLHQ/LmRjcm91dGVyVGFyZ2V0SG9zdHx8IiIsIkRlZmF1bHRzIHRvIHRoZSBjb25maWd1cmVkIHNlcnZlciBJUCB3aGVuIGVtcHR5LiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlclRhcmdldFBvcnQiLCJUYXJnZXQgUG9ydCIsU3RyaW5nKHQ/LmRjcm91dGVyVGFyZ2V0UG9ydHx8ODApLCJJbnRlcm5hbCBIVFRQIHBvcnQgZGNyb3V0ZXIgZm9yd2FyZHMgdG8uIil9CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktZGlzYWJsZWQiPmRjcm91dGVyIHJvdXRlIGRlbGVnYXRpb24gaXMgZGlzYWJsZWQuIE9uZWJveCB3aWxsIGtlZXAgdXNpbmcgaXRzIGxvY2FsIFNtYXJ0UHJveHkgZGlyZWN0bHkuPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZ2F0ZXdheS1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgdHlwZT0iYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKX0+CiAgICAgICAgICAgIFNhdmUgZGNyb3V0ZXIgU2V0dGluZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyTW9kZUJ1dHRvbih0LGEscil7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0iZ2F0ZXdheS1tb2RlLWJ1dHRvbiAke3I9PT10PyJhY3RpdmUiOiIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy51cGRhdGVHYXRld2F5RHJhZnQoImRjcm91dGVyTW9kZSIsdCl9CiAgICAgID4ke2F9PC9idXR0b24+CiAgICBgfXJlbmRlck1hbmFnZWRHYXRld2F5U3RhdHVzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLm1hbmFnZWREY1JvdXRlclN0YXR1cyxhPXQ/LnJ1bm5pbmc/dC5oZWFsdGh5PyJSdW5uaW5nIjoiU3RhcnRpbmciOiJTdG9wcGVkIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1zdGF0dXMtcm93Ij4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1zdGF0dXMtbGFiZWwiPk1hbmFnZWQgZGNyb3V0ZXI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLXZhbHVlIj4ke2F9JHt0Py5nYXRld2F5VXJsP2AgYXQgJHt0LmdhdGV3YXlVcmx9YDoiIn08L2Rpdj4KICAgICAgICAgICR7dD8ubWVzc2FnZT93YDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLWVycm9yIj4ke3QubWVzc2FnZX08L2Rpdj5gOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1hY3Rpb25zIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdGFydCJ9IC50eXBlPSR7ImRlZmF1bHQifSBAY2xpY2s9JHsoKT0+c28uZGlzcGF0Y2hBY3Rpb24odXphLG51bGwpfT48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIC50ZXh0PSR7IlJlc3RhcnQifSAudHlwZT0keyJkZWZhdWx0In0gQGNsaWNrPSR7KCk9PnNvLmRpc3BhdGNoQWN0aW9uKGh6YSxudWxsKX0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdG9wIn0gLnR5cGU9JHsiZGVmYXVsdCJ9IEBjbGljaz0keygpPT5zby5kaXNwYXRjaEFjdGlvbihwemEsbnVsbCl9PjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJHYXRld2F5SW5wdXQodCxhLHIsbixvPSExKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1maWVsZCAke3Q9PT0iZGNyb3V0ZXJHYXRld2F5VXJsInx8dD09PSJhZG1pblVpRG9tYWluIj8iZnVsbCI6IiJ9Ij4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAua2V5PSR7dH0KICAgICAgICAgIC5sYWJlbD0ke2F9CiAgICAgICAgICAudmFsdWU9JHtyfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7bn0KICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0ke299CiAgICAgICAgICBAaW5wdXQ9JHtsPT50aGlzLnVwZGF0ZUdhdGV3YXlEcmFmdCh0LGwudGFyZ2V0LnZhbHVlKX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJHYXRld2F5UmVhZG9ubHkodCxhLHIpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXJlYWRvbmx5Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXJlYWRvbmx5LWxhYmVsIj4ke3R9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1yZWFkb25seS12YWx1ZSI+JHthfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktcmVhZG9ubHktaGludCI+JHtyfTwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9dXBkYXRlR2F0ZXdheURyYWZ0KHQsYSl7bGV0IHI9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzfHx7fSxvPW5ldyBTZXQoWyJkY3JvdXRlclRhcmdldFBvcnQiLCJkY3JvdXRlck1hbmFnZWRPcHNQb3J0IiwiZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnQiLCJkY3JvdXRlck1hbmFnZWRIdHRwc1BvcnQiXSkuaGFzKHQpP051bWJlcihhKXx8MDphO3RoaXMuc2V0dGluZ3NTdGF0ZT17Li4udGhpcy5zZXR0aW5nc1N0YXRlLHNldHRpbmdzOnsuLi5yLFt0XTpvfX19YXN5bmMgc2F2ZUV4dGVybmFsR2F0ZXdheVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3QmJihhd2FpdCBzby5kaXNwYXRjaEFjdGlvbihrSix7c2V0dGluZ3M6e2Rjcm91dGVyTW9kZTp0LmRjcm91dGVyTW9kZXx8Im1hbmFnZWQiLGRjcm91dGVyTWFuYWdlZEltYWdlOnQuZGNyb3V0ZXJNYW5hZ2VkSW1hZ2V8fCJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IixkY3JvdXRlck1hbmFnZWRPcHNQb3J0Ok51bWJlcih0LmRjcm91dGVyTWFuYWdlZE9wc1BvcnQpfHwzMzAwLGRjcm91dGVyTWFuYWdlZEh0dHBQb3J0Ok51bWJlcih0LmRjcm91dGVyTWFuYWdlZEh0dHBQb3J0KXx8ODAsZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0Ok51bWJlcih0LmRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCl8fDQ0MyxkY3JvdXRlck1hbmFnZWREYXRhRGlyOnQuZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcnx8Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLGRjcm91dGVyR2F0ZXdheVVybDp0LmRjcm91dGVyR2F0ZXdheVVybHx8IiIsZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW46dC5kY3JvdXRlckdhdGV3YXlBcGlUb2tlbnx8IiIsZGNyb3V0ZXJUYXJnZXRIb3N0OnQuZGNyb3V0ZXJUYXJnZXRIb3N0fHwiIixkY3JvdXRlclRhcmdldFBvcnQ6TnVtYmVyKHQuZGNyb3V0ZXJUYXJnZXRQb3J0KXx8ODB9fSksYXdhaXQgc28uZGlzcGF0Y2hBY3Rpb24oZHphLG51bGwpKX1hc3luYyBzYXZlQWRtaW5VaVNldHRpbmdzKCl7bGV0IHQ9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3QmJmF3YWl0IHNvLmRpc3BhdGNoQWN0aW9uKGtKLHtzZXR0aW5nczp7YWRtaW5VaURvbWFpbjp0LmFkbWluVWlEb21haW58fCIifX0pfX07c3A9UmkoJENhKSxoMXQ9bmV3IFdlYWtNYXAsZjF0PW5ldyBXZWFrTWFwLFJ0KHNwLDQsInNldHRpbmdzU3RhdGUiLFRDYSxpcCxoMXQpLFJ0KHNwLDQsImxvZ2luU3RhdGUiLENDYSxpcCxmMXQpLGlwPVJ0KHNwLDAsIk9iVmlld1NldHRpbmdzIixEQ2EsaXApLGkoaXAsIk9iVmlld1NldHRpbmdzIiksdmkoaXAsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyx5byxKYAogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmdhdGV3YXktY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtcm93LAogICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktbW9kZS1yb3cgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktbW9kZS1idXR0b24gewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2Q0ZDRkOCIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250OiBpbmhlcml0OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmdhdGV3YXktbW9kZS1idXR0b24uYWN0aXZlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsIiMxNzI1NTQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiI2JmZGJmZSIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktc3RhdHVzLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXN0YXR1cy12YWx1ZSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdGF0dXMtZXJyb3IsCiAgICAgIC5nYXRld2F5LWRpc2FibGVkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNiOTFjMWMiLCIjZmNhNWE1Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktZGlzYWJsZWQgewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWZpZWxkLmZ1bGwgewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXJlYWRvbmx5IHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXJlYWRvbmx5LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM1MjUyNWIiLCIjZDRkNGQ4Iil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seS12YWx1ZSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktcmVhZG9ubHktaGludCB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgIC5nYXRld2F5LWNvbnRlbnQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdKSxpdChzcCwxLGlwKTttMXQ9aXB9KTtsbCgpO2F3YWl0IGExKCk7RngoKTthd2FpdCBnNygpO3BlKCk7dmFyIFBDYSxJQ2EsQUNhLE5DYSxSQ2EsT0NhLEZDYSxCQ2EseXIsYjF0LHYxdCx4MXQseTF0LHcxdCxrMXQ7QkNhPVtuZSgib2ItYXBwLXNoZWxsIildO3ZhciBnYz1jbGFzcyBnYyBleHRlbmRzKEZDYT13ZSxPQ2E9W1koKV0sUkNhPVtZKCldLE5DYT1bWSgpXSxBQ2E9W1koKV0sSUNhPVtZKCldLFBDYT1bWSgpXSxGQ2Epe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtlYSh0aGlzLGIxdCxpdCh5ciw4LHRoaXMse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0pKSxpdCh5ciwxMSx0aGlzKTtlYSh0aGlzLHYxdCxpdCh5ciwxMix0aGlzLHthY3RpdmVWaWV3OiJkYXNoYm9hcmQiLGFjdGl2ZVN1YnZpZXc6bnVsbCxhdXRvUmVmcmVzaDohMCxyZWZyZXNoSW50ZXJ2YWw6M2U0fSkpLGl0KHlyLDE1LHRoaXMpO2VhKHRoaXMseDF0LGl0KHlyLDE2LHRoaXMse3N0YXR1czpudWxsfSkpLGl0KHlyLDE5LHRoaXMpO2VhKHRoaXMseTF0LGl0KHlyLDIwLHRoaXMsW10pKSxpdCh5ciwyMyx0aGlzKTtlYSh0aGlzLHcxdCxpdCh5ciwyNCx0aGlzLCExKSksaXQoeXIsMjcsdGhpcyk7ZWEodGhpcyxrMXQsaXQoeXIsMjgsdGhpcywiIikpLGl0KHlyLDMxLHRoaXMpO3ZpKHRoaXMsInZpZXdUYWJzIixbe3NsdWc6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFRjdCgpLnRoZW4oKCk9PkN6YSkpLk9iVmlld0Rhc2hib2FyZCkoKX0se3NsdWc6ImFwcHMiLG5hbWU6IkFwcHMiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLHN1YlZpZXdzOlt7c2x1ZzoiYXBwLXN0b3JlIixuYW1lOiJBcHAgU3RvcmUiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBxemEoKS50aGVuKCgpPT5IemEpKS5PYlZpZXdBcHBTdG9yZSkoKX0se3NsdWc6InNlcnZpY2VzIixuYW1lOiJTZXJ2aWNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpib3hlcyIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFpjdCgpLnRoZW4oKCk9PnRDYSkpLk9iVmlld1NlcnZpY2VzKSgpfV19LHtzbHVnOiJuZXR3b3JrIixuYW1lOiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOm5ldHdvcmsiLHN1YlZpZXdzOlt7c2x1ZzoicHJveHkiLG5hbWU6IlByb3h5IixpY29uTmFtZToibHVjaWRlOnJvdXRlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgdDF0KCkudGhlbigoKT0+bkNhKSkuT2JWaWV3TmV0d29yaykoKX0se3NsdWc6ImRvbWFpbnMiLG5hbWU6IkRvbWFpbnMiLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBwQ2EoKS50aGVuKCgpPT51Q2EpKS5PYlZpZXdEb21haW5zKSgpfSx7c2x1ZzoiZG5zLXJlY29yZHMiLG5hbWU6IkROUyBSZWNvcmRzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgYkNhKCkudGhlbigoKT0+Z0NhKSkuT2JWaWV3RG5zUmVjb3JkcykoKX1dfSx7c2x1ZzoicmVnaXN0cnkiLG5hbWU6IlJlZ2lzdHJ5IixpY29uTmFtZToibHVjaWRlOnBhY2thZ2UiLHN1YlZpZXdzOlt7c2x1ZzoicmVnaXN0cmllcyIsbmFtZToiUmVnaXN0cmllcyIsaWNvbk5hbWU6Imx1Y2lkZTpwYWNrYWdlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgYzF0KCkudGhlbigoKT0+a0NhKSkuT2JWaWV3UmVnaXN0cmllcykoKX0se3NsdWc6InRva2VucyIsbmFtZToiVG9rZW5zIixpY29uTmFtZToibHVjaWRlOmtleSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IHAxdCgpLnRoZW4oKCk9PnpDYSkpLk9iVmlld1Rva2VucykoKX1dfSx7c2x1Zzoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgZzF0KCkudGhlbigoKT0+TENhKSkuT2JWaWV3U2V0dGluZ3MpKCl9XSk7dmkodGhpcywicmVzb2x2ZWRWaWV3VGFicyIsW10pO3ZpKHRoaXMsInN1cHByZXNzZWRVcGRhdGVWZXJzaW9uIiwiIik7dmkodGhpcywidXBncmFkZUZsb3dSdW5uaW5nIiwhMSk7ZG9jdW1lbnQudGl0bGU9Ik9uZWJveCI7bGV0IHQ9UWkuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5sb2dpblN0YXRlPW4sdGhpcy51cGRhdGVHbG9iYWxNZXNzYWdlcygpLG4uaXNMb2dnZWRJbiYmYTAuZGlzcGF0Y2hBY3Rpb24oSHgsbnVsbCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpO2xldCBhPWEwLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuc3lzdGVtU3RhdGU9bix0aGlzLnVwZGF0ZUdsb2JhbE1lc3NhZ2VzKCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCByPW1jLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMudWlTdGF0ZT1uLHRoaXMuc3luY0FwcGRhc2hWaWV3KG4uYWN0aXZlVmlldyxuLmFjdGl2ZVN1YnZpZXcpfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChyKX1hc3luYyByZXNvbHZlVmlld1RhYnModCl7cmV0dXJuIFByb21pc2UuYWxsKHQubWFwKGFzeW5jIGE9PntsZXQgcj17c2x1ZzphLnNsdWcsbmFtZTphLm5hbWUsaWNvbk5hbWU6YS5pY29uTmFtZX07cmV0dXJuIGEuZWxlbWVudCYmKHIuZWxlbWVudD1hd2FpdCBhLmVsZW1lbnQpLGEuc3ViVmlld3MmJihyLnN1YlZpZXdzPWF3YWl0IHRoaXMucmVzb2x2ZVZpZXdUYWJzKGEuc3ViVmlld3MpKSxyfSkpfXNsdWdGb3IodCl7cmV0dXJuIHQuc2x1Zz8/dC5uYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKX1maW5kUGFyZW50KHQpe3JldHVybiB0aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChhPT5hLnN1YlZpZXdzPy5pbmNsdWRlcyh0KSl9ZmluZFZpZXdCeVNsdWcodCxhKXtsZXQgcj10aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT10KTtpZihyKXJldHVybiBhJiZyLnN1YlZpZXdzP3Iuc3ViVmlld3MuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT1hKT8/cjpyfWdldCBjdXJyZW50Vmlld1RhYigpe2lmKHRoaXMucmVzb2x2ZWRWaWV3VGFicy5sZW5ndGghPT0wKXJldHVybiB0aGlzLmZpbmRWaWV3QnlTbHVnKHRoaXMudWlTdGF0ZS5hY3RpdmVWaWV3LHRoaXMudWlTdGF0ZS5hY3RpdmVTdWJ2aWV3KT8/dGhpcy5yZXNvbHZlZFZpZXdUYWJzWzBdfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1zaW1wbGUtbG9naW4gbmFtZT0iT25lYm94Ij4KICAgICAgICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgICAgICAgIG5hbWU9Ik9uZWJveCIKICAgICAgICAgICAgLnZpZXdUYWJzPSR7dGhpcy5yZXNvbHZlZFZpZXdUYWJzfQogICAgICAgICAgICAuc2VsZWN0ZWRWaWV3PSR7dGhpcy5jdXJyZW50Vmlld1RhYn0KICAgICAgICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7dGhpcy5nbG9iYWxNZXNzYWdlc30KICAgICAgICAgID4KICAgICAgICAgIDwvZGVlcy1zaW1wbGUtYXBwZGFzaD4KICAgICAgICA8L2RlZXMtc2ltcGxlLWxvZ2luPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5yZXNvbHZlZFZpZXdUYWJzPWF3YWl0IHRoaXMucmVzb2x2ZVZpZXdUYWJzKHRoaXMudmlld1RhYnMpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IHQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWxvZ2luIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJsb2dpbiIsbj0+e3RoaXMubG9naW4obi5kZXRhaWwuZGF0YS51c2VybmFtZSxuLmRldGFpbC5kYXRhLnBhc3N3b3JkKX0pO2xldCBhPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1hcHBkYXNoIik7aWYoYSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigidmlldy1zZWxlY3QiLG49PntsZXQgbz1uLmRldGFpbC52aWV3LGw9dGhpcy5maW5kUGFyZW50KG8pLHA9bWMuZ2V0U3RhdGUoKTtpZihsKXtsZXQgZD10aGlzLnNsdWdGb3IobCksdT10aGlzLnNsdWdGb3Iobyk7aWYocC5hY3RpdmVWaWV3PT09ZCYmcC5hY3RpdmVTdWJ2aWV3PT09dSlyZXR1cm47ZGwubmF2aWdhdGVUb1ZpZXcoZCx1KX1lbHNle2xldCBkPXRoaXMuc2x1Z0ZvcihvKTtpZihwLmFjdGl2ZVZpZXc9PT1kJiYhcC5hY3RpdmVTdWJ2aWV3KXJldHVybjtkbC5uYXZpZ2F0ZVRvVmlldyhkKX19KSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvZ291dCIsYXN5bmMoKT0+e2F3YWl0IFFpLmRpc3BhdGNoQWN0aW9uKE0yZSxudWxsKX0pKSxhJiZ0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPjApe2xldCBuPW1jLmdldFN0YXRlKCksbz10aGlzLmZpbmRWaWV3QnlTbHVnKG4uYWN0aXZlVmlldyxuLmFjdGl2ZVN1YnZpZXcpfHx0aGlzLnJlc29sdmVkVmlld1RhYnNbMF07YXdhaXQgYS5sb2FkVmlldyhvKX1sZXQgcj1RaS5nZXRTdGF0ZSgpO2lmKHIuaWRlbnRpdHk/Lmp3dClpZihyLmlkZW50aXR5LmV4cGlyZXNBdD5EYXRlLm5vdygpKXt0aGlzLmxvZ2luU3RhdGU9cix0JiZhd2FpdCB0LnN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKTt0cnl7bGV0IG89YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFN5c3RlbVN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHl9KTthMC5zZXRTdGF0ZSh7c3RhdHVzOm8uc3RhdHVzfSl9Y2F0Y2gobil7Y29uc29sZS53YXJuKCJTdG9yZWQgc2Vzc2lvbiBpbnZhbGlkLCByZXR1cm5pbmcgdG8gbG9naW46IixuKSxhd2FpdCBRaS5kaXNwYXRjaEFjdGlvbihNMmUsbnVsbCksdCYmd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfX1lbHNlIGF3YWl0IFFpLmRpc3BhdGNoQWN0aW9uKE0yZSxudWxsKX1hc3luYyBsb2dpbih0LGEpe2xldCByPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLG49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWxvZ2luIiksbz1uPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtvJiZvLnNldFN0YXR1cygicGVuZGluZyIsIkxvZ2dpbmcgaW4uLi4iKSwoYXdhaXQgUWkuZGlzcGF0Y2hBY3Rpb24oR01hLHt1c2VybmFtZTp0LHBhc3N3b3JkOmF9KSkuaWRlbnRpdHk/KG8mJm8uc2V0U3RhdHVzKCJzdWNjZXNzIiwiTG9nZ2VkIGluISIpLG4mJmF3YWl0IG4uc3dpdGNoVG9TbG90dGVkQ29udGVudCgpLGF3YWl0IGEwLmRpc3BhdGNoQWN0aW9uKEh4LG51bGwpKTpvJiYoby5zZXRTdGF0dXMoImVycm9yIiwiTG9naW4gZmFpbGVkISIpLGF3YWl0IHIuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLG8ucmVzZXQoKSl9dXBkYXRlR2xvYmFsTWVzc2FnZXMoKXtsZXQgdD10aGlzLnN5c3RlbVN0YXRlLnN0YXR1cz8ub25lYm94LnVwZGF0ZTtpZighdGhpcy5sb2dpblN0YXRlLmlzTG9nZ2VkSW58fCF0Py51cGRhdGVBdmFpbGFibGV8fCF0LmxhdGVzdFZlcnNpb258fHQubGF0ZXN0VmVyc2lvbj09PXRoaXMuc3VwcHJlc3NlZFVwZGF0ZVZlcnNpb24pe3RoaXMuZ2xvYmFsTWVzc2FnZXM9W107cmV0dXJufXRoaXMuZ2xvYmFsTWVzc2FnZXM9W3tpZDpgb25lYm94LXVwZGF0ZS0ke3QubGF0ZXN0VmVyc2lvbn1gLHR5cGU6ImluZm8iLGljb246Imx1Y2lkZTpkb3dubG9hZCIsbWVzc2FnZTpgT25lYm94ICR7dC5sYXRlc3RWZXJzaW9ufSBpcyBhdmFpbGFibGUuIEN1cnJlbnQgdmVyc2lvbjogJHt0LmN1cnJlbnRWZXJzaW9ufS5gLGRpc21pc3NpYmxlOiExLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+dGhpcy5zdGFydE9uZWJveFVwZ3JhZGVGbG93KCksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOmkoKCk9PnRoaXMub3BlblVwZGF0ZVVybCh0LmNoYW5nZWxvZ1VybHx8dC5yZWxlYXNlVXJsKSwiYWN0aW9uIil9LHtuYW1lOiJMYXRlciIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsYWN0aW9uOmkoKCk9Pnt0aGlzLnN1cHByZXNzZWRVcGRhdGVWZXJzaW9uPXQubGF0ZXN0VmVyc2lvbnx8IiIsdGhpcy51cGRhdGVHbG9iYWxNZXNzYWdlcygpfSwiYWN0aW9uIil9XX1dfWFzeW5jIHN0YXJ0T25lYm94VXBncmFkZUZsb3coKXtpZih0aGlzLnVwZ3JhZGVGbG93UnVubmluZylyZXR1cm47bGV0IHQ9UWkuZ2V0U3RhdGUoKS5pZGVudGl0eSxhPXRoaXMuc3lzdGVtU3RhdGUuc3RhdHVzPy5vbmVib3gudXBkYXRlO2lmKCF0fHwhYT8ubGF0ZXN0VmVyc2lvbilyZXR1cm47dGhpcy51cGdyYWRlRmxvd1J1bm5pbmc9ITA7bGV0IHI9YXdhaXQgZFEuRGVlc1VwZGF0ZXIuY3JlYXRlQW5kU2hvdyh7Y3VycmVudFZlcnNpb246YS5jdXJyZW50VmVyc2lvbix1cGRhdGVkVmVyc2lvbjphLmxhdGVzdFZlcnNpb24sbW9yZUluZm9Vcmw6YS5yZWxlYXNlVXJsLGNoYW5nZWxvZ1VybDphLmNoYW5nZWxvZ1VybCxzdWNjZXNzQWN0aW9uOiJyZWxvYWQiLHN1Y2Nlc3NEZWxheU1zOjNlNCxzdWNjZXNzQWN0aW9uTGFiZWw6IlJlbG9hZGluZyBPbmVib3ggVUkifSk7dHJ5e3IudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6MTAsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OiJSZXF1ZXN0aW5nIHVwZ3JhZGUuLi4iLHRlcm1pbmFsTGluZXM6WyJSZXF1ZXN0aW5nIE9uZWJveCB1cGdyYWRlIl19KTtsZXQgbz1hd2FpdCBuZXcgZ3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RhcnRPbmVib3hVcGdyYWRlIikuZmlyZSh7aWRlbnRpdHk6dH0pO2lmKCFvLnVwZ3JhZGUuYWNjZXB0ZWQpe3IubWFya1VwZGF0ZUVycm9yKG8udXBncmFkZS5tZXNzYWdlKSxhd2FpdCB0aGlzLmRlbGF5KDVlMyksYXdhaXQgci5kZXN0cm95KCk7cmV0dXJufXIuYXBwZW5kUHJvZ3Jlc3NMaW5lKG8udXBncmFkZS5tZXNzYWdlKSxvLnVwZ3JhZGUucGlkJiZyLmFwcGVuZFByb2dyZXNzTGluZShgVXBncmFkZSBwcm9jZXNzIFBJRDogJHtvLnVwZ3JhZGUucGlkfWApLG8udXBncmFkZS5sb2dQYXRoJiZyLmFwcGVuZFByb2dyZXNzTGluZShgVXBncmFkZSBsb2c6ICR7by51cGdyYWRlLmxvZ1BhdGh9YCksci51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZTo0NSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6Ikluc3RhbGxlciBzdGFydGVkLi4uIn0pLGF3YWl0IHRoaXMud2FpdEZvck9uZWJveFVwZ3JhZGUocixvLnVwZ3JhZGUudGFyZ2V0VmVyc2lvbix0KSxhd2FpdCByLm1hcmtVcGRhdGVSZWFkeSgpfWNhdGNoKG4pe3IubWFya1VwZGF0ZUVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKG4pKSxhd2FpdCB0aGlzLmRlbGF5KDVlMyksYXdhaXQgci5kZXN0cm95KCl9ZmluYWxseXt0aGlzLnVwZ3JhZGVGbG93UnVubmluZz0hMX19YXN5bmMgd2FpdEZvck9uZWJveFVwZ3JhZGUodCxhLHIpe2xldCBuPXRoaXMubm9ybWFsaXplVmVyc2lvbihhKSxvPURhdGUubm93KCkrOWU0LGw9MDtmb3IodC5hcHBlbmRQcm9ncmVzc0xpbmUoIldhaXRpbmcgZm9yIE9uZWJveCB0byByZXN0YXJ0IHdpdGggdGhlIG5ldyB2ZXJzaW9uIik7RGF0ZS5ub3coKTxvOyl7YXdhaXQgdGhpcy5kZWxheSg1ZTMpLGwrKzt0cnl7bGV0IGQ9YXdhaXQgbmV3IGd0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFN5c3RlbVN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OnJ9KSx1PXRoaXMubm9ybWFsaXplVmVyc2lvbihkLnN0YXR1cy5vbmVib3gudmVyc2lvbik7aWYodC5hcHBlbmRQcm9ncmVzc0xpbmUoYE9uZWJveCBBUEkgYW5zd2VyZWQgd2l0aCAke3V9YCksdT09PW4pe3QudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6MTAwLGluZGV0ZXJtaW5hdGU6ITEsc3RhdHVzVGV4dDpgT25lYm94ICR7bn0gaXMgb25saW5lLmB9KTtyZXR1cm59fWNhdGNoe3QuYXBwZW5kUHJvZ3Jlc3NMaW5lKCJPbmVib3ggQVBJIGlzIHJlc3RhcnRpbmcuLi4iKX10LnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOk1hdGgubWluKDk1LDQ1K2wqNSksaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OmBXYWl0aW5nIGZvciBPbmVib3ggJHtufS4uLmB9KX10LmFwcGVuZFByb2dyZXNzTGluZSgiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRoZSB2ZXJzaW9uIGNoZWNrOyByZWxvYWRpbmcgdGhlIFVJIGFueXdheSIpfW9wZW5VcGRhdGVVcmwodCl7d2luZG93Lm9wZW4odCwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpfWFzeW5jIGRlbGF5KHQpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKHQpfWdldEVycm9yTWVzc2FnZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEVycm9yP3QubWVzc2FnZTpTdHJpbmcodCl9bm9ybWFsaXplVmVyc2lvbih0KXtsZXQgYT10LnRyaW0oKTtyZXR1cm4gYS5zdGFydHNXaXRoKCJ2Iik/YTpgdiR7YX1gfXN5bmNBcHBkYXNoVmlldyh0LGEpe2xldCByPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKCFyfHx0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPT09MClyZXR1cm47bGV0IG49dGhpcy5maW5kVmlld0J5U2x1Zyh0LGEpOyFufHxyLnNlbGVjdGVkVmlldz09PW58fHIubG9hZFZpZXcobil9fTt5cj1SaShGQ2EpLGIxdD1uZXcgV2Vha01hcCx2MXQ9bmV3IFdlYWtNYXAseDF0PW5ldyBXZWFrTWFwLHkxdD1uZXcgV2Vha01hcCx3MXQ9bmV3IFdlYWtNYXAsazF0PW5ldyBXZWFrTWFwLFJ0KHlyLDQsImxvZ2luU3RhdGUiLE9DYSxnYyxiMXQpLFJ0KHlyLDQsInVpU3RhdGUiLFJDYSxnYyx2MXQpLFJ0KHlyLDQsInN5c3RlbVN0YXRlIixOQ2EsZ2MseDF0KSxSdCh5ciw0LCJnbG9iYWxNZXNzYWdlcyIsQUNhLGdjLHkxdCksUnQoeXIsNCwibG9naW5Mb2FkaW5nIixJQ2EsZ2MsdzF0KSxSdCh5ciw0LCJsb2dpbkVycm9yIixQQ2EsZ2MsazF0KSxnYz1SdCh5ciwwLCJPYkFwcFNoZWxsIixCQ2EsZ2MpLGkoZ2MsIk9iQXBwU2hlbGwiKSx2aShnYywic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLEpgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH0KICAgIGBdKSxpdCh5ciwxLGdjKTt2YXIgRUNhPWdjO0IyKCk7VGN0KCk7WmN0KCk7dDF0KCk7YzF0KCk7cDF0KCk7ZzF0KCk7bGwoKTtwZSgpO2F3YWl0IGc3KCk7ZGwuaW5pdCgpLEczLnJlbmRlcih3YAogIDxvYi1hcHAtc2hlbGw+PC9vYi1hcHAtc2hlbGw+CmAsZG9jdW1lbnQuYm9keSk7Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246CgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvY3NzLXRhZy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvcmVhY3RpdmUtZWxlbWVudC5qczoKbGl0LWh0bWwvbGl0LWh0bWwuanM6CmxpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvc3RhdGUuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2V2ZW50LW9wdGlvbnMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2Jhc2UuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hbGwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzeW5jLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1ub2Rlcy5qczoKbGl0LWh0bWwvYXN5bmMtZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3VudGlsLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLXJlcGxhY2UuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtYXBwZW5kLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpsaXQtaHRtbC9pcy1zZXJ2ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMiBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKc3dlZXQtc2Nyb2xsL3N3ZWV0LXNjcm9sbC5qczoKICAoKiEgQHByZXNlcnZlIHN3ZWV0LXNjcm9sbCB2NC4wLjAgLSB0c3V5b3NoaXdhZGEgfCBNSVQgTGljZW5zZSAqKQogICgqISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZQogICAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZQogICAgICBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIAogICAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICAgIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKICAgICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KICAKICAgICAgU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zCiAgICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKikKCmxpdC1odG1sL3N0YXRpYy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLWhlbHBlcnMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtZWxlbWVudHMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcHJpdmF0ZS1hc3luYy1oZWxwZXJzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2tleWVkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMjEgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZS9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLWJyYW5kcy1zdmctaWNvbnMvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1yZWd1bGFyLXN2Zy1pY29ucy9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucy9pbmRleC5tanM6CiAgKCohCiAgICogRm9udCBBd2Vzb21lIEZyZWUgNy4yLjAgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20KICAgKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKQogICAqIENvcHlyaWdodCAyMDI2IEZvbnRpY29ucywgSW5jLgogICAqKQoKbHVjaWRlL2Rpc3QvZXNtL2RlZmF1bHRBdHRyaWJ1dGVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2NyZWF0ZUVsZW1lbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy9oYXNBMTF5UHJvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9zaGFyZWQvc3JjL3V0aWxzL21lcmdlQ2xhc3Nlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9zaGFyZWQvc3JjL3V0aWxzL3RvQ2FtZWxDYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvdG9QYXNjYWxDYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL3JlcGxhY2VFbGVtZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2EtYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2EtbGFyZ2Utc21hbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWNjZXNzaWJpbGl0eS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hY3Rpdml0eS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9haXItdmVudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9haXJwbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLXNtb2tlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYnVtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWNlbnRlci1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWNlbnRlci12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1lbmQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWVuZC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtanVzdGlmeS1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXN0YXJ0LWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tc3RhcnQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1zcGFjZS1iZXR3ZWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1jZW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtc3BhY2UtYmV0d2Vlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbWJ1bGFuY2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbXBlcnNhbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1waG9yYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmNob3IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW5ncnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW5ub3llZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbnRlbm5hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FudmlsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwZXJ0dXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcC13aW5kb3ctbWFjLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcC13aW5kb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS1yZXN0b3JlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcGxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FyY2hpdmUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcm1jaGFpci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcmNoaXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1kb3duLWRhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWxlZnQtZGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctcmlnaHQtZGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXVwLWRhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tMC0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tMS0wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tZnJvbS1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tYS16Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLW5hcnJvdy13aWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi10by1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXRvLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi13aWRlLW5hcnJvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXotYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWxlZnQtZnJvbS1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWxlZnQtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC10by1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWZyb20tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQtdG8tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0xLTAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtMC0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLWEtei5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLWZyb20tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLWZyb20tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLW5hcnJvdy13aWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXdpZGUtbmFycm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXRvLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtei1hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FzdGVyaXNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93cy11cC1mcm9tLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXN0cm9pZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hdC1zaWduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F0b20ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXVkaW8tbGluZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXVkaW8td2F2ZWZvcm0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXdhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXhlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhYnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXhpcy0zZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWNrcGFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1jZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWRvbGxhci1zaWduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWV1cm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtaW5kaWFuLXJ1cGVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWluZm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtamFwYW5lc2UteWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXBlcmNlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1wb3VuZC1zdGVybGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1xdWVzdGlvbi1tYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXN3aXNzLWZyYW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXJ1c3NpYW4tcnVibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtdHVya2lzaC1saXJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFnZ2FnZS1jbGFpbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFsbG9vbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5hbmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuZGFnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS1hcnJvdy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS1hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFua25vdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFyY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXJyZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFzZWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0aC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWNoYXJnaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktZnVsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWxvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LW1lZGl1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS13YXJuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVhbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVha2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZC1kb3VibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWQtc2luZ2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZWYtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWVmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZXItb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLWVsZWN0cmljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtcmluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4taG9yaXpvbnRhbC1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4tdmVydGljYWwtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4tdmVydGljYWwtc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmljZXBzLWZsZXhlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpbmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW5vY3VsYXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jpb2hhemFyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpcmRob3VzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaXRjb2luLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsaW5kcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibG9ja3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmx1ZXRvb3RoLWNvbm5lY3RlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgtc2VhcmNoaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbGQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9tYi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib2x0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hdWRpby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stY29weS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1oZWFkcGhvbmVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1pbWFnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW1hcmtlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW9wZW4tY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1vcGVuLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay11cC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay10eXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb20tYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC1tZXNzYWdlLXNxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3Qtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3ctYXJyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm90dGxlLXdpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JveGVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWNlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFja2V0cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi1jaXJjdWl0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWluLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmljay13YWxsLWZpcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpY2std2FsbC1zaGllbGQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpY2std2FsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmllZmNhc2UtYnVzaW5lc3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLWNvbnZleW9yLWJlbHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLW1lZGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaW5nLXRvLWZyb250Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JydXNoLWNsZWFuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JydXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1Zy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnViYmxlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWctcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVpbGRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVpbGRpbmctMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idXMtZnJvbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhYmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhYmxlLWNhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWtlLXNsaWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxjdWxhdG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2hlY2stMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItZGF5cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1mb2xkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW1pbnVzLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXBsdXMtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1yYW5nZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1zeW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXgtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW1lcmEtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbWVyYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5keS1jYW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbmR5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbmR5LW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5uYWJpcy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FubmFiaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FwdGlvbnMtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcHRpb25zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhci1mcm9udC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLXRheGktZnJvbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyYXZhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJkLXNpbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJyb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS1sb3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLXNlbnNpdGl2ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLXVwcGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc3NldHRlLXRhcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXN0bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2F0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NjdHYtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NjdHYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYXJlYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1kZWNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1pbmNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1zdGFja2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jYW5kbGVzdGljay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4tYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1kZWNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1pbmNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1zdGFja2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1nYW50dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5ldHdvcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4tZGVjcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29sdW1uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29tYmluZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1nYW50dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1waWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtc2NhdHRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1zcGxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2stY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2stbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVmLWhhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVycnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mta2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1iaXNob3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mta25pZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLXBhd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mtcm9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3MtcXVlZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1maXJzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLWxhc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1kb3duLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodC1lbGxpcHNpcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtcmlnaHQtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy11cC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NodXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaWdhcmV0dGUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpZ2FyZXR0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZWNrLWJpZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hldnJvbi1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRpdmlkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZG9sbGFyLXNpZ24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRvdC1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWVsbGlwc2lzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWVxdWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1mYWRpbmctYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWZhZGluZy1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1nYXVnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGFya2luZy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhcmtpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wZXJjZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1waWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wb3VuZC1zdGVybGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcG93ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXF1ZXN0aW9uLW1hcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNsYXNoLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNsYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1zbWFsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc3Rhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc3RvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtdXNlci1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtdXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY3VpdC1ib2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXRydXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xhcHBlcmJvYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtY2xvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWNvcHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWxpc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1wYXN0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtdHlwZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay01Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stOC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay03Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1hcnJvdy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1mYWRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9zZWQtY2FwdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1iYWNrdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWRvd25sb2FkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWRyaXp6bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtaGFpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1mb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtbGlnaHRuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLW1vb24tcmFpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1tb29uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXJhaW4td2luZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtcmFpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zbm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN1bi1yYWluLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN5bmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtc3VuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXVwbG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsdWIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29kZS14bWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2ZmZWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvaW5zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbHVtbnMtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTMtY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbHVtbnMtMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tYmluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21tYW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbXBhc3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tcG9uZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbXB1dGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbmNpZXJnZS1iZWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29uc3RydWN0aW9uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRhY3Qtcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udGFjdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWluZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udHJhc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29va2llLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvb2tpbmctcG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1zbGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5bGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5cmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItZG93bi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItbGVmdC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1sZWZ0LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1yaWdodC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1yaWdodC11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3B1Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NyZWF0aXZlLWNvbW1vbnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3JlZGl0LWNhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3JvaXNzYW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvc3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvc3NoYWlyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2N1Ym9pZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jdXAtc29kYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jdXJyZW5jeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jeWxpbmRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGF0YWJhc2UtYmFja3VwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLXphcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYXRhYmFzZS1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGF0YWJhc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVjaW1hbHMtYXJyb3ctbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kZWNpbWFscy1hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kZWxldGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVzc2VydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtZXRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQtcGVyY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlhbW9uZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2UtMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS01Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2UtNi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rpc2MtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy1hbGJ1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXZpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kbmEtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RuYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvbGxhci1zaWduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb251dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb29yLWNsb3NlZC1sb2NrZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9vci1jbG9zZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9vci1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb3dubG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmFmdGluZy1jb21wYXNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RyaWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RyYW1hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb3BsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJ1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcnVtc3RpY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHVtYmJlbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lYXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFydGgtbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lYXJ0aC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lY2xpcHNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VnZy1mcmllZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lZ2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWdnLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VsbGlwc2lzLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLWFwcHJveGltYXRlbHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWxsaXBzaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXF1YWwtbm90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VyYXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ldGhlcm5ldC1wb3J0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V1cm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXYtY2hhcmdlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leHBhbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXh0ZXJuYWwtbGluay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leWUtY2xvc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V5ZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXllLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZhY3RvcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zhc3QtZm9yd2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZWF0aGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZlcnJpcy13aGVlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZW5jZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWFyY2hpdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1heGlzLTNkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtYmFkZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1ib3gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1icmFjZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4taW5jcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJyYWNlcy1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtcGllLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hlY2stY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZGUtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRpZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1kaWdpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1leGNsYW1hdGlvbi1wb2ludC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWhlYWRwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaW1hZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1pbnB1dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1taW51cy1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLW11c2ljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtb3V0cHV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGVuLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGx1cy1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcXVlc3Rpb24tbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNjYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zZWFyY2gtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2lnbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2xpZGVycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNwcmVhZHNoZWV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc3ltbGluay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXN0YWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdGVybWluYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdHlwZS1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10eXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS11c2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdm9sdW1lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdmlkZW8tY2FtZXJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUteC1jb3JuZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maW5nZXJwcmludC1wYXR0ZXJuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpcmUtZXh0aW5ndWlzaGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gtc3ltYm9sLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlzaGluZy1ob29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYWctb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctcm9kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYWctdHJpYW5nbGUtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLXRyaWFuZ2xlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhbWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2hsaWdodC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhbWUta2luZGxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2hsaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1jb25pY2FsLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1jb25pY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNrLXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtaG9yaXpvbnRhbC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtdmVydGljYWwtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbG93ZXItMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2N1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxvd2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1hcmNoaXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1ib29rbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItY2xvc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWNsb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWdpdC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1naXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1rYW5iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItaW5wdXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW9wZW4tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItb3V0cHV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXJvb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXNlYXJjaC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXN5bWxpbmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXRyZWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXN5bmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zvb3RwcmludHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9ya2xpZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9ybS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb3J3YXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZyYW1lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zyb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1ZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVsbHNjcmVlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1bm5lbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FsbGVyeS10aHVtYm5haWxzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdmVydGljYWwtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FtZXBhZC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbWVwYWQtZGlyZWN0aW9uYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FtZXBhZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYXVnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYXZlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nZW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2hvc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2VvcmdpYW4tbGFyaS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtYnJhbmNoLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWJyYW5jaC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbW1pdC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21taXQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbXBhcmUtYXJyb3dzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21wYXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1mb3JrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1ncmFwaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtbWVyZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LW1lcmdlLWNvbmZsaWN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtYXJyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUtYXJyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1kcmFmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsYXNzLXdhdGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsYXNzZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xvYmUtbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsb2JlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nb2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dwdS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmFkdWF0aW9uLWNhcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmFwZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0yeDIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0zeDIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0zeDMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaXAtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncm91cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ndWl0YXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbWJ1cmdlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW1tZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1jb2lucy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWZpc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1ncmFiLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1oZWxwaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtbWV0YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1wbGF0dGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZGJhZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kc2hha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS1kb3dubG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLXVwbG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWhhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGF0LWdsYXNzZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGF6ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZG1pLXBvcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRpbmctMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRpbmctNS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkcGhvbmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRzZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZHBob25lcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1jcmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1oYW5kc2hha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtcHVsc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWF0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVsaWNvcHRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZXhhZ29uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hpZ2hsaWdodGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hpc3RvcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvcC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9zcGl0YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG90ZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91cmdsYXNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLXBsdWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2Utd2lmaS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ljZS1jcmVhbS1ib3dsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ljZS1jcmVhbS1jb25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2lkLWNhcmQtbGFueWFyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pZC1jYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2Utb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLXBsYXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS11cHNjYWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbXBvcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5ib3gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5kaWFuLXJ1cGVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZmluaXR5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5zcGVjdGlvbi1wYW5lbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGFsaWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRlcmF0aW9uLWNjdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGVyYXRpb24tY3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvamFwYW5lc2UteWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2pveXN0aWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2thbmJhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rYXlhay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXktc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5Ym9hcmQtbXVzaWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5Ym9hcmQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtY2VpbGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLWRlc2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1mbG9vci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLXdhbGwtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLXdhbGwtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW5kLXBsb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFuZG1hcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFuZ3VhZ2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC1taW5pbWFsLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC1taW5pbWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXNzby1zZWxlY3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF1Z2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFzc28ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5ZXJzLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5ZXJzLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1kYXNoYm9hcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5ZXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1ncmlkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1saXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1wYW5lbC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC10ZW1wbGF0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtcGFuZWwtdG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlYWYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVhZnktZ3JlZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVjdGVybi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sZW5zLWNvbmNhdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVucy1jb252ZXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlicmFyeS1iaWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlicmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWZlLWJ1b3kubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlnYXR1cmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlnaHRidWxiLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2h0YnVsYi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluZS1kb3QtcmlnaHQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5lLXN0eWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmUtc3F1aWdnbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay0yLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5rLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hlY2tzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hldnJvbnMtZG93bi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZXZyb25zLXVwLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jb2xsYXBzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWZpbHRlci1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZmlsdGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtaW5kZW50LWRlY3JlYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtaW5kZW50LWluY3JlYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1tdXNpYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LW9yZGVyZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtcmVzdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtdG9kby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXRyZWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC12aWRlby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXItY2lyY2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvYWRlci1waW53aGVlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jYXRlLWZpeGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2F0ZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jYXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2sta2V5aG9sZS1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2sta2V5aG9sZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLW9wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2ctaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9nLW91dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2dzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvbGxpcG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2x1Z2dhZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWduZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLW9wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtcXVlc3Rpb24tbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLXdhcm5pbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWxib3gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlscy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1jaGVjay1pbnNpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLWhvdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tbWludXMtaW5zaWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wbHVzLWluc2lkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4teC1pbnNpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGlubmVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJzLXN0cm9rZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcnRpbmkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWF4aW1pemUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXhpbWl6ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWdhcGhvbmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lZ2FwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVtb3J5LXN0aWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lbnUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVyZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtbW9yZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1xdWVzdGlvbi1tYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXJlcGx5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXdhcm5pbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1jb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kaWZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1oZWFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1sb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLW1vcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcXVvdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcmVwbHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtc2hhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS13YXJuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZXMtc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21ldHJvbm9tZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pYy12b2NhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljcm9jaGlwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pY3Jvc2NvcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljcm93YXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbGVzdG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxrLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbmltaXplLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWluaW1pemUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlycm9yLXJlY3Rhbmd1bGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pcnJvci1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItY2xvdWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItcGF1c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3Itc21hcnRwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXNwZWFrZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXN0b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9vbi1zdGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW90b3JiaWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdW50YWluLXNub3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91bnRhaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci0yLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1wb2ludGVyLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci1iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci1jbGljay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1wb2ludGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtM2QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kaWFnb25hbC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZGlhZ29uYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kb3duLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS11cC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tdXNpYy00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL211c2ljLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi0yLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZXR3b3JrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25ld3NwYXBlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm9uLWJpbmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZWJvb2stdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay10YWJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVib29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVwYWQtdGV4dC1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZXBhZC10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL251dC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbnV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24tYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLXBhdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29tZWdhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29wdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcmJpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcmlnYW1pLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWludC1idWNrZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnQtcm9sbGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50YnJ1c2gtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnRicnVzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWxldHRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS1jbG9zZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5kYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20tZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LWNsb3NlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWxlZnQtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWxlZnQtb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LXJpZ2h0LWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0LWNsb3NlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0LWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1ib3R0b20tZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1jbG9zZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3AtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbHMtbGVmdC1ib3R0b20ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWxzLXJpZ2h0LWJvdHRvbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbHMtdG9wLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFwZXJjbGlwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcmVudGhlc2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcmtpbmctbWV0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGF1c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFydHktcG9wcGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bhdy1wcmludC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYy1jYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi10b29sLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuY2lsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1ydWxlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW50YWdvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZXJjZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlcnNvbi1zdGFuZGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waGlsaXBwaW5lLXBlc28ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtY2FsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1mb3J3YXJkZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtaW5jb21pbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtbWlzc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1vdXRnb2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWFuby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWNrYXhlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWdneS1iYW5rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3ctbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxjcm93LXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsbC1ib3R0bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGluLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waXBldHRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpenphLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsYW5lLWxhbmRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGxhbmUtdGFrZW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGFuZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsdWctMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVnLXphcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9ja2V0LWtuaWZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvZGNhc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb2ludGVyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3Bjb3JuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvcHNpY2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvdW5kLXN0ZXJsaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bvd2VyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcmVzZW50YXRpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJpbnRlci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXItY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJpbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcm9wb3J0aW9ucy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wdXp6bGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJvamVjdG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3B5cmFtaWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcXVvdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcXItY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWJiaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaWF0aW9uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaW8tb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLXJlY2VpdmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLXRvd2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGl1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWluYm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYXRpby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWNlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1ldXJvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtaW5kaWFuLXJ1cGVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtcG91bmQtc3RlcmxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1qYXBhbmVzZS15ZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1ydXNzaWFuLXJ1YmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXN3aXNzLWZyYW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC10dXJraXNoLWxpcmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWNpcmNsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtZWxsaXBzaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWdvZ2dsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3ljbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVkby0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZG8tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZG8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jY3ctZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY2N3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3ctb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmlnZXJhdG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZ2V4Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlbW92ZS1mb3JtYXR0aW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwZWF0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGxhY2UtYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGxhY2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbHktYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGx5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JpYmJvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXdpbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb2NrZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2luZy1jaGFpci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb2xsZXItY29hc3Rlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3NlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS0zZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3LWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3LXNxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jdy1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWN3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdXRlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3V0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3V0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Jvd3MtMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3dzLTQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1bGVyLWRpbWVuc2lvbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1bGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1c3NpYW4tcnVibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FpbGJvYXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FsYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FuZHdpY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2F0ZWxsaXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdGVsbGl0ZS1kaXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdWRpLXJpeWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUtYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NhbGUtM2QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NhbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1iYXJjb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYWxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1leWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1mYWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4taGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tcXItY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FuLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FuLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2hvb2wubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Npc3NvcnMtbGluZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Npc3NvcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nvb3Rlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY3JlZW4tc2hhcmUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjcmVlbi1zaGFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY3JvbGwtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY3JvbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtc2xhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlY3Rpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VuZC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlbmQtdG8tYmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcGFyYXRvci1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcGFyYXRvci12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcnZlci1jcmFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcnZlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXR0aW5ncy0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXBlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXR0aW5ncy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFyZS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWx2aW5nLXVuaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jb2ctY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1lbGxpcHNpcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1oYWxmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1xdWVzdGlvbi1tYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC11c2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGlwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaXAtd2hlZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hvcHBpbmctYmFnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWJhc2tldC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG9wcGluZy1jYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3ZlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG93ZXItaGVhZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJlZGRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJpbmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyaW1wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NocnViLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NodWZmbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbWEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLWhpZ2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLWxvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtbWVkaXVtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC16ZXJvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYXR1cmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbnBvc3QtYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25wb3N0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpcmVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NraXAtYmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9za2lwLWZvcndhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2t1bGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xpZGVycy1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsaWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsaWRlcnMtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21hcnRwaG9uZS1jaGFyZ2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWFydHBob25lLW5mYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWlsZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtYXJ0cGhvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21pbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc25haWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc25vd2ZsYWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NvYXAtZGlzcGVuc2VyLWRyb3BsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc29mYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb2xhci1wYW5lbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb3VwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYXJrbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BhcmtsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlYWtlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGVlY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlbGwtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlbGwtY2hlY2stMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpbmUtcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BsaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Bvb2wubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BvcnQtc2hvZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcHJheS1jYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Byb3V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nwb3RsaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYWN0aXZpdHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LWRvd24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LWRvd24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0LWVudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC1leGl0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hc3Rlcmlzay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29ycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2VudGVybGluZS1kYXNoZWQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2VudGVybGluZS1kYXNoZWQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGVjay1iaWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGV2cm9uLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZXZyb24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbS1jb2RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQta2FuYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtbW91c2UtcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC10b3Atc29saWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kaXZpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWVxdWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1mdW5jdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbGlicmFyeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUta2FuYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1tZW51Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbW91c2UtcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGFya2luZy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhcmtpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGVyY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGF1c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBpLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1waWxjcm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wb3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcmFkaWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcm91bmQtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zaWdtYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc2Npc3NvcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNsYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zcGxpdC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zcGxpdC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zdGFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3Rhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3RvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtdGVybWluYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXVzZXItcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXVzZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtZXhjbHVkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmVzLWludGVyc2VjdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmVzLXN1YnRyYWN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtdW5pdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1aXJjbGUtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlyY2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlycmVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0YW1wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0YXItaGFsZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0ZXAtYmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGVwLWZvcndhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RpY2tlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGV0aG9zY29wZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGlja3ktbm90ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdG9yZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdHJldGNoLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyZXRjaC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdHJpa2V0aHJvdWdoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1YnNjcmlwdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tZGltLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1tZWRpdW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLW1vb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLXNub3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bnJpc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Vuc2V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1cGVyc2NyaXB0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3YXRjaC1ib29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3aXNzLWZyYW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3aXRjaC1jYW1lcmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N5cmluZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jZWxscy1tZXJnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jZWxscy1zcGxpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jb2x1bW5zLXNwbGl0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLW9mLWNvbnRlbnRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLXByb3BlcnRpZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtcm93cy1zcGxpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXQtc21hcnRwaG9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGV0cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFncy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktMy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbmdlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktNS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YXJnZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVsZXNjb3BlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbnQtdHJlZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlcm1pbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXN0LXR1YmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1jZW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVzdC10dWJlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWFsaWduLWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWFsaWduLWp1c3RpZnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWN1cnNvci1pbnB1dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWN1cnNvci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWluaXRpYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1xdW90ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXdyYXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlYXRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aGVybW9tZXRlci1zbm93Zmxha2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXItc3VuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RoZXJtb21ldGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RodW1icy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RodW1icy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1wZXJjZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1zbGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0cy1wbGFuZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpbWVsaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpbWVyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lci1yZXNldC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b2lsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9nZ2xlLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9nZ2xlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvb2wtY2FzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b29sYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvcnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3JuYWRvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvd2VsLXJhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG93ZXItY29udHJvbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3ktYnJpY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhY3Rvci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFmZmljLWNvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQtdHVubmVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYWluLWZyb250Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYWluLXRyYWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYW0tZnJvbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhbnNnZW5kZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhc2gtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVlLWRlY2lkdW91cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVlLXBhbG0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1waW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZWVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZW5kaW5nLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVuZGluZy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJvcGh5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RydWNrLWVsZWN0cmljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RydWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cmtpc2gtbGlyYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90dXJudGFibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHVydGxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwtcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90di1taW5pbWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R5cGUtb3V0bGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90eXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VtYnJlbGxhLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bWJyZWxsYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmRlcmxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5kby0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5mb2xkLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5mb2xkLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuaXZlcnNpdHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5ncm91cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmxpbmstMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bnBsdWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5saW5rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VwbG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLWtleS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQtcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXN0YXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlcnMtcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRlbnNpbHMtY3Jvc3NlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91dGVuc2lscy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92YW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRpbGl0eS1wb2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZhcmlhYmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZhdWx0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlY3Rvci1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmVnYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmVuZXRpYW4tbWFzay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZW51cy1hbmQtbWFycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWJyYXRlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWJyYXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZpZGVvLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlb3RhcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlldy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2xsZXliYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvaWNlbWFpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvbHVtZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvbHVtZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b3RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhbGxldC1jYXJkcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQtbWluaW1hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbHBhcGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhbmQtc3BhcmtsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXJlaG91c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F0Y2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FzaGluZy1tYWNoaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXZlcy1sYWRkZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F5cG9pbnRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dlYmNhbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJob29rLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJob29rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dlaWdodC10aWxkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2hlYXQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3doZWF0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dob2xlLXdvcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1oaWdoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktbG93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktc3luYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLXplcm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZC1hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5lLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93b3JtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dvcmtmbG93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd3JlbmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3gtbGluZS10b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMveC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96YXAtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3phcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtYXF1YXJpdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWFyaWVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1jYW5jZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWNhcHJpY29ybi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtZ2VtaW5pLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1sZW8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWxpYnJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1vcGhpdWNodXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXBpc2Nlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtc2NvcnBpby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtc2FnaXR0YXJpdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXRhdXJ1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtdmlyZ28ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9vbS1pbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b29tLW91dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29uc0FuZEFsaWFzZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vbHVjaWRlLm1qczoKICAoKioKICAgKiBAbGljZW5zZSBsdWNpZGUgdjEuMTQuMCAtIElTQwogICAqCiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAgICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAgICopCgppYmFudG9vbHMvanNuZXh0L2liYW50b29scy5qczoKICAoKiEKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBTYcWhYSBKb3ZhbmnEhwogICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDIuMCBvciB0aGUgTUlUIGxpY2Vuc2UsCiAgICogYXQgeW91ciBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCiAgICogZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KICAgKiBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiBTYcWhYSBKb3ZhbmnEhwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgb3IgTVBMLzIuMAogICAqKQogICgqKgogICAqIFZhbGlkYXRpb24sIGV4dHJhY3Rpb24gYW5kIGNyZWF0aW9uIG9mIElCQU4sIEJCQU4sIEJJQy9TV0lGVCBudW1iZXJzIHBsdXMgc29tZSBvdGhlciBoZWxwZnVsIHN0dWZmCiAgICogQHBhY2thZ2UgRG9jdW1lbnRhdGlvbgogICAqIEBhdXRob3IgU2HFoWEgSm92YW5pxIcKICAgKiBAbW9kdWxlIGliYW50b29scwogICAqIEB2ZXJzaW9uIDQuNS40CiAgICogQGxpY2Vuc2UgTUlUIG9yIE1QTC0yLjAKICAgKiBAcHJlZmVycmVkCiAgICopCiovCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1bmRsZS5qcy5tYXAK" + "contentBase64": "dmFyIFh0dD1PYmplY3QuY3JlYXRlLFl0dD1PYmplY3QuZnJlZXplLEs0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgUXR0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIFhoYT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgUWhhPU9iamVjdC5nZXRQcm90b3R5cGVPZixKaGE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgSnR0PShhLGUpPT4oZT1TeW1ib2xbYV0pP2U6U3ltYm9sLmZvcigiU3ltYm9sLiIrYSksTjU9YT0+e3Rocm93IFR5cGVFcnJvcihhKX07dmFyIGVhdD0oYSxlLHQpPT5lIGluIGE/SzQoYSxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6YVtlXT10O3ZhciBzPShhLGUpPT5LNChhLCJuYW1lIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KTt2YXIgZj0oYSxlKT0+KCk9PihhJiYoZT1hKGE9MCkpLGUpO3ZhciBNbz0oYSxlKT0+KCk9PihlfHxhKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpLGx0PShhLGUpPT57Zm9yKHZhciB0IGluIGUpSzQoYSx0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LGU4YT0oYSxlLHQscik9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgaSBvZiBYaGEoZSkpIUpoYS5jYWxsKGEsaSkmJmkhPT10JiZLNChhLGkse2dldDooKT0+ZVtpXSxlbnVtZXJhYmxlOiEocj1RdHQoZSxpKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiBhfTt2YXIga289KGEsZSx0KT0+KHQ9YSE9bnVsbD9YdHQoUWhhKGEpKTp7fSxlOGEoZXx8IWF8fCFhLl9fZXNNb2R1bGU/SzQodCwiZGVmYXVsdCIse3ZhbHVlOmEsZW51bWVyYWJsZTohMH0pOnQsYSkpO3ZhciBBcj1hPT5bLCwsWHR0KGE/LltKdHQoIm1ldGFkYXRhIildPz9udWxsKV0sdGF0PVsiY2xhc3MiLCJtZXRob2QiLCJnZXR0ZXIiLCJzZXR0ZXIiLCJhY2Nlc3NvciIsImZpZWxkIiwidmFsdWUiLCJnZXQiLCJzZXQiXSxfNz1hPT5hIT09dm9pZCAwJiZ0eXBlb2YgYSE9ImZ1bmN0aW9uIj9ONSgiRnVuY3Rpb24gZXhwZWN0ZWQiKTphLHQ4YT0oYSxlLHQscixpKT0+KHtraW5kOnRhdFthXSxuYW1lOmUsbWV0YWRhdGE6cixhZGRJbml0aWFsaXplcjpvPT50Ll8/TjUoIkFscmVhZHkgaW5pdGlhbGl6ZWQiKTppLnB1c2goXzcob3x8bnVsbCkpfSksYThhPShhLGUpPT5lYXQoZSxKdHQoIm1ldGFkYXRhIiksYVszXSksVmU9KGEsZSx0LHIpPT57Zm9yKHZhciBpPTAsbz1hW2U+PjFdLG49byYmby5sZW5ndGg7aTxuO2krKyllJjE/b1tpXS5jYWxsKHQpOnI9b1tpXS5jYWxsKHQscik7cmV0dXJuIHJ9LHl0PShhLGUsdCxyLGksbyk9Pnt2YXIgbixsLGQsYyxwLHU9ZSY3LG09ISEoZSY4KSx2PSEhKGUmMTYpLHg9dT4zP2EubGVuZ3RoKzE6dT9tPzE6MjowLGI9dGF0W3UrNV0sZz11PjMmJihhW3gtMV09W10pLHk9YVt4XXx8KGFbeF09W10pLGs9dSYmKCF2JiYhbSYmKGk9aS5wcm90b3R5cGUpLHU8NSYmKHU+M3x8IXYpJiZRdHQodTw0P2k6e2dldFt0XSgpe3JldHVybiBLdHQodGhpcyxvKX0sc2V0W3RdKE4pe3JldHVybiBadHQodGhpcyxvLE4pfX0sdCkpO3U/diYmdTw0JiZzKG8sKHU+Mj8ic2V0ICI6dT4xPyJnZXQgIjoiIikrdCk6cyhpLHQpO2Zvcih2YXIgQz1yLmxlbmd0aC0xO0M+PTA7Qy0tKWM9dDhhKHUsdCxkPXt9LGFbM10seSksdSYmKGMuc3RhdGljPW0sYy5wcml2YXRlPXYscD1jLmFjY2Vzcz17aGFzOnY/Tj0+cjhhKGksTik6Tj0+dCBpbiBOfSx1XjMmJihwLmdldD12P049Pih1XjE/S3R0OnM4YSkoTixpLHVeND9vOmsuZ2V0KTpOPT5OW3RdKSx1PjImJihwLnNldD12PyhOLF8pPT5adHQoTixpLF8sdV40P286ay5zZXQpOihOLF8pPT5OW3RdPV8pKSxsPSgwLHJbQ10pKHU/dTw0P3Y/bzprW2JdOnU+ND92b2lkIDA6e2dldDprLmdldCxzZXQ6ay5zZXR9OmksYyksZC5fPTEsdV40fHxsPT09dm9pZCAwP183KGwpJiYodT40P2cudW5zaGlmdChsKTp1P3Y/bz1sOmtbYl09bDppPWwpOnR5cGVvZiBsIT0ib2JqZWN0Inx8bD09PW51bGw/TjUoIk9iamVjdCBleHBlY3RlZCIpOihfNyhuPWwuZ2V0KSYmKGsuZ2V0PW4pLF83KG49bC5zZXQpJiYoay5zZXQ9biksXzcobj1sLmluaXQpJiZnLnVuc2hpZnQobikpO3JldHVybiB1fHxhOGEoYSxpKSxrJiZLNChpLHQsayksdj91XjQ/bzprOml9LHZyPShhLGUsdCk9PmVhdChhLHR5cGVvZiBlIT0ic3ltYm9sIj9lKyIiOmUsdCksVmllPShhLGUsdCk9PmUuaGFzKGEpfHxONSgiQ2Fubm90ICIrdCkscjhhPShhLGUpPT5PYmplY3QoZSkhPT1lP041KCdDYW5ub3QgdXNlIHRoZSAiaW4iIG9wZXJhdG9yIG9uIHRoaXMgdmFsdWUnKTphLmhhcyhlKSxLdHQ9KGEsZSx0KT0+KFZpZShhLGUsInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkIiksdD90LmNhbGwoYSk6ZS5nZXQoYSkpLFJ0PShhLGUsdCk9PmUuaGFzKGEpP041KCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlIik6ZSBpbnN0YW5jZW9mIFdlYWtTZXQ/ZS5hZGQoYSk6ZS5zZXQoYSx0KSxadHQ9KGEsZSx0LHIpPT4oVmllKGEsZSwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLHI/ci5jYWxsKGEsdCk6ZS5zZXQoYSx0KSx0KSxzOGE9KGEsZSx0KT0+KFZpZShhLGUsImFjY2VzcyBwcml2YXRlIG1ldGhvZCIpLHQpO3ZhciBSNT0oYSxlKT0+WXR0KEs0KGEsInJhdyIse3ZhbHVlOll0dChlfHxhLnNsaWNlKCkpfSkpO3ZhciBPRyxUNyxqaWUsYWF0LE81LG9hLFgsRkcsTDcsVWllPWYoKCk9PntPRz1nbG9iYWxUaGlzLFQ3PU9HLlNoYWRvd1Jvb3QmJihPRy5TaGFkeUNTUz09PXZvaWQgMHx8T0cuU2hhZHlDU1MubmF0aXZlU2hhZG93KSYmImFkb3B0ZWRTdHlsZVNoZWV0cyJpbiBEb2N1bWVudC5wcm90b3R5cGUmJiJyZXBsYWNlImluIENTU1N0eWxlU2hlZXQucHJvdG90eXBlLGppZT1TeW1ib2woKSxhYXQ9bmV3IFdlYWtNYXAsTzU9Y2xhc3N7c3RhdGlje3ModGhpcywibiIpfWNvbnN0cnVjdG9yKGUsdCxyKXtpZih0aGlzLl8kY3NzUmVzdWx0JD0hMCxyIT09amllKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1lLHRoaXMudD10fWdldCBzdHlsZVNoZWV0KCl7bGV0IGU9dGhpcy5vLHQ9dGhpcy50O2lmKFQ3JiZlPT09dm9pZCAwKXtsZXQgcj10IT09dm9pZCAwJiZ0Lmxlbmd0aD09PTE7ciYmKGU9YWF0LmdldCh0KSksZT09PXZvaWQgMCYmKCh0aGlzLm89ZT1uZXcgQ1NTU3R5bGVTaGVldCkucmVwbGFjZVN5bmModGhpcy5jc3NUZXh0KSxyJiZhYXQuc2V0KHQsZSkpfXJldHVybiBlfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19LG9hPXMoYT0+bmV3IE81KHR5cGVvZiBhPT0ic3RyaW5nIj9hOmErIiIsdm9pZCAwLGppZSksInIiKSxYPXMoKGEsLi4uZSk9PntsZXQgdD1hLmxlbmd0aD09PTE/YVswXTplLnJlZHVjZSgocixpLG8pPT5yKyhuPT57aWYobi5fJGNzc1Jlc3VsdCQ9PT0hMClyZXR1cm4gbi5jc3NUZXh0O2lmKHR5cGVvZiBuPT0ibnVtYmVyIilyZXR1cm4gbjt0aHJvdyBFcnJvcigiVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICIrbisiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuIil9KShpKSthW28rMV0sYVswXSk7cmV0dXJuIG5ldyBPNSh0LGEsamllKX0sImkiKSxGRz1zKChhLGUpPT57aWYoVDcpYS5hZG9wdGVkU3R5bGVTaGVldHM9ZS5tYXAodD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/dDp0LnN0eWxlU2hlZXQpO2Vsc2UgZm9yKGxldCB0IG9mIGUpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksaT1PRy5saXROb25jZTtpIT09dm9pZCAwJiZyLnNldEF0dHJpYnV0ZSgibm9uY2UiLGkpLHIudGV4dENvbnRlbnQ9dC5jc3NUZXh0LGEuYXBwZW5kQ2hpbGQocil9fSwiUyIpLEw3PVQ3P2E9PmE6YT0+YSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgdD0iIjtmb3IobGV0IHIgb2YgZS5jc3NSdWxlcyl0Kz1yLmNzc1RleHQ7cmV0dXJuIG9hKHQpfSkoYSk6YX0pO3ZhciBpOGEsbzhhLG44YSxsOGEsYzhhLGQ4YSxCRyxyYXQsdThhLHA4YSwkNyxGNSxENyxzYXQsbzIsQTc9ZigoKT0+e1VpZSgpO1VpZSgpOyh7aXM6aThhLGRlZmluZVByb3BlcnR5Om84YSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6bjhhLGdldE93blByb3BlcnR5TmFtZXM6bDhhLGdldE93blByb3BlcnR5U3ltYm9sczpjOGEsZ2V0UHJvdG90eXBlT2Y6ZDhhfT1PYmplY3QpLEJHPWdsb2JhbFRoaXMscmF0PUJHLnRydXN0ZWRUeXBlcyx1OGE9cmF0P3JhdC5lbXB0eVNjcmlwdDoiIixwOGE9QkcucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LCQ3PXMoKGEsZSk9PmEsImQiKSxGNT17dG9BdHRyaWJ1dGUoYSxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOmE9YT91OGE6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmE9YT09bnVsbD9hOkpTT04uc3RyaW5naWZ5KGEpfXJldHVybiBhfSxmcm9tQXR0cmlidXRlKGEsZSl7bGV0IHQ9YTtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnQ9YSE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6dD1hPT09bnVsbD9udWxsOk51bWJlcihhKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXt0PUpTT04ucGFyc2UoYSl9Y2F0Y2h7dD1udWxsfX1yZXR1cm4gdH19LEQ3PXMoKGEsZSk9PiFpOGEoYSxlKSwiZiIpLHNhdD17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjpGNSxyZWZsZWN0OiExLHVzZURlZmF1bHQ6ITEsaGFzQ2hhbmdlZDpEN307U3ltYm9sLm1ldGFkYXRhPz89U3ltYm9sKCJtZXRhZGF0YSIpLEJHLmxpdFByb3BlcnR5TWV0YWRhdGE/Pz1uZXcgV2Vha01hcDtvMj1jbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpY3tzKHRoaXMsInkiKX1zdGF0aWMgYWRkSW5pdGlhbGl6ZXIoZSl7dGhpcy5fJEVpKCksKHRoaXMubD8/PVtdKS5wdXNoKGUpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuIHRoaXMuZmluYWxpemUoKSx0aGlzLl8kRWgmJlsuLi50aGlzLl8kRWgua2V5cygpXX1zdGF0aWMgY3JlYXRlUHJvcGVydHkoZSx0PXNhdCl7aWYodC5zdGF0ZSYmKHQuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShlKSYmKCh0PU9iamVjdC5jcmVhdGUodCkpLndyYXBwZWQ9ITApLHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGUsdCksIXQubm9BY2Nlc3Nvcil7bGV0IHI9U3ltYm9sKCksaT10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihlLHIsdCk7aSE9PXZvaWQgMCYmbzhhKHRoaXMucHJvdG90eXBlLGUsaSl9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSx0LHIpe2xldHtnZXQ6aSxzZXQ6b309bjhhKHRoaXMucHJvdG90eXBlLGUpPz97Z2V0KCl7cmV0dXJuIHRoaXNbdF19LHNldChuKXt0aGlzW3RdPW59fTtyZXR1cm57Z2V0Omksc2V0KG4pe2xldCBsPWk/LmNhbGwodGhpcyk7bz8uY2FsbCh0aGlzLG4pLHRoaXMucmVxdWVzdFVwZGF0ZShlLGwscil9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGUpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKT8/c2F0fXN0YXRpYyBfJEVpKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eSgkNygiZWxlbWVudFByb3BlcnRpZXMiKSkpcmV0dXJuO2xldCBlPWQ4YSh0aGlzKTtlLmZpbmFsaXplKCksZS5sIT09dm9pZCAwJiYodGhpcy5sPVsuLi5lLmxdKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzPW5ldyBNYXAoZS5lbGVtZW50UHJvcGVydGllcyl9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eSgkNygiZmluYWxpemVkIikpKXJldHVybjtpZih0aGlzLmZpbmFsaXplZD0hMCx0aGlzLl8kRWkoKSx0aGlzLmhhc093blByb3BlcnR5KCQ3KCJwcm9wZXJ0aWVzIikpKXtsZXQgdD10aGlzLnByb3BlcnRpZXMscj1bLi4ubDhhKHQpLC4uLmM4YSh0KV07Zm9yKGxldCBpIG9mIHIpdGhpcy5jcmVhdGVQcm9wZXJ0eShpLHRbaV0pfWxldCBlPXRoaXNbU3ltYm9sLm1ldGFkYXRhXTtpZihlIT09bnVsbCl7bGV0IHQ9bGl0UHJvcGVydHlNZXRhZGF0YS5nZXQoZSk7aWYodCE9PXZvaWQgMClmb3IobGV0W3IsaV1vZiB0KXRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KHIsaSl9dGhpcy5fJEVoPW5ldyBNYXA7Zm9yKGxldFt0LHJdb2YgdGhpcy5lbGVtZW50UHJvcGVydGllcyl7bGV0IGk9dGhpcy5fJEV1KHQscik7aSE9PXZvaWQgMCYmdGhpcy5fJEVoLnNldChpLHQpfXRoaXMuZWxlbWVudFN0eWxlcz10aGlzLmZpbmFsaXplU3R5bGVzKHRoaXMuc3R5bGVzKX1zdGF0aWMgZmluYWxpemVTdHlsZXMoZSl7bGV0IHQ9W107aWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IHI9bmV3IFNldChlLmZsYXQoMS8wKS5yZXZlcnNlKCkpO2ZvcihsZXQgaSBvZiByKXQudW5zaGlmdChMNyhpKSl9ZWxzZSBlIT09dm9pZCAwJiZ0LnB1c2goTDcoZSkpO3JldHVybiB0fXN0YXRpYyBfJEV1KGUsdCl7bGV0IHI9dC5hdHRyaWJ1dGU7cmV0dXJuIHI9PT0hMT92b2lkIDA6dHlwZW9mIHI9PSJzdHJpbmciP3I6dHlwZW9mIGU9PSJzdHJpbmciP2UudG9Mb3dlckNhc2UoKTp2b2lkIDB9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuXyRFcD12b2lkIDAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITEsdGhpcy5oYXNVcGRhdGVkPSExLHRoaXMuXyRFbT1udWxsLHRoaXMuXyRFdigpfV8kRXYoKXt0aGlzLl8kRVM9bmV3IFByb21pc2UoZT0+dGhpcy5lbmFibGVVcGRhdGluZz1lKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8kRV8oKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNvbnN0cnVjdG9yLmw/LmZvckVhY2goZT0+ZSh0aGlzKSl9YWRkQ29udHJvbGxlcihlKXsodGhpcy5fJEVPPz89bmV3IFNldCkuYWRkKGUpLHRoaXMucmVuZGVyUm9vdCE9PXZvaWQgMCYmdGhpcy5pc0Nvbm5lY3RlZCYmZS5ob3N0Q29ubmVjdGVkPy4oKX1yZW1vdmVDb250cm9sbGVyKGUpe3RoaXMuXyRFTz8uZGVsZXRlKGUpfV8kRV8oKXtsZXQgZT1uZXcgTWFwLHQ9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztmb3IobGV0IHIgb2YgdC5rZXlzKCkpdGhpcy5oYXNPd25Qcm9wZXJ0eShyKSYmKGUuc2V0KHIsdGhpc1tyXSksZGVsZXRlIHRoaXNbcl0pO2Uuc2l6ZT4wJiYodGhpcy5fJEVwPWUpfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT10aGlzLnNoYWRvd1Jvb3Q/P3RoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iuc2hhZG93Um9vdE9wdGlvbnMpO3JldHVybiBGRyhlLHRoaXMuY29uc3RydWN0b3IuZWxlbWVudFN0eWxlcyksZX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuZW5hYmxlVXBkYXRpbmcoITApLHRoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3RDb25uZWN0ZWQ/LigpKX1lbmFibGVVcGRhdGluZyhlKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl8kRU8/LmZvckVhY2goZT0+ZS5ob3N0RGlzY29ubmVjdGVkPy4oKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUsdCxyKXt0aGlzLl8kQUsoZSxyKX1fJEVUKGUsdCl7bGV0IHI9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcy5nZXQoZSksaT10aGlzLmNvbnN0cnVjdG9yLl8kRXUoZSxyKTtpZihpIT09dm9pZCAwJiZyLnJlZmxlY3Q9PT0hMCl7bGV0IG89KHIuY29udmVydGVyPy50b0F0dHJpYnV0ZSE9PXZvaWQgMD9yLmNvbnZlcnRlcjpGNSkudG9BdHRyaWJ1dGUodCxyLnR5cGUpO3RoaXMuXyRFbT1lLG89PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoaSk6dGhpcy5zZXRBdHRyaWJ1dGUoaSxvKSx0aGlzLl8kRW09bnVsbH19XyRBSyhlLHQpe2xldCByPXRoaXMuY29uc3RydWN0b3IsaT1yLl8kRWguZ2V0KGUpO2lmKGkhPT12b2lkIDAmJnRoaXMuXyRFbSE9PWkpe2xldCBvPXIuZ2V0UHJvcGVydHlPcHRpb25zKGkpLG49dHlwZW9mIG8uY29udmVydGVyPT0iZnVuY3Rpb24iP3tmcm9tQXR0cmlidXRlOm8uY29udmVydGVyfTpvLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZSE9PXZvaWQgMD9vLmNvbnZlcnRlcjpGNTt0aGlzLl8kRW09aTtsZXQgbD1uLmZyb21BdHRyaWJ1dGUodCxvLnR5cGUpO3RoaXNbaV09bD8/dGhpcy5fJEVqPy5nZXQoaSk/P2wsdGhpcy5fJEVtPW51bGx9fXJlcXVlc3RVcGRhdGUoZSx0LHIsaT0hMSxvKXtpZihlIT09dm9pZCAwKXtsZXQgbj10aGlzLmNvbnN0cnVjdG9yO2lmKGk9PT0hMSYmKG89dGhpc1tlXSkscj8/PW4uZ2V0UHJvcGVydHlPcHRpb25zKGUpLCEoKHIuaGFzQ2hhbmdlZD8/RDcpKG8sdCl8fHIudXNlRGVmYXVsdCYmci5yZWZsZWN0JiZvPT09dGhpcy5fJEVqPy5nZXQoZSkmJiF0aGlzLmhhc0F0dHJpYnV0ZShuLl8kRXUoZSxyKSkpKXJldHVybjt0aGlzLkMoZSx0LHIpfXRoaXMuaXNVcGRhdGVQZW5kaW5nPT09ITEmJih0aGlzLl8kRVM9dGhpcy5fJEVQKCkpfUMoZSx0LHt1c2VEZWZhdWx0OnIscmVmbGVjdDppLHdyYXBwZWQ6b30sbil7ciYmISh0aGlzLl8kRWo/Pz1uZXcgTWFwKS5oYXMoZSkmJih0aGlzLl8kRWouc2V0KGUsbj8/dD8/dGhpc1tlXSksbyE9PSEwfHxuIT09dm9pZCAwKXx8KHRoaXMuXyRBTC5oYXMoZSl8fCh0aGlzLmhhc1VwZGF0ZWR8fHJ8fCh0PXZvaWQgMCksdGhpcy5fJEFMLnNldChlLHQpKSxpPT09ITAmJnRoaXMuXyRFbSE9PWUmJih0aGlzLl8kRXE/Pz1uZXcgU2V0KS5hZGQoZSkpfWFzeW5jIF8kRVAoKXt0aGlzLmlzVXBkYXRlUGVuZGluZz0hMDt0cnl7YXdhaXQgdGhpcy5fJEVTfWNhdGNoKHQpe1Byb21pc2UucmVqZWN0KHQpfWxldCBlPXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gZSE9bnVsbCYmYXdhaXQgZSwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IobGV0W2ksb11vZiB0aGlzLl8kRXApdGhpc1tpXT1vO3RoaXMuXyRFcD12b2lkIDB9bGV0IHI9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztpZihyLnNpemU+MClmb3IobGV0W2ksb11vZiByKXtsZXR7d3JhcHBlZDpufT1vLGw9dGhpc1tpXTtuIT09ITB8fHRoaXMuXyRBTC5oYXMoaSl8fGw9PT12b2lkIDB8fHRoaXMuQyhpLHZvaWQgMCxvLGwpfX1sZXQgZT0hMSx0PXRoaXMuXyRBTDt0cnl7ZT10aGlzLnNob3VsZFVwZGF0ZSh0KSxlPyh0aGlzLndpbGxVcGRhdGUodCksdGhpcy5fJEVPPy5mb3JFYWNoKHI9PnIuaG9zdFVwZGF0ZT8uKCkpLHRoaXMudXBkYXRlKHQpKTp0aGlzLl8kRU0oKX1jYXRjaChyKXt0aHJvdyBlPSExLHRoaXMuXyRFTSgpLHJ9ZSYmdGhpcy5fJEFFKHQpfXdpbGxVcGRhdGUoZSl7fV8kQUUoZSl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdFVwZGF0ZWQ/LigpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKX1fJEVNKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKGUpe3JldHVybiEwfXVwZGF0ZShlKXt0aGlzLl8kRXEmJj10aGlzLl8kRXEuZm9yRWFjaCh0PT50aGlzLl8kRVQodCx0aGlzW3RdKSksdGhpcy5fJEVNKCl9dXBkYXRlZChlKXt9Zmlyc3RVcGRhdGVkKGUpe319O28yLmVsZW1lbnRTdHlsZXM9W10sbzIuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSxvMlskNygiZWxlbWVudFByb3BlcnRpZXMiKV09bmV3IE1hcCxvMlskNygiZmluYWxpemVkIildPW5ldyBNYXAscDhhPy4oe1JlYWN0aXZlRWxlbWVudDpvMn0pLChCRy5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjEuMiIpfSk7ZnVuY3Rpb24gaGF0KGEsZSl7aWYoIUtpZShhKXx8IWEuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gb2F0IT09dm9pZCAwP29hdC5jcmVhdGVIVE1MKGUpOmV9ZnVuY3Rpb24gSjQoYSxlLHQ9YSxyKXtpZihlPT09bHIpcmV0dXJuIGU7bGV0IGk9ciE9PXZvaWQgMD90Ll8kQ28/LltyXTp0Ll8kQ2wsbz1FNyhlKT92b2lkIDA6ZS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGk/LmNvbnN0cnVjdG9yIT09byYmKGk/Ll8kQU8/LighMSksbz09PXZvaWQgMD9pPXZvaWQgMDooaT1uZXcgbyhhKSxpLl8kQVQoYSx0LHIpKSxyIT09dm9pZCAwPyh0Ll8kQ28/Pz1bXSlbcl09aTp0Ll8kQ2w9aSksaSE9PXZvaWQgMCYmKGU9SjQoYSxpLl8kQVMoYSxlLnZhbHVlcyksaSxyKSksZX12YXIgV2llLGlhdCxIRyxvYXQsR2llLGdsLFlpZSxmOGEsWjQsUDcsRTcsS2llLG5hdCxaaWUsSTcsbGF0LGNhdCxYNCxkYXQsdWF0LHBhdCxYaWUsdyxRaWUsSmllLGxyLHhyLGZhdCxRNCxtYXQsTjcscUcsQjUsZTMsVkcsakcsVUcsV0csZW9lLGg4YSxaYyx0MT1mKCgpPT57V2llPWdsb2JhbFRoaXMsaWF0PXMoYT0+YSwiaSIpLEhHPVdpZS50cnVzdGVkVHlwZXMsb2F0PUhHP0hHLmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOnMoYT0+YSwiY3JlYXRlSFRNTCIpfSk6dm9pZCAwLEdpZT0iJGxpdCQiLGdsPWBsaXQkJHtNYXRoLnJhbmRvbSgpLnRvRml4ZWQoOSkuc2xpY2UoMil9JGAsWWllPSI/IitnbCxmOGE9YDwke1lpZX0+YCxaND1kb2N1bWVudCxQNz1zKCgpPT5aNC5jcmVhdGVDb21tZW50KCIiKSwiYyIpLEU3PXMoYT0+YT09PW51bGx8fHR5cGVvZiBhIT0ib2JqZWN0IiYmdHlwZW9mIGEhPSJmdW5jdGlvbiIsImEiKSxLaWU9QXJyYXkuaXNBcnJheSxuYXQ9cyhhPT5LaWUoYSl8fHR5cGVvZiBhPy5bU3ltYm9sLml0ZXJhdG9yXT09ImZ1bmN0aW9uIiwiZCIpLFppZT1gWyAJClxmXHJdYCxJNz0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxsYXQ9Ly0tPi9nLGNhdD0vPi9nLFg0PVJlZ0V4cChgPnwke1ppZX0oPzooW15cXHMiJz49L10rKSgke1ppZX0qPSR7WmllfSooPzpbXiAJClxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSxkYXQ9LycvZyx1YXQ9LyIvZyxwYXQ9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLFhpZT1zKGE9PihlLC4uLnQpPT4oe18kbGl0VHlwZSQ6YSxzdHJpbmdzOmUsdmFsdWVzOnR9KSwieCIpLHc9WGllKDEpLFFpZT1YaWUoMiksSmllPVhpZSgzKSxscj1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSx4cj1TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpLGZhdD1uZXcgV2Vha01hcCxRND1aNC5jcmVhdGVUcmVlV2Fsa2VyKFo0LDEyOSk7cyhoYXQsIlYiKTttYXQ9cygoYSxlKT0+e2xldCB0PWEubGVuZ3RoLTEscj1bXSxpLG89ZT09PTI/Ijxzdmc+IjplPT09Mz8iPG1hdGg+IjoiIixuPUk3O2ZvcihsZXQgbD0wO2w8dDtsKyspe2xldCBkPWFbbF0sYyxwLHU9LTEsbT0wO2Zvcig7bTxkLmxlbmd0aCYmKG4ubGFzdEluZGV4PW0scD1uLmV4ZWMoZCkscCE9PW51bGwpOyltPW4ubGFzdEluZGV4LG49PT1JNz9wWzFdPT09IiEtLSI/bj1sYXQ6cFsxXSE9PXZvaWQgMD9uPWNhdDpwWzJdIT09dm9pZCAwPyhwYXQudGVzdChwWzJdKSYmKGk9UmVnRXhwKCI8LyIrcFsyXSwiZyIpKSxuPVg0KTpwWzNdIT09dm9pZCAwJiYobj1YNCk6bj09PVg0P3BbMF09PT0iPiI/KG49aT8/STcsdT0tMSk6cFsxXT09PXZvaWQgMD91PS0yOih1PW4ubGFzdEluZGV4LXBbMl0ubGVuZ3RoLGM9cFsxXSxuPXBbM109PT12b2lkIDA/WDQ6cFszXT09PSciJz91YXQ6ZGF0KTpuPT09dWF0fHxuPT09ZGF0P249WDQ6bj09PWxhdHx8bj09PWNhdD9uPUk3OihuPVg0LGk9dm9pZCAwKTtsZXQgdj1uPT09WDQmJmFbbCsxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjtvKz1uPT09STc/ZCtmOGE6dT49MD8oci5wdXNoKGMpLGQuc2xpY2UoMCx1KStHaWUrZC5zbGljZSh1KStnbCt2KTpkK2dsKyh1PT09LTI/bDp2KX1yZXR1cm5baGF0KGEsbysoYVt0XXx8Ijw/PiIpKyhlPT09Mj8iPC9zdmc+IjplPT09Mz8iPC9tYXRoPiI6IiIpKSxyXX0sIk4iKSxONz1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIlMiKX1jb25zdHJ1Y3Rvcih7c3RyaW5nczplLF8kbGl0VHlwZSQ6dH0scil7bGV0IGk7dGhpcy5wYXJ0cz1bXTtsZXQgbz0wLG49MCxsPWUubGVuZ3RoLTEsZD10aGlzLnBhcnRzLFtjLHBdPW1hdChlLHQpO2lmKHRoaXMuZWw9YS5jcmVhdGVFbGVtZW50KGMsciksUTQuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LHQ9PT0yfHx0PT09Myl7bGV0IHU9dGhpcy5lbC5jb250ZW50LmZpcnN0Q2hpbGQ7dS5yZXBsYWNlV2l0aCguLi51LmNoaWxkTm9kZXMpfWZvcig7KGk9UTQubmV4dE5vZGUoKSkhPT1udWxsJiZkLmxlbmd0aDxsOyl7aWYoaS5ub2RlVHlwZT09PTEpe2lmKGkuaGFzQXR0cmlidXRlcygpKWZvcihsZXQgdSBvZiBpLmdldEF0dHJpYnV0ZU5hbWVzKCkpaWYodS5lbmRzV2l0aChHaWUpKXtsZXQgbT1wW24rK10sdj1pLmdldEF0dHJpYnV0ZSh1KS5zcGxpdChnbCkseD0vKFsuP0BdKT8oLiopLy5leGVjKG0pO2QucHVzaCh7dHlwZToxLGluZGV4Om8sbmFtZTp4WzJdLHN0cmluZ3M6dixjdG9yOnhbMV09PT0iLiI/Vkc6eFsxXT09PSI/Ij9qRzp4WzFdPT09IkAiP1VHOmUzfSksaS5yZW1vdmVBdHRyaWJ1dGUodSl9ZWxzZSB1LnN0YXJ0c1dpdGgoZ2wpJiYoZC5wdXNoKHt0eXBlOjYsaW5kZXg6b30pLGkucmVtb3ZlQXR0cmlidXRlKHUpKTtpZihwYXQudGVzdChpLnRhZ05hbWUpKXtsZXQgdT1pLnRleHRDb250ZW50LnNwbGl0KGdsKSxtPXUubGVuZ3RoLTE7aWYobT4wKXtpLnRleHRDb250ZW50PUhHP0hHLmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgdj0wO3Y8bTt2KyspaS5hcHBlbmQodVt2XSxQNygpKSxRNC5uZXh0Tm9kZSgpLGQucHVzaCh7dHlwZToyLGluZGV4Oisrb30pO2kuYXBwZW5kKHVbbV0sUDcoKSl9fX1lbHNlIGlmKGkubm9kZVR5cGU9PT04KWlmKGkuZGF0YT09PVlpZSlkLnB1c2goe3R5cGU6MixpbmRleDpvfSk7ZWxzZXtsZXQgdT0tMTtmb3IoOyh1PWkuZGF0YS5pbmRleE9mKGdsLHUrMSkpIT09LTE7KWQucHVzaCh7dHlwZTo3LGluZGV4Om99KSx1Kz1nbC5sZW5ndGgtMX1vKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KGUsdCl7bGV0IHI9WjQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gci5pbm5lckhUTUw9ZSxyfX07cyhKNCwiTSIpO3FHPWNsYXNze3N0YXRpY3tzKHRoaXMsIlIiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD1lLHRoaXMuXyRBTT10fWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUoZSl7bGV0e2VsOntjb250ZW50OnR9LHBhcnRzOnJ9PXRoaXMuXyRBRCxpPShlPy5jcmVhdGlvblNjb3BlPz9aNCkuaW1wb3J0Tm9kZSh0LCEwKTtRNC5jdXJyZW50Tm9kZT1pO2xldCBvPVE0Lm5leHROb2RlKCksbj0wLGw9MCxkPXJbMF07Zm9yKDtkIT09dm9pZCAwOyl7aWYobj09PWQuaW5kZXgpe2xldCBjO2QudHlwZT09PTI/Yz1uZXcgQjUobyxvLm5leHRTaWJsaW5nLHRoaXMsZSk6ZC50eXBlPT09MT9jPW5ldyBkLmN0b3IobyxkLm5hbWUsZC5zdHJpbmdzLHRoaXMsZSk6ZC50eXBlPT09NiYmKGM9bmV3IFdHKG8sdGhpcyxlKSksdGhpcy5fJEFWLnB1c2goYyksZD1yWysrbF19biE9PWQ/LmluZGV4JiYobz1RNC5uZXh0Tm9kZSgpLG4rKyl9cmV0dXJuIFE0LmN1cnJlbnROb2RlPVo0LGl9cChlKXtsZXQgdD0wO2ZvcihsZXQgciBvZiB0aGlzLl8kQVYpciE9PXZvaWQgMCYmKHIuc3RyaW5ncyE9PXZvaWQgMD8oci5fJEFJKGUscix0KSx0Kz1yLnN0cmluZ3MubGVuZ3RoLTIpOnIuXyRBSShlW3RdKSksdCsrfX0sQjU9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJrIil9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSx0LHIsaSl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPXhyLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWUsdGhpcy5fJEFCPXQsdGhpcy5fJEFNPXIsdGhpcy5vcHRpb25zPWksdGhpcy5fJEN2PWk/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCBlPXRoaXMuXyRBQS5wYXJlbnROb2RlLHQ9dGhpcy5fJEFNO3JldHVybiB0IT09dm9pZCAwJiZlPy5ub2RlVHlwZT09PTExJiYoZT10LnBhcmVudE5vZGUpLGV9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkoZSx0PXRoaXMpe2U9SjQodGhpcyxlLHQpLEU3KGUpP2U9PT14cnx8ZT09bnVsbHx8ZT09PSIiPyh0aGlzLl8kQUghPT14ciYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPXhyKTplIT09dGhpcy5fJEFIJiZlIT09bHImJnRoaXMuXyhlKTplLl8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKGUpOmUubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKGUpOm5hdChlKT90aGlzLmsoZSk6dGhpcy5fKGUpfU8oZSl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMuXyRBQil9VChlKXt0aGlzLl8kQUghPT1lJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyhlKSl9XyhlKXt0aGlzLl8kQUghPT14ciYmRTcodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1lOnRoaXMuVChaNC5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5fJEFIPWV9JChlKXtsZXR7dmFsdWVzOnQsXyRsaXRUeXBlJDpyfT1lLGk9dHlwZW9mIHI9PSJudW1iZXIiP3RoaXMuXyRBQyhlKTooci5lbD09PXZvaWQgMCYmKHIuZWw9TjcuY3JlYXRlRWxlbWVudChoYXQoci5oLHIuaFswXSksdGhpcy5vcHRpb25zKSkscik7aWYodGhpcy5fJEFIPy5fJEFEPT09aSl0aGlzLl8kQUgucCh0KTtlbHNle2xldCBvPW5ldyBxRyhpLHRoaXMpLG49by51KHRoaXMub3B0aW9ucyk7by5wKHQpLHRoaXMuVChuKSx0aGlzLl8kQUg9b319XyRBQyhlKXtsZXQgdD1mYXQuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIHQ9PT12b2lkIDAmJmZhdC5zZXQoZS5zdHJpbmdzLHQ9bmV3IE43KGUpKSx0fWsoZSl7S2llKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCB0PXRoaXMuXyRBSCxyLGk9MDtmb3IobGV0IG8gb2YgZSlpPT09dC5sZW5ndGg/dC5wdXNoKHI9bmV3IGEodGhpcy5PKFA3KCkpLHRoaXMuTyhQNygpKSx0aGlzLHRoaXMub3B0aW9ucykpOnI9dFtpXSxyLl8kQUkobyksaSsrO2k8dC5sZW5ndGgmJih0aGlzLl8kQVIociYmci5fJEFCLm5leHRTaWJsaW5nLGkpLHQubGVuZ3RoPWkpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcsdCl7Zm9yKHRoaXMuXyRBUD8uKCExLCEwLHQpO2UhPT10aGlzLl8kQUI7KXtsZXQgcj1pYXQoZSkubmV4dFNpYmxpbmc7aWF0KGUpLnJlbW92ZSgpLGU9cn19c2V0Q29ubmVjdGVkKGUpe3RoaXMuXyRBTT09PXZvaWQgMCYmKHRoaXMuXyRDdj1lLHRoaXMuXyRBUD8uKGUpKX19LGUzPWNsYXNze3N0YXRpY3tzKHRoaXMsIkgiKX1nZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLHQscixpLG8pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD14cix0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT10LHRoaXMuXyRBTT1pLHRoaXMub3B0aW9ucz1vLHIubGVuZ3RoPjJ8fHJbMF0hPT0iInx8clsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoci5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9cik6dGhpcy5fJEFIPXhyfV8kQUkoZSx0PXRoaXMscixpKXtsZXQgbz10aGlzLnN0cmluZ3Msbj0hMTtpZihvPT09dm9pZCAwKWU9SjQodGhpcyxlLHQsMCksbj0hRTcoZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1scixuJiYodGhpcy5fJEFIPWUpO2Vsc2V7bGV0IGw9ZSxkLGM7Zm9yKGU9b1swXSxkPTA7ZDxvLmxlbmd0aC0xO2QrKyljPUo0KHRoaXMsbFtyK2RdLHQsZCksYz09PWxyJiYoYz10aGlzLl8kQUhbZF0pLG58fD0hRTcoYyl8fGMhPT10aGlzLl8kQUhbZF0sYz09PXhyP2U9eHI6ZSE9PXhyJiYoZSs9KGM/PyIiKStvW2QrMV0pLHRoaXMuXyRBSFtkXT1jfW4mJiFpJiZ0aGlzLmooZSl9aihlKXtlPT09eHI/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LFZHPWNsYXNzIGV4dGVuZHMgZTN7c3RhdGlje3ModGhpcywiSSIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKGUpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPWU9PT14cj92b2lkIDA6ZX19LGpHPWNsYXNzIGV4dGVuZHMgZTN7c3RhdGlje3ModGhpcywiTCIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGUpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhZSYmZSE9PXhyKX19LFVHPWNsYXNzIGV4dGVuZHMgZTN7c3RhdGlje3ModGhpcywieiIpfWNvbnN0cnVjdG9yKGUsdCxyLGksbyl7c3VwZXIoZSx0LHIsaSxvKSx0aGlzLnR5cGU9NX1fJEFJKGUsdD10aGlzKXtpZigoZT1KNCh0aGlzLGUsdCwwKT8/eHIpPT09bHIpcmV0dXJuO2xldCByPXRoaXMuXyRBSCxpPWU9PT14ciYmciE9PXhyfHxlLmNhcHR1cmUhPT1yLmNhcHR1cmV8fGUub25jZSE9PXIub25jZXx8ZS5wYXNzaXZlIT09ci5wYXNzaXZlLG89ZSE9PXhyJiYocj09PXhyfHxpKTtpJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxyKSxvJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxlKSx0aGlzLl8kQUg9ZX1oYW5kbGVFdmVudChlKXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LGUpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChlKX19LFdHPWNsYXNze3N0YXRpY3tzKHRoaXMsIloiKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy5lbGVtZW50PWUsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09dCx0aGlzLm9wdGlvbnM9cn1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGUpe0o0KHRoaXMsZSl9fSxlb2U9e006R2llLFA6Z2wsQTpZaWUsQzoxLEw6bWF0LFI6cUcsRDpuYXQsVjpKNCxJOkI1LEg6ZTMsTjpqRyxVOlVHLEI6VkcsRjpXR30saDhhPVdpZS5saXRIdG1sUG9seWZpbGxTdXBwb3J0O2g4YT8uKE43LEI1KSwoV2llLmxpdEh0bWxWZXJzaW9ucz8/PVtdKS5wdXNoKCIzLjMuMiIpO1pjPXMoKGEsZSx0KT0+e2xldCByPXQ/LnJlbmRlckJlZm9yZT8/ZSxpPXIuXyRsaXRQYXJ0JDtpZihpPT09dm9pZCAwKXtsZXQgbz10Py5yZW5kZXJCZWZvcmU/P251bGw7ci5fJGxpdFBhcnQkPWk9bmV3IEI1KGUuaW5zZXJ0QmVmb3JlKFA3KCksbyksbyx2b2lkIDAsdD8/e30pfXJldHVybiBpLl8kQUkoYSksaX0sIkQiKX0pO3ZhciB0b2UsYmwsbThhLGc4YSxnYXQ9ZigoKT0+e0E3KCk7QTcoKTt0MSgpO3QxKCk7dG9lPWdsb2JhbFRoaXMsYmw9Y2xhc3MgZXh0ZW5kcyBvMntzdGF0aWN7cyh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz1lLmZpcnN0Q2hpbGQsZX11cGRhdGUoZSl7bGV0IHQ9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz1aYyh0LHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gbHJ9fTtibC5fJGxpdEVsZW1lbnQkPSEwLGJsLmZpbmFsaXplZD0hMCx0b2UubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0Py4oe0xpdEVsZW1lbnQ6Ymx9KTttOGE9dG9lLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7bThhPy4oe0xpdEVsZW1lbnQ6Ymx9KTtnOGE9e18kQUs6cygoYSxlLHQpPT57YS5fJEFLKGUsdCl9LCJfJEFLIiksXyRBTDpzKGE9PmEuXyRBTCwiXyRBTCIpfTsodG9lLmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIGI4YSxiYXQ9ZigoKT0+e2I4YT0hMX0pO3ZhciBnbj1mKCgpPT57QTcoKTt0MSgpO2dhdCgpO2JhdCgpfSk7dmFyIFlHPU1vKEdHPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShHRywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksR0cudW5pPXZvaWQgMDt2YXIgdjhhPXMoKGE9InVuaSIpPT5gJHthfV8keyJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZyxlPT57bGV0IHQ9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybihlPT09IngiP3Q6dCYzfDgpLnRvU3RyaW5nKDE2KX0pfWAsInVuaSIpO0dHLnVuaT12OGF9KTt2YXIgS0csWGMsWkc9ZigoKT0+e0tHPWNsYXNze3N0YXRpY3tzKHRoaXMsIkRlZmVycmVkIil9Y2xhaW0oKXtpZih0aGlzLmNsYWltZWQpdGhyb3cgbmV3IEVycm9yKCJEZWZlcnJlZCBhbHJlYWR5IGNsYWltZWQiKTt0aGlzLmNsYWltZWQ9ITB9Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcHBlZEF0P3RoaXMuc3RvcHBlZEF0LXRoaXMuc3RhcnRlZEF0OkRhdGUubm93KCktdGhpcy5zdGFydGVkQXR9Y29uc3RydWN0b3IoKXt0aGlzLmNsYWltZWQ9ITEsdGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5yZXNvbHZlPXI9Pnt0aGlzLnN0YXR1cz0iZnVsZmlsbGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGUocil9LHRoaXMucmVqZWN0PXI9Pnt0aGlzLnN0YXR1cz0icmVqZWN0ZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChyKX0sdGhpcy5zdGFydGVkQXQ9RGF0ZS5ub3coKSx0aGlzLnN0YXR1cz0icGVuZGluZyJ9KX19LFhjPXMoKCk9Pm5ldyBLRywiZGVmZXIiKX0pO3ZhciBYRyx4OGEsdmF0PWYoKCk9PntaRygpO1hHPWNsYXNze3N0YXRpY3tzKHRoaXMsIkN1bXVsYXRpdmVEZWZlcnJlZCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9WGMoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1YYygpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSx4OGE9cygoKT0+bmV3IFhHLCJjdW11bGF0aXZlRGVmZXIiKX0pO3ZhciBjdD17fTtsdChjdCx7Q3VtdWxhdGl2ZURlZmVycmVkOigpPT5YRyxEZWZlcnJlZDooKT0+S0csY3VtdWxhdGl2ZURlZmVyOigpPT54OGEsZGVmZXI6KCk9PlhjLGZyb21DYWxsYmFjazooKT0+ejhhLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PlM4YSxtYXA6KCk9Pk04YSxyZWplY3RlZFByb21pc2U6KCk9Pnc4YSxyZXNvbHZlZFByb21pc2U6KCk9Pnk4YSx0aW1lb3V0QW5kQ29udGludWU6KCk9Pms4YSx0aW1lb3V0V3JhcDooKT0+eGF0fSk7ZnVuY3Rpb24geThhKGEpe3JldHVybiBQcm9taXNlLnJlc29sdmUoYSl9dmFyIHc4YSxNOGEseGF0LGs4YSxTOGEsejhhLGJpPWYoKCk9PntaRygpO3ZhdCgpO1pHKCk7cyh5OGEsInJlc29sdmVkUHJvbWlzZSIpO3c4YT1zKGE9PlByb21pc2UucmVqZWN0KGEpLCJyZWplY3RlZFByb21pc2UiKSxNOGE9cyhhc3luYyhhLGUpPT5Qcm9taXNlLmFsbChhLm1hcChlKSksIm1hcCIpLHhhdD1zKGFzeW5jKGEsZSx0PSEwKT0+bmV3IFByb21pc2UoKHIsaSk9PntzZXRUaW1lb3V0KCgpPT57dD9pKG5ldyBFcnJvcigidGltZW91dCIpKTpyKG51bGwpfSxlKSxhLnRoZW4ocixpKX0pLCJ0aW1lb3V0V3JhcCIpLGs4YT1zKGFzeW5jKGEsZT02ZTQpPT54YXQoYSxlLCExKSwidGltZW91dEFuZENvbnRpbnVlIiksUzhhPXMoYXN5bmMgYT0+e2xldCBlPVhjKCk7Zm9yKGxldCB0IG9mIGEpdC50aGVuKHI9PntyPT09ITAmJmUucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwoYSkudGhlbigoKT0+e2UucmVzb2x2ZSghMSl9KSxlLnByb21pc2V9LCJnZXRGaXJzdFRydWVPckZhbHNlIiksejhhPXMoYT0+bmV3IFByb21pc2UoKGUsdCk9PnthKChyLGkpPT57cj90KHIpOmUoaSl9KX0pLCJmcm9tQ2FsbGJhY2siKX0pO3ZhciBRRz1mKCgpPT57YmkoKX0pO2Z1bmN0aW9uIG5hKGEsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7YW9lKGEsZSk7ZnVuY3Rpb24gdCgpe3RoaXMuY29uc3RydWN0b3I9YX1zKHQsIl9fIiksYS5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKToodC5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IHQpfWZ1bmN0aW9uIF84YShhLGUpe3ZhciB0PXt9O2Zvcih2YXIgciBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLHIpJiZlLmluZGV4T2Yocik8MCYmKHRbcl09YVtyXSk7aWYoYSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGEpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoYSxyW2ldKSYmKHRbcltpXV09YVtyW2ldXSk7cmV0dXJuIHR9ZnVuY3Rpb24gVDhhKGEsZSx0LHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgsbz1pPDM/ZTpyPT09bnVsbD9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTpyLG47aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIilvPVJlZmxlY3QuZGVjb3JhdGUoYSxlLHQscik7ZWxzZSBmb3IodmFyIGw9YS5sZW5ndGgtMTtsPj0wO2wtLSkobj1hW2xdKSYmKG89KGk8Mz9uKG8pOmk+Mz9uKGUsdCxvKTpuKGUsdCkpfHxvKTtyZXR1cm4gaT4zJiZvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LG8pLG99ZnVuY3Rpb24gTDhhKGEsZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7ZSh0LHIsYSl9fWZ1bmN0aW9uICQ4YShhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH1mdW5jdGlvbiBEOGEoYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9ZnVuY3Rpb24gQThhKGEpe3JldHVybiB0eXBlb2YgYT09InN5bWJvbCI/YToiIi5jb25jYXQoYSl9ZnVuY3Rpb24gUDhhKGEsZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTp0PyIiLmNvbmNhdCh0LCIgIixlKTplfSl9ZnVuY3Rpb24gRThhKGEsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShhLGUpfWZ1bmN0aW9uIG9vZShhLGUsdCxyKXtmdW5jdGlvbiBpKG8pe3JldHVybiBvIGluc3RhbmNlb2YgdD9vOm5ldyB0KGZ1bmN0aW9uKG4pe24obyl9KX1yZXR1cm4gcyhpLCJhZG9wdCIpLG5ldyh0fHwodD1Qcm9taXNlKSkoZnVuY3Rpb24obyxuKXtmdW5jdGlvbiBsKHApe3RyeXtjKHIubmV4dChwKSl9Y2F0Y2godSl7bih1KX19cyhsLCJmdWxmaWxsZWQiKTtmdW5jdGlvbiBkKHApe3RyeXtjKHIudGhyb3cocCkpfWNhdGNoKHUpe24odSl9fXMoZCwicmVqZWN0ZWQiKTtmdW5jdGlvbiBjKHApe3AuZG9uZT9vKHAudmFsdWUpOmkocC52YWx1ZSkudGhlbihsLGQpfXMoYywic3RlcCIpLGMoKHI9ci5hcHBseShhLGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIFI3KGEsZSl7dmFyIHQ9e2xhYmVsOjAsc2VudDpzKGZ1bmN0aW9uKCl7aWYob1swXSYxKXRocm93IG9bMV07cmV0dXJuIG9bMV19LCJzZW50IiksdHJ5czpbXSxvcHM6W119LHIsaSxvLG49T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gbi5uZXh0PWwoMCksbi50aHJvdz1sKDEpLG4ucmV0dXJuPWwoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG5bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbjtmdW5jdGlvbiBsKGMpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gZChbYyxwXSl9fWZ1bmN0aW9uIGQoYyl7aWYocil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtuJiYobj0wLGNbMF0mJih0PTApKSx0Oyl0cnl7aWYocj0xLGkmJihvPWNbMF0mMj9pLnJldHVybjpjWzBdP2kudGhyb3d8fCgobz1pLnJldHVybikmJm8uY2FsbChpKSwwKTppLm5leHQpJiYhKG89by5jYWxsKGksY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKGk9MCxvJiYoYz1bY1swXSYyLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIHQubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6dC5sYWJlbCsrLGk9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz10Lm9wcy5wb3AoKSx0LnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihvPXQudHJ5cywhKG89by5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSkmJihjWzBdPT09Nnx8Y1swXT09PTIpKXt0PTA7Y29udGludWV9aWYoY1swXT09PTMmJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXt0LmxhYmVsPWNbMV07YnJlYWt9aWYoY1swXT09PTYmJnQubGFiZWw8b1sxXSl7dC5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZ0LmxhYmVsPG9bMl0pe3QubGFiZWw9b1syXSx0Lm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJnQub3BzLnBvcCgpLHQudHJ5cy5wb3AoKTtjb250aW51ZX1jPWUuY2FsbChhLHQpfWNhdGNoKHApe2M9WzYscF0saT0wfWZpbmFsbHl7cj1vPTB9aWYoY1swXSY1KXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIEk4YShhLGUpe2Zvcih2YXIgdCBpbiBhKXQhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmc29lKGUsYSx0KX1mdW5jdGlvbiB2aShhKXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3IsdD1lJiZhW2VdLHI9MDtpZih0KXJldHVybiB0LmNhbGwoYSk7aWYoYSYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDpzKGZ1bmN0aW9uKCl7cmV0dXJuIGEmJnI+PWEubGVuZ3RoJiYoYT12b2lkIDApLHt2YWx1ZTphJiZhW3IrK10sZG9uZTohYX19LCJuZXh0Iil9O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gUHIoYSxlKXt2YXIgdD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoIXQpcmV0dXJuIGE7dmFyIHI9dC5jYWxsKGEpLGksbz1bXSxuO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKGk9ci5uZXh0KCkpLmRvbmU7KW8ucHVzaChpLnZhbHVlKX1jYXRjaChsKXtuPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYodD1yLnJldHVybikmJnQuY2FsbChyKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuIG99ZnVuY3Rpb24gTjhhKCl7Zm9yKHZhciBhPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWE9YS5jb25jYXQoUHIoYXJndW1lbnRzW2VdKSk7cmV0dXJuIGF9ZnVuY3Rpb24gUjhhKCl7Zm9yKHZhciBhPTAsZT0wLHQ9YXJndW1lbnRzLmxlbmd0aDtlPHQ7ZSsrKWErPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciByPUFycmF5KGEpLGk9MCxlPTA7ZTx0O2UrKylmb3IodmFyIG89YXJndW1lbnRzW2VdLG49MCxsPW8ubGVuZ3RoO248bDtuKyssaSsrKXJbaV09b1tuXTtyZXR1cm4gcn1mdW5jdGlvbiBTcyhhLGUsdCl7aWYodHx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciByPTAsaT1lLmxlbmd0aCxvO3I8aTtyKyspKG98fCEociBpbiBlKSkmJihvfHwobz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAscikpLG9bcl09ZVtyXSk7cmV0dXJuIGEuY29uY2F0KG98fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiB2bChhKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIHZsPyh0aGlzLnY9YSx0aGlzKTpuZXcgdmwoYSl9ZnVuY3Rpb24gbm9lKGEsZSx0KXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIHI9dC5hcHBseShhLGV8fFtdKSxpLG89W107cmV0dXJuIGk9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIixuKSxpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxpO2Z1bmN0aW9uIG4odil7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBQcm9taXNlLnJlc29sdmUoeCkudGhlbih2LHUpfX1mdW5jdGlvbiBsKHYseCl7clt2XSYmKGlbdl09ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGcseSl7by5wdXNoKFt2LGIsZyx5XSk+MXx8ZCh2LGIpfSl9LHgmJihpW3ZdPXgoaVt2XSkpKX1mdW5jdGlvbiBkKHYseCl7dHJ5e2Moclt2XSh4KSl9Y2F0Y2goYil7bShvWzBdWzNdLGIpfX1mdW5jdGlvbiBjKHYpe3YudmFsdWUgaW5zdGFuY2VvZiB2bD9Qcm9taXNlLnJlc29sdmUodi52YWx1ZS52KS50aGVuKHAsdSk6bShvWzBdWzJdLHYpfWZ1bmN0aW9uIHAodil7ZCgibmV4dCIsdil9ZnVuY3Rpb24gdSh2KXtkKCJ0aHJvdyIsdil9ZnVuY3Rpb24gbSh2LHgpe3YoeCksby5zaGlmdCgpLG8ubGVuZ3RoJiZkKG9bMF1bMF0sb1swXVsxXSl9fWZ1bmN0aW9uIE84YShhKXt2YXIgZSx0O3JldHVybiBlPXt9LHIoIm5leHQiKSxyKCJ0aHJvdyIsZnVuY3Rpb24oaSl7dGhyb3cgaX0pLHIoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIHIoaSxvKXtlW2ldPWFbaV0/ZnVuY3Rpb24obil7cmV0dXJuKHQ9IXQpP3t2YWx1ZTp2bChhW2ldKG4pKSxkb25lOiExfTpvP28obik6bn06b319ZnVuY3Rpb24gbG9lKGEpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT1hW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSx0O3JldHVybiBlP2UuY2FsbChhKTooYT10eXBlb2Ygdmk9PSJmdW5jdGlvbiI/dmkoYSk6YVtTeW1ib2wuaXRlcmF0b3JdKCksdD17fSxyKCJuZXh0IikscigidGhyb3ciKSxyKCJyZXR1cm4iKSx0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0KTtmdW5jdGlvbiByKG8pe3Rbb109YVtvXSYmZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsZCl7bj1hW29dKG4pLGkobCxkLG4uZG9uZSxuLnZhbHVlKX0pfX1mdW5jdGlvbiBpKG8sbixsLGQpe1Byb21pc2UucmVzb2x2ZShkKS50aGVuKGZ1bmN0aW9uKGMpe28oe3ZhbHVlOmMsZG9uZTpsfSl9LG4pfX1mdW5jdGlvbiBGOGEoYSxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJyYXciLHt2YWx1ZTplfSk6YS5yYXc9ZSxhfWZ1bmN0aW9uIEg4YShhKXtpZihhJiZhLl9fZXNNb2R1bGUpcmV0dXJuIGE7dmFyIGU9e307aWYoYSE9bnVsbClmb3IodmFyIHQ9aW9lKGEpLHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdIT09ImRlZmF1bHQiJiZzb2UoZSxhLHRbcl0pO3JldHVybiBCOGEoZSxhKSxlfWZ1bmN0aW9uIHE4YShhKXtyZXR1cm4gYSYmYS5fX2VzTW9kdWxlP2E6e2RlZmF1bHQ6YX19ZnVuY3Rpb24gVjhhKGEsZSx0LHIpe2lmKHQ9PT0iYSImJiFyKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP2EhPT1lfHwhcjohZS5oYXMoYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHQ9PT0ibSI/cjp0PT09ImEiP3IuY2FsbChhKTpyP3IudmFsdWU6ZS5nZXQoYSl9ZnVuY3Rpb24gajhhKGEsZSx0LHIsaSl7aWYocj09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihyPT09ImEiJiYhaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj9hIT09ZXx8IWk6IWUuaGFzKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0iYSI/aS5jYWxsKGEsdCk6aT9pLnZhbHVlPXQ6ZS5zZXQoYSx0KSx0fWZ1bmN0aW9uIFU4YShhLGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiBhPT0iZnVuY3Rpb24iP2U9PT1hOmEuaGFzKGUpfWZ1bmN0aW9uIFc4YShhLGUsdCl7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIHIsaTtpZih0KXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO3I9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihyPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7cj1lW1N5bWJvbC5kaXNwb3NlXSx0JiYoaT1yKX1pZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7aSYmKHI9cyhmdW5jdGlvbigpe3RyeXtpLmNhbGwodGhpcyl9Y2F0Y2gobyl7cmV0dXJuIFByb21pc2UucmVqZWN0KG8pfX0sImRpc3Bvc2UiKSksYS5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6cixhc3luYzp0fSl9ZWxzZSB0JiZhLnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gWThhKGEpe2Z1bmN0aW9uIGUobyl7YS5lcnJvcj1hLmhhc0Vycm9yP25ldyBHOGEobyxhLmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6byxhLmhhc0Vycm9yPSEwfXMoZSwiZmFpbCIpO3ZhciB0LHI9MDtmdW5jdGlvbiBpKCl7Zm9yKDt0PWEuc3RhY2sucG9wKCk7KXRyeXtpZighdC5hc3luYyYmcj09PTEpcmV0dXJuIHI9MCxhLnN0YWNrLnB1c2godCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihpKTtpZih0LmRpc3Bvc2Upe3ZhciBvPXQuZGlzcG9zZS5jYWxsKHQudmFsdWUpO2lmKHQuYXN5bmMpcmV0dXJuIHJ8PTIsUHJvbWlzZS5yZXNvbHZlKG8pLnRoZW4oaSxmdW5jdGlvbihuKXtyZXR1cm4gZShuKSxpKCl9KX1lbHNlIHJ8PTF9Y2F0Y2gobil7ZShuKX1pZihyPT09MSlyZXR1cm4gYS5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChhLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZihhLmhhc0Vycm9yKXRocm93IGEuZXJyb3J9cmV0dXJuIHMoaSwibmV4dCIpLGkoKX1mdW5jdGlvbiBLOGEoYSxlKXtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QoYSk/YS5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHQscixpLG8sbil7cmV0dXJuIHI/ZT8iLmpzeCI6Ii5qcyI6aSYmKCFvfHwhbik/dDppK28rIi4iK24udG9Mb3dlckNhc2UoKSsianMifSk6YX12YXIgYW9lLHJvZSxzb2UsQjhhLGlvZSxHOGEsa0JhLEhhPWYoKCk9Pnthb2U9cyhmdW5jdGlvbihhLGUpe3JldHVybiBhb2U9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQscil7dC5fX3Byb3RvX189cn18fGZ1bmN0aW9uKHQscil7Zm9yKHZhciBpIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsaSkmJih0W2ldPXJbaV0pfSxhb2UoYSxlKX0sImV4dGVuZFN0YXRpY3MiKTtzKG5hLCJfX2V4dGVuZHMiKTtyb2U9cyhmdW5jdGlvbigpe3JldHVybiByb2U9T2JqZWN0LmFzc2lnbnx8cyhmdW5jdGlvbihlKXtmb3IodmFyIHQscj0xLGk9YXJndW1lbnRzLmxlbmd0aDtyPGk7cisrKXt0PWFyZ3VtZW50c1tyXTtmb3IodmFyIG8gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmKGVbb109dFtvXSl9cmV0dXJuIGV9LCJfX2Fzc2lnbiIpLHJvZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJfX2Fzc2lnbiIpO3MoXzhhLCJfX3Jlc3QiKTtzKFQ4YSwiX19kZWNvcmF0ZSIpO3MoTDhhLCJfX3BhcmFtIik7cygkOGEsIl9fZXNEZWNvcmF0ZSIpO3MoRDhhLCJfX3J1bkluaXRpYWxpemVycyIpO3MoQThhLCJfX3Byb3BLZXkiKTtzKFA4YSwiX19zZXRGdW5jdGlvbk5hbWUiKTtzKEU4YSwiX19tZXRhZGF0YSIpO3Mob29lLCJfX2F3YWl0ZXIiKTtzKFI3LCJfX2dlbmVyYXRvciIpO3NvZT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihhLGUsdCxyKXtyPT09dm9pZCAwJiYocj10KTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7KCFpfHwoImdldCJpbiBpPyFlLl9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OnMoZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEscixpKX0pOihmdW5jdGlvbihhLGUsdCxyKXtyPT09dm9pZCAwJiYocj10KSxhW3JdPWVbdF19KTtzKEk4YSwiX19leHBvcnRTdGFyIik7cyh2aSwiX192YWx1ZXMiKTtzKFByLCJfX3JlYWQiKTtzKE44YSwiX19zcHJlYWQiKTtzKFI4YSwiX19zcHJlYWRBcnJheXMiKTtzKFNzLCJfX3NwcmVhZEFycmF5Iik7cyh2bCwiX19hd2FpdCIpO3Mobm9lLCJfX2FzeW5jR2VuZXJhdG9yIik7cyhPOGEsIl9fYXN5bmNEZWxlZ2F0b3IiKTtzKGxvZSwiX19hc3luY1ZhbHVlcyIpO3MoRjhhLCJfX21ha2VUZW1wbGF0ZU9iamVjdCIpO0I4YT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihhLGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbihhLGUpe2EuZGVmYXVsdD1lfSxpb2U9cyhmdW5jdGlvbihhKXtyZXR1cm4gaW9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbdC5sZW5ndGhdPXIpO3JldHVybiB0fSxpb2UoYSl9LCJvd25LZXlzIik7cyhIOGEsIl9faW1wb3J0U3RhciIpO3MocThhLCJfX2ltcG9ydERlZmF1bHQiKTtzKFY4YSwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIpO3MoajhhLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iik7cyhVOGEsIl9fY2xhc3NQcml2YXRlRmllbGRJbiIpO3MoVzhhLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIpO0c4YT10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbihhLGUsdCl7dmFyIHI9bmV3IEVycm9yKHQpO3JldHVybiByLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsci5lcnJvcj1hLHIuc3VwcHJlc3NlZD1lLHJ9O3MoWThhLCJfX2Rpc3Bvc2VSZXNvdXJjZXMiKTtzKEs4YSwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iKTtrQmE9e19fZXh0ZW5kczpuYSxfX2Fzc2lnbjpyb2UsX19yZXN0Ol84YSxfX2RlY29yYXRlOlQ4YSxfX3BhcmFtOkw4YSxfX2VzRGVjb3JhdGU6JDhhLF9fcnVuSW5pdGlhbGl6ZXJzOkQ4YSxfX3Byb3BLZXk6QThhLF9fc2V0RnVuY3Rpb25OYW1lOlA4YSxfX21ldGFkYXRhOkU4YSxfX2F3YWl0ZXI6b29lLF9fZ2VuZXJhdG9yOlI3LF9fY3JlYXRlQmluZGluZzpzb2UsX19leHBvcnRTdGFyOkk4YSxfX3ZhbHVlczp2aSxfX3JlYWQ6UHIsX19zcHJlYWQ6TjhhLF9fc3ByZWFkQXJyYXlzOlI4YSxfX3NwcmVhZEFycmF5OlNzLF9fYXdhaXQ6dmwsX19hc3luY0dlbmVyYXRvcjpub2UsX19hc3luY0RlbGVnYXRvcjpPOGEsX19hc3luY1ZhbHVlczpsb2UsX19tYWtlVGVtcGxhdGVPYmplY3Q6RjhhLF9faW1wb3J0U3RhcjpIOGEsX19pbXBvcnREZWZhdWx0OnE4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OlY4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Omo4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46VThhLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOlc4YSxfX2Rpc3Bvc2VSZXNvdXJjZXM6WThhLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOks4YX19KTtmdW5jdGlvbiBPdChhKXtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiJ9dmFyIEJzPWYoKCk9PntzKE90LCJpc0Z1bmN0aW9uIil9KTtmdW5jdGlvbiBTbyhhKXt2YXIgZT1zKGZ1bmN0aW9uKHIpe0Vycm9yLmNhbGwociksci5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja30sIl9zdXBlciIpLHQ9YShlKTtyZXR1cm4gdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdH12YXIgUWM9ZigoKT0+e3MoU28sImNyZWF0ZUVycm9yQ2xhc3MiKX0pO3ZhciBPNyxjb2U9ZigoKT0+e1FjKCk7Tzc9U28oZnVuY3Rpb24oYSl7cmV0dXJuIHMoZnVuY3Rpb24odCl7YSh0aGlzKSx0aGlzLm1lc3NhZ2U9dD90Lmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArdC5tYXAoZnVuY3Rpb24ocixpKXtyZXR1cm4gaSsxKyIpICIrci50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz10fSwiVW5zdWJzY3JpcHRpb25FcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gYTEoYSxlKXtpZihhKXt2YXIgdD1hLmluZGV4T2YoZSk7MDw9dCYmYS5zcGxpY2UodCwxKX19dmFyIEg1PWYoKCk9PntzKGExLCJhcnJSZW1vdmUiKX0pO2Z1bmN0aW9uIEpHKGEpe3JldHVybiBhIGluc3RhbmNlb2YgV3J8fGEmJiJjbG9zZWQiaW4gYSYmT3QoYS5yZW1vdmUpJiZPdChhLmFkZCkmJk90KGEudW5zdWJzY3JpYmUpfWZ1bmN0aW9uIHlhdChhKXtPdChhKT9hKCk6YS51bnN1YnNjcmliZSgpfXZhciBXcixkb2UsbjI9ZigoKT0+e0hhKCk7QnMoKTtjb2UoKTtINSgpO1dyPShmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZSl7dGhpcy5pbml0aWFsVGVhcmRvd249ZSx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl9maW5hbGl6ZXJzPW51bGx9cmV0dXJuIHMoYSwiU3Vic2NyaXB0aW9uIiksYS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgZSx0LHIsaSxvO2lmKCF0aGlzLmNsb3NlZCl7dGhpcy5jbG9zZWQ9ITA7dmFyIG49dGhpcy5fcGFyZW50YWdlO2lmKG4paWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShuKSl0cnl7Zm9yKHZhciBsPXZpKG4pLGQ9bC5uZXh0KCk7IWQuZG9uZTtkPWwubmV4dCgpKXt2YXIgYz1kLnZhbHVlO2MucmVtb3ZlKHRoaXMpfX1jYXRjaChiKXtlPXtlcnJvcjpifX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYodD1sLnJldHVybikmJnQuY2FsbChsKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19ZWxzZSBuLnJlbW92ZSh0aGlzKTt2YXIgcD10aGlzLmluaXRpYWxUZWFyZG93bjtpZihPdChwKSl0cnl7cCgpfWNhdGNoKGIpe289YiBpbnN0YW5jZW9mIE83P2IuZXJyb3JzOltiXX12YXIgdT10aGlzLl9maW5hbGl6ZXJzO2lmKHUpe3RoaXMuX2ZpbmFsaXplcnM9bnVsbDt0cnl7Zm9yKHZhciBtPXZpKHUpLHY9bS5uZXh0KCk7IXYuZG9uZTt2PW0ubmV4dCgpKXt2YXIgeD12LnZhbHVlO3RyeXt5YXQoeCl9Y2F0Y2goYil7bz1vPz9bXSxiIGluc3RhbmNlb2YgTzc/bz1TcyhTcyhbXSxQcihvKSksUHIoYi5lcnJvcnMpKTpvLnB1c2goYil9fX1jYXRjaChiKXtyPXtlcnJvcjpifX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYoaT1tLnJldHVybikmJmkuY2FsbChtKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19fWlmKG8pdGhyb3cgbmV3IE83KG8pfX0sYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUmJmUhPT10aGlzKWlmKHRoaXMuY2xvc2VkKXlhdChlKTtlbHNle2lmKGUgaW5zdGFuY2VvZiBhKXtpZihlLmNsb3NlZHx8ZS5faGFzUGFyZW50KHRoaXMpKXJldHVybjtlLl9hZGRQYXJlbnQodGhpcyl9KHRoaXMuX2ZpbmFsaXplcnM9KHQ9dGhpcy5fZmluYWxpemVycykhPT1udWxsJiZ0IT09dm9pZCAwP3Q6W10pLnB1c2goZSl9fSxhLnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gdD09PWV8fEFycmF5LmlzQXJyYXkodCkmJnQuaW5jbHVkZXMoZSl9LGEucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KHQpPyh0LnB1c2goZSksdCk6dD9bdCxlXTplfSxhLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3BhcmVudGFnZTt0PT09ZT90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KHQpJiZhMSh0LGUpfSxhLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZmluYWxpemVyczt0JiZhMSh0LGUpLGUgaW5zdGFuY2VvZiBhJiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LGEuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IGE7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLGF9KSgpLGRvZT1Xci5FTVBUWTtzKEpHLCJpc1N1YnNjcmlwdGlvbiIpO3MoeWF0LCJleGVjRmluYWxpemVyIil9KTt2YXIgYm4scTU9ZigoKT0+e2JuPXtvblVuaGFuZGxlZEVycm9yOm51bGwsb25TdG9wcGVkTm90aWZpY2F0aW9uOm51bGwsUHJvbWlzZTp2b2lkIDAsdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZzohMSx1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6ITF9fSk7dmFyIFY1LHVvZT1mKCgpPT57SGEoKTtWNT17c2V0VGltZW91dDpzKGZ1bmN0aW9uKGEsZSl7Zm9yKHZhciB0PVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbci0yXT1hcmd1bWVudHNbcl07dmFyIGk9VjUuZGVsZWdhdGU7cmV0dXJuIGk/LnNldFRpbWVvdXQ/aS5zZXRUaW1lb3V0LmFwcGx5KGksU3MoW2EsZV0sUHIodCkpKTpzZXRUaW1lb3V0LmFwcGx5KHZvaWQgMCxTcyhbYSxlXSxQcih0KSkpfSwic2V0VGltZW91dCIpLGNsZWFyVGltZW91dDpzKGZ1bmN0aW9uKGEpe3ZhciBlPVY1LmRlbGVnYXRlO3JldHVybihlPy5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkoYSl9LCJjbGVhclRpbWVvdXQiKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gZVkoYSl7VjUuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPWJuLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKGEpO2Vsc2UgdGhyb3cgYX0pfXZhciBwb2U9ZigoKT0+e3E1KCk7dW9lKCk7cyhlWSwicmVwb3J0VW5oYW5kbGVkRXJyb3IiKX0pO2Z1bmN0aW9uIHZuKCl7fXZhciB0Mz1mKCgpPT57cyh2biwibm9vcCIpfSk7ZnVuY3Rpb24gTWF0KGEpe3JldHVybiBmb2UoIkUiLHZvaWQgMCxhKX1mdW5jdGlvbiBrYXQoYSl7cmV0dXJuIGZvZSgiTiIsYSx2b2lkIDApfWZ1bmN0aW9uIGZvZShhLGUsdCl7cmV0dXJue2tpbmQ6YSx2YWx1ZTplLGVycm9yOnR9fXZhciB3YXQsU2F0PWYoKCk9Pnt3YXQ9KGZ1bmN0aW9uKCl7cmV0dXJuIGZvZSgiQyIsdm9pZCAwLHZvaWQgMCl9KSgpO3MoTWF0LCJlcnJvck5vdGlmaWNhdGlvbiIpO3Moa2F0LCJuZXh0Tm90aWZpY2F0aW9uIik7cyhmb2UsImNyZWF0ZU5vdGlmaWNhdGlvbiIpfSk7ZnVuY3Rpb24gajUoYSl7aWYoYm4udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7dmFyIGU9IWEzO2lmKGUmJihhMz17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLGEoKSxlKXt2YXIgdD1hMyxyPXQuZXJyb3JUaHJvd24saT10LmVycm9yO2lmKGEzPW51bGwscil0aHJvdyBpfX1lbHNlIGEoKX1mdW5jdGlvbiB6YXQoYSl7Ym4udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmYTMmJihhMy5lcnJvclRocm93bj0hMCxhMy5lcnJvcj1hKX12YXIgYTMsdFk9ZigoKT0+e3E1KCk7YTM9bnVsbDtzKGo1LCJlcnJvckNvbnRleHQiKTtzKHphdCwiY2FwdHVyZUVycm9yIil9KTtmdW5jdGlvbiBob2UoYSxlKXtyZXR1cm4gWjhhLmNhbGwoYSxlKX1mdW5jdGlvbiBhWShhKXtibi51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP3phdChhKTplWShhKX1mdW5jdGlvbiBROGEoYSl7dGhyb3cgYX1mdW5jdGlvbiBtb2UoYSxlKXt2YXIgdD1ibi5vblN0b3BwZWROb3RpZmljYXRpb247dCYmVjUuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0KGEsZSl9KX12YXIgcjMsWjhhLFg4YSxKYyxKOGEsRjc9ZigoKT0+e0hhKCk7QnMoKTtuMigpO3E1KCk7cG9lKCk7dDMoKTtTYXQoKTt1b2UoKTt0WSgpO3IzPShmdW5jdGlvbihhKXtuYShlLGEpO2Z1bmN0aW9uIGUodCl7dmFyIHI9YS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLmlzU3RvcHBlZD0hMSx0PyhyLmRlc3RpbmF0aW9uPXQsSkcodCkmJnQuYWRkKHIpKTpyLmRlc3RpbmF0aW9uPUo4YSxyfXJldHVybiBzKGUsIlN1YnNjcmliZXIiKSxlLmNyZWF0ZT1mdW5jdGlvbih0LHIsaSl7cmV0dXJuIG5ldyBKYyh0LHIsaSl9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dGhpcy5pc1N0b3BwZWQ/bW9lKGthdCh0KSx0aGlzKTp0aGlzLl9uZXh0KHQpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt0aGlzLmlzU3RvcHBlZD9tb2UoTWF0KHQpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcih0KSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/bW9lKHdhdCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCxhLnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLHRoaXMuZGVzdGluYXRpb249bnVsbCl9LGUucHJvdG90eXBlLl9uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuZGVzdGluYXRpb24ubmV4dCh0KX0sZS5wcm90b3R5cGUuX2Vycm9yPWZ1bmN0aW9uKHQpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZS5wcm90b3R5cGUuX2NvbXBsZXRlPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LGV9KShXciksWjhhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO3MoaG9lLCJiaW5kIik7WDhhPShmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gcyhhLCJDb25zdW1lck9ic2VydmVyIiksYS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZih0Lm5leHQpdHJ5e3QubmV4dChlKX1jYXRjaChyKXthWShyKX19LGEucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHQuZXJyb3IpdHJ5e3QuZXJyb3IoZSl9Y2F0Y2gocil7YVkocil9ZWxzZSBhWShlKX0sYS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2godCl7YVkodCl9fSxhfSkoKSxKYz0oZnVuY3Rpb24oYSl7bmEoZSxhKTtmdW5jdGlvbiBlKHQscixpKXt2YXIgbz1hLmNhbGwodGhpcyl8fHRoaXMsbjtpZihPdCh0KXx8IXQpbj17bmV4dDp0Pz92b2lkIDAsZXJyb3I6cj8/dm9pZCAwLGNvbXBsZXRlOmk/P3ZvaWQgMH07ZWxzZXt2YXIgbDtvJiZibi51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KGw9T2JqZWN0LmNyZWF0ZSh0KSxsLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIG8udW5zdWJzY3JpYmUoKX0sbj17bmV4dDp0Lm5leHQmJmhvZSh0Lm5leHQsbCksZXJyb3I6dC5lcnJvciYmaG9lKHQuZXJyb3IsbCksY29tcGxldGU6dC5jb21wbGV0ZSYmaG9lKHQuY29tcGxldGUsbCl9KTpuPXR9cmV0dXJuIG8uZGVzdGluYXRpb249bmV3IFg4YShuKSxvfXJldHVybiBzKGUsIlNhZmVTdWJzY3JpYmVyIiksZX0pKHIzKTtzKGFZLCJoYW5kbGVVbmhhbmRsZWRFcnJvciIpO3MoUThhLCJkZWZhdWx0RXJyb3JIYW5kbGVyIik7cyhtb2UsImhhbmRsZVN0b3BwZWROb3RpZmljYXRpb24iKTtKOGE9e2Nsb3NlZDohMCxuZXh0OnZuLGVycm9yOlE4YSxjb21wbGV0ZTp2bn19KTt2YXIgczMsQjc9ZigoKT0+e3MzPShmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSJ9KSgpfSk7ZnVuY3Rpb24gbDIoYSl7cmV0dXJuIGF9dmFyIFU1PWYoKCk9PntzKGwyLCJpZGVudGl0eSIpfSk7ZnVuY3Rpb24gZW1hKCl7Zm9yKHZhciBhPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWFbZV09YXJndW1lbnRzW2VdO3JldHVybiBnb2UoYSl9ZnVuY3Rpb24gZ29lKGEpe3JldHVybiBhLmxlbmd0aD09PTA/bDI6YS5sZW5ndGg9PT0xP2FbMF06cyhmdW5jdGlvbih0KXtyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24ocixpKXtyZXR1cm4gaShyKX0sdCl9LCJwaXBlZCIpfXZhciBib2U9ZigoKT0+e1U1KCk7cyhlbWEsInBpcGUiKTtzKGdvZSwicGlwZUZyb21BcnJheSIpfSk7ZnVuY3Rpb24gQ2F0KGEpe3ZhciBlO3JldHVybihlPWE/P2JuLlByb21pc2UpIT09bnVsbCYmZSE9PXZvaWQgMD9lOlByb21pc2V9ZnVuY3Rpb24gdG1hKGEpe3JldHVybiBhJiZPdChhLm5leHQpJiZPdChhLmVycm9yKSYmT3QoYS5jb21wbGV0ZSl9ZnVuY3Rpb24gYW1hKGEpe3JldHVybiBhJiZhIGluc3RhbmNlb2YgcjN8fHRtYShhKSYmSkcoYSl9dmFyIEJ0LFZpPWYoKCk9PntGNygpO24yKCk7QjcoKTtib2UoKTtxNSgpO0JzKCk7dFkoKTtCdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe2UmJih0aGlzLl9zdWJzY3JpYmU9ZSl9cmV0dXJuIHMoYSwiT2JzZXJ2YWJsZSIpLGEucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IGE7cmV0dXJuIHQuc291cmNlPXRoaXMsdC5vcGVyYXRvcj1lLHR9LGEucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlLHQscil7dmFyIGk9dGhpcyxvPWFtYShlKT9lOm5ldyBKYyhlLHQscik7cmV0dXJuIGo1KGZ1bmN0aW9uKCl7dmFyIG49aSxsPW4ub3BlcmF0b3IsZD1uLnNvdXJjZTtvLmFkZChsP2wuY2FsbChvLGQpOmQ/aS5fc3Vic2NyaWJlKG8pOmkuX3RyeVN1YnNjcmliZShvKSl9KSxvfSxhLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKGUpfWNhdGNoKHQpe2UuZXJyb3IodCl9fSxhLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztyZXR1cm4gdD1DYXQodCksbmV3IHQoZnVuY3Rpb24oaSxvKXt2YXIgbj1uZXcgSmMoe25leHQ6cyhmdW5jdGlvbihsKXt0cnl7ZShsKX1jYXRjaChkKXtvKGQpLG4udW5zdWJzY3JpYmUoKX19LCJuZXh0IiksZXJyb3I6byxjb21wbGV0ZTppfSk7ci5zdWJzY3JpYmUobil9KX0sYS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4odD10aGlzLnNvdXJjZSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnN1YnNjcmliZShlKX0sYS5wcm90b3R5cGVbczNdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIGdvZShlKSh0aGlzKX0sYS5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGU9Q2F0KGUpLG5ldyBlKGZ1bmN0aW9uKHIsaSl7dmFyIG87dC5zdWJzY3JpYmUoZnVuY3Rpb24obil7cmV0dXJuIG89bn0sZnVuY3Rpb24obil7cmV0dXJuIGkobil9LGZ1bmN0aW9uKCl7cmV0dXJuIHIobyl9KX0pfSxhLmNyZWF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGEoZSl9LGF9KSgpO3MoQ2F0LCJnZXRQcm9taXNlQ3RvciIpO3ModG1hLCJpc09ic2VydmVyIik7cyhhbWEsImlzU3Vic2NyaWJlciIpfSk7ZnVuY3Rpb24gdm9lKGEpe3JldHVybiBPdChhPy5saWZ0KX1mdW5jdGlvbiB3YShhKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYodm9lKGUpKXJldHVybiBlLmxpZnQoZnVuY3Rpb24odCl7dHJ5e3JldHVybiBhKHQsdGhpcyl9Y2F0Y2gocil7dGhpcy5lcnJvcihyKX19KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZSIpfX12YXIgbHM9ZigoKT0+e0JzKCk7cyh2b2UsImhhc0xpZnQiKTtzKHdhLCJvcGVyYXRlIil9KTtmdW5jdGlvbiBsYShhLGUsdCxyLGkpe3JldHVybiBuZXcgX2F0KGEsZSx0LHIsaSl9dmFyIF9hdCxIcz1mKCgpPT57SGEoKTtGNygpO3MobGEsImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIpO19hdD0oZnVuY3Rpb24oYSl7bmEoZSxhKTtmdW5jdGlvbiBlKHQscixpLG8sbixsKXt2YXIgZD1hLmNhbGwodGhpcyx0KXx8dGhpcztyZXR1cm4gZC5vbkZpbmFsaXplPW4sZC5zaG91bGRVbnN1YnNjcmliZT1sLGQuX25leHQ9cj9mdW5jdGlvbihjKXt0cnl7cihjKX1jYXRjaChwKXt0LmVycm9yKHApfX06YS5wcm90b3R5cGUuX25leHQsZC5fZXJyb3I9bz9mdW5jdGlvbihjKXt0cnl7byhjKX1jYXRjaChwKXt0LmVycm9yKHApfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06YS5wcm90b3R5cGUuX2Vycm9yLGQuX2NvbXBsZXRlPWk/ZnVuY3Rpb24oKXt0cnl7aSgpfWNhdGNoKGMpe3QuZXJyb3IoYyl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTphLnByb3RvdHlwZS5fY29tcGxldGUsZH1yZXR1cm4gcyhlLCJPcGVyYXRvclN1YnNjcmliZXIiKSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciB0O2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciByPXRoaXMuY2xvc2VkO2EucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIXImJigodD10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8dD09PXZvaWQgMHx8dC5jYWxsKHRoaXMpKX19LGV9KShyMyl9KTtmdW5jdGlvbiByWSgpe3JldHVybiB3YShmdW5jdGlvbihhLGUpe3ZhciB0PW51bGw7YS5fcmVmQ291bnQrKzt2YXIgcj1sYShlLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIWF8fGEuX3JlZkNvdW50PD0wfHwwPC0tYS5fcmVmQ291bnQpe3Q9bnVsbDtyZXR1cm59dmFyIGk9YS5fY29ubmVjdGlvbixvPXQ7dD1udWxsLGkmJighb3x8aT09PW8pJiZpLnVuc3Vic2NyaWJlKCksZS51bnN1YnNjcmliZSgpfSk7YS5zdWJzY3JpYmUociksci5jbG9zZWR8fCh0PWEuY29ubmVjdCgpKX0pfXZhciBzWT1mKCgpPT57bHMoKTtIcygpO3MoclksInJlZkNvdW50Iil9KTt2YXIgVGF0LExhdD1mKCgpPT57SGEoKTtWaSgpO24yKCk7c1koKTtIcygpO2xzKCk7VGF0PShmdW5jdGlvbihhKXtuYShlLGEpO2Z1bmN0aW9uIGUodCxyKXt2YXIgaT1hLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuc291cmNlPXQsaS5zdWJqZWN0RmFjdG9yeT1yLGkuX3N1YmplY3Q9bnVsbCxpLl9yZWZDb3VudD0wLGkuX2Nvbm5lY3Rpb249bnVsbCx2b2UodCkmJihpLmxpZnQ9dC5saWZ0KSxpfXJldHVybiBzKGUsIkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSIpLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0U3ViamVjdCgpLnN1YnNjcmliZSh0KX0sZS5wcm90b3R5cGUuZ2V0U3ViamVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3N1YmplY3Q7cmV0dXJuKCF0fHx0LmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhpcy5fc3ViamVjdH0sZS5wcm90b3R5cGUuX3RlYXJkb3duPWZ1bmN0aW9uKCl7dGhpcy5fcmVmQ291bnQ9MDt2YXIgdD10aGlzLl9jb25uZWN0aW9uO3RoaXMuX3N1YmplY3Q9dGhpcy5fY29ubmVjdGlvbj1udWxsLHQ/LnVuc3Vic2NyaWJlKCl9LGUucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9dGhpcy5fY29ubmVjdGlvbjtpZighcil7cj10aGlzLl9jb25uZWN0aW9uPW5ldyBXcjt2YXIgaT10aGlzLmdldFN1YmplY3QoKTtyLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUobGEoaSx2b2lkIDAsZnVuY3Rpb24oKXt0Ll90ZWFyZG93bigpLGkuY29tcGxldGUoKX0sZnVuY3Rpb24obyl7dC5fdGVhcmRvd24oKSxpLmVycm9yKG8pfSxmdW5jdGlvbigpe3JldHVybiB0Ll90ZWFyZG93bigpfSkpKSxyLmNsb3NlZCYmKHRoaXMuX2Nvbm5lY3Rpb249bnVsbCxyPVdyLkVNUFRZKX1yZXR1cm4gcn0sZS5wcm90b3R5cGUucmVmQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gclkoKSh0aGlzKX0sZX0pKEJ0KX0pO3ZhciB4b2UsJGF0PWYoKCk9Pnt4b2U9e25vdzpzKGZ1bmN0aW9uKCl7cmV0dXJuKHhvZS5kZWxlZ2F0ZXx8cGVyZm9ybWFuY2UpLm5vdygpfSwibm93IiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciB4bCx5b2U9ZigoKT0+e0hhKCk7bjIoKTt4bD17c2NoZWR1bGU6cyhmdW5jdGlvbihhKXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsdD1jYW5jZWxBbmltYXRpb25GcmFtZSxyPXhsLmRlbGVnYXRlO3ImJihlPXIucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHQ9ci5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIGk9ZShmdW5jdGlvbihvKXt0PXZvaWQgMCxhKG8pfSk7cmV0dXJuIG5ldyBXcihmdW5jdGlvbigpe3JldHVybiB0Py4oaSl9KX0sInNjaGVkdWxlIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lOnMoZnVuY3Rpb24oKXtmb3IodmFyIGE9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspYVtlXT1hcmd1bWVudHNbZV07dmFyIHQ9eGwuZGVsZWdhdGU7cmV0dXJuKHQ/LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsU3MoW10sUHIoYSkpKX0sInJlcXVlc3RBbmltYXRpb25GcmFtZSIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lOnMoZnVuY3Rpb24oKXtmb3IodmFyIGE9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspYVtlXT1hcmd1bWVudHNbZV07dmFyIHQ9eGwuZGVsZWdhdGU7cmV0dXJuKHQ/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLFNzKFtdLFByKGEpKSl9LCJjYW5jZWxBbmltYXRpb25GcmFtZSIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBybWEoYSl7cmV0dXJuIGE/RGF0KGEpOnNtYX1mdW5jdGlvbiBEYXQoYSl7cmV0dXJuIG5ldyBCdChmdW5jdGlvbihlKXt2YXIgdD1hfHx4b2Uscj10Lm5vdygpLGk9MCxvPXMoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KGk9eGwucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKG4pe2k9MDt2YXIgbD10Lm5vdygpO2UubmV4dCh7dGltZXN0YW1wOmE/bDpuLGVsYXBzZWQ6bC1yfSksbygpfSkpfSwicnVuIik7cmV0dXJuIG8oKSxmdW5jdGlvbigpe2kmJnhsLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGkpfX0pfXZhciBzbWEsQWF0PWYoKCk9PntWaSgpOyRhdCgpO3lvZSgpO3Mocm1hLCJhbmltYXRpb25GcmFtZXMiKTtzKERhdCwiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIpO3NtYT1EYXQoKX0pO3ZhciB3b2UsTW9lPWYoKCk9PntRYygpO3dvZT1TbyhmdW5jdGlvbihhKXtyZXR1cm4gcyhmdW5jdGlvbigpe2EodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0sIk9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCIpfSl9KTt2YXIgeGksa29lLFc1PWYoKCk9PntIYSgpO1ZpKCk7bjIoKTtNb2UoKTtINSgpO3RZKCk7eGk9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSgpe3ZhciB0PWEuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gdC5jbG9zZWQ9ITEsdC5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsdC5vYnNlcnZlcnM9W10sdC5pc1N0b3BwZWQ9ITEsdC5oYXNFcnJvcj0hMSx0LnRocm93bkVycm9yPW51bGwsdH1yZXR1cm4gcyhlLCJTdWJqZWN0IiksZS5wcm90b3R5cGUubGlmdD1mdW5jdGlvbih0KXt2YXIgcj1uZXcga29lKHRoaXMsdGhpcyk7cmV0dXJuIHIub3BlcmF0b3I9dCxyfSxlLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyB3b2V9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcztqNShmdW5jdGlvbigpe3ZhciBpLG87aWYoci5fdGhyb3dJZkNsb3NlZCgpLCFyLmlzU3RvcHBlZCl7ci5jdXJyZW50T2JzZXJ2ZXJzfHwoci5jdXJyZW50T2JzZXJ2ZXJzPUFycmF5LmZyb20oci5vYnNlcnZlcnMpKTt0cnl7Zm9yKHZhciBuPXZpKHIuY3VycmVudE9ic2VydmVycyksbD1uLm5leHQoKTshbC5kb25lO2w9bi5uZXh0KCkpe3ZhciBkPWwudmFsdWU7ZC5uZXh0KHQpfX1jYXRjaChjKXtpPXtlcnJvcjpjfX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobz1uLnJldHVybikmJm8uY2FsbChuKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19fX0pfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgcj10aGlzO2o1KGZ1bmN0aW9uKCl7aWYoci5fdGhyb3dJZkNsb3NlZCgpLCFyLmlzU3RvcHBlZCl7ci5oYXNFcnJvcj1yLmlzU3RvcHBlZD0hMCxyLnRocm93bkVycm9yPXQ7Zm9yKHZhciBpPXIub2JzZXJ2ZXJzO2kubGVuZ3RoOylpLnNoaWZ0KCkuZXJyb3IodCl9fSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztqNShmdW5jdGlvbigpe2lmKHQuX3Rocm93SWZDbG9zZWQoKSwhdC5pc1N0b3BwZWQpe3QuaXNTdG9wcGVkPSEwO2Zvcih2YXIgcj10Lm9ic2VydmVycztyLmxlbmd0aDspci5zaGlmdCgpLmNvbXBsZXRlKCl9fSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ9dGhpcy5jbG9zZWQ9ITAsdGhpcy5vYnNlcnZlcnM9dGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGx9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwib2JzZXJ2ZWQiLHtnZXQ6cyhmdW5jdGlvbigpe3ZhciB0O3JldHVybigodD10aGlzLm9ic2VydmVycyk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0Lmxlbmd0aCk+MH0sImdldCIpLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuX3RyeVN1YnNjcmliZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLGEucHJvdG90eXBlLl90cnlTdWJzY3JpYmUuY2FsbCh0aGlzLHQpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyh0KSx0aGlzLl9pbm5lclN1YnNjcmliZSh0KX0sZS5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMsaT10aGlzLG89aS5oYXNFcnJvcixuPWkuaXNTdG9wcGVkLGw9aS5vYnNlcnZlcnM7cmV0dXJuIG98fG4/ZG9lOih0aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCxsLnB1c2godCksbmV3IFdyKGZ1bmN0aW9uKCl7ci5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsYTEobCx0KX0pKX0sZS5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcyxpPXIuaGFzRXJyb3Isbz1yLnRocm93bkVycm9yLG49ci5pc1N0b3BwZWQ7aT90LmVycm9yKG8pOm4mJnQuY29tcGxldGUoKX0sZS5wcm90b3R5cGUuYXNPYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEJ0O3JldHVybiB0LnNvdXJjZT10aGlzLHR9LGUuY3JlYXRlPWZ1bmN0aW9uKHQscil7cmV0dXJuIG5ldyBrb2UodCxyKX0sZX0pKEJ0KSxrb2U9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSh0LHIpe3ZhciBpPWEuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5kZXN0aW5hdGlvbj10LGkuc291cmNlPXIsaX1yZXR1cm4gcyhlLCJBbm9ueW1vdXNTdWJqZWN0IiksZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgcixpOyhpPShyPXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5uZXh0KT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChyLHQpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgcixpOyhpPShyPXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5lcnJvcik9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwocix0KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdCxyOyhyPSh0PXRoaXMuZGVzdGluYXRpb24pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5jb21wbGV0ZSk9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwodCl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIHIsaTtyZXR1cm4oaT0ocj10aGlzLnNvdXJjZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnN1YnNjcmliZSh0KSkhPT1udWxsJiZpIT09dm9pZCAwP2k6ZG9lfSxlfSkoeGkpfSk7dmFyIEc1LFBhdD1mKCgpPT57SGEoKTtXNSgpO0c1PShmdW5jdGlvbihhKXtuYShlLGEpO2Z1bmN0aW9uIGUodCl7dmFyIHI9YS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLl92YWx1ZT10LHJ9cmV0dXJuIHMoZSwiQmVoYXZpb3JTdWJqZWN0IiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ2YWx1ZSIse2dldDpzKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUoKX0sImdldCIpLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbih0KXt2YXIgcj1hLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcyx0KTtyZXR1cm4hci5jbG9zZWQmJnQubmV4dCh0aGlzLl92YWx1ZSkscn0sZS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9dC5oYXNFcnJvcixpPXQudGhyb3duRXJyb3Isbz10Ll92YWx1ZTtpZihyKXRocm93IGk7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxvfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe2EucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHRoaXMuX3ZhbHVlPXQpfSxlfSkoeGkpfSk7dmFyIEg3LFNvZT1mKCgpPT57SDc9e25vdzpzKGZ1bmN0aW9uKCl7cmV0dXJuKEg3LmRlbGVnYXRlfHxEYXRlKS5ub3coKX0sIm5vdyIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgWTUsem9lPWYoKCk9PntIYSgpO1c1KCk7U29lKCk7WTU9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSh0LHIsaSl7dD09PXZvaWQgMCYmKHQ9MS8wKSxyPT09dm9pZCAwJiYocj0xLzApLGk9PT12b2lkIDAmJihpPUg3KTt2YXIgbz1hLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG8uX2J1ZmZlclNpemU9dCxvLl93aW5kb3dUaW1lPXIsby5fdGltZXN0YW1wUHJvdmlkZXI9aSxvLl9idWZmZXI9W10sby5faW5maW5pdGVUaW1lV2luZG93PSEwLG8uX2luZmluaXRlVGltZVdpbmRvdz1yPT09MS8wLG8uX2J1ZmZlclNpemU9TWF0aC5tYXgoMSx0KSxvLl93aW5kb3dUaW1lPU1hdGgubWF4KDEsciksb31yZXR1cm4gcyhlLCJSZXBsYXlTdWJqZWN0IiksZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLGk9ci5pc1N0b3BwZWQsbz1yLl9idWZmZXIsbj1yLl9pbmZpbml0ZVRpbWVXaW5kb3csbD1yLl90aW1lc3RhbXBQcm92aWRlcixkPXIuX3dpbmRvd1RpbWU7aXx8KG8ucHVzaCh0KSwhbiYmby5wdXNoKGwubm93KCkrZCkpLHRoaXMuX3RyaW1CdWZmZXIoKSxhLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0KX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbih0KXt0aGlzLl90aHJvd0lmQ2xvc2VkKCksdGhpcy5fdHJpbUJ1ZmZlcigpO2Zvcih2YXIgcj10aGlzLl9pbm5lclN1YnNjcmliZSh0KSxpPXRoaXMsbz1pLl9pbmZpbml0ZVRpbWVXaW5kb3csbj1pLl9idWZmZXIsbD1uLnNsaWNlKCksZD0wO2Q8bC5sZW5ndGgmJiF0LmNsb3NlZDtkKz1vPzE6Mil0Lm5leHQobFtkXSk7cmV0dXJuIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXModCkscn0sZS5wcm90b3R5cGUuX3RyaW1CdWZmZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9dC5fYnVmZmVyU2l6ZSxpPXQuX3RpbWVzdGFtcFByb3ZpZGVyLG89dC5fYnVmZmVyLG49dC5faW5maW5pdGVUaW1lV2luZG93LGw9KG4/MToyKSpyO2lmKHI8MS8wJiZsPG8ubGVuZ3RoJiZvLnNwbGljZSgwLG8ubGVuZ3RoLWwpLCFuKXtmb3IodmFyIGQ9aS5ub3coKSxjPTAscD0xO3A8by5sZW5ndGgmJm9bcF08PWQ7cCs9MiljPXA7YyYmby5zcGxpY2UoMCxjKzEpfX0sZX0pKHhpKX0pO3ZhciBFYXQsSWF0PWYoKCk9PntIYSgpO1c1KCk7RWF0PShmdW5jdGlvbihhKXtuYShlLGEpO2Z1bmN0aW9uIGUoKXt2YXIgdD1hIT09bnVsbCYmYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIHQuX3ZhbHVlPW51bGwsdC5faGFzVmFsdWU9ITEsdC5faXNDb21wbGV0ZT0hMSx0fXJldHVybiBzKGUsIkFzeW5jU3ViamVjdCIpLGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMsaT1yLmhhc0Vycm9yLG89ci5faGFzVmFsdWUsbj1yLl92YWx1ZSxsPXIudGhyb3duRXJyb3IsZD1yLmlzU3RvcHBlZCxjPXIuX2lzQ29tcGxldGU7aT90LmVycm9yKGwpOihkfHxjKSYmKG8mJnQubmV4dChuKSx0LmNvbXBsZXRlKCkpfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5fdmFsdWU9dCx0aGlzLl9oYXNWYWx1ZT0hMCl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPXQuX2hhc1ZhbHVlLGk9dC5fdmFsdWUsbz10Ll9pc0NvbXBsZXRlO298fCh0aGlzLl9pc0NvbXBsZXRlPSEwLHImJmEucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLGkpLGEucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcykpfSxlfSkoeGkpfSk7dmFyIENvZSxOYXQ9ZigoKT0+e0hhKCk7bjIoKTtDb2U9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSh0LHIpe3JldHVybiBhLmNhbGwodGhpcyl8fHRoaXN9cmV0dXJuIHMoZSwiQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksdGhpc30sZX0pKFdyKX0pO3ZhciBxNyxSYXQ9ZigoKT0+e0hhKCk7cTc9e3NldEludGVydmFsOnMoZnVuY3Rpb24oYSxlKXtmb3IodmFyIHQ9W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyLTJdPWFyZ3VtZW50c1tyXTt2YXIgaT1xNy5kZWxlZ2F0ZTtyZXR1cm4gaT8uc2V0SW50ZXJ2YWw/aS5zZXRJbnRlcnZhbC5hcHBseShpLFNzKFthLGVdLFByKHQpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLFNzKFthLGVdLFByKHQpKSl9LCJzZXRJbnRlcnZhbCIpLGNsZWFySW50ZXJ2YWw6cyhmdW5jdGlvbihhKXt2YXIgZT1xNy5kZWxlZ2F0ZTtyZXR1cm4oZT8uY2xlYXJJbnRlcnZhbHx8Y2xlYXJJbnRlcnZhbCkoYSl9LCJjbGVhckludGVydmFsIiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciByMSxLNT1mKCgpPT57SGEoKTtOYXQoKTtSYXQoKTtINSgpO3IxPShmdW5jdGlvbihhKXtuYShlLGEpO2Z1bmN0aW9uIGUodCxyKXt2YXIgaT1hLmNhbGwodGhpcyx0LHIpfHx0aGlzO3JldHVybiBpLnNjaGVkdWxlcj10LGkud29yaz1yLGkucGVuZGluZz0hMSxpfXJldHVybiBzKGUsIkFzeW5jQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxyKXt2YXIgaTtpZihyPT09dm9pZCAwJiYocj0wKSx0aGlzLmNsb3NlZClyZXR1cm4gdGhpczt0aGlzLnN0YXRlPXQ7dmFyIG89dGhpcy5pZCxuPXRoaXMuc2NoZWR1bGVyO3JldHVybiBvIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKG4sbyxyKSksdGhpcy5wZW5kaW5nPSEwLHRoaXMuZGVsYXk9cix0aGlzLmlkPShpPXRoaXMuaWQpIT09bnVsbCYmaSE9PXZvaWQgMD9pOnRoaXMucmVxdWVzdEFzeW5jSWQobix0aGlzLmlkLHIpLHRoaXN9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQscixpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCkscTcuc2V0SW50ZXJ2YWwodC5mbHVzaC5iaW5kKHQsdGhpcyksaSl9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQscixpKXtpZihpPT09dm9pZCAwJiYoaT0wKSxpIT1udWxsJiZ0aGlzLmRlbGF5PT09aSYmdGhpcy5wZW5kaW5nPT09ITEpcmV0dXJuIHI7ciE9bnVsbCYmcTcuY2xlYXJJbnRlcnZhbChyKX0sZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LHIpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7dmFyIGk9dGhpcy5fZXhlY3V0ZSh0LHIpO2lmKGkpcmV0dXJuIGk7dGhpcy5wZW5kaW5nPT09ITEmJnRoaXMuaWQhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9LGUucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHQscil7dmFyIGk9ITEsbzt0cnl7dGhpcy53b3JrKHQpfWNhdGNoKG4pe2k9ITAsbz1ufHxuZXcgRXJyb3IoIlNjaGVkdWxlZCBhY3Rpb24gdGhyZXcgZmFsc3kgZXJyb3IiKX1pZihpKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksb30sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtpZighdGhpcy5jbG9zZWQpe3ZhciB0PXRoaXMscj10LmlkLGk9dC5zY2hlZHVsZXIsbz1pLmFjdGlvbnM7dGhpcy53b3JrPXRoaXMuc3RhdGU9dGhpcy5zY2hlZHVsZXI9bnVsbCx0aGlzLnBlbmRpbmc9ITEsYTEobyx0aGlzKSxyIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKGkscixudWxsKSksdGhpcy5kZWxheT1udWxsLGEucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyl9fSxlfSkoQ29lKX0pO2Z1bmN0aW9uIE9hdChhKXtyZXR1cm4gYSBpbiBpWT8oZGVsZXRlIGlZW2FdLCEwKTohMX12YXIgaW1hLF9vZSxpWSxUb2UsVnFhLEZhdD1mKCgpPT57aW1hPTEsaVk9e307cyhPYXQsImZpbmRBbmRDbGVhckhhbmRsZSIpO1RvZT17c2V0SW1tZWRpYXRlOnMoZnVuY3Rpb24oYSl7dmFyIGU9aW1hKys7cmV0dXJuIGlZW2VdPSEwLF9vZXx8KF9vZT1Qcm9taXNlLnJlc29sdmUoKSksX29lLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gT2F0KGUpJiZhKCl9KSxlfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6cyhmdW5jdGlvbihhKXtPYXQoYSl9LCJjbGVhckltbWVkaWF0ZSIpfSxWcWE9e3BlbmRpbmc6cyhmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhpWSkubGVuZ3RofSwicGVuZGluZyIpfX0pO3ZhciBvbWEsbm1hLFY3LEJhdD1mKCgpPT57SGEoKTtGYXQoKTtvbWE9VG9lLnNldEltbWVkaWF0ZSxubWE9VG9lLmNsZWFySW1tZWRpYXRlLFY3PXtzZXRJbW1lZGlhdGU6cyhmdW5jdGlvbigpe2Zvcih2YXIgYT1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylhW2VdPWFyZ3VtZW50c1tlXTt2YXIgdD1WNy5kZWxlZ2F0ZTtyZXR1cm4odD8uc2V0SW1tZWRpYXRlfHxvbWEpLmFwcGx5KHZvaWQgMCxTcyhbXSxQcihhKSkpfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6cyhmdW5jdGlvbihhKXt2YXIgZT1WNy5kZWxlZ2F0ZTtyZXR1cm4oZT8uY2xlYXJJbW1lZGlhdGV8fG5tYSkoYSl9LCJjbGVhckltbWVkaWF0ZSIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgTG9lLEhhdD1mKCgpPT57SGEoKTtLNSgpO0JhdCgpO0xvZT0oZnVuY3Rpb24oYSl7bmEoZSxhKTtmdW5jdGlvbiBlKHQscil7dmFyIGk9YS5jYWxsKHRoaXMsdCxyKXx8dGhpcztyZXR1cm4gaS5zY2hlZHVsZXI9dCxpLndvcms9cixpfXJldHVybiBzKGUsIkFzYXBBY3Rpb24iKSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbih0LHIsaSl7cmV0dXJuIGk9PT12b2lkIDAmJihpPTApLGkhPT1udWxsJiZpPjA/YS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHQscixpKToodC5hY3Rpb25zLnB1c2godGhpcyksdC5fc2NoZWR1bGVkfHwodC5fc2NoZWR1bGVkPVY3LnNldEltbWVkaWF0ZSh0LmZsdXNoLmJpbmQodCx2b2lkIDApKSkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbih0LHIsaSl7dmFyIG87aWYoaT09PXZvaWQgMCYmKGk9MCksaSE9bnVsbD9pPjA6dGhpcy5kZWxheT4wKXJldHVybiBhLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMsdCxyLGkpO3ZhciBuPXQuYWN0aW9ucztyIT1udWxsJiYoKG89bltuLmxlbmd0aC0xXSk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLmlkKSE9PXImJihWNy5jbGVhckltbWVkaWF0ZShyKSx0Ll9zY2hlZHVsZWQ9PT1yJiYodC5fc2NoZWR1bGVkPXZvaWQgMCkpfSxlfSkocjEpfSk7dmFyIGo3LCRvZT1mKCgpPT57U29lKCk7ajc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShlLHQpe3Q9PT12b2lkIDAmJih0PWEubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9ZSx0aGlzLm5vdz10fXJldHVybiBzKGEsIlNjaGVkdWxlciIpLGEucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLGUpLnNjaGVkdWxlKHIsdCl9LGEubm93PUg3Lm5vdyxhfSkoKX0pO3ZhciBzMSxaNT1mKCgpPT57SGEoKTskb2UoKTtzMT0oZnVuY3Rpb24oYSl7bmEoZSxhKTtmdW5jdGlvbiBlKHQscil7cj09PXZvaWQgMCYmKHI9ajcubm93KTt2YXIgaT1hLmNhbGwodGhpcyx0LHIpfHx0aGlzO3JldHVybiBpLmFjdGlvbnM9W10saS5fYWN0aXZlPSExLGl9cmV0dXJuIHMoZSwiQXN5bmNTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmFjdGlvbnM7aWYodGhpcy5fYWN0aXZlKXtyLnB1c2godCk7cmV0dXJufXZhciBpO3RoaXMuX2FjdGl2ZT0hMDtkbyBpZihpPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrO3doaWxlKHQ9ci5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsaSl7Zm9yKDt0PXIuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IGl9fSxlfSkoajcpfSk7dmFyIERvZSxxYXQ9ZigoKT0+e0hhKCk7WjUoKTtEb2U9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSgpe3JldHVybiBhIT09bnVsbCYmYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHMoZSwiQXNhcFNjaGVkdWxlciIpLGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgcj10aGlzLl9zY2hlZHVsZWQ7dGhpcy5fc2NoZWR1bGVkPXZvaWQgMDt2YXIgaT10aGlzLmFjdGlvbnMsbzt0PXR8fGkuc2hpZnQoKTtkbyBpZihvPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrO3doaWxlKCh0PWlbMF0pJiZ0LmlkPT09ciYmaS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbyl7Zm9yKDsodD1pWzBdKSYmdC5pZD09PXImJmkuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IG99fSxlfSkoczEpfSk7dmFyIFZhdCxsbWEsamF0PWYoKCk9PntIYXQoKTtxYXQoKTtWYXQ9bmV3IERvZShMb2UpLGxtYT1WYXR9KTt2YXIgem8sQW9lLHlsPWYoKCk9PntLNSgpO1o1KCk7em89bmV3IHMxKHIxKSxBb2U9em99KTt2YXIgUG9lLFVhdD1mKCgpPT57SGEoKTtLNSgpO1BvZT0oZnVuY3Rpb24oYSl7bmEoZSxhKTtmdW5jdGlvbiBlKHQscil7dmFyIGk9YS5jYWxsKHRoaXMsdCxyKXx8dGhpcztyZXR1cm4gaS5zY2hlZHVsZXI9dCxpLndvcms9cixpfXJldHVybiBzKGUsIlF1ZXVlQWN0aW9uIiksZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCkscj4wP2EucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyx0LHIpOih0aGlzLmRlbGF5PXIsdGhpcy5zdGF0ZT10LHRoaXMuc2NoZWR1bGVyLmZsdXNoKHRoaXMpLHRoaXMpfSxlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKHQscil7cmV0dXJuIHI+MHx8dGhpcy5jbG9zZWQ/YS5wcm90b3R5cGUuZXhlY3V0ZS5jYWxsKHRoaXMsdCxyKTp0aGlzLl9leGVjdXRlKHQscil9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQscixpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksaSE9bnVsbCYmaT4wfHxpPT1udWxsJiZ0aGlzLmRlbGF5PjA/YS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHQscixpKToodC5mbHVzaCh0aGlzKSwwKX0sZX0pKHIxKX0pO3ZhciBFb2UsV2F0PWYoKCk9PntIYSgpO1o1KCk7RW9lPShmdW5jdGlvbihhKXtuYShlLGEpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gYSE9PW51bGwmJmEuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBzKGUsIlF1ZXVlU2NoZWR1bGVyIiksZX0pKHMxKX0pO3ZhciBHYXQsY21hLFlhdD1mKCgpPT57VWF0KCk7V2F0KCk7R2F0PW5ldyBFb2UoUG9lKSxjbWE9R2F0fSk7dmFyIElvZSxLYXQ9ZigoKT0+e0hhKCk7SzUoKTt5b2UoKTtJb2U9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSh0LHIpe3ZhciBpPWEuY2FsbCh0aGlzLHQscil8fHRoaXM7cmV0dXJuIGkuc2NoZWR1bGVyPXQsaS53b3JrPXIsaX1yZXR1cm4gcyhlLCJBbmltYXRpb25GcmFtZUFjdGlvbiIpLGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHQscixpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksaSE9PW51bGwmJmk+MD9hLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsdCxyLGkpOih0LmFjdGlvbnMucHVzaCh0aGlzKSx0Ll9zY2hlZHVsZWR8fCh0Ll9zY2hlZHVsZWQ9eGwucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZmx1c2godm9pZCAwKX0pKSl9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQscixpKXt2YXIgbztpZihpPT09dm9pZCAwJiYoaT0wKSxpIT1udWxsP2k+MDp0aGlzLmRlbGF5PjApcmV0dXJuIGEucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyx0LHIsaSk7dmFyIG49dC5hY3Rpb25zO3IhPW51bGwmJnI9PT10Ll9zY2hlZHVsZWQmJigobz1uW24ubGVuZ3RoLTFdKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uaWQpIT09ciYmKHhsLmNhbmNlbEFuaW1hdGlvbkZyYW1lKHIpLHQuX3NjaGVkdWxlZD12b2lkIDApfSxlfSkocjEpfSk7dmFyIE5vZSxaYXQ9ZigoKT0+e0hhKCk7WjUoKTtOb2U9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSgpe3JldHVybiBhIT09bnVsbCYmYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHMoZSwiQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLl9hY3RpdmU9ITA7dmFyIHI7dD9yPXQuaWQ6KHI9dGhpcy5fc2NoZWR1bGVkLHRoaXMuX3NjaGVkdWxlZD12b2lkIDApO3ZhciBpPXRoaXMuYWN0aW9ucyxvO3Q9dHx8aS5zaGlmdCgpO2RvIGlmKG89dC5leGVjdXRlKHQuc3RhdGUsdC5kZWxheSkpYnJlYWs7d2hpbGUoKHQ9aVswXSkmJnQuaWQ9PT1yJiZpLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxvKXtmb3IoOyh0PWlbMF0pJiZ0LmlkPT09ciYmaS5zaGlmdCgpOyl0LnVuc3Vic2NyaWJlKCk7dGhyb3cgb319LGV9KShzMSl9KTt2YXIgWGF0LGRtYSxRYXQ9ZigoKT0+e0thdCgpO1phdCgpO1hhdD1uZXcgTm9lKElvZSksZG1hPVhhdH0pO3ZhciBKYXQsUm9lLGVydD1mKCgpPT57SGEoKTtLNSgpO24yKCk7WjUoKTtKYXQ9KGZ1bmN0aW9uKGEpe25hKGUsYSk7ZnVuY3Rpb24gZSh0LHIpe3Q9PT12b2lkIDAmJih0PVJvZSkscj09PXZvaWQgMCYmKHI9MS8wKTt2YXIgaT1hLmNhbGwodGhpcyx0LGZ1bmN0aW9uKCl7cmV0dXJuIGkuZnJhbWV9KXx8dGhpcztyZXR1cm4gaS5tYXhGcmFtZXM9cixpLmZyYW1lPTAsaS5pbmRleD0tMSxpfXJldHVybiBzKGUsIlZpcnR1YWxUaW1lU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxyPXQuYWN0aW9ucyxpPXQubWF4RnJhbWVzLG8sbjsobj1yWzBdKSYmbi5kZWxheTw9aSYmKHIuc2hpZnQoKSx0aGlzLmZyYW1lPW4uZGVsYXksIShvPW4uZXhlY3V0ZShuLnN0YXRlLG4uZGVsYXkpKSk7KTtpZihvKXtmb3IoO249ci5zaGlmdCgpOyluLnVuc3Vic2NyaWJlKCk7dGhyb3cgb319LGUuZnJhbWVUaW1lRmFjdG9yPTEwLGV9KShzMSksUm9lPShmdW5jdGlvbihhKXtuYShlLGEpO2Z1bmN0aW9uIGUodCxyLGkpe2k9PT12b2lkIDAmJihpPXQuaW5kZXgrPTEpO3ZhciBvPWEuY2FsbCh0aGlzLHQscil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPXQsby53b3JrPXIsby5pbmRleD1pLG8uYWN0aXZlPSEwLG8uaW5kZXg9dC5pbmRleD1pLG99cmV0dXJuIHMoZSwiVmlydHVhbEFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQscil7aWYocj09PXZvaWQgMCYmKHI9MCksTnVtYmVyLmlzRmluaXRlKHIpKXtpZighdGhpcy5pZClyZXR1cm4gYS5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLHQscik7dGhpcy5hY3RpdmU9ITE7dmFyIGk9bmV3IGUodGhpcy5zY2hlZHVsZXIsdGhpcy53b3JrKTtyZXR1cm4gdGhpcy5hZGQoaSksaS5zY2hlZHVsZSh0LHIpfWVsc2UgcmV0dXJuIFdyLkVNUFRZfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbih0LHIsaSl7aT09PXZvaWQgMCYmKGk9MCksdGhpcy5kZWxheT10LmZyYW1lK2k7dmFyIG89dC5hY3Rpb25zO3JldHVybiBvLnB1c2godGhpcyksby5zb3J0KGUuc29ydEFjdGlvbnMpLDF9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQscixpKXtpPT09dm9pZCAwJiYoaT0wKX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24odCxyKXtpZih0aGlzLmFjdGl2ZT09PSEwKXJldHVybiBhLnByb3RvdHlwZS5fZXhlY3V0ZS5jYWxsKHRoaXMsdCxyKX0sZS5zb3J0QWN0aW9ucz1mdW5jdGlvbih0LHIpe3JldHVybiB0LmRlbGF5PT09ci5kZWxheT90LmluZGV4PT09ci5pbmRleD8wOnQuaW5kZXg+ci5pbmRleD8xOi0xOnQuZGVsYXk+ci5kZWxheT8xOi0xfSxlfSkocjEpfSk7ZnVuY3Rpb24gdW1hKGEpe3JldHVybiBhP3BtYShhKTpvWX1mdW5jdGlvbiBwbWEoYSl7cmV0dXJuIG5ldyBCdChmdW5jdGlvbihlKXtyZXR1cm4gYS5zY2hlZHVsZShmdW5jdGlvbigpe3JldHVybiBlLmNvbXBsZXRlKCl9KX0pfXZhciBvWSxuWT1mKCgpPT57VmkoKTtvWT1uZXcgQnQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY29tcGxldGUoKX0pO3ModW1hLCJlbXB0eSIpO3MocG1hLCJlbXB0eVNjaGVkdWxlZCIpfSk7ZnVuY3Rpb24gbFkoYSl7cmV0dXJuIGEmJk90KGEuc2NoZWR1bGUpfXZhciBPb2U9ZigoKT0+e0JzKCk7cyhsWSwiaXNTY2hlZHVsZXIiKX0pO2Z1bmN0aW9uIEZvZShhKXtyZXR1cm4gYVthLmxlbmd0aC0xXX1mdW5jdGlvbiB0cnQoYSl7cmV0dXJuIE90KEZvZShhKSk/YS5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gYzIoYSl7cmV0dXJuIGxZKEZvZShhKSk/YS5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gdGphKGEsZSl7cmV0dXJuIHR5cGVvZiBGb2UoYSk9PSJudW1iZXIiP2EucG9wKCk6ZX12YXIgWDU9ZigoKT0+e0JzKCk7T29lKCk7cyhGb2UsImxhc3QiKTtzKHRydCwicG9wUmVzdWx0U2VsZWN0b3IiKTtzKGMyLCJwb3BTY2hlZHVsZXIiKTtzKHRqYSwicG9wTnVtYmVyIil9KTt2YXIgUTUsY1k9ZigoKT0+e1E1PXMoKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZ0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgYSE9ImZ1bmN0aW9uIn0pLCJpc0FycmF5TGlrZSIpfSk7ZnVuY3Rpb24gZFkoYSl7cmV0dXJuIE90KGE/LnRoZW4pfXZhciBCb2U9ZigoKT0+e0JzKCk7cyhkWSwiaXNQcm9taXNlIil9KTtmdW5jdGlvbiB1WShhKXtyZXR1cm4gT3QoYVtzM10pfXZhciBIb2U9ZigoKT0+e0I3KCk7QnMoKTtzKHVZLCJpc0ludGVyb3BPYnNlcnZhYmxlIil9KTtmdW5jdGlvbiBwWShhKXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJk90KGE/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfXZhciBxb2U9ZigoKT0+e0JzKCk7cyhwWSwiaXNBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBmWShhKXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKGEhPT1udWxsJiZ0eXBlb2YgYT09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrYSsiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgVm9lPWYoKCk9PntzKGZZLCJjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvciIpfSk7ZnVuY3Rpb24gZm1hKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2whPSJmdW5jdGlvbiJ8fCFTeW1ib2wuaXRlcmF0b3I/IkBAaXRlcmF0b3IiOlN5bWJvbC5pdGVyYXRvcn12YXIgaFksam9lPWYoKCk9PntzKGZtYSwiZ2V0U3ltYm9sSXRlcmF0b3IiKTtoWT1mbWEoKX0pO2Z1bmN0aW9uIG1ZKGEpe3JldHVybiBPdChhPy5baFldKX12YXIgVW9lPWYoKCk9Pntqb2UoKTtCcygpO3MobVksImlzSXRlcmFibGUiKX0pO2Z1bmN0aW9uIGdZKGEpe3JldHVybiBub2UodGhpcyxhcmd1bWVudHMscyhmdW5jdGlvbigpe3ZhciB0LHIsaSxvO3JldHVybiBSNyh0aGlzLGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6dD1hLmdldFJlYWRlcigpLG4ubGFiZWw9MTtjYXNlIDE6bi50cnlzLnB1c2goWzEsLDksMTBdKSxuLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LHZsKHQucmVhZCgpKV07Y2FzZSAzOnJldHVybiByPW4uc2VudCgpLGk9ci52YWx1ZSxvPXIuZG9uZSxvP1s0LHZsKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixuLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LHZsKGkpXTtjYXNlIDY6cmV0dXJuWzQsbi5zZW50KCldO2Nhc2UgNzpyZXR1cm4gbi5zZW50KCksWzMsMl07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIHQucmVsZWFzZUxvY2soKSxbN107Y2FzZSAxMDpyZXR1cm5bMl19fSl9LCJyZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yXzEiKSl9ZnVuY3Rpb24gYlkoYSl7cmV0dXJuIE90KGE/LmdldFJlYWRlcil9dmFyIHZZPWYoKCk9PntIYSgpO0JzKCk7cyhnWSwicmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciIpO3MoYlksImlzUmVhZGFibGVTdHJlYW1MaWtlIil9KTtmdW5jdGlvbiBjcihhKXtpZihhIGluc3RhbmNlb2YgQnQpcmV0dXJuIGE7aWYoYSE9bnVsbCl7aWYodVkoYSkpcmV0dXJuIGhtYShhKTtpZihRNShhKSlyZXR1cm4gbW1hKGEpO2lmKGRZKGEpKXJldHVybiBnbWEoYSk7aWYocFkoYSkpcmV0dXJuIGFydChhKTtpZihtWShhKSlyZXR1cm4gYm1hKGEpO2lmKGJZKGEpKXJldHVybiB2bWEoYSl9dGhyb3cgZlkoYSl9ZnVuY3Rpb24gaG1hKGEpe3JldHVybiBuZXcgQnQoZnVuY3Rpb24oZSl7dmFyIHQ9YVtzM10oKTtpZihPdCh0LnN1YnNjcmliZSkpcmV0dXJuIHQuc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX1mdW5jdGlvbiBtbWEoYSl7cmV0dXJuIG5ldyBCdChmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGEubGVuZ3RoJiYhZS5jbG9zZWQ7dCsrKWUubmV4dChhW3RdKTtlLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBnbWEoYSl7cmV0dXJuIG5ldyBCdChmdW5jdGlvbihlKXthLnRoZW4oZnVuY3Rpb24odCl7ZS5jbG9zZWR8fChlLm5leHQodCksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24odCl7cmV0dXJuIGUuZXJyb3IodCl9KS50aGVuKG51bGwsZVkpfSl9ZnVuY3Rpb24gYm1hKGEpe3JldHVybiBuZXcgQnQoZnVuY3Rpb24oZSl7dmFyIHQscjt0cnl7Zm9yKHZhciBpPXZpKGEpLG89aS5uZXh0KCk7IW8uZG9uZTtvPWkubmV4dCgpKXt2YXIgbj1vLnZhbHVlO2lmKGUubmV4dChuKSxlLmNsb3NlZClyZXR1cm59fWNhdGNoKGwpe3Q9e2Vycm9yOmx9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihyPWkucmV0dXJuKSYmci5jYWxsKGkpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1lLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBhcnQoYSl7cmV0dXJuIG5ldyBCdChmdW5jdGlvbihlKXt4bWEoYSxlKS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5lcnJvcih0KX0pfSl9ZnVuY3Rpb24gdm1hKGEpe3JldHVybiBhcnQoZ1koYSkpfWZ1bmN0aW9uIHhtYShhLGUpe3ZhciB0LHIsaSxvO3JldHVybiBvb2UodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4sbDtyZXR1cm4gUjcodGhpcyxmdW5jdGlvbihkKXtzd2l0Y2goZC5sYWJlbCl7Y2FzZSAwOmQudHJ5cy5wdXNoKFswLDUsNiwxMV0pLHQ9bG9lKGEpLGQubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsdC5uZXh0KCldO2Nhc2UgMjppZihyPWQuc2VudCgpLCEhci5kb25lKXJldHVyblszLDRdO2lmKG49ci52YWx1ZSxlLm5leHQobiksZS5jbG9zZWQpcmV0dXJuWzJdO2QubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIGw9ZC5zZW50KCksaT17ZXJyb3I6bH0sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gZC50cnlzLnB1c2goWzYsLDksMTBdKSxyJiYhci5kb25lJiYobz10LnJldHVybik/WzQsby5jYWxsKHQpXTpbMyw4XTtjYXNlIDc6ZC5zZW50KCksZC5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKGkpdGhyb3cgaS5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gZS5jb21wbGV0ZSgpLFsyXX19KX0pfXZhciBxbz1mKCgpPT57SGEoKTtjWSgpO0JvZSgpO1ZpKCk7SG9lKCk7cW9lKCk7Vm9lKCk7VW9lKCk7dlkoKTtCcygpO3BvZSgpO0I3KCk7cyhjciwiaW5uZXJGcm9tIik7cyhobWEsImZyb21JbnRlcm9wT2JzZXJ2YWJsZSIpO3MobW1hLCJmcm9tQXJyYXlMaWtlIik7cyhnbWEsImZyb21Qcm9taXNlIik7cyhibWEsImZyb21JdGVyYWJsZSIpO3MoYXJ0LCJmcm9tQXN5bmNJdGVyYWJsZSIpO3Modm1hLCJmcm9tUmVhZGFibGVTdHJlYW1MaWtlIik7cyh4bWEsInByb2Nlc3MiKX0pO2Z1bmN0aW9uIHpzKGEsZSx0LHIsaSl7cj09PXZvaWQgMCYmKHI9MCksaT09PXZvaWQgMCYmKGk9ITEpO3ZhciBvPWUuc2NoZWR1bGUoZnVuY3Rpb24oKXt0KCksaT9hLmFkZCh0aGlzLnNjaGVkdWxlKG51bGwscikpOnRoaXMudW5zdWJzY3JpYmUoKX0scik7aWYoYS5hZGQobyksIWkpcmV0dXJuIG99dmFyIGUwPWYoKCk9PntzKHpzLCJleGVjdXRlU2NoZWR1bGUiKX0pO2Z1bmN0aW9uIEo1KGEsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLHdhKGZ1bmN0aW9uKHQscil7dC5zdWJzY3JpYmUobGEocixmdW5jdGlvbihpKXtyZXR1cm4genMocixhLGZ1bmN0aW9uKCl7cmV0dXJuIHIubmV4dChpKX0sZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIHpzKHIsYSxmdW5jdGlvbigpe3JldHVybiByLmNvbXBsZXRlKCl9LGUpfSxmdW5jdGlvbihpKXtyZXR1cm4genMocixhLGZ1bmN0aW9uKCl7cmV0dXJuIHIuZXJyb3IoaSl9LGUpfSkpfSl9dmFyIFU3PWYoKCk9PntlMCgpO2xzKCk7SHMoKTtzKEo1LCJvYnNlcnZlT24iKX0pO2Z1bmN0aW9uIGVoKGEsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLHdhKGZ1bmN0aW9uKHQscil7ci5hZGQoYS5zY2hlZHVsZShmdW5jdGlvbigpe3JldHVybiB0LnN1YnNjcmliZShyKX0sZSkpfSl9dmFyIFc3PWYoKCk9PntscygpO3MoZWgsInN1YnNjcmliZU9uIil9KTtmdW5jdGlvbiBycnQoYSxlKXtyZXR1cm4gY3IoYSkucGlwZShlaChlKSxKNShlKSl9dmFyIHNydD1mKCgpPT57cW8oKTtVNygpO1c3KCk7cyhycnQsInNjaGVkdWxlT2JzZXJ2YWJsZSIpfSk7ZnVuY3Rpb24gaXJ0KGEsZSl7cmV0dXJuIGNyKGEpLnBpcGUoZWgoZSksSjUoZSkpfXZhciBvcnQ9ZigoKT0+e3FvKCk7VTcoKTtXNygpO3MoaXJ0LCJzY2hlZHVsZVByb21pc2UiKX0pO2Z1bmN0aW9uIG5ydChhLGUpe3JldHVybiBuZXcgQnQoZnVuY3Rpb24odCl7dmFyIHI9MDtyZXR1cm4gZS5zY2hlZHVsZShmdW5jdGlvbigpe3I9PT1hLmxlbmd0aD90LmNvbXBsZXRlKCk6KHQubmV4dChhW3IrK10pLHQuY2xvc2VkfHx0aGlzLnNjaGVkdWxlKCkpfSl9KX12YXIgbHJ0PWYoKCk9PntWaSgpO3MobnJ0LCJzY2hlZHVsZUFycmF5Iil9KTtmdW5jdGlvbiBjcnQoYSxlKXtyZXR1cm4gbmV3IEJ0KGZ1bmN0aW9uKHQpe3ZhciByO3JldHVybiB6cyh0LGUsZnVuY3Rpb24oKXtyPWFbaFldKCksenModCxlLGZ1bmN0aW9uKCl7dmFyIGksbyxuO3RyeXtpPXIubmV4dCgpLG89aS52YWx1ZSxuPWkuZG9uZX1jYXRjaChsKXt0LmVycm9yKGwpO3JldHVybn1uP3QuY29tcGxldGUoKTp0Lm5leHQobyl9LDAsITApfSksZnVuY3Rpb24oKXtyZXR1cm4gT3Qocj8ucmV0dXJuKSYmci5yZXR1cm4oKX19KX12YXIgZHJ0PWYoKCk9PntWaSgpO2pvZSgpO0JzKCk7ZTAoKTtzKGNydCwic2NoZWR1bGVJdGVyYWJsZSIpfSk7ZnVuY3Rpb24geFkoYSxlKXtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyBCdChmdW5jdGlvbih0KXt6cyh0LGUsZnVuY3Rpb24oKXt2YXIgcj1hW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO3pzKHQsZSxmdW5jdGlvbigpe3IubmV4dCgpLnRoZW4oZnVuY3Rpb24oaSl7aS5kb25lP3QuY29tcGxldGUoKTp0Lm5leHQoaS52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBXb2U9ZigoKT0+e1ZpKCk7ZTAoKTtzKHhZLCJzY2hlZHVsZUFzeW5jSXRlcmFibGUiKX0pO2Z1bmN0aW9uIHVydChhLGUpe3JldHVybiB4WShnWShhKSxlKX12YXIgcHJ0PWYoKCk9PntXb2UoKTt2WSgpO3ModXJ0LCJzY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZSIpfSk7ZnVuY3Rpb24gR29lKGEsZSl7aWYoYSE9bnVsbCl7aWYodVkoYSkpcmV0dXJuIHJydChhLGUpO2lmKFE1KGEpKXJldHVybiBucnQoYSxlKTtpZihkWShhKSlyZXR1cm4gaXJ0KGEsZSk7aWYocFkoYSkpcmV0dXJuIHhZKGEsZSk7aWYobVkoYSkpcmV0dXJuIGNydChhLGUpO2lmKGJZKGEpKXJldHVybiB1cnQoYSxlKX10aHJvdyBmWShhKX12YXIgWW9lPWYoKCk9PntzcnQoKTtvcnQoKTtscnQoKTtkcnQoKTtXb2UoKTtIb2UoKTtCb2UoKTtjWSgpO1VvZSgpO3FvZSgpO1ZvZSgpO3ZZKCk7cHJ0KCk7cyhHb2UsInNjaGVkdWxlZCIpfSk7ZnVuY3Rpb24gZDIoYSxlKXtyZXR1cm4gZT9Hb2UoYSxlKTpjcihhKX12YXIgRzc9ZigoKT0+e1lvZSgpO3FvKCk7cyhkMiwiZnJvbSIpfSk7ZnVuY3Rpb24gaTMoKXtmb3IodmFyIGE9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspYVtlXT1hcmd1bWVudHNbZV07dmFyIHQ9YzIoYSk7cmV0dXJuIGQyKGEsdCl9dmFyIEtvZT1mKCgpPT57WDUoKTtHNygpO3MoaTMsIm9mIil9KTtmdW5jdGlvbiBab2UoYSxlKXt2YXIgdD1PdChhKT9hOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHI9cyhmdW5jdGlvbihpKXtyZXR1cm4gaS5lcnJvcih0KCkpfSwiaW5pdCIpO3JldHVybiBuZXcgQnQoZT9mdW5jdGlvbihpKXtyZXR1cm4gZS5zY2hlZHVsZShyLDAsaSl9OnIpfXZhciBYb2U9ZigoKT0+e1ZpKCk7QnMoKTtzKFpvZSwidGhyb3dFcnJvciIpfSk7ZnVuY3Rpb24geW1hKGEsZSl7dmFyIHQscixpLG89YSxuPW8ua2luZCxsPW8udmFsdWUsZD1vLmVycm9yO2lmKHR5cGVvZiBuIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG5vdGlmaWNhdGlvbiwgbWlzc2luZyAia2luZCInKTtuPT09Ik4iPyh0PWUubmV4dCk9PT1udWxsfHx0PT09dm9pZCAwfHx0LmNhbGwoZSxsKTpuPT09IkUiPyhyPWUuZXJyb3IpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGUsZCk6KGk9ZS5jb21wbGV0ZSk9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwoZSl9dmFyIFFvZSxmcnQsaHJ0PWYoKCk9PntuWSgpO0tvZSgpO1hvZSgpO0JzKCk7KGZ1bmN0aW9uKGEpe2EuTkVYVD0iTiIsYS5FUlJPUj0iRSIsYS5DT01QTEVURT0iQyJ9KShRb2V8fChRb2U9e30pKTtmcnQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShlLHQscil7dGhpcy5raW5kPWUsdGhpcy52YWx1ZT10LHRoaXMuZXJyb3I9cix0aGlzLmhhc1ZhbHVlPWU9PT0iTiJ9cmV0dXJuIHMoYSwiTm90aWZpY2F0aW9uIiksYS5wcm90b3R5cGUub2JzZXJ2ZT1mdW5jdGlvbihlKXtyZXR1cm4geW1hKHRoaXMsZSl9LGEucHJvdG90eXBlLmRvPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10aGlzLG89aS5raW5kLG49aS52YWx1ZSxsPWkuZXJyb3I7cmV0dXJuIG89PT0iTiI/ZT8uKG4pOm89PT0iRSI/dD8uKGwpOnI/LigpfSxhLnByb3RvdHlwZS5hY2NlcHQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpO3JldHVybiBPdCgoaT1lKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkubmV4dCk/dGhpcy5vYnNlcnZlKGUpOnRoaXMuZG8oZSx0LHIpfSxhLnByb3RvdHlwZS50b09ic2VydmFibGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5raW5kLHI9ZS52YWx1ZSxpPWUuZXJyb3Isbz10PT09Ik4iP2kzKHIpOnQ9PT0iRSI/Wm9lKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KTp0PT09IkMiP29ZOjA7aWYoIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiK3QpO3JldHVybiBvfSxhLmNyZWF0ZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBhKCJOIixlKX0sYS5jcmVhdGVFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGEoIkUiLHZvaWQgMCxlKX0sYS5jcmVhdGVDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBhLmNvbXBsZXRlTm90aWZpY2F0aW9ufSxhLmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyBhKCJDIiksYX0pKCk7cyh5bWEsIm9ic2VydmVOb3RpZmljYXRpb24iKX0pO3ZhciBtcnQ9ZigoKT0+e30pO3ZhciB3bWEsZ3J0PWYoKCk9PntRYygpO3dtYT1TbyhmdW5jdGlvbihhKXtyZXR1cm4gcyhmdW5jdGlvbigpe2EodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn0sIkVtcHR5RXJyb3JJbXBsIil9KX0pO3ZhciBicnQ9ZigoKT0+e30pO3ZhciB2cnQ9ZigoKT0+e30pO3ZhciBNbWEseHJ0PWYoKCk9PntRYygpO01tYT1TbyhmdW5jdGlvbihhKXtyZXR1cm4gcyhmdW5jdGlvbigpe2EodGhpcyksdGhpcy5uYW1lPSJBcmd1bWVudE91dE9mUmFuZ2VFcnJvciIsdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2UifSwiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsIil9KX0pO3ZhciBrbWEseXJ0PWYoKCk9PntRYygpO2ttYT1TbyhmdW5jdGlvbihhKXtyZXR1cm4gcyhmdW5jdGlvbih0KXthKHRoaXMpLHRoaXMubmFtZT0iTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPXR9LCJOb3RGb3VuZEVycm9ySW1wbCIpfSl9KTt2YXIgU21hLHdydD1mKCgpPT57UWMoKTtTbWE9U28oZnVuY3Rpb24oYSl7cmV0dXJuIHMoZnVuY3Rpb24odCl7YSh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT10fSwiU2VxdWVuY2VFcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24geVkoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4oYSl9dmFyIEpvZT1mKCgpPT57cyh5WSwiaXNWYWxpZERhdGUiKX0pO2Z1bmN0aW9uIGtydChhLGUpe3ZhciB0PXlZKGEpP3tmaXJzdDphfTp0eXBlb2YgYT09Im51bWJlciI/e2VhY2g6YX06YSxyPXQuZmlyc3QsaT10LmVhY2gsbz10LndpdGgsbj1vPT09dm9pZCAwP3ptYTpvLGw9dC5zY2hlZHVsZXIsZD1sPT09dm9pZCAwP2U/P3pvOmwsYz10Lm1ldGEscD1jPT09dm9pZCAwP251bGw6YztpZihyPT1udWxsJiZpPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIHdhKGZ1bmN0aW9uKHUsbSl7dmFyIHYseCxiPW51bGwsZz0wLHk9cyhmdW5jdGlvbihrKXt4PXpzKG0sZCxmdW5jdGlvbigpe3RyeXt2LnVuc3Vic2NyaWJlKCksY3Iobih7bWV0YTpwLGxhc3RWYWx1ZTpiLHNlZW46Z30pKS5zdWJzY3JpYmUobSl9Y2F0Y2goQyl7bS5lcnJvcihDKX19LGspfSwic3RhcnRUaW1lciIpO3Y9dS5zdWJzY3JpYmUobGEobSxmdW5jdGlvbihrKXt4Py51bnN1YnNjcmliZSgpLGcrKyxtLm5leHQoYj1rKSxpPjAmJnkoaSl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt4Py5jbG9zZWR8fHg/LnVuc3Vic2NyaWJlKCksYj1udWxsfSkpLCFnJiZ5KHIhPW51bGw/dHlwZW9mIHI9PSJudW1iZXIiP3I6K3ItZC5ub3coKTppKX0pfWZ1bmN0aW9uIHptYShhKXt0aHJvdyBuZXcgTXJ0KGEpfXZhciBNcnQsd1k9ZigoKT0+e3lsKCk7Sm9lKCk7bHMoKTtxbygpO1FjKCk7SHMoKTtlMCgpO01ydD1TbyhmdW5jdGlvbihhKXtyZXR1cm4gcyhmdW5jdGlvbih0KXt0PT09dm9pZCAwJiYodD1udWxsKSxhKHRoaXMpLHRoaXMubWVzc2FnZT0iVGltZW91dCBoYXMgb2NjdXJyZWQiLHRoaXMubmFtZT0iVGltZW91dEVycm9yIix0aGlzLmluZm89dH0sIlRpbWVvdXRFcnJvckltcGwiKX0pO3Moa3J0LCJ0aW1lb3V0Iik7cyh6bWEsInRpbWVvdXRFcnJvckZhY3RvcnkiKX0pO2Z1bmN0aW9uIHUyKGEsZSl7cmV0dXJuIHdhKGZ1bmN0aW9uKHQscil7dmFyIGk9MDt0LnN1YnNjcmliZShsYShyLGZ1bmN0aW9uKG8pe3IubmV4dChhLmNhbGwoZSxvLGkrKykpfSkpfSl9dmFyIFk3PWYoKCk9PntscygpO0hzKCk7cyh1MiwibWFwIil9KTtmdW5jdGlvbiBfbWEoYSxlKXtyZXR1cm4gQ21hKGUpP2EuYXBwbHkodm9pZCAwLFNzKFtdLFByKGUpKSk6YShlKX1mdW5jdGlvbiBNWShhKXtyZXR1cm4gdTIoZnVuY3Rpb24oZSl7cmV0dXJuIF9tYShhLGUpfSl9dmFyIENtYSxlbmU9ZigoKT0+e0hhKCk7WTcoKTtDbWE9QXJyYXkuaXNBcnJheTtzKF9tYSwiY2FsbE9yQXBwbHkiKTtzKE1ZLCJtYXBPbmVPck1hbnlBcmdzIil9KTt2YXIgU3J0PWYoKCk9Pnt9KTt2YXIgenJ0PWYoKCk9Pnt9KTtmdW5jdGlvbiBDcnQoYSl7aWYoYS5sZW5ndGg9PT0xKXt2YXIgZT1hWzBdO2lmKFRtYShlKSlyZXR1cm57YXJnczplLGtleXM6bnVsbH07aWYoQW1hKGUpKXt2YXIgdD1EbWEoZSk7cmV0dXJue2FyZ3M6dC5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIGVbcl19KSxrZXlzOnR9fX1yZXR1cm57YXJnczphLGtleXM6bnVsbH19ZnVuY3Rpb24gQW1hKGEpe3JldHVybiBhJiZ0eXBlb2YgYT09Im9iamVjdCImJkxtYShhKT09PSRtYX12YXIgVG1hLExtYSwkbWEsRG1hLF9ydD1mKCgpPT57VG1hPUFycmF5LmlzQXJyYXksTG1hPU9iamVjdC5nZXRQcm90b3R5cGVPZiwkbWE9T2JqZWN0LnByb3RvdHlwZSxEbWE9T2JqZWN0LmtleXM7cyhDcnQsImFyZ3NBcmdBcnJheU9yT2JqZWN0Iik7cyhBbWEsImlzUE9KTyIpfSk7ZnVuY3Rpb24gVHJ0KGEsZSl7cmV0dXJuIGEucmVkdWNlKGZ1bmN0aW9uKHQscixpKXtyZXR1cm4gdFtyXT1lW2ldLHR9LHt9KX12YXIgTHJ0PWYoKCk9PntzKFRydCwiY3JlYXRlT2JqZWN0Iil9KTtmdW5jdGlvbiB0bmUoKXtmb3IodmFyIGE9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspYVtlXT1hcmd1bWVudHNbZV07dmFyIHQ9YzIoYSkscj10cnQoYSksaT1DcnQoYSksbz1pLmFyZ3Msbj1pLmtleXM7aWYoby5sZW5ndGg9PT0wKXJldHVybiBkMihbXSx0KTt2YXIgbD1uZXcgQnQoUG1hKG8sdCxuP2Z1bmN0aW9uKGQpe3JldHVybiBUcnQobixkKX06bDIpKTtyZXR1cm4gcj9sLnBpcGUoTVkocikpOmx9ZnVuY3Rpb24gUG1hKGEsZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9bDIpLGZ1bmN0aW9uKHIpeyRydChlLGZ1bmN0aW9uKCl7Zm9yKHZhciBpPWEubGVuZ3RoLG89bmV3IEFycmF5KGkpLG49aSxsPWksZD1zKGZ1bmN0aW9uKHApeyRydChlLGZ1bmN0aW9uKCl7dmFyIHU9ZDIoYVtwXSxlKSxtPSExO3Uuc3Vic2NyaWJlKGxhKHIsZnVuY3Rpb24odil7b1twXT12LG18fChtPSEwLGwtLSksbHx8ci5uZXh0KHQoby5zbGljZSgpKSl9LGZ1bmN0aW9uKCl7LS1ufHxyLmNvbXBsZXRlKCl9KSl9LHIpfSwiX2xvb3BfMSIpLGM9MDtjPGk7YysrKWQoYyl9LHIpfX1mdW5jdGlvbiAkcnQoYSxlLHQpe2E/enModCxhLGUpOmUoKX12YXIgRHJ0PWYoKCk9PntWaSgpO19ydCgpO0c3KCk7VTUoKTtlbmUoKTtYNSgpO0xydCgpO0hzKCk7ZTAoKTtzKHRuZSwiY29tYmluZUxhdGVzdCIpO3MoUG1hLCJjb21iaW5lTGF0ZXN0SW5pdCIpO3MoJHJ0LCJtYXliZVNjaGVkdWxlIil9KTtmdW5jdGlvbiBBcnQoYSxlLHQscixpLG8sbixsKXt2YXIgZD1bXSxjPTAscD0wLHU9ITEsbT1zKGZ1bmN0aW9uKCl7dSYmIWQubGVuZ3RoJiYhYyYmZS5jb21wbGV0ZSgpfSwiY2hlY2tDb21wbGV0ZSIpLHY9cyhmdW5jdGlvbihiKXtyZXR1cm4gYzxyP3goYik6ZC5wdXNoKGIpfSwib3V0ZXJOZXh0IikseD1zKGZ1bmN0aW9uKGIpe28mJmUubmV4dChiKSxjKys7dmFyIGc9ITE7Y3IodChiLHArKykpLnN1YnNjcmliZShsYShlLGZ1bmN0aW9uKHkpe2k/Lih5KSxvP3YoeSk6ZS5uZXh0KHkpfSxmdW5jdGlvbigpe2c9ITB9LHZvaWQgMCxmdW5jdGlvbigpe2lmKGcpdHJ5e2MtLTtmb3IodmFyIHk9cyhmdW5jdGlvbigpe3ZhciBrPWQuc2hpZnQoKTtuP3pzKGUsbixmdW5jdGlvbigpe3JldHVybiB4KGspfSk6eChrKX0sIl9sb29wXzEiKTtkLmxlbmd0aCYmYzxyOyl5KCk7bSgpfWNhdGNoKGspe2UuZXJyb3Ioayl9fSkpfSwiZG9Jbm5lclN1YiIpO3JldHVybiBhLnN1YnNjcmliZShsYShlLHYsZnVuY3Rpb24oKXt1PSEwLG0oKX0pKSxmdW5jdGlvbigpe2w/LigpfX12YXIgUHJ0PWYoKCk9PntxbygpO2UwKCk7SHMoKTtzKEFydCwibWVyZ2VJbnRlcm5hbHMiKX0pO2Z1bmN0aW9uIG8zKGEsZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MS8wKSxPdChlKT9vMyhmdW5jdGlvbihyLGkpe3JldHVybiB1MihmdW5jdGlvbihvLG4pe3JldHVybiBlKHIsbyxpLG4pfSkoY3IoYShyLGkpKSl9LHQpOih0eXBlb2YgZT09Im51bWJlciImJih0PWUpLHdhKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIEFydChyLGksYSx0KX0pKX12YXIgSzc9ZigoKT0+e1k3KCk7cW8oKTtscygpO1BydCgpO0JzKCk7cyhvMywibWVyZ2VNYXAiKX0pO2Z1bmN0aW9uIGtZKGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0xLzApLG8zKGwyLGEpfXZhciBTWT1mKCgpPT57SzcoKTtVNSgpO3Moa1ksIm1lcmdlQWxsIil9KTtmdW5jdGlvbiB6WSgpe3JldHVybiBrWSgxKX12YXIgQ1k9ZigoKT0+e1NZKCk7cyh6WSwiY29uY2F0QWxsIil9KTtmdW5jdGlvbiBfWSgpe2Zvcih2YXIgYT1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylhW2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gelkoKShkMihhLGMyKGEpKSl9dmFyIGFuZT1mKCgpPT57Q1koKTtYNSgpO0c3KCk7cyhfWSwiY29uY2F0Iil9KTt2YXIgRXJ0PWYoKCk9Pnt9KTt2YXIgSXJ0PWYoKCk9Pnt9KTt2YXIgTnJ0PWYoKCk9Pnt9KTtmdW5jdGlvbiBuMyhhLGUsdCxyKXtpZihPdCh0KSYmKHI9dCx0PXZvaWQgMCkscilyZXR1cm4gbjMoYSxlLHQpLnBpcGUoTVkocikpO3ZhciBpPVByKEZtYShhKT9JbWEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gYVtsXShlLGQsdCl9fSk6Um1hKGEpP0VtYS5tYXAoUnJ0KGEsZSkpOk9tYShhKT9ObWEubWFwKFJydChhLGUpKTpbXSwyKSxvPWlbMF0sbj1pWzFdO2lmKCFvJiZRNShhKSlyZXR1cm4gbzMoZnVuY3Rpb24obCl7cmV0dXJuIG4zKGwsZSx0KX0pKGNyKGEpKTtpZighbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGV2ZW50IHRhcmdldCIpO3JldHVybiBuZXcgQnQoZnVuY3Rpb24obCl7dmFyIGQ9cyhmdW5jdGlvbigpe2Zvcih2YXIgYz1bXSxwPTA7cDxhcmd1bWVudHMubGVuZ3RoO3ArKyljW3BdPWFyZ3VtZW50c1twXTtyZXR1cm4gbC5uZXh0KDE8Yy5sZW5ndGg/YzpjWzBdKX0sImhhbmRsZXIiKTtyZXR1cm4gbyhkKSxmdW5jdGlvbigpe3JldHVybiBuKGQpfX0pfWZ1bmN0aW9uIFJydChhLGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGFbdF0oZSxyKX19fWZ1bmN0aW9uIFJtYShhKXtyZXR1cm4gT3QoYS5hZGRMaXN0ZW5lcikmJk90KGEucmVtb3ZlTGlzdGVuZXIpfWZ1bmN0aW9uIE9tYShhKXtyZXR1cm4gT3QoYS5vbikmJk90KGEub2ZmKX1mdW5jdGlvbiBGbWEoYSl7cmV0dXJuIE90KGEuYWRkRXZlbnRMaXN0ZW5lcikmJk90KGEucmVtb3ZlRXZlbnRMaXN0ZW5lcil9dmFyIEVtYSxJbWEsTm1hLE9ydD1mKCgpPT57SGEoKTtxbygpO1ZpKCk7SzcoKTtjWSgpO0JzKCk7ZW5lKCk7RW1hPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLEltYT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sTm1hPVsib24iLCJvZmYiXTtzKG4zLCJmcm9tRXZlbnQiKTtzKFJydCwidG9Db21tb25IYW5kbGVyUmVnaXN0cnkiKTtzKFJtYSwiaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIiKTtzKE9tYSwiaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlciIpO3MoRm1hLCJpc0V2ZW50VGFyZ2V0Iil9KTt2YXIgRnJ0PWYoKCk9Pnt9KTt2YXIgQnJ0PWYoKCk9Pnt9KTt2YXIgSHJ0PWYoKCk9Pnt9KTtmdW5jdGlvbiBaNyhhLGUsdCl7YT09PXZvaWQgMCYmKGE9MCksdD09PXZvaWQgMCYmKHQ9QW9lKTt2YXIgcj0tMTtyZXR1cm4gZSE9bnVsbCYmKGxZKGUpP3Q9ZTpyPWUpLG5ldyBCdChmdW5jdGlvbihpKXt2YXIgbz15WShhKT8rYS10Lm5vdygpOmE7bzwwJiYobz0wKTt2YXIgbj0wO3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7aS5jbG9zZWR8fChpLm5leHQobisrKSwwPD1yP3RoaXMuc2NoZWR1bGUodm9pZCAwLHIpOmkuY29tcGxldGUoKSl9LG8pfSl9dmFyIFRZPWYoKCk9PntWaSgpO3lsKCk7T29lKCk7Sm9lKCk7cyhaNywidGltZXIiKX0pO2Z1bmN0aW9uIHJuZShhLGUpe3JldHVybiBhPT09dm9pZCAwJiYoYT0wKSxlPT09dm9pZCAwJiYoZT16byksYTwwJiYoYT0wKSxaNyhhLGEsZSl9dmFyIHFydD1mKCgpPT57eWwoKTtUWSgpO3Mocm5lLCJpbnRlcnZhbCIpfSk7dmFyIFZydD1mKCgpPT57fSk7ZnVuY3Rpb24gQm1hKCl7cmV0dXJuIGpydH12YXIganJ0LHNuZT1mKCgpPT57VmkoKTt0MygpO2pydD1uZXcgQnQodm4pO3MoQm1hLCJuZXZlciIpfSk7dmFyIFVydD1mKCgpPT57fSk7dmFyIFdydD1mKCgpPT57fSk7ZnVuY3Rpb24gTFkoYSxlKXtyZXR1cm4gd2EoZnVuY3Rpb24odCxyKXt2YXIgaT0wO3Quc3Vic2NyaWJlKGxhKHIsZnVuY3Rpb24obyl7cmV0dXJuIGEuY2FsbChlLG8saSsrKSYmci5uZXh0KG8pfSkpfSl9dmFyIGluZT1mKCgpPT57bHMoKTtIcygpO3MoTFksImZpbHRlciIpfSk7dmFyIEdydD1mKCgpPT57fSk7dmFyIFlydD1mKCgpPT57fSk7dmFyIEtydD1mKCgpPT57fSk7dmFyIFpydD1mKCgpPT57fSk7dmFyIFhydD1mKCgpPT57fSk7dmFyIFFydD1mKCgpPT57fSk7dmFyIG9uZT1mKCgpPT57fSk7dmFyIG5uZT1mKCgpPT57fSk7ZnVuY3Rpb24gJFkoYSl7cmV0dXJuIHdhKGZ1bmN0aW9uKGUsdCl7dmFyIHI9W107cmV0dXJuIGUuc3Vic2NyaWJlKGxhKHQsZnVuY3Rpb24oaSl7cmV0dXJuIHIucHVzaChpKX0sZnVuY3Rpb24oKXt0Lm5leHQociksdC5jb21wbGV0ZSgpfSkpLGNyKGEpLnN1YnNjcmliZShsYSh0LGZ1bmN0aW9uKCl7dmFyIGk9cjtyPVtdLHQubmV4dChpKX0sdm4pKSxmdW5jdGlvbigpe3I9bnVsbH19KX12YXIgbG5lPWYoKCk9PntscygpO3QzKCk7SHMoKTtxbygpO3MoJFksImJ1ZmZlciIpfSk7ZnVuY3Rpb24gRFkoYSxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9bnVsbCksZT1lPz9hLHdhKGZ1bmN0aW9uKHQscil7dmFyIGk9W10sbz0wO3Quc3Vic2NyaWJlKGxhKHIsZnVuY3Rpb24obil7dmFyIGwsZCxjLHAsdT1udWxsO28rKyVlPT09MCYmaS5wdXNoKFtdKTt0cnl7Zm9yKHZhciBtPXZpKGkpLHY9bS5uZXh0KCk7IXYuZG9uZTt2PW0ubmV4dCgpKXt2YXIgeD12LnZhbHVlO3gucHVzaChuKSxhPD14Lmxlbmd0aCYmKHU9dT8/W10sdS5wdXNoKHgpKX19Y2F0Y2goeSl7bD17ZXJyb3I6eX19ZmluYWxseXt0cnl7diYmIXYuZG9uZSYmKGQ9bS5yZXR1cm4pJiZkLmNhbGwobSl9ZmluYWxseXtpZihsKXRocm93IGwuZXJyb3J9fWlmKHUpdHJ5e2Zvcih2YXIgYj12aSh1KSxnPWIubmV4dCgpOyFnLmRvbmU7Zz1iLm5leHQoKSl7dmFyIHg9Zy52YWx1ZTthMShpLHgpLHIubmV4dCh4KX19Y2F0Y2goeSl7Yz17ZXJyb3I6eX19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKHA9Yi5yZXR1cm4pJiZwLmNhbGwoYil9ZmluYWxseXtpZihjKXRocm93IGMuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgbixsO3RyeXtmb3IodmFyIGQ9dmkoaSksYz1kLm5leHQoKTshYy5kb25lO2M9ZC5uZXh0KCkpe3ZhciBwPWMudmFsdWU7ci5uZXh0KHApfX1jYXRjaCh1KXtuPXtlcnJvcjp1fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobD1kLnJldHVybikmJmwuY2FsbChkKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19ci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtpPW51bGx9KSl9KX12YXIgY25lPWYoKCk9PntIYSgpO2xzKCk7SHMoKTtINSgpO3MoRFksImJ1ZmZlckNvdW50Iil9KTtmdW5jdGlvbiBBWShhKXtmb3IodmFyIGUsdCxyPVtdLGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXJbaS0xXT1hcmd1bWVudHNbaV07dmFyIG89KGU9YzIocikpIT09bnVsbCYmZSE9PXZvaWQgMD9lOnpvLG49KHQ9clswXSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6bnVsbCxsPXJbMV18fDEvMDtyZXR1cm4gd2EoZnVuY3Rpb24oZCxjKXt2YXIgcD1bXSx1PSExLG09cyhmdW5jdGlvbihiKXt2YXIgZz1iLmJ1ZmZlcix5PWIuc3Viczt5LnVuc3Vic2NyaWJlKCksYTEocCxiKSxjLm5leHQoZyksdSYmdigpfSwiZW1pdCIpLHY9cyhmdW5jdGlvbigpe2lmKHApe3ZhciBiPW5ldyBXcjtjLmFkZChiKTt2YXIgZz1bXSx5PXtidWZmZXI6ZyxzdWJzOmJ9O3AucHVzaCh5KSx6cyhiLG8sZnVuY3Rpb24oKXtyZXR1cm4gbSh5KX0sYSl9fSwic3RhcnRCdWZmZXIiKTtuIT09bnVsbCYmbj49MD96cyhjLG8sdixuLCEwKTp1PSEwLHYoKTt2YXIgeD1sYShjLGZ1bmN0aW9uKGIpe3ZhciBnLHksaz1wLnNsaWNlKCk7dHJ5e2Zvcih2YXIgQz12aShrKSxOPUMubmV4dCgpOyFOLmRvbmU7Tj1DLm5leHQoKSl7dmFyIF89Ti52YWx1ZSx6PV8uYnVmZmVyO3oucHVzaChiKSxsPD16Lmxlbmd0aCYmbShfKX19Y2F0Y2goTyl7Zz17ZXJyb3I6T319ZmluYWxseXt0cnl7TiYmIU4uZG9uZSYmKHk9Qy5yZXR1cm4pJiZ5LmNhbGwoQyl9ZmluYWxseXtpZihnKXRocm93IGcuZXJyb3J9fX0sZnVuY3Rpb24oKXtmb3IoO3A/Lmxlbmd0aDspYy5uZXh0KHAuc2hpZnQoKS5idWZmZXIpO3g/LnVuc3Vic2NyaWJlKCksYy5jb21wbGV0ZSgpLGMudW5zdWJzY3JpYmUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIHA9bnVsbH0pO2Quc3Vic2NyaWJlKHgpfSl9dmFyIGRuZT1mKCgpPT57SGEoKTtuMigpO2xzKCk7SHMoKTtINSgpO3lsKCk7WDUoKTtlMCgpO3MoQVksImJ1ZmZlclRpbWUiKX0pO3ZhciB1bmU9ZigoKT0+e30pO3ZhciBwbmU9ZigoKT0+e30pO3ZhciBmbmU9ZigoKT0+e30pO3ZhciBobmU9ZigoKT0+e30pO3ZhciBtbmU9ZigoKT0+e30pO3ZhciBnbmU9ZigoKT0+e30pO3ZhciBibmU9ZigoKT0+e30pO3ZhciBKcnQ9ZigoKT0+e30pO3ZhciB2bmU9ZigoKT0+e30pO3ZhciB4bmU9ZigoKT0+e30pO3ZhciB5bmU9ZigoKT0+e30pO3ZhciBlc3Q9ZigoKT0+e30pO3ZhciB3bmU9ZigoKT0+e30pO3ZhciBNbmU9ZigoKT0+e30pO3ZhciBrbmU9ZigoKT0+e30pO2Z1bmN0aW9uIFBZKGEpe3JldHVybiB3YShmdW5jdGlvbihlLHQpe3ZhciByPSExLGk9bnVsbCxvPW51bGwsbj1zKGZ1bmN0aW9uKCl7aWYobz8udW5zdWJzY3JpYmUoKSxvPW51bGwscil7cj0hMTt2YXIgbD1pO2k9bnVsbCx0Lm5leHQobCl9fSwiZW1pdCIpO2Uuc3Vic2NyaWJlKGxhKHQsZnVuY3Rpb24obCl7bz8udW5zdWJzY3JpYmUoKSxyPSEwLGk9bCxvPWxhKHQsbix2biksY3IoYShsKSkuc3Vic2NyaWJlKG8pfSxmdW5jdGlvbigpe24oKSx0LmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe2k9bz1udWxsfSkpfSl9dmFyIFNuZT1mKCgpPT57bHMoKTt0MygpO0hzKCk7cW8oKTtzKFBZLCJkZWJvdW5jZSIpfSk7ZnVuY3Rpb24gRVkoYSxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9em8pLHdhKGZ1bmN0aW9uKHQscil7dmFyIGk9bnVsbCxvPW51bGwsbj1udWxsLGw9cyhmdW5jdGlvbigpe2lmKGkpe2kudW5zdWJzY3JpYmUoKSxpPW51bGw7dmFyIGM9bztvPW51bGwsci5uZXh0KGMpfX0sImVtaXQiKTtmdW5jdGlvbiBkKCl7dmFyIGM9bithLHA9ZS5ub3coKTtpZihwPGMpe2k9dGhpcy5zY2hlZHVsZSh2b2lkIDAsYy1wKSxyLmFkZChpKTtyZXR1cm59bCgpfXMoZCwiZW1pdFdoZW5JZGxlIiksdC5zdWJzY3JpYmUobGEocixmdW5jdGlvbihjKXtvPWMsbj1lLm5vdygpLGl8fChpPWUuc2NoZWR1bGUoZCxhKSxyLmFkZChpKSl9LGZ1bmN0aW9uKCl7bCgpLHIuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7bz1pPW51bGx9KSl9KX12YXIgem5lPWYoKCk9Pnt5bCgpO2xzKCk7SHMoKTtzKEVZLCJkZWJvdW5jZVRpbWUiKX0pO3ZhciBDbmU9ZigoKT0+e30pO3ZhciBfbmU9ZigoKT0+e30pO3ZhciBUbmU9ZigoKT0+e30pO3ZhciBMbmU9ZigoKT0+e30pO3ZhciAkbmU9ZigoKT0+e30pO3ZhciBEbmU9ZigoKT0+e30pO3ZhciBBbmU9ZigoKT0+e30pO3ZhciBQbmU9ZigoKT0+e30pO2Z1bmN0aW9uIHRoKGEsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPWwyKSxhPWE/P0htYSx3YShmdW5jdGlvbih0LHIpe3ZhciBpLG89ITA7dC5zdWJzY3JpYmUobGEocixmdW5jdGlvbihuKXt2YXIgbD1lKG4pOyhvfHwhYShpLGwpKSYmKG89ITEsaT1sLHIubmV4dChuKSl9KSl9KX1mdW5jdGlvbiBIbWEoYSxlKXtyZXR1cm4gYT09PWV9dmFyIEVuZT1mKCgpPT57VTUoKTtscygpO0hzKCk7cyh0aCwiZGlzdGluY3RVbnRpbENoYW5nZWQiKTtzKEhtYSwiZGVmYXVsdENvbXBhcmUiKX0pO3ZhciBJbmU9ZigoKT0+e30pO3ZhciBObmU9ZigoKT0+e30pO3ZhciBSbmU9ZigoKT0+e30pO3ZhciBPbmU9ZigoKT0+e30pO3ZhciBGbmU9ZigoKT0+e30pO3ZhciBCbmU9ZigoKT0+e30pO3ZhciBIbmU9ZigoKT0+e30pO3ZhciBxbmU9ZigoKT0+e30pO3ZhciBWbmU9ZigoKT0+e30pO3ZhciBqbmU9ZigoKT0+e30pO3ZhciBVbmU9ZigoKT0+e30pO3ZhciBXbmU9ZigoKT0+e30pO3ZhciBHbmU9ZigoKT0+e30pO3ZhciBZbmU9ZigoKT0+e30pO3ZhciBLbmU9ZigoKT0+e30pO3ZhciBabmU9ZigoKT0+e30pO3ZhciBYbmU9ZigoKT0+e30pO3ZhciBRbmU9ZigoKT0+e30pO3ZhciBKbmU9ZigoKT0+e30pO3ZhciBlMWU9ZigoKT0+e30pO3ZhciB0MWU9ZigoKT0+e30pO3ZhciBhMWU9ZigoKT0+e30pO3ZhciB0c3Q9ZigoKT0+e30pO3ZhciByMWU9ZigoKT0+e30pO3ZhciBzMWU9ZigoKT0+e30pO3ZhciBpMWU9ZigoKT0+e30pO3ZhciBvMWU9ZigoKT0+e30pO3ZhciBuMWU9ZigoKT0+e30pO3ZhciBsMWU9ZigoKT0+e30pO3ZhciBjMWU9ZigoKT0+e30pO3ZhciBkMWU9ZigoKT0+e30pO3ZhciB1MWU9ZigoKT0+e30pO3ZhciBwMWU9ZigoKT0+e30pO3ZhciBmMWU9ZigoKT0+e30pO3ZhciBoMWU9ZigoKT0+e30pO3ZhciBtMWU9ZigoKT0+e30pO3ZhciBnMWU9ZigoKT0+e30pO3ZhciBiMWU9ZigoKT0+e30pO3ZhciB2MWU9ZigoKT0+e30pO3ZhciB4MWU9ZigoKT0+e30pO3ZhciB5MWU9ZigoKT0+e30pO3ZhciB3MWU9ZigoKT0+e30pO2Z1bmN0aW9uIElZKGEpe2E9PT12b2lkIDAmJihhPXt9KTt2YXIgZT1hLmNvbm5lY3Rvcix0PWU9PT12b2lkIDA/ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHhpfTplLHI9YS5yZXNldE9uRXJyb3IsaT1yPT09dm9pZCAwPyEwOnIsbz1hLnJlc2V0T25Db21wbGV0ZSxuPW89PT12b2lkIDA/ITA6byxsPWEucmVzZXRPblJlZkNvdW50WmVybyxkPWw9PT12b2lkIDA/ITA6bDtyZXR1cm4gZnVuY3Rpb24oYyl7dmFyIHAsdSxtLHY9MCx4PSExLGI9ITEsZz1zKGZ1bmN0aW9uKCl7dT8udW5zdWJzY3JpYmUoKSx1PXZvaWQgMH0sImNhbmNlbFJlc2V0IikseT1zKGZ1bmN0aW9uKCl7ZygpLHA9bT12b2lkIDAseD1iPSExfSwicmVzZXQiKSxrPXMoZnVuY3Rpb24oKXt2YXIgQz1wO3koKSxDPy51bnN1YnNjcmliZSgpfSwicmVzZXRBbmRVbnN1YnNjcmliZSIpO3JldHVybiB3YShmdW5jdGlvbihDLE4pe3YrKywhYiYmIXgmJmcoKTt2YXIgXz1tPW0/P3QoKTtOLmFkZChmdW5jdGlvbigpe3YtLSx2PT09MCYmIWImJiF4JiYodT1NMWUoayxkKSl9KSxfLnN1YnNjcmliZShOKSwhcCYmdj4wJiYocD1uZXcgSmMoe25leHQ6cyhmdW5jdGlvbih6KXtyZXR1cm4gXy5uZXh0KHopfSwibmV4dCIpLGVycm9yOnMoZnVuY3Rpb24oeil7Yj0hMCxnKCksdT1NMWUoeSxpLHopLF8uZXJyb3Ioeil9LCJlcnJvciIpLGNvbXBsZXRlOnMoZnVuY3Rpb24oKXt4PSEwLGcoKSx1PU0xZSh5LG4pLF8uY29tcGxldGUoKX0sImNvbXBsZXRlIil9KSxjcihDKS5zdWJzY3JpYmUocCkpfSkoYyl9fWZ1bmN0aW9uIE0xZShhLGUpe2Zvcih2YXIgdD1bXSxyPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3ItMl09YXJndW1lbnRzW3JdO2lmKGU9PT0hMCl7YSgpO3JldHVybn1pZihlIT09ITEpe3ZhciBpPW5ldyBKYyh7bmV4dDpzKGZ1bmN0aW9uKCl7aS51bnN1YnNjcmliZSgpLGEoKX0sIm5leHQiKX0pO3JldHVybiBjcihlLmFwcGx5KHZvaWQgMCxTcyhbXSxQcih0KSkpKS5zdWJzY3JpYmUoaSl9fXZhciBOWT1mKCgpPT57SGEoKTtxbygpO1c1KCk7RjcoKTtscygpO3MoSVksInNoYXJlIik7cyhNMWUsImhhbmRsZVJlc2V0Iil9KTtmdW5jdGlvbiBSWShhLGUsdCl7dmFyIHIsaSxvLG4sbD0hMTtyZXR1cm4gYSYmdHlwZW9mIGE9PSJvYmplY3QiPyhyPWEuYnVmZmVyU2l6ZSxuPXI9PT12b2lkIDA/MS8wOnIsaT1hLndpbmRvd1RpbWUsZT1pPT09dm9pZCAwPzEvMDppLG89YS5yZWZDb3VudCxsPW89PT12b2lkIDA/ITE6byx0PWEuc2NoZWR1bGVyKTpuPWE/PzEvMCxJWSh7Y29ubmVjdG9yOnMoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFk1KG4sZSx0KX0sImNvbm5lY3RvciIpLHJlc2V0T25FcnJvcjohMCxyZXNldE9uQ29tcGxldGU6ITEscmVzZXRPblJlZkNvdW50WmVybzpsfSl9dmFyIGsxZT1mKCgpPT57em9lKCk7TlkoKTtzKFJZLCJzaGFyZVJlcGxheSIpfSk7dmFyIFMxZT1mKCgpPT57fSk7dmFyIHoxZT1mKCgpPT57fSk7dmFyIEMxZT1mKCgpPT57fSk7dmFyIF8xZT1mKCgpPT57fSk7dmFyIFQxZT1mKCgpPT57fSk7ZnVuY3Rpb24gT1koKXtmb3IodmFyIGE9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspYVtlXT1hcmd1bWVudHNbZV07dmFyIHQ9YzIoYSk7cmV0dXJuIHdhKGZ1bmN0aW9uKHIsaSl7KHQ/X1koYSxyLHQpOl9ZKGEscikpLnN1YnNjcmliZShpKX0pfXZhciBMMWU9ZigoKT0+e2FuZSgpO1g1KCk7bHMoKTtzKE9ZLCJzdGFydFdpdGgiKX0pO3ZhciAkMWU9ZigoKT0+e30pO3ZhciBEMWU9ZigoKT0+e30pO3ZhciBBMWU9ZigoKT0+e30pO3ZhciBQMWU9ZigoKT0+e30pO2Z1bmN0aW9uIGFoKGEpe3JldHVybiB3YShmdW5jdGlvbihlLHQpe2NyKGEpLnN1YnNjcmliZShsYSh0LGZ1bmN0aW9uKCl7cmV0dXJuIHQuY29tcGxldGUoKX0sdm4pKSwhdC5jbG9zZWQmJmUuc3Vic2NyaWJlKHQpfSl9dmFyIEUxZT1mKCgpPT57bHMoKTtIcygpO3FvKCk7dDMoKTtzKGFoLCJ0YWtlVW50aWwiKX0pO3ZhciBJMWU9ZigoKT0+e30pO3ZhciBOMWU9ZigoKT0+e30pO2Z1bmN0aW9uIEZZKGEsZSl7cmV0dXJuIHdhKGZ1bmN0aW9uKHQscil7dmFyIGk9ZT8/e30sbz1pLmxlYWRpbmcsbj1vPT09dm9pZCAwPyEwOm8sbD1pLnRyYWlsaW5nLGQ9bD09PXZvaWQgMD8hMTpsLGM9ITEscD1udWxsLHU9bnVsbCxtPSExLHY9cyhmdW5jdGlvbigpe3U/LnVuc3Vic2NyaWJlKCksdT1udWxsLGQmJihnKCksbSYmci5jb21wbGV0ZSgpKX0sImVuZFRocm90dGxpbmciKSx4PXMoZnVuY3Rpb24oKXt1PW51bGwsbSYmci5jb21wbGV0ZSgpfSwiY2xlYW51cFRocm90dGxpbmciKSxiPXMoZnVuY3Rpb24oeSl7cmV0dXJuIHU9Y3IoYSh5KSkuc3Vic2NyaWJlKGxhKHIsdix4KSl9LCJzdGFydFRocm90dGxlIiksZz1zKGZ1bmN0aW9uKCl7aWYoYyl7Yz0hMTt2YXIgeT1wO3A9bnVsbCxyLm5leHQoeSksIW0mJmIoeSl9fSwic2VuZCIpO3Quc3Vic2NyaWJlKGxhKHIsZnVuY3Rpb24oeSl7Yz0hMCxwPXksISh1JiYhdS5jbG9zZWQpJiYobj9nKCk6Yih5KSl9LGZ1bmN0aW9uKCl7bT0hMCwhKGQmJmMmJnUmJiF1LmNsb3NlZCkmJnIuY29tcGxldGUoKX0pKX0pfXZhciBCWT1mKCgpPT57bHMoKTtIcygpO3FvKCk7cyhGWSwidGhyb3R0bGUiKX0pO2Z1bmN0aW9uIEhZKGEsZSx0KXtlPT09dm9pZCAwJiYoZT16byk7dmFyIHI9WjcoYSxlKTtyZXR1cm4gRlkoZnVuY3Rpb24oKXtyZXR1cm4gcn0sdCl9dmFyIFIxZT1mKCgpPT57eWwoKTtCWSgpO1RZKCk7cyhIWSwidGhyb3R0bGVUaW1lIil9KTtmdW5jdGlvbiByc3QoYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPXpvKSx3YShmdW5jdGlvbihlLHQpe3ZhciByPWEubm93KCk7ZS5zdWJzY3JpYmUobGEodCxmdW5jdGlvbihpKXt2YXIgbz1hLm5vdygpLG49by1yO3I9byx0Lm5leHQobmV3IGFzdChpLG4pKX0pKX0pfXZhciBhc3QsTzFlPWYoKCk9Pnt5bCgpO2xzKCk7SHMoKTtzKHJzdCwidGltZUludGVydmFsIik7YXN0PShmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZSx0KXt0aGlzLnZhbHVlPWUsdGhpcy5pbnRlcnZhbD10fXJldHVybiBzKGEsIlRpbWVJbnRlcnZhbCIpLGF9KSgpfSk7dmFyIEYxZT1mKCgpPT57fSk7dmFyIEIxZT1mKCgpPT57fSk7dmFyIEgxZT1mKCgpPT57fSk7dmFyIHExZT1mKCgpPT57fSk7dmFyIFYxZT1mKCgpPT57fSk7dmFyIGoxZT1mKCgpPT57fSk7dmFyIFUxZT1mKCgpPT57fSk7dmFyIFcxZT1mKCgpPT57fSk7dmFyIEcxZT1mKCgpPT57fSk7dmFyIHNzdD1mKCgpPT57fSk7dmFyIFkxZT1mKCgpPT57fSk7dmFyIHJoPWYoKCk9PntWaSgpO0xhdCgpO0I3KCk7QWF0KCk7VzUoKTtQYXQoKTt6b2UoKTtJYXQoKTtqYXQoKTt5bCgpO1lhdCgpO1FhdCgpO2VydCgpOyRvZSgpO24yKCk7RjcoKTtocnQoKTtib2UoKTt0MygpO1U1KCk7bXJ0KCk7YnJ0KCk7dnJ0KCk7eHJ0KCk7Z3J0KCk7eXJ0KCk7TW9lKCk7d3J0KCk7d1koKTtjb2UoKTtTcnQoKTt6cnQoKTtEcnQoKTthbmUoKTtJcnQoKTtFcnQoKTtuWSgpO05ydCgpO0c3KCk7T3J0KCk7RnJ0KCk7QnJ0KCk7SHJ0KCk7cXJ0KCk7VnJ0KCk7c25lKCk7S29lKCk7VXJ0KCk7V3J0KCk7R3J0KCk7WXJ0KCk7S3J0KCk7WG9lKCk7VFkoKTtacnQoKTtYcnQoKTtZb2UoKTtuWSgpO3NuZSgpO1FydCgpO3E1KCk7b25lKCk7bm5lKCk7bG5lKCk7Y25lKCk7ZG5lKCk7dW5lKCk7cG5lKCk7Zm5lKCk7Ym5lKCk7Z25lKCk7dm5lKCk7Q1koKTt4bmUoKTt5bmUoKTt3bmUoKTtNbmUoKTtrbmUoKTtTbmUoKTt6bmUoKTtDbmUoKTtEbmUoKTskbmUoKTtBbmUoKTtQbmUoKTtFbmUoKTtJbmUoKTtSbmUoKTtPbmUoKTtGbmUoKTtxbmUoKTtIbmUoKTtCbmUoKTtWbmUoKTtpbmUoKTtqbmUoKTtVbmUoKTtXbmUoKTtHbmUoKTtZbmUoKTtUbmUoKTtLbmUoKTtYbmUoKTtZNygpO0xuZSgpO1FuZSgpO0puZSgpO1NZKCk7ZTFlKCk7SzcoKTt0MWUoKTthMWUoKTtyMWUoKTtzMWUoKTtpMWUoKTtVNygpO28xZSgpO24xZSgpO2wxZSgpO2MxZSgpO2QxZSgpO3UxZSgpO3AxZSgpO2YxZSgpO2huZSgpO2gxZSgpO20xZSgpO2cxZSgpO2IxZSgpO3NZKCk7djFlKCk7eDFlKCk7eTFlKCk7dzFlKCk7TlkoKTtrMWUoKTtTMWUoKTt6MWUoKTtDMWUoKTtfMWUoKTtUMWUoKTtMMWUoKTtXNygpO0QxZSgpOyQxZSgpO0ExZSgpO1AxZSgpO19uZSgpO1puZSgpO0UxZSgpO0kxZSgpO04xZSgpO0JZKCk7UjFlKCk7Tm5lKCk7TzFlKCk7d1koKTtGMWUoKTtCMWUoKTttbmUoKTtIMWUoKTtxMWUoKTtWMWUoKTtqMWUoKTtVMWUoKTtXMWUoKTtHMWUoKTtZMWUoKX0pO3ZhciBpc3Q9ZigoKT0+e30pO3ZhciBvc3Q9ZigoKT0+e30pO3ZhciBuc3Q9ZigoKT0+e29uZSgpO25uZSgpO2xuZSgpO2NuZSgpO2RuZSgpO3VuZSgpO3BuZSgpO2ZuZSgpO2JuZSgpO2duZSgpO0pydCgpO3ZuZSgpO2VzdCgpO0NZKCk7eG5lKCk7eW5lKCk7d25lKCk7TW5lKCk7a25lKCk7U25lKCk7em5lKCk7Q25lKCk7RG5lKCk7JG5lKCk7QW5lKCk7UG5lKCk7RW5lKCk7SW5lKCk7Um5lKCk7T25lKCk7Rm5lKCk7cW5lKCk7SG5lKCk7Qm5lKCk7Vm5lKCk7aW5lKCk7am5lKCk7VW5lKCk7V25lKCk7R25lKCk7WW5lKCk7VG5lKCk7S25lKCk7WG5lKCk7WTcoKTtMbmUoKTtRbmUoKTtKbmUoKTt0c3QoKTtTWSgpO2UxZSgpO0s3KCk7dDFlKCk7YTFlKCk7cjFlKCk7czFlKCk7aTFlKCk7VTcoKTtvMWUoKTtuMWUoKTtpc3QoKTtsMWUoKTtjMWUoKTtkMWUoKTt1MWUoKTtwMWUoKTtvc3QoKTtmMWUoKTtobmUoKTtoMWUoKTttMWUoKTtnMWUoKTtiMWUoKTtzWSgpO3YxZSgpO3gxZSgpO3kxZSgpO3cxZSgpO05ZKCk7azFlKCk7UzFlKCk7ejFlKCk7QzFlKCk7XzFlKCk7VDFlKCk7TDFlKCk7VzcoKTtEMWUoKTskMWUoKTtBMWUoKTtQMWUoKTtfbmUoKTtabmUoKTtFMWUoKTtJMWUoKTtOMWUoKTtCWSgpO1IxZSgpO05uZSgpO08xZSgpO3dZKCk7RjFlKCk7QjFlKCk7bW5lKCk7SDFlKCk7cTFlKCk7VjFlKCk7ajFlKCk7VTFlKCk7VzFlKCk7c3N0KCk7RzFlKCk7WTFlKCl9KTt2YXIgc2g9e307bHQoc2gse09ic2VydmFibGU6KCk9PkJ0LFJlcGxheVN1YmplY3Q6KCk9Plk1LFN1YmplY3Q6KCk9PnhpLFN1YnNjcmlwdGlvbjooKT0+V3IsZnJvbTooKT0+ZDIsZnJvbUV2ZW50OigpPT5uMyxvZjooKT0+aTMsb3BzOigpPT52OWF9KTt2YXIgdjlhLHFZPWYoKCk9PntyaCgpO25zdCgpO3Y5YT17YnVmZmVyOiRZLGJ1ZmZlckNvdW50OkRZLGJ1ZmZlclRpbWU6QVksZGVib3VuY2U6UFksZGVib3VuY2VUaW1lOkVZLGZpbHRlcjpMWSxtYXA6dTIsc3RhcnRXaXRoOk9ZLHRha2VVbnRpbDphaCx0aHJvdHRsZVRpbWU6SFl9fSk7dmFyIEsxZSxsc3Q9ZigoKT0+e1FHKCk7cVkoKTtLMWU9Y2xhc3N7c3RhdGlje3ModGhpcywiT2JzZXJ2YWJsZW1hcCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXk9bmV3IEFycmF5LHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXk9bmV3IEFycmF5fWdldFN1YmplY3RGb3JFbWl0dGVyRXZlbnQoZSx0KXtsZXQgcj10aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5maW5kKGk9PmkuZXZlbnRSZWY9PT1lJiZpLmV2ZW50PT09dCk7aWYocilyZXR1cm4gci5zdWJqZWN0O3tsZXQgaT1uMyhlLHQpLG89bmV3IHhpO2kuc3Vic2NyaWJlKG8pO2xldCBuPXtzdWJqZWN0Om8sZXZlbnRSZWY6ZSxldmVudDp0fTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXkucHVzaChuKSxuLnN1YmplY3R9fWdldFN1YmplY3RGb3JFdmVudFRhcmdldChlLHQpe2xldCByPXRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkuZmluZChpPT5pLmV2ZW50UmVmPT09ZSYmaS5ldmVudD09PXQpO2lmKHIpcmV0dXJuIHIuc3ViamVjdDt7bGV0IG89e3N1YmplY3Q6bmV3IHhpLGV2ZW50UmVmOmUsZXZlbnQ6dH07cmV0dXJuIHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkucHVzaChvKSxvLnN1YmplY3R9fX19KTt2YXIgWjFlLGNzdD1mKCgpPT57UUcoKTtxWSgpO1oxZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJPYnNlcnZhYmxlSW50YWtlIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnM9e25leHQ6cyhlPT57fSwibmV4dCIpLGNvbXBsZXRlOnMoZT0+e30sImNvbXBsZXRlIil9LHRoaXMuZ2VuZXJhdG9yPW51bGwsdGhpcy5idWZmZXJlZD0hMSx0aGlzLnBheWxvYWRCdWZmZXI9W10sdGhpcy5vYnNlcnZhYmxlPW5ldyBCdChlPT57dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQ9KC4uLnQpPT5lLm5leHQodCksdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlPSgpPT4odGhpcy5jb21wbGV0ZWREZWZmZXJlZC5yZXNvbHZlKCksZS5jb21wbGV0ZSgpKX0pLHRoaXMuY29tcGxldGVkRGVmZmVyZWQ9Y3QuZGVmZXIoKSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmZlcmVkLnByb21pc2V9c2V0T2JzZXJ2YWJsZShlKXt0aGlzLm9ic2VydmFibGU9ZX1wdXNoKGUpe3RoaXMuYnVmZmVyZWQ/dGhpcy5wYXlsb2FkQnVmZmVyLnB1c2goZSk6dGhpcy5pbnRlcm5hbFB1c2goZSl9cHVzaE1hbnkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5wdXNoKHQpfXNldEdlbmVyYXRvcihlKXt0aGlzLmdlbmVyYXRvcj1lfW1ha2VCdWZmZXJlZCgpe3RoaXMuYnVmZmVyZWQ9ITB9c3Vic2NyaWJlKC4uLmUpe3JldHVybiB0aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKC4uLmUpfXJlcXVlc3QoZSl7aWYoZSE9PTApZm9yKGxldCB0PTA7dCE9PWU7dCsrKWlmKHRoaXMucGF5bG9hZEJ1ZmZlci5sZW5ndGg+MCl0aGlzLmludGVybmFsUHVzaCh0aGlzLnBheWxvYWRCdWZmZXIuc2hpZnQoKSk7ZWxzZXtsZXQgcj10aGlzLmdlbmVyYXRvci5uZXh0KCk7dGhpcy5pbnRlcm5hbFB1c2goci52YWx1ZSl9fXNpZ25hbENvbXBsZXRlKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlKCl9aW50ZXJuYWxQdXNoKGUpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0KGUpfX19KTtmdW5jdGlvbiB4OWEoYSl7cmV0dXJuIG5ldyBCdChlPT57bGV0IHQ9cygoKT0+YS5wYXVzZSgpLCJwYXVzZVN0cmVhbSIpLHI9cygoKT0+cHJvY2Vzcy5uZXh0VGljaygoKT0+YS5yZXN1bWUoKSksInJlc3VtZVN0cmVhbSIpLGk9cyhvPT57dCgpLGUubmV4dChvKSxyKCl9LCJvbkRhdGEiKTtyZXR1cm4gYS5vbigiZGF0YSIsaSksYS5vbigiZXJyb3IiLG89PmUuZXJyb3IobykpLGEub24oImVuZCIsKCk9PmUuY29tcGxldGUoKSksYS5vbigiY2xvc2UiLCgpPT5lLmNvbXBsZXRlKCkpLCgpPT57YS5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsaSksYS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGUuZXJyb3IpLGEucmVtb3ZlTGlzdGVuZXIoImVuZCIsZS5jb21wbGV0ZSksYS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGUuY29tcGxldGUpfX0pfXZhciBkc3Q9ZigoKT0+e3JoKCk7cyh4OWEsImZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlIil9KTt2YXIgX2E9e307bHQoX2Ese09ic2VydmFibGVJbnRha2U6KCk9PloxZSxPYnNlcnZhYmxlbWFwOigpPT5LMWUsZnJvbVN0cmVhbVdpdGhCYWNrcHJlc3N1cmU6KCk9Png5YSxyeGpzOigpPT5zaH0pO3ZhciBwMj1mKCgpPT57UUcoKTtsc3QoKTtjc3QoKTtkc3QoKTtxWSgpfSk7ZnVuY3Rpb24gJChhKXtyZXR1cm4oZSx0KT0+dHlwZW9mIHQ9PSJvYmplY3QiP3VzdChhLGUsdCk6KChyLGksbyk9PntsZXQgbj1pLmhhc093blByb3BlcnR5KG8pO3JldHVybiBpLmNvbnN0cnVjdG9yLmNyZWF0ZVByb3BlcnR5KG8sciksbj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksbyk6dm9pZCAwfSkoYSxlLHQpfXZhciB5OWEsdXN0LFZZPWYoKCk9PntBNygpO3k5YT17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjpGNSxyZWZsZWN0OiExLGhhc0NoYW5nZWQ6RDd9LHVzdD1zKChhPXk5YSxlLHQpPT57bGV0e2tpbmQ6cixtZXRhZGF0YTppfT10LG89Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChpKTtpZihvPT09dm9pZCAwJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KGksbz1uZXcgTWFwKSxyPT09InNldHRlciImJigoYT1PYmplY3QuY3JlYXRlKGEpKS53cmFwcGVkPSEwKSxvLnNldCh0Lm5hbWUsYSkscj09PSJhY2Nlc3NvciIpe2xldHtuYW1lOm59PXQ7cmV0dXJue3NldChsKXtsZXQgZD1lLmdldC5jYWxsKHRoaXMpO2Uuc2V0LmNhbGwodGhpcyxsKSx0aGlzLnJlcXVlc3RVcGRhdGUobixkLGEsITAsbCl9LGluaXQobCl7cmV0dXJuIGwhPT12b2lkIDAmJnRoaXMuQyhuLHZvaWQgMCxhLGwpLGx9fX1pZihyPT09InNldHRlciIpe2xldHtuYW1lOm59PXQ7cmV0dXJuIGZ1bmN0aW9uKGwpe2xldCBkPXRoaXNbbl07ZS5jYWxsKHRoaXMsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKG4sZCxhLCEwLGwpfX10aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAiK3IpfSwiciIpO3MoJCwibiIpfSk7dmFyIHBzdD1mKCgpPT57VlkoKX0pO3ZhciBmc3Q9ZigoKT0+e30pO3ZhciBVdD17fTtsdChVdCx7VGltZW91dDooKT0+alksZGVsYXlGb3I6KCk9PmhzdCxkZWxheUZvclJhbmRvbTooKT0+dzlhfSk7dmFyIGhzdCx3OWEsalksdDA9ZigoKT0+e2JpKCk7aHN0PXMoYXN5bmMoYSxlLHQ9ITEpPT4oYXdhaXQgbmV3IGpZKGEsbnVsbCx0KS5wcm9taXNlLGUpLCJkZWxheUZvciIpLHc5YT1zKGFzeW5jKGEsZSx0LHI9ITEpPT4oYXdhaXQgaHN0KE1hdGgucmFuZG9tKCkqKGUtYSkrYSxudWxsLHIpLHQpLCJkZWxheUZvclJhbmRvbSIpLGpZPWNsYXNze3N0YXRpY3tzKHRoaXMsIlRpbWVvdXQiKX1jb25zdHJ1Y3RvcihlLHQscj0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPWUsdGhpcy5fZGVmZXJyZWQ9WGMoKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUodCl9LGUpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLHImJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWY/LigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIGYyPXt9O3ZhciBpaD1mKCgpPT57fSk7ZnVuY3Rpb24gbDMoYSl7aWYodHlwZW9mIGEhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGEucmVwbGFjZSgvW3xcXHt9KClbXF1eJCsqPy5dL2csIlxcJCYiKS5yZXBsYWNlKC8tL2csIlxceDJkIil9dmFyIFVZPWYoKCk9PntzKGwzLCJlc2NhcGVTdHJpbmdSZWdleHAiKX0pO3ZhciBYNz17fTtsdChYNyx7aXNNYXRjaDooKT0+UzlhLG1hdGNoZXI6KCk9Pms5YX0pO2Z1bmN0aW9uIGs5YShhLGUsdCl7cmV0dXJuIGdzdChhLGUsdCwhMSl9ZnVuY3Rpb24gUzlhKGEsZSx0KXtyZXR1cm4gZ3N0KGEsZSx0LCEwKS5sZW5ndGg+MH12YXIgWDFlLG1zdCxNOWEsZ3N0LGJzdD1mKCgpPT57VVkoKTtYMWU9bmV3IE1hcCxtc3Q9cygoYSxlKT0+e2lmKCFBcnJheS5pc0FycmF5KGEpKXN3aXRjaCh0eXBlb2YgYSl7Y2FzZSJzdHJpbmciOmE9W2FdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjphPVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgYX0nYCl9cmV0dXJuIGEuZmlsdGVyKHQ9PntpZih0eXBlb2YgdCE9InN0cmluZyIpe2lmKHR5cGVvZiB0PiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHtlfScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2YgdH0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LCJzYW5pdGl6ZUFycmF5IiksTTlhPXMoKGEsZSk9PntlPXtjYXNlU2Vuc2l0aXZlOiExLC4uLmV9O2xldCB0PWErSlNPTi5zdHJpbmdpZnkoZSk7aWYoWDFlLmhhcyh0KSlyZXR1cm4gWDFlLmdldCh0KTtsZXQgcj1hWzBdPT09IiEiO3ImJihhPWEuc2xpY2UoMSkpLGE9bDMoYSkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgaT1uZXcgUmVnRXhwKGBeJHthfSRgLGUuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBpLm5lZ2F0ZWQ9cixYMWUuc2V0KHQsaSksaX0sIm1ha2VSZWdleHAiKSxnc3Q9cygoYSxlLHQscik9PntpZihhPW1zdChhLCJpbnB1dHMiKSxlPW1zdChlLCJwYXR0ZXJucyIpLGUubGVuZ3RoPT09MClyZXR1cm5bXTtlPWUubWFwKG49Pk05YShuLHQpKTtsZXR7YWxsUGF0dGVybnM6aX09dHx8e30sbz1bXTtmb3IobGV0IG4gb2YgYSl7bGV0IGwsZD1bLi4uZV0uZmlsbCghMSk7Zm9yKGxldFtjLHBdb2YgZS5lbnRyaWVzKCkpaWYocC50ZXN0KG4pJiYoZFtjXT0hMCxsPSFwLm5lZ2F0ZWQsIWwpKWJyZWFrO2lmKCEobD09PSExfHxsPT09dm9pZCAwJiZlLnNvbWUoYz0+IWMubmVnYXRlZCl8fGkmJmQuc29tZSgoYyxwKT0+IWMmJiFlW3BdLm5lZ2F0ZWQpKSYmKG8ucHVzaChuKSxyKSlicmVha31yZXR1cm4gb30sImJhc2VNYXRjaGVyIik7cyhrOWEsIm1hdGNoZXIiKTtzKFM5YSwiaXNNYXRjaCIpfSk7dmFyIHZzdD1mKCgpPT57YnN0KCl9KTt2YXIgUTc9e307bHQoUTcse1NtYXJ0TWF0Y2g6KCk9PlExZX0pO3ZhciBRMWUseHN0PWYoKCk9Pnt2c3QoKTtRMWU9Y2xhc3N7c3RhdGlje3ModGhpcywiU21hcnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMud2lsZGNhcmQ9ZX1tYXRjaChlKXtyZXR1cm4gWDcuaXNNYXRjaChlLHRoaXMud2lsZGNhcmQpfX19KTt2YXIgYTk9e307bHQoYTkse0Nyb246KCk9PnpzdCxDcm9uRGF0ZTooKT0+Q3MsQ3JvblBhdHRlcm46KCk9PldZLHNjaGVkdWxlZEpvYnM6KCk9Pm9ofSk7ZnVuY3Rpb24gSjcoYSl7cmV0dXJuIERhdGUuVVRDKGEueSxhLm0tMSxhLmQsYS5oLGEuaSxhLnMpfWZ1bmN0aW9uIEoxZShhLGUpe3JldHVybiBhLnk9PT1lLnkmJmEubT09PWUubSYmYS5kPT09ZS5kJiZhLmg9PT1lLmgmJmEuaT09PWUuaSYmYS5zPT09ZS5zfWZ1bmN0aW9uIEM5YShhLGUpe2xldCB0PW5ldyBEYXRlKERhdGUucGFyc2UoYSkpO2lmKGlzTmFOKHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byB0aW1lem9uZSBwYXJzZXIuIik7bGV0IHI9YS5zdWJzdHJpbmcoOSk7cmV0dXJuIHIuaW5jbHVkZXMoIloiKXx8ci5pbmNsdWRlcygiKyIpfHxyLmluY2x1ZGVzKCItIik/ZTJlKHQuZ2V0VVRDRnVsbFllYXIoKSx0LmdldFVUQ01vbnRoKCkrMSx0LmdldFVUQ0RhdGUoKSx0LmdldFVUQ0hvdXJzKCksdC5nZXRVVENNaW51dGVzKCksdC5nZXRVVENTZWNvbmRzKCksIkV0Yy9VVEMiKTplMmUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSsxLHQuZ2V0RGF0ZSgpLHQuZ2V0SG91cnMoKSx0LmdldE1pbnV0ZXMoKSx0LmdldFNlY29uZHMoKSxlKX1mdW5jdGlvbiB5c3QoYSxlLHQpe3JldHVybiB3c3QoQzlhKGEsZSksdCl9ZnVuY3Rpb24gd3N0KGEsZSl7bGV0IHQ9bmV3IERhdGUoSjcoYSkpLHI9ZTkodCxhLnR6KSxpPUo3KGEpLG89Sjcociksbj1pLW8sbD1uZXcgRGF0ZSh0LmdldFRpbWUoKStuKSxkPWU5KGwsYS50eik7aWYoSjFlKGQsYSkpe2xldCB1PW5ldyBEYXRlKGwuZ2V0VGltZSgpLTM2ZTUpLG09ZTkodSxhLnR6KTtyZXR1cm4gSjFlKG0sYSk/dTpsfWxldCBjPW5ldyBEYXRlKGwuZ2V0VGltZSgpK0o3KGEpLUo3KGQpKSxwPWU5KGMsYS50eik7aWYoSjFlKHAsYSkpcmV0dXJuIGM7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGF0ZSBwYXNzZWQgdG8gZnJvbVRaKCkiKTtyZXR1cm4gbC5nZXRUaW1lKCk+Yy5nZXRUaW1lKCk/bDpjfWZ1bmN0aW9uIGU5KGEsZSl7bGV0IHQscjt0cnl7dD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt0aW1lWm9uZTplLHllYXI6Im51bWVyaWMiLG1vbnRoOiJudW1lcmljIixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIixob3VyMTI6ITF9KSxyPXQuZm9ybWF0VG9QYXJ0cyhhKX1jYXRjaChvKXtsZXQgbj1vIGluc3RhbmNlb2YgRXJyb3I/by5tZXNzYWdlOlN0cmluZyhvKTt0aHJvdyBuZXcgUmFuZ2VFcnJvcihgdG9UWjogSW52YWxpZCB0aW1lem9uZSAnJHtlfScgb3IgZGF0ZS4gUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBJQU5BIHRpbWV6b25lIChlLmcuLCAnQW1lcmljYS9OZXdfWW9yaycsICdFdXJvcGUvU3RvY2tob2xtJykuIE9yaWdpbmFsIGVycm9yOiAke259YCl9bGV0IGk9e3llYXI6MCxtb250aDowLGRheTowLGhvdXI6MCxtaW51dGU6MCxzZWNvbmQ6MH07Zm9yKGxldCBvIG9mIHIpKG8udHlwZT09PSJ5ZWFyInx8by50eXBlPT09Im1vbnRoInx8by50eXBlPT09ImRheSJ8fG8udHlwZT09PSJob3VyInx8by50eXBlPT09Im1pbnV0ZSJ8fG8udHlwZT09PSJzZWNvbmQiKSYmKGlbby50eXBlXT1wYXJzZUludChvLnZhbHVlLDEwKSk7aWYoaXNOYU4oaS55ZWFyKXx8aXNOYU4oaS5tb250aCl8fGlzTmFOKGkuZGF5KXx8aXNOYU4oaS5ob3VyKXx8aXNOYU4oaS5taW51dGUpfHxpc05hTihpLnNlY29uZCkpdGhyb3cgbmV3IEVycm9yKGB0b1RaOiBGYWlsZWQgdG8gcGFyc2UgYWxsIGRhdGUgY29tcG9uZW50cyBmcm9tIHRpbWV6b25lICcke2V9Jy4gVGhpcyBtYXkgaW5kaWNhdGUgYW4gaW52YWxpZCBkYXRlIG9yIHRpbWV6b25lIGNvbmZpZ3VyYXRpb24uIFBhcnNlZCBjb21wb25lbnRzOiAke0pTT04uc3RyaW5naWZ5KGkpfWApO3JldHVybiBpLmhvdXI9PT0yNCYmKGkuaG91cj0wKSx7eTppLnllYXIsbTppLm1vbnRoLGQ6aS5kYXksaDppLmhvdXIsaTppLm1pbnV0ZSxzOmkuc2Vjb25kLHR6OmV9fWZ1bmN0aW9uIGUyZShhLGUsdCxyLGksbyxuKXtyZXR1cm57eTphLG06ZSxkOnQsaDpyLGksczpvLHR6Om59fWZ1bmN0aW9uIF85YShhKXtpZihhPT09dm9pZCAwJiYoYT17fSksZGVsZXRlIGEubmFtZSxhLmxlZ2FjeU1vZGUhPT12b2lkIDAmJmEuZG9tQW5kRG93PT09dm9pZCAwP2EuZG9tQW5kRG93PSFhLmxlZ2FjeU1vZGU6YS5kb21BbmREb3c9PT12b2lkIDAmJihhLmRvbUFuZERvdz0hMSksYS5sZWdhY3lNb2RlPSFhLmRvbUFuZERvdyxhLnBhdXNlZD1hLnBhdXNlZD09PXZvaWQgMD8hMTphLnBhdXNlZCxhLm1heFJ1bnM9YS5tYXhSdW5zPT09dm9pZCAwPzEvMDphLm1heFJ1bnMsYS5jYXRjaD1hLmNhdGNoPT09dm9pZCAwPyExOmEuY2F0Y2gsYS5pbnRlcnZhbD1hLmludGVydmFsPT09dm9pZCAwPzA6cGFyc2VJbnQoYS5pbnRlcnZhbC50b1N0cmluZygpLDEwKSxhLnV0Y09mZnNldD1hLnV0Y09mZnNldD09PXZvaWQgMD92b2lkIDA6cGFyc2VJbnQoYS51dGNPZmZzZXQudG9TdHJpbmcoKSwxMCksYS5kYXlPZmZzZXQ9YS5kYXlPZmZzZXQ9PT12b2lkIDA/MDpwYXJzZUludChhLmRheU9mZnNldC50b1N0cmluZygpLDEwKSxhLnVucmVmPWEudW5yZWY9PT12b2lkIDA/ITE6YS51bnJlZixhLm1vZGU9YS5tb2RlPT09dm9pZCAwPyJhdXRvIjphLm1vZGUsYS5hbHRlcm5hdGl2ZVdlZWtkYXlzPWEuYWx0ZXJuYXRpdmVXZWVrZGF5cz09PXZvaWQgMD8hMTphLmFsdGVybmF0aXZlV2Vla2RheXMsYS5zbG9wcHlSYW5nZXM9YS5zbG9wcHlSYW5nZXM9PT12b2lkIDA/ITE6YS5zbG9wcHlSYW5nZXMsIVsiYXV0byIsIjUtcGFydCIsIjYtcGFydCIsIjctcGFydCIsIjUtb3ItNi1wYXJ0cyIsIjYtb3ItNy1wYXJ0cyJdLmluY2x1ZGVzKGEubW9kZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogbW9kZSBtdXN0IGJlIG9uZSBvZiAnYXV0bycsICc1LXBhcnQnLCAnNi1wYXJ0JywgJzctcGFydCcsICc1LW9yLTYtcGFydHMnLCBvciAnNi1vci03LXBhcnRzJy4iKTtpZihhLnN0YXJ0QXQmJihhLnN0YXJ0QXQ9bmV3IENzKGEuc3RhcnRBdCxhLnRpbWV6b25lKSksYS5zdG9wQXQmJihhLnN0b3BBdD1uZXcgQ3MoYS5zdG9wQXQsYS50aW1lem9uZSkpLGEuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTihhLmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYoYS5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYoYS51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKGEudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZihhLnV0Y09mZnNldDwtODcwfHxhLnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYoYS51dGNPZmZzZXQhPT12b2lkIDAmJmEudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZihhLnVucmVmIT09ITAmJmEudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7aWYoYS5kYXlPZmZzZXQhPT12b2lkIDAmJmEuZGF5T2Zmc2V0IT09MCYmaXNOYU4oYS5kYXlPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciBkYXlPZmZzZXQsIHNob3VsZCBiZSBhIG51bWJlciByZXByZXNlbnRpbmcgZGF5cyB0byBvZmZzZXQuIik7cmV0dXJuIGF9ZnVuY3Rpb24gdDkoYSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiBhPT0iZnVuY3Rpb24ifHxhIGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24gVDlhKGEpe3JldHVybiB0OShhKX1mdW5jdGlvbiBMOWEoYSl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIoYSk6YSYmdHlwZW9mIGEudW5yZWY8InUiJiZhLnVucmVmKCl9dmFyIE1zdCxXWSx0MmUsZHIsQ3Msa3N0LG9oLHpzdCxDc3Q9ZigoKT0+e3MoSjcsIlQiKTtzKEoxZSwiRCIpO3MoQzlhLCJBIik7cyh5c3QsInYiKTtzKHdzdCwiayIpO3MoZTksImciKTtzKGUyZSwiYiIpO01zdD1bMSwyLDQsOCwxNl0sV1k9Y2xhc3N7c3RhdGlje3ModGhpcywiQyIpfXBhdHRlcm47dGltZXpvbmU7bW9kZTthbHRlcm5hdGl2ZVdlZWtkYXlzO3Nsb3BweVJhbmdlcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2Vlazt5ZWFyO2xhc3REYXlPZk1vbnRoO2xhc3RXZWVrZGF5O25lYXJlc3RXZWVrZGF5cztzdGFyRE9NO3N0YXJET1c7c3RhclllYXI7dXNlQW5kTG9naWM7Y29uc3RydWN0b3IoYSxlLHQpe3RoaXMucGF0dGVybj1hLHRoaXMudGltZXpvbmU9ZSx0aGlzLm1vZGU9dD8ubW9kZT8/ImF1dG8iLHRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz10Py5hbHRlcm5hdGl2ZVdlZWtkYXlzPz8hMSx0aGlzLnNsb3BweVJhbmdlcz10Py5zbG9wcHlSYW5nZXM/PyExLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy55ZWFyPUFycmF5KDFlNCkuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMubGFzdFdlZWtkYXk9ITEsdGhpcy5uZWFyZXN0V2Vla2RheXM9QXJyYXkoMzEpLmZpbGwoMCksdGhpcy5zdGFyRE9NPSExLHRoaXMuc3RhckRPVz0hMSx0aGlzLnN0YXJZZWFyPSExLHRoaXMudXNlQW5kTG9naWM9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IGE9dGhpcy5wYXR0ZXJuLm1hdGNoKC9cUysvZyl8fFsiIl0sZT1hLmxlbmd0aDtpZihhLmxlbmd0aDw1fHxhLmxlbmd0aD43KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUsIHNpeCwgb3Igc2V2ZW4gc3BhY2Ugc2VwYXJhdGVkIHBhcnRzIGFyZSByZXF1aXJlZC4iKTtpZih0aGlzLm1vZGUhPT0iYXV0byIpe2xldCByO3N3aXRjaCh0aGlzLm1vZGUpe2Nhc2UiNS1wYXJ0IjpyPTU7YnJlYWs7Y2FzZSI2LXBhcnQiOnI9NjticmVhaztjYXNlIjctcGFydCI6cj03O2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjpyPVs1LDZdO2JyZWFrO2Nhc2UiNi1vci03LXBhcnRzIjpyPVs2LDddO2JyZWFrO2RlZmF1bHQ6cj0wfWlmKCEoQXJyYXkuaXNBcnJheShyKT9yLmluY2x1ZGVzKGUpOmU9PT1yKSl7bGV0IGk9QXJyYXkuaXNBcnJheShyKT9yLmpvaW4oIiBvciAiKTpyLnRvU3RyaW5nKCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG1vZGUgJyR7dGhpcy5tb2RlfScgcmVxdWlyZXMgZXhhY3RseSAke2l9IHBhcnRzLCBidXQgcGF0dGVybiAnJHt0aGlzLnBhdHRlcm59JyBoYXMgJHtlfSBwYXJ0cy5gKX19aWYoYS5sZW5ndGg9PT01JiZhLnVuc2hpZnQoIjAiKSxhLmxlbmd0aD09PTYmJmEucHVzaCgiKiIpLGFbM10udG9VcHBlckNhc2UoKT09PSJMVyI/KHRoaXMubGFzdFdlZWtkYXk9ITAsYVszXT0iIik6YVszXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkwiKT49MCYmKGFbM109YVszXS5yZXBsYWNlKC9ML2dpLCIiKSx0aGlzLmxhc3REYXlPZk1vbnRoPSEwKSxhWzNdPT0iKiImJih0aGlzLnN0YXJET009ITApLGFbNl09PSIqIiYmKHRoaXMuc3RhclllYXI9ITApLGFbNF0ubGVuZ3RoPj0zJiYoYVs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyhhWzRdKSksYVs1XS5sZW5ndGg+PTMmJihhWzVdPXRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz90aGlzLnJlcGxhY2VBbHBoYURheXNRdWFydHooYVs1XSk6dGhpcy5yZXBsYWNlQWxwaGFEYXlzKGFbNV0pKSxhWzVdLnN0YXJ0c1dpdGgoIisiKSYmKHRoaXMudXNlQW5kTG9naWM9ITAsYVs1XT1hWzVdLnN1YnN0cmluZygxKSxhWzVdPT09IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBEYXktb2Ytd2VlayBmaWVsZCBjYW5ub3QgYmUgZW1wdHkgYWZ0ZXIgJysnIG1vZGlmaWVyLiIpO3N3aXRjaChhWzVdPT0iKiImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKCI/Iik+PTAmJihhWzBdPWFbMF0ucmVwbGFjZSgvXD8vZywiKiIpLGFbMV09YVsxXS5yZXBsYWNlKC9cPy9nLCIqIiksYVsyXT1hWzJdLnJlcGxhY2UoL1w/L2csIioiKSxhWzNdPWFbM10ucmVwbGFjZSgvXD8vZywiKiIpLGFbNF09YVs0XS5yZXBsYWNlKC9cPy9nLCIqIiksYVs1XT1hWzVdLnJlcGxhY2UoL1w/L2csIioiKSxhWzZdJiYoYVs2XT1hWzZdLnJlcGxhY2UoL1w/L2csIioiKSkpLHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmFbMF09IjAiLGFbNl09IioiO2JyZWFrO2Nhc2UiNi1wYXJ0IjphWzZdPSIqIjticmVhaztjYXNlIjUtb3ItNi1wYXJ0cyI6YVs2XT0iKiI7YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmJyZWFrO2Nhc2UiNy1wYXJ0IjpjYXNlImF1dG8iOmJyZWFrfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKGEpLHRoaXMucGFydFRvQXJyYXkoInNlY29uZCIsYVswXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoIm1pbnV0ZSIsYVsxXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImhvdXIiLGFbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJkYXkiLGFbM10sLTEsMSksdGhpcy5wYXJ0VG9BcnJheSgibW9udGgiLGFbNF0sLTEsMSk7bGV0IHQ9dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPy0xOjA7dGhpcy5wYXJ0VG9BcnJheSgiZGF5T2ZXZWVrIixhWzVdLHQsNjMpLHRoaXMucGFydFRvQXJyYXkoInllYXIiLGFbNl0sMCwxKSwhdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzJiZ0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheShhLGUsdCxyKXtsZXQgaT10aGlzW2FdLG89YT09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoLG49YT09PSJkYXkiJiZ0aGlzLmxhc3RXZWVrZGF5O2lmKGU9PT0iIiYmIW8mJiFuKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrYSsiICgiK2UrIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuIik7aWYoZT09PSIqIilyZXR1cm4gaS5maWxsKHIpO2xldCBsPWUuc3BsaXQoIiwiKTtpZihsLmxlbmd0aD4xKWZvcihsZXQgZD0wO2Q8bC5sZW5ndGg7ZCsrKXRoaXMucGFydFRvQXJyYXkoYSxsW2RdLHQscik7ZWxzZSBlLmluZGV4T2YoIi0iKSE9PS0xJiZlLmluZGV4T2YoIi8iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcoZSxhLHQscik6ZS5pbmRleE9mKCItIikhPT0tMT90aGlzLmhhbmRsZVJhbmdlKGUsYSx0LHIpOmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVTdGVwcGluZyhlLGEsdCxyKTplIT09IiImJnRoaXMuaGFuZGxlTnVtYmVyKGUsYSx0LHIpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyhhKXtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrKylpZigoZT09PTM/L1teLyowLTksXC1Xd0xsXSsvOmU9PT01Py9bXi8qMC05LFwtI0xsXSsvOi9bXi8qMC05LFwtXSsvKS50ZXN0KGFbZV0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrZSsiICgiK2FbZV0rIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpfWhhbmRsZU51bWJlcihhLGUsdCxyKXtsZXQgaT10aGlzLmV4dHJhY3ROdGgoYSxlKSxvPWEudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpO2lmKGUhPT0iZGF5IiYmbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogTmVhcmVzdCB3ZWVrZGF5IG1vZGlmaWVyIChXKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLW1vbnRoLiIpO28mJihlPSJuZWFyZXN0V2Vla2RheXMiKTtsZXQgbj1wYXJzZUludChpWzBdLDEwKSt0O2lmKGlzTmFOKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiAiK2UrIiBpcyBub3QgYSBudW1iZXI6ICciK2ErIiciKTt0aGlzLnNldFBhcnQoZSxuLGlbMV18fHIpfXNldFBhcnQoYSxlLHQpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCBwYXJ0IHNwZWNpZmllZDogIithKTtpZihhPT09ImRheU9mV2VlayIpe2lmKGU9PT03JiYoZT0wKSxlPDB8fGU+Nil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlazogIitlKTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKGUsdCk7cmV0dXJufWlmKGE9PT0ic2Vjb25kInx8YT09PSJtaW51dGUiKXtpZihlPDB8fGU+PTYwKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIithKyI6ICIrZSl9ZWxzZSBpZihhPT09ImhvdXIiKXtpZihlPDB8fGU+PTI0KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIithKyI6ICIrZSl9ZWxzZSBpZihhPT09ImRheSJ8fGE9PT0ibmVhcmVzdFdlZWtkYXlzIil7aWYoZTwwfHxlPj0zMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrYSsiOiAiK2UpfWVsc2UgaWYoYT09PSJtb250aCIpe2lmKGU8MHx8ZT49MTIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2ErIjogIitlKX1lbHNlIGlmKGE9PT0ieWVhciImJihlPDF8fGU+PTFlNCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2ErIjogIitlKyIgKHN1cHBvcnRlZCByYW5nZTogMS05OTk5KSIpO3RoaXNbYV1bZV09dH12YWxpZGF0ZU5vdE5hTihhLGUpe2lmKGlzTmFOKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoZSl9dmFsaWRhdGVSYW5nZShhLGUsdCxyLGkpe2lmKGE+ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIraSsiJyIpO2lmKHQhPT12b2lkIDApe2lmKHQ9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZih0PnRoaXNbcl0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZSBvZiBwYXJ0ICgiK3RoaXNbcl0ubGVuZ3RoKyIpIil9fWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKGEsZSx0LHIpe2lmKGEudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gcmFuZ2VzIHdpdGggc3RlcHBpbmcuIik7bGV0IGk9dGhpcy5leHRyYWN0TnRoKGEsZSksbz1pWzBdLm1hdGNoKC9eKFxkKyktKFxkKylcLyhcZCspJC8pO2lmKG89PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2Ugd2l0aCBzdGVwcGluZzogJyIrYSsiJyIpO2xldFssbixsLGRdPW8sYz1wYXJzZUludChuLDEwKSt0LHA9cGFyc2VJbnQobCwxMCkrdCx1PXBhcnNlSW50KGQsMTApO3RoaXMudmFsaWRhdGVOb3ROYU4oYywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4ocCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4odSwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoYyxwLHUsZSxhKTtmb3IobGV0IG09YzttPD1wO20rPXUpdGhpcy5zZXRQYXJ0KGUsbSxpWzFdfHxyKX1leHRyYWN0TnRoKGEsZSl7bGV0IHQ9YSxyO2lmKHQuaW5jbHVkZXMoIiMiKSl7aWYoZSE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7cj10LnNwbGl0KCIjIilbMV0sdD10LnNwbGl0KCIjIilbMF19ZWxzZSBpZih0LnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoIkwiKSl7aWYoZSE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IEwgbW9kaWZpZXIgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkICh1c2UgTCBhbG9uZSBmb3IgZGF5LW9mLW1vbnRoKSIpO3I9IkwiLHQ9dC5zbGljZSgwLC0xKX1yZXR1cm5bdCxyXX1oYW5kbGVSYW5nZShhLGUsdCxyKXtpZihhLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIGEgcmFuZ2UuIik7bGV0IGk9dGhpcy5leHRyYWN0TnRoKGEsZSksbz1pWzBdLnNwbGl0KCItIik7aWYoby5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK2ErIiciKTtsZXQgbj1wYXJzZUludChvWzBdLDEwKSt0LGw9cGFyc2VJbnQob1sxXSwxMCkrdDt0aGlzLnZhbGlkYXRlTm90TmFOKG4sIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgbG93ZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlTm90TmFOKGwsIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgdXBwZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UobixsLHZvaWQgMCxlLGEpO2ZvcihsZXQgZD1uO2Q8PWw7ZCsrKXRoaXMuc2V0UGFydChlLGQsaVsxXXx8cil9aGFuZGxlU3RlcHBpbmcoYSxlLHQscil7aWYoYS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0cyB3aXRoIHN0ZXBwaW5nLiIpO2xldCBpPXRoaXMuZXh0cmFjdE50aChhLGUpLG89aVswXS5zcGxpdCgiLyIpO2lmKG8ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnIithKyInIik7aWYodGhpcy5zbG9wcHlSYW5nZXMpb1swXT09PSIiJiYob1swXT0iKiIpO2Vsc2V7aWYob1swXT09PSIiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbWlzc2luZyBwcmVmaXggKCciK2ErIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKTtpZihvWzBdIT09IioiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbnVtZXJpYyBwcmVmaXggKCciK2ErIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKX1sZXQgbj0wO29bMF0hPT0iKiImJihuPXBhcnNlSW50KG9bMF0sMTApK3QpO2xldCBsPXBhcnNlSW50KG9bMV0sMTApO3RoaXMudmFsaWRhdGVOb3ROYU4obCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoMCx0aGlzW2VdLmxlbmd0aC0xLGwsZSxhKTtmb3IobGV0IGQ9bjtkPHRoaXNbZV0ubGVuZ3RoO2QrPWwpdGhpcy5zZXRQYXJ0KGUsZCxpWzFdfHxyKX1yZXBsYWNlQWxwaGFEYXlzKGEpe3JldHVybiBhLnJlcGxhY2UoLy1zdW4vZ2ksIi03IikucmVwbGFjZSgvc3VuL2dpLCIwIikucmVwbGFjZSgvbW9uL2dpLCIxIikucmVwbGFjZSgvdHVlL2dpLCIyIikucmVwbGFjZSgvd2VkL2dpLCIzIikucmVwbGFjZSgvdGh1L2dpLCI0IikucmVwbGFjZSgvZnJpL2dpLCI1IikucmVwbGFjZSgvc2F0L2dpLCI2Iil9cmVwbGFjZUFscGhhRGF5c1F1YXJ0eihhKXtyZXR1cm4gYS5yZXBsYWNlKC9zdW4vZ2ksIjEiKS5yZXBsYWNlKC9tb24vZ2ksIjIiKS5yZXBsYWNlKC90dWUvZ2ksIjMiKS5yZXBsYWNlKC93ZWQvZ2ksIjQiKS5yZXBsYWNlKC90aHUvZ2ksIjUiKS5yZXBsYWNlKC9mcmkvZ2ksIjYiKS5yZXBsYWNlKC9zYXQvZ2ksIjciKX1yZXBsYWNlQWxwaGFNb250aHMoYSl7cmV0dXJuIGEucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKGEpe2xldCBlPWEudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYoZT09PSJAeWVhcmx5Inx8ZT09PSJAYW5udWFsbHkiKXJldHVybiIwIDAgMSAxICoiO2lmKGU9PT0iQG1vbnRobHkiKXJldHVybiIwIDAgMSAqICoiO2lmKGU9PT0iQHdlZWtseSIpcmV0dXJuIjAgMCAqICogMCI7aWYoZT09PSJAZGFpbHkifHxlPT09IkBtaWRuaWdodCIpcmV0dXJuIjAgMCAqICogKiI7aWYoZT09PSJAaG91cmx5IilyZXR1cm4iMCAqICogKiAqIjtpZihlPT09IkByZWJvb3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBAcmVib290IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBhbiBldmVudC1iYXNlZCB0cmlnZ2VyIHRoYXQgcmVxdWlyZXMgc3lzdGVtIHN0YXJ0dXAgZGV0ZWN0aW9uLiIpO3JldHVybiBhfXNldE50aFdlZWtkYXlPZk1vbnRoKGEsZSl7aWYodHlwZW9mIGUhPSJudW1iZXIiJiZlLnRvVXBwZXJDYXNlKCk9PT0iTCIpdGhpcy5kYXlPZldlZWtbYV09dGhpcy5kYXlPZldlZWtbYV18MzI7ZWxzZSBpZihlPT09NjMpdGhpcy5kYXlPZldlZWtbYV09NjM7ZWxzZSBpZihlPDYmJmU+MCl0aGlzLmRheU9mV2Vla1thXT10aGlzLmRheU9mV2Vla1thXXxNc3RbZS0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7ZX0sIFR5cGU6ICR7dHlwZW9mIGV9YCl9fSx0MmU9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxkcj1bWyJtb250aCIsInllYXIiLDBdLFsiZGF5IiwibW9udGgiLC0xXSxbImhvdXIiLCJkYXkiLDBdLFsibWludXRlIiwiaG91ciIsMF0sWyJzZWNvbmQiLCJtaW51dGUiLDBdXSxDcz1jbGFzcyBTc3R7c3RhdGlje3ModGhpcywicyIpfXR6O21zO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7eWVhcjtjb25zdHJ1Y3RvcihlLHQpe2lmKHRoaXMudHo9dCxlJiZlIGluc3RhbmNlb2YgRGF0ZSlpZighaXNOYU4oZSkpdGhpcy5mcm9tRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIik7ZWxzZSBpZihlPT1udWxsKXRoaXMuZnJvbURhdGUobmV3IERhdGUpO2Vsc2UgaWYoZSYmdHlwZW9mIGU9PSJzdHJpbmciKXRoaXMuZnJvbVN0cmluZyhlKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBTc3QpdGhpcy5mcm9tQ3JvbkRhdGUoZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCB0eXBlICgiK3R5cGVvZiBlKyIpIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpfWdldExhc3REYXlPZk1vbnRoKGUsdCl7cmV0dXJuIHQhPT0xP3QyZVt0XTpuZXcgRGF0ZShEYXRlLlVUQyhlLHQrMSwwKSkuZ2V0VVRDRGF0ZSgpfWdldExhc3RXZWVrZGF5KGUsdCl7bGV0IHI9dGhpcy5nZXRMYXN0RGF5T2ZNb250aChlLHQpLGk9bmV3IERhdGUoRGF0ZS5VVEMoZSx0LHIpKS5nZXRVVENEYXkoKTtyZXR1cm4gaT09PTA/ci0yOmk9PT02P3ItMTpyfWdldE5lYXJlc3RXZWVrZGF5KGUsdCxyKXtsZXQgaT10aGlzLmdldExhc3REYXlPZk1vbnRoKGUsdCk7aWYocj5pKXJldHVybi0xO2xldCBvPW5ldyBEYXRlKERhdGUuVVRDKGUsdCxyKSkuZ2V0VVRDRGF5KCk7cmV0dXJuIG89PT0wP3I9PT1pP3ItMjpyKzE6bz09PTY/cj09PTE/cisyOnItMTpyfWlzTnRoV2Vla2RheU9mTW9udGgoZSx0LHIsaSl7bGV0IG89bmV3IERhdGUoRGF0ZS5VVEMoZSx0LHIpKS5nZXRVVENEYXkoKSxuPTA7Zm9yKGxldCBsPTE7bDw9cjtsKyspbmV3IERhdGUoRGF0ZS5VVEMoZSx0LGwpKS5nZXRVVENEYXkoKT09PW8mJm4rKztpZihpJjYzJiZNc3Rbbi0xXSZpKXJldHVybiEwO2lmKGkmMzIpe2xldCBsPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSx0KTtmb3IobGV0IGQ9cisxO2Q8PWw7ZCsrKWlmKG5ldyBEYXRlKERhdGUuVVRDKGUsdCxkKSkuZ2V0VVRDRGF5KCk9PT1vKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKGUpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZSB0cnl7bGV0IHQ9ZTkoZSx0aGlzLnR6KTt0aGlzLm1zPWUuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9dC5zLHRoaXMubWludXRlPXQuaSx0aGlzLmhvdXI9dC5oLHRoaXMuZGF5PXQuZCx0aGlzLm1vbnRoPXQubS0xLHRoaXMueWVhcj10Lnl9Y2F0Y2godCl7bGV0IHI9dCBpbnN0YW5jZW9mIEVycm9yP3QubWVzc2FnZTpTdHJpbmcodCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvbkRhdGU6IEZhaWxlZCB0byBjb252ZXJ0IGRhdGUgdG8gdGltZXpvbmUgJyR7dGhpcy50en0nLiBUaGlzIG1heSBoYXBwZW4gd2l0aCBpbnZhbGlkIHRpbWV6b25lIG5hbWVzIG9yIGRhdGVzLiBPcmlnaW5hbCBlcnJvcjogJHtyfWApfWVsc2UgdGhpcy5tcz1lLmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0TWludXRlcygpLHRoaXMuaG91cj1lLmdldEhvdXJzKCksdGhpcy5kYXk9ZS5nZXREYXRlKCksdGhpcy5tb250aD1lLmdldE1vbnRoKCksdGhpcy55ZWFyPWUuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUoZSl7dGhpcy50ej1lLnR6LHRoaXMueWVhcj1lLnllYXIsdGhpcy5tb250aD1lLm1vbnRoLHRoaXMuZGF5PWUuZGF5LHRoaXMuaG91cj1lLmhvdXIsdGhpcy5taW51dGU9ZS5taW51dGUsdGhpcy5zZWNvbmQ9ZS5zZWNvbmQsdGhpcy5tcz1lLm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5tb250aDwwfHx0aGlzLmRheT50MmVbdGhpcy5tb250aF18fHRoaXMuZGF5PDF8fHRoaXMuaG91cj41OXx8dGhpcy5taW51dGU+NTl8fHRoaXMuc2Vjb25kPjU5fHx0aGlzLmhvdXI8MHx8dGhpcy5taW51dGU8MHx8dGhpcy5zZWNvbmQ8MCl7bGV0IGU9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpKTtyZXR1cm4gdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSwhMH1lbHNlIHJldHVybiExfWZyb21TdHJpbmcoZSl7aWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXtsZXQgdD15c3QoZSk7dGhpcy5tcz10LmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXQuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPXQuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj10LmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9dC5nZXRVVENEYXRlKCksdGhpcy5tb250aD10LmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXQuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCl9ZWxzZSByZXR1cm4gdGhpcy5mcm9tRGF0ZSh5c3QoZSx0aGlzLnR6KSl9ZmluZE5leHQoZSx0LHIsaSl7cmV0dXJuIHRoaXMuX2ZpbmRNYXRjaChlLHQscixpLDEpfV9maW5kTWF0Y2goZSx0LHIsaSxvKXtsZXQgbj10aGlzW3RdLGw7ci5sYXN0RGF5T2ZNb250aCYmKGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCkpO2xldCBkPSFyLnN0YXJET1cmJnQ9PSJkYXkiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpOnZvaWQgMCxjPXRoaXNbdF0raSxwPW89PT0xP3U9PnU8clt0XS5sZW5ndGg6dT0+dT49MDtmb3IobGV0IHU9YztwKHUpO3UrPW8pe2xldCBtPXJbdF1bdV07aWYodD09PSJkYXkiJiYhbSl7Zm9yKGxldCB2PTA7djxyLm5lYXJlc3RXZWVrZGF5cy5sZW5ndGg7disrKWlmKHIubmVhcmVzdFdlZWtkYXlzW3ZdKXtsZXQgeD10aGlzLmdldE5lYXJlc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoLHYtaSk7aWYoeD09PS0xKWNvbnRpbnVlO2lmKHg9PT11LWkpe209MTticmVha319fWlmKHQ9PT0iZGF5IiYmci5sYXN0V2Vla2RheSl7bGV0IHY9dGhpcy5nZXRMYXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCk7dS1pPT09diYmKG09MSl9aWYodD09PSJkYXkiJiZyLmxhc3REYXlPZk1vbnRoJiZ1LWk9PWwmJihtPTEpLHQ9PT0iZGF5IiYmIXIuc3RhckRPVyl7bGV0IHY9ci5kYXlPZldlZWtbKGQrKHUtaS0xKSklN107aWYodiYmdiY2Myl2PXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCx1LWksdik/MTowO2Vsc2UgaWYodil0aHJvdyBuZXcgRXJyb3IoYENyb25EYXRlOiBJbnZhbGlkIHZhbHVlIGZvciBkYXlPZldlZWsgZW5jb3VudGVyZWQuICR7dn1gKTtyLnVzZUFuZExvZ2ljP209bSYmdjohZS5kb21BbmREb3cmJiFyLnN0YXJET00/bT1tfHx2Om09bSYmdn1pZihtKXJldHVybiB0aGlzW3RdPXUtaSxuIT09dGhpc1t0XT8yOjF9cmV0dXJuIDN9cmVjdXJzZShlLHQscil7aWYocj09PTAmJiFlLnN0YXJZZWFyKXtpZih0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTApe2xldCBvPS0xO2ZvcihsZXQgbj10aGlzLnllYXIrMTtuPGUueWVhci5sZW5ndGgmJm48MWU0O24rKylpZihlLnllYXJbbl09PT0xKXtvPW47YnJlYWt9aWYobz09PS0xKXJldHVybiBudWxsO3RoaXMueWVhcj1vLHRoaXMubW9udGg9MCx0aGlzLmRheT0xLHRoaXMuaG91cj0wLHRoaXMubWludXRlPTAsdGhpcy5zZWNvbmQ9MCx0aGlzLm1zPTB9aWYodGhpcy55ZWFyPj0xZTQpcmV0dXJuIG51bGx9bGV0IGk9dGhpcy5maW5kTmV4dCh0LGRyW3JdWzBdLGUsZHJbcl1bMl0pO2lmKGk+MSl7bGV0IG89cisxO2Zvcig7bzxkci5sZW5ndGg7KXRoaXNbZHJbb11bMF1dPS1kcltvXVsyXSxvKys7aWYoaT09PTMpe2lmKHRoaXNbZHJbcl1bMV1dKyssdGhpc1tkcltyXVswXV09LWRyW3JdWzJdLHRoaXMuYXBwbHkoKSxyPT09MCYmIWUuc3RhclllYXIpe2Zvcig7dGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8ZS55ZWFyLmxlbmd0aCYmZS55ZWFyW3RoaXMueWVhcl09PT0wJiZ0aGlzLnllYXI8MWU0Oyl0aGlzLnllYXIrKztpZih0aGlzLnllYXI+PTFlNHx8dGhpcy55ZWFyPj1lLnllYXIubGVuZ3RoKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2UoZSx0LDApfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2UoZSx0LHItMSl9cmV0dXJuIHIrPTEscj49ZHIubGVuZ3RoP3RoaXM6KGUuc3RhclllYXI/dGhpcy55ZWFyPj0zZTM6dGhpcy55ZWFyPj0xZTQpP251bGw6dGhpcy5yZWN1cnNlKGUsdCxyKX1pbmNyZW1lbnQoZSx0LHIpe3JldHVybiB0aGlzLnNlY29uZCs9dC5pbnRlcnZhbCE9PXZvaWQgMCYmdC5pbnRlcnZhbD4xJiZyP3QuaW50ZXJ2YWw6MSx0aGlzLm1zPTAsdGhpcy5hcHBseSgpLHRoaXMucmVjdXJzZShlLHQsMCl9ZGVjcmVtZW50KGUsdCl7cmV0dXJuIHRoaXMuc2Vjb25kLT10LmludGVydmFsIT09dm9pZCAwJiZ0LmludGVydmFsPjE/dC5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlQmFja3dhcmQoZSx0LDAsMCl9cmVjdXJzZUJhY2t3YXJkKGUsdCxyLGk9MCl7aWYoaT4xZTQpcmV0dXJuIG51bGw7aWYocj09PTAmJiFlLnN0YXJZZWFyKXtpZih0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTApe2xldCBuPS0xO2ZvcihsZXQgbD10aGlzLnllYXItMTtsPj0wO2wtLSlpZihlLnllYXJbbF09PT0xKXtuPWw7YnJlYWt9aWYobj09PS0xKXJldHVybiBudWxsO3RoaXMueWVhcj1uLHRoaXMubW9udGg9MTEsdGhpcy5kYXk9MzEsdGhpcy5ob3VyPTIzLHRoaXMubWludXRlPTU5LHRoaXMuc2Vjb25kPTU5LHRoaXMubXM9MH1pZih0aGlzLnllYXI8MClyZXR1cm4gbnVsbH1sZXQgbz10aGlzLmZpbmRQcmV2aW91cyh0LGRyW3JdWzBdLGUsZHJbcl1bMl0pO2lmKG8+MSl7bGV0IG49cisxO2Zvcig7bjxkci5sZW5ndGg7KXtsZXQgbD1kcltuXVswXSxkPWRyW25dWzJdLGM9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUobCxlLGQpO3RoaXNbbF09YyxuKyt9aWYobz09PTMpe2lmKHRoaXNbZHJbcl1bMV1dLS0scj09PTApe2xldCBwPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXMuZGF5PnAmJih0aGlzLmRheT1wKX1pZihyPT09MSlpZih0aGlzLmRheTw9MCl0aGlzLmRheT0xO2Vsc2V7bGV0IHA9dGhpcy55ZWFyLHU9dGhpcy5tb250aDtmb3IoO3U8MDspdSs9MTIscC0tO2Zvcig7dT4xMTspdS09MTIscCsrO2xldCBtPXUhPT0xP3QyZVt1XTpuZXcgRGF0ZShEYXRlLlVUQyhwLHUrMSwwKSkuZ2V0VVRDRGF0ZSgpO3RoaXMuZGF5Pm0mJih0aGlzLmRheT1tKX10aGlzLmFwcGx5KCk7bGV0IGw9ZHJbcl1bMF0sZD1kcltyXVsyXSxjPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKGwsZSxkKTtpZihsPT09ImRheSIpe2xldCBwPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXNbbF09TWF0aC5taW4oYyxwKX1lbHNlIHRoaXNbbF09YztpZih0aGlzLmFwcGx5KCkscj09PTApe2xldCBwPWRyWzFdWzJdLHU9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImRheSIsZSxwKSxtPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpLHY9TWF0aC5taW4odSxtKTt2IT09dGhpcy5kYXkmJih0aGlzLmRheT12LHRoaXMuaG91cj10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiaG91ciIsZSxkclsyXVsyXSksdGhpcy5taW51dGU9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoIm1pbnV0ZSIsZSxkclszXVsyXSksdGhpcy5zZWNvbmQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoInNlY29uZCIsZSxkcls0XVsyXSkpfWlmKHI9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTA7KXRoaXMueWVhci0tO2lmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHQsMCxpKzEpfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHQsci0xLGkrMSl9cmV0dXJuIHIrPTEscj49ZHIubGVuZ3RoP3RoaXM6dGhpcy55ZWFyPDA/bnVsbDp0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHQscixpKzEpfWdldE1heFBhdHRlcm5WYWx1ZShlLHQscil7aWYoZT09PSJkYXkiJiZ0Lmxhc3REYXlPZk1vbnRoKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtpZihlPT09ImRheSImJiF0LnN0YXJET1cpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2ZvcihsZXQgaT10W2VdLmxlbmd0aC0xO2k+PTA7aS0tKWlmKHRbZV1baV0pcmV0dXJuIGktcjtyZXR1cm4gdFtlXS5sZW5ndGgtMS1yfWZpbmRQcmV2aW91cyhlLHQscixpKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUsdCxyLGksLTEpfWdldERhdGUoZSl7cmV0dXJuIGV8fHRoaXMudHo9PT12b2lkIDA/bmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpOnR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIj9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUtdGhpcy50eix0aGlzLnNlY29uZCx0aGlzLm1zKSk6d3N0KGUyZSh0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX1tYXRjaChlLHQpe2lmKCFlLnN0YXJZZWFyJiYodGhpcy55ZWFyPDB8fHRoaXMueWVhcj49ZS55ZWFyLmxlbmd0aHx8ZS55ZWFyW3RoaXMueWVhcl09PT0wKSlyZXR1cm4hMTtmb3IobGV0IHI9MDtyPGRyLmxlbmd0aDtyKyspe2xldCBpPWRyW3JdWzBdLG89ZHJbcl1bMl0sbj10aGlzW2ldO2lmKG4rbzwwfHxuK28+PWVbaV0ubGVuZ3RoKXJldHVybiExO2xldCBsPWVbaV1bbitvXTtpZihpPT09ImRheSIpe2lmKCFsKXtmb3IobGV0IGQ9MDtkPGUubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtkKyspaWYoZS5uZWFyZXN0V2Vla2RheXNbZF0pe2xldCBjPXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsZC1vKTtpZihjIT09LTEmJmM9PT1uKXtsPTE7YnJlYWt9fX1pZihlLmxhc3RXZWVrZGF5KXtsZXQgZD10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtuPT09ZCYmKGw9MSl9aWYoZS5sYXN0RGF5T2ZNb250aCl7bGV0IGQ9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7bj09PWQmJihsPTEpfWlmKCFlLnN0YXJET1cpe2xldCBkPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpLGM9ZS5kYXlPZldlZWtbKGQrKG4tMSkpJTddO2MmJmMmNjMmJihjPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxuLGMpPzE6MCksZS51c2VBbmRMb2dpYz9sPWwmJmM6IXQuZG9tQW5kRG93JiYhZS5zdGFyRE9NP2w9bHx8YzpsPWwmJmN9fWlmKCFsKXJldHVybiExfXJldHVybiEwfX07cyhfOWEsIlIiKTtzKHQ5LCJwIik7cyhUOWEsIl8iKTtzKEw5YSwieCIpO2tzdD0zMCoxZTMsb2g9W10senN0PWNsYXNze3N0YXRpY3tzKHRoaXMsIkUiKX1uYW1lO29wdGlvbnM7X3N0YXRlcztmbjtnZXRUeigpe3JldHVybiB0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXR9YXBwbHlEYXlPZmZzZXQoYSl7aWYodGhpcy5vcHRpb25zLmRheU9mZnNldCE9PXZvaWQgMCYmdGhpcy5vcHRpb25zLmRheU9mZnNldCE9PTApe2xldCBlPXRoaXMub3B0aW9ucy5kYXlPZmZzZXQqMjQqNjAqNjAqMWUzO3JldHVybiBuZXcgRGF0ZShhLmdldFRpbWUoKStlKX1yZXR1cm4gYX1jb25zdHJ1Y3RvcihhLGUsdCl7bGV0IHIsaTtpZih0OShlKSlpPWU7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpcj1lO2Vsc2UgaWYoZSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBvcHRpb25zSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYodDkodCkpaT10O2Vsc2UgaWYodHlwZW9mIHQ9PSJvYmplY3QiKXI9dDtlbHNlIGlmKHQhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3IgZnVuY0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKHRoaXMubmFtZT1yPy5uYW1lLHRoaXMub3B0aW9ucz1fOWEociksdGhpcy5fc3RhdGVzPXtraWxsOiExLGJsb2NraW5nOiExLHByZXZpb3VzUnVuOnZvaWQgMCxjdXJyZW50UnVuOnZvaWQgMCxvbmNlOnZvaWQgMCxjdXJyZW50VGltZW91dDp2b2lkIDAsbWF4UnVuczpyP3IubWF4UnVuczp2b2lkIDAscGF1c2VkOnI/ci5wYXVzZWQ6ITEscGF0dGVybjpuZXcgV1koIiogKiAqICogKiIsdm9pZCAwLHttb2RlOiJhdXRvIn0pfSxhJiYoYSBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiBhPT0ic3RyaW5nIiYmYS5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IENzKGEsdGhpcy5nZXRUeigpKTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgV1koYSx0aGlzLm9wdGlvbnMudGltZXpvbmUse21vZGU6dGhpcy5vcHRpb25zLm1vZGUsYWx0ZXJuYXRpdmVXZWVrZGF5czp0aGlzLm9wdGlvbnMuYWx0ZXJuYXRpdmVXZWVrZGF5cyxzbG9wcHlSYW5nZXM6dGhpcy5vcHRpb25zLnNsb3BweVJhbmdlc30pLHRoaXMubmFtZSl7aWYob2guZmluZChvPT5vLm5hbWU9PT10aGlzLm5hbWUpKXRocm93IG5ldyBFcnJvcigiQ3JvbjogVHJpZWQgdG8gaW5pdGlhbGl6ZSBuZXcgbmFtZWQgam9iICciK3RoaXMubmFtZSsiJywgYnV0IG5hbWUgYWxyZWFkeSB0YWtlbi4iKTtvaC5wdXNoKHRoaXMpfXJldHVybiBpIT09dm9pZCAwJiZUOWEoaSkmJih0aGlzLmZuPWksdGhpcy5zY2hlZHVsZSgpKSx0aGlzfW5leHRSdW4oYSl7bGV0IGU9dGhpcy5fbmV4dChhKTtyZXR1cm4gZT90aGlzLmFwcGx5RGF5T2Zmc2V0KGUuZ2V0RGF0ZSghMSkpOm51bGx9bmV4dFJ1bnMoYSxlKXt0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmYT50aGlzLl9zdGF0ZXMubWF4UnVucyYmKGE9dGhpcy5fc3RhdGVzLm1heFJ1bnMpO2xldCB0PWV8fHRoaXMuX3N0YXRlcy5jdXJyZW50UnVufHx2b2lkIDA7cmV0dXJuIHRoaXMuX2VudW1lcmF0ZVJ1bnMoYSx0LCJuZXh0Iil9cHJldmlvdXNSdW5zKGEsZSl7cmV0dXJuIHRoaXMuX2VudW1lcmF0ZVJ1bnMoYSxlfHx2b2lkIDAsInByZXZpb3VzIil9X2VudW1lcmF0ZVJ1bnMoYSxlLHQpe2xldCByPVtdLGk9ZT9uZXcgQ3MoZSx0aGlzLmdldFR6KCkpOm51bGwsbz10PT09Im5leHQiP3RoaXMuX25leHQ6dGhpcy5fcHJldmlvdXM7Zm9yKDthLS07KXtsZXQgbj1vLmNhbGwodGhpcyxpKTtpZighbilicmVhaztsZXQgbD1uLmdldERhdGUoITEpO3IucHVzaCh0aGlzLmFwcGx5RGF5T2Zmc2V0KGwpKSxpPW59cmV0dXJuIHJ9bWF0Y2goYSl7aWYodGhpcy5fc3RhdGVzLm9uY2Upe2xldCB0PW5ldyBDcyhhLHRoaXMuZ2V0VHooKSk7dC5tcz0wO2xldCByPW5ldyBDcyh0aGlzLl9zdGF0ZXMub25jZSx0aGlzLmdldFR6KCkpO3JldHVybiByLm1zPTAsdC5nZXRUaW1lKCk9PT1yLmdldFRpbWUoKX1sZXQgZT1uZXcgQ3MoYSx0aGlzLmdldFR6KCkpO3JldHVybiBlLm1zPTAsZS5tYXRjaCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMpfWdldFBhdHRlcm4oKXtpZighdGhpcy5fc3RhdGVzLm9uY2UpcmV0dXJuIHRoaXMuX3N0YXRlcy5wYXR0ZXJuP3RoaXMuX3N0YXRlcy5wYXR0ZXJuLnBhdHRlcm46dm9pZCAwfWdldE9uY2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0RGF0ZSgpOm51bGx9aXNSdW5uaW5nKCl7bGV0IGE9dGhpcy5uZXh0UnVuKHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKSxlPSF0aGlzLl9zdGF0ZXMucGF1c2VkLHQ9dGhpcy5mbiE9PXZvaWQgMCxyPSF0aGlzLl9zdGF0ZXMua2lsbDtyZXR1cm4gZSYmdCYmciYmYSE9PW51bGx9aXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5raWxsfWlzQnVzeSgpe3JldHVybiB0aGlzLl9zdGF0ZXMuYmxvY2tpbmd9Y3VycmVudFJ1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bj90aGlzLl9zdGF0ZXMuY3VycmVudFJ1bi5nZXREYXRlKCk6bnVsbH1wcmV2aW91c1J1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMucHJldmlvdXNSdW4/dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuLmdldERhdGUoKTpudWxsfW1zVG9OZXh0KGEpe2xldCBlPXRoaXMuX25leHQoYSk7cmV0dXJuIGU/YSBpbnN0YW5jZW9mIENzfHxhIGluc3RhbmNlb2YgRGF0ZT9lLmdldFRpbWUoKS1hLmdldFRpbWUoKTplLmdldFRpbWUoKS1uZXcgQ3MoYSkuZ2V0VGltZSgpOm51bGx9c3RvcCgpe3RoaXMuX3N0YXRlcy5raWxsPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCk7bGV0IGE9b2guaW5kZXhPZih0aGlzKTthPj0wJiZvaC5zcGxpY2UoYSwxKX1wYXVzZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMucGF1c2VkPSEwLCF0aGlzLl9zdGF0ZXMua2lsbH1yZXN1bWUoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMSwhdGhpcy5fc3RhdGVzLmtpbGx9c2NoZWR1bGUoYSl7aWYoYSYmdGhpcy5mbil0aHJvdyBuZXcgRXJyb3IoIkNyb246IEl0IGlzIG5vdCBhbGxvd2VkIHRvIHNjaGVkdWxlIHR3byBmdW5jdGlvbnMgdXNpbmcgdGhlIHNhbWUgQ3JvbmVyIGluc3RhbmNlLiIpO2EmJih0aGlzLmZuPWEpO2xldCBlPXRoaXMubXNUb05leHQoKSx0PXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bik7cmV0dXJuIGU9PW51bGx8fGlzTmFOKGUpfHx0PT09bnVsbD90aGlzOihlPmtzdCYmKGU9a3N0KSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+dGhpcy5fY2hlY2tUcmlnZ2VyKHQpLGUpLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCYmdGhpcy5vcHRpb25zLnVucmVmJiZMOWEodGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0KSx0aGlzKX1hc3luYyBfdHJpZ2dlcihhKXt0aGlzLl9zdGF0ZXMuYmxvY2tpbmc9ITAsdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW49bmV3IENzKHZvaWQgMCx0aGlzLmdldFR6KCkpO3RyeXtpZih0aGlzLm9wdGlvbnMuY2F0Y2gpdHJ5e3RoaXMuZm4hPT12b2lkIDAmJmF3YWl0IHRoaXMuZm4odGhpcyx0aGlzLm9wdGlvbnMuY29udGV4dCl9Y2F0Y2goZSl7aWYodDkodGhpcy5vcHRpb25zLmNhdGNoKSl0cnl7dGhpcy5vcHRpb25zLmNhdGNoKGUsdGhpcyl9Y2F0Y2h7fX1lbHNlIHRoaXMuZm4hPT12b2lkIDAmJmF3YWl0IHRoaXMuZm4odGhpcyx0aGlzLm9wdGlvbnMuY29udGV4dCl9ZmluYWxseXt0aGlzLl9zdGF0ZXMucHJldmlvdXNSdW49bmV3IENzKGEsdGhpcy5nZXRUeigpKSx0aGlzLl9zdGF0ZXMuYmxvY2tpbmc9ITF9fWFzeW5jIHRyaWdnZXIoKXthd2FpdCB0aGlzLl90cmlnZ2VyKCl9cnVuc0xlZnQoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLm1heFJ1bnN9X2NoZWNrVHJpZ2dlcihhKXtsZXQgZT1uZXcgRGF0ZSx0PSF0aGlzLl9zdGF0ZXMucGF1c2VkJiZlLmdldFRpbWUoKT49YS5nZXRUaW1lKCkscj10aGlzLl9zdGF0ZXMuYmxvY2tpbmcmJnRoaXMub3B0aW9ucy5wcm90ZWN0O3QmJiFyPyh0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdGhpcy5fc3RhdGVzLm1heFJ1bnMtLSx0aGlzLl90cmlnZ2VyKCkpOnQmJnImJnQ5KHRoaXMub3B0aW9ucy5wcm90ZWN0KSYmc2V0VGltZW91dCgoKT0+dGhpcy5vcHRpb25zLnByb3RlY3QodGhpcyksMCksdGhpcy5zY2hlZHVsZSgpfV9uZXh0KGEpe2xldCBlPSEhKGF8fHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKSx0PSExOyFhJiZ0aGlzLm9wdGlvbnMuc3RhcnRBdCYmdGhpcy5vcHRpb25zLmludGVydmFsJiYoW2EsZV09dGhpcy5fY2FsY3VsYXRlUHJldmlvdXNSdW4oYSxlKSx0PSFhKSxhPW5ldyBDcyhhLHRoaXMuZ2V0VHooKSksdGhpcy5vcHRpb25zLnN0YXJ0QXQmJmEmJmEuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKSYmKGE9dGhpcy5vcHRpb25zLnN0YXJ0QXQpO2xldCByPXRoaXMuX3N0YXRlcy5vbmNlfHxuZXcgQ3MoYSx0aGlzLmdldFR6KCkpO3JldHVybiF0JiZyIT09dGhpcy5fc3RhdGVzLm9uY2UmJihyPXIuaW5jcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucyxlKSksdGhpcy5fc3RhdGVzLm9uY2UmJnRoaXMuX3N0YXRlcy5vbmNlLmdldFRpbWUoKTw9YS5nZXRUaW1lKCl8fHI9PT1udWxsfHx0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdGhpcy5fc3RhdGVzLm1heFJ1bnM8PTB8fHRoaXMuX3N0YXRlcy5raWxsfHx0aGlzLm9wdGlvbnMuc3RvcEF0JiZyLmdldFRpbWUoKT49dGhpcy5vcHRpb25zLnN0b3BBdC5nZXRUaW1lKCk/bnVsbDpyfV9wcmV2aW91cyhhKXtsZXQgZT1uZXcgQ3MoYSx0aGlzLmdldFR6KCkpO3RoaXMub3B0aW9ucy5zdG9wQXQmJmUuZ2V0VGltZSgpPnRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpJiYoZT10aGlzLm9wdGlvbnMuc3RvcEF0KTtsZXQgdD1uZXcgQ3MoZSx0aGlzLmdldFR6KCkpO3JldHVybiB0aGlzLl9zdGF0ZXMub25jZT90aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8ZS5nZXRUaW1lKCk/dGhpcy5fc3RhdGVzLm9uY2U6bnVsbDoodD10LmRlY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMpLHQ9PT1udWxsfHx0aGlzLm9wdGlvbnMuc3RhcnRBdCYmdC5nZXRUaW1lKCk8dGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpP251bGw6dCl9X2NhbGN1bGF0ZVByZXZpb3VzUnVuKGEsZSl7bGV0IHQ9bmV3IENzKHZvaWQgMCx0aGlzLmdldFR6KCkpLHI9YTtpZih0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCk8PXQuZ2V0VGltZSgpKXtyPXRoaXMub3B0aW9ucy5zdGFydEF0O2xldCBpPXIuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7Zm9yKDtpPD10LmdldFRpbWUoKTspcj1uZXcgQ3Mocix0aGlzLmdldFR6KCkpLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsITApLGk9ci5nZXRUaW1lKCkrdGhpcy5vcHRpb25zLmludGVydmFsKjFlMztlPSEwfXJldHVybiByPT09bnVsbCYmKHI9dm9pZCAwKSxbcixlXX19fSk7dmFyIFlZLHI5LCQ5YSwkaXIsaDIsS1kseWksVm8sbmgsYTJlLGEwLGxoLFpZLFhZLFFZLEpZLGMzLGNoLEdZLF9zdCxyMmUsczJlLFRzdCxpMmUsSnQ9ZigoKT0+e1lZPTcscjk9MzY1LjI0MjUsJDlhPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMywkaXI9LSQ5YSxoMj02MDQ4ZTUsS1k9ODY0ZTUseWk9NmU0LFZvPTM2ZTUsbmg9MWUzLGEyZT01MjU2MDAsYTA9NDMyMDAsbGg9MTQ0MCxaWT02MCxYWT0zLFFZPTEyLEpZPTQsYzM9MzYwMCxjaD02MCxHWT1jMyoyNCxfc3Q9R1kqNyxyMmU9R1kqMzY1LjI0MjUsczJlPXIyZS8xMixUc3Q9czJlKjMsaTJlPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiBGZShhLGUpe3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIj9hKGUpOmEmJnR5cGVvZiBhPT0ib2JqZWN0IiYmaTJlIGluIGE/YVtpMmVdKGUpOmEgaW5zdGFuY2VvZiBEYXRlP25ldyBhLmNvbnN0cnVjdG9yKGUpOm5ldyBEYXRlKGUpfXZhciBQaXIsJHQ9ZigoKT0+e0p0KCk7cyhGZSwiY29uc3RydWN0RnJvbSIpO1Bpcj1GZX0pO2Z1bmN0aW9uIGtlKGEsZSl7cmV0dXJuIEZlKGV8fGEsYSl9dmFyIFJpcixIZT1mKCgpPT57JHQoKTtzKGtlLCJ0b0RhdGUiKTtSaXI9a2V9KTtmdW5jdGlvbiBfcyhhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbik7cmV0dXJuIGlzTmFOKGUpP0ZlKHQ/LmlufHxhLE5hTik6KGUmJnIuc2V0RGF0ZShyLmdldERhdGUoKStlKSxyKX12YXIgcWlyLG0yPWYoKCk9PnskdCgpO0hlKCk7cyhfcywiYWRkRGF5cyIpO3Fpcj1fc30pO2Z1bmN0aW9uIGcyKGEsZSx0KXtsZXQgcj1rZShhLHQ/LmluKTtpZihpc05hTihlKSlyZXR1cm4gRmUodD8uaW58fGEsTmFOKTtpZighZSlyZXR1cm4gcjtsZXQgaT1yLmdldERhdGUoKSxvPUZlKHQ/LmlufHxhLHIuZ2V0VGltZSgpKTtvLnNldE1vbnRoKHIuZ2V0TW9udGgoKStlKzEsMCk7bGV0IG49by5nZXREYXRlKCk7cmV0dXJuIGk+PW4/bzooci5zZXRGdWxsWWVhcihvLmdldEZ1bGxZZWFyKCksby5nZXRNb250aCgpLGkpLHIpfXZhciBHaXIsZGg9ZigoKT0+eyR0KCk7SGUoKTtzKGcyLCJhZGRNb250aHMiKTtHaXI9ZzJ9KTtmdW5jdGlvbiByMChhLGUsdCl7bGV0e3llYXJzOnI9MCxtb250aHM6aT0wLHdlZWtzOm89MCxkYXlzOm49MCxob3VyczpsPTAsbWludXRlczpkPTAsc2Vjb25kczpjPTB9PWUscD1rZShhLHQ/LmluKSx1PWl8fHI/ZzIocCxpK3IqMTIpOnAsbT1ufHxvP19zKHUsbitvKjcpOnUsdj1kK2wqNjAsYj0oYyt2KjYwKSoxZTM7cmV0dXJuIEZlKHQ/LmlufHxhLCttK2IpfXZhciBlb3IsbzJlPWYoKCk9PnttMigpO2RoKCk7JHQoKTtIZSgpO3MocjAsImFkZCIpO2Vvcj1yMH0pO2Z1bmN0aW9uIGVLKGEsZSl7cmV0dXJuIGtlKGEsZT8uaW4pLmdldERheSgpPT09Nn12YXIgc29yLG4yZT1mKCgpPT57SGUoKTtzKGVLLCJpc1NhdHVyZGF5Iik7c29yPWVLfSk7ZnVuY3Rpb24gdEsoYSxlKXtyZXR1cm4ga2UoYSxlPy5pbikuZ2V0RGF5KCk9PT0wfXZhciBsb3IsbDJlPWYoKCk9PntIZSgpO3ModEssImlzU3VuZGF5Iik7bG9yPXRLfSk7ZnVuY3Rpb24gYjIoYSxlKXtsZXQgdD1rZShhLGU/LmluKS5nZXREYXkoKTtyZXR1cm4gdD09PTB8fHQ9PT02fXZhciBwb3Isczk9ZigoKT0+e0hlKCk7cyhiMiwiaXNXZWVrZW5kIik7cG9yPWIyfSk7ZnVuY3Rpb24gYUsoYSxlLHQpe2xldCByPWtlKGEsdD8uaW4pLGk9YjIocix0KTtpZihpc05hTihlKSlyZXR1cm4gRmUodD8uaW4sTmFOKTtsZXQgbz1yLmdldEhvdXJzKCksbj1lPDA/LTE6MSxsPU1hdGgudHJ1bmMoZS81KTtyLnNldERhdGUoci5nZXREYXRlKCkrbCo3KTtsZXQgZD1NYXRoLmFicyhlJTUpO2Zvcig7ZD4wOylyLnNldERhdGUoci5nZXREYXRlKCkrbiksYjIocix0KXx8KGQtPTEpO3JldHVybiBpJiZiMihyLHQpJiZlIT09MCYmKGVLKHIsdCkmJnIuc2V0RGF0ZShyLmdldERhdGUoKSsobjwwPzI6LTEpKSx0SyhyLHQpJiZyLnNldERhdGUoci5nZXREYXRlKCkrKG48MD8xOi0yKSkpLHIuc2V0SG91cnMobykscn12YXIgd29yLGMyZT1mKCgpPT57JHQoKTtuMmUoKTtsMmUoKTtzOSgpO0hlKCk7cyhhSywiYWRkQnVzaW5lc3NEYXlzIik7d29yPWFLfSk7ZnVuY3Rpb24gczAoYSxlLHQpe3JldHVybiBGZSh0Py5pbnx8YSwra2UoYSkrZSl9dmFyIENvcixpOT1mKCgpPT57JHQoKTtIZSgpO3MoczAsImFkZE1pbGxpc2Vjb25kcyIpO0Nvcj1zMH0pO2Z1bmN0aW9uIHJLKGEsZSx0KXtyZXR1cm4gczAoYSxlKlZvLHQpfXZhciBEb3IsZDJlPWYoKCk9PntpOSgpO0p0KCk7cyhySywiYWRkSG91cnMiKTtEb3I9ckt9KTtmdW5jdGlvbiBxYSgpe3JldHVybiBMc3R9ZnVuY3Rpb24gJHN0KGEpe0xzdD1hfXZhciBMc3Qsd2k9ZigoKT0+e0xzdD17fTtzKHFhLCJnZXREZWZhdWx0T3B0aW9ucyIpO3MoJHN0LCJzZXREZWZhdWx0T3B0aW9ucyIpfSk7ZnVuY3Rpb24gZXIoYSxlKXtsZXQgdD1xYSgpLHI9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/dC53ZWVrU3RhcnRzT24/P3QubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsaT1rZShhLGU/LmluKSxvPWkuZ2V0RGF5KCksbj0obzxyPzc6MCkrby1yO3JldHVybiBpLnNldERhdGUoaS5nZXREYXRlKCktbiksaS5zZXRIb3VycygwLDAsMCwwKSxpfXZhciBPb3IsaTE9ZigoKT0+e3dpKCk7SGUoKTtzKGVyLCJzdGFydE9mV2VlayIpO09vcj1lcn0pO2Z1bmN0aW9uIGNzKGEsZSl7cmV0dXJuIGVyKGEsey4uLmUsd2Vla1N0YXJ0c09uOjF9KX12YXIgcW9yLHYyPWYoKCk9PntpMSgpO3MoY3MsInN0YXJ0T2ZJU09XZWVrIik7cW9yPWNzfSk7ZnVuY3Rpb24gamkoYSxlKXtsZXQgdD1rZShhLGU/LmluKSxyPXQuZ2V0RnVsbFllYXIoKSxpPUZlKHQsMCk7aS5zZXRGdWxsWWVhcihyKzEsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApO2xldCBvPWNzKGkpLG49RmUodCwwKTtuLnNldEZ1bGxZZWFyKHIsMCw0KSxuLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPWNzKG4pO3JldHVybiB0LmdldFRpbWUoKT49by5nZXRUaW1lKCk/cisxOnQuZ2V0VGltZSgpPj1sLmdldFRpbWUoKT9yOnItMX12YXIgWW9yLGkwPWYoKCk9PnskdCgpO3YyKCk7SGUoKTtzKGppLCJnZXRJU09XZWVrWWVhciIpO1lvcj1qaX0pO2Z1bmN0aW9uIEVyKGEpe2xldCBlPWtlKGEpLHQ9bmV3IERhdGUoRGF0ZS5VVEMoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSxlLmdldERhdGUoKSxlLmdldEhvdXJzKCksZS5nZXRNaW51dGVzKCksZS5nZXRTZWNvbmRzKCksZS5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiB0LnNldFVUQ0Z1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSksK2EtK3R9dmFyIHdsPWYoKCk9PntIZSgpO3MoRXIsImdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMiKX0pO2Z1bmN0aW9uIFR0KGEsLi4uZSl7bGV0IHQ9RmUuYmluZChudWxsLGF8fGUuZmluZChyPT50eXBlb2Ygcj09Im9iamVjdCIpKTtyZXR1cm4gZS5tYXAodCl9dmFyIFVhPWYoKCk9PnskdCgpO3MoVHQsIm5vcm1hbGl6ZURhdGVzIil9KTtmdW5jdGlvbiB4MihhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiB0LnNldEhvdXJzKDAsMCwwLDApLHR9dmFyIHNucixvOT1mKCgpPT57SGUoKTtzKHgyLCJzdGFydE9mRGF5Iik7c25yPXgyfSk7ZnVuY3Rpb24gcXMoYSxlLHQpe2xldFtyLGldPVR0KHQ/LmluLGEsZSksbz14MihyKSxuPXgyKGkpLGw9K28tRXIobyksZD0rbi1FcihuKTtyZXR1cm4gTWF0aC5yb3VuZCgobC1kKS9LWSl9dmFyIHVucixNbD1mKCgpPT57d2woKTtVYSgpO0p0KCk7bzkoKTtzKHFzLCJkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiKTt1bnI9cXN9KTtmdW5jdGlvbiBqbyhhLGUpe2xldCB0PWppKGEsZSkscj1GZShlPy5pbnx8YSwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcih0LDAsNCksci5zZXRIb3VycygwLDAsMCwwKSxjcyhyKX12YXIgYm5yLHVoPWYoKCk9PnskdCgpO2kwKCk7djIoKTtzKGpvLCJzdGFydE9mSVNPV2Vla1llYXIiKTtibnI9am99KTtmdW5jdGlvbiBzSyhhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbiksaT1xcyhyLGpvKHIsdCkpLG89RmUodD8uaW58fGEsMCk7cmV0dXJuIG8uc2V0RnVsbFllYXIoZSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCkscj1qbyhvKSxyLnNldERhdGUoci5nZXREYXRlKCkraSkscn12YXIgU25yLHUyZT1mKCgpPT57JHQoKTtNbCgpO3VoKCk7SGUoKTtzKHNLLCJzZXRJU09XZWVrWWVhciIpO1Nucj1zS30pO2Z1bmN0aW9uIGlLKGEsZSx0KXtyZXR1cm4gc0soYSxqaShhLHQpK2UsdCl9dmFyIExucixwMmU9ZigoKT0+e2kwKCk7dTJlKCk7cyhpSywiYWRkSVNPV2Vla1llYXJzIik7TG5yPWlLfSk7ZnVuY3Rpb24gcGgoYSxlLHQpe2xldCByPWtlKGEsdD8uaW4pO3JldHVybiByLnNldFRpbWUoci5nZXRUaW1lKCkrZSp5aSkscn12YXIgRW5yLG9LPWYoKCk9PntKdCgpO0hlKCk7cyhwaCwiYWRkTWludXRlcyIpO0Vucj1waH0pO2Z1bmN0aW9uIGZoKGEsZSx0KXtyZXR1cm4gZzIoYSxlKjMsdCl9dmFyIE9ucixuSz1mKCgpPT57ZGgoKTtzKGZoLCJhZGRRdWFydGVycyIpO09ucj1maH0pO2Z1bmN0aW9uIGxLKGEsZSx0KXtyZXR1cm4gczAoYSxlKjFlMyx0KX12YXIgcW5yLGYyZT1mKCgpPT57aTkoKTtzKGxLLCJhZGRTZWNvbmRzIik7cW5yPWxLfSk7ZnVuY3Rpb24gbzAoYSxlLHQpe3JldHVybiBfcyhhLGUqNyx0KX12YXIgV25yLG45PWYoKCk9PnttMigpO3MobzAsImFkZFdlZWtzIik7V25yPW8wfSk7ZnVuY3Rpb24gY0soYSxlLHQpe3JldHVybiBnMihhLGUqMTIsdCl9dmFyIFpucixoMmU9ZigoKT0+e2RoKCk7cyhjSywiYWRkWWVhcnMiKTtabnI9Y0t9KTtmdW5jdGlvbiBEc3QoYSxlLHQpe2xldFtyLGldPVsra2UoYS5zdGFydCx0Py5pbiksK2tlKGEuZW5kLHQ/LmluKV0uc29ydCgobCxkKT0+bC1kKSxbbyxuXT1bK2tlKGUuc3RhcnQsdD8uaW4pLCtrZShlLmVuZCx0Py5pbildLnNvcnQoKGwsZCk9PmwtZCk7cmV0dXJuIHQ/LmluY2x1c2l2ZT9yPD1uJiZvPD1pOnI8biYmbzxpfXZhciBlMXIsQXN0PWYoKCk9PntIZSgpO3MoRHN0LCJhcmVJbnRlcnZhbHNPdmVybGFwcGluZyIpO2Uxcj1Ec3R9KTtmdW5jdGlvbiBkSyhhLGUpe2xldCB0LHI9ZT8uaW47cmV0dXJuIGEuZm9yRWFjaChpPT57IXImJnR5cGVvZiBpPT0ib2JqZWN0IiYmKHI9RmUuYmluZChudWxsLGkpKTtsZXQgbz1rZShpLHIpOyghdHx8dDxvfHxpc05hTigrbykpJiYodD1vKX0pLEZlKHIsdHx8TmFOKX12YXIgaTFyLG0yZT1mKCgpPT57JHQoKTtIZSgpO3MoZEssIm1heCIpO2kxcj1kS30pO2Z1bmN0aW9uIHVLKGEsZSl7bGV0IHQscj1lPy5pbjtyZXR1cm4gYS5mb3JFYWNoKGk9PnshciYmdHlwZW9mIGk9PSJvYmplY3QiJiYocj1GZS5iaW5kKG51bGwsaSkpO2xldCBvPWtlKGkscik7KCF0fHx0Pm98fGlzTmFOKCtvKSkmJih0PW8pfSksRmUocix0fHxOYU4pfXZhciBkMXIsZzJlPWYoKCk9PnskdCgpO0hlKCk7cyh1SywibWluIik7ZDFyPXVLfSk7ZnVuY3Rpb24gUHN0KGEsZSx0KXtsZXRbcixpLG9dPVR0KHQ/LmluLGEsZS5zdGFydCxlLmVuZCk7cmV0dXJuIHVLKFtkSyhbcixpXSx0KSxvXSx0KX12YXIgZzFyLEVzdD1mKCgpPT57VWEoKTttMmUoKTtnMmUoKTtzKFBzdCwiY2xhbXAiKTtnMXI9UHN0fSk7ZnVuY3Rpb24gcEsoYSxlKXtsZXQgdD0ra2UoYSk7aWYoaXNOYU4odCkpcmV0dXJuIE5hTjtsZXQgcixpO3JldHVybiBlLmZvckVhY2goKG8sbik9PntsZXQgbD1rZShvKTtpZihpc05hTigrbCkpe3I9TmFOLGk9TmFOO3JldHVybn1sZXQgZD1NYXRoLmFicyh0LStsKTsocj09bnVsbHx8ZDxpKSYmKHI9bixpPWQpfSkscn12YXIgeTFyLGIyZT1mKCgpPT57SGUoKTtzKHBLLCJjbG9zZXN0SW5kZXhUbyIpO3kxcj1wS30pO2Z1bmN0aW9uIElzdChhLGUsdCl7bGV0W3IsLi4uaV09VHQodD8uaW4sYSwuLi5lKSxvPXBLKHIsaSk7aWYodHlwZW9mIG89PSJudW1iZXIiJiZpc05hTihvKSlyZXR1cm4gRmUocixOYU4pO2lmKG8hPT12b2lkIDApcmV0dXJuIGlbb119dmFyIEMxcixOc3Q9ZigoKT0+e1VhKCk7YjJlKCk7JHQoKTtzKElzdCwiY2xvc2VzdFRvIik7QzFyPUlzdH0pO2Z1bmN0aW9uIE1pKGEsZSl7bGV0IHQ9K2tlKGEpLStrZShlKTtyZXR1cm4gdDwwPy0xOnQ+MD8xOnR9dmFyICQxcixkMz1mKCgpPT57SGUoKTtzKE1pLCJjb21wYXJlQXNjIik7JDFyPU1pfSk7ZnVuY3Rpb24gUnN0KGEsZSl7bGV0IHQ9K2tlKGEpLStrZShlKTtyZXR1cm4gdD4wPy0xOnQ8MD8xOnR9dmFyIEUxcixPc3Q9ZigoKT0+e0hlKCk7cyhSc3QsImNvbXBhcmVEZXNjIik7RTFyPVJzdH0pO2Z1bmN0aW9uIGNhKGEpe3JldHVybiBGZShhLERhdGUubm93KCkpfXZhciBPMXIsVHM9ZigoKT0+eyR0KCk7cyhjYSwiY29uc3RydWN0Tm93Iik7TzFyPWNhfSk7ZnVuY3Rpb24gRnN0KGEpe2xldCBlPU1hdGgudHJ1bmMoYS83KTtyZXR1cm4gZT09PTA/MDplfXZhciBxMXIsQnN0PWYoKCk9PntKdCgpO3MoRnN0LCJkYXlzVG9XZWVrcyIpO3Excj1Gc3R9KTtmdW5jdGlvbiB5MihhLGUsdCl7bGV0W3IsaV09VHQodD8uaW4sYSxlKTtyZXR1cm4reDIocik9PSt4MihpKX12YXIgRzFyLGhoPWYoKCk9PntVYSgpO285KCk7cyh5MiwiaXNTYW1lRGF5Iik7RzFyPXkyfSk7ZnVuY3Rpb24gZksoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgYT09Im9iamVjdCImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJbb2JqZWN0IERhdGVdIn12YXIgWjFyLHYyZT1mKCgpPT57cyhmSywiaXNEYXRlIik7WjFyPWZLfSk7ZnVuY3Rpb24gSnMoYSl7cmV0dXJuISghZksoYSkmJnR5cGVvZiBhIT0ibnVtYmVyInx8aXNOYU4oK2tlKGEpKSl9dmFyIHQycixrbD1mKCgpPT57djJlKCk7SGUoKTtzKEpzLCJpc1ZhbGlkIik7dDJyPUpzfSk7ZnVuY3Rpb24gSHN0KGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpO2lmKCFKcyhyKXx8IUpzKGkpKXJldHVybiBOYU47bGV0IG89cXMocixpKSxuPW88MD8tMToxLGw9TWF0aC50cnVuYyhvLzcpLGQ9bCo1LGM9X3MoaSxsKjcpO2Zvcig7IXkyKHIsYyk7KWQrPWIyKGMsdCk/MDpuLGM9X3MoYyxuKTtyZXR1cm4gZD09PTA/MDpkfXZhciBkMnIscXN0PWYoKCk9PntVYSgpO20yKCk7TWwoKTtoaCgpO2tsKCk7czkoKTtzKEhzdCwiZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzIik7ZDJyPUhzdH0pO2Z1bmN0aW9uIGhLKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpO3JldHVybiBqaShyLHQpLWppKGksdCl9dmFyIG0ycix4MmU9ZigoKT0+e1VhKCk7aTAoKTtzKGhLLCJkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFycyIpO20ycj1oS30pO2Z1bmN0aW9uIFZzdChhLGUsdCl7bGV0W3IsaV09VHQodD8uaW4sYSxlKSxvPWNzKHIpLG49Y3MoaSksbD0rby1FcihvKSxkPStuLUVyKG4pO3JldHVybiBNYXRoLnJvdW5kKChsLWQpL2gyKX12YXIgTTJyLGpzdD1mKCgpPT57d2woKTtVYSgpO0p0KCk7djIoKTtzKFZzdCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyIpO00ycj1Wc3R9KTtmdW5jdGlvbiB1MyhhLGUsdCl7bGV0W3IsaV09VHQodD8uaW4sYSxlKSxvPXIuZ2V0RnVsbFllYXIoKS1pLmdldEZ1bGxZZWFyKCksbj1yLmdldE1vbnRoKCktaS5nZXRNb250aCgpO3JldHVybiBvKjEyK259dmFyIEMycixtSz1mKCgpPT57VWEoKTtzKHUzLCJkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyIpO0Mycj11M30pO2Z1bmN0aW9uIGw5KGEsZSl7bGV0IHQ9a2UoYSxlPy5pbik7cmV0dXJuIE1hdGgudHJ1bmModC5nZXRNb250aCgpLzMpKzF9dmFyICQycix5MmU9ZigoKT0+e0hlKCk7cyhsOSwiZ2V0UXVhcnRlciIpOyQycj1sOX0pO2Z1bmN0aW9uIG1oKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpLG89ci5nZXRGdWxsWWVhcigpLWkuZ2V0RnVsbFllYXIoKSxuPWw5KHIpLWw5KGkpO3JldHVybiBvKjQrbn12YXIgSTJyLHcyZT1mKCgpPT57VWEoKTt5MmUoKTtzKG1oLCJkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzIik7STJyPW1ofSk7ZnVuY3Rpb24gcDMoYSxlLHQpe2xldFtyLGldPVR0KHQ/LmluLGEsZSksbz1lcihyLHQpLG49ZXIoaSx0KSxsPStvLUVyKG8pLGQ9K24tRXIobik7cmV0dXJuIE1hdGgucm91bmQoKGwtZCkvaDIpfXZhciBxMnIsZ0s9ZigoKT0+e3dsKCk7VWEoKTtKdCgpO2kxKCk7cyhwMywiZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyIpO3Eycj1wM30pO2Z1bmN0aW9uIG4wKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpO3JldHVybiByLmdldEZ1bGxZZWFyKCktaS5nZXRGdWxsWWVhcigpfXZhciBXMnIsYks9ZigoKT0+e1VhKCk7cyhuMCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIpO1cycj1uMH0pO2Z1bmN0aW9uIGdoKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpLG89VXN0KHIsaSksbj1NYXRoLmFicyhxcyhyLGkpKTtyLnNldERhdGUoci5nZXREYXRlKCktbypuKTtsZXQgbD0rKFVzdChyLGkpPT09LW8pLGQ9byoobi1sKTtyZXR1cm4gZD09PTA/MDpkfWZ1bmN0aW9uIFVzdChhLGUpe2xldCB0PWEuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCl8fGEuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCl8fGEuZ2V0RGF0ZSgpLWUuZ2V0RGF0ZSgpfHxhLmdldEhvdXJzKCktZS5nZXRIb3VycygpfHxhLmdldE1pbnV0ZXMoKS1lLmdldE1pbnV0ZXMoKXx8YS5nZXRTZWNvbmRzKCktZS5nZXRTZWNvbmRzKCl8fGEuZ2V0TWlsbGlzZWNvbmRzKCktZS5nZXRNaWxsaXNlY29uZHMoKTtyZXR1cm4gdDwwPy0xOnQ+MD8xOnR9dmFyIFgycix2Sz1mKCgpPT57VWEoKTtNbCgpO3MoZ2gsImRpZmZlcmVuY2VJbkRheXMiKTtzKFVzdCwiY29tcGFyZUxvY2FsQXNjIik7WDJyPWdofSk7ZnVuY3Rpb24ga2koYSl7cmV0dXJuIGU9PntsZXQgcj0oYT9NYXRoW2FdOk1hdGgudHJ1bmMpKGUpO3JldHVybiByPT09MD8wOnJ9fXZhciBTbD1mKCgpPT57cyhraSwiZ2V0Um91bmRpbmdNZXRob2QiKX0pO2Z1bmN0aW9uIGYzKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpLG89KCtyLStpKS9WbztyZXR1cm4ga2kodD8ucm91bmRpbmdNZXRob2QpKG8pfXZhciBpbHIseEs9ZigoKT0+e1NsKCk7VWEoKTtKdCgpO3MoZjMsImRpZmZlcmVuY2VJbkhvdXJzIik7aWxyPWYzfSk7ZnVuY3Rpb24geUsoYSxlLHQpe3JldHVybiBpSyhhLC1lLHQpfXZhciBjbHIsTTJlPWYoKCk9PntwMmUoKTtzKHlLLCJzdWJJU09XZWVrWWVhcnMiKTtjbHI9eUt9KTtmdW5jdGlvbiBXc3QoYSxlLHQpe2xldFtyLGldPVR0KHQ/LmluLGEsZSksbz1NaShyLGkpLG49TWF0aC5hYnMoaEsocixpLHQpKSxsPXlLKHIsbypuLHQpLGQ9KyhNaShsLGkpPT09LW8pLGM9byoobi1kKTtyZXR1cm4gYz09PTA/MDpjfXZhciBnbHIsR3N0PWYoKCk9PntVYSgpO2QzKCk7eDJlKCk7TTJlKCk7cyhXc3QsImRpZmZlcmVuY2VJbklTT1dlZWtZZWFycyIpO2dscj1Xc3R9KTtmdW5jdGlvbiBiaChhLGUpe3JldHVybitrZShhKS0ra2UoZSl9dmFyIHlscix3Sz1mKCgpPT57SGUoKTtzKGJoLCJkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMiKTt5bHI9Ymh9KTtmdW5jdGlvbiBoMyhhLGUsdCl7bGV0IHI9YmgoYSxlKS95aTtyZXR1cm4ga2kodD8ucm91bmRpbmdNZXRob2QpKHIpfXZhciBDbHIsTUs9ZigoKT0+e1NsKCk7SnQoKTt3SygpO3MoaDMsImRpZmZlcmVuY2VJbk1pbnV0ZXMiKTtDbHI9aDN9KTtmdW5jdGlvbiB2aChhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiB0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH12YXIgJGxyLGtLPWYoKCk9PntIZSgpO3ModmgsImVuZE9mRGF5Iik7JGxyPXZofSk7ZnVuY3Rpb24geGgoYSxlKXtsZXQgdD1rZShhLGU/LmluKSxyPXQuZ2V0TW9udGgoKTtyZXR1cm4gdC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkscisxLDApLHQuc2V0SG91cnMoMjMsNTksNTksOTk5KSx0fXZhciBFbHIsU0s9ZigoKT0+e0hlKCk7cyh4aCwiZW5kT2ZNb250aCIpO0Vscj14aH0pO2Z1bmN0aW9uIHpLKGEsZSl7bGV0IHQ9a2UoYSxlPy5pbik7cmV0dXJuK3ZoKHQsZSk9PSt4aCh0LGUpfXZhciBCbHIsazJlPWYoKCk9PntrSygpO1NLKCk7SGUoKTtzKHpLLCJpc0xhc3REYXlPZk1vbnRoIik7QmxyPXpLfSk7ZnVuY3Rpb24gbDAoYSxlLHQpe2xldFtyLGksb109VHQodD8uaW4sYSxhLGUpLG49TWkoaSxvKSxsPU1hdGguYWJzKHUzKGksbykpO2lmKGw8MSlyZXR1cm4gMDtpLmdldE1vbnRoKCk9PT0xJiZpLmdldERhdGUoKT4yNyYmaS5zZXREYXRlKDMwKSxpLnNldE1vbnRoKGkuZ2V0TW9udGgoKS1uKmwpO2xldCBkPU1pKGksbyk9PT0tbjt6SyhyKSYmbD09PTEmJk1pKHIsbyk9PT0xJiYoZD0hMSk7bGV0IGM9bioobC0rZCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgR2xyLGM5PWYoKCk9PntVYSgpO2QzKCk7bUsoKTtrMmUoKTtzKGwwLCJkaWZmZXJlbmNlSW5Nb250aHMiKTtHbHI9bDB9KTtmdW5jdGlvbiBZc3QoYSxlLHQpe2xldCByPWwwKGEsZSx0KS8zO3JldHVybiBraSh0Py5yb3VuZGluZ01ldGhvZCkocil9dmFyIFFscixLc3Q9ZigoKT0+e1NsKCk7YzkoKTtzKFlzdCwiZGlmZmVyZW5jZUluUXVhcnRlcnMiKTtRbHI9WXN0fSk7ZnVuY3Rpb24gdzIoYSxlLHQpe2xldCByPWJoKGEsZSkvMWUzO3JldHVybiBraSh0Py5yb3VuZGluZ01ldGhvZCkocil9dmFyIHJjcixkOT1mKCgpPT57U2woKTt3SygpO3ModzIsImRpZmZlcmVuY2VJblNlY29uZHMiKTtyY3I9dzJ9KTtmdW5jdGlvbiBac3QoYSxlLHQpe2xldCByPWdoKGEsZSx0KS83O3JldHVybiBraSh0Py5yb3VuZGluZ01ldGhvZCkocil9dmFyIGxjcixYc3Q9ZigoKT0+e1NsKCk7dksoKTtzKFpzdCwiZGlmZmVyZW5jZUluV2Vla3MiKTtsY3I9WnN0fSk7ZnVuY3Rpb24gQ0soYSxlLHQpe2xldFtyLGldPVR0KHQ/LmluLGEsZSksbz1NaShyLGkpLG49TWF0aC5hYnMobjAocixpKSk7ci5zZXRGdWxsWWVhcigxNTg0KSxpLnNldEZ1bGxZZWFyKDE1ODQpO2xldCBsPU1pKHIsaSk9PT0tbyxkPW8qKG4tK2wpO3JldHVybiBkPT09MD8wOmR9dmFyIGhjcixTMmU9ZigoKT0+e1VhKCk7ZDMoKTtiSygpO3MoQ0ssImRpZmZlcmVuY2VJblllYXJzIik7aGNyPUNLfSk7ZnVuY3Rpb24gVnMoYSxlKXtsZXRbdCxyXT1UdChhLGUuc3RhcnQsZS5lbmQpO3JldHVybntzdGFydDp0LGVuZDpyfX12YXIgTTI9ZigoKT0+e1VhKCk7cyhWcywibm9ybWFsaXplSW50ZXJ2YWwiKX0pO2Z1bmN0aW9uIF9LKGEsZSl7bGV0e3N0YXJ0OnQsZW5kOnJ9PVZzKGU/LmluLGEpLGk9K3Q+K3Isbz1pPyt0OityLG49aT9yOnQ7bi5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwsaT0haSk7bGV0IGQ9W107Zm9yKDsrbjw9bzspZC5wdXNoKEZlKHQsbikpLG4uc2V0RGF0ZShuLmdldERhdGUoKStsKSxuLnNldEhvdXJzKDAsMCwwLDApO3JldHVybiBpP2QucmV2ZXJzZSgpOmR9dmFyIE1jcix6MmU9ZigoKT0+e00yKCk7JHQoKTtzKF9LLCJlYWNoRGF5T2ZJbnRlcnZhbCIpO01jcj1fS30pO2Z1bmN0aW9uIFFzdChhLGUpe2xldHtzdGFydDp0LGVuZDpyfT1WcyhlPy5pbixhKSxpPSt0PityLG89aT8rdDorcixuPWk/cjp0O24uc2V0TWludXRlcygwLDAsMCk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLGk9IWkpO2xldCBkPVtdO2Zvcig7K248PW87KWQucHVzaChGZSh0LG4pKSxuLnNldEhvdXJzKG4uZ2V0SG91cnMoKStsKTtyZXR1cm4gaT9kLnJldmVyc2UoKTpkfXZhciBfY3IsSnN0PWYoKCk9PntNMigpOyR0KCk7cyhRc3QsImVhY2hIb3VyT2ZJbnRlcnZhbCIpO19jcj1Rc3R9KTtmdW5jdGlvbiBlaXQoYSxlKXtsZXR7c3RhcnQ6dCxlbmQ6cn09VnMoZT8uaW4sYSk7dC5zZXRTZWNvbmRzKDAsMCk7bGV0IGk9K3Q+K3Isbz1pPyt0OityLG49aT9yOnQsbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwsaT0haSk7bGV0IGQ9W107Zm9yKDsrbjw9bzspZC5wdXNoKEZlKHQsbikpLG49cGgobixsKTtyZXR1cm4gaT9kLnJldmVyc2UoKTpkfXZhciBQY3IsdGl0PWYoKCk9PntNMigpO29LKCk7JHQoKTtzKGVpdCwiZWFjaE1pbnV0ZU9mSW50ZXJ2YWwiKTtQY3I9ZWl0fSk7ZnVuY3Rpb24gYWl0KGEsZSl7bGV0e3N0YXJ0OnQsZW5kOnJ9PVZzKGU/LmluLGEpLGk9K3Q+K3Isbz1pPyt0OityLG49aT9yOnQ7bi5zZXRIb3VycygwLDAsMCwwKSxuLnNldERhdGUoMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLGk9IWkpO2xldCBkPVtdO2Zvcig7K248PW87KWQucHVzaChGZSh0LG4pKSxuLnNldE1vbnRoKG4uZ2V0TW9udGgoKStsKTtyZXR1cm4gaT9kLnJldmVyc2UoKTpkfXZhciBPY3Iscml0PWYoKCk9PntNMigpOyR0KCk7cyhhaXQsImVhY2hNb250aE9mSW50ZXJ2YWwiKTtPY3I9YWl0fSk7ZnVuY3Rpb24gazIoYSxlKXtsZXQgdD1rZShhLGU/LmluKSxyPXQuZ2V0TW9udGgoKSxpPXItciUzO3JldHVybiB0LnNldE1vbnRoKGksMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBxY3IsVEs9ZigoKT0+e0hlKCk7cyhrMiwic3RhcnRPZlF1YXJ0ZXIiKTtxY3I9azJ9KTtmdW5jdGlvbiBzaXQoYSxlKXtsZXR7c3RhcnQ6dCxlbmQ6cn09VnMoZT8uaW4sYSksaT0rdD4rcixvPWk/K2syKHQpOitrMihyKSxuPWk/azIocik6azIodCksbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwsaT0haSk7bGV0IGQ9W107Zm9yKDsrbjw9bzspZC5wdXNoKEZlKHQsbikpLG49ZmgobixsKTtyZXR1cm4gaT9kLnJldmVyc2UoKTpkfXZhciBLY3IsaWl0PWYoKCk9PntNMigpO25LKCk7JHQoKTtUSygpO3Moc2l0LCJlYWNoUXVhcnRlck9mSW50ZXJ2YWwiKTtLY3I9c2l0fSk7ZnVuY3Rpb24gb2l0KGEsZSl7bGV0e3N0YXJ0OnQsZW5kOnJ9PVZzKGU/LmluLGEpLGk9K3Q+K3Isbz1pP2VyKHIsZSk6ZXIodCxlKSxuPWk/ZXIodCxlKTplcihyLGUpO28uc2V0SG91cnMoMTUpLG4uc2V0SG91cnMoMTUpO2xldCBsPStuLmdldFRpbWUoKSxkPW8sYz1lPy5zdGVwPz8xO2lmKCFjKXJldHVybltdO2M8MCYmKGM9LWMsaT0haSk7bGV0IHA9W107Zm9yKDsrZDw9bDspZC5zZXRIb3VycygwKSxwLnB1c2goRmUodCxkKSksZD1vMChkLGMpLGQuc2V0SG91cnMoMTUpO3JldHVybiBpP3AucmV2ZXJzZSgpOnB9dmFyIGEwcixuaXQ9ZigoKT0+e00yKCk7bjkoKTskdCgpO2kxKCk7cyhvaXQsImVhY2hXZWVrT2ZJbnRlcnZhbCIpO2Ewcj1vaXR9KTtmdW5jdGlvbiB5aChhLGUpe2xldHtzdGFydDp0LGVuZDpyfT1WcyhlPy5pbixhKSxpPV9LKHtzdGFydDp0LGVuZDpyfSxlKSxvPVtdLG49MDtmb3IoO248aS5sZW5ndGg7KXtsZXQgbD1pW24rK107YjIobCkmJm8ucHVzaChGZSh0LGwpKX1yZXR1cm4gb312YXIgYzByLExLPWYoKCk9PntNMigpOyR0KCk7ejJlKCk7czkoKTtzKHloLCJlYWNoV2Vla2VuZE9mSW50ZXJ2YWwiKTtjMHI9eWh9KTtmdW5jdGlvbiBjMChhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiB0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBmMHIsdTk9ZigoKT0+e0hlKCk7cyhjMCwic3RhcnRPZk1vbnRoIik7ZjByPWMwfSk7ZnVuY3Rpb24gbGl0KGEsZSl7bGV0IHQ9YzAoYSxlKSxyPXhoKGEsZSk7cmV0dXJuIHloKHtzdGFydDp0LGVuZDpyfSxlKX12YXIgeDByLGNpdD1mKCgpPT57TEsoKTtTSygpO3U5KCk7cyhsaXQsImVhY2hXZWVrZW5kT2ZNb250aCIpO3gwcj1saXR9KTtmdW5jdGlvbiAkSyhhLGUpe2xldCB0PWtlKGEsZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpO3JldHVybiB0LnNldEZ1bGxZZWFyKHIrMSwwLDApLHQuc2V0SG91cnMoMjMsNTksNTksOTk5KSx0fXZhciBrMHIsQzJlPWYoKCk9PntIZSgpO3MoJEssImVuZE9mWWVhciIpO2swcj0kS30pO2Z1bmN0aW9uIHdoKGEsZSl7bGV0IHQ9a2UoYSxlPy5pbik7cmV0dXJuIHQuc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpLDAsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBfMHIsREs9ZigoKT0+e0hlKCk7cyh3aCwic3RhcnRPZlllYXIiKTtfMHI9d2h9KTtmdW5jdGlvbiBkaXQoYSxlKXtsZXQgdD13aChhLGUpLHI9JEsoYSxlKTtyZXR1cm4geWgoe3N0YXJ0OnQsZW5kOnJ9LGUpfXZhciBQMHIsdWl0PWYoKCk9PntMSygpO0MyZSgpO0RLKCk7cyhkaXQsImVhY2hXZWVrZW5kT2ZZZWFyIik7UDByPWRpdH0pO2Z1bmN0aW9uIHBpdChhLGUpe2xldHtzdGFydDp0LGVuZDpyfT1WcyhlPy5pbixhKSxpPSt0PityLG89aT8rdDorcixuPWk/cjp0O24uc2V0SG91cnMoMCwwLDAsMCksbi5zZXRNb250aCgwLDEpO2xldCBsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxpPSFpKTtsZXQgZD1bXTtmb3IoOytuPD1vOylkLnB1c2goRmUodCxuKSksbi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrbCk7cmV0dXJuIGk/ZC5yZXZlcnNlKCk6ZH12YXIgTzByLGZpdD1mKCgpPT57TTIoKTskdCgpO3MocGl0LCJlYWNoWWVhck9mSW50ZXJ2YWwiKTtPMHI9cGl0fSk7ZnVuY3Rpb24gaGl0KGEsZSl7bGV0IHQ9a2UoYSxlPy5pbikscj10LmdldEZ1bGxZZWFyKCksaT05K01hdGguZmxvb3Ioci8xMCkqMTA7cmV0dXJuIHQuc2V0RnVsbFllYXIoaSwxMSwzMSksdC5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHR9dmFyIHEwcixtaXQ9ZigoKT0+e0hlKCk7cyhoaXQsImVuZE9mRGVjYWRlIik7cTByPWhpdH0pO2Z1bmN0aW9uIGdpdChhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiB0LnNldE1pbnV0ZXMoNTksNTksOTk5KSx0fXZhciBXMHIsYml0PWYoKCk9PntIZSgpO3MoZ2l0LCJlbmRPZkhvdXIiKTtXMHI9Z2l0fSk7ZnVuY3Rpb24gQUsoYSxlKXtsZXQgdD1xYSgpLHI9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/dC53ZWVrU3RhcnRzT24/P3QubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsaT1rZShhLGU/LmluKSxvPWkuZ2V0RGF5KCksbj0obzxyPy03OjApKzYtKG8tcik7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKStuKSxpLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksaX12YXIgWDByLF8yZT1mKCgpPT57d2koKTtIZSgpO3MoQUssImVuZE9mV2VlayIpO1gwcj1BS30pO2Z1bmN0aW9uIHZpdChhLGUpe3JldHVybiBBSyhhLHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIHQ0cix4aXQ9ZigoKT0+e18yZSgpO3Modml0LCJlbmRPZklTT1dlZWsiKTt0NHI9dml0fSk7ZnVuY3Rpb24geWl0KGEsZSl7bGV0IHQ9amkoYSxlKSxyPUZlKGU/LmlufHxhLDApO3Iuc2V0RnVsbFllYXIodCsxLDAsNCksci5zZXRIb3VycygwLDAsMCwwKTtsZXQgaT1jcyhyLGUpO3JldHVybiBpLnNldE1pbGxpc2Vjb25kcyhpLmdldE1pbGxpc2Vjb25kcygpLTEpLGl9dmFyIG40cix3aXQ9ZigoKT0+eyR0KCk7aTAoKTt2MigpO3MoeWl0LCJlbmRPZklTT1dlZWtZZWFyIik7bjRyPXlpdH0pO2Z1bmN0aW9uIE1pdChhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiB0LnNldFNlY29uZHMoNTksOTk5KSx0fXZhciB1NHIsa2l0PWYoKCk9PntIZSgpO3MoTWl0LCJlbmRPZk1pbnV0ZSIpO3U0cj1NaXR9KTtmdW5jdGlvbiBTaXQoYSxlKXtsZXQgdD1rZShhLGU/LmluKSxyPXQuZ2V0TW9udGgoKSxpPXItciUzKzM7cmV0dXJuIHQuc2V0TW9udGgoaSwwKSx0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH12YXIgbTRyLHppdD1mKCgpPT57SGUoKTtzKFNpdCwiZW5kT2ZRdWFydGVyIik7bTRyPVNpdH0pO2Z1bmN0aW9uIENpdChhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiB0LnNldE1pbGxpc2Vjb25kcyg5OTkpLHR9dmFyIHg0cixfaXQ9ZigoKT0+e0hlKCk7cyhDaXQsImVuZE9mU2Vjb25kIik7eDRyPUNpdH0pO2Z1bmN0aW9uIFRpdChhKXtyZXR1cm4gdmgoRGF0ZS5ub3coKSxhKX12YXIgazRyLExpdD1mKCgpPT57a0soKTtzKFRpdCwiZW5kT2ZUb2RheSIpO2s0cj1UaXR9KTtmdW5jdGlvbiAkaXQoYSl7bGV0IGU9Y2EoYT8uaW4pLHQ9ZS5nZXRGdWxsWWVhcigpLHI9ZS5nZXRNb250aCgpLGk9ZS5nZXREYXRlKCksbz1jYShhPy5pbik7cmV0dXJuIG8uc2V0RnVsbFllYXIodCxyLGkrMSksby5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGE/LmluP2EuaW4obyk6b312YXIgXzRyLERpdD1mKCgpPT57VHMoKTtzKCRpdCwiZW5kT2ZUb21vcnJvdyIpO180cj0kaXR9KTtmdW5jdGlvbiBBaXQoYSl7bGV0IGU9Y2EoYT8uaW4pLHQ9RmUoYT8uaW4sMCk7cmV0dXJuIHQuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSxlLmdldERhdGUoKS0xKSx0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH12YXIgQTRyLFBpdD1mKCgpPT57JHQoKTtUcygpO3MoQWl0LCJlbmRPZlllc3RlcmRheSIpO0E0cj1BaXR9KTt2YXIgRDlhLEVpdCxJaXQ9ZigoKT0+e0Q5YT17bGVzc1RoYW5YU2Vjb25kczp7b25lOiJsZXNzIHRoYW4gYSBzZWNvbmQiLG90aGVyOiJsZXNzIHRoYW4ge3tjb3VudH19IHNlY29uZHMifSx4U2Vjb25kczp7b25lOiIxIHNlY29uZCIsb3RoZXI6Int7Y291bnR9fSBzZWNvbmRzIn0saGFsZkFNaW51dGU6ImhhbGYgYSBtaW51dGUiLGxlc3NUaGFuWE1pbnV0ZXM6e29uZToibGVzcyB0aGFuIGEgbWludXRlIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBtaW51dGVzIn0seE1pbnV0ZXM6e29uZToiMSBtaW51dGUiLG90aGVyOiJ7e2NvdW50fX0gbWludXRlcyJ9LGFib3V0WEhvdXJzOntvbmU6ImFib3V0IDEgaG91ciIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBob3VycyJ9LHhIb3Vyczp7b25lOiIxIGhvdXIiLG90aGVyOiJ7e2NvdW50fX0gaG91cnMifSx4RGF5czp7b25lOiIxIGRheSIsb3RoZXI6Int7Y291bnR9fSBkYXlzIn0sYWJvdXRYV2Vla3M6e29uZToiYWJvdXQgMSB3ZWVrIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHdlZWtzIn0seFdlZWtzOntvbmU6IjEgd2VlayIsb3RoZXI6Int7Y291bnR9fSB3ZWVrcyJ9LGFib3V0WE1vbnRoczp7b25lOiJhYm91dCAxIG1vbnRoIixvdGhlcjoiYWJvdXQge3tjb3VudH19IG1vbnRocyJ9LHhNb250aHM6e29uZToiMSBtb250aCIsb3RoZXI6Int7Y291bnR9fSBtb250aHMifSxhYm91dFhZZWFyczp7b25lOiJhYm91dCAxIHllYXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0geWVhcnMifSx4WWVhcnM6e29uZToiMSB5ZWFyIixvdGhlcjoie3tjb3VudH19IHllYXJzIn0sb3ZlclhZZWFyczp7b25lOiJvdmVyIDEgeWVhciIsb3RoZXI6Im92ZXIge3tjb3VudH19IHllYXJzIn0sYWxtb3N0WFllYXJzOntvbmU6ImFsbW9zdCAxIHllYXIiLG90aGVyOiJhbG1vc3Qge3tjb3VudH19IHllYXJzIn19LEVpdD1zKChhLGUsdCk9PntsZXQgcixpPUQ5YVthXTtyZXR1cm4gdHlwZW9mIGk9PSJzdHJpbmciP3I9aTplPT09MT9yPWkub25lOnI9aS5vdGhlci5yZXBsYWNlKCJ7e2NvdW50fX0iLGUudG9TdHJpbmcoKSksdD8uYWRkU3VmZml4P3QuY29tcGFyaXNvbiYmdC5jb21wYXJpc29uPjA/ImluICIrcjpyKyIgYWdvIjpyfSwiZm9ybWF0RGlzdGFuY2UiKX0pO2Z1bmN0aW9uIFBLKGEpe3JldHVybihlPXt9KT0+e2xldCB0PWUud2lkdGg/U3RyaW5nKGUud2lkdGgpOmEuZGVmYXVsdFdpZHRoO3JldHVybiBhLmZvcm1hdHNbdF18fGEuZm9ybWF0c1thLmRlZmF1bHRXaWR0aF19fXZhciBOaXQ9ZigoKT0+e3MoUEssImJ1aWxkRm9ybWF0TG9uZ0ZuIil9KTt2YXIgQTlhLFA5YSxFOWEsUml0LE9pdD1mKCgpPT57Tml0KCk7QTlhPXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LFA5YT17ZnVsbDoiaDptbTpzcyBhIHp6enoiLGxvbmc6Img6bW06c3MgYSB6IixtZWRpdW06Img6bW06c3MgYSIsc2hvcnQ6Img6bW0gYSJ9LEU5YT17ZnVsbDoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbG9uZzoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbWVkaXVtOiJ7e2RhdGV9fSwge3t0aW1lfX0iLHNob3J0OiJ7e2RhdGV9fSwge3t0aW1lfX0ifSxSaXQ9e2RhdGU6UEsoe2Zvcm1hdHM6QTlhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KSx0aW1lOlBLKHtmb3JtYXRzOlA5YSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksZGF0ZVRpbWU6UEsoe2Zvcm1hdHM6RTlhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KX19KTt2YXIgSTlhLEZpdCxCaXQ9ZigoKT0+e0k5YT17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn0sRml0PXMoKGEsZSx0LHIpPT5JOWFbYV0sImZvcm1hdFJlbGF0aXZlIil9KTtmdW5jdGlvbiBNaChhKXtyZXR1cm4oZSx0KT0+e2xldCByPXQ/LmNvbnRleHQ/U3RyaW5nKHQuY29udGV4dCk6InN0YW5kYWxvbmUiLGk7aWYocj09PSJmb3JtYXR0aW5nIiYmYS5mb3JtYXR0aW5nVmFsdWVzKXtsZXQgbj1hLmRlZmF1bHRGb3JtYXR0aW5nV2lkdGh8fGEuZGVmYXVsdFdpZHRoLGw9dD8ud2lkdGg/U3RyaW5nKHQud2lkdGgpOm47aT1hLmZvcm1hdHRpbmdWYWx1ZXNbbF18fGEuZm9ybWF0dGluZ1ZhbHVlc1tuXX1lbHNle2xldCBuPWEuZGVmYXVsdFdpZHRoLGw9dD8ud2lkdGg/U3RyaW5nKHQud2lkdGgpOmEuZGVmYXVsdFdpZHRoO2k9YS52YWx1ZXNbbF18fGEudmFsdWVzW25dfWxldCBvPWEuYXJndW1lbnRDYWxsYmFjaz9hLmFyZ3VtZW50Q2FsbGJhY2soZSk6ZTtyZXR1cm4gaVtvXX19dmFyIEhpdD1mKCgpPT57cyhNaCwiYnVpbGRMb2NhbGl6ZUZuIil9KTt2YXIgTjlhLFI5YSxPOWEsRjlhLEI5YSxIOWEscTlhLHFpdCxWaXQ9ZigoKT0+e0hpdCgpO045YT17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LFI5YT17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sTzlhPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxGOWE9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sQjlhPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxIOWE9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LHE5YT1zKChhLGUpPT57bGV0IHQ9TnVtYmVyKGEpLHI9dCUxMDA7aWYocj4yMHx8cjwxMClzd2l0Y2gociUxMCl7Y2FzZSAxOnJldHVybiB0KyJzdCI7Y2FzZSAyOnJldHVybiB0KyJuZCI7Y2FzZSAzOnJldHVybiB0KyJyZCJ9cmV0dXJuIHQrInRoIn0sIm9yZGluYWxOdW1iZXIiKSxxaXQ9e29yZGluYWxOdW1iZXI6cTlhLGVyYTpNaCh7dmFsdWVzOk45YSxkZWZhdWx0V2lkdGg6IndpZGUifSkscXVhcnRlcjpNaCh7dmFsdWVzOlI5YSxkZWZhdWx0V2lkdGg6IndpZGUiLGFyZ3VtZW50Q2FsbGJhY2s6cyhhPT5hLTEsImFyZ3VtZW50Q2FsbGJhY2siKX0pLG1vbnRoOk1oKHt2YWx1ZXM6TzlhLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6TWgoe3ZhbHVlczpGOWEsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLGRheVBlcmlvZDpNaCh7dmFsdWVzOkI5YSxkZWZhdWx0V2lkdGg6IndpZGUiLGZvcm1hdHRpbmdWYWx1ZXM6SDlhLGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9fSk7ZnVuY3Rpb24ga2goYSl7cmV0dXJuKGUsdD17fSk9PntsZXQgcj10LndpZHRoLGk9ciYmYS5tYXRjaFBhdHRlcm5zW3JdfHxhLm1hdGNoUGF0dGVybnNbYS5kZWZhdWx0TWF0Y2hXaWR0aF0sbz1lLm1hdGNoKGkpO2lmKCFvKXJldHVybiBudWxsO2xldCBuPW9bMF0sbD1yJiZhLnBhcnNlUGF0dGVybnNbcl18fGEucGFyc2VQYXR0ZXJuc1thLmRlZmF1bHRQYXJzZVdpZHRoXSxkPUFycmF5LmlzQXJyYXkobCk/ajlhKGwsdT0+dS50ZXN0KG4pKTpWOWEobCx1PT51LnRlc3QobikpLGM7Yz1hLnZhbHVlQ2FsbGJhY2s/YS52YWx1ZUNhbGxiYWNrKGQpOmQsYz10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGMpOmM7bGV0IHA9ZS5zbGljZShuLmxlbmd0aCk7cmV0dXJue3ZhbHVlOmMscmVzdDpwfX19ZnVuY3Rpb24gVjlhKGEsZSl7Zm9yKGxldCB0IGluIGEpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsdCkmJmUoYVt0XSkpcmV0dXJuIHR9ZnVuY3Rpb24gajlhKGEsZSl7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0KyspaWYoZShhW3RdKSlyZXR1cm4gdH12YXIgaml0PWYoKCk9PntzKGtoLCJidWlsZE1hdGNoRm4iKTtzKFY5YSwiZmluZEtleSIpO3MoajlhLCJmaW5kSW5kZXgiKX0pO2Z1bmN0aW9uIFVpdChhKXtyZXR1cm4oZSx0PXt9KT0+e2xldCByPWUubWF0Y2goYS5tYXRjaFBhdHRlcm4pO2lmKCFyKXJldHVybiBudWxsO2xldCBpPXJbMF0sbz1lLm1hdGNoKGEucGFyc2VQYXR0ZXJuKTtpZighbylyZXR1cm4gbnVsbDtsZXQgbj1hLnZhbHVlQ2FsbGJhY2s/YS52YWx1ZUNhbGxiYWNrKG9bMF0pOm9bMF07bj10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKG4pOm47bGV0IGw9ZS5zbGljZShpLmxlbmd0aCk7cmV0dXJue3ZhbHVlOm4scmVzdDpsfX19dmFyIFdpdD1mKCgpPT57cyhVaXQsImJ1aWxkTWF0Y2hQYXR0ZXJuRm4iKX0pO3ZhciBVOWEsVzlhLEc5YSxZOWEsSzlhLFo5YSxYOWEsUTlhLEo5YSxlZ2EsdGdhLGFnYSxHaXQsWWl0PWYoKCk9PntqaXQoKTtXaXQoKTtVOWE9L14oXGQrKSh0aHxzdHxuZHxyZCk/L2ksVzlhPS9cZCsvaSxHOWE9e25hcnJvdzovXihifGEpL2ksYWJicmV2aWF0ZWQ6L14oYlwuP1xzP2NcLj98YlwuP1xzP2NcLj9ccz9lXC4/fGFcLj9ccz9kXC4/fGNcLj9ccz9lXC4/KS9pLHdpZGU6L14oYmVmb3JlIGNocmlzdHxiZWZvcmUgY29tbW9uIGVyYXxhbm5vIGRvbWluaXxjb21tb24gZXJhKS9pfSxZOWE9e2FueTpbL15iL2ksL14oYXxjKS9pXX0sSzlhPXtuYXJyb3c6L15bMTIzNF0vaSxhYmJyZXZpYXRlZDovXnFbMTIzNF0vaSx3aWRlOi9eWzEyMzRdKHRofHN0fG5kfHJkKT8gcXVhcnRlci9pfSxaOWE9e2FueTpbLzEvaSwvMi9pLC8zL2ksLzQvaV19LFg5YT17bmFycm93Oi9eW2pmbWFzb25kXS9pLGFiYnJldmlhdGVkOi9eKGphbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjKS9pLHdpZGU6L14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaX0sUTlhPXtuYXJyb3c6Wy9eai9pLC9eZi9pLC9ebS9pLC9eYS9pLC9ebS9pLC9eai9pLC9eai9pLC9eYS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXSxhbnk6Wy9eamEvaSwvXmYvaSwvXm1hci9pLC9eYXAvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmF1L2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldfSxKOWE9e25hcnJvdzovXltzbXR3Zl0vaSxzaG9ydDovXihzdXxtb3x0dXx3ZXx0aHxmcnxzYSkvaSxhYmJyZXZpYXRlZDovXihzdW58bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXQpL2ksd2lkZTovXihzdW5kYXl8bW9uZGF5fHR1ZXNkYXl8d2VkbmVzZGF5fHRodXJzZGF5fGZyaWRheXxzYXR1cmRheSkvaX0sZWdhPXtuYXJyb3c6Wy9ecy9pLC9ebS9pLC9edC9pLC9edy9pLC9edC9pLC9eZi9pLC9ecy9pXSxhbnk6Wy9ec3UvaSwvXm0vaSwvXnR1L2ksL153L2ksL150aC9pLC9eZi9pLC9ec2EvaV19LHRnYT17bmFycm93Oi9eKGF8cHxtaXxufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaSxhbnk6L14oW2FwXVwuP1xzP21cLj98bWlkbmlnaHR8bm9vbnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2l9LGFnYT17YW55OnthbTovXmEvaSxwbTovXnAvaSxtaWRuaWdodDovXm1pL2ksbm9vbjovXm5vL2ksbW9ybmluZzovbW9ybmluZy9pLGFmdGVybm9vbjovYWZ0ZXJub29uL2ksZXZlbmluZzovZXZlbmluZy9pLG5pZ2h0Oi9uaWdodC9pfX0sR2l0PXtvcmRpbmFsTnVtYmVyOlVpdCh7bWF0Y2hQYXR0ZXJuOlU5YSxwYXJzZVBhdHRlcm46VzlhLHZhbHVlQ2FsbGJhY2s6cyhhPT5wYXJzZUludChhLDEwKSwidmFsdWVDYWxsYmFjayIpfSksZXJhOmtoKHttYXRjaFBhdHRlcm5zOkc5YSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpZOWEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOmtoKHttYXRjaFBhdHRlcm5zOks5YSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpaOWEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazpzKGE9PmErMSwidmFsdWVDYWxsYmFjayIpfSksbW9udGg6a2goe21hdGNoUGF0dGVybnM6WDlhLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOlE5YSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheTpraCh7bWF0Y2hQYXR0ZXJuczpKOWEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6ZWdhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5UGVyaW9kOmtoKHttYXRjaFBhdHRlcm5zOnRnYSxkZWZhdWx0TWF0Y2hXaWR0aDoiYW55IixwYXJzZVBhdHRlcm5zOmFnYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pfX0pO3ZhciBDbyxuM3IsS2l0PWYoKCk9PntJaXQoKTtPaXQoKTtCaXQoKTtWaXQoKTtZaXQoKTtDbz17Y29kZToiZW4tVVMiLGZvcm1hdERpc3RhbmNlOkVpdCxmb3JtYXRMb25nOlJpdCxmb3JtYXRSZWxhdGl2ZTpGaXQsbG9jYWxpemU6cWl0LG1hdGNoOkdpdCxvcHRpb25zOnt3ZWVrU3RhcnRzT246MCxmaXJzdFdlZWtDb250YWluc0RhdGU6MX19LG4zcj1Db30pO3ZhciBtMz1mKCgpPT57S2l0KCl9KTtmdW5jdGlvbiBFSyhhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiBxcyh0LHdoKHQpKSsxfXZhciBoM3IsVDJlPWYoKCk9PntNbCgpO0RLKCk7SGUoKTtzKEVLLCJnZXREYXlPZlllYXIiKTtoM3I9RUt9KTtmdW5jdGlvbiBTaChhLGUpe2xldCB0PWtlKGEsZT8uaW4pLHI9K2NzKHQpLStqbyh0KTtyZXR1cm4gTWF0aC5yb3VuZChyL2gyKSsxfXZhciB3M3IsSUs9ZigoKT0+e0p0KCk7djIoKTt1aCgpO0hlKCk7cyhTaCwiZ2V0SVNPV2VlayIpO3czcj1TaH0pO2Z1bmN0aW9uIGQwKGEsZSl7bGV0IHQ9a2UoYSxlPy5pbikscj10LmdldEZ1bGxZZWFyKCksaT1xYSgpLG89ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5maXJzdFdlZWtDb250YWluc0RhdGU/P2kubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbj1GZShlPy5pbnx8YSwwKTtuLnNldEZ1bGxZZWFyKHIrMSwwLG8pLG4uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9ZXIobixlKSxkPUZlKGU/LmlufHxhLDApO2Quc2V0RnVsbFllYXIociwwLG8pLGQuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGM9ZXIoZCxlKTtyZXR1cm4rdD49K2w/cisxOit0Pj0rYz9yOnItMX12YXIgVDNyLHA5PWYoKCk9Pnt3aSgpOyR0KCk7aTEoKTtIZSgpO3MoZDAsImdldFdlZWtZZWFyIik7VDNyPWQwfSk7ZnVuY3Rpb24gZzMoYSxlKXtsZXQgdD1xYSgpLHI9ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dC5maXJzdFdlZWtDb250YWluc0RhdGU/P3QubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsaT1kMChhLGUpLG89RmUoZT8uaW58fGEsMCk7cmV0dXJuIG8uc2V0RnVsbFllYXIoaSwwLHIpLG8uc2V0SG91cnMoMCwwLDAsMCksZXIobyxlKX12YXIgSTNyLE5LPWYoKCk9Pnt3aSgpOyR0KCk7cDkoKTtpMSgpO3MoZzMsInN0YXJ0T2ZXZWVrWWVhciIpO0kzcj1nM30pO2Z1bmN0aW9uIHpoKGEsZSl7bGV0IHQ9a2UoYSxlPy5pbikscj0rZXIodCxlKS0rZzModCxlKTtyZXR1cm4gTWF0aC5yb3VuZChyL2gyKSsxfXZhciBxM3IsUks9ZigoKT0+e0p0KCk7aTEoKTtOSygpO0hlKCk7cyh6aCwiZ2V0V2VlayIpO3Ezcj16aH0pO2Z1bmN0aW9uIGJ0KGEsZSl7bGV0IHQ9YTwwPyItIjoiIixyPU1hdGguYWJzKGEpLnRvU3RyaW5nKCkucGFkU3RhcnQoZSwiMCIpO3JldHVybiB0K3J9dmFyIGIzPWYoKCk9PntzKGJ0LCJhZGRMZWFkaW5nWmVyb3MiKX0pO3ZhciBVbyxMMmU9ZigoKT0+e2IzKCk7VW89e3koYSxlKXtsZXQgdD1hLmdldEZ1bGxZZWFyKCkscj10PjA/dDoxLXQ7cmV0dXJuIGJ0KGU9PT0ieXkiP3IlMTAwOnIsZS5sZW5ndGgpfSxNKGEsZSl7bGV0IHQ9YS5nZXRNb250aCgpO3JldHVybiBlPT09Ik0iP1N0cmluZyh0KzEpOmJ0KHQrMSwyKX0sZChhLGUpe3JldHVybiBidChhLmdldERhdGUoKSxlLmxlbmd0aCl9LGEoYSxlKXtsZXQgdD1hLmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaChlKXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiB0LnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiB0O2Nhc2UiYWFhYWEiOnJldHVybiB0WzBdO2RlZmF1bHQ6cmV0dXJuIHQ9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKGEsZSl7cmV0dXJuIGJ0KGEuZ2V0SG91cnMoKSUxMnx8MTIsZS5sZW5ndGgpfSxIKGEsZSl7cmV0dXJuIGJ0KGEuZ2V0SG91cnMoKSxlLmxlbmd0aCl9LG0oYSxlKXtyZXR1cm4gYnQoYS5nZXRNaW51dGVzKCksZS5sZW5ndGgpfSxzKGEsZSl7cmV0dXJuIGJ0KGEuZ2V0U2Vjb25kcygpLGUubGVuZ3RoKX0sUyhhLGUpe2xldCB0PWUubGVuZ3RoLHI9YS5nZXRNaWxsaXNlY29uZHMoKSxpPU1hdGgudHJ1bmMocipNYXRoLnBvdygxMCx0LTMpKTtyZXR1cm4gYnQoaSxlLmxlbmd0aCl9fX0pO2Z1bmN0aW9uIFppdChhLGU9IiIpe2xldCB0PWE+MD8iLSI6IisiLHI9TWF0aC5hYnMoYSksaT1NYXRoLnRydW5jKHIvNjApLG89ciU2MDtyZXR1cm4gbz09PTA/dCtTdHJpbmcoaSk6dCtTdHJpbmcoaSkrZStidChvLDIpfWZ1bmN0aW9uIFhpdChhLGUpe3JldHVybiBhJTYwPT09MD8oYT4wPyItIjoiKyIpK2J0KE1hdGguYWJzKGEpLzYwLDIpOnYzKGEsZSl9ZnVuY3Rpb24gdjMoYSxlPSIiKXtsZXQgdD1hPjA/Ii0iOiIrIixyPU1hdGguYWJzKGEpLGk9YnQoTWF0aC50cnVuYyhyLzYwKSwyKSxvPWJ0KHIlNjAsMik7cmV0dXJuIHQraStlK299dmFyIENoLGY5LFFpdD1mKCgpPT57VDJlKCk7SUsoKTtpMCgpO1JLKCk7cDkoKTtiMygpO0wyZSgpO0NoPXthbToiYW0iLHBtOiJwbSIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sZjk9e0c6cyhmdW5jdGlvbihhLGUsdCl7bGV0IHI9YS5nZXRGdWxsWWVhcigpPjA/MTowO3N3aXRjaChlKXtjYXNlIkciOmNhc2UiR0ciOmNhc2UiR0dHIjpyZXR1cm4gdC5lcmEocix7d2lkdGg6ImFiYnJldmlhdGVkIn0pO2Nhc2UiR0dHR0ciOnJldHVybiB0LmVyYShyLHt3aWR0aDoibmFycm93In0pO2RlZmF1bHQ6cmV0dXJuIHQuZXJhKHIse3dpZHRoOiJ3aWRlIn0pfX0sIkciKSx5OnMoZnVuY3Rpb24oYSxlLHQpe2lmKGU9PT0ieW8iKXtsZXQgcj1hLmdldEZ1bGxZZWFyKCksaT1yPjA/cjoxLXI7cmV0dXJuIHQub3JkaW5hbE51bWJlcihpLHt1bml0OiJ5ZWFyIn0pfXJldHVybiBVby55KGEsZSl9LCJ5IiksWTpzKGZ1bmN0aW9uKGEsZSx0LHIpe2xldCBpPWQwKGEsciksbz1pPjA/aToxLWk7aWYoZT09PSJZWSIpe2xldCBuPW8lMTAwO3JldHVybiBidChuLDIpfXJldHVybiBlPT09IllvIj90Lm9yZGluYWxOdW1iZXIobyx7dW5pdDoieWVhciJ9KTpidChvLGUubGVuZ3RoKX0sIlkiKSxSOnMoZnVuY3Rpb24oYSxlKXtsZXQgdD1qaShhKTtyZXR1cm4gYnQodCxlLmxlbmd0aCl9LCJSIiksdTpzKGZ1bmN0aW9uKGEsZSl7bGV0IHQ9YS5nZXRGdWxsWWVhcigpO3JldHVybiBidCh0LGUubGVuZ3RoKX0sInUiKSxROnMoZnVuY3Rpb24oYSxlLHQpe2xldCByPU1hdGguY2VpbCgoYS5nZXRNb250aCgpKzEpLzMpO3N3aXRjaChlKXtjYXNlIlEiOnJldHVybiBTdHJpbmcocik7Y2FzZSJRUSI6cmV0dXJuIGJ0KHIsMik7Y2FzZSJRbyI6cmV0dXJuIHQub3JkaW5hbE51bWJlcihyLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gdC5xdWFydGVyKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIlFRUVFRIjpyZXR1cm4gdC5xdWFydGVyKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC5xdWFydGVyKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIlEiKSxxOnMoZnVuY3Rpb24oYSxlLHQpe2xldCByPU1hdGguY2VpbCgoYS5nZXRNb250aCgpKzEpLzMpO3N3aXRjaChlKXtjYXNlInEiOnJldHVybiBTdHJpbmcocik7Y2FzZSJxcSI6cmV0dXJuIGJ0KHIsMik7Y2FzZSJxbyI6cmV0dXJuIHQub3JkaW5hbE51bWJlcihyLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UicXFxIjpyZXR1cm4gdC5xdWFydGVyKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gdC5xdWFydGVyKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gdC5xdWFydGVyKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sInEiKSxNOnMoZnVuY3Rpb24oYSxlLHQpe2xldCByPWEuZ2V0TW9udGgoKTtzd2l0Y2goZSl7Y2FzZSJNIjpjYXNlIk1NIjpyZXR1cm4gVW8uTShhLGUpO2Nhc2UiTW8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIocisxLHt1bml0OiJtb250aCJ9KTtjYXNlIk1NTSI6cmV0dXJuIHQubW9udGgocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiB0Lm1vbnRoKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC5tb250aChyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJNIiksTDpzKGZ1bmN0aW9uKGEsZSx0KXtsZXQgcj1hLmdldE1vbnRoKCk7c3dpdGNoKGUpe2Nhc2UiTCI6cmV0dXJuIFN0cmluZyhyKzEpO2Nhc2UiTEwiOnJldHVybiBidChyKzEsMik7Y2FzZSJMbyI6cmV0dXJuIHQub3JkaW5hbE51bWJlcihyKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTExMIjpyZXR1cm4gdC5tb250aChyLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIHQubW9udGgocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiB0Lm1vbnRoKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sIkwiKSx3OnMoZnVuY3Rpb24oYSxlLHQscil7bGV0IGk9emgoYSxyKTtyZXR1cm4gZT09PSJ3byI/dC5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6IndlZWsifSk6YnQoaSxlLmxlbmd0aCl9LCJ3IiksSTpzKGZ1bmN0aW9uKGEsZSx0KXtsZXQgcj1TaChhKTtyZXR1cm4gZT09PSJJbyI/dC5vcmRpbmFsTnVtYmVyKHIse3VuaXQ6IndlZWsifSk6YnQocixlLmxlbmd0aCl9LCJJIiksZDpzKGZ1bmN0aW9uKGEsZSx0KXtyZXR1cm4gZT09PSJkbyI/dC5vcmRpbmFsTnVtYmVyKGEuZ2V0RGF0ZSgpLHt1bml0OiJkYXRlIn0pOlVvLmQoYSxlKX0sImQiKSxEOnMoZnVuY3Rpb24oYSxlLHQpe2xldCByPUVLKGEpO3JldHVybiBlPT09IkRvIj90Lm9yZGluYWxOdW1iZXIocix7dW5pdDoiZGF5T2ZZZWFyIn0pOmJ0KHIsZS5sZW5ndGgpfSwiRCIpLEU6cyhmdW5jdGlvbihhLGUsdCl7bGV0IHI9YS5nZXREYXkoKTtzd2l0Y2goZSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFRSI6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiB0LmRheShyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJFIiksZTpzKGZ1bmN0aW9uKGEsZSx0LHIpe2xldCBpPWEuZ2V0RGF5KCksbz0oaS1yLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImUiOnJldHVybiBTdHJpbmcobyk7Y2FzZSJlZSI6cmV0dXJuIGJ0KG8sMik7Y2FzZSJlbyI6cmV0dXJuIHQub3JkaW5hbE51bWJlcihvLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiB0LmRheShpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIHQuZGF5KGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiB0LmRheShpLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC5kYXkoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiZSIpLGM6cyhmdW5jdGlvbihhLGUsdCxyKXtsZXQgaT1hLmdldERheSgpLG89KGktci53ZWVrU3RhcnRzT24rOCklN3x8Nztzd2l0Y2goZSl7Y2FzZSJjIjpyZXR1cm4gU3RyaW5nKG8pO2Nhc2UiY2MiOnJldHVybiBidChvLGUubGVuZ3RoKTtjYXNlImNvIjpyZXR1cm4gdC5vcmRpbmFsTnVtYmVyKG8se3VuaXQ6ImRheSJ9KTtjYXNlImNjYyI6cmV0dXJuIHQuZGF5KGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjIjpyZXR1cm4gdC5kYXkoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjYyI6cmV0dXJuIHQuZGF5KGkse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiB0LmRheShpLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJjIiksaTpzKGZ1bmN0aW9uKGEsZSx0KXtsZXQgcj1hLmdldERheSgpLGk9cj09PTA/NzpyO3N3aXRjaChlKXtjYXNlImkiOnJldHVybiBTdHJpbmcoaSk7Y2FzZSJpaSI6cmV0dXJuIGJ0KGksZS5sZW5ndGgpO2Nhc2UiaW8iOnJldHVybiB0Lm9yZGluYWxOdW1iZXIoaSx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWkiOnJldHVybiB0LmRheShyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWlpIjpyZXR1cm4gdC5kYXkocix7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5KHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImkiKSxhOnMoZnVuY3Rpb24oYSxlLHQpe2xldCBpPWEuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHQuZGF5UGVyaW9kKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIHQuZGF5UGVyaW9kKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiB0LmRheVBlcmlvZChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF5UGVyaW9kKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImEiKSxiOnMoZnVuY3Rpb24oYSxlLHQpe2xldCByPWEuZ2V0SG91cnMoKSxpO3N3aXRjaChyPT09MTI/aT1DaC5ub29uOnI9PT0wP2k9Q2gubWlkbmlnaHQ6aT1yLzEyPj0xPyJwbSI6ImFtIixlKXtjYXNlImIiOmNhc2UiYmIiOnJldHVybiB0LmRheVBlcmlvZChpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmIiOnJldHVybiB0LmRheVBlcmlvZChpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkudG9Mb3dlckNhc2UoKTtjYXNlImJiYmJiIjpyZXR1cm4gdC5kYXlQZXJpb2QoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiB0LmRheVBlcmlvZChpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJiIiksQjpzKGZ1bmN0aW9uKGEsZSx0KXtsZXQgcj1hLmdldEhvdXJzKCksaTtzd2l0Y2gocj49MTc/aT1DaC5ldmVuaW5nOnI+PTEyP2k9Q2guYWZ0ZXJub29uOnI+PTQ/aT1DaC5tb3JuaW5nOmk9Q2gubmlnaHQsZSl7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIHQuZGF5UGVyaW9kKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gdC5kYXlQZXJpb2QoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiB0LmRheVBlcmlvZChpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJCIiksaDpzKGZ1bmN0aW9uKGEsZSx0KXtpZihlPT09ImhvIil7bGV0IHI9YS5nZXRIb3VycygpJTEyO3JldHVybiByPT09MCYmKHI9MTIpLHQub3JkaW5hbE51bWJlcihyLHt1bml0OiJob3VyIn0pfXJldHVybiBVby5oKGEsZSl9LCJoIiksSDpzKGZ1bmN0aW9uKGEsZSx0KXtyZXR1cm4gZT09PSJIbyI/dC5vcmRpbmFsTnVtYmVyKGEuZ2V0SG91cnMoKSx7dW5pdDoiaG91ciJ9KTpVby5IKGEsZSl9LCJIIiksSzpzKGZ1bmN0aW9uKGEsZSx0KXtsZXQgcj1hLmdldEhvdXJzKCklMTI7cmV0dXJuIGU9PT0iS28iP3Qub3JkaW5hbE51bWJlcihyLHt1bml0OiJob3VyIn0pOmJ0KHIsZS5sZW5ndGgpfSwiSyIpLGs6cyhmdW5jdGlvbihhLGUsdCl7bGV0IHI9YS5nZXRIb3VycygpO3JldHVybiByPT09MCYmKHI9MjQpLGU9PT0ia28iP3Qub3JkaW5hbE51bWJlcihyLHt1bml0OiJob3VyIn0pOmJ0KHIsZS5sZW5ndGgpfSwiayIpLG06cyhmdW5jdGlvbihhLGUsdCl7cmV0dXJuIGU9PT0ibW8iP3Qub3JkaW5hbE51bWJlcihhLmdldE1pbnV0ZXMoKSx7dW5pdDoibWludXRlIn0pOlVvLm0oYSxlKX0sIm0iKSxzOnMoZnVuY3Rpb24oYSxlLHQpe3JldHVybiBlPT09InNvIj90Lm9yZGluYWxOdW1iZXIoYS5nZXRTZWNvbmRzKCkse3VuaXQ6InNlY29uZCJ9KTpVby5zKGEsZSl9LCJzIiksUzpzKGZ1bmN0aW9uKGEsZSl7cmV0dXJuIFVvLlMoYSxlKX0sIlMiKSxYOnMoZnVuY3Rpb24oYSxlLHQpe2xldCByPWEuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihyPT09MClyZXR1cm4iWiI7c3dpdGNoKGUpe2Nhc2UiWCI6cmV0dXJuIFhpdChyKTtjYXNlIlhYWFgiOmNhc2UiWFgiOnJldHVybiB2MyhyKTtkZWZhdWx0OnJldHVybiB2MyhyLCI6Iil9fSwiWCIpLHg6cyhmdW5jdGlvbihhLGUsdCl7bGV0IHI9YS5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlIngiOnJldHVybiBYaXQocik7Y2FzZSJ4eHh4IjpjYXNlInh4IjpyZXR1cm4gdjMocik7ZGVmYXVsdDpyZXR1cm4gdjMociwiOiIpfX0sIngiKSxPOnMoZnVuY3Rpb24oYSxlLHQpe2xldCByPWEuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrWml0KHIsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK3YzKHIsIjoiKX19LCJPIiksejpzKGZ1bmN0aW9uKGEsZSx0KXtsZXQgcj1hLmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieiI6Y2FzZSJ6eiI6Y2FzZSJ6enoiOnJldHVybiJHTVQiK1ppdChyLCI6Iik7ZGVmYXVsdDpyZXR1cm4iR01UIit2MyhyLCI6Iil9fSwieiIpLHQ6cyhmdW5jdGlvbihhLGUsdCl7bGV0IHI9TWF0aC50cnVuYygrYS8xZTMpO3JldHVybiBidChyLGUubGVuZ3RoKX0sInQiKSxUOnMoZnVuY3Rpb24oYSxlLHQpe3JldHVybiBidCgrYSxlLmxlbmd0aCl9LCJUIil9O3MoWml0LCJmb3JtYXRUaW1lem9uZVNob3J0Iik7cyhYaXQsImZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyIpO3ModjMsImZvcm1hdFRpbWV6b25lIil9KTt2YXIgSml0LGVvdCxyZ2EsdTAsJDJlPWYoKCk9PntKaXQ9cygoYSxlKT0+e3N3aXRjaChhKXtjYXNlIlAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlIlBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UiUFBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLmRhdGUoe3dpZHRoOiJmdWxsIn0pfX0sImRhdGVMb25nRm9ybWF0dGVyIiksZW90PXMoKGEsZSk9Pntzd2l0Y2goYSl7Y2FzZSJwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gZS50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LCJ0aW1lTG9uZ0Zvcm1hdHRlciIpLHJnYT1zKChhLGUpPT57bGV0IHQ9YS5tYXRjaCgvKFArKShwKyk/Lyl8fFtdLHI9dFsxXSxpPXRbMl07aWYoIWkpcmV0dXJuIEppdChhLGUpO2xldCBvO3N3aXRjaChyKXtjYXNlIlAiOm89ZS5kYXRlVGltZSh7d2lkdGg6InNob3J0In0pO2JyZWFrO2Nhc2UiUFAiOm89ZS5kYXRlVGltZSh7d2lkdGg6Im1lZGl1bSJ9KTticmVhaztjYXNlIlBQUCI6bz1lLmRhdGVUaW1lKHt3aWR0aDoibG9uZyJ9KTticmVhaztkZWZhdWx0Om89ZS5kYXRlVGltZSh7d2lkdGg6ImZ1bGwifSk7YnJlYWt9cmV0dXJuIG8ucmVwbGFjZSgie3tkYXRlfX0iLEppdChyLGUpKS5yZXBsYWNlKCJ7e3RpbWV9fSIsZW90KGksZSkpfSwiZGF0ZVRpbWVMb25nRm9ybWF0dGVyIiksdTA9e3A6ZW90LFA6cmdhfX0pO2Z1bmN0aW9uIE9LKGEpe3JldHVybiBzZ2EudGVzdChhKX1mdW5jdGlvbiBGSyhhKXtyZXR1cm4gaWdhLnRlc3QoYSl9ZnVuY3Rpb24gaDkoYSxlLHQpe2xldCByPW5nYShhLGUsdCk7aWYoY29uc29sZS53YXJuKHIpLG9nYS5pbmNsdWRlcyhhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihyKX1mdW5jdGlvbiBuZ2EoYSxlLHQpe2xldCByPWFbMF09PT0iWSI/InllYXJzIjoiZGF5cyBvZiB0aGUgbW9udGgiO3JldHVybmBVc2UgXGAke2EudG9Mb3dlckNhc2UoKX1cYCBpbnN0ZWFkIG9mIFxgJHthfVxgIChpbiBcYCR7ZX1cYCkgZm9yIGZvcm1hdHRpbmcgJHtyfSB0byB0aGUgaW5wdXQgXGAke3R9XGA7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZGB9dmFyIHNnYSxpZ2Esb2dhLEQyZT1mKCgpPT57c2dhPS9eRCskLyxpZ2E9L15ZKyQvLG9nYT1bIkQiLCJERCIsIllZIiwiWVlZWSJdO3MoT0ssImlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4iKTtzKEZLLCJpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4iKTtzKGg5LCJ3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yIik7cyhuZ2EsIm1lc3NhZ2UiKX0pO2Z1bmN0aW9uIG05KGEsZSx0KXtsZXQgcj1xYSgpLGk9dD8ubG9jYWxlPz9yLmxvY2FsZT8/Q28sbz10Py5maXJzdFdlZWtDb250YWluc0RhdGU/P3Q/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGw9a2UoYSx0Py5pbik7aWYoIUpzKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgZD1lLm1hdGNoKGNnYSkubWFwKHA9PntsZXQgdT1wWzBdO2lmKHU9PT0icCJ8fHU9PT0iUCIpe2xldCBtPXUwW3VdO3JldHVybiBtKHAsaS5mb3JtYXRMb25nKX1yZXR1cm4gcH0pLmpvaW4oIiIpLm1hdGNoKGxnYSkubWFwKHA9PntpZihwPT09IicnIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZToiJyJ9O2xldCB1PXBbMF07aWYodT09PSInIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpmZ2EocCl9O2lmKGY5W3VdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOnB9O2lmKHUubWF0Y2gocGdhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK3UrImAiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpwfX0pO2kubG9jYWxpemUucHJlcHJvY2Vzc29yJiYoZD1pLmxvY2FsaXplLnByZXByb2Nlc3NvcihsLGQpKTtsZXQgYz17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOm8sd2Vla1N0YXJ0c09uOm4sbG9jYWxlOml9O3JldHVybiBkLm1hcChwPT57aWYoIXAuaXNUb2tlbilyZXR1cm4gcC52YWx1ZTtsZXQgdT1wLnZhbHVlOyghdD8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZGSyh1KXx8IXQ/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJk9LKHUpKSYmaDkodSxlLFN0cmluZyhhKSk7bGV0IG09ZjlbdVswXV07cmV0dXJuIG0obCx1LGkubG9jYWxpemUsYyl9KS5qb2luKCIiKX1mdW5jdGlvbiBmZ2EoYSl7bGV0IGU9YS5tYXRjaChkZ2EpO3JldHVybiBlP2VbMV0ucmVwbGFjZSh1Z2EsIiciKTphfXZhciBsZ2EsY2dhLGRnYSx1Z2EscGdhLG1kcixBMmU9ZigoKT0+e20zKCk7d2koKTtRaXQoKTskMmUoKTtEMmUoKTtrbCgpO0hlKCk7bGdhPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csY2dhPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLGRnYT0vXicoW15dKj8pJz8kLyx1Z2E9LycnL2cscGdhPS9bYS16QS1aXS87cyhtOSwiZm9ybWF0Iik7cyhmZ2EsImNsZWFuRXNjYXBlZFN0cmluZyIpO21kcj1tOX0pO2Z1bmN0aW9uIEJLKGEsZSx0KXtsZXQgcj1xYSgpLGk9dD8ubG9jYWxlPz9yLmxvY2FsZT8/Q28sbz0yNTIwLG49TWkoYSxlKTtpZihpc05hTihuKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSx0LHthZGRTdWZmaXg6dD8uYWRkU3VmZml4LGNvbXBhcmlzb246bn0pLFtkLGNdPVR0KHQ/LmluLC4uLm4+MD9bZSxhXTpbYSxlXSkscD13MihjLGQpLHU9KEVyKGMpLUVyKGQpKS8xZTMsbT1NYXRoLnJvdW5kKChwLXUpLzYwKSx2O2lmKG08MilyZXR1cm4gdD8uaW5jbHVkZVNlY29uZHM/cDw1P2kuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUsbCk6cDwxMD9pLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxsKTpwPDIwP2kuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLGwpOnA8NDA/aS5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAsbCk6cDw2MD9pLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOmkuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLGwpOm09PT0wP2kuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEsbCk6aS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLG0sbCk7aWYobTw0NSlyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLG0sbCk7aWYobTw5MClyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEsbCk7aWYobTxsaCl7bGV0IHg9TWF0aC5yb3VuZChtLzYwKTtyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHgsbCl9ZWxzZXtpZihtPG8pcmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLGwpO2lmKG08YTApe2xldCB4PU1hdGgucm91bmQobS9saCk7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix4LGwpfWVsc2UgaWYobTxhMCoyKXJldHVybiB2PU1hdGgucm91bmQobS9hMCksaS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIix2LGwpfWlmKHY9bDAoYyxkKSx2PDEyKXtsZXQgeD1NYXRoLnJvdW5kKG0vYTApO3JldHVybiBpLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix4LGwpfWVsc2V7bGV0IHg9diUxMixiPU1hdGgudHJ1bmModi8xMik7cmV0dXJuIHg8Mz9pLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsYixsKTp4PDk/aS5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsYixsKTppLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLGIrMSxsKX19dmFyIENkcixQMmU9ZigoKT0+e20zKCk7d2koKTt3bCgpO1VhKCk7ZDMoKTtKdCgpO2M5KCk7ZDkoKTtzKEJLLCJmb3JtYXREaXN0YW5jZSIpO0Nkcj1CS30pO2Z1bmN0aW9uIEhLKGEsZSx0KXtsZXQgcj1xYSgpLGk9dD8ubG9jYWxlPz9yLmxvY2FsZT8/Q28sbz1NaShhLGUpO2lmKGlzTmFOKG8pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbj1PYmplY3QuYXNzaWduKHt9LHQse2FkZFN1ZmZpeDp0Py5hZGRTdWZmaXgsY29tcGFyaXNvbjpvfSksW2wsZF09VHQodD8uaW4sLi4ubz4wP1tlLGFdOlthLGVdKSxjPWtpKHQ/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSxwPWQuZ2V0VGltZSgpLWwuZ2V0VGltZSgpLHU9cC95aSxtPUVyKGQpLUVyKGwpLHY9KHAtbSkveWkseD10Py51bml0LGI7aWYoeD9iPXg6dTwxP2I9InNlY29uZCI6dTw2MD9iPSJtaW51dGUiOnU8bGg/Yj0iaG91ciI6djxhMD9iPSJkYXkiOnY8YTJlP2I9Im1vbnRoIjpiPSJ5ZWFyIixiPT09InNlY29uZCIpe2xldCBnPWMocC8xZTMpO3JldHVybiBpLmZvcm1hdERpc3RhbmNlKCJ4U2Vjb25kcyIsZyxuKX1lbHNlIGlmKGI9PT0ibWludXRlIil7bGV0IGc9Yyh1KTtyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGcsbil9ZWxzZSBpZihiPT09ImhvdXIiKXtsZXQgZz1jKHUvNjApO3JldHVybiBpLmZvcm1hdERpc3RhbmNlKCJ4SG91cnMiLGcsbil9ZWxzZSBpZihiPT09ImRheSIpe2xldCBnPWModi9saCk7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixnLG4pfWVsc2UgaWYoYj09PSJtb250aCIpe2xldCBnPWModi9hMCk7cmV0dXJuIGc9PT0xMiYmeCE9PSJtb250aCI/aS5mb3JtYXREaXN0YW5jZSgieFllYXJzIiwxLG4pOmkuZm9ybWF0RGlzdGFuY2UoInhNb250aHMiLGcsbil9ZWxzZXtsZXQgZz1jKHYvYTJlKTtyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgieFllYXJzIixnLG4pfX12YXIgTmRyLEUyZT1mKCgpPT57bTMoKTt3aSgpO1NsKCk7d2woKTtVYSgpO2QzKCk7SnQoKTtzKEhLLCJmb3JtYXREaXN0YW5jZVN0cmljdCIpO05kcj1IS30pO2Z1bmN0aW9uIHRvdChhLGUpe3JldHVybiBCSyhhLGNhKGEpLGUpfXZhciBIZHIsYW90PWYoKCk9PntUcygpO1AyZSgpO3ModG90LCJmb3JtYXREaXN0YW5jZVRvTm93Iik7SGRyPXRvdH0pO2Z1bmN0aW9uIHJvdChhLGUpe3JldHVybiBISyhhLGNhKGEpLGUpfXZhciBXZHIsc290PWYoKCk9PntUcygpO0UyZSgpO3Mocm90LCJmb3JtYXREaXN0YW5jZVRvTm93U3RyaWN0Iik7V2RyPXJvdH0pO2Z1bmN0aW9uIGlvdChhLGUpe2xldCB0PXFhKCkscj1lPy5sb2NhbGU/P3QubG9jYWxlPz9DbyxpPWU/LmZvcm1hdD8/aGdhLG89ZT8uemVybz8/ITEsbj1lPy5kZWxpbWl0ZXI/PyIgIjtyZXR1cm4gci5mb3JtYXREaXN0YW5jZT9pLnJlZHVjZSgoZCxjKT0+e2xldCBwPWB4JHtjLnJlcGxhY2UoLyheLikvLG09Pm0udG9VcHBlckNhc2UoKSl9YCx1PWFbY107cmV0dXJuIHUhPT12b2lkIDAmJihvfHxhW2NdKT9kLmNvbmNhdChyLmZvcm1hdERpc3RhbmNlKHAsdSkpOmR9LFtdKS5qb2luKG4pOiIifXZhciBoZ2EsWGRyLG9vdD1mKCgpPT57bTMoKTt3aSgpO2hnYT1bInllYXJzIiwibW9udGhzIiwid2Vla3MiLCJkYXlzIiwiaG91cnMiLCJtaW51dGVzIiwic2Vjb25kcyJdO3MoaW90LCJmb3JtYXREdXJhdGlvbiIpO1hkcj1pb3R9KTtmdW5jdGlvbiBub3QoYSxlKXtsZXQgdD1rZShhLGU/LmluKTtpZihpc05hTigrdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCByPWU/LmZvcm1hdD8/ImV4dGVuZGVkIixpPWU/LnJlcHJlc2VudGF0aW9uPz8iY29tcGxldGUiLG89IiIsbj0iIixsPXI9PT0iZXh0ZW5kZWQiPyItIjoiIixkPXI9PT0iZXh0ZW5kZWQiPyI6IjoiIjtpZihpIT09InRpbWUiKXtsZXQgYz1idCh0LmdldERhdGUoKSwyKSxwPWJ0KHQuZ2V0TW9udGgoKSsxLDIpO289YCR7YnQodC5nZXRGdWxsWWVhcigpLDQpfSR7bH0ke3B9JHtsfSR7Y31gfWlmKGkhPT0iZGF0ZSIpe2xldCBjPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihjIT09MCl7bGV0IGI9TWF0aC5hYnMoYyksZz1idChNYXRoLnRydW5jKGIvNjApLDIpLHk9YnQoYiU2MCwyKTtuPWAke2M8MD8iKyI6Ii0ifSR7Z306JHt5fWB9ZWxzZSBuPSJaIjtsZXQgcD1idCh0LmdldEhvdXJzKCksMiksdT1idCh0LmdldE1pbnV0ZXMoKSwyKSxtPWJ0KHQuZ2V0U2Vjb25kcygpLDIpLHY9bz09PSIiPyIiOiJUIix4PVtwLHUsbV0uam9pbihkKTtvPWAke299JHt2fSR7eH0ke259YH1yZXR1cm4gb312YXIgYTZyLGxvdD1mKCgpPT57YjMoKTtIZSgpO3Mobm90LCJmb3JtYXRJU08iKTthNnI9bm90fSk7ZnVuY3Rpb24gY290KGEsZSl7bGV0IHQ9a2UoYSxlPy5pbik7aWYoIUpzKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1lPy5mb3JtYXQ/PyJleHRlbmRlZCIsaT1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixvPSIiLG49cj09PSJleHRlbmRlZCI/Ii0iOiIiLGw9cj09PSJleHRlbmRlZCI/IjoiOiIiO2lmKGkhPT0idGltZSIpe2xldCBkPWJ0KHQuZ2V0RGF0ZSgpLDIpLGM9YnQodC5nZXRNb250aCgpKzEsMik7bz1gJHtidCh0LmdldEZ1bGxZZWFyKCksNCl9JHtufSR7Y30ke259JHtkfWB9aWYoaSE9PSJkYXRlIil7bGV0IGQ9YnQodC5nZXRIb3VycygpLDIpLGM9YnQodC5nZXRNaW51dGVzKCksMikscD1idCh0LmdldFNlY29uZHMoKSwyKTtvPWAke299JHtvPT09IiI/IiI6IiAifSR7ZH0ke2x9JHtjfSR7bH0ke3B9YH1yZXR1cm4gb312YXIgbDZyLGRvdD1mKCgpPT57YjMoKTtrbCgpO0hlKCk7cyhjb3QsImZvcm1hdElTTzkwNzUiKTtsNnI9Y290fSk7ZnVuY3Rpb24gdW90KGEpe2xldHt5ZWFyczplPTAsbW9udGhzOnQ9MCxkYXlzOnI9MCxob3VyczppPTAsbWludXRlczpvPTAsc2Vjb25kczpuPTB9PWE7cmV0dXJuYFAke2V9WSR7dH1NJHtyfURUJHtpfUgke299TSR7bn1TYH12YXIgdTZyLHBvdD1mKCgpPT57cyh1b3QsImZvcm1hdElTT0R1cmF0aW9uIik7dTZyPXVvdH0pO2Z1bmN0aW9uIGZvdChhLGUpe2xldCB0PWtlKGEsZT8uaW4pO2lmKCFKcyh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IHI9ZT8uZnJhY3Rpb25EaWdpdHM/PzAsaT1idCh0LmdldERhdGUoKSwyKSxvPWJ0KHQuZ2V0TW9udGgoKSsxLDIpLG49dC5nZXRGdWxsWWVhcigpLGw9YnQodC5nZXRIb3VycygpLDIpLGQ9YnQodC5nZXRNaW51dGVzKCksMiksYz1idCh0LmdldFNlY29uZHMoKSwyKSxwPSIiO2lmKHI+MCl7bGV0IHY9dC5nZXRNaWxsaXNlY29uZHMoKSx4PU1hdGgudHJ1bmModipNYXRoLnBvdygxMCxyLTMpKTtwPSIuIitidCh4LHIpfWxldCB1PSIiLG09dC5nZXRUaW1lem9uZU9mZnNldCgpO2lmKG0hPT0wKXtsZXQgdj1NYXRoLmFicyhtKSx4PWJ0KE1hdGgudHJ1bmModi82MCksMiksYj1idCh2JTYwLDIpO3U9YCR7bTwwPyIrIjoiLSJ9JHt4fToke2J9YH1lbHNlIHU9IloiO3JldHVybmAke259LSR7b30tJHtpfVQke2x9OiR7ZH06JHtjfSR7cH0ke3V9YH12YXIgYjZyLGhvdD1mKCgpPT57YjMoKTtrbCgpO0hlKCk7cyhmb3QsImZvcm1hdFJGQzMzMzkiKTtiNnI9Zm90fSk7ZnVuY3Rpb24gbW90KGEpe2xldCBlPWtlKGEpO2lmKCFKcyhlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IHQ9bWdhW2UuZ2V0VVRDRGF5KCldLHI9YnQoZS5nZXRVVENEYXRlKCksMiksaT1nZ2FbZS5nZXRVVENNb250aCgpXSxvPWUuZ2V0VVRDRnVsbFllYXIoKSxuPWJ0KGUuZ2V0VVRDSG91cnMoKSwyKSxsPWJ0KGUuZ2V0VVRDTWludXRlcygpLDIpLGQ9YnQoZS5nZXRVVENTZWNvbmRzKCksMik7cmV0dXJuYCR7dH0sICR7cn0gJHtpfSAke299ICR7bn06JHtsfToke2R9IEdNVGB9dmFyIG1nYSxnZ2EsazZyLGdvdD1mKCgpPT57YjMoKTtrbCgpO0hlKCk7bWdhPVsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sZ2dhPVsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl07cyhtb3QsImZvcm1hdFJGQzcyMzEiKTtrNnI9bW90fSk7ZnVuY3Rpb24gYm90KGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpLG89cWEoKSxuPXQ/LmxvY2FsZT8/by5sb2NhbGU/P0NvLGw9dD8ud2Vla1N0YXJ0c09uPz90Py5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/by53ZWVrU3RhcnRzT24/P28ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsZD1xcyhyLGkpO2lmKGlzTmFOKGQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztkPC02P2M9Im90aGVyIjpkPC0xP2M9Imxhc3RXZWVrIjpkPDA/Yz0ieWVzdGVyZGF5IjpkPDE/Yz0idG9kYXkiOmQ8Mj9jPSJ0b21vcnJvdyI6ZDw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IHA9bi5mb3JtYXRSZWxhdGl2ZShjLHIsaSx7bG9jYWxlOm4sd2Vla1N0YXJ0c09uOmx9KTtyZXR1cm4gbTkocixwLHtsb2NhbGU6bix3ZWVrU3RhcnRzT246bH0pfXZhciBENnIsdm90PWYoKCk9PnttMygpO3dpKCk7VWEoKTtNbCgpO0EyZSgpO3MoYm90LCJmb3JtYXRSZWxhdGl2ZSIpO0Q2cj1ib3R9KTtmdW5jdGlvbiB4b3QoYSxlKXtyZXR1cm4ga2UoYSoxZTMsZT8uaW4pfXZhciBJNnIseW90PWYoKCk9PntIZSgpO3MoeG90LCJmcm9tVW5peFRpbWUiKTtJNnI9eG90fSk7ZnVuY3Rpb24gcUsoYSxlKXtyZXR1cm4ga2UoYSxlPy5pbikuZ2V0RGF0ZSgpfXZhciBGNnIsSTJlPWYoKCk9PntIZSgpO3MocUssImdldERhdGUiKTtGNnI9cUt9KTtmdW5jdGlvbiBwMChhLGUpe3JldHVybiBrZShhLGU/LmluKS5nZXREYXkoKX12YXIgVjZyLGc5PWYoKCk9PntIZSgpO3MocDAsImdldERheSIpO1Y2cj1wMH0pO2Z1bmN0aW9uIFZLKGEsZSl7bGV0IHQ9a2UoYSxlPy5pbikscj10LmdldEZ1bGxZZWFyKCksaT10LmdldE1vbnRoKCksbz1GZSh0LDApO3JldHVybiBvLnNldEZ1bGxZZWFyKHIsaSsxLDApLG8uc2V0SG91cnMoMCwwLDAsMCksby5nZXREYXRlKCl9dmFyIFk2cixOMmU9ZigoKT0+eyR0KCk7SGUoKTtzKFZLLCJnZXREYXlzSW5Nb250aCIpO1k2cj1WS30pO2Z1bmN0aW9uIGpLKGEsZSl7bGV0IHI9a2UoYSxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gciU0MDA9PT0wfHxyJTQ9PT0wJiZyJTEwMCE9PTB9dmFyIFE2cixSMmU9ZigoKT0+e0hlKCk7cyhqSywiaXNMZWFwWWVhciIpO1E2cj1qS30pO2Z1bmN0aW9uIHdvdChhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK3QpP05hTjpqSyh0KT8zNjY6MzY1fXZhciBydXIsTW90PWYoKCk9PntSMmUoKTtIZSgpO3Mod290LCJnZXREYXlzSW5ZZWFyIik7cnVyPXdvdH0pO2Z1bmN0aW9uIGtvdChhLGUpe2xldCByPWtlKGEsZT8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3Ioci8xMCkqMTB9dmFyIG51cixTb3Q9ZigoKT0+e0hlKCk7cyhrb3QsImdldERlY2FkZSIpO251cj1rb3R9KTtmdW5jdGlvbiBVSygpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LHFhKCkpfXZhciB1dXIsTzJlPWYoKCk9Pnt3aSgpO3MoVUssImdldERlZmF1bHRPcHRpb25zIik7dXVyPVVLfSk7ZnVuY3Rpb24gem90KGEsZSl7cmV0dXJuIGtlKGEsZT8uaW4pLmdldEhvdXJzKCl9dmFyIG11cixDb3Q9ZigoKT0+e0hlKCk7cyh6b3QsImdldEhvdXJzIik7bXVyPXpvdH0pO2Z1bmN0aW9uIFdLKGEsZSl7bGV0IHQ9a2UoYSxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIHQ9PT0wPzc6dH12YXIgeHVyLEYyZT1mKCgpPT57SGUoKTtzKFdLLCJnZXRJU09EYXkiKTt4dXI9V0t9KTtmdW5jdGlvbiBfb3QoYSxlKXtsZXQgdD1qbyhhLGUpLGk9K2pvKG8wKHQsNjApKS0rdDtyZXR1cm4gTWF0aC5yb3VuZChpL2gyKX12YXIgenVyLFRvdD1mKCgpPT57bjkoKTtKdCgpO3VoKCk7cyhfb3QsImdldElTT1dlZWtzSW5ZZWFyIik7enVyPV9vdH0pO2Z1bmN0aW9uIExvdChhKXtyZXR1cm4ga2UoYSkuZ2V0TWlsbGlzZWNvbmRzKCl9dmFyIEx1ciwkb3Q9ZigoKT0+e0hlKCk7cyhMb3QsImdldE1pbGxpc2Vjb25kcyIpO0x1cj1Mb3R9KTtmdW5jdGlvbiBEb3QoYSxlKXtyZXR1cm4ga2UoYSxlPy5pbikuZ2V0TWludXRlcygpfXZhciBQdXIsQW90PWYoKCk9PntIZSgpO3MoRG90LCJnZXRNaW51dGVzIik7UHVyPURvdH0pO2Z1bmN0aW9uIFBvdChhLGUpe3JldHVybiBrZShhLGU/LmluKS5nZXRNb250aCgpfXZhciBSdXIsRW90PWYoKCk9PntIZSgpO3MoUG90LCJnZXRNb250aCIpO1J1cj1Qb3R9KTtmdW5jdGlvbiBJb3QoYSxlKXtsZXRbdCxyXT1bK2tlKGEuc3RhcnQpLCtrZShhLmVuZCldLnNvcnQoKHUsbSk9PnUtbSksW2ksb109WytrZShlLnN0YXJ0KSwra2UoZS5lbmQpXS5zb3J0KCh1LG0pPT51LW0pO2lmKCEodDxvJiZpPHIpKXJldHVybiAwO2xldCBsPWk8dD90OmksZD1sLUVyKGwpLGM9bz5yP3I6byxwPWMtRXIoYyk7cmV0dXJuIE1hdGguY2VpbCgocC1kKS9LWSl9dmFyIFZ1cixOb3Q9ZigoKT0+e3dsKCk7SnQoKTtIZSgpO3MoSW90LCJnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFscyIpO1Z1cj1Jb3R9KTtmdW5jdGlvbiBSb3QoYSl7cmV0dXJuIGtlKGEpLmdldFNlY29uZHMoKX12YXIgR3VyLE9vdD1mKCgpPT57SGUoKTtzKFJvdCwiZ2V0U2Vjb25kcyIpO0d1cj1Sb3R9KTtmdW5jdGlvbiBGb3QoYSl7cmV0dXJuK2tlKGEpfXZhciBYdXIsQm90PWYoKCk9PntIZSgpO3MoRm90LCJnZXRUaW1lIik7WHVyPUZvdH0pO2Z1bmN0aW9uIEhvdChhKXtyZXR1cm4gTWF0aC50cnVuYygra2UoYSkvMWUzKX12YXIgdHByLHFvdD1mKCgpPT57SGUoKTtzKEhvdCwiZ2V0VW5peFRpbWUiKTt0cHI9SG90fSk7ZnVuY3Rpb24gVm90KGEsZSl7bGV0IHQ9cWEoKSxyPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Qud2Vla1N0YXJ0c09uPz90LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGk9cUsoa2UoYSxlPy5pbikpO2lmKGlzTmFOKGkpKXJldHVybiBOYU47bGV0IG89cDAoYzAoYSxlKSksbj1yLW87bjw9MCYmKG4rPTcpO2xldCBsPWktbjtyZXR1cm4gTWF0aC5jZWlsKGwvNykrMX12YXIgY3ByLGpvdD1mKCgpPT57d2koKTtJMmUoKTtnOSgpO3U5KCk7SGUoKTtzKFZvdCwiZ2V0V2Vla09mTW9udGgiKTtjcHI9Vm90fSk7ZnVuY3Rpb24gR0soYSxlKXtsZXQgdD1rZShhLGU/LmluKSxyPXQuZ2V0TW9udGgoKTtyZXR1cm4gdC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkscisxLDApLHQuc2V0SG91cnMoMCwwLDAsMCksa2UodCxlPy5pbil9dmFyIGZwcixCMmU9ZigoKT0+e0hlKCk7cyhHSywibGFzdERheU9mTW9udGgiKTtmcHI9R0t9KTtmdW5jdGlvbiBVb3QoYSxlKXtsZXQgdD1rZShhLGU/LmluKTtyZXR1cm4gcDMoR0sodCxlKSxjMCh0LGUpLGUpKzF9dmFyIHlwcixXb3Q9ZigoKT0+e2dLKCk7QjJlKCk7dTkoKTtIZSgpO3MoVW90LCJnZXRXZWVrc0luTW9udGgiKTt5cHI9VW90fSk7ZnVuY3Rpb24gR290KGEsZSl7cmV0dXJuIGtlKGEsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIFNwcixZb3Q9ZigoKT0+e0hlKCk7cyhHb3QsImdldFllYXIiKTtTcHI9R290fSk7ZnVuY3Rpb24gS290KGEpe3JldHVybiBNYXRoLnRydW5jKGEqVm8pfXZhciBUcHIsWm90PWYoKCk9PntKdCgpO3MoS290LCJob3Vyc1RvTWlsbGlzZWNvbmRzIik7VHByPUtvdH0pO2Z1bmN0aW9uIFhvdChhKXtyZXR1cm4gTWF0aC50cnVuYyhhKlpZKX12YXIgQXByLFFvdD1mKCgpPT57SnQoKTtzKFhvdCwiaG91cnNUb01pbnV0ZXMiKTtBcHI9WG90fSk7ZnVuY3Rpb24gSm90KGEpe3JldHVybiBNYXRoLnRydW5jKGEqYzMpfXZhciBOcHIsZW50PWYoKCk9PntKdCgpO3MoSm90LCJob3Vyc1RvU2Vjb25kcyIpO05wcj1Kb3R9KTtmdW5jdGlvbiB0bnQoYSxlLHQpe2xldFtyLGldPVR0KHQ/LmluLGEsZSk7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBUeXBlRXJyb3IoIlN0YXJ0IGRhdGUgaXMgaW52YWxpZCIpO2lmKGlzTmFOKCtpKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFbmQgZGF0ZSBpcyBpbnZhbGlkIik7aWYodD8uYXNzZXJ0UG9zaXRpdmUmJityPitpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIG11c3QgYmUgYWZ0ZXIgc3RhcnQgZGF0ZSIpO3JldHVybntzdGFydDpyLGVuZDppfX12YXIgQnByLGFudD1mKCgpPT57VWEoKTtzKHRudCwiaW50ZXJ2YWwiKTtCcHI9dG50fSk7ZnVuY3Rpb24gcm50KGEsZSl7bGV0e3N0YXJ0OnQsZW5kOnJ9PVZzKGU/LmluLGEpLGk9e30sbz1DSyhyLHQpO28mJihpLnllYXJzPW8pO2xldCBuPXIwKHQse3llYXJzOmkueWVhcnN9KSxsPWwwKHIsbik7bCYmKGkubW9udGhzPWwpO2xldCBkPXIwKG4se21vbnRoczppLm1vbnRoc30pLGM9Z2gocixkKTtjJiYoaS5kYXlzPWMpO2xldCBwPXIwKGQse2RheXM6aS5kYXlzfSksdT1mMyhyLHApO3UmJihpLmhvdXJzPXUpO2xldCBtPXIwKHAse2hvdXJzOmkuaG91cnN9KSx2PWgzKHIsbSk7diYmKGkubWludXRlcz12KTtsZXQgeD1yMChtLHttaW51dGVzOmkubWludXRlc30pLGI9dzIocix4KTtyZXR1cm4gYiYmKGkuc2Vjb25kcz1iKSxpfXZhciBYcHIsc250PWYoKCk9PntNMigpO28yZSgpO3ZLKCk7eEsoKTtNSygpO2M5KCk7ZDkoKTtTMmUoKTtzKHJudCwiaW50ZXJ2YWxUb0R1cmF0aW9uIik7WHByPXJudH0pO2Z1bmN0aW9uIGludChhLGUsdCl7bGV0IHI7cmV0dXJuIGJnYShlKT9yPWU6dD1lLG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHQ/LmxvY2FsZSxyKS5mb3JtYXQoa2UoYSkpfWZ1bmN0aW9uIGJnYShhKXtyZXR1cm4gYSE9PXZvaWQgMCYmISgibG9jYWxlImluIGEpfXZhciB0ZnIsb250PWYoKCk9PntIZSgpO3MoaW50LCJpbnRsRm9ybWF0Iik7cyhiZ2EsImlzRm9ybWF0T3B0aW9ucyIpO3Rmcj1pbnR9KTtmdW5jdGlvbiBubnQoYSxlLHQpe2xldCByPTAsaSxbbyxuXT1UdCh0Py5pbixhLGUpO2lmKHQ/LnVuaXQpaT10Py51bml0LGk9PT0ic2Vjb25kIj9yPXcyKG8sbik6aT09PSJtaW51dGUiP3I9aDMobyxuKTppPT09ImhvdXIiP3I9ZjMobyxuKTppPT09ImRheSI/cj1xcyhvLG4pOmk9PT0id2VlayI/cj1wMyhvLG4pOmk9PT0ibW9udGgiP3I9dTMobyxuKTppPT09InF1YXJ0ZXIiP3I9bWgobyxuKTppPT09InllYXIiJiYocj1uMChvLG4pKTtlbHNle2xldCBkPXcyKG8sbik7TWF0aC5hYnMoZCk8Y2g/KHI9dzIobyxuKSxpPSJzZWNvbmQiKTpNYXRoLmFicyhkKTxjMz8ocj1oMyhvLG4pLGk9Im1pbnV0ZSIpOk1hdGguYWJzKGQpPEdZJiZNYXRoLmFicyhxcyhvLG4pKTwxPyhyPWYzKG8sbiksaT0iaG91ciIpOk1hdGguYWJzKGQpPF9zdCYmKHI9cXMobyxuKSkmJk1hdGguYWJzKHIpPDc/aT0iZGF5IjpNYXRoLmFicyhkKTxzMmU/KHI9cDMobyxuKSxpPSJ3ZWVrIik6TWF0aC5hYnMoZCk8VHN0PyhyPXUzKG8sbiksaT0ibW9udGgiKTpNYXRoLmFicyhkKTxyMmU/bWgobyxuKTw0PyhyPW1oKG8sbiksaT0icXVhcnRlciIpOihyPW4wKG8sbiksaT0ieWVhciIpOihyPW4wKG8sbiksaT0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQodD8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi50fSkuZm9ybWF0KHIsaSl9dmFyIGhmcixsbnQ9ZigoKT0+e1VhKCk7SnQoKTtNbCgpO21LKCk7dzJlKCk7Z0soKTtiSygpO3hLKCk7TUsoKTtkOSgpO3Mobm50LCJpbnRsRm9ybWF0RGlzdGFuY2UiKTtoZnI9bm50fSk7ZnVuY3Rpb24gY250KGEsZSl7cmV0dXJuK2tlKGEpPitrZShlKX12YXIgdmZyLGRudD1mKCgpPT57SGUoKTtzKGNudCwiaXNBZnRlciIpO3Zmcj1jbnR9KTtmdW5jdGlvbiB1bnQoYSxlKXtyZXR1cm4ra2UoYSk8K2tlKGUpfXZhciBNZnIscG50PWYoKCk9PntIZSgpO3ModW50LCJpc0JlZm9yZSIpO01mcj11bnR9KTtmdW5jdGlvbiBmbnQoYSxlKXtyZXR1cm4ra2UoYSk9PStrZShlKX12YXIgQ2ZyLGhudD1mKCgpPT57SGUoKTtzKGZudCwiaXNFcXVhbCIpO0Nmcj1mbnR9KTtmdW5jdGlvbiBtbnQoYSxlLHQpe2xldCByPW5ldyBEYXRlKGEsZSx0KTtyZXR1cm4gci5nZXRGdWxsWWVhcigpPT09YSYmci5nZXRNb250aCgpPT09ZSYmci5nZXREYXRlKCk9PT10fXZhciBMZnIsZ250PWYoKCk9PntzKG1udCwiaXNFeGlzdHMiKTtMZnI9bW50fSk7ZnVuY3Rpb24gYm50KGEsZSl7cmV0dXJuIGtlKGEsZT8uaW4pLmdldERhdGUoKT09PTF9dmFyIFBmcix2bnQ9ZigoKT0+e0hlKCk7cyhibnQsImlzRmlyc3REYXlPZk1vbnRoIik7UGZyPWJudH0pO2Z1bmN0aW9uIHhudChhLGUpe3JldHVybiBrZShhLGU/LmluKS5nZXREYXkoKT09PTV9dmFyIFJmcix5bnQ9ZigoKT0+e0hlKCk7cyh4bnQsImlzRnJpZGF5Iik7UmZyPXhudH0pO2Z1bmN0aW9uIHdudChhKXtyZXR1cm4ra2UoYSk+RGF0ZS5ub3coKX12YXIgSGZyLE1udD1mKCgpPT57SGUoKTtzKHdudCwiaXNGdXR1cmUiKTtIZnI9d250fSk7ZnVuY3Rpb24gWUsoYSxlKXtsZXQgdD12Z2EoZSk/bmV3IGUoMCk6RmUoZSwwKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihhLmdldEZ1bGxZZWFyKCksYS5nZXRNb250aCgpLGEuZ2V0RGF0ZSgpKSx0LnNldEhvdXJzKGEuZ2V0SG91cnMoKSxhLmdldE1pbnV0ZXMoKSxhLmdldFNlY29uZHMoKSxhLmdldE1pbGxpc2Vjb25kcygpKSx0fWZ1bmN0aW9uIHZnYShhKXtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiImJmEucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PWF9dmFyIFVmcixIMmU9ZigoKT0+eyR0KCk7cyhZSywidHJhbnNwb3NlIik7cyh2Z2EsImlzQ29uc3RydWN0b3IiKTtVZnI9WUt9KTt2YXIgeGdhLEtLLFpLLFhLLHEyZT1mKCgpPT57JHQoKTtIMmUoKTt4Z2E9MTAsS0s9Y2xhc3N7c3RhdGlje3ModGhpcywiU2V0dGVyIil9c3ViUHJpb3JpdHk9MDt2YWxpZGF0ZShlLHQpe3JldHVybiEwfX0sWks9Y2xhc3MgZXh0ZW5kcyBLS3tzdGF0aWN7cyh0aGlzLCJWYWx1ZVNldHRlciIpfWNvbnN0cnVjdG9yKGUsdCxyLGksbyl7c3VwZXIoKSx0aGlzLnZhbHVlPWUsdGhpcy52YWxpZGF0ZVZhbHVlPXQsdGhpcy5zZXRWYWx1ZT1yLHRoaXMucHJpb3JpdHk9aSxvJiYodGhpcy5zdWJQcmlvcml0eT1vKX12YWxpZGF0ZShlLHQpe3JldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoZSx0aGlzLnZhbHVlLHQpfXNldChlLHQscil7cmV0dXJuIHRoaXMuc2V0VmFsdWUoZSx0LHRoaXMudmFsdWUscil9fSxYSz1jbGFzcyBleHRlbmRzIEtLe3N0YXRpY3tzKHRoaXMsIkRhdGVUaW1lem9uZVNldHRlciIpfXByaW9yaXR5PXhnYTtzdWJQcmlvcml0eT0tMTtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCksdGhpcy5jb250ZXh0PWV8fChyPT5GZSh0LHIpKX1zZXQoZSx0KXtyZXR1cm4gdC50aW1lc3RhbXBJc1NldD9lOkZlKGUsWUsoZSx0aGlzLmNvbnRleHQpKX19fSk7dmFyIGd0LElhPWYoKCk9PntxMmUoKTtndD1jbGFzc3tzdGF0aWN7cyh0aGlzLCJQYXJzZXIiKX1ydW4oZSx0LHIsaSl7bGV0IG89dGhpcy5wYXJzZShlLHQscixpKTtyZXR1cm4gbz97c2V0dGVyOm5ldyBaSyhvLnZhbHVlLHRoaXMudmFsaWRhdGUsdGhpcy5zZXQsdGhpcy5wcmlvcml0eSx0aGlzLnN1YlByaW9yaXR5KSxyZXN0Om8ucmVzdH06bnVsbH12YWxpZGF0ZShlLHQscil7cmV0dXJuITB9fX0pO3ZhciBRSyxrbnQ9ZigoKT0+e0lhKCk7UUs9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJFcmFQYXJzZXIiKX1wcmlvcml0eT0xNDA7cGFyc2UoZSx0LHIpe3N3aXRjaCh0KXtjYXNlIkciOmNhc2UiR0ciOmNhc2UiR0dHIjpyZXR1cm4gci5lcmEoZSx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxyLmVyYShlLHt3aWR0aDoibmFycm93In0pO2Nhc2UiR0dHR0ciOnJldHVybiByLmVyYShlLHt3aWR0aDoibmFycm93In0pO2RlZmF1bHQ6cmV0dXJuIHIuZXJhKGUse3dpZHRoOiJ3aWRlIn0pfHxyLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fHIuZXJhKGUse3dpZHRoOiJuYXJyb3cifSl9fXNldChlLHQscil7cmV0dXJuIHQuZXJhPXIsZS5zZXRGdWxsWWVhcihyLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlIiLCJ1IiwidCIsIlQiXX19KTt2YXIgVGEseG4sU2k9ZigoKT0+e1RhPXttb250aDovXigxWzAtMl18MD9cZCkvLGRhdGU6L14oM1swLTFdfFswLTJdP1xkKS8sZGF5T2ZZZWFyOi9eKDM2WzAtNl18M1swLTVdXGR8WzAtMl0/XGQ/XGQpLyx3ZWVrOi9eKDVbMC0zXXxbMC00XT9cZCkvLGhvdXIyM2g6L14oMlswLTNdfFswLTFdP1xkKS8saG91cjI0aDovXigyWzAtNF18WzAtMV0/XGQpLyxob3VyMTFoOi9eKDFbMC0xXXwwP1xkKS8saG91cjEyaDovXigxWzAtMl18MD9cZCkvLG1pbnV0ZTovXlswLTVdP1xkLyxzZWNvbmQ6L15bMC01XT9cZC8sc2luZ2xlRGlnaXQ6L15cZC8sdHdvRGlnaXRzOi9eXGR7MSwyfS8sdGhyZWVEaWdpdHM6L15cZHsxLDN9Lyxmb3VyRGlnaXRzOi9eXGR7MSw0fS8sYW55RGlnaXRzU2lnbmVkOi9eLT9cZCsvLHNpbmdsZURpZ2l0U2lnbmVkOi9eLT9cZC8sdHdvRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDJ9Lyx0aHJlZURpZ2l0c1NpZ25lZDovXi0/XGR7MSwzfS8sZm91ckRpZ2l0c1NpZ25lZDovXi0/XGR7MSw0fS99LHhuPXtiYXNpY09wdGlvbmFsTWludXRlczovXihbKy1dKShcZHsyfSkoXGR7Mn0pP3xaLyxiYXNpYzovXihbKy1dKShcZHsyfSkoXGR7Mn0pfFovLGJhc2ljT3B0aW9uYWxTZWNvbmRzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSkoKFxkezJ9KSk/fFovLGV4dGVuZGVkOi9eKFsrLV0pKFxkezJ9KTooXGR7Mn0pfFovLGV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzOi9eKFsrLV0pKFxkezJ9KTooXGR7Mn0pKDooXGR7Mn0pKT98Wi99fSk7ZnVuY3Rpb24gV2EoYSxlKXtyZXR1cm4gYSYme3ZhbHVlOmUoYS52YWx1ZSkscmVzdDphLnJlc3R9fWZ1bmN0aW9uIFNhKGEsZSl7bGV0IHQ9ZS5tYXRjaChhKTtyZXR1cm4gdD97dmFsdWU6cGFyc2VJbnQodFswXSwxMCkscmVzdDplLnNsaWNlKHRbMF0ubGVuZ3RoKX06bnVsbH1mdW5jdGlvbiB5bihhLGUpe2xldCB0PWUubWF0Y2goYSk7aWYoIXQpcmV0dXJuIG51bGw7aWYodFswXT09PSJaIilyZXR1cm57dmFsdWU6MCxyZXN0OmUuc2xpY2UoMSl9O2xldCByPXRbMV09PT0iKyI/MTotMSxpPXRbMl0/cGFyc2VJbnQodFsyXSwxMCk6MCxvPXRbM10/cGFyc2VJbnQodFszXSwxMCk6MCxuPXRbNV0/cGFyc2VJbnQodFs1XSwxMCk6MDtyZXR1cm57dmFsdWU6ciooaSpWbytvKnlpK24qbmgpLHJlc3Q6ZS5zbGljZSh0WzBdLmxlbmd0aCl9fWZ1bmN0aW9uIEpLKGEpe3JldHVybiBTYShUYS5hbnlEaWdpdHNTaWduZWQsYSl9ZnVuY3Rpb24gS3QoYSxlKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiBTYShUYS5zaW5nbGVEaWdpdCxlKTtjYXNlIDI6cmV0dXJuIFNhKFRhLnR3b0RpZ2l0cyxlKTtjYXNlIDM6cmV0dXJuIFNhKFRhLnRocmVlRGlnaXRzLGUpO2Nhc2UgNDpyZXR1cm4gU2EoVGEuZm91ckRpZ2l0cyxlKTtkZWZhdWx0OnJldHVybiBTYShuZXcgUmVnRXhwKCJeXFxkezEsIithKyJ9IiksZSl9fWZ1bmN0aW9uIF9oKGEsZSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4gU2EoVGEuc2luZ2xlRGlnaXRTaWduZWQsZSk7Y2FzZSAyOnJldHVybiBTYShUYS50d29EaWdpdHNTaWduZWQsZSk7Y2FzZSAzOnJldHVybiBTYShUYS50aHJlZURpZ2l0c1NpZ25lZCxlKTtjYXNlIDQ6cmV0dXJuIFNhKFRhLmZvdXJEaWdpdHNTaWduZWQsZSk7ZGVmYXVsdDpyZXR1cm4gU2EobmV3IFJlZ0V4cCgiXi0/XFxkezEsIithKyJ9IiksZSl9fWZ1bmN0aW9uIFRoKGEpe3N3aXRjaChhKXtjYXNlIm1vcm5pbmciOnJldHVybiA0O2Nhc2UiZXZlbmluZyI6cmV0dXJuIDE3O2Nhc2UicG0iOmNhc2Uibm9vbiI6Y2FzZSJhZnRlcm5vb24iOnJldHVybiAxMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBlWihhLGUpe2xldCB0PWU+MCxyPXQ/ZToxLWUsaTtpZihyPD01MClpPWF8fDEwMDtlbHNle2xldCBvPXIrNTAsbj1NYXRoLnRydW5jKG8vMTAwKSoxMDAsbD1hPj1vJTEwMDtpPWErbi0obD8xMDA6MCl9cmV0dXJuIHQ/aToxLWl9ZnVuY3Rpb24gdFooYSl7cmV0dXJuIGElNDAwPT09MHx8YSU0PT09MCYmYSUxMDAhPT0wfXZhciBWYT1mKCgpPT57SnQoKTtTaSgpO3MoV2EsIm1hcFZhbHVlIik7cyhTYSwicGFyc2VOdW1lcmljUGF0dGVybiIpO3MoeW4sInBhcnNlVGltZXpvbmVQYXR0ZXJuIik7cyhKSywicGFyc2VBbnlEaWdpdHNTaWduZWQiKTtzKEt0LCJwYXJzZU5EaWdpdHMiKTtzKF9oLCJwYXJzZU5EaWdpdHNTaWduZWQiKTtzKFRoLCJkYXlQZXJpb2RFbnVtVG9Ib3VycyIpO3MoZVosIm5vcm1hbGl6ZVR3b0RpZ2l0WWVhciIpO3ModFosImlzTGVhcFllYXJJbmRleCIpfSk7dmFyIGFaLFNudD1mKCgpPT57SWEoKTtWYSgpO2FaPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UoZSx0LHIpe2xldCBpPXMobz0+KHt5ZWFyOm8saXNUd29EaWdpdFllYXI6dD09PSJ5eSJ9KSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaCh0KXtjYXNlInkiOnJldHVybiBXYShLdCg0LGUpLGkpO2Nhc2UieW8iOnJldHVybiBXYShyLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoieWVhciJ9KSxpKTtkZWZhdWx0OnJldHVybiBXYShLdCh0Lmxlbmd0aCxlKSxpKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdC5pc1R3b0RpZ2l0WWVhcnx8dC55ZWFyPjB9c2V0KGUsdCxyKXtsZXQgaT1lLmdldEZ1bGxZZWFyKCk7aWYoci5pc1R3b0RpZ2l0WWVhcil7bGV0IG49ZVooci55ZWFyLGkpO3JldHVybiBlLnNldEZ1bGxZZWFyKG4sMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9bGV0IG89ISgiZXJhImluIHQpfHx0LmVyYT09PTE/ci55ZWFyOjEtci55ZWFyO3JldHVybiBlLnNldEZ1bGxZZWFyKG8sMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9fX0pO3ZhciByWix6bnQ9ZigoKT0+e3A5KCk7aTEoKTtJYSgpO1ZhKCk7clo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJMb2NhbFdlZWtZZWFyUGFyc2VyIil9cHJpb3JpdHk9MTMwO3BhcnNlKGUsdCxyKXtsZXQgaT1zKG89Pih7eWVhcjpvLGlzVHdvRGlnaXRZZWFyOnQ9PT0iWVkifSksInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJZIjpyZXR1cm4gV2EoS3QoNCxlKSxpKTtjYXNlIllvIjpyZXR1cm4gV2Eoci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InllYXIifSksaSk7ZGVmYXVsdDpyZXR1cm4gV2EoS3QodC5sZW5ndGgsZSksaSl9fXZhbGlkYXRlKGUsdCl7cmV0dXJuIHQuaXNUd29EaWdpdFllYXJ8fHQueWVhcj4wfXNldChlLHQscixpKXtsZXQgbz1kMChlLGkpO2lmKHIuaXNUd29EaWdpdFllYXIpe2xldCBsPWVaKHIueWVhcixvKTtyZXR1cm4gZS5zZXRGdWxsWWVhcihsLDAsaS5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksZXIoZSxpKX1sZXQgbj0hKCJlcmEiaW4gdCl8fHQuZXJhPT09MT9yLnllYXI6MS1yLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobiwwLGkuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSxlLnNldEhvdXJzKDAsMCwwLDApLGVyKGUsaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciBzWixDbnQ9ZigoKT0+e3YyKCk7JHQoKTtJYSgpO1ZhKCk7c1o9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJJU09XZWVrWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHQpe3JldHVybiB0PT09IlIiP19oKDQsZSk6X2godC5sZW5ndGgsZSl9c2V0KGUsdCxyKXtsZXQgaT1GZShlLDApO3JldHVybiBpLnNldEZ1bGxZZWFyKHIsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApLGNzKGkpfWluY29tcGF0aWJsZVRva2Vucz1bIkciLCJ5IiwiWSIsInUiLCJRIiwicSIsIk0iLCJMIiwidyIsImQiLCJEIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBpWixfbnQ9ZigoKT0+e0lhKCk7VmEoKTtpWj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIkV4dGVuZGVkWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHQpe3JldHVybiB0PT09InUiP19oKDQsZSk6X2godC5sZW5ndGgsZSl9c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXRGdWxsWWVhcihyLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkciLCJ5IiwiWSIsIlIiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIG9aLFRudD1mKCgpPT57SWEoKTtWYSgpO29aPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiUXVhcnRlclBhcnNlciIpfXByaW9yaXR5PTEyMDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIEt0KHQubGVuZ3RoLGUpO2Nhc2UiUW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIHIucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiByLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD00fXNldChlLHQscil7cmV0dXJuIGUuc2V0TW9udGgoKHItMSkqMywxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgblosTG50PWYoKCk9PntJYSgpO1ZhKCk7blo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJTdGFuZEFsb25lUXVhcnRlclBhcnNlciIpfXByaW9yaXR5PTEyMDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UicSI6Y2FzZSJxcSI6cmV0dXJuIEt0KHQubGVuZ3RoLGUpO2Nhc2UicW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlInFxcSI6cmV0dXJuIHIucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiByLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD00fXNldChlLHQscil7cmV0dXJuIGUuc2V0TW9udGgoKHItMSkqMywxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgbFosJG50PWYoKCk9PntTaSgpO0lhKCk7VmEoKTtsWj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIk1vbnRoUGFyc2VyIil9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIkwiLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3ByaW9yaXR5PTExMDtwYXJzZShlLHQscil7bGV0IGk9cyhvPT5vLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJNIjpyZXR1cm4gV2EoU2EoVGEubW9udGgsZSksaSk7Y2FzZSJNTSI6cmV0dXJuIFdhKEt0KDIsZSksaSk7Y2FzZSJNbyI6cmV0dXJuIFdhKHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxpKTtjYXNlIk1NTSI6cmV0dXJuIHIubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIHIubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0xMX1zZXQoZSx0LHIpe3JldHVybiBlLnNldE1vbnRoKHIsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfX19KTt2YXIgY1osRG50PWYoKCk9PntTaSgpO0lhKCk7VmEoKTtjWj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIlN0YW5kQWxvbmVNb250aFBhcnNlciIpfXByaW9yaXR5PTExMDtwYXJzZShlLHQscil7bGV0IGk9cyhvPT5vLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2godCl7Y2FzZSJMIjpyZXR1cm4gV2EoU2EoVGEubW9udGgsZSksaSk7Y2FzZSJMTCI6cmV0dXJuIFdhKEt0KDIsZSksaSk7Y2FzZSJMbyI6cmV0dXJuIFdhKHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxpKTtjYXNlIkxMTCI6cmV0dXJuIHIubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIHIubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8ci5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0xMX1zZXQoZSx0LHIpe3JldHVybiBlLnNldE1vbnRoKHIsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBkWihhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbiksaT16aChyLHQpLWU7cmV0dXJuIHIuc2V0RGF0ZShyLmdldERhdGUoKS1pKjcpLGtlKHIsdD8uaW4pfXZhciBLNXIsVjJlPWYoKCk9PntSSygpO0hlKCk7cyhkWiwic2V0V2VlayIpO0s1cj1kWn0pO3ZhciB1WixBbnQ9ZigoKT0+e1YyZSgpO2kxKCk7U2koKTtJYSgpO1ZhKCk7dVo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJMb2NhbFdlZWtQYXJzZXIiKX1wcmlvcml0eT0xMDA7cGFyc2UoZSx0LHIpe3N3aXRjaCh0KXtjYXNlInciOnJldHVybiBTYShUYS53ZWVrLGUpO2Nhc2Uid28iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBLdCh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MSYmdDw9NTN9c2V0KGUsdCxyLGkpe3JldHVybiBlcihkWihlLHIsaSksaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIHBaKGEsZSx0KXtsZXQgcj1rZShhLHQ/LmluKSxpPVNoKHIsdCktZTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpLWkqNykscn12YXIgbmhyLGoyZT1mKCgpPT57SUsoKTtIZSgpO3MocFosInNldElTT1dlZWsiKTtuaHI9cFp9KTt2YXIgZlosUG50PWYoKCk9PntqMmUoKTt2MigpO1NpKCk7SWEoKTtWYSgpO2ZaPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiSVNPV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiSSI6cmV0dXJuIFNhKFRhLndlZWssZSk7Y2FzZSJJbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIEt0KHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD01M31zZXQoZSx0LHIpe3JldHVybiBjcyhwWihlLHIpKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiWSIsInUiLCJxIiwiUSIsIk0iLCJMIiwidyIsImQiLCJEIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB5Z2Esd2dhLGhaLEVudD1mKCgpPT57U2koKTtJYSgpO1ZhKCk7eWdhPVszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sd2dhPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saFo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJEYXRlUGFyc2VyIil9cHJpb3JpdHk9OTA7c3ViUHJpb3JpdHk9MTtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiZCI6cmV0dXJuIFNhKFRhLmRhdGUsZSk7Y2FzZSJkbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIEt0KHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe2xldCByPWUuZ2V0RnVsbFllYXIoKSxpPXRaKHIpLG89ZS5nZXRNb250aCgpO3JldHVybiBpP3Q+PTEmJnQ8PXdnYVtvXTp0Pj0xJiZ0PD15Z2Fbb119c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXREYXRlKHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgbVosSW50PWYoKCk9PntTaSgpO0lhKCk7VmEoKTttWj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIkRheU9mWWVhclBhcnNlciIpfXByaW9yaXR5PTkwO3N1YnByaW9yaXR5PTE7cGFyc2UoZSx0LHIpe3N3aXRjaCh0KXtjYXNlIkQiOmNhc2UiREQiOnJldHVybiBTYShUYS5kYXlPZlllYXIsZSk7Y2FzZSJEbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIEt0KHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe2xldCByPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gdFoocik/dD49MSYmdDw9MzY2OnQ+PTEmJnQ8PTM2NX1zZXQoZSx0LHIpe3JldHVybiBlLnNldE1vbnRoKDAsciksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkUiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIGYwKGEsZSx0KXtsZXQgcj1xYSgpLGk9dD8ud2Vla1N0YXJ0c09uPz90Py5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsbz1rZShhLHQ/LmluKSxuPW8uZ2V0RGF5KCksZD0oZSU3KzcpJTcsYz03LWkscD1lPDB8fGU+Nj9lLShuK2MpJTc6KGQrYyklNy0obitjKSU3O3JldHVybiBfcyhvLHAsdCl9dmFyICRocixiOT1mKCgpPT57d2koKTttMigpO0hlKCk7cyhmMCwic2V0RGF5Iik7JGhyPWYwfSk7dmFyIGdaLE5udD1mKCgpPT57YjkoKTtJYSgpO2daPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSx0LHIpe3N3aXRjaCh0KXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gci5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiByLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD02fXNldChlLHQscixpKXtyZXR1cm4gZT1mMChlLHIsaSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBiWixSbnQ9ZigoKT0+e2I5KCk7SWEoKTtWYSgpO2JaPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiTG9jYWxEYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHQscixpKXtsZXQgbz1zKG49PntsZXQgbD1NYXRoLmZsb29yKChuLTEpLzcpKjc7cmV0dXJuKG4raS53ZWVrU3RhcnRzT24rNiklNytsfSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaCh0KXtjYXNlImUiOmNhc2UiZWUiOnJldHVybiBXYShLdCh0Lmxlbmd0aCxlKSxvKTtjYXNlImVvIjpyZXR1cm4gV2Eoci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxvKTtjYXNlImVlZSI6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWUiOnJldHVybiByLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWVlIjpyZXR1cm4gci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9Nn1zZXQoZSx0LHIsaSl7cmV0dXJuIGU9ZjAoZSxyLGkpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJjIiwidCIsIlQiXX19KTt2YXIgdlosT250PWYoKCk9PntiOSgpO0lhKCk7VmEoKTt2Wj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIlN0YW5kQWxvbmVMb2NhbERheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUsdCxyLGkpe2xldCBvPXMobj0+e2xldCBsPU1hdGguZmxvb3IoKG4tMSkvNykqNztyZXR1cm4obitpLndlZWtTdGFydHNPbis2KSU3K2x9LCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHQpe2Nhc2UiYyI6Y2FzZSJjYyI6cmV0dXJuIFdhKEt0KHQubGVuZ3RoLGUpLG8pO2Nhc2UiY28iOnJldHVybiBXYShyLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pLG8pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiByLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8ci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD02fXNldChlLHQscixpKXtyZXR1cm4gZT1mMChlLHIsaSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImUiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIHhaKGEsZSx0KXtsZXQgcj1rZShhLHQ/LmluKSxpPVdLKHIsdCksbz1lLWk7cmV0dXJuIF9zKHIsbyx0KX12YXIgWmhyLFUyZT1mKCgpPT57bTIoKTtGMmUoKTtIZSgpO3MoeFosInNldElTT0RheSIpO1pocj14Wn0pO3ZhciB5WixGbnQ9ZigoKT0+e1UyZSgpO0lhKCk7VmEoKTt5Wj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIklTT0RheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUsdCxyKXtsZXQgaT1zKG89Pm89PT0wPzc6bywidmFsdWVDYWxsYmFjayIpO3N3aXRjaCh0KXtjYXNlImkiOmNhc2UiaWkiOnJldHVybiBLdCh0Lmxlbmd0aCxlKTtjYXNlImlvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KTtjYXNlImlpaSI6cmV0dXJuIFdhKHIuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGkpO2Nhc2UiaWlpaWkiOnJldHVybiBXYShyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGkpO2Nhc2UiaWlpaWlpIjpyZXR1cm4gV2Eoci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGkpO2RlZmF1bHQ6cmV0dXJuIFdhKHIuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxpKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MSYmdDw9N31zZXQoZSx0LHIpe3JldHVybiBlPXhaKGUsciksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJFIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB3WixCbnQ9ZigoKT0+e0lhKCk7VmEoKTt3Wj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIkFNUE1QYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiYSI6Y2FzZSJhYSI6Y2FzZSJhYWEiOnJldHVybiByLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJhYWFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXRIb3VycyhUaChyKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJiIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgTVosSG50PWYoKCk9PntJYSgpO1ZhKCk7TVo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJBTVBNTWlkbmlnaHRQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOnJldHVybiByLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXRIb3VycyhUaChyKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIga1oscW50PWYoKCk9PntJYSgpO1ZhKCk7a1o9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJEYXlQZXJpb2RQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiByLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXRIb3VycyhUaChyKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsInQiLCJUIl19fSk7dmFyIFNaLFZudD1mKCgpPT57U2koKTtJYSgpO1ZhKCk7U1o9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJIb3VyMXRvMTJQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiaCI6cmV0dXJuIFNhKFRhLmhvdXIxMmgsZSk7Y2FzZSJobyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIEt0KHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0xJiZ0PD0xMn1zZXQoZSx0LHIpe2xldCBpPWUuZ2V0SG91cnMoKT49MTI7cmV0dXJuIGkmJnI8MTI/ZS5zZXRIb3VycyhyKzEyLDAsMCwwKTohaSYmcj09PTEyP2Uuc2V0SG91cnMoMCwwLDAsMCk6ZS5zZXRIb3VycyhyLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkgiLCJLIiwiayIsInQiLCJUIl19fSk7dmFyIHpaLGpudD1mKCgpPT57U2koKTtJYSgpO1ZhKCk7elo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJIb3VyMHRvMjNQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UiSCI6cmV0dXJuIFNhKFRhLmhvdXIyM2gsZSk7Y2FzZSJIbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIEt0KHQubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHQpe3JldHVybiB0Pj0wJiZ0PD0yM31zZXQoZSx0LHIpe3JldHVybiBlLnNldEhvdXJzKHIsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBDWixVbnQ9ZigoKT0+e1NpKCk7SWEoKTtWYSgpO0NaPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiSG91cjBUbzExUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSx0LHIpe3N3aXRjaCh0KXtjYXNlIksiOnJldHVybiBTYShUYS5ob3VyMTFoLGUpO2Nhc2UiS28iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBLdCh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9MTF9c2V0KGUsdCxyKXtyZXR1cm4gZS5nZXRIb3VycygpPj0xMiYmcjwxMj9lLnNldEhvdXJzKHIrMTIsMCwwLDApOmUuc2V0SG91cnMociwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJoIiwiSCIsImsiLCJ0IiwiVCJdfX0pO3ZhciBfWixXbnQ9ZigoKT0+e1NpKCk7SWEoKTtWYSgpO19aPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiSG91cjFUbzI0UGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSx0LHIpe3N3aXRjaCh0KXtjYXNlImsiOnJldHVybiBTYShUYS5ob3VyMjRoLGUpO2Nhc2Uia28iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBLdCh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MSYmdDw9MjR9c2V0KGUsdCxyKXtsZXQgaT1yPD0yND9yJTI0OnI7cmV0dXJuIGUuc2V0SG91cnMoaSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsImgiLCJIIiwiSyIsInQiLCJUIl19fSk7dmFyIFRaLEdudD1mKCgpPT57U2koKTtJYSgpO1ZhKCk7VFo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJNaW51dGVQYXJzZXIiKX1wcmlvcml0eT02MDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UibSI6cmV0dXJuIFNhKFRhLm1pbnV0ZSxlKTtjYXNlIm1vIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1pbnV0ZSJ9KTtkZWZhdWx0OnJldHVybiBLdCh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9NTl9c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXRNaW51dGVzKHIsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIExaLFludD1mKCgpPT57U2koKTtJYSgpO1ZhKCk7TFo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJTZWNvbmRQYXJzZXIiKX1wcmlvcml0eT01MDtwYXJzZShlLHQscil7c3dpdGNoKHQpe2Nhc2UicyI6cmV0dXJuIFNhKFRhLnNlY29uZCxlKTtjYXNlInNvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InNlY29uZCJ9KTtkZWZhdWx0OnJldHVybiBLdCh0Lmxlbmd0aCxlKX19dmFsaWRhdGUoZSx0KXtyZXR1cm4gdD49MCYmdDw9NTl9c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXRTZWNvbmRzKHIsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciAkWixLbnQ9ZigoKT0+e0lhKCk7VmEoKTskWj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIkZyYWN0aW9uT2ZTZWNvbmRQYXJzZXIiKX1wcmlvcml0eT0zMDtwYXJzZShlLHQpe2xldCByPXMoaT0+TWF0aC50cnVuYyhpKk1hdGgucG93KDEwLC10Lmxlbmd0aCszKSksInZhbHVlQ2FsbGJhY2siKTtyZXR1cm4gV2EoS3QodC5sZW5ndGgsZSkscil9c2V0KGUsdCxyKXtyZXR1cm4gZS5zZXRNaWxsaXNlY29uZHMociksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBEWixabnQ9ZigoKT0+eyR0KCk7d2woKTtTaSgpO0lhKCk7VmEoKTtEWj1jbGFzcyBleHRlbmRzIGd0e3N0YXRpY3tzKHRoaXMsIklTT1RpbWV6b25lV2l0aFpQYXJzZXIiKX1wcmlvcml0eT0xMDtwYXJzZShlLHQpe3N3aXRjaCh0KXtjYXNlIlgiOnJldHVybiB5bih4bi5iYXNpY09wdGlvbmFsTWludXRlcyxlKTtjYXNlIlhYIjpyZXR1cm4geW4oeG4uYmFzaWMsZSk7Y2FzZSJYWFhYIjpyZXR1cm4geW4oeG4uYmFzaWNPcHRpb25hbFNlY29uZHMsZSk7Y2FzZSJYWFhYWCI6cmV0dXJuIHluKHhuLmV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzLGUpO2RlZmF1bHQ6cmV0dXJuIHluKHhuLmV4dGVuZGVkLGUpfX1zZXQoZSx0LHIpe3JldHVybiB0LnRpbWVzdGFtcElzU2V0P2U6RmUoZSxlLmdldFRpbWUoKS1FcihlKS1yKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCIsIngiXX19KTt2YXIgQVosWG50PWYoKCk9PnskdCgpO3dsKCk7U2koKTtJYSgpO1ZhKCk7QVo9Y2xhc3MgZXh0ZW5kcyBndHtzdGF0aWN7cyh0aGlzLCJJU09UaW1lem9uZVBhcnNlciIpfXByaW9yaXR5PTEwO3BhcnNlKGUsdCl7c3dpdGNoKHQpe2Nhc2UieCI6cmV0dXJuIHluKHhuLmJhc2ljT3B0aW9uYWxNaW51dGVzLGUpO2Nhc2UieHgiOnJldHVybiB5bih4bi5iYXNpYyxlKTtjYXNlInh4eHgiOnJldHVybiB5bih4bi5iYXNpY09wdGlvbmFsU2Vjb25kcyxlKTtjYXNlInh4eHh4IjpyZXR1cm4geW4oeG4uZXh0ZW5kZWRPcHRpb25hbFNlY29uZHMsZSk7ZGVmYXVsdDpyZXR1cm4geW4oeG4uZXh0ZW5kZWQsZSl9fXNldChlLHQscil7cmV0dXJuIHQudGltZXN0YW1wSXNTZXQ/ZTpGZShlLGUuZ2V0VGltZSgpLUVyKGUpLXIpfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIiwiWCJdfX0pO3ZhciBQWixRbnQ9ZigoKT0+eyR0KCk7SWEoKTtWYSgpO1BaPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiVGltZXN0YW1wU2Vjb25kc1BhcnNlciIpfXByaW9yaXR5PTQwO3BhcnNlKGUpe3JldHVybiBKSyhlKX1zZXQoZSx0LHIpe3JldHVybltGZShlLHIqMWUzKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciBFWixKbnQ9ZigoKT0+eyR0KCk7SWEoKTtWYSgpO0VaPWNsYXNzIGV4dGVuZHMgZ3R7c3RhdGlje3ModGhpcywiVGltZXN0YW1wTWlsbGlzZWNvbmRzUGFyc2VyIil9cHJpb3JpdHk9MjA7cGFyc2UoZSl7cmV0dXJuIEpLKGUpfXNldChlLHQscil7cmV0dXJuW0ZlKGUscikse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgSVosZTF0PWYoKCk9PntrbnQoKTtTbnQoKTt6bnQoKTtDbnQoKTtfbnQoKTtUbnQoKTtMbnQoKTskbnQoKTtEbnQoKTtBbnQoKTtQbnQoKTtFbnQoKTtJbnQoKTtObnQoKTtSbnQoKTtPbnQoKTtGbnQoKTtCbnQoKTtIbnQoKTtxbnQoKTtWbnQoKTtqbnQoKTtVbnQoKTtXbnQoKTtHbnQoKTtZbnQoKTtLbnQoKTtabnQoKTtYbnQoKTtRbnQoKTtKbnQoKTtJWj17RzpuZXcgUUsseTpuZXcgYVosWTpuZXcgclosUjpuZXcgc1osdTpuZXcgaVosUTpuZXcgb1oscTpuZXcgblosTTpuZXcgbFosTDpuZXcgY1osdzpuZXcgdVosSTpuZXcgZlosZDpuZXcgaFosRDpuZXcgbVosRTpuZXcgZ1osZTpuZXcgYlosYzpuZXcgdlosaTpuZXcgeVosYTpuZXcgd1osYjpuZXcgTVosQjpuZXcga1osaDpuZXcgU1osSDpuZXcgelosSzpuZXcgQ1osazpuZXcgX1osbTpuZXcgVFosczpuZXcgTFosUzpuZXcgJFosWDpuZXcgRFoseDpuZXcgQVosdDpuZXcgUFosVDpuZXcgRVp9fSk7ZnVuY3Rpb24gTlooYSxlLHQscil7bGV0IGk9cygoKT0+RmUocj8uaW58fHQsTmFOKSwiaW52YWxpZERhdGUiKSxvPVVLKCksbj1yPy5sb2NhbGU/P28ubG9jYWxlPz9DbyxsPXI/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/cj8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P28uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9vLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLGQ9cj8ud2Vla1N0YXJ0c09uPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/by53ZWVrU3RhcnRzT24/P28ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzA7aWYoIWUpcmV0dXJuIGE/aSgpOmtlKHQscj8uaW4pO2xldCBjPXtmaXJzdFdlZWtDb250YWluc0RhdGU6bCx3ZWVrU3RhcnRzT246ZCxsb2NhbGU6bn0scD1bbmV3IFhLKHI/LmluLHQpXSx1PWUubWF0Y2goa2dhKS5tYXAoZz0+e2xldCB5PWdbMF07aWYoeSBpbiB1MCl7bGV0IGs9dTBbeV07cmV0dXJuIGsoZyxuLmZvcm1hdExvbmcpfXJldHVybiBnfSkuam9pbigiIikubWF0Y2goTWdhKSxtPVtdO2ZvcihsZXQgZyBvZiB1KXshcj8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZGSyhnKSYmaDkoZyxlLGEpLCFyPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZPSyhnKSYmaDkoZyxlLGEpO2xldCB5PWdbMF0saz1JWlt5XTtpZihrKXtsZXR7aW5jb21wYXRpYmxlVG9rZW5zOkN9PWs7aWYoQXJyYXkuaXNBcnJheShDKSl7bGV0IF89bS5maW5kKHo9PkMuaW5jbHVkZXMoei50b2tlbil8fHoudG9rZW49PT15KTtpZihfKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke18uZnVsbFRva2VufVxgIGFuZCBcYCR7Z31cYCBhdCB0aGUgc2FtZSB0aW1lYCl9ZWxzZSBpZihrLmluY29tcGF0aWJsZVRva2Vucz09PSIqIiYmbS5sZW5ndGg+MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlIGZvcm1hdCBzdHJpbmcgbXVzdG4ndCBjb250YWluIFxgJHtnfVxgIGFuZCBhbnkgb3RoZXIgdG9rZW4gYXQgdGhlIHNhbWUgdGltZWApO20ucHVzaCh7dG9rZW46eSxmdWxsVG9rZW46Z30pO2xldCBOPWsucnVuKGEsZyxuLm1hdGNoLGMpO2lmKCFOKXJldHVybiBpKCk7cC5wdXNoKE4uc2V0dGVyKSxhPU4ucmVzdH1lbHNle2lmKHkubWF0Y2goX2dhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK3krImAiKTtpZihnPT09IicnIj9nPSInIjp5PT09IiciJiYoZz1UZ2EoZykpLGEuaW5kZXhPZihnKT09PTApYT1hLnNsaWNlKGcubGVuZ3RoKTtlbHNlIHJldHVybiBpKCl9fWlmKGEubGVuZ3RoPjAmJkNnYS50ZXN0KGEpKXJldHVybiBpKCk7bGV0IHY9cC5tYXAoZz0+Zy5wcmlvcml0eSkuc29ydCgoZyx5KT0+eS1nKS5maWx0ZXIoKGcseSxrKT0+ay5pbmRleE9mKGcpPT09eSkubWFwKGc9PnAuZmlsdGVyKHk9PnkucHJpb3JpdHk9PT1nKS5zb3J0KCh5LGspPT5rLnN1YlByaW9yaXR5LXkuc3ViUHJpb3JpdHkpKS5tYXAoZz0+Z1swXSkseD1rZSh0LHI/LmluKTtpZihpc05hTigreCkpcmV0dXJuIGkoKTtsZXQgYj17fTtmb3IobGV0IGcgb2Ygdil7aWYoIWcudmFsaWRhdGUoeCxjKSlyZXR1cm4gaSgpO2xldCB5PWcuc2V0KHgsYixjKTtBcnJheS5pc0FycmF5KHkpPyh4PXlbMF0sT2JqZWN0LmFzc2lnbihiLHlbMV0pKTp4PXl9cmV0dXJuIHh9ZnVuY3Rpb24gVGdhKGEpe3JldHVybiBhLm1hdGNoKFNnYSlbMV0ucmVwbGFjZSh6Z2EsIiciKX12YXIgTWdhLGtnYSxTZ2EsemdhLENnYSxfZ2EsbzdyLFcyZT1mKCgpPT57bTMoKTskMmUoKTtEMmUoKTskdCgpO08yZSgpO0hlKCk7cTJlKCk7ZTF0KCk7TWdhPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csa2dhPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLFNnYT0vXicoW15dKj8pJz8kLyx6Z2E9LycnL2csQ2dhPS9cUy8sX2dhPS9bYS16QS1aXS87cyhOWiwicGFyc2UiKTtzKFRnYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7bzdyPU5afSk7ZnVuY3Rpb24gdDF0KGEsZSx0KXtyZXR1cm4gSnMoTlooYSxlLG5ldyBEYXRlLHQpKX12YXIgdTdyLGExdD1mKCgpPT57a2woKTtXMmUoKTtzKHQxdCwiaXNNYXRjaCIpO3U3cj10MXR9KTtmdW5jdGlvbiByMXQoYSxlKXtyZXR1cm4ga2UoYSxlPy5pbikuZ2V0RGF5KCk9PT0xfXZhciBtN3IsczF0PWYoKCk9PntIZSgpO3MocjF0LCJpc01vbmRheSIpO203cj1yMXR9KTtmdW5jdGlvbiBpMXQoYSl7cmV0dXJuK2tlKGEpPERhdGUubm93KCl9dmFyIHg3cixvMXQ9ZigoKT0+e0hlKCk7cyhpMXQsImlzUGFzdCIpO3g3cj1pMXR9KTtmdW5jdGlvbiB2OShhLGUpe2xldCB0PWtlKGEsZT8uaW4pO3JldHVybiB0LnNldE1pbnV0ZXMoMCwwLDApLHR9dmFyIGs3cixHMmU9ZigoKT0+e0hlKCk7cyh2OSwic3RhcnRPZkhvdXIiKTtrN3I9djl9KTtmdW5jdGlvbiBSWihhLGUsdCl7bGV0W3IsaV09VHQodD8uaW4sYSxlKTtyZXR1cm4rdjkocik9PSt2OShpKX12YXIgVDdyLFkyZT1mKCgpPT57VWEoKTtHMmUoKTtzKFJaLCJpc1NhbWVIb3VyIik7VDdyPVJafSk7ZnVuY3Rpb24gTGgoYSxlLHQpe2xldFtyLGldPVR0KHQ/LmluLGEsZSk7cmV0dXJuK2VyKHIsdCk9PStlcihpLHQpfXZhciBQN3IsT1o9ZigoKT0+e1VhKCk7aTEoKTtzKExoLCJpc1NhbWVXZWVrIik7UDdyPUxofSk7ZnVuY3Rpb24gRlooYSxlLHQpe3JldHVybiBMaChhLGUsey4uLnQsd2Vla1N0YXJ0c09uOjF9KX12YXIgUjdyLEsyZT1mKCgpPT57T1ooKTtzKEZaLCJpc1NhbWVJU09XZWVrIik7UjdyPUZafSk7ZnVuY3Rpb24gbjF0KGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpO3JldHVybitqbyhyKT09K2pvKGkpfXZhciBxN3IsbDF0PWYoKCk9Pnt1aCgpO1VhKCk7cyhuMXQsImlzU2FtZUlTT1dlZWtZZWFyIik7cTdyPW4xdH0pO2Z1bmN0aW9uIHg5KGEsZSl7bGV0IHQ9a2UoYSxlPy5pbik7cmV0dXJuIHQuc2V0U2Vjb25kcygwLDApLHR9dmFyIFc3cixaMmU9ZigoKT0+e0hlKCk7cyh4OSwic3RhcnRPZk1pbnV0ZSIpO1c3cj14OX0pO2Z1bmN0aW9uIEJaKGEsZSl7cmV0dXJuK3g5KGEpPT0reDkoZSl9dmFyIFo3cixYMmU9ZigoKT0+e1oyZSgpO3MoQlosImlzU2FtZU1pbnV0ZSIpO1o3cj1CWn0pO2Z1bmN0aW9uIEhaKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpO3JldHVybiByLmdldEZ1bGxZZWFyKCk9PT1pLmdldEZ1bGxZZWFyKCkmJnIuZ2V0TW9udGgoKT09PWkuZ2V0TW9udGgoKX12YXIgZTlyLFEyZT1mKCgpPT57VWEoKTtzKEhaLCJpc1NhbWVNb250aCIpO2U5cj1IWn0pO2Z1bmN0aW9uIHFaKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpO3JldHVybitrMihyKT09K2syKGkpfXZhciBpOXIsSjJlPWYoKCk9PntVYSgpO1RLKCk7cyhxWiwiaXNTYW1lUXVhcnRlciIpO2k5cj1xWn0pO2Z1bmN0aW9uIHk5KGEsZSl7bGV0IHQ9a2UoYSxlPy5pbik7cmV0dXJuIHQuc2V0TWlsbGlzZWNvbmRzKDApLHR9dmFyIGM5cixlbGU9ZigoKT0+e0hlKCk7cyh5OSwic3RhcnRPZlNlY29uZCIpO2M5cj15OX0pO2Z1bmN0aW9uIFZaKGEsZSl7cmV0dXJuK3k5KGEpPT0reTkoZSl9dmFyIGY5cix0bGU9ZigoKT0+e2VsZSgpO3MoVlosImlzU2FtZVNlY29uZCIpO2Y5cj1WWn0pO2Z1bmN0aW9uIGpaKGEsZSx0KXtsZXRbcixpXT1UdCh0Py5pbixhLGUpO3JldHVybiByLmdldEZ1bGxZZWFyKCk9PT1pLmdldEZ1bGxZZWFyKCl9dmFyIGI5cixhbGU9ZigoKT0+e1VhKCk7cyhqWiwiaXNTYW1lWWVhciIpO2I5cj1qWn0pO2Z1bmN0aW9uIGMxdChhLGUpe3JldHVybiBSWihrZShhLGU/LmluKSxjYShlPy5pbnx8YSkpfXZhciBrOXIsZDF0PWYoKCk9PntUcygpO1kyZSgpO0hlKCk7cyhjMXQsImlzVGhpc0hvdXIiKTtrOXI9YzF0fSk7ZnVuY3Rpb24gdTF0KGEsZSl7cmV0dXJuIEZaKEZlKGU/LmlufHxhLGEpLGNhKGU/LmlufHxhKSl9dmFyIEw5cixwMXQ9ZigoKT0+eyR0KCk7VHMoKTtLMmUoKTtzKHUxdCwiaXNUaGlzSVNPV2VlayIpO0w5cj11MXR9KTtmdW5jdGlvbiBmMXQoYSl7cmV0dXJuIEJaKGEsY2EoYSkpfXZhciBFOXIsaDF0PWYoKCk9PntUcygpO1gyZSgpO3MoZjF0LCJpc1RoaXNNaW51dGUiKTtFOXI9ZjF0fSk7ZnVuY3Rpb24gbTF0KGEsZSl7cmV0dXJuIEhaKEZlKGU/LmlufHxhLGEpLGNhKGU/LmlufHxhKSl9dmFyIEI5cixnMXQ9ZigoKT0+eyR0KCk7VHMoKTtRMmUoKTtzKG0xdCwiaXNUaGlzTW9udGgiKTtCOXI9bTF0fSk7ZnVuY3Rpb24gYjF0KGEsZSl7cmV0dXJuIHFaKEZlKGU/LmlufHxhLGEpLGNhKGU/LmlufHxhKSl9dmFyIFc5cix2MXQ9ZigoKT0+eyR0KCk7VHMoKTtKMmUoKTtzKGIxdCwiaXNUaGlzUXVhcnRlciIpO1c5cj1iMXR9KTtmdW5jdGlvbiB4MXQoYSl7cmV0dXJuIFZaKGEsY2EoYSkpfXZhciBYOXIseTF0PWYoKCk9PntUcygpO3RsZSgpO3MoeDF0LCJpc1RoaXNTZWNvbmQiKTtYOXI9eDF0fSk7ZnVuY3Rpb24gdzF0KGEsZSl7cmV0dXJuIExoKEZlKGU/LmlufHxhLGEpLGNhKGU/LmlufHxhKSxlKX12YXIgcmdyLE0xdD1mKCgpPT57JHQoKTtUcygpO09aKCk7cyh3MXQsImlzVGhpc1dlZWsiKTtyZ3I9dzF0fSk7ZnVuY3Rpb24gazF0KGEsZSl7cmV0dXJuIGpaKEZlKGU/LmlufHxhLGEpLGNhKGU/LmlufHxhKSl9dmFyIGNncixTMXQ9ZigoKT0+eyR0KCk7VHMoKTthbGUoKTtzKGsxdCwiaXNUaGlzWWVhciIpO2Nncj1rMXR9KTtmdW5jdGlvbiB6MXQoYSxlKXtyZXR1cm4ga2UoYSxlPy5pbikuZ2V0RGF5KCk9PT00fXZhciBmZ3IsQzF0PWYoKCk9PntIZSgpO3MoejF0LCJpc1RodXJzZGF5Iik7ZmdyPXoxdH0pO2Z1bmN0aW9uIF8xdChhLGUpe3JldHVybiB5MihGZShlPy5pbnx8YSxhKSxjYShlPy5pbnx8YSkpfXZhciB4Z3IsVDF0PWYoKCk9PnskdCgpO1RzKCk7aGgoKTtzKF8xdCwiaXNUb2RheSIpO3hncj1fMXR9KTtmdW5jdGlvbiBMMXQoYSxlKXtyZXR1cm4geTIoYSxfcyhjYShlPy5pbnx8YSksMSksZSl9dmFyIHpnciwkMXQ9ZigoKT0+e20yKCk7VHMoKTtoaCgpO3MoTDF0LCJpc1RvbW9ycm93Iik7emdyPUwxdH0pO2Z1bmN0aW9uIEQxdChhLGUpe3JldHVybiBrZShhLGU/LmluKS5nZXREYXkoKT09PTJ9dmFyIExncixBMXQ9ZigoKT0+e0hlKCk7cyhEMXQsImlzVHVlc2RheSIpO0xncj1EMXR9KTtmdW5jdGlvbiBQMXQoYSxlKXtyZXR1cm4ga2UoYSxlPy5pbikuZ2V0RGF5KCk9PT0zfXZhciBQZ3IsRTF0PWYoKCk9PntIZSgpO3MoUDF0LCJpc1dlZG5lc2RheSIpO1Bncj1QMXR9KTtmdW5jdGlvbiBJMXQoYSxlLHQpe2xldCByPStrZShhLHQ/LmluKSxbaSxvXT1bK2tlKGUuc3RhcnQsdD8uaW4pLCtrZShlLmVuZCx0Py5pbildLnNvcnQoKG4sbCk9Pm4tbCk7cmV0dXJuIHI+PWkmJnI8PW99dmFyIFJncixOMXQ9ZigoKT0+e0hlKCk7cyhJMXQsImlzV2l0aGluSW50ZXJ2YWwiKTtSZ3I9STF0fSk7ZnVuY3Rpb24gaDAoYSxlLHQpe3JldHVybiBfcyhhLC1lLHQpfXZhciBIZ3Isdzk9ZigoKT0+e20yKCk7cyhoMCwic3ViRGF5cyIpO0hncj1oMH0pO2Z1bmN0aW9uIFIxdChhLGUpe3JldHVybiB5MihGZShlPy5pbnx8YSxhKSxoMChjYShlPy5pbnx8YSksMSkpfXZhciBZZ3IsTzF0PWYoKCk9PnskdCgpO1RzKCk7aGgoKTt3OSgpO3MoUjF0LCJpc1llc3RlcmRheSIpO1lncj1SMXR9KTtmdW5jdGlvbiBGMXQoYSxlKXtsZXQgdD1rZShhLGU/LmluKSxyPXQuZ2V0RnVsbFllYXIoKSxpPTkrTWF0aC5mbG9vcihyLzEwKSoxMDtyZXR1cm4gdC5zZXRGdWxsWWVhcihpKzEsMCwwKSx0LnNldEhvdXJzKDAsMCwwLDApLGtlKHQsZT8uaW4pfXZhciBRZ3IsQjF0PWYoKCk9PntIZSgpO3MoRjF0LCJsYXN0RGF5T2ZEZWNhZGUiKTtRZ3I9RjF0fSk7ZnVuY3Rpb24gVVooYSxlKXtsZXQgdD1xYSgpLHI9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/dC53ZWVrU3RhcnRzT24/P3QubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsaT1rZShhLGU/LmluKSxvPWkuZ2V0RGF5KCksbj0obzxyPy03OjApKzYtKG8tcik7cmV0dXJuIGkuc2V0SG91cnMoMCwwLDAsMCksaS5zZXREYXRlKGkuZ2V0RGF0ZSgpK24pLGl9dmFyIHJicixybGU9ZigoKT0+e3dpKCk7SGUoKTtzKFVaLCJsYXN0RGF5T2ZXZWVrIik7cmJyPVVafSk7ZnVuY3Rpb24gSDF0KGEsZSl7cmV0dXJuIFVaKGEsey4uLmUsd2Vla1N0YXJ0c09uOjF9KX12YXIgbmJyLHExdD1mKCgpPT57cmxlKCk7cyhIMXQsImxhc3REYXlPZklTT1dlZWsiKTtuYnI9SDF0fSk7ZnVuY3Rpb24gVjF0KGEsZSl7bGV0IHQ9amkoYSxlKSxyPUZlKGU/LmlufHxhLDApO3Iuc2V0RnVsbFllYXIodCsxLDAsNCksci5zZXRIb3VycygwLDAsMCwwKTtsZXQgaT1jcyhyLGUpO3JldHVybiBpLnNldERhdGUoaS5nZXREYXRlKCktMSksaX12YXIgZmJyLGoxdD1mKCgpPT57JHQoKTtpMCgpO3YyKCk7cyhWMXQsImxhc3REYXlPZklTT1dlZWtZZWFyIik7ZmJyPVYxdH0pO2Z1bmN0aW9uIFUxdChhLGUpe2xldCB0PWtlKGEsZT8uaW4pLHI9dC5nZXRNb250aCgpLGk9ci1yJTMrMztyZXR1cm4gdC5zZXRNb250aChpLDApLHQuc2V0SG91cnMoMCwwLDAsMCksdH12YXIgYmJyLFcxdD1mKCgpPT57SGUoKTtzKFUxdCwibGFzdERheU9mUXVhcnRlciIpO2Jicj1VMXR9KTtmdW5jdGlvbiBHMXQoYSxlKXtsZXQgdD1rZShhLGU/LmluKSxyPXQuZ2V0RnVsbFllYXIoKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihyKzEsMCwwKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9dmFyIHdicixZMXQ9ZigoKT0+e0hlKCk7cyhHMXQsImxhc3REYXlPZlllYXIiKTt3YnI9RzF0fSk7ZnVuY3Rpb24gSzF0KGEsZSl7bGV0IHQ9a2UoYSk7aWYoIUpzKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1lLm1hdGNoKExnYSk7cmV0dXJuIHI/ci5tYXAobz0+e2lmKG89PT0iJyciKXJldHVybiInIjtsZXQgbj1vWzBdO2lmKG49PT0iJyIpcmV0dXJuIFBnYShvKTtsZXQgbD1Vb1tuXTtpZihsKXJldHVybiBsKHQsbyk7aWYobi5tYXRjaChBZ2EpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIrbisiYCIpO3JldHVybiBvfSkuam9pbigiIik6IiJ9ZnVuY3Rpb24gUGdhKGEpe2xldCBlPWEubWF0Y2goJGdhKTtyZXR1cm4gZT9lWzFdLnJlcGxhY2UoRGdhLCInIik6YX12YXIgTGdhLCRnYSxEZ2EsQWdhLF9icixaMXQ9ZigoKT0+e0wyZSgpO2tsKCk7SGUoKTtMZ2E9LyhcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csJGdhPS9eJyhbXl0qPyknPyQvLERnYT0vJycvZyxBZ2E9L1thLXpBLVpdLztzKEsxdCwibGlnaHRGb3JtYXQiKTtzKFBnYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7X2JyPUsxdH0pO2Z1bmN0aW9uIFgxdCh7eWVhcnM6YSxtb250aHM6ZSx3ZWVrczp0LGRheXM6cixob3VyczppLG1pbnV0ZXM6byxzZWNvbmRzOm59KXtsZXQgbD0wO2EmJihsKz1hKjM2NS4yNDI1KSxlJiYobCs9ZSooMzY1LjI0MjUvMTIpKSx0JiYobCs9dCo3KSxyJiYobCs9cik7bGV0IGQ9bCoyNCo2MCo2MDtyZXR1cm4gaSYmKGQrPWkqNjAqNjApLG8mJihkKz1vKjYwKSxuJiYoZCs9biksTWF0aC50cnVuYyhkKjFlMyl9dmFyIERicixRMXQ9ZigoKT0+e0p0KCk7cyhYMXQsIm1pbGxpc2Vjb25kcyIpO0Ricj1YMXR9KTtmdW5jdGlvbiBKMXQoYSl7bGV0IGU9YS9WbztyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgSWJyLGUydD1mKCgpPT57SnQoKTtzKEoxdCwibWlsbGlzZWNvbmRzVG9Ib3VycyIpO0licj1KMXR9KTtmdW5jdGlvbiB0MnQoYSl7bGV0IGU9YS95aTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgRmJyLGEydD1mKCgpPT57SnQoKTtzKHQydCwibWlsbGlzZWNvbmRzVG9NaW51dGVzIik7RmJyPXQydH0pO2Z1bmN0aW9uIHIydChhKXtsZXQgZT1hL25oO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBWYnIsczJ0PWYoKCk9PntKdCgpO3MocjJ0LCJtaWxsaXNlY29uZHNUb1NlY29uZHMiKTtWYnI9cjJ0fSk7ZnVuY3Rpb24gaTJ0KGEpe2xldCBlPWEvWlk7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIEdicixvMnQ9ZigoKT0+e0p0KCk7cyhpMnQsIm1pbnV0ZXNUb0hvdXJzIik7R2JyPWkydH0pO2Z1bmN0aW9uIG4ydChhKXtyZXR1cm4gTWF0aC50cnVuYyhhKnlpKX12YXIgWGJyLGwydD1mKCgpPT57SnQoKTtzKG4ydCwibWludXRlc1RvTWlsbGlzZWNvbmRzIik7WGJyPW4ydH0pO2Z1bmN0aW9uIGMydChhKXtyZXR1cm4gTWF0aC50cnVuYyhhKmNoKX12YXIgdHZyLGQydD1mKCgpPT57SnQoKTtzKGMydCwibWludXRlc1RvU2Vjb25kcyIpO3R2cj1jMnR9KTtmdW5jdGlvbiB1MnQoYSl7bGV0IGU9YS9YWTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgaXZyLHAydD1mKCgpPT57SnQoKTtzKHUydCwibW9udGhzVG9RdWFydGVycyIpO2l2cj11MnR9KTtmdW5jdGlvbiBmMnQoYSl7bGV0IGU9YS9RWTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgY3ZyLGgydD1mKCgpPT57SnQoKTtzKGYydCwibW9udGhzVG9ZZWFycyIpO2N2cj1mMnR9KTtmdW5jdGlvbiB6aShhLGUsdCl7bGV0IHI9ZS1wMChhLHQpO3JldHVybiByPD0wJiYocis9NyksX3MoYSxyLHQpfXZhciBodnIsemw9ZigoKT0+e20yKCk7ZzkoKTtzKHppLCJuZXh0RGF5Iik7aHZyPXppfSk7ZnVuY3Rpb24gbTJ0KGEsZSl7cmV0dXJuIHppKGEsNSxlKX12YXIgdnZyLGcydD1mKCgpPT57emwoKTtzKG0ydCwibmV4dEZyaWRheSIpO3Z2cj1tMnR9KTtmdW5jdGlvbiBiMnQoYSxlKXtyZXR1cm4gemkoYSwxLGUpfXZhciBNdnIsdjJ0PWYoKCk9Pnt6bCgpO3MoYjJ0LCJuZXh0TW9uZGF5Iik7TXZyPWIydH0pO2Z1bmN0aW9uIHgydChhLGUpe3JldHVybiB6aShhLDYsZSl9dmFyIEN2cix5MnQ9ZigoKT0+e3psKCk7cyh4MnQsIm5leHRTYXR1cmRheSIpO0N2cj14MnR9KTtmdW5jdGlvbiB3MnQoYSxlKXtyZXR1cm4gemkoYSwwLGUpfXZhciAkdnIsTTJ0PWYoKCk9Pnt6bCgpO3ModzJ0LCJuZXh0U3VuZGF5Iik7JHZyPXcydH0pO2Z1bmN0aW9uIGsydChhLGUpe3JldHVybiB6aShhLDQsZSl9dmFyIEV2cixTMnQ9ZigoKT0+e3psKCk7cyhrMnQsIm5leHRUaHVyc2RheSIpO0V2cj1rMnR9KTtmdW5jdGlvbiB6MnQoYSxlKXtyZXR1cm4gemkoYSwyLGUpfXZhciBPdnIsQzJ0PWYoKCk9Pnt6bCgpO3MoejJ0LCJuZXh0VHVlc2RheSIpO092cj16MnR9KTtmdW5jdGlvbiBfMnQoYSxlKXtyZXR1cm4gemkoYSwzLGUpfXZhciBxdnIsVDJ0PWYoKCk9Pnt6bCgpO3MoXzJ0LCJuZXh0V2VkbmVzZGF5Iik7cXZyPV8ydH0pO2Z1bmN0aW9uICQydChhLGUpe2xldCB0PXMoKCk9PkZlKGU/LmluLE5hTiksImludmFsaWREYXRlIikscj1lPy5hZGRpdGlvbmFsRGlnaXRzPz8yLGk9UmdhKGEpLG87aWYoaS5kYXRlKXtsZXQgYz1PZ2EoaS5kYXRlLHIpO289RmdhKGMucmVzdERhdGVTdHJpbmcsYy55ZWFyKX1pZighb3x8aXNOYU4oK28pKXJldHVybiB0KCk7bGV0IG49K28sbD0wLGQ7aWYoaS50aW1lJiYobD1CZ2EoaS50aW1lKSxpc05hTihsKSkpcmV0dXJuIHQoKTtpZihpLnRpbWV6b25lKXtpZihkPUhnYShpLnRpbWV6b25lKSxpc05hTihkKSlyZXR1cm4gdCgpfWVsc2V7bGV0IGM9bmV3IERhdGUobitsKSxwPWtlKDAsZT8uaW4pO3JldHVybiBwLnNldEZ1bGxZZWFyKGMuZ2V0VVRDRnVsbFllYXIoKSxjLmdldFVUQ01vbnRoKCksYy5nZXRVVENEYXRlKCkpLHAuc2V0SG91cnMoYy5nZXRVVENIb3VycygpLGMuZ2V0VVRDTWludXRlcygpLGMuZ2V0VVRDU2Vjb25kcygpLGMuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpLHB9cmV0dXJuIGtlKG4rbCtkLGU/LmluKX1mdW5jdGlvbiBSZ2EoYSl7bGV0IGU9e30sdD1hLnNwbGl0KFdaLmRhdGVUaW1lRGVsaW1pdGVyKSxyO2lmKHQubGVuZ3RoPjIpcmV0dXJuIGU7aWYoLzovLnRlc3QodFswXSk/cj10WzBdOihlLmRhdGU9dFswXSxyPXRbMV0sV1oudGltZVpvbmVEZWxpbWl0ZXIudGVzdChlLmRhdGUpJiYoZS5kYXRlPWEuc3BsaXQoV1oudGltZVpvbmVEZWxpbWl0ZXIpWzBdLHI9YS5zdWJzdHIoZS5kYXRlLmxlbmd0aCxhLmxlbmd0aCkpKSxyKXtsZXQgaT1XWi50aW1lem9uZS5leGVjKHIpO2k/KGUudGltZT1yLnJlcGxhY2UoaVsxXSwiIiksZS50aW1lem9uZT1pWzFdKTplLnRpbWU9cn1yZXR1cm4gZX1mdW5jdGlvbiBPZ2EoYSxlKXtsZXQgdD1uZXcgUmVnRXhwKCJeKD86KFxcZHs0fXxbKy1dXFxkeyIrKDQrZSkrIn0pfChcXGR7Mn18WystXVxcZHsiKygyK2UpKyJ9KSQpIikscj1hLm1hdGNoKHQpO2lmKCFyKXJldHVybnt5ZWFyOk5hTixyZXN0RGF0ZVN0cmluZzoiIn07bGV0IGk9clsxXT9wYXJzZUludChyWzFdKTpudWxsLG89clsyXT9wYXJzZUludChyWzJdKTpudWxsO3JldHVybnt5ZWFyOm89PT1udWxsP2k6byoxMDAscmVzdERhdGVTdHJpbmc6YS5zbGljZSgoclsxXXx8clsyXSkubGVuZ3RoKX19ZnVuY3Rpb24gRmdhKGEsZSl7aWYoZT09PW51bGwpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IHQ9YS5tYXRjaChFZ2EpO2lmKCF0KXJldHVybiBuZXcgRGF0ZShOYU4pO2xldCByPSEhdFs0XSxpPU05KHRbMV0pLG89TTkodFsyXSktMSxuPU05KHRbM10pLGw9TTkodFs0XSksZD1NOSh0WzVdKS0xO2lmKHIpcmV0dXJuIFdnYShlLGwsZCk/cWdhKGUsbCxkKTpuZXcgRGF0ZShOYU4pO3tsZXQgYz1uZXcgRGF0ZSgwKTtyZXR1cm4hamdhKGUsbyxuKXx8IVVnYShlLGkpP25ldyBEYXRlKE5hTik6KGMuc2V0VVRDRnVsbFllYXIoZSxvLE1hdGgubWF4KGksbikpLGMpfX1mdW5jdGlvbiBNOShhKXtyZXR1cm4gYT9wYXJzZUludChhKToxfWZ1bmN0aW9uIEJnYShhKXtsZXQgZT1hLm1hdGNoKElnYSk7aWYoIWUpcmV0dXJuIE5hTjtsZXQgdD1zbGUoZVsxXSkscj1zbGUoZVsyXSksaT1zbGUoZVszXSk7cmV0dXJuIEdnYSh0LHIsaSk/dCpWbytyKnlpK2kqMWUzOk5hTn1mdW5jdGlvbiBzbGUoYSl7cmV0dXJuIGEmJnBhcnNlRmxvYXQoYS5yZXBsYWNlKCIsIiwiLiIpKXx8MH1mdW5jdGlvbiBIZ2EoYSl7aWYoYT09PSJaIilyZXR1cm4gMDtsZXQgZT1hLm1hdGNoKE5nYSk7aWYoIWUpcmV0dXJuIDA7bGV0IHQ9ZVsxXT09PSIrIj8tMToxLHI9cGFyc2VJbnQoZVsyXSksaT1lWzNdJiZwYXJzZUludChlWzNdKXx8MDtyZXR1cm4gWWdhKHIsaSk/dCoocipWbytpKnlpKTpOYU59ZnVuY3Rpb24gcWdhKGEsZSx0KXtsZXQgcj1uZXcgRGF0ZSgwKTtyLnNldFVUQ0Z1bGxZZWFyKGEsMCw0KTtsZXQgaT1yLmdldFVUQ0RheSgpfHw3LG89KGUtMSkqNyt0KzEtaTtyZXR1cm4gci5zZXRVVENEYXRlKHIuZ2V0VVRDRGF0ZSgpK28pLHJ9ZnVuY3Rpb24gTDJ0KGEpe3JldHVybiBhJTQwMD09PTB8fGElND09PTAmJmElMTAwIT09MH1mdW5jdGlvbiBqZ2EoYSxlLHQpe3JldHVybiBlPj0wJiZlPD0xMSYmdD49MSYmdDw9KFZnYVtlXXx8KEwydChhKT8yOToyOCkpfWZ1bmN0aW9uIFVnYShhLGUpe3JldHVybiBlPj0xJiZlPD0oTDJ0KGEpPzM2NjozNjUpfWZ1bmN0aW9uIFdnYShhLGUsdCl7cmV0dXJuIGU+PTEmJmU8PTUzJiZ0Pj0wJiZ0PD02fWZ1bmN0aW9uIEdnYShhLGUsdCl7cmV0dXJuIGE9PT0yND9lPT09MCYmdD09PTA6dD49MCYmdDw2MCYmZT49MCYmZTw2MCYmYT49MCYmYTwyNX1mdW5jdGlvbiBZZ2EoYSxlKXtyZXR1cm4gZT49MCYmZTw9NTl9dmFyIFdaLEVnYSxJZ2EsTmdhLFZnYSxZdnIsRDJ0PWYoKCk9PntKdCgpOyR0KCk7SGUoKTtzKCQydCwicGFyc2VJU08iKTtXWj17ZGF0ZVRpbWVEZWxpbWl0ZXI6L1tUIF0vLHRpbWVab25lRGVsaW1pdGVyOi9bWiBdL2ksdGltZXpvbmU6LyhbWistXS4qKSQvfSxFZ2E9L14tPyg/OihcZHszfSl8KFxkezJ9KSg/Oi0/KFxkezJ9KSk/fFcoXGR7Mn0pKD86LT8oXGR7MX0pKT98KSQvLElnYT0vXihcZHsyfSg/OlsuLF1cZCopPykoPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/JC8sTmdhPS9eKFsrLV0pKFxkezJ9KSg/Ojo/KFxkezJ9KSk/JC87cyhSZ2EsInNwbGl0RGF0ZVN0cmluZyIpO3MoT2dhLCJwYXJzZVllYXIiKTtzKEZnYSwicGFyc2VEYXRlIik7cyhNOSwicGFyc2VEYXRlVW5pdCIpO3MoQmdhLCJwYXJzZVRpbWUiKTtzKHNsZSwicGFyc2VUaW1lVW5pdCIpO3MoSGdhLCJwYXJzZVRpbWV6b25lIik7cyhxZ2EsImRheU9mSVNPV2Vla1llYXIiKTtWZ2E9WzMxLG51bGwsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO3MoTDJ0LCJpc0xlYXBZZWFySW5kZXgiKTtzKGpnYSwidmFsaWRhdGVEYXRlIik7cyhVZ2EsInZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSIpO3MoV2dhLCJ2YWxpZGF0ZVdlZWtEYXRlIik7cyhHZ2EsInZhbGlkYXRlVGltZSIpO3MoWWdhLCJ2YWxpZGF0ZVRpbWV6b25lIik7WXZyPSQydH0pO2Z1bmN0aW9uIEEydChhLGUpe2xldCB0PWEubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiB0P2tlKERhdGUuVVRDKCt0WzFdLCt0WzJdLTEsK3RbM10sK3RbNF0tKCt0WzldfHwwKSoodFs4XT09Ii0iPy0xOjEpLCt0WzVdLSgrdFsxMF18fDApKih0WzhdPT0iLSI/LTE6MSksK3RbNl0sKygodFs3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksZT8uaW4pOmtlKE5hTixlPy5pbil9dmFyIFF2cixQMnQ9ZigoKT0+e0hlKCk7cyhBMnQsInBhcnNlSlNPTiIpO1F2cj1BMnR9KTtmdW5jdGlvbiBDaShhLGUsdCl7bGV0IHI9cDAoYSx0KS1lO3JldHVybiByPD0wJiYocis9NyksaDAoYSxyLHQpfXZhciByeHIsQ2w9ZigoKT0+e2c5KCk7dzkoKTtzKENpLCJwcmV2aW91c0RheSIpO3J4cj1DaX0pO2Z1bmN0aW9uIEUydChhLGUpe3JldHVybiBDaShhLDUsZSl9dmFyIG54cixJMnQ9ZigoKT0+e0NsKCk7cyhFMnQsInByZXZpb3VzRnJpZGF5Iik7bnhyPUUydH0pO2Z1bmN0aW9uIE4ydChhLGUpe3JldHVybiBDaShhLDEsZSl9dmFyIHV4cixSMnQ9ZigoKT0+e0NsKCk7cyhOMnQsInByZXZpb3VzTW9uZGF5Iik7dXhyPU4ydH0pO2Z1bmN0aW9uIE8ydChhLGUpe3JldHVybiBDaShhLDYsZSl9dmFyIG14cixGMnQ9ZigoKT0+e0NsKCk7cyhPMnQsInByZXZpb3VzU2F0dXJkYXkiKTtteHI9TzJ0fSk7ZnVuY3Rpb24gQjJ0KGEsZSl7cmV0dXJuIENpKGEsMCxlKX12YXIgeHhyLEgydD1mKCgpPT57Q2woKTtzKEIydCwicHJldmlvdXNTdW5kYXkiKTt4eHI9QjJ0fSk7ZnVuY3Rpb24gcTJ0KGEsZSl7cmV0dXJuIENpKGEsNCxlKX12YXIga3hyLFYydD1mKCgpPT57Q2woKTtzKHEydCwicHJldmlvdXNUaHVyc2RheSIpO2t4cj1xMnR9KTtmdW5jdGlvbiBqMnQoYSxlKXtyZXR1cm4gQ2koYSwyLGUpfXZhciBfeHIsVTJ0PWYoKCk9PntDbCgpO3MoajJ0LCJwcmV2aW91c1R1ZXNkYXkiKTtfeHI9ajJ0fSk7ZnVuY3Rpb24gVzJ0KGEsZSl7cmV0dXJuIENpKGEsMyxlKX12YXIgRHhyLEcydD1mKCgpPT57Q2woKTtzKFcydCwicHJldmlvdXNXZWRuZXNkYXkiKTtEeHI9VzJ0fSk7ZnVuY3Rpb24gWTJ0KGEpe3JldHVybiBNYXRoLnRydW5jKGEqWFkpfXZhciBJeHIsSzJ0PWYoKCk9PntKdCgpO3MoWTJ0LCJxdWFydGVyc1RvTW9udGhzIik7SXhyPVkydH0pO2Z1bmN0aW9uIFoydChhKXtsZXQgZT1hL0pZO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBGeHIsWDJ0PWYoKCk9PntKdCgpO3MoWjJ0LCJxdWFydGVyc1RvWWVhcnMiKTtGeHI9WjJ0fSk7ZnVuY3Rpb24gUTJ0KGEsZSl7bGV0IHQ9ZT8ubmVhcmVzdFRvPz8xO2lmKHQ8MXx8dD4xMilyZXR1cm4gRmUoZT8uaW58fGEsTmFOKTtsZXQgcj1rZShhLGU/LmluKSxpPXIuZ2V0TWludXRlcygpLzYwLG89ci5nZXRTZWNvbmRzKCkvNjAvNjAsbj1yLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MC82MCxsPXIuZ2V0SG91cnMoKStpK28rbixkPWU/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLHA9a2koZCkobC90KSp0O3JldHVybiByLnNldEhvdXJzKHAsMCwwLDApLHJ9dmFyIFV4cixKMnQ9ZigoKT0+e1NsKCk7JHQoKTtIZSgpO3MoUTJ0LCJyb3VuZFRvTmVhcmVzdEhvdXJzIik7VXhyPVEydH0pO2Z1bmN0aW9uIGVsdChhLGUpe2xldCB0PWU/Lm5lYXJlc3RUbz8/MTtpZih0PDF8fHQ+MzApcmV0dXJuIEZlKGEsTmFOKTtsZXQgcj1rZShhLGU/LmluKSxpPXIuZ2V0U2Vjb25kcygpLzYwLG89ci5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAsbj1yLmdldE1pbnV0ZXMoKStpK28sbD1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIixjPWtpKGwpKG4vdCkqdDtyZXR1cm4gci5zZXRNaW51dGVzKGMsMCwwKSxyfXZhciBYeHIsdGx0PWYoKCk9PntTbCgpOyR0KCk7SGUoKTtzKGVsdCwicm91bmRUb05lYXJlc3RNaW51dGVzIik7WHhyPWVsdH0pO2Z1bmN0aW9uIGFsdChhKXtsZXQgZT1hL2MzO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciB0eXIscmx0PWYoKCk9PntKdCgpO3MoYWx0LCJzZWNvbmRzVG9Ib3VycyIpO3R5cj1hbHR9KTtmdW5jdGlvbiBzbHQoYSl7cmV0dXJuIGEqbmh9dmFyIGl5cixpbHQ9ZigoKT0+e0p0KCk7cyhzbHQsInNlY29uZHNUb01pbGxpc2Vjb25kcyIpO2l5cj1zbHR9KTtmdW5jdGlvbiBvbHQoYSl7bGV0IGU9YS9jaDtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgY3lyLG5sdD1mKCgpPT57SnQoKTtzKG9sdCwic2Vjb25kc1RvTWludXRlcyIpO2N5cj1vbHR9KTtmdW5jdGlvbiAkaChhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksbz1yLmdldERhdGUoKSxuPUZlKHQ/LmlufHxhLDApO24uc2V0RnVsbFllYXIoaSxlLDE1KSxuLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPVZLKG4pO3JldHVybiByLnNldE1vbnRoKGUsTWF0aC5taW4obyxsKSkscn12YXIgbXlyLEdaPWYoKCk9PnskdCgpO04yZSgpO0hlKCk7cygkaCwic2V0TW9udGgiKTtteXI9JGh9KTtmdW5jdGlvbiBsbHQoYSxlLHQpe2xldCByPWtlKGEsdD8uaW4pO3JldHVybiBpc05hTigrcik/RmUodD8uaW58fGEsTmFOKTooZS55ZWFyIT1udWxsJiZyLnNldEZ1bGxZZWFyKGUueWVhciksZS5tb250aCE9bnVsbCYmKHI9JGgocixlLm1vbnRoKSksZS5kYXRlIT1udWxsJiZyLnNldERhdGUoZS5kYXRlKSxlLmhvdXJzIT1udWxsJiZyLnNldEhvdXJzKGUuaG91cnMpLGUubWludXRlcyE9bnVsbCYmci5zZXRNaW51dGVzKGUubWludXRlcyksZS5zZWNvbmRzIT1udWxsJiZyLnNldFNlY29uZHMoZS5zZWNvbmRzKSxlLm1pbGxpc2Vjb25kcyE9bnVsbCYmci5zZXRNaWxsaXNlY29uZHMoZS5taWxsaXNlY29uZHMpLHIpfXZhciB3eXIsY2x0PWYoKCk9PnskdCgpO0daKCk7SGUoKTtzKGxsdCwic2V0Iik7d3lyPWxsdH0pO2Z1bmN0aW9uIGRsdChhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbik7cmV0dXJuIHIuc2V0RGF0ZShlKSxyfXZhciB6eXIsdWx0PWYoKCk9PntIZSgpO3MoZGx0LCJzZXREYXRlIik7enlyPWRsdH0pO2Z1bmN0aW9uIHBsdChhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbik7cmV0dXJuIHIuc2V0TW9udGgoMCksci5zZXREYXRlKGUpLHJ9dmFyIEx5cixmbHQ9ZigoKT0+e0hlKCk7cyhwbHQsInNldERheU9mWWVhciIpO0x5cj1wbHR9KTtmdW5jdGlvbiBobHQoYSl7bGV0IGU9e30sdD1xYSgpO2ZvcihsZXQgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiYoZVtyXT10W3JdKTtmb3IobGV0IHIgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxyKSYmKGFbcl09PT12b2lkIDA/ZGVsZXRlIGVbcl06ZVtyXT1hW3JdKTskc3QoZSl9dmFyIFB5cixtbHQ9ZigoKT0+e3dpKCk7cyhobHQsInNldERlZmF1bHRPcHRpb25zIik7UHlyPWhsdH0pO2Z1bmN0aW9uIGdsdChhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbik7cmV0dXJuIHIuc2V0SG91cnMoZSkscn12YXIgUnlyLGJsdD1mKCgpPT57SGUoKTtzKGdsdCwic2V0SG91cnMiKTtSeXI9Z2x0fSk7ZnVuY3Rpb24gdmx0KGEsZSx0KXtsZXQgcj1rZShhLHQ/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoZSkscn12YXIgSHlyLHhsdD1mKCgpPT57SGUoKTtzKHZsdCwic2V0TWlsbGlzZWNvbmRzIik7SHlyPXZsdH0pO2Z1bmN0aW9uIHlsdChhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbik7cmV0dXJuIHIuc2V0TWludXRlcyhlKSxyfXZhciBVeXIsd2x0PWYoKCk9PntIZSgpO3MoeWx0LCJzZXRNaW51dGVzIik7VXlyPXlsdH0pO2Z1bmN0aW9uIE1sdChhLGUsdCl7bGV0IHI9a2UoYSx0Py5pbiksaT1NYXRoLnRydW5jKHIuZ2V0TW9udGgoKS8zKSsxLG89ZS1pO3JldHVybiAkaChyLHIuZ2V0TW9udGgoKStvKjMpfXZhciBaeXIsa2x0PWYoKCk9PntHWigpO0hlKCk7cyhNbHQsInNldFF1YXJ0ZXIiKTtaeXI9TWx0fSk7ZnVuY3Rpb24gU2x0KGEsZSx0KXtsZXQgcj1rZShhLHQ/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKGUpLHJ9dmFyIGV3cix6bHQ9ZigoKT0+e0hlKCk7cyhTbHQsInNldFNlY29uZHMiKTtld3I9U2x0fSk7ZnVuY3Rpb24gQ2x0KGEsZSx0KXtsZXQgcj1xYSgpLGk9dD8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz90Py5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5maXJzdFdlZWtDb250YWluc0RhdGU/P3IubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1xcyhrZShhLHQ/LmluKSxnMyhhLHQpLHQpLG49RmUodD8uaW58fGEsMCk7bi5zZXRGdWxsWWVhcihlLDAsaSksbi5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1nMyhuLHQpO3JldHVybiBsLnNldERhdGUobC5nZXREYXRlKCkrbyksbH12YXIgbHdyLF9sdD1mKCgpPT57d2koKTskdCgpO01sKCk7TksoKTtIZSgpO3MoQ2x0LCJzZXRXZWVrWWVhciIpO2x3cj1DbHR9KTtmdW5jdGlvbiBUbHQoYSxlLHQpe2xldCByPWtlKGEsdD8uaW4pO3JldHVybiBpc05hTigrcik/RmUodD8uaW58fGEsTmFOKTooci5zZXRGdWxsWWVhcihlKSxyKX12YXIgZndyLExsdD1mKCgpPT57JHQoKTtIZSgpO3MoVGx0LCJzZXRZZWFyIik7ZndyPVRsdH0pO2Z1bmN0aW9uICRsdChhLGUpe2xldCB0PWtlKGEsZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9TWF0aC5mbG9vcihyLzEwKSoxMDtyZXR1cm4gdC5zZXRGdWxsWWVhcihpLDAsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fXZhciBid3IsRGx0PWYoKCk9PntIZSgpO3MoJGx0LCJzdGFydE9mRGVjYWRlIik7YndyPSRsdH0pO2Z1bmN0aW9uIEFsdChhKXtyZXR1cm4geDIoRGF0ZS5ub3coKSxhKX12YXIgd3dyLFBsdD1mKCgpPT57bzkoKTtzKEFsdCwic3RhcnRPZlRvZGF5Iik7d3dyPUFsdH0pO2Z1bmN0aW9uIEVsdChhKXtsZXQgZT1jYShhPy5pbiksdD1lLmdldEZ1bGxZZWFyKCkscj1lLmdldE1vbnRoKCksaT1lLmdldERhdGUoKSxvPUZlKGE/LmluLDApO3JldHVybiBvLnNldEZ1bGxZZWFyKHQscixpKzEpLG8uc2V0SG91cnMoMCwwLDAsMCksb312YXIgQ3dyLElsdD1mKCgpPT57JHQoKTtUcygpO3MoRWx0LCJzdGFydE9mVG9tb3Jyb3ciKTtDd3I9RWx0fSk7ZnVuY3Rpb24gTmx0KGEpe2xldCBlPWNhKGE/LmluKSx0PWUuZ2V0RnVsbFllYXIoKSxyPWUuZ2V0TW9udGgoKSxpPWUuZ2V0RGF0ZSgpLG89Y2EoYT8uaW4pO3JldHVybiBvLnNldEZ1bGxZZWFyKHQscixpLTEpLG8uc2V0SG91cnMoMCwwLDAsMCksb312YXIgJHdyLFJsdD1mKCgpPT57VHMoKTtzKE5sdCwic3RhcnRPZlllc3RlcmRheSIpOyR3cj1ObHR9KTtmdW5jdGlvbiBZWihhLGUsdCl7cmV0dXJuIGcyKGEsLWUsdCl9dmFyIEV3cixpbGU9ZigoKT0+e2RoKCk7cyhZWiwic3ViTW9udGhzIik7RXdyPVlafSk7ZnVuY3Rpb24gT2x0KGEsZSx0KXtsZXR7eWVhcnM6cj0wLG1vbnRoczppPTAsd2Vla3M6bz0wLGRheXM6bj0wLGhvdXJzOmw9MCxtaW51dGVzOmQ9MCxzZWNvbmRzOmM9MH09ZSxwPVlaKGEsaStyKjEyLHQpLHU9aDAocCxuK28qNyx0KSxtPWQrbCo2MCx4PShjK20qNjApKjFlMztyZXR1cm4gRmUodD8uaW58fGEsK3UteCl9dmFyIEJ3cixGbHQ9ZigoKT0+eyR0KCk7dzkoKTtpbGUoKTtzKE9sdCwic3ViIik7QndyPU9sdH0pO2Z1bmN0aW9uIEJsdChhLGUsdCl7cmV0dXJuIGFLKGEsLWUsdCl9dmFyIGp3cixIbHQ9ZigoKT0+e2MyZSgpO3MoQmx0LCJzdWJCdXNpbmVzc0RheXMiKTtqd3I9Qmx0fSk7ZnVuY3Rpb24gcWx0KGEsZSx0KXtyZXR1cm4gcksoYSwtZSx0KX12YXIgWXdyLFZsdD1mKCgpPT57ZDJlKCk7cyhxbHQsInN1YkhvdXJzIik7WXdyPXFsdH0pO2Z1bmN0aW9uIGpsdChhLGUsdCl7cmV0dXJuIHMwKGEsLWUsdCl9dmFyIFF3cixVbHQ9ZigoKT0+e2k5KCk7cyhqbHQsInN1Yk1pbGxpc2Vjb25kcyIpO1F3cj1qbHR9KTtmdW5jdGlvbiBXbHQoYSxlLHQpe3JldHVybiBwaChhLC1lLHQpfXZhciBhTXIsR2x0PWYoKCk9PntvSygpO3MoV2x0LCJzdWJNaW51dGVzIik7YU1yPVdsdH0pO2Z1bmN0aW9uIFlsdChhLGUsdCl7cmV0dXJuIGZoKGEsLWUsdCl9dmFyIG9NcixLbHQ9ZigoKT0+e25LKCk7cyhZbHQsInN1YlF1YXJ0ZXJzIik7b01yPVlsdH0pO2Z1bmN0aW9uIFpsdChhLGUsdCl7cmV0dXJuIGxLKGEsLWUsdCl9dmFyIGRNcixYbHQ9ZigoKT0+e2YyZSgpO3MoWmx0LCJzdWJTZWNvbmRzIik7ZE1yPVpsdH0pO2Z1bmN0aW9uIFFsdChhLGUsdCl7cmV0dXJuIG8wKGEsLWUsdCl9dmFyIGhNcixKbHQ9ZigoKT0+e245KCk7cyhRbHQsInN1YldlZWtzIik7aE1yPVFsdH0pO2Z1bmN0aW9uIGVjdChhLGUsdCl7cmV0dXJuIGNLKGEsLWUsdCl9dmFyIHZNcix0Y3Q9ZigoKT0+e2gyZSgpO3MoZWN0LCJzdWJZZWFycyIpO3ZNcj1lY3R9KTtmdW5jdGlvbiBhY3QoYSl7cmV0dXJuIE1hdGgudHJ1bmMoYSo3KX12YXIgTU1yLHJjdD1mKCgpPT57SnQoKTtzKGFjdCwid2Vla3NUb0RheXMiKTtNTXI9YWN0fSk7ZnVuY3Rpb24gc2N0KGEpe3JldHVybiBNYXRoLnRydW5jKGEqMzY1LjI0MjUpfXZhciBDTXIsaWN0PWYoKCk9PntKdCgpO3Moc2N0LCJ5ZWFyc1RvRGF5cyIpO0NNcj1zY3R9KTtmdW5jdGlvbiBvY3QoYSl7cmV0dXJuIE1hdGgudHJ1bmMoYSpRWSl9dmFyICRNcixuY3Q9ZigoKT0+e0p0KCk7cyhvY3QsInllYXJzVG9Nb250aHMiKTskTXI9b2N0fSk7ZnVuY3Rpb24gbGN0KGEpe3JldHVybiBNYXRoLnRydW5jKGEqSlkpfXZhciBFTXIsY2N0PWYoKCk9PntKdCgpO3MobGN0LCJ5ZWFyc1RvUXVhcnRlcnMiKTtFTXI9bGN0fSk7dmFyIGs5PXt9O2x0KGs5LHthZGQ6KCk9PnIwLGFkZEJ1c2luZXNzRGF5czooKT0+YUssYWRkRGF5czooKT0+X3MsYWRkSG91cnM6KCk9PnJLLGFkZElTT1dlZWtZZWFyczooKT0+aUssYWRkTWlsbGlzZWNvbmRzOigpPT5zMCxhZGRNaW51dGVzOigpPT5waCxhZGRNb250aHM6KCk9PmcyLGFkZFF1YXJ0ZXJzOigpPT5maCxhZGRTZWNvbmRzOigpPT5sSyxhZGRXZWVrczooKT0+bzAsYWRkWWVhcnM6KCk9PmNLLGFyZUludGVydmFsc092ZXJsYXBwaW5nOigpPT5Ec3QsY2xhbXA6KCk9PlBzdCxjbG9zZXN0SW5kZXhUbzooKT0+cEssY2xvc2VzdFRvOigpPT5Jc3QsY29tcGFyZUFzYzooKT0+TWksY29tcGFyZURlc2M6KCk9PlJzdCxjb25zdHJ1Y3RGcm9tOigpPT5GZSxjb25zdHJ1Y3ROb3c6KCk9PmNhLGRheXNUb1dlZWtzOigpPT5Gc3QsZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzOigpPT5Ic3QsZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOigpPT5xcyxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyczooKT0+aEssZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrczooKT0+VnN0LGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzOigpPT51MyxkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzOigpPT5taCxkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzOigpPT5wMyxkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzOigpPT5uMCxkaWZmZXJlbmNlSW5EYXlzOigpPT5naCxkaWZmZXJlbmNlSW5Ib3VyczooKT0+ZjMsZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzOigpPT5Xc3QsZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzOigpPT5iaCxkaWZmZXJlbmNlSW5NaW51dGVzOigpPT5oMyxkaWZmZXJlbmNlSW5Nb250aHM6KCk9PmwwLGRpZmZlcmVuY2VJblF1YXJ0ZXJzOigpPT5Zc3QsZGlmZmVyZW5jZUluU2Vjb25kczooKT0+dzIsZGlmZmVyZW5jZUluV2Vla3M6KCk9PlpzdCxkaWZmZXJlbmNlSW5ZZWFyczooKT0+Q0ssZWFjaERheU9mSW50ZXJ2YWw6KCk9Pl9LLGVhY2hIb3VyT2ZJbnRlcnZhbDooKT0+UXN0LGVhY2hNaW51dGVPZkludGVydmFsOigpPT5laXQsZWFjaE1vbnRoT2ZJbnRlcnZhbDooKT0+YWl0LGVhY2hRdWFydGVyT2ZJbnRlcnZhbDooKT0+c2l0LGVhY2hXZWVrT2ZJbnRlcnZhbDooKT0+b2l0LGVhY2hXZWVrZW5kT2ZJbnRlcnZhbDooKT0+eWgsZWFjaFdlZWtlbmRPZk1vbnRoOigpPT5saXQsZWFjaFdlZWtlbmRPZlllYXI6KCk9PmRpdCxlYWNoWWVhck9mSW50ZXJ2YWw6KCk9PnBpdCxlbmRPZkRheTooKT0+dmgsZW5kT2ZEZWNhZGU6KCk9PmhpdCxlbmRPZkhvdXI6KCk9PmdpdCxlbmRPZklTT1dlZWs6KCk9PnZpdCxlbmRPZklTT1dlZWtZZWFyOigpPT55aXQsZW5kT2ZNaW51dGU6KCk9Pk1pdCxlbmRPZk1vbnRoOigpPT54aCxlbmRPZlF1YXJ0ZXI6KCk9PlNpdCxlbmRPZlNlY29uZDooKT0+Q2l0LGVuZE9mVG9kYXk6KCk9PlRpdCxlbmRPZlRvbW9ycm93OigpPT4kaXQsZW5kT2ZXZWVrOigpPT5BSyxlbmRPZlllYXI6KCk9PiRLLGVuZE9mWWVzdGVyZGF5OigpPT5BaXQsZm9ybWF0OigpPT5tOSxmb3JtYXREYXRlOigpPT5tOSxmb3JtYXREaXN0YW5jZTooKT0+QkssZm9ybWF0RGlzdGFuY2VTdHJpY3Q6KCk9PkhLLGZvcm1hdERpc3RhbmNlVG9Ob3c6KCk9PnRvdCxmb3JtYXREaXN0YW5jZVRvTm93U3RyaWN0OigpPT5yb3QsZm9ybWF0RHVyYXRpb246KCk9PmlvdCxmb3JtYXRJU086KCk9Pm5vdCxmb3JtYXRJU085MDc1OigpPT5jb3QsZm9ybWF0SVNPRHVyYXRpb246KCk9PnVvdCxmb3JtYXRSRkMzMzM5OigpPT5mb3QsZm9ybWF0UkZDNzIzMTooKT0+bW90LGZvcm1hdFJlbGF0aXZlOigpPT5ib3QsZm9ybWF0dGVyczooKT0+ZjksZnJvbVVuaXhUaW1lOigpPT54b3QsZ2V0RGF0ZTooKT0+cUssZ2V0RGF5OigpPT5wMCxnZXREYXlPZlllYXI6KCk9PkVLLGdldERheXNJbk1vbnRoOigpPT5WSyxnZXREYXlzSW5ZZWFyOigpPT53b3QsZ2V0RGVjYWRlOigpPT5rb3QsZ2V0RGVmYXVsdE9wdGlvbnM6KCk9PlVLLGdldEhvdXJzOigpPT56b3QsZ2V0SVNPRGF5OigpPT5XSyxnZXRJU09XZWVrOigpPT5TaCxnZXRJU09XZWVrWWVhcjooKT0+amksZ2V0SVNPV2Vla3NJblllYXI6KCk9Pl9vdCxnZXRNaWxsaXNlY29uZHM6KCk9PkxvdCxnZXRNaW51dGVzOigpPT5Eb3QsZ2V0TW9udGg6KCk9PlBvdCxnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsczooKT0+SW90LGdldFF1YXJ0ZXI6KCk9Pmw5LGdldFNlY29uZHM6KCk9PlJvdCxnZXRUaW1lOigpPT5Gb3QsZ2V0VW5peFRpbWU6KCk9PkhvdCxnZXRXZWVrOigpPT56aCxnZXRXZWVrT2ZNb250aDooKT0+Vm90LGdldFdlZWtZZWFyOigpPT5kMCxnZXRXZWVrc0luTW9udGg6KCk9PlVvdCxnZXRZZWFyOigpPT5Hb3QsaG91cnNUb01pbGxpc2Vjb25kczooKT0+S290LGhvdXJzVG9NaW51dGVzOigpPT5Yb3QsaG91cnNUb1NlY29uZHM6KCk9PkpvdCxpbnRlcnZhbDooKT0+dG50LGludGVydmFsVG9EdXJhdGlvbjooKT0+cm50LGludGxGb3JtYXQ6KCk9PmludCxpbnRsRm9ybWF0RGlzdGFuY2U6KCk9Pm5udCxpc0FmdGVyOigpPT5jbnQsaXNCZWZvcmU6KCk9PnVudCxpc0RhdGU6KCk9PmZLLGlzRXF1YWw6KCk9PmZudCxpc0V4aXN0czooKT0+bW50LGlzRmlyc3REYXlPZk1vbnRoOigpPT5ibnQsaXNGcmlkYXk6KCk9PnhudCxpc0Z1dHVyZTooKT0+d250LGlzTGFzdERheU9mTW9udGg6KCk9PnpLLGlzTGVhcFllYXI6KCk9PmpLLGlzTWF0Y2g6KCk9PnQxdCxpc01vbmRheTooKT0+cjF0LGlzUGFzdDooKT0+aTF0LGlzU2FtZURheTooKT0+eTIsaXNTYW1lSG91cjooKT0+UlosaXNTYW1lSVNPV2VlazooKT0+RlosaXNTYW1lSVNPV2Vla1llYXI6KCk9Pm4xdCxpc1NhbWVNaW51dGU6KCk9PkJaLGlzU2FtZU1vbnRoOigpPT5IWixpc1NhbWVRdWFydGVyOigpPT5xWixpc1NhbWVTZWNvbmQ6KCk9PlZaLGlzU2FtZVdlZWs6KCk9PkxoLGlzU2FtZVllYXI6KCk9PmpaLGlzU2F0dXJkYXk6KCk9PmVLLGlzU3VuZGF5OigpPT50Syxpc1RoaXNIb3VyOigpPT5jMXQsaXNUaGlzSVNPV2VlazooKT0+dTF0LGlzVGhpc01pbnV0ZTooKT0+ZjF0LGlzVGhpc01vbnRoOigpPT5tMXQsaXNUaGlzUXVhcnRlcjooKT0+YjF0LGlzVGhpc1NlY29uZDooKT0+eDF0LGlzVGhpc1dlZWs6KCk9PncxdCxpc1RoaXNZZWFyOigpPT5rMXQsaXNUaHVyc2RheTooKT0+ejF0LGlzVG9kYXk6KCk9Pl8xdCxpc1RvbW9ycm93OigpPT5MMXQsaXNUdWVzZGF5OigpPT5EMXQsaXNWYWxpZDooKT0+SnMsaXNXZWRuZXNkYXk6KCk9PlAxdCxpc1dlZWtlbmQ6KCk9PmIyLGlzV2l0aGluSW50ZXJ2YWw6KCk9PkkxdCxpc1llc3RlcmRheTooKT0+UjF0LGxhc3REYXlPZkRlY2FkZTooKT0+RjF0LGxhc3REYXlPZklTT1dlZWs6KCk9PkgxdCxsYXN0RGF5T2ZJU09XZWVrWWVhcjooKT0+VjF0LGxhc3REYXlPZk1vbnRoOigpPT5HSyxsYXN0RGF5T2ZRdWFydGVyOigpPT5VMXQsbGFzdERheU9mV2VlazooKT0+VVosbGFzdERheU9mWWVhcjooKT0+RzF0LGxpZ2h0Rm9ybWF0OigpPT5LMXQsbGlnaHRGb3JtYXR0ZXJzOigpPT5Vbyxsb25nRm9ybWF0dGVyczooKT0+dTAsbWF4OigpPT5kSyxtaWxsaXNlY29uZHM6KCk9PlgxdCxtaWxsaXNlY29uZHNUb0hvdXJzOigpPT5KMXQsbWlsbGlzZWNvbmRzVG9NaW51dGVzOigpPT50MnQsbWlsbGlzZWNvbmRzVG9TZWNvbmRzOigpPT5yMnQsbWluOigpPT51SyxtaW51dGVzVG9Ib3VyczooKT0+aTJ0LG1pbnV0ZXNUb01pbGxpc2Vjb25kczooKT0+bjJ0LG1pbnV0ZXNUb1NlY29uZHM6KCk9PmMydCxtb250aHNUb1F1YXJ0ZXJzOigpPT51MnQsbW9udGhzVG9ZZWFyczooKT0+ZjJ0LG5leHREYXk6KCk9PnppLG5leHRGcmlkYXk6KCk9Pm0ydCxuZXh0TW9uZGF5OigpPT5iMnQsbmV4dFNhdHVyZGF5OigpPT54MnQsbmV4dFN1bmRheTooKT0+dzJ0LG5leHRUaHVyc2RheTooKT0+azJ0LG5leHRUdWVzZGF5OigpPT56MnQsbmV4dFdlZG5lc2RheTooKT0+XzJ0LHBhcnNlOigpPT5OWixwYXJzZUlTTzooKT0+JDJ0LHBhcnNlSlNPTjooKT0+QTJ0LHBhcnNlcnM6KCk9PklaLHByZXZpb3VzRGF5OigpPT5DaSxwcmV2aW91c0ZyaWRheTooKT0+RTJ0LHByZXZpb3VzTW9uZGF5OigpPT5OMnQscHJldmlvdXNTYXR1cmRheTooKT0+TzJ0LHByZXZpb3VzU3VuZGF5OigpPT5CMnQscHJldmlvdXNUaHVyc2RheTooKT0+cTJ0LHByZXZpb3VzVHVlc2RheTooKT0+ajJ0LHByZXZpb3VzV2VkbmVzZGF5OigpPT5XMnQscXVhcnRlcnNUb01vbnRoczooKT0+WTJ0LHF1YXJ0ZXJzVG9ZZWFyczooKT0+WjJ0LHJvdW5kVG9OZWFyZXN0SG91cnM6KCk9PlEydCxyb3VuZFRvTmVhcmVzdE1pbnV0ZXM6KCk9PmVsdCxzZWNvbmRzVG9Ib3VyczooKT0+YWx0LHNlY29uZHNUb01pbGxpc2Vjb25kczooKT0+c2x0LHNlY29uZHNUb01pbnV0ZXM6KCk9Pm9sdCxzZXQ6KCk9PmxsdCxzZXREYXRlOigpPT5kbHQsc2V0RGF5OigpPT5mMCxzZXREYXlPZlllYXI6KCk9PnBsdCxzZXREZWZhdWx0T3B0aW9uczooKT0+aGx0LHNldEhvdXJzOigpPT5nbHQsc2V0SVNPRGF5OigpPT54WixzZXRJU09XZWVrOigpPT5wWixzZXRJU09XZWVrWWVhcjooKT0+c0ssc2V0TWlsbGlzZWNvbmRzOigpPT52bHQsc2V0TWludXRlczooKT0+eWx0LHNldE1vbnRoOigpPT4kaCxzZXRRdWFydGVyOigpPT5NbHQsc2V0U2Vjb25kczooKT0+U2x0LHNldFdlZWs6KCk9PmRaLHNldFdlZWtZZWFyOigpPT5DbHQsc2V0WWVhcjooKT0+VGx0LHN0YXJ0T2ZEYXk6KCk9PngyLHN0YXJ0T2ZEZWNhZGU6KCk9PiRsdCxzdGFydE9mSG91cjooKT0+djksc3RhcnRPZklTT1dlZWs6KCk9PmNzLHN0YXJ0T2ZJU09XZWVrWWVhcjooKT0+am8sc3RhcnRPZk1pbnV0ZTooKT0+eDksc3RhcnRPZk1vbnRoOigpPT5jMCxzdGFydE9mUXVhcnRlcjooKT0+azIsc3RhcnRPZlNlY29uZDooKT0+eTksc3RhcnRPZlRvZGF5OigpPT5BbHQsc3RhcnRPZlRvbW9ycm93OigpPT5FbHQsc3RhcnRPZldlZWs6KCk9PmVyLHN0YXJ0T2ZXZWVrWWVhcjooKT0+ZzMsc3RhcnRPZlllYXI6KCk9PndoLHN0YXJ0T2ZZZXN0ZXJkYXk6KCk9Pk5sdCxzdWI6KCk9Pk9sdCxzdWJCdXNpbmVzc0RheXM6KCk9PkJsdCxzdWJEYXlzOigpPT5oMCxzdWJIb3VyczooKT0+cWx0LHN1YklTT1dlZWtZZWFyczooKT0+eUssc3ViTWlsbGlzZWNvbmRzOigpPT5qbHQsc3ViTWludXRlczooKT0+V2x0LHN1Yk1vbnRoczooKT0+WVosc3ViUXVhcnRlcnM6KCk9PllsdCxzdWJTZWNvbmRzOigpPT5abHQsc3ViV2Vla3M6KCk9PlFsdCxzdWJZZWFyczooKT0+ZWN0LHRvRGF0ZTooKT0+a2UsdHJhbnNwb3NlOigpPT5ZSyx3ZWVrc1RvRGF5czooKT0+YWN0LHllYXJzVG9EYXlzOigpPT5zY3QseWVhcnNUb01vbnRoczooKT0+b2N0LHllYXJzVG9RdWFydGVyczooKT0+bGN0fSk7dmFyIGRjdD1mKCgpPT57bzJlKCk7YzJlKCk7bTIoKTtkMmUoKTtwMmUoKTtpOSgpO29LKCk7ZGgoKTtuSygpO2YyZSgpO245KCk7aDJlKCk7QXN0KCk7RXN0KCk7YjJlKCk7TnN0KCk7ZDMoKTtPc3QoKTskdCgpO1RzKCk7QnN0KCk7cXN0KCk7TWwoKTt4MmUoKTtqc3QoKTttSygpO3cyZSgpO2dLKCk7YksoKTt2SygpO3hLKCk7R3N0KCk7d0soKTtNSygpO2M5KCk7S3N0KCk7ZDkoKTtYc3QoKTtTMmUoKTt6MmUoKTtKc3QoKTt0aXQoKTtyaXQoKTtpaXQoKTtuaXQoKTtMSygpO2NpdCgpO3VpdCgpO2ZpdCgpO2tLKCk7bWl0KCk7Yml0KCk7eGl0KCk7d2l0KCk7a2l0KCk7U0soKTt6aXQoKTtfaXQoKTtMaXQoKTtEaXQoKTtfMmUoKTtDMmUoKTtQaXQoKTtBMmUoKTtQMmUoKTtFMmUoKTthb3QoKTtzb3QoKTtvb3QoKTtsb3QoKTtkb3QoKTtwb3QoKTtob3QoKTtnb3QoKTt2b3QoKTt5b3QoKTtJMmUoKTtnOSgpO1QyZSgpO04yZSgpO01vdCgpO1NvdCgpO08yZSgpO0NvdCgpO0YyZSgpO0lLKCk7aTAoKTtUb3QoKTskb3QoKTtBb3QoKTtFb3QoKTtOb3QoKTt5MmUoKTtPb3QoKTtCb3QoKTtxb3QoKTtSSygpO2pvdCgpO3A5KCk7V290KCk7WW90KCk7Wm90KCk7UW90KCk7ZW50KCk7YW50KCk7c250KCk7b250KCk7bG50KCk7ZG50KCk7cG50KCk7djJlKCk7aG50KCk7Z250KCk7dm50KCk7eW50KCk7TW50KCk7azJlKCk7UjJlKCk7YTF0KCk7czF0KCk7bzF0KCk7aGgoKTtZMmUoKTtLMmUoKTtsMXQoKTtYMmUoKTtRMmUoKTtKMmUoKTt0bGUoKTtPWigpO2FsZSgpO24yZSgpO2wyZSgpO2QxdCgpO3AxdCgpO2gxdCgpO2cxdCgpO3YxdCgpO3kxdCgpO00xdCgpO1MxdCgpO0MxdCgpO1QxdCgpOyQxdCgpO0ExdCgpO2tsKCk7RTF0KCk7czkoKTtOMXQoKTtPMXQoKTtCMXQoKTtxMXQoKTtqMXQoKTtCMmUoKTtXMXQoKTtybGUoKTtZMXQoKTtaMXQoKTttMmUoKTtRMXQoKTtlMnQoKTthMnQoKTtzMnQoKTtnMmUoKTtvMnQoKTtsMnQoKTtkMnQoKTtwMnQoKTtoMnQoKTt6bCgpO2cydCgpO3YydCgpO3kydCgpO00ydCgpO1MydCgpO0MydCgpO1QydCgpO1cyZSgpO0QydCgpO1AydCgpO0NsKCk7STJ0KCk7UjJ0KCk7RjJ0KCk7SDJ0KCk7VjJ0KCk7VTJ0KCk7RzJ0KCk7SzJ0KCk7WDJ0KCk7SjJ0KCk7dGx0KCk7cmx0KCk7aWx0KCk7bmx0KCk7Y2x0KCk7dWx0KCk7YjkoKTtmbHQoKTttbHQoKTtibHQoKTtVMmUoKTtqMmUoKTt1MmUoKTt4bHQoKTt3bHQoKTtHWigpO2tsdCgpO3psdCgpO1YyZSgpO19sdCgpO0xsdCgpO285KCk7RGx0KCk7RzJlKCk7djIoKTt1aCgpO1oyZSgpO3U5KCk7VEsoKTtlbGUoKTtQbHQoKTtJbHQoKTtpMSgpO05LKCk7REsoKTtSbHQoKTtGbHQoKTtIbHQoKTt3OSgpO1ZsdCgpO00yZSgpO1VsdCgpO0dsdCgpO2lsZSgpO0tsdCgpO1hsdCgpO0psdCgpO3RjdCgpO0hlKCk7SDJlKCk7cmN0KCk7aWN0KCk7bmN0KCk7Y2N0KCl9KTt2YXIgdWN0PU1vKChvbGUsbmxlKT0+eyhmdW5jdGlvbihhLGUpe3R5cGVvZiBvbGU9PSJvYmplY3QiJiZ0eXBlb2YgbmxlPCJ1Ij9ubGUuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KGE9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6YXx8c2VsZikuZGF5anM9ZSgpfSkob2xlLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgYT0xZTMsZT02ZTQsdD0zNmU1LHI9Im1pbGxpc2Vjb25kIixpPSJzZWNvbmQiLG89Im1pbnV0ZSIsbj0iaG91ciIsbD0iZGF5IixkPSJ3ZWVrIixjPSJtb250aCIscD0icXVhcnRlciIsdT0ieWVhciIsbT0iZGF0ZSIsdj0iSW52YWxpZCBEYXRlIix4PS9eKFxkezR9KVstL10/KFxkezEsMn0pP1stL10/KFxkezAsMn0pW1R0XHNdKihcZHsxLDJ9KT86PyhcZHsxLDJ9KT86PyhcZHsxLDJ9KT9bLjpdPyhcZCspPyQvLGI9L1xbKFteXF1dKyldfFl7MSw0fXxNezEsNH18RHsxLDJ9fGR7MSw0fXxIezEsMn18aHsxLDJ9fGF8QXxtezEsMn18c3sxLDJ9fFp7MSwyfXxTU1MvZyxnPXtuYW1lOiJlbiIsd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLG1vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxvcmRpbmFsOnMoZnVuY3Rpb24oUyl7dmFyIEU9WyJ0aCIsInN0IiwibmQiLCJyZCJdLEE9UyUxMDA7cmV0dXJuIlsiK1MrKEVbKEEtMjApJTEwXXx8RVtBXXx8RVswXSkrIl0ifSwib3JkaW5hbCIpfSx5PXMoZnVuY3Rpb24oUyxFLEEpe3ZhciBGPVN0cmluZyhTKTtyZXR1cm4hRnx8Ri5sZW5ndGg+PUU/UzoiIitBcnJheShFKzEtRi5sZW5ndGgpLmpvaW4oQSkrU30sIm0iKSxrPXtzOnksejpzKGZ1bmN0aW9uKFMpe3ZhciBFPS1TLnV0Y09mZnNldCgpLEE9TWF0aC5hYnMoRSksRj1NYXRoLmZsb29yKEEvNjApLFc9QSU2MDtyZXR1cm4oRTw9MD8iKyI6Ii0iKSt5KEYsMiwiMCIpKyI6Iit5KFcsMiwiMCIpfSwieiIpLG06cyhmdW5jdGlvbiBTKEUsQSl7aWYoRS5kYXRlKCk8QS5kYXRlKCkpcmV0dXJuLVMoQSxFKTt2YXIgRj0xMiooQS55ZWFyKCktRS55ZWFyKCkpKyhBLm1vbnRoKCktRS5tb250aCgpKSxXPUUuY2xvbmUoKS5hZGQoRixjKSxqPUEtVzwwLEc9RS5jbG9uZSgpLmFkZChGKyhqPy0xOjEpLGMpO3JldHVybisoLShGKyhBLVcpLyhqP1ctRzpHLVcpKXx8MCl9LCJ0IiksYTpzKGZ1bmN0aW9uKFMpe3JldHVybiBTPDA/TWF0aC5jZWlsKFMpfHwwOk1hdGguZmxvb3IoUyl9LCJhIikscDpzKGZ1bmN0aW9uKFMpe3JldHVybntNOmMseTp1LHc6ZCxkOmwsRDptLGg6bixtOm8sczppLG1zOnIsUTpwfVtTXXx8U3RyaW5nKFN8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LCJwIiksdTpzKGZ1bmN0aW9uKFMpe3JldHVybiBTPT09dm9pZCAwfSwidSIpfSxDPSJlbiIsTj17fTtOW0NdPWc7dmFyIF89IiRpc0RheWpzT2JqZWN0Iix6PXMoZnVuY3Rpb24oUyl7cmV0dXJuIFMgaW5zdGFuY2VvZiBCfHwhKCFTfHwhU1tfXSl9LCJTIiksTz1zKGZ1bmN0aW9uIFMoRSxBLEYpe3ZhciBXO2lmKCFFKXJldHVybiBDO2lmKHR5cGVvZiBFPT0ic3RyaW5nIil7dmFyIGo9RS50b0xvd2VyQ2FzZSgpO05bal0mJihXPWopLEEmJihOW2pdPUEsVz1qKTt2YXIgRz1FLnNwbGl0KCItIik7aWYoIVcmJkcubGVuZ3RoPjEpcmV0dXJuIFMoR1swXSl9ZWxzZXt2YXIgaGU9RS5uYW1lO05baGVdPUUsVz1oZX1yZXR1cm4hRiYmVyYmKEM9VyksV3x8IUYmJkN9LCJ0IiksVD1zKGZ1bmN0aW9uKFMsRSl7aWYoeihTKSlyZXR1cm4gUy5jbG9uZSgpO3ZhciBBPXR5cGVvZiBFPT0ib2JqZWN0Ij9FOnt9O3JldHVybiBBLmRhdGU9UyxBLmFyZ3M9YXJndW1lbnRzLG5ldyBCKEEpfSwiTyIpLFA9aztQLmw9TyxQLmk9eixQLnc9ZnVuY3Rpb24oUyxFKXtyZXR1cm4gVChTLHtsb2NhbGU6RS4kTCx1dGM6RS4kdSx4OkUuJHgsJG9mZnNldDpFLiRvZmZzZXR9KX07dmFyIEI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUyhBKXt0aGlzLiRMPU8oQS5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShBKSx0aGlzLiR4PXRoaXMuJHh8fEEueHx8e30sdGhpc1tfXT0hMH1zKFMsIk0iKTt2YXIgRT1TLnByb3RvdHlwZTtyZXR1cm4gRS5wYXJzZT1mdW5jdGlvbihBKXt0aGlzLiRkPShmdW5jdGlvbihGKXt2YXIgVz1GLmRhdGUsaj1GLnV0YztpZihXPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihQLnUoVykpcmV0dXJuIG5ldyBEYXRlO2lmKFcgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShXKTtpZih0eXBlb2YgVz09InN0cmluZyImJiEvWiQvaS50ZXN0KFcpKXt2YXIgRz1XLm1hdGNoKHgpO2lmKEcpe3ZhciBoZT1HWzJdLTF8fDAsUj0oR1s3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gaj9uZXcgRGF0ZShEYXRlLlVUQyhHWzFdLGhlLEdbM118fDEsR1s0XXx8MCxHWzVdfHwwLEdbNl18fDAsUikpOm5ldyBEYXRlKEdbMV0saGUsR1szXXx8MSxHWzRdfHwwLEdbNV18fDAsR1s2XXx8MCxSKX19cmV0dXJuIG5ldyBEYXRlKFcpfSkoQSksdGhpcy5pbml0KCl9LEUuaW5pdD1mdW5jdGlvbigpe3ZhciBBPXRoaXMuJGQ7dGhpcy4keT1BLmdldEZ1bGxZZWFyKCksdGhpcy4kTT1BLmdldE1vbnRoKCksdGhpcy4kRD1BLmdldERhdGUoKSx0aGlzLiRXPUEuZ2V0RGF5KCksdGhpcy4kSD1BLmdldEhvdXJzKCksdGhpcy4kbT1BLmdldE1pbnV0ZXMoKSx0aGlzLiRzPUEuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPUEuZ2V0TWlsbGlzZWNvbmRzKCl9LEUuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIFB9LEUuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT12fSxFLmlzU2FtZT1mdW5jdGlvbihBLEYpe3ZhciBXPVQoQSk7cmV0dXJuIHRoaXMuc3RhcnRPZihGKTw9VyYmVzw9dGhpcy5lbmRPZihGKX0sRS5pc0FmdGVyPWZ1bmN0aW9uKEEsRil7cmV0dXJuIFQoQSk8dGhpcy5zdGFydE9mKEYpfSxFLmlzQmVmb3JlPWZ1bmN0aW9uKEEsRil7cmV0dXJuIHRoaXMuZW5kT2YoRik8VChBKX0sRS4kZz1mdW5jdGlvbihBLEYsVyl7cmV0dXJuIFAudShBKT90aGlzW0ZdOnRoaXMuc2V0KFcsQSl9LEUudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LEUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sRS5zdGFydE9mPWZ1bmN0aW9uKEEsRil7dmFyIFc9dGhpcyxqPSEhUC51KEYpfHxGLEc9UC5wKEEpLGhlPXMoZnVuY3Rpb24oWSxRKXt2YXIgSj1QLncoVy4kdT9EYXRlLlVUQyhXLiR5LFEsWSk6bmV3IERhdGUoVy4keSxRLFkpLFcpO3JldHVybiBqP0o6Si5lbmRPZihsKX0sImwiKSxSPXMoZnVuY3Rpb24oWSxRKXtyZXR1cm4gUC53KFcudG9EYXRlKClbWV0uYXBwbHkoVy50b0RhdGUoInMiKSwoaj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKFEpKSxXKX0sIiQiKSxVPXRoaXMuJFcsbWU9dGhpcy4kTSxJPXRoaXMuJEQscT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKEcpe2Nhc2UgdTpyZXR1cm4gaj9oZSgxLDApOmhlKDMxLDExKTtjYXNlIGM6cmV0dXJuIGo/aGUoMSxtZSk6aGUoMCxtZSsxKTtjYXNlIGQ6dmFyIGNlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCx1ZT0oVTxjZT9VKzc6VSktY2U7cmV0dXJuIGhlKGo/SS11ZTpJKyg2LXVlKSxtZSk7Y2FzZSBsOmNhc2UgbTpyZXR1cm4gUihxKyJIb3VycyIsMCk7Y2FzZSBuOnJldHVybiBSKHErIk1pbnV0ZXMiLDEpO2Nhc2UgbzpyZXR1cm4gUihxKyJTZWNvbmRzIiwyKTtjYXNlIGk6cmV0dXJuIFIocSsiTWlsbGlzZWNvbmRzIiwzKTtkZWZhdWx0OnJldHVybiB0aGlzLmNsb25lKCl9fSxFLmVuZE9mPWZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLnN0YXJ0T2YoQSwhMSl9LEUuJHNldD1mdW5jdGlvbihBLEYpe3ZhciBXLGo9UC5wKEEpLEc9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpLGhlPShXPXt9LFdbbF09RysiRGF0ZSIsV1ttXT1HKyJEYXRlIixXW2NdPUcrIk1vbnRoIixXW3VdPUcrIkZ1bGxZZWFyIixXW25dPUcrIkhvdXJzIixXW29dPUcrIk1pbnV0ZXMiLFdbaV09RysiU2Vjb25kcyIsV1tyXT1HKyJNaWxsaXNlY29uZHMiLFcpW2pdLFI9aj09PWw/dGhpcy4kRCsoRi10aGlzLiRXKTpGO2lmKGo9PT1jfHxqPT09dSl7dmFyIFU9dGhpcy5jbG9uZSgpLnNldChtLDEpO1UuJGRbaGVdKFIpLFUuaW5pdCgpLHRoaXMuJGQ9VS5zZXQobSxNYXRoLm1pbih0aGlzLiRELFUuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgaGUmJnRoaXMuJGRbaGVdKFIpO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSxFLnNldD1mdW5jdGlvbihBLEYpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChBLEYpfSxFLmdldD1mdW5jdGlvbihBKXtyZXR1cm4gdGhpc1tQLnAoQSldKCl9LEUuYWRkPWZ1bmN0aW9uKEEsRil7dmFyIFcsaj10aGlzO0E9TnVtYmVyKEEpO3ZhciBHPVAucChGKSxoZT1zKGZ1bmN0aW9uKG1lKXt2YXIgST1UKGopO3JldHVybiBQLncoSS5kYXRlKEkuZGF0ZSgpK01hdGgucm91bmQobWUqQSkpLGopfSwieSIpO2lmKEc9PT1jKXJldHVybiB0aGlzLnNldChjLHRoaXMuJE0rQSk7aWYoRz09PXUpcmV0dXJuIHRoaXMuc2V0KHUsdGhpcy4keStBKTtpZihHPT09bClyZXR1cm4gaGUoMSk7aWYoRz09PWQpcmV0dXJuIGhlKDcpO3ZhciBSPShXPXt9LFdbb109ZSxXW25dPXQsV1tpXT1hLFcpW0ddfHwxLFU9dGhpcy4kZC5nZXRUaW1lKCkrQSpSO3JldHVybiBQLncoVSx0aGlzKX0sRS5zdWJ0cmFjdD1mdW5jdGlvbihBLEYpe3JldHVybiB0aGlzLmFkZCgtMSpBLEYpfSxFLmZvcm1hdD1mdW5jdGlvbihBKXt2YXIgRj10aGlzLFc9dGhpcy4kbG9jYWxlKCk7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBXLmludmFsaWREYXRlfHx2O3ZhciBqPUF8fCJZWVlZLU1NLUREVEhIOm1tOnNzWiIsRz1QLnoodGhpcyksaGU9dGhpcy4kSCxSPXRoaXMuJG0sVT10aGlzLiRNLG1lPVcud2Vla2RheXMsST1XLm1vbnRocyxxPVcubWVyaWRpZW0sY2U9cyhmdW5jdGlvbihRLEosWixnZSl7cmV0dXJuIFEmJihRW0pdfHxRKEYsaikpfHxaW0pdLnNsaWNlKDAsZ2UpfSwiaCIpLHVlPXMoZnVuY3Rpb24oUSl7cmV0dXJuIFAucyhoZSUxMnx8MTIsUSwiMCIpfSwiZCIpLFk9cXx8ZnVuY3Rpb24oUSxKLFope3ZhciBnZT1RPDEyPyJBTSI6IlBNIjtyZXR1cm4gWj9nZS50b0xvd2VyQ2FzZSgpOmdlfTtyZXR1cm4gai5yZXBsYWNlKGIsKGZ1bmN0aW9uKFEsSil7cmV0dXJuIEp8fChmdW5jdGlvbihaKXtzd2l0Y2goWil7Y2FzZSJZWSI6cmV0dXJuIFN0cmluZyhGLiR5KS5zbGljZSgtMik7Y2FzZSJZWVlZIjpyZXR1cm4gUC5zKEYuJHksNCwiMCIpO2Nhc2UiTSI6cmV0dXJuIFUrMTtjYXNlIk1NIjpyZXR1cm4gUC5zKFUrMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBjZShXLm1vbnRoc1Nob3J0LFUsSSwzKTtjYXNlIk1NTU0iOnJldHVybiBjZShJLFUpO2Nhc2UiRCI6cmV0dXJuIEYuJEQ7Y2FzZSJERCI6cmV0dXJuIFAucyhGLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcoRi4kVyk7Y2FzZSJkZCI6cmV0dXJuIGNlKFcud2Vla2RheXNNaW4sRi4kVyxtZSwyKTtjYXNlImRkZCI6cmV0dXJuIGNlKFcud2Vla2RheXNTaG9ydCxGLiRXLG1lLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIG1lW0YuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhoZSk7Y2FzZSJISCI6cmV0dXJuIFAucyhoZSwyLCIwIik7Y2FzZSJoIjpyZXR1cm4gdWUoMSk7Y2FzZSJoaCI6cmV0dXJuIHVlKDIpO2Nhc2UiYSI6cmV0dXJuIFkoaGUsUiwhMCk7Y2FzZSJBIjpyZXR1cm4gWShoZSxSLCExKTtjYXNlIm0iOnJldHVybiBTdHJpbmcoUik7Y2FzZSJtbSI6cmV0dXJuIFAucyhSLDIsIjAiKTtjYXNlInMiOnJldHVybiBTdHJpbmcoRi4kcyk7Y2FzZSJzcyI6cmV0dXJuIFAucyhGLiRzLDIsIjAiKTtjYXNlIlNTUyI6cmV0dXJuIFAucyhGLiRtcywzLCIwIik7Y2FzZSJaIjpyZXR1cm4gR31yZXR1cm4gbnVsbH0pKFEpfHxHLnJlcGxhY2UoIjoiLCIiKX0pKX0sRS51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sRS5kaWZmPWZ1bmN0aW9uKEEsRixXKXt2YXIgaixHPXRoaXMsaGU9UC5wKEYpLFI9VChBKSxVPShSLnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpKmUsbWU9dGhpcy1SLEk9cyhmdW5jdGlvbigpe3JldHVybiBQLm0oRyxSKX0sIkQiKTtzd2l0Y2goaGUpe2Nhc2UgdTpqPUkoKS8xMjticmVhaztjYXNlIGM6aj1JKCk7YnJlYWs7Y2FzZSBwOmo9SSgpLzM7YnJlYWs7Y2FzZSBkOmo9KG1lLVUpLzYwNDhlNTticmVhaztjYXNlIGw6aj0obWUtVSkvODY0ZTU7YnJlYWs7Y2FzZSBuOmo9bWUvdDticmVhaztjYXNlIG86aj1tZS9lO2JyZWFrO2Nhc2UgaTpqPW1lL2E7YnJlYWs7ZGVmYXVsdDpqPW1lfXJldHVybiBXP2o6UC5hKGopfSxFLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LEUuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBOW3RoaXMuJExdfSxFLmxvY2FsZT1mdW5jdGlvbihBLEYpe2lmKCFBKXJldHVybiB0aGlzLiRMO3ZhciBXPXRoaXMuY2xvbmUoKSxqPU8oQSxGLCEwKTtyZXR1cm4gaiYmKFcuJEw9aiksV30sRS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBQLncodGhpcy4kZCx0aGlzKX0sRS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSxFLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sRS50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LEUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxTfSkoKSxNPUIucHJvdG90eXBlO3JldHVybiBULnByb3RvdHlwZT1NLFtbIiRtcyIscl0sWyIkcyIsaV0sWyIkbSIsb10sWyIkSCIsbl0sWyIkVyIsbF0sWyIkTSIsY10sWyIkeSIsdV0sWyIkRCIsbV1dLmZvckVhY2goKGZ1bmN0aW9uKFMpe01bU1sxXV09ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuJGcoRSxTWzBdLFNbMV0pfX0pKSxULmV4dGVuZD1mdW5jdGlvbihTLEUpe3JldHVybiBTLiRpfHwoUyhFLEIsVCksUy4kaT0hMCksVH0sVC5sb2NhbGU9TyxULmlzRGF5anM9eixULnVuaXg9ZnVuY3Rpb24oUyl7cmV0dXJuIFQoMWUzKlMpfSxULmVuPU5bQ10sVC5Mcz1OLFQucD17fSxUfSkpfSk7dmFyIHBjdD1NbygobGxlLGNsZSk9PnsoZnVuY3Rpb24oYSxlKXt0eXBlb2YgbGxlPT0ib2JqZWN0IiYmdHlwZW9mIGNsZTwidSI/Y2xlLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOihhPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOmF8fHNlbGYpLmRheWpzX3BsdWdpbl9pc1RvZGF5PWUoKX0pKGxsZSwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKGEsZSx0KXtlLnByb3RvdHlwZS5pc1RvZGF5PWZ1bmN0aW9uKCl7dmFyIHI9IllZWVktTU0tREQiLGk9dCgpO3JldHVybiB0aGlzLmZvcm1hdChyKT09PWkuZm9ybWF0KHIpfX19KSl9KTtmdW5jdGlvbiBLZ2EoYSl7cmV0dXJue2RheXM6TWF0aC50cnVuYyhhLzg2NGU1KSxob3VyczpNYXRoLnRydW5jKGEvMzZlNSUyNCksbWludXRlczpNYXRoLnRydW5jKGEvNmU0JTYwKSxzZWNvbmRzOk1hdGgudHJ1bmMoYS8xZTMlNjApLG1pbGxpc2Vjb25kczpNYXRoLnRydW5jKGElMWUzKSxtaWNyb3NlY29uZHM6TWF0aC50cnVuYyhmY3QoYSoxZTMpJTFlMyksbmFub3NlY29uZHM6TWF0aC50cnVuYyhmY3QoYSoxZTYpJTFlMyl9fWZ1bmN0aW9uIFpnYShhKXtyZXR1cm57ZGF5czphLzg2NDAwMDAwbixob3VyczphLzM2MDAwMDBuJTI0bixtaW51dGVzOmEvNjAwMDBuJTYwbixzZWNvbmRzOmEvMTAwMG4lNjBuLG1pbGxpc2Vjb25kczphJTEwMDBuLG1pY3Jvc2Vjb25kczowbixuYW5vc2Vjb25kczowbn19ZnVuY3Rpb24gZGxlKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSJudW1iZXIiOntpZihOdW1iZXIuaXNGaW5pdGUoYSkpcmV0dXJuIEtnYShhKTticmVha31jYXNlImJpZ2ludCI6cmV0dXJuIFpnYShhKX10aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iil9dmFyIGZjdCxoY3Q9ZigoKT0+e2ZjdD1zKGE9Pk51bWJlci5pc0Zpbml0ZShhKT9hOjAsInRvWmVyb0lmSW5maW5pdHkiKTtzKEtnYSwicGFyc2VOdW1iZXIiKTtzKFpnYSwicGFyc2VCaWdpbnQiKTtzKGRsZSwicGFyc2VNaWxsaXNlY29uZHMiKX0pO2Z1bmN0aW9uIFM5KGEsZSl7bGV0IHQ9dHlwZW9mIGE9PSJiaWdpbnQiO2lmKCF0JiYhTnVtYmVyLmlzRmluaXRlKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKTtlPXsuLi5lfTtsZXQgcj1hPDA/Ii0iOiIiO2E9YTwwPy1hOmEsZS5jb2xvbk5vdGF0aW9uJiYoZS5jb21wYWN0PSExLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzPSExLGUuc2VwYXJhdGVNaWxsaXNlY29uZHM9ITEsZS52ZXJib3NlPSExKSxlLmNvbXBhY3QmJihlLnVuaXRDb3VudD0xLGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCxlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCk7bGV0IGk9W10sbz1zKChwLHUpPT57bGV0IG09TWF0aC5mbG9vcihwKjEwKip1K0pnYSk7cmV0dXJuKE1hdGgucm91bmQobSkvMTAqKnUpLnRvRml4ZWQodSl9LCJmbG9vckRlY2ltYWxzIiksbj1zKChwLHUsbSx2KT0+e2lmKCEoKGkubGVuZ3RoPT09MHx8IWUuY29sb25Ob3RhdGlvbikmJlhnYShwKSYmIShlLmNvbG9uTm90YXRpb24mJm09PT0ibSIpKSl7aWYodj8/PVN0cmluZyhwKSxlLmNvbG9uTm90YXRpb24pe2xldCB4PXYuaW5jbHVkZXMoIi4iKT92LnNwbGl0KCIuIilbMF0ubGVuZ3RoOnYubGVuZ3RoLGI9aS5sZW5ndGg+MD8yOjE7dj0iMCIucmVwZWF0KE1hdGgubWF4KDAsYi14KSkrdn1lbHNlIHYrPWUudmVyYm9zZT8iICIrUWdhKHUscCk6bTtpLnB1c2godil9fSwiYWRkIiksbD1kbGUoYSksZD1CaWdJbnQobC5kYXlzKTtpZihlLmhpZGVZZWFyQW5kRGF5cz9uKEJpZ0ludChkKSoyNG4rQmlnSW50KGwuaG91cnMpLCJob3VyIiwiaCIpOihlLmhpZGVZZWFyP24oZCwiZGF5IiwiZCIpOihuKGQvMzY1biwieWVhciIsInkiKSxuKGQlMzY1biwiZGF5IiwiZCIpKSxuKE51bWJlcihsLmhvdXJzKSwiaG91ciIsImgiKSksbihOdW1iZXIobC5taW51dGVzKSwibWludXRlIiwibSIpLCFlLmhpZGVTZWNvbmRzKWlmKGUuc2VwYXJhdGVNaWxsaXNlY29uZHN8fGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzfHwhZS5jb2xvbk5vdGF0aW9uJiZhPDFlMyYmIWUuc3ViU2Vjb25kc0FzRGVjaW1hbHMpe2xldCBwPU51bWJlcihsLnNlY29uZHMpLHU9TnVtYmVyKGwubWlsbGlzZWNvbmRzKSxtPU51bWJlcihsLm1pY3Jvc2Vjb25kcyksdj1OdW1iZXIobC5uYW5vc2Vjb25kcyk7aWYobihwLCJzZWNvbmQiLCJzIiksZS5mb3JtYXRTdWJNaWxsaXNlY29uZHMpbih1LCJtaWxsaXNlY29uZCIsIm1zIiksbihtLCJtaWNyb3NlY29uZCIsIlx4QjVzIiksbih2LCJuYW5vc2Vjb25kIiwibnMiKTtlbHNle2xldCB4PXUrbS8xZTMrdi8xZTYsYj10eXBlb2YgZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM6MCxnPXg+PTE/TWF0aC5yb3VuZCh4KTpNYXRoLmNlaWwoeCkseT1iP3gudG9GaXhlZChiKTpnO24oTnVtYmVyLnBhcnNlRmxvYXQoeSksIm1pbGxpc2Vjb25kIiwibXMiLHkpfX1lbHNle2xldCBwPSh0P051bWJlcihhJWViYSk6YSkvMWUzJTYwLHU9dHlwZW9mIGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP2Uuc2Vjb25kc0RlY2ltYWxEaWdpdHM6MSxtPW8ocCx1KSx2PWUua2VlcERlY2ltYWxzT25XaG9sZVNlY29uZHM/bTptLnJlcGxhY2UoL1wuMCskLywiIik7bihOdW1iZXIucGFyc2VGbG9hdCh2KSwic2Vjb25kIiwicyIsdil9aWYoaS5sZW5ndGg9PT0wKXJldHVybiByKyIwIisoZS52ZXJib3NlPyIgbWlsbGlzZWNvbmRzIjoibXMiKTtsZXQgYz1lLmNvbG9uTm90YXRpb24/IjoiOiIgIjtyZXR1cm4gdHlwZW9mIGUudW5pdENvdW50PT0ibnVtYmVyIiYmKGk9aS5zbGljZSgwLE1hdGgubWF4KGUudW5pdENvdW50LDEpKSkscitpLmpvaW4oYyl9dmFyIFhnYSxRZ2EsSmdhLGViYSxtY3Q9ZigoKT0+e2hjdCgpO1hnYT1zKGE9PmE9PT0wfHxhPT09MG4sImlzWmVybyIpLFFnYT1zKChhLGUpPT5lPT09MXx8ZT09PTFuP2E6YCR7YX1zYCwicGx1cmFsaXplIiksSmdhPTFlLTcsZWJhPTI0bio2MG4qNjBuKjEwMDBuO3MoUzksInByZXR0eU1pbGxpc2Vjb25kcyIpfSk7dmFyIHgzLGdjdCxtMD1mKCgpPT57ejkoKTt0MCgpO2JpKCk7Q3N0KCk7ZGN0KCk7eDM9a28odWN0KCksMSksZ2N0PWtvKHBjdCgpLDEpO21jdCgpO3gzLmRlZmF1bHQuZXh0ZW5kKGdjdC5kZWZhdWx0KX0pO3ZhciBDOSx1bGU9ZigoKT0+e20wKCk7cGxlKCk7Qzk9Y2xhc3N7c3RhdGlje3ModGhpcywiQ3JvbkpvYiIpfWNvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5uZXh0RXhlY3V0aW9uVW5peD0wLHRoaXMuY3JvbkV4cHJlc3Npb249dCx0aGlzLmpvYkZ1bmN0aW9uPXIsdGhpcy5jcm9uUGFyc2VyPW5ldyBhOS5Dcm9uKHQpfWNoZWNrRXhlY3V0aW9uKCl7aWYodGhpcy5zdGF0dXM9PT0ic3RvcHBlZCIpcmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg7aWYodGhpcy5uZXh0RXhlY3V0aW9uVW5peD09PTAmJnRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKSxEYXRlLm5vdygpPnRoaXMubmV4dEV4ZWN1dGlvblVuaXgpe2xldCBlPXRoaXMuam9iRnVuY3Rpb24odGhpcy5uZXh0RXhlY3V0aW9uVW5peCk7ZSBpbnN0YW5jZW9mIFByb21pc2UmJmUuY2F0Y2godD0+Y29uc29sZS5sb2codCkpLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9dGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpfXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4fWdldE5leHRFeGVjdXRpb25UaW1lKCl7cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9RGF0ZS5ub3coKSt0aGlzLmdldFRpbWVUb05leHRFeGVjdXRpb24oKX1nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl7cmV0dXJuIHRoaXMuY3JvblBhcnNlci5tc1RvTmV4dCgpfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQifXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCJ9fX0pO3ZhciBmbGUscGxlPWYoKCk9PnttMCgpO3VsZSgpO2ZsZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJDcm9uTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuY3JvbmpvYnM9bmV3IExzLk9iamVjdE1hcCx0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9d2FrZUN5Y2xlKCl7dGhpcy5jeWNsZVdha2VEZWZlcnJlZCYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucmVzb2x2ZSgpfWFkZENyb25qb2IoZSx0KXtsZXQgcj1uZXcgQzkodGhpcyxlLHQpO3JldHVybiB0aGlzLmNyb25qb2JzLmFkZChyKSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKHIuc3RhcnQoKSx0aGlzLndha2VDeWNsZSgpKSxyfXJlbW92ZUNyb25qb2IoZSl7ZS5zdG9wKCksdGhpcy5jcm9uam9icy5yZW1vdmUoZSksdGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJnRoaXMud2FrZUN5Y2xlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cyE9PSJzdGFydGVkIil7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2ZvcihsZXQgZSBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpZS5zdGFydCgpO3RoaXMucnVuQ3JvbkN5Y2xlKCl9fWFzeW5jIHJ1bkNyb25DeWNsZSgpe2Zvcig7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCI7KXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW5ldyBjdC5EZWZlcnJlZDtsZXQgZT0xLzA7Zm9yKGxldCB0IG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl7dC5jaGVja0V4ZWN1dGlvbigpO2xldCByPXQuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpO3I8ZSYmKGU9cil9aWYoZTwxLzAmJmU+MCl0aGlzLmV4ZWN1dGlvblRpbWVvdXQ9bmV3IFV0LlRpbWVvdXQoZSksYXdhaXQgUHJvbWlzZS5yYWNlKFt0aGlzLmV4ZWN1dGlvblRpbWVvdXQucHJvbWlzZSx0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnByb21pc2VdKSx0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCk7ZWxzZXtpZihlPD0wKWNvbnRpbnVlO2F3YWl0IHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZX19dGhpcy5jeWNsZVdha2VEZWZlcnJlZD1udWxsfXN0b3AoKXt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKHRoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmV4ZWN1dGlvblRpbWVvdXQmJnRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKSx0aGlzLndha2VDeWNsZSgpKTtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RvcCgpfX19KTt2YXIgZzAsaGxlLHRiYSxhYmEsbWxlPWYoKCk9PnttMCgpO2cwPXt5ZWFyczpzKChhPTEpPT5hKjMxNTRlNywieWVhcnMiKSxtb250aHM6cygoYT0xKT0+YSoyNjI4ZTYsIm1vbnRocyIpLHdlZWtzOnMoKGE9MSk9PmEqNjA0OGU1LCJ3ZWVrcyIpLGRheXM6cygoYT0xKT0+YSo4NjRlNSwiZGF5cyIpLGhvdXJzOnMoKGE9MSk9PmEqMzZlNSwiaG91cnMiKSxtaW51dGVzOnMoKGE9MSk9PmEqNmU0LCJtaW51dGVzIiksc2Vjb25kczpzKChhPTEpPT5hKjFlMywic2Vjb25kcyIpfSxobGU9cyhhPT57bGV0IGU9MCx0PXMocj0+e2U9ZStyfSwiYWRkTWlsbGlTZWNvbmRzIik7cmV0dXJuIGEueWVhcnMmJnQoZzAueWVhcnMoYS55ZWFycykpLGEubW9udGhzJiZ0KGcwLm1vbnRocyhhLm1vbnRocykpLGEud2Vla3MmJnQoZzAud2Vla3MoYS53ZWVrcykpLGEuZGF5cyYmdChnMC5kYXlzKGEuZGF5cykpLGEuaG91cnMmJnQoZzAuaG91cnMoYS5ob3VycykpLGEubWludXRlcyYmdChnMC5taW51dGVzKGEubWludXRlcykpLGEuc2Vjb25kcyYmdChnMC5zZWNvbmRzKGEuc2Vjb25kcykpLGV9LCJnZXRNaWxsaVNlY29uZHNGcm9tVW5pdHMiKSx0YmE9cyhhPT5TOShhKSwiZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nIiksYWJhPXMoYT0+azkuZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZShhKSksImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZUFnb1RpbWUiKX0pO3ZhciBnbGUsYmN0PWYoKCk9PnttMCgpO21sZSgpO2dsZT1jbGFzcyBhIGV4dGVuZHMgRGF0ZXtzdGF0aWN7cyh0aGlzLCJFeHRlbmRlZERhdGUiKX1zdGF0aWMgZnJvbU1pbGxpcyhlKXtyZXR1cm4gbmV3IGEoZSl9c3RhdGljIGZyb21EYXRlKGUpe3JldHVybiBuZXcgYShlLmdldFRpbWUoKSl9c3RhdGljIGZyb21FdXJvcGVhbkRhdGUoZSl7bGV0IHQ9LyguKilcLiguKilcLiguKikvLmV4ZWMoZSksaT1uZXcgRGF0ZShwYXJzZUZsb2F0KHRbM10pLHBhcnNlRmxvYXQodFsyXSktMSxwYXJzZUZsb2F0KHRbMV0pKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyBhKGkpfXN0YXRpYyBmcm9tSHlwaGVkRGF0ZShlKXtsZXQgdD1uZXcgRGF0ZShlKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyBhKHQpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlQW5kVGltZShlLHQ9IjEyOjAwOjAwIixyPSJFdXJvcGUvQmVybGluIil7bGV0IGk9LyguKilcLiguKilcLiguKikvLmV4ZWMoZSksbz1zKGM9PmAwJHtjfWAuc2xpY2UoLTIpLCJzbGljZURhdGUiKSxuPWAke2lbM119LSR7byhpWzJdKX0tJHtvKGlbMV0pfVQke3R9YCxkPXgzLmRlZmF1bHQobikudG9EYXRlKCkuZ2V0VGltZSgpO3JldHVybiBuZXcgYShkKX1jb25zdHJ1Y3RvcihlPURhdGUubm93KCkpe3N1cGVyKGUpfWV4cG9ydFRvRXVyb3BlYW5EYXRlKCl7bGV0IGU9dGhpcy5leHBvcnRUb1VuaXRzKCk7cmV0dXJuYCR7ZS5kYXlTdHJpbmd9LiR7ZS5tb250aFN0cmluZ30uJHtlLnllYXJTdHJpbmd9YH1leHBvcnRUb0h5cGhlZFNvcnRhYmxlRGF0ZSgpe2xldCBlPXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke2UueWVhclN0cmluZ30tJHtlLm1vbnRoU3RyaW5nfS0ke2UuZGF5U3RyaW5nfWB9ZXhwb3J0VG9Vbml0cygpe2xldCBlPVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSx0PVsiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiLCJTdW5kYXkiXTtyZXR1cm57eWVhcjp0aGlzLmdldEZ1bGxZZWFyKCkseWVhclN0cmluZzpgJHt0aGlzLmdldEZ1bGxZZWFyKCl9YCxtb250aDp0aGlzLmdldE1vbnRoKCkrMSxtb250aFN0cmluZzooIjAiKyh0aGlzLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSxtb250aE5hbWU6ZVt0aGlzLmdldE1vbnRoKCldLGRheTp0aGlzLmdldERhdGUoKSxkYXlTdHJpbmc6KCIwIit0aGlzLmdldERhdGUoKSkuc2xpY2UoLTIpLGRheU9mVGhlV2Vlazp0aGlzLmdldERheSgpLGRheU9mVGhlV2Vla05hbWU6dFt0aGlzLmdldERheSgpXX19Zm9ybWF0KGUpe3JldHVybiB4My5kZWZhdWx0KHRoaXMuZ2V0VGltZSgpKS5mb3JtYXQoZSl9aXNUb2RheSgpe3JldHVybiB4My5kZWZhdWx0KHRoaXMuZ2V0VGltZSgpKS5pc1RvZGF5KCl9bGVzc1RpbWVQYXNzZWRUb05vdyhlKXtsZXQgdD1obGUoZSk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8dH1tb3JlVGltZVBhc3NlZFRvTm93KGUpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3coZSl9fX0pO3ZhciBibGUsdmN0PWYoKCk9PntibGU9Y2xhc3N7c3RhdGlje3ModGhpcywiSHJ0TWVhc3VyZW1lbnQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfXN0YXJ0KCl7dGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9taWxsaVN0YXJ0PURhdGUubm93KCl9c3RvcCgpe2lmKHRoaXMuX3N0YXJ0ZWQ9PT0hMSl7Y29uc29sZS5sb2coIkhhc24ndCBzdGFydGVkIHlldCIpO3JldHVybn1yZXR1cm4gdGhpcy5fbWlsbGlEaWZmPURhdGUubm93KCktdGhpcy5fbWlsbGlTdGFydCx0aGlzLm5hbm9TZWNvbmRzPXRoaXMuX21pbGxpRGlmZioxZTMsdGhpcy5taWxsaVNlY29uZHM9dGhpcy5fbWlsbGlEaWZmLHRoaXN9cmVzZXQoKXt0aGlzLm5hbm9TZWNvbmRzPW51bGwsdGhpcy5taWxsaVNlY29uZHM9bnVsbCx0aGlzLl9taWxsaVN0YXJ0PW51bGwsdGhpcy5fbWlsbGlEaWZmPW51bGwsdGhpcy5fc3RhcnRlZD0hMX19fSk7dmFyIHZsZSx4Y3Q9ZigoKT0+e20wKCk7dmxlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkludGVydmFsIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zdGF0dXM9ImluaXRpYWwiLHRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1udWxsLHRoaXMuaW50ZXJ2YWxKb2JzPVtdLHRoaXMuaW50ZXJ2YWxNaWxsaXNlY29uZHM9ZX1zdGFydCgpe3RoaXMuc3RhdHVzPSJzdGFydGVkIjtsZXQgZT1uZXcgRGF0ZTt0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249ZSxzKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT1lOylhd2FpdCBVdC5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0sInJ1bkludGVydmFsIikoKX1zdG9wKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1udWxsfWFkZEludGVydmFsSm9iKGUpe3RoaXMuaW50ZXJ2YWxKb2JzLnB1c2goZSl9ZXhlY3V0ZUludGVydmFsSm9icygpe2ZvcihsZXQgZSBvZiB0aGlzLmludGVydmFsSm9icyllKCl9fX0pO3ZhciBBaCx4bGU9ZigoKT0+e20wKCk7QWg9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJUaW1lU3RhbXAiKX1zdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyhlKXtyZXR1cm4gbmV3IGEoZSl9c3RhdGljIGZyb21UaW1lU3RhbXAoZSl7bGV0IHQ9bmV3IGE7cmV0dXJuIHQuY2hhbmdlPXQubWlsbGlTZWNvbmRzLWUubWlsbGlTZWNvbmRzLHR9Y29uc3RydWN0b3IoZSl7dGhpcy5jaGFuZ2U9bnVsbCxlP3R5cGVvZiBlPT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZShlKSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSx0PTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczxlLm1pbGxpU2Vjb25kcy10fWlzT2xkZXJUaGFuKGUsdD0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrdDxlLm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSx0PTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz5lLm1pbGxpU2Vjb25kcyt0fWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHMoZSl7bGV0IHI9bmV3IGEoKS5lcG9jaHRpbWUtZSxpPW5ldyBhKHIpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChpKX19fSk7dmFyIHlsZSx5Y3Q9ZigoKT0+e20wKCk7eGxlKCk7eWxlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlRpbWVyIil9Z2V0IHRpbWVMZWZ0KCl7cmV0dXJuIHRoaXMudGltZUluTWlsbGlzZWNvbmRzLXRoaXMucGF1c2VkQXQuY2hhbmdlfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3RhdGU9ImluaXRpYXRlZCIsdGhpcy5jb21wbGV0ZWREZWZlcnJlZD1jdC5kZWZlcigpLHRoaXMudGltZUluTWlsbGlzZWNvbmRzPWUsdGhpcy5jb21wbGV0ZWQ9dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5wcm9taXNlfXN0YXJ0KCl7aWYoIXRoaXMuc3RhcnRlZEF0KXRoaXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY29tcGxldGVkRGVmZXJyZWQucmVzb2x2ZSgpfSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcyksdGhpcy5zdGFydGVkQXQ9bmV3IEFoO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJ0aW1lciBoYXMgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSByZXN1bWUgaW5zdGVhZCIpfXBhdXNlKCl7dGhpcy5zdGFydGVkQXQmJihjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50VGltZW91dCksdGhpcy5jdXJyZW50VGltZW91dD1udWxsLHRoaXMucGF1c2VkQXQ9QWguZnJvbVRpbWVTdGFtcCh0aGlzLnN0YXJ0ZWRBdCkpfXJlc3VtZSgpe2lmKHRoaXMuc3RhcnRlZEF0KXRoaXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY29tcGxldGVkRGVmZXJyZWQucmVzb2x2ZSgpfSx0aGlzLnRpbWVMZWZ0KTtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIE5PVCBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIC5zdGFydCgpIGluc3RlYWQiKX1yZXNldCgpe3RoaXMucGF1c2UoKSx0aGlzLnN0YXJ0ZWRBdD1udWxsLHRoaXMucGF1c2VkQXQ9bnVsbH19fSk7dmFyIHkzPXt9O2x0KHkzLHtDcm9uSm9iOigpPT5DOSxDcm9uTWFuYWdlcjooKT0+ZmxlLEV4dGVuZGVkRGF0ZTooKT0+Z2xlLEhydE1lYXN1cmVtZW50OigpPT5ibGUsSW50ZXJ2YWw6KCk9PnZsZSxUaW1lU3RhbXA6KCk9PkFoLFRpbWVyOigpPT55bGUsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZTooKT0+YWJhLGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZzooKT0+dGJhLGdldE1pbGxpU2Vjb25kc0Zyb21Vbml0czooKT0+aGxlLHVuaXRzOigpPT5nMH0pO3ZhciB3Y3Q9ZigoKT0+e3BsZSgpO3VsZSgpO2JjdCgpO3ZjdCgpO3hjdCgpO3ljdCgpO3hsZSgpO21sZSgpfSk7dmFyIGtjdD1NbygoWV9yLE1jdCk9PnsidXNlIHN0cmljdCI7TWN0LmV4cG9ydHM9Y2xhc3N7c3RhdGlje3ModGhpcywiU3ltYm9sVHJlZU5vZGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucGFyZW50PW51bGwsdGhpcy5wcmV2aW91c1NpYmxpbmc9bnVsbCx0aGlzLm5leHRTaWJsaW5nPW51bGwsdGhpcy5maXJzdENoaWxkPW51bGwsdGhpcy5sYXN0Q2hpbGQ9bnVsbCx0aGlzLmNoaWxkcmVuVmVyc2lvbj0wLHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbCx0aGlzLmNhY2hlZEluZGV4PS0xLHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTn1nZXQgaXNBdHRhY2hlZCgpe3JldHVybiEhKHRoaXMucGFyZW50fHx0aGlzLnByZXZpb3VzU2libGluZ3x8dGhpcy5uZXh0U2libGluZyl9Z2V0IGhhc0NoaWxkcmVuKCl7cmV0dXJuISF0aGlzLmZpcnN0Q2hpbGR9Y2hpbGRyZW5DaGFuZ2VkKCl7dGhpcy5jaGlsZHJlblZlcnNpb249dGhpcy5jaGlsZHJlblZlcnNpb24rMSY0Mjk0OTY3Mjk1LHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbH1nZXRDYWNoZWRJbmRleChlKXtyZXR1cm4gdGhpcy5jYWNoZWRJbmRleFZlcnNpb24hPT1lLmNoaWxkcmVuVmVyc2lvbj8odGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOLC0xKTp0aGlzLmNhY2hlZEluZGV4fXNldENhY2hlZEluZGV4KGUsdCl7dGhpcy5jYWNoZWRJbmRleFZlcnNpb249ZS5jaGlsZHJlblZlcnNpb24sdGhpcy5jYWNoZWRJbmRleD10fX19KTt2YXIgemN0PU1vKChaX3IsU2N0KT0+eyJ1c2Ugc3RyaWN0IjtTY3QuZXhwb3J0cz1PYmplY3QuZnJlZXplKHtESVNDT05ORUNURUQ6MSxQUkVDRURJTkc6MixGT0xMT1dJTkc6NCxDT05UQUlOUzo4LENPTlRBSU5FRF9CWToxNn0pfSk7dmFyICRjdD1NbygoWF9yLExjdCk9PnsidXNlIHN0cmljdCI7dmFyIENjdD1TeW1ib2woKSxfY3Q9U3ltYm9sKCksYjA9U3ltYm9sKCksVGN0PVN5bWJvbCgpLG8xPWNsYXNze3N0YXRpY3tzKHRoaXMsIlRyZWVJdGVyYXRvciIpfWNvbnN0cnVjdG9yKGUsdCxyLGkpe3RoaXNbQ2N0XT1lLHRoaXNbX2N0XT10LHRoaXNbYjBdPXIsdGhpc1tUY3RdPWl9bmV4dCgpe2xldCBlPXRoaXNbQ2N0XSx0PXRoaXNbVGN0XSxyPXRoaXNbX2N0XTtpZighdGhpc1tiMF0pcmV0dXJue2RvbmU6ITAsdmFsdWU6cn07bGV0IGk9dGhpc1tiMF07cmV0dXJuIHQ9PT0xP3RoaXNbYjBdPWUuX25vZGUoaSkucHJldmlvdXNTaWJsaW5nOnQ9PT0yP3RoaXNbYjBdPWUuX25vZGUoaSkubmV4dFNpYmxpbmc6dD09PTM/dGhpc1tiMF09ZS5fbm9kZShpKS5wYXJlbnQ6dD09PTQ/dGhpc1tiMF09ZS5wcmVjZWRpbmcoaSx7cm9vdDpyfSk6dGhpc1tiMF09ZS5mb2xsb3dpbmcoaSx7cm9vdDpyfSkse2RvbmU6ITEsdmFsdWU6aX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkobzEucHJvdG90eXBlLFN5bWJvbC5pdGVyYXRvcix7dmFsdWU6cyhmdW5jdGlvbigpe3JldHVybiB0aGlzfSwidmFsdWUiKSx3cml0YWJsZTohMX0pLG8xLlBSRVY9MSxvMS5ORVhUPTIsbzEuUEFSRU5UPTMsbzEuUFJFQ0VESU5HPTQsbzEuRk9MTE9XSU5HPTUsT2JqZWN0LmZyZWV6ZShvMSksT2JqZWN0LmZyZWV6ZShvMS5wcm90b3R5cGUpLExjdC5leHBvcnRzPW8xfSk7dmFyIEFjdD1NbygoSl9yLERjdCk9PnsidXNlIHN0cmljdCI7dmFyIHNiYT1rY3QoKSx2MD16Y3QoKSx3bj0kY3QoKTtmdW5jdGlvbiB3bGUoKXtyZXR1cm4hMH1zKHdsZSwicmV0dXJuVHJ1ZSIpO2Z1bmN0aW9uIFBoKGEsZSl7cmV0dXJuIGFbYS5sZW5ndGgtMS1lXX1zKFBoLCJyZXZlcnNlQXJyYXlJbmRleCIpO3ZhciBLWj1jbGFzc3tzdGF0aWN7cyh0aGlzLCJTeW1ib2xUcmVlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zeW1ib2w9U3ltYm9sKGV8fCJTeW1ib2xUcmVlIGRhdGEiKX1pbml0aWFsaXplKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLGV9X25vZGUoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZVt0aGlzLnN5bWJvbF07cmV0dXJuIHR8fChlW3RoaXMuc3ltYm9sXT1uZXcgc2JhKX1oYXNDaGlsZHJlbihlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5oYXNDaGlsZHJlbn1maXJzdENoaWxkKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmZpcnN0Q2hpbGR9bGFzdENoaWxkKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmxhc3RDaGlsZH1wcmV2aW91c1NpYmxpbmcoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nfW5leHRTaWJsaW5nKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLm5leHRTaWJsaW5nfXBhcmVudChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5wYXJlbnR9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl7bGV0IHQscj1lO2Zvcig7dD10aGlzLl9ub2RlKHIpLmxhc3RDaGlsZDspcj10O3JldHVybiByfXByZWNlZGluZyhlLHQpe2xldCByPXQmJnQucm9vdDtpZihlPT09cilyZXR1cm4gbnVsbDtsZXQgaT10aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZztyZXR1cm4gaT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGkpOnRoaXMuX25vZGUoZSkucGFyZW50fWZvbGxvd2luZyhlLHQpe2xldCByPXQmJnQucm9vdCxvPSEodCYmdC5za2lwQ2hpbGRyZW4pJiZ0aGlzLl9ub2RlKGUpLmZpcnN0Q2hpbGQ7aWYobylyZXR1cm4gbztsZXQgbj1lO2Rve2lmKG49PT1yKXJldHVybiBudWxsO2xldCBsPXRoaXMuX25vZGUobikubmV4dFNpYmxpbmc7aWYobClyZXR1cm4gbDtuPXRoaXMuX25vZGUobikucGFyZW50fXdoaWxlKG4pO3JldHVybiBudWxsfWNoaWxkcmVuVG9BcnJheShlLHQpe2xldCByPXQmJnQuYXJyYXl8fFtdLGk9dCYmdC5maWx0ZXJ8fHdsZSxvPXQmJnQudGhpc0FyZ3x8dm9pZCAwLG49dGhpcy5fbm9kZShlKSxsPW4uZmlyc3RDaGlsZCxkPTA7Zm9yKDtsOyl7bGV0IGM9dGhpcy5fbm9kZShsKTtjLnNldENhY2hlZEluZGV4KG4sZCksaS5jYWxsKG8sbCkmJnIucHVzaChsKSxsPWMubmV4dFNpYmxpbmcsKytkfXJldHVybiByfWFuY2VzdG9yc1RvQXJyYXkoZSx0KXtsZXQgcj10JiZ0LmFycmF5fHxbXSxpPXQmJnQuZmlsdGVyfHx3bGUsbz10JiZ0LnRoaXNBcmd8fHZvaWQgMCxuPWU7Zm9yKDtuOylpLmNhbGwobyxuKSYmci5wdXNoKG4pLG49dGhpcy5fbm9kZShuKS5wYXJlbnQ7cmV0dXJuIHJ9dHJlZVRvQXJyYXkoZSx0KXtsZXQgcj10JiZ0LmFycmF5fHxbXSxpPXQmJnQuZmlsdGVyfHx3bGUsbz10JiZ0LnRoaXNBcmd8fHZvaWQgMCxuPWU7Zm9yKDtuOylpLmNhbGwobyxuKSYmci5wdXNoKG4pLG49dGhpcy5mb2xsb3dpbmcobix7cm9vdDplfSk7cmV0dXJuIHJ9Y2hpbGRyZW5JdGVyYXRvcihlLHQpe2xldCByPXQmJnQucmV2ZXJzZSxpPXRoaXMuX25vZGUoZSk7cmV0dXJuIG5ldyB3bih0aGlzLGUscj9pLmxhc3RDaGlsZDppLmZpcnN0Q2hpbGQscj93bi5QUkVWOnduLk5FWFQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gbmV3IHduKHRoaXMsZSx0aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZyx3bi5QUkVWKX1uZXh0U2libGluZ3NJdGVyYXRvcihlKXtyZXR1cm4gbmV3IHduKHRoaXMsZSx0aGlzLl9ub2RlKGUpLm5leHRTaWJsaW5nLHduLk5FWFQpfWFuY2VzdG9yc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgd24odGhpcyxlLGUsd24uUEFSRU5UKX10cmVlSXRlcmF0b3IoZSx0KXtsZXQgcj10JiZ0LnJldmVyc2U7cmV0dXJuIG5ldyB3bih0aGlzLGUscj90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpOmUscj93bi5QUkVDRURJTkc6d24uRk9MTE9XSU5HKX1pbmRleChlKXtsZXQgdD10aGlzLl9ub2RlKGUpLHI9dGhpcy5fbm9kZSh0LnBhcmVudCk7aWYoIXIpcmV0dXJuLTE7bGV0IGk9dC5nZXRDYWNoZWRJbmRleChyKTtpZihpPj0wKXJldHVybiBpO2k9MDtsZXQgbz1yLmZpcnN0Q2hpbGQ7aWYoci5jaGlsZEluZGV4Q2FjaGVkVXBUbyl7bGV0IG49dGhpcy5fbm9kZShyLmNoaWxkSW5kZXhDYWNoZWRVcFRvKTtvPW4ubmV4dFNpYmxpbmcsaT1uLmdldENhY2hlZEluZGV4KHIpKzF9Zm9yKDtvOyl7bGV0IG49dGhpcy5fbm9kZShvKTtpZihuLnNldENhY2hlZEluZGV4KHIsaSksbz09PWUpYnJlYWs7KytpLG89bi5uZXh0U2libGluZ31yZXR1cm4gci5jaGlsZEluZGV4Q2FjaGVkVXBUbz1lLGl9Y2hpbGRyZW5Db3VudChlKXtsZXQgdD10aGlzLl9ub2RlKGUpO3JldHVybiB0Lmxhc3RDaGlsZD90aGlzLmluZGV4KHQubGFzdENoaWxkKSsxOjB9Y29tcGFyZVRyZWVQb3NpdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiAwO2xldCByPVtdO3tsZXQgcD1lO2Zvcig7cDspe2lmKHA9PT10KXJldHVybiB2MC5DT05UQUlOU3x2MC5QUkVDRURJTkc7ci5wdXNoKHApLHA9dGhpcy5wYXJlbnQocCl9fWxldCBpPVtdO3tsZXQgcD10O2Zvcig7cDspe2lmKHA9PT1lKXJldHVybiB2MC5DT05UQUlORURfQll8djAuRk9MTE9XSU5HO2kucHVzaChwKSxwPXRoaXMucGFyZW50KHApfX1sZXQgbz1QaChyLDApO2lmKCFvfHxvIT09UGgoaSwwKSlyZXR1cm4gdjAuRElTQ09OTkVDVEVEO2xldCBuPTAsbD1NYXRoLm1pbihyLmxlbmd0aCxpLmxlbmd0aCk7Zm9yKGxldCBwPTA7cDxsOysrcCl7bGV0IHU9UGgocixwKSxtPVBoKGkscCk7aWYodSE9PW0pYnJlYWs7bj1wfWxldCBkPXRoaXMuaW5kZXgoUGgocixuKzEpKTtyZXR1cm4gdGhpcy5pbmRleChQaChpLG4rMSkpPGQ/djAuUFJFQ0VESU5HOnYwLkZPTExPV0lOR31yZW1vdmUoZSl7bGV0IHQ9dGhpcy5fbm9kZShlKSxyPXRoaXMuX25vZGUodC5wYXJlbnQpLGk9dGhpcy5fbm9kZSh0LnByZXZpb3VzU2libGluZyksbz10aGlzLl9ub2RlKHQubmV4dFNpYmxpbmcpO3JldHVybiByJiYoci5maXJzdENoaWxkPT09ZSYmKHIuZmlyc3RDaGlsZD10Lm5leHRTaWJsaW5nKSxyLmxhc3RDaGlsZD09PWUmJihyLmxhc3RDaGlsZD10LnByZXZpb3VzU2libGluZykpLGkmJihpLm5leHRTaWJsaW5nPXQubmV4dFNpYmxpbmcpLG8mJihvLnByZXZpb3VzU2libGluZz10LnByZXZpb3VzU2libGluZyksdC5wYXJlbnQ9bnVsbCx0LnByZXZpb3VzU2libGluZz1udWxsLHQubmV4dFNpYmxpbmc9bnVsbCx0LmNhY2hlZEluZGV4PS0xLHQuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTixyJiZyLmNoaWxkcmVuQ2hhbmdlZCgpLGV9aW5zZXJ0QmVmb3JlKGUsdCl7bGV0IHI9dGhpcy5fbm9kZShlKSxpPXRoaXMuX25vZGUoci5wcmV2aW91c1NpYmxpbmcpLG89dGhpcy5fbm9kZSh0KSxuPXRoaXMuX25vZGUoci5wYXJlbnQpO2lmKG8uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBvLnBhcmVudD1yLnBhcmVudCxvLnByZXZpb3VzU2libGluZz1yLnByZXZpb3VzU2libGluZyxvLm5leHRTaWJsaW5nPWUsci5wcmV2aW91c1NpYmxpbmc9dCxpJiYoaS5uZXh0U2libGluZz10KSxuJiZuLmZpcnN0Q2hpbGQ9PT1lJiYobi5maXJzdENoaWxkPXQpLG4mJm4uY2hpbGRyZW5DaGFuZ2VkKCksdH1pbnNlcnRBZnRlcihlLHQpe2xldCByPXRoaXMuX25vZGUoZSksaT10aGlzLl9ub2RlKHIubmV4dFNpYmxpbmcpLG89dGhpcy5fbm9kZSh0KSxuPXRoaXMuX25vZGUoci5wYXJlbnQpO2lmKG8uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBvLnBhcmVudD1yLnBhcmVudCxvLnByZXZpb3VzU2libGluZz1lLG8ubmV4dFNpYmxpbmc9ci5uZXh0U2libGluZyxyLm5leHRTaWJsaW5nPXQsaSYmKGkucHJldmlvdXNTaWJsaW5nPXQpLG4mJm4ubGFzdENoaWxkPT09ZSYmKG4ubGFzdENoaWxkPXQpLG4mJm4uY2hpbGRyZW5DaGFuZ2VkKCksdH1wcmVwZW5kQ2hpbGQoZSx0KXtsZXQgcj10aGlzLl9ub2RlKGUpLGk9dGhpcy5fbm9kZSh0KTtpZihpLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gci5oYXNDaGlsZHJlbj90aGlzLmluc2VydEJlZm9yZShyLmZpcnN0Q2hpbGQsdCk6KGkucGFyZW50PWUsci5maXJzdENoaWxkPXQsci5sYXN0Q2hpbGQ9dCxyLmNoaWxkcmVuQ2hhbmdlZCgpKSx0fWFwcGVuZENoaWxkKGUsdCl7bGV0IHI9dGhpcy5fbm9kZShlKSxpPXRoaXMuX25vZGUodCk7aWYoaS5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIHIuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRBZnRlcihyLmxhc3RDaGlsZCx0KTooaS5wYXJlbnQ9ZSxyLmZpcnN0Q2hpbGQ9dCxyLmxhc3RDaGlsZD10LHIuY2hpbGRyZW5DaGFuZ2VkKCkpLHR9fTtEY3QuZXhwb3J0cz1LWixLWi5UcmVlUG9zaXRpb249djB9KTt2YXIgWlosTW49ZigoKT0+e3QwKCk7eHN0KCk7YmkoKTtwMigpO3djdCgpO1paPWtvKEFjdCgpLDEpfSk7dmFyIE1sZSxQY3Q9ZigoKT0+e01uKCk7TWxlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkFzeW5jRXhlY3V0aW9uU3RhY2siKX1leGVjdXRpb25TbG90cz1bXTtpc1Byb2Nlc3Npbmc9ITE7bm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9MS8wO25vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudD0wO25vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZT1bXTthc3luYyBnZXRFeGNsdXNpdmVFeGVjdXRpb25TbG90KGUsdCl7bGV0IHI9Y3QuZGVmZXIoKSxpPXtmdW5jVG9FeGVjdXRlOmUsZXhlY3V0aW9uRGVmZXJyZWQ6cix0aW1lb3V0OnQsbW9kZToiZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChpKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLHIucHJvbWlzZX1hc3luYyBnZXROb25FeGNsdXNpdmVFeGVjdXRpb25TbG90KGUsdCl7bGV0IHI9Y3QuZGVmZXIoKSxpPXtmdW5jVG9FeGVjdXRlOmUsZXhlY3V0aW9uRGVmZXJyZWQ6cix0aW1lb3V0OnQsbW9kZToibm9uZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChpKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLHIucHJvbWlzZX1zZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeShlKXtpZighTnVtYmVyLmlzRmluaXRlKGUpfHxlPDEpdGhyb3cgbmV3IEVycm9yKCJub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSBtdXN0IGJlIGEgZmluaXRlIG51bWJlciA+PSAxIik7dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT1lfWdldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3l9Z2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnR9Z2V0UGVuZGluZ05vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLmxlbmd0aH1hc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKXtpZighdGhpcy5pc1Byb2Nlc3Npbmcpe2Zvcih0aGlzLmlzUHJvY2Vzc2luZz0hMDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wOyl7bGV0IGU9dGhpcy5leGVjdXRpb25TbG90c1swXTtpZihlLm1vZGU9PT0iZXhjbHVzaXZlIilhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KGUpLHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKTtlbHNle2xldCB0PVtdO2Zvcig7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MCYmdGhpcy5leGVjdXRpb25TbG90c1swXS5tb2RlPT09Im5vbmV4Y2x1c2l2ZSI7KXQucHVzaCh0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCkpO2F3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKHQpfX10aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QoZSl7dHJ5e2lmKGUudGltZW91dCl7bGV0IHQ9bmV3IFV0LlRpbWVvdXQoZS50aW1lb3V0KTt0cnl7bGV0IHI9YXdhaXQgUHJvbWlzZS5yYWNlKFtlLmZ1bmNUb0V4ZWN1dGUoKSx0LnByb21pc2UudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO3QuY2FuY2VsKCksZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHIpfWNhdGNoKHIpe3Rocm93IHQuY2FuY2VsKCkscn19ZWxzZXtsZXQgdD1hd2FpdCBlLmZ1bmNUb0V4ZWN1dGUoKTtlLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUodCl9fWNhdGNoKHQpe2UuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHQpfX1hc3luYyBleGVjdXRlTm9uRXhjbHVzaXZlU2xvdHMoZSl7bGV0IHQ9ZS5tYXAoYXN5bmMgcj0+e2F3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTt0cnl7aWYoci50aW1lb3V0KXtsZXQgaT1uZXcgVXQuVGltZW91dChyLnRpbWVvdXQpO3RyeXtsZXQgbz1hd2FpdCBQcm9taXNlLnJhY2UoW3IuZnVuY1RvRXhlY3V0ZSgpLGkucHJvbWlzZS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7aS5jYW5jZWwoKSxyLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUobyl9Y2F0Y2gobyl7dGhyb3cgaS5jYW5jZWwoKSxvfX1lbHNle2xldCBpPWF3YWl0IHIuZnVuY1RvRXhlY3V0ZSgpO3IuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShpKX19Y2F0Y2goaSl7ci5leGVjdXRpb25EZWZlcnJlZC5yZWplY3QoaSl9ZmluYWxseXt0aGlzLnJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl9fSk7YXdhaXQgUHJvbWlzZS5hbGwodCl9d2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ8dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT8odGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxQcm9taXNlLnJlc29sdmUoKSk6bmV3IFByb21pc2UoZT0+e3RoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCk9Pnt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLGUoKX0pfSl9cmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKXt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO2xldCBlPXRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnNoaWZ0KCk7ZSYmZSgpfX19KTt2YXIga2xlLEVjdD1mKCgpPT57TW4oKTtrbGU9Y2xhc3N7c3RhdGlje3ModGhpcywiQmFja3ByZXNzdXJlZEFycmF5Iil9ZGF0YTtoaWdoV2F0ZXJNYXJrO2hhc1NwYWNlPW5ldyBfYS5yeGpzLlN1YmplY3Q7aXRlbXNBdmFpbGFibGU9bmV3IF9hLnJ4anMuU3ViamVjdDtpc0Rlc3Ryb3llZD0hMTtjb25zdHJ1Y3RvcihlPTE2KXt0aGlzLmRhdGE9W10sdGhpcy5oaWdoV2F0ZXJNYXJrPWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RofXB1c2goZSl7dGhpcy5kYXRhLnB1c2goZSksdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCJpdGVtc0F2YWlsYWJsZSIpO2xldCB0PXRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO3JldHVybiB0JiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIiksdH1wdXNoTWFueShlKXtmb3IobGV0IHQgb2YgZSl0aGlzLnB1c2godCk7cmV0dXJuIHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfXNoaWZ0KCl7bGV0IGU9dGhpcy5kYXRhLnNoaWZ0KCk7cmV0dXJuIHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIiksZX1wZWVrKCl7cmV0dXJuIHRoaXMuZGF0YVswXX1jaGVja1NwYWNlQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg8dGhpcy5oaWdoV2F0ZXJNYXJrfWNoZWNrSGFzSXRlbXMoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aD4wfXdhaXRGb3JTcGFjZSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57aWYodGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCl8fHRoaXMuaXNEZXN0cm95ZWQpZSgpO2Vsc2V7bGV0IHQ9dGhpcy5oYXNTcGFjZS5zdWJzY3JpYmUoe25leHQ6cygoKT0+e3QudW5zdWJzY3JpYmUoKSxlKCl9LCJuZXh0IiksY29tcGxldGU6cygoKT0+e2UoKX0sImNvbXBsZXRlIil9KX19KX13YWl0Rm9ySXRlbXMoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2lmKHRoaXMuZGF0YS5sZW5ndGg+MHx8dGhpcy5pc0Rlc3Ryb3llZCllKCk7ZWxzZXtsZXQgdD10aGlzLml0ZW1zQXZhaWxhYmxlLnN1YnNjcmliZSh7bmV4dDpzKCgpPT57dC51bnN1YnNjcmliZSgpLGUoKX0sIm5leHQiKSxjb21wbGV0ZTpzKCgpPT57ZSgpfSwiY29tcGxldGUiKX0pfX0pfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuZGF0YVtTeW1ib2wuaXRlcmF0b3JdKCl9ZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95ZWQ9ITAsdGhpcy5oYXNTcGFjZS5jb21wbGV0ZSgpLHRoaXMuaXRlbXNBdmFpbGFibGUuY29tcGxldGUoKX19fSk7dmFyIHczLFhaPWYoKCk9PntNbigpO3czPWNsYXNzIGF7c3RhdGlje3ModGhpcywiRmFzdE1hcCIpfW1hcE9iamVjdD1uZXcgTWFwO2lzVW5pcXVlS2V5KGUpe3JldHVybiF0aGlzLm1hcE9iamVjdC5oYXMoZSl9aGFzKGUpe3JldHVybiB0aGlzLm1hcE9iamVjdC5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5tYXBPYmplY3Quc2l6ZX1hZGRUb01hcChlLHQscil7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkoZSl8fHImJnIuZm9yY2U/KHRoaXMubWFwT2JqZWN0LnNldChlLHQpLCEwKTohMX1nZXRCeUtleShlKXtyZXR1cm4gdGhpcy5tYXBPYmplY3QuZ2V0KGUpfXJlbW92ZUZyb21NYXAoZSl7bGV0IHQ9dGhpcy5tYXBPYmplY3QuZ2V0KGUpO3JldHVybiB0aGlzLm1hcE9iamVjdC5kZWxldGUoZSksdH1nZXRLZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5tYXBPYmplY3Qua2V5cygpKX12YWx1ZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1hcE9iamVjdC52YWx1ZXMoKSl9ZW50cmllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwT2JqZWN0LmVudHJpZXMoKSl9Y2xlYW4oKXt0aGlzLm1hcE9iamVjdC5jbGVhcigpfWNvbmNhdChlKXtsZXQgdD1uZXcgYTtmb3IobGV0IHIgb2YgdGhpcy5nZXRLZXlzKCkpdC5hZGRUb01hcChyLHRoaXMuZ2V0QnlLZXkocikpO2ZvcihsZXQgciBvZiBlLmdldEtleXMoKSl0LmFkZFRvTWFwKHIsZS5nZXRCeUtleShyKSx7Zm9yY2U6ITB9KTtyZXR1cm4gdH1hZGRBbGxGcm9tT3RoZXIoZSl7Zm9yKGxldCB0IG9mIGUuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAodCxlLmdldEJ5S2V5KHQpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQoZSl7Zm9yKGxldCB0IG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgcj10aGlzLmdldEJ5S2V5KHQpO2lmKGF3YWl0IGUocikpcmV0dXJuIHJ9fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmVudHJpZXMoKX19fSk7dmFyIEljdCxfbCxfOT1mKCgpPT57TW4oKTtYWigpO0ljdD1zKChhPSJ1bmkiKT0+YCR7YX14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLGU9PntsZXQgdD1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKGU9PT0ieCI/dDp0JjN8OCkudG9TdHJpbmcoMTYpfSksInVuaSIpLF9sPWNsYXNzIGF7c3RhdGlje3ModGhpcywiT2JqZWN0TWFwIil9ZmFzdE1hcD1uZXcgdzM7cmV2ZXJzZU1hcD1uZXcgTWFwO2V2ZW50U3ViamVjdD1uZXcgX2Eucnhqcy5TdWJqZWN0O2NvbnN0cnVjdG9yKCl7fWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLnNpemV9YWRkTWFwcGVkVW5pcXVlKGUsdCl7dGhpcy5mYXN0TWFwLmFkZFRvTWFwKGUsdCksdGhpcy5yZXZlcnNlTWFwLnNldCh0LGUpfWdldE1hcHBlZFVuaXF1ZShlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGUpfXJlbW92ZU1hcHBlZFVuaXF1ZShlKXtsZXQgdD10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChlKTtyZXR1cm4gdCE9PXZvaWQgMCYmKHRoaXMucmV2ZXJzZU1hcC5kZWxldGUodCksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6dH0pKSx0fWFkZChlKXtsZXQgdD10aGlzLnJldmVyc2VNYXAuZ2V0KGUpO2lmKHQhPT12b2lkIDApcmV0dXJuIHQ7bGV0IHI9SWN0KCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUocixlKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDplfSkscn1hZGRBcnJheShlKXtmb3IobGV0IHQgb2YgZSl0aGlzLmFkZCh0KX1jaGVja0Zvck9iamVjdChlKXtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmhhcyhlKX1nZXRLZXlGb3JPYmplY3QoZSl7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5nZXQoZSk/P251bGx9YXN5bmMgZmluZChlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmZpbmQoZSl9ZmluZFN5bmMoZSl7Zm9yKGxldCB0IG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYoZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCkpKXJldHVybiB0aGlzLmdldE1hcHBlZFVuaXF1ZSh0KX1hc3luYyBmaW5kT25lQW5kUmVtb3ZlKGUpe2xldCB0PWF3YWl0IHRoaXMuZmluZChlKTtyZXR1cm4gdCYmdGhpcy5yZW1vdmUodCksdH1maW5kT25lQW5kUmVtb3ZlU3luYyhlKXtsZXQgdD10aGlzLmZpbmRTeW5jKGUpO3JldHVybiB0JiZ0aGlzLnJlbW92ZSh0KSx0fWFzeW5jIGZvckVhY2goZSl7Zm9yKGxldCB0IG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpYXdhaXQgZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCkpfWdldE9uZUFuZFJlbW92ZSgpe2xldCBlPXRoaXMuZmFzdE1hcC5nZXRLZXlzKCk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO3tsZXQgdD1lWzBdLHI9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAodCk7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5kZWxldGUociksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6cn0pLHJ9fWdldEFycmF5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC52YWx1ZXMoKX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5zaXplPT09MH1yZW1vdmUoZSl7bGV0IHQ9dGhpcy5yZXZlcnNlTWFwLmdldChlKTtpZih0IT09dm9pZCAwKXtsZXQgcj10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcCh0KTtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShyKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDpyfSkscn1yZXR1cm4gbnVsbH13aXBlKCl7bGV0IGU9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtmb3IobGV0IHQgb2YgZSl7bGV0IHI9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAodCk7dGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShyKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDpyfSl9fWNvbmNhdChlKXtsZXQgdD1uZXcgYTt0LmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHRoaXMuZmFzdE1hcCksdC5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApO2ZvcihsZXQgciBvZiB0LmZhc3RNYXAuZ2V0S2V5cygpKXQucmV2ZXJzZU1hcC5zZXQodC5mYXN0TWFwLmdldEJ5S2V5KHIpLHIpO3JldHVybiB0fWFkZEFsbEZyb21PdGhlcihlKXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCk7Zm9yKGxldCB0IG9mIGUuZmFzdE1hcC5nZXRLZXlzKCkpdGhpcy5yZXZlcnNlTWFwLnNldChlLmZhc3RNYXAuZ2V0QnlLZXkodCksdCl9bWFwKGUpe3JldHVybiB0aGlzLmdldEFycmF5KCkubWFwKGUpfWZpbHRlcihlKXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLmZpbHRlcihlKX1yZWR1Y2UoZSx0KXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLnJlZHVjZShlLHQpfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKVtTeW1ib2wuaXRlcmF0b3JdKCl9ZGVzdHJveSgpe3RoaXMud2lwZSgpLHRoaXMucmV2ZXJzZU1hcC5jbGVhcigpLHRoaXMuZXZlbnRTdWJqZWN0LmNvbXBsZXRlKCl9fX0pO3ZhciBUOSxTbGU9ZigoKT0+e01uKCk7emxlKCk7VDk9Y2xhc3N7c3RhdGlje3ModGhpcywiSW50ZXJlc3QiKX1vcHRpb25zO2ludGVyZXN0TWFwUmVmO29yaWdpbmFsSW50ZXJlc3Q7Y29tcGFyaXNvbkZ1bmM7ZGVzdHJ1Y3Rpb25UaW1lcj1uZXcgeTMuVGltZXIoMWU0KTtpc0Z1bGxmaWxsZWQ9ITE7aXNEZXN0cm95ZWQ9ITE7ZnVsbGZpbGxtZW50U3RvcmU9W107bWFya0xvc3RUaW1lb3V0PW51bGw7Z2V0IGNvbXBhcmlzb25TdHJpbmcoKXtyZXR1cm4gdGhpcy5jb21wYXJpc29uRnVuYyh0aGlzLm9yaWdpbmFsSW50ZXJlc3QpfWludGVyZXN0RGVmZXJyZWQ9bmV3IGN0LkRlZmVycmVkO2ludGVyZXN0RnVsbGZpbGxlZD10aGlzLmludGVyZXN0RGVmZXJyZWQucHJvbWlzZTtmdWxsZmlsbEludGVyZXN0KGUpe3RoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUoZSksdGhpcy5kZXN0cm95KCl9Y29uc3RydWN0b3IoZSx0LHIsaSl7dGhpcy5pbnRlcmVzdE1hcFJlZj1lLHRoaXMub3JpZ2luYWxJbnRlcmVzdD10LHRoaXMuY29tcGFyaXNvbkZ1bmM9cix0aGlzLm9wdGlvbnM9aSx0aGlzLmRlc3RydWN0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9Pnt0aGlzLmlzRGVzdHJveWVkfHx0aGlzLmRlc3Ryb3koKX0pLHRoaXMub3B0aW9ucz8ubWFya0xvc3RBZnRlckRlZmF1bHQmJih0aGlzLm1hcmtMb3N0VGltZW91dD1uZXcgVXQuVGltZW91dCh0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQpLHRoaXMubWFya0xvc3RUaW1lb3V0LnByb21pc2UudGhlbigoKT0+e3RoaXMuaXNEZXN0cm95ZWR8fHRoaXMubWFya0xvc3QoKX0pKX1kZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuaXNEZXN0cm95ZWQ9ITAsdGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCksdGhpcy5tYXJrTG9zdFRpbWVvdXQmJih0aGlzLm1hcmtMb3N0VGltZW91dC5jYW5jZWwoKSx0aGlzLm1hcmtMb3N0VGltZW91dD1udWxsKSx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3RNYXBSZWYucmVtb3ZlSW50ZXJlc3QodGhpcyksIXRoaXMuaXNGdWxsZmlsbGVkJiZ0aGlzLm9wdGlvbnM/LmRlZmF1bHRGdWxsZmlsbG1lbnQmJih0aGlzLmlzRnVsbGZpbGxlZD0hMCx0aGlzLmludGVyZXN0RGVmZXJyZWQucmVzb2x2ZSh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCkpKX1tYXJrTG9zdCgpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5zdGFydCgpfXJlbmV3KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCl9fX0pO3ZhciBDbGUsemxlPWYoKCk9PntNbigpO185KCk7U2xlKCk7Q2xlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkludGVyZXN0TWFwIil9b3B0aW9ucztpbnRlcmVzdE9iamVjdE1hcD1uZXcgX2w7aW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nPW5ldyBNYXA7Y29tcGFyaXNvbkZ1bmM7Y29uc3RydWN0b3IoZSx0PXt9KXt0aGlzLmNvbXBhcmlzb25GdW5jPWUsdGhpcy5vcHRpb25zPXR9YXN5bmMgYWRkSW50ZXJlc3QoZSx0KXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKGUpLGksbz10aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5nZXQocik7cmV0dXJuIG8/KGk9byxpLnJlbmV3KCkpOihpPW5ldyBUOSh0aGlzLGUsdGhpcy5jb21wYXJpc29uRnVuYyx7bWFya0xvc3RBZnRlckRlZmF1bHQ6dGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0LGRlZmF1bHRGdWxsZmlsbG1lbnQ6dH0pLHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuYWRkKGkpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLnNldChyLGkpKSx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5wdXNoKGkpLGl9aW50ZXJlc3RPYnNlcnZhYmxlPW5ldyBfYS5PYnNlcnZhYmxlSW50YWtlO3JlbW92ZUludGVyZXN0KGUpe3RoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZE9uZUFuZFJlbW92ZVN5bmModD0+ZS5jb21wYXJpc29uU3RyaW5nPT09dC5jb21wYXJpc29uU3RyaW5nKSx0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5kZWxldGUoZS5jb21wYXJpc29uU3RyaW5nKX1jaGVja0ludGVyZXN0KGUpe2xldCB0PXRoaXMuY29tcGFyaXNvbkZ1bmMoZSk7cmV0dXJuIHRoaXMuY2hlY2tJbnRlcmVzdEJ5U3RyaW5nKHQpfWNoZWNrSW50ZXJlc3RCeVN0cmluZyhlKXtyZXR1cm4gdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuaGFzKGUpfWluZm9ybUxvc3RJbnRlcmVzdChlKXtsZXQgdD10aGlzLmZpbmRJbnRlcmVzdChlKTt0JiZ0Lm1hcmtMb3N0KCl9ZmluZEludGVyZXN0KGUpe2xldCB0PXRoaXMuY29tcGFyaXNvbkZ1bmMoZSk7cmV0dXJuIHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmdldCh0KT8/bnVsbH1kZXN0cm95KCl7bGV0IGU9dGhpcy5pbnRlcmVzdE9iamVjdE1hcC5nZXRBcnJheSgpO2ZvcihsZXQgdCBvZiBlKXQuZGVzdHJveSgpO3RoaXMuaW50ZXJlc3RPYmplY3RNYXAud2lwZSgpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmNsZWFyKCksdGhpcy5pbnRlcmVzdE9ic2VydmFibGUuc2lnbmFsQ29tcGxldGUoKX19fSk7dmFyIF9sZSxOY3Q9ZigoKT0+e01uKCk7X2xlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkxpbWl0ZWRBcnJheSIpfWFycmF5PVtdO2FycmF5TGltaXQ7Y29uc3RydWN0b3IoZSl7dGhpcy5hcnJheUxpbWl0PWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmFycmF5Lmxlbmd0aH1hZGRPbmUoZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9YWRkTWFueShlKXtmb3IobGV0IHQgb2YgZSl0aGlzLmFkZE9uZSh0KX1zZXRMaW1pdChlKXt0aGlzLmFycmF5TGltaXQ9ZSx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWdldEF2ZXJhZ2UoKXtpZih0aGlzLmFycmF5Lmxlbmd0aD09PTApcmV0dXJuIDA7aWYodHlwZW9mIHRoaXMuYXJyYXlbMF09PSJudW1iZXIiKXtsZXQgZT0wO2ZvcihsZXQgdCBvZiB0aGlzLmFycmF5KWU9ZSt0O3JldHVybiBlL3RoaXMuYXJyYXkubGVuZ3RofWVsc2UgcmV0dXJuIG51bGx9cmVtb3ZlKGUpe2xldCB0PXRoaXMuYXJyYXkuaW5kZXhPZihlKTtyZXR1cm4gdCE9PS0xPyh0aGlzLmFycmF5LnNwbGljZSh0LDEpLCEwKTohMX1jbGVhcigpe3RoaXMuYXJyYXkubGVuZ3RoPTB9Z2V0QXJyYXkoKXtyZXR1cm5bLi4udGhpcy5hcnJheV19W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5hcnJheVtTeW1ib2wuaXRlcmF0b3JdKCl9fX0pO3ZhciBUbGUsUmN0PWYoKCk9PntNbigpO185KCk7VGxlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkxvb3BUcmFja2VyIil9cmVmZXJlbmNlT2JqZWN0TWFwPW5ldyBfbDtjb25zdHJ1Y3Rvcigpe31jaGVja0FuZFRyYWNrKGUpe3JldHVybiB0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5jaGVja0Zvck9iamVjdChlKT8hMToodGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuYWRkKGUpLCEwKX1yZXNldCgpe3RoaXMucmVmZXJlbmNlT2JqZWN0TWFwLndpcGUoKX1kZXN0cm95KCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuZGVzdHJveSgpfX19KTt2YXIgTDksTGxlPWYoKCk9PntNbigpO0w5PWNsYXNze3N0YXRpY3tzKHRoaXMsIlN0cmluZ21hcCIpfV9zdHJpbmdBcnJheT1bXTtfdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W107Y29uc3RydWN0b3IoKXt9YWRkU3RyaW5nKGUpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2goZSksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkoZSl7Zm9yKGxldCB0IG9mIGUpdGhpcy5hZGRTdHJpbmcodCl9cmVtb3ZlU3RyaW5nKGUpe3RoaXMuX3N0cmluZ0FycmF5PXRoaXMuX3N0cmluZ0FycmF5LmZpbHRlcih0PT50IT09ZSksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9d2lwZSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMubm90aWZ5VHJpZ2dlcigpfWNoZWNrU3RyaW5nKGUpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5pbmRleE9mKGUpIT09LTF9Y2hlY2tNaW5pbWF0Y2goZSl7bGV0IHQ9bmV3IFE3LlNtYXJ0TWF0Y2goZSkscj0hMTtmb3IobGV0IGkgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5tYXRjaChpKSYmKHI9ITApO3JldHVybiByfWNoZWNrSXNFbXB0eSgpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5sZW5ndGg9PT0wfWdldFN0cmluZ0FycmF5KCl7bGV0IGU9W107Zm9yKGxldCB0IG9mIHRoaXMuX3N0cmluZ0FycmF5KWUucHVzaCh0KTtyZXR1cm4gZX1yZWdpc3RlclVudGlsVHJ1ZShlLHQpe2xldCByPWN0LmRlZmVyKCk7cmV0dXJuIHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LnB1c2goKCk9PntsZXQgaT1lKHRoaXMuZ2V0U3RyaW5nQXJyYXkoKSk7cmV0dXJuIGk9PT0hMCYmKHQmJnQoKSxyLnJlc29sdmUoKSksaX0pLHRoaXMubm90aWZ5VHJpZ2dlcigpLHIucHJvbWlzZX1ub3RpZnlUcmlnZ2VyKCl7bGV0IGU9dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkuZmlsdGVyKHQ9PiF0KCkpO3RoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PWV9ZGVzdHJveSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdfX19KTt2YXIgJDksJGxlPWYoKCk9PntNbigpOyQ5PWNsYXNze3N0YXRpY3tzKHRoaXMsIlRpbWVkQWdncmVndG9yIil9b3B0aW9ucztzdG9yYWdlQXJyYXk9W107aXNTdG9wcGVkPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz1lfWFnZ3JlZ2F0aW9uVGltZXI7Y2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpe2lmKHRoaXMuaXNTdG9wcGVkKXJldHVybjtsZXQgZT1zKCgpPT57dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW5ldyB5My5UaW1lcih0aGlzLm9wdGlvbnMuYWdncmVnYXRpb25JbnRlcnZhbEluTWlsbGlzKSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9PntpZih0aGlzLmlzU3RvcHBlZCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufWxldCB0PXRoaXMuc3RvcmFnZUFycmF5O2lmKHQubGVuZ3RoPT09MCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufXRoaXMuc3RvcmFnZUFycmF5PVtdLGUoKSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbih0KX0pLHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpfSwiYWRkQWdncmVnYXRpb25UaW1lciIpO3RoaXMuYWdncmVnYXRpb25UaW1lcnx8ZSgpfWFkZChlKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuc3RvcmFnZUFycmF5LnB1c2goZSksdGhpcy5jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCkpfXN0b3AoZT0hMSl7aWYodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5hZ2dyZWdhdGlvblRpbWVyJiYodGhpcy5hZ2dyZWdhdGlvblRpbWVyLnJlc2V0KCksdGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGwpLGUmJnRoaXMuc3RvcmFnZUFycmF5Lmxlbmd0aD4wKXtsZXQgdD10aGlzLnN0b3JhZ2VBcnJheTt0aGlzLnN0b3JhZ2VBcnJheT1bXSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbih0KX1lbHNlIHRoaXMuc3RvcmFnZUFycmF5PVtdfXJlc3RhcnQoKXt0aGlzLmlzU3RvcHBlZD0hMX19fSk7dmFyIERsZSxPY3Q9ZigoKT0+e01uKCk7RGxlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlRyZWUiKX1zeW1ib2xUcmVlO2NvbnN0cnVjdG9yKCl7dGhpcy5zeW1ib2xUcmVlPW5ldyBaWi5kZWZhdWx0fWluaXRpYWxpemUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbml0aWFsaXplKGUpfWhhc0NoaWxkcmVuKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaGFzQ2hpbGRyZW4oZSl9Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZpcnN0Q2hpbGQoZSl9bGFzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdENoaWxkKGUpfXByZXZpb3VzU2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZyhlKX1uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nKGUpfXBhcmVudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnBhcmVudChlKX1sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpfXByZWNlZGluZyhlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlY2VkaW5nKGUsdCl9Zm9sbG93aW5nKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5mb2xsb3dpbmcoZSx0KX1jaGlsZHJlblRvQXJyYXkoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuVG9BcnJheShlLHQpfWFuY2VzdG9yc1RvQXJyYXkoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc1RvQXJyYXkoZSx0KX10cmVlVG9BcnJheShlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZVRvQXJyYXkoZSx0KX1jaGlsZHJlbkl0ZXJhdG9yKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkl0ZXJhdG9yKGUsdCl9cHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpfW5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl9YW5jZXN0b3JzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNJdGVyYXRvcihlKX10cmVlSXRlcmF0b3IoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVJdGVyYXRvcihlLHQpfWluZGV4KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5kZXgoZSl9Y2hpbGRyZW5Db3VudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuQ291bnQoZSl9Y29tcGFyZVRyZWVQb3NpdGlvbihlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY29tcGFyZVRyZWVQb3NpdGlvbihlLHQpfXJlbW92ZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnJlbW92ZShlKX1pbnNlcnRCZWZvcmUoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZShlLHQpfWluc2VydEFmdGVyKGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRBZnRlcihlLHQpfXByZXBlbmRDaGlsZChlLHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlcGVuZENoaWxkKGUsdCl9YXBwZW5kQ2hpbGQoZSx0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKGUsdCl9dG9Kc29uV2l0aEhpZXJhY2h5KGUpe2xldCB0PXMocj0+e2xldCBpPVtdO2lmKHRoaXMuaGFzQ2hpbGRyZW4ocikpe2xldCBvPXRoaXMuY2hpbGRyZW5Ub0FycmF5KHIse30pO2ZvcihsZXQgbiBvZiBvKWkucHVzaCh0KG4pKX1yZXR1cm57ZGF0YTpyLGNoaWxkcmVuOml9fSwiYnVpbGROb2RlIik7cmV0dXJuIHQoZSl9ZnJvbUpzb25XaXRoSGllcmFjaHkoZSx0KXtsZXQgcj1zKChpLG8pPT57bGV0IG49dD90KGkuZGF0YSk6aS5kYXRhO3RoaXMuaW5pdGlhbGl6ZShuKSxvJiZ0aGlzLmFwcGVuZENoaWxkKG8sbik7Zm9yKGxldCBsIG9mIGkuY2hpbGRyZW4pcihsLG4pO3JldHVybiBufSwiYnVpbGRUcmVlIik7cmV0dXJuIHIoZSl9fX0pO3ZhciBMcz17fTtsdChMcyx7QXN5bmNFeGVjdXRpb25TdGFjazooKT0+TWxlLEJhY2twcmVzc3VyZWRBcnJheTooKT0+a2xlLEZhc3RNYXA6KCk9PnczLEludGVyZXN0OigpPT5UOSxJbnRlcmVzdE1hcDooKT0+Q2xlLExpbWl0ZWRBcnJheTooKT0+X2xlLExvb3BUcmFja2VyOigpPT5UbGUsT2JqZWN0TWFwOigpPT5fbCxTdHJpbmdtYXA6KCk9Pkw5LFRpbWVkQWdncmVnYXRvcjooKT0+JDksVGltZWRBZ2dyZWd0b3I6KCk9PiQ5LFRyZWU6KCk9PkRsZSx1bmk6KCk9PkljdH0pO3ZhciB6OT1mKCgpPT57UGN0KCk7RWN0KCk7WFooKTt6bGUoKTtTbGUoKTtOY3QoKTtSY3QoKTtfOSgpO0xsZSgpOyRsZSgpOyRsZSgpO09jdCgpfSk7dmFyIHcwPXt9O2x0KHcwLHthcmVVaW50OEFycmF5c0VxdWFsOigpPT5wYmEsYXNzZXJ0VWludDhBcnJheTooKT0+eTAsYXNzZXJ0VWludDhBcnJheU9yQXJyYXlCdWZmZXI6KCk9PlZjdCxiYXNlNjRUb1N0cmluZzooKT0+dmJhLGJhc2U2NFRvVWludDhBcnJheTooKT0+R2N0LGNvbXBhcmVVaW50OEFycmF5czooKT0+ZmJhLGNvbmNhdFVpbnQ4QXJyYXlzOigpPT51YmEsZ2V0VWludEJFOigpPT5NYmEsaGV4VG9VaW50OEFycmF5OigpPT53YmEsaW5jbHVkZXM6KCk9PmtiYSxpbmRleE9mOigpPT5ZY3QsaXNVaW50OEFycmF5OigpPT5BbGUsc3RyaW5nVG9CYXNlNjQ6KCk9PmJiYSxzdHJpbmdUb1VpbnQ4QXJyYXk6KCk9PlVjdCx0b1VpbnQ4QXJyYXk6KCk9PmRiYSx1aW50OEFycmF5VG9CYXNlNjQ6KCk9PldjdCx1aW50OEFycmF5VG9IZXg6KCk9PnliYSx1aW50OEFycmF5VG9TdHJpbmc6KCk9PmpjdH0pO2Z1bmN0aW9uIEZjdChhLGUsdCl7cmV0dXJuIGE/YS5jb25zdHJ1Y3Rvcj09PWU/ITA6aWJhLmNhbGwoYSk9PT10OiExfWZ1bmN0aW9uIEFsZShhKXtyZXR1cm4gRmN0KGEsVWludDhBcnJheSxvYmEpfWZ1bmN0aW9uIGxiYShhKXtyZXR1cm4gRmN0KGEsQXJyYXlCdWZmZXIsbmJhKX1mdW5jdGlvbiBjYmEoYSl7cmV0dXJuIEFsZShhKXx8bGJhKGEpfWZ1bmN0aW9uIHkwKGEpe2lmKCFBbGUoYSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAsIGdvdCBcYCR7dHlwZW9mIGF9XGBgKX1mdW5jdGlvbiBWY3QoYSl7aWYoIWNiYShhKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCBvciBcYEFycmF5QnVmZmVyXGAsIGdvdCBcYCR7dHlwZW9mIGF9XGBgKX1mdW5jdGlvbiBkYmEoYSl7aWYoYSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheShhKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoYSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGEuYnVmZmVyLGEuYnl0ZU9mZnNldCxhLmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlLCBnb3QgXGAke3R5cGVvZiBhfVxgLmApfWZ1bmN0aW9uIHViYShhLGUpe2lmKGEubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7ZT8/PWEucmVkdWNlKChpLG8pPT5pK28ubGVuZ3RoLDApO2xldCB0PW5ldyBVaW50OEFycmF5KGUpLHI9MDtmb3IobGV0IGkgb2YgYSl5MChpKSx0LnNldChpLHIpLHIrPWkubGVuZ3RoO3JldHVybiB0fWZ1bmN0aW9uIHBiYShhLGUpe2lmKHkwKGEpLHkwKGUpLGE9PT1lKXJldHVybiEwO2lmKGEubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0KyspaWYoYVt0XSE9PWVbdF0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZmJhKGEsZSl7eTAoYSkseTAoZSk7bGV0IHQ9TWF0aC5taW4oYS5sZW5ndGgsZS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dDtyKyspe2xldCBpPWFbcl0tZVtyXTtpZihpIT09MClyZXR1cm4gTWF0aC5zaWduKGkpfXJldHVybiBNYXRoLnNpZ24oYS5sZW5ndGgtZS5sZW5ndGgpfWZ1bmN0aW9uIGpjdChhLGU9InV0ZjgiKXtyZXR1cm4gVmN0KGEpLEJjdFtlXT8/PW5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKGUpLEJjdFtlXS5kZWNvZGUoYSl9ZnVuY3Rpb24gRDkoYSl7aWYodHlwZW9mIGEhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgc3RyaW5nXGAsIGdvdCBcYCR7dHlwZW9mIGF9XGBgKX1mdW5jdGlvbiBVY3QoYSl7cmV0dXJuIEQ5KGEpLGhiYS5lbmNvZGUoYSl9ZnVuY3Rpb24gbWJhKGEpe3JldHVybiBhLnJlcGxhY2VBbGwoIisiLCItIikucmVwbGFjZUFsbCgiLyIsIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBnYmEoYSl7bGV0IGU9YS5yZXBsYWNlQWxsKCItIiwiKyIpLnJlcGxhY2VBbGwoIl8iLCIvIiksdD0oNC1lLmxlbmd0aCU0KSU0O3JldHVybiBlKyI9Ii5yZXBlYXQodCl9ZnVuY3Rpb24gV2N0KGEse3VybFNhZmU6ZT0hMX09e30pe3kwKGEpO2xldCB0PSIiO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGg7cis9SGN0KXtsZXQgaT1hLnN1YmFycmF5KHIscitIY3QpO3QrPWdsb2JhbFRoaXMuYnRvYShTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsaSkpfXJldHVybiBlP21iYSh0KTp0fWZ1bmN0aW9uIEdjdChhKXtyZXR1cm4gRDkoYSksVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuYXRvYihnYmEoYSkpLGU9PmUuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uIGJiYShhLHt1cmxTYWZlOmU9ITF9PXt9KXtyZXR1cm4gRDkoYSksV2N0KFVjdChhKSx7dXJsU2FmZTplfSl9ZnVuY3Rpb24gdmJhKGEpe3JldHVybiBEOShhKSxqY3QoR2N0KGEpKX1mdW5jdGlvbiB5YmEoYSl7eTAoYSk7bGV0IGU9IiI7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0KyspZSs9eGJhW2FbdF1dO3JldHVybiBlfWZ1bmN0aW9uIHdiYShhKXtpZihEOShhKSxhLmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSGV4IHN0cmluZyBsZW5ndGguIik7bGV0IGU9YS5sZW5ndGgvMix0PW5ldyBVaW50OEFycmF5KGUpO2ZvcihsZXQgcj0wO3I8ZTtyKyspe2xldCBpPXFjdFthW3IqMl1dLG89cWN0W2FbcioyKzFdXTtpZihpPT09dm9pZCAwfHxvPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBIZXggY2hhcmFjdGVyIGVuY291bnRlcmVkIGF0IHBvc2l0aW9uICR7cioyfWApO3Rbcl09aTw8NHxvfXJldHVybiB0fWZ1bmN0aW9uIE1iYShhKXtsZXR7Ynl0ZUxlbmd0aDplfT1hO2lmKGU9PT02KXJldHVybiBhLmdldFVpbnQxNigwKSoyKiozMithLmdldFVpbnQzMigyKTtpZihlPT09NSlyZXR1cm4gYS5nZXRVaW50OCgwKSoyKiozMithLmdldFVpbnQzMigxKTtpZihlPT09NClyZXR1cm4gYS5nZXRVaW50MzIoMCk7aWYoZT09PTMpcmV0dXJuIGEuZ2V0VWludDgoMCkqMioqMTYrYS5nZXRVaW50MTYoMSk7aWYoZT09PTIpcmV0dXJuIGEuZ2V0VWludDE2KDApO2lmKGU9PT0xKXJldHVybiBhLmdldFVpbnQ4KDApfWZ1bmN0aW9uIFljdChhLGUpe2xldCB0PWEubGVuZ3RoLHI9ZS5sZW5ndGg7aWYocj09PTB8fHI+dClyZXR1cm4tMTtsZXQgaT10LXI7Zm9yKGxldCBvPTA7bzw9aTtvKyspe2xldCBuPSEwO2ZvcihsZXQgbD0wO2w8cjtsKyspaWYoYVtvK2xdIT09ZVtsXSl7bj0hMTticmVha31pZihuKXJldHVybiBvfXJldHVybi0xfWZ1bmN0aW9uIGtiYShhLGUpe3JldHVybiBZY3QoYSxlKSE9PS0xfXZhciBpYmEsb2JhLG5iYSxCY3QsaGJhLEhjdCx4YmEscWN0LEtjdD1mKCgpPT57aWJhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsb2JhPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixuYmE9IltvYmplY3QgQXJyYXlCdWZmZXJdIjtzKEZjdCwiaXNUeXBlIik7cyhBbGUsImlzVWludDhBcnJheSIpO3MobGJhLCJpc0FycmF5QnVmZmVyIik7cyhjYmEsImlzVWludDhBcnJheU9yQXJyYXlCdWZmZXIiKTtzKHkwLCJhc3NlcnRVaW50OEFycmF5Iik7cyhWY3QsImFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyIik7cyhkYmEsInRvVWludDhBcnJheSIpO3ModWJhLCJjb25jYXRVaW50OEFycmF5cyIpO3MocGJhLCJhcmVVaW50OEFycmF5c0VxdWFsIik7cyhmYmEsImNvbXBhcmVVaW50OEFycmF5cyIpO0JjdD17dXRmODpuZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcigidXRmOCIpfTtzKGpjdCwidWludDhBcnJheVRvU3RyaW5nIik7cyhEOSwiYXNzZXJ0U3RyaW5nIik7aGJhPW5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyO3MoVWN0LCJzdHJpbmdUb1VpbnQ4QXJyYXkiKTtzKG1iYSwiYmFzZTY0VG9CYXNlNjRVcmwiKTtzKGdiYSwiYmFzZTY0VXJsVG9CYXNlNjQiKTtIY3Q9NjU1MzU7cyhXY3QsInVpbnQ4QXJyYXlUb0Jhc2U2NCIpO3MoR2N0LCJiYXNlNjRUb1VpbnQ4QXJyYXkiKTtzKGJiYSwic3RyaW5nVG9CYXNlNjQiKTtzKHZiYSwiYmFzZTY0VG9TdHJpbmciKTt4YmE9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKGEsZSk9PmUudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7cyh5YmEsInVpbnQ4QXJyYXlUb0hleCIpO3FjdD17MDowLDE6MSwyOjIsMzozLDQ6NCw1OjUsNjo2LDc6Nyw4OjgsOTo5LGE6MTAsYjoxMSxjOjEyLGQ6MTMsZToxNCxmOjE1LEE6MTAsQjoxMSxDOjEyLEQ6MTMsRToxNCxGOjE1fTtzKHdiYSwiaGV4VG9VaW50OEFycmF5Iik7cyhNYmEsImdldFVpbnRCRSIpO3MoWWN0LCJpbmRleE9mIik7cyhrYmEsImluY2x1ZGVzIil9KTt2YXIgWmN0PWYoKCk9PntLY3QoKX0pO3ZhciBFaD17fTtsdChFaCx7YmFzZTY0VG9VaW50OEFycmF5OigpPT5fYmEsZW5zdXJlUHVyZVVpbnQ4QXJyYXk6KCk9PiRiYSxpc0J1ZmZlckxpa2U6KCk9PkxiYSxpc1VpbnQ4QXJyYXk6KCk9PlRiYSx1SW50OEFycmF5RXh0cmFzOigpPT56YmEsdUludDhBcnJheVRvQmFzZTY0OigpPT5DYmF9KTtmdW5jdGlvbiBDYmEoYSl7cmV0dXJuIHcwLnVpbnQ4QXJyYXlUb0Jhc2U2NChhKX1mdW5jdGlvbiBfYmEoYSl7cmV0dXJuIHcwLmJhc2U2NFRvVWludDhBcnJheShhKX1mdW5jdGlvbiBMYmEoYSl7cmV0dXJuIGEmJnR5cGVvZiBhLmJ5dGVMZW5ndGg9PSJudW1iZXIiPyEwOnR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXI/QnVmZmVyLmlzQnVmZmVyKGEpOiExfWZ1bmN0aW9uICRiYShhKXtsZXQgZT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7cmV0dXJuIGUuc2V0KGEpLGV9dmFyIHpiYSxUYmEsWGN0PWYoKCk9PntaY3QoKTt6YmE9dzA7cyhDYmEsInVJbnQ4QXJyYXlUb0Jhc2U2NCIpO3MoX2JhLCJiYXNlNjRUb1VpbnQ4QXJyYXkiKTtUYmE9cyhhPT53MC5pc1VpbnQ4QXJyYXkoYSksImlzVWludDhBcnJheSIpO3MoTGJhLCJpc0J1ZmZlckxpa2UiKTtzKCRiYSwiZW5zdXJlUHVyZVVpbnQ4QXJyYXkiKX0pO3ZhciBBOT1mKCgpPT57YmkoKX0pO3ZhciBQOSxRWj1mKCgpPT57QTkoKTtQOT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJHdWFyZCIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5ndWFyZEZ1bmN0aW9uPWUsdGhpcy5vcHRpb25zPXR9YXN5bmMgZXhlYyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5ndWFyZEZ1bmN0aW9uKGUpfWFzeW5jIGdldEZhaWxlZEhpbnQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZXhlYyhlKT9udWxsOnRoaXMub3B0aW9ucy5mYWlsZWRIaW50fX19KTt2YXIgRTksUGxlPWYoKCk9PntBOSgpO0U5PWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje3ModGhpcywiR3VhcmRFcnJvciIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT0iR3VhcmRFcnJvciJ9fX0pO3ZhciBJOSxFbGU9ZigoKT0+e0E5KCk7UVooKTtJOT1jbGFzcyBleHRlbmRzIFA5e3N0YXRpY3tzKHRoaXMsIkd1YXJkU2V0Iil9Y29uc3RydWN0b3IoZT1bXSl7c3VwZXIoYXN5bmMgdD0+dGhpcy5hbGxHdWFyZHNQYXNzKHQpKSx0aGlzLmd1YXJkcz1lfWFzeW5jIGV4ZWNBbGxXaXRoRGF0YShlLHQ9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7bGV0IHI9W107Zm9yKGxldCBvIG9mIHRoaXMuZ3VhcmRzKXtsZXQgbj1vLmV4ZWMoZSk7aWYodC5tb2RlPT09InNlcmlhbCImJmF3YWl0IG4sci5wdXNoKG4pLHQuc3RvcE9uRmFpbCYmIWF3YWl0IG4pcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHIpfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKX1hc3luYyBhbGxHdWFyZHNQYXNzKGUsdD17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEoZSx0KSkuZXZlcnkoaT0+aSl9YXN5bmMgYW55R3VhcmRzUGFzcyhlKXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEoZSx7bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KSkuc29tZShyPT5yKX1nZXRGYWlsZWRIaW50KGUpe2ZvcihsZXQgdCBvZiB0aGlzLmd1YXJkcyl7bGV0IHI9dC5nZXRGYWlsZWRIaW50KGUpO2lmKHIpcmV0dXJuIHJ9fX19KTt2YXIgTjk9e307bHQoTjkse0d1YXJkOigpPT5QOSxHdWFyZEVycm9yOigpPT5FOSxHdWFyZFNldDooKT0+STkscGFzc0d1YXJkc09yUmVqZWN0OigpPT5EYmF9KTt2YXIgRGJhLFFjdD1mKCgpPT57QTkoKTtRWigpO1BsZSgpO1FaKCk7RWxlKCk7RWxlKCk7UGxlKCk7RGJhPXMoYXN5bmMoYSxlKT0+e2xldCB0PW5ldyBJOShlKTtpZighYXdhaXQgdC5hbGxHdWFyZHNQYXNzKGEpKXtsZXQgaT1hd2FpdCB0LmdldEZhaWxlZEhpbnQoYSk7dGhyb3cgbmV3IEU5KGBHdWFyZHMgZmFpbGVkOgoke2l9CiAgICBgKX19LCJwYXNzR3VhcmRzT3JSZWplY3QiKX0pO3ZhciBJaCxJbGU9ZigoKT0+e0loPWNsYXNze3N0YXRpY3tzKHRoaXMsIkludGVyY2VwdG9yTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnB1c2goZSl9YWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLnB1c2goZSl9YWRkRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnB1c2goZSl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpe2xldCB0PXRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5pbmRleE9mKGUpO3Q+LTEmJnRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5zcGxpY2UodCwxKX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpe2xldCB0PXRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMuaW5kZXhPZihlKTt0Pi0xJiZ0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLnNwbGljZSh0LDEpfXJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl7bGV0IHQ9dGhpcy5lcnJvckludGVyY2VwdG9ycy5pbmRleE9mKGUpO3Q+LTEmJnRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuc3BsaWNlKHQsMSl9Y2xlYXJBbGwoKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnM9W10sdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycz1bXSx0aGlzLmVycm9ySW50ZXJjZXB0b3JzPVtdfWFzeW5jIHByb2Nlc3NSZXF1ZXN0KGUpe2xldCB0PWU7Zm9yKGxldCByIG9mIHRoaXMucmVxdWVzdEludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCByKHQpfWNhdGNoKGkpe3Rocm93IGF3YWl0IHRoaXMucHJvY2Vzc0Vycm9yKGkgaW5zdGFuY2VvZiBFcnJvcj9pOm5ldyBFcnJvcihTdHJpbmcoaSkpKX1yZXR1cm4gdH1hc3luYyBwcm9jZXNzUmVzcG9uc2UoZSl7bGV0IHQ9ZTtmb3IobGV0IHIgb2YgdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCByKHQpfWNhdGNoKGkpe3Rocm93IGF3YWl0IHRoaXMucHJvY2Vzc0Vycm9yKGkgaW5zdGFuY2VvZiBFcnJvcj9pOm5ldyBFcnJvcihTdHJpbmcoaSkpKX1yZXR1cm4gdH1hc3luYyBwcm9jZXNzRXJyb3IoZSl7bGV0IHQ9ZTtmb3IobGV0IHIgb2YgdGhpcy5lcnJvckludGVyY2VwdG9ycyl0cnl7dD1hd2FpdCByKHQpfWNhdGNoKGkpe3Q9aSBpbnN0YW5jZW9mIEVycm9yP2k6bmV3IEVycm9yKFN0cmluZyhpKSl9cmV0dXJuIHR9Z2V0SW50ZXJjZXB0b3JDb3VudHMoKXtyZXR1cm57cmVxdWVzdDp0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMubGVuZ3RoLHJlc3BvbnNlOnRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMubGVuZ3RoLGVycm9yOnRoaXMuZXJyb3JJbnRlcmNlcHRvcnMubGVuZ3RofX19fSk7dmFyIEpjdD1mKCgpPT57YmkoKX0pO3ZhciBlMHQ9ZigoKT0+e30pO3ZhciBObGUsdDB0PWYoKCk9PntKY3QoKTtlMHQoKTtObGU9Y2xhc3N7c3RhdGlje3ModGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLHQpe2lmKCF0aGlzLmlzTm9kZSYmIXRoaXMuaXNEZW5vJiYhdGhpcy5pc0J1bil7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBzZXJ2ZXIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dDogJHtlfS4gVGhpcyBkb2VzIG5vdCB0aHJvdy5gKTtyZXR1cm59bGV0IHI9YXdhaXQgbmV3IEZ1bmN0aW9uKGByZXR1cm4gaW1wb3J0KCcke2V9JylgKSgpO3JldHVybiB0JiZhd2FpdCB0KHIpLHJ9YXN5bmMgZ2V0U2FmZVdlYk1vZHVsZShlLHQpe2lmKCF0aGlzLmlzQnJvd3Nlcil7Y29uc29sZS5lcnJvcigiWW91IHRyaWVkIHRvIGxvYWQgYSB3ZWIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dCIpO3JldHVybn1pZih0aGlzLmxvYWRlZFNjcmlwdHMuaW5jbHVkZXMoZSkpcmV0dXJuIHQoKTt0aGlzLmxvYWRlZFNjcmlwdHMucHVzaChlKTtsZXQgcj1jdC5kZWZlcigpLGk9Z2xvYmFsVGhpcztpZihpLmltcG9ydFNjcmlwdHMpaS5pbXBvcnRTY3JpcHRzKGUpLHIucmVzb2x2ZSgpO2Vsc2V7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7by5vbmxvYWQ9KCk9PntyLnJlc29sdmUoKX0sby5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pfXJldHVybiBhd2FpdCByLnByb21pc2UsdCgpfWdldCBydW50aW1lRW52KCl7bGV0IGU9Z2xvYmFsVGhpcztyZXR1cm4gdHlwZW9mIGUuRGVubzwidSImJnR5cGVvZiBlLkRlbm8udmVyc2lvbjwidSI/ImRlbm8iOnR5cGVvZiBlLkJ1bjwidSImJnR5cGVvZiBlLkJ1bi52ZXJzaW9uPCJ1Ij8iYnVuIjp0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/Lm5vZGU8InUiPyJub2RlIjoodHlwZW9mIGdsb2JhbFRoaXMud2luZG93PCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuZG9jdW1lbnQ8InUiLCJicm93c2VyIil9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnJvd3NlciJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IGlzRGVubygpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iZGVubyJ9Z2V0IGlzQnVuKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJidW4ifWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc05vZGU/cHJvY2Vzcy52ZXJzaW9uOiJ1bmRlZmluZWQifWdldCBkZW5vVmVyc2lvbigpe3JldHVybiB0aGlzLmlzRGVubz9nbG9iYWxUaGlzLkRlbm8/LnZlcnNpb24/LmRlbm8/PyJ1bmRlZmluZWQiOiJ1bmRlZmluZWQifWdldCBidW5WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNCdW4/Z2xvYmFsVGhpcy5CdW4/LnZlcnNpb24/PyJ1bmRlZmluZWQiOiJ1bmRlZmluZWQifWFzeW5jIGdldFNhZmVNb2R1bGVGb3IoZSx0LHIpe2xldCBpO2lmKEFycmF5LmlzQXJyYXkoZSk/aT1lLmZsYXRNYXAobz0+bz09PSJzZXJ2ZXIiP1sibm9kZSIsImRlbm8iLCJidW4iXTpbb10pOmU9PT0ic2VydmVyIj9pPVsibm9kZSIsImRlbm8iLCJidW4iXTppPVtlXSwhaS5pbmNsdWRlcyh0aGlzLnJ1bnRpbWVFbnYpKXtjb25zb2xlLndhcm4oYE1vZHVsZSAiJHt0fSIgcmVxdWVzdGVkIGZvciBydW50aW1lKHMpIFske2kuam9pbigiLCAiKX1dIGJ1dCBjdXJyZW50IHJ1bnRpbWUgaXMgIiR7dGhpcy5ydW50aW1lRW52fSIuIFNraXBwaW5nIGxvYWQuYCk7cmV0dXJufWlmKHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0KTtpZih0aGlzLmlzQnJvd3Nlcil7aWYoIXIpe2NvbnNvbGUuZXJyb3IoYEJyb3dzZXIgbW9kdWxlIGxvYWQgcmVxdWlyZXMgZ2V0RnVuY3Rpb24gcGFyYW1ldGVyIGZvciAiJHt0fSJgKTtyZXR1cm59cmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZSh0LHIpfX1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHRoaXMuaXNEZW5vPyJub2RlOm9zIjoib3MiKSk/LnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUodGhpcy5pc0Rlbm8/Im5vZGU6b3MiOiJvcyIpKT8ucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bj8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0aGlzLmlzRGVubz8ibm9kZTpvcyI6Im9zIikpPy5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTp0aGlzLmlzRGVubz8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gREVOTyIpLGNvbnNvbGUubG9nKCJkZW5vIHZlcnNpb24gaXMgIit0aGlzLmRlbm9WZXJzaW9uKSk6dGhpcy5pc0J1bj8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlVOIiksY29uc29sZS5sb2coImJ1biB2ZXJzaW9uIGlzICIrdGhpcy5idW5WZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBuMT17fTtsdChuMSx7U21hcnRlbnY6KCk9Pk5sZX0pO3ZhciBSOT1mKCgpPT57dDB0KCl9KTt2YXIgUmxlLE85PWYoKCk9PntSbGU9a28oWUcoKSwxKX0pO3ZhciBKWj17fTtsdChKWix7Y3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nOigpPT5SYmEsY3JlYXRlUmFuZG9tU3RyaW5nOigpPT5OYmF9KTt2YXIgRWJhLEliYSxOYmEsUmJhLGEwdD1mKCgpPT57TzkoKTtFYmE9cygoYSxlKT0+e2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpcy5jcnlwdG8mJmdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyl7bGV0IHQ9ZS1hLHI9bmV3IFVpbnQzMkFycmF5KDEpO3JldHVybiBnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMociksYStyWzBdJXR9ZWxzZSByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihlLWEpKSthfSwiZ2V0UmFuZG9tSW50IiksSWJhPXMoKGEsZSx0KT0+e2xldCByPXtBOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIsYToiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLDA6IjAxMjM0NTY3ODkiLCIhIjoiIUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8iLCIqIjoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkhQCMkJV4mKigpXystPVtde318OzosLjw+PyJ9LGk9YTtlJiZlPmEubGVuZ3RoP2k9YS5yZXBlYXQoTWF0aC5jZWlsKGUvYS5sZW5ndGgpKS5zbGljZSgwLGUpOmUmJihpPWEuc2xpY2UoMCxlKSk7bGV0IG89IiI7Zm9yKGxldCBuIG9mIGkpaWYocltuXSl7bGV0IGw9cltuXSxkPUViYSgwLGwubGVuZ3RoKTtvKz1sW2RdfWVsc2Ugbys9bjtyZXR1cm4gb30sImN1c3RvbVJhbmRvbWF0aWMiKSxOYmE9cygoYSxlLHQpPT5JYmEoYSxlLHQpLCJjcmVhdGVSYW5kb21TdHJpbmciKSxSYmE9cygoKT0+UmxlLnVuaSgpLCJjcmVhdGVDcnlwdG9SYW5kb21TdHJpbmciKX0pO3ZhciBlWD17fTtsdChlWCx7bWFrZUVudk9iamVjdDooKT0+T2JhfSk7dmFyIE9iYSxyMHQ9ZigoKT0+e085KCk7T2JhPXMoZnVuY3Rpb24oYSl7bGV0IGU9e30sdD0vKC4qKT0oLiopLztpZih0eXBlb2YgYTwidSIpZm9yKGxldCByIG9mIGEpe2xldCBpPXQuZXhlYyhyKTtpJiYoZVtpWzFdXT1pWzJdKX1yZXR1cm4gZX0sIm1ha2VFbnZPYmplY3QiKX0pO3ZhciBNMz17fTtsdChNMyx7aW5kZW50OigpPT5CYmEsaW5kZW50V2l0aFByZWZpeDooKT0+SGJhLG5vcm1hbGl6ZTooKT0+cWJhfSk7dmFyIE9sZSxGbGUsRmJhLEJiYSxIYmEscWJhLHMwdD1mKCgpPT57TzkoKTtPbGU9cyhhPT57bGV0IGU9YS5zcGxpdChgCmApO3JldHVybiBGYmEoZSl9LCJzcGxpdFN0cmluZ0F0TGluZUJyZWFrIiksRmxlPXMoYT0+e2xldCBlPSIiO2ZvcihsZXQgdCBvZiBhKWU9ZSt0K2AKYDtyZXR1cm4gZX0sImpvaW5TdHJpbmdXaXRoTGluZUJyZWFrcyIpLEZiYT1zKGE9PntsZXQgZT0vXltcc10qJC87cmV0dXJuIGUudGVzdChhWzBdKSYmYS5zaGlmdCgpLGUudGVzdChhW2EubGVuZ3RoLTFdKSYmYS5wb3AoKSxhfSwiY2xlYW5TdHJpbmdBcnJheSIpLEJiYT1zKChhLGUpPT57bGV0IHQ9T2xlKGEpO2ZvcihsZXQgaSBvZiB0KWk9IiAiLnJlcGVhdChlKStpO3JldHVybiBGbGUodCl9LCJpbmRlbnQiKSxIYmE9cygoYSxlKT0+e2xldCB0LHI9T2xlKGEpLGk9W107Zm9yKGxldCBvIG9mIHIpaS5wdXNoKGUrbyk7cmV0dXJuIHQ9RmxlKGkpLHR9LCJpbmRlbnRXaXRoUHJlZml4IikscWJhPXMoYT0+e2xldCBlLHQ9T2xlKGEpLHIsaT0vXihccyopLyxvPS9eKFxzKikkLztmb3IobGV0IGQgb2YgdCl7bGV0IGM9aS5leGVjKGQpLHA9Yz9jWzFdOiIiOyh0eXBlb2Ygcj4idSJ8fHAubGVuZ3RoPHIpJiYhby50ZXN0KGQpJiYocj1wLmxlbmd0aCl9bGV0IG49W10sbD1yfHwwO2ZvcihsZXQgZCBvZiB0KW4ucHVzaChkLnN1YnN0cihsKSk7cmV0dXJuIGU9RmxlKG4pLGV9LCJub3JtYWxpemUiKX0pO3ZhciB0WD17fTtsdCh0WCx7cmVwbGFjZUFsbDooKT0+aTB0LHN0YW5kYXJkOigpPT5qYmF9KTt2YXIgaTB0LFZiYSxqYmEsbzB0PWYoKCk9PntpMHQ9cygoYSxlLHQpPT5hLnJlcGxhY2UobmV3IFJlZ0V4cChlLCJnIiksdCksInJlcGxhY2VBbGwiKSxWYmE9cyhhPT57bGV0IGU9YS5zcGxpdChgCmApLHQ9MS8wO2ZvcihsZXQgciBvZiBlKWlmKHIudHJpbSgpLmxlbmd0aD4wKXtsZXQgaT1yLm1hdGNoKC9eKFxzKikvKTtpJiYodD1NYXRoLm1pbih0LGlbMV0ubGVuZ3RoKSl9cmV0dXJuIHQ9PT0xLzB8fHQ9PT0wP2E6ZS5tYXAocj0+ci5sZW5ndGg+PXQ/ci5zbGljZSh0KTpyKS5qb2luKGAKYCl9LCJzdHJpcEluZGVudCIpLGpiYT1zKChhLGUpPT57bGV0IHQ9YTtyZXR1cm4oIWV8fGUuc3RyaXBJbmRlbnQpJiYodD1WYmEodCkpLCghZXx8ZS5ub3JtYWxpemVOZXdsaW5lKSYmKHQ9dC5yZXBsYWNlKC9cclxuL2csYApgKSksKCFlfHxlLnJlcGxhY2VUYWJzKSYmKHQ9aTB0KHQsIgkvIiwiICIpKSwoIWV8fGUuc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzKSYmKHQ9dC5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKS5yZXBsYWNlKC9ccypbXHJcbl0kL2dtLCIiKSksKCFlfHxlLnN0cmlwQWxsRW1wdHlMaW5lcykmJih0PXQucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikpLHR9LCJzdGFuZGFyZCIpfSk7dmFyIEJsZSxhWCxOaCxIbGU9ZigoKT0+e0JsZT17ZW5jb2RlOnMoYT0+e2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbShhLCJ1dGY4IikudG9TdHJpbmcoImJhc2U2NCIpO2lmKHR5cGVvZiBidG9hPCJ1Iil7bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGEpLHQ9QXJyYXkuZnJvbShlLHI9PlN0cmluZy5mcm9tQ2hhckNvZGUocikpLmpvaW4oIiIpO3JldHVybiBidG9hKHQpfWVsc2V7bGV0IGU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLHQ9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGEpLHI9IiIsaT0wO2Zvcig7aTx0Lmxlbmd0aDspe2xldCBvPXRbaSsrXSxuPWk8dC5sZW5ndGg/dFtpKytdOjAsbD1pPHQubGVuZ3RoP3RbaSsrXTowLGQ9bzw8MTZ8bjw8OHxsO3IrPWUuY2hhckF0KGQ+PjE4JjYzKSxyKz1lLmNoYXJBdChkPj4xMiY2Mykscis9aS0yPHQubGVuZ3RoP2UuY2hhckF0KGQ+PjYmNjMpOiI9IixyKz1pLTE8dC5sZW5ndGg/ZS5jaGFyQXQoZCY2Myk6Ij0ifXJldHVybiByfX0sImVuY29kZSIpLGRlY29kZTpzKGE9PntsZXQgZT1hLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpLnBhZEVuZChhLmxlbmd0aCsoNC1hLmxlbmd0aCU0KSU0LCI9Iik7aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpLnRvU3RyaW5nKCJ1dGY4Iik7aWYodHlwZW9mIGF0b2I8InUiKXtsZXQgdD1hdG9iKGUpLHI9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXJbaV09dC5jaGFyQ29kZUF0KGkpO3JldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUocil9ZWxzZXtsZXQgdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIscj1bXSxpPTA7Zm9yKDtpPGUubGVuZ3RoOyl7bGV0IG89dC5pbmRleE9mKGUuY2hhckF0KGkrKykpLG49dC5pbmRleE9mKGUuY2hhckF0KGkrKykpLGw9dC5pbmRleE9mKGUuY2hhckF0KGkrKykpLGQ9dC5pbmRleE9mKGUuY2hhckF0KGkrKykpLGM9bzw8MTh8bjw8MTJ8bDw8NnxkO3IucHVzaChjPj4xNiYyNTUpLGwhPT02NCYmci5wdXNoKGM+PjgmMjU1KSxkIT09NjQmJnIucHVzaChjJjI1NSl9cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShuZXcgVWludDhBcnJheShyKSl9fSwiZGVjb2RlIil9LGFYPWNsYXNze3N0YXRpY3tzKHRoaXMsIkJhc2U2NCIpfWNvbnN0cnVjdG9yKGUsdCl7c3dpdGNoKHQpe2Nhc2Uic3RyaW5nIjp0aGlzLnJlZlN0cmluZz1lO2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnJlZlN0cmluZz1OaC5kZWNvZGUoZSk7YnJlYWs7Y2FzZSJiYXNlNjR1cmkiOnRoaXMucmVmU3RyaW5nPU5oLmRlY29kZShlKX19Z2V0IHNpbXBsZVN0cmluZygpe3JldHVybiB0aGlzLnJlZlN0cmluZ31nZXQgYmFzZTY0U3RyaW5nKCl7cmV0dXJuIE5oLmVuY29kZSh0aGlzLnJlZlN0cmluZyl9Z2V0IGJhc2U2NFVyaVN0cmluZygpe3JldHVybiBOaC5lbmNvZGVVcmkodGhpcy5yZWZTdHJpbmcpfX0sTmg9e2VuY29kZTpzKGE9PkJsZS5lbmNvZGUoYSksImVuY29kZSIpLGVuY29kZVVyaTpzKGE9PkJsZS5lbmNvZGUoYSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpLCJlbmNvZGVVcmkiKSxkZWNvZGU6cyhhPT5CbGUuZGVjb2RlKGEpLCJkZWNvZGUiKSxpc0Jhc2U2NDpzKGE9Pi9eKFtBLVphLXowLTkrL117NH0pKihbQS1aYS16MC05Ky9dezN9PXxbQS1aYS16MC05Ky9dezJ9PT0pPyQvLnRlc3QoYSksImlzQmFzZTY0Iil9fSk7dmFyIHJYPXt9O2x0KHJYLHtpc0Jhc2U2NDooKT0+V2JhLGlzVXRmODooKT0+VWJhfSk7dmFyIFViYSxXYmEsbjB0PWYoKCk9PntPOSgpO0hsZSgpO1ViYT1zKGE9PntsZXQgdD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoYSkscj0wO2Zvcig7cjx0Lmxlbmd0aDspe2lmKHRbcl09PT05fHx0W3JdPT09MTB8fHRbcl09PT0xM3x8MzI8PXRbcl0mJnRbcl08PTEyNil7cis9MTtjb250aW51ZX1pZigxOTQ8PXRbcl0mJnRbcl08PTIyMyYmMTI4PD10W3IrMV0mJnRbcisxXTw9MTkxKXtyKz0yO2NvbnRpbnVlfWlmKHRbcl09PT0yMjQmJjE2MDw9dFtyKzFdJiZ0W3IrMV08PTE5MSYmMTI4PD10W3IrMl0mJnRbcisyXTw9MTkxfHwoMjI1PD10W3JdJiZ0W3JdPD0yMzZ8fHRbcl09PT0yMzh8fHRbcl09PT0yMzkpJiYxMjg8PXRbcisxXSYmdFtyKzFdPD0xOTEmJjEyODw9dFtyKzJdJiZ0W3IrMl08PTE5MXx8dFtyXT09PTIzNyYmMTI4PD10W3IrMV0mJnRbcisxXTw9MTU5JiYxMjg8PXRbcisyXSYmdFtyKzJdPD0xOTEpe3IrPTM7Y29udGludWV9aWYodFtyXT09PTI0MCYmMTQ0PD10W3IrMV0mJnRbcisxXTw9MTkxJiYxMjg8PXRbcisyXSYmdFtyKzJdPD0xOTEmJjEyODw9dFtyKzNdJiZ0W3IrM108PTE5MXx8MjQxPD10W3JdJiZ0W3JdPD0yNDMmJjEyODw9dFtyKzFdJiZ0W3IrMV08PTE5MSYmMTI4PD10W3IrMl0mJnRbcisyXTw9MTkxJiYxMjg8PXRbciszXSYmdFtyKzNdPD0xOTF8fHRbcl09PT0yNDQmJjEyODw9dFtyKzFdJiZ0W3IrMV08PTE0MyYmMTI4PD10W3IrMl0mJnRbcisyXTw9MTkxJiYxMjg8PXRbciszXSYmdFtyKzNdPD0xOTEpe3IrPTQ7Y29udGludWV9cmV0dXJuITF9cmV0dXJuITB9LCJpc1V0ZjgiKSxXYmE9cyhhPT57bGV0IGU9L1teQS1aMC05K1wvPV0vaSx0PWEubGVuZ3RoO2lmKCF0fHx0JTQhPT0wfHxlLnRlc3QoYSkpcmV0dXJuITE7bGV0IHI9YS5pbmRleE9mKCI9Iik7cmV0dXJuIHI9PT0tMXx8cj09PXQtMXx8cj09PXQtMiYmYVt0LTFdPT09Ij0ifSwiaXNCYXNlNjQiKX0pO3ZhciBzWCxsMHQ9ZigoKT0+e3NYPWNsYXNze3N0YXRpY3tzKHRoaXMsIkRvbWFpbiIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucHJvdG9jb2w9dGhpcy5fcHJvdG9jb2xSZWdleChlKSx0aGlzLnByb3RvY29sfHwoZT1gaHR0cHM6Ly8ke2V9YCksdGhpcy5ub2RlUGFyc2VkVXJsPW5ldyBVUkwoZSksdGhpcy5wb3J0PXRoaXMubm9kZVBhcnNlZFVybC5wb3J0O2xldCB0PXRoaXMuX2RvbWFpblJlZ2V4KGUucmVwbGFjZSh0aGlzLm5vZGVQYXJzZWRVcmwucGF0aG5hbWUsIiIpKTtbdGhpcy5sZXZlbDEsdGhpcy5sZXZlbDIsdGhpcy5sZXZlbDMsdGhpcy5sZXZlbDQsdGhpcy5sZXZlbDVdPXQsdGhpcy5mdWxsTmFtZT0iIjtmb3IobGV0IHIgb2YgdCl0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1yOnRoaXMuZnVsbE5hbWU9cisiLiIrdGhpcy5mdWxsTmFtZTt0aGlzLnpvbmVOYW1lPVt0aGlzLmxldmVsMix0aGlzLmxldmVsMV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi4iKSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IHI9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtpZighcilyZXR1cm5bXTtsZXQgaT1bLi4ucl0ucmV2ZXJzZSgpO3JldHVybiBpLnBvcCgpLGkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuIT09IiJ9KX1fcHJvdG9jb2xSZWdleChlKXtsZXQgcj0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYocilyZXR1cm4gclsxXX1fcG9ydFJlZ2V4KGUpe2xldCByPS9eKFthLXpBLVowLTldKik6XC9cLy8uZXhlYyhlKTtpZihyKXJldHVybiByWzFdfX19KTt2YXIgaVgsR2JhLGMwdCxkMHQ9ZigoKT0+e2lYPWNsYXNze3N0YXRpY3tzKHRoaXMsIkdpdFJlcG8iKX1jb25zdHJ1Y3RvcihlLHQpe2xldCByPUdiYShlKTtpZighcil0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ2l0IHJlcG9zaXRvcnkgVVJMOiAke2V9YCk7dGhpcy5ob3N0PXJbMV0sdGhpcy51c2VyPXJbMl0sdGhpcy5yZXBvPXJbM10sdGhpcy5hY2Nlc3NUb2tlbj10LHRoaXMuc3NoVXJsPWMwdCh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJzc2giKSx0aGlzLmh0dHBzVXJsPWMwdCh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJodHRwcyIpfX0sR2JhPXMoZnVuY3Rpb24oYSl7cmV0dXJuLyhbYS16QS1aMC05XC1fXC5dKikoPzpcL3xcOikoW2EtekEtWjAtOVwtX1wuXSopKD86XC8pKFthLXpBLVowLTlcLV9cLl0qKSg/OlwuZ2l0KS8uZXhlYyhhKX0sImdpdFJlZ2V4IiksYzB0PXMoZnVuY3Rpb24oYSxlLHQscj0iIixpKXtzd2l0Y2gociE9PSIiJiYocj1yKyJAIiksaSl7Y2FzZSJodHRwcyI6cmV0dXJuImh0dHBzOi8vIityK2ErIi8iK2UrIi8iK3QrIi5naXQiO2Nhc2Uic3NoIjpyZXR1cm4iZ2l0QCIrYSsiOiIrZSsiLyIrdCsiLmdpdCJ9fSwiZ2l0TGluayIpfSk7dmFyIGRzPXt9O2x0KGRzLHtCYXNlNjQ6KCk9PmFYLERvbWFpbjooKT0+c1gsR2l0UmVwbzooKT0+aVgsYmFzZTY0OigpPT5OaCxjcmVhdGU6KCk9PkpaLGRvY2tlcjooKT0+ZVgsaW5kZW50OigpPT5NMyxub3JtYWxpemU6KCk9PnRYLHR5cGU6KCk9PnJYfSk7dmFyIFJoPWYoKCk9PnthMHQoKTtyMHQoKTtzMHQoKTtvMHQoKTtuMHQoKTtIbGUoKTtsMHQoKTtkMHQoKX0pO3ZhciBxbGU9TW8oKFJMcix1MHQpPT57InVzZSBzdHJpY3QiO3UwdC5leHBvcnRzPWZ1bmN0aW9uKGEsZSl7ZXx8KGU9e30pLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT17Y21wOmV9KTt2YXIgdD10eXBlb2YgZS5jeWNsZXM9PSJib29sZWFuIj9lLmN5Y2xlczohMSxyPWUuY21wJiYoZnVuY3Rpb24obyl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihsLGQpe3ZhciBjPXtrZXk6bCx2YWx1ZTpuW2xdfSxwPXtrZXk6ZCx2YWx1ZTpuW2RdfTtyZXR1cm4gbyhjLHApfX19KShlLmNtcCksaT1bXTtyZXR1cm4gcygoZnVuY3Rpb24gbyhuKXtpZihuJiZuLnRvSlNPTiYmdHlwZW9mIG4udG9KU09OPT0iZnVuY3Rpb24iJiYobj1uLnRvSlNPTigpKSxuIT09dm9pZCAwKXtpZih0eXBlb2Ygbj09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG4pPyIiK246Im51bGwiO2lmKHR5cGVvZiBuIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobik7dmFyIGwsZDtpZihBcnJheS5pc0FycmF5KG4pKXtmb3IoZD0iWyIsbD0wO2w8bi5sZW5ndGg7bCsrKWwmJihkKz0iLCIpLGQrPW8obltsXSl8fCJudWxsIjtyZXR1cm4gZCsiXSJ9aWYobj09PW51bGwpcmV0dXJuIm51bGwiO2lmKGkuaW5kZXhPZihuKSE9PS0xKXtpZih0KXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBjPWkucHVzaChuKS0xLHA9T2JqZWN0LmtleXMobikuc29ydChyJiZyKG4pKTtmb3IoZD0iIixsPTA7bDxwLmxlbmd0aDtsKyspe3ZhciB1PXBbbF0sbT1vKG5bdV0pO20mJihkJiYoZCs9IiwiKSxkKz1KU09OLnN0cmluZ2lmeSh1KSsiOiIrbSl9cmV0dXJuIGkuc3BsaWNlKGMsMSksInsiK2QrIn0ifX0pLCJzdHJpbmdpZnkiKShhKX19KTt2YXIgcDB0LG9YLFZsZT1mKCgpPT57UjkoKTtSaCgpO3AwdD1rbyhxbGUoKSwxKSxvWD1wMHQuZGVmYXVsdH0pO2Z1bmN0aW9uIEtiYShhKXtsZXQgZT1mMHQoKTtyZXR1cm4gZT9lLmZyb20oYSkudG9TdHJpbmcoImJhc2U2NCIpOmJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5hKSl9ZnVuY3Rpb24gWmJhKGEpe2xldCBlPWYwdCgpO2lmKGUpe2xldCB0PWUuZnJvbShhLCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYihhKSkubWFwKHQ9PnQuY2hhckNvZGVBdCgwKSkpfWZ1bmN0aW9uIFVsZShhLGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShhLG5YLGUpfWZ1bmN0aW9uIFdsZShhKXtyZXR1cm4gSlNPTi5wYXJzZShhLGgwdCl9ZnVuY3Rpb24gWGJhKGEpe3JldHVybiBnMHQoYSkmJmEudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmamxlKGEuZGF0YSl9ZnVuY3Rpb24gUWJhKGEpe3JldHVybiBnMHQoYSkmJmEudHlwZT09PSJCdWZmZXIiJiYobTB0KGEuZGF0YSl8fGpsZShhLmRhdGEpKXx8YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gbTB0KGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpfWZ1bmN0aW9uIGpsZShhKXtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmcifWZ1bmN0aW9uIGcwdChhKXtyZXR1cm4gdHlwZW9mIGE9PSJvYmplY3QiJiZhIT09bnVsbH12YXIgZjB0LG5YLGgwdCxiMHQ9ZigoKT0+e1ZsZSgpO2YwdD1zKCgpPT5nbG9iYWxUaGlzLkJ1ZmZlciwiZ2V0Tm9kZUJ1ZmZlciIpO3MoS2JhLCJiYXNlNjRFbmNvZGUiKTtzKFpiYSwiYmFzZTY0RGVjb2RlIik7cyhVbGUsInN0cmluZ2lmeSIpO3MoV2xlLCJwYXJzZSIpO25YPXMoKGEsZSk9PntpZihRYmEoZSkpe2xldCB0O2lmKCJkYXRhImluIGUmJm0wdChlLmRhdGEpKXQ9bmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXQ9ZTtlbHNlIHJldHVybiBlO3JldHVybnt0eXBlOiJFbmNvZGVkQnVmZmVyIixkYXRhOiJiYXNlNjQ6IitLYmEodCl9fXJldHVybiBlfSwicmVwbGFjZXIiKSxoMHQ9cygoYSxlKT0+e2lmKFhiYShlKSYmamxlKGUuZGF0YSkmJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCB0PWUuZGF0YS5zbGljZSg3KTtyZXR1cm4gWmJhKHQpfXJldHVybiBlfSwicmV2aXZlciIpO3MoWGJhLCJpc0VuY29kZWRCdWZmZXIiKTtzKFFiYSwiaXNCdWZmZXJMaWtlIik7cyhtMHQsImlzQXJyYXkiKTtzKGpsZSwiaXNTdHJpbmciKTtzKGcwdCwiaXNPYmplY3QiKX0pO3ZhciAkcz17fTtsdCgkcyx7U21hcnRqc29uOigpPT5ZbGUsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5vdmEsZGVlcEVxdWFsT2JqZWN0czooKT0+djB0LGZvbGREZWM6KCk9Pml2YSxwYXJzZTooKT0+bFgscGFyc2VCYXNlNjQ6KCk9PnN2YSxwYXJzZUpzb25MOigpPT5HbGUsc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT50dmEsc3RyaW5naWZ5OigpPT5rMyxzdHJpbmdpZnlCYXNlNjQ6KCk9PnJ2YSxzdHJpbmdpZnlKc29uTDooKT0+ZXZhLHN0cmluZ2lmeVByZXR0eTooKT0+YXZhfSk7dmFyIGxYLEdsZSxldmEsdHZhLGszLGF2YSxydmEsc3ZhLFlsZSxpdmEsdjB0LG92YSxPaD1mKCgpPT57VmxlKCk7YjB0KCk7bFg9V2xlLEdsZT1zKGE9PmEuc3BsaXQoYApgKS5yZWR1Y2UoKHIsaSk9PntsZXQgbz1pLnRyaW0oKTtyZXR1cm4gby5sZW5ndGg+MCYmci5wdXNoKGxYKG8pKSxyfSxbXSksInBhcnNlSnNvbkwiKSxldmE9cyhhPT5hLm1hcChlPT5rMyhlKSkuam9pbihgCmApLCJzdHJpbmdpZnlKc29uTCIpLHR2YT1zKChhLGUsdD17fSk9PntsZXQgcj1uZXcgV2Vha1NldCxpPXMobD0+e2lmKGw9PT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCIpcmV0dXJuIGw7bGV0IGQ9blgoIiIsbCk7aWYoZCYmZC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgZC5kYXRhPT0ic3RyaW5nIilyZXR1cm4gZDtpZihyLmhhcyhsKSlyZXR1cm4iX19jeWNsZV9fIjtpZihyLmFkZChsKSxBcnJheS5pc0FycmF5KGwpKXJldHVybiBsLm1hcChwPT5pKHApKTtsZXQgYz17fTtmb3IobGV0IHAgb2YgT2JqZWN0LmtleXMobCkpdHJ5e2NbcF09aShsW3BdKX1jYXRjaHtjW3BdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBjfSwic2FuaXRpemUiKSxvPWkoYSksbj17Li4udCxjeWNsZXM6ITB9O2lmKGUmJiFuLmNtcCl7bGV0IGw9bmV3IE1hcDtlLmZvckVhY2goKGQsYyk9Pmwuc2V0KGQsYykpLG4uY21wPShkLGMpPT57bGV0IHA9bC5oYXMoZC5rZXkpP2wuZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1sLmhhcyhjLmtleSk/bC5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gcCE9PXU/cC11OmQua2V5PGMua2V5Py0xOmQua2V5PmMua2V5PzE6MH19cmV0dXJuIG9YKG8sbil9LCJzdGFibGVPbmVXYXlTdHJpbmdpZnkiKSxrMz1zKChhLGUsdD17fSk9PntsZXQgcj1VbGUoYSk7YT1KU09OLnBhcnNlKHIpO2xldCBpPXsuLi50fTtpZihlJiYhaS5jbXApe2xldCBuPW5ldyBNYXA7ZS5mb3JFYWNoKChsLGQpPT5uLnNldChsLGQpKSxpLmNtcD0obCxkKT0+e2xldCBjPW4uaGFzKGwua2V5KT9uLmdldChsLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHA9bi5oYXMoZC5rZXkpP24uZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGMhPT1wP2MtcDpsLmtleTxkLmtleT8tMTpsLmtleT5kLmtleT8xOjB9fXJldHVybiBvWChhLGkpfSwic3RyaW5naWZ5IiksYXZhPXMoYT0+e2xldCBlPWszKGEpLHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfSwic3RyaW5naWZ5UHJldHR5IikscnZhPXMoKC4uLmEpPT57bGV0IGU9azMoLi4uYSk7cmV0dXJuIGRzLmJhc2U2NC5lbmNvZGVVcmkoZSl9LCJzdHJpbmdpZnlCYXNlNjQiKSxzdmE9cyhhPT57bGV0IGU9ZHMuYmFzZTY0LHI9KGUuZGVjb2RlVXJpfHxlLmRlY29kZSkoYSk7cmV0dXJuIGxYKHIpfSwicGFyc2VCYXNlNjQiKSxZbGU9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJTbWFydGpzb24iKX1zdGF0aWMgZW5mb2xkRnJvbU9iamVjdChlKXtsZXQgdD1uZXcgdGhpcyxyPXQuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IGkgaW4gZSlyLmluZGV4T2YoaSkhPT0tMSYmKHRbaV09ZVtpXSk7cmV0dXJuIHR9c3RhdGljIGVuZm9sZEZyb21Kc29uKGUpe2xldCB0PWxYKGUpO3JldHVybiB0aGlzLmVuZm9sZEZyb21PYmplY3QodCl9c2F2ZWFibGVQcm9wZXJ0aWVzPVtdO2ZvbGRUb09iamVjdCgpe2xldCBlPW5ldyBTZXQ7cmV0dXJuIGUuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl7bGV0IHQ9e30scj1zKG89PntpZihvIGluc3RhbmNlb2YgYSl7aWYoZS5oYXMobykpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiBlLmFkZChvKSxvLmZvbGRUb09iamVjdEludGVybmFsKGUpfXJldHVybiBBcnJheS5pc0FycmF5KG8pP28ubWFwKG49PnIobikpOnN0cnVjdHVyZWRDbG9uZShvKX0sImZvbGRWYWx1ZSIpLGk9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbyBvZiBpKXtsZXQgbj10aGlzW29dO3Rbb109cihuKX1yZXR1cm4gdH1mb2xkVG9Kc29uKCl7bGV0IGU9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4gazMoZSl9fSxpdmE9cygoKT0+KGEsZSk9PntsZXQgdD1TdHJpbmcoZS5uYW1lKTtlLmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uKCl7dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fCh0aGlzLnNhdmVhYmxlUHJvcGVydGllcz1bXSksdGhpcy5zYXZlYWJsZVByb3BlcnRpZXMuaW5jbHVkZXModCl8fHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2godCl9KX0sImZvbGREZWMiKSx2MHQ9cygoYSxlKT0+e2xldCB0PWszKGEpLHI9azMoZSk7cmV0dXJuIHQ9PT1yfSwiZGVlcEVxdWFsT2JqZWN0cyIpLG92YT1zKChhLGUpPT57bGV0IHQ9R2xlKGEpLHI9R2xlKGUpO3JldHVybiB2MHQodCxyKX0sImRlZXBFcXVhbEpzb25MU3RyaW5ncyIpfSk7dmFyIEI5PXt9O2x0KEI5LHtkZWxldGVEQjooKT0+XzB0LG9wZW5EQjooKT0+QzB0LHVud3JhcDooKT0+Rjksd3JhcDooKT0+UzJ9KTtmdW5jdGlvbiBudmEoKXtyZXR1cm4geDB0fHwoeDB0PVtJREJEYXRhYmFzZSxJREJPYmplY3RTdG9yZSxJREJJbmRleCxJREJDdXJzb3IsSURCVHJhbnNhY3Rpb25dKX1mdW5jdGlvbiBsdmEoKXtyZXR1cm4geTB0fHwoeTB0PVtJREJDdXJzb3IucHJvdG90eXBlLmFkdmFuY2UsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlUHJpbWFyeUtleV0pfWZ1bmN0aW9uIGN2YShhKXtsZXQgZT1uZXcgUHJvbWlzZSgodCxyKT0+e2xldCBpPXMoKCk9PnthLnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG8pLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG4pfSwidW5saXN0ZW4iKSxvPXMoKCk9Pnt0KFMyKGEucmVzdWx0KSksaSgpfSwic3VjY2VzcyIpLG49cygoKT0+e3IoYS5lcnJvciksaSgpfSwiZXJyb3IiKTthLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG8pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG4pfSk7cmV0dXJuIGNYLnNldChlLGEpLGV9ZnVuY3Rpb24gZHZhKGEpe2lmKFpsZS5oYXMoYSkpcmV0dXJuO2xldCBlPW5ldyBQcm9taXNlKCh0LHIpPT57bGV0IGk9cygoKT0+e2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG8pLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG4pLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfSwidW5saXN0ZW4iKSxvPXMoKCk9Pnt0KCksaSgpfSwiY29tcGxldGUiKSxuPXMoKCk9PntyKGEuZXJyb3J8fG5ldyBET01FeGNlcHRpb24oIkFib3J0RXJyb3IiLCJBYm9ydEVycm9yIikpLGkoKX0sImVycm9yIik7YS5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsbyksYS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbiksYS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbil9KTtabGUuc2V0KGEsZSl9ZnVuY3Rpb24gdzB0KGEpe1FsZT1hKFFsZSl9ZnVuY3Rpb24gdXZhKGEpe3JldHVybiBsdmEoKS5pbmNsdWRlcyhhKT9mdW5jdGlvbiguLi5lKXtyZXR1cm4gYS5hcHBseShGOSh0aGlzKSxlKSxTMih0aGlzLnJlcXVlc3QpfTpmdW5jdGlvbiguLi5lKXtyZXR1cm4gUzIoYS5hcHBseShGOSh0aGlzKSxlKSl9fWZ1bmN0aW9uIHB2YShhKXtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiI/dXZhKGEpOihhIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJmR2YShhKSxLbGUoYSxudmEoKSk/bmV3IFByb3h5KGEsUWxlKTphKX1mdW5jdGlvbiBTMihhKXtpZihhIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gY3ZhKGEpO2lmKFhsZS5oYXMoYSkpcmV0dXJuIFhsZS5nZXQoYSk7bGV0IGU9cHZhKGEpO3JldHVybiBlIT09YSYmKFhsZS5zZXQoYSxlKSxjWC5zZXQoZSxhKSksZX1mdW5jdGlvbiBDMHQoYSxlLHtibG9ja2VkOnQsdXBncmFkZTpyLGJsb2NraW5nOmksdGVybWluYXRlZDpvfT17fSl7bGV0IG49aW5kZXhlZERCLm9wZW4oYSxlKSxsPVMyKG4pO3JldHVybiByJiZuLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLGQ9PntyKFMyKG4ucmVzdWx0KSxkLm9sZFZlcnNpb24sZC5uZXdWZXJzaW9uLFMyKG4udHJhbnNhY3Rpb24pLGQpfSksdCYmbi5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixkPT50KGQub2xkVmVyc2lvbixkLm5ld1ZlcnNpb24sZCkpLGwudGhlbihkPT57byYmZC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9Pm8oKSksaSYmZC5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIixjPT5pKGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sYykpfSkuY2F0Y2goKCk9Pnt9KSxsfWZ1bmN0aW9uIF8wdChhLHtibG9ja2VkOmV9PXt9KXtsZXQgdD1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoYSk7cmV0dXJuIGUmJnQuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIscj0+ZShyLm9sZFZlcnNpb24scikpLFMyKHQpLnRoZW4oKCk9Pnt9KX1mdW5jdGlvbiBNMHQoYSxlKXtpZighKGEgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSYmIShlIGluIGEpJiZ0eXBlb2YgZT09InN0cmluZyIpKXJldHVybjtpZihKbGUuZ2V0KGUpKXJldHVybiBKbGUuZ2V0KGUpO2xldCB0PWUucmVwbGFjZSgvRnJvbUluZGV4JC8sIiIpLHI9ZSE9PXQsaT1odmEuaW5jbHVkZXModCk7aWYoISh0IGluKHI/SURCSW5kZXg6SURCT2JqZWN0U3RvcmUpLnByb3RvdHlwZSl8fCEoaXx8ZnZhLmluY2x1ZGVzKHQpKSlyZXR1cm47bGV0IG89cyhhc3luYyBmdW5jdGlvbihuLC4uLmwpe2xldCBkPXRoaXMudHJhbnNhY3Rpb24obixpPyJyZWFkd3JpdGUiOiJyZWFkb25seSIpLGM9ZC5zdG9yZTtyZXR1cm4gciYmKGM9Yy5pbmRleChsLnNoaWZ0KCkpKSwoYXdhaXQgUHJvbWlzZS5hbGwoW2NbdF0oLi4ubCksaSYmZC5kb25lXSkpWzBdfSwibWV0aG9kIik7cmV0dXJuIEpsZS5zZXQoZSxvKSxvfWFzeW5jIGZ1bmN0aW9uKmJ2YSguLi5hKXtsZXQgZT10aGlzO2lmKGUgaW5zdGFuY2VvZiBJREJDdXJzb3J8fChlPWF3YWl0IGUub3BlbkN1cnNvciguLi5hKSksIWUpcmV0dXJuO2U9ZTtsZXQgdD1uZXcgUHJveHkoZSxndmEpO2ZvcihTMHQuc2V0KHQsZSksY1guc2V0KHQsRjkoZSkpO2U7KXlpZWxkIHQsZT1hd2FpdChlY2UuZ2V0KHQpfHxlLmNvbnRpbnVlKCkpLGVjZS5kZWxldGUodCl9ZnVuY3Rpb24gejB0KGEsZSl7cmV0dXJuIGU9PT1TeW1ib2wuYXN5bmNJdGVyYXRvciYmS2xlKGEsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHxlPT09Iml0ZXJhdGUiJiZLbGUoYSxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmVdKX12YXIgS2xlLHgwdCx5MHQsWmxlLFhsZSxjWCxRbGUsRjksZnZhLGh2YSxKbGUsbXZhLGswdCxlY2UsUzB0LGd2YSxUMHQ9ZigoKT0+e0tsZT1zKChhLGUpPT5lLnNvbWUodD0+YSBpbnN0YW5jZW9mIHQpLCJpbnN0YW5jZU9mQW55Iik7cyhudmEsImdldElkYlByb3h5YWJsZVR5cGVzIik7cyhsdmEsImdldEN1cnNvckFkdmFuY2VNZXRob2RzIik7WmxlPW5ldyBXZWFrTWFwLFhsZT1uZXcgV2Vha01hcCxjWD1uZXcgV2Vha01hcDtzKGN2YSwicHJvbWlzaWZ5UmVxdWVzdCIpO3MoZHZhLCJjYWNoZURvbmVQcm9taXNlRm9yVHJhbnNhY3Rpb24iKTtRbGU9e2dldChhLGUsdCl7aWYoYSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZihlPT09ImRvbmUiKXJldHVybiBabGUuZ2V0KGEpO2lmKGU9PT0ic3RvcmUiKXJldHVybiB0Lm9iamVjdFN0b3JlTmFtZXNbMV0/dm9pZCAwOnQub2JqZWN0U3RvcmUodC5vYmplY3RTdG9yZU5hbWVzWzBdKX1yZXR1cm4gUzIoYVtlXSl9LHNldChhLGUsdCl7cmV0dXJuIGFbZV09dCwhMH0saGFzKGEsZSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmKGU9PT0iZG9uZSJ8fGU9PT0ic3RvcmUiKT8hMDplIGluIGF9fTtzKHcwdCwicmVwbGFjZVRyYXBzIik7cyh1dmEsIndyYXBGdW5jdGlvbiIpO3MocHZhLCJ0cmFuc2Zvcm1DYWNoYWJsZVZhbHVlIik7cyhTMiwid3JhcCIpO0Y5PXMoYT0+Y1guZ2V0KGEpLCJ1bndyYXAiKTtzKEMwdCwib3BlbkRCIik7cyhfMHQsImRlbGV0ZURCIik7ZnZhPVsiZ2V0IiwiZ2V0S2V5IiwiZ2V0QWxsIiwiZ2V0QWxsS2V5cyIsImNvdW50Il0saHZhPVsicHV0IiwiYWRkIiwiZGVsZXRlIiwiY2xlYXIiXSxKbGU9bmV3IE1hcDtzKE0wdCwiZ2V0TWV0aG9kIiksdzB0KGE9Pih7Li4uYSxnZXQ6cygoZSx0LHIpPT5NMHQoZSx0KXx8YS5nZXQoZSx0LHIpLCJnZXQiKSxoYXM6cygoZSx0KT0+ISFNMHQoZSx0KXx8YS5oYXMoZSx0KSwiaGFzIil9KSk7bXZhPVsiY29udGludWUiLCJjb250aW51ZVByaW1hcnlLZXkiLCJhZHZhbmNlIl0sazB0PXt9LGVjZT1uZXcgV2Vha01hcCxTMHQ9bmV3IFdlYWtNYXAsZ3ZhPXtnZXQoYSxlKXtpZighbXZhLmluY2x1ZGVzKGUpKXJldHVybiBhW2VdO2xldCB0PWswdFtlXTtyZXR1cm4gdHx8KHQ9azB0W2VdPWZ1bmN0aW9uKC4uLnIpe2VjZS5zZXQodGhpcyxTMHQuZ2V0KHRoaXMpW2VdKC4uLnIpKX0pLHR9fTtzKGJ2YSwiaXRlcmF0ZSIpO3MoejB0LCJpc0l0ZXJhdG9yUHJvcCIpLHcwdChhPT4oey4uLmEsZ2V0KGUsdCxyKXtyZXR1cm4gejB0KGUsdCk/YnZhOmEuZ2V0KGUsdCxyKX0saGFzKGUsdCl7cmV0dXJuIHowdChlLHQpfHxhLmhhcyhlLHQpfX0pKX0pO3ZhciB0Y2U9ZigoKT0+e3o5KCk7UjkoKTtPaCgpO2JpKCk7cDIoKTtpaCgpO1QwdCgpfSk7dmFyIEg5LGFjZT1mKCgpPT57dGNlKCk7SDk9Y2xhc3N7c3RhdGlje3ModGhpcywiV2ViU3RvcmUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmluaXRDYWxsZWQ9ITEsdGhpcy5yZWFkeURlZmVycmVkPWN0LmRlZmVyKCksdGhpcy5vcHRpb25zPWV9YXN5bmMgaW5pdCgpe2lmKHRoaXMuaW5pdENhbGxlZCl7YXdhaXQgdGhpcy5yZWFkeURlZmVycmVkLnByb21pc2U7cmV0dXJufXRoaXMuaW5pdENhbGxlZD0hMDtsZXQgZT1uZXcgbjEuU21hcnRlbnY7aWYoIWUuaXNCcm93c2VyJiYhZ2xvYmFsVGhpcy5pbmRleGVkREImJihjb25zb2xlLmxvZygiaGV5IiksY29uc29sZS5sb2coZ2xvYmFsVGhpcy5pbmRleGVkREIpLGF3YWl0IGUuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiL2F1dG8iKSwhZ2xvYmFsVGhpcy5pbmRleGVkREIpKXtsZXQgdD1hd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYiIpO2dsb2JhbFRoaXMuaW5kZXhlZERCPW5ldyB0LklEQkZhY3Rvcnl9dGhpcy5kYj1hd2FpdCBCOS5vcGVuREIodGhpcy5vcHRpb25zLmRiTmFtZSwxLHt1cGdyYWRlOnModD0+e3QuY3JlYXRlT2JqZWN0U3RvcmUodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9LCJ1cGdyYWRlIil9KSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWFzeW5jIGdldChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5nZXQodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxlKX1hc3luYyBjaGVjayhlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksISFhd2FpdCB0aGlzLmdldChlKX1hc3luYyBzZXQoZSx0KXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5wdXQodGhpcy5vcHRpb25zLnN0b3JlTmFtZSx0LGUpfWFzeW5jIGRlbGV0ZShlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5kZWxldGUodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxlKX1hc3luYyBjbGVhcigpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmNsZWFyKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfWFzeW5jIGtleXMoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5nZXRBbGxLZXlzKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfX19KTt2YXIgcmNlLCQwdD1mKCgpPT57YWNlKCk7dGNlKCk7cmNlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlR5cGVkcmVxdWVzdENhY2hlIil9Y29uc3RydWN0b3IoZT0iZGVmYXVsdCIpe3RoaXMud2Vic3RvcmU9bmV3IEg5KHtkYk5hbWU6InRyU3RvcmUiLHN0b3JlTmFtZTpgdHJTdG9yZS0ke2V9YH0pfWJ1aWxkS2V5KGUpe3JldHVybiAkcy5zdHJpbmdpZnkoe21ldGhvZDplLm1ldGhvZCxyZXF1ZXN0OmUucmVxdWVzdH0pfWFzeW5jIHNldEJ5UmVxdWVzdChlKXtpZighZS5yZXNwb25zZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBjYW5ub3Qgc3RvcmUgcmVxdWVzdHMgd2l0aG91dCBhIHJlc3BvbnNlIHByZXNlbnQiKTthd2FpdCB0aGlzLndlYnN0b3JlLnNldCh0aGlzLmJ1aWxkS2V5KGUpLGUpfWFzeW5jIGdldEJ5UmVxdWVzdChlKXtyZXR1cm4gYXdhaXQgdGhpcy53ZWJzdG9yZS5nZXQodGhpcy5idWlsZEtleShlKSl9fX0pO3ZhciBsMT17fTtsdChsMSx7VHlwZWRyZXF1ZXN0Q2FjaGU6KCk9PnJjZSxXZWJTdG9yZTooKT0+SDl9KTt2YXIgZFg9ZigoKT0+eyQwdCgpO2FjZSgpfSk7dmFyIHE5PWYoKCk9Pnt0MCgpO1I5KCk7T2goKTtiaSgpO2RYKCl9KTt2YXIgRmgscFg9ZigoKT0+e3E5KCk7Rmg9Y2xhc3N7c3RhdGlje3ModGhpcywiQ2FjaGVTdG9yZSIpfWNvbnN0cnVjdG9yKGU9IndlYnJlcXVlc3QtdjQiLHQ9ImNhY2hlIil7dGhpcy53ZWJzdG9yZT1uZXcgbDEuV2ViU3RvcmUoe2RiTmFtZTplLHN0b3JlTmFtZTp0fSksdGhpcy5pbml0UHJvbWlzZT10aGlzLmluaXQoKX1hc3luYyBpbml0KCl7fWdlbmVyYXRlQ2FjaGVLZXkoZSl7bGV0IHQ9ZS51cmwscj1lLm1ldGhvZDtyZXR1cm4gcj09PSJHRVQiP3Q6YCR7cn06JHt0fWB9YXN5bmMgc2V0KGUsdCl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLnNldChlLHQpfWFzeW5jIGdldChlKXthd2FpdCB0aGlzLmluaXRQcm9taXNlO3RyeXtyZXR1cm4gYXdhaXQgdGhpcy53ZWJzdG9yZS5nZXQoZSl8fG51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fWFzeW5jIGhhcyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmNoZWNrKGUpfWFzeW5jIGRlbGV0ZShlKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuZGVsZXRlKGUpfWFzeW5jIGNsZWFyKCl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmNsZWFyKCl9cmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShlKXtsZXQgdD1uZXcgSGVhZGVycyhlLmhlYWRlcnMpO3JldHVybiBuZXcgUmVzcG9uc2UoZS5yZXNwb25zZSx7c3RhdHVzOmUuc3RhdHVzLHN0YXR1c1RleHQ6ZS5zdGF0dXNUZXh0LGhlYWRlcnM6dH0pfWFzeW5jIGNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZSx0LHIpe2xldCBpPXQuY2xvbmUoKSxvPWF3YWl0IGkuYXJyYXlCdWZmZXIoKSxuPXt9O3JldHVybiBpLmhlYWRlcnMuZm9yRWFjaCgobCxkKT0+e25bZF09bH0pLHtyZXNwb25zZTpvLGhlYWRlcnM6bix0aW1lc3RhbXA6RGF0ZS5ub3coKSxldGFnOnI/LmV0YWd8fGkuaGVhZGVycy5nZXQoImV0YWciKXx8dm9pZCAwLGxhc3RNb2RpZmllZDpyPy5sYXN0TW9kaWZpZWR8fGkuaGVhZGVycy5nZXQoImxhc3QtbW9kaWZpZWQiKXx8dm9pZCAwLG1heEFnZTpyPy5tYXhBZ2UsdXJsOmUsc3RhdHVzOmkuc3RhdHVzLHN0YXR1c1RleHQ6aS5zdGF0dXNUZXh0fX1hc3luYyBwcnVuZUV4cGlyZWQoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0UHJvbWlzZSwwfX19KTtmdW5jdGlvbiB2dmEoYSl7bGV0IGU9e21heEFnZTowLGltbXV0YWJsZTohMSxub0NhY2hlOiExLG5vU3RvcmU6ITEsbXVzdFJldmFsaWRhdGU6ITF9O2lmKCFhKXJldHVybiBlO2xldCB0PWEudG9Mb3dlckNhc2UoKS5zcGxpdCgiLCIpLm1hcChyPT5yLnRyaW0oKSk7Zm9yKGxldCByIG9mIHQpaWYocj09PSJuby1jYWNoZSIpZS5ub0NhY2hlPSEwO2Vsc2UgaWYocj09PSJuby1zdG9yZSIpZS5ub1N0b3JlPSEwO2Vsc2UgaWYocj09PSJpbW11dGFibGUiKWUuaW1tdXRhYmxlPSEwO2Vsc2UgaWYocj09PSJtdXN0LXJldmFsaWRhdGUiKWUubXVzdFJldmFsaWRhdGU9ITA7ZWxzZSBpZihyLnN0YXJ0c1dpdGgoIm1heC1hZ2U9Iikpe2xldCBpPXBhcnNlSW50KHIuc3BsaXQoIj0iKVsxXSwxMCk7aXNOYU4oaSl8fChlLm1heEFnZT1pKjFlMyl9cmV0dXJuIGV9ZnVuY3Rpb24geHZhKGEpe2lmKGEpdHJ5e3JldHVybiBuZXcgRGF0ZShhKS5nZXRUaW1lKCl9Y2F0Y2h7cmV0dXJufX1mdW5jdGlvbiB6MihhKXtsZXQgZT1hLmdldCgiY2FjaGUtY29udHJvbCIpLHQ9YS5nZXQoImV4cGlyZXMiKSxyPWEuZ2V0KCJldGFnIiksaT1hLmdldCgibGFzdC1tb2RpZmllZCIpLG89dnZhKGUpO2lmKG8ubWF4QWdlPT09MCYmdCl7bGV0IG49eHZhKHQpO24mJihvLm1heEFnZT1NYXRoLm1heCgwLG4tRGF0ZS5ub3coKSkpfXJldHVybnttYXhBZ2U6by5tYXhBZ2V8fDAsZXRhZzpyfHx2b2lkIDAsbGFzdE1vZGlmaWVkOml8fHZvaWQgMCxpbW11dGFibGU6by5pbW11dGFibGV8fCExLG5vQ2FjaGU6by5ub0NhY2hlfHwhMSxub1N0b3JlOm8ubm9TdG9yZXx8ITEsbXVzdFJldmFsaWRhdGU6by5tdXN0UmV2YWxpZGF0ZXx8ITF9fWZ1bmN0aW9uIFY5KGEsZSl7aWYoZS5ub1N0b3JlKXJldHVybiExO2lmKGUuaW1tdXRhYmxlKXJldHVybiEwO2xldCB0PURhdGUubm93KCktYS50aW1lc3RhbXAscj1hLm1heEFnZXx8ZS5tYXhBZ2V8fDA7cmV0dXJuIHI9PT0wPyExOnQ8cn1mdW5jdGlvbiBqOShhKXtyZXR1cm4gYS5ub0NhY2hlfHxhLm11c3RSZXZhbGlkYXRlfWZ1bmN0aW9uIGZYKGEpe2xldCBlPXt9O3JldHVybiBhLmV0YWcmJihlWyJpZi1ub25lLW1hdGNoIl09YS5ldGFnKSxhLmxhc3RNb2RpZmllZCYmKGVbImlmLW1vZGlmaWVkLXNpbmNlIl09YS5sYXN0TW9kaWZpZWQpLGV9ZnVuY3Rpb24gaFgoYSl7bGV0IGU9e307cmV0dXJuIGEuZm9yRWFjaCgodCxyKT0+e2Vbcl09dH0pLGV9ZnVuY3Rpb24gRDB0KGEpe2xldCBlPW5ldyBIZWFkZXJzO3JldHVybiBPYmplY3QuZW50cmllcyhhKS5mb3JFYWNoKChbdCxyXSk9PntlLnNldCh0LHIpfSksZX12YXIgbVg9ZigoKT0+e3ModnZhLCJwYXJzZUNhY2hlQ29udHJvbCIpO3MoeHZhLCJwYXJzZUV4cGlyZXMiKTtzKHoyLCJleHRyYWN0Q2FjaGVNZXRhZGF0YSIpO3MoVjksImlzRnJlc2giKTtzKGo5LCJyZXF1aXJlc1JldmFsaWRhdGlvbiIpO3MoZlgsImNyZWF0ZUNvbmRpdGlvbmFsSGVhZGVycyIpO3MoaFgsImhlYWRlcnNUb09iamVjdCIpO3MoRDB0LCJvYmplY3RUb0hlYWRlcnMiKX0pO2Z1bmN0aW9uIEEwdChhKXtzd2l0Y2goYSl7Y2FzZSJuZXR3b3JrLWZpcnN0IjpyZXR1cm4gbmV3IGdYO2Nhc2UiY2FjaGUtZmlyc3QiOnJldHVybiBuZXcgc2NlO2Nhc2Uic3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSI6cmV0dXJuIG5ldyBpY2U7Y2FzZSJuZXR3b3JrLW9ubHkiOnJldHVybiBuZXcgb2NlO2Nhc2UiY2FjaGUtb25seSI6cmV0dXJuIG5ldyBuY2U7ZGVmYXVsdDpyZXR1cm4gbmV3IGdYfX12YXIgZ1gsc2NlLGljZSxvY2UsbmNlLFAwdD1mKCgpPT57cFgoKTttWCgpO2dYPWNsYXNze3N0YXRpY3tzKHRoaXMsIk5ldHdvcmtGaXJzdFN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXt0cnl7bGV0IHQ9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7cmV0dXJuIHQub2smJmF3YWl0IHRoaXMuY2FjaGVSZXNwb25zZShlLHQpLHtyZXNwb25zZTp0LGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19Y2F0Y2godCl7ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIE5ldHdvcmsgZmFpbGVkLCB0cnlpbmcgY2FjaGU6Iix0KTtsZXQgcj1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKHIpcmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07dGhyb3cgdH19YXN5bmMgY2FjaGVSZXNwb25zZShlLHQpe2xldCByPXoyKHQuaGVhZGVycyk7aWYoci5ub1N0b3JlKXJldHVybjtsZXQgaT1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHQscik7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LGkpfX0sc2NlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkNhY2hlRmlyc3RTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHQ9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZih0KXtsZXQgbz16MihuZXcgSGVhZGVycyh0LmhlYWRlcnMpKTtpZihWOSh0LG8pKXJldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6IixlLnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkodCksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZihqOShvKSYmKHQuZXRhZ3x8dC5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUoZSx0KX1lLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6IixlLnJlcXVlc3QudXJsKTtsZXQgcj1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxpPXoyKHIuaGVhZGVycyk7aWYoIWkubm9TdG9yZSl7bGV0IG89YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxyLGkpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxvKX1yZXR1cm57cmVzcG9uc2U6cixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUoZSx0KXtsZXQgcj1mWCh0KSxpPW5ldyBSZXF1ZXN0KGUucmVxdWVzdC51cmwse21ldGhvZDplLnJlcXVlc3QubWV0aG9kLGhlYWRlcnM6ey4uLmhYKGUucmVxdWVzdC5oZWFkZXJzKSwuLi5yfX0pO3RyeXtsZXQgbz1hd2FpdCBlLmZldGNoRm4oaSk7aWYoby5zdGF0dXM9PT0zMDQpcmV0dXJuIGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBDYWNoZSByZXZhbGlkYXRlZCAoMzA0KToiLGUucmVxdWVzdC51cmwpLHQudGltZXN0YW1wPURhdGUubm93KCksYXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHQpLHtyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeSh0KSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITB9O2lmKG8ub2spe2xldCBuPXoyKG8uaGVhZGVycyk7aWYoIW4ubm9TdG9yZSl7bGV0IGw9YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxvLG4pO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxsKX19cmV0dXJue3Jlc3BvbnNlOm8sZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiEwfX1jYXRjaChvKXtyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIFJldmFsaWRhdGlvbiBmYWlsZWQsIHVzaW5nIGNhY2hlOiIsbykse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0saWNlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlN0YWxlV2hpbGVSZXZhbGlkYXRlU3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCB0PWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYodCl7bGV0IG89ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkodCk7cmV0dXJuIHRoaXMucmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLHQpLmNhdGNoKG49PntlLmxvZ2dpbmcmJmNvbnNvbGUud2FybigiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGZhaWxlZDoiLG4pfSkse3Jlc3BvbnNlOm8sZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfX1sZXQgcj1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxpPXoyKHIuaGVhZGVycyk7aWYoIWkubm9TdG9yZSYmci5vayl7bGV0IG89YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxyLGkpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxvKX1yZXR1cm57cmVzcG9uc2U6cixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGVJbkJhY2tncm91bmQoZSx0KXtsZXQgcj16MihuZXcgSGVhZGVycyh0LmhlYWRlcnMpKTtpZighKFY5KHQscikmJiFqOShyKSkpdHJ5e2xldCBpPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpO2lmKGkub2spe2xldCBvPXoyKGkuaGVhZGVycyk7aWYoIW8ubm9TdG9yZSl7bGV0IG49YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxpLG8pO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxuKSxlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gY29tcGxldGU6IixlLnJlcXVlc3QudXJsKX19fWNhdGNoKGkpe2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIsaSl9fX0sb2NlPWNsYXNze3N0YXRpY3tzKHRoaXMsIk5ldHdvcmtPbmx5U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe3JldHVybntyZXNwb25zZTphd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fX0sbmNlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkNhY2hlT25seVN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXtsZXQgdD1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKCF0KXRocm93IG5ldyBFcnJvcihgQ2FjaGUgbWlzcyBmb3IgJHtlLnJlcXVlc3QudXJsfSAoY2FjaGUtb25seSBtb2RlKWApO3JldHVybntyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeSh0KSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fX07cyhBMHQsImdldFN0cmF0ZWd5SGFuZGxlciIpfSk7dmFyIEJoLGxjZT1mKCgpPT57cFgoKTtQMHQoKTttWCgpO0JoPWNsYXNze3N0YXRpY3tzKHRoaXMsIkNhY2hlTWFuYWdlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5jYWNoZVN0b3JlPW5ldyBGaChlLHQpfWFzeW5jIGV4ZWN1dGUoZSx0LHIpe2xldCBpPXRoaXMuZGV0ZXJtaW5lU3RyYXRlZ3koZSx0KTtpZihpPT09Im5ldHdvcmstb25seSIpcmV0dXJue3Jlc3BvbnNlOmF3YWl0IHIoZSksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfTtsZXQgbz10aGlzLmdlbmVyYXRlQ2FjaGVLZXkoZSx0KSxuPUEwdChpKSxsPXtyZXF1ZXN0OmUsY2FjaGVLZXk6byxjYWNoZVN0b3JlOnRoaXMuY2FjaGVTdG9yZSxmZXRjaEZuOnIsbG9nZ2luZzp0LmxvZ2dpbmd9O3JldHVybiBhd2FpdCBuLmV4ZWN1dGUobCl9ZGV0ZXJtaW5lU3RyYXRlZ3koZSx0KXtyZXR1cm4gdC5jYWNoZVN0cmF0ZWd5P3QuY2FjaGVTdHJhdGVneTp0LmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0LmNhY2hlKTplLmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneShlLmNhY2hlKToibmV0d29yay1maXJzdCJ9bWFwQ2FjaGVNb2RlVG9TdHJhdGVneShlKXtzd2l0Y2goZSl7Y2FzZSJkZWZhdWx0IjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJuby1zdG9yZSI6Y2FzZSJyZWxvYWQiOnJldHVybiJuZXR3b3JrLW9ubHkiO2Nhc2Uibm8tY2FjaGUiOnJldHVybiJuZXR3b3JrLWZpcnN0IjtjYXNlImZvcmNlLWNhY2hlIjpyZXR1cm4iY2FjaGUtZmlyc3QiO2Nhc2Uib25seS1pZi1jYWNoZWQiOnJldHVybiJjYWNoZS1vbmx5IjtkZWZhdWx0OnJldHVybiJuZXR3b3JrLWZpcnN0In19Z2VuZXJhdGVDYWNoZUtleShlLHQpe3JldHVybiB0LmNhY2hlS2V5P3R5cGVvZiB0LmNhY2hlS2V5PT0iZnVuY3Rpb24iP3QuY2FjaGVLZXkoZSk6dC5jYWNoZUtleTp0aGlzLmNhY2hlU3RvcmUuZ2VuZXJhdGVDYWNoZUtleShlKX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5jbGVhcigpfWFzeW5jIGRlbGV0ZShlKXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuZGVsZXRlKGUpfWFzeW5jIGhhcyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmhhcyhlKX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLmNhY2hlU3RvcmV9fX0pO2Z1bmN0aW9uIEUwdChhKXtzd2l0Y2goYSl7Y2FzZSJleHBvbmVudGlhbCI6cmV0dXJuIG5ldyBiWDtjYXNlImxpbmVhciI6cmV0dXJuIG5ldyBjY2U7Y2FzZSJjb25zdGFudCI6cmV0dXJuIG5ldyBkY2U7ZGVmYXVsdDpyZXR1cm4gbmV3IGJYfX1mdW5jdGlvbiBJMHQoYSxlPS4xKXtsZXQgdD1hKmUqTWF0aC5yYW5kb20oKTtyZXR1cm4gYSt0fXZhciBiWCxjY2UsZGNlLE4wdD1mKCgpPT57Ylg9Y2xhc3N7c3RhdGlje3ModGhpcywiRXhwb25lbnRpYWxCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxyKXtsZXQgaT10Kk1hdGgucG93KDIsZS0xKTtyZXR1cm4gTWF0aC5taW4oaSxyKX19LGNjZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJMaW5lYXJCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxyKXtsZXQgaT10KmU7cmV0dXJuIE1hdGgubWluKGkscil9fSxkY2U9Y2xhc3N7c3RhdGlje3ModGhpcywiQ29uc3RhbnRCYWNrb2ZmIil9Y2FsY3VsYXRlKGUsdCxyKXtyZXR1cm4gTWF0aC5taW4odCxyKX19O3MoRTB0LCJnZXRCYWNrb2ZmQ2FsY3VsYXRvciIpO3MoSTB0LCJhZGRKaXR0ZXIiKX0pO3ZhciBIaCx1Y2U9ZigoKT0+e3E5KCk7TjB0KCk7SGg9Y2xhc3N7c3RhdGlje3ModGhpcywiUmV0cnlNYW5hZ2VyIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5vcHRpb25zPXttYXhBdHRlbXB0czplLm1heEF0dGVtcHRzPz8zLGJhY2tvZmY6ZS5iYWNrb2ZmPz8iZXhwb25lbnRpYWwiLGluaXRpYWxEZWxheTplLmluaXRpYWxEZWxheT8/MWUzLG1heERlbGF5OmUubWF4RGVsYXk/PzNlNCxyZXRyeU9uOmUucmV0cnlPbj8/WzQwOCw0MjksNTAwLDUwMiw1MDMsNTA0XSxvblJldHJ5OmUub25SZXRyeT8/KCgpPT57fSl9fWFzeW5jIGV4ZWN1dGUoZSx0KXtsZXQgcixpO2ZvcihsZXQgbz0xO288PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cztvKyspdHJ5e2xldCBuPWF3YWl0IGUoKTtpZihuIGluc3RhbmNlb2YgUmVzcG9uc2UmJnRoaXMuc2hvdWxkUmV0cnlSZXNwb25zZShuKSl7aWYoaT1uLG89PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHMpcmV0dXJuIG47bGV0IGw9dGhpcy5jYWxjdWxhdGVEZWxheShvKTt0aGlzLm9wdGlvbnMub25SZXRyeShvLG5ldyBFcnJvcihgSFRUUCAke24uc3RhdHVzfWApLGwpLGF3YWl0IHRoaXMuZGVsYXkobCk7Y29udGludWV9cmV0dXJuIG59Y2F0Y2gobil7cj1uIGluc3RhbmNlb2YgRXJyb3I/bjpuZXcgRXJyb3IoU3RyaW5nKG4pKTtsZXQgbD10P3QobixvKTp0aGlzLnNob3VsZFJldHJ5RXJyb3Iobik7aWYobz09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0c3x8IWwpdGhyb3cgcjtsZXQgZD10aGlzLmNhbGN1bGF0ZURlbGF5KG8pO3RoaXMub3B0aW9ucy5vblJldHJ5KG8scixkKSxhd2FpdCB0aGlzLmRlbGF5KGQpfXRocm93IHJ8fG5ldyBFcnJvcigiTWF4IHJldHJ5IGF0dGVtcHRzIHJlYWNoZWQiKX1hc3luYyBleGVjdXRlV2l0aEZhbGxiYWNrcyhlLHQscil7aWYoZS5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiTm8gVVJMcyBwcm92aWRlZCBmb3IgZmFsbGJhY2sgZXhlY3V0aW9uIik7bGV0IGksbz1bXTtmb3IobGV0IG4gb2YgZSl0cnl7bGV0IGw9YXdhaXQgdGhpcy5leGVjdXRlKGFzeW5jKCk9PmF3YWl0IHIobix0KSk7aWYobC5zdGF0dXM8NDAwfHxsLnN0YXR1cz49NDAwJiZsLnN0YXR1czw1MDAmJmwuc3RhdHVzIT09NDA4KXJldHVybiBsO28ucHVzaChuKSxpPW5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtsLnN0YXR1c31gKX1jYXRjaChsKXtvLnB1c2gobiksaT1sIGluc3RhbmNlb2YgRXJyb3I/bDpuZXcgRXJyb3IoU3RyaW5nKGwpKX10aHJvdyBuZXcgRXJyb3IoYEFsbCBVUkxzIGZhaWxlZDogJHtvLmpvaW4oIiwgIil9LiBMYXN0IGVycm9yOiAke2k/Lm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIn1gKX1zaG91bGRSZXRyeVJlc3BvbnNlKGUpe2xldCB0PXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUpOkFycmF5LmlzQXJyYXkodCk/dC5pbmNsdWRlcyhlLnN0YXR1cyk6ITF9c2hvdWxkUmV0cnlFcnJvcihlKXtpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yJiZlLm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIil8fGUubmFtZT09PSJBYm9ydEVycm9yInx8ZS5tZXNzYWdlLmluY2x1ZGVzKCJ0aW1lb3V0IikpcmV0dXJuITA7bGV0IHQ9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Qodm9pZCAwLGUpOiExfWNhbGN1bGF0ZURlbGF5KGUpe2xldCByPUUwdCh0aGlzLm9wdGlvbnMuYmFja29mZikuY2FsY3VsYXRlKGUsdGhpcy5vcHRpb25zLmluaXRpYWxEZWxheSx0aGlzLm9wdGlvbnMubWF4RGVsYXkpO3JldHVybiBJMHQocil9YXN5bmMgZGVsYXkoZSl7YXdhaXQgVXQuZGVsYXlGb3IoZSl9fX0pO3ZhciBxaCxwY2U9ZigoKT0+e3E5KCk7cWg9Y2xhc3N7c3RhdGlje3ModGhpcywiUmVxdWVzdERlZHVwbGljYXRvciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5pbkZsaWdodFJlcXVlc3RzPW5ldyBNYXB9Z2VuZXJhdGVLZXkoZSl7bGV0IHQ9ZS51cmwscj1lLm1ldGhvZDtyZXR1cm4gcj09PSJHRVQifHxyPT09IkhFQUQiP2Ake3J9OiR7dH1gOmAke3J9OiR7dH06JHtEYXRlLm5vdygpfWB9YXN5bmMgZXhlY3V0ZShlLHQpe2xldCByPXRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5nZXQoZSk7aWYocilyZXR1cm57cmVzcG9uc2U6KGF3YWl0IHIucHJvbWlzZSkuY2xvbmUoKSx3YXNEZWR1cGxpY2F0ZWQ6ITB9O2xldCBpPWN0LmRlZmVyKCk7dGhpcy5pbkZsaWdodFJlcXVlc3RzLnNldChlLGkpO3RyeXtsZXQgbz1hd2FpdCB0KCk7cmV0dXJuIGkucmVzb2x2ZShvKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLHtyZXNwb25zZTpvLHdhc0RlZHVwbGljYXRlZDohMX19Y2F0Y2gobyl7dGhyb3cgaS5yZWplY3QobyksdGhpcy5pbkZsaWdodFJlcXVlc3RzLmRlbGV0ZShlKSxvfX1pc0luRmxpZ2h0KGUpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuaGFzKGUpfWdldEluRmxpZ2h0Q291bnQoKXtyZXR1cm4gdGhpcy5pbkZsaWdodFJlcXVlc3RzLnNpemV9Y2xlYXIoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuY2xlYXIoKX19fSk7ZnVuY3Rpb24geXZhKGEpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1uZXcgVXQuVGltZW91dChhLG51bGwpO3JldHVybiB0LnByb21pc2UudGhlbigoKT0+e2UuYWJvcnQoKX0pLHtjb250cm9sbGVyOmUsY2xlYW51cDpzKCgpPT57dC5jYW5jZWwoKX0sImNsZWFudXAiKX19YXN5bmMgZnVuY3Rpb24gZmNlKGEsZSx0KXtsZXR7Y29udHJvbGxlcjpyLGNsZWFudXA6aX09eXZhKHQpO3RyeXtsZXQgbz1hd2FpdCBmZXRjaChhLHsuLi5lLHNpZ25hbDpyLnNpZ25hbH0pO3JldHVybiBpKCksb31jYXRjaChvKXt0aHJvdyBpKCksbyBpbnN0YW5jZW9mIEVycm9yJiZvLm5hbWU9PT0iQWJvcnRFcnJvciI/bmV3IEVycm9yKGBSZXF1ZXN0IHRpbWVvdXQgYWZ0ZXIgJHt0fW1zOiAke2F9YCk6b319dmFyIFIwdD1mKCgpPT57cTkoKTtzKHl2YSwiY3JlYXRlVGltZW91dENvbnRyb2xsZXIiKTtzKGZjZSwiZmV0Y2hXaXRoVGltZW91dCIpfSk7dmFyIFMzLGhjZT1mKCgpPT57SWxlKCk7bGNlKCk7dWNlKCk7cGNlKCk7UjB0KCk7UzM9Y2xhc3N7c3RhdGlje3ModGhpcywiV2VicmVxdWVzdENsaWVudCIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMuZGVmYXVsdE9wdGlvbnM9ZSx0aGlzLmludGVyY2VwdG9yTWFuYWdlcj1uZXcgSWgsdGhpcy5jYWNoZU1hbmFnZXI9bmV3IEJoLHRoaXMuZGVkdXBsaWNhdG9yPW5ldyBxaH1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVxdWVzdEludGVyY2VwdG9yKGUpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKX1hZGRFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZEVycm9ySW50ZXJjZXB0b3IoZSl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcihlKX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpfWNsZWFySW50ZXJjZXB0b3JzKCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuY2xlYXJBbGwoKX1hc3luYyBjbGVhckNhY2hlKCl7YXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuY2xlYXIoKX1hc3luYyByZXF1ZXN0KGUsdD17fSl7bGV0IHI9ey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsLi4udH0saTtpZih0eXBlb2YgZT09InN0cmluZyI/aT1uZXcgUmVxdWVzdChlLHIpOmk9ZSxpPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXF1ZXN0KGkpLHIuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0KWZvcihsZXQgbiBvZiByLmludGVyY2VwdG9ycy5yZXF1ZXN0KWk9YXdhaXQgbihpKTtpZihyLmRlZHVwbGljYXRlPz8hMSl7bGV0IG49dGhpcy5kZWR1cGxpY2F0b3IuZ2VuZXJhdGVLZXkoaSk7cmV0dXJuKGF3YWl0IHRoaXMuZGVkdXBsaWNhdG9yLmV4ZWN1dGUobixhc3luYygpPT5hd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KGkscikpKS5yZXNwb25zZX1yZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChpLHIpfWFzeW5jIGV4ZWN1dGVSZXF1ZXN0KGUsdCl7dHJ5e2xldCByPXR5cGVvZiB0LnJldHJ5PT0ib2JqZWN0Ij90LnJldHJ5OnQucmV0cnk/e306dm9pZCAwLGk9cyhhc3luYyBsPT57bGV0IGQ9dC50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IGZjZShsLnVybCx7bWV0aG9kOmwubWV0aG9kLGhlYWRlcnM6bC5oZWFkZXJzLGJvZHk6bC5ib2R5LC4uLnR9LGQpfSwiZmV0Y2hGbkZvclJlcXVlc3QiKSxvPXMoYXN5bmMobCxkKT0+e2xldCBjPXQudGltZW91dD8/NmU0O3JldHVybiBhd2FpdCBmY2UobCxkLGMpfSwiZmV0Y2hGbkZvckZhbGxiYWNrcyIpLG47aWYocil7bGV0IGw9bmV3IEhoKHIpO2lmKHQuZmFsbGJhY2tVcmxzJiZ0LmZhbGxiYWNrVXJscy5sZW5ndGg+MCl7bGV0IGQ9W2UudXJsLC4uLnQuZmFsbGJhY2tVcmxzXTtuPWF3YWl0IGwuZXhlY3V0ZVdpdGhGYWxsYmFja3MoZCx7bWV0aG9kOmUubWV0aG9kLGhlYWRlcnM6ZS5oZWFkZXJzLGJvZHk6ZS5ib2R5LC4uLnR9LG8pfWVsc2Ugbj1hd2FpdCBsLmV4ZWN1dGUoYXN5bmMoKT0+KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSx0LGkpKS5yZXNwb25zZSl9ZWxzZSBuPShhd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5leGVjdXRlKGUsdCxpKSkucmVzcG9uc2U7aWYobj1hd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzUmVzcG9uc2UobiksdC5pbnRlcmNlcHRvcnM/LnJlc3BvbnNlKWZvcihsZXQgbCBvZiB0LmludGVyY2VwdG9ycy5yZXNwb25zZSluPWF3YWl0IGwobik7cmV0dXJuIG59Y2F0Y2gocil7dGhyb3cgYXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc0Vycm9yKHIgaW5zdGFuY2VvZiBFcnJvcj9yOm5ldyBFcnJvcihTdHJpbmcocikpKX19YXN5bmMgZ2V0SnNvbihlLHQ9e30pe2xldCByPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi50LG1ldGhvZDoiR0VUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLnQuaGVhZGVyc3x8e319fSk7aWYoIXIub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7ci5zdGF0dXN9OiAke3Iuc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgci5qc29uKCl9YXN5bmMgcG9zdEpzb24oZSx0LHI9e30pe2xldCBpPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi5yLG1ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX0sYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfWFzeW5jIHB1dEpzb24oZSx0LHI9e30pe2xldCBpPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi5yLG1ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KHQpfSk7aWYoIWkub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7aS5zdGF0dXN9OiAke2kuc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgaS5qc29uKCl9YXN5bmMgZGVsZXRlSnNvbihlLHQ9e30pe2xldCByPWF3YWl0IHRoaXMucmVxdWVzdChlLHsuLi50LG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLnQuaGVhZGVyc3x8e319fSk7aWYoIXIub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7ci5zdGF0dXN9OiAke3Iuc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgci5qc29uKCl9fX0pO2FzeW5jIGZ1bmN0aW9uIFdvKGEsZSl7bGV0IHQ9YSBpbnN0YW5jZW9mIFJlcXVlc3Q/YS51cmw6U3RyaW5nKGEpLHI9YSBpbnN0YW5jZW9mIFJlcXVlc3Q/YTpuZXcgUmVxdWVzdCh0LGUpO3JldHVybiBhd2FpdCBjMS5yZXF1ZXN0KHIsZSl9dmFyIGMxLE8wdD1mKCgpPT57aGNlKCk7YzE9bmV3IFMzO3MoV28sIndlYnJlcXVlc3QiKSxXby5nZXRKc29uPWFzeW5jIGZ1bmN0aW9uKGEsZSl7cmV0dXJuIGF3YWl0IGMxLmdldEpzb24oYSxlKX0sV28ucG9zdEpzb249YXN5bmMgZnVuY3Rpb24oYSxlLHQpe3JldHVybiBhd2FpdCBjMS5wb3N0SnNvbihhLGUsdCl9LFdvLnB1dEpzb249YXN5bmMgZnVuY3Rpb24oYSxlLHQpe3JldHVybiBhd2FpdCBjMS5wdXRKc29uKGEsZSx0KX0sV28uZGVsZXRlSnNvbj1hc3luYyBmdW5jdGlvbihhLGUpe3JldHVybiBhd2FpdCBjMS5kZWxldGVKc29uKGEsZSl9LFdvLmFkZFJlcXVlc3RJbnRlcmNlcHRvcj1mdW5jdGlvbihhKXtjMS5hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoYSl9LFdvLmFkZFJlc3BvbnNlSW50ZXJjZXB0b3I9ZnVuY3Rpb24oYSl7YzEuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcihhKX0sV28uYWRkRXJyb3JJbnRlcmNlcHRvcj1mdW5jdGlvbihhKXtjMS5hZGRFcnJvckludGVyY2VwdG9yKGEpfSxXby5jbGVhckludGVyY2VwdG9ycz1mdW5jdGlvbigpe2MxLmNsZWFySW50ZXJjZXB0b3JzKCl9LFdvLmNsZWFyQ2FjaGU9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBjMS5jbGVhckNhY2hlKCl9LFdvLmNyZWF0ZUNsaWVudD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IFMzKGEpfSxXby5nZXREZWZhdWx0Q2xpZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGMxfX0pO3ZhciB6Mz17fTtsdCh6Myx7Q2FjaGVNYW5hZ2VyOigpPT5CaCxDYWNoZVN0b3JlOigpPT5GaCxJbnRlcmNlcHRvck1hbmFnZXI6KCk9PkloLFJlcXVlc3REZWR1cGxpY2F0b3I6KCk9PnFoLFJldHJ5TWFuYWdlcjooKT0+SGgsV2VicmVxdWVzdENsaWVudDooKT0+UzMsY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzOigpPT5mWCxleHRyYWN0Q2FjaGVNZXRhZGF0YTooKT0+ejIsaGVhZGVyc1RvT2JqZWN0OigpPT5oWCxpc0ZyZXNoOigpPT5WOSxvYmplY3RUb0hlYWRlcnM6KCk9PkQwdCxyZXF1aXJlc1JldmFsaWRhdGlvbjooKT0+ajksd2VicmVxdWVzdDooKT0+V299KTt2YXIgbWNlPWYoKCk9PntPMHQoKTtoY2UoKTtsY2UoKTtwWCgpO3VjZSgpO0lsZSgpO3BjZSgpO21YKCl9KTt2YXIgTTAsazA9ZigoKT0+e2loKCk7TTA9a28oWUcoKSwxKTt6OSgpO1hjdCgpO3QwKCk7UWN0KCk7YmkoKTttY2UoKX0pO3ZhciBkMSxWaD1mKCgpPT57azAoKTtkMT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJUeXBlZFJlc3BvbnNlRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuZXJyb3JUZXh0PWUsdGhpcy5lcnJvckRhdGE9dH19fSk7dmFyIHhYLEYwdD1mKCgpPT57VmgoKTtrMCgpO3hYPWNsYXNze3N0YXRpY3tzKHRoaXMsIlR5cGVkVG9vbHMiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9jYWxEYXRhPXt9fWFzeW5jIHBhc3NHdWFyZHMoZSx0KXtsZXQgcj1uZXcgTjkuR3VhcmRTZXQoZSk7aWYoIWF3YWl0IHIuYWxsR3VhcmRzUGFzcyh0KSl7bGV0IG89YXdhaXQgci5nZXRGYWlsZWRIaW50KHQpO3Rocm93IG5ldyBkMShgZ3VhcmQgZmFpbGVkOiAke299YCx7ZmFpbGVkSGludDpvfSl9fX19KTt2YXIgZ2NlLGJjZT1mKCgpPT57azAoKTtWaCgpO0YwdCgpO2djZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJUeXBlZEhhbmRsZXIiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMubWV0aG9kPWUsdGhpcy5oYW5kbGVyRnVuY3Rpb249dH1hc3luYyBhZGRSZXNwb25zZShlKXtpZihlLm1ldGhvZCE9PXRoaXMubWV0aG9kKXRocm93IG5ldyBFcnJvcigidGhpcyBoYW5kbGVyIGhhcyBiZWVuIGdpdmVuIGEgd3JvbmcgbWV0aG9kIHRvIGFuc3dlciB0by4gUGxlYXNlIHVzZSBhIFR5cGVkUm91dGVyIHRvIGZpbHRlciByZXF1ZXN0cyIpO2xldCB0LHI9bmV3IHhYO2UubG9jYWxEYXRhJiYoci5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCBpPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxyKS5jYXRjaChvPT57byBpbnN0YW5jZW9mIGQxP3Q9bzpjb25zb2xlLmxvZyhvKX0pO3JldHVybiB0JiYoZS5lcnJvcj17dGV4dDp0LmVycm9yVGV4dCxkYXRhOnQuZXJyb3JEYXRhfSksaSYmKGUucmVzcG9uc2U9aSksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgQzMsVTk9ZigoKT0+e2swKCk7eVgoKTtiY2UoKTt2Y2UoKTtWaCgpO0MzPWNsYXNzIGF7c3RhdGlje3ModGhpcywiVHlwZWRSb3V0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IExzLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IExzLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgTHMuT2JqZWN0TWFwLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgTHMuSW50ZXJlc3RNYXAoZT0+ZSl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKGUpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPWV9c3RhdGljIHNldEdsb2JhbEhvb2tzKGUpe2xldCB0PWEuZ2xvYmFsSG9va3M7YS5nbG9iYWxIb29rcz17Li4udCwuLi5lfX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKGUpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4uZX19Y2FsbEhvb2soZSx0KXt0cnl7YS5nbG9iYWxIb29rc1tlXT8uKHQpLHRoaXMuaG9va3NbZV0/Lih0KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke2V9KTpgLHIpfX1hZGRNaWRkbGV3YXJlKGUpe3RoaXMubWlkZGxld2FyZXMucHVzaChlKX1hZGRUeXBlZEhhbmRsZXIoZSl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZS5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7ZS5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKGUpfWFkZFR5cGVkUm91dGVyKGUpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKHI9PnI9PT1lKXx8KHRoaXMucm91dGVyTWFwLmFkZChlKSxlLmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcihlKXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLHQ9W10pe3QucHVzaCh0aGlzKTtsZXQgcjtyZXR1cm4gcj10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMoaT0+aS5tZXRob2Q9PT1lKSxyfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2goaT0+eyFyJiYhdC5pbmNsdWRlcyhpKSYmKHI9aS5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSx0KSl9KSxyfWdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHQ9W10pe3QucHVzaCh0aGlzKTtsZXQgcj10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMoaT0+aS5tZXRob2Q9PT1lKTtpZihyKXJldHVybntoYW5kbGVyOnIscm91dGVyOnRoaXN9O2ZvcihsZXQgaSBvZiB0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpKWlmKCF0LmluY2x1ZGVzKGkpKXtsZXQgbz1pLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHQpO2lmKG8pcmV0dXJuIG99cmV0dXJuIG51bGx9c3RhdGlje3RoaXMuZGVmYXVsdFJvdXRlT3B0aW9ucz17bG9jYWxSZXF1ZXN0OiExLHNraXBIb29rczohMX19YXN5bmMgcm91dGVBbmRBZGRSZXNwb25zZShlLHQ9e30pe2xldCByPXsuLi5hLmRlZmF1bHRSb3V0ZU9wdGlvbnMsLi4udH07aWYoZT11MS5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGUubG9jYWxEYXRhPWUubG9jYWxEYXRhfHx7fSxlLmxvY2FsRGF0YS5maXJzdFR5cGVkcm91dGVyPXRoaXMsZS5tZXRob2Q9PT0iIyNWaXJ0dWFsU3RyZWFtIyMiKXtsZXQgaT1hd2FpdCB0aGlzLmhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKTtyZXR1cm4gaS5sb2NhbERhdGE9bnVsbCxpfWlmKGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXF1ZXN0Inx8ci5sb2NhbFJlcXVlc3Qpe2xldCBpPURhdGUubm93KCk7ci5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOmkscGF5bG9hZDplLnJlcXVlc3R9KTtsZXQgbz10aGlzLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLm1ldGhvZCk7aWYoIW8pcmV0dXJuIGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7ZS5tZXRob2R9YCksZS5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT11MS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksci5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktaSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGU7bGV0e2hhbmRsZXI6bixyb3V0ZXI6bH09bztpZihsLm1pZGRsZXdhcmVzLmxlbmd0aD4wKXRyeXtmb3IobGV0IGQgb2YgbC5taWRkbGV3YXJlcylhd2FpdCBkKGUpfWNhdGNoKGQpe3JldHVybiBkIGluc3RhbmNlb2YgZDE/ZS5lcnJvcj17dGV4dDpkLmVycm9yVGV4dCxkYXRhOmQuZXJyb3JEYXRhfHx7fX06ZS5lcnJvcj17dGV4dDpkLm1lc3NhZ2V8fCJNaWRkbGV3YXJlIGVycm9yIixkYXRhOnt9fSxlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIsZS5sb2NhbERhdGE9bnVsbCxlPXUxLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxyLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1pLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZX1yZXR1cm4gZT1hd2FpdCBuLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT11MS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksci5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktaSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9ZWxzZSByZXR1cm4gZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlc3BvbnNlIj8oci5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXAuZmluZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQpPy5mdWxsZmlsbEludGVyZXN0KGUpLG51bGwpOihjb25zb2xlLmxvZygicmVjZWl2ZWQgd2VpcmRseSBzaGFwZWQgcmVxdWVzdCIpLGNvbnNvbGUubG9nKGUpLG51bGwpfWFzeW5jIGhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKXtsZXQgdD1hd2FpdCB0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5maW5kKGFzeW5jIGk9Pmkuc3RyZWFtSWQ9PT1lLnJlcXVlc3Quc3RyZWFtSWQpO2lmKHQpY29uc29sZS5sb2coYHN1Y2Nlc3M6IGZvdW5kIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCk7ZWxzZSByZXR1cm4gY29uc29sZS5sb2coYG5vIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIGZvdW5kIGZvciBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKSxjb25zb2xlLmxvZyh0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5nZXRBcnJheSgpKSxlO3JldHVybiBhd2FpdCB0LmhhbmRsZVN0cmVhbVRyKGUpfX19KTt2YXIgQjB0LHUxLHlYPWYoKCk9PntrMCgpO1U5KCk7QjB0PSIjIyMjIyMjIyMjIyMjQ0xPU0lORyBCSVQjIyMjIyMjIyMjIyMjIix1MT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIlZpcnR1YWxTdHJlYW0iKX1zdGF0aWMgZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx0LHIsaT1bXSl7cmV0dXJuIWV8fEVoLmlzQnVmZmVyTGlrZShlKT9lOmUgaW5zdGFuY2VvZiBhPyghZS5zaWRlJiZ0LnNlbmRNZXRob2QmJihlLnNpZGU9InJlcXVlc3RpbmciLGUuc2VuZE1ldGhvZD10LnNlbmRNZXRob2QpLCFlLnNpZGUmJnQudHlwZWRyb3V0ZXImJihlLnNpZGU9InJlc3BvbmRpbmciLGUudHlwZWRyb3V0ZXI9dC50eXBlZHJvdXRlcix0LnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoZSkpLCFyLnJlc3BvbnNlfHxpLmluY2x1ZGVzKCJyZXNwb25zZSIpPyhlLnN0YXJ0S2VlcEFsaXZlTG9vcCgpLHtfaXNWaXJ0dWFsU3RyZWFtOiEwLHN0cmVhbUlkOmUuc3RyZWFtSWR9KTp7X09CTUlUVEVEX1ZJUlRVQUxfU1RSRUFNOiEwLHJlYXNvbjoicGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4ifSk6QXJyYXkuaXNBcnJheShlKT9lLm1hcCgobyxuKT0+YS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhvLHQscnx8ZSxpLmNvbmNhdChTdHJpbmcobikpKSk6ZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Ij9PYmplY3QuZW50cmllcyhlKS5yZWR1Y2UoKG8sW24sbF0pPT57bGV0IGQ9aS5jb25jYXQobik7cmV0dXJuIG9bbl09YS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhsLHQscnx8ZSxkKSxvfSx7fSk6ZX1zdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGUsdCl7aWYoRWguaXNCdWZmZXJMaWtlKGUpfHxlIGluc3RhbmNlb2YgQzMpcmV0dXJuIGU7aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoZSBpbnN0YW5jZW9mIFNldHx8ZSBpbnN0YW5jZW9mIE1hcHx8ZSBpbnN0YW5jZW9mIERhdGV8fGUgaW5zdGFuY2VvZiBSZWdFeHB8fGUgaW5zdGFuY2VvZiBFcnJvcnx8ZSBpbnN0YW5jZW9mIFByb21pc2V8fHR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGU7aWYoZS5faXNWaXJ0dWFsU3RyZWFtKXtsZXQgcj1uZXcgYTtyZXR1cm4gci5zdHJlYW1JZD1lLnN0cmVhbUlkLCFyLnNpZGUmJnQuc2VuZE1ldGhvZCYmKHIuc2lkZT0icmVxdWVzdGluZyIsci5zZW5kTWV0aG9kPXQuc2VuZE1ldGhvZCksIXIuc2lkZSYmdC50eXBlZHJvdXRlciYmKHIuc2lkZT0icmVzcG9uZGluZyIsci50eXBlZHJvdXRlcj10LnR5cGVkcm91dGVyLHQudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChyKSksci5zdGFydEtlZXBBbGl2ZUxvb3AoKSxyfWVsc2UgaWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IHI9W107Zm9yKGxldCBpIG9mIGUpci5wdXNoKGEuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGksdCkpO3JldHVybiByfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgocixpKT0+KHJbaV09YS5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZVtpXSx0KSxyKSx7fSl9ZWxzZSByZXR1cm4gZX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RyZWFtSWQ9TTAudW5pKCksdGhpcy5rZWVwQWxpdmU9ITAsdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5PW5ldyBMcy5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheT1uZXcgTHMuQmFja3ByZXNzdXJlZEFycmF5KDE2KX1zdGF0aWMgcmVjb25zdGl0dXRlQmluYXJ5RGF0YShlKXtpZihlPT1udWxsfHxlIGluc3RhbmNlb2YgVWludDhBcnJheXx8dHlwZW9mIEJ1ZmZlcjwidSImJkJ1ZmZlci5pc0J1ZmZlcihlKSlyZXR1cm4gZTtpZih0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIGUuZGF0YT09InN0cmluZyImJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCByPWUuZGF0YS5zbGljZSg3KTtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IGk9QnVmZmVyLmZyb20ociwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGkuYnVmZmVyLGkuYnl0ZU9mZnNldCxpLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IocikpLm1hcChpPT5pLmNoYXJDb2RlQXQoMCkpKX1pZihlLnR5cGU9PT0iQnVmZmVyIiYmQXJyYXkuaXNBcnJheShlLmRhdGEpKXJldHVybiBuZXcgVWludDhBcnJheShlLmRhdGEpO2xldCB0PU9iamVjdC5rZXlzKGUpO2lmKHQubGVuZ3RoPjAmJnQuZXZlcnkocj0+L15cZCskLy50ZXN0KHIpKSl7bGV0IHI9bmV3IEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IGkgb2YgdClyW051bWJlcihpKV09ZVtpXTtpZihyLmV2ZXJ5KGk9PnR5cGVvZiBpPT0ibnVtYmVyIikpcmV0dXJuIG5ldyBVaW50OEFycmF5KHIpfX1yZXR1cm4gZX1hc3luYyB3b3JrT25RdWV1ZSgpe2lmKHRoaXMud29ya2luZ0RlZmVycmVkKXJldHVybiB0aGlzLndvcmtpbmdEZWZlcnJlZC5wcm9taXNlO2lmKHRoaXMud29ya2luZ0RlZmVycmVkPWN0LmRlZmVyKCksdGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtsZXQgZT0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSx0PSExLHI9ITEsaT1zKGFzeW5jKCk9PntsZXQgbz1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpNMC51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT57Y29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITF9KTtvJiZvLnJlc3BvbnNlJiYocj1vLnJlc3BvbnNlLmJhY2twcmVzc3VyZSx0PW8ucmVzcG9uc2UubmV4dCl9LCJnZXRGZWVkYmFjayIpO2Zvcihhd2FpdCBpKCk7dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjB8fHQ7KXtpZihyKWZvcig7cjspY29uc29sZS5sb2coIndhaXRpbmcgZm9yIGZlZWRiYWNrIGJlY2F1c2Ugb2YgYmFja3ByZXNzdXJlLi4uIiksYXdhaXQgVXQuZGVsYXlGb3IoNTApLGF3YWl0IGkoKTtsZXQgbzt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCYmKG89dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCkpO2xldCBuO249YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6TTAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOm8/ImNodW5rIjoicmVhZCIsYmFja3ByZXNzdXJlOmUsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCwuLi5vP3tjaHVua0RhdGE6b306e319LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+KGNvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExLG51bGwpKSxuJiZuLnJlc3BvbnNlJiZuLnJlc3BvbnNlLmNodW5rRGF0YSYmdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2goYS5yZWNvbnN0aXR1dGVCaW5hcnlEYXRhKG4ucmVzcG9uc2UuY2h1bmtEYXRhKSkscj1uJiZuLnJlc3BvbnNlJiZuLnJlc3BvbnNlLmJhY2twcmVzc3VyZSxlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLHQ9biYmbi5yZXNwb25zZSYmbi5yZXNwb25zZS5uZXh0fX10aGlzLndvcmtpbmdEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy53b3JraW5nRGVmZXJyZWQ9bnVsbH1hc3luYyBoYW5kbGVTdHJlYW1UcihlKXtpZihlLnJlcXVlc3Qua2VlcEFsaXZlPT09ITAmJnRoaXMua2VlcEFsaXZlPT09ITA/dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKTplLnJlcXVlc3Qua2VlcEFsaXZlPT09ITEmJih0aGlzLmtlZXBBbGl2ZT0hMSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImtlZXBBbGl2ZSImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmUsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iZmVlZGJhY2siJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJjaHVuayIpe2lmKHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGEucmVjb25zdGl0dXRlQmluYXJ5RGF0YShlLnJlcXVlc3QuY2h1bmtEYXRhKSksdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJmUucmVzcG9uc2UuYmFja3ByZXNzdXJlPT09ITEpe2xldCB0PXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpO2UucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJjaHVuayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MSxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksY2h1bmtEYXRhOnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfX1lbHNlIGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9O2UucmVxdWVzdD1udWxsfXJldHVybiBlfWFzeW5jIGNsZWFudXAoKXt0aGlzLnR5cGVkcm91dGVyJiZ0aGlzLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5yZW1vdmUodGhpcyl9YXN5bmMgc3RhcnRLZWVwQWxpdmVMb29wKCl7aWYodGhpcy5zaWRlPT09InJlc3BvbmRpbmciKXJldHVybjthd2FpdCBVdC5kZWxheUZvcigwKSxjb25zb2xlLmxvZyhgc3RhcnRpbmcga2VlcGFsaXZlIGxvb3Agb24gc2lkZSAke3RoaXMuc2lkZX1gKTtsZXQgZT0wO2Zvcig7dGhpcy5rZWVwQWxpdmU7KWF3YWl0IHRoaXMudHJpZ2dlcktlZXBBbGl2ZSgpLGF3YWl0IFV0LmRlbGF5Rm9yKDFlMyk7YXdhaXQgVXQuZGVsYXlGb3IoMWUzKSxhd2FpdCB0aGlzLmNsZWFudXAoKSxjb25zb2xlLmxvZyhgY2xlYW5lZCB1cCBmb3Igc3RyZWFtICR7dGhpcy5zdHJlYW1JZH1gKX1hc3luYyB0cmlnZ2VyS2VlcEFsaXZlKCl7aWYodGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtjb25zb2xlLmxvZygia2VlcGFsaXZlIHNlbnQuIik7bGV0IGU9YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6TTAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT57dGhpcy5rZWVwQWxpdmU9ITF9KTtlJiZlLnJlc3BvbnNlJiZlLnJlc3BvbnNlLmtlZXBBbGl2ZT09PSExP3RoaXMua2VlcEFsaXZlPSExOnRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCksZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5uZXh0JiZ0aGlzLndvcmtPblF1ZXVlKCl9RGF0ZS5ub3coKS10aGlzLmxhc3RLZWVwQWxpdmVFdmVudD4xZTQmJihjb25zb2xlLmxvZyhgY2xvc2luZyBzdHJlYW0gZm9yICR7dGhpcy5zdHJlYW1JZH1gKSx0aGlzLmtlZXBBbGl2ZT0hMSl9YXN5bmMgc2VuZERhdGEoZSl7dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnB1c2goZSksdGhpcy53b3JrT25RdWV1ZSgpLGF3YWl0IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9yU3BhY2UoKX1hc3luYyBmZXRjaERhdGEoKXtyZXR1cm4gdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5Lmhhc1NwYWNlLGF3YWl0IHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9ySXRlbXMoKSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX1hc3luYyByZWFkRnJvbVdlYnN0cmVhbShlLHQ9ITApe2xldCByPWUuZ2V0UmVhZGVyKCksaT0hMTtmb3IoOyFpOyl7bGV0e3ZhbHVlOm8sZG9uZTpufT1hd2FpdCByLnJlYWQoKTtvJiZhd2FpdCB0aGlzLnNlbmREYXRhKG8pLGk9bn10JiZhd2FpdCB0aGlzLmNsb3NlKCEwKX1hc3luYyB3cml0ZVRvV2Vic3RyZWFtKGUpe2xldCB0PWUuZ2V0V3JpdGVyKCk7Zm9yKDt0aGlzLmtlZXBBbGl2ZXx8dGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrSGFzSXRlbXMoKTspe2xldCByPWF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7aWYocj09PUIwdCl7dC5yZWxlYXNlTG9jaygpLGF3YWl0IGUuY2xvc2UoKTticmVha31hd2FpdCB0LndyaXRlKHIpfX1hc3luYyBjbG9zZShlPSExKXtlJiZ0aGlzLnNlbmREYXRhKEIwdCksdGhpcy5rZWVwQWxpdmU9ITF9fX0pO3ZhciB4Y2UseWNlPWYoKCk9PntVOSgpO2swKCk7eGNlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlR5cGVkVGFyZ2V0Iil9Y29uc3RydWN0b3IoZSl7aWYoZS5wb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyJiYhZS50eXBlZFJvdXRlclJlZil0aHJvdyBuZXcgRXJyb3IoInlvdSBoYXZlIHRvIHNwZWNpZnkgYSB0eXBlZHJvdXRlciB3aGVuIHVzaW5nIHBvc3RtZXRob2Qgd2l0aCB0eXBlZHJvdXRlciIpO3RoaXMub3B0aW9ucz1lfWFzeW5jIHBvc3QoZSl7bGV0IHQ7dGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmJiYodD1hd2FpdCB0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYuZmlyZUV2ZW50SW50ZXJlc3RNYXAuYWRkSW50ZXJlc3QoZS5jb3JyZWxhdGlvbi5pZCxlKSk7bGV0IGk9YXdhaXQodGhpcy5vcHRpb25zLnBvc3RNZXRob2R8fHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyKShlKSxvO3JldHVybiB0P289YXdhaXQgdC5pbnRlcmVzdEZ1bGxmaWxsZWQ6aT9vPWk6bz1lLG99fX0pO2Z1bmN0aW9uIEgwdChhLGUpe3RyeXtDMy5nbG9iYWxIb29rc1thXT8uKGUpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoYFR5cGVkUmVxdWVzdCBob29rIGVycm9yICgke2F9KTpgLHQpfX12YXIgd3ZhLFc5LHZjZT1mKCgpPT57azAoKTt5WCgpO1ZoKCk7VTkoKTt5Y2UoKTt3dmE9bmV3IHozLldlYnJlcXVlc3RDbGllbnQ7cyhIMHQsImNhbGxHbG9iYWxIb29rIik7Vzk9Y2xhc3N7c3RhdGlje3ModGhpcywiVHlwZWRSZXF1ZXN0Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgZT09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD1lOnRoaXMudHlwZWRUYXJnZXQ9ZSx0aGlzLm1ldGhvZD10fWFzeW5jIGZpcmUoZSx0PSExKXtsZXQgcj1EYXRlLm5vdygpLGk9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OmUscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6TTAudW5pKCkscGhhc2U6InJlcXVlc3QifX07aT11MS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhpLHtzZW5kTWV0aG9kOnMobj0+dGhpcy5wb3N0VHJPYmplY3QobiksInNlbmRNZXRob2QiKX0pLHRoaXMuc2tpcEhvb2tzfHxIMHQoIm9uT3V0Z29pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDppLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOnIscGF5bG9hZDplfSk7bGV0IG87cmV0dXJuIG89YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QoaSx0KSxvPXUxLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhvLHtzZW5kTWV0aG9kOnMobj0+dGhpcy5wb3N0VHJPYmplY3QobiksInNlbmRNZXRob2QiKX0pLHRoaXMuc2tpcEhvb2tzfHxIMHQoIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6aS5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcixwYXlsb2FkOm8/LnJlc3BvbnNlLGVycm9yOm8/LmVycm9yPy50ZXh0fSksby5yZXNwb25zZX1hc3luYyBwb3N0VHJPYmplY3QoZSx0PSExKXtsZXQgcjtpZih0aGlzLnVybEVuZFBvaW50P3I9YXdhaXQgd3ZhLnBvc3RKc29uKHRoaXMudXJsRW5kUG9pbnQsZSx0P3tjYWNoZVN0cmF0ZWd5OiJjYWNoZS1maXJzdCJ9Ont9KTpyPWF3YWl0IHRoaXMudHlwZWRUYXJnZXQucG9zdChlKSxyLmVycm9yKXtpZihjb25zb2xlLmVycm9yKGBtZXRob2Q6ID4+JHt0aGlzLm1ldGhvZH08PCBnb3QgYW4gRVJST1I6ICIke3IuZXJyb3IudGV4dH0iIHdpdGggZGF0YSAke0pTT04uc3RyaW5naWZ5KHIuZXJyb3IuZGF0YSxudWxsLDIpfWApLCFyLnJldHJ5KXRocm93IG5ldyBkMShyLmVycm9yLnRleHQsci5lcnJvci5kYXRhKTtyZXR1cm4gbnVsbH1yZXR1cm4gci5yZXRyeSYmKGNvbnNvbGUubG9nKGBzZXJ2ZXIgcmVxdWVzdGVkIHJldHJ5IGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbjogJHtyLnJldHJ5LnJlYXNvbn1gKSxhd2FpdCBVdC5kZWxheUZvcihyLnJldHJ5LndhaXRGb3JNcykscj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChlLHQpKSxyfX19KTt2YXIgR3I9e307bHQoR3Ise1R5cGVkSGFuZGxlcjooKT0+Z2NlLFR5cGVkUmVxdWVzdDooKT0+VzksVHlwZWRSZXNwb25zZUVycm9yOigpPT5kMSxUeXBlZFJvdXRlcjooKT0+QzMsVHlwZWRUYXJnZXQ6KCk9PnhjZSxWaXJ0dWFsU3RyZWFtOigpPT51MX0pO3ZhciBHOT1mKCgpPT57dmNlKCk7YmNlKCk7VTkoKTtWaCgpO3ljZSgpO3lYKCl9KTtmdW5jdGlvbiBxMHQoYSl7cmV0dXJuIGEmJnR5cGVvZiBhLnRoZW49PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gQzIoYSxlKXtyZXR1cm4gYXx8KGE9MCksbmV3IFByb21pc2UoZnVuY3Rpb24odCl7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdChlKX0sYSl9KX1mdW5jdGlvbiBVMHQoYSxlKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihlLWErMSkrYSl9ZnVuY3Rpb24gVGwoKXtyZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpfWZ1bmN0aW9uIExsKCl7dmFyIGE9RGF0ZS5ub3coKSoxZTM7cmV0dXJuIGE8PXdjZSYmKGE9d2NlKzEpLHdjZT1hLGF9ZnVuY3Rpb24gVzB0KCl7cmV0dXJuIHR5cGVvZiBuYXZpZ2F0b3I8InUiJiZ0eXBlb2YgbmF2aWdhdG9yLmxvY2tzPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0PT0iZnVuY3Rpb24ifXZhciBWMHQsajB0LEdvLHdjZSxTMD1mKCgpPT57cyhxMHQsImlzUHJvbWlzZSIpO1YwdD1Qcm9taXNlLnJlc29sdmUoITEpLGowdD1Qcm9taXNlLnJlc29sdmUoITApLEdvPVByb21pc2UucmVzb2x2ZSgpO3MoQzIsInNsZWVwIik7cyhVMHQsInJhbmRvbUludCIpO3MoVGwsInJhbmRvbVRva2VuIik7d2NlPTA7cyhMbCwibWljcm9TZWNvbmRzIik7cyhXMHQsInN1cHBvcnRzV2ViTG9ja0FQSSIpfSk7ZnVuY3Rpb24gU3ZhKGEpe3ZhciBlPXt0aW1lOkxsKCksbWVzc2FnZXNDYWxsYmFjazpudWxsLGJjOm5ldyBCcm9hZGNhc3RDaGFubmVsKGEpLHN1YkZuczpbXX07cmV0dXJuIGUuYmMub25tZXNzYWdlPWZ1bmN0aW9uKHQpe2UubWVzc2FnZXNDYWxsYmFjayYmZS5tZXNzYWdlc0NhbGxiYWNrKHQuZGF0YSl9LGV9ZnVuY3Rpb24genZhKGEpe2EuYmMuY2xvc2UoKSxhLnN1YkZucz1bXX1mdW5jdGlvbiBDdmEoYSxlKXt0cnl7cmV0dXJuIGEuYmMucG9zdE1lc3NhZ2UoZSwhMSksR299Y2F0Y2godCl7cmV0dXJuIFByb21pc2UucmVqZWN0KHQpfX1mdW5jdGlvbiBfdmEoYSxlKXthLm1lc3NhZ2VzQ2FsbGJhY2s9ZX1mdW5jdGlvbiBUdmEoKXtpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuRGVubyYmZ2xvYmFsVGhpcy5EZW5vLmFyZ3MpcmV0dXJuITA7aWYoKHR5cGVvZiB3aW5kb3c8InUifHx0eXBlb2Ygc2VsZjwidSIpJiZ0eXBlb2YgQnJvYWRjYXN0Q2hhbm5lbD09ImZ1bmN0aW9uIil7aWYoQnJvYWRjYXN0Q2hhbm5lbC5fcHVia2V5KXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogRG8gbm90IG92ZXJ3cml0ZSB3aW5kb3cuQnJvYWRjYXN0Q2hhbm5lbCB3aXRoIHRoaXMgbW9kdWxlLCB0aGlzIGlzIG5vdCBhIHBvbHlmaWxsIik7cmV0dXJuITB9ZWxzZSByZXR1cm4hMX1mdW5jdGlvbiBMdmEoKXtyZXR1cm4gMTUwfXZhciBNdmEsa3ZhLEcwdCxZMHQ9ZigoKT0+e1MwKCk7TXZhPUxsLGt2YT0ibmF0aXZlIjtzKFN2YSwiY3JlYXRlIik7cyh6dmEsImNsb3NlIik7cyhDdmEsInBvc3RNZXNzYWdlIik7cyhfdmEsIm9uTWVzc2FnZSIpO3MoVHZhLCJjYW5CZVVzZWQiKTtzKEx2YSwiYXZlcmFnZVJlc3BvbnNlVGltZSIpO0cwdD17Y3JlYXRlOlN2YSxjbG9zZTp6dmEsb25NZXNzYWdlOl92YSxwb3N0TWVzc2FnZTpDdmEsY2FuQmVVc2VkOlR2YSx0eXBlOmt2YSxhdmVyYWdlUmVzcG9uc2VUaW1lOkx2YSxtaWNyb1NlY29uZHM6TXZhfX0pO2Z1bmN0aW9uICR2YShhKXtsZXQgZT1NY2UoKS1hLnR0bCx0PWEubWFwW1N5bWJvbC5pdGVyYXRvcl0oKTtmb3IoOzspe2xldCByPXQubmV4dCgpLnZhbHVlO2lmKCFyKWJyZWFrO2xldCBpPXJbMF07aWYoclsxXTxlKWEubWFwLmRlbGV0ZShpKTtlbHNlIGJyZWFrfX1mdW5jdGlvbiBNY2UoKXtyZXR1cm4gRGF0ZS5ub3coKX12YXIgamgsa2NlPWYoKCk9PntqaD1jbGFzc3tzdGF0aWN7cyh0aGlzLCJPYmxpdmlvdXNTZXQiKX10dGw7bWFwPW5ldyBNYXA7X3RvPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMudHRsPWV9aGFzKGUpe2xldCB0PXRoaXMubWFwLmdldChlKTtyZXR1cm4gdHlwZW9mIHQ+InUiPyExOnQ8TWNlKCktdGhpcy50dGw/KHRoaXMubWFwLmRlbGV0ZShlKSwhMSk6ITB9YWRkKGUpe3RoaXMubWFwLmRlbGV0ZShlKSx0aGlzLm1hcC5zZXQoZSxNY2UoKSksdGhpcy5fdG98fCh0aGlzLl90bz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5fdG89ITEsJHZhKHRoaXMpfSwwKSl9Y2xlYXIoKXt0aGlzLm1hcC5jbGVhcigpfX07cygkdmEsInJlbW92ZVRvb09sZFZhbHVlcyIpO3MoTWNlLCJub3ciKX0pO2Z1bmN0aW9uIF8zKCl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LGU9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhKSk7cmV0dXJuIHR5cGVvZiBlLndlYldvcmtlclN1cHBvcnQ+InUiJiYoZS53ZWJXb3JrZXJTdXBwb3J0PSEwKSxlLmlkYnx8KGUuaWRiPXt9KSxlLmlkYi50dGx8fChlLmlkYi50dGw9MWUzKjQ1KSxlLmlkYi5mYWxsYmFja0ludGVydmFsfHwoZS5pZGIuZmFsbGJhY2tJbnRlcnZhbD0xNTApLGEuaWRiJiZ0eXBlb2YgYS5pZGIub25jbG9zZT09ImZ1bmN0aW9uIiYmKGUuaWRiLm9uY2xvc2U9YS5pZGIub25jbG9zZSksZS5sb2NhbHN0b3JhZ2V8fChlLmxvY2Fsc3RvcmFnZT17fSksZS5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dHx8KGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQ9MWUzKjYwKSxhLm1ldGhvZHMmJihlLm1ldGhvZHM9YS5tZXRob2RzKSxlLm5vZGV8fChlLm5vZGU9e30pLGUubm9kZS50dGx8fChlLm5vZGUudHRsPTFlMyo2MCoyKSxlLm5vZGUubWF4UGFyYWxsZWxXcml0ZXN8fChlLm5vZGUubWF4UGFyYWxsZWxXcml0ZXM9MjA0OCksdHlwZW9mIGUubm9kZS51c2VGYXN0UGF0aD4idSImJihlLm5vZGUudXNlRmFzdFBhdGg9ITApLGV9dmFyIHdYPWYoKCk9PntzKF8zLCJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIpfSk7ZnVuY3Rpb24gSzB0KCl7aWYodHlwZW9mIGluZGV4ZWREQjwidSIpcmV0dXJuIGluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93PCJ1Iil7aWYodHlwZW9mIHdpbmRvdy5tb3pJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubW96SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cud2Via2l0SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93LndlYmtpdEluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93Lm1zSW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1zSW5kZXhlZERCfXJldHVybiExfWZ1bmN0aW9uIE1YKGEpe2EuY29tbWl0JiZhLmNvbW1pdCgpfWZ1bmN0aW9uIEV2YShhKXt2YXIgZT1LMHQoKSx0PUF2YSthLHI9ZS5vcGVuKHQpO3JldHVybiByLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihpKXt2YXIgbz1pLnRhcmdldC5yZXN1bHQ7by5jcmVhdGVPYmplY3RTdG9yZShwMSx7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KX0sbmV3IFByb21pc2UoZnVuY3Rpb24oaSxvKXtyLm9uZXJyb3I9ZnVuY3Rpb24obil7cmV0dXJuIG8obil9LHIub25zdWNjZXNzPWZ1bmN0aW9uKCl7aShyLnJlc3VsdCl9fSl9ZnVuY3Rpb24gSXZhKGEsZSx0KXt2YXIgcj1EYXRlLm5vdygpLGk9e3V1aWQ6ZSx0aW1lOnIsZGF0YTp0fSxvPWEudHJhbnNhY3Rpb24oW3AxXSwicmVhZHdyaXRlIixZOSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4sbCl7by5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKX0sby5vbmVycm9yPWZ1bmN0aW9uKGMpe3JldHVybiBsKGMpfTt2YXIgZD1vLm9iamVjdFN0b3JlKHAxKTtkLmFkZChpKSxNWChvKX0pfWZ1bmN0aW9uIE5EcihhKXt2YXIgZT1hLnRyYW5zYWN0aW9uKHAxLCJyZWFkb25seSIsWTkpLHQ9ZS5vYmplY3RTdG9yZShwMSkscj1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaSl7dC5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKG8pe3ZhciBuPW8udGFyZ2V0LnJlc3VsdDtuPyhyLnB1c2gobi52YWx1ZSksbi5jb250aW51ZSgpKTooTVgoZSksaShyKSl9fSl9ZnVuY3Rpb24gTnZhKGEsZSl7dmFyIHQ9YS50cmFuc2FjdGlvbihwMSwicmVhZG9ubHkiLFk5KSxyPXQub2JqZWN0U3RvcmUocDEpLGk9W10sbz1JREJLZXlSYW5nZS5ib3VuZChlKzEsMS8wKTtpZihyLmdldEFsbCl7dmFyIG49ci5nZXRBbGwobyk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsYyl7bi5vbmVycm9yPWZ1bmN0aW9uKHApe3JldHVybiBjKHApfSxuLm9uc3VjY2Vzcz1mdW5jdGlvbihwKXtkKHAudGFyZ2V0LnJlc3VsdCl9fSl9ZnVuY3Rpb24gbCgpe3RyeXtyZXR1cm4gbz1JREJLZXlSYW5nZS5ib3VuZChlKzEsMS8wKSxyLm9wZW5DdXJzb3Iobyl9Y2F0Y2h7cmV0dXJuIHIub3BlbkN1cnNvcigpfX1yZXR1cm4gcyhsLCJvcGVuQ3Vyc29yIiksbmV3IFByb21pc2UoZnVuY3Rpb24oZCxjKXt2YXIgcD1sKCk7cC5vbmVycm9yPWZ1bmN0aW9uKHUpe3JldHVybiBjKHUpfSxwLm9uc3VjY2Vzcz1mdW5jdGlvbih1KXt2YXIgbT11LnRhcmdldC5yZXN1bHQ7bT9tLnZhbHVlLmlkPGUrMT9tLmNvbnRpbnVlKGUrMSk6KGkucHVzaChtLnZhbHVlKSxtLmNvbnRpbnVlKCkpOihNWCh0KSxkKGkpKX19KX1mdW5jdGlvbiBSdmEoYSxlKXtpZihhLmNsb3NlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgdD1hLmRiLnRyYW5zYWN0aW9uKHAxLCJyZWFkd3JpdGUiLFk5KSxyPXQub2JqZWN0U3RvcmUocDEpO3JldHVybiBQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihpKXt2YXIgbz1yLmRlbGV0ZShpKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obil7by5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbigpfX0pfSkpfWZ1bmN0aW9uIE92YShhLGUpe3ZhciB0PURhdGUubm93KCktZSxyPWEudHJhbnNhY3Rpb24ocDEsInJlYWRvbmx5IixZOSksaT1yLm9iamVjdFN0b3JlKHAxKSxvPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuKXtpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24obCl7dmFyIGQ9bC50YXJnZXQucmVzdWx0O2lmKGQpe3ZhciBjPWQudmFsdWU7Yy50aW1lPHQ/KG8ucHVzaChjKSxkLmNvbnRpbnVlKCkpOihNWChyKSxuKG8pKX1lbHNlIG4obyl9fSl9ZnVuY3Rpb24gRnZhKGEpe3JldHVybiBPdmEoYS5kYixhLm9wdGlvbnMuaWRiLnR0bCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gUnZhKGEsZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSl9KX1mdW5jdGlvbiBCdmEoYSxlKXtyZXR1cm4gZT1fMyhlKSxFdmEoYSkudGhlbihmdW5jdGlvbih0KXt2YXIgcj17Y2xvc2VkOiExLGxhc3RDdXJzb3JJZDowLGNoYW5uZWxOYW1lOmEsb3B0aW9uczplLHV1aWQ6VGwoKSxlTUlzOm5ldyBqaChlLmlkYi50dGwqMiksd3JpdGVCbG9ja1Byb21pc2U6R28sbWVzc2FnZXNDYWxsYmFjazpudWxsLHJlYWRRdWV1ZVByb21pc2VzOltdLGRiOnR9O3JldHVybiB0Lm9uY2xvc2U9ZnVuY3Rpb24oKXtyLmNsb3NlZD0hMCxlLmlkYi5vbmNsb3NlJiZlLmlkYi5vbmNsb3NlKCl9LFowdChyKSxyfSl9ZnVuY3Rpb24gWjB0KGEpe2EuY2xvc2VkfHxYMHQoYSkudGhlbihmdW5jdGlvbigpe3JldHVybiBDMihhLm9wdGlvbnMuaWRiLmZhbGxiYWNrSW50ZXJ2YWwpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBaMHQoYSl9KX1mdW5jdGlvbiBIdmEoYSxlKXtyZXR1cm4hKGEudXVpZD09PWUudXVpZHx8ZS5lTUlzLmhhcyhhLmlkKXx8YS5kYXRhLnRpbWU8ZS5tZXNzYWdlc0NhbGxiYWNrVGltZSl9ZnVuY3Rpb24gWDB0KGEpe3JldHVybiBhLmNsb3NlZD9HbzphLm1lc3NhZ2VzQ2FsbGJhY2s/TnZhKGEuZGIsYS5sYXN0Q3Vyc29ySWQpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZS5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuISFyfSkubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmlkPmEubGFzdEN1cnNvcklkJiYoYS5sYXN0Q3Vyc29ySWQ9ci5pZCkscn0pLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gSHZhKHIsYSl9KS5zb3J0KGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHIudGltZS1pLnRpbWV9KTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHIpe2EubWVzc2FnZXNDYWxsYmFjayYmKGEuZU1Jcy5hZGQoci5pZCksYS5tZXNzYWdlc0NhbGxiYWNrKHIuZGF0YSkpfSksR299KTpHb31mdW5jdGlvbiBxdmEoYSl7YS5jbG9zZWQ9ITAsYS5kYi5jbG9zZSgpfWZ1bmN0aW9uIFZ2YShhLGUpe3JldHVybiBhLndyaXRlQmxvY2tQcm9taXNlPWEud3JpdGVCbG9ja1Byb21pc2UudGhlbihmdW5jdGlvbigpe3JldHVybiBJdmEoYS5kYixhLnV1aWQsZSl9KS50aGVuKGZ1bmN0aW9uKCl7VTB0KDAsMTApPT09MCYmRnZhKGEpfSksYS53cml0ZUJsb2NrUHJvbWlzZX1mdW5jdGlvbiBqdmEoYSxlLHQpe2EubWVzc2FnZXNDYWxsYmFja1RpbWU9dCxhLm1lc3NhZ2VzQ2FsbGJhY2s9ZSxYMHQoYSl9ZnVuY3Rpb24gVXZhKCl7cmV0dXJuISFLMHQoKX1mdW5jdGlvbiBXdmEoYSl7cmV0dXJuIGEuaWRiLmZhbGxiYWNrSW50ZXJ2YWwqMn12YXIgRHZhLEF2YSxwMSxZOSxQdmEsUTB0LEowdD1mKCgpPT57UzAoKTtrY2UoKTt3WCgpO0R2YT1MbCxBdmE9InB1YmtleS5icm9hZGNhc3QtY2hhbm5lbC0wLSIscDE9Im1lc3NhZ2VzIixZOT17ZHVyYWJpbGl0eToicmVsYXhlZCJ9LFB2YT0iaWRiIjtzKEswdCwiZ2V0SWRiIik7cyhNWCwiY29tbWl0SW5kZXhlZERCVHJhbnNhY3Rpb24iKTtzKEV2YSwiY3JlYXRlRGF0YWJhc2UiKTtzKEl2YSwid3JpdGVNZXNzYWdlIik7cyhORHIsImdldEFsbE1lc3NhZ2VzIik7cyhOdmEsImdldE1lc3NhZ2VzSGlnaGVyVGhhbiIpO3MoUnZhLCJyZW1vdmVNZXNzYWdlc0J5SWQiKTtzKE92YSwiZ2V0T2xkTWVzc2FnZXMiKTtzKEZ2YSwiY2xlYW5PbGRNZXNzYWdlcyIpO3MoQnZhLCJjcmVhdGUiKTtzKFowdCwiX3JlYWRMb29wIik7cyhIdmEsIl9maWx0ZXJNZXNzYWdlIik7cyhYMHQsInJlYWROZXdNZXNzYWdlcyIpO3MocXZhLCJjbG9zZSIpO3MoVnZhLCJwb3N0TWVzc2FnZSIpO3MoanZhLCJvbk1lc3NhZ2UiKTtzKFV2YSwiY2FuQmVVc2VkIik7cyhXdmEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtRMHQ9e2NyZWF0ZTpCdmEsY2xvc2U6cXZhLG9uTWVzc2FnZTpqdmEscG9zdE1lc3NhZ2U6VnZhLGNhbkJlVXNlZDpVdmEsdHlwZTpQdmEsYXZlcmFnZVJlc3BvbnNlVGltZTpXdmEsbWljcm9TZWNvbmRzOkR2YX19KTtmdW5jdGlvbiBlNHQoKXt2YXIgYTtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7YT13aW5kb3cubG9jYWxTdG9yYWdlLGE9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiBhfWZ1bmN0aW9uIHQ0dChhKXtyZXR1cm4gWXZhK2F9ZnVuY3Rpb24gWnZhKGEsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe0MyKCkudGhlbihmdW5jdGlvbigpe3ZhciByPXQ0dChhLmNoYW5uZWxOYW1lKSxpPXt0b2tlbjpUbCgpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDphLnV1aWR9LG89SlNPTi5zdHJpbmdpZnkoaSk7ZTR0KCkuc2V0SXRlbShyLG8pO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO24uaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCksbi5rZXk9cixuLm5ld1ZhbHVlPW8sd2luZG93LmRpc3BhdGNoRXZlbnQobiksdCgpfSl9KX1mdW5jdGlvbiBYdmEoYSxlKXt2YXIgdD10NHQoYSkscj1zKGZ1bmN0aW9uKG8pe28ua2V5PT09dCYmZShKU09OLnBhcnNlKG8ubmV3VmFsdWUpKX0sImxpc3RlbmVyIik7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIixyKSxyfWZ1bmN0aW9uIFF2YShhKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsYSl9ZnVuY3Rpb24gSnZhKGEsZSl7aWYoZT1fMyhlKSwhYTR0KCkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBsb2NhbHN0b3JhZ2UgY2Fubm90IGJlIHVzZWQiKTt2YXIgdD1UbCgpLHI9bmV3IGpoKGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQpLGk9e2NoYW5uZWxOYW1lOmEsdXVpZDp0LGVNSXM6cn07cmV0dXJuIGkubGlzdGVuZXI9WHZhKGEsZnVuY3Rpb24obyl7aS5tZXNzYWdlc0NhbGxiYWNrJiZvLnV1aWQhPT10JiYoIW8udG9rZW58fHIuaGFzKG8udG9rZW4pfHxvLmRhdGEudGltZSYmby5kYXRhLnRpbWU8aS5tZXNzYWdlc0NhbGxiYWNrVGltZXx8KHIuYWRkKG8udG9rZW4pLGkubWVzc2FnZXNDYWxsYmFjayhvLmRhdGEpKSl9KSxpfWZ1bmN0aW9uIGV4YShhKXtRdmEoYS5saXN0ZW5lcil9ZnVuY3Rpb24gdHhhKGEsZSx0KXthLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXQsYS5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gYTR0KCl7dmFyIGE9ZTR0KCk7aWYoIWEpcmV0dXJuITE7dHJ5e3ZhciBlPSJfX2Jyb2FkY2FzdGNoYW5uZWxfY2hlY2siO2Euc2V0SXRlbShlLCJ3b3JrcyIpLGEucmVtb3ZlSXRlbShlKX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBheGEoKXt2YXIgYT0xMjAsZT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUuaW5jbHVkZXMoInNhZmFyaSIpJiYhZS5pbmNsdWRlcygiY2hyb21lIik/YSoyOmF9dmFyIEd2YSxZdmEsS3ZhLHI0dCxzNHQ9ZigoKT0+e2tjZSgpO3dYKCk7UzAoKTtHdmE9TGwsWXZhPSJwdWJrZXkuYnJvYWRjYXN0Q2hhbm5lbC0iLEt2YT0ibG9jYWxzdG9yYWdlIjtzKGU0dCwiZ2V0TG9jYWxTdG9yYWdlIik7cyh0NHQsInN0b3JhZ2VLZXkiKTtzKFp2YSwicG9zdE1lc3NhZ2UiKTtzKFh2YSwiYWRkU3RvcmFnZUV2ZW50TGlzdGVuZXIiKTtzKFF2YSwicmVtb3ZlU3RvcmFnZUV2ZW50TGlzdGVuZXIiKTtzKEp2YSwiY3JlYXRlIik7cyhleGEsImNsb3NlIik7cyh0eGEsIm9uTWVzc2FnZSIpO3MoYTR0LCJjYW5CZVVzZWQiKTtzKGF4YSwiYXZlcmFnZVJlc3BvbnNlVGltZSIpO3I0dD17Y3JlYXRlOkp2YSxjbG9zZTpleGEsb25NZXNzYWdlOnR4YSxwb3N0TWVzc2FnZTpadmEsY2FuQmVVc2VkOmE0dCx0eXBlOkt2YSxhdmVyYWdlUmVzcG9uc2VUaW1lOmF4YSxtaWNyb1NlY29uZHM6R3ZhfX0pO2Z1bmN0aW9uIHN4YShhKXt2YXIgZT17dGltZTppNHQoKSxuYW1lOmEsbWVzc2FnZXNDYWxsYmFjazpudWxsfTtyZXR1cm4gU2NlLmFkZChlKSxlfWZ1bmN0aW9uIGl4YShhKXtTY2UuZGVsZXRlKGEpfWZ1bmN0aW9uIG94YShhLGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0KXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciByPUFycmF5LmZyb20oU2NlKTtyLmZvckVhY2goZnVuY3Rpb24oaSl7aS5uYW1lPT09YS5uYW1lJiZpIT09YSYmaS5tZXNzYWdlc0NhbGxiYWNrJiZpLnRpbWU8ZS50aW1lJiZpLm1lc3NhZ2VzQ2FsbGJhY2soZSl9KSx0KCl9LG80dCl9KX1mdW5jdGlvbiBueGEoYSxlKXthLm1lc3NhZ2VzQ2FsbGJhY2s9ZX1mdW5jdGlvbiBseGEoKXtyZXR1cm4hMH1mdW5jdGlvbiBjeGEoKXtyZXR1cm4gbzR0fXZhciBpNHQscnhhLFNjZSxvNHQsbjR0LGw0dD1mKCgpPT57UzAoKTtpNHQ9TGwscnhhPSJzaW11bGF0ZSIsU2NlPW5ldyBTZXQ7cyhzeGEsImNyZWF0ZSIpO3MoaXhhLCJjbG9zZSIpO280dD01O3Mob3hhLCJwb3N0TWVzc2FnZSIpO3MobnhhLCJvbk1lc3NhZ2UiKTtzKGx4YSwiY2FuQmVVc2VkIik7cyhjeGEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtuNHQ9e2NyZWF0ZTpzeGEsY2xvc2U6aXhhLG9uTWVzc2FnZTpueGEscG9zdE1lc3NhZ2U6b3hhLGNhbkJlVXNlZDpseGEsdHlwZTpyeGEsYXZlcmFnZVJlc3BvbnNlVGltZTpjeGEsbWljcm9TZWNvbmRzOmk0dH19KTtmdW5jdGlvbiB6Y2UoYSl7dmFyIGU9W10uY29uY2F0KGEubWV0aG9kcyxjNHQpLmZpbHRlcihCb29sZWFuKTtpZihhLnR5cGUpe2lmKGEudHlwZT09PSJzaW11bGF0ZSIpcmV0dXJuIG40dDt2YXIgdD1lLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkudHlwZT09PWEudHlwZX0pO2lmKHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJtZXRob2QtdHlwZSAiK2EudHlwZSsiIG5vdCBmb3VuZCIpfWEud2ViV29ya2VyU3VwcG9ydHx8KGU9ZS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkudHlwZSE9PSJpZGIifSkpO3ZhciByPWUuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5jYW5CZVVzZWQoKX0pO2lmKHIpcmV0dXJuIHI7dGhyb3cgbmV3IEVycm9yKCJObyB1c2FibGUgbWV0aG9kIGZvdW5kIGluICIrSlNPTi5zdHJpbmdpZnkoYzR0Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS50eXBlfSkpKX12YXIgYzR0LGQ0dD1mKCgpPT57WTB0KCk7SjB0KCk7czR0KCk7bDR0KCk7YzR0PVtHMHQsUTB0LHI0dF07cyh6Y2UsImNob29zZU1ldGhvZCIpfSk7ZnVuY3Rpb24gdXhhKGEpe2E9XzMoYSk7dmFyIGU9emNlKGEpO3JldHVybiBlLnR5cGU9PT0ibm9kZSI/ZS5jbGVhck5vZGVGb2xkZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KTpWMHR9ZnVuY3Rpb24gcHhhKGEpe0NjZT1hfWZ1bmN0aW9uIHU0dChhLGUsdCl7dmFyIHI9YS5tZXRob2QubWljcm9TZWNvbmRzKCksaT17dGltZTpyLHR5cGU6ZSxkYXRhOnR9LG89YS5fcHJlcFA/YS5fcHJlcFA6R287cmV0dXJuIG8udGhlbihmdW5jdGlvbigpe3ZhciBuPWEubWV0aG9kLnBvc3RNZXNzYWdlKGEuX3N0YXRlLGkpO3JldHVybiBhLl91TVAuYWRkKG4pLG4uY2F0Y2goKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuX3VNUC5kZWxldGUobil9KSxufSl9ZnVuY3Rpb24gZnhhKGEpe3ZhciBlPWEubWV0aG9kLmNyZWF0ZShhLm5hbWUsYS5vcHRpb25zKTtxMHQoZSk/KGEuX3ByZXBQPWUsZS50aGVuKGZ1bmN0aW9uKHQpe2EuX3N0YXRlPXR9KSk6YS5fc3RhdGU9ZX1mdW5jdGlvbiBwNHQoYSl7cmV0dXJuIGEuX2FkZEVMLm1lc3NhZ2UubGVuZ3RoPjB8fGEuX2FkZEVMLmludGVybmFsLmxlbmd0aD4wfWZ1bmN0aW9uIGY0dChhLGUsdCl7YS5fYWRkRUxbZV0ucHVzaCh0KSxoeGEoYSl9ZnVuY3Rpb24gaDR0KGEsZSx0KXthLl9hZGRFTFtlXT1hLl9hZGRFTFtlXS5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIHIhPT10fSksbXhhKGEpfWZ1bmN0aW9uIGh4YShhKXtpZighYS5faUwmJnA0dChhKSl7dmFyIGU9cyhmdW5jdGlvbihpKXthLl9hZGRFTFtpLnR5cGVdLmZvckVhY2goZnVuY3Rpb24obyl7aS50aW1lPj1vLnRpbWUmJm8uZm4oaS5kYXRhKX0pfSwibGlzdGVuZXJGbiIpLHQ9YS5tZXRob2QubWljcm9TZWNvbmRzKCk7YS5fcHJlcFA/YS5fcHJlcFAudGhlbihmdW5jdGlvbigpe2EuX2lMPSEwLGEubWV0aG9kLm9uTWVzc2FnZShhLl9zdGF0ZSxlLHQpfSk6KGEuX2lMPSEwLGEubWV0aG9kLm9uTWVzc2FnZShhLl9zdGF0ZSxlLHQpKX19ZnVuY3Rpb24gbXhhKGEpe2lmKGEuX2lMJiYhcDR0KGEpKXthLl9pTD0hMTt2YXIgZT1hLm1ldGhvZC5taWNyb1NlY29uZHMoKTthLm1ldGhvZC5vbk1lc3NhZ2UoYS5fc3RhdGUsbnVsbCxlKX19dmFyIF9jZSxkeGEsVDMsQ2NlLG00dD1mKCgpPT57UzAoKTtkNHQoKTt3WCgpO19jZT1uZXcgU2V0LGR4YT0wLFQzPXMoZnVuY3Rpb24oZSx0KXt0aGlzLmlkPWR4YSsrLF9jZS5hZGQodGhpcyksdGhpcy5uYW1lPWUsQ2NlJiYodD1DY2UpLHRoaXMub3B0aW9ucz1fMyh0KSx0aGlzLm1ldGhvZD16Y2UodGhpcy5vcHRpb25zKSx0aGlzLl9pTD0hMSx0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUw9e21lc3NhZ2U6W10saW50ZXJuYWw6W119LHRoaXMuX3VNUD1uZXcgU2V0LHRoaXMuX2JlZkM9W10sdGhpcy5fcHJlcFA9bnVsbCxmeGEodGhpcyl9LCJCcm9hZGNhc3RDaGFubmVsIik7VDMuX3B1YmtleT0hMDtzKHV4YSwiY2xlYXJOb2RlRm9sZGVyIik7cyhweGEsImVuZm9yY2VPcHRpb25zIiksVDMucHJvdG90eXBlPXtwb3N0TWVzc2FnZTpzKGZ1bmN0aW9uKGUpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSgpOiBDYW5ub3QgcG9zdCBtZXNzYWdlIGFmdGVyIGNoYW5uZWwgaGFzIGNsb3NlZCAiK0pTT04uc3RyaW5naWZ5KGUpKTtyZXR1cm4gdTR0KHRoaXMsIm1lc3NhZ2UiLGUpfSwicG9zdE1lc3NhZ2UiKSxwb3N0SW50ZXJuYWw6cyhmdW5jdGlvbihlKXtyZXR1cm4gdTR0KHRoaXMsImludGVybmFsIixlKX0sInBvc3RJbnRlcm5hbCIpLHNldCBvbm1lc3NhZ2UoYSl7dmFyIGU9dGhpcy5tZXRob2QubWljcm9TZWNvbmRzKCksdD17dGltZTplLGZuOmF9O2g0dCh0aGlzLCJtZXNzYWdlIix0aGlzLl9vbk1MKSxhJiZ0eXBlb2YgYT09ImZ1bmN0aW9uIj8odGhpcy5fb25NTD10LGY0dCh0aGlzLCJtZXNzYWdlIix0KSk6dGhpcy5fb25NTD1udWxsfSxhZGRFdmVudExpc3RlbmVyOnMoZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxpPXt0aW1lOnIsZm46dH07ZjR0KHRoaXMsZSxpKX0sImFkZEV2ZW50TGlzdGVuZXIiKSxyZW1vdmVFdmVudExpc3RlbmVyOnMoZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9hZGRFTFtlXS5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmZuPT09dH0pO2g0dCh0aGlzLGUscil9LCJyZW1vdmVFdmVudExpc3RlbmVyIiksY2xvc2U6cyhmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuY2xvc2VkKXtfY2UuZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciB0PXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOkdvO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSx0LnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShlLl91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5fYmVmQy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tZXRob2QuY2xvc2UoZS5fc3RhdGUpfSl9fSwiY2xvc2UiKSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fTtzKHU0dCwiX3Bvc3QiKTtzKGZ4YSwiX3ByZXBhcmVDaGFubmVsIik7cyhwNHQsIl9oYXNNZXNzYWdlTGlzdGVuZXJzIik7cyhmNHQsIl9hZGRMaXN0ZW5lck9iamVjdCIpO3MoaDR0LCJfcmVtb3ZlTGlzdGVuZXJPYmplY3QiKTtzKGh4YSwiX3N0YXJ0TGlzdGVuaW5nIik7cyhteGEsIl9zdG9wTGlzdGVuaW5nIil9KTtmdW5jdGlvbiBnNHQoYSl7aWYodHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPT0iZnVuY3Rpb24iJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUpe3ZhciBlPXNlbGYuY2xvc2UuYmluZChzZWxmKTtzZWxmLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxlKCl9fWVsc2V7aWYodHlwZW9mIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIT0iZnVuY3Rpb24iKXJldHVybjt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2EoKX0sITApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7YSgpfSwhMCl9fXZhciBiNHQ9ZigoKT0+e3MoZzR0LCJhZGRCcm93c2VyIil9KTtmdW5jdGlvbiB2NHQoYSl7cHJvY2Vzcy5vbigiZXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gYSgpfSkscHJvY2Vzcy5vbigiYmVmb3JlRXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gYSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oIlNJR0lOVCIsZnVuY3Rpb24oKXtyZXR1cm4gYSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oInVuY2F1Z2h0RXhjZXB0aW9uIixmdW5jdGlvbihlKXtyZXR1cm4gYSgpLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLnRyYWNlKGUpLHByb2Nlc3MuZXhpdCgxMDEpfSl9KX12YXIgeDR0PWYoKCk9PntzKHY0dCwiYWRkTm9kZSIpfSk7ZnVuY3Rpb24gdnhhKCl7eTR0fHwoeTR0PSEwLGJ4YSh4eGEpKX1mdW5jdGlvbiB3NHQoYSl7aWYodnhhKCksdHlwZW9mIGEhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO0wzLmFkZChhKTt2YXIgZT17cmVtb3ZlOnMoZnVuY3Rpb24oKXtyZXR1cm4gTDMuZGVsZXRlKGEpfSwicmVtb3ZlIikscnVuOnMoZnVuY3Rpb24oKXtyZXR1cm4gTDMuZGVsZXRlKGEpLGEoKX0sInJ1biIpfTtyZXR1cm4gZX1mdW5jdGlvbiB4eGEoKXt2YXIgYT1bXTtyZXR1cm4gTDMuZm9yRWFjaChmdW5jdGlvbihlKXthLnB1c2goZSgpKSxMMy5kZWxldGUoZSl9KSxQcm9taXNlLmFsbChhKX1mdW5jdGlvbiBkQXIoKXtMMy5jbGVhcigpfWZ1bmN0aW9uIHVBcigpe3JldHVybiBMMy5zaXplfXZhciBneGEsYnhhLEwzLHk0dCxNNHQ9ZigoKT0+e2I0dCgpO3g0dCgpO2d4YT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsYnhhPWd4YT92NHQ6ZzR0LEwzPW5ldyBTZXQseTR0PSExO3ModnhhLCJzdGFydExpc3RlbmluZyIpO3ModzR0LCJhZGQiKTtzKHh4YSwicnVuQWxsIik7cyhkQXIsInJlbW92ZUFsbCIpO3ModUFyLCJnZXRTaXplIil9KTtmdW5jdGlvbiAkbChhLGUpe3ZhciB0PXtjb250ZXh0OiJsZWFkZXIiLGFjdGlvbjplLHRva2VuOmEudG9rZW59O3JldHVybiBhLmJyb2FkY2FzdENoYW5uZWwucG9zdEludGVybmFsKHQpfWZ1bmN0aW9uIEs5KGEpe2EuaXNMZWFkZXI9ITAsYS5faGFzTGVhZGVyPSEwO3ZhciBlPXc0dChmdW5jdGlvbigpe3JldHVybiBhLmRpZSgpfSk7YS5fdW5sLnB1c2goZSk7dmFyIHQ9cyhmdW5jdGlvbihpKXtpLmNvbnRleHQ9PT0ibGVhZGVyIiYmaS5hY3Rpb249PT0iYXBwbHkiJiYkbChhLCJ0ZWxsIiksaS5jb250ZXh0PT09ImxlYWRlciImJmkuYWN0aW9uPT09InRlbGwiJiYhYS5fZHBMQyYmKGEuX2RwTEM9ITAsYS5fZHBMKCksJGwoYSwidGVsbCIpKX0sImlzTGVhZGVyTGlzdGVuZXIiKTtyZXR1cm4gYS5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIix0KSxhLl9sc3Rucy5wdXNoKHQpLCRsKGEsInRlbGwiKX12YXIga1g9ZigoKT0+e000dCgpO3MoJGwsInNlbmRMZWFkZXJNZXNzYWdlIik7cyhLOSwiYmVMZWFkZXIiKX0pO3ZhciBUY2UsazR0LFM0dD1mKCgpPT57UzAoKTtrWCgpO1RjZT1zKGZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9ZSxlLl9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gci5kaWUoKX0pLHRoaXMuX29wdGlvbnM9dCx0aGlzLmlzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49VGwoKSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmw9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExLHRoaXMuX3dLTUM9e30sdGhpcy5sTj0icHVia2V5LWJjfHwiK2UubWV0aG9kLnR5cGUrInx8IitlLm5hbWV9LCJMZWFkZXJFbGVjdGlvbldlYkxvY2siKSxrNHQ9IkxlYWRlckVsZWN0aW9uV2ViTG9jay5kaWUoKSBjYWxsZWQiO1RjZS5wcm90b3R5cGU9e2hhc0xlYWRlcjpzKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihmdW5jdGlvbih0KXt2YXIgcj10LmhlbGQ/dC5oZWxkLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5uYW1lPT09ZS5sTn0pOltdO3JldHVybiEhKHImJnIubGVuZ3RoPjApfSl9LCJoYXNMZWFkZXIiKSxhd2FpdExlYWRlcnNoaXA6cyhmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX3dMTVApe3RoaXMuX3dLTUMuYz1uZXcgQWJvcnRDb250cm9sbGVyO3ZhciB0PW5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsaSl7ZS5fd0tNQy5yZXM9cixlLl93S01DLnJlaj1pfSk7dGhpcy5fd0xNUD1uZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe25hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGUubE4se3NpZ25hbDplLl93S01DLmMuc2lnbmFsfSxmdW5jdGlvbigpe3JldHVybiBlLl93S01DLmM9dm9pZCAwLEs5KGUpLHIoKSx0fSkuY2F0Y2goZnVuY3Rpb24obyl7by5tZXNzYWdlJiZvLm1lc3NhZ2U9PT1rNHR8fChlLl93S01DLnJlaiYmZS5fd0tNQy5yZWoobyksaShvKSl9KX0pfXJldHVybiB0aGlzLl93TE1QfSwiYXdhaXRMZWFkZXJzaGlwIiksc2V0IG9uZHVwbGljYXRlKGEpe30sZGllOnMoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHQpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLHRoaXMuX3dLTUMucmVzJiZ0aGlzLl93S01DLnJlcygpLHRoaXMuX3dLTUMuYyYmdGhpcy5fd0tNQy5jLmFib3J0KG5ldyBFcnJvcihrNHQpKSwkbCh0aGlzLCJkZWF0aCIpfSwiZGllIil9fSk7ZnVuY3Rpb24geXhhKGEpe3JldHVybiBhLmlzTGVhZGVyP0dvOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciB0PSExO2Z1bmN0aW9uIHIoKXt0fHwodD0hMCxhLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLG8pLGUoITApKX1zKHIsImZpbmlzaCIpLGEuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe2EuaXNMZWFkZXImJnIoKX0pO3ZhciBpPXMoZnVuY3Rpb24oKXtyZXR1cm4gQzIoYS5fb3B0aW9ucy5mYWxsYmFja0ludGVydmFsKS50aGVuKGZ1bmN0aW9uKCl7aWYoIShhLmlzRGVhZHx8dCkpaWYoYS5pc0xlYWRlcilyKCk7ZWxzZSByZXR1cm4gYS5hcHBseU9uY2UoITApLnRoZW4oZnVuY3Rpb24oKXthLmlzTGVhZGVyP3IoKTppKCl9KX0pfSwidHJ5T25GYWxsQmFjayIpO2koKTt2YXIgbz1zKGZ1bmN0aW9uKGwpe2wuY29udGV4dD09PSJsZWFkZXIiJiZsLmFjdGlvbj09PSJkZWF0aCImJihhLl9oYXNMZWFkZXI9ITEsYS5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7YS5pc0xlYWRlciYmcigpfSkpfSwid2hlbkRlYXRoTGlzdGVuZXIiKTthLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLG8pLGEuX2xzdG5zLnB1c2gobyl9KX1mdW5jdGlvbiB3eGEoYSxlKXtyZXR1cm4gYXx8KGE9e30pLGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhKSksYS5mYWxsYmFja0ludGVydmFsfHwoYS5mYWxsYmFja0ludGVydmFsPTNlMyksYS5yZXNwb25zZVRpbWV8fChhLnJlc3BvbnNlVGltZT1lLm1ldGhvZC5hdmVyYWdlUmVzcG9uc2VUaW1lKGUub3B0aW9ucykpLGF9ZnVuY3Rpb24gTXhhKGEsZSl7aWYoYS5fbGVhZGVyRWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwgYWxyZWFkeSBoYXMgYSBsZWFkZXItZWxlY3RvciIpO2U9d3hhKGUsYSk7dmFyIHQ9VzB0KCk/bmV3IFRjZShhLGUpOm5ldyB6NHQoYSxlKTtyZXR1cm4gYS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZGllKCl9KSxhLl9sZWFkZXJFbGVjdG9yPXQsdH12YXIgejR0LEM0dD1mKCgpPT57UzAoKTtrWCgpO1M0dCgpO3o0dD1zKGZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9ZSx0aGlzLl9vcHRpb25zPXQsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0RlYWQ9ITEsdGhpcy50b2tlbj1UbCgpLHRoaXMuX2FwbFE9R28sdGhpcy5fYXBsUUM9MCx0aGlzLl91bmw9W10sdGhpcy5fbHN0bnM9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExO3ZhciBpPXMoZnVuY3Rpb24obil7bi5jb250ZXh0PT09ImxlYWRlciImJihuLmFjdGlvbj09PSJkZWF0aCImJihyLl9oYXNMZWFkZXI9ITEpLG4uYWN0aW9uPT09InRlbGwiJiYoci5faGFzTGVhZGVyPSEwKSl9LCJoYXNMZWFkZXJMaXN0ZW5lciIpO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsaSksdGhpcy5fbHN0bnMucHVzaChpKX0sIkxlYWRlckVsZWN0aW9uIik7ejR0LnByb3RvdHlwZT17aGFzTGVhZGVyOnMoZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2hhc0xlYWRlcil9LCJoYXNMZWFkZXIiKSxhcHBseU9uY2U6cyhmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKHRoaXMuaXNMZWFkZXIpcmV0dXJuIEMyKDAsITApO2lmKHRoaXMuaXNEZWFkKXJldHVybiBDMigwLCExKTtpZih0aGlzLl9hcGxRQz4xKXJldHVybiB0aGlzLl9hcGxRO3ZhciByPXMoZnVuY3Rpb24oKXtpZih0LmlzTGVhZGVyKXJldHVybiBqMHQ7dmFyIG89ITEsbixsPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHApe249cyhmdW5jdGlvbigpe289ITAscCgpfSwic3RvcENyaXRlcmlhUHJvbWlzZVJlc29sdmUiKX0pLGQ9cyhmdW5jdGlvbih1KXt1LmNvbnRleHQ9PT0ibGVhZGVyIiYmdS50b2tlbiE9dC50b2tlbiYmKHUuYWN0aW9uPT09ImFwcGx5IiYmdS50b2tlbj50LnRva2VuJiZuKCksdS5hY3Rpb249PT0idGVsbCImJihuKCksdC5faGFzTGVhZGVyPSEwKSl9LCJoYW5kbGVNZXNzYWdlIik7dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixkKTt2YXIgYz1lP3QuX29wdGlvbnMucmVzcG9uc2VUaW1lKjQ6dC5fb3B0aW9ucy5yZXNwb25zZVRpbWU7cmV0dXJuICRsKHQsImFwcGx5IikudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW0MyKGMpLGwudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gJGwodCwiYXBwbHkiKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFtDMihjKSxsLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixkKSxvPyExOks5KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSl9LCJhcHBseVJ1biIpO3JldHVybiB0aGlzLl9hcGxRQz10aGlzLl9hcGxRQysxLHRoaXMuX2FwbFE9dGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHIoKX0pLnRoZW4oZnVuY3Rpb24oKXt0Ll9hcGxRQz10Ll9hcGxRQy0xfSksdGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuaXNMZWFkZXJ9KX0sImFwcGx5T25jZSIpLGF3YWl0TGVhZGVyc2hpcDpzKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FMUHx8KHRoaXMuX2FMUD15eGEodGhpcykpLHRoaXMuX2FMUH0sImF3YWl0TGVhZGVyc2hpcCIpLHNldCBvbmR1cGxpY2F0ZShhKXt0aGlzLl9kcEw9YX0sZGllOnMoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHQpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCwkbCh0aGlzLCJkZWF0aCIpfSwiZGllIil9O3MoeXhhLCJfYXdhaXRMZWFkZXJzaGlwT25jZSIpO3Mod3hhLCJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIpO3MoTXhhLCJjcmVhdGVMZWFkZXJFbGVjdGlvbiIpfSk7dmFyIF80dD1mKCgpPT57bTR0KCk7QzR0KCk7a1goKX0pO3ZhciBUNHQ9ZigoKT0+e3QwKCk7aWgoKTtHOSgpO180dCgpfSk7dmFyIExjZSwkY2UsTDR0PWYoKCk9PntUNHQoKTtMY2U9Z2xvYmFsVGhpcy5Ccm9hZGNhc3RDaGFubmVsO0xjZXx8KExjZT1UMyk7JGNlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkRlZXNDb21tcyIpfWNvbnN0cnVjdG9yKCl7dGhpcy5icm9hZGNhc3RDaGFubmVsPW5ldyBMY2UoImRlZXMtY29tbXMiKSx0aGlzLnR5cGVkcm91dGVyPW5ldyBHci5UeXBlZFJvdXRlcix0aGlzLnR5cGVkdGFyZ2V0PW5ldyBHci5UeXBlZFRhcmdldCh7cG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcjpzKGFzeW5jIGU9Pnt0aGlzLnBvc3RNZXNzYWdlKGUpfSwicG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciIpLHR5cGVkUm91dGVyUmVmOnRoaXMudHlwZWRyb3V0ZXJ9KSx0aGlzLmJyb2FkY2FzdENoYW5uZWwub25tZXNzYWdlPWFzeW5jIGU9PntsZXQgdD1lLm1ldGhvZD9lOmUuZGF0YTtjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0KSk7bGV0IHI9YXdhaXQgdGhpcy50eXBlZHJvdXRlci5yb3V0ZUFuZEFkZFJlc3BvbnNlKHQse3NraXBIb29rczohMH0pO3ImJiFyLmVycm9yJiZ0aGlzLnBvc3RNZXNzYWdlKHIpfX1jcmVhdGVUeXBlZFJlcXVlc3QoZSl7cmV0dXJuIG5ldyBHci5UeXBlZFJlcXVlc3QodGhpcy50eXBlZHRhcmdldCxlKX1hc3luYyBwb3N0TWVzc2FnZShlKXt0aGlzLmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoZSl9YXN5bmMgY3JlYXRlVHlwZWRIYW5kbGVyKGUsdCl7dGhpcy50eXBlZHJvdXRlci5hZGRUeXBlZEhhbmRsZXIobmV3IEdyLlR5cGVkSGFuZGxlcihlLHQpKX19fSk7dmFyIFo5PXt9O2x0KFo5LHtEZWVzQ29tbXM6KCk9PiRjZX0pO3ZhciAkNHQ9ZigoKT0+e0w0dCgpfSk7ZnVuY3Rpb24gTGEoYSl7aWYoYSYmdHlwZW9mIGE9PSJvYmplY3QiKXN3aXRjaChhW19pXSl7Y2FzZSBrbjpjYXNlIF8yOnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGRhKGEpe2lmKGEmJnR5cGVvZiBhPT0ib2JqZWN0Iilzd2l0Y2goYVtfaV0pe2Nhc2UgWDk6Y2FzZSBrbjpjYXNlIF9vOmNhc2UgXzI6cmV0dXJuITB9cmV0dXJuITF9dmFyIFg5LFE5LGtuLFNYLF9vLF8yLF9pLFRvLExvLCRvLHJhLFZ0LERvLEo5LCRhPWYoKCk9PntYOT1TeW1ib2wuZm9yKCJ5YW1sLmFsaWFzIiksUTk9U3ltYm9sLmZvcigieWFtbC5kb2N1bWVudCIpLGtuPVN5bWJvbC5mb3IoInlhbWwubWFwIiksU1g9U3ltYm9sLmZvcigieWFtbC5wYWlyIiksX289U3ltYm9sLmZvcigieWFtbC5zY2FsYXIiKSxfMj1TeW1ib2wuZm9yKCJ5YW1sLnNlcSIpLF9pPVN5bWJvbC5mb3IoInlhbWwubm9kZS50eXBlIiksVG89cyhhPT4hIWEmJnR5cGVvZiBhPT0ib2JqZWN0IiYmYVtfaV09PT1YOSwiaXNBbGlhcyIpLExvPXMoYT0+ISFhJiZ0eXBlb2YgYT09Im9iamVjdCImJmFbX2ldPT09UTksImlzRG9jdW1lbnQiKSwkbz1zKGE9PiEhYSYmdHlwZW9mIGE9PSJvYmplY3QiJiZhW19pXT09PWtuLCJpc01hcCIpLHJhPXMoYT0+ISFhJiZ0eXBlb2YgYT09Im9iamVjdCImJmFbX2ldPT09U1gsImlzUGFpciIpLFZ0PXMoYT0+ISFhJiZ0eXBlb2YgYT09Im9iamVjdCImJmFbX2ldPT09X28sImlzU2NhbGFyIiksRG89cyhhPT4hIWEmJnR5cGVvZiBhPT0ib2JqZWN0IiYmYVtfaV09PT1fMiwiaXNTZXEiKTtzKExhLCJpc0NvbGxlY3Rpb24iKTtzKGRhLCJpc05vZGUiKTtKOT1zKGE9PihWdChhKXx8TGEoYSkpJiYhIWEuYW5jaG9yLCJoYXNBbmNob3IiKX0pO2Z1bmN0aW9uIFlvKGEsZSl7bGV0IHQ9QTR0KGUpO0xvKGEpP1VoKG51bGwsYS5jb250ZW50cyx0LE9iamVjdC5mcmVlemUoW2FdKSk9PT1UMiYmKGEuY29udGVudHM9bnVsbCk6VWgobnVsbCxhLHQsT2JqZWN0LmZyZWV6ZShbXSkpfWZ1bmN0aW9uIFVoKGEsZSx0LHIpe2xldCBpPVA0dChhLGUsdCxyKTtpZihkYShpKXx8cmEoaSkpcmV0dXJuIEU0dChhLHIsaSksVWgoYSxpLHQscik7aWYodHlwZW9mIGkhPSJzeW1ib2wiKXtpZihMYShlKSl7cj1PYmplY3QuZnJlZXplKHIuY29uY2F0KGUpKTtmb3IobGV0IG89MDtvPGUuaXRlbXMubGVuZ3RoOysrbyl7bGV0IG49VWgobyxlLml0ZW1zW29dLHQscik7aWYodHlwZW9mIG49PSJudW1iZXIiKW89bi0xO2Vsc2V7aWYobj09PUFvKXJldHVybiBBbztuPT09VDImJihlLml0ZW1zLnNwbGljZShvLDEpLG8tPTEpfX19ZWxzZSBpZihyYShlKSl7cj1PYmplY3QuZnJlZXplKHIuY29uY2F0KGUpKTtsZXQgbz1VaCgia2V5IixlLmtleSx0LHIpO2lmKG89PT1BbylyZXR1cm4gQW87bz09PVQyJiYoZS5rZXk9bnVsbCk7bGV0IG49VWgoInZhbHVlIixlLnZhbHVlLHQscik7aWYobj09PUFvKXJldHVybiBBbztuPT09VDImJihlLnZhbHVlPW51bGwpfX1yZXR1cm4gaX1hc3luYyBmdW5jdGlvbiAkMyhhLGUpe2xldCB0PUE0dChlKTtMbyhhKT9hd2FpdCBXaChudWxsLGEuY29udGVudHMsdCxPYmplY3QuZnJlZXplKFthXSkpPT09VDImJihhLmNvbnRlbnRzPW51bGwpOmF3YWl0IFdoKG51bGwsYSx0LE9iamVjdC5mcmVlemUoW10pKX1hc3luYyBmdW5jdGlvbiBXaChhLGUsdCxyKXtsZXQgaT1hd2FpdCBQNHQoYSxlLHQscik7aWYoZGEoaSl8fHJhKGkpKXJldHVybiBFNHQoYSxyLGkpLFdoKGEsaSx0LHIpO2lmKHR5cGVvZiBpIT0ic3ltYm9sIil7aWYoTGEoZSkpe3I9T2JqZWN0LmZyZWV6ZShyLmNvbmNhdChlKSk7Zm9yKGxldCBvPTA7bzxlLml0ZW1zLmxlbmd0aDsrK28pe2xldCBuPWF3YWl0IFdoKG8sZS5pdGVtc1tvXSx0LHIpO2lmKHR5cGVvZiBuPT0ibnVtYmVyIilvPW4tMTtlbHNle2lmKG49PT1BbylyZXR1cm4gQW87bj09PVQyJiYoZS5pdGVtcy5zcGxpY2UobywxKSxvLT0xKX19fWVsc2UgaWYocmEoZSkpe3I9T2JqZWN0LmZyZWV6ZShyLmNvbmNhdChlKSk7bGV0IG89YXdhaXQgV2goImtleSIsZS5rZXksdCxyKTtpZihvPT09QW8pcmV0dXJuIEFvO289PT1UMiYmKGUua2V5PW51bGwpO2xldCBuPWF3YWl0IFdoKCJ2YWx1ZSIsZS52YWx1ZSx0LHIpO2lmKG49PT1BbylyZXR1cm4gQW87bj09PVQyJiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIGl9ZnVuY3Rpb24gQTR0KGEpe3JldHVybiB0eXBlb2YgYT09Im9iamVjdCImJihhLkNvbGxlY3Rpb258fGEuTm9kZXx8YS5WYWx1ZSk/T2JqZWN0LmFzc2lnbih7QWxpYXM6YS5Ob2RlLE1hcDphLk5vZGUsU2NhbGFyOmEuTm9kZSxTZXE6YS5Ob2RlfSxhLlZhbHVlJiZ7TWFwOmEuVmFsdWUsU2NhbGFyOmEuVmFsdWUsU2VxOmEuVmFsdWV9LGEuQ29sbGVjdGlvbiYme01hcDphLkNvbGxlY3Rpb24sU2VxOmEuQ29sbGVjdGlvbn0sYSk6YX1mdW5jdGlvbiBQNHQoYSxlLHQscil7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIHQoYSxlLHIpO2lmKCRvKGUpKXJldHVybiB0Lk1hcD8uKGEsZSxyKTtpZihEbyhlKSlyZXR1cm4gdC5TZXE/LihhLGUscik7aWYocmEoZSkpcmV0dXJuIHQuUGFpcj8uKGEsZSxyKTtpZihWdChlKSlyZXR1cm4gdC5TY2FsYXI/LihhLGUscik7aWYoVG8oZSkpcmV0dXJuIHQuQWxpYXM/LihhLGUscil9ZnVuY3Rpb24gRTR0KGEsZSx0KXtsZXQgcj1lW2UubGVuZ3RoLTFdO2lmKExhKHIpKXIuaXRlbXNbYV09dDtlbHNlIGlmKHJhKHIpKWE9PT0ia2V5Ij9yLmtleT10OnIudmFsdWU9dDtlbHNlIGlmKExvKHIpKXIuY29udGVudHM9dDtlbHNle2xldCBpPVRvKHIpPyJhbGlhcyI6InNjYWxhciI7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVwbGFjZSBub2RlIHdpdGggJHtpfSBwYXJlbnRgKX19dmFyIEFvLEQ0dCxUMixlZz1mKCgpPT57JGEoKTtBbz1TeW1ib2woImJyZWFrIHZpc2l0IiksRDR0PVN5bWJvbCgic2tpcCBjaGlsZHJlbiIpLFQyPVN5bWJvbCgicmVtb3ZlIG5vZGUiKTtzKFlvLCJ2aXNpdCIpLFlvLkJSRUFLPUFvLFlvLlNLSVA9RDR0LFlvLlJFTU9WRT1UMjtzKFVoLCJ2aXNpdF8iKTtzKCQzLCJ2aXNpdEFzeW5jIiksJDMuQlJFQUs9QW8sJDMuU0tJUD1ENHQsJDMuUkVNT1ZFPVQyO3MoV2gsInZpc2l0QXN5bmNfIik7cyhBNHQsImluaXRWaXNpdG9yIik7cyhQNHQsImNhbGxWaXNpdG9yIik7cyhFNHQsInJlcGxhY2VOb2RlIil9KTt2YXIgU3hhLHp4YSxmMSxEY2U9ZigoKT0+eyRhKCk7ZWcoKTtTeGE9eyIhIjoiJTIxIiwiLCI6IiUyQyIsIlsiOiIlNUIiLCJdIjoiJTVEIiwieyI6IiU3QiIsIn0iOiIlN0QifSx6eGE9cyhhPT5hLnJlcGxhY2UoL1shLFtcXXt9XS9nLGU9PlN4YVtlXSksImVzY2FwZVRhZ05hbWUiKSxmMT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIkRpcmVjdGl2ZXMiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuZG9jU3RhcnQ9bnVsbCx0aGlzLmRvY0VuZD0hMSx0aGlzLnlhbWw9T2JqZWN0LmFzc2lnbih7fSxhLmRlZmF1bHRZYW1sLGUpLHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LGEuZGVmYXVsdFRhZ3MsdCl9Y2xvbmUoKXtsZXQgZT1uZXcgYSh0aGlzLnlhbWwsdGhpcy50YWdzKTtyZXR1cm4gZS5kb2NTdGFydD10aGlzLmRvY1N0YXJ0LGV9YXREb2N1bWVudCgpe2xldCBlPW5ldyBhKHRoaXMueWFtbCx0aGlzLnRhZ3MpO3N3aXRjaCh0aGlzLnlhbWwudmVyc2lvbil7Y2FzZSIxLjEiOnRoaXMuYXROZXh0RG9jdW1lbnQ9ITA7YnJlYWs7Y2FzZSIxLjIiOnRoaXMuYXROZXh0RG9jdW1lbnQ9ITEsdGhpcy55YW1sPXtleHBsaWNpdDphLmRlZmF1bHRZYW1sLmV4cGxpY2l0LHZlcnNpb246IjEuMiJ9LHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LGEuZGVmYXVsdFRhZ3MpO2JyZWFrfXJldHVybiBlfWFkZChlLHQpe3RoaXMuYXROZXh0RG9jdW1lbnQmJih0aGlzLnlhbWw9e2V4cGxpY2l0OmEuZGVmYXVsdFlhbWwuZXhwbGljaXQsdmVyc2lvbjoiMS4xIn0sdGhpcy50YWdzPU9iamVjdC5hc3NpZ24oe30sYS5kZWZhdWx0VGFncyksdGhpcy5hdE5leHREb2N1bWVudD0hMSk7bGV0IHI9ZS50cmltKCkuc3BsaXQoL1sgXHRdKy8pLGk9ci5zaGlmdCgpO3N3aXRjaChpKXtjYXNlIiVUQUciOntpZihyLmxlbmd0aCE9PTImJih0KDAsIiVUQUcgZGlyZWN0aXZlIHNob3VsZCBjb250YWluIGV4YWN0bHkgdHdvIHBhcnRzIiksci5sZW5ndGg8MikpcmV0dXJuITE7bGV0W28sbl09cjtyZXR1cm4gdGhpcy50YWdzW29dPW4sITB9Y2FzZSIlWUFNTCI6e2lmKHRoaXMueWFtbC5leHBsaWNpdD0hMCxyLmxlbmd0aCE9PTEpcmV0dXJuIHQoMCwiJVlBTUwgZGlyZWN0aXZlIHNob3VsZCBjb250YWluIGV4YWN0bHkgb25lIHBhcnQiKSwhMTtsZXRbb109cjtpZihvPT09IjEuMSJ8fG89PT0iMS4yIilyZXR1cm4gdGhpcy55YW1sLnZlcnNpb249bywhMDt7bGV0IG49L15cZCtcLlxkKyQvLnRlc3Qobyk7cmV0dXJuIHQoNixgVW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uICR7b31gLG4pLCExfX1kZWZhdWx0OnJldHVybiB0KDAsYFVua25vd24gZGlyZWN0aXZlICR7aX1gLCEwKSwhMX19dGFnTmFtZShlLHQpe2lmKGU9PT0iISIpcmV0dXJuIiEiO2lmKGVbMF0hPT0iISIpcmV0dXJuIHQoYE5vdCBhIHZhbGlkIHRhZzogJHtlfWApLG51bGw7aWYoZVsxXT09PSI8Iil7bGV0IG49ZS5zbGljZSgyLC0xKTtyZXR1cm4gbj09PSIhInx8bj09PSIhISI/KHQoYFZlcmJhdGltIHRhZ3MgYXJlbid0IHJlc29sdmVkLCBzbyAke2V9IGlzIGludmFsaWQuYCksbnVsbCk6KGVbZS5sZW5ndGgtMV0hPT0iPiImJnQoIlZlcmJhdGltIHRhZ3MgbXVzdCBlbmQgd2l0aCBhID4iKSxuKX1sZXRbLHIsaV09ZS5tYXRjaCgvXiguKiEpKFteIV0qKSQvcyk7aXx8dChgVGhlICR7ZX0gdGFnIGhhcyBubyBzdWZmaXhgKTtsZXQgbz10aGlzLnRhZ3Nbcl07aWYobyl0cnl7cmV0dXJuIG8rZGVjb2RlVVJJQ29tcG9uZW50KGkpfWNhdGNoKG4pe3JldHVybiB0KFN0cmluZyhuKSksbnVsbH1yZXR1cm4gcj09PSIhIj9lOih0KGBDb3VsZCBub3QgcmVzb2x2ZSB0YWc6ICR7ZX1gKSxudWxsKX10YWdTdHJpbmcoZSl7Zm9yKGxldFt0LHJdb2YgT2JqZWN0LmVudHJpZXModGhpcy50YWdzKSlpZihlLnN0YXJ0c1dpdGgocikpcmV0dXJuIHQrenhhKGUuc3Vic3RyaW5nKHIubGVuZ3RoKSk7cmV0dXJuIGVbMF09PT0iISI/ZTpgITwke2V9PmB9dG9TdHJpbmcoZSl7bGV0IHQ9dGhpcy55YW1sLmV4cGxpY2l0P1tgJVlBTUwgJHt0aGlzLnlhbWwudmVyc2lvbnx8IjEuMiJ9YF06W10scj1PYmplY3QuZW50cmllcyh0aGlzLnRhZ3MpLGk7aWYoZSYmci5sZW5ndGg+MCYmZGEoZS5jb250ZW50cykpe2xldCBvPXt9O1lvKGUuY29udGVudHMsKG4sbCk9PntkYShsKSYmbC50YWcmJihvW2wudGFnXT0hMCl9KSxpPU9iamVjdC5rZXlzKG8pfWVsc2UgaT1bXTtmb3IobGV0W28sbl1vZiByKW89PT0iISEiJiZuPT09InRhZzp5YW1sLm9yZywyMDAyOiJ8fCghZXx8aS5zb21lKGw9Pmwuc3RhcnRzV2l0aChuKSkpJiZ0LnB1c2goYCVUQUcgJHtvfSAke259YCk7cmV0dXJuIHQuam9pbihgCmApfX07ZjEuZGVmYXVsdFlhbWw9e2V4cGxpY2l0OiExLHZlcnNpb246IjEuMiJ9LGYxLmRlZmF1bHRUYWdzPXsiISEiOiJ0YWc6eWFtbC5vcmcsMjAwMjoifX0pO2Z1bmN0aW9uIHRnKGEpe2lmKC9bXHgwMC1ceDE5XHMsW1xde31dLy50ZXN0KGEpKXtsZXQgdD1gQW5jaG9yIG11c3Qgbm90IGNvbnRhaW4gd2hpdGVzcGFjZSBvciBjb250cm9sIGNoYXJhY3RlcnM6ICR7SlNPTi5zdHJpbmdpZnkoYSl9YDt0aHJvdyBuZXcgRXJyb3IodCl9cmV0dXJuITB9ZnVuY3Rpb24gelgoYSl7bGV0IGU9bmV3IFNldDtyZXR1cm4gWW8oYSx7VmFsdWUodCxyKXtyLmFuY2hvciYmZS5hZGQoci5hbmNob3IpfX0pLGV9ZnVuY3Rpb24gQ1goYSxlKXtmb3IobGV0IHQ9MTs7Kyt0KXtsZXQgcj1gJHthfSR7dH1gO2lmKCFlLmhhcyhyKSlyZXR1cm4gcn19ZnVuY3Rpb24gQWNlKGEsZSl7bGV0IHQ9W10scj1uZXcgTWFwLGk9bnVsbDtyZXR1cm57b25BbmNob3I6cyhvPT57dC5wdXNoKG8pLGk/PyhpPXpYKGEpKTtsZXQgbj1DWChlLGkpO3JldHVybiBpLmFkZChuKSxufSwib25BbmNob3IiKSxzZXRBbmNob3JzOnMoKCk9Pntmb3IobGV0IG8gb2YgdCl7bGV0IG49ci5nZXQobyk7aWYodHlwZW9mIG49PSJvYmplY3QiJiZuLmFuY2hvciYmKFZ0KG4ubm9kZSl8fExhKG4ubm9kZSkpKW4ubm9kZS5hbmNob3I9bi5hbmNob3I7ZWxzZXtsZXQgbD1uZXcgRXJyb3IoIkZhaWxlZCB0byByZXNvbHZlIHJlcGVhdGVkIG9iamVjdCAodGhpcyBzaG91bGQgbm90IGhhcHBlbikiKTt0aHJvdyBsLnNvdXJjZT1vLGx9fX0sInNldEFuY2hvcnMiKSxzb3VyY2VPYmplY3RzOnJ9fXZhciBfWD1mKCgpPT57JGEoKTtlZygpO3ModGcsImFuY2hvcklzVmFsaWQiKTtzKHpYLCJhbmNob3JOYW1lcyIpO3MoQ1gsImZpbmROZXdBbmNob3IiKTtzKEFjZSwiY3JlYXRlTm9kZUFuY2hvcnMiKX0pO2Z1bmN0aW9uIERsKGEsZSx0LHIpe2lmKHImJnR5cGVvZiByPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KHIpKWZvcihsZXQgaT0wLG89ci5sZW5ndGg7aTxvOysraSl7bGV0IG49cltpXSxsPURsKGEscixTdHJpbmcoaSksbik7bD09PXZvaWQgMD9kZWxldGUgcltpXTpsIT09biYmKHJbaV09bCl9ZWxzZSBpZihyIGluc3RhbmNlb2YgTWFwKWZvcihsZXQgaSBvZiBBcnJheS5mcm9tKHIua2V5cygpKSl7bGV0IG89ci5nZXQoaSksbj1EbChhLHIsaSxvKTtuPT09dm9pZCAwP3IuZGVsZXRlKGkpOm4hPT1vJiZyLnNldChpLG4pfWVsc2UgaWYociBpbnN0YW5jZW9mIFNldClmb3IobGV0IGkgb2YgQXJyYXkuZnJvbShyKSl7bGV0IG89RGwoYSxyLGksaSk7bz09PXZvaWQgMD9yLmRlbGV0ZShpKTpvIT09aSYmKHIuZGVsZXRlKGkpLHIuYWRkKG8pKX1lbHNlIGZvcihsZXRbaSxvXW9mIE9iamVjdC5lbnRyaWVzKHIpKXtsZXQgbj1EbChhLHIsaSxvKTtuPT09dm9pZCAwP2RlbGV0ZSByW2ldOm4hPT1vJiYocltpXT1uKX1yZXR1cm4gYS5jYWxsKGUsdCxyKX12YXIgUGNlPWYoKCk9PntzKERsLCJhcHBseVJldml2ZXIiKX0pO2Z1bmN0aW9uIHVzKGEsZSx0KXtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBhLm1hcCgocixpKT0+dXMocixTdHJpbmcoaSksdCkpO2lmKGEmJnR5cGVvZiBhLnRvSlNPTj09ImZ1bmN0aW9uIil7aWYoIXR8fCFKOShhKSlyZXR1cm4gYS50b0pTT04oZSx0KTtsZXQgcj17YWxpYXNDb3VudDowLGNvdW50OjEscmVzOnZvaWQgMH07dC5hbmNob3JzLnNldChhLHIpLHQub25DcmVhdGU9bz0+e3IucmVzPW8sZGVsZXRlIHQub25DcmVhdGV9O2xldCBpPWEudG9KU09OKGUsdCk7cmV0dXJuIHQub25DcmVhdGUmJnQub25DcmVhdGUoaSksaX1yZXR1cm4gdHlwZW9mIGE9PSJiaWdpbnQiJiYhdD8ua2VlcD9OdW1iZXIoYSk6YX12YXIgejA9ZigoKT0+eyRhKCk7cyh1cywidG9KUyIpfSk7dmFyIEFsLFRYPWYoKCk9PntQY2UoKTskYSgpO3owKCk7QWw9Y2xhc3N7c3RhdGlje3ModGhpcywiTm9kZUJhc2UiKX1jb25zdHJ1Y3RvcihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxfaSx7dmFsdWU6ZX0pfWNsb25lKCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiB0aGlzLnJhbmdlJiYoZS5yYW5nZT10aGlzLnJhbmdlLnNsaWNlKCkpLGV9dG9KUyhlLHttYXBBc01hcDp0LG1heEFsaWFzQ291bnQ6cixvbkFuY2hvcjppLHJldml2ZXI6b309e30pe2lmKCFMbyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBIGRvY3VtZW50IGFyZ3VtZW50IGlzIHJlcXVpcmVkIik7bGV0IG49e2FuY2hvcnM6bmV3IE1hcCxkb2M6ZSxrZWVwOiEwLG1hcEFzTWFwOnQ9PT0hMCxtYXBLZXlXYXJuZWQ6ITEsbWF4QWxpYXNDb3VudDp0eXBlb2Ygcj09Im51bWJlciI/cjoxMDB9LGw9dXModGhpcywiIixuKTtpZih0eXBlb2YgaT09ImZ1bmN0aW9uIilmb3IobGV0e2NvdW50OmQscmVzOmN9b2Ygbi5hbmNob3JzLnZhbHVlcygpKWkoYyxkKTtyZXR1cm4gdHlwZW9mIG89PSJmdW5jdGlvbiI/RGwobyx7IiI6bH0sIiIsbCk6bH19fSk7ZnVuY3Rpb24gTFgoYSxlLHQpe2lmKFRvKGUpKXtsZXQgcj1lLnJlc29sdmUoYSksaT10JiZyJiZ0LmdldChyKTtyZXR1cm4gaT9pLmNvdW50KmkuYWxpYXNDb3VudDowfWVsc2UgaWYoTGEoZSkpe2xldCByPTA7Zm9yKGxldCBpIG9mIGUuaXRlbXMpe2xldCBvPUxYKGEsaSx0KTtvPnImJihyPW8pfXJldHVybiByfWVsc2UgaWYocmEoZSkpe2xldCByPUxYKGEsZS5rZXksdCksaT1MWChhLGUudmFsdWUsdCk7cmV0dXJuIE1hdGgubWF4KHIsaSl9cmV0dXJuIDF9dmFyIFNuLGFnPWYoKCk9PntfWCgpO2VnKCk7JGEoKTtUWCgpO3owKCk7U249Y2xhc3MgZXh0ZW5kcyBBbHtzdGF0aWN7cyh0aGlzLCJBbGlhcyIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKFg5KSx0aGlzLnNvdXJjZT1lLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJ0YWciLHtzZXQoKXt0aHJvdyBuZXcgRXJyb3IoIkFsaWFzIG5vZGVzIGNhbm5vdCBoYXZlIHRhZ3MiKX19KX1yZXNvbHZlKGUsdCl7aWYodD8ubWF4QWxpYXNDb3VudD09PTApdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJBbGlhcyByZXNvbHV0aW9uIGlzIGRpc2FibGVkIik7bGV0IHI7dD8uYWxpYXNSZXNvbHZlQ2FjaGU/cj10LmFsaWFzUmVzb2x2ZUNhY2hlOihyPVtdLFlvKGUse05vZGU6cygobyxuKT0+eyhUbyhuKXx8SjkobikpJiZyLnB1c2gobil9LCJOb2RlIil9KSx0JiYodC5hbGlhc1Jlc29sdmVDYWNoZT1yKSk7bGV0IGk7Zm9yKGxldCBvIG9mIHIpe2lmKG89PT10aGlzKWJyZWFrO28uYW5jaG9yPT09dGhpcy5zb3VyY2UmJihpPW8pfXJldHVybiBpfXRvSlNPTihlLHQpe2lmKCF0KXJldHVybntzb3VyY2U6dGhpcy5zb3VyY2V9O2xldHthbmNob3JzOnIsZG9jOmksbWF4QWxpYXNDb3VudDpvfT10LG49dGhpcy5yZXNvbHZlKGksdCk7aWYoIW4pe2xldCBkPWBVbnJlc29sdmVkIGFsaWFzICh0aGUgYW5jaG9yIG11c3QgYmUgc2V0IGJlZm9yZSB0aGUgYWxpYXMpOiAke3RoaXMuc291cmNlfWA7dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKGQpfWxldCBsPXIuZ2V0KG4pO2lmKGx8fCh1cyhuLG51bGwsdCksbD1yLmdldChuKSksbD8ucmVzPT09dm9pZCAwKXtsZXQgZD0iVGhpcyBzaG91bGQgbm90IGhhcHBlbjogQWxpYXMgYW5jaG9yIHdhcyBub3QgcmVzb2x2ZWQ/Ijt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoZCl9aWYobz49MCYmKGwuY291bnQrPTEsbC5hbGlhc0NvdW50PT09MCYmKGwuYWxpYXNDb3VudD1MWChpLG4scikpLGwuY291bnQqbC5hbGlhc0NvdW50Pm8pKXtsZXQgZD0iRXhjZXNzaXZlIGFsaWFzIGNvdW50IGluZGljYXRlcyBhIHJlc291cmNlIGV4aGF1c3Rpb24gYXR0YWNrIjt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoZCl9cmV0dXJuIGwucmVzfXRvU3RyaW5nKGUsdCxyKXtsZXQgaT1gKiR7dGhpcy5zb3VyY2V9YDtpZihlKXtpZih0Zyh0aGlzLnNvdXJjZSksZS5vcHRpb25zLnZlcmlmeUFsaWFzT3JkZXImJiFlLmFuY2hvcnMuaGFzKHRoaXMuc291cmNlKSl7bGV0IG89YFVucmVzb2x2ZWQgYWxpYXMgKHRoZSBhbmNob3IgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBhbGlhcyk6ICR7dGhpcy5zb3VyY2V9YDt0aHJvdyBuZXcgRXJyb3Iobyl9aWYoZS5pbXBsaWNpdEtleSlyZXR1cm5gJHtpfSBgfXJldHVybiBpfX07cyhMWCwiZ2V0QWxpYXNDb3VudCIpfSk7dmFyIHJnLGh0LHBzPWYoKCk9PnskYSgpO1RYKCk7ejAoKTtyZz1zKGE9PiFhfHx0eXBlb2YgYSE9ImZ1bmN0aW9uIiYmdHlwZW9mIGEhPSJvYmplY3QiLCJpc1NjYWxhclZhbHVlIiksaHQ9Y2xhc3MgZXh0ZW5kcyBBbHtzdGF0aWN7cyh0aGlzLCJTY2FsYXIiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihfbyksdGhpcy52YWx1ZT1lfXRvSlNPTihlLHQpe3JldHVybiB0Py5rZWVwP3RoaXMudmFsdWU6dXModGhpcy52YWx1ZSxlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX19O2h0LkJMT0NLX0ZPTERFRD0iQkxPQ0tfRk9MREVEIixodC5CTE9DS19MSVRFUkFMPSJCTE9DS19MSVRFUkFMIixodC5QTEFJTj0iUExBSU4iLGh0LlFVT1RFX0RPVUJMRT0iUVVPVEVfRE9VQkxFIixodC5RVU9URV9TSU5HTEU9IlFVT1RFX1NJTkdMRSJ9KTtmdW5jdGlvbiBfeGEoYSxlLHQpe2lmKGUpe2xldCByPXQuZmlsdGVyKG89Pm8udGFnPT09ZSksaT1yLmZpbmQobz0+IW8uZm9ybWF0KT8/clswXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoYFRhZyAke2V9IG5vdCBmb3VuZGApO3JldHVybiBpfXJldHVybiB0LmZpbmQocj0+ci5pZGVudGlmeT8uKGEpJiYhci5mb3JtYXQpfWZ1bmN0aW9uIEwyKGEsZSx0KXtpZihMbyhhKSYmKGE9YS5jb250ZW50cyksZGEoYSkpcmV0dXJuIGE7aWYocmEoYSkpe2xldCB1PXQuc2NoZW1hW2tuXS5jcmVhdGVOb2RlPy4odC5zY2hlbWEsbnVsbCx0KTtyZXR1cm4gdS5pdGVtcy5wdXNoKGEpLHV9KGEgaW5zdGFuY2VvZiBTdHJpbmd8fGEgaW5zdGFuY2VvZiBOdW1iZXJ8fGEgaW5zdGFuY2VvZiBCb29sZWFufHx0eXBlb2YgQmlnSW50PCJ1IiYmYSBpbnN0YW5jZW9mIEJpZ0ludCkmJihhPWEudmFsdWVPZigpKTtsZXR7YWxpYXNEdXBsaWNhdGVPYmplY3RzOnIsb25BbmNob3I6aSxvblRhZ09iajpvLHNjaGVtYTpuLHNvdXJjZU9iamVjdHM6bH09dCxkO2lmKHImJmEmJnR5cGVvZiBhPT0ib2JqZWN0Iil7aWYoZD1sLmdldChhKSxkKXJldHVybiBkLmFuY2hvcj8/KGQuYW5jaG9yPWkoYSkpLG5ldyBTbihkLmFuY2hvcik7ZD17YW5jaG9yOm51bGwsbm9kZTpudWxsfSxsLnNldChhLGQpfWU/LnN0YXJ0c1dpdGgoIiEhIikmJihlPUN4YStlLnNsaWNlKDIpKTtsZXQgYz1feGEoYSxlLG4udGFncyk7aWYoIWMpe2lmKGEmJnR5cGVvZiBhLnRvSlNPTj09ImZ1bmN0aW9uIiYmKGE9YS50b0pTT04oKSksIWF8fHR5cGVvZiBhIT0ib2JqZWN0Iil7bGV0IHU9bmV3IGh0KGEpO3JldHVybiBkJiYoZC5ub2RlPXUpLHV9Yz1hIGluc3RhbmNlb2YgTWFwP25ba25dOlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoYSk/bltfMl06bltrbl19byYmKG8oYyksZGVsZXRlIHQub25UYWdPYmopO2xldCBwPWM/LmNyZWF0ZU5vZGU/Yy5jcmVhdGVOb2RlKHQuc2NoZW1hLGEsdCk6dHlwZW9mIGM/Lm5vZGVDbGFzcz8uZnJvbT09ImZ1bmN0aW9uIj9jLm5vZGVDbGFzcy5mcm9tKHQuc2NoZW1hLGEsdCk6bmV3IGh0KGEpO3JldHVybiBlP3AudGFnPWU6Yy5kZWZhdWx0fHwocC50YWc9Yy50YWcpLGQmJihkLm5vZGU9cCkscH12YXIgQ3hhLHNnPWYoKCk9PnthZygpOyRhKCk7cHMoKTtDeGE9InRhZzp5YW1sLm9yZywyMDAyOiI7cyhfeGEsImZpbmRUYWdPYmplY3QiKTtzKEwyLCJjcmVhdGVOb2RlIil9KTtmdW5jdGlvbiBHaChhLGUsdCl7bGV0IHI9dDtmb3IobGV0IGk9ZS5sZW5ndGgtMTtpPj0wOy0taSl7bGV0IG89ZVtpXTtpZih0eXBlb2Ygbz09Im51bWJlciImJk51bWJlci5pc0ludGVnZXIobykmJm8+PTApe2xldCBuPVtdO25bb109cixyPW59ZWxzZSByPW5ldyBNYXAoW1tvLHJdXSl9cmV0dXJuIEwyKHIsdm9pZCAwLHthbGlhc0R1cGxpY2F0ZU9iamVjdHM6ITEsa2VlcFVuZGVmaW5lZDohMSxvbkFuY2hvcjpzKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBwbGVhc2UgcmVwb3J0IGEgYnVnLiIpfSwib25BbmNob3IiKSxzY2hlbWE6YSxzb3VyY2VPYmplY3RzOm5ldyBNYXB9KX12YXIgQTMsRDMsJFg9ZigoKT0+e3NnKCk7JGEoKTtUWCgpO3MoR2gsImNvbGxlY3Rpb25Gcm9tUGF0aCIpO0EzPXMoYT0+YT09bnVsbHx8dHlwZW9mIGE9PSJvYmplY3QiJiYhIWFbU3ltYm9sLml0ZXJhdG9yXSgpLm5leHQoKS5kb25lLCJpc0VtcHR5UGF0aCIpLEQzPWNsYXNzIGV4dGVuZHMgQWx7c3RhdGlje3ModGhpcywiQ29sbGVjdGlvbiIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInNjaGVtYSIse3ZhbHVlOnQsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITB9KX1jbG9uZShlKXtsZXQgdD1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7cmV0dXJuIGUmJih0LnNjaGVtYT1lKSx0Lml0ZW1zPXQuaXRlbXMubWFwKHI9PmRhKHIpfHxyYShyKT9yLmNsb25lKGUpOnIpLHRoaXMucmFuZ2UmJih0LnJhbmdlPXRoaXMucmFuZ2Uuc2xpY2UoKSksdH1hZGRJbihlLHQpe2lmKEEzKGUpKXRoaXMuYWRkKHQpO2Vsc2V7bGV0W3IsLi4uaV09ZSxvPXRoaXMuZ2V0KHIsITApO2lmKExhKG8pKW8uYWRkSW4oaSx0KTtlbHNlIGlmKG89PT12b2lkIDAmJnRoaXMuc2NoZW1hKXRoaXMuc2V0KHIsR2godGhpcy5zY2hlbWEsaSx0KSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke3J9LiBSZW1haW5pbmcgcGF0aDogJHtpfWApfX1kZWxldGVJbihlKXtsZXRbdCwuLi5yXT1lO2lmKHIubGVuZ3RoPT09MClyZXR1cm4gdGhpcy5kZWxldGUodCk7bGV0IGk9dGhpcy5nZXQodCwhMCk7aWYoTGEoaSkpcmV0dXJuIGkuZGVsZXRlSW4ocik7dGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHt0fS4gUmVtYWluaW5nIHBhdGg6ICR7cn1gKX1nZXRJbihlLHQpe2xldFtyLC4uLmldPWUsbz10aGlzLmdldChyLCEwKTtyZXR1cm4gaS5sZW5ndGg9PT0wPyF0JiZWdChvKT9vLnZhbHVlOm86TGEobyk/by5nZXRJbihpLHQpOnZvaWQgMH1oYXNBbGxOdWxsVmFsdWVzKGUpe3JldHVybiB0aGlzLml0ZW1zLmV2ZXJ5KHQ9PntpZighcmEodCkpcmV0dXJuITE7bGV0IHI9dC52YWx1ZTtyZXR1cm4gcj09bnVsbHx8ZSYmVnQocikmJnIudmFsdWU9PW51bGwmJiFyLmNvbW1lbnRCZWZvcmUmJiFyLmNvbW1lbnQmJiFyLnRhZ30pfWhhc0luKGUpe2xldFt0LC4uLnJdPWU7aWYoci5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmhhcyh0KTtsZXQgaT10aGlzLmdldCh0LCEwKTtyZXR1cm4gTGEoaSk/aS5oYXNJbihyKTohMX1zZXRJbihlLHQpe2xldFtyLC4uLmldPWU7aWYoaS5sZW5ndGg9PT0wKXRoaXMuc2V0KHIsdCk7ZWxzZXtsZXQgbz10aGlzLmdldChyLCEwKTtpZihMYShvKSlvLnNldEluKGksdCk7ZWxzZSBpZihvPT09dm9pZCAwJiZ0aGlzLnNjaGVtYSl0aGlzLnNldChyLEdoKHRoaXMuc2NoZW1hLGksdCkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHtyfS4gUmVtYWluaW5nIHBhdGg6ICR7aX1gKX19fX0pO2Z1bmN0aW9uIEtvKGEsZSl7cmV0dXJuL15cbiskLy50ZXN0KGEpP2Euc3Vic3RyaW5nKDEpOmU/YS5yZXBsYWNlKC9eKD8hICokKS9nbSxlKTphfXZhciBFY2UsaDEsaWc9ZigoKT0+e0VjZT1zKGE9PmEucmVwbGFjZSgvXig/ISQpKD86ICQpPy9nbSwiIyIpLCJzdHJpbmdpZnlDb21tZW50Iik7cyhLbywiaW5kZW50Q29tbWVudCIpO2gxPXMoKGEsZSx0KT0+YS5lbmRzV2l0aChgCmApP0tvKHQsZSk6dC5pbmNsdWRlcyhgCmApP2AKYCtLbyh0LGUpOihhLmVuZHNXaXRoKCIgIik/IiI6IiAiKSt0LCJsaW5lQ29tbWVudCIpfSk7ZnVuY3Rpb24gS2goYSxlLHQ9ImZsb3ciLHtpbmRlbnRBdFN0YXJ0OnIsbGluZVdpZHRoOmk9ODAsbWluQ29udGVudFdpZHRoOm89MjAsb25Gb2xkOm4sb25PdmVyZmxvdzpsfT17fSl7aWYoIWl8fGk8MClyZXR1cm4gYTtpPG8mJihvPTApO2xldCBkPU1hdGgubWF4KDErbywxK2ktZS5sZW5ndGgpO2lmKGEubGVuZ3RoPD1kKXJldHVybiBhO2xldCBjPVtdLHA9e30sdT1pLWUubGVuZ3RoO3R5cGVvZiByPT0ibnVtYmVyIiYmKHI+aS1NYXRoLm1heCgyLG8pP2MucHVzaCgwKTp1PWktcik7bGV0IG0sdix4PSExLGI9LTEsZz0tMSx5PS0xO3Q9PT1vZyYmKGI9STR0KGEsYixlLmxlbmd0aCksYiE9PS0xJiYodT1iK2QpKTtmb3IobGV0IEM7Qz1hW2IrPTFdOyl7aWYodD09PVloJiZDPT09IlxcIil7c3dpdGNoKGc9YixhW2IrMV0pe2Nhc2UieCI6Yis9MzticmVhaztjYXNlInUiOmIrPTU7YnJlYWs7Y2FzZSJVIjpiKz05O2JyZWFrO2RlZmF1bHQ6Yis9MX15PWJ9aWYoQz09PWAKYCl0PT09b2cmJihiPUk0dChhLGIsZS5sZW5ndGgpKSx1PWIrZS5sZW5ndGgrZCxtPXZvaWQgMDtlbHNle2lmKEM9PT0iICImJnYmJnYhPT0iICImJnYhPT1gCmAmJnYhPT0iCSIpe2xldCBOPWFbYisxXTtOJiZOIT09IiAiJiZOIT09YApgJiZOIT09IgkiJiYobT1iKX1pZihiPj11KWlmKG0pYy5wdXNoKG0pLHU9bStkLG09dm9pZCAwO2Vsc2UgaWYodD09PVloKXtmb3IoO3Y9PT0iICJ8fHY9PT0iCSI7KXY9QyxDPWFbYis9MV0seD0hMDtsZXQgTj1iPnkrMT9iLTI6Zy0xO2lmKHBbTl0pcmV0dXJuIGE7Yy5wdXNoKE4pLHBbTl09ITAsdT1OK2QsbT12b2lkIDB9ZWxzZSB4PSEwfXY9Q31pZih4JiZsJiZsKCksYy5sZW5ndGg9PT0wKXJldHVybiBhO24mJm4oKTtsZXQgaz1hLnNsaWNlKDAsY1swXSk7Zm9yKGxldCBDPTA7QzxjLmxlbmd0aDsrK0Mpe2xldCBOPWNbQ10sXz1jW0MrMV18fGEubGVuZ3RoO049PT0wP2s9YAoke2V9JHthLnNsaWNlKDAsXyl9YDoodD09PVloJiZwW05dJiYoays9YCR7YVtOXX1cXGApLGsrPWAKJHtlfSR7YS5zbGljZShOKzEsXyl9YCl9cmV0dXJuIGt9ZnVuY3Rpb24gSTR0KGEsZSx0KXtsZXQgcj1lLGk9ZSsxLG89YVtpXTtmb3IoO289PT0iICJ8fG89PT0iCSI7KWlmKGU8aSt0KW89YVsrK2VdO2Vsc2V7ZG8gbz1hWysrZV07d2hpbGUobyYmbyE9PWAKYCk7cj1lLGk9ZSsxLG89YVtpXX1yZXR1cm4gcn12YXIgRFgsb2csWWgsTjR0PWYoKCk9PntEWD0iZmxvdyIsb2c9ImJsb2NrIixZaD0icXVvdGVkIjtzKEtoLCJmb2xkRmxvd0xpbmVzIik7cyhJNHQsImNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyIpfSk7ZnVuY3Rpb24gVHhhKGEsZSx0KXtpZighZXx8ZTwwKXJldHVybiExO2xldCByPWUtdCxpPWEubGVuZ3RoO2lmKGk8PXIpcmV0dXJuITE7Zm9yKGxldCBvPTAsbj0wO288aTsrK28paWYoYVtvXT09PWAKYCl7aWYoby1uPnIpcmV0dXJuITA7aWYobj1vKzEsaS1uPD1yKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIG5nKGEsZSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoYSk7aWYoZS5vcHRpb25zLmRvdWJsZVF1b3RlZEFzSlNPTilyZXR1cm4gdDtsZXR7aW1wbGljaXRLZXk6cn09ZSxpPWUub3B0aW9ucy5kb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGgsbz1lLmluZGVudHx8KFBYKGEpPyIgICI6IiIpLG49IiIsbD0wO2ZvcihsZXQgZD0wLGM9dFtkXTtjO2M9dFsrK2RdKWlmKGM9PT0iICImJnRbZCsxXT09PSJcXCImJnRbZCsyXT09PSJuIiYmKG4rPXQuc2xpY2UobCxkKSsiXFwgIixkKz0xLGw9ZCxjPSJcXCIpLGM9PT0iXFwiKXN3aXRjaCh0W2QrMV0pe2Nhc2UidSI6e24rPXQuc2xpY2UobCxkKTtsZXQgcD10LnN1YnN0cihkKzIsNCk7c3dpdGNoKHApe2Nhc2UiMDAwMCI6bis9IlxcMCI7YnJlYWs7Y2FzZSIwMDA3IjpuKz0iXFxhIjticmVhaztjYXNlIjAwMGIiOm4rPSJcXHYiO2JyZWFrO2Nhc2UiMDAxYiI6bis9IlxcZSI7YnJlYWs7Y2FzZSIwMDg1IjpuKz0iXFxOIjticmVhaztjYXNlIjAwYTAiOm4rPSJcXF8iO2JyZWFrO2Nhc2UiMjAyOCI6bis9IlxcTCI7YnJlYWs7Y2FzZSIyMDI5IjpuKz0iXFxQIjticmVhaztkZWZhdWx0OnAuc3Vic3RyKDAsMik9PT0iMDAiP24rPSJcXHgiK3Auc3Vic3RyKDIpOm4rPXQuc3Vic3RyKGQsNil9ZCs9NSxsPWQrMX1icmVhaztjYXNlIm4iOmlmKHJ8fHRbZCsyXT09PSciJ3x8dC5sZW5ndGg8aSlkKz0xO2Vsc2V7Zm9yKG4rPXQuc2xpY2UobCxkKStgCgpgO3RbZCsyXT09PSJcXCImJnRbZCszXT09PSJuIiYmdFtkKzRdIT09JyInOyluKz1gCmAsZCs9MjtuKz1vLHRbZCsyXT09PSIgIiYmKG4rPSJcXCIpLGQrPTEsbD1kKzF9YnJlYWs7ZGVmYXVsdDpkKz0xfXJldHVybiBuPWw/bit0LnNsaWNlKGwpOnQscj9uOktoKG4sbyxZaCxBWChlLCExKSl9ZnVuY3Rpb24gSWNlKGEsZSl7aWYoZS5vcHRpb25zLnNpbmdsZVF1b3RlPT09ITF8fGUuaW1wbGljaXRLZXkmJmEuaW5jbHVkZXMoYApgKXx8L1sgXHRdXG58XG5bIFx0XS8udGVzdChhKSlyZXR1cm4gbmcoYSxlKTtsZXQgdD1lLmluZGVudHx8KFBYKGEpPyIgICI6IiIpLHI9IiciK2EucmVwbGFjZSgvJy9nLCInJyIpLnJlcGxhY2UoL1xuKy9nLGAkJgoke3R9YCkrIiciO3JldHVybiBlLmltcGxpY2l0S2V5P3I6S2gocix0LERYLEFYKGUsITEpKX1mdW5jdGlvbiBaaChhLGUpe2xldHtzaW5nbGVRdW90ZTp0fT1lLm9wdGlvbnMscjtpZih0PT09ITEpcj1uZztlbHNle2xldCBpPWEuaW5jbHVkZXMoJyInKSxvPWEuaW5jbHVkZXMoIiciKTtpJiYhbz9yPUljZTpvJiYhaT9yPW5nOnI9dD9JY2U6bmd9cmV0dXJuIHIoYSxlKX1mdW5jdGlvbiBFWCh7Y29tbWVudDphLHR5cGU6ZSx2YWx1ZTp0fSxyLGksbyl7bGV0e2Jsb2NrUXVvdGU6bixjb21tZW50U3RyaW5nOmwsbGluZVdpZHRoOmR9PXIub3B0aW9ucztpZighbnx8L1xuW1x0IF0rJC8udGVzdCh0KSlyZXR1cm4gWmgodCxyKTtsZXQgYz1yLmluZGVudHx8KHIuZm9yY2VCbG9ja0luZGVudHx8UFgodCk/IiAgIjoiIikscD1uPT09ImxpdGVyYWwiPyEwOm49PT0iZm9sZGVkInx8ZT09PWh0LkJMT0NLX0ZPTERFRD8hMTplPT09aHQuQkxPQ0tfTElURVJBTD8hMDohVHhhKHQsZCxjLmxlbmd0aCk7aWYoIXQpcmV0dXJuIHA/YHwKYDpgPgpgO2xldCB1LG07Zm9yKG09dC5sZW5ndGg7bT4wOy0tbSl7bGV0IF89dFttLTFdO2lmKF8hPT1gCmAmJl8hPT0iCSImJl8hPT0iICIpYnJlYWt9bGV0IHY9dC5zdWJzdHJpbmcobSkseD12LmluZGV4T2YoYApgKTt4PT09LTE/dT0iLSI6dD09PXZ8fHghPT12Lmxlbmd0aC0xPyh1PSIrIixvJiZvKCkpOnU9IiIsdiYmKHQ9dC5zbGljZSgwLC12Lmxlbmd0aCksdlt2Lmxlbmd0aC0xXT09PWAKYCYmKHY9di5zbGljZSgwLC0xKSksdj12LnJlcGxhY2UoTmNlLGAkJiR7Y31gKSk7bGV0IGI9ITEsZyx5PS0xO2ZvcihnPTA7Zzx0Lmxlbmd0aDsrK2cpe2xldCBfPXRbZ107aWYoXz09PSIgIiliPSEwO2Vsc2UgaWYoXz09PWAKYCl5PWc7ZWxzZSBicmVha31sZXQgaz10LnN1YnN0cmluZygwLHk8Zz95KzE6Zyk7ayYmKHQ9dC5zdWJzdHJpbmcoay5sZW5ndGgpLGs9ay5yZXBsYWNlKC9cbisvZyxgJCYke2N9YCkpO2xldCBOPShiP2M/IjIiOiIxIjoiIikrdTtpZihhJiYoTis9IiAiK2woYS5yZXBsYWNlKC8gP1tcclxuXSsvZywiICIpKSxpJiZpKCkpLCFwKXtsZXQgXz10LnJlcGxhY2UoL1xuKy9nLGAKJCZgKS5yZXBsYWNlKC8oPzpefFxuKShbXHQgXS4qKSg/OihbXG5cdCBdKilcbig/IVtcblx0IF0pKT8vZywiJDEkMiIpLnJlcGxhY2UoL1xuKy9nLGAkJiR7Y31gKSx6PSExLE89QVgociwhMCk7biE9PSJmb2xkZWQiJiZlIT09aHQuQkxPQ0tfRk9MREVEJiYoTy5vbk92ZXJmbG93PSgpPT57ej0hMH0pO2xldCBUPUtoKGAke2t9JHtffSR7dn1gLGMsb2csTyk7aWYoIXopcmV0dXJuYD4ke059CiR7Y30ke1R9YH1yZXR1cm4gdD10LnJlcGxhY2UoL1xuKy9nLGAkJiR7Y31gKSxgfCR7Tn0KJHtjfSR7a30ke3R9JHt2fWB9ZnVuY3Rpb24gTHhhKGEsZSx0LHIpe2xldHt0eXBlOmksdmFsdWU6b309YSx7YWN0dWFsU3RyaW5nOm4saW1wbGljaXRLZXk6bCxpbmRlbnQ6ZCxpbmRlbnRTdGVwOmMsaW5GbG93OnB9PWU7aWYobCYmby5pbmNsdWRlcyhgCmApfHxwJiYvW1tcXXt9LF0vLnRlc3QobykpcmV0dXJuIFpoKG8sZSk7aWYoL15bXG5cdCAsW1xde30jJiohfD4nIiVAYF18Xls/LV0kfF5bPy1dWyBcdF18W1xuOl1bIFx0XXxbIFx0XVxufFtcblx0IF0jfFtcblx0IDpdJC8udGVzdChvKSlyZXR1cm4gbHx8cHx8IW8uaW5jbHVkZXMoYApgKT9aaChvLGUpOkVYKGEsZSx0LHIpO2lmKCFsJiYhcCYmaSE9PWh0LlBMQUlOJiZvLmluY2x1ZGVzKGAKYCkpcmV0dXJuIEVYKGEsZSx0LHIpO2lmKFBYKG8pKXtpZihkPT09IiIpcmV0dXJuIGUuZm9yY2VCbG9ja0luZGVudD0hMCxFWChhLGUsdCxyKTtpZihsJiZkPT09YylyZXR1cm4gWmgobyxlKX1sZXQgdT1vLnJlcGxhY2UoL1xuKy9nLGAkJgoke2R9YCk7aWYobil7bGV0IG09cyhiPT5iLmRlZmF1bHQmJmIudGFnIT09InRhZzp5YW1sLm9yZywyMDAyOnN0ciImJmIudGVzdD8udGVzdCh1KSwidGVzdCIpLHtjb21wYXQ6dix0YWdzOnh9PWUuZG9jLnNjaGVtYTtpZih4LnNvbWUobSl8fHY/LnNvbWUobSkpcmV0dXJuIFpoKG8sZSl9cmV0dXJuIGw/dTpLaCh1LGQsRFgsQVgoZSwhMSkpfWZ1bmN0aW9uICQyKGEsZSx0LHIpe2xldHtpbXBsaWNpdEtleTppLGluRmxvdzpvfT1lLG49dHlwZW9mIGEudmFsdWU9PSJzdHJpbmciP2E6T2JqZWN0LmFzc2lnbih7fSxhLHt2YWx1ZTpTdHJpbmcoYS52YWx1ZSl9KSx7dHlwZTpsfT1hO2whPT1odC5RVU9URV9ET1VCTEUmJi9bXHgwMC1ceDA4XHgwYi1ceDFmXHg3Zi1ceDlmXHV7RDgwMH0tXHV7REZGRn1dL3UudGVzdChuLnZhbHVlKSYmKGw9aHQuUVVPVEVfRE9VQkxFKTtsZXQgZD1zKHA9Pntzd2l0Y2gocCl7Y2FzZSBodC5CTE9DS19GT0xERUQ6Y2FzZSBodC5CTE9DS19MSVRFUkFMOnJldHVybiBpfHxvP1poKG4udmFsdWUsZSk6RVgobixlLHQscik7Y2FzZSBodC5RVU9URV9ET1VCTEU6cmV0dXJuIG5nKG4udmFsdWUsZSk7Y2FzZSBodC5RVU9URV9TSU5HTEU6cmV0dXJuIEljZShuLnZhbHVlLGUpO2Nhc2UgaHQuUExBSU46cmV0dXJuIEx4YShuLGUsdCxyKTtkZWZhdWx0OnJldHVybiBudWxsfX0sIl9zdHJpbmdpZnkiKSxjPWQobCk7aWYoYz09PW51bGwpe2xldHtkZWZhdWx0S2V5VHlwZTpwLGRlZmF1bHRTdHJpbmdUeXBlOnV9PWUub3B0aW9ucyxtPWkmJnB8fHU7aWYoYz1kKG0pLGM9PT1udWxsKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVmYXVsdCBzdHJpbmcgdHlwZSAke219YCl9cmV0dXJuIGN9dmFyIEFYLFBYLE5jZSxsZz1mKCgpPT57cHMoKTtONHQoKTtBWD1zKChhLGUpPT4oe2luZGVudEF0U3RhcnQ6ZT9hLmluZGVudC5sZW5ndGg6YS5pbmRlbnRBdFN0YXJ0LGxpbmVXaWR0aDphLm9wdGlvbnMubGluZVdpZHRoLG1pbkNvbnRlbnRXaWR0aDphLm9wdGlvbnMubWluQ29udGVudFdpZHRofSksImdldEZvbGRPcHRpb25zIiksUFg9cyhhPT4vXiglfC0tLXxcLlwuXC4pL20udGVzdChhKSwiY29udGFpbnNEb2N1bWVudE1hcmtlciIpO3MoVHhhLCJsaW5lTGVuZ3RoT3ZlckxpbWl0Iik7cyhuZywiZG91YmxlUXVvdGVkU3RyaW5nIik7cyhJY2UsInNpbmdsZVF1b3RlZFN0cmluZyIpO3MoWmgsInF1b3RlZFN0cmluZyIpO3RyeXtOY2U9bmV3IFJlZ0V4cChgKF58KD88IQopKQorKD8hCnwkKWAsImciKX1jYXRjaHtOY2U9L1xuKyg/IVxufCQpL2d9cyhFWCwiYmxvY2tTdHJpbmciKTtzKEx4YSwicGxhaW5TdHJpbmciKTtzKCQyLCJzdHJpbmdpZnlTdHJpbmciKX0pO2Z1bmN0aW9uIGNnKGEsZSl7bGV0IHQ9T2JqZWN0LmFzc2lnbih7YmxvY2tRdW90ZTohMCxjb21tZW50U3RyaW5nOkVjZSxkZWZhdWx0S2V5VHlwZTpudWxsLGRlZmF1bHRTdHJpbmdUeXBlOiJQTEFJTiIsZGlyZWN0aXZlczpudWxsLGRvdWJsZVF1b3RlZEFzSlNPTjohMSxkb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGg6NDAsZmFsc2VTdHI6ImZhbHNlIixmbG93Q29sbGVjdGlvblBhZGRpbmc6ITAsaW5kZW50U2VxOiEwLGxpbmVXaWR0aDo4MCxtaW5Db250ZW50V2lkdGg6MjAsbnVsbFN0cjoibnVsbCIsc2ltcGxlS2V5czohMSxzaW5nbGVRdW90ZTpudWxsLHRyYWlsaW5nQ29tbWE6ITEsdHJ1ZVN0cjoidHJ1ZSIsdmVyaWZ5QWxpYXNPcmRlcjohMH0sYS5zY2hlbWEudG9TdHJpbmdPcHRpb25zLGUpLHI7c3dpdGNoKHQuY29sbGVjdGlvblN0eWxlKXtjYXNlImJsb2NrIjpyPSExO2JyZWFrO2Nhc2UiZmxvdyI6cj0hMDticmVhaztkZWZhdWx0OnI9bnVsbH1yZXR1cm57YW5jaG9yczpuZXcgU2V0LGRvYzphLGZsb3dDb2xsZWN0aW9uUGFkZGluZzp0LmZsb3dDb2xsZWN0aW9uUGFkZGluZz8iICI6IiIsaW5kZW50OiIiLGluZGVudFN0ZXA6dHlwZW9mIHQuaW5kZW50PT0ibnVtYmVyIj8iICIucmVwZWF0KHQuaW5kZW50KToiICAiLGluRmxvdzpyLG9wdGlvbnM6dH19ZnVuY3Rpb24gJHhhKGEsZSl7aWYoZS50YWcpe2xldCBpPWEuZmlsdGVyKG89Pm8udGFnPT09ZS50YWcpO2lmKGkubGVuZ3RoPjApcmV0dXJuIGkuZmluZChvPT5vLmZvcm1hdD09PWUuZm9ybWF0KT8/aVswXX1sZXQgdCxyO2lmKFZ0KGUpKXtyPWUudmFsdWU7bGV0IGk9YS5maWx0ZXIobz0+by5pZGVudGlmeT8uKHIpKTtpZihpLmxlbmd0aD4xKXtsZXQgbz1pLmZpbHRlcihuPT5uLnRlc3QpO28ubGVuZ3RoPjAmJihpPW8pfXQ9aS5maW5kKG89Pm8uZm9ybWF0PT09ZS5mb3JtYXQpPz9pLmZpbmQobz0+IW8uZm9ybWF0KX1lbHNlIHI9ZSx0PWEuZmluZChpPT5pLm5vZGVDbGFzcyYmciBpbnN0YW5jZW9mIGkubm9kZUNsYXNzKTtpZighdCl7bGV0IGk9cj8uY29uc3RydWN0b3I/Lm5hbWU/PyhyPT09bnVsbD8ibnVsbCI6dHlwZW9mIHIpO3Rocm93IG5ldyBFcnJvcihgVGFnIG5vdCByZXNvbHZlZCBmb3IgJHtpfSB2YWx1ZWApfXJldHVybiB0fWZ1bmN0aW9uIER4YShhLGUse2FuY2hvcnM6dCxkb2M6cn0pe2lmKCFyLmRpcmVjdGl2ZXMpcmV0dXJuIiI7bGV0IGk9W10sbz0oVnQoYSl8fExhKGEpKSYmYS5hbmNob3I7byYmdGcobykmJih0LmFkZChvKSxpLnB1c2goYCYke299YCkpO2xldCBuPWEudGFnPz8oZS5kZWZhdWx0P251bGw6ZS50YWcpO3JldHVybiBuJiZpLnB1c2goci5kaXJlY3RpdmVzLnRhZ1N0cmluZyhuKSksaS5qb2luKCIgIil9ZnVuY3Rpb24gRDIoYSxlLHQscil7aWYocmEoYSkpcmV0dXJuIGEudG9TdHJpbmcoZSx0LHIpO2lmKFRvKGEpKXtpZihlLmRvYy5kaXJlY3RpdmVzKXJldHVybiBhLnRvU3RyaW5nKGUpO2lmKGUucmVzb2x2ZWRBbGlhc2VzPy5oYXMoYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHN0cmluZ2lmeSBjaXJjdWxhciBzdHJ1Y3R1cmUgd2l0aG91dCBhbGlhcyBub2RlcyIpO2UucmVzb2x2ZWRBbGlhc2VzP2UucmVzb2x2ZWRBbGlhc2VzLmFkZChhKTplLnJlc29sdmVkQWxpYXNlcz1uZXcgU2V0KFthXSksYT1hLnJlc29sdmUoZS5kb2MpfWxldCBpLG89ZGEoYSk/YTplLmRvYy5jcmVhdGVOb2RlKGEse29uVGFnT2JqOnMoZD0+aT1kLCJvblRhZ09iaiIpfSk7aT8/KGk9JHhhKGUuZG9jLnNjaGVtYS50YWdzLG8pKTtsZXQgbj1EeGEobyxpLGUpO24ubGVuZ3RoPjAmJihlLmluZGVudEF0U3RhcnQ9KGUuaW5kZW50QXRTdGFydD8/MCkrbi5sZW5ndGgrMSk7bGV0IGw9dHlwZW9mIGkuc3RyaW5naWZ5PT0iZnVuY3Rpb24iP2kuc3RyaW5naWZ5KG8sZSx0LHIpOlZ0KG8pPyQyKG8sZSx0LHIpOm8udG9TdHJpbmcoZSx0LHIpO3JldHVybiBuP1Z0KG8pfHxsWzBdPT09InsifHxsWzBdPT09IlsiP2Ake259ICR7bH1gOmAke259CiR7ZS5pbmRlbnR9JHtsfWA6bH12YXIgZGc9ZigoKT0+e19YKCk7JGEoKTtpZygpO2xnKCk7cyhjZywiY3JlYXRlU3RyaW5naWZ5Q29udGV4dCIpO3MoJHhhLCJnZXRUYWdPYmplY3QiKTtzKER4YSwic3RyaW5naWZ5UHJvcHMiKTtzKEQyLCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIFJjZSh7a2V5OmEsdmFsdWU6ZX0sdCxyLGkpe2xldHthbGxOdWxsVmFsdWVzOm8sZG9jOm4saW5kZW50OmwsaW5kZW50U3RlcDpkLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6YyxpbmRlbnRTZXE6cCxzaW1wbGVLZXlzOnV9fT10LG09ZGEoYSkmJmEuY29tbWVudHx8bnVsbDtpZih1KXtpZihtKXRocm93IG5ldyBFcnJvcigiV2l0aCBzaW1wbGUga2V5cywga2V5IG5vZGVzIGNhbm5vdCBoYXZlIGNvbW1lbnRzIik7aWYoTGEoYSl8fCFkYShhKSYmdHlwZW9mIGE9PSJvYmplY3QiKXtsZXQgTz0iV2l0aCBzaW1wbGUga2V5cywgY29sbGVjdGlvbiBjYW5ub3QgYmUgdXNlZCBhcyBhIGtleSB2YWx1ZSI7dGhyb3cgbmV3IEVycm9yKE8pfX1sZXQgdj0hdSYmKCFhfHxtJiZlPT1udWxsJiYhdC5pbkZsb3d8fExhKGEpfHwoVnQoYSk/YS50eXBlPT09aHQuQkxPQ0tfRk9MREVEfHxhLnR5cGU9PT1odC5CTE9DS19MSVRFUkFMOnR5cGVvZiBhPT0ib2JqZWN0IikpO3Q9T2JqZWN0LmFzc2lnbih7fSx0LHthbGxOdWxsVmFsdWVzOiExLGltcGxpY2l0S2V5OiF2JiYodXx8IW8pLGluZGVudDpsK2R9KTtsZXQgeD0hMSxiPSExLGc9RDIoYSx0LCgpPT54PSEwLCgpPT5iPSEwKTtpZighdiYmIXQuaW5GbG93JiZnLmxlbmd0aD4xMDI0KXtpZih1KXRocm93IG5ldyBFcnJvcigiV2l0aCBzaW1wbGUga2V5cywgc2luZ2xlIGxpbmUgc2NhbGFyIG11c3Qgbm90IHNwYW4gbW9yZSB0aGFuIDEwMjQgY2hhcmFjdGVycyIpO3Y9ITB9aWYodC5pbkZsb3cpe2lmKG98fGU9PW51bGwpcmV0dXJuIHgmJnImJnIoKSxnPT09IiI/Ij8iOnY/YD8gJHtnfWA6Z31lbHNlIGlmKG8mJiF1fHxlPT1udWxsJiZ2KXJldHVybiBnPWA/ICR7Z31gLG0mJiF4P2crPWgxKGcsdC5pbmRlbnQsYyhtKSk6YiYmaSYmaSgpLGc7eCYmKG09bnVsbCksdj8obSYmKGcrPWgxKGcsdC5pbmRlbnQsYyhtKSkpLGc9YD8gJHtnfQoke2x9OmApOihnPWAke2d9OmAsbSYmKGcrPWgxKGcsdC5pbmRlbnQsYyhtKSkpKTtsZXQgeSxrLEM7ZGEoZSk/KHk9ISFlLnNwYWNlQmVmb3JlLGs9ZS5jb21tZW50QmVmb3JlLEM9ZS5jb21tZW50KTooeT0hMSxrPW51bGwsQz1udWxsLGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKGU9bi5jcmVhdGVOb2RlKGUpKSksdC5pbXBsaWNpdEtleT0hMSwhdiYmIW0mJlZ0KGUpJiYodC5pbmRlbnRBdFN0YXJ0PWcubGVuZ3RoKzEpLGI9ITEsIXAmJmQubGVuZ3RoPj0yJiYhdC5pbkZsb3cmJiF2JiZEbyhlKSYmIWUuZmxvdyYmIWUudGFnJiYhZS5hbmNob3ImJih0LmluZGVudD10LmluZGVudC5zdWJzdHJpbmcoMikpO2xldCBOPSExLF89RDIoZSx0LCgpPT5OPSEwLCgpPT5iPSEwKSx6PSIgIjtpZihtfHx5fHxrKXtpZih6PXk/YApgOiIiLGspe2xldCBPPWMoayk7eis9YAoke0tvKE8sdC5pbmRlbnQpfWB9Xz09PSIiJiYhdC5pbkZsb3c/ej09PWAKYCYmQyYmKHo9YAoKYCk6eis9YAoke3QuaW5kZW50fWB9ZWxzZSBpZighdiYmTGEoZSkpe2xldCBPPV9bMF0sVD1fLmluZGV4T2YoYApgKSxQPVQhPT0tMSxCPXQuaW5GbG93Pz9lLmZsb3c/P2UuaXRlbXMubGVuZ3RoPT09MDtpZihQfHwhQil7bGV0IE09ITE7aWYoUCYmKE89PT0iJiJ8fE89PT0iISIpKXtsZXQgUz1fLmluZGV4T2YoIiAiKTtPPT09IiYiJiZTIT09LTEmJlM8VCYmX1tTKzFdPT09IiEiJiYoUz1fLmluZGV4T2YoIiAiLFMrMSkpLChTPT09LTF8fFQ8UykmJihNPSEwKX1NfHwoej1gCiR7dC5pbmRlbnR9YCl9fWVsc2UoXz09PSIifHxfWzBdPT09YApgKSYmKHo9IiIpO3JldHVybiBnKz16K18sdC5pbkZsb3c/TiYmciYmcigpOkMmJiFOP2crPWgxKGcsdC5pbmRlbnQsYyhDKSk6YiYmaSYmaSgpLGd9dmFyIFI0dD1mKCgpPT57JGEoKTtwcygpO2RnKCk7aWcoKTtzKFJjZSwic3RyaW5naWZ5UGFpciIpfSk7ZnVuY3Rpb24gQXhhKGEsLi4uZSl7YT09PSJkZWJ1ZyImJmNvbnNvbGUubG9nKC4uLmUpfWZ1bmN0aW9uIHVnKGEsZSl7KGE9PT0iZGVidWcifHxhPT09Indhcm4iKSYmY29uc29sZS53YXJuKGUpfXZhciBPY2U9ZigoKT0+e3MoQXhhLCJkZWJ1ZyIpO3ModWcsIndhcm4iKX0pO2Z1bmN0aW9uIE5YKGEsZSx0KXtsZXQgcj1PNHQoYSx0KTtpZihEbyhyKSlmb3IobGV0IGkgb2Ygci5pdGVtcylGY2UoYSxlLGkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShyKSlmb3IobGV0IGkgb2YgcilGY2UoYSxlLGkpO2Vsc2UgRmNlKGEsZSxyKX1mdW5jdGlvbiBGY2UoYSxlLHQpe2xldCByPU80dChhLHQpO2lmKCEkbyhyKSl0aHJvdyBuZXcgRXJyb3IoIk1lcmdlIHNvdXJjZXMgbXVzdCBiZSBtYXBzIG9yIG1hcCBhbGlhc2VzIik7bGV0IGk9ci50b0pTT04obnVsbCxhLE1hcCk7Zm9yKGxldFtvLG5db2YgaSllIGluc3RhbmNlb2YgTWFwP2UuaGFzKG8pfHxlLnNldChvLG4pOmUgaW5zdGFuY2VvZiBTZXQ/ZS5hZGQobyk6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbyl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8se3ZhbHVlOm4sd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gZX1mdW5jdGlvbiBPNHQoYSxlKXtyZXR1cm4gYSYmVG8oZSk/ZS5yZXNvbHZlKGEuZG9jLGEpOmV9dmFyIElYLHpuLEJjZSxSWD1mKCgpPT57JGEoKTtwcygpO0lYPSI8PCIsem49e2lkZW50aWZ5OnMoYT0+YT09PUlYfHx0eXBlb2YgYT09InN5bWJvbCImJmEuZGVzY3JpcHRpb249PT1JWCwiaWRlbnRpZnkiKSxkZWZhdWx0OiJrZXkiLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiLHRlc3Q6L148PCQvLHJlc29sdmU6cygoKT0+T2JqZWN0LmFzc2lnbihuZXcgaHQoU3ltYm9sKElYKSkse2FkZFRvSlNNYXA6Tlh9KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpzKCgpPT5JWCwic3RyaW5naWZ5Iil9LEJjZT1zKChhLGUpPT4oem4uaWRlbnRpZnkoZSl8fFZ0KGUpJiYoIWUudHlwZXx8ZS50eXBlPT09aHQuUExBSU4pJiZ6bi5pZGVudGlmeShlLnZhbHVlKSkmJmE/LmRvYy5zY2hlbWEudGFncy5zb21lKHQ9PnQudGFnPT09em4udGFnJiZ0LmRlZmF1bHQpLCJpc01lcmdlS2V5Iik7cyhOWCwiYWRkTWVyZ2VUb0pTTWFwIik7cyhGY2UsIm1lcmdlVmFsdWUiKTtzKE80dCwicmVzb2x2ZUFsaWFzVmFsdWUiKX0pO2Z1bmN0aW9uIHBnKGEsZSx7a2V5OnQsdmFsdWU6cn0pe2lmKGRhKHQpJiZ0LmFkZFRvSlNNYXApdC5hZGRUb0pTTWFwKGEsZSxyKTtlbHNlIGlmKEJjZShhLHQpKU5YKGEsZSxyKTtlbHNle2xldCBpPXVzKHQsIiIsYSk7aWYoZSBpbnN0YW5jZW9mIE1hcCllLnNldChpLHVzKHIsaSxhKSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgU2V0KWUuYWRkKGkpO2Vsc2V7bGV0IG89UHhhKHQsaSxhKSxuPXVzKHIsbyxhKTtvIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbyx7dmFsdWU6bix3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOmVbb109bn19cmV0dXJuIGV9ZnVuY3Rpb24gUHhhKGEsZSx0KXtpZihlPT09bnVsbClyZXR1cm4iIjtpZih0eXBlb2YgZSE9Im9iamVjdCIpcmV0dXJuIFN0cmluZyhlKTtpZihkYShhKSYmdD8uZG9jKXtsZXQgcj1jZyh0LmRvYyx7fSk7ci5hbmNob3JzPW5ldyBTZXQ7Zm9yKGxldCBvIG9mIHQuYW5jaG9ycy5rZXlzKCkpci5hbmNob3JzLmFkZChvLmFuY2hvcik7ci5pbkZsb3c9ITAsci5pblN0cmluZ2lmeUtleT0hMDtsZXQgaT1hLnRvU3RyaW5nKHIpO2lmKCF0Lm1hcEtleVdhcm5lZCl7bGV0IG89SlNPTi5zdHJpbmdpZnkoaSk7by5sZW5ndGg+NDAmJihvPW8uc3Vic3RyaW5nKDAsMzYpKycuLi4iJyksdWcodC5kb2Mub3B0aW9ucy5sb2dMZXZlbCxgS2V5cyB3aXRoIGNvbGxlY3Rpb24gdmFsdWVzIHdpbGwgYmUgc3RyaW5naWZpZWQgZHVlIHRvIEpTIE9iamVjdCByZXN0cmljdGlvbnM6ICR7b30uIFNldCBtYXBBc01hcDogdHJ1ZSB0byB1c2Ugb2JqZWN0IGtleXMuYCksdC5tYXBLZXlXYXJuZWQ9ITB9cmV0dXJuIGl9cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfXZhciBIY2U9ZigoKT0+e09jZSgpO1JYKCk7ZGcoKTskYSgpO3owKCk7cyhwZywiYWRkUGFpclRvSlNNYXAiKTtzKFB4YSwic3RyaW5naWZ5S2V5Iil9KTtmdW5jdGlvbiBQMyhhLGUsdCl7bGV0IHI9TDIoYSx2b2lkIDAsdCksaT1MMihlLHZvaWQgMCx0KTtyZXR1cm4gbmV3IHVyKHIsaSl9dmFyIHVyLEMwPWYoKCk9PntzZygpO1I0dCgpO0hjZSgpOyRhKCk7cyhQMywiY3JlYXRlUGFpciIpO3VyPWNsYXNzIGF7c3RhdGlje3ModGhpcywiUGFpciIpfWNvbnN0cnVjdG9yKGUsdD1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxfaSx7dmFsdWU6U1h9KSx0aGlzLmtleT1lLHRoaXMudmFsdWU9dH1jbG9uZShlKXtsZXR7a2V5OnQsdmFsdWU6cn09dGhpcztyZXR1cm4gZGEodCkmJih0PXQuY2xvbmUoZSkpLGRhKHIpJiYocj1yLmNsb25lKGUpKSxuZXcgYSh0LHIpfXRvSlNPTihlLHQpe2xldCByPXQ/Lm1hcEFzTWFwP25ldyBNYXA6e307cmV0dXJuIHBnKHQscix0aGlzKX10b1N0cmluZyhlLHQscil7cmV0dXJuIGU/LmRvYz9SY2UodGhpcyxlLHQscik6SlNPTi5zdHJpbmdpZnkodGhpcyl9fX0pO2Z1bmN0aW9uIGZnKGEsZSx0KXtyZXR1cm4oZS5pbkZsb3c/P2EuZmxvdz9JeGE6RXhhKShhLGUsdCl9ZnVuY3Rpb24gRXhhKHtjb21tZW50OmEsaXRlbXM6ZX0sdCx7YmxvY2tJdGVtUHJlZml4OnIsZmxvd0NoYXJzOmksaXRlbUluZGVudDpvLG9uQ2hvbXBLZWVwOm4sb25Db21tZW50Omx9KXtsZXR7aW5kZW50OmQsb3B0aW9uczp7Y29tbWVudFN0cmluZzpjfX09dCxwPU9iamVjdC5hc3NpZ24oe30sdCx7aW5kZW50Om8sdHlwZTpudWxsfSksdT0hMSxtPVtdO2ZvcihsZXQgeD0wO3g8ZS5sZW5ndGg7Kyt4KXtsZXQgYj1lW3hdLGc9bnVsbDtpZihkYShiKSkhdSYmYi5zcGFjZUJlZm9yZSYmbS5wdXNoKCIiKSxPWCh0LG0sYi5jb21tZW50QmVmb3JlLHUpLGIuY29tbWVudCYmKGc9Yi5jb21tZW50KTtlbHNlIGlmKHJhKGIpKXtsZXQgaz1kYShiLmtleSk/Yi5rZXk6bnVsbDtrJiYoIXUmJmsuc3BhY2VCZWZvcmUmJm0ucHVzaCgiIiksT1godCxtLGsuY29tbWVudEJlZm9yZSx1KSl9dT0hMTtsZXQgeT1EMihiLHAsKCk9Pmc9bnVsbCwoKT0+dT0hMCk7ZyYmKHkrPWgxKHksbyxjKGcpKSksdSYmZyYmKHU9ITEpLG0ucHVzaChyK3kpfWxldCB2O2lmKG0ubGVuZ3RoPT09MCl2PWkuc3RhcnQraS5lbmQ7ZWxzZXt2PW1bMF07Zm9yKGxldCB4PTE7eDxtLmxlbmd0aDsrK3gpe2xldCBiPW1beF07dis9Yj9gCiR7ZH0ke2J9YDpgCmB9fXJldHVybiBhPyh2Kz1gCmArS28oYyhhKSxkKSxsJiZsKCkpOnUmJm4mJm4oKSx2fWZ1bmN0aW9uIEl4YSh7aXRlbXM6YX0sZSx7Zmxvd0NoYXJzOnQsaXRlbUluZGVudDpyfSl7bGV0e2luZGVudDppLGluZGVudFN0ZXA6byxmbG93Q29sbGVjdGlvblBhZGRpbmc6bixvcHRpb25zOntjb21tZW50U3RyaW5nOmx9fT1lO3IrPW87bGV0IGQ9T2JqZWN0LmFzc2lnbih7fSxlLHtpbmRlbnQ6cixpbkZsb3c6ITAsdHlwZTpudWxsfSksYz0hMSxwPTAsdT1bXTtmb3IobGV0IHg9MDt4PGEubGVuZ3RoOysreCl7bGV0IGI9YVt4XSxnPW51bGw7aWYoZGEoYikpYi5zcGFjZUJlZm9yZSYmdS5wdXNoKCIiKSxPWChlLHUsYi5jb21tZW50QmVmb3JlLCExKSxiLmNvbW1lbnQmJihnPWIuY29tbWVudCk7ZWxzZSBpZihyYShiKSl7bGV0IGs9ZGEoYi5rZXkpP2Iua2V5Om51bGw7ayYmKGsuc3BhY2VCZWZvcmUmJnUucHVzaCgiIiksT1goZSx1LGsuY29tbWVudEJlZm9yZSwhMSksay5jb21tZW50JiYoYz0hMCkpO2xldCBDPWRhKGIudmFsdWUpP2IudmFsdWU6bnVsbDtDPyhDLmNvbW1lbnQmJihnPUMuY29tbWVudCksQy5jb21tZW50QmVmb3JlJiYoYz0hMCkpOmIudmFsdWU9PW51bGwmJms/LmNvbW1lbnQmJihnPWsuY29tbWVudCl9ZyYmKGM9ITApO2xldCB5PUQyKGIsZCwoKT0+Zz1udWxsKTtjfHwoYz11Lmxlbmd0aD5wfHx5LmluY2x1ZGVzKGAKYCkpLHg8YS5sZW5ndGgtMT95Kz0iLCI6ZS5vcHRpb25zLnRyYWlsaW5nQ29tbWEmJihlLm9wdGlvbnMubGluZVdpZHRoPjAmJihjfHwoYz11LnJlZHVjZSgoayxDKT0+aytDLmxlbmd0aCsyLDIpKyh5Lmxlbmd0aCsyKT5lLm9wdGlvbnMubGluZVdpZHRoKSksYyYmKHkrPSIsIikpLGcmJih5Kz1oMSh5LHIsbChnKSkpLHUucHVzaCh5KSxwPXUubGVuZ3RofWxldHtzdGFydDptLGVuZDp2fT10O2lmKHUubGVuZ3RoPT09MClyZXR1cm4gbSt2O2lmKCFjKXtsZXQgeD11LnJlZHVjZSgoYixnKT0+YitnLmxlbmd0aCsyLDIpO2M9ZS5vcHRpb25zLmxpbmVXaWR0aD4wJiZ4PmUub3B0aW9ucy5saW5lV2lkdGh9aWYoYyl7bGV0IHg9bTtmb3IobGV0IGIgb2YgdSl4Kz1iP2AKJHtvfSR7aX0ke2J9YDpgCmA7cmV0dXJuYCR7eH0KJHtpfSR7dn1gfWVsc2UgcmV0dXJuYCR7bX0ke259JHt1LmpvaW4oIiAiKX0ke259JHt2fWB9ZnVuY3Rpb24gT1goe2luZGVudDphLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6ZX19LHQscixpKXtpZihyJiZpJiYocj1yLnJlcGxhY2UoL15cbisvLCIiKSkscil7bGV0IG89S28oZShyKSxhKTt0LnB1c2goby50cmltU3RhcnQoKSl9fXZhciBxY2U9ZigoKT0+eyRhKCk7ZGcoKTtpZygpO3MoZmcsInN0cmluZ2lmeUNvbGxlY3Rpb24iKTtzKEV4YSwic3RyaW5naWZ5QmxvY2tDb2xsZWN0aW9uIik7cyhJeGEsInN0cmluZ2lmeUZsb3dDb2xsZWN0aW9uIik7cyhPWCwiYWRkQ29tbWVudEJlZm9yZSIpfSk7ZnVuY3Rpb24gUGwoYSxlKXtsZXQgdD1WdChlKT9lLnZhbHVlOmU7Zm9yKGxldCByIG9mIGEpaWYocmEocikmJihyLmtleT09PWV8fHIua2V5PT09dHx8VnQoci5rZXkpJiZyLmtleS52YWx1ZT09PXQpKXJldHVybiByfXZhciB5cixfMD1mKCgpPT57cWNlKCk7SGNlKCk7JFgoKTskYSgpO0MwKCk7cHMoKTtzKFBsLCJmaW5kUGFpciIpO3lyPWNsYXNzIGV4dGVuZHMgRDN7c3RhdGlje3ModGhpcywiWUFNTE1hcCIpfXN0YXRpYyBnZXQgdGFnTmFtZSgpe3JldHVybiJ0YWc6eWFtbC5vcmcsMjAwMjptYXAifWNvbnN0cnVjdG9yKGUpe3N1cGVyKGtuLGUpLHRoaXMuaXRlbXM9W119c3RhdGljIGZyb20oZSx0LHIpe2xldHtrZWVwVW5kZWZpbmVkOmkscmVwbGFjZXI6b309cixuPW5ldyB0aGlzKGUpLGw9cygoZCxjKT0+e2lmKHR5cGVvZiBvPT0iZnVuY3Rpb24iKWM9by5jYWxsKHQsZCxjKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkobykmJiFvLmluY2x1ZGVzKGQpKXJldHVybjsoYyE9PXZvaWQgMHx8aSkmJm4uaXRlbXMucHVzaChQMyhkLGMscikpfSwiYWRkIik7aWYodCBpbnN0YW5jZW9mIE1hcClmb3IobGV0W2QsY11vZiB0KWwoZCxjKTtlbHNlIGlmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iilmb3IobGV0IGQgb2YgT2JqZWN0LmtleXModCkpbChkLHRbZF0pO3JldHVybiB0eXBlb2YgZS5zb3J0TWFwRW50cmllcz09ImZ1bmN0aW9uIiYmbi5pdGVtcy5zb3J0KGUuc29ydE1hcEVudHJpZXMpLG59YWRkKGUsdCl7bGV0IHI7cmEoZSk/cj1lOiFlfHx0eXBlb2YgZSE9Im9iamVjdCJ8fCEoImtleSJpbiBlKT9yPW5ldyB1cihlLGU/LnZhbHVlKTpyPW5ldyB1cihlLmtleSxlLnZhbHVlKTtsZXQgaT1QbCh0aGlzLml0ZW1zLHIua2V5KSxvPXRoaXMuc2NoZW1hPy5zb3J0TWFwRW50cmllcztpZihpKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYEtleSAke3Iua2V5fSBhbHJlYWR5IHNldGApO1Z0KGkudmFsdWUpJiZyZyhyLnZhbHVlKT9pLnZhbHVlLnZhbHVlPXIudmFsdWU6aS52YWx1ZT1yLnZhbHVlfWVsc2UgaWYobyl7bGV0IG49dGhpcy5pdGVtcy5maW5kSW5kZXgobD0+byhyLGwpPDApO249PT0tMT90aGlzLml0ZW1zLnB1c2gocik6dGhpcy5pdGVtcy5zcGxpY2UobiwwLHIpfWVsc2UgdGhpcy5pdGVtcy5wdXNoKHIpfWRlbGV0ZShlKXtsZXQgdD1QbCh0aGlzLml0ZW1zLGUpO3JldHVybiB0P3RoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZih0KSwxKS5sZW5ndGg+MDohMX1nZXQoZSx0KXtsZXQgaT1QbCh0aGlzLml0ZW1zLGUpPy52YWx1ZTtyZXR1cm4oIXQmJlZ0KGkpP2kudmFsdWU6aSk/P3ZvaWQgMH1oYXMoZSl7cmV0dXJuISFQbCh0aGlzLml0ZW1zLGUpfXNldChlLHQpe3RoaXMuYWRkKG5ldyB1cihlLHQpLCEwKX10b0pTT04oZSx0LHIpe2xldCBpPXI/bmV3IHI6dD8ubWFwQXNNYXA/bmV3IE1hcDp7fTt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShpKTtmb3IobGV0IG8gb2YgdGhpcy5pdGVtcylwZyh0LGksbyk7cmV0dXJuIGl9dG9TdHJpbmcoZSx0LHIpe2lmKCFlKXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtmb3IobGV0IGkgb2YgdGhpcy5pdGVtcylpZighcmEoaSkpdGhyb3cgbmV3IEVycm9yKGBNYXAgaXRlbXMgbXVzdCBhbGwgYmUgcGFpcnM7IGZvdW5kICR7SlNPTi5zdHJpbmdpZnkoaSl9IGluc3RlYWRgKTtyZXR1cm4hZS5hbGxOdWxsVmFsdWVzJiZ0aGlzLmhhc0FsbE51bGxWYWx1ZXMoITEpJiYoZT1PYmplY3QuYXNzaWduKHt9LGUse2FsbE51bGxWYWx1ZXM6ITB9KSksZmcodGhpcyxlLHtibG9ja0l0ZW1QcmVmaXg6IiIsZmxvd0NoYXJzOntzdGFydDoieyIsZW5kOiJ9In0saXRlbUluZGVudDplLmluZGVudHx8IiIsb25DaG9tcEtlZXA6cixvbkNvbW1lbnQ6dH0pfX19KTt2YXIgQ24sWGg9ZigoKT0+eyRhKCk7XzAoKTtDbj17Y29sbGVjdGlvbjoibWFwIixkZWZhdWx0OiEwLG5vZGVDbGFzczp5cix0YWc6InRhZzp5YW1sLm9yZywyMDAyOm1hcCIscmVzb2x2ZShhLGUpe3JldHVybiAkbyhhKXx8ZSgiRXhwZWN0ZWQgYSBtYXBwaW5nIGZvciB0aGlzIHRhZyIpLGF9LGNyZWF0ZU5vZGU6cygoYSxlLHQpPT55ci5mcm9tKGEsZSx0KSwiY3JlYXRlTm9kZSIpfX0pO2Z1bmN0aW9uIEZYKGEpe2xldCBlPVZ0KGEpP2EudmFsdWU6YTtyZXR1cm4gZSYmdHlwZW9mIGU9PSJzdHJpbmciJiYoZT1OdW1iZXIoZSkpLHR5cGVvZiBlPT0ibnVtYmVyIiYmTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49MD9lOm51bGx9dmFyIERzLFQwPWYoKCk9PntzZygpO3FjZSgpOyRYKCk7JGEoKTtwcygpO3owKCk7RHM9Y2xhc3MgZXh0ZW5kcyBEM3tzdGF0aWN7cyh0aGlzLCJZQU1MU2VxIil9c3RhdGljIGdldCB0YWdOYW1lKCl7cmV0dXJuInRhZzp5YW1sLm9yZywyMDAyOnNlcSJ9Y29uc3RydWN0b3IoZSl7c3VwZXIoXzIsZSksdGhpcy5pdGVtcz1bXX1hZGQoZSl7dGhpcy5pdGVtcy5wdXNoKGUpfWRlbGV0ZShlKXtsZXQgdD1GWChlKTtyZXR1cm4gdHlwZW9mIHQhPSJudW1iZXIiPyExOnRoaXMuaXRlbXMuc3BsaWNlKHQsMSkubGVuZ3RoPjB9Z2V0KGUsdCl7bGV0IHI9RlgoZSk7aWYodHlwZW9mIHIhPSJudW1iZXIiKXJldHVybjtsZXQgaT10aGlzLml0ZW1zW3JdO3JldHVybiF0JiZWdChpKT9pLnZhbHVlOml9aGFzKGUpe2xldCB0PUZYKGUpO3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJnQ8dGhpcy5pdGVtcy5sZW5ndGh9c2V0KGUsdCl7bGV0IHI9RlgoZSk7aWYodHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSB2YWxpZCBpbmRleCwgbm90ICR7ZX0uYCk7bGV0IGk9dGhpcy5pdGVtc1tyXTtWdChpKSYmcmcodCk/aS52YWx1ZT10OnRoaXMuaXRlbXNbcl09dH10b0pTT04oZSx0KXtsZXQgcj1bXTt0Py5vbkNyZWF0ZSYmdC5vbkNyZWF0ZShyKTtsZXQgaT0wO2ZvcihsZXQgbyBvZiB0aGlzLml0ZW1zKXIucHVzaCh1cyhvLFN0cmluZyhpKyspLHQpKTtyZXR1cm4gcn10b1N0cmluZyhlLHQscil7cmV0dXJuIGU/ZmcodGhpcyxlLHtibG9ja0l0ZW1QcmVmaXg6Ii0gIixmbG93Q2hhcnM6e3N0YXJ0OiJbIixlbmQ6Il0ifSxpdGVtSW5kZW50OihlLmluZGVudHx8IiIpKyIgICIsb25DaG9tcEtlZXA6cixvbkNvbW1lbnQ6dH0pOkpTT04uc3RyaW5naWZ5KHRoaXMpfXN0YXRpYyBmcm9tKGUsdCxyKXtsZXR7cmVwbGFjZXI6aX09cixvPW5ldyB0aGlzKGUpO2lmKHQmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpe2xldCBuPTA7Zm9yKGxldCBsIG9mIHQpe2lmKHR5cGVvZiBpPT0iZnVuY3Rpb24iKXtsZXQgZD10IGluc3RhbmNlb2YgU2V0P2w6U3RyaW5nKG4rKyk7bD1pLmNhbGwodCxkLGwpfW8uaXRlbXMucHVzaChMMihsLHZvaWQgMCxyKSl9fXJldHVybiBvfX07cyhGWCwiYXNJdGVtSW5kZXgiKX0pO3ZhciBfbixRaD1mKCgpPT57JGEoKTtUMCgpO19uPXtjb2xsZWN0aW9uOiJzZXEiLGRlZmF1bHQ6ITAsbm9kZUNsYXNzOkRzLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6c2VxIixyZXNvbHZlKGEsZSl7cmV0dXJuIERvKGEpfHxlKCJFeHBlY3RlZCBhIHNlcXVlbmNlIGZvciB0aGlzIHRhZyIpLGF9LGNyZWF0ZU5vZGU6cygoYSxlLHQpPT5Ecy5mcm9tKGEsZSx0KSwiY3JlYXRlTm9kZSIpfX0pO3ZhciBFbCxoZz1mKCgpPT57bGcoKTtFbD17aWRlbnRpZnk6cyhhPT50eXBlb2YgYT09InN0cmluZyIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnN0ciIscmVzb2x2ZTpzKGE9PmEsInJlc29sdmUiKSxzdHJpbmdpZnkoYSxlLHQscil7cmV0dXJuIGU9T2JqZWN0LmFzc2lnbih7YWN0dWFsU3RyaW5nOiEwfSxlKSwkMihhLGUsdCxyKX19fSk7dmFyIEwwLEJYPWYoKCk9PntwcygpO0wwPXtpZGVudGlmeTpzKGE9PmE9PW51bGwsImlkZW50aWZ5IiksY3JlYXRlTm9kZTpzKCgpPT5uZXcgaHQobnVsbCksImNyZWF0ZU5vZGUiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIsdGVzdDovXig/On58W05uXXVsbHxOVUxMKT8kLyxyZXNvbHZlOnMoKCk9Pm5ldyBodChudWxsKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpzKCh7c291cmNlOmF9LGUpPT50eXBlb2YgYT09InN0cmluZyImJkwwLnRlc3QudGVzdChhKT9hOmUub3B0aW9ucy5udWxsU3RyLCJzdHJpbmdpZnkiKX19KTt2YXIgSmgsVmNlPWYoKCk9PntwcygpO0poPXtpZGVudGlmeTpzKGE9PnR5cGVvZiBhPT0iYm9vbGVhbiIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmJvb2wiLHRlc3Q6L14oPzpbVHRdcnVlfFRSVUV8W0ZmXWFsc2V8RkFMU0UpJC8scmVzb2x2ZTpzKGE9Pm5ldyBodChhWzBdPT09InQifHxhWzBdPT09IlQiKSwicmVzb2x2ZSIpLHN0cmluZ2lmeSh7c291cmNlOmEsdmFsdWU6ZX0sdCl7aWYoYSYmSmgudGVzdC50ZXN0KGEpKXtsZXQgcj1hWzBdPT09InQifHxhWzBdPT09IlQiO2lmKGU9PT1yKXJldHVybiBhfXJldHVybiBlP3Qub3B0aW9ucy50cnVlU3RyOnQub3B0aW9ucy5mYWxzZVN0cn19fSk7ZnVuY3Rpb24gZWkoe2Zvcm1hdDphLG1pbkZyYWN0aW9uRGlnaXRzOmUsdGFnOnQsdmFsdWU6cn0pe2lmKHR5cGVvZiByPT0iYmlnaW50IilyZXR1cm4gU3RyaW5nKHIpO2xldCBpPXR5cGVvZiByPT0ibnVtYmVyIj9yOk51bWJlcihyKTtpZighaXNGaW5pdGUoaSkpcmV0dXJuIGlzTmFOKGkpPyIubmFuIjppPDA/Ii0uaW5mIjoiLmluZiI7bGV0IG89T2JqZWN0LmlzKHIsLTApPyItMCI6SlNPTi5zdHJpbmdpZnkocik7aWYoIWEmJmUmJighdHx8dD09PSJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIpJiYvXi0/XGQvLnRlc3QobykmJiFvLmluY2x1ZGVzKCJlIikpe2xldCBuPW8uaW5kZXhPZigiLiIpO248MCYmKG49by5sZW5ndGgsbys9Ii4iKTtsZXQgbD1lLShvLmxlbmd0aC1uLTEpO2Zvcig7bC0tID4wOylvKz0iMCJ9cmV0dXJuIG99dmFyIGU4PWYoKCk9PntzKGVpLCJzdHJpbmdpZnlOdW1iZXIiKX0pO3ZhciBtZyxnZyxiZyxqY2U9ZigoKT0+e3BzKCk7ZTgoKTttZz17aWRlbnRpZnk6cyhhPT50eXBlb2YgYT09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eKD86Wy0rXT9cLig/OmluZnxJbmZ8SU5GKXxcLm5hbnxcLk5hTnxcLk5BTikkLyxyZXNvbHZlOnMoYT0+YS5zbGljZSgtMykudG9Mb3dlckNhc2UoKT09PSJuYW4iP05hTjphWzBdPT09Ii0iP051bWJlci5ORUdBVElWRV9JTkZJTklUWTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksInJlc29sdmUiKSxzdHJpbmdpZnk6ZWl9LGdnPXtpZGVudGlmeTpzKGE9PnR5cGVvZiBhPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLGZvcm1hdDoiRVhQIix0ZXN0Oi9eWy0rXT8oPzpcLlswLTldK3xbMC05XSsoPzpcLlswLTldKik/KVtlRV1bLStdP1swLTldKyQvLHJlc29sdmU6cyhhPT5wYXJzZUZsb2F0KGEpLCJyZXNvbHZlIiksc3RyaW5naWZ5KGEpe2xldCBlPU51bWJlcihhLnZhbHVlKTtyZXR1cm4gaXNGaW5pdGUoZSk/ZS50b0V4cG9uZW50aWFsKCk6ZWkoYSl9fSxiZz17aWRlbnRpZnk6cyhhPT50eXBlb2YgYT09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix0ZXN0Oi9eWy0rXT8oPzpcLlswLTldK3xbMC05XStcLlswLTldKikkLyxyZXNvbHZlKGEpe2xldCBlPW5ldyBodChwYXJzZUZsb2F0KGEpKSx0PWEuaW5kZXhPZigiLiIpO3JldHVybiB0IT09LTEmJmFbYS5sZW5ndGgtMV09PT0iMCImJihlLm1pbkZyYWN0aW9uRGlnaXRzPWEubGVuZ3RoLXQtMSksZX0sc3RyaW5naWZ5OmVpfX0pO2Z1bmN0aW9uIEY0dChhLGUsdCl7bGV0e3ZhbHVlOnJ9PWE7cmV0dXJuIEhYKHIpJiZyPj0wP3Qrci50b1N0cmluZyhlKTplaShhKX12YXIgSFgsVWNlLHZnLHhnLHlnLFdjZT1mKCgpPT57ZTgoKTtIWD1zKGE9PnR5cGVvZiBhPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihhKSwiaW50SWRlbnRpZnkiKSxVY2U9cygoYSxlLHQse2ludEFzQmlnSW50OnJ9KT0+cj9CaWdJbnQoYSk6cGFyc2VJbnQoYS5zdWJzdHJpbmcoZSksdCksImludFJlc29sdmUiKTtzKEY0dCwiaW50U3RyaW5naWZ5Iik7dmc9e2lkZW50aWZ5OnMoYT0+SFgoYSkmJmE+PTAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJPQ1QiLHRlc3Q6L14wb1swLTddKyQvLHJlc29sdmU6cygoYSxlLHQpPT5VY2UoYSwyLDgsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6cyhhPT5GNHQoYSw4LCIwbyIpLCJzdHJpbmdpZnkiKX0seGc9e2lkZW50aWZ5OkhYLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHRlc3Q6L15bLStdP1swLTldKyQvLHJlc29sdmU6cygoYSxlLHQpPT5VY2UoYSwwLDEwLHQpLCJyZXNvbHZlIiksc3RyaW5naWZ5OmVpfSx5Zz17aWRlbnRpZnk6cyhhPT5IWChhKSYmYT49MCwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6IkhFWCIsdGVzdDovXjB4WzAtOWEtZkEtRl0rJC8scmVzb2x2ZTpzKChhLGUsdCk9PlVjZShhLDIsMTYsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6cyhhPT5GNHQoYSwxNiwiMHgiKSwic3RyaW5naWZ5Iil9fSk7dmFyIEdjZSxCNHQ9ZigoKT0+e1hoKCk7QlgoKTtRaCgpO2hnKCk7VmNlKCk7amNlKCk7V2NlKCk7R2NlPVtDbixfbixFbCxMMCxKaCx2Zyx4Zyx5ZyxtZyxnZyxiZ119KTtmdW5jdGlvbiBINHQoYSl7cmV0dXJuIHR5cGVvZiBhPT0iYmlnaW50Inx8TnVtYmVyLmlzSW50ZWdlcihhKX12YXIgcVgsTnhhLFJ4YSxZY2UscTR0PWYoKCk9PntwcygpO1hoKCk7UWgoKTtzKEg0dCwiaW50SWRlbnRpZnkiKTtxWD1zKCh7dmFsdWU6YX0pPT5KU09OLnN0cmluZ2lmeShhKSwic3RyaW5naWZ5SlNPTiIpLE54YT1be2lkZW50aWZ5OnMoYT0+dHlwZW9mIGE9PSJzdHJpbmciLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLHJlc29sdmU6cyhhPT5hLCJyZXNvbHZlIiksc3RyaW5naWZ5OnFYfSx7aWRlbnRpZnk6cyhhPT5hPT1udWxsLCJpZGVudGlmeSIpLGNyZWF0ZU5vZGU6cygoKT0+bmV3IGh0KG51bGwpLCJjcmVhdGVOb2RlIiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHRlc3Q6L15udWxsJC8scmVzb2x2ZTpzKCgpPT5udWxsLCJyZXNvbHZlIiksc3RyaW5naWZ5OnFYfSx7aWRlbnRpZnk6cyhhPT50eXBlb2YgYT09ImJvb2xlYW4iLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9edHJ1ZSR8XmZhbHNlJC8scmVzb2x2ZTpzKGE9PmE9PT0idHJ1ZSIsInJlc29sdmUiKSxzdHJpbmdpZnk6cVh9LHtpZGVudGlmeTpINHQsZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsdGVzdDovXi0/KD86MHxbMS05XVswLTldKikkLyxyZXNvbHZlOnMoKGEsZSx7aW50QXNCaWdJbnQ6dH0pPT50P0JpZ0ludChhKTpwYXJzZUludChhLDEwKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpzKCh7dmFsdWU6YX0pPT5INHQoYSk/YS50b1N0cmluZygpOkpTT04uc3RyaW5naWZ5KGEpLCJzdHJpbmdpZnkiKX0se2lkZW50aWZ5OnMoYT0+dHlwZW9mIGE9PSJudW1iZXIiLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsdGVzdDovXi0/KD86MHxbMS05XVswLTldKikoPzpcLlswLTldKik/KD86W2VFXVstK10/WzAtOV0rKT8kLyxyZXNvbHZlOnMoYT0+cGFyc2VGbG9hdChhKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpxWH1dLFJ4YT17ZGVmYXVsdDohMCx0YWc6IiIsdGVzdDovXi8scmVzb2x2ZShhLGUpe3JldHVybiBlKGBVbnJlc29sdmVkIHBsYWluIHNjYWxhciAke0pTT04uc3RyaW5naWZ5KGEpfWApLGF9fSxZY2U9W0NuLF9uXS5jb25jYXQoTnhhLFJ4YSl9KTt2YXIgdDgsS2NlPWYoKCk9PntwcygpO2xnKCk7dDg9e2lkZW50aWZ5OnMoYT0+YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksImlkZW50aWZ5IiksZGVmYXVsdDohMSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSIscmVzb2x2ZShhLGUpe2lmKHR5cGVvZiBhdG9iPT0iZnVuY3Rpb24iKXtsZXQgdD1hdG9iKGEucmVwbGFjZSgvW1xuXHJdL2csIiIpKSxyPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IGk9MDtpPHQubGVuZ3RoOysraSlyW2ldPXQuY2hhckNvZGVBdChpKTtyZXR1cm4gcn1lbHNlIHJldHVybiBlKCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBhdG9iIGlzIHJlcXVpcmVkIiksYX0sc3RyaW5naWZ5KHtjb21tZW50OmEsdHlwZTplLHZhbHVlOnR9LHIsaSxvKXtpZighdClyZXR1cm4iIjtsZXQgbj10LGw7aWYodHlwZW9mIGJ0b2E9PSJmdW5jdGlvbiIpe2xldCBkPSIiO2ZvcihsZXQgYz0wO2M8bi5sZW5ndGg7KytjKWQrPVN0cmluZy5mcm9tQ2hhckNvZGUobltjXSk7bD1idG9hKGQpfWVsc2UgdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBidG9hIGlzIHJlcXVpcmVkIik7aWYoZT8/KGU9aHQuQkxPQ0tfTElURVJBTCksZSE9PWh0LlFVT1RFX0RPVUJMRSl7bGV0IGQ9TWF0aC5tYXgoci5vcHRpb25zLmxpbmVXaWR0aC1yLmluZGVudC5sZW5ndGgsci5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aCksYz1NYXRoLmNlaWwobC5sZW5ndGgvZCkscD1uZXcgQXJyYXkoYyk7Zm9yKGxldCB1PTAsbT0wO3U8YzsrK3UsbSs9ZClwW3VdPWwuc3Vic3RyKG0sZCk7bD1wLmpvaW4oZT09PWh0LkJMT0NLX0xJVEVSQUw/YApgOiIgIil9cmV0dXJuICQyKHtjb21tZW50OmEsdHlwZTplLHZhbHVlOmx9LHIsaSxvKX19fSk7ZnVuY3Rpb24gVlgoYSxlKXtpZihEbyhhKSlmb3IobGV0IHQ9MDt0PGEuaXRlbXMubGVuZ3RoOysrdCl7bGV0IHI9YS5pdGVtc1t0XTtpZighcmEocikpe2lmKCRvKHIpKXtyLml0ZW1zLmxlbmd0aD4xJiZlKCJFYWNoIHBhaXIgbXVzdCBoYXZlIGl0cyBvd24gc2VxdWVuY2UgaW5kaWNhdG9yIik7bGV0IGk9ci5pdGVtc1swXXx8bmV3IHVyKG5ldyBodChudWxsKSk7aWYoci5jb21tZW50QmVmb3JlJiYoaS5rZXkuY29tbWVudEJlZm9yZT1pLmtleS5jb21tZW50QmVmb3JlP2Ake3IuY29tbWVudEJlZm9yZX0KJHtpLmtleS5jb21tZW50QmVmb3JlfWA6ci5jb21tZW50QmVmb3JlKSxyLmNvbW1lbnQpe2xldCBvPWkudmFsdWU/P2kua2V5O28uY29tbWVudD1vLmNvbW1lbnQ/YCR7ci5jb21tZW50fQoke28uY29tbWVudH1gOnIuY29tbWVudH1yPWl9YS5pdGVtc1t0XT1yYShyKT9yOm5ldyB1cihyKX19ZWxzZSBlKCJFeHBlY3RlZCBhIHNlcXVlbmNlIGZvciB0aGlzIHRhZyIpO3JldHVybiBhfWZ1bmN0aW9uIGpYKGEsZSx0KXtsZXR7cmVwbGFjZXI6cn09dCxpPW5ldyBEcyhhKTtpLnRhZz0idGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiO2xldCBvPTA7aWYoZSYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlmb3IobGV0IG4gb2YgZSl7dHlwZW9mIHI9PSJmdW5jdGlvbiImJihuPXIuY2FsbChlLFN0cmluZyhvKyspLG4pKTtsZXQgbCxkO2lmKEFycmF5LmlzQXJyYXkobikpaWYobi5sZW5ndGg9PT0yKWw9blswXSxkPW5bMV07ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBba2V5LCB2YWx1ZV0gdHVwbGU6ICR7bn1gKTtlbHNlIGlmKG4mJm4gaW5zdGFuY2VvZiBPYmplY3Qpe2xldCBjPU9iamVjdC5rZXlzKG4pO2lmKGMubGVuZ3RoPT09MSlsPWNbMF0sZD1uW2xdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgdHVwbGUgd2l0aCBvbmUga2V5LCBub3QgJHtjLmxlbmd0aH0ga2V5c2ApfWVsc2UgbD1uO2kuaXRlbXMucHVzaChQMyhsLGQsdCkpfXJldHVybiBpfXZhciBhOCxVWD1mKCgpPT57JGEoKTtDMCgpO3BzKCk7VDAoKTtzKFZYLCJyZXNvbHZlUGFpcnMiKTtzKGpYLCJjcmVhdGVQYWlycyIpO2E4PXtjb2xsZWN0aW9uOiJzZXEiLGRlZmF1bHQ6ITEsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyIscmVzb2x2ZTpWWCxjcmVhdGVOb2RlOmpYfX0pO3ZhciBFMyxyOCxaY2U9ZigoKT0+eyRhKCk7ejAoKTtfMCgpO1QwKCk7VVgoKTtFMz1jbGFzcyBhIGV4dGVuZHMgRHN7c3RhdGlje3ModGhpcywiWUFNTE9NYXAiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5hZGQ9eXIucHJvdG90eXBlLmFkZC5iaW5kKHRoaXMpLHRoaXMuZGVsZXRlPXlyLnByb3RvdHlwZS5kZWxldGUuYmluZCh0aGlzKSx0aGlzLmdldD15ci5wcm90b3R5cGUuZ2V0LmJpbmQodGhpcyksdGhpcy5oYXM9eXIucHJvdG90eXBlLmhhcy5iaW5kKHRoaXMpLHRoaXMuc2V0PXlyLnByb3RvdHlwZS5zZXQuYmluZCh0aGlzKSx0aGlzLnRhZz1hLnRhZ310b0pTT04oZSx0KXtpZighdClyZXR1cm4gc3VwZXIudG9KU09OKGUpO2xldCByPW5ldyBNYXA7dD8ub25DcmVhdGUmJnQub25DcmVhdGUocik7Zm9yKGxldCBpIG9mIHRoaXMuaXRlbXMpe2xldCBvLG47aWYocmEoaSk/KG89dXMoaS5rZXksIiIsdCksbj11cyhpLnZhbHVlLG8sdCkpOm89dXMoaSwiIix0KSxyLmhhcyhvKSl0aHJvdyBuZXcgRXJyb3IoIk9yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzIik7ci5zZXQobyxuKX1yZXR1cm4gcn1zdGF0aWMgZnJvbShlLHQscil7bGV0IGk9algoZSx0LHIpLG89bmV3IHRoaXM7cmV0dXJuIG8uaXRlbXM9aS5pdGVtcyxvfX07RTMudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIjtyOD17Y29sbGVjdGlvbjoic2VxIixpZGVudGlmeTpzKGE9PmEgaW5zdGFuY2VvZiBNYXAsImlkZW50aWZ5Iiksbm9kZUNsYXNzOkUzLGRlZmF1bHQ6ITEsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIixyZXNvbHZlKGEsZSl7bGV0IHQ9VlgoYSxlKSxyPVtdO2ZvcihsZXR7a2V5Oml9b2YgdC5pdGVtcylWdChpKSYmKHIuaW5jbHVkZXMoaS52YWx1ZSk/ZShgT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXM6ICR7aS52YWx1ZX1gKTpyLnB1c2goaS52YWx1ZSkpO3JldHVybiBPYmplY3QuYXNzaWduKG5ldyBFMyx0KX0sY3JlYXRlTm9kZTpzKChhLGUsdCk9PkUzLmZyb20oYSxlLHQpLCJjcmVhdGVOb2RlIil9fSk7ZnVuY3Rpb24gVjR0KHt2YWx1ZTphLHNvdXJjZTplfSx0KXtyZXR1cm4gZSYmKGE/V1g6R1gpLnRlc3QudGVzdChlKT9lOmE/dC5vcHRpb25zLnRydWVTdHI6dC5vcHRpb25zLmZhbHNlU3RyfXZhciBXWCxHWCxqNHQ9ZigoKT0+e3BzKCk7cyhWNHQsImJvb2xTdHJpbmdpZnkiKTtXWD17aWRlbnRpZnk6cyhhPT5hPT09ITAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmJvb2wiLHRlc3Q6L14oPzpZfHl8W1l5XWVzfFlFU3xbVHRdcnVlfFRSVUV8W09vXW58T04pJC8scmVzb2x2ZTpzKCgpPT5uZXcgaHQoITApLCJyZXNvbHZlIiksc3RyaW5naWZ5OlY0dH0sR1g9e2lkZW50aWZ5OnMoYT0+YT09PSExLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9eKD86TnxufFtObl1vfE5PfFtGZl1hbHNlfEZBTFNFfFtPb11mZnxPRkYpJC8scmVzb2x2ZTpzKCgpPT5uZXcgaHQoITEpLCJyZXNvbHZlIiksc3RyaW5naWZ5OlY0dH19KTt2YXIgWGNlLFFjZSxKY2UsVTR0PWYoKCk9PntwcygpO2U4KCk7WGNlPXtpZGVudGlmeTpzKGE9PnR5cGVvZiBhPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L14oPzpbLStdP1wuKD86aW5mfEluZnxJTkYpfFwubmFufFwuTmFOfFwuTkFOKSQvLHJlc29sdmU6cyhhPT5hLnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09Im5hbiI/TmFOOmFbMF09PT0iLSI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSwicmVzb2x2ZSIpLHN0cmluZ2lmeTplaX0sUWNlPXtpZGVudGlmeTpzKGE9PnR5cGVvZiBhPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLGZvcm1hdDoiRVhQIix0ZXN0Oi9eWy0rXT8oPzpbMC05XVswLTlfXSopPyg/OlwuWzAtOV9dKik/W2VFXVstK10/WzAtOV0rJC8scmVzb2x2ZTpzKGE9PnBhcnNlRmxvYXQoYS5yZXBsYWNlKC9fL2csIiIpKSwicmVzb2x2ZSIpLHN0cmluZ2lmeShhKXtsZXQgZT1OdW1iZXIoYS52YWx1ZSk7cmV0dXJuIGlzRmluaXRlKGUpP2UudG9FeHBvbmVudGlhbCgpOmVpKGEpfX0sSmNlPXtpZGVudGlmeTpzKGE9PnR5cGVvZiBhPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L15bLStdPyg/OlswLTldWzAtOV9dKik/XC5bMC05X10qJC8scmVzb2x2ZShhKXtsZXQgZT1uZXcgaHQocGFyc2VGbG9hdChhLnJlcGxhY2UoL18vZywiIikpKSx0PWEuaW5kZXhPZigiLiIpO2lmKHQhPT0tMSl7bGV0IHI9YS5zdWJzdHJpbmcodCsxKS5yZXBsYWNlKC9fL2csIiIpO3Jbci5sZW5ndGgtMV09PT0iMCImJihlLm1pbkZyYWN0aW9uRGlnaXRzPXIubGVuZ3RoKX1yZXR1cm4gZX0sc3RyaW5naWZ5OmVpfX0pO2Z1bmN0aW9uIFlYKGEsZSx0LHtpbnRBc0JpZ0ludDpyfSl7bGV0IGk9YVswXTtpZigoaT09PSItInx8aT09PSIrIikmJihlKz0xKSxhPWEuc3Vic3RyaW5nKGUpLnJlcGxhY2UoL18vZywiIikscil7c3dpdGNoKHQpe2Nhc2UgMjphPWAwYiR7YX1gO2JyZWFrO2Nhc2UgODphPWAwbyR7YX1gO2JyZWFrO2Nhc2UgMTY6YT1gMHgke2F9YDticmVha31sZXQgbj1CaWdJbnQoYSk7cmV0dXJuIGk9PT0iLSI/QmlnSW50KC0xKSpuOm59bGV0IG89cGFyc2VJbnQoYSx0KTtyZXR1cm4gaT09PSItIj8tMSpvOm99ZnVuY3Rpb24gZTBlKGEsZSx0KXtsZXR7dmFsdWU6cn09YTtpZih3ZyhyKSl7bGV0IGk9ci50b1N0cmluZyhlKTtyZXR1cm4gcjwwPyItIit0K2kuc3Vic3RyKDEpOnQraX1yZXR1cm4gZWkoYSl9dmFyIHdnLHQwZSxhMGUscjBlLHMwZSxXNHQ9ZigoKT0+e2U4KCk7d2c9cyhhPT50eXBlb2YgYT09ImJpZ2ludCJ8fE51bWJlci5pc0ludGVnZXIoYSksImludElkZW50aWZ5Iik7cyhZWCwiaW50UmVzb2x2ZSIpO3MoZTBlLCJpbnRTdHJpbmdpZnkiKTt0MGU9e2lkZW50aWZ5OndnLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiQklOIix0ZXN0Oi9eWy0rXT8wYlswLTFfXSskLyxyZXNvbHZlOnMoKGEsZSx0KT0+WVgoYSwyLDIsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6cyhhPT5lMGUoYSwyLCIwYiIpLCJzdHJpbmdpZnkiKX0sYTBlPXtpZGVudGlmeTp3ZyxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6Ik9DVCIsdGVzdDovXlstK10/MFswLTdfXSskLyxyZXNvbHZlOnMoKGEsZSx0KT0+WVgoYSwxLDgsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6cyhhPT5lMGUoYSw4LCIwIiksInN0cmluZ2lmeSIpfSxyMGU9e2lkZW50aWZ5OndnLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHRlc3Q6L15bLStdP1swLTldWzAtOV9dKiQvLHJlc29sdmU6cygoYSxlLHQpPT5ZWChhLDAsMTAsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6ZWl9LHMwZT17aWRlbnRpZnk6d2csZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJIRVgiLHRlc3Q6L15bLStdPzB4WzAtOWEtZkEtRl9dKyQvLHJlc29sdmU6cygoYSxlLHQpPT5ZWChhLDIsMTYsdCksInJlc29sdmUiKSxzdHJpbmdpZnk6cyhhPT5lMGUoYSwxNiwiMHgiKSwic3RyaW5naWZ5Iil9fSk7dmFyIEkzLHM4LGkwZT1mKCgpPT57JGEoKTtDMCgpO18wKCk7STM9Y2xhc3MgYSBleHRlbmRzIHlye3N0YXRpY3tzKHRoaXMsIllBTUxTZXQiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnRhZz1hLnRhZ31hZGQoZSl7bGV0IHQ7cmEoZSk/dD1lOmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmImtleSJpbiBlJiYidmFsdWUiaW4gZSYmZS52YWx1ZT09PW51bGw/dD1uZXcgdXIoZS5rZXksbnVsbCk6dD1uZXcgdXIoZSxudWxsKSxQbCh0aGlzLml0ZW1zLHQua2V5KXx8dGhpcy5pdGVtcy5wdXNoKHQpfWdldChlLHQpe2xldCByPVBsKHRoaXMuaXRlbXMsZSk7cmV0dXJuIXQmJnJhKHIpP1Z0KHIua2V5KT9yLmtleS52YWx1ZTpyLmtleTpyfXNldChlLHQpe2lmKHR5cGVvZiB0IT0iYm9vbGVhbiIpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBib29sZWFuIHZhbHVlIGZvciBzZXQoa2V5LCB2YWx1ZSkgaW4gYSBZQU1MIHNldCwgbm90ICR7dHlwZW9mIHR9YCk7bGV0IHI9UGwodGhpcy5pdGVtcyxlKTtyJiYhdD90aGlzLml0ZW1zLnNwbGljZSh0aGlzLml0ZW1zLmluZGV4T2YociksMSk6IXImJnQmJnRoaXMuaXRlbXMucHVzaChuZXcgdXIoZSkpfXRvSlNPTihlLHQpe3JldHVybiBzdXBlci50b0pTT04oZSx0LFNldCl9dG9TdHJpbmcoZSx0LHIpe2lmKCFlKXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtpZih0aGlzLmhhc0FsbE51bGxWYWx1ZXMoITApKXJldHVybiBzdXBlci50b1N0cmluZyhPYmplY3QuYXNzaWduKHt9LGUse2FsbE51bGxWYWx1ZXM6ITB9KSx0LHIpO3Rocm93IG5ldyBFcnJvcigiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXMiKX1zdGF0aWMgZnJvbShlLHQscil7bGV0e3JlcGxhY2VyOml9PXIsbz1uZXcgdGhpcyhlKTtpZih0JiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KHQpKWZvcihsZXQgbiBvZiB0KXR5cGVvZiBpPT0iZnVuY3Rpb24iJiYobj1pLmNhbGwodCxuLG4pKSxvLml0ZW1zLnB1c2goUDMobixudWxsLHIpKTtyZXR1cm4gb319O0kzLnRhZz0idGFnOnlhbWwub3JnLDIwMDI6c2V0IjtzOD17Y29sbGVjdGlvbjoibWFwIixpZGVudGlmeTpzKGE9PmEgaW5zdGFuY2VvZiBTZXQsImlkZW50aWZ5Iiksbm9kZUNsYXNzOkkzLGRlZmF1bHQ6ITEsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLGNyZWF0ZU5vZGU6cygoYSxlLHQpPT5JMy5mcm9tKGEsZSx0KSwiY3JlYXRlTm9kZSIpLHJlc29sdmUoYSxlKXtpZigkbyhhKSl7aWYoYS5oYXNBbGxOdWxsVmFsdWVzKCEwKSlyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgSTMsYSk7ZSgiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXMiKX1lbHNlIGUoIkV4cGVjdGVkIGEgbWFwcGluZyBmb3IgdGhpcyB0YWciKTtyZXR1cm4gYX19fSk7ZnVuY3Rpb24gbzBlKGEsZSl7bGV0IHQ9YVswXSxyPXQ9PT0iLSJ8fHQ9PT0iKyI/YS5zdWJzdHJpbmcoMSk6YSxpPXMobj0+ZT9CaWdJbnQobik6TnVtYmVyKG4pLCJudW0iKSxvPXIucmVwbGFjZSgvXy9nLCIiKS5zcGxpdCgiOiIpLnJlZHVjZSgobixsKT0+bippKDYwKStpKGwpLGkoMCkpO3JldHVybiB0PT09Ii0iP2koLTEpKm86b31mdW5jdGlvbiBHNHQoYSl7bGV0e3ZhbHVlOmV9PWEsdD1zKG49Pm4sIm51bSIpO2lmKHR5cGVvZiBlPT0iYmlnaW50Iil0PXMobj0+QmlnSW50KG4pLCJudW0iKTtlbHNlIGlmKGlzTmFOKGUpfHwhaXNGaW5pdGUoZSkpcmV0dXJuIGVpKGEpO2xldCByPSIiO2U8MCYmKHI9Ii0iLGUqPXQoLTEpKTtsZXQgaT10KDYwKSxvPVtlJWldO3JldHVybiBlPDYwP28udW5zaGlmdCgwKTooZT0oZS1vWzBdKS9pLG8udW5zaGlmdChlJWkpLGU+PTYwJiYoZT0oZS1vWzBdKS9pLG8udW5zaGlmdChlKSkpLHIrby5tYXAobj0+U3RyaW5nKG4pLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiOiIpLnJlcGxhY2UoLzAwMDAwMFxkKiQvLCIiKX12YXIgTWcsa2csTjMsbjBlPWYoKCk9PntlOCgpO3MobzBlLCJwYXJzZVNleGFnZXNpbWFsIik7cyhHNHQsInN0cmluZ2lmeVNleGFnZXNpbWFsIik7TWc9e2lkZW50aWZ5OnMoYT0+dHlwZW9mIGE9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKGEpLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiVElNRSIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKSskLyxyZXNvbHZlOnMoKGEsZSx7aW50QXNCaWdJbnQ6dH0pPT5vMGUoYSx0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpHNHR9LGtnPXtpZGVudGlmeTpzKGE9PnR5cGVvZiBhPT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLGZvcm1hdDoiVElNRSIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKStcLlswLTlfXSokLyxyZXNvbHZlOnMoYT0+bzBlKGEsITEpLCJyZXNvbHZlIiksc3RyaW5naWZ5Okc0dH0sTjM9e2lkZW50aWZ5OnMoYT0+YSBpbnN0YW5jZW9mIERhdGUsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIsdGVzdDpSZWdFeHAoIl4oWzAtOV17NH0pLShbMC05XXsxLDJ9KS0oWzAtOV17MSwyfSkoPzooPzp0fFR8WyBcXHRdKykoWzAtOV17MSwyfSk6KFswLTldezEsMn0pOihbMC05XXsxLDJ9KFxcLlswLTldKyk/KSg/OlsgXFx0XSooWnxbLStdWzAxMl0/WzAtOV0oPzo6WzAtOV17Mn0pPykpPyk/JCIpLHJlc29sdmUoYSl7bGV0IGU9YS5tYXRjaChOMy50ZXN0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIiEhdGltZXN0YW1wIGV4cGVjdHMgYSBkYXRlLCBzdGFydGluZyB3aXRoIHl5eXktbW0tZGQiKTtsZXRbLHQscixpLG8sbixsXT1lLm1hcChOdW1iZXIpLGQ9ZVs3XT9OdW1iZXIoKGVbN10rIjAwIikuc3Vic3RyKDEsMykpOjAsYz1EYXRlLlVUQyh0LHItMSxpLG98fDAsbnx8MCxsfHwwLGQpLHA9ZVs4XTtpZihwJiZwIT09IloiKXtsZXQgdT1vMGUocCwhMSk7TWF0aC5hYnModSk8MzAmJih1Kj02MCksYy09NmU0KnV9cmV0dXJuIG5ldyBEYXRlKGMpfSxzdHJpbmdpZnk6cygoe3ZhbHVlOmF9KT0+YT8udG9JU09TdHJpbmcoKS5yZXBsYWNlKC8oVDAwOjAwOjAwKT9cLjAwMFokLywiIik/PyIiLCJzdHJpbmdpZnkiKX19KTt2YXIgS1gsWTR0PWYoKCk9PntYaCgpO0JYKCk7UWgoKTtoZygpO0tjZSgpO2o0dCgpO1U0dCgpO1c0dCgpO1JYKCk7WmNlKCk7VVgoKTtpMGUoKTtuMGUoKTtLWD1bQ24sX24sRWwsTDAsV1gsR1gsdDBlLGEwZSxyMGUsczBlLFhjZSxRY2UsSmNlLHQ4LHpuLHI4LGE4LHM4LE1nLGtnLE4zXX0pO2Z1bmN0aW9uIFNnKGEsZSx0KXtsZXQgcj1LNHQuZ2V0KGUpO2lmKHImJiFhKXJldHVybiB0JiYhci5pbmNsdWRlcyh6bik/ci5jb25jYXQoem4pOnIuc2xpY2UoKTtsZXQgaT1yO2lmKCFpKWlmKEFycmF5LmlzQXJyYXkoYSkpaT1bXTtlbHNle2xldCBvPUFycmF5LmZyb20oSzR0LmtleXMoKSkuZmlsdGVyKG49Pm4hPT0ieWFtbDExIikubWFwKG49PkpTT04uc3RyaW5naWZ5KG4pKS5qb2luKCIsICIpO3Rocm93IG5ldyBFcnJvcihgVW5rbm93biBzY2hlbWEgIiR7ZX0iOyB1c2Ugb25lIG9mICR7b30gb3IgZGVmaW5lIGN1c3RvbVRhZ3MgYXJyYXlgKX1pZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgbyBvZiBhKWk9aS5jb25jYXQobyk7ZWxzZSB0eXBlb2YgYT09ImZ1bmN0aW9uIiYmKGk9YShpLnNsaWNlKCkpKTtyZXR1cm4gdCYmKGk9aS5jb25jYXQoem4pKSxpLnJlZHVjZSgobyxuKT0+e2xldCBsPXR5cGVvZiBuPT0ic3RyaW5nIj9aNHRbbl06bjtpZighbCl7bGV0IGQ9SlNPTi5zdHJpbmdpZnkobiksYz1PYmplY3Qua2V5cyhaNHQpLm1hcChwPT5KU09OLnN0cmluZ2lmeShwKSkuam9pbigiLCAiKTt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY3VzdG9tIHRhZyAke2R9OyB1c2Ugb25lIG9mICR7Y31gKX1yZXR1cm4gby5pbmNsdWRlcyhsKXx8by5wdXNoKGwpLG99LFtdKX12YXIgSzR0LFo0dCxsMGUsWDR0PWYoKCk9PntYaCgpO0JYKCk7UWgoKTtoZygpO1ZjZSgpO2pjZSgpO1djZSgpO0I0dCgpO3E0dCgpO0tjZSgpO1JYKCk7WmNlKCk7VVgoKTtZNHQoKTtpMGUoKTtuMGUoKTtLNHQ9bmV3IE1hcChbWyJjb3JlIixHY2VdLFsiZmFpbHNhZmUiLFtDbixfbixFbF1dLFsianNvbiIsWWNlXSxbInlhbWwxMSIsS1hdLFsieWFtbC0xLjEiLEtYXV0pLFo0dD17YmluYXJ5OnQ4LGJvb2w6SmgsZmxvYXQ6YmcsZmxvYXRFeHA6Z2csZmxvYXROYU46bWcsZmxvYXRUaW1lOmtnLGludDp4ZyxpbnRIZXg6eWcsaW50T2N0OnZnLGludFRpbWU6TWcsbWFwOkNuLG1lcmdlOnpuLG51bGw6TDAsb21hcDpyOCxwYWlyczphOCxzZXE6X24sc2V0OnM4LHRpbWVzdGFtcDpOM30sbDBlPXsidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Ijp0OCwidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiOnpuLCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIjpyOCwidGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiOmE4LCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiOnM4LCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiOk4zfTtzKFNnLCJnZXRUYWdzIil9KTt2YXIgT3hhLCQwLGMwZT1mKCgpPT57JGEoKTtYaCgpO1FoKCk7aGcoKTtYNHQoKTtPeGE9cygoYSxlKT0+YS5rZXk8ZS5rZXk/LTE6YS5rZXk+ZS5rZXk/MTowLCJzb3J0TWFwRW50cmllc0J5S2V5IiksJDA9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3Rvcih7Y29tcGF0OmUsY3VzdG9tVGFnczp0LG1lcmdlOnIscmVzb2x2ZUtub3duVGFnczppLHNjaGVtYTpvLHNvcnRNYXBFbnRyaWVzOm4sdG9TdHJpbmdEZWZhdWx0czpsfSl7dGhpcy5jb21wYXQ9QXJyYXkuaXNBcnJheShlKT9TZyhlLCJjb21wYXQiKTplP1NnKG51bGwsZSk6bnVsbCx0aGlzLm5hbWU9dHlwZW9mIG89PSJzdHJpbmciJiZvfHwiY29yZSIsdGhpcy5rbm93blRhZ3M9aT9sMGU6e30sdGhpcy50YWdzPVNnKHQsdGhpcy5uYW1lLHIpLHRoaXMudG9TdHJpbmdPcHRpb25zPWw/P251bGwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsa24se3ZhbHVlOkNufSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsX28se3ZhbHVlOkVsfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXzIse3ZhbHVlOl9ufSksdGhpcy5zb3J0TWFwRW50cmllcz10eXBlb2Ygbj09ImZ1bmN0aW9uIj9uOm49PT0hMD9PeGE6bnVsbH1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUoYS5wcm90b3R5cGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlLnRhZ3M9dGhpcy50YWdzLnNsaWNlKCksZX19fSk7ZnVuY3Rpb24gZDBlKGEsZSl7bGV0IHQ9W10scj1lLmRpcmVjdGl2ZXM9PT0hMDtpZihlLmRpcmVjdGl2ZXMhPT0hMSYmYS5kaXJlY3RpdmVzKXtsZXQgZD1hLmRpcmVjdGl2ZXMudG9TdHJpbmcoYSk7ZD8odC5wdXNoKGQpLHI9ITApOmEuZGlyZWN0aXZlcy5kb2NTdGFydCYmKHI9ITApfXImJnQucHVzaCgiLS0tIik7bGV0IGk9Y2coYSxlKSx7Y29tbWVudFN0cmluZzpvfT1pLm9wdGlvbnM7aWYoYS5jb21tZW50QmVmb3JlKXt0Lmxlbmd0aCE9PTEmJnQudW5zaGlmdCgiIik7bGV0IGQ9byhhLmNvbW1lbnRCZWZvcmUpO3QudW5zaGlmdChLbyhkLCIiKSl9bGV0IG49ITEsbD1udWxsO2lmKGEuY29udGVudHMpe2lmKGRhKGEuY29udGVudHMpKXtpZihhLmNvbnRlbnRzLnNwYWNlQmVmb3JlJiZyJiZ0LnB1c2goIiIpLGEuY29udGVudHMuY29tbWVudEJlZm9yZSl7bGV0IHA9byhhLmNvbnRlbnRzLmNvbW1lbnRCZWZvcmUpO3QucHVzaChLbyhwLCIiKSl9aS5mb3JjZUJsb2NrSW5kZW50PSEhYS5jb21tZW50LGw9YS5jb250ZW50cy5jb21tZW50fWxldCBkPWw/dm9pZCAwOigpPT5uPSEwLGM9RDIoYS5jb250ZW50cyxpLCgpPT5sPW51bGwsZCk7bCYmKGMrPWgxKGMsIiIsbyhsKSkpLChjWzBdPT09InwifHxjWzBdPT09Ij4iKSYmdFt0Lmxlbmd0aC0xXT09PSItLS0iP3RbdC5sZW5ndGgtMV09YC0tLSAke2N9YDp0LnB1c2goYyl9ZWxzZSB0LnB1c2goRDIoYS5jb250ZW50cyxpKSk7aWYoYS5kaXJlY3RpdmVzPy5kb2NFbmQpaWYoYS5jb21tZW50KXtsZXQgZD1vKGEuY29tbWVudCk7ZC5pbmNsdWRlcyhgCmApPyh0LnB1c2goIi4uLiIpLHQucHVzaChLbyhkLCIiKSkpOnQucHVzaChgLi4uICR7ZH1gKX1lbHNlIHQucHVzaCgiLi4uIik7ZWxzZXtsZXQgZD1hLmNvbW1lbnQ7ZCYmbiYmKGQ9ZC5yZXBsYWNlKC9eXG4rLywiIikpLGQmJigoIW58fGwpJiZ0W3QubGVuZ3RoLTFdIT09IiImJnQucHVzaCgiIiksdC5wdXNoKEtvKG8oZCksIiIpKSl9cmV0dXJuIHQuam9pbihgCmApK2AKYH12YXIgUTR0PWYoKCk9PnskYSgpO2RnKCk7aWcoKTtzKGQwZSwic3RyaW5naWZ5RG9jdW1lbnQiKX0pO2Z1bmN0aW9uIGk4KGEpe2lmKExhKGEpKXJldHVybiEwO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYSBZQU1MIGNvbGxlY3Rpb24gYXMgZG9jdW1lbnQgY29udGVudHMiKX12YXIgVG4semc9ZigoKT0+e2FnKCk7JFgoKTskYSgpO0MwKCk7ejAoKTtjMGUoKTtRNHQoKTtfWCgpO1BjZSgpO3NnKCk7RGNlKCk7VG49Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJEb2N1bWVudCIpfWNvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmNvbW1lbnRCZWZvcmU9bnVsbCx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLF9pLHt2YWx1ZTpROX0pO2xldCBpPW51bGw7dHlwZW9mIHQ9PSJmdW5jdGlvbiJ8fEFycmF5LmlzQXJyYXkodCk/aT10OnI9PT12b2lkIDAmJnQmJihyPXQsdD12b2lkIDApO2xldCBvPU9iamVjdC5hc3NpZ24oe2ludEFzQmlnSW50OiExLGtlZXBTb3VyY2VUb2tlbnM6ITEsbG9nTGV2ZWw6Indhcm4iLHByZXR0eUVycm9yczohMCxzdHJpY3Q6ITAsc3RyaW5nS2V5czohMSx1bmlxdWVLZXlzOiEwLHZlcnNpb246IjEuMiJ9LHIpO3RoaXMub3B0aW9ucz1vO2xldHt2ZXJzaW9uOm59PW87cj8uX2RpcmVjdGl2ZXM/KHRoaXMuZGlyZWN0aXZlcz1yLl9kaXJlY3RpdmVzLmF0RG9jdW1lbnQoKSx0aGlzLmRpcmVjdGl2ZXMueWFtbC5leHBsaWNpdCYmKG49dGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbikpOnRoaXMuZGlyZWN0aXZlcz1uZXcgZjEoe3ZlcnNpb246bn0pLHRoaXMuc2V0U2NoZW1hKG4sciksdGhpcy5jb250ZW50cz1lPT09dm9pZCAwP251bGw6dGhpcy5jcmVhdGVOb2RlKGUsaSxyKX1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUoYS5wcm90b3R5cGUse1tfaV06e3ZhbHVlOlE5fX0pO3JldHVybiBlLmNvbW1lbnRCZWZvcmU9dGhpcy5jb21tZW50QmVmb3JlLGUuY29tbWVudD10aGlzLmNvbW1lbnQsZS5lcnJvcnM9dGhpcy5lcnJvcnMuc2xpY2UoKSxlLndhcm5pbmdzPXRoaXMud2FybmluZ3Muc2xpY2UoKSxlLm9wdGlvbnM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLm9wdGlvbnMpLHRoaXMuZGlyZWN0aXZlcyYmKGUuZGlyZWN0aXZlcz10aGlzLmRpcmVjdGl2ZXMuY2xvbmUoKSksZS5zY2hlbWE9dGhpcy5zY2hlbWEuY2xvbmUoKSxlLmNvbnRlbnRzPWRhKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuY2xvbmUoZS5zY2hlbWEpOnRoaXMuY29udGVudHMsdGhpcy5yYW5nZSYmKGUucmFuZ2U9dGhpcy5yYW5nZS5zbGljZSgpKSxlfWFkZChlKXtpOCh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5hZGQoZSl9YWRkSW4oZSx0KXtpOCh0aGlzLmNvbnRlbnRzKSYmdGhpcy5jb250ZW50cy5hZGRJbihlLHQpfWNyZWF0ZUFsaWFzKGUsdCl7aWYoIWUuYW5jaG9yKXtsZXQgcj16WCh0aGlzKTtlLmFuY2hvcj0hdHx8ci5oYXModCk/Q1godHx8ImEiLHIpOnR9cmV0dXJuIG5ldyBTbihlLmFuY2hvcil9Y3JlYXRlTm9kZShlLHQscil7bGV0IGk7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpZT10LmNhbGwoeyIiOmV9LCIiLGUpLGk9dDtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe2xldCBnPXMoaz0+dHlwZW9mIGs9PSJudW1iZXIifHxrIGluc3RhbmNlb2YgU3RyaW5nfHxrIGluc3RhbmNlb2YgTnVtYmVyLCJrZXlUb1N0ciIpLHk9dC5maWx0ZXIoZykubWFwKFN0cmluZyk7eS5sZW5ndGg+MCYmKHQ9dC5jb25jYXQoeSkpLGk9dH1lbHNlIHI9PT12b2lkIDAmJnQmJihyPXQsdD12b2lkIDApO2xldHthbGlhc0R1cGxpY2F0ZU9iamVjdHM6byxhbmNob3JQcmVmaXg6bixmbG93Omwsa2VlcFVuZGVmaW5lZDpkLG9uVGFnT2JqOmMsdGFnOnB9PXI/P3t9LHtvbkFuY2hvcjp1LHNldEFuY2hvcnM6bSxzb3VyY2VPYmplY3RzOnZ9PUFjZSh0aGlzLG58fCJhIikseD17YWxpYXNEdXBsaWNhdGVPYmplY3RzOm8/PyEwLGtlZXBVbmRlZmluZWQ6ZD8/ITEsb25BbmNob3I6dSxvblRhZ09iajpjLHJlcGxhY2VyOmksc2NoZW1hOnRoaXMuc2NoZW1hLHNvdXJjZU9iamVjdHM6dn0sYj1MMihlLHAseCk7cmV0dXJuIGwmJkxhKGIpJiYoYi5mbG93PSEwKSxtKCksYn1jcmVhdGVQYWlyKGUsdCxyPXt9KXtsZXQgaT10aGlzLmNyZWF0ZU5vZGUoZSxudWxsLHIpLG89dGhpcy5jcmVhdGVOb2RlKHQsbnVsbCxyKTtyZXR1cm4gbmV3IHVyKGksbyl9ZGVsZXRlKGUpe3JldHVybiBpOCh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmRlbGV0ZShlKTohMX1kZWxldGVJbihlKXtyZXR1cm4gQTMoZSk/dGhpcy5jb250ZW50cz09bnVsbD8hMToodGhpcy5jb250ZW50cz1udWxsLCEwKTppOCh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmRlbGV0ZUluKGUpOiExfWdldChlLHQpe3JldHVybiBMYSh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmdldChlLHQpOnZvaWQgMH1nZXRJbihlLHQpe3JldHVybiBBMyhlKT8hdCYmVnQodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy52YWx1ZTp0aGlzLmNvbnRlbnRzOkxhKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZ2V0SW4oZSx0KTp2b2lkIDB9aGFzKGUpe3JldHVybiBMYSh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmhhcyhlKTohMX1oYXNJbihlKXtyZXR1cm4gQTMoZSk/dGhpcy5jb250ZW50cyE9PXZvaWQgMDpMYSh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmhhc0luKGUpOiExfXNldChlLHQpe3RoaXMuY29udGVudHM9PW51bGw/dGhpcy5jb250ZW50cz1HaCh0aGlzLnNjaGVtYSxbZV0sdCk6aTgodGhpcy5jb250ZW50cykmJnRoaXMuY29udGVudHMuc2V0KGUsdCl9c2V0SW4oZSx0KXtBMyhlKT90aGlzLmNvbnRlbnRzPXQ6dGhpcy5jb250ZW50cz09bnVsbD90aGlzLmNvbnRlbnRzPUdoKHRoaXMuc2NoZW1hLEFycmF5LmZyb20oZSksdCk6aTgodGhpcy5jb250ZW50cykmJnRoaXMuY29udGVudHMuc2V0SW4oZSx0KX1zZXRTY2hlbWEoZSx0PXt9KXt0eXBlb2YgZT09Im51bWJlciImJihlPVN0cmluZyhlKSk7bGV0IHI7c3dpdGNoKGUpe2Nhc2UiMS4xIjp0aGlzLmRpcmVjdGl2ZXM/dGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbj0iMS4xIjp0aGlzLmRpcmVjdGl2ZXM9bmV3IGYxKHt2ZXJzaW9uOiIxLjEifSkscj17cmVzb2x2ZUtub3duVGFnczohMSxzY2hlbWE6InlhbWwtMS4xIn07YnJlYWs7Y2FzZSIxLjIiOmNhc2UibmV4dCI6dGhpcy5kaXJlY3RpdmVzP3RoaXMuZGlyZWN0aXZlcy55YW1sLnZlcnNpb249ZTp0aGlzLmRpcmVjdGl2ZXM9bmV3IGYxKHt2ZXJzaW9uOmV9KSxyPXtyZXNvbHZlS25vd25UYWdzOiEwLHNjaGVtYToiY29yZSJ9O2JyZWFrO2Nhc2UgbnVsbDp0aGlzLmRpcmVjdGl2ZXMmJmRlbGV0ZSB0aGlzLmRpcmVjdGl2ZXMscj1udWxsO2JyZWFrO2RlZmF1bHQ6e2xldCBpPUpTT04uc3RyaW5naWZ5KGUpO3Rocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJzEuMScsICcxLjInIG9yIG51bGwgYXMgZmlyc3QgYXJndW1lbnQsIGJ1dCBmb3VuZDogJHtpfWApfX1pZih0LnNjaGVtYSBpbnN0YW5jZW9mIE9iamVjdCl0aGlzLnNjaGVtYT10LnNjaGVtYTtlbHNlIGlmKHIpdGhpcy5zY2hlbWE9bmV3ICQwKE9iamVjdC5hc3NpZ24ocix0KSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIldpdGggYSBudWxsIFlBTUwgdmVyc2lvbiwgdGhlIHsgc2NoZW1hOiBTY2hlbWEgfSBvcHRpb24gaXMgcmVxdWlyZWQiKX10b0pTKHtqc29uOmUsanNvbkFyZzp0LG1hcEFzTWFwOnIsbWF4QWxpYXNDb3VudDppLG9uQW5jaG9yOm8scmV2aXZlcjpufT17fSl7bGV0IGw9e2FuY2hvcnM6bmV3IE1hcCxkb2M6dGhpcyxrZWVwOiFlLG1hcEFzTWFwOnI9PT0hMCxtYXBLZXlXYXJuZWQ6ITEsbWF4QWxpYXNDb3VudDp0eXBlb2YgaT09Im51bWJlciI/aToxMDB9LGQ9dXModGhpcy5jb250ZW50cyx0Pz8iIixsKTtpZih0eXBlb2Ygbz09ImZ1bmN0aW9uIilmb3IobGV0e2NvdW50OmMscmVzOnB9b2YgbC5hbmNob3JzLnZhbHVlcygpKW8ocCxjKTtyZXR1cm4gdHlwZW9mIG49PSJmdW5jdGlvbiI/RGwobix7IiI6ZH0sIiIsZCk6ZH10b0pTT04oZSx0KXtyZXR1cm4gdGhpcy50b0pTKHtqc29uOiEwLGpzb25Bcmc6ZSxtYXBBc01hcDohMSxvbkFuY2hvcjp0fSl9dG9TdHJpbmcoZT17fSl7aWYodGhpcy5lcnJvcnMubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCJEb2N1bWVudCB3aXRoIGVycm9ycyBjYW5ub3QgYmUgc3RyaW5naWZpZWQiKTtpZigiaW5kZW50ImluIGUmJighTnVtYmVyLmlzSW50ZWdlcihlLmluZGVudCl8fE51bWJlcihlLmluZGVudCk8PTApKXtsZXQgdD1KU09OLnN0cmluZ2lmeShlLmluZGVudCk7dGhyb3cgbmV3IEVycm9yKGAiaW5kZW50IiBvcHRpb24gbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIG5vdCAke3R9YCl9cmV0dXJuIGQwZSh0aGlzLGUpfX07cyhpOCwiYXNzZXJ0Q29sbGVjdGlvbiIpfSk7dmFyIEQwLFVpLEEwLG84LENnPWYoKCk9PntEMD1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tzKHRoaXMsIllBTUxFcnJvciIpfWNvbnN0cnVjdG9yKGUsdCxyLGkpe3N1cGVyKCksdGhpcy5uYW1lPWUsdGhpcy5jb2RlPXIsdGhpcy5tZXNzYWdlPWksdGhpcy5wb3M9dH19LFVpPWNsYXNzIGV4dGVuZHMgRDB7c3RhdGlje3ModGhpcywiWUFNTFBhcnNlRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoIllBTUxQYXJzZUVycm9yIixlLHQscil9fSxBMD1jbGFzcyBleHRlbmRzIEQwe3N0YXRpY3tzKHRoaXMsIllBTUxXYXJuaW5nIil9Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKCJZQU1MV2FybmluZyIsZSx0LHIpfX0sbzg9cygoYSxlKT0+dD0+e2lmKHQucG9zWzBdPT09LTEpcmV0dXJuO3QubGluZVBvcz10LnBvcy5tYXAobD0+ZS5saW5lUG9zKGwpKTtsZXR7bGluZTpyLGNvbDppfT10LmxpbmVQb3NbMF07dC5tZXNzYWdlKz1gIGF0IGxpbmUgJHtyfSwgY29sdW1uICR7aX1gO2xldCBvPWktMSxuPWEuc3Vic3RyaW5nKGUubGluZVN0YXJ0c1tyLTFdLGUubGluZVN0YXJ0c1tyXSkucmVwbGFjZSgvW1xuXHJdKyQvLCIiKTtpZihvPj02MCYmbi5sZW5ndGg+ODApe2xldCBsPU1hdGgubWluKG8tMzksbi5sZW5ndGgtNzkpO249Ilx1MjAyNiIrbi5zdWJzdHJpbmcobCksby09bC0xfWlmKG4ubGVuZ3RoPjgwJiYobj1uLnN1YnN0cmluZygwLDc5KSsiXHUyMDI2Iikscj4xJiYvXiAqJC8udGVzdChuLnN1YnN0cmluZygwLG8pKSl7bGV0IGw9YS5zdWJzdHJpbmcoZS5saW5lU3RhcnRzW3ItMl0sZS5saW5lU3RhcnRzW3ItMV0pO2wubGVuZ3RoPjgwJiYobD1sLnN1YnN0cmluZygwLDc5KStgXHUyMDI2CmApLG49bCtufWlmKC9bXiBdLy50ZXN0KG4pKXtsZXQgbD0xLGQ9dC5saW5lUG9zWzFdO2Q/LmxpbmU9PT1yJiZkLmNvbD5pJiYobD1NYXRoLm1heCgxLE1hdGgubWluKGQuY29sLWksODAtbykpKTtsZXQgYz0iICIucmVwZWF0KG8pKyJeIi5yZXBlYXQobCk7dC5tZXNzYWdlKz1gOgoKJHtufQoke2N9CmB9fSwicHJldHRpZnlFcnJvciIpfSk7ZnVuY3Rpb24gbTEoYSx7ZmxvdzplLGluZGljYXRvcjp0LG5leHQ6cixvZmZzZXQ6aSxvbkVycm9yOm8scGFyZW50SW5kZW50Om4sc3RhcnRPbk5ld2xpbmU6bH0pe2xldCBkPSExLGM9bCxwPWwsdT0iIixtPSIiLHY9ITEseD0hMSxiPW51bGwsZz1udWxsLHk9bnVsbCxrPW51bGwsQz1udWxsLE49bnVsbCxfPW51bGw7Zm9yKGxldCBUIG9mIGEpc3dpdGNoKHgmJihULnR5cGUhPT0ic3BhY2UiJiZULnR5cGUhPT0ibmV3bGluZSImJlQudHlwZSE9PSJjb21tYSImJm8oVC5vZmZzZXQsIk1JU1NJTkdfQ0hBUiIsIlRhZ3MgYW5kIGFuY2hvcnMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSB0aGUgbmV4dCB0b2tlbiBieSB3aGl0ZSBzcGFjZSIpLHg9ITEpLGImJihjJiZULnR5cGUhPT0iY29tbWVudCImJlQudHlwZSE9PSJuZXdsaW5lIiYmbyhiLCJUQUJfQVNfSU5ERU5UIiwiVGFicyBhcmUgbm90IGFsbG93ZWQgYXMgaW5kZW50YXRpb24iKSxiPW51bGwpLFQudHlwZSl7Y2FzZSJzcGFjZSI6IWUmJih0IT09ImRvYy1zdGFydCJ8fHI/LnR5cGUhPT0iZmxvdy1jb2xsZWN0aW9uIikmJlQuc291cmNlLmluY2x1ZGVzKCIJIikmJihiPVQpLHA9ITA7YnJlYWs7Y2FzZSJjb21tZW50Ijp7cHx8byhULCJNSVNTSU5HX0NIQVIiLCJDb21tZW50cyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHRva2VucyBieSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzIik7bGV0IFA9VC5zb3VyY2Uuc3Vic3RyaW5nKDEpfHwiICI7dT91Kz1tK1A6dT1QLG09IiIsYz0hMTticmVha31jYXNlIm5ld2xpbmUiOmM/dT91Kz1ULnNvdXJjZTooIU58fHQhPT0ic2VxLWl0ZW0taW5kIikmJihkPSEwKTptKz1ULnNvdXJjZSxjPSEwLHY9ITAsKGd8fHkpJiYoaz1UKSxwPSEwO2JyZWFrO2Nhc2UiYW5jaG9yIjpnJiZvKFQsIk1VTFRJUExFX0FOQ0hPUlMiLCJBIG5vZGUgY2FuIGhhdmUgYXQgbW9zdCBvbmUgYW5jaG9yIiksVC5zb3VyY2UuZW5kc1dpdGgoIjoiKSYmbyhULm9mZnNldCtULnNvdXJjZS5sZW5ndGgtMSwiQkFEX0FMSUFTIiwiQW5jaG9yIGVuZGluZyBpbiA6IGlzIGFtYmlndW91cyIsITApLGc9VCxfPz8oXz1ULm9mZnNldCksYz0hMSxwPSExLHg9ITA7YnJlYWs7Y2FzZSJ0YWciOnt5JiZvKFQsIk1VTFRJUExFX1RBR1MiLCJBIG5vZGUgY2FuIGhhdmUgYXQgbW9zdCBvbmUgdGFnIikseT1ULF8/PyhfPVQub2Zmc2V0KSxjPSExLHA9ITEseD0hMDticmVha31jYXNlIHQ6KGd8fHkpJiZvKFQsIkJBRF9QUk9QX09SREVSIixgQW5jaG9ycyBhbmQgdGFncyBtdXN0IGJlIGFmdGVyIHRoZSAke1Quc291cmNlfSBpbmRpY2F0b3JgKSxOJiZvKFQsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICR7VC5zb3VyY2V9IGluICR7ZT8/ImNvbGxlY3Rpb24ifWApLE49VCxjPXQ9PT0ic2VxLWl0ZW0taW5kInx8dD09PSJleHBsaWNpdC1rZXktaW5kIixwPSExO2JyZWFrO2Nhc2UiY29tbWEiOmlmKGUpe0MmJm8oVCwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgLCBpbiAke2V9YCksQz1ULGM9ITEscD0hMTticmVha31kZWZhdWx0Om8oVCwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgJHtULnR5cGV9IHRva2VuYCksYz0hMSxwPSExfWxldCB6PWFbYS5sZW5ndGgtMV0sTz16P3oub2Zmc2V0K3ouc291cmNlLmxlbmd0aDppO3JldHVybiB4JiZyJiZyLnR5cGUhPT0ic3BhY2UiJiZyLnR5cGUhPT0ibmV3bGluZSImJnIudHlwZSE9PSJjb21tYSImJihyLnR5cGUhPT0ic2NhbGFyInx8ci5zb3VyY2UhPT0iIikmJm8oci5vZmZzZXQsIk1JU1NJTkdfQ0hBUiIsIlRhZ3MgYW5kIGFuY2hvcnMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSB0aGUgbmV4dCB0b2tlbiBieSB3aGl0ZSBzcGFjZSIpLGImJihjJiZiLmluZGVudDw9bnx8cj8udHlwZT09PSJibG9jay1tYXAifHxyPy50eXBlPT09ImJsb2NrLXNlcSIpJiZvKGIsIlRBQl9BU19JTkRFTlQiLCJUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvbiIpLHtjb21tYTpDLGZvdW5kOk4sc3BhY2VCZWZvcmU6ZCxjb21tZW50OnUsaGFzTmV3bGluZTp2LGFuY2hvcjpnLHRhZzp5LG5ld2xpbmVBZnRlclByb3A6ayxlbmQ6TyxzdGFydDpfPz9PfX12YXIgX2c9ZigoKT0+e3MobTEsInJlc29sdmVQcm9wcyIpfSk7ZnVuY3Rpb24gSWwoYSl7aWYoIWEpcmV0dXJuIG51bGw7c3dpdGNoKGEudHlwZSl7Y2FzZSJhbGlhcyI6Y2FzZSJzY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmlmKGEuc291cmNlLmluY2x1ZGVzKGAKYCkpcmV0dXJuITA7aWYoYS5lbmQpe2ZvcihsZXQgZSBvZiBhLmVuZClpZihlLnR5cGU9PT0ibmV3bGluZSIpcmV0dXJuITB9cmV0dXJuITE7Y2FzZSJmbG93LWNvbGxlY3Rpb24iOmZvcihsZXQgZSBvZiBhLml0ZW1zKXtmb3IobGV0IHQgb2YgZS5zdGFydClpZih0LnR5cGU9PT0ibmV3bGluZSIpcmV0dXJuITA7aWYoZS5zZXApe2ZvcihsZXQgdCBvZiBlLnNlcClpZih0LnR5cGU9PT0ibmV3bGluZSIpcmV0dXJuITB9aWYoSWwoZS5rZXkpfHxJbChlLnZhbHVlKSlyZXR1cm4hMH1yZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgWlg9ZigoKT0+e3MoSWwsImNvbnRhaW5zTmV3bGluZSIpfSk7ZnVuY3Rpb24gbjgoYSxlLHQpe2lmKGU/LnR5cGU9PT0iZmxvdy1jb2xsZWN0aW9uIil7bGV0IHI9ZS5lbmRbMF07ci5pbmRlbnQ9PT1hJiYoci5zb3VyY2U9PT0iXSJ8fHIuc291cmNlPT09In0iKSYmSWwoZSkmJnQociwiQkFEX0lOREVOVCIsIkZsb3cgZW5kIGluZGljYXRvciBzaG91bGQgYmUgbW9yZSBpbmRlbnRlZCB0aGFuIHBhcmVudCIsITApfX12YXIgdTBlPWYoKCk9PntaWCgpO3MobjgsImZsb3dJbmRlbnRDaGVjayIpfSk7ZnVuY3Rpb24gVGcoYSxlLHQpe2xldHt1bmlxdWVLZXlzOnJ9PWEub3B0aW9ucztpZihyPT09ITEpcmV0dXJuITE7bGV0IGk9dHlwZW9mIHI9PSJmdW5jdGlvbiI/cjoobyxuKT0+bz09PW58fFZ0KG8pJiZWdChuKSYmby52YWx1ZT09PW4udmFsdWU7cmV0dXJuIGUuc29tZShvPT5pKG8ua2V5LHQpKX12YXIgcDBlPWYoKCk9PnskYSgpO3MoVGcsIm1hcEluY2x1ZGVzIil9KTtmdW5jdGlvbiBmMGUoe2NvbXBvc2VOb2RlOmEsY29tcG9zZUVtcHR5Tm9kZTplfSx0LHIsaSxvKXtsZXQgbj1vPy5ub2RlQ2xhc3M/P3lyLGw9bmV3IG4odC5zY2hlbWEpO3QuYXRSb290JiYodC5hdFJvb3Q9ITEpO2xldCBkPXIub2Zmc2V0LGM9bnVsbDtmb3IobGV0IHAgb2Ygci5pdGVtcyl7bGV0e3N0YXJ0OnUsa2V5Om0sc2VwOnYsdmFsdWU6eH09cCxiPW0xKHUse2luZGljYXRvcjoiZXhwbGljaXQta2V5LWluZCIsbmV4dDptPz92Py5bMF0sb2Zmc2V0OmQsb25FcnJvcjppLHBhcmVudEluZGVudDpyLmluZGVudCxzdGFydE9uTmV3bGluZTohMH0pLGc9IWIuZm91bmQ7aWYoZyl7aWYobSYmKG0udHlwZT09PSJibG9jay1zZXEiP2koZCwiQkxPQ0tfQVNfSU1QTElDSVRfS0VZIiwiQSBibG9jayBzZXF1ZW5jZSBtYXkgbm90IGJlIHVzZWQgYXMgYW4gaW1wbGljaXQgbWFwIGtleSIpOiJpbmRlbnQiaW4gbSYmbS5pbmRlbnQhPT1yLmluZGVudCYmaShkLCJCQURfSU5ERU5UIixKNHQpKSwhYi5hbmNob3ImJiFiLnRhZyYmIXYpe2M9Yi5lbmQsYi5jb21tZW50JiYobC5jb21tZW50P2wuY29tbWVudCs9YApgK2IuY29tbWVudDpsLmNvbW1lbnQ9Yi5jb21tZW50KTtjb250aW51ZX0oYi5uZXdsaW5lQWZ0ZXJQcm9wfHxJbChtKSkmJmkobT8/dVt1Lmxlbmd0aC0xXSwiTVVMVElMSU5FX0lNUExJQ0lUX0tFWSIsIkltcGxpY2l0IGtleXMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lIil9ZWxzZSBiLmZvdW5kPy5pbmRlbnQhPT1yLmluZGVudCYmaShkLCJCQURfSU5ERU5UIixKNHQpO3QuYXRLZXk9ITA7bGV0IHk9Yi5lbmQsaz1tP2EodCxtLGIsaSk6ZSh0LHksdSxudWxsLGIsaSk7dC5zY2hlbWEuY29tcGF0JiZuOChyLmluZGVudCxtLGkpLHQuYXRLZXk9ITEsVGcodCxsLml0ZW1zLGspJiZpKHksIkRVUExJQ0FURV9LRVkiLCJNYXAga2V5cyBtdXN0IGJlIHVuaXF1ZSIpO2xldCBDPW0xKHY/P1tdLHtpbmRpY2F0b3I6Im1hcC12YWx1ZS1pbmQiLG5leHQ6eCxvZmZzZXQ6ay5yYW5nZVsyXSxvbkVycm9yOmkscGFyZW50SW5kZW50OnIuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiFtfHxtLnR5cGU9PT0iYmxvY2stc2NhbGFyIn0pO2lmKGQ9Qy5lbmQsQy5mb3VuZCl7ZyYmKHg/LnR5cGU9PT0iYmxvY2stbWFwIiYmIUMuaGFzTmV3bGluZSYmaShkLCJCTE9DS19BU19JTVBMSUNJVF9LRVkiLCJOZXN0ZWQgbWFwcGluZ3MgYXJlIG5vdCBhbGxvd2VkIGluIGNvbXBhY3QgbWFwcGluZ3MiKSx0Lm9wdGlvbnMuc3RyaWN0JiZiLnN0YXJ0PEMuZm91bmQub2Zmc2V0LTEwMjQmJmkoay5yYW5nZSwiS0VZX09WRVJfMTAyNF9DSEFSUyIsIlRoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgYmxvY2sgbWFwcGluZyBrZXkiKSk7bGV0IE49eD9hKHQseCxDLGkpOmUodCxkLHYsbnVsbCxDLGkpO3Quc2NoZW1hLmNvbXBhdCYmbjgoci5pbmRlbnQseCxpKSxkPU4ucmFuZ2VbMl07bGV0IF89bmV3IHVyKGssTik7dC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJihfLnNyY1Rva2VuPXApLGwuaXRlbXMucHVzaChfKX1lbHNle2cmJmkoay5yYW5nZSwiTUlTU0lOR19DSEFSIiwiSW1wbGljaXQgbWFwIGtleXMgbmVlZCB0byBiZSBmb2xsb3dlZCBieSBtYXAgdmFsdWVzIiksQy5jb21tZW50JiYoay5jb21tZW50P2suY29tbWVudCs9YApgK0MuY29tbWVudDprLmNvbW1lbnQ9Qy5jb21tZW50KTtsZXQgTj1uZXcgdXIoayk7dC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJihOLnNyY1Rva2VuPXApLGwuaXRlbXMucHVzaChOKX19cmV0dXJuIGMmJmM8ZCYmaShjLCJJTVBPU1NJQkxFIiwiTWFwIGNvbW1lbnQgd2l0aCB0cmFpbGluZyBjb250ZW50IiksbC5yYW5nZT1bci5vZmZzZXQsZCxjPz9kXSxsfXZhciBKNHQsZTN0PWYoKCk9PntDMCgpO18wKCk7X2coKTtaWCgpO3UwZSgpO3AwZSgpO0o0dD0iQWxsIG1hcHBpbmcgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW4iO3MoZjBlLCJyZXNvbHZlQmxvY2tNYXAiKX0pO2Z1bmN0aW9uIGgwZSh7Y29tcG9zZU5vZGU6YSxjb21wb3NlRW1wdHlOb2RlOmV9LHQscixpLG8pe2xldCBuPW8/Lm5vZGVDbGFzcz8/RHMsbD1uZXcgbih0LnNjaGVtYSk7dC5hdFJvb3QmJih0LmF0Um9vdD0hMSksdC5hdEtleSYmKHQuYXRLZXk9ITEpO2xldCBkPXIub2Zmc2V0LGM9bnVsbDtmb3IobGV0e3N0YXJ0OnAsdmFsdWU6dX1vZiByLml0ZW1zKXtsZXQgbT1tMShwLHtpbmRpY2F0b3I6InNlcS1pdGVtLWluZCIsbmV4dDp1LG9mZnNldDpkLG9uRXJyb3I6aSxwYXJlbnRJbmRlbnQ6ci5pbmRlbnQsc3RhcnRPbk5ld2xpbmU6ITB9KTtpZighbS5mb3VuZClpZihtLmFuY2hvcnx8bS50YWd8fHUpdT8udHlwZT09PSJibG9jay1zZXEiP2kobS5lbmQsIkJBRF9JTkRFTlQiLCJBbGwgc2VxdWVuY2UgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW4iKTppKGQsIk1JU1NJTkdfQ0hBUiIsIlNlcXVlbmNlIGl0ZW0gd2l0aG91dCAtIGluZGljYXRvciIpO2Vsc2V7Yz1tLmVuZCxtLmNvbW1lbnQmJihsLmNvbW1lbnQ9bS5jb21tZW50KTtjb250aW51ZX1sZXQgdj11P2EodCx1LG0saSk6ZSh0LG0uZW5kLHAsbnVsbCxtLGkpO3Quc2NoZW1hLmNvbXBhdCYmbjgoci5pbmRlbnQsdSxpKSxkPXYucmFuZ2VbMl0sbC5pdGVtcy5wdXNoKHYpfXJldHVybiBsLnJhbmdlPVtyLm9mZnNldCxkLGM/P2RdLGx9dmFyIHQzdD1mKCgpPT57VDAoKTtfZygpO3UwZSgpO3MoaDBlLCJyZXNvbHZlQmxvY2tTZXEiKX0pO2Z1bmN0aW9uIGcxKGEsZSx0LHIpe2xldCBpPSIiO2lmKGEpe2xldCBvPSExLG49IiI7Zm9yKGxldCBsIG9mIGEpe2xldHtzb3VyY2U6ZCx0eXBlOmN9PWw7c3dpdGNoKGMpe2Nhc2Uic3BhY2UiOm89ITA7YnJlYWs7Y2FzZSJjb21tZW50Ijp7dCYmIW8mJnIobCwiTUlTU0lOR19DSEFSIiwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVycyIpO2xldCBwPWQuc3Vic3RyaW5nKDEpfHwiICI7aT9pKz1uK3A6aT1wLG49IiI7YnJlYWt9Y2FzZSJuZXdsaW5lIjppJiYobis9ZCksbz0hMDticmVhaztkZWZhdWx0OnIobCwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgJHtjfSBhdCBub2RlIGVuZGApfWUrPWQubGVuZ3RofX1yZXR1cm57Y29tbWVudDppLG9mZnNldDplfX12YXIgbDg9ZigoKT0+e3MoZzEsInJlc29sdmVFbmQiKX0pO2Z1bmN0aW9uIGIwZSh7Y29tcG9zZU5vZGU6YSxjb21wb3NlRW1wdHlOb2RlOmV9LHQscixpLG8pe2xldCBuPXIuc3RhcnQuc291cmNlPT09InsiLGw9bj8iZmxvdyBtYXAiOiJmbG93IHNlcXVlbmNlIixkPW8/Lm5vZGVDbGFzcz8/KG4/eXI6RHMpLGM9bmV3IGQodC5zY2hlbWEpO2MuZmxvdz0hMDtsZXQgcD10LmF0Um9vdDtwJiYodC5hdFJvb3Q9ITEpLHQuYXRLZXkmJih0LmF0S2V5PSExKTtsZXQgdT1yLm9mZnNldCtyLnN0YXJ0LnNvdXJjZS5sZW5ndGg7Zm9yKGxldCBnPTA7ZzxyLml0ZW1zLmxlbmd0aDsrK2cpe2xldCB5PXIuaXRlbXNbZ10se3N0YXJ0Omssa2V5OkMsc2VwOk4sdmFsdWU6X309eSx6PW0xKGsse2Zsb3c6bCxpbmRpY2F0b3I6ImV4cGxpY2l0LWtleS1pbmQiLG5leHQ6Qz8/Tj8uWzBdLG9mZnNldDp1LG9uRXJyb3I6aSxwYXJlbnRJbmRlbnQ6ci5pbmRlbnQsc3RhcnRPbk5ld2xpbmU6ITF9KTtpZighei5mb3VuZCl7aWYoIXouYW5jaG9yJiYhei50YWcmJiFOJiYhXyl7Zz09PTAmJnouY29tbWE/aSh6LmNvbW1hLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAsIGluICR7bH1gKTpnPHIuaXRlbXMubGVuZ3RoLTEmJmkoei5zdGFydCwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgZW1wdHkgaXRlbSBpbiAke2x9YCksei5jb21tZW50JiYoYy5jb21tZW50P2MuY29tbWVudCs9YApgK3ouY29tbWVudDpjLmNvbW1lbnQ9ei5jb21tZW50KSx1PXouZW5kO2NvbnRpbnVlfSFuJiZ0Lm9wdGlvbnMuc3RyaWN0JiZJbChDKSYmaShDLCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZIiwiSW1wbGljaXQga2V5cyBvZiBmbG93IHNlcXVlbmNlIHBhaXJzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZSIpfWlmKGc9PT0wKXouY29tbWEmJmkoei5jb21tYSwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgLCBpbiAke2x9YCk7ZWxzZSBpZih6LmNvbW1hfHxpKHouc3RhcnQsIk1JU1NJTkdfQ0hBUiIsYE1pc3NpbmcgLCBiZXR3ZWVuICR7bH0gaXRlbXNgKSx6LmNvbW1lbnQpe2xldCBPPSIiO2U6Zm9yKGxldCBUIG9mIGspc3dpdGNoKFQudHlwZSl7Y2FzZSJjb21tYSI6Y2FzZSJzcGFjZSI6YnJlYWs7Y2FzZSJjb21tZW50IjpPPVQuc291cmNlLnN1YnN0cmluZygxKTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1pZihPKXtsZXQgVD1jLml0ZW1zW2MuaXRlbXMubGVuZ3RoLTFdO3JhKFQpJiYoVD1ULnZhbHVlPz9ULmtleSksVC5jb21tZW50P1QuY29tbWVudCs9YApgK086VC5jb21tZW50PU8sei5jb21tZW50PXouY29tbWVudC5zdWJzdHJpbmcoTy5sZW5ndGgrMSl9fWlmKCFuJiYhTiYmIXouZm91bmQpe2xldCBPPV8/YSh0LF8seixpKTplKHQsei5lbmQsTixudWxsLHosaSk7Yy5pdGVtcy5wdXNoKE8pLHU9Ty5yYW5nZVsyXSxnMGUoXykmJmkoTy5yYW5nZSwiQkxPQ0tfSU5fRkxPVyIsbTBlKX1lbHNle3QuYXRLZXk9ITA7bGV0IE89ei5lbmQsVD1DP2EodCxDLHosaSk6ZSh0LE8sayxudWxsLHosaSk7ZzBlKEMpJiZpKFQucmFuZ2UsIkJMT0NLX0lOX0ZMT1ciLG0wZSksdC5hdEtleT0hMTtsZXQgUD1tMShOPz9bXSx7ZmxvdzpsLGluZGljYXRvcjoibWFwLXZhbHVlLWluZCIsbmV4dDpfLG9mZnNldDpULnJhbmdlWzJdLG9uRXJyb3I6aSxwYXJlbnRJbmRlbnQ6ci5pbmRlbnQsc3RhcnRPbk5ld2xpbmU6ITF9KTtpZihQLmZvdW5kKXtpZighbiYmIXouZm91bmQmJnQub3B0aW9ucy5zdHJpY3Qpe2lmKE4pZm9yKGxldCBTIG9mIE4pe2lmKFM9PT1QLmZvdW5kKWJyZWFrO2lmKFMudHlwZT09PSJuZXdsaW5lIil7aShTLCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZIiwiSW1wbGljaXQga2V5cyBvZiBmbG93IHNlcXVlbmNlIHBhaXJzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZSIpO2JyZWFrfX16LnN0YXJ0PFAuZm91bmQub2Zmc2V0LTEwMjQmJmkoUC5mb3VuZCwiS0VZX09WRVJfMTAyNF9DSEFSUyIsIlRoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgZmxvdyBzZXF1ZW5jZSBrZXkiKX19ZWxzZSBfJiYoInNvdXJjZSJpbiBfJiZfLnNvdXJjZT8uWzBdPT09IjoiP2koXywiTUlTU0lOR19DSEFSIixgTWlzc2luZyBzcGFjZSBhZnRlciA6IGluICR7bH1gKTppKFAuc3RhcnQsIk1JU1NJTkdfQ0hBUiIsYE1pc3NpbmcgLCBvciA6IGJldHdlZW4gJHtsfSBpdGVtc2ApKTtsZXQgQj1fP2EodCxfLFAsaSk6UC5mb3VuZD9lKHQsUC5lbmQsTixudWxsLFAsaSk6bnVsbDtCP2cwZShfKSYmaShCLnJhbmdlLCJCTE9DS19JTl9GTE9XIixtMGUpOlAuY29tbWVudCYmKFQuY29tbWVudD9ULmNvbW1lbnQrPWAKYCtQLmNvbW1lbnQ6VC5jb21tZW50PVAuY29tbWVudCk7bGV0IE09bmV3IHVyKFQsQik7aWYodC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJihNLnNyY1Rva2VuPXkpLG4pe2xldCBTPWM7VGcodCxTLml0ZW1zLFQpJiZpKE8sIkRVUExJQ0FURV9LRVkiLCJNYXAga2V5cyBtdXN0IGJlIHVuaXF1ZSIpLFMuaXRlbXMucHVzaChNKX1lbHNle2xldCBTPW5ldyB5cih0LnNjaGVtYSk7Uy5mbG93PSEwLFMuaXRlbXMucHVzaChNKTtsZXQgRT0oQj8/VCkucmFuZ2U7Uy5yYW5nZT1bVC5yYW5nZVswXSxFWzFdLEVbMl1dLGMuaXRlbXMucHVzaChTKX11PUI/Qi5yYW5nZVsyXTpQLmVuZH19bGV0IG09bj8ifSI6Il0iLFt2LC4uLnhdPXIuZW5kLGI9dTtpZih2Py5zb3VyY2U9PT1tKWI9di5vZmZzZXQrdi5zb3VyY2UubGVuZ3RoO2Vsc2V7bGV0IGc9bFswXS50b1VwcGVyQ2FzZSgpK2wuc3Vic3RyaW5nKDEpLHk9cD9gJHtnfSBtdXN0IGVuZCB3aXRoIGEgJHttfWA6YCR7Z30gaW4gYmxvY2sgY29sbGVjdGlvbiBtdXN0IGJlIHN1ZmZpY2llbnRseSBpbmRlbnRlZCBhbmQgZW5kIHdpdGggYSAke219YDtpKHUscD8iTUlTU0lOR19DSEFSIjoiQkFEX0lOREVOVCIseSksdiYmdi5zb3VyY2UubGVuZ3RoIT09MSYmeC51bnNoaWZ0KHYpfWlmKHgubGVuZ3RoPjApe2xldCBnPWcxKHgsYix0Lm9wdGlvbnMuc3RyaWN0LGkpO2cuY29tbWVudCYmKGMuY29tbWVudD9jLmNvbW1lbnQrPWAKYCtnLmNvbW1lbnQ6Yy5jb21tZW50PWcuY29tbWVudCksYy5yYW5nZT1bci5vZmZzZXQsYixnLm9mZnNldF19ZWxzZSBjLnJhbmdlPVtyLm9mZnNldCxiLGJdO3JldHVybiBjfXZhciBtMGUsZzBlLGEzdD1mKCgpPT57JGEoKTtDMCgpO18wKCk7VDAoKTtsOCgpO19nKCk7WlgoKTtwMGUoKTttMGU9IkJsb2NrIGNvbGxlY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gZmxvdyBjb2xsZWN0aW9ucyIsZzBlPXMoYT0+YSYmKGEudHlwZT09PSJibG9jay1tYXAifHxhLnR5cGU9PT0iYmxvY2stc2VxIiksImlzQmxvY2siKTtzKGIwZSwicmVzb2x2ZUZsb3dDb2xsZWN0aW9uIil9KTtmdW5jdGlvbiB2MGUoYSxlLHQscixpLG8pe2xldCBuPXQudHlwZT09PSJibG9jay1tYXAiP2YwZShhLGUsdCxyLG8pOnQudHlwZT09PSJibG9jay1zZXEiP2gwZShhLGUsdCxyLG8pOmIwZShhLGUsdCxyLG8pLGw9bi5jb25zdHJ1Y3RvcjtyZXR1cm4gaT09PSIhInx8aT09PWwudGFnTmFtZT8obi50YWc9bC50YWdOYW1lLG4pOihpJiYobi50YWc9aSksbil9ZnVuY3Rpb24geDBlKGEsZSx0LHIsaSl7bGV0IG89ci50YWcsbj1vP2UuZGlyZWN0aXZlcy50YWdOYW1lKG8uc291cmNlLG09PmkobywiVEFHX1JFU09MVkVfRkFJTEVEIixtKSk6bnVsbDtpZih0LnR5cGU9PT0iYmxvY2stc2VxIil7bGV0e2FuY2hvcjptLG5ld2xpbmVBZnRlclByb3A6dn09cix4PW0mJm8/bS5vZmZzZXQ+by5vZmZzZXQ/bTpvOm0/P287eCYmKCF2fHx2Lm9mZnNldDx4Lm9mZnNldCkmJmkoeCwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBuZXdsaW5lIGFmdGVyIGJsb2NrIHNlcXVlbmNlIHByb3BzIil9bGV0IGw9dC50eXBlPT09ImJsb2NrLW1hcCI/Im1hcCI6dC50eXBlPT09ImJsb2NrLXNlcSI/InNlcSI6dC5zdGFydC5zb3VyY2U9PT0ieyI/Im1hcCI6InNlcSI7aWYoIW98fCFufHxuPT09IiEifHxuPT09eXIudGFnTmFtZSYmbD09PSJtYXAifHxuPT09RHMudGFnTmFtZSYmbD09PSJzZXEiKXJldHVybiB2MGUoYSxlLHQsaSxuKTtsZXQgZD1lLnNjaGVtYS50YWdzLmZpbmQobT0+bS50YWc9PT1uJiZtLmNvbGxlY3Rpb249PT1sKTtpZighZCl7bGV0IG09ZS5zY2hlbWEua25vd25UYWdzW25dO2lmKG0/LmNvbGxlY3Rpb249PT1sKWUuc2NoZW1hLnRhZ3MucHVzaChPYmplY3QuYXNzaWduKHt9LG0se2RlZmF1bHQ6ITF9KSksZD1tO2Vsc2UgcmV0dXJuIG0/aShvLCJCQURfQ09MTEVDVElPTl9UWVBFIixgJHttLnRhZ30gdXNlZCBmb3IgJHtsfSBjb2xsZWN0aW9uLCBidXQgZXhwZWN0cyAke20uY29sbGVjdGlvbj8/InNjYWxhciJ9YCwhMCk6aShvLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGBVbnJlc29sdmVkIHRhZzogJHtufWAsITApLHYwZShhLGUsdCxpLG4pfWxldCBjPXYwZShhLGUsdCxpLG4sZCkscD1kLnJlc29sdmU/LihjLG09PmkobywiVEFHX1JFU09MVkVfRkFJTEVEIixtKSxlLm9wdGlvbnMpPz9jLHU9ZGEocCk/cDpuZXcgaHQocCk7cmV0dXJuIHUucmFuZ2U9Yy5yYW5nZSx1LnRhZz1uLGQ/LmZvcm1hdCYmKHUuZm9ybWF0PWQuZm9ybWF0KSx1fXZhciByM3Q9ZigoKT0+eyRhKCk7cHMoKTtfMCgpO1QwKCk7ZTN0KCk7dDN0KCk7YTN0KCk7cyh2MGUsInJlc29sdmVDb2xsZWN0aW9uIik7cyh4MGUsImNvbXBvc2VDb2xsZWN0aW9uIil9KTtmdW5jdGlvbiBMZyhhLGUsdCl7bGV0IHI9ZS5vZmZzZXQsaT1GeGEoZSxhLm9wdGlvbnMuc3RyaWN0LHQpO2lmKCFpKXJldHVybnt2YWx1ZToiIix0eXBlOm51bGwsY29tbWVudDoiIixyYW5nZTpbcixyLHJdfTtsZXQgbz1pLm1vZGU9PT0iPiI/aHQuQkxPQ0tfRk9MREVEOmh0LkJMT0NLX0xJVEVSQUwsbj1lLnNvdXJjZT9CeGEoZS5zb3VyY2UpOltdLGw9bi5sZW5ndGg7Zm9yKGxldCBiPW4ubGVuZ3RoLTE7Yj49MDstLWIpe2xldCBnPW5bYl1bMV07aWYoZz09PSIifHxnPT09IlxyIilsPWI7ZWxzZSBicmVha31pZihsPT09MCl7bGV0IGI9aS5jaG9tcD09PSIrIiYmbi5sZW5ndGg+MD9gCmAucmVwZWF0KE1hdGgubWF4KDEsbi5sZW5ndGgtMSkpOiIiLGc9citpLmxlbmd0aDtyZXR1cm4gZS5zb3VyY2UmJihnKz1lLnNvdXJjZS5sZW5ndGgpLHt2YWx1ZTpiLHR5cGU6byxjb21tZW50OmkuY29tbWVudCxyYW5nZTpbcixnLGddfX1sZXQgZD1lLmluZGVudCtpLmluZGVudCxjPWUub2Zmc2V0K2kubGVuZ3RoLHA9MDtmb3IobGV0IGI9MDtiPGw7KytiKXtsZXRbZyx5XT1uW2JdO2lmKHk9PT0iInx8eT09PSJcciIpaS5pbmRlbnQ9PT0wJiZnLmxlbmd0aD5kJiYoZD1nLmxlbmd0aCk7ZWxzZXtnLmxlbmd0aDxkJiZ0KGMrZy5sZW5ndGgsIk1JU1NJTkdfQ0hBUiIsIkJsb2NrIHNjYWxhcnMgd2l0aCBtb3JlLWluZGVudGVkIGxlYWRpbmcgZW1wdHkgbGluZXMgbXVzdCB1c2UgYW4gZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yIiksaS5pbmRlbnQ9PT0wJiYoZD1nLmxlbmd0aCkscD1iLGQ9PT0wJiYhYS5hdFJvb3QmJnQoYywiQkFEX0lOREVOVCIsIkJsb2NrIHNjYWxhciB2YWx1ZXMgaW4gY29sbGVjdGlvbnMgbXVzdCBiZSBpbmRlbnRlZCIpO2JyZWFrfWMrPWcubGVuZ3RoK3kubGVuZ3RoKzF9Zm9yKGxldCBiPW4ubGVuZ3RoLTE7Yj49bDstLWIpbltiXVswXS5sZW5ndGg+ZCYmKGw9YisxKTtsZXQgdT0iIixtPSIiLHY9ITE7Zm9yKGxldCBiPTA7YjxwOysrYil1Kz1uW2JdWzBdLnNsaWNlKGQpK2AKYDtmb3IobGV0IGI9cDtiPGw7KytiKXtsZXRbZyx5XT1uW2JdO2MrPWcubGVuZ3RoK3kubGVuZ3RoKzE7bGV0IGs9eVt5Lmxlbmd0aC0xXT09PSJcciI7aWYoayYmKHk9eS5zbGljZSgwLC0xKSkseSYmZy5sZW5ndGg8ZCl7bGV0IE49YEJsb2NrIHNjYWxhciBsaW5lcyBtdXN0IG5vdCBiZSBsZXNzIGluZGVudGVkIHRoYW4gdGhlaXIgJHtpLmluZGVudD8iZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yIjoiZmlyc3QgbGluZSJ9YDt0KGMteS5sZW5ndGgtKGs/MjoxKSwiQkFEX0lOREVOVCIsTiksZz0iIn1vPT09aHQuQkxPQ0tfTElURVJBTD8odSs9bStnLnNsaWNlKGQpK3ksbT1gCmApOmcubGVuZ3RoPmR8fHlbMF09PT0iCSI/KG09PT0iICI/bT1gCmA6IXYmJm09PT1gCmAmJihtPWAKCmApLHUrPW0rZy5zbGljZShkKSt5LG09YApgLHY9ITApOnk9PT0iIj9tPT09YApgP3UrPWAKYDptPWAKYDoodSs9bSt5LG09IiAiLHY9ITEpfXN3aXRjaChpLmNob21wKXtjYXNlIi0iOmJyZWFrO2Nhc2UiKyI6Zm9yKGxldCBiPWw7YjxuLmxlbmd0aDsrK2IpdSs9YApgK25bYl1bMF0uc2xpY2UoZCk7dVt1Lmxlbmd0aC0xXSE9PWAKYCYmKHUrPWAKYCk7YnJlYWs7ZGVmYXVsdDp1Kz1gCmB9bGV0IHg9citpLmxlbmd0aCtlLnNvdXJjZS5sZW5ndGg7cmV0dXJue3ZhbHVlOnUsdHlwZTpvLGNvbW1lbnQ6aS5jb21tZW50LHJhbmdlOltyLHgseF19fWZ1bmN0aW9uIEZ4YSh7b2Zmc2V0OmEscHJvcHM6ZX0sdCxyKXtpZihlWzBdLnR5cGUhPT0iYmxvY2stc2NhbGFyLWhlYWRlciIpcmV0dXJuIHIoZVswXSwiSU1QT1NTSUJMRSIsIkJsb2NrIHNjYWxhciBoZWFkZXIgbm90IGZvdW5kIiksbnVsbDtsZXR7c291cmNlOml9PWVbMF0sbz1pWzBdLG49MCxsPSIiLGQ9LTE7Zm9yKGxldCBtPTE7bTxpLmxlbmd0aDsrK20pe2xldCB2PWlbbV07aWYoIWwmJih2PT09Ii0ifHx2PT09IisiKSlsPXY7ZWxzZXtsZXQgeD1OdW1iZXIodik7IW4mJng/bj14OmQ9PT0tMSYmKGQ9YSttKX19ZCE9PS0xJiZyKGQsIlVORVhQRUNURURfVE9LRU4iLGBCbG9jayBzY2FsYXIgaGVhZGVyIGluY2x1ZGVzIGV4dHJhIGNoYXJhY3RlcnM6ICR7aX1gKTtsZXQgYz0hMSxwPSIiLHU9aS5sZW5ndGg7Zm9yKGxldCBtPTE7bTxlLmxlbmd0aDsrK20pe2xldCB2PWVbbV07c3dpdGNoKHYudHlwZSl7Y2FzZSJzcGFjZSI6Yz0hMDtjYXNlIm5ld2xpbmUiOnUrPXYuc291cmNlLmxlbmd0aDticmVhaztjYXNlImNvbW1lbnQiOnQmJiFjJiZyKHYsIk1JU1NJTkdfQ0hBUiIsIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMiKSx1Kz12LnNvdXJjZS5sZW5ndGgscD12LnNvdXJjZS5zdWJzdHJpbmcoMSk7YnJlYWs7Y2FzZSJlcnJvciI6cih2LCJVTkVYUEVDVEVEX1RPS0VOIix2Lm1lc3NhZ2UpLHUrPXYuc291cmNlLmxlbmd0aDticmVhaztkZWZhdWx0OntsZXQgeD1gVW5leHBlY3RlZCB0b2tlbiBpbiBibG9jayBzY2FsYXIgaGVhZGVyOiAke3YudHlwZX1gO3IodiwiVU5FWFBFQ1RFRF9UT0tFTiIseCk7bGV0IGI9di5zb3VyY2U7YiYmdHlwZW9mIGI9PSJzdHJpbmciJiYodSs9Yi5sZW5ndGgpfX19cmV0dXJue21vZGU6byxpbmRlbnQ6bixjaG9tcDpsLGNvbW1lbnQ6cCxsZW5ndGg6dX19ZnVuY3Rpb24gQnhhKGEpe2xldCBlPWEuc3BsaXQoL1xuKCAqKS8pLHQ9ZVswXSxyPXQubWF0Y2goL14oICopLyksbz1bcj8uWzFdP1tyWzFdLHQuc2xpY2UoclsxXS5sZW5ndGgpXTpbIiIsdF1dO2ZvcihsZXQgbj0xO248ZS5sZW5ndGg7bis9MilvLnB1c2goW2Vbbl0sZVtuKzFdXSk7cmV0dXJuIG99dmFyIHkwZT1mKCgpPT57cHMoKTtzKExnLCJyZXNvbHZlQmxvY2tTY2FsYXIiKTtzKEZ4YSwicGFyc2VCbG9ja1NjYWxhckhlYWRlciIpO3MoQnhhLCJzcGxpdExpbmVzIil9KTtmdW5jdGlvbiAkZyhhLGUsdCl7bGV0e29mZnNldDpyLHR5cGU6aSxzb3VyY2U6byxlbmQ6bn09YSxsLGQsYz1zKChtLHYseCk9PnQocittLHYseCksIl9vbkVycm9yIik7c3dpdGNoKGkpe2Nhc2Uic2NhbGFyIjpsPWh0LlBMQUlOLGQ9SHhhKG8sYyk7YnJlYWs7Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6bD1odC5RVU9URV9TSU5HTEUsZD1xeGEobyxjKTticmVhaztjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpsPWh0LlFVT1RFX0RPVUJMRSxkPVZ4YShvLGMpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHQoYSwiVU5FWFBFQ1RFRF9UT0tFTiIsYEV4cGVjdGVkIGEgZmxvdyBzY2FsYXIgdmFsdWUsIGJ1dCBmb3VuZDogJHtpfWApLHt2YWx1ZToiIix0eXBlOm51bGwsY29tbWVudDoiIixyYW5nZTpbcixyK28ubGVuZ3RoLHIrby5sZW5ndGhdfX1sZXQgcD1yK28ubGVuZ3RoLHU9ZzEobixwLGUsdCk7cmV0dXJue3ZhbHVlOmQsdHlwZTpsLGNvbW1lbnQ6dS5jb21tZW50LHJhbmdlOltyLHAsdS5vZmZzZXRdfX1mdW5jdGlvbiBIeGEoYSxlKXtsZXQgdD0iIjtzd2l0Y2goYVswXSl7Y2FzZSIJIjp0PSJhIHRhYiBjaGFyYWN0ZXIiO2JyZWFrO2Nhc2UiLCI6dD0iZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVyICwiO2JyZWFrO2Nhc2UiJSI6dD0iZGlyZWN0aXZlIGluZGljYXRvciBjaGFyYWN0ZXIgJSI7YnJlYWs7Y2FzZSJ8IjpjYXNlIj4iOnt0PWBibG9jayBzY2FsYXIgaW5kaWNhdG9yICR7YVswXX1gO2JyZWFrfWNhc2UiQCI6Y2FzZSJgIjp7dD1gcmVzZXJ2ZWQgY2hhcmFjdGVyICR7YVswXX1gO2JyZWFrfX1yZXR1cm4gdCYmZSgwLCJCQURfU0NBTEFSX1NUQVJUIixgUGxhaW4gdmFsdWUgY2Fubm90IHN0YXJ0IHdpdGggJHt0fWApLHMzdChhKX1mdW5jdGlvbiBxeGEoYSxlKXtyZXR1cm4oYVthLmxlbmd0aC0xXSE9PSInInx8YS5sZW5ndGg9PT0xKSYmZShhLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBjbG9zaW5nICdxdW90ZSIpLHMzdChhLnNsaWNlKDEsLTEpKS5yZXBsYWNlKC8nJy9nLCInIil9ZnVuY3Rpb24gczN0KGEpe2xldCBlLHQ7dHJ5e2U9bmV3IFJlZ0V4cChgKC4qPykoPzwhWyAJXSlbIAldKlxyPwpgLCJzeSIpLHQ9bmV3IFJlZ0V4cChgWyAJXSooLio/KSg/Oig/PCFbIAldKVsgCV0qKT9ccj8KYCwic3kiKX1jYXRjaHtlPS8oLio/KVsgXHRdKlxyP1xuL3N5LHQ9L1sgXHRdKiguKj8pWyBcdF0qXHI/XG4vc3l9bGV0IHI9ZS5leGVjKGEpO2lmKCFyKXJldHVybiBhO2xldCBpPXJbMV0sbz0iICIsbj1lLmxhc3RJbmRleDtmb3IodC5sYXN0SW5kZXg9bjtyPXQuZXhlYyhhKTspclsxXT09PSIiP289PT1gCmA/aSs9bzpvPWAKYDooaSs9bytyWzFdLG89IiAiKSxuPXQubGFzdEluZGV4O2xldCBsPS9bIFx0XSooLiopL3N5O3JldHVybiBsLmxhc3RJbmRleD1uLHI9bC5leGVjKGEpLGkrbysocj8uWzFdPz8iIil9ZnVuY3Rpb24gVnhhKGEsZSl7bGV0IHQ9IiI7Zm9yKGxldCByPTE7cjxhLmxlbmd0aC0xOysrcil7bGV0IGk9YVtyXTtpZighKGk9PT0iXHIiJiZhW3IrMV09PT1gCmApKWlmKGk9PT1gCmApe2xldHtmb2xkOm8sb2Zmc2V0Om59PWp4YShhLHIpO3QrPW8scj1ufWVsc2UgaWYoaT09PSJcXCIpe2xldCBvPWFbKytyXSxuPVV4YVtvXTtpZihuKXQrPW47ZWxzZSBpZihvPT09YApgKWZvcihvPWFbcisxXTtvPT09IiAifHxvPT09IgkiOylvPWFbKytyKzFdO2Vsc2UgaWYobz09PSJcciImJmFbcisxXT09PWAKYClmb3Iobz1hWysrcisxXTtvPT09IiAifHxvPT09IgkiOylvPWFbKytyKzFdO2Vsc2UgaWYobz09PSJ4Inx8bz09PSJ1Inx8bz09PSJVIil7bGV0IGw9bz09PSJ4Ij8yOm89PT0idSI/NDo4O3QrPVd4YShhLHIrMSxsLGUpLHIrPWx9ZWxzZXtsZXQgbD1hLnN1YnN0cihyLTEsMik7ZShyLTEsIkJBRF9EUV9FU0NBUEUiLGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke2x9YCksdCs9bH19ZWxzZSBpZihpPT09IiAifHxpPT09IgkiKXtsZXQgbz1yLG49YVtyKzFdO2Zvcig7bj09PSIgInx8bj09PSIJIjspbj1hWysrcisxXTtuIT09YApgJiYhKG49PT0iXHIiJiZhW3IrMl09PT1gCmApJiYodCs9cj5vP2Euc2xpY2UobyxyKzEpOmkpfWVsc2UgdCs9aX1yZXR1cm4oYVthLmxlbmd0aC0xXSE9PSciJ3x8YS5sZW5ndGg9PT0xKSYmZShhLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwnTWlzc2luZyBjbG9zaW5nICJxdW90ZScpLHR9ZnVuY3Rpb24ganhhKGEsZSl7bGV0IHQ9IiIscj1hW2UrMV07Zm9yKDsocj09PSIgInx8cj09PSIJInx8cj09PWAKYHx8cj09PSJcciIpJiYhKHI9PT0iXHIiJiZhW2UrMl0hPT1gCmApOylyPT09YApgJiYodCs9YApgKSxlKz0xLHI9YVtlKzFdO3JldHVybiB0fHwodD0iICIpLHtmb2xkOnQsb2Zmc2V0OmV9fWZ1bmN0aW9uIFd4YShhLGUsdCxyKXtsZXQgaT1hLnN1YnN0cihlLHQpLG49aS5sZW5ndGg9PT10JiYvXlswLTlhLWZBLUZdKyQvLnRlc3QoaSk/cGFyc2VJbnQoaSwxNik6TmFOO3RyeXtyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQobil9Y2F0Y2h7bGV0IGw9YS5zdWJzdHIoZS0yLHQrMik7cmV0dXJuIHIoZS0yLCJCQURfRFFfRVNDQVBFIixgSW52YWxpZCBlc2NhcGUgc2VxdWVuY2UgJHtsfWApLGx9fXZhciBVeGEsdzBlPWYoKCk9PntwcygpO2w4KCk7cygkZywicmVzb2x2ZUZsb3dTY2FsYXIiKTtzKEh4YSwicGxhaW5WYWx1ZSIpO3MocXhhLCJzaW5nbGVRdW90ZWRWYWx1ZSIpO3MoczN0LCJmb2xkTGluZXMiKTtzKFZ4YSwiZG91YmxlUXVvdGVkVmFsdWUiKTtzKGp4YSwiZm9sZE5ld2xpbmUiKTtVeGE9ezA6IlwwIixhOiJceDA3IixiOiJcYiIsZToiXHgxQiIsZjoiXGYiLG46YApgLHI6IlxyIix0OiIJIix2OiJcdiIsTjoiXHg4NSIsXzoiXHhBMCIsTDoiXHUyMDI4IixQOiJcdTIwMjkiLCIgIjoiICIsJyInOiciJywiLyI6Ii8iLCJcXCI6IlxcIiwiCSI6IgkifTtzKFd4YSwicGFyc2VDaGFyQ29kZSIpfSk7ZnVuY3Rpb24gWFgoYSxlLHQscil7bGV0e3ZhbHVlOmksdHlwZTpvLGNvbW1lbnQ6bixyYW5nZTpsfT1lLnR5cGU9PT0iYmxvY2stc2NhbGFyIj9MZyhhLGUscik6JGcoZSxhLm9wdGlvbnMuc3RyaWN0LHIpLGQ9dD9hLmRpcmVjdGl2ZXMudGFnTmFtZSh0LnNvdXJjZSx1PT5yKHQsIlRBR19SRVNPTFZFX0ZBSUxFRCIsdSkpOm51bGwsYzthLm9wdGlvbnMuc3RyaW5nS2V5cyYmYS5hdEtleT9jPWEuc2NoZW1hW19vXTpkP2M9R3hhKGEuc2NoZW1hLGksZCx0LHIpOmUudHlwZT09PSJzY2FsYXIiP2M9WXhhKGEsaSxlLHIpOmM9YS5zY2hlbWFbX29dO2xldCBwO3RyeXtsZXQgdT1jLnJlc29sdmUoaSxtPT5yKHQ/P2UsIlRBR19SRVNPTFZFX0ZBSUxFRCIsbSksYS5vcHRpb25zKTtwPVZ0KHUpP3U6bmV3IGh0KHUpfWNhdGNoKHUpe2xldCBtPXUgaW5zdGFuY2VvZiBFcnJvcj91Lm1lc3NhZ2U6U3RyaW5nKHUpO3IodD8/ZSwiVEFHX1JFU09MVkVfRkFJTEVEIixtKSxwPW5ldyBodChpKX1yZXR1cm4gcC5yYW5nZT1sLHAuc291cmNlPWksbyYmKHAudHlwZT1vKSxkJiYocC50YWc9ZCksYy5mb3JtYXQmJihwLmZvcm1hdD1jLmZvcm1hdCksbiYmKHAuY29tbWVudD1uKSxwfWZ1bmN0aW9uIEd4YShhLGUsdCxyLGkpe2lmKHQ9PT0iISIpcmV0dXJuIGFbX29dO2xldCBvPVtdO2ZvcihsZXQgbCBvZiBhLnRhZ3MpaWYoIWwuY29sbGVjdGlvbiYmbC50YWc9PT10KWlmKGwuZGVmYXVsdCYmbC50ZXN0KW8ucHVzaChsKTtlbHNlIHJldHVybiBsO2ZvcihsZXQgbCBvZiBvKWlmKGwudGVzdD8udGVzdChlKSlyZXR1cm4gbDtsZXQgbj1hLmtub3duVGFnc1t0XTtyZXR1cm4gbiYmIW4uY29sbGVjdGlvbj8oYS50YWdzLnB1c2goT2JqZWN0LmFzc2lnbih7fSxuLHtkZWZhdWx0OiExLHRlc3Q6dm9pZCAwfSkpLG4pOihpKHIsIlRBR19SRVNPTFZFX0ZBSUxFRCIsYFVucmVzb2x2ZWQgdGFnOiAke3R9YCx0IT09InRhZzp5YW1sLm9yZywyMDAyOnN0ciIpLGFbX29dKX1mdW5jdGlvbiBZeGEoe2F0S2V5OmEsZGlyZWN0aXZlczplLHNjaGVtYTp0fSxyLGksbyl7bGV0IG49dC50YWdzLmZpbmQobD0+KGwuZGVmYXVsdD09PSEwfHxhJiZsLmRlZmF1bHQ9PT0ia2V5IikmJmwudGVzdD8udGVzdChyKSl8fHRbX29dO2lmKHQuY29tcGF0KXtsZXQgbD10LmNvbXBhdC5maW5kKGQ9PmQuZGVmYXVsdCYmZC50ZXN0Py50ZXN0KHIpKT8/dFtfb107aWYobi50YWchPT1sLnRhZyl7bGV0IGQ9ZS50YWdTdHJpbmcobi50YWcpLGM9ZS50YWdTdHJpbmcobC50YWcpLHA9YFZhbHVlIG1heSBiZSBwYXJzZWQgYXMgZWl0aGVyICR7ZH0gb3IgJHtjfWA7byhpLCJUQUdfUkVTT0xWRV9GQUlMRUQiLHAsITApfX1yZXR1cm4gbn12YXIgaTN0PWYoKCk9PnskYSgpO3BzKCk7eTBlKCk7dzBlKCk7cyhYWCwiY29tcG9zZVNjYWxhciIpO3MoR3hhLCJmaW5kU2NhbGFyVGFnQnlOYW1lIik7cyhZeGEsImZpbmRTY2FsYXJUYWdCeVRlc3QiKX0pO2Z1bmN0aW9uIE0wZShhLGUsdCl7aWYoZSl7dD8/KHQ9ZS5sZW5ndGgpO2ZvcihsZXQgcj10LTE7cj49MDstLXIpe2xldCBpPWVbcl07c3dpdGNoKGkudHlwZSl7Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOmEtPWkuc291cmNlLmxlbmd0aDtjb250aW51ZX1mb3IoaT1lWysrcl07aT8udHlwZT09PSJzcGFjZSI7KWErPWkuc291cmNlLmxlbmd0aCxpPWVbKytyXTticmVha319cmV0dXJuIGF9dmFyIG8zdD1mKCgpPT57cyhNMGUsImVtcHR5U2NhbGFyUG9zaXRpb24iKX0pO2Z1bmN0aW9uIFFYKGEsZSx0LHIpe2xldCBpPWEuYXRLZXkse3NwYWNlQmVmb3JlOm8sY29tbWVudDpuLGFuY2hvcjpsLHRhZzpkfT10LGMscD0hMDtzd2l0Y2goZS50eXBlKXtjYXNlImFsaWFzIjpjPVp4YShhLGUsciksKGx8fGQpJiZyKGUsIkFMSUFTX1BST1BTIiwiQW4gYWxpYXMgbm9kZSBtdXN0IG5vdCBzcGVjaWZ5IGFueSBwcm9wZXJ0aWVzIik7YnJlYWs7Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2UiYmxvY2stc2NhbGFyIjpjPVhYKGEsZSxkLHIpLGwmJihjLmFuY2hvcj1sLnNvdXJjZS5zdWJzdHJpbmcoMSkpO2JyZWFrO2Nhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6Y2FzZSJmbG93LWNvbGxlY3Rpb24iOnRyeXtjPXgwZShLeGEsYSxlLHQsciksbCYmKGMuYW5jaG9yPWwuc291cmNlLnN1YnN0cmluZygxKSl9Y2F0Y2godSl7bGV0IG09dSBpbnN0YW5jZW9mIEVycm9yP3UubWVzc2FnZTpTdHJpbmcodSk7cihlLCJSRVNPVVJDRV9FWEhBVVNUSU9OIixtKX1icmVhaztkZWZhdWx0OntsZXQgdT1lLnR5cGU9PT0iZXJyb3IiP2UubWVzc2FnZTpgVW5zdXBwb3J0ZWQgdG9rZW4gKHR5cGU6ICR7ZS50eXBlfSlgO3IoZSwiVU5FWFBFQ1RFRF9UT0tFTiIsdSkscD0hMX19cmV0dXJuIGM/PyhjPURnKGEsZS5vZmZzZXQsdm9pZCAwLG51bGwsdCxyKSksbCYmYy5hbmNob3I9PT0iIiYmcihsLCJCQURfQUxJQVMiLCJBbmNob3IgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZyIpLGkmJmEub3B0aW9ucy5zdHJpbmdLZXlzJiYoIVZ0KGMpfHx0eXBlb2YgYy52YWx1ZSE9InN0cmluZyJ8fGMudGFnJiZjLnRhZyE9PSJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiKSYmcihkPz9lLCJOT05fU1RSSU5HX0tFWSIsIldpdGggc3RyaW5nS2V5cywgYWxsIGtleXMgbXVzdCBiZSBzdHJpbmdzIiksbyYmKGMuc3BhY2VCZWZvcmU9ITApLG4mJihlLnR5cGU9PT0ic2NhbGFyIiYmZS5zb3VyY2U9PT0iIj9jLmNvbW1lbnQ9bjpjLmNvbW1lbnRCZWZvcmU9biksYS5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJnAmJihjLnNyY1Rva2VuPWUpLGN9ZnVuY3Rpb24gRGcoYSxlLHQscix7c3BhY2VCZWZvcmU6aSxjb21tZW50Om8sYW5jaG9yOm4sdGFnOmwsZW5kOmR9LGMpe2xldCBwPXt0eXBlOiJzY2FsYXIiLG9mZnNldDpNMGUoZSx0LHIpLGluZGVudDotMSxzb3VyY2U6IiJ9LHU9WFgoYSxwLGwsYyk7cmV0dXJuIG4mJih1LmFuY2hvcj1uLnNvdXJjZS5zdWJzdHJpbmcoMSksdS5hbmNob3I9PT0iIiYmYyhuLCJCQURfQUxJQVMiLCJBbmNob3IgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZyIpKSxpJiYodS5zcGFjZUJlZm9yZT0hMCksbyYmKHUuY29tbWVudD1vLHUucmFuZ2VbMl09ZCksdX1mdW5jdGlvbiBaeGEoe29wdGlvbnM6YX0se29mZnNldDplLHNvdXJjZTp0LGVuZDpyfSxpKXtsZXQgbz1uZXcgU24odC5zdWJzdHJpbmcoMSkpO28uc291cmNlPT09IiImJmkoZSwiQkFEX0FMSUFTIiwiQWxpYXMgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZyIpLG8uc291cmNlLmVuZHNXaXRoKCI6IikmJmkoZSt0Lmxlbmd0aC0xLCJCQURfQUxJQVMiLCJBbGlhcyBlbmRpbmcgaW4gOiBpcyBhbWJpZ3VvdXMiLCEwKTtsZXQgbj1lK3QubGVuZ3RoLGw9ZzEocixuLGEuc3RyaWN0LGkpO3JldHVybiBvLnJhbmdlPVtlLG4sbC5vZmZzZXRdLGwuY29tbWVudCYmKG8uY29tbWVudD1sLmNvbW1lbnQpLG99dmFyIEt4YSxuM3Q9ZigoKT0+e2FnKCk7JGEoKTtyM3QoKTtpM3QoKTtsOCgpO28zdCgpO0t4YT17Y29tcG9zZU5vZGU6UVgsY29tcG9zZUVtcHR5Tm9kZTpEZ307cyhRWCwiY29tcG9zZU5vZGUiKTtzKERnLCJjb21wb3NlRW1wdHlOb2RlIik7cyhaeGEsImNvbXBvc2VBbGlhcyIpfSk7ZnVuY3Rpb24gazBlKGEsZSx7b2Zmc2V0OnQsc3RhcnQ6cix2YWx1ZTppLGVuZDpvfSxuKXtsZXQgbD1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczplfSxhKSxkPW5ldyBUbih2b2lkIDAsbCksYz17YXRLZXk6ITEsYXRSb290OiEwLGRpcmVjdGl2ZXM6ZC5kaXJlY3RpdmVzLG9wdGlvbnM6ZC5vcHRpb25zLHNjaGVtYTpkLnNjaGVtYX0scD1tMShyLHtpbmRpY2F0b3I6ImRvYy1zdGFydCIsbmV4dDppPz9vPy5bMF0sb2Zmc2V0OnQsb25FcnJvcjpuLHBhcmVudEluZGVudDowLHN0YXJ0T25OZXdsaW5lOiEwfSk7cC5mb3VuZCYmKGQuZGlyZWN0aXZlcy5kb2NTdGFydD0hMCxpJiYoaS50eXBlPT09ImJsb2NrLW1hcCJ8fGkudHlwZT09PSJibG9jay1zZXEiKSYmIXAuaGFzTmV3bGluZSYmbihwLmVuZCwiTUlTU0lOR19DSEFSIiwiQmxvY2sgY29sbGVjdGlvbiBjYW5ub3Qgc3RhcnQgb24gc2FtZSBsaW5lIHdpdGggZGlyZWN0aXZlcy1lbmQgbWFya2VyIikpLGQuY29udGVudHM9aT9RWChjLGkscCxuKTpEZyhjLHAuZW5kLHIsbnVsbCxwLG4pO2xldCB1PWQuY29udGVudHMucmFuZ2VbMl0sbT1nMShvLHUsITEsbik7cmV0dXJuIG0uY29tbWVudCYmKGQuY29tbWVudD1tLmNvbW1lbnQpLGQucmFuZ2U9W3QsdSxtLm9mZnNldF0sZH12YXIgbDN0PWYoKCk9Pnt6ZygpO24zdCgpO2w4KCk7X2coKTtzKGswZSwiY29tcG9zZURvYyIpfSk7ZnVuY3Rpb24gQWcoYSl7aWYodHlwZW9mIGE9PSJudW1iZXIiKXJldHVyblthLGErMV07aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gYS5sZW5ndGg9PT0yP2E6W2FbMF0sYVsxXV07bGV0e29mZnNldDplLHNvdXJjZTp0fT1hO3JldHVybltlLGUrKHR5cGVvZiB0PT0ic3RyaW5nIj90Lmxlbmd0aDoxKV19ZnVuY3Rpb24gYzN0KGEpe2xldCBlPSIiLHQ9ITEscj0hMTtmb3IobGV0IGk9MDtpPGEubGVuZ3RoOysraSl7bGV0IG89YVtpXTtzd2l0Y2gob1swXSl7Y2FzZSIjIjplKz0oZT09PSIiPyIiOnI/YAoKYDpgCmApKyhvLnN1YnN0cmluZygxKXx8IiAiKSx0PSEwLHI9ITE7YnJlYWs7Y2FzZSIlIjphW2krMV0/LlswXSE9PSIjIiYmKGkrPTEpLHQ9ITE7YnJlYWs7ZGVmYXVsdDp0fHwocj0hMCksdD0hMX19cmV0dXJue2NvbW1lbnQ6ZSxhZnRlckVtcHR5TGluZTpyfX12YXIgTmwsUzBlPWYoKCk9PntEY2UoKTt6ZygpO0NnKCk7JGEoKTtsM3QoKTtsOCgpO3MoQWcsImdldEVycm9yUG9zIik7cyhjM3QsInBhcnNlUHJlbHVkZSIpO05sPWNsYXNze3N0YXRpY3tzKHRoaXMsIkNvbXBvc2VyIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5kb2M9bnVsbCx0aGlzLmF0RGlyZWN0aXZlcz0hMSx0aGlzLnByZWx1ZGU9W10sdGhpcy5lcnJvcnM9W10sdGhpcy53YXJuaW5ncz1bXSx0aGlzLm9uRXJyb3I9KHQscixpLG8pPT57bGV0IG49QWcodCk7bz90aGlzLndhcm5pbmdzLnB1c2gobmV3IEEwKG4scixpKSk6dGhpcy5lcnJvcnMucHVzaChuZXcgVWkobixyLGkpKX0sdGhpcy5kaXJlY3RpdmVzPW5ldyBmMSh7dmVyc2lvbjplLnZlcnNpb258fCIxLjIifSksdGhpcy5vcHRpb25zPWV9ZGVjb3JhdGUoZSx0KXtsZXR7Y29tbWVudDpyLGFmdGVyRW1wdHlMaW5lOml9PWMzdCh0aGlzLnByZWx1ZGUpO2lmKHIpe2xldCBvPWUuY29udGVudHM7aWYodCllLmNvbW1lbnQ9ZS5jb21tZW50P2Ake2UuY29tbWVudH0KJHtyfWA6cjtlbHNlIGlmKGl8fGUuZGlyZWN0aXZlcy5kb2NTdGFydHx8IW8pZS5jb21tZW50QmVmb3JlPXI7ZWxzZSBpZihMYShvKSYmIW8uZmxvdyYmby5pdGVtcy5sZW5ndGg+MCl7bGV0IG49by5pdGVtc1swXTtyYShuKSYmKG49bi5rZXkpO2xldCBsPW4uY29tbWVudEJlZm9yZTtuLmNvbW1lbnRCZWZvcmU9bD9gJHtyfQoke2x9YDpyfWVsc2V7bGV0IG49by5jb21tZW50QmVmb3JlO28uY29tbWVudEJlZm9yZT1uP2Ake3J9CiR7bn1gOnJ9fXQ/KEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUuZXJyb3JzLHRoaXMuZXJyb3JzKSxBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLndhcm5pbmdzLHRoaXMud2FybmluZ3MpKTooZS5lcnJvcnM9dGhpcy5lcnJvcnMsZS53YXJuaW5ncz10aGlzLndhcm5pbmdzKSx0aGlzLnByZWx1ZGU9W10sdGhpcy5lcnJvcnM9W10sdGhpcy53YXJuaW5ncz1bXX1zdHJlYW1JbmZvKCl7cmV0dXJue2NvbW1lbnQ6YzN0KHRoaXMucHJlbHVkZSkuY29tbWVudCxkaXJlY3RpdmVzOnRoaXMuZGlyZWN0aXZlcyxlcnJvcnM6dGhpcy5lcnJvcnMsd2FybmluZ3M6dGhpcy53YXJuaW5nc319KmNvbXBvc2UoZSx0PSExLHI9LTEpe2ZvcihsZXQgaSBvZiBlKXlpZWxkKnRoaXMubmV4dChpKTt5aWVsZCp0aGlzLmVuZCh0LHIpfSpuZXh0KGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UiZGlyZWN0aXZlIjp0aGlzLmRpcmVjdGl2ZXMuYWRkKGUuc291cmNlLCh0LHIsaSk9PntsZXQgbz1BZyhlKTtvWzBdKz10LHRoaXMub25FcnJvcihvLCJCQURfRElSRUNUSVZFIixyLGkpfSksdGhpcy5wcmVsdWRlLnB1c2goZS5zb3VyY2UpLHRoaXMuYXREaXJlY3RpdmVzPSEwO2JyZWFrO2Nhc2UiZG9jdW1lbnQiOntsZXQgdD1rMGUodGhpcy5vcHRpb25zLHRoaXMuZGlyZWN0aXZlcyxlLHRoaXMub25FcnJvcik7dGhpcy5hdERpcmVjdGl2ZXMmJiF0LmRpcmVjdGl2ZXMuZG9jU3RhcnQmJnRoaXMub25FcnJvcihlLCJNSVNTSU5HX0NIQVIiLCJNaXNzaW5nIGRpcmVjdGl2ZXMtZW5kL2RvYy1zdGFydCBpbmRpY2F0b3IgbGluZSIpLHRoaXMuZGVjb3JhdGUodCwhMSksdGhpcy5kb2MmJih5aWVsZCB0aGlzLmRvYyksdGhpcy5kb2M9dCx0aGlzLmF0RGlyZWN0aXZlcz0hMTticmVha31jYXNlImJ5dGUtb3JkZXItbWFyayI6Y2FzZSJzcGFjZSI6YnJlYWs7Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOnRoaXMucHJlbHVkZS5wdXNoKGUuc291cmNlKTticmVhaztjYXNlImVycm9yIjp7bGV0IHQ9ZS5zb3VyY2U/YCR7ZS5tZXNzYWdlfTogJHtKU09OLnN0cmluZ2lmeShlLnNvdXJjZSl9YDplLm1lc3NhZ2Uscj1uZXcgVWkoQWcoZSksIlVORVhQRUNURURfVE9LRU4iLHQpO3RoaXMuYXREaXJlY3RpdmVzfHwhdGhpcy5kb2M/dGhpcy5lcnJvcnMucHVzaChyKTp0aGlzLmRvYy5lcnJvcnMucHVzaChyKTticmVha31jYXNlImRvYy1lbmQiOntpZighdGhpcy5kb2Mpe2xldCByPSJVbmV4cGVjdGVkIGRvYy1lbmQgd2l0aG91dCBwcmVjZWRpbmcgZG9jdW1lbnQiO3RoaXMuZXJyb3JzLnB1c2gobmV3IFVpKEFnKGUpLCJVTkVYUEVDVEVEX1RPS0VOIixyKSk7YnJlYWt9dGhpcy5kb2MuZGlyZWN0aXZlcy5kb2NFbmQ9ITA7bGV0IHQ9ZzEoZS5lbmQsZS5vZmZzZXQrZS5zb3VyY2UubGVuZ3RoLHRoaXMuZG9jLm9wdGlvbnMuc3RyaWN0LHRoaXMub25FcnJvcik7aWYodGhpcy5kZWNvcmF0ZSh0aGlzLmRvYywhMCksdC5jb21tZW50KXtsZXQgcj10aGlzLmRvYy5jb21tZW50O3RoaXMuZG9jLmNvbW1lbnQ9cj9gJHtyfQoke3QuY29tbWVudH1gOnQuY29tbWVudH10aGlzLmRvYy5yYW5nZVsyXT10Lm9mZnNldDticmVha31kZWZhdWx0OnRoaXMuZXJyb3JzLnB1c2gobmV3IFVpKEFnKGUpLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5zdXBwb3J0ZWQgdG9rZW4gJHtlLnR5cGV9YCkpfX0qZW5kKGU9ITEsdD0tMSl7aWYodGhpcy5kb2MpdGhpcy5kZWNvcmF0ZSh0aGlzLmRvYywhMCkseWllbGQgdGhpcy5kb2MsdGhpcy5kb2M9bnVsbDtlbHNlIGlmKGUpe2xldCByPU9iamVjdC5hc3NpZ24oe19kaXJlY3RpdmVzOnRoaXMuZGlyZWN0aXZlc30sdGhpcy5vcHRpb25zKSxpPW5ldyBUbih2b2lkIDAscik7dGhpcy5hdERpcmVjdGl2ZXMmJnRoaXMub25FcnJvcih0LCJNSVNTSU5HX0NIQVIiLCJNaXNzaW5nIGRpcmVjdGl2ZXMtZW5kIGluZGljYXRvciBsaW5lIiksaS5yYW5nZT1bMCx0LHRdLHRoaXMuZGVjb3JhdGUoaSwhMSkseWllbGQgaX19fX0pO2Z1bmN0aW9uIEMwZShhLGU9ITAsdCl7aWYoYSl7bGV0IHI9cygoaSxvLG4pPT57bGV0IGw9dHlwZW9mIGk9PSJudW1iZXIiP2k6QXJyYXkuaXNBcnJheShpKT9pWzBdOmkub2Zmc2V0O2lmKHQpdChsLG8sbik7ZWxzZSB0aHJvdyBuZXcgVWkoW2wsbCsxXSxvLG4pfSwiX29uRXJyb3IiKTtzd2l0Y2goYS50eXBlKXtjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6cmV0dXJuICRnKGEsZSxyKTtjYXNlImJsb2NrLXNjYWxhciI6cmV0dXJuIExnKHtvcHRpb25zOntzdHJpY3Q6ZX19LGEscil9fXJldHVybiBudWxsfWZ1bmN0aW9uIF8wZShhLGUpe2xldHtpbXBsaWNpdEtleTp0PSExLGluZGVudDpyLGluRmxvdzppPSExLG9mZnNldDpvPS0xLHR5cGU6bj0iUExBSU4ifT1lLGw9JDIoe3R5cGU6bix2YWx1ZTphfSx7aW1wbGljaXRLZXk6dCxpbmRlbnQ6cj4wPyIgIi5yZXBlYXQocik6IiIsaW5GbG93Omksb3B0aW9uczp7YmxvY2tRdW90ZTohMCxsaW5lV2lkdGg6LTF9fSksZD1lLmVuZD8/W3t0eXBlOiJuZXdsaW5lIixvZmZzZXQ6LTEsaW5kZW50OnIsc291cmNlOmAKYH1dO3N3aXRjaChsWzBdKXtjYXNlInwiOmNhc2UiPiI6e2xldCBjPWwuaW5kZXhPZihgCmApLHA9bC5zdWJzdHJpbmcoMCxjKSx1PWwuc3Vic3RyaW5nKGMrMSkrYApgLG09W3t0eXBlOiJibG9jay1zY2FsYXItaGVhZGVyIixvZmZzZXQ6byxpbmRlbnQ6cixzb3VyY2U6cH1dO3JldHVybiBkM3QobSxkKXx8bS5wdXNoKHt0eXBlOiJuZXdsaW5lIixvZmZzZXQ6LTEsaW5kZW50OnIsc291cmNlOmAKYH0pLHt0eXBlOiJibG9jay1zY2FsYXIiLG9mZnNldDpvLGluZGVudDpyLHByb3BzOm0sc291cmNlOnV9fWNhc2UnIic6cmV0dXJue3R5cGU6ImRvdWJsZS1xdW90ZWQtc2NhbGFyIixvZmZzZXQ6byxpbmRlbnQ6cixzb3VyY2U6bCxlbmQ6ZH07Y2FzZSInIjpyZXR1cm57dHlwZToic2luZ2xlLXF1b3RlZC1zY2FsYXIiLG9mZnNldDpvLGluZGVudDpyLHNvdXJjZTpsLGVuZDpkfTtkZWZhdWx0OnJldHVybnt0eXBlOiJzY2FsYXIiLG9mZnNldDpvLGluZGVudDpyLHNvdXJjZTpsLGVuZDpkfX19ZnVuY3Rpb24gVDBlKGEsZSx0PXt9KXtsZXR7YWZ0ZXJLZXk6cj0hMSxpbXBsaWNpdEtleTppPSExLGluRmxvdzpvPSExLHR5cGU6bn09dCxsPSJpbmRlbnQiaW4gYT9hLmluZGVudDpudWxsO2lmKHImJnR5cGVvZiBsPT0ibnVtYmVyIiYmKGwrPTIpLCFuKXN3aXRjaChhLnR5cGUpe2Nhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOm49IlFVT1RFX1NJTkdMRSI7YnJlYWs7Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6bj0iUVVPVEVfRE9VQkxFIjticmVhaztjYXNlImJsb2NrLXNjYWxhciI6e2xldCBjPWEucHJvcHNbMF07aWYoYy50eXBlIT09ImJsb2NrLXNjYWxhci1oZWFkZXIiKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBibG9jayBzY2FsYXIgaGVhZGVyIik7bj1jLnNvdXJjZVswXT09PSI+Ij8iQkxPQ0tfRk9MREVEIjoiQkxPQ0tfTElURVJBTCI7YnJlYWt9ZGVmYXVsdDpuPSJQTEFJTiJ9bGV0IGQ9JDIoe3R5cGU6bix2YWx1ZTplfSx7aW1wbGljaXRLZXk6aXx8bD09PW51bGwsaW5kZW50OmwhPT1udWxsJiZsPjA/IiAiLnJlcGVhdChsKToiIixpbkZsb3c6byxvcHRpb25zOntibG9ja1F1b3RlOiEwLGxpbmVXaWR0aDotMX19KTtzd2l0Y2goZFswXSl7Y2FzZSJ8IjpjYXNlIj4iOlh4YShhLGQpO2JyZWFrO2Nhc2UnIic6ejBlKGEsZCwiZG91YmxlLXF1b3RlZC1zY2FsYXIiKTticmVhaztjYXNlIiciOnowZShhLGQsInNpbmdsZS1xdW90ZWQtc2NhbGFyIik7YnJlYWs7ZGVmYXVsdDp6MGUoYSxkLCJzY2FsYXIiKX19ZnVuY3Rpb24gWHhhKGEsZSl7bGV0IHQ9ZS5pbmRleE9mKGAKYCkscj1lLnN1YnN0cmluZygwLHQpLGk9ZS5zdWJzdHJpbmcodCsxKStgCmA7aWYoYS50eXBlPT09ImJsb2NrLXNjYWxhciIpe2xldCBvPWEucHJvcHNbMF07aWYoby50eXBlIT09ImJsb2NrLXNjYWxhci1oZWFkZXIiKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBibG9jayBzY2FsYXIgaGVhZGVyIik7by5zb3VyY2U9cixhLnNvdXJjZT1pfWVsc2V7bGV0e29mZnNldDpvfT1hLG49ImluZGVudCJpbiBhP2EuaW5kZW50Oi0xLGw9W3t0eXBlOiJibG9jay1zY2FsYXItaGVhZGVyIixvZmZzZXQ6byxpbmRlbnQ6bixzb3VyY2U6cn1dO2QzdChsLCJlbmQiaW4gYT9hLmVuZDp2b2lkIDApfHxsLnB1c2goe3R5cGU6Im5ld2xpbmUiLG9mZnNldDotMSxpbmRlbnQ6bixzb3VyY2U6YApgfSk7Zm9yKGxldCBkIG9mIE9iamVjdC5rZXlzKGEpKWQhPT0idHlwZSImJmQhPT0ib2Zmc2V0IiYmZGVsZXRlIGFbZF07T2JqZWN0LmFzc2lnbihhLHt0eXBlOiJibG9jay1zY2FsYXIiLGluZGVudDpuLHByb3BzOmwsc291cmNlOml9KX19ZnVuY3Rpb24gZDN0KGEsZSl7aWYoZSlmb3IobGV0IHQgb2YgZSlzd2l0Y2godC50eXBlKXtjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmEucHVzaCh0KTticmVhaztjYXNlIm5ld2xpbmUiOnJldHVybiBhLnB1c2godCksITB9cmV0dXJuITF9ZnVuY3Rpb24gejBlKGEsZSx0KXtzd2l0Y2goYS50eXBlKXtjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6YS50eXBlPXQsYS5zb3VyY2U9ZTticmVhaztjYXNlImJsb2NrLXNjYWxhciI6e2xldCByPWEucHJvcHMuc2xpY2UoMSksaT1lLmxlbmd0aDthLnByb3BzWzBdLnR5cGU9PT0iYmxvY2stc2NhbGFyLWhlYWRlciImJihpLT1hLnByb3BzWzBdLnNvdXJjZS5sZW5ndGgpO2ZvcihsZXQgbyBvZiByKW8ub2Zmc2V0Kz1pO2RlbGV0ZSBhLnByb3BzLE9iamVjdC5hc3NpZ24oYSx7dHlwZTp0LHNvdXJjZTplLGVuZDpyfSk7YnJlYWt9Y2FzZSJibG9jay1tYXAiOmNhc2UiYmxvY2stc2VxIjp7bGV0IGk9e3R5cGU6Im5ld2xpbmUiLG9mZnNldDphLm9mZnNldCtlLmxlbmd0aCxpbmRlbnQ6YS5pbmRlbnQsc291cmNlOmAKYH07ZGVsZXRlIGEuaXRlbXMsT2JqZWN0LmFzc2lnbihhLHt0eXBlOnQsc291cmNlOmUsZW5kOltpXX0pO2JyZWFrfWRlZmF1bHQ6e2xldCByPSJpbmRlbnQiaW4gYT9hLmluZGVudDotMSxpPSJlbmQiaW4gYSYmQXJyYXkuaXNBcnJheShhLmVuZCk/YS5lbmQuZmlsdGVyKG89Pm8udHlwZT09PSJzcGFjZSJ8fG8udHlwZT09PSJjb21tZW50Inx8by50eXBlPT09Im5ld2xpbmUiKTpbXTtmb3IobGV0IG8gb2YgT2JqZWN0LmtleXMoYSkpbyE9PSJ0eXBlIiYmbyE9PSJvZmZzZXQiJiZkZWxldGUgYVtvXTtPYmplY3QuYXNzaWduKGEse3R5cGU6dCxpbmRlbnQ6cixzb3VyY2U6ZSxlbmQ6aX0pfX19dmFyIHUzdD1mKCgpPT57eTBlKCk7dzBlKCk7Q2coKTtsZygpO3MoQzBlLCJyZXNvbHZlQXNTY2FsYXIiKTtzKF8wZSwiY3JlYXRlU2NhbGFyVG9rZW4iKTtzKFQwZSwic2V0U2NhbGFyVmFsdWUiKTtzKFh4YSwic2V0QmxvY2tTY2FsYXJWYWx1ZSIpO3MoZDN0LCJhZGRFbmR0b0Jsb2NrUHJvcHMiKTtzKHowZSwic2V0Rmxvd1NjYWxhclZhbHVlIil9KTtmdW5jdGlvbiBKWChhKXtzd2l0Y2goYS50eXBlKXtjYXNlImJsb2NrLXNjYWxhciI6e2xldCBlPSIiO2ZvcihsZXQgdCBvZiBhLnByb3BzKWUrPUpYKHQpO3JldHVybiBlK2Euc291cmNlfWNhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6e2xldCBlPSIiO2ZvcihsZXQgdCBvZiBhLml0ZW1zKWUrPWVRKHQpO3JldHVybiBlfWNhc2UiZmxvdy1jb2xsZWN0aW9uIjp7bGV0IGU9YS5zdGFydC5zb3VyY2U7Zm9yKGxldCB0IG9mIGEuaXRlbXMpZSs9ZVEodCk7Zm9yKGxldCB0IG9mIGEuZW5kKWUrPXQuc291cmNlO3JldHVybiBlfWNhc2UiZG9jdW1lbnQiOntsZXQgZT1lUShhKTtpZihhLmVuZClmb3IobGV0IHQgb2YgYS5lbmQpZSs9dC5zb3VyY2U7cmV0dXJuIGV9ZGVmYXVsdDp7bGV0IGU9YS5zb3VyY2U7aWYoImVuZCJpbiBhJiZhLmVuZClmb3IobGV0IHQgb2YgYS5lbmQpZSs9dC5zb3VyY2U7cmV0dXJuIGV9fX1mdW5jdGlvbiBlUSh7c3RhcnQ6YSxrZXk6ZSxzZXA6dCx2YWx1ZTpyfSl7bGV0IGk9IiI7Zm9yKGxldCBvIG9mIGEpaSs9by5zb3VyY2U7aWYoZSYmKGkrPUpYKGUpKSx0KWZvcihsZXQgbyBvZiB0KWkrPW8uc291cmNlO3JldHVybiByJiYoaSs9SlgocikpLGl9dmFyIEwwZSxwM3Q9ZigoKT0+e0wwZT1zKGE9PiJ0eXBlImluIGE/SlgoYSk6ZVEoYSksInN0cmluZ2lmeSIpO3MoSlgsInN0cmluZ2lmeVRva2VuIik7cyhlUSwic3RyaW5naWZ5SXRlbSIpfSk7ZnVuY3Rpb24gUmwoYSxlKXsidHlwZSJpbiBhJiZhLnR5cGU9PT0iZG9jdW1lbnQiJiYoYT17c3RhcnQ6YS5zdGFydCx2YWx1ZTphLnZhbHVlfSksaDN0KE9iamVjdC5mcmVlemUoW10pLGEsZSl9ZnVuY3Rpb24gaDN0KGEsZSx0KXtsZXQgcj10KGUsYSk7aWYodHlwZW9mIHI9PSJzeW1ib2wiKXJldHVybiByO2ZvcihsZXQgaSBvZlsia2V5IiwidmFsdWUiXSl7bGV0IG89ZVtpXTtpZihvJiYiaXRlbXMiaW4gbyl7Zm9yKGxldCBuPTA7bjxvLml0ZW1zLmxlbmd0aDsrK24pe2xldCBsPWgzdChPYmplY3QuZnJlZXplKGEuY29uY2F0KFtbaSxuXV0pKSxvLml0ZW1zW25dLHQpO2lmKHR5cGVvZiBsPT0ibnVtYmVyIiluPWwtMTtlbHNle2lmKGw9PT0kMGUpcmV0dXJuICQwZTtsPT09ZjN0JiYoby5pdGVtcy5zcGxpY2UobiwxKSxuLT0xKX19dHlwZW9mIHI9PSJmdW5jdGlvbiImJmk9PT0ia2V5IiYmKHI9cihlLGEpKX19cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3IoZSxhKTpyfXZhciAkMGUsUXhhLGYzdCxtM3Q9ZigoKT0+eyQwZT1TeW1ib2woImJyZWFrIHZpc2l0IiksUXhhPVN5bWJvbCgic2tpcCBjaGlsZHJlbiIpLGYzdD1TeW1ib2woInJlbW92ZSBpdGVtIik7cyhSbCwidmlzaXQiKSxSbC5CUkVBSz0kMGUsUmwuU0tJUD1ReGEsUmwuUkVNT1ZFPWYzdCxSbC5pdGVtQXRQYXRoPShhLGUpPT57bGV0IHQ9YTtmb3IobGV0W3IsaV1vZiBlKXtsZXQgbz10Py5bcl07aWYobyYmIml0ZW1zImluIG8pdD1vLml0ZW1zW2ldO2Vsc2UgcmV0dXJufXJldHVybiB0fSxSbC5wYXJlbnRDb2xsZWN0aW9uPShhLGUpPT57bGV0IHQ9UmwuaXRlbUF0UGF0aChhLGUuc2xpY2UoMCwtMSkpLHI9ZVtlLmxlbmd0aC0xXVswXSxpPXQ/LltyXTtpZihpJiYiaXRlbXMiaW4gaSlyZXR1cm4gaTt0aHJvdyBuZXcgRXJyb3IoIlBhcmVudCBjb2xsZWN0aW9uIG5vdCBmb3VuZCIpfTtzKGgzdCwiX3Zpc2l0Iil9KTt2YXIgUGc9e307bHQoUGcse0JPTTooKT0+YzgsRE9DVU1FTlQ6KCk9PmQ4LEZMT1dfRU5EOigpPT51OCxTQ0FMQVI6KCk9PlIzLGNyZWF0ZVNjYWxhclRva2VuOigpPT5fMGUsaXNDb2xsZWN0aW9uOigpPT5nM3QsaXNTY2FsYXI6KCk9PmIzdCxwcmV0dHlUb2tlbjooKT0+djN0LHJlc29sdmVBc1NjYWxhcjooKT0+QzBlLHNldFNjYWxhclZhbHVlOigpPT5UMGUsc3RyaW5naWZ5OigpPT5MMGUsdG9rZW5UeXBlOigpPT50USx2aXNpdDooKT0+Umx9KTtmdW5jdGlvbiB2M3QoYSl7c3dpdGNoKGEpe2Nhc2UgYzg6cmV0dXJuIjxCT00+IjtjYXNlIGQ4OnJldHVybiI8RE9DPiI7Y2FzZSB1ODpyZXR1cm4iPEZMT1dfRU5EPiI7Y2FzZSBSMzpyZXR1cm4iPFNDQUxBUj4iO2RlZmF1bHQ6cmV0dXJuIEpTT04uc3RyaW5naWZ5KGEpfX1mdW5jdGlvbiB0UShhKXtzd2l0Y2goYSl7Y2FzZSBjODpyZXR1cm4iYnl0ZS1vcmRlci1tYXJrIjtjYXNlIGQ4OnJldHVybiJkb2MtbW9kZSI7Y2FzZSB1ODpyZXR1cm4iZmxvdy1lcnJvci1lbmQiO2Nhc2UgUjM6cmV0dXJuInNjYWxhciI7Y2FzZSItLS0iOnJldHVybiJkb2Mtc3RhcnQiO2Nhc2UiLi4uIjpyZXR1cm4iZG9jLWVuZCI7Y2FzZSIiOmNhc2VgCmA6Y2FzZWBccgpgOnJldHVybiJuZXdsaW5lIjtjYXNlIi0iOnJldHVybiJzZXEtaXRlbS1pbmQiO2Nhc2UiPyI6cmV0dXJuImV4cGxpY2l0LWtleS1pbmQiO2Nhc2UiOiI6cmV0dXJuIm1hcC12YWx1ZS1pbmQiO2Nhc2UieyI6cmV0dXJuImZsb3ctbWFwLXN0YXJ0IjtjYXNlIn0iOnJldHVybiJmbG93LW1hcC1lbmQiO2Nhc2UiWyI6cmV0dXJuImZsb3ctc2VxLXN0YXJ0IjtjYXNlIl0iOnJldHVybiJmbG93LXNlcS1lbmQiO2Nhc2UiLCI6cmV0dXJuImNvbW1hIn1zd2l0Y2goYVswXSl7Y2FzZSIgIjpjYXNlIgkiOnJldHVybiJzcGFjZSI7Y2FzZSIjIjpyZXR1cm4iY29tbWVudCI7Y2FzZSIlIjpyZXR1cm4iZGlyZWN0aXZlLWxpbmUiO2Nhc2UiKiI6cmV0dXJuImFsaWFzIjtjYXNlIiYiOnJldHVybiJhbmNob3IiO2Nhc2UiISI6cmV0dXJuInRhZyI7Y2FzZSInIjpyZXR1cm4ic2luZ2xlLXF1b3RlZC1zY2FsYXIiO2Nhc2UnIic6cmV0dXJuImRvdWJsZS1xdW90ZWQtc2NhbGFyIjtjYXNlInwiOmNhc2UiPiI6cmV0dXJuImJsb2NrLXNjYWxhci1oZWFkZXIifXJldHVybiBudWxsfXZhciBjOCxkOCx1OCxSMyxnM3QsYjN0LGFRPWYoKCk9Pnt1M3QoKTtwM3QoKTttM3QoKTtjOD0iXHVGRUZGIixkOD0iAiIsdTg9IhgiLFIzPSIfIixnM3Q9cyhhPT4hIWEmJiJpdGVtcyJpbiBhLCJpc0NvbGxlY3Rpb24iKSxiM3Q9cyhhPT4hIWEmJihhLnR5cGU9PT0ic2NhbGFyInx8YS50eXBlPT09InNpbmdsZS1xdW90ZWQtc2NhbGFyInx8YS50eXBlPT09ImRvdWJsZS1xdW90ZWQtc2NhbGFyInx8YS50eXBlPT09ImJsb2NrLXNjYWxhciIpLCJpc1NjYWxhciIpO3ModjN0LCJwcmV0dHlUb2tlbiIpO3ModFEsInRva2VuVHlwZSIpfSk7ZnVuY3Rpb24gYjEoYSl7c3dpdGNoKGEpe2Nhc2Ugdm9pZCAwOmNhc2UiICI6Y2FzZWAKYDpjYXNlIlxyIjpjYXNlIgkiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciB4M3QsSnhhLHJRLGV5YSxEMGUsUDAsQTBlPWYoKCk9PnthUSgpO3MoYjEsImlzRW1wdHkiKTt4M3Q9bmV3IFNldCgiMDEyMzQ1Njc4OUFCQ0RFRmFiY2RlZiIpLEp4YT1uZXcgU2V0KCIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei0jOy8/OkAmPSskXy4hfionKCkiKSxyUT1uZXcgU2V0KCIsW117fSIpLGV5YT1uZXcgU2V0KGAgLFtde30KXHIJYCksRDBlPXMoYT0+IWF8fGV5YS5oYXMoYSksImlzTm90QW5jaG9yQ2hhciIpLFAwPWNsYXNze3N0YXRpY3tzKHRoaXMsIkxleGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmF0RW5kPSExLHRoaXMuYmxvY2tTY2FsYXJJbmRlbnQ9LTEsdGhpcy5ibG9ja1NjYWxhcktlZXA9ITEsdGhpcy5idWZmZXI9IiIsdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsPTAsdGhpcy5pbmRlbnROZXh0PTAsdGhpcy5pbmRlbnRWYWx1ZT0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1udWxsLHRoaXMucG9zPTB9KmxleChlLHQ9ITEpe2lmKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBUeXBlRXJyb3IoInNvdXJjZSBpcyBub3QgYSBzdHJpbmciKTt0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlcj90aGlzLmJ1ZmZlcitlOmUsdGhpcy5saW5lRW5kUG9zPW51bGx9dGhpcy5hdEVuZD0hdDtsZXQgcj10aGlzLm5leHQ/PyJzdHJlYW0iO2Zvcig7ciYmKHR8fHRoaXMuaGFzQ2hhcnMoMSkpOylyPXlpZWxkKnRoaXMucGFyc2VOZXh0KHIpfWF0TGluZUVuZCgpe2xldCBlPXRoaXMucG9zLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0PT09IiAifHx0PT09IgkiOyl0PXRoaXMuYnVmZmVyWysrZV07cmV0dXJuIXR8fHQ9PT0iIyJ8fHQ9PT1gCmA/ITA6dD09PSJcciI/dGhpcy5idWZmZXJbZSsxXT09PWAKYDohMX1jaGFyQXQoZSl7cmV0dXJuIHRoaXMuYnVmZmVyW3RoaXMucG9zK2VdfWNvbnRpbnVlU2NhbGFyKGUpe2xldCB0PXRoaXMuYnVmZmVyW2VdO2lmKHRoaXMuaW5kZW50TmV4dD4wKXtsZXQgcj0wO2Zvcig7dD09PSIgIjspdD10aGlzLmJ1ZmZlclsrK3IrZV07aWYodD09PSJcciIpe2xldCBpPXRoaXMuYnVmZmVyW3IrZSsxXTtpZihpPT09YApgfHwhaSYmIXRoaXMuYXRFbmQpcmV0dXJuIGUrcisxfXJldHVybiB0PT09YApgfHxyPj10aGlzLmluZGVudE5leHR8fCF0JiYhdGhpcy5hdEVuZD9lK3I6LTF9aWYodD09PSItInx8dD09PSIuIil7bGV0IHI9dGhpcy5idWZmZXIuc3Vic3RyKGUsMyk7aWYoKHI9PT0iLS0tInx8cj09PSIuLi4iKSYmYjEodGhpcy5idWZmZXJbZSszXSkpcmV0dXJuLTF9cmV0dXJuIGV9Z2V0TGluZSgpe2xldCBlPXRoaXMubGluZUVuZFBvcztyZXR1cm4odHlwZW9mIGUhPSJudW1iZXIifHxlIT09LTEmJmU8dGhpcy5wb3MpJiYoZT10aGlzLmJ1ZmZlci5pbmRleE9mKGAKYCx0aGlzLnBvcyksdGhpcy5saW5lRW5kUG9zPWUpLGU9PT0tMT90aGlzLmF0RW5kP3RoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyk6bnVsbDoodGhpcy5idWZmZXJbZS0xXT09PSJcciImJihlLT0xKSx0aGlzLmJ1ZmZlci5zdWJzdHJpbmcodGhpcy5wb3MsZSkpfWhhc0NoYXJzKGUpe3JldHVybiB0aGlzLnBvcytlPD10aGlzLmJ1ZmZlci5sZW5ndGh9c2V0TmV4dChlKXtyZXR1cm4gdGhpcy5idWZmZXI9dGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKSx0aGlzLnBvcz0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1lLG51bGx9cGVlayhlKXtyZXR1cm4gdGhpcy5idWZmZXIuc3Vic3RyKHRoaXMucG9zLGUpfSpwYXJzZU5leHQoZSl7c3dpdGNoKGUpe2Nhc2Uic3RyZWFtIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVN0cmVhbSgpO2Nhc2UibGluZS1zdGFydCI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VMaW5lU3RhcnQoKTtjYXNlImJsb2NrLXN0YXJ0IjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKTtjYXNlImRvYyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VEb2N1bWVudCgpO2Nhc2UiZmxvdyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VGbG93Q29sbGVjdGlvbigpO2Nhc2UicXVvdGVkLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtjYXNlImJsb2NrLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhcigpO2Nhc2UicGxhaW4tc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZVN0cmVhbSgpe2xldCBlPXRoaXMuZ2V0TGluZSgpO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoInN0cmVhbSIpO2lmKGVbMF09PT1jOCYmKHlpZWxkKnRoaXMucHVzaENvdW50KDEpLGU9ZS5zdWJzdHJpbmcoMSkpLGVbMF09PT0iJSIpe2xldCB0PWUubGVuZ3RoLHI9ZS5pbmRleE9mKCIjIik7Zm9yKDtyIT09LTE7KXtsZXQgbz1lW3ItMV07aWYobz09PSIgInx8bz09PSIJIil7dD1yLTE7YnJlYWt9ZWxzZSByPWUuaW5kZXhPZigiIyIscisxKX1mb3IoOzspe2xldCBvPWVbdC0xXTtpZihvPT09IiAifHxvPT09IgkiKXQtPTE7ZWxzZSBicmVha31sZXQgaT0oeWllbGQqdGhpcy5wdXNoQ291bnQodCkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKTtyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtaSksdGhpcy5wdXNoTmV3bGluZSgpLCJzdHJlYW0ifWlmKHRoaXMuYXRMaW5lRW5kKCkpe2xldCB0PXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7cmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpLHlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSwic3RyZWFtIn1yZXR1cm4geWllbGQgZDgseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpfSpwYXJzZUxpbmVTdGFydCgpe2xldCBlPXRoaXMuY2hhckF0KDApO2lmKCFlJiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJsaW5lLXN0YXJ0Iik7aWYoZT09PSItInx8ZT09PSIuIil7aWYoIXRoaXMuYXRFbmQmJiF0aGlzLmhhc0NoYXJzKDQpKXJldHVybiB0aGlzLnNldE5leHQoImxpbmUtc3RhcnQiKTtsZXQgdD10aGlzLnBlZWsoMyk7aWYoKHQ9PT0iLS0tInx8dD09PSIuLi4iKSYmYjEodGhpcy5jaGFyQXQoMykpKXJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgzKSx0aGlzLmluZGVudFZhbHVlPTAsdGhpcy5pbmRlbnROZXh0PTAsdD09PSItLS0iPyJkb2MiOiJzdHJlYW0ifXJldHVybiB0aGlzLmluZGVudFZhbHVlPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMSksdGhpcy5pbmRlbnROZXh0PnRoaXMuaW5kZW50VmFsdWUmJiFiMSh0aGlzLmNoYXJBdCgxKSkmJih0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSkseWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKX0qcGFyc2VCbG9ja1N0YXJ0KCl7bGV0W2UsdF09dGhpcy5wZWVrKDIpO2lmKCF0JiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zdGFydCIpO2lmKChlPT09Ii0ifHxlPT09Ij8ifHxlPT09IjoiKSYmYjEodCkpe2xldCByPSh5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpO3JldHVybiB0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSsxLHRoaXMuaW5kZW50VmFsdWUrPXIseWllbGQqdGhpcy5wYXJzZUJsb2NrU3RhcnQoKX1yZXR1cm4iZG9jIn0qcGFyc2VEb2N1bWVudCgpe3lpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7bGV0IGU9dGhpcy5nZXRMaW5lKCk7aWYoZT09PW51bGwpcmV0dXJuIHRoaXMuc2V0TmV4dCgiZG9jIik7bGV0IHQ9eWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpO3N3aXRjaChlW3RdKXtjYXNlIiMiOnlpZWxkKnRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpO2Nhc2Ugdm9pZCAwOnJldHVybiB5aWVsZCp0aGlzLnB1c2hOZXdsaW5lKCkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpO2Nhc2UieyI6Y2FzZSJbIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsPTEsImZsb3ciO2Nhc2UifSI6Y2FzZSJdIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksImRvYyI7Y2FzZSIqIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwoRDBlKSwiZG9jIjtjYXNlJyInOmNhc2UiJyI6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtjYXNlInwiOmNhc2UiPiI6cmV0dXJuIHQrPXlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhckhlYWRlcigpLHQrPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkseWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtdCkseWllbGQqdGhpcy5wdXNoTmV3bGluZSgpLHlpZWxkKnRoaXMucGFyc2VCbG9ja1NjYWxhcigpO2RlZmF1bHQ6cmV0dXJuIHlpZWxkKnRoaXMucGFyc2VQbGFpblNjYWxhcigpfX0qcGFyc2VGbG93Q29sbGVjdGlvbigpe2xldCBlLHQscj0tMTtkbyBlPXlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSxlPjA/KHQ9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCExKSx0aGlzLmluZGVudFZhbHVlPXI9dCk6dD0wLHQrPXlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCk7d2hpbGUoZSt0PjApO2xldCBpPXRoaXMuZ2V0TGluZSgpO2lmKGk9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoImZsb3ciKTtpZigociE9PS0xJiZyPHRoaXMuaW5kZW50TmV4dCYmaVswXSE9PSIjInx8cj09PTAmJihpLnN0YXJ0c1dpdGgoIi0tLSIpfHxpLnN0YXJ0c1dpdGgoIi4uLiIpKSYmYjEoaVszXSkpJiYhKHI9PT10aGlzLmluZGVudE5leHQtMSYmdGhpcy5mbG93TGV2ZWw9PT0xJiYoaVswXT09PSJdInx8aVswXT09PSJ9IikpKXJldHVybiB0aGlzLmZsb3dMZXZlbD0wLHlpZWxkIHU4LHlpZWxkKnRoaXMucGFyc2VMaW5lU3RhcnQoKTtsZXQgbz0wO2Zvcig7aVtvXT09PSIsIjspbys9eWllbGQqdGhpcy5wdXNoQ291bnQoMSksbys9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSx0aGlzLmZsb3dLZXk9ITE7c3dpdGNoKG8rPXlpZWxkKnRoaXMucHVzaEluZGljYXRvcnMoKSxpW29dKXtjYXNlIHZvaWQgMDpyZXR1cm4iZmxvdyI7Y2FzZSIjIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoaS5sZW5ndGgtbyksImZsb3ciO2Nhc2UieyI6Y2FzZSJbIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsKz0xLCJmbG93IjtjYXNlIn0iOmNhc2UiXSI6cmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KDEpLHRoaXMuZmxvd0tleT0hMCx0aGlzLmZsb3dMZXZlbC09MSx0aGlzLmZsb3dMZXZlbD8iZmxvdyI6ImRvYyI7Y2FzZSIqIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwoRDBlKSwiZmxvdyI7Y2FzZSciJzpjYXNlIiciOnJldHVybiB0aGlzLmZsb3dLZXk9ITAseWllbGQqdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO2Nhc2UiOiI6e2xldCBuPXRoaXMuY2hhckF0KDEpO2lmKHRoaXMuZmxvd0tleXx8YjEobil8fG49PT0iLCIpcmV0dXJuIHRoaXMuZmxvd0tleT0hMSx5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSx5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApLCJmbG93In1kZWZhdWx0OnJldHVybiB0aGlzLmZsb3dLZXk9ITEseWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZVF1b3RlZFNjYWxhcigpe2xldCBlPXRoaXMuY2hhckF0KDApLHQ9dGhpcy5idWZmZXIuaW5kZXhPZihlLHRoaXMucG9zKzEpO2lmKGU9PT0iJyIpZm9yKDt0IT09LTEmJnRoaXMuYnVmZmVyW3QrMV09PT0iJyI7KXQ9dGhpcy5idWZmZXIuaW5kZXhPZigiJyIsdCsyKTtlbHNlIGZvcig7dCE9PS0xOyl7bGV0IG89MDtmb3IoO3RoaXMuYnVmZmVyW3QtMS1vXT09PSJcXCI7KW8rPTE7aWYobyUyPT09MClicmVhazt0PXRoaXMuYnVmZmVyLmluZGV4T2YoJyInLHQrMSl9bGV0IHI9dGhpcy5idWZmZXIuc3Vic3RyaW5nKDAsdCksaT1yLmluZGV4T2YoYApgLHRoaXMucG9zKTtpZihpIT09LTEpe2Zvcig7aSE9PS0xOyl7bGV0IG89dGhpcy5jb250aW51ZVNjYWxhcihpKzEpO2lmKG89PT0tMSlicmVhaztpPXIuaW5kZXhPZihgCmAsbyl9aSE9PS0xJiYodD1pLShyW2ktMV09PT0iXHIiPzI6MSkpfWlmKHQ9PT0tMSl7aWYoIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dCgicXVvdGVkLXNjYWxhciIpO3Q9dGhpcy5idWZmZXIubGVuZ3RofXJldHVybiB5aWVsZCp0aGlzLnB1c2hUb0luZGV4KHQrMSwhMSksdGhpcy5mbG93TGV2ZWw/ImZsb3ciOiJkb2MifSpwYXJzZUJsb2NrU2NhbGFySGVhZGVyKCl7dGhpcy5ibG9ja1NjYWxhckluZGVudD0tMSx0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMTtsZXQgZT10aGlzLnBvcztmb3IoOzspe2xldCB0PXRoaXMuYnVmZmVyWysrZV07aWYodD09PSIrIil0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMDtlbHNlIGlmKHQ+IjAiJiZ0PD0iOSIpdGhpcy5ibG9ja1NjYWxhckluZGVudD1OdW1iZXIodCktMTtlbHNlIGlmKHQhPT0iLSIpYnJlYWt9cmV0dXJuIHlpZWxkKnRoaXMucHVzaFVudGlsKHQ9PmIxKHQpfHx0PT09IiMiKX0qcGFyc2VCbG9ja1NjYWxhcigpe2xldCBlPXRoaXMucG9zLTEsdD0wLHI7ZTpmb3IobGV0IG89dGhpcy5wb3M7cj10aGlzLmJ1ZmZlcltvXTsrK28pc3dpdGNoKHIpe2Nhc2UiICI6dCs9MTticmVhaztjYXNlYApgOmU9byx0PTA7YnJlYWs7Y2FzZSJcciI6e2xldCBuPXRoaXMuYnVmZmVyW28rMV07aWYoIW4mJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXNjYWxhciIpO2lmKG49PT1gCmApYnJlYWt9ZGVmYXVsdDpicmVhayBlfWlmKCFyJiYhdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zY2FsYXIiKTtpZih0Pj10aGlzLmluZGVudE5leHQpe3RoaXMuYmxvY2tTY2FsYXJJbmRlbnQ9PT0tMT90aGlzLmluZGVudE5leHQ9dDp0aGlzLmluZGVudE5leHQ9dGhpcy5ibG9ja1NjYWxhckluZGVudCsodGhpcy5pbmRlbnROZXh0PT09MD8xOnRoaXMuaW5kZW50TmV4dCk7ZG97bGV0IG89dGhpcy5jb250aW51ZVNjYWxhcihlKzEpO2lmKG89PT0tMSlicmVhaztlPXRoaXMuYnVmZmVyLmluZGV4T2YoYApgLG8pfXdoaWxlKGUhPT0tMSk7aWYoZT09PS0xKXtpZighdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJibG9jay1zY2FsYXIiKTtlPXRoaXMuYnVmZmVyLmxlbmd0aH19bGV0IGk9ZSsxO2ZvcihyPXRoaXMuYnVmZmVyW2ldO3I9PT0iICI7KXI9dGhpcy5idWZmZXJbKytpXTtpZihyPT09IgkiKXtmb3IoO3I9PT0iCSJ8fHI9PT0iICJ8fHI9PT0iXHIifHxyPT09YApgOylyPXRoaXMuYnVmZmVyWysraV07ZT1pLTF9ZWxzZSBpZighdGhpcy5ibG9ja1NjYWxhcktlZXApZG97bGV0IG89ZS0xLG49dGhpcy5idWZmZXJbb107bj09PSJcciImJihuPXRoaXMuYnVmZmVyWy0tb10pO2xldCBsPW87Zm9yKDtuPT09IiAiOyluPXRoaXMuYnVmZmVyWy0tb107aWYobj09PWAKYCYmbz49dGhpcy5wb3MmJm8rMSt0PmwpZT1vO2Vsc2UgYnJlYWt9d2hpbGUoITApO3JldHVybiB5aWVsZCBSMyx5aWVsZCp0aGlzLnB1c2hUb0luZGV4KGUrMSwhMCkseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpfSpwYXJzZVBsYWluU2NhbGFyKCl7bGV0IGU9dGhpcy5mbG93TGV2ZWw+MCx0PXRoaXMucG9zLTEscj10aGlzLnBvcy0xLGk7Zm9yKDtpPXRoaXMuYnVmZmVyWysrcl07KWlmKGk9PT0iOiIpe2xldCBvPXRoaXMuYnVmZmVyW3IrMV07aWYoYjEobyl8fGUmJnJRLmhhcyhvKSlicmVhazt0PXJ9ZWxzZSBpZihiMShpKSl7bGV0IG89dGhpcy5idWZmZXJbcisxXTtpZihpPT09IlxyIiYmKG89PT1gCmA/KHIrPTEsaT1gCmAsbz10aGlzLmJ1ZmZlcltyKzFdKTp0PXIpLG89PT0iIyJ8fGUmJnJRLmhhcyhvKSlicmVhaztpZihpPT09YApgKXtsZXQgbj10aGlzLmNvbnRpbnVlU2NhbGFyKHIrMSk7aWYobj09PS0xKWJyZWFrO3I9TWF0aC5tYXgocixuLTIpfX1lbHNle2lmKGUmJnJRLmhhcyhpKSlicmVhazt0PXJ9cmV0dXJuIWkmJiF0aGlzLmF0RW5kP3RoaXMuc2V0TmV4dCgicGxhaW4tc2NhbGFyIik6KHlpZWxkIFIzLHlpZWxkKnRoaXMucHVzaFRvSW5kZXgodCsxLCEwKSxlPyJmbG93IjoiZG9jIil9KnB1c2hDb3VudChlKXtyZXR1cm4gZT4wPyh5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsZSksdGhpcy5wb3MrPWUsZSk6MH0qcHVzaFRvSW5kZXgoZSx0KXtsZXQgcj10aGlzLmJ1ZmZlci5zbGljZSh0aGlzLnBvcyxlKTtyZXR1cm4gcj8oeWllbGQgcix0aGlzLnBvcys9ci5sZW5ndGgsci5sZW5ndGgpOih0JiYoeWllbGQiIiksMCl9KnB1c2hJbmRpY2F0b3JzKCl7c3dpdGNoKHRoaXMuY2hhckF0KDApKXtjYXNlIiEiOnJldHVybih5aWVsZCp0aGlzLnB1c2hUYWcoKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpO2Nhc2UiJiI6cmV0dXJuKHlpZWxkKnRoaXMucHVzaFVudGlsKEQwZSkpKyh5aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApKSsoeWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpKTtjYXNlIi0iOmNhc2UiPyI6Y2FzZSI6Ijp7bGV0IGU9dGhpcy5mbG93TGV2ZWw+MCx0PXRoaXMuY2hhckF0KDEpO2lmKGIxKHQpfHxlJiZyUS5oYXModCkpcmV0dXJuIGU/dGhpcy5mbG93S2V5JiYodGhpcy5mbG93S2V5PSExKTp0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSsxLCh5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpfX1yZXR1cm4gMH0qcHVzaFRhZygpe2lmKHRoaXMuY2hhckF0KDEpPT09IjwiKXtsZXQgZT10aGlzLnBvcysyLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDshYjEodCkmJnQhPT0iPiI7KXQ9dGhpcy5idWZmZXJbKytlXTtyZXR1cm4geWllbGQqdGhpcy5wdXNoVG9JbmRleCh0PT09Ij4iP2UrMTplLCExKX1lbHNle2xldCBlPXRoaXMucG9zKzEsdD10aGlzLmJ1ZmZlcltlXTtmb3IoO3Q7KWlmKEp4YS5oYXModCkpdD10aGlzLmJ1ZmZlclsrK2VdO2Vsc2UgaWYodD09PSIlIiYmeDN0Lmhhcyh0aGlzLmJ1ZmZlcltlKzFdKSYmeDN0Lmhhcyh0aGlzLmJ1ZmZlcltlKzJdKSl0PXRoaXMuYnVmZmVyW2UrPTNdO2Vsc2UgYnJlYWs7cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgoZSwhMSl9fSpwdXNoTmV3bGluZSgpe2xldCBlPXRoaXMuYnVmZmVyW3RoaXMucG9zXTtyZXR1cm4gZT09PWAKYD95aWVsZCp0aGlzLnB1c2hDb3VudCgxKTplPT09IlxyIiYmdGhpcy5jaGFyQXQoMSk9PT1gCmA/eWllbGQqdGhpcy5wdXNoQ291bnQoMik6MH0qcHVzaFNwYWNlcyhlKXtsZXQgdD10aGlzLnBvcy0xLHI7ZG8gcj10aGlzLmJ1ZmZlclsrK3RdO3doaWxlKHI9PT0iICJ8fGUmJnI9PT0iCSIpO2xldCBpPXQtdGhpcy5wb3M7cmV0dXJuIGk+MCYmKHlpZWxkIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcyxpKSx0aGlzLnBvcz10KSxpfSpwdXNoVW50aWwoZSl7bGV0IHQ9dGhpcy5wb3Mscj10aGlzLmJ1ZmZlclt0XTtmb3IoOyFlKHIpOylyPXRoaXMuYnVmZmVyWysrdF07cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgodCwhMSl9fX0pO3ZhciBFMCxQMGU9ZigoKT0+e0UwPWNsYXNze3N0YXRpY3tzKHRoaXMsIkxpbmVDb3VudGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmxpbmVTdGFydHM9W10sdGhpcy5hZGROZXdMaW5lPWU9PnRoaXMubGluZVN0YXJ0cy5wdXNoKGUpLHRoaXMubGluZVBvcz1lPT57bGV0IHQ9MCxyPXRoaXMubGluZVN0YXJ0cy5sZW5ndGg7Zm9yKDt0PHI7KXtsZXQgbz10K3I+PjE7dGhpcy5saW5lU3RhcnRzW29dPGU/dD1vKzE6cj1vfWlmKHRoaXMubGluZVN0YXJ0c1t0XT09PWUpcmV0dXJue2xpbmU6dCsxLGNvbDoxfTtpZih0PT09MClyZXR1cm57bGluZTowLGNvbDplfTtsZXQgaT10aGlzLmxpbmVTdGFydHNbdC0xXTtyZXR1cm57bGluZTp0LGNvbDplLWkrMX19fX19KTtmdW5jdGlvbiBJMChhLGUpe2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7Kyt0KWlmKGFbdF0udHlwZT09PWUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24geTN0KGEpe2ZvcihsZXQgZT0wO2U8YS5sZW5ndGg7KytlKXN3aXRjaChhW2VdLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjpicmVhaztkZWZhdWx0OnJldHVybiBlfXJldHVybi0xfWZ1bmN0aW9uIHczdChhKXtzd2l0Y2goYT8udHlwZSl7Y2FzZSJhbGlhcyI6Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZmxvdy1jb2xsZWN0aW9uIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBzUShhKXtzd2l0Y2goYS50eXBlKXtjYXNlImRvY3VtZW50IjpyZXR1cm4gYS5zdGFydDtjYXNlImJsb2NrLW1hcCI6e2xldCBlPWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV07cmV0dXJuIGUuc2VwPz9lLnN0YXJ0fWNhc2UiYmxvY2stc2VxIjpyZXR1cm4gYS5pdGVtc1thLml0ZW1zLmxlbmd0aC0xXS5zdGFydDtkZWZhdWx0OnJldHVybltdfX1mdW5jdGlvbiBwOChhKXtpZihhLmxlbmd0aD09PTApcmV0dXJuW107bGV0IGU9YS5sZW5ndGg7ZTpmb3IoOy0tZT49MDspc3dpdGNoKGFbZV0udHlwZSl7Y2FzZSJkb2Mtc3RhcnQiOmNhc2UiZXhwbGljaXQta2V5LWluZCI6Y2FzZSJtYXAtdmFsdWUtaW5kIjpjYXNlInNlcS1pdGVtLWluZCI6Y2FzZSJuZXdsaW5lIjpicmVhayBlfWZvcig7YVsrK2VdPy50eXBlPT09InNwYWNlIjspO3JldHVybiBhLnNwbGljZShlLGEubGVuZ3RoKX1mdW5jdGlvbiBNM3QoYSl7aWYoYS5zdGFydC50eXBlPT09ImZsb3ctc2VxLXN0YXJ0Iilmb3IobGV0IGUgb2YgYS5pdGVtcyllLnNlcCYmIWUudmFsdWUmJiFJMChlLnN0YXJ0LCJleHBsaWNpdC1rZXktaW5kIikmJiFJMChlLnNlcCwibWFwLXZhbHVlLWluZCIpJiYoZS5rZXkmJihlLnZhbHVlPWUua2V5KSxkZWxldGUgZS5rZXksdzN0KGUudmFsdWUpP2UudmFsdWUuZW5kP0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUudmFsdWUuZW5kLGUuc2VwKTplLnZhbHVlLmVuZD1lLnNlcDpBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLnN0YXJ0LGUuc2VwKSxkZWxldGUgZS5zZXApfXZhciBPbCxFMGU9ZigoKT0+e2FRKCk7QTBlKCk7cyhJMCwiaW5jbHVkZXNUb2tlbiIpO3MoeTN0LCJmaW5kTm9uRW1wdHlJbmRleCIpO3ModzN0LCJpc0Zsb3dUb2tlbiIpO3Moc1EsImdldFByZXZQcm9wcyIpO3MocDgsImdldEZpcnN0S2V5U3RhcnRQcm9wcyIpO3MoTTN0LCJmaXhGbG93U2VxSXRlbXMiKTtPbD1jbGFzc3tzdGF0aWN7cyh0aGlzLCJQYXJzZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmF0U2NhbGFyPSExLHRoaXMuaW5kZW50PTAsdGhpcy5vZmZzZXQ9MCx0aGlzLm9uS2V5TGluZT0hMSx0aGlzLnN0YWNrPVtdLHRoaXMuc291cmNlPSIiLHRoaXMudHlwZT0iIix0aGlzLmxleGVyPW5ldyBQMCx0aGlzLm9uTmV3TGluZT1lfSpwYXJzZShlLHQ9ITEpe3RoaXMub25OZXdMaW5lJiZ0aGlzLm9mZnNldD09PTAmJnRoaXMub25OZXdMaW5lKDApO2ZvcihsZXQgciBvZiB0aGlzLmxleGVyLmxleChlLHQpKXlpZWxkKnRoaXMubmV4dChyKTt0fHwoeWllbGQqdGhpcy5lbmQoKSl9Km5leHQoZSl7aWYodGhpcy5zb3VyY2U9ZSx0aGlzLmF0U2NhbGFyKXt0aGlzLmF0U2NhbGFyPSExLHlpZWxkKnRoaXMuc3RlcCgpLHRoaXMub2Zmc2V0Kz1lLmxlbmd0aDtyZXR1cm59bGV0IHQ9dFEoZSk7aWYodClpZih0PT09InNjYWxhciIpdGhpcy5hdE5ld0xpbmU9ITEsdGhpcy5hdFNjYWxhcj0hMCx0aGlzLnR5cGU9InNjYWxhciI7ZWxzZXtzd2l0Y2godGhpcy50eXBlPXQseWllbGQqdGhpcy5zdGVwKCksdCl7Y2FzZSJuZXdsaW5lIjp0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lJiZ0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCtlLmxlbmd0aCk7YnJlYWs7Y2FzZSJzcGFjZSI6dGhpcy5hdE5ld0xpbmUmJmVbMF09PT0iICImJih0aGlzLmluZGVudCs9ZS5sZW5ndGgpO2JyZWFrO2Nhc2UiZXhwbGljaXQta2V5LWluZCI6Y2FzZSJtYXAtdmFsdWUtaW5kIjpjYXNlInNlcS1pdGVtLWluZCI6dGhpcy5hdE5ld0xpbmUmJih0aGlzLmluZGVudCs9ZS5sZW5ndGgpO2JyZWFrO2Nhc2UiZG9jLW1vZGUiOmNhc2UiZmxvdy1lcnJvci1lbmQiOnJldHVybjtkZWZhdWx0OnRoaXMuYXROZXdMaW5lPSExfXRoaXMub2Zmc2V0Kz1lLmxlbmd0aH1lbHNle2xldCByPWBOb3QgYSBZQU1MIHRva2VuOiAke2V9YDt5aWVsZCp0aGlzLnBvcCh7dHlwZToiZXJyb3IiLG9mZnNldDp0aGlzLm9mZnNldCxtZXNzYWdlOnIsc291cmNlOmV9KSx0aGlzLm9mZnNldCs9ZS5sZW5ndGh9fSplbmQoKXtmb3IoO3RoaXMuc3RhY2subGVuZ3RoPjA7KXlpZWxkKnRoaXMucG9wKCl9Z2V0IHNvdXJjZVRva2VuKCl7cmV0dXJue3R5cGU6dGhpcy50eXBlLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc291cmNlOnRoaXMuc291cmNlfX0qc3RlcCgpe2xldCBlPXRoaXMucGVlaygxKTtpZih0aGlzLnR5cGU9PT0iZG9jLWVuZCImJmU/LnR5cGUhPT0iZG9jLWVuZCIpe2Zvcig7dGhpcy5zdGFjay5sZW5ndGg+MDspeWllbGQqdGhpcy5wb3AoKTt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImRvYy1lbmQiLG9mZnNldDp0aGlzLm9mZnNldCxzb3VyY2U6dGhpcy5zb3VyY2V9KTtyZXR1cm59aWYoIWUpcmV0dXJuIHlpZWxkKnRoaXMuc3RyZWFtKCk7c3dpdGNoKGUudHlwZSl7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIHlpZWxkKnRoaXMuZG9jdW1lbnQoZSk7Y2FzZSJhbGlhcyI6Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOnJldHVybiB5aWVsZCp0aGlzLnNjYWxhcihlKTtjYXNlImJsb2NrLXNjYWxhciI6cmV0dXJuIHlpZWxkKnRoaXMuYmxvY2tTY2FsYXIoZSk7Y2FzZSJibG9jay1tYXAiOnJldHVybiB5aWVsZCp0aGlzLmJsb2NrTWFwKGUpO2Nhc2UiYmxvY2stc2VxIjpyZXR1cm4geWllbGQqdGhpcy5ibG9ja1NlcXVlbmNlKGUpO2Nhc2UiZmxvdy1jb2xsZWN0aW9uIjpyZXR1cm4geWllbGQqdGhpcy5mbG93Q29sbGVjdGlvbihlKTtjYXNlImRvYy1lbmQiOnJldHVybiB5aWVsZCp0aGlzLmRvY3VtZW50RW5kKGUpfXlpZWxkKnRoaXMucG9wKCl9cGVlayhlKXtyZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC1lXX0qcG9wKGUpe2xldCB0PWU/P3RoaXMuc3RhY2sucG9wKCk7aWYoIXQpeWllbGR7dHlwZToiZXJyb3IiLG9mZnNldDp0aGlzLm9mZnNldCxzb3VyY2U6IiIsbWVzc2FnZToiVHJpZWQgdG8gcG9wIGFuIGVtcHR5IHN0YWNrIn07ZWxzZSBpZih0aGlzLnN0YWNrLmxlbmd0aD09PTApeWllbGQgdDtlbHNle2xldCByPXRoaXMucGVlaygxKTtzd2l0Y2godC50eXBlPT09ImJsb2NrLXNjYWxhciI/dC5pbmRlbnQ9ImluZGVudCJpbiByP3IuaW5kZW50OjA6dC50eXBlPT09ImZsb3ctY29sbGVjdGlvbiImJnIudHlwZT09PSJkb2N1bWVudCImJih0LmluZGVudD0wKSx0LnR5cGU9PT0iZmxvdy1jb2xsZWN0aW9uIiYmTTN0KHQpLHIudHlwZSl7Y2FzZSJkb2N1bWVudCI6ci52YWx1ZT10O2JyZWFrO2Nhc2UiYmxvY2stc2NhbGFyIjpyLnByb3BzLnB1c2godCk7YnJlYWs7Y2FzZSJibG9jay1tYXAiOntsZXQgaT1yLml0ZW1zW3IuaXRlbXMubGVuZ3RoLTFdO2lmKGkudmFsdWUpe3IuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5OnQsc2VwOltdfSksdGhpcy5vbktleUxpbmU9ITA7cmV0dXJufWVsc2UgaWYoaS5zZXApaS52YWx1ZT10O2Vsc2V7T2JqZWN0LmFzc2lnbihpLHtrZXk6dCxzZXA6W119KSx0aGlzLm9uS2V5TGluZT0haS5leHBsaWNpdEtleTtyZXR1cm59YnJlYWt9Y2FzZSJibG9jay1zZXEiOntsZXQgaT1yLml0ZW1zW3IuaXRlbXMubGVuZ3RoLTFdO2kudmFsdWU/ci5pdGVtcy5wdXNoKHtzdGFydDpbXSx2YWx1ZTp0fSk6aS52YWx1ZT10O2JyZWFrfWNhc2UiZmxvdy1jb2xsZWN0aW9uIjp7bGV0IGk9ci5pdGVtc1tyLml0ZW1zLmxlbmd0aC0xXTshaXx8aS52YWx1ZT9yLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTp0LHNlcDpbXX0pOmkuc2VwP2kudmFsdWU9dDpPYmplY3QuYXNzaWduKGkse2tleTp0LHNlcDpbXX0pO3JldHVybn1kZWZhdWx0OnlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5wb3AodCl9aWYoKHIudHlwZT09PSJkb2N1bWVudCJ8fHIudHlwZT09PSJibG9jay1tYXAifHxyLnR5cGU9PT0iYmxvY2stc2VxIikmJih0LnR5cGU9PT0iYmxvY2stbWFwInx8dC50eXBlPT09ImJsb2NrLXNlcSIpKXtsZXQgaT10Lml0ZW1zW3QuaXRlbXMubGVuZ3RoLTFdO2kmJiFpLnNlcCYmIWkudmFsdWUmJmkuc3RhcnQubGVuZ3RoPjAmJnkzdChpLnN0YXJ0KT09PS0xJiYodC5pbmRlbnQ9PT0wfHxpLnN0YXJ0LmV2ZXJ5KG89Pm8udHlwZSE9PSJjb21tZW50Inx8by5pbmRlbnQ8dC5pbmRlbnQpKSYmKHIudHlwZT09PSJkb2N1bWVudCI/ci5lbmQ9aS5zdGFydDpyLml0ZW1zLnB1c2goe3N0YXJ0Omkuc3RhcnR9KSx0Lml0ZW1zLnNwbGljZSgtMSwxKSl9fX0qc3RyZWFtKCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJkaXJlY3RpdmUtbGluZSI6eWllbGR7dHlwZToiZGlyZWN0aXZlIixvZmZzZXQ6dGhpcy5vZmZzZXQsc291cmNlOnRoaXMuc291cmNlfTtyZXR1cm47Y2FzZSJieXRlLW9yZGVyLW1hcmsiOmNhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjp5aWVsZCB0aGlzLnNvdXJjZVRva2VuO3JldHVybjtjYXNlImRvYy1tb2RlIjpjYXNlImRvYy1zdGFydCI6e2xldCBlPXt0eXBlOiJkb2N1bWVudCIsb2Zmc2V0OnRoaXMub2Zmc2V0LHN0YXJ0OltdfTt0aGlzLnR5cGU9PT0iZG9jLXN0YXJ0IiYmZS5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHRoaXMuc3RhY2sucHVzaChlKTtyZXR1cm59fXlpZWxke3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsbWVzc2FnZTpgVW5leHBlY3RlZCAke3RoaXMudHlwZX0gdG9rZW4gaW4gWUFNTCBzdHJlYW1gLHNvdXJjZTp0aGlzLnNvdXJjZX19KmRvY3VtZW50KGUpe2lmKGUudmFsdWUpcmV0dXJuIHlpZWxkKnRoaXMubGluZUVuZChlKTtzd2l0Y2godGhpcy50eXBlKXtjYXNlImRvYy1zdGFydCI6e3kzdChlLnN0YXJ0KSE9PS0xPyh5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpKTplLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWNhc2UiYW5jaG9yIjpjYXNlInRhZyI6Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm59bGV0IHQ9dGhpcy5zdGFydEJsb2NrVmFsdWUoZSk7dD90aGlzLnN0YWNrLnB1c2godCk6eWllbGR7dHlwZToiZXJyb3IiLG9mZnNldDp0aGlzLm9mZnNldCxtZXNzYWdlOmBVbmV4cGVjdGVkICR7dGhpcy50eXBlfSB0b2tlbiBpbiBZQU1MIGRvY3VtZW50YCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpzY2FsYXIoZSl7aWYodGhpcy50eXBlPT09Im1hcC12YWx1ZS1pbmQiKXtsZXQgdD1zUSh0aGlzLnBlZWsoMikpLHI9cDgodCksaTtlLmVuZD8oaT1lLmVuZCxpLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIGUuZW5kKTppPVt0aGlzLnNvdXJjZVRva2VuXTtsZXQgbz17dHlwZToiYmxvY2stbWFwIixvZmZzZXQ6ZS5vZmZzZXQsaW5kZW50OmUuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6cixrZXk6ZSxzZXA6aX1dfTt0aGlzLm9uS2V5TGluZT0hMCx0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdPW99ZWxzZSB5aWVsZCp0aGlzLmxpbmVFbmQoZSl9KmJsb2NrU2NhbGFyKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjplLnByb3BzLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2Uic2NhbGFyIjppZihlLnNvdXJjZT10aGlzLnNvdXJjZSx0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lKXtsZXQgdD10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCkrMTtmb3IoO3QhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCt0KSx0PXRoaXMuc291cmNlLmluZGV4T2YoYApgLHQpKzF9eWllbGQqdGhpcy5wb3AoKTticmVhaztkZWZhdWx0OnlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9fSpibG9ja01hcChlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UibmV3bGluZSI6aWYodGhpcy5vbktleUxpbmU9ITEsdC52YWx1ZSl7bGV0IHI9ImVuZCJpbiB0LnZhbHVlP3QudmFsdWUuZW5kOnZvaWQgMDsoQXJyYXkuaXNBcnJheShyKT9yW3IubGVuZ3RoLTFdOnZvaWQgMCk/LnR5cGU9PT0iY29tbWVudCI/cj8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pfWVsc2UgdC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6aWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2UgaWYodC5zZXApdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtlbHNle2lmKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQodC5zdGFydCxlLmluZGVudCkpe2xldCBpPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMl0/LnZhbHVlPy5lbmQ7aWYoQXJyYXkuaXNBcnJheShpKSl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoaSx0LnN0YXJ0KSxpLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZS5pdGVtcy5wb3AoKTtyZXR1cm59fXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKX1yZXR1cm59aWYodGhpcy5pbmRlbnQ+PWUuaW5kZW50KXtsZXQgcj0hdGhpcy5vbktleUxpbmUmJnRoaXMuaW5kZW50PT09ZS5pbmRlbnQsaT1yJiYodC5zZXB8fHQuZXhwbGljaXRLZXkpJiZ0aGlzLnR5cGUhPT0ic2VxLWl0ZW0taW5kIixvPVtdO2lmKGkmJnQuc2VwJiYhdC52YWx1ZSl7bGV0IG49W107Zm9yKGxldCBsPTA7bDx0LnNlcC5sZW5ndGg7KytsKXtsZXQgZD10LnNlcFtsXTtzd2l0Y2goZC50eXBlKXtjYXNlIm5ld2xpbmUiOm4ucHVzaChsKTticmVhaztjYXNlInNwYWNlIjpicmVhaztjYXNlImNvbW1lbnQiOmQuaW5kZW50PmUuaW5kZW50JiYobi5sZW5ndGg9MCk7YnJlYWs7ZGVmYXVsdDpuLmxlbmd0aD0wfX1uLmxlbmd0aD49MiYmKG89dC5zZXAuc3BsaWNlKG5bMV0pKX1zd2l0Y2godGhpcy50eXBlKXtjYXNlImFuY2hvciI6Y2FzZSJ0YWciOml8fHQudmFsdWU/KG8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om99KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UiZXhwbGljaXQta2V5LWluZCI6IXQuc2VwJiYhdC5leHBsaWNpdEtleT8odC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHQuZXhwbGljaXRLZXk9ITApOml8fHQudmFsdWU/KG8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om8sZXhwbGljaXRLZXk6ITB9KSk6dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl0sZXhwbGljaXRLZXk6ITB9XX0pLHRoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlIm1hcC12YWx1ZS1pbmQiOmlmKHQuZXhwbGljaXRLZXkpaWYodC5zZXApaWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtlbHNlIGlmKEkwKHQuc2VwLCJtYXAtdmFsdWUtaW5kIikpdGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpvLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pO2Vsc2UgaWYodzN0KHQua2V5KSYmIUkwKHQuc2VwLCJuZXdsaW5lIikpe2xldCBuPXA4KHQuc3RhcnQpLGw9dC5rZXksZD10LnNlcDtkLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIHQua2V5LGRlbGV0ZSB0LnNlcCx0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Om4sa2V5Omwsc2VwOmR9XX0pfWVsc2Ugby5sZW5ndGg+MD90LnNlcD10LnNlcC5jb25jYXQobyx0aGlzLnNvdXJjZVRva2VuKTp0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2Vsc2UgaWYoSTAodC5zdGFydCwibmV3bGluZSIpKU9iamVjdC5hc3NpZ24odCx7a2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2V7bGV0IG49cDgodC5zdGFydCk7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpuLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pfWVsc2UgdC5zZXA/dC52YWx1ZXx8aT9lLml0ZW1zLnB1c2goe3N0YXJ0Om8sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pOkkwKHQuc2VwLCJtYXAtdmFsdWUtaW5kIik/dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbXSxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfV19KTp0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOk9iamVjdC5hc3NpZ24odCx7a2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO3RoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlImFsaWFzIjpjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6e2xldCBuPXRoaXMuZmxvd1NjYWxhcih0aGlzLnR5cGUpO2l8fHQudmFsdWU/KGUuaXRlbXMucHVzaCh7c3RhcnQ6byxrZXk6bixzZXA6W119KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dGhpcy5zdGFjay5wdXNoKG4pOihPYmplY3QuYXNzaWduKHQse2tleTpuLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwKTtyZXR1cm59ZGVmYXVsdDp7bGV0IG49dGhpcy5zdGFydEJsb2NrVmFsdWUoZSk7aWYobil7aWYobi50eXBlPT09ImJsb2NrLXNlcSIpe2lmKCF0LmV4cGxpY2l0S2V5JiZ0LnNlcCYmIUkwKHQuc2VwLCJuZXdsaW5lIikpe3lpZWxkKnRoaXMucG9wKHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6IlVuZXhwZWN0ZWQgYmxvY2stc2VxLWluZCBvbiBzYW1lIGxpbmUgd2l0aCBrZXkiLHNvdXJjZTp0aGlzLnNvdXJjZX0pO3JldHVybn19ZWxzZSByJiZlLml0ZW1zLnB1c2goe3N0YXJ0Om99KTt0aGlzLnN0YWNrLnB1c2gobik7cmV0dXJufX19fXlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9KmJsb2NrU2VxdWVuY2UoZSl7bGV0IHQ9ZS5pdGVtc1tlLml0ZW1zLmxlbmd0aC0xXTtzd2l0Y2godGhpcy50eXBlKXtjYXNlIm5ld2xpbmUiOmlmKHQudmFsdWUpe2xldCByPSJlbmQiaW4gdC52YWx1ZT90LnZhbHVlLmVuZDp2b2lkIDA7KEFycmF5LmlzQXJyYXkocik/cltyLmxlbmd0aC0xXTp2b2lkIDApPy50eXBlPT09ImNvbW1lbnQiP3I/LnB1c2godGhpcy5zb3VyY2VUb2tlbik6ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KX1lbHNlIHQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjppZih0LnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtpZih0aGlzLmF0SW5kZW50ZWRDb21tZW50KHQuc3RhcnQsZS5pbmRlbnQpKXtsZXQgaT1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTJdPy52YWx1ZT8uZW5kO2lmKEFycmF5LmlzQXJyYXkoaSkpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGksdC5zdGFydCksaS5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucG9wKCk7cmV0dXJufX10LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbil9cmV0dXJuO2Nhc2UiYW5jaG9yIjpjYXNlInRhZyI6aWYodC52YWx1ZXx8dGhpcy5pbmRlbnQ8PWUuaW5kZW50KWJyZWFrO3Quc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzZXEtaXRlbS1pbmQiOmlmKHRoaXMuaW5kZW50IT09ZS5pbmRlbnQpYnJlYWs7dC52YWx1ZXx8STAodC5zdGFydCwic2VxLWl0ZW0taW5kIik/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWlmKHRoaXMuaW5kZW50PmUuaW5kZW50KXtsZXQgcj10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihyKXt0aGlzLnN0YWNrLnB1c2gocik7cmV0dXJufX15aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpfSpmbG93Q29sbGVjdGlvbihlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO2lmKHRoaXMudHlwZT09PSJmbG93LWVycm9yLWVuZCIpe2xldCByO2RvIHlpZWxkKnRoaXMucG9wKCkscj10aGlzLnBlZWsoMSk7d2hpbGUocj8udHlwZT09PSJmbG93LWNvbGxlY3Rpb24iKX1lbHNlIGlmKGUuZW5kLmxlbmd0aD09PTApe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2UiZXhwbGljaXQta2V5LWluZCI6IXR8fHQuc2VwP2UuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybjtjYXNlIm1hcC12YWx1ZS1pbmQiOiF0fHx0LnZhbHVlP2UuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pOnQuc2VwP3Quc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik6T2JqZWN0LmFzc2lnbih0LHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7cmV0dXJuO2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjpjYXNlImFuY2hvciI6Y2FzZSJ0YWciOiF0fHx0LnZhbHVlP2UuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjp7bGV0IGk9dGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7IXR8fHQudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6aSxzZXA6W119KTp0LnNlcD90aGlzLnN0YWNrLnB1c2goaSk6T2JqZWN0LmFzc2lnbih0LHtrZXk6aSxzZXA6W119KTtyZXR1cm59Y2FzZSJmbG93LW1hcC1lbmQiOmNhc2UiZmxvdy1zZXEtZW5kIjplLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybn1sZXQgcj10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtyP3RoaXMuc3RhY2sucHVzaChyKTooeWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKSl9ZWxzZXtsZXQgcj10aGlzLnBlZWsoMik7aWYoci50eXBlPT09ImJsb2NrLW1hcCImJih0aGlzLnR5cGU9PT0ibWFwLXZhbHVlLWluZCImJnIuaW5kZW50PT09ZS5pbmRlbnR8fHRoaXMudHlwZT09PSJuZXdsaW5lIiYmIXIuaXRlbXNbci5pdGVtcy5sZW5ndGgtMV0uc2VwKSl5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpO2Vsc2UgaWYodGhpcy50eXBlPT09Im1hcC12YWx1ZS1pbmQiJiZyLnR5cGUhPT0iZmxvdy1jb2xsZWN0aW9uIil7bGV0IGk9c1Eociksbz1wOChpKTtNM3QoZSk7bGV0IG49ZS5lbmQuc3BsaWNlKDEsZS5lbmQubGVuZ3RoKTtuLnB1c2godGhpcy5zb3VyY2VUb2tlbik7bGV0IGw9e3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OmUub2Zmc2V0LGluZGVudDplLmluZGVudCxpdGVtczpbe3N0YXJ0Om8sa2V5OmUsc2VwOm59XX07dGhpcy5vbktleUxpbmU9ITAsdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXT1sfWVsc2UgeWllbGQqdGhpcy5saW5lRW5kKGUpfX1mbG93U2NhbGFyKGUpe2lmKHRoaXMub25OZXdMaW5lKXtsZXQgdD10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCkrMTtmb3IoO3QhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCt0KSx0PXRoaXMuc291cmNlLmluZGV4T2YoYApgLHQpKzF9cmV0dXJue3R5cGU6ZSxvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHNvdXJjZTp0aGlzLnNvdXJjZX19c3RhcnRCbG9ja1ZhbHVlKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpyZXR1cm4gdGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7Y2FzZSJibG9jay1zY2FsYXItaGVhZGVyIjpyZXR1cm57dHlwZToiYmxvY2stc2NhbGFyIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHByb3BzOlt0aGlzLnNvdXJjZVRva2VuXSxzb3VyY2U6IiJ9O2Nhc2UiZmxvdy1tYXAtc3RhcnQiOmNhc2UiZmxvdy1zZXEtc3RhcnQiOnJldHVybnt0eXBlOiJmbG93LWNvbGxlY3Rpb24iLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc3RhcnQ6dGhpcy5zb3VyY2VUb2tlbixpdGVtczpbXSxlbmQ6W119O2Nhc2Uic2VxLWl0ZW0taW5kIjpyZXR1cm57dHlwZToiYmxvY2stc2VxIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfV19O2Nhc2UiZXhwbGljaXQta2V5LWluZCI6e3RoaXMub25LZXlMaW5lPSEwO2xldCB0PXNRKGUpLHI9cDgodCk7cmV0dXJuIHIucHVzaCh0aGlzLnNvdXJjZVRva2VuKSx7dHlwZToiYmxvY2stbWFwIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6cixleHBsaWNpdEtleTohMH1dfX1jYXNlIm1hcC12YWx1ZS1pbmQiOnt0aGlzLm9uS2V5TGluZT0hMDtsZXQgdD1zUShlKSxyPXA4KHQpO3JldHVybnt0eXBlOiJibG9jay1tYXAiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpyLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX19fXJldHVybiBudWxsfWF0SW5kZW50ZWRDb21tZW50KGUsdCl7cmV0dXJuIHRoaXMudHlwZSE9PSJjb21tZW50Inx8dGhpcy5pbmRlbnQ8PXQ/ITE6ZS5ldmVyeShyPT5yLnR5cGU9PT0ibmV3bGluZSJ8fHIudHlwZT09PSJzcGFjZSIpfSpkb2N1bWVudEVuZChlKXt0aGlzLnR5cGUhPT0iZG9jLW1vZGUiJiYoZS5lbmQ/ZS5lbmQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLmVuZD1bdGhpcy5zb3VyY2VUb2tlbl0sdGhpcy50eXBlPT09Im5ld2xpbmUiJiYoeWllbGQqdGhpcy5wb3AoKSkpfSpsaW5lRW5kKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2UiZG9jLXN0YXJ0IjpjYXNlImRvYy1lbmQiOmNhc2UiZmxvdy1zZXEtZW5kIjpjYXNlImZsb3ctbWFwLWVuZCI6Y2FzZSJtYXAtdmFsdWUtaW5kIjp5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpO2JyZWFrO2Nhc2UibmV3bGluZSI6dGhpcy5vbktleUxpbmU9ITE7ZGVmYXVsdDplLmVuZD9lLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuZW5kPVt0aGlzLnNvdXJjZVRva2VuXSx0aGlzLnR5cGU9PT0ibmV3bGluZSImJih5aWVsZCp0aGlzLnBvcCgpKX19fX0pO2Z1bmN0aW9uIGszdChhKXtsZXQgZT1hLnByZXR0eUVycm9ycyE9PSExO3JldHVybntsaW5lQ291bnRlcjphLmxpbmVDb3VudGVyfHxlJiZuZXcgRTB8fG51bGwscHJldHR5RXJyb3JzOmV9fWZ1bmN0aW9uIGlRKGEsZT17fSl7bGV0e2xpbmVDb3VudGVyOnQscHJldHR5RXJyb3JzOnJ9PWszdChlKSxpPW5ldyBPbCh0Py5hZGROZXdMaW5lKSxvPW5ldyBObChlKSxuPUFycmF5LmZyb20oby5jb21wb3NlKGkucGFyc2UoYSkpKTtpZihyJiZ0KWZvcihsZXQgbCBvZiBuKWwuZXJyb3JzLmZvckVhY2gobzgoYSx0KSksbC53YXJuaW5ncy5mb3JFYWNoKG84KGEsdCkpO3JldHVybiBuLmxlbmd0aD4wP246T2JqZWN0LmFzc2lnbihbXSx7ZW1wdHk6ITB9LG8uc3RyZWFtSW5mbygpKX1mdW5jdGlvbiBFZyhhLGU9e30pe2xldHtsaW5lQ291bnRlcjp0LHByZXR0eUVycm9yczpyfT1rM3QoZSksaT1uZXcgT2wodD8uYWRkTmV3TGluZSksbz1uZXcgTmwoZSksbj1udWxsO2ZvcihsZXQgbCBvZiBvLmNvbXBvc2UoaS5wYXJzZShhKSwhMCxhLmxlbmd0aCkpaWYoIW4pbj1sO2Vsc2UgaWYobi5vcHRpb25zLmxvZ0xldmVsIT09InNpbGVudCIpe24uZXJyb3JzLnB1c2gobmV3IFVpKGwucmFuZ2Uuc2xpY2UoMCwyKSwiTVVMVElQTEVfRE9DUyIsIlNvdXJjZSBjb250YWlucyBtdWx0aXBsZSBkb2N1bWVudHM7IHBsZWFzZSB1c2UgWUFNTC5wYXJzZUFsbERvY3VtZW50cygpIikpO2JyZWFrfXJldHVybiByJiZ0JiYobi5lcnJvcnMuZm9yRWFjaChvOChhLHQpKSxuLndhcm5pbmdzLmZvckVhY2gobzgoYSx0KSkpLG59ZnVuY3Rpb24gb1EoYSxlLHQpe2xldCByO3R5cGVvZiBlPT0iZnVuY3Rpb24iP3I9ZTp0PT09dm9pZCAwJiZlJiZ0eXBlb2YgZT09Im9iamVjdCImJih0PWUpO2xldCBpPUVnKGEsdCk7aWYoIWkpcmV0dXJuIG51bGw7aWYoaS53YXJuaW5ncy5mb3JFYWNoKG89PnVnKGkub3B0aW9ucy5sb2dMZXZlbCxvKSksaS5lcnJvcnMubGVuZ3RoPjApe2lmKGkub3B0aW9ucy5sb2dMZXZlbCE9PSJzaWxlbnQiKXRocm93IGkuZXJyb3JzWzBdO2kuZXJyb3JzPVtdfXJldHVybiBpLnRvSlMoT2JqZWN0LmFzc2lnbih7cmV2aXZlcjpyfSx0KSl9ZnVuY3Rpb24gblEoYSxlLHQpe2xldCByPW51bGw7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiJ8fEFycmF5LmlzQXJyYXkoZSk/cj1lOnQ9PT12b2lkIDAmJmUmJih0PWUpLHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQ9dC5sZW5ndGgpLHR5cGVvZiB0PT0ibnVtYmVyIil7bGV0IGk9TWF0aC5yb3VuZCh0KTt0PWk8MT92b2lkIDA6aT44P3tpbmRlbnQ6OH06e2luZGVudDppfX1pZihhPT09dm9pZCAwKXtsZXR7a2VlcFVuZGVmaW5lZDppfT10Pz9lPz97fTtpZighaSlyZXR1cm59cmV0dXJuIExvKGEpJiYhcj9hLnRvU3RyaW5nKHQpOm5ldyBUbihhLHIsdCkudG9TdHJpbmcodCl9dmFyIFMzdD1mKCgpPT57UzBlKCk7emcoKTtDZygpO09jZSgpOyRhKCk7UDBlKCk7RTBlKCk7cyhrM3QsInBhcnNlT3B0aW9ucyIpO3MoaVEsInBhcnNlQWxsRG9jdW1lbnRzIik7cyhFZywicGFyc2VEb2N1bWVudCIpO3Mob1EsInBhcnNlIik7cyhuUSwic3RyaW5naWZ5Iil9KTt2YXIgSTBlPXt9O2x0KEkwZSx7QWxpYXM6KCk9PlNuLENTVDooKT0+UGcsQ29tcG9zZXI6KCk9Pk5sLERvY3VtZW50OigpPT5UbixMZXhlcjooKT0+UDAsTGluZUNvdW50ZXI6KCk9PkUwLFBhaXI6KCk9PnVyLFBhcnNlcjooKT0+T2wsU2NhbGFyOigpPT5odCxTY2hlbWE6KCk9PiQwLFlBTUxFcnJvcjooKT0+RDAsWUFNTE1hcDooKT0+eXIsWUFNTFBhcnNlRXJyb3I6KCk9PlVpLFlBTUxTZXE6KCk9PkRzLFlBTUxXYXJuaW5nOigpPT5BMCxpc0FsaWFzOigpPT5Ubyxpc0NvbGxlY3Rpb246KCk9PkxhLGlzRG9jdW1lbnQ6KCk9PkxvLGlzTWFwOigpPT4kbyxpc05vZGU6KCk9PmRhLGlzUGFpcjooKT0+cmEsaXNTY2FsYXI6KCk9PlZ0LGlzU2VxOigpPT5EbyxwYXJzZTooKT0+b1EscGFyc2VBbGxEb2N1bWVudHM6KCk9PmlRLHBhcnNlRG9jdW1lbnQ6KCk9PkVnLHN0cmluZ2lmeTooKT0+blEsdmlzaXQ6KCk9PllvLHZpc2l0QXN5bmM6KCk9PiQzfSk7dmFyIE4wZT1mKCgpPT57UzBlKCk7emcoKTtjMGUoKTtDZygpO2FnKCk7JGEoKTtDMCgpO3BzKCk7XzAoKTtUMCgpO2FRKCk7QTBlKCk7UDBlKCk7RTBlKCk7UzN0KCk7ZWcoKX0pO3ZhciBPMz17fTtsdChPMyx7QWxpYXM6KCk9PlNuLENTVDooKT0+UGcsQ29tcG9zZXI6KCk9Pk5sLERvY3VtZW50OigpPT5UbixMZXhlcjooKT0+UDAsTGluZUNvdW50ZXI6KCk9PkUwLFBhaXI6KCk9PnVyLFBhcnNlcjooKT0+T2wsU2NhbGFyOigpPT5odCxTY2hlbWE6KCk9PiQwLFlBTUxFcnJvcjooKT0+RDAsWUFNTE1hcDooKT0+eXIsWUFNTFBhcnNlRXJyb3I6KCk9PlVpLFlBTUxTZXE6KCk9PkRzLFlBTUxXYXJuaW5nOigpPT5BMCxkZWZhdWx0OigpPT50eWEsaXNBbGlhczooKT0+VG8saXNDb2xsZWN0aW9uOigpPT5MYSxpc0RvY3VtZW50OigpPT5Mbyxpc01hcDooKT0+JG8saXNOb2RlOigpPT5kYSxpc1BhaXI6KCk9PnJhLGlzU2NhbGFyOigpPT5WdCxpc1NlcTooKT0+RG8scGFyc2U6KCk9Pm9RLHBhcnNlQWxsRG9jdW1lbnRzOigpPT5pUSxwYXJzZURvY3VtZW50OigpPT5FZyxzdHJpbmdpZnk6KCk9Pm5RLHZpc2l0OigpPT5Zbyx2aXNpdEFzeW5jOigpPT4kM30pO3ZhciB0eWEsejN0PWYoKCk9PntOMGUoKTtOMGUoKTt0eWE9STBlfSk7dmFyIEMzdD1mKCgpPT57ejN0KCl9KTt2YXIgSWc9e307bHQoSWcse2dldFlhbWxEb2NGcm9tU3RyaW5nOigpPT5peWEsb2JqZWN0VG9ZYW1sU3RyaW5nOigpPT5zeWEseWFtbFN0cmluZ1RvT2JqZWN0OigpPT5yeWF9KTt2YXIgcnlhLHN5YSxpeWEsXzN0PWYoKCk9PntDM3QoKTtyeWE9cyhhc3luYyBhPT5PMy5wYXJzZShhKSwieWFtbFN0cmluZ1RvT2JqZWN0Iiksc3lhPXMoYXN5bmMgYT0+TzMuc3RyaW5naWZ5KGEpLCJvYmplY3RUb1lhbWxTdHJpbmciKSxpeWE9cyhhc3luYyBhPT5PMy5wYXJzZURvY3VtZW50KGEpLCJnZXRZYW1sRG9jRnJvbVN0cmluZyIpfSk7ZnVuY3Rpb24gUjBlKGEpe2lmKGEpdGhyb3cgYX12YXIgVDN0PWYoKCk9PntzKFIwZSwiYmFpbCIpfSk7dmFyIFIzdD1NbygoQ0ZyLE4zdCk9PnsidXNlIHN0cmljdCI7dmFyIGxRPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTDN0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsJDN0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxEM3Q9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixBM3Q9cyhmdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIEFycmF5LmlzQXJyYXk9PSJmdW5jdGlvbiI/QXJyYXkuaXNBcnJheShlKTpMM3QuY2FsbChlKT09PSJbb2JqZWN0IEFycmF5XSJ9LCJpc0FycmF5IiksUDN0PXMoZnVuY3Rpb24oZSl7aWYoIWV8fEwzdC5jYWxsKGUpIT09IltvYmplY3QgT2JqZWN0XSIpcmV0dXJuITE7dmFyIHQ9bFEuY2FsbChlLCJjb25zdHJ1Y3RvciIpLHI9ZS5jb25zdHJ1Y3RvciYmZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJmxRLmNhbGwoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKTtpZihlLmNvbnN0cnVjdG9yJiYhdCYmIXIpcmV0dXJuITE7dmFyIGk7Zm9yKGkgaW4gZSk7cmV0dXJuIHR5cGVvZiBpPiJ1Inx8bFEuY2FsbChlLGkpfSwiaXNQbGFpbk9iamVjdCIpLEUzdD1zKGZ1bmN0aW9uKGUsdCl7JDN0JiZ0Lm5hbWU9PT0iX19wcm90b19fIj8kM3QoZSx0Lm5hbWUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOnQubmV3VmFsdWUsd3JpdGFibGU6ITB9KTplW3QubmFtZV09dC5uZXdWYWx1ZX0sInNldFByb3BlcnR5IiksSTN0PXMoZnVuY3Rpb24oZSx0KXtpZih0PT09Il9fcHJvdG9fXyIpaWYobFEuY2FsbChlLHQpKXtpZihEM3QpcmV0dXJuIEQzdChlLHQpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiBlW3RdfSwiZ2V0UHJvcGVydHkiKTtOM3QuZXhwb3J0cz1zKGZ1bmN0aW9uIGEoKXt2YXIgZSx0LHIsaSxvLG4sbD1hcmd1bWVudHNbMF0sZD0xLGM9YXJndW1lbnRzLmxlbmd0aCxwPSExO2Zvcih0eXBlb2YgbD09ImJvb2xlYW4iJiYocD1sLGw9YXJndW1lbnRzWzFdfHx7fSxkPTIpLChsPT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCImJnR5cGVvZiBsIT0iZnVuY3Rpb24iKSYmKGw9e30pO2Q8YzsrK2QpaWYoZT1hcmd1bWVudHNbZF0sZSE9bnVsbClmb3IodCBpbiBlKXI9STN0KGwsdCksaT1JM3QoZSx0KSxsIT09aSYmKHAmJmkmJihQM3QoaSl8fChvPUEzdChpKSkpPyhvPyhvPSExLG49ciYmQTN0KHIpP3I6W10pOm49ciYmUDN0KHIpP3I6e30sRTN0KGwse25hbWU6dCxuZXdWYWx1ZTphKHAsbixpKX0pKTp0eXBlb2YgaTwidSImJkUzdChsLHtuYW1lOnQsbmV3VmFsdWU6aX0pKTtyZXR1cm4gbH0sImV4dGVuZCIpfSk7dmFyIE4wPWYoKCk9Pnt9KTtmdW5jdGlvbiBOZyhhKXtpZih0eXBlb2YgYSE9Im9iamVjdCJ8fGE9PT1udWxsKXJldHVybiExO2xldCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZihhKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gYSkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIGEpfXZhciBPM3Q9ZigoKT0+e3MoTmcsImlzUGxhaW5PYmplY3QiKX0pO2Z1bmN0aW9uIE8wZSgpe2xldCBhPVtdLGU9e3J1bjp0LHVzZTpyfTtyZXR1cm4gZTtmdW5jdGlvbiB0KC4uLmkpe2xldCBvPS0xLG49aS5wb3AoKTtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIituKTtsKG51bGwsLi4uaSk7ZnVuY3Rpb24gbChkLC4uLmMpe2xldCBwPWFbKytvXSx1PS0xO2lmKGQpe24oZCk7cmV0dXJufWZvcig7Kyt1PGkubGVuZ3RoOykoY1t1XT09PW51bGx8fGNbdV09PT12b2lkIDApJiYoY1t1XT1pW3VdKTtpPWMscD9GM3QocCxsKSguLi5jKTpuKG51bGwsLi4uYyl9cyhsLCJuZXh0Iil9ZnVuY3Rpb24gcihpKXtpZih0eXBlb2YgaSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIraSk7cmV0dXJuIGEucHVzaChpKSxlfX1mdW5jdGlvbiBGM3QoYSxlKXtsZXQgdDtyZXR1cm4gcjtmdW5jdGlvbiByKC4uLm4pe2xldCBsPWEubGVuZ3RoPm4ubGVuZ3RoLGQ7bCYmbi5wdXNoKGkpO3RyeXtkPWEuYXBwbHkodGhpcyxuKX1jYXRjaChjKXtsZXQgcD1jO2lmKGwmJnQpdGhyb3cgcDtyZXR1cm4gaShwKX1sfHwoZCYmZC50aGVuJiZ0eXBlb2YgZC50aGVuPT0iZnVuY3Rpb24iP2QudGhlbihvLGkpOmQgaW5zdGFuY2VvZiBFcnJvcj9pKGQpOm8oZCkpfWZ1bmN0aW9uIGkobiwuLi5sKXt0fHwodD0hMCxlKG4sLi4ubCkpfWZ1bmN0aW9uIG8obil7aShudWxsLG4pfX12YXIgQjN0PWYoKCk9PntzKE8wZSwidHJvdWdoIik7cyhGM3QsIndyYXAiKX0pO3ZhciBIM3Q9ZigoKT0+e0IzdCgpfSk7ZnVuY3Rpb24gUjAoYSl7cmV0dXJuIWF8fHR5cGVvZiBhIT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gYXx8InR5cGUiaW4gYT9xM3QoYS5wb3NpdGlvbik6InN0YXJ0ImluIGF8fCJlbmQiaW4gYT9xM3QoYSk6ImxpbmUiaW4gYXx8ImNvbHVtbiJpbiBhP0YwZShhKToiIn1mdW5jdGlvbiBGMGUoYSl7cmV0dXJuIFYzdChhJiZhLmxpbmUpKyI6IitWM3QoYSYmYS5jb2x1bW4pfWZ1bmN0aW9uIHEzdChhKXtyZXR1cm4gRjBlKGEmJmEuc3RhcnQpKyItIitGMGUoYSYmYS5lbmQpfWZ1bmN0aW9uIFYzdChhKXtyZXR1cm4gYSYmdHlwZW9mIGE9PSJudW1iZXIiP2E6MX12YXIgajN0PWYoKCk9PntzKFIwLCJzdHJpbmdpZnlQb3NpdGlvbiIpO3MoRjBlLCJwb2ludCIpO3MocTN0LCJwb3NpdGlvbiIpO3MoVjN0LCJpbmRleCIpfSk7dmFyIEIwZT1mKCgpPT57ajN0KCl9KTt2YXIganMsVTN0PWYoKCk9PntCMGUoKTtqcz1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tzKHRoaXMsIlZGaWxlTWVzc2FnZSIpfWNvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcigpLHR5cGVvZiB0PT0ic3RyaW5nIiYmKHI9dCx0PXZvaWQgMCk7bGV0IGk9IiIsbz17fSxuPSExO2lmKHQmJigibGluZSJpbiB0JiYiY29sdW1uImluIHQ/bz17cGxhY2U6dH06InN0YXJ0ImluIHQmJiJlbmQiaW4gdD9vPXtwbGFjZTp0fToidHlwZSJpbiB0P289e2FuY2VzdG9yczpbdF0scGxhY2U6dC5wb3NpdGlvbn06bz17Li4udH0pLHR5cGVvZiBlPT0ic3RyaW5nIj9pPWU6IW8uY2F1c2UmJmUmJihuPSEwLGk9ZS5tZXNzYWdlLG8uY2F1c2U9ZSksIW8ucnVsZUlkJiYhby5zb3VyY2UmJnR5cGVvZiByPT0ic3RyaW5nIil7bGV0IGQ9ci5pbmRleE9mKCI6Iik7ZD09PS0xP28ucnVsZUlkPXI6KG8uc291cmNlPXIuc2xpY2UoMCxkKSxvLnJ1bGVJZD1yLnNsaWNlKGQrMSkpfWlmKCFvLnBsYWNlJiZvLmFuY2VzdG9ycyYmby5hbmNlc3RvcnMpe2xldCBkPW8uYW5jZXN0b3JzW28uYW5jZXN0b3JzLmxlbmd0aC0xXTtkJiYoby5wbGFjZT1kLnBvc2l0aW9uKX1sZXQgbD1vLnBsYWNlJiYic3RhcnQiaW4gby5wbGFjZT9vLnBsYWNlLnN0YXJ0Om8ucGxhY2U7dGhpcy5hbmNlc3RvcnM9by5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW8uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1sP2wuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPWksdGhpcy5saW5lPWw/bC5saW5lOnZvaWQgMCx0aGlzLm5hbWU9UjAoby5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9by5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1vLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW8uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1uJiZvLmNhdXNlJiZ0eXBlb2Ygby5jYXVzZS5zdGFjaz09InN0cmluZyI/by5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtqcy5wcm90b3R5cGUuZmlsZT0iIixqcy5wcm90b3R5cGUubmFtZT0iIixqcy5wcm90b3R5cGUucmVhc29uPSIiLGpzLnByb3RvdHlwZS5tZXNzYWdlPSIiLGpzLnByb3RvdHlwZS5zdGFjaz0iIixqcy5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxqcy5wcm90b3R5cGUubGluZT12b2lkIDAsanMucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsanMucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxqcy5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLGpzLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsanMucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsanMucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgVzN0PWYoKCk9PntVM3QoKX0pO2Z1bmN0aW9uIG95YShhLGUpe2lmKGUhPT12b2lkIDAmJnR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7UmcoYSk7bGV0IHQ9MCxyPS0xLGk9YS5sZW5ndGgsbztpZihlPT09dm9pZCAwfHxlLmxlbmd0aD09PTB8fGUubGVuZ3RoPmEubGVuZ3RoKXtmb3IoO2ktLTspaWYoYS5jb2RlUG9pbnRBdChpKT09PTQ3KXtpZihvKXt0PWkrMTticmVha319ZWxzZSByPDAmJihvPSEwLHI9aSsxKTtyZXR1cm4gcjwwPyIiOmEuc2xpY2UodCxyKX1pZihlPT09YSlyZXR1cm4iIjtsZXQgbj0tMSxsPWUubGVuZ3RoLTE7Zm9yKDtpLS07KWlmKGEuY29kZVBvaW50QXQoaSk9PT00Nyl7aWYobyl7dD1pKzE7YnJlYWt9fWVsc2UgbjwwJiYobz0hMCxuPWkrMSksbD4tMSYmKGEuY29kZVBvaW50QXQoaSk9PT1lLmNvZGVQb2ludEF0KGwtLSk/bDwwJiYocj1pKToobD0tMSxyPW4pKTtyZXR1cm4gdD09PXI/cj1uOnI8MCYmKHI9YS5sZW5ndGgpLGEuc2xpY2UodCxyKX1mdW5jdGlvbiBueWEoYSl7aWYoUmcoYSksYS5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgZT0tMSx0PWEubGVuZ3RoLHI7Zm9yKDstLXQ7KWlmKGEuY29kZVBvaW50QXQodCk9PT00Nyl7aWYocil7ZT10O2JyZWFrfX1lbHNlIHJ8fChyPSEwKTtyZXR1cm4gZTwwP2EuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOmU9PT0xJiZhLmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjphLnNsaWNlKDAsZSl9ZnVuY3Rpb24gbHlhKGEpe1JnKGEpO2xldCBlPWEubGVuZ3RoLHQ9LTEscj0wLGk9LTEsbz0wLG47Zm9yKDtlLS07KXtsZXQgbD1hLmNvZGVQb2ludEF0KGUpO2lmKGw9PT00Nyl7aWYobil7cj1lKzE7YnJlYWt9Y29udGludWV9dDwwJiYobj0hMCx0PWUrMSksbD09PTQ2P2k8MD9pPWU6byE9PTEmJihvPTEpOmk+LTEmJihvPS0xKX1yZXR1cm4gaTwwfHx0PDB8fG89PT0wfHxvPT09MSYmaT09PXQtMSYmaT09PXIrMT8iIjphLnNsaWNlKGksdCl9ZnVuY3Rpb24gY3lhKC4uLmEpe2xldCBlPS0xLHQ7Zm9yKDsrK2U8YS5sZW5ndGg7KVJnKGFbZV0pLGFbZV0mJih0PXQ9PT12b2lkIDA/YVtlXTp0KyIvIithW2VdKTtyZXR1cm4gdD09PXZvaWQgMD8iLiI6ZHlhKHQpfWZ1bmN0aW9uIGR5YShhKXtSZyhhKTtsZXQgZT1hLmNvZGVQb2ludEF0KDApPT09NDcsdD11eWEoYSwhZSk7cmV0dXJuIHQubGVuZ3RoPT09MCYmIWUmJih0PSIuIiksdC5sZW5ndGg+MCYmYS5jb2RlUG9pbnRBdChhLmxlbmd0aC0xKT09PTQ3JiYodCs9Ii8iKSxlPyIvIit0OnR9ZnVuY3Rpb24gdXlhKGEsZSl7bGV0IHQ9IiIscj0wLGk9LTEsbz0wLG49LTEsbCxkO2Zvcig7KytuPD1hLmxlbmd0aDspe2lmKG48YS5sZW5ndGgpbD1hLmNvZGVQb2ludEF0KG4pO2Vsc2V7aWYobD09PTQ3KWJyZWFrO2w9NDd9aWYobD09PTQ3KXtpZighKGk9PT1uLTF8fG89PT0xKSlpZihpIT09bi0xJiZvPT09Mil7aWYodC5sZW5ndGg8Mnx8ciE9PTJ8fHQuY29kZVBvaW50QXQodC5sZW5ndGgtMSkhPT00Nnx8dC5jb2RlUG9pbnRBdCh0Lmxlbmd0aC0yKSE9PTQ2KXtpZih0Lmxlbmd0aD4yKXtpZihkPXQubGFzdEluZGV4T2YoIi8iKSxkIT09dC5sZW5ndGgtMSl7ZDwwPyh0PSIiLHI9MCk6KHQ9dC5zbGljZSgwLGQpLHI9dC5sZW5ndGgtMS10Lmxhc3RJbmRleE9mKCIvIikpLGk9bixvPTA7Y29udGludWV9fWVsc2UgaWYodC5sZW5ndGg+MCl7dD0iIixyPTAsaT1uLG89MDtjb250aW51ZX19ZSYmKHQ9dC5sZW5ndGg+MD90KyIvLi4iOiIuLiIscj0yKX1lbHNlIHQubGVuZ3RoPjA/dCs9Ii8iK2Euc2xpY2UoaSsxLG4pOnQ9YS5zbGljZShpKzEsbikscj1uLWktMTtpPW4sbz0wfWVsc2UgbD09PTQ2JiZvPi0xP28rKzpvPS0xfXJldHVybiB0fWZ1bmN0aW9uIFJnKGEpe2lmKHR5cGVvZiBhIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkoYSkpfXZhciB2MSxHM3Q9ZigoKT0+e3YxPXtiYXNlbmFtZTpveWEsZGlybmFtZTpueWEsZXh0bmFtZTpseWEsam9pbjpjeWEsc2VwOiIvIn07cyhveWEsImJhc2VuYW1lIik7cyhueWEsImRpcm5hbWUiKTtzKGx5YSwiZXh0bmFtZSIpO3MoY3lhLCJqb2luIik7cyhkeWEsIm5vcm1hbGl6ZSIpO3ModXlhLCJub3JtYWxpemVTdHJpbmciKTtzKFJnLCJhc3NlcnRQYXRoIil9KTtmdW5jdGlvbiBweWEoKXtyZXR1cm4iLyJ9dmFyIFkzdCxLM3Q9ZigoKT0+e1kzdD17Y3dkOnB5YX07cyhweWEsImN3ZCIpfSk7ZnVuY3Rpb24gZjgoYSl7cmV0dXJuISEoYSE9PW51bGwmJnR5cGVvZiBhPT0ib2JqZWN0IiYmImhyZWYiaW4gYSYmYS5ocmVmJiYicHJvdG9jb2wiaW4gYSYmYS5wcm90b2NvbCYmYS5hdXRoPT09dm9pZCAwKX12YXIgSDBlPWYoKCk9PntzKGY4LCJpc1VybCIpfSk7ZnVuY3Rpb24gWjN0KGEpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIilhPW5ldyBVUkwoYSk7ZWxzZSBpZighZjgoYSkpe2xldCBlPW5ldyBUeXBlRXJyb3IoJ1RoZSAicGF0aCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnK2ErImAiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX0FSR19UWVBFIixlfWlmKGEucHJvdG9jb2whPT0iZmlsZToiKXtsZXQgZT1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLGV9cmV0dXJuIGZ5YShhKX1mdW5jdGlvbiBmeWEoYSl7aWYoYS5ob3N0bmFtZSE9PSIiKXtsZXQgcj1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgci5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixyfWxldCBlPWEucGF0aG5hbWUsdD0tMTtmb3IoOysrdDxlLmxlbmd0aDspaWYoZS5jb2RlUG9pbnRBdCh0KT09PTM3JiZlLmNvZGVQb2ludEF0KHQrMSk9PT01MCl7bGV0IHI9ZS5jb2RlUG9pbnRBdCh0KzIpO2lmKHI9PT03MHx8cj09PTEwMil7bGV0IGk9bmV3IFR5cGVFcnJvcigiRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzIik7dGhyb3cgaS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIIixpfX1yZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUpfXZhciBYM3Q9ZigoKT0+e0gwZSgpO0gwZSgpO3MoWjN0LCJ1cmxUb1BhdGgiKTtzKGZ5YSwiZ2V0UGF0aEZyb21VUkxQb3NpeCIpfSk7ZnVuY3Rpb24gVjBlKGEsZSl7aWYoYSYmYS5pbmNsdWRlcyh2MS5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIit2MS5zZXArImAiKX1mdW5jdGlvbiBqMGUoYSxlKXtpZighYSl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGVtcHR5Iil9ZnVuY3Rpb24gUTN0KGEsZSl7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nIGAiK2UrImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28iKX1mdW5jdGlvbiBoeWEoYSl7cmV0dXJuISEoYSYmdHlwZW9mIGE9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBhJiYiYnl0ZU9mZnNldCJpbiBhKX12YXIgcTBlLE9nLEozdD1mKCgpPT57VzN0KCk7RzN0KCk7SzN0KCk7WDN0KCk7cTBlPVsiaGlzdG9yeSIsInBhdGgiLCJiYXNlbmFtZSIsInN0ZW0iLCJleHRuYW1lIiwiZGlybmFtZSJdLE9nPWNsYXNze3N0YXRpY3tzKHRoaXMsIlZGaWxlIil9Y29uc3RydWN0b3IoZSl7bGV0IHQ7ZT9mOChlKT90PXtwYXRoOmV9OnR5cGVvZiBlPT0ic3RyaW5nInx8aHlhKGUpP3Q9e3ZhbHVlOmV9OnQ9ZTp0PXt9LHRoaXMuY3dkPSJjd2QiaW4gdD8iIjpZM3QuY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IHI9LTE7Zm9yKDsrK3I8cTBlLmxlbmd0aDspe2xldCBvPXEwZVtyXTtvIGluIHQmJnRbb10hPT12b2lkIDAmJnRbb10hPT1udWxsJiYodGhpc1tvXT1vPT09Imhpc3RvcnkiP1suLi50W29dXTp0W29dKX1sZXQgaTtmb3IoaSBpbiB0KXEwZS5pbmNsdWRlcyhpKXx8KHRoaXNbaV09dFtpXSl9Z2V0IGJhc2VuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3YxLmJhc2VuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBiYXNlbmFtZShlKXtqMGUoZSwiYmFzZW5hbWUiKSxWMGUoZSwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9djEuam9pbih0aGlzLmRpcm5hbWV8fCIiLGUpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3YxLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUoZSl7UTN0KHRoaXMuYmFzZW5hbWUsImRpcm5hbWUiKSx0aGlzLnBhdGg9djEuam9pbihlfHwiIix0aGlzLmJhc2VuYW1lKX1nZXQgZXh0bmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj92MS5leHRuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBleHRuYW1lKGUpe2lmKFYwZShlLCJleHRuYW1lIiksUTN0KHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLGUpe2lmKGUuY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYoZS5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD12MS5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKGV8fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgoZSl7ZjgoZSkmJihlPVozdChlKSksajBlKGUsInBhdGgiKSx0aGlzLnBhdGghPT1lJiZ0aGlzLmhpc3RvcnkucHVzaChlKX1nZXQgc3RlbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj92MS5iYXNlbmFtZSh0aGlzLnBhdGgsdGhpcy5leHRuYW1lKTp2b2lkIDB9c2V0IHN0ZW0oZSl7ajBlKGUsInN0ZW0iKSxWMGUoZSwic3RlbSIpLHRoaXMucGF0aD12MS5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSsodGhpcy5leHRuYW1lfHwiIikpfWZhaWwoZSx0LHIpe2xldCBpPXRoaXMubWVzc2FnZShlLHQscik7dGhyb3cgaS5mYXRhbD0hMCxpfWluZm8oZSx0LHIpe2xldCBpPXRoaXMubWVzc2FnZShlLHQscik7cmV0dXJuIGkuZmF0YWw9dm9pZCAwLGl9bWVzc2FnZShlLHQscil7bGV0IGk9bmV3IGpzKGUsdCxyKTtyZXR1cm4gdGhpcy5wYXRoJiYoaS5uYW1lPXRoaXMucGF0aCsiOiIraS5uYW1lLGkuZmlsZT10aGlzLnBhdGgpLGkuZmF0YWw9ITEsdGhpcy5tZXNzYWdlcy5wdXNoKGkpLGl9dG9TdHJpbmcoZSl7cmV0dXJuIHRoaXMudmFsdWU9PT12b2lkIDA/IiI6dHlwZW9mIHRoaXMudmFsdWU9PSJzdHJpbmciP3RoaXMudmFsdWU6bmV3IFRleHREZWNvZGVyKGV8fHZvaWQgMCkuZGVjb2RlKHRoaXMudmFsdWUpfX07cyhWMGUsImFzc2VydFBhcnQiKTtzKGowZSwiYXNzZXJ0Tm9uRW1wdHkiKTtzKFEzdCwiYXNzZXJ0UGF0aCIpO3MoaHlhLCJpc1VpbnQ4QXJyYXkiKX0pO3ZhciBlZHQ9ZigoKT0+e0ozdCgpfSk7dmFyIHRkdCxhZHQ9ZigoKT0+e3RkdD1zKChmdW5jdGlvbihhKXtsZXQgcj10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxpPXJbYV0sbz1zKGZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkobyxhcmd1bWVudHMpfSwiYXBwbHkiKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG8sciksb30pLCJDYWxsYWJsZUluc3RhbmNlIil9KTtmdW5jdGlvbiBXMGUoYSxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrYSsiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24gRzBlKGEsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK2ErImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gWTBlKGEsZSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK2ErImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiByZHQoYSl7aWYoIU5nKGEpfHx0eXBlb2YgYS50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrYSsiYCIpfWZ1bmN0aW9uIHNkdChhLGUsdCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJgIithKyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrZSsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gY1EoYSl7cmV0dXJuIGd5YShhKT9hOm5ldyBPZyhhKX1mdW5jdGlvbiBneWEoYSl7cmV0dXJuISEoYSYmdHlwZW9mIGE9PSJvYmplY3QiJiYibWVzc2FnZSJpbiBhJiYibWVzc2FnZXMiaW4gYSl9ZnVuY3Rpb24gYnlhKGEpe3JldHVybiB0eXBlb2YgYT09InN0cmluZyJ8fHZ5YShhKX1mdW5jdGlvbiB2eWEoYSl7cmV0dXJuISEoYSYmdHlwZW9mIGE9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBhJiYiYnl0ZU9mZnNldCJpbiBhKX12YXIgZFEsbXlhLFUwZSxGZyxpZHQ9ZigoKT0+e1QzdCgpO2RRPWtvKFIzdCgpLDEpO04wKCk7TzN0KCk7SDN0KCk7ZWR0KCk7YWR0KCk7bXlhPXt9Lmhhc093blByb3BlcnR5LFUwZT1jbGFzcyBhIGV4dGVuZHMgdGR0e3N0YXRpY3tzKHRoaXMsIlByb2Nlc3NvciIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPU8wZSgpfWNvcHkoKXtsZXQgZT1uZXcgYSx0PS0xO2Zvcig7Kyt0PHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCByPXRoaXMuYXR0YWNoZXJzW3RdO2UudXNlKC4uLnIpfXJldHVybiBlLmRhdGEoKDAsZFEuZGVmYXVsdCkoITAse30sdGhpcy5uYW1lc3BhY2UpKSxlfWRhdGEoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhZMGUoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZVtlXT10LHRoaXMpOm15YS5jYWxsKHRoaXMubmFtZXNwYWNlLGUpJiZ0aGlzLm5hbWVzcGFjZVtlXXx8dm9pZCAwOmU/KFkwZSgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPWUsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7bGV0IGU9dGhpcztmb3IoOysrdGhpcy5mcmVlemVJbmRleDx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXRbdCwuLi5yXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihyWzBdPT09ITEpY29udGludWU7clswXT09PSEwJiYoclswXT12b2lkIDApO2xldCBpPXQuY2FsbChlLC4uLnIpO3R5cGVvZiBpPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2UoaSl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UoZSl7dGhpcy5mcmVlemUoKTtsZXQgdD1jUShlKSxyPXRoaXMucGFyc2VyfHx0aGlzLlBhcnNlcjtyZXR1cm4gVzBlKCJwYXJzZSIscikscihTdHJpbmcodCksdCl9cHJvY2VzcyhlLHQpe2xldCByPXRoaXM7cmV0dXJuIHRoaXMuZnJlZXplKCksVzBlKCJwcm9jZXNzIix0aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXIpLEcwZSgicHJvY2VzcyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdD9pKHZvaWQgMCx0KTpuZXcgUHJvbWlzZShpKTtmdW5jdGlvbiBpKG8sbil7bGV0IGw9Y1EoZSksZD1yLnBhcnNlKGwpO3IucnVuKGQsbCxmdW5jdGlvbihwLHUsbSl7aWYocHx8IXV8fCFtKXJldHVybiBjKHApO2xldCB2PXUseD1yLnN0cmluZ2lmeSh2LG0pO2J5YSh4KT9tLnZhbHVlPXg6bS5yZXN1bHQ9eCxjKHAsbSl9KTtmdW5jdGlvbiBjKHAsdSl7cHx8IXU/bihwKTpvP28odSk6dCh2b2lkIDAsdSl9cyhjLCJyZWFsRG9uZSIpfXMoaSwiZXhlY3V0b3IiKX1wcm9jZXNzU3luYyhlKXtsZXQgdD0hMSxyO3JldHVybiB0aGlzLmZyZWV6ZSgpLFcwZSgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksRzBlKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKGUsaSksc2R0KCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLHQpLHI7ZnVuY3Rpb24gaShvLG4pe3Q9ITAsUjBlKG8pLHI9bn1zKGksInJlYWxEb25lIil9cnVuKGUsdCxyKXtyZHQoZSksdGhpcy5mcmVlemUoKTtsZXQgaT10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4hciYmdHlwZW9mIHQ9PSJmdW5jdGlvbiImJihyPXQsdD12b2lkIDApLHI/byh2b2lkIDAscik6bmV3IFByb21pc2Uobyk7ZnVuY3Rpb24gbyhuLGwpe2xldCBkPWNRKHQpO2kucnVuKGUsZCxjKTtmdW5jdGlvbiBjKHAsdSxtKXtsZXQgdj11fHxlO3A/bChwKTpuP24odik6cih2b2lkIDAsdixtKX1zKGMsInJlYWxEb25lIil9cyhvLCJleGVjdXRvciIpfXJ1blN5bmMoZSx0KXtsZXQgcj0hMSxpO3JldHVybiB0aGlzLnJ1bihlLHQsbyksc2R0KCJydW5TeW5jIiwicnVuIixyKSxpO2Z1bmN0aW9uIG8obixsKXtSMGUobiksaT1sLHI9ITB9cyhvLCJyZWFsRG9uZSIpfXN0cmluZ2lmeShlLHQpe3RoaXMuZnJlZXplKCk7bGV0IHI9Y1EodCksaT10aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyO3JldHVybiBHMGUoInN0cmluZ2lmeSIsaSkscmR0KGUpLGkoZSxyKX11c2UoZSwuLi50KXtsZXQgcj10aGlzLmF0dGFjaGVycyxpPXRoaXMubmFtZXNwYWNlO2lmKFkwZSgidXNlIix0aGlzLmZyb3plbiksZSE9bnVsbClpZih0eXBlb2YgZT09ImZ1bmN0aW9uIilkKGUsdCk7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpQXJyYXkuaXNBcnJheShlKT9sKGUpOm4oZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIitlKyJgIik7cmV0dXJuIHRoaXM7ZnVuY3Rpb24gbyhjKXtpZih0eXBlb2YgYz09ImZ1bmN0aW9uIilkKGMsW10pO2Vsc2UgaWYodHlwZW9mIGM9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoYykpe2xldFtwLC4uLnVdPWM7ZChwLHUpfWVsc2UgbihjKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBuKGMpe2lmKCEoInBsdWdpbnMiaW4gYykmJiEoInNldHRpbmdzImluIGMpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlIGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBwcmVzZXQsIHdoaWNoIGlzIHByb2JhYmx5IGEgbWlzdGFrZTogcHJlc2V0cyB0eXBpY2FsbHkgY29tZSB3aXRoIGBwbHVnaW5zYCBhbmQgc29tZXRpbWVzIHdpdGggYHNldHRpbmdzYCwgYnV0IHRoaXMgaGFzIG5laXRoZXIiKTtsKGMucGx1Z2lucyksYy5zZXR0aW5ncyYmKGkuc2V0dGluZ3M9KDAsZFEuZGVmYXVsdCkoITAsaS5zZXR0aW5ncyxjLnNldHRpbmdzKSl9ZnVuY3Rpb24gbChjKXtsZXQgcD0tMTtpZihjIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoYykpZm9yKDsrK3A8Yy5sZW5ndGg7KXtsZXQgdT1jW3BdO28odSl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBkKGMscCl7bGV0IHU9LTEsbT0tMTtmb3IoOysrdTxyLmxlbmd0aDspaWYoclt1XVswXT09PWMpe209dTticmVha31pZihtPT09LTEpci5wdXNoKFtjLC4uLnBdKTtlbHNlIGlmKHAubGVuZ3RoPjApe2xldFt2LC4uLnhdPXAsYj1yW21dWzFdO05nKGIpJiZOZyh2KSYmKHY9KDAsZFEuZGVmYXVsdCkoITAsYix2KSksclttXT1bYyx2LC4uLnhdfX19fSxGZz1uZXcgVTBlKCkuZnJlZXplKCk7cyhXMGUsImFzc2VydFBhcnNlciIpO3MoRzBlLCJhc3NlcnRDb21waWxlciIpO3MoWTBlLCJhc3NlcnRVbmZyb3plbiIpO3MocmR0LCJhc3NlcnROb2RlIik7cyhzZHQsImFzc2VydERvbmUiKTtzKGNRLCJ2ZmlsZSIpO3MoZ3lhLCJsb29rc0xpa2VBVkZpbGUiKTtzKGJ5YSwibG9va3NMaWtlQVZhbHVlIik7cyh2eWEsImlzVWludDhBcnJheSIpfSk7dmFyIG9kdD1mKCgpPT57aWR0KCl9KTtmdW5jdGlvbiBtOChhLGUpe2xldCB0PVN0cmluZyhhKTtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgY2hhcmFjdGVyIik7bGV0IHI9MCxpPXQuaW5kZXhPZihlKTtmb3IoO2khPT0tMTspcisrLGk9dC5pbmRleE9mKGUsaStlLmxlbmd0aCk7cmV0dXJuIHJ9dmFyIEswZT1mKCgpPT57cyhtOCwiY2NvdW50Iil9KTtmdW5jdGlvbiBGMyhhKXtyZXR1cm4gYSE9PW51bGwmJihhPDMyfHxhPT09MTI3KX1mdW5jdGlvbiBldChhKXtyZXR1cm4gYSE9PW51bGwmJmE8LTJ9ZnVuY3Rpb24gdWEoYSl7cmV0dXJuIGEhPT1udWxsJiYoYTwwfHxhPT09MzIpfWZ1bmN0aW9uIEN0KGEpe3JldHVybiBhPT09LTJ8fGE9PT0tMXx8YT09PTMyfWZ1bmN0aW9uIE8wKGEpe3JldHVybiBlO2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQhPT1udWxsJiZ0Pi0xJiZhLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSl9fXZhciBBcyxJcixuZHQsQmcsbGR0LGNkdCxCMyxBMixiYT1mKCgpPT57QXM9TzAoL1tBLVphLXpdLyksSXI9TzAoL1tcZEEtWmEtel0vKSxuZHQ9TzAoL1sjLScqK1wtLTk9P0EtWl4tfl0vKTtzKEYzLCJhc2NpaUNvbnRyb2wiKTtCZz1PMCgvXGQvKSxsZHQ9TzAoL1tcZEEtRmEtZl0vKSxjZHQ9TzAoL1shLS86LUBbLWB7LX5dLyk7cyhldCwibWFya2Rvd25MaW5lRW5kaW5nIik7cyh1YSwibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIpO3MoQ3QsIm1hcmtkb3duU3BhY2UiKTtCMz1PMCgvXHB7UH18XHB7U30vdSksQTI9TzAoL1xzLyk7cyhPMCwicmVnZXhDaGVjayIpfSk7ZnVuY3Rpb24geHlhKGEpe2xldCBlPVtdLHQ9LTE7Zm9yKDsrK3Q8YS5sZW5ndGg7KWVbdF09RmwoYVt0XSk7cmV0dXJuIHVRKHIpO2Z1bmN0aW9uIHIoLi4uaSl7bGV0IG89LTE7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKGVbb10uYXBwbHkodGhpcyxpKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24geXlhKGEpe2xldCBlPWE7cmV0dXJuIHVRKHQpO2Z1bmN0aW9uIHQocil7bGV0IGk9cixvO2ZvcihvIGluIGEpaWYoaVtvXSE9PWVbb10pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uIHd5YShhKXtyZXR1cm4gdVEoZSk7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmdC50eXBlPT09YX19ZnVuY3Rpb24gdVEoYSl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0LHIsaSl7cmV0dXJuISEoZGR0KHQpJiZhLmNhbGwodGhpcyx0LHR5cGVvZiByPT0ibnVtYmVyIj9yOnZvaWQgMCxpfHx2b2lkIDApKX19ZnVuY3Rpb24gTXlhKCl7cmV0dXJuITB9ZnVuY3Rpb24gZGR0KGEpe3JldHVybiBhIT09bnVsbCYmdHlwZW9mIGE9PSJvYmplY3QiJiYidHlwZSJpbiBhfXZhciB1ZHQsRmwscGR0PWYoKCk9Pnt1ZHQ9cygoZnVuY3Rpb24oYSxlLHQscixpKXtsZXQgbz1GbChlKTtpZih0IT1udWxsJiYodHlwZW9mIHQhPSJudW1iZXIifHx0PDB8fHQ9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4Iik7aWYociE9bnVsbCYmKCF1ZHQocil8fCFyLmNoaWxkcmVuKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCBub2RlIik7aWYocj09bnVsbCE9KHQ9PW51bGwpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4Iik7cmV0dXJuIGRkdChhKT9vLmNhbGwoaSxhLHQscik6ITF9KSwiaXMiKSxGbD1zKChmdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBNeWE7aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIHVRKGEpO2lmKHR5cGVvZiBhPT0ib2JqZWN0IilyZXR1cm4gQXJyYXkuaXNBcnJheShhKT94eWEoYSk6eXlhKGEpO2lmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gd3lhKGEpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QiKX0pLCJjb252ZXJ0Iik7cyh4eWEsImFueUZhY3RvcnkiKTtzKHl5YSwicHJvcGVydGllc0ZhY3RvcnkiKTtzKHd5YSwidHlwZUZhY3RvcnkiKTtzKHVRLCJjYXN0RmFjdG9yeSIpO3MoTXlhLCJvayIpO3MoZGR0LCJsb29rc0xpa2VBTm9kZSIpfSk7dmFyIHBRPWYoKCk9PntwZHQoKX0pO3ZhciBmZHQ9ZigoKT0+e30pO2Z1bmN0aW9uIEhnKGEsZSx0LHIpe2xldCBpO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIj8ocj10LHQ9ZSk6aT1lO2xldCBvPUZsKGkpLG49cj8tMToxO2woYSx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gbChkLGMscCl7bGV0IHU9ZCYmdHlwZW9mIGQ9PSJvYmplY3QiP2Q6e307aWYodHlwZW9mIHUudHlwZT09InN0cmluZyIpe2xldCB2PXR5cGVvZiB1LnRhZ05hbWU9PSJzdHJpbmciP3UudGFnTmFtZTp0eXBlb2YgdS5uYW1lPT0ic3RyaW5nIj91Lm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShtLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKGQudHlwZSsodj8iPCIrdisiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gbTtmdW5jdGlvbiBtKCl7bGV0IHY9aGR0LHgsYixnO2lmKCghZXx8byhkLGMscFtwLmxlbmd0aC0xXXx8dm9pZCAwKSkmJih2PWt5YSh0KGQscCkpLHZbMF09PT1IMykpcmV0dXJuIHY7aWYoImNoaWxkcmVuImluIGQmJmQuY2hpbGRyZW4pe2xldCB5PWQ7aWYoeS5jaGlsZHJlbiYmdlswXSE9PWhRKWZvcihiPShyP3kuY2hpbGRyZW4ubGVuZ3RoOi0xKStuLGc9cC5jb25jYXQoeSk7Yj4tMSYmYjx5LmNoaWxkcmVuLmxlbmd0aDspe2xldCBrPXkuY2hpbGRyZW5bYl07aWYoeD1sKGssYixnKSgpLHhbMF09PT1IMylyZXR1cm4geDtiPXR5cGVvZiB4WzFdPT0ibnVtYmVyIj94WzFdOmIrbn19cmV0dXJuIHZ9fXMobCwiZmFjdG9yeSIpfWZ1bmN0aW9uIGt5YShhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOnR5cGVvZiBhPT0ibnVtYmVyIj9bZlEsYV06YT09bnVsbD9oZHQ6W2FdfXZhciBoZHQsZlEsSDMsaFEsbWR0PWYoKCk9PntwUSgpO2ZkdCgpO2hkdD1bXSxmUT0hMCxIMz0hMSxoUT0ic2tpcCI7cyhIZywidmlzaXRQYXJlbnRzIik7cyhreWEsInRvUmVzdWx0Iil9KTt2YXIgbVE9ZigoKT0+e21kdCgpfSk7ZnVuY3Rpb24gWjBlKGEsZSx0KXtsZXQgaT1GbCgodHx8e30pLmlnbm9yZXx8W10pLG89U3lhKGUpLG49LTE7Zm9yKDsrK248by5sZW5ndGg7KUhnKGEsInRleHQiLGwpO2Z1bmN0aW9uIGwoYyxwKXtsZXQgdT0tMSxtO2Zvcig7Kyt1PHAubGVuZ3RoOyl7bGV0IHY9cFt1XSx4PW0/bS5jaGlsZHJlbjp2b2lkIDA7aWYoaSh2LHg/eC5pbmRleE9mKHYpOnZvaWQgMCxtKSlyZXR1cm47bT12fWlmKG0pcmV0dXJuIGQoYyxwKX1zKGwsInZpc2l0b3IiKTtmdW5jdGlvbiBkKGMscCl7bGV0IHU9cFtwLmxlbmd0aC0xXSxtPW9bbl1bMF0sdj1vW25dWzFdLHg9MCxnPXUuY2hpbGRyZW4uaW5kZXhPZihjKSx5PSExLGs9W107bS5sYXN0SW5kZXg9MDtsZXQgQz1tLmV4ZWMoYy52YWx1ZSk7Zm9yKDtDOyl7bGV0IE49Qy5pbmRleCxfPXtpbmRleDpDLmluZGV4LGlucHV0OkMuaW5wdXQsc3RhY2s6Wy4uLnAsY119LHo9diguLi5DLF8pO2lmKHR5cGVvZiB6PT0ic3RyaW5nIiYmKHo9ei5sZW5ndGg+MD97dHlwZToidGV4dCIsdmFsdWU6en06dm9pZCAwKSx6PT09ITE/bS5sYXN0SW5kZXg9TisxOih4IT09TiYmay5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgsTil9KSxBcnJheS5pc0FycmF5KHopP2sucHVzaCguLi56KTp6JiZrLnB1c2goeikseD1OK0NbMF0ubGVuZ3RoLHk9ITApLCFtLmdsb2JhbClicmVhaztDPW0uZXhlYyhjLnZhbHVlKX1yZXR1cm4geT8oeDxjLnZhbHVlLmxlbmd0aCYmay5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgpfSksdS5jaGlsZHJlbi5zcGxpY2UoZywxLC4uLmspKTprPVtjXSxnK2subGVuZ3RofXMoZCwiaGFuZGxlciIpfWZ1bmN0aW9uIFN5YShhKXtsZXQgZT1bXTtpZighQXJyYXkuaXNBcnJheShhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmaW5kIGFuZCByZXBsYWNlIHR1cGxlIG9yIGxpc3Qgb2YgdHVwbGVzIik7bGV0IHQ9IWFbMF18fEFycmF5LmlzQXJyYXkoYVswXSk/YTpbYV0scj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspe2xldCBpPXRbcl07ZS5wdXNoKFt6eWEoaVswXSksQ3lhKGlbMV0pXSl9cmV0dXJuIGV9ZnVuY3Rpb24genlhKGEpe3JldHVybiB0eXBlb2YgYT09InN0cmluZyI/bmV3IFJlZ0V4cChsMyhhKSwiZyIpOmF9ZnVuY3Rpb24gQ3lhKGEpe3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIj9hOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fXZhciBnZHQ9ZigoKT0+e1VZKCk7bVEoKTtwUSgpO3MoWjBlLCJmaW5kQW5kUmVwbGFjZSIpO3MoU3lhLCJ0b1BhaXJzIik7cyh6eWEsInRvRXhwcmVzc2lvbiIpO3MoQ3lhLCJ0b0Z1bmN0aW9uIil9KTt2YXIgYmR0PWYoKCk9PntnZHQoKX0pO2Z1bmN0aW9uIGU0ZSgpe3JldHVybnt0cmFuc2Zvcm1zOltBeWFdLGVudGVyOntsaXRlcmFsQXV0b2xpbms6X3lhLGxpdGVyYWxBdXRvbGlua0VtYWlsOkowZSxsaXRlcmFsQXV0b2xpbmtIdHRwOkowZSxsaXRlcmFsQXV0b2xpbmtXd3c6SjBlfSxleGl0OntsaXRlcmFsQXV0b2xpbms6RHlhLGxpdGVyYWxBdXRvbGlua0VtYWlsOiR5YSxsaXRlcmFsQXV0b2xpbmtIdHRwOlR5YSxsaXRlcmFsQXV0b2xpbmtXd3c6THlhfX19ZnVuY3Rpb24gdDRlKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiQCIsYmVmb3JlOiJbK1xcLS5cXHddIixhZnRlcjoiW1xcLS5cXHddIixpbkNvbnN0cnVjdDpYMGUsbm90SW5Db25zdHJ1Y3Q6UTBlfSx7Y2hhcmFjdGVyOiIuIixiZWZvcmU6IltXd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OlgwZSxub3RJbkNvbnN0cnVjdDpRMGV9LHtjaGFyYWN0ZXI6IjoiLGJlZm9yZToiW3BzXSIsYWZ0ZXI6IlxcLyIsaW5Db25zdHJ1Y3Q6WDBlLG5vdEluQ29uc3RydWN0OlEwZX1dfX1mdW5jdGlvbiBfeWEoYSl7dGhpcy5lbnRlcih7dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119LGEpfWZ1bmN0aW9uIEowZShhKXt0aGlzLmNvbmZpZy5lbnRlci5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcyxhKX1mdW5jdGlvbiBUeWEoYSl7dGhpcy5jb25maWcuZXhpdC5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcyxhKX1mdW5jdGlvbiBMeWEoYSl7dGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyxhKTtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2UudHlwZSxlLnVybD0iaHR0cDovLyIrdGhpcy5zbGljZVNlcmlhbGl6ZShhKX1mdW5jdGlvbiAkeWEoYSl7dGhpcy5jb25maWcuZXhpdC5hdXRvbGlua0VtYWlsLmNhbGwodGhpcyxhKX1mdW5jdGlvbiBEeWEoYSl7dGhpcy5leGl0KGEpfWZ1bmN0aW9uIEF5YShhKXtaMGUoYSxbWy8oaHR0cHM/OlwvXC98d3d3KD89XC4pKShbLS5cd10rKShbXiBcdFxyXG5dKikvZ2ksUHlhXSxbLyg/PD1efFxzfFxwe1B9fFxwe1N9KShbLS5cdytdKylAKFstXHddKyg/OlwuWy1cd10rKSspL2d1LEV5YV1dLHtpZ25vcmU6WyJsaW5rIiwibGlua1JlZmVyZW5jZSJdfSl9ZnVuY3Rpb24gUHlhKGEsZSx0LHIsaSl7bGV0IG89IiI7aWYoIXZkdChpKXx8KC9edy9pLnRlc3QoZSkmJih0PWUrdCxlPSIiLG89Imh0dHA6Ly8iKSwhSXlhKHQpKSlyZXR1cm4hMTtsZXQgbj1OeWEodCtyKTtpZighblswXSlyZXR1cm4hMTtsZXQgbD17dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6bytlK25bMF0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTplK25bMF19XX07cmV0dXJuIG5bMV0/W2wse3R5cGU6InRleHQiLHZhbHVlOm5bMV19XTpsfWZ1bmN0aW9uIEV5YShhLGUsdCxyKXtyZXR1cm4hdmR0KHIsITApfHwvWy1cZF9dJC8udGVzdCh0KT8hMTp7dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6Im1haWx0bzoiK2UrIkAiK3QsY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTplKyJAIit0fV19fWZ1bmN0aW9uIEl5YShhKXtsZXQgZT1hLnNwbGl0KCIuIik7cmV0dXJuIShlLmxlbmd0aDwyfHxlW2UubGVuZ3RoLTFdJiYoL18vLnRlc3QoZVtlLmxlbmd0aC0xXSl8fCEvW2EtekEtWlxkXS8udGVzdChlW2UubGVuZ3RoLTFdKSl8fGVbZS5sZW5ndGgtMl0mJigvXy8udGVzdChlW2UubGVuZ3RoLTJdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMl0pKSl9ZnVuY3Rpb24gTnlhKGEpe2xldCBlPS9bISImJyksLjo7PD4/XF19XSskLy5leGVjKGEpO2lmKCFlKXJldHVyblthLHZvaWQgMF07YT1hLnNsaWNlKDAsZS5pbmRleCk7bGV0IHQ9ZVswXSxyPXQuaW5kZXhPZigiKSIpLGk9bTgoYSwiKCIpLG89bTgoYSwiKSIpO2Zvcig7ciE9PS0xJiZpPm87KWErPXQuc2xpY2UoMCxyKzEpLHQ9dC5zbGljZShyKzEpLHI9dC5pbmRleE9mKCIpIiksbysrO3JldHVyblthLHRdfWZ1bmN0aW9uIHZkdChhLGUpe2xldCB0PWEuaW5wdXQuY2hhckNvZGVBdChhLmluZGV4LTEpO3JldHVybihhLmluZGV4PT09MHx8QTIodCl8fEIzKHQpKSYmKCFlfHx0IT09NDcpfXZhciBYMGUsUTBlLHhkdD1mKCgpPT57SzBlKCk7TjAoKTtiYSgpO2JkdCgpO1gwZT0icGhyYXNpbmciLFEwZT1bImF1dG9saW5rIiwibGluayIsImltYWdlIiwibGFiZWwiXTtzKGU0ZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsRnJvbU1hcmtkb3duIik7cyh0NGUsImdmbUF1dG9saW5rTGl0ZXJhbFRvTWFya2Rvd24iKTtzKF95YSwiZW50ZXJMaXRlcmFsQXV0b2xpbmsiKTtzKEowZSwiZW50ZXJMaXRlcmFsQXV0b2xpbmtWYWx1ZSIpO3MoVHlhLCJleGl0TGl0ZXJhbEF1dG9saW5rSHR0cCIpO3MoTHlhLCJleGl0TGl0ZXJhbEF1dG9saW5rV3d3Iik7cygkeWEsImV4aXRMaXRlcmFsQXV0b2xpbmtFbWFpbCIpO3MoRHlhLCJleGl0TGl0ZXJhbEF1dG9saW5rIik7cyhBeWEsInRyYW5zZm9ybUdmbUF1dG9saW5rTGl0ZXJhbHMiKTtzKFB5YSwiZmluZFVybCIpO3MoRXlhLCJmaW5kRW1haWwiKTtzKEl5YSwiaXNDb3JyZWN0RG9tYWluIik7cyhOeWEsInNwbGl0VXJsIik7cyh2ZHQsInByZXZpb3VzIil9KTt2YXIgeWR0PWYoKCk9Pnt4ZHQoKX0pO2Z1bmN0aW9uIE5yKGEpe3JldHVybiBhLnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLnJlcGxhY2UoL14gfCAkL2csIiIpLnRvTG93ZXJDYXNlKCkudG9VcHBlckNhc2UoKX12YXIgRjA9ZigoKT0+e3MoTnIsIm5vcm1hbGl6ZUlkZW50aWZpZXIiKX0pO2Z1bmN0aW9uIFJ5YSgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gT3lhKGEpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlUmVmZXJlbmNlIixpZGVudGlmaWVyOiIiLGxhYmVsOiIifSxhKX1mdW5jdGlvbiBGeWEoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIEJ5YShhKXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZURlZmluaXRpb24iLGlkZW50aWZpZXI6IiIsbGFiZWw6IiIsY2hpbGRyZW46W119LGEpfWZ1bmN0aW9uIEh5YShhKXtsZXQgZT10aGlzLnJlc3VtZSgpLHQ9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt0LnR5cGUsdC5pZGVudGlmaWVyPU5yKHRoaXMuc2xpY2VTZXJpYWxpemUoYSkpLnRvTG93ZXJDYXNlKCksdC5sYWJlbD1lfWZ1bmN0aW9uIHF5YShhKXt0aGlzLmV4aXQoYSl9ZnVuY3Rpb24gVnlhKGEpe2xldCBlPXRoaXMucmVzdW1lKCksdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3QudHlwZSx0LmlkZW50aWZpZXI9TnIodGhpcy5zbGljZVNlcmlhbGl6ZShhKSkudG9Mb3dlckNhc2UoKSx0LmxhYmVsPWV9ZnVuY3Rpb24ganlhKGEpe3RoaXMuZXhpdChhKX1mdW5jdGlvbiBVeWEoKXtyZXR1cm4iWyJ9ZnVuY3Rpb24gd2R0KGEsZSx0LHIpe2xldCBpPXQuY3JlYXRlVHJhY2tlcihyKSxvPWkubW92ZSgiW14iKSxuPXQuZW50ZXIoImZvb3Rub3RlUmVmZXJlbmNlIiksbD10LmVudGVyKCJyZWZlcmVuY2UiKTtyZXR1cm4gbys9aS5tb3ZlKHQuc2FmZSh0LmFzc29jaWF0aW9uSWQoYSkse2FmdGVyOiJdIixiZWZvcmU6b30pKSxsKCksbigpLG8rPWkubW92ZSgiXSIpLG99ZnVuY3Rpb24gYTRlKCl7cmV0dXJue2VudGVyOntnZm1Gb290bm90ZUNhbGxTdHJpbmc6UnlhLGdmbUZvb3Rub3RlQ2FsbDpPeWEsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6RnlhLGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpCeWF9LGV4aXQ6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzpIeWEsZ2ZtRm9vdG5vdGVDYWxsOnF5YSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpWeWEsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOmp5YX19fWZ1bmN0aW9uIHI0ZShhKXtsZXQgZT0hMTtyZXR1cm4gYSYmYS5maXJzdExpbmVCbGFuayYmKGU9ITApLHtoYW5kbGVyczp7Zm9vdG5vdGVEZWZpbml0aW9uOnQsZm9vdG5vdGVSZWZlcmVuY2U6d2R0fSx1bnNhZmU6W3tjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJwaHJhc2luZyIsInJlZmVyZW5jZSJdfV19O2Z1bmN0aW9uIHQocixpLG8sbil7bGV0IGw9by5jcmVhdGVUcmFja2VyKG4pLGQ9bC5tb3ZlKCJbXiIpLGM9by5lbnRlcigiZm9vdG5vdGVEZWZpbml0aW9uIikscD1vLmVudGVyKCJsYWJlbCIpO3JldHVybiBkKz1sLm1vdmUoby5zYWZlKG8uYXNzb2NpYXRpb25JZChyKSx7YmVmb3JlOmQsYWZ0ZXI6Il0ifSkpLHAoKSxkKz1sLm1vdmUoIl06Iiksci5jaGlsZHJlbiYmci5jaGlsZHJlbi5sZW5ndGg+MCYmKGwuc2hpZnQoNCksZCs9bC5tb3ZlKChlP2AKYDoiICIpK28uaW5kZW50TGluZXMoby5jb250YWluZXJGbG93KHIsbC5jdXJyZW50KCkpLGU/TWR0Old5YSkpKSxjKCksZH1zKHQsImZvb3Rub3RlRGVmaW5pdGlvbiIpfWZ1bmN0aW9uIFd5YShhLGUsdCl7cmV0dXJuIGU9PT0wP2E6TWR0KGEsZSx0KX1mdW5jdGlvbiBNZHQoYSxlLHQpe3JldHVybih0PyIiOiIgICAgIikrYX12YXIga2R0PWYoKCk9PntOMCgpO0YwKCk7d2R0LnBlZWs9VXlhO3MoUnlhLCJlbnRlckZvb3Rub3RlQ2FsbFN0cmluZyIpO3MoT3lhLCJlbnRlckZvb3Rub3RlQ2FsbCIpO3MoRnlhLCJlbnRlckZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cyhCeWEsImVudGVyRm9vdG5vdGVEZWZpbml0aW9uIik7cyhIeWEsImV4aXRGb290bm90ZUNhbGxTdHJpbmciKTtzKHF5YSwiZXhpdEZvb3Rub3RlQ2FsbCIpO3MoVnlhLCJleGl0Rm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtzKGp5YSwiZXhpdEZvb3Rub3RlRGVmaW5pdGlvbiIpO3MoVXlhLCJmb290bm90ZVJlZmVyZW5jZVBlZWsiKTtzKHdkdCwiZm9vdG5vdGVSZWZlcmVuY2UiKTtzKGE0ZSwiZ2ZtRm9vdG5vdGVGcm9tTWFya2Rvd24iKTtzKHI0ZSwiZ2ZtRm9vdG5vdGVUb01hcmtkb3duIik7cyhXeWEsIm1hcEV4Y2VwdEZpcnN0Iik7cyhNZHQsIm1hcEFsbCIpfSk7dmFyIFNkdD1mKCgpPT57a2R0KCl9KTtmdW5jdGlvbiBzNGUoKXtyZXR1cm57Y2FuQ29udGFpbkVvbHM6WyJkZWxldGUiXSxlbnRlcjp7c3RyaWtldGhyb3VnaDpZeWF9LGV4aXQ6e3N0cmlrZXRocm91Z2g6S3lhfX19ZnVuY3Rpb24gaTRlKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoifiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpHeWF9XSxoYW5kbGVyczp7ZGVsZXRlOnpkdH19fWZ1bmN0aW9uIFl5YShhKXt0aGlzLmVudGVyKHt0eXBlOiJkZWxldGUiLGNoaWxkcmVuOltdfSxhKX1mdW5jdGlvbiBLeWEoYSl7dGhpcy5leGl0KGEpfWZ1bmN0aW9uIHpkdChhLGUsdCxyKXtsZXQgaT10LmNyZWF0ZVRyYWNrZXIociksbz10LmVudGVyKCJzdHJpa2V0aHJvdWdoIiksbj1pLm1vdmUoIn5+Iik7cmV0dXJuIG4rPXQuY29udGFpbmVyUGhyYXNpbmcoYSx7Li4uaS5jdXJyZW50KCksYmVmb3JlOm4sYWZ0ZXI6In4ifSksbis9aS5tb3ZlKCJ+fiIpLG8oKSxufWZ1bmN0aW9uIFp5YSgpe3JldHVybiJ+In12YXIgR3lhLENkdD1mKCgpPT57R3lhPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXTt6ZHQucGVlaz1aeWE7cyhzNGUsImdmbVN0cmlrZXRocm91Z2hGcm9tTWFya2Rvd24iKTtzKGk0ZSwiZ2ZtU3RyaWtldGhyb3VnaFRvTWFya2Rvd24iKTtzKFl5YSwiZW50ZXJTdHJpa2V0aHJvdWdoIik7cyhLeWEsImV4aXRTdHJpa2V0aHJvdWdoIik7cyh6ZHQsImhhbmRsZURlbGV0ZSIpO3MoWnlhLCJwZWVrRGVsZXRlIil9KTt2YXIgX2R0PWYoKCk9PntDZHQoKX0pO2Z1bmN0aW9uIFh5YShhKXtyZXR1cm4gYS5sZW5ndGh9ZnVuY3Rpb24gTGR0KGEsZSl7bGV0IHQ9ZXx8e30scj0odC5hbGlnbnx8W10pLmNvbmNhdCgpLGk9dC5zdHJpbmdMZW5ndGh8fFh5YSxvPVtdLG49W10sbD1bXSxkPVtdLGM9MCxwPS0xO2Zvcig7KytwPGEubGVuZ3RoOyl7bGV0IGI9W10sZz1bXSx5PS0xO2ZvcihhW3BdLmxlbmd0aD5jJiYoYz1hW3BdLmxlbmd0aCk7Kyt5PGFbcF0ubGVuZ3RoOyl7bGV0IGs9UXlhKGFbcF1beV0pO2lmKHQuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBDPWkoayk7Z1t5XT1DLChkW3ldPT09dm9pZCAwfHxDPmRbeV0pJiYoZFt5XT1DKX1iLnB1c2goayl9bltwXT1iLGxbcF09Z31sZXQgdT0tMTtpZih0eXBlb2Ygcj09Im9iamVjdCImJiJsZW5ndGgiaW4gcilmb3IoOysrdTxjOylvW3VdPVRkdChyW3VdKTtlbHNle2xldCBiPVRkdChyKTtmb3IoOysrdTxjOylvW3VdPWJ9dT0tMTtsZXQgbT1bXSx2PVtdO2Zvcig7Kyt1PGM7KXtsZXQgYj1vW3VdLGc9IiIseT0iIjtiPT09OTk/KGc9IjoiLHk9IjoiKTpiPT09MTA4P2c9IjoiOmI9PT0xMTQmJih5PSI6Iik7bGV0IGs9dC5hbGlnbkRlbGltaXRlcnM9PT0hMT8xOk1hdGgubWF4KDEsZFt1XS1nLmxlbmd0aC15Lmxlbmd0aCksQz1nKyItIi5yZXBlYXQoaykreTt0LmFsaWduRGVsaW1pdGVycyE9PSExJiYoaz1nLmxlbmd0aCtrK3kubGVuZ3RoLGs+ZFt1XSYmKGRbdV09ayksdlt1XT1rKSxtW3VdPUN9bi5zcGxpY2UoMSwwLG0pLGwuc3BsaWNlKDEsMCx2KSxwPS0xO2xldCB4PVtdO2Zvcig7KytwPG4ubGVuZ3RoOyl7bGV0IGI9bltwXSxnPWxbcF07dT0tMTtsZXQgeT1bXTtmb3IoOysrdTxjOyl7bGV0IGs9Ylt1XXx8IiIsQz0iIixOPSIiO2lmKHQuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBfPWRbdV0tKGdbdV18fDApLHo9b1t1XTt6PT09MTE0P0M9IiAiLnJlcGVhdChfKTp6PT09OTk/XyUyPyhDPSIgIi5yZXBlYXQoXy8yKy41KSxOPSIgIi5yZXBlYXQoXy8yLS41KSk6KEM9IiAiLnJlcGVhdChfLzIpLE49Qyk6Tj0iICIucmVwZWF0KF8pfXQuZGVsaW1pdGVyU3RhcnQhPT0hMSYmIXUmJnkucHVzaCgifCIpLHQucGFkZGluZyE9PSExJiYhKHQuYWxpZ25EZWxpbWl0ZXJzPT09ITEmJms9PT0iIikmJih0LmRlbGltaXRlclN0YXJ0IT09ITF8fHUpJiZ5LnB1c2goIiAiKSx0LmFsaWduRGVsaW1pdGVycyE9PSExJiZ5LnB1c2goQykseS5wdXNoKGspLHQuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaChOKSx0LnBhZGRpbmchPT0hMSYmeS5wdXNoKCIgIiksKHQuZGVsaW1pdGVyRW5kIT09ITF8fHUhPT1jLTEpJiZ5LnB1c2goInwiKX14LnB1c2godC5kZWxpbWl0ZXJFbmQ9PT0hMT95LmpvaW4oIiIpLnJlcGxhY2UoLyArJC8sIiIpOnkuam9pbigiIikpfXJldHVybiB4LmpvaW4oYApgKX1mdW5jdGlvbiBReWEoYSl7cmV0dXJuIGE9PW51bGw/IiI6U3RyaW5nKGEpfWZ1bmN0aW9uIFRkdChhKXtsZXQgZT10eXBlb2YgYT09InN0cmluZyI/YS5jb2RlUG9pbnRBdCgwKTowO3JldHVybiBlPT09Njd8fGU9PT05OT85OTplPT09NzZ8fGU9PT0xMDg/MTA4OmU9PT04Mnx8ZT09PTExND8xMTQ6MH12YXIgJGR0PWYoKCk9PntzKFh5YSwiZGVmYXVsdFN0cmluZ0xlbmd0aCIpO3MoTGR0LCJtYXJrZG93blRhYmxlIik7cyhReWEsInNlcmlhbGl6ZSIpO3MoVGR0LCJ0b0FsaWdubWVudCIpfSk7ZnVuY3Rpb24gZ1EoYSxlKXtsZXQgdD1lfHx7fTtmdW5jdGlvbiByKGksLi4ubyl7bGV0IG49ci5pbnZhbGlkLGw9ci5oYW5kbGVycztpZihpJiZEZHQuY2FsbChpLGEpKXtsZXQgZD1TdHJpbmcoaVthXSk7bj1EZHQuY2FsbChsLGQpP2xbZF06ci51bmtub3dufWlmKG4pcmV0dXJuIG4uY2FsbCh0aGlzLGksLi4ubyl9cmV0dXJuIHMociwib25lIiksci5oYW5kbGVycz10LmhhbmRsZXJzfHx7fSxyLmludmFsaWQ9dC5pbnZhbGlkLHIudW5rbm93bj10LnVua25vd24scn12YXIgRGR0LG80ZT1mKCgpPT57RGR0PXt9Lmhhc093blByb3BlcnR5O3MoZ1EsInp3aXRjaCIpfSk7ZnVuY3Rpb24gbjRlKGEsZSl7bGV0IHQ9LTEscjtpZihlLmV4dGVuc2lvbnMpZm9yKDsrK3Q8ZS5leHRlbnNpb25zLmxlbmd0aDspbjRlKGEsZS5leHRlbnNpb25zW3RdKTtmb3IociBpbiBlKWlmKEp5YS5jYWxsKGUscikpc3dpdGNoKHIpe2Nhc2UiZXh0ZW5zaW9ucyI6YnJlYWs7Y2FzZSJ1bnNhZmUiOntBZHQoYVtyXSxlW3JdKTticmVha31jYXNlImpvaW4iOntBZHQoYVtyXSxlW3JdKTticmVha31jYXNlImhhbmRsZXJzIjp7ZXdhKGFbcl0sZVtyXSk7YnJlYWt9ZGVmYXVsdDphLm9wdGlvbnNbcl09ZVtyXX1yZXR1cm4gYX1mdW5jdGlvbiBBZHQoYSxlKXtlJiZhLnB1c2goLi4uZSl9ZnVuY3Rpb24gZXdhKGEsZSl7ZSYmT2JqZWN0LmFzc2lnbihhLGUpfXZhciBKeWEsUGR0PWYoKCk9PntKeWE9e30uaGFzT3duUHJvcGVydHk7cyhuNGUsImNvbmZpZ3VyZSIpO3MoQWR0LCJsaXN0Iik7cyhld2EsIm1hcCIpfSk7ZnVuY3Rpb24gRWR0KGEsZSx0LHIpe2xldCBpPXQuZW50ZXIoImJsb2NrcXVvdGUiKSxvPXQuY3JlYXRlVHJhY2tlcihyKTtvLm1vdmUoIj4gIiksby5zaGlmdCgyKTtsZXQgbj10LmluZGVudExpbmVzKHQuY29udGFpbmVyRmxvdyhhLG8uY3VycmVudCgpKSx0d2EpO3JldHVybiBpKCksbn1mdW5jdGlvbiB0d2EoYSxlLHQpe3JldHVybiI+IisodD8iIjoiICIpK2F9dmFyIElkdD1mKCgpPT57cyhFZHQsImJsb2NrcXVvdGUiKTtzKHR3YSwibWFwIil9KTtmdW5jdGlvbiBiUShhLGUpe3JldHVybiBOZHQoYSxlLmluQ29uc3RydWN0LCEwKSYmIU5kdChhLGUubm90SW5Db25zdHJ1Y3QsITEpfWZ1bmN0aW9uIE5kdChhLGUsdCl7aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZT1bZV0pLCFlfHxlLmxlbmd0aD09PTApcmV0dXJuIHQ7bGV0IHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KWlmKGEuaW5jbHVkZXMoZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9dmFyIGw0ZT1mKCgpPT57cyhiUSwicGF0dGVybkluU2NvcGUiKTtzKE5kdCwibGlzdEluU2NvcGUiKX0pO2Z1bmN0aW9uIGM0ZShhLGUsdCxyKXtsZXQgaT0tMTtmb3IoOysraTx0LnVuc2FmZS5sZW5ndGg7KWlmKHQudW5zYWZlW2ldLmNoYXJhY3Rlcj09PWAKYCYmYlEodC5zdGFjayx0LnVuc2FmZVtpXSkpcmV0dXJuL1sgXHRdLy50ZXN0KHIuYmVmb3JlKT8iIjoiICI7cmV0dXJuYFxcCmB9dmFyIFJkdD1mKCgpPT57bDRlKCk7cyhjNGUsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gT2R0KGEsZSl7bGV0IHQ9U3RyaW5nKGEpLHI9dC5pbmRleE9mKGUpLGk9cixvPTAsbj0wO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBzdWJzdHJpbmciKTtmb3IoO3IhPT0tMTspcj09PWk/KytvPm4mJihuPW8pOm89MSxpPXIrZS5sZW5ndGgscj10LmluZGV4T2YoZSxpKTtyZXR1cm4gbn12YXIgRmR0PWYoKCk9PntzKE9kdCwibG9uZ2VzdFN0cmVhayIpfSk7ZnVuY3Rpb24gcWcoYSxlKXtyZXR1cm4hIShlLm9wdGlvbnMuZmVuY2VzPT09ITEmJmEudmFsdWUmJiFhLmxhbmcmJi9bXiBcclxuXS8udGVzdChhLnZhbHVlKSYmIS9eW1x0IF0qKD86W1xyXG5dfCQpfCg/Ol58W1xyXG5dKVtcdCBdKiQvLnRlc3QoYS52YWx1ZSkpfXZhciBkNGU9ZigoKT0+e3MocWcsImZvcm1hdENvZGVBc0luZGVudGVkIil9KTtmdW5jdGlvbiBCZHQoYSl7bGV0IGU9YS5vcHRpb25zLmZlbmNlfHwiYCI7aWYoZSE9PSJgIiYmZSE9PSJ+Iil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgY29kZSB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmZlbmNlYCwgZXhwZWN0ZWQgYGAgYCBgYCBvciBgfmAiKTtyZXR1cm4gZX12YXIgSGR0PWYoKCk9PntzKEJkdCwiY2hlY2tGZW5jZSIpfSk7ZnVuY3Rpb24gcWR0KGEsZSx0LHIpe2xldCBpPUJkdCh0KSxvPWEudmFsdWV8fCIiLG49aT09PSJgIj8iR3JhdmVBY2NlbnQiOiJUaWxkZSI7aWYocWcoYSx0KSl7bGV0IHU9dC5lbnRlcigiY29kZUluZGVudGVkIiksbT10LmluZGVudExpbmVzKG8sYXdhKTtyZXR1cm4gdSgpLG19bGV0IGw9dC5jcmVhdGVUcmFja2VyKHIpLGQ9aS5yZXBlYXQoTWF0aC5tYXgoT2R0KG8saSkrMSwzKSksYz10LmVudGVyKCJjb2RlRmVuY2VkIikscD1sLm1vdmUoZCk7aWYoYS5sYW5nKXtsZXQgdT10LmVudGVyKGBjb2RlRmVuY2VkTGFuZyR7bn1gKTtwKz1sLm1vdmUodC5zYWZlKGEubGFuZyx7YmVmb3JlOnAsYWZ0ZXI6IiAiLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSx1KCl9aWYoYS5sYW5nJiZhLm1ldGEpe2xldCB1PXQuZW50ZXIoYGNvZGVGZW5jZWRNZXRhJHtufWApO3ArPWwubW92ZSgiICIpLHArPWwubW92ZSh0LnNhZmUoYS5tZXRhLHtiZWZvcmU6cCxhZnRlcjpgCmAsZW5jb2RlOlsiYCJdLC4uLmwuY3VycmVudCgpfSkpLHUoKX1yZXR1cm4gcCs9bC5tb3ZlKGAKYCksbyYmKHArPWwubW92ZShvK2AKYCkpLHArPWwubW92ZShkKSxjKCkscH1mdW5jdGlvbiBhd2EoYSxlLHQpe3JldHVybih0PyIiOiIgICAgIikrYX12YXIgVmR0PWYoKCk9PntGZHQoKTtkNGUoKTtIZHQoKTtzKHFkdCwiY29kZSIpO3MoYXdhLCJtYXAiKX0pO2Z1bmN0aW9uIGc4KGEpe2xldCBlPWEub3B0aW9ucy5xdW90ZXx8JyInO2lmKGUhPT0nIicmJmUhPT0iJyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHRpdGxlIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMucXVvdGVgLCBleHBlY3RlZCBgXCJgLCBvciBgJ2AiKTtyZXR1cm4gZX12YXIgdlE9ZigoKT0+e3MoZzgsImNoZWNrUXVvdGUiKX0pO2Z1bmN0aW9uIGpkdChhLGUsdCxyKXtsZXQgaT1nOCh0KSxvPWk9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbj10LmVudGVyKCJkZWZpbml0aW9uIiksbD10LmVudGVyKCJsYWJlbCIpLGQ9dC5jcmVhdGVUcmFja2VyKHIpLGM9ZC5tb3ZlKCJbIik7cmV0dXJuIGMrPWQubW92ZSh0LnNhZmUodC5hc3NvY2lhdGlvbklkKGEpLHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKCJdOiAiKSxsKCksIWEudXJsfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KGEudXJsKT8obD10LmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1kLm1vdmUoIjwiKSxjKz1kLm1vdmUodC5zYWZlKGEudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKCI+IikpOihsPXQuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9ZC5tb3ZlKHQuc2FmZShhLnVybCx7YmVmb3JlOmMsYWZ0ZXI6YS50aXRsZT8iICI6YApgLC4uLmQuY3VycmVudCgpfSkpKSxsKCksYS50aXRsZSYmKGw9dC5lbnRlcihgdGl0bGUke299YCksYys9ZC5tb3ZlKCIgIitpKSxjKz1kLm1vdmUodC5zYWZlKGEudGl0bGUse2JlZm9yZTpjLGFmdGVyOmksLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKGkpLGwoKSksbigpLGN9dmFyIFVkdD1mKCgpPT57dlEoKTtzKGpkdCwiZGVmaW5pdGlvbiIpfSk7ZnVuY3Rpb24gV2R0KGEpe2xldCBlPWEub3B0aW9ucy5lbXBoYXNpc3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBHZHQ9ZigoKT0+e3MoV2R0LCJjaGVja0VtcGhhc2lzIil9KTtmdW5jdGlvbiBabyhhKXtyZXR1cm4iJiN4IithLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgYjg9ZigoKT0+e3MoWm8sImVuY29kZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gQmwoYSl7aWYoYT09PW51bGx8fHVhKGEpfHxBMihhKSlyZXR1cm4gMTtpZihCMyhhKSlyZXR1cm4gMn12YXIgeFE9ZigoKT0+e2JhKCk7cyhCbCwiY2xhc3NpZnlDaGFyYWN0ZXIiKX0pO2Z1bmN0aW9uIHY4KGEsZSx0KXtsZXQgcj1CbChhKSxpPUJsKGUpO3JldHVybiByPT09dm9pZCAwP2k9PT12b2lkIDA/dD09PSJfIj97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06aT09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITB9OnI9PT0xP2k9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTppPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06aT09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9Omk9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMX06e2luc2lkZTohMSxvdXRzaWRlOiExfX12YXIgdTRlPWYoKCk9Pnt4USgpO3ModjgsImVuY29kZUluZm8iKX0pO2Z1bmN0aW9uIHA0ZShhLGUsdCxyKXtsZXQgaT1XZHQodCksbz10LmVudGVyKCJlbXBoYXNpcyIpLG49dC5jcmVhdGVUcmFja2VyKHIpLGw9bi5tb3ZlKGkpLGQ9bi5tb3ZlKHQuY29udGFpbmVyUGhyYXNpbmcoYSx7YWZ0ZXI6aSxiZWZvcmU6bCwuLi5uLmN1cnJlbnQoKX0pKSxjPWQuY2hhckNvZGVBdCgwKSxwPXY4KHIuYmVmb3JlLmNoYXJDb2RlQXQoci5iZWZvcmUubGVuZ3RoLTEpLGMsaSk7cC5pbnNpZGUmJihkPVpvKGMpK2Quc2xpY2UoMSkpO2xldCB1PWQuY2hhckNvZGVBdChkLmxlbmd0aC0xKSxtPXY4KHIuYWZ0ZXIuY2hhckNvZGVBdCgwKSx1LGkpO20uaW5zaWRlJiYoZD1kLnNsaWNlKDAsLTEpK1pvKHUpKTtsZXQgdj1uLm1vdmUoaSk7cmV0dXJuIG8oKSx0LmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6bS5vdXRzaWRlLGJlZm9yZTpwLm91dHNpZGV9LGwrZCt2fWZ1bmN0aW9uIHJ3YShhLGUsdCl7cmV0dXJuIHQub3B0aW9ucy5lbXBoYXNpc3x8IioifXZhciBZZHQ9ZigoKT0+e0dkdCgpO2I4KCk7dTRlKCk7cDRlLnBlZWs9cndhO3MocDRlLCJlbXBoYXNpcyIpO3MocndhLCJlbXBoYXNpc1BlZWsiKX0pO2Z1bmN0aW9uIFZnKGEsZSx0LHIpe2xldCBpLG8sbjt0eXBlb2YgZT09ImZ1bmN0aW9uIiYmdHlwZW9mIHQhPSJmdW5jdGlvbiI/KG89dm9pZCAwLG49ZSxpPXQpOihvPWUsbj10LGk9ciksSGcoYSxvLGwsaSk7ZnVuY3Rpb24gbChkLGMpe2xldCBwPWNbYy5sZW5ndGgtMV0sdT1wP3AuY2hpbGRyZW4uaW5kZXhPZihkKTp2b2lkIDA7cmV0dXJuIG4oZCx1LHApfXMobCwib3ZlcmxvYWQiKX12YXIgS2R0PWYoKCk9PnttUSgpO21RKCk7cyhWZywidmlzaXQiKX0pO3ZhciBmNGU9ZigoKT0+e0tkdCgpfSk7ZnVuY3Rpb24gcTMoYSxlKXtsZXQgdD1lfHxzd2Escj10eXBlb2YgdC5pbmNsdWRlSW1hZ2VBbHQ9PSJib29sZWFuIj90LmluY2x1ZGVJbWFnZUFsdDohMCxpPXR5cGVvZiB0LmluY2x1ZGVIdG1sPT0iYm9vbGVhbiI/dC5pbmNsdWRlSHRtbDohMDtyZXR1cm4gWmR0KGEscixpKX1mdW5jdGlvbiBaZHQoYSxlLHQpe2lmKGl3YShhKSl7aWYoInZhbHVlImluIGEpcmV0dXJuIGEudHlwZT09PSJodG1sIiYmIXQ/IiI6YS52YWx1ZTtpZihlJiYiYWx0ImluIGEmJmEuYWx0KXJldHVybiBhLmFsdDtpZigiY2hpbGRyZW4iaW4gYSlyZXR1cm4gWGR0KGEuY2hpbGRyZW4sZSx0KX1yZXR1cm4gQXJyYXkuaXNBcnJheShhKT9YZHQoYSxlLHQpOiIifWZ1bmN0aW9uIFhkdChhLGUsdCl7bGV0IHI9W10saT0tMTtmb3IoOysraTxhLmxlbmd0aDspcltpXT1aZHQoYVtpXSxlLHQpO3JldHVybiByLmpvaW4oIiIpfWZ1bmN0aW9uIGl3YShhKXtyZXR1cm4hIShhJiZ0eXBlb2YgYT09Im9iamVjdCIpfXZhciBzd2EsUWR0PWYoKCk9Pntzd2E9e307cyhxMywidG9TdHJpbmciKTtzKFpkdCwib25lIik7cyhYZHQsImFsbCIpO3MoaXdhLCJub2RlIil9KTt2YXIgeVE9ZigoKT0+e1FkdCgpfSk7ZnVuY3Rpb24gd1EoYSxlKXtsZXQgdD0hMTtyZXR1cm4gVmcoYSxmdW5jdGlvbihyKXtpZigidmFsdWUiaW4gciYmL1xyP1xufFxyLy50ZXN0KHIudmFsdWUpfHxyLnR5cGU9PT0iYnJlYWsiKXJldHVybiB0PSEwLEgzfSksISEoKCFhLmRlcHRofHxhLmRlcHRoPDMpJiZxMyhhKSYmKGUub3B0aW9ucy5zZXRleHR8fHQpKX12YXIgaDRlPWYoKCk9PntmNGUoKTt5USgpO3Mod1EsImZvcm1hdEhlYWRpbmdBc1NldGV4dCIpfSk7ZnVuY3Rpb24gSmR0KGEsZSx0LHIpe2xldCBpPU1hdGgubWF4KE1hdGgubWluKDYsYS5kZXB0aHx8MSksMSksbz10LmNyZWF0ZVRyYWNrZXIocik7aWYod1EoYSx0KSl7bGV0IHA9dC5lbnRlcigiaGVhZGluZ1NldGV4dCIpLHU9dC5lbnRlcigicGhyYXNpbmciKSxtPXQuY29udGFpbmVyUGhyYXNpbmcoYSx7Li4uby5jdXJyZW50KCksYmVmb3JlOmAKYCxhZnRlcjpgCmB9KTtyZXR1cm4gdSgpLHAoKSxtK2AKYCsoaT09PTE/Ij0iOiItIikucmVwZWF0KG0ubGVuZ3RoLShNYXRoLm1heChtLmxhc3RJbmRleE9mKCJcciIpLG0ubGFzdEluZGV4T2YoYApgKSkrMSkpfWxldCBuPSIjIi5yZXBlYXQoaSksbD10LmVudGVyKCJoZWFkaW5nQXR4IiksZD10LmVudGVyKCJwaHJhc2luZyIpO28ubW92ZShuKyIgIik7bGV0IGM9dC5jb250YWluZXJQaHJhc2luZyhhLHtiZWZvcmU6IiMgIixhZnRlcjpgCmAsLi4uby5jdXJyZW50KCl9KTtyZXR1cm4vXltcdCBdLy50ZXN0KGMpJiYoYz1abyhjLmNoYXJDb2RlQXQoMCkpK2Muc2xpY2UoMSkpLGM9Yz9uKyIgIitjOm4sdC5vcHRpb25zLmNsb3NlQXR4JiYoYys9IiAiK24pLGQoKSxsKCksY312YXIgZTZ0PWYoKCk9PntiOCgpO2g0ZSgpO3MoSmR0LCJoZWFkaW5nIil9KTtmdW5jdGlvbiBtNGUoYSl7cmV0dXJuIGEudmFsdWV8fCIifWZ1bmN0aW9uIG93YSgpe3JldHVybiI8In12YXIgdDZ0PWYoKCk9PnttNGUucGVlaz1vd2E7cyhtNGUsImh0bWwiKTtzKG93YSwiaHRtbFBlZWsiKX0pO2Z1bmN0aW9uIGc0ZShhLGUsdCxyKXtsZXQgaT1nOCh0KSxvPWk9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbj10LmVudGVyKCJpbWFnZSIpLGw9dC5lbnRlcigibGFiZWwiKSxkPXQuY3JlYXRlVHJhY2tlcihyKSxjPWQubW92ZSgiIVsiKTtyZXR1cm4gYys9ZC5tb3ZlKHQuc2FmZShhLmFsdCx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmQuY3VycmVudCgpfSkpLGMrPWQubW92ZSgiXSgiKSxsKCksIWEudXJsJiZhLnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KGEudXJsKT8obD10LmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1kLm1vdmUoIjwiKSxjKz1kLm1vdmUodC5zYWZlKGEudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKCI+IikpOihsPXQuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9ZC5tb3ZlKHQuc2FmZShhLnVybCx7YmVmb3JlOmMsYWZ0ZXI6YS50aXRsZT8iICI6IikiLC4uLmQuY3VycmVudCgpfSkpKSxsKCksYS50aXRsZSYmKGw9dC5lbnRlcihgdGl0bGUke299YCksYys9ZC5tb3ZlKCIgIitpKSxjKz1kLm1vdmUodC5zYWZlKGEudGl0bGUse2JlZm9yZTpjLGFmdGVyOmksLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKGkpLGwoKSksYys9ZC5tb3ZlKCIpIiksbigpLGN9ZnVuY3Rpb24gbndhKCl7cmV0dXJuIiEifXZhciBhNnQ9ZigoKT0+e3ZRKCk7ZzRlLnBlZWs9bndhO3MoZzRlLCJpbWFnZSIpO3MobndhLCJpbWFnZVBlZWsiKX0pO2Z1bmN0aW9uIGI0ZShhLGUsdCxyKXtsZXQgaT1hLnJlZmVyZW5jZVR5cGUsbz10LmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpLG49dC5lbnRlcigibGFiZWwiKSxsPXQuY3JlYXRlVHJhY2tlcihyKSxkPWwubW92ZSgiIVsiKSxjPXQuc2FmZShhLmFsdCx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7ZCs9bC5tb3ZlKGMrIl1bIiksbigpO2xldCBwPXQuc3RhY2s7dC5zdGFjaz1bXSxuPXQuZW50ZXIoInJlZmVyZW5jZSIpO2xldCB1PXQuc2FmZSh0LmFzc29jaWF0aW9uSWQoYSkse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBuKCksdC5zdGFjaz1wLG8oKSxpPT09ImZ1bGwifHwhY3x8YyE9PXU/ZCs9bC5tb3ZlKHUrIl0iKTppPT09InNob3J0Y3V0Ij9kPWQuc2xpY2UoMCwtMSk6ZCs9bC5tb3ZlKCJdIiksZH1mdW5jdGlvbiBsd2EoKXtyZXR1cm4iISJ9dmFyIHI2dD1mKCgpPT57YjRlLnBlZWs9bHdhO3MoYjRlLCJpbWFnZVJlZmVyZW5jZSIpO3MobHdhLCJpbWFnZVJlZmVyZW5jZVBlZWsiKX0pO2Z1bmN0aW9uIHY0ZShhLGUsdCl7bGV0IHI9YS52YWx1ZXx8IiIsaT0iYCIsbz0tMTtmb3IoO25ldyBSZWdFeHAoIihefFteYF0pIitpKyIoW15gXXwkKSIpLnRlc3Qocik7KWkrPSJgIjtmb3IoL1teIFxyXG5dLy50ZXN0KHIpJiYoL15bIFxyXG5dLy50ZXN0KHIpJiYvWyBcclxuXSQvLnRlc3Qocil8fC9eYHxgJC8udGVzdChyKSkmJihyPSIgIityKyIgIik7KytvPHQudW5zYWZlLmxlbmd0aDspe2xldCBuPXQudW5zYWZlW29dLGw9dC5jb21waWxlUGF0dGVybihuKSxkO2lmKG4uYXRCcmVhaylmb3IoO2Q9bC5leGVjKHIpOyl7bGV0IGM9ZC5pbmRleDtyLmNoYXJDb2RlQXQoYyk9PT0xMCYmci5jaGFyQ29kZUF0KGMtMSk9PT0xMyYmYy0tLHI9ci5zbGljZSgwLGMpKyIgIityLnNsaWNlKGQuaW5kZXgrMSl9fXJldHVybiBpK3IraX1mdW5jdGlvbiBjd2EoKXtyZXR1cm4iYCJ9dmFyIHM2dD1mKCgpPT57djRlLnBlZWs9Y3dhO3ModjRlLCJpbmxpbmVDb2RlIik7cyhjd2EsImlubGluZUNvZGVQZWVrIil9KTtmdW5jdGlvbiB4NGUoYSxlKXtsZXQgdD1xMyhhKTtyZXR1cm4hISghZS5vcHRpb25zLnJlc291cmNlTGluayYmYS51cmwmJiFhLnRpdGxlJiZhLmNoaWxkcmVuJiZhLmNoaWxkcmVuLmxlbmd0aD09PTEmJmEuY2hpbGRyZW5bMF0udHlwZT09PSJ0ZXh0IiYmKHQ9PT1hLnVybHx8Im1haWx0bzoiK3Q9PT1hLnVybCkmJi9eW2Etel1bYS16Ky4tXSs6L2kudGVzdChhLnVybCkmJiEvW1wwLSA8Plx1MDA3Rl0vLnRlc3QoYS51cmwpKX12YXIgaTZ0PWYoKCk9Pnt5USgpO3MoeDRlLCJmb3JtYXRMaW5rQXNBdXRvbGluayIpfSk7ZnVuY3Rpb24geTRlKGEsZSx0LHIpe2xldCBpPWc4KHQpLG89aT09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixuPXQuY3JlYXRlVHJhY2tlcihyKSxsLGQ7aWYoeDRlKGEsdCkpe2xldCBwPXQuc3RhY2s7dC5zdGFjaz1bXSxsPXQuZW50ZXIoImF1dG9saW5rIik7bGV0IHU9bi5tb3ZlKCI8Iik7cmV0dXJuIHUrPW4ubW92ZSh0LmNvbnRhaW5lclBocmFzaW5nKGEse2JlZm9yZTp1LGFmdGVyOiI+IiwuLi5uLmN1cnJlbnQoKX0pKSx1Kz1uLm1vdmUoIj4iKSxsKCksdC5zdGFjaz1wLHV9bD10LmVudGVyKCJsaW5rIiksZD10LmVudGVyKCJsYWJlbCIpO2xldCBjPW4ubW92ZSgiWyIpO3JldHVybiBjKz1uLm1vdmUodC5jb250YWluZXJQaHJhc2luZyhhLHtiZWZvcmU6YyxhZnRlcjoiXSgiLC4uLm4uY3VycmVudCgpfSkpLGMrPW4ubW92ZSgiXSgiKSxkKCksIWEudXJsJiZhLnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KGEudXJsKT8oZD10LmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1uLm1vdmUoIjwiKSxjKz1uLm1vdmUodC5zYWZlKGEudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4ubi5jdXJyZW50KCl9KSksYys9bi5tb3ZlKCI+IikpOihkPXQuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9bi5tb3ZlKHQuc2FmZShhLnVybCx7YmVmb3JlOmMsYWZ0ZXI6YS50aXRsZT8iICI6IikiLC4uLm4uY3VycmVudCgpfSkpKSxkKCksYS50aXRsZSYmKGQ9dC5lbnRlcihgdGl0bGUke299YCksYys9bi5tb3ZlKCIgIitpKSxjKz1uLm1vdmUodC5zYWZlKGEudGl0bGUse2JlZm9yZTpjLGFmdGVyOmksLi4ubi5jdXJyZW50KCl9KSksYys9bi5tb3ZlKGkpLGQoKSksYys9bi5tb3ZlKCIpIiksbCgpLGN9ZnVuY3Rpb24gZHdhKGEsZSx0KXtyZXR1cm4geDRlKGEsdCk/IjwiOiJbIn12YXIgbzZ0PWYoKCk9Pnt2USgpO2k2dCgpO3k0ZS5wZWVrPWR3YTtzKHk0ZSwibGluayIpO3MoZHdhLCJsaW5rUGVlayIpfSk7ZnVuY3Rpb24gdzRlKGEsZSx0LHIpe2xldCBpPWEucmVmZXJlbmNlVHlwZSxvPXQuZW50ZXIoImxpbmtSZWZlcmVuY2UiKSxuPXQuZW50ZXIoImxhYmVsIiksbD10LmNyZWF0ZVRyYWNrZXIociksZD1sLm1vdmUoIlsiKSxjPXQuY29udGFpbmVyUGhyYXNpbmcoYSx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7ZCs9bC5tb3ZlKGMrIl1bIiksbigpO2xldCBwPXQuc3RhY2s7dC5zdGFjaz1bXSxuPXQuZW50ZXIoInJlZmVyZW5jZSIpO2xldCB1PXQuc2FmZSh0LmFzc29jaWF0aW9uSWQoYSkse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBuKCksdC5zdGFjaz1wLG8oKSxpPT09ImZ1bGwifHwhY3x8YyE9PXU/ZCs9bC5tb3ZlKHUrIl0iKTppPT09InNob3J0Y3V0Ij9kPWQuc2xpY2UoMCwtMSk6ZCs9bC5tb3ZlKCJdIiksZH1mdW5jdGlvbiB1d2EoKXtyZXR1cm4iWyJ9dmFyIG42dD1mKCgpPT57dzRlLnBlZWs9dXdhO3ModzRlLCJsaW5rUmVmZXJlbmNlIik7cyh1d2EsImxpbmtSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiB4OChhKXtsZXQgZT1hLm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYoZSE9PSIqIiYmZSE9PSIrIiYmZSE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIGV9dmFyIE1RPWYoKCk9PntzKHg4LCJjaGVja0J1bGxldCIpfSk7ZnVuY3Rpb24gbDZ0KGEpe2xldCBlPXg4KGEpLHQ9YS5vcHRpb25zLmJ1bGxldE90aGVyO2lmKCF0KXJldHVybiBlPT09IioiPyItIjoiKiI7aWYodCE9PSIqIiYmdCE9PSIrIiYmdCE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5idWxsZXRPdGhlcmAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtpZih0PT09ZSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGBidWxsZXRgIChgIitlKyJgKSBhbmQgYGJ1bGxldE90aGVyYCAoYCIrdCsiYCkgdG8gYmUgZGlmZmVyZW50Iik7cmV0dXJuIHR9dmFyIGM2dD1mKCgpPT57TVEoKTtzKGw2dCwiY2hlY2tCdWxsZXRPdGhlciIpfSk7ZnVuY3Rpb24gZDZ0KGEpe2xldCBlPWEub3B0aW9ucy5idWxsZXRPcmRlcmVkfHwiLiI7aWYoZSE9PSIuIiYmZSE9PSIpIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5idWxsZXRPcmRlcmVkYCwgZXhwZWN0ZWQgYC5gIG9yIGApYCIpO3JldHVybiBlfXZhciB1NnQ9ZigoKT0+e3MoZDZ0LCJjaGVja0J1bGxldE9yZGVyZWQiKX0pO2Z1bmN0aW9uIGtRKGEpe2xldCBlPWEub3B0aW9ucy5ydWxlfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSItIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlYCwgZXhwZWN0ZWQgYCpgLCBgLWAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBNNGU9ZigoKT0+e3Moa1EsImNoZWNrUnVsZSIpfSk7ZnVuY3Rpb24gcDZ0KGEsZSx0LHIpe2xldCBpPXQuZW50ZXIoImxpc3QiKSxvPXQuYnVsbGV0Q3VycmVudCxuPWEub3JkZXJlZD9kNnQodCk6eDgodCksbD1hLm9yZGVyZWQ/bj09PSIuIj8iKSI6Ii4iOmw2dCh0KSxkPWUmJnQuYnVsbGV0TGFzdFVzZWQ/bj09PXQuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIWEub3JkZXJlZCl7bGV0IHA9YS5jaGlsZHJlbj9hLmNoaWxkcmVuWzBdOnZvaWQgMDtpZigobj09PSIqInx8bj09PSItIikmJnAmJighcC5jaGlsZHJlbnx8IXAuY2hpbGRyZW5bMF0pJiZ0LnN0YWNrW3Quc3RhY2subGVuZ3RoLTFdPT09Imxpc3QiJiZ0LnN0YWNrW3Quc3RhY2subGVuZ3RoLTJdPT09Imxpc3RJdGVtIiYmdC5zdGFja1t0LnN0YWNrLmxlbmd0aC0zXT09PSJsaXN0IiYmdC5zdGFja1t0LnN0YWNrLmxlbmd0aC00XT09PSJsaXN0SXRlbSImJnQuaW5kZXhTdGFja1t0LmluZGV4U3RhY2subGVuZ3RoLTFdPT09MCYmdC5pbmRleFN0YWNrW3QuaW5kZXhTdGFjay5sZW5ndGgtMl09PT0wJiZ0LmluZGV4U3RhY2tbdC5pbmRleFN0YWNrLmxlbmd0aC0zXT09PTAmJihkPSEwKSxrUSh0KT09PW4mJnApe2xldCB1PS0xO2Zvcig7Kyt1PGEuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IG09YS5jaGlsZHJlblt1XTtpZihtJiZtLnR5cGU9PT0ibGlzdEl0ZW0iJiZtLmNoaWxkcmVuJiZtLmNoaWxkcmVuWzBdJiZtLmNoaWxkcmVuWzBdLnR5cGU9PT0idGhlbWF0aWNCcmVhayIpe2Q9ITA7YnJlYWt9fX19ZCYmKG49bCksdC5idWxsZXRDdXJyZW50PW47bGV0IGM9dC5jb250YWluZXJGbG93KGEscik7cmV0dXJuIHQuYnVsbGV0TGFzdFVzZWQ9bix0LmJ1bGxldEN1cnJlbnQ9byxpKCksY312YXIgZjZ0PWYoKCk9PntNUSgpO2M2dCgpO3U2dCgpO000ZSgpO3MocDZ0LCJsaXN0Iil9KTtmdW5jdGlvbiBoNnQoYSl7bGV0IGU9YS5vcHRpb25zLmxpc3RJdGVtSW5kZW50fHwib25lIjtpZihlIT09InRhYiImJmUhPT0ib25lIiYmZSE9PSJtaXhlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMubGlzdEl0ZW1JbmRlbnRgLCBleHBlY3RlZCBgdGFiYCwgYG9uZWAsIG9yIGBtaXhlZGAiKTtyZXR1cm4gZX12YXIgbTZ0PWYoKCk9PntzKGg2dCwiY2hlY2tMaXN0SXRlbUluZGVudCIpfSk7ZnVuY3Rpb24gZzZ0KGEsZSx0LHIpe2xldCBpPWg2dCh0KSxvPXQuYnVsbGV0Q3VycmVudHx8eDgodCk7ZSYmZS50eXBlPT09Imxpc3QiJiZlLm9yZGVyZWQmJihvPSh0eXBlb2YgZS5zdGFydD09Im51bWJlciImJmUuc3RhcnQ+LTE/ZS5zdGFydDoxKSsodC5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOmUuY2hpbGRyZW4uaW5kZXhPZihhKSkrbyk7bGV0IG49by5sZW5ndGgrMTsoaT09PSJ0YWIifHxpPT09Im1peGVkIiYmKGUmJmUudHlwZT09PSJsaXN0IiYmZS5zcHJlYWR8fGEuc3ByZWFkKSkmJihuPU1hdGguY2VpbChuLzQpKjQpO2xldCBsPXQuY3JlYXRlVHJhY2tlcihyKTtsLm1vdmUobysiICIucmVwZWF0KG4tby5sZW5ndGgpKSxsLnNoaWZ0KG4pO2xldCBkPXQuZW50ZXIoImxpc3RJdGVtIiksYz10LmluZGVudExpbmVzKHQuY29udGFpbmVyRmxvdyhhLGwuY3VycmVudCgpKSxwKTtyZXR1cm4gZCgpLGM7ZnVuY3Rpb24gcCh1LG0sdil7cmV0dXJuIG0/KHY/IiI6IiAiLnJlcGVhdChuKSkrdToodj9vOm8rIiAiLnJlcGVhdChuLW8ubGVuZ3RoKSkrdX1zKHAsIm1hcCIpfXZhciBiNnQ9ZigoKT0+e01RKCk7bTZ0KCk7cyhnNnQsImxpc3RJdGVtIil9KTtmdW5jdGlvbiB2NnQoYSxlLHQscil7bGV0IGk9dC5lbnRlcigicGFyYWdyYXBoIiksbz10LmVudGVyKCJwaHJhc2luZyIpLG49dC5jb250YWluZXJQaHJhc2luZyhhLHIpO3JldHVybiBvKCksaSgpLG59dmFyIHg2dD1mKCgpPT57cyh2NnQsInBhcmFncmFwaCIpfSk7dmFyIGs0ZSx5NnQ9ZigoKT0+e3BRKCk7azRlPUZsKFsiYnJlYWsiLCJkZWxldGUiLCJlbXBoYXNpcyIsImZvb3Rub3RlIiwiZm9vdG5vdGVSZWZlcmVuY2UiLCJpbWFnZSIsImltYWdlUmVmZXJlbmNlIiwiaW5saW5lQ29kZSIsImlubGluZU1hdGgiLCJsaW5rIiwibGlua1JlZmVyZW5jZSIsIm1keEpzeFRleHRFbGVtZW50IiwibWR4VGV4dEV4cHJlc3Npb24iLCJzdHJvbmciLCJ0ZXh0IiwidGV4dERpcmVjdGl2ZSJdKX0pO3ZhciB3NnQ9ZigoKT0+e3k2dCgpfSk7ZnVuY3Rpb24gTTZ0KGEsZSx0LHIpe3JldHVybihhLmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIGs0ZShuKX0pP3QuY29udGFpbmVyUGhyYXNpbmc6dC5jb250YWluZXJGbG93KS5jYWxsKHQsYSxyKX12YXIgazZ0PWYoKCk9Pnt3NnQoKTtzKE02dCwicm9vdCIpfSk7ZnVuY3Rpb24gUzZ0KGEpe2xldCBlPWEub3B0aW9ucy5zdHJvbmd8fCIqIjtpZihlIT09IioiJiZlIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBzdHJvbmcgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5zdHJvbmdgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciB6NnQ9ZigoKT0+e3MoUzZ0LCJjaGVja1N0cm9uZyIpfSk7ZnVuY3Rpb24gUzRlKGEsZSx0LHIpe2xldCBpPVM2dCh0KSxvPXQuZW50ZXIoInN0cm9uZyIpLG49dC5jcmVhdGVUcmFja2VyKHIpLGw9bi5tb3ZlKGkraSksZD1uLm1vdmUodC5jb250YWluZXJQaHJhc2luZyhhLHthZnRlcjppLGJlZm9yZTpsLC4uLm4uY3VycmVudCgpfSkpLGM9ZC5jaGFyQ29kZUF0KDApLHA9djgoci5iZWZvcmUuY2hhckNvZGVBdChyLmJlZm9yZS5sZW5ndGgtMSksYyxpKTtwLmluc2lkZSYmKGQ9Wm8oYykrZC5zbGljZSgxKSk7bGV0IHU9ZC5jaGFyQ29kZUF0KGQubGVuZ3RoLTEpLG09djgoci5hZnRlci5jaGFyQ29kZUF0KDApLHUsaSk7bS5pbnNpZGUmJihkPWQuc2xpY2UoMCwtMSkrWm8odSkpO2xldCB2PW4ubW92ZShpK2kpO3JldHVybiBvKCksdC5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89e2FmdGVyOm0ub3V0c2lkZSxiZWZvcmU6cC5vdXRzaWRlfSxsK2Qrdn1mdW5jdGlvbiBwd2EoYSxlLHQpe3JldHVybiB0Lm9wdGlvbnMuc3Ryb25nfHwiKiJ9dmFyIEM2dD1mKCgpPT57ejZ0KCk7YjgoKTt1NGUoKTtTNGUucGVlaz1wd2E7cyhTNGUsInN0cm9uZyIpO3MocHdhLCJzdHJvbmdQZWVrIil9KTtmdW5jdGlvbiBfNnQoYSxlLHQscil7cmV0dXJuIHQuc2FmZShhLnZhbHVlLHIpfXZhciBUNnQ9ZigoKT0+e3MoXzZ0LCJ0ZXh0Iil9KTtmdW5jdGlvbiBMNnQoYSl7bGV0IGU9YS5vcHRpb25zLnJ1bGVSZXBldGl0aW9ufHwzO2lmKGU8Myl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCByZXBldGl0aW9uIGAiK2UrImAgZm9yIGBvcHRpb25zLnJ1bGVSZXBldGl0aW9uYCwgZXhwZWN0ZWQgYDNgIG9yIG1vcmUiKTtyZXR1cm4gZX12YXIgJDZ0PWYoKCk9PntzKEw2dCwiY2hlY2tSdWxlUmVwZXRpdGlvbiIpfSk7ZnVuY3Rpb24gRDZ0KGEsZSx0KXtsZXQgcj0oa1EodCkrKHQub3B0aW9ucy5ydWxlU3BhY2VzPyIgIjoiIikpLnJlcGVhdChMNnQodCkpO3JldHVybiB0Lm9wdGlvbnMucnVsZVNwYWNlcz9yLnNsaWNlKDAsLTEpOnJ9dmFyIEE2dD1mKCgpPT57JDZ0KCk7TTRlKCk7cyhENnQsInRoZW1hdGljQnJlYWsiKX0pO3ZhciBWMyx6NGU9ZigoKT0+e0lkdCgpO1JkdCgpO1ZkdCgpO1VkdCgpO1lkdCgpO2U2dCgpO3Q2dCgpO2E2dCgpO3I2dCgpO3M2dCgpO282dCgpO242dCgpO2Y2dCgpO2I2dCgpO3g2dCgpO2s2dCgpO0M2dCgpO1Q2dCgpO0E2dCgpO1YzPXtibG9ja3F1b3RlOkVkdCxicmVhazpjNGUsY29kZTpxZHQsZGVmaW5pdGlvbjpqZHQsZW1waGFzaXM6cDRlLGhhcmRCcmVhazpjNGUsaGVhZGluZzpKZHQsaHRtbDptNGUsaW1hZ2U6ZzRlLGltYWdlUmVmZXJlbmNlOmI0ZSxpbmxpbmVDb2RlOnY0ZSxsaW5rOnk0ZSxsaW5rUmVmZXJlbmNlOnc0ZSxsaXN0OnA2dCxsaXN0SXRlbTpnNnQscGFyYWdyYXBoOnY2dCxyb290Ok02dCxzdHJvbmc6UzRlLHRleHQ6XzZ0LHRoZW1hdGljQnJlYWs6RDZ0fX0pO2Z1bmN0aW9uIGZ3YShhLGUsdCxyKXtpZihlLnR5cGU9PT0iY29kZSImJnFnKGUscikmJihhLnR5cGU9PT0ibGlzdCJ8fGEudHlwZT09PWUudHlwZSYmcWcoYSxyKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiB0JiZ0eXBlb2YgdC5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gYS50eXBlPT09InBhcmFncmFwaCImJihhLnR5cGU9PT1lLnR5cGV8fGUudHlwZT09PSJkZWZpbml0aW9uInx8ZS50eXBlPT09ImhlYWRpbmciJiZ3UShlLHIpKT92b2lkIDA6dC5zcHJlYWQ/MTowfXZhciBQNnQsRTZ0PWYoKCk9PntkNGUoKTtoNGUoKTtQNnQ9W2Z3YV07cyhmd2EsImpvaW5EZWZhdWx0cyIpfSk7dmFyIGozLEk2dCxONnQ9ZigoKT0+e2ozPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXSxJNnQ9W3tjaGFyYWN0ZXI6IgkiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6IiAiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiIhIixhZnRlcjoiXFxbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmozfSx7Y2hhcmFjdGVyOiciJyxpbkNvbnN0cnVjdDoidGl0bGVRdW90ZSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiIyJ9LHtjaGFyYWN0ZXI6IiMiLGluQ29uc3RydWN0OiJoZWFkaW5nQXR4IixhZnRlcjpgKD86W1xyCl18JClgfSx7Y2hhcmFjdGVyOiImIixhZnRlcjoiWyNBLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiInIixpbkNvbnN0cnVjdDoidGl0bGVBcG9zdHJvcGhlIn0se2NoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2JlZm9yZToiXFxdIixjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6ajN9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIpIn0se2NoYXJhY3RlcjoiKSIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIqIixhZnRlcjpgKD86WyAJXHIKKl0pYH0se2NoYXJhY3RlcjoiKiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpqM30se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIrIixhZnRlcjpgKD86WyAJXHIKXSlgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOmAoPzpbIAlccgotXSlgfSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiLiIsYWZ0ZXI6YCg/OlsgCVxyCl18JClgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSJ9LHtjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpqM30se2NoYXJhY3RlcjoiPCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPiJ9LHtjaGFyYWN0ZXI6Ij4iLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IlsifSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmozfSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHtjaGFyYWN0ZXI6IlxcIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6Il0iLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJfIn0se2NoYXJhY3RlcjoiXyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpqM30se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJgIn0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCJdfSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmozfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6In4ifV19KTtmdW5jdGlvbiBCMChhKXtsZXQgZT0iJiIrYSsiOyI7UjZ0LmlubmVySFRNTD1lO2xldCB0PVI2dC50ZXh0Q29udGVudDtyZXR1cm4gdC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpPT09NTkmJmEhPT0ic2VtaSJ8fHQ9PT1lPyExOnR9dmFyIFI2dCxqZz1mKCgpPT57UjZ0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtzKEIwLCJkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24geTgoYSxlKXtsZXQgdD1OdW1iZXIucGFyc2VJbnQoYSxlKTtyZXR1cm4gdDw5fHx0PT09MTF8fHQ+MTMmJnQ8MzJ8fHQ+MTI2JiZ0PDE2MHx8dD41NTI5NSYmdDw1NzM0NHx8dD42NDk3NSYmdDw2NTAwOHx8KHQmNjU1MzUpPT09NjU1MzV8fCh0JjY1NTM1KT09PTY1NTM0fHx0PjExMTQxMTE/Ilx1RkZGRCI6U3RyaW5nLmZyb21Db2RlUG9pbnQodCl9dmFyIFNRPWYoKCk9PntzKHk4LCJkZWNvZGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlIil9KTtmdW5jdGlvbiB6UShhKXtyZXR1cm4gYS5yZXBsYWNlKGh3YSxtd2EpfWZ1bmN0aW9uIG13YShhLGUsdCl7aWYoZSlyZXR1cm4gZTtpZih0LmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IGk9dC5jaGFyQ29kZUF0KDEpLG89aT09PTEyMHx8aT09PTg4O3JldHVybiB5OCh0LnNsaWNlKG8/MjoxKSxvPzE2OjEwKX1yZXR1cm4gQjAodCl8fGF9dmFyIGh3YSxDNGU9ZigoKT0+e2pnKCk7U1EoKTtod2E9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naTtzKHpRLCJkZWNvZGVTdHJpbmciKTtzKG13YSwiZGVjb2RlIil9KTtmdW5jdGlvbiBPNnQoYSl7cmV0dXJuIGEubGFiZWx8fCFhLmlkZW50aWZpZXI/YS5sYWJlbHx8IiI6elEoYS5pZGVudGlmaWVyKX12YXIgRjZ0PWYoKCk9PntDNGUoKTtzKE82dCwiYXNzb2NpYXRpb24iKX0pO2Z1bmN0aW9uIEI2dChhKXtpZighYS5fY29tcGlsZWQpe2xldCBlPShhLmF0QnJlYWs/IltcXHJcXG5dW1xcdCBdKiI6IiIpKyhhLmJlZm9yZT8iKD86IithLmJlZm9yZSsiKSI6IiIpO2EuX2NvbXBpbGVkPW5ldyBSZWdFeHAoKGU/IigiK2UrIikiOiIiKSsoL1t8XFx7fSgpW1xdXiQrKj8uLV0vLnRlc3QoYS5jaGFyYWN0ZXIpPyJcXCI6IiIpK2EuY2hhcmFjdGVyKyhhLmFmdGVyPyIoPzoiK2EuYWZ0ZXIrIikiOiIiKSwiZyIpfXJldHVybiBhLl9jb21waWxlZH12YXIgSDZ0PWYoKCk9PntzKEI2dCwiY29tcGlsZVBhdHRlcm4iKX0pO2Z1bmN0aW9uIHE2dChhLGUsdCl7bGV0IHI9ZS5pbmRleFN0YWNrLGk9YS5jaGlsZHJlbnx8W10sbz1bXSxuPS0xLGw9dC5iZWZvcmUsZDtyLnB1c2goLTEpO2xldCBjPWUuY3JlYXRlVHJhY2tlcih0KTtmb3IoOysrbjxpLmxlbmd0aDspe2xldCBwPWlbbl0sdTtpZihyW3IubGVuZ3RoLTFdPW4sbisxPGkubGVuZ3RoKXtsZXQgeD1lLmhhbmRsZS5oYW5kbGVyc1tpW24rMV0udHlwZV07eCYmeC5wZWVrJiYoeD14LnBlZWspLHU9eD94KGlbbisxXSxhLGUse2JlZm9yZToiIixhZnRlcjoiIiwuLi5jLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIHU9dC5hZnRlcjtvLmxlbmd0aD4wJiYobD09PSJcciJ8fGw9PT1gCmApJiZwLnR5cGU9PT0iaHRtbCImJihvW28ubGVuZ3RoLTFdPW9bby5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIiksbD0iICIsYz1lLmNyZWF0ZVRyYWNrZXIodCksYy5tb3ZlKG8uam9pbigiIikpKTtsZXQgbT1lLmhhbmRsZShwLGEsZSx7Li4uYy5jdXJyZW50KCksYWZ0ZXI6dSxiZWZvcmU6bH0pO2QmJmQ9PT1tLnNsaWNlKDAsMSkmJihtPVpvKGQuY2hhckNvZGVBdCgwKSkrbS5zbGljZSgxKSk7bGV0IHY9ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLGQ9dm9pZCAwLHYmJihvLmxlbmd0aD4wJiZ2LmJlZm9yZSYmbD09PW9bby5sZW5ndGgtMV0uc2xpY2UoLTEpJiYob1tvLmxlbmd0aC0xXT1vW28ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK1pvKGwuY2hhckNvZGVBdCgwKSkpLHYuYWZ0ZXImJihkPXUpKSxjLm1vdmUobSksby5wdXNoKG0pLGw9bS5zbGljZSgtMSl9cmV0dXJuIHIucG9wKCksby5qb2luKCIiKX12YXIgVjZ0PWYoKCk9PntiOCgpO3MocTZ0LCJjb250YWluZXJQaHJhc2luZyIpfSk7ZnVuY3Rpb24gajZ0KGEsZSx0KXtsZXQgcj1lLmluZGV4U3RhY2ssaT1hLmNoaWxkcmVufHxbXSxvPWUuY3JlYXRlVHJhY2tlcih0KSxuPVtdLGw9LTE7Zm9yKHIucHVzaCgtMSk7KytsPGkubGVuZ3RoOyl7bGV0IGQ9aVtsXTtyW3IubGVuZ3RoLTFdPWwsbi5wdXNoKG8ubW92ZShlLmhhbmRsZShkLGEsZSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4uby5jdXJyZW50KCl9KSkpLGQudHlwZSE9PSJsaXN0IiYmKGUuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxsPGkubGVuZ3RoLTEmJm4ucHVzaChvLm1vdmUoZ3dhKGQsaVtsKzFdLGEsZSkpKX1yZXR1cm4gci5wb3AoKSxuLmpvaW4oIiIpfWZ1bmN0aW9uIGd3YShhLGUsdCxyKXtsZXQgaT1yLmpvaW4ubGVuZ3RoO2Zvcig7aS0tOyl7bGV0IG89ci5qb2luW2ldKGEsZSx0LHIpO2lmKG89PT0hMHx8bz09PTEpYnJlYWs7aWYodHlwZW9mIG89PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStvKTtpZihvPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBVNnQ9ZigoKT0+e3MoajZ0LCJjb250YWluZXJGbG93Iik7cyhnd2EsImJldHdlZW4iKX0pO2Z1bmN0aW9uIFc2dChhLGUpe2xldCB0PVtdLHI9MCxpPTAsbztmb3IoO289YndhLmV4ZWMoYSk7KW4oYS5zbGljZShyLG8uaW5kZXgpKSx0LnB1c2gob1swXSkscj1vLmluZGV4K29bMF0ubGVuZ3RoLGkrKztyZXR1cm4gbihhLnNsaWNlKHIpKSx0LmpvaW4oIiIpO2Z1bmN0aW9uIG4obCl7dC5wdXNoKGUobCxpLCFsKSl9cyhuLCJvbmUiKX12YXIgYndhLEc2dD1mKCgpPT57YndhPS9ccj9cbnxcci9nO3MoVzZ0LCJpbmRlbnRMaW5lcyIpfSk7ZnVuY3Rpb24gSzZ0KGEsZSx0KXtsZXQgcj0odC5iZWZvcmV8fCIiKSsoZXx8IiIpKyh0LmFmdGVyfHwiIiksaT1bXSxvPVtdLG49e30sbD0tMTtmb3IoOysrbDxhLnVuc2FmZS5sZW5ndGg7KXtsZXQgcD1hLnVuc2FmZVtsXTtpZighYlEoYS5zdGFjayxwKSljb250aW51ZTtsZXQgdT1hLmNvbXBpbGVQYXR0ZXJuKHApLG07Zm9yKDttPXUuZXhlYyhyKTspe2xldCB2PSJiZWZvcmUiaW4gcHx8ISFwLmF0QnJlYWsseD0iYWZ0ZXIiaW4gcCxiPW0uaW5kZXgrKHY/bVsxXS5sZW5ndGg6MCk7aS5pbmNsdWRlcyhiKT8obltiXS5iZWZvcmUmJiF2JiYobltiXS5iZWZvcmU9ITEpLG5bYl0uYWZ0ZXImJiF4JiYobltiXS5hZnRlcj0hMSkpOihpLnB1c2goYiksbltiXT17YmVmb3JlOnYsYWZ0ZXI6eH0pfX1pLnNvcnQodndhKTtsZXQgZD10LmJlZm9yZT90LmJlZm9yZS5sZW5ndGg6MCxjPXIubGVuZ3RoLSh0LmFmdGVyP3QuYWZ0ZXIubGVuZ3RoOjApO2ZvcihsPS0xOysrbDxpLmxlbmd0aDspe2xldCBwPWlbbF07cDxkfHxwPj1jfHxwKzE8YyYmaVtsKzFdPT09cCsxJiZuW3BdLmFmdGVyJiYhbltwKzFdLmJlZm9yZSYmIW5bcCsxXS5hZnRlcnx8aVtsLTFdPT09cC0xJiZuW3BdLmJlZm9yZSYmIW5bcC0xXS5iZWZvcmUmJiFuW3AtMV0uYWZ0ZXJ8fChkIT09cCYmby5wdXNoKFk2dChyLnNsaWNlKGQscCksIlxcIikpLGQ9cCwvWyEtLzotQFstYHstfl0vLnRlc3Qoci5jaGFyQXQocCkpJiYoIXQuZW5jb2RlfHwhdC5lbmNvZGUuaW5jbHVkZXMoci5jaGFyQXQocCkpKT9vLnB1c2goIlxcIik6KG8ucHVzaChabyhyLmNoYXJDb2RlQXQocCkpKSxkKyspKX1yZXR1cm4gby5wdXNoKFk2dChyLnNsaWNlKGQsYyksdC5hZnRlcikpLG8uam9pbigiIil9ZnVuY3Rpb24gdndhKGEsZSl7cmV0dXJuIGEtZX1mdW5jdGlvbiBZNnQoYSxlKXtsZXQgdD0vXFwoPz1bIS0vOi1AWy1gey1+XSkvZyxyPVtdLGk9W10sbz1hK2Usbj0tMSxsPTAsZDtmb3IoO2Q9dC5leGVjKG8pOylyLnB1c2goZC5pbmRleCk7Zm9yKDsrK248ci5sZW5ndGg7KWwhPT1yW25dJiZpLnB1c2goYS5zbGljZShsLHJbbl0pKSxpLnB1c2goIlxcIiksbD1yW25dO3JldHVybiBpLnB1c2goYS5zbGljZShsKSksaS5qb2luKCIiKX12YXIgWjZ0PWYoKCk9PntiOCgpO2w0ZSgpO3MoSzZ0LCJzYWZlIik7cyh2d2EsIm51bWVyaWNhbCIpO3MoWTZ0LCJlc2NhcGVCYWNrc2xhc2hlcyIpfSk7ZnVuY3Rpb24gWDZ0KGEpe2xldCBlPWF8fHt9LHQ9ZS5ub3d8fHt9LHI9ZS5saW5lU2hpZnR8fDAsaT10LmxpbmV8fDEsbz10LmNvbHVtbnx8MTtyZXR1cm57bW92ZTpkLGN1cnJlbnQ6bixzaGlmdDpsfTtmdW5jdGlvbiBuKCl7cmV0dXJue25vdzp7bGluZTppLGNvbHVtbjpvfSxsaW5lU2hpZnQ6cn19ZnVuY3Rpb24gbChjKXtyKz1jfWZ1bmN0aW9uIGQoYyl7bGV0IHA9Y3x8IiIsdT1wLnNwbGl0KC9ccj9cbnxcci9nKSxtPXVbdS5sZW5ndGgtMV07cmV0dXJuIGkrPXUubGVuZ3RoLTEsbz11Lmxlbmd0aD09PTE/byttLmxlbmd0aDoxK20ubGVuZ3RoK3IscH19dmFyIFE2dD1mKCgpPT57cyhYNnQsInRyYWNrIil9KTtmdW5jdGlvbiBfNGUoYSxlKXtsZXQgdD1lfHx7fSxyPXthc3NvY2lhdGlvbklkOk82dCxjb250YWluZXJQaHJhc2luZzpNd2EsY29udGFpbmVyRmxvdzprd2EsY3JlYXRlVHJhY2tlcjpYNnQsY29tcGlsZVBhdHRlcm46QjZ0LGVudGVyOm8saGFuZGxlcnM6ey4uLlYzfSxoYW5kbGU6dm9pZCAwLGluZGVudExpbmVzOlc2dCxpbmRleFN0YWNrOltdLGpvaW46Wy4uLlA2dF0sb3B0aW9uczp7fSxzYWZlOlN3YSxzdGFjazpbXSx1bnNhZmU6Wy4uLkk2dF19O240ZShyLHQpLHIub3B0aW9ucy50aWdodERlZmluaXRpb25zJiZyLmpvaW4ucHVzaCh3d2EpLHIuaGFuZGxlPWdRKCJ0eXBlIix7aW52YWxpZDp4d2EsdW5rbm93bjp5d2EsaGFuZGxlcnM6ci5oYW5kbGVyc30pO2xldCBpPXIuaGFuZGxlKGEsdm9pZCAwLHIse2JlZm9yZTpgCmAsYWZ0ZXI6YApgLG5vdzp7bGluZToxLGNvbHVtbjoxfSxsaW5lU2hpZnQ6MH0pO3JldHVybiBpJiZpLmNoYXJDb2RlQXQoaS5sZW5ndGgtMSkhPT0xMCYmaS5jaGFyQ29kZUF0KGkubGVuZ3RoLTEpIT09MTMmJihpKz1gCmApLGk7ZnVuY3Rpb24gbyhuKXtyZXR1cm4gci5zdGFjay5wdXNoKG4pLGw7ZnVuY3Rpb24gbCgpe3Iuc3RhY2sucG9wKCl9cyhsLCJleGl0Iil9cyhvLCJlbnRlciIpfWZ1bmN0aW9uIHh3YShhKXt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdmFsdWUgYCIrYSsiYCwgZXhwZWN0ZWQgbm9kZSIpfWZ1bmN0aW9uIHl3YShhKXtsZXQgZT1hO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9ZnVuY3Rpb24gd3dhKGEsZSl7aWYoYS50eXBlPT09ImRlZmluaXRpb24iJiZhLnR5cGU9PT1lLnR5cGUpcmV0dXJuIDB9ZnVuY3Rpb24gTXdhKGEsZSl7cmV0dXJuIHE2dChhLHRoaXMsZSl9ZnVuY3Rpb24ga3dhKGEsZSl7cmV0dXJuIGo2dChhLHRoaXMsZSl9ZnVuY3Rpb24gU3dhKGEsZSl7cmV0dXJuIEs2dCh0aGlzLGEsZSl9dmFyIEo2dD1mKCgpPT57bzRlKCk7UGR0KCk7ejRlKCk7RTZ0KCk7TjZ0KCk7RjZ0KCk7SDZ0KCk7VjZ0KCk7VTZ0KCk7RzZ0KCk7WjZ0KCk7UTZ0KCk7cyhfNGUsInRvTWFya2Rvd24iKTtzKHh3YSwiaW52YWxpZCIpO3MoeXdhLCJ1bmtub3duIik7cyh3d2EsImpvaW5EZWZpbml0aW9uIik7cyhNd2EsImNvbnRhaW5lclBocmFzaW5nQm91bmQiKTtzKGt3YSwiY29udGFpbmVyRmxvd0JvdW5kIik7cyhTd2EsInNhZmVCb3VuZCIpfSk7dmFyIENRPWYoKCk9PntKNnQoKTt6NGUoKX0pO2Z1bmN0aW9uIEw0ZSgpe3JldHVybntlbnRlcjp7dGFibGU6endhLHRhYmxlRGF0YTpldXQsdGFibGVIZWFkZXI6ZXV0LHRhYmxlUm93Ol93YX0sZXhpdDp7Y29kZVRleHQ6VHdhLHRhYmxlOkN3YSx0YWJsZURhdGE6VDRlLHRhYmxlSGVhZGVyOlQ0ZSx0YWJsZVJvdzpUNGV9fX1mdW5jdGlvbiB6d2EoYSl7bGV0IGU9YS5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOmUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0PT09Im5vbmUiP251bGw6dH0pLGNoaWxkcmVuOltdfSxhKSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiBDd2EoYSl7dGhpcy5leGl0KGEpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiBfd2EoYSl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSxhKX1mdW5jdGlvbiBUNGUoYSl7dGhpcy5leGl0KGEpfWZ1bmN0aW9uIGV1dChhKXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSxhKX1mdW5jdGlvbiBUd2EoYSl7bGV0IGU9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxMd2EpKTtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3QudHlwZSx0LnZhbHVlPWUsdGhpcy5leGl0KGEpfWZ1bmN0aW9uIEx3YShhLGUpe3JldHVybiBlPT09InwiP2U6YX1mdW5jdGlvbiAkNGUoYSl7bGV0IGU9YXx8e30sdD1lLnRhYmxlQ2VsbFBhZGRpbmcscj1lLnRhYmxlUGlwZUFsaWduLGk9ZS5zdHJpbmdMZW5ndGgsbz10PyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTptLHRhYmxlOm4sdGFibGVDZWxsOmQsdGFibGVSb3c6bH19O2Z1bmN0aW9uIG4odix4LGIsZyl7cmV0dXJuIGMocCh2LGIsZyksdi5hbGlnbil9ZnVuY3Rpb24gbCh2LHgsYixnKXtsZXQgeT11KHYsYixnKSxrPWMoW3ldKTtyZXR1cm4gay5zbGljZSgwLGsuaW5kZXhPZihgCmApKX1mdW5jdGlvbiBkKHYseCxiLGcpe2xldCB5PWIuZW50ZXIoInRhYmxlQ2VsbCIpLGs9Yi5lbnRlcigicGhyYXNpbmciKSxDPWIuY29udGFpbmVyUGhyYXNpbmcodix7Li4uZyxiZWZvcmU6byxhZnRlcjpvfSk7cmV0dXJuIGsoKSx5KCksQ31mdW5jdGlvbiBjKHYseCl7cmV0dXJuIExkdCh2LHthbGlnbjp4LGFsaWduRGVsaW1pdGVyczpyLHBhZGRpbmc6dCxzdHJpbmdMZW5ndGg6aX0pfWZ1bmN0aW9uIHAodix4LGIpe2xldCBnPXYuY2hpbGRyZW4seT0tMSxrPVtdLEM9eC5lbnRlcigidGFibGUiKTtmb3IoOysreTxnLmxlbmd0aDspa1t5XT11KGdbeV0seCxiKTtyZXR1cm4gQygpLGt9ZnVuY3Rpb24gdSh2LHgsYil7bGV0IGc9di5jaGlsZHJlbix5PS0xLGs9W10sQz14LmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt5PGcubGVuZ3RoOylrW3ldPWQoZ1t5XSx2LHgsYik7cmV0dXJuIEMoKSxrfWZ1bmN0aW9uIG0odix4LGIpe2xldCBnPVYzLmlubGluZUNvZGUodix4LGIpO3JldHVybiBiLnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKGc9Zy5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLGd9fXZhciB0dXQ9ZigoKT0+e04wKCk7JGR0KCk7Q1EoKTtzKEw0ZSwiZ2ZtVGFibGVGcm9tTWFya2Rvd24iKTtzKHp3YSwiZW50ZXJUYWJsZSIpO3MoQ3dhLCJleGl0VGFibGUiKTtzKF93YSwiZW50ZXJSb3ciKTtzKFQ0ZSwiZXhpdCIpO3MoZXV0LCJlbnRlckNlbGwiKTtzKFR3YSwiZXhpdENvZGVUZXh0Iik7cyhMd2EsInJlcGxhY2UiKTtzKCQ0ZSwiZ2ZtVGFibGVUb01hcmtkb3duIil9KTt2YXIgYXV0PWYoKCk9Pnt0dXQoKX0pO2Z1bmN0aW9uIEQ0ZSgpe3JldHVybntleGl0Ont0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkOnJ1dCx0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQ6cnV0LHBhcmFncmFwaDokd2F9fX1mdW5jdGlvbiBBNGUoKXtyZXR1cm57dW5zYWZlOlt7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7bGlzdEl0ZW06RHdhfX19ZnVuY3Rpb24gcnV0KGEpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07ZS50eXBlLGUuY2hlY2tlZD1hLnR5cGU9PT0idGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCJ9ZnVuY3Rpb24gJHdhKGEpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07aWYoZSYmZS50eXBlPT09Imxpc3RJdGVtIiYmdHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3QudHlwZTtsZXQgcj10LmNoaWxkcmVuWzBdO2lmKHImJnIudHlwZT09PSJ0ZXh0Iil7bGV0IGk9ZS5jaGlsZHJlbixvPS0xLG47Zm9yKDsrK288aS5sZW5ndGg7KXtsZXQgbD1pW29dO2lmKGwudHlwZT09PSJwYXJhZ3JhcGgiKXtuPWw7YnJlYWt9fW49PT10JiYoci52YWx1ZT1yLnZhbHVlLnNsaWNlKDEpLHIudmFsdWUubGVuZ3RoPT09MD90LmNoaWxkcmVuLnNoaWZ0KCk6dC5wb3NpdGlvbiYmci5wb3NpdGlvbiYmdHlwZW9mIHIucG9zaXRpb24uc3RhcnQub2Zmc2V0PT0ibnVtYmVyIiYmKHIucG9zaXRpb24uc3RhcnQuY29sdW1uKyssci5wb3NpdGlvbi5zdGFydC5vZmZzZXQrKyx0LnBvc2l0aW9uLnN0YXJ0PU9iamVjdC5hc3NpZ24oe30sci5wb3NpdGlvbi5zdGFydCkpKX19dGhpcy5leGl0KGEpfWZ1bmN0aW9uIER3YShhLGUsdCxyKXtsZXQgaT1hLmNoaWxkcmVuWzBdLG89dHlwZW9mIGEuY2hlY2tlZD09ImJvb2xlYW4iJiZpJiZpLnR5cGU9PT0icGFyYWdyYXBoIixuPSJbIisoYS5jaGVja2VkPyJ4IjoiICIpKyJdICIsbD10LmNyZWF0ZVRyYWNrZXIocik7byYmbC5tb3ZlKG4pO2xldCBkPVYzLmxpc3RJdGVtKGEsZSx0LHsuLi5yLC4uLmwuY3VycmVudCgpfSk7cmV0dXJuIG8mJihkPWQucmVwbGFjZSgvXig/OlsqKy1dfFxkK1wuKShbXHJcbl18IHsxLDN9KS8sYykpLGQ7ZnVuY3Rpb24gYyhwKXtyZXR1cm4gcCtufXMoYywiY2hlY2siKX12YXIgc3V0PWYoKCk9PntOMCgpO0NRKCk7cyhENGUsImdmbVRhc2tMaXN0SXRlbUZyb21NYXJrZG93biIpO3MoQTRlLCJnZm1UYXNrTGlzdEl0ZW1Ub01hcmtkb3duIik7cyhydXQsImV4aXRDaGVjayIpO3MoJHdhLCJleGl0UGFyYWdyYXBoV2l0aFRhc2tMaXN0SXRlbSIpO3MoRHdhLCJsaXN0SXRlbVdpdGhUYXNrTGlzdEl0ZW0iKX0pO3ZhciBpdXQ9ZigoKT0+e3N1dCgpfSk7ZnVuY3Rpb24gUDRlKCl7cmV0dXJuW2U0ZSgpLGE0ZSgpLHM0ZSgpLEw0ZSgpLEQ0ZSgpXX1mdW5jdGlvbiBFNGUoYSl7cmV0dXJue2V4dGVuc2lvbnM6W3Q0ZSgpLHI0ZShhKSxpNGUoKSwkNGUoYSksQTRlKCldfX12YXIgb3V0PWYoKCk9Pnt5ZHQoKTtTZHQoKTtfZHQoKTthdXQoKTtpdXQoKTtzKFA0ZSwiZ2ZtRnJvbU1hcmtkb3duIik7cyhFNGUsImdmbVRvTWFya2Rvd24iKX0pO3ZhciBudXQ9ZigoKT0+e291dCgpfSk7ZnVuY3Rpb24gWXIoYSxlLHQscil7bGV0IGk9YS5sZW5ndGgsbz0wLG47aWYoZTwwP2U9LWU+aT8wOmkrZTplPWU+aT9pOmUsdD10PjA/dDowLHIubGVuZ3RoPDFlNCluPUFycmF5LmZyb20ociksbi51bnNoaWZ0KGUsdCksYS5zcGxpY2UoLi4ubik7ZWxzZSBmb3IodCYmYS5zcGxpY2UoZSx0KTtvPHIubGVuZ3RoOyluPXIuc2xpY2UobyxvKzFlNCksbi51bnNoaWZ0KGUsMCksYS5zcGxpY2UoLi4ubiksbys9MWU0LGUrPTFlNH1mdW5jdGlvbiBmcyhhLGUpe3JldHVybiBhLmxlbmd0aD4wPyhZcihhLGEubGVuZ3RoLDAsZSksYSk6ZX12YXIgUDI9ZigoKT0+e3MoWXIsInNwbGljZSIpO3MoZnMsInB1c2giKX0pO2Z1bmN0aW9uIF9RKGEpe2xldCBlPXt9LHQ9LTE7Zm9yKDsrK3Q8YS5sZW5ndGg7KUF3YShlLGFbdF0pO3JldHVybiBlfWZ1bmN0aW9uIEF3YShhLGUpe2xldCB0O2Zvcih0IGluIGUpe2xldCBpPShJNGUuY2FsbChhLHQpP2FbdF06dm9pZCAwKXx8KGFbdF09e30pLG89ZVt0XSxuO2lmKG8pZm9yKG4gaW4gbyl7STRlLmNhbGwoaSxuKXx8KGlbbl09W10pO2xldCBsPW9bbl07UHdhKGlbbl0sQXJyYXkuaXNBcnJheShsKT9sOmw/W2xdOltdKX19fWZ1bmN0aW9uIFB3YShhLGUpe2xldCB0PS0xLHI9W107Zm9yKDsrK3Q8ZS5sZW5ndGg7KShlW3RdLmFkZD09PSJhZnRlciI/YTpyKS5wdXNoKGVbdF0pO1lyKGEsMCwwLHIpfWZ1bmN0aW9uIFRRKGEpe2xldCBlPXt9LHQ9LTE7Zm9yKDsrK3Q8YS5sZW5ndGg7KUV3YShlLGFbdF0pO3JldHVybiBlfWZ1bmN0aW9uIEV3YShhLGUpe2xldCB0O2Zvcih0IGluIGUpe2xldCBpPShJNGUuY2FsbChhLHQpP2FbdF06dm9pZCAwKXx8KGFbdF09e30pLG89ZVt0XSxuO2lmKG8pZm9yKG4gaW4gbylpW25dPW9bbl19fXZhciBJNGUsTFE9ZigoKT0+e1AyKCk7STRlPXt9Lmhhc093blByb3BlcnR5O3MoX1EsImNvbWJpbmVFeHRlbnNpb25zIik7cyhBd2EsInN5bnRheEV4dGVuc2lvbiIpO3MoUHdhLCJjb25zdHJ1Y3RzIik7cyhUUSwiY29tYmluZUh0bWxFeHRlbnNpb25zIik7cyhFd2EsImh0bWxFeHRlbnNpb24iKX0pO2Z1bmN0aW9uIE80ZSgpe3JldHVybnt0ZXh0OkUyfX1mdW5jdGlvbiBSd2EoYSxlLHQpe2xldCByPXRoaXMsaSxvO3JldHVybiBuO2Z1bmN0aW9uIG4odSl7cmV0dXJuIU40ZSh1KXx8IW11dC5jYWxsKHIsci5wcmV2aW91cyl8fFI0ZShyLmV2ZW50cyk/dCh1KTooYS5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksYS5lbnRlcigibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxsKHUpKX1mdW5jdGlvbiBsKHUpe3JldHVybiBONGUodSk/KGEuY29uc3VtZSh1KSxsKTp1PT09NjQ/KGEuY29uc3VtZSh1KSxkKTp0KHUpfWZ1bmN0aW9uIGQodSl7cmV0dXJuIHU9PT00Nj9hLmNoZWNrKE53YSxwLGMpKHUpOnU9PT00NXx8dT09PTk1fHxJcih1KT8obz0hMCxhLmNvbnN1bWUodSksZCk6cCh1KX1mdW5jdGlvbiBjKHUpe3JldHVybiBhLmNvbnN1bWUodSksaT0hMCxkfWZ1bmN0aW9uIHAodSl7cmV0dXJuIG8mJmkmJkFzKHIucHJldmlvdXMpPyhhLmV4aXQoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksYS5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKHUpKTp0KHUpfX1mdW5jdGlvbiBPd2EoYSxlLHQpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShuKXtyZXR1cm4gbiE9PTg3JiZuIT09MTE5fHwhZnV0LmNhbGwocixyLnByZXZpb3VzKXx8UjRlKHIuZXZlbnRzKT90KG4pOihhLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxhLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtXd3ciKSxhLmNoZWNrKEl3YSxhLmF0dGVtcHQobHV0LGEuYXR0ZW1wdChjdXQsbyksdCksdCkobikpfWZ1bmN0aW9uIG8obil7cmV0dXJuIGEuZXhpdCgibGl0ZXJhbEF1dG9saW5rV3d3IiksYS5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKG4pfX1mdW5jdGlvbiBGd2EoYSxlLHQpe2xldCByPXRoaXMsaT0iIixvPSExO3JldHVybiBuO2Z1bmN0aW9uIG4odSl7cmV0dXJuKHU9PT03Mnx8dT09PTEwNCkmJmh1dC5jYWxsKHIsci5wcmV2aW91cykmJiFSNGUoci5ldmVudHMpPyhhLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxhLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtIdHRwIiksaSs9U3RyaW5nLmZyb21Db2RlUG9pbnQodSksYS5jb25zdW1lKHUpLGwpOnQodSl9ZnVuY3Rpb24gbCh1KXtpZihBcyh1KSYmaS5sZW5ndGg8NSlyZXR1cm4gaSs9U3RyaW5nLmZyb21Db2RlUG9pbnQodSksYS5jb25zdW1lKHUpLGw7aWYodT09PTU4KXtsZXQgbT1pLnRvTG93ZXJDYXNlKCk7aWYobT09PSJodHRwInx8bT09PSJodHRwcyIpcmV0dXJuIGEuY29uc3VtZSh1KSxkfXJldHVybiB0KHUpfWZ1bmN0aW9uIGQodSl7cmV0dXJuIHU9PT00Nz8oYS5jb25zdW1lKHUpLG8/Yzoobz0hMCxkKSk6dCh1KX1mdW5jdGlvbiBjKHUpe3JldHVybiB1PT09bnVsbHx8RjModSl8fHVhKHUpfHxBMih1KXx8QjModSk/dCh1KTphLmF0dGVtcHQobHV0LGEuYXR0ZW1wdChjdXQscCksdCkodSl9ZnVuY3Rpb24gcCh1KXtyZXR1cm4gYS5leGl0KCJsaXRlcmFsQXV0b2xpbmtIdHRwIiksYS5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKHUpfX1mdW5jdGlvbiBCd2EoYSxlLHQpe2xldCByPTA7cmV0dXJuIGk7ZnVuY3Rpb24gaShuKXtyZXR1cm4obj09PTg3fHxuPT09MTE5KSYmcjwzPyhyKyssYS5jb25zdW1lKG4pLGkpOm49PT00NiYmcj09PTM/KGEuY29uc3VtZShuKSxvKTp0KG4pfWZ1bmN0aW9uIG8obil7cmV0dXJuIG49PT1udWxsP3Qobik6ZShuKX19ZnVuY3Rpb24gSHdhKGEsZSx0KXtsZXQgcixpLG87cmV0dXJuIG47ZnVuY3Rpb24gbihjKXtyZXR1cm4gYz09PTQ2fHxjPT09OTU/YS5jaGVjayhkdXQsZCxsKShjKTpjPT09bnVsbHx8dWEoYyl8fEEyKGMpfHxjIT09NDUmJkIzKGMpP2QoYyk6KG89ITAsYS5jb25zdW1lKGMpLG4pfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIGM9PT05NT9yPSEwOihpPXIscj12b2lkIDApLGEuY29uc3VtZShjKSxufWZ1bmN0aW9uIGQoYyl7cmV0dXJuIGl8fHJ8fCFvP3QoYyk6ZShjKX19ZnVuY3Rpb24gcXdhKGEsZSl7bGV0IHQ9MCxyPTA7cmV0dXJuIGk7ZnVuY3Rpb24gaShuKXtyZXR1cm4gbj09PTQwPyh0KyssYS5jb25zdW1lKG4pLGkpOm49PT00MSYmcjx0P28obik6bj09PTMzfHxuPT09MzR8fG49PT0zOHx8bj09PTM5fHxuPT09NDF8fG49PT00Mnx8bj09PTQ0fHxuPT09NDZ8fG49PT01OHx8bj09PTU5fHxuPT09NjB8fG49PT02M3x8bj09PTkzfHxuPT09OTV8fG49PT0xMjY/YS5jaGVjayhkdXQsZSxvKShuKTpuPT09bnVsbHx8dWEobil8fEEyKG4pP2Uobik6KGEuY29uc3VtZShuKSxpKX1mdW5jdGlvbiBvKG4pe3JldHVybiBuPT09NDEmJnIrKyxhLmNvbnN1bWUobiksaX19ZnVuY3Rpb24gVndhKGEsZSx0KXtyZXR1cm4gcjtmdW5jdGlvbiByKGwpe3JldHVybiBsPT09MzN8fGw9PT0zNHx8bD09PTM5fHxsPT09NDF8fGw9PT00Mnx8bD09PTQ0fHxsPT09NDZ8fGw9PT01OHx8bD09PTU5fHxsPT09NjN8fGw9PT05NXx8bD09PTEyNj8oYS5jb25zdW1lKGwpLHIpOmw9PT0zOD8oYS5jb25zdW1lKGwpLG8pOmw9PT05Mz8oYS5jb25zdW1lKGwpLGkpOmw9PT02MHx8bD09PW51bGx8fHVhKGwpfHxBMihsKT9lKGwpOnQobCl9ZnVuY3Rpb24gaShsKXtyZXR1cm4gbD09PW51bGx8fGw9PT00MHx8bD09PTkxfHx1YShsKXx8QTIobCk/ZShsKTpyKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIEFzKGwpP24obCk6dChsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBsPT09NTk/KGEuY29uc3VtZShsKSxyKTpBcyhsKT8oYS5jb25zdW1lKGwpLG4pOnQobCl9fWZ1bmN0aW9uIGp3YShhLGUsdCl7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gYS5jb25zdW1lKG8pLGl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gSXIobyk/dChvKTplKG8pfX1mdW5jdGlvbiBmdXQoYSl7cmV0dXJuIGE9PT1udWxsfHxhPT09NDB8fGE9PT00Mnx8YT09PTk1fHxhPT09OTF8fGE9PT05M3x8YT09PTEyNnx8dWEoYSl9ZnVuY3Rpb24gaHV0KGEpe3JldHVybiFBcyhhKX1mdW5jdGlvbiBtdXQoYSl7cmV0dXJuIShhPT09NDd8fE40ZShhKSl9ZnVuY3Rpb24gTjRlKGEpe3JldHVybiBhPT09NDN8fGE9PT00NXx8YT09PTQ2fHxhPT09OTV8fElyKGEpfWZ1bmN0aW9uIFI0ZShhKXtsZXQgZT1hLmxlbmd0aCx0PSExO2Zvcig7ZS0tOyl7bGV0IHI9YVtlXVsxXTtpZigoci50eXBlPT09ImxhYmVsTGluayJ8fHIudHlwZT09PSJsYWJlbEltYWdlIikmJiFyLl9iYWxhbmNlZCl7dD0hMDticmVha31pZihyLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvKXt0PSExO2JyZWFrfX1yZXR1cm4gYS5sZW5ndGg+MCYmIXQmJihhW2EubGVuZ3RoLTFdWzFdLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvPSEwKSx0fXZhciBJd2EsbHV0LGN1dCxkdXQsTndhLHV1dCxwdXQsSGwsRTIsZ3V0PWYoKCk9PntiYSgpO0l3YT17dG9rZW5pemU6QndhLHBhcnRpYWw6ITB9LGx1dD17dG9rZW5pemU6SHdhLHBhcnRpYWw6ITB9LGN1dD17dG9rZW5pemU6cXdhLHBhcnRpYWw6ITB9LGR1dD17dG9rZW5pemU6VndhLHBhcnRpYWw6ITB9LE53YT17dG9rZW5pemU6andhLHBhcnRpYWw6ITB9LHV1dD17bmFtZToid3d3QXV0b2xpbmsiLHRva2VuaXplOk93YSxwcmV2aW91czpmdXR9LHB1dD17bmFtZToicHJvdG9jb2xBdXRvbGluayIsdG9rZW5pemU6RndhLHByZXZpb3VzOmh1dH0sSGw9e25hbWU6ImVtYWlsQXV0b2xpbmsiLHRva2VuaXplOlJ3YSxwcmV2aW91czptdXR9LEUyPXt9O3MoTzRlLCJnZm1BdXRvbGlua0xpdGVyYWwiKTtmb3IodmFyIFUzPTQ4O1UzPDEyMzspRTJbVTNdPUhsLFUzKyssVTM9PT01OD9VMz02NTpVMz09PTkxJiYoVTM9OTcpO0UyWzQzXT1IbCxFMls0NV09SGwsRTJbNDZdPUhsLEUyWzk1XT1IbCxFMls3Ml09W0hsLHB1dF0sRTJbMTA0XT1bSGwscHV0XSxFMls4N109W0hsLHV1dF0sRTJbMTE5XT1bSGwsdXV0XTtzKFJ3YSwidG9rZW5pemVFbWFpbEF1dG9saW5rIik7cyhPd2EsInRva2VuaXplV3d3QXV0b2xpbmsiKTtzKEZ3YSwidG9rZW5pemVQcm90b2NvbEF1dG9saW5rIik7cyhCd2EsInRva2VuaXplV3d3UHJlZml4Iik7cyhId2EsInRva2VuaXplRG9tYWluIik7cyhxd2EsInRva2VuaXplUGF0aCIpO3MoVndhLCJ0b2tlbml6ZVRyYWlsIik7cyhqd2EsInRva2VuaXplRW1haWxEb21haW5Eb3RUcmFpbCIpO3MoZnV0LCJwcmV2aW91c1d3dyIpO3MoaHV0LCJwcmV2aW91c1Byb3RvY29sIik7cyhtdXQsInByZXZpb3VzRW1haWwiKTtzKE40ZSwiZ2ZtQXRleHQiKTtzKFI0ZSwicHJldmlvdXNVbmJhbGFuY2VkIil9KTtmdW5jdGlvbiAkUShhKXtyZXR1cm4gYS5yZXBsYWNlKC9bIiY8Pl0vZyxlKTtmdW5jdGlvbiBlKHQpe3JldHVybiImIitVd2FbdF0rIjsifX12YXIgVXdhLEY0ZT1mKCgpPT57VXdhPXsnIic6InF1b3QiLCImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0In07cygkUSwiZW5jb2RlIil9KTtmdW5jdGlvbiBJMihhLGUpe2xldCB0PSRRKFhvKGF8fCIiKSk7aWYoIWUpcmV0dXJuIHQ7bGV0IHI9dC5pbmRleE9mKCI6IiksaT10LmluZGV4T2YoIj8iKSxvPXQuaW5kZXhPZigiIyIpLG49dC5pbmRleE9mKCIvIik7cmV0dXJuIHI8MHx8bj4tMSYmcj5ufHxpPi0xJiZyPml8fG8+LTEmJnI+b3x8ZS50ZXN0KHQuc2xpY2UoMCxyKSk/dDoiIn1mdW5jdGlvbiBYbyhhKXtsZXQgZT1bXSx0PS0xLHI9MCxpPTA7Zm9yKDsrK3Q8YS5sZW5ndGg7KXtsZXQgbz1hLmNoYXJDb2RlQXQodCksbj0iIjtpZihvPT09MzcmJklyKGEuY2hhckNvZGVBdCh0KzEpKSYmSXIoYS5jaGFyQ29kZUF0KHQrMikpKWk9MjtlbHNlIGlmKG88MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKXx8KG49U3RyaW5nLmZyb21DaGFyQ29kZShvKSk7ZWxzZSBpZihvPjU1Mjk1JiZvPDU3MzQ0KXtsZXQgbD1hLmNoYXJDb2RlQXQodCsxKTtvPDU2MzIwJiZsPjU2MzE5JiZsPDU3MzQ0PyhuPVN0cmluZy5mcm9tQ2hhckNvZGUobyxsKSxpPTEpOm49Ilx1RkZGRCJ9ZWxzZSBuPVN0cmluZy5mcm9tQ2hhckNvZGUobyk7biYmKGUucHVzaChhLnNsaWNlKHIsdCksZW5jb2RlVVJJQ29tcG9uZW50KG4pKSxyPXQraSsxLG49IiIpLGkmJih0Kz1pLGk9MCl9cmV0dXJuIGUuam9pbigiIikrYS5zbGljZShyKX12YXIgTjI9ZigoKT0+e2JhKCk7RjRlKCk7cyhJMiwic2FuaXRpemVVcmkiKTtzKFhvLCJub3JtYWxpemVVcmkiKX0pO2Z1bmN0aW9uIEg0ZSgpe3JldHVybntleGl0OntsaXRlcmFsQXV0b2xpbmtFbWFpbDpHd2EsbGl0ZXJhbEF1dG9saW5rSHR0cDpZd2EsbGl0ZXJhbEF1dG9saW5rV3d3Old3YX19fWZ1bmN0aW9uIFd3YShhKXtCNGUuY2FsbCh0aGlzLGEsImh0dHA6Ly8iKX1mdW5jdGlvbiBHd2EoYSl7QjRlLmNhbGwodGhpcyxhLCJtYWlsdG86Iil9ZnVuY3Rpb24gWXdhKGEpe0I0ZS5jYWxsKHRoaXMsYSl9ZnVuY3Rpb24gQjRlKGEsZSl7bGV0IHQ9dGhpcy5zbGljZVNlcmlhbGl6ZShhKTt0aGlzLnRhZygnPGEgaHJlZj0iJytJMigoZXx8IiIpK3QpKyciPicpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHQpKSx0aGlzLnRhZygiPC9hPiIpfXZhciBidXQ9ZigoKT0+e04yKCk7cyhINGUsImdmbUF1dG9saW5rTGl0ZXJhbEh0bWwiKTtzKFd3YSwibGl0ZXJhbEF1dG9saW5rV3d3Iik7cyhHd2EsImxpdGVyYWxBdXRvbGlua0VtYWlsIik7cyhZd2EsImxpdGVyYWxBdXRvbGlua0h0dHAiKTtzKEI0ZSwiYW5jaG9yRnJvbVRva2VuIil9KTt2YXIgdnV0PWYoKCk9PntndXQoKTtidXQoKX0pO2Z1bmN0aW9uIEgwKGEsZSx0KXtsZXQgcj1bXSxpPS0xO2Zvcig7KytpPGEubGVuZ3RoOyl7bGV0IG89YVtpXS5yZXNvbHZlQWxsO28mJiFyLmluY2x1ZGVzKG8pJiYoZT1vKGUsdCksci5wdXNoKG8pKX1yZXR1cm4gZX12YXIgVWc9ZigoKT0+e3MoSDAsInJlc29sdmVBbGwiKX0pO2Z1bmN0aW9uIEt3YShhLGUpe2xldCB0PS0xLHIsaSxvLG4sbCxkLGMscDtmb3IoOysrdDxhLmxlbmd0aDspaWYoYVt0XVswXT09PSJlbnRlciImJmFbdF1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJmFbdF1bMV0uX2Nsb3NlKXtmb3Iocj10O3ItLTspaWYoYVtyXVswXT09PSJleGl0IiYmYVtyXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmYVtyXVsxXS5fb3BlbiYmZS5zbGljZVNlcmlhbGl6ZShhW3JdWzFdKS5jaGFyQ29kZUF0KDApPT09ZS5zbGljZVNlcmlhbGl6ZShhW3RdWzFdKS5jaGFyQ29kZUF0KDApKXtpZigoYVtyXVsxXS5fY2xvc2V8fGFbdF1bMV0uX29wZW4pJiYoYVt0XVsxXS5lbmQub2Zmc2V0LWFbdF1bMV0uc3RhcnQub2Zmc2V0KSUzJiYhKChhW3JdWzFdLmVuZC5vZmZzZXQtYVtyXVsxXS5zdGFydC5vZmZzZXQrYVt0XVsxXS5lbmQub2Zmc2V0LWFbdF1bMV0uc3RhcnQub2Zmc2V0KSUzKSljb250aW51ZTtkPWFbcl1bMV0uZW5kLm9mZnNldC1hW3JdWzFdLnN0YXJ0Lm9mZnNldD4xJiZhW3RdWzFdLmVuZC5vZmZzZXQtYVt0XVsxXS5zdGFydC5vZmZzZXQ+MT8yOjE7bGV0IHU9ey4uLmFbcl1bMV0uZW5kfSxtPXsuLi5hW3RdWzFdLnN0YXJ0fTt4dXQodSwtZCkseHV0KG0sZCksbj17dHlwZTpkPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6dSxlbmQ6ey4uLmFbcl1bMV0uZW5kfX0sbD17dHlwZTpkPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6ey4uLmFbdF1bMV0uc3RhcnR9LGVuZDptfSxvPXt0eXBlOmQ+MT8ic3Ryb25nVGV4dCI6ImVtcGhhc2lzVGV4dCIsc3RhcnQ6ey4uLmFbcl1bMV0uZW5kfSxlbmQ6ey4uLmFbdF1bMV0uc3RhcnR9fSxpPXt0eXBlOmQ+MT8ic3Ryb25nIjoiZW1waGFzaXMiLHN0YXJ0OnsuLi5uLnN0YXJ0fSxlbmQ6ey4uLmwuZW5kfX0sYVtyXVsxXS5lbmQ9ey4uLm4uc3RhcnR9LGFbdF1bMV0uc3RhcnQ9ey4uLmwuZW5kfSxjPVtdLGFbcl1bMV0uZW5kLm9mZnNldC1hW3JdWzFdLnN0YXJ0Lm9mZnNldCYmKGM9ZnMoYyxbWyJlbnRlciIsYVtyXVsxXSxlXSxbImV4aXQiLGFbcl1bMV0sZV1dKSksYz1mcyhjLFtbImVudGVyIixpLGVdLFsiZW50ZXIiLG4sZV0sWyJleGl0IixuLGVdLFsiZW50ZXIiLG8sZV1dKSxjPWZzKGMsSDAoZS5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsYS5zbGljZShyKzEsdCksZSkpLGM9ZnMoYyxbWyJleGl0IixvLGVdLFsiZW50ZXIiLGwsZV0sWyJleGl0IixsLGVdLFsiZXhpdCIsaSxlXV0pLGFbdF1bMV0uZW5kLm9mZnNldC1hW3RdWzFdLnN0YXJ0Lm9mZnNldD8ocD0yLGM9ZnMoYyxbWyJlbnRlciIsYVt0XVsxXSxlXSxbImV4aXQiLGFbdF1bMV0sZV1dKSk6cD0wLFlyKGEsci0xLHQtciszLGMpLHQ9citjLmxlbmd0aC1wLTI7YnJlYWt9fWZvcih0PS0xOysrdDxhLmxlbmd0aDspYVt0XVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmKGFbdF1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBhfWZ1bmN0aW9uIFp3YShhLGUpe2xldCB0PXRoaXMucGFyc2VyLmNvbnN0cnVjdHMuYXR0ZW50aW9uTWFya2Vycy5udWxsLHI9dGhpcy5wcmV2aW91cyxpPUJsKHIpLG87cmV0dXJuIG47ZnVuY3Rpb24gbihkKXtyZXR1cm4gbz1kLGEuZW50ZXIoImF0dGVudGlvblNlcXVlbmNlIiksbChkKX1mdW5jdGlvbiBsKGQpe2lmKGQ9PT1vKXJldHVybiBhLmNvbnN1bWUoZCksbDtsZXQgYz1hLmV4aXQoImF0dGVudGlvblNlcXVlbmNlIikscD1CbChkKSx1PSFwfHxwPT09MiYmaXx8dC5pbmNsdWRlcyhkKSxtPSFpfHxpPT09MiYmcHx8dC5pbmNsdWRlcyhyKTtyZXR1cm4gYy5fb3Blbj0hIShvPT09NDI/dTp1JiYoaXx8IW0pKSxjLl9jbG9zZT0hIShvPT09NDI/bTptJiYocHx8IXUpKSxlKGQpfX1mdW5jdGlvbiB4dXQoYSxlKXthLmNvbHVtbis9ZSxhLm9mZnNldCs9ZSxhLl9idWZmZXJJbmRleCs9ZX12YXIgV2cseXV0PWYoKCk9PntQMigpO3hRKCk7VWcoKTtXZz17bmFtZToiYXR0ZW50aW9uIixyZXNvbHZlQWxsOkt3YSx0b2tlbml6ZTpad2F9O3MoS3dhLCJyZXNvbHZlQWxsQXR0ZW50aW9uIik7cyhad2EsInRva2VuaXplQXR0ZW50aW9uIik7cyh4dXQsIm1vdmVQb2ludCIpfSk7ZnVuY3Rpb24gWHdhKGEsZSx0KXtsZXQgcj0wO3JldHVybiBpO2Z1bmN0aW9uIGkodil7cmV0dXJuIGEuZW50ZXIoImF1dG9saW5rIiksYS5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxhLmNvbnN1bWUodiksYS5leGl0KCJhdXRvbGlua01hcmtlciIpLGEuZW50ZXIoImF1dG9saW5rUHJvdG9jb2wiKSxvfWZ1bmN0aW9uIG8odil7cmV0dXJuIEFzKHYpPyhhLmNvbnN1bWUodiksbik6dj09PTY0P3Qodik6Yyh2KX1mdW5jdGlvbiBuKHYpe3JldHVybiB2PT09NDN8fHY9PT00NXx8dj09PTQ2fHxJcih2KT8ocj0xLGwodikpOmModil9ZnVuY3Rpb24gbCh2KXtyZXR1cm4gdj09PTU4PyhhLmNvbnN1bWUodikscj0wLGQpOih2PT09NDN8fHY9PT00NXx8dj09PTQ2fHxJcih2KSkmJnIrKzwzMj8oYS5jb25zdW1lKHYpLGwpOihyPTAsYyh2KSl9ZnVuY3Rpb24gZCh2KXtyZXR1cm4gdj09PTYyPyhhLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKSxhLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGEuY29uc3VtZSh2KSxhLmV4aXQoImF1dG9saW5rTWFya2VyIiksYS5leGl0KCJhdXRvbGluayIpLGUpOnY9PT1udWxsfHx2PT09MzJ8fHY9PT02MHx8RjModik/dCh2KTooYS5jb25zdW1lKHYpLGQpfWZ1bmN0aW9uIGModil7cmV0dXJuIHY9PT02ND8oYS5jb25zdW1lKHYpLHApOm5kdCh2KT8oYS5jb25zdW1lKHYpLGMpOnQodil9ZnVuY3Rpb24gcCh2KXtyZXR1cm4gSXIodik/dSh2KTp0KHYpfWZ1bmN0aW9uIHUodil7cmV0dXJuIHY9PT00Nj8oYS5jb25zdW1lKHYpLHI9MCxwKTp2PT09NjI/KGEuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLnR5cGU9ImF1dG9saW5rRW1haWwiLGEuZW50ZXIoImF1dG9saW5rTWFya2VyIiksYS5jb25zdW1lKHYpLGEuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxhLmV4aXQoImF1dG9saW5rIiksZSk6bSh2KX1mdW5jdGlvbiBtKHYpe2lmKCh2PT09NDV8fElyKHYpKSYmcisrPDYzKXtsZXQgeD12PT09NDU/bTp1O3JldHVybiBhLmNvbnN1bWUodikseH1yZXR1cm4gdCh2KX19dmFyIHE0ZSx3dXQ9ZigoKT0+e2JhKCk7cTRlPXtuYW1lOiJhdXRvbGluayIsdG9rZW5pemU6WHdhfTtzKFh3YSwidG9rZW5pemVBdXRvbGluayIpfSk7ZnVuY3Rpb24gRHQoYSxlLHQscil7bGV0IGk9cj9yLTE6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLG89MDtyZXR1cm4gbjtmdW5jdGlvbiBuKGQpe3JldHVybiBDdChkKT8oYS5lbnRlcih0KSxsKGQpKTplKGQpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIEN0KGQpJiZvKys8aT8oYS5jb25zdW1lKGQpLGwpOihhLmV4aXQodCksZShkKSl9fXZhciBLcj1mKCgpPT57YmEoKTtzKER0LCJmYWN0b3J5U3BhY2UiKX0pO2Z1bmN0aW9uIFF3YShhLGUsdCl7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gQ3Qobyk/RHQoYSxpLCJsaW5lUHJlZml4Iikobyk6aShvKX1mdW5jdGlvbiBpKG8pe3JldHVybiBvPT09bnVsbHx8ZXQobyk/ZShvKTp0KG8pfX12YXIgUjIsRFE9ZigoKT0+e0tyKCk7YmEoKTtSMj17cGFydGlhbDohMCx0b2tlbml6ZTpRd2F9O3MoUXdhLCJ0b2tlbml6ZUJsYW5rTGluZSIpfSk7ZnVuY3Rpb24gSndhKGEsZSx0KXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkobil7aWYobj09PTYyKXtsZXQgbD1yLmNvbnRhaW5lclN0YXRlO3JldHVybiBsLm9wZW58fChhLmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLGwub3Blbj0hMCksYS5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLGEuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSxhLmNvbnN1bWUobiksYS5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksb31yZXR1cm4gdChuKX1mdW5jdGlvbiBvKG4pe3JldHVybiBDdChuKT8oYS5lbnRlcigiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSxhLmNvbnN1bWUobiksYS5leGl0KCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLGEuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUpOihhLmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKG4pKX19ZnVuY3Rpb24gZU1hKGEsZSx0KXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkobil7cmV0dXJuIEN0KG4pP0R0KGEsbywibGluZVByZWZpeCIsci5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShuKTpvKG4pfWZ1bmN0aW9uIG8obil7cmV0dXJuIGEuYXR0ZW1wdChBUSxlLHQpKG4pfX1mdW5jdGlvbiB0TWEoYSl7YS5leGl0KCJibG9ja1F1b3RlIil9dmFyIEFRLE11dD1mKCgpPT57S3IoKTtiYSgpO0FRPXtjb250aW51YXRpb246e3Rva2VuaXplOmVNYX0sZXhpdDp0TWEsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6SndhfTtzKEp3YSwidG9rZW5pemVCbG9ja1F1b3RlU3RhcnQiKTtzKGVNYSwidG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9uIik7cyh0TWEsImV4aXQiKX0pO2Z1bmN0aW9uIGFNYShhLGUsdCl7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gYS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksYS5lbnRlcigiZXNjYXBlTWFya2VyIiksYS5jb25zdW1lKG8pLGEuZXhpdCgiZXNjYXBlTWFya2VyIiksaX1mdW5jdGlvbiBpKG8pe3JldHVybiBjZHQobyk/KGEuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksYS5jb25zdW1lKG8pLGEuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxhLmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLGUpOnQobyl9fXZhciBQUSxrdXQ9ZigoKT0+e2JhKCk7UFE9e25hbWU6ImNoYXJhY3RlckVzY2FwZSIsdG9rZW5pemU6YU1hfTtzKGFNYSwidG9rZW5pemVDaGFyYWN0ZXJFc2NhcGUiKX0pO2Z1bmN0aW9uIHJNYShhLGUsdCl7bGV0IHI9dGhpcyxpPTAsbyxuO3JldHVybiBsO2Z1bmN0aW9uIGwodSl7cmV0dXJuIGEuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZSIpLGEuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGEuY29uc3VtZSh1KSxhLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGR9ZnVuY3Rpb24gZCh1KXtyZXR1cm4gdT09PTM1PyhhLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksYS5jb25zdW1lKHUpLGEuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLGMpOihhLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG89MzEsbj1JcixwKHUpKX1mdW5jdGlvbiBjKHUpe3JldHVybiB1PT09ODh8fHU9PT0xMjA/KGEuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksYS5jb25zdW1lKHUpLGEuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxhLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG89NixuPWxkdCxwKTooYS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxvPTcsbj1CZyxwKHUpKX1mdW5jdGlvbiBwKHUpe2lmKHU9PT01OSYmaSl7bGV0IG09YS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpO3JldHVybiBuPT09SXImJiFCMChyLnNsaWNlU2VyaWFsaXplKG0pKT90KHUpOihhLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSxhLmNvbnN1bWUodSksYS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSxhLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZSIpLGUpfXJldHVybiBuKHUpJiZpKys8bz8oYS5jb25zdW1lKHUpLHApOnQodSl9fXZhciBFUSxTdXQ9ZigoKT0+e2pnKCk7YmEoKTtFUT17bmFtZToiY2hhcmFjdGVyUmVmZXJlbmNlIix0b2tlbml6ZTpyTWF9O3Mock1hLCJ0b2tlbml6ZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gc01hKGEsZSx0KXtsZXQgcj10aGlzLGk9e3BhcnRpYWw6ITAsdG9rZW5pemU6X30sbz0wLG49MCxsO3JldHVybiBkO2Z1bmN0aW9uIGQoeil7cmV0dXJuIGMoeil9ZnVuY3Rpb24gYyh6KXtsZXQgTz1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG89TyYmT1sxXS50eXBlPT09ImxpbmVQcmVmaXgiP09bMl0uc2xpY2VTZXJpYWxpemUoT1sxXSwhMCkubGVuZ3RoOjAsbD16LGEuZW50ZXIoImNvZGVGZW5jZWQiKSxhLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxhLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLHAoeil9ZnVuY3Rpb24gcCh6KXtyZXR1cm4gej09PWw/KG4rKyxhLmNvbnN1bWUoeikscCk6bjwzP3Qoeik6KGEuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxDdCh6KT9EdChhLHUsIndoaXRlc3BhY2UiKSh6KTp1KHopKX1mdW5jdGlvbiB1KHope3JldHVybiB6PT09bnVsbHx8ZXQoeik/KGEuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksci5pbnRlcnJ1cHQ/ZSh6KTphLmNoZWNrKHp1dCxiLE4pKHopKTooYS5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGEuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxtKHopKX1mdW5jdGlvbiBtKHope3JldHVybiB6PT09bnVsbHx8ZXQoeik/KGEuZXhpdCgiY2h1bmtTdHJpbmciKSxhLmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSx1KHopKTpDdCh6KT8oYS5leGl0KCJjaHVua1N0cmluZyIpLGEuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLER0KGEsdiwid2hpdGVzcGFjZSIpKHopKTp6PT09OTYmJno9PT1sP3Qoeik6KGEuY29uc3VtZSh6KSxtKX1mdW5jdGlvbiB2KHope3JldHVybiB6PT09bnVsbHx8ZXQoeik/dSh6KTooYS5lbnRlcigiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGEuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx4KHopKX1mdW5jdGlvbiB4KHope3JldHVybiB6PT09bnVsbHx8ZXQoeik/KGEuZXhpdCgiY2h1bmtTdHJpbmciKSxhLmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSx1KHopKTp6PT09OTYmJno9PT1sP3Qoeik6KGEuY29uc3VtZSh6KSx4KX1mdW5jdGlvbiBiKHope3JldHVybiBhLmF0dGVtcHQoaSxOLGcpKHopfWZ1bmN0aW9uIGcoeil7cmV0dXJuIGEuZW50ZXIoImxpbmVFbmRpbmciKSxhLmNvbnN1bWUoeiksYS5leGl0KCJsaW5lRW5kaW5nIikseX1mdW5jdGlvbiB5KHope3JldHVybiBvPjAmJkN0KHopP0R0KGEsaywibGluZVByZWZpeCIsbysxKSh6KTprKHopfWZ1bmN0aW9uIGsoeil7cmV0dXJuIHo9PT1udWxsfHxldCh6KT9hLmNoZWNrKHp1dCxiLE4pKHopOihhLmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksQyh6KSl9ZnVuY3Rpb24gQyh6KXtyZXR1cm4gej09PW51bGx8fGV0KHopPyhhLmV4aXQoImNvZGVGbG93VmFsdWUiKSxrKHopKTooYS5jb25zdW1lKHopLEMpfWZ1bmN0aW9uIE4oeil7cmV0dXJuIGEuZXhpdCgiY29kZUZlbmNlZCIpLGUoeil9ZnVuY3Rpb24gXyh6LE8sVCl7bGV0IFA9MDtyZXR1cm4gQjtmdW5jdGlvbiBCKEYpe3JldHVybiB6LmVudGVyKCJsaW5lRW5kaW5nIiksei5jb25zdW1lKEYpLHouZXhpdCgibGluZUVuZGluZyIpLE19ZnVuY3Rpb24gTShGKXtyZXR1cm4gei5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksQ3QoRik/RHQoeixTLCJsaW5lUHJlZml4IixyLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEYpOlMoRil9ZnVuY3Rpb24gUyhGKXtyZXR1cm4gRj09PWw/KHouZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksRShGKSk6VChGKX1mdW5jdGlvbiBFKEYpe3JldHVybiBGPT09bD8oUCsrLHouY29uc3VtZShGKSxFKTpQPj1uPyh6LmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksQ3QoRik/RHQoeixBLCJ3aGl0ZXNwYWNlIikoRik6QShGKSk6VChGKX1mdW5jdGlvbiBBKEYpe3JldHVybiBGPT09bnVsbHx8ZXQoRik/KHouZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksTyhGKSk6VChGKX19fWZ1bmN0aW9uIGlNYShhLGUsdCl7bGV0IHI9dGhpcztyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBuPT09bnVsbD90KG4pOihhLmVudGVyKCJsaW5lRW5kaW5nIiksYS5jb25zdW1lKG4pLGEuZXhpdCgibGluZUVuZGluZyIpLG8pfWZ1bmN0aW9uIG8obil7cmV0dXJuIHIucGFyc2VyLmxhenlbci5ub3coKS5saW5lXT90KG4pOmUobil9fXZhciB6dXQsSVEsQ3V0PWYoKCk9PntLcigpO2JhKCk7enV0PXtwYXJ0aWFsOiEwLHRva2VuaXplOmlNYX0sSVE9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOnNNYX07cyhzTWEsInRva2VuaXplQ29kZUZlbmNlZCIpO3MoaU1hLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIG5NYShhLGUsdCl7bGV0IHI9dGhpcztyZXR1cm4gaTtmdW5jdGlvbiBpKGMpe3JldHVybiBhLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxEdChhLG8sImxpbmVQcmVmaXgiLDUpKGMpfWZ1bmN0aW9uIG8oYyl7bGV0IHA9ci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBwJiZwWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnBbMl0uc2xpY2VTZXJpYWxpemUocFsxXSwhMCkubGVuZ3RoPj00P24oYyk6dChjKX1mdW5jdGlvbiBuKGMpe3JldHVybiBjPT09bnVsbD9kKGMpOmV0KGMpP2EuYXR0ZW1wdChvTWEsbixkKShjKTooYS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLGwoYykpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIGM9PT1udWxsfHxldChjKT8oYS5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbihjKSk6KGEuY29uc3VtZShjKSxsKX1mdW5jdGlvbiBkKGMpe3JldHVybiBhLmV4aXQoImNvZGVJbmRlbnRlZCIpLGUoYyl9fWZ1bmN0aW9uIGxNYShhLGUsdCl7bGV0IHI9dGhpcztyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiByLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0/dChuKTpldChuKT8oYS5lbnRlcigibGluZUVuZGluZyIpLGEuY29uc3VtZShuKSxhLmV4aXQoImxpbmVFbmRpbmciKSxpKTpEdChhLG8sImxpbmVQcmVmaXgiLDUpKG4pfWZ1bmN0aW9uIG8obil7bGV0IGw9ci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBsJiZsWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJmxbMl0uc2xpY2VTZXJpYWxpemUobFsxXSwhMCkubGVuZ3RoPj00P2Uobik6ZXQobik/aShuKTp0KG4pfX12YXIgR2csb01hLF91dD1mKCgpPT57S3IoKTtiYSgpO0dnPXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOm5NYX0sb01hPXtwYXJ0aWFsOiEwLHRva2VuaXplOmxNYX07cyhuTWEsInRva2VuaXplQ29kZUluZGVudGVkIik7cyhsTWEsInRva2VuaXplRnVydGhlclN0YXJ0Iil9KTtmdW5jdGlvbiBjTWEoYSl7bGV0IGU9YS5sZW5ndGgtNCx0PTMscixpO2lmKChhW3RdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGFbdF1bMV0udHlwZT09PSJzcGFjZSIpJiYoYVtlXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxhW2VdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKHI9dDsrK3I8ZTspaWYoYVtyXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe2FbdF1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixhW2VdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIsdCs9MixlLT0yO2JyZWFrfX1mb3Iocj10LTEsZSsrOysrcjw9ZTspaT09PXZvaWQgMD9yIT09ZSYmYVtyXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYoaT1yKToocj09PWV8fGFbcl1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJihhW2ldWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsciE9PWkrMiYmKGFbaV1bMV0uZW5kPWFbci0xXVsxXS5lbmQsYS5zcGxpY2UoaSsyLHItaS0yKSxlLT1yLWktMixyPWkrMiksaT12b2lkIDApO3JldHVybiBhfWZ1bmN0aW9uIGRNYShhKXtyZXR1cm4gYSE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIHVNYShhLGUsdCl7bGV0IHI9dGhpcyxpPTAsbyxuO3JldHVybiBsO2Z1bmN0aW9uIGwobSl7cmV0dXJuIGEuZW50ZXIoImNvZGVUZXh0IiksYS5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGQobSl9ZnVuY3Rpb24gZChtKXtyZXR1cm4gbT09PTk2PyhhLmNvbnN1bWUobSksaSsrLGQpOihhLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxjKG0pKX1mdW5jdGlvbiBjKG0pe3JldHVybiBtPT09bnVsbD90KG0pOm09PT0zMj8oYS5lbnRlcigic3BhY2UiKSxhLmNvbnN1bWUobSksYS5leGl0KCJzcGFjZSIpLGMpOm09PT05Nj8obj1hLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbz0wLHUobSkpOmV0KG0pPyhhLmVudGVyKCJsaW5lRW5kaW5nIiksYS5jb25zdW1lKG0pLGEuZXhpdCgibGluZUVuZGluZyIpLGMpOihhLmVudGVyKCJjb2RlVGV4dERhdGEiKSxwKG0pKX1mdW5jdGlvbiBwKG0pe3JldHVybiBtPT09bnVsbHx8bT09PTMyfHxtPT09OTZ8fGV0KG0pPyhhLmV4aXQoImNvZGVUZXh0RGF0YSIpLGMobSkpOihhLmNvbnN1bWUobSkscCl9ZnVuY3Rpb24gdShtKXtyZXR1cm4gbT09PTk2PyhhLmNvbnN1bWUobSksbysrLHUpOm89PT1pPyhhLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxhLmV4aXQoImNvZGVUZXh0IiksZShtKSk6KG4udHlwZT0iY29kZVRleHREYXRhIixwKG0pKX19dmFyIFY0ZSxUdXQ9ZigoKT0+e2JhKCk7VjRlPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6ZE1hLHJlc29sdmU6Y01hLHRva2VuaXplOnVNYX07cyhjTWEsInJlc29sdmVDb2RlVGV4dCIpO3MoZE1hLCJwcmV2aW91cyIpO3ModU1hLCJ0b2tlbml6ZUNvZGVUZXh0Iil9KTtmdW5jdGlvbiBZZyhhLGUpe2xldCB0PTA7aWYoZS5sZW5ndGg8MWU0KWEucHVzaCguLi5lKTtlbHNlIGZvcig7dDxlLmxlbmd0aDspYS5wdXNoKC4uLmUuc2xpY2UodCx0KzFlNCkpLHQrPTFlNH12YXIgS2csajRlPWYoKCk9PntLZz1jbGFzc3tzdGF0aWN7cyh0aGlzLCJTcGxpY2VCdWZmZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmxlZnQ9ZT9bLi4uZV06W10sdGhpcy5yaWdodD1bXX1nZXQoZSl7aWYoZTwwfHxlPj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK2UrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIGU8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbZV06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UoZSx0KXtsZXQgcj10Pz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIHI8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UoZSxyKTplPnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1yK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKGUpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLXIrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UoZSx0LHIpe2xldCBpPXR8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyhlKSk7bGV0IG89dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtaSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiByJiZZZyh0aGlzLmxlZnQsciksby5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2goZSl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaChlKX1wdXNoTWFueShlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLFlnKHRoaXMubGVmdCxlKX11bnNoaWZ0KGUpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaChlKX11bnNoaWZ0TWFueShlKXt0aGlzLnNldEN1cnNvcigwKSxZZyh0aGlzLnJpZ2h0LGUucmV2ZXJzZSgpKX1zZXRDdXJzb3IoZSl7aWYoIShlPT09dGhpcy5sZWZ0Lmxlbmd0aHx8ZT50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fGU8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKGU8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHQ9dGhpcy5sZWZ0LnNwbGljZShlLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7WWcodGhpcy5yaWdodCx0LnJldmVyc2UoKSl9ZWxzZXtsZXQgdD10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLWUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtZZyh0aGlzLmxlZnQsdC5yZXZlcnNlKCkpfX19O3MoWWcsImNodW5rZWRQdXNoIil9KTtmdW5jdGlvbiBOUShhKXtsZXQgZT17fSx0PS0xLHIsaSxvLG4sbCxkLGMscD1uZXcgS2coYSk7Zm9yKDsrK3Q8cC5sZW5ndGg7KXtmb3IoO3QgaW4gZTspdD1lW3RdO2lmKHI9cC5nZXQodCksdCYmclsxXS50eXBlPT09ImNodW5rRmxvdyImJnAuZ2V0KHQtMSlbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCImJihkPXJbMV0uX3Rva2VuaXplci5ldmVudHMsbz0wLG88ZC5sZW5ndGgmJmRbb11bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiJiYobys9MiksbzxkLmxlbmd0aCYmZFtvXVsxXS50eXBlPT09ImNvbnRlbnQiKSlmb3IoOysrbzxkLmxlbmd0aCYmZFtvXVsxXS50eXBlIT09ImNvbnRlbnQiOylkW29dWzFdLnR5cGU9PT0iY2h1bmtUZXh0IiYmKGRbb11bMV0uX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwLG8rKyk7aWYoclswXT09PSJlbnRlciIpclsxXS5jb250ZW50VHlwZSYmKE9iamVjdC5hc3NpZ24oZSxwTWEocCx0KSksdD1lW3RdLGM9ITApO2Vsc2UgaWYoclsxXS5fY29udGFpbmVyKXtmb3Iobz10LGk9dm9pZCAwO28tLTspaWYobj1wLmdldChvKSxuWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fG5bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKW5bMF09PT0iZW50ZXIiJiYoaSYmKHAuZ2V0KGkpWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIpLG5bMV0udHlwZT0ibGluZUVuZGluZyIsaT1vKTtlbHNlIGlmKCEoblsxXS50eXBlPT09ImxpbmVQcmVmaXgifHxuWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVhaztpJiYoclsxXS5lbmQ9ey4uLnAuZ2V0KGkpWzFdLnN0YXJ0fSxsPXAuc2xpY2UoaSx0KSxsLnVuc2hpZnQocikscC5zcGxpY2UoaSx0LWkrMSxsKSl9fXJldHVybiBZcihhLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHAuc2xpY2UoMCkpLCFjfWZ1bmN0aW9uIHBNYShhLGUpe2xldCB0PWEuZ2V0KGUpWzFdLHI9YS5nZXQoZSlbMl0saT1lLTEsbz1bXSxuPXQuX3Rva2VuaXplcjtufHwobj1yLnBhcnNlclt0LmNvbnRlbnRUeXBlXSh0LnN0YXJ0KSx0Ll9jb250ZW50VHlwZVRleHRUcmFpbGluZyYmKG4uX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nPSEwKSk7bGV0IGw9bi5ldmVudHMsZD1bXSxjPXt9LHAsdSxtPS0xLHY9dCx4PTAsYj0wLGc9W2JdO2Zvcig7djspe2Zvcig7YS5nZXQoKytpKVsxXSE9PXY7KTtvLnB1c2goaSksdi5fdG9rZW5pemVyfHwocD1yLnNsaWNlU3RyZWFtKHYpLHYubmV4dHx8cC5wdXNoKG51bGwpLHUmJm4uZGVmaW5lU2tpcCh2LnN0YXJ0KSx2Ll9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKG4uX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCksbi53cml0ZShwKSx2Ll9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKG4uX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT12b2lkIDApKSx1PXYsdj12Lm5leHR9Zm9yKHY9dDsrK208bC5sZW5ndGg7KWxbbV1bMF09PT0iZXhpdCImJmxbbS0xXVswXT09PSJlbnRlciImJmxbbV1bMV0udHlwZT09PWxbbS0xXVsxXS50eXBlJiZsW21dWzFdLnN0YXJ0LmxpbmUhPT1sW21dWzFdLmVuZC5saW5lJiYoYj1tKzEsZy5wdXNoKGIpLHYuX3Rva2VuaXplcj12b2lkIDAsdi5wcmV2aW91cz12b2lkIDAsdj12Lm5leHQpO2ZvcihuLmV2ZW50cz1bXSx2Pyh2Ll90b2tlbml6ZXI9dm9pZCAwLHYucHJldmlvdXM9dm9pZCAwKTpnLnBvcCgpLG09Zy5sZW5ndGg7bS0tOyl7bGV0IHk9bC5zbGljZShnW21dLGdbbSsxXSksaz1vLnBvcCgpO2QucHVzaChbayxrK3kubGVuZ3RoLTFdKSxhLnNwbGljZShrLDIseSl9Zm9yKGQucmV2ZXJzZSgpLG09LTE7KyttPGQubGVuZ3RoOyljW3grZFttXVswXV09eCtkW21dWzFdLHgrPWRbbV1bMV0tZFttXVswXS0xO3JldHVybiBjfXZhciBVNGU9ZigoKT0+e1AyKCk7ajRlKCk7ajRlKCk7cyhOUSwic3VidG9rZW5pemUiKTtzKHBNYSwic3ViY29udGVudCIpfSk7ZnVuY3Rpb24gaE1hKGEpe3JldHVybiBOUShhKSxhfWZ1bmN0aW9uIG1NYShhLGUpe2xldCB0O3JldHVybiByO2Z1bmN0aW9uIHIobCl7cmV0dXJuIGEuZW50ZXIoImNvbnRlbnQiKSx0PWEuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLGkobCl9ZnVuY3Rpb24gaShsKXtyZXR1cm4gbD09PW51bGw/byhsKTpldChsKT9hLmNoZWNrKGZNYSxuLG8pKGwpOihhLmNvbnN1bWUobCksaSl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gYS5leGl0KCJjaHVua0NvbnRlbnQiKSxhLmV4aXQoImNvbnRlbnQiKSxlKGwpfWZ1bmN0aW9uIG4obCl7cmV0dXJuIGEuY29uc3VtZShsKSxhLmV4aXQoImNodW5rQ29udGVudCIpLHQubmV4dD1hLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6dH0pLHQ9dC5uZXh0LGl9fWZ1bmN0aW9uIGdNYShhLGUsdCl7bGV0IHI9dGhpcztyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBhLmV4aXQoImNodW5rQ29udGVudCIpLGEuZW50ZXIoImxpbmVFbmRpbmciKSxhLmNvbnN1bWUobiksYS5leGl0KCJsaW5lRW5kaW5nIiksRHQoYSxvLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbyhuKXtpZihuPT09bnVsbHx8ZXQobikpcmV0dXJuIHQobik7bGV0IGw9ci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFyLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJmwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShuKTphLmludGVycnVwdChyLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csdCxlKShuKX19dmFyIFc0ZSxmTWEsTHV0PWYoKCk9PntLcigpO2JhKCk7VTRlKCk7VzRlPXtyZXNvbHZlOmhNYSx0b2tlbml6ZTptTWF9LGZNYT17cGFydGlhbDohMCx0b2tlbml6ZTpnTWF9O3MoaE1hLCJyZXNvbHZlQ29udGVudCIpO3MobU1hLCJ0b2tlbml6ZUNvbnRlbnQiKTtzKGdNYSwidG9rZW5pemVDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIFJRKGEsZSx0LHIsaSxvLG4sbCxkKXtsZXQgYz1kfHxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD0wO3JldHVybiB1O2Z1bmN0aW9uIHUoeSl7cmV0dXJuIHk9PT02MD8oYS5lbnRlcihyKSxhLmVudGVyKGkpLGEuZW50ZXIobyksYS5jb25zdW1lKHkpLGEuZXhpdChvKSxtKTp5PT09bnVsbHx8eT09PTMyfHx5PT09NDF8fEYzKHkpP3QoeSk6KGEuZW50ZXIociksYS5lbnRlcihuKSxhLmVudGVyKGwpLGEuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxiKHkpKX1mdW5jdGlvbiBtKHkpe3JldHVybiB5PT09NjI/KGEuZW50ZXIobyksYS5jb25zdW1lKHkpLGEuZXhpdChvKSxhLmV4aXQoaSksYS5leGl0KHIpLGUpOihhLmVudGVyKGwpLGEuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx2KHkpKX1mdW5jdGlvbiB2KHkpe3JldHVybiB5PT09NjI/KGEuZXhpdCgiY2h1bmtTdHJpbmciKSxhLmV4aXQobCksbSh5KSk6eT09PW51bGx8fHk9PT02MHx8ZXQoeSk/dCh5KTooYS5jb25zdW1lKHkpLHk9PT05Mj94OnYpfWZ1bmN0aW9uIHgoeSl7cmV0dXJuIHk9PT02MHx8eT09PTYyfHx5PT09OTI/KGEuY29uc3VtZSh5KSx2KTp2KHkpfWZ1bmN0aW9uIGIoeSl7cmV0dXJuIXAmJih5PT09bnVsbHx8eT09PTQxfHx1YSh5KSk/KGEuZXhpdCgiY2h1bmtTdHJpbmciKSxhLmV4aXQobCksYS5leGl0KG4pLGEuZXhpdChyKSxlKHkpKTpwPGMmJnk9PT00MD8oYS5jb25zdW1lKHkpLHArKyxiKTp5PT09NDE/KGEuY29uc3VtZSh5KSxwLS0sYik6eT09PW51bGx8fHk9PT0zMnx8eT09PTQwfHxGMyh5KT90KHkpOihhLmNvbnN1bWUoeSkseT09PTkyP2c6Yil9ZnVuY3Rpb24gZyh5KXtyZXR1cm4geT09PTQwfHx5PT09NDF8fHk9PT05Mj8oYS5jb25zdW1lKHkpLGIpOmIoeSl9fXZhciBHNGU9ZigoKT0+e2JhKCk7cyhSUSwiZmFjdG9yeURlc3RpbmF0aW9uIil9KTtmdW5jdGlvbiBPUShhLGUsdCxyLGksbyl7bGV0IG49dGhpcyxsPTAsZDtyZXR1cm4gYztmdW5jdGlvbiBjKHYpe3JldHVybiBhLmVudGVyKHIpLGEuZW50ZXIoaSksYS5jb25zdW1lKHYpLGEuZXhpdChpKSxhLmVudGVyKG8pLHB9ZnVuY3Rpb24gcCh2KXtyZXR1cm4gbD45OTl8fHY9PT1udWxsfHx2PT09OTF8fHY9PT05MyYmIWR8fHY9PT05NCYmIWwmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIG4ucGFyc2VyLmNvbnN0cnVjdHM/dCh2KTp2PT09OTM/KGEuZXhpdChvKSxhLmVudGVyKGkpLGEuY29uc3VtZSh2KSxhLmV4aXQoaSksYS5leGl0KHIpLGUpOmV0KHYpPyhhLmVudGVyKCJsaW5lRW5kaW5nIiksYS5jb25zdW1lKHYpLGEuZXhpdCgibGluZUVuZGluZyIpLHApOihhLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksdSh2KSl9ZnVuY3Rpb24gdSh2KXtyZXR1cm4gdj09PW51bGx8fHY9PT05MXx8dj09PTkzfHxldCh2KXx8bCsrPjk5OT8oYS5leGl0KCJjaHVua1N0cmluZyIpLHAodikpOihhLmNvbnN1bWUodiksZHx8KGQ9IUN0KHYpKSx2PT09OTI/bTp1KX1mdW5jdGlvbiBtKHYpe3JldHVybiB2PT09OTF8fHY9PT05Mnx8dj09PTkzPyhhLmNvbnN1bWUodiksbCsrLHUpOnUodil9fXZhciBZNGU9ZigoKT0+e2JhKCk7cyhPUSwiZmFjdG9yeUxhYmVsIil9KTtmdW5jdGlvbiBGUShhLGUsdCxyLGksbyl7bGV0IG47cmV0dXJuIGw7ZnVuY3Rpb24gbChtKXtyZXR1cm4gbT09PTM0fHxtPT09Mzl8fG09PT00MD8oYS5lbnRlcihyKSxhLmVudGVyKGkpLGEuY29uc3VtZShtKSxhLmV4aXQoaSksbj1tPT09NDA/NDE6bSxkKTp0KG0pfWZ1bmN0aW9uIGQobSl7cmV0dXJuIG09PT1uPyhhLmVudGVyKGkpLGEuY29uc3VtZShtKSxhLmV4aXQoaSksYS5leGl0KHIpLGUpOihhLmVudGVyKG8pLGMobSkpfWZ1bmN0aW9uIGMobSl7cmV0dXJuIG09PT1uPyhhLmV4aXQobyksZChuKSk6bT09PW51bGw/dChtKTpldChtKT8oYS5lbnRlcigibGluZUVuZGluZyIpLGEuY29uc3VtZShtKSxhLmV4aXQoImxpbmVFbmRpbmciKSxEdChhLGMsImxpbmVQcmVmaXgiKSk6KGEuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxwKG0pKX1mdW5jdGlvbiBwKG0pe3JldHVybiBtPT09bnx8bT09PW51bGx8fGV0KG0pPyhhLmV4aXQoImNodW5rU3RyaW5nIiksYyhtKSk6KGEuY29uc3VtZShtKSxtPT09OTI/dTpwKX1mdW5jdGlvbiB1KG0pe3JldHVybiBtPT09bnx8bT09PTkyPyhhLmNvbnN1bWUobSkscCk6cChtKX19dmFyIEs0ZT1mKCgpPT57S3IoKTtiYSgpO3MoRlEsImZhY3RvcnlUaXRsZSIpfSk7ZnVuY3Rpb24gVzMoYSxlKXtsZXQgdDtyZXR1cm4gcjtmdW5jdGlvbiByKGkpe3JldHVybiBldChpKT8oYS5lbnRlcigibGluZUVuZGluZyIpLGEuY29uc3VtZShpKSxhLmV4aXQoImxpbmVFbmRpbmciKSx0PSEwLHIpOkN0KGkpP0R0KGEscix0PyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKGkpOmUoaSl9fXZhciBaNGU9ZigoKT0+e0tyKCk7YmEoKTtzKFczLCJmYWN0b3J5V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gdk1hKGEsZSx0KXtsZXQgcj10aGlzLGk7cmV0dXJuIG87ZnVuY3Rpb24gbyh2KXtyZXR1cm4gYS5lbnRlcigiZGVmaW5pdGlvbiIpLG4odil9ZnVuY3Rpb24gbih2KXtyZXR1cm4gT1EuY2FsbChyLGEsbCx0LCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKSh2KX1mdW5jdGlvbiBsKHYpe3JldHVybiBpPU5yKHIuc2xpY2VTZXJpYWxpemUoci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksdj09PTU4PyhhLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksYS5jb25zdW1lKHYpLGEuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGQpOnQodil9ZnVuY3Rpb24gZCh2KXtyZXR1cm4gdWEodik/VzMoYSxjKSh2KTpjKHYpfWZ1bmN0aW9uIGModil7cmV0dXJuIFJRKGEscCx0LCJkZWZpbml0aW9uRGVzdGluYXRpb24iLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsImRlZmluaXRpb25EZXN0aW5hdGlvblJhdyIsImRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZyIpKHYpfWZ1bmN0aW9uIHAodil7cmV0dXJuIGEuYXR0ZW1wdChiTWEsdSx1KSh2KX1mdW5jdGlvbiB1KHYpe3JldHVybiBDdCh2KT9EdChhLG0sIndoaXRlc3BhY2UiKSh2KTptKHYpfWZ1bmN0aW9uIG0odil7cmV0dXJuIHY9PT1udWxsfHxldCh2KT8oYS5leGl0KCJkZWZpbml0aW9uIiksci5wYXJzZXIuZGVmaW5lZC5wdXNoKGkpLGUodikpOnQodil9fWZ1bmN0aW9uIHhNYShhLGUsdCl7cmV0dXJuIHI7ZnVuY3Rpb24gcihsKXtyZXR1cm4gdWEobCk/VzMoYSxpKShsKTp0KGwpfWZ1bmN0aW9uIGkobCl7cmV0dXJuIEZRKGEsbyx0LCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBDdChsKT9EdChhLG4sIndoaXRlc3BhY2UiKShsKTpuKGwpfWZ1bmN0aW9uIG4obCl7cmV0dXJuIGw9PT1udWxsfHxldChsKT9lKGwpOnQobCl9fXZhciBYNGUsYk1hLCR1dD1mKCgpPT57RzRlKCk7WTRlKCk7S3IoKTtLNGUoKTtaNGUoKTtiYSgpO0YwKCk7WDRlPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTp2TWF9LGJNYT17cGFydGlhbDohMCx0b2tlbml6ZTp4TWF9O3Modk1hLCJ0b2tlbml6ZURlZmluaXRpb24iKTtzKHhNYSwidG9rZW5pemVUaXRsZUJlZm9yZSIpfSk7ZnVuY3Rpb24geU1hKGEsZSx0KXtyZXR1cm4gcjtmdW5jdGlvbiByKG8pe3JldHVybiBhLmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSxhLmNvbnN1bWUobyksaX1mdW5jdGlvbiBpKG8pe3JldHVybiBldChvKT8oYS5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSxlKG8pKTp0KG8pfX12YXIgUTRlLER1dD1mKCgpPT57YmEoKTtRNGU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6eU1hfTtzKHlNYSwidG9rZW5pemVIYXJkQnJlYWtFc2NhcGUiKX0pO2Z1bmN0aW9uIHdNYShhLGUpe2xldCB0PWEubGVuZ3RoLTIscj0zLGksbztyZXR1cm4gYVtyXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYocis9MiksdC0yPnImJmFbdF1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHQtPTIpLGFbdF1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYocj09PXQtMXx8dC00PnImJmFbdC0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHQtPXIrMT09PXQ/Mjo0KSx0PnImJihpPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6YVtyXVsxXS5zdGFydCxlbmQ6YVt0XVsxXS5lbmR9LG89e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6YVtyXVsxXS5zdGFydCxlbmQ6YVt0XVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxZcihhLHIsdC1yKzEsW1siZW50ZXIiLGksZV0sWyJlbnRlciIsbyxlXSxbImV4aXQiLG8sZV0sWyJleGl0IixpLGVdXSkpLGF9ZnVuY3Rpb24gTU1hKGEsZSx0KXtsZXQgcj0wO3JldHVybiBpO2Z1bmN0aW9uIGkocCl7cmV0dXJuIGEuZW50ZXIoImF0eEhlYWRpbmciKSxvKHApfWZ1bmN0aW9uIG8ocCl7cmV0dXJuIGEuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG4ocCl9ZnVuY3Rpb24gbihwKXtyZXR1cm4gcD09PTM1JiZyKys8Nj8oYS5jb25zdW1lKHApLG4pOnA9PT1udWxsfHx1YShwKT8oYS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKHApKTp0KHApfWZ1bmN0aW9uIGwocCl7cmV0dXJuIHA9PT0zNT8oYS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksZChwKSk6cD09PW51bGx8fGV0KHApPyhhLmV4aXQoImF0eEhlYWRpbmciKSxlKHApKTpDdChwKT9EdChhLGwsIndoaXRlc3BhY2UiKShwKTooYS5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxjKHApKX1mdW5jdGlvbiBkKHApe3JldHVybiBwPT09MzU/KGEuY29uc3VtZShwKSxkKTooYS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKHApKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09bnVsbHx8cD09PTM1fHx1YShwKT8oYS5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLGwocCkpOihhLmNvbnN1bWUocCksYyl9fXZhciBKNGUsQXV0PWYoKCk9PntLcigpO2JhKCk7UDIoKTtKNGU9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6d01hLHRva2VuaXplOk1NYX07cyh3TWEsInJlc29sdmVIZWFkaW5nQXR4Iik7cyhNTWEsInRva2VuaXplSGVhZGluZ0F0eCIpfSk7dmFyIFB1dCxlM2UsRXV0PWYoKCk9PntQdXQ9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxlM2U9WyJwcmUiLCJzY3JpcHQiLCJzdHlsZSIsInRleHRhcmVhIl19KTtmdW5jdGlvbiB6TWEoYSl7bGV0IGU9YS5sZW5ndGg7Zm9yKDtlLS0mJiEoYVtlXVswXT09PSJlbnRlciImJmFbZV1bMV0udHlwZT09PSJodG1sRmxvdyIpOyk7cmV0dXJuIGU+MSYmYVtlLTJdWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJihhW2VdWzFdLnN0YXJ0PWFbZS0yXVsxXS5zdGFydCxhW2UrMV1bMV0uc3RhcnQ9YVtlLTJdWzFdLnN0YXJ0LGEuc3BsaWNlKGUtMiwyKSksYX1mdW5jdGlvbiBDTWEoYSxlLHQpe2xldCByPXRoaXMsaSxvLG4sbCxkO3JldHVybiBjO2Z1bmN0aW9uIGMoSSl7cmV0dXJuIHAoSSl9ZnVuY3Rpb24gcChJKXtyZXR1cm4gYS5lbnRlcigiaHRtbEZsb3ciKSxhLmVudGVyKCJodG1sRmxvd0RhdGEiKSxhLmNvbnN1bWUoSSksdX1mdW5jdGlvbiB1KEkpe3JldHVybiBJPT09MzM/KGEuY29uc3VtZShJKSxtKTpJPT09NDc/KGEuY29uc3VtZShJKSxvPSEwLGIpOkk9PT02Mz8oYS5jb25zdW1lKEkpLGk9MyxyLmludGVycnVwdD9lOlIpOkFzKEkpPyhhLmNvbnN1bWUoSSksbj1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLGcpOnQoSSl9ZnVuY3Rpb24gbShJKXtyZXR1cm4gST09PTQ1PyhhLmNvbnN1bWUoSSksaT0yLHYpOkk9PT05MT8oYS5jb25zdW1lKEkpLGk9NSxsPTAseCk6QXMoSSk/KGEuY29uc3VtZShJKSxpPTQsci5pbnRlcnJ1cHQ/ZTpSKTp0KEkpfWZ1bmN0aW9uIHYoSSl7cmV0dXJuIEk9PT00NT8oYS5jb25zdW1lKEkpLHIuaW50ZXJydXB0P2U6Uik6dChJKX1mdW5jdGlvbiB4KEkpe2xldCBxPSJDREFUQVsiO3JldHVybiBJPT09cS5jaGFyQ29kZUF0KGwrKyk/KGEuY29uc3VtZShJKSxsPT09cS5sZW5ndGg/ci5pbnRlcnJ1cHQ/ZTpTOngpOnQoSSl9ZnVuY3Rpb24gYihJKXtyZXR1cm4gQXMoSSk/KGEuY29uc3VtZShJKSxuPVN0cmluZy5mcm9tQ2hhckNvZGUoSSksZyk6dChJKX1mdW5jdGlvbiBnKEkpe2lmKEk9PT1udWxsfHxJPT09NDd8fEk9PT02Mnx8dWEoSSkpe2xldCBxPUk9PT00NyxjZT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIXEmJiFvJiZlM2UuaW5jbHVkZXMoY2UpPyhpPTEsci5pbnRlcnJ1cHQ/ZShJKTpTKEkpKTpQdXQuaW5jbHVkZXMobi50b0xvd2VyQ2FzZSgpKT8oaT02LHE/KGEuY29uc3VtZShJKSx5KTpyLmludGVycnVwdD9lKEkpOlMoSSkpOihpPTcsci5pbnRlcnJ1cHQmJiFyLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0/dChJKTpvP2soSSk6QyhJKSl9cmV0dXJuIEk9PT00NXx8SXIoSSk/KGEuY29uc3VtZShJKSxuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLGcpOnQoSSl9ZnVuY3Rpb24geShJKXtyZXR1cm4gST09PTYyPyhhLmNvbnN1bWUoSSksci5pbnRlcnJ1cHQ/ZTpTKTp0KEkpfWZ1bmN0aW9uIGsoSSl7cmV0dXJuIEN0KEkpPyhhLmNvbnN1bWUoSSksayk6QihJKX1mdW5jdGlvbiBDKEkpe3JldHVybiBJPT09NDc/KGEuY29uc3VtZShJKSxCKTpJPT09NTh8fEk9PT05NXx8QXMoSSk/KGEuY29uc3VtZShJKSxOKTpDdChJKT8oYS5jb25zdW1lKEkpLEMpOkIoSSl9ZnVuY3Rpb24gTihJKXtyZXR1cm4gST09PTQ1fHxJPT09NDZ8fEk9PT01OHx8ST09PTk1fHxJcihJKT8oYS5jb25zdW1lKEkpLE4pOl8oSSl9ZnVuY3Rpb24gXyhJKXtyZXR1cm4gST09PTYxPyhhLmNvbnN1bWUoSSkseik6Q3QoSSk/KGEuY29uc3VtZShJKSxfKTpDKEkpfWZ1bmN0aW9uIHooSSl7cmV0dXJuIEk9PT1udWxsfHxJPT09NjB8fEk9PT02MXx8ST09PTYyfHxJPT09OTY/dChJKTpJPT09MzR8fEk9PT0zOT8oYS5jb25zdW1lKEkpLGQ9SSxPKTpDdChJKT8oYS5jb25zdW1lKEkpLHopOlQoSSl9ZnVuY3Rpb24gTyhJKXtyZXR1cm4gST09PWQ/KGEuY29uc3VtZShJKSxkPW51bGwsUCk6ST09PW51bGx8fGV0KEkpP3QoSSk6KGEuY29uc3VtZShJKSxPKX1mdW5jdGlvbiBUKEkpe3JldHVybiBJPT09bnVsbHx8ST09PTM0fHxJPT09Mzl8fEk9PT00N3x8ST09PTYwfHxJPT09NjF8fEk9PT02Mnx8ST09PTk2fHx1YShJKT9fKEkpOihhLmNvbnN1bWUoSSksVCl9ZnVuY3Rpb24gUChJKXtyZXR1cm4gST09PTQ3fHxJPT09NjJ8fEN0KEkpP0MoSSk6dChJKX1mdW5jdGlvbiBCKEkpe3JldHVybiBJPT09NjI/KGEuY29uc3VtZShJKSxNKTp0KEkpfWZ1bmN0aW9uIE0oSSl7cmV0dXJuIEk9PT1udWxsfHxldChJKT9TKEkpOkN0KEkpPyhhLmNvbnN1bWUoSSksTSk6dChJKX1mdW5jdGlvbiBTKEkpe3JldHVybiBJPT09NDUmJmk9PT0yPyhhLmNvbnN1bWUoSSksVyk6ST09PTYwJiZpPT09MT8oYS5jb25zdW1lKEkpLGopOkk9PT02MiYmaT09PTQ/KGEuY29uc3VtZShJKSxVKTpJPT09NjMmJmk9PT0zPyhhLmNvbnN1bWUoSSksUik6ST09PTkzJiZpPT09NT8oYS5jb25zdW1lKEkpLGhlKTpldChJKSYmKGk9PT02fHxpPT09Nyk/KGEuZXhpdCgiaHRtbEZsb3dEYXRhIiksYS5jaGVjayhrTWEsbWUsRSkoSSkpOkk9PT1udWxsfHxldChJKT8oYS5leGl0KCJodG1sRmxvd0RhdGEiKSxFKEkpKTooYS5jb25zdW1lKEkpLFMpfWZ1bmN0aW9uIEUoSSl7cmV0dXJuIGEuY2hlY2soU01hLEEsbWUpKEkpfWZ1bmN0aW9uIEEoSSl7cmV0dXJuIGEuZW50ZXIoImxpbmVFbmRpbmciKSxhLmNvbnN1bWUoSSksYS5leGl0KCJsaW5lRW5kaW5nIiksRn1mdW5jdGlvbiBGKEkpe3JldHVybiBJPT09bnVsbHx8ZXQoSSk/RShJKTooYS5lbnRlcigiaHRtbEZsb3dEYXRhIiksUyhJKSl9ZnVuY3Rpb24gVyhJKXtyZXR1cm4gST09PTQ1PyhhLmNvbnN1bWUoSSksUik6UyhJKX1mdW5jdGlvbiBqKEkpe3JldHVybiBJPT09NDc/KGEuY29uc3VtZShJKSxuPSIiLEcpOlMoSSl9ZnVuY3Rpb24gRyhJKXtpZihJPT09NjIpe2xldCBxPW4udG9Mb3dlckNhc2UoKTtyZXR1cm4gZTNlLmluY2x1ZGVzKHEpPyhhLmNvbnN1bWUoSSksVSk6UyhJKX1yZXR1cm4gQXMoSSkmJm4ubGVuZ3RoPDg/KGEuY29uc3VtZShJKSxuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLEcpOlMoSSl9ZnVuY3Rpb24gaGUoSSl7cmV0dXJuIEk9PT05Mz8oYS5jb25zdW1lKEkpLFIpOlMoSSl9ZnVuY3Rpb24gUihJKXtyZXR1cm4gST09PTYyPyhhLmNvbnN1bWUoSSksVSk6ST09PTQ1JiZpPT09Mj8oYS5jb25zdW1lKEkpLFIpOlMoSSl9ZnVuY3Rpb24gVShJKXtyZXR1cm4gST09PW51bGx8fGV0KEkpPyhhLmV4aXQoImh0bWxGbG93RGF0YSIpLG1lKEkpKTooYS5jb25zdW1lKEkpLFUpfWZ1bmN0aW9uIG1lKEkpe3JldHVybiBhLmV4aXQoImh0bWxGbG93IiksZShJKX19ZnVuY3Rpb24gX01hKGEsZSx0KXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkobil7cmV0dXJuIGV0KG4pPyhhLmVudGVyKCJsaW5lRW5kaW5nIiksYS5jb25zdW1lKG4pLGEuZXhpdCgibGluZUVuZGluZyIpLG8pOnQobil9ZnVuY3Rpb24gbyhuKXtyZXR1cm4gci5wYXJzZXIubGF6eVtyLm5vdygpLmxpbmVdP3Qobik6ZShuKX19ZnVuY3Rpb24gVE1hKGEsZSx0KXtyZXR1cm4gcjtmdW5jdGlvbiByKGkpe3JldHVybiBhLmVudGVyKCJsaW5lRW5kaW5nIiksYS5jb25zdW1lKGkpLGEuZXhpdCgibGluZUVuZGluZyIpLGEuYXR0ZW1wdChSMixlLHQpfX12YXIgdDNlLGtNYSxTTWEsSXV0PWYoKCk9PntiYSgpO0V1dCgpO0RRKCk7dDNlPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOnpNYSx0b2tlbml6ZTpDTWF9LGtNYT17cGFydGlhbDohMCx0b2tlbml6ZTpUTWF9LFNNYT17cGFydGlhbDohMCx0b2tlbml6ZTpfTWF9O3Moek1hLCJyZXNvbHZlVG9IdG1sRmxvdyIpO3MoQ01hLCJ0b2tlbml6ZUh0bWxGbG93Iik7cyhfTWEsInRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvblN0YXJ0Iik7cyhUTWEsInRva2VuaXplQmxhbmtMaW5lQmVmb3JlIil9KTtmdW5jdGlvbiBMTWEoYSxlLHQpe2xldCByPXRoaXMsaSxvLG47cmV0dXJuIGw7ZnVuY3Rpb24gbChSKXtyZXR1cm4gYS5lbnRlcigiaHRtbFRleHQiKSxhLmVudGVyKCJodG1sVGV4dERhdGEiKSxhLmNvbnN1bWUoUiksZH1mdW5jdGlvbiBkKFIpe3JldHVybiBSPT09MzM/KGEuY29uc3VtZShSKSxjKTpSPT09NDc/KGEuY29uc3VtZShSKSxfKTpSPT09NjM/KGEuY29uc3VtZShSKSxDKTpBcyhSKT8oYS5jb25zdW1lKFIpLFQpOnQoUil9ZnVuY3Rpb24gYyhSKXtyZXR1cm4gUj09PTQ1PyhhLmNvbnN1bWUoUikscCk6Uj09PTkxPyhhLmNvbnN1bWUoUiksbz0wLHgpOkFzKFIpPyhhLmNvbnN1bWUoUiksayk6dChSKX1mdW5jdGlvbiBwKFIpe3JldHVybiBSPT09NDU/KGEuY29uc3VtZShSKSx2KTp0KFIpfWZ1bmN0aW9uIHUoUil7cmV0dXJuIFI9PT1udWxsP3QoUik6Uj09PTQ1PyhhLmNvbnN1bWUoUiksbSk6ZXQoUik/KG49dSxqKFIpKTooYS5jb25zdW1lKFIpLHUpfWZ1bmN0aW9uIG0oUil7cmV0dXJuIFI9PT00NT8oYS5jb25zdW1lKFIpLHYpOnUoUil9ZnVuY3Rpb24gdihSKXtyZXR1cm4gUj09PTYyP1coUik6Uj09PTQ1P20oUik6dShSKX1mdW5jdGlvbiB4KFIpe2xldCBVPSJDREFUQVsiO3JldHVybiBSPT09VS5jaGFyQ29kZUF0KG8rKyk/KGEuY29uc3VtZShSKSxvPT09VS5sZW5ndGg/Yjp4KTp0KFIpfWZ1bmN0aW9uIGIoUil7cmV0dXJuIFI9PT1udWxsP3QoUik6Uj09PTkzPyhhLmNvbnN1bWUoUiksZyk6ZXQoUik/KG49YixqKFIpKTooYS5jb25zdW1lKFIpLGIpfWZ1bmN0aW9uIGcoUil7cmV0dXJuIFI9PT05Mz8oYS5jb25zdW1lKFIpLHkpOmIoUil9ZnVuY3Rpb24geShSKXtyZXR1cm4gUj09PTYyP1coUik6Uj09PTkzPyhhLmNvbnN1bWUoUikseSk6YihSKX1mdW5jdGlvbiBrKFIpe3JldHVybiBSPT09bnVsbHx8Uj09PTYyP1coUik6ZXQoUik/KG49ayxqKFIpKTooYS5jb25zdW1lKFIpLGspfWZ1bmN0aW9uIEMoUil7cmV0dXJuIFI9PT1udWxsP3QoUik6Uj09PTYzPyhhLmNvbnN1bWUoUiksTik6ZXQoUik/KG49QyxqKFIpKTooYS5jb25zdW1lKFIpLEMpfWZ1bmN0aW9uIE4oUil7cmV0dXJuIFI9PT02Mj9XKFIpOkMoUil9ZnVuY3Rpb24gXyhSKXtyZXR1cm4gQXMoUik/KGEuY29uc3VtZShSKSx6KTp0KFIpfWZ1bmN0aW9uIHooUil7cmV0dXJuIFI9PT00NXx8SXIoUik/KGEuY29uc3VtZShSKSx6KTpPKFIpfWZ1bmN0aW9uIE8oUil7cmV0dXJuIGV0KFIpPyhuPU8saihSKSk6Q3QoUik/KGEuY29uc3VtZShSKSxPKTpXKFIpfWZ1bmN0aW9uIFQoUil7cmV0dXJuIFI9PT00NXx8SXIoUik/KGEuY29uc3VtZShSKSxUKTpSPT09NDd8fFI9PT02Mnx8dWEoUik/UChSKTp0KFIpfWZ1bmN0aW9uIFAoUil7cmV0dXJuIFI9PT00Nz8oYS5jb25zdW1lKFIpLFcpOlI9PT01OHx8Uj09PTk1fHxBcyhSKT8oYS5jb25zdW1lKFIpLEIpOmV0KFIpPyhuPVAsaihSKSk6Q3QoUik/KGEuY29uc3VtZShSKSxQKTpXKFIpfWZ1bmN0aW9uIEIoUil7cmV0dXJuIFI9PT00NXx8Uj09PTQ2fHxSPT09NTh8fFI9PT05NXx8SXIoUik/KGEuY29uc3VtZShSKSxCKTpNKFIpfWZ1bmN0aW9uIE0oUil7cmV0dXJuIFI9PT02MT8oYS5jb25zdW1lKFIpLFMpOmV0KFIpPyhuPU0saihSKSk6Q3QoUik/KGEuY29uc3VtZShSKSxNKTpQKFIpfWZ1bmN0aW9uIFMoUil7cmV0dXJuIFI9PT1udWxsfHxSPT09NjB8fFI9PT02MXx8Uj09PTYyfHxSPT09OTY/dChSKTpSPT09MzR8fFI9PT0zOT8oYS5jb25zdW1lKFIpLGk9UixFKTpldChSKT8obj1TLGooUikpOkN0KFIpPyhhLmNvbnN1bWUoUiksUyk6KGEuY29uc3VtZShSKSxBKX1mdW5jdGlvbiBFKFIpe3JldHVybiBSPT09aT8oYS5jb25zdW1lKFIpLGk9dm9pZCAwLEYpOlI9PT1udWxsP3QoUik6ZXQoUik/KG49RSxqKFIpKTooYS5jb25zdW1lKFIpLEUpfWZ1bmN0aW9uIEEoUil7cmV0dXJuIFI9PT1udWxsfHxSPT09MzR8fFI9PT0zOXx8Uj09PTYwfHxSPT09NjF8fFI9PT05Nj90KFIpOlI9PT00N3x8Uj09PTYyfHx1YShSKT9QKFIpOihhLmNvbnN1bWUoUiksQSl9ZnVuY3Rpb24gRihSKXtyZXR1cm4gUj09PTQ3fHxSPT09NjJ8fHVhKFIpP1AoUik6dChSKX1mdW5jdGlvbiBXKFIpe3JldHVybiBSPT09NjI/KGEuY29uc3VtZShSKSxhLmV4aXQoImh0bWxUZXh0RGF0YSIpLGEuZXhpdCgiaHRtbFRleHQiKSxlKTp0KFIpfWZ1bmN0aW9uIGooUil7cmV0dXJuIGEuZXhpdCgiaHRtbFRleHREYXRhIiksYS5lbnRlcigibGluZUVuZGluZyIpLGEuY29uc3VtZShSKSxhLmV4aXQoImxpbmVFbmRpbmciKSxHfWZ1bmN0aW9uIEcoUil7cmV0dXJuIEN0KFIpP0R0KGEsaGUsImxpbmVQcmVmaXgiLHIucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoUik6aGUoUil9ZnVuY3Rpb24gaGUoUil7cmV0dXJuIGEuZW50ZXIoImh0bWxUZXh0RGF0YSIpLG4oUil9fXZhciBhM2UsTnV0PWYoKCk9PntLcigpO2JhKCk7YTNlPXtuYW1lOiJodG1sVGV4dCIsdG9rZW5pemU6TE1hfTtzKExNYSwidG9rZW5pemVIdG1sVGV4dCIpfSk7ZnVuY3Rpb24gUE1hKGEpe2xldCBlPS0xLHQ9W107Zm9yKDsrK2U8YS5sZW5ndGg7KXtsZXQgcj1hW2VdWzFdO2lmKHQucHVzaChhW2VdKSxyLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fHIudHlwZT09PSJsYWJlbExpbmsifHxyLnR5cGU9PT0ibGFiZWxFbmQiKXtsZXQgaT1yLnR5cGU9PT0ibGFiZWxJbWFnZSI/NDoyO3IudHlwZT0iZGF0YSIsZSs9aX19cmV0dXJuIGEubGVuZ3RoIT09dC5sZW5ndGgmJllyKGEsMCxhLmxlbmd0aCx0KSxhfWZ1bmN0aW9uIEVNYShhLGUpe2xldCB0PWEubGVuZ3RoLHI9MCxpLG8sbixsO2Zvcig7dC0tOylpZihpPWFbdF1bMV0sbyl7aWYoaS50eXBlPT09ImxpbmsifHxpLnR5cGU9PT0ibGFiZWxMaW5rIiYmaS5faW5hY3RpdmUpYnJlYWs7YVt0XVswXT09PSJlbnRlciImJmkudHlwZT09PSJsYWJlbExpbmsiJiYoaS5faW5hY3RpdmU9ITApfWVsc2UgaWYobil7aWYoYVt0XVswXT09PSJlbnRlciImJihpLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGkudHlwZT09PSJsYWJlbExpbmsiKSYmIWkuX2JhbGFuY2VkJiYobz10LGkudHlwZSE9PSJsYWJlbExpbmsiKSl7cj0yO2JyZWFrfX1lbHNlIGkudHlwZT09PSJsYWJlbEVuZCImJihuPXQpO2xldCBkPXt0eXBlOmFbb11bMV0udHlwZT09PSJsYWJlbExpbmsiPyJsaW5rIjoiaW1hZ2UiLHN0YXJ0OnsuLi5hW29dWzFdLnN0YXJ0fSxlbmQ6ey4uLmFbYS5sZW5ndGgtMV1bMV0uZW5kfX0sYz17dHlwZToibGFiZWwiLHN0YXJ0OnsuLi5hW29dWzFdLnN0YXJ0fSxlbmQ6ey4uLmFbbl1bMV0uZW5kfX0scD17dHlwZToibGFiZWxUZXh0IixzdGFydDp7Li4uYVtvK3IrMl1bMV0uZW5kfSxlbmQ6ey4uLmFbbi0yXVsxXS5zdGFydH19O3JldHVybiBsPVtbImVudGVyIixkLGVdLFsiZW50ZXIiLGMsZV1dLGw9ZnMobCxhLnNsaWNlKG8rMSxvK3IrMykpLGw9ZnMobCxbWyJlbnRlciIscCxlXV0pLGw9ZnMobCxIMChlLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCxhLnNsaWNlKG8rcis0LG4tMyksZSkpLGw9ZnMobCxbWyJleGl0IixwLGVdLGFbbi0yXSxhW24tMV0sWyJleGl0IixjLGVdXSksbD1mcyhsLGEuc2xpY2UobisxKSksbD1mcyhsLFtbImV4aXQiLGQsZV1dKSxZcihhLG8sYS5sZW5ndGgsbCksYX1mdW5jdGlvbiBJTWEoYSxlLHQpe2xldCByPXRoaXMsaT1yLmV2ZW50cy5sZW5ndGgsbyxuO2Zvcig7aS0tOylpZigoci5ldmVudHNbaV1bMV0udHlwZT09PSJsYWJlbEltYWdlInx8ci5ldmVudHNbaV1bMV0udHlwZT09PSJsYWJlbExpbmsiKSYmIXIuZXZlbnRzW2ldWzFdLl9iYWxhbmNlZCl7bz1yLmV2ZW50c1tpXVsxXTticmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKG0pe3JldHVybiBvP28uX2luYWN0aXZlP3UobSk6KG49ci5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhOcihyLnNsaWNlU2VyaWFsaXplKHtzdGFydDpvLmVuZCxlbmQ6ci5ub3coKX0pKSksYS5lbnRlcigibGFiZWxFbmQiKSxhLmVudGVyKCJsYWJlbE1hcmtlciIpLGEuY29uc3VtZShtKSxhLmV4aXQoImxhYmVsTWFya2VyIiksYS5leGl0KCJsYWJlbEVuZCIpLGQpOnQobSl9ZnVuY3Rpb24gZChtKXtyZXR1cm4gbT09PTQwP2EuYXR0ZW1wdCgkTWEscCxuP3A6dSkobSk6bT09PTkxP2EuYXR0ZW1wdChETWEscCxuP2M6dSkobSk6bj9wKG0pOnUobSl9ZnVuY3Rpb24gYyhtKXtyZXR1cm4gYS5hdHRlbXB0KEFNYSxwLHUpKG0pfWZ1bmN0aW9uIHAobSl7cmV0dXJuIGUobSl9ZnVuY3Rpb24gdShtKXtyZXR1cm4gby5fYmFsYW5jZWQ9ITAsdChtKX19ZnVuY3Rpb24gTk1hKGEsZSx0KXtyZXR1cm4gcjtmdW5jdGlvbiByKHUpe3JldHVybiBhLmVudGVyKCJyZXNvdXJjZSIpLGEuZW50ZXIoInJlc291cmNlTWFya2VyIiksYS5jb25zdW1lKHUpLGEuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxpfWZ1bmN0aW9uIGkodSl7cmV0dXJuIHVhKHUpP1czKGEsbykodSk6byh1KX1mdW5jdGlvbiBvKHUpe3JldHVybiB1PT09NDE/cCh1KTpSUShhLG4sbCwicmVzb3VyY2VEZXN0aW5hdGlvbiIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJyZXNvdXJjZURlc3RpbmF0aW9uUmF3IiwicmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZyIsMzIpKHUpfWZ1bmN0aW9uIG4odSl7cmV0dXJuIHVhKHUpP1czKGEsZCkodSk6cCh1KX1mdW5jdGlvbiBsKHUpe3JldHVybiB0KHUpfWZ1bmN0aW9uIGQodSl7cmV0dXJuIHU9PT0zNHx8dT09PTM5fHx1PT09NDA/RlEoYSxjLHQsInJlc291cmNlVGl0bGUiLCJyZXNvdXJjZVRpdGxlTWFya2VyIiwicmVzb3VyY2VUaXRsZVN0cmluZyIpKHUpOnAodSl9ZnVuY3Rpb24gYyh1KXtyZXR1cm4gdWEodSk/VzMoYSxwKSh1KTpwKHUpfWZ1bmN0aW9uIHAodSl7cmV0dXJuIHU9PT00MT8oYS5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSxhLmNvbnN1bWUodSksYS5leGl0KCJyZXNvdXJjZU1hcmtlciIpLGEuZXhpdCgicmVzb3VyY2UiKSxlKTp0KHUpfX1mdW5jdGlvbiBSTWEoYSxlLHQpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShsKXtyZXR1cm4gT1EuY2FsbChyLGEsbyxuLCJyZWZlcmVuY2UiLCJyZWZlcmVuY2VNYXJrZXIiLCJyZWZlcmVuY2VTdHJpbmciKShsKX1mdW5jdGlvbiBvKGwpe3JldHVybiByLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKE5yKHIuc2xpY2VTZXJpYWxpemUoci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSkpP2UobCk6dChsKX1mdW5jdGlvbiBuKGwpe3JldHVybiB0KGwpfX1mdW5jdGlvbiBPTWEoYSxlLHQpe3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIGEuZW50ZXIoInJlZmVyZW5jZSIpLGEuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLGEuY29uc3VtZShvKSxhLmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLGl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gbz09PTkzPyhhLmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSxhLmNvbnN1bWUobyksYS5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxhLmV4aXQoInJlZmVyZW5jZSIpLGUpOnQobyl9fXZhciBHMywkTWEsRE1hLEFNYSxCUT1mKCgpPT57RzRlKCk7WTRlKCk7SzRlKCk7WjRlKCk7YmEoKTtQMigpO0YwKCk7VWcoKTtHMz17bmFtZToibGFiZWxFbmQiLHJlc29sdmVBbGw6UE1hLHJlc29sdmVUbzpFTWEsdG9rZW5pemU6SU1hfSwkTWE9e3Rva2VuaXplOk5NYX0sRE1hPXt0b2tlbml6ZTpSTWF9LEFNYT17dG9rZW5pemU6T01hfTtzKFBNYSwicmVzb2x2ZUFsbExhYmVsRW5kIik7cyhFTWEsInJlc29sdmVUb0xhYmVsRW5kIik7cyhJTWEsInRva2VuaXplTGFiZWxFbmQiKTtzKE5NYSwidG9rZW5pemVSZXNvdXJjZSIpO3MoUk1hLCJ0b2tlbml6ZVJlZmVyZW5jZUZ1bGwiKTtzKE9NYSwidG9rZW5pemVSZWZlcmVuY2VDb2xsYXBzZWQiKX0pO2Z1bmN0aW9uIEZNYShhLGUsdCl7bGV0IHI9dGhpcztyZXR1cm4gaTtmdW5jdGlvbiBpKGwpe3JldHVybiBhLmVudGVyKCJsYWJlbEltYWdlIiksYS5lbnRlcigibGFiZWxJbWFnZU1hcmtlciIpLGEuY29uc3VtZShsKSxhLmV4aXQoImxhYmVsSW1hZ2VNYXJrZXIiKSxvfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT05MT8oYS5lbnRlcigibGFiZWxNYXJrZXIiKSxhLmNvbnN1bWUobCksYS5leGl0KCJsYWJlbE1hcmtlciIpLGEuZXhpdCgibGFiZWxJbWFnZSIpLG4pOnQobCl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gbD09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiByLnBhcnNlci5jb25zdHJ1Y3RzP3QobCk6ZShsKX19dmFyIHIzZSxSdXQ9ZigoKT0+e0JRKCk7cjNlPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6RzMucmVzb2x2ZUFsbCx0b2tlbml6ZTpGTWF9O3MoRk1hLCJ0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZSIpfSk7ZnVuY3Rpb24gQk1hKGEsZSx0KXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkobil7cmV0dXJuIGEuZW50ZXIoImxhYmVsTGluayIpLGEuZW50ZXIoImxhYmVsTWFya2VyIiksYS5jb25zdW1lKG4pLGEuZXhpdCgibGFiZWxNYXJrZXIiKSxhLmV4aXQoImxhYmVsTGluayIpLG99ZnVuY3Rpb24gbyhuKXtyZXR1cm4gbj09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiByLnBhcnNlci5jb25zdHJ1Y3RzP3Qobik6ZShuKX19dmFyIHMzZSxPdXQ9ZigoKT0+e0JRKCk7czNlPXtuYW1lOiJsYWJlbFN0YXJ0TGluayIscmVzb2x2ZUFsbDpHMy5yZXNvbHZlQWxsLHRva2VuaXplOkJNYX07cyhCTWEsInRva2VuaXplTGFiZWxTdGFydExpbmsiKX0pO2Z1bmN0aW9uIEhNYShhLGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocil7cmV0dXJuIGEuZW50ZXIoImxpbmVFbmRpbmciKSxhLmNvbnN1bWUociksYS5leGl0KCJsaW5lRW5kaW5nIiksRHQoYSxlLCJsaW5lUHJlZml4Iil9fXZhciBaZyxGdXQ9ZigoKT0+e0tyKCk7YmEoKTtaZz17bmFtZToibGluZUVuZGluZyIsdG9rZW5pemU6SE1hfTtzKEhNYSwidG9rZW5pemVMaW5lRW5kaW5nIil9KTtmdW5jdGlvbiBxTWEoYSxlLHQpe2xldCByPTAsaTtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybiBhLmVudGVyKCJ0aGVtYXRpY0JyZWFrIiksbihjKX1mdW5jdGlvbiBuKGMpe3JldHVybiBpPWMsbChjKX1mdW5jdGlvbiBsKGMpe3JldHVybiBjPT09aT8oYS5lbnRlcigidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksZChjKSk6cj49MyYmKGM9PT1udWxsfHxldChjKSk/KGEuZXhpdCgidGhlbWF0aWNCcmVhayIpLGUoYykpOnQoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gYz09PWk/KGEuY29uc3VtZShjKSxyKyssZCk6KGEuZXhpdCgidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksQ3QoYyk/RHQoYSxsLCJ3aGl0ZXNwYWNlIikoYyk6bChjKSl9fXZhciBZMyxpM2U9ZigoKT0+e0tyKCk7YmEoKTtZMz17bmFtZToidGhlbWF0aWNCcmVhayIsdG9rZW5pemU6cU1hfTtzKHFNYSwidG9rZW5pemVUaGVtYXRpY0JyZWFrIil9KTtmdW5jdGlvbiBVTWEoYSxlLHQpe2xldCByPXRoaXMsaT1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV0sbz1pJiZpWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/aVsyXS5zbGljZVNlcmlhbGl6ZShpWzFdLCEwKS5sZW5ndGg6MCxuPTA7cmV0dXJuIGw7ZnVuY3Rpb24gbCh2KXtsZXQgeD1yLmNvbnRhaW5lclN0YXRlLnR5cGV8fCh2PT09NDJ8fHY9PT00M3x8dj09PTQ1PyJsaXN0VW5vcmRlcmVkIjoibGlzdE9yZGVyZWQiKTtpZih4PT09Imxpc3RVbm9yZGVyZWQiPyFyLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8dj09PXIuY29udGFpbmVyU3RhdGUubWFya2VyOkJnKHYpKXtpZihyLmNvbnRhaW5lclN0YXRlLnR5cGV8fChyLmNvbnRhaW5lclN0YXRlLnR5cGU9eCxhLmVudGVyKHgse19jb250YWluZXI6ITB9KSkseD09PSJsaXN0VW5vcmRlcmVkIilyZXR1cm4gYS5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSx2PT09NDJ8fHY9PT00NT9hLmNoZWNrKFkzLHQsYykodik6Yyh2KTtpZighci5pbnRlcnJ1cHR8fHY9PT00OSlyZXR1cm4gYS5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSxhLmVudGVyKCJsaXN0SXRlbVZhbHVlIiksZCh2KX1yZXR1cm4gdCh2KX1mdW5jdGlvbiBkKHYpe3JldHVybiBCZyh2KSYmKytuPDEwPyhhLmNvbnN1bWUodiksZCk6KCFyLmludGVycnVwdHx8bjwyKSYmKHIuY29udGFpbmVyU3RhdGUubWFya2VyP3Y9PT1yLmNvbnRhaW5lclN0YXRlLm1hcmtlcjp2PT09NDF8fHY9PT00Nik/KGEuZXhpdCgibGlzdEl0ZW1WYWx1ZSIpLGModikpOnQodil9ZnVuY3Rpb24gYyh2KXtyZXR1cm4gYS5lbnRlcigibGlzdEl0ZW1NYXJrZXIiKSxhLmNvbnN1bWUodiksYS5leGl0KCJsaXN0SXRlbU1hcmtlciIpLHIuY29udGFpbmVyU3RhdGUubWFya2VyPXIuY29udGFpbmVyU3RhdGUubWFya2VyfHx2LGEuY2hlY2soUjIsci5pbnRlcnJ1cHQ/dDpwLGEuYXR0ZW1wdChWTWEsbSx1KSl9ZnVuY3Rpb24gcCh2KXtyZXR1cm4gci5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPSEwLG8rKyxtKHYpfWZ1bmN0aW9uIHUodil7cmV0dXJuIEN0KHYpPyhhLmVudGVyKCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxhLmNvbnN1bWUodiksYS5leGl0KCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxtKTp0KHYpfWZ1bmN0aW9uIG0odil7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuc2l6ZT1vK3Iuc2xpY2VTZXJpYWxpemUoYS5leGl0KCJsaXN0SXRlbVByZWZpeCIpLCEwKS5sZW5ndGgsZSh2KX19ZnVuY3Rpb24gV01hKGEsZSx0KXtsZXQgcj10aGlzO3JldHVybiByLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLGEuY2hlY2soUjIsaSxvKTtmdW5jdGlvbiBpKGwpe3JldHVybiByLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXIuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fHIuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSxEdChhLGUsImxpc3RJdGVtSW5kZW50IixyLmNvbnRhaW5lclN0YXRlLnNpemUrMSkobCl9cyhpLCJvbkJsYW5rIik7ZnVuY3Rpb24gbyhsKXtyZXR1cm4gci5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8IUN0KGwpPyhyLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxyLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLG4obCkpOihyLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxyLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLGEuYXR0ZW1wdChqTWEsZSxuKShsKSl9cyhvLCJub3RCbGFuayIpO2Z1bmN0aW9uIG4obCl7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxyLmludGVycnVwdD12b2lkIDAsRHQoYSxhLmF0dGVtcHQoVGksZSx0KSwibGluZVByZWZpeCIsci5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShsKX1zKG4sIm5vdEluQ3VycmVudEl0ZW0iKX1mdW5jdGlvbiBHTWEoYSxlLHQpe2xldCByPXRoaXM7cmV0dXJuIER0KGEsaSwibGlzdEl0ZW1JbmRlbnQiLHIuY29udGFpbmVyU3RhdGUuc2l6ZSsxKTtmdW5jdGlvbiBpKG8pe2xldCBuPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbiYmblsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IiYmblsyXS5zbGljZVNlcmlhbGl6ZShuWzFdLCEwKS5sZW5ndGg9PT1yLmNvbnRhaW5lclN0YXRlLnNpemU/ZShvKTp0KG8pfX1mdW5jdGlvbiBZTWEoYSl7YS5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9ZnVuY3Rpb24gS01hKGEsZSx0KXtsZXQgcj10aGlzO3JldHVybiBEdChhLGksImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsci5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KTtmdW5jdGlvbiBpKG8pe2xldCBuPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4hQ3QobykmJm4mJm5bMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiP2Uobyk6dChvKX19dmFyIFRpLFZNYSxqTWEsQnV0PWYoKCk9PntLcigpO2JhKCk7RFEoKTtpM2UoKTtUaT17Y29udGludWF0aW9uOnt0b2tlbml6ZTpXTWF9LGV4aXQ6WU1hLG5hbWU6Imxpc3QiLHRva2VuaXplOlVNYX0sVk1hPXtwYXJ0aWFsOiEwLHRva2VuaXplOktNYX0sak1hPXtwYXJ0aWFsOiEwLHRva2VuaXplOkdNYX07cyhVTWEsInRva2VuaXplTGlzdFN0YXJ0Iik7cyhXTWEsInRva2VuaXplTGlzdENvbnRpbnVhdGlvbiIpO3MoR01hLCJ0b2tlbml6ZUluZGVudCIpO3MoWU1hLCJ0b2tlbml6ZUxpc3RFbmQiKTtzKEtNYSwidG9rZW5pemVMaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKX0pO2Z1bmN0aW9uIFpNYShhLGUpe2xldCB0PWEubGVuZ3RoLHIsaSxvO2Zvcig7dC0tOylpZihhW3RdWzBdPT09ImVudGVyIil7aWYoYVt0XVsxXS50eXBlPT09ImNvbnRlbnQiKXtyPXQ7YnJlYWt9YVt0XVsxXS50eXBlPT09InBhcmFncmFwaCImJihpPXQpfWVsc2UgYVt0XVsxXS50eXBlPT09ImNvbnRlbnQiJiZhLnNwbGljZSh0LDEpLCFvJiZhW3RdWzFdLnR5cGU9PT0iZGVmaW5pdGlvbiImJihvPXQpO2xldCBuPXt0eXBlOiJzZXRleHRIZWFkaW5nIixzdGFydDp7Li4uYVtyXVsxXS5zdGFydH0sZW5kOnsuLi5hW2EubGVuZ3RoLTFdWzFdLmVuZH19O3JldHVybiBhW2ldWzFdLnR5cGU9InNldGV4dEhlYWRpbmdUZXh0IixvPyhhLnNwbGljZShpLDAsWyJlbnRlciIsbixlXSksYS5zcGxpY2UobysxLDAsWyJleGl0IixhW3JdWzFdLGVdKSxhW3JdWzFdLmVuZD17Li4uYVtvXVsxXS5lbmR9KTphW3JdWzFdPW4sYS5wdXNoKFsiZXhpdCIsbixlXSksYX1mdW5jdGlvbiBYTWEoYSxlLHQpe2xldCByPXRoaXMsaTtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe2xldCBwPXIuZXZlbnRzLmxlbmd0aCx1O2Zvcig7cC0tOylpZihyLmV2ZW50c1twXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiZyLmV2ZW50c1twXVsxXS50eXBlIT09ImxpbmVQcmVmaXgiJiZyLmV2ZW50c1twXVsxXS50eXBlIT09ImNvbnRlbnQiKXt1PXIuZXZlbnRzW3BdWzFdLnR5cGU9PT0icGFyYWdyYXBoIjticmVha31yZXR1cm4hci5wYXJzZXIubGF6eVtyLm5vdygpLmxpbmVdJiYoci5pbnRlcnJ1cHR8fHUpPyhhLmVudGVyKCJzZXRleHRIZWFkaW5nTGluZSIpLGk9YyxuKGMpKTp0KGMpfWZ1bmN0aW9uIG4oYyl7cmV0dXJuIGEuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxsKGMpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIGM9PT1pPyhhLmNvbnN1bWUoYyksbCk6KGEuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLEN0KGMpP0R0KGEsZCwibGluZVN1ZmZpeCIpKGMpOmQoYykpfWZ1bmN0aW9uIGQoYyl7cmV0dXJuIGM9PT1udWxsfHxldChjKT8oYS5leGl0KCJzZXRleHRIZWFkaW5nTGluZSIpLGUoYykpOnQoYyl9fXZhciBIUSxIdXQ9ZigoKT0+e0tyKCk7YmEoKTtIUT17bmFtZToic2V0ZXh0VW5kZXJsaW5lIixyZXNvbHZlVG86Wk1hLHRva2VuaXplOlhNYX07cyhaTWEsInJlc29sdmVUb1NldGV4dFVuZGVybGluZSIpO3MoWE1hLCJ0b2tlbml6ZVNldGV4dFVuZGVybGluZSIpfSk7dmFyIHFRPWYoKCk9Pnt5dXQoKTt3dXQoKTtEUSgpO011dCgpO2t1dCgpO1N1dCgpO0N1dCgpO191dCgpO1R1dCgpO0x1dCgpOyR1dCgpO0R1dCgpO0F1dCgpO0l1dCgpO051dCgpO0JRKCk7UnV0KCk7T3V0KCk7RnV0KCk7QnV0KCk7SHV0KCk7aTNlKCl9KTtmdW5jdGlvbiBvM2UoKXtyZXR1cm57ZG9jdW1lbnQ6ezkxOntuYW1lOiJnZm1Gb290bm90ZURlZmluaXRpb24iLHRva2VuaXplOmFrYSxjb250aW51YXRpb246e3Rva2VuaXplOnJrYX0sZXhpdDpza2F9fSx0ZXh0Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVDYWxsIix0b2tlbml6ZTp0a2F9LDkzOntuYW1lOiJnZm1Qb3RlbnRpYWxGb290bm90ZUNhbGwiLGFkZDoiYWZ0ZXIiLHRva2VuaXplOkpNYSxyZXNvbHZlVG86ZWthfX19fWZ1bmN0aW9uIEpNYShhLGUsdCl7bGV0IHI9dGhpcyxpPXIuZXZlbnRzLmxlbmd0aCxvPXIucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KHIucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbjtmb3IoO2ktLTspe2xldCBkPXIuZXZlbnRzW2ldWzFdO2lmKGQudHlwZT09PSJsYWJlbEltYWdlIil7bj1kO2JyZWFrfWlmKGQudHlwZT09PSJnZm1Gb290bm90ZUNhbGwifHxkLnR5cGU9PT0ibGFiZWxMaW5rInx8ZC50eXBlPT09ImxhYmVsInx8ZC50eXBlPT09ImltYWdlInx8ZC50eXBlPT09ImxpbmsiKWJyZWFrfXJldHVybiBsO2Z1bmN0aW9uIGwoZCl7aWYoIW58fCFuLl9iYWxhbmNlZClyZXR1cm4gdChkKTtsZXQgYz1OcihyLnNsaWNlU2VyaWFsaXplKHtzdGFydDpuLmVuZCxlbmQ6ci5ub3coKX0pKTtyZXR1cm4gYy5jb2RlUG9pbnRBdCgwKSE9PTk0fHwhby5pbmNsdWRlcyhjLnNsaWNlKDEpKT90KGQpOihhLmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGEuY29uc3VtZShkKSxhLmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZShkKSl9fWZ1bmN0aW9uIGVrYShhLGUpe2xldCB0PWEubGVuZ3RoLHI7Zm9yKDt0LS07KWlmKGFbdF1bMV0udHlwZT09PSJsYWJlbEltYWdlIiYmYVt0XVswXT09PSJlbnRlciIpe3I9YVt0XVsxXTticmVha31hW3QrMV1bMV0udHlwZT0iZGF0YSIsYVt0KzNdWzFdLnR5cGU9ImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIjtsZXQgaT17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsIixzdGFydDpPYmplY3QuYXNzaWduKHt9LGFbdCszXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sYVthLmxlbmd0aC0xXVsxXS5lbmQpfSxvPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxNYXJrZXIiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYVt0KzNdWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sYVt0KzNdWzFdLmVuZCl9O28uZW5kLmNvbHVtbisrLG8uZW5kLm9mZnNldCsrLG8uZW5kLl9idWZmZXJJbmRleCsrO2xldCBuPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxTdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sby5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGFbYS5sZW5ndGgtMV1bMV0uc3RhcnQpfSxsPXt0eXBlOiJjaHVua1N0cmluZyIsY29udGVudFR5cGU6InN0cmluZyIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxuLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxuLmVuZCl9LGQ9W2FbdCsxXSxhW3QrMl0sWyJlbnRlciIsaSxlXSxhW3QrM10sYVt0KzRdLFsiZW50ZXIiLG8sZV0sWyJleGl0IixvLGVdLFsiZW50ZXIiLG4sZV0sWyJlbnRlciIsbCxlXSxbImV4aXQiLGwsZV0sWyJleGl0IixuLGVdLGFbYS5sZW5ndGgtMl0sYVthLmxlbmd0aC0xXSxbImV4aXQiLGksZV1dO3JldHVybiBhLnNwbGljZSh0LGEubGVuZ3RoLXQrMSwuLi5kKSxhfWZ1bmN0aW9uIHRrYShhLGUsdCl7bGV0IHI9dGhpcyxpPXIucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KHIucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbz0wLG47cmV0dXJuIGw7ZnVuY3Rpb24gbCh1KXtyZXR1cm4gYS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsIiksYS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxhLmNvbnN1bWUodSksYS5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGR9ZnVuY3Rpb24gZCh1KXtyZXR1cm4gdSE9PTk0P3QodSk6KGEuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGEuY29uc3VtZSh1KSxhLmV4aXQoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGEuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpLGEuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsYyl9ZnVuY3Rpb24gYyh1KXtpZihvPjk5OXx8dT09PTkzJiYhbnx8dT09PW51bGx8fHU9PT05MXx8dWEodSkpcmV0dXJuIHQodSk7aWYodT09PTkzKXthLmV4aXQoImNodW5rU3RyaW5nIik7bGV0IG09YS5leGl0KCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKTtyZXR1cm4gaS5pbmNsdWRlcyhOcihyLnNsaWNlU2VyaWFsaXplKG0pKSk/KGEuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksYS5jb25zdW1lKHUpLGEuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxhLmV4aXQoImdmbUZvb3Rub3RlQ2FsbCIpLGUpOnQodSl9cmV0dXJuIHVhKHUpfHwobj0hMCksbysrLGEuY29uc3VtZSh1KSx1PT09OTI/cDpjfWZ1bmN0aW9uIHAodSl7cmV0dXJuIHU9PT05MXx8dT09PTkyfHx1PT09OTM/KGEuY29uc3VtZSh1KSxvKyssYyk6Yyh1KX19ZnVuY3Rpb24gYWthKGEsZSx0KXtsZXQgcj10aGlzLGk9ci5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoci5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKSxvLG49MCxsO3JldHVybiBkO2Z1bmN0aW9uIGQoeCl7cmV0dXJuIGEuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpLl9jb250YWluZXI9ITAsYS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxhLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGEuY29uc3VtZSh4KSxhLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksY31mdW5jdGlvbiBjKHgpe3JldHVybiB4PT09OTQ/KGEuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLGEuY29uc3VtZSh4KSxhLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLGEuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiksYS5lbnRlcigiY2h1bmtTdHJpbmciKS5jb250ZW50VHlwZT0ic3RyaW5nIixwKTp0KHgpfWZ1bmN0aW9uIHAoeCl7aWYobj45OTl8fHg9PT05MyYmIWx8fHg9PT1udWxsfHx4PT09OTF8fHVhKHgpKXJldHVybiB0KHgpO2lmKHg9PT05Myl7YS5leGl0KCJjaHVua1N0cmluZyIpO2xldCBiPWEuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtyZXR1cm4gbz1OcihyLnNsaWNlU2VyaWFsaXplKGIpKSxhLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGEuY29uc3VtZSh4KSxhLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksYS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCIpLG19cmV0dXJuIHVhKHgpfHwobD0hMCksbisrLGEuY29uc3VtZSh4KSx4PT09OTI/dTpwfWZ1bmN0aW9uIHUoeCl7cmV0dXJuIHg9PT05MXx8eD09PTkyfHx4PT09OTM/KGEuY29uc3VtZSh4KSxuKysscCk6cCh4KX1mdW5jdGlvbiBtKHgpe3JldHVybiB4PT09NTg/KGEuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSxhLmNvbnN1bWUoeCksYS5leGl0KCJkZWZpbml0aW9uTWFya2VyIiksaS5pbmNsdWRlcyhvKXx8aS5wdXNoKG8pLER0KGEsdiwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZSIpKTp0KHgpfWZ1bmN0aW9uIHYoeCl7cmV0dXJuIGUoeCl9fWZ1bmN0aW9uIHJrYShhLGUsdCl7cmV0dXJuIGEuY2hlY2soUjIsZSxhLmF0dGVtcHQoUU1hLGUsdCkpfWZ1bmN0aW9uIHNrYShhKXthLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpfWZ1bmN0aW9uIGlrYShhLGUsdCl7bGV0IHI9dGhpcztyZXR1cm4gRHQoYSxpLCJnZm1Gb290bm90ZURlZmluaXRpb25JbmRlbnQiLDUpO2Z1bmN0aW9uIGkobyl7bGV0IG49ci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBuJiZuWzFdLnR5cGU9PT0iZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50IiYmblsyXS5zbGljZVNlcmlhbGl6ZShuWzFdLCEwKS5sZW5ndGg9PT00P2Uobyk6dChvKX19dmFyIFFNYSxxdXQ9ZigoKT0+e3FRKCk7S3IoKTtiYSgpO0YwKCk7UU1hPXt0b2tlbml6ZTppa2EscGFydGlhbDohMH07cyhvM2UsImdmbUZvb3Rub3RlIik7cyhKTWEsInRva2VuaXplUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsIik7cyhla2EsInJlc29sdmVUb1BvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIpO3ModGthLCJ0b2tlbml6ZUdmbUZvb3Rub3RlQ2FsbCIpO3MoYWthLCJ0b2tlbml6ZURlZmluaXRpb25TdGFydCIpO3MocmthLCJ0b2tlbml6ZURlZmluaXRpb25Db250aW51YXRpb24iKTtzKHNrYSwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uRW5kIik7cyhpa2EsInRva2VuaXplSW5kZW50Iil9KTtmdW5jdGlvbiBWdXQoYSxlKXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisoYSsxKSsoZT4xPyItIitlOiIiKX1mdW5jdGlvbiBuM2UoYSl7bGV0IGU9YXx8bmthLHQ9ZS5sYWJlbHx8IkZvb3Rub3RlcyIscj1lLmxhYmVsVGFnTmFtZXx8ImgyIixpPWUubGFiZWxBdHRyaWJ1dGVzPT09bnVsbHx8ZS5sYWJlbEF0dHJpYnV0ZXM9PT12b2lkIDA/J2NsYXNzPSJzci1vbmx5Iic6ZS5sYWJlbEF0dHJpYnV0ZXMsbz1lLmJhY2tMYWJlbHx8VnV0LG49ZS5jbG9iYmVyUHJlZml4PT09bnVsbHx8ZS5jbG9iYmVyUHJlZml4PT09dm9pZCAwPyJ1c2VyLWNvbnRlbnQtIjplLmNsb2JiZXJQcmVmaXg7cmV0dXJue2VudGVyOntnZm1Gb290bm90ZURlZmluaXRpb24oKXt0aGlzLmdldERhdGEoInRpZ2h0U3RhY2siKS5wdXNoKCExKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcoKXt0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcoKXt0aGlzLmJ1ZmZlcigpfX0sZXhpdDp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIiksZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIiksYz10aGlzLmdldERhdGEoInRpZ2h0U3RhY2siKSxwPWQucG9wKCksdT10aGlzLnJlc3VtZSgpO2x8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIsbD17fSksb2thLmNhbGwobCxwKXx8KGxbcF09dSksYy5wb3AoKSx0aGlzLnNldERhdGEoInNsdXJwT25lTGluZUVuZGluZyIsITApLHRoaXMuc2V0RGF0YSgibGFzdFdhc1RhZyIpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyhsKXtsZXQgZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIik7ZHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIsZD1bXSksZC5wdXNoKE5yKHRoaXMuc2xpY2VTZXJpYWxpemUobCkpKSx0aGlzLnJlc3VtZSgpLHRoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZyhsKXtsZXQgZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIiksYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpLHA9TnIodGhpcy5zbGljZVNlcmlhbGl6ZShsKSksdTt0aGlzLnJlc3VtZSgpLGR8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiLGQ9W10pLGN8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIixjPXt9KTtsZXQgbT1kLmluZGV4T2YocCksdj1JMihwLnRvTG93ZXJDYXNlKCkpO209PT0tMT8oZC5wdXNoKHApLGNbcF09MSx1PWQubGVuZ3RoKTooY1twXSsrLHU9bSsxKTtsZXQgeD1jW3BdO3RoaXMudGFnKCc8c3VwPjxhIGhyZWY9IiMnK24rImZuLSIrdisnIiBpZD0iJytuKyJmbnJlZi0iK3YrKHg+MT8iLSIreDoiIikrJyIgZGF0YS1mb290bm90ZS1yZWY9IiIgYXJpYS1kZXNjcmliZWRieT0iZm9vdG5vdGUtbGFiZWwiPicrU3RyaW5nKHUpKyI8L2E+PC9zdXA+Iil9LG51bGwoKXtsZXQgbD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIil8fFtdLGQ9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKXx8e30sYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKXx8e30scD0tMTtmb3IobC5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxzZWN0aW9uIGRhdGEtZm9vdG5vdGVzPSIiIGNsYXNzPSJmb290bm90ZXMiPjwnK3IrJyBpZD0iZm9vdG5vdGUtbGFiZWwiJysoaT8iICIraToiIikrIj4iKSx0aGlzLnJhdyh0aGlzLmVuY29kZSh0KSksdGhpcy50YWcoIjwvIityKyI+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPG9sPiIpKTsrK3A8bC5sZW5ndGg7KXtsZXQgdT1sW3BdLG09STIodS50b0xvd2VyQ2FzZSgpKSx2PTAseD1bXTtmb3IoOysrdjw9ZFt1XTspeC5wdXNoKCc8YSBocmVmPSIjJytuKyJmbnJlZi0iK20rKHY+MT8iLSIrdjoiIikrJyIgZGF0YS1mb290bm90ZS1iYWNrcmVmPSIiIGFyaWEtbGFiZWw9IicrdGhpcy5lbmNvZGUodHlwZW9mIG89PSJzdHJpbmciP286byhwLHYpKSsnIiBjbGFzcz0iZGF0YS1mb290bm90ZS1iYWNrcmVmIj5cdTIxQTknKyh2PjE/IjxzdXA+Iit2KyI8L3N1cD4iOiIiKSsiPC9hPiIpO2xldCBiPXguam9pbigiICIpLGc9ITE7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPGxpIGlkPSInK24rImZuLSIrbSsnIj4nKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKGNbdV0ucmVwbGFjZSgvPFwvcD4oPzpccj9cbnxccik/JC8sZnVuY3Rpb24oeSl7cmV0dXJuIGc9ITAsIiAiK2IreX0pKSxnfHwodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyhiKSksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9saT4iKX1sLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9vbD4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3NlY3Rpb24+IikpfX19fXZhciBva2EsbmthLGp1dD1mKCgpPT57RjAoKTtOMigpO29rYT17fS5oYXNPd25Qcm9wZXJ0eSxua2E9e307cyhWdXQsImRlZmF1bHRCYWNrTGFiZWwiKTtzKG4zZSwiZ2ZtRm9vdG5vdGVIdG1sIil9KTt2YXIgVXV0PWYoKCk9PntxdXQoKTtqdXQoKX0pO2Z1bmN0aW9uIGwzZSgpe3JldHVybntlbnRlcjp7c3RyaWtldGhyb3VnaCgpe3RoaXMudGFnKCI8ZGVsPiIpfX0sZXhpdDp7c3RyaWtldGhyb3VnaCgpe3RoaXMudGFnKCI8L2RlbD4iKX19fX12YXIgV3V0PWYoKCk9PntzKGwzZSwiZ2ZtU3RyaWtldGhyb3VnaEh0bWwiKX0pO2Z1bmN0aW9uIGMzZShhKXtsZXQgdD0oYXx8e30pLnNpbmdsZVRpbGRlLHI9e25hbWU6InN0cmlrZXRocm91Z2giLHRva2VuaXplOm8scmVzb2x2ZUFsbDppfTtyZXR1cm4gdD09bnVsbCYmKHQ9ITApLHt0ZXh0OnsxMjY6cn0saW5zaWRlU3Bhbjp7bnVsbDpbcl19LGF0dGVudGlvbk1hcmtlcnM6e251bGw6WzEyNl19fTtmdW5jdGlvbiBpKG4sbCl7bGV0IGQ9LTE7Zm9yKDsrK2Q8bi5sZW5ndGg7KWlmKG5bZF1bMF09PT0iZW50ZXIiJiZuW2RdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmbltkXVsxXS5fY2xvc2Upe2xldCBjPWQ7Zm9yKDtjLS07KWlmKG5bY11bMF09PT0iZXhpdCImJm5bY11bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZuW2NdWzFdLl9vcGVuJiZuW2RdWzFdLmVuZC5vZmZzZXQtbltkXVsxXS5zdGFydC5vZmZzZXQ9PT1uW2NdWzFdLmVuZC5vZmZzZXQtbltjXVsxXS5zdGFydC5vZmZzZXQpe25bZF1bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIixuW2NdWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSI7bGV0IHA9e3R5cGU6InN0cmlrZXRocm91Z2giLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sbltjXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sbltkXVsxXS5lbmQpfSx1PXt0eXBlOiJzdHJpa2V0aHJvdWdoVGV4dCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxuW2NdWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sbltkXVsxXS5zdGFydCl9LG09W1siZW50ZXIiLHAsbF0sWyJlbnRlciIsbltjXVsxXSxsXSxbImV4aXQiLG5bY11bMV0sbF0sWyJlbnRlciIsdSxsXV0sdj1sLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbDt2JiZZcihtLG0ubGVuZ3RoLDAsSDAodixuLnNsaWNlKGMrMSxkKSxsKSksWXIobSxtLmxlbmd0aCwwLFtbImV4aXQiLHUsbF0sWyJlbnRlciIsbltkXVsxXSxsXSxbImV4aXQiLG5bZF1bMV0sbF0sWyJleGl0IixwLGxdXSksWXIobixjLTEsZC1jKzMsbSksZD1jK20ubGVuZ3RoLTI7YnJlYWt9fWZvcihkPS0xOysrZDxuLmxlbmd0aDspbltkXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJihuW2RdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gbn1zKGksInJlc29sdmVBbGxTdHJpa2V0aHJvdWdoIik7ZnVuY3Rpb24gbyhuLGwsZCl7bGV0IGM9dGhpcy5wcmV2aW91cyxwPXRoaXMuZXZlbnRzLHU9MDtyZXR1cm4gbTtmdW5jdGlvbiBtKHgpe3JldHVybiBjPT09MTI2JiZwW3AubGVuZ3RoLTFdWzFdLnR5cGUhPT0iY2hhcmFjdGVyRXNjYXBlIj9kKHgpOihuLmVudGVyKCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSx2KHgpKX1mdW5jdGlvbiB2KHgpe2xldCBiPUJsKGMpO2lmKHg9PT0xMjYpcmV0dXJuIHU+MT9kKHgpOihuLmNvbnN1bWUoeCksdSsrLHYpO2lmKHU8MiYmIXQpcmV0dXJuIGQoeCk7bGV0IGc9bi5leGl0KCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSx5PUJsKHgpO3JldHVybiBnLl9vcGVuPSF5fHx5PT09MiYmISFiLGcuX2Nsb3NlPSFifHxiPT09MiYmISF5LGwoeCl9fXMobywidG9rZW5pemVTdHJpa2V0aHJvdWdoIil9dmFyIEd1dD1mKCgpPT57UDIoKTt4USgpO1VnKCk7cyhjM2UsImdmbVN0cmlrZXRocm91Z2giKX0pO3ZhciBZdXQ9ZigoKT0+e1d1dCgpO0d1dCgpfSk7ZnVuY3Rpb24gdTNlKCl7cmV0dXJue2VudGVyOnt0YWJsZShhKXtsZXQgZT1hLl9hbGlnbjt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGFibGU+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIixlKX0sdGFibGVCb2R5KCl7dGhpcy50YWcoIjx0Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IGE9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIiksdD1kM2VbYVtlXV07dD09PXZvaWQgMD90aGlzLmJ1ZmZlcigpOih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK3QrIj4iKSl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgYT10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSx0PWQzZVthW2VdXTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGgiK3QrIj4iKX0sdGFibGVSb3coKXt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIiwwKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dHI+Iil9fSxleGl0Ontjb2RlVGV4dERhdGEoYSl7bGV0IGU9dGhpcy5zbGljZVNlcmlhbGl6ZShhKTt0aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxsa2EpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShlKSl9LHRhYmxlKCl7dGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIiksdGhpcy5zZXREYXRhKCJzbHVycEFsbExpbmVFbmRpbmdzIiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90YWJsZT4iKX0sdGFibGVCb2R5KCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IGE9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7ZSBpbiBhPyh0aGlzLnRhZygiPC90ZD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKzEpKTp0aGlzLnJlc3VtZSgpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCBhPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTt0aGlzLnRhZygiPC90aD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixhKzEpfSx0YWJsZVJvdygpe2xldCBhPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2Zvcig7ZTxhLmxlbmd0aDspdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIitkM2VbYVtlXV0rIj48L3RkPiIpLGUrKzt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RyPiIpfX19fWZ1bmN0aW9uIGxrYShhLGUpe3JldHVybiBlPT09InwiP2U6YX12YXIgZDNlLEt1dD1mKCgpPT57ZDNlPXtub25lOiIiLGxlZnQ6JyBhbGlnbj0ibGVmdCInLHJpZ2h0OicgYWxpZ249InJpZ2h0IicsY2VudGVyOicgYWxpZ249ImNlbnRlciInfTtzKHUzZSwiZ2ZtVGFibGVIdG1sIik7cyhsa2EsInJlcGxhY2UiKX0pO2Z1bmN0aW9uIGNrYShhLGUsdCxyKXtsZXQgaT0wO2lmKCEodD09PTAmJnIubGVuZ3RoPT09MCkpe2Zvcig7aTxhLm1hcC5sZW5ndGg7KXtpZihhLm1hcFtpXVswXT09PWUpe2EubWFwW2ldWzFdKz10LGEubWFwW2ldWzJdLnB1c2goLi4ucik7cmV0dXJufWkrPTF9YS5tYXAucHVzaChbZSx0LHJdKX19dmFyIFZRLFp1dD1mKCgpPT57VlE9Y2xhc3N7c3RhdGlje3ModGhpcywiRWRpdE1hcCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5tYXA9W119YWRkKGUsdCxyKXtja2EodGhpcyxlLHQscil9Y29uc3VtZShlKXtpZih0aGlzLm1hcC5zb3J0KGZ1bmN0aW9uKG8sbil7cmV0dXJuIG9bMF0tblswXX0pLHRoaXMubWFwLmxlbmd0aD09PTApcmV0dXJuO2xldCB0PXRoaXMubWFwLmxlbmd0aCxyPVtdO2Zvcig7dD4wOyl0LT0xLHIucHVzaChlLnNsaWNlKHRoaXMubWFwW3RdWzBdK3RoaXMubWFwW3RdWzFdKSx0aGlzLm1hcFt0XVsyXSksZS5sZW5ndGg9dGhpcy5tYXBbdF1bMF07ci5wdXNoKGUuc2xpY2UoKSksZS5sZW5ndGg9MDtsZXQgaT1yLnBvcCgpO2Zvcig7aTspe2ZvcihsZXQgbyBvZiBpKWUucHVzaChvKTtpPXIucG9wKCl9dGhpcy5tYXAubGVuZ3RoPTB9fTtzKGNrYSwiYWRkSW1wbGVtZW50YXRpb24iKX0pO2Z1bmN0aW9uIFh1dChhLGUpe2xldCB0PSExLHI9W107Zm9yKDtlPGEubGVuZ3RoOyl7bGV0IGk9YVtlXTtpZih0KXtpZihpWzBdPT09ImVudGVyIilpWzFdLnR5cGU9PT0idGFibGVDb250ZW50IiYmci5wdXNoKGFbZSsxXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIj8ibGVmdCI6Im5vbmUiKTtlbHNlIGlmKGlbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiKXtpZihhW2UtMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciIpe2xldCBvPXIubGVuZ3RoLTE7cltvXT1yW29dPT09ImxlZnQiPyJjZW50ZXIiOiJyaWdodCJ9fWVsc2UgaWYoaVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IilicmVha31lbHNlIGlbMF09PT0iZW50ZXIiJiZpWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciJiYodD0hMCk7ZSs9MX1yZXR1cm4gcn12YXIgUXV0PWYoKCk9PntzKFh1dCwiZ2ZtVGFibGVBbGlnbiIpfSk7ZnVuY3Rpb24gcDNlKCl7cmV0dXJue2Zsb3c6e251bGw6e25hbWU6InRhYmxlIix0b2tlbml6ZTpka2EscmVzb2x2ZUFsbDp1a2F9fX19ZnVuY3Rpb24gZGthKGEsZSx0KXtsZXQgcj10aGlzLGk9MCxvPTAsbjtyZXR1cm4gbDtmdW5jdGlvbiBsKEIpe2xldCBNPXIuZXZlbnRzLmxlbmd0aC0xO2Zvcig7TT4tMTspe2xldCBBPXIuZXZlbnRzW01dWzFdLnR5cGU7aWYoQT09PSJsaW5lRW5kaW5nInx8QT09PSJsaW5lUHJlZml4IilNLS07ZWxzZSBicmVha31sZXQgUz1NPi0xP3IuZXZlbnRzW01dWzFdLnR5cGU6bnVsbCxFPVM9PT0idGFibGVIZWFkInx8Uz09PSJ0YWJsZVJvdyI/ejpkO3JldHVybiBFPT09eiYmci5wYXJzZXIubGF6eVtyLm5vdygpLmxpbmVdP3QoQik6RShCKX1mdW5jdGlvbiBkKEIpe3JldHVybiBhLmVudGVyKCJ0YWJsZUhlYWQiKSxhLmVudGVyKCJ0YWJsZVJvdyIpLGMoQil9ZnVuY3Rpb24gYyhCKXtyZXR1cm4gQj09PTEyNHx8KG49ITAsbys9MSkscChCKX1mdW5jdGlvbiBwKEIpe3JldHVybiBCPT09bnVsbD90KEIpOmV0KEIpP28+MT8obz0wLHIuaW50ZXJydXB0PSEwLGEuZXhpdCgidGFibGVSb3ciKSxhLmVudGVyKCJsaW5lRW5kaW5nIiksYS5jb25zdW1lKEIpLGEuZXhpdCgibGluZUVuZGluZyIpLHYpOnQoQik6Q3QoQik/RHQoYSxwLCJ3aGl0ZXNwYWNlIikoQik6KG8rPTEsbiYmKG49ITEsaSs9MSksQj09PTEyND8oYS5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLGEuY29uc3VtZShCKSxhLmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxuPSEwLHApOihhLmVudGVyKCJkYXRhIiksdShCKSkpfWZ1bmN0aW9uIHUoQil7cmV0dXJuIEI9PT1udWxsfHxCPT09MTI0fHx1YShCKT8oYS5leGl0KCJkYXRhIikscChCKSk6KGEuY29uc3VtZShCKSxCPT09OTI/bTp1KX1mdW5jdGlvbiBtKEIpe3JldHVybiBCPT09OTJ8fEI9PT0xMjQ/KGEuY29uc3VtZShCKSx1KTp1KEIpfWZ1bmN0aW9uIHYoQil7cmV0dXJuIHIuaW50ZXJydXB0PSExLHIucGFyc2VyLmxhenlbci5ub3coKS5saW5lXT90KEIpOihhLmVudGVyKCJ0YWJsZURlbGltaXRlclJvdyIpLG49ITEsQ3QoQik/RHQoYSx4LCJsaW5lUHJlZml4IixyLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEIpOngoQikpfWZ1bmN0aW9uIHgoQil7cmV0dXJuIEI9PT00NXx8Qj09PTU4P2coQik6Qj09PTEyND8obj0hMCxhLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksYS5jb25zdW1lKEIpLGEuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLGIpOl8oQil9ZnVuY3Rpb24gYihCKXtyZXR1cm4gQ3QoQik/RHQoYSxnLCJ3aGl0ZXNwYWNlIikoQik6ZyhCKX1mdW5jdGlvbiBnKEIpe3JldHVybiBCPT09NTg/KG8rPTEsbj0hMCxhLmVudGVyKCJ0YWJsZURlbGltaXRlck1hcmtlciIpLGEuY29uc3VtZShCKSxhLmV4aXQoInRhYmxlRGVsaW1pdGVyTWFya2VyIikseSk6Qj09PTQ1PyhvKz0xLHkoQikpOkI9PT1udWxsfHxldChCKT9OKEIpOl8oQil9ZnVuY3Rpb24geShCKXtyZXR1cm4gQj09PTQ1PyhhLmVudGVyKCJ0YWJsZURlbGltaXRlckZpbGxlciIpLGsoQikpOl8oQil9ZnVuY3Rpb24gayhCKXtyZXR1cm4gQj09PTQ1PyhhLmNvbnN1bWUoQiksayk6Qj09PTU4PyhuPSEwLGEuZXhpdCgidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxhLmVudGVyKCJ0YWJsZURlbGltaXRlck1hcmtlciIpLGEuY29uc3VtZShCKSxhLmV4aXQoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksQyk6KGEuZXhpdCgidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxDKEIpKX1mdW5jdGlvbiBDKEIpe3JldHVybiBDdChCKT9EdChhLE4sIndoaXRlc3BhY2UiKShCKTpOKEIpfWZ1bmN0aW9uIE4oQil7cmV0dXJuIEI9PT0xMjQ/eChCKTpCPT09bnVsbHx8ZXQoQik/IW58fGkhPT1vP18oQik6KGEuZXhpdCgidGFibGVEZWxpbWl0ZXJSb3ciKSxhLmV4aXQoInRhYmxlSGVhZCIpLGUoQikpOl8oQil9ZnVuY3Rpb24gXyhCKXtyZXR1cm4gdChCKX1mdW5jdGlvbiB6KEIpe3JldHVybiBhLmVudGVyKCJ0YWJsZVJvdyIpLE8oQil9ZnVuY3Rpb24gTyhCKXtyZXR1cm4gQj09PTEyND8oYS5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLGEuY29uc3VtZShCKSxhLmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxPKTpCPT09bnVsbHx8ZXQoQik/KGEuZXhpdCgidGFibGVSb3ciKSxlKEIpKTpDdChCKT9EdChhLE8sIndoaXRlc3BhY2UiKShCKTooYS5lbnRlcigiZGF0YSIpLFQoQikpfWZ1bmN0aW9uIFQoQil7cmV0dXJuIEI9PT1udWxsfHxCPT09MTI0fHx1YShCKT8oYS5leGl0KCJkYXRhIiksTyhCKSk6KGEuY29uc3VtZShCKSxCPT09OTI/UDpUKX1mdW5jdGlvbiBQKEIpe3JldHVybiBCPT09OTJ8fEI9PT0xMjQ/KGEuY29uc3VtZShCKSxUKTpUKEIpfX1mdW5jdGlvbiB1a2EoYSxlKXtsZXQgdD0tMSxyPSEwLGk9MCxvPVswLDAsMCwwXSxuPVswLDAsMCwwXSxsPSExLGQ9MCxjLHAsdSxtPW5ldyBWUTtmb3IoOysrdDxhLmxlbmd0aDspe2xldCB2PWFbdF0seD12WzFdO3ZbMF09PT0iZW50ZXIiP3gudHlwZT09PSJ0YWJsZUhlYWQiPyhsPSExLGQhPT0wJiYoSnV0KG0sZSxkLGMscCkscD12b2lkIDAsZD0wKSxjPXt0eXBlOiJ0YWJsZSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx4LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx4LmVuZCl9LG0uYWRkKHQsMCxbWyJlbnRlciIsYyxlXV0pKTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhyPSEwLHU9dm9pZCAwLG89WzAsMCwwLDBdLG49WzAsdCsxLDAsMF0sbCYmKGw9ITEscD17dHlwZToidGFibGVCb2R5IixzdGFydDpPYmplY3QuYXNzaWduKHt9LHguc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHguZW5kKX0sbS5hZGQodCwwLFtbImVudGVyIixwLGVdXSkpLGk9eC50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8yOnA/MzoxKTppJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKT8ocj0hMSxuWzJdPT09MCYmKG9bMV0hPT0wJiYoblswXT1uWzFdLHU9alEobSxlLG8saSx2b2lkIDAsdSksbz1bMCwwLDAsMF0pLG5bMl09dCkpOngudHlwZT09PSJ0YWJsZUNlbGxEaXZpZGVyIiYmKHI/cj0hMToob1sxXSE9PTAmJihuWzBdPW5bMV0sdT1qUShtLGUsbyxpLHZvaWQgMCx1KSksbz1uLG49W29bMV0sdCwwLDBdKSk6eC50eXBlPT09InRhYmxlSGVhZCI/KGw9ITAsZD10KTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhkPXQsb1sxXSE9PTA/KG5bMF09blsxXSx1PWpRKG0sZSxvLGksdCx1KSk6blsxXSE9PTAmJih1PWpRKG0sZSxuLGksdCx1KSksaT0wKTppJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKSYmKG5bM109dCl9Zm9yKGQhPT0wJiZKdXQobSxlLGQsYyxwKSxtLmNvbnN1bWUoZS5ldmVudHMpLHQ9LTE7Kyt0PGUuZXZlbnRzLmxlbmd0aDspe2xldCB2PWUuZXZlbnRzW3RdO3ZbMF09PT0iZW50ZXIiJiZ2WzFdLnR5cGU9PT0idGFibGUiJiYodlsxXS5fYWxpZ249WHV0KGUuZXZlbnRzLHQpKX1yZXR1cm4gYX1mdW5jdGlvbiBqUShhLGUsdCxyLGksbyl7bGV0IG49cj09PTE/InRhYmxlSGVhZGVyIjpyPT09Mj8idGFibGVEZWxpbWl0ZXIiOiJ0YWJsZURhdGEiLGw9InRhYmxlQ29udGVudCI7dFswXSE9PTAmJihvLmVuZD1PYmplY3QuYXNzaWduKHt9LHc4KGUuZXZlbnRzLHRbMF0pKSxhLmFkZCh0WzBdLDAsW1siZXhpdCIsbyxlXV0pKTtsZXQgZD13OChlLmV2ZW50cyx0WzFdKTtpZihvPXt0eXBlOm4sc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxkKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxkKX0sYS5hZGQodFsxXSwwLFtbImVudGVyIixvLGVdXSksdFsyXSE9PTApe2xldCBjPXc4KGUuZXZlbnRzLHRbMl0pLHA9dzgoZS5ldmVudHMsdFszXSksdT17dHlwZTpsLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYyksZW5kOk9iamVjdC5hc3NpZ24oe30scCl9O2lmKGEuYWRkKHRbMl0sMCxbWyJlbnRlciIsdSxlXV0pLHIhPT0yKXtsZXQgbT1lLmV2ZW50c1t0WzJdXSx2PWUuZXZlbnRzW3RbM11dO2lmKG1bMV0uZW5kPU9iamVjdC5hc3NpZ24oe30sdlsxXS5lbmQpLG1bMV0udHlwZT0iY2h1bmtUZXh0IixtWzFdLmNvbnRlbnRUeXBlPSJ0ZXh0Iix0WzNdPnRbMl0rMSl7bGV0IHg9dFsyXSsxLGI9dFszXS10WzJdLTE7YS5hZGQoeCxiLFtdKX19YS5hZGQodFszXSsxLDAsW1siZXhpdCIsdSxlXV0pfXJldHVybiBpIT09dm9pZCAwJiYoby5lbmQ9T2JqZWN0LmFzc2lnbih7fSx3OChlLmV2ZW50cyxpKSksYS5hZGQoaSwwLFtbImV4aXQiLG8sZV1dKSxvPXZvaWQgMCksb31mdW5jdGlvbiBKdXQoYSxlLHQscixpKXtsZXQgbz1bXSxuPXc4KGUuZXZlbnRzLHQpO2kmJihpLmVuZD1PYmplY3QuYXNzaWduKHt9LG4pLG8ucHVzaChbImV4aXQiLGksZV0pKSxyLmVuZD1PYmplY3QuYXNzaWduKHt9LG4pLG8ucHVzaChbImV4aXQiLHIsZV0pLGEuYWRkKHQrMSwwLG8pfWZ1bmN0aW9uIHc4KGEsZSl7bGV0IHQ9YVtlXSxyPXRbMF09PT0iZW50ZXIiPyJzdGFydCI6ImVuZCI7cmV0dXJuIHRbMV1bcl19dmFyIGVwdD1mKCgpPT57S3IoKTtiYSgpO1p1dCgpO1F1dCgpO3MocDNlLCJnZm1UYWJsZSIpO3MoZGthLCJ0b2tlbml6ZVRhYmxlIik7cyh1a2EsInJlc29sdmVUYWJsZSIpO3MoalEsImZsdXNoQ2VsbCIpO3MoSnV0LCJmbHVzaFRhYmxlRW5kIik7cyh3OCwiZ2V0UG9pbnQiKX0pO3ZhciB0cHQ9ZigoKT0+e0t1dCgpO2VwdCgpfSk7ZnVuY3Rpb24gZjNlKCl7cmV0dXJue2V4aXQ6e2h0bWxGbG93RGF0YShhKXtycHQuY2FsbCh0aGlzLGEsYXB0KX0saHRtbFRleHREYXRhKGEpe3JwdC5jYWxsKHRoaXMsYSxwa2EpfX19fWZ1bmN0aW9uIHJwdChhLGUpe2xldCB0PXRoaXMuc2xpY2VTZXJpYWxpemUoYSk7dGhpcy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCYmKHQ9dC5yZXBsYWNlKGUsIiZsdDskMSQyIikpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHQpKX12YXIgYXB0LHBrYSxzcHQ9ZigoKT0+e2FwdD0vPChcLz8pKGlmcmFtZXxub2VtYmVkfG5vZnJhbWVzfHBsYWludGV4dHxzY3JpcHR8c3R5bGV8dGl0bGV8dGV4dGFyZWF8eG1wKSg/PVtcdFxuXGZcciAvPl0pL2dpLHBrYT1uZXcgUmVnRXhwKCJeIithcHQuc291cmNlLCJpIik7cyhmM2UsImdmbVRhZ2ZpbHRlckh0bWwiKTtzKHJwdCwiZXhpdEh0bWxEYXRhIil9KTt2YXIgaXB0PWYoKCk9PntzcHQoKX0pO2Z1bmN0aW9uIGgzZSgpe3JldHVybntlbnRlcjp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPSIiICcpfX0sZXhpdDp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCIvPiIpfSx0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCl7dGhpcy50YWcoJ2NoZWNrZWQ9IiIgJyl9fX19dmFyIG9wdD1mKCgpPT57cyhoM2UsImdmbVRhc2tMaXN0SXRlbUh0bWwiKX0pO2Z1bmN0aW9uIG0zZSgpe3JldHVybnt0ZXh0Ons5MTpma2F9fX1mdW5jdGlvbiBoa2EoYSxlLHQpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShkKXtyZXR1cm4gci5wcmV2aW91cyE9PW51bGx8fCFyLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/dChkKTooYS5lbnRlcigidGFza0xpc3RDaGVjayIpLGEuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxhLmNvbnN1bWUoZCksYS5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbyl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gdWEoZCk/KGEuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLGEuY29uc3VtZShkKSxhLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLG4pOmQ9PT04OHx8ZD09PTEyMD8oYS5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLGEuY29uc3VtZShkKSxhLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxuKTp0KGQpfWZ1bmN0aW9uIG4oZCl7cmV0dXJuIGQ9PT05Mz8oYS5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLGEuY29uc3VtZShkKSxhLmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxhLmV4aXQoInRhc2tMaXN0Q2hlY2siKSxsKTp0KGQpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGV0KGQpP2UoZCk6Q3QoZCk/YS5jaGVjayh7dG9rZW5pemU6bWthfSxlLHQpKGQpOnQoZCl9fWZ1bmN0aW9uIG1rYShhLGUsdCl7cmV0dXJuIER0KGEsciwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGk9PT1udWxsP3QoaSk6ZShpKX19dmFyIGZrYSxucHQ9ZigoKT0+e0tyKCk7YmEoKTtma2E9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOmhrYX07cyhtM2UsImdmbVRhc2tMaXN0SXRlbSIpO3MoaGthLCJ0b2tlbml6ZVRhc2tsaXN0Q2hlY2siKTtzKG1rYSwic3BhY2VUaGVuTm9uU3BhY2UiKX0pO3ZhciBscHQ9ZigoKT0+e29wdCgpO25wdCgpfSk7ZnVuY3Rpb24gY3B0KGEpe3JldHVybiBfUShbTzRlKCksbzNlKCksYzNlKGEpLHAzZSgpLG0zZSgpXSl9ZnVuY3Rpb24ga0tyKGEpe3JldHVybiBUUShbSDRlKCksbjNlKGEpLGwzZSgpLHUzZSgpLGYzZSgpLGgzZSgpXSl9dmFyIGRwdD1mKCgpPT57TFEoKTt2dXQoKTtVdXQoKTtZdXQoKTt0cHQoKTtpcHQoKTtscHQoKTtzKGNwdCwiZ2ZtIik7cyhrS3IsImdmbUh0bWwiKX0pO2Z1bmN0aW9uIE04KGEpe2xldCBlPXRoaXMsdD1hfHxna2Escj1lLmRhdGEoKSxpPXIubWljcm9tYXJrRXh0ZW5zaW9uc3x8KHIubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbz1yLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChyLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG49ci50b01hcmtkb3duRXh0ZW5zaW9uc3x8KHIudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO2kucHVzaChjcHQodCkpLG8ucHVzaChQNGUoKSksbi5wdXNoKEU0ZSh0KSl9dmFyIGdrYSx1cHQ9ZigoKT0+e251dCgpO2RwdCgpO2drYT17fTtzKE04LCJyZW1hcmtHZm0iKX0pO3ZhciBwcHQ9ZigoKT0+e3VwdCgpfSk7ZnVuY3Rpb24gZzNlKGEpe2xldCBlPWF8fHt9LHQ9ITAscj17fSxpPVtbXV0sbz1bXSxuPVtdLGQ9VFEoW3tlbnRlcjp7YmxvY2tRdW90ZTpGLGNvZGVGZW5jZWQ6aGUsY29kZUZlbmNlZEZlbmNlSW5mbzpnLGNvZGVGZW5jZWRGZW5jZU1ldGE6Zyxjb2RlSW5kZW50ZWQ6bWUsY29kZVRleHQ6ZmUsY29udGVudDp6ZSxkZWZpbml0aW9uOnllLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpILGRlZmluaXRpb25MYWJlbFN0cmluZzpnLGRlZmluaXRpb25UaXRsZVN0cmluZzpnLGVtcGhhc2lzOndlLGh0bWxGbG93Om50LGh0bWxUZXh0OlRlLGltYWdlOnEsbGFiZWw6ZyxsaW5rOmNlLGxpc3RJdGVtTWFya2VyOk0sbGlzdEl0ZW1WYWx1ZTpCLGxpc3RPcmRlcmVkOlQsbGlzdFVub3JkZXJlZDpQLHBhcmFncmFwaDpqLHJlZmVyZW5jZTpnLHJlc291cmNlOkoscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpaLHJlc291cmNlVGl0bGVTdHJpbmc6ZyxzZXRleHRIZWFkaW5nOnFlLHN0cm9uZzpSZX0sZXhpdDp7YXR4SGVhZGluZzokZSxhdHhIZWFkaW5nU2VxdWVuY2U6T2UsYXV0b2xpbmtFbWFpbDp3cyxhdXRvbGlua1Byb3RvY29sOkphLGJsb2NrUXVvdGU6VyxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpkZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpJdCxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOkl0LGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOlhhLGNvZGVGZW5jZWQ6SSxjb2RlRmVuY2VkRmVuY2U6VSxjb2RlRmVuY2VkRmVuY2VJbmZvOlIsY29kZUZlbmNlZEZlbmNlTWV0YTpPLGNvZGVGbG93VmFsdWU6QWUsY29kZUluZGVudGVkOkksY29kZVRleHQ6YmUsY29kZVRleHREYXRhOmRlLGRhdGE6ZGUsZGVmaW5pdGlvbjp0ZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6b2UsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOlYsZGVmaW5pdGlvblRpdGxlU3RyaW5nOnNlLGVtcGhhc2lzOkVlLGhhcmRCcmVha0VzY2FwZTpaZSxoYXJkQnJlYWtUcmFpbGluZzpaZSxodG1sRmxvdzp6dCxodG1sRmxvd0RhdGE6ZGUsaHRtbFRleHQ6enQsaHRtbFRleHREYXRhOmRlLGltYWdlOnJlLGxhYmVsOlksbGFiZWxUZXh0OnVlLGxpbmVFbmRpbmc6dmUsbGluazpyZSxsaXN0T3JkZXJlZDpTLGxpc3RVbm9yZGVyZWQ6RSxwYXJhZ3JhcGg6RyxyZWZlcmVuY2U6TyxyZWZlcmVuY2VTdHJpbmc6USxyZXNvdXJjZTpPLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6Z2UscmVzb3VyY2VUaXRsZVN0cmluZzphZSxzZXRleHRIZWFkaW5nOk1lLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6Q2Usc2V0ZXh0SGVhZGluZ1RleHQ6ZHQsc3Ryb25nOmZ0LHRoZW1hdGljQnJlYWs6bXR9fSwuLi5lLmh0bWxFeHRlbnNpb25zfHxbXV0pLGM9e2RlZmluaXRpb25zOnIsdGlnaHRTdGFjazpufSxwPXtidWZmZXI6ZyxlbmNvZGU6eixnZXREYXRhOmIsbGluZUVuZGluZ0lmTmVlZGVkOl8sb3B0aW9uczplLHJhdzpDLHJlc3VtZTp5LHNldERhdGE6eCx0YWc6a30sdT1lLmRlZmF1bHRMaW5lRW5kaW5nO3JldHVybiBtO2Z1bmN0aW9uIG0oVWUpe2xldCB1dD0tMSxRYT0wLE1yPVtdLCRyPVtdLFZyPVtdO2Zvcig7Kyt1dDxVZS5sZW5ndGg7KSF1JiYoVWVbdXRdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fFVlW3V0XVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpJiYodT1VZVt1dF1bMl0uc2xpY2VTZXJpYWxpemUoVWVbdXRdWzFdKSksKFVlW3V0XVsxXS50eXBlPT09Imxpc3RPcmRlcmVkInx8VWVbdXRdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpJiYoVWVbdXRdWzBdPT09ImVudGVyIj9Nci5wdXNoKHV0KTp2KFVlLnNsaWNlKE1yLnBvcCgpLHV0KSkpLFVlW3V0XVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYoVWVbdXRdWzBdPT09ImVudGVyIj8oVnI9ZnMoVnIsVWUuc2xpY2UoUWEsdXQpKSxRYT11dCk6KCRyPWZzKCRyLFVlLnNsaWNlKFFhLHV0KzEpKSxRYT11dCsxKSk7JHI9ZnMoJHIsVnIpLCRyPWZzKCRyLFVlLnNsaWNlKFFhKSksdXQ9LTE7bGV0IERyPSRyO2ZvcihkLmVudGVyLm51bGwmJmQuZW50ZXIubnVsbC5jYWxsKHApOysrdXQ8VWUubGVuZ3RoOyl7bGV0IHhvPWRbRHJbdXRdWzBdXSx5bz1Eclt1dF1bMV0udHlwZSxMZT14b1t5b107ZnB0LmNhbGwoeG8seW8pJiZMZSYmTGUuY2FsbCh7c2xpY2VTZXJpYWxpemU6RHJbdXRdWzJdLnNsaWNlU2VyaWFsaXplLC4uLnB9LERyW3V0XVsxXSl9cmV0dXJuIGQuZXhpdC5udWxsJiZkLmV4aXQubnVsbC5jYWxsKHApLGlbMF0uam9pbigiIil9ZnVuY3Rpb24gdihVZSl7bGV0IHV0PVVlLmxlbmd0aCxRYT0wLE1yPTAsJHI9ITEsVnI7Zm9yKDsrK1FhPHV0Oyl7bGV0IERyPVVlW1FhXTtpZihEclsxXS5fY29udGFpbmVyKVZyPXZvaWQgMCxEclswXT09PSJlbnRlciI/TXIrKzpNci0tO2Vsc2Ugc3dpdGNoKERyWzFdLnR5cGUpe2Nhc2UibGlzdEl0ZW1QcmVmaXgiOntEclswXT09PSJleGl0IiYmKFZyPSEwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmJyZWFrO2Nhc2UibGluZUVuZGluZ0JsYW5rIjp7RHJbMF09PT0iZW50ZXIiJiYhTXImJihWcj9Wcj12b2lkIDA6JHI9ITApO2JyZWFrfWRlZmF1bHQ6VnI9dm9pZCAwfX1VZVswXVsxXS5fbG9vc2U9JHJ9ZnVuY3Rpb24geChVZSx1dCl7Y1tVZV09dXR9ZnVuY3Rpb24gYihVZSl7cmV0dXJuIGNbVWVdfWZ1bmN0aW9uIGcoKXtpLnB1c2goW10pfWZ1bmN0aW9uIHkoKXtyZXR1cm4gaS5wb3AoKS5qb2luKCIiKX1mdW5jdGlvbiBrKFVlKXt0JiYoeCgibGFzdFdhc1RhZyIsITApLGlbaS5sZW5ndGgtMV0ucHVzaChVZSkpfWZ1bmN0aW9uIEMoVWUpe3goImxhc3RXYXNUYWciKSxpW2kubGVuZ3RoLTFdLnB1c2goVWUpfWZ1bmN0aW9uIE4oKXtDKHV8fGAKYCl9ZnVuY3Rpb24gXygpe2xldCBVZT1pW2kubGVuZ3RoLTFdLHV0PVVlW1VlLmxlbmd0aC0xXSxRYT11dD91dC5jaGFyQ29kZUF0KHV0Lmxlbmd0aC0xKTpudWxsO1FhPT09MTB8fFFhPT09MTN8fFFhPT09bnVsbHx8TigpfWZ1bmN0aW9uIHooVWUpe3JldHVybiBiKCJpZ25vcmVFbmNvZGUiKT9VZTokUShVZSl9ZnVuY3Rpb24gTygpe3koKX1mdW5jdGlvbiBUKFVlKXtuLnB1c2goIVVlLl9sb29zZSksXygpLGsoIjxvbCIpLHgoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIFAoVWUpe24ucHVzaCghVWUuX2xvb3NlKSxfKCksaygiPHVsIikseCgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gQihVZSl7aWYoYigiZXhwZWN0Rmlyc3RJdGVtIikpe2xldCB1dD1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShVZSksMTApO3V0IT09MSYmaygnIHN0YXJ0PSInK3ooU3RyaW5nKHV0KSkrJyInKX19ZnVuY3Rpb24gTSgpe2IoImV4cGVjdEZpcnN0SXRlbSIpP2soIj4iKTpBKCksXygpLGsoIjxsaT4iKSx4KCJleHBlY3RGaXJzdEl0ZW0iKSx4KCJsYXN0V2FzVGFnIil9ZnVuY3Rpb24gUygpe0EoKSxuLnBvcCgpLE4oKSxrKCI8L29sPiIpfWZ1bmN0aW9uIEUoKXtBKCksbi5wb3AoKSxOKCksaygiPC91bD4iKX1mdW5jdGlvbiBBKCl7YigibGFzdFdhc1RhZyIpJiYhYigic2x1cnBBbGxMaW5lRW5kaW5ncyIpJiZfKCksaygiPC9saT4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRigpe24ucHVzaCghMSksXygpLGsoIjxibG9ja3F1b3RlPiIpfWZ1bmN0aW9uIFcoKXtuLnBvcCgpLF8oKSxrKCI8L2Jsb2NrcXVvdGU+IikseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIGooKXtuW24ubGVuZ3RoLTFdfHwoXygpLGsoIjxwPiIpKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRygpe25bbi5sZW5ndGgtMV0/eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApOmsoIjwvcD4iKX1mdW5jdGlvbiBoZSgpe18oKSxrKCI8cHJlPjxjb2RlIikseCgiZmVuY2VzQ291bnQiLDApfWZ1bmN0aW9uIFIoKXtsZXQgVWU9eSgpO2soJyBjbGFzcz0ibGFuZ3VhZ2UtJytVZSsnIicpfWZ1bmN0aW9uIFUoKXtsZXQgVWU9YigiZmVuY2VzQ291bnQiKXx8MDtVZXx8KGsoIj4iKSx4KCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSkseCgiZmVuY2VzQ291bnQiLFVlKzEpfWZ1bmN0aW9uIG1lKCl7XygpLGsoIjxwcmU+PGNvZGU+Iil9ZnVuY3Rpb24gSSgpe2xldCBVZT1iKCJmZW5jZXNDb3VudCIpO1VlIT09dm9pZCAwJiZVZTwyJiZjLnRpZ2h0U3RhY2subGVuZ3RoPjAmJiFiKCJsYXN0V2FzVGFnIikmJk4oKSxiKCJmbG93Q29kZVNlZW5EYXRhIikmJl8oKSxrKCI8L2NvZGU+PC9wcmU+IiksVWUhPT12b2lkIDAmJlVlPDImJl8oKSx4KCJmbG93Q29kZVNlZW5EYXRhIikseCgiZmVuY2VzQ291bnQiKSx4KCJzbHVycE9uZUxpbmVFbmRpbmciKX1mdW5jdGlvbiBxKCl7by5wdXNoKHtpbWFnZTohMH0pLHQ9dm9pZCAwfWZ1bmN0aW9uIGNlKCl7by5wdXNoKHt9KX1mdW5jdGlvbiB1ZShVZSl7b1tvLmxlbmd0aC0xXS5sYWJlbElkPXRoaXMuc2xpY2VTZXJpYWxpemUoVWUpfWZ1bmN0aW9uIFkoKXtvW28ubGVuZ3RoLTFdLmxhYmVsPXkoKX1mdW5jdGlvbiBRKFVlKXtvW28ubGVuZ3RoLTFdLnJlZmVyZW5jZUlkPXRoaXMuc2xpY2VTZXJpYWxpemUoVWUpfWZ1bmN0aW9uIEooKXtnKCksb1tvLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj0iIn1mdW5jdGlvbiBaKCl7ZygpLHgoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIGdlKCl7b1tvLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj15KCkseCgiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gYWUoKXtvW28ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiByZSgpe2xldCBVZT1vLmxlbmd0aC0xLHV0PW9bVWVdLFFhPXV0LnJlZmVyZW5jZUlkfHx1dC5sYWJlbElkLE1yPXV0LmRlc3RpbmF0aW9uPT09dm9pZCAwP3JbTnIoUWEpXTp1dDtmb3IodD0hMDtVZS0tOylpZihvW1VlXS5pbWFnZSl7dD12b2lkIDA7YnJlYWt9dXQuaW1hZ2U/KGsoJzxpbWcgc3JjPSInK0kyKE1yLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6YmthKSsnIiBhbHQ9IicpLEModXQubGFiZWwpLGsoJyInKSk6aygnPGEgaHJlZj0iJytJMihNci5kZXN0aW5hdGlvbixlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOmhwdCkrJyInKSxrKE1yLnRpdGxlPycgdGl0bGU9IicrTXIudGl0bGUrJyInOiIiKSx1dC5pbWFnZT9rKCIgLz4iKTooaygiPiIpLEModXQubGFiZWwpLGsoIjwvYT4iKSksby5wb3AoKX1mdW5jdGlvbiB5ZSgpe2coKSxvLnB1c2goe30pfWZ1bmN0aW9uIFYoVWUpe3koKSxvW28ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShVZSl9ZnVuY3Rpb24gSCgpe2coKSx4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBvZSgpe29bby5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHgoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIHNlKCl7b1tvLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gdGUoKXtsZXQgVWU9b1tvLmxlbmd0aC0xXSx1dD1OcihVZS5sYWJlbElkKTt5KCksZnB0LmNhbGwocix1dCl8fChyW3V0XT1vW28ubGVuZ3RoLTFdKSxvLnBvcCgpfWZ1bmN0aW9uIHplKCl7eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIE9lKFVlKXtiKCJoZWFkaW5nUmFuayIpfHwoeCgiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoVWUpLmxlbmd0aCksXygpLGsoIjxoIitiKCJoZWFkaW5nUmFuayIpKyI+IikpfWZ1bmN0aW9uIHFlKCl7ZygpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBkdCgpe3goInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiAkZSgpe2soIjwvaCIrYigiaGVhZGluZ1JhbmsiKSsiPiIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gQ2UoVWUpe3goImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKFVlKS5jaGFyQ29kZUF0KDApPT09NjE/MToyKX1mdW5jdGlvbiBNZSgpe2xldCBVZT15KCk7XygpLGsoIjxoIitiKCJoZWFkaW5nUmFuayIpKyI+IiksQyhVZSksaygiPC9oIitiKCJoZWFkaW5nUmFuayIpKyI+IikseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gZGUoVWUpe0Moeih0aGlzLnNsaWNlU2VyaWFsaXplKFVlKSkpfWZ1bmN0aW9uIHZlKFVlKXtpZighYigic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZihiKCJzbHVycE9uZUxpbmVFbmRpbmciKSl7eCgic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKGIoImluQ29kZVRleHQiKSl7QygiICIpO3JldHVybn1DKHoodGhpcy5zbGljZVNlcmlhbGl6ZShVZSkpKX19ZnVuY3Rpb24gQWUoVWUpe0Moeih0aGlzLnNsaWNlU2VyaWFsaXplKFVlKSkpLHgoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBaZSgpe2soIjxiciAvPiIpfWZ1bmN0aW9uIG50KCl7XygpLFRlKCl9ZnVuY3Rpb24genQoKXt4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBUZSgpe2UuYWxsb3dEYW5nZXJvdXNIdG1sJiZ4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiB3ZSgpe2soIjxlbT4iKX1mdW5jdGlvbiBSZSgpe2soIjxzdHJvbmc+Iil9ZnVuY3Rpb24gZmUoKXt4KCJpbkNvZGVUZXh0IiwhMCksaygiPGNvZGU+Iil9ZnVuY3Rpb24gYmUoKXt4KCJpbkNvZGVUZXh0IiksaygiPC9jb2RlPiIpfWZ1bmN0aW9uIEVlKCl7aygiPC9lbT4iKX1mdW5jdGlvbiBmdCgpe2soIjwvc3Ryb25nPiIpfWZ1bmN0aW9uIG10KCl7XygpLGsoIjxociAvPiIpfWZ1bmN0aW9uIEl0KFVlKXt4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixVZS50eXBlKX1mdW5jdGlvbiBYYShVZSl7bGV0IHV0PXRoaXMuc2xpY2VTZXJpYWxpemUoVWUpLFFhPWIoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT95OCh1dCxiKCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpOkIwKHV0KTtDKHooUWEpKSx4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIil9ZnVuY3Rpb24gSmEoVWUpe2xldCB1dD10aGlzLnNsaWNlU2VyaWFsaXplKFVlKTtrKCc8YSBocmVmPSInK0kyKHV0LGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6aHB0KSsnIj4nKSxDKHoodXQpKSxrKCI8L2E+Iil9ZnVuY3Rpb24gd3MoVWUpe2xldCB1dD10aGlzLnNsaWNlU2VyaWFsaXplKFVlKTtrKCc8YSBocmVmPSInK0kyKCJtYWlsdG86Iit1dCkrJyI+JyksQyh6KHV0KSksaygiPC9hPiIpfX12YXIgZnB0LGhwdCxia2EsYjNlPWYoKCk9PntqZygpO1AyKCk7TFEoKTtTUSgpO0Y0ZSgpO0YwKCk7TjIoKTtmcHQ9e30uaGFzT3duUHJvcGVydHksaHB0PS9eKGh0dHBzP3xpcmNzP3xtYWlsdG98eG1wcCkkL2ksYmthPS9eaHR0cHM/JC9pO3MoZzNlLCJjb21waWxlIil9KTtmdW5jdGlvbiB2a2EoYSl7bGV0IGU9YS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuY29udGVudEluaXRpYWwscixpKSx0O3JldHVybiBlO2Z1bmN0aW9uIHIobCl7aWYobD09PW51bGwpe2EuY29uc3VtZShsKTtyZXR1cm59cmV0dXJuIGEuZW50ZXIoImxpbmVFbmRpbmciKSxhLmNvbnN1bWUobCksYS5leGl0KCJsaW5lRW5kaW5nIiksRHQoYSxlLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gaShsKXtyZXR1cm4gYS5lbnRlcigicGFyYWdyYXBoIiksbyhsKX1mdW5jdGlvbiBvKGwpe2xldCBkPWEuZW50ZXIoImNodW5rVGV4dCIse2NvbnRlbnRUeXBlOiJ0ZXh0IixwcmV2aW91czp0fSk7cmV0dXJuIHQmJih0Lm5leHQ9ZCksdD1kLG4obCl9ZnVuY3Rpb24gbihsKXtpZihsPT09bnVsbCl7YS5leGl0KCJjaHVua1RleHQiKSxhLmV4aXQoInBhcmFncmFwaCIpLGEuY29uc3VtZShsKTtyZXR1cm59cmV0dXJuIGV0KGwpPyhhLmNvbnN1bWUobCksYS5leGl0KCJjaHVua1RleHQiKSxvKTooYS5jb25zdW1lKGwpLG4pfX12YXIgbXB0LGdwdD1mKCgpPT57S3IoKTtiYSgpO21wdD17dG9rZW5pemU6dmthfTtzKHZrYSwiaW5pdGlhbGl6ZUNvbnRlbnQiKX0pO2Z1bmN0aW9uIHhrYShhKXtsZXQgZT10aGlzLHQ9W10scj0wLGksbyxuO3JldHVybiBsO2Z1bmN0aW9uIGwoQyl7aWYocjx0Lmxlbmd0aCl7bGV0IE49dFtyXTtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT1OWzFdLGEuYXR0ZW1wdChOWzBdLmNvbnRpbnVhdGlvbixkLGMpKEMpfXJldHVybiBjKEMpfWZ1bmN0aW9uIGQoQyl7aWYocisrLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyl7ZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxpJiZrKCk7bGV0IE49ZS5ldmVudHMubGVuZ3RoLF89Tix6O2Zvcig7Xy0tOylpZihlLmV2ZW50c1tfXVswXT09PSJleGl0IiYmZS5ldmVudHNbX11bMV0udHlwZT09PSJjaHVua0Zsb3ciKXt6PWUuZXZlbnRzW19dWzFdLmVuZDticmVha315KHIpO2xldCBPPU47Zm9yKDtPPGUuZXZlbnRzLmxlbmd0aDspZS5ldmVudHNbT11bMV0uZW5kPXsuLi56fSxPKys7cmV0dXJuIFlyKGUuZXZlbnRzLF8rMSwwLGUuZXZlbnRzLnNsaWNlKE4pKSxlLmV2ZW50cy5sZW5ndGg9TyxjKEMpfXJldHVybiBsKEMpfWZ1bmN0aW9uIGMoQyl7aWYocj09PXQubGVuZ3RoKXtpZighaSlyZXR1cm4gbShDKTtpZihpLmN1cnJlbnRDb25zdHJ1Y3QmJmkuY3VycmVudENvbnN0cnVjdC5jb25jcmV0ZSlyZXR1cm4geChDKTtlLmludGVycnVwdD0hIShpLmN1cnJlbnRDb25zdHJ1Y3QmJiFpLl9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrKX1yZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSxhLmNoZWNrKGJwdCxwLHUpKEMpfWZ1bmN0aW9uIHAoQyl7cmV0dXJuIGkmJmsoKSx5KHIpLG0oQyl9ZnVuY3Rpb24gdShDKXtyZXR1cm4gZS5wYXJzZXIubGF6eVtlLm5vdygpLmxpbmVdPXIhPT10Lmxlbmd0aCxuPWUubm93KCkub2Zmc2V0LHgoQyl9ZnVuY3Rpb24gbShDKXtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSxhLmF0dGVtcHQoYnB0LHYseCkoQyl9ZnVuY3Rpb24gdihDKXtyZXR1cm4gcisrLHQucHVzaChbZS5jdXJyZW50Q29uc3RydWN0LGUuY29udGFpbmVyU3RhdGVdKSxtKEMpfWZ1bmN0aW9uIHgoQyl7aWYoQz09PW51bGwpe2kmJmsoKSx5KDApLGEuY29uc3VtZShDKTtyZXR1cm59cmV0dXJuIGk9aXx8ZS5wYXJzZXIuZmxvdyhlLm5vdygpKSxhLmVudGVyKCJjaHVua0Zsb3ciLHtfdG9rZW5pemVyOmksY29udGVudFR5cGU6ImZsb3ciLHByZXZpb3VzOm99KSxiKEMpfWZ1bmN0aW9uIGIoQyl7aWYoQz09PW51bGwpe2coYS5leGl0KCJjaHVua0Zsb3ciKSwhMCkseSgwKSxhLmNvbnN1bWUoQyk7cmV0dXJufXJldHVybiBldChDKT8oYS5jb25zdW1lKEMpLGcoYS5leGl0KCJjaHVua0Zsb3ciKSkscj0wLGUuaW50ZXJydXB0PXZvaWQgMCxsKTooYS5jb25zdW1lKEMpLGIpfWZ1bmN0aW9uIGcoQyxOKXtsZXQgXz1lLnNsaWNlU3RyZWFtKEMpO2lmKE4mJl8ucHVzaChudWxsKSxDLnByZXZpb3VzPW8sbyYmKG8ubmV4dD1DKSxvPUMsaS5kZWZpbmVTa2lwKEMuc3RhcnQpLGkud3JpdGUoXyksZS5wYXJzZXIubGF6eVtDLnN0YXJ0LmxpbmVdKXtsZXQgej1pLmV2ZW50cy5sZW5ndGg7Zm9yKDt6LS07KWlmKGkuZXZlbnRzW3pdWzFdLnN0YXJ0Lm9mZnNldDxuJiYoIWkuZXZlbnRzW3pdWzFdLmVuZHx8aS5ldmVudHNbel1bMV0uZW5kLm9mZnNldD5uKSlyZXR1cm47bGV0IE89ZS5ldmVudHMubGVuZ3RoLFQ9TyxQLEI7Zm9yKDtULS07KWlmKGUuZXZlbnRzW1RdWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tUXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe2lmKFApe0I9ZS5ldmVudHNbVF1bMV0uZW5kO2JyZWFrfVA9ITB9Zm9yKHkociksej1PO3o8ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1t6XVsxXS5lbmQ9ey4uLkJ9LHorKztZcihlLmV2ZW50cyxUKzEsMCxlLmV2ZW50cy5zbGljZShPKSksZS5ldmVudHMubGVuZ3RoPXp9fWZ1bmN0aW9uIHkoQyl7bGV0IE49dC5sZW5ndGg7Zm9yKDtOLS0gPkM7KXtsZXQgXz10W05dO2UuY29udGFpbmVyU3RhdGU9X1sxXSxfWzBdLmV4aXQuY2FsbChlLGEpfXQubGVuZ3RoPUN9ZnVuY3Rpb24gaygpe2kud3JpdGUoW251bGxdKSxvPXZvaWQgMCxpPXZvaWQgMCxlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwfX1mdW5jdGlvbiB5a2EoYSxlLHQpe3JldHVybiBEdChhLGEuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRvY3VtZW50LGUsdCksImxpbmVQcmVmaXgiLHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCl9dmFyIHZwdCxicHQseHB0PWYoKCk9PntLcigpO2JhKCk7UDIoKTt2cHQ9e3Rva2VuaXplOnhrYX0sYnB0PXt0b2tlbml6ZTp5a2F9O3MoeGthLCJpbml0aWFsaXplRG9jdW1lbnQiKTtzKHlrYSwidG9rZW5pemVDb250YWluZXIiKX0pO2Z1bmN0aW9uIHdrYShhKXtsZXQgZT10aGlzLHQ9YS5hdHRlbXB0KFIyLHIsYS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsaSxEdChhLGEuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csaSxhLmF0dGVtcHQoVzRlLGkpKSwibGluZVByZWZpeCIpKSk7cmV0dXJuIHQ7ZnVuY3Rpb24gcihvKXtpZihvPT09bnVsbCl7YS5jb25zdW1lKG8pO3JldHVybn1yZXR1cm4gYS5lbnRlcigibGluZUVuZGluZ0JsYW5rIiksYS5jb25zdW1lKG8pLGEuZXhpdCgibGluZUVuZGluZ0JsYW5rIiksZS5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCx0fWZ1bmN0aW9uIGkobyl7aWYobz09PW51bGwpe2EuY29uc3VtZShvKTtyZXR1cm59cmV0dXJuIGEuZW50ZXIoImxpbmVFbmRpbmciKSxhLmNvbnN1bWUobyksYS5leGl0KCJsaW5lRW5kaW5nIiksZS5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCx0fX12YXIgeXB0LHdwdD1mKCgpPT57cVEoKTtLcigpO2JhKCk7eXB0PXt0b2tlbml6ZTp3a2F9O3Mod2thLCJpbml0aWFsaXplRmxvdyIpfSk7ZnVuY3Rpb24gTXB0KGEpe3JldHVybntyZXNvbHZlQWxsOmtwdChhPT09InRleHQiP01rYTp2b2lkIDApLHRva2VuaXplOmV9O2Z1bmN0aW9uIGUodCl7bGV0IHI9dGhpcyxpPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbYV0sbz10LmF0dGVtcHQoaSxuLGwpO3JldHVybiBuO2Z1bmN0aW9uIG4ocCl7cmV0dXJuIGMocCk/byhwKTpsKHApfWZ1bmN0aW9uIGwocCl7aWYocD09PW51bGwpe3QuY29uc3VtZShwKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImRhdGEiKSx0LmNvbnN1bWUocCksZH1mdW5jdGlvbiBkKHApe3JldHVybiBjKHApPyh0LmV4aXQoImRhdGEiKSxvKHApKToodC5jb25zdW1lKHApLGQpfWZ1bmN0aW9uIGMocCl7aWYocD09PW51bGwpcmV0dXJuITA7bGV0IHU9aVtwXSxtPS0xO2lmKHUpZm9yKDsrK208dS5sZW5ndGg7KXtsZXQgdj11W21dO2lmKCF2LnByZXZpb3VzfHx2LnByZXZpb3VzLmNhbGwocixyLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fWZ1bmN0aW9uIGtwdChhKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQscil7bGV0IGk9LTEsbztmb3IoOysraTw9dC5sZW5ndGg7KW89PT12b2lkIDA/dFtpXSYmdFtpXVsxXS50eXBlPT09ImRhdGEiJiYobz1pLGkrKyk6KCF0W2ldfHx0W2ldWzFdLnR5cGUhPT0iZGF0YSIpJiYoaSE9PW8rMiYmKHRbb11bMV0uZW5kPXRbaS0xXVsxXS5lbmQsdC5zcGxpY2UobysyLGktby0yKSxpPW8rMiksbz12b2lkIDApO3JldHVybiBhP2EodCxyKTp0fX1mdW5jdGlvbiBNa2EoYSxlKXtsZXQgdD0wO2Zvcig7Kyt0PD1hLmxlbmd0aDspaWYoKHQ9PT1hLmxlbmd0aHx8YVt0XVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmYVt0LTFdWzFdLnR5cGU9PT0iZGF0YSIpe2xldCByPWFbdC0xXVsxXSxpPWUuc2xpY2VTdHJlYW0ociksbz1pLmxlbmd0aCxuPS0xLGw9MCxkO2Zvcig7by0tOyl7bGV0IGM9aVtvXTtpZih0eXBlb2YgYz09InN0cmluZyIpe2ZvcihuPWMubGVuZ3RoO2MuY2hhckNvZGVBdChuLTEpPT09MzI7KWwrKyxuLS07aWYobilicmVhaztuPS0xfWVsc2UgaWYoYz09PS0yKWQ9ITAsbCsrO2Vsc2UgaWYoYyE9PS0xKXtvKys7YnJlYWt9fWlmKGUuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiZ0PT09YS5sZW5ndGgmJihsPTApLGwpe2xldCBjPXt0eXBlOnQ9PT1hLmxlbmd0aHx8ZHx8bDwyPyJsaW5lU3VmZml4IjoiaGFyZEJyZWFrVHJhaWxpbmciLHN0YXJ0OntfYnVmZmVySW5kZXg6bz9uOnIuc3RhcnQuX2J1ZmZlckluZGV4K24sX2luZGV4OnIuc3RhcnQuX2luZGV4K28sbGluZTpyLmVuZC5saW5lLGNvbHVtbjpyLmVuZC5jb2x1bW4tbCxvZmZzZXQ6ci5lbmQub2Zmc2V0LWx9LGVuZDp7Li4uci5lbmR9fTtyLmVuZD17Li4uYy5zdGFydH0sci5zdGFydC5vZmZzZXQ9PT1yLmVuZC5vZmZzZXQ/T2JqZWN0LmFzc2lnbihyLGMpOihhLnNwbGljZSh0LDAsWyJlbnRlciIsYyxlXSxbImV4aXQiLGMsZV0pLHQrPTIpfXQrK31yZXR1cm4gYX12YXIgU3B0LHpwdCxDcHQsdjNlPWYoKCk9PntTcHQ9e3Jlc29sdmVBbGw6a3B0KCl9LHpwdD1NcHQoInN0cmluZyIpLENwdD1NcHQoInRleHQiKTtzKE1wdCwiaW5pdGlhbGl6ZUZhY3RvcnkiKTtzKGtwdCwiY3JlYXRlUmVzb2x2ZXIiKTtzKE1rYSwicmVzb2x2ZUFsbExpbmVTdWZmaXhlcyIpfSk7dmFyIHgzZT17fTtsdCh4M2Use2F0dGVudGlvbk1hcmtlcnM6KCk9PiRrYSxjb250ZW50SW5pdGlhbDooKT0+U2thLGRpc2FibGU6KCk9PkRrYSxkb2N1bWVudDooKT0+a2thLGZsb3c6KCk9PkNrYSxmbG93SW5pdGlhbDooKT0+emthLGluc2lkZVNwYW46KCk9PkxrYSxzdHJpbmc6KCk9Pl9rYSx0ZXh0OigpPT5Ua2F9KTt2YXIga2thLFNrYSx6a2EsQ2thLF9rYSxUa2EsTGthLCRrYSxEa2EsX3B0PWYoKCk9PntxUSgpO3YzZSgpO2trYT17NDI6VGksNDM6VGksNDU6VGksNDg6VGksNDk6VGksNTA6VGksNTE6VGksNTI6VGksNTM6VGksNTQ6VGksNTU6VGksNTY6VGksNTc6VGksNjI6QVF9LFNrYT17OTE6WDRlfSx6a2E9e1stMl06R2csWy0xXTpHZywzMjpHZ30sQ2thPXszNTpKNGUsNDI6WTMsNDU6W0hRLFkzXSw2MDp0M2UsNjE6SFEsOTU6WTMsOTY6SVEsMTI2OklRfSxfa2E9ezM4OkVRLDkyOlBRfSxUa2E9e1stNV06WmcsWy00XTpaZyxbLTNdOlpnLDMzOnIzZSwzODpFUSw0MjpXZyw2MDpbcTRlLGEzZV0sOTE6czNlLDkyOltRNGUsUFFdLDkzOkczLDk1OldnLDk2OlY0ZX0sTGthPXtudWxsOltXZyxTcHRdfSwka2E9e251bGw6WzQyLDk1XX0sRGthPXtudWxsOltdfX0pO2Z1bmN0aW9uIFRwdChhLGUsdCl7bGV0IHI9e19idWZmZXJJbmRleDotMSxfaW5kZXg6MCxsaW5lOnQmJnQubGluZXx8MSxjb2x1bW46dCYmdC5jb2x1bW58fDEsb2Zmc2V0OnQmJnQub2Zmc2V0fHwwfSxpPXt9LG89W10sbj1bXSxsPVtdLGQ9ITAsYz17YXR0ZW1wdDpQKE8pLGNoZWNrOlAoVCksY29uc3VtZTpOLGVudGVyOl8sZXhpdDp6LGludGVycnVwdDpQKFQse2ludGVycnVwdDohMH0pfSxwPXtjb2RlOm51bGwsY29udGFpbmVyU3RhdGU6e30sZGVmaW5lU2tpcDp5LGV2ZW50czpbXSxub3c6ZyxwYXJzZXI6YSxwcmV2aW91czpudWxsLHNsaWNlU2VyaWFsaXplOngsc2xpY2VTdHJlYW06Yix3cml0ZTp2fSx1PWUudG9rZW5pemUuY2FsbChwLGMpLG07cmV0dXJuIGUucmVzb2x2ZUFsbCYmby5wdXNoKGUpLHA7ZnVuY3Rpb24gdihFKXtyZXR1cm4gbj1mcyhuLEUpLGsoKSxuW24ubGVuZ3RoLTFdIT09bnVsbD9bXTooQihlLDApLHAuZXZlbnRzPUgwKG8scC5ldmVudHMscCkscC5ldmVudHMpfXModiwid3JpdGUiKTtmdW5jdGlvbiB4KEUsQSl7cmV0dXJuIFBrYShiKEUpLEEpfXMoeCwic2xpY2VTZXJpYWxpemUiKTtmdW5jdGlvbiBiKEUpe3JldHVybiBBa2EobixFKX1zKGIsInNsaWNlU3RyZWFtIik7ZnVuY3Rpb24gZygpe2xldHtfYnVmZmVySW5kZXg6RSxfaW5kZXg6QSxsaW5lOkYsY29sdW1uOlcsb2Zmc2V0Omp9PXI7cmV0dXJue19idWZmZXJJbmRleDpFLF9pbmRleDpBLGxpbmU6Rixjb2x1bW46VyxvZmZzZXQ6an19cyhnLCJub3ciKTtmdW5jdGlvbiB5KEUpe2lbRS5saW5lXT1FLmNvbHVtbixTKCl9cyh5LCJkZWZpbmVTa2lwIik7ZnVuY3Rpb24gaygpe2xldCBFO2Zvcig7ci5faW5kZXg8bi5sZW5ndGg7KXtsZXQgQT1uW3IuX2luZGV4XTtpZih0eXBlb2YgQT09InN0cmluZyIpZm9yKEU9ci5faW5kZXgsci5fYnVmZmVySW5kZXg8MCYmKHIuX2J1ZmZlckluZGV4PTApO3IuX2luZGV4PT09RSYmci5fYnVmZmVySW5kZXg8QS5sZW5ndGg7KUMoQS5jaGFyQ29kZUF0KHIuX2J1ZmZlckluZGV4KSk7ZWxzZSBDKEEpfX1zKGssIm1haW4iKTtmdW5jdGlvbiBDKEUpe2Q9dm9pZCAwLG09RSx1PXUoRSl9cyhDLCJnbyIpO2Z1bmN0aW9uIE4oRSl7ZXQoRSk/KHIubGluZSsrLHIuY29sdW1uPTEsci5vZmZzZXQrPUU9PT0tMz8yOjEsUygpKTpFIT09LTEmJihyLmNvbHVtbisrLHIub2Zmc2V0KyspLHIuX2J1ZmZlckluZGV4PDA/ci5faW5kZXgrKzooci5fYnVmZmVySW5kZXgrKyxyLl9idWZmZXJJbmRleD09PW5bci5faW5kZXhdLmxlbmd0aCYmKHIuX2J1ZmZlckluZGV4PS0xLHIuX2luZGV4KyspKSxwLnByZXZpb3VzPUUsZD0hMH1zKE4sImNvbnN1bWUiKTtmdW5jdGlvbiBfKEUsQSl7bGV0IEY9QXx8e307cmV0dXJuIEYudHlwZT1FLEYuc3RhcnQ9ZygpLHAuZXZlbnRzLnB1c2goWyJlbnRlciIsRixwXSksbC5wdXNoKEYpLEZ9cyhfLCJlbnRlciIpO2Z1bmN0aW9uIHooRSl7bGV0IEE9bC5wb3AoKTtyZXR1cm4gQS5lbmQ9ZygpLHAuZXZlbnRzLnB1c2goWyJleGl0IixBLHBdKSxBfXMoeiwiZXhpdCIpO2Z1bmN0aW9uIE8oRSxBKXtCKEUsQS5mcm9tKX1zKE8sIm9uc3VjY2Vzc2Z1bGNvbnN0cnVjdCIpO2Z1bmN0aW9uIFQoRSxBKXtBLnJlc3RvcmUoKX1zKFQsIm9uc3VjY2Vzc2Z1bGNoZWNrIik7ZnVuY3Rpb24gUChFLEEpe3JldHVybiBGO2Z1bmN0aW9uIEYoVyxqLEcpe2xldCBoZSxSLFUsbWU7cmV0dXJuIEFycmF5LmlzQXJyYXkoVyk/cShXKToidG9rZW5pemUiaW4gVz9xKFtXXSk6SShXKTtmdW5jdGlvbiBJKFEpe3JldHVybiBKO2Z1bmN0aW9uIEooWil7bGV0IGdlPVohPT1udWxsJiZRW1pdLGFlPVohPT1udWxsJiZRLm51bGwscmU9Wy4uLkFycmF5LmlzQXJyYXkoZ2UpP2dlOmdlP1tnZV06W10sLi4uQXJyYXkuaXNBcnJheShhZSk/YWU6YWU/W2FlXTpbXV07cmV0dXJuIHEocmUpKFopfX1mdW5jdGlvbiBxKFEpe3JldHVybiBoZT1RLFI9MCxRLmxlbmd0aD09PTA/RzpjZShRW1JdKX1mdW5jdGlvbiBjZShRKXtyZXR1cm4gSjtmdW5jdGlvbiBKKFope3JldHVybiBtZT1NKCksVT1RLFEucGFydGlhbHx8KHAuY3VycmVudENvbnN0cnVjdD1RKSxRLm5hbWUmJnAucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKFEubmFtZSk/WShaKTpRLnRva2VuaXplLmNhbGwoQT9PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUocCksQSk6cCxjLHVlLFkpKFopfX1mdW5jdGlvbiB1ZShRKXtyZXR1cm4gZD0hMCxFKFUsbWUpLGp9ZnVuY3Rpb24gWShRKXtyZXR1cm4gZD0hMCxtZS5yZXN0b3JlKCksKytSPGhlLmxlbmd0aD9jZShoZVtSXSk6R319fXMoUCwiY29uc3RydWN0RmFjdG9yeSIpO2Z1bmN0aW9uIEIoRSxBKXtFLnJlc29sdmVBbGwmJiFvLmluY2x1ZGVzKEUpJiZvLnB1c2goRSksRS5yZXNvbHZlJiZZcihwLmV2ZW50cyxBLHAuZXZlbnRzLmxlbmd0aC1BLEUucmVzb2x2ZShwLmV2ZW50cy5zbGljZShBKSxwKSksRS5yZXNvbHZlVG8mJihwLmV2ZW50cz1FLnJlc29sdmVUbyhwLmV2ZW50cyxwKSl9cyhCLCJhZGRSZXN1bHQiKTtmdW5jdGlvbiBNKCl7bGV0IEU9ZygpLEE9cC5wcmV2aW91cyxGPXAuY3VycmVudENvbnN0cnVjdCxXPXAuZXZlbnRzLmxlbmd0aCxqPUFycmF5LmZyb20obCk7cmV0dXJue2Zyb206VyxyZXN0b3JlOkd9O2Z1bmN0aW9uIEcoKXtyPUUscC5wcmV2aW91cz1BLHAuY3VycmVudENvbnN0cnVjdD1GLHAuZXZlbnRzLmxlbmd0aD1XLGw9aixTKCl9fXMoTSwic3RvcmUiKTtmdW5jdGlvbiBTKCl7ci5saW5lIGluIGkmJnIuY29sdW1uPDImJihyLmNvbHVtbj1pW3IubGluZV0sci5vZmZzZXQrPWlbci5saW5lXS0xKX1zKFMsImFjY291bnRGb3JQb3RlbnRpYWxTa2lwIil9ZnVuY3Rpb24gQWthKGEsZSl7bGV0IHQ9ZS5zdGFydC5faW5kZXgscj1lLnN0YXJ0Ll9idWZmZXJJbmRleCxpPWUuZW5kLl9pbmRleCxvPWUuZW5kLl9idWZmZXJJbmRleCxuO2lmKHQ9PT1pKW49W2FbdF0uc2xpY2UocixvKV07ZWxzZXtpZihuPWEuc2xpY2UodCxpKSxyPi0xKXtsZXQgbD1uWzBdO3R5cGVvZiBsPT0ic3RyaW5nIj9uWzBdPWwuc2xpY2Uocik6bi5zaGlmdCgpfW8+MCYmbi5wdXNoKGFbaV0uc2xpY2UoMCxvKSl9cmV0dXJuIG59ZnVuY3Rpb24gUGthKGEsZSl7bGV0IHQ9LTEscj1bXSxpO2Zvcig7Kyt0PGEubGVuZ3RoOyl7bGV0IG89YVt0XSxuO2lmKHR5cGVvZiBvPT0ic3RyaW5nIiluPW87ZWxzZSBzd2l0Y2gobyl7Y2FzZS01OntuPSJcciI7YnJlYWt9Y2FzZS00OntuPWAKYDticmVha31jYXNlLTM6e249YFxyCmA7YnJlYWt9Y2FzZS0yOntuPWU/IiAiOiIJIjticmVha31jYXNlLTE6e2lmKCFlJiZpKWNvbnRpbnVlO249IiAiO2JyZWFrfWRlZmF1bHQ6bj1TdHJpbmcuZnJvbUNoYXJDb2RlKG8pfWk9bz09PS0yLHIucHVzaChuKX1yZXR1cm4gci5qb2luKCIiKX12YXIgTHB0PWYoKCk9PntiYSgpO1AyKCk7VWcoKTtzKFRwdCwiY3JlYXRlVG9rZW5pemVyIik7cyhBa2EsInNsaWNlQ2h1bmtzIik7cyhQa2EsInNlcmlhbGl6ZUNodW5rcyIpfSk7ZnVuY3Rpb24gWGcoYSl7bGV0IHI9e2NvbnN0cnVjdHM6X1EoW3gzZSwuLi4oYXx8e30pLmV4dGVuc2lvbnN8fFtdXSksY29udGVudDppKG1wdCksZGVmaW5lZDpbXSxkb2N1bWVudDppKHZwdCksZmxvdzppKHlwdCksbGF6eTp7fSxzdHJpbmc6aSh6cHQpLHRleHQ6aShDcHQpfTtyZXR1cm4gcjtmdW5jdGlvbiBpKG8pe3JldHVybiBuO2Z1bmN0aW9uIG4obCl7cmV0dXJuIFRwdChyLG8sbCl9fX12YXIgeTNlPWYoKCk9PntMUSgpO2dwdCgpO3hwdCgpO3dwdCgpO3YzZSgpO19wdCgpO0xwdCgpO3MoWGcsInBhcnNlIil9KTtmdW5jdGlvbiBRZyhhKXtmb3IoOyFOUShhKTspO3JldHVybiBhfXZhciB3M2U9ZigoKT0+e1U0ZSgpO3MoUWcsInBvc3Rwcm9jZXNzIil9KTtmdW5jdGlvbiBKZygpe2xldCBhPTEsZT0iIix0PSEwLHI7cmV0dXJuIGk7ZnVuY3Rpb24gaShvLG4sbCl7bGV0IGQ9W10sYyxwLHUsbSx2O2ZvcihvPWUrKHR5cGVvZiBvPT0ic3RyaW5nIj9vLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKG58fHZvaWQgMCkuZGVjb2RlKG8pKSx1PTAsZT0iIix0JiYoby5jaGFyQ29kZUF0KDApPT09NjUyNzkmJnUrKyx0PXZvaWQgMCk7dTxvLmxlbmd0aDspe2lmKCRwdC5sYXN0SW5kZXg9dSxjPSRwdC5leGVjKG8pLG09YyYmYy5pbmRleCE9PXZvaWQgMD9jLmluZGV4Om8ubGVuZ3RoLHY9by5jaGFyQ29kZUF0KG0pLCFjKXtlPW8uc2xpY2UodSk7YnJlYWt9aWYodj09PTEwJiZ1PT09bSYmcilkLnB1c2goLTMpLHI9dm9pZCAwO2Vsc2Ugc3dpdGNoKHImJihkLnB1c2goLTUpLHI9dm9pZCAwKSx1PG0mJihkLnB1c2goby5zbGljZSh1LG0pKSxhKz1tLXUpLHYpe2Nhc2UgMDp7ZC5wdXNoKDY1NTMzKSxhKys7YnJlYWt9Y2FzZSA5Ontmb3IocD1NYXRoLmNlaWwoYS80KSo0LGQucHVzaCgtMik7YSsrPHA7KWQucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7ZC5wdXNoKC00KSxhPTE7YnJlYWt9ZGVmYXVsdDpyPSEwLGE9MX11PW0rMX1yZXR1cm4gbCYmKHImJmQucHVzaCgtNSksZSYmZC5wdXNoKGUpLGQucHVzaChudWxsKSksZH19dmFyICRwdCxNM2U9ZigoKT0+eyRwdD0vW1wwXHRcblxyXS9nO3MoSmcsInByZXByb2Nlc3MiKX0pO2Z1bmN0aW9uIFRacihhLGUsdCl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIiYmKHQ9ZSxlPXZvaWQgMCksZzNlKHQpKFFnKFhnKHQpLmRvY3VtZW50KCkud3JpdGUoSmcoKShhLGUsITApKSkpfXZhciBEcHQ9ZigoKT0+e2IzZSgpO3kzZSgpO3czZSgpO00zZSgpO2IzZSgpO3kzZSgpO3czZSgpO00zZSgpO3MoVFpyLCJtaWNyb21hcmsiKX0pO2Z1bmN0aW9uIGszZShhLGUsdCl7cmV0dXJuIGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHQ9ZSxlPXZvaWQgMCksRWthKHQpKFFnKFhnKHQpLmRvY3VtZW50KCkud3JpdGUoSmcoKShhLGUsITApKSkpfWZ1bmN0aW9uIEVrYShhKXtsZXQgZT17dHJhbnNmb3JtczpbXSxjYW5Db250YWluRW9sczpbImVtcGhhc2lzIiwiZnJhZ21lbnQiLCJoZWFkaW5nIiwicGFyYWdyYXBoIiwic3Ryb25nIl0sZW50ZXI6e2F1dG9saW5rOm8odGUpLGF1dG9saW5rUHJvdG9jb2w6UCxhdXRvbGlua0VtYWlsOlAsYXR4SGVhZGluZzpvKFYpLGJsb2NrUXVvdGU6byhaKSxjaGFyYWN0ZXJFc2NhcGU6UCxjaGFyYWN0ZXJSZWZlcmVuY2U6UCxjb2RlRmVuY2VkOm8oZ2UpLGNvZGVGZW5jZWRGZW5jZUluZm86bixjb2RlRmVuY2VkRmVuY2VNZXRhOm4sY29kZUluZGVudGVkOm8oZ2UsbiksY29kZVRleHQ6byhhZSxuKSxjb2RlVGV4dERhdGE6UCxkYXRhOlAsY29kZUZsb3dWYWx1ZTpQLGRlZmluaXRpb246byhyZSksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOm4sZGVmaW5pdGlvbkxhYmVsU3RyaW5nOm4sZGVmaW5pdGlvblRpdGxlU3RyaW5nOm4sZW1waGFzaXM6byh5ZSksaGFyZEJyZWFrRXNjYXBlOm8oSCksaGFyZEJyZWFrVHJhaWxpbmc6byhIKSxodG1sRmxvdzpvKG9lLG4pLGh0bWxGbG93RGF0YTpQLGh0bWxUZXh0Om8ob2UsbiksaHRtbFRleHREYXRhOlAsaW1hZ2U6byhzZSksbGFiZWw6bixsaW5rOm8odGUpLGxpc3RJdGVtOm8oT2UpLGxpc3RJdGVtVmFsdWU6bSxsaXN0T3JkZXJlZDpvKHplLHUpLGxpc3RVbm9yZGVyZWQ6byh6ZSkscGFyYWdyYXBoOm8ocWUpLHJlZmVyZW5jZTpJLHJlZmVyZW5jZVN0cmluZzpuLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6bixyZXNvdXJjZVRpdGxlU3RyaW5nOm4sc2V0ZXh0SGVhZGluZzpvKFYpLHN0cm9uZzpvKGR0KSx0aGVtYXRpY0JyZWFrOm8oQ2UpfSxleGl0OnthdHhIZWFkaW5nOmQoKSxhdHhIZWFkaW5nU2VxdWVuY2U6XyxhdXRvbGluazpkKCksYXV0b2xpbmtFbWFpbDpKLGF1dG9saW5rUHJvdG9jb2w6USxibG9ja1F1b3RlOmQoKSxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpCLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOmNlLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6Y2UsY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWU6dWUsY2hhcmFjdGVyUmVmZXJlbmNlOlksY29kZUZlbmNlZDpkKGcpLGNvZGVGZW5jZWRGZW5jZTpiLGNvZGVGZW5jZWRGZW5jZUluZm86dixjb2RlRmVuY2VkRmVuY2VNZXRhOngsY29kZUZsb3dWYWx1ZTpCLGNvZGVJbmRlbnRlZDpkKHkpLGNvZGVUZXh0OmQoRiksY29kZVRleHREYXRhOkIsZGF0YTpCLGRlZmluaXRpb246ZCgpLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpOLGRlZmluaXRpb25MYWJlbFN0cmluZzprLGRlZmluaXRpb25UaXRsZVN0cmluZzpDLGVtcGhhc2lzOmQoKSxoYXJkQnJlYWtFc2NhcGU6ZChTKSxoYXJkQnJlYWtUcmFpbGluZzpkKFMpLGh0bWxGbG93OmQoRSksaHRtbEZsb3dEYXRhOkIsaHRtbFRleHQ6ZChBKSxodG1sVGV4dERhdGE6QixpbWFnZTpkKGopLGxhYmVsOmhlLGxhYmVsVGV4dDpHLGxpbmVFbmRpbmc6TSxsaW5rOmQoVyksbGlzdEl0ZW06ZCgpLGxpc3RPcmRlcmVkOmQoKSxsaXN0VW5vcmRlcmVkOmQoKSxwYXJhZ3JhcGg6ZCgpLHJlZmVyZW5jZVN0cmluZzpxLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6UixyZXNvdXJjZVRpdGxlU3RyaW5nOlUscmVzb3VyY2U6bWUsc2V0ZXh0SGVhZGluZzpkKFQpLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6TyxzZXRleHRIZWFkaW5nVGV4dDp6LHN0cm9uZzpkKCksdGhlbWF0aWNCcmVhazpkKCl9fTtQcHQoZSwoYXx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCB0PXt9O3JldHVybiByO2Z1bmN0aW9uIHIoTWUpe2xldCBkZT17dHlwZToicm9vdCIsY2hpbGRyZW46W119LHZlPXtzdGFjazpbZGVdLHRva2VuU3RhY2s6W10sY29uZmlnOmUsZW50ZXI6bCxleGl0OmMsYnVmZmVyOm4scmVzdW1lOnAsZGF0YTp0fSxBZT1bXSxaZT0tMTtmb3IoOysrWmU8TWUubGVuZ3RoOylpZihNZVtaZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fE1lW1plXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKWlmKE1lW1plXVswXT09PSJlbnRlciIpQWUucHVzaChaZSk7ZWxzZXtsZXQgbnQ9QWUucG9wKCk7WmU9aShNZSxudCxaZSl9Zm9yKFplPS0xOysrWmU8TWUubGVuZ3RoOyl7bGV0IG50PWVbTWVbWmVdWzBdXTtBcHQuY2FsbChudCxNZVtaZV1bMV0udHlwZSkmJm50W01lW1plXVsxXS50eXBlXS5jYWxsKE9iamVjdC5hc3NpZ24oe3NsaWNlU2VyaWFsaXplOk1lW1plXVsyXS5zbGljZVNlcmlhbGl6ZX0sdmUpLE1lW1plXVsxXSl9aWYodmUudG9rZW5TdGFjay5sZW5ndGg+MCl7bGV0IG50PXZlLnRva2VuU3RhY2tbdmUudG9rZW5TdGFjay5sZW5ndGgtMV07KG50WzFdfHxFcHQpLmNhbGwodmUsdm9pZCAwLG50WzBdKX1mb3IoZGUucG9zaXRpb249e3N0YXJ0OnEwKE1lLmxlbmd0aD4wP01lWzBdWzFdLnN0YXJ0OntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KSxlbmQ6cTAoTWUubGVuZ3RoPjA/TWVbTWUubGVuZ3RoLTJdWzFdLmVuZDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSl9LFplPS0xOysrWmU8ZS50cmFuc2Zvcm1zLmxlbmd0aDspZGU9ZS50cmFuc2Zvcm1zW1plXShkZSl8fGRlO3JldHVybiBkZX1mdW5jdGlvbiBpKE1lLGRlLHZlKXtsZXQgQWU9ZGUtMSxaZT0tMSxudD0hMSx6dCxUZSx3ZSxSZTtmb3IoOysrQWU8PXZlOyl7bGV0IGZlPU1lW0FlXTtzd2l0Y2goZmVbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOntmZVswXT09PSJlbnRlciI/WmUrKzpaZS0tLFJlPXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e2ZlWzBdPT09ImVudGVyIiYmKHp0JiYhUmUmJiFaZSYmIXdlJiYod2U9QWUpLFJlPXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0OlJlPXZvaWQgMH1pZighWmUmJmZlWzBdPT09ImVudGVyIiYmZmVbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fFplPT09LTEmJmZlWzBdPT09ImV4aXQiJiYoZmVbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8ZmVbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZih6dCl7bGV0IGJlPUFlO2ZvcihUZT12b2lkIDA7YmUtLTspe2xldCBFZT1NZVtiZV07aWYoRWVbMV0udHlwZT09PSJsaW5lRW5kaW5nInx8RWVbMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKXtpZihFZVswXT09PSJleGl0Iiljb250aW51ZTtUZSYmKE1lW1RlXVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiLG50PSEwKSxFZVsxXS50eXBlPSJsaW5lRW5kaW5nIixUZT1iZX1lbHNlIGlmKCEoRWVbMV0udHlwZT09PSJsaW5lUHJlZml4Inx8RWVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4Inx8RWVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSJ8fEVlWzFdLnR5cGU9PT0iYmxvY2tRdW90ZU1hcmtlciJ8fEVlWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVha313ZSYmKCFUZXx8d2U8VGUpJiYoenQuX3NwcmVhZD0hMCksenQuZW5kPU9iamVjdC5hc3NpZ24oe30sVGU/TWVbVGVdWzFdLnN0YXJ0OmZlWzFdLmVuZCksTWUuc3BsaWNlKFRlfHxBZSwwLFsiZXhpdCIsenQsZmVbMl1dKSxBZSsrLHZlKyt9aWYoZmVbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCIpe2xldCBiZT17dHlwZToibGlzdEl0ZW0iLF9zcHJlYWQ6ITEsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxmZVsxXS5zdGFydCksZW5kOnZvaWQgMH07enQ9YmUsTWUuc3BsaWNlKEFlLDAsWyJlbnRlciIsYmUsZmVbMl1dKSxBZSsrLHZlKyssd2U9dm9pZCAwLFJlPSEwfX19cmV0dXJuIE1lW2RlXVsxXS5fc3ByZWFkPW50LHZlfWZ1bmN0aW9uIG8oTWUsZGUpe3JldHVybiB2ZTtmdW5jdGlvbiB2ZShBZSl7bC5jYWxsKHRoaXMsTWUoQWUpLEFlKSxkZSYmZGUuY2FsbCh0aGlzLEFlKX19ZnVuY3Rpb24gbigpe3RoaXMuc3RhY2sucHVzaCh7dHlwZToiZnJhZ21lbnQiLGNoaWxkcmVuOltdfSl9ZnVuY3Rpb24gbChNZSxkZSx2ZSl7dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXS5jaGlsZHJlbi5wdXNoKE1lKSx0aGlzLnN0YWNrLnB1c2goTWUpLHRoaXMudG9rZW5TdGFjay5wdXNoKFtkZSx2ZXx8dm9pZCAwXSksTWUucG9zaXRpb249e3N0YXJ0OnEwKGRlLnN0YXJ0KSxlbmQ6dm9pZCAwfX1mdW5jdGlvbiBkKE1lKXtyZXR1cm4gZGU7ZnVuY3Rpb24gZGUodmUpe01lJiZNZS5jYWxsKHRoaXMsdmUpLGMuY2FsbCh0aGlzLHZlKX19ZnVuY3Rpb24gYyhNZSxkZSl7bGV0IHZlPXRoaXMuc3RhY2sucG9wKCksQWU9dGhpcy50b2tlblN0YWNrLnBvcCgpO2lmKEFlKUFlWzBdLnR5cGUhPT1NZS50eXBlJiYoZGU/ZGUuY2FsbCh0aGlzLE1lLEFlWzBdKTooQWVbMV18fEVwdCkuY2FsbCh0aGlzLE1lLEFlWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitNZS50eXBlKyJgICgiK1IwKHtzdGFydDpNZS5zdGFydCxlbmQ6TWUuZW5kfSkrIik6IGl0XHUyMDE5cyBub3Qgb3BlbiIpO3ZlLnBvc2l0aW9uLmVuZD1xMChNZS5lbmQpfWZ1bmN0aW9uIHAoKXtyZXR1cm4gcTModGhpcy5zdGFjay5wb3AoKSl9ZnVuY3Rpb24gdSgpe3RoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9ITB9ZnVuY3Rpb24gbShNZSl7aWYodGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZSl7bGV0IGRlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07ZGUuc3RhcnQ9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLDEwKSx0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gdigpe2xldCBNZT10aGlzLnJlc3VtZSgpLGRlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZGUubGFuZz1NZX1mdW5jdGlvbiB4KCl7bGV0IE1lPXRoaXMucmVzdW1lKCksZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtkZS5tZXRhPU1lfWZ1bmN0aW9uIGIoKXt0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGV8fCh0aGlzLmJ1ZmZlcigpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT0hMCl9ZnVuY3Rpb24gZygpe2xldCBNZT10aGlzLnJlc3VtZSgpLGRlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZGUudmFsdWU9TWUucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIiksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPXZvaWQgMH1mdW5jdGlvbiB5KCl7bGV0IE1lPXRoaXMucmVzdW1lKCksZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtkZS52YWx1ZT1NZS5yZXBsYWNlKC8oXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBrKE1lKXtsZXQgZGU9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3ZlLmxhYmVsPWRlLHZlLmlkZW50aWZpZXI9TnIodGhpcy5zbGljZVNlcmlhbGl6ZShNZSkpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gQygpe2xldCBNZT10aGlzLnJlc3VtZSgpLGRlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZGUudGl0bGU9TWV9ZnVuY3Rpb24gTigpe2xldCBNZT10aGlzLnJlc3VtZSgpLGRlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZGUudXJsPU1lfWZ1bmN0aW9uIF8oTWUpe2xldCBkZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFkZS5kZXB0aCl7bGV0IHZlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLmxlbmd0aDtkZS5kZXB0aD12ZX19ZnVuY3Rpb24geigpe3RoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nPSEwfWZ1bmN0aW9uIE8oTWUpe2xldCBkZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2RlLmRlcHRoPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIFQoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gUChNZSl7bGV0IHZlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4sQWU9dmVbdmUubGVuZ3RoLTFdOyghQWV8fEFlLnR5cGUhPT0idGV4dCIpJiYoQWU9JGUoKSxBZS5wb3NpdGlvbj17c3RhcnQ6cTAoTWUuc3RhcnQpLGVuZDp2b2lkIDB9LHZlLnB1c2goQWUpKSx0aGlzLnN0YWNrLnB1c2goQWUpfWZ1bmN0aW9uIEIoTWUpe2xldCBkZT10aGlzLnN0YWNrLnBvcCgpO2RlLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKE1lKSxkZS5wb3NpdGlvbi5lbmQ9cTAoTWUuZW5kKX1mdW5jdGlvbiBNKE1lKXtsZXQgZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuYXRIYXJkQnJlYWspe2xldCB2ZT1kZS5jaGlsZHJlbltkZS5jaGlsZHJlbi5sZW5ndGgtMV07dmUucG9zaXRpb24uZW5kPXEwKE1lLmVuZCksdGhpcy5kYXRhLmF0SGFyZEJyZWFrPXZvaWQgMDtyZXR1cm59IXRoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nJiZlLmNhbkNvbnRhaW5Fb2xzLmluY2x1ZGVzKGRlLnR5cGUpJiYoUC5jYWxsKHRoaXMsTWUpLEIuY2FsbCh0aGlzLE1lKSl9ZnVuY3Rpb24gUygpe3RoaXMuZGF0YS5hdEhhcmRCcmVhaz0hMH1mdW5jdGlvbiBFKCl7bGV0IE1lPXRoaXMucmVzdW1lKCksZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtkZS52YWx1ZT1NZX1mdW5jdGlvbiBBKCl7bGV0IE1lPXRoaXMucmVzdW1lKCksZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtkZS52YWx1ZT1NZX1mdW5jdGlvbiBGKCl7bGV0IE1lPXRoaXMucmVzdW1lKCksZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtkZS52YWx1ZT1NZX1mdW5jdGlvbiBXKCl7bGV0IE1lPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlKXtsZXQgZGU9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7TWUudHlwZSs9IlJlZmVyZW5jZSIsTWUucmVmZXJlbmNlVHlwZT1kZSxkZWxldGUgTWUudXJsLGRlbGV0ZSBNZS50aXRsZX1lbHNlIGRlbGV0ZSBNZS5pZGVudGlmaWVyLGRlbGV0ZSBNZS5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gaigpe2xldCBNZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IGRlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO01lLnR5cGUrPSJSZWZlcmVuY2UiLE1lLnJlZmVyZW5jZVR5cGU9ZGUsZGVsZXRlIE1lLnVybCxkZWxldGUgTWUudGl0bGV9ZWxzZSBkZWxldGUgTWUuaWRlbnRpZmllcixkZWxldGUgTWUubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIEcoTWUpe2xldCBkZT10aGlzLnNsaWNlU2VyaWFsaXplKE1lKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO3ZlLmxhYmVsPXpRKGRlKSx2ZS5pZGVudGlmaWVyPU5yKGRlKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGhlKCl7bGV0IE1lPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0sZGU9dGhpcy5yZXN1bWUoKSx2ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZT0hMCx2ZS50eXBlPT09ImxpbmsiKXtsZXQgQWU9TWUuY2hpbGRyZW47dmUuY2hpbGRyZW49QWV9ZWxzZSB2ZS5hbHQ9ZGV9ZnVuY3Rpb24gUigpe2xldCBNZT10aGlzLnJlc3VtZSgpLGRlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZGUudXJsPU1lfWZ1bmN0aW9uIFUoKXtsZXQgTWU9dGhpcy5yZXN1bWUoKSxkZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2RlLnRpdGxlPU1lfWZ1bmN0aW9uIG1lKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBJKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gcShNZSl7bGV0IGRlPXRoaXMucmVzdW1lKCksdmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTt2ZS5sYWJlbD1kZSx2ZS5pZGVudGlmaWVyPU5yKHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiBjZShNZSl7dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9TWUudHlwZX1mdW5jdGlvbiB1ZShNZSl7bGV0IGRlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLHZlPXRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlLEFlO3ZlPyhBZT15OChkZSx2ZT09PSJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIj8xMDoxNiksdGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9dm9pZCAwKTpBZT1CMChkZSk7bGV0IFplPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07WmUudmFsdWUrPUFlfWZ1bmN0aW9uIFkoTWUpe2xldCBkZT10aGlzLnN0YWNrLnBvcCgpO2RlLnBvc2l0aW9uLmVuZD1xMChNZS5lbmQpfWZ1bmN0aW9uIFEoTWUpe0IuY2FsbCh0aGlzLE1lKTtsZXQgZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtkZS51cmw9dGhpcy5zbGljZVNlcmlhbGl6ZShNZSl9ZnVuY3Rpb24gSihNZSl7Qi5jYWxsKHRoaXMsTWUpO2xldCBkZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2RlLnVybD0ibWFpbHRvOiIrdGhpcy5zbGljZVNlcmlhbGl6ZShNZSl9ZnVuY3Rpb24gWigpe3JldHVybnt0eXBlOiJibG9ja3F1b3RlIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gZ2UoKXtyZXR1cm57dHlwZToiY29kZSIsbGFuZzpudWxsLG1ldGE6bnVsbCx2YWx1ZToiIn19ZnVuY3Rpb24gYWUoKXtyZXR1cm57dHlwZToiaW5saW5lQ29kZSIsdmFsdWU6IiJ9fWZ1bmN0aW9uIHJlKCl7cmV0dXJue3R5cGU6ImRlZmluaXRpb24iLGlkZW50aWZpZXI6IiIsbGFiZWw6bnVsbCx0aXRsZTpudWxsLHVybDoiIn19ZnVuY3Rpb24geWUoKXtyZXR1cm57dHlwZToiZW1waGFzaXMiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBWKCl7cmV0dXJue3R5cGU6ImhlYWRpbmciLGRlcHRoOjAsY2hpbGRyZW46W119fWZ1bmN0aW9uIEgoKXtyZXR1cm57dHlwZToiYnJlYWsifX1mdW5jdGlvbiBvZSgpe3JldHVybnt0eXBlOiJodG1sIix2YWx1ZToiIn19ZnVuY3Rpb24gc2UoKXtyZXR1cm57dHlwZToiaW1hZ2UiLHRpdGxlOm51bGwsdXJsOiIiLGFsdDpudWxsfX1mdW5jdGlvbiB0ZSgpe3JldHVybnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gemUoTWUpe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOk1lLnR5cGU9PT0ibGlzdE9yZGVyZWQiLHN0YXJ0Om51bGwsc3ByZWFkOk1lLl9zcHJlYWQsY2hpbGRyZW46W119fWZ1bmN0aW9uIE9lKE1lKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpNZS5fc3ByZWFkLGNoZWNrZWQ6bnVsbCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gcWUoKXtyZXR1cm57dHlwZToicGFyYWdyYXBoIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gZHQoKXtyZXR1cm57dHlwZToic3Ryb25nIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gJGUoKXtyZXR1cm57dHlwZToidGV4dCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIENlKCl7cmV0dXJue3R5cGU6InRoZW1hdGljQnJlYWsifX19ZnVuY3Rpb24gcTAoYSl7cmV0dXJue2xpbmU6YS5saW5lLGNvbHVtbjphLmNvbHVtbixvZmZzZXQ6YS5vZmZzZXR9fWZ1bmN0aW9uIFBwdChhLGUpe2xldCB0PS0xO2Zvcig7Kyt0PGUubGVuZ3RoOyl7bGV0IHI9ZVt0XTtBcnJheS5pc0FycmF5KHIpP1BwdChhLHIpOklrYShhLHIpfX1mdW5jdGlvbiBJa2EoYSxlKXtsZXQgdDtmb3IodCBpbiBlKWlmKEFwdC5jYWxsKGUsdCkpc3dpdGNoKHQpe2Nhc2UiY2FuQ29udGFpbkVvbHMiOntsZXQgcj1lW3RdO3ImJmFbdF0ucHVzaCguLi5yKTticmVha31jYXNlInRyYW5zZm9ybXMiOntsZXQgcj1lW3RdO3ImJmFbdF0ucHVzaCguLi5yKTticmVha31jYXNlImVudGVyIjpjYXNlImV4aXQiOntsZXQgcj1lW3RdO3ImJk9iamVjdC5hc3NpZ24oYVt0XSxyKTticmVha319fWZ1bmN0aW9uIEVwdChhLGUpe3Rocm93IGE/bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgYCIrYS50eXBlKyJgICgiK1IwKHtzdGFydDphLnN0YXJ0LGVuZDphLmVuZH0pKyIpOiBhIGRpZmZlcmVudCB0b2tlbiAoYCIrZS50eXBlKyJgLCAiK1IwKHtzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pKyIpIGlzIG9wZW4iKTpuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBkb2N1bWVudCwgYSB0b2tlbiAoYCIrZS50eXBlKyJgLCAiK1IwKHtzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pKyIpIGlzIHN0aWxsIG9wZW4iKX12YXIgQXB0LElwdD1mKCgpPT57eVEoKTtEcHQoKTtTUSgpO0M0ZSgpO0YwKCk7amcoKTtCMGUoKTtBcHQ9e30uaGFzT3duUHJvcGVydHk7cyhrM2UsImZyb21NYXJrZG93biIpO3MoRWthLCJjb21waWxlciIpO3MocTAsInBvaW50Iik7cyhQcHQsImNvbmZpZ3VyZSIpO3MoSWthLCJleHRlbnNpb24iKTtzKEVwdCwiZGVmYXVsdE9uRXJyb3IiKX0pO3ZhciBOcHQ9ZigoKT0+e0lwdCgpfSk7ZnVuY3Rpb24gazgoYSl7bGV0IGU9dGhpcztlLnBhcnNlcj10O2Z1bmN0aW9uIHQocil7cmV0dXJuIGszZShyLHsuLi5lLmRhdGEoInNldHRpbmdzIiksLi4uYSxleHRlbnNpb25zOmUuZGF0YSgibWljcm9tYXJrRXh0ZW5zaW9ucyIpfHxbXSxtZGFzdEV4dGVuc2lvbnM6ZS5kYXRhKCJmcm9tTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9cyh0LCJwYXJzZXIiKX12YXIgUnB0PWYoKCk9PntOcHQoKTtzKGs4LCJyZW1hcmtQYXJzZSIpfSk7dmFyIE9wdD1mKCgpPT57UnB0KCl9KTt2YXIgRnB0PU1vKChYWnIsUzNlKT0+eyhmdW5jdGlvbigpe3ZhciBhO3R5cGVvZiBTM2U8InUiP2E9UzNlLmV4cG9ydHM9cjphPShmdW5jdGlvbigpe3JldHVybiB0aGlzfHwoMCxldmFsKSgidGhpcyIpfSkoKSxhLmZvcm1hdD1yLGEudnNwcmludGY9dCx0eXBlb2YgY29uc29sZTwidSImJnR5cGVvZiBjb25zb2xlLmxvZz09ImZ1bmN0aW9uIiYmKGEucHJpbnRmPWUpO2Z1bmN0aW9uIGUoKXtjb25zb2xlLmxvZyhyLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9cyhlLCJwcmludGYiKTtmdW5jdGlvbiB0KGksbyl7cmV0dXJuIHIuYXBwbHkobnVsbCxbaV0uY29uY2F0KG8pKX1zKHQsInZzcHJpbnRmIik7ZnVuY3Rpb24gcihpKXtmb3IodmFyIG89MSxuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxsPTAsZD1pLmxlbmd0aCxjPSIiLHAsdT0hMSxtLHYseD0hMSxiLGc9cyhmdW5jdGlvbigpe3JldHVybiBuW28rK119LCJuZXh0QXJnIikseT1zKGZ1bmN0aW9uKCl7Zm9yKHZhciBrPSIiOy9cZC8udGVzdChpW2xdKTspays9aVtsKytdLHA9aVtsXTtyZXR1cm4gay5sZW5ndGg+MD9wYXJzZUludChrKTpudWxsfSwic2x1cnBOdW1iZXIiKTtsPGQ7KytsKWlmKHA9aVtsXSx1KXN3aXRjaCh1PSExLHA9PSIuIj8oeD0hMSxwPWlbKytsXSk6cD09IjAiJiZpW2wrMV09PSIuIj8oeD0hMCxsKz0yLHA9aVtsXSk6eD0hMCxiPXkoKSxwKXtjYXNlImIiOmMrPXBhcnNlSW50KGcoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjptPWcoKSx0eXBlb2YgbT09InN0cmluZyJ8fG0gaW5zdGFuY2VvZiBTdHJpbmc/Yys9bTpjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG0sMTApKTticmVhaztjYXNlImQiOmMrPXBhcnNlSW50KGcoKSwxMCk7YnJlYWs7Y2FzZSJmIjp2PVN0cmluZyhwYXJzZUZsb2F0KGcoKSkudG9GaXhlZChifHw2KSksYys9eD92OnYucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmMrPUpTT04uc3RyaW5naWZ5KGcoKSk7YnJlYWs7Y2FzZSJvIjpjKz0iMCIrcGFyc2VJbnQoZygpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmMrPWcoKTticmVhaztjYXNlIngiOmMrPSIweCIrcGFyc2VJbnQoZygpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpjKz0iMHgiK3BhcnNlSW50KGcoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpjKz1wO2JyZWFrfWVsc2UgcD09PSIlIj91PSEwOmMrPXA7cmV0dXJuIGN9cyhyLCJmb3JtYXQiKX0pKCl9KTtmdW5jdGlvbiBLMyhhKXtyZXR1cm4gZS5kaXNwbGF5TmFtZT1hLmRpc3BsYXlOYW1lfHxhLm5hbWUsZTtmdW5jdGlvbiBlKHQsLi4ucil7bGV0IGk9dCYmKDAsQnB0LmRlZmF1bHQpKHQsLi4ucik7cmV0dXJuIG5ldyBhKGkpfXMoZSwiRm9ybWF0dGVkRXJyb3IiKX12YXIgQnB0LGViLEhwdD1mKCgpPT57QnB0PWtvKEZwdCgpLDEpLGViPU9iamVjdC5hc3NpZ24oSzMoRXJyb3IpLHtldmFsOkszKEV2YWxFcnJvcikscmFuZ2U6SzMoUmFuZ2VFcnJvcikscmVmZXJlbmNlOkszKFJlZmVyZW5jZUVycm9yKSxzeW50YXg6SzMoU3ludGF4RXJyb3IpLHR5cGU6SzMoVHlwZUVycm9yKSx1cmk6SzMoVVJJRXJyb3IpfSk7cyhLMywiY3JlYXRlIil9KTtmdW5jdGlvbiBTOChhKXtsZXQgZT1bXSx0PS0xLHI9QXJyYXkuaXNBcnJheShhKT9hOmE/W2FdOlsieWFtbCJdO2Zvcig7Kyt0PHIubGVuZ3RoOyllW3RdPU5rYShyW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiBOa2EoYSl7bGV0IGU9YTtpZih0eXBlb2YgZT09InN0cmluZyIpe2lmKCFVUS5jYWxsKHFwdCxlKSl0aHJvdyBlYigiTWlzc2luZyBtYXR0ZXIgZGVmaW5pdGlvbiBmb3IgYCVzYCIsZSk7ZT17dHlwZTplLG1hcmtlcjpxcHRbZV19fWVsc2UgaWYodHlwZW9mIGUhPSJvYmplY3QiKXRocm93IGViKCJFeHBlY3RlZCBtYXR0ZXIgdG8gYmUgYW4gb2JqZWN0LCBub3QgYCVqYCIsZSk7aWYoIVVRLmNhbGwoZSwidHlwZSIpKXRocm93IGViKCJNaXNzaW5nIGB0eXBlYCBpbiBtYXR0ZXIgYCVqYCIsZSk7aWYoIVVRLmNhbGwoZSwiZmVuY2UiKSYmIVVRLmNhbGwoZSwibWFya2VyIikpdGhyb3cgZWIoIk1pc3NpbmcgYG1hcmtlcmAgb3IgYGZlbmNlYCBpbiBtYXR0ZXIgYCVqYCIsZSk7cmV0dXJuIGV9dmFyIFVRLHFwdCx6M2U9ZigoKT0+e0hwdCgpO1VRPXt9Lmhhc093blByb3BlcnR5LHFwdD17eWFtbDoiLSIsdG9tbDoiKyJ9O3MoUzgsInRvTWF0dGVycyIpO3MoTmthLCJtYXR0ZXIiKX0pO2Z1bmN0aW9uIF8zZShhKXtsZXQgZT1TOChhKSx0PXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXtsZXQgaT1lW3JdLG89QzNlKGksIm9wZW4iKS5jaGFyQ29kZUF0KDApLG49UmthKGkpLGw9dFtvXTtBcnJheS5pc0FycmF5KGwpP2wucHVzaChuKTp0W29dPVtuXX1yZXR1cm57Zmxvdzp0fX1mdW5jdGlvbiBSa2EoYSl7bGV0IGU9YS5hbnl3aGVyZSx0PWEudHlwZSxyPXQrIkZlbmNlIixpPXIrIlNlcXVlbmNlIixvPXQrIlZhbHVlIixuPXt0b2tlbml6ZTpwLHBhcnRpYWw6ITB9LGwsZD0wO3JldHVybnt0b2tlbml6ZTpjLGNvbmNyZXRlOiEwfTtmdW5jdGlvbiBjKHUsbSx2KXtsZXQgeD10aGlzO3JldHVybiBiO2Z1bmN0aW9uIGIoTyl7bGV0IFQ9eC5ub3coKTtyZXR1cm4gVC5jb2x1bW49PT0xJiYoVC5saW5lPT09MXx8ZSkmJihsPUMzZShhLCJvcGVuIiksZD0wLE89PT1sLmNoYXJDb2RlQXQoZCkpPyh1LmVudGVyKHQpLHUuZW50ZXIociksdS5lbnRlcihpKSxnKE8pKTp2KE8pfWZ1bmN0aW9uIGcoTyl7cmV0dXJuIGQ9PT1sLmxlbmd0aD8odS5leGl0KGkpLEN0KE8pPyh1LmVudGVyKCJ3aGl0ZXNwYWNlIikseShPKSk6ayhPKSk6Tz09PWwuY2hhckNvZGVBdChkKyspPyh1LmNvbnN1bWUoTyksZyk6dihPKX1mdW5jdGlvbiB5KE8pe3JldHVybiBDdChPKT8odS5jb25zdW1lKE8pLHkpOih1LmV4aXQoIndoaXRlc3BhY2UiKSxrKE8pKX1mdW5jdGlvbiBrKE8pe3JldHVybiBldChPKT8odS5leGl0KHIpLHUuZW50ZXIoImxpbmVFbmRpbmciKSx1LmNvbnN1bWUoTyksdS5leGl0KCJsaW5lRW5kaW5nIiksbD1DM2UoYSwiY2xvc2UiKSxkPTAsdS5hdHRlbXB0KG4seixDKSk6dihPKX1mdW5jdGlvbiBDKE8pe3JldHVybiBPPT09bnVsbHx8ZXQoTyk/XyhPKToodS5lbnRlcihvKSxOKE8pKX1mdW5jdGlvbiBOKE8pe3JldHVybiBPPT09bnVsbHx8ZXQoTyk/KHUuZXhpdChvKSxfKE8pKToodS5jb25zdW1lKE8pLE4pfWZ1bmN0aW9uIF8oTyl7cmV0dXJuIE89PT1udWxsP3YoTyk6KHUuZW50ZXIoImxpbmVFbmRpbmciKSx1LmNvbnN1bWUoTyksdS5leGl0KCJsaW5lRW5kaW5nIiksdS5hdHRlbXB0KG4seixDKSl9ZnVuY3Rpb24geihPKXtyZXR1cm4gdS5leGl0KHQpLG0oTyl9fWZ1bmN0aW9uIHAodSxtLHYpe2xldCB4PTA7cmV0dXJuIGI7ZnVuY3Rpb24gYihDKXtyZXR1cm4gQz09PWwuY2hhckNvZGVBdCh4KT8odS5lbnRlcihyKSx1LmVudGVyKGkpLGcoQykpOnYoQyl9ZnVuY3Rpb24gZyhDKXtyZXR1cm4geD09PWwubGVuZ3RoPyh1LmV4aXQoaSksQ3QoQyk/KHUuZW50ZXIoIndoaXRlc3BhY2UiKSx5KEMpKTprKEMpKTpDPT09bC5jaGFyQ29kZUF0KHgrKyk/KHUuY29uc3VtZShDKSxnKTp2KEMpfWZ1bmN0aW9uIHkoQyl7cmV0dXJuIEN0KEMpPyh1LmNvbnN1bWUoQykseSk6KHUuZXhpdCgid2hpdGVzcGFjZSIpLGsoQykpfWZ1bmN0aW9uIGsoQyl7cmV0dXJuIEM9PT1udWxsfHxldChDKT8odS5leGl0KHIpLG0oQykpOnYoQyl9fX1mdW5jdGlvbiBDM2UoYSxlKXtyZXR1cm4gYS5tYXJrZXI/VnB0KGEubWFya2VyLGUpLnJlcGVhdCgzKTpWcHQoYS5mZW5jZSxlKX1mdW5jdGlvbiBWcHQoYSxlKXtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmciP2E6YVtlXX12YXIganB0PWYoKCk9PntiYSgpO3ozZSgpO3MoXzNlLCJmcm9udG1hdHRlciIpO3MoUmthLCJjcmVhdGVDb25zdHJ1Y3QiKTtzKEMzZSwiZmVuY2UiKTtzKFZwdCwicGljayIpfSk7dmFyIFVwdD1mKCgpPT57fSk7dmFyIFQzZT1mKCgpPT57anB0KCk7VXB0KCk7ejNlKCl9KTtmdW5jdGlvbiAkM2UoYSl7bGV0IGU9UzgoYSksdD17fSxyPXt9LGk9LTE7Zm9yKDsrK2k8ZS5sZW5ndGg7KXtsZXQgbz1lW2ldO3Rbby50eXBlXT1Pa2EobykscltvLnR5cGVdPUZrYSxyW28udHlwZSsiVmFsdWUiXT1Ca2F9cmV0dXJue2VudGVyOnQsZXhpdDpyfX1mdW5jdGlvbiBPa2EoYSl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0KXt0aGlzLmVudGVyKHt0eXBlOmEudHlwZSx2YWx1ZToiIn0sdCksdGhpcy5idWZmZXIoKX19ZnVuY3Rpb24gRmthKGEpe2xldCBlPXRoaXMucmVzdW1lKCksdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdOyJ2YWx1ZSJpbiB0LHRoaXMuZXhpdChhKSx0LnZhbHVlPWUucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gQmthKGEpe3RoaXMuY29uZmlnLmVudGVyLmRhdGEuY2FsbCh0aGlzLGEpLHRoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsYSl9ZnVuY3Rpb24gRDNlKGEpe2xldCBlPVtdLHQ9e30scj1TOChhKSxpPS0xO2Zvcig7KytpPHIubGVuZ3RoOyl7bGV0IG89cltpXTt0W28udHlwZV09SGthKG8pO2xldCBuPUwzZShvLCJvcGVuIik7ZS5wdXNoKHthdEJyZWFrOiEwLGNoYXJhY3RlcjpuLmNoYXJBdCgwKSxhZnRlcjpsMyhuLmNoYXJBdCgxKSl9KX1yZXR1cm57dW5zYWZlOmUsaGFuZGxlcnM6dH19ZnVuY3Rpb24gSGthKGEpe2xldCBlPUwzZShhLCJvcGVuIiksdD1MM2UoYSwiY2xvc2UiKTtyZXR1cm4gcjtmdW5jdGlvbiByKGkpe3JldHVybiBlKyhpLnZhbHVlP2AKYCtpLnZhbHVlOiIiKStgCmArdH19ZnVuY3Rpb24gTDNlKGEsZSl7cmV0dXJuIGEubWFya2VyP1dwdChhLm1hcmtlcixlKS5yZXBlYXQoMyk6V3B0KGEuZmVuY2UsZSl9ZnVuY3Rpb24gV3B0KGEsZSl7cmV0dXJuIHR5cGVvZiBhPT0ic3RyaW5nIj9hOmFbZV19dmFyIEdwdD1mKCgpPT57TjAoKTtUM2UoKTtVWSgpO3MoJDNlLCJmcm9udG1hdHRlckZyb21NYXJrZG93biIpO3MoT2thLCJvcGVuZXIiKTtzKEZrYSwiY2xvc2UiKTtzKEJrYSwidmFsdWUiKTtzKEQzZSwiZnJvbnRtYXR0ZXJUb01hcmtkb3duIik7cyhIa2EsImhhbmRsZXIiKTtzKEwzZSwiZmVuY2UiKTtzKFdwdCwicGljayIpfSk7dmFyIFlwdD1mKCgpPT57R3B0KCl9KTtmdW5jdGlvbiB6OChhKXtsZXQgZT10aGlzLHQ9YXx8cWthLHI9ZS5kYXRhKCksaT1yLm1pY3JvbWFya0V4dGVuc2lvbnN8fChyLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLG89ci5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoci5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxuPXIudG9NYXJrZG93bkV4dGVuc2lvbnN8fChyLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTtpLnB1c2goXzNlKHQpKSxvLnB1c2goJDNlKHQpKSxuLnB1c2goRDNlKHQpKX12YXIgcWthLEtwdD1mKCgpPT57WXB0KCk7VDNlKCk7cWthPSJ5YW1sIjtzKHo4LCJyZW1hcmtGcm9udG1hdHRlciIpfSk7dmFyIFpwdD1mKCgpPT57S3B0KCl9KTt2YXIgQTNlPWYoKCk9Pnt9KTt2YXIgVmthLFhwdCxqa2EsWlEsUXB0PWYoKCk9PntBM2UoKTtWa2E9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxYcHQ9cygoYSxlKT0+e3N3aXRjaChhKXtjYXNlIkZ1bmN0aW9uIjpjYXNlIlNoYXJlZFdvcmtlciI6Y2FzZSJXb3JrZXIiOmNhc2UiZXZhbCI6Y2FzZSJzZXRJbnRlcnZhbCI6Y2FzZSJzZXRUaW1lb3V0Ijp0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gZGVzZXJpYWxpemUgIithKX1yZXR1cm4gbmV3IFZrYVthXShlKX0sImd1YXJkIiksamthPXMoKGEsZSk9PntsZXQgdD1zKChpLG8pPT4oYS5zZXQobyxpKSxpKSwiYXMiKSxyPXMoaT0+e2lmKGEuaGFzKGkpKXJldHVybiBhLmdldChpKTtsZXRbbyxuXT1lW2ldO3N3aXRjaChvKXtjYXNlIDA6Y2FzZS0xOnJldHVybiB0KG4saSk7Y2FzZSAxOntsZXQgbD10KFtdLGkpO2ZvcihsZXQgZCBvZiBuKWwucHVzaChyKGQpKTtyZXR1cm4gbH1jYXNlIDI6e2xldCBsPXQoe30saSk7Zm9yKGxldFtkLGNdb2YgbilsW3IoZCldPXIoYyk7cmV0dXJuIGx9Y2FzZSAzOnJldHVybiB0KG5ldyBEYXRlKG4pLGkpO2Nhc2UgNDp7bGV0e3NvdXJjZTpsLGZsYWdzOmR9PW47cmV0dXJuIHQobmV3IFJlZ0V4cChsLGQpLGkpfWNhc2UgNTp7bGV0IGw9dChuZXcgTWFwLGkpO2ZvcihsZXRbZCxjXW9mIG4pbC5zZXQocihkKSxyKGMpKTtyZXR1cm4gbH1jYXNlIDY6e2xldCBsPXQobmV3IFNldCxpKTtmb3IobGV0IGQgb2YgbilsLmFkZChyKGQpKTtyZXR1cm4gbH1jYXNlIDc6e2xldHtuYW1lOmwsbWVzc2FnZTpkfT1uO3JldHVybiB0KFhwdChsLGQpLGkpfWNhc2UgODpyZXR1cm4gdChCaWdJbnQobiksaSk7Y2FzZSJCaWdJbnQiOnJldHVybiB0KE9iamVjdChCaWdJbnQobikpLGkpO2Nhc2UiQXJyYXlCdWZmZXIiOnJldHVybiB0KG5ldyBVaW50OEFycmF5KG4pLmJ1ZmZlcixuKTtjYXNlIkRhdGFWaWV3Ijp7bGV0e2J1ZmZlcjpsfT1uZXcgVWludDhBcnJheShuKTtyZXR1cm4gdChuZXcgRGF0YVZpZXcobCksbil9fXJldHVybiB0KFhwdChvLG4pLGkpfSwidW5wYWlyIik7cmV0dXJuIHJ9LCJkZXNlcmlhbGl6ZXIiKSxaUT1zKGE9PmprYShuZXcgTWFwLGEpKDApLCJkZXNlcmlhbGl6ZSIpfSk7dmFyIF84LFVrYSxXa2EscmIsWFEsR2thLFFRLEpwdD1mKCgpPT57QTNlKCk7Xzg9IiIse3RvU3RyaW5nOlVrYX09e30se2tleXM6V2thfT1PYmplY3QscmI9cyhhPT57bGV0IGU9dHlwZW9mIGE7aWYoZSE9PSJvYmplY3QifHwhYSlyZXR1cm5bMCxlXTtsZXQgdD1Va2EuY2FsbChhKS5zbGljZSg4LC0xKTtzd2l0Y2godCl7Y2FzZSJBcnJheSI6cmV0dXJuWzEsXzhdO2Nhc2UiT2JqZWN0IjpyZXR1cm5bMixfOF07Y2FzZSJEYXRlIjpyZXR1cm5bMyxfOF07Y2FzZSJSZWdFeHAiOnJldHVybls0LF84XTtjYXNlIk1hcCI6cmV0dXJuWzUsXzhdO2Nhc2UiU2V0IjpyZXR1cm5bNixfOF07Y2FzZSJEYXRhVmlldyI6cmV0dXJuWzEsdF19cmV0dXJuIHQuaW5jbHVkZXMoIkFycmF5Iik/WzEsdF06dC5pbmNsdWRlcygiRXJyb3IiKT9bNyx0XTpbMix0XX0sInR5cGVPZiIpLFhRPXMoKFthLGVdKT0+YT09PTAmJihlPT09ImZ1bmN0aW9uInx8ZT09PSJzeW1ib2wiKSwic2hvdWxkU2tpcCIpLEdrYT1zKChhLGUsdCxyKT0+e2xldCBpPXMoKG4sbCk9PntsZXQgZD1yLnB1c2gobiktMTtyZXR1cm4gdC5zZXQobCxkKSxkfSwiYXMiKSxvPXMobj0+e2lmKHQuaGFzKG4pKXJldHVybiB0LmdldChuKTtsZXRbbCxkXT1yYihuKTtzd2l0Y2gobCl7Y2FzZSAwOntsZXQgcD1uO3N3aXRjaChkKXtjYXNlImJpZ2ludCI6bD04LHA9bi50b1N0cmluZygpO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjppZihhKXRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBzZXJpYWxpemUgIitkKTtwPW51bGw7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBpKFstMV0sbil9cmV0dXJuIGkoW2wscF0sbil9Y2FzZSAxOntpZihkKXtsZXQgbT1uO3JldHVybiBkPT09IkRhdGFWaWV3Ij9tPW5ldyBVaW50OEFycmF5KG4uYnVmZmVyKTpkPT09IkFycmF5QnVmZmVyIiYmKG09bmV3IFVpbnQ4QXJyYXkobikpLGkoW2QsWy4uLm1dXSxuKX1sZXQgcD1bXSx1PWkoW2wscF0sbik7Zm9yKGxldCBtIG9mIG4pcC5wdXNoKG8obSkpO3JldHVybiB1fWNhc2UgMjp7aWYoZClzd2l0Y2goZCl7Y2FzZSJCaWdJbnQiOnJldHVybiBpKFtkLG4udG9TdHJpbmcoKV0sbik7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOnJldHVybiBpKFtkLG4udmFsdWVPZigpXSxuKX1pZihlJiYidG9KU09OImluIG4pcmV0dXJuIG8obi50b0pTT04oKSk7bGV0IHA9W10sdT1pKFtsLHBdLG4pO2ZvcihsZXQgbSBvZiBXa2EobikpKGF8fCFYUShyYihuW21dKSkpJiZwLnB1c2goW28obSksbyhuW21dKV0pO3JldHVybiB1fWNhc2UgMzpyZXR1cm4gaShbbCxuLnRvSVNPU3RyaW5nKCldLG4pO2Nhc2UgNDp7bGV0e3NvdXJjZTpwLGZsYWdzOnV9PW47cmV0dXJuIGkoW2wse3NvdXJjZTpwLGZsYWdzOnV9XSxuKX1jYXNlIDU6e2xldCBwPVtdLHU9aShbbCxwXSxuKTtmb3IobGV0W20sdl1vZiBuKShhfHwhKFhRKHJiKG0pKXx8WFEocmIodikpKSkmJnAucHVzaChbbyhtKSxvKHYpXSk7cmV0dXJuIHV9Y2FzZSA2OntsZXQgcD1bXSx1PWkoW2wscF0sbik7Zm9yKGxldCBtIG9mIG4pKGF8fCFYUShyYihtKSkpJiZwLnB1c2gobyhtKSk7cmV0dXJuIHV9fWxldHttZXNzYWdlOmN9PW47cmV0dXJuIGkoW2wse25hbWU6ZCxtZXNzYWdlOmN9XSxuKX0sInBhaXIiKTtyZXR1cm4gb30sInNlcmlhbGl6ZXIiKSxRUT1zKChhLHtqc29uOmUsbG9zc3k6dH09e30pPT57bGV0IHI9W107cmV0dXJuIEdrYSghKGV8fHQpLCEhZSxuZXcgTWFwLHIpKGEpLHJ9LCJzZXJpYWxpemUiKX0pO3ZhciBWMCxKUT1mKCgpPT57UXB0KCk7SnB0KCk7VjA9dHlwZW9mIHN0cnVjdHVyZWRDbG9uZT09ImZ1bmN0aW9uIj8oYSxlKT0+ZSYmKCJqc29uImluIGV8fCJsb3NzeSJpbiBlKT9aUShRUShhLGUpKTpzdHJ1Y3R1cmVkQ2xvbmUoYSk6KGEsZSk9PlpRKFFRKGEsZSkpfSk7ZnVuY3Rpb24gZWZ0KGEpe3JldHVybiBlO2Z1bmN0aW9uIGUodCl7bGV0IHI9dCYmdC5wb3NpdGlvbiYmdC5wb3NpdGlvblthXXx8e307aWYodHlwZW9mIHIubGluZT09Im51bWJlciImJnIubGluZT4wJiZ0eXBlb2Ygci5jb2x1bW49PSJudW1iZXIiJiZyLmNvbHVtbj4wKXJldHVybntsaW5lOnIubGluZSxjb2x1bW46ci5jb2x1bW4sb2Zmc2V0OnR5cGVvZiByLm9mZnNldD09Im51bWJlciImJnIub2Zmc2V0Pi0xP3Iub2Zmc2V0OnZvaWQgMH19fWZ1bmN0aW9uIHNiKGEpe2xldCBlPXRKKGEpLHQ9ZUooYSk7aWYoZSYmdClyZXR1cm57c3RhcnQ6ZSxlbmQ6dH19dmFyIGVKLHRKLHRmdD1mKCgpPT57ZUo9ZWZ0KCJlbmQiKSx0Sj1lZnQoInN0YXJ0Iik7cyhlZnQsInBvaW50Iik7cyhzYiwicG9zaXRpb24iKX0pO3ZhciBhSj1mKCgpPT57dGZ0KCl9KTt2YXIgWjMsckosTjNlPWYoKCk9PntaMz1bImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5Il0scko9e2FuY2VzdG9yczp7dGJvZHk6WyJ0YWJsZSJdLHRkOlsidGFibGUiXSx0aDpbInRhYmxlIl0sdGhlYWQ6WyJ0YWJsZSJdLHRmb290OlsidGFibGUiXSx0cjpbInRhYmxlIl19LGF0dHJpYnV0ZXM6e2E6Wy4uLlozLCJkYXRhRm9vdG5vdGVCYWNrcmVmIiwiZGF0YUZvb3Rub3RlUmVmIixbImNsYXNzTmFtZSIsImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdLCJocmVmIl0sYmxvY2txdW90ZTpbImNpdGUiXSxjb2RlOltbImNsYXNzTmFtZSIsL15sYW5ndWFnZS0uL11dLGRlbDpbImNpdGUiXSxkaXY6WyJpdGVtU2NvcGUiLCJpdGVtVHlwZSJdLGRsOlsuLi5aM10saDI6W1siY2xhc3NOYW1lIiwic3Itb25seSJdXSxpbWc6Wy4uLlozLCJsb25nRGVzYyIsInNyYyJdLGlucHV0OltbImRpc2FibGVkIiwhMF0sWyJ0eXBlIiwiY2hlY2tib3giXV0saW5zOlsiY2l0ZSJdLGxpOltbImNsYXNzTmFtZSIsInRhc2stbGlzdC1pdGVtIl1dLG9sOlsuLi5aMyxbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSxxOlsiY2l0ZSJdLHNlY3Rpb246WyJkYXRhRm9vdG5vdGVzIixbImNsYXNzTmFtZSIsImZvb3Rub3RlcyJdXSxzb3VyY2U6WyJzcmNTZXQiXSxzdW1tYXJ5OlsuLi5aM10sdGFibGU6Wy4uLlozXSx1bDpbLi4uWjMsWyJjbGFzc05hbWUiLCJjb250YWlucy10YXNrLWxpc3QiXV0sIioiOlsiYWJiciIsImFjY2VwdCIsImFjY2VwdENoYXJzZXQiLCJhY2Nlc3NLZXkiLCJhY3Rpb24iLCJhbGlnbiIsImFsdCIsImF4aXMiLCJib3JkZXIiLCJjZWxsUGFkZGluZyIsImNlbGxTcGFjaW5nIiwiY2hhciIsImNoYXJPZmYiLCJjaGFyU2V0IiwiY2hlY2tlZCIsImNsZWFyIiwiY29sU3BhbiIsImNvbG9yIiwiY29scyIsImNvbXBhY3QiLCJjb29yZHMiLCJkYXRlVGltZSIsImRpciIsImVuY1R5cGUiLCJmcmFtZSIsImhTcGFjZSIsImhlYWRlcnMiLCJoZWlnaHQiLCJocmVmTGFuZyIsImh0bWxGb3IiLCJpZCIsImlzTWFwIiwiaXRlbVByb3AiLCJsYWJlbCIsImxhbmciLCJtYXhMZW5ndGgiLCJtZWRpYSIsIm1ldGhvZCIsIm11bHRpcGxlIiwibmFtZSIsIm5vSHJlZiIsIm5vU2hhZGUiLCJub1dyYXAiLCJvcGVuIiwicHJvbXB0IiwicmVhZE9ubHkiLCJyZXYiLCJyb3dTcGFuIiwicm93cyIsInJ1bGVzIiwic2NvcGUiLCJzZWxlY3RlZCIsInNoYXBlIiwic2l6ZSIsInNwYW4iLCJzdGFydCIsInN1bW1hcnkiLCJ0YWJJbmRleCIsInRpdGxlIiwidXNlTWFwIiwidkFsaWduIiwidmFsdWUiLCJ3aWR0aCJdfSxjbG9iYmVyOlsiYXJpYURlc2NyaWJlZEJ5IiwiYXJpYUxhYmVsbGVkQnkiLCJpZCIsIm5hbWUiXSxjbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixwcm90b2NvbHM6e2NpdGU6WyJodHRwIiwiaHR0cHMiXSxocmVmOlsiaHR0cCIsImh0dHBzIiwiaXJjIiwiaXJjcyIsIm1haWx0byIsInhtcHAiXSxsb25nRGVzYzpbImh0dHAiLCJodHRwcyJdLHNyYzpbImh0dHAiLCJodHRwcyJdfSxyZXF1aXJlZDp7aW5wdXQ6e2Rpc2FibGVkOiEwLHR5cGU6ImNoZWNrYm94In19LHN0cmlwOlsic2NyaXB0Il0sdGFnTmFtZXM6WyJhIiwiYiIsImJsb2NrcXVvdGUiLCJiciIsImNvZGUiLCJkZCIsImRlbCIsImRldGFpbHMiLCJkaXYiLCJkbCIsImR0IiwiZW0iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJociIsImkiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImxpIiwib2wiLCJwIiwicGljdHVyZSIsInByZSIsInEiLCJycCIsInJ0IiwicnVieSIsInMiLCJzYW1wIiwic2VjdGlvbiIsInNvdXJjZSIsInNwYW4iLCJzdHJpa2UiLCJzdHJvbmciLCJzdWIiLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidHIiLCJ0dCIsInVsIiwidmFyIl19fSk7ZnVuY3Rpb24gUjNlKGEsZSl7bGV0IHQ9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxyPXtzY2hlbWE6ZT97Li4uckosLi4uZX06ckosc3RhY2s6W119LGk9YWZ0KHIsYSk7cmV0dXJuIGkmJihBcnJheS5pc0FycmF5KGkpP2kubGVuZ3RoPT09MT90PWlbMF06dC5jaGlsZHJlbj1pOnQ9aSksdH1mdW5jdGlvbiBhZnQoYSxlKXtpZihlJiZ0eXBlb2YgZT09Im9iamVjdCIpe2xldCB0PWU7c3dpdGNoKHR5cGVvZiB0LnR5cGU9PSJzdHJpbmciP3QudHlwZToiIil7Y2FzZSJjb21tZW50IjpyZXR1cm4gWWthKGEsdCk7Y2FzZSJkb2N0eXBlIjpyZXR1cm4gS2thKGEsdCk7Y2FzZSJlbGVtZW50IjpyZXR1cm4gWmthKGEsdCk7Y2FzZSJyb290IjpyZXR1cm4gWGthKGEsdCk7Y2FzZSJ0ZXh0IjpyZXR1cm4gUWthKGEsdCk7ZGVmYXVsdDp9fX1mdW5jdGlvbiBZa2EoYSxlKXtpZihhLnNjaGVtYS5hbGxvd0NvbW1lbnRzKXtsZXQgdD10eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIixyPXQuaW5kZXhPZigiLS0+Iiksbz17dHlwZToiY29tbWVudCIsdmFsdWU6cjwwP3Q6dC5zbGljZSgwLHIpfTtyZXR1cm4gaWIobyxlKSxvfX1mdW5jdGlvbiBLa2EoYSxlKXtpZihhLnNjaGVtYS5hbGxvd0RvY3R5cGVzKXtsZXQgdD17dHlwZToiZG9jdHlwZSJ9O3JldHVybiBpYih0LGUpLHR9fWZ1bmN0aW9uIFprYShhLGUpe2xldCB0PXR5cGVvZiBlLnRhZ05hbWU9PSJzdHJpbmciP2UudGFnTmFtZToiIjthLnN0YWNrLnB1c2godCk7bGV0IHI9cmZ0KGEsZS5jaGlsZHJlbiksaT1Ka2EoYSxlLnByb3BlcnRpZXMpO2Euc3RhY2sucG9wKCk7bGV0IG89ITE7aWYodCYmdCE9PSIqIiYmKCFhLnNjaGVtYS50YWdOYW1lc3x8YS5zY2hlbWEudGFnTmFtZXMuaW5jbHVkZXModCkpJiYobz0hMCxhLnNjaGVtYS5hbmNlc3RvcnMmJmowLmNhbGwoYS5zY2hlbWEuYW5jZXN0b3JzLHQpKSl7bGV0IGw9YS5zY2hlbWEuYW5jZXN0b3JzW3RdLGQ9LTE7Zm9yKG89ITE7KytkPGwubGVuZ3RoOylhLnN0YWNrLmluY2x1ZGVzKGxbZF0pJiYobz0hMCl9aWYoIW8pcmV0dXJuIGEuc2NoZW1hLnN0cmlwJiYhYS5zY2hlbWEuc3RyaXAuaW5jbHVkZXModCk/cjp2b2lkIDA7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6dCxwcm9wZXJ0aWVzOmksY2hpbGRyZW46cn07cmV0dXJuIGliKG4sZSksbn1mdW5jdGlvbiBYa2EoYSxlKXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46cmZ0KGEsZS5jaGlsZHJlbil9O3JldHVybiBpYihyLGUpLHJ9ZnVuY3Rpb24gUWthKGEsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOnR5cGVvZiBlLnZhbHVlPT0ic3RyaW5nIj9lLnZhbHVlOiIifTtyZXR1cm4gaWIocixlKSxyfWZ1bmN0aW9uIHJmdChhLGUpe2xldCB0PVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCByPWUsaT0tMTtmb3IoOysraTxyLmxlbmd0aDspe2xldCBvPWFmdChhLHJbaV0pO28mJihBcnJheS5pc0FycmF5KG8pP3QucHVzaCguLi5vKTp0LnB1c2gobykpfX1yZXR1cm4gdH1mdW5jdGlvbiBKa2EoYSxlKXtsZXQgdD1hLnN0YWNrW2Euc3RhY2subGVuZ3RoLTFdLHI9YS5zY2hlbWEuYXR0cmlidXRlcyxpPWEuc2NoZW1hLnJlcXVpcmVkLG89ciYmajAuY2FsbChyLHQpP3JbdF06dm9pZCAwLG49ciYmajAuY2FsbChyLCIqIik/clsiKiJdOnZvaWQgMCxsPWUmJnR5cGVvZiBlPT0ib2JqZWN0Ij9lOnt9LGQ9e30sYztmb3IoYyBpbiBsKWlmKGowLmNhbGwobCxjKSl7bGV0IHA9bFtjXSx1PXNmdChhLG9mdChvLGMpLGMscCk7dT09bnVsbCYmKHU9c2Z0KGEsb2Z0KG4sYyksYyxwKSksdSE9bnVsbCYmKGRbY109dSl9aWYoaSYmajAuY2FsbChpLHQpKXtsZXQgcD1pW3RdO2ZvcihjIGluIHApajAuY2FsbChwLGMpJiYhajAuY2FsbChkLGMpJiYoZFtjXT1wW2NdKX1yZXR1cm4gZH1mdW5jdGlvbiBzZnQoYSxlLHQscil7cmV0dXJuIGU/QXJyYXkuaXNBcnJheShyKT9lU2EoYSxlLHQscik6aWZ0KGEsZSx0LHIpOnZvaWQgMH1mdW5jdGlvbiBlU2EoYSxlLHQscil7bGV0IGk9LTEsbz1bXTtmb3IoOysraTxyLmxlbmd0aDspe2xldCBuPWlmdChhLGUsdCxyW2ldKTsodHlwZW9mIG49PSJudW1iZXIifHx0eXBlb2Ygbj09InN0cmluZyIpJiZvLnB1c2gobil9cmV0dXJuIG99ZnVuY3Rpb24gaWZ0KGEsZSx0LHIpe2lmKCEodHlwZW9mIHIhPSJib29sZWFuIiYmdHlwZW9mIHIhPSJudW1iZXIiJiZ0eXBlb2YgciE9InN0cmluZyIpJiZ0U2EoYSx0LHIpKXtpZih0eXBlb2YgZT09Im9iamVjdCImJmUubGVuZ3RoPjEpe2xldCBpPSExLG89MDtmb3IoOysrbzxlLmxlbmd0aDspe2xldCBuPWVbb107aWYobiYmdHlwZW9mIG49PSJvYmplY3QiJiYiZmxhZ3MiaW4gbil7aWYobi50ZXN0KFN0cmluZyhyKSkpe2k9ITA7YnJlYWt9fWVsc2UgaWYobj09PXIpe2k9ITA7YnJlYWt9fWlmKCFpKXJldHVybn1yZXR1cm4gYS5zY2hlbWEuY2xvYmJlciYmYS5zY2hlbWEuY2xvYmJlclByZWZpeCYmYS5zY2hlbWEuY2xvYmJlci5pbmNsdWRlcyh0KT9hLnNjaGVtYS5jbG9iYmVyUHJlZml4K3I6cn19ZnVuY3Rpb24gdFNhKGEsZSx0KXtsZXQgcj1hLnNjaGVtYS5wcm90b2NvbHMmJmowLmNhbGwoYS5zY2hlbWEucHJvdG9jb2xzLGUpP2Euc2NoZW1hLnByb3RvY29sc1tlXTp2b2lkIDA7aWYoIXJ8fHIubGVuZ3RoPT09MClyZXR1cm4hMDtsZXQgaT1TdHJpbmcodCksbz1pLmluZGV4T2YoIjoiKSxuPWkuaW5kZXhPZigiPyIpLGw9aS5pbmRleE9mKCIjIiksZD1pLmluZGV4T2YoIi8iKTtpZihvPDB8fGQ+LTEmJm8+ZHx8bj4tMSYmbz5ufHxsPi0xJiZvPmwpcmV0dXJuITA7bGV0IGM9LTE7Zm9yKDsrK2M8ci5sZW5ndGg7KXtsZXQgcD1yW2NdO2lmKG89PT1wLmxlbmd0aCYmaS5zbGljZSgwLHAubGVuZ3RoKT09PXApcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gaWIoYSxlKXtsZXQgdD1zYihlKTtlLmRhdGEmJihhLmRhdGE9VjAoZS5kYXRhKSksdCYmKGEucG9zaXRpb249dCl9ZnVuY3Rpb24gb2Z0KGEsZSl7bGV0IHQscj0tMTtpZihhKWZvcig7KytyPGEubGVuZ3RoOyl7bGV0IGk9YVtyXSxvPXR5cGVvZiBpPT0ic3RyaW5nIj9pOmlbMF07aWYobz09PWUpcmV0dXJuIGk7bz09PSJkYXRhKiImJih0PWkpfWlmKGUubGVuZ3RoPjQmJmUuc2xpY2UoMCw0KS50b0xvd2VyQ2FzZSgpPT09ImRhdGEiKXJldHVybiB0fXZhciBqMCxuZnQ9ZigoKT0+e0pRKCk7YUooKTtOM2UoKTtqMD17fS5oYXNPd25Qcm9wZXJ0eTtzKFIzZSwic2FuaXRpemUiKTtzKGFmdCwidHJhbnNmb3JtIik7cyhZa2EsImNvbW1lbnQiKTtzKEtrYSwiZG9jdHlwZSIpO3MoWmthLCJlbGVtZW50Iik7cyhYa2EsInJvb3QiKTtzKFFrYSwidGV4dCIpO3MocmZ0LCJjaGlsZHJlbiIpO3MoSmthLCJwcm9wZXJ0aWVzIik7cyhzZnQsInByb3BlcnR5VmFsdWUiKTtzKGVTYSwicHJvcGVydHlWYWx1ZU1hbnkiKTtzKGlmdCwicHJvcGVydHlWYWx1ZVByaW1pdGl2ZSIpO3ModFNhLCJzYWZlUHJvdG9jb2wiKTtzKGliLCJwYXRjaCIpO3Mob2Z0LCJmaW5kRGVmaW5pdGlvbiIpfSk7dmFyIGxmdD1mKCgpPT57bmZ0KCk7TjNlKCl9KTtmdW5jdGlvbiBjZnQoYSxlKXtsZXQgdD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjphLndyYXAoYS5hbGwoZSksITApfTtyZXR1cm4gYS5wYXRjaChlLHQpLGEuYXBwbHlEYXRhKGUsdCl9dmFyIGRmdD1mKCgpPT57cyhjZnQsImJsb2NrcXVvdGUiKX0pO2Z1bmN0aW9uIHVmdChhLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJiciIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIGEucGF0Y2goZSx0KSxbYS5hcHBseURhdGEoZSx0KSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19dmFyIHBmdD1mKCgpPT57cyh1ZnQsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gZmZ0KGEsZSl7bGV0IHQ9ZS52YWx1ZT9lLnZhbHVlK2AKYDoiIixyPXt9LGk9ZS5sYW5nP2UubGFuZy5zcGxpdCgvXHMrLyk6W107aS5sZW5ndGg+MCYmKHIuY2xhc3NOYW1lPVsibGFuZ3VhZ2UtIitpWzBdXSk7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6cixjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnR9XX07cmV0dXJuIGUubWV0YSYmKG8uZGF0YT17bWV0YTplLm1ldGF9KSxhLnBhdGNoKGUsbyksbz1hLmFwcGx5RGF0YShlLG8pLG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InByZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbb119LGEucGF0Y2goZSxvKSxvfXZhciBoZnQ9ZigoKT0+e3MoZmZ0LCJjb2RlIil9KTtmdW5jdGlvbiBtZnQoYSxlKXtsZXQgdD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmEuYWxsKGUpfTtyZXR1cm4gYS5wYXRjaChlLHQpLGEuYXBwbHlEYXRhKGUsdCl9dmFyIGdmdD1mKCgpPT57cyhtZnQsInN0cmlrZXRocm91Z2giKX0pO2Z1bmN0aW9uIGJmdChhLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjphLmFsbChlKX07cmV0dXJuIGEucGF0Y2goZSx0KSxhLmFwcGx5RGF0YShlLHQpfXZhciB2ZnQ9ZigoKT0+e3MoYmZ0LCJlbXBoYXNpcyIpfSk7ZnVuY3Rpb24geGZ0KGEsZSl7bGV0IHQ9dHlwZW9mIGEub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj9hLm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscj1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGk9WG8oci50b0xvd2VyQ2FzZSgpKSxvPWEuZm9vdG5vdGVPcmRlci5pbmRleE9mKHIpLG4sbD1hLmZvb3Rub3RlQ291bnRzLmdldChyKTtsPT09dm9pZCAwPyhsPTAsYS5mb290bm90ZU9yZGVyLnB1c2gociksbj1hLmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpuPW8rMSxsKz0xLGEuZm9vdG5vdGVDb3VudHMuc2V0KHIsbCk7bGV0IGQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK3QrImZuLSIraSxpZDp0KyJmbnJlZi0iK2krKGw+MT8iLSIrbDoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKG4pfV19O2EucGF0Y2goZSxkKTtsZXQgYz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltkXX07cmV0dXJuIGEucGF0Y2goZSxjKSxhLmFwcGx5RGF0YShlLGMpfXZhciB5ZnQ9ZigoKT0+e04yKCk7cyh4ZnQsImZvb3Rub3RlUmVmZXJlbmNlIil9KTtmdW5jdGlvbiB3ZnQoYSxlKXtsZXQgdD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmEuYWxsKGUpfTtyZXR1cm4gYS5wYXRjaChlLHQpLGEuYXBwbHlEYXRhKGUsdCl9dmFyIE1mdD1mKCgpPT57cyh3ZnQsImhlYWRpbmciKX0pO2Z1bmN0aW9uIGtmdChhLGUpe2lmKGEub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCB0PXt0eXBlOiJyYXciLHZhbHVlOmUudmFsdWV9O3JldHVybiBhLnBhdGNoKGUsdCksYS5hcHBseURhdGEoZSx0KX19dmFyIFNmdD1mKCgpPT57cyhrZnQsImh0bWwiKX0pO2Z1bmN0aW9uIHNKKGEsZSl7bGV0IHQ9ZS5yZWZlcmVuY2VUeXBlLHI9Il0iO2lmKHQ9PT0iY29sbGFwc2VkIj9yKz0iW10iOnQ9PT0iZnVsbCImJihyKz0iWyIrKGUubGFiZWx8fGUuaWRlbnRpZmllcikrIl0iKSxlLnR5cGU9PT0iaW1hZ2VSZWZlcmVuY2UiKXJldHVyblt7dHlwZToidGV4dCIsdmFsdWU6IiFbIitlLmFsdCtyfV07bGV0IGk9YS5hbGwoZSksbz1pWzBdO28mJm8udHlwZT09PSJ0ZXh0Ij9vLnZhbHVlPSJbIitvLnZhbHVlOmkudW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IlsifSk7bGV0IG49aVtpLmxlbmd0aC0xXTtyZXR1cm4gbiYmbi50eXBlPT09InRleHQiP24udmFsdWUrPXI6aS5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpyfSksaX12YXIgTzNlPWYoKCk9PntzKHNKLCJyZXZlcnQiKX0pO2Z1bmN0aW9uIHpmdChhLGUpe2xldCB0PVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCkscj1hLmRlZmluaXRpb25CeUlkLmdldCh0KTtpZighcilyZXR1cm4gc0ooYSxlKTtsZXQgaT17c3JjOlhvKHIudXJsfHwiIiksYWx0OmUuYWx0fTtyLnRpdGxlIT09bnVsbCYmci50aXRsZSE9PXZvaWQgMCYmKGkudGl0bGU9ci50aXRsZSk7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczppLGNoaWxkcmVuOltdfTtyZXR1cm4gYS5wYXRjaChlLG8pLGEuYXBwbHlEYXRhKGUsbyl9dmFyIENmdD1mKCgpPT57TjIoKTtPM2UoKTtzKHpmdCwiaW1hZ2VSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIF9mdChhLGUpe2xldCB0PXtzcmM6WG8oZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYodC5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYodC50aXRsZT1lLnRpdGxlKTtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnQsY2hpbGRyZW46W119O3JldHVybiBhLnBhdGNoKGUsciksYS5hcHBseURhdGEoZSxyKX12YXIgVGZ0PWYoKCk9PntOMigpO3MoX2Z0LCJpbWFnZSIpfSk7ZnVuY3Rpb24gTGZ0KGEsZSl7bGV0IHQ9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTthLnBhdGNoKGUsdCk7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3RdfTtyZXR1cm4gYS5wYXRjaChlLHIpLGEuYXBwbHlEYXRhKGUscil9dmFyICRmdD1mKCgpPT57cyhMZnQsImlubGluZUNvZGUiKX0pO2Z1bmN0aW9uIERmdChhLGUpe2xldCB0PVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCkscj1hLmRlZmluaXRpb25CeUlkLmdldCh0KTtpZighcilyZXR1cm4gc0ooYSxlKTtsZXQgaT17aHJlZjpYbyhyLnVybHx8IiIpfTtyLnRpdGxlIT09bnVsbCYmci50aXRsZSE9PXZvaWQgMCYmKGkudGl0bGU9ci50aXRsZSk7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6aSxjaGlsZHJlbjphLmFsbChlKX07cmV0dXJuIGEucGF0Y2goZSxvKSxhLmFwcGx5RGF0YShlLG8pfXZhciBBZnQ9ZigoKT0+e04yKCk7TzNlKCk7cyhEZnQsImxpbmtSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIFBmdChhLGUpe2xldCB0PXtocmVmOlhvKGUudXJsKX07ZS50aXRsZSE9PW51bGwmJmUudGl0bGUhPT12b2lkIDAmJih0LnRpdGxlPWUudGl0bGUpO2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnQsY2hpbGRyZW46YS5hbGwoZSl9O3JldHVybiBhLnBhdGNoKGUsciksYS5hcHBseURhdGEoZSxyKX12YXIgRWZ0PWYoKCk9PntOMigpO3MoUGZ0LCJsaW5rIil9KTtmdW5jdGlvbiBOZnQoYSxlLHQpe2xldCByPWEuYWxsKGUpLGk9dD9hU2EodCk6SWZ0KGUpLG89e30sbj1bXTtpZih0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCBwPXJbMF0sdTtwJiZwLnR5cGU9PT0iZWxlbWVudCImJnAudGFnTmFtZT09PSJwIj91PXA6KHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119LHIudW5zaGlmdCh1KSksdS5jaGlsZHJlbi5sZW5ndGg+MCYmdS5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSx1LmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImlucHV0Iixwcm9wZXJ0aWVzOnt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDplLmNoZWNrZWQsZGlzYWJsZWQ6ITB9LGNoaWxkcmVuOltdfSksby5jbGFzc05hbWU9WyJ0YXNrLWxpc3QtaXRlbSJdfWxldCBsPS0xO2Zvcig7KytsPHIubGVuZ3RoOyl7bGV0IHA9cltsXTsoaXx8bCE9PTB8fHAudHlwZSE9PSJlbGVtZW50Inx8cC50YWdOYW1lIT09InAiKSYmbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxwLnR5cGU9PT0iZWxlbWVudCImJnAudGFnTmFtZT09PSJwIiYmIWk/bi5wdXNoKC4uLnAuY2hpbGRyZW4pOm4ucHVzaChwKX1sZXQgZD1yW3IubGVuZ3RoLTFdO2QmJihpfHxkLnR5cGUhPT0iZWxlbWVudCJ8fGQudGFnTmFtZSE9PSJwIikmJm4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOm8sY2hpbGRyZW46bn07cmV0dXJuIGEucGF0Y2goZSxjKSxhLmFwcGx5RGF0YShlLGMpfWZ1bmN0aW9uIGFTYShhKXtsZXQgZT0hMTtpZihhLnR5cGU9PT0ibGlzdCIpe2U9YS5zcHJlYWR8fCExO2xldCB0PWEuY2hpbGRyZW4scj0tMTtmb3IoOyFlJiYrK3I8dC5sZW5ndGg7KWU9SWZ0KHRbcl0pfXJldHVybiBlfWZ1bmN0aW9uIElmdChhKXtsZXQgZT1hLnNwcmVhZDtyZXR1cm4gZT8/YS5jaGlsZHJlbi5sZW5ndGg+MX12YXIgUmZ0PWYoKCk9PntzKE5mdCwibGlzdEl0ZW0iKTtzKGFTYSwibGlzdExvb3NlIik7cyhJZnQsImxpc3RJdGVtTG9vc2UiKX0pO2Z1bmN0aW9uIE9mdChhLGUpe2xldCB0PXt9LHI9YS5hbGwoZSksaT0tMTtmb3IodHlwZW9mIGUuc3RhcnQ9PSJudW1iZXIiJiZlLnN0YXJ0IT09MSYmKHQuc3RhcnQ9ZS5zdGFydCk7KytpPHIubGVuZ3RoOyl7bGV0IG49cltpXTtpZihuLnR5cGU9PT0iZWxlbWVudCImJm4udGFnTmFtZT09PSJsaSImJm4ucHJvcGVydGllcyYmQXJyYXkuaXNBcnJheShuLnByb3BlcnRpZXMuY2xhc3NOYW1lKSYmbi5wcm9wZXJ0aWVzLmNsYXNzTmFtZS5pbmNsdWRlcygidGFzay1saXN0LWl0ZW0iKSl7dC5jbGFzc05hbWU9WyJjb250YWlucy10YXNrLWxpc3QiXTticmVha319bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ZS5vcmRlcmVkPyJvbCI6InVsIixwcm9wZXJ0aWVzOnQsY2hpbGRyZW46YS53cmFwKHIsITApfTtyZXR1cm4gYS5wYXRjaChlLG8pLGEuYXBwbHlEYXRhKGUsbyl9dmFyIEZmdD1mKCgpPT57cyhPZnQsImxpc3QiKX0pO2Z1bmN0aW9uIEJmdChhLGUpe2xldCB0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmEuYWxsKGUpfTtyZXR1cm4gYS5wYXRjaChlLHQpLGEuYXBwbHlEYXRhKGUsdCl9dmFyIEhmdD1mKCgpPT57cyhCZnQsInBhcmFncmFwaCIpfSk7ZnVuY3Rpb24gcWZ0KGEsZSl7bGV0IHQ9e3R5cGU6InJvb3QiLGNoaWxkcmVuOmEud3JhcChhLmFsbChlKSl9O3JldHVybiBhLnBhdGNoKGUsdCksYS5hcHBseURhdGEoZSx0KX12YXIgVmZ0PWYoKCk9PntzKHFmdCwicm9vdCIpfSk7ZnVuY3Rpb24gamZ0KGEsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN0cm9uZyIscHJvcGVydGllczp7fSxjaGlsZHJlbjphLmFsbChlKX07cmV0dXJuIGEucGF0Y2goZSx0KSxhLmFwcGx5RGF0YShlLHQpfXZhciBVZnQ9ZigoKT0+e3MoamZ0LCJzdHJvbmciKX0pO2Z1bmN0aW9uIFdmdChhLGUpe2xldCB0PWEuYWxsKGUpLHI9dC5zaGlmdCgpLGk9W107aWYocil7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRoZWFkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmEud3JhcChbcl0sITApfTthLnBhdGNoKGUuY2hpbGRyZW5bMF0sbiksaS5wdXNoKG4pfWlmKHQubGVuZ3RoPjApe2xldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjphLndyYXAodCwhMCl9LGw9dEooZS5jaGlsZHJlblsxXSksZD1lSihlLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKTtsJiZkJiYobi5wb3NpdGlvbj17c3RhcnQ6bCxlbmQ6ZH0pLGkucHVzaChuKX1sZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46YS53cmFwKGksITApfTtyZXR1cm4gYS5wYXRjaChlLG8pLGEuYXBwbHlEYXRhKGUsbyl9dmFyIEdmdD1mKCgpPT57YUooKTtzKFdmdCwidGFibGUiKX0pO2Z1bmN0aW9uIFlmdChhLGUsdCl7bGV0IHI9dD90LmNoaWxkcmVuOnZvaWQgMCxvPShyP3IuaW5kZXhPZihlKToxKT09PTA/InRoIjoidGQiLG49dCYmdC50eXBlPT09InRhYmxlIj90LmFsaWduOnZvaWQgMCxsPW4/bi5sZW5ndGg6ZS5jaGlsZHJlbi5sZW5ndGgsZD0tMSxjPVtdO2Zvcig7KytkPGw7KXtsZXQgdT1lLmNoaWxkcmVuW2RdLG09e30sdj1uP25bZF06dm9pZCAwO3YmJihtLmFsaWduPXYpO2xldCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm8scHJvcGVydGllczptLGNoaWxkcmVuOltdfTt1JiYoeC5jaGlsZHJlbj1hLmFsbCh1KSxhLnBhdGNoKHUseCkseD1hLmFwcGx5RGF0YSh1LHgpKSxjLnB1c2goeCl9bGV0IHA9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmEud3JhcChjLCEwKX07cmV0dXJuIGEucGF0Y2goZSxwKSxhLmFwcGx5RGF0YShlLHApfXZhciBLZnQ9ZigoKT0+e3MoWWZ0LCJ0YWJsZVJvdyIpfSk7ZnVuY3Rpb24gWmZ0KGEsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmEuYWxsKGUpfTtyZXR1cm4gYS5wYXRjaChlLHQpLGEuYXBwbHlEYXRhKGUsdCl9dmFyIFhmdD1mKCgpPT57cyhaZnQsInRhYmxlQ2VsbCIpfSk7ZnVuY3Rpb24gSmZ0KGEpe2xldCBlPVN0cmluZyhhKSx0PS9ccj9cbnxcci9nLHI9dC5leGVjKGUpLGk9MCxvPVtdO2Zvcig7cjspby5wdXNoKFFmdChlLnNsaWNlKGksci5pbmRleCksaT4wLCEwKSxyWzBdKSxpPXIuaW5kZXgrclswXS5sZW5ndGgscj10LmV4ZWMoZSk7cmV0dXJuIG8ucHVzaChRZnQoZS5zbGljZShpKSxpPjAsITEpKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIFFmdChhLGUsdCl7bGV0IHI9MCxpPWEubGVuZ3RoO2lmKGUpe2xldCBvPWEuY29kZVBvaW50QXQocik7Zm9yKDtvPT09OXx8bz09PTMyOylyKyssbz1hLmNvZGVQb2ludEF0KHIpfWlmKHQpe2xldCBvPWEuY29kZVBvaW50QXQoaS0xKTtmb3IoO289PT05fHxvPT09MzI7KWktLSxvPWEuY29kZVBvaW50QXQoaS0xKX1yZXR1cm4gaT5yP2Euc2xpY2UocixpKToiIn12YXIgS1FyLFpRcixlNXQ9ZigoKT0+e0tRcj05LFpRcj0zMjtzKEpmdCwidHJpbUxpbmVzIik7cyhRZnQsInRyaW1MaW5lIil9KTtmdW5jdGlvbiB0NXQoYSxlKXtsZXQgdD17dHlwZToidGV4dCIsdmFsdWU6SmZ0KFN0cmluZyhlLnZhbHVlKSl9O3JldHVybiBhLnBhdGNoKGUsdCksYS5hcHBseURhdGEoZSx0KX12YXIgYTV0PWYoKCk9PntlNXQoKTtzKHQ1dCwidGV4dCIpfSk7ZnVuY3Rpb24gcjV0KGEsZSl7bGV0IHQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImhyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gYS5wYXRjaChlLHQpLGEuYXBwbHlEYXRhKGUsdCl9dmFyIHM1dD1mKCgpPT57cyhyNXQsInRoZW1hdGljQnJlYWsiKX0pO2Z1bmN0aW9uIGlKKCl7fXZhciBGM2UsQjNlPWYoKCk9PntkZnQoKTtwZnQoKTtoZnQoKTtnZnQoKTt2ZnQoKTt5ZnQoKTtNZnQoKTtTZnQoKTtDZnQoKTtUZnQoKTskZnQoKTtBZnQoKTtFZnQoKTtSZnQoKTtGZnQoKTtIZnQoKTtWZnQoKTtVZnQoKTtHZnQoKTtLZnQoKTtYZnQoKTthNXQoKTtzNXQoKTtGM2U9e2Jsb2NrcXVvdGU6Y2Z0LGJyZWFrOnVmdCxjb2RlOmZmdCxkZWxldGU6bWZ0LGVtcGhhc2lzOmJmdCxmb290bm90ZVJlZmVyZW5jZTp4ZnQsaGVhZGluZzp3ZnQsaHRtbDprZnQsaW1hZ2VSZWZlcmVuY2U6emZ0LGltYWdlOl9mdCxpbmxpbmVDb2RlOkxmdCxsaW5rUmVmZXJlbmNlOkRmdCxsaW5rOlBmdCxsaXN0SXRlbTpOZnQsbGlzdDpPZnQscGFyYWdyYXBoOkJmdCxyb290OnFmdCxzdHJvbmc6amZ0LHRhYmxlOldmdCx0YWJsZUNlbGw6WmZ0LHRhYmxlUm93OllmdCx0ZXh0OnQ1dCx0aGVtYXRpY0JyZWFrOnI1dCx0b21sOmlKLHlhbWw6aUosZGVmaW5pdGlvbjppSixmb290bm90ZURlZmluaXRpb246aUp9O3MoaUosImlnbm9yZSIpfSk7ZnVuY3Rpb24gaTV0KGEsZSl7bGV0IHQ9W3t0eXBlOiJ0ZXh0Iix2YWx1ZToiXHUyMUE5In1dO3JldHVybiBlPjEmJnQucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKGUpfV19KSx0fWZ1bmN0aW9uIG81dChhLGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhhKzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIG41dChhKXtsZXQgZT10eXBlb2YgYS5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP2Eub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIix0PWEub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxpNXQscj1hLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWx8fG81dCxpPWEub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIixvPWEub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixuPWEub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0sbD1bXSxkPS0xO2Zvcig7KytkPGEuZm9vdG5vdGVPcmRlci5sZW5ndGg7KXtsZXQgYz1hLmZvb3Rub3RlQnlJZC5nZXQoYS5mb290bm90ZU9yZGVyW2RdKTtpZighYyljb250aW51ZTtsZXQgcD1hLmFsbChjKSx1PVN0cmluZyhjLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksbT1Ybyh1LnRvTG93ZXJDYXNlKCkpLHY9MCx4PVtdLGI9YS5mb290bm90ZUNvdW50cy5nZXQodSk7Zm9yKDtiIT09dm9pZCAwJiYrK3Y8PWI7KXt4Lmxlbmd0aD4wJiZ4LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCBrPXR5cGVvZiB0PT0ic3RyaW5nIj90OnQoZCx2KTt0eXBlb2Ygaz09InN0cmluZyImJihrPXt0eXBlOiJ0ZXh0Iix2YWx1ZTprfSkseC5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIitlKyJmbnJlZi0iK20rKHY+MT8iLSIrdjoiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIHI9PSJzdHJpbmciP3I6cihkLHYpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KGspP2s6W2tdfSl9bGV0IGc9cFtwLmxlbmd0aC0xXTtpZihnJiZnLnR5cGU9PT0iZWxlbWVudCImJmcudGFnTmFtZT09PSJwIil7bGV0IGs9Zy5jaGlsZHJlbltnLmNoaWxkcmVuLmxlbmd0aC0xXTtrJiZrLnR5cGU9PT0idGV4dCI/ay52YWx1ZSs9IiAiOmcuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZy5jaGlsZHJlbi5wdXNoKC4uLngpfWVsc2UgcC5wdXNoKC4uLngpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6ZSsiZm4tIittfSxjaGlsZHJlbjphLndyYXAocCwhMCl9O2EucGF0Y2goYyx5KSxsLnB1c2goeSl9aWYobC5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6byxwcm9wZXJ0aWVzOnsuLi5WMChuKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOml9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmEud3JhcChsLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX12YXIgSDNlPWYoKCk9PntKUSgpO04yKCk7cyhpNXQsImRlZmF1bHRGb290bm90ZUJhY2tDb250ZW50Iik7cyhvNXQsImRlZmF1bHRGb290bm90ZUJhY2tMYWJlbCIpO3MobjV0LCJmb290ZXIiKX0pO2Z1bmN0aW9uIGM1dChhLGUpe2xldCB0PWV8fHJTYSxyPW5ldyBNYXAsaT1uZXcgTWFwLG89bmV3IE1hcCxuPXsuLi5GM2UsLi4udC5oYW5kbGVyc30sbD17YWxsOmMsYXBwbHlEYXRhOmlTYSxkZWZpbml0aW9uQnlJZDpyLGZvb3Rub3RlQnlJZDppLGZvb3Rub3RlQ291bnRzOm8sZm9vdG5vdGVPcmRlcjpbXSxoYW5kbGVyczpuLG9uZTpkLG9wdGlvbnM6dCxwYXRjaDpzU2Esd3JhcDpuU2F9O3JldHVybiBWZyhhLGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PSJkZWZpbml0aW9uInx8cC50eXBlPT09ImZvb3Rub3RlRGVmaW5pdGlvbiIpe2xldCB1PXAudHlwZT09PSJkZWZpbml0aW9uIj9yOmksbT1TdHJpbmcocC5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpO3UuaGFzKG0pfHx1LnNldChtLHApfX0pLGw7ZnVuY3Rpb24gZChwLHUpe2xldCBtPXAudHlwZSx2PWwuaGFuZGxlcnNbbV07aWYocTNlLmNhbGwobC5oYW5kbGVycyxtKSYmdilyZXR1cm4gdihsLHAsdSk7aWYobC5vcHRpb25zLnBhc3NUaHJvdWdoJiZsLm9wdGlvbnMucGFzc1Rocm91Z2guaW5jbHVkZXMobSkpe2lmKCJjaGlsZHJlbiJpbiBwKXtsZXR7Y2hpbGRyZW46YiwuLi5nfT1wLHk9VjAoZyk7cmV0dXJuIHkuY2hpbGRyZW49bC5hbGwocCkseX1yZXR1cm4gVjAocCl9cmV0dXJuKGwub3B0aW9ucy51bmtub3duSGFuZGxlcnx8b1NhKShsLHAsdSl9cyhkLCJvbmUiKTtmdW5jdGlvbiBjKHApe2xldCB1PVtdO2lmKCJjaGlsZHJlbiJpbiBwKXtsZXQgbT1wLmNoaWxkcmVuLHY9LTE7Zm9yKDsrK3Y8bS5sZW5ndGg7KXtsZXQgeD1sLm9uZShtW3ZdLHApO2lmKHgpe2lmKHYmJm1bdi0xXS50eXBlPT09ImJyZWFrIiYmKCFBcnJheS5pc0FycmF5KHgpJiZ4LnR5cGU9PT0idGV4dCImJih4LnZhbHVlPWw1dCh4LnZhbHVlKSksIUFycmF5LmlzQXJyYXkoeCkmJngudHlwZT09PSJlbGVtZW50Iikpe2xldCBiPXguY2hpbGRyZW5bMF07YiYmYi50eXBlPT09InRleHQiJiYoYi52YWx1ZT1sNXQoYi52YWx1ZSkpfUFycmF5LmlzQXJyYXkoeCk/dS5wdXNoKC4uLngpOnUucHVzaCh4KX19fXJldHVybiB1fXMoYywiYWxsIil9ZnVuY3Rpb24gc1NhKGEsZSl7YS5wb3NpdGlvbiYmKGUucG9zaXRpb249c2IoYSkpfWZ1bmN0aW9uIGlTYShhLGUpe2xldCB0PWU7aWYoYSYmYS5kYXRhKXtsZXQgcj1hLmRhdGEuaE5hbWUsaT1hLmRhdGEuaENoaWxkcmVuLG89YS5kYXRhLmhQcm9wZXJ0aWVzO2lmKHR5cGVvZiByPT0ic3RyaW5nIilpZih0LnR5cGU9PT0iZWxlbWVudCIpdC50YWdOYW1lPXI7ZWxzZXtsZXQgbj0iY2hpbGRyZW4iaW4gdD90LmNoaWxkcmVuOlt0XTt0PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczp7fSxjaGlsZHJlbjpufX10LnR5cGU9PT0iZWxlbWVudCImJm8mJk9iamVjdC5hc3NpZ24odC5wcm9wZXJ0aWVzLFYwKG8pKSwiY2hpbGRyZW4iaW4gdCYmdC5jaGlsZHJlbiYmaSE9PW51bGwmJmkhPT12b2lkIDAmJih0LmNoaWxkcmVuPWkpfXJldHVybiB0fWZ1bmN0aW9uIG9TYShhLGUpe2xldCB0PWUuZGF0YXx8e30scj0idmFsdWUiaW4gZSYmIShxM2UuY2FsbCh0LCJoUHJvcGVydGllcyIpfHxxM2UuY2FsbCh0LCJoQ2hpbGRyZW4iKSk/e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWV9Ont0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJkaXYiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46YS5hbGwoZSl9O3JldHVybiBhLnBhdGNoKGUsciksYS5hcHBseURhdGEoZSxyKX1mdW5jdGlvbiBuU2EoYSxlKXtsZXQgdD1bXSxyPS0xO2ZvcihlJiZ0LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pOysrcjxhLmxlbmd0aDspciYmdC5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSx0LnB1c2goYVtyXSk7cmV0dXJuIGUmJmEubGVuZ3RoPjAmJnQucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksdH1mdW5jdGlvbiBsNXQoYSl7bGV0IGU9MCx0PWEuY2hhckNvZGVBdChlKTtmb3IoO3Q9PT05fHx0PT09MzI7KWUrKyx0PWEuY2hhckNvZGVBdChlKTtyZXR1cm4gYS5zbGljZShlKX12YXIgcTNlLHJTYSxkNXQ9ZigoKT0+e0pRKCk7ZjRlKCk7YUooKTtCM2UoKTtxM2U9e30uaGFzT3duUHJvcGVydHksclNhPXt9O3MoYzV0LCJjcmVhdGVTdGF0ZSIpO3Moc1NhLCJwYXRjaCIpO3MoaVNhLCJhcHBseURhdGEiKTtzKG9TYSwiZGVmYXVsdFVua25vd25IYW5kbGVyIik7cyhuU2EsIndyYXAiKTtzKGw1dCwidHJpbU1hcmtkb3duU3BhY2VTdGFydCIpfSk7ZnVuY3Rpb24gVjNlKGEsZSl7bGV0IHQ9YzV0KGEsZSkscj10Lm9uZShhLHZvaWQgMCksaT1uNXQodCksbz1BcnJheS5pc0FycmF5KHIpP3t0eXBlOiJyb290IixjaGlsZHJlbjpyfTpyfHx7dHlwZToicm9vdCIsY2hpbGRyZW46W119O3JldHVybiBpJiYoImNoaWxkcmVuImluIG8sby5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LGkpKSxvfXZhciB1NXQ9ZigoKT0+e04wKCk7SDNlKCk7ZDV0KCk7cyhWM2UsInRvSGFzdCIpfSk7dmFyIHA1dD1mKCgpPT57QjNlKCk7dTV0KCk7SDNlKCl9KTt2YXIgZjV0LGg1dD1mKCgpPT57ZjV0PVsiYXJlYSIsImJhc2UiLCJiYXNlZm9udCIsImJnc291bmQiLCJiciIsImNvbCIsImNvbW1hbmQiLCJlbWJlZCIsImZyYW1lIiwiaHIiLCJpbWFnZSIsImltZyIsImlucHV0Iiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJwYXJhbSIsInNvdXJjZSIsInRyYWNrIiwid2JyIl19KTt2YXIgcWwsajNlPWYoKCk9PntxbD1jbGFzc3tzdGF0aWN7cyh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy5ub3JtYWw9dCx0aGlzLnByb3BlcnR5PWUsciYmKHRoaXMuc3BhY2U9cil9fTtxbC5wcm90b3R5cGUubm9ybWFsPXt9LHFsLnByb3RvdHlwZS5wcm9wZXJ0eT17fSxxbC5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gVTNlKGEsZSl7bGV0IHQ9e30scj17fTtmb3IobGV0IGkgb2YgYSlPYmplY3QuYXNzaWduKHQsaS5wcm9wZXJ0eSksT2JqZWN0LmFzc2lnbihyLGkubm9ybWFsKTtyZXR1cm4gbmV3IHFsKHQscixlKX12YXIgbTV0PWYoKCk9PntqM2UoKTtzKFUzZSwibWVyZ2UiKX0pO2Z1bmN0aW9uIFQ4KGEpe3JldHVybiBhLnRvTG93ZXJDYXNlKCl9dmFyIG9KPWYoKCk9PntzKFQ4LCJub3JtYWxpemUiKX0pO3ZhciBVcyxXM2U9ZigoKT0+e1VzPWNsYXNze3N0YXRpY3tzKHRoaXMsIkluZm8iKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuYXR0cmlidXRlPXQsdGhpcy5wcm9wZXJ0eT1lfX07VXMucHJvdG90eXBlLmF0dHJpYnV0ZT0iIixVcy5wcm90b3R5cGUuYm9vbGVhbmlzaD0hMSxVcy5wcm90b3R5cGUuYm9vbGVhbj0hMSxVcy5wcm90b3R5cGUuY29tbWFPclNwYWNlU2VwYXJhdGVkPSExLFVzLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZD0hMSxVcy5wcm90b3R5cGUuZGVmaW5lZD0hMSxVcy5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5PSExLFVzLnByb3RvdHlwZS5udW1iZXI9ITEsVXMucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuPSExLFVzLnByb3RvdHlwZS5wcm9wZXJ0eT0iIixVcy5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQ9ITEsVXMucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO3ZhciBvYj17fTtsdChvYix7Ym9vbGVhbjooKT0+V3QsYm9vbGVhbmlzaDooKT0+UnIsY29tbWFPclNwYWNlU2VwYXJhdGVkOigpPT5Qbyxjb21tYVNlcGFyYXRlZDooKT0+VTAsbnVtYmVyOigpPT5ZZSxvdmVybG9hZGVkQm9vbGVhbjooKT0+bkosc3BhY2VTZXBhcmF0ZWQ6KCk9PkdhfSk7ZnVuY3Rpb24gWDMoKXtyZXR1cm4gMioqKytsU2F9dmFyIGxTYSxXdCxScixuSixZZSxHYSxVMCxQbyxuYj1mKCgpPT57bFNhPTAsV3Q9WDMoKSxScj1YMygpLG5KPVgzKCksWWU9WDMoKSxHYT1YMygpLFUwPVgzKCksUG89WDMoKTtzKFgzLCJpbmNyZW1lbnQiKX0pO2Z1bmN0aW9uIGc1dChhLGUsdCl7dCYmKGFbZV09dCl9dmFyIEczZSxRMyxZM2U9ZigoKT0+e1czZSgpO25iKCk7RzNlPU9iamVjdC5rZXlzKG9iKSxRMz1jbGFzcyBleHRlbmRzIFVze3N0YXRpY3tzKHRoaXMsIkRlZmluZWRJbmZvIil9Y29uc3RydWN0b3IoZSx0LHIsaSl7bGV0IG89LTE7aWYoc3VwZXIoZSx0KSxnNXQodGhpcywic3BhY2UiLGkpLHR5cGVvZiByPT0ibnVtYmVyIilmb3IoOysrbzxHM2UubGVuZ3RoOyl7bGV0IG49RzNlW29dO2c1dCh0aGlzLEczZVtvXSwociZvYltuXSk9PT1vYltuXSl9fX07UTMucHJvdG90eXBlLmRlZmluZWQ9ITA7cyhnNXQsIm1hcmsiKX0pO2Z1bmN0aW9uIExuKGEpe2xldCBlPXt9LHQ9e307Zm9yKGxldFtyLGldb2YgT2JqZWN0LmVudHJpZXMoYS5wcm9wZXJ0aWVzKSl7bGV0IG89bmV3IFEzKHIsYS50cmFuc2Zvcm0oYS5hdHRyaWJ1dGVzfHx7fSxyKSxpLGEuc3BhY2UpO2EubXVzdFVzZVByb3BlcnR5JiZhLm11c3RVc2VQcm9wZXJ0eS5pbmNsdWRlcyhyKSYmKG8ubXVzdFVzZVByb3BlcnR5PSEwKSxlW3JdPW8sdFtUOChyKV09cix0W1Q4KG8uYXR0cmlidXRlKV09cn1yZXR1cm4gbmV3IHFsKGUsdCxhLnNwYWNlKX12YXIgSjM9ZigoKT0+e29KKCk7WTNlKCk7ajNlKCk7cyhMbiwiY3JlYXRlIil9KTt2YXIgSzNlLGI1dD1mKCgpPT57SjMoKTtuYigpO0szZT1Mbih7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOlJyLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpScixhcmlhQ2hlY2tlZDpScixhcmlhQ29sQ291bnQ6WWUsYXJpYUNvbEluZGV4OlllLGFyaWFDb2xTcGFuOlllLGFyaWFDb250cm9sczpHYSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpHYSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpScixhcmlhRHJvcEVmZmVjdDpHYSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOlJyLGFyaWFGbG93VG86R2EsYXJpYUdyYWJiZWQ6UnIsYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpScixhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpHYSxhcmlhTGV2ZWw6WWUsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6UnIsYXJpYU11bHRpTGluZTpScixhcmlhTXVsdGlTZWxlY3RhYmxlOlJyLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOkdhLGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDpZZSxhcmlhUHJlc3NlZDpScixhcmlhUmVhZE9ubHk6UnIsYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOlJyLGFyaWFSb2xlRGVzY3JpcHRpb246R2EsYXJpYVJvd0NvdW50OlllLGFyaWFSb3dJbmRleDpZZSxhcmlhUm93U3BhbjpZZSxhcmlhU2VsZWN0ZWQ6UnIsYXJpYVNldFNpemU6WWUsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6WWUsYXJpYVZhbHVlTWluOlllLGFyaWFWYWx1ZU5vdzpZZSxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0oYSxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gbEooYSxlKXtyZXR1cm4gZSBpbiBhP2FbZV06ZX12YXIgWjNlPWYoKCk9PntzKGxKLCJjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtIil9KTtmdW5jdGlvbiBjSihhLGUpe3JldHVybiBsSihhLGUudG9Mb3dlckNhc2UoKSl9dmFyIFgzZT1mKCgpPT57WjNlKCk7cyhjSiwiY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtIil9KTt2YXIgdjV0LHg1dD1mKCgpPT57WDNlKCk7SjMoKTtuYigpO3Y1dD1Mbih7YXR0cmlidXRlczp7YWNjZXB0Y2hhcnNldDoiYWNjZXB0LWNoYXJzZXQiLGNsYXNzbmFtZToiY2xhc3MiLGh0bWxmb3I6ImZvciIsaHR0cGVxdWl2OiJodHRwLWVxdWl2In0sbXVzdFVzZVByb3BlcnR5OlsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLHByb3BlcnRpZXM6e2FiYnI6bnVsbCxhY2NlcHQ6VTAsYWNjZXB0Q2hhcnNldDpHYSxhY2Nlc3NLZXk6R2EsYWN0aW9uOm51bGwsYWxsb3c6bnVsbCxhbGxvd0Z1bGxTY3JlZW46V3QsYWxsb3dQYXltZW50UmVxdWVzdDpXdCxhbGxvd1VzZXJNZWRpYTpXdCxhbHQ6bnVsbCxhczpudWxsLGFzeW5jOld0LGF1dG9DYXBpdGFsaXplOm51bGwsYXV0b0NvbXBsZXRlOkdhLGF1dG9Gb2N1czpXdCxhdXRvUGxheTpXdCxibG9ja2luZzpHYSxjYXB0dXJlOm51bGwsY2hhclNldDpudWxsLGNoZWNrZWQ6V3QsY2l0ZTpudWxsLGNsYXNzTmFtZTpHYSxjb2xzOlllLGNvbFNwYW46bnVsbCxjb250ZW50Om51bGwsY29udGVudEVkaXRhYmxlOlJyLGNvbnRyb2xzOld0LGNvbnRyb2xzTGlzdDpHYSxjb29yZHM6WWV8VTAsY3Jvc3NPcmlnaW46bnVsbCxkYXRhOm51bGwsZGF0ZVRpbWU6bnVsbCxkZWNvZGluZzpudWxsLGRlZmF1bHQ6V3QsZGVmZXI6V3QsZGlyOm51bGwsZGlyTmFtZTpudWxsLGRpc2FibGVkOld0LGRvd25sb2FkOm5KLGRyYWdnYWJsZTpScixlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZmV0Y2hQcmlvcml0eTpudWxsLGZvcm06bnVsbCxmb3JtQWN0aW9uOm51bGwsZm9ybUVuY1R5cGU6bnVsbCxmb3JtTWV0aG9kOm51bGwsZm9ybU5vVmFsaWRhdGU6V3QsZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6R2EsaGVpZ2h0OlllLGhpZGRlbjpuSixoaWdoOlllLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGh0bWxGb3I6R2EsaHR0cEVxdWl2OkdhLGlkOm51bGwsaW1hZ2VTaXplczpudWxsLGltYWdlU3JjU2V0Om51bGwsaW5lcnQ6V3QsaW5wdXRNb2RlOm51bGwsaW50ZWdyaXR5Om51bGwsaXM6bnVsbCxpc01hcDpXdCxpdGVtSWQ6bnVsbCxpdGVtUHJvcDpHYSxpdGVtUmVmOkdhLGl0ZW1TY29wZTpXdCxpdGVtVHlwZTpHYSxraW5kOm51bGwsbGFiZWw6bnVsbCxsYW5nOm51bGwsbGFuZ3VhZ2U6bnVsbCxsaXN0Om51bGwsbG9hZGluZzpudWxsLGxvb3A6V3QsbG93OlllLG1hbmlmZXN0Om51bGwsbWF4Om51bGwsbWF4TGVuZ3RoOlllLG1lZGlhOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbWluTGVuZ3RoOlllLG11bHRpcGxlOld0LG11dGVkOld0LG5hbWU6bnVsbCxub25jZTpudWxsLG5vTW9kdWxlOld0LG5vVmFsaWRhdGU6V3Qsb25BYm9ydDpudWxsLG9uQWZ0ZXJQcmludDpudWxsLG9uQXV4Q2xpY2s6bnVsbCxvbkJlZm9yZU1hdGNoOm51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVmb3JlVG9nZ2xlOm51bGwsb25CZWZvcmVVbmxvYWQ6bnVsbCxvbkJsdXI6bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db250ZXh0TG9zdDpudWxsLG9uQ29udGV4dE1lbnU6bnVsbCxvbkNvbnRleHRSZXN0b3JlZDpudWxsLG9uQ29weTpudWxsLG9uQ3VlQ2hhbmdlOm51bGwsb25DdXQ6bnVsbCxvbkRibENsaWNrOm51bGwsb25EcmFnOm51bGwsb25EcmFnRW5kOm51bGwsb25EcmFnRW50ZXI6bnVsbCxvbkRyYWdFeGl0Om51bGwsb25EcmFnTGVhdmU6bnVsbCxvbkRyYWdPdmVyOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyb3A6bnVsbCxvbkR1cmF0aW9uQ2hhbmdlOm51bGwsb25FbXB0aWVkOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb3JtRGF0YTpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTGFuZ3VhZ2VDaGFuZ2U6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkRW5kOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1lc3NhZ2VFcnJvcjpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVqZWN0aW9uSGFuZGxlZDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TY3JvbGxFbmQ6bnVsbCxvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2xvdENoYW5nZTpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVuaGFuZGxlZFJlamVjdGlvbjpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvbldoZWVsOm51bGwsb3BlbjpXdCxvcHRpbXVtOlllLHBhdHRlcm46bnVsbCxwaW5nOkdhLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6V3QscG9wb3ZlcjpudWxsLHBvcG92ZXJUYXJnZXQ6bnVsbCxwb3BvdmVyVGFyZ2V0QWN0aW9uOm51bGwscG9zdGVyOm51bGwscHJlbG9hZDpudWxsLHJlYWRPbmx5Old0LHJlZmVycmVyUG9saWN5Om51bGwscmVsOkdhLHJlcXVpcmVkOld0LHJldmVyc2VkOld0LHJvd3M6WWUscm93U3BhbjpZZSxzYW5kYm94OkdhLHNjb3BlOm51bGwsc2NvcGVkOld0LHNlYW1sZXNzOld0LHNlbGVjdGVkOld0LHNoYWRvd1Jvb3RDbG9uYWJsZTpXdCxzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6V3Qsc2hhZG93Um9vdE1vZGU6bnVsbCxzaGFwZTpudWxsLHNpemU6WWUsc2l6ZXM6bnVsbCxzbG90Om51bGwsc3BhbjpZZSxzcGVsbENoZWNrOlJyLHNyYzpudWxsLHNyY0RvYzpudWxsLHNyY0xhbmc6bnVsbCxzcmNTZXQ6bnVsbCxzdGFydDpZZSxzdGVwOm51bGwsc3R5bGU6bnVsbCx0YWJJbmRleDpZZSx0YXJnZXQ6bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHR5cGU6bnVsbCx0eXBlTXVzdE1hdGNoOld0LHVzZU1hcDpudWxsLHZhbHVlOlJyLHdpZHRoOlllLHdyYXA6bnVsbCx3cml0aW5nU3VnZ2VzdGlvbnM6bnVsbCxhbGlnbjpudWxsLGFMaW5rOm51bGwsYXJjaGl2ZTpHYSxheGlzOm51bGwsYmFja2dyb3VuZDpudWxsLGJnQ29sb3I6bnVsbCxib3JkZXI6WWUsYm9yZGVyQ29sb3I6bnVsbCxib3R0b21NYXJnaW46WWUsY2VsbFBhZGRpbmc6bnVsbCxjZWxsU3BhY2luZzpudWxsLGNoYXI6bnVsbCxjaGFyT2ZmOm51bGwsY2xhc3NJZDpudWxsLGNsZWFyOm51bGwsY29kZTpudWxsLGNvZGVCYXNlOm51bGwsY29kZVR5cGU6bnVsbCxjb2xvcjpudWxsLGNvbXBhY3Q6V3QsZGVjbGFyZTpXdCxldmVudDpudWxsLGZhY2U6bnVsbCxmcmFtZTpudWxsLGZyYW1lQm9yZGVyOm51bGwsaFNwYWNlOlllLGxlZnRNYXJnaW46WWUsbGluazpudWxsLGxvbmdEZXNjOm51bGwsbG93U3JjOm51bGwsbWFyZ2luSGVpZ2h0OlllLG1hcmdpbldpZHRoOlllLG5vUmVzaXplOld0LG5vSHJlZjpXdCxub1NoYWRlOld0LG5vV3JhcDpXdCxvYmplY3Q6bnVsbCxwcm9maWxlOm51bGwscHJvbXB0Om51bGwscmV2Om51bGwscmlnaHRNYXJnaW46WWUscnVsZXM6bnVsbCxzY2hlbWU6bnVsbCxzY3JvbGxpbmc6UnIsc3RhbmRieTpudWxsLHN1bW1hcnk6bnVsbCx0ZXh0Om51bGwsdG9wTWFyZ2luOlllLHZhbHVlVHlwZTpudWxsLHZlcnNpb246bnVsbCx2QWxpZ246bnVsbCx2TGluazpudWxsLHZTcGFjZTpZZSxhbGxvd1RyYW5zcGFyZW5jeTpudWxsLGF1dG9Db3JyZWN0Om51bGwsYXV0b1NhdmU6bnVsbCxkaXNhYmxlUGljdHVyZUluUGljdHVyZTpXdCxkaXNhYmxlUmVtb3RlUGxheWJhY2s6V3QscHJlZml4Om51bGwscHJvcGVydHk6bnVsbCxyZXN1bHRzOlllLHNlY3VyaXR5Om51bGwsdW5zZWxlY3RhYmxlOm51bGx9LHNwYWNlOiJodG1sIix0cmFuc2Zvcm06Y0p9KX0pO3ZhciB5NXQsdzV0PWYoKCk9PntaM2UoKTtKMygpO25iKCk7eTV0PUxuKHthdHRyaWJ1dGVzOnthY2NlbnRIZWlnaHQ6ImFjY2VudC1oZWlnaHQiLGFsaWdubWVudEJhc2VsaW5lOiJhbGlnbm1lbnQtYmFzZWxpbmUiLGFyYWJpY0Zvcm06ImFyYWJpYy1mb3JtIixiYXNlbGluZVNoaWZ0OiJiYXNlbGluZS1zaGlmdCIsY2FwSGVpZ2h0OiJjYXAtaGVpZ2h0IixjbGFzc05hbWU6ImNsYXNzIixjbGlwUGF0aDoiY2xpcC1wYXRoIixjbGlwUnVsZToiY2xpcC1ydWxlIixjb2xvckludGVycG9sYXRpb246ImNvbG9yLWludGVycG9sYXRpb24iLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6ImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsY29sb3JQcm9maWxlOiJjb2xvci1wcm9maWxlIixjb2xvclJlbmRlcmluZzoiY29sb3ItcmVuZGVyaW5nIixjcm9zc09yaWdpbjoiY3Jvc3NvcmlnaW4iLGRhdGFUeXBlOiJkYXRhdHlwZSIsZG9taW5hbnRCYXNlbGluZToiZG9taW5hbnQtYmFzZWxpbmUiLGVuYWJsZUJhY2tncm91bmQ6ImVuYWJsZS1iYWNrZ3JvdW5kIixmaWxsT3BhY2l0eToiZmlsbC1vcGFjaXR5IixmaWxsUnVsZToiZmlsbC1ydWxlIixmbG9vZENvbG9yOiJmbG9vZC1jb2xvciIsZmxvb2RPcGFjaXR5OiJmbG9vZC1vcGFjaXR5Iixmb250RmFtaWx5OiJmb250LWZhbWlseSIsZm9udFNpemU6ImZvbnQtc2l6ZSIsZm9udFNpemVBZGp1c3Q6ImZvbnQtc2l6ZS1hZGp1c3QiLGZvbnRTdHJldGNoOiJmb250LXN0cmV0Y2giLGZvbnRTdHlsZToiZm9udC1zdHlsZSIsZm9udFZhcmlhbnQ6ImZvbnQtdmFyaWFudCIsZm9udFdlaWdodDoiZm9udC13ZWlnaHQiLGdseXBoTmFtZToiZ2x5cGgtbmFtZSIsZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6ImdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwiLGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDoiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwiLGhyZWZMYW5nOiJocmVmbGFuZyIsaG9yaXpBZHZYOiJob3Jpei1hZHYteCIsaG9yaXpPcmlnaW5YOiJob3Jpei1vcmlnaW4teCIsaG9yaXpPcmlnaW5ZOiJob3Jpei1vcmlnaW4teSIsaW1hZ2VSZW5kZXJpbmc6ImltYWdlLXJlbmRlcmluZyIsbGV0dGVyU3BhY2luZzoibGV0dGVyLXNwYWNpbmciLGxpZ2h0aW5nQ29sb3I6ImxpZ2h0aW5nLWNvbG9yIixtYXJrZXJFbmQ6Im1hcmtlci1lbmQiLG1hcmtlck1pZDoibWFya2VyLW1pZCIsbWFya2VyU3RhcnQ6Im1hcmtlci1zdGFydCIsbmF2RG93bjoibmF2LWRvd24iLG5hdkRvd25MZWZ0OiJuYXYtZG93bi1sZWZ0IixuYXZEb3duUmlnaHQ6Im5hdi1kb3duLXJpZ2h0IixuYXZMZWZ0OiJuYXYtbGVmdCIsbmF2TmV4dDoibmF2LW5leHQiLG5hdlByZXY6Im5hdi1wcmV2IixuYXZSaWdodDoibmF2LXJpZ2h0IixuYXZVcDoibmF2LXVwIixuYXZVcExlZnQ6Im5hdi11cC1sZWZ0IixuYXZVcFJpZ2h0OiJuYXYtdXAtcmlnaHQiLG9uQWJvcnQ6Im9uYWJvcnQiLG9uQWN0aXZhdGU6Im9uYWN0aXZhdGUiLG9uQWZ0ZXJQcmludDoib25hZnRlcnByaW50IixvbkJlZm9yZVByaW50OiJvbmJlZm9yZXByaW50IixvbkJlZ2luOiJvbmJlZ2luIixvbkNhbmNlbDoib25jYW5jZWwiLG9uQ2FuUGxheToib25jYW5wbGF5IixvbkNhblBsYXlUaHJvdWdoOiJvbmNhbnBsYXl0aHJvdWdoIixvbkNoYW5nZToib25jaGFuZ2UiLG9uQ2xpY2s6Im9uY2xpY2siLG9uQ2xvc2U6Im9uY2xvc2UiLG9uQ29weToib25jb3B5IixvbkN1ZUNoYW5nZToib25jdWVjaGFuZ2UiLG9uQ3V0OiJvbmN1dCIsb25EYmxDbGljazoib25kYmxjbGljayIsb25EcmFnOiJvbmRyYWciLG9uRHJhZ0VuZDoib25kcmFnZW5kIixvbkRyYWdFbnRlcjoib25kcmFnZW50ZXIiLG9uRHJhZ0V4aXQ6Im9uZHJhZ2V4aXQiLG9uRHJhZ0xlYXZlOiJvbmRyYWdsZWF2ZSIsb25EcmFnT3Zlcjoib25kcmFnb3ZlciIsb25EcmFnU3RhcnQ6Im9uZHJhZ3N0YXJ0IixvbkRyb3A6Im9uZHJvcCIsb25EdXJhdGlvbkNoYW5nZToib25kdXJhdGlvbmNoYW5nZSIsb25FbXB0aWVkOiJvbmVtcHRpZWQiLG9uRW5kOiJvbmVuZCIsb25FbmRlZDoib25lbmRlZCIsb25FcnJvcjoib25lcnJvciIsb25Gb2N1czoib25mb2N1cyIsb25Gb2N1c0luOiJvbmZvY3VzaW4iLG9uRm9jdXNPdXQ6Im9uZm9jdXNvdXQiLG9uSGFzaENoYW5nZToib25oYXNoY2hhbmdlIixvbklucHV0OiJvbmlucHV0IixvbkludmFsaWQ6Im9uaW52YWxpZCIsb25LZXlEb3duOiJvbmtleWRvd24iLG9uS2V5UHJlc3M6Im9ua2V5cHJlc3MiLG9uS2V5VXA6Im9ua2V5dXAiLG9uTG9hZDoib25sb2FkIixvbkxvYWRlZERhdGE6Im9ubG9hZGVkZGF0YSIsb25Mb2FkZWRNZXRhZGF0YToib25sb2FkZWRtZXRhZGF0YSIsb25Mb2FkU3RhcnQ6Im9ubG9hZHN0YXJ0Iixvbk1lc3NhZ2U6Im9ubWVzc2FnZSIsb25Nb3VzZURvd246Im9ubW91c2Vkb3duIixvbk1vdXNlRW50ZXI6Im9ubW91c2VlbnRlciIsb25Nb3VzZUxlYXZlOiJvbm1vdXNlbGVhdmUiLG9uTW91c2VNb3ZlOiJvbm1vdXNlbW92ZSIsb25Nb3VzZU91dDoib25tb3VzZW91dCIsb25Nb3VzZU92ZXI6Im9ubW91c2VvdmVyIixvbk1vdXNlVXA6Im9ubW91c2V1cCIsb25Nb3VzZVdoZWVsOiJvbm1vdXNld2hlZWwiLG9uT2ZmbGluZToib25vZmZsaW5lIixvbk9ubGluZToib25vbmxpbmUiLG9uUGFnZUhpZGU6Im9ucGFnZWhpZGUiLG9uUGFnZVNob3c6Im9ucGFnZXNob3ciLG9uUGFzdGU6Im9ucGFzdGUiLG9uUGF1c2U6Im9ucGF1c2UiLG9uUGxheToib25wbGF5IixvblBsYXlpbmc6Im9ucGxheWluZyIsb25Qb3BTdGF0ZToib25wb3BzdGF0ZSIsb25Qcm9ncmVzczoib25wcm9ncmVzcyIsb25SYXRlQ2hhbmdlOiJvbnJhdGVjaGFuZ2UiLG9uUmVwZWF0OiJvbnJlcGVhdCIsb25SZXNldDoib25yZXNldCIsb25SZXNpemU6Im9ucmVzaXplIixvblNjcm9sbDoib25zY3JvbGwiLG9uU2Vla2VkOiJvbnNlZWtlZCIsb25TZWVraW5nOiJvbnNlZWtpbmciLG9uU2VsZWN0OiJvbnNlbGVjdCIsb25TaG93OiJvbnNob3ciLG9uU3RhbGxlZDoib25zdGFsbGVkIixvblN0b3JhZ2U6Im9uc3RvcmFnZSIsb25TdWJtaXQ6Im9uc3VibWl0IixvblN1c3BlbmQ6Im9uc3VzcGVuZCIsb25UaW1lVXBkYXRlOiJvbnRpbWV1cGRhdGUiLG9uVG9nZ2xlOiJvbnRvZ2dsZSIsb25VbmxvYWQ6Im9udW5sb2FkIixvblZvbHVtZUNoYW5nZToib252b2x1bWVjaGFuZ2UiLG9uV2FpdGluZzoib253YWl0aW5nIixvblpvb206Im9uem9vbSIsb3ZlcmxpbmVQb3NpdGlvbjoib3ZlcmxpbmUtcG9zaXRpb24iLG92ZXJsaW5lVGhpY2tuZXNzOiJvdmVybGluZS10aGlja25lc3MiLHBhaW50T3JkZXI6InBhaW50LW9yZGVyIixwYW5vc2UxOiJwYW5vc2UtMSIscG9pbnRlckV2ZW50czoicG9pbnRlci1ldmVudHMiLHJlZmVycmVyUG9saWN5OiJyZWZlcnJlcnBvbGljeSIscmVuZGVyaW5nSW50ZW50OiJyZW5kZXJpbmctaW50ZW50IixzaGFwZVJlbmRlcmluZzoic2hhcGUtcmVuZGVyaW5nIixzdG9wQ29sb3I6InN0b3AtY29sb3IiLHN0b3BPcGFjaXR5OiJzdG9wLW9wYWNpdHkiLHN0cmlrZXRocm91Z2hQb3NpdGlvbjoic3RyaWtldGhyb3VnaC1wb3NpdGlvbiIsc3RyaWtldGhyb3VnaFRoaWNrbmVzczoic3RyaWtldGhyb3VnaC10aGlja25lc3MiLHN0cm9rZURhc2hBcnJheToic3Ryb2tlLWRhc2hhcnJheSIsc3Ryb2tlRGFzaE9mZnNldDoic3Ryb2tlLWRhc2hvZmZzZXQiLHN0cm9rZUxpbmVDYXA6InN0cm9rZS1saW5lY2FwIixzdHJva2VMaW5lSm9pbjoic3Ryb2tlLWxpbmVqb2luIixzdHJva2VNaXRlckxpbWl0OiJzdHJva2UtbWl0ZXJsaW1pdCIsc3Ryb2tlT3BhY2l0eToic3Ryb2tlLW9wYWNpdHkiLHN0cm9rZVdpZHRoOiJzdHJva2Utd2lkdGgiLHRhYkluZGV4OiJ0YWJpbmRleCIsdGV4dEFuY2hvcjoidGV4dC1hbmNob3IiLHRleHREZWNvcmF0aW9uOiJ0ZXh0LWRlY29yYXRpb24iLHRleHRSZW5kZXJpbmc6InRleHQtcmVuZGVyaW5nIix0cmFuc2Zvcm1PcmlnaW46InRyYW5zZm9ybS1vcmlnaW4iLHR5cGVPZjoidHlwZW9mIix1bmRlcmxpbmVQb3NpdGlvbjoidW5kZXJsaW5lLXBvc2l0aW9uIix1bmRlcmxpbmVUaGlja25lc3M6InVuZGVybGluZS10aGlja25lc3MiLHVuaWNvZGVCaWRpOiJ1bmljb2RlLWJpZGkiLHVuaWNvZGVSYW5nZToidW5pY29kZS1yYW5nZSIsdW5pdHNQZXJFbToidW5pdHMtcGVyLWVtIix2QWxwaGFiZXRpYzoidi1hbHBoYWJldGljIix2SGFuZ2luZzoidi1oYW5naW5nIix2SWRlb2dyYXBoaWM6InYtaWRlb2dyYXBoaWMiLHZNYXRoZW1hdGljYWw6InYtbWF0aGVtYXRpY2FsIix2ZWN0b3JFZmZlY3Q6InZlY3Rvci1lZmZlY3QiLHZlcnRBZHZZOiJ2ZXJ0LWFkdi15Iix2ZXJ0T3JpZ2luWDoidmVydC1vcmlnaW4teCIsdmVydE9yaWdpblk6InZlcnQtb3JpZ2luLXkiLHdvcmRTcGFjaW5nOiJ3b3JkLXNwYWNpbmciLHdyaXRpbmdNb2RlOiJ3cml0aW5nLW1vZGUiLHhIZWlnaHQ6IngtaGVpZ2h0IixwbGF5YmFja09yZGVyOiJwbGF5YmFja29yZGVyIix0aW1lbGluZUJlZ2luOiJ0aW1lbGluZWJlZ2luIn0scHJvcGVydGllczp7YWJvdXQ6UG8sYWNjZW50SGVpZ2h0OlllLGFjY3VtdWxhdGU6bnVsbCxhZGRpdGl2ZTpudWxsLGFsaWdubWVudEJhc2VsaW5lOm51bGwsYWxwaGFiZXRpYzpZZSxhbXBsaXR1ZGU6WWUsYXJhYmljRm9ybTpudWxsLGFzY2VudDpZZSxhdHRyaWJ1dGVOYW1lOm51bGwsYXR0cmlidXRlVHlwZTpudWxsLGF6aW11dGg6WWUsYmFuZHdpZHRoOm51bGwsYmFzZWxpbmVTaGlmdDpudWxsLGJhc2VGcmVxdWVuY3k6bnVsbCxiYXNlUHJvZmlsZTpudWxsLGJib3g6bnVsbCxiZWdpbjpudWxsLGJpYXM6WWUsYnk6bnVsbCxjYWxjTW9kZTpudWxsLGNhcEhlaWdodDpZZSxjbGFzc05hbWU6R2EsY2xpcDpudWxsLGNsaXBQYXRoOm51bGwsY2xpcFBhdGhVbml0czpudWxsLGNsaXBSdWxlOm51bGwsY29sb3I6bnVsbCxjb2xvckludGVycG9sYXRpb246bnVsbCxjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOm51bGwsY29sb3JQcm9maWxlOm51bGwsY29sb3JSZW5kZXJpbmc6bnVsbCxjb250ZW50Om51bGwsY29udGVudFNjcmlwdFR5cGU6bnVsbCxjb250ZW50U3R5bGVUeXBlOm51bGwsY3Jvc3NPcmlnaW46bnVsbCxjdXJzb3I6bnVsbCxjeDpudWxsLGN5Om51bGwsZDpudWxsLGRhdGFUeXBlOm51bGwsZGVmYXVsdEFjdGlvbjpudWxsLGRlc2NlbnQ6WWUsZGlmZnVzZUNvbnN0YW50OlllLGRpcmVjdGlvbjpudWxsLGRpc3BsYXk6bnVsbCxkdXI6bnVsbCxkaXZpc29yOlllLGRvbWluYW50QmFzZWxpbmU6bnVsbCxkb3dubG9hZDpXdCxkeDpudWxsLGR5Om51bGwsZWRnZU1vZGU6bnVsbCxlZGl0YWJsZTpudWxsLGVsZXZhdGlvbjpZZSxlbmFibGVCYWNrZ3JvdW5kOm51bGwsZW5kOm51bGwsZXZlbnQ6bnVsbCxleHBvbmVudDpZZSxleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOm51bGwsZmlsbDpudWxsLGZpbGxPcGFjaXR5OlllLGZpbGxSdWxlOm51bGwsZmlsdGVyOm51bGwsZmlsdGVyUmVzOm51bGwsZmlsdGVyVW5pdHM6bnVsbCxmbG9vZENvbG9yOm51bGwsZmxvb2RPcGFjaXR5Om51bGwsZm9jdXNhYmxlOm51bGwsZm9jdXNIaWdobGlnaHQ6bnVsbCxmb250RmFtaWx5Om51bGwsZm9udFNpemU6bnVsbCxmb250U2l6ZUFkanVzdDpudWxsLGZvbnRTdHJldGNoOm51bGwsZm9udFN0eWxlOm51bGwsZm9udFZhcmlhbnQ6bnVsbCxmb250V2VpZ2h0Om51bGwsZm9ybWF0Om51bGwsZnI6bnVsbCxmcm9tOm51bGwsZng6bnVsbCxmeTpudWxsLGcxOlUwLGcyOlUwLGdseXBoTmFtZTpVMCxnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDpudWxsLGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDpudWxsLGdseXBoUmVmOm51bGwsZ3JhZGllbnRUcmFuc2Zvcm06bnVsbCxncmFkaWVudFVuaXRzOm51bGwsaGFuZGxlcjpudWxsLGhhbmdpbmc6WWUsaGF0Y2hDb250ZW50VW5pdHM6bnVsbCxoYXRjaFVuaXRzOm51bGwsaGVpZ2h0Om51bGwsaHJlZjpudWxsLGhyZWZMYW5nOm51bGwsaG9yaXpBZHZYOlllLGhvcml6T3JpZ2luWDpZZSxob3Jpek9yaWdpblk6WWUsaWQ6bnVsbCxpZGVvZ3JhcGhpYzpZZSxpbWFnZVJlbmRlcmluZzpudWxsLGluaXRpYWxWaXNpYmlsaXR5Om51bGwsaW46bnVsbCxpbjI6bnVsbCxpbnRlcmNlcHQ6WWUsazpZZSxrMTpZZSxrMjpZZSxrMzpZZSxrNDpZZSxrZXJuZWxNYXRyaXg6UG8sa2VybmVsVW5pdExlbmd0aDpudWxsLGtleVBvaW50czpudWxsLGtleVNwbGluZXM6bnVsbCxrZXlUaW1lczpudWxsLGtlcm5pbmc6bnVsbCxsYW5nOm51bGwsbGVuZ3RoQWRqdXN0Om51bGwsbGV0dGVyU3BhY2luZzpudWxsLGxpZ2h0aW5nQ29sb3I6bnVsbCxsaW1pdGluZ0NvbmVBbmdsZTpZZSxsb2NhbDpudWxsLG1hcmtlckVuZDpudWxsLG1hcmtlck1pZDpudWxsLG1hcmtlclN0YXJ0Om51bGwsbWFya2VySGVpZ2h0Om51bGwsbWFya2VyVW5pdHM6bnVsbCxtYXJrZXJXaWR0aDpudWxsLG1hc2s6bnVsbCxtYXNrQ29udGVudFVuaXRzOm51bGwsbWFza1VuaXRzOm51bGwsbWF0aGVtYXRpY2FsOm51bGwsbWF4Om51bGwsbWVkaWE6bnVsbCxtZWRpYUNoYXJhY3RlckVuY29kaW5nOm51bGwsbWVkaWFDb250ZW50RW5jb2RpbmdzOm51bGwsbWVkaWFTaXplOlllLG1lZGlhVGltZTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1vZGU6bnVsbCxuYW1lOm51bGwsbmF2RG93bjpudWxsLG5hdkRvd25MZWZ0Om51bGwsbmF2RG93blJpZ2h0Om51bGwsbmF2TGVmdDpudWxsLG5hdk5leHQ6bnVsbCxuYXZQcmV2Om51bGwsbmF2UmlnaHQ6bnVsbCxuYXZVcDpudWxsLG5hdlVwTGVmdDpudWxsLG5hdlVwUmlnaHQ6bnVsbCxudW1PY3RhdmVzOm51bGwsb2JzZXJ2ZXI6bnVsbCxvZmZzZXQ6bnVsbCxvbkFib3J0Om51bGwsb25BY3RpdmF0ZTpudWxsLG9uQWZ0ZXJQcmludDpudWxsLG9uQmVmb3JlUHJpbnQ6bnVsbCxvbkJlZ2luOm51bGwsb25DYW5jZWw6bnVsbCxvbkNhblBsYXk6bnVsbCxvbkNhblBsYXlUaHJvdWdoOm51bGwsb25DaGFuZ2U6bnVsbCxvbkNsaWNrOm51bGwsb25DbG9zZTpudWxsLG9uQ29weTpudWxsLG9uQ3VlQ2hhbmdlOm51bGwsb25DdXQ6bnVsbCxvbkRibENsaWNrOm51bGwsb25EcmFnOm51bGwsb25EcmFnRW5kOm51bGwsb25EcmFnRW50ZXI6bnVsbCxvbkRyYWdFeGl0Om51bGwsb25EcmFnTGVhdmU6bnVsbCxvbkRyYWdPdmVyOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyb3A6bnVsbCxvbkR1cmF0aW9uQ2hhbmdlOm51bGwsb25FbXB0aWVkOm51bGwsb25FbmQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvY3VzSW46bnVsbCxvbkZvY3VzT3V0Om51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25Mb2FkOm51bGwsb25Mb2FkZWREYXRhOm51bGwsb25Mb2FkZWRNZXRhZGF0YTpudWxsLG9uTG9hZFN0YXJ0Om51bGwsb25NZXNzYWdlOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uTW91c2VXaGVlbDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZXBlYXQ6bnVsbCxvblJlc2V0Om51bGwsb25SZXNpemU6bnVsbCxvblNjcm9sbDpudWxsLG9uU2Vla2VkOm51bGwsb25TZWVraW5nOm51bGwsb25TZWxlY3Q6bnVsbCxvblNob3c6bnVsbCxvblN0YWxsZWQ6bnVsbCxvblN0b3JhZ2U6bnVsbCxvblN1Ym1pdDpudWxsLG9uU3VzcGVuZDpudWxsLG9uVGltZVVwZGF0ZTpudWxsLG9uVG9nZ2xlOm51bGwsb25VbmxvYWQ6bnVsbCxvblZvbHVtZUNoYW5nZTpudWxsLG9uV2FpdGluZzpudWxsLG9uWm9vbTpudWxsLG9wYWNpdHk6bnVsbCxvcGVyYXRvcjpudWxsLG9yZGVyOm51bGwsb3JpZW50Om51bGwsb3JpZW50YXRpb246bnVsbCxvcmlnaW46bnVsbCxvdmVyZmxvdzpudWxsLG92ZXJsYXk6bnVsbCxvdmVybGluZVBvc2l0aW9uOlllLG92ZXJsaW5lVGhpY2tuZXNzOlllLHBhaW50T3JkZXI6bnVsbCxwYW5vc2UxOm51bGwscGF0aDpudWxsLHBhdGhMZW5ndGg6WWUscGF0dGVybkNvbnRlbnRVbml0czpudWxsLHBhdHRlcm5UcmFuc2Zvcm06bnVsbCxwYXR0ZXJuVW5pdHM6bnVsbCxwaGFzZTpudWxsLHBpbmc6R2EscGl0Y2g6bnVsbCxwbGF5YmFja09yZGVyOm51bGwscG9pbnRlckV2ZW50czpudWxsLHBvaW50czpudWxsLHBvaW50c0F0WDpZZSxwb2ludHNBdFk6WWUscG9pbnRzQXRaOlllLHByZXNlcnZlQWxwaGE6bnVsbCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOm51bGwscHJpbWl0aXZlVW5pdHM6bnVsbCxwcm9wYWdhdGU6bnVsbCxwcm9wZXJ0eTpQbyxyOm51bGwscmFkaXVzOm51bGwscmVmZXJyZXJQb2xpY3k6bnVsbCxyZWZYOm51bGwscmVmWTpudWxsLHJlbDpQbyxyZXY6UG8scmVuZGVyaW5nSW50ZW50Om51bGwscmVwZWF0Q291bnQ6bnVsbCxyZXBlYXREdXI6bnVsbCxyZXF1aXJlZEV4dGVuc2lvbnM6UG8scmVxdWlyZWRGZWF0dXJlczpQbyxyZXF1aXJlZEZvbnRzOlBvLHJlcXVpcmVkRm9ybWF0czpQbyxyZXNvdXJjZTpudWxsLHJlc3RhcnQ6bnVsbCxyZXN1bHQ6bnVsbCxyb3RhdGU6bnVsbCxyeDpudWxsLHJ5Om51bGwsc2NhbGU6bnVsbCxzZWVkOm51bGwsc2hhcGVSZW5kZXJpbmc6bnVsbCxzaWRlOm51bGwsc2xvcGU6bnVsbCxzbmFwc2hvdFRpbWU6bnVsbCxzcGVjdWxhckNvbnN0YW50OlllLHNwZWN1bGFyRXhwb25lbnQ6WWUsc3ByZWFkTWV0aG9kOm51bGwsc3BhY2luZzpudWxsLHN0YXJ0T2Zmc2V0Om51bGwsc3RkRGV2aWF0aW9uOm51bGwsc3RlbWg6bnVsbCxzdGVtdjpudWxsLHN0aXRjaFRpbGVzOm51bGwsc3RvcENvbG9yOm51bGwsc3RvcE9wYWNpdHk6bnVsbCxzdHJpa2V0aHJvdWdoUG9zaXRpb246WWUsc3RyaWtldGhyb3VnaFRoaWNrbmVzczpZZSxzdHJpbmc6bnVsbCxzdHJva2U6bnVsbCxzdHJva2VEYXNoQXJyYXk6UG8sc3Ryb2tlRGFzaE9mZnNldDpudWxsLHN0cm9rZUxpbmVDYXA6bnVsbCxzdHJva2VMaW5lSm9pbjpudWxsLHN0cm9rZU1pdGVyTGltaXQ6WWUsc3Ryb2tlT3BhY2l0eTpZZSxzdHJva2VXaWR0aDpudWxsLHN0eWxlOm51bGwsc3VyZmFjZVNjYWxlOlllLHN5bmNCZWhhdmlvcjpudWxsLHN5bmNCZWhhdmlvckRlZmF1bHQ6bnVsbCxzeW5jTWFzdGVyOm51bGwsc3luY1RvbGVyYW5jZTpudWxsLHN5bmNUb2xlcmFuY2VEZWZhdWx0Om51bGwsc3lzdGVtTGFuZ3VhZ2U6UG8sdGFiSW5kZXg6WWUsdGFibGVWYWx1ZXM6bnVsbCx0YXJnZXQ6bnVsbCx0YXJnZXRYOlllLHRhcmdldFk6WWUsdGV4dEFuY2hvcjpudWxsLHRleHREZWNvcmF0aW9uOm51bGwsdGV4dFJlbmRlcmluZzpudWxsLHRleHRMZW5ndGg6bnVsbCx0aW1lbGluZUJlZ2luOm51bGwsdGl0bGU6bnVsbCx0cmFuc2Zvcm1CZWhhdmlvcjpudWxsLHR5cGU6bnVsbCx0eXBlT2Y6UG8sdG86bnVsbCx0cmFuc2Zvcm06bnVsbCx0cmFuc2Zvcm1PcmlnaW46bnVsbCx1MTpudWxsLHUyOm51bGwsdW5kZXJsaW5lUG9zaXRpb246WWUsdW5kZXJsaW5lVGhpY2tuZXNzOlllLHVuaWNvZGU6bnVsbCx1bmljb2RlQmlkaTpudWxsLHVuaWNvZGVSYW5nZTpudWxsLHVuaXRzUGVyRW06WWUsdmFsdWVzOm51bGwsdkFscGhhYmV0aWM6WWUsdk1hdGhlbWF0aWNhbDpZZSx2ZWN0b3JFZmZlY3Q6bnVsbCx2SGFuZ2luZzpZZSx2SWRlb2dyYXBoaWM6WWUsdmVyc2lvbjpudWxsLHZlcnRBZHZZOlllLHZlcnRPcmlnaW5YOlllLHZlcnRPcmlnaW5ZOlllLHZpZXdCb3g6bnVsbCx2aWV3VGFyZ2V0Om51bGwsdmlzaWJpbGl0eTpudWxsLHdpZHRoOm51bGwsd2lkdGhzOm51bGwsd29yZFNwYWNpbmc6bnVsbCx3cml0aW5nTW9kZTpudWxsLHg6bnVsbCx4MTpudWxsLHgyOm51bGwseENoYW5uZWxTZWxlY3RvcjpudWxsLHhIZWlnaHQ6WWUseTpudWxsLHkxOm51bGwseTI6bnVsbCx5Q2hhbm5lbFNlbGVjdG9yOm51bGwsejpudWxsLHpvb21BbmRQYW46bnVsbH0sc3BhY2U6InN2ZyIsdHJhbnNmb3JtOmxKfSl9KTt2YXIgUTNlLE01dD1mKCgpPT57SjMoKTtRM2U9TG4oe3Byb3BlcnRpZXM6e3hMaW5rQWN0dWF0ZTpudWxsLHhMaW5rQXJjUm9sZTpudWxsLHhMaW5rSHJlZjpudWxsLHhMaW5rUm9sZTpudWxsLHhMaW5rU2hvdzpudWxsLHhMaW5rVGl0bGU6bnVsbCx4TGlua1R5cGU6bnVsbH0sc3BhY2U6InhsaW5rIix0cmFuc2Zvcm0oYSxlKXtyZXR1cm4ieGxpbms6IitlLnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgSjNlLGs1dD1mKCgpPT57SjMoKTtYM2UoKTtKM2U9TG4oe2F0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0scHJvcGVydGllczp7eG1sbnNYTGluazpudWxsLHhtbG5zOm51bGx9LHNwYWNlOiJ4bWxucyIsdHJhbnNmb3JtOmNKfSl9KTt2YXIgZWRlLFM1dD1mKCgpPT57SjMoKTtlZGU9TG4oe3Byb3BlcnRpZXM6e3htbEJhc2U6bnVsbCx4bWxMYW5nOm51bGwseG1sU3BhY2U6bnVsbH0sc3BhY2U6InhtbCIsdHJhbnNmb3JtKGEsZSl7cmV0dXJuInhtbDoiK2Uuc2xpY2UoMykudG9Mb3dlckNhc2UoKX19KX0pO3ZhciB6NXQ9ZigoKT0+e30pO2Z1bmN0aW9uIHRkZShhLGUpe2xldCB0PVQ4KGUpLHI9ZSxpPVVzO2lmKHQgaW4gYS5ub3JtYWwpcmV0dXJuIGEucHJvcGVydHlbYS5ub3JtYWxbdF1dO2lmKHQubGVuZ3RoPjQmJnQuc2xpY2UoMCw0KT09PSJkYXRhIiYmZFNhLnRlc3QoZSkpe2lmKGUuY2hhckF0KDQpPT09Ii0iKXtsZXQgbz1lLnNsaWNlKDUpLnJlcGxhY2UoQzV0LHBTYSk7cj0iZGF0YSIrby5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStvLnNsaWNlKDEpfWVsc2V7bGV0IG89ZS5zbGljZSg0KTtpZighQzV0LnRlc3Qobykpe2xldCBuPW8ucmVwbGFjZShjU2EsdVNhKTtuLmNoYXJBdCgwKSE9PSItIiYmKG49Ii0iK24pLGU9ImRhdGEiK259fWk9UTN9cmV0dXJuIG5ldyBpKHIsZSl9ZnVuY3Rpb24gdVNhKGEpe3JldHVybiItIithLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gcFNhKGEpe3JldHVybiBhLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpfXZhciBjU2EsQzV0LGRTYSxfNXQ9ZigoKT0+e1kzZSgpO1czZSgpO29KKCk7Y1NhPS9bQS1aXS9nLEM1dD0vLVthLXpdL2csZFNhPS9eZGF0YVstXHcuOl0rJC9pO3ModGRlLCJmaW5kIik7cyh1U2EsImtlYmFiIik7cyhwU2EsImNhbWVsY2FzZSIpfSk7dmFyIFQ1dCxkSixhZGU9ZigoKT0+e201dCgpO2I1dCgpO3g1dCgpO3c1dCgpO001dCgpO2s1dCgpO1M1dCgpO3o1dCgpO181dCgpO29KKCk7VDV0PVUzZShbSzNlLHY1dCxRM2UsSjNlLGVkZV0sImh0bWwiKSxkSj1VM2UoW0szZSx5NXQsUTNlLEozZSxlZGVdLCJzdmciKX0pO2Z1bmN0aW9uIHJkZShhLGUpe2lmKGE9YS5yZXBsYWNlKGUuc3Vic2V0P2JTYShlLnN1YnNldCk6ZlNhLHIpLGUuc3Vic2V0fHxlLmVzY2FwZU9ubHkpcmV0dXJuIGE7cmV0dXJuIGEucmVwbGFjZShoU2EsdCkucmVwbGFjZShtU2Escik7ZnVuY3Rpb24gdChpLG8sbil7cmV0dXJuIGUuZm9ybWF0KChpLmNoYXJDb2RlQXQoMCktNTUyOTYpKjEwMjQraS5jaGFyQ29kZUF0KDEpLTU2MzIwKzY1NTM2LG4uY2hhckNvZGVBdChvKzIpLGUpfWZ1bmN0aW9uIHIoaSxvLG4pe3JldHVybiBlLmZvcm1hdChpLmNoYXJDb2RlQXQoMCksbi5jaGFyQ29kZUF0KG8rMSksZSl9fWZ1bmN0aW9uIGJTYShhKXtsZXQgZT1MNXQuZ2V0KGEpO3JldHVybiBlfHwoZT12U2EoYSksTDV0LnNldChhLGUpKSxlfWZ1bmN0aW9uIHZTYShhKXtsZXQgZT1bXSx0PS0xO2Zvcig7Kyt0PGEubGVuZ3RoOyllLnB1c2goYVt0XS5yZXBsYWNlKGdTYSwiXFwkJiIpKTtyZXR1cm4gbmV3IFJlZ0V4cCgiKD86IitlLmpvaW4oInwiKSsiKSIsImciKX12YXIgZlNhLGhTYSxtU2EsZ1NhLEw1dCwkNXQ9ZigoKT0+e2ZTYT0vWyImJzw+YF0vZyxoU2E9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nLG1TYT0vW1x4MDEtXHRcdlxmXHgwRS1ceDFGXHg3Rlx4ODFceDhEXHg4Rlx4OTBceDlEXHhBMC1cdUZGRkZdL2csZ1NhPS9bfFxce30oKVtcXV4kKyo/Ll0vZyxMNXQ9bmV3IFdlYWtNYXA7cyhyZGUsImNvcmUiKTtzKGJTYSwiY2hhcmFjdGVyc1RvRXhwcmVzc2lvbkNhY2hlZCIpO3ModlNhLCJjaGFyYWN0ZXJzVG9FeHByZXNzaW9uIil9KTtmdW5jdGlvbiBENXQoYSxlLHQpe2xldCByPSImI3giK2EudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIHQmJmUmJiF4U2EudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKT9yOnIrIjsifXZhciB4U2EsQTV0PWYoKCk9Pnt4U2E9L1tcZEEtRmEtZl0vO3MoRDV0LCJ0b0hleGFkZWNpbWFsIil9KTtmdW5jdGlvbiBQNXQoYSxlLHQpe2xldCByPSImIyIrU3RyaW5nKGEpO3JldHVybiB0JiZlJiYheVNhLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlKSk/cjpyKyI7In12YXIgeVNhLEU1dD1mKCgpPT57eVNhPS9cZC87cyhQNXQsInRvRGVjaW1hbCIpfSk7dmFyIEk1dCxONXQ9ZigoKT0+e0k1dD1bIkFFbGlnIiwiQU1QIiwiQWFjdXRlIiwiQWNpcmMiLCJBZ3JhdmUiLCJBcmluZyIsIkF0aWxkZSIsIkF1bWwiLCJDT1BZIiwiQ2NlZGlsIiwiRVRIIiwiRWFjdXRlIiwiRWNpcmMiLCJFZ3JhdmUiLCJFdW1sIiwiR1QiLCJJYWN1dGUiLCJJY2lyYyIsIklncmF2ZSIsIkl1bWwiLCJMVCIsIk50aWxkZSIsIk9hY3V0ZSIsIk9jaXJjIiwiT2dyYXZlIiwiT3NsYXNoIiwiT3RpbGRlIiwiT3VtbCIsIlFVT1QiLCJSRUciLCJUSE9STiIsIlVhY3V0ZSIsIlVjaXJjIiwiVWdyYXZlIiwiVXVtbCIsIllhY3V0ZSIsImFhY3V0ZSIsImFjaXJjIiwiYWN1dGUiLCJhZWxpZyIsImFncmF2ZSIsImFtcCIsImFyaW5nIiwiYXRpbGRlIiwiYXVtbCIsImJydmJhciIsImNjZWRpbCIsImNlZGlsIiwiY2VudCIsImNvcHkiLCJjdXJyZW4iLCJkZWciLCJkaXZpZGUiLCJlYWN1dGUiLCJlY2lyYyIsImVncmF2ZSIsImV0aCIsImV1bWwiLCJmcmFjMTIiLCJmcmFjMTQiLCJmcmFjMzQiLCJndCIsImlhY3V0ZSIsImljaXJjIiwiaWV4Y2wiLCJpZ3JhdmUiLCJpcXVlc3QiLCJpdW1sIiwibGFxdW8iLCJsdCIsIm1hY3IiLCJtaWNybyIsIm1pZGRvdCIsIm5ic3AiLCJub3QiLCJudGlsZGUiLCJvYWN1dGUiLCJvY2lyYyIsIm9ncmF2ZSIsIm9yZGYiLCJvcmRtIiwib3NsYXNoIiwib3RpbGRlIiwib3VtbCIsInBhcmEiLCJwbHVzbW4iLCJwb3VuZCIsInF1b3QiLCJyYXF1byIsInJlZyIsInNlY3QiLCJzaHkiLCJzdXAxIiwic3VwMiIsInN1cDMiLCJzemxpZyIsInRob3JuIiwidGltZXMiLCJ1YWN1dGUiLCJ1Y2lyYyIsInVncmF2ZSIsInVtbCIsInV1bWwiLCJ5YWN1dGUiLCJ5ZW4iLCJ5dW1sIl19KTt2YXIgdUosUjV0PWYoKCk9Pnt1Sj17bmJzcDoiXHhBMCIsaWV4Y2w6Ilx4QTEiLGNlbnQ6Ilx4QTIiLHBvdW5kOiJceEEzIixjdXJyZW46Ilx4QTQiLHllbjoiXHhBNSIsYnJ2YmFyOiJceEE2IixzZWN0OiJceEE3Iix1bWw6Ilx4QTgiLGNvcHk6Ilx4QTkiLG9yZGY6Ilx4QUEiLGxhcXVvOiJceEFCIixub3Q6Ilx4QUMiLHNoeToiXHhBRCIscmVnOiJceEFFIixtYWNyOiJceEFGIixkZWc6Ilx4QjAiLHBsdXNtbjoiXHhCMSIsc3VwMjoiXHhCMiIsc3VwMzoiXHhCMyIsYWN1dGU6Ilx4QjQiLG1pY3JvOiJceEI1IixwYXJhOiJceEI2IixtaWRkb3Q6Ilx4QjciLGNlZGlsOiJceEI4IixzdXAxOiJceEI5IixvcmRtOiJceEJBIixyYXF1bzoiXHhCQiIsZnJhYzE0OiJceEJDIixmcmFjMTI6Ilx4QkQiLGZyYWMzNDoiXHhCRSIsaXF1ZXN0OiJceEJGIixBZ3JhdmU6Ilx4QzAiLEFhY3V0ZToiXHhDMSIsQWNpcmM6Ilx4QzIiLEF0aWxkZToiXHhDMyIsQXVtbDoiXHhDNCIsQXJpbmc6Ilx4QzUiLEFFbGlnOiJceEM2IixDY2VkaWw6Ilx4QzciLEVncmF2ZToiXHhDOCIsRWFjdXRlOiJceEM5IixFY2lyYzoiXHhDQSIsRXVtbDoiXHhDQiIsSWdyYXZlOiJceENDIixJYWN1dGU6Ilx4Q0QiLEljaXJjOiJceENFIixJdW1sOiJceENGIixFVEg6Ilx4RDAiLE50aWxkZToiXHhEMSIsT2dyYXZlOiJceEQyIixPYWN1dGU6Ilx4RDMiLE9jaXJjOiJceEQ0IixPdGlsZGU6Ilx4RDUiLE91bWw6Ilx4RDYiLHRpbWVzOiJceEQ3IixPc2xhc2g6Ilx4RDgiLFVncmF2ZToiXHhEOSIsVWFjdXRlOiJceERBIixVY2lyYzoiXHhEQiIsVXVtbDoiXHhEQyIsWWFjdXRlOiJceEREIixUSE9STjoiXHhERSIsc3psaWc6Ilx4REYiLGFncmF2ZToiXHhFMCIsYWFjdXRlOiJceEUxIixhY2lyYzoiXHhFMiIsYXRpbGRlOiJceEUzIixhdW1sOiJceEU0IixhcmluZzoiXHhFNSIsYWVsaWc6Ilx4RTYiLGNjZWRpbDoiXHhFNyIsZWdyYXZlOiJceEU4IixlYWN1dGU6Ilx4RTkiLGVjaXJjOiJceEVBIixldW1sOiJceEVCIixpZ3JhdmU6Ilx4RUMiLGlhY3V0ZToiXHhFRCIsaWNpcmM6Ilx4RUUiLGl1bWw6Ilx4RUYiLGV0aDoiXHhGMCIsbnRpbGRlOiJceEYxIixvZ3JhdmU6Ilx4RjIiLG9hY3V0ZToiXHhGMyIsb2NpcmM6Ilx4RjQiLG90aWxkZToiXHhGNSIsb3VtbDoiXHhGNiIsZGl2aWRlOiJceEY3Iixvc2xhc2g6Ilx4RjgiLHVncmF2ZToiXHhGOSIsdWFjdXRlOiJceEZBIix1Y2lyYzoiXHhGQiIsdXVtbDoiXHhGQyIseWFjdXRlOiJceEZEIix0aG9ybjoiXHhGRSIseXVtbDoiXHhGRiIsZm5vZjoiXHUwMTkyIixBbHBoYToiXHUwMzkxIixCZXRhOiJcdTAzOTIiLEdhbW1hOiJcdTAzOTMiLERlbHRhOiJcdTAzOTQiLEVwc2lsb246Ilx1MDM5NSIsWmV0YToiXHUwMzk2IixFdGE6Ilx1MDM5NyIsVGhldGE6Ilx1MDM5OCIsSW90YToiXHUwMzk5IixLYXBwYToiXHUwMzlBIixMYW1iZGE6Ilx1MDM5QiIsTXU6Ilx1MDM5QyIsTnU6Ilx1MDM5RCIsWGk6Ilx1MDM5RSIsT21pY3JvbjoiXHUwMzlGIixQaToiXHUwM0EwIixSaG86Ilx1MDNBMSIsU2lnbWE6Ilx1MDNBMyIsVGF1OiJcdTAzQTQiLFVwc2lsb246Ilx1MDNBNSIsUGhpOiJcdTAzQTYiLENoaToiXHUwM0E3IixQc2k6Ilx1MDNBOCIsT21lZ2E6Ilx1MDNBOSIsYWxwaGE6Ilx1MDNCMSIsYmV0YToiXHUwM0IyIixnYW1tYToiXHUwM0IzIixkZWx0YToiXHUwM0I0IixlcHNpbG9uOiJcdTAzQjUiLHpldGE6Ilx1MDNCNiIsZXRhOiJcdTAzQjciLHRoZXRhOiJcdTAzQjgiLGlvdGE6Ilx1MDNCOSIsa2FwcGE6Ilx1MDNCQSIsbGFtYmRhOiJcdTAzQkIiLG11OiJcdTAzQkMiLG51OiJcdTAzQkQiLHhpOiJcdTAzQkUiLG9taWNyb246Ilx1MDNCRiIscGk6Ilx1MDNDMCIscmhvOiJcdTAzQzEiLHNpZ21hZjoiXHUwM0MyIixzaWdtYToiXHUwM0MzIix0YXU6Ilx1MDNDNCIsdXBzaWxvbjoiXHUwM0M1IixwaGk6Ilx1MDNDNiIsY2hpOiJcdTAzQzciLHBzaToiXHUwM0M4IixvbWVnYToiXHUwM0M5Iix0aGV0YXN5bToiXHUwM0QxIix1cHNpaDoiXHUwM0QyIixwaXY6Ilx1MDNENiIsYnVsbDoiXHUyMDIyIixoZWxsaXA6Ilx1MjAyNiIscHJpbWU6Ilx1MjAzMiIsUHJpbWU6Ilx1MjAzMyIsb2xpbmU6Ilx1MjAzRSIsZnJhc2w6Ilx1MjA0NCIsd2VpZXJwOiJcdTIxMTgiLGltYWdlOiJcdTIxMTEiLHJlYWw6Ilx1MjExQyIsdHJhZGU6Ilx1MjEyMiIsYWxlZnN5bToiXHUyMTM1IixsYXJyOiJcdTIxOTAiLHVhcnI6Ilx1MjE5MSIscmFycjoiXHUyMTkyIixkYXJyOiJcdTIxOTMiLGhhcnI6Ilx1MjE5NCIsY3JhcnI6Ilx1MjFCNSIsbEFycjoiXHUyMUQwIix1QXJyOiJcdTIxRDEiLHJBcnI6Ilx1MjFEMiIsZEFycjoiXHUyMUQzIixoQXJyOiJcdTIxRDQiLGZvcmFsbDoiXHUyMjAwIixwYXJ0OiJcdTIyMDIiLGV4aXN0OiJcdTIyMDMiLGVtcHR5OiJcdTIyMDUiLG5hYmxhOiJcdTIyMDciLGlzaW46Ilx1MjIwOCIsbm90aW46Ilx1MjIwOSIsbmk6Ilx1MjIwQiIscHJvZDoiXHUyMjBGIixzdW06Ilx1MjIxMSIsbWludXM6Ilx1MjIxMiIsbG93YXN0OiJcdTIyMTciLHJhZGljOiJcdTIyMUEiLHByb3A6Ilx1MjIxRCIsaW5maW46Ilx1MjIxRSIsYW5nOiJcdTIyMjAiLGFuZDoiXHUyMjI3IixvcjoiXHUyMjI4IixjYXA6Ilx1MjIyOSIsY3VwOiJcdTIyMkEiLGludDoiXHUyMjJCIix0aGVyZTQ6Ilx1MjIzNCIsc2ltOiJcdTIyM0MiLGNvbmc6Ilx1MjI0NSIsYXN5bXA6Ilx1MjI0OCIsbmU6Ilx1MjI2MCIsZXF1aXY6Ilx1MjI2MSIsbGU6Ilx1MjI2NCIsZ2U6Ilx1MjI2NSIsc3ViOiJcdTIyODIiLHN1cDoiXHUyMjgzIixuc3ViOiJcdTIyODQiLHN1YmU6Ilx1MjI4NiIsc3VwZToiXHUyMjg3IixvcGx1czoiXHUyMjk1IixvdGltZXM6Ilx1MjI5NyIscGVycDoiXHUyMkE1IixzZG90OiJcdTIyQzUiLGxjZWlsOiJcdTIzMDgiLHJjZWlsOiJcdTIzMDkiLGxmbG9vcjoiXHUyMzBBIixyZmxvb3I6Ilx1MjMwQiIsbGFuZzoiXHUyMzI5IixyYW5nOiJcdTIzMkEiLGxvejoiXHUyNUNBIixzcGFkZXM6Ilx1MjY2MCIsY2x1YnM6Ilx1MjY2MyIsaGVhcnRzOiJcdTI2NjUiLGRpYW1zOiJcdTI2NjYiLHF1b3Q6JyInLGFtcDoiJiIsbHQ6IjwiLGd0OiI+IixPRWxpZzoiXHUwMTUyIixvZWxpZzoiXHUwMTUzIixTY2Fyb246Ilx1MDE2MCIsc2Nhcm9uOiJcdTAxNjEiLFl1bWw6Ilx1MDE3OCIsY2lyYzoiXHUwMkM2Iix0aWxkZToiXHUwMkRDIixlbnNwOiJcdTIwMDIiLGVtc3A6Ilx1MjAwMyIsdGhpbnNwOiJcdTIwMDkiLHp3bmo6Ilx1MjAwQyIsendqOiJcdTIwMEQiLGxybToiXHUyMDBFIixybG06Ilx1MjAwRiIsbmRhc2g6Ilx1MjAxMyIsbWRhc2g6Ilx1MjAxNCIsbHNxdW86Ilx1MjAxOCIscnNxdW86Ilx1MjAxOSIsc2JxdW86Ilx1MjAxQSIsbGRxdW86Ilx1MjAxQyIscmRxdW86Ilx1MjAxRCIsYmRxdW86Ilx1MjAxRSIsZGFnZ2VyOiJcdTIwMjAiLERhZ2dlcjoiXHUyMDIxIixwZXJtaWw6Ilx1MjAzMCIsbHNhcXVvOiJcdTIwMzkiLHJzYXF1bzoiXHUyMDNBIixldXJvOiJcdTIwQUMifX0pO3ZhciBPNXQsRjV0PWYoKCk9PntPNXQ9WyJjZW50IiwiY29weSIsImRpdmlkZSIsImd0IiwibHQiLCJub3QiLCJwYXJhIiwidGltZXMiXX0pO2Z1bmN0aW9uIEg1dChhLGUsdCxyKXtsZXQgaT1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpO2lmKEI1dC5jYWxsKHNkZSxpKSl7bGV0IG89c2RlW2ldLG49IiYiK287cmV0dXJuIHQmJkk1dC5pbmNsdWRlcyhvKSYmIU81dC5pbmNsdWRlcyhvKSYmKCFyfHxlJiZlIT09NjEmJndTYS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpKT9uOm4rIjsifXJldHVybiIifXZhciBCNXQsc2RlLHBKLHdTYSxxNXQ9ZigoKT0+e041dCgpO1I1dCgpO0Y1dCgpO0I1dD17fS5oYXNPd25Qcm9wZXJ0eSxzZGU9e307Zm9yKHBKIGluIHVKKUI1dC5jYWxsKHVKLHBKKSYmKHNkZVt1SltwSl1dPXBKKTt3U2E9L1teXGRBLVphLXpdLztzKEg1dCwidG9OYW1lZCIpfSk7ZnVuY3Rpb24gVjV0KGEsZSx0KXtsZXQgcj1ENXQoYSxlLHQub21pdE9wdGlvbmFsU2VtaWNvbG9ucyksaTtpZigodC51c2VOYW1lZFJlZmVyZW5jZXN8fHQudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKGk9SDV0KGEsZSx0Lm9taXRPcHRpb25hbFNlbWljb2xvbnMsdC5hdHRyaWJ1dGUpKSwodC51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFpKSYmdC51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBvPVA1dChhLGUsdC5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtvLmxlbmd0aDxyLmxlbmd0aCYmKHI9byl9cmV0dXJuIGkmJighdC51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fGkubGVuZ3RoPHIubGVuZ3RoKT9pOnJ9dmFyIGo1dD1mKCgpPT57QTV0KCk7RTV0KCk7cTV0KCk7cyhWNXQsImZvcm1hdFNtYXJ0Iil9KTtmdW5jdGlvbiBVNXQoYSl7cmV0dXJuIiYjeCIrYS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIFc1dD1mKCgpPT57cyhVNXQsImZvcm1hdEJhc2ljIil9KTtmdW5jdGlvbiBWbChhLGUpe3JldHVybiByZGUoYSxPYmplY3QuYXNzaWduKHtmb3JtYXQ6VjV0fSxlKSl9ZnVuY3Rpb24gU3RzKGEsZSl7cmV0dXJuIHJkZShhLE9iamVjdC5hc3NpZ24oe2Zvcm1hdDpVNXR9LGUpKX12YXIgRzV0PWYoKCk9PnskNXQoKTtqNXQoKTtXNXQoKTtzKFZsLCJzdHJpbmdpZnlFbnRpdGllcyIpO3MoU3RzLCJzdHJpbmdpZnlFbnRpdGllc0xpZ2h0Iil9KTt2YXIgZko9ZigoKT0+e0c1dCgpfSk7ZnVuY3Rpb24gWTV0KGEsZSx0LHIpe3JldHVybiByLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/IitWbChhLnZhbHVlLE9iamVjdC5hc3NpZ24oe30sci5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6a1NhfSkpKyI+IjoiPCEtLSIrYS52YWx1ZS5yZXBsYWNlKE1TYSxpKSsiLS0+IjtmdW5jdGlvbiBpKG8pe3JldHVybiBWbChvLE9iamVjdC5hc3NpZ24oe30sci5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6U1NhfSkpfX12YXIgTVNhLGtTYSxTU2EsSzV0PWYoKCk9PntmSigpO01TYT0vXj58Xi0+fDwhLS18LS0+fC0tIT58PCEtJC9nLGtTYT1bIj4iXSxTU2E9WyI8IiwiPiJdO3MoWTV0LCJjb21tZW50Iil9KTtmdW5jdGlvbiBaNXQoYSxlLHQscil7cmV0dXJuIjwhIisoci5zZXR0aW5ncy51cHBlckRvY3R5cGU/IkRPQ1RZUEUiOiJkb2N0eXBlIikrKHIuc2V0dGluZ3MudGlnaHREb2N0eXBlPyIiOiIgIikrImh0bWw+In12YXIgWDV0PWYoKCk9PntzKFo1dCwiZG9jdHlwZSIpfSk7ZnVuY3Rpb24gRXRzKGEpe2xldCBlPVtdLHQ9U3RyaW5nKGF8fCIiKSxyPXQuaW5kZXhPZigiLCIpLGk9MCxvPSExO2Zvcig7IW87KXtyPT09LTEmJihyPXQubGVuZ3RoLG89ITApO2xldCBuPXQuc2xpY2UoaSxyKS50cmltKCk7KG58fCFvKSYmZS5wdXNoKG4pLGk9cisxLHI9dC5pbmRleE9mKCIsIixpKX1yZXR1cm4gZX1mdW5jdGlvbiBRNXQoYSxlKXtsZXQgdD1lfHx7fTtyZXR1cm4oYVthLmxlbmd0aC0xXT09PSIiP1suLi5hLCIiXTphKS5qb2luKCh0LnBhZFJpZ2h0PyIgIjoiIikrIiwiKyh0LnBhZExlZnQ9PT0hMT8iIjoiICIpKS50cmltKCl9dmFyIEo1dD1mKCgpPT57cyhFdHMsInBhcnNlIik7cyhRNXQsInN0cmluZ2lmeSIpfSk7ZnVuY3Rpb24gUnRzKGEpe2xldCBlPVN0cmluZyhhfHwiIikudHJpbSgpO3JldHVybiBlP2Uuc3BsaXQoL1sgXHRcblxyXGZdKy9nKTpbXX1mdW5jdGlvbiBlaHQoYSl7cmV0dXJuIGEuam9pbigiICIpLnRyaW0oKX12YXIgdGh0PWYoKCk9PntzKFJ0cywicGFyc2UiKTtzKGVodCwic3RyaW5naWZ5Iil9KTtmdW5jdGlvbiBlZChhKXtyZXR1cm4gdHlwZW9mIGE9PSJvYmplY3QiP2EudHlwZT09PSJ0ZXh0Ij9haHQoYS52YWx1ZSk6ITE6YWh0KGEpfWZ1bmN0aW9uIGFodChhKXtyZXR1cm4gYS5yZXBsYWNlKHpTYSwiIik9PT0iIn12YXIgelNhLHJodD1mKCgpPT57elNhPS9bIFx0XG5cZlxyXS9nO3MoZWQsIndoaXRlc3BhY2UiKTtzKGFodCwiZW1wdHkiKX0pO3ZhciBoSj1mKCgpPT57cmh0KCl9KTtmdW5jdGlvbiBzaHQoYSl7cmV0dXJuIGU7ZnVuY3Rpb24gZSh0LHIsaSl7bGV0IG89dD90LmNoaWxkcmVuOkNTYSxuPShyfHwwKSthLGw9b1tuXTtpZighaSlmb3IoO2wmJmVkKGwpOyluKz1hLGw9b1tuXTtyZXR1cm4gbH19dmFyIFpyLGlkZSxDU2Esb2RlPWYoKCk9PntoSigpO1pyPXNodCgxKSxpZGU9c2h0KC0xKSxDU2E9W107cyhzaHQsInNpYmxpbmdzIil9KTtmdW5jdGlvbiBtSihhKXtyZXR1cm4gZTtmdW5jdGlvbiBlKHQscixpKXtyZXR1cm4gX1NhLmNhbGwoYSx0LnRhZ05hbWUpJiZhW3QudGFnTmFtZV0odCxyLGkpfX12YXIgX1NhLG5kZT1mKCgpPT57X1NhPXt9Lmhhc093blByb3BlcnR5O3MobUosIm9taXNzaW9uIil9KTtmdW5jdGlvbiBsZGUoYSxlLHQpe2xldCByPVpyKHQsZSwhMCk7cmV0dXJuIXJ8fHIudHlwZSE9PSJjb21tZW50IiYmIShyLnR5cGU9PT0idGV4dCImJmVkKHIudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gVFNhKGEsZSx0KXtsZXQgcj1acih0LGUpO3JldHVybiFyfHxyLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gTFNhKGEsZSx0KXtsZXQgcj1acih0LGUpO3JldHVybiFyfHxyLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gJFNhKGEsZSx0KXtsZXQgcj1acih0LGUpO3JldHVybiByP3IudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhZGRyZXNzInx8ci50YWdOYW1lPT09ImFydGljbGUifHxyLnRhZ05hbWU9PT0iYXNpZGUifHxyLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fHIudGFnTmFtZT09PSJkZXRhaWxzInx8ci50YWdOYW1lPT09ImRpdiJ8fHIudGFnTmFtZT09PSJkbCJ8fHIudGFnTmFtZT09PSJmaWVsZHNldCJ8fHIudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8ci50YWdOYW1lPT09ImZpZ3VyZSJ8fHIudGFnTmFtZT09PSJmb290ZXIifHxyLnRhZ05hbWU9PT0iZm9ybSJ8fHIudGFnTmFtZT09PSJoMSJ8fHIudGFnTmFtZT09PSJoMiJ8fHIudGFnTmFtZT09PSJoMyJ8fHIudGFnTmFtZT09PSJoNCJ8fHIudGFnTmFtZT09PSJoNSJ8fHIudGFnTmFtZT09PSJoNiJ8fHIudGFnTmFtZT09PSJoZWFkZXIifHxyLnRhZ05hbWU9PT0iaGdyb3VwInx8ci50YWdOYW1lPT09ImhyInx8ci50YWdOYW1lPT09Im1haW4ifHxyLnRhZ05hbWU9PT0ibWVudSJ8fHIudGFnTmFtZT09PSJuYXYifHxyLnRhZ05hbWU9PT0ib2wifHxyLnRhZ05hbWU9PT0icCJ8fHIudGFnTmFtZT09PSJwcmUifHxyLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fHIudGFnTmFtZT09PSJ0YWJsZSJ8fHIudGFnTmFtZT09PSJ1bCIpOiF0fHwhKHQudHlwZT09PSJlbGVtZW50IiYmKHQudGFnTmFtZT09PSJhInx8dC50YWdOYW1lPT09ImF1ZGlvInx8dC50YWdOYW1lPT09ImRlbCJ8fHQudGFnTmFtZT09PSJpbnMifHx0LnRhZ05hbWU9PT0ibWFwInx8dC50YWdOYW1lPT09Im5vc2NyaXB0Inx8dC50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIERTYShhLGUsdCl7bGV0IHI9WnIodCxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiZyLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIEFTYShhLGUsdCl7bGV0IHI9WnIodCxlKTtyZXR1cm4hIShyJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0iZHQifHxyLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gUFNhKGEsZSx0KXtsZXQgcj1acih0LGUpO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0iZHQifHxyLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBpaHQoYSxlLHQpe2xldCByPVpyKHQsZSk7cmV0dXJuIXJ8fHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJycCJ8fHIudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uIEVTYShhLGUsdCl7bGV0IHI9WnIodCxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiZyLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIElTYShhLGUsdCl7bGV0IHI9WnIodCxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09Im9wdGlvbiJ8fHIudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIE5TYShhLGUsdCl7bGV0IHI9WnIodCxlKTtyZXR1cm4hIShyJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0idGJvZHkifHxyLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gUlNhKGEsZSx0KXtsZXQgcj1acih0LGUpO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0idGJvZHkifHxyLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBPU2EoYSxlLHQpe3JldHVybiFacih0LGUpfWZ1bmN0aW9uIEZTYShhLGUsdCl7bGV0IHI9WnIodCxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiZyLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIG9odChhLGUsdCl7bGV0IHI9WnIodCxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09InRkInx8ci50YWdOYW1lPT09InRoIil9dmFyIGxiLGNkZT1mKCgpPT57aEooKTtvZGUoKTtuZGUoKTtsYj1tSih7Ym9keTpMU2EsY2FwdGlvbjpsZGUsY29sZ3JvdXA6bGRlLGRkOlBTYSxkdDpBU2EsaGVhZDpsZGUsaHRtbDpUU2EsbGk6RFNhLG9wdGdyb3VwOkVTYSxvcHRpb246SVNhLHA6JFNhLHJwOmlodCxydDppaHQsdGJvZHk6UlNhLHRkOm9odCx0Zm9vdDpPU2EsdGg6b2h0LHRoZWFkOk5TYSx0cjpGU2F9KTtzKGxkZSwiaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24iKTtzKFRTYSwiaHRtbCIpO3MoTFNhLCJib2R5Iik7cygkU2EsInAiKTtzKERTYSwibGkiKTtzKEFTYSwiZHQiKTtzKFBTYSwiZGQiKTtzKGlodCwicnVieUVsZW1lbnQiKTtzKEVTYSwib3B0Z3JvdXAiKTtzKElTYSwib3B0aW9uIik7cyhOU2EsInRoZWFkIik7cyhSU2EsInRib2R5Iik7cyhPU2EsInRmb290Iik7cyhGU2EsInRyIik7cyhvaHQsImNlbGxzIil9KTtmdW5jdGlvbiBCU2EoYSl7bGV0IGU9WnIoYSwtMSk7cmV0dXJuIWV8fGUudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBIU2EoYSl7bGV0IGU9bmV3IFNldDtmb3IobGV0IHIgb2YgYS5jaGlsZHJlbilpZihyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0iYmFzZSJ8fHIudGFnTmFtZT09PSJ0aXRsZSIpKXtpZihlLmhhcyhyLnRhZ05hbWUpKXJldHVybiExO2UuYWRkKHIudGFnTmFtZSl9bGV0IHQ9YS5jaGlsZHJlblswXTtyZXR1cm4hdHx8dC50eXBlPT09ImVsZW1lbnQifWZ1bmN0aW9uIHFTYShhKXtsZXQgZT1acihhLC0xLCEwKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQiJiYhKGUudHlwZT09PSJ0ZXh0IiYmZWQoZS52YWx1ZS5jaGFyQXQoMCkpKSYmIShlLnR5cGU9PT0iZWxlbWVudCImJihlLnRhZ05hbWU9PT0ibWV0YSJ8fGUudGFnTmFtZT09PSJsaW5rInx8ZS50YWdOYW1lPT09InNjcmlwdCJ8fGUudGFnTmFtZT09PSJzdHlsZSJ8fGUudGFnTmFtZT09PSJ0ZW1wbGF0ZSIpKX1mdW5jdGlvbiBWU2EoYSxlLHQpe2xldCByPWlkZSh0LGUpLGk9WnIoYSwtMSwhMCk7cmV0dXJuIHQmJnImJnIudHlwZT09PSJlbGVtZW50IiYmci50YWdOYW1lPT09ImNvbGdyb3VwIiYmbGIocix0LmNoaWxkcmVuLmluZGV4T2YociksdCk/ITE6ISEoaSYmaS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0iY29sIil9ZnVuY3Rpb24galNhKGEsZSx0KXtsZXQgcj1pZGUodCxlKSxpPVpyKGEsLTEpO3JldHVybiB0JiZyJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0idGhlYWQifHxyLnRhZ05hbWU9PT0idGJvZHkiKSYmbGIocix0LmNoaWxkcmVuLmluZGV4T2YociksdCk/ITE6ISEoaSYmaS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0idHIiKX12YXIgbmh0LGxodD1mKCgpPT57aEooKTtvZGUoKTtjZGUoKTtuZGUoKTtuaHQ9bUooe2JvZHk6cVNhLGNvbGdyb3VwOlZTYSxoZWFkOkhTYSxodG1sOkJTYSx0Ym9keTpqU2F9KTtzKEJTYSwiaHRtbCIpO3MoSFNhLCJoZWFkIik7cyhxU2EsImJvZHkiKTtzKFZTYSwiY29sZ3JvdXAiKTtzKGpTYSwidGJvZHkiKX0pO2Z1bmN0aW9uIGNodChhLGUsdCxyKXtsZXQgaT1yLnNjaGVtYSxvPWkuc3BhY2U9PT0ic3ZnIj8hMTpyLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3Msbj1pLnNwYWNlPT09InN2ZyI/ci5zZXR0aW5ncy5jbG9zZUVtcHR5RWxlbWVudHM6ci5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhhLnRhZ05hbWUudG9Mb3dlckNhc2UoKSksbD1bXSxkO2kuc3BhY2U9PT0iaHRtbCImJmEudGFnTmFtZT09PSJzdmciJiYoci5zY2hlbWE9ZEopO2xldCBjPVVTYShyLGEucHJvcGVydGllcykscD1yLmFsbChpLnNwYWNlPT09Imh0bWwiJiZhLnRhZ05hbWU9PT0idGVtcGxhdGUiP2EuY29udGVudDphKTtyZXR1cm4gci5zY2hlbWE9aSxwJiYobj0hMSksKGN8fCFvfHwhbmh0KGEsZSx0KSkmJihsLnB1c2goIjwiLGEudGFnTmFtZSxjPyIgIitjOiIiKSxuJiYoaS5zcGFjZT09PSJzdmcifHxyLnNldHRpbmdzLmNsb3NlU2VsZkNsb3NpbmcpJiYoZD1jLmNoYXJBdChjLmxlbmd0aC0xKSwoIXIuc2V0dGluZ3MudGlnaHRTZWxmQ2xvc2luZ3x8ZD09PSIvInx8ZCYmZCE9PSciJyYmZCE9PSInIikmJmwucHVzaCgiICIpLGwucHVzaCgiLyIpKSxsLnB1c2goIj4iKSksbC5wdXNoKHApLCFuJiYoIW98fCFsYihhLGUsdCkpJiZsLnB1c2goIjwvIithLnRhZ05hbWUrIj4iKSxsLmpvaW4oIiIpfWZ1bmN0aW9uIFVTYShhLGUpe2xldCB0PVtdLHI9LTEsaTtpZihlKXtmb3IoaSBpbiBlKWlmKGVbaV0hPT1udWxsJiZlW2ldIT09dm9pZCAwKXtsZXQgbz1XU2EoYSxpLGVbaV0pO28mJnQucHVzaChvKX19Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgbz1hLnNldHRpbmdzLnRpZ2h0QXR0cmlidXRlcz90W3JdLmNoYXJBdCh0W3JdLmxlbmd0aC0xKTp2b2lkIDA7ciE9PXQubGVuZ3RoLTEmJm8hPT0nIicmJm8hPT0iJyImJih0W3JdKz0iICIpfXJldHVybiB0LmpvaW4oIiIpfWZ1bmN0aW9uIFdTYShhLGUsdCl7bGV0IHI9dGRlKGEuc2NoZW1hLGUpLGk9YS5zZXR0aW5ncy5hbGxvd1BhcnNlRXJyb3JzJiZhLnNjaGVtYS5zcGFjZT09PSJodG1sIj8wOjEsbz1hLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycz8wOjEsbj1hLnF1b3RlLGw7aWYoci5vdmVybG9hZGVkQm9vbGVhbiYmKHQ9PT1yLmF0dHJpYnV0ZXx8dD09PSIiKT90PSEwOihyLmJvb2xlYW58fHIub3ZlcmxvYWRlZEJvb2xlYW4pJiYodHlwZW9mIHQhPSJzdHJpbmcifHx0PT09ci5hdHRyaWJ1dGV8fHQ9PT0iIikmJih0PSEhdCksdD09bnVsbHx8dD09PSExfHx0eXBlb2YgdD09Im51bWJlciImJk51bWJlci5pc05hTih0KSlyZXR1cm4iIjtsZXQgZD1WbChyLmF0dHJpYnV0ZSxPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OmdKLm5hbWVbaV1bb119KSk7cmV0dXJuIHQ9PT0hMHx8KHQ9QXJyYXkuaXNBcnJheSh0KT8oci5jb21tYVNlcGFyYXRlZD9RNXQ6ZWh0KSh0LHtwYWRMZWZ0OiFhLnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c30pOlN0cmluZyh0KSxhLnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzJiYhdCk/ZDooYS5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCYmKGw9VmwodCxPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7YXR0cmlidXRlOiEwLHN1YnNldDpnSi51bnF1b3RlZFtpXVtvXX0pKSksbCE9PXQmJihhLnNldHRpbmdzLnF1b3RlU21hcnQmJm04KHQsbik+bTgodCxhLmFsdGVybmF0aXZlKSYmKG49YS5hbHRlcm5hdGl2ZSksbD1uK1ZsKHQsT2JqZWN0LmFzc2lnbih7fSxhLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDoobj09PSInIj9nSi5zaW5nbGU6Z0ouZG91YmxlKVtpXVtvXSxhdHRyaWJ1dGU6ITB9KSkrbiksZCsobCYmIj0iK2wpKX12YXIgZ0osZGh0PWYoKCk9PntLMGUoKTtKNXQoKTthZGUoKTt0aHQoKTtmSigpO2NkZSgpO2xodCgpO2dKPXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfTtzKGNodCwiZWxlbWVudCIpO3MoVVNhLCJzZXJpYWxpemVBdHRyaWJ1dGVzIik7cyhXU2EsInNlcmlhbGl6ZUF0dHJpYnV0ZSIpfSk7ZnVuY3Rpb24gYkooYSxlLHQscil7cmV0dXJuIHQmJnQudHlwZT09PSJlbGVtZW50IiYmKHQudGFnTmFtZT09PSJzY3JpcHQifHx0LnRhZ05hbWU9PT0ic3R5bGUiKT9hLnZhbHVlOlZsKGEudmFsdWUsT2JqZWN0LmFzc2lnbih7fSxyLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpHU2F9KSl9dmFyIEdTYSxkZGU9ZigoKT0+e2ZKKCk7R1NhPVsiPCIsIiYiXTtzKGJKLCJ0ZXh0Iil9KTtmdW5jdGlvbiB1aHQoYSxlLHQscil7cmV0dXJuIHIuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP2EudmFsdWU6YkooYSxlLHQscil9dmFyIHBodD1mKCgpPT57ZGRlKCk7cyh1aHQsInJhdyIpfSk7ZnVuY3Rpb24gZmh0KGEsZSx0LHIpe3JldHVybiByLmFsbChhKX12YXIgaGh0PWYoKCk9PntzKGZodCwicm9vdCIpfSk7ZnVuY3Rpb24gWVNhKGEpe3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm90IGAiK2ErImAiKX1mdW5jdGlvbiBLU2EoYSl7bGV0IGU9YTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgIitlLnR5cGUrImAiKX12YXIgbWh0LGdodD1mKCgpPT57bzRlKCk7SzV0KCk7WDV0KCk7ZGh0KCk7cGh0KCk7aGh0KCk7ZGRlKCk7bWh0PWdRKCJ0eXBlIix7aW52YWxpZDpZU2EsdW5rbm93bjpLU2EsaGFuZGxlcnM6e2NvbW1lbnQ6WTV0LGRvY3R5cGU6WjV0LGVsZW1lbnQ6Y2h0LHJhdzp1aHQscm9vdDpmaHQsdGV4dDpiSn19KTtzKFlTYSwiaW52YWxpZCIpO3MoS1NhLCJ1bmtub3duIil9KTtmdW5jdGlvbiB1ZGUoYSxlKXtsZXQgdD1lfHxaU2Escj10LnF1b3RlfHwnIicsaT1yPT09JyInPyInIjonIic7aWYociE9PSciJyYmciE9PSInIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcXVvdGUgYCIrcisiYCwgZXhwZWN0ZWQgYCdgIG9yIGBcImAiKTtyZXR1cm57b25lOkpTYSxhbGw6ZXphLHNldHRpbmdzOntvbWl0T3B0aW9uYWxUYWdzOnQub21pdE9wdGlvbmFsVGFnc3x8ITEsYWxsb3dQYXJzZUVycm9yczp0LmFsbG93UGFyc2VFcnJvcnN8fCExLGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczp0LmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyc3x8ITEscXVvdGVTbWFydDp0LnF1b3RlU21hcnR8fCExLHByZWZlclVucXVvdGVkOnQucHJlZmVyVW5xdW90ZWR8fCExLHRpZ2h0QXR0cmlidXRlczp0LnRpZ2h0QXR0cmlidXRlc3x8ITEsdXBwZXJEb2N0eXBlOnQudXBwZXJEb2N0eXBlfHwhMSx0aWdodERvY3R5cGU6dC50aWdodERvY3R5cGV8fCExLGJvZ3VzQ29tbWVudHM6dC5ib2d1c0NvbW1lbnRzfHwhMSx0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6dC50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN8fCExLHRpZ2h0U2VsZkNsb3Npbmc6dC50aWdodFNlbGZDbG9zaW5nfHwhMSxjb2xsYXBzZUVtcHR5QXR0cmlidXRlczp0LmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzfHwhMSxhbGxvd0Rhbmdlcm91c0h0bWw6dC5hbGxvd0Rhbmdlcm91c0h0bWx8fCExLHZvaWRzOnQudm9pZHN8fGY1dCxjaGFyYWN0ZXJSZWZlcmVuY2VzOnQuY2hhcmFjdGVyUmVmZXJlbmNlc3x8WFNhLGNsb3NlU2VsZkNsb3Npbmc6dC5jbG9zZVNlbGZDbG9zaW5nfHwhMSxjbG9zZUVtcHR5RWxlbWVudHM6dC5jbG9zZUVtcHR5RWxlbWVudHN8fCExfSxzY2hlbWE6dC5zcGFjZT09PSJzdmciP2RKOlQ1dCxxdW90ZTpyLGFsdGVybmF0aXZlOml9Lm9uZShBcnJheS5pc0FycmF5KGEpP3t0eXBlOiJyb290IixjaGlsZHJlbjphfTphLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIEpTYShhLGUsdCl7cmV0dXJuIG1odChhLGUsdCx0aGlzKX1mdW5jdGlvbiBlemEoYSl7bGV0IGU9W10sdD1hJiZhLmNoaWxkcmVufHxRU2Escj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspZVtyXT10aGlzLm9uZSh0W3JdLHIsYSk7cmV0dXJuIGUuam9pbigiIil9dmFyIFpTYSxYU2EsUVNhLGJodD1mKCgpPT57aDV0KCk7YWRlKCk7Z2h0KCk7WlNhPXt9LFhTYT17fSxRU2E9W107cyh1ZGUsInRvSHRtbCIpO3MoSlNhLCJvbmUiKTtzKGV6YSwiYWxsIil9KTt2YXIgdmh0PWYoKCk9PntiaHQoKX0pO2Z1bmN0aW9uIEw4KGEpe2xldCBlPXRoaXMse2hhbmRsZXJzOnQsc2FuaXRpemU6ciwuLi5pfT1hfHx0emEsbz0hMSxuO3R5cGVvZiByPT0iYm9vbGVhbiI/bz0hcjpyJiYobj1yKSxlLmNvbXBpbGVyPWw7ZnVuY3Rpb24gbChkLGMpe2xldCBwPVYzZShkLHtoYW5kbGVyczp0LGFsbG93RGFuZ2Vyb3VzSHRtbDpvfSksdT1vP3A6UjNlKHAsbiksbT11ZGUodSx7Li4uaSxhbGxvd0Rhbmdlcm91c0h0bWw6b30pO3JldHVybiBjLmV4dG5hbWUmJihjLmV4dG5hbWU9Ii5odG1sIiksZCYmZC50eXBlPT09InJvb3QiJiZtJiYvW15cclxuXS8udGVzdChtLmNoYXJBdChtLmxlbmd0aC0xKSk/bStgCmA6bX1zKGwsImNvbXBpbGVyIil9dmFyIHR6YSx4aHQ9ZigoKT0+e2xmdCgpO3A1dCgpO3ZodCgpO3R6YT17fTtzKEw4LCJyZW1hcmtIdG1sIil9KTt2YXIgeWh0PWYoKCk9Pnt4aHQoKX0pO2Z1bmN0aW9uICQ4KGEpe2xldCBlPXRoaXM7ZS5jb21waWxlcj10O2Z1bmN0aW9uIHQocil7cmV0dXJuIF80ZShyLHsuLi5lLmRhdGEoInNldHRpbmdzIiksLi4uYSxleHRlbnNpb25zOmUuZGF0YSgidG9NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX1zKHQsImNvbXBpbGVyIil9dmFyIHdodD1mKCgpPT57Q1EoKTtzKCQ4LCJyZW1hcmtTdHJpbmdpZnkiKX0pO3ZhciBNaHQ9ZigoKT0+e3dodCgpfSk7ZnVuY3Rpb24gYXphKGEpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciB0PWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmKGFbcl09dFtyXSl9cmV0dXJuIGF9ZnVuY3Rpb24gcGRlKGEsZSl7cmV0dXJuIEFycmF5KGUrMSkuam9pbihhKX1mdW5jdGlvbiBraHQoYSl7cmV0dXJuIGEucmVwbGFjZSgvXlxuKi8sIiIpfWZ1bmN0aW9uIFNodChhKXtmb3IodmFyIGU9YS5sZW5ndGg7ZT4wJiZhW2UtMV09PT1gCmA7KWUtLTtyZXR1cm4gYS5zdWJzdHJpbmcoMCxlKX1mdW5jdGlvbiB6aHQoYSl7cmV0dXJuIFNodChraHQoYSkpfWZ1bmN0aW9uIGZkZShhKXtyZXR1cm4gaGRlKGEscnphKX1mdW5jdGlvbiBfaHQoYSl7cmV0dXJuIGhkZShhLENodCl9ZnVuY3Rpb24gc3phKGEpe3JldHVybiBMaHQoYSxDaHQpfWZ1bmN0aW9uIGl6YShhKXtyZXR1cm4gaGRlKGEsVGh0KX1mdW5jdGlvbiBvemEoYSl7cmV0dXJuIExodChhLFRodCl9ZnVuY3Rpb24gaGRlKGEsZSl7cmV0dXJuIGUuaW5kZXhPZihhLm5vZGVOYW1lKT49MH1mdW5jdGlvbiBMaHQoYSxlKXtyZXR1cm4gYS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZS5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpLmxlbmd0aH0pfWZ1bmN0aW9uICRodChhKXtyZXR1cm4gbnphLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLnJlcGxhY2UodFswXSx0WzFdKX0sYSl9ZnVuY3Rpb24gdkooYSl7cmV0dXJuIGE/YS5yZXBsYWNlKC8oXG4rXHMqKSsvZyxgCmApOiIifWZ1bmN0aW9uIG1kZShhKXt2YXIgZT1hLnJlcGxhY2UoLyhbPD4oKV0pL2csIlxcJDEiKTtyZXR1cm4gZS5pbmRleE9mKCIgIik+PTA/IjwiK2UrIj4iOmV9ZnVuY3Rpb24gZ2RlKGEpe3JldHVybiBhLnJlcGxhY2UoLyIvZywnXFwiJyl9ZnVuY3Rpb24gRGh0KGEpe3RoaXMub3B0aW9ucz1hLHRoaXMuX2tlZXA9W10sdGhpcy5fcmVtb3ZlPVtdLHRoaXMuYmxhbmtSdWxlPXtyZXBsYWNlbWVudDphLmJsYW5rUmVwbGFjZW1lbnR9LHRoaXMua2VlcFJlcGxhY2VtZW50PWEua2VlcFJlcGxhY2VtZW50LHRoaXMuZGVmYXVsdFJ1bGU9e3JlcGxhY2VtZW50OmEuZGVmYXVsdFJlcGxhY2VtZW50fSx0aGlzLmFycmF5PVtdO2Zvcih2YXIgZSBpbiBhLnJ1bGVzKXRoaXMuYXJyYXkucHVzaChhLnJ1bGVzW2VdKX1mdW5jdGlvbiBiZGUoYSxlLHQpe2Zvcih2YXIgcj0wO3I8YS5sZW5ndGg7cisrKXt2YXIgaT1hW3JdO2lmKGx6YShpLGUsdCkpcmV0dXJuIGl9fWZ1bmN0aW9uIGx6YShhLGUsdCl7dmFyIHI9YS5maWx0ZXI7aWYodHlwZW9mIHI9PSJzdHJpbmciKXtpZihyPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiEwfWVsc2UgaWYoQXJyYXkuaXNBcnJheShyKSl7aWYoci5pbmRleE9mKGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk+LTEpcmV0dXJuITB9ZWxzZSBpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIil7aWYoci5jYWxsKGEsZSx0KSlyZXR1cm4hMH1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoImBmaWx0ZXJgIG5lZWRzIHRvIGJlIGEgc3RyaW5nLCBhcnJheSwgb3IgZnVuY3Rpb24iKX1mdW5jdGlvbiBjemEoYSl7dmFyIGU9YS5lbGVtZW50LHQ9YS5pc0Jsb2NrLHI9YS5pc1ZvaWQsaT1hLmlzUHJlfHxmdW5jdGlvbih1KXtyZXR1cm4gdS5ub2RlTmFtZT09PSJQUkUifTtpZighKCFlLmZpcnN0Q2hpbGR8fGkoZSkpKXtmb3IodmFyIG89bnVsbCxuPSExLGw9bnVsbCxkPUFodChsLGUsaSk7ZCE9PWU7KXtpZihkLm5vZGVUeXBlPT09M3x8ZC5ub2RlVHlwZT09PTQpe3ZhciBjPWQuZGF0YS5yZXBsYWNlKC9bIFxyXG5cdF0rL2csIiAiKTtpZigoIW98fC8gJC8udGVzdChvLmRhdGEpKSYmIW4mJmNbMF09PT0iICImJihjPWMuc3Vic3RyKDEpKSwhYyl7ZD12ZGUoZCk7Y29udGludWV9ZC5kYXRhPWMsbz1kfWVsc2UgaWYoZC5ub2RlVHlwZT09PTEpdChkKXx8ZC5ub2RlTmFtZT09PSJCUiI/KG8mJihvLmRhdGE9by5kYXRhLnJlcGxhY2UoLyAkLywiIikpLG89bnVsbCxuPSExKTpyKGQpfHxpKGQpPyhvPW51bGwsbj0hMCk6byYmKG49ITEpO2Vsc2V7ZD12ZGUoZCk7Y29udGludWV9dmFyIHA9QWh0KGwsZCxpKTtsPWQsZD1wfW8mJihvLmRhdGE9by5kYXRhLnJlcGxhY2UoLyAkLywiIiksby5kYXRhfHx2ZGUobykpfX1mdW5jdGlvbiB2ZGUoYSl7dmFyIGU9YS5uZXh0U2libGluZ3x8YS5wYXJlbnROb2RlO3JldHVybiBhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSksZX1mdW5jdGlvbiBBaHQoYSxlLHQpe3JldHVybiBhJiZhLnBhcmVudE5vZGU9PT1lfHx0KGUpP2UubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZTplLmZpcnN0Q2hpbGR8fGUubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZX1mdW5jdGlvbiBkemEoKXt2YXIgYT14ZGUuRE9NUGFyc2VyLGU9ITE7dHJ5e25ldyBhKCkucGFyc2VGcm9tU3RyaW5nKCIiLCJ0ZXh0L2h0bWwiKSYmKGU9ITApfWNhdGNoe31yZXR1cm4gZX1mdW5jdGlvbiB1emEoKXt2YXIgYT1zKGZ1bmN0aW9uKCl7fSwiUGFyc2VyIik7cmV0dXJuIHB6YSgpP2EucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7cmV0dXJuIHQuZGVzaWduTW9kZT0ib24iLHQub3BlbigpLHQud3JpdGUoZSksdC5jbG9zZSgpLHR9OmEucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3JldHVybiB0Lm9wZW4oKSx0LndyaXRlKGUpLHQuY2xvc2UoKSx0fSxhfWZ1bmN0aW9uIHB6YSgpe3ZhciBhPSExO3RyeXtkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLm9wZW4oKX1jYXRjaHt4ZGUuQWN0aXZlWE9iamVjdCYmKGE9ITApfXJldHVybiBhfWZ1bmN0aW9uIGh6YShhLGUpe3ZhciB0O2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7dmFyIHI9bXphKCkucGFyc2VGcm9tU3RyaW5nKCc8eC10dXJuZG93biBpZD0idHVybmRvd24tcm9vdCI+JythKyI8L3gtdHVybmRvd24+IiwidGV4dC9odG1sIik7dD1yLmdldEVsZW1lbnRCeUlkKCJ0dXJuZG93bi1yb290Iil9ZWxzZSB0PWEuY2xvbmVOb2RlKCEwKTtyZXR1cm4gY3phKHtlbGVtZW50OnQsaXNCbG9jazpmZGUsaXNWb2lkOl9odCxpc1ByZTplLnByZWZvcm1hdHRlZENvZGU/Z3phOm51bGx9KSx0fWZ1bmN0aW9uIG16YSgpe3JldHVybiB5ZGU9eWRlfHxuZXcgZnphLHlkZX1mdW5jdGlvbiBnemEoYSl7cmV0dXJuIGEubm9kZU5hbWU9PT0iUFJFInx8YS5ub2RlTmFtZT09PSJDT0RFIn1mdW5jdGlvbiBiemEoYSxlKXtyZXR1cm4gYS5pc0Jsb2NrPWZkZShhKSxhLmlzQ29kZT1hLm5vZGVOYW1lPT09IkNPREUifHxhLnBhcmVudE5vZGUuaXNDb2RlLGEuaXNCbGFuaz12emEoYSksYS5mbGFua2luZ1doaXRlc3BhY2U9eHphKGEsZSksYX1mdW5jdGlvbiB2emEoYSl7cmV0dXJuIV9odChhKSYmIWl6YShhKSYmL15ccyokL2kudGVzdChhLnRleHRDb250ZW50KSYmIXN6YShhKSYmIW96YShhKX1mdW5jdGlvbiB4emEoYSxlKXtpZihhLmlzQmxvY2t8fGUucHJlZm9ybWF0dGVkQ29kZSYmYS5pc0NvZGUpcmV0dXJue2xlYWRpbmc6IiIsdHJhaWxpbmc6IiJ9O3ZhciB0PXl6YShhLnRleHRDb250ZW50KTtyZXR1cm4gdC5sZWFkaW5nQXNjaWkmJlBodCgibGVmdCIsYSxlKSYmKHQubGVhZGluZz10LmxlYWRpbmdOb25Bc2NpaSksdC50cmFpbGluZ0FzY2lpJiZQaHQoInJpZ2h0IixhLGUpJiYodC50cmFpbGluZz10LnRyYWlsaW5nTm9uQXNjaWkpLHtsZWFkaW5nOnQubGVhZGluZyx0cmFpbGluZzp0LnRyYWlsaW5nfX1mdW5jdGlvbiB5emEoYSl7dmFyIGU9YS5tYXRjaCgvXigoWyBcdFxyXG5dKikoXHMqKSkoPzooPz1cUylbXHNcU10qXFMpPygoXHMqPykoWyBcdFxyXG5dKikpJC8pO3JldHVybntsZWFkaW5nOmVbMV0sbGVhZGluZ0FzY2lpOmVbMl0sbGVhZGluZ05vbkFzY2lpOmVbM10sdHJhaWxpbmc6ZVs0XSx0cmFpbGluZ05vbkFzY2lpOmVbNV0sdHJhaWxpbmdBc2NpaTplWzZdfX1mdW5jdGlvbiBQaHQoYSxlLHQpe3ZhciByLGksbztyZXR1cm4gYT09PSJsZWZ0Ij8ocj1lLnByZXZpb3VzU2libGluZyxpPS8gJC8pOihyPWUubmV4dFNpYmxpbmcsaT0vXiAvKSxyJiYoci5ub2RlVHlwZT09PTM/bz1pLnRlc3Qoci5ub2RlVmFsdWUpOnQucHJlZm9ybWF0dGVkQ29kZSYmci5ub2RlTmFtZT09PSJDT0RFIj9vPSExOnIubm9kZVR5cGU9PT0xJiYhZmRlKHIpJiYobz1pLnRlc3Qoci50ZXh0Q29udGVudCkpKSxvfWZ1bmN0aW9uIFcwKGEpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFcwKSlyZXR1cm4gbmV3IFcwKGEpO3ZhciBlPXtydWxlczpMaSxoZWFkaW5nU3R5bGU6InNldGV4dCIsaHI6IiogKiAqIixidWxsZXRMaXN0TWFya2VyOiIqIixjb2RlQmxvY2tTdHlsZToiaW5kZW50ZWQiLGZlbmNlOiJgYGAiLGVtRGVsaW1pdGVyOiJfIixzdHJvbmdEZWxpbWl0ZXI6IioqIixsaW5rU3R5bGU6ImlubGluZWQiLGxpbmtSZWZlcmVuY2VTdHlsZToiZnVsbCIsYnI6IiAgIixwcmVmb3JtYXR0ZWRDb2RlOiExLGJsYW5rUmVwbGFjZW1lbnQ6cyhmdW5jdGlvbih0LHIpe3JldHVybiByLmlzQmxvY2s/YAoKYDoiIn0sImJsYW5rUmVwbGFjZW1lbnQiKSxrZWVwUmVwbGFjZW1lbnQ6cyhmdW5jdGlvbih0LHIpe3JldHVybiByLmlzQmxvY2s/YAoKYCtyLm91dGVySFRNTCtgCgpgOnIub3V0ZXJIVE1MfSwia2VlcFJlcGxhY2VtZW50IiksZGVmYXVsdFJlcGxhY2VtZW50OnMoZnVuY3Rpb24odCxyKXtyZXR1cm4gci5pc0Jsb2NrP2AKCmArdCtgCgpgOnR9LCJkZWZhdWx0UmVwbGFjZW1lbnQiKX07dGhpcy5vcHRpb25zPWF6YSh7fSxlLGEpLHRoaXMucnVsZXM9bmV3IERodCh0aGlzLm9wdGlvbnMpfWZ1bmN0aW9uIEVodChhKXt2YXIgZT10aGlzO3JldHVybiB3emEuY2FsbChhLmNoaWxkTm9kZXMsZnVuY3Rpb24odCxyKXtyPW5ldyBiemEocixlLm9wdGlvbnMpO3ZhciBpPSIiO3JldHVybiByLm5vZGVUeXBlPT09Mz9pPXIuaXNDb2RlP3Iubm9kZVZhbHVlOmUuZXNjYXBlKHIubm9kZVZhbHVlKTpyLm5vZGVUeXBlPT09MSYmKGk9a3phLmNhbGwoZSxyKSksSWh0KHQsaSl9LCIiKX1mdW5jdGlvbiBNemEoYSl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5ydWxlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3R5cGVvZiB0LmFwcGVuZD09ImZ1bmN0aW9uIiYmKGE9SWh0KGEsdC5hcHBlbmQoZS5vcHRpb25zKSkpfSksYS5yZXBsYWNlKC9eW1x0XHJcbl0rLywiIikucmVwbGFjZSgvW1x0XHJcblxzXSskLywiIil9ZnVuY3Rpb24ga3phKGEpe3ZhciBlPXRoaXMucnVsZXMuZm9yTm9kZShhKSx0PUVodC5jYWxsKHRoaXMsYSkscj1hLmZsYW5raW5nV2hpdGVzcGFjZTtyZXR1cm4oci5sZWFkaW5nfHxyLnRyYWlsaW5nKSYmKHQ9dC50cmltKCkpLHIubGVhZGluZytlLnJlcGxhY2VtZW50KHQsYSx0aGlzLm9wdGlvbnMpK3IudHJhaWxpbmd9ZnVuY3Rpb24gSWh0KGEsZSl7dmFyIHQ9U2h0KGEpLHI9a2h0KGUpLGk9TWF0aC5tYXgoYS5sZW5ndGgtdC5sZW5ndGgsZS5sZW5ndGgtci5sZW5ndGgpLG89YAoKYC5zdWJzdHJpbmcoMCxpKTtyZXR1cm4gdCtvK3J9ZnVuY3Rpb24gU3phKGEpe3JldHVybiBhIT1udWxsJiYodHlwZW9mIGE9PSJzdHJpbmcifHxhLm5vZGVUeXBlJiYoYS5ub2RlVHlwZT09PTF8fGEubm9kZVR5cGU9PT05fHxhLm5vZGVUeXBlPT09MTEpKX12YXIgcnphLENodCxUaHQsbnphLExpLHhkZSxmemEseWRlLHd6YSxOaHQ9ZigoKT0+e3MoYXphLCJleHRlbmQiKTtzKHBkZSwicmVwZWF0Iik7cyhraHQsInRyaW1MZWFkaW5nTmV3bGluZXMiKTtzKFNodCwidHJpbVRyYWlsaW5nTmV3bGluZXMiKTtzKHpodCwidHJpbU5ld2xpbmVzIik7cnphPVsiQUREUkVTUyIsIkFSVElDTEUiLCJBU0lERSIsIkFVRElPIiwiQkxPQ0tRVU9URSIsIkJPRFkiLCJDQU5WQVMiLCJDRU5URVIiLCJERCIsIkRJUiIsIkRJViIsIkRMIiwiRFQiLCJGSUVMRFNFVCIsIkZJR0NBUFRJT04iLCJGSUdVUkUiLCJGT09URVIiLCJGT1JNIiwiRlJBTUVTRVQiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJIRUFERVIiLCJIR1JPVVAiLCJIUiIsIkhUTUwiLCJJU0lOREVYIiwiTEkiLCJNQUlOIiwiTUVOVSIsIk5BViIsIk5PRlJBTUVTIiwiTk9TQ1JJUFQiLCJPTCIsIk9VVFBVVCIsIlAiLCJQUkUiLCJTRUNUSU9OIiwiVEFCTEUiLCJUQk9EWSIsIlREIiwiVEZPT1QiLCJUSCIsIlRIRUFEIiwiVFIiLCJVTCJdO3MoZmRlLCJpc0Jsb2NrIik7Q2h0PVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtzKF9odCwiaXNWb2lkIik7cyhzemEsImhhc1ZvaWQiKTtUaHQ9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO3MoaXphLCJpc01lYW5pbmdmdWxXaGVuQmxhbmsiKTtzKG96YSwiaGFzTWVhbmluZ2Z1bFdoZW5CbGFuayIpO3MoaGRlLCJpcyIpO3MoTGh0LCJoYXMiKTtuemE9W1svXFwvZywiXFxcXCJdLFsvXCovZywiXFwqIl0sWy9eLS9nLCJcXC0iXSxbL15cKyAvZywiXFwrICJdLFsvXig9KykvZywiXFwkMSJdLFsvXigjezEsNn0pIC9nLCJcXCQxICJdLFsvYC9nLCJcXGAiXSxbL15+fn4vZywiXFx+fn4iXSxbL1xbL2csIlxcWyJdLFsvXF0vZywiXFxdIl0sWy9ePi9nLCJcXD4iXSxbL18vZywiXFxfIl0sWy9eKFxkKylcLiAvZywiJDFcXC4gIl1dO3MoJGh0LCJlc2NhcGVNYXJrZG93biIpO0xpPXt9O0xpLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKGEpe3JldHVybmAKCmArYStgCgpgfSwicmVwbGFjZW1lbnQiKX0sTGkubGluZUJyZWFrPXtmaWx0ZXI6ImJyIixyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKGEsZSx0KXtyZXR1cm4gdC5icitgCmB9LCJyZXBsYWNlbWVudCIpfSxMaS5oZWFkaW5nPXtmaWx0ZXI6WyJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKGEsZSx0KXt2YXIgcj1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKHQuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJnI8Myl7dmFyIGk9cGRlKHI9PT0xPyI9IjoiLSIsYS5sZW5ndGgpO3JldHVybmAKCmArYStgCmAraStgCgpgfWVsc2UgcmV0dXJuYAoKYCtwZGUoIiMiLHIpKyIgIithK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxMaS5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OnMoZnVuY3Rpb24oYSl7cmV0dXJuIGE9emh0KGEpLnJlcGxhY2UoL14vZ20sIj4gIiksYAoKYCthK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxMaS5saXN0PXtmaWx0ZXI6WyJ1bCIsIm9sIl0scmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhLGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJMSSImJnQubGFzdEVsZW1lbnRDaGlsZD09PWU/YApgK2E6YAoKYCthK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxMaS5saXN0SXRlbT17ZmlsdGVyOiJsaSIscmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhLGUsdCl7dmFyIHI9dC5idWxsZXRMaXN0TWFya2VyKyIgICAiLGk9ZS5wYXJlbnROb2RlO2lmKGkubm9kZU5hbWU9PT0iT0wiKXt2YXIgbz1pLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxuPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoaS5jaGlsZHJlbixlKTtyPShvP051bWJlcihvKStuOm4rMSkrIi4gICJ9dmFyIGw9L1xuJC8udGVzdChhKTtyZXR1cm4gYT16aHQoYSkrKGw/YApgOiIiKSxhPWEucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoci5sZW5ndGgpKSxyK2ErKGUubmV4dFNpYmxpbmc/YApgOiIiKX0sInJlcGxhY2VtZW50Iil9LExpLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6cyhmdW5jdGlvbihhLGUpe3JldHVybiBlLmNvZGVCbG9ja1N0eWxlPT09ImluZGVudGVkIiYmYS5ub2RlTmFtZT09PSJQUkUiJiZhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OnMoZnVuY3Rpb24oYSxlLHQpe3JldHVybmAKCiAgICBgK2UuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cbi9nLGAKICAgIGApK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxMaS5mZW5jZWRDb2RlQmxvY2s9e2ZpbHRlcjpzKGZ1bmN0aW9uKGEsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iZmVuY2VkIiYmYS5ub2RlTmFtZT09PSJQUkUiJiZhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OnMoZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixpPShyLm1hdGNoKC9sYW5ndWFnZS0oXFMrKS8pfHxbbnVsbCwiIl0pWzFdLG89ZS5maXJzdENoaWxkLnRleHRDb250ZW50LG49dC5mZW5jZS5jaGFyQXQoMCksbD0zLGQ9bmV3IFJlZ0V4cCgiXiIrbisiezMsfSIsImdtIiksYztjPWQuZXhlYyhvKTspY1swXS5sZW5ndGg+PWwmJihsPWNbMF0ubGVuZ3RoKzEpO3ZhciBwPXBkZShuLGwpO3JldHVybmAKCmArcCtpK2AKYCtvLnJlcGxhY2UoL1xuJC8sIiIpK2AKYCtwK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxMaS5ob3Jpem9udGFsUnVsZT17ZmlsdGVyOiJociIscmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhLGUsdCl7cmV0dXJuYAoKYCt0LmhyK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxMaS5pbmxpbmVMaW5rPXtmaWx0ZXI6cyhmdW5jdGlvbihhLGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJpbmxpbmVkIiYmYS5ub2RlTmFtZT09PSJBIiYmYS5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OnMoZnVuY3Rpb24oYSxlKXt2YXIgdD1tZGUoZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSkscj1nZGUodkooZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpKSxpPXI/JyAiJytyKyciJzoiIjtyZXR1cm4iWyIrYSsiXSgiK3QraSsiKSJ9LCJyZXBsYWNlbWVudCIpfSxMaS5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6cyhmdW5jdGlvbihhLGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJyZWZlcmVuY2VkIiYmYS5ub2RlTmFtZT09PSJBIiYmYS5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OnMoZnVuY3Rpb24oYSxlLHQpe3ZhciByPW1kZShlLmdldEF0dHJpYnV0ZSgiaHJlZiIpKSxpPXZKKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtpJiYoaT0nICInK2dkZShpKSsnIicpO3ZhciBvLG47c3dpdGNoKHQubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6bz0iWyIrYSsiXVtdIixuPSJbIithKyJdOiAiK3IraTticmVhaztjYXNlInNob3J0Y3V0IjpvPSJbIithKyJdIixuPSJbIithKyJdOiAiK3IraTticmVhaztkZWZhdWx0OnZhciBsPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtvPSJbIithKyJdWyIrbCsiXSIsbj0iWyIrbCsiXTogIityK2l9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKG4pLG99LCJyZXBsYWNlbWVudCIpLHJlZmVyZW5jZXM6W10sYXBwZW5kOnMoZnVuY3Rpb24oYSl7dmFyIGU9IiI7cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5sZW5ndGgmJihlPWAKCmArdGhpcy5yZWZlcmVuY2VzLmpvaW4oYApgKStgCgpgLHRoaXMucmVmZXJlbmNlcz1bXSksZX0sImFwcGVuZCIpfSxMaS5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhLGUsdCl7cmV0dXJuIGEudHJpbSgpP3QuZW1EZWxpbWl0ZXIrYSt0LmVtRGVsaW1pdGVyOiIifSwicmVwbGFjZW1lbnQiKX0sTGkuc3Ryb25nPXtmaWx0ZXI6WyJzdHJvbmciLCJiIl0scmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhLGUsdCl7cmV0dXJuIGEudHJpbSgpP3Quc3Ryb25nRGVsaW1pdGVyK2ErdC5zdHJvbmdEZWxpbWl0ZXI6IiJ9LCJyZXBsYWNlbWVudCIpfSxMaS5jb2RlPXtmaWx0ZXI6cyhmdW5jdGlvbihhKXt2YXIgZT1hLnByZXZpb3VzU2libGluZ3x8YS5uZXh0U2libGluZyx0PWEucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhZTtyZXR1cm4gYS5ub2RlTmFtZT09PSJDT0RFIiYmIXR9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiIiO2E9YS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciBlPS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KGEpPyIgIjoiIix0PSJgIixyPWEubWF0Y2goL2ArL2dtKXx8W107ci5pbmRleE9mKHQpIT09LTE7KXQ9dCsiYCI7cmV0dXJuIHQrZSthK2UrdH0sInJlcGxhY2VtZW50Iil9LExpLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhLGUpe3ZhciB0PSRodCh2SihlLmdldEF0dHJpYnV0ZSgiYWx0IikpKSxyPW1kZShlLmdldEF0dHJpYnV0ZSgic3JjIil8fCIiKSxpPXZKKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxvPWk/JyAiJytnZGUoaSkrJyInOiIiO3JldHVybiByPyIhWyIrdCsiXSgiK3IrbysiKSI6IiJ9LCJyZXBsYWNlbWVudCIpfTtzKHZKLCJjbGVhbkF0dHJpYnV0ZSIpO3MobWRlLCJlc2NhcGVMaW5rRGVzdGluYXRpb24iKTtzKGdkZSwiZXNjYXBlTGlua1RpdGxlIik7cyhEaHQsIlJ1bGVzIiksRGh0LnByb3RvdHlwZT17YWRkOnMoZnVuY3Rpb24oYSxlKXt0aGlzLmFycmF5LnVuc2hpZnQoZSl9LCJhZGQiKSxrZWVwOnMoZnVuY3Rpb24oYSl7dGhpcy5fa2VlcC51bnNoaWZ0KHtmaWx0ZXI6YSxyZXBsYWNlbWVudDp0aGlzLmtlZXBSZXBsYWNlbWVudH0pfSwia2VlcCIpLHJlbW92ZTpzKGZ1bmN0aW9uKGEpe3RoaXMuX3JlbW92ZS51bnNoaWZ0KHtmaWx0ZXI6YSxyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKCl7cmV0dXJuIiJ9LCJyZXBsYWNlbWVudCIpfSl9LCJyZW1vdmUiKSxmb3JOb2RlOnMoZnVuY3Rpb24oYSl7aWYoYS5pc0JsYW5rKXJldHVybiB0aGlzLmJsYW5rUnVsZTt2YXIgZTtyZXR1cm4oZT1iZGUodGhpcy5hcnJheSxhLHRoaXMub3B0aW9ucykpfHwoZT1iZGUodGhpcy5fa2VlcCxhLHRoaXMub3B0aW9ucykpfHwoZT1iZGUodGhpcy5fcmVtb3ZlLGEsdGhpcy5vcHRpb25zKSk/ZTp0aGlzLmRlZmF1bHRSdWxlfSwiZm9yTm9kZSIpLGZvckVhY2g6cyhmdW5jdGlvbihhKXtmb3IodmFyIGU9MDtlPHRoaXMuYXJyYXkubGVuZ3RoO2UrKylhKHRoaXMuYXJyYXlbZV0sZSl9LCJmb3JFYWNoIil9O3MoYmRlLCJmaW5kUnVsZSIpO3MobHphLCJmaWx0ZXJWYWx1ZSIpO3MoY3phLCJjb2xsYXBzZVdoaXRlc3BhY2UiKTtzKHZkZSwicmVtb3ZlIik7cyhBaHQsIm5leHQiKTt4ZGU9dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9O3MoZHphLCJjYW5QYXJzZUhUTUxOYXRpdmVseSIpO3ModXphLCJjcmVhdGVIVE1MUGFyc2VyIik7cyhwemEsInNob3VsZFVzZUFjdGl2ZVgiKTtmemE9ZHphKCk/eGRlLkRPTVBhcnNlcjp1emEoKTtzKGh6YSwiUm9vdE5vZGUiKTtzKG16YSwiaHRtbFBhcnNlciIpO3MoZ3phLCJpc1ByZU9yQ29kZSIpO3MoYnphLCJOb2RlIik7cyh2emEsImlzQmxhbmsiKTtzKHh6YSwiZmxhbmtpbmdXaGl0ZXNwYWNlIik7cyh5emEsImVkZ2VXaGl0ZXNwYWNlIik7cyhQaHQsImlzRmxhbmtlZEJ5V2hpdGVzcGFjZSIpO3d6YT1BcnJheS5wcm90b3R5cGUucmVkdWNlO3MoVzAsIlR1cm5kb3duU2VydmljZSIpLFcwLnByb3RvdHlwZT17dHVybmRvd246cyhmdW5jdGlvbihhKXtpZighU3phKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhIHN0cmluZywgb3IgYW4gZWxlbWVudC9kb2N1bWVudC9mcmFnbWVudCBub2RlLiIpO2lmKGE9PT0iIilyZXR1cm4iIjt2YXIgZT1FaHQuY2FsbCh0aGlzLG5ldyBoemEoYSx0aGlzLm9wdGlvbnMpKTtyZXR1cm4gTXphLmNhbGwodGhpcyxlKX0sInR1cm5kb3duIiksdXNlOnMoZnVuY3Rpb24oYSl7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGU9MDtlPGEubGVuZ3RoO2UrKyl0aGlzLnVzZShhW2VdKTtlbHNlIGlmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKWEodGhpcyk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJwbHVnaW4gbXVzdCBiZSBhIEZ1bmN0aW9uIG9yIGFuIEFycmF5IG9mIEZ1bmN0aW9ucyIpO3JldHVybiB0aGlzfSwidXNlIiksYWRkUnVsZTpzKGZ1bmN0aW9uKGEsZSl7cmV0dXJuIHRoaXMucnVsZXMuYWRkKGEsZSksdGhpc30sImFkZFJ1bGUiKSxrZWVwOnMoZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucnVsZXMua2VlcChhKSx0aGlzfSwia2VlcCIpLHJlbW92ZTpzKGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJ1bGVzLnJlbW92ZShhKSx0aGlzfSwicmVtb3ZlIiksZXNjYXBlOnMoZnVuY3Rpb24oYSl7cmV0dXJuICRodChhKX0sImVzY2FwZSIpfTtzKEVodCwicHJvY2VzcyIpO3MoTXphLCJwb3N0UHJvY2VzcyIpO3Moa3phLCJyZXBsYWNlbWVudEZvck5vZGUiKTtzKElodCwiam9pbiIpO3MoU3phLCJjYW5Db252ZXJ0Iil9KTt2YXIgQ2RlPXt9O2x0KENkZSx7Z2ZtOigpPT5GaHQsaGlnaGxpZ2h0ZWRDb2RlQmxvY2s6KCk9Pk1kZSxzdHJpa2V0aHJvdWdoOigpPT5rZGUsdGFibGVzOigpPT5TZGUsdGFza0xpc3RJdGVtczooKT0+emRlfSk7ZnVuY3Rpb24gTWRlKGEpe2EuYWRkUnVsZSgiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siLHtmaWx0ZXI6cyhmdW5jdGlvbihlKXt2YXIgdD1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGUubm9kZU5hbWU9PT0iRElWIiYmUmh0LnRlc3QoZS5jbGFzc05hbWUpJiZ0JiZ0Lm5vZGVOYW1lPT09IlBSRSJ9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10LmNsYXNzTmFtZXx8IiIsbz0oaS5tYXRjaChSaHQpfHxbbnVsbCwiIl0pWzFdO3JldHVybmAKCmArci5mZW5jZStvK2AKYCt0LmZpcnN0Q2hpbGQudGV4dENvbnRlbnQrYApgK3IuZmVuY2UrYAoKYH0sInJlcGxhY2VtZW50Iil9KX1mdW5jdGlvbiBrZGUoYSl7YS5hZGRSdWxlKCJzdHJpa2V0aHJvdWdoIix7ZmlsdGVyOlsiZGVsIiwicyIsInN0cmlrZSJdLHJlcGxhY2VtZW50OnMoZnVuY3Rpb24oZSl7cmV0dXJuIn4iK2UrIn4ifSwicmVwbGFjZW1lbnQiKX0pfWZ1bmN0aW9uIHdkZShhKXt2YXIgZT1hLnBhcmVudE5vZGU7cmV0dXJuIGUubm9kZU5hbWU9PT0iVEhFQUQifHxlLmZpcnN0Q2hpbGQ9PT1hJiYoZS5ub2RlTmFtZT09PSJUQUJMRSJ8fF96YShlKSkmJkN6YS5jYWxsKGEuY2hpbGROb2RlcyxmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlTmFtZT09PSJUSCJ9KX1mdW5jdGlvbiBfemEoYSl7dmFyIGU9YS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIGEubm9kZU5hbWU9PT0iVEJPRFkiJiYoIWV8fGUubm9kZU5hbWU9PT0iVEhFQUQiJiYvXlxzKiQvaS50ZXN0KGUudGV4dENvbnRlbnQpKX1mdW5jdGlvbiBPaHQoYSxlKXt2YXIgdD16emEuY2FsbChlLnBhcmVudE5vZGUuY2hpbGROb2RlcyxlKSxyPSIgIjtyZXR1cm4gdD09PTAmJihyPSJ8ICIpLHIrYSsiIHwifWZ1bmN0aW9uIFNkZShhKXthLmtlZXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEFCTEUiJiYhd2RlKHQucm93c1swXSl9KTtmb3IodmFyIGUgaW4gRDgpYS5hZGRSdWxlKGUsRDhbZV0pfWZ1bmN0aW9uIHpkZShhKXthLmFkZFJ1bGUoInRhc2tMaXN0SXRlbXMiLHtmaWx0ZXI6cyhmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlPT09ImNoZWNrYm94IiYmZS5wYXJlbnROb2RlLm5vZGVOYW1lPT09IkxJIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OnMoZnVuY3Rpb24oZSx0KXtyZXR1cm4odC5jaGVja2VkPyJbeF0iOiJbIF0iKSsiICJ9LCJyZXBsYWNlbWVudCIpfSl9ZnVuY3Rpb24gRmh0KGEpe2EudXNlKFtNZGUsa2RlLFNkZSx6ZGVdKX12YXIgUmh0LHp6YSxDemEsRDgsQmh0PWYoKCk9PntSaHQ9L2hpZ2hsaWdodC0oPzp0ZXh0fHNvdXJjZSktKFthLXowLTldKykvO3MoTWRlLCJoaWdobGlnaHRlZENvZGVCbG9jayIpO3Moa2RlLCJzdHJpa2V0aHJvdWdoIik7enphPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLEN6YT1BcnJheS5wcm90b3R5cGUuZXZlcnksRDg9e307RDgudGFibGVDZWxsPXtmaWx0ZXI6WyJ0aCIsInRkIl0scmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhLGUpe3JldHVybiBPaHQoYSxlKX0sInJlcGxhY2VtZW50Iil9LEQ4LnRhYmxlUm93PXtmaWx0ZXI6InRyIixyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKGEsZSl7dmFyIHQ9IiIscj17bGVmdDoiOi0tIixyaWdodDoiLS06IixjZW50ZXI6IjotOiJ9O2lmKHdkZShlKSlmb3IodmFyIGk9MDtpPGUuY2hpbGROb2Rlcy5sZW5ndGg7aSsrKXt2YXIgbz0iLS0tIixuPShlLmNoaWxkTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJhbGlnbiIpfHwiIikudG9Mb3dlckNhc2UoKTtuJiYobz1yW25dfHxvKSx0Kz1PaHQobyxlLmNoaWxkTm9kZXNbaV0pfXJldHVybmAKYCthKyh0P2AKYCt0OiIiKX0sInJlcGxhY2VtZW50Iil9LEQ4LnRhYmxlPXtmaWx0ZXI6cyhmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZT09PSJUQUJMRSImJndkZShhLnJvd3NbMF0pfSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6cyhmdW5jdGlvbihhKXtyZXR1cm4gYT1hLnJlcGxhY2UoYAoKYCxgCmApLGAKCmArYStgCgpgfSwicmVwbGFjZW1lbnQiKX0sRDgudGFibGVTZWN0aW9uPXtmaWx0ZXI6WyJ0aGVhZCIsInRib2R5IiwidGZvb3QiXSxyZXBsYWNlbWVudDpzKGZ1bmN0aW9uKGEpe3JldHVybiBhfSwicmVwbGFjZW1lbnQiKX07cyh3ZGUsImlzSGVhZGluZ1JvdyIpO3MoX3phLCJpc0ZpcnN0VGJvZHkiKTtzKE9odCwiY2VsbCIpO3MoU2RlLCJ0YWJsZXMiKTtzKHpkZSwidGFza0xpc3RJdGVtcyIpO3MoRmh0LCJnZm0iKX0pO3ZhciBfZGUsVGRlPWYoKCk9PntfM3QoKTtvZHQoKTtwcHQoKTtPcHQoKTtacHQoKTt5aHQoKTtNaHQoKTtOaHQoKTtCaHQoKTtfZGU9Q2RlfSk7dmFyIFR6YSx4SixxaHQ9ZigoKT0+e1RkZSgpO1R6YT1zKGE9PmEudHlwZT09PSJ5YW1sIiYmInZhbHVlImluIGEmJnR5cGVvZiBhLnZhbHVlPT0ic3RyaW5nIiwiaXNZYW1sTm9kZSIpLHhKPWNsYXNzIGF7c3RhdGlje3ModGhpcywiTWRQYXJzZWRSZXN1bHQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMub3JpZ2luYWxTdHJpbmc9IiIsdGhpcy50aXRsZT0iIix0aGlzLmh0bWw9IiIsdGhpcy5mcm9udG1hdHRlckRhdGE9e319c3RhdGljIGFzeW5jIGNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKXtsZXQgdD1uZXcgYTtyZXR1cm4gYXdhaXQgdC51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSksdH1hc3luYyB1cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7dGhpcy5vcmlnaW5hbFN0cmluZz1lO2xldCB0LHI9YXdhaXQgRmcoKS51c2UoazgpLnVzZShNOCkudXNlKHo4LFsieWFtbCIsInRvbWwiXSkudXNlKCQ4KS51c2UoTDgpLnVzZSgoKT0+aT0+e2xldCBvPWkuY2hpbGRyZW4uZmluZChUemEpO28mJih0PW8udmFsdWUpfSkucHJvY2VzcyhlKTt0aGlzLmh0bWw9ci50b1N0cmluZygpLHQ/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgSWcueWFtbFN0cmluZ1RvT2JqZWN0KHQpOnRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fX19KTt2YXIgY2I9e307bHQoY2Ise1NtYXJ0TWFya2Rvd246KCk9PkxkZX0pO3ZhciBMZGUsVmh0PWYoKCk9PntUZGUoKTtxaHQoKTtMZGU9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJTbWFydE1hcmtkb3duIil9c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbChlKXtyZXR1cm4oYXdhaXQgbmV3IGEoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKXtyZXR1cm4gYXdhaXQgeEouY3JlYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpfWh0bWxUb01hcmtkb3duKGUpe2xldCB0PW5ldyBXMCh7aGVhZGluZ1N0eWxlOiJhdHgiLGNvZGVCbG9ja1N0eWxlOiJmZW5jZWQifSk7cmV0dXJuIHQudXNlKF9kZS5nZm0pLHQudHVybmRvd24oZSl9fX0pO3ZhciBLaHQ9TW8oeDE9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHgxLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx4MS5QYXRoRXJyb3I9eDEuVG9rZW5EYXRhPXZvaWQgMCx4MS5wYXJzZT1BZGUseDEuY29tcGlsZT1BemEseDEubWF0Y2g9RXphLHgxLnBhdGhUb1JlZ2V4cD1XaHQseDEuc3RyaW5naWZ5PU56YTt2YXIgJGRlPSIvIixEZGU9cyhhPT5hLCJOT09QX1ZBTFVFIiksTHphPS9eWyRfXHB7SURfU3RhcnR9XSQvdSxqaHQ9L15bJFx1MjAwY1x1MjAwZFxwe0lEX0NvbnRpbnVlfV0kL3UsJHphPS9eWyRfXHB7SURfU3RhcnR9XVskXHUyMDBjXHUyMDBkXHB7SURfQ29udGludWV9XSokL3U7ZnVuY3Rpb24gRHphKGEpe3JldHVybiBhLnJlcGxhY2UoL1t7fSgpXFtcXSs/IToqXFxdL2csIlxcJCYiKX1zKER6YSwiZXNjYXBlVGV4dCIpO2Z1bmN0aW9uIGpsKGEpe3JldHVybiBhLnJlcGxhY2UoL1suKyo/XiR7fSgpW1xdfC9cXF0vZywiXFwkJiIpfXMoamwsImVzY2FwZSIpO3ZhciB5Sj1jbGFzc3tzdGF0aWN7cyh0aGlzLCJUb2tlbkRhdGEiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudG9rZW5zPWUsdGhpcy5vcmlnaW5hbFBhdGg9dH19O3gxLlRva2VuRGF0YT15Sjt2YXIgTzI9Y2xhc3MgZXh0ZW5kcyBUeXBlRXJyb3J7c3RhdGlje3ModGhpcywiUGF0aEVycm9yIil9Y29uc3RydWN0b3IoZSx0KXtsZXQgcj1lO3QmJihyKz1gOiAke3R9YCkscis9IjsgdmlzaXQgaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yIGZvciBpbmZvIixzdXBlcihyKSx0aGlzLm9yaWdpbmFsUGF0aD10fX07eDEuUGF0aEVycm9yPU8yO2Z1bmN0aW9uIEFkZShhLGU9e30pe2xldHtlbmNvZGVQYXRoOnQ9RGRlfT1lLHI9Wy4uLmFdLGk9MDtmdW5jdGlvbiBvKG4pe2xldCBsPVtdLGQ9IiI7ZnVuY3Rpb24gYygpe2QmJihsLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOnQoZCl9KSxkPSIiKX1mb3IocyhjLCJ3cml0ZVBhdGgiKTtpPHIubGVuZ3RoOyl7bGV0IHA9cltpKytdO2lmKHA9PT1uKXJldHVybiBjKCksbDtpZihwPT09IlxcIil7aWYoaT09PXIubGVuZ3RoKXRocm93IG5ldyBPMihgVW5leHBlY3RlZCBlbmQgYWZ0ZXIgXFwgYXQgaW5kZXggJHtpfWAsYSk7ZCs9cltpKytdO2NvbnRpbnVlfWlmKHA9PT0iOiJ8fHA9PT0iKiIpe2xldCB1PXA9PT0iOiI/InBhcmFtIjoid2lsZGNhcmQiLG09IiI7aWYoTHphLnRlc3QocltpXSkpZG8gbSs9cltpKytdO3doaWxlKGpodC50ZXN0KHJbaV0pKTtlbHNlIGlmKHJbaV09PT0nIicpe2xldCB2PWk7Zm9yKDtpPHIubGVuZ3RoOyl7aWYoclsrK2ldPT09JyInKXtpKyssdj0wO2JyZWFrfXJbaV09PT0iXFwiJiZpKyssbSs9cltpXX1pZih2KXRocm93IG5ldyBPMihgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7dn1gLGEpfWlmKCFtKXRocm93IG5ldyBPMihgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBpbmRleCAke2l9YCxhKTtjKCksbC5wdXNoKHt0eXBlOnUsbmFtZTptfSk7Y29udGludWV9aWYocD09PSJ7Iil7YygpLGwucHVzaCh7dHlwZToiZ3JvdXAiLHRva2VuczpvKCJ9Iil9KTtjb250aW51ZX1pZihwPT09In0ifHxwPT09IigifHxwPT09IikifHxwPT09IlsifHxwPT09Il0ifHxwPT09IisifHxwPT09Ij8ifHxwPT09IiEiKXRocm93IG5ldyBPMihgVW5leHBlY3RlZCAke3B9IGF0IGluZGV4ICR7aS0xfWAsYSk7ZCs9cH1pZihuKXRocm93IG5ldyBPMihgVW5leHBlY3RlZCBlbmQgYXQgaW5kZXggJHtpfSwgZXhwZWN0ZWQgJHtufWAsYSk7cmV0dXJuIGMoKSxsfXJldHVybiBzKG8sImNvbnN1bWVVbnRpbCIpLG5ldyB5SihvKCIiKSxhKX1zKEFkZSwicGFyc2UiKTtmdW5jdGlvbiBBemEoYSxlPXt9KXtsZXR7ZW5jb2RlOnQ9ZW5jb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjpyPSRkZX09ZSxpPXR5cGVvZiBhPT0ib2JqZWN0Ij9hOkFkZShhLGUpLG89VWh0KGkudG9rZW5zLHIsdCk7cmV0dXJuIHMoZnVuY3Rpb24obD17fSl7bGV0IGQ9W10sYz1vKGwsZCk7aWYoZC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXJzOiAke2Quam9pbigiLCAiKX1gKTtyZXR1cm4gY30sInBhdGgiKX1zKEF6YSwiY29tcGlsZSIpO2Z1bmN0aW9uIFVodChhLGUsdCl7bGV0IHI9YS5tYXAoaT0+UHphKGksZSx0KSk7cmV0dXJuKGksbyk9PntsZXQgbj0iIjtmb3IobGV0IGwgb2YgciluKz1sKGksbyk7cmV0dXJuIG59fXMoVWh0LCJ0b2tlbnNUb0Z1bmN0aW9uIik7ZnVuY3Rpb24gUHphKGEsZSx0KXtpZihhLnR5cGU9PT0idGV4dCIpcmV0dXJuKCk9PmEudmFsdWU7aWYoYS50eXBlPT09Imdyb3VwIil7bGV0IGk9VWh0KGEudG9rZW5zLGUsdCk7cmV0dXJuKG8sbik9PntsZXQgbD1uLmxlbmd0aCxkPWkobyxuKTtyZXR1cm4gbi5sZW5ndGg9PT1sP2Q6KG4ubGVuZ3RoPWwsIiIpfX1sZXQgcj10fHxEZGU7cmV0dXJuIGEudHlwZT09PSJ3aWxkY2FyZCImJnQhPT0hMT8oaSxvKT0+e2xldCBuPWlbYS5uYW1lXTtpZihuPT1udWxsKXJldHVybiBvLnB1c2goYS5uYW1lKSwiIjtpZighQXJyYXkuaXNBcnJheShuKXx8bi5sZW5ndGg9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke2EubmFtZX0iIHRvIGJlIGEgbm9uLWVtcHR5IGFycmF5YCk7bGV0IGw9IiI7Zm9yKGxldCBkPTA7ZDxuLmxlbmd0aDtkKyspe2lmKHR5cGVvZiBuW2RdIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHthLm5hbWV9LyR7ZH0iIHRvIGJlIGEgc3RyaW5nYCk7ZD4wJiYobCs9ZSksbCs9cihuW2RdKX1yZXR1cm4gbH06KGksbyk9PntsZXQgbj1pW2EubmFtZV07aWYobj09bnVsbClyZXR1cm4gby5wdXNoKGEubmFtZSksIiI7aWYodHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke2EubmFtZX0iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuIHIobil9fXMoUHphLCJ0b2tlblRvRnVuY3Rpb24iKTtmdW5jdGlvbiBFemEoYSxlPXt9KXtsZXR7ZGVjb2RlOnQ9ZGVjb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjpyPSRkZX09ZSx7cmVnZXhwOmksa2V5czpvfT1XaHQoYSxlKSxuPW8ubWFwKGw9PnQ9PT0hMT9EZGU6bC50eXBlPT09InBhcmFtIj90OmQ9PmQuc3BsaXQocikubWFwKHQpKTtyZXR1cm4gcyhmdW5jdGlvbihkKXtsZXQgYz1pLmV4ZWMoZCk7aWYoIWMpcmV0dXJuITE7bGV0IHA9Y1swXSx1PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBtPTE7bTxjLmxlbmd0aDttKyspe2lmKGNbbV09PT12b2lkIDApY29udGludWU7bGV0IHY9b1ttLTFdLHg9blttLTFdO3Vbdi5uYW1lXT14KGNbbV0pfXJldHVybntwYXRoOnAscGFyYW1zOnV9fSwibWF0Y2giKX1zKEV6YSwibWF0Y2giKTtmdW5jdGlvbiBXaHQoYSxlPXt9KXtsZXR7ZGVsaW1pdGVyOnQ9JGRlLGVuZDpyPSEwLHNlbnNpdGl2ZTppPSExLHRyYWlsaW5nOm89ITB9PWUsbj1bXSxsPSIiLGQ9MDtmdW5jdGlvbiBjKHUpe2lmKEFycmF5LmlzQXJyYXkodSkpe2ZvcihsZXQgdiBvZiB1KWModik7cmV0dXJufWxldCBtPXR5cGVvZiB1PT0ib2JqZWN0Ij91OkFkZSh1LGUpO1BkZShtLnRva2VucywwLFtdLHY9PntpZihkPj0yNTYpdGhyb3cgbmV3IE8yKCJUb28gbWFueSBwYXRoIGNvbWJpbmF0aW9ucyIsbS5vcmlnaW5hbFBhdGgpO2Q+MCYmKGwrPSJ8IiksbCs9SXphKHYsdCxuLG0ub3JpZ2luYWxQYXRoKSxkKyt9KX1zKGMsInByb2Nlc3MiKSxjKGEpO2xldCBwPWBeKD86JHtsfSlgO3JldHVybiBvJiYocCs9Iig/OiIramwodCkrIiQpPyIpLHArPXI/IiQiOiIoPz0iK2psKHQpKyJ8JCkiLHtyZWdleHA6bmV3IFJlZ0V4cChwLGk/IiI6ImkiKSxrZXlzOm59fXMoV2h0LCJwYXRoVG9SZWdleHAiKTtmdW5jdGlvbiBQZGUoYSxlLHQscil7Zm9yKDtlPGEubGVuZ3RoOyl7bGV0IGk9YVtlKytdO2lmKGkudHlwZT09PSJncm91cCIpe2xldCBvPXQubGVuZ3RoO1BkZShpLnRva2VucywwLHQsbj0+UGRlKGEsZSxuLHIpKSx0Lmxlbmd0aD1vO2NvbnRpbnVlfXQucHVzaChpKX1yKHQpfXMoUGRlLCJmbGF0dGVuIik7ZnVuY3Rpb24gSXphKGEsZSx0LHIpe2xldCBpPSIiLG89IiIsbj0iIixsPTAsZD0wLGM9MDtmdW5jdGlvbiBwKG0sdil7Zm9yKDttPGEubGVuZ3RoOyl7bGV0IHg9YVttKytdO2lmKHgudHlwZT09PXYpcmV0dXJuITA7aWYoeC50eXBlPT09InRleHQiJiZ4LnZhbHVlLmluY2x1ZGVzKGUpKWJyZWFrfXJldHVybiExfXMocCwiaGFzSW5TZWdtZW50Iik7ZnVuY3Rpb24gdShtKXtsZXQgdj0iIjtmb3IoO208YS5sZW5ndGg7KXtsZXQgeD1hW20rK107aWYoeC50eXBlIT09InRleHQiKWJyZWFrO3YrPXgudmFsdWV9cmV0dXJuIHZ9Zm9yKHModSwicGVla1RleHQiKTtjPGEubGVuZ3RoOyl7bGV0IG09YVtjKytdO2lmKG0udHlwZT09PSJ0ZXh0Iil7aSs9amwobS52YWx1ZSksbys9bS52YWx1ZSxsPT09MiYmKG4rPW0udmFsdWUpLG0udmFsdWUuaW5jbHVkZXMoZSkmJihkPTApO2NvbnRpbnVlfWlmKG0udHlwZT09PSJwYXJhbSJ8fG0udHlwZT09PSJ3aWxkY2FyZCIpe2lmKGwmJiFvKXRocm93IG5ldyBPMihgTWlzc2luZyB0ZXh0IGJlZm9yZSAiJHttLm5hbWV9IiAke20udHlwZX1gLHIpO20udHlwZT09PSJwYXJhbSI/KGkrPWQmMj9gKCR7RzAoZSxvKX0rKWA6cChjLCJ3aWxkY2FyZCIpP2AoJHtHMChlLHUoYykpfSspYDpkJjE/YCgke0cwKGUsbyl9K3wke2psKG8pfSlgOmAoJHtHMChlLCIiKX0rKWAsZHw9bD0xKTooaSs9ZCYyP2AoJHtHMChvLCIiKX0rKWA6bj9gKCR7RzAobiwiIil9K3wke0cwKGUsIiIpfSspYDoiKFteXSspIixuPSIiLGR8PWw9MiksdC5wdXNoKG0pLG89IiI7Y29udGludWV9dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5rbm93biB0b2tlbiB0eXBlOiAke20udHlwZX1gKX1yZXR1cm4gaX1zKEl6YSwidG9SZWdFeHBTb3VyY2UiKTtmdW5jdGlvbiBHMChhLGUpe3JldHVybiBlLmxlbmd0aD5hLmxlbmd0aD9HMChlLGEpOihhPT09ZSYmKGU9IiIpLGUubGVuZ3RoPjE/YCg/Oig/ISR7amwoYSl9fCR7amwoZSl9KVteXSlgOmEubGVuZ3RoPjE/YCg/Oig/ISR7amwoYSl9KVteJHtqbChlKX1dKWA6YFteJHtqbChhK2UpfV1gKX1zKEcwLCJuZWdhdGUiKTtmdW5jdGlvbiBHaHQoYSxlKXtsZXQgdD0iIjtmb3IoO2U8YS5sZW5ndGg7KXtsZXQgcj1hW2UrK107aWYoci50eXBlPT09InRleHQiKXt0Kz1EemEoci52YWx1ZSk7Y29udGludWV9aWYoci50eXBlPT09Imdyb3VwIil7dCs9InsiK0dodChyLnRva2VucywwKSsifSI7Y29udGludWV9aWYoci50eXBlPT09InBhcmFtIil7dCs9IjoiK1lodChyLm5hbWUsYVtlXSk7Y29udGludWV9aWYoci50eXBlPT09IndpbGRjYXJkIil7dCs9IioiK1lodChyLm5hbWUsYVtlXSk7Y29udGludWV9dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5rbm93biB0b2tlbiB0eXBlOiAke3IudHlwZX1gKX1yZXR1cm4gdH1zKEdodCwic3RyaW5naWZ5VG9rZW5zIik7ZnVuY3Rpb24gTnphKGEpe3JldHVybiBHaHQoYS50b2tlbnMsMCl9cyhOemEsInN0cmluZ2lmeSIpO2Z1bmN0aW9uIFlodChhLGUpe3JldHVybiEkemEudGVzdChhKXx8ZT8udHlwZT09PSJ0ZXh0IiYmamh0LnRlc3QoZS52YWx1ZVswXSk/SlNPTi5zdHJpbmdpZnkoYSk6YX1zKFlodCwic3RyaW5naWZ5TmFtZSIpfSk7dmFyIEVkZSxJZGU9ZigoKT0+e3o5KCk7cDIoKTtFZGU9a28oS2h0KCksMSl9KTt2YXIgd0osWmh0PWYoKCk9PntJZGUoKTt3Sj1jbGFzc3tzdGF0aWN7cyh0aGlzLCJRdWVyeVBhcmFtcyIpfWNvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUsdCxyPSJyZXBsYWNlIil7dmFyIGk9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtpLnNldChlLHQpLHI9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIraS50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUsdD0icmVwbGFjZSIpe3ZhciByPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7ci5kZWxldGUoZSksdD09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK3IudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IityLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyIGJycyxOZGUsWGh0PWYoKCk9PntJZGUoKTtaaHQoKTticnM9cyhhPT57Y29uc29sZS5sb2coYCVjW1JvdXRlcl0lYyAke2F9YCwiY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsiLCJjb2xvcjogaW5oZXJpdCIpfSwicm91dGVMb2ciKSxOZGU9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJTbWFydFJvdXRlciIpfWNvbnN0cnVjdG9yKGUsdD0iIil7dGhpcy5vcHRpb25zPXtkZWJ1ZzohMX0sdGhpcy5xdWVyeVBhcmFtcz1uZXcgd0osdGhpcy5yb3V0ZXM9W10sdGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4uZX0sdGhpcy5iYXNlUGF0aD10LHRoaXMucG9wc3RhdGVMaXN0ZW5lcj1yPT57ci5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpfWNyZWF0ZVN1YlJvdXRlcihlLHQpe2xldCByPWAke3RoaXMuYmFzZVBhdGh9JHtlfWA7cmV0dXJuIG5ldyBhKHsuLi50aGlzLm9wdGlvbnMsLi4udH0scil9YXN5bmMgcHVzaFVybChlPSIvIix0PXt9KXtsZXQgcj1gJHt0aGlzLmJhc2VQYXRofSR7ZX1gO3IhPT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU/d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHQsd2luZG93LmRvY3VtZW50LnRpdGxlLHIpOndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh0LHdpbmRvdy5kb2N1bWVudC50aXRsZSxyKSxhd2FpdCB0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCl9b24oZSx0KXtsZXQgcj1gJHt0aGlzLmJhc2VQYXRofSR7ZX1gLGk9e21hdGNoRnVuY3Rpb246RWRlLm1hdGNoKHIpLGhhbmRsZXI6dH07cmV0dXJuIHRoaXMucm91dGVzLnB1c2goaSkscygoKT0+e3RoaXMucm91dGVzLnNwbGljZSh0aGlzLnJvdXRlcy5pbmRleE9mKGkpLDEpfSwicmVtb3ZlRnVuY3Rpb24iKX1hc3luYyBfaGFuZGxlUm91dGVTdGF0ZSgpe2xldCBlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSx0PXRoaXMucm91dGVzLmZpbHRlcihyPT4hIXIubWF0Y2hGdW5jdGlvbihlKSk7Zm9yKGxldCByIG9mIHQpe2xldCBpPXIubWF0Y2hGdW5jdGlvbihlKTtyLmhhbmRsZXIoey4uLmkudmFsdWVPZigpLHF1ZXJ5UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMuZ2V0QWxsQXNPYmplY3QoKX0pfX1kZXN0cm95KCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpLHRoaXMucm91dGVzPVtdfX19KTt2YXIgdGQ9e307bHQodGQse1NtYXJ0Um91dGVyOigpPT5OZGV9KTt2YXIgUWh0PWYoKCk9PntYaHQoKX0pO3ZhciBKaHQ9ZigoKT0+e1I5KCk7T2goKX0pO2Z1bmN0aW9uIEYyKGEsZSl7cmV0dXJuIGE+Pj5lfGE8PDMyLWV9ZnVuY3Rpb24gSHphKGEsZSl7bGV0IHQ9ZVswXSxyPWVbMV0saT1lWzJdLG89ZVszXSxuPWVbNF0sbD1lWzVdLGQ9ZVs2XSxjPWVbN107Zm9yKGxldCBwPTA7cDw2NDtwKyspe2lmKHA+PTE2KXtsZXQgeT1GMihhW3AtMTVdLDcpXkYyKGFbcC0xNV0sMTgpXmFbcC0xNV0+Pj4zLGs9RjIoYVtwLTJdLDE3KV5GMihhW3AtMl0sMTkpXmFbcC0yXT4+PjEwO2FbcF09YVtwLTE2XSt5K2FbcC03XStrPj4+MH1sZXQgdT1GMihuLDYpXkYyKG4sMTEpXkYyKG4sMjUpLG09biZsXn5uJmQsdj1jK3UrbStGemFbcF0rYVtwXT4+PjAseD1GMih0LDIpXkYyKHQsMTMpXkYyKHQsMjIpLGI9dCZyXnQmaV5yJmksZz14K2I+Pj4wO2M9ZCxkPWwsbD1uLG49byt2Pj4+MCxvPWksaT1yLHI9dCx0PXYrZz4+PjB9ZVswXT1lWzBdK3Q+Pj4wLGVbMV09ZVsxXStyPj4+MCxlWzJdPWVbMl0raT4+PjAsZVszXT1lWzNdK28+Pj4wLGVbNF09ZVs0XStuPj4+MCxlWzVdPWVbNV0rbD4+PjAsZVs2XT1lWzZdK2Q+Pj4wLGVbN109ZVs3XStjPj4+MH1mdW5jdGlvbiBSZGUoYSl7bGV0IGU9Wy4uLkJ6YV0sdD1hLmxlbmd0aCxyPXQqOCxpPXQlNjQ8NTY/NTYtdCU2NDoxMjAtdCU2NCxvPW5ldyBVaW50OEFycmF5KHQraSs4KTtvLnNldChhKSxvW3RdPTEyODtsZXQgbj1uZXcgRGF0YVZpZXcoby5idWZmZXIpO24uc2V0VWludDMyKG8ubGVuZ3RoLTgsMCwhMSksbi5zZXRVaW50MzIoby5sZW5ndGgtNCxyPj4+MCwhMSk7Zm9yKGxldCBkPTA7ZDxvLmxlbmd0aDtkKz02NCl7bGV0IGM9bmV3IEFycmF5KDY0KTtmb3IobGV0IHA9MDtwPDE2O3ArKyljW3BdPW4uZ2V0VWludDMyKGQrcCo0LCExKTtIemEoYyxlKX1sZXQgbD0iIjtmb3IobGV0IGQ9MDtkPDg7ZCsrKWwrPWVbZF0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKTtyZXR1cm4gbH12YXIgRnphLEJ6YSxlOHQ9ZigoKT0+e0Z6YT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxCemE9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTtzKEYyLCJyb3RyIik7cyhIemEsInNoYTI1NlRyYW5zZm9ybSIpO3MoUmRlLCJzaGEyNTZGYWxsYmFjayIpfSk7dmFyIGRiPXt9O2x0KGRiLHttZDVGcm9tU3RyaW5nOigpPT5HemEsc2hhMjU2RnJvbUJ1ZmZlcjooKT0+VnphLHNoYTI1NkZyb21GaWxlOigpPT5XemEsc2hhMjU2RnJvbVN0cmVhbTooKT0+VXphLHNoYTI1NkZyb21TdHJpbmc6KCk9PnI4dCxzaGEyNTZGcm9tU3RyaW5nU3luYzooKT0+cXphLHNoYTI2NUZyb21PYmplY3Q6KCk9Pmp6YX0pO3ZhciB0OHQsYTh0LHI4dCxxemEsVnphLGp6YSxVemEsV3phLEd6YSxzOHQ9ZigoKT0+e0podCgpO2U4dCgpO3Q4dD1zKGE9PntsZXQgZT1bXSx0PW5ldyBEYXRhVmlldyhhKTtmb3IobGV0IHI9MDtyPHQuYnl0ZUxlbmd0aDtyKz00KXtsZXQgbz10LmdldFVpbnQzMihyKS50b1N0cmluZygxNiksbj0iMDAwMDAwMDAiLGw9KG4rbykuc2xpY2UoLW4ubGVuZ3RoKTtlLnB1c2gobCl9cmV0dXJuIGUuam9pbigiIil9LCJoZXgiKSxhOHQ9cygoKT0+dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5zdWJ0bGUhPT12b2lkIDAsImlzQ3J5cHRvU3VidGxlQXZhaWxhYmxlIikscjh0PXMoYXN5bmMgYT0+e2xldCBlPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShhKTtpZihhOHQoKSl7bGV0IHQ9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGUpO3JldHVybiB0OHQodCl9ZWxzZSByZXR1cm4gUmRlKGUpfSwic2hhMjU2RnJvbVN0cmluZyIpLHF6YT1zKGE9Pnt0aHJvdyBjb25zb2xlLndhcm4oInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCB0cnVseSBzeW5jaHJvbm91cyBpbiBicm93c2VyIGVudmlyb25tZW50IiksbmV3IEVycm9yKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFVzZSBzaGEyNTZGcm9tU3RyaW5nIGluc3RlYWQuIil9LCJzaGEyNTZGcm9tU3RyaW5nU3luYyIpLFZ6YT1zKGFzeW5jIGE9PntpZihhOHQoKSl7bGV0IGU7aWYoYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2xldCBpPWE7ZT1pLmJ1ZmZlci5zbGljZShpLmJ5dGVPZmZzZXQsaS5ieXRlT2Zmc2V0K2kuYnl0ZUxlbmd0aCl9ZWxzZSBlPWE7bGV0IHQ9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGUpO3JldHVybiB0OHQodCl9ZWxzZXtsZXQgZT1hIGluc3RhbmNlb2YgVWludDhBcnJheT9hOm5ldyBVaW50OEFycmF5KGEpO3JldHVybiBSZGUoZSl9fSwic2hhMjU2RnJvbUJ1ZmZlciIpLGp6YT1zKGFzeW5jIGE9PntsZXQgZT0kcy5zdHJpbmdpZnkoYSk7cmV0dXJuIGF3YWl0IHI4dChlKX0sInNoYTI2NUZyb21PYmplY3QiKSxVemE9cyhhPT57dGhyb3cgbmV3IEVycm9yKCJzaGEyNTZGcm9tU3RyZWFtIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpfSwic2hhMjU2RnJvbVN0cmVhbSIpLFd6YT1zKGFzeW5jIGE9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21GaWxlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpfSwic2hhMjU2RnJvbUZpbGUiKSxHemE9cyhhc3luYyBhPT57dGhyb3cgbmV3IEVycm9yKCJtZDVGcm9tU3RyaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudC4gV2ViIENyeXB0byBBUEkgZG9lcyBub3Qgc3VwcG9ydCBNRDUuIil9LCJtZDVGcm9tU3RyaW5nIil9KTt2YXIgTUo9ZigoKT0+e3M4dCgpO09oKCk7YmkoKTtwMigpO2RYKCl9KTt2YXIgdWIsT2RlPWYoKCk9PntrSigpO3ViPWNsYXNze3N0YXRpY3tzKHRoaXMsIlN0YXRlQWN0aW9uIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnN0YXRlUGFydFJlZj1lLHRoaXMuYWN0aW9uRGVmPXR9dHJpZ2dlcihlKXtyZXR1cm4gdGhpcy5zdGF0ZVBhcnRSZWYuZGlzcGF0Y2hBY3Rpb24odGhpcyxlKX19fSk7ZnVuY3Rpb24gS3phKCl7cmV0dXJuIHR5cGVvZiBkb2N1bWVudD4idSI/aTMoITApOm5ldyBCdChhPT57YS5uZXh0KCFkb2N1bWVudC5oaWRkZW4pO2xldCBlPXMoKCk9PmEubmV4dCghZG9jdW1lbnQuaGlkZGVuKSwiaGFuZGxlciIpO3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixlKSwoKT0+ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZSl9KX12YXIgQTgsRmRlPWYoKCk9PntyaCgpO3MoS3phLCJjcmVhdGVWaXNpYmlsaXR5T2JzZXJ2YWJsZSIpO0E4PWNsYXNze3N0YXRpY3tzKHRoaXMsIlN0YXRlUHJvY2VzcyIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdGF0dXNTdWJqZWN0PW5ldyBHNSgiaWRsZSIpLHRoaXMucHJvZHVjZXJTdWJzY3JpcHRpb249bnVsbCx0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbj1udWxsLHRoaXMucHJvY2Vzc2luZ1F1ZXVlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuc3RhdGVQYXJ0UmVmPWUsdGhpcy5wcm9kdWNlckZuPXQucHJvZHVjZXIsdGhpcy5yZWR1Y2VyPXQucmVkdWNlcix0aGlzLnNpZGVFZmZlY3Q9dC5zaWRlRWZmZWN0LHRoaXMuYXV0b1BhdXNlT3B0aW9uPXQuYXV0b1BhdXNlPz8hMX1nZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuc3RhdHVzU3ViamVjdC5nZXRWYWx1ZSgpfWdldCBzdGF0dXMkKCl7cmV0dXJuIHRoaXMuc3RhdHVzU3ViamVjdC5hc09ic2VydmFibGUoKX1zdGFydCgpe2lmKHRoaXMuc3RhdHVzPT09ImRpc3Bvc2VkIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzdGFydCBhIGRpc3Bvc2VkIHByb2Nlc3MiKTt0aGlzLnN0YXR1cyE9PSJydW5uaW5nIiYmKHRoaXMuc3RhdHVzU3ViamVjdC5uZXh0KCJydW5uaW5nIiksdGhpcy5zdWJzY3JpYmVQcm9kdWNlcigpLHRoaXMuc2V0dXBBdXRvUGF1c2UoKSl9cGF1c2UoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGF1c2UgYSBkaXNwb3NlZCBwcm9jZXNzIik7dGhpcy5zdGF0dXM9PT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicGF1c2VkIiksdGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCkpfXJlc3VtZSgpe2lmKHRoaXMuc3RhdHVzPT09ImRpc3Bvc2VkIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZXN1bWUgYSBkaXNwb3NlZCBwcm9jZXNzIik7dGhpcy5zdGF0dXM9PT0icGF1c2VkIiYmKHRoaXMuc3RhdHVzU3ViamVjdC5uZXh0KCJydW5uaW5nIiksdGhpcy5zdWJzY3JpYmVQcm9kdWNlcigpKX1kaXNwb3NlKCl7dGhpcy5zdGF0dXMhPT0iZGlzcG9zZWQiJiYodGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCksdGhpcy50ZWFyZG93bkF1dG9QYXVzZSgpLHRoaXMuc3RhdHVzU3ViamVjdC5uZXh0KCJkaXNwb3NlZCIpLHRoaXMuc3RhdHVzU3ViamVjdC5jb21wbGV0ZSgpLHRoaXMuc3RhdGVQYXJ0UmVmLl9yZW1vdmVQcm9jZXNzKHRoaXMpKX1zdWJzY3JpYmVQcm9kdWNlcigpe3RoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpO2xldCBlPXRoaXMucHJvZHVjZXJGbigpO3RoaXMucHJvZHVjZXJTdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUoe25leHQ6cyh0PT57dGhpcy5wcm9jZXNzaW5nUXVldWU9dGhpcy5wcm9jZXNzaW5nUXVldWUudGhlbihhc3luYygpPT57dHJ5e2lmKHRoaXMuc2lkZUVmZmVjdClhd2FpdCB0aGlzLnNpZGVFZmZlY3QodCk7ZWxzZSBpZih0aGlzLnJlZHVjZXIpe2xldCByPXRoaXMuc3RhdGVQYXJ0UmVmLmdldFN0YXRlKCk7ciE9PXZvaWQgMCYmYXdhaXQgdGhpcy5zdGF0ZVBhcnRSZWYuc2V0U3RhdGUodGhpcy5yZWR1Y2VyKHIsdCkpfX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJTdGF0ZVByb2Nlc3MgdmFsdWUgaGFuZGxpbmcgZXJyb3I6IixyKX19KX0sIm5leHQiKSxlcnJvcjpzKHQ9Pntjb25zb2xlLmVycm9yKCJTdGF0ZVByb2Nlc3MgcHJvZHVjZXIgZXJyb3I6Iix0KSx0aGlzLnN0YXR1cz09PSJydW5uaW5nIiYmKHRoaXMuc3RhdHVzU3ViamVjdC5uZXh0KCJwYXVzZWQiKSx0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKSl9LCJlcnJvciIpfSl9dW5zdWJzY3JpYmVQcm9kdWNlcigpe3RoaXMucHJvZHVjZXJTdWJzY3JpcHRpb24mJih0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbj1udWxsKX1zZXR1cEF1dG9QYXVzZSgpe2lmKHRoaXMudGVhcmRvd25BdXRvUGF1c2UoKSwhdGhpcy5hdXRvUGF1c2VPcHRpb24pcmV0dXJuO2xldCBlPXRoaXMuYXV0b1BhdXNlT3B0aW9uPT09InZpc2liaWxpdHkiP0t6YSgpOnRoaXMuYXV0b1BhdXNlT3B0aW9uO3RoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uPWUuc3Vic2NyaWJlKHQ9PnshdCYmdGhpcy5zdGF0dXM9PT0icnVubmluZyI/dGhpcy5wYXVzZSgpOnQmJnRoaXMuc3RhdHVzPT09InBhdXNlZCImJnRoaXMucmVzdW1lKCl9KX10ZWFyZG93bkF1dG9QYXVzZSgpe3RoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uJiYodGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbj1udWxsKX19fSk7ZnVuY3Rpb24gWnphKGEpe3JldHVybiBuZXcgQnQoZT0+e2lmKGEuYWJvcnRlZCl7ZS5uZXh0KCksZS5jb21wbGV0ZSgpO3JldHVybn1sZXQgdD1zKCgpPT57ZS5uZXh0KCksZS5jb21wbGV0ZSgpfSwiaGFuZGxlciIpO3JldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0Iix0KSwoKT0+YS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsdCl9KX12YXIgcGIsa0o9ZigoKT0+e01KKCk7cmgoKTtPZGUoKTtGZGUoKTtzKFp6YSwiZnJvbUFib3J0U2lnbmFsIik7cGI9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJTdGF0ZVBhcnQiKX1zdGF0aWN7dGhpcy5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIPTEwfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdGF0ZT1uZXcgRzUodm9pZCAwKSx0aGlzLmRpc3Bvc2VkPSExLHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkPWN0LmN1bXVsYXRpdmVEZWZlcigpLHRoaXMubXV0YXRpb25RdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5wcm9jZXNzZXM9W10sdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLm5hbWU9ZSx0JiYodGhpcy53ZWJTdG9yZU9wdGlvbnM9dCl9YXN5bmMgaW5pdCgpe2lmKHRoaXMud2ViU3RvcmVPcHRpb25zKXt0aGlzLndlYlN0b3JlPW5ldyBsMS5XZWJTdG9yZSh0aGlzLndlYlN0b3JlT3B0aW9ucyksYXdhaXQgdGhpcy53ZWJTdG9yZS5pbml0KCk7bGV0IGU9YXdhaXQgdGhpcy53ZWJTdG9yZS5nZXQoU3RyaW5nKHRoaXMubmFtZSkpO2UmJnRoaXMudmFsaWRhdGVTdGF0ZShlKSYmKHRoaXMuc3RhdGVTdG9yZT1lLGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCkpfX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlU3RvcmV9YWRkTWlkZGxld2FyZShlKXtyZXR1cm4gdGhpcy5taWRkbGV3YXJlcy5wdXNoKGUpLCgpPT57bGV0IHQ9dGhpcy5taWRkbGV3YXJlcy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5taWRkbGV3YXJlcy5zcGxpY2UodCwxKX19YXN5bmMgc2V0U3RhdGUoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO3JldHVybiB0aGlzLm11dGF0aW9uUXVldWU9dGhpcy5tdXRhdGlvblF1ZXVlLnRoZW4oKCk9PnRoaXMuYXBwbHlTdGF0ZShlKSwoKT0+dGhpcy5hcHBseVN0YXRlKGUpKX1hc3luYyBhcHBseVN0YXRlKGUpe2xldCB0PWU7Zm9yKGxldCByIG9mIHRoaXMubWlkZGxld2FyZXMpdD1hd2FpdCByKHQsdGhpcy5zdGF0ZVN0b3JlKTtpZighdGhpcy52YWxpZGF0ZVN0YXRlKHQpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy53ZWJTdG9yZSYmYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksdCksdGhpcy5zdGF0ZVN0b3JlPXQsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtsZXQgZT10aGlzLnN0YXRlU3RvcmU7aWYoZT09PXZvaWQgMClyZXR1cm47aWYodGhpcy5zbWFydHN0YXRlUmVmPy5pc0JhdGNoaW5nKXt0aGlzLnNtYXJ0c3RhdGVSZWYucmVnaXN0ZXJQZW5kaW5nTm90aWZpY2F0aW9uKHRoaXMpO3JldHVybn1sZXQgdD1zKGFzeW5jIHI9PmF3YWl0IGRiLnNoYTI1NkZyb21TdHJpbmcoJHMuc3RhYmxlT25lV2F5U3RyaW5naWZ5KHIpKSwiY3JlYXRlU3RhdGVIYXNoIik7dHJ5e2xldCByPWF3YWl0IHQoZSk7aWYodGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmcj09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gpcmV0dXJuO3RoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2g9cn1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBTdGF0ZSBoYXNoIGNvbXB1dGF0aW9uIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxyKX10aGlzLnN0YXRlLm5leHQoZSl9bm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSgpe3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJmNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPXNldFRpbWVvdXQoKCk9Pnt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy5zdGF0ZVN0b3JlIT09dm9pZCAwJiZ0aGlzLm5vdGlmeUNoYW5nZSgpLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGBub3RpZnlDaGFuZ2VDdW11bGF0aXZlIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxlKX0pfSwwKX1zZWxlY3QoZSx0KXtsZXQgcj10Py5zaWduYWwhPW51bGw7aWYoIXIpe2lmKGUpe2lmKHRoaXMuc2VsZWN0b3JDYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuc2VsZWN0b3JDYWNoZS5nZXQoZSl9ZWxzZSBpZih0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlKXJldHVybiB0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlfWxldCBpPWV8fChkPT5kKSxvPVN5bWJvbCgic2VsZWN0b3ItZXJyb3IiKSxuPXRoaXMuc3RhdGUucGlwZShfYS5yeGpzLm9wcy5maWx0ZXIoZD0+ZCE9PXZvaWQgMCksX2Eucnhqcy5vcHMubWFwKGQ9Pnt0cnl7cmV0dXJuIGkoZCl9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYFNlbGVjdG9yIGVycm9yIGluIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSc6YCxjKSxvfX0pLF9hLnJ4anMub3BzLmZpbHRlcihkPT5kIT09byksdGgoKGQsYyk9PkpTT04uc3RyaW5naWZ5KGQpPT09SlNPTi5zdHJpbmdpZnkoYykpKTtpZihyKXJldHVybiBuPW4ucGlwZShhaChaemEodC5zaWduYWwpKSksbjtsZXQgbD1uLnBpcGUoUlkoe2J1ZmZlclNpemU6MSxyZWZDb3VudDohMH0pKTtyZXR1cm4gZT90aGlzLnNlbGVjdG9yQ2FjaGUuc2V0KGUsbCk6dGhpcy5kZWZhdWx0U2VsZWN0T2JzZXJ2YWJsZT1sLGx9Y3JlYXRlQWN0aW9uKGUpe3JldHVybiBuZXcgdWIodGhpcyxlKX1jcmVhdGVBY3Rpb25Db250ZXh0KGUpe2xldCB0PXRoaXM7cmV0dXJue2Rpc3BhdGNoOnMoYXN5bmMocixpKT0+e2lmKGU+PWEuTUFYX05FU1RFRF9ESVNQQVRDSF9ERVBUSCl0aHJvdyBuZXcgRXJyb3IoYE1heGltdW0gbmVzdGVkIGFjdGlvbiBkaXNwYXRjaCBkZXB0aCAoJHthLk1BWF9ORVNURURfRElTUEFUQ0hfREVQVEh9KSBleGNlZWRlZC4gQ2hlY2sgZm9yIGNpcmN1bGFyIGFjdGlvbiBkaXNwYXRjaGVzLmApO2xldCBvPXQuY3JlYXRlQWN0aW9uQ29udGV4dChlKzEpLG49YXdhaXQgci5hY3Rpb25EZWYodCxpLG8pO3JldHVybiB0LmFwcGx5U3RhdGUobil9LCJkaXNwYXRjaCIpfX1hc3luYyBkaXNwYXRjaEFjdGlvbihlLHQpe2lmKHRoaXMuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKGBTdGF0ZVBhcnQgJyR7dGhpcy5uYW1lfScgaGFzIGJlZW4gZGlzcG9zZWRgKTthd2FpdCB0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5wcm9taXNlO2xldCByPXMoYXN5bmMoKT0+e2xldCBpPXRoaXMuY3JlYXRlQWN0aW9uQ29udGV4dCgwKSxvPWF3YWl0IGUuYWN0aW9uRGVmKHRoaXMsdCxpKTtyZXR1cm4gdGhpcy5hcHBseVN0YXRlKG8pfSwiZXhlY3V0ZSIpO3JldHVybiB0aGlzLm11dGF0aW9uUXVldWU9dGhpcy5tdXRhdGlvblF1ZXVlLnRoZW4ocixyKX1hc3luYyB3YWl0VW50aWxQcmVzZW50KGUsdCl7bGV0IHIsaTt0eXBlb2YgdD09Im51bWJlciI/cj10OnQmJihyPXQudGltZW91dE1zLGk9dC5zaWduYWwpO2xldCBvPWN0LmRlZmVyKCksbj10aGlzLnNlbGVjdChlKSxsPSExO2lmKGk/LmFib3J0ZWQpdGhyb3cgbmV3IEVycm9yKCJBYm9ydGVkIik7bGV0IGQ9bi5zdWJzY3JpYmUodT0+e3UhPW51bGwmJiFsJiYobD0hMCxvLnJlc29sdmUodSkpfSksYztyJiYoYz1zZXRUaW1lb3V0KCgpPT57bHx8KGw9ITAsZC51bnN1YnNjcmliZSgpLG8ucmVqZWN0KG5ldyBFcnJvcihgd2FpdFVudGlsUHJlc2VudCB0aW1lZCBvdXQgYWZ0ZXIgJHtyfW1zYCkpKX0scikpO2xldCBwPWk/KCk9PntsfHwobD0hMCxkLnVuc3Vic2NyaWJlKCksYyYmY2xlYXJUaW1lb3V0KGMpLG8ucmVqZWN0KG5ldyBFcnJvcigiQWJvcnRlZCIpKSl9OnZvaWQgMDtpJiZwJiZpLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixwKTt0cnl7cmV0dXJuIGF3YWl0IG8ucHJvbWlzZX1maW5hbGx5e2QudW5zdWJzY3JpYmUoKSxjJiZjbGVhclRpbWVvdXQoYyksaSYmcCYmaS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscCl9fWFzeW5jIHN0YXRlU2V0dXAoZSl7bGV0IHQ9ZSh0aGlzKTt0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5hZGRQcm9taXNlKHQpLGF3YWl0IHRoaXMuc2V0U3RhdGUoYXdhaXQgdCl9Y3JlYXRlUHJvY2VzcyhlKXtpZih0aGlzLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihgU3RhdGVQYXJ0ICcke3RoaXMubmFtZX0nIGhhcyBiZWVuIGRpc3Bvc2VkYCk7bGV0IHQ9bmV3IEE4KHRoaXMsZSk7cmV0dXJuIHRoaXMucHJvY2Vzc2VzLnB1c2godCksZS5hdXRvU3RhcnQmJnQuc3RhcnQoKSx0fWNyZWF0ZVNjaGVkdWxlZEFjdGlvbihlKXtpZih0aGlzLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihgU3RhdGVQYXJ0ICcke3RoaXMubmFtZX0nIGhhcyBiZWVuIGRpc3Bvc2VkYCk7bGV0IHQ9bmV3IEE4KHRoaXMse3Byb2R1Y2VyOnMoKCk9PnJuZShlLmludGVydmFsTXMpLCJwcm9kdWNlciIpLHNpZGVFZmZlY3Q6cyhhc3luYygpPT57YXdhaXQgZS5hY3Rpb24udHJpZ2dlcihlLnBheWxvYWQpfSwic2lkZUVmZmVjdCIpLGF1dG9QYXVzZTplLmF1dG9QYXVzZT8/ITF9KTtyZXR1cm4gdGhpcy5wcm9jZXNzZXMucHVzaCh0KSx0LnN0YXJ0KCksdH1fcmVtb3ZlUHJvY2VzcyhlKXtsZXQgdD10aGlzLnByb2Nlc3Nlcy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5wcm9jZXNzZXMuc3BsaWNlKHQsMSl9ZGlzcG9zZSgpe2lmKCF0aGlzLmRpc3Bvc2VkKXt0aGlzLmRpc3Bvc2VkPSEwO2ZvcihsZXQgZSBvZlsuLi50aGlzLnByb2Nlc3Nlc10pZS5kaXNwb3NlKCk7dGhpcy5wcm9jZXNzZXMubGVuZ3RoPTAsdGhpcy5zdGF0ZS5jb21wbGV0ZSgpLHRoaXMubXV0YXRpb25RdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uJiYoY2xlYXJUaW1lb3V0KHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24pLHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb249bnVsbCksdGhpcy5taWRkbGV3YXJlcy5sZW5ndGg9MCx0aGlzLnNlbGVjdG9yQ2FjaGU9bmV3IFdlYWtNYXAsdGhpcy5kZWZhdWx0U2VsZWN0T2JzZXJ2YWJsZT1udWxsLHRoaXMud2ViU3RvcmU9bnVsbCx0aGlzLnNtYXJ0c3RhdGVSZWY9dm9pZCAwLHRoaXMuc3RhdGVTdG9yZT12b2lkIDB9fX19KTtmdW5jdGlvbiBCZGUoYSxlKXtyZXR1cm4gdG5lKGEubWFwKHQ9PnQuc2VsZWN0KCkpKS5waXBlKHUyKHQ9PmUoLi4udCkpLHRoKCh0LHIpPT5KU09OLnN0cmluZ2lmeSh0KT09PUpTT04uc3RyaW5naWZ5KHIpKSl9dmFyIEhkZT1mKCgpPT57TUooKTtyaCgpO3MoQmRlLCJjb21wdXRlZCIpfSk7dmFyIHFkZSxpOHQ9ZigoKT0+e01KKCk7a0ooKTtIZGUoKTtxZGU9Y2xhc3N7c3RhdGlje3ModGhpcywiU21hcnRzdGF0ZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5zdGF0ZVBhcnRNYXA9e30sdGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb249bmV3IE1hcCx0aGlzLmJhdGNoRGVwdGg9MCx0aGlzLmlzRmx1c2hpbmc9ITEsdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucz1uZXcgU2V0fWdldCBpc0JhdGNoaW5nKCl7cmV0dXJuIHRoaXMuYmF0Y2hEZXB0aD4wfXJlZ2lzdGVyUGVuZGluZ05vdGlmaWNhdGlvbihlKXt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmFkZChlKX1hc3luYyBiYXRjaChlKXt0aGlzLmJhdGNoRGVwdGgrKzt0cnl7YXdhaXQgZSgpfWZpbmFsbHl7aWYodGhpcy5iYXRjaERlcHRoLS0sdGhpcy5iYXRjaERlcHRoPT09MCYmIXRoaXMuaXNGbHVzaGluZyl7dGhpcy5pc0ZsdXNoaW5nPSEwO3RyeXtmb3IoO3RoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMuc2l6ZT4wOyl7bGV0IHQ9Wy4uLnRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnNdO3RoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMuY2xlYXIoKTtmb3IobGV0IHIgb2YgdCl0cnl7YXdhaXQgci5ub3RpZnlDaGFuZ2UoKX1jYXRjaChpKXtjb25zb2xlLmVycm9yKCJFcnJvciBmbHVzaGluZyBub3RpZmljYXRpb24gZm9yIHN0YXRlIHBhcnQ6IixpKX19fWZpbmFsbHl7dGhpcy5pc0ZsdXNoaW5nPSExfX19fWNvbXB1dGVkKGUsdCl7cmV0dXJuIEJkZShlLHQpfWRpc3Bvc2UoKXtmb3IobGV0IGUgb2YgT2JqZWN0LmtleXModGhpcy5zdGF0ZVBhcnRNYXApKXtsZXQgdD10aGlzLnN0YXRlUGFydE1hcFtlXTt0JiZ0LmRpc3Bvc2UoKX10aGlzLnN0YXRlUGFydE1hcD17fSx0aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbi5jbGVhcigpLHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMuY2xlYXIoKX1hc3luYyBnZXRTdGF0ZVBhcnQoZSx0LHI9InNvZnQiKXtsZXQgaT10aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbi5nZXQoZSk7aWYoaSlyZXR1cm4gaTtsZXQgbz10aGlzLnN0YXRlUGFydE1hcFtlXTtpZihvKXN3aXRjaChyKXtjYXNlIm1hbmRhdG9yeSI6dGhyb3cgbmV3IEVycm9yKGBTdGF0ZSBwYXJ0ICcke2V9JyBhbHJlYWR5IGV4aXN0cywgYnV0IGluaXRNb2RlIGlzICdtYW5kYXRvcnknYCk7Y2FzZSJmb3JjZSI6by5kaXNwb3NlKCk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gb31lbHNlIGlmKHQ9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBTdGF0ZSBwYXJ0ICcke2V9JyBkb2VzIG5vdCBleGlzdCBhbmQgbm8gaW5pdGlhbCBzdGF0ZSBwcm92aWRlZGApO2xldCBuPXRoaXMuY3JlYXRlU3RhdGVQYXJ0KGUsdCxyKTt0aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbi5zZXQoZSxuKTt0cnl7cmV0dXJuIGF3YWl0IG59ZmluYWxseXt0aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbi5kZWxldGUoZSl9fWFzeW5jIGNyZWF0ZVN0YXRlUGFydChlLHQscj0ic29mdCIpe2xldCBpPW5ldyBwYihlLHI9PT0icGVyc2lzdGVudCI/e2RiTmFtZToic21hcnRzdGF0ZSIsc3RvcmVOYW1lOmV9OnZvaWQgMCk7aS5zbWFydHN0YXRlUmVmPXRoaXMsYXdhaXQgaS5pbml0KCk7bGV0IG89aS5nZXRTdGF0ZSgpO3JldHVybiByPT09InBlcnNpc3RlbnQiJiZvIT09dm9pZCAwP2F3YWl0IGkuc2V0U3RhdGUoey4uLnQsLi4ub30pOmF3YWl0IGkuc2V0U3RhdGUodCksdGhpcy5zdGF0ZVBhcnRNYXBbZV09aSxpfX19KTtmdW5jdGlvbiBYemEoYSxlKXtsZXR7Y29udGV4dDp0LHN0YXRlUGFydDpyLHNlbGVjdG9yRm46aX09ZSxvPW5ldyBTZXQsbj1yLnNlbGVjdChpKS5zdWJzY3JpYmUoYz0+e2ZvcihsZXQgcCBvZiBvKXAoYyl9KSxsPXMoKCk9PntsZXQgYz1yLmdldFN0YXRlKCk7aWYoYyE9PXZvaWQgMClyZXR1cm4gaT9pKGMpOmN9LCJnZXRWYWx1ZSIpLGQ9cyhjPT57bGV0IHA9Yyx1PXAuZGV0YWlsO2lmKCEoIXV8fHUuY29udGV4dCE9PXQpKWlmKHAuc3RvcFByb3BhZ2F0aW9uKCksdS5zdWJzY3JpYmUpe2xldCBtPXUuY2FsbGJhY2s7by5hZGQobSk7bGV0IHY9cygoKT0+by5kZWxldGUobSksInVuc3Vic2NyaWJlIik7bShsKCksdil9ZWxzZSB1LmNhbGxiYWNrKGwoKSl9LCJoYW5kbGVyIik7cmV0dXJuIGEuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dC1yZXF1ZXN0IixkKSwoKT0+e2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dC1yZXF1ZXN0IixkKSxuLnVuc3Vic2NyaWJlKCksby5jbGVhcigpfX12YXIgbzh0PWYoKCk9PntzKFh6YSwiYXR0YWNoQ29udGV4dFByb3ZpZGVyIil9KTt2YXIgYWQ9e307bHQoYWQse1NtYXJ0c3RhdGU6KCk9PnFkZSxTdGF0ZUFjdGlvbjooKT0+dWIsU3RhdGVQYXJ0OigpPT5wYixTdGF0ZVByb2Nlc3M6KCk9PkE4LGF0dGFjaENvbnRleHRQcm92aWRlcjooKT0+WHphLGNvbXB1dGVkOigpPT5CZGV9KTt2YXIgbjh0PWYoKCk9PntpOHQoKTtrSigpO09kZSgpO0hkZSgpO284dCgpO0ZkZSgpfSk7dmFyIGw4dD1mKCgpPT57fSk7dmFyIFZkZSxjOHQ9ZigoKT0+e2w4dCgpO1ZkZT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIlNtYXJ0dXJsIil9c3RhdGljIGNyZWF0ZUZyb21VcmwoZSx0KXtsZXQgcj1uZXcgVVJMKGUpLGk9e30sbz1bXTtyLnNlYXJjaCYmci5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikubWFwKGM9PntvLnB1c2goe2tleTpjLnNwbGl0KCI9IilbMF0sdmFsdWU6Yy5zcGxpdCgiPSIpWzFdfSl9KTtmb3IobGV0IGMgb2YgbylpW2Mua2V5XT1jLnZhbHVlO2lmKHQ/LnNlYXJjaFBhcmFtcylmb3IobGV0IGMgb2YgT2JqZWN0LmtleXModC5zZWFyY2hQYXJhbXMpKWlbY109dC5zZWFyY2hQYXJhbXNbY107bGV0IG49ci5wYXRobmFtZXx8IiI7aWYoT2JqZWN0LmtleXMoaSkubGVuZ3RoPjApe24rPSI/IjtsZXQgYz0hMDtmb3IobGV0IHAgb2YgT2JqZWN0LmtleXMoaSkpYz9jPSExOm4rPSImIixuKz1gJHtwfT0ke2lbcF19YH1sZXQgbD17Li4ucixocmVmOnIuaHJlZixvcmlnaW46ci5vcmlnaW4scHJvdG9jb2w6ci5wcm90b2NvbCx1c2VybmFtZTpyLnVzZXJuYW1lLHBhc3N3b3JkOnIucGFzc3dvcmQsaG9zdDpyLmhvc3QsaG9zdG5hbWU6ci5ob3N0bmFtZSxwb3J0OnIucG9ydCxwYXRoOm4scGF0aG5hbWU6ci5wYXRobmFtZSxzZWFyY2g6ci5zZWFyY2gsc2VhcmNoUGFyYW1zOmksaGFzaDpyLmhhc2h9OyFsLnBvcnQmJmwucHJvdG9jb2w9PT0iaHR0cHM6IiYmKGwucG9ydD0iNDQzIiksIWwucG9ydCYmbC5wcm90b2NvbD09PSJodHRwOiImJihsLnBvcnQ9IjgwIik7bGV0IGQ9bmV3IGE7cmV0dXJuIE9iamVjdC5hc3NpZ24oZCxsKSxkfXN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKGUpe2xldCB0PW5ldyBhO3JldHVybiBPYmplY3QuYXNzaWduKHQsZSksdH1jb25zdHJ1Y3Rvcigpe3RoaXMuc2VhcmNoUGFyYW1zPXt9fWNsb25lKCl7bGV0IGU9bmV3IGE7cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx0aGlzKSxlLnNlYXJjaFBhcmFtcz17Li4udGhpcy5zZWFyY2hQYXJhbXN9LGV9c2V0KGUsdCl7cmV0dXJuIHRoaXNbZV09dCx0aGlzfXRvU3RyaW5nKCl7bGV0IGU9IiI7cmV0dXJuIHRoaXMudXNlcm5hbWUmJiF0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfUBgKSx0aGlzLnVzZXJuYW1lJiZ0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfToke3RoaXMucGFzc3dvcmR9QGApLGAke3RoaXMucHJvdG9jb2x9Ly8ke2V9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gfX19KTt2YXIgeTE9e307bHQoeTEse1NtYXJ0dXJsOigpPT5WZGV9KTt2YXIgamRlPWYoKCk9PntjOHQoKX0pO3ZhciBkOHQ9ZigoKT0+e30pO3ZhciBVZGU9ZigoKT0+eyRuKCk7JG4oKX0pO3ZhciB1OHQ9ZigoKT0+e30pO3ZhciBwOHQ9ZigoKT0+e30pO3ZhciBmOHQ9ZigoKT0+e30pO3ZhciBoOHQ9ZigoKT0+e30pO3ZhciBXZGU9e307dmFyIEdkZT1mKCgpPT57dTh0KCk7cDh0KCk7Zjh0KCk7aDh0KCl9KTt2YXIgbTh0PWYoKCk9PntHZGUoKTtTSigpfSk7dmFyIGc4dD1mKCgpPT57JG4oKX0pO3ZhciBiOHQ9ZigoKT0+e30pO3ZhciB2OHQ9ZigoKT0+eyRuKCl9KTt2YXIgeDh0PWYoKCk9PnskbigpfSk7dmFyIHk4dD1mKCgpPT57fSk7dmFyIHc4dD1mKCgpPT57fSk7dmFyIE04dD1mKCgpPT57fSk7dmFyIFlkZT17fTt2YXIgeko9ZigoKT0+e2c4dCgpO2I4dCgpO3Y4dCgpO3g4dCgpO3k4dCgpO3c4dCgpO004dCgpfSk7dmFyIGs4dD1mKCgpPT57ekooKTtVZGUoKX0pO3ZhciBTOHQ9ZigoKT0+e1NKKCk7ekooKX0pO3ZhciB6OHQ9ZigoKT0+e30pO3ZhciBDOHQ9ZigoKT0+e30pO3ZhciBLZGU9e307dmFyIFNKPWYoKCk9PntkOHQoKTtVZGUoKTttOHQoKTtrOHQoKTtTOHQoKTt6OHQoKTtDOHQoKX0pO3ZhciBfOHQ9ZigoKT0+e30pO3ZhciBUOHQ9ZigoKT0+e30pO3ZhciBaZGU9e307dmFyIEw4dD1mKCgpPT57Xzh0KCk7VDh0KCl9KTt2YXIgJDh0PWYoKCk9Pnt9KTt2YXIgRDh0PWYoKCk9Pnt9KTt2YXIgWGRlPXt9O3ZhciBBOHQ9ZigoKT0+eyQ4dCgpO0Q4dCgpfSk7dmFyIFFkZT17fTt2YXIgUDh0PWYoKCk9Pnt9KTt2YXIgSmRlPWYoKCk9PnskbigpfSk7dmFyIEU4dD1mKCgpPT57JG4oKX0pO3ZhciBJOHQ9ZigoKT0+e0pkZSgpfSk7dmFyIGU2ZT17fTt2YXIgTjh0PWYoKCk9PntKZGUoKTtFOHQoKTtJOHQoKX0pO3ZhciBSOHQ9ZigoKT0+e30pO3ZhciBPOHQ9ZigoKT0+e30pO3ZhciB0NmU9e307dmFyIEY4dD1mKCgpPT57Ujh0KCk7Tzh0KCl9KTt2YXIgYTZlPWYoKCk9Pnt9KTt2YXIgcjZlLEI4dD1mKCgpPT57YTZlKCk7cjZlPWNsYXNze3N0YXRpY3tzKHRoaXMsIklDbmFtZURlc2NyaXB0b3IiKX19fSk7dmFyIEg4dD1mKCgpPT57fSk7dmFyIHE4dD1mKCgpPT57fSk7dmFyIFY4dD1mKCgpPT57fSk7dmFyIGo4dD1mKCgpPT57fSk7dmFyIFU4dD1mKCgpPT57fSk7dmFyIFc4dD1mKCgpPT57fSk7dmFyIEc4dD1mKCgpPT57fSk7dmFyIFk4dD1mKCgpPT57fSk7dmFyIEs4dD1mKCgpPT57fSk7dmFyIFo4dD1mKCgpPT57fSk7dmFyIENKPXt9O2x0KENKLHtJQ25hbWVEZXNjcmlwdG9yOigpPT5yNmV9KTt2YXIgWDh0PWYoKCk9PnthNmUoKTtCOHQoKTtIOHQoKTtxOHQoKTtWOHQoKTtqOHQoKTtVOHQoKTtXOHQoKTtHOHQoKTtZOHQoKTtLOHQoKTtaOHQoKX0pO3ZhciBzNmU9ZigoKT0+e30pO3ZhciBROHQ9ZigoKT0+e3M2ZSgpfSk7dmFyIGk2ZT17fTt2YXIgSjh0PWYoKCk9PntROHQoKTtzNmUoKX0pO3ZhciBvNmU9e307dmFyIGVtdD1mKCgpPT57fSk7dmFyIHRtdD1mKCgpPT57fSk7dmFyIGFtdD1mKCgpPT57fSk7dmFyIHJtdD1mKCgpPT57fSk7dmFyIG42ZT17fTt2YXIgc210PWYoKCk9Pnt0bXQoKTthbXQoKTtybXQoKX0pO3ZhciBpbXQ9ZigoKT0+e30pO3ZhciBmYj17fTtsdChmYix7YnVzaW5lc3M6KCk9PktkZSxjb2RlOigpPT5aZGUsY29udGFpbmVyOigpPT5YZGUsY29udGVudDooKT0+ZTZlLGRhdGFiYXNlOigpPT5XZGUsZGVzY3JpcHRvcnM6KCk9PlFkZSxmaW5hbmNlOigpPT5ZZGUsZ2VuZXJhbDooKT0+dDZlLG5ldHdvcms6KCk9PkNKLHNhYXM6KCk9Pmk2ZSxzdG9yYWdlOigpPT5vNmUsd2Vic2l0ZTooKT0+bjZlfSk7dmFyICRuPWYoKCk9PntTSigpO0w4dCgpO0E4dCgpO0dkZSgpO1A4dCgpO3pKKCk7Tjh0KCk7Rjh0KCk7WDh0KCk7Sjh0KCk7ZW10KCk7c210KCk7aW10KCl9KTt2YXIgVWw9ZigoKT0+e2JpKCk7JG4oKX0pO3ZhciBfSj1mKCgpPT57VWwoKX0pO3ZhciBZMCxoYj1mKCgpPT57VWwoKTtZMD1jbGFzc3tzdGF0aWN7cyh0aGlzLCJUYWciKX1jb25zdHJ1Y3Rvcigpe3RoaXMudGFnTGV2ZWw9ImxldmVsYm91bmQifWFwcGVuZFRvRG9tKCl7IXRoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50JiYhdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmKX1yZW1vdmVGcm9tRG9tKCl7dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQ/dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKTp0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKX19fSk7dmFyIHJkLFRKPWYoKCk9PntVbCgpO19KKCk7aGIoKTtyZD1jbGFzcyBhIGV4dGVuZHMgWTB7c3RhdGlje3ModGhpcywiSnNvbkxkVGFnIil9c3RhdGljIGNyZWF0ZUNvbXBhbnlKc29uTGQoZSl7bGV0IHQ9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiQ29ycG9yYXRpb24iLG5hbWU6ZS5uYW1lLGFsdGVybmF0ZU5hbWU6ZS5uYW1lLnJlcGxhY2UoIiBHbWJIIiwiIiksdXJsOmUud2Vic2l0ZSxsb2dvOmUubG9nb1VybCxjb250YWN0UG9pbnQ6eyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsdGVsZXBob25lOmUucGhvbmUsY29udGFjdFR5cGU6ImN1c3RvbWVyIHNlcnZpY2UiLGFyZWFTZXJ2ZWQ6IkRFIixhdmFpbGFibGVMYW5ndWFnZTpbImVuIiwiR2VybWFuIl19LHNhbWVBczpbXX0scj1lLnNvY2lhbHM/LmZpbmQobj0+bi50eXBlPT09ImZhY2Vib29rIik/LnVybDtyJiZ0LnNhbWVBcy5wdXNoKHIpO2xldCBpPWUuc29jaWFscz8uZmluZChuPT5uLnR5cGU9PT0idHdpdHRlciIpPy51cmw7cmV0dXJuIGkmJnQuc2FtZUFzLnB1c2goaSksbmV3IGEodCl9c3RhdGljIGNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKGUpe2xldCB0PXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6Ik5ld3NBcnRpY2xlIixtYWluRW50aXR5T2ZQYWdlOnsiQHR5cGUiOiJXZWJQYWdlIiwiQGlkIjp3aW5kb3cubG9jYXRpb24uaHJlZn0saGVhZGxpbmU6IkFydGljbGUgaGVhZGxpbmUiLGltYWdlOltlLmZlYXR1cmVkSW1hZ2VVcmxdLGRhdGVQdWJsaXNoZWQ6bmV3IERhdGUoZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksZGF0ZU1vZGlmaWVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGF1dGhvcjp7IkB0eXBlIjoiUGVyc29uIixuYW1lOmAke2UuYXV0aG9yLmZpcnN0TmFtZX0gJHtlLmF1dGhvci5zdXJOYW1lfWB9LHB1Ymxpc2hlcjp7IkB0eXBlIjoiT3JnYW5pemF0aW9uIixuYW1lOmUuYXV0aG9yLnN1ck5hbWUsbG9nbzp7IkB0eXBlIjoiSW1hZ2VPYmplY3QiLHVybDplLmF1dGhvci5zdXJOYW1lfX0sZGVzY3JpcHRpb246ZS5hdXRob3IuZmlyc3ROYW1lfTtyZXR1cm4gbmV3IGEodCl9c3RhdGljIGNyZWF0ZVByb2R1Y3RKc29uTGQoZSx0KXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJTb2Z0d2FyZUFwcGxpY2F0aW9uIixuYW1lOmUubmFtZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLG9wZXJhdGluZ1N5c3RlbTplLm9zLGFwcGxpY2F0aW9uQ2F0ZWdvcnk6ZS5jYXRlZ29yeSxvZmZlcnM6eyJAdHlwZSI6Ik9mZmVyIixuYW1lOiJVc2VyLWJhc2VkIFBsYW4iLHByaWNlU3BlY2lmaWNhdGlvbjp7IkB0eXBlIjoiUHJvcGVydHlWYWx1ZVNwZWNpZmljYXRpb24iLHZhbHVlTmFtZToiTnVtYmVyIG9mIFVzZXJzIix2YWx1ZVJlcXVpcmVkOiEwLHByaWNlOiI0Ljk5IixwcmljZUN1cnJlbmN5OiJFVVIifX0scHVibGlzaGVyOnQ/dGhpcy5jcmVhdGVDb21wYW55SnNvbkxkKHQpLmVsZW1lbnRSZWYudGV4dENvbnRlbnQ6dm9pZCAwLHNjcmVlbnNob3Q6Imh0dHBzOi8vd3d3LnNvY2lhbC5pby9zY3JlZW5zaG90LnBuZyIsdXJsOiJodHRwczovL3d3dy5zb2NpYWwuaW8vIn07cmV0dXJuIG5ldyBhKHIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKCk7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7dC50eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIix0LnRleHQ9SlNPTi5zdHJpbmdpZnkoZSksdGhpcy5lbGVtZW50UmVmPXR9fX0pO3ZhciBXaSxMSj1mKCgpPT57VWwoKTtoYigpO1dpPWNsYXNzIGEgZXh0ZW5kcyBZMHtzdGF0aWN7cyh0aGlzLCJPcGVuZ3JhcGhUYWciKX1zdGF0aWMgY3JlYXRlTmV3c0FydGljbGVPZ1RhZ3MoZSl7bGV0IHQ9W107cmV0dXJuIHQucHVzaChuZXcgYSgib2c6dXJsIixlLnVybD8/Z2xvYmFsVGhpcy5sb2NhdGlvbi5ocmVmKSksdC5wdXNoKG5ldyBhKCJvZzp0aXRsZSIsZS50aXRsZSkpLHQucHVzaChuZXcgYSgib2c6ZGVzY3JpcHRpb24iLGUuY29udGVudCkpLHQucHVzaChuZXcgYSgib2c6aW1hZ2UiLGUuZmVhdHVyZWRJbWFnZVVybD8/IiIpKSx0fXN0YXRpYyBjcmVhdGVQcm9kdWN0T2dUYWdzKGUpe2xldCB0PVtdO3JldHVybiB0LnB1c2gobmV3IGEoIm9nOnR5cGUiLCJwcm9kdWN0IikpLHQucHVzaChuZXcgYSgib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSx0LnB1c2gobmV3IGEoIm9nOnRpdGxlIixgJHtlLm5hbWV9IC0gJHtlLnNsb2dhbn1gKSksdC5wdXNoKG5ldyBhKCJvZzpzaXRlX25hbWUiLGUubmFtZSkpLHQucHVzaChuZXcgYSgib2c6ZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSx0LnB1c2gobmV3IGEoIm9nOmltYWdlIixlLmxvZ29MaW5rKSksdH1zdGF0aWMgY3JlYXRlQ29tcGFueU9nVGFncyhlKXtsZXQgdD1bXTtyZXR1cm4gdC5wdXNoKG5ldyBhKCJvZzp0eXBlIiwiY29tcGFueSIpKSx0LnB1c2gobmV3IGEoIm9nOnVybCIsZ2xvYmFsVGhpcy5sb2NhdGlvbi5ocmVmKSksdC5wdXNoKG5ldyBhKCJvZzp0aXRsZSIsZS5uYW1lKSksdC5wdXNoKG5ldyBhKCJvZzpzaXRlX25hbWUiLGUubmFtZSkpLHQucHVzaChuZXcgYSgib2c6ZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSx0LnB1c2gobmV3IGEoIm9nOmltYWdlIixlLmxvZ29Vcmw/PyIiKSksdH1jb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO3Iuc2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIsZSksci5jb250ZW50PXQsdGhpcy5lbGVtZW50UmVmPXJ9fX0pO3ZhciBQOCxsNmU9ZigoKT0+e2hiKCk7VEooKTtMSigpO2M2ZSgpO1VsKCk7UDg9Y2xhc3N7c3RhdGlje3ModGhpcywiVGFnTGV2ZWwiKX1zZXQgdGl0bGUoZSl7dGhpcy50aXRsZVN0b3JlPWUsdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGVTdG9yZSl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGVTdG9yZX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudGFncz1bXSx0aGlzLnN0YXRlPSJkaXNhYmxlZCIsdGhpcy50YWdNYW5hZ2VyUmVmPWUsdGhpcy50eXBlPXR9YWRkVGFnKGUpe2lmKGUgaW5zdGFuY2VvZiBBcnJheSlmb3IobGV0IHQgb2YgZSl0aGlzLmFkZFRhZyh0KTtlbHNlIHRoaXMudGFncy5wdXNoKGUpLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJmUuYXBwZW5kVG9Eb20oKX1hc3luYyBhZGRDb21wYW55SW5mbyhlKXt0aGlzLmFkZFRhZyhyZC5jcmVhdGVDb21wYW55SnNvbkxkKGUpKSx0aGlzLmFkZFRhZyhuZXcgV2koIm9nOnR5cGUiLCJidXNpbmVzcy5idXNpbmVzcyIpKSx0aGlzLmFkZFRhZyhuZXcgV2koIm9nOnRpdGxlIixlLm5hbWUpKSx0aGlzLmFkZFRhZyhuZXcgV2koIm9nOnVybCIsZS53ZWJzaXRlPz8iIikpLHRoaXMuYWRkVGFnKG5ldyBXaSgib2c6aW1hZ2UiLGUubG9nb1VybD8/IiIpKSx0aGlzLmFkZFRhZyhuZXcgV2koImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpzdHJlZXRfYWRkcmVzcyIsYCR7ZS5hZGRyZXNzLnN0cmVldE5hbWV9ICR7ZS5hZGRyZXNzLmhvdXNlTnVtYmVyfWApKSx0aGlzLmFkZFRhZyhuZXcgV2koImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpsb2NhbGl0eSIsZS5hZGRyZXNzLnBvc3RhbENvZGUpKSx0aGlzLmFkZFRhZyhuZXcgV2koImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpyZWdpb24iLGUuYWRkcmVzcy5jaXR5KSksdGhpcy5hZGRUYWcobmV3IFdpKCJidXNpbmVzczpjb250YWN0X2RhdGE6cG9zdGFsX2NvZGUiLGUuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IFdpKCJidXNpbmVzczpjb250YWN0X2RhdGE6Y291bnRyeV9uYW1lIixlLmFkZHJlc3MuY291bnRyeSkpfWFkZE5ld3NBcnRpY2xlSW5mbyhlKXt0aGlzLmFkZFRhZyhyZC5jcmVhdGVOZXdzQXJ0aWNsZUpzb25MZChlKSksdGhpcy5hZGRUYWcoV2kuY3JlYXRlTmV3c0FydGljbGVPZ1RhZ3MoZSkpfWFkZFByb2R1Y3RJbmZvKGUsdCl7dGhpcy5hZGRUYWcocmQuY3JlYXRlUHJvZHVjdEpzb25MZChlLHQpKSx0aGlzLmFkZFRhZyhXaS5jcmVhdGVQcm9kdWN0T2dUYWdzKGUpKX1hc3luYyBlbmFibGUoKXt0aGlzLnRpdGxlJiYoZG9jdW1lbnQudGl0bGU9dGhpcy50aXRsZSk7Zm9yKGxldCBlIG9mIHRoaXMudGFncyllLmFwcGVuZFRvRG9tKCk7dGhpcy5zdGF0ZT0iZW5hYmxlZCJ9YXN5bmMgZGlzYWJsZSgpe2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5yZW1vdmVGcm9tRG9tKCk7dGhpcy5zdGF0ZT0iZGlzYWJsZWQifX19KTt2YXIgRG4sZDZlPWYoKCk9PntoYigpO0RuPWNsYXNzIGV4dGVuZHMgWTB7c3RhdGlje3ModGhpcywiTWV0YVRhZyIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKTtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7ci5uYW1lPWUsci5jb250ZW50PXQsdGhpcy5lbGVtZW50UmVmPXJ9fX0pO3ZhciAkSixjNmU9ZigoKT0+e2w2ZSgpO1VsKCk7X0ooKTtkNmUoKTtUSigpO0xKKCk7JEo9Y2xhc3N7c3RhdGlje3ModGhpcywiVGFnTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcgUDgodGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IFA4KHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cChlKXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IERuKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgRG4oInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksZS50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IERuKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBEbigidHdpdHRlcjpzaXRlIixlLnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgRG4oInR3aXR0ZXI6Y3JlYXRvciIsZS50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBEbigiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxlLmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBEbigiY2Fub25pY2FsIixlLmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKGUubGRDb21wYW55JiYhZS5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKGUubGRDb21wYW55KTticmVhaztjYXNlISFlLmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyhlLmxkUHJvZHVjdCxlLmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKGUpe2xldCB0PW5ldyBQOCh0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHQudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZ0LmFkZFRhZyhuZXcgRG4oImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10LGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCksdH1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBtYixvbXQ9ZigoKT0+e1VsKCk7X0ooKTtjNmUoKTtsNmUoKTttYj1jbGFzc3tzdGF0aWN7cyh0aGlzLCJXZWJTZXR1cCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMudGFnTWFuYWdlcj1uZXcgJEosdGhpcy5yZWFkeURlZmVycmVkPWN0LmRlZmVyKCksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQ9Y3QuZGVmZXIoKSx0aGlzLnJlYWR5UHJvbWlzZT10aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JQcm9taXNlPXRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnByb21pc2UsdGhpcy5vcHRpb25zPWUsdGhpcy5zZXR1cCgpLnRoZW4oKCk9Pnt0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfSl9YXN5bmMgc2V0dXAoZSl7ZSYmKHRoaXMub3B0aW9ucz1lKSxhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0dXAodGhpcy5vcHRpb25zLm1ldGFPYmplY3QpfXJldmVydFRvQmFzZUxldmVsKCl7dGhpcy50YWdNYW5hZ2VyLnJldmVydFRvQmFzZUxldmVsKCl9YXN5bmMgc2V0U3ViTGV2ZWwoZSl7cmV0dXJuIGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXRTdWJQYWdlTGV2ZWwoZSl9Zmxhc2hUaXRsZShlKXt9aW5mb3JtUmVhZHlGb3JTbWFydHNzcigpe3RoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8Y29uc29sZS5lcnJvcigiWW91IGhhdmUgbm90IGluZGljYXRlZCB0aGF0IHlvdSBpbmZvcm0gc21hcnRzc3IgYnkgYSBkZWRpY2F0ZWQgc2lnbmFsISBQbGVhc2UgY29uc2lkZXIgZG9pbmcgc28hIiksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfX19KTt2YXIgdTZlLG5tdD1mKCgpPT57VWwoKTt1NmU9Y2xhc3N7c3RhdGlje3ModGhpcywiVGl0bGUiKX19fSk7dmFyIHA2ZT17fTtsdChwNmUse0pzb25MZFRhZzooKT0+cmQsTWV0YVRhZzooKT0+RG4sT3BlbmdyYXBoVGFnOigpPT5XaSxUaXRsZTooKT0+dTZlLFdlYlNldHVwOigpPT5tYn0pO3ZhciBESj1mKCgpPT57b210KCk7ZDZlKCk7TEooKTtUSigpO25tdCgpfSk7ZnVuY3Rpb24gbG10KGEsZSx0KXtyZXR1cm4gTWF0aC5tYXgoYSxNYXRoLm1pbihlLHQpKX1mdW5jdGlvbiBlQ2EoYSxlLHQpe3JldHVybigxLXQpKmErdCplfWZ1bmN0aW9uIHRDYShhLGUsdCxyKXtyZXR1cm4gZUNhKGEsZSwxLU1hdGguZXhwKC10KnIpKX1mdW5jdGlvbiBhQ2EoYSxlKXtyZXR1cm4oYSVlK2UpJWV9ZnVuY3Rpb24gc0NhKGEsZSl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKC4uLnIpe2xldCBpPXRoaXM7Y2xlYXJUaW1lb3V0KHQpLHQ9c2V0VGltZW91dCgoKT0+e3Q9dm9pZCAwLGEuYXBwbHkoaSxyKX0sZSl9fXZhciBKemEsckNhLGlDYSxjbXQsZG10LEswLG9DYSx1bXQsZ2IscG10PWYoKCk9PntKemE9IjEuMy4xNyI7cyhsbXQsImNsYW1wIik7cyhlQ2EsImxlcnAiKTtzKHRDYSwiZGFtcCIpO3MoYUNhLCJtb2R1bG8iKTtyQ2E9Y2xhc3N7c3RhdGlje3ModGhpcywiQW5pbWF0ZSIpfWlzUnVubmluZz0hMTt2YWx1ZT0wO2Zyb209MDt0bz0wO2N1cnJlbnRUaW1lPTA7bGVycDtkdXJhdGlvbjtlYXNpbmc7b25VcGRhdGU7YWR2YW5jZShhKXtpZighdGhpcy5pc1J1bm5pbmcpcmV0dXJuO2xldCBlPSExO2lmKHRoaXMuZHVyYXRpb24mJnRoaXMuZWFzaW5nKXt0aGlzLmN1cnJlbnRUaW1lKz1hO2xldCB0PWxtdCgwLHRoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbiwxKTtlPXQ+PTE7bGV0IHI9ZT8xOnRoaXMuZWFzaW5nKHQpO3RoaXMudmFsdWU9dGhpcy5mcm9tKyh0aGlzLnRvLXRoaXMuZnJvbSkqcn1lbHNlIHRoaXMubGVycD8odGhpcy52YWx1ZT10Q2EodGhpcy52YWx1ZSx0aGlzLnRvLHRoaXMubGVycCo2MCxhKSxNYXRoLnJvdW5kKHRoaXMudmFsdWUpPT09dGhpcy50byYmKHRoaXMudmFsdWU9dGhpcy50byxlPSEwKSk6KHRoaXMudmFsdWU9dGhpcy50byxlPSEwKTtlJiZ0aGlzLnN0b3AoKSx0aGlzLm9uVXBkYXRlPy4odGhpcy52YWx1ZSxlKX1zdG9wKCl7dGhpcy5pc1J1bm5pbmc9ITF9ZnJvbVRvKGEsZSx7bGVycDp0LGR1cmF0aW9uOnIsZWFzaW5nOmksb25TdGFydDpvLG9uVXBkYXRlOm59KXt0aGlzLmZyb209dGhpcy52YWx1ZT1hLHRoaXMudG89ZSx0aGlzLmxlcnA9dCx0aGlzLmR1cmF0aW9uPXIsdGhpcy5lYXNpbmc9aSx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5pc1J1bm5pbmc9ITAsbz8uKCksdGhpcy5vblVwZGF0ZT1ufX07cyhzQ2EsImRlYm91bmNlIik7aUNhPWNsYXNze3N0YXRpY3tzKHRoaXMsIkRpbWVuc2lvbnMiKX1jb25zdHJ1Y3RvcihhLGUse2F1dG9SZXNpemU6dD0hMCxkZWJvdW5jZTpyPTI1MH09e30pe3RoaXMud3JhcHBlcj1hLHRoaXMuY29udGVudD1lLHQmJih0aGlzLmRlYm91bmNlZFJlc2l6ZT1zQ2EodGhpcy5yZXNpemUsciksdGhpcy53cmFwcGVyIGluc3RhbmNlb2YgV2luZG93P3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuZGVib3VuY2VkUmVzaXplLCExKToodGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMud3JhcHBlcikpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmRlYm91bmNlZFJlc2l6ZSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRlbnQpKSx0aGlzLnJlc2l6ZSgpfXdpZHRoPTA7aGVpZ2h0PTA7c2Nyb2xsSGVpZ2h0PTA7c2Nyb2xsV2lkdGg9MDtkZWJvdW5jZWRSZXNpemU7d3JhcHBlclJlc2l6ZU9ic2VydmVyO2NvbnRlbnRSZXNpemVPYnNlcnZlcjtkZXN0cm95KCl7dGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMud3JhcHBlcj09PXdpbmRvdyYmdGhpcy5kZWJvdW5jZWRSZXNpemUmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuZGVib3VuY2VkUmVzaXplLCExKX1yZXNpemU9cygoKT0+e3RoaXMub25XcmFwcGVyUmVzaXplKCksdGhpcy5vbkNvbnRlbnRSZXNpemUoKX0sInJlc2l6ZSIpO29uV3JhcHBlclJlc2l6ZT1zKCgpPT57dGhpcy53cmFwcGVyIGluc3RhbmNlb2YgV2luZG93Pyh0aGlzLndpZHRoPXdpbmRvdy5pbm5lcldpZHRoLHRoaXMuaGVpZ2h0PXdpbmRvdy5pbm5lckhlaWdodCk6KHRoaXMud2lkdGg9dGhpcy53cmFwcGVyLmNsaWVudFdpZHRoLHRoaXMuaGVpZ2h0PXRoaXMud3JhcHBlci5jbGllbnRIZWlnaHQpfSwib25XcmFwcGVyUmVzaXplIik7b25Db250ZW50UmVzaXplPXMoKCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuY29udGVudC5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLmNvbnRlbnQuc2Nyb2xsV2lkdGgpOih0aGlzLnNjcm9sbEhlaWdodD10aGlzLndyYXBwZXIuc2Nyb2xsSGVpZ2h0LHRoaXMuc2Nyb2xsV2lkdGg9dGhpcy53cmFwcGVyLnNjcm9sbFdpZHRoKX0sIm9uQ29udGVudFJlc2l6ZSIpO2dldCBsaW1pdCgpe3JldHVybnt4OnRoaXMuc2Nyb2xsV2lkdGgtdGhpcy53aWR0aCx5OnRoaXMuc2Nyb2xsSGVpZ2h0LXRoaXMuaGVpZ2h0fX19LGNtdD1jbGFzc3tzdGF0aWN7cyh0aGlzLCJFbWl0dGVyIil9ZXZlbnRzPXt9O2VtaXQoYSwuLi5lKXtsZXQgdD10aGlzLmV2ZW50c1thXXx8W107Zm9yKGxldCByPTAsaT10Lmxlbmd0aDtyPGk7cisrKXRbcl0/LiguLi5lKX1vbihhLGUpe3JldHVybiB0aGlzLmV2ZW50c1thXT8ucHVzaChlKXx8KHRoaXMuZXZlbnRzW2FdPVtlXSksKCk9Pnt0aGlzLmV2ZW50c1thXT10aGlzLmV2ZW50c1thXT8uZmlsdGVyKHQ9PmUhPT10KX19b2ZmKGEsZSl7dGhpcy5ldmVudHNbYV09dGhpcy5ldmVudHNbYV0/LmZpbHRlcih0PT5lIT09dCl9ZGVzdHJveSgpe3RoaXMuZXZlbnRzPXt9fX0sZG10PTEwMC82LEswPXtwYXNzaXZlOiExfSxvQ2E9Y2xhc3N7c3RhdGlje3ModGhpcywiVmlydHVhbFNjcm9sbCIpfWNvbnN0cnVjdG9yKGEsZT17d2hlZWxNdWx0aXBsaWVyOjEsdG91Y2hNdWx0aXBsaWVyOjF9KXt0aGlzLmVsZW1lbnQ9YSx0aGlzLm9wdGlvbnM9ZSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLm9uV2luZG93UmVzaXplKCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwsSzApLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLm9uVG91Y2hTdGFydCxLMCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5vblRvdWNoTW92ZSxLMCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLm9uVG91Y2hFbmQsSzApfXRvdWNoU3RhcnQ9e3g6MCx5OjB9O2xhc3REZWx0YT17eDowLHk6MH07d2luZG93PXt3aWR0aDowLGhlaWdodDowfTtlbWl0dGVyPW5ldyBjbXQ7b24oYSxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uKGEsZSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5vbldpbmRvd1Jlc2l6ZSwhMSksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwsSzApLHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLm9uVG91Y2hTdGFydCxLMCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5vblRvdWNoTW92ZSxLMCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLm9uVG91Y2hFbmQsSzApfW9uVG91Y2hTdGFydD1zKGE9PntsZXR7Y2xpZW50WDplLGNsaWVudFk6dH09YS50YXJnZXRUb3VjaGVzP2EudGFyZ2V0VG91Y2hlc1swXTphO3RoaXMudG91Y2hTdGFydC54PWUsdGhpcy50b3VjaFN0YXJ0Lnk9dCx0aGlzLmxhc3REZWx0YT17eDowLHk6MH0sdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDowLGRlbHRhWTowLGV2ZW50OmF9KX0sIm9uVG91Y2hTdGFydCIpO29uVG91Y2hNb3ZlPXMoYT0+e2xldHtjbGllbnRYOmUsY2xpZW50WTp0fT1hLnRhcmdldFRvdWNoZXM/YS50YXJnZXRUb3VjaGVzWzBdOmEscj0tKGUtdGhpcy50b3VjaFN0YXJ0LngpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXIsaT0tKHQtdGhpcy50b3VjaFN0YXJ0LnkpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXI7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT10LHRoaXMubGFzdERlbHRhPXt4OnIseTppfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOnIsZGVsdGFZOmksZXZlbnQ6YX0pfSwib25Ub3VjaE1vdmUiKTtvblRvdWNoRW5kPXMoYT0+e3RoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6dGhpcy5sYXN0RGVsdGEueCxkZWx0YVk6dGhpcy5sYXN0RGVsdGEueSxldmVudDphfSl9LCJvblRvdWNoRW5kIik7b25XaGVlbD1zKGE9PntsZXR7ZGVsdGFYOmUsZGVsdGFZOnQsZGVsdGFNb2RlOnJ9PWEsaT1yPT09MT9kbXQ6cj09PTI/dGhpcy53aW5kb3cud2lkdGg6MSxvPXI9PT0xP2RtdDpyPT09Mj90aGlzLndpbmRvdy5oZWlnaHQ6MTtlKj1pLHQqPW8sZSo9dGhpcy5vcHRpb25zLndoZWVsTXVsdGlwbGllcix0Kj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6ZSxkZWx0YVk6dCxldmVudDphfSl9LCJvbldoZWVsIik7b25XaW5kb3dSZXNpemU9cygoKT0+e3RoaXMud2luZG93PXt3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aCxoZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0fX0sIm9uV2luZG93UmVzaXplIil9LHVtdD1zKGE9Pk1hdGgubWluKDEsMS4wMDEtTWF0aC5wb3coMiwtMTAqYSkpLCJkZWZhdWx0RWFzaW5nIiksZ2I9Y2xhc3N7c3RhdGlje3ModGhpcywiTGVuaXMiKX1faXNTY3JvbGxpbmc9ITE7X2lzU3RvcHBlZD0hMTtfaXNMb2NrZWQ9ITE7X3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITE7X3Jlc2V0VmVsb2NpdHlUaW1lb3V0PW51bGw7X3JhZklkPW51bGw7aXNUb3VjaGluZzt0aW1lPTA7dXNlckRhdGE9e307bGFzdFZlbG9jaXR5PTA7dmVsb2NpdHk9MDtkaXJlY3Rpb249MDtvcHRpb25zO3RhcmdldFNjcm9sbDthbmltYXRlZFNjcm9sbDthbmltYXRlPW5ldyByQ2E7ZW1pdHRlcj1uZXcgY210O2RpbWVuc2lvbnM7dmlydHVhbFNjcm9sbDtjb25zdHJ1Y3Rvcih7d3JhcHBlcjphPXdpbmRvdyxjb250ZW50OmU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGV2ZW50c1RhcmdldDp0PWEsc21vb3RoV2hlZWw6cj0hMCxzeW5jVG91Y2g6aT0hMSxzeW5jVG91Y2hMZXJwOm89LjA3NSx0b3VjaEluZXJ0aWFFeHBvbmVudDpuPTEuNyxkdXJhdGlvbjpsLGVhc2luZzpkLGxlcnA6Yz0uMSxpbmZpbml0ZTpwPSExLG9yaWVudGF0aW9uOnU9InZlcnRpY2FsIixnZXN0dXJlT3JpZW50YXRpb246bT11PT09Imhvcml6b250YWwiPyJib3RoIjoidmVydGljYWwiLHRvdWNoTXVsdGlwbGllcjp2PTEsd2hlZWxNdWx0aXBsaWVyOng9MSxhdXRvUmVzaXplOmI9ITAscHJldmVudDpnLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOms9ITAsYXV0b1JhZjpDPSExLGFuY2hvcnM6Tj0hMSxhdXRvVG9nZ2xlOl89ITEsYWxsb3dOZXN0ZWRTY3JvbGw6ej0hMSxfX2V4cGVyaW1lbnRhbF9fbmFpdmVEaW1lbnNpb25zOk89ITEsbmFpdmVEaW1lbnNpb25zOlQ9TyxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6UD0hMX09e30pe3dpbmRvdy5sZW5pc1ZlcnNpb249SnphLCghYXx8YT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJihhPXdpbmRvdyksdHlwZW9mIGw9PSJudW1iZXIiJiZ0eXBlb2YgZCE9ImZ1bmN0aW9uIj9kPXVtdDp0eXBlb2YgZD09ImZ1bmN0aW9uIiYmdHlwZW9mIGwhPSJudW1iZXIiJiYobD0xKSx0aGlzLm9wdGlvbnM9e3dyYXBwZXI6YSxjb250ZW50OmUsZXZlbnRzVGFyZ2V0OnQsc21vb3RoV2hlZWw6cixzeW5jVG91Y2g6aSxzeW5jVG91Y2hMZXJwOm8sdG91Y2hJbmVydGlhRXhwb25lbnQ6bixkdXJhdGlvbjpsLGVhc2luZzpkLGxlcnA6YyxpbmZpbml0ZTpwLGdlc3R1cmVPcmllbnRhdGlvbjptLG9yaWVudGF0aW9uOnUsdG91Y2hNdWx0aXBsaWVyOnYsd2hlZWxNdWx0aXBsaWVyOngsYXV0b1Jlc2l6ZTpiLHByZXZlbnQ6Zyx2aXJ0dWFsU2Nyb2xsOnksb3ZlcnNjcm9sbDprLGF1dG9SYWY6QyxhbmNob3JzOk4sYXV0b1RvZ2dsZTpfLGFsbG93TmVzdGVkU2Nyb2xsOnosbmFpdmVEaW1lbnNpb25zOlQsc3RvcEluZXJ0aWFPbk5hdmlnYXRlOlB9LHRoaXMuZGltZW5zaW9ucz1uZXcgaUNhKGEsZSx7YXV0b1Jlc2l6ZTpifSksdGhpcy51cGRhdGVDbGFzc05hbWUoKSx0aGlzLnRhcmdldFNjcm9sbD10aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMub3B0aW9ucy53cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5vbk5hdGl2ZVNjcm9sbCwhMSksdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIix0aGlzLm9uU2Nyb2xsRW5kLHtjYXB0dXJlOiEwfSksKHRoaXMub3B0aW9ucy5hbmNob3JzfHx0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSYmdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMub25DbGljaywhMSksdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMub25Qb2ludGVyRG93biwhMSksdGhpcy52aXJ0dWFsU2Nyb2xsPW5ldyBvQ2EodCx7dG91Y2hNdWx0aXBsaWVyOnYsd2hlZWxNdWx0aXBsaWVyOnh9KSx0aGlzLnZpcnR1YWxTY3JvbGwub24oInNjcm9sbCIsdGhpcy5vblZpcnR1YWxTY3JvbGwpLHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlJiYodGhpcy5jaGVja092ZXJmbG93KCksdGhpcy5yb290RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLm9uVHJhbnNpdGlvbkVuZCx7cGFzc2l2ZTohMH0pKSx0aGlzLm9wdGlvbnMuYXV0b1JhZiYmKHRoaXMuX3JhZklkPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJhZikpfWRlc3Ryb3koKXt0aGlzLmVtaXR0ZXIuZGVzdHJveSgpLHRoaXMub3B0aW9ucy53cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5vbk5hdGl2ZVNjcm9sbCwhMSksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIix0aGlzLm9uU2Nyb2xsRW5kLHtjYXB0dXJlOiEwfSksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMub25Qb2ludGVyRG93biwhMSksKHRoaXMub3B0aW9ucy5hbmNob3JzfHx0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSYmdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMub25DbGljaywhMSksdGhpcy52aXJ0dWFsU2Nyb2xsLmRlc3Ryb3koKSx0aGlzLmRpbWVuc2lvbnMuZGVzdHJveSgpLHRoaXMuY2xlYW5VcENsYXNzTmFtZSgpLHRoaXMuX3JhZklkJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWZJZCl9b24oYSxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uKGEsZSl9b2ZmKGEsZSl7cmV0dXJuIHRoaXMuZW1pdHRlci5vZmYoYSxlKX1vblNjcm9sbEVuZD1zKGE9PnthIGluc3RhbmNlb2YgQ3VzdG9tRXZlbnR8fCh0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCJ8fHRoaXMuaXNTY3JvbGxpbmc9PT0hMSkmJmEuc3RvcFByb3BhZ2F0aW9uKCl9LCJvblNjcm9sbEVuZCIpO2Rpc3BhdGNoU2Nyb2xsZW5kRXZlbnQ9cygoKT0+e3RoaXMub3B0aW9ucy53cmFwcGVyLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzY3JvbGxlbmQiLHtidWJibGVzOnRoaXMub3B0aW9ucy53cmFwcGVyPT09d2luZG93LGRldGFpbDp7bGVuaXNTY3JvbGxFbmQ6ITB9fSkpfSwiZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCIpO2dldCBvdmVyZmxvdygpe2xldCBhPXRoaXMuaXNIb3Jpem9udGFsPyJvdmVyZmxvdy14Ijoib3ZlcmZsb3cteSI7cmV0dXJuIGdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudClbYV19Y2hlY2tPdmVyZmxvdygpe1siaGlkZGVuIiwiY2xpcCJdLmluY2x1ZGVzKHRoaXMub3ZlcmZsb3cpP3RoaXMuaW50ZXJuYWxTdG9wKCk6dGhpcy5pbnRlcm5hbFN0YXJ0KCl9b25UcmFuc2l0aW9uRW5kPXMoYT0+e2EucHJvcGVydHlOYW1lLmluY2x1ZGVzKCJvdmVyZmxvdyIpJiZ0aGlzLmNoZWNrT3ZlcmZsb3coKX0sIm9uVHJhbnNpdGlvbkVuZCIpO3NldFNjcm9sbChhKXt0aGlzLmlzSG9yaXpvbnRhbD90aGlzLm9wdGlvbnMud3JhcHBlci5zY3JvbGxUbyh7bGVmdDphLGJlaGF2aW9yOiJpbnN0YW50In0pOnRoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHt0b3A6YSxiZWhhdmlvcjoiaW5zdGFudCJ9KX1vbkNsaWNrPXMoYT0+e2xldCB0PWEuY29tcG9zZWRQYXRoKCkuZmlsdGVyKHI9PnIgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCYmci5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7aWYodGhpcy5vcHRpb25zLmFuY2hvcnMpe2xldCByPXQuZmluZChpPT5pLmdldEF0dHJpYnV0ZSgiaHJlZiIpPy5pbmNsdWRlcygiIyIpKTtpZihyKXtsZXQgaT1yLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKGkpe2xldCBvPXR5cGVvZiB0aGlzLm9wdGlvbnMuYW5jaG9ycz09Im9iamVjdCImJnRoaXMub3B0aW9ucy5hbmNob3JzP3RoaXMub3B0aW9ucy5hbmNob3JzOnZvaWQgMCxuPWAjJHtpLnNwbGl0KCIjIilbMV19YDt0aGlzLnNjcm9sbFRvKG4sbyl9fX10aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlJiZ0LmZpbmQoaT0+aS5ob3N0PT09d2luZG93LmxvY2F0aW9uLmhvc3QpJiZ0aGlzLnJlc2V0KCl9LCJvbkNsaWNrIik7b25Qb2ludGVyRG93bj1zKGE9PnthLmJ1dHRvbj09PTEmJnRoaXMucmVzZXQoKX0sIm9uUG9pbnRlckRvd24iKTtvblZpcnR1YWxTY3JvbGw9cyhhPT57aWYodHlwZW9mIHRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsPT0iZnVuY3Rpb24iJiZ0aGlzLm9wdGlvbnMudmlydHVhbFNjcm9sbChhKT09PSExKXJldHVybjtsZXR7ZGVsdGFYOmUsZGVsdGFZOnQsZXZlbnQ6cn09YTtpZih0aGlzLmVtaXR0ZXIuZW1pdCgidmlydHVhbC1zY3JvbGwiLHtkZWx0YVg6ZSxkZWx0YVk6dCxldmVudDpyfSksci5jdHJsS2V5fHxyLmxlbmlzU3RvcFByb3BhZ2F0aW9uKXJldHVybjtsZXQgaT1yLnR5cGUuaW5jbHVkZXMoInRvdWNoIiksbz1yLnR5cGUuaW5jbHVkZXMoIndoZWVsIik7dGhpcy5pc1RvdWNoaW5nPXIudHlwZT09PSJ0b3VjaHN0YXJ0Inx8ci50eXBlPT09InRvdWNobW92ZSI7bGV0IG49ZT09PTAmJnQ9PT0wO2lmKHRoaXMub3B0aW9ucy5zeW5jVG91Y2gmJmkmJnIudHlwZT09PSJ0b3VjaHN0YXJ0IiYmbiYmIXRoaXMuaXNTdG9wcGVkJiYhdGhpcy5pc0xvY2tlZCl7dGhpcy5yZXNldCgpO3JldHVybn1sZXQgZD10aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09InZlcnRpY2FsIiYmdD09PTB8fHRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCImJmU9PT0wO2lmKG58fGQpcmV0dXJuO2xldCBjPXIuY29tcG9zZWRQYXRoKCk7Yz1jLnNsaWNlKDAsYy5pbmRleE9mKHRoaXMucm9vdEVsZW1lbnQpKTtsZXQgcD10aGlzLm9wdGlvbnMucHJldmVudDtpZihjLmZpbmQoZz0+ZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYodHlwZW9mIHA9PSJmdW5jdGlvbiImJnA/LihnKXx8Zy5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50Iil8fGkmJmcuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC10b3VjaCIpfHxvJiZnLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQtd2hlZWwiKXx8dGhpcy5vcHRpb25zLmFsbG93TmVzdGVkU2Nyb2xsJiZ0aGlzLmNoZWNrTmVzdGVkU2Nyb2xsKGcse2RlbHRhWDplLGRlbHRhWTp0fSkpKSlyZXR1cm47aWYodGhpcy5pc1N0b3BwZWR8fHRoaXMuaXNMb2NrZWQpe3IuY2FuY2VsYWJsZSYmci5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighKHRoaXMub3B0aW9ucy5zeW5jVG91Y2gmJml8fHRoaXMub3B0aW9ucy5zbW9vdGhXaGVlbCYmbykpe3RoaXMuaXNTY3JvbGxpbmc9Im5hdGl2ZSIsdGhpcy5hbmltYXRlLnN0b3AoKSxyLmxlbmlzU3RvcFByb3BhZ2F0aW9uPSEwO3JldHVybn1sZXQgbT10O3RoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iYm90aCI/bT1NYXRoLmFicyh0KT5NYXRoLmFicyhlKT90OmU6dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmKG09ZSksKCF0aGlzLm9wdGlvbnMub3ZlcnNjcm9sbHx8dGhpcy5vcHRpb25zLmluZmluaXRlfHx0aGlzLm9wdGlvbnMud3JhcHBlciE9PXdpbmRvdyYmdGhpcy5saW1pdD4wJiYodGhpcy5hbmltYXRlZFNjcm9sbD4wJiZ0aGlzLmFuaW1hdGVkU2Nyb2xsPHRoaXMubGltaXR8fHRoaXMuYW5pbWF0ZWRTY3JvbGw9PT0wJiZ0PjB8fHRoaXMuYW5pbWF0ZWRTY3JvbGw9PT10aGlzLmxpbWl0JiZ0PDApKSYmKHIubGVuaXNTdG9wUHJvcGFnYXRpb249ITApLHIuY2FuY2VsYWJsZSYmci5wcmV2ZW50RGVmYXVsdCgpO2xldCB2PWkmJnRoaXMub3B0aW9ucy5zeW5jVG91Y2gsYj1pJiZyLnR5cGU9PT0idG91Y2hlbmQiO2ImJihtPU1hdGguc2lnbih0aGlzLnZlbG9jaXR5KSpNYXRoLnBvdyhNYXRoLmFicyh0aGlzLnZlbG9jaXR5KSx0aGlzLm9wdGlvbnMudG91Y2hJbmVydGlhRXhwb25lbnQpKSx0aGlzLnNjcm9sbFRvKHRoaXMudGFyZ2V0U2Nyb2xsK20se3Byb2dyYW1tYXRpYzohMSwuLi52P3tsZXJwOmI/dGhpcy5vcHRpb25zLnN5bmNUb3VjaExlcnA6MX06e2xlcnA6dGhpcy5vcHRpb25zLmxlcnAsZHVyYXRpb246dGhpcy5vcHRpb25zLmR1cmF0aW9uLGVhc2luZzp0aGlzLm9wdGlvbnMuZWFzaW5nfX0pfSwib25WaXJ0dWFsU2Nyb2xsIik7cmVzaXplKCl7dGhpcy5kaW1lbnNpb25zLnJlc2l6ZSgpLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5lbWl0KCl9ZW1pdCgpe3RoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHRoaXMpfW9uTmF0aXZlU2Nyb2xsPXMoKCk9PntpZih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCE9PW51bGwmJihjbGVhclRpbWVvdXQodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQpLHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0PW51bGwpLHRoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQpe3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITE7cmV0dXJufWlmKHRoaXMuaXNTY3JvbGxpbmc9PT0hMXx8dGhpcy5pc1Njcm9sbGluZz09PSJuYXRpdmUiKXtsZXQgYT10aGlzLmFuaW1hdGVkU2Nyb2xsO3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PXRoaXMuYW5pbWF0ZWRTY3JvbGwtYSx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy5hbmltYXRlZFNjcm9sbC1hKSx0aGlzLmlzU3RvcHBlZHx8KHRoaXMuaXNTY3JvbGxpbmc9Im5hdGl2ZSIpLHRoaXMuZW1pdCgpLHRoaXMudmVsb2NpdHkhPT0wJiYodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT0wLHRoaXMuaXNTY3JvbGxpbmc9ITEsdGhpcy5lbWl0KCl9LDQwMCkpfX0sIm9uTmF0aXZlU2Nyb2xsIik7cmVzZXQoKXt0aGlzLmlzTG9ja2VkPSExLHRoaXMuaXNTY3JvbGxpbmc9ITEsdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5PTAsdGhpcy5hbmltYXRlLnN0b3AoKX1zdGFydCgpe2lmKHRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgib3ZlcmZsb3ciKTtyZXR1cm59dGhpcy5pbnRlcm5hbFN0YXJ0KCl9fWludGVybmFsU3RhcnQoKXt0aGlzLmlzU3RvcHBlZCYmKHRoaXMucmVzZXQoKSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLmVtaXQoKSl9c3RvcCgpe2lmKCF0aGlzLmlzU3RvcHBlZCl7aWYodGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUpe3RoaXMucm9vdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIm92ZXJmbG93IiwiY2xpcCIpO3JldHVybn10aGlzLmludGVybmFsU3RvcCgpfX1pbnRlcm5hbFN0b3AoKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMucmVzZXQoKSx0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLmVtaXQoKSl9cmFmPXMoYT0+e2xldCBlPWEtKHRoaXMudGltZXx8YSk7dGhpcy50aW1lPWEsdGhpcy5hbmltYXRlLmFkdmFuY2UoZSouMDAxKSx0aGlzLm9wdGlvbnMuYXV0b1JhZiYmKHRoaXMuX3JhZklkPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJhZikpfSwicmFmIik7c2Nyb2xsVG8oYSx7b2Zmc2V0OmU9MCxpbW1lZGlhdGU6dD0hMSxsb2NrOnI9ITEscHJvZ3JhbW1hdGljOmk9ITAsbGVycDpvPWk/dGhpcy5vcHRpb25zLmxlcnA6dm9pZCAwLGR1cmF0aW9uOm49aT90aGlzLm9wdGlvbnMuZHVyYXRpb246dm9pZCAwLGVhc2luZzpsPWk/dGhpcy5vcHRpb25zLmVhc2luZzp2b2lkIDAsb25TdGFydDpkLG9uQ29tcGxldGU6Yyxmb3JjZTpwPSExLHVzZXJEYXRhOnV9PXt9KXtpZighKCh0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCkmJiFwKSl7aWYodHlwZW9mIGE9PSJzdHJpbmciJiZbInRvcCIsImxlZnQiLCJzdGFydCIsIiMiXS5pbmNsdWRlcyhhKSlhPTA7ZWxzZSBpZih0eXBlb2YgYT09InN0cmluZyImJlsiYm90dG9tIiwicmlnaHQiLCJlbmQiXS5pbmNsdWRlcyhhKSlhPXRoaXMubGltaXQ7ZWxzZXtsZXQgbTtpZih0eXBlb2YgYT09InN0cmluZyI/KG09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhKSxtfHwoYT09PSIjdG9wIj9hPTA6Y29uc29sZS53YXJuKCJMZW5pczogVGFyZ2V0IG5vdCBmb3VuZCIsYSkpKTphIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmE/Lm5vZGVUeXBlJiYobT1hKSxtKXtpZih0aGlzLm9wdGlvbnMud3JhcHBlciE9PXdpbmRvdyl7bGV0IHg9dGhpcy5yb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlLT10aGlzLmlzSG9yaXpvbnRhbD94LmxlZnQ6eC50b3B9bGV0IHY9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTthPSh0aGlzLmlzSG9yaXpvbnRhbD92LmxlZnQ6di50b3ApK3RoaXMuYW5pbWF0ZWRTY3JvbGx9fWlmKHR5cGVvZiBhPT0ibnVtYmVyIil7aWYoYSs9ZSxhPU1hdGgucm91bmQoYSksdGhpcy5vcHRpb25zLmluZmluaXRlKXtpZihpKXt0aGlzLnRhcmdldFNjcm9sbD10aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMuc2Nyb2xsO2xldCBtPWEtdGhpcy5hbmltYXRlZFNjcm9sbDttPnRoaXMubGltaXQvMj9hPWEtdGhpcy5saW1pdDptPC10aGlzLmxpbWl0LzImJihhPWErdGhpcy5saW1pdCl9fWVsc2UgYT1sbXQoMCxhLHRoaXMubGltaXQpO2lmKGE9PT10aGlzLnRhcmdldFNjcm9sbCl7ZD8uKHRoaXMpLGM/Lih0aGlzKTtyZXR1cm59aWYodGhpcy51c2VyRGF0YT11Pz97fSx0KXt0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPWEsdGhpcy5zZXRTY3JvbGwodGhpcy5zY3JvbGwpLHRoaXMucmVzZXQoKSx0aGlzLnByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKSx0aGlzLmVtaXQoKSxjPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pO3JldHVybn1pfHwodGhpcy50YXJnZXRTY3JvbGw9YSksdHlwZW9mIG49PSJudW1iZXIiJiZ0eXBlb2YgbCE9ImZ1bmN0aW9uIj9sPXVtdDp0eXBlb2YgbD09ImZ1bmN0aW9uIiYmdHlwZW9mIG4hPSJudW1iZXIiJiYobj0xKSx0aGlzLmFuaW1hdGUuZnJvbVRvKHRoaXMuYW5pbWF0ZWRTY3JvbGwsYSx7ZHVyYXRpb246bixlYXNpbmc6bCxsZXJwOm8sb25TdGFydDpzKCgpPT57ciYmKHRoaXMuaXNMb2NrZWQ9ITApLHRoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsZD8uKHRoaXMpfSwib25TdGFydCIpLG9uVXBkYXRlOnMoKG0sdik9Pnt0aGlzLmlzU2Nyb2xsaW5nPSJzbW9vdGgiLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT1tLXRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5kaXJlY3Rpb249TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpLHRoaXMuYW5pbWF0ZWRTY3JvbGw9bSx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksaSYmKHRoaXMudGFyZ2V0U2Nyb2xsPW0pLHZ8fHRoaXMuZW1pdCgpLHYmJih0aGlzLnJlc2V0KCksdGhpcy5lbWl0KCksYz8uKHRoaXMpLHRoaXMudXNlckRhdGE9e30scmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5kaXNwYXRjaFNjcm9sbGVuZEV2ZW50KCl9KSx0aGlzLnByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKSl9LCJvblVwZGF0ZSIpfSl9fX1wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSExfSl9Y2hlY2tOZXN0ZWRTY3JvbGwoYSx7ZGVsdGFYOmUsZGVsdGFZOnR9KXtsZXQgcj1EYXRlLm5vdygpLGk9YS5fbGVuaXM/Pz17fSxvLG4sbCxkLGMscCx1LG0sdj10aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uO2lmKHItKGkudGltZT8/MCk+MmUzKXtpLnRpbWU9RGF0ZS5ub3coKTtsZXQgXz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhKTtpLmNvbXB1dGVkU3R5bGU9XztsZXQgej1fLm92ZXJmbG93WCxPPV8ub3ZlcmZsb3dZO2lmKG89WyJhdXRvIiwib3ZlcmxheSIsInNjcm9sbCJdLmluY2x1ZGVzKHopLG49WyJhdXRvIiwib3ZlcmxheSIsInNjcm9sbCJdLmluY2x1ZGVzKE8pLGkuaGFzT3ZlcmZsb3dYPW8saS5oYXNPdmVyZmxvd1k9biwhbyYmIW58fHY9PT0idmVydGljYWwiJiYhbnx8dj09PSJob3Jpem9udGFsIiYmIW8pcmV0dXJuITE7Yz1hLnNjcm9sbFdpZHRoLHA9YS5zY3JvbGxIZWlnaHQsdT1hLmNsaWVudFdpZHRoLG09YS5jbGllbnRIZWlnaHQsbD1jPnUsZD1wPm0saS5pc1Njcm9sbGFibGVYPWwsaS5pc1Njcm9sbGFibGVZPWQsaS5zY3JvbGxXaWR0aD1jLGkuc2Nyb2xsSGVpZ2h0PXAsaS5jbGllbnRXaWR0aD11LGkuY2xpZW50SGVpZ2h0PW19ZWxzZSBsPWkuaXNTY3JvbGxhYmxlWCxkPWkuaXNTY3JvbGxhYmxlWSxvPWkuaGFzT3ZlcmZsb3dYLG49aS5oYXNPdmVyZmxvd1ksYz1pLnNjcm9sbFdpZHRoLHA9aS5zY3JvbGxIZWlnaHQsdT1pLmNsaWVudFdpZHRoLG09aS5jbGllbnRIZWlnaHQ7aWYoIW8mJiFufHwhbCYmIWR8fHY9PT0idmVydGljYWwiJiYoIW58fCFkKXx8dj09PSJob3Jpem9udGFsIiYmKCFvfHwhbCkpcmV0dXJuITE7bGV0IHg7aWYodj09PSJob3Jpem9udGFsIil4PSJ4IjtlbHNlIGlmKHY9PT0idmVydGljYWwiKXg9InkiO2Vsc2V7bGV0IF89ZSE9PTAsej10IT09MDtfJiZvJiZsJiYoeD0ieCIpLHomJm4mJmQmJih4PSJ5Iil9aWYoIXgpcmV0dXJuITE7bGV0IGIsZyx5LGssQztpZih4PT09IngiKWI9YS5zY3JvbGxMZWZ0LGc9Yy11LHk9ZSxrPW8sQz1sO2Vsc2UgaWYoeD09PSJ5IiliPWEuc2Nyb2xsVG9wLGc9cC1tLHk9dCxrPW4sQz1kO2Vsc2UgcmV0dXJuITE7cmV0dXJuKHk+MD9iPGc6Yj4wKSYmayYmQ31nZXQgcm9vdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3c/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OnRoaXMub3B0aW9ucy53cmFwcGVyfWdldCBsaW1pdCgpe3JldHVybiB0aGlzLm9wdGlvbnMubmFpdmVEaW1lbnNpb25zP3RoaXMuaXNIb3Jpem9udGFsP3RoaXMucm9vdEVsZW1lbnQuc2Nyb2xsV2lkdGgtdGhpcy5yb290RWxlbWVudC5jbGllbnRXaWR0aDp0aGlzLnJvb3RFbGVtZW50LnNjcm9sbEhlaWdodC10aGlzLnJvb3RFbGVtZW50LmNsaWVudEhlaWdodDp0aGlzLmRpbWVuc2lvbnMubGltaXRbdGhpcy5pc0hvcml6b250YWw/IngiOiJ5Il19Z2V0IGlzSG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLm9wdGlvbnMub3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCJ9Z2V0IGFjdHVhbFNjcm9sbCgpe2xldCBhPXRoaXMub3B0aW9ucy53cmFwcGVyO3JldHVybiB0aGlzLmlzSG9yaXpvbnRhbD9hLnNjcm9sbFg/P2Euc2Nyb2xsTGVmdDphLnNjcm9sbFk/P2Euc2Nyb2xsVG9wfWdldCBzY3JvbGwoKXtyZXR1cm4gdGhpcy5vcHRpb25zLmluZmluaXRlP2FDYSh0aGlzLmFuaW1hdGVkU2Nyb2xsLHRoaXMubGltaXQpOnRoaXMuYW5pbWF0ZWRTY3JvbGx9Z2V0IHByb2dyZXNzKCl7cmV0dXJuIHRoaXMubGltaXQ9PT0wPzE6dGhpcy5zY3JvbGwvdGhpcy5saW1pdH1nZXQgaXNTY3JvbGxpbmcoKXtyZXR1cm4gdGhpcy5faXNTY3JvbGxpbmd9c2V0IGlzU2Nyb2xsaW5nKGEpe3RoaXMuX2lzU2Nyb2xsaW5nIT09YSYmKHRoaXMuX2lzU2Nyb2xsaW5nPWEsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9pc1N0b3BwZWR9c2V0IGlzU3RvcHBlZChhKXt0aGlzLl9pc1N0b3BwZWQhPT1hJiYodGhpcy5faXNTdG9wcGVkPWEsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzTG9ja2VkKCl7cmV0dXJuIHRoaXMuX2lzTG9ja2VkfXNldCBpc0xvY2tlZChhKXt0aGlzLl9pc0xvY2tlZCE9PWEmJih0aGlzLl9pc0xvY2tlZD1hLHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc1Ntb290aCgpe3JldHVybiB0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCJ9Z2V0IGNsYXNzTmFtZSgpe2xldCBhPSJsZW5pcyI7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlJiYoYSs9IiBsZW5pcy1hdXRvVG9nZ2xlIiksdGhpcy5pc1N0b3BwZWQmJihhKz0iIGxlbmlzLXN0b3BwZWQiKSx0aGlzLmlzTG9ja2VkJiYoYSs9IiBsZW5pcy1sb2NrZWQiKSx0aGlzLmlzU2Nyb2xsaW5nJiYoYSs9IiBsZW5pcy1zY3JvbGxpbmciKSx0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCImJihhKz0iIGxlbmlzLXNtb290aCIpLGF9dXBkYXRlQ2xhc3NOYW1lKCl7dGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9YCR7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWV9ICR7dGhpcy5jbGFzc05hbWV9YC50cmltKCl9Y2xlYW5VcENsYXNzTmFtZSgpe3RoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lPXRoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoL2xlbmlzKC1cdyspPy9nLCIiKS50cmltKCl9fX0pO3ZhciBmbXQ9TW8oKGY2ZSxoNmUpPT57KGZ1bmN0aW9uKGEsZSl7dHlwZW9mIGY2ZT09Im9iamVjdCImJnR5cGVvZiBoNmU8InUiP2g2ZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKTooYT1hfHxzZWxmLGEuU3dlZXRTY3JvbGw9ZSgpKX0pKGY2ZSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgYT1zKGZ1bmN0aW9uKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbnx8cyhmdW5jdGlvbihRKXtmb3IodmFyIEosWj0xLGdlPWFyZ3VtZW50cy5sZW5ndGg7WjxnZTtaKyspe0o9YXJndW1lbnRzW1pdO2Zvcih2YXIgYWUgaW4gSilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSixhZSkmJihRW2FlXT1KW2FlXSl9cmV0dXJuIFF9LCJfX2Fzc2lnbiIpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwiX19hc3NpZ24iKSxlPSEhKHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuZG9jdW1lbnQmJndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSx0PWU/d2luZG93Lmhpc3RvcnkmJiJwdXNoU3RhdGUiaW4gd2luZG93Lmhpc3RvcnkmJndpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCE9PSJmaWxlOiI6ITEscj0oZnVuY3Rpb24oKXt2YXIgWT0hMTtpZighZSlyZXR1cm4gWTt0cnl7dmFyIFE9d2luZG93LEo9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OnMoZnVuY3Rpb24oKXtZPSEwfSwiZ2V0Iil9KTtRLmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsSiksUS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLEopfWNhdGNoe31yZXR1cm4gWX0pKCksaT1zKGZ1bmN0aW9uKFkpe3JldHVybiB0eXBlb2YgWT09InN0cmluZyJ9LCJpc1N0cmluZyIpLG89cyhmdW5jdGlvbihZKXtyZXR1cm4gdHlwZW9mIFk9PSJmdW5jdGlvbiJ9LCJpc0Z1bmN0aW9uIiksbj1zKGZ1bmN0aW9uKFkpe3JldHVybiBBcnJheS5pc0FycmF5KFkpfSwiaXNBcnJheSIpLGw9cyhmdW5jdGlvbihZKXtyZXR1cm4hbihZKSYmWS1wYXJzZUZsb2F0KFkpKzE+PTB9LCJpc051bWVyaWMiKSxkPXMoZnVuY3Rpb24oWSxRKXtyZXR1cm4gWSYmWS5oYXNPd25Qcm9wZXJ0eShRKX0sImhhc1Byb3AiKSxjPWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCxwPWU/d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLHU9TWF0aC5jb3MsbT1NYXRoLnNpbix2PU1hdGgucG93LHg9TWF0aC5zcXJ0LGI9TWF0aC5QSSxnPXtsaW5lYXI6cyhmdW5jdGlvbihZKXtyZXR1cm4gWX0sImxpbmVhciIpLGVhc2VJblF1YWQ6cyhmdW5jdGlvbihZLFEsSixaLGdlKXtyZXR1cm4gWiooUS89Z2UpKlErSn0sImVhc2VJblF1YWQiKSxlYXNlT3V0UXVhZDpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybi1aKihRLz1nZSkqKFEtMikrSn0sImVhc2VPdXRRdWFkIiksZWFzZUluT3V0UXVhZDpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybihRLz1nZS8yKTwxP1ovMipRKlErSjotWi8yKigtLVEqKFEtMiktMSkrSn0sImVhc2VJbk91dFF1YWQiKSxlYXNlSW5DdWJpYzpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybiBaKihRLz1nZSkqUSpRK0p9LCJlYXNlSW5DdWJpYyIpLGVhc2VPdXRDdWJpYzpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybiBaKigoUT1RL2dlLTEpKlEqUSsxKStKfSwiZWFzZU91dEN1YmljIiksZWFzZUluT3V0Q3ViaWM6cyhmdW5jdGlvbihZLFEsSixaLGdlKXtyZXR1cm4oUS89Z2UvMik8MT9aLzIqUSpRKlErSjpaLzIqKChRLT0yKSpRKlErMikrSn0sImVhc2VJbk91dEN1YmljIiksZWFzZUluUXVhcnQ6cyhmdW5jdGlvbihZLFEsSixaLGdlKXtyZXR1cm4gWiooUS89Z2UpKlEqUSpRK0p9LCJlYXNlSW5RdWFydCIpLGVhc2VPdXRRdWFydDpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybi1aKigoUT1RL2dlLTEpKlEqUSpRLTEpK0p9LCJlYXNlT3V0UXVhcnQiKSxlYXNlSW5PdXRRdWFydDpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybihRLz1nZS8yKTwxP1ovMipRKlEqUSpRK0o6LVovMiooKFEtPTIpKlEqUSpRLTIpK0p9LCJlYXNlSW5PdXRRdWFydCIpLGVhc2VJblF1aW50OnMoZnVuY3Rpb24oWSxRLEosWixnZSl7cmV0dXJuIFoqKFEvPWdlKSpRKlEqUSpRK0p9LCJlYXNlSW5RdWludCIpLGVhc2VPdXRRdWludDpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybiBaKigoUT1RL2dlLTEpKlEqUSpRKlErMSkrSn0sImVhc2VPdXRRdWludCIpLGVhc2VJbk91dFF1aW50OnMoZnVuY3Rpb24oWSxRLEosWixnZSl7cmV0dXJuKFEvPWdlLzIpPDE/Wi8yKlEqUSpRKlEqUStKOlovMiooKFEtPTIpKlEqUSpRKlErMikrSn0sImVhc2VJbk91dFF1aW50IiksZWFzZUluU2luZTpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybi1aKnUoUS9nZSooYi8yKSkrWitKfSwiZWFzZUluU2luZSIpLGVhc2VPdXRTaW5lOnMoZnVuY3Rpb24oWSxRLEosWixnZSl7cmV0dXJuIFoqbShRL2dlKihiLzIpKStKfSwiZWFzZU91dFNpbmUiKSxlYXNlSW5PdXRTaW5lOnMoZnVuY3Rpb24oWSxRLEosWixnZSl7cmV0dXJuLVovMioodShiKlEvZ2UpLTEpK0p9LCJlYXNlSW5PdXRTaW5lIiksZWFzZUluRXhwbzpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybiBRPT09MD9KOloqdigyLDEwKihRL2dlLTEpKStKfSwiZWFzZUluRXhwbyIpLGVhc2VPdXRFeHBvOnMoZnVuY3Rpb24oWSxRLEosWixnZSl7cmV0dXJuIFE9PT1nZT9KK1o6WiooLXYoMiwtMTAqUS9nZSkrMSkrSn0sImVhc2VPdXRFeHBvIiksZWFzZUluT3V0RXhwbzpzKGZ1bmN0aW9uKFksUSxKLFosZ2Upe3JldHVybiBRPT09MD9KOlE9PT1nZT9KK1o6KFEvPWdlLzIpPDE/Wi8yKnYoMiwxMCooUS0xKSkrSjpaLzIqKC12KDIsLTEwKi0tUSkrMikrSn0sImVhc2VJbk91dEV4cG8iKSxlYXNlSW5DaXJjOnMoZnVuY3Rpb24oWSxRLEosWixnZSl7cmV0dXJuLVoqKHgoMS0oUS89Z2UpKlEpLTEpK0p9LCJlYXNlSW5DaXJjIiksZWFzZU91dENpcmM6cyhmdW5jdGlvbihZLFEsSixaLGdlKXtyZXR1cm4gWip4KDEtKFE9US9nZS0xKSpRKStKfSwiZWFzZU91dENpcmMiKSxlYXNlSW5PdXRDaXJjOnMoZnVuY3Rpb24oWSxRLEosWixnZSl7cmV0dXJuKFEvPWdlLzIpPDE/LVovMiooeCgxLVEqUSktMSkrSjpaLzIqKHgoMS0oUS09MikqUSkrMSkrSn0sImVhc2VJbk91dENpcmMiKX0seT1zKGZ1bmN0aW9uKFkpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChZP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoWSk6W10pfSwiJCQiKSxrPXMoZnVuY3Rpb24oWSl7cmV0dXJuIHkoWSkuc2hpZnQoKXx8bnVsbH0sIiQiKSxDPXMoZnVuY3Rpb24oWSl7cmV0dXJuIFkgaW5zdGFuY2VvZiBFbGVtZW50fSwiaXNFbGVtZW50IiksTj1zKGZ1bmN0aW9uKFkpe3JldHVybiBZPT09d2luZG93fSwiaXNXaW5kb3ciKSxfPXMoZnVuY3Rpb24oWSl7cmV0dXJuIFk9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fFk9PT1kb2N1bWVudC5ib2R5fSwiaXNSb290Q29udGFpbmVyIiksej1zKGZ1bmN0aW9uKFksUSl7aWYoQyhRKSlyZXR1cm4gWT09PVE7Zm9yKHZhciBKPXkoUSksWj1KLmxlbmd0aDstLVo+PTAmJkpbWl0hPT1ZOyk7cmV0dXJuIFo+LTF9LCJtYXRjaGVzIiksTz1zKGZ1bmN0aW9uKFkpe3JldHVybiBNYXRoLm1heChZLnNjcm9sbEhlaWdodCxZLmNsaWVudEhlaWdodCxZLm9mZnNldEhlaWdodCl9LCJnZXRIZWlnaHQiKSxUPXMoZnVuY3Rpb24oWSl7cmV0dXJuIE1hdGgubWF4KFkuc2Nyb2xsV2lkdGgsWS5jbGllbnRXaWR0aCxZLm9mZnNldFdpZHRoKX0sImdldFdpZHRoIiksUD1zKGZ1bmN0aW9uKFkpe3JldHVybnt3aWR0aDpUKFkpLGhlaWdodDpPKFkpfX0sImdldFNpemUiKSxCPXMoZnVuY3Rpb24oWSl7dmFyIFE9TihZKXx8XyhZKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOlE/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpZLmNsaWVudFdpZHRoLGhlaWdodDpRP3dpbmRvdy5pbm5lckhlaWdodDpZLmNsaWVudEhlaWdodH0sc2l6ZTpRP3t3aWR0aDpNYXRoLm1heChUKGRvY3VtZW50LmJvZHkpLFQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KE8oZG9jdW1lbnQuYm9keSksTyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06UChZKX19LCJnZXRWaWV3cG9ydEFuZEVsZW1lbnRTaXplcyIpLE09e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LFM9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LEU9cyhmdW5jdGlvbihZLFEpe3JldHVybiBOKFkpP1lbU1tRXV06WVtNW1FdXX0sImdldFNjcm9sbCIpLEE9cyhmdW5jdGlvbihZLFEsSil7aWYoTihZKSl7dmFyIFo9Sj09PSJ5IjtZLnNjcm9sbFRvKFo/WS5wYWdlWE9mZnNldDpRLFo/UTpZLnBhZ2VZT2Zmc2V0KX1lbHNlIFlbTVtKXV09UX0sInNldFNjcm9sbCIpLEY9cyhmdW5jdGlvbihZLFEpe3ZhciBKPVkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoSi53aWR0aHx8Si5oZWlnaHQpe3ZhciBaPXt0b3A6MCxsZWZ0OjB9LGdlPXZvaWQgMDtpZihOKFEpfHxfKFEpKWdlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxaLnRvcD13aW5kb3dbUy55XSxaLmxlZnQ9d2luZG93W1MueF07ZWxzZXtnZT1RO3ZhciBhZT1nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtaLnRvcD1hZS50b3AqLTErZ2VbTS55XSxaLmxlZnQ9YWUubGVmdCotMStnZVtNLnhdfXJldHVybnt0b3A6Si50b3ArWi50b3AtZ2UuY2xpZW50VG9wLGxlZnQ6Si5sZWZ0K1oubGVmdC1nZS5jbGllbnRMZWZ0fX1yZXR1cm4gSn0sImdldE9mZnNldCIpLFc9KGZ1bmN0aW9uKCl7cmV0dXJuIGU/Im9ud2hlZWwiaW4gZG9jdW1lbnQ/IndoZWVsIjoibW91c2V3aGVlbCI6IndoZWVsIn0pKCksaj1zKGZ1bmN0aW9uKFkpe3JldHVybiBZPT09IndoZWVsIj9XOll9LCJldmVudE5hbWUiKSxHPXMoZnVuY3Rpb24oWSxRLEosWixnZSl7Si5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oYWUpe1lbUV0oaihhZSksWixyP3twYXNzaXZlOmdlfTohMSl9KX0sImFwcGx5IiksaGU9cyhmdW5jdGlvbihZLFEsSixaKXtyZXR1cm4gRyhZLCJhZGRFdmVudExpc3RlbmVyIixRLEosWil9LCJhZGRFdmVudCIpLFI9cyhmdW5jdGlvbihZLFEsSixaKXtyZXR1cm4gRyhZLCJyZW1vdmVFdmVudExpc3RlbmVyIixRLEosWil9LCJyZW1vdmVFdmVudCIpLFU9L14oXCt8LSk9KFxkKyg/OlwuXGQrKT8pJC8sbWU9cyhmdW5jdGlvbihZLFEpe3ZhciBKPXt0b3A6MCxsZWZ0OjAscmVsYXRpdmU6ITF9O2lmKGQoWSwidG9wIil8fGQoWSwibGVmdCIpKUo9YSh7fSxKLFkpO2Vsc2UgaWYobihZKSlpZihZLmxlbmd0aD4xKUoudG9wPVlbMF0sSi5sZWZ0PVlbMV07ZWxzZSBpZihZLmxlbmd0aD09PTEpSi50b3A9UT9ZWzBdOjAsSi5sZWZ0PVE/MDpZWzBdO2Vsc2UgcmV0dXJuIG51bGw7ZWxzZSBpZihsKFkpKVE/Si50b3A9WTpKLmxlZnQ9WTtlbHNlIGlmKGkoWSkpe3ZhciBaPVkudHJpbSgpLm1hdGNoKFUpO2lmKCFaKXJldHVybiBudWxsO3ZhciBnZT1aWzFdLGFlPXBhcnNlSW50KFpbMl0sMTApO2dlPT09IisiPyhKLnRvcD1RP2FlOjAsSi5sZWZ0PVE/MDphZSk6KEoudG9wPVE/LWFlOjAsSi5sZWZ0PVE/MDotYWUpLEoucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gSn0sInBhcnNlQ29vcmRpbmF0ZSIpLEk9e3RyaWdnZXI6IltkYXRhLXNjcm9sbF0iLGhlYWRlcjoiW2RhdGEtc2Nyb2xsLWhlYWRlcl0iLGR1cmF0aW9uOjFlMyxlYXNpbmc6ImVhc2VPdXRRdWludCIsb2Zmc2V0OjAsdmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxjYW5jZWxsYWJsZTohMCx1cGRhdGVVUkw6ITEscHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLGJlZm9yZTpudWxsLGFmdGVyOm51bGwsY2FuY2VsOm51bGwsY29tcGxldGU6bnVsbCxzdGVwOm51bGx9LHE9ImNsaWNrIixjZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLHVlPShmdW5jdGlvbigpe2Z1bmN0aW9uIFkoUSxKKXt2YXIgWj10aGlzO3RoaXMuJGVsPW51bGwsdGhpcy5jdHg9eyR0cmlnZ2VyOm51bGwsb3B0czpudWxsLHByb2dyZXNzOiExLHBvczpudWxsLHN0YXJ0UG9zOm51bGwsZWFzaW5nOm51bGwsc3RhcnQ6MCxpZDowLGNhbmNlbDohMSxoYXNoOm51bGx9LHRoaXMubG9vcD1mdW5jdGlvbihhZSl7dmFyIHJlPVoseWU9cmUuJGVsLFY9cmUuY3R4O2lmKFYuc3RhcnR8fChWLnN0YXJ0PWFlKSwhVi5wcm9ncmVzc3x8IXllKXtaLnN0b3AoKTtyZXR1cm59dmFyIEg9Vi5vcHRzLG9lPVYucG9zLHNlPVYuc3RhcnQsdGU9Vi5zdGFydFBvcyx6ZT1WLmVhc2luZyxPZT1ILmR1cmF0aW9uLHFlPXt0b3A6InkiLGxlZnQ6IngifSxkdD1hZS1zZSwkZT1NYXRoLm1pbigxLE1hdGgubWF4KGR0L09lLDApKTtPYmplY3Qua2V5cyhvZSkuZm9yRWFjaChmdW5jdGlvbihDZSl7dmFyIE1lPW9lW0NlXSxkZT10ZVtDZV0sdmU9TWUtZGU7aWYodmUhPT0wKXt2YXIgQWU9emUoJGUsT2UqJGUsMCwxLE9lKTtBKHllLE1hdGgucm91bmQoZGUrdmUqQWUpLHFlW0NlXSl9fSksZHQ8PU9lPyhaLmhvb2soSCwic3RlcCIsJGUpLFYuaWQ9WS5yYWYoWi5sb29wKSk6Wi5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihhZSl7Zm9yKHZhciByZT1aLm9wdHMseWU9YWUudGFyZ2V0O3llJiZ5ZSE9PWRvY3VtZW50O3llPXllLnBhcmVudE5vZGUpaWYoeih5ZSxyZS50cmlnZ2VyKSl7dmFyIFY9SlNPTi5wYXJzZSh5ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsLW9wdGlvbnMiKXx8Int9IiksSD15ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksb2U9SHx8eWUuZ2V0QXR0cmlidXRlKCJocmVmIiksc2U9YSh7fSxyZSxWKSx0ZT1zZS5wcmV2ZW50RGVmYXVsdCx6ZT1zZS5zdG9wUHJvcGFnYXRpb24sT2U9c2UudmVydGljYWwscWU9c2UuaG9yaXpvbnRhbDt0ZSYmYWUucHJldmVudERlZmF1bHQoKSx6ZSYmYWUuc3RvcFByb3BhZ2F0aW9uKCksWi5jdHguJHRyaWdnZXI9eWUscWUmJk9lP1oudG8ob2Usc2UpOk9lP1oudG9Ub3Aob2Usc2UpOnFlJiZaLnRvTGVmdChvZSxzZSk7YnJlYWt9fSx0aGlzLmhhbmRsZVN0b3A9ZnVuY3Rpb24oYWUpe3ZhciByZT1aLmN0eCx5ZT1yZS5vcHRzO3llJiZ5ZS5jYW5jZWxsYWJsZT8ocmUuY2FuY2VsPSEwLFouc3RvcCgpKTphZS5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9YSh7fSxJLFF8fHt9KTt2YXIgZ2U9bnVsbDtlJiYodHlwZW9mIEo9PSJzdHJpbmciP2dlPWsoSik6SiE9bnVsbD9nZT1KOmdlPXdpbmRvdyksdGhpcy4kZWw9Z2UsZ2UmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIHMoWSwiU3dlZXRTY3JvbGwiKSxZLmNyZWF0ZT1mdW5jdGlvbihRLEope3JldHVybiBuZXcgWShRLEopfSxZLnByb3RvdHlwZS50bz1mdW5jdGlvbihRLEope2lmKGUpe3ZhciBaPXRoaXMsZ2U9Wi4kZWwsYWU9Wi5jdHgscmU9Wi5vcHRzLHllPWFlLiR0cmlnZ2VyLFY9YSh7fSxyZSxKfHx7fSksSD1WLm9mZnNldCxvZT1WLnZlcnRpY2FsLHNlPVYuaG9yaXpvbnRhbCx0ZT1DKFYuaGVhZGVyKT9WLmhlYWRlcjprKFYuaGVhZGVyKSx6ZT0vXiMvLE9lPWkoUSkmJnplLnRlc3QoUSk/UTpudWxsO2lmKGFlLm9wdHM9VixhZS5jYW5jZWw9ITEsYWUuaGFzaD1PZSx0aGlzLnN0b3AoKSwhIWdlKXt2YXIgcWU9bWUoSCxvZSksZHQ9bWUoUSxvZSksJGU9e3RvcDowLGxlZnQ6MH07aWYoZHQpaWYoZHQucmVsYXRpdmUpe3ZhciBDZT1FKGdlLG9lPyJ5IjoieCIpOyRlLnRvcD1vZT9DZStkdC50b3A6ZHQudG9wLCRlLmxlZnQ9b2U/ZHQubGVmdDpDZStkdC5sZWZ0fWVsc2UgJGU9ZHQ7ZWxzZSBpZihpKFEpJiZRIT09IiMiKXt2YXIgTWU9ayhRKTtpZighTWUpcmV0dXJuOyRlPUYoTWUsZ2UpfXFlJiYoJGUudG9wKz1xZS50b3AsJGUubGVmdCs9cWUubGVmdCksdGUmJigkZS50b3A9TWF0aC5tYXgoMCwkZS50b3AtUCh0ZSkuaGVpZ2h0KSk7dmFyIGRlPUIoZ2UpLHZlPWRlLnZpZXdwb3J0LEFlPWRlLnNpemU7aWYoJGUudG9wPW9lP01hdGgubWF4KDAsTWF0aC5taW4oQWUuaGVpZ2h0LXZlLmhlaWdodCwkZS50b3ApKTpFKGdlLCJ5IiksJGUubGVmdD1zZT9NYXRoLm1heCgwLE1hdGgubWluKEFlLndpZHRoLXZlLndpZHRoLCRlLmxlZnQpKTpFKGdlLCJ4IiksdGhpcy5ob29rKFYsImJlZm9yZSIsJGUseWUpPT09ITEpe2FlLm9wdHM9bnVsbDtyZXR1cm59YWUucG9zPSRlLHRoaXMuc3RhcnQoViksdGhpcy5iaW5kKCExLCEwKX19fSxZLnByb3RvdHlwZS50b1RvcD1mdW5jdGlvbihRLEope3RoaXMudG8oUSxhKHt9LEp8fHt9LHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExfSkpfSxZLnByb3RvdHlwZS50b0xlZnQ9ZnVuY3Rpb24oUSxKKXt0aGlzLnRvKFEsYSh7fSxKfHx7fSx7dmVydGljYWw6ITEsaG9yaXpvbnRhbDohMH0pKX0sWS5wcm90b3R5cGUudG9FbGVtZW50PWZ1bmN0aW9uKFEsSil7dmFyIFo9dGhpcy4kZWw7IWV8fCFafHx0aGlzLnRvKEYoUSxaKSxKfHx7fSl9LFkucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oUSl7UT09PXZvaWQgMCYmKFE9ITEpO3ZhciBKPXRoaXMsWj1KLiRlbCxnZT1KLmN0eCxhZT1nZS5wb3M7IVp8fCFnZS5wcm9ncmVzc3x8KFkuY2FmKGdlLmlkKSxnZS5wcm9ncmVzcz0hMSxnZS5zdGFydD0wLGdlLmlkPTAsUSYmYWUmJihBKFosYWUubGVmdCwieCIpLEEoWixhZS50b3AsInkiKSksdGhpcy5jb21wbGV0ZSgpKX0sWS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKFEpe2lmKHRoaXMuJGVsKXt2YXIgSj1hKHt9LHRoaXMub3B0cyxRKTt0aGlzLnN0b3AoKSx0aGlzLnVuYmluZCghMCwhMCksdGhpcy5vcHRzPUosdGhpcy5iaW5kKCEwLCExKX19LFkucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLiRlbCYmKHRoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLiRlbD1udWxsKX0sWS5wcm90b3R5cGUub25CZWZvcmU9ZnVuY3Rpb24oUSxKKXtyZXR1cm4hMH0sWS5wcm90b3R5cGUub25TdGVwPWZ1bmN0aW9uKFEpe30sWS5wcm90b3R5cGUub25BZnRlcj1mdW5jdGlvbihRLEope30sWS5wcm90b3R5cGUub25DYW5jZWw9ZnVuY3Rpb24oKXt9LFkucHJvdG90eXBlLm9uQ29tcGxldGU9ZnVuY3Rpb24oUSl7fSxZLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihRKXt2YXIgSj10aGlzLmN0eDtKLm9wdHM9USxKLnByb2dyZXNzPSEwLEouZWFzaW5nPW8oUS5lYXNpbmcpP1EuZWFzaW5nOmdbUS5lYXNpbmddO3ZhciBaPXRoaXMuJGVsLGdlPXt0b3A6RShaLCJ5IiksbGVmdDpFKFosIngiKX07Si5zdGFydFBvcz1nZSxKLmlkPVkucmFmKHRoaXMubG9vcCl9LFkucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIFE9dGhpcyxKPVEuJGVsLFo9US5jdHgsZ2U9Wi5oYXNoLGFlPVouY2FuY2VsLHJlPVoub3B0cyx5ZT1aLnBvcyxWPVouJHRyaWdnZXI7aWYoISghSnx8IXJlKSl7aWYoZ2UhPW51bGwmJmdlIT09d2luZG93LmxvY2F0aW9uLmhhc2gpe3ZhciBIPXJlLnVwZGF0ZVVSTDtlJiZ0JiZIIT09ITEmJndpbmRvdy5oaXN0b3J5W0g9PT0icmVwbGFjZSI/InJlcGxhY2VTdGF0ZSI6InB1c2hTdGF0ZSJdKG51bGwsIiIsZ2UpfXRoaXMudW5iaW5kKCExLCEwKSxaLm9wdHM9bnVsbCxaLiR0cmlnZ2VyPW51bGwsYWU/dGhpcy5ob29rKHJlLCJjYW5jZWwiKTp0aGlzLmhvb2socmUsImFmdGVyIix5ZSxWKSx0aGlzLmhvb2socmUsImNvbXBsZXRlIixhZSl9fSxZLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKFEsSil7Zm9yKHZhciBaPVtdLGdlPTI7Z2U8YXJndW1lbnRzLmxlbmd0aDtnZSsrKVpbZ2UtMl09YXJndW1lbnRzW2dlXTt2YXIgYWUscmU9UVtKXSx5ZSxWO3JldHVybiBvKHJlKSYmKHllPXJlLmFwcGx5KHRoaXMsWi5jb25jYXQoW3RoaXNdKSkpLFY9KGFlPXRoaXMpWyJvbiIrKEpbMF0udG9VcHBlckNhc2UoKStKLnNsaWNlKDEpKV0uYXBwbHkoYWUsWikseWUhPT12b2lkIDA/eWU6Vn0sWS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihRLEope3ZhciBaPXRoaXMsZ2U9Wi4kZWwsYWU9Wi5jdHgub3B0cztnZSYmKFEmJmhlKGdlLHEsdGhpcy5oYW5kbGVDbGljaywhMSksSiYmaGUoZ2UsY2UsdGhpcy5oYW5kbGVTdG9wLGFlP2FlLmNhbmNlbGxhYmxlOiEwKSl9LFkucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbihRLEope3ZhciBaPXRoaXMsZ2U9Wi4kZWwsYWU9Wi5jdHgub3B0cztnZSYmKFEmJlIoZ2UscSx0aGlzLmhhbmRsZUNsaWNrLCExKSxKJiZSKGdlLGNlLHRoaXMuaGFuZGxlU3RvcCxhZT9hZS5jYW5jZWxsYWJsZTohMCkpfSxZLnJhZj1jLFkuY2FmPXAsWX0pKCk7cmV0dXJuIHVlfSl9KTt2YXIgRTgsbkNhLEk4PWYoKCk9PnskNHQoKTtHOSgpO3QwKCk7T2goKTtWaHQoKTtiaSgpO1FodCgpO3AyKCk7bjh0KCk7UmgoKTtqZGUoKTttY2UoKTtESigpO2RYKCk7XzkoKTtMbGUoKTtYWigpO3BtdCgpO0U4PWtvKGZtdCgpLDEpLG5DYT17T2JqZWN0TWFwOl9sLFN0cmluZ21hcDpMOSxGYXN0TWFwOnczfX0pO3ZhciBrcj17fTtsdChrcix7Y29udGFpbmVyQ29udGV4dFN0eWxlczooKT0+ZENhLGNzc0ZvckNvbnN0cmFpbnQ6KCk9PmxDYSxjc3NGb3JDb25zdHJhaW50Q29udGFpbmVyOigpPT5jQ2EsY3NzRm9yQ29udGFpbmVyOigpPT55bXQsY3NzRm9yRGVza3RvcDooKT0+dUNhLGNzc0Zvck5vdGVib29rOigpPT5wQ2EsY3NzRm9yUGhhYmxldDooKT0+aENhLGNzc0ZvclBob25lOigpPT5tQ2EsY3NzRm9yVGFibGV0OigpPT5mQ2EsY3NzRm9yVmlld3BvcnQ6KCk9PnNkLGRlc2t0b3A6KCk9Pm1tdCxub3RlYm9vazooKT0+Z210LHBoYWJsZXQ6KCk9PnZtdCxwaG9uZTooKT0+eG10LHRhYmxldDooKT0+Ym10fSk7dmFyIG1tdCxnbXQsYm10LHZtdCx4bXQsaG10LHNkLHltdCxsQ2EsY0NhLGRDYSx1Q2EscENhLGZDYSxoQ2EsbUNhLG02ZT1mKCgpPT57TjgoKTtnbigpO21tdD0xNjAwLGdtdD0xMjQwLGJtdD0xMDI0LHZtdD02MDAseG10PTQwMCxobXQ9cyhhPT57bGV0IGU9W107cmV0dXJuIGEubWluV2lkdGgmJmUucHVzaChgKG1pbi13aWR0aDogJHthLm1pbldpZHRofXB4KWApLGEubWF4V2lkdGgmJmUucHVzaChgKG1heC13aWR0aDogJHthLm1heFdpZHRofXB4KWApLGUuam9pbigiIGFuZCAiKX0sImJ1aWxkQ29uZGl0aW9uIiksc2Q9cygoYSxlKT0+b2EoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0ICR7ZX0gewogICAgICAke2EuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAke2V9IHsKICAgICAgJHthLmNzc1RleHR9CiAgICB9CiAgYCksImNzc0ZvclZpZXdwb3J0IikseW10PXMoKGEsZSx0KT0+b2EoYAogICAgQGNvbnRhaW5lciAke3R9ICR7ZX0gewogICAgICAke2EuY3NzVGV4dH0KICAgIH0KICBgKSwiY3NzRm9yQ29udGFpbmVyIiksbENhPXMoYT0+ZT0+c2QoZSxobXQoYSkpLCJjc3NGb3JDb25zdHJhaW50IiksY0NhPXMoKGEsZSk9PnQ9PnltdCh0LGhtdChhKSxlKSwiY3NzRm9yQ29uc3RyYWludENvbnRhaW5lciIpLGRDYT1zKGE9PlhgCiAgOmhvc3QgewogICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplOwogICAgY29udGFpbmVyLW5hbWU6ICR7b2EoYSl9OwogIH0KYCwiY29udGFpbmVyQ29udGV4dFN0eWxlcyIpLHVDYT1zKGE9PnNkKGEsYChtaW4td2lkdGg6ICR7bW10fXB4KWApLCJjc3NGb3JEZXNrdG9wIikscENhPXMoYT0+c2QoYSxgKG1heC13aWR0aDogJHtnbXR9cHgpYCksImNzc0Zvck5vdGVib29rIiksZkNhPXMoYT0+c2QoYSxgKG1heC13aWR0aDogJHtibXR9cHgpYCksImNzc0ZvclRhYmxldCIpLGhDYT1zKGE9PnNkKGEsYChtYXgtd2lkdGg6ICR7dm10fXB4KWApLCJjc3NGb3JQaGFibGV0IiksbUNhPXMoYT0+c2QoYSxgKG1heC13aWR0aDogJHt4bXR9cHgpYCksImNzc0ZvclBob25lIil9KTt2YXIgUEosd210PWYoKCk9PntJOCgpO1BKPWNsYXNze3N0YXRpY3tzKHRoaXMsIlNjcm9sbGVyIil9ZG9tdG9vbHNJbnN0YW5jZTtkaXNwb3NlZD0hMTtzY3JvbGxDYWxsYmFja3M9W107bGVuaXNJbnN0YW5jZT1udWxsO2xlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9bnVsbDtuYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkPSExO2hhbmRsZU5hdGl2ZVNjcm9sbD1zKGU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX0sImhhbmRsZU5hdGl2ZVNjcm9sbCIpO2hhbmRsZUxlbmlzU2Nyb2xsPXMoZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfSwiaGFuZGxlTGVuaXNTY3JvbGwiKTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9ZSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgRTguZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KGUsdCl7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudChlLHQpLHQ/LmR1cmF0aW9uJiZhd2FpdCBVdC5kZWxheUZvcih0LmR1cmF0aW9uKX1hc3luYyBkZXRlY3ROYXRpdmVTbW9vdGhTY3JvbGwoKXtsZXQgZT1nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuc2Nyb2xsQmVoYXZpb3IsdD1kb2N1bWVudC5ib2R5P2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuc2Nyb2xsQmVoYXZpb3I6ImF1dG8iO2lmKGU9PT0ic21vb3RoInx8dD09PSJzbW9vdGgiKXJldHVybiEwO2xldCByPWN0LmRlZmVyKCksaT0xMixvPTMsbj0uNzUsbD0xMjAwLGQ9W10sYz1zKHY9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHApLHdpbmRvdy5jbGVhclRpbWVvdXQobSksci5yZXNvbHZlKHYpfSwiZmluYWxpemUiKTtmdW5jdGlvbiBwKHYpe2QucHVzaCh2LmRlbHRhWSksZC5sZW5ndGg+PWkmJnUoKX1zKHAsIm9uV2hlZWwiKTtmdW5jdGlvbiB1KCl7aWYoZC5sZW5ndGg8Mil7YyghMSk7cmV0dXJufWxldCB2PWQubGVuZ3RoLTEseD0wO2ZvcihsZXQgZz0wO2c8djtnKyspTWF0aC5hYnMoZFtnKzFdLWRbZ10pPD1vJiZ4Kys7bGV0IGI9eC92O2MoYj49bil9cyh1LCJhbmFseXplRXZlbnRzIik7bGV0IG09d2luZG93LnNldFRpbWVvdXQoKCk9Pnt1KCl9LGwpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHAse3Bhc3NpdmU6ITB9KSxyLnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwoZSl7aWYodGhpcy5kaXNwb3NlZClyZXR1cm47dGhpcy5sZW5pc0luc3RhbmNlJiZ0aGlzLmRpc2FibGVMZW5pc1Njcm9sbCgpO2xldCB0PW5ldyBnYih7YXV0b1JhZjohMH0pO2lmKGU/LmRpc2FibGVPbk5hdGl2ZVNtb290aFNjcm9sbCYmYXdhaXQgdGhpcy5kZXRlY3ROYXRpdmVTbW9vdGhTY3JvbGwoKSl7dC5kZXN0cm95KCk7cmV0dXJufXRoaXMubGVuaXNJbnN0YW5jZT10LHRoaXMuZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKX1kaXNhYmxlTGVuaXNTY3JvbGwoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJih0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmxlbmlzSW5zdGFuY2UuZGVzdHJveSgpLHRoaXMubGVuaXNJbnN0YW5jZT1udWxsLHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSl9b25TY3JvbGwoZSl7cmV0dXJuIHRoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2goZSksKCk9Pnt0aGlzLnNjcm9sbENhbGxiYWNrcz10aGlzLnNjcm9sbENhbGxiYWNrcy5maWx0ZXIodD0+dCE9PWUpfX1leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl7dGhpcy5zY3JvbGxDYWxsYmFja3MuZm9yRWFjaChlPT57dHJ5e2UoKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJFcnJvciBpbiBzY3JvbGwgY2FsbGJhY2s6Iix0KX19KX1hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3RoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZHx8dGhpcy5kaXNwb3NlZHx8KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKSx0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQ9ITApfWRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl7dGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVOYXRpdmVTY3JvbGwpLHRoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZD0hMSl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmIXRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZSYmKHRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZT10aGlzLmxlbmlzSW5zdGFuY2Uub24oInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCkpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUmJih0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUoKSx0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9bnVsbCl9ZGlzcG9zZSgpe3RoaXMuZGlzcG9zZWR8fCh0aGlzLmRpc3Bvc2VkPSEwLHRoaXMuZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpLHRoaXMubGVuaXNJbnN0YW5jZT8uZGVzdHJveSgpLHRoaXMubGVuaXNJbnN0YW5jZT1udWxsLHRoaXMuZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLnNjcm9sbENhbGxiYWNrcz1bXSx0aGlzLnN3ZWV0U2Nyb2xsZXIuZGVzdHJveSgpKX19fSk7dmFyIEVKLE1tdD1mKCgpPT57TjgoKTtJOCgpO0VKPWNsYXNze3N0YXRpY3tzKHRoaXMsIlRoZW1lTWFuYWdlciIpfWRvbXRvb2xzUmVmO2dvQnJpZ2h0Qm9vbGVhbj0hMTtwcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2g9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIik7dGhlbWVPYnNlcnZhYmxlPW5ldyBfYS5yeGpzLlJlcGxheVN1YmplY3QoMSk7YXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb249bnVsbDtwcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXI9cyhlPT57dGhpcy5nb0JyaWdodEJvb2xlYW49ZS5tYXRjaGVzLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX0sInByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNSZWY9ZSx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXIpLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1hc3luYyBlbmFibGVBdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZSgpe2F3YWl0IHRoaXMuZG9tdG9vbHNSZWYuZG9tUmVhZHkucHJvbWlzZSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9ufHwodGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6cyhlPT57ZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kPWU/IiNmZmYiOiIjMDAwIn0sIm5leHQiKX0pKX11cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpe3RoaXMuZG9tdG9vbHNSZWYuZGlzcG9zZWR8fHRoaXMudGhlbWVPYnNlcnZhYmxlLm5leHQodGhpcy5nb0JyaWdodEJvb2xlYW4pfWdvQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49ITAsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWdvRGFyaygpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSExLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX10b2dnbGVEYXJrQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49IXRoaXMuZ29CcmlnaHRCb29sZWFuLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1kaXNwb3NlKCl7dGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2gucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciksdGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGwsdGhpcy50aGVtZU9ic2VydmFibGUuY29tcGxldGUoKX19fSk7dmFyIE5lLElKLGttdD1mKCgpPT57STgoKTsoZnVuY3Rpb24oYSl7YVthLkJhY2tzcGFjZT04XT0iQmFja3NwYWNlIixhW2EuVGFiPTldPSJUYWIiLGFbYS5FbnRlcj0xM109IkVudGVyIixhW2EuU2hpZnQ9MTZdPSJTaGlmdCIsYVthLkN0cmw9MTddPSJDdHJsIixhW2EuQWx0PTE4XT0iQWx0IixhW2EuUGF1c2VCcmVhaz0xOV09IlBhdXNlQnJlYWsiLGFbYS5DYXBzTG9jaz0yMF09IkNhcHNMb2NrIixhW2EuRXNjYXBlPTI3XT0iRXNjYXBlIixhW2EuU3BhY2U9MzJdPSJTcGFjZSIsYVthLlBhZ2VVcD0zM109IlBhZ2VVcCIsYVthLlBhZ2VEb3duPTM0XT0iUGFnZURvd24iLGFbYS5FbmQ9MzVdPSJFbmQiLGFbYS5Ib21lPTM2XT0iSG9tZSIsYVthLkxlZnRBcnJvdz0zN109IkxlZnRBcnJvdyIsYVthLlVwQXJyb3c9MzhdPSJVcEFycm93IixhW2EuUmlnaHRBcnJvdz0zOV09IlJpZ2h0QXJyb3ciLGFbYS5Eb3duQXJyb3c9NDBdPSJEb3duQXJyb3ciLGFbYS5JbnNlcnQ9NDVdPSJJbnNlcnQiLGFbYS5EZWxldGU9NDZdPSJEZWxldGUiLGFbYS5aZXJvPTQ4XT0iWmVybyIsYVthLkNsb3NlZFBhcmVuPTQ4XT0iQ2xvc2VkUGFyZW4iLGFbYS5PbmU9NDldPSJPbmUiLGFbYS5FeGNsYW1hdGlvbk1hcms9NDldPSJFeGNsYW1hdGlvbk1hcmsiLGFbYS5Ud289NTBdPSJUd28iLGFbYS5BdFNpZ249NTBdPSJBdFNpZ24iLGFbYS5UaHJlZT01MV09IlRocmVlIixhW2EuUG91bmRTaWduPTUxXT0iUG91bmRTaWduIixhW2EuSGFzaD01MV09Ikhhc2giLGFbYS5Gb3VyPTUyXT0iRm91ciIsYVthLkRvbGxhclNpZ249NTJdPSJEb2xsYXJTaWduIixhW2EuRml2ZT01M109IkZpdmUiLGFbYS5QZXJjZW50U2lnbj01M109IlBlcmNlbnRTaWduIixhW2EuU2l4PTU0XT0iU2l4IixhW2EuQ2FyZXQ9NTRdPSJDYXJldCIsYVthLkhhdD01NF09IkhhdCIsYVthLlNldmVuPTU1XT0iU2V2ZW4iLGFbYS5BbXBlcnNhbmQ9NTVdPSJBbXBlcnNhbmQiLGFbYS5FaWdodD01Nl09IkVpZ2h0IixhW2EuU3Rhcj01Nl09IlN0YXIiLGFbYS5Bc3RlcmlrPTU2XT0iQXN0ZXJpayIsYVthLk5pbmU9NTddPSJOaW5lIixhW2EuT3BlblBhcmVuPTU3XT0iT3BlblBhcmVuIixhW2EuQT02NV09IkEiLGFbYS5CPTY2XT0iQiIsYVthLkM9NjddPSJDIixhW2EuRD02OF09IkQiLGFbYS5FPTY5XT0iRSIsYVthLkY9NzBdPSJGIixhW2EuRz03MV09IkciLGFbYS5IPTcyXT0iSCIsYVthLkk9NzNdPSJJIixhW2EuSj03NF09IkoiLGFbYS5LPTc1XT0iSyIsYVthLkw9NzZdPSJMIixhW2EuTT03N109Ik0iLGFbYS5OPTc4XT0iTiIsYVthLk89NzldPSJPIixhW2EuUD04MF09IlAiLGFbYS5RPTgxXT0iUSIsYVthLlI9ODJdPSJSIixhW2EuUz04M109IlMiLGFbYS5UPTg0XT0iVCIsYVthLlU9ODVdPSJVIixhW2EuVj04Nl09IlYiLGFbYS5XPTg3XT0iVyIsYVthLlg9ODhdPSJYIixhW2EuWT04OV09IlkiLGFbYS5aPTkwXT0iWiIsYVthLkxlZnRXaW5kb3dLZXk9OTFdPSJMZWZ0V2luZG93S2V5IixhW2EuUmlnaHRXaW5kb3dLZXk9OTJdPSJSaWdodFdpbmRvd0tleSIsYVthLlNlbGVjdEtleT05M109IlNlbGVjdEtleSIsYVthLk51bXBhZDA9OTZdPSJOdW1wYWQwIixhW2EuTnVtcGFkMT05N109Ik51bXBhZDEiLGFbYS5OdW1wYWQyPTk4XT0iTnVtcGFkMiIsYVthLk51bXBhZDM9OTldPSJOdW1wYWQzIixhW2EuTnVtcGFkND0xMDBdPSJOdW1wYWQ0IixhW2EuTnVtcGFkNT0xMDFdPSJOdW1wYWQ1IixhW2EuTnVtcGFkNj0xMDJdPSJOdW1wYWQ2IixhW2EuTnVtcGFkNz0xMDNdPSJOdW1wYWQ3IixhW2EuTnVtcGFkOD0xMDRdPSJOdW1wYWQ4IixhW2EuTnVtcGFkOT0xMDVdPSJOdW1wYWQ5IixhW2EuTXVsdGlwbHk9MTA2XT0iTXVsdGlwbHkiLGFbYS5BZGQ9MTA3XT0iQWRkIixhW2EuU3VidHJhY3Q9MTA5XT0iU3VidHJhY3QiLGFbYS5EZWNpbWFsUG9pbnQ9MTEwXT0iRGVjaW1hbFBvaW50IixhW2EuRGl2aWRlPTExMV09IkRpdmlkZSIsYVthLkYxPTExMl09IkYxIixhW2EuRjI9MTEzXT0iRjIiLGFbYS5GMz0xMTRdPSJGMyIsYVthLkY0PTExNV09IkY0IixhW2EuRjU9MTE2XT0iRjUiLGFbYS5GNj0xMTddPSJGNiIsYVthLkY3PTExOF09IkY3IixhW2EuRjg9MTE5XT0iRjgiLGFbYS5GOT0xMjBdPSJGOSIsYVthLkYxMD0xMjFdPSJGMTAiLGFbYS5GMTE9MTIyXT0iRjExIixhW2EuRjEyPTEyM109IkYxMiIsYVthLk51bUxvY2s9MTQ0XT0iTnVtTG9jayIsYVthLlNjcm9sbExvY2s9MTQ1XT0iU2Nyb2xsTG9jayIsYVthLlNlbWlDb2xvbj0xODZdPSJTZW1pQ29sb24iLGFbYS5FcXVhbHM9MTg3XT0iRXF1YWxzIixhW2EuQ29tbWE9MTg4XT0iQ29tbWEiLGFbYS5EYXNoPTE4OV09IkRhc2giLGFbYS5QZXJpb2Q9MTkwXT0iUGVyaW9kIixhW2EuVW5kZXJTY29yZT0xODldPSJVbmRlclNjb3JlIixhW2EuUGx1c1NpZ249MTg3XT0iUGx1c1NpZ24iLGFbYS5Gb3J3YXJkU2xhc2g9MTkxXT0iRm9yd2FyZFNsYXNoIixhW2EuVGlsZGU9MTkyXT0iVGlsZGUiLGFbYS5HcmF2ZUFjY2VudD0xOTJdPSJHcmF2ZUFjY2VudCIsYVthLk9wZW5CcmFja2V0PTIxOV09Ik9wZW5CcmFja2V0IixhW2EuQ2xvc2VkQnJhY2tldD0yMjFdPSJDbG9zZWRCcmFja2V0IixhW2EuUXVvdGU9MjIyXT0iUXVvdGUifSkoTmV8fChOZT17fSkpO0lKPWNsYXNze3N0YXRpY3tzKHRoaXMsIktleWJvYXJkIil9ZG9tTm9kZTttYXBDb21ib3NUb0hhbmRsZXJzPW5ldyBNYXA7cHJlc3NlZEtleXM9bmV3IFNldDtsaXN0ZW5pbmc9ITE7Y29uc3RydWN0b3IoZSl7dGhpcy5kb21Ob2RlPWUsdGhpcy5zdGFydExpc3RlbmluZygpfWtleUVudW09TmU7b24oZSl7bGV0IHQ9bmV3IF9hLnJ4anMuU3ViamVjdDtyZXR1cm4gdGhpcy5yZWdpc3RlcktleXMoZSx0KSx0fXRyaWdnZXJLZXlQcmVzcyhlKXtsZXQgdD10aGlzLm5vcm1hbGl6ZUtleXMoZSk7Zm9yKGxldCByIG9mIHQpdGhpcy5wcmVzc2VkS2V5cy5hZGQocik7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyh0aGlzLmNyZWF0ZUtleWJvYXJkRXZlbnQodCkpO2ZvcihsZXQgciBvZiB0KXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHIpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5saXN0ZW5pbmd8fCh0aGlzLmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApLHRoaXMubGlzdGVuaW5nPSEwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5saXN0ZW5pbmcmJih0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApLHRoaXMubGlzdGVuaW5nPSExKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpO2ZvcihsZXQgZSBvZiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMudmFsdWVzKCkpZm9yKGxldCB0IG9mIGUuc3ViamVjdHMpdC5jb21wbGV0ZSgpO3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1kaXNwb3NlKCl7dGhpcy5jbGVhcigpfWhhbmRsZUtleURvd249cyhlPT57bGV0IHQ9dGhpcy5yZXNvbHZlS2V5KGUpO3QhPT1udWxsJiYodGhpcy5wcmVzc2VkS2V5cy5hZGQodCksdGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhlKSl9LCJoYW5kbGVLZXlEb3duIik7Y2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoZSl7dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmZvckVhY2godD0+e2lmKHRoaXMuYXJlQWxsS2V5c1ByZXNzZWQodC5rZXlzKSlmb3IobGV0IHIgb2YgdC5zdWJqZWN0cylyLm5leHQoZSl9KX1oYW5kbGVLZXlVcD1zKGU9PntsZXQgdD10aGlzLnJlc29sdmVLZXkoZSk7dCE9PW51bGwmJnRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHQpfSwiaGFuZGxlS2V5VXAiKTthcmVBbGxLZXlzUHJlc3NlZChlKXtsZXQgdD0hMDtyZXR1cm4gZS5mb3JFYWNoKHI9Pnt0aGlzLnByZXNzZWRLZXlzLmhhcyhyKXx8KHQ9ITEpfSksdH1yZWdpc3RlcktleXMoZSx0KXtsZXQgcj10aGlzLm5vcm1hbGl6ZUtleXMoZSksaT1yLmpvaW4oIisiKSxvPXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5nZXQoaSk7aWYoIW8pe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQoaSx7a2V5czpyLHN1YmplY3RzOlt0XX0pO3JldHVybn1vLnN1YmplY3RzLnB1c2godCl9bm9ybWFsaXplS2V5cyhlKXtyZXR1cm5bLi4ubmV3IFNldChlKV0uc29ydCgodCxyKT0+dC1yKX1yZXNvbHZlS2V5KGUpe3JldHVybiB0aGlzLnJlc29sdmVLZXlGcm9tQ29kZShlLmNvZGUpPz90aGlzLnJlc29sdmVLZXlGcm9tS2V5KGUua2V5KT8/dGhpcy5yZXNvbHZlS2V5RnJvbUtleUNvZGUoZS5rZXlDb2RlKX1yZXNvbHZlS2V5RnJvbUNvZGUoZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5zdGFydHNXaXRoKCJLZXkiKSYmZS5sZW5ndGg9PT00KXJldHVybiBOZVtlLnNsaWNlKDMpXT8/bnVsbDtpZihlLnN0YXJ0c1dpdGgoIkRpZ2l0IikmJmUubGVuZ3RoPT09NilyZXR1cm4gdGhpcy5yZXNvbHZlS2V5RnJvbUtleShlLnNsaWNlKDUpKTtzd2l0Y2goZSl7Y2FzZSJCYWNrc3BhY2UiOnJldHVybiBOZS5CYWNrc3BhY2U7Y2FzZSJUYWIiOnJldHVybiBOZS5UYWI7Y2FzZSJFbnRlciI6Y2FzZSJOdW1wYWRFbnRlciI6cmV0dXJuIE5lLkVudGVyO2Nhc2UiU2hpZnRMZWZ0IjpjYXNlIlNoaWZ0UmlnaHQiOnJldHVybiBOZS5TaGlmdDtjYXNlIkNvbnRyb2xMZWZ0IjpjYXNlIkNvbnRyb2xSaWdodCI6cmV0dXJuIE5lLkN0cmw7Y2FzZSJBbHRMZWZ0IjpjYXNlIkFsdFJpZ2h0IjpyZXR1cm4gTmUuQWx0O2Nhc2UiUGF1c2UiOnJldHVybiBOZS5QYXVzZUJyZWFrO2Nhc2UiQ2Fwc0xvY2siOnJldHVybiBOZS5DYXBzTG9jaztjYXNlIkVzY2FwZSI6cmV0dXJuIE5lLkVzY2FwZTtjYXNlIlNwYWNlIjpyZXR1cm4gTmUuU3BhY2U7Y2FzZSJQYWdlVXAiOnJldHVybiBOZS5QYWdlVXA7Y2FzZSJQYWdlRG93biI6cmV0dXJuIE5lLlBhZ2VEb3duO2Nhc2UiRW5kIjpyZXR1cm4gTmUuRW5kO2Nhc2UiSG9tZSI6cmV0dXJuIE5lLkhvbWU7Y2FzZSJBcnJvd0xlZnQiOnJldHVybiBOZS5MZWZ0QXJyb3c7Y2FzZSJBcnJvd1VwIjpyZXR1cm4gTmUuVXBBcnJvdztjYXNlIkFycm93UmlnaHQiOnJldHVybiBOZS5SaWdodEFycm93O2Nhc2UiQXJyb3dEb3duIjpyZXR1cm4gTmUuRG93bkFycm93O2Nhc2UiSW5zZXJ0IjpyZXR1cm4gTmUuSW5zZXJ0O2Nhc2UiRGVsZXRlIjpyZXR1cm4gTmUuRGVsZXRlO2Nhc2UiTWV0YUxlZnQiOnJldHVybiBOZS5MZWZ0V2luZG93S2V5O2Nhc2UiTWV0YVJpZ2h0IjpyZXR1cm4gTmUuUmlnaHRXaW5kb3dLZXk7Y2FzZSJDb250ZXh0TWVudSI6cmV0dXJuIE5lLlNlbGVjdEtleTtjYXNlIk51bXBhZDAiOnJldHVybiBOZS5OdW1wYWQwO2Nhc2UiTnVtcGFkMSI6cmV0dXJuIE5lLk51bXBhZDE7Y2FzZSJOdW1wYWQyIjpyZXR1cm4gTmUuTnVtcGFkMjtjYXNlIk51bXBhZDMiOnJldHVybiBOZS5OdW1wYWQzO2Nhc2UiTnVtcGFkNCI6cmV0dXJuIE5lLk51bXBhZDQ7Y2FzZSJOdW1wYWQ1IjpyZXR1cm4gTmUuTnVtcGFkNTtjYXNlIk51bXBhZDYiOnJldHVybiBOZS5OdW1wYWQ2O2Nhc2UiTnVtcGFkNyI6cmV0dXJuIE5lLk51bXBhZDc7Y2FzZSJOdW1wYWQ4IjpyZXR1cm4gTmUuTnVtcGFkODtjYXNlIk51bXBhZDkiOnJldHVybiBOZS5OdW1wYWQ5O2Nhc2UiTnVtcGFkTXVsdGlwbHkiOnJldHVybiBOZS5NdWx0aXBseTtjYXNlIk51bXBhZEFkZCI6cmV0dXJuIE5lLkFkZDtjYXNlIk51bXBhZFN1YnRyYWN0IjpyZXR1cm4gTmUuU3VidHJhY3Q7Y2FzZSJOdW1wYWREZWNpbWFsIjpyZXR1cm4gTmUuRGVjaW1hbFBvaW50O2Nhc2UiTnVtcGFkRGl2aWRlIjpyZXR1cm4gTmUuRGl2aWRlO2Nhc2UiRjEiOnJldHVybiBOZS5GMTtjYXNlIkYyIjpyZXR1cm4gTmUuRjI7Y2FzZSJGMyI6cmV0dXJuIE5lLkYzO2Nhc2UiRjQiOnJldHVybiBOZS5GNDtjYXNlIkY1IjpyZXR1cm4gTmUuRjU7Y2FzZSJGNiI6cmV0dXJuIE5lLkY2O2Nhc2UiRjciOnJldHVybiBOZS5GNztjYXNlIkY4IjpyZXR1cm4gTmUuRjg7Y2FzZSJGOSI6cmV0dXJuIE5lLkY5O2Nhc2UiRjEwIjpyZXR1cm4gTmUuRjEwO2Nhc2UiRjExIjpyZXR1cm4gTmUuRjExO2Nhc2UiRjEyIjpyZXR1cm4gTmUuRjEyO2Nhc2UiTnVtTG9jayI6cmV0dXJuIE5lLk51bUxvY2s7Y2FzZSJTY3JvbGxMb2NrIjpyZXR1cm4gTmUuU2Nyb2xsTG9jaztjYXNlIlNlbWljb2xvbiI6cmV0dXJuIE5lLlNlbWlDb2xvbjtjYXNlIkVxdWFsIjpyZXR1cm4gTmUuRXF1YWxzO2Nhc2UiQ29tbWEiOnJldHVybiBOZS5Db21tYTtjYXNlIk1pbnVzIjpyZXR1cm4gTmUuRGFzaDtjYXNlIlBlcmlvZCI6cmV0dXJuIE5lLlBlcmlvZDtjYXNlIlNsYXNoIjpyZXR1cm4gTmUuRm9yd2FyZFNsYXNoO2Nhc2UiQmFja3F1b3RlIjpyZXR1cm4gTmUuVGlsZGU7Y2FzZSJCcmFja2V0TGVmdCI6cmV0dXJuIE5lLk9wZW5CcmFja2V0O2Nhc2UiQnJhY2tldFJpZ2h0IjpyZXR1cm4gTmUuQ2xvc2VkQnJhY2tldDtjYXNlIlF1b3RlIjpyZXR1cm4gTmUuUXVvdGU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19cmVzb2x2ZUtleUZyb21LZXkoZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5sZW5ndGg9PT0xKXtsZXQgdD1lLnRvVXBwZXJDYXNlKCk7aWYodD49IkEiJiZ0PD0iWiIpcmV0dXJuIE5lW3RdPz9udWxsO3N3aXRjaChlKXtjYXNlIjAiOnJldHVybiBOZS5aZXJvO2Nhc2UiMSI6cmV0dXJuIE5lLk9uZTtjYXNlIjIiOnJldHVybiBOZS5Ud287Y2FzZSIzIjpyZXR1cm4gTmUuVGhyZWU7Y2FzZSI0IjpyZXR1cm4gTmUuRm91cjtjYXNlIjUiOnJldHVybiBOZS5GaXZlO2Nhc2UiNiI6cmV0dXJuIE5lLlNpeDtjYXNlIjciOnJldHVybiBOZS5TZXZlbjtjYXNlIjgiOnJldHVybiBOZS5FaWdodDtjYXNlIjkiOnJldHVybiBOZS5OaW5lO2Nhc2UiICI6cmV0dXJuIE5lLlNwYWNlO2Nhc2UiOyI6cmV0dXJuIE5lLlNlbWlDb2xvbjtjYXNlIj0iOnJldHVybiBOZS5FcXVhbHM7Y2FzZSIsIjpyZXR1cm4gTmUuQ29tbWE7Y2FzZSItIjpyZXR1cm4gTmUuRGFzaDtjYXNlIi4iOnJldHVybiBOZS5QZXJpb2Q7Y2FzZSIvIjpyZXR1cm4gTmUuRm9yd2FyZFNsYXNoO2Nhc2UiYCI6cmV0dXJuIE5lLlRpbGRlO2Nhc2UiWyI6cmV0dXJuIE5lLk9wZW5CcmFja2V0O2Nhc2UiXSI6cmV0dXJuIE5lLkNsb3NlZEJyYWNrZXQ7Y2FzZSInIjpyZXR1cm4gTmUuUXVvdGU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19c3dpdGNoKGUpe2Nhc2UiQmFja3NwYWNlIjpyZXR1cm4gTmUuQmFja3NwYWNlO2Nhc2UiVGFiIjpyZXR1cm4gTmUuVGFiO2Nhc2UiRW50ZXIiOnJldHVybiBOZS5FbnRlcjtjYXNlIlNoaWZ0IjpyZXR1cm4gTmUuU2hpZnQ7Y2FzZSJDb250cm9sIjpyZXR1cm4gTmUuQ3RybDtjYXNlIkFsdCI6cmV0dXJuIE5lLkFsdDtjYXNlIlBhdXNlIjpyZXR1cm4gTmUuUGF1c2VCcmVhaztjYXNlIkNhcHNMb2NrIjpyZXR1cm4gTmUuQ2Fwc0xvY2s7Y2FzZSJFc2NhcGUiOnJldHVybiBOZS5Fc2NhcGU7Y2FzZSJQYWdlVXAiOnJldHVybiBOZS5QYWdlVXA7Y2FzZSJQYWdlRG93biI6cmV0dXJuIE5lLlBhZ2VEb3duO2Nhc2UiRW5kIjpyZXR1cm4gTmUuRW5kO2Nhc2UiSG9tZSI6cmV0dXJuIE5lLkhvbWU7Y2FzZSJBcnJvd0xlZnQiOnJldHVybiBOZS5MZWZ0QXJyb3c7Y2FzZSJBcnJvd1VwIjpyZXR1cm4gTmUuVXBBcnJvdztjYXNlIkFycm93UmlnaHQiOnJldHVybiBOZS5SaWdodEFycm93O2Nhc2UiQXJyb3dEb3duIjpyZXR1cm4gTmUuRG93bkFycm93O2Nhc2UiSW5zZXJ0IjpyZXR1cm4gTmUuSW5zZXJ0O2Nhc2UiRGVsZXRlIjpyZXR1cm4gTmUuRGVsZXRlO2Nhc2UiTWV0YSI6cmV0dXJuIE5lLkxlZnRXaW5kb3dLZXk7Y2FzZSJDb250ZXh0TWVudSI6cmV0dXJuIE5lLlNlbGVjdEtleTtjYXNlIk51bUxvY2siOnJldHVybiBOZS5OdW1Mb2NrO2Nhc2UiU2Nyb2xsTG9jayI6cmV0dXJuIE5lLlNjcm9sbExvY2s7ZGVmYXVsdDpyZXR1cm4gbnVsbH19cmVzb2x2ZUtleUZyb21LZXlDb2RlKGUpe3JldHVybiB0eXBlb2YgZSE9Im51bWJlciI/bnVsbDp0eXBlb2YgTmVbZV08InUiP2U6bnVsbH1jcmVhdGVLZXlib2FyZEV2ZW50KGUpe2xldCB0PWVbZS5sZW5ndGgtMV0/P05lLkVudGVyLHI9dGhpcy5nZXRLZXlEZXNjcmlwdG9yKHQpO3JldHVybiBuZXcgS2V5Ym9hcmRFdmVudCgia2V5ZG93biIse2tleTpyLmtleSxjb2RlOnIuY29kZSxjdHJsS2V5OmUuaW5jbHVkZXMoTmUuQ3RybCksc2hpZnRLZXk6ZS5pbmNsdWRlcyhOZS5TaGlmdCksYWx0S2V5OmUuaW5jbHVkZXMoTmUuQWx0KSxtZXRhS2V5OmUuaW5jbHVkZXMoTmUuTGVmdFdpbmRvd0tleSl8fGUuaW5jbHVkZXMoTmUuUmlnaHRXaW5kb3dLZXkpfSl9Z2V0S2V5RGVzY3JpcHRvcihlKXtzd2l0Y2goZSl7Y2FzZSBOZS5DdHJsOnJldHVybntrZXk6IkNvbnRyb2wiLGNvZGU6IkNvbnRyb2xMZWZ0In07Y2FzZSBOZS5TaGlmdDpyZXR1cm57a2V5OiJTaGlmdCIsY29kZToiU2hpZnRMZWZ0In07Y2FzZSBOZS5BbHQ6cmV0dXJue2tleToiQWx0Iixjb2RlOiJBbHRMZWZ0In07Y2FzZSBOZS5FbnRlcjpyZXR1cm57a2V5OiJFbnRlciIsY29kZToiRW50ZXIifTtjYXNlIE5lLlNwYWNlOnJldHVybntrZXk6IiAiLGNvZGU6IlNwYWNlIn07ZGVmYXVsdDp7bGV0IHQ9TmVbZV07aWYodCYmdC5sZW5ndGg9PT0xJiZ0Pj0iQSImJnQ8PSJaIilyZXR1cm57a2V5OnQudG9Mb3dlckNhc2UoKSxjb2RlOmBLZXkke3R9YH07aWYoZT49TmUuWmVybyYmZTw9TmUuTmluZSl7bGV0IHI9U3RyaW5nKGUtTmUuWmVybyk7cmV0dXJue2tleTpyLGNvZGU6YERpZ2l0JHtyfWB9fXJldHVybntrZXk6dD8/IlVuaWRlbnRpZmllZCIsY29kZToiVW5pZGVudGlmaWVkIn19fX19fSk7dmFyICRpLE44PWYoKCk9PntJOCgpO202ZSgpO3dtdCgpO0RKKCk7TW10KCk7a210KCk7JGk9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJEb21Ub29scyIpfXN0YXRpYyBpbml0aWFsaXphdGlvblByb21pc2U9bnVsbDtzdGF0aWMgYXN5bmMgc2V0dXBEb21Ub29scyhlPXt9KXtpZihlLmlnbm9yZUdsb2JhbCl7bGV0IHQ9bmV3IGEoZSk7cmV0dXJuIGF3YWl0IHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlLHR9aWYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMmJiFnbG9iYWxUaGlzLmRlZXNEb21Ub29scy5kaXNwb3NlZClyZXR1cm4gYXdhaXQgZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlLGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2lmKCFhLmluaXRpYWxpemF0aW9uUHJvbWlzZSl7bGV0IHQ9bmV3IGEoZSk7Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9dCxhLmluaXRpYWxpemF0aW9uUHJvbWlzZT10LmluaXRpYWxpemF0aW9uUHJvbWlzZS50aGVuKCgpPT50KS5jYXRjaChyPT57dGhyb3cgZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9PT10JiYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9dm9pZCAwKSxhLmluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsLHJ9KX1yZXR1cm4gYXdhaXQgYS5pbml0aWFsaXphdGlvblByb21pc2V9c3RhdGljIGdldEdsb2JhbERvbVRvb2xzU3luYygpe2xldCBlPWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2lmKCFlfHxlLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcigiWW91IHRyaWVkIHRvIGFjY2VzcyBkb210b29scyBzeW5jaHJvbm91c2x5IHRvbyBlYXJseSIpO3JldHVybiBlfWVsZW1lbnRzPXtoZWFkRWxlbWVudDpudWxsLGJvZHlFbGVtZW50Om51bGx9O3dlYnNldHVwPW5ldyBtYih7bWV0YU9iamVjdDp7dGl0bGU6IiJ9fSk7c21hcnRzdGF0ZT1uZXcgYWQuU21hcnRzdGF0ZTtkb21Ub29sc1N0YXRlUGFydD10aGlzLnNtYXJ0c3RhdGUuZ2V0U3RhdGVQYXJ0KCJkb210b29scyIse3ZpcnR1YWxWaWV3cG9ydDoibmF0aXZlIixqd3Q6IiJ9KTtyb3V0ZXI9bmV3IHRkLlNtYXJ0Um91dGVyKHtkZWJ1ZzohMX0pO2NvbnZlbmllbmNlPXt0eXBlZHJlcXVlc3Q6R3Isc21hcnRkZWxheTpVdCxzbWFydGpzb246JHMsc21hcnR1cmw6eTF9O2RlZXNDb21tcz1uZXcgWjkuRGVlc0NvbW1zO3Njcm9sbGVyPW5ldyBQSih0aGlzKTt0aGVtZU1hbmFnZXI9bmV3IEVKKHRoaXMpO2tleWJvYXJkPW51bGw7ZGlzcG9zZWQ9ITE7ZG9tVG9vbHNSZWFkeT1jdC5kZWZlcigpO2RvbVJlYWR5PWN0LmRlZmVyKCk7Z2xvYmFsU3R5bGVzUmVhZHk9Y3QuZGVmZXIoKTtpbml0aWFsaXphdGlvblByb21pc2U7bWFuYWdlZERvbU5vZGVzPVtdO3JlYWR5U3RhdGVDaGFuZ2VkRnVuYz1zKCgpPT57dGhpcy50cnlNYXJrRG9tUmVhZHkoKX0sInJlYWR5U3RhdGVDaGFuZ2VkRnVuYyIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlPXRoaXMuaW5pdGlhbGl6ZSgpfXJ1bk9uY2VQcm9taXNlTWFwPW5ldyBNYXA7YXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMudHJ5TWFya0RvbVJlYWR5KCksdGhpcy5kb21SZWFkeS5zdGF0dXM9PT0icGVuZGluZyImJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMucmVhZHlTdGF0ZUNoYW5nZWRGdW5jKSx0aGlzLmRvbVRvb2xzUmVhZHkuc3RhdHVzPT09InBlbmRpbmciJiZ0aGlzLmRvbVRvb2xzUmVhZHkucmVzb2x2ZSgpfXRyeU1hcmtEb21SZWFkeSgpe3RoaXMuZGlzcG9zZWR8fHRoaXMuZG9tUmVhZHkuc3RhdHVzIT09InBlbmRpbmcifHxkb2N1bWVudC5yZWFkeVN0YXRlIT09ImludGVyYWN0aXZlIiYmZG9jdW1lbnQucmVhZHlTdGF0ZSE9PSJjb21wbGV0ZSJ8fCFkb2N1bWVudC5oZWFkfHwhZG9jdW1lbnQuYm9keXx8KHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQ9ZG9jdW1lbnQuaGVhZCx0aGlzLmVsZW1lbnRzLmJvZHlFbGVtZW50PWRvY3VtZW50LmJvZHksdGhpcy5rZXlib2FyZHx8KHRoaXMua2V5Ym9hcmQ9bmV3IElKKGRvY3VtZW50LmJvZHkpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5kb21SZWFkeS5yZXNvbHZlKCkpfXRyYWNrTWFuYWdlZERvbU5vZGUoZSl7cmV0dXJuIHRoaXMubWFuYWdlZERvbU5vZGVzLnB1c2goZSksZX1nZXRIZWFkT3JCb2R5RWxlbWVudCgpe2xldCBlPXRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnR8fGRvY3VtZW50LmhlYWR8fHRoaXMuZWxlbWVudHMuYm9keUVsZW1lbnR8fGRvY3VtZW50LmJvZHk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJEb21Ub29scyBjb3VsZCBub3QgZmluZCBhIERPTSB0YXJnZXQgZWxlbWVudCB0byBhdHRhY2ggcmVzb3VyY2VzIHRvIik7cmV0dXJuIGV9YXN5bmMgcnVuT25jZShlLHQpe2xldCByPXRoaXMucnVuT25jZVByb21pc2VNYXAuZ2V0KGUpO3JldHVybiByfHwocj1Qcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jKCk9PmF3YWl0IHQoKSksdGhpcy5ydW5PbmNlUHJvbWlzZU1hcC5zZXQoZSxyKSksYXdhaXQgcn1hc3luYyBzZXRHbG9iYWxTdHlsZXMoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCB0PXRoaXMudHJhY2tNYW5hZ2VkRG9tTm9kZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKTt0LnR5cGU9InRleHQvY3NzIix0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kQ2hpbGQodCl9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCB0PWN0LmRlZmVyKCkscj10aGlzLnRyYWNrTWFuYWdlZERvbU5vZGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikpO3Iuc3JjPWUsci5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e3QucmVzb2x2ZSgpfSksci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt0LnJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIGV4dGVybmFsIHNjcmlwdDogJHtlfWApKX0pLHRoaXMuZ2V0SGVhZE9yQm9keUVsZW1lbnQoKS5hcHBlbmQociksYXdhaXQgdC5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgdD1jdC5kZWZlcigpLHI9dGhpcy50cmFja01hbmFnZWREb21Ob2RlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSk7ci5yZWw9InN0eWxlc2hlZXQiLHIuY3Jvc3NPcmlnaW49ImFub255bW91cyIsci5ocmVmPWUsci5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e3QucmVzb2x2ZSgpfSksci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt0LnJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIGV4dGVybmFsIHN0eWxlc2hlZXQ6ICR7ZX1gKSl9KSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kKHIpLGF3YWl0IHQucHJvbWlzZX1hc3luYyBzZXRXZWJzaXRlSW5mbyhlKXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKGUpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfWRpc3Bvc2UoKXtpZighdGhpcy5kaXNwb3NlZCl7dGhpcy5kaXNwb3NlZD0hMCxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5rZXlib2FyZD8uZGlzcG9zZSgpLHRoaXMua2V5Ym9hcmQ9bnVsbCx0aGlzLnNjcm9sbGVyLmRpc3Bvc2UoKSx0aGlzLnRoZW1lTWFuYWdlci5kaXNwb3NlKCk7Zm9yKGxldCBlIG9mIHRoaXMubWFuYWdlZERvbU5vZGVzKWUucmVtb3ZlKCk7dGhpcy5tYW5hZ2VkRG9tTm9kZXMubGVuZ3RoPTAsZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9PT10aGlzJiYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9dm9pZCAwLGEuaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGwpfX19fSk7dmFyIE5KLFNtdCx6bXQ9ZigoKT0+e044KCk7Z24oKTtOSj0oKCk9PntsZXQgYT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyBPUyBYIik9PT0tMT9YYGAuY3NzVGV4dDoiIjtyZXR1cm4gWGAKICAgIC8qIHdpZHRoICovCiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgd2lkdGg6IDBweDsKICAgIH0KICAgIGJvZHkgewogICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7CiAgICB9CiAgYC5jc3NUZXh0fSkoKSxTbXQ9WGAKICAvKgogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsaWNvbnMvdjQyL2ZsVWhScTZ0elpjbFFFSi1WZGctSXVpYURzTmNJaFE4dFEud29mZjIpCiAgICAgIGZvcm1hdCgnd29mZjInKTsKICB9ICovCgogIC8qIGdsb2JhbCBib2R5IHN0eWxlcyAqLwogIGJvZHkgewogICAgbWFyZ2luOiAwcHg7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIHNjcm9sbCBiYXIgc3R5bGVzICovCiAgJHtvYShOSil9CmAuY3NzVGV4dH0pO3ZhciB0cj17fTtsdCh0cix7c2V0dXA6KCk9PnZDYSxzdGF0aWNTdHlsZXM6KCk9PmdDYSxzdHlsZXM6KCk9PmJDYX0pO3ZhciBnQ2EsYkNhLHZDYSxDbXQ9ZigoKT0+e044KCk7em10KCk7Z24oKTtnQ2E9WGAKICAqIHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICA6aG9zdCB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICB9CgogICR7b2EoTkopfQpgLGJDYT13YAogIDxzdHlsZT4KICAgICogewogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CgogICAgOmhvc3QgewogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgfQoKICAgICR7Tkp9CiAgPC9zdHlsZT4KYCx2Q2E9cyhhc3luYyhhLGU9e30pPT57bGV0IHQ9YXdhaXQgJGkuc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYXdhaXQgdC5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2F3YWl0IHQuc2V0R2xvYmFsU3R5bGVzKFNtdCl9KSx0Lmdsb2JhbFN0eWxlc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmdC5nbG9iYWxTdHlsZXNSZWFkeS5yZXNvbHZlKCksYXdhaXQgdC5nbG9iYWxTdHlsZXNSZWFkeS5wcm9taXNlLHR9LCJzZXR1cCIpfSk7dmFyIFJKPXt9O2x0KFJKLHtjc3NHcmlkQ29sdW1uczooKT0+eENhfSk7dmFyIHhDYSxfbXQ9ZigoKT0+e3hDYT1zKChhLGUpPT57bGV0IHQ9IiI7Zm9yKGxldCByPTA7cjxhO3IrKyl0Kz1gIGNhbGMoKDEwMCUvJHthfSkgLSAoJHtlKihhLTEpfXB4LyR7YX0pKWA7cmV0dXJuIHR9LCJjc3NHcmlkQ29sdW1ucyIpfSk7dmFyIEh0PXt9O2x0KEh0LHtTd2VldFNjcm9sbDooKT0+RTguZGVmYXVsdCxzbWFydGRlbGF5OigpPT5VdCxzbWFydG1hcmtkb3duOigpPT5jYixzbWFydHByb21pc2U6KCk9PmN0LHNtYXJ0cm91dGVyOigpPT50ZCxzbWFydHJ4OigpPT5fYSxzbWFydHN0YXRlOigpPT5hZCxzbWFydHN0cmluZzooKT0+ZHMsc21hcnR1cmw6KCk9PnkxLHR5cGVkcmVxdWVzdDooKT0+R3J9KTt2YXIgVG10PWYoKCk9PntJOCgpfSk7dmFyIEF0PXt9O2x0KEF0LHtEb21Ub29sczooKT0+JGksVHlwZWRSZXF1ZXN0OigpPT5XOSxicmVha3BvaW50czooKT0+a3IsY3NzOigpPT5SSixlbGVtZW50QmFzaWM6KCk9PnRyLHBsdWdpbnM6KCk9Pkh0fSk7dmFyIGVhPWYoKCk9Pntmc3QoKTtDbXQoKTttNmUoKTtfbXQoKTtOOCgpO0c5KCk7REooKTtUbXQoKX0pO3ZhciBnNmUsWjAsYjZlPWYoKCk9PntnNmU9a28oWUcoKSwxKTtwMigpO2duKCk7cHN0KCk7ZWEoKTtaMD17Y3NzOlgsdW5zYWZlQ1NTOm9hLExpdEVsZW1lbnQ6YmwscHJvcGVydHk6JH19KTt2YXIgT0osJG10PWYoKCk9PntnbigpO2I2ZSgpO2VhKCk7T0o9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJDc3NNYW5hZ2VyIil9c3RhdGljIGluc3RhbmNlPW51bGw7c3RhdGljIGdldFNpbmdsZXRvbigpe3JldHVybiBhLmluc3RhbmNlfHwoYS5pbnN0YW5jZT1uZXcgYSksYS5pbnN0YW5jZX1kb210b29sc1Byb21pc2U9JGkuc2V0dXBEb21Ub29scygpO2dvQnJpZ2h0PSExO2JkVmFyVHJpcGxldFN0b3JlPVtdO2NvbnN0cnVjdG9yKCl7dGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBlPT57ZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShhc3luYyB0PT57dGhpcy5nb0JyaWdodD10LGF3YWl0IGUuZG9tUmVhZHkucHJvbWlzZTtmb3IobGV0IHIgb2YgdGhpcy5iZFZhclRyaXBsZXRTdG9yZSlkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KHIuY3NzVmFyTmFtZSx0aGlzLmdvQnJpZ2h0P3IuYnJpZ2h0VmFsdWU6ci5kYXJrVmFsdWUpfSl9KX1nZXQgZGVmYXVsdFN0eWxlcygpe3JldHVybiB0ci5zdGF0aWNTdHlsZXN9Z2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhlKXtyZXR1cm4gZS5pc3x8ZS5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1jc3NGb3JEZXNrdG9wKGUsdCl7cmV0dXJuIHQ/b2Eoa3IuY3NzRm9yQ29udGFpbmVyKGUsYChtaW4td2lkdGg6ICR7a3IuZGVza3RvcH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyh0KSkpOm9hKGtyLmNzc0ZvckRlc2t0b3AoZSkpfWNzc0Zvck5vdGVib29rKGUsdCl7cmV0dXJuIHQ/b2Eoa3IuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7a3Iubm90ZWJvb2t9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3ModCkpKTpvYShrci5jc3NGb3JOb3RlYm9vayhlKSl9Y3NzRm9yVGFibGV0KGUsdCl7cmV0dXJuIHQ/b2Eoa3IuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7a3IudGFibGV0fXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHQpKSk6b2Eoa3IuY3NzRm9yVGFibGV0KGUpKX1jc3NGb3JQaGFibGV0KGUsdCl7cmV0dXJuIHQ/b2Eoa3IuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7a3IucGhhYmxldH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyh0KSkpOm9hKGtyLmNzc0ZvclBoYWJsZXQoZSkpfWNzc0ZvclBob25lKGUsdCl7cmV0dXJuIHQ/b2Eoa3IuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7a3IucGhvbmV9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3ModCkpKTpvYShrci5jc3NGb3JQaG9uZShlKSl9Y3NzRm9yQ29uc3RyYWludChlKXtyZXR1cm4gdD0+b2Eoa3IuY3NzRm9yQ29uc3RyYWludChlKSh0KSl9YmRUaGVtZShlLHQpe2xldCByLGk7JGkuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCk/aT0kaS5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuP2U6dDppPXQ7bGV0IG89dGhpcy5iZFZhclRyaXBsZXRTdG9yZS5maW5kKG49Pm4uZGFya1ZhbHVlPT09dCYmbi5icmlnaHRWYWx1ZT09PWUpO2lmKG8pcj1vLmNzc1Zhck5hbWU7ZWxzZXtsZXQgbj17Y3NzVmFyTmFtZTpgLS0ke2c2ZS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOnR9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChuKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGw9Pnthd2FpdCBsLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShuLmNzc1Zhck5hbWUsaSl9KSxyPW4uY3NzVmFyTmFtZX1yZXR1cm4gWjAudW5zYWZlQ1NTKGB2YXIoJHtyfSwgJHtpfSlgKX1jc3NHcmlkQ29sdW1ucz1zKChlLHQpPT57bGV0IHI9IiI7Zm9yKGxldCBpPTA7aTxlO2krKylyKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHt0KihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIFowLnVuc2FmZUNTUyhyKX0sImNzc0dyaWRDb2x1bW5zIil9fSk7dmFyIHY2ZSx5Q2EseDZlLHdDYSxEbXQsRkosV2wsTUNhLGtDYSxBbXQ9ZigoKT0+e3QxKCk7djZlPVN5bWJvbC5mb3IoIiIpLHlDYT1zKGE9PntpZihhPy5yPT09djZlKXJldHVybiBhPy5fJGxpdFN0YXRpYyR9LCJvIikseDZlPXMoYT0+KHtfJGxpdFN0YXRpYyQ6YSxyOnY2ZX0pLCJzIiksd0NhPXMoKGEsLi4uZSk9Pih7XyRsaXRTdGF0aWMkOmUucmVkdWNlKCh0LHIsaSk9PnQrKG89PntpZihvLl8kbGl0U3RhdGljJCE9PXZvaWQgMClyZXR1cm4gby5fJGxpdFN0YXRpYyQ7dGhyb3cgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnbGl0ZXJhbCcgZnVuY3Rpb24gbXVzdCBiZSBhICdsaXRlcmFsJyByZXN1bHQ6ICR7b30uIFVzZSAndW5zYWZlU3RhdGljJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0CiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gKX0pKHIpK2FbaSsxXSxhWzBdKSxyOnY2ZX0pLCJpIiksRG10PW5ldyBNYXAsRko9cyhhPT4oZSwuLi50KT0+e2xldCByPXQubGVuZ3RoLGksbyxuPVtdLGw9W10sZCxjPTAscD0hMTtmb3IoO2M8cjspe2ZvcihkPWVbY107YzxyJiYobz10W2NdLChpPXlDYShvKSkhPT12b2lkIDApOylkKz1pK2VbKytjXSxwPSEwO2MhPT1yJiZsLnB1c2gobyksbi5wdXNoKGQpLGMrK31pZihjPT09ciYmbi5wdXNoKGVbcl0pLHApe2xldCB1PW4uam9pbigiJCRsaXQkJCIpOyhlPURtdC5nZXQodSkpPT09dm9pZCAwJiYobi5yYXc9bixEbXQuc2V0KHUsZT1uKSksdD1sfXJldHVybiBhKGUsLi4udCl9LCJuIiksV2w9RkoodyksTUNhPUZKKFFpZSksa0NhPUZKKEppZSl9KTt2YXIgUG10PWYoKCk9PntBbXQoKX0pO3ZhciBCMixocyxBbixHbD1mKCgpPT57QjI9e0FUVFJJQlVURToxLENISUxEOjIsUFJPUEVSVFk6MyxCT09MRUFOX0FUVFJJQlVURTo0LEVWRU5UOjUsRUxFTUVOVDo2fSxocz1zKGE9PiguLi5lKT0+KHtfJGxpdERpcmVjdGl2ZSQ6YSx2YWx1ZXM6ZX0pLCJlIiksQW49Y2xhc3N7c3RhdGlje3ModGhpcywiaSIpfWNvbnN0cnVjdG9yKGUpe31nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFUKGUsdCxyKXt0aGlzLl8kQ3Q9ZSx0aGlzLl8kQU09dCx0aGlzLl8kQ2k9cn1fJEFTKGUsdCl7cmV0dXJuIHRoaXMudXBkYXRlKGUsdCl9dXBkYXRlKGUsdCl7cmV0dXJuIHRoaXMucmVuZGVyKC4uLnQpfX19KTt2YXIgUjgsYmIsRW10PWYoKCk9Pnt0MSgpO0dsKCk7Ujg9Y2xhc3MgZXh0ZW5kcyBBbntzdGF0aWN7cyh0aGlzLCJlIil9Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD14cixlLnR5cGUhPT1CMi5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PXhyfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PWxyKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgdD1bZV07cmV0dXJuIHQucmF3PXQsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczp0LHZhbHVlczpbXX19fTtSOC5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIixSOC5yZXN1bHRUeXBlPTE7YmI9aHMoUjgpfSk7dmFyIEltdD1mKCgpPT57RW10KCl9KTt2YXIgeTZlLHc2ZT1mKCgpPT57eTZlPXMoYT0+KGUsdCk9Pnt0IT09dm9pZCAwP3QuYWRkSW5pdGlhbGl6ZXIoKCk9PntjdXN0b21FbGVtZW50cy5kZWZpbmUoYSxlKX0pOmN1c3RvbUVsZW1lbnRzLmRlZmluZShhLGUpfSwidCIpfSk7dmFyIE5tdD1mKCgpPT57dzZlKCl9KTtmdW5jdGlvbiBpZShhKXtyZXR1cm4oZSx0KT0+e2lmKGUuaXM9YSxlLm5hbWUpe2xldCByPVNDYShlLm5hbWUpO3IhPT1hJiZjb25zb2xlLndhcm4oYFtkZWVzLWVsZW1lbnRdIENsYXNzICIke2UubmFtZX0iIGtlYmFiLWNhc2VzIHRvICIke3J9IiBidXQgdGFnIGlzICIke2F9Ii4gQ29udGFpbmVyIHF1ZXJpZXMgdXNlIC5pcyAoIiR7YX0iKS5gKX1yZXR1cm4geTZlKGEpKGUsdCl9fXZhciBTQ2EsUm10PWYoKCk9PntObXQoKTtTQ2E9cyhhPT5hLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSwiY2FtZWxUb0tlYmFiIik7cyhpZSwiY3VzdG9tRWxlbWVudCIpfSk7ZnVuY3Rpb24gSyhhKXtyZXR1cm4gJCh7Li4uYSxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgT210PWYoKCk9PntWWSgpO3MoSywiciIpfSk7ZnVuY3Rpb24gekNhKGEpe3JldHVybihlLHQpPT57bGV0IHI9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTplW3RdO09iamVjdC5hc3NpZ24ocixhKX19dmFyIEZtdD1mKCgpPT57cyh6Q2EsInQiKX0pO3ZhciBQbixPOD1mKCgpPT57UG49cygoYSxlLHQpPT4odC5jb25maWd1cmFibGU9ITAsdC5lbnVtZXJhYmxlPSEwLFJlZmxlY3QuZGVjb3JhdGUmJnR5cGVvZiBlIT0ib2JqZWN0IiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZSx0KSx0KSwiZSIpfSk7ZnVuY3Rpb24gTTZlKGEsZSl7cmV0dXJuKHQscixpKT0+e2xldCBvPXMobj0+bi5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKGEpPz9udWxsLCJvIik7aWYoZSl7bGV0e2dldDpuLHNldDpsfT10eXBlb2Ygcj09Im9iamVjdCI/dDppPz8oKCk9PntsZXQgZD1TeW1ib2woKTtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbZF19LHNldChjKXt0aGlzW2RdPWN9fX0pKCk7cmV0dXJuIFBuKHQscix7Z2V0KCl7bGV0IGQ9bi5jYWxsKHRoaXMpO3JldHVybiBkPT09dm9pZCAwJiYoZD1vKHRoaXMpLChkIT09bnVsbHx8dGhpcy5oYXNVcGRhdGVkKSYmbC5jYWxsKHRoaXMsZCkpLGR9fSl9cmV0dXJuIFBuKHQscix7Z2V0KCl7cmV0dXJuIG8odGhpcyl9fSl9fXZhciBCbXQ9ZigoKT0+e084KCk7cyhNNmUsImUiKX0pO2Z1bmN0aW9uIGs2ZShhKXtyZXR1cm4oZSx0KT0+UG4oZSx0LHtnZXQoKXtyZXR1cm4odGhpcy5yZW5kZXJSb290Pz8oQ0NhPz89ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKSkucXVlcnlTZWxlY3RvckFsbChhKX19KX12YXIgQ0NhLEhtdD1mKCgpPT57TzgoKTtzKGs2ZSwiciIpfSk7ZnVuY3Rpb24gUzZlKGEpe3JldHVybihlLHQpPT5QbihlLHQse2FzeW5jIGdldCgpe3JldHVybiBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihhKT8/bnVsbH19KX12YXIgcW10PWYoKCk9PntPOCgpO3MoUzZlLCJyIil9KTtmdW5jdGlvbiBfQ2EoYSl7cmV0dXJuKGUsdCk9PntsZXR7c2xvdDpyLHNlbGVjdG9yOml9PWE/P3t9LG89InNsb3QiKyhyP2BbbmFtZT0ke3J9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBQbihlLHQse2dldCgpe2xldCBuPXRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihvKSxsPW4/LmFzc2lnbmVkRWxlbWVudHMoYSk/P1tdO3JldHVybiBpPT09dm9pZCAwP2w6bC5maWx0ZXIoZD0+ZC5tYXRjaGVzKGkpKX19KX19dmFyIFZtdD1mKCgpPT57TzgoKTtzKF9DYSwibyIpfSk7ZnVuY3Rpb24gVENhKGEpe3JldHVybihlLHQpPT57bGV0e3Nsb3Q6cn09YT8/e30saT0ic2xvdCIrKHI/YFtuYW1lPSR7cn1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIFBuKGUsdCx7Z2V0KCl7cmV0dXJuIHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihpKT8uYXNzaWduZWROb2RlcyhhKT8/W119fSl9fXZhciBqbXQ9ZigoKT0+e084KCk7cyhUQ2EsIm4iKX0pO3ZhciBVbXQ9ZigoKT0+e3c2ZSgpO1ZZKCk7T210KCk7Rm10KCk7Qm10KCk7SG10KCk7cW10KCk7Vm10KCk7am10KCl9KTt2YXIgV210LEJKLHBlLEdtdD1mKCgpPT57YjZlKCk7Z24oKTtXbXQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEJKPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxwZT0oKCk9PntsZXQgYT1aMC5MaXRFbGVtZW50LGUsdD1bXSxyPVtdLGksbz1bXSxuPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIGF7c3RhdGlje3ModGhpcywiRGVlc0VsZW1lbnQiKX1zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bWjAucHJvcGVydHkoe3R5cGU6Qm9vbGVhbn0pXSxpPVtaMC5wcm9wZXJ0eSgpXSxXbXQodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnb0JyaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhjPT4iZ29CcmlnaHQiaW4gYywiaGFzIiksZ2V0OnMoYz0+Yy5nb0JyaWdodCwiZ2V0Iiksc2V0OnMoKGMscCk9PntjLmdvQnJpZ2h0PXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sdCxyKSxXbXQodGhpcyxudWxsLGkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb210b29scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhjPT4iZG9tdG9vbHMiaW4gYywiaGFzIiksZ2V0OnMoYz0+Yy5kb210b29scywiZ2V0Iiksc2V0OnMoKGMscCk9PntjLmRvbXRvb2xzPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxuKSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZ2V0Q29udGFpbmVyTmFtZSgpe3JldHVybiB0aGlzLmlzfHx0aGlzLm5hbWUucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpfXN0YXRpYyBjc3NGb3JDb25zdHJhaW50KGQpe3JldHVybiBjPT5BdC5icmVha3BvaW50cy5jc3NGb3JDb25zdHJhaW50Q29udGFpbmVyKGQsdGhpcy5nZXRDb250YWluZXJOYW1lKCkpKGMpfSNlPUJKKHRoaXMsdCwhMSk7Z2V0IGdvQnJpZ2h0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGdvQnJpZ2h0KGQpe3RoaXMuI2U9ZH1kb210b29sc1Byb21pc2U9QkoodGhpcyxyKTsjdD1CSih0aGlzLG8sdm9pZCAwKTtnZXQgZG9tdG9vbHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZG9tdG9vbHMoZCl7dGhpcy4jdD1kfXJ4U3Vic2NyaXB0aW9ucz0oQkoodGhpcyxuKSxbXSk7dGhlbWVTdWJzY3JpcHRpb247ZWxlbWVudERvbVJlYWR5RGVmZXJyZWQ9QXQucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtlbGVtZW50RG9tUmVhZHk9dGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5wcm9taXNlO2NvbnN0cnVjdG9yKGQ9e30pe3N1cGVyKCksdGhpcy5kb210b29sc1Byb21pc2U9QXQuZWxlbWVudEJhc2ljLnNldHVwKHRoaXMsZCksdGhpcy5kb210b29sc1Byb21pc2UudGhlbihjPT57dGhpcy5kb210b29scz1jfSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO2xldCBkPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMudGhlbWVTdWJzY3JpcHRpb249ZC50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShjPT57dGhpcy5nb0JyaWdodD1jLHRoaXMudGhlbWVDaGFuZ2VkJiZ0aGlzLnRoZW1lQ2hhbmdlZChjKX0pLHRoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godGhpcy50aGVtZVN1YnNjcmlwdGlvbik7Zm9yKGxldCBjIG9mIHRoaXMuc3RhcnR1cEZ1bmN0aW9ucylhd2FpdCBjKCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVlc0VsZW1lbnRDb25uZWN0ZWQiKSl9Zmlyc3RVcGRhdGVkKGQpe3N1cGVyLmZpcnN0VXBkYXRlZChkKSx0aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGFydHVwRnVuY3Rpb25zPVtdO3JlZ2lzdGVyU3RhcnR1cEZ1bmN0aW9uKGQpe3RoaXMuc3RhcnR1cEZ1bmN0aW9ucy5wdXNoKGQpfWdhcmJhZ2VGdW5jdGlvbnM9W107cmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oZCl7dGhpcy5nYXJiYWdlRnVuY3Rpb25zLnB1c2goZCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO2ZvcihsZXQgZCBvZiB0aGlzLnJ4U3Vic2NyaXB0aW9ucylkLnVuc3Vic2NyaWJlKCk7Zm9yKGxldCBkIG9mIHRoaXMuZ2FyYmFnZUZ1bmN0aW9ucylhd2FpdCBkKCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVlc0VsZW1lbnREaXNjb25uZWN0ZWQiKSl9fX0pKCl9KTtmdW5jdGlvbiBISigpe3JldHVybiBmdW5jdGlvbihhKXtsZXQgZT1hLmlzfHxhLm5hbWUucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpLHQ9YS5uYW1lP0xDYShhLm5hbWUpOm51bGw7aWYodCYmdCE9PWUpe2xldCBvPXMobD0+bCYmbC5jc3NUZXh0JiZsLmNzc1RleHQuaW5jbHVkZXMoYEBjb250YWluZXIgJHt0fWApP29hKGwuY3NzVGV4dC5yZXBsYWNlQWxsKGBAY29udGFpbmVyICR7dH1gLGBAY29udGFpbmVyICR7ZX1gKSk6bCwiZml4U3R5bGUiKSxuPWEuc3R5bGVzO0FycmF5LmlzQXJyYXkobik/YS5zdHlsZXM9bi5tYXAobyk6biYmKGEuc3R5bGVzPW8obikpfWxldCByPWtyLmNvbnRhaW5lckNvbnRleHRTdHlsZXMoZSksaT1hLnN0eWxlcztyZXR1cm4gQXJyYXkuaXNBcnJheShpKT9hLnN0eWxlcz1bLi4uaSxyXTppP2Euc3R5bGVzPVtpLHJdOmEuc3R5bGVzPVtyXSxhfX12YXIgTENhLFltdD1mKCgpPT57Z24oKTtlYSgpO0xDYT1zKGE9PmEucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpLCJjYW1lbFRvS2ViYWIiKTtzKEhKLCJjb250YWluZXJSZXNwb25zaXZlIil9KTt2YXIgJENhLEttdCx6NmUsRENhLEFDYSxQQ2EsRUNhLElDYSxDNmUsWm10LFlsLHcxLE5DYSx2YixfNmUseGIsVDZlLEY4PWYoKCk9Pnt0MSgpOyh7STokQ2F9PWVvZSksS210PXMoYT0+YSwiaSIpLHo2ZT1zKGE9PmE9PT1udWxsfHx0eXBlb2YgYSE9Im9iamVjdCImJnR5cGVvZiBhIT0iZnVuY3Rpb24iLCJuIiksRENhPXtIVE1MOjEsU1ZHOjIsTUFUSE1MOjN9LEFDYT1zKChhLGUpPT5lPT09dm9pZCAwP2E/Ll8kbGl0VHlwZSQhPT12b2lkIDA6YT8uXyRsaXRUeXBlJD09PWUsImwiKSxQQ2E9cyhhPT5hPy5fJGxpdFR5cGUkPy5oIT1udWxsLCJkIiksRUNhPXMoYT0+YT8uXyRsaXREaXJlY3RpdmUkIT09dm9pZCAwLCJjIiksSUNhPXMoYT0+YT8uXyRsaXREaXJlY3RpdmUkLCJmIiksQzZlPXMoYT0+YS5zdHJpbmdzPT09dm9pZCAwLCJyIiksWm10PXMoKCk9PmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpLCJzIiksWWw9cygoYSxlLHQpPT57bGV0IHI9YS5fJEFBLnBhcmVudE5vZGUsaT1lPT09dm9pZCAwP2EuXyRBQjplLl8kQUE7aWYodD09PXZvaWQgMCl7bGV0IG89ci5pbnNlcnRCZWZvcmUoWm10KCksaSksbj1yLmluc2VydEJlZm9yZShabXQoKSxpKTt0PW5ldyAkQ2EobyxuLGEsYS5vcHRpb25zKX1lbHNle2xldCBvPXQuXyRBQi5uZXh0U2libGluZyxuPXQuXyRBTSxsPW4hPT1hO2lmKGwpe2xldCBkO3QuXyRBUT8uKGEpLHQuXyRBTT1hLHQuXyRBUCE9PXZvaWQgMCYmKGQ9YS5fJEFVKSE9PW4uXyRBVSYmdC5fJEFQKGQpfWlmKG8hPT1pfHxsKXtsZXQgZD10Ll8kQUE7Zm9yKDtkIT09bzspe2xldCBjPUttdChkKS5uZXh0U2libGluZztLbXQocikuaW5zZXJ0QmVmb3JlKGQsaSksZD1jfX19cmV0dXJuIHR9LCJ2IiksdzE9cygoYSxlLHQ9YSk9PihhLl8kQUkoZSx0KSxhKSwidSIpLE5DYT17fSx2Yj1zKChhLGU9TkNhKT0+YS5fJEFIPWUsInAiKSxfNmU9cyhhPT5hLl8kQUgsIk0iKSx4Yj1zKGE9PnthLl8kQVIoKSxhLl8kQUEucmVtb3ZlKCl9LCJoIiksVDZlPXMoYT0+e2EuXyRBUigpfSwiaiIpfSk7ZnVuY3Rpb24gUkNhKGEpe3RoaXMuXyRBTiE9PXZvaWQgMD8ocUoodGhpcyksdGhpcy5fJEFNPWEsWG10KHRoaXMpKTp0aGlzLl8kQU09YX1mdW5jdGlvbiBPQ2EoYSxlPSExLHQ9MCl7bGV0IHI9dGhpcy5fJEFILGk9dGhpcy5fJEFOO2lmKGkhPT12b2lkIDAmJmkuc2l6ZSE9PTApaWYoZSlpZihBcnJheS5pc0FycmF5KHIpKWZvcihsZXQgbz10O288ci5sZW5ndGg7bysrKXliKHJbb10sITEpLHFKKHJbb10pO2Vsc2UgciE9bnVsbCYmKHliKHIsITEpLHFKKHIpKTtlbHNlIHliKHRoaXMsYSl9dmFyIHliLHFKLFhtdCxGQ2EsUW8sVko9ZigoKT0+e0Y4KCk7R2woKTtHbCgpO3liPXMoKGEsZSk9PntsZXQgdD1hLl8kQU47aWYodD09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IHIgb2YgdClyLl8kQU8/LihlLCExKSx5YihyLGUpO3JldHVybiEwfSwicyIpLHFKPXMoYT0+e2xldCBlLHQ7ZG97aWYoKGU9YS5fJEFNKT09PXZvaWQgMClicmVhazt0PWUuXyRBTix0LmRlbGV0ZShhKSxhPWV9d2hpbGUodD8uc2l6ZT09PTApfSwibyIpLFhtdD1zKGE9Pntmb3IobGV0IGU7ZT1hLl8kQU07YT1lKXtsZXQgdD1lLl8kQU47aWYodD09PXZvaWQgMCllLl8kQU49dD1uZXcgU2V0O2Vsc2UgaWYodC5oYXMoYSkpYnJlYWs7dC5hZGQoYSksRkNhKGUpfX0sInIiKTtzKFJDYSwiaCIpO3MoT0NhLCJuIik7RkNhPXMoYT0+e2EudHlwZT09QjIuQ0hJTEQmJihhLl8kQVA/Pz1PQ2EsYS5fJEFRPz89UkNhKX0sImMiKSxRbz1jbGFzcyBleHRlbmRzIEFue3N0YXRpY3tzKHRoaXMsImYiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEFOPXZvaWQgMH1fJEFUKGUsdCxyKXtzdXBlci5fJEFUKGUsdCxyKSxYbXQodGhpcyksdGhpcy5pc0Nvbm5lY3RlZD1lLl8kQVV9XyRBTyhlLHQ9ITApe2UhPT10aGlzLmlzQ29ubmVjdGVkJiYodGhpcy5pc0Nvbm5lY3RlZD1lLGU/dGhpcy5yZWNvbm5lY3RlZD8uKCk6dGhpcy5kaXNjb25uZWN0ZWQ/LigpKSx0JiYoeWIodGhpcyxlKSxxSih0aGlzKSl9c2V0VmFsdWUoZSl7aWYoQzZlKHRoaXMuXyRDdCkpdGhpcy5fJEN0Ll8kQUkoZSx0aGlzKTtlbHNle2xldCB0PVsuLi50aGlzLl8kQ3QuXyRBSF07dFt0aGlzLl8kQ2ldPWUsdGhpcy5fJEN0Ll8kQUkodCx0aGlzLDApfX1kaXNjb25uZWN0ZWQoKXt9cmVjb25uZWN0ZWQoKXt9fX0pO3ZhciBqSj1mKCgpPT57VkooKX0pO3ZhciBMNmUsUW10LEJDYSxKbXQ9ZigoKT0+e2duKCk7akooKTtMNmU9Y2xhc3MgZXh0ZW5kcyBRb3tzdGF0aWN7cyh0aGlzLCJSZXNvbHZlRGlyZWN0aXZlIil9cHJvbWlzZTtoYXNQcm9taXNlU2V0dGxlZD0hMTtyZW5kZXIoZSl7cmV0dXJuIHRoaXMucHJvbWlzZSE9PWUmJih0aGlzLnByb21pc2U9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLmhhbmRsZVByb21pc2UoZSkpLGxyfWhhbmRsZVByb21pc2UoZSl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMSxlLnRoZW4odD0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZSh0KSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pLmNhdGNoKHQ9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUodCksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwfXJlY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZHx8dGhpcy5oYW5kbGVQcm9taXNlKHRoaXMucHJvbWlzZSl9fSxRbXQ9aHMoTDZlKSxCQ2E9cyhhPT5RbXQoYSgpKSwicmVzb2x2ZUV4ZWMiKX0pO3ZhciAkNmUsSENhLGU3dD1mKCgpPT57Z24oKTtqSigpO3AyKCk7JDZlPWNsYXNzIGV4dGVuZHMgUW97c3RhdGlje3ModGhpcywiU3Vic2NyaWJlRGlyZWN0aXZlIil9b2JzZXJ2YWJsZTtzdWI9bnVsbDtyZW5kZXIoZSl7cmV0dXJuIHRoaXMub2JzZXJ2YWJsZSE9PWUmJih0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKSx0aGlzLm9ic2VydmFibGU9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLnN1YnNjcmliZShlKSksbHJ9c3Vic2NyaWJlKGUpe3RoaXMuc3ViPWUuc3Vic2NyaWJlKHQ9Pnt0aGlzLnNldFZhbHVlKHQpfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5zdWI/LnVuc3Vic2NyaWJlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLnN1YnNjcmliZSh0aGlzLm9ic2VydmFibGUpfX0sSENhPWhzKCQ2ZSl9KTt2YXIgRDZlLHQ3dCxhN3Q9ZigoKT0+e2duKCk7akooKTtwMigpO0Q2ZT1jbGFzcyBleHRlbmRzIFFve3N0YXRpY3tzKHRoaXMsIlN1YnNjcmliZVdpdGhUZW1wbGF0ZURpcmVjdGl2ZSIpfW9ic2VydmFibGU7dGVtcGxhdGVGbjtzdWI9bnVsbDtyZW5kZXIoZSx0KXtyZXR1cm4odGhpcy5vYnNlcnZhYmxlIT09ZXx8dGhpcy50ZW1wbGF0ZUZuIT09dCkmJih0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKSx0aGlzLm9ic2VydmFibGU9ZSx0aGlzLnRlbXBsYXRlRm49dCx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLnN0YXJ0U3Vic2NyaXB0aW9uKCkpLGxyfXN0YXJ0U3Vic2NyaXB0aW9uKCl7dGhpcy5zdWI9dGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZShlPT57bGV0IHQ9dGhpcy50ZW1wbGF0ZUZuKGUpO3RoaXMuc2V0VmFsdWUodCl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKX1yZWNvbm5lY3RlZCgpe3RoaXMuc3RhcnRTdWJzY3JpcHRpb24oKX19LHQ3dD1ocyhENmUpfSk7dmFyIEE2ZSxpZCxvZCxQNmU9ZigoKT0+e0E2ZT1zKGFzeW5jKGEsZSk9Pntmb3IgYXdhaXQobGV0IHQgb2YgYSlpZihhd2FpdCBlKHQpPT09ITEpcmV0dXJufSwidCIpLGlkPWNsYXNze3N0YXRpY3tzKHRoaXMsInMiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLkc9ZX1kaXNjb25uZWN0KCl7dGhpcy5HPXZvaWQgMH1yZWNvbm5lY3QoZSl7dGhpcy5HPWV9ZGVyZWYoKXtyZXR1cm4gdGhpcy5HfX0sb2Q9Y2xhc3N7c3RhdGlje3ModGhpcywiaSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5ZPXZvaWQgMCx0aGlzLlo9dm9pZCAwfWdldCgpe3JldHVybiB0aGlzLll9cGF1c2UoKXt0aGlzLlk/Pz1uZXcgUHJvbWlzZShlPT50aGlzLlo9ZSl9cmVzdW1lKCl7dGhpcy5aPy4oKSx0aGlzLlk9dGhpcy5aPXZvaWQgMH19fSk7dmFyIHI3dCxzN3QsVUosRTZlLGk3dD1mKCgpPT57dDEoKTtGOCgpO1ZKKCk7UDZlKCk7R2woKTtyN3Q9cyhhPT4hejZlKGEpJiZ0eXBlb2YgYS50aGVuPT0iZnVuY3Rpb24iLCJuIiksczd0PTEwNzM3NDE4MjMsVUo9Y2xhc3MgZXh0ZW5kcyBRb3tzdGF0aWN7cyh0aGlzLCJjIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDd3Q9czd0LHRoaXMuXyRDYnQ9W10sdGhpcy5fJENLPW5ldyBpZCh0aGlzKSx0aGlzLl8kQ1g9bmV3IG9kfXJlbmRlciguLi5lKXtyZXR1cm4gZS5maW5kKHQ9PiFyN3QodCkpPz9scn11cGRhdGUoZSx0KXtsZXQgcj10aGlzLl8kQ2J0LGk9ci5sZW5ndGg7dGhpcy5fJENidD10O2xldCBvPXRoaXMuXyRDSyxuPXRoaXMuXyRDWDt0aGlzLmlzQ29ubmVjdGVkfHx0aGlzLmRpc2Nvbm5lY3RlZCgpO2ZvcihsZXQgbD0wO2w8dC5sZW5ndGgmJiEobD50aGlzLl8kQ3d0KTtsKyspe2xldCBkPXRbbF07aWYoIXI3dChkKSlyZXR1cm4gdGhpcy5fJEN3dD1sLGQ7bDxpJiZkPT09cltsXXx8KHRoaXMuXyRDd3Q9czd0LGk9MCxQcm9taXNlLnJlc29sdmUoZCkudGhlbihhc3luYyBjPT57Zm9yKDtuLmdldCgpOylhd2FpdCBuLmdldCgpO2xldCBwPW8uZGVyZWYoKTtpZihwIT09dm9pZCAwKXtsZXQgdT1wLl8kQ2J0LmluZGV4T2YoZCk7dT4tMSYmdTxwLl8kQ3d0JiYocC5fJEN3dD11LHAuc2V0VmFsdWUoYykpfX0pKX1yZXR1cm4gbHJ9ZGlzY29ubmVjdGVkKCl7dGhpcy5fJENLLmRpc2Nvbm5lY3QoKSx0aGlzLl8kQ1gucGF1c2UoKX1yZWNvbm5lY3RlZCgpe3RoaXMuXyRDSy5yZWNvbm5lY3QodGhpcyksdGhpcy5fJENYLnJlc3VtZSgpfX0sRTZlPWhzKFVKKX0pO3ZhciBvN3Q9ZigoKT0+e2k3dCgpfSk7dmFyIEI4LHFDYSxuN3Q9ZigoKT0+e3QxKCk7VkooKTtQNmUoKTtHbCgpO0I4PWNsYXNzIGV4dGVuZHMgUW97c3RhdGlje3ModGhpcywibyIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQ0s9bmV3IGlkKHRoaXMpLHRoaXMuXyRDWD1uZXcgb2R9cmVuZGVyKGUsdCl7cmV0dXJuIGxyfXVwZGF0ZShlLFt0LHJdKXtpZih0aGlzLmlzQ29ubmVjdGVkfHx0aGlzLmRpc2Nvbm5lY3RlZCgpLHQ9PT10aGlzLl8kQ0opcmV0dXJuIGxyO3RoaXMuXyRDSj10O2xldCBpPTAse18kQ0s6byxfJENYOm59PXRoaXM7cmV0dXJuIEE2ZSh0LGFzeW5jIGw9Pntmb3IoO24uZ2V0KCk7KWF3YWl0IG4uZ2V0KCk7bGV0IGQ9by5kZXJlZigpO2lmKGQhPT12b2lkIDApe2lmKGQuXyRDSiE9PXQpcmV0dXJuITE7ciE9PXZvaWQgMCYmKGw9cihsLGkpKSxkLmNvbW1pdFZhbHVlKGwsaSksaSsrfXJldHVybiEwfSksbHJ9Y29tbWl0VmFsdWUoZSx0KXt0aGlzLnNldFZhbHVlKGUpfWRpc2Nvbm5lY3RlZCgpe3RoaXMuXyRDSy5kaXNjb25uZWN0KCksdGhpcy5fJENYLnBhdXNlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLl8kQ0sucmVjb25uZWN0KHRoaXMpLHRoaXMuXyRDWC5yZXN1bWUoKX19LHFDYT1ocyhCOCl9KTt2YXIgSTZlLGw3dD1mKCgpPT57R2woKTtuN3QoKTtGOCgpO0k2ZT1ocyhjbGFzcyBleHRlbmRzIEI4e2NvbnN0cnVjdG9yKGEpe2lmKHN1cGVyKGEpLGEudHlwZSE9PUIyLkNISUxEKXRocm93IEVycm9yKCJhc3luY0FwcGVuZCBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGV4cHJlc3Npb25zIil9dXBkYXRlKGEsZSl7cmV0dXJuIHRoaXMuXyRDdHQ9YSxzdXBlci51cGRhdGUoYSxlKX1jb21taXRWYWx1ZShhLGUpe2U9PT0wJiZUNmUodGhpcy5fJEN0dCk7bGV0IHQ9WWwodGhpcy5fJEN0dCk7dzEodCxhKX19KX0pO3ZhciBjN3Q9ZigoKT0+e2w3dCgpfSk7dmFyIE42ZSxkN3Q9ZigoKT0+e3QxKCk7R2woKTtGOCgpO042ZT1ocyhjbGFzcyBleHRlbmRzIEFue2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmtleT14cn1yZW5kZXIoYSxlKXtyZXR1cm4gdGhpcy5rZXk9YSxlfXVwZGF0ZShhLFtlLHRdKXtyZXR1cm4gZSE9PXRoaXMua2V5JiYodmIoYSksdGhpcy5rZXk9ZSksdH19KX0pO3ZhciB1N3Q9ZigoKT0+e2Q3dCgpfSk7dmFyIHA3dCxSNmUsZjd0PWYoKCk9Pnt0MSgpO0dsKCk7RjgoKTtwN3Q9cygoYSxlLHQpPT57bGV0IHI9bmV3IE1hcDtmb3IobGV0IGk9ZTtpPD10O2krKylyLnNldChhW2ldLGkpO3JldHVybiByfSwidSIpLFI2ZT1ocyhjbGFzcyBleHRlbmRzIEFue2NvbnN0cnVjdG9yKGEpe2lmKHN1cGVyKGEpLGEudHlwZSE9PUIyLkNISUxEKXRocm93IEVycm9yKCJyZXBlYXQoKSBjYW4gb25seSBiZSB1c2VkIGluIHRleHQgZXhwcmVzc2lvbnMiKX1kdChhLGUsdCl7bGV0IHI7dD09PXZvaWQgMD90PWU6ZSE9PXZvaWQgMCYmKHI9ZSk7bGV0IGk9W10sbz1bXSxuPTA7Zm9yKGxldCBsIG9mIGEpaVtuXT1yP3IobCxuKTpuLG9bbl09dChsLG4pLG4rKztyZXR1cm57dmFsdWVzOm8sa2V5czppfX1yZW5kZXIoYSxlLHQpe3JldHVybiB0aGlzLmR0KGEsZSx0KS52YWx1ZXN9dXBkYXRlKGEsW2UsdCxyXSl7bGV0IGk9XzZlKGEpLHt2YWx1ZXM6byxrZXlzOm59PXRoaXMuZHQoZSx0LHIpO2lmKCFBcnJheS5pc0FycmF5KGkpKXJldHVybiB0aGlzLnV0PW4sbztsZXQgbD10aGlzLnV0Pz89W10sZD1bXSxjLHAsdT0wLG09aS5sZW5ndGgtMSx2PTAseD1vLmxlbmd0aC0xO2Zvcig7dTw9bSYmdjw9eDspaWYoaVt1XT09PW51bGwpdSsrO2Vsc2UgaWYoaVttXT09PW51bGwpbS0tO2Vsc2UgaWYobFt1XT09PW5bdl0pZFt2XT13MShpW3VdLG9bdl0pLHUrKyx2Kys7ZWxzZSBpZihsW21dPT09blt4XSlkW3hdPXcxKGlbbV0sb1t4XSksbS0tLHgtLTtlbHNlIGlmKGxbdV09PT1uW3hdKWRbeF09dzEoaVt1XSxvW3hdKSxZbChhLGRbeCsxXSxpW3VdKSx1KysseC0tO2Vsc2UgaWYobFttXT09PW5bdl0pZFt2XT13MShpW21dLG9bdl0pLFlsKGEsaVt1XSxpW21dKSxtLS0sdisrO2Vsc2UgaWYoYz09PXZvaWQgMCYmKGM9cDd0KG4sdix4KSxwPXA3dChsLHUsbSkpLGMuaGFzKGxbdV0pKWlmKGMuaGFzKGxbbV0pKXtsZXQgYj1wLmdldChuW3ZdKSxnPWIhPT12b2lkIDA/aVtiXTpudWxsO2lmKGc9PT1udWxsKXtsZXQgeT1ZbChhLGlbdV0pO3cxKHksb1t2XSksZFt2XT15fWVsc2UgZFt2XT13MShnLG9bdl0pLFlsKGEsaVt1XSxnKSxpW2JdPW51bGw7disrfWVsc2UgeGIoaVttXSksbS0tO2Vsc2UgeGIoaVt1XSksdSsrO2Zvcig7djw9eDspe2xldCBiPVlsKGEsZFt4KzFdKTt3MShiLG9bdl0pLGRbdisrXT1ifWZvcig7dTw9bTspe2xldCBiPWlbdSsrXTtiIT09bnVsbCYmeGIoYil9cmV0dXJuIHRoaXMudXQ9bix2YihhLGQpLGxyfX0pfSk7dmFyIGg3dD1mKCgpPT57Zjd0KCl9KTt2YXIgSm89e307bHQoSm8se2FzeW5jQXBwZW5kOigpPT5JNmUsa2V5ZWQ6KCk9Pk42ZSxyZXBlYXQ6KCk9PlI2ZSxyZXNvbHZlOigpPT5RbXQscmVzb2x2ZUV4ZWM6KCk9PkJDYSxzdWJzY3JpYmU6KCk9PkhDYSxzdWJzY3JpYmVXaXRoVGVtcGxhdGU6KCk9PnQ3dCx1bnRpbDooKT0+RTZlfSk7dmFyIG03dD1mKCgpPT57Sm10KCk7ZTd0KCk7YTd0KCk7bzd0KCk7Yzd0KCk7dTd0KCk7aDd0KCl9KTt2YXIgbmQ9e307bHQobmQse0RlZXNFbGVtZW50OigpPT5wZSxjb250YWluZXJSZXNwb25zaXZlOigpPT5ISixjc3M6KCk9PlgsY3NzTWFuYWdlcjooKT0+aCxjdXN0b21FbGVtZW50OigpPT5pZSxkaXJlY3RpdmVzOigpPT5Kbyxkb210b29sczooKT0+QXQsaHRtbDooKT0+dyxwcm9wZXJ0eTooKT0+JCxxdWVyeTooKT0+TTZlLHF1ZXJ5QWxsOigpPT5rNmUscXVlcnlBc3luYzooKT0+UzZlLHJlbmRlcjooKT0+WmMsc3RhdGU6KCk9Pkssc3RhdGljOigpPT5XbCx1bnNhZmVDU1M6KCk9Pm9hLHVuc2FmZUhUTUw6KCk9PmJiLHVuc2FmZVN0YXRpYzooKT0+eDZlfSk7dmFyIGgsbGU9ZigoKT0+eyRtdCgpO2duKCk7UG10KCk7SW10KCk7Um10KCk7VW10KCk7ZWEoKTtHbXQoKTtZbXQoKTttN3QoKTtoPU9KLmdldFNpbmdsZXRvbigpfSk7ZnVuY3Rpb24gVkNhKGEsZSl7bGV0IHQ9UHNbYV07cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmZT90W2VdfHwiYXV0byI6dHlwZW9mIHQ9PSJudW1iZXIiP3Q6ImF1dG8ifXZhciBQcyxqQ2EsV0osWHQsR2k9ZigoKT0+e1BzPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07cyhWQ2EsImdldFpJbmRleCIpO2pDYT17ImRlZXMtbW9kYWwiOlBzLm92ZXJsYXkubW9kYWwsImRlZXMtd2luZG93bGF5ZXIiOlBzLm92ZXJsYXkuZHJvcGRvd24sImRlZXMtY29udGV4dG1lbnUiOlBzLm92ZXJsYXkuY29udGV4dE1lbnUsImRlZXMtdG9hc3QiOlBzLm92ZXJsYXkudG9hc3QsImRlZXMtYXBwdWktbWFpbm1lbnUiOlBzLmZpeGVkLmFwcEJhciwiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIjpQcy5maXhlZC5tb2JpbGVOYXYsImRlZXMtc2xhc2gtbWVudSI6UHMud3lzaXd5Z01lbnVzLCJkZWVzLWZvcm1hdHRpbmctbWVudSI6UHMud3lzaXd5Z01lbnVzfSxXSj1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIlpJbmRleFJlZ2lzdHJ5Iil9c3RhdGljIGluc3RhbmNlO2FjdGl2ZUVsZW1lbnRzPW5ldyBTZXQ7ZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcDtjdXJyZW50WkluZGV4PTFlMztjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gYS5pbnN0YW5jZXx8KGEuaW5zdGFuY2U9bmV3IGEpLGEuaW5zdGFuY2V9Z2V0TmV4dFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXgrPTEwLHRoaXMuY3VycmVudFpJbmRleH1yZWdpc3RlcihlLHQpe3RoaXMuYWN0aXZlRWxlbWVudHMuYWRkKGUpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5zZXQoZSx0KX11bnJlZ2lzdGVyKGUpe3RoaXMuYWN0aXZlRWxlbWVudHMuZGVsZXRlKGUpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5kZWxldGUoZSksdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplPT09MCYmKHRoaXMuY3VycmVudFpJbmRleD0xZTMpfWdldEVsZW1lbnRaSW5kZXgoZSl7cmV0dXJuIHRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQoZSl9Z2V0QWN0aXZlQ291bnQoKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplfWdldEN1cnJlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4fWNsZWFyKCl7dGhpcy5hY3RpdmVFbGVtZW50cy5jbGVhcigpLHRoaXMuZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcCx0aGlzLmN1cnJlbnRaSW5kZXg9MWUzfWdldEFjdGl2ZUVsZW1lbnRzSW5PcmRlcigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuYWN0aXZlRWxlbWVudHMpLnNvcnQoKGUsdCk9PntsZXQgcj10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGUpfHwwLGk9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldCh0KXx8MDtyZXR1cm4gci1pfSl9fSxYdD1XSi5nZXRJbnN0YW5jZSgpfSk7dmFyIGVuLE9yLEZyLFBlLFFlPWYoKCk9PntsZSgpO2VuPXtjb2xvcnM6e2xpZ2h0OntiZ1ByaW1hcnk6ImhzbCgwIDAlIDEwMCUpIixiZ1NlY29uZGFyeToiaHNsKDAgMCUgOTglKSIsYmdUZXJ0aWFyeToiaHNsKDAgMCUgOTYlKSIsdGV4dFByaW1hcnk6ImhzbCgwIDAlIDMuOSUpIix0ZXh0U2Vjb25kYXJ5OiJoc2woMCAwJSAyMCUpIix0ZXh0TXV0ZWQ6ImhzbCgwIDAlIDQ1JSkiLHRleHRXYXJtOiIjNzg3MTZjIixib3JkZXJEZWZhdWx0OiJoc2woMCAwJSA4OS44JSkiLGJvcmRlclN1YnRsZToiaHNsKDAgMCUgOTMlKSIsYm9yZGVyU3Ryb25nOiJoc2woMCAwJSA4MCUpIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCIsYmFkZ2VEZWZhdWx0Qmc6IiNmNGY0ZjUiLGJhZGdlRGVmYXVsdEZnOiIjM2YzZjQ2IixiYWRnZVN1Y2Nlc3NCZzoiI2RjZmNlNyIsYmFkZ2VTdWNjZXNzRmc6IiMxNjY1MzQiLGJhZGdlV2FybmluZ0JnOiIjZmVmM2M3IixiYWRnZVdhcm5pbmdGZzoiIzkyNDAwZSIsYmFkZ2VFcnJvckJnOiIjZmVlMmUyIixiYWRnZUVycm9yRmc6IiM5OTFiMWIifSxkYXJrOntiZ1ByaW1hcnk6ImhzbCgwIDAlIDMuOSUpIixiZ1NlY29uZGFyeToiaHNsKDAgMCUgMy45JSkiLGJnVGVydGlhcnk6ImhzbCgwIDAlIDclKSIsdGV4dFByaW1hcnk6ImhzbCgwIDAlIDk4JSkiLHRleHRTZWNvbmRhcnk6ImhzbCgwIDAlIDYzLjklKSIsdGV4dE11dGVkOiJoc2woMCAwJSA1NSUpIix0ZXh0V2FybToiI2I1YTk5YSIsYm9yZGVyRGVmYXVsdDoiaHNsKDAgMCUgMTQuOSUpIixib3JkZXJTdWJ0bGU6ImhzbCgwIDAlIDExJSkiLGJvcmRlclN0cm9uZzoiaHNsKDAgMCUgMjAlKSIsYWNjZW50UHJpbWFyeToiIzNiODJmNiIsYWNjZW50U3VjY2VzczoiIzIyYzU1ZSIsYWNjZW50V2FybmluZzoiI2Y1OWUwYiIsYWNjZW50RXJyb3I6IiNlZjQ0NDQiLGJhZGdlRGVmYXVsdEJnOiIjMjcyNzJhIixiYWRnZURlZmF1bHRGZzoiI2ExYTFhYSIsYmFkZ2VTdWNjZXNzQmc6IiMxNDUzMmQiLGJhZGdlU3VjY2Vzc0ZnOiIjNGFkZTgwIixiYWRnZVdhcm5pbmdCZzoiIzQ1MWEwMyIsYmFkZ2VXYXJuaW5nRmc6IiNmYmJmMjQiLGJhZGdlRXJyb3JCZzoiIzQ1MGEwYSIsYmFkZ2VFcnJvckZnOiIjZjg3MTcxIn19LHNwYWNpbmc6e3hzOiI0cHgiLHNtOiI4cHgiLG1kOiIxMnB4IixsZzoiMTZweCIseGw6IjI0cHgiLCIyeGwiOiIzMnB4IiwiM3hsIjoiNDhweCJ9LHJhZGl1czp7eHM6IjJweCIsc206IjRweCIsbWQ6IjZweCIsbGc6IjhweCIseGw6IjEycHgiLGZ1bGw6Ijk5OXB4In0sc2hhZG93czp7eHM6IjAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpIixzbToiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSIsbWQ6IjAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpIixsZzoiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIn0sdHJhbnNpdGlvbnM6e2Zhc3Q6IjAuMXMiLGRlZmF1bHQ6IjAuMTVzIixzbG93OiIwLjJzIixzbG93ZXI6IjAuM3MifSxjb250cm9sSGVpZ2h0czp7c206IjMycHgiLG1kOiIzNnB4IixsZzoiNDBweCIseGw6IjQ4cHgifX0sT3I9ZW4uY29sb3JzLmxpZ2h0LEZyPWVuLmNvbG9ycy5kYXJrLFBlPVhgCiAgOmhvc3QgewogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBCYWNrZ3JvdW5kIChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYmctcHJpbWFyeTogJHtoLmJkVGhlbWUoT3IuYmdQcmltYXJ5LEZyLmJnUHJpbWFyeSl9OwogICAgLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeTogJHtoLmJkVGhlbWUoT3IuYmdTZWNvbmRhcnksRnIuYmdTZWNvbmRhcnkpfTsKICAgIC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeTogJHtoLmJkVGhlbWUoT3IuYmdUZXJ0aWFyeSxGci5iZ1RlcnRpYXJ5KX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBUZXh0IChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5OiAke2guYmRUaGVtZShPci50ZXh0UHJpbWFyeSxGci50ZXh0UHJpbWFyeSl9OwogICAgLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5OiAke2guYmRUaGVtZShPci50ZXh0U2Vjb25kYXJ5LEZyLnRleHRTZWNvbmRhcnkpfTsKICAgIC0tZGVlcy1jb2xvci10ZXh0LW11dGVkOiAke2guYmRUaGVtZShPci50ZXh0TXV0ZWQsRnIudGV4dE11dGVkKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBCb3JkZXIgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdDogJHtoLmJkVGhlbWUoT3IuYm9yZGVyRGVmYXVsdCxGci5ib3JkZXJEZWZhdWx0KX07CiAgICAtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZTogJHtoLmJkVGhlbWUoT3IuYm9yZGVyU3VidGxlLEZyLmJvcmRlclN1YnRsZSl9OwogICAgLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmc6ICR7aC5iZFRoZW1lKE9yLmJvcmRlclN0cm9uZyxGci5ib3JkZXJTdHJvbmcpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFdhcm0gVGV4dCAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXRleHQtd2FybTogJHtoLmJkVGhlbWUoT3IudGV4dFdhcm0sRnIudGV4dFdhcm0pfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEFjY2VudCAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC1wcmltYXJ5OiAke2guYmRUaGVtZShPci5hY2NlbnRQcmltYXJ5LEZyLmFjY2VudFByaW1hcnkpfTsKICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtc3VjY2VzczogJHtoLmJkVGhlbWUoT3IuYWNjZW50U3VjY2VzcyxGci5hY2NlbnRTdWNjZXNzKX07CiAgICAtLWRlZXMtY29sb3ItYWNjZW50LXdhcm5pbmc6ICR7aC5iZFRoZW1lKE9yLmFjY2VudFdhcm5pbmcsRnIuYWNjZW50V2FybmluZyl9OwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcjogJHtoLmJkVGhlbWUoT3IuYWNjZW50RXJyb3IsRnIuYWNjZW50RXJyb3IpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEJhZGdlIChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1iZzogJHtoLmJkVGhlbWUoT3IuYmFkZ2VEZWZhdWx0QmcsRnIuYmFkZ2VEZWZhdWx0QmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWZnOiAke2guYmRUaGVtZShPci5iYWRnZURlZmF1bHRGZyxGci5iYWRnZURlZmF1bHRGZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtYmc6ICR7aC5iZFRoZW1lKE9yLmJhZGdlU3VjY2Vzc0JnLEZyLmJhZGdlU3VjY2Vzc0JnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1mZzogJHtoLmJkVGhlbWUoT3IuYmFkZ2VTdWNjZXNzRmcsRnIuYmFkZ2VTdWNjZXNzRmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWJnOiAke2guYmRUaGVtZShPci5iYWRnZVdhcm5pbmdCZyxGci5iYWRnZVdhcm5pbmdCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctZmc6ICR7aC5iZFRoZW1lKE9yLmJhZGdlV2FybmluZ0ZnLEZyLmJhZGdlV2FybmluZ0ZnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItYmc6ICR7aC5iZFRoZW1lKE9yLmJhZGdlRXJyb3JCZyxGci5iYWRnZUVycm9yQmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1mZzogJHtoLmJkVGhlbWUoT3IuYmFkZ2VFcnJvckZnLEZyLmJhZGdlRXJyb3JGZyl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgSW50ZXJhY3RpdmUgU3RhdGVzCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgIC0tZGVlcy1jb2xvci1hY3RpdmU6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgIC0tZGVlcy1jb2xvci1wcmVzc2VkOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAtLWRlZXMtY29sb3Itcm93LWhvdmVyOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEZvY3VzIFJpbmcKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1mb2N1cy1yaW5nOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuNCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC40KSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFRvb2x0aXAgKGludmVydGVkIGNvbnRyYXN0KQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmc6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgIC0tZGVlcy1jb2xvci10b29sdGlwLWZnOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBMaW5rCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItbGluazogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgLS1kZWVzLWNvbG9yLWxpbmstaG92ZXI6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzkzYmJmZCIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIENvZGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1jb2RlLWJnOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgIC0tZGVlcy1jb2xvci1jb2RlLWJsb2NrLWJnOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBTZWxlY3Rpb24KICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1zZWxlY3Rpb246ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgU2Nyb2xsYmFyCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjI1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogU3BhY2luZyBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXNwYWNpbmcteHM6IDRweDsKICAgIC0tZGVlcy1zcGFjaW5nLXNtOiA4cHg7CiAgICAtLWRlZXMtc3BhY2luZy1tZDogMTJweDsKICAgIC0tZGVlcy1zcGFjaW5nLWxnOiAxNnB4OwogICAgLS1kZWVzLXNwYWNpbmcteGw6IDI0cHg7CiAgICAtLWRlZXMtc3BhY2luZy0yeGw6IDMycHg7CiAgICAtLWRlZXMtc3BhY2luZy0zeGw6IDQ4cHg7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQm9yZGVyIFJhZGl1cyBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXJhZGl1cy14czogMnB4OwogICAgLS1kZWVzLXJhZGl1cy1zbTogNHB4OwogICAgLS1kZWVzLXJhZGl1cy1tZDogNnB4OwogICAgLS1kZWVzLXJhZGl1cy1sZzogOHB4OwogICAgLS1kZWVzLXJhZGl1cy14bDogMTJweDsKICAgIC0tZGVlcy1yYWRpdXMtZnVsbDogOTk5cHg7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogU2hhZG93IEVsZXZhdGlvbiBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXNoYWRvdy14czogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7CiAgICAtLWRlZXMtc2hhZG93LXNtOiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgLS1kZWVzLXNoYWRvdy1tZDogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAtLWRlZXMtc2hhZG93LWxnOiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogVHJhbnNpdGlvbiBEdXJhdGlvbiBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXRyYW5zaXRpb24tZmFzdDogMC4xczsKICAgIC0tZGVlcy10cmFuc2l0aW9uLWRlZmF1bHQ6IDAuMTVzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvdzogMC4yczsKICAgIC0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjogMC4zczsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb250cm9sIEhlaWdodCBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtOiAzMnB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kOiAzNnB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LWxnOiA0MHB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsOiA0OHB4OwogIH0KYH0pO3ZhciBXcz1mKCgpPT57YmkoKTskbigpfSk7dmFyIGc3dCxiN3Q9ZigoKT0+e2xlKCk7V3MoKTtYcigpO2c3dD1zKCgpPT53YAo8c3R5bGU+CiAgLndpdGhNYXJnaW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IDIwcHg7CiAgfQogIC5kZW1vLWNvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMjBweDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBtaW4taGVpZ2h0OiA0MDBweDsKICB9CiAgLmRlbW8tYXJlYSB7CiAgICBwYWRkaW5nOiA0MHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgfQogIC5kZW1vLWFyZWE6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAyKTsKICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJCYXNpYyBDb250ZXh0IE1lbnUgd2l0aCBOZXN0ZWQgU3VibWVudXMiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHthPT57dGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYSxbe25hbWU6IkZpbGUiLGljb25OYW1lOiJmaWxlVGV4dCIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXciLGljb25OYW1lOiJmaWxlUGx1cyIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtPIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBmaWxlIiksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6InNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhwb3J0IGFzIFBERiIsaWNvbk5hbWU6ImRvd25sb2FkIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IFBERiIpLCJhY3Rpb24iKX0se25hbWU6IkV4cG9ydCBhcyBIVE1MIixpY29uTmFtZToiY29kZSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBIVE1MIiksImFjdGlvbiIpfV19LHtuYW1lOiJFZGl0IixpY29uTmFtZToiZWRpdDMiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiQ3V0IixpY29uTmFtZToic2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpLCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5IiksImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLGljb25OYW1lOiJzZWFyY2giLHNob3J0Y3V0OiJDbWQrRiIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZpbmQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToicmVwZWF0IixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBsYWNlIiksImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixpY29uTmFtZToiZXllIixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ilpvb20gSW4iLGljb25OYW1lOiJ6b29tSW4iLHNob3J0Y3V0OiJDbWQrKyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIE91dCIsaWNvbk5hbWU6Inpvb21PdXQiLHNob3J0Y3V0OiJDbWQrLSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gb3V0IiksImFjdGlvbiIpfSx7bmFtZToiUmVzZXQgWm9vbSIsaWNvbk5hbWU6Im1heGltaXplMiIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiUmVzZXQgem9vbSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGdWxsIFNjcmVlbiIsaWNvbk5hbWU6Im1heGltaXplIixzaG9ydGN1dDoiRjExIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiRnVsbCBzY3JlZW4iKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKSwiYWN0aW9uIil9LHtuYW1lOiJIZWxwIixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV0pfX0+CiAgICAgIDxoMz5SaWdodC1jbGljayBhbnl3aGVyZSBpbiB0aGlzIGFyZWE8L2gzPgogICAgICA8cD5BIGNvbnRleHQgbWVudSB3aXRoIG5lc3RlZCBzdWJtZW51cyB3aWxsIGFwcGVhcjwvcD4KICAgIDwvZGl2PgogIDwvZGVlcy1wYW5lbD4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJDb21wb25lbnQtU3BlY2lmaWMgQ29udGV4dCBNZW51Ij4KICAgIDxkZWVzLWJ1dHRvbiBzdHlsZT0ibWFyZ2luOiAyMHB4OyIgQGNvbnRleHRtZW51PSR7YT0+e3RhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGEsW3tuYW1lOiJCdXR0b24gQWN0aW9ucyIsaWNvbk5hbWU6Im1vdXNlUG9pbnRlciIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJDbGljayIsaWNvbk5hbWU6Im1vdXNlIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiQ2xpY2sgYWN0aW9uIiksImFjdGlvbiIpfSx7bmFtZToiRG91YmxlIENsaWNrIixpY29uTmFtZToiemFwIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiRG91YmxlIGNsaWNrIiksImFjdGlvbiIpfSx7bmFtZToiTG9uZyBQcmVzcyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiTG9uZyBwcmVzcyIpLCJhY3Rpb24iKX1dfSx7bmFtZToiQnV0dG9uIFN0YXRlIixpY29uTmFtZToidG9nZ2xlTGVmdCIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJFbmFibGUiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkVuYWJsZSIpLCJhY3Rpb24iKX0se25hbWU6IkRpc2FibGUiLGljb25OYW1lOiJ4Q2lyY2xlIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiRGlzYWJsZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaG93IixpY29uTmFtZToiZXllIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiU2hvdyIpLCJhY3Rpb24iKX0se25hbWU6IkhpZGUiLGljb25OYW1lOiJleWVPZmYiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJIaWRlIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiRGlzYWJsZWQgQWN0aW9uIixpY29uTmFtZToiYmFuIixkaXNhYmxlZDohMCxhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiVGhpcyBzaG91bGQgbm90IHJ1biIpLCJhY3Rpb24iKX0se25hbWU6IlByb3BlcnRpZXMiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkJ1dHRvbiBwcm9wZXJ0aWVzIiksImFjdGlvbiIpfV0pfX0+UmlnaHQtY2xpY2sgb24gdGhpcyBidXR0b248L2RlZXMtYnV0dG9uPgogIDwvZGVlcy1wYW5lbD4KCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iQWR2YW5jZWQgQ29udGV4dCBNZW51IEV4YW1wbGUiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHthPT57dGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYSxbe25hbWU6IkZvcm1hdCIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiQm9sZCIsaWNvbk5hbWU6ImJvbGQiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkJvbGQiKSwiYWN0aW9uIil9LHtuYW1lOiJJdGFsaWMiLGljb25OYW1lOiJpdGFsaWMiLHNob3J0Y3V0OiJDbWQrSSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkl0YWxpYyIpLCJhY3Rpb24iKX0se25hbWU6IlVuZGVybGluZSIsaWNvbk5hbWU6InVuZGVybGluZSIsc2hvcnRjdXQ6IkNtZCtVIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiVW5kZXJsaW5lIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZvbnQgU2l6ZSIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IHNpemUgbWVudSIpLCJhY3Rpb24iKX0se25hbWU6IkZvbnQgQ29sb3IiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBjb2xvciBtZW51IiksImFjdGlvbiIpfV19LHtuYW1lOiJUcmFuc2Zvcm0iLGljb25OYW1lOiJzaHVmZmxlIixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRvIFVwcGVyY2FzZSIsaWNvbk5hbWU6ImFycm93VXAiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVcHBlcmNhc2UiKSwiYWN0aW9uIil9LHtuYW1lOiJUbyBMb3dlcmNhc2UiLGljb25OYW1lOiJhcnJvd0Rvd24iLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb3dlcmNhc2UiKSwiYWN0aW9uIil9LHtuYW1lOiJDYXBpdGFsaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNhcGl0YWxpemUiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEZWxldGUiKSwiYWN0aW9uIil9XSl9fT4KICAgICAgPGgzPkFkdmFuY2VkIE5lc3RlZCBNZW51IEV4YW1wbGU8L2gzPgogICAgICA8cD5UaGlzIHNob3dzIGRlZXBseSBuZXN0ZWQgc3VibWVudXMgYW5kIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIAogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IlN0YXRpYyBDb250ZXh0IE1lbnUgKEFsd2F5cyBWaXNpYmxlKSI+CiAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICBjbGFzcz0id2l0aE1hcmdpbiIKICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlciIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLHNob3J0Y3V0OiJDbWQrU2hpZnQrTiIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBwcm9qZWN0IiksImFjdGlvbiIpfSx7bmFtZToiT3BlbiBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtPIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBwcm9qZWN0IiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlByb2plY3QgQWxwaGEiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEFscGhhIiksImFjdGlvbiIpfSx7bmFtZToiUHJvamVjdCBCZXRhIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBCZXRhIiksImFjdGlvbiIpfSx7bmFtZToiUHJvamVjdCBHYW1tYSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gR2FtbWEiKSwiYWN0aW9uIil9XX1dfSx7bmFtZToiVG9vbHMiLGljb25OYW1lOiJ0b29sIixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRlcm1pbmFsIixpY29uTmFtZToidGVybWluYWwiLHNob3J0Y3V0OiJDbWQrVCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRlcm1pbmFsIiksImFjdGlvbiIpfSx7bmFtZToiQ29uc29sZSIsaWNvbk5hbWU6Im1vbml0b3IiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvbnNvbGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXh0ZW5zaW9ucyIsaWNvbk5hbWU6InBhY2thZ2UiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHRlbnNpb25zIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJzbGlkZXJzIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiUHJlZmVyZW5jZXMiKSwiYWN0aW9uIil9XX0KICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgPC9kZWVzLXBhbmVsPgo8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB3YixLbCxHcyxNMT1mKCgpPT57bGUoKTtHaSgpO3diPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxLbD1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sR3M9KCgpPT57bGV0IGE9W2llKCJkZWVzLXdpbmRvd2xheWVyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNXaW5kb3dMYXllciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0sZD1bSygpXSx1PVtLKCldLHg9WyQoe3R5cGU6Qm9vbGVhbn0pXSx3Yih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+Im9wdGlvbnMiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5vcHRpb25zLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0Mub3B0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG4sbCksd2IodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrZHJvcFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iYmFja2Ryb3BaSW5kZXgiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5iYWNrZHJvcFpJbmRleCwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmJhY2tkcm9wWkluZGV4PU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYyxwKSx3Yih0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImNvbnRlbnRaSW5kZXgiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5jb250ZW50WkluZGV4LCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MuY29udGVudFpJbmRleD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sdiksd2IodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJ2aXNpYmxlImluIEMsImhhcyIpLGdldDpzKEM9PkMudmlzaWJsZSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnZpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLHdiKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCkseT1yPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89cygoKT0+d2A8ZGVlcy13aW5kb3dsYXllcj48L2RlZXMtd2luZG93bGF5ZXI+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGspe2xldCBDPUF0LkRvbVRvb2xzLmdldEdsb2JhbERvbVRvb2xzU3luYygpLE49bmV3IHk7cmV0dXJuIE4ub3B0aW9ucz17Li4uTi5vcHRpb25zLC4uLmt9LGRvY3VtZW50LmJvZHkuYXBwZW5kKE4pLGF3YWl0IEMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxOLnNob3coKSxOfSNlPUtsKHRoaXMsbix7Ymx1cjohMX0pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoayl7dGhpcy4jZT1rfSN0PShLbCh0aGlzLGwpLEtsKHRoaXMsYywxZTMpKTtnZXQgYmFja2Ryb3BaSW5kZXgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja2Ryb3BaSW5kZXgoayl7dGhpcy4jdD1rfSNhPShLbCh0aGlzLHApLEtsKHRoaXMsbSwxMDAxKSk7Z2V0IGNvbnRlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY29udGVudFpJbmRleChrKXt0aGlzLiNhPWt9I3I9KEtsKHRoaXMsdiksS2wodGhpcyxiLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmlzaWJsZShrKXt0aGlzLiNyPWt9Y29uc3RydWN0b3IoKXtzdXBlcigpLEtsKHRoaXMsZyksQXQuZWxlbWVudEJhc2ljLnNldHVwKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7QXQuZWxlbWVudEJhc2ljLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgIC53aW5kb3dPdmVybGF5IHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMHB4OwogICAgICAgICAgbGVmdDogMHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMCk7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMSkgJHt0aGlzLm9wdGlvbnMuYmx1cj8iYmx1cigwcHgpIjoiIn07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5iYWNrZHJvcFpJbmRleH07CiAgICAgICAgfQogICAgICAgIC5zbG90Q29udGVudCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5jb250ZW50WkluZGV4fTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2xvdENvbnRlbnQgPiAqIHsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmlzaWJsZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMC45KSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDJweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuZGlzcGF0Y2hDbGlja2VkfSBjbGFzcz0id2luZG93T3ZlcmxheSAke3RoaXMudmlzaWJsZT8idmlzaWJsZSI6bnVsbH0iPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnZpc2libGU9ITB9LDEwMCl9ZGlzcGF0Y2hDbGlja2VkKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIpKX10b2dnbGVWaXNpYmlsaXR5KCl7dGhpcy52aXNpYmxlPSF0aGlzLnZpc2libGV9Z2V0Q29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLmNvbnRlbnRaSW5kZXh9YXN5bmMgc2hvdygpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuYmFja2Ryb3BaSW5kZXg9WHQuZ2V0TmV4dFpJbmRleCgpLHRoaXMuY29udGVudFpJbmRleD1YdC5nZXROZXh0WkluZGV4KCksWHQucmVnaXN0ZXIodGhpcyx0aGlzLmJhY2tkcm9wWkluZGV4KSxhd2FpdCBrLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwfWFzeW5jIGhpZGUoKXthd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITF9YXN5bmMgZGVzdHJveSgpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2F3YWl0IHRoaXMuaGlkZSgpLGF3YWl0IGsuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLFh0LnVucmVnaXN0ZXIodGhpcyksdGhpcy5yZW1vdmUoKX1zdGF0aWN7S2wocix0KX19O3JldHVybiB5PXJ9KSgpfSk7ZnVuY3Rpb24gTzZlKGEsZSl7KGU9PW51bGx8fGU+YS5sZW5ndGgpJiYoZT1hLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShlKTt0PGU7dCsrKXJbdF09YVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBXQ2EoYSl7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gYX1mdW5jdGlvbiBHQ2EoYSl7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gTzZlKGEpfWZ1bmN0aW9uIFlDYShhLGUpe2lmKCEoYSBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHY3dChhLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgcj1lW3RdO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEseTd0KHIua2V5KSxyKX19ZnVuY3Rpb24gS0NhKGEsZSx0KXtyZXR1cm4gZSYmdjd0KGEucHJvdG90eXBlLGUpLHQmJnY3dChhLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGF9ZnVuY3Rpb24gR0ooYSxlKXt2YXIgdD10eXBlb2YgU3ltYm9sPCJ1IiYmYVtTeW1ib2wuaXRlcmF0b3JdfHxhWyJAQGl0ZXJhdG9yIl07aWYoIXQpe2lmKEFycmF5LmlzQXJyYXkoYSl8fCh0PUY2ZShhKSl8fGUmJmEmJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpe3QmJihhPXQpO3ZhciByPTAsaT1zKGZ1bmN0aW9uKCl7fSwiRiIpO3JldHVybntzOmksbjpzKGZ1bmN0aW9uKCl7cmV0dXJuIHI+PWEubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTphW3IrK119fSwibiIpLGU6cyhmdW5jdGlvbihkKXt0aHJvdyBkfSwiZSIpLGY6aX19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIG8sbj0hMCxsPSExO3JldHVybntzOnMoZnVuY3Rpb24oKXt0PXQuY2FsbChhKX0sInMiKSxuOnMoZnVuY3Rpb24oKXt2YXIgZD10Lm5leHQoKTtyZXR1cm4gbj1kLmRvbmUsZH0sIm4iKSxlOnMoZnVuY3Rpb24oZCl7bD0hMCxvPWR9LCJlIiksZjpzKGZ1bmN0aW9uKCl7dHJ5e258fHQucmV0dXJuPT1udWxsfHx0LnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyBvfX0sImYiKX19ZnVuY3Rpb24gR3QoYSxlLHQpe3JldHVybihlPXk3dChlKSlpbiBhP09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGUse3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTphW2VdPXQsYX1mdW5jdGlvbiBaQ2EoYSxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTthLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6YSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmWUooYSxlKX1mdW5jdGlvbiBYQ2EoYSl7aWYodHlwZW9mIFN5bWJvbDwidSImJmFbU3ltYm9sLml0ZXJhdG9yXSE9bnVsbHx8YVsiQEBpdGVyYXRvciJdIT1udWxsKXJldHVybiBBcnJheS5mcm9tKGEpfWZ1bmN0aW9uIFFDYShhLGUpe3ZhciB0PWE9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPCJ1IiYmYVtTeW1ib2wuaXRlcmF0b3JdfHxhWyJAQGl0ZXJhdG9yIl07aWYodCE9bnVsbCl7dmFyIHIsaSxvLG4sbD1bXSxkPSEwLGM9ITE7dHJ5e2lmKG89KHQ9dC5jYWxsKGEpKS5uZXh0LGU9PT0wKXtpZihPYmplY3QodCkhPT10KXJldHVybjtkPSExfWVsc2UgZm9yKDshKGQ9KHI9by5jYWxsKHQpKS5kb25lKSYmKGwucHVzaChyLnZhbHVlKSxsLmxlbmd0aCE9PWUpO2Q9ITApO31jYXRjaChwKXtjPSEwLGk9cH1maW5hbGx5e3RyeXtpZighZCYmdC5yZXR1cm4hPW51bGwmJihuPXQucmV0dXJuKCksT2JqZWN0KG4pIT09bikpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBpfX1yZXR1cm4gbH19ZnVuY3Rpb24gSkNhKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIGVfYSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24geDd0KGEsZSl7dmFyIHQ9T2JqZWN0LmtleXMoYSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKTtlJiYocj1yLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLGkpLmVudW1lcmFibGV9KSksdC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9ZnVuY3Rpb24gWGUoYSl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHQ9YXJndW1lbnRzW2VdIT1udWxsP2FyZ3VtZW50c1tlXTp7fTtlJTI/eDd0KE9iamVjdCh0KSwhMCkuZm9yRWFjaChmdW5jdGlvbihyKXtHdChhLHIsdFtyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhhLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTp4N3QoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpKX0pfXJldHVybiBhfWZ1bmN0aW9uIFlKKGEsZSl7cmV0dXJuIFlKPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQscil7cmV0dXJuIHQuX19wcm90b19fPXIsdH0sWUooYSxlKX1mdW5jdGlvbiBLSihhLGUpe3JldHVybiBXQ2EoYSl8fFFDYShhLGUpfHxGNmUoYSxlKXx8SkNhKCl9ZnVuY3Rpb24gazEoYSl7cmV0dXJuIEdDYShhKXx8WENhKGEpfHxGNmUoYSl8fGVfYSgpfWZ1bmN0aW9uIHRfYShhLGUpe2lmKHR5cGVvZiBhIT0ib2JqZWN0Inx8IWEpcmV0dXJuIGE7dmFyIHQ9YVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHQhPT12b2lkIDApe3ZhciByPXQuY2FsbChhLGV8fCJkZWZhdWx0Iik7aWYodHlwZW9mIHIhPSJvYmplY3QiKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKGU9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKShhKX1mdW5jdGlvbiB5N3QoYSl7dmFyIGU9dF9hKGEsInN0cmluZyIpO3JldHVybiB0eXBlb2YgZT09InN5bWJvbCI/ZTplKyIifWZ1bmN0aW9uIFpKKGEpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIFpKPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxaSihhKX1mdW5jdGlvbiBGNmUoYSxlKXtpZihhKXtpZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJuIE82ZShhLGUpO3ZhciB0PXt9LnRvU3RyaW5nLmNhbGwoYSkuc2xpY2UoOCwtMSk7cmV0dXJuIHQ9PT0iT2JqZWN0IiYmYS5jb25zdHJ1Y3RvciYmKHQ9YS5jb25zdHJ1Y3Rvci5uYW1lKSx0PT09Ik1hcCJ8fHQ9PT0iU2V0Ij9BcnJheS5mcm9tKGEpOnQ9PT0iQXJndW1lbnRzInx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCk/TzZlKGEsZSk6dm9pZCAwfX1mdW5jdGlvbiBEaSgpe0RpPXMoZnVuY3Rpb24oaSxvKXtyZXR1cm4gbmV3IHQoaSx2b2lkIDAsbyl9LCJfd3JhcFJlZ0V4cCIpO3ZhciBhPVJlZ0V4cC5wcm90b3R5cGUsZT1uZXcgV2Vha01hcDtmdW5jdGlvbiB0KGksbyxuKXt2YXIgbD1SZWdFeHAoaSxvKTtyZXR1cm4gZS5zZXQobCxufHxlLmdldChpKSksWUoobCx0LnByb3RvdHlwZSl9cyh0LCJCYWJlbFJlZ0V4cCIpO2Z1bmN0aW9uIHIoaSxvKXt2YXIgbj1lLmdldChvKTtyZXR1cm4gT2JqZWN0LmtleXMobikucmVkdWNlKGZ1bmN0aW9uKGwsZCl7dmFyIGM9bltkXTtpZih0eXBlb2YgYz09Im51bWJlciIpbFtkXT1pW2NdO2Vsc2V7Zm9yKHZhciBwPTA7aVtjW3BdXT09PXZvaWQgMCYmcCsxPGMubGVuZ3RoOylwKys7bFtkXT1pW2NbcF1dfXJldHVybiBsfSxPYmplY3QuY3JlYXRlKG51bGwpKX1yZXR1cm4gcyhyLCJidWlsZEdyb3VwcyIpLFpDYSh0LFJlZ0V4cCksdC5wcm90b3R5cGUuZXhlYz1mdW5jdGlvbihpKXt2YXIgbz1hLmV4ZWMuY2FsbCh0aGlzLGkpO2lmKG8pe28uZ3JvdXBzPXIobyx0aGlzKTt2YXIgbj1vLmluZGljZXM7biYmKG4uZ3JvdXBzPXIobix0aGlzKSl9cmV0dXJuIG99LHQucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXT1mdW5jdGlvbihpLG8pe2lmKHR5cGVvZiBvPT0ic3RyaW5nIil7dmFyIG49ZS5nZXQodGhpcyk7cmV0dXJuIGFbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxpLG8ucmVwbGFjZSgvXCQ8KFtePl0rKSg+fCQpL2csZnVuY3Rpb24oZCxjLHApe2lmKHA9PT0iIilyZXR1cm4gZDt2YXIgdT1uW2NdO3JldHVybiBBcnJheS5pc0FycmF5KHUpPyIkIit1LmpvaW4oIiQiKTp0eXBlb2YgdT09Im51bWJlciI/IiQiK3U6IiJ9KSl9aWYodHlwZW9mIG89PSJmdW5jdGlvbiIpe3ZhciBsPXRoaXM7cmV0dXJuIGFbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxpLGZ1bmN0aW9uKCl7dmFyIGQ9YXJndW1lbnRzO3JldHVybiB0eXBlb2YgZFtkLmxlbmd0aC0xXSE9Im9iamVjdCImJihkPVtdLnNsaWNlLmNhbGwoZCkpLnB1c2gocihkLGwpKSxvLmFwcGx5KHRoaXMsZCl9KX1yZXR1cm4gYVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLGksbyl9LERpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBrYihhKXtyZXR1cm4gbmV3IFByb3h5KGEse2dldDpzKGZ1bmN0aW9uKHQscil7cmV0dXJuIHIgaW4gdD90W3JdOnRbdGldfSwiZ2V0Iil9KX1mdW5jdGlvbiBWVGEoYSl7dmFyIGU9cHIucXVlcnlTZWxlY3Rvcigic2NyaXB0WyIrYSsiXSIpO2lmKGUpcmV0dXJuIGUuZ2V0QXR0cmlidXRlKGEpfWZ1bmN0aW9uIGpUYShhKXtyZXR1cm4gYT09PSIiPyEwOmE9PT0iZmFsc2UiPyExOmE9PT0idHJ1ZSI/ITA6YX1mdW5jdGlvbiBVVGEoYSl7cmV0dXJuIHpiLnB1c2goYSksZnVuY3Rpb24oKXt6Yi5zcGxpY2UoemIuaW5kZXhPZihhKSwxKX19ZnVuY3Rpb24gV1RhKGEpe2lmKCEoIWF8fCFabCkpe3ZhciBlPXByLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLGUuaW5uZXJIVE1MPWE7Zm9yKHZhciB0PXByLmhlYWQuY2hpbGROb2RlcyxyPW51bGwsaT10Lmxlbmd0aC0xO2k+LTE7aS0tKXt2YXIgbz10W2ldLG49KG8udGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk7WyJTVFlMRSIsIkxJTksiXS5pbmRleE9mKG4pPi0xJiYocj1vKX1yZXR1cm4gcHIuaGVhZC5pbnNlcnRCZWZvcmUoZSxyKSxhfX1mdW5jdGlvbiBkOXQoKXtmb3IodmFyIGE9MTIsZT0iIjthLS0gPjA7KWUrPUdUYVtNYXRoLnJhbmRvbSgpKjYyfDBdO3JldHVybiBlfWZ1bmN0aW9uIHE4KGEpe2Zvcih2YXIgZT1bXSx0PShhfHxbXSkubGVuZ3RoPj4+MDt0LS07KWVbdF09YVt0XTtyZXR1cm4gZX1mdW5jdGlvbiBKNmUoYSl7cmV0dXJuIGEuY2xhc3NMaXN0P3E4KGEuY2xhc3NMaXN0KTooYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pfWZ1bmN0aW9uIHU5dChhKXtyZXR1cm4iIi5jb25jYXQoYSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpfWZ1bmN0aW9uIFlUYShhKXtyZXR1cm4gT2JqZWN0LmtleXMoYXx8e30pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlKyIiLmNvbmNhdCh0LCc9IicpLmNvbmNhdCh1OXQoYVt0XSksJyIgJyl9LCIiKS50cmltKCl9ZnVuY3Rpb24gSkooYSl7cmV0dXJuIE9iamVjdC5rZXlzKGF8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSsiIi5jb25jYXQodCwiOiAiKS5jb25jYXQoYVt0XS50cmltKCksIjsiKX0sIiIpfWZ1bmN0aW9uIGV1ZShhKXtyZXR1cm4gYS5zaXplIT09SDIuc2l6ZXx8YS54IT09SDIueHx8YS55IT09SDIueXx8YS5yb3RhdGUhPT1IMi5yb3RhdGV8fGEuZmxpcFh8fGEuZmxpcFl9ZnVuY3Rpb24gS1RhKGEpe3ZhciBlPWEudHJhbnNmb3JtLHQ9YS5jb250YWluZXJXaWR0aCxyPWEuaWNvbldpZHRoLGk9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHQvMiwiIDI1NikiKX0sbz0idHJhbnNsYXRlKCIuY29uY2F0KGUueCozMiwiLCAiKS5jb25jYXQoZS55KjMyLCIpICIpLG49InNjYWxlKCIuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplLzE2KihlLmZsaXBZPy0xOjEpLCIpICIpLGw9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiIDAgMCkiKSxkPXt0cmFuc2Zvcm06IiIuY29uY2F0KG8sIiAiKS5jb25jYXQobiwiICIpLmNvbmNhdChsKX0sYz17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoci8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOmksaW5uZXI6ZCxwYXRoOmN9fWZ1bmN0aW9uIFpUYShhKXt2YXIgZT1hLnRyYW5zZm9ybSx0PWEud2lkdGgscj10PT09dm9pZCAwP2o2ZTp0LGk9YS5oZWlnaHQsbz1pPT09dm9pZCAwP2o2ZTppLG49YS5zdGFydENlbnRlcmVkLGw9bj09PXZvaWQgMD8hMTpuLGQ9IiI7cmV0dXJuIGwmJlQ3dD9kKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC9RMC1yLzIsImVtLCAiKS5jb25jYXQoZS55L1EwLW8vMiwiZW0pICIpOmw/ZCs9InRyYW5zbGF0ZShjYWxjKC01MCUgKyAiLmNvbmNhdChlLngvUTAsImVtKSwgY2FsYygtNTAlICsgIikuY29uY2F0KGUueS9RMCwiZW0pKSAiKTpkKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC9RMCwiZW0sICIpLmNvbmNhdChlLnkvUTAsImVtKSAiKSxkKz0ic2NhbGUoIi5jb25jYXQoZS5zaXplL1EwKihlLmZsaXBYPy0xOjEpLCIsICIpLmNvbmNhdChlLnNpemUvUTAqKGUuZmxpcFk/LTE6MSksIikgIiksZCs9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiZGVnKSAiKSxkfWZ1bmN0aW9uIHA5dCgpe3ZhciBhPWU5dCxlPXQ5dCx0PUx0LmNzc1ByZWZpeCxyPUx0LnJlcGxhY2VtZW50Q2xhc3MsaT1YVGE7aWYodCE9PWF8fHIhPT1lKXt2YXIgbz1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdChhLCJcXC0iKSwiZyIpLG49bmV3IFJlZ0V4cCgiXFwtLSIuY29uY2F0KGEsIlxcLSIpLCJnIiksbD1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdChlKSwiZyIpO2k9aS5yZXBsYWNlKG8sIi4iLmNvbmNhdCh0LCItIikpLnJlcGxhY2UobiwiLS0iLmNvbmNhdCh0LCItIikpLnJlcGxhY2UobCwiLiIuY29uY2F0KHIpKX1yZXR1cm4gaX1mdW5jdGlvbiB0dWUoKXtMdC5hdXRvQWRkQ3NzJiYhZjl0JiYoV1RhKHA5dCgpKSxmOXQ9ITApfWZ1bmN0aW9uIEpUYShhKXtabCYmKGVlZT9zZXRUaW1lb3V0KGEsMCk6aDl0LnB1c2goYSkpfWZ1bmN0aW9uIENiKGEpe3ZhciBlPWEudGFnLHQ9YS5hdHRyaWJ1dGVzLHI9dD09PXZvaWQgMD97fTp0LGk9YS5jaGlsZHJlbixvPWk9PT12b2lkIDA/W106aTtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmciP3U5dChhKToiPCIuY29uY2F0KGUsIiAiKS5jb25jYXQoWVRhKHIpLCI+IikuY29uY2F0KG8ubWFwKENiKS5qb2luKCIiKSwiPC8iKS5jb25jYXQoZSwiPiIpfWZ1bmN0aW9uIGc5dChhLGUsdCl7aWYoYSYmYVtlXSYmYVtlXVt0XSlyZXR1cm57cHJlZml4OmUsaWNvbk5hbWU6dCxpY29uOmFbZV1bdF19fWZ1bmN0aW9uIGI5dChhKXtyZXR1cm4gazEoYSkubGVuZ3RoIT09MT9udWxsOmEuY29kZVBvaW50QXQoMCkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIHY5dChhKXtyZXR1cm4gT2JqZWN0LmtleXMoYSkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIHI9YVt0XSxpPSEhci5pY29uO3JldHVybiBpP2Vbci5pY29uTmFtZV09ci5pY29uOmVbdF09cixlfSx7fSl9ZnVuY3Rpb24gcnVlKGEsZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOnt9LHI9dC5za2lwSG9va3MsaT1yPT09dm9pZCAwPyExOnIsbz12OXQoZSk7dHlwZW9mIFMxLmhvb2tzLmFkZFBhY2s9PSJmdW5jdGlvbiImJiFpP1MxLmhvb2tzLmFkZFBhY2soYSx2OXQoZSkpOlMxLnN0eWxlc1thXT1YZShYZSh7fSxTMS5zdHlsZXNbYV18fHt9KSxvKSxhPT09ImZhcyImJnJ1ZSgiZmEiLGUpfWZ1bmN0aW9uIHJMYShhKXtyZXR1cm5+cVRhLmluZGV4T2YoYSl9ZnVuY3Rpb24gc0xhKGEsZSl7dmFyIHQ9ZS5zcGxpdCgiLSIpLHI9dFswXSxpPXQuc2xpY2UoMSkuam9pbigiLSIpO3JldHVybiByPT09YSYmaSE9PSIiJiYhckxhKGkpP2k6bnVsbH1mdW5jdGlvbiBvdWUoYSxlKXtyZXR1cm4oeTl0W2FdfHx7fSlbZV19ZnVuY3Rpb24gaUxhKGEsZSl7cmV0dXJuKHc5dFthXXx8e30pW2VdfWZ1bmN0aW9uIGNkKGEsZSl7cmV0dXJuKFM5dFthXXx8e30pW2VdfWZ1bmN0aW9uIEM5dChhKXtyZXR1cm4gTTl0W2FdfHx7cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbH19ZnVuY3Rpb24gb0xhKGEpe3ZhciBlPWs5dFthXSx0PW91ZSgiZmFzIixhKTtyZXR1cm4gZXx8KHQ/e3ByZWZpeDoiZmFzIixpY29uTmFtZTp0fTpudWxsKXx8e3ByZWZpeDpudWxsLGljb25OYW1lOm51bGx9fWZ1bmN0aW9uIEowKCl7cmV0dXJuIGl1ZX1mdW5jdGlvbiBuTGEoYSl7dmFyIGU9dGksdD14OXQucmVkdWNlKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHJbaV09IiIuY29uY2F0KEx0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChpKSxyfSx7fSk7cmV0dXJuIFk3dC5mb3JFYWNoKGZ1bmN0aW9uKHIpeyhhLmluY2x1ZGVzKHRbcl0pfHxhLnNvbWUoZnVuY3Rpb24oaSl7cmV0dXJuIGFMYVtyXS5pbmNsdWRlcyhpKX0pKSYmKGU9cil9KSxlfWZ1bmN0aW9uIHRlZShhKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sdD1lLmZhbWlseSxyPXQ9PT12b2lkIDA/dGk6dCxpPVJUYVtyXVthXTtpZihyPT09TWImJiFhKXJldHVybiJmYWQiO3ZhciBvPW85dFtyXVthXXx8bzl0W3JdW2ldLG49YSBpbiBTMS5zdHlsZXM/YTpudWxsLGw9b3x8bnx8bnVsbDtyZXR1cm4gbH1mdW5jdGlvbiBsTGEoYSl7dmFyIGU9W10sdD1udWxsO3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9c0xhKEx0LmNzc1ByZWZpeCxyKTtpP3Q9aTpyJiZlLnB1c2gocil9KSx7aWNvbk5hbWU6dCxyZXN0OmV9fWZ1bmN0aW9uIFQ5dChhKXtyZXR1cm4gYS5zb3J0KCkuZmlsdGVyKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gci5pbmRleE9mKGUpPT09dH0pfWZ1bmN0aW9uIGFlZShhKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sdD1lLnNraXBMb29rdXBzLHI9dD09PXZvaWQgMD8hMTp0LGk9bnVsbCxvPVQ5dChhLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gTDl0LmluY2x1ZGVzKHYpfSkpLG49VDl0KGEuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiFMOXQuaW5jbHVkZXModil9KSksbD1vLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gaT12LCEkN3QuaW5jbHVkZXModil9KSxkPUtKKGwsMSksYz1kWzBdLHA9Yz09PXZvaWQgMD9udWxsOmMsdT1uTGEobyksbT1YZShYZSh7fSxsTGEobikpLHt9LHtwcmVmaXg6dGVlKHAse2ZhbWlseTp1fSl9KTtyZXR1cm4gWGUoWGUoWGUoe30sbSkscExhKHt2YWx1ZXM6YSxmYW1pbHk6dSxzdHlsZXM6X2IsY29uZmlnOkx0LGNhbm9uaWNhbDptLGdpdmVuUHJlZml4Oml9KSksY0xhKHIsaSxtKSl9ZnVuY3Rpb24gY0xhKGEsZSx0KXt2YXIgcj10LnByZWZpeCxpPXQuaWNvbk5hbWU7aWYoYXx8IXJ8fCFpKXJldHVybntwcmVmaXg6cixpY29uTmFtZTppfTt2YXIgbz1lPT09ImZhIj9DOXQoaSk6e30sbj1jZChyLGkpO3JldHVybiBpPW8uaWNvbk5hbWV8fG58fGkscj1vLnByZWZpeHx8cixyPT09ImZhciImJiFfYi5mYXImJl9iLmZhcyYmIUx0LmF1dG9GZXRjaFN2ZyYmKHI9ImZhcyIpLHtwcmVmaXg6cixpY29uTmFtZTppfX1mdW5jdGlvbiBwTGEoYSl7dmFyIGU9YS52YWx1ZXMsdD1hLmZhbWlseSxyPWEuY2Fub25pY2FsLGk9YS5naXZlblByZWZpeCxvPWk9PT12b2lkIDA/IiI6aSxuPWEuc3R5bGVzLGw9bj09PXZvaWQgMD97fTpuLGQ9YS5jb25maWcsYz1kPT09dm9pZCAwP3t9OmQscD10PT09TWIsdT1lLmluY2x1ZGVzKCJmYS1kdW90b25lIil8fGUuaW5jbHVkZXMoImZhZCIpLG09Yy5mYW1pbHlEZWZhdWx0PT09ImR1b3RvbmUiLHY9ci5wcmVmaXg9PT0iZmFkInx8ci5wcmVmaXg9PT0iZmEtZHVvdG9uZSI7aWYoIXAmJih1fHxtfHx2KSYmKHIucHJlZml4PSJmYWQiKSwoZS5pbmNsdWRlcygiZmEtYnJhbmRzIil8fGUuaW5jbHVkZXMoImZhYiIpKSYmKHIucHJlZml4PSJmYWIiKSwhci5wcmVmaXgmJmRMYS5pbmNsdWRlcyh0KSl7dmFyIHg9T2JqZWN0LmtleXMobCkuZmluZChmdW5jdGlvbihnKXtyZXR1cm4gdUxhLmluY2x1ZGVzKGcpfSk7aWYoeHx8Yy5hdXRvRmV0Y2hTdmcpe3ZhciBiPV9fYS5nZXQodCkuZGVmYXVsdFNob3J0UHJlZml4SWQ7ci5wcmVmaXg9YixyLmljb25OYW1lPWNkKHIucHJlZml4LHIuaWNvbk5hbWUpfHxyLmljb25OYW1lfX1yZXR1cm4oci5wcmVmaXg9PT0iZmEifHxvPT09ImZhIikmJihyLnByZWZpeD1KMCgpfHwiZmFzIikscn1mdW5jdGlvbiBtTGEoYSxlKXt2YXIgdD1lLm1peG91dHNUbztyZXR1cm4gJDl0PWEsVjg9e30sT2JqZWN0LmtleXMoajgpLmZvckVhY2goZnVuY3Rpb24ocil7aExhLmluZGV4T2Yocik9PT0tMSYmZGVsZXRlIGo4W3JdfSksJDl0LmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9ci5taXhvdXQ/ci5taXhvdXQoKTp7fTtpZihPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3R5cGVvZiBpW25dPT0iZnVuY3Rpb24iJiYodFtuXT1pW25dKSxaSihpW25dKT09PSJvYmplY3QiJiZPYmplY3Qua2V5cyhpW25dKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3Rbbl18fCh0W25dPXt9KSx0W25dW2xdPWlbbl1bbF19KX0pLHIuaG9va3Mpe3ZhciBvPXIuaG9va3MoKTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe1Y4W25dfHwoVjhbbl09W10pLFY4W25dLnB1c2gob1tuXSl9KX1yLnByb3ZpZGVzJiZyLnByb3ZpZGVzKGo4KX0pLHR9ZnVuY3Rpb24gbnVlKGEsZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodD4yP3QtMjowKSxpPTI7aTx0O2krKylyW2ktMl09YXJndW1lbnRzW2ldO3ZhciBvPVY4W2FdfHxbXTtyZXR1cm4gby5mb3JFYWNoKGZ1bmN0aW9uKG4pe2U9bi5hcHBseShudWxsLFtlXS5jb25jYXQocikpfSksZX1mdW5jdGlvbiBkZChhKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlPjE/ZS0xOjApLHI9MTtyPGU7cisrKXRbci0xXT1hcmd1bWVudHNbcl07dmFyIGk9VjhbYV18fFtdO2kuZm9yRWFjaChmdW5jdGlvbihvKXtvLmFwcGx5KG51bGwsdCl9KX1mdW5jdGlvbiBlNCgpe3ZhciBhPWFyZ3VtZW50c1swXSxlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gajhbYV0/ajhbYV0uYXBwbHkobnVsbCxlKTp2b2lkIDB9ZnVuY3Rpb24gbHVlKGEpe2EucHJlZml4PT09ImZhIiYmKGEucHJlZml4PSJmYXMiKTt2YXIgZT1hLmljb25OYW1lLHQ9YS5wcmVmaXh8fEowKCk7aWYoZSlyZXR1cm4gZT1jZCh0LGUpfHxlLGc5dChEOXQuZGVmaW5pdGlvbnMsdCxlKXx8Zzl0KFMxLnN0eWxlcyx0LGUpfWZ1bmN0aW9uIHJlZShhLGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiYWJzdHJhY3QiLHtnZXQ6ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJodG1sIix7Z2V0OnMoZnVuY3Rpb24oKXtyZXR1cm4gYS5hYnN0cmFjdC5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIENiKHIpfSl9LCJnZXQiKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJub2RlIix7Z2V0OnMoZnVuY3Rpb24oKXtpZihabCl7dmFyIHI9cHIuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIuaW5uZXJIVE1MPWEuaHRtbCxyLmNoaWxkcmVufX0sImdldCIpfSksYX1mdW5jdGlvbiB5TGEoYSl7dmFyIGU9YS5jaGlsZHJlbix0PWEubWFpbixyPWEubWFzayxpPWEuYXR0cmlidXRlcyxvPWEuc3R5bGVzLG49YS50cmFuc2Zvcm07aWYoZXVlKG4pJiZ0LmZvdW5kJiYhci5mb3VuZCl7dmFyIGw9dC53aWR0aCxkPXQuaGVpZ2h0LGM9e3g6bC9kLzIseTouNX07aS5zdHlsZT1KSihYZShYZSh7fSxvKSx7fSx7InRyYW5zZm9ybS1vcmlnaW4iOiIiLmNvbmNhdChjLngrbi54LzE2LCJlbSAiKS5jb25jYXQoYy55K24ueS8xNiwiZW0iKX0pKX1yZXR1cm5be3RhZzoic3ZnIixhdHRyaWJ1dGVzOmksY2hpbGRyZW46ZX1dfWZ1bmN0aW9uIHdMYShhKXt2YXIgZT1hLnByZWZpeCx0PWEuaWNvbk5hbWUscj1hLmNoaWxkcmVuLGk9YS5hdHRyaWJ1dGVzLG89YS5zeW1ib2wsbj1vPT09ITA/IiIuY29uY2F0KGUsIi0iKS5jb25jYXQoTHQuY3NzUHJlZml4LCItIikuY29uY2F0KHQpOm87cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczp7c3R5bGU6ImRpc3BsYXk6IG5vbmU7In0sY2hpbGRyZW46W3t0YWc6InN5bWJvbCIsYXR0cmlidXRlczpYZShYZSh7fSxpKSx7fSx7aWQ6bn0pLGNoaWxkcmVuOnJ9XX1dfWZ1bmN0aW9uIE1MYShhKXt2YXIgZT1bImFyaWEtbGFiZWwiLCJhcmlhLWxhYmVsbGVkYnkiLCJ0aXRsZSIsInJvbGUiXTtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0IGluIGF9KX1mdW5jdGlvbiBjdWUoYSl7dmFyIGU9YS5pY29ucyx0PWUubWFpbixyPWUubWFzayxpPWEucHJlZml4LG89YS5pY29uTmFtZSxuPWEudHJhbnNmb3JtLGw9YS5zeW1ib2wsZD1hLm1hc2tJZCxjPWEuZXh0cmEscD1hLndhdGNoYWJsZSx1PXA9PT12b2lkIDA/ITE6cCxtPXIuZm91bmQ/cjp0LHY9bS53aWR0aCx4PW0uaGVpZ2h0LGI9W0x0LnJlcGxhY2VtZW50Q2xhc3Msbz8iIi5jb25jYXQoTHQuY3NzUHJlZml4LCItIikuY29uY2F0KG8pOiIiXS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIGMuY2xhc3Nlcy5pbmRleE9mKF8pPT09LTF9KS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIF8hPT0iInx8ISFffSkuY29uY2F0KGMuY2xhc3Nlcykuam9pbigiICIpLGc9e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6WGUoWGUoe30sYy5hdHRyaWJ1dGVzKSx7fSx7ImRhdGEtcHJlZml4IjppLCJkYXRhLWljb24iOm8sY2xhc3M6Yixyb2xlOmMuYXR0cmlidXRlcy5yb2xlfHwiaW1nIix2aWV3Qm94OiIwIDAgIi5jb25jYXQodiwiICIpLmNvbmNhdCh4KX0pfTshTUxhKGMuYXR0cmlidXRlcykmJiFjLmF0dHJpYnV0ZXNbImFyaWEtaGlkZGVuIl0mJihnLmF0dHJpYnV0ZXNbImFyaWEtaGlkZGVuIl09InRydWUiKSx1JiYoZy5hdHRyaWJ1dGVzW2xkXT0iIik7dmFyIHk9WGUoWGUoe30sZykse30se3ByZWZpeDppLGljb25OYW1lOm8sbWFpbjp0LG1hc2s6cixtYXNrSWQ6ZCx0cmFuc2Zvcm06bixzeW1ib2w6bCxzdHlsZXM6WGUoe30sYy5zdHlsZXMpfSksaz1yLmZvdW5kJiZ0LmZvdW5kP2U0KCJnZW5lcmF0ZUFic3RyYWN0TWFzayIseSl8fHtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOnt9fTplNCgiZ2VuZXJhdGVBYnN0cmFjdEljb24iLHkpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX0sQz1rLmNoaWxkcmVuLE49ay5hdHRyaWJ1dGVzO3JldHVybiB5LmNoaWxkcmVuPUMseS5hdHRyaWJ1dGVzPU4sbD93TGEoeSk6eUxhKHkpfWZ1bmN0aW9uIEE5dChhKXt2YXIgZT1hLmNvbnRlbnQsdD1hLndpZHRoLHI9YS5oZWlnaHQsaT1hLnRyYW5zZm9ybSxvPWEuZXh0cmEsbj1hLndhdGNoYWJsZSxsPW49PT12b2lkIDA/ITE6bixkPVhlKFhlKHt9LG8uYXR0cmlidXRlcykse30se2NsYXNzOm8uY2xhc3Nlcy5qb2luKCIgIil9KTtsJiYoZFtsZF09IiIpO3ZhciBjPVhlKHt9LG8uc3R5bGVzKTtldWUoaSkmJihjLnRyYW5zZm9ybT1aVGEoe3RyYW5zZm9ybTppLHN0YXJ0Q2VudGVyZWQ6ITAsd2lkdGg6dCxoZWlnaHQ6cn0pLGNbIi13ZWJraXQtdHJhbnNmb3JtIl09Yy50cmFuc2Zvcm0pO3ZhciBwPUpKKGMpO3AubGVuZ3RoPjAmJihkLnN0eWxlPXApO3ZhciB1PVtdO3JldHVybiB1LnB1c2goe3RhZzoic3BhbiIsYXR0cmlidXRlczpkLGNoaWxkcmVuOltlXX0pLHV9ZnVuY3Rpb24ga0xhKGEpe3ZhciBlPWEuY29udGVudCx0PWEuZXh0cmEscj1YZShYZSh7fSx0LmF0dHJpYnV0ZXMpLHt9LHtjbGFzczp0LmNsYXNzZXMuam9pbigiICIpfSksaT1KSih0LnN0eWxlcyk7aS5sZW5ndGg+MCYmKHIuc3R5bGU9aSk7dmFyIG89W107cmV0dXJuIG8ucHVzaCh7dGFnOiJzcGFuIixhdHRyaWJ1dGVzOnIsY2hpbGRyZW46W2VdfSksb31mdW5jdGlvbiB1dWUoYSl7dmFyIGU9YVswXSx0PWFbMV0scj1hLnNsaWNlKDQpLGk9S0oociwxKSxvPWlbMF0sbj1udWxsO3JldHVybiBBcnJheS5pc0FycmF5KG8pP249e3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6IiIuY29uY2F0KEx0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChRNmUuR1JPVVApfSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cmlidXRlczp7Y2xhc3M6IiIuY29uY2F0KEx0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChRNmUuU0VDT05EQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6b1swXX19LHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChMdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoUTZlLlBSSU1BUlkpLGZpbGw6ImN1cnJlbnRDb2xvciIsZDpvWzFdfX1dfTpuPXt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2ZpbGw6ImN1cnJlbnRDb2xvciIsZDpvfX0se2ZvdW5kOiEwLHdpZHRoOmUsaGVpZ2h0OnQsaWNvbjpufX1mdW5jdGlvbiB6TGEoYSxlKXshczl0JiYhTHQuc2hvd01pc3NpbmdJY29ucyYmYSYmY29uc29sZS5lcnJvcignSWNvbiB3aXRoIG5hbWUgIicuY29uY2F0KGEsJyIgYW5kIHByZWZpeCAiJykuY29uY2F0KGUsJyIgaXMgbWlzc2luZy4nKSl9ZnVuY3Rpb24gcHVlKGEsZSl7dmFyIHQ9ZTtyZXR1cm4gZT09PSJmYSImJkx0LnN0eWxlRGVmYXVsdCE9PW51bGwmJihlPUowKCkpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsaSl7aWYodD09PSJmYSIpe3ZhciBvPUM5dChhKXx8e307YT1vLmljb25OYW1lfHxhLGU9by5wcmVmaXh8fGV9aWYoYSYmZSYmZHVlW2VdJiZkdWVbZV1bYV0pe3ZhciBuPWR1ZVtlXVthXTtyZXR1cm4gcih1dWUobikpfXpMYShhLGUpLHIoWGUoWGUoe30sU0xhKSx7fSx7aWNvbjpMdC5zaG93TWlzc2luZ0ljb25zJiZhP2U0KCJtaXNzaW5nSWNvbkFic3RyYWN0Iil8fHt9Ont9fSkpfSl9ZnVuY3Rpb24gSTl0KGEpe3ZhciBlPWEuZ2V0QXR0cmlidXRlP2EuZ2V0QXR0cmlidXRlKGxkKTpudWxsO3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ9ZnVuY3Rpb24gX0xhKGEpe3ZhciBlPWEuZ2V0QXR0cmlidXRlP2EuZ2V0QXR0cmlidXRlKFc2ZSk6bnVsbCx0PWEuZ2V0QXR0cmlidXRlP2EuZ2V0QXR0cmlidXRlKEc2ZSk6bnVsbDtyZXR1cm4gZSYmdH1mdW5jdGlvbiBUTGEoYSl7cmV0dXJuIGEmJmEuY2xhc3NMaXN0JiZhLmNsYXNzTGlzdC5jb250YWlucyYmYS5jbGFzc0xpc3QuY29udGFpbnMoTHQucmVwbGFjZW1lbnRDbGFzcyl9ZnVuY3Rpb24gTExhKCl7aWYoTHQuYXV0b1JlcGxhY2VTdmc9PT0hMClyZXR1cm4gaWVlLnJlcGxhY2U7dmFyIGE9aWVlW0x0LmF1dG9SZXBsYWNlU3ZnXTtyZXR1cm4gYXx8aWVlLnJlcGxhY2V9ZnVuY3Rpb24gJExhKGEpe3JldHVybiBwci5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixhKX1mdW5jdGlvbiBETGEoYSl7cmV0dXJuIHByLmNyZWF0ZUVsZW1lbnQoYSl9ZnVuY3Rpb24gTjl0KGEpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSx0PWUuY2VGbixyPXQ9PT12b2lkIDA/YS50YWc9PT0ic3ZnIj8kTGE6RExhOnQ7aWYodHlwZW9mIGE9PSJzdHJpbmciKXJldHVybiBwci5jcmVhdGVUZXh0Tm9kZShhKTt2YXIgaT1yKGEudGFnKTtPYmplY3Qua2V5cyhhLmF0dHJpYnV0ZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2kuc2V0QXR0cmlidXRlKG4sYS5hdHRyaWJ1dGVzW25dKX0pO3ZhciBvPWEuY2hpbGRyZW58fFtdO3JldHVybiBvLmZvckVhY2goZnVuY3Rpb24obil7aS5hcHBlbmRDaGlsZChOOXQobix7Y2VGbjpyfSkpfSksaX1mdW5jdGlvbiBBTGEoYSl7dmFyIGU9IiAiLmNvbmNhdChhLm91dGVySFRNTCwiICIpO3JldHVybiBlPSIiLmNvbmNhdChlLCJGb250IEF3ZXNvbWUgZm9udGF3ZXNvbWUuY29tICIpLGV9ZnVuY3Rpb24gUjl0KGEpe2EoKX1mdW5jdGlvbiBPOXQoYSxlKXt2YXIgdD10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOnNlZTtpZihhLmxlbmd0aD09PTApdCgpO2Vsc2V7dmFyIHI9Ujl0O0x0Lm11dGF0ZUFwcHJvYWNoPT09SVRhJiYocj1YMC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fFI5dCkscihmdW5jdGlvbigpe3ZhciBpPUxMYSgpLG89aHVlLmJlZ2luKCJtdXRhdGUiKTthLm1hcChpKSxvKCksdCgpfSl9fWZ1bmN0aW9uIEY5dCgpe211ZT0hMH1mdW5jdGlvbiBndWUoKXttdWU9ITF9ZnVuY3Rpb24gQjl0KGEpe2lmKF83dCYmTHQub2JzZXJ2ZU11dGF0aW9ucyl7dmFyIGU9YS50cmVlQ2FsbGJhY2ssdD1lPT09dm9pZCAwP3NlZTplLHI9YS5ub2RlQ2FsbGJhY2ssaT1yPT09dm9pZCAwP3NlZTpyLG89YS5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrLG49bz09PXZvaWQgMD9zZWU6byxsPWEub2JzZXJ2ZU11dGF0aW9uc1Jvb3QsZD1sPT09dm9pZCAwP3ByOmw7b2VlPW5ldyBfN3QoZnVuY3Rpb24oYyl7aWYoIW11ZSl7dmFyIHA9SjAoKTtxOChjKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKHUudHlwZT09PSJjaGlsZExpc3QiJiZ1LmFkZGVkTm9kZXMubGVuZ3RoPjAmJiFJOXQodS5hZGRlZE5vZGVzWzBdKSYmKEx0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZuKHUudGFyZ2V0KSx0KHUudGFyZ2V0KSksdS50eXBlPT09ImF0dHJpYnV0ZXMiJiZ1LnRhcmdldC5wYXJlbnROb2RlJiZMdC5zZWFyY2hQc2V1ZG9FbGVtZW50cyYmbihbdS50YXJnZXRdLCEwKSx1LnR5cGU9PT0iYXR0cmlidXRlcyImJkk5dCh1LnRhcmdldCkmJn5IVGEuaW5kZXhPZih1LmF0dHJpYnV0ZU5hbWUpKWlmKHUuYXR0cmlidXRlTmFtZT09PSJjbGFzcyImJl9MYSh1LnRhcmdldCkpe3ZhciBtPWFlZShKNmUodS50YXJnZXQpKSx2PW0ucHJlZml4LHg9bS5pY29uTmFtZTt1LnRhcmdldC5zZXRBdHRyaWJ1dGUoVzZlLHZ8fHApLHgmJnUudGFyZ2V0LnNldEF0dHJpYnV0ZShHNmUseCl9ZWxzZSBUTGEodS50YXJnZXQpJiZpKHUudGFyZ2V0KX0pfX0pLFpsJiZvZWUub2JzZXJ2ZShkLHtjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMCxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITB9KX19ZnVuY3Rpb24gUExhKCl7b2VlJiZvZWUuZGlzY29ubmVjdCgpfWZ1bmN0aW9uIEVMYShhKXt2YXIgZT1hLmdldEF0dHJpYnV0ZSgic3R5bGUiKSx0PVtdO3JldHVybiBlJiYodD1lLnNwbGl0KCI7IikucmVkdWNlKGZ1bmN0aW9uKHIsaSl7dmFyIG89aS5zcGxpdCgiOiIpLG49b1swXSxsPW8uc2xpY2UoMSk7cmV0dXJuIG4mJmwubGVuZ3RoPjAmJihyW25dPWwuam9pbigiOiIpLnRyaW0oKSkscn0se30pKSx0fWZ1bmN0aW9uIElMYShhKXt2YXIgZT1hLmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVmaXgiKSx0PWEuZ2V0QXR0cmlidXRlKCJkYXRhLWljb24iKSxyPWEuaW5uZXJUZXh0IT09dm9pZCAwP2EuaW5uZXJUZXh0LnRyaW0oKToiIixpPWFlZShKNmUoYSkpO3JldHVybiBpLnByZWZpeHx8KGkucHJlZml4PUowKCkpLGUmJnQmJihpLnByZWZpeD1lLGkuaWNvbk5hbWU9dCksaS5pY29uTmFtZSYmaS5wcmVmaXh8fChpLnByZWZpeCYmci5sZW5ndGg+MCYmKGkuaWNvbk5hbWU9aUxhKGkucHJlZml4LGEuaW5uZXJUZXh0KXx8b3VlKGkucHJlZml4LGI5dChhLmlubmVyVGV4dCkpKSwhaS5pY29uTmFtZSYmTHQuYXV0b0ZldGNoU3ZnJiZhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYoaS5pY29uTmFtZT1hLmZpcnN0Q2hpbGQuZGF0YSkpLGl9ZnVuY3Rpb24gTkxhKGEpe3ZhciBlPXE4KGEuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQubmFtZSE9PSJjbGFzcyImJnQubmFtZSE9PSJzdHlsZSImJih0W3IubmFtZV09ci52YWx1ZSksdH0se30pO3JldHVybiBlfWZ1bmN0aW9uIFJMYSgpe3JldHVybntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHRyYW5zZm9ybTpIMixzeW1ib2w6ITEsbWFzazp7aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCxyZXN0OltdfSxtYXNrSWQ6bnVsbCxleHRyYTp7Y2xhc3NlczpbXSxzdHlsZXM6e30sYXR0cmlidXRlczp7fX19fWZ1bmN0aW9uIEg5dChhKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e3N0eWxlUGFyc2VyOiEwfSx0PUlMYShhKSxyPXQuaWNvbk5hbWUsaT10LnByZWZpeCxvPXQucmVzdCxuPU5MYShhKSxsPW51ZSgicGFyc2VOb2RlQXR0cmlidXRlcyIse30sYSksZD1lLnN0eWxlUGFyc2VyP0VMYShhKTpbXTtyZXR1cm4gWGUoe2ljb25OYW1lOnIscHJlZml4OmksdHJhbnNmb3JtOkgyLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsc3ltYm9sOiExLGV4dHJhOntjbGFzc2VzOm8sc3R5bGVzOmQsYXR0cmlidXRlczpufX0sbCl9ZnVuY3Rpb24gcTl0KGEpe3ZhciBlPUx0LmF1dG9SZXBsYWNlU3ZnPT09Im5lc3QiP0g5dChhLHtzdHlsZVBhcnNlcjohMX0pOkg5dChhKTtyZXR1cm5+ZS5leHRyYS5jbGFzc2VzLmluZGV4T2Yobjl0KT9lNCgiZ2VuZXJhdGVMYXllcnNUZXh0IixhLGUpOmU0KCJnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24iLGEsZSl9ZnVuY3Rpb24gRkxhKCl7cmV0dXJuW10uY29uY2F0KGsxKEs3dCksazEoUTd0KSl9ZnVuY3Rpb24gVjl0KGEpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpudWxsO2lmKCFabClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHQ9cHIuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdCxyPXMoZnVuY3Rpb24odSl7cmV0dXJuIHQuYWRkKCIiLmNvbmNhdChhOXQsIi0iKS5jb25jYXQodSkpfSwiaGNsQWRkIiksaT1zKGZ1bmN0aW9uKHUpe3JldHVybiB0LnJlbW92ZSgiIi5jb25jYXQoYTl0LCItIikuY29uY2F0KHUpKX0sImhjbFJlbW92ZSIpLG89THQuYXV0b0ZldGNoU3ZnP0ZMYSgpOiQ3dC5jb25jYXQoT2JqZWN0LmtleXMoT0xhKSk7by5pbmNsdWRlcygiZmEiKXx8by5wdXNoKCJmYSIpO3ZhciBuPVsiLiIuY29uY2F0KG45dCwiOm5vdChbIikuY29uY2F0KGxkLCJdKSIpXS5jb25jYXQoby5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIi4iLmNvbmNhdChwLCI6bm90KFsiKS5jb25jYXQobGQsIl0pIil9KSkuam9pbigiLCAiKTtpZihuLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBsPVtdO3RyeXtsPXE4KGEucXVlcnlTZWxlY3RvckFsbChuKSl9Y2F0Y2h7fWlmKGwubGVuZ3RoPjApcigicGVuZGluZyIpLGkoImNvbXBsZXRlIik7ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGQ9aHVlLmJlZ2luKCJvblRyZWUiKSxjPWwucmVkdWNlKGZ1bmN0aW9uKHAsdSl7dHJ5e3ZhciBtPXE5dCh1KTttJiZwLnB1c2gobSl9Y2F0Y2godil7czl0fHx2Lm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKHYpfXJldHVybiBwfSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHAsdSl7UHJvbWlzZS5hbGwoYykudGhlbihmdW5jdGlvbihtKXtPOXQobSxmdW5jdGlvbigpe3IoImFjdGl2ZSIpLHIoImNvbXBsZXRlIiksaSgicGVuZGluZyIpLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlKCksZCgpLHAoKX0pfSkuY2F0Y2goZnVuY3Rpb24obSl7ZCgpLHUobSl9KX0pfWZ1bmN0aW9uIEJMYShhKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtxOXQoYSkudGhlbihmdW5jdGlvbih0KXt0JiZPOXQoW3RdLGUpfSl9ZnVuY3Rpb24gSExhKGEpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj0oZXx8e30pLmljb24/ZTpsdWUoZXx8e30pLGk9dC5tYXNrO3JldHVybiBpJiYoaT0oaXx8e30pLmljb24/aTpsdWUoaXx8e30pKSxhKHIsWGUoWGUoe30sdCkse30se21hc2s6aX0pKX19ZnVuY3Rpb24gWUxhKGEpe3ZhciBlPWEucmVwbGFjZShqOXQsIiIpO3JldHVybiBiOXQoazEoZSlbMF18fCIiKX1mdW5jdGlvbiBLTGEoYSl7dmFyIGU9YS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZlYXR1cmUtc2V0dGluZ3MiKS5pbmNsdWRlcygic3MwMSIpLHQ9YS5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50Iikscj10LnJlcGxhY2Uoajl0LCIiKSxpPXIuY29kZVBvaW50QXQoMCksbz1pPj1VOXRbMF0mJmk8PVU5dFsxXSxuPXIubGVuZ3RoPT09Mj9yWzBdPT09clsxXTohMTtyZXR1cm4gb3x8bnx8ZX1mdW5jdGlvbiBaTGEoYSxlKXt2YXIgdD1hLnJlcGxhY2UoL15bJyJdfFsnIl0kL2csIiIpLnRvTG93ZXJDYXNlKCkscj1wYXJzZUludChlKSxpPWlzTmFOKHIpPyJub3JtYWwiOnI7cmV0dXJuKGJ1ZVt0XXx8e30pW2ldfHxHTGFbdF19ZnVuY3Rpb24gRzl0KGEsZSl7dmFyIHQ9IiIuY29uY2F0KEVUYSkuY29uY2F0KGUucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsaSl7aWYoYS5nZXRBdHRyaWJ1dGUodCkhPT1udWxsKXJldHVybiByKCk7dmFyIG89cTgoYS5jaGlsZHJlbiksbj1vLmZpbHRlcihmdW5jdGlvbih6KXtyZXR1cm4gei5nZXRBdHRyaWJ1dGUoVTZlKT09PWV9KVswXSxsPVgwLmdldENvbXB1dGVkU3R5bGUoYSxlKSxkPWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mYW1pbHkiKSxjPWQubWF0Y2goRlRhKSxwPWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC13ZWlnaHQiKSx1PWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpO2lmKG4mJiFjKXJldHVybiBhLnJlbW92ZUNoaWxkKG4pLHIoKTtpZihjJiZ1IT09Im5vbmUiJiZ1IT09IiIpe3ZhciBtPWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLHY9WkxhKGQscCkseD1ZTGEobSksYj1jWzBdLnN0YXJ0c1dpdGgoIkZvbnRBd2Vzb21lIiksZz1LTGEobCkseT1vdWUodix4KSxrPXk7aWYoYil7dmFyIEM9b0xhKHgpO0MuaWNvbk5hbWUmJkMucHJlZml4JiYoeT1DLmljb25OYW1lLHY9Qy5wcmVmaXgpfWlmKHkmJiFnJiYoIW58fG4uZ2V0QXR0cmlidXRlKFc2ZSkhPT12fHxuLmdldEF0dHJpYnV0ZShHNmUpIT09aykpe2Euc2V0QXR0cmlidXRlKHQsayksbiYmYS5yZW1vdmVDaGlsZChuKTt2YXIgTj1STGEoKSxfPU4uZXh0cmE7Xy5hdHRyaWJ1dGVzW1U2ZV09ZSxwdWUoeSx2KS50aGVuKGZ1bmN0aW9uKHope3ZhciBPPWN1ZShYZShYZSh7fSxOKSx7fSx7aWNvbnM6e21haW46eixtYXNrOl85dCgpfSxwcmVmaXg6dixpY29uTmFtZTprLGV4dHJhOl8sd2F0Y2hhYmxlOiEwfSkpLFQ9cHIuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2U9PT0iOjpiZWZvcmUiP2EuaW5zZXJ0QmVmb3JlKFQsYS5maXJzdENoaWxkKTphLmFwcGVuZENoaWxkKFQpLFQub3V0ZXJIVE1MPU8ubWFwKGZ1bmN0aW9uKFApe3JldHVybiBDYihQKX0pLmpvaW4oYApgKSxhLnJlbW92ZUF0dHJpYnV0ZSh0KSxyKCl9KS5jYXRjaChpKX1lbHNlIHIoKX1lbHNlIHIoKX0pfWZ1bmN0aW9uIFhMYShhKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0c5dChhLCI6OmJlZm9yZSIpLEc5dChhLCI6OmFmdGVyIildKX1mdW5jdGlvbiBRTGEoYSl7cmV0dXJuIGEucGFyZW50Tm9kZSE9PWRvY3VtZW50LmhlYWQmJiF+TlRhLmluZGV4T2YoYS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpJiYhYS5nZXRBdHRyaWJ1dGUoVTZlKSYmKCFhLnBhcmVudE5vZGV8fGEucGFyZW50Tm9kZS50YWdOYW1lIT09InN2ZyIpfWZ1bmN0aW9uIFk5dChhKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7aWYoWmwpe3ZhciB0O2lmKGUpdD1hO2Vsc2UgaWYoTHQuc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2Nhbil0PWEucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Vsc2V7dmFyIHI9bmV3IFNldCxpPUdKKGRvY3VtZW50LnN0eWxlU2hlZXRzKSxvO3RyeXtmb3IoaS5zKCk7IShvPWkubigpKS5kb25lOyl7dmFyIG49by52YWx1ZTt0cnl7dmFyIGw9R0oobi5jc3NSdWxlcyksZDt0cnl7Zm9yKGwucygpOyEoZD1sLm4oKSkuZG9uZTspe3ZhciBjPWQudmFsdWUscD1lJGEoYy5zZWxlY3RvclRleHQpLHU9R0oocCksbTt0cnl7Zm9yKHUucygpOyEobT11Lm4oKSkuZG9uZTspe3ZhciB2PW0udmFsdWU7ci5hZGQodil9fWNhdGNoKGIpe3UuZShiKX1maW5hbGx5e3UuZigpfX19Y2F0Y2goYil7bC5lKGIpfWZpbmFsbHl7bC5mKCl9fWNhdGNoKGIpe0x0LnNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MmJmNvbnNvbGUud2FybigiRm9udCBBd2Vzb21lOiBjYW5ub3QgcGFyc2Ugc3R5bGVzaGVldDogIi5jb25jYXQobi5ocmVmLCIgKCIpLmNvbmNhdChiLm1lc3NhZ2UsYCkKSWYgaXQgZGVjbGFyZXMgYW55IEZvbnQgQXdlc29tZSBDU1MgcHNldWRvLWVsZW1lbnRzLCB0aGV5IHdpbGwgbm90IGJlIHJlbmRlcmVkIGFzIFNWRyBpY29ucy4gQWRkIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHRvIHRoZSA8bGluaz4sIGVuYWJsZSBzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggRE9NIHBhcnNpbmcsIG9yIHN1cHByZXNzIHRoaXMgd2FybmluZyBieSBzZXR0aW5nIHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MgdG8gZmFsc2UuYCkpfX19Y2F0Y2goYil7aS5lKGIpfWZpbmFsbHl7aS5mKCl9aWYoIXIuc2l6ZSlyZXR1cm47dmFyIHg9QXJyYXkuZnJvbShyKS5qb2luKCIsICIpO3RyeXt0PWEucXVlcnlTZWxlY3RvckFsbCh4KX1jYXRjaHt9fXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLGcpe3ZhciB5PXE4KHQpLmZpbHRlcihRTGEpLm1hcChYTGEpLGs9aHVlLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO0Y5dCgpLFByb21pc2UuYWxsKHkpLnRoZW4oZnVuY3Rpb24oKXtrKCksZ3VlKCksYigpfSkuY2F0Y2goZnVuY3Rpb24oKXtrKCksZ3VlKCksZygpfSl9KX19ZnVuY3Rpb24gWDl0KGEpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMDtyZXR1cm4gYS5hdHRyaWJ1dGVzJiYoYS5hdHRyaWJ1dGVzLmZpbGx8fGUpJiYoYS5hdHRyaWJ1dGVzLmZpbGw9ImJsYWNrIiksYX1mdW5jdGlvbiBzJGEoYSl7cmV0dXJuIGEudGFnPT09ImciP2EuY2hpbGRyZW46W2FdfXZhciB3N3QsQjZlLE03dCxrN3QsUzd0LGFfYSx6N3QsQzd0LFgwLHByLF83dCxYSix1bHMsWmwsVDd0LEg2ZSxyX2Esc19hLEw3dCxpX2EsJDd0LHRpLE1iLEQ3dCxBN3QsUDd0LEU3dCxJN3QsTjd0LFI3dCxPN3QsRjd0LEI3dCxIN3QscTd0LFY3dCxqN3QsVTd0LFc3dCxHN3Qsb19hLG5fYSxsX2EsY19hLGRfYSx1X2EscF9hLGZfYSxoX2EsbV9hLGdfYSxiX2Esdl9hLHhfYSx5X2Esd19hLE1fYSxrX2EsU19hLFk3dCxwbHMsel9hLENfYSxfX2EsVF9hLEs3dCxaN3QsTF9hLCRfYSxEX2EsQV9hLFBfYSxmbHMsRV9hLElfYSxOX2EsWDd0LHE2ZSxRSixSX2EsT19hLEZfYSxCX2EsSF9hLHFfYSxWX2Esal9hLFVfYSxXX2EsR19hLFlfYSxLX2EsWl9hLFhfYSxRX2EsSl9hLGVUYSx0VGEsYVRhLHJUYSxzVGEsaVRhLG9UYSxuVGEsbFRhLGNUYSxkVGEsdVRhLHBUYSxmVGEsaFRhLG1UYSxnVGEsYlRhLHZUYSx4VGEseVRhLHdUYSxobHMsTVRhLGtUYSxTVGEselRhLG1scyxDVGEsX1RhLFY2ZSxUVGEsUTd0LExUYSxKN3QsJFRhLERUYSxBVGEsUFRhLFhsLGo2ZSxlOXQsdDl0LGxkLFU2ZSxFVGEsVzZlLEc2ZSxhOXQsSVRhLE5UYSxyOXQsczl0LGk5dCxSVGEsWTZlLG85dCxLNmUsWjZlLFg2ZSxnbHMsT1RhLG45dCxGVGEsQlRhLGJscyxIVGEsUTZlLHFUYSxTYixjOXQsSDgsTHQsemIsUTAsSDIsR1RhLFhUYSxmOXQsUVRhLFFsLFMxLGg5dCxtOXQsZWVlLGVMYSxhdWUsc3VlLHoxLHZscyx4bHMsX2IsdExhLHg5dCxhTGEsaXVlLHk5dCx3OXQsTTl0LGs5dCxTOXQsejl0LF85dCxMOXQsZExhLHVMYSxmTGEsJDl0LFY4LGo4LGhMYSxEOXQsZ0xhLGJMYSx2TGEsRW8seExhLGR1ZSxTTGEsUDl0LGZ1ZSxUYixDTGEsRTl0LGh1ZSxzZWUsaWVlLG11ZSxvZWUsT0xhLHFMYSxWTGEsakxhLFVMYSxXTGEsajl0LFU5dCxXOXQsYnVlLEdMYSxKTGEsZSRhLHQkYSxLOXQsYSRhLFo5dCxyJGEsdnVlLGkkYSxvJGEsbiRhLGwkYSxjJGEsZCRhLHUkYSxwJGEsZiRhLGgkYSxtJGEseHVlLGckYSxiJGEsdiRhLGw5dCxROXQ9ZigoKT0+e3MoTzZlLCJfYXJyYXlMaWtlVG9BcnJheSIpO3MoV0NhLCJfYXJyYXlXaXRoSG9sZXMiKTtzKEdDYSwiX2FycmF5V2l0aG91dEhvbGVzIik7cyhZQ2EsIl9jbGFzc0NhbGxDaGVjayIpO3Modjd0LCJfZGVmaW5lUHJvcGVydGllcyIpO3MoS0NhLCJfY3JlYXRlQ2xhc3MiKTtzKEdKLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIpO3MoR3QsIl9kZWZpbmVQcm9wZXJ0eSIpO3MoWkNhLCJfaW5oZXJpdHMiKTtzKFhDYSwiX2l0ZXJhYmxlVG9BcnJheSIpO3MoUUNhLCJfaXRlcmFibGVUb0FycmF5TGltaXQiKTtzKEpDYSwiX25vbkl0ZXJhYmxlUmVzdCIpO3MoZV9hLCJfbm9uSXRlcmFibGVTcHJlYWQiKTtzKHg3dCwib3duS2V5cyIpO3MoWGUsIl9vYmplY3RTcHJlYWQyIik7cyhZSiwiX3NldFByb3RvdHlwZU9mIik7cyhLSiwiX3NsaWNlZFRvQXJyYXkiKTtzKGsxLCJfdG9Db25zdW1hYmxlQXJyYXkiKTtzKHRfYSwiX3RvUHJpbWl0aXZlIik7cyh5N3QsIl90b1Byb3BlcnR5S2V5Iik7cyhaSiwiX3R5cGVvZiIpO3MoRjZlLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiKTtzKERpLCJfd3JhcFJlZ0V4cCIpO3c3dD1zKGZ1bmN0aW9uKCl7fSwibm9vcCIpLEI2ZT17fSxNN3Q9e30sazd0PW51bGwsUzd0PXttYXJrOnc3dCxtZWFzdXJlOnc3dH07dHJ5e3R5cGVvZiB3aW5kb3c8InUiJiYoQjZlPXdpbmRvdyksdHlwZW9mIGRvY3VtZW50PCJ1IiYmKE03dD1kb2N1bWVudCksdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI8InUiJiYoazd0PU11dGF0aW9uT2JzZXJ2ZXIpLHR5cGVvZiBwZXJmb3JtYW5jZTwidSImJihTN3Q9cGVyZm9ybWFuY2UpfWNhdGNoe31hX2E9QjZlLm5hdmlnYXRvcnx8e30sejd0PWFfYS51c2VyQWdlbnQsQzd0PXo3dD09PXZvaWQgMD8iIjp6N3QsWDA9QjZlLHByPU03dCxfN3Q9azd0LFhKPVM3dCx1bHM9ISFYMC5kb2N1bWVudCxabD0hIXByLmRvY3VtZW50RWxlbWVudCYmISFwci5oZWFkJiZ0eXBlb2YgcHIuYWRkRXZlbnRMaXN0ZW5lcj09ImZ1bmN0aW9uIiYmdHlwZW9mIHByLmNyZWF0ZUVsZW1lbnQ9PSJmdW5jdGlvbiIsVDd0PX5DN3QuaW5kZXhPZigiTVNJRSIpfHx+Qzd0LmluZGV4T2YoIlRyaWRlbnQvIikscl9hPS9mYShrfGtkfHN8cnxsfHR8ZHxkcnxkbHxkdHxifHNscnxzbHByfHdzYnx0bHxuc3xuZHN8ZXN8Z3R8anJ8amZyfGpkcnx1c2J8dWZzYnx1ZHNifGNyfHNzfHNyfHNsfHN0fHNkc3xzZHJ8c2RsfHNkdCk/W1wtXCBdLyxzX2E9L0ZvbnQgP0F3ZXNvbWUgPyhbNTY3IF0qKShTb2xpZHxSZWd1bGFyfExpZ2h0fFRoaW58RHVvdG9uZXxCcmFuZHN8RnJlZXxQcm98U2hhcnAgRHVvdG9uZXxTaGFycHxLaXR8Tm90ZG9nIER1b3xOb3Rkb2d8Q2hpc2VsfEV0Y2h8R3JhcGhpdGV8VGh1bWJwcmludHxKZWxseSBGaWxsfEplbGx5IER1b3xKZWxseXxVdGlsaXR5fFV0aWxpdHkgRmlsbHxVdGlsaXR5IER1b3xTbGFiIFByZXNzfFNsYWJ8V2hpdGVib2FyZCk/LiovaSxMN3Q9e2NsYXNzaWM6e2ZhOiJzb2xpZCIsZmFzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmF0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4iLGZhYjoiYnJhbmRzIiwiZmEtYnJhbmRzIjoiYnJhbmRzIn0sZHVvdG9uZTp7ZmE6InNvbGlkIixmYWQ6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsImZhLWR1b3RvbmUiOiJzb2xpZCIsZmFkcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWRsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNoYXJwOntmYToic29saWQiLGZhc3M6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhc3Q6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LCJzaGFycC1kdW90b25lIjp7ZmE6InNvbGlkIixmYXNkczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXNkcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXNkdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIn0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNscjoicmVndWxhciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNscHI6InJlZ3VsYXIifSx0aHVtYnByaW50OnsiZmEtbGlnaHQiOiJsaWdodCIsZmF0bDoibGlnaHQifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF3c2I6InNlbWlib2xkIn0sbm90ZG9nOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuczoic29saWQifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6InNvbGlkIixmYW5kczoic29saWQifSxldGNoOnsiZmEtc29saWQiOiJzb2xpZCIsZmFlczoic29saWQifSxncmFwaGl0ZTp7ImZhLXRoaW4iOiJ0aGluIixmYWd0OiJ0aGluIn0samVsbHk6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqcjoicmVndWxhciJ9LCJqZWxseS1maWxsIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpmcjoicmVndWxhciJ9LCJqZWxseS1kdW8iOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhamRyOiJyZWd1bGFyIn0sY2hpc2VsOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhY3I6InJlZ3VsYXIifSx1dGlsaXR5OnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF1c2I6InNlbWlib2xkIn0sInV0aWxpdHktZHVvIjp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdWRzYjoic2VtaWJvbGQifSwidXRpbGl0eS1maWxsIjp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdWZzYjoic2VtaWJvbGQifX0saV9hPXtHUk9VUDoiZHVvdG9uZS1ncm91cCIsU1dBUF9PUEFDSVRZOiJzd2FwLW9wYWNpdHkiLFBSSU1BUlk6InByaW1hcnkiLFNFQ09OREFSWToic2Vjb25kYXJ5In0sJDd0PVsiZmEtY2xhc3NpYyIsImZhLWR1b3RvbmUiLCJmYS1zaGFycCIsImZhLXNoYXJwLWR1b3RvbmUiLCJmYS10aHVtYnByaW50IiwiZmEtd2hpdGVib2FyZCIsImZhLW5vdGRvZyIsImZhLW5vdGRvZy1kdW8iLCJmYS1jaGlzZWwiLCJmYS1ldGNoIiwiZmEtZ3JhcGhpdGUiLCJmYS1qZWxseSIsImZhLWplbGx5LWZpbGwiLCJmYS1qZWxseS1kdW8iLCJmYS1zbGFiIiwiZmEtc2xhYi1wcmVzcyIsImZhLXV0aWxpdHkiLCJmYS11dGlsaXR5LWR1byIsImZhLXV0aWxpdHktZmlsbCJdLHRpPSJjbGFzc2ljIixNYj0iZHVvdG9uZSIsRDd0PSJzaGFycCIsQTd0PSJzaGFycC1kdW90b25lIixQN3Q9ImNoaXNlbCIsRTd0PSJldGNoIixJN3Q9ImdyYXBoaXRlIixON3Q9ImplbGx5IixSN3Q9ImplbGx5LWR1byIsTzd0PSJqZWxseS1maWxsIixGN3Q9Im5vdGRvZyIsQjd0PSJub3Rkb2ctZHVvIixIN3Q9InNsYWIiLHE3dD0ic2xhYi1wcmVzcyIsVjd0PSJ0aHVtYnByaW50IixqN3Q9InV0aWxpdHkiLFU3dD0idXRpbGl0eS1kdW8iLFc3dD0idXRpbGl0eS1maWxsIixHN3Q9IndoaXRlYm9hcmQiLG9fYT0iQ2xhc3NpYyIsbl9hPSJEdW90b25lIixsX2E9IlNoYXJwIixjX2E9IlNoYXJwIER1b3RvbmUiLGRfYT0iQ2hpc2VsIix1X2E9IkV0Y2giLHBfYT0iR3JhcGhpdGUiLGZfYT0iSmVsbHkiLGhfYT0iSmVsbHkgRHVvIixtX2E9IkplbGx5IEZpbGwiLGdfYT0iTm90ZG9nIixiX2E9Ik5vdGRvZyBEdW8iLHZfYT0iU2xhYiIseF9hPSJTbGFiIFByZXNzIix5X2E9IlRodW1icHJpbnQiLHdfYT0iVXRpbGl0eSIsTV9hPSJVdGlsaXR5IER1byIsa19hPSJVdGlsaXR5IEZpbGwiLFNfYT0iV2hpdGVib2FyZCIsWTd0PVt0aSxNYixEN3QsQTd0LFA3dCxFN3QsSTd0LE43dCxSN3QsTzd0LEY3dCxCN3QsSDd0LHE3dCxWN3Qsajd0LFU3dCxXN3QsRzd0XSxwbHM9KEg2ZT17fSxHdChHdChHdChHdChHdChHdChHdChHdChHdChHdChINmUsdGksb19hKSxNYixuX2EpLEQ3dCxsX2EpLEE3dCxjX2EpLFA3dCxkX2EpLEU3dCx1X2EpLEk3dCxwX2EpLE43dCxmX2EpLFI3dCxoX2EpLE83dCxtX2EpLEd0KEd0KEd0KEd0KEd0KEd0KEd0KEd0KEd0KEg2ZSxGN3QsZ19hKSxCN3QsYl9hKSxIN3Qsdl9hKSxxN3QseF9hKSxWN3QseV9hKSxqN3Qsd19hKSxVN3QsTV9hKSxXN3Qsa19hKSxHN3QsU19hKSksel9hPXtjbGFzc2ljOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSxkdW90b25lOns5MDA6ImZhZCIsNDAwOiJmYWRyIiwzMDA6ImZhZGwiLDEwMDoiZmFkdCJ9LHNoYXJwOns5MDA6ImZhc3MiLDQwMDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwic2hhcnAtZHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSxzbGFiOns0MDA6ImZhc2xyIn0sInNsYWItcHJlc3MiOns0MDA6ImZhc2xwciJ9LHdoaXRlYm9hcmQ6ezYwMDoiZmF3c2IifSx0aHVtYnByaW50OnszMDA6ImZhdGwifSxub3Rkb2c6ezkwMDoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7OTAwOiJmYW5kcyJ9LGV0Y2g6ezkwMDoiZmFlcyJ9LGdyYXBoaXRlOnsxMDA6ImZhZ3QifSxjaGlzZWw6ezQwMDoiZmFjciJ9LGplbGx5Ons0MDA6ImZhanIifSwiamVsbHktZmlsbCI6ezQwMDoiZmFqZnIifSwiamVsbHktZHVvIjp7NDAwOiJmYWpkciJ9LHV0aWxpdHk6ezYwMDoiZmF1c2IifSwidXRpbGl0eS1kdW8iOns2MDA6ImZhdWRzYiJ9LCJ1dGlsaXR5LWZpbGwiOns2MDA6ImZhdWZzYiJ9fSxDX2E9eyJGb250IEF3ZXNvbWUgNyBGcmVlIjp7OTAwOiJmYXMiLDQwMDoiZmFyIn0sIkZvbnQgQXdlc29tZSA3IFBybyI6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIiwxMDA6ImZhdCJ9LCJGb250IEF3ZXNvbWUgNyBCcmFuZHMiOns0MDA6ImZhYiIsbm9ybWFsOiJmYWIifSwiRm9udCBBd2Vzb21lIDcgRHVvdG9uZSI6ezkwMDoiZmFkIiw0MDA6ImZhZHIiLG5vcm1hbDoiZmFkciIsMzAwOiJmYWRsIiwxMDA6ImZhZHQifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAiOns5MDA6ImZhc3MiLDQwMDoiZmFzciIsbm9ybWFsOiJmYXNyIiwzMDA6ImZhc2wiLDEwMDoiZmFzdCJ9LCJGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lIjp7OTAwOiJmYXNkcyIsNDAwOiJmYXNkciIsbm9ybWFsOiJmYXNkciIsMzAwOiJmYXNkbCIsMTAwOiJmYXNkdCJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSI6ezQwMDoiZmFqciIsbm9ybWFsOiJmYWpyIn0sIkZvbnQgQXdlc29tZSA3IEplbGx5IEZpbGwiOns0MDA6ImZhamZyIixub3JtYWw6ImZhamZyIn0sIkZvbnQgQXdlc29tZSA3IEplbGx5IER1byI6ezQwMDoiZmFqZHIiLG5vcm1hbDoiZmFqZHIifSwiRm9udCBBd2Vzb21lIDcgU2xhYiI6ezQwMDoiZmFzbHIiLG5vcm1hbDoiZmFzbHIifSwiRm9udCBBd2Vzb21lIDcgU2xhYiBQcmVzcyI6ezQwMDoiZmFzbHByIixub3JtYWw6ImZhc2xwciJ9LCJGb250IEF3ZXNvbWUgNyBUaHVtYnByaW50Ijp7MzAwOiJmYXRsIixub3JtYWw6ImZhdGwifSwiRm9udCBBd2Vzb21lIDcgTm90ZG9nIjp7OTAwOiJmYW5zIixub3JtYWw6ImZhbnMifSwiRm9udCBBd2Vzb21lIDcgTm90ZG9nIER1byI6ezkwMDoiZmFuZHMiLG5vcm1hbDoiZmFuZHMifSwiRm9udCBBd2Vzb21lIDcgRXRjaCI6ezkwMDoiZmFlcyIsbm9ybWFsOiJmYWVzIn0sIkZvbnQgQXdlc29tZSA3IEdyYXBoaXRlIjp7MTAwOiJmYWd0Iixub3JtYWw6ImZhZ3QifSwiRm9udCBBd2Vzb21lIDcgQ2hpc2VsIjp7NDAwOiJmYWNyIixub3JtYWw6ImZhY3IifSwiRm9udCBBd2Vzb21lIDcgV2hpdGVib2FyZCI6ezYwMDoiZmF3c2IiLG5vcm1hbDoiZmF3c2IifSwiRm9udCBBd2Vzb21lIDcgVXRpbGl0eSI6ezYwMDoiZmF1c2IiLG5vcm1hbDoiZmF1c2IifSwiRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBEdW8iOns2MDA6ImZhdWRzYiIsbm9ybWFsOiJmYXVkc2IifSwiRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBGaWxsIjp7NjAwOiJmYXVmc2IiLG5vcm1hbDoiZmF1ZnNiIn19LF9fYT1uZXcgTWFwKFtbImNsYXNzaWMiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIiwiYnJhbmRzIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJkdW90b25lIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZCIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsic2hhcnAiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsic2hhcnAtZHVvdG9uZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXNkcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiY2hpc2VsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhY3IiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbImV0Y2giLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFlcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJncmFwaGl0ZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWd0IixkZWZhdWx0U3R5bGVJZDoidGhpbiIsc3R5bGVJZHM6WyJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6MTAwfV0sWyJqZWxseSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWpyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJqZWxseS1kdW8iLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqZHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbImplbGx5LWZpbGwiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqZnIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbIm5vdGRvZyIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYW5zIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbIm5vdGRvZy1kdW8iLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFuZHMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsic2xhYiIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXNsciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsic2xhYi1wcmVzcyIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXNscHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbInRodW1icHJpbnQiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF0bCIsZGVmYXVsdFN0eWxlSWQ6ImxpZ2h0IixzdHlsZUlkczpbImxpZ2h0Il0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6MzAwfV0sWyJ1dGlsaXR5Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdXNiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XSxbInV0aWxpdHktZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdWRzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ1dGlsaXR5LWZpbGwiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF1ZnNiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XSxbIndoaXRlYm9hcmQiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF3c2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dXSksVF9hPXtjaGlzZWw6e3JlZ3VsYXI6ImZhY3IifSxjbGFzc2ljOnticmFuZHM6ImZhYiIsbGlnaHQ6ImZhbCIscmVndWxhcjoiZmFyIixzb2xpZDoiZmFzIix0aGluOiJmYXQifSxkdW90b25lOntsaWdodDoiZmFkbCIscmVndWxhcjoiZmFkciIsc29saWQ6ImZhZCIsdGhpbjoiZmFkdCJ9LGV0Y2g6e3NvbGlkOiJmYWVzIn0sZ3JhcGhpdGU6e3RoaW46ImZhZ3QifSxqZWxseTp7cmVndWxhcjoiZmFqciJ9LCJqZWxseS1kdW8iOntyZWd1bGFyOiJmYWpkciJ9LCJqZWxseS1maWxsIjp7cmVndWxhcjoiZmFqZnIifSxub3Rkb2c6e3NvbGlkOiJmYW5zIn0sIm5vdGRvZy1kdW8iOntzb2xpZDoiZmFuZHMifSxzaGFycDp7bGlnaHQ6ImZhc2wiLHJlZ3VsYXI6ImZhc3IiLHNvbGlkOiJmYXNzIix0aGluOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOntsaWdodDoiZmFzZGwiLHJlZ3VsYXI6ImZhc2RyIixzb2xpZDoiZmFzZHMiLHRoaW46ImZhc2R0In0sc2xhYjp7cmVndWxhcjoiZmFzbHIifSwic2xhYi1wcmVzcyI6e3JlZ3VsYXI6ImZhc2xwciJ9LHRodW1icHJpbnQ6e2xpZ2h0OiJmYXRsIn0sdXRpbGl0eTp7c2VtaWJvbGQ6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7c2VtaWJvbGQ6ImZhdWRzYiJ9LCJ1dGlsaXR5LWZpbGwiOntzZW1pYm9sZDoiZmF1ZnNiIn0sd2hpdGVib2FyZDp7c2VtaWJvbGQ6ImZhd3NiIn19LEs3dD1bImZhayIsImZhLWtpdCIsImZha2QiLCJmYS1raXQtZHVvdG9uZSJdLFo3dD17a2l0OntmYWs6ImtpdCIsImZhLWtpdCI6ImtpdCJ9LCJraXQtZHVvdG9uZSI6e2Zha2Q6ImtpdC1kdW90b25lIiwiZmEta2l0LWR1b3RvbmUiOiJraXQtZHVvdG9uZSJ9fSxMX2E9WyJraXQiXSwkX2E9ImtpdCIsRF9hPSJraXQtZHVvdG9uZSIsQV9hPSJLaXQiLFBfYT0iS2l0IER1b3RvbmUiLGZscz1HdChHdCh7fSwkX2EsQV9hKSxEX2EsUF9hKSxFX2E9e2tpdDp7ImZhLWtpdCI6ImZhayJ9LCJraXQtZHVvdG9uZSI6eyJmYS1raXQtZHVvdG9uZSI6ImZha2QifX0sSV9hPXsiRm9udCBBd2Vzb21lIEtpdCI6ezQwMDoiZmFrIixub3JtYWw6ImZhayJ9LCJGb250IEF3ZXNvbWUgS2l0IER1b3RvbmUiOns0MDA6ImZha2QiLG5vcm1hbDoiZmFrZCJ9fSxOX2E9e2tpdDp7ZmFrOiJmYS1raXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJmYS1raXQtZHVvdG9uZSJ9fSxYN3Q9e2tpdDp7a2l0OiJmYWsifSwia2l0LWR1b3RvbmUiOnsia2l0LWR1b3RvbmUiOiJmYWtkIn19LFFKPXtHUk9VUDoiZHVvdG9uZS1ncm91cCIsU1dBUF9PUEFDSVRZOiJzd2FwLW9wYWNpdHkiLFBSSU1BUlk6InByaW1hcnkiLFNFQ09OREFSWToic2Vjb25kYXJ5In0sUl9hPVsiZmEtY2xhc3NpYyIsImZhLWR1b3RvbmUiLCJmYS1zaGFycCIsImZhLXNoYXJwLWR1b3RvbmUiLCJmYS10aHVtYnByaW50IiwiZmEtd2hpdGVib2FyZCIsImZhLW5vdGRvZyIsImZhLW5vdGRvZy1kdW8iLCJmYS1jaGlzZWwiLCJmYS1ldGNoIiwiZmEtZ3JhcGhpdGUiLCJmYS1qZWxseSIsImZhLWplbGx5LWZpbGwiLCJmYS1qZWxseS1kdW8iLCJmYS1zbGFiIiwiZmEtc2xhYi1wcmVzcyIsImZhLXV0aWxpdHkiLCJmYS11dGlsaXR5LWR1byIsImZhLXV0aWxpdHktZmlsbCJdLE9fYT0iY2xhc3NpYyIsRl9hPSJkdW90b25lIixCX2E9InNoYXJwIixIX2E9InNoYXJwLWR1b3RvbmUiLHFfYT0iY2hpc2VsIixWX2E9ImV0Y2giLGpfYT0iZ3JhcGhpdGUiLFVfYT0iamVsbHkiLFdfYT0iamVsbHktZHVvIixHX2E9ImplbGx5LWZpbGwiLFlfYT0ibm90ZG9nIixLX2E9Im5vdGRvZy1kdW8iLFpfYT0ic2xhYiIsWF9hPSJzbGFiLXByZXNzIixRX2E9InRodW1icHJpbnQiLEpfYT0idXRpbGl0eSIsZVRhPSJ1dGlsaXR5LWR1byIsdFRhPSJ1dGlsaXR5LWZpbGwiLGFUYT0id2hpdGVib2FyZCIsclRhPSJDbGFzc2ljIixzVGE9IkR1b3RvbmUiLGlUYT0iU2hhcnAiLG9UYT0iU2hhcnAgRHVvdG9uZSIsblRhPSJDaGlzZWwiLGxUYT0iRXRjaCIsY1RhPSJHcmFwaGl0ZSIsZFRhPSJKZWxseSIsdVRhPSJKZWxseSBEdW8iLHBUYT0iSmVsbHkgRmlsbCIsZlRhPSJOb3Rkb2ciLGhUYT0iTm90ZG9nIER1byIsbVRhPSJTbGFiIixnVGE9IlNsYWIgUHJlc3MiLGJUYT0iVGh1bWJwcmludCIsdlRhPSJVdGlsaXR5Iix4VGE9IlV0aWxpdHkgRHVvIix5VGE9IlV0aWxpdHkgRmlsbCIsd1RhPSJXaGl0ZWJvYXJkIixobHM9KHE2ZT17fSxHdChHdChHdChHdChHdChHdChHdChHdChHdChHdChxNmUsT19hLHJUYSksRl9hLHNUYSksQl9hLGlUYSksSF9hLG9UYSkscV9hLG5UYSksVl9hLGxUYSksal9hLGNUYSksVV9hLGRUYSksV19hLHVUYSksR19hLHBUYSksR3QoR3QoR3QoR3QoR3QoR3QoR3QoR3QoR3QocTZlLFlfYSxmVGEpLEtfYSxoVGEpLFpfYSxtVGEpLFhfYSxnVGEpLFFfYSxiVGEpLEpfYSx2VGEpLGVUYSx4VGEpLHRUYSx5VGEpLGFUYSx3VGEpKSxNVGE9ImtpdCIsa1RhPSJraXQtZHVvdG9uZSIsU1RhPSJLaXQiLHpUYT0iS2l0IER1b3RvbmUiLG1scz1HdChHdCh7fSxNVGEsU1RhKSxrVGEselRhKSxDVGE9e2NsYXNzaWM6eyJmYS1icmFuZHMiOiJmYWIiLCJmYS1kdW90b25lIjoiZmFkIiwiZmEtbGlnaHQiOiJmYWwiLCJmYS1yZWd1bGFyIjoiZmFyIiwiZmEtc29saWQiOiJmYXMiLCJmYS10aGluIjoiZmF0In0sZHVvdG9uZTp7ImZhLXJlZ3VsYXIiOiJmYWRyIiwiZmEtbGlnaHQiOiJmYWRsIiwiZmEtdGhpbiI6ImZhZHQifSxzaGFycDp7ImZhLXNvbGlkIjoiZmFzcyIsImZhLXJlZ3VsYXIiOiJmYXNyIiwiZmEtbGlnaHQiOiJmYXNsIiwiZmEtdGhpbiI6ImZhc3QifSwic2hhcnAtZHVvdG9uZSI6eyJmYS1zb2xpZCI6ImZhc2RzIiwiZmEtcmVndWxhciI6ImZhc2RyIiwiZmEtbGlnaHQiOiJmYXNkbCIsImZhLXRoaW4iOiJmYXNkdCJ9LHNsYWI6eyJmYS1yZWd1bGFyIjoiZmFzbHIifSwic2xhYi1wcmVzcyI6eyJmYS1yZWd1bGFyIjoiZmFzbHByIn0sd2hpdGVib2FyZDp7ImZhLXNlbWlib2xkIjoiZmF3c2IifSx0aHVtYnByaW50OnsiZmEtbGlnaHQiOiJmYXRsIn0sbm90ZG9nOnsiZmEtc29saWQiOiJmYW5zIn0sIm5vdGRvZy1kdW8iOnsiZmEtc29saWQiOiJmYW5kcyJ9LGV0Y2g6eyJmYS1zb2xpZCI6ImZhZXMifSxncmFwaGl0ZTp7ImZhLXRoaW4iOiJmYWd0In0samVsbHk6eyJmYS1yZWd1bGFyIjoiZmFqciJ9LCJqZWxseS1maWxsIjp7ImZhLXJlZ3VsYXIiOiJmYWpmciJ9LCJqZWxseS1kdW8iOnsiZmEtcmVndWxhciI6ImZhamRyIn0sY2hpc2VsOnsiZmEtcmVndWxhciI6ImZhY3IifSx1dGlsaXR5OnsiZmEtc2VtaWJvbGQiOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6ImZhdWRzYiJ9LCJ1dGlsaXR5LWZpbGwiOnsiZmEtc2VtaWJvbGQiOiJmYXVmc2IifX0sX1RhPXtjbGFzc2ljOlsiZmFzIiwiZmFyIiwiZmFsIiwiZmF0IiwiZmFkIl0sZHVvdG9uZTpbImZhZHIiLCJmYWRsIiwiZmFkdCJdLHNoYXJwOlsiZmFzcyIsImZhc3IiLCJmYXNsIiwiZmFzdCJdLCJzaGFycC1kdW90b25lIjpbImZhc2RzIiwiZmFzZHIiLCJmYXNkbCIsImZhc2R0Il0sc2xhYjpbImZhc2xyIl0sInNsYWItcHJlc3MiOlsiZmFzbHByIl0sd2hpdGVib2FyZDpbImZhd3NiIl0sdGh1bWJwcmludDpbImZhdGwiXSxub3Rkb2c6WyJmYW5zIl0sIm5vdGRvZy1kdW8iOlsiZmFuZHMiXSxldGNoOlsiZmFlcyJdLGdyYXBoaXRlOlsiZmFndCJdLGplbGx5OlsiZmFqciJdLCJqZWxseS1maWxsIjpbImZhamZyIl0sImplbGx5LWR1byI6WyJmYWpkciJdLGNoaXNlbDpbImZhY3IiXSx1dGlsaXR5OlsiZmF1c2IiXSwidXRpbGl0eS1kdW8iOlsiZmF1ZHNiIl0sInV0aWxpdHktZmlsbCI6WyJmYXVmc2IiXX0sVjZlPXtjbGFzc2ljOntmYWI6ImZhLWJyYW5kcyIsZmFkOiJmYS1kdW90b25lIixmYWw6ImZhLWxpZ2h0IixmYXI6ImZhLXJlZ3VsYXIiLGZhczoiZmEtc29saWQiLGZhdDoiZmEtdGhpbiJ9LGR1b3RvbmU6e2ZhZHI6ImZhLXJlZ3VsYXIiLGZhZGw6ImZhLWxpZ2h0IixmYWR0OiJmYS10aGluIn0sc2hhcnA6e2Zhc3M6ImZhLXNvbGlkIixmYXNyOiJmYS1yZWd1bGFyIixmYXNsOiJmYS1saWdodCIsZmFzdDoiZmEtdGhpbiJ9LCJzaGFycC1kdW90b25lIjp7ZmFzZHM6ImZhLXNvbGlkIixmYXNkcjoiZmEtcmVndWxhciIsZmFzZGw6ImZhLWxpZ2h0IixmYXNkdDoiZmEtdGhpbiJ9LHNsYWI6e2Zhc2xyOiJmYS1yZWd1bGFyIn0sInNsYWItcHJlc3MiOntmYXNscHI6ImZhLXJlZ3VsYXIifSx3aGl0ZWJvYXJkOntmYXdzYjoiZmEtc2VtaWJvbGQifSx0aHVtYnByaW50OntmYXRsOiJmYS1saWdodCJ9LG5vdGRvZzp7ZmFuczoiZmEtc29saWQifSwibm90ZG9nLWR1byI6e2ZhbmRzOiJmYS1zb2xpZCJ9LGV0Y2g6e2ZhZXM6ImZhLXNvbGlkIn0sZ3JhcGhpdGU6e2ZhZ3Q6ImZhLXRoaW4ifSxqZWxseTp7ZmFqcjoiZmEtcmVndWxhciJ9LCJqZWxseS1maWxsIjp7ZmFqZnI6ImZhLXJlZ3VsYXIifSwiamVsbHktZHVvIjp7ZmFqZHI6ImZhLXJlZ3VsYXIifSxjaGlzZWw6e2ZhY3I6ImZhLXJlZ3VsYXIifSx1dGlsaXR5OntmYXVzYjoiZmEtc2VtaWJvbGQifSwidXRpbGl0eS1kdW8iOntmYXVkc2I6ImZhLXNlbWlib2xkIn0sInV0aWxpdHktZmlsbCI6e2ZhdWZzYjoiZmEtc2VtaWJvbGQifX0sVFRhPVsiZmEtc29saWQiLCJmYS1yZWd1bGFyIiwiZmEtbGlnaHQiLCJmYS10aGluIiwiZmEtZHVvdG9uZSIsImZhLWJyYW5kcyIsImZhLXNlbWlib2xkIl0sUTd0PVsiZmEiLCJmYXMiLCJmYXIiLCJmYWwiLCJmYXQiLCJmYWQiLCJmYWRyIiwiZmFkbCIsImZhZHQiLCJmYWIiLCJmYXNzIiwiZmFzciIsImZhc2wiLCJmYXN0IiwiZmFzZHMiLCJmYXNkciIsImZhc2RsIiwiZmFzZHQiLCJmYXNsciIsImZhc2xwciIsImZhd3NiIiwiZmF0bCIsImZhbnMiLCJmYW5kcyIsImZhZXMiLCJmYWd0IiwiZmFqciIsImZhamZyIiwiZmFqZHIiLCJmYWNyIiwiZmF1c2IiLCJmYXVkc2IiLCJmYXVmc2IiXS5jb25jYXQoUl9hLFRUYSksTFRhPVsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIiwiZHVvdG9uZSIsImJyYW5kcyIsInNlbWlib2xkIl0sSjd0PVsxLDIsMyw0LDUsNiw3LDgsOSwxMF0sJFRhPUo3dC5jb25jYXQoWzExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwXSksRFRhPVsiYXciLCJmdyIsInB1bGwtbGVmdCIsInB1bGwtcmlnaHQiXSxBVGE9W10uY29uY2F0KGsxKE9iamVjdC5rZXlzKF9UYSkpLExUYSxEVGEsWyIyeHMiLCJ4cyIsInNtIiwibGciLCJ4bCIsIjJ4bCIsImJlYXQiLCJib3JkZXIiLCJmYWRlIiwiYmVhdC1mYWRlIiwiYm91bmNlIiwiZmxpcC1ib3RoIiwiZmxpcC1ob3Jpem9udGFsIiwiZmxpcC12ZXJ0aWNhbCIsImZsaXAiLCJpbnZlcnNlIiwibGF5ZXJzIiwibGF5ZXJzLWJvdHRvbS1sZWZ0IiwibGF5ZXJzLWJvdHRvbS1yaWdodCIsImxheWVycy1jb3VudGVyIiwibGF5ZXJzLXRleHQiLCJsYXllcnMtdG9wLWxlZnQiLCJsYXllcnMtdG9wLXJpZ2h0IiwibGkiLCJwdWxsLWVuZCIsInB1bGwtc3RhcnQiLCJwdWxzZSIsInJvdGF0ZS0xODAiLCJyb3RhdGUtMjcwIiwicm90YXRlLTkwIiwicm90YXRlLWJ5Iiwic2hha2UiLCJzcGluLXB1bHNlIiwic3Bpbi1yZXZlcnNlIiwic3BpbiIsInN0YWNrLTF4Iiwic3RhY2stMngiLCJzdGFjayIsInVsIiwid2lkdGgtYXV0byIsIndpZHRoLWZpeGVkIixRSi5HUk9VUCxRSi5TV0FQX09QQUNJVFksUUouUFJJTUFSWSxRSi5TRUNPTkRBUlldKS5jb25jYXQoSjd0Lm1hcChmdW5jdGlvbihhKXtyZXR1cm4iIi5jb25jYXQoYSwieCIpfSkpLmNvbmNhdCgkVGEubWFwKGZ1bmN0aW9uKGEpe3JldHVybiJ3LSIuY29uY2F0KGEpfSkpLFBUYT17IkZvbnQgQXdlc29tZSA1IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDUgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwifSwiRm9udCBBd2Vzb21lIDUgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA1IER1b3RvbmUiOns5MDA6ImZhZCJ9fSxYbD0iX19fRk9OVF9BV0VTT01FX19fIixqNmU9MTYsZTl0PSJmYSIsdDl0PSJzdmctaW5saW5lLS1mYSIsbGQ9ImRhdGEtZmEtaTJzdmciLFU2ZT0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudCIsRVRhPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmciLFc2ZT0iZGF0YS1wcmVmaXgiLEc2ZT0iZGF0YS1pY29uIixhOXQ9ImZvbnRhd2Vzb21lLWkyc3ZnIixJVGE9ImFzeW5jIixOVGE9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0scjl0PVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLHM5dD0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtzKGtiLCJmYW1pbHlQcm94eSIpO2k5dD1YZSh7fSxMN3QpO2k5dFt0aV09WGUoWGUoWGUoWGUoe30seyJmYS1kdW90b25lIjoiZHVvdG9uZSJ9KSxMN3RbdGldKSxaN3Qua2l0KSxaN3RbImtpdC1kdW90b25lIl0pO1JUYT1rYihpOXQpLFk2ZT1YZSh7fSxUX2EpO1k2ZVt0aV09WGUoWGUoWGUoWGUoe30se2R1b3RvbmU6ImZhZCJ9KSxZNmVbdGldKSxYN3Qua2l0KSxYN3RbImtpdC1kdW90b25lIl0pO285dD1rYihZNmUpLEs2ZT1YZSh7fSxWNmUpO0s2ZVt0aV09WGUoWGUoe30sSzZlW3RpXSksTl9hLmtpdCk7WjZlPWtiKEs2ZSksWDZlPVhlKHt9LENUYSk7WDZlW3RpXT1YZShYZSh7fSxYNmVbdGldKSxFX2Eua2l0KTtnbHM9a2IoWDZlKSxPVGE9cl9hLG45dD0iZmEtbGF5ZXJzLXRleHQiLEZUYT1zX2EsQlRhPVhlKHt9LHpfYSksYmxzPWtiKEJUYSksSFRhPVsiY2xhc3MiLCJkYXRhLXByZWZpeCIsImRhdGEtaWNvbiIsImRhdGEtZmEtdHJhbnNmb3JtIiwiZGF0YS1mYS1tYXNrIl0sUTZlPWlfYSxxVGE9W10uY29uY2F0KGsxKExfYSksazEoQVRhKSksU2I9WDAuRm9udEF3ZXNvbWVDb25maWd8fHt9O3MoVlRhLCJnZXRBdHRyQ29uZmlnIik7cyhqVGEsImNvZXJjZSIpLHByJiZ0eXBlb2YgcHIucXVlcnlTZWxlY3Rvcj09ImZ1bmN0aW9uIiYmKGw5dD1bWyJkYXRhLWZhbWlseS1wcmVmaXgiLCJmYW1pbHlQcmVmaXgiXSxbImRhdGEtY3NzLXByZWZpeCIsImNzc1ByZWZpeCJdLFsiZGF0YS1mYW1pbHktZGVmYXVsdCIsImZhbWlseURlZmF1bHQiXSxbImRhdGEtc3R5bGUtZGVmYXVsdCIsInN0eWxlRGVmYXVsdCJdLFsiZGF0YS1yZXBsYWNlbWVudC1jbGFzcyIsInJlcGxhY2VtZW50Q2xhc3MiXSxbImRhdGEtYXV0by1yZXBsYWNlLXN2ZyIsImF1dG9SZXBsYWNlU3ZnIl0sWyJkYXRhLWF1dG8tYWRkLWNzcyIsImF1dG9BZGRDc3MiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cyIsInNlYXJjaFBzZXVkb0VsZW1lbnRzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtd2FybmluZ3MiLCJzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtZnVsbC1zY2FuIiwic2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiJdLFsiZGF0YS1vYnNlcnZlLW11dGF0aW9ucyIsIm9ic2VydmVNdXRhdGlvbnMiXSxbImRhdGEtbXV0YXRlLWFwcHJvYWNoIiwibXV0YXRlQXBwcm9hY2giXSxbImRhdGEta2VlcC1vcmlnaW5hbC1zb3VyY2UiLCJrZWVwT3JpZ2luYWxTb3VyY2UiXSxbImRhdGEtbWVhc3VyZS1wZXJmb3JtYW5jZSIsIm1lYXN1cmVQZXJmb3JtYW5jZSJdLFsiZGF0YS1zaG93LW1pc3NpbmctaWNvbnMiLCJzaG93TWlzc2luZ0ljb25zIl1dLGw5dC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBlPUtKKGEsMiksdD1lWzBdLHI9ZVsxXSxpPWpUYShWVGEodCkpO2khPW51bGwmJihTYltyXT1pKX0pKTtjOXQ9e3N0eWxlRGVmYXVsdDoic29saWQiLGZhbWlseURlZmF1bHQ6dGksY3NzUHJlZml4OmU5dCxyZXBsYWNlbWVudENsYXNzOnQ5dCxhdXRvUmVwbGFjZVN2ZzohMCxhdXRvQWRkQ3NzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzOiExLHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3M6ITAsc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbjohMSxvYnNlcnZlTXV0YXRpb25zOiEwLG11dGF0ZUFwcHJvYWNoOiJhc3luYyIsa2VlcE9yaWdpbmFsU291cmNlOiEwLG1lYXN1cmVQZXJmb3JtYW5jZTohMSxzaG93TWlzc2luZ0ljb25zOiEwfTtTYi5mYW1pbHlQcmVmaXgmJihTYi5jc3NQcmVmaXg9U2IuZmFtaWx5UHJlZml4KTtIOD1YZShYZSh7fSxjOXQpLFNiKTtIOC5hdXRvUmVwbGFjZVN2Z3x8KEg4Lm9ic2VydmVNdXRhdGlvbnM9ITEpO0x0PXt9O09iamVjdC5rZXlzKGM5dCkuZm9yRWFjaChmdW5jdGlvbihhKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoTHQsYSx7ZW51bWVyYWJsZTohMCxzZXQ6cyhmdW5jdGlvbih0KXtIOFthXT10LHpiLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHIoTHQpfSl9LCJzZXQiKSxnZXQ6cyhmdW5jdGlvbigpe3JldHVybiBIOFthXX0sImdldCIpfSl9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTHQsImZhbWlseVByZWZpeCIse2VudW1lcmFibGU6ITAsc2V0OnMoZnVuY3Rpb24oZSl7SDguY3NzUHJlZml4PWUsemIuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdChMdCl9KX0sInNldCIpLGdldDpzKGZ1bmN0aW9uKCl7cmV0dXJuIEg4LmNzc1ByZWZpeH0sImdldCIpfSksWDAuRm9udEF3ZXNvbWVDb25maWc9THQ7emI9W107cyhVVGEsIm9uQ2hhbmdlIik7UTA9ajZlLEgyPXtzaXplOjE2LHg6MCx5OjAscm90YXRlOjAsZmxpcFg6ITEsZmxpcFk6ITF9O3MoV1RhLCJpbnNlcnRDc3MiKTtHVGE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjtzKGQ5dCwibmV4dFVuaXF1ZUlkIik7cyhxOCwidG9BcnJheSIpO3MoSjZlLCJjbGFzc0FycmF5Iik7cyh1OXQsImh0bWxFc2NhcGUiKTtzKFlUYSwiam9pbkF0dHJpYnV0ZXMiKTtzKEpKLCJqb2luU3R5bGVzIik7cyhldWUsInRyYW5zZm9ybUlzTWVhbmluZ2Z1bCIpO3MoS1RhLCJ0cmFuc2Zvcm1Gb3JTdmciKTtzKFpUYSwidHJhbnNmb3JtRm9yQ3NzIik7WFRhPWA6cm9vdCwgOmhvc3QgewogIC0tZmEtZm9udC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRnJlZSc7CiAgLS1mYS1mb250LXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEZyZWUnOwogIC0tZmEtZm9udC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgUHJvJzsKICAtLWZhLWZvbnQtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgUHJvJzsKICAtLWZhLWZvbnQtZHVvdG9uZTogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1kdW90b25lLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1icmFuZHM6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEJyYW5kcyc7CiAgLS1mYS1mb250LXNoYXJwLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNsYWItcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2xhYic7CiAgLS1mYS1mb250LXNsYWItcHJlc3MtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2xhYiBQcmVzcyc7CiAgLS1mYS1mb250LXdoaXRlYm9hcmQtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQnOwogIC0tZmEtZm9udC10aHVtYnByaW50LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBUaHVtYnByaW50JzsKICAtLWZhLWZvbnQtbm90ZG9nLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBOb3Rkb2cnOwogIC0tZmEtZm9udC1ub3Rkb2ctZHVvLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBOb3Rkb2cgRHVvJzsKICAtLWZhLWZvbnQtZXRjaC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRXRjaCc7CiAgLS1mYS1mb250LWdyYXBoaXRlLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEdyYXBoaXRlJzsKICAtLWZhLWZvbnQtamVsbHktcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHknOwogIC0tZmEtZm9udC1qZWxseS1maWxsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEplbGx5IEZpbGwnOwogIC0tZmEtZm9udC1qZWxseS1kdW8tcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHkgRHVvJzsKICAtLWZhLWZvbnQtY2hpc2VsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IENoaXNlbCc7CiAgLS1mYS1mb250LXV0aWxpdHktc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHknOwogIC0tZmEtZm9udC11dGlsaXR5LWR1by1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBEdW8nOwogIC0tZmEtZm9udC11dGlsaXR5LWZpbGwtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCc7Cn0KCi5zdmctaW5saW5lLS1mYSB7CiAgYm94LXNpemluZzogY29udGVudC1ib3g7CiAgZGlzcGxheTogdmFyKC0tZmEtZGlzcGxheSwgaW5saW5lLWJsb2NrKTsKICBoZWlnaHQ6IDFlbTsKICBvdmVyZmxvdzogdmlzaWJsZTsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoLCAxLjI1ZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeHMgewogIHZlcnRpY2FsLWFsaWduOiAwLjFlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteHMgewogIHZlcnRpY2FsLWFsaWduOiAwZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXNtIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMDcxNDI4NTcxNGVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1sZyB7CiAgdmVydGljYWwtYWxpZ246IC0wLjJlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4yNWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4zMTI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtbGVmdCwKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1wdWxsLXJpZ2h0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1saSB7CiAgd2lkdGg6IHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pOwogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBpbnNldC1ibG9jay1zdGFydDogMC4yNWVtOyAvKiBzeW5jaW5nIHZlcnRpY2FsIGFsaWdubWVudCB3aXRoIFdlYiBGb250IHJlbmRlcmluZyAqLwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIsIC5mYS1sYXllcnMtdGV4dCB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5mYS1sYXllcnMgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBoZWlnaHQ6IDFlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLmZhLWxheWVycyAuc3ZnLWlubGluZS0tZmEgewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy10ZXh0IHsKICBsZWZ0OiA1MCU7CiAgdG9wOiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy1jb3VudGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mYS1jb3VudGVyLWJhY2tncm91bmQtY29sb3IsICNmZjI1M2EpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWNvdW50ZXItYm9yZGVyLXJhZGl1cywgMWVtKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZmEtY291bnRlci1saW5lLWhlaWdodCwgMSk7CiAgbWF4LXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1heC13aWR0aCwgNWVtKTsKICBtaW4td2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWluLXdpZHRoLCAxLjVlbSk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwYWRkaW5nOiB2YXIoLS1mYS1jb3VudGVyLXBhZGRpbmcsIDAuMjVlbSAwLjVlbSk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1jb3VudGVyLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1yaWdodCB7CiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1sZWZ0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7Cn0KCi5mYS1sYXllcnMtdG9wLXJpZ2h0IHsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQoKLmZhLWxheWVycy10b3AtbGVmdCB7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7Cn0KCi5mYS0xeCB7CiAgZm9udC1zaXplOiAxZW07Cn0KCi5mYS0yeCB7CiAgZm9udC1zaXplOiAyZW07Cn0KCi5mYS0zeCB7CiAgZm9udC1zaXplOiAzZW07Cn0KCi5mYS00eCB7CiAgZm9udC1zaXplOiA0ZW07Cn0KCi5mYS01eCB7CiAgZm9udC1zaXplOiA1ZW07Cn0KCi5mYS02eCB7CiAgZm9udC1zaXplOiA2ZW07Cn0KCi5mYS03eCB7CiAgZm9udC1zaXplOiA3ZW07Cn0KCi5mYS04eCB7CiAgZm9udC1zaXplOiA4ZW07Cn0KCi5mYS05eCB7CiAgZm9udC1zaXplOiA5ZW07Cn0KCi5mYS0xMHggewogIGZvbnQtc2l6ZTogMTBlbTsKfQoKLmZhLTJ4cyB7CiAgZm9udC1zaXplOiBjYWxjKDEwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDEwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDEwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhzIHsKICBmb250LXNpemU6IGNhbGMoMTIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtc20gewogIGZvbnQtc2l6ZTogY2FsYygxNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDE0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1sZyB7CiAgZm9udC1zaXplOiBjYWxjKDIwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDIwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMjAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDIwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhsIHsKICBmb250LXNpemU6IGNhbGMoMjQgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjRweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyNCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjQgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtMnhsIHsKICBmb250LXNpemU6IGNhbGMoMzIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMzJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAzMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMzIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtd2lkdGgtYXV0byB7CiAgLS1mYS13aWR0aDogYXV0bzsKfQoKLmZhLWZ3LAouZmEtd2lkdGgtZml4ZWQgewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKfQoKLmZhLXVsIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtbGktbWFyZ2luLCAyLjVlbSk7CiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7Cn0KLmZhLXVsID4gbGkgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmZhLWxpIHsKICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cn0KCi8qIEhlYWRzIFVwOiBCb3JkZXJlZCBJY29ucyB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gdGhlIGZ1dHVyZSEKICAtIFRoaXMgZmVhdHVyZSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZSBvZiBGb250IEF3ZXNvbWUgKHY4KSEKICAtIFlvdSBtYXkgY29udGludWUgdG8gdXNlIGl0IGluIHRoaXMgdmVyc2lvbiAqdjcpLCBidXQgaXQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIEZvbnQgQXdlc29tZSB2OC4KKi8KLyogTm90ZXM6CiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci13aWR0aCA9IDEvMTYgYnkgZGVmYXVsdCAodG8gcmVuZGVyIGFzIH4xcHggYmFzZWQgb24gYSAxNnB4IGRlZmF1bHQgZm9udC1zaXplKQoqIC0tQHt2LiRjc3MtcHJlZml4fS1ib3JkZXItcGFkZGluZyA9CiAgKiogMy8xNiBmb3IgdmVydGljYWwgcGFkZGluZyAodG8gZ2l2ZSB+MnB4IG9mIHZlcnRpY2FsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24gY29uc2lkZXJpbmcgaXQncyB2ZXJ0aWNhbCBhbGlnbm1lbnQpCiAgKiogNC8xNiBmb3IgaG9yaXpvbnRhbCBwYWRkaW5nICh0byBnaXZlIH40cHggb2YgaG9yaXpvbnRhbCB3aGl0ZXNwYWNlIGFyb3VuZCBhbiBpY29uKQoqLwouZmEtYm9yZGVyIHsKICBib3JkZXItY29sb3I6IHZhcigtLWZhLWJvcmRlci1jb2xvciwgI2VlZSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtYm9yZGVyLXJhZGl1cywgMC4xZW0pOwogIGJvcmRlci1zdHlsZTogdmFyKC0tZmEtYm9yZGVyLXN0eWxlLCBzb2xpZCk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1mYS1ib3JkZXItd2lkdGgsIDAuMDYyNWVtKTsKICBib3gtc2l6aW5nOiB2YXIoLS1mYS1ib3JkZXItYm94LXNpemluZywgY29udGVudC1ib3gpOwogIHBhZGRpbmc6IHZhcigtLWZhLWJvcmRlci1wYWRkaW5nLCAwLjE4NzVlbSAwLjI1ZW0pOwp9CgouZmEtcHVsbC1sZWZ0LAouZmEtcHVsbC1zdGFydCB7CiAgZmxvYXQ6IGlubGluZS1zdGFydDsKICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLXB1bGwtcmlnaHQsCi5mYS1wdWxsLWVuZCB7CiAgZmxvYXQ6IGlubGluZS1lbmQ7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLWJlYXQgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0OwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7Cn0KCi5mYS1ib3VuY2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1ib3VuY2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjI4LCAwLjg0LCAwLjQyLCAxKSk7Cn0KCi5mYS1mYWRlIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1iZWF0LWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0LWZhZGU7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpOwp9CgouZmEtZmxpcCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZsaXA7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLXNoYWtlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc2hha2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7Cn0KCi5mYS1zcGluIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDJzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4tcmV2ZXJzZSB7CiAgLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOwp9CgouZmEtcHVsc2UsCi5mYS1zcGluLXB1bHNlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIHN0ZXBzKDgpKTsKfQoKQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsKICAuZmEtYmVhdCwKICAuZmEtYm91bmNlLAogIC5mYS1mYWRlLAogIC5mYS1iZWF0LWZhZGUsCiAgLmZhLWZsaXAsCiAgLmZhLXB1bHNlLAogIC5mYS1zaGFrZSwKICAuZmEtc3BpbiwKICAuZmEtc3Bpbi1wdWxzZSB7CiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0IHsKICAwJSwgOTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDQ1JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtc2NhbGUsIDEuMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1ib3VuY2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXgsIDEuMSksIHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS15LCAwLjkpKSB0cmFuc2xhdGVZKDApOwogIH0KICAzMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS14LCAwLjkpLCB2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS15LCAxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1oZWlnaHQsIC0wLjVlbSkpOwogIH0KICA1MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS14LCAxLjA1KSwgdmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteSwgMC45NSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDU3JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLXJlYm91bmQsIC0wLjEyNWVtKSk7CiAgfQogIDY0JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDEwMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWZhZGUgewogIDUwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1mYWRlLW9wYWNpdHksIDAuNCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYmVhdC1mYWRlIHsKICAwJSwgMTAwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1iZWF0LWZhZGUtb3BhY2l0eSwgMC40KTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LWZhZGUtc2NhbGUsIDEuMTI1KSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmxpcCB7CiAgNTAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlM2QodmFyKC0tZmEtZmxpcC14LCAwKSwgdmFyKC0tZmEtZmxpcC15LCAxKSwgdmFyKC0tZmEtZmxpcC16LCAwKSwgdmFyKC0tZmEtZmxpcC1hbmdsZSwgLTE4MGRlZykpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNoYWtlIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpOwogIH0KICA0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7CiAgfQogIDglLCAyNCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4ZGVnKTsKICB9CiAgMTIlLCAyOCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMThkZWcpOwogIH0KICAxNiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyZGVnKTsKICB9CiAgMjAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTsKICB9CiAgMzIlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7CiAgfQogIDM2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZyk7CiAgfQogIDQwJSwgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1zcGluIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouZmEtcm90YXRlLTkwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMTgwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOwp9CgouZmEtcm90YXRlLTI3MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsKfQoKLmZhLWZsaXAtaG9yaXpvbnRhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7Cn0KCi5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTsKfQoKLmZhLWZsaXAtYm90aCwKLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAtMSk7Cn0KCi5mYS1yb3RhdGUtYnkgewogIHRyYW5zZm9ybTogcm90YXRlKHZhcigtLWZhLXJvdGF0ZS1hbmdsZSwgMCkpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXByaW1hcnkgewogIGZpbGw6IHZhcigtLWZhLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcik7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IHZhcigtLWZhLXNlY29uZGFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtcHJpbWFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXNlY29uZGFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXByaW1hcnksCi5zdmctaW5saW5lLS1mYSBtYXNrIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IGJsYWNrOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtaW52ZXJzZSB7CiAgZmlsbDogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5mYS1zdGFjayB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMmVtOwogIGxpbmUtaGVpZ2h0OiAyZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgd2lkdGg6IDIuNWVtOwp9CgouZmEtaW52ZXJzZSB7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMXggewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKICBoZWlnaHQ6IDFlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0yeCB7CiAgLS1mYS13aWR0aDogMi41ZW07CiAgaGVpZ2h0OiAyZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoKTsKfQoKLmZhLXN0YWNrLTF4LAouZmEtc3RhY2stMnggewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogdmFyKC0tZmEtc3RhY2stei1pbmRleCwgYXV0byk7Cn1gO3MocDl0LCJjc3MiKTtmOXQ9ITE7cyh0dWUsImVuc3VyZUNzcyIpO1FUYT17bWl4b3V0OnMoZnVuY3Rpb24oKXtyZXR1cm57ZG9tOntjc3M6cDl0LGluc2VydENzczp0dWV9fX0sIm1peG91dCIpLGhvb2tzOnMoZnVuY3Rpb24oKXtyZXR1cm57YmVmb3JlRE9NRWxlbWVudENyZWF0aW9uOnMoZnVuY3Rpb24oKXt0dWUoKX0sImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIpLGJlZm9yZUkyc3ZnOnMoZnVuY3Rpb24oKXt0dWUoKX0sImJlZm9yZUkyc3ZnIil9fSwiaG9va3MiKX0sUWw9WDB8fHt9O1FsW1hsXXx8KFFsW1hsXT17fSksUWxbWGxdLnN0eWxlc3x8KFFsW1hsXS5zdHlsZXM9e30pLFFsW1hsXS5ob29rc3x8KFFsW1hsXS5ob29rcz17fSksUWxbWGxdLnNoaW1zfHwoUWxbWGxdLnNoaW1zPVtdKTtTMT1RbFtYbF0saDl0PVtdLG05dD1zKGZ1bmN0aW9uKCl7cHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsbTl0KSxlZWU9MSxoOXQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KX0sImxpc3RlbmVyIiksZWVlPSExO1psJiYoZWVlPShwci5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/L15sb2FkZWR8XmMvOi9ebG9hZGVkfF5pfF5jLykudGVzdChwci5yZWFkeVN0YXRlKSxlZWV8fHByLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLG05dCkpO3MoSlRhLCJkb21yZWFkeSIpO3MoQ2IsInRvSHRtbCIpO3MoZzl0LCJpY29uRnJvbU1hcHBpbmciKTtlTGE9cyhmdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihyLGksbyxuKXtyZXR1cm4gZS5jYWxsKHQscixpLG8sbil9fSwiYmluZEludGVybmFsNCIpLGF1ZT1zKGZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBvPU9iamVjdC5rZXlzKGUpLG49by5sZW5ndGgsbD1pIT09dm9pZCAwP2VMYSh0LGkpOnQsZCxjLHA7Zm9yKHI9PT12b2lkIDA/KGQ9MSxwPWVbb1swXV0pOihkPTAscD1yKTtkPG47ZCsrKWM9b1tkXSxwPWwocCxlW2NdLGMsZSk7cmV0dXJuIHB9LCJmYXN0UmVkdWNlT2JqZWN0Iik7cyhiOXQsInRvSGV4Iik7cyh2OXQsIm5vcm1hbGl6ZUljb25zIik7cyhydWUsImRlZmluZUljb25zIik7c3VlPTEsejE9Mix2bHM9W1t6MSxEaSgvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIuKnBhdGguKmQ9IihbXiJdKikiLyx7ZDI6MixkMTozfSldLFt6MSxEaSgvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIvLHtkMjoyfSldLFtzdWUsRGkoL3BhdGggZmlsbD0iY3VycmVudENvbG9yIi4qZD0iKFteIl0rKSIvLHtkMToxfSldXSx4bHM9W1t6MSxEaSgvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIyOjEsZDI6MixhdHRyMTozLGQxOjR9KV0sW3oxLERpKC9wYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyLGF0dHIyOjMsZDI6NH0pXSxbejEsRGkoL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXSxbejEsRGkoL3BhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyfSldLFt6MSxEaSgvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QyOjEsYXR0cjI6MixkMTozLGF0dHIxOjR9KV0sW3oxLERpKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyLGQyOjMsYXR0cjI6NH0pXSxbejEsRGkoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QxOjEsYXR0cjE6Mn0pXSxbejEsRGkoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyfSldLFt6MSxEaSgvcGF0aCBkPSIoW14iXSspIi4qcGF0aCBkPSIoW14iXSspIi8se2QxOjEsZDI6Mn0pXSxbc3VlLERpKC9wYXRoIGQ9IihbXiJdKykiLyx7ZDE6MX0pXSxbc3VlLERpKC9wYXRoIHN0eWxlPSIoW14iXSspIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjJ9KV1dLF9iPVMxLnN0eWxlcyx0TGE9UzEuc2hpbXMseDl0PU9iamVjdC5rZXlzKFo2ZSksYUxhPXg5dC5yZWR1Y2UoZnVuY3Rpb24oYSxlKXtyZXR1cm4gYVtlXT1PYmplY3Qua2V5cyhaNmVbZV0pLGF9LHt9KSxpdWU9bnVsbCx5OXQ9e30sdzl0PXt9LE05dD17fSxrOXQ9e30sUzl0PXt9O3MockxhLCJpc1Jlc2VydmVkIik7cyhzTGEsImdldEljb25OYW1lIik7ejl0PXMoZnVuY3Rpb24oKXt2YXIgZT1zKGZ1bmN0aW9uKG8pe3JldHVybiBhdWUoX2IsZnVuY3Rpb24obixsLGQpe3JldHVybiBuW2RdPWF1ZShsLG8se30pLG59LHt9KX0sImxvb2t1cCIpO3k5dD1lKGZ1bmN0aW9uKGksbyxuKXtpZihvWzNdJiYoaVtvWzNdXT1uKSxvWzJdKXt2YXIgbD1vWzJdLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gdHlwZW9mIGQ9PSJudW1iZXIifSk7bC5mb3JFYWNoKGZ1bmN0aW9uKGQpe2lbZC50b1N0cmluZygxNildPW59KX1yZXR1cm4gaX0pLHc5dD1lKGZ1bmN0aW9uKGksbyxuKXtpZihpW25dPW4sb1syXSl7dmFyIGw9b1syXS5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkPT0ic3RyaW5nIn0pO2wuZm9yRWFjaChmdW5jdGlvbihkKXtpW2RdPW59KX1yZXR1cm4gaX0pLFM5dD1lKGZ1bmN0aW9uKGksbyxuKXt2YXIgbD1vWzJdO3JldHVybiBpW25dPW4sbC5mb3JFYWNoKGZ1bmN0aW9uKGQpe2lbZF09bn0pLGl9KTt2YXIgdD0iZmFyImluIF9ifHxMdC5hdXRvRmV0Y2hTdmcscj1hdWUodExhLGZ1bmN0aW9uKGksbyl7dmFyIG49b1swXSxsPW9bMV0sZD1vWzJdO3JldHVybiBsPT09ImZhciImJiF0JiYobD0iZmFzIiksdHlwZW9mIG49PSJzdHJpbmciJiYoaS5uYW1lc1tuXT17cHJlZml4OmwsaWNvbk5hbWU6ZH0pLHR5cGVvZiBuPT0ibnVtYmVyIiYmKGkudW5pY29kZXNbbi50b1N0cmluZygxNildPXtwcmVmaXg6bCxpY29uTmFtZTpkfSksaX0se25hbWVzOnt9LHVuaWNvZGVzOnt9fSk7TTl0PXIubmFtZXMsazl0PXIudW5pY29kZXMsaXVlPXRlZShMdC5zdHlsZURlZmF1bHQse2ZhbWlseTpMdC5mYW1pbHlEZWZhdWx0fSl9LCJidWlsZCIpO1VUYShmdW5jdGlvbihhKXtpdWU9dGVlKGEuc3R5bGVEZWZhdWx0LHtmYW1pbHk6THQuZmFtaWx5RGVmYXVsdH0pfSksejl0KCk7cyhvdWUsImJ5VW5pY29kZSIpO3MoaUxhLCJieUxpZ2F0dXJlIik7cyhjZCwiYnlBbGlhcyIpO3MoQzl0LCJieU9sZE5hbWUiKTtzKG9MYSwiYnlPbGRVbmljb2RlIik7cyhKMCwiZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCIpO185dD1zKGZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDpudWxsLGljb25OYW1lOm51bGwscmVzdDpbXX19LCJlbXB0eUNhbm9uaWNhbEljb24iKTtzKG5MYSwiZ2V0RmFtaWx5SWQiKTtzKHRlZSwiZ2V0Q2Fub25pY2FsUHJlZml4Iik7cyhsTGEsIm1vdmVOb25GYUNsYXNzZXNUb1Jlc3QiKTtzKFQ5dCwic29ydGVkVW5pcXVlVmFsdWVzIik7TDl0PVE3dC5jb25jYXQoSzd0KTtzKGFlZSwiZ2V0Q2Fub25pY2FsSWNvbiIpO3MoY0xhLCJhcHBseVNoaW1BbmRBbGlhcyIpO2RMYT1ZN3QuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhIT09dGl8fGEhPT1NYn0pLHVMYT1PYmplY3Qua2V5cyhWNmUpLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYSE9PXRpfSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3Qua2V5cyhWNmVbYV0pfSkuZmxhdCgpO3MocExhLCJnZXREZWZhdWx0Q2Fub25pY2FsUHJlZml4Iik7ZkxhPShmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtZQ2EodGhpcyxhKSx0aGlzLmRlZmluaXRpb25zPXt9fXJldHVybiBzKGEsIkxpYnJhcnkiKSxLQ2EoYSxbe2tleToiYWRkIix2YWx1ZTpzKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMscj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHIpLG89MDtvPHI7bysrKWlbb109YXJndW1lbnRzW29dO3ZhciBuPWkucmVkdWNlKHRoaXMuX3B1bGxEZWZpbml0aW9ucyx7fSk7T2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihsKXt0LmRlZmluaXRpb25zW2xdPVhlKFhlKHt9LHQuZGVmaW5pdGlvbnNbbF18fHt9KSxuW2xdKSxydWUobCxuW2xdKTt2YXIgZD1aNmVbdGldW2xdO2QmJnJ1ZShkLG5bbF0pLHo5dCgpfSl9LCJhZGQiKX0se2tleToicmVzZXQiLHZhbHVlOnMoZnVuY3Rpb24oKXt0aGlzLmRlZmluaXRpb25zPXt9fSwicmVzZXQiKX0se2tleToiX3B1bGxEZWZpbml0aW9ucyIsdmFsdWU6cyhmdW5jdGlvbih0LHIpe3ZhciBpPXIucHJlZml4JiZyLmljb25OYW1lJiZyLmljb24/ezA6cn06cjtyZXR1cm4gT2JqZWN0LmtleXMoaSkubWFwKGZ1bmN0aW9uKG8pe3ZhciBuPWlbb10sbD1uLnByZWZpeCxkPW4uaWNvbk5hbWUsYz1uLmljb24scD1jWzJdO3RbbF18fCh0W2xdPXt9KSxwLmxlbmd0aD4wJiZwLmZvckVhY2goZnVuY3Rpb24odSl7dHlwZW9mIHU9PSJzdHJpbmciJiYodFtsXVt1XT1jKX0pLHRbbF1bZF09Y30pLHR9LCJfcHVsbERlZmluaXRpb25zIil9XSl9KSgpLCQ5dD1bXSxWOD17fSxqOD17fSxoTGE9T2JqZWN0LmtleXMoajgpO3MobUxhLCJyZWdpc3RlclBsdWdpbnMiKTtzKG51ZSwiY2hhaW5Ib29rcyIpO3MoZGQsImNhbGxIb29rcyIpO3MoZTQsImNhbGxQcm92aWRlZCIpO3MobHVlLCJmaW5kSWNvbkRlZmluaXRpb24iKTtEOXQ9bmV3IGZMYSxnTGE9cyhmdW5jdGlvbigpe0x0LmF1dG9SZXBsYWNlU3ZnPSExLEx0Lm9ic2VydmVNdXRhdGlvbnM9ITEsZGQoIm5vQXV0byIpfSwibm9BdXRvIiksYkxhPXtpMnN2ZzpzKGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O3JldHVybiBabD8oZGQoImJlZm9yZUkyc3ZnIixlKSxlNCgicHNldWRvRWxlbWVudHMyc3ZnIixlKSxlNCgiaTJzdmciLGUpKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk9wZXJhdGlvbiByZXF1aXJlcyBhIERPTSBvZiBzb21lIGtpbmQuIikpfSwiaTJzdmciKSx3YXRjaDpzKGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LHQ9ZS5hdXRvUmVwbGFjZVN2Z1Jvb3Q7THQuYXV0b1JlcGxhY2VTdmc9PT0hMSYmKEx0LmF1dG9SZXBsYWNlU3ZnPSEwKSxMdC5vYnNlcnZlTXV0YXRpb25zPSEwLEpUYShmdW5jdGlvbigpe3hMYSh7YXV0b1JlcGxhY2VTdmdSb290OnR9KSxkZCgid2F0Y2giLGUpfSl9LCJ3YXRjaCIpfSx2TGE9e2ljb246cyhmdW5jdGlvbihlKXtpZihlPT09bnVsbClyZXR1cm4gbnVsbDtpZihaSihlKT09PSJvYmplY3QiJiZlLnByZWZpeCYmZS5pY29uTmFtZSlyZXR1cm57cHJlZml4OmUucHJlZml4LGljb25OYW1lOmNkKGUucHJlZml4LGUuaWNvbk5hbWUpfHxlLmljb25OYW1lfTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTIpe3ZhciB0PWVbMV0uaW5kZXhPZigiZmEtIik9PT0wP2VbMV0uc2xpY2UoMyk6ZVsxXSxyPXRlZShlWzBdKTtyZXR1cm57cHJlZml4OnIsaWNvbk5hbWU6Y2Qocix0KXx8dH19aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZS5pbmRleE9mKCIiLmNvbmNhdChMdC5jc3NQcmVmaXgsIi0iKSk+LTF8fGUubWF0Y2goT1RhKSkpe3ZhciBpPWFlZShlLnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDppLnByZWZpeHx8SjAoKSxpY29uTmFtZTpjZChpLnByZWZpeCxpLmljb25OYW1lKXx8aS5pY29uTmFtZX19aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgbz1KMCgpO3JldHVybntwcmVmaXg6byxpY29uTmFtZTpjZChvLGUpfHxlfX19LCJpY29uIil9LEVvPXtub0F1dG86Z0xhLGNvbmZpZzpMdCxkb206YkxhLHBhcnNlOnZMYSxsaWJyYXJ5OkQ5dCxmaW5kSWNvbkRlZmluaXRpb246bHVlLHRvSHRtbDpDYn0seExhPXMoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sdD1lLmF1dG9SZXBsYWNlU3ZnUm9vdCxyPXQ9PT12b2lkIDA/cHI6dDsoT2JqZWN0LmtleXMoUzEuc3R5bGVzKS5sZW5ndGg+MHx8THQuYXV0b0ZldGNoU3ZnKSYmWmwmJkx0LmF1dG9SZXBsYWNlU3ZnJiZFby5kb20uaTJzdmcoe25vZGU6cn0pfSwiYXV0b1JlcGxhY2UiKTtzKHJlZSwiZG9tVmFyaWFudHMiKTtzKHlMYSwiYXNJY29uIik7cyh3TGEsImFzU3ltYm9sIik7cyhNTGEsImlzTGFiZWxlZCIpO3MoY3VlLCJtYWtlSW5saW5lU3ZnQWJzdHJhY3QiKTtzKEE5dCwibWFrZUxheWVyc1RleHRBYnN0cmFjdCIpO3Moa0xhLCJtYWtlTGF5ZXJzQ291bnRlckFic3RyYWN0Iik7ZHVlPVMxLnN0eWxlcztzKHV1ZSwiYXNGb3VuZEljb24iKTtTTGE9e2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyfTtzKHpMYSwibWF5YmVOb3RpZnlNaXNzaW5nIik7cyhwdWUsImZpbmRJY29uIik7UDl0PXMoZnVuY3Rpb24oKXt9LCJub29wIiksZnVlPUx0Lm1lYXN1cmVQZXJmb3JtYW5jZSYmWEomJlhKLm1hcmsmJlhKLm1lYXN1cmU/WEo6e21hcms6UDl0LG1lYXN1cmU6UDl0fSxUYj0nRkEgIjcuMi4wIicsQ0xhPXMoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1ZS5tYXJrKCIiLmNvbmNhdChUYiwiICIpLmNvbmNhdChlLCIgYmVnaW5zIikpLGZ1bmN0aW9uKCl7cmV0dXJuIEU5dChlKX19LCJiZWdpbiIpLEU5dD1zKGZ1bmN0aW9uKGUpe2Z1ZS5tYXJrKCIiLmNvbmNhdChUYiwiICIpLmNvbmNhdChlLCIgZW5kcyIpKSxmdWUubWVhc3VyZSgiIi5jb25jYXQoVGIsIiAiKS5jb25jYXQoZSksIiIuY29uY2F0KFRiLCIgIikuY29uY2F0KGUsIiBiZWdpbnMiKSwiIi5jb25jYXQoVGIsIiAiKS5jb25jYXQoZSwiIGVuZHMiKSl9LCJlbmQiKSxodWU9e2JlZ2luOkNMYSxlbmQ6RTl0fSxzZWU9cyhmdW5jdGlvbigpe30sIm5vb3AiKTtzKEk5dCwiaXNXYXRjaGVkIik7cyhfTGEsImhhc1ByZWZpeEFuZEljb24iKTtzKFRMYSwiaGFzQmVlblJlcGxhY2VkIik7cyhMTGEsImdldE11dGF0b3IiKTtzKCRMYSwiY3JlYXRlRWxlbWVudE5TIik7cyhETGEsImNyZWF0ZUVsZW1lbnQiKTtzKE45dCwiY29udmVydFNWRyIpO3MoQUxhLCJub2RlQXNDb21tZW50Iik7aWVlPXtyZXBsYWNlOnMoZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXTtpZih0LnBhcmVudE5vZGUpaWYoZVsxXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoTjl0KGkpLHQpfSksdC5nZXRBdHRyaWJ1dGUobGQpPT09bnVsbCYmTHQua2VlcE9yaWdpbmFsU291cmNlKXt2YXIgcj1wci5jcmVhdGVDb21tZW50KEFMYSh0KSk7dC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChyLHQpfWVsc2UgdC5yZW1vdmUoKX0sInJlcGxhY2UiKSxuZXN0OnMoZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxyPWVbMV07aWYofko2ZSh0KS5pbmRleE9mKEx0LnJlcGxhY2VtZW50Q2xhc3MpKXJldHVybiBpZWUucmVwbGFjZShlKTt2YXIgaT1uZXcgUmVnRXhwKCIiLmNvbmNhdChMdC5jc3NQcmVmaXgsIi0uKiIpKTtpZihkZWxldGUgclswXS5hdHRyaWJ1dGVzLmlkLHJbMF0uYXR0cmlidXRlcy5jbGFzcyl7dmFyIG89clswXS5hdHRyaWJ1dGVzLmNsYXNzLnNwbGl0KCIgIikucmVkdWNlKGZ1bmN0aW9uKGwsZCl7cmV0dXJuIGQ9PT1MdC5yZXBsYWNlbWVudENsYXNzfHxkLm1hdGNoKGkpP2wudG9TdmcucHVzaChkKTpsLnRvTm9kZS5wdXNoKGQpLGx9LHt0b05vZGU6W10sdG9Tdmc6W119KTtyWzBdLmF0dHJpYnV0ZXMuY2xhc3M9by50b1N2Zy5qb2luKCIgIiksby50b05vZGUubGVuZ3RoPT09MD90LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTp0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLG8udG9Ob2RlLmpvaW4oIiAiKSl9dmFyIG49ci5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIENiKGwpfSkuam9pbihgCmApO3Quc2V0QXR0cmlidXRlKGxkLCIiKSx0LmlubmVySFRNTD1ufSwibmVzdCIpfTtzKFI5dCwicGVyZm9ybU9wZXJhdGlvblN5bmMiKTtzKE85dCwicGVyZm9ybSIpO211ZT0hMTtzKEY5dCwiZGlzYWJsZU9ic2VydmF0aW9uIik7cyhndWUsImVuYWJsZU9ic2VydmF0aW9uIik7b2VlPW51bGw7cyhCOXQsIm9ic2VydmUiKTtzKFBMYSwiZGlzY29ubmVjdCIpO3MoRUxhLCJzdHlsZVBhcnNlciIpO3MoSUxhLCJjbGFzc1BhcnNlciIpO3MoTkxhLCJhdHRyaWJ1dGVzUGFyc2VyIik7cyhSTGEsImJsYW5rTWV0YSIpO3MoSDl0LCJwYXJzZU1ldGEiKTtPTGE9UzEuc3R5bGVzO3MocTl0LCJnZW5lcmF0ZU11dGF0aW9uIik7cyhGTGEsImdldEtub3duUHJlZml4ZXMiKTtzKFY5dCwib25UcmVlIik7cyhCTGEsIm9uTm9kZSIpO3MoSExhLCJyZXNvbHZlSWNvbnMiKTtxTGE9cyhmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj10LnRyYW5zZm9ybSxpPXI9PT12b2lkIDA/SDI6cixvPXQuc3ltYm9sLG49bz09PXZvaWQgMD8hMTpvLGw9dC5tYXNrLGQ9bD09PXZvaWQgMD9udWxsOmwsYz10Lm1hc2tJZCxwPWM9PT12b2lkIDA/bnVsbDpjLHU9dC5jbGFzc2VzLG09dT09PXZvaWQgMD9bXTp1LHY9dC5hdHRyaWJ1dGVzLHg9dj09PXZvaWQgMD97fTp2LGI9dC5zdHlsZXMsZz1iPT09dm9pZCAwP3t9OmI7aWYoZSl7dmFyIHk9ZS5wcmVmaXgsaz1lLmljb25OYW1lLEM9ZS5pY29uO3JldHVybiByZWUoWGUoe3R5cGU6Imljb24ifSxlKSxmdW5jdGlvbigpe3JldHVybiBkZCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7aWNvbkRlZmluaXRpb246ZSxwYXJhbXM6dH0pLGN1ZSh7aWNvbnM6e21haW46dXVlKEMpLG1hc2s6ZD91dWUoZC5pY29uKTp7Zm91bmQ6ITEsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxpY29uOnt9fX0scHJlZml4OnksaWNvbk5hbWU6ayx0cmFuc2Zvcm06WGUoWGUoe30sSDIpLGkpLHN5bWJvbDpuLG1hc2tJZDpwLGV4dHJhOnthdHRyaWJ1dGVzOngsc3R5bGVzOmcsY2xhc3NlczptfX0pfSl9fSwicmVuZGVyIiksVkxhPXttaXhvdXQ6cyhmdW5jdGlvbigpe3JldHVybntpY29uOkhMYShxTGEpfX0sIm1peG91dCIpLGhvb2tzOnMoZnVuY3Rpb24oKXtyZXR1cm57bXV0YXRpb25PYnNlcnZlckNhbGxiYWNrczpzKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRyZWVDYWxsYmFjaz1WOXQsdC5ub2RlQ2FsbGJhY2s9QkxhLHR9LCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIil9fSwiaG9va3MiKSxwcm92aWRlczpzKGZ1bmN0aW9uKGUpe2UuaTJzdmc9ZnVuY3Rpb24odCl7dmFyIHI9dC5ub2RlLGk9cj09PXZvaWQgMD9wcjpyLG89dC5jYWxsYmFjayxuPW89PT12b2lkIDA/ZnVuY3Rpb24oKXt9Om87cmV0dXJuIFY5dChpLG4pfSxlLmdlbmVyYXRlU3ZnUmVwbGFjZW1lbnRNdXRhdGlvbj1mdW5jdGlvbih0LHIpe3ZhciBpPXIuaWNvbk5hbWUsbz1yLnByZWZpeCxuPXIudHJhbnNmb3JtLGw9ci5zeW1ib2wsZD1yLm1hc2ssYz1yLm1hc2tJZCxwPXIuZXh0cmE7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHUsbSl7UHJvbWlzZS5hbGwoW3B1ZShpLG8pLGQuaWNvbk5hbWU/cHVlKGQuaWNvbk5hbWUsZC5wcmVmaXgpOlByb21pc2UucmVzb2x2ZSh7Zm91bmQ6ITEsd2lkdGg6NTEyLGhlaWdodDo1MTIsaWNvbjp7fX0pXSkudGhlbihmdW5jdGlvbih2KXt2YXIgeD1LSih2LDIpLGI9eFswXSxnPXhbMV07dShbdCxjdWUoe2ljb25zOnttYWluOmIsbWFzazpnfSxwcmVmaXg6byxpY29uTmFtZTppLHRyYW5zZm9ybTpuLHN5bWJvbDpsLG1hc2tJZDpjLGV4dHJhOnAsd2F0Y2hhYmxlOiEwfSldKX0pLmNhdGNoKG0pfSl9LGUuZ2VuZXJhdGVBYnN0cmFjdEljb249ZnVuY3Rpb24odCl7dmFyIHI9dC5jaGlsZHJlbixpPXQuYXR0cmlidXRlcyxvPXQubWFpbixuPXQudHJhbnNmb3JtLGw9dC5zdHlsZXMsZD1KSihsKTtkLmxlbmd0aD4wJiYoaS5zdHlsZT1kKTt2YXIgYztyZXR1cm4gZXVlKG4pJiYoYz1lNCgiZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nIix7bWFpbjpvLHRyYW5zZm9ybTpuLGNvbnRhaW5lcldpZHRoOm8ud2lkdGgsaWNvbldpZHRoOm8ud2lkdGh9KSksci5wdXNoKGN8fG8uaWNvbikse2NoaWxkcmVuOnIsYXR0cmlidXRlczppfX19LCJwcm92aWRlcyIpfSxqTGE9e21peG91dDpzKGZ1bmN0aW9uKCl7cmV0dXJue2xheWVyOnMoZnVuY3Rpb24odCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGk9ci5jbGFzc2VzLG89aT09PXZvaWQgMD9bXTppO3JldHVybiByZWUoe3R5cGU6ImxheWVyIn0sZnVuY3Rpb24oKXtkZCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7YXNzZW1ibGVyOnQscGFyYW1zOnJ9KTt2YXIgbj1bXTtyZXR1cm4gdChmdW5jdGlvbihsKXtBcnJheS5pc0FycmF5KGwpP2wubWFwKGZ1bmN0aW9uKGQpe249bi5jb25jYXQoZC5hYnN0cmFjdCl9KTpuPW4uY29uY2F0KGwuYWJzdHJhY3QpfSksW3t0YWc6InNwYW4iLGF0dHJpYnV0ZXM6e2NsYXNzOlsiIi5jb25jYXQoTHQuY3NzUHJlZml4LCItbGF5ZXJzIildLmNvbmNhdChrMShvKSkuam9pbigiICIpfSxjaGlsZHJlbjpufV19KX0sImxheWVyIil9fSwibWl4b3V0Iil9LFVMYT17bWl4b3V0OnMoZnVuY3Rpb24oKXtyZXR1cm57Y291bnRlcjpzKGZ1bmN0aW9uKHQpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxpPXIudGl0bGUsbz1pPT09dm9pZCAwP251bGw6aSxuPXIuY2xhc3NlcyxsPW49PT12b2lkIDA/W106bixkPXIuYXR0cmlidXRlcyxjPWQ9PT12b2lkIDA/e306ZCxwPXIuc3R5bGVzLHU9cD09PXZvaWQgMD97fTpwO3JldHVybiByZWUoe3R5cGU6ImNvdW50ZXIiLGNvbnRlbnQ6dH0sZnVuY3Rpb24oKXtyZXR1cm4gZGQoImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2NvbnRlbnQ6dCxwYXJhbXM6cn0pLGtMYSh7Y29udGVudDp0LnRvU3RyaW5nKCksdGl0bGU6byxleHRyYTp7YXR0cmlidXRlczpjLHN0eWxlczp1LGNsYXNzZXM6WyIiLmNvbmNhdChMdC5jc3NQcmVmaXgsIi1sYXllcnMtY291bnRlciIpXS5jb25jYXQoazEobCkpfX0pfSl9LCJjb3VudGVyIil9fSwibWl4b3V0Iil9LFdMYT17bWl4b3V0OnMoZnVuY3Rpb24oKXtyZXR1cm57dGV4dDpzKGZ1bmN0aW9uKHQpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxpPXIudHJhbnNmb3JtLG89aT09PXZvaWQgMD9IMjppLG49ci5jbGFzc2VzLGw9bj09PXZvaWQgMD9bXTpuLGQ9ci5hdHRyaWJ1dGVzLGM9ZD09PXZvaWQgMD97fTpkLHA9ci5zdHlsZXMsdT1wPT09dm9pZCAwP3t9OnA7cmV0dXJuIHJlZSh7dHlwZToidGV4dCIsY29udGVudDp0fSxmdW5jdGlvbigpe3JldHVybiBkZCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDp0LHBhcmFtczpyfSksQTl0KHtjb250ZW50OnQsdHJhbnNmb3JtOlhlKFhlKHt9LEgyKSxvKSxleHRyYTp7YXR0cmlidXRlczpjLHN0eWxlczp1LGNsYXNzZXM6WyIiLmNvbmNhdChMdC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoazEobCkpfX0pfSl9LCJ0ZXh0Iil9fSwibWl4b3V0IikscHJvdmlkZXM6cyhmdW5jdGlvbihlKXtlLmdlbmVyYXRlTGF5ZXJzVGV4dD1mdW5jdGlvbih0LHIpe3ZhciBpPXIudHJhbnNmb3JtLG89ci5leHRyYSxuPW51bGwsbD1udWxsO2lmKFQ3dCl7dmFyIGQ9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS5mb250U2l6ZSwxMCksYz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO249Yy53aWR0aC9kLGw9Yy5oZWlnaHQvZH1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFt0LEE5dCh7Y29udGVudDp0LmlubmVySFRNTCx3aWR0aDpuLGhlaWdodDpsLHRyYW5zZm9ybTppLGV4dHJhOm8sd2F0Y2hhYmxlOiEwfSldKX19LCJwcm92aWRlcyIpfSxqOXQ9bmV3IFJlZ0V4cCgnIicsInVnIiksVTl0PVsxMTA1OTIwLDExMTIzMTldLFc5dD1YZShYZShYZShYZSh7fSx7Rm9udEF3ZXNvbWU6e25vcm1hbDoiZmFzIiw0MDA6ImZhcyJ9fSksQ19hKSxQVGEpLElfYSksYnVlPU9iamVjdC5rZXlzKFc5dCkucmVkdWNlKGZ1bmN0aW9uKGEsZSl7cmV0dXJuIGFbZS50b0xvd2VyQ2FzZSgpXT1XOXRbZV0sYX0se30pLEdMYT1PYmplY3Qua2V5cyhidWUpLnJlZHVjZShmdW5jdGlvbihhLGUpe3ZhciB0PWJ1ZVtlXTtyZXR1cm4gYVtlXT10WzkwMF18fGsxKE9iamVjdC5lbnRyaWVzKHQpKVswXVsxXSxhfSx7fSk7cyhZTGEsImhleFZhbHVlRnJvbUNvbnRlbnQiKTtzKEtMYSwiaXNTZWNvbmRhcnlMYXllciIpO3MoWkxhLCJnZXRQcmVmaXgiKTtzKEc5dCwicmVwbGFjZUZvclBvc2l0aW9uIik7cyhYTGEsInJlcGxhY2UiKTtzKFFMYSwicHJvY2Vzc2FibGUiKTtKTGE9cyhmdW5jdGlvbihlKXtyZXR1cm4hIWUmJnI5dC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBlLmluY2x1ZGVzKHQpfSl9LCJoYXNQc2V1ZG9FbGVtZW50IiksZSRhPXMoZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107dmFyIHQ9bmV3IFNldCxyPWUuc3BsaXQoLywoPyFbXigpXSpcKSkvKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQudHJpbSgpfSk7cj1yLmZsYXRNYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaW5jbHVkZXMoIigiKT9kOmQuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudHJpbSgpfSl9KTt2YXIgaT1HSihyKSxvO3RyeXtmb3IoaS5zKCk7IShvPWkubigpKS5kb25lOyl7dmFyIG49by52YWx1ZTtpZihKTGEobikpe3ZhciBsPXI5dC5yZWR1Y2UoZnVuY3Rpb24oZCxjKXtyZXR1cm4gZC5yZXBsYWNlKGMsIiIpfSxuKTtsIT09IiImJmwhPT0iKiImJnQuYWRkKGwpfX19Y2F0Y2goZCl7aS5lKGQpfWZpbmFsbHl7aS5mKCl9cmV0dXJuIHR9LCJwYXJzZUNTU1J1bGVGb3JQc2V1ZG9zIik7cyhZOXQsInNlYXJjaFBzZXVkb0VsZW1lbnRzIik7dCRhPXtob29rczpzKGZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6cyhmdW5jdGlvbih0KXtyZXR1cm4gdC5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrPVk5dCx0fSwibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIpfX0sImhvb2tzIikscHJvdmlkZXM6cyhmdW5jdGlvbihlKXtlLnBzZXVkb0VsZW1lbnRzMnN2Zz1mdW5jdGlvbih0KXt2YXIgcj10Lm5vZGUsaT1yPT09dm9pZCAwP3ByOnI7THQuc2VhcmNoUHNldWRvRWxlbWVudHMmJlk5dChpKX19LCJwcm92aWRlcyIpfSxLOXQ9ITEsYSRhPXttaXhvdXQ6cyhmdW5jdGlvbigpe3JldHVybntkb206e3Vud2F0Y2g6cyhmdW5jdGlvbigpe0Y5dCgpLEs5dD0hMH0sInVud2F0Y2giKX19fSwibWl4b3V0IiksaG9va3M6cyhmdW5jdGlvbigpe3JldHVybntib290c3RyYXA6cyhmdW5jdGlvbigpe0I5dChudWUoIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiLHt9KSl9LCJib290c3RyYXAiKSxub0F1dG86cyhmdW5jdGlvbigpe1BMYSgpfSwibm9BdXRvIiksd2F0Y2g6cyhmdW5jdGlvbih0KXt2YXIgcj10Lm9ic2VydmVNdXRhdGlvbnNSb290O0s5dD9ndWUoKTpCOXQobnVlKCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIix7b2JzZXJ2ZU11dGF0aW9uc1Jvb3Q6cn0pKX0sIndhdGNoIil9fSwiaG9va3MiKX0sWjl0PXMoZnVuY3Rpb24oZSl7dmFyIHQ9e3NpemU6MTYseDowLHk6MCxmbGlwWDohMSxmbGlwWTohMSxyb3RhdGU6MH07cmV0dXJuIGUudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihyLGkpe3ZhciBvPWkudG9Mb3dlckNhc2UoKS5zcGxpdCgiLSIpLG49b1swXSxsPW8uc2xpY2UoMSkuam9pbigiLSIpO2lmKG4mJmw9PT0iaCIpcmV0dXJuIHIuZmxpcFg9ITAscjtpZihuJiZsPT09InYiKXJldHVybiByLmZsaXBZPSEwLHI7aWYobD1wYXJzZUZsb2F0KGwpLGlzTmFOKGwpKXJldHVybiByO3N3aXRjaChuKXtjYXNlImdyb3ciOnIuc2l6ZT1yLnNpemUrbDticmVhaztjYXNlInNocmluayI6ci5zaXplPXIuc2l6ZS1sO2JyZWFrO2Nhc2UibGVmdCI6ci54PXIueC1sO2JyZWFrO2Nhc2UicmlnaHQiOnIueD1yLngrbDticmVhaztjYXNlInVwIjpyLnk9ci55LWw7YnJlYWs7Y2FzZSJkb3duIjpyLnk9ci55K2w7YnJlYWs7Y2FzZSJyb3RhdGUiOnIucm90YXRlPXIucm90YXRlK2w7YnJlYWt9cmV0dXJuIHJ9LHQpfSwicGFyc2VUcmFuc2Zvcm1TdHJpbmciKSxyJGE9e21peG91dDpzKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlOnt0cmFuc2Zvcm06cyhmdW5jdGlvbih0KXtyZXR1cm4gWjl0KHQpfSwidHJhbnNmb3JtIil9fX0sIm1peG91dCIpLGhvb2tzOnMoZnVuY3Rpb24oKXtyZXR1cm57cGFyc2VOb2RlQXR0cmlidXRlczpzKGZ1bmN0aW9uKHQscil7dmFyIGk9ci5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtdHJhbnNmb3JtIik7cmV0dXJuIGkmJih0LnRyYW5zZm9ybT1aOXQoaSkpLHR9LCJwYXJzZU5vZGVBdHRyaWJ1dGVzIil9fSwiaG9va3MiKSxwcm92aWRlczpzKGZ1bmN0aW9uKGUpe2UuZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nPWZ1bmN0aW9uKHQpe3ZhciByPXQubWFpbixpPXQudHJhbnNmb3JtLG89dC5jb250YWluZXJXaWR0aCxuPXQuaWNvbldpZHRoLGw9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG8vMiwiIDI1NikiKX0sZD0idHJhbnNsYXRlKCIuY29uY2F0KGkueCozMiwiLCAiKS5jb25jYXQoaS55KjMyLCIpICIpLGM9InNjYWxlKCIuY29uY2F0KGkuc2l6ZS8xNiooaS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoaS5zaXplLzE2KihpLmZsaXBZPy0xOjEpLCIpICIpLHA9InJvdGF0ZSgiLmNvbmNhdChpLnJvdGF0ZSwiIDAgMCkiKSx1PXt0cmFuc2Zvcm06IiIuY29uY2F0KGQsIiAiKS5jb25jYXQoYywiICIpLmNvbmNhdChwKX0sbT17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQobi8yKi0xLCIgLTI1NikiKX0sdj17b3V0ZXI6bCxpbm5lcjp1LHBhdGg6bX07cmV0dXJue3RhZzoiZyIsYXR0cmlidXRlczpYZSh7fSx2Lm91dGVyKSxjaGlsZHJlbjpbe3RhZzoiZyIsYXR0cmlidXRlczpYZSh7fSx2LmlubmVyKSxjaGlsZHJlbjpbe3RhZzpyLmljb24udGFnLGNoaWxkcmVuOnIuaWNvbi5jaGlsZHJlbixhdHRyaWJ1dGVzOlhlKFhlKHt9LHIuaWNvbi5hdHRyaWJ1dGVzKSx2LnBhdGgpfV19XX19fSwicHJvdmlkZXMiKX0sdnVlPXt4OjAseTowLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifTtzKFg5dCwiZmlsbEJsYWNrIik7cyhzJGEsImRlR3JvdXAiKTtpJGE9e2hvb2tzOnMoZnVuY3Rpb24oKXtyZXR1cm57cGFyc2VOb2RlQXR0cmlidXRlczpzKGZ1bmN0aW9uKHQscil7dmFyIGk9ci5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtbWFzayIpLG89aT9hZWUoaS5zcGxpdCgiICIpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi50cmltKCl9KSk6Xzl0KCk7cmV0dXJuIG8ucHJlZml4fHwoby5wcmVmaXg9SjAoKSksdC5tYXNrPW8sdC5tYXNrSWQ9ci5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtbWFzay1pZCIpLHR9LCJwYXJzZU5vZGVBdHRyaWJ1dGVzIil9fSwiaG9va3MiKSxwcm92aWRlczpzKGZ1bmN0aW9uKGUpe2UuZ2VuZXJhdGVBYnN0cmFjdE1hc2s9ZnVuY3Rpb24odCl7dmFyIHI9dC5jaGlsZHJlbixpPXQuYXR0cmlidXRlcyxvPXQubWFpbixuPXQubWFzayxsPXQubWFza0lkLGQ9dC50cmFuc2Zvcm0sYz1vLndpZHRoLHA9by5pY29uLHU9bi53aWR0aCxtPW4uaWNvbix2PUtUYSh7dHJhbnNmb3JtOmQsY29udGFpbmVyV2lkdGg6dSxpY29uV2lkdGg6Y30pLHg9e3RhZzoicmVjdCIsYXR0cmlidXRlczpYZShYZSh7fSx2dWUpLHt9LHtmaWxsOiJ3aGl0ZSJ9KX0sYj1wLmNoaWxkcmVuP3tjaGlsZHJlbjpwLmNoaWxkcmVuLm1hcChYOXQpfTp7fSxnPXt0YWc6ImciLGF0dHJpYnV0ZXM6WGUoe30sdi5pbm5lciksY2hpbGRyZW46W1g5dChYZSh7dGFnOnAudGFnLGF0dHJpYnV0ZXM6WGUoWGUoe30scC5hdHRyaWJ1dGVzKSx2LnBhdGgpfSxiKSldfSx5PXt0YWc6ImciLGF0dHJpYnV0ZXM6WGUoe30sdi5vdXRlciksY2hpbGRyZW46W2ddfSxrPSJtYXNrLSIuY29uY2F0KGx8fGQ5dCgpKSxDPSJjbGlwLSIuY29uY2F0KGx8fGQ5dCgpKSxOPXt0YWc6Im1hc2siLGF0dHJpYnV0ZXM6WGUoWGUoe30sdnVlKSx7fSx7aWQ6ayxtYXNrVW5pdHM6InVzZXJTcGFjZU9uVXNlIixtYXNrQ29udGVudFVuaXRzOiJ1c2VyU3BhY2VPblVzZSJ9KSxjaGlsZHJlbjpbeCx5XX0sXz17dGFnOiJkZWZzIixjaGlsZHJlbjpbe3RhZzoiY2xpcFBhdGgiLGF0dHJpYnV0ZXM6e2lkOkN9LGNoaWxkcmVuOnMkYShtKX0sTl19O3JldHVybiByLnB1c2goXyx7dGFnOiJyZWN0IixhdHRyaWJ1dGVzOlhlKHtmaWxsOiJjdXJyZW50Q29sb3IiLCJjbGlwLXBhdGgiOiJ1cmwoIyIuY29uY2F0KEMsIikiKSxtYXNrOiJ1cmwoIyIuY29uY2F0KGssIikiKX0sdnVlKX0pLHtjaGlsZHJlbjpyLGF0dHJpYnV0ZXM6aX19fSwicHJvdmlkZXMiKX0sbyRhPXtwcm92aWRlczpzKGZ1bmN0aW9uKGUpe3ZhciB0PSExO1gwLm1hdGNoTWVkaWEmJih0PVgwLm1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIikubWF0Y2hlcyksZS5taXNzaW5nSWNvbkFic3RyYWN0PWZ1bmN0aW9uKCl7dmFyIHI9W10saT17ZmlsbDoiY3VycmVudENvbG9yIn0sbz17YXR0cmlidXRlVHlwZToiWE1MIixyZXBlYXRDb3VudDoiaW5kZWZpbml0ZSIsZHVyOiIycyJ9O3IucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOlhlKFhlKHt9LGkpLHt9LHtkOiJNMTU2LjUsNDQ3LjdsLTEyLjYsMjkuNWMtMTguNy05LjUtMzUuOS0yMS4yLTUxLjUtMzQuOWwyMi43LTIyLjdDMTI3LjYsNDMwLjUsMTQxLjUsNDQwLDE1Ni41LDQ0Ny43eiBNNDAuNiwyNzJIOC41IGMxLjQsMjEuMiw1LjQsNDEuNywxMS43LDYxLjFMNTAsMzIxLjJDNDUuMSwzMDUuNSw0MS44LDI4OSw0MC42LDI3MnogTTQwLjYsMjQwYzEuNC0xOC44LDUuMi0zNywxMS4xLTU0LjFsLTI5LjUtMTIuNiBDMTQuNywxOTQuMywxMCwyMTYuNyw4LjUsMjQwSDQwLjZ6IE02NC4zLDE1Ni41YzcuOC0xNC45LDE3LjItMjguOCwyOC4xLTQxLjVMNjkuNyw5Mi4zYy0xMy43LDE1LjYtMjUuNSwzMi44LTM0LjksNTEuNSBMNjQuMywxNTYuNXogTTM5Nyw0MTkuNmMtMTMuOSwxMi0yOS40LDIyLjMtNDYuMSwzMC40bDExLjksMjkuOGMyMC43LTkuOSwzOS44LTIyLjYsNTYuOS0zNy42TDM5Nyw0MTkuNnogTTExNSw5Mi40IGMxMy45LTEyLDI5LjQtMjIuMyw0Ni4xLTMwLjRsLTExLjktMjkuOGMtMjAuNyw5LjktMzkuOCwyMi42LTU2LjgsMzcuNkwxMTUsOTIuNHogTTQ0Ny43LDM1NS41Yy03LjgsMTQuOS0xNy4yLDI4LjgtMjguMSw0MS41IGwyMi43LDIyLjdjMTMuNy0xNS42LDI1LjUtMzIuOSwzNC45LTUxLjVMNDQ3LjcsMzU1LjV6IE00NzEuNCwyNzJjLTEuNCwxOC44LTUuMiwzNy0xMS4xLDU0LjFsMjkuNSwxMi42IGM3LjUtMjEuMSwxMi4yLTQzLjUsMTMuNi02Ni44SDQ3MS40eiBNMzIxLjIsNDYyYy0xNS43LDUtMzIuMiw4LjItNDkuMiw5LjR2MzIuMWMyMS4yLTEuNCw0MS43LTUuNCw2MS4xLTExLjdMMzIxLjIsNDYyeiBNMjQwLDQ3MS40Yy0xOC44LTEuNC0zNy01LjItNTQuMS0xMS4xbC0xMi42LDI5LjVjMjEuMSw3LjUsNDMuNSwxMi4yLDY2LjgsMTMuNlY0NzEuNHogTTQ2MiwxOTAuOGM1LDE1LjcsOC4yLDMyLjIsOS40LDQ5LjJoMzIuMSBjLTEuNC0yMS4yLTUuNC00MS43LTExLjctNjEuMUw0NjIsMTkwLjh6IE05Mi40LDM5N2MtMTItMTMuOS0yMi4zLTI5LjQtMzAuNC00Ni4xbC0yOS44LDExLjljOS45LDIwLjcsMjIuNiwzOS44LDM3LjYsNTYuOSBMOTIuNCwzOTd6IE0yNzIsNDAuNmMxOC44LDEuNCwzNi45LDUuMiw1NC4xLDExLjFsMTIuNi0yOS41QzMxNy43LDE0LjcsMjk1LjMsMTAsMjcyLDguNVY0MC42eiBNMTkwLjgsNTAgYzE1LjctNSwzMi4yLTguMiw0OS4yLTkuNFY4LjVjLTIxLjIsMS40LTQxLjcsNS40LTYxLjEsMTEuN0wxOTAuOCw1MHogTTQ0Mi4zLDkyLjNMNDE5LjYsMTE1YzEyLDEzLjksMjIuMywyOS40LDMwLjUsNDYuMSBsMjkuOC0xMS45QzQ3MCwxMjguNSw0NTcuMywxMDkuNCw0NDIuMyw5Mi4zeiBNMzk3LDkyLjRsMjIuNy0yMi43Yy0xNS42LTEzLjctMzIuOC0yNS41LTUxLjUtMzQuOWwtMTIuNiwyOS41IEMzNzAuNCw3Mi4xLDM4NC40LDgxLjUsMzk3LDkyLjR6In0pfSk7dmFyIG49WGUoWGUoe30sbykse30se2F0dHJpYnV0ZU5hbWU6Im9wYWNpdHkifSksbD17dGFnOiJjaXJjbGUiLGF0dHJpYnV0ZXM6WGUoWGUoe30saSkse30se2N4OiIyNTYiLGN5OiIzNjQiLHI6IjI4In0pLGNoaWxkcmVuOltdfTtyZXR1cm4gdHx8bC5jaGlsZHJlbi5wdXNoKHt0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6WGUoWGUoe30sbykse30se2F0dHJpYnV0ZU5hbWU6InIiLHZhbHVlczoiMjg7MTQ7Mjg7Mjg7MTQ7Mjg7In0pfSx7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOlhlKFhlKHt9LG4pLHt9LHt2YWx1ZXM6IjE7MDsxOzE7MDsxOyJ9KX0pLHIucHVzaChsKSxyLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpYZShYZSh7fSxpKSx7fSx7b3BhY2l0eToiMSIsZDoiTTI2My43LDMxMmgtMTZjLTYuNiwwLTEyLTUuNC0xMi0xMmMwLTcxLDc3LjQtNjMuOSw3Ny40LTEwNy44YzAtMjAtMTcuOC00MC4yLTU3LjQtNDAuMmMtMjkuMSwwLTQ0LjMsOS42LTU5LjIsMjguNyBjLTMuOSw1LTExLjEsNi0xNi4yLDIuNGwtMTMuMS05LjJjLTUuNi0zLjktNi45LTExLjgtMi42LTE3LjJjMjEuMi0yNy4yLDQ2LjQtNDQuNyw5MS4yLTQ0LjdjNTIuMywwLDk3LjQsMjkuOCw5Ny40LDgwLjIgYzAsNjcuNi03Ny40LDYzLjUtNzcuNCwxMDcuOEMyNzUuNywzMDYuNiwyNzAuMywzMTIsMjYzLjcsMzEyeiJ9KSxjaGlsZHJlbjp0P1tdOlt7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOlhlKFhlKHt9LG4pLHt9LHt2YWx1ZXM6IjE7MDswOzA7MDsxOyJ9KX1dfSksdHx8ci5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6WGUoWGUoe30saSkse30se29wYWNpdHk6IjAiLGQ6Ik0yMzIuNSwxMzQuNWw3LDE2OGMwLjMsNi40LDUuNiwxMS41LDEyLDExLjVoOWM2LjQsMCwxMS43LTUuMSwxMi0xMS41bDctMTY4YzAuMy02LjgtNS4yLTEyLjUtMTItMTIuNWgtMjMgQzIzNy43LDEyMiwyMzIuMiwxMjcuNywyMzIuNSwxMzQuNXoifSksY2hpbGRyZW46W3t0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6WGUoWGUoe30sbikse30se3ZhbHVlczoiMDswOzE7MTswOzA7In0pfV19KSx7dGFnOiJnIixhdHRyaWJ1dGVzOntjbGFzczoibWlzc2luZyJ9LGNoaWxkcmVuOnJ9fX0sInByb3ZpZGVzIil9LG4kYT17aG9va3M6cyhmdW5jdGlvbigpe3JldHVybntwYXJzZU5vZGVBdHRyaWJ1dGVzOnMoZnVuY3Rpb24odCxyKXt2YXIgaT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1zeW1ib2wiKSxvPWk9PT1udWxsPyExOmk9PT0iIj8hMDppO3JldHVybiB0LnN5bWJvbD1vLHR9LCJwYXJzZU5vZGVBdHRyaWJ1dGVzIil9fSwiaG9va3MiKX0sbCRhPVtRVGEsVkxhLGpMYSxVTGEsV0xhLHQkYSxhJGEsciRhLGkkYSxvJGEsbiRhXTttTGEobCRhLHttaXhvdXRzVG86RW99KTtjJGE9RW8ubm9BdXRvLGQkYT1Fby5jb25maWcsdSRhPUVvLmxpYnJhcnkscCRhPUVvLmRvbSxmJGE9RW8ucGFyc2UsaCRhPUVvLmZpbmRJY29uRGVmaW5pdGlvbixtJGE9RW8udG9IdG1sLHh1ZT1Fby5pY29uLGckYT1Fby5sYXllcixiJGE9RW8udGV4dCx2JGE9RW8uY291bnRlcn0pO3ZhciB4JGEseXVlLEo5dCxlZ3QsdGd0LGFndCx3dWUscmd0LHNndCxpZ3Qsb2d0LG5ndCxsZ3QsY2d0LGRndCx1Z3QscGd0LGZndCxoZ3QsbWd0LGdndCxiZ3Qsdmd0LHhndCx5Z3Qsd2d0LE1ndCxrZ3QsU2d0LE11ZSx6Z3QsQ2d0LF9ndCxUZ3QsTGd0LCRndCxEZ3QsQWd0LFBndCxFZ3QsSWd0LE5ndCxSZ3QsT2d0LEZndCxCZ3QsSGd0LHFndCxWZ3Qsa3VlLGpndCxVZ3QsV2d0LEdndCxZZ3QsS2d0LFpndCxYZ3QsUWd0LEpndCxlYnQsdGJ0LGFidCxyYnQsc2J0LGlidCxvYnQsbmJ0LGxidCxjYnQsZGJ0LFN1ZSx1YnQscGJ0LGZidCxoYnQsbWJ0LGdidCxiYnQsdmJ0LHhidCx5YnQsd2J0LE1idCxrYnQsU2J0LHpidCxDYnQsX2J0LFRidCxMYnQsJGJ0LERidCxBYnQsUGJ0LEVidCxJYnQsTmJ0LFJidCxPYnQsRmJ0LEJidCxIYnQscWJ0LFZidCxqYnQsVWJ0LFdidCxHYnQsWWJ0LEtidCxaYnQsWGJ0LGxlZSxRYnQsSmJ0LHp1ZSxldnQsdHZ0LGF2dCxDdWUscnZ0LHN2dCxuZWUsaXZ0LG92dCxfdWUsbnZ0LGx2dCxjdnQsZHZ0LHV2dCxUdWUscHZ0LGZ2dCxodnQsbXZ0LGd2dCxidnQsdnZ0LHh2dCx5dnQsd3Z0LEx1ZSxNdnQsa3Z0LFN2dCx6dnQsQ3Z0LF92dCxUdnQsTHZ0LCR2dCwkdWUsRHZ0LEF2dCxQdnQsRXZ0LEl2dCxOdnQsUnZ0LE92dCxEdWUsRnZ0LEJ2dCxIdnQsQXVlLHF2dCxWdnQsanZ0LFV2dCxXdnQsR3Z0LFl2dCxLdnQsWnZ0LFh2dCxRdnQsSnZ0LGV4dCx0eHQsYXh0LHJ4dCxzeHQsaXh0LG94dCxueHQsbHh0LGN4dCxkeHQsdXh0LHB4dCxmeHQsaHh0LFB1ZSxteHQsZ3h0LGJ4dCx2eHQseHh0LHl4dCx3eHQsRXVlLE14dCxreHQsU3h0LHp4dCxDeHQsX3h0LFR4dCxMeHQsJHh0LER4dCxBeHQsUHh0LEV4dCxJeHQsTnh0LFJ4dCxPeHQsRnh0LEJ4dCxIeHQscXh0LFZ4dCxqeHQsVXh0LFd4dCxHeHQsWXh0LEt4dCxaeHQsWHh0LFF4dCxKeHQsZXl0LHR5dCxheXQscnl0LHN5dCxpeXQsb3l0LG55dCxseXQsY3l0LGNlZSxkeXQsdXl0LHB5dCxmeXQsaHl0LEl1ZSxteXQsZ3l0LGJ5dCxkZWUsdnl0LHh5dCx5eXQsd3l0LE15dCxreXQsTnVlLFN5dCx6eXQsQ3l0LF95dCxUeXQsTHl0LCR5dCxEeXQsQXl0LFB5dCxFeXQsSXl0LE55dCxSeXQsT3l0LEZ5dCxMYixCeXQsSHl0LHF5dCxWeXQsanl0LFV5dCxXeXQsR3l0LFl5dCxLeXQsWnl0LFh5dCxReXQsSnl0LGV3dCx0d3QsYXd0LHJ3dCxzd3QsaXd0LG93dCxud3QsbHd0LGN3dCxkd3QsdXd0LHB3dCxmd3QsaHd0LG13dCxnd3QsYnd0LHZ3dCx4d3QseXd0LHd3dCxNd3Qsa3d0LFN3dCxSdWUsend0LEN3dCxfd3QsVHd0LEx3dCwkd3QsRHd0LEF3dCxQd3QsRXd0LEl3dCxOd3QsUnd0LE93dCxGd3QsT3VlLEJ3dCxId3QscXd0LFZ3dCxqd3QsVXd0LEZ1ZSxXd3QsR3d0LFl3dCxLd3QsWnd0LFh3dCxRd3QsSnd0LGVNdCx0TXQsYU10LHJNdCxzTXQsaU10LG9NdCxuTXQsbE10LGNNdCxkTXQsdU10LHBNdCxmTXQsaE10LG1NdCxnTXQsYk10LHZNdCx4TXQsQnVlLHVlZSx5TXQsd010LE1NdCxrTXQsU010LHpNdCxDTXQsX010LFRNdCxMTXQsJE10LERNdCxIdWUsQU10LFBNdCxFTXQsSU10LE5NdCxSTXQsT010LEZNdCxwZWUsQk10LEhNdCxxTXQsVk10LGpNdCxVTXQsV010LEdNdCxZTXQsS010LFpNdCxYTXQsUU10LHF1ZSxKTXQsZWt0LHRrdCxha3Qscmt0LHNrdCxpa3Qsb2t0LG5rdCxsa3QsY2t0LGRrdCx1a3QscGt0LGZrdCxoa3QsbWt0LFZ1ZSxna3QsYmt0LHZrdCxqdWUseGt0LHlrdCx3a3QsTWt0LGZlZSxra3QsVXVlLFNrdCx6a3QsQ2t0LF9rdCxUa3QsTGt0LFd1ZSwka3QsRGt0LEFrdCxQa3QsRWt0LElrdCxOa3QsUmt0LE9rdCxGa3QsQmt0LEhrdCxxa3QsVmt0LGprdCxVa3QsV2t0LEdrdCxZa3QsS2t0LFprdCxYa3QsUWt0LEprdCxlU3QsR3VlLHRTdCxhU3QsclN0LHNTdCxpU3Qsb1N0LG5TdCxsU3QsWXVlLGNTdCxkU3QsdVN0LHBTdCxmU3QsaFN0LG1TdCxnU3QsYlN0LHZTdCx4U3QseVN0LHdTdCxNU3QsS3VlLGtTdCxTU3QselN0LENTdCxfU3QsVFN0LExTdCwkU3QsRFN0LEFTdCxQU3QsRVN0LElTdCxOU3QsUlN0LFp1ZSxPU3QsRlN0LEJTdCxIU3QscVN0LFZTdCxqU3QsVVN0LFdTdCxHU3QsWVN0LEtTdCxaU3QsWFN0LGhlZSxRU3QsSlN0LGV6dCx0enQsYXp0LHJ6dCxzenQsaXp0LG96dCxuenQsWHVlLGx6dCxjenQsZHp0LHV6dCxwenQsZnp0LGh6dCxtenQsZ3p0LGJ6dCx2enQseHp0LHl6dCx3enQsTXp0LGt6dCxTenQsenp0LEN6dCxfenQsVHp0LEx6dCwkenQsRHp0LEF6dCxQenQsRXp0LEl6dCxOenQsUnp0LE96dCxGenQsQnp0LEh6dCxxenQsVnp0LGp6dCxVenQsUXVlLFd6dCxHenQsWXp0LEt6dCxaenQsSnVlLFh6dCxRenQsSnp0LGVDdCx0Q3QsYUN0LHkkYSxyQ3Q9ZigoKT0+e3gkYT0iZmFiIix5dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGh1YiIsaWNvbjpbNDQ4LDUxMixbImdpdGh1Yi1zcXVhcmUiXSwiZjA5MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjY1LjggNDA3LjdjMC0xLjggMC02IC4xLTExLjYgLjEtMTEuNCAuMS0yOC44IC4xLTQzLjcgMC0xNS42LTUuMi0yNS41LTExLjMtMzAuNyAzNy00LjEgNzYtOS4yIDc2LTczLjEgMC0xOC4yLTYuNS0yNy4zLTE3LjEtMzkgMS43LTQuMyA3LjQtMjItMS43LTQ1LTEzLjktNC4zLTQ1LjcgMTcuOS00NS43IDE3LjktMjYuNi03LjUtNTYuNi03LjUtODMuMiAwIDAgMC0zMS44LTIyLjItNDUuNy0xNy45LTkuMSAyMi45LTMuNSA0MC42LTEuNyA0NS0xMC42IDExLjctMTUuNiAyMC44LTE1LjYgMzkgMCA2My42IDM3LjMgNjkgNzQuMyA3My4xLTQuOCA0LjMtOS4xIDExLjctMTAuNiAyMi4zLTkuNSA0LjMtMzMuOCAxMS43LTQ4LjMtMTMuOS05LjEtMTUuOC0yNS41LTE3LjEtMjUuNS0xNy4xLTE2LjItLjItMS4xIDEwLjItMS4xIDEwLjIgMTAuOCA1IDE4LjQgMjQuMiAxOC40IDI0LjIgOS43IDI5LjcgNTYuMSAxOS43IDU2LjEgMTkuNyAwIDkgLjEgMjEuNyAuMSAzMC42IDAgNC44IC4xIDguNiAuMSAxMCAwIDQuMy0zIDkuNS0xMS41IDgtNjYtMjIuMS0xMTIuMi04NC45LTExMi4yLTE1OC4zIDAtOTEuOCA3MC4yLTE2MS41IDE2Mi0xNjEuNVMzODggMTY1LjYgMzg4IDI1Ny40Yy4xIDczLjQtNDQuNyAxMzYuMy0xMTAuNyAxNTguMy04LjQgMS41LTExLjUtMy43LTExLjUtOHptLTkwLjUtNTQuOGMtLjItMS41IDEuMS0yLjggMy0zLjIgMS45LS4yIDMuNyAuNiAzLjkgMS45IC4zIDEuMy0xIDIuNi0zIDMtMS45IC40LTMuNy0uNC0zLjktMS43em0tOS4xIDMuMmMtMi4yIC4yLTMuNy0uOS0zLjctMi40IDAtMS4zIDEuNS0yLjQgMy41LTIuNCAxLjktLjIgMy43IC45IDMuNyAyLjQgMCAxLjMtMS41IDIuNC0zLjUgMi40em0tMTQuMy0yLjJjLTEuOS0uNC0zLjItMS45LTIuOC0zLjJzMi40LTEuOSA0LjEtMS41YzIgLjYgMy4zIDIuMSAyLjggMy40LS40IDEuMy0yLjQgMS45LTQuMSAxLjN6bS0xMi41LTcuM2MtMS41LTEuMy0xLjktMy4yLS45LTQuMSAuOS0xLjEgMi44LS45IDQuMyAuNiAxLjMgMS4zIDEuOCAzLjMgLjkgNC4xLS45IDEuMS0yLjggLjktNC4zLS42em0tOC41LTEwYy0xLjEtMS41LTEuMS0zLjIgMC0zLjkgMS4xLS45IDIuOC0uMiAzLjcgMS4zIDEuMSAxLjUgMS4xIDMuMyAwIDQuMS0uOSAuNi0yLjYgMC0zLjctMS41em0tNi4zLTguOGMtMS4xLTEuMy0xLjMtMi44LS40LTMuNSAuOS0uOSAyLjQtLjQgMy41IC42IDEuMSAxLjMgMS4zIDIuOCAuNCAzLjUtLjkgLjktMi40IC40LTMuNS0uNnptLTYtNi40Yy0xLjMtLjYtMS45LTEuNy0xLjUtMi42IC40LS42IDEuNS0uOSAyLjgtLjQgMS4zIC43IDEuOSAxLjggMS41IDIuNi0uNCAuOS0xLjcgMS4xLTIuOCAuNHoiXX0sSjl0PXl1ZSxlZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhpbmstcGVha3MiLGljb246WzU3Niw1MTIsW10sImY3MzEiLCJNNDY1LjQgNDA5LjRsODcuMS0xNTAuMi0zMi0uMy01NS4xIDk1LTIwNi4yLTM1My45LTIzNi4yIDQwNy40IDMyIC4zIDIwNC4yLTM1Mi4xIDIwNi4yIDM1My44ek0xMTAuMSAzNjUuM2wzMi4xIDAgMTE3LjQtMjAyLjUgMjAzLjQgMzQ5LjEgMzIuNSAuMS0yMzUuOC00MDQuNi0xNDkuNiAyNTcuOXoiXX0sdGd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1kcml2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjNhYSIsIk0zMzkgMzE0LjlMMTc1LjQgMzIgMzM2LjYgMzIgNTAwLjIgMzE0LjkgMzM5IDMxNC45ek0yMDEuNSAzMzguNWwtODAuNiAxNDEuNSAzMTAuNSAwIDgwLjYtMTQxLjUtMzEwLjUgMHpNMTU0LjEgNjcuNEwwIDMzOC41IDgwLjYgNDgwIDIzNyAyMDguOCAxNTQuMSA2Ny40eiJdfSxhZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXV0b3ByZWZpeGVyIixpY29uOls2NDAsNTEyLFtdLCJmNDFjIiwiTTMxOC40IDE2bC0xNjEgNDgwIDc3LjUgMCAyNS40LTgxLjQgMTE5LjUgMCAyNS4yIDgxLjQgNzcuNSAwLTE2NC4xLTQ4MHpNMjc4LjEgMzU3LjlsNDEuMi0xMzAuNCAxLjUgMCA0MC45IDEzMC40LTgzLjYgMHpNNjQwIDQwNUw2MzAgMzczLjYgNDYyLjEgMzU4IDQ4MS41IDQxNC41IDY0MCA0MDV6TTE3Ny45IDM1OEwxMCAzNzMuNyAwIDQwNSAxNTguNSA0MTQuNCAxNzcuOSAzNTh6Il19LHd1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdmlhZGVvIixpY29uOls0NDgsNTEyLFsidmlhZGVvLXNxdWFyZSJdLCJmMmFhIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xMTguMyAzODEuMmMtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjEgMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43LTQuMyA4LjQtNy4zIDE3LjYtOC40IDI3LjEtOS43LTQuMS0yMC4yLTYtMzAuNy02LTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45IDAgNDMgMjguNSA3OC43IDY5LjUgODUuOSA2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzUgMC03LjMgMC0xNC44LS42LTIyLjEtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjUgMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjFsMCAuNGM3LjcgMjIuNSAxMS44IDQ2LjIgMTEuOCA3MCAwIDU0LjEtMjEuOSA5OS02OC4zIDEyOC4ybC0yLjQgLjJjNTAgMSA4Ni4yLTM4LjYgODYuMi04Ny4yIDAtMTIuMi0yLjEtMjQuMy02LjktMzUuNyA5LjUtMS45IDE4LjUtNS42IDI2LjQtMTAuNSAxNS4zIDM2LjYgMTIuNiA4Ny4zLTIyLjggMTI1LjYtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDB6TTI3NC42IDIxNy42YzIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTMgMS41LTMgNC4xLTguNiA0LjUtMTItMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjctNC43LTcuMy03LjUtMTUuNS03LjUtMjQuMyAwLTEwLjMgNS4yLTI0LjEgMTIuOS0zMS42IDguMy03LjkgMTgtMTAuOSAyNy45LTE0LjEgMTYtNS4xIDMyLjUtMTAuMyA0NC41LTM1LjkgMzIuNSA0Ni4yIDEzLjEgMTMwLjMtMzYuMyAxMzAuMy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xeiJdfSxyZ3Q9d3VlLHNndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcGFuZWwiLGljb246WzY0MCw1MTIsW10sImYzODgiLCJNMjEwLjMgMjIwLjJjLTUuNi0yNC44LTI2LjktNDEuMi01MS00MS4ybC0zNyAwYy03LjEgMC0xMi41IDQuNS0xNC4zIDEwLjlMNzMuMSAzMjAgOTcuOCAzMTkuOWM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsMjUuOC05NS43IDE5LjggMGM4LjQgMCAxNi4yIDUuNiAxOC4zIDE0LjggMi41IDEwLjktNS45IDIyLjYtMTguMyAyMi42bC0xMC4zIDBjLTcgMC0xMi41IDQuNi0xNC4zIDEwLjhsLTYuNCAyMy44IDMyIDBjMzcuMiAwIDU4LjMtMzYuMiA1MS43LTY1LjN6bS0xNTYuNSAyOGwxOC42IDBjNi45IDAgMTIuNC00LjQgMTQuMy0xMC45bDYuMi0yMy42LTQwIDBDMzAgMjEzLjcgOSAyMjcuOCAxLjcgMjU0LjgtNyAyODguNiAxOC41IDMyMCA1MiAzMjBsMTIuNCAwIDcuMS0yNi4xYzEuMi00LjQtMi4yLTguMy02LjQtOC4zbC0xMS4zIDBjLTI0LjcgMC0yNC45LTM3LjQgMC0zNy40em0yNDcuNS0zNC44bC03Ny45IDAtMy41IDEzLjRjLTIuNCA5LjYgNC41IDE4LjUgMTQuMiAxOC41bDU3LjUgMGM0IDAgMi40IDQuMyAyLjEgNS4zbC04LjYgMzEuOGMtLjQgMS40LS45IDUuMy01LjUgNS4zbC0zNC45IDBjLTUuMyAwLTUuMy03LjkgMC03LjlsMjEuNiAwYzYuOCAwIDEyLjMtNC42IDE0LjItMTAuOGwzLjUtMTMuMi00OC40IDBjLTM5LjIgMC00My42IDYzLjgtLjcgNjMuOGw1Ny41IC4yYzExLjIgMCAyMC42LTcuMiAyMy40LTE3LjhsMTQtNTEuOGM0LjgtMTkuMi05LjctMzYuOC0yOC41LTM2Ljh6TTYzMy4xIDE3OWwtMTguOSAwYy00LjkgMC05LjIgMy4yLTEwLjQgNy45TDU2OC4yIDMyMGMyMC43IDAgMzkuOC0xMy44IDQ0LjktMzQuNWwyNi41LTk4LjJjMS4yLTQuMy0yLTguMy02LjUtOC4zek0zOTYuOCAyMTMuN2wwIC4xLTQ4LjMgMC0yNi4yIDk4Yy0xLjIgNC40IDIuMiA4LjMgNi40IDguM2wxOC45IDBjNC44IDAgOS4yLTMgMTAuNC03LjhsMTcuMi02NCAxOS44IDBjMTIuNSAwIDIxLjQgMTEuOCAxOC4xIDIzLjRsLTEwLjYgNDBjLTEuMiA0LjMgMS45IDguMyA2LjQgOC4zbDE5LjEgMGM0LjYgMCA5LjEtMi45IDEwLjMtNy44bDguOC0zMy4xYzktMzMuMS0xNS45LTY1LjQtNTAuMy02NS40em05OC4zIDc0LjZjLTMuNiAwLTYtMy40LTUuMS02LjdsOC0zMGMuOS0zLjkgMy43LTYgNy44LTZsMzIuOSAwYzIuNiAwIDQuNiAyLjQgMy45IDUuMWwtLjcgMi42Yy0uNiAyLTEuOSAzLTMuOSAzbC0yMS42IDBjLTcgMC0xMi42IDQuNi0xNC4yIDEwLjhsLTMuNSAxMyA1My40IDBjMTAuNSAwIDIwLjMtNi42IDIzLjItMTcuNmwzLjItMTJjNC45LTE5LjEtOS4zLTM2LjgtMjguMy0zNi44bC00Ny4zIDBjLTE3LjkgMC0zMy44IDEyLTM4LjYgMjkuNmwtMTAuOCA0MGMtNSAxNy43IDguMyAzNi43IDI4LjMgMzYuN2w2Ni43IDBjNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDUuNy0yMS03My4zIDB6Il19LGlndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZW5kZWxleSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiMyIsIk02MjQuNiAzMjUuMmMtMTIuMy0xMi40LTI5LjctMTkuMi00OC40LTE3LjItNDMuMy0xLTQ5LjctMzQuOS0zNy41LTk4LjggMjIuOC01Ny41LTE0LjktMTMxLjUtODcuNC0xMzAuOC03Ny40IC43LTgxLjcgODItMTMwLjkgODItNDguMSAwLTU0LTgxLjMtMTMwLjktODItNzIuOS0uOC0xMTAuMSA3My4zLTg3LjQgMTMwLjggMTIuMiA2My45IDUuOCA5Ny44LTM3LjUgOTguOC0yMS4yLTIuMy0zNyA2LjUtNTMgMjIuNS0xOS45IDE5LjctMTkuMyA5NC44IDQyLjYgMTAyLjYgNDcuMSA1LjkgODEuNi00Mi45IDYxLjItODcuOC00Ny4zLTEwMy43IDE4NS45LTEwNi4xIDE0Ni41LTguMi0uMSAuMS0uMiAuMi0uMyAuNC0yNi44IDQyLjggNi44IDk3LjQgNTguOCA5NS4yIDUyLjEgMi4xIDg1LjQtNTIuNiA1OC44LTk1LjItLjEtLjItLjItLjMtLjMtLjQtMzkuNC05Ny45IDE5My44LTk1LjUgMTQ2LjUgOC4yLTQuNiAxMC02LjcgMjEuMy01LjcgMzMgNC45IDUzLjQgNjguNyA3NC4xIDEwNC45IDM1LjIgMTcuOC0xNC44IDIzLjEtNjUuNiAwLTg4LjN6TTMyMC43IDMwNi4xbC0uNiAwYy00My40IDAtNjIuOC0zNy41LTYyLjgtNjIuOCAwLTM0LjcgMjguMi02Mi44IDYyLjgtNjIuOGwuNiAwYzM0LjcgMCA2Mi44IDI4LjEgNjIuOCA2Mi44IDAgMjUtMTkuMiA2Mi44LTYyLjggNjIuOHoiXX0sb2d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyYWZ0MmRpZ2l0YWwiLGljb246WzUxMiw1MTIsW10sImYzOTYiLCJNNDk2IDM5OC4xbC0xNDQtODIuMiAwIDY0LjctOTEuMyAwYzMwLjgtMzUgODEuOC05NS45IDExMS44LTE0OS4zIDM1LjItNjIuNiAxNi4xLTEyMy40LTEyLjgtMTUzLjMtNC40LTQuNi02Mi4yLTYyLjktMTY2LTQxLjItNTkuMSAxMi40LTg5LjQgNDMuNC0xMDQuMyA2Ny4zLTEzLjEgMjAuOS0xNyAzOS44LTE4LjIgNDcuNy01LjUgMzMgMTkuNCA2Ny4xIDU2LjcgNjcuMSAzMS43IDAgNTcuMy0yNS43IDU3LjMtNTcuNCAwLTI3LjEtMTkuNy01Mi4xLTQ4LTU2LjggMS44LTcuMyAxNy43LTIxLjEgMjYuMy0yNC43IDQxLjEtMTcuMyA3OCA1LjIgODMuMyAzMy41IDguMyA0NC4zLTM3LjEgOTAuNC02OS43IDEyNy42LTc2LjYgODctMTQyLjggMTU1LjctMTYxLjEgMTc0LjhsMzM2LS4xIDAgNjQuMiAxNDQtODEuOXpNMzg1LjkgMzcxbDQ3LjEgMjcuMi00Ny4xIDI3LjIgMC01NC40ek0xMDUuNCAxNjEuNGEyMi40IDIyLjQgMCAxIDEgNDQuOCAwIDIyLjQgMjIuNCAwIDEgMSAtNDQuOCAwek05OC41IDM4MC41YzI1LjYtMjcuNCA5Ny43LTEwNC43IDE1MC44LTE2OS45IDM1LjEtNDMuMSA0MC4zLTgyLjQgMjguNC0xMTIuNy03LjQtMTguOC0xNy41LTMwLjItMjQuMy0zNS43IDQ1LjMgMi4xIDY4IDIzLjQgODIuMiAzOC4zIDAgMCA0Mi40IDQ4LjIgNS44IDExMy4zLTM3IDY1LjktMTEwLjkgMTQ3LjUtMTI4LjUgMTY2LjdsLTExNC40IDB6Il19LG5ndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXBseWQiLGljb246WzQ0OCw1MTIsW10sImYzZTYiLCJNMzIwIDQ4MGwtMTkyIDBDNTcuNiA0ODAgMCA0MjIuNCAwIDM1MkwwIDE2MEMwIDg5LjYgNTcuNiAzMiAxMjggMzJsMTkyIDBjNzAuNCAwIDEyOCA1Ny42IDEyOCAxMjhsMCAxOTJjMCA3MC40LTU3LjYgMTI4LTEyOCAxMjh6TTE5My40IDI3My4yYy02LjEtMi0xMS42LTMuMS0xNi40LTMuMS03LjIgMC0xMy41IDEuOS0xOC45IDUuNnMtOS42IDktMTIuOCAxNS44bC0xLjEgMC00LjItMTguMy0yOCAwIDAgMTM4LjkgMzYuMSAwIDAtODkuN2MxLjUtNS40IDQuNC05LjggOC43LTEzLjJzOS44LTUuMSAxNi4yLTUuMWM0LjYgMCA5LjggMSAxNS42IDMuMWw0LjgtMzR6TTMwOC42IDM3Ni42Yy0zLjIgMi40LTcuNyA0LjgtMTMuNyA3LjFzLTEyLjggMy41LTIwLjQgMy41Yy0xMi4yIDAtMjEuMS0zLTI2LjUtOC45LTUuNS01LjktOC41LTE0LjctOS0yNi40bDgzLjMgMGMuOS00LjggMS42LTkuNCAyLjEtMTMuOSAuNS00LjQgLjctOC42IC43LTEyLjUgMC0xMC43LTEuNi0xOS43LTQuNy0yNi45LTMuMi03LjItNy4zLTEzLTEyLjUtMTcuMi01LjItNC4zLTExLjEtNy4zLTE3LjgtOS4yLTYuNy0xLjgtMTMuNS0yLjgtMjAuNi0yLjgtMjEuMSAwLTM3LjUgNi4xLTQ5LjIgMTguM3MtMTcuNSAzMC41LTE3LjUgNTVjMCAyMi44IDUuMiA0MC43IDE1LjYgNTMuNyAxMC40IDEzLjEgMjYuOCAxOS42IDQ5LjIgMTkuNiAxMC43IDAgMjAuOS0xLjUgMzAuNC00LjZzMTcuMS02LjggMjIuNi0xMS4ybC0xMi0yMy42em0tMjEuOC03MC4zYzMuOCA1LjQgNS4zIDEzLjEgNC42IDIzLjFsLTUxLjcgMGMuOS05LjQgMy43LTE3IDguMi0yMi42czExLjUtOC41IDIxLTguNWM4LjItLjEgMTQuMSAyLjYgMTcuOSA4em03OS45IDIuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNCAyIDExLjcgNi4xIDE1LjZ6bTAgMTAwLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNC05LjYtNS43LTE2LjctNS43Yy02LjcgMC0xMiAxLjktMTYuMSA1LjdzLTYuMSA4LjktNi4xIDE1LjRjMCA2LjYgMiAxMS43IDYuMSAxNS42eiJdfSxsZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW1waXJlIixpY29uOls1MTIsNTEyLFtdLCJmMWQxIiwiTTI5NS42IDU0LjJjLTEwLjgtMi4yLTIyLjEtMy4zLTMzLjUtMy42bDAtMTguMmM3OC4xIDIuMiAxNDYuMSA0NCAxODQuNiAxMDYuNmwtMTUuOCA5LjFjLTYuMS05LjctMTIuNy0xOC44LTIwLjItMjcuMWwtMTggMTUuNWMtMjYtMjkuNi02MS40LTUwLjctMTAxLjktNTguNGw0LjgtMjMuOXpNNjEuNCAzMjIuNGwyMy03LjdjLTYuNC0xOC4zLTEwLTM4LjItMTAtNTguN3MzLjMtNDAuNCA5LjctNTguN2wtMjIuNy03LjdjMy42LTEwLjggOC4zLTIxLjMgMTMuNi0zMWwtMTUuOC05LjFDNDIgMTgxIDMyLjEgMjE3LjUgMzIuMSAyNTZzMTAgNzUgMjcuMSAxMDYuNkw3NSAzNTMuNWMtNS4zLTEwLTkuNy0yMC4zLTEzLjYtMzEuMXpNMjIxLjEgNDM0Yy00MC40LTgtNzUuOC0yOS4xLTEwMS45LTU4LjdsLTE4IDE1LjhjLTcuNS04LjYtMTQuNC0xNy43LTIwLjItMjcuNGwtMTYgOS40YzM4LjUgNjIuMyAxMDYuOCAxMDQuMyAxODQuOSAxMDYuNmwwLTE4LjNjLTExLjMtLjMtMjIuNy0xLjctMzMuNS0zLjZsNC43LTIzLjh6TTEwMS4zIDEyMC45bDE4IDE1LjVjMjYtMjkuNiA2MS40LTUwLjcgMTAxLjktNTguNGwtNC43LTIzLjhjMTAuOC0yLjIgMjIuMS0zLjMgMzMuNS0zLjZsMC0xOC4yQzE3MS45IDM0LjYgMTAzLjkgNzYuNCA2NS40IDEzOWwxNS44IDkuMWM2LTkuNyAxMi42LTE4LjkgMjAuMS0yNy4yek00MTAuNyAzOTEuMWwtMTgtMTUuOGMtMjYgMjkuNi02MS40IDUwLjctMTAxLjkgNTguN2w0LjcgMjMuOGMtMTAuOCAxLjktMjIuMSAzLjMtMzMuNSAzLjZsMCAxOC4zYzc4LjEtMi4yIDE0Ni40LTQ0LjMgMTg0LjktMTA2LjZsLTE2LjEtOS40Yy01LjcgOS43LTEyLjYgMTguOC0yMC4xIDI3LjR6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQ4My44IDBhMjM1LjggMjM1LjggMCAxIDAgLTQ3MS42IDAgMjM1LjggMjM1LjggMCAxIDAgNDcxLjYgMHptLTM5LTEwNi42TDQzNyAxNTguNWM1LjMgOS43IDEwIDIwLjIgMTMuNiAzMWwtMjIuNyA3LjdjNi40IDE4LjMgOS43IDM4LjIgOS43IDU4LjdzLTMuNiA0MC40LTEwIDU4LjdsMjMgNy43Yy0zLjkgMTAuOC04LjMgMjEtMTMuNiAzMWwxNS44IDkuMUM0NzAgMzMxIDQ3OS45IDI5NC41IDQ3OS45IDI1NnMtOS45LTc1LTI3LjEtMTA2LjZ6bS0xODMgMTc3LjdjMTYuMy0zLjMgMzAuNC0xMS42IDQwLjctMjMuNWw1MS4yIDQ0LjhjMTEuOS0xMy42IDIxLjMtMjkuMyAyNy4xLTQ2LjhsLTY0LjItMjIuMWMyLjUtNy41IDMuOS0xNS4yIDMuOS0yMy41cy0xLjQtMTYuMS0zLjktMjMuNWw2NC41LTIyLjFjLTYuMS0xNy40LTE1LjUtMzMuMi0yNy40LTQ2LjhsLTUxLjIgNDQuOGMtMTAuMi0xMS45LTI0LjQtMjAuNS00MC43LTIzLjhsMTMuMy02Ni40Yy04LjYtMS45LTE3LjctMi44LTI3LjEtMi44cy0xOC41IC44LTI3LjEgMi44bDEzLjMgNjYuNGMtMTYuMyAzLjMtMzAuNCAxMS45LTQwLjcgMjMuOGwtNTEuMi00NC44Yy0xMS45IDEzLjYtMjEuMyAyOS4zLTI3LjQgNDYuOGw2NC41IDIyLjFjLTIuNSA3LjUtMy45IDE1LjItMy45IDIzLjVzMS40IDE2LjEgMy45IDIzLjVsLTY0LjIgMjIuMWM1LjggMTcuNCAxNS4yIDMzLjIgMjcuMSA0Ni44bDUxLjItNDQuOGMxMC4yIDExLjkgMjQuNCAyMC4yIDQwLjcgMjMuNWwtMTMuMyA2Ni43YzguNiAxLjcgMTcuNyAyLjggMjcuMSAyLjhzMTguNS0xLjEgMjcuMS0yLjhsLTEzLjMtNjYuN3oiXX0sY2d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFjY2Vzc2libGUtaWNvbiIsaWNvbjpbNDQ4LDUxMixbNjIxMDddLCJmMzY4IiwiTTQyMy45IDI1NS44TDQxMSA0MTMuMWMtMy4zIDQwLjctNjMuOSAzNS4xLTYwLjYtNC45bDEwLTEyMi41LTQxLjEgMi4zYzEwLjEgMjAuNyAxNS44IDQzLjkgMTUuOCA2OC41IDAgNDEuMi0xNi4xIDc4LjctNDIuMyAxMDYuNWwtMzkuMy0zOS4zYzU3LjktNjMuNyAxMy4xLTE2Ny4yLTc0LTE2Ny4yLTI1LjkgMC00OS41IDkuOS02Ny4yIDI2TDczIDI0My4yYzIyLTIwLjcgNTAuMS0zNS4xIDgxLjQtNDAuMmw3NS4zLTg1LjctNDIuNi0yNC44LTUxLjYgNDZDMTA1LjUgMTY1LjMgNjQuOSAxMjAgOTUgOTMuMWw2OC02MC43YzkuOC04LjggMjQuMS0xMC4yIDM1LjUtMy42IDAgMCAxMzkuMyA4MC45IDEzOS41IDgxLjEgMTYuMiAxMC4xIDIwLjcgMzYgNi4xIDUyLjZsLTU4LjQgNjYuNSAxMDYuMS01LjljMTguNS0xLjEgMzMuNiAxNC40IDMyLjEgMzIuN3pNMzU5IDEwMS44QTUwLjkgNTAuOSAwIDEgMCAzNTkgMCA1MC45IDUwLjkgMCAxIDAgMzU5IDEwMS44ek0xNzkuNiA0NTYuNWMtODAuNiAwLTEyNy40LTkwLjYtODIuNy0xNTYuMUw1Ny4yIDI2MC43QzM2LjQgMjg3IDI0IDMyMC4zIDI0IDM1Ni40IDI0IDQ4Ny4xIDE3NC43IDU1Ny44IDI3NS40IDQ3OC45bC0zOS43LTM5LjdjLTE2IDEwLjktMzUuMyAxNy4zLTU2LjEgMTcuM3oiXX0sZGd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InF1b3JhIixpY29uOls0NDgsNTEyLFtdLCJmMmM0IiwiTTQ0MC43IDM4Ni43bC0yOS4zIDBjLTEuNSAxMy41LTEwLjUgMzAuOC0zMyAzMC44LTIwLjUgMC0zNS4zLTE0LjItNDkuNS0zNS44IDQ0LjItMzQuMiA3NC43LTg3LjUgNzQuNy0xNTMgLjEtMTE3LjUtOTYuNi0xOTYuNy0xOTguNC0xOTYuNy05OS43IDAtMTk3LjcgNzkuNy0xOTcuNyAxOTYuNyAwIDEzNC4xIDEzMS4zIDIyMS42IDI0OSAxODkgMTkuNyAzMy42IDQ1LjcgNjIuMyA5NS4yIDYyLjMgODEuOCAwIDkwLjgtNzUuMyA4OS05My4zek0yOTcuMiAzMjkuMmMtMTkuNS0yOS4yLTQzLjctNTIuMi05MS41LTUyLjItMzAuNSAwLTU0LjMgMTAtNjkgMjIuOGwxMi4yIDI0LjNjNi4yLTMgMTMtNCAxOS44LTQgMzUuNSAwIDUzLjcgMzAuOCA2OS4yIDYxLjMtMTAgMy0yMC43IDQuMi0zMi43IDQuMi03NSAwLTEwNy41LTUzLTEwNy41LTE1Ni43IDAtMTA0LjQgMzIuNS0xNTcuOSAxMDcuNS0xNTcuOSA3Ni4yIDAgMTA4LjcgNTMuNSAxMDguNyAxNTcuNyAuMSA0MS44LTUuNCA3NS42LTE2LjcgMTAwLjV6Il19LHVndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1qY2IiLGljb246WzU3Niw1MTIsW10sImYyNGIiLCJNNDMxLjUgMjQ0LjNsMC0zMi4zYzQxLjIgMCAzOC41IC4yIDM4LjUgLjIgNy4zIDEuMyAxMy4zIDcuMyAxMy4zIDE2IDAgOC44LTYgMTQuNS0xMy4zIDE1LjgtMS4yIC40LTMuMyAuMy0zOC41IC4zem00Mi44IDIwLjJjLTIuOC0uNy0zLjMtLjUtNDIuOC0uNWwwIDM1YzM5LjYgMCA0MCAuMiA0Mi44LS41IDcuNS0xLjUgMTMuNS04IDEzLjUtMTcgMC04LjctNi0xNS41LTEzLjUtMTd6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4MiAxOTIuM2wtNTcgMGMwIDY3LjEgMTAuNyAxMDkuNy0zNS44IDEwOS43LTE5LjUgMC0zOC44LTUuNy01Ny4yLTE0LjhsMCAyOGMzMCA4LjMgNjggOC4zIDY4IDguMyA5Ny45IDAgODItNDcuNyA4Mi0xMzEuMnptMTc4LjUgNC41Yy02My40LTE2LTE2NS0xNC45LTE2NSA1OS4zIDAgNzcuMSAxMDguMiA3My42IDE2NSA1OS4ybDAtMjguM0MzMTIuOSAzMTEuNyAyNTMgMzA5IDI1MyAyNTZzNTkuOC01NS42IDEwNy41LTMxLjJsMC0yOHpNNTQ0IDI4Ni41YzAtMTguNS0xNi41LTMwLjUtMzgtMzJsMC0uOGMxOS41LTIuNyAzMC4zLTE1LjUgMzAuMy0zMC4yIDAtMTktMTUuNy0zMC0zNy0zMSAwIDAgNi4zLS4zLTEyMC4zLS4zbDAgMTI3LjUgMTIyLjcgMGMyNC4zIC4xIDQyLjMtMTIuOSA0Mi4zLTMzLjJ6Il19LHBndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRvcmEiLGljb246WzQ0OCw1MTIsW10sImY3OTgiLCJNMCAyNTUuOEMuMSAxMzIuMiAxMDAuMyAzMiAyMjQgMzJTNDQ4IDEzMi4zIDQ0OCAyNTYgMzQ3LjggNDc5LjkgMjI0LjEgNDgwTDUwLjkgNDgwQzIyLjggNDgwIC4xIDQ1Ny4zIDAgNDI5LjJsMCAwIDAtMTczLjQgMCAwem0zNDIuNi02My4xYzAtMzkuNy0zNS42LTY4LjUtNzMuMi02OC41LTM0LjkgMC02NS44IDI2LjMtNzAuMSA1OS45LS4yIDMuOC0uNCA1LS40IDguNS0uMSAyMS4xIDAgNDIuOC0uOCA2NC40IC45IDI2LjEgMSA1Mi4xIDAgNzYuNiAwIDI3LjEtMTkuNCA0NS41LTQ0LjcgNDUuNXMtNDUuOC0yMC4yLTQ1LjgtNDUuNWMuNS0yNy43IDIyLjYtNDUuMyA0OC41LTQ2LjFsLjIgMCAyNi4zLS4yIDAtMzcuMy0yNi4zIC4yYy00Ny4xLS40LTg0LjYgMzYuNS04NS45IDgzLjQgMCA0NS42IDM3LjUgODIuOSA4MyA4Mi45IDQzIDAgNzguNy0zMy42IDgyLjYtNzUuNmwuMi01My41IDMyLjYtLjNjMjUuMyAuMiAyNS0zNy44LS4yLTM3LjNsLTMyLjQgLjNjMC02LjQgLjEtMTIuOCAuMS0xOS4yIC4xLTEyLjcgLjEtMjUuNC0uMS0zOC4yIC4xLTE2LjUgMTUuOC0zMS4yIDMzLjItMzEuMiAxNy41IDAgMzUuOSA4LjcgMzUuOSAzMS4yIDAgMy4yLS4xIDUuMS0uMyA2LjMtMS45IDEwLjUgNS4yIDIwLjQgMTUuNyAyMS45IDEwLjYgMS41IDIwLjItNi4xIDIxLjItMTYuNiAuNi00LjIgLjctNy45IC43LTExLjZ6Il19LGZndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkdW9saW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTgxMiIsIk01MDQuMyAyMzAuNWMxMC40IDg4LjUtNDMuNCAxNzIuMS0xMjguMiAxOTlzLTE3Ni42LTEwLjMtMjE4LjktODguN2MtNzIgMy0xMzcuNC0zOS44LTE2My4yLTEwNS41LTIuNi02LjYtMS45LTE0IDEuOS0xOS45czEwLjItOS43IDE3LjItMTAuMWw5Ni4xLTYtMjMuOC03NS45Yy02LjMtMjAtMi4yLTQxLjkgMTEtNTguM3MzMy43LTI1IDU0LjUtMjNjNTIuMiA1IDg2LjggNC44IDEwNC0uNlMzMDAgMTYuNyAzMzktMTYuOWMxNS45LTEzLjcgMzcuNy0xOC41IDU3LjgtMTIuN3MzNi4xIDIxLjMgNDIuNCA0MS40TDQ2Mi44IDg3IDU0My42IDM3LjNjNi0zLjcgMTMuNC00LjMgMTkuOS0xLjZzMTEuMyA4LjMgMTIuOSAxNS4yYzE2LjIgNjguMi0xMi40IDE0MC4zLTcyLjEgMTc5LjV6TTI1OC41IDQ3NS45bDAgMGMxNS4xIDcuNSAyMS41IDI1LjggMTQuMiA0MXMtMjUuNCAyMS45LTQwLjcgMTQuOWwtNDMuOS0yMWMtMTUuMS03LjUtMjEuNS0yNS44LTE0LjItNDFzMjUuNC0yMS45IDQwLjctMTQuOWw0My44IDIxek01NjQuNiAzNDUuN2MxNC44IDguNCAyMCAyNy4zIDExLjYgNDIuMmwtMjMuOSA0Mi40Yy04LjcgMTQuMy0yNy4xIDE5LjItNDEuNiAxMC45cy0xOS45LTI2LjYtMTItNDEuNGwyMy45LTQyLjRjNC03LjEgMTAuNy0xMi40IDE4LjYtMTQuNnMxNi4zLTEuMiAyMy40IDIuOXoiXX0saGd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0ZHJhZnQiLGljb246WzM4NCw1MTIsW10sImYzYTEiLCJNMzg0IDE5MmwtNjQgMCAwIDEyOC0xMjggMCAwIDEyOC0xOTIgMCAwLTI1LjYgMTY2LjQgMCAwLTEyOCAxMjggMCAwLTEyOCA4OS42IDAgMCAyNS42em0tMjUuNiAzOC40bDAgMTI4LTEyOCAwIDAgMTI4LTE2Ni40IDAgMCAyNS42IDE5MiAwIDAtMTI4IDEyOCAwIDAtMTUzLjYtMjUuNiAwem0yNS42IDE5MmwtODkuNiAwIDAgODkuNiAyNS42IDAgMC02NCA2NCAwIDAtMjUuNnpNMCAwbDAgMzg0IDEyOCAwIDAtMTI4IDEyOCAwIDAtMTI4IDEyOCAwIDAtMTI4LTM4NCAweiJdfSxtZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnJlZWJzZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhNCIsIk0zMDMuNyA5Ni4yYzExLjEtMTEuMSAxMTUuNS03NyAxMzkuMi01My4yIDIzLjcgMjMuNy00Mi4xIDEyOC4xLTUzLjIgMTM5LjJzLTM5LjQgLjktNjMuMS0yMi45Yy0yMy44LTIzLjctMzQuMS01Mi0yMi45LTYzLjF6TTEwOS45IDY4LjFDNzMuNiA0Ny41IDIyIDI0LjYgNS42IDQxLjEtMTEgNTcuNyAxMi43IDExMC41IDMzLjUgMTQ2LjggNTIgMTE0LjYgNzguMyA4Ny41IDEwOS45IDY4LjF6TTQwNi43IDE3NGMzLjMgMTEuMyAyLjcgMjAuNy0yLjcgMjYuMS0yMC4zIDIwLjMtODcuNS0yNy0xMDkuMy03MC4xLTE4LTMyLjMtMTEuMS01My40IDE0LjktNDguNyA1LjctMy42IDEyLjMtNy42IDE5LjYtMTEuNi0yOS44LTE1LjUtNjMuNi0yNC4zLTk5LjUtMjQuMy0xMTkuMSAwLTIxNS42IDk2LjUtMjE1LjYgMjE1LjYgMCAxMTkgOTYuNSAyMTUuNiAyMTUuNiAyMTUuNlM0NDUuMyAzODAuMSA0NDUuMyAyNjFjMC0zOC40LTEwLjEtNzQuNS0yNy43LTEwNS44LTMuOSA3LTcuNiAxMy4zLTEwLjkgMTguOHoiXX0sZ2d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9keXNlZSIsaWNvbjpbNTEyLDUxMixbXSwiZTVjNiIsIk00MDYuNyA0NjNjLTQyLjMgMzAuOC05NC40IDQ5LTE1MC43IDQ5LTExMS4xIDAtMjA1LjctNzAuOC0yNDEuMS0xNjkuOCAyLjQgMS43IDUuOSAzLjYgNy45IDQuNCAxNi4zIDcuNCA0MC4xLTUuNCA2Mi45LTI4LjcgNi45LTYuOSAxNC40LTEyLjQgMjIuOC0xNy4zIDE4LjMtMTEuOSAzNy42LTIwLjggNTguNC0yNy4yIDAgMCAyMi4zIDM0LjIgNDMuMSA3NC44cy0yMi4zIDU0LTI3LjIgNTRjLS4zIDAtLjggMC0xLjUtLjEtMTEtLjUtNzAtMy01NiA1MS4xIDE0LjkgNTcuNCA5Ny41IDM2LjYgMTM5LjYgOC45czMxLjctMTE4LjMgMzEuNy0xMTguM2M0MS4xLTYuNCA1NCAzNy4xIDU3LjkgNTkuNCAuOCA0LjYgMS4xIDkuOSAxLjQgMTUuNSAxLjEgMjEuMiAyLjMgNDUuNiAzNS4zIDQ2LjQgNS4zIDAgMTAuNi0uOCAxNS41LTJsMC0uMXptLTk1LjMtMjMuN2MtMi0uNS0zLjUtMi41LTMtNSAxLTIuNSAzLTMuNSA1LTNzMy41IDMgMyA1LTIuNSAzLjUtNSAzem0tMjA3LTk1LjZjMS41LS41IDMuNSAxIDQgMyAwIDItMSA0LTMgNC0xLjUgLjUtMy41LTEtNC0zLS41LTEuNSAxLTMuNSAzLTR6TTQ1MS44IDQyMWMzNy41LTQ0LjYgNjAuMi0xMDIuMiA2MC4yLTE2NSAwLTY3LjUtMjYuMS0xMjguOS02OC44LTE3NC43LS4xIDIzLjUtNi4xIDQ4LjItMTYuOCA2OS4yLTExLjkgMjAuMy00OSA1OC45LTY5LjggNzguNy0uNyAuMy0xLjEgLjktMS41IDEuNC0uMiAuMi0uMyAuNC0uNSAuNi01IDYuOS00IDE2LjggMyAyMS44IDIxLjMgMTUuOCA1Ni40IDQ1LjYgNTkuNCA3Mi44IDMuNSAzNC45IDI3LjkgNzUuNiAzNC4yIDg2LjIgLjggMS4zIDEuMyAyLjEgMS40IDIuNCAwIDIuMi0uNCA0LjMtLjggNi41bDAgLjF6TTM5MC43IDI1MWMtLjUgMyAxIDUuOSA0IDYuNHM1LjktMSA2LjQtNC0xLTUuOS00LTYuNGMtMy0xLTUuOSAxLTYuNCA0em02MS40LTYwLjlsLTExLjQgNS40LTMgMTIuOS01LjQtMTEuNC0xMi45LTMgMTEuNC01LjQgMy0xMi45IDUuNCAxMS40IDEyLjkgM3pNMzk1LjUgNDEuM2MtMTYuMiA4LjItMjIuMSAzMi44LTI5IDYxLjQtLjMgMS40LS43IDIuOC0xIDQuMi05LjUgMzguNS0zMC42IDM3LjYtNDEuNyAzNy4yLTEuMSAwLTItLjEtMi45LS4xLTUuMSAwLTYtNC04LjktMTcuMS0yLjYtMTIuMS02LjktMzItMTcuOS02My42LTIyLjctNjUuOC04Mi43LTQ5LjQtMTI4LjItMjIuMi01NS4zIDMzLjEtMzQuNCAxMDEuOS0xOS44IDE0OS40IC43IDIuMiAxLjQgNC40IDIgNi42LTQgNC0xMy44IDcuNS0yNiAxMS45LTEyLjEgNC4zLTI2LjYgOS41LTQwLjMgMTYuOS0zMy45IDE4LTcwLjMgNDktNzkuOCA2Mi42LTEuMy0xMC43LTItMjEuNS0yLTMyLjUgMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiA1MS40IDAgOTkuNCAxNS4yIDEzOS41IDQxLjN6TTU4LjkgMTg5LjZjLTEuNS0yLTQuNS0zLTYuNC0xLjVzLTMgNC41LTEuNSA2LjQgNC41IDMgNi40IDEuNWMyLjUtMS41IDMtNC41IDEuNS02LjR6TTMyNy4zIDY0LjljMi0xLjUgNS0uNSA2LjQgMS41IDEuNSAyLjUgMSA1LjQtMS41IDYuNC0yIDEuNS01IC41LTYuNC0xLjVzLS41LTUgMS41LTYuNHpNOTUuMSAxMDVjLS41IDEuNSAuNSAzIDIgMyAxLjUgLjUgMy0uNSAzLTIgLjUtMS41LS41LTMtMi0zcy0zIC41LTMgMnptODQuNy0uNWMtMy41LTQzLjEgMzcuMS01NCAzNy4xLTU0IDQ0LjEtMTUuNCA1NiA1LjkgNjYuNCAzNy42czMgNDIuNi0zOC42IDU4LjktNjEuOS00LjUtNjQuOS00Mi42bDAgLjF6bTg5LjYgMTQuOWwxIDBjMi41IDAgNS0yIDUtNSAyLTYuOSAxLTE0LjQtMi0yMC44LTEuNS0yLTQtMy41LTYuNC0yLjUtMyAxLTQuNSA0LTMuNSA2LjkgMiA0LjUgMyA5LjkgMS41IDE0LjktLjUgMyAxLjUgNS45IDQuNSA2LjRsLS4xIC4xem0tOS45LTQxLjZjLTIgMC00LTEtNS0zcy0yLTMuNS0zLTVjLTItMi0yLTUuNCAwLTcuNHM1LjQtMiA3LjQgMGMyIDIuNSAzLjUgNSA1IDcuNHMuNSA1LjktMi41IDcuNGMtLjYgMC0xIC4yLTEuMyAuMy0uMiAuMS0uNCAuMi0uNiAuMmwwIC4xeiJdfSxiZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2ctY2lyY2xlIixpY29uOls1MTIsNTEyLFtdLCJmMjYxIiwiTTI1Ny41IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0yMDggMzgyLjhsLTEyNS43LTEyNS43IDEyNS43LTEyNS43IDM1LjIgMzUuNC0yNC4yIDI0LjItMTEuMS0xMS4xLTc3LjIgNzcuMiA3Ny4yIDc3LjIgMjYuNi0yNi42LTUzLjEtNTIuOSAyNC40LTI0LjQgNzcuMiA3Ny4yLTc1IDc1LjJ6bTk5LTIuMmwtMzUuMi0zNS4yIDI0LjEtMjQuNCAxMS4xIDExLjEgNzcuMi03Ny4yLTc3LjItNzcuMi0yNi41IDI2LjUgNTMuMSA1Mi45LTI0LjQgMjQuNC03Ny4yLTc3LjIgNzUtNzUgMTI1LjcgMTI1LjctMTI1LjcgMTI1LjZ6Il19LHZndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZGZsYXJlIixpY29uOls2NDAsNTEyLFtdLCJlMDdkIiwiTTQwNy45IDMxOS45TDE3Ny4xIDMxN2MtLjcgMC0xLjQtLjItMi0uNXMtMS4yLS44LTEuNi0xLjRjLS40LS42LS43LTEuMy0uNy0yczAtMS40IC4yLTIuMWMuNC0xLjEgMS4xLTIuMSAyLjEtMi44czIuMS0xLjIgMy4zLTEuMmwyMzIuOS0yLjljMjcuNi0xLjMgNTcuNS0yMy42IDY4LTUwLjhsMTMuMy0zNC41Yy40LS45IC41LTEuOSAuNS0yLjkgMC0uNS0uMS0xLjEtLjItMS42LTcuNC0zMi4yLTI1LTYxLjEtNTAuMy04Mi4zcy01Ni43LTMzLjctODkuNy0zNS41LTY1LjYgNy4zLTkzIDI1LjctNDggNDUuMy01OC44IDc2LjVjLTExLjMtOC41LTI0LjktMTMuMy0zOS0xMy43cy0yOCAzLjUtMzkuOCAxMS40LTIwLjggMTkuMS0yNS45IDMyLjMtNS45IDI3LjYtMi40IDQxLjNjLTUyLjMgMS41LTk0LjIgNDQuMS05NC4yIDk2LjUgMCA0LjcgLjMgOS4zIDEgMTQgLjIgMS4xIC43IDIuMSAxLjUgMi44czEuOSAxLjEgMi45IDEuMWw0MjYuMSAuMWMwIDAgLjEgMCAuMSAwIDEuMiAwIDIuMy0uNCAzLjMtMS4xczEuNi0xLjcgMi0yLjlsMy4zLTExLjNjMy45LTEzLjQgMi40LTI1LjgtNC4xLTM0LjktNi04LjQtMTYuMS0xMy4zLTI4LjItMTMuOXptMTA1LjktOTguOGMtMi4xIDAtNC4zIC4xLTYuNCAuMi0uOCAuMS0xLjUgLjMtMi4xIC44cy0xIDEuMS0xLjMgMS44bC05LjEgMzEuMmMtMy45IDEzLjQtMi40IDI1LjggNC4xIDM0LjkgNiA4LjQgMTYuMSAxMy4zIDI4LjIgMTMuOWw0OS4yIDIuOWMuNyAwIDEuNCAuMiAyIC41czEuMSAuOCAxLjUgMS40Yy40IC42IC43IDEuMyAuOCAyczAgMS41LS4yIDIuMWMtLjQgMS4xLTEuMSAyLjEtMi4xIDIuOHMtMi4xIDEuMi0zLjMgMS4ybC01MS4xIDIuOWMtMjcuOCAxLjMtNTcuNyAyMy42LTY4LjEgNTAuOGwtMy43IDkuNmMtLjIgLjQtLjIgLjgtLjIgMS4zcy4yIC44IC40IDEuMiAuNiAuNyAuOSAuOSAuOCAuMyAxLjIgLjNjMCAwIC4xIDAgLjEgMGwxNzUuOSAwYzEgMCAyLS4zIDIuOC0uOXMxLjQtMS41IDEuNy0yLjRjMy4xLTExLjEgNC43LTIyLjUgNC43LTM0IDAtNjkuMy01Ni41LTEyNS41LTEyNi4xLTEyNS41eiJdfSx4Z3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGFja2VycmFuayIsaWNvbjpbNTEyLDUxMixbXSwiZjVmNyIsIk00NzcuOSAxMjhDNDYzLjQgMTAzIDI4NS41IDAgMjU2LjUgMHMtMjA2LjkgMTAyLjgtMjIxLjMgMTI4LTE0LjUgMjMwLjggMCAyNTYgMTkyLjQgMTI4IDIyMS4zIDEyOCAyMDYuOC0xMDIuOSAyMjEuMy0xMjggMTQuNS0yMzEgMC0yNTZ6TTMxNi41IDQxNC4yYy00IDAtNDAuOS0zNS44LTM4LTM4LjcgLjktLjkgNi4zLTEuNSAxNy41LTEuOCAwLTI2LjIgLjYtNjguNiAuOS04Ni4zIDAtMi0uNC0zLjQtLjQtNS44bC03OS45IDBjMCA3LjEtLjUgMzYuMiAxLjQgNzIuOSAuMiA0LjUtMS42IDYtNS43IDUuOS0xMC4xIDAtMjAuMy0uMS0zMC40LS4xLTQuMSAwLTUuOS0xLjUtNS43LTYuMSAuOS0zMy40IDMtODQtLjItMjEyLjdsMC0zLjJjLTkuNy0uNC0xNi40LTEtMTcuMy0xLjgtMi45LTIuOSAzNC41LTM4LjcgMzguNS0zOC43czQxLjIgMzUuOCAzOC4zIDM4LjdjLS45IC45LTcuOSAxLjUtMTYuOCAxLjhsMCAzLjJjLTIuNCAyNS44LTIgNzkuNi0yLjYgMTA1LjRsODAuMyAwYzAtNC42IC40LTM0LjctMS4yLTgzLjYtLjEtMy40IDEtNS4yIDQuMi01LjIgMTEuMS0uMSAyMi4yLS4xIDMzLjItLjEgMy41IDAgNC42IDEuNyA0LjUgNS40LTMuNyAxOTEuMy0uNyAxNzcuOS0uNyAyMTAuMyA4LjkgLjQgMTYuOCAxIDE3LjcgMS44IDIuOSAyLjktMzMuNiAzOC43LTM3LjYgMzguN2wwIDB6Il19LHlndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lhdGxhcyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNiIsIk02NDAgMzI5LjNjMCA2NS45LTUyLjUgMTE0LjQtMTE3LjUgMTE0LjQtMTY1LjkgMC0xOTYuNi0yNDkuNy0zNTkuNy0yNDkuNy0xNDYuOSAwLTE0Ny4xIDIxMi4yIDUuNiAyMTIuMiA0Mi41IDAgOTAuOS0xNy44IDEyNS4zLTQyLjUgNS42LTQuMSAxNi45LTE2LjMgMjIuOC0xNi4zczEwLjkgNSAxMC45IDEwLjljMCA3LjgtMTMuMSAxOS4xLTE4LjcgMjQuMS00MC45IDM1LjYtMTAwLjMgNjEuMi0xNTQuNyA2MS4yLTgzLjQgLjEtMTU0LTU5LTE1NC0xNDQuOVM2Ny41IDE0OS42IDE1Mi44IDE0OS42YzE4NS4zIDAgMjIyLjUgMjQ1LjkgMzYxLjkgMjQ1LjkgOTkuOSAwIDk0LjgtMTM5LjcgMy40LTEzOS43LTE3LjUgMC0zNSAxMS42LTQ2LjkgMTEuNi04LjQgMC0xNS45LTcuMi0xNS45LTE1LjYgMC0xMS42IDUuMy0yMy43IDUuMy0zNi4zIDAtNjYuNi01MC45LTExNC43LTExNi45LTExNC43LTUzLjEgMC04MCAzNi45LTg4LjggMzYuOS02LjIgMC0xMS4yLTUtMTEuMi0xMS4yIDAtNS42IDQuMS0xMC4zIDcuOC0xNC40IDI1LjMtMjguOCA2NC43LTQzLjcgMTAyLjgtNDMuNyA3OS40IDAgMTM5LjEgNTguNCAxMzkuMSAxMzcuOCAwIDYuOS0uMyAxMy43LTEuMiAyMC42IDExLjktMy4xIDI0LjEtNC43IDM1LjktNC43IDYwLjcgMCAxMTEuOSA0NS4zIDExMS45IDEwNy4yeiJdfSx3Z3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVza3BybyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4ZiIsIk0xMjIgNDA2LjJsODQgMGMyMy4xIDAgNDMuOS0zLjUgNjIuNi0xMC43IDE4LjctNy4xIDM0LjctMTcuMSA0OC0zMC4xIDEzLjMtMTMuNCAyMy42LTI5LjIgMzAuNy00Ny41IDMuOS05LjYgNi44LTE5LjggOC42LTMwLjZsNzMuNyAwYy0yLjUgMjEuMy03LjcgNDEuMy0xNS41IDYwLTExLjEgMjcuMi0yNi45IDUwLjgtNDcuMyA3MC45LTIwIDE5LjYtNDQuMiAzNC44LTcyLjYgNDUuNHMtNjAgMTYtOTQuNyAxNmwtMTQ5LjggLjIgMC0xOTIuNCA3Mi4zLS4yIDAgMTE4Ljh6TTE5OS40IDMyYzM0LjcgMCA2Ni4yIDUuNCA5NC43IDE2IDI4LjUgMTAuNyA1Mi45IDI2LjEgNzMuMyA0Ni4yIDIwLjQgMTkuNiAzNi4yIDQzLjIgNDcuMyA3MC45IDcuNSAxOC4zIDEyLjQgMzguMSAxNC45IDU5LjNsLTczLjctLjFjLTEuOS0xMC41LTQuNy0yMC41LTguNi0yOS45LTcuMS0xOC43LTE3LjMtMzQuNS0zMC43LTQ3LjUtMTMuMy0xMy40LTI5LjMtMjMuNi00OC0zMC44LTE4LjYtNy4xLTM5LjUtMTAuNy02Mi43LTEwLjdsLTg0IDAgMCAxMTguOC03Mi4yIC4yIDAtMTkyLjMgMTQ5LjctLjF6Il19LE1ndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNvbHZpbmciLGljb246WzUxMiw1MTIsW10sImYzZTciLCJNMjg5LjIgMjc4LjJjNDYtMTMuMyA0OS42LTIzLjUgNDQtNDMuNEwzMjIgMTk1LjVjLTYuMS0yMC45LTE4LjQtMjguMS03MS4xLTEyLjhsLTE4OC4yIDU0LjEgMjguNiA5OC42IDE5Ny45LTU3LjJ6TTI1Ni41IDhDMTM5LjQgOCA0MS4yIDg4LjcgMTUuMiAxOTcuNWwyMjEuOS02My45YzM0LjgtMTAuMiA1NC4yLTExLjcgNzkuMy04LjIgMzYuMyA2LjEgNTIuNyAyNSA2MS40IDU1LjJsMTAuNyAzNy44YzguMiAyOC4xIDEgNTAuNi0yMy41IDczLjYtMTkuNCAxNy40LTMxLjIgMjQuNS02MS40IDMzLjJsLTkyLjYgMjYuNiAyMjAuNCAyNy4xIDkuNyAzNC4yLTQ4LjEgMTMuMy0yODYuOC0zNy4zIDIzIDgwLjJDMTY2IDQ5MS4zIDIwOS41IDUwNCAyNTUuNSA1MDQgMzkyLjUgNTA0IDUwNCAzOTIuNiA1MDQgMjU1LjcgNTA1IDExOS40IDM5My41IDggMjU2LjUgOHpNNDYuMyAzODguNkw4IDI1Ni44YzAgNDguNSAxNC4zIDkzLjQgMzguMyAxMzEuOHoiXX0sa2d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsYWNrYmVycnkiLGljb246WzUxMiw1MTIsW10sImYzN2IiLCJNMTY2IDExNi45YzAgMjMuNC0xNi40IDQ5LjEtNzIuNSA0OS4xbC03MC4xIDAgMjEtODguOCA2Ny44IDBjNDIuMSAwIDUzLjggMjMuMyA1My44IDM5Ljd6TTI5Mi4yIDc3LjJsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTI1LjcgNzAuMS00OS4xIC4xLTE2LjQtMTEuNi0zOS43LTUzLjctMzkuN3pNODguOCAyMDguMWwtNjcuOCAwLTIxIDg4LjggNzAuMSAwYzU2LjEgMCA3Mi41LTIzLjQgNzIuNS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuOC0zOS43em0xODAuMSAwbC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjctMzkuN3ptMTg5LjMtNTMuOGwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43em0tMjggMTM3LjlsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzU2LjEgMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43ek0yNDAuOCAzNDZsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzU2LjEgMCA3MC4xLTI1LjcgNzAuMS00OS4xIC4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3oiXX0sU2d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmlwZS1zIixpY29uOlszODQsNTEyLFtdLCJmNDJhIiwiTTE1NS42IDE1NC42YzAtMjIuMyAxOC42LTMwLjkgNDguNC0zMC45IDQzLjQgMCA5OC41IDEzLjMgMTQxLjkgMzYuN2wwLTEzNC4zYy00Ny4zLTE4LjktOTQuNS0yNi4xLTE0MS44LTI2LjEtMTE1LjcgMC0xOTIuOCA2MC40LTE5Mi44IDE2MS40IDAgMTU3LjkgMjE2LjggMTMyLjMgMjE2LjggMjAwLjQgMCAyNi40LTIyLjkgMzQuOS01NC43IDM0LjktNDcuMiAwLTEwOC4yLTE5LjUtMTU2LjEtNDUuNWwwIDEyOC41YzQ5LjMgMjEuMyAxMDIuMyAzMi4zIDE1NiAzMi40IDExOC42IDAgMjAwLjMtNTEgMjAwLjMtMTUzLjYgMC0xNzAuMi0yMTgtMTM5LjctMjE4LTIwMy45eiJdfSxNdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJlaGFuY2UiLGljb246WzQ0OCw1MTIsWyJiZWhhbmNlLXNxdWFyZSJdLCJmMWI1IiwiTTE1NS4zIDMxOC40YzE3LjIgMCAzMS4yLTYuMSAzMS4yLTI1LjQgMC0xOS43LTExLjctMjcuNC0zMC4zLTI3LjVsLTQ2IDAgMCA1Mi45IDQ1LjEgMHptLTUuNC0xMjkuNmwtMzkuNiAwIDAgNDQuOCA0Mi43IDBjMTUuMSAwIDI1LjgtNi42IDI1LjgtMjIuOSAwLTE3LjctMTMuNy0yMS45LTI4LjktMjEuOXptMTI5LjUgNzQuOGw2Mi4yIDBjLTEuNy0xOC41LTExLjMtMjkuNy0zMC41LTI5LjctMTguMyAwLTMwLjUgMTEuNC0zMS43IDI5Ljd6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0zNDkuNSAxODVsLTc3LjggMCAwLTE4LjkgNzcuOCAwIDAgMTguOXpNMTkzLjcgMjQzLjdjMjMuNiA2LjcgMzUgMjcuNSAzNSA1MS42IDAgMzktMzIuNyA1NS43LTY3LjYgNTUuOWwtOTMuMSAwIDAtMTkyIDkwLjUgMGMzMi45IDAgNjEuNCA5LjMgNjEuNCA0Ny41IDAgMTkuMy05IDI4LjgtMjYuMiAzN3ptMTE4LjctMzguNmM0My41IDAgNjcuNiAzNC4zIDY3LjYgNzUuNCAwIDEuNi0uMSAzLjMtLjIgNSAwIC44LS4xIDEuNS0uMSAyLjJsLTEwMC4yIDBjMCAyMi4yIDExLjcgMzUuMyAzNC4xIDM1LjMgMTEuNiAwIDI2LjUtNi4yIDMwLjItMTguMWwzMy43IDBjLTEwLjQgMzEuOS0zMS45IDQ2LjgtNjUuMSA0Ni44LTQzLjggMC03MS4xLTI5LjctNzEuMS03MyAwLTQxLjggMjguNy03My42IDcxLjEtNzMuNnoiXX0semd0PU11ZSxDZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VydmljZXN0YWNrIixpY29uOls1MTIsNTEyLFtdLCJmM2VjIiwiTTk2IDIxNmM4MS43IDEwLjIgMjczLjcgMTAyLjMgMzA0IDIzMkw4IDQ0OGM5OS41LTguMSAxODQuNS0xMzcgODgtMjMyek0xMjggNjRjMzIuMyAzNS42IDQ3LjcgODMuOSA0Ni40IDEzMy42IDgyLjkgMzMuNyAyMDcuMyAxMjMuNyAyMzMuNiAyNTAuNGw5NiAwQzQ2My4zIDIzMS45IDIzMC44IDc5LjUgMTI4IDY0eiJdfSxfZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja2V0Y2hhdCIsaWNvbjpbNTc2LDUxMixbXSwiZjNlOCIsIk0yODQuNSAyMjQuOGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTkuOXptLTExMC40IDBjLTYuNyAwLTEzLjMgMi4xLTE4LjkgNS44cy05LjkgOS4xLTEyLjUgMTUuNC0zLjIgMTMuMS0xLjkgMTkuNyA0LjYgMTIuNyA5LjQgMTcuNCAxMC45IDggMTcuNSA5LjMgMTMuNSAuNiAxOS43LTIgMTEuNS03IDE1LjMtMTIuNiA1LjctMTIuMiA1LjctMTguOWMwLTkuMS0zLjctMTcuOC0xMC4xLTI0LjJzLTE1LjEtMTAtMjQuMi0xMGwwIDB6bTIyMC45IDBhMzQuMSAzNC4xIDAgMSAwIC40IDY4LjIgMzQuMSAzNC4xIDAgMSAwIC0uNC02OC4yem0xNTMuOC01NS4zYy0xNS41LTI0LjItMzcuMy00NS42LTY0LjctNjMuNi01Mi45LTM0LjgtMTIyLjQtNTQtMTk1LjctNTQtMjQuMiAwLTQ4LjMgMi4xLTcyIDYuNC0xNC45LTE0LjMtMzEuNS0yNi42LTQ5LjUtMzYuNi02Ni44LTMzLjMtMTI1LjYtMjAuOS0xNTUuMy0xMC4yLTIuMyAuOC00LjMgMi4xLTUuOSAzLjlzLTIuNyAzLjktMy4zIDYuMi0uNSA0LjcgLjEgNy4xIDEuOCA0LjQgMy41IDYuMUMyNyA1Ni41IDYxLjYgOTkuMyA1My4xIDEzOC4zIDIwIDE3Mi4yIDIgMjEzIDIgMjU1LjYgMiAyOTkgMjAgMzM5LjggNTMuMSAzNzMuNyA2MS42IDQxMi43IDI3IDQ1NS42IDYgNDc3LjIgNC4zIDQ3OSAzLjIgNDgxLjEgMi41IDQ4My40cy0uNyA0LjctLjEgNyAxLjcgNC41IDMuMyA2LjIgMy42IDMuMSA1LjkgMy45YzI5LjcgMTAuNyA4OC41IDIzLjEgMTU1LjMtMTAuMiAxOC0xMCAzNC43LTIyLjMgNDkuNS0zNi42IDIzLjggNC4zIDQ3LjkgNi40IDcyIDYuNCA3My4zIDAgMTQyLjgtMTkuMiAxOTUuNy01NCAyNy40LTE4IDQ5LjEtMzkuNCA2NC43LTYzLjYgMTcuMy0yNi45IDI2LjEtNTUuOSAyNi4xLTg2LjEgMC0zMS04LjgtNjAtMjYuMS04Ni45bDAgMHpNMjg1LjQgNDA5LjljLTMwLjIgLjEtNjAuMy0zLjgtODkuNC0xMS41bC0yMC4xIDE5LjRjLTExLjIgMTAuNy0yMy42IDIwLTM3LjEgMjcuNi0xNi40IDguMi0zNC4yIDEzLjMtNTIuNSAxNC45IDEtMS44IDEuOS0zLjYgMi44LTUuNCAyMC4yLTM3LjEgMjUuNi03MC41IDE2LjMtMTAwLjEtMzMtMjYtNTIuOC01OS4yLTUyLjgtOTUuNCAwLTgzLjEgMTA0LjMtMTUwLjUgMjMyLjgtMTUwLjVzMjMyLjkgNjcuNCAyMzIuOSAxNTAuNWMwIDgzLjEtMTA0LjMgMTUwLjUtMjMyLjkgMTUwLjV6Il19LFRndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWJlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMCIsIk0yNTYuOSA1MDRjLTEzOS4zIDAtMjQ3LjUtMTE2LjItMjQzLjMtMjU0LjEgMi44LTc5LjIgNDMuMi0xNTIuMiAxMTYuNS0yMDAuNCAuMyAwIDEuOS0uNiAxLjEgLjgtNS44IDUuNS0xMTEuMyAxMjkuOC0xNC4xIDIyNi40IDQ5LjggNDkuNSA5MCAyLjUgOTAgMi41IDM4LjUtNTAuMS0uNi0xMjUuOS0uNi0xMjUuOS0xMC0yNC45LTQ1LjctNDAuMS00NS43LTQwLjFsMjguOC0zMS44YzI0LjQgMTAuNSA0My4yIDM4LjcgNDMuMiAzOC43IC44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuNSA4IDI5OS44IDU4LjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNCAuNiAxMjcuMyAzMi40IDQ0LjYgODcuNy0yLjggODcuNy0yLjggMTAyLjctOTEuOS0xMC41LTIyNS0xMC41LTIyNS02LjEtNS41IC44LTIuOCAuOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjggMiAxNDUuNi05OS45IDI0OS40LTI0Mi40IDI0OS40eiJdfSxMZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lIixpY29uOls0NDgsNTEyLFtdLCJlNjgzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIzNSAxNzcuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSwkZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlua3RyZWUiLGljb246WzQ0OCw1MTIsW10sImU3ZDgiLCJNMTYgMTczLjRsMTI1LjggMC04OS40LTg1LjQgNDkuNS01MSA4NS4yIDg3LjggMC0xMjQuOCA3My45IDAgMCAxMjQuOCA4NS4yLTg3LjYgNDkuNCA1MC44LTg5LjQgODUuMiAxMjUuNyAwIDAgNzAuNS0xMjYuNCAwIDkwIDg3LjYtNDkuMyA0OS44LTEyMi4yLTEyMy0xMjIuMiAxMjMtNDkuNS00OS42IDkwLTg3LjYtMTI2LjQgMCAwLTcwLjV6TTE4Ni45IDM0NC44bDczLjkgMCAwIDE2Ny4yLTczLjkgMCAwLTE2Ny4yeiJdfSxEZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2ltcGx5YnVpbHQiLGljb246WzUxMiw1MTIsW10sImYyMTUiLCJNNDgxLjYgNjRsLTEwNiAwQzM2MS4xIDY0IDM0OSA3NS44IDM0OSA5MC4zbDAgMzkuNi0xODUuMyAwIDAtMzkuNmMwLTE0LjUtMTItMjYuMy0yNi42LTI2LjNsLTEwNiAwQzE2LjUgNjQgNC43IDc1LjggNC43IDkwLjNsMCAzMzEuNGMwIDE0LjUgMTEuOCAyNi4zIDI2LjYgMjYuM2w0NTAuNCAwYzE0LjggMCAyNi42LTExLjggMjYuNi0yNi4zbDAtMzMxLjRjLS4yLTE0LjUtMTItMjYuMy0yNi43LTI2LjN6TTE1MC41IDIyMi43YTY2LjUgNjYuNSAwIDEgMSAtLjMgMTMzLjEgNjYuNSA2Ni41IDAgMSAxIC4zLTEzMy4xem0yMTEuOSAuMWE2Ni41IDY2LjUgMCAxIDEgLjMgMTMyLjkgNjYuNSA2Ni41IDAgMSAxIC0uMy0xMzIuOXoiXX0sQWd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWJiZXIiLGljb246WzQ0OCw1MTIsW10sImU1YzciLCJNMTM2LjUgMjk0LjJsNTguOCAyMi45YzkuMS0zNi44IDI1LjQtNjEuMSA1NS02MS4xIDQ5LjQgMCA3MS40IDYzLjYgMTQyLjQgNjMuNiAxNS42IDAgMzUuOS0yLjggNTUuMy0xMy4zbDAgNjEuN2MwIDYxLjgtNTAuNCAxMTItMTEyLjMgMTEyTDAgNDgwIDQxLjggNDI0IDAgMzY4IDQxLjcgMzEyIDAgMjU2LjEgNDEuOCAyMDAuMSAwIDE0NC4xIDQxLjggODggMCAzMiAzMzUuNyAzMkMzOTcuNiAzMiA0NDggODIuMyA0NDggMTQ0LjFsMCA1MS4zYy05LjIgMzYuMy0yNS45IDYwLjYtNTUgNjAuNi00OS42IDAtNzEuNi02My41LTE0Mi40LTYzLjUtMzUuOSAwLTk1LjIgMTQuNi0xMTQuMSAxMDEuNmwwIC4xeiJdfSxQZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwZXIiLGljb246WzY0MCw1MTIsW10sImYzNzEiLCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmwuOCAwIDAtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhsLTM4LjYgMGMuMy0xMy45IDEuNS0xOS4xIDUuOC0yNC40IDcuMy04LjggMTguOS0xMS44IDQ2LjEtMTEuOCAzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN2wwIDc2LjMtMzguMyAwIDEuMy0xOS4xLTEgMGMtNS4zIDE1LjYtMTMuNiAyMC40LTM1LjUgMjAuNC0zMC4zIDAtNDEuMS0xMC4xLTQxLjEtMzcuMyAwLTI1LjIgMTIuMy0zNS44IDQyLjEtMzUuOHptMTcuMSA0OC4xYzEzLjEgMCAxNi45LTMgMTYuOS0xMy40IDAtOS4xLTQuMy0xMS42LTE5LjYtMTEuNi0xMy4xIDAtMTcuOSAzLTE3LjkgMTIuMS0uMSAxMC40IDMuNyAxMi45IDIwLjYgMTIuOXpNMTM3IDE5Mi4zbDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjIgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjl6TTIxNy45IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5IC4xIDB6TTM1Ni43IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43bDAgMTEuMS03NS4zIDBjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWwzNy41IDAgMCAyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuMyAzOC4zIDB6bTU1LjYtNDUuM2wzOC4zIDAtMS44IDE5LjkgLjcgMGM2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zbC0zNSAwYy4zLTEuOCAuMy0zLjMgLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zbDAgNjgtMzguMyAwIDAtMTE4LjUgLjEgMHoiXX0sRWd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1zY2hvbGFyIixpY29uOls1MTIsNTEyLFtdLCJlNjNiIiwiTTM5MC45IDI5OC41czAgLjEgLjEgLjFjOS4yIDE5LjQgMTQuNCA0MS4xIDE0LjQgNjQtLjEgODIuNS02Ni45IDE0OS40LTE0OS40IDE0OS40UzEwNi43IDQ0NS4xIDEwNi43IDM2Mi43YzAtMjIuOSA1LjItNDQuNiAxNC40LTY0IDEuNy0zLjYgMy42LTcuMiA1LjYtMTAuNyA0LjQtNy42IDkuNC0xNC43IDE1LTIxLjMgMjcuNC0zMi42IDY4LjUtNTMuMyAxMTQuNC01My4zIDMzLjYgMCA2NC42IDExLjEgODkuNiAyOS45IDkuMSA2LjkgMTcuNCAxNC43IDI0LjggMjMuNSA1LjYgNi42IDEwLjYgMTMuOCAxNSAyMS4zIDIgMy40IDMuOCA3IDUuNSAxMC41bC0uMS0uMXptMjYuNC0xOC44Yy0zMC4xLTU4LjQtOTEtOTguNC0xNjEuMy05OC40cy0xMzEuMiA0MC0xNjEuMyA5OC40bC05NC43LTc3IDI1Ni0yMDIuNyAyNTYgMjAyLjctOTQuNyA3Ny4xIDAtLjF6Il19LElndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YXJuIixpY29uOls1MTIsNTEyLFtdLCJmN2UzIiwiTTQwMS45IDM0NS4yYy0zOSA5LjMtNDguNCAzMi4xLTEwNCA0Ny40IDAgMC0yLjcgNC0xMC40IDUuOC0xMy40IDMuMy02My45IDYtNjguNSA2LjEtMTIuNCAuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMyAuOC0xMC44LTUuNyAuOC0xOS4yIC44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMgLjggMS40IDEzLjcgLjggMzYuNC0xMy4yIDEyLjgtNy45IDI4LjEtMTYuOSA0NS40LTE3IDE2LjctLjUgMTcuNiAxOS4yIDQuOSAyMi4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00MTYuNyA3NS4yYy0xLjctMTMuNi0xMy4yLTIzLTI4LTIyLjgtMjIgLjMtNDAuNSAxMS43LTUyLjggMTkuMi00LjggMy04LjkgNS4yLTEyLjQgNi44IDMuMS00NC41LTIyLjUtNzMuMS0yOC43LTc5LjQgNy44LTExLjMgMTguNC0yNy44IDIzLjQtNTMuMiA0LjMtMjEuNyAzLTU1LjUtNi45LTc0LjUtMS42LTMuMS03LjQtMTEuMi0yMS03LjQtOS43LTIwLTEzLTIyLjEtMTUuNi0yMy44LTEuMS0uNy0yMy42LTE2LjQtNDEuNCAyOC0xMi4yIC45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40bC4xIDBjLTguNCAzLTEyLjMgOS45LTE2LjkgMjIuMy02LjUgMTcuNCAuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yeiJdfSxOZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2stb3ZlcmZsb3ciLGljb246WzM4NCw1MTIsW10sImYxNmMiLCJNMjkxIDMxMWwtMTk1LjctNDEuMy04LjIgMzkuMyAxOTUuNyA0MSA4LjItMzl6bTUxLTg3TDE4OC41IDk1LjcgMTYzIDEyNi41IDMxNi41IDI1NC44IDM0MiAyMjR6bS0zMS4yIDM5LjdMMTI5LjUgMTc5IDExMi44IDIxNS41IDI5NCAzMDAgMzEwLjggMjYzLjd6TTI2Mi4zIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNC0xMTkuMy0xNjAuM3ptMjAuNSAzMjhsLTIwMCAwIDAgMzkuNyAyMDAgMCAwLTM5Ljd6bTM5LjcgODBsLTI3OS41IDAgMC0xMjAtNDAgMCAwIDE2MCAzNTkuNSAwIDAtMTYwLTQwIDAgMCAxMjB6Il19LFJndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgiLGljb246WzM4NCw1MTIsW10sImYyOTMiLCJNMjYwLjYgMTcxLjFsLTQyLjkgNDIuOS0uMy04NiA0My4yIDQzLjF6TTIxNy40IDM5MC45bDQzLjEtNDMuMS00Mi45LTQyLjktLjIgODZ6TTM4NCAyNTkuNEMzODQgNDY1IDMxMi4xIDUxMiAxOTguOSA1MTJTMCA0NjUgMCAyNTkuNCA4My40IDAgMTk2LjYgMCAzODQgNTMuOSAzODQgMjU5LjR6bS0xNTguNSAwbDc5LjQtODguNi0xMjUuMS0xMzQuMyAwIDE3Ni45LTczLjgtNzMuOC0yNyAyNi45IDkyLjcgOTMtOTIuNyA5MyAyNi45IDI2LjkgNzMuOC03My44IDIuMyAxNzAgMTI3LjQtMTI3LjUtODMuOS04OC43eiJdfSxPZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1qcCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi40IDExOS44IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMiA1MDQgMjU2IDUwNCAxMTcuMiAzOTYuNSA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjEuMSAzLTQxLjIgOS02MC4zbDEyNyA1Ni41LTI3LjkgMCAwIDM4LjYgNTguMSAwIDUuNyAxMS44IDAgMTguNy02My44IDAgMCAzOC43IDYzLjggMCAwIDU2IDYxLjcgMCAwLTU2IDY0LjIgMCAwLTM1LjcgODEgMzYuMWMtMS41IDIuMi01Ny4xIDk4LjMtMTc1LjIgOTguM3ptODcuNi0xMzcuM2wtNTcuNiAwIDAtMTguNyAyLjktNS42IDU0LjcgMjQuM3ptNi41LTUxLjRsMC0xNy44LTM4LjYgMCA2My0xMTYtNjUuOCAwLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjctNjUuOCAwIDI3LjMgNTEtODEuOS0zNi41YzI3LjgtNDQuMSA4Mi42LTk4LjEgMTczLjctOTguMSAxMTIuOCAwIDIwMyA5MCAyMDMgMjAzLjQgMCAyMS0yLjcgNDAuNi03LjkgNTlMMzUwLjQgMjcweiJdfSxGZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0IixpY29uOls1MTIsNTEyLFtdLCJmMWExIiwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NiAzOTcuNCA1MTIgMjU2IDUxMkwzNy4xIDUxMmMtMTMuNyAwLTIwLjUtMTYuNS0xMC45LTI2LjJMNzUgNDM3QzI4LjcgMzkwLjcgMCAzMjYuNyAwIDI1NnpNMzQ5LjYgMTUzLjZjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdzLTE5LjEtNDIuNy00Mi43LTQyLjdjLTIwLjYgMC0zNy44IDE0LjYtNDEuOCAzNC0zNC41IDMuNy02MS40IDMzLTYxLjQgNjguNGwwIC4yYy0zNy41IDEuNi03MS44IDEyLjMtOTkgMjkuMS0xMC4xLTcuOC0yMi44LTEyLjUtMzYuNS0xMi41LTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDI0IDE0LjEgNDQuNiAzNC40IDU0LjEgMiA2OS40IDc3LjYgMTI1LjIgMTcwLjYgMTI1LjJzMTY4LjctNTUuOSAxNzAuNi0xMjUuM2MyMC4yLTkuNiAzNC4xLTMwLjIgMzQuMS01NCAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjgtMTMuNyAwLTI2LjMgNC42LTM2LjQgMTIuNC0yNy40LTE3LTYyLjEtMjcuNy0xMDAtMjkuMWwwLS4yYzAtMjUuNCAxOC45LTQ2LjUgNDMuNC00OS45IDQuNCAxOC44IDIxLjMgMzIuOCA0MS41IDMyLjhsLjEgLjJ6TTE3Ny4xIDI0Ni45YzE2LjcgMCAyOS41IDE3LjYgMjguNSAzOS4zcy0xMy41IDI5LjYtMzAuMyAyOS42LTMxLjQtOC44LTMwLjQtMzAuNSAxNS40LTM4LjMgMzIuMS0zOC4zbC4xLS4xem0xOTAuMSAzOC4zYzEgMjEuNy0xMy43IDMwLjUtMzAuNCAzMC41cy0yOS4zLTcuOS0zMC4zLTI5LjYgMTEuOC0zOS4zIDI4LjUtMzkuMyAzMS4yIDE2LjYgMzIuMSAzOC4zbC4xIC4xem0tNDguMSA1Ni43Yy0xMC4zIDI0LjYtMzQuNiA0MS45LTYzIDQxLjlzLTUyLjctMTcuMy02My00MS45Yy0xLjItMi45IC44LTYuMiAzLjktNi41IDE4LjQtMS45IDM4LjMtMi45IDU5LjEtMi45czQwLjcgMSA1OS4xIDIuOWMzLjEgLjMgNS4xIDMuNiAzLjkgNi41eiJdfSxCZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29ubmVjdGRldmVsb3AiLGljb246WzU3Niw1MTIsW10sImYyMGUiLCJNNTUwLjggMjQxbC01MC4xLTg2LjhjMS4xLTIuMSAxLjktNC42IDEuOS03LjIgMC04LTYuNy0xNC43LTE0LjctMTVMNDMyLjQgMzYuMWMuNS0xLjYgMS4xLTMuMiAxLjEtNC44IDAtOC42LTctMTUuMy0xNS4zLTE1LjMtNC44IDAtOC44IDIuMS0xMS44IDUuNmwtMTA2LjYgMGMtMi43LTMuNS02LjctNS42LTExLjUtNS42cy04LjggMi4xLTExLjUgNS42bC0xMDYuMSAwYy0yLjktMy41LTctNS42LTExLjgtNS42LTguMyAwLTE1LjMgNi43LTE1LjMgMTUuMyAwIDEuNiAuNSAzLjUgMS4xIDQuOGwtNTYgOTcuMmMtNS40IDIuNC05LjEgNy41LTkuMSAxMy43IDAgLjUgLjMgMS4xIC4zIDEuNkwyNi42IDI0MC43Yy03LjIgMS4zLTEyLjYgNy41LTEyLjYgMTUgMCA3LjIgNS4xIDEzLjQgMTIuMSAxNWw1NS4yIDk1LjRjLS41IDEuNi0uOCAyLjktLjggNC44IDAgNy4yIDUuMSAxMy40IDEyLjEgMTQuN2w1MS43IDg5LjdjLS41IDEuNi0xLjEgMy41LTEuMSA1LjQgMCA4LjYgNyAxNS4zIDE1LjMgMTUuMyA0LjggMCA4LjgtMi4xIDExLjUtNS40bDEwNi45IDBjMi43IDMuMiA3IDUuNCAxMS41IDUuNHM4LjgtMi4xIDExLjUtNS40bDEwNy4xIDBjMi43IDIuOSA2LjcgNC44IDExIDQuOCA4LjYgMCAxNS4zLTcgMTUuMy0xNS4zIDAtMS42LS4zLTIuOS0uOC00LjNsNTEuNy05MC4zYzctMS4zIDEyLjEtNy41IDEyLjEtMTQuNyAwLTEuNi0uMy0zLjItLjgtNC44bDU0LjktOTUuNGM3LTEuMyAxMi4zLTcuNSAxMi4zLTE1IDAtNy4yLTUuMS0xMy40LTExLjgtMTQuN3ptLTM5NyAyMDkuN2wtNDMuNy03NS44IDQzLjcgMCAwIDc1Ljh6bTAtODMuOGwtNDMuNyAwYy0uMy0xLjEtLjgtMi4xLTEuMy0zLjJsNDUtNDcuNCAwIDUwLjZ6bTAtNjIuNGwtNTAuNCA1My4zYy0xLjMtLjUtMi43LTEuMy00LTEuNkw0My43IDI1OS44Yy41LTEuMyAuNS0yLjcgLjUtNHMwLTIuNC0uMy0zLjVsNTItOTBjMi43LS4zIDUuNC0xLjEgNy44LTIuN2w1MC4xIDUyIDAgOTIuOXptMC0xMDIuM0wxMDggMTU0LjhjMS4zLTIuMSAyLjEtNC44IDIuMS03LjggMC0uMy0uMy0uOC0uMy0xLjFsNDMuOS0xNS44IDAgNzIuMXptMC04MC42bC00My43IDE1LjggNDMuNy03NS41IDAgNTkuN3ptMzI2LjUgMzkuMWwuOCAxLjMtMzUuNCAxNjcuMS02My44LTY3LjIgOTgtMTAxLjUgLjMgLjN6TTI5Mi4xIDM1NS4xbDExLjUgMTEuOC0yMi44IDAgMTEuMy0xMS44em0tLjMtMTEuM2wtODMuMy04NS40IDc5LjYtODQuNCA4MyA4Ny42LTc5LjMgODIuMnptNS40IDUuOWw3OS4zLTgyLjIgNjcuNSA3MS4zLTUuOSAyOC4xLTEyNCAwLTE2LjktMTcuMXpNNDEwLjcgNDQuNGMxLjEgLjUgMi4xIDEuMSAzLjUgMS4zbDU3LjkgMTAwLjcgMCAuNWMwIDIuOSAuOCA1LjYgMi4xIDcuOGwtOTcuNSAxMDEuMi04My04Ny42IDExNy4xLTEyNHptLTkuMS0yLjFsLTExMy42IDEyMC4zLTU3LjEtNjAuMyAxNjYuMy02MCA0LjMgMHptLTEyMy41IDBjMi43IDIuNyA2LjIgNC4zIDEwLjIgNC4zczcuNS0xLjYgMTAuMi00LjNsNzUgMC0xNDguNCA1My42LTUwLjktNTMuNiAxMDMuOSAwek0xNjEuOSA0Ny45bDEuMS0yLjFjLjktLjIgMS44LS41IDIuNy0uOGw1MS4yIDUzLjgtNTQuOSAxOS44IDAtNzAuN3ptMCA3OS4zbDYwLjgtMjIgNTkuNyA2My4yLTc5LjYgODQuMS00MS00Mi4xIDAtODMuM3ptMCA5Mi43bDM2LjQgMzcuOC0zNi40IDM4LjMgMC03Ni4xem0wIDg3LjlsNDIuMS00NC41IDgyLjggODYtMTcuMSAxNy43LTEwNy43IDAgMC01OS4yem03IDE2Mi4xYy0xLjYtMS42LTMuNS0yLjctNS45LTMuNWwtMS4xLTEuNiAwLTg5LjcgOTkuOSAwLTkxLjYgOTQuOC0xLjMgMHptMTI5LjkgMGMtMi43LTIuNC02LjQtNC4zLTEwLjQtNC4zcy03LjggMS45LTEwLjQgNC4zbC05Ni40IDAgOTEuNi05NC44IDM4LjMgMCA5MS42IDk0LjgtMTA0LjIgMHptMTIwLTExLjhsLTQuMyA3LjVjLTEuMyAuMy0yLjQgLjgtMy41IDEuM2wtODkuMi05MS45IDExNC40IDAtMTcuNCA4M3ptMTIuOS0yMi4ybDEyLjktNjAuOCAyMiAwLTM0LjggNjAuOHptMzQuOC02OC44bC0yMC40IDAgNC42LTIxLjIgMTcuMSAxOC4yYy0uNSAuOC0xLjEgMS45LTEuMyAyLjl6bTY2LjItMTA3LjRsLTU1LjQgOTYuN2MtMS4zIC41LTIuNyAxLjEtNCAxLjlsLTIwLjYtMjIgMzQuNi0xNjMuOSA0NS44IDc5LjNjLS4zIDEuMy0uOCAyLjctLjggNC4zIDAgMS4zIC4zIDIuNCAuNSAzLjd6Il19LEhndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNlYXJjaGdhdGUiLGljb246WzQ0OCw1MTIsW10sImY0ZjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjYyLjIgMzY2LjRjLTYuNiAzLTMzLjIgNi01MC0xNC4yLTkuMi0xMC42LTI1LjMtMzMuMy00Mi4yLTYzLjYtOC45IDAtMTQuNyAwLTIxLjQtLjZsMCA0Ni40YzAgMjMuNSA2IDIxLjIgMjUuOCAyMy45bDAgOC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xIC42LTMzLjYgLjhsMC04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlsMC0xMDkuNGMwLTIyLjYtNi40LTIxLTIyLTIzLjlsMC04LjFjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43bDAgNy4zem0yMi45LTEzNWMtMjMuMyAwLTMyLjItMTUuNy0zMi4yLTMyLjJsMC0zMi4yYzAtMTIuMiA4LjgtMzAuNCAzNC0zMC40czMwLjQgMTcuOSAzMC40IDE3LjlsLTEwLjcgNy4ycy01LjUtMTIuNS0xOS43LTEyLjVjLTcuOSAwLTE5LjcgNy4zLTE5LjcgMTkuN2wwIDI2LjhjMCAxMy40IDYuNiAyMy4zIDE3LjkgMjMuMyAxNC4xIDAgMjEuNS0xMC45IDIxLjUtMjYuOGwtMTcuOSAwIDAtMTAuNyAzMC40IDBjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6TTE2OC42IDI3Ni4xYy05LjQgMC0xMy42LS4zLTIwLS44bDAtNjkuN2M2LjQtLjYgMTUtLjYgMjIuNS0uNiAyMy4zIDAgMzcuMiAxMi4yIDM3LjIgMzQuNSAwIDIxLjktMTUgMzYuNi0zOS43IDM2LjZ6Il19LHFndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaWduYWwtbWVzc2VuZ2VyIixpY29uOls1MTIsNTEyLFtdLCJlNjYzIiwiTTI1NiAwYy0xMy4zIDAtMjYuMyAxLTM5LjEgM2wzLjcgMjMuN0MyMzIuMSAyNC45IDI0NCAyNCAyNTYgMjRzMjMuOSAuOSAzNS40IDIuN0wyOTUuMSAzQzI4Mi4zIDEgMjY5LjMgMCAyNTYgMHptNjAuOCA3LjNsLTUuNyAyMy4zYzIzLjQgNS43IDQ1LjQgMTQuOSA2NS40IDI3LjFsMTIuNS0yMC41Yy0yMi4xLTEzLjQtNDYuNC0yMy42LTcyLjItMjkuOXptNzYuNCA2MS42YzE5LjEgMTQgMzYgMzAuOSA1MC4xIDUwLjFsMTkuNC0xNC4yQzQ0NyA4My42IDQyOC40IDY1IDQwNy4zIDQ5LjVMMzkzLjEgNjguOHptODEuNyA1NC4ybC0yMC41IDEyLjVjMTIuMiAyMCAyMS40IDQyIDI3LjEgNjUuNGwyMy4zLTUuN2MtNi4zLTI1LjgtMTYuNS01MC4xLTI5LjktNzIuMnptMTAuNSA5Ny41YzEuOCAxMS41IDIuNyAyMy40IDIuNyAzNS40cy0uOSAyMy45LTIuNyAzNS40bDIzLjcgMy43YzEuOS0xMi43IDMtMjUuOCAzLTM5LjFzLTEtMjYuMy0zLTM5LjFsLTIzLjcgMy43em0tMzEgMTU1LjlsMjAuNSAxMi41YzEzLjQtMjIuMSAyMy42LTQ2LjQgMjkuOS03Mi4ybC0yMy4zLTUuN2MtNS43IDIzLjQtMTQuOSA0NS40LTI3LjEgNjUuNHptOC4yIDMwLjhsLTE5LjQtMTQuMmMtMTQgMTkuMS0zMC45IDM2LTUwLjEgNTAuMWwxNC4yIDE5LjRjMjEuMS0xNS41IDM5LjgtMzQuMSA1NS4yLTU1LjJ6bS04Ni4xIDQ3Yy0yMCAxMi4yLTQyIDIxLjQtNjUuNCAyNy4xbDUuNyAyMy4zYzI1LjgtNi4zIDUwLjEtMTYuNSA3Mi4yLTI5LjlsLTEyLjUtMjAuNXpNMjk1LjEgNTA5bC0zLjctMjMuN0MyNzkuOSA0ODcuMSAyNjggNDg4IDI1NiA0ODhzLTIzLjktLjktMzUuNC0yLjdMMjE2LjkgNTA5YzEyLjcgMS45IDI1LjggMyAzOS4xIDNzMjYuMy0xIDM5LjEtM3ptLTk0LjEtMjcuNmMtMTcuNi00LjMtMzQuNC0xMC42LTUwLjEtMTguNmwtNy44LTQtMzIuOCA3LjcgNS41IDIzLjQgMjQuMy01LjdjMTcuNCA4LjkgMzUuOSAxNS44IDU1LjMgMjAuNWw1LjctMjMuM3pNOTUuNCA0OTQuNkw5MCA0NzEuMyA0OC4zIDQ4MWMtMTAuNCAyLjQtMTkuNy02LjktMTcuMy0xNy4zbDkuNy00MS42LTIzLjQtNS41LTkuNyA0MS42QzEuMiA0ODYgMjYgNTEwLjggNTMuOCA1MDQuNGw0MS42LTkuN3ptLTUwLTkyLjlsNy43LTMyLjgtNC03LjhjLTgtMTUuNy0xNC4zLTMyLjUtMTguNi01MC4xTDcuMyAzMTYuN0MxMiAzMzYuMSAxOC45IDM1NC43IDI3LjcgMzcybC01LjcgMjQuMyAyMy40IDUuNXpNMyAyOTUuMWwyMy43LTMuN0MyNC45IDI3OS45IDI0IDI2OCAyNCAyNTZzLjktMjMuOSAyLjctMzUuNEwzIDIxNi45QzEgMjI5LjcgMCAyNDIuNyAwIDI1NnMxIDI2LjMgMyAzOS4xem0yNy42LTk0LjFjNS43LTIzLjQgMTQuOS00NS40IDI3LjEtNjUuNEwzNy4yIDEyMy4xYy0xMy40IDIyLjEtMjMuNiA0Ni40LTI5LjkgNzIuMmwyMy4zIDUuN3ptMTguOS05Ni4ybDE5LjQgMTQuMmMxNC0xOS4xIDMwLjktMzYgNTAuMS01MC4xTDEwNC43IDQ5LjVDODMuNiA2NSA2NSA4My42IDQ5LjUgMTA0Ljd6bTg2LjEtNDdjMjAtMTIuMiA0Mi0yMS40IDY1LjQtMjcuMUwxOTUuMiA3LjNjLTI1LjggNi4zLTUwLjEgMTYuNS03Mi4yIDI5LjlsMTIuNSAyMC41ek0yNTYgNDY0YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSA0OCAyNTYgNDggNDggMTQxLjEgNDggMjU2YzAgMzYuNCA5LjQgNzAuNyAyNS44IDEwMC41IDEuNiAyLjkgMi4xIDYuMiAxLjQgOS40bC0yMS42IDkyLjUgOTIuNS0yMS42YzMuMi0uNyA2LjUtLjIgOS40IDEuNCAyOS44IDE2LjUgNjQgMjUuOCAxMDAuNSAyNS44eiJdfSxWZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2OCIsIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41TDkuOCAzNDZjLTcuNyAwLTEyLjEtNy41LTguNS0xNC40bDY5LTEyMS4zYy4yIDAgLjItLjEgMC0uM0wyNi40IDEzNC40Yy00LjMtNy44IC4zLTE0LjEgOC41LTE0LjFsNjUuMSAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJMMTYyLjcgMjEwek0zODIuNiA0Ni4xbC0xNDQgMjUzIDAgLjMgOTEuNiAxNjYuNmMzLjkgNy4xIC4yIDE0LjEtOC41IDE0LjFsLTY1LjIgMGMtNy42IDAtMTMuNi00LTE4LTEyLjJMMTQ2LjEgMjk5LjRjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4ybDY1LjcgMGM4IDAgMTIuMyA2LjcgOC41IDE0LjF6Il19LGt1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtanMiLGljb246WzQ0OCw1MTIsWyJqcy1zcXVhcmUiXSwiZjNiOSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTgwLjkgNDQ0LjljLTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41TDE1MiAzODUuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVsMC0xNDMuMSA0Mi4xIDAgMCAxNDMuN2MwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNXptODUuOC00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42LTM5LjEgMC02NC40LTE4LjYtNzYuNy00M3oiXX0samd0PWt1ZSxVZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9udGljb25zIixpY29uOls0NDgsNTEyLFtdLCJmMjgwIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTE4NyAxNzIuOWMtMTguNCAwLTE5IDkuOS0xOSAyNy40bDAgMjMuM2MwIDIuNC0zLjUgNC40LS42IDQuNGw2Ny40IDAtMTEuMSAzNy4zLTU1LjcgMCAwIDExMi45YzAgNS44LTIgNi43IDMuMiA3LjNsNDMuNSA0LjEgMCAyNS4xLTEzMC43IDAgMC0yNS43IDIxLjMtMmM1LjItLjYgNi43LTIuMyA2LjctNy45bDAtMTExLjRjMC0yLjMtMi45LTIuMy01LjgtMi4zbC0yMi4yIDAgMC0zNy40IDI4IDAgMC0yMWMwLTQ5LjYgMjYuNS03MCA3Ny4zLTcwIDM0LjEgMCA2NC43IDguMiA2NC43IDUyLjhsLTUwLjcgNi4xYy4zLTE4LjctNC40LTIzLTE2LjMtMjN6bTc0LjMgMjQxLjhsMC0yNS4xIDIwLjQtMi42YzUuMi0uNiA3LjYtMS43IDcuNi03LjNsMC0xMDcuOWMwLTQuMS0yLjktNi43LTYuNy03LjlsLTI0LjItNi40IDYuNy0yOS41IDgwLjIgMCAwIDE1MS43YzAgNS44LTIuNiA2LjQgMi45IDcuM2wxNS43IDIuNiAwIDI1LjEtMTAyLjYgMHptODAuOC0yNTUuNWw5IDMzLjItNy4zIDcuMy0zMS4yLTE2LjYtMzEuMiAxNi42LTcuMy03LjMgOS0zMy4yLTIxLjgtMjQuMiAzLjUtOS42IDI3LjcgMCAxNS41LTI4IDkuMyAwIDE1LjUgMjggMjcuNyAwIDMuNSA5LjYtMjEuOSAyNC4yeiJdfSxXZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXBzIixpY29uOlszODQsNTEyLFtdLCJmN2UwIiwiTTEwMy4yIDMwM2MtNS4yIDMuNi0zMi42IDEzLjEtMzIuNi0xOWwwLTEwNC0zMi43IDAgMCAxMDIuNmMwIDc0LjkgODAuMiA1MS4xIDk3LjkgMzlsMC0xNDEuNi0zMi42IDAgMCAxMjN6TTQgNzQuOEw0IDI5NS43YzAgMTAzLjcgNzQuOSAxMzUuMiAxODcuNyAxODQuMSAxMTIuNC00OC45IDE4Ny43LTgwLjIgMTg3LjctMTg0LjFsMC0yMjAuOUMyNjMuMSAxMy4yIDk3LjYgMjUuMiA0IDc0Ljh6TTM2Mi4xIDI5NS43YzAgODYuNi01My4yIDExMy42LTE3MC40IDE2NS4zLTExNy41LTUxLjgtMTcwLjUtNzguNy0xNzAuNS0xNjUuM2wwLTEyNi40YzEwMi4zLTkzLjggMjMxLjYtMTAwIDM0MC45LTg5LjhsMCAyMTYuMnpNMTUyLjUgMTg4LjNsMCAyMTIuOCAzMi43IDAgMC02OC43YzI0LjQgNy4zIDcxLjctMi42IDcxLjctNzguNSAwLTk3LjQtODAuNy04MC45LTEwNC40LTY1LjZ6bTMyLjcgMTE3LjNsMC0xMDAuM2M4LjQtNC4yIDM4LjQtMTIuNyAzOC40IDQ5LjMgMCA2Ny45LTM2LjQgNTEuOC0zOC40IDUxem03OS4xLTg2LjRjLjEgNDcuMyA1MS42IDQyLjUgNTIuMiA3MC40IC42IDIzLjUtMzAuNCAyMy01MC44IDQuOWwwIDMwLjFjMzYuMiAyMS41IDgxLjkgOC4xIDgzLjItMzMuNSAxLjctNTEuNS01NC4xLTQ2LjYtNTMuNC03My4yIC42LTIwLjMgMzAuNi0yMC41IDQ4LjUtMi4ybDAtMjguNGMtMjguNS0yMi03OS45LTkuMi03OS43IDMxLjl6Il19LEdndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWF6b24tcGF5IixpY29uOls2NDAsNTEyLFtdLCJmNDJjIiwiTTE0IDMyNS4zYzIuMy00LjIgNS4yLTQuOSA5LjctMi41IDEwLjQgNS42IDIwLjYgMTEuNCAzMS4yIDE2LjcgNDAuNiAyMC4yIDgzLjMgMzUuOCAxMjcuNCA0Ni4zIDIwLjggNSA0MS45IDkgNjMuMiAxMS44IDMxLjUgNC4yIDYzLjIgNiA5NSA1LjIgMTcuNC0uNCAzNC44LTEuOCA1Mi4xLTMuOCA1Ni4yLTYuNiAxMTEuMS0yMSAxNjMuMy00Mi44IDIuOS0xLjIgNS45LTIgOS4xLTEuMiA2LjcgMS44IDkgOSA0LjEgMTMuOS0zIDIuNy02LjIgNS4yLTkuNiA3LjQtMzAuNyAyMS4xLTY0LjIgMzYuNC05OS42IDQ3LjktMjQuNSA3LjktNDkuNiAxMy44LTc1LjEgMTcuNi0xNy42IDIuNy0zNS40IDQuMy01My4yIDQuOC0uOCAwLTEuNyAuMi0yLjUgLjNsLTIxLjEgMGMtLjgtLjEtMS43LS4yLTIuNS0uMy0zLjYtLjItNy4yLS4zLTEwLjctLjQtMTYuOS0uOC0zMy43LTIuNS01MC40LTUuMy0yNy40LTQuNS01NC4zLTExLjUtODAuNC0yMC45LTUzLjctMTkuNC0xMDMuMS00OC45LTE0NS42LTg3LTEuOC0xLjYtMy0zLjgtNC40LTUuN2wwLTJ6TTE3MiA2NS4xbC00LjMgLjZjLTEzLjggMS43LTI2LjggNi45LTM4IDE1LjEtMi40IDEuNy00LjYgMy41LTcuMSA1LjQtLjItLjQtLjMtLjktLjQtMS40LS40LTIuNy0uOC01LjUtMS4zLTguMi0uNy00LjYtMy02LjYtNy42LTYuNmwtMTEuNSAwYy02LjkgMC04LjIgMS4zLTguMiA4LjJsMCAyMDkuM2MwIDEgMCAyIC4xIDMgLjIgMyAyIDQuOSA0LjkgNSA3IC4xIDE0LjEgLjEgMjEuMSAwIDIuOSAwIDQuNy0yIDUtNSAuMS0xIC4xLTIgLjEtM2wwLTcyLjRjMS4xIC45IDEuNyAxLjQgMi4yIDEuOSAxNy45IDE0LjkgMzguNSAxOS44IDYxIDE1LjQgMjAuNC00IDM0LjYtMTYuNSA0My44LTM0LjkgNy0xMy45IDkuOS0yOC43IDEwLjMtNDQuMSAuNS0xNy4xLTEuMi0zMy45LTguMS00OS44LTguNS0xOS42LTIyLjYtMzIuNS00My45LTM2LjktMy4yLS43LTYuNS0xLTkuOC0xLjUtMi44LS4xLTUuNS0uMS04LjMtLjF6TTEyNC42IDEwN2MtLjEtLjcgLjEtMS4zIC40LTEuOXMuOC0xLjEgMS4zLTEuNGMxMy43LTkuNSAyOC44LTE0LjUgNDUuNi0xMy4yIDE0LjkgMS4xIDI3LjEgOC40IDMzLjUgMjUuOSAzLjkgMTAuNyA0LjkgMjEuOCA0LjkgMzMgMCAxMC40LS44IDIwLjYtNCAzMC42LTYuOCAyMS4zLTIyLjQgMjkuNC00Mi42IDI4LjUtMTQtLjYtMjYuMi02LTM3LjQtMTMuOS0uNi0uMy0xLS44LTEuMy0xLjRzLS40LTEuMi0uNC0xLjljLjEtMTQuMSAwLTI4LjEgMC00Mi4ycy4xLTI4IDAtNDIuMXpNMzMwLjMgNjUuMWMtMSAuMS0yIC4zLTIuOSAuNC05LjcgLjQtMTkuNCAxLjgtMjguOSA0LjEtNi4xIDEuNi0xMiAzLjgtMTcuOSA1LjgtMy42IDEuMi01LjQgMy44LTUuMyA3LjcgLjEgMy4zLS4xIDYuNiAwIDkuOSAuMSA0LjggMi4xIDYuMSA2LjggNC45IDcuOC0yIDE1LjYtNC4yIDIzLjUtNS43IDEyLjMtMi4zIDI0LjctMy4zIDM3LjItMS40IDYuNSAxIDEyLjYgMi45IDE2LjggOC40IDMuNyA0LjggNS4xIDEwLjUgNS4zIDE2LjQgLjMgOC4zIC4yIDE2LjYgLjMgMjQuOSAwIC41LS4xIC45LS4yIDEuNC0uNS0uMS0uOSAwLTEuMy0uMS0xMC41LTIuNi0yMS4yLTQuMi0zMi00LjktMTEuMy0uNi0yMi41IC4xLTMzLjMgMy45LTEyLjkgNC41LTIzLjMgMTIuMy0yOS40IDI0LjktNC43IDkuOC01LjQgMjAuMi0zLjkgMzAuNyAyIDE0IDkgMjQuOCAyMS40IDMxLjcgMTEuOSA2LjYgMjQuOCA3LjQgMzcuOSA1LjQgMTUuMS0yLjMgMjguNS04LjcgNDAuMy0xOC40IC41LS40IDEtLjggMS42LTEuMSAuNiAzLjggMS4xIDcuNCAxLjggMTEgLjYgMy4xIDIuNSA1LjEgNS40IDUuMiA1LjQgLjEgMTAuOSAuMSAxNi4zIDAgMS4zIDAgMi41LS41IDMuNC0xLjRzMS40LTIuMSAxLjUtMy4zYy4xLS45IC4xLTEuOSAuMS0yLjhsMC0xMDZjMC00LjMtLjMtOC42LS45LTEyLjktMS45LTEyLjktNy40LTIzLjUtMTktMzAuNC02LjctNC0xNC4xLTYtMjEuOC03LjEtMy42LS41LTcuMi0uOC0xMC44LTEuMy0zLjkgLjEtNy45IC4xLTExLjkgLjF6bTM1IDEyNy43YzAgLjYtLjEgMS4yLS4zIDEuN3MtLjcgMS0xLjIgMS4zYy0xMS4yIDguMS0yMy41IDEzLjUtMzcuNCAxNC45LTUuNyAuNi0xMS40IC40LTE2LjgtMS44LTMtMS4xLTUuNi0yLjktNy44LTUuMnMtMy43LTUuMS00LjYtOC4xYy0yLTYuMy0yLTEzLjEtLjEtMTkuNCAyLjUtOC4zIDguNC0xMyAxNi40LTE1LjYgOC0yLjQgMTYuNS0zLjIgMjQuOC0yLjIgOC40IC43IDE2LjYgMi4zIDI1IDMuNCAxLjYgLjIgMi4xIDEgMi4xIDIuNi0uMSA0LjggMCA5LjUgMCAxNC4zcy0uMiA5LjQtLjEgMTQuMXpNNjI1LjIgMzIyLjJjLTEtNS00LjgtNi45LTkuMS04LjMtNi44LTIuMS0xMy45LTMuNS0yMS0zLjktMTMuMS0xLjEtMjYuMy0uNS0zOS4yIDEuOS0xNC4zIDIuNy0yNy45IDcuMy00MCAxNS42LTEuNCAuOS0yLjcgMi4xLTMuNyAzLjUtLjQgLjYtLjYgMS4zLS43IDEuOXMwIDEuNCAuMiAyLjFjLjQgMS41IDIuMSAxLjkgMy42IDEuOCAuNyAwIDEuNSAwIDIuMi0uMSA3LjgtLjggMTUuNS0xLjcgMjMuMy0yLjUgMTEuNC0xLjEgMjIuOS0xLjggMzQuMy0uOSA0LjkgLjQgOS43IDEuMyAxNC40IDIuNyA1LjEgMS40IDcuNCA1LjIgNy42IDEwLjQgLjQgOC0xLjQgMTUuNy0zLjUgMjMuMy00LjEgMTUuNC0xMCAzMC4zLTE1LjggNDUuMS0uNCAxLS44IDItMSAzLS41IDIuOSAxLjIgNC44IDQuMSA0LjEgMS44LS40IDMuNC0xLjMgNC44LTIuNSA0LjUtNC4yIDguOC04LjcgMTIuNy0xMy40IDEyLjgtMTYuNCAyMC4zLTM1LjMgMjQuNy01NS42IC44LTMuNiAxLjQtNy4zIDIuMS0xMC45bDAtMTcuM3pNNDkzLjEgMTk5Yy0xMi45LTM1LjctMjUuOC03MS40LTM4LjctMTA3LjItMi01LjctNC4yLTExLjMtNi4zLTE2LjktMS4xLTIuOS0zLjItNC44LTYuNC00LjgtNy42LS4xLTE1LjItLjItMjIuOS0uMS0yLjUgMC0zLjcgMi0zLjIgNC41IC41IDIuMSAxLjEgNC4xIDEuOSA2LjEgMTkuNiA0OC41IDM5LjMgOTcgNTkuMSAxNDUuNSAxLjcgNC4xIDIuMSA3LjYgLjIgMTEuOC0zLjMgNy4zLTUuOSAxNS05LjMgMjIuMy0zIDYuNS04IDExLjQtMTUuMiAxMy4zLTUgMS4zLTEwLjIgMS43LTE1LjQgMS4xLTIuNS0uMi01LS44LTcuNS0xLTMuNC0uMi01LjEgMS4zLTUuMiA0LjgtLjEgMy4zLS4xIDYuNiAwIDkuOSAuMSA1LjUgMiA4IDcuNCA4LjkgNS42IDEuMSAxMS4yIDEuOCAxNi45IDIgMTcuMSAuNCAzMC43LTYuNSAzOS41LTIxLjQgMy41LTUuOSA2LjYtMTIgOS4yLTE4LjQgMjMuNy01OS44IDQ3LjItMTE5LjcgNzAuNi0xNzkuNiAuNy0xLjggMS4zLTMuNiAxLjYtNS41IC40LTIuOC0uOS00LjQtMy43LTQuNC02LjYtLjEtMTMuMyAwLTE5LjkgMC0xLjctLjEtMy40IC4zLTQuNyAxLjNzLTIuNCAyLjMtMyAzLjljLS41IDEuNC0xLjEgMi43LTEuNiA0LjFsLTM0LjggMTAwYy0yLjUgNy4yLTUuMSAxNC41LTcuNyAyMi4yLS40LTEuMS0uNi0xLjctLjktMi40eiJdfSxZZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFuZG9yYSIsaWNvbjpbMzg0LDUxMixbXSwiZTdkYSIsIk0yMDEuMyAzMkwwIDMyIDAgNDgwIDEyMC4yIDQ4MGMxMS4yIDAgMjAuMy05LjEgMjAuMy0yMC4zbDAtODYuMSAzMC4xIDBjMTQ3LjEgMCAyMDcuMy04Mi45IDIwNy4zLTE3OS45IDAtMTE5LjctOTAuOS0xNjEuOC0xNzYuNS0xNjEuOHoiXX0sS2d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5pZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE5YiIsIk0yNzEuNSA0MzJsLTY4IDMyQzg4LjUgNDUzLjcgMCAzOTIuNSAwIDMxOC4yIDAgMjQ2LjcgODIuNSAxODcuMiAxOTEuNyAxNzMuOWwwIDQzYy03MS41IDEyLjUtMTI0IDUzLTEyNCAxMDEuMyAwIDUxIDU4LjUgOTMuMyAxMzUuNyAxMDNsMC0zNDAgNjgtMzMuMiAwIDM4NCAuMSAwek00NDggMjkxbC0xMzEuMy0yOC41IDM2LjgtMjAuN2MtMTkuNS0xMS41LTQzLjUtMjAtNzAtMjQuOGwwLTQzYzQ2LjIgNS41IDg3LjcgMTkuNSAxMjAuMyAzOS4zbDM1LTE5LjggOS4yIDk3LjV6Il19LFpndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2c2NvIixpY29uOls1MTIsNTEyLFtdLCJlN2RkIiwiTTM1Ny42IDI1NmMwLTI3LjEtMTAuNi01Mi41LTI5LjctNzEuN3MtNDQuNi0yOS43LTcxLjctMjkuN2wtLjEgMGMtMjcuMSAwLTUyLjYgMTAuNi03MS43IDI5LjdzLTI5LjcgNDQuNi0yOS43IDcxLjdjMCAyNy4xIDEwLjYgNTIuNSAyOS43IDcxLjcgMTkuMiAxOS4yIDQ0LjYgMjkuNyA3MS43IDI5LjdsLjEgMGMyNy4xIDAgNTIuNi0xMC42IDcxLjctMjkuNyAxOS4yLTE5LjIgMjkuNy00NC42IDI5LjctNzEuN3pNMTc2LjMgNDgyLjFjMjMgOC4xIDQ3IDEyLjYgNzEuNiAxMy40bDAtNTkuMWMtMTcuMS0uNy0zMy41LTMuOC00OS04LjlsLTIyLjYgNTQuNnptMTM3LTU0LjZjLTE1LjUgNS4xLTMyIDguMi00OSA4LjlsMCA1OS4xYzI0LjYtLjggNDguNi01LjMgNzEuNi0xMy40bC0yMi42LTU0LjZ6TTkyLjUgNDMxLjJjMjAuMiAxOC45IDQzLjMgMzQgNjguNyA0NWwyMi41LTU0LjVjLTE4LjMtNy45LTM1LjEtMTguOC00OS44LTMxLjlMOTIuNSA0MzEuMnptMjg1LjktNDEuNGMtMTQuNiAxMy4yLTMxLjQgMjQtNDkuOCAzMS45bDIyLjUgNTQuNWMyNS40LTExIDQ4LjQtMjYuMSA2OC43LTQ1bC00MS40LTQxLjR6TTE0NS40IDM3OC4yYzEzLjYgMTIuMSAyOSAyMS45IDQ1LjggMjkgMTggNy42IDM3LjEgMTIgNTYuNyAxMi45bDAtNDYuOGMtMjYuNC0xLjgtNTAuMy0xMi4zLTY5LjEtMjguNmwtMzMuNCAzMy40em0xODgtMzMuNGMtMTguOCAxNi4zLTQyLjcgMjYuOC02OS4xIDI4LjZsMCA0Ni44YzE5LjYtLjkgMzguNy01LjMgNTYuNy0xMi45IDE2LjgtNy4xIDMyLjItMTYuOSA0NS44LTI5bC0zMy40LTMzLjR6TTM4LjUgMzU2LjZjMTAuNyAyMy4yIDI1IDQ0LjMgNDIuNSA2My4xbDQxLjMtNDEuM2MtMTIuNC0xMy40LTIyLjktMjguNi0zMC45LTQ1LjJMMzguNSAzNTYuNnptMzgyLjQtMjMuNWMtOCAxNi42LTE4LjUgMzEuOS0zMC45IDQ1LjJsNDEuMyA0MS4zYzE3LjUtMTguNyAzMS44LTM5LjkgNDIuNS02My4xbC01Mi45LTIzLjV6bS0zMzEtNjljMS4xIDE4LjggNS40IDM3LjIgMTIuOCA1NC41IDcuNSAxNy44IDE4IDM0IDMxLjIgNDguMmwzMy41LTMzLjVjLTE2LjQtMTguOC0yNi45LTQyLjgtMjguNy02OS4ybC00OC44IDB6bTI4My43IDBjLTEuOCAyNi40LTEyLjMgNTAuNC0yOC43IDY5LjJsMzMuNSAzMy41YzEzLjEtMTQuMiAyMy42LTMwLjQgMzEuMi00OC4yIDcuMy0xNy40IDExLjYtMzUuNyAxMi43LTU0LjVsLTQ4LjcgMHptLTM1Ny4xIDBjLjkgMjYuNyA2LjEgNTIuNyAxNS42IDc3LjVMODUgMzE4LjJjLTYuNC0xNy0xMC4zLTM1LjEtMTEuMy01NGwtNTcuMSAwem00MjIuMSAwYy0xIDE4LjktNSAzNy4xLTExLjMgNTRsNTIuOCAyMy41YzkuNS0yNC44IDE0LjctNTAuOCAxNS42LTc3LjVsLTU3LjEgMHpNMzIuMSAxNzAuNGMtOS41IDI0LjgtMTQuNyA1MC44LTE1LjYgNzcuNWw1Ny4xIDBjMS0xOC45IDUtMzcuMSAxMS4zLTU0TDMyLjEgMTcwLjR6bTEwMS43LTI1LjJjLTEzLjEgMTQuMi0yMy42IDMwLjQtMzEuMiA0OC4yLTcuMyAxNy40LTExLjYgMzUuNy0xMi44IDU0LjVsNDguOCAwYzEuOC0yNi40IDEyLjMtNTAuNCAyOC43LTY5LjJsLTMzLjUtMzMuNXptMjExLjEgMzMuNWMxNi40IDE4LjggMjYuOSA0Mi44IDI4LjcgNjkuMmw0OC43IDBjLTEuMS0xOC44LTUuNC0zNy4yLTEyLjctNTQuNS03LjUtMTcuOC0xOC0zNC0zMS4yLTQ4LjJsLTMzLjUgMzMuNXptODIuNCAxNS4yYzYuNCAxNyAxMC4zIDM1LjEgMTEuMyA1NGw1Ny4xIDBjLS45LTI2LjctNi4xLTUyLjctMTUuNi03Ny41bC01Mi44IDIzLjV6TTgxIDkyLjNDNjMuNCAxMTEgNDkuMiAxMzIuMiAzOC41IDE1NS40bDUyLjkgMjMuNWM4LTE2LjYgMTguNS0zMS45IDMwLjktNDUuMkw4MSA5Mi4zem0zMDkgNDEuM2MxMi40IDEzLjQgMjIuOSAyOC42IDMwLjkgNDUuMmw1Mi45LTIzLjVjLTEwLjctMjMuMi0yNS00NC4zLTQyLjUtNjMuMUwzOTAgMTMzLjd6TTI0OCA5MS44Yy0xOS42IC45LTM4LjcgNS4zLTU2LjcgMTIuOS0xNi44IDcuMS0zMi4yIDE2LjktNDUuOCAyOWwzMy40IDMzLjRjMTguOC0xNi4zIDQyLjctMjYuOCA2OS4xLTI4LjZsMC00Ni43em0xNi4zIDQ2LjdjMjYuNCAxLjggNTAuMyAxMi4zIDY5LjEgMjguNmwzMy40LTMzLjRjLTEzLjYtMTIuMS0yOS0yMS45LTQ1LjgtMjktMTgtNy42LTM3LjEtMTItNTYuNy0xMi45bDAgNDYuN3pNMTYxLjIgMzUuOGMtMjUuNCAxMS00OC40IDI2LjEtNjguNyA0NWw0MS40IDQxLjRjMTQuNy0xMy4yIDMxLjQtMjQgNDkuOC0zMS45TDE2MS4yIDM1Ljh6TTMyOC42IDkwLjNjMTguMyA3LjkgMzUuMSAxOC44IDQ5LjggMzEuOWw0MS40LTQxLjRjLTIwLjItMTguOS00My4zLTM0LTY4LjctNDVMMzI4LjYgOTAuM3pNMjQ4IDE2LjRjLTI0LjYgLjgtNDguNiA1LjMtNzEuNiAxMy40bDIyLjYgNTQuNmMxNS41LTUuMSAzMi04LjIgNDktOC45bDAtNTkuMXptMTYuMyA1OS4xYzE3LjEgLjcgMzMuNSAzLjggNDkgOC45bDIyLjYtNTQuNmMtMjMtOC4xLTQ3LTEyLjYtNzEuNi0xMy40bDAgNTkuMXpNNTEyLjIgMjY0LjJsLS4yIDBDNTA3LjggMzk5IDM5OS4yIDUwNy43IDI2NC4zIDUxMS45bDAgLjEtMTYuMyAwIDAtLjFDMTEzLjEgNTA3LjcgNC41IDM5OSAuMiAyNjQuMWwtLjIgMCAwLTE2LjMgLjIgMEM0LjUgMTEzIDExMy4xIDQuMyAyNDggLjFsMC0uMSAxNi4zIDAgMCAuMUMzOTkuMiA0LjMgNTA3LjggMTEzIDUxMiAyNDcuOWwuMiAwIDAgMTYuM3oiXX0sWGd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdsb2JhbGVha3MiLGljb246WzQ0OCw1MTIsW10sImU4NWQiLCJNNDExLjIgMzIuMmMyMC4yIDAgMzYuOCAxNi42IDM2LjggMzYuOWwwIDM3My44YzAgMjAuMi0xNi42IDM2LjktMzYuOCAzNi45bC05NC40IDAgMjgtNzkuNGMzLjEtOC44LTEuNi0xOC43LTEwLjQtMjEuOC0xLjYtLjUtMi42LTEtNC4yLTFzLTMuNiAwLTUuMiAuNWMtNS4yIDEtOS45IDUuMi0xMS45IDEwLjlsLTYuMiAxNi42IDAtNjcuNWMwLTEwLjktNy44LTE5LjctMTguMi0yMS44bC03LjIgMGMtLjUgMC0xIDAtMS42IC41LS41IDAtMSAuNS0xLjYgLjUtMi42IDEtNS4yIDIuNi03LjIgNC4xbDAtNC4xYzAtNS43LTIuNi0xMC40LTUuNy0xNGwtMS0xYy0xLTEtMi42LTIuMS00LjItMi42bDAtMjYuNWMwLTUuMi00LjEtOS4zLTkuMy05LjNsLTM5LjkgMGMtNi43IDAtMTEuNC03LjMtOC4zLTEzLjVMMjgzLjEgODQuMWMxNC41LTMxLjEgNDUuNi01MS40IDgwLjQtNTEuOWw0Ny43IDB6bS0xNjYgMGMxNy42IDAgMzAuMSAxNi4xIDI4IDMyLjItMi42IDMuNi00LjcgNy44LTYuMiAxMC45TDE4Ni42IDI0MS41Yy04LjggMTguNyA0LjIgNDAgMjQuNCA0MGwzMC42IDAgMCAxNi4xYy03LjggMy4xLTEzIDEwLjktMTMgMTkuN2wwIDMuNmMtMy42LTMuNi04LjgtNS43LTE0LjUtNS43LTExLjkgMC0yMS44IDkuOS0yMS44IDIxLjhsMCAxOS4yLTMuMSAwYy05LjMgMC0xNy4xIDcuOC0xNy4xIDE3LjFsMCAxMDUuOS05NS40IDBjLTQyIDAtNzIuNi00MC41LTYxLjItODEuNSAxLTMuMSA0LjItNS4yIDcuMy00LjdsMjEuMiAwYzI0LjQgMCA0NC42LTIwLjIgNDQuNi00NS4ybDAtNC4yYzAtMjQuOS0xOS43LTQ1LjItNDQuNi00NS4yLS41IDAtMS0uNS0xLTFsOC44LTMyLjdjMi4xLTYuMi0yLjYtMTEuOS04LjgtMTEuOWwtMzMuMiAwYy02LjcgMC0xMS40LTcuMy04LjMtMTMuNUw3Ni43IDg0LjdjMTYuMS0zMi4yIDQ4LjItNTIuNCA4NC01Mi40bDg0LjUgMHpNMTMzLjcgMTQ0LjRjLTEwLjQgMC0xOC43IDguMy0xOC43IDE4LjcgMCA5LjkgOC4zIDE4LjcgMTguNyAxOC43IDEwLjQgMCAxOC43LTguMyAxOC43LTE4LjdzLTguMy0xOC43LTE4LjctMTguN3ptMjAyLjggMGExOC42IDE4LjYgMCAxIDAgLS4yIDM3LjIgMTguNiAxOC42IDAgMSAwIC4yLTM3LjJ6Il19LFFndD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ZW5tbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg1YSIsIk02Ny44IDIwMi43YzIuNCA1IDMuOSAxMSAzLjkgMTkuOCAwIDE2LjItMTEuNSAzOS44LTIwLjcgNTQuOWwtOS45LTc5LjctNDEgMy45IDE4LjggMTEyIDQ2LjkgMGMyMC41LTI2LjkgNDUuOC02NS4zIDQ1LjgtOTQuOCAwLTkuMy0xLjktMTYuNi02LjMtMjMuN2wtMzcuNCA3LjV6bTExMy03LjFjLTQyLjggMC02My41IDM3LTYzLjUgNzEuOSAwIDI2LjkgMTIuOCA0OC41IDQ4LjQgNDguNSAxNCAwIDI4LjUtMyAzNy44LTcuNWw1LTMzLjZjLTEzLjIgNi43LTIzLjMgOS4zLTMzLjkgOS4zLTkuNyAwLTE3LjEtNS4yLTE3LjEtMTguMyAyMi0uMiA2MC05LjMgNjAtMzguOCAwLTE4LjMtMTMuMi0zMS41LTM2LjctMzEuNWwwIDB6bS0yMi41IDQ4LjljMS4xLTEyLjkgMTEtMjIgMTguNi0yMiA0LjMgMCA4IDIuNiA4IDcuNyAwIDEwLjgtMTkgMTQuMi0yNi42IDE0LjJsMCAwem0xNTAuMi00OC45Yy0xNS4zIDAtMjYuMSA1LjgtMzQuMyAxMS4ybC0uNC05LjMtMzQuOCAwLTE4LjQgMTE2LjEgNDAuMiAwIDEyLjctODEuNGMzLjUtMS43IDguNi00LjEgMTMuOC00LjEgMy45IDAgNy4xIDEuMyA3LjEgNi41IDAgMi4yLS43IDYtLjkgOGwtMTEuMiA3MS4xIDQwIDAgMTIuMy03Ny41Yy43LTQuMSAxLjMtMTAuMyAxLjMtMTQuNiAwLTE1LjUtNy4xLTI1LjktMjcuNC0yNS45em0xODMuMiAwYy0xNC45IDAtMjUuNyA0LjUtMzcuMiAxMi43LTQuMS03LjMtMTIuMy0xMi43LTI0LjgtMTIuNy0xNC41IDAtMjUuMyA1LjgtMzMuMyAxMS42bC0xLjEtOS43LTM0LjQgMC0xOC40IDExNi4xIDQwLjIgMCAxMi44LTgxLjRjMy41LTEuNyA4LjYtNC4xIDEzLjgtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDcuMSAwIDEuNS0uNCAzLjktLjYgNS44bC0xMS40IDcyLjYgNDAgMCAxMi43LTgxLjRjMy43LTEuOSA4LjYtNC4xIDEzLjYtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDcuMSAwIDEuNS0uNCAzLjktLjcgNS44bC0xMS40IDcyLjYgNDAgMCAxMi4zLTc3LjVjLjctNC4xIDEuMy0xMC4zIDEuMy0xNC42IDAtMTUuNS03LjEtMjUuOS0yNy43LTI1LjlsMCAwem0xMDIuMiAwYy00NC43IDAtNjQuMiAzNC4zLTY0LjIgNzAuOSAwIDI3LjggMTEuMiA1MCA0NS4xIDUwIDQ1LjggMCA2NS0zNy41IDY1LTczLjcgMC0yNy40LTEyLjMtNDcuMi00Ni00Ny4yem0tMTMuNCA5MGMtNy4xIDAtMTAuMS02LjctMTAuMS0xNy41IDAtMTQuMiAzLjItNDIgMTktNDIgNy4xIDAgOS41IDYuNSA5LjUgMTUuOSAwIDE0LjItMy41IDQzLjUtMTguNCA0My41eiJdfSxKZ3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJ1bnR1IixpY29uOls1NzYsNTEyLFtdLCJmN2RmIiwiTTQ2OS4yIDc1YzAtMjAuMS04LTM5LjMtMjIuMi01My41cy0zMy40LTIyLjItNTMuNS0yMi4yLTM5LjMgOC01My41IDIyLjItMjIuMiAzMy40LTIyLjIgNTMuNWMwIDIwLjEgOCAzOS4zIDIyLjEgNTMuNXMzMy40IDIyLjEgNTMuNSAyMi4xIDM5LjMtOCA1My41LTIyLjEgMjIuMS0zMy40IDIyLjEtNTMuNWwuMSAwem0tMzE1IDE2NS43YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNTcgMzQ2YzE4LjYgNDYuOSA1MSA4NyA5MyAxMTUuMXM5MS41IDQyLjYgMTQyIDQxLjdjLTE0LjctMTguNi0yMi45LTQxLjUtMjMuMi02NS4yLTYuOC0uOS0xMy4zLTIuMS0xOS41LTMuNC0yNi44LTUuNy01MS45LTE3LjMtNzMuNi0zNHMtMzkuMy0zOC4xLTUxLjctNjIuNWMtMjAuOSA5LjktNDQuNSAxMi44LTY3LjEgOC4ybC4xIC4xem0zOTUuMSA4OS44YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNDQ0IDM1MS42YzE4LjUgMTQuOCAzMS42IDM1LjIgMzcuMiA1OC4yIDMzLjMtNDEuMyA1Mi42LTkyLjIgNTQuOC0xNDUuMnMtMTIuNS0xMDUuNC00Mi4yLTE0OS40Yy04LjYgMjEuNS0yNCAzOS42LTQzLjggNTEuNiAxNS40IDI4LjYgMjIuOSA2MC44IDIxLjkgOTMuMnMtMTAuNyA2NC0yOCA5MS42bC4xIDB6TTEwMS4xIDEzNS40YzEyLjQgMi43IDI0LjMgNy41IDM1LjEgMTQuMyAxNi42LTI0LjIgMzguOS00NC4xIDY0LjgtNThTMjU1LjggNzAuNCAyODUuMiA3MGMuMi01LjkgLjktMTEuOSAyLTE3LjcgMy42LTE2LjcgMTEuMS0zMi4zIDIxLjgtNDUuNS00Ny43LTMuOC05NS40IDYtMTM3LjYgMjguNVM5NC4zIDkxLjcgNzAuOCAxMzMuNGMyLjctLjIgNS4zLS4zIDgtLjMgNy41IDAgMTUgLjggMjIuNCAyLjNsLS4xIDB6Il19LGVidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aWFjb2luIixpY29uOlszODQsNTEyLFtdLCJmMjM3IiwiTTM4NCAzMmwtNjQgMC04MC43IDE5Mi05NC41IDAtODAuOC0xOTItNjQgMCA0OCAxMTItNDggMCAwIDQ4IDY4LjUgMCAxMy44IDMyLTgyLjMgMCAwIDQ4IDEwMi44IDAgODkuMiAyMDggODkuMi0yMDggMTAyLjggMCAwLTQ4LTgyLjMgMCAxMy44LTMyIDY4LjUgMCAwLTQ4LTQ4IDAgNDgtMTEyek0xOTIgMzM2bC0yNy02NCA1NCAwLTI3IDY0eiJdfSx0YnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiemhpaHUiLGljb246WzY0MCw1MTIsW10sImY2M2YiLCJNMTcwLjUgMTQ4LjFsMCAyMTcuNSAyMy40IDAgNy43IDI2LjQgNDItMjYuNCA0OS41IDAgMC0yMTcuNS0xMjIuNyAwem05Ny44IDE5My45bC0yNy45IDAtMjcuOSAxNy41LTUuMS0xNy41LTExLjkgMCAwLTE3MC4zIDcyLjggMCAwIDE3MC4zek0xNDkuOCAyNDcuN2wtNTIuMyAwYzEuNy0yNy4xIDIuMi01MS42IDIuMi03My41bDUxLjIgMHMyLTIyLjYtOC42LTIyLjNsLTg4LjUgMGMzLjUtMTMuMSA3LjktMjYuNyAxMy4xLTQwLjcgMCAwLTI0LjEgMC0zMi4zIDIxLjYtMy40IDguOS0xMy4yIDQzLjEtMzAuNyA3OC4xIDUuOS0uNiAyNS40LTEuMiAzNi44LTIyLjIgMi4xLTUuOSAyLjUtNi43IDUuMS0xNC41bDI4LjkgMGMwIDEwLjUtMS4yIDY2LjktMS43IDczLjRsLTUyLjMgMGMtMTEuNyAwLTE1LjYgMjMuNi0xNS42IDIzLjZsNjUuNiAwYy00LjQgNDkuOS0yOCA5MS45LTcwLjggMTI1LjEgMjAuNSA1LjkgNDAuOS0uOSA1MS05LjkgMCAwIDIzLTIwLjkgMzUuNi02OS4zbDU0IDY0LjlzNy45LTI2LjktMS4yLTQwYy03LjYtOC45LTI4LjEtMzMuMS0zNi44LTQxLjhMODcuOSAzMTJjNC40LTE0IDctMjcuNiA3LjktNDAuN2w2MS42IDBzLS4xLTIzLjYtNy42LTIzLjZsMCAwem00MTItMS42YzIwLjgtMjUuNiA0NS01OC42IDQ1LTU4LjZzLTE4LjYtMTQuOC0yNy40LTQuMWMtNiA4LjItMzYuOCA0OC4yLTM2LjggNDguMmwxOS4yIDE0LjR6TTQxMS44IDE4N2MtOS04LjItMjUuOSAyLjEtMjUuOSAyLjFzMzkuNSA1NSA0MS4xIDU3LjRsMTkuNS0xMy43cy0yNS43LTM3LjYtMzQuNy00NS45bDAgMCAwIDB6TTY0MCAyNTguNGMtMTkuOCAwLTEzMC45IC45LTEzMS4xIC45bDAtMTAxYzQuOCAwIDEyLjQtLjQgMjIuOC0xLjIgNDAuOS0yLjQgNzAuMS00IDg3LjgtNC44IDAgMCAxMi4yLTI3LjItLjYtMzMuNC0zLjEtMS4yLTIzLjIgNC42LTIzLjIgNC42cy0xNjUuMiAxNi41LTIzMi40IDE4YzEuNiA4LjggNy42IDE3LjEgMTUuOCAxOS42IDEzLjMgMy41IDIyLjcgMS43IDQ5LjIgLjkgMjQuOC0xLjYgNDMuNy0yLjQgNTYuNS0yLjRsMCA5OS44LTEzMy41IDBzMi44IDIyLjMgMjUuNSAyMi45bDEwNy45IDAgMCA3MC45YzAgMTQtMTEuMiAyMi0yNC41IDIxLjEtMTQuMSAuMS0yNi4xLTEuMS00MS43LTEuOCAyIDQgNi4zIDE0LjQgMTkuMyAyMS44IDkuOSA0LjggMTYuMiA2LjYgMjYgNi42IDI5LjYgMCA0NS43LTE3LjMgNDQuOS00NS4zbDAtNzMuMyAxMjIuNCAwYzkuNyAwIDguNy0yMy44IDguNy0yMy44bDAgMHoiXX0sYWJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleCIsaWNvbjpbMjU2LDUxMixbXSwiZjQxMyIsIk0xNTMuMSAzMTUuOEw2NS43IDUxMiAyIDUxMiA5OCAzMDIuMkM1Mi45IDI3OS4zIDIyLjggMjM3LjggMjIuOCAxNjEuMSAyMi43IDUzLjcgOTAuOCAwIDE3MS43IDBsODIuMyAwIDAgNTEyLTU1LjEgMCAwLTE5Ni4yLTQ1LjggMHpNMTk4LjkgNDYuNWwtMjkuNCAwYy00NC40IDAtODcuNCAyOS40LTg3LjQgMTE0LjYgMCA4Mi4zIDM5LjQgMTA4LjggODcuNCAxMDguOGwyOS40IDAgMC0yMjMuNHoiXX0scmJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeGl2IixpY29uOls0NDgsNTEyLFtdLCJlNjQwIiwiTTk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZMOTYgMzJ6bTc3LjcgMjE3LjNhNjAuMSA2MC4xIDAgMSAwIDEyMC4zIDAgNjAuMSA2MC4xIDAgMSAwIC0xMjAuMyAwek0xMTkuMSAzODcuOGMtLjMtLjgtLjUtMS43LS41LTIuNmwwLTI0NC4zYzAtMS44IC43LTMuNiAyLTQuOXMzLTIgNC45LTJsMTYuOSAwYzEuMiAwIDIuMyAuMyAzLjMgLjhzMS45IDEuMyAyLjUgMi4zbDE0IDIxLjhjMTkuNy0xNS42IDQ0LjUtMjUgNzEuNi0yNSA2My42IDAgMTE1LjIgNTEuNiAxMTUuMiAxMTUuMlMyOTcuNSAzNjQuNSAyMzMuOCAzNjQuNWMtMjIgMC00Mi42LTYuMi02MC4xLTE2LjlsMCAzNy42YzAgLjktLjIgMS44LS41IDIuNnMtLjkgMS42LTEuNSAyLjItMS40IDEuMS0yLjIgMS41LTEuNyAuNS0yLjYgLjVsLTQxLjMgMGMtLjkgMC0xLjgtLjItMi42LS41cy0xLjYtLjktMi4yLTEuNS0xLjEtMS40LTEuNS0yLjJ6Il19LHNidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuYWkiLGljb246WzUxMiw1MTIsW10sImU3Y2YiLCJNMTk2LjQgMTg1LjhsMC00OC42YzAtNC4xIDEuNS03LjIgNS4xLTkuMmw5Ny44LTU2LjNjMTMuMy03LjcgMjkuMi0xMS4zIDQ1LjYtMTEuMyA2MS40IDAgMTAwLjQgNDcuNiAxMDAuNCA5OC4zIDAgMy42IDAgNy43LS41IDExLjhMMzQzLjMgMTExLjFjLTYuMS0zLjYtMTIuMy0zLjYtMTguNCAwTDE5Ni40IDE4NS44ek00MjQuNyAzNzUuMmwwLTExNi4yYzAtNy4yLTMuMS0xMi4zLTkuMi0xNS45TDI4NyAxNjguNCAzMjkgMTQ0LjNjMy42LTIgNi43LTIgMTAuMiAwTDQzNyAyMDAuN2MyOC4yIDE2LjQgNDcuMSA1MS4yIDQ3LjEgODUgMCAzOC45LTIzIDc0LjgtNTkuNCA4OS42bDAgMHpNMTY2LjIgMjcyLjhsLTQyLTI0LjZjLTMuNi0yLTUuMS01LjEtNS4xLTkuMmwwLTExMi42YzAtNTQuOCA0Mi05Ni4zIDk4LjgtOTYuMyAyMS41IDAgNDEuNSA3LjIgNTguNCAyMEwxNzUuNCAxMDguNWMtNi4xIDMuNi05LjIgOC43LTkuMiAxNS45bDAgMTQ4LjUgMCAwem05MC40IDUyLjJsLTYwLjItMzMuOCAwLTcxLjcgNjAuMi0zMy44IDYwLjIgMzMuOCAwIDcxLjctNjAuMiAzMy44em0zOC43IDE1NS43Yy0yMS41IDAtNDEuNS03LjItNTguNC0yMGwxMDAuOS01OC40YzYuMS0zLjYgOS4yLTguNyA5LjItMTUuOWwwLTE0OC41IDQyLjUgMjQuNmMzLjYgMiA1LjEgNS4xIDUuMSA5LjJsMCAxMTIuNmMwIDU0LjgtNDIuNSA5Ni4zLTk5LjMgOTYuM2wwIDB6TTE3My44IDM2Ni41TDc2LjEgMzEwLjJjLTI4LjItMTYuNC00Ny4xLTUxLjItNDcuMS04NSAwLTM5LjQgMjMuNi03NC44IDU5LjktODkuNmwwIDExNi43YzAgNy4yIDMuMSAxMi4zIDkuMiAxNS45bDEyOCA3NC4yLTQyIDI0LjFjLTMuNiAyLTYuNyAyLTEwLjIgMHptLTUuNiA4NGMtNTcuOSAwLTEwMC40LTQzLjUtMTAwLjQtOTcuMyAwLTQuMSAuNS04LjIgMS0xMi4zbDEwMC45IDU4LjRjNi4xIDMuNiAxMi4zIDMuNiAxOC40IDBsMTI4LjUtNzQuMiAwIDQ4LjZjMCA0LjEtMS41IDcuMi01LjEgOS4ybC05Ny44IDU2LjNjLTEzLjMgNy43LTI5LjIgMTEuMy00NS42IDExLjNsMCAwem0xMjcgNjAuOWM2MiAwIDExMy43LTQ0IDEyNS40LTEwMi40IDU3LjMtMTQuOSA5NC4yLTY4LjYgOTQuMi0xMjMuNCAwLTM1LjgtMTUuNC03MC43LTQzLTk1LjcgMi42LTEwLjggNC4xLTIxLjUgNC4xLTMyLjMgMC03My4yLTU5LjQtMTI4LTEyOC0xMjgtMTMuOCAwLTI3LjEgMi00MC40IDYuNy0yMy0yMi41LTU0LjgtMzYuOS04OS42LTM2LjktNjIgMC0xMTMuNyA0NC0xMjUuNCAxMDIuNC01Ny4zIDE0LjgtOTQuMiA2OC42LTk0LjIgMTIzLjQgMCAzNS44IDE1LjQgNzAuNyA0MyA5NS43LTIuNiAxMC44LTQuMSAyMS41LTQuMSAzMi4zIDAgNzMuMiA1OS40IDEyOCAxMjggMTI4IDEzLjggMCAyNy4xLTIgNDAuNC02LjcgMjMgMjIuNSA1NC44IDM2LjkgODkuNiAzNi45eiJdfSxpYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2l0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxMiIsIk0wIDMybDY5LjcgMTE4LjgtNTguOS0xMS41IDY5LjggOTFjLTMgMTctMyAzNC40IDAgNTEuNGwtNjkuOCA5MSA1OC45LTExLjUtNjkuNyAxMTguOCAxMTguOC02OS43LTExLjUgNTguOSA5MS02OS44YzE3IDMgMzQuNSAzIDUxLjUgMGw5MSA2OS44LTExLjUtNTguOSAxMTguNyA2OS43LTY5LjctMTE4LjggNTguOSAxMS41LTY5LjgtOTFjMy0xNyAzLTM0LjQgMC01MS40bDY5LjgtOTEtNTguOSAxMS41IDY5LjctMTE4LjgtMTE4LjcgNjkuNyAxMS41LTU4LjktOTEuMSA2OS45Yy04LjUtMS41LTE3LjEtMi4zLTI1LjctMi4zcy0xNy4yIC44LTI1LjcgMi4zTDEwNy4yIDQyLjggMTE4LjggMTAxLjcgMCAzMnpNMjI0IDM4MC4yYTEyNC4yIDEyNC4yIDAgMSAxIDAtMjQ4LjQgMTI0LjIgMTI0LjIgMCAxIDEgMCAyNDguNHptMC0yMTEuOGE4Ny42IDg3LjYgMCAxIDAgMCAxNzUuMSA4Ny42IDg3LjYgMCAxIDAgMC0xNzUuMXoiXX0sb2J0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imp1bGlhIixpY29uOls2NDAsNTEyLFtdLCJlODUyIiwiTTEyNCA0MDYuNWMwIDE2LjEtMS44IDI5LjEtNS40IDM5cy04LjggMTcuNi0xNS41IDIzLjEtMTQuNyA5LjEtMjQuMSAxMS0xOS44IDIuOC0zMS4yIDIuOGMtMTUuNSAwLTI3LjMtMi40LTM1LjUtNy4zUzAgNDY0LjUgMCA0NTcuN2MwLTUuNiAyLjMtMTAuNCA2LjktMTQuM3MxMC44LTUuOCAxOC41LTUuOGM1LjggMCAxMC40IDEuNiAxMy45IDQuN3M2LjMgNi4yIDguNiA5LjNjMi42IDMuNCA0LjggNS42IDYuNSA2LjhzMy40IDEuNyA0LjggMS43YzMuMSAwIDUuNC0xLjggNy01LjRzMi40LTEwLjcgMi40LTIxLjJsMC0xOTguNyA1NS40LTE1LjIgMCAxODYuOXptNzguOS0xODEuNmwwIDEyNy45YzAgMy42IC43IDYuOSAyLjEgMTBzMy4zIDUuOCA1LjcgOC4xIDUuMiA0LjEgOC41IDUuNCA2LjcgMi4xIDEwLjQgMi4xYzQuMiAwIDguOS0yLjMgMTQuNy02LjQgOS4yLTYuNCAxNC43LTEwLjkgMTQuNy0xNi4xbDAtMTMxIDU1LjEgMCAwIDE4MS42LTU1LjEgMCAwLTE2LjljLTcuMyA2LjEtMTUgMTEtMjMuMiAxNC43cy0xNi4yIDUuNi0yMy45IDUuNmMtOSAwLTE3LjQtMS41LTI1LjEtNC41cy0xNC41LTctMjAuMy0xMi4yLTEwLjQtMTEuMi0xMy43LTE4LjFjLTMuMy02LjktNS0xNC4zLTUtMjIuMmwwLTEyNy45IDU1LjEgMHpNMzkxLjQgNDA2LjVsLTU0LjkgMCAwLTI1NC42IDU0LjktMTUuMiAwIDI2OS44em0yMi45LTE3MS43bDU1LjEtMTUuMiAwIDE4Ni45LTU1LjEgMCAwLTE3MS43em0xNzAuMyA3Ny45Yy01LjMgMi4zLTEwLjcgNC45LTE2LjEgNy45cy0xMC4zIDYuMi0xNC43IDkuOC04IDcuMy0xMC44IDExLjQtNC4xIDguMi00LjEgMTIuNmMwIDMuNCAuNCA2LjYgMS4zIDkuOHMyLjEgNS44IDMuOCA4LjEgMy40IDQuMSA1LjMgNS40IDQgMi4xIDYuMyAyLjFjNC41IDAgOS4xLTEuNCAxMy43LTQuMXM5LjctNi4yIDE1LjQtMTAuNGwwLTUyLjV6TTY0MCA0MDYuNWwtNTUuNCAwIDAtMTQuNWMtMy4xIDIuNi02IDUtOC45IDcuMXMtNi4yIDQuMS05LjggNS43LTcuNyAyLjktMTIuMiAzLjhjLTQuNSAuOS05LjggMS4zLTE1LjkgMS4zLTguNCAwLTE1LjktMS4yLTIyLjYtMy42LTYuNy0yLjQtMTIuNC01LjctMTctOS45cy04LjMtOS4xLTEwLjgtMTQuOWMtMi41LTUuNy0zLjgtMTItMy44LTE4LjcgMC02LjkgMS4zLTEzLjIgNC0xOC45IDIuNy01LjYgNi4zLTEwLjcgMTAuOS0xNS4yIDQuNi00LjUgOS45LTguNSAxNi4xLTEyLjFzMTIuNy02LjggMTkuNy05LjggMTQuMy01LjcgMjEuOS04LjIgMTUuMS00LjkgMjIuNS03LjFsNi0xLjUgMC0xNy45YzAtMTEuNi0yLjItMTkuOC02LjYtMjQuN3MtMTAuNC03LjMtMTcuOC03LjNjLTguNyAwLTE0LjggMi4xLTE4LjEgNi4zcy01LjEgOS4zLTUuMSAxNS4yYzAgMy40LS40IDYuNy0xLjEgOS45LS43IDMuMi0yIDYtMy43IDguNXMtNC4zIDQuNC03LjYgNS44Yy0zLjMgMS41LTcuNSAyLjItMTIuNSAyLjItNy43IDAtMTQtMi4yLTE4LjktNi42LTQuOC00LjQtNy4zLTEwLTcuMy0xNi44IDAtNi4zIDIuMS0xMi4xIDYuNC0xNy41IDQuMy01LjQgMTAtMTAgMTcuMy0xMy45IDcuMy0zLjkgMTUuNi02LjkgMjUuMS05LjJzMTkuNi0zLjQgMzAuMi0zLjRjMTMuMSAwIDI0LjMgMS4yIDMzLjcgMy41czE3LjIgNS43IDIzLjMgMTAgMTAuNiA5LjYgMTMuNSAxNS43IDQuNCAxMyA0LjQgMjAuNmwwIDEzNi4xek02MCAxNzIuOWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwek00NTIuMiA5NWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwem00NSA3Ny45YTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6bS04OS45IDBhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHoiXX0sbmJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5mYy1kaXJlY3Rpb25hbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMCIsIk0yMTEuOCA0ODguNmMxLjYgMi41IDIuMSA1LjYgMS40IDguNS0uNiAyLjktMi40IDUuNS00LjkgNy4xLTIuNiAxLjYtNS42IDIuMS04LjYgMS41LTYxLjQtMTMuOS0xMTUuNi00OS45LTE1Mi4yLTEwMS4yUy01LjQgMjkwLjMgMS42IDIyNy43YzctNjIuNyAzNi44LTEyMC41IDgzLjctMTYyLjUgNDYuOS00MiAxMDcuNy02NS4yIDE3MC43LTY1LjIgMS41IDAgMi4xIC4zIDQuMyAuOSAxLjQgLjYgMS44IDEuNCAzLjcgMi41IDEuMSAxLjEgMS45IDIuMyAyLjUgMy43IC41IDEuNCAuOCAyLjggLjggNC4zbDAgMTAxIDI0LjUtMjUuOWMxLTEuMSAyLjItMiAzLjYtMi42IDEuMy0uNiAyLjgtLjkgNC4zLTEgMS41LS4xIDIuOSAuMiA0LjMgLjdzMi43IDEuMyAzLjggMi40YzEgMSAxLjkgMi4yIDIuNSAzLjYgLjYgMS4zIDEgMi44IDEgNC4zcy0uMiAzLS43IDQuM2MtLjYgMS40LTEuNCAyLjYtMi40IDMuN2wtNDQgNDYuNmMtMS4xIDEuMS0yLjMgMi0zLjcgMi42LTEuNSAuNi0zIC45LTUuNCAuOS0uNiAwLTIuMi0uMy0zLjYtLjlzLTIuNy0xLjUtMy43LTIuNmwtNDQuMS00Ni42Yy0yLTIuMi0zLjEtNS4xLTMtOC4xIDAtMyAxLjMtNi43IDMuNS03LjkgMi4yLTIuMSA1LjEtMy4yIDguMS0zLjEgMyAuMSA1LjggMS4zIDcuOSAzLjVsMjQuNSAyNiAwLTg5LjVjLTU2LjQgMi44LTEwOS44IDI1LjgtMTUwLjUgNjUtNDAuNiAzOS4xLTY1LjcgOTEuNy03MC42IDE0Ny45UzM0LjQgMzQ4LjEgNjcuNyAzOTMuN2MzMi40IDQ1LjUgODIgNzcuNSAxMzcgODkuOSAyLjkgLjcgNS41IDIuNSA3LjEgNXpNMTcxLjQgMTI2LjFjLS44IDEuMy0xLjkgMi40LTMuMSAzLjItMjAuNSAxMy45LTM3LjIgMzIuNi00OC44IDU0LjVzLTE3LjcgNDYuMy0xNy43IDcxLjEgNi4xIDQ5LjIgMTcuNyA3MC4yYzExLjYgMjIuOCAyOC4zIDQxLjUgNDguOCA1NS40IDIuNSAxLjcgNC4yIDQuMyA0LjcgNy4zIC42IDIuOS0uOSA2LTEuNyA4LjQtMS43IDIuNS01LjIgNC4yLTcuMyAzLjktMi45IDEuNC02IC44LTguNC0uOS0yMy42LTE2LTQyLjgtMzcuNS01Ni4xLTYyLjctMTMuMy0yNS4xLTIwLjMtNTMuMS0yMC4zLTgxLjYgMC0yOC40IDctNTYuNSAyMC4zLTgxLjYgMTMuMy0yNS4yIDMyLjUtNDYuNyA1Ni4xLTYyLjcgMS4yLS44IDIuNi0xLjQgNC0xLjggMS41LS4zIDMtLjMgNC41IDAgMS40IC4yIDIuOCAuOCA0LjEgMS42czIuMyAxLjkgMy4yIDMuMWMuOCAxLjIgMS40IDIuNiAxLjcgNC4xcy4zIDMgMCA0LjRjLS4zIDEuNS0uOCAyLjktMS43IDQuMXpNMzQwLjkgMzgzLjVjLjgtMS4yIDEuOS0yLjMgMi4yLTMuMWwwLS4xYzIxLjMtMTQgMzgtMzIuNyA0OS42LTU0LjYgMTEuNS0yMS44IDE3LjUtNDYuMiAxNy41LTcwLjlzLTYtNDkuMS0xNy41LTcxYy0xMS42LTIyLjctMjguMy00MC41LTQ5LjYtNTQuNS0uMy0uOC0xLjQtMS45LTIuMi0zLjEtLjgtMS4zLTEuNC0yLjctMS42LTQuMS0xLjItMS41LS4zLTMgMC00LjQgLjMtMS41IC45LTIuOSAxLjctNC4xIC45LTEuMiAxLjEtMi4zIDMuMi0zLjEgMS4yLS44IDIuNi0xLjMgNC4xLTEuNnMyLjktLjMgNC40IDAgMi44IC45IDQuMSAxLjhjMjMuNCAxNiA0Mi43IDM3LjUgNTUuOSA2Mi42IDEzLjMgMjUuMSAxOS40IDUzLjEgMTkuNCA4MS41IDAgMjguNS02LjEgNTYuNS0xOS40IDgxLjYtMTMuMiAyNS4xLTMyLjUgNDYuNi01NS45IDYyLjYtMS4zIC45LTIuNiAxLjUtNC4xIDEuOHMtMi45IC4zLTQuNCAwLTIuOS0xLjctNC4xLTEuNmMtMi4xLS44LTIuMy0xLjktMy4yLTMuMS0uOC0xLjItMS40LTIuNi0xLjctNC4xLS4zLTEuNC0xLjItMi45IDAtNC40IC4yLTEuNCAuOC0yLjggMS42LTQuMXpNMzEyLjMgNi4zYzU2LjIgMTIuNyAxMDYuNCA0NCAxNDIuNyA4OC43IDMwLjQgMzcuNiA0OS42IDgzIDU1LjMgMTMxIDUuNiA0OC0yLjQgOTYuNy0yMy4yIDE0MC4zLTIwLjkgNDMuNi01My42IDgwLjUtOTQuNSAxMDYuMy00MC45IDI1LjctODguMiAzOS40LTEzNi42IDM5LjQtMS41IDAtMi45LS4zLTQuMy0uOS0xLjQtLjUtMi42LTEuNC0zLjctMi40LTEuOS0xLjEtMS45LTIuMy0yLjQtMy43LS42LTEuNC0uOS0yLjgtLjktNC4zbDAtOTkuMi0yNC41IDI2Yy0yLjEgMi4yLTQuOSAyLjYtNy45IDMuNi0zIC4xLTUuOS0xLjEtOC4xLTQtMi4yLTEuMi0zLjUtNC0zLjUtNy0uMS0zIDEtNS45IDMtOC4xbDQ0LjEtNDYuNmMxLjMtMi4yIDUuMS0zLjQgNy4zLTMuNCA0IDAgNi45IDEuMiA5LjEgMy40bDQ0IDQ2LjZjMi4xIDIuMiAzLjIgNS4xIDMuMSA4LjFzLTEuNCA1LjgtMy41IDdjLTIuMiAyLjktNS4xIDQuMS04LjEgNC0zLTEtNS45LTEuNC03LjktMy42bC0yNC41LTI1LjkgMCA4Ny41YzU2LjQtMi44IDEwOS44LTI1LjggMTUwLjUtNjUgNDAuNy00MCA2NS44LTkxLjcgNzAuNy0xNDcuOSA0LjgtNTcuMS0xMC44LTExMi4zLTQ0LjEtMTU3LjktMzMuMy00NS42LTgyLTc3LjUtMTM3LTg5LjktMS41LS4zLTIuOC0uOS00LjEtMS44LTEuMi0uOS0yLjItMS45LTMtMy4yLS44LTEuMi0yLjItMi42LTEuNi00LjEtLjItMS41LS4yLTMgLjEtNC40IC40LTEuNCAxLTIuOCAxLjgtNCAuOS0xLjIgMi0yLjIgMy4yLTMgMS4zLS44IDIuNy0xLjMgNC4xLTEuNiAxLjUtLjMgMy0uMiA0LjQgLjF6bTQwLjggMjQ5LjhjMCAzMS40LTE3LjUgNjEuMS00OS4zIDgzLjUtMi4xIDEuNS00LjggMi4zLTcuNCAyLTIuNy0uMi01LjItMS4zLTctMy4ybC03MC4xLTY5LjhjLTIuMi0yLjEtNC4yLTUtMy40LTggMC0zIDEuMi01LjkgMy4zLTggMi4yLTIuMSA1LTMuMyA4LTMuM3M1LjkgMS4yIDggMy4zbDYzLjEgNjIuOGMyMC44LTE3LjEgMzIuMi0zNy45IDMyLjItNTkuMyAwLTIzLjktMTQuMS00Ny0zOS43LTY1LjEtMi41LTEuNy00LjEtNC4zLTQuNi03LjMtLjUtMi45IC4xLTYgMS45LTguNCAxLjctMi41IDQuMy00LjEgNy4zLTQuNiAyLjktLjUgNiAuMSA4LjQgMS45IDMxLjggMjIuNCA0OS4zIDUyLjEgNDkuMyA4My41ek0yMTYuNyAzNDEuNWMtMyAuNS02LS4yLTguNS0xLjktMzEuNy0yMi40LTUwLjEtNTIuMS01MC4xLTgzLjVzMTguNC02MS4xIDUwLjEtODMuNWMyLjItMS42IDQuOS0yLjMgNy41LTIuMSAyLjcgLjMgNS4xIDEuNCA3IDMuM2w3MC4xIDY5LjhjMi4xIDIuMSAzLjMgNSAzLjMgOHMtMiA1LjgtMy4zIDhjLTIuMSAyLjEtNSAzLjMtNy45IDMuMy0zIDAtNi44LTEuMi04LTMuM2wtNjMuMS02Mi45Yy0yMC45IDE3LjMtMzIuMiAzOC0zMi4yIDU5LjQgMCAyMyAxNC4xIDQ3IDM5LjcgNjUgMi40IDEuOCA0LjEgNC40IDQuNiA3LjQgLjUgMi45LS4yIDUuOS0xLjkgOC40LTEuNyAyLjQtNC40IDQuMS03LjMgNC42eiJdfSxsYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1ieSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlNyIsIk0zMjIuOSAxOTQuNGwwIDEwMS40LTI4LjMgMCAwIDEyMC41LTc3LjEgMCAwLTEyMC40LTI4LjMgMCAwLTEwMS41YzAtNC40IDEuNi04LjIgNC42LTExLjMgMy4xLTMuMSA2LjktNC43IDExLjMtNC43bDEwMS45IDBjNC4xIDAgNy44IDEuNiAxMS4xIDQuNyAzLjEgMy4yIDQuOCA2LjkgNC44IDExLjN6bS0zMi41LTY0LjVhMzQuNSAzNC41IDAgMSAxIC02OSAuOCAzNC41IDM0LjUgMCAxIDEgNjktLjh6TTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3oiXX0sY2J0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVtYnJhY28iLGljb246WzUxMiw1MTIsW10sImY4ZTgiLCJNMjU2LjMgOGEyNDggMjQ4IDAgMSAwIC0uNyA0OTYgMjQ4IDI0OCAwIDEgMCAuNy00OTZ6bTE0NSAyNjZjLS44IDI3LjEtNS40IDQ4LjgtMTQgNjVzLTIzLjEgMjcuOS00My41IDM1Yy0yMC40IDcuMS00OC45IDEwLjYtODUuNCAxMC41bC00LjYgMGMtMzYuNSAuMS02NS0zLjMtODUuNC0xMC41cy0zNC45LTE4LjgtNDMuNS0zNWMtOC42LTE2LjItMTMuMi0zNy45LTE0LTY1LS43LTEwLjItLjctMjAuNSAwLTMwLjcgLjQtMTQuNyAxLjYtMjkuMyAzLjYtNDMuOSAxLjktMTMuNCAzLjYtMjIuNiA1LjQtMzIgMS00LjkgMS4zLTYuNCAxLjgtOC40IC4zLTEuMSAuOS0yLjEgMS44LTIuOHMyLTEuMSAzLjEtMS4xbC43IDAgMzIgNWMxLjIgLjIgMi4yIC44IDMgMS43czEuMiAyLjEgMS4yIDMuM2MwIC4zIDAgLjUgMCAuOGwtMS43IDguOGMtMS42IDguOC0zLjIgMjAuMS00LjggMzMuNy0xLjcgMTQtMi41IDI4LjEtMi42IDQyLjItLjIgMjcgMi41IDQ2LjkgOC4xIDU5LjggMi44IDYuNCA3LjIgMTIgMTIuNiAxNi40czExLjkgNy40IDE4LjcgOC44YzE4LjggNCAzOC4xIDUuNyA1Ny4zIDUuMWwxMC4zIDBjMTkuMiAuNiAzOC41LTEuMiA1Ny4zLTUuMiA2LjgtMS40IDEzLjItNC41IDE4LjYtOC44czkuNy0xMCAxMi41LTE2LjRjNS43LTEyLjkgOC40LTMyLjkgOC4xLTU5LjgtLjEtMTQuMS0xLTI4LjItMi42LTQyLjEtMS43LTEzLjYtMy4zLTI0LjgtNC45LTMzLjdsLTEuNy04LjhjMC0uMyAwLS41IDAtLjggMC0xLjIgLjQtMi40IDEuMi0zLjNzMS44LTEuNSAzLTEuN2wzMi01IC44IDBjMS4xIDAgMi4yIC40IDMuMSAxLjFzMS41IDEuNyAxLjggMi44Yy42IDIgLjggMy42IDEuOCA4LjQgMS44IDkuNiAzLjUgMTguOCA1LjQgMzIgMiAxNC42IDMuMiAyOS4yIDMuNiA0My45IC43IDEwLjIgLjcgMjAuNSAwIDMwLjdsMCAweiJdfSxkYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9vbGkiLGljb246WzY0MCw1MTIsW10sImY0MjciLCJNMTQ0LjUgMzUybDM4LjMgLjhjLTEzLjItNC42LTI2LTEwLjItMzguMy0xNi44bDAgMTZ6bTU3LjctNS4zbDAgNS4zLTE5LjQgLjhjMzYuNSAxMi41IDY5LjkgMTQuMiA5NC43IDcuMi0xOS45IC4yLTQ1LjgtMi42LTc1LjMtMTMuM3pNNjExLjEgMjMxLjVjMTUuOSAwIDI4LjktMTIuOSAyOC45LTI4LjlzLTEyLjktMjQuNS0yOC45LTI0LjVjLTE1LjkgMC0yOC45IDguNi0yOC45IDI0LjVzMTIuOSAyOC45IDI4LjkgMjguOXpNNTgyLjEgMzUybDU3LjkgMCAwLTExMC41LTU3LjkgMCAwIDExMC41em0tNzMuNyAwbDU3LjkgMCAwLTE5NS4zLTU3LjkgMjcuMyAwIDE2OHptLTMxLTExOS40Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMy0xLjEtNTAuNCAxNy4xYy0xOC4yIDE4LjItMTYuOCAzMy45LTE2LjggNTIuNnMtMS40IDM0LjMgMTYuOCA1Mi41IDUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi44LTMzLjggMTYuOC01Mi41LS4xLTE4LjggMS4zLTM0LjUtMTYuOC01Mi42em0tMzkuOCA3MS45YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41bDAtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45bDAgNDAuNHpNMzMxLjQgMjMyLjZjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4yLTEuMS01MC40IDE3LjFjLTEuOSAxLjktMy43IDMuOS01LjMgNi0zOC4yLTI5LjYtNzIuNS00Ni41LTEwMi4xLTYxLjFsMC0yMC43LTIyLjUgMTAuNmMtNTQuNC0yMi4xLTg5LTE4LjItOTcuMyAuMSAwIDAtMjQuOSAzMi44IDYxLjggMTEwLjhsMCA3My43IDU3LjkgMCAwLTI4LjZjLTYuNS00LjItMTMtOC43LTE5LjQtMTMuNi0xNC44LTExLjItMjcuNC0yMS42LTM4LjQtMzEuNGwwLTMxYzEzLjEgMTQuNyAzMC41IDMxLjQgNTMuNCA1MC4zbDQuNSAzLjYgMC0yOS44YzAtNi45IDEuNy0xOC4yIDEwLjgtMTguMnMxMC42IDYuOSAxMC42IDE1bDAgNDguN2MxOCAxMi4yIDM3LjMgMjIuMSA1Ny43IDI5LjZsMC05My45YzAtMTguNy0xMy40LTM3LjQtNDAuNi0zNy40LTE1LjgtLjEtMzAuNSA4LjItMzguNSAyMS45bDAtNTQuM2M0MS45IDIwLjkgODMuOSA0Ni41IDk5LjkgNTguMy0xMC4yIDE0LjYtOS4zIDI4LjEtOS4zIDQzLjcgMCAxOC43LTEuNCAzNC4zIDE2LjggNTIuNXM1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuNy0zMy44IDE2LjctNTIuNSAwLTE4LjUgMS41LTM0LjItMTYuNy01Mi4zek02NS4yIDE4NGwwIDYzLjNjLTQ4LjctNTQuNS0zOC45LTc2LTM1LjItNzkuMSAxMy41LTExLjQgMzcuNS04IDY0LjQgMi4xTDY1LjIgMTg0ek0yOTEuNyAzMDQuNWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6Il19LFN1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0IixpY29uOls0NDgsNTEyLFsiZ2l0LXNxdWFyZSJdLCJmMWQyIiwiTTEyMC44IDMzNS41Yy01LjktLjQtMTIuNi0uOC0yMC4yLTEuMy0zLjMgNC4xLTYuNiA4LjQtNi42IDEzLjUgMCAxOC41IDY1LjUgMTguNSA2NS41LTEuNSAwLTguMy03LjQtOC43LTM4LjgtMTAuN2wuMSAwem03LjgtMTE3LjljLTMyLjMgMC0zMy43IDQ0LjUtLjcgNDQuNSAzMi41IDAgMzEuNy00NC41IC43LTQ0LjV6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yNDMuOSAxNzIuMmMtMTQuNSAwLTIyLjktOC40LTIyLjktMjIuOXM4LjQtMjIuMyAyMi45LTIyLjNjMTQuNyAwIDIzLjEgNy44IDIzLjEgMjIuM3MtOC40IDIyLjktMjMuMSAyMi45ek0xNDkuNiAxOTVsNDkuNSAwIDAgMjEuNi0yMy40IDEuOGM0LjYgNS44IDkuNCAxNCA5LjQgMjUuNyAwIDQ4LjctNTcuMiA0Ny4yLTc0LjIgNDIuNGwtOC40IDEzLjRjNSAuMyA5LjggLjYgMTQuMyAuOCA1Ni4zIDMuMiA4MC41IDQuNiA4MC41IDM4LjUgMCAyOS4yLTI1LjcgNDUuNy02OS45IDQ1LjctNDYgMC02My41LTExLjYtNjMuNS0zMS43IDAtMTEuNCA1LjEtMTcuNSAxNC0yNS45LTguNC0zLjUtMTEuMi05LjktMTEuMi0xNi44IDAtOS42IDcuNC0xNi4zIDIzLTMwLjZsLjItLjJjLTEyLjQtNi4xLTIxLjgtMTkuMy0yMS44LTM4LjEgMC01MS42IDU2LjYtNTMuMyA4MS42LTQ2LjhsLS4xIC4yek0yNzAuNSAzMDMuMWwxMyAxLjggMCAyMC4xLTcyLjQgMCAwLTIwLjFjMi43LS40IDUtLjcgNi45LS45IDkuOS0xLjIgMTAuMS0xLjMgMTAuMS02bDAtNzQuN2MwLTQuNC0uOS00LjctMTAuMS03LjgtMS45LS43LTQuMi0xLjQtNi45LTIuNGwyLjgtMjAuNiA1Mi42IDAgMCAxMDUuNWMwIDQuMSAuMiA0LjYgNC4xIDUuMWwtLjEgMHptMTA2LjYtMTAuNEwzODQgMzE1Yy0xMC45IDUuNC0yNi45IDEwLjItNDEuNCAxMC4yLTMwLjIgMC00MS43LTEyLjItNDEuNy00MC45bDAtNjYuNmMwLS44IDAtMS40LS4yLTEuOC0uOC0xLjItNC4yLS43LTE5LjYtLjdsMC0yMi42YzIyLjMtMi41IDMxLjItMTMuNyAzNC00MS40bDI0LjIgMGMwIDMzLjMtLjYgMzggLjcgMzguNiAuMyAuMSAuNyAwIDEuMyAwbDM1LjggMCAwIDI1LjQtMzcuOCAwIDAgNjEuNmMtLjIgNi4zLS45IDMwLjQgMzcuOSAxNS45bC0uMSAweiJdfSx1YnQ9U3VlLHBidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvZG5va2xhc3NuaWtpIixpY29uOlszMjAsNTEyLFtdLCJmMjYzIiwiTTI3NS4xIDMzNGMtMjcuNCAxNy40LTY1LjEgMjQuMy05MCAyNi45bDIwLjkgMjAuNiA3Ni4zIDc2LjNjMjcuOSAyOC42LTE3LjUgNzMuMy00NS43IDQ1LjctMTkuMS0xOS40LTQ3LjEtNDcuNC03Ni4zLTc2LjZMODQgNTAzLjRjLTI4LjIgMjcuNS03My42LTE3LjYtNDUuNC00NS43IDE5LjQtMTkuNCA0Ny4xLTQ3LjQgNzYuMy03Ni4zbDIwLjYtMjAuNmMtMjQuNi0yLjYtNjIuOS05LjEtOTAuNi0yNi45LTMyLjYtMjEtNDYuOS0zMy4zLTM0LjMtNTkgNy40LTE0LjYgMjcuNy0yNi45IDU0LjYtNS43IDAgMCAzNi4zIDI4LjkgOTQuOSAyOC45UzI1NSAyNjkuMiAyNTUgMjY5LjJjMjYuOS0yMS4xIDQ3LjEtOC45IDU0LjYgNS43IDEyLjQgMjUuNy0xLjkgMzgtMzQuNSA1OS4xem0xNC42LTIwNC43YTEyOS43IDEyOS43IDAgMSAxIC0yNTkuNCAuNCAxMjkuNyAxMjkuNyAwIDEgMSAyNTkuNC0uNHptLTE5My40IC40YTYzLjcgNjMuNyAwIDEgMCAxMjcuNC0uNCA2My43IDYzLjcgMCAxIDAgLTEyNy40IC40eiJdfSxmYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJ1cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWE5IiwiTTI3Mi4zIDEwOC4xQzIzNi41IDcyLjUgMjAyLjUgMzguNCAxOTIuNCAwIDE4Mi40IDM4LjQgMTQ4LjEgNzIuNSAxMTIuNCAxMDguMSA1OC44IDE2MS43LTEuOSAyMjIuNC0xLjkgMzEzLjQtNC4zIDQyMC43IDgwLjggNTA5LjYgMTg4LjEgNTEyczE5Ni4yLTgyLjggMTk4LjUtMTkwLjFjLjEtMi44IC4xLTUuNiAwLTguNSAwLTkxLjEtNjAuOC0xNTEuNy0xMTQuMy0yMDUuM3pNOTggMzMxLjFjLTUuOSA3LjUtMTEgMTUuNi0xNS4yIDI0LjItLjMgLjctLjggMS4zLTEuMyAxLjhzLTEuMiAuOC0yIDFsLTEuNyAwYy00LjMgMC05LjItOC41LTkuMi04LjUtMS4zLTItMi41LTQuMi0zLjctNi40bC0uOC0xLjhjLTExLjItMjUuNy0xLjUtNjIuMy0xLjUtNjIuMyA0LjgtMTcuOCAxMi43LTM0LjcgMjMuMi00OS45IDYuNC05LjYgMTMuNS0xOC45IDIxLTI3LjdsOS4yIDkuMiA0My41IDQ0LjRjLjggLjkgMS4zIDIuMSAxLjMgMy4zcy0uNSAyLjQtMS4zIDMuM0wxMTQuMSAzMTIuMyA5OCAzMzEuMXptOTYuNiAxMjcuM2MtMTIuOS0uMS0yNS42LTMuOS0zNi40LTExcy0xOS40LTE3LjEtMjQuNi0yOC45LTctMjQuOS01LTM3LjcgNy42LTI0LjcgMTYuMi0zNC40YzE0LjItMTYuOSAzMS41LTMzLjUgNTAuMy01NS4zIDIyLjMgMjMuOCAzNi45IDQwLjEgNTEuMiA1OCAxLjEgMS40IDIuMSAyLjkgMyA0LjQgNy44IDExLjEgMTIgMjQuNCAxMiAzOCAwIDguOC0xLjcgMTcuNC01IDI1LjVzLTguMiAxNS41LTE0LjQgMjEuNy0xMy41IDExLjEtMjEuNiAxNC41LTE2LjcgNS4xLTI1LjUgNS4xbC0uMiAwek0zMjAuNyAzNTEuNmMtLjQgMS40LTEuMiAyLjYtMi4zIDMuNnMtMi40IDEuNi0zLjggMS44bC0xLjMgMGMtMi42LS45LTQuOS0yLjctNi4zLTUuMS0xMS42LTE3LjUtMjQuOS0zMy45LTM5LjUtNDlsLTE3LjgtMTguNC01OS4xLTYxLjNjLTEyLjQtMTEuNS0yNC4yLTIzLjYtMzUuNC0zNi4zLS4zLS41LS42LS45LS45LTEuNC0yLTIuOC0zLjYtNS45LTQuNy05LjJsMC0xLjhjLS44LTUtLjQtMTAuMSAxLjItMTVzNC40LTkuMiA4LTEyLjdjMTEuNC0xMS40IDIzLTIzIDMzLjgtMzQuOSAxMiAxMy4zIDI0LjggMjYgMzcuNCAzOC42IDI1LjggMjQgNDkuMSA1MC41IDY5LjYgNzkuMSAxNy4zIDI0LjUgMjYuNyA1My44IDI3IDgzLjgtLjEgMTIuOS0yLjIgMjUuOC02IDM4LjJ6Il19LGhidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyLWIiLGljb246WzQ0OCw1MTIsW10sImYzN2QiLCJNNDQ2LjYgMjIyLjdjLTEuOC04LTYuOC0xNS40LTEyLjUtMTguNS0xLjgtMS0xMy0yLjItMjUtMi43LTIwLjEtLjktMjIuMy0xLjMtMjguNy01LTEwLjEtNS45LTEyLjgtMTIuMy0xMi45LTI5LjUtLjEtMzMtMTMuOC02My43LTQwLjktOTEuMy0xOS4zLTE5LjctNDAuOS0zMy02NS41LTQwLjUtNS45LTEuOC0xOS4xLTIuNC02My4zLTIuOS02OS40LS44LTg0LjggLjYtMTA4LjQgMTAtNDMuNSAxNy4yLTc0LjcgNTMuOC04Ni4xIDEwMC42LTIuMSA4LjgtMi42IDIyLjktMy4xIDEwMy45LS42IDEwMS41IC4xIDExNi40IDYuNCAxMzYuNSAxNS42IDQ5LjYgNTkuOSA4Ni4zIDEwNC40IDk0LjMgMTQuOCAyLjcgMTk3LjMgMy4zIDIxNiAuOCAzMi41LTQuNCA1OC0xNy41IDgxLjktNDEuOSAxNy4zLTE3LjcgMjguMS0zNi44IDM1LjItNjIuMSA0LjktMTcuNiA0LjUtMTQyLjggMi41LTE1MS43ek0xMjQuNSAxNTkuMWM3LjgtNy45IDEwLTguMiA1OC44LTguMiA0My45IDAgNDUuNCAuMSA1MS44IDMuNCA5LjMgNC43IDEzLjQgMTEuMyAxMy40IDIxLjkgMCA5LjUtMy44IDE2LjItMTIuMyAyMS42LTQuNiAyLjktNy4zIDMuMS01MC4zIDMuMy0yNi41IC4yLTQ3LjctLjQtNTAuOC0xLjItMTYuNi00LjctMjIuOC0yOC41LTEwLjYtNDAuOHpNMzE2LjMgMzU4LjlsLTE0LjkgMi40LTc3LjUgLjljLTY4LjEgLjgtODcuMy0uNC05MC45LTItNy4xLTMuMS0xMy44LTExLjctMTQuOS0xOS40LTEuMS03LjMgMi42LTE3LjMgOC4yLTIyLjQgNy4xLTYuNCAxMC4yLTYuNiA5Ny4zLTYuNyA4OS42LS4xIDg5LjEtLjEgOTcuNiA3LjggMTIuMSAxMS4zIDkuNSAzMS4yLTQuOSAzOS40eiJdfSxtYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW52aXNpb24iLGljb246WzQ0OCw1MTIsW10sImY3YjAiLCJNNDA3LjQgMzJMNDAuNiAzMkMxOC4yIDMyIDAgNTAuMiAwIDcyLjZMMCA0MzkuNEMwIDQ2MS44IDE4LjIgNDgwIDQwLjYgNDgwbDM2Ni44IDBjMjIuNCAwIDQwLjYtMTguMiA0MC42LTQwLjZsMC0zNjYuOEM0NDggNTAuMiA0MjkuOCAzMiA0MDcuNCAzMnpNMTc2LjEgMTQ1LjZjLjQgMjMuNC0yMi40IDI3LjMtMjYuNiAyNy40LTE0LjkgMC0yNy4xLTEyLTI3LjEtMjcgLjEtMzUuMiA1My4xLTM1LjUgNTMuNy0uNHpNMzMyLjggMzc3Yy02NS42IDAtMzQuMS03NC0yNS0xMDYuNiAxNC4xLTQ2LjQtNDUuMi01OS01OS45IC43bC0yNS44IDEwMy4zLTQ1LjEgMCA4LjEtMzIuNWMtMzEuNSA1MS44LTk0LjYgNDQuNC05NC42LTQuMyAuMS0xNC4zIC45LTE0IDIzLTEwNC4xbC0zMS44IDAgOS43LTM1LjYgNzYuNCAwYy0zMy42IDEzMy43LTMyLjYgMTI2LjktMzIuOSAxMzguMiAwIDIwLjkgNDAuOSAxMy41IDU3LjQtMjMuMmwxOS44LTc5LjQtMzIuMyAwIDkuNy0zNS42IDY4LjggMC04LjkgNDAuNWM0MC41LTc1LjUgMTI3LjktNDcuOCAxMDEuOCAzOC0xNC4yIDUxLjEtMTQuNiA1MC43LTE0LjkgNTguOCAwIDE1LjUgMTcuNSAyMi42IDMxLjgtMTYuOUwzODYgMzI1Yy0xMC41IDM2LjctMjkuNCA1Mi01My4yIDUyeiJdfSxnYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2stZiIsaWNvbjpbMzIwLDUxMixbXSwiZjM5ZSIsIk04MCAyOTkuM2wwIDIxMi43IDExNiAwIDAtMjEyLjcgODYuNSAwIDE4LTk3LjgtMTA0LjUgMCAwLTM0LjZjMC01MS43IDIwLjMtNzEuNSA3Mi43LTcxLjUgMTYuMyAwIDI5LjQgLjQgMzcgMS4ybDAtODguN0MyOTEuNCA0IDI1Ni40IDAgMjM2LjIgMCAxMjkuMyAwIDgwIDUwLjUgODAgMTU5LjRsMCA0Mi4xLTY2IDAgMCA5Ny44IDY2IDB6Il19LGJidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50b3MiLGljb246WzQ0OCw1MTIsW10sImY3ODkiLCJNMjg5LjYgOTcuNWwzMS42IDMxLjctNzYuMyA3Ni41IDAtMTA4LjIgNDQuNyAwek0xMjcuMiAxMjkuMmw3Ni4zIDc2LjUgMC0xMDguMi00NC43IDAtMzEuNiAzMS43em00MS41LTQxLjZsNDQuNyAwIDAgMTI3LjkgMTAuOCAxMC44IDEwLjgtMTAuOCAwLTEyNy45IDQ0LjcgMC01NS41LTU1LjYtNTUuNSA1NS42em0yNi4yIDE2OC4xbC0xMC44LTEwLjgtMTI4LjYgMCAwLTQ0LjgtNTUuNSA1NS42IDU1LjUgNTUuNiAwLTQ0LjggMTI4LjYgMCAxMC44LTEwLjh6TTI3NC4yIDIzNWwxMDcuOSAwIDAtNDQuOC0zMS42LTMxLjctNzYuMyA3Ni41em0xNzMuMyAyMC43bC01NS41LTU1LjYgMCA0NC44LTEyNy43IDAtMTAuOCAxMC44IDEwLjggMTAuOCAxMjcuNyAwIDAgNDQuOCA1NS41LTU1LjZ6TTY1LjQgMTc2LjJsMzIuNS0zMS43IDkwLjMgOTAuNSAxNS4zIDAgMC0xNS4zLTkwLjMtOTAuNSAzMS42LTMxLjctNzkuNCAwIDAgNzguN3pNMzgyLjEgOTcuNWwtNzguNSAwIDMxLjYgMzEuNy05MC4zIDkwLjUgMCAxNS4zIDE1LjMgMCA5MC4zLTkwLjUgMzEuNiAzMS43IDAtNzguN3pNMjAzLjUgNDEzLjlsMC0xMDguMS03Ni4zIDc2LjUgMzEuNiAzMS43IDQ0LjcgMCAwLS4xek02NS40IDIzNWwxMDguOCAwLTc2LjMtNzYuNS0zMi41IDMxLjcgMCA0NC44ek0zODIuMSAzMzUuMmwtMzEuNiAzMS43LTkwLjMtOTAuNS0xNS4zIDAgMCAxNS4zIDkwLjMgOTAuNS0zMS42IDMxLjcgNzguNSAwIDAtNzguN3ptMC01OC44bC0xMDcuOSAwIDc2LjMgNzYuNSAzMS42LTMxLjcgMC00NC44ek0zMjEuMiAzODIuMmwtNzYuMy03Ni41IDAgMTA4LjEgNDQuNyAwIDMxLjYtMzEuNnpNOTcuOSAzNTIuOWw3Ni4zLTc2LjUtMTA4LjggMCAwIDQ0LjggMzIuNSAzMS43em0xODEuOCA3MC45bC00NC43IDAgMC0xMjcuOS0xMC44LTEwLjgtMTAuOCAxMC44IDAgMTI3LjktNDQuNyAwIDU1LjUgNTUuNiA1NS41LTU1LjZ6TTExMy4yIDM4Mi4ybDkwLjMtOTAuNSAwLTE1LjMtMTUuMyAwLTkwLjMgOTAuNS0zMi41LTMxLjcgMCA3OC43IDc5LjQgMC0zMS42LTMxLjd6Il19LHZidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY2FsZXdheSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg1OSIsIk0yNDMuNCAxMTcuM2wtODQuMyAwYy0xOC41IDIuMS0zMi43IDE3LjUtMzMuNCAzNmwwIDEyMS45YzAgOC4yIDMuMiAxNS4zIDguNSAyMC43czEyLjUgOC42IDIwLjYgOC42YzE2IDAgMjkuMi0xMy4yIDI5LjItMjkuMmwwLTc3LjRjMC0xMi4xIDEwLTIyLjEgMjIuMS0yMi4xbDM4LjEgMGM4LjIgMCAxNS4zLTMuMiAyMC42LTguNnM4LjUtMTIuOCA4LjUtMjFjMC0xNi0xMy45LTI4LjktMjkuOS0yOC45ek0yMDUuMyAzOTUuNGw4NC4zIDBjMTguNS0yLjEgMzIuNy0xNy41IDMzLjQtMzZsMC0xMjEuOWMwLTguMi0zLjItMTUuMy04LjUtMjAuN3MtMTIuNS04LjYtMjAuNi04LjZjLTE2IDAtMjkuMiAxMy4yLTI5LjIgMjkuMmwwIDc3LjRjMCAxMi4xLTEwIDIyLjEtMjIuMSAyMi4xbC0zOC4xIDBjLTguMiAwLTE1LjMgMy4yLTIwLjYgOC42cy04LjUgMTIuOC04LjUgMjFjLjQgMTYgMTMuOSAyOC45IDI5LjkgMjguOXpNMTA0LjMgMEwyNTcuNiAwYzEwMSAwIDE4Mi41IDgxLjYgMTgyLjEgMTgyLjlsMCAyNDIuOGMtNC42IDQ2LTQyIDgyLjQtODguMiA4Ni4zTDE5MCA1MTJDODkuMyA1MTIgNy41IDQzMCA3LjUgMzI5LjFMNy41IDk3YzAtNTMuNSA0My40LTk3IDk2LjgtOTd6TTM4MS43IDE4Mi45YzAtNjguNS01NS45LTEyNC40LTEyNC4yLTEyNC40bC0xNTMgMEM4My4zIDU4LjUgNjYuMiA3NS42IDY2LjIgOTdsMCAyMzIuMWMwIDY4LjggNTUuNSAxMjQuNCAxMjQuMiAxMjQuNGwxNTguNyAwYzE2LjctMi4xIDI5LjktMTUgMzIuNy0zMS40bDAtMjM5LjJ6Il19LHhidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWF6b24tcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDJkIiwiTTEyNC43IDIwMS44Yy4xLTExLjggMC0yMy41IDAtMzUuM2wwLTM1LjNjMC0xLjMgLjQtMiAxLjQtMi43IDExLjUtOCAyNC4xLTEyLjEgMzguMi0xMS4xIDEyLjUgLjkgMjIuNyA3IDI4LjEgMjEuNyAzLjMgOC45IDQuMSAxOC4yIDQuMSAyNy43IDAgOC43LS43IDE3LjMtMy40IDI1LjYtNS43IDE3LjgtMTguNyAyNC43LTM1LjcgMjMuOS0xMS43LS41LTIxLjktNS0zMS40LTExLjctLjktLjgtMS40LTEuNi0xLjMtMi44em0xNTQuOSAxNC42YzQuNiAxLjggOS4zIDIgMTQuMSAxLjUgMTEuNi0xLjIgMjEuOS01LjcgMzEuMy0xMi41IC45LS42IDEuMy0xLjMgMS4zLTIuNS0uMS0zLjkgMC03LjkgMC0xMS44IDAtNC0uMS04IDAtMTIgMC0xLjQtLjQtMi0xLjgtMi4yLTctLjktMTMuOS0yLjItMjAuOS0yLjktNy0uNi0xNC0uMy0yMC44IDEuOS02LjcgMi4yLTExLjcgNi4yLTEzLjcgMTMuMS0xLjYgNS40LTEuNiAxMC44IC4xIDE2LjIgMS42IDUuNSA1LjIgOS4yIDEwLjQgMTEuMnpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzY4LjUgMTAzLjljLjQgMS43IC45IDMuNCAxLjYgNS4xIDE2LjUgNDAuNiAzMi45IDgxLjMgNDkuNSAxMjEuOSAxLjQgMy41IDEuNyA2LjQgLjIgOS45LTIuOCA2LjItNC45IDEyLjYtNy44IDE4LjctMi42IDUuNS02LjcgOS41LTEyLjcgMTEuMi00LjIgMS4xLTguNSAxLjMtMTIuOSAuOS0yLjEtLjItNC4yLS43LTYuMy0uOC0yLjgtLjItNC4yIDEuMS00LjMgNC0uMSAyLjgtLjEgNS42IDAgOC4zIC4xIDQuNiAxLjYgNi43IDYuMiA3LjUgNC43IC44IDkuNCAxLjYgMTQuMiAxLjcgMTQuMyAuMyAyNS43LTUuNCAzMy4xLTE3LjkgMi45LTQuOSA1LjYtMTAuMSA3LjctMTUuNCAxOS44LTUwLjEgMzkuNS0xMDAuMyA1OS4yLTE1MC41IC42LTEuNSAxLjEtMyAxLjMtNC42IC40LTIuNC0uNy0zLjYtMy4xLTMuNy01LjYtLjEtMTEuMSAwLTE2LjcgMC0zLjEgMC01LjMgMS40LTYuNCA0LjMtLjQgMS4xLS45IDIuMy0xLjMgMy40bC0yOS4xIDgzLjdjLTIuMSA2LjEtNC4yIDEyLjEtNi41IDE4LjYtLjQtLjktLjYtMS40LS44LTEuOS0xMC44LTI5LjktMjEuNi01OS45LTMyLjQtODkuOC0xLjctNC43LTMuNS05LjUtNS4zLTE0LjItLjktMi41LTIuNy00LTUuNC00LTYuNC0uMS0xMi44LS4yLTE5LjItLjEtMi4yIDAtMy4zIDEuNi0yLjggMy43ek0yNDIuNCAyMDZjMS43IDExLjcgNy42IDIwLjggMTggMjYuNiA5LjkgNS41IDIwLjcgNi4yIDMxLjcgNC42IDEyLjctMS45IDIzLjktNy4zIDMzLjgtMTUuNSAuNC0uMyAuOC0uNiAxLjQtMSAuNSAzLjIgLjkgNi4yIDEuNSA5LjIgLjUgMi42IDIuMSA0LjMgNC41IDQuNCA0LjYgLjEgOS4xIC4xIDEzLjcgMCAyLjMtLjEgMy44LTEuNiA0LTMuOSAuMS0uOCAuMS0xLjYgLjEtMi4zbDAtODguOGMwLTMuNi0uMi03LjItLjctMTAuOC0xLjYtMTAuOC02LjItMTkuNy0xNS45LTI1LjQtNS42LTMuMy0xMS44LTUtMTguMi01LjktMy0uNC02LS43LTkuMS0xLjFsLTEwIDBjLS44IC4xLTEuNiAuMy0yLjUgLjMtOC4yIC40LTE2LjMgMS40LTI0LjIgMy41LTUuMSAxLjMtMTAgMy4yLTE1IDQuOS0zIDEtNC41IDMuMi00LjQgNi41IC4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC4xIDEuOCA1LjIgNS43IDQuMSA2LjUtMS43IDEzLjEtMy41IDE5LjctNC44IDEwLjMtMS45IDIwLjctMi43IDMxLjEtMS4yIDUuNCAuOCAxMC41IDIuNCAxNC4xIDcgMy4xIDQgNC4yIDguOCA0LjQgMTMuNyAuMyA2LjkgLjIgMTMuOSAuMyAyMC44IDAgLjQtLjEgLjctLjIgMS4yLS40IDAtLjggMC0xLjEtLjEtOC44LTIuMS0xNy43LTMuNi0yNi44LTQuMS05LjUtLjUtMTguOSAuMS0yNy45IDMuMi0xMC44IDMuOC0xOS41IDEwLjMtMjQuNiAyMC44LTQuMSA4LjMtNC42IDE3LTMuNCAyNS44ek05OC43IDEwNi45bDAgMTc1LjNjMCAuOCAwIDEuNyAuMSAyLjUgLjIgMi41IDEuNyA0LjEgNC4xIDQuMiA1LjkgLjEgMTEuOCAuMSAxNy43IDAgMi41IDAgNC0xLjcgNC4xLTQuMSAuMS0uOCAuMS0xLjcgLjEtMi41bDAtNjAuN2MuOSAuNyAxLjQgMS4yIDEuOSAxLjYgMTUgMTIuNSAzMi4yIDE2LjYgNTEuMSAxMi45IDE3LjEtMy40IDI4LjktMTMuOSAzNi43LTI5LjIgNS44LTExLjYgOC4zLTI0LjEgOC43LTM3IC41LTE0LjMtMS0yOC40LTYuOC00MS43LTcuMS0xNi40LTE4LjktMjcuMy0zNi43LTMwLjktMi43LS42LTUuNS0uOC04LjItMS4ybC03IDBjLTEuMiAuMi0yLjQgLjMtMy42IC41LTExLjcgMS40LTIyLjMgNS44LTMxLjggMTIuNy0yIDEuNC0zLjkgMy01LjkgNC41LS4xLS41LS4zLS44LS40LTEuMi0uNC0yLjMtLjctNC42LTEuMS02LjktLjYtMy45LTIuNS01LjUtNi40LTUuNmwtOS43IDBjLTUuOS0uMS02LjkgMS02LjkgNi44ek00OTMuNiAzMzljLTIuNy0uNy01LjEgMC03LjYgMS00My45IDE4LjQtODkuNSAzMC4yLTEzNi44IDM1LjgtMTQuNSAxLjctMjkuMSAyLjgtNDMuNyAzLjItMjYuNiAuNy01My4yLS44LTc5LjYtNC4zLTE3LjgtMi40LTM1LjUtNS43LTUzLTkuOS0zNy04LjktNzIuNy0yMS43LTEwNi43LTM4LjgtOC44LTQuNC0xNy40LTkuMy0yNi4xLTE0LTMuOC0yLjEtNi4yLTEuNS04LjIgMi4xbDAgMS43YzEuMiAxLjYgMi4yIDMuNCAzLjcgNC44IDM2IDMyLjIgNzYuNiA1Ni41IDEyMiA3Mi45IDIxLjkgNy45IDQ0LjQgMTMuNyA2Ny4zIDE3LjUgMTQgMi4zIDI4IDMuOCA0Mi4yIDQuNSAzIC4xIDYgLjIgOSAuNCAuNyAwIDEuNCAuMiAyLjEgLjNsMTcuNyAwYy43LS4xIDEuNC0uMyAyLjEtLjMgMTQuOS0uNCAyOS44LTEuOCA0NC42LTQgMjEuNC0zLjIgNDIuNC04LjEgNjIuOS0xNC43IDI5LjYtOS42IDU3LjctMjIuNCA4My40LTQwLjEgMi44LTEuOSA1LjctMy44IDgtNi4yIDQuMy00LjQgMi4zLTEwLjQtMy4zLTExLjl6TTU0NCAzMTEuM2MtLjgtNC4yLTQtNS44LTcuNi03LTUuNy0xLjktMTEuNi0yLjgtMTcuNi0zLjMtMTEtLjktMjItLjQtMzIuOCAxLjYtMTIgMi4yLTIzLjQgNi4xLTMzLjUgMTMuMS0xLjIgLjgtMi40IDEuOC0zLjEgMy0uNiAuOS0uNyAyLjMtLjUgMy40IC4zIDEuMyAxLjcgMS42IDMgMS41IC42IDAgMS4yIDAgMS44LS4xbDE5LjUtMi4xYzkuNi0uOSAxOS4yLTEuNSAyOC44LS44IDQuMSAuMyA4LjEgMS4yIDEyIDIuMiA0LjMgMS4xIDYuMiA0LjQgNi40IDguNyAuMyA2LjctMS4yIDEzLjEtMi45IDE5LjUtMy41IDEyLjktOC4zIDI1LjQtMTMuMyAzNy44LS4zIC44LS43IDEuNy0uOCAyLjUtLjQgMi41IDEgNCAzLjQgMy41IDEuNC0uMyAzLTEuMSA0LTIuMSAzLjctMy42IDcuNS03LjIgMTAuNi0xMS4yIDEwLjctMTMuOCAxNy0yOS42IDIwLjctNDYuNiAuNy0zIDEuMi02LjEgMS43LTkuMSAuMi00LjcgLjItOS42IC4yLTE0LjV6Il19LHlidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlYmF5IixpY29uOls2NDAsNTEyLFtdLCJmNGY0IiwiTTYwNi41IDE4OS41bC01NC44IDEwOS45LTU0LjktMTA5LjktMzcuNSAwIDEwLjkgMjAuNmMtMTEuNS0xOS0zNS45LTI2LTYzLjMtMjYtMzEuOCAwLTY3LjkgOC43LTcxLjUgNDMuMWwzMy43IDBjMS40LTEzLjggMTUuNy0yMS44IDM1LTIxLjggMjYgMCA0MSA5LjYgNDEgMzNsMCAzLjRjLTEyLjcgMC0yOCAuMS00MS43IC40LTQyLjQgLjktNjkuNiAxMC03Ni43IDM0LjQgMS01LjIgMS41LTEwLjYgMS41LTE2LjIgMC01Mi4xLTM5LjctNzYuMi03NS40LTc2LjItMjEuMyAwLTQzIDUuNS01OC43IDI0LjJsMC04MC42LTMyLjEgMCAwIDE2OS41YzAgMTAuMy0uNiAyMi45LTEuMSAzMy4xbDMxLjUgMGMuNy02LjMgMS4xLTEyLjkgMS4xLTE5LjUgMTMuNiAxNi42IDM1LjQgMjQuOSA1OC43IDI0LjkgMzYuOSAwIDY0LjktMjEuOSA3My4zLTU0LjItLjUgMi44LS43IDUuOC0uNyA5IDAgMjQuMSAyMS4xIDQ1IDYwLjYgNDUgMjYuNiAwIDQ1LjgtNS43IDYxLjktMjUuNSAwIDYuNiAuMyAxMy4zIDEuMSAyMC4ybDI5LjggMGMtLjctOC4yLTEtMTcuNS0xLTI2LjhsMC02NS42YzAtOS4zLTEuNy0xNy4yLTQuOC0yMy44bDYxLjUgMTE2LjEtMjguNSA1NC4xIDM1LjkgMCA5OS4yLTE5NC44LTM0IDB6TTI0NC4yIDMxMy44Yy0yOS42IDAtNTAuMi0yMS41LTUwLjItNTMuOCAwLTMyLjQgMjAuNi01My44IDUwLjItNTMuOCAyOS44IDAgNTAuMiAyMS40IDUwLjIgNTMuOCAwIDMyLjMtMjAuNCA1My44LTUwLjIgNTMuOHptMjAwLjktNDcuM2MwIDMwLTE3LjkgNDguNC01MS42IDQ4LjQtMjUuMSAwLTM1LTEzLjQtMzUtMjUuOCAwLTE5LjEgMTguMS0yNC40IDQ3LjItMjUuMyAxMy4xLS41IDI3LjYtLjYgMzkuNC0uNmwwIDMuM3pNMzMuMiAyNjguMWwxMjguOCAwIDAtOC41YzAtNTEuNy0zMy4xLTc1LjQtNzguNC03NS40LTU2LjggMC04MyAzMC44LTgzIDc3LjYgMCA0Mi41IDI1LjMgNzQgODIuNSA3NCAzMS40IDAgNjgtMTEuNyA3NC40LTQ2LjFsLTMzLjEgMGMtMTIgMzUuOC04Ny43IDM2LjctOTEuMi0yMS42em05NS0yMS40bC05NC40IDBjNi45LTU2LjYgOTIuMS01NC43IDk0LjQgMHoiXX0sd2J0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvbnRhbyIsaWNvbjpbNTEyLDUxMixbXSwiZjI2ZCIsIk00NS40IDMwNWMxNC40IDY3LjEgMjYuNCAxMjkgNjguMiAxNzVMMzQgNDgwYy0xOC43IDAtMzQtMTUuMi0zNC0zNEwwIDY2QzAgNDcuMyAxNS4yIDMyIDM0IDMybDU3LjcgMGMtMTMuOCAxMi42LTI2LjEgMjcuMi0zNi45IDQzLjYtNDUuNCA3MC0yNyAxNDYuOC05LjQgMjI5LjR6TTQ3OCAzMmwtOTAuMiAwYzIxLjQgMjEuNCAzOS4yIDQ5LjUgNTIuNyA4NC4xTDMwMy40IDE0NS40Yy0xNC45LTI5LTM3LjgtNTMuMy04Mi42LTQzLjktMjQuNiA1LjMtNDEgMTkuMy00OC4zIDM0LjYtOC44IDE4LjctMTMuMiAzOS44IDguMiAxNDAuMyAyMS4xIDEwMC4yIDMzLjcgMTE3LjcgNDkuNSAxMzEuMiAxMi45IDExLjEgMzMuNCAxNyA1OC4zIDExLjcgNDQuNS05LjQgNTUuNy00MC43IDU3LjQtNzMuMmwxMzcuNC0yOS42YzMuMiA3MS41LTE4LjcgMTI1LjItNTcuNCAxNjMuNmw1Mi4xIDBjMTguNyAwIDM0LTE1LjIgMzQtMzRMNTEyIDY2YzAtMTguOC0xNS4yLTM0LTM0LTM0eiJdfSxNYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxsbyIsaWNvbjpbNTEyLDUxMixbXSwiZjVmMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM5OS44IDI5My4yQzM4My4zIDM1OC41IDMyMy44IDQwNC44IDI1NiA0MDQuOFMxMjguNyAzNTguNSAxMTIuMiAyOTMuMmMtMS42LTcuNCAyLjUtMTUuNyA5LjktMTcuNHMxNS43IDIuNSAxNy40IDkuOWMxNCA1Mi45IDYyIDkwLjEgMTE2LjYgOTAuMXMxMDIuNS0zNy4yIDExNi42LTkwLjFjMS43LTcuNCA5LjktMTIuNCAxNy40LTkuOSA3LjQgMS43IDEyLjQgOS45IDkuOSAxNy40eiJdfSxrYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2lzdHJpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlZSIsIk00NDggNDQ5TDMwMS4yIDMwMC4yYzIwLTI3LjkgMzEuOS02Mi4yIDMxLjktOTkuMiAwLTkzLjEtNzQuNy0xNjguOS0xNjYuNS0xNjguOS05MS45LS4xLTE2Ni42IDc1LjctMTY2LjYgMTY4LjhTNzQuNyAzNjkuOCAxNjYuNSAzNjkuOGMzOS44IDAgNzYuMy0xNC4yIDEwNS0zNy45TDQxNy41IDQ4MCA0NDggNDQ5ek0xNjYuNSAzMzAuOGMtNzAuNiAwLTEyOC4xLTU4LjMtMTI4LjEtMTI5LjlTOTUuOSA3MSAxNjYuNSA3MSAyOTQuNiAxMjkuMyAyOTQuNiAyMDAuOSAyMzcuMiAzMzAuOCAxNjYuNSAzMzAuOHoiXX0sU2J0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmlzY29wZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkYSIsIk0zNzAgNjMuNmMtMzguNi00MS04OS41LTYzLjYtMTQzLjQtNjMuNi0xMTQuNyAwLTIwOC4xIDk2LjItMjA4LjEgMjE0LjQgMCA3NS4xIDU3LjggMTU5LjggODIuNyAxOTIuNyAzNi42IDQ4LjQgOTEuNCAxMDQuOSAxMjUuNCAxMDQuOSA0MS42IDAgMTEyLjktOTQuMiAxMjAuOS0xMDUgMjQuNi0zMy4xIDgyLTExOC4zIDgyLTE5Mi42IDAtNTYuNS0yMS4xLTExMC4xLTU5LjUtMTUwLjh6TTIyNi42IDQ5My45Yy00Mi41IDAtMTkwLTE2Ny4zLTE5MC0yNzkuNCAwLTEwNy40IDgzLjktMTk2LjMgMTkwLTE5Ni4zIDEwMC44IDAgMTg0LjcgODkgMTg0LjcgMTk2LjMgLjEgMTEyLjEtMTQ3LjQgMjc5LjQtMTg0LjcgMjc5LjR6TTMzOCAyMDYuOGMwIDU5LjEtNTEuMSAxMDkuNy0xMTAuOCAxMDkuNy0xMDAuNiAwLTE1MC43LTEwOC4yLTkyLjktMTgxLjhsMCAuNGMwIDI0LjUgMjAuMSA0NC40IDQ0LjggNDQuNHM0NC44LTE5LjkgNDQuOC00NC40YzAtMTguMi0xMS4xLTMzLjgtMjYuOS00MC43IDc2LjYtMTkuMiAxNDEgMzkuMyAxNDEgMTEyLjR6Il19LHpidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJleHBlZGl0ZWRzc2wiLGljb246WzUxMiw1MTIsW10sImYyM2UiLCJNMjU2IDQzLjRhMjEyLjYgMjEyLjYgMCAxIDAgMCA0MjUuMiAyMTIuNiAyMTIuNiAwIDEgMCAwLTQyNS4yek0xNTguNiAxNzYuM2MwLTUzLjcgNDMuNy05Ny40IDk3LjQtOTcuNHM5Ny40IDQzLjcgOTcuNCA5Ny40bDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42YzAtODIuMS0xMjQtODIuMS0xMjQgMGwwIDI2LjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNiAuMiAwek0zOTcuNyAzODBjMCA5LjctOCAxNy43LTE3LjcgMTcuN2wtMjQ4IDBjLTkuNyAwLTE3LjctOC0xNy43LTE3LjdsMC0xNDEuN2MwLTkuNyA4LTE3LjcgMTcuNy0xNy43bDI0OCAwYzkuNyAwIDE3LjcgOCAxNy43IDE3LjdsMCAxNDEuN3ptLTI0OC0xMzcuM2wwIDEzMi45YzAgMi41LTEuOSA0LjQtNC40IDQuNGwtOC45IDBjLTIuNSAwLTQuNC0xLjktNC40LTQuNGwwLTEzMi45YzAtMi41IDEuOS00LjQgNC40LTQuNGw4LjkgMGMyLjUgMCA0LjQgMS45IDQuNCA0LjR6bTE0MS43IDQ4LjdjMCAxMy03LjIgMjQuNC0xNy43IDMwLjRsMCAzMS42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTMxLjZjLTEwLjUtNi4xLTE3LjctMTcuNC0xNy43LTMwLjQgMC0xOS43IDE1LjgtMzUuNCAzNS40LTM1LjRzMzUuNSAxNS44IDM1LjUgMzUuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3LjdhMjMwLjMgMjMwLjMgMCAxIDEgMCA0NjAuNiAyMzAuMyAyMzAuMyAwIDEgMSAwLTQ2MC42eiJdfSxDYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmFwc3RlciIsaWNvbjpbNTEyLDUxMixbXSwiZjNkMiIsIk0zMDYuMyAzNzMuNmMtMTQuMiAxMy42LTMxLjMgMjQuMS01MC40IDMwLjUtMTktNi40LTM2LjItMTYuOS01MC4zLTMwLjVsMTAwLjcgMHptNDQtMTk5LjZjMjAtMTYuOSA0My42LTI5LjIgNjkuNi0zNi4ybDAgMTYxLjJjMCAyMTkuNC0zMjggMjE3LjYtMzI4IC4zbDAtMTYxLjZjMjUuOSA2LjkgNDkuNiAxOS42IDY5LjUgMzYuNCA1Ni44LTQwIDEzMi41LTM5LjkgMTg4LjktLjF6TTE0MS41IDExNS41YzY0LjQtNjAgMTY0LjMtNjAuMSAyMjguOS0uMi03LjEgMy41LTEzLjkgNy4zLTIwLjYgMTEuNS01OC43LTMwLjUtMTI5LjItMzAuNC0xODcuOSAuMS02LjMtNC0xMy45LTguMi0yMC40LTExLjR6TTUxLjggOTMuMmwwIDY5LjNjLTU4LjQgMzYuNS01OC40IDEyMS4xIC4xIDE1OC4zIDI2LjQgMjQ1LjEgMzgxLjcgMjQwLjMgNDA3LjYgMS41bC4zLTEuN2M1OC43LTM2LjMgNTguOS0xMjEuNyAuMi0xNTguMmwwLTY5LjJjLTE3LjMgLjUtMzQgMy01MC4xIDcuNC04Mi05MS41LTIyNS41LTkxLjUtMzA3LjUgLjEtMTYuMy00LjQtMzMuMS03LTUwLjYtNy41ek0yNjcuMiAzNTJzMzYtLjMgNjEuMy0xLjVjMTAuMi0uNSAyMS4xLTQgMjUuNS02LjUgMjYuMy0xNS4xIDI1LjQtMzkuMiAyNi4yLTQ3LjQtNzkuNS0uNi05OS45LTMuOS0xMTMgNTUuNHpNMTMxLjcgMjk2LjdjLjggOC4yLS4xIDMyLjMgMjYuMiA0Ny40IDQuNCAyLjUgMTUuMiA2IDI1LjUgNi41IDI1LjMgMS4xIDYxLjMgMS41IDYxLjMgMS41LTEzLjItNTkuNC0zMy43LTU2LjEtMTEzLTU1LjR6TTMwMC44IDQyMC4xYy0zLjItNS4zLTYuOS03LjMtNi45LTcuMy0yNC44IDcuMy01Mi4yIDYuOS03NS45IDAgMCAwLTIuOSAxLjUtNi40IDYuNi0yLjggNC4xLTMuNyA5LjYtMy43IDkuNiAyOS4xIDE3LjYgNjcuMSAxNy42IDk2LjIgMC0uMS0uMS0uMy00LTMuMy04Ljl6Il19LF9idD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWxpY2lvdXMiLGljb246WzQ0OCw1MTIsW10sImYxYTUiLCJNNDQ2LjYgNjhjLS40LTEuNS0uOS0zLTEuNC00LjUtLjktMi41LTItNC44LTMuMy03LjEtMS40LTIuNC0zLTQuOC00LjctNi45LTIuMS0yLjUtNC40LTQuOC02LjktNi44LTEuMS0uOS0yLjItMS43LTMuMy0yLjUtMS4zLS45LTIuNi0xLjctNC0yLjQtMS44LTEtMy42LTEuOC01LjUtMi41LTEuNy0uNy0zLjUtMS4zLTUuNC0xLjctMy44LTEtNy45LTEuNS0xMi0xLjVsLTM1MiAwQzIxLjYgMzIgLjEgNTMuNSAuMSA4MGwwIDM1MmMwIDQuMSAuNSA4LjIgMS41IDEyIDIgNy43IDUuOCAxNC42IDExIDIwLjMgMSAxLjEgMi4xIDIuMiAzLjMgMy4zIDUuNyA1LjIgMTIuNiA5IDIwLjMgMTEgMy44IDEgNy45IDEuNSAxMiAxLjVsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTIuMWMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNi4xIDQzMmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtMTkyLTE5MiAwIDAtMTc2YzAtOC44IDcuMi0xNiAxNi0xNmwxNzYgMCAwIDE5MiAxOTIgMCAwIDE3NnoiXX0sVGJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1aWxkZWQiLGljb246WzQ0OCw1MTIsW10sImUwN2UiLCJNNDQzLjkgNjRMNSA2NGMwIDEwMy4zIDIyLjIgMTgwLjEgNDMuNCAyMjIuNCA2NC4xIDEyNy44IDE3NiAxNjEuNiAxNzcuMyAxNjEuNiA1NS43LTIwLjUgMTA0LjUtNTYuMyAxNDAuNi0xMDMuNSAyNS45LTMzLjkgNTMuMS04Ny4yIDY1LjktMTQ1LjhsLTI1OS45IDBjNC4xIDM2LjQgMjIuMiA2Ny45IDQ1LjEgODYuOWw4OC42IDBjLTE3IDI4LjItNDguMiA1NC40LTgwLjUgNjkuNS0zMS4yLTEzLjMtNjkuMS00Ni41LTk2LjUtOTguNC0yNi43LTUzLjgtMjcuMS0xMDUuOS0yNy4xLTEwNS45bDMzNi4xIDBjNC0yOC44IDUuOS01Ny45IDUuOS04Ni45eiJdfSxMYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2JzaWRpYW4iLGljb246WzM4NCw1MTIsW10sImU4NzkiLCJNMTQyLjMgMzIwLjNjMzYuMS04LjIgNzAuMy0xMSAxMDEuMyAuNyAzMS44IDExLjkgNjEuNyAzOS42IDg2LjcgOTYtOC4xIDE3LjctMTIuNCAzNi45LTE0LjcgNTMuOC0zLjEgMjIuOS0yNS40IDQwLjctNDcuNyAzNC42LTMxLjctOC43LTY4LjMtMjIuMy0xMDEuMy0yNC45LTQuNC0uMy01MC42LTMuOC01MC42LTMuOC0xLjctLjEtMy40LS40LTUuMS0uOCAzMS41LTY0LjIgMzguMi0xMTUuMSAzMS4zLTE1NS40ek01NSAyMTkuNWMyMi4zIDE0LjggNDkuNSAzNy44IDY0LjEgNzMuNiAxNi4xIDM5LjQgMTcuOCA5NS43LTIxLjYgMTc2LjEtMS0uOC0yLjEtMS43LTMtMi43TDcuNCAzNzYuOGMtOS41LTkuOC0xMi4xLTI0LjQtNi41LTM2LjkgLjYtMS4zIDQ0LjYtOTguMyA1NC4xLTEyMC40em0yNjQuMy05MS4zYzQuOSA2LjIgNy40IDE0IDcuNCAyMS45IC4xIDIwLjggMS44IDYzLjYgMTMuMyA5MS4yIDExLjIgMjYuOCAzMS44IDU1LjggNDIuNSA3MCA0LjEgNS41IDQuOCAxMi45IDEuMyAxOC43LTcuNiAxMi44LTIyLjYgMzcuNS00My44IDY5LjItLjMgLjQtLjYgLjktLjggMS4zLTI1LjItNTIuMi01NS45LTgwLjctOTAuNC05My42LTkuNi0zLjYtMTkuNS02LTI5LjQtNy4zLTE3LjgtNDUuOC0yMy4yLTc5LjctMjItMTA2LjQgMS4yLTI3LjQgOS4yLTQ3LjggMTguMi02Ni4zIDguOS0xOC4xIDE5LjgtMzUuOSAyNC45LTU1LjcgMy4yLTEyLjUgNC4yLTI1LjggMS43LTQwLjlsNzcuMSA5OHpNMTg0LjIgMTQuMWMxMC4zLTkuMiAyNC42LTEwLjggMzYuMy01LjUgOS42IDI0LjYgOS43IDQyLjggNS42IDU4LjgtNC42IDE3LjgtMTQuMSAzMy0yMy45IDUyLjgtOS42IDE5LjUtMTguNCA0Mi0xOS43IDcyLjMtMS4yIDI3LjkgNC4xIDYxLjkgMjAuNCAxMDUuOC0yMS0uNi00Mi41IDIuNi02My43IDcuNC0xLjctNi40LTMuOC0xMi40LTYuMS0xOC4yLTE3LjMtNDIuMi00OS45LTY3LjktNzQuMS04My4zIDMuMS0xOC43IDguMi01NS40IDExLjYtNzcuNSAxLjItNy42IDQuOS0xNC42IDEwLjctMTkuOEwxODQuMiAxNC4xeiJdfSwkYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGJveCIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMiIsIk0zNjkuOSAzMTguMmM0NC4zIDU0LjMgNjQuNyA5OC44IDU0LjQgMTE4LjctNy45IDE1LjEtNTYuNyA0NC42LTkyLjYgNTUuOS0yOS42IDkuMy02OC40IDEzLjMtMTAwLjQgMTAuMi0zOC4yLTMuNy03Ni45LTE3LjQtMTEwLjEtMzktMjcuOS0xOC4yLTM0LjItMjUuNy0zNC4yLTQwLjYgMC0yOS45IDMyLjktODIuMyA4OS4yLTE0Mi4xIDMyLTMzLjkgNzYuNS03My43IDgxLjQtNzIuNiA5LjQgMi4xIDg0LjMgNzUuMSAxMTIuMyAxMDkuNXpNMTg4LjYgMTQzLjhjLTI5LjctMjYuOS01OC4xLTUzLjktODYuNC02My40LTE1LjItNS4xLTE2LjMtNC44LTI4LjcgOC4xLTI5LjIgMzAuNC01My41IDc5LjctNjAuMyAxMjIuNC01LjQgMzQuMi02LjEgNDMuOC00LjIgNjAuNSA1LjYgNTAuNSAxNy4zIDg1LjQgNDAuNSAxMjAuOSA5LjUgMTQuNiAxMi4xIDE3LjMgOS4zIDkuOS00LjItMTEtLjMtMzcuNSA5LjUtNjQgMTQuMy0zOSA1My45LTExMi45IDEyMC4zLTE5NC40em0zMTEuNiA2My41Yy0xNi45LTgwLTY3LjUtMTMwLjMtNzQuNi0xMzAuMy03LjMgMC0yNC4yIDYuNS0zNiAxMy45LTIzLjMgMTQuNS00MSAzMS40LTY0LjMgNTIuOCA0Mi40IDUzLjMgMTAyLjIgMTM5LjQgMTIyLjkgMjAyLjMgNi44IDIwLjcgOS43IDQxLjEgNy40IDUyLjMtMS43IDguNS0xLjcgOC41IDEuNCA0LjYgNi4xLTcuNyAxOS45LTMxLjMgMjUuNC00My41IDcuNC0xNi4yIDE1LTQwLjIgMTguNi01OC43IDQuMy0yMi41IDMuOS03MC44LS44LTkzLjR6TTE0MS4zIDQzYzQ3LjctMi41IDEwOS43IDM0LjUgMTE0LjMgMzUuNCAuNyAuMSAxMC40LTQuMiAyMS42LTkuNyA2My45LTMxLjEgOTQtMjUuOCAxMDcuNC0yNS4yLTYzLjktMzkuMy0xNTIuNy01MC0yMzMuOS0xMS43LTIzLjQgMTEuMS0yNCAxMS45LTkuNCAxMS4yeiJdfSxEYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW50YXBwZCIsaWNvbjpbNjQwLDUxMixbXSwiZjQwNSIsIk00MDEuNSA0OS45QzMyMS43IDIxMCAzMTYuOSAyMDIuNCAzMTMuNiAyMjMuMWwtNS4yIDMyLjhjLTEuOSAxMi02LjYgMjMuNS0xMy43IDMzLjRMMTQ1LjggNDk3LjFjLTcuNiAxMC42LTIwLjQgMTYuMi0zMy40IDE0LjYtNDAuMy01LTc3LjgtMzIuMi05NS4zLTY4LjUtNS43LTExLjgtNC41LTI1LjggMy4xLTM2LjRMMTY5LjEgMTk4LjljNy4xLTkuOSAxNi40LTE4IDI3LjItMjMuN2wyOS4zLTE1LjVjMTguNS05LjggOS43LTExLjkgMTM1LjYtMTM4LjkgMS00LjggMS03LjMgMy42LTggMy0uNyA2LjYtMSA2LjMtNC42bC0uNC00LjZjLS4yLTEuOSAxLjMtMy42IDMuMi0zLjYgNC41LS4xIDEzLjIgMS4yIDI1LjYgMTAgMTIuMyA4LjkgMTYuNCAxNi44IDE3LjcgMjEuMSAuNiAxLjgtLjYgMy43LTIuNCA0LjJsLTQuNSAxLjFjLTMuNCAuOS0yLjUgNC40LTIuMyA3LjQgLjEgMi44LTIuMyAzLjYtNi41IDYuMXpNMjMwLjMgMzYuNGMzLjQgLjkgMi41IDQuNCAyLjMgNy40LS4yIDIuNyAyLjEgMy41IDYuNCA2IDcuOSAxNS45IDE1LjMgMzAuNSAyMi4yIDQ0IC43IDEuMyAyLjMgMS41IDMuMyAuNSAxMS4yLTEyIDI0LjYtMjYuMiA0MC41LTQyLjYgMS4zLTEuNCAxLjQtMy41IC4xLTQuOS04LTguMi0xNi41LTE2LjktMjUuNi0yNi4xLTEtNC43LTEtNy4zLTMuNi04LTMtLjgtNi42LTEtNi4zLTQuNiAuMy0zLjMgMS40LTguMS0yLjgtOC4yLTQuNS0uMS0xMy4yIDEuMS0yNS42IDEwLTEyLjMgOC45LTE2LjQgMTYuOC0xNy43IDIxLjEtMS40IDQuMiAzLjYgNC42IDYuOCA1LjR6TTYyMC4yIDQwNi43TDQ3MS40IDE5OC44Yy0xMy4yLTE4LjUtMjYuNi0yMy40LTU2LjQtMzkuMS0xMS4yLTUuOS0xNC4yLTEwLjktMzAuNS0yOC45LTEtMS4xLTIuOS0uOS0zLjYgLjUtNDYuMyA4OC44LTQ3LjEgODIuOC00OSA5NC44LTEuNyAxMC43LTEuMyAyMCAuMyAyOS44IDEuOSAxMiA2LjYgMjMuNSAxMy43IDMzLjRMNDk0LjggNDk3LjJjNy42IDEwLjYgMjAuMiAxNi4yIDMzLjEgMTQuNyA0MC4zLTQuOSA3OC0zMiA5NS43LTY4LjYgNS40LTExLjkgNC4zLTI1LjktMy40LTM2LjZ6Il19LEFidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cy1nIixpY29uOls2NDAsNTEyLFtdLCJmMGQ1IiwiTTM4Ni4zIDIyOC41YzEuOCA5LjcgMy4xIDE5LjQgMy4xIDMyIDAgMTA5LjgtNzMuNiAxODcuNS0xODQuNCAxODcuNS0xMDYuMSAwLTE5Mi04NS45LTE5Mi0xOTJTOTguOSA2NCAyMDUgNjRjNTEuOSAwIDk1LjEgMTguOSAxMjguNiA1MC4zbC01Mi4xIDUwYy0xNC4xLTEzLjYtMzktMjkuNi03Ni41LTI5LjYtNjUuNSAwLTExOC45IDU0LjItMTE4LjkgMTIxLjNTMTM5LjUgMzc3LjMgMjA1IDM3Ny4zYzc2IDAgMTA0LjUtNTQuNyAxMDktODIuOGwtMTA5IDAgMC02NiAxODEuMyAwIDAgMHptMTg1LjQgNi40bDAtNTUuNy01NiAwIDAgNTUuNy01NS43IDAgMCA1NiA1NS43IDAgMCA1NS43IDU2IDAgMC01NS43IDU1LjcgMCAwLTU2LTU1LjcgMHoiXX0sUGJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1Yi1hbHQiLGljb246WzUxMiw1MTIsW10sImYxMTMiLCJNMjAyLjEgMzI4LjdjMCAyMC45LTEwLjkgNTUuMS0zNi43IDU1LjFzLTM2LjctMzQuMi0zNi43LTU1LjEgMTAuOS01NS4xIDM2LjctNTUuMSAzNi43IDM0LjIgMzYuNyA1NS4xek00OTYgMjc4LjJjMCAzMS45LTMuMiA2NS43LTE3LjUgOTUtMzcuOSA3Ni42LTE0Mi4xIDc0LjgtMjE2LjcgNzQuOC03NS44IDAtMTg2LjIgMi43LTIyNS42LTc0LjgtMTQuNi0yOS0yMC4yLTYzLjEtMjAuMi05NSAwLTQxLjkgMTMuOS04MS41IDQxLjUtMTEzLjYtNS4yLTE1LjgtNy43LTMyLjQtNy43LTQ4LjggMC0yMS41IDQuOS0zMi4zIDE0LjYtNTEuOCA0NS4zIDAgNzQuMyA5IDEwOC44IDM2IDI5LTYuOSA1OC44LTEwIDg4LjctMTAgMjcgMCA1NC4yIDIuOSA4MC40IDkuMiAzNC0yNi43IDYzLTM1LjIgMTA3LjgtMzUuMiA5LjggMTkuNSAxNC42IDMwLjMgMTQuNiA1MS44IDAgMTYuNC0yLjYgMzIuNy03LjcgNDguMiAyNy41IDMyLjQgMzkgNzIuMyAzOSAxMTQuMnptLTY0LjMgNTAuNWMwLTQzLjktMjYuNy04Mi42LTczLjUtODIuNi0xOC45IDAtMzcgMy40LTU2IDYtMTQuOSAyLjMtMjkuOCAzLjItNDUuMSAzLjItMTUuMiAwLTMwLjEtLjktNDUuMS0zLjItMTguNy0yLjYtMzctNi01Ni02LTQ2LjggMC03My41IDM4LjctNzMuNSA4Mi42IDAgODcuOCA4MC40IDEwMS4zIDE1MC40IDEwMS4zbDQ4LjIgMGM3MC4zIDAgMTUwLjYtMTMuNCAxNTAuNi0xMDEuM3ptLTgyLjYtNTUuMWMtMjUuOCAwLTM2LjcgMzQuMi0zNi43IDU1LjFzMTAuOSA1NS4xIDM2LjcgNTUuMSAzNi43LTM0LjIgMzYuNy01NS4xLTEwLjktNTUuMS0zNi43LTU1LjF6Il19LEVidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZXQtcG9ja2V0IixpY29uOls0NDgsNTEyLFtdLCJmMjY1IiwiTTQwNy42IDY0bC0zNjcgMEMxOC41IDY0IDAgODIuNSAwIDEwNC42TDAgMjM5LjhDMCAzNjQuNSA5OS43IDQ2NCAyMjQuMiA0NjQgMzQ4LjIgNDY0IDQ0OCAzNjQuNSA0NDggMjM5LjhsMC0xMzUuMkM0NDggODIuMiA0MzAuMyA2NCA0MDcuNiA2NHptLTE2MiAyNjguNWMtMTIuNCAxMS44LTMxLjQgMTEuMS00Mi40IDAtMTEzLjctMTA4LjktMTE0LjktMTA1LjEtMTE0LjktMTIzLjIgMC0xNi45IDEzLjgtMzAuNyAzMC43LTMwLjcgMTcgMCAxNi4xIDMuOCAxMDUuMiA4OS4zIDkwLjYtODYuOSA4OC42LTg5LjMgMTA1LjUtODkuM3MzMC43IDEzLjggMzAuNyAzMC43YzAgMTcuOC0yLjkgMTUuNy0xMTQuOCAxMjMuMnoiXX0sSWJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdsaWRlIixpY29uOls0NDgsNTEyLFtdLCJmMmE1IiwiTTI1Mi44IDE0OC42YzAgOC44LTEuNiAxNy43LTMuNCAyNi40LTUuOCAyNy44LTExLjYgNTUuOC0xNy4zIDgzLjYtMS40IDYuMy04LjMgNC45LTEzLjcgNC45LTIzLjggMC0zMC41LTI2LTMwLjUtNDUuNSAwLTI5LjMgMTEuMi02OC4xIDM4LjUtODMuMSA0LjMtMi41IDkuMi00LjIgMTQuMS00LjIgMTEuNCAwIDEyLjMgOC4zIDEyLjMgMTcuOXpNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzg0IDI2N2MwLTUuMS0yMC44LTM3LjctMjUuNS0zOS41LTIuMi0uOS03LjItMi4zLTkuNi0yLjMtMjMuMSAwLTM4LjcgMTAuNS01OC4yIDIxLjVsLS41LS41YzQuMy0yOS40IDE0LjYtNTcuMiAxNC42LTg3LjQgMC00NC42LTIzLjgtNjIuNy02Ny41LTYyLjctNzEuNyAwLTEwOCA3MC44LTEwOCAxMjMuNSAwIDU0LjcgMzIgODUgODYuMyA4NSA3LjUgMCA2LjktLjYgNi45IDIuMy0xMC41IDgwLjMtNTYuNSA4Mi45LTU2LjUgNTguOSAwLTI0LjQgMjgtMzYuNSAyOC4zLTM4LS4yLTcuNi0yOS4zLTE3LjItMzYuNy0xNy4yLTIxLjEgMC0zMi43IDMzLTMyLjcgNTAuNiAwIDMyLjMgMjAuNCA1NC43IDUzLjMgNTQuNyA0OC4yIDAgODMuNC00OS43IDk0LjMtOTEuNyA5LjQtMzcuNyA3LTM5LjQgMTIuMy00Mi4xIDIwLTEwLjEgMzUuOC0xNi44IDU4LjQtMTYuOCAxMS4xIDAgMTkgMi4zIDM2LjcgNS4yIDEuOCAuMSA0LjEtMS43IDQuMS0zLjV6Il19LE5idD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaXR5IixpY29uOls1MTIsNTEyLFtdLCJmMzdhIiwiTTg2LjUgNjcuMmM5NS40LTg5LjIgMjQ2LjEtOTEuMiAzNDMuMSAzLjggMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwLTExMi4yLTMzLjktMTc1LjgtMTQ5LjctMTQ3LjUtMjYxIDUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOHMtMTQuOCA2LjctMTQuOCAxNC44bC0uMiA3MS44YzAgOC4yIDYuNiAxNC44IDE0LjggMTQuOHMxNC44LTYuNiAxNC44LTE0Ljh6bTcxLTI2OWMyLjEgOTAuOSA0LjcgMTMxLjktODUuNSAxMzIuNS05Mi41LS43LTg2LjktNDQuMy04NS41LTEzMi41IDAtMjEuOC0zMi41LTE5LjYtMzIuNSAwbDAgNzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMgLjggMTE4LTIwLjggMTE4LTkwLjFsMC03MS42YzAtMTkuNi0zMi41LTIxLjgtMzIuNSAweiJdfSxSYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3BleHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjJkZSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00ODAgMGEyMjQgMjI0IDAgMSAwIC00NDggMCAyMjQgMjI0IDAgMSAwIDQ0OCAwek0xNjAuOSAxMjQuNmw4Ni45IDM3LjEtMzcuMSA4Ni45LTg2LjktMzcuMSAzNy4xLTg2Ljl6bTExMCAxNjkuMWw0Ni42IDk0LTE0LjYgMC01MC0xMDAtNDguOSAxMDAtMTQgMCA1MS4xLTEwNi45LTIyLjMtOS40IDYtMTQgNjguNiAyOS4xLTYgMTQuMy0xNi41LTcuMXpNMjU5LjEgMTc3LjRsNjguNiAyOS40LTI5LjQgNjguMy02OC4zLTI5LjEgMjkuMS02OC42em04MC4zIDQyLjlsNTQuNiAyMy4xLTIzLjQgNTQuMy01NC4zLTIzLjEgMjMuMS01NC4zeiJdfSxPYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVnYXBvcnQiLGljb246WzUxMiw1MTIsW10sImY1YTMiLCJNMjIyLjUgMjA5LjZsMCA2Ni4yIDMzLjUgMzMuNSAzMy4zLTMzLjMgMC02Ni40LTMzLjQtMzMuNC0zMy40IDMzLjR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAxLjEgNDIyLjRsLTI2LjEgMTkuMi0yNi0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNCAzMy40IDAgNjUuNS0yNi4yIDE5LjItMjYuMS0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNSAzMy40IDAgNjUuNS0yNi4xIDE5LjItMjYuMS0xOS4yIDAtODcgNTkuNS01OS41IDAtODcuOSA1OS41LTU5LjUgMC03NS42IDI2LjEtMTkuMiAyNi4xIDE5LjIgMCA3NS42IDU5LjUgNTkuNSAwIDg3LjYgNTkuNyA1OS43IDAgODcuMS0uMSAweiJdfSxGYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVldGNvZGUiLGljb246WzQ0OCw1MTIsW10sImU4NmEiLCJNMjM1LjQgOS4zQzI0Ni41LTIuNSAyNjUuMS0zLjIgMjc3IDcuOXMxMi41IDI5LjggMS40IDQxLjZsLTQzIDQ2YzIxLjUgMy4zIDQyLjEgMTEuOCA1OS4xIDI1LjZsNzQuNiA2MC4zYzEyLjYgMTAuMiAxNC42IDI4LjggNC40IDQxLjRzLTI4LjcgMTQuNi00MS40IDQuNGwtNzQuNi02MC4zYy0yNi4yLTIxLjEtNzEuOS0xOC4yLTk0LjUgNS45TDgxIDI2MWMtMjEuNSAyMy0xOS4xIDYwIDUuNiA4NC4ybDkxLjIgODkuNGMyNC45IDI0IDY1LjYgMjQgOTAuMS0uNGw1MS4xLTUxYzExLjUtMTEuNSAzMC4xLTExLjUgNDEuNiAuMXMxMS40IDMwLjItLjEgNDEuN2wtNTEuMSA1MWMtNDcuMSA0Ny4xLTEyNCA0Ny43LTE3MS45IDEuNmwtOTItOTAuMkMtMS40IDM0MS4zLTYgMjY3LjkgMzggMjIwLjdMMjM1LjQgOS4zek00MTEuNyAyNzMuMmMxNi4yIDAgMjkuNCAxMy4yIDI5LjQgMjkuNXMtMTMuMiAyOS41LTI5LjQgMjkuNWwtMjE2LjkgMGMtMTYuMiAwLTI5LjQtMTMuMi0yOS40LTI5LjVzMTMuMi0yOS41IDI5LjQtMjkuNWwyMTYuOSAweiJdfSxCYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWRiIixpY29uOls1NzYsNTEyLFtdLCJmOGNhIiwiTTE3LjQgMTYwLjRsLTEwLjQgMTkxLjYgNDMuOSAwIDUuNi03OS44IDI3LjkgNzkuOCA0NC43IDAgMjUuNS03Ny40IDQuOCA3Ny40IDQ1LjUgMC0xMi44LTE5MS42LTQ1LjUgMC00MC43IDExNy4zLTQyLjMtMTE3LjMtNDYuMyAwem0yODEgMGwtNDcuOSAwIDAgMTkxLjYgNDcuOSAwczk1IC44IDk0LjItOTUuOGMtLjgtOTQuMi05NC4yLTk1LjgtOTQuMi05NS44bDAgMHptLTEuMiAxNDYuNWwwLTEwMi4xczQ2IDQuMyA0Ni44IDUwLjYtNDYuOCA1MS41LTQ2LjggNTEuNWwwIDB6bTIzOC4zLTc0LjJjNy4yLTExLjQgMTAtMjUgOC0zOC4zLTUuMy0zNS44LTU1LjEtMzQuMy01NS4xLTM0LjNsLTUxLjkgMCAwIDE5MS42IDQ1LjUgMHM4NyA0LjggODctNjMuOGMwLTQzLjEtMzMuNS01NS4xLTMzLjUtNTUuMWwwIDB6bS01MS45LTMxLjlzMTMuNi0xLjYgMTYgOS42YzEuNCA2LjctNCAxMi00IDEybC0xMiAwIDAtMjEuNnptLS4xIDEwOS41bC4xLTI0LjkgMC0xOC4yIC4xIDBzNDEuNi00LjcgNDEuMiAyMi40Yy0uMyAyNS43LTQxLjMgMjAuNy00MS4zIDIwLjdsMCAweiJdfSxIYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFnZTQiLGljb246WzUxMiw1MTIsW10sImYzZDciLCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4YzIwLjkgMCA0MS4zIDIuNiA2MC43IDcuNUw1MC4zIDM5MiAyNTYgMzkyIDI1NiA1MDR6bTAtMTQzLjZsMC0yMTMuNi0xNDkuNCAyMTMuNiAxNDkuNCAwek0zNTIgMzkybDAgOTIuN2M0NS43LTE5LjIgODQuNS01MS43IDExMS40LTkyLjdMMzUyIDM5MnptNTcuNC0xMzguMmwtMjEuMiA4LjQgMjEuMiA4LjMgMC0xNi43em0tMjAuMyA1NC41Yy02LjcgMC04IDYuMy04IDEyLjlsMCA3LjcgMTYuMiAwIDAtMTBjMC01LjktMi4zLTEwLjYtOC4yLTEwLjZ6TTUwNCAyNTZjMCAzNy4zLTguMiA3Mi43LTIzIDEwNC40bC0xMjkgMCAwLTMzMy4xQzQ0MS4zIDY0LjggNTA0IDE1My4xIDUwNCAyNTZ6TTM2OC40IDE0My42bDY4LjIgMCAwLTQ3LjYtMTMuOSAwIDAgMzIuNi0xMy45IDAgMC0yOS42LTEzLjkgMCAwIDI5LjYtMTIuNyAwIDAtMzIuNi0xMy45IDAgMCA0Ny42IC4xIDB6bTY4LjEgMTg1LjNsLTI2LjUgMCAwLTExYzAtMTUuNC01LjYtMjUuMi0yMC45LTI1LjItMTUuNCAwLTIwLjcgMTAuNi0yMC43IDI1LjlsMCAyNS4zIDY4LjIgMCAwLTE1LS4xIDB6bTAtMTAzbC02OC4yIDI5LjcgMCAxMi40IDY4LjIgMjkuNSAwLTE2LjYtMTQuNC01LjcgMC0yNi41IDE0LjQtNS45IDAtMTYuOXptLTQuOC02OC41bC0zNS42IDAgMCAyNi42IDEzLjkgMCAwLTEyLjIgMTEgMGM4LjYgMTUuOCAxLjMgMzUuMy0xOC42IDM1LjMtMjIuNSAwLTI4LjMtMjUuMy0xNS41LTM3LjdsLTExLjYtMTAuNmMtMTYuMiAxNy41LTEyLjIgNjMuOSAyNy4xIDYzLjkgMzQgMCA0NC43LTM1LjkgMjkuMy02NS4zeiJdfSxxYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlLXJlZC15ZXRpIixpY29uOls1MTIsNTEyLFtdLCJmNjlkIiwiTTQ4OC43IDI0MS43bDIwLjcgNy4xYy05LjYtMjMuOS0yMy45LTM3LTMxLjctNDQuOGw3LjEtMTguMmMuMiAwIDEyLjMtMjcuOC0yLjUtMzAuNy0uNi0xMS4zLTYuNi0yNy0xOC40LTI3LTcuNi0xMC42LTE3LjctMTIuMy0zMC43LTUuOS05LjEgNC40LTE3LjYgMTAtMjUuMyAxNi41LTUuMy02LjQtMyAuNC0zLTI5LjgtMzcuMS0yNC4zLTQ1LjQtMTEuNy03NC44IDNsLjUgLjVjLTIyLTcuNy00NS4xLTEyLjItNjguNC0xMy4zLTUuNS04LjctMTguNi0xOS4xLTI1LjEtMjUuMWwyNC44IDcuMWMtNS41LTUuNS0yNi44LTEyLjktMzQuMi0xNS4yIDE4LjItNC4xIDI5LjgtMjAuOCA0Mi41LTMzLTM0LjktMTAuMS02Ny45LTUuOS05Ny45IDExLjhsMTItNDQuMi0xLjgtLjVjLTMxLjYgMjQuMi0zMyA0MS45LTMzLjcgNDUuNS0uOS0yLjQtNi4zLTE5LjYtMTUuMi0yNy0zLjMgOC4xLTMuNSAxNy4xLS41IDI1LjMgMyA4LjQgNS45IDE0LjggOC40IDE4LjktMTYtMy4zLTI4LjMtNC45LTQ5LjIgMGwtMy43IDAgMzMgMTQuM2MtMjAuMiAxOC45LTM2LjEgNDEuOS00Ni43IDY3LjRsLTEuNyA4LjQgMS43IDEuNyA3LjYtNC43Yy0zLjMgMTEuNi01LjMgMTkuNC02LjYgMjUuOC0xMC45IDEyLjItMjAuMiAyNS44LTI3LjggNDAuMy0xNSAxLTMxLjggMTAuOC00MC4zIDE0LjNsMyAzLjQgMjguOCAxYy0uNSAxLS43IDIuMi0xLjIgMy4yLTcuMyA2LjQtMzkuOCAzNy43LTMzIDgwLjdsMjAuMi0yMi40Yy41IDEuNyAuNyAzLjQgMS4yIDUuMiAwIDI1LjUgLjQgODkuNiA2NC45IDE1MC41IDQzLjYgNDAgOTYgNjAuMiAxNTcuNSA2MC4yIDEyMS43IDAgMjIzLTg3LjMgMjIzLTIxMS41IDYuOC05LjctMS4yIDMgMTYuNy0yNS4xbDEzIDE0LjMgMi41LS41Yy0xLjgtMTEuNy00LjgtMjMuMS04LjktMzQuMi0xLjUtNC44LTMuOC05LjMtNi44LTEzLjNsMCAwek0zOTguNSAxMTEuMmwtLjUgMjEuOWM1LjUgMTguMSAxNi45IDE3LjIgMjIuNCAxNy4ybC0zLjQtNC43IDIyLjQtNS40Yy05IC41LTE4IC41LTI3IDAgMTIuOC0yLjEgMzMuMy0yOSA0My0xMS4zIDMuNCA3LjYgNi40IDE3LjIgOS4zIDI3LjhsMS43LTUuOWMtMS4zLTUtMS44LTEwLjEtMS43LTE1LjIgNS40IC41IDguOCAzLjQgOS4zIDEwLjEgLjUgNi40IDEuNyAxNC44IDMuNCAyNS4zbDQuNy0xMS4zYzQuNiAwIDQuNS0zLjYtMi41IDIwLjctMjAuOS04LjctMzUuMS04LjQtNDYuNS04LjRsMTguMi0xNmMtMjUuMyA4LjItMzMgMTAuOC01NC44IDIwLjktMS4xLTUuNC01LTEzLjUtMTYtMTkuOS0zLjIgMy44LTIuOCAuOS0uNyAxNC44bC0yLjUgMGMtMS4yLTguMi00LjEtMTYtOC40LTIzLjFsNC4yLTMuNGM4LjQtNy4xIDExLjgtMTQuMyAxMC42LTIxLjktLjUtNi40LTUuNC0xMy41LTEzLjUtMjAuNyA1LjYtMy40IDE1LjItLjQgMjguMyA4LjV6bS0zOS42LTEwLjFjMi43IDEuOSAxMS40IDUuNCAxOC45IDE3LjIgNC4yIDguNCA0IDkuOCAzLjQgMTEuMS0uNSAyLjQtLjUgNC4zLTMgNy4xLTEuNyAyLjUtNS40IDQuNy0xMS44IDcuNi03LjYtMTMtMTYuNS0yMy42LTI3LjgtMzEuMmwyMC4zLTExLjh6bS0yNjcuNCA0MmwxLjItMS43YzEuMi0yLjkgNC4yLTcuNiA5LjMtMTUuMmwyLjUtMy40LTEzIDEyLjMgNS40LTQuNy0xMC4xIDkuMy00LjIgMS4yYzEyLjMtMjQuMSAyMy4xLTQxLjMgMzIuNS01MC4yIDkuMy05LjMgMTYtMTYgMjAuMi0xOS40bC02LjQgMS4yYy0xMS4zLTQuMi0xOS40LTcuMS0yNC44LTguNCAyLjUtLjUgMy43LS41IDMuMi0uNSAxMC4zIDAgMTcuNSAuNSAyMC45IDEuMiA1LjIgMS43IDEwLjYgMi41IDE2IDIuNWwuNS0xLjctOC40LTM1LjggMTMuNSAyOWMyLjgtNC40IDQuOC05LjIgNS45LTE0LjMgMS43LTYuNCA1LjQtMTMgMTAuMS0xOS40czcuNi0xMC42IDkuMy0xMS4zYy0yLjYgOC4zLTQuNyAxNi44LTYuNCAyNS4zbC0xLjcgNy4xLS41IDQuNyAyLjUgMi41YzIxLjktMTMuNSA0NS41LTE5LjQgNzEuMy0xOC45bDIxLjEgLjVjLTExLjggMTMuNS0yNy44IDIxLjktNDguNSAyNC44LTcuNyAxLjQtMTUuNiAyLjQtMjMuNCAyLjlsLS4yLS41LTIuNS0xLjJjLTQuOC0xLTkuNy0uMy0xNCAyLTIuNS0uMi00LjktLjUtNy4xLS43bC0yLjUgMS43IC41IDEuMmMyIC4yIDMuOSAuNSA2LjIgLjdsLTIgMy40IDMuNC0uNS0xMC42IDExLjNjLTQuMiAzLTUuNCA2LjQtNC4yIDkuM2w1LjQtMy40IDEuMiAwYzYuMS04LjIgMTUuMi0xMy42IDI1LjMtMTUuMmwwLTNjNi40IC41IDEzIDEgMTkuNCAxLjIgNi40IDAgOC40IC41IDUuNCAxLjIgNy4yIDQgMTQuMSA4LjYgMjAuNyAxMy41IDEzLjUgMTAuMSAyMy42IDIxLjkgMzAgMzUuNCA4LjggMTguMiAxMy41IDM3LjEgMTMuNSA1Ni42IDAgOS41LTEgMTktMyAyOC4zLTMuNSAxNS45LTguOSAzMS4zLTE2IDQ2bDIuNSAuNWMxOC4yLTE5LjcgNDEuOS0xNiA0OS4yLTE2bC02LjQgNS45IDIyLjQgMTcuNy0xLjcgMzAuN2MtNS40LTEyLjMtMTYuNS0yMS4xLTMzLTI3LjggMTYuNSAxNC44IDIzLjYgMjEuMSAyMS45IDIwLjItNC44LTIuOC0zLjUtMS45LTEwLjgtMy43IDQuMSA0LjEgMTcuNSAxOC44IDE4LjIgMjAuN2wuMiAuMi0uMiAuMmMwIDEuOCAxLjYtMS4yLTE0IDIyLjktNzUuMi0xNS4zLTEwNi4zLTQyLjctMTQxLjItNjMuMmwxMS44IDEuMmMtMTEuOC0xOC41LTE1LjYtMTcuNy0zOC40LTI2LjFsMTAuNi04LjRjLTguOC0zLTE4LjItMy0yOC4zIC41bDcuNi0xMC42LTEuMi0xLjdjLTE0LjkgNC4zLTE5LjggOS4yLTIyLjYgMTEuMy0xLjEtNS41LTIuOC0xMi40LTEyLjMtMjguOGwtMS4yIDI3LTEzLjItNWMxLjUtMjUuMiA1LjQtNTAuNSAxMy4yLTc0LjZ6TTM2OCA0NzMuMWMtNDkuOSAyNS01Ni4xIDIyLjQtNTkgMjMuOS0yOS44LTExLjgtNTAuOS0zMS43LTYzLjUtNTguOGwzMCAxNi41Yy05LjgtOS4zLTE4LjMtMTYuNS0zOC40LTQ0LjNsMTEuOCAyMy4xLTE3LjctNy42YzE0LjIgMjEuMSAyMy41IDUxLjcgNjYuNiA3My41LTEyMC44IDI0LjItMTk5LTcyLjEtMjAwLjktNzQuMyAxMS4xIDkuMiAyMi45IDE3LjUgMzUuNCAyNC44IDMuNCAxLjcgNy4xIDIuNSAxMC4xIDEuMmwtMTYtMjAuN2M5LjIgNC4yIDkuNSA0LjUgNjkuMSAyOS00Mi41LTIwLjctNzMuOC00MC44LTkzLjItNjAuMi0uNSA2LjQtMS4yIDEwLjEtMS4yIDEwLjEgOC43IDcuMyAxNS44IDE2LjQgMjAuNyAyNi42LTM5LTE4LjktNTcuNi00Ny42LTcxLjMtODIuNiA0OS45IDU1LjEgMTE4LjkgMzcuNSAxMjAuNSAzNy4xIDM0LjggMTYuNCA2OS45IDIzLjYgMTEzLjkgMTAuNiAzLjMgMCAyMC4zIDE3IDI1LjMgMzkuMWw0LjItMy0yLjUtMjMuNmM5IDkgMjQuOSAyMi42IDM0LjQgMTMtMTUuNi01LjMtMjMuNS05LjUtMjkuNS0zMS43IDQuNiA0LjIgNy42IDkgMjcuOCAxNWwxLjItMS4yLTEwLjUtMTQuMmMxMS43LTQuOC0zLjUgMSAzMi0xMC44IDQuMyAzNC4zIDkgNDkuMiAuNyA4OS41ek00ODMuMyAyNTguN2wtMi41IC41IDMgOS4zYy0zLjUgNS45LTIzLjcgNDQuMy03MS42IDc5LjctMzkuNSAyOS44LTc2LjYgMzkuMS04MC45IDQwLjNsLTcuNi03LjEtMS4yIDMgMTQuMyAxNi03LjEtNC43IDMuNCA0LjItMS4yIDAtMjEuOS0xMy41IDkuMyAyNi42LTE5LTI3LjktMS4yIDIuNSA3LjYgMjljLTYuMS04LjItMjEtMzIuNi01Ni44LTM5LjZsMzIuNSAyMS4yYy0zMS4yIDQuNy02MyAyLjUtOTMuMi02LjQtNC4yLTEuMi04LjktMi41LTEzLjUtNC4ybDEuMi0zLTQ0LjgtMjIuNCAyNi4xIDIyLjRjLTU3LjcgOS4xLTExMy0yNS40LTEyNi40LTgzLjRMMjkuMyAyODQuOCA3IDMwNy4xYzE5LjUtNTcuNSAyNS42LTU3LjkgNTEuNC03MC4xLTkuMS01LjMtMS42LTMuMy0zOC40LTkuMyAxNS44LTUuOCAzMy0xNS40IDczIDUuMiAxLjItLjcgMi40LTEuMyAzLjctMS43IC42LTMuMiAuNC0uOCAxLTExLjggMy45IDEwIDMuNiA4LjcgMyA5LjNsMS43IC41YzEyLjctNi41IDguOS00LjUgMTctOC45bC01LjQgMTMuNSAyMi4zLTUuOC04LjQgOC40IDIuNSAyLjVjNC41LTEuOCAzMC4zIDMuNCA0MC44IDE2bC0yMy42LTIuNWMzOS40IDIzIDUxLjUgNTQgNTUuOCA2OS42bDEuNy0xLjJjLTIuOC0yMi4zLTEyLjQtMzMuOS0xNi00MC4xIDQuMiA1IDM5LjIgMzQuNiAxMTAuNCA0Ni0xMS4zLS41LTIzLjEgNS40LTM0LjkgMTguOWw0Ni43LTIwLjItOS4zIDIxLjljNy42LTEwLjEgMTQuOC0yMy42IDIxLjItMzkuNmwwLS41IDEuMi0zLTEuMiAxNmMxMy41LTQxLjggMjUuMy03OC41IDM1LjQtMTA5LjdsMTMuNS0yNy44IDAtMi01LjQtNC4yIDEwLjEgMCA1LjkgNC4yIDIuNS0xLjItMy40LTE2IDEyLjMgMTguOSA0MS44LTIwLjItMTQuOCAxMyAuNSAyLjkgMTcuNy0uNWMxMS4xIC40IDIyLjEgMS44IDMzIDQuMmwtMjMuNiAyLjUtMS4yIDMgMjYuNiAyMy4xYzkuOSA5LjkgMTguOSAyMC42IDI3IDMyLTExLjItMy4zLTEwLjMtMy40LTIxLjItMy40bDEyLjMgMzIuNS04LjktMTIuOHptLTYuMS03MS4zbC0zLjkgMTMtMTQuMy0xMS44IDE4LjItMS4yem0tMjU0LjggNy4xYzEuNyAxMC42IDQuNyAxNy43IDguOCAyMS45LTkuMyA2LjYtMjcuNSAxMy45LTQ2LjUgMTZsLjUgMS4yYzguMyAxLjMgMTYuOSAuNCAyNC44LTIuNWwtNy4xIDEzYzQuMi0xLjcgMTAuMS03LjEgMTcuNy0xNC44IDExLjktNS41IDEyLjctNS4xIDIwLjItMTYtMTIuNy02LjQtMTUuNy0xMy43LTE4LjQtMTguOHptMy43LTEwMi4zYy02LjQtMy40LTEwLjYgMy0xMi4zIDE4LjlzMi41IDI5LjUgMTEuOCAzOS42IDE4LjIgMTAuNiAyNi4xIDMgMy40LTIzLjYtMTEuMy00Ny43Yy0zLjUtNS43LTguNC0xMC41LTE0LjMtMTMuOGwwIDB6bS00LjcgNDYuM2M1LjQgMi4yIDEwLjUgMS45IDEyLjMtMTAuNmwwLTQuNy0xLjIgLjVjLTQuMy0zLjEtMi41LTQuNS0xLjctNi4ybC41LS41Yy0uOS0xLjItNS04LjEtMTIuNSA0LjctLjUtMTMuNSAuNS0yMS45IDMtMjQuOCAxLjItMi41IDQuNy0xLjIgMTEuMyA0LjIgNi40IDUuNCAxMS4zIDE2IDE1LjIgMzIuNSA2LjUgMjgtMTkuOCAyNi4yLTI2LjkgNC45em0tNDUtNS41YzEuNiAuMyA5LjMtMS4xIDkuMy0xNC44bC0uNSAwYy01LjQtMS4xLTIuMi01LjUtLjctNS45LTEuNy0zLTMuNC00LjItNS40LTQuNy04LjEgMC0xMS42IDEyLjctOC4xIDIxLjIgLjUgMS4xIDEuMyAyIDIuMiAyLjhzMiAxLjIgMy4yIDEuNGwwIDB6bTQwLjEtNTAuMWwtMi41IC41IC41IDNjOS4xLS41IDE4LjEgMS41IDI2LjEgNS45LTIuNS01LjUtMTAtMTQuMy0yOC4zLTE0LjNsLjUgMi41IDMuNyAyLjR6bS03MS44IDQ5LjRjMjEuNyAxNi44IDE2LjUgMjEuNCA0Ni41IDIzLjZsLTIuOS00LjdjOC40LTcuMiAxMy43LTE3LjMgMTQuOC0yOC4zIDEuNy0xNi0xLjItMjkuNS04LjgtNDEuM2wxMy03LjZjMC0uMyAwLS42LS4xLS45cy0uMi0uNi0uNC0uOGMtMi4yLS45LTQuNi0xLjItNy0uOXMtNC42IDEuMi02LjUgMi42Yy0xMi43IDYuNy0yOCAyMC45LTI5IDIyLjQtMS43IDEuNy0zLjQgNS45LTUuNCAxMy41LTEuOSA3LjctMi45IDE1LjYtMi45IDIzLjYtNC43LTgtMTAuNS02LjQtMTkuOS01LjlsNy4xIDcuNmMtMTYuNSAwLTIzLjMgMTUuNC0yMy42IDE2IDYuOCAwIDQuNi03LjYgMzAtMTIuMy00LjMtNi4zLTMuMy01LTQuOS02LjZ6bTE4LjctMTguN2MxLjItNy42IDMuNC0xMyA2LjQtMTcuMiA1LjQtNi40IDEwLjYtMTAuMSAxNi0xMS44IDQuMi0xLjcgNy4xIDEuMiAxMC4xIDkuMyAyLjUgOC4yIDMuNSAxNi44IDMgMjUuMy0uNSA5LjMtMy40IDE3LjItOC40IDIzLjEtMi45IDMuNC01LjQgNS45LTYuNCA3LjYtMy44IC40LTcuNiAuMi0xMS4zLS41bC03LjEtMy40LTUuNC02LjRjLjgtMTAgMS4zLTE4LjggMy4xLTI2em00MiA1Ni4xYy0zNC44IDE0LjQtMzQuNyAxNC0zNi4xIDE0LjMtMjAuOCA0LjctMTktMjQuNC0xOC45LTI0LjhsNS45LTEuMi0uNS0yLjVjLTIwLjItMi42LTMxIDQuMi0zMi41IDQuOSAuNSAuNSAzIDMuNCA1LjkgOS4zIDQuMi02LjQgOC44LTEwLjEgMTUuMi0xMC42LTEuNyAxMS4yLTEuMiAyMi43IDEuNyAzMy43IC4xIC41IDIuNiAxNy40IDI3LjUgMjQuMSAxMS4zIDMgMjcgMS4yIDQ4LjktNS40bC05LjIgLjVjLTQuMi0xNC44LTYuNC0yNC44LTUuOS0yOS41IDExLjMtOC44IDIxLjktMTEuMyAzMC43LTcuNmwyLjUgMC0xMS44LTcuNi03LjEgLjVjLTUuOSAxLjItMTIuMyA0LjItMTkuNCA4LjRsMy4xLTYuNXoiXX0sVmJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImppcmEiLGljb246WzUxMiw1MTIsW10sImY3YjEiLCJNNDk4LjUgMjQxLjdjLTcyLjktNzIuNy0xNjkuNC0xNjkuOS0yNDEuNS0yNDEuNy0xNjUuNSAxNjQuOS0yNDIuNSAyNDEuNy0yNDIuNSAyNDEuNy03LjkgNy45LTcuOSAyMC43IDAgMjguNyAxMzIuOCAxMzIuMyA2MS44IDYxLjUgMjQyLjUgMjQxLjYgMzc5LjQtMzc4IDE1LjctMTYuNyAyNDEuNS0yNDEuNyA4LTcuOSA4LTIwLjcgMC0yOC42ek0yNTcgMzMxLjdsLTc2LTc1LjcgNzYtNzUuNyA3NiA3NS43LTc2IDc1Ljd6Il19LGpidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRleCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NyIsIk01ODYgMjg0LjVsNTMuMy01OS45LTYyLjQgMC0yMS43IDI0LjgtMjIuNS0yNC44LTExOC43IDAgMC0xNiA1Ni4xIDAgMC00OC4xLTE1MS4yIDAgMCA3NS41LS41IDBjLTkuNi0xMS0yMS41LTE0LjgtMzUuNC0xNC44LTI4LjQgMC00OS44IDE5LjQtNTcuMyA0NC45LTE4LTU5LjQtOTcuNC01Ny42LTEyMS45LTE0bDAtMjQuMi01NC44IDAgMC0yNi4yIDYwIDAgMC00MS4xLTEwOSAwIDAgMTg0LjQgNDkgMCAwLTc3LjUgNDguOSAwYy0xLjUgNS43LTIuMyAxMS44LTIuMyAxOC4yIDAgNzMuMSAxMDIuNiA5MS40IDEzMC4yIDIzLjdsLTQyIDBjLTE0LjcgMjAuOS00NS44IDguOS00NS44LTE0LjZsODUuNSAwYzMuNyAzMC41IDI3LjQgNTYuOSA2MC4xIDU2LjkgMTQuMSAwIDI3LTYuOSAzNC45LTE4LjZsLjUgMCAwIDExLjkgMjEyLjIgMCAyMi4xLTI1IDIyLjMgMjUgNjQuNCAwLTU0LTYwLjV6TTEzOS4zIDI2Ny45YzYuMS0yNi4zIDQxLjctMjUuNiA0Ni41IDBsLTQ2LjUgMHptMTUzLjQgNDguOWMtMzQuNiAwLTM0LTYyLjggMC02Mi44IDMyLjYgMCAzNC41IDYyLjggMCA2Mi44em0xNjcuOCAxOS4xbC05NC40IDAgMC0xNjYuNSA5NSAwIDAgMzAuMi01Ni4xIDAgMCAzMy45IDU1LjUgMCAwIDI4LjEtNTYuMSAwIDAgNDQuNyA1Ni4xIDAgMCAyOS42em0tNDUuOS0zOS44bDAtMjQuNCA1Ni4xIDAgMC00NCA1MC43IDU3LTUwLjcgNTcgMC00NS42LTU2LjEgMHptMTM4LjYgMTAuM2wtMjYuMSAyOS41LTM4LjEgMCA0NS42LTUxLjItNDUuNi01MS4yIDM5LjcgMCAyNi42IDI5LjMgMjUuNi0yOS4zIDM4LjUgMC00NS40IDUxIDQ2IDUxLjQtNDAuNSAwLTI2LjMtMjkuNXoiXX0sVWJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV2ZXJub3RlIixpY29uOlszODQsNTEyLFtdLCJmODM5IiwiTTEyMS4xIDEzMi4yYzEuNiAyMi4zLTE3LjYgMjEuNi0yMS42IDIxLjYtNjguOSAwLTczLjYtMS04My42IDMuMy0uNiAuMi0uNyAwLS40LS40TDEyNC4xIDQ2LjRjLjQtLjQgLjYtLjIgLjQgLjQtNC40IDEwLTMuNCAxNS4xLTMuNCA4NS40em03OSAzMDhjLTE0LjctMzcuMSAxMy03Ni45IDUyLjUtNzYuNiAxNy41IDAgMjIuNiAyMy4yIDcuOSAzMS40LTYuMiAzLjMtMjQuOSAxLjctMjUuMSAxOS4yIDAgMTcuMSAxOS43IDI1IDMxLjIgMjQuOSA2IDAgMTEuOS0xLjIgMTcuNS0zLjVzMTAuNi01LjcgMTQuOC05LjkgNy42LTkuMyA5LjktMTQuOCAzLjUtMTEuNSAzLjUtMTcuNWwwLS4xYzAtMTEuNi03LjgtNDcuMi00Ny41LTU1LjMtNy43LTEuNS02NS02LjMtNjguNC01MC41LTMuNyAxNi45LTE3LjQgNjMuNS00My4xIDY5LjEtOC43IDEuOS02OS43IDcuNi0xMTIuOS0zNi44IDAgMC0xOC42LTE1LjItMjguMi01OC0zLjQtMTUuNy05LjMtMzkuNy0xMS4xLTYyIDAtMTggMTEuMS0zMC40IDI1LjEtMzIuMiA4MSAwIDkwIDIuMyAxMDEtNy44IDkuOC05LjIgNy44LTE1LjUgNy44LTEwMi44IDEtOC4zIDcuOC0zMC44IDUzLjQtMjQuMSA2IC45IDMxLjkgNC4yIDM3LjUgMzAuNkwyOTAgNzQuOGMyMC40IDMuNyA3MC45IDcgODAuNiA1Ny45IDIyLjcgMTIxLjEgOC45IDIzOC41IDcuOCAyMzguNS0xNiAxMTQuNC0xMTEuMSAxMDguOS0xMTEuMSAxMDguOS0xOS0uMi01NC4yLTkuNC02Ny4zLTM5LjhsMCAwek0yODEgMjM1LjRjLTEgMS45LTIuMiA2IC45IDcgMTQuMSA0LjkgMzkuOCA2LjggNDUuOSA1LjUgMy4xLS4yIDMuMS00LjQgMi41LTYuNi0zLjUtMjEuOC00MC44LTI2LjUtNDkuMi01LjlsMCAweiJdfSxXYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNiIixpY29uOls2NDAsNTEyLFtdLCJmMjg3IiwiTTYzMy41IDI1NmMwIDMuMS0xLjcgNi4xLTQuNSA3LjVMNTM5LjkgMzE3Yy0xLjQgLjgtMi44IDEuNC00LjUgMS40LTEuNCAwLTMuMS0uMy00LjUtMS4xLTIuOC0xLjctNC41LTQuNS00LjUtNy44bDAtMzUuNi0yMzAuNyAwYzI1LjMgMzkuNiA0MC41IDEwNi45IDY5LjYgMTA2LjlsMjYuNyAwIDAtMjYuOGMwLTUgMy45LTguOSA4LjktOC45bDg5LjEgMGM1IDAgOC45IDMuOSA4LjkgOC45bDAgODkuMWMwIDUtMy45IDguOS04LjkgOC45bC04OS4xIDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi43LTI2LjcgMGMtNzUuNCAwLTgxLjEtMTQyLjUtMTI0LjctMTQyLjVsLTEwMC4zIDBjLTguMSAzMC42LTM1LjkgNTMuNS02OSA1My41LTM5LjMtLjEtNzEuMy0zMi4xLTcxLjMtNzEuNHMzMi03MS4zIDcxLjMtNzEuM2MzMy4xIDAgNjEgMjIuOCA2OSA1My41IDM5LjEgMCA0My45IDkuNSA3NC42LTYwLjQgNDAuMS04OS4xIDU4LjEtODIuMSAxMDguOS04Mi4xIDcuNS0yMC45IDI3LTM1LjYgNTAuNC0zNS42IDI5LjUgMCA1My41IDIzLjkgNTMuNSA1My41cy0yMy45IDUzLjUtNTMuNSA1My41Yy0yMy40IDAtNDIuOS0xNC44LTUwLjQtMzUuNmwtMjkuOCAwYy0yOS4xIDAtNDQuMyA2Ny40LTY5LjYgMTA2LjlsMzAyLjEgMCAwLTM1LjZjMC0zLjMgMS43LTYuMSA0LjUtNy44czYuNC0xLjQgOC45IC4zTDYyOSAyNDguOGMyLjggMS4xIDQuNSA0LjEgNC41IDcuMnoiXX0sR2J0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3J5Y3JlYXRpdmUiLGljb246WzY0MCw1MTIsW10sImYzNmUiLCJNNjQwIDIzOC4ybC0zLjIgMjguMi0zNC41IDIuMy0yIDE4LjEgMzQuNS0yLjMtMy4yIDI4LjItMzQuNCAyLjItMi4zIDIwLjEgMzQuNC0yLjItMyAyNi4xLTY0LjcgNC4xIDEyLjctMTEzLjItNDcuMyAxMTUuNC0zMS45IDItMjMuOC0xMTcuOCAzMC4zLTIgMTMuNiA3OS40IDMxLjctODIuNCA5My4xLTYuMnpNNDI2LjggMzcxLjVsMjguMy0xLjggMTIuOS0xMjAuMS0yOC40IDEuOS0xMi44IDEyMHpNMTYyIDM4OC4xbC0xOS40LTM2LTMuNSAzNy40LTI4LjIgMS43IDIuNy0yOS4xYy0xMSAxOC0zMiAzNC4zLTU2LjkgMzUuOC0zMi44IDItNTkuNy0yMC45LTU2LjQtNTguMiAyLjYtMjkuMyAyNi43LTYyLjggNjcuNS02NS40IDM3LjctMi40IDQ3LjYgMjMuMiA1MS4zIDI4LjhsMi44LTMwLjggMzguOS0yLjVjMjAuMS0xLjMgMzguNyAzLjcgNDIuNSAyMy43bDIuNi0yNi42IDY0LjgtNC4yLTIuNyAyNy45LTM2LjQgMi40LTEuNyAxNy45IDM2LjQtMi4zLTIuNyAyNy45LTM2LjQgMi4zLTEuOSAxOS45IDM2LjMtMi4zLTIuMSAyMC44IDU1LTExNy4yIDIzLjgtMS42IDMyLjEgMTEwLjYgOC45LTg1LjYtMjIuMyAxLjQgMi45LTI3LjkgNzUtNC45LTMgMjgtMjQuMyAxLjYtOS43IDkxLjktNTggMy43LTQuMy0xNS42LTM5LjQgMi41LTggMTYuMy0xMjYuMiA3Ljd6bS00NC4zLTcwLjJsLTI2LjQgMS43Yy02LjctMTIuNC0xNC40LTE2LjYtMjYuMy0xNS44LTE5IDEuMi0zMy4zIDE3LjUtMzQuNiAzMy4zLTEuNCAxNiA3LjMgMzIuNSAyOC43IDMxLjIgMTIuOC0uOCAyMS4zLTguNiAyOC45LTE4LjlsMjctMS43IDIuNy0yOS44em01Ni4xLTcuN2MxLjItMTIuOS03LjYtMTMuNi0yNi4xLTEyLjRMMTQ1IDMyNi4zYzE0LjItLjkgMjcuNS0yLjEgMjguOC0xNi4xek0xOTQuOSAzODFsNS44LTYwYy01IDEzLjUtMTQuNyAyMS4xLTI3LjkgMjYuNkwxOTQuOSAzODF6bTEzNS40LTQ1bC03LjktMzcuOC0xNS44IDM5LjMgMjMuNy0xLjV6TTE2MC4yIDI2MS40bC00LjMtMTcuNS0zOS42IDIuNi04LjEgMTguMi0zMS45IDIuMSA1Ny0xMjEuOSAyMy45LTEuNiAzMC43IDEwMiA5LjktMTA0LjcgMjctMS44IDM3LjggNjMuNiA2LjUtNjYuNiAyOC41LTEuOS00IDQxLjJjNy40LTEzLjUgMjIuOS00NC43IDYzLjYtNDcuNSA0MC41LTIuOCA1Mi40IDI5LjMgNTMuNCAzMC4zbDMuMy0zMiAzOS4zLTIuN2MxMi43LS45IDI3LjggLjMgMzYuMyA5LjdsLTQuNC0xMS45IDMyLjItMi4yIDEyLjkgNDMuMiAyMy00NS43IDMxLTIuMi00My42IDc4LjQtNC44IDQ0LjMtMjguNCAxLjkgNC44LTQ0LjMtMTUuOC00M2MxIDIyLjMtOS4yIDQwLjEtMzIgNDkuNmwyNS4yIDM4LjgtMzYuNCAyLjQtMTkuMi0zNi44LTQgMzguMy0yOC40IDEuOSAzLjMtMzEuNWMtNi43IDkuMy0xOS43IDM1LjQtNTkuNiAzOC0yNi4yIDEuNy00NS42LTEwLjMtNTUuNC0zOS4ybC00IDQwLjMtMjUgMS42LTM3LjYtNjMuMy02LjMgNjYuMi01Ni44IDMuN3ptMjc2LjYtODIuMWMxMC4yLS43IDE3LjUtMi4xIDIxLjYtNC4zIDQuNS0yLjQgNy02LjQgNy42LTEyLjEgLjYtNS4zLS42LTguOC0zLjQtMTAuNC0zLjYtMi4xLTEwLjYtMi44LTIyLjktMmwtMi45IDI4Ljh6TTMyNy43IDIxNGM1LjYgNS45IDEyLjcgOC41IDIxLjMgNy45IDQuNy0uMyA5LjEtMS44IDEzLjMtNC4xIDUuNS0zIDEwLjYtOCAxNS4xLTE0LjNsLTM0LjIgMi4zIDIuNC0yMy45IDYzLjEtNC4zIDEuMi0xMi0zMS4yIDIuMWMtNC4xLTMuNy03LjgtNi42LTExLjEtOC4xLTQtMS43LTguMS0yLjgtMTIuMi0yLjUtOCAuNS0xNS4zIDMuNi0yMiA5LjItNy43IDYuNC0xMiAxNC41LTEyLjkgMjQuNC0xLjEgOS42IDEuNCAxNy4zIDcuMiAyMy4zem0tMjAxLjMgOC4ybDIzLjgtMS42LTguMy0zNy42LTE1LjUgMzkuMnoiXX0sWWJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1penVuaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNjYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE3NiAzNTkuOWMtMzEuNCAxMC42LTU4LjggMjcuMy04MCA0OC4yTDk2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjIzLjl6TTI5NiAzNTBjLTEyLjktMi0yNi4yLTMuMS0zOS44LTMuMS0xMy44IDAtMjcuMiAxLjEtNDAuMiAzLjFsMC0yMTRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIxNHptMTIwIDU3LjdjLTIxLjItMjAuOC00OC42LTM3LjQtODAtNDhMMzM2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjcxLjd6Il19LEtidD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdGNoLWlvIixpY29uOls1MTIsNTEyLFtdLCJmODNhIiwiTTcxLjkgMzQuOEM1MC4yIDQ3LjcgNy40IDk2LjggNyAxMDkuN2wwIDIxLjNjMCAyNy4xIDI1LjMgNTAuOCA0OC4yIDUwLjggMjcuNiAwIDUwLjUtMjIuOCA1MC41LTUwIDAgMjcuMSAyMi4yIDUwIDQ5LjggNTBzNDktMjIuOCA0OS01MGMwIDI3LjEgMjMuNiA1MCA1MS4yIDUwbC41IDBjMjcuNiAwIDUxLjItMjIuOCA1MS4yLTUwIDAgMjcuMSAyMS41IDUwIDQ5IDUwczQ5LjgtMjIuOCA0OS44LTUwYzAgMjcuMSAyMyA1MCA1MC41IDUwIDIzIDAgNDguMy0yMy44IDQ4LjMtNTAuOGwwLTIxLjNjLS40LTEyLjktNDMuMi02Mi4xLTY0LjktNzUtNjcuNC0yLjMtMTE0LjItMi43LTE4NC0yLjdTOTEuMSAzMy4xIDcxLjkgMzQuOHpNMjA0LjIgMTY5LjJjLTIyIDM4LjQtNzcuOSAzOC43LTk5LjggLjItMTMuMiAyMy4xLTQzLjIgMzIuMS01NiAyNy43LTMuOSA0MC4yLTEzLjcgMjM3LjEgMTcuNyAyNjkuMiA4MCAxOC43IDMwMi4xIDE4LjEgMzc5LjggMCAzMS42LTMyLjMgMjEuMy0yMzIgMTcuNy0yNjkuMi0xMi45IDQuNC00Mi45LTQuNi01Ni0yNy43LTIyIDM4LjUtNzcuOCAzOC4xLTk5LjgtLjItNy4xIDEyLjUtMjMgMjguOS01MS44IDI4LjktMTAuNCAuMy0yMC44LTIuMi0yOS45LTcuM3MtMTYuNy0xMi42LTIxLjktMjEuNmwwIDB6bS00MS42IDUzLjhjMTYuNSAwIDMxLjEgMCA0OS4yIDE5LjggMjkuMy0zIDU4LjktMyA4OC4yIDAgMTguMi0xOS43IDMyLjgtMTkuNyA0OS4yLTE5LjcgNTIuMyAwIDY1LjIgNzcuNSA4My45IDE0NC40IDE3LjMgNjIuMi01LjUgNjMuNy0zNCA2My43LTQyLjEtMS42LTY1LjUtMzIuMi02NS41LTYyLjgtMzkuMyA2LjQtMTAxLjkgOC44LTE1NS42IDAgMCAzMC42LTIzLjMgNjEuMi02NS41IDYyLjgtMjguNC0uMS01MS4yLTEuNi0zMy45LTYzLjcgMTguNy02NyAzMS42LTE0NC40IDgzLjktMTQ0LjRsMC0uMXpNMjU2IDI3MC44cy00NC40IDQwLjgtNTIuNCA1NS4ybDI5LTEuMiAwIDI1LjNjMCAxLjUgMjEuMyAuMiAyMy4zIC4yIDExLjYgLjUgMjMuMyAxIDIzLjMtLjJsMC0yNS4zIDI5IDEuMmMtOC0xNC41LTUyLjQtNTUuMi01Mi40LTU1LjJsLjEgMHoiXX0sWmJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpbmRvd3MiLGljb246WzQ0OCw1MTIsW10sImYxN2EiLCJNMCA5My43bDE4My42LTI1LjMgMCAxNzcuNC0xODMuNiAwIDAtMTUyLjF6TTAgNDE4LjNsMTgzLjYgMjUuMyAwLTE3NS4yLTE4My42IDAgMCAxNDkuOXptMjAzLjggMjhsMjQ0LjIgMzMuNyAwLTIxMS42LTI0NC4yIDAgMCAxNzcuOXptMC0zODAuNmwwIDE4MC4xIDI0NC4yIDAgMC0yMTMuOC0yNDQuMiAzMy43eiJdfSxYYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1bWJsZXVwb24iLGljb246WzUxMiw1MTIsW10sImYxYTQiLCJNNTAyLjkgMjY2bDAgNjkuN2MwIDYyLjEtNTAuMyAxMTIuNC0xMTIuNCAxMTIuNC02MS44IDAtMTEyLjQtNDkuOC0xMTIuNC0xMTEuM2wwLTcwLjIgMzQuMyAxNiA1MS4xLTE1LjIgMCA3MC42YzAgMTQuNyAxMiAyNi41IDI2LjcgMjYuNVM0MTcgMzUyLjcgNDE3IDMzOGwwLTcyIDg1LjkgMHpNMjc4LjIgMjA3LjhsMzQuMyAxNiA1MS4xLTE1LjIgMC0zNS42YzAtNjAuNS01MS4xLTEwOS0xMTIuMS0xMDktNjAuOCAwLTExMi4xIDQ4LjItMTEyLjEgMTA4LjJsMCAxNjIuNGMwIDE0LjktMTIgMjYuNy0yNi43IDI2LjdTODYgMzQ5LjUgODYgMzM0LjZsMC02OC42LTg2IDAgMCA2OS43YzAgNjIgNTAuMyAxMTIuMyAxMTIuNCAxMTIuMyA2MS42IDAgMTEyLjQtNDkuNSAxMTIuNC0xMTAuOGwwLTE2MC4zYzAtMTQuNyAxMi0yNi43IDI2LjctMjYuN3MyNi43IDEyIDI2LjcgMjYuN2wwIDMwLjl6Il19LGxlZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUiLGljb246WzUxMiw1MTIsW10sImYxYTAiLCJNNTAwIDI2MS44QzUwMCA0MDMuMyA0MDMuMSA1MDQgMjYwIDUwNCAxMjIuOCA1MDQgMTIgMzkzLjIgMTIgMjU2UzEyMi44IDggMjYwIDhjNjYuOCAwIDEyMyAyNC41IDE2Ni4zIDY0LjlsLTY3LjUgNjQuOWMtODguMy04NS4yLTI1Mi41LTIxLjItMjUyLjUgMTE4LjIgMCA4Ni41IDY5LjEgMTU2LjYgMTUzLjcgMTU2LjYgOTguMiAwIDEzNS03MC40IDE0MC44LTEwNi45bC0xNDAuOCAwIDAtODUuMyAyMzYuMSAwYzIuMyAxMi43IDMuOSAyNC45IDMuOSA0MS40eiJdfSxRYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlzY29yZCIsaWNvbjpbNTc2LDUxMixbXSwiZjM5MiIsIk00OTIuNSA2OS44Yy0uMi0uMy0uNC0uNi0uOC0uNy0zOC4xLTE3LjUtNzguNC0zMC0xMTkuNy0zNy4xLS40LS4xLS44IDAtMS4xIC4xcy0uNiAuNC0uOCAuOGMtNS41IDkuOS0xMC41IDIwLjItMTQuOSAzMC42LTQ0LjYtNi44LTg5LjktNi44LTEzNC40IDAtNC41LTEwLjUtOS41LTIwLjctMTUuMS0zMC42LS4yLS4zLS41LS42LS44LS44cy0uNy0uMi0xLjEtLjJjLTQxLjMgNy4xLTgxLjYgMTkuNi0xMTkuNyAzNy4xLS4zIC4xLS42IC40LS44IC43LTc2LjIgMTEzLjgtOTcuMSAyMjQuOS04Ni45IDMzNC41IDAgLjMgLjEgLjUgLjIgLjhzLjMgLjQgLjUgLjZjNDQuNCAzMi45IDk0IDU4IDE0Ni44IDc0LjIgLjQgLjEgLjggLjEgMS4xIDBzLjctLjQgLjktLjdjMTEuMy0xNS40IDIxLjQtMzEuOCAzMC00OC44IC4xLS4yIC4yLS41IC4yLS44czAtLjUtLjEtLjgtLjItLjUtLjQtLjYtLjQtLjMtLjctLjRjLTE1LjgtNi4xLTMxLjItMTMuNC00NS45LTIxLjktLjMtLjItLjUtLjQtLjctLjZzLS4zLS42LS4zLS45IDAtLjYgLjItLjkgLjMtLjUgLjYtLjdjMy4xLTIuMyA2LjItNC43IDkuMS03LjEgLjMtLjIgLjYtLjQgLjktLjRzLjcgMCAxIC4xYzk2LjIgNDMuOSAyMDAuNCA0My45IDI5NS41IDAgLjMtLjEgLjctLjIgMS0uMnMuNyAuMiAuOSAuNGMyLjkgMi40IDYgNC45IDkuMSA3LjIgLjIgLjIgLjQgLjQgLjYgLjdzLjIgLjYgLjIgLjktLjEgLjYtLjMgLjktLjQgLjUtLjYgLjZjLTE0LjcgOC42LTMwIDE1LjktNDUuOSAyMS44LS4yIC4xLS41IC4yLS43IC40cy0uMyAuNC0uNCAuNy0uMSAuNS0uMSAuOCAuMSAuNSAuMiAuOGM4LjggMTcgMTguOCAzMy4zIDMwIDQ4LjggLjIgLjMgLjYgLjYgLjkgLjdzLjggLjEgMS4xIDBjNTIuOS0xNi4yIDEwMi42LTQxLjMgMTQ3LjEtNzQuMiAuMi0uMiAuNC0uNCAuNS0uNnMuMi0uNSAuMi0uOGMxMi4zLTEyNi44LTIwLjUtMjM2LjktODYuOS0zMzQuNXptLTMwMiAyNjcuN2MtMjkgMC01Mi44LTI2LjYtNTIuOC01OS4yczIzLjQtNTkuMiA1Mi44LTU5LjJjMjkuNyAwIDUzLjMgMjYuOCA1Mi44IDU5LjIgMCAzMi43LTIzLjQgNTkuMi01Mi44IDU5LjJ6bTE5NS40IDBjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy4yIDU5LjItNTIuOCA1OS4yeiJdfSxKYnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGFja2VyLW5ld3MiLGljb246WzQ0OCw1MTIsW10sImYxZDQiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjEuMiAyMjkuMmwtLjIgMGMuMS0uMSAuMi0uMyAuMy0uNCAwIC4xIDAgLjMtLjEgLjR6bTIxOCA1My45bDAgMTAwLjktMzEuNCAwIDAtMTAyLjctNzkuOC0xNTMuMyAzNy4zIDBjNTIuNSA5OC4zIDQ5LjIgMTAxLjIgNTkuMyAxMjUuNiAxMi4zLTI3IDUuOC0yNC40IDYwLjYtMTI1LjZsMzQuOCAwLTgwLjggMTU1LjF6Il19LHp1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGV2ZW50eSIsaWNvbjpbNjQwLDUxMixbIjExdHkiXSwiZTdkNiIsIk02MTUuMyAxNjguNWMyLjMgMCA0LjYgLjcgNi42IDIuMiAxLjkgMS40IDMuMSAzLjMgMy44IDUgMS40IDMuMyAxLjggNy4zIDEuOCAxMS4zIDAgMi4yLS4zIDQuOS0uNyA3LjZsMCAuNC01MC45IDI2NC45IDAgMGMtNCAyMi4xLTguNSAzOS40LTEzLjYgNTEuNy01IDEyLjEtMTAuOSAyMS42LTE4LjYgMjdsMCAwYy03LjUgNS4zLTE2LjkgNy43LTI3LjYgOGwtMyAwYy0xNiAwLTI5LjMtNC4yLTM2LjktMTQuOC0uMS0uMS0uMS0uMS0uMi0uMi0uMS0uMi0uMy0uNC0uNS0uNmwwIDBjLTEuOC0yLjQtMi41LTUuMi0yLjktNy40LS41LTIuOC0uNy02LjEtLjctOS44IDAtNy4zIC42LTEzLjUgMi4xLTE4LjIgMS40LTQuNCA0LjgtMTAuNCAxMi4yLTEwLjRsMS4zIC4xYy4yIDAgLjQgLjEgLjUgLjEgLjMgLjEgLjYgLjEgLjggLjIgLjYgLjEgMS4zIC4zIDIuMiAuNmw3LjYgMi4yIC4xIDAgNy42IDIuMWMuOSAuMiAxLjcgLjQgMi4yIC41IC40IC4xIC42IC4xIC43IC4xIDAgMCAuMSAwIC4yLS4xIC4xLS4xIC40LS4yIC44LS42IC45LS45IDIuMi0yLjYgMy42LTUuNyAyLjYtNS44IDQuMi0xNC43IDQuMi0yNy40IDAtLjctLjMtMy40LTEuMy04LjktLjktNS4xLTIuMy0xMi4yLTQuMi0yMS4xbC01Ni0yMzIuOS0uMS0uNCAwLS4zYy0uNC0yLjctLjctNS4zLS43LTcuMyAwLTMuNyAuNC03LjUgMS43LTEwLjYgLjctMS42IDEuOC0zLjQgMy41LTQuOSAxLjktMS41IDQuMi0yLjMgNi41LTIuM2wzNC42IDBjNC42IDAgOC43IDEuNyAxMS45IDVsMS4zIDEuNWMxLjIgMS42IDIgMy40IDIuNyA1LjIgLjkgMi40IDEuNSA1LjEgMiA4LjFsMzAuNCAxNjEuMiAyMy44LTE2MGMuOC01LjggMi4yLTExLjQgNS4xLTE1LjEgMy0zLjggNy4yLTUuOCAxMi01LjhsMjQgMHpNMzc1LjEgMzQuNmMyLjYgMCA1LjEgLjcgNy40IDIuMyAyLjIgMS41IDMuNyAzLjYgNC43IDUuNyAxLjkgNCAyLjUgOS4xIDIuNSAxNC41bDAgMTExLjJjMCAuMSAwIC4yIDAgLjNsMzIuNCAwYzIuNSAwIDUgLjYgNy4yIDIuMSAyLjIgMS40IDMuNyAzLjQgNC44IDUuNSAyIDMuOSAyLjYgOC44IDIuNiAxMy45bDAgMTUuNGMwIDUtLjYgOS44LTIuNiAxMy43LTEuMSAyLTIuNiA0LTQuOCA1LjQtMi4yIDEuNC00LjcgMi03LjEgMmwtMzIuNSAwIDAgMTQ1LjhjMCAxMC44IC43IDE5LjUgMiAyNi4yIDEuNCA2LjkgMy4xIDEwLjkgNC43IDEyLjkgMS4yIDEuNSAyLjIgMi41IDMuMSAzLjJsMi4yIDEuNCAuMSAuMSAyLjkgLjhjMS4yIC4yIDIuNiAuMyA0LjMgLjNsMjAuMyAwYzQuNSAwIDguOSAxLjcgMTEuOCA1LjggMi42IDMuNiAzLjMgOC4xIDMuMyAxMi4ybDAgMTcuMmMwIDQuNS0uOCA5LjMtMy40IDEzLjEtMyA0LjItNy41IDYtMTIuMyA2bDAgMC0yOS4xIC4xYy04IDAtMTUtLjYtMjEuMi0xLjctNi43LTEuMy0xMy40LTQuMS0yMC4xLTguMS03LjItNC40LTEzLTEwLjMtMTcuNS0xNy44LTQuNS03LjUtNy45LTE3LjUtMTAuNS0yOS41LTIuNi0xMi4yLTMuOS0yNi42LTMuOS00M2wwLTE0NC45LTEzLjQgMGMtMi40IDAtNC45LS42LTcuMS0yLTIuMi0xLjQtMy43LTMuNC00LjgtNS40LTItMy45LTIuNi04LjctMi42LTEzLjdsMC0xNS40YzAtNS4xIC42LTEwIDIuNi0xMy45IDEuMS0yLjEgMi42LTQgNC44LTUuNSAyLjItMS41IDQuNy0yLjEgNy4yLTIuMWwxMy40IDAgMC0uNiA1LjItMTExLjIgMC0uMSAuMy0zLjljLjUtMy44IDEuMy03LjQgMi43LTEwLjMgMi4xLTQuMiA2LTcuOSAxMS44LTcuOWwyOC42IDB6bS0yNjggMTEuN2MxLjggLjMgMy42IC45IDUuMyAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjMgOC40IDIuMyAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEgMCAwLS4yIDAtLjMgMCAwIDAtLjIgMC0uNCAwbDAgMGMtLjEgMC0uMyAwLS40IDAtLjEgMC0uMiAwLS4yIDAtMi4yIC4xLTQuNS0uNC02LjYtMS43LTIuMy0xLjQtMy44LTMuNC00LjctNS4zLTEuOC0zLjctMi4zLTguNC0yLjMtMTNsMC0yNy40YzAtNC40IC43LTguOCAyLjYtMTIuNCAyLjEtMy45IDUuNS02LjYgOS44LTcuNmw3NS41LTE5LjVjMS40LS40IDIuOS0uNSA0LjQtLjVsMS44IC4xem0xNDMuOC0uNWMxLjggLjMgMy42IC45IDUuMiAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjIgOC40IDIuMiAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEtLjEgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjIgMC0uMyAwLS4xIDAtLjIgMC0uMyAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjMtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjcgMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNC0xOS40YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXoiXX0sZXZ0PXp1ZSx0dnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGVhbXNwZWFrIixpY29uOls1NzYsNTEyLFtdLCJmNGY5IiwiTTE1Mi44IDM3LjJjLTMyLjIgMzguMS01Ni4xIDgyLjYtNjkuOSAxMzAuNSAwIC4yLS4xIC4zLS4xIC41LTM5LjMgMTYuMi02Ni44IDU0LjgtNjYuOCA5OS44IDAgNTkuNiA0OC40IDEwOCAxMDggMTA4czEwOC00OC40IDEwOC0xMDhjMC01My41LTM4LjktOTcuOS05MC0xMDYuNSAxNS43LTQxLjggNDAuNC03OS42IDcyLjMtMTEwLjcgMS44LTEuNiA0LTIuNiA2LjMtMy4xIDM3LjItMTEuNSA3Ni43LTEzLjMgMTE0LjgtNS4yIDExOS4zIDI1LjEgMTk4LjYgMTM4LjIgMTgxLjcgMjU4LjgtOC40IDYyLjYtMzguNiAxMTIuNy04Ny43IDE1MS40LTUwLjEgMzkuNy0xMDcuNSA1NC4zLTE3MC4yIDUyLjJsLTI0LTFjMTIuNCAyLjggMjUgNC45IDM3LjYgNi4zIDQwLjcgNC4yIDgxLjQgMi4xIDEyMC4xLTEyLjUgOTQtMzUuNSAxNDkuMy0xMDIuMyAxNjIuOS0yMDIuNSA0LjgtNTIuNi01LjgtMTA1LjQtMzAuOC0xNTItNzAuNC0xMzEuOS0yMzQuMi0xODEuNi0zNjYtMTExLjItMi40IDEuNC00LjUgMy4xLTYuMyA1LjJsLjEgMHpNMzA5LjQgNDMzLjljLTIuMSAxMS41LTQuMiAyMS45LTE0LjYgMzEuMyA1My4yLTEgMTIzLjItMjkuMiAxNjEuOC05Ny4xIDM5LjctNjkuOSAzNy42LTEzOS45LTYuMy0yMDcuOC0zNi41LTU1LjMtODkuOC04Mi40LTE1Ni42LTg2LjYgMS41IDIuMyAzLjIgNC40IDUuMiA2LjNsNS4yIDYuM2MyNS4xIDMxLjMgMzcuNiA2Ny45IDQyLjggMTA3LjUgMi4xIDE1LjctMSAzMC4zLTEzLjYgNDEuOC00LjIgMy4xLTUuMiA2LjMtNC4yIDEwLjRsNy4zIDE3LjcgMjkuMyA1NC4zYzUuMiAxMS41IDQuMiAxOS44LTYuMyAyOC4yLTMuMiAyLjUtNi43IDQuNi0xMC40IDYuM2wtMTguOCA4LjQgMy4xIDEzLjZjMy4xIDYuMyAxIDEyLjUtMy4xIDE3LjctMi41IDIuNC0zLjggNS45LTMuMSA5LjQgMi4xIDExLjUtMi4xIDE5LjgtMTIuNSAyNS4xLTIuMSAxLTQuMiA1LjItNS4yIDcuM2wwLS4xem0tMTMzLjYtMy4xYzE2LjcgMTEuNSAzNC41IDIwLjkgNTMuMiAyNi4xIDI0IDUuMiA0MS44LTYuMyA0NC45LTMwLjMgMS04LjQgNS4yLTE0LjYgMTIuNS0xNy43IDcuMy00LjIgOC40LTcuMyAyLjEtMTMuNmwtOS40LTguNCAxMy42LTQuMmM2LjMtMi4xIDcuMy01LjIgNS4yLTExLjUtMS40LTMtMi40LTYuMi0zLjEtOS40LTMuMS0xNC42LTIuMS0xNS43IDExLjUtMTguOCA4LjQtMy4xIDE1LjctNi4zIDIxLjktMTIuNSAzLjEtMi4xIDMuMS00LjIgMS04LjRsLTE2LjctMzAuM2MtMS0xLjktMi4xLTMuOC0zLjEtNS43LTYuNC0xMS43LTEzLTIzLjYtMTUuNy0zNy4xLTIuMS05LjQtMS0xNy43IDguNC0yNCA1LjItNC4yIDguNC05LjQgOC40LTE2LjctLjQtMTAuMS0xLjUtMjAuMy0zLjEtMzAuMy02LjMtMzcuNi0yMy02OC45LTUxLjItOTUtNS4yLTQuMi05LjQtNi4zLTE2LjctNC4ybC0zNS42IDEyLjcgNiAzLjZjNi4zIDMuNyAxMi4yIDcuMyAxNyAxMi4xIDMwLjMgMjYuMSA0MS44IDYxLjYgNDUuOSAxMDAuMiAxIDguNCAwIDE2LjctNy4zIDIxLjktOC40IDUuMi0xMC40IDEyLjUtNy4zIDIwLjkgNC45IDEzLjIgMTAuNCAyNiAxNi43IDM4LjZMMjkxLjYgMzE4Yy02LjMgOC40LTEzLjYgMTEuNS0yMS45IDE0LjYtMTIuNSAzLjEtMTQuNiA3LjMtMTAuNCAyMC45IC42IDEuNSAxLjQgMi44IDIuMSA0LjIgMi4xIDUuMiAxIDguNC00LjIgMTAuNGwtMTIuNSAzLjEgNS4yIDQuMiA0LjIgNC4yYzQuMiA1LjIgNC4yIDguNC0yLjEgMTAuNC03LjMgNC4yLTExLjUgOS40LTExLjUgMTcuNyAwIDEyLjUtNy4zIDE5LjgtMTguOCAyNC0zLjggMS03LjYgMS41LTExLjUgMWwtMzQuNS0yLjEgLjEgLjJ6Il19LGF2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXBwbGUiLGljb246WzY0MCw1MTIsW10sImYzZjkiLCJNNjQwIDI2Mi41YzAgNjQuMS0xMDkgMTE2LjEtMjQzLjUgMTE2LjEtMjQuOCAwLTQ4LjYtMS44LTcxLjEtNSA3LjcgLjQgMTUuNSAuNiAyMy40IC42IDEzNC41IDAgMjQzLjUtNTYuOSAyNDMuNS0xMjcuMSAwLTI5LjQtMTkuMS01Ni40LTUxLjItNzggNjAgMjEuMSA5OC45IDU1LjEgOTguOSA5My40ek00Ny43IDIyNy45Yy0uMS03MC4yIDEwOC44LTEyNy4zIDI0My4zLTEyNy42IDcuOSAwIDE1LjYgLjIgMjMuMyAuNS0yMi41LTMuMi00Ni4zLTQuOS03MS00LjktMTM0LjUgLjQtMjQzLjQgNTIuNi0yNDMuMyAxMTYuNyAuMSAzOC4zIDM5LjEgNzIuMyA5OS4zIDkzLjMtMzIuMy0yMS41LTUxLjUtNDguNi01MS42LTc4em02MC4yIDM5LjlTMTE4LjQgMjgxIDEzNy4yIDI4MWMxNy45IDAgMjguNC0xMS41IDI4LjQtMjUuMSAwLTI4LTQwLjItMjUuMS00MC4yLTM5LjcgMC01LjQgNS4zLTkuMSAxMi41LTkuMSA1LjcgMCAxMS4zIDIuNiAxMS4zIDYuNmwwIDMuOSAxNC4yIDAgMC03LjljMC0xMi4xLTE1LjQtMTYuOC0yNS40LTE2LjgtMTYuNSAwLTI4LjUgMTAuMi0yOC41IDI0LjEgMCAyNi42IDQwLjIgMjUuNCA0MC4yIDM5LjkgMCA2LjYtNS44IDEwLjEtMTIuMyAxMC4xLTExLjkgMC0yMC43LTEwLjEtMjAuNy0xMC4xbC04LjggMTAuOXptMTIwLjgtNzMuNmwwIDU0LjRjMCAxMS4zLTcuMSAxNy44LTE3LjggMTcuOHMtMTcuOC02LjUtMTcuOC0xNy43bDAtNTQuNS0xNS44IDAgMCA1NWMwIDE4LjkgMTMuNCAzMS45IDMzLjcgMzEuOSAyMC4xIDAgMzMuNC0xMyAzMy40LTMxLjlsMC01NS0xNS43IDB6bTM0LjQgODUuNGwxNS44IDAgMC0yOS41IDE1LjUgMGMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhsLTM5LjEgMCAwIDEzLjQgNy44IDAgMCA3MnptMTUuOC00M2wwLTI5LjEgMTIuOSAwYzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01LjEgMTQuNy0xNCAxNC43bC0xMi42IDB6bTU3IDQzbDE1LjggMCAwLTI5LjUgMTUuNSAwYzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGwtMzkuMSAwIDAgMTMuNCA3LjggMCAwIDcyem0xNS43LTQzbDAtMjkuMSAxMi45IDBjOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUgMTQuNy0xNCAxNC43bC0xMi42IDB6bTU3LjEgMzQuOGMwIDUuOCAyLjQgOC4yIDguMiA4LjJsMzcuNiAwYzUuOCAwIDguMi0yLjQgOC4yLTguMmwwLTEzLTE0LjMgMCAwIDUuMmMwIDEuNy0xIDIuNi0yLjYgMi42bC0xOC42IDBjLTEuNyAwLTIuNi0xLTIuNi0yLjZsMC02MS4yYzAtNS43LTIuNC04LjItOC4yLTguMmwtMTUuNCAwIDAgMTMuNCA1LjIgMGMxLjcgMCAyLjYgMSAyLjYgMi42bDAgNjEuMi0uMSAwem02My40IDBjMCA1LjggMi40IDguMiA4LjIgOC4ybDM4LjcgMGM1LjcgMCA4LjItMi40IDguMi04LjJsMC0xMy0xNC4zIDAgMCA1LjJjMCAxLjctMSAyLjYtMi42IDIuNmwtMTkuNyAwYy0xLjcgMC0yLjYtMS0yLjYtMi42bDAtMjAuMyAyNy43IDAgMC0xMy40LTI3LjcgMCAwLTIyLjQgMTkuMiAwYzEuNyAwIDIuNiAxIDIuNiAyLjZsMCA1LjIgMTQuMiAwIDAtMTNjMC01LjctMi41LTguMi04LjItOC4ybC01MS42IDAgMCAxMy40IDcuOCAwIDAgNjMuOSAuMSAwem01OC45LTc2bDAgNS45IDEuNiAwIDAtNS45IDIuNyAwIDAtMS4yLTcgMCAwIDEuMiAyLjcgMHptNS43LTEuMmwwIDcuMSAxLjUgMCAwLTUuNyAyLjMgNS43IDEuMyAwIDIuMy01LjcgMCA1LjcgMS41IDAgMC03LjEtMi4zIDAtMi4xIDUuMS0yLjEtNS4xLTIuNCAweiJdfSxDdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsWyJ0d2l0dGVyLXNxdWFyZSJdLCJmMDgxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM1MS4zIDE5OS4zYzAgODYuNy02NiAxODYuNi0xODYuNiAxODYuNi0zNy4yIDAtNzEuNy0xMC44LTEwMC43LTI5LjQgNS4zIC42IDEwLjQgLjggMTUuOCAuOCAzMC43IDAgNTguOS0xMC40IDgxLjQtMjgtMjguOC0uNi01My0xOS41LTYxLjMtNDUuNSAxMC4xIDEuNSAxOS4yIDEuNSAyOS42LTEuMi0zMC02LjEtNTIuNS0zMi41LTUyLjUtNjQuNGwwLS44YzguNyA0LjkgMTguOSA3LjkgMjkuNiA4LjMtOS02LTE2LjQtMTQuMS0yMS41LTIzLjZzLTcuOC0yMC4yLTcuNy0zMWMwLTEyLjIgMy4yLTIzLjQgOC45LTMzLjEgMzIuMyAzOS44IDgwLjggNjUuOCAxMzUuMiA2OC42LTkuMy00NC41IDI0LTgwLjYgNjQtODAuNiAxOC45IDAgMzUuOSA3LjkgNDcuOSAyMC43IDE0LjgtMi44IDI5LTguMyA0MS42LTE1LjgtNC45IDE1LjItMTUuMiAyOC0yOC44IDM2LjEgMTMuMi0xLjQgMjYtNS4xIDM3LjgtMTAuMi04LjkgMTMuMS0yMC4xIDI0LjctMzIuOSAzNCAuMiAyLjggLjIgNS43IC4yIDguNXoiXX0scnZ0PUN1ZSxzdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltIixpY29uOls1MTIsNTEyLFtdLCJlODhhIiwiTTMwMy4zIDU0LjVsMC0xMi4zIDQtMy43IDcuOS03LjIgMy41LTMuMiAxNjggMCAxNS4xIDE1LjEgMCAzOC45LTMuNSAzLjYtODAuOSA4Mi45IDg2LjkgODYuOS05MS4yIDkxLjIgOC45IDAgNy42LTguMyAxLS45YzEuMS0uOCAyLjUtMS4yIDMuOS0xLjJsMjguOSAwIDEuNSAuMmMxLjUgLjQgMi44IDEuMiAzLjggMi41bDcuNiAxMC4yYzEuMyAxLjcgMS42IDMuOSAxIDUuOWwtMjIuMyA3Mi41IDEuMiAwYzIuMiAwIDQuMiAxLjEgNS41IDIuOXMxLjUgNC4xIC43IDYuMUw0NTkgNDQ1Yy0xIDIuNi0zLjQgNC4yLTYuMiA0LjJsLTQwLjQgMGMtMi4xIDAtNC4xLTEtNS4zLTIuN3MtMS42LTMuOS0xLTUuOWwyMC02My4yLTIyLjIgMC0xNi4yIDUwLjdjMi4xIC4xIDQuMSAxLjEgNS4zIDIuOSAxLjIgMS44IDEuNCA0LjIgLjYgNi4ybC0zLjMgNy45Yy0xIDIuNS0zLjUgNC4xLTYuMSA0LjFsLTM2LjggMGMtMi4xIDAtNC4xLTEtNS40LTIuN3MtMS42LTMuOS0xLTUuOWwxMC0zMi4xLTIzLjkgMjMuOGMuMyAxLjIgLjMgMi41LS4xIDMuOGwtMi45IDguNmMtLjkgMi43LTMuNCA0LjUtNi4zIDQuNWwtNy40IDAtNTQuNiA1NC42LTgzLjgtODMuOC0zMS42IDMyLjUtMy42IDMuNy00OS4yIDAtMi44LTEuN2MtOC44LTUuMS0xNC44LTguNS0xNy45LTEwLjNsMC0xMjkuMy01OC41LTU4LjUgMi42LTIuNiA1NS45LTU2IDAtOTkuNC0xMi42IDAtMTAuOC0xMC44LTMuNi0zLjYgMC00MC43IDMuMi0zLjUgNy45LTguNSAzLjctMy45IDE2Ni42IDAgOCA4IDI3LjQtMjcuNCA0Ni40IDQ2LjR6bS0yNTEtNS42bDAgMzAuMyA5LjQgNy44IDE4LjkgMCAwIDM0Ny45IDExLjQgMTAuMyAzOC4yIDAgOTEtOTNjMC0uNCAuMS0uOCAuMi0xLjFsMi42LTEwLjVjLjctMi45IDMuNC01IDYuNC01bDcuMSAwIDE1LjUtMTUuOS0yLTJjLTEuOC0xLjgtMi40LTQuNS0xLjUtNi45bDYuOS0xOS4zYy40LTEuMSAxLjEtMiAxLjktMi44bDYuOS01LjljMS4yLTEgMi44LTEuNiA0LjMtMS42bDE5LjcgMCAxLjMgLjJjLjEgMCAuMSAuMSAuMiAuMWwxOTkuMi0yMDMuNSAwLTI4LjctOC4yLTcuNC0xNTYuMiAwLTcuOCA3LjggMCAzMC41IDguMiA3LjQgMjEgMC0xNDcgMTQ2LjQgMC0xNDYuNiAxNi45IDAgOC43LTguNyAwLTI3LjctNy40LTkuOS0xNTcuNiAwLTggOHpNMjI3LjYgMzUyLjdsMTQuOCAwLTMxLjggOTAuOSA0NS4zIDAgMy05LjYtMTIuNSAwIDMxLjUtOTEuOS00Ny42IDAtMi42IDEwLjV6bTEzNi45IDFsLTE2LjQgMC0xMC41LTEwLjgtMzUuOCAwLTMuMyA5LjggMTEuOCAwLTMwLjUgODkuOSAzOC4xIDAgMi45LTguNi04LjggMCAyMC02MyAzNy44IDAtMjIuMyA3MS42IDM2LjggMCAzLjMtNy45LTguOCAwIDIwLjMtNjQgMzYuMSAwLTIyLjcgNzEuOSA0MC40IDAgMy4zLTguNi0xMC4yIDAgMjUtODEuMS03LjUtMTAuMi0yOC45IDAtOS41IDEwLjUtMTcuNCAwLTkuOS0xMC44LTIzLjMgMC05LjggMTEuMnpNMjYyLjUgMjkzLjZsLTYuOSAxOS4zIDUuMyA1LjMgMjEuMyAwIDUuNi01LjYgNS45LTIwLjMtNC42LTQuNi0xOS43IDAtNi45IDUuOXoiXX0sbmVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbNjI1MDEsNjI2OTQsImZvbnQtYXdlc29tZS1mbGFnIiwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbCJdLCJmMmI0IiwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTIgMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCA0MTkgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjQgMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzIgNDkzLjcgMTMzLjFjMS41LTMuNCAyLjMtNyAyLjMtMTAuNyAwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2eiJdfSxpdnQ9bmVlLG92dD1uZWUsX3VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpcnNpbmRoYW5kd2VyayIsaWNvbjpbNDQ4LDUxMixbIndzaCJdLCJlMmQwIiwiTTE4LjkgNDc5LjhsODMuNCAwIDAtMTEyLTgzLjQgNDcgMCA2NXptMzI5IDBsODIuNCAwIDAtNjUtODIuNC00NyAwIDExMnptMC00NDhsMCAyMTkuOC0xMjMuNi03Mi40LTEyMS43IDcyLjQgMC0yMTkuOC04My43IDAgMCAzNjAuOCAyMDUuNC0xMjIuMyAyMDYgMTIyLjMgMC0zNjAuOC04Mi4zIDB6Il19LG52dD1fdWUsbHZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inpvb20iLGljb246WzY0MCw1MTIsW10sImU4N2IiLCJNMTM0LjIgMzI2LjZsLTExNC40IDBjLTggMC0xNS4yLTQuOC0xOC4zLTEyLjJTLjEgMjk4LjYgNS44IDI5Mi45bDc5LjMtNzkuMy01Ni44IDBDMTIuNyAyMTMuNiAwIDIwMSAwIDE4NS40bDEwNS41IDBjOCAwIDE1LjIgNC44IDE4LjMgMTIuMnMxLjQgMTUuOS00LjMgMjEuNmwtNzkuMyA3OS4zIDY1LjcgMGMxNS42IDAgMjguMyAxMi42IDI4LjMgMjguM3pNNjQwIDIzOC4zYzAtMzAuNC0yNC43LTU1LjEtNTUuMS01NS4xLTE2LjIgMC0zMC45IDcuMS00MSAxOC4zLTEwLjEtMTEuMi0yNC43LTE4LjMtNDEtMTguMy0zMC40IDAtNTUuMSAyNC43LTU1LjEgNTUuMWwwIDg4LjNjMTUuNiAwIDI4LjMtMTIuNyAyOC4zLTI4LjNsMC02MGMwLTE0LjggMTItMjYuOCAyNi44LTI2LjhzMjYuOCAxMiAyNi44IDI2LjhsMCA2MGMwIDE1LjYgMTIuNiAyOC4zIDI4LjMgMjguM2wwLTg4LjNjMC0xNC44IDEyLTI2LjggMjYuOC0yNi44czI2LjggMTIgMjYuOCAyNi44bDAgNjBjMCAxNS42IDEyLjYgMjguMyAyOC4zIDI4LjNsMC04OC4zek0yODguMiAyNTZhNzIuOCA3Mi44IDAgMSAxIDE0NS41IDAgNzIuOCA3Mi44IDAgMSAxIC0xNDUuNSAwem0xMTcuMyAwYTQ0LjUgNDQuNSAwIDEgMCAtODkgMCA0NC41IDQ0LjUgMCAxIDAgODkgMHptLTI3NC4xIDBhNzIuOCA3Mi44IDAgMSAxIDE0NS41IDAgNzIuOCA3Mi44IDAgMSAxIC0xNDUuNSAwem0xMTcuMyAwYTQ0LjUgNDQuNSAwIDEgMCAtODkgMCA0NC41IDQ0LjUgMCAxIDAgODkgMHoiXX0sY3Z0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvbmZsdWVuY2UiLGljb246WzUxMiw1MTIsW10sImY3OGQiLCJNMi44IDQxMi4yYy00LjUgNy42LTIuMSAxNy41IDUuNSAyMi4ybDEwNS45IDY1LjJjNy43IDQuNyAxNy43IDIuNCAyMi40LTUuMyAwLS4xIC4xLS4yIC4xLS4yIDY3LjEtMTEyLjIgODAuNS05NS45IDI4MC45LS43IDguMSAzLjkgMTcuOCAuNCAyMS43LTcuNyAuMS0uMSAuMS0uMyAuMi0uNGw1MC40LTExNC4xYzMuNi04LjEtLjEtMTcuNi04LjEtMjEuMy0yMi4yLTEwLjQtNjYuMi0zMS4yLTEwNS45LTUwLjMtMjQ3LjktMTIwLjYtMzMwLjggNDUuNy0zNzMuMSAxMTIuNnpNNTEwLjIgMTAwLjFjNC41LTcuNiAyLjEtMTcuNS01LjUtMjIuMkwzOTguOSAxMi44Yy03LjUtNS0xNy42LTMuMS0yMi42IDQuNC0uMiAuMy0uNCAuNi0uNiAxLTY3LjMgMTEyLjYtODEuMSA5NS42LTI4MC42IC45LTguMS0zLjktMTcuOC0uNC0yMS43IDcuNy0uMSAuMS0uMSAuMy0uMiAuNEwyMi43IDE0MS4zYy0zLjYgOC4xIC4xIDE3LjYgOC4xIDIxLjMgMjIuMiAxMC40IDY2LjMgMzEuMiAxMDYgNTAuNCAyNDggMTIwIDMzMC44LTQ1LjQgMzczLjQtMTEyLjl6Il19LGR2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWdnIixpY29uOls1MTIsNTEyLFtdLCJmMWE2IiwiTTgxLjcgMTcyLjNsLTgxLjcgMCAwIDE3NC40IDEzMi43IDAgMC0yNTAuNy01MSAwIDAgNzYuM3ptMCAxMzMuNGwtMzAuOCAwIDAtOTIuMyAzMC44IDAgMCA5Mi4zek0zNzguOSAxNzIuM2wwIDE3NC40IDgxLjggMCAwIDI4LjUtODEuOCAwIDAgNDAuOCAxMzMuMSAwIDAtMjQzLjctMTMzLjEgMHptODEuOCAxMzMuNGwtMzAuOCAwIDAtOTIuMyAzMC44IDAgMCA5Mi4zem0tMjM1LjYgNDFsODIuMSAwIDAgMjguNS04Mi4xIDAgMCA0MC44IDEzMy4zIDAgMC0yNDMuNy0xMzMuMyAwIDAgMTc0LjR6bTUxLjItMTMzLjNsMzAuOCAwIDAgOTIuMy0zMC44IDAgMC05Mi4zek0xNTMuMyA5Nmw1MS4zIDAgMCA1MS01MS4zIDAgMC01MXptMCA3Ni4zbDUxLjMgMCAwIDE3NC40LTUxLjMgMCAwLTE3NC40eiJdfSx1dnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhyZWFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxOCIsIk0zMzEuNSAyMzUuN2MyLjIgLjkgNC4yIDEuOSA2LjMgMi44IDI5LjIgMTQuMSA1MC42IDM1LjIgNjEuOCA2MS40IDE1LjcgMzYuNSAxNy4yIDk1LjgtMzAuMyAxNDMuMi0zNi4yIDM2LjItODAuMyA1Mi41LTE0Mi42IDUzbC0uMyAwYy03MC4yLS41LTEyNC4xLTI0LjEtMTYwLjQtNzAuMi0zMi4zLTQxLTQ4LjktOTguMS00OS41LTE2OS42bDAtLjVDMTcgMTg0LjMgMzMuNiAxMjcuMiA2NS45IDg2LjIgMTAyLjIgNDAuMSAxNTYuMiAxNi41IDIyNi40IDE2bC4zIDBjNzAuMyAuNSAxMjQuOSAyNCAxNjIuMyA2OS45IDE4LjQgMjIuNyAzMiA1MCA0MC42IDgxLjdsLTQwLjQgMTAuOGMtNy4xLTI1LjgtMTcuOC00Ny44LTMyLjItNjUuNC0yOS4yLTM1LjgtNzMtNTQuMi0xMzAuNS01NC42LTU3IC41LTEwMC4xIDE4LjgtMTI4LjIgNTQuNC0yNi4yIDMzLjMtMzkuOCA4MS41LTQwLjMgMTQzLjIgLjUgNjEuNyAxNC4xIDEwOS45IDQwLjMgMTQzLjMgMjggMzUuNiA3MS4yIDUzLjkgMTI4LjIgNTQuNCA1MS40LS40IDg1LjQtMTIuNiAxMTMuNy00MC45IDMyLjMtMzIuMiAzMS43LTcxLjggMjEuNC05NS45LTYuMS0xNC4yLTE3LjEtMjYtMzEuOS0zNC45LTMuNyAyNi45LTExLjggNDguMy0yNC43IDY0LjgtMTcuMSAyMS44LTQxLjQgMzMuNi03Mi43IDM1LjMtMjMuNiAxLjMtNDYuMy00LjQtNjMuOS0xNi0yMC44LTEzLjgtMzMtMzQuOC0zNC4zLTU5LjMtMi41LTQ4LjMgMzUuNy04MyA5NS4yLTg2LjQgMjEuMS0xLjIgNDAuOS0uMyA1OS4yIDIuOC0yLjQtMTQuOC03LjMtMjYuNi0xNC42LTM1LjItMTAtMTEuNy0yNS42LTE3LjctNDYuMi0xNy44bC0uNyAwYy0xNi42IDAtMzkgNC42LTUzLjMgMjYuM2wtMzQuNC0yMy42YzE5LjItMjkuMSA1MC4zLTQ1LjEgODcuOC00NS4xbC44IDBjNjIuNiAuNCA5OS45IDM5LjUgMTAzLjcgMTA3LjdsLS4yIC4yIC4xIDB6bS0xNTYgNjguOGMxLjMgMjUuMSAyOC40IDM2LjggNTQuNiAzNS4zIDI1LjYtMS40IDU0LjYtMTEuNCA1OS41LTczLjItMTMuMi0yLjktMjcuOC00LjQtNDMuNC00LjQtNC44IDAtOS42IC4xLTE0LjQgLjQtNDIuOSAyLjQtNTcuMiAyMy4yLTU2LjIgNDEuOGwtLjEgLjF6Il19LFR1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cHJlc3NyIixpY29uOls1MTIsNTEyLFsicmVuZGFjdCJdLCJmM2U0IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDI3LjMgMTY2LjZjLTE1LjIgMzQuNS0zMC40IDY5LTQ1LjYgMTAzLjUtMi40IDUuNS02LjkgOC4yLTEzIDguMi0yMyAwLTQ2IC4xLTY5IDAtNS4xIDAtOC4yIDEuOS0xMC4zIDYuNy0xMC4yIDIzLjYtMjAuNiA0Ny0zMSA3MC41LTEuNSAzLjUtNC4xIDUuMy03LjkgNS4zLTQ1LjkgMC05MS45IDAtMTM3LjggMC0zLjEgMC01LjYtMS4xLTcuNy0zLjQtMTEuMi0xMi4zLTIyLjUtMjQuNi0zMy43LTM2LjktMi43LTMtMi44LTYuMi0xLjItOS43IDguNy0xOS41IDE3LjMtMzkuMSAyNS45LTU4LjcgMTIuOS0yOS40IDI1LjktNTguNyAzOC43LTg4LjEgMS43LTMuOSA0LjMtNS43IDguNS01LjcgMTQuMiAuMSAyOC41IDAgNDIuNyAwIDYuMiAwIDkuMiA0LjggNi43IDEwLjYtMTMuNiAzMC44LTI3LjIgNjEuNi00MC43IDkyLjMtNS43IDEzLTExLjQgMjYtMTcuMSAzOS0zLjkgOSA3LjEgMTIgMTEgNS42IC4yLS40LTEuNCA0LjIgMzAtNjcuNyAxLjQtMy4xIDMuNC00LjQgNi44LTQuNCAxNS4yIC4xIDMwLjQgMCA0NS42IDAgNS42IDAgNy45IDMuNiA1LjcgOC43LTguMyAxOS0xNi43IDM3LjktMjUgNTYuOS01IDExLjQgOC4xIDEyLjUgMTEuMyA1LjMgMC0uMSAyNy45LTYzLjMgMzIuMi03My4yIDItNC42IDUuNC02LjUgMTAuMy02LjUgMjYuNCAuMSA1Mi45IDAgNzkuMyAwIDEyLjQgMCAxMy45LTEzLjYgMy45LTEzLjYtMjUuMyAwLTUwLjUgMC03NS44IDAtNi4zIDAtNy44LTIuNS01LjMtOC4zIDUuOC0xMy4xIDExLjYtMjYuMSAxNy4zLTM5LjIgMS43LTQgNC41LTUuOCA4LjgtNS44IDIzLjEgLjEgMjYgMCAxMzAuOCAwIDYuMSAwIDggMi44IDUuNiA4LjN6Il19LHB2dD1UdWUsZnZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmIxIiwiTTkxLjMgNzZsMTg2IDAtNyAxOC45LTE3OSAwYy0zOS43IDAtNzEuOSAzMS42LTcxLjkgNzAuM2wwIDIwNS40YzAgMzUuNCAyNC45IDcwLjMgODQgNzAuM2wwIDE5LjEtMTIuMSAwQzQxLjIgNDYwIDAgNDE5LjggMCAzNzAuNUwwIDE2NS4yQzAgMTE1LjkgNDAuNyA3NiA5MS4zIDc2ek0zMjAuNCAyMGw2Ni41IDBjLTE0My44IDM3OC4xLTE0NS43IDM5OC45LTE4NC43IDQzOS4zLTIwLjggMjEuNi00OS4zIDMxLjctNzguMyAzMi43bDAtNTEuMWM0OS4yLTcuNyA2NC42LTQ5LjkgNjQuNi03NS4zIDAtMjAuMSAuNi0xMi42LTgyLjEtMjIzLjJsNjEuNCAwIDUwLjQgMTU2LjYgMTAyLjItMjc5ek00NDggMTYxLjVsMCAyOTguNS0yMTQgMGM2LjYtOS42IDEwLjctMTYuMyAxMi4xLTE5LjRsMTgyLjUgMCAwLTI3OS4xYzAtMzIuNS0xNy4xLTUxLjktNDguMi02Mi45TDM4Ny4xIDgxYzQxLjcgMTMuNiA2MC45IDQzLjEgNjAuOSA4MC41eiJdfSxodnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmltYmxyIixpY29uOlszODQsNTEyLFtdLCJmNWE4IiwiTTI0Ni42IDM1My4zYTI3IDI3IDAgMSAxIDAtNTQgMjcgMjcgMCAxIDEgMCA1NHptLTc5LjQtMjdhMjcuMSAyNy4xIDAgMSAxIC01NC4zIDAgMjcuMSAyNy4xIDAgMSAxIDU0LjMgMHpNMTkxLjggMTU5QzE1NyAxNTkgODkuNCAxNzguOCA1OS4yIDIyN0wxNCAwIDE0IDMzNS41QzE0IDQzMy4xIDkzLjYgNTEyIDE5MS44IDUxMlMzNjkuNSA0MzMgMzY5LjUgMzM1LjUgMjkwLjEgMTU5IDE5MS44IDE1OXptMCAzMDguMWMtNzMuMyAwLTEzMi41LTU4LjktMTMyLjUtMTMxLjZzNTkuMi0xMzEuNiAxMzIuNS0xMzEuNiAxMzIuNSA1OC45IDEzMi41IDEzMS41LTU5LjMgMTMxLjYtMTMyLjUgMTMxLjZsMCAuMXoiXX0sbXZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeGVsZmVkIixpY29uOls1MTIsNTEyLFtdLCJlN2RiIiwiTTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnpNMjM1LjcgMzExLjlsNDcgMGM0NC4yIDAgODAuMS0zNC45IDgwLjEtNzhzLTM1LjktNzgtODAuMS03OGwtNjcuOCAwYy0yNS41IDAtNDYuMiAyMC4xLTQ2LjIgNDVsMCAxNzUuMSA2Ny02NC4xeiJdfSxndnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFob28iLGljb246WzUxMiw1MTIsW10sImYxOWUiLCJNMjIzLjggMTQxLjFsLTU2LjcgMTQzLjItNTYtMTQzLjItOTYuMSAwIDEwNS44IDI0OS4xLTM4LjYgODkuOCA5NC4yIDAgMTQwLjktMzM4LjktOTMuNiAwek0zMjkuMiAyNzYuOWE1OC4yIDU4LjIgMCAxIDAgMCAxMTYuNCA1OC4yIDU4LjIgMCAxIDAgMC0xMTYuNHpNMzk0LjcgMzJsLTkzIDIyMy41IDEwNC44IDAgOTIuNi0yMjMuNS0xMDQuNCAweiJdfSxidnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmx1ZXNreSIsaWNvbjpbNTc2LDUxMixbXSwiZTY3MSIsIk00MDcuOCAyOTQuN2MtMy4zLS40LTYuNy0uOC0xMC0xLjMgMy40IC40IDYuNyAuOSAxMCAxLjN6TTI4OCAyMjcuMUMyNjEuOSAxNzYuNCAxOTAuOSA4MS45IDEyNC45IDM1LjMgNjEuNi05LjQgMzcuNS0xLjcgMjEuNiA1LjUgMy4zIDEzLjggMCA0MS45IDAgNTguNFM5LjEgMTk0IDE1IDIxMy45YzE5LjUgNjUuNyA4OS4xIDg3LjkgMTUzLjIgODAuNyAzLjMtLjUgNi42LS45IDEwLTEuNC0zLjMgLjUtNi42IDEtMTAgMS40LTkzLjkgMTQtMTc3LjMgNDguMi02Ny45IDE2OS45IDEyMC4zIDEyNC42IDE2NC44LTI2LjcgMTg3LjctMTAzLjQgMjIuOSA3Ni43IDQ5LjIgMjIyLjUgMTg1LjYgMTAzLjQgMTAyLjQtMTAzLjQgMjguMS0xNTYtNjUuOC0xNjkuOS0zLjMtLjQtNi43LS44LTEwLTEuMyAzLjQgLjQgNi43IC45IDEwIDEuMyA2NC4xIDcuMSAxMzMuNi0xNS4xIDE1My4yLTgwLjcgNS45LTE5LjkgMTUtMTM4LjkgMTUtMTU1LjVzLTMuMy00NC43LTIxLjYtNTIuOWMtMTUuOC03LjEtNDAtMTQuOS0xMDMuMiAyOS44LTY2LjEgNDYuNi0xMzcuMSAxNDEuMS0xNjMuMiAxOTEuOHoiXX0sdnZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjcmliZCIsaWNvbjpbMzg0LDUxMixbXSwiZjI4YSIsIk00Mi42IDI1Mi43Yy0xNi4xLTE5LTI0LjctNDUuOS0yNC44LTc5LjkgMC0xMDAuNCA3NS4yLTE1My4xIDE2Ny4yLTE1My4xIDk4LjYtMS42IDE1Ni44IDQ5IDE4NC4zIDcwLjZsLTUwLjUgNzIuMS0zNy4zLTI0LjYgMjYuOS0zOC42Yy0zNi41LTI0LTc5LjQtMzYuNS0xMjMtMzUuOC01MC43LS44LTExMS43IDI3LjItMTExLjcgNzYuMiAwIDE4LjcgMTEuMiAyMC43IDI4LjYgMTUuNiAyMy4zLTUuMyA0MS45IC42IDU1LjggMTQgMjYuNCAyNC4zIDIzLjIgNjcuNi0uNyA5MS45LTI5LjIgMjkuNS04NS4yIDI3LjMtMTE0LjgtOC40em0zMTcuNyA1LjljLTE1LjUtMTguOC0zOC45LTI5LjQtNjMuMi0yOC42LTM4LjEtMi03MS4xIDI4LTcwLjUgNjcuMi0uNyAxNi44IDYgMzMgMTguNCA0NC4zIDE0LjEgMTMuOSAzMyAxOS43IDU2LjMgMTQuNCAxNy40LTUuMSAyOC42LTMuMSAyOC42IDE1LjYgMCA0LjMtLjUgOC41LTEuNCAxMi43LTE2LjcgNDAuOS01OS41IDY0LjQtMTIxLjQgNjQuNC01MS45IC4yLTEwMi40LTE2LjQtMTQ0LjEtNDcuM2wzMy43LTM5LjQtMzUuNi0yNy40LTYwLjggNzEuOCAxNS40IDEzLjhjNTIuNSA0Ni44IDEyMC40IDcyLjUgMTkwLjcgNzIuMiA1MS40IDAgOTQuNC0xMC41IDEzMy42LTQ0LjEgNTcuMS01MS40IDU0LjItMTQ5LjIgMjAuMy0xODkuNnoiXX0seHZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtcGQiLGljb246WzUxMiw1MTIsW10sImY0ZWMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDQ0OS41Yy0xMzkuMiAwLTIzNS44LTEzOC0xOTAuMi0yNjcuOWw3OC44IDM1LjFjLTIuMSAxMC41LTMuMyAyMS41LTMuMyAzMi45IDAgOTkgNzMuOSAxMjYuOSAxMjAuNCAxMjYuOSAyMi45IDAgNTMuNS02LjcgNzkuNC0yOS41TDMwNSAzMTEuMWMtNS41IDYuMy0xNy42IDE2LjctMzYuMyAxNi43LTM3LjggMC01My43LTM5LjktNTMuOS03MS45IDIzMC40IDEwMi42IDIxNi41IDk2LjUgMjE3LjkgOTYuOC0zNC4zIDYyLjQtMTAwLjYgMTA0LjgtMTc2LjcgMTA0Ljh6bTE5NC4yLTE1MGwtMjI0LTEwMGMxOC44LTM0IDU0LjktMzAuNyA3NC43LTExbDQwLjQtNDEuNmMtMjcuMS0yMy4zLTU4LTI3LjUtNzguMS0yNy41LTQ3LjQgMC04MC45IDIwLjUtMTAwLjcgNTEuNkw4Ny42IDE0NS42YzM2LjEtNTQuOSA5OC4xLTkxLjIgMTY4LjUtOTEuMiAxMTEuMSAwIDIwMS41IDkwLjQgMjAxLjUgMjAxLjUgMCAxOC0yLjQgMzUuNC02LjggNTItLjMtLjEtLjQtLjItLjYtLjR6Il19LHl2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlYXJseWJpcmRzIixpY29uOls1MTIsNTEyLFtdLCJmMzlhIiwiTTMyOS4zIDQ3LjVjMS4yLTEzIDIxLjMtMTQgMzYuNi04LjcgLjkgLjMgMjYuMiA5LjcgMTkgMTUuMi0yNy45LTcuNC01Ni40IDE4LjItNTUuNi02LjV6bS0yMDEgNi45YzMwLjctOC4xIDYyIDIwIDYxLjEtNy4xLTEuMy0xNC4yLTIzLjQtMTUuMy00MC4yLTkuNi0xIC4zLTI4LjcgMTAuNS0yMC45IDE2Ljd6TTMzNS41IDE2MGExNiAxNiAwIDEgMCAwIDMyIDE2IDE2IDAgMSAwIDAtMzJ6bS0xNTkuNyAwYTE2IDE2IDAgMSAwIDAgMzIgMTYgMTYgMCAxIDAgMC0zMnpNNDk0LjMgMzIzLjJjLTkuOSAyNC00MC43IDExLTYzLjktMS4yLTEzLjUgNjkuMS01OC4xIDExMS40LTEyNi4zIDEyNC4yIC4zIC45LTItLjEgMjQgMSAzMy42IDEuNCA2My44LTMuMSA5Ny40LTgtMTkuOC0xMy44LTExLjQtMzcuMS05LjgtMzguMSAxLjQtLjkgMTQuNyAxLjcgMjEuNiAxMS41IDguNi0xMi41IDI4LjQtMTQuOCAzMC4yLTEzLjYgMS42IDEuMSA2LjYgMjAuOS02LjkgMzQuNiA0LjctLjkgOC4yLTEuNiA5LjgtMi4xIDIuNi0uOCAxNy43IDExLjMgMy4xIDEzLjMtMTQuMyAyLjMtMjIuNiA1LjEtNDcuMSAxMC44LTQ1LjkgMTAuNy04NS45IDExLjgtMTE3LjcgMTIuOGwxIDExLjZjMy44IDE4LjEtMjMuNCAyNC4zLTI3LjYgNi4yIC44IDE3LjktMjcuMSAyMS44LTI4LjQtMWwtLjUgNS4zYy0uNyAxOC40LTI4LjQgMTcuOS0yOC4zLS42LTcuNSAxMy41LTI4LjEgNi44LTI2LjQtOC41bDEuMi0xMi40Yy0zNi43IC45LTU5LjcgMy4xLTYxLjggMy4xLTIwLjkgMC0yMC45LTMxLjYgMC0zMS42IDIuNCAwIDI3LjcgMS4zIDYzLjIgMi44LTYxLjEtMTUuNS0xMDMuNy01NS0xMTQuOS0xMTguMi0yNSAxMi44LTU3LjUgMjYuOC02OC4yIC44LTEwLjUtMjUuNCAyMS41LTQyLjYgNjYuOC03My40IC43LTYuNiAxLjYtMTMuMyAyLjctMTkuOC0xNC40LTE5LjYtMTEuNi0zNi4zLTE2LjEtNjAuNC0xNi44IDIuNC0yMy4yLTkuMS0yMy42LTIzLjEgLjMtNy4zIDIuMS0xNC45IDIuNC0xNS40IDEuMS0xLjggMTAuMS0yIDEyLjctMi42IDYtMzEuNyA1MC42LTMzLjIgOTAuOS0zNC41IDE5LjctMjEuOCA0NS4yLTQxLjUgODAuOS00OC4zLTE1LjMtMTkuNC0zLjQtMzkuOS0yLjQtNDAuNCAxLjctLjggMjEuMiA0LjMgMjYuMyAyMy4yIDUuMi04LjggMTguMy0xMS40IDE5LjYtMTAuNyAxLjEgLjYgNi40IDE1LTQuOSAyNS45IDQwLjMgMy41IDcyLjIgMjQuNyA5NiA1MC43IDM2LjEgMS41IDcxLjggNS45IDc3LjEgMzQgMi43IC42IDExLjYgLjggMTIuNyAyLjYgLjMgLjUgMi4xIDguMSAyLjQgMTUuNC0uNSAxMy45LTYuOCAyNS40LTIzLjYgMjMuMS0zLjIgMTcuMy0yLjcgMzIuOS04LjcgNDcuNyAyLjQgMTEuNyA0IDIzLjggNC44IDM2LjQgMzcgMjUuNCA3MC4zIDQyLjUgNjAuMyA2Ni45ek0yMjMuNSAxNTkuOWMuOS00NC0zNy45LTQyLjItNzguNi00MC4zLTIxLjcgMS0zOC45IDEuOS00NS41IDEzLjktMTEuNCAyMC45IDUuOSA5Mi45IDIzLjIgMTAxLjIgOS44IDQuNyA3My40IDcuOSA4Ni4zLTcuMSA4LjItOS40IDE1LTQ5LjQgMTQuNi02Ny43em01MiA1OC4zYy00LjMtMTIuNC02LTMwLjEtMTUuMy0zMi43LTItLjUtOS0uNS0xMSAwLTEwIDIuOC0xMC44IDIyLjEtMTcgMzcuMiAxNS40IDAgMTkuMyA5LjcgMjMuNyA5LjcgNC4zIDAgNi4zLTExLjMgMTkuNi0xNC4yem0xMzUuNy04NC43Yy02LjYtMTIuMS0yNC44LTEyLjktNDYuNS0xMy45LTQwLjItMS45LTc4LjItMy44LTc3LjMgNDAuMy0uNSAxOC4zIDUgNTguMyAxMy4yIDY3LjggMTMgMTQuOSA3Ni42IDExLjggODYuMyA3LjEgMTUuOC03LjYgMzYuNS03OC45IDI0LjMtMTAxLjN6Il19LHd2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzeW1mb255Y2FzdHMiLGljb246WzU3Niw1MTIsW10sImU4YWIiLCJNMjkzLjggMzQyLjVjMy40LTEuNSA2LjgtMS41IDEwLjIgMGw1NC4yIDIyLjZjMi42IC45IDQuNyAyLjYgNi4yIDQuOHMyLjMgNC44IDIuMyA3LjZjMCAxOS40LTMuNiAzNy4yLTEwLjcgNTMuNC02LjIgMTMuNi0xNC41IDI1LjQtMjQuOCAzNS42LTguNyA4LjUtMTcuNyAxNC42LTI3LjEgMTguNC0zLjQgMS41LTYuOCAxLjUtMTAuMiAwLTEwLjctNC4zLTIwLjYtMTEuMy0yOS43LTIwLjktMTAtMTAuNC0xNy44LTIyLjUtMjMuNS0zNi40LTYuNC0xNS42LTkuNi0zMi4zLTkuNi01MCAwLTIuOCAuNy01LjQgMi4yLTcuNiAxLjUtMi4zIDMuNi0zLjkgNi4yLTQuOGw1NC4yLTIyLjZ6TTQ3OS43IDQ4My44YTcwLjEgNzAuMSAwIDEgMSAwLTE0MC4yIDcwLjEgNzAuMSAwIDEgMSAwIDE0MC4yek0yNDQuNiAzNzcuNmMwIDE1LjMgMi42IDI5LjcgNy45IDQzLjIgNC45IDEyLjQgMTEuNiAyMy4zIDIwLjEgMzIuNSA4LjEgOC45IDE2LjkgMTUuMyAyNi4zIDE5LjIgOS4yLTMuOCAxNy44LTEwIDI1LjctMTguNyA4LjctOS4yIDE1LjQtMTkuOSAyMC4zLTMyLjIgNS41LTEzLjcgOC4yLTI4LjQgOC4yLTQ0LjFsLTU0LjItMjIuNi01NC4yIDIyLjZ6bTIzNS4xLTIwLjNhNTYuNSA1Ni41IDAgMSAwIDAgMTEzIDU2LjUgNTYuNSAwIDEgMCAwLTExM3ptLTM1Mi44IDIuM2M0LjEgMCA3LjYgMS4zIDEwLjQgMy45IDIuOCAyLjYgNC4yIDUuOSA0LjIgOS42bDAgMTYuNCAzMS4xLTE5LjJjMS41LTEuMSAzLjItMS43IDUuMS0xLjcgMi40IDAgNC42IC44IDYuMyAyLjVzMi43IDMuOCAyLjcgNi4ybDAgNzIuNmMwIDIuNi0uOSA0LjgtMi43IDYuNXMtMy45IDIuNS02LjMgMi41Yy0xLjkgMC0zLjYtLjYtNS4xLTEuN2wtMzEuMS0xOS4yIDAgMTYuNGMwIDMuOC0xLjQgNy00LjIgOS42cy02LjMgNC0xMC40IDRsLTg4LjIgMGMtNC4xIDAtNy42LTEuMy0xMC41LTRzLTQuMi01LjgtNC4yLTkuNmwwLTgxLjNjMC0zLjggMS40LTcgNC4yLTkuNnM2LjMtMy45IDEwLjUtMy45bDg4LjIgMHptMTcyIDk3LjhjLTExLjMtNy0yMC40LTE2LjQtMjcuNC0yOC4zLTcuNS0xMi40LTExLjktMjYuNi0xMy00Mi40bDQwLjQtMTcgMCA4Ny42ek0zNy41IDM3My40bDAgODAuOGMuMiAuMiAuNiAuMyAxLjIgLjNsODguMiAwYy40IDAgLjctLjEgMS4xLS4zbDAtODAuOGMtLjItLjItLjYtLjMtMS4yLS4zbC04OC4xIDBjLS40IDAtLjggLjEtMS4yIC4zem00MTguNCA1LjFjMi4zLTEuMyA0LjUtMS4zIDYuOCAwbDQ5LjggMzAuMmMyLjMgMS4zIDMuNCAzLjMgMy40IDUuOXMtMS4xIDQuNi0zLjQgNS45bC00OS44IDI4LjZjLTIuMyAxLjMtNC41IDEuMy02LjggMHMtMy40LTMuMy0zLjQtNS45bDAtNTguOGMwLTIuNiAxLjEtNC42IDMuNC01Ljl6TTE0MS41IDQwNS41bDAgMTYuNCAzMS43IDE5LjggMC01Ni0zMS43IDE5Ljh6TTQ1MS4xIDUuMmMzNS44LTEuMiA2Mi45IDE1LjEgNjMuOCA0MC44IC40IDEwLjktNS45IDMyLjItMjcuOCAzMy0xNi4zIC42LTI3LjYtOS4yLTI4LjEtMjQuMS0uMi01LjQgMS4yLTEwLjIgNC45LTE1LjggMy42LTcuMSA0LjQtNy45IDQuMy0xMS0uMy05LjQtMTQuNS05LjctMTguMy05LjUtNTMgMS44LTY2LjkgNzMuMy03OC4yIDEzMS41bC01LjYgMzAuN2MzMC41IDQuNSA1Mi4yLTEgNjQuMi04LjggMTctMTEtNC44LTIyLjQtMi0zNSAyLjgtMTIuOCAxNC40LTE5IDIzLjctMTkuMiAxMi45LS4zIDIyLjIgMTMuMSAyMS45IDI2LjctLjUgMjIuNi0zMC40IDUzLjYtOTAuMiA1Mi4zLTcuMy0uMi0xNC0uNy0yMC4yLTEuNGwtMTEuMyA2Mi4zYy0zIDE0LTYuMyAyOS41LTEwLjcgNDUuOGwyMDQgMCAuOSAuMWMuMyAuMSAuNiAuMSAuOCAuMiAyLjIgLjYgNCAyLjUgNC41IDQuOCAuNiAyLjgtMSA2LTMuNyA3LjItLjUgLjItMS4xIC40LTEuNyAuNS0uMyAwLS42IDAtLjkgLjFsLTUxNS4zIDBjLS43LS4xLS45IDAtMS43LS4yLTIuNS0uNy00LjQtMy4xLTQuNi01LjctLjItMi4zIDEtNC42IDMtNS44IC43LS41IDEuNi0uOCAyLjQtLjkgLjMgMCAuNiAwIC44LS4xbDQ4LjQgMGMtMTcuMi0xNi44LTIwLTM3LjItMTYtNTAuNSA1LjQtMTcuNiAxOS40LTIwLjkgMzMtMTYuNyAxNC42IDQuNSAyMC4zIDIyLjMgMTYuMiAzNi0uNSAxLjUtMS4yIDMuOS0yLjggNy4yLTEuNyAzLjgtNC44IDcuMS02LjIgMTEuNS0xLjUgNC45IC43IDkuMSA0LjUgMTIuNmw1OC45IDBjNC4yLTQgNy40LTkgOS4xLTE0LjYgNS4zLTE3LTUuNS0yOC45LTEwLTMzLjVsLTIxLjctMjMuMmMtOS45LTExLjEtMzEuNy00MS45LTIxLjEtNzYuNSA0LjEtMTMuNCAxMi44LTI3LjUgMjUuMy0zNi45IDI2LjUtMTkuNyA1NS4zLTIzIDgyLjctMTUuMSAzNS41IDEwLjIgNTIuNSAzMy43IDc0LjYgNTEuOCAxMi40LTM2LjMgMjkuNS03MS45IDU1LjMtMTAxLjkgMjMuMy0yNy4zIDU0LjYtNDcuMSA5MC40LTQ4LjN6TTIyOS42IDEyMS4zYy0yMi4yLTYtMzUuNy0uOS00NS4yIDExLjItMTEuMyAxNC4zLTcuNSAzMi44IDMuMyA0My43bDE4IDE5LjljMjIgMjUuNSAzNC4xIDQ1LjMgMjkuNiA3Mi0yLjIgMTMuMS04LjUgMjUuMi0xNy45IDM1LjNsNTQuMiAwYzEtNS4xIDItMTAuNCAzLjEtMTUuOGwzLjYtMjEuOWM1LjktMjkuNCAxMi40LTYyLjIgMjIuMy05NC44LTI0LjEtMTguMS0zOC41LTQwLjctNzAuOS00OS41eiJdfSxMdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLW9kbm9rbGFzc25pa2kiLGljb246WzQ0OCw1MTIsWyJvZG5va2xhc3NuaWtpLXNxdWFyZSJdLCJmMjY0IiwiTTIyNCAxMzcuMWMtNS40LS4zLTEwLjggLjYtMTUuOSAyLjRzLTkuNyA0LjgtMTMuNiA4LjUtNyA4LjItOS4yIDEzLjItMy4yIDEwLjMtMy4yIDE1LjcgMS4xIDEwLjggMy4yIDE1LjcgNS4zIDkuNSA5LjIgMTMuMiA4LjYgNi42IDEzLjYgOC41IDEwLjUgMi43IDE1LjkgMi40YzUuNCAuMyAxMC44LS42IDE1LjktMi40czkuNy00LjggMTMuNi04LjUgNy04LjIgOS4yLTEzLjIgMy4yLTEwLjMgMy4yLTE1LjctMS4xLTEwLjgtMy4yLTE1LjctNS4zLTkuNS05LjItMTMuMi04LjYtNi42LTEzLjYtOC41LTEwLjUtMi43LTE1LjktMi40ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDI1OGE4MSA4MSAwIDEgMSAwLTE2Mi4xIDgxIDgxIDAgMSAxIDAgMTYyLjF6bTU5LjMgNi4yYzE2LjgtMTMuMiAyOS41LTUuNSAzNC4xIDMuNiA3LjggMTYtMS4xIDIzLjctMjEuNSAzNy0xNy4xIDEwLjktNDAuNyAxNS4yLTU2LjIgMTYuOGwxMyAxMi45IDQ3LjcgNDcuN2MxNy40IDE3LjktMTEgNDUuOC0yOC42IDI4LjYtMTItMTIuMi0yOS41LTI5LjctNDcuNy00Ny45bC00Ny43IDQ3LjljLTE3LjcgMTcuMi00Ni0xMS0yOC40LTI4LjYgMy43LTMuNyA3LjktNy45IDEyLjUtMTIuNSAxMC40LTEwLjQgMjIuNi0yMi43IDM1LjItMzUuMmwxMi45LTEyLjljLTE1LjQtMS42LTM5LjMtNS43LTU2LjYtMTYuOC0yMC4zLTEzLjMtMjkuMy0yMC45LTIxLjQtMzcgNC42LTkuMSAxNy4zLTE2LjggMzQuMS0zLjYgMCAwIDIyLjcgMTggNTkuMyAxOHM1OS4zLTE4IDU5LjMtMTh6Il19LE12dD1MdWUsa3Z0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hcmtkb3duIixpY29uOls2NDAsNTEyLFtdLCJmNjBmIiwiTTU5My44IDU5LjFsLTU0Ny42IDBDMjAuNyA1OS4xIDAgNzkuOCAwIDEwNS4yTDAgNDA2LjdjMCAyNS41IDIwLjcgNDYuMiA0Ni4yIDQ2LjJsNTQ3LjcgMGMyNS41IDAgNDYuMi0yMC43IDQ2LjEtNDYuMWwwLTMwMS42YzAtMjUuNC0yMC43LTQ2LjEtNDYuMi00Ni4xek0zMzguNSAzNjAuNmwtNjEuNSAwIDAtMTIwLTYxLjUgNzYuOS02MS41LTc2LjkgMCAxMjAtNjEuNyAwIDAtMjA5LjIgNjEuNSAwIDYxLjUgNzYuOSA2MS41LTc2LjkgNjEuNSAwIDAgMjA5LjIgLjIgMHptMTM1LjMgMy4xbC05Mi4zLTEwNy43IDYxLjUgMCAwLTEwNC42IDYxLjUgMCAwIDEwNC42IDYxLjUgMC05Mi4yIDEwNy43eiJdfSxTdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwbzMiLGljb246WzQ0OCw1MTIsW10sImY0MmIiLCJNMTc4LjcgNzguNGMwLTI0LjcgNS40LTMyLjQgMTMuOS0zOS40LTY5LjUgOC41LTE0OS4zIDM0LTE3Ni4zIDY2LjQtNS40IDcuNy05LjMgMjAuOC05LjMgMzcuMSAwIDEwMy41IDEwNi44IDMzNy41IDE4NC4xIDMzNy41IDM2LjMgMCA5Ny4zLTU5LjUgMTQ2LjctMTM5LTcgMi4zLTExLjYgMi4zLTE4LjUgMi4zLTU3LjIgMC0xNDAuNi0xOTguNS0xNDAuNi0yNjQuOXpNMzAxLjUgMzJjLTMwLjEgMC00MS43IDUuNC00MS43IDM2LjMgMCA2Ni40IDUzLjggMTk4LjUgMTAxLjcgMTk4LjUgMjYuMyAwIDc4LjgtOTkuNyA3OC44LTE4Mi4zIDAtNDAuOS02Ny01Mi41LTEzOC44LTUyLjV6Il19LHp2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb29tbGEiLGljb246WzQ0OCw1MTIsW10sImYxYWEiLCJNLjYgOTIuMWMwLTMzLjMgMjYuOC02MC4xIDU5LjgtNjAuMSAzMCAwIDU0LjUgMjEuOSA1OS4yIDUwLjIgMzIuNi03LjYgNjcuMSAuNiA5Ni41IDMwbC00NC4zIDQ0LjNjLTIwLjUtMjAuNS00Mi42LTE2LjMtNTUuNC0zLjUtMTQuMyAxNC4zLTE0LjMgMzcuOSAwIDUyLjJsOTkuNSA5OS41LTQ0IDQ0LjNjLTg3LjctODcuMi00OS43LTQ5LjctOTkuOC05OS43LTI2LjgtMjYuNS0zNS02NC44LTI0LjgtOTguOS0yNi45LTUuOC00Ni43LTI5LjctNDYuNy01OC4zek0xMzAuMSAyMDguNWw0NC4zIDQ0LjNjMTAtMTAgODkuNy04OS43IDk5LjctOTkuOCAxNC4zLTE0LjMgMzcuNi0xNC4zIDUxLjkgMCAxMi44IDEyLjggMTcgMzUtMy41IDU1LjRsNDQgNDQuM2MzMS4yLTMxLjIgMzguNS02Ny42IDI4LjktMTAxLjIgMjkuMi00LjEgNTEuOS0yOS4yIDUxLjktNTkuNSAwLTMzLjItMjYuOC02MC4xLTU5LjgtNjAuMS0zMC4zIDAtNTUuNCAyMi41LTU5LjUgNTEuNi0zMy44LTkuOS03MS43LTEuNS05OC4zIDI1LjEtMTguMyAxOS4xLTcxLjEgNzEuNS05OS42IDk5Ljl6TTM5Ni40IDM2MC43YzguMi0zMi43LS45LTY4LjUtMjYuMy05My45LTExLjgtMTIuMiA1IDQuNy05OS41LTk5LjdsLTQ0LjMgNDQuMyA5OS43IDk5LjdjMTQuMyAxNC4zIDE0LjMgMzcuNiAwIDUxLjktMTIuOCAxMi44LTM1IDE3LTU1LjQtMy41bC00NCA0NC4zYzI3LjYgMzAuMiA2OCAzOC44IDEwMi43IDI4IDUuNSAyNy40IDI5LjcgNDguMSA1OC45IDQ4LjEgMzMgMCA1OS44LTI2LjggNTkuOC02MC4xIDAtMzAuMi0yMi41LTU1LTUxLjYtNTkuMXptLTg0LjMtNTMuMWwtNDQtNDQuM2MtODcgODYuNC01MC40IDUwLjQtOTkuNyA5OS44LTE0LjMgMTQuMy0zNy42IDE0LjMtNTEuOSAwLTEzLjEtMTMuNC0xNi45LTM1LjMgMy4yLTU1LjRsLTQ0LTQ0LjNjLTMwLjIgMzAuMi0zOCA2NS4yLTI5LjUgOTguMy0yNi43IDYtNDYuMiAyOS45LTQ2LjIgNTguMiAwIDMzLjMgMjYuOCA2MC4xIDU5LjggNjAuMSAyOC42IDAgNTIuNS0xOS44IDU4LjYtNDYuNyAzMi43IDguMiA2OC41LS42IDk0LjItMjYgMzIuMS0zMiAxMi4yLTEyLjQgOTkuNS05OS43eiJdfSxDdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VpeGluIixpY29uOls1NzYsNTEyLFtdLCJmMWQ3IiwiTTM4NS4yIDE2Ny42YzYuNCAwIDEyLjYgLjMgMTguOCAxLjEtMTYuNi03OC40LTEwMC43LTEzNi43LTE5Ni4zLTEzNi43LTEwNy4yIDAtMTk0LjcgNzIuOC0xOTQuNyAxNjUuNCAwIDUzLjQgMjkuMyA5Ny41IDc3LjkgMTMxLjZsLTE5LjMgNTguNiA2OC0zNC4xYzI0LjQgNC44IDQzLjggOS43IDY4LjIgOS43IDYuMiAwIDEyLjEtLjMgMTguMy0uOC00LTEyLjktNi4yLTI2LjYtNi4yLTQwLjgtLjEtODQuOSA3Mi45LTE1NCAxNjUuMy0xNTR6TTI4MC43IDExNC43YzE0LjUgMCAyNC4yIDkuNyAyNC4yIDI0LjQgMCAxNC41LTkuNyAyNC4yLTI0LjIgMjQuMi0xNC44IDAtMjkuMy05LjctMjkuMy0yNC4yIC4xLTE0LjcgMTQuNi0yNC40IDI5LjMtMjQuNHpNMTQ0LjMgMTYzLjNjLTE0LjUgMC0yOS4zLTkuNy0yOS4zLTI0LjIgMC0xNC44IDE0LjgtMjQuNCAyOS4zLTI0LjQgMTQuOCAwIDI0LjQgOS43IDI0LjQgMjQuNCAwIDE0LjYtOS42IDI0LjItMjQuNCAyNC4yek01NjMgMzE5LjRjMC03Ny45LTc3LjktMTQxLjMtMTY1LjQtMTQxLjMtOTIuNyAwLTE2NS40IDYzLjQtMTY1LjQgMTQxLjNTMzA1IDQ2MC43IDM5Ny42IDQ2MC43YzE5LjMgMCAzOC45LTUuMSA1OC42LTkuOWw1My40IDI5LjMtMTQuOC00OC42QzUzNCA0MDIuMSA1NjMgMzYzLjIgNTYzIDMxOS40ek0zNDMuOSAyOTQuOWMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC44IDAgMjQuNCA5LjcgMjQuNCAxOS4zIDAgMTAtOS43IDE5LjYtMjQuNCAxOS42em0xMDcuMSAwYy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjUgMCAyNC40IDkuNyAyNC40IDE5LjMgLjEgMTAtOS45IDE5LjYtMjQuNCAxOS42eiJdfSxfdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3J1bnQiLGljb246WzM4NCw1MTIsW10sImYzYWQiLCJNNjEuNiAxODkuM2MtMS4xIDEwIDUuMiAxOS4xIDUuMiAxOS4xIC43LTcuNSAyLjItMTIuOCA0LTE2LjYgLjQgMTAuMyAzLjIgMjMuNSAxMi44IDM0LjEgNi45IDcuNiAzNS42IDIzLjMgNTQuOSA2LjEgMSAyLjQgMi4xIDUuMyAzIDguNSAyLjkgMTAuMy0yLjcgMjUuMy0yLjcgMjUuM3MxNS4xLTE3LjEgMTMuOS0zMi41YzEwLjgtLjUgMjEuNC04LjQgMjEuMS0xOS41IDAgMC0xOC45IDEwLjQtMzUuNS04LjgtOS43LTExLjItNDAuOS00Mi04My4xLTMxLjggNC4zIDEgOC45IDIuNCAxMy41IDQuMWwtLjEgMGMtNC4yIDItNi41IDcuMS03IDEyem0yOC4zLTEuOGMxOS41IDExIDM3LjQgMjUuNyA0NC45IDM3LTUuNyAzLjMtMjEuNyAxMC40LTM4LTEuNy0xMC4zLTcuNi05LjgtMjYuMi02LjktMzUuM3pNMjMyIDIzMy4zYy0xLjIgMTUuNSAxMy45IDMyLjUgMTMuOSAzMi41cy01LjYtMTUtMi43LTI1LjNjLjktMy4yIDItNiAzLTguNSAxOS4zIDE3LjMgNDggMS41IDU0LjgtNi4xIDkuNi0xMC42IDEyLjMtMjMuOCAxMi44LTM0LjEgMS44IDMuOCAzLjQgOS4xIDQgMTYuNiAwIDAgNi40LTkuMSA1LjItMTkuMS0uNi01LTIuOS0xMC03LTExLjhsLS4xIDBjNC42LTEuOCA5LjItMy4yIDEzLjUtNC4xLTQyLjMtMTAuMi03My40IDIwLjYtODMuMSAzMS44LTE2LjcgMTkuMi0zNS41IDguOC0zNS41IDguOC0uMiAxMC45IDEwLjQgMTguOSAyMS4yIDE5LjN6bTYyLjctNDUuOGMzIDkuMSAzLjQgMjcuNy03IDM1LjQtMTYuMyAxMi4xLTMyLjIgNS0zNy45IDEuNiA3LjUtMTEuNCAyNS40LTI2IDQ0LjktMzd6bS0xMzQuNCAyMzFsLTI5LjQgMGMtNS41IDAtOC4yIDEuNi05LjUgMi45LTEuOSAyLTIuMiA0LjctLjkgOC4xIDMuNSA5LjEgMTEuNCAxNi41IDEzLjcgMTguNiAzLjEgMi43IDcuNSA0LjMgMTEuOCA0LjMgNC40IDAgOC4zLTEuNyAxMS00LjYgNy41LTguMiAxMS45LTE3LjEgMTMtMTkuOCAuNi0xLjUgMS4zLTQuNS0uOS02LjgtMS44LTEuOC00LjctMi43LTguOC0yLjd6TTM0OS41IDMxNy4zYy0yLjQgMTcuOS0xMyAzMy44LTI0LjYgNDMuNy0zLjEtMjIuNy0zLjctNTUuNS0zLjctNjIuNCAwLTE0LjcgOS41LTI0LjUgMTIuMi0yNi4xIDIuNS0xLjUgNS40LTMgOC4zLTQuNiAxOC05LjYgNDAuNC0yMS42IDQwLjQtNDMuNyAwLTE2LjItOS4zLTIzLjItMTUuNC0yNy44LS44LS42LTEuNS0xLjEtMi4yLTEuNy0yLjEtMS43LTMuNy0zLTQuMy00LjQtNC40LTkuOC0zLjYtMzQuMi0xLjctMzcuNiAuNi0uNiAxNi43LTIwLjkgMTEuOC0zOS4yLTItNy40LTYuOS0xMy4zLTE0LjEtMTctNS4zLTIuNy0xMS45LTQuMi0xOS41LTQuNS0uMS0yLS41LTMuOS0uOS01LjktLjYtMi42LTEuMS01LjMtLjktOC4xIC40LTQuNyAuOC05IDIuMi0xMS4zIDguNC0xMy4zIDI4LjgtMTcuNiAyOS0xNy42bDEyLjMtMi40LTguMS05LjVjLS4xLS4yLTE3LjMtMTcuNS00Ni4zLTE3LjUtNy45IDAtMTYgMS4zLTI0LjEgMy45LTI0LjIgNy44LTQyLjkgMzAuNS00OS40IDM5LjMtMy4xLTEtNi4zLTEuOS05LjYtMi43LTQuMi0xNS44IDktMzguNSA5LTM4LjVzLTEzLjYtMy0zMy43IDE1LjJjLTIuNi02LjUtOC4xLTIwLjUtMS44LTM3LjItMjkuNSAxMC40LTM2LjkgMjYuMy0zOS4xIDQwLjctNy42LTUuNC02LjctMjMuMS03LjItMjcuNi03LjUgLjktMjkuMiAyMS45LTI4LjIgNDguMy0yIC41LTMuOSAxLjEtNS45IDEuNy02LjUtOC44LTI1LjEtMzEuNS00OS40LTM5LjMtNy45LTIuMi0xNi0zLjUtMjMuOS0zLjUtMjkgMC00Ni4xIDE3LjMtNDYuMyAxNy41bC04LjEgOS40IDEyLjMgMi40Yy4yIDAgMjAuNiA0LjMgMjkgMTcuNiAxLjQgMi4yIDEuOCA2LjYgMi4yIDExLjMgLjIgMi44LS40IDUuNS0uOSA4LjEtLjQgMS45LS44IDMuOS0uOSA1LjktNy43IC4zLTE0LjIgMS44LTE5LjUgNC41LTcuMiAzLjctMTIuMSA5LjYtMTQuMSAxNy01IDE4LjIgMTEuMiAzOC41IDExLjggMzkuMiAxLjkgMy40IDIuNyAyNy44LTEuNyAzNy42LS42IDEuNC0yLjIgMi43LTQuMyA0LjQtLjcgLjUtMS40IDEuMS0yLjIgMS43LTYuMSA0LjYtMTUuNCAxMS43LTE1LjQgMjcuOCAwIDIyLjEgMjIuNCAzNC4xIDQwLjQgNDMuNyAzIDEuNiA1LjggMy4xIDguMyA0LjYgMi43IDEuNiAxMi4yIDExLjQgMTIuMiAyNi4xIDAgNi45LS42IDM5LjctMy43IDYyLjQtMTEuNi05LjktMjIuMi0yNS45LTI0LjYtNDMuOCAwIDAtMjkuMiAyMi42LTIwLjYgNzAuOCA1LjIgMjkuNSAyMy4yIDQ2LjEgNDcgNTQuNyA4LjggMTkuMSAyOS40IDQ1LjcgNjcuMyA0OS42IDE0LjQgMTEuOCAzNC40IDE5LjUgNjMuNiAxOS41bC4yIDBjMjkuMSAwIDQ5LjEtNy43IDYzLjYtMTkuNSAzNy45LTMuOSA1OC41LTMwLjUgNjcuMy00OS42IDIzLjgtOC43IDQxLjctMjUuMiA0Ny01NC43IDguMi00OC40LTIxLjEtNzAuOS0yMS4xLTcwLjl6TTMwNiAzNy43YzUuNi0xLjggMTEuNi0yLjcgMTcuNy0yLjcgMTEgMCAxOS45IDMgMjQuNyA1LTMuMSAxLjQtNi40IDMuMi05LjcgNS4zLTIuNC0uNC01LjYtLjgtOS4yLS44LTEwLjUgMC0yMC41IDMuMS0yOC43IDguOS0xMi4zIDguNy0xOCAxNi45LTIwLjcgMjIuNC0yLjItMS4zLTQuNS0yLjUtNy4xLTMuNy0xLjYtLjgtMy4xLTEuNS00LjctMi4yIDYuMS05LjEgMTkuOS0yNi41IDM3LjctMzIuMnptMjEgMTguMmMtLjggMS0xLjYgMi4xLTIuMyAzLjItMy4zIDUuMi0zLjkgMTEuNi00LjQgMTcuOC0uNSA2LjQtMS4xIDEyLjUtNC40IDE3LTQuMiAuOC04LjEgMS43LTExLjUgMi43LTIuMy0zLjEtNS42LTctMTAuNS0xMS4yIDEuNC00LjggNS41LTE2LjEgMTMuNS0yMi41IDUuNi00LjMgMTIuMi02LjcgMTkuNi03ek00NS45IDQ1LjNjLTMuMy0yLjItNi42LTQtOS43LTUuMyA0LjgtMiAxMy43LTUgMjQuNy01IDYuMSAwIDEyIC45IDE3LjcgMi43IDE3LjggNS44IDMxLjYgMjMuMiAzNy43IDMyLjEtMS42IC43LTMuMiAxLjQtNC44IDIuMi0yLjUgMS4yLTQuOSAyLjUtNy4xIDMuNy0yLjYtNS40LTguMy0xMy43LTIwLjctMjIuNC04LjMtNS44LTE4LjItOC45LTI4LjgtOC45LTMuNCAuMS02LjYgLjUtOSAuOXpNOTAuNiA4NS40Yy00LjkgNC4yLTguMyA4LTEwLjUgMTEuMi0zLjQtLjktNy4zLTEuOS0xMS41LTIuNy0zLjMtNC40LTMuOC0xMC41LTQuMy0xNi45LS41LTYuMi0xLjEtMTIuNi00LjQtMTcuOC0uNy0xLjEtMS41LTIuMi0yLjMtMy4yIDcuNCAuMyAxNCAyLjYgMTkuNSA3IDggNi4zIDEyLjEgMTcuNiAxMy41IDIyLjR6TTU4LjQgMjU5LjljLTIuNy0xLjYtNS42LTMuMS04LjQtNC42LTE0LjktOC0zMC4yLTE2LjMtMzAuMi0zMC41IDAtMTEuMSA0LjMtMTQuNiA4LjktMTguMmwuNS0uNGMuNy0uNiAxLjQtMS4yIDIuMi0xLjgtLjkgNy4yLTEuOSAxMy4zLTIuNyAxNC45IDAgMCAxMi4xLTE1IDE1LjctNDQuMyAxLjQtMTEuNS0xLjEtMzQuMy01LjEtNDMgLjIgNC45IDAgOS44LS4zIDE0LjQtLjQtLjgtLjgtMS42LTEuMy0yLjItMy4yLTQtMTEuOC0xNy41LTkuNC0yNi42IC45LTMuNSAzLjEtNiA2LjctNy44IDMuOC0xLjkgOC44LTIuOSAxNS4xLTIuOSAxMi4zIDAgMjUuOSAzLjcgMzIuOSA2IDI1LjEgOCA1NS40IDMwLjkgNjQuMSAzNy43IC4yIC4yIC40IC4zIC40IC4zbDUuNiAzLjktMy41LTUuOGMtLjItLjMtMTkuMS0zMS40LTUzLjItNDYuNSAyLTIuOSA3LjQtOC4xIDIxLjYtMTUuMSAyMS40LTEwLjUgNDYuNS0xNS44IDc0LjMtMTUuOCAyNy45IDAgNTIuOSA1LjMgNzQuMyAxNS44IDE0LjIgNi45IDE5LjYgMTIuMiAyMS42IDE1LjEtMzQgMTUuMS01Mi45IDQ2LjItNTMuMSA0Ni41bC0zLjUgNS44IDUuNi0zLjlzLjItLjEgLjQtLjNjOC43LTYuOCAzOS0yOS44IDY0LjEtMzcuNyA3LTIuMiAyMC42LTYgMzIuOS02IDYuMyAwIDExLjMgMSAxNS4xIDIuOSAzLjUgMS44IDUuNyA0LjQgNi43IDcuOCAyLjUgOS4xLTYuMSAyMi42LTkuNCAyNi42LS41IC42LS45IDEuMy0xLjMgMi4yLS4zLTQuNi0uNS05LjUtLjMtMTQuNC00IDguOC02LjUgMzEuNS01LjEgNDMgMy42IDI5LjMgMTUuNyA0NC4zIDE1LjcgNDQuMy0uOC0xLjYtMS44LTcuNy0yLjctMTQuOSAuNyAuNiAxLjUgMS4yIDIuMiAxLjhsLjUgLjRjNC42IDMuNyA4LjkgNy4xIDguOSAxOC4yIDAgMTQuMi0xNS40IDIyLjUtMzAuMiAzMC41LTIuOSAxLjUtNS43IDMuMS04LjQgNC42LTguNyA1LTE4IDE2LjctMTkuMSAzNC4yLS45IDE0LjYgLjkgNDkuOSAzLjQgNzUuOS0xMi40IDQuOC0yNi43IDYuNC0zOS43IDYuOC0yLTQuMS0zLjktOC41LTUuNS0xMy4xLS43LTItMTkuNi01MS4xLTI2LjQtNjIuMiA1LjUgMzkgMTcuNSA3My43IDIzLjUgODkuNi0zLjUtLjUtNy4zLS43LTExLjctLjdsLTExNyAwYy00LjQgMC04LjMgLjMtMTEuNyAuNyA2LTE1LjkgMTguMS01MC42IDIzLjUtODkuNi02LjggMTEuMi0yNS43IDYwLjMtMjYuNCA2Mi4yLTEuNiA0LjYtMy41IDktNS41IDEzLjEtMTMtLjQtMjcuMi0yLTM5LjctNi44IDIuNS0yNiA0LjMtNjEuMiAzLjQtNzUuOS0uOS0xNy40LTEwLjMtMjkuMi0xOS0zNC4yek0zNS4xIDQwNC42Yy0xMi4xLTIwLTguNy01NC4xLTMuNy01OS4xIDEwLjkgMzQuNCA0Ny4yIDQ0LjMgNzQuNCA0NS40LTIuNyA0LjItNS4yIDcuNi03IDEwbC0xLjQgMS40Yy03LjIgNy44LTguNiAxOC41LTQuMSAzMS44LTIyLjctLjEtNDYuMy05LjgtNTguMi0yOS41em00NS43IDQzLjVjNiAxLjEgMTIuMiAxLjkgMTguNiAyLjQgMy41IDggNy40IDE1LjkgMTIuMyAyMy4xLTE0LjQtNS45LTI0LjQtMTYtMzAuOS0yNS41em0xMTEuNSA1MC4xYy02MC42LS4xLTc4LjMtNDUuOC04NC45LTY0LjctMy43LTEwLjUtMy40LTE4LjIgLjktMjMuMSAyLjktMy4zIDkuNS03LjIgMjQuNi03LjJsMTE4LjggMGMxNS4xIDAgMjEuOCAzLjkgMjQuNiA3LjIgNC4yIDQuOCA0LjUgMTIuNiAuOSAyMy4xLTYuNiAxOC44LTI0LjMgNjQuNi04NC45IDY0Ljd6bTgwLjYtMjQuNmM0LjktNy4yIDguOC0xNS4xIDEyLjMtMjMuMSA2LjQtLjUgMTIuNi0xLjMgMTguNi0yLjQtNi41IDkuNS0xNi41IDE5LjYtMzAuOSAyNS41em03Ni42LTY5Yy0xMiAxOS43LTM1LjYgMjkuMy01OC4xIDI5LjcgNC41LTEzLjMgMy4xLTI0LjEtNC4xLTMxLjgtLjQtLjUtLjktMS0xLjQtMS41LTEuOC0yLjQtNC4zLTUuOC03LTEwIDI3LjItMS4yIDYzLjUtMTEgNzQuNC00NS40IDUgNSA4LjQgMzkuMS0zLjggNTl6TTE5Mi4yIDE4Ny43bC4yIDBjMTIuNy0uMSAyNy4yLTE3LjggMjcuMi0xNy44LTkuOSA2LTE4LjggOC4xLTI3LjMgOC4zLTguNS0uMi0xNy40LTIuMy0yNy4zLTguMyAwIDAgMTQuNSAxNy42IDI3LjIgMTcuOHptNjEuNyAyMzAuN2wtMjkuNCAwYy00LjIgMC03LjIgLjktOC45IDIuNy0yLjIgMi4zLTEuNSA1LjItLjkgNi43IDEgMi42IDUuNSAxMS4zIDEzIDE5LjMgMi43IDIuOSA2LjYgNC41IDExIDQuNXM4LjctMS42IDExLjgtNC4yYzIuMy0yIDEwLjItOS4yIDEzLjctMTguMSAxLjMtMy4zIDEtNi0uOS03LjktMS4zLTEuMy00LTIuOS05LjQtM3oiXX0sVHZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBvcnRub3ciLGljb246WzY0MCw1MTIsW10sImU4MzMiLCJNMCAxOTEuOWwyMDMuOS0uMWMxLjgtLjYgMi41LTkuNSAzLjItMTIuMiAzLjMtMTMuNSA4LjQtMjYuNCAxNC44LTM4LjdsLTE2MC4yIDAgMC00OC4yIDIzNC41IDAgMCAzOWMtNTEuMiAzNi4xLTU2LjQgOTIuNi0yMy42IDE0My45IDMzLjEgNTEuNyA5My40IDg4LjEgMTQ5LjUgMTEwLjUgNjcuOC0yNS4yIDE2NC45LTg5LjkgMTY5LjQtMTY5LjYgMy4xLTU1LjMtNDIuMi0xMDEuOC05OC43LTkxLjgtNDEuNSA3LjQtNjIuMSA0Ni43LTU0LjggODYuNGwtNDguMiAwYy03LjMtNTYuNiAyMi44LTExMi42IDc4LjQtMTMwLjMgNzguNy0yNS4xIDE1OS41IDI4IDE3MC40IDEwOC44IDE1LjIgMTEyLjMtOTUuNSAxOTkuOS0xODguMSAyMzcuOC00LjQgMS44LTI0LjQgMTAuMS0yNy41IDEwLjFsLTI4MC4zIDAgMC00OC4yIDE3OC41IDAtMzguMS0yOC45LTIzLjItMjIuMS0xOTguMyAwIDAtNDguMiAxNjMuMSAwYy03LjEtMTEuNi0xMi4zLTI0LjMtMTYuMS0zNy40LS43LTIuNS0yLjEtMTItMy44LTEyLjZsLTIwNC45LS4xIDAtNDguMiAwIDB6Il19LEx2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyb2Nrcm1zIixpY29uOls1MTIsNTEyLFtdLCJmM2U5IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDEzLjQgNDI3LjVsLTkwIDAtMTEyLTEzMS4zYy0xNy45LTIwLjQtMy45LTU2LjEgMjYuNi01Ni4xbDc1LjMgMC04NC42LTk5LjMtODQuMyA5OC45LTkwIDAgMTQ3LjEtMTcyLjVjMTQuNC0xOC40IDQxLjMtMTcuMyA1NC41IDBMNDEzLjcgMjUyLjNjMTkgMjIuOCAyIDU3LjItMjcuNiA1Ni4xLS42IDAtNzQuMiAuMi03NC4yIC4yTDQxMy40IDQyNy41eiJdfSwkdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5zcGxhc2giLGljb246WzQ0OCw1MTIsW10sImUwN2MiLCJNNDQ4IDIzMC4ybDAgMjQ5LjgtNDQ4IDAgMC0yNDkuOCAxNDEuMSAwIDAgMTI0LjkgMTY1LjcgMCAwLTEyNC45IDE0MS4xIDB6TTMwNi45IDMybC0xNjUuNyAwIDAgMTI0LjkgMTY1LjcgMCAwLTEyNC45eiJdfSwkdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWluc3RhZ3JhbSIsaWNvbjpbNDQ4LDUxMixbImluc3RhZ3JhbS1zcXVhcmUiXSwiZTA1NSIsIk0xOTQuNCAyMTEuN2E1My4zIDUzLjMgMCAxIDAgNTkuMiA4OC42IDUzLjMgNTMuMyAwIDEgMCAtNTkuMi04OC42em0xNDIuMy02OC40Yy01LjItNS4yLTExLjUtOS4zLTE4LjQtMTItMTguMS03LjEtNTcuNi02LjgtODMuMS02LjUtNC4xIDAtNy45IC4xLTExLjIgLjFzLTcuMiAwLTExLjQtLjFjLTI1LjUtLjMtNjQuOC0uNy04Mi45IDYuNS02LjkgMi43LTEzLjEgNi44LTE4LjQgMTJzLTkuMyAxMS41LTEyIDE4LjRjLTcuMSAxOC4xLTYuNyA1Ny43LTYuNSA4My4yIDAgNC4xIC4xIDcuOSAuMSAxMS4xczAgNy0uMSAxMS4xYy0uMiAyNS41LS42IDY1LjEgNi41IDgzLjIgMi43IDYuOSA2LjggMTMuMSAxMiAxOC40czExLjUgOS4zIDE4LjQgMTJjMTguMSA3LjEgNTcuNiA2LjggODMuMSA2LjUgNC4xIDAgNy45LS4xIDExLjItLjFzNy4yIDAgMTEuNCAuMWMyNS41IC4zIDY0LjggLjcgODIuOS02LjUgNi45LTIuNyAxMy4xLTYuOCAxOC40LTEyczkuMy0xMS41IDEyLTE4LjRjNy4yLTE4IDYuOC01Ny40IDYuNS04MyAwLTQuMi0uMS04LjEtLjEtMTEuNHMwLTcuMSAuMS0xMS40Yy4zLTI1LjUgLjctNjQuOS02LjUtODMtMi43LTYuOS02LjgtMTMuMS0xMi0xOC40bDAgLjJ6bS02Ny4xIDQ0LjVjMTguMSAxMi4xIDMwLjYgMzAuOSAzNC45IDUyLjJzLS4yIDQzLjUtMTIuMyA2MS42Yy02IDktMTMuNyAxNi42LTIyLjYgMjIuNnMtMTkgMTAuMS0yOS42IDEyLjJjLTIxLjMgNC4yLTQzLjUtLjItNjEuNi0xMi4zcy0zMC42LTMwLjktMzQuOS01Mi4yIC4yLTQzLjUgMTIuMi02MS42IDMwLjktMzAuNiA1Mi4yLTM0LjkgNDMuNSAuMiA2MS42IDEyLjJsLjEgMHptMjkuMi0xLjNjLTMuMS0yLjEtNS42LTUuMS03LjEtOC42cy0xLjgtNy4zLTEuMS0xMS4xIDIuNi03LjEgNS4yLTkuOCA2LjEtNC41IDkuOC01LjIgNy42LS40IDExLjEgMS4xIDYuNSAzLjkgOC42IDcgMy4yIDYuOCAzLjIgMTAuNmMwIDIuNS0uNSA1LTEuNCA3LjNzLTIuNCA0LjQtNC4xIDYuMi0zLjkgMy4yLTYuMiA0LjItNC44IDEuNS03LjMgMS41Yy0zLjggMC03LjUtMS4xLTEwLjYtMy4ybC0uMSAwek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMzU3IDM4OWMtMTguNyAxOC43LTQxLjQgMjQuNi02NyAyNS45LTI2LjQgMS41LTEwNS42IDEuNS0xMzIgMC0yNS42LTEuMy00OC4zLTcuMi02Ny0yNS45cy0yNC42LTQxLjQtMjUuOC02N2MtMS41LTI2LjQtMS41LTEwNS42IDAtMTMyIDEuMy0yNS42IDcuMS00OC4zIDI1LjgtNjdzNDEuNS0yNC42IDY3LTI1LjhjMjYuNC0xLjUgMTA1LjYtMS41IDEzMiAwIDI1LjYgMS4zIDQ4LjMgNy4xIDY3IDI1LjhzMjQuNiA0MS40IDI1LjggNjdjMS41IDI2LjMgMS41IDEwNS40IDAgMTMxLjktMS4zIDI1LjYtNy4xIDQ4LjMtMjUuOCA2N2wwIC4xeiJdfSxEdnQ9JHVlLEF2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJzdC1vcmRlci1hbHQiLGljb246WzUxMiw1MTIsW10sImY1MGEiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDcuOGEyNDAuMiAyNDAuMiAwIDEgMSAwIDQ4MC40IDI0MC4yIDI0MC4yIDAgMSAxIDAtNDgwLjR6bTAgMjAuNWEyMTkuNyAyMTkuNyAwIDEgMCAwIDQzOS40IDIxOS43IDIxOS43IDAgMSAwIDAtNDM5LjR6bTAgOC4yYTIxMS41IDIxMS41IDAgMSAxIDAgNDIzIDIxMS41IDIxMS41IDAgMSAxIDAtNDIzem0xODYuMiAyNjBjLTQuNCAxNy4xLTExLjIgMzMuNS0yMC4xIDQ4LjdsLTc0LjEtMzUuOSA2MS41IDU0LjhjLTEwLjYgMTQuMS0yMy4yIDI2LjYtMzcuMiAzNy4zbC01NC44LTYxLjYgMzUuOSA3NC4zYy0xNS4yIDktMzEuNiAxNS44LTQ4LjYgMjAuMmwtMjcuMy03OC41IDQuOCA4Mi45Yy04LjYgMS4yLTE3LjQgMS44LTI2LjMgMS44cy0xNy43LS42LTI2LjMtMS44bDQuOC04Mi41LTI3LjIgNzhjLTE3LjEtNC41LTMzLjQtMTEuMy00OC43LTIwLjJsMzUuOS03NC4zLTU0LjkgNjEuNmMtMTQtMTAuNy0yNi42LTIzLjItMzcuMi0zNy4zbDYxLjYtNTQuOS03NC4zIDM1LjlDODAuNyAzMzggNzQgMzIxLjcgNjkuNSAzMDQuNmw3Ny44LTI3LjEtODIuMiA0LjhjLTEuMi04LjYtMS44LTE3LjMtMS44LTI2LjIgMC05IC42LTE3LjggMS44LTI2LjVsODIuNCA0LjgtNzcuOS0yNy4yYzQuNS0xNy4xIDExLjMtMzMuNSAyMC4yLTQ4LjdsNzQuMiAzNS45LTYxLjUtNTQuOWMxMC43LTE0IDIzLjItMjYuNiAzNy4zLTM3LjJsNTQuOCA2MS41LTM1LjgtNzQuMmMxNS4yLTguOSAzMS42LTE1LjcgNDguNi0yMC4xbDI2LjkgNzcuMi00LjctODEuNmM4LjYtMS4yIDE3LjQtMS44IDI2LjMtMS44czE3LjcgLjYgMjYuMyAxLjhsLTQuNyA4Mi4yIDI3LTc3LjhjMTcuMyA0LjUgMzMuNiAxMS40IDQ4LjYgMjAuMmwtMzUuOCA3NC4xIDU0LjctNjEuNWMxNC4xIDEwLjcgMjYuNiAyMy4yIDM3LjIgMzcuMmwtNjEuNCA1NC44IDc0LjEtMzUuOWM4LjkgMTUuMiAxNS43IDMxLjYgMjAuMiA0OC42bC03Ny44IDI3LjEgODIuMi00LjdjMS4yIDguNyAxLjggMTcuNSAxLjggMjYuNSAwIDguOS0uNiAxNy42LTEuOCAyNi4ybC04Mi4xLTQuNyA3Ny43IDI3LjF6Il19LFB2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmdWxjcnVtIixpY29uOlsyNTYsNTEyLFtdLCJmNTBiIiwiTTYzLjggMTY0LjFMMjguNCAyMDcuNy03IDE2NC4xIDI4LjQgMTIwLjYgNjMuOCAxNjQuMXpNMTEyLjIgMGwtMjAuNSAxOTguMi01MSA1Ny44IDUxIDU3LjggMjAuNSAxOTguMiAwLTIxMS4xLTQxLjEtNDQuOSA0MS4xLTQ0LjkgMC0yMTEuMXptNzkuNyAxNjQuMWwzNS40IDQzLjYgMzUuNC00My42LTM1LjQtNDMuNS0zNS40IDQzLjV6bS00OC41IDQ3bDQxLjEgNDQuOS00MS4xIDQ0LjkgMCAyMTEuMSAyMC42LTE5OC4yIDUxLTU3LjgtNTEtNTcuOC0yMC42LTE5OC4yIDAgMjExLjF6Il19LEV2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcmNoLWxpbnV4IixpY29uOls1NzYsNTEyLFtdLCJlODY3IiwiTTI4OC43LTcuOGMtMjQuMSA1OS0zOC42IDk3LjctNjUuNCAxNTUgMTYuNCAxNy40IDM2LjYgMzcuNiA2OS40IDYwLjUtMzUuMi0xNC41LTU5LjItMjguOS03Ny4yLTQ0LTM0LjMgNzEuNi04OC4xIDE3My41LTE5Ny4yIDM2OS40IDg1LjctNDkuNSAxNTIuMi04MCAyMTQuMS05MS42LTIuNy0xMS40LTQuMS0yMy44LTQtMzYuN2wuMS0yLjdjMS40LTU0LjkgMjkuOS05Ny4yIDYzLjgtOTQuNHM2MC4yIDQ5LjggNTguOCAxMDQuN2MtLjMgMTAuMy0xLjQgMjAuMi0zLjQgMjkuNCA2MS4yIDEyIDEyNyA0Mi40IDIxMS42IDkxLjItMTYuNy0zMC43LTMxLjYtNTguMy00NS44LTg0LjctMjIuNC0xNy40LTQ1LjctMzkuOS05My4zLTY0LjQgMzIuNyA4LjUgNTYuMyAxOC4zIDc0LjUgMjkuMy0xNDQuNS0yNjkuMS0xNTYuMi0zMDQuOC0yMDUuOC00MjEuMXoiXX0sSXZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZGl2ZXJzZSIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NSIsIk0zOTQuOCA1MjYuOWE1NCA1NCAwIDEgMSA1LjgtMTA3LjggNTQgNTQgMCAxIDEgLTUuOCAxMDcuOHptLTUwLjEtODAuNmMtNS41IDEwLjktNy40IDIzLjMtNS42IDM1LjRMMTY4LjcgNDU0LjRjNS41LTEwLjkgNy41LTIzLjMgNS43LTM1LjRsMTcwLjMgMjcuM3pNMTEyLjcgNDgxLjZhNTQgNTQgMCAxIDEgNS45LTEwNy44IDU0IDU0IDAgMSAxIC01LjkgMTA3Ljh6bTI1Ny43LTYxLjRjLTEwLjkgNS42LTE5LjcgMTQuNC0yNS40IDI1LjNsLTcwLjYtNzAuOSAzMy42LTE3IDYyLjQgNjIuN3pNNDg2LjEgMjYxYzguNyA4LjYgMTkuOCAxNC4zIDMxLjkgMTYuNEw0MzkuNCA0MzAuOGMtOC43LTguNi0xOS44LTE0LjMtMzEuOS0xNi40TDQ4Ni4xIDI2MXpNMzc2LjcgMjE5LjNsMzAuNSAxOTUuMWMtMTIuMS0xLjktMjQuNS0uMS0zNS40IDUuM2wtMzIuMi0yMDYuMyAzNy4yIDZ6TTM1MC40IDMyOC45TDE3NC4yIDQxOC4yYy0yLTEyLjEtNy42LTIzLjItMTYuMi0zMmwxODYuNi05NC42IDUuOCAzNy4yem0tMTUyLjctMjJsLTQwLjMgNzguN2MtOC43LTguNi0xOS44LTE0LjMtMzEuOS0xNi4zbDQ1LjYtODkgMjYuNiAyNi43ek0xMjQuNyAzNjljLTEyLjEtMS44LTI0LjQgLjItMzUuNCA1LjZMNjIuNyAyMDQuM2MxMi4xIDEuOCAyNC41LS4xIDM1LjQtNS42TDEyNC43IDM2OXptMTQ3LjEtNDcuOGwtMzMuNiAxNy0xMzkuNC0xMzkuOWMxMC45LTUuNiAxOS43LTE0LjQgMjUuNC0yNS4zTDI3MS44IDMyMS4yem0xOTcuNS05Mi44YzIgMTIuMSA3LjYgMjMuMiAxNi4yIDMxLjlsLTg5LjMgNDUuMi01LjgtMzcuMiA3OC45LTQwem01NS42IDQ0LjNhNTQgNTQgMCAxIDEgNS45LTEwNy44IDU0IDU0IDAgMSAxIC01LjkgMTA3Ljh6TTI4NC42IDU4LjdjOC43IDguNiAxOS44IDE0LjMgMzEuOCAxNi4zbC05NS4zIDE4Ni4xLTI2LjYtMjYuNyA5MC0xNzUuOHpNNDc0LjkgMTkyLjFjLTUuNSAxMC45LTcuNSAyMy4zLTUuNyAzNS4zbC0yMDYuNC0zMy4xIDE3LjItMzMuNSAxOTUgMzEuM3pNNjguNyAxOTkuNkE1NCA1NCAwIDEgMSA3NC42IDkxLjggNTQgNTQgMCAxIDEgNjguNyAxOTkuNnptNDMyLTMzLjRjLTEwLjkgNS42LTE5LjcgMTQuNC0yNS40IDI1LjNMMzUzLjUgNjkuM2MxMC45LTUuNiAxOS43LTE0LjQgMjUuNC0yNS4zTDUwMC42IDE2Ni4yek0yMjkuMyAxNTIuNmwtMTcuMiAzMy41LTg3LjQtMTRjNS40LTEwLjkgNy40LTIzLjMgNS41LTM1LjRsOTkgMTUuOXptMTM5LjUgMTUuOWwtMzcuMi02LTEzLjYtODcuMmMxMi4xIDEuNyAyNC41LS4zIDM1LjMtNS45bDE1LjUgOTkuMXpNMjY3LjggMjYuMmMyIDEyLjEgNy42IDIzLjIgMTYuMiAzMS45bC0xNTMuOSA3OGMtMi0xMi4xLTcuNi0yMy4yLTE2LjItMzEuOWwxNTMuOS03OHptNTUuNiA0NC4zYTU0IDU0IDAgMSAxIDUuOC0xMDcuOCA1NCA1NCAwIDEgMSAtNS44IDEwNy44eiJdfSxOdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnJhdmUtcmV2ZXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTYzZCIsIk0yOTguNSAwYzMgMCA1LjggMS4zIDcuOCAzLjZsMzguMSA0NGMuNS0uMSAxLS4yIDEuNS0uMyA5LjItMS42IDE4LjYtMi4yIDI3LjctMS4yIDExLjYgMS40IDIxLjUgNS40IDI4LjkgMTIuOSA3LjcgNy44IDE1LjQgMTUuOCAyMi42IDIzLjYgMi41IDIuNyA0LjkgNS4yIDYuOSA3LjQgLjcgLjggMS40IDEuNSAxLjkgMiAzLjQgMy43IDQuMiA4LjEgMi43IDExLjlsLTkuOCAyNC42IDEzLjEgMzguMWMuNyAyIC44IDQuMSAuMiA2LjItLjEgLjQtLjEgLjQtLjUgMi4xbC0xLjUgNS44Yy0xLjYgNi4zLTMuNSAxMy4zLTUuNCAyMC45LTUuNiAyMS42LTExLjIgNDMuMi0xNi40IDYzLjQtMTIuOSA0OS45LTIxLjQgODIuNy0yMy40IDkwLjktMTEuMSA0NC41LTE5LjkgNjAtNDguMyA4MC4zLTI0LjkgMTcuOC03Ni44IDUzLjYtODYuOCA2MC0xIC42LTIgMS4zLTMuNCAyLjMtLjUgLjQtMy4yIDIuMi0zLjkgMi43LTQuOSAzLjMtOC4zIDUuNS0xMi4xIDcuMy00LjcgMi4yLTkuMyAzLjUtMTMuOSAzLjVzLTkuMS0xLjItMTMuOS0zLjVjLTMuNy0xLjgtNy4yLTMuOS0xMi4xLTcuMy0uOC0uNS0zLjQtMi40LTMuOS0yLjctMS40LTEtMi41LTEuNy0zLjQtMi4zLTEwLTYuNC02MS45LTQyLjEtODYuOC02MC0yOC40LTIwLjQtMzcuMi0zNS44LTQ4LjMtODAuMy0yLTguMi0xMC41LTQxLTIzLjMtOTAuNS01LjMtMjAuNi0xMC45LTQyLjItMTYuNS02My44LTItNy42LTMuOC0xNC42LTUuNC0yMC45bC0xLjUtNS44LS41LTIuMWMtLjUtMi0uNC00LjIgLjItNi4ybDEzLjEtMzguMS05LjktMjQuNWMtMS41LTMuOC0uNy04LjIgMi0xMS4yIDEuMi0xLjMgMS44LTIgMi42LTIuOCAyLTIuMiA0LjQtNC43IDYuOS03LjQgNy4zLTcuNyAxNS0xNS43IDIyLjctMjMuNSA3LjQtNy41IDE3LjMtMTEuNiAyOC45LTEyLjkgOS4xLTEuMSAxOC41LS41IDI3LjcgMS4yIC41IC4xIDEgLjIgMS41IC4zbDM4LjEtNDRjMi0yLjQgNC44LTMuNyA3LjgtMy43bDE0OCAwem0tNC43IDIxLjFsLTEzOC42IDAtMzkuMSA0NS4xYy0yLjYgMy02LjcgNC4zLTEwLjYgMy4yLS4yLS4xLS43LS4yLTEuNS0uNC0xLjMtLjMtMi45LS42LTQuNS0uOS03LjQtMS4zLTE0LjktMS44LTIxLjctMS03LjMgLjktMTMgMy4yLTE2LjYgNi45LTcuNiA3LjctMTUuMiAxNS42LTIyLjMgMjMuMy0xLjcgMS44LTMuMyAzLjUtNC44IDUuMWw4LjggMjJjMSAyLjQgMSA1IC4yIDcuNUwyOS43IDE3MC42Yy40IDEuNCAuNSAxLjkgMS4yIDQuOCAxLjYgNi4zIDMuNSAxMy4zIDUuNCAyMC45IDUuNiAyMS42IDExLjIgNDMuMiAxNi40IDYzLjQgMTIuOSA1MCAyMS40IDgyLjggMjMuNCA5MSAxMC4xIDQwLjEgMTYuNCA1MS4zIDQwLjIgNjguMyAyNC42IDE3LjYgNzYuMyA1My4yIDg1LjkgNTkuMyAxLjIgLjggMi41IDEuNiA0IDIuNyAuNiAuNCAzLjIgMi4yIDMuOSAyLjcgNCAyLjggNi43IDQuNCA5LjIgNS42IDIuMiAxIDMuOSAxLjUgNS4xIDEuNXMyLjktLjUgNS4xLTEuNWMyLjUtMS4yIDUuMi0yLjggOS4yLTUuNiAuNy0uNSAzLjMtMi4zIDMuOS0yLjcgMS42LTEuMSAyLjgtMS45IDQtMi43IDkuNi02LjEgNjEuMy00MS43IDg1LjktNTkuMyAyMy44LTE3LjEgMzAuMi0yOC4yIDQwLjEtNjguMyAyLjEtOC4zIDEwLjUtNDEuMSAyMy4zLTkwLjcgNS4zLTIwLjYgMTAuOS00Mi4yIDE2LjUtNjMuOCAyLTcuNiAzLjgtMTQuNiA1LjQtMjAuOSAuNy0yLjkgLjktMy40IDEuMi00LjhsLTEzLjMtMzguOGMtLjgtMi40LS44LTUuMSAuMi03LjVsOC44LTIyYy0xLjUtMS42LTMuMS0zLjMtNC44LTUuMS03LjItNy42LTE0LjctMTUuNS0yMi4zLTIzLjMtMy43LTMuNy05LjMtNi0xNi42LTYuOS02LjgtLjgtMTQuNC0uMy0yMS43IDEtMS43IC4zLTMuMiAuNi00LjUgLjktLjggLjItMS4zIC4zLTEuNSAuNC0zLjggMS4xLTcuOS0uMi0xMC42LTMuMkwyOTMuOCAyMS4xek0yMjQuNSAzMTZjMi44IDAgMjAuOSA2LjUgMzUuNCAxNC4xczI1IDEzIDI4LjMgMTUuMiAxLjMgNi4yLTEuNyA4LjQtNDQuMSAzNC42LTQ4LjEgMzguMi05LjggOS41LTEzLjggOS41LTkuOC01LjktMTMuOC05LjUtNDUuMS0zNi00OC4xLTM4LjItNS4xLTYuMi0xLjctOC40IDEzLjktNy41IDI4LjMtMTUuMiAzMi41LTE0LjEgMzUuNC0xNC4xbC0uMiAwem0uMS0yMzAuN2MuNyAwIDguOCAuMiAyMC41IDQuMiAxMi4zIDQuMiAyNS43IDkuNCAzMS45IDkuNHM1MS45LTguOSA1MS45LTguOSA1NC4yIDY2LjcgNTQuMiA4MS02LjggMTgtMTMuNyAyNS40LTM2LjggMzkuOC00MC43IDQzLjktMTEuOSAxMC41LTcuMSAyMS44IDExLjcgMjUuOCAzLjkgNDAuNC0yMSAyNC40LTI5LjQgMjIuOC0yOC40LTEyLjItMzUuNy0xNy4xLTMwLjUtMjQuMy0zMC41LTMxLjggMjQtMjAuOCAyOC40LTIzLjkgMjQuNy0xNC44IDI1LjEtMTkuNCAuMy02LTUuNy0xNy40LTE2LjctMjYuNy0xNC45LTM2LjggMTkuMS0xNS40IDMxLjUtMjAuMiAzNi4yLTEzLjcgMzkuMi0xNS4xIDIuMi0yLjctNi44LTMuNi0zNC42LTQuMy00Ni4xLTEuMS0zMS4yIDguMi0zMi44IDEwLjktMyAyLjctMS40IDExLjggMTAuMSA1Mi44IDEwLjkgNjAuNiAyLjQgMTIuOS01LjggMTQuOC0yMi4xIDUuMi0yNi44IDUuMi0xOC42LTMuMy0yNi44LTUuMi02LjYtNy01LjgtMTQuOCA5LjMtNTEuNSAxMC45LTYwLjYgLjItOS4yLTEuNC0xMS44LTIxLjMtNy42LTMyLjgtMTAuOS0zNy4xIC4yLTQ2LjEgMS4xLTkuOCAyLjItNi44IDMuNiAyNi44IDEwLjQgMzkuMiAxNS4xIDI5LjcgMTAgMzEuNSAyMC4yLTkgMjUuNC0xNC45IDM2LjgtNi4xIDEyLjgtNS43IDE3LjQgMjAuNiAxNi40IDI1LjEgMTkuNCAyOC40IDE2LjQgMjguNCAyMy45LTIzLjIgMjctMzAuNSAzMS44LTI3LjIgMTUuNC0zNS43IDE3LjEtMjEuNy04LjItMjkuNC0yMi44LS44LTI5LjEgMy45LTQwLjQtMy4zLTE3LjctNy4xLTIxLjgtMzMuOC0zNi41LTQwLjctNDMuOS0xMy43LTExLjItMTMuNy0yNS40IDU0LjItODEgNTQuMi04MSA0NS44IDguOSA1MS45IDguOSAxOS41LTUuMiAzMS45LTkuNCAyMC42LTQuMiAyMC42LTQuMmwtLjMgMHoiXX0sUnZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF2aWFuZXgiLGljb246WzUxMiw1MTIsW10sImYzNzQiLCJNNDUzLjIgMzJsLTMxMiAwQzEwMi4zIDMyIDY1IDYzLjIgNTcuOSAxMDEuN0wxLjMgNDEwLjNDLTUuOCA0NDguOCAyMCA0ODAgNTkgNDgwbDMxMiAwYzM4LjkgMCA3Ni4yLTMxLjIgODMuMy02OS43TDUxMSAxMDEuOEM1MTggNjMuMiA0OTIuMiAzMiA0NTMuMiAzMnpNMzk1IDM3OS4zbC0zMiAxMy41LTExNS40LTExMGMtMTQuNyAxMC0yOS4yIDE5LjUtNDEuNyAyNy4xbDIyLjEgNjQuMi0xNy45IDEyLjctNDAuNi02MS01Mi40LTQ4LjEgMTUuNy0xNS40IDU4IDMxLjFjOS4zLTEwLjUgMjAuOC0yMi42IDMyLjgtMzQuOWwtMjAuNS0yOS42LTY4LjgtOTkuOCAxOC44LTI4LjkgOC45LTQuOCAxMDMuMSAxMTIuNCA0LjkgNC41YzE5LjQtMTguOCAzMy44LTMyLjQgMzMuOC0zMi40IDcuNy02LjUgMjEuNS0yLjkgMzAuNyA3LjkgOSAxMC41IDEwLjYgMjQuNyAyLjcgMzEuMy0xLjggMS4zLTE1LjUgMTEuNC0zNS4zIDI1LjZsNC41IDcuMyA5NC45IDExOS40LTYuMyA3Ljl6Il19LE92dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuczgiLGljb246WzY0MCw1MTIsW10sImYzZDUiLCJNMTA0LjMgMjY5LjJsMjYuMSAwIDAtMjYuMi0yNi4xIDAgMCAyNi4yek0xNTYuOCAyNDNsLS4xLTI2LjIgMC0uOWMtLjItMTAuNC00LjQtMjAuMy0xMS45LTI3LjZzLTE3LjUtMTEuMy0yNy45LTExLjEtMjAuMyA0LjQtMjcuNiAxMS44LTExLjMgMTcuNS0xMS4yIDI3LjlsMCAuMiAyNi40IDAgMC0uMmMuMS0zLjQgMS41LTYuNiAzLjktOXM1LjctMy43IDkuMS0zLjcgNi43IDEuMyA5LjEgMy43IDMuOCA1LjYgMy45IDlsMCAyNi4yIDI2LjMgMHptNTIuNCAyNS44YzAgMTItMi40IDIzLjgtNi45IDM0LjlzLTExLjMgMjEuMS0xOS43IDI5LjYtMTguNSAxNS4yLTI5LjYgMTkuNy0yMi45IDYuOS0zNC45IDYuOWwtLjYgMGMtMjQuMiAwLTQ3LjMtOS42LTY0LjQtMjYuN1MyNi4zIDI5MyAyNi4zIDI2OC44bC0yNi4zIDAgMCAuMmMwIDE1LjQgMy4xIDMwLjcgOSA0NC45czE0LjYgMjcuMiAyNS41IDM4LjEgMjMuOSAxOS41IDM4LjEgMjUuNCAyOS41IDguOSA0NC45IDguOWwuOCAwYzE1LjQgMCAzMC43LTMgNDQuOS05czI3LjItMTQuNiAzOC4xLTI1LjUgMTkuNS0yMy44IDI1LjQtMzguMSA4LjktMjkuNSA4LjktNDQuOWwwLTI2LTI2LjMgMCAwIDI2em0tMTU3LjIgMGMuMSAxNy4zIDcgMzMuOSAxOS4yIDQ2LjFzMjguOCAxOS4xIDQ2LjEgMTkuMSAzMy45LTYuOSA0Ni4xLTE5LjEgMTkuMi0yOC44IDE5LjItNDYuMWwtMjYuMyAwYy0uMiAxMC4yLTQuNCAyMC0xMS43IDI3LjJzLTE3LjEgMTEuMi0yNy40IDExLjItMjAuMS00LTI3LjQtMTEuMi0xMS41LTE2LjktMTEuNy0yNy4ybDAtMjYtMjYuMyAwIDAtMjYuNmMuMy0xNy4zIDcuNC0zMy44IDE5LjctNDUuOHMyOS0xOC44IDQ2LjMtMTguNiAzMy44IDcuMiA0NS45IDE5LjUgMTguOSAyOC45IDE4LjkgNDYuMmwwIDI1LjMgMjYuMyAwIDAtMjUuM2MwLTI0LjMtOS43LTQ3LjctMjYuOS02NC45cy00MC41LTI2LjktNjQuOS0yNi45LTQ3LjcgOS43LTY0LjkgMjYuOS0yNi45IDQwLjUtMjYuOSA2NC45bDAgMjUuNCAyNi4zIDAgMCAyNnptNDE4LjQtNzEuMmMxMy43IDAgMjQuNiA2LjYgMzAuMSAxOC4zbC43IDEuNSAyMy4yLTExLjUtLjYtMS40Yy04LTE5LjMtMjguNS0zMS4zLTUzLjQtMzEuMy0yMy4xIDAtNDMuNiAxMS40LTUxIDI4LjQtLjEgMjYuOS0uMiAyMy45IDAgMjQuOCA0LjcgMTEgMTQuNiAxOS40IDI4LjcgMjQuMiA2LjUgMiAxMy4xIDMuMyAxOS44IDQgNS41IC43IDEwLjYgMS40IDE1LjggMy4xIDYuNCAyLjEgMTAuNSA1LjMgMTIuOCA5LjhsMCA5LjljLTMuNyA3LjUtMTMuOCAxMi4zLTI1LjggMTIuMy0xNC4zIDAtMjYtNi45LTMxLjktMTlsLS43LTEuNS0yMyAxMS41IC42IDEuNGM3LjkgMTkuNCAyOS42IDMyIDU1LjMgMzIgMjMuNiAwIDQ0LjYtMTEuNCA1Mi4zLTI4LjRsLjItMjUuOS0uMi0uN2MtNC45LTExLTE1LjItMTkuNi0yOC45LTI0LjItNy43LTIuNy0xNC4zLTMuNi0yMC43LTQuNC01LS41LTEwLTEuNS0xNC44LTIuOS02LjMtMS45LTEwLjQtNS4xLTEyLjYtOS42bDAtOC40YzMuNC03LjQgMTIuOS0xMi4xIDI0LjItMTIuMWwwIDB6TTI4Ny42IDMxMS4zbDI2LjEgMCAwLTY4LjQtMjYuMSAwIDAgNjguNHpNNjM5LjggMjU4Yy0yLjktNi4zLTguMy0xMi0xNS40LTE2LjcgNS42LTMuOCAxMC4xLTkuMSAxMy0xNS4zbC4yLTI1LjMtLjItLjdjLTcuNC0xNi0yNi43LTI2LjctNDguMi0yNi43UzU0OC41IDE4NCA1NDEuMSAyMDBsLS4yIDI1LjMgLjIgLjdjMi45IDYuMSA3LjQgMTEuNCAxMyAxNS4zLTcuMiA0LjctMTIuNSAxMC41LTE1LjQgMTYuN2wtLjIgMjguOSAuMiAuN2M3LjYgMTYgMjcuOSAyNi43IDUwLjYgMjYuN3M0My4xLTEwLjcgNTAuNi0yNi43bC4yLTI4LjktLjItLjd6bS03My4yLTUwLjhjMy42LTYuMyAxMi42LTEwLjUgMjIuNi0xMC41czE5IDQuMiAyMi42IDEwLjVsMCAxMy43Yy0zLjUgNi4yLTEyLjYgMTAuMy0yMi42IDEwLjNzLTE5LjEtNC4yLTIyLjYtMTAuM2wwLTEzLjd6bTQ3LjMgNzIuMmMtMy44IDYuNi0xMy4zIDEwLjktMjQuNyAxMC45LTExLjEgMC0yMS00LjQtMjQuNy0xMC45bDAtMTYuMmMzLjctNi4zIDEzLjUtMTAuNSAyNC43LTEwLjUgMTEuMyAwIDIwLjkgNC4xIDI0LjcgMTAuNWwwIDE2LjJ6TTM3Ni40IDI2NmwtNTkuOC04OS43LTI5IDAgMCA0MC42IDI2LjUgMCAwIC40IDYyLjUgOTQuMSAyNS43IDAgMC0xMzUuMS0yNS45IDAgMCA4OS43eiJdfSxEdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXBpbnRlcmVzdCIsaWNvbjpbNDQ4LDUxMixbInBpbnRlcmVzdC1zcXVhcmUiXSwiZjBkMyIsIk0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3Mi42IDAtMi4yLS44Yy01LjQtNDguMS0zLjEtNTcuNSAxNS43LTEzNC43IDMuOS0xNiA4LjUtMzUgMTMuOS01Ny45IDAgMC03LjMtMTQuOC03LjMtMzYuNSAwLTcwLjcgNzUuNS03OCA3NS41LTI1IDAgMTMuNS01LjQgMzEuMS0xMS4yIDQ5LjgtMy4zIDEwLjYtNi42IDIxLjUtOS4xIDMyLTUuNyAyNC41IDEyLjMgNDQuNCAzNi40IDQ0LjQgNDMuNyAwIDc3LjItNDYgNzcuMi0xMTIuNCAwLTU4LjgtNDIuMy05OS45LTEwMi42LTk5LjktNjkuOSAwLTExMC45IDUyLjQtMTEwLjkgMTA2LjYgMCAyMS4xIDguMiA0My43IDE4LjMgNTYgMiAyLjQgMi4zIDQuNSAxLjcgNy0xLjEgNC43LTMuMSAxMi45LTQuNyAxOS4yLTEgNC0xLjggNy4zLTIuMSA4LjYtMS4xIDQuNS0zLjUgNS41LTguMiAzLjMtMzAuNi0xNC4zLTQ5LjgtNTkuMS00OS44LTk1LjEgMC03Ny41IDU2LjItMTQ4LjYgMTYyLjItMTQ4LjYgODUuMiAwIDE1MS40IDYwLjcgMTUxLjQgMTQxLjggMCA4NC42LTUzLjMgMTUyLjctMTI3LjQgMTUyLjctMjQuOSAwLTQ4LjMtMTIuOS01Ni4zLTI4LjIgMCAwLTEyLjMgNDYuOS0xNS4zIDU4LjQtNSAxOS4zLTE3LjYgNDIuOS0yNy40IDU5LjNMMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHoiXX0sRnZ0PUR1ZSxCdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmx1ZXRvb3RoLWIiLGljb246WzI1Niw1MTIsW10sImYyOTQiLCJNMTY0LjkgMjYwTDI1Ny41IDE1Ni43IDExMS42IDAgMTExLjYgMjA2LjMgMjUuNCAxMjAuMi02IDE1MS42IDEwMi4xIDI2MC02IDM2OC40IDI1LjQgMzk5LjggMTExLjYgMzEzLjcgMTE0LjMgNTEyIDI2Mi44IDM2My40IDE2NC45IDI2MHptNDAuOS0xMDNsLTUwIDUwLS4zLTEwMC4zIDUwLjMgNTAuM3ptLTUwIDE1Nmw1MCA1MC01MC4zIDUwLjMgLjMtMTAwLjN6Il19LEh2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmlwZmlyZSIsaWNvbjpbMzIwLDUxMixbXSwiZjNhYyIsIk04MC41IDMwMS40YzAtNzMuOCAxMDUuMS0xMjIuNSAxMDUuMS0yMDMgMC00Ny4xLTM0LTg4LTM5LjEtOTAuNCAuNCAzLjMgLjYgNi43IC42IDEwIDAgOTIuMS0xNDcuMSAxNTMuOS0xNDcuMSAyNjguNiAwIDQ5LjggMzIuMiA3OS4yIDY2LjUgMTA4LjMgNjUuMSA0Ni43IDc4LjEgNzEuNCA3OC4xIDg2LjYgMCAxMC4xLTQuOCAxNy00LjggMjIuMyAxMy4xLTE2LjcgMTcuNC0zMS45IDE3LjUtNDYuNCAwLTI5LjYtMjEuNy01Ni4zLTQ0LjItODYuNS0xNi0yMi4zLTMyLjYtNDIuNi0zMi42LTY5LjV6bTIwNS4zLTM5Yy0xMi4xLTY2LjgtNzgtMTI0LjQtOTQuNy0xMzAuOWw0IDcuMmMyLjQgNS4xIDMuNCAxMC45IDMuNCAxNy4xIDAgNDQuNy01NC4yIDExMS4yLTU2LjYgMTE2LjctMi4yIDUuMS0zLjIgMTAuNS0zLjIgMTUuOCAwIDIwLjEgMTUuMiA0Mi4xIDE3LjkgNDIuMSAyLjQgMCA1Ni42LTU1LjQgNTguMS04Ny43IDYuNCAxMS43IDkuMSAyMi42IDkuMSAzMy40IDAgNDEuMi00MS44IDk2LjktNDEuOCA5Ni45IDAgMTEuNiAzMS45IDUzLjIgMzUuNSA1My4yIDEgMCAyLjItMS40IDMuMi0yLjQgMzcuOS0zOS4zIDY3LjMtODUgNjcuMy0xMzYuOCAwLTgtLjctMTYuMi0yLjItMjQuNnoiXX0sQXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1nb29nbGUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbImdvb2dsZS1wbHVzLXNxdWFyZSJdLCJmMGQ0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek02NCAyNTZjMC01NS4zIDQ0LjctMTAwIDEwMC0xMDAgMjcgMCA0OS41IDkuOCA2NyAyNi4ybC0yNy4xIDI2LjFjLTcuNC03LjEtMjAuMy0xNS40LTM5LjgtMTUuNC0zNC4xIDAtNjEuOSAyOC4yLTYxLjkgNjMuMiAwIDM0LjkgMjcuOCA2My4yIDYxLjkgNjMuMiAzOS42IDAgNTQuNC0yOC41IDU2LjgtNDMuMWwtNTYuOSAwIDAtMzQuNCA5NC40IDBjMSA1IDEuNiAxMC4xIDEuNiAxNi42IDAgNTcuMS0zOC4zIDk3LjYtOTYgOTcuNi01NS4zIDAtMTAwLTQ0LjctMTAwLTEwMHptMjkxIDE4LjJsMCAyOS0yOS4yIDAgMC0yOS0yOSAwIDAtMjkuMiAyOSAwIDAtMjkgMjkuMiAwIDAgMjkgMjkgMCAwIDI5LjItMjkgMHoiXX0scXZ0PUF1ZSxWdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0ZWUiLGljb246WzUxMiw1MTIsW10sImU4NjMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM4NS42IDExMy44bDAgMC0xNzcgMGMtNTIuNCAwLTk0LjggNDIuNC05NC44IDk0LjhsMCAxNzdjMCA3IDUuNyAxMi42IDEyLjYgMTIuNmwxODYuNSAwYzQ3LjEgMCA4NS4zLTM4LjIgODUuMy04NS4zbDAtNzIuN2MwLTctNS43LTEyLjYtMTIuNi0xMi42bC0xNDUuNCAwYy03IDAtMTIuNiA1LjctMTIuNiAxMi42bDAgMzEuNmMwIDYuNiA1LjEgMTIuMSAxMS42IDEyLjZsMSAwIDg4LjUgMGM2LjYgMCAxMi4xIDUuMSAxMi42IDExLjZsMCAxIDAgNi4zYzAgMjAuOS0xNyAzNy45LTM3LjkgMzcuOWwtMTIwLjEgMGMtNyAwLTEyLjYtNS43LTEyLjYtMTIuNmwwLTEyMC4xYzAtMjAuNCAxNi4xLTM3LjEgMzYuNC0zNy45bDEuNiAwIDE3NyAwYzcgMCAxMi42LTUuNyAxMi42LTEyLjZsMC0zMS42YzAtNy01LjYtMTIuNi0xMi42LTEyLjZ6Il19LGp2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4bXBwIixpY29uOls1NzYsNTEyLFtdLCJlODY0IiwiTTAgNDcuMmMzLjUgMTM3LjEgMTE3LjEgMjc4LjYgMjUyLjkgMzU2LjctMzEuNSAyNS02Ny4yIDQ0LjEtMTA2LjIgNTMuOWwwIDUuNGM1Ni40LTIuMyA5OC4xLTIwLjEgMTQxLjMtNDAuNyA2NS43IDM0LjYgMTIyLjIgMzkuOSAxNDEuNCA0MC43bDAtNS40Yy0zOS05LjgtNzQuNy0yOC44LTEwNi4yLTUzLjggMTM1LjctNzguMiAyNDkuMy0yMTkuOCAyNTIuOC0zNTYuOC01OC40IDI1LjctMTE5LjEgNDQuMi0xODAuMSA2Mi4zbDAgMGMzLjQgNTktMjAuMiAxNzAuNC0xMDcuOSAyNjIuMy04OC40LTkyLjMtMTExLjItMjA0LjEtMTA3LjgtMjYyLjNsMCAwQzExNy43IDkyLjYgNTkuMyA3MC4yIDAgNDcuMnpNOTMuOSA5N2w3My42IDIxLjhDMTY1LjQgMjE2IDIyNi44IDM1OCAzNDEuMyA0MzIuMiAxOTAuNSAzNzYuOSA4OS45IDIxNS43IDkzLjkgOTd6bTM4OC4zIDBjMy4zIDk5LTY1LjYgMjI0LjctMTcxLjcgMjk2LjQtNC43LTQuMS05LjMtOC40LTEzLjgtMTIuNyA3Ny04MC4yIDExMy4yLTE4Ni4zIDExMS45LTI2MS45TDQ4Mi4xIDk3ek0yNjQuNSA0MTAuNWMzIDEuNiA1LjkgMy4yIDguOSA0LjctMTIuNSA2LjQtMjUuNCAxMi4xLTM4LjYgMTcgMTAuMy02LjcgMjAuMi0xMy45IDI5LjctMjEuN3oiXX0sVXZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2ZiIsIk0yNTUuOSAxMjAuOWw5LjEtMTUuN2M1LjYtOS44IDE4LjEtMTMuMSAyNy45LTcuNXMxMy4xIDE4LjEgNy41IDI3LjlsLTg3LjUgMTUxLjUgNjMuMyAwYzIwLjUgMCAzMiAyNC4xIDIzLjEgNDAuOGwtMTg1LjUgMGMtMTEuMyAwLTIwLjQtOS4xLTIwLjQtMjAuNHM5LjEtMjAuNCAyMC40LTIwLjRsNTIgMCA2Ni42LTExNS40LTIwLjgtMzYuMWMtNS42LTkuOC0yLjMtMjIuMiA3LjUtMjcuOSA5LjgtNS42IDIyLjItMi4zIDI3LjkgNy41bDguOSAxNS43em0tNzguNyAyMThsLTE5LjYgMzRjLTUuNiA5LjgtMTguMSAxMy4xLTI3LjkgNy41cy0xMy4xLTE4LjEtNy41LTI3LjlsMTQuNi0yNS4yYzE2LjQtNS4xIDI5LjgtMS4yIDQwLjQgMTEuNnptMTY4LjktNjEuN2w1My4xIDBjMTEuMyAwIDIwLjQgOS4xIDIwLjQgMjAuNFM0MTAuNSAzMTggMzk5LjIgMzE4bC0yOS41IDAgMTkuOSAzNC41YzUuNiA5LjggMi4zIDIyLjItNy41IDI3LjktOS44IDUuNi0yMi4yIDIuMy0yNy45LTcuNS0zMy41LTU4LjEtNTguNy0xMDEuNi03NS40LTEzMC42LTE3LjEtMjkuNS00LjktNTkuMSA3LjItNjkuMSAxMy40IDIzIDMzLjQgNTcuNyA2MC4xIDEwNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MCAyNTZhMjE2IDIxNiAwIDEgMSA0MzIgMCAyMTYgMjE2IDAgMSAxIC00MzIgMHoiXX0sV3Z0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpeCIsaWNvbjpbNjQwLDUxMixbXSwiZjVjZiIsIk0zOTMuNCAxMzEuN2MwIDEzIDIuMSAzMi43LTI4LjcgNDMuOC05LjUgMy40LTE2IDkuNy0xNiA5LjcgMC0zMSA0LjctNDIuMiAxNy40LTQ4LjkgOS44LTUuMSAyNy4yLTQuNiAyNy4yLTQuNnpNMjc3LjYgMTY3LjJsLTM0LjIgMTMyLjctMjguNS0xMDguNmMtNy43LTMyLTIwLjgtNDguNS00OC40LTQ4LjUtMjcuNCAwLTQwLjcgMTYuMi00OC40IDQ4LjVMODkuNSAyOTkuOSA1NS4zIDE2Ny4yQzQ5LjcgMTQwLjUgMjMuOSAxMjkgMCAxMzJMNjUuNiAzNzkuOXMyMS42IDEuNiAzMi41LTRjMTQuMi03LjIgMjEtMTIuOCAyOS42LTQ2LjYgNy43LTMwLjEgMjkuMS0xMTguNCAzMS4xLTEyNC43IDQuOC0xNC45IDExLjEtMTMuOCAxNS40IDAgMiA2LjMgMjMuNSA5NC42IDMxLjEgMTI0LjcgOC42IDMzLjcgMTUuNCAzOS4zIDI5LjYgNDYuNiAxMC44IDUuNSAzMi41IDQgMzIuNSA0TDMzMi45IDEzMmMtMjQuNC0zLjEtNDkuOCA4LjktNTUuMyAzNS4zem0xMTUuOCA1LjJzLTQuMSA2LjMtMTMuNSAxMS42Yy02IDMuNC0xMS44IDUuNi0xOCA4LjYtMTUuMSA3LjMtMTMuMiAxMy45LTEzLjIgMzUuMmwwIDE1Mi4xczE2LjYgMi4xIDI3LjQtMy40YzEzLjktNy4xIDE3LjEtMTQgMTcuMy00NC44bDAtMTUwLjMgMCAwIDAtOXptMTYzLjQgODQuMUw2NDAgMTMyLjhzLTM1LjEtNi01Mi41IDkuOGMtMTMuMyAxMi4xLTI0LjQgMjkuNi01NC4yIDcyLjUtLjUgLjctNi4zIDEwLjUtMTMuMSAwLTI5LjMtNDIuMi00MC44LTYwLjMtNTQuMi03Mi41LTE3LjQtMTUuOC01Mi41LTkuOC01Mi41LTkuOGw4My4yIDEyMy43LTgzIDEyMy40czM2LjYgNC42IDU0LTExLjJjMTEuNS0xMC41IDE3LjYtMjAuNCA1Mi41LTcwLjcgNi44LTEwLjUgMTIuNi0uOCAxMy4xIDAgMjkuNCA0Mi40IDM5LjIgNTguMSA1My4xIDcwLjcgMTcuNCAxNS44IDUzLjMgMTEuMiA1My4zIDExLjJsLTgzLTEyMy40eiJdfSxHdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW50ZXJjb20iLGljb246WzQ0OCw1MTIsW10sImY3YWYiLCJNMzkyIDMyTDU2IDMyQzI1LjEgMzIgMCA1Ny4xIDAgODhMMCA0MjRjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzM2IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC0zMzZjMC0zMC45LTI1LjEtNTYtNTYtNTZ6TTI4My43IDExNC4xYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXptLTc0LjYtNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMjE2LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0yMTYuNXptLTc0LjcgNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXpNNTkuNyAxNDRjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxMzQuM2MwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zek0zODMuMSAzNzEuOGMtNzIuOCA2My0yNDEuNyA2NS40LTMxOC4xIDAtMTUtMTIuOCA0LjQtMzUuNSAxOS40LTIyLjcgNjUuOSA1NS4zIDIxNi4xIDUzLjkgMjc5LjMgMCAxNC45LTEyLjkgMzQuMyA5LjggMTkuNCAyMi43em01LjItOTMuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjN6Il19LFl2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFjdGV1cm9wZSIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZCIsIk0yNTAuNyAyMTEuN2w1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMiA2Ljh6bTYzLjcgMGw1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMi0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMS45IDYuOHptLTkxLjMgNTAuNWwtMy40IDBjLTQuOCAwLTMuOCA0LTMuOCAxMi4xIDAgNC43LTIuMyA2LjEtNS44IDYuMXMtNS44LTEuNC01LjgtNi4xbDAtMzYuNmMwLTQuNyAyLjMtNi4xIDUuOC02LjFzNS44IDEuNCA1LjggNi4xYzAgNy4yLS43IDEwLjUgMy44IDEwLjVsMy40IDBjNC43LS4xIDMuOC0zLjkgMy44LTEyLjMgMC05LjktNi43LTE0LjEtMTYuOC0xNC4xbC0uMiAwYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xbDAgNDAuMWMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xbC4yIDBjMTAuMSAwIDE2LjgtMy44IDE2LjgtMTQuMSAwLTkuOSAxLjEtMTMuOC0zLjgtMTMuOHptLTgwLjcgMTcuNGwtMTQuNyAwIDAtMTkuMyAxMS40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMTEuNCAwIDAtMTguMyAxNC40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjEuNyAwYy0yLjQtLjEtMy43IDEuMy0zLjcgMy44bDAgNTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMjEuOSAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjh6bS00Mi0xOC41YzQuNi0yIDcuMy02IDcuMy0xMi40bDAtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xbC0xMy40IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDMuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIyLjkgNS42IDAgNy40IDIzLjVjLjIgMSAuOCAxLjggMS42IDIuNHMxLjggLjkgMi43IC44bDMuMyAwYzIuOCAwIDQtMS44IDMuMi00LjRsLTguMS0yMy45em0tMy44LTE0YzAgNC44LTIuNSA2LjEtNi4xIDYuMWwtNS44IDAgMC0yMC45IDUuOCAwYzMuNiAwIDYuMSAxLjMgNi4xIDYuMWwwIDguN3pNMTc2LjEgMjI2Yy0uMS0uNS0uMi0xLS40LTEuNHMtLjYtLjgtMS0xLjEtLjgtLjYtMS4zLS43LTEtLjItMS41LS4xbC02LjkgMGMtLjUgMC0xIDAtMS40IC4ycy0uOSAuNC0xLjMgLjctLjcgLjctLjkgMS4xLS40IC45LS40IDEuNGwtMTEgNTkuMmMtLjUgMi43IC45IDQuMSAzLjQgNC4xbDMgMGMuNSAuMSAxIDAgMS41LS4ycy45LS40IDEuMy0uNyAuNy0uNyAuOS0xLjIgLjQtLjkgLjQtMS40bDEuOC0xMS4zIDEyLjIgMCAxLjggMTEuM2MwIC41IC4yIDEgLjQgMS40cy41IC45IC45IDEuMiAuOCAuNiAxLjMgLjcgMSAuMiAxLjUgLjJsMy41IDBjMi42IDAgMy45LTEuNCAzLjQtNC4xTDE3Ni4xIDIyNnptLTEyLjMgMzkuM2w0LjctMjkuNyA0LjcgMjkuNy05LjQgMHptODkuMyAyMC4ybDAtNTMuMiA3LjUgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0yNS44IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDIuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsNy4zIDAgMCA1My4yYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMCAwem0yNDgtLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMjIuNSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsMCAwek00MDggMjIxLjhsLS44IDBjLTEwLjEgMC0xNS4zIDQuNy0xNS4zIDE0LjFsMCA0MC4xYzAgOS4zIDUuMiAxNC4xIDE1LjMgMTQuMWwuOCAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC00MC4xYzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwwIDB6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjFsMC0zNi42YzAtNy45IDMtMTEuMSAxMC41LTExLjFzMTAuNSAzLjIgMTAuNSAxMS4xbDAgMzYuNnptLTQ2LjUtMTQuNWM2LjEtMS42IDkuMi02LjEgOS4yLTEzLjNsMC05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xbC0xMy43IDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuOSAxMS42IDAgMTAuNCAyNy4yYy4yIC41IC41IC45IC45IDEuMXMuOSAuNCAxLjQgLjRsMS41IDBjMS40IDAgMi0xIDEuNS0yLjNsLTEwLjYtMjcuM3ptLTYuNC0zLjlsLTEwLjIgMCAwLTI4LjUgMTAuMiAwYzcuNSAwIDEwLjUgMy4xIDEwLjUgMTEuMWwwIDYuNGMwIDcuOC0zIDExLTEwLjUgMTFsMCAwem04NS45LTMzLjFsLTEzLjcgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuMSAxMC42IDBjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMWwwLTEwLjVjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xem0xMC4yIDIyLjhjMCA3LjktMyAxMS4xLTEwLjUgMTEuMWwtMTAuMiAwIDAtMjkuMiAxMC4yIDBjNy41LS4xIDEwLjUgMy4xIDEwLjUgMTFsMCA3LjF6TTI1OS42IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6TTQ4Ny4yIDE3MS45Yy0xMS43LTQuNC0yMy41LTguMS0zNS42LTExLjMgMTkuNi03OCAxMS42LTEzNC43LTIyLjMtMTUzLjktMzQuNS0xOS40LTg1LjkgNC4zLTEzOC4yIDU1LjIgMy40IDMuMyA2LjggNi43IDEwLjIgMTAuMiA4Mi41LTgwIDExOS42LTUzLjUgMTIwLjktNTIuOCAyMi40IDEyLjcgMzYgNTUuOCAxNS41IDEzNy44LTI3LjgtNi40LTU2LjEtMTAuNy04NC42LTEzLTcxLjktMTAwLjUtMTQwLjYtMTQyLjEtMTgyLjItMTQyLjEtMzAuOCAwLTQzLjggMjEtNDcuNiAyNy43LTE4LjEgMzItMTMuMyA4NC4yIC4xIDEzMy44LTcwLjUgMjAuMy0xMjAuNyA1NC4xLTEyMC4zIDk1IC41IDU5LjYgMTAzLjIgODcuOCAxMjIuMSA5Mi44LTIwLjUgODEuOS0xMC4xIDEzNS42IDIyLjMgMTUzLjkgMjggMTUuOCA3NS4xIDYgMTM4LjItNTUuMi0zLjQtMy4zLTYuOC02LjctMTAuMi0xMC4yLTgyLjUgODAtMTE5LjcgNTMuNS0xMjAuOSA1Mi44LTIyLjMtMTIuNi0zNi01NS42LTE1LjUtMTM3LjkgMTIuNCAyLjkgNDEuOCA5LjUgODQuNiAxMyA3MS45IDEwMC40IDE0MC42IDE0MiAxODIuMSAxNDIgMzAuOCAwIDQzLjgtMjEgNDcuNi0yNy43IDE4LTMxLjkgMTMuMy04NC4xLS4xLTEzMy44IDE1Mi4zLTQzLjggMTU2LjItMTMwLjIgMzMuOS0xNzYuM2wwIDB6TTEzNiAzNi44YzIuOS01LjEgMTEuOS0yMC4zIDM0LjktMjAuMyAzNi44IDAgOTguOCAzOS42IDE2My4zIDEyNi4yLTMxLjMtMS44LTYyLjctMS41LTkzLjkgLjkgMTMtMTguMyAyNy4xLTM1LjggNDIuMi01Mi40LTMuNC0zLjUtNi44LTYuOS0xMC4yLTEwLjItMTguMyAyMC4yLTM1LjMgNDEuNy01MC43IDY0LjItMjguNSAyLjctNTYuNyA3LjYtODQuNCAxNC42LS4yLTEuNC0yNC4zLTgyLjItMS4yLTEyM2wwIDB6TTQ0MC44IDQ3NS4xYy0yLjkgNS4xLTExLjggMjAuMy0zNC45IDIwLjMtMzYuNyAwLTk4LjctMzkuNC0xNjMuMy0xMjYuMiAzMS4zIDEuOCA2Mi43IDEuNSA5My45LS45LTEzIDE4LjMtMjcuMSAzNS44LTQyLjIgNTIuNCAzLjQgMy41IDYuOCA2LjkgMTAuMiAxMC4yIDE4LjQtMjAuMiAzNS4zLTQxLjcgNTAuNy02NC4yIDQ3LjMtNC43IDgwLjMtMTMuNSA4NC40LTE0LjYgMjIuNyA4NC40IDQuNSAxMTcgMS4yIDEyM3ptOS4xLTEzOC42Yy0zLjYtMTEuOS03LjctMjQuMS0xMi40LTM2LjQtMi4xIDAtNC4yLS41LTYuMS0xLjVzLTMuNS0yLjQtNC42LTQuMmwtLjEgLjFjLTEuNiAxLjUtMy40IDIuNy01LjQgMy42IDUuNyAxNC4zIDEwLjYgMjguNCAxNC43IDQyLjItMjMuNyA2LTQ3LjcgMTAuMy03MiAxMyAzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjItMi4xLS44LTQuMi0xLjktNi0zLjItMS4xIDEuMi0zLjYgNC4yLTEwLjkgNC4yLTYuMiAxMS4yLTE3LjQgMzAuOS0zMy45IDU1LjItMzcuNCAzLjMtNzUgMy42LTExMi40IDEtNy45LTExLjItMjEuNS0zMS4xLTM2LjgtNTcuOC0xLS40LTItLjktMy0xLjUtMS45IDEuNi0zLjkgMy4yLTEyLjYgMy4yIDYuMyAxMS4yIDE3LjUgMzAuNyAzMy44IDU0LjYtMjQuMy0yLjMtNDguNC02LjItNzIuMi0xMS43IDMuOS0xNCA4LjYtMjguMyAxNC4xLTQyLjktMy4yIDAtNS40IC4yLTguNC0xLTIuMiAuOC00LjYgMS4xLTYuOSAxLTQuOSAxMy40LTkuMSAyNi41LTEyLjcgMzkuNC0xNTkuOS00Mi42LTE0MC4zLTEyMy42LTEuNS0xNjQgMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuMyAuNy0uOCAxLjQtMS42IDIuMy0yLjItNS44LTE0LjctMTAuOS0yOS4yLTE1LjItNDMuMyA3LTEuOCAzMi40LTguNCA3Mi0xMy0xNS45IDI0LjMtMjYuNyA0My45LTMyLjggNTUuMyAzLjEgMS44IDUuMyA0LjYgNi40IDggMi41LTMuNyA2LjEtNi42IDEwLjItOC40IDYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjkgMzcuNC0zLjMgNzUtMy42IDExMi40LTEgMzEuNSA0NC42IDI4LjkgNDguMSA0Mi41IDY0LjUgMi42LTMuNSA2LjMtNiAxMC40LTcuNC02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMiAyLjUgMSA0LjggMi40IDYuOCA0LjNsLjEgLjFjMS0xLjUgMi4zLTIuOCAzLjgtMy44czMuMy0xLjYgNS4xLTEuOGM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjUgMTEuNyAzLjEgMjMuMiA2LjggMzQuNSAxMSAxMDYuMSAzOS45IDc0IDg3LjkgNzIuNiA5MC40LTE5LjggMzUuMS04MC4xIDU1LjItMTA1LjcgNjIuNXptLTExNC40LTExNGwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjYgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA0OS44YzAgNy45LTIuNiAxMS4xLTEwLjEgMTEuMXMtMTAuMS0zLjEtMTAuMS0xMS4xbDAtNDkuOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWwuNCAwYzEwLjEgMCAxNS4xLTQuNiAxNS4xLTE0LjFsMC01MS41YzAtLjMtLjEtLjUtLjItLjhzLS4zLS41LS41LS42LS40LS4zLS43LS40LS41LS4xLS44LS4xek0zMjEuOCAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem0tMzEuMSA3LjRsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem01LjEtMzAuOGwtMTkuNCAwIDAtMjYuNyAxNi4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMTYuMSAwIDAtMjUuOCAxOS4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMjIuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjYtLjEtLjhzLS4yLS41LS40LS43LS40LS40LS43LS40LS41LS4xLS44LS4xbDAgMHptLTcuNC05OS40bC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOHoiXX0sS3Z0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndhemUiLGljb246WzUxMiw1MTIsW10sImY4M2YiLCJNNTAyLjYgMjAxLjdjMTQuNSA4NS45LTMwLjkgMTY3LjktMTEzLjIgMjA4LjEgMTMgMzQuMS0xMi40IDcwLjItNDguMyA3MC4yLTEzLjIgMC0yNi01LjEtMzUuNi0xNC4ycy0xNS4zLTIxLjYtMTYtMzQuOGMtNi40IC4yLTY0LjIgMC03Ni4zLS42LS4zIDYuOC0xLjkgMTMuNS00LjcgMTkuNnMtNi45IDExLjctMTEuOSAxNi4zLTEwLjggOC4yLTE3LjIgMTAuNS0xMy4yIDMuNC0xOS45IDMuMWMtMzMuOS0xLjQtNTgtMzQuOC00Ny02Ny45LTM3LjItMTMuMS03Mi41LTM0LjktOTkuNi03MC44LTEzLTE3LjMtLjUtNDEuOCAyMC44LTQxLjggNDYuMyAwIDMyLjItNTQuMiA0My4yLTExMC4zIDE4LjQtOTMuOSAxMTYuOC0xNTcuMSAyMTEuNy0xNTcuMSAxMDIuNSAwIDE5Ny4yIDcwLjcgMjE0LjEgMTY5Ljd6TTM3My45IDM4OC4zYzQyLTE5LjIgODEuMy01Ni43IDk2LjMtMTAyLjEgNDAuNS0xMjMuMS02NC4yLTIyOC0xODEuNy0yMjgtODMuNCAwLTE3MC4zIDU1LjQtMTg2LjEgMTM2LTkuNSA0OC45IDUgMTMxLjQtNjguNyAxMzEuNCAyNC45IDMzLjEgNTguMyA1Mi42IDkzLjcgNjQgMjQuNy0yMS44IDYzLjktMTUuNSA3OS44IDE0LjMgMTQuMiAxIDc5LjIgMS4yIDg3LjkgLjggMy41LTYuOSA4LjUtMTIuOSAxNC43LTE3LjVzMTMuMi03LjkgMjAuOC05LjUgMTUuNC0xLjQgMjIuOSAuNCAxNC41IDUuMyAyMC41IDEwLjJ6TTIwNS41IDE4Ny4xYzAtMzQuNyA1MC44LTM0LjcgNTAuOCAwcy01MC44IDM0LjctNTAuOCAwem0xMTYuNiAwYzAtMzQuNyA1MC45LTM0LjcgNTAuOSAwcy01MC45IDM0LjgtNTAuOSAwek0xOTkuNSAyNTcuOGMtMy40LTE2LjkgMjIuMi0yMi4yIDI1LjYtNS4ybC4xIC4zYzQuMSAyMS40IDI5LjggNDQgNjQuMSA0My4xIDM1LjctLjkgNTkuMy0yMi4yIDY0LjEtNDIuOCA0LjUtMTYuMSAyOC42LTEwLjQgMjUuNSA2LTUuMiAyMi4yLTMxLjIgNjItOTEuNSA2Mi45LTQyLjYgMC04MC45LTI3LjgtODcuOS02NC4ybDAgMHoiXX0sWnZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtcmVtaXgiLGljb246WzUxMiw1MTIsW10sImY0ZWUiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek00MTguMSAyNjAuNGw0LjkgMi4yIDAgNzBjLTcuMiAzLjYtNjMuNCAyNy41LTY3LjMgMjguOC02LjUtMS44LTExMy43LTQ2LjgtMTM3LjMtNTYuMmwtNjQuMiAyNi42LTYzLjMtMjcuNSAwLTYzLjggNTkuMy0yNC44Yy0uNy0uNy0uNCA1LS40LTcwLjRsNjcuMy0yOS43IDE1MS45IDYyLjkgMCA2MS42IDQ5LjEgMjAuM3ptLTcwLjQgODEuNWwwLTQzLjgtLjQgMCAwLTEuOC0xMTMuOC00Ni41IDAgNDUuMiAxMTMuOCA0Ni45IDAtLjQgLjQgLjR6bTcuNS01Ny42bDM5LjktMTYuNC0zNi44LTE1LjUtMzkgMTYuNCAzNS45IDE1LjV6bTUyLjMgMzguMWwwLTQzLTQ0LjMgMTguNiAwIDQzLjQgNDQuMy0xOXoiXX0sWHZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhbmRjYW1wIixpY29uOls1MTIsNTEyLFtdLCJmMmQ1IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptNDguMiAzMjYuMWwtMTgxIDAgODQuNy0xNTYuMSAxODEgMC04NC43IDE1Ni4xeiJdfSxRdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lLXN0cm9rZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY4NCIsIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMzUgODEuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxKdnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8tdiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZCIsIk00NDcuOCAxNTMuNmMtMiA0My42LTMyLjQgMTAzLjMtOTEuNCAxNzkuMS02MC45IDc5LjItMTEyLjQgMTE4LjgtMTU0LjYgMTE4LjgtMjYuMSAwLTQ4LjItMjQuMS02Ni4zLTcyLjMtMzUuMi0xMjkuMi01MC4yLTIwNC45LTc5LjMtMjA0LjktMy40IDAtMTUuMSA3LjEtMzUuMiAyMS4xTDAgMTY4LjJjNTEuNi00NS4zIDEwMC45LTk1LjcgMTMxLjgtOTguNSAzNC45LTMuNCA1Ni4zIDIwLjUgNjQuNCA3MS41IDI4LjcgMTgxLjUgNDEuNCAyMDguOSA5My42IDEyNi43IDE4LjctMjkuNiAyOC44LTUyLjEgMzAuMi02Ny42IDQuOC00NS45LTM1LjgtNDIuOC02My4zLTMxIDIyLTcyLjEgNjQuMS0xMDcuMSAxMjYuMi0xMDUuMSA0NS44IDEuMiA2Ny41IDMxLjEgNjQuOSA4OS40eiJdfSxleHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyYXZhIixpY29uOlszODQsNTEyLFtdLCJmNDI4IiwiTTE1OC40IDBMNyAyOTIgOTYuMiAyOTIgMTU4LjQgMTc1LjkgMjIwLjEgMjkyIDMwOC42IDI5MiAxNTguNCAwek0zMDguNiAyOTJsLTQzLjkgODguMi00NC42LTg4LjItNjcuNiAwIDExMi4yIDIyMCAxMTEuNS0yMjAtNjcuNiAweiJdfSx0eHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pcmVnaXN0cnkiLGljb246WzM4NCw1MTIsW10sImY0MDQiLCJNMTkyIDQ4MGMzOS41IDAgNzYuMi0xMS44IDEwNi44LTMyLjJsLTIxMy41IDBDMTE1LjggNDY4LjIgMTUyLjUgNDgwIDE5MiA0ODB6TTEwMi45IDI4Ni45bDAtMTIuNC0xMDIuOSAwIDAgMTIuNGMwIDIuNSAwIDUgLjEgNy40bDEwMy4xIDBjLS4yLTIuNC0uMy00LjktLjMtNy40em0yMC41IDU3bC0xMTQuOSAwYzIuNiA4LjUgNS44IDE2LjggOS42IDI0LjhsMTM4LjMgMGMtMTIuOS01LjctMjQuMS0xNC4yLTMzLTI0Ljh6bS0xNy43LTM0LjdsLTEwNC40IDBjLjkgNy42IDIuMiAxNSAzLjkgMjIuM2wxMDkuNyAwYy00LTYuOS03LjItMTQuNC05LjItMjIuM3ptLTIuOC02OS4zbC0xMDIuOSAwIDAgMTcuMyAxMDIuOSAwIDAtMTcuM3ptMC0xNzMuMmwtMTAyLjkgMCAwIDQuOSAxMDIuOSAwIDAtNC45em0wLTM0LjdsLTEwMi45IDAgMCAyLjUgMTAyLjkgMCAwLTIuNXptMCA2OS4zbC0xMDIuOSAwIDAgNy40IDEwMi45IDAgMC03LjR6bTAgMTA0bC0xMDIuOSAwIDAgMTQuOCAxMDIuOSAwIDAtMTQuOHptMC02OS4zbC0xMDIuOSAwIDAgOS45IDEwMi45IDAgMC05Ljl6bTAgMzQuNmwtMTAyLjkgMCAwIDEyLjQgMTAyLjkgMCAwLTEyLjR6TTI2OS4xIDMzMS41bDEwOS43IDBjMS44LTcuMyAzLjEtMTQuNyAzLjktMjIuM2wtMTA0LjQgMGMtMi4xIDcuOS01LjIgMTUuNC05LjIgMjIuM3ptMTItMTg1LjdsMTAyLjkgMCAwLTkuOC0xMDIuOSAwIDAgOS44em0wIDM3LjJsMTAyLjkgMCAwLTEyLjQtMTAyLjkgMCAwIDEyLjR6bTAtNzQuM2wxMDIuOSAwIDAtNy40LTEwMi45IDAgMCA3LjR6bTAtNzYuN2wwIDIuNSAxMDIuOSAwIDAtMi41LTEwMi45IDB6TTc4LjEgNDQyLjlsMjI3LjcgMGMxMS44LTguNyAyMi43LTE4LjYgMzIuMi0yOS43bC0yOTMuMSAwYzkuNiAxMSAyMS40IDIxIDMzLjIgMjkuN3ptMjAzLTM3MS4zbDEwMi45IDAgMC00LjktMTAyLjkgMCAwIDQuOXptMCAxNDguNWwxMDIuOSAwIDAtMTQuOC0xMDIuOSAwIDAgMTQuOHpNMzguOCA0MDUuN2wzMDUuMyAwYzYuNy04LjUgMTIuNi0xNy42IDE3LjgtMjcuMkwyMyAzNzguNWM1LjIgOS42IDkuMiAxOC43IDE1LjggMjcuMnptMTg4LjgtMzcuMWwxMzkuNCAwYzMuNy04IDUuOC0xNi4yIDguNS0yNC44bC0xMTUgMGMtOC44IDEwLjctMjAuMSAxOS4yLTMyLjkgMjQuOHptNTMuNS04MS43YzAgMi41LS4xIDUtLjQgNy40bDEwMy4xIDBjLjEtMi41IC4yLTQuOSAuMi03LjRsMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTI5LjdsMTAyLjkgMCAwLTE3LjMtMTAyLjkgMCAwIDE3LjN6Il19LGF4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1kaW5lcnMtY2x1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YyIsIk0yMzkuNyA3OS45YTE3NS44IDE3NS44IDAgMSAwIDAgMzUxLjYgMTc1LjggMTc1LjggMCAxIDAgMC0zNTEuNnpNMTk5LjggMzU5LjVjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMWwwIDIwNy45em03OS44IC4zbDAtMjA4LjJjNDEuNyAxNi4yIDcxLjQgNTYuNyA3MS40IDEwNC4xcy0yOS43IDg3LjktNzEuNCAxMDQuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGwtOTAuMyAwQzEzMy4yIDQ0OCA0NS42IDM2Mi41IDQ1LjYgMjU3LjggNDUuNiAxNDMuMiAxMzMuMiA2NCAyMzkuNCA2NGw5MC4zIDBjMTA1IDAgMjAwLjcgNzkuMiAyMDAuNyAxOTMuOCAwIDEwNC43LTk1LjcgMTkwLjItMjAwLjcgMTkwLjJ6Il19LHJ4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrdWJlcm5ldGVzIixpY29uOls1MTIsNTEyLFtdLCJlODU3IiwiTTI1NiAzMTYuMWMzLjUtLjEgNy4yIDIgOC45IDUuMUwyOTMgMzcxLjdjLTMuNiAxLjItNy4zIDIuMy0xMS4yIDMuMS0yMS40IDQuOS00Mi43IDMuNC02Mi0zLjJsMjcuOS01MC40YzEuNy0zLjEgNC45LTUgOC4yLTUuMXptNTAuNS0yMy40bDU3LjIgOS43Yy04LjQgMjMuNS0yNC40IDQzLjktNDUuOCA1Ny41bC0yMi4yLTUzLjZjLTItNC43IC4xLTEwLjQgNC44LTEyLjYgMS45LS45IDQuMS0xLjMgNi0uOXptLTg5LjEgNy43Yy41IDIuMSAuMyA0LjItLjUgNmwtMjEuOCA1My4zYy0yMC41LTEzLjItMzYuOS0zMi45LTQ1LjctNTcuMWw1Ni43LTkuNmM1LjEtLjkgMTAuMSAyLjQgMTEuMyA3LjV6bTU4LjgtNDFsLTMuOSAxNy4xLTE1LjggNy42LTE1LjktNy43LTQtMTcuMSAxMS0xMy43IDE3LjcgMCAxMSAxMy43em0tNzMuNy0xNi43YzMuOSAzLjQgNC40IDkuNSAxLjIgMTMuNi0xLjMgMS43LTMuMSAyLjgtNSAzLjNsLTU1LjMgMTYuMmMtMi44LTI1LjcgMy4zLTUwLjcgMTYuMS03MS42bDQzLjEgMzguNnptMTUwLjctMzguNWM2LjQgMTAuNCAxMS4yIDIyIDE0LjEgMzQuNiAyLjkgMTIuNCAzLjYgMjQuOCAyLjQgMzYuOGwtNTUuNi0xNmMtNS0xLjQtOC4xLTYuNy02LjktMTEuNyAuNS0yLjEgMS42LTMuOCAzLjEtNS4xbDQyLjktMzguNXptLTExMy44IDQuNGMtLjIgNS4yLTQuNyA5LjQtOS45IDkuNC0yLjEgMC00LjEtLjctNS43LTEuOGwtNDcuMy0zMy40YzE0LjUtMTQuMyAzMy4xLTI0LjggNTQuNS0yOS43IDMuOS0uOSA3LjgtMS42IDExLjctMmwtMy4zIDU3LjZ6bTMwLjgtNTcuNmMyNSAzLjEgNDguMSAxNC40IDY1LjggMzEuN2wtNDcuMSAzMy4yYy00LjIgMy0xMCAyLjMtMTMuMy0xLjgtMS4zLTEuNy0yLTMuNi0yLjEtNS42bC0zLjMtNTcuNXpNMjU0LjUtMS4zYzUuOS0uMyAxMS43IC45IDE3IDMuNEw0NTUgODkuN2M0LjcgMi4zIDguOSA1LjYgMTIuMiA5LjdzNS42IDguOCA2LjggMTMuOWw0NS4zIDE5Ni45YzEuMiA1LjEgMS4yIDEwLjQgMCAxNS41cy0zLjUgOS45LTYuOCAxMy45TDM4NS42IDQ5Ny42Yy0zLjMgNC4xLTcuNSA3LjQtMTIuMiA5LjZzLTEwIDMuNC0xNS4yIDMuNGwtMjAzLjYgMGMtNS4zIDAtMTAuNS0xLjItMTUuMi0zLjRzLTguOS01LjUtMTIuMi05LjZMLjIgMzM5LjdjLS43LS45LTEuNC0xLjgtMi0yLjgtMi42LTMuOS00LjMtOC4zLTUuMS0xMi45cy0uNy05LjMgLjMtMTMuOEwzOC43IDExMy40YzEuMi01LjEgMy41LTkuOSA2LjgtMTMuOXM3LjUtNy40IDEyLjItOS43TDI0MS4xIDIuMWM0LjItMiA4LjgtMy4yIDEzLjQtMy40em0xLjggNjdjLTYuMSAwLTExIDUuNS0xMSAxMi4yIDAgLjEgMCAuMiAwIC4zIDAgLjktLjEgMiAwIDIuOCAuMSAzLjkgMSA2LjkgMS41IDEwLjQgLjkgNy43IDEuNyAxNCAxLjIgMTkuOS0uNSAyLjItMi4xIDQuMy0zLjYgNS43bC0uMiA0LjZjLTYuNiAuNS0xMy4yIDEuNi0xOS44IDMuMS0yOC41IDYuNS01My4xIDIxLjEtNzEuOCA0MS0xLjItLjgtMy4zLTIuMy00LTIuOC0yIC4zLTQgLjktNi41LS42LTQuOS0zLjMtOS40LTcuOS0xNC44LTEzLjQtMi41LTIuNi00LjMtNS4xLTcuMi03LjctLjctLjYtMS43LTEuNC0yLjQtMi0yLjMtMS44LTUtMi44LTcuNy0yLjktMy40LS4xLTYuNiAxLjItOC44IDMuOS0zLjggNC43LTIuNSAxMiAyLjcgMTYuMiAuMSAwIC4xIC4xIC4yIC4xIC43IC42IDEuNiAxLjMgMi4zIDEuOCAzLjEgMi4zIDYgMy41IDkuMSA1LjMgNi42IDQuMSAxMiA3LjQgMTYuMyAxMS41IDEuNyAxLjggMiA0LjkgMi4yIDYuM2wzLjUgMy4yYy0xOC44IDI4LjQtMjcuNiA2My40LTIyLjQgOTkuMWwtNC42IDEuM2MtMS4yIDEuNi0yLjkgNC00LjcgNC43LTUuNiAxLjgtMTIgMi40LTE5LjcgMy4zLTMuNiAuMy02LjcgLjEtMTAuNSAuOC0uOCAuMi0yIC40LTIuOSAuN2wtLjEgMC0uMiAuMWMtNi41IDEuNi0xMC43IDcuNS05LjMgMTMuNCAxLjMgNS45IDcuNyA5LjQgMTQuMiA4bC4yIDBjLjEgMCAuMS0uMSAuMi0uMSAuOS0uMiAyLjEtLjQgMi44LS42IDMuOC0xIDYuNS0yLjUgOS44LTMuOCA3LjMtMi42IDEzLjMtNC44IDE5LjItNS42IDIuNC0uMiA1IDEuNSA2LjMgMi4ybDQuOC0uOGMxMSAzNC4xIDM0LjEgNjEuNyA2My4zIDc5LjFsLTIgNC44Yy43IDEuOSAxLjUgNC40IDEgNi4yLTIuMSA1LjUtNS44IDExLjQtOS45IDE3LjktMiAzLTQuMSA1LjMtNS45IDguOC0uNCAuOC0xIDIuMS0xLjQgMy0yLjggNi0uOCAxMyA0LjcgMTUuNiA1LjUgMi42IDEyLjItLjEgMTUuMi02LjJsMCAwYy40LS45IDEtMiAxLjQtMi44IDEuNi0zLjYgMi4xLTYuNiAzLjItMTAuMSAyLjktNy4zIDQuNS0xNC45IDguNS0xOS43IDEuMS0xLjMgMi45LTEuOCA0LjgtMi4zbDIuNS00LjVjMjUuNSA5LjggNTQgMTIuNCA4Mi41IDUuOSA2LjUtMS41IDEyLjgtMy40IDE4LjgtNS43IC43IDEuMiAyIDMuNiAyLjMgNC4yIDEuOSAuNiAzLjkgLjkgNS42IDMuNCAzIDUuMSA1IDExLjIgNy41IDE4LjUgMS4xIDMuNCAxLjYgNi41IDMuMiAxMC4xIC40IC44IDEgMiAxLjQgMi44IDIuOSA2LjEgOS43IDguOCAxNS4yIDYuMiA1LjQtMi42IDcuNS05LjYgNC43LTE1LjYtLjQtLjktMS0yLjEtMS40LTMtMS44LTMuNC0zLjktNS43LTUuOS04LjctNC4yLTYuNS03LjYtMTEuOS05LjgtMTcuNC0uOS0yLjggLjItNC42IC44LTYuNS0uNC0uNS0xLjMtMy4yLTEuOC00LjQgMzAuNC0xNy45IDUyLjgtNDYuNiA2My4zLTc5LjYgMS40IC4yIDMuOSAuNyA0LjcgLjggMS43LTEuMSAzLjItMi41IDYuMi0yLjMgNS45IC44IDExLjkgMyAxOS4yIDUuNiAzLjQgMS4zIDYuMSAyLjggOS44IDMuOCAuOCAuMiAxLjkgLjQgMi44IC42IC4xIDAgLjEgMCAuMiAuMWwuMiAwYzYuNSAxLjQgMTIuOC0yLjIgMTQuMi04cy0yLjgtMTEuOC05LjMtMTMuNGMtLjktLjItMi4zLS42LTMuMi0uNy0zLjgtLjctNi45LS41LTEwLjUtLjgtNy43LS44LTE0LTEuNC0xOS43LTMuMi0yLjMtLjktNC0zLjctNC44LTQuOGwtNC40LTEuM2MyLjMtMTYuNiAxLjctMzMuOS0yLjMtNTEuMy00LTE3LjUtMTEuMS0zMy41LTIwLjYtNDcuNiAxLjEtMSAzLjMtMi45IDMuOS0zLjUgLjItMiAwLTQgMi4xLTYuMiA0LjMtNC4xIDkuOC03LjQgMTYuMy0xMS41IDMuMS0xLjggNi0zIDkuMS01LjMgLjctLjUgMS43LTEuMyAyLjQtMS45IDUuMy00LjIgNi41LTExLjQgMi43LTE2LjJzLTExLjEtNS4yLTE2LjQtMWMtLjcgLjYtMS44IDEuNC0yLjQgMi0yLjkgMi41LTQuOCA1LTcuMiA3LjctNS40IDUuNS05LjkgMTAuMS0xNC44IDEzLjQtMi4xIDEuMi01LjMgLjgtNi43IC43bC00LjIgM2MtMjMuOC0yNS01Ni4yLTQxLTkxLjItNDQuMS0uMS0xLjUtLjItNC4xLS4yLTQuOS0xLjQtMS40LTMuMi0yLjUtMy42LTUuNS0uNS01LjkgLjMtMTIuMyAxLjMtMTkuOSAuNS0zLjYgMS40LTYuNiAxLjUtMTAuNCAwLS45IDAtMi4yIDAtMy4xIDAtNi43LTQuOS0xMi4yLTExLTEyLjJ6Il19LHN4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QiLGljb246WzUxMiw1MTIsW10sImYwZDIiLCJNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDgtMjUuNiAwLTUwLjItMy45LTczLjQtMTEuMSAxMC4xLTE2LjUgMjUuMi00My41IDMwLjgtNjUgMy0xMS42IDE1LjQtNTkgMTUuNC01OSA4LjEgMTUuNCAzMS43IDI4LjUgNTYuOCAyOC41IDc0LjggMCAxMjguNy02OC44IDEyOC43LTE1NC4zIDAtODEuOS02Ni45LTE0My4yLTE1Mi45LTE0My4yLTEwNyAwLTE2My45IDcxLjgtMTYzLjkgMTUwLjEgMCAzNi40IDE5LjQgODEuNyA1MC4zIDk2LjEgNC43IDIuMiA3LjIgMS4yIDguMy0zLjMgLjgtMy40IDUtMjAuMyA2LjktMjguMSAuNi0yLjUgLjMtNC43LTEuNy03LjEtMTAuMS0xMi41LTE4LjMtMzUuMy0xOC4zLTU2LjYgMC01NC43IDQxLjQtMTA3LjYgMTEyLTEwNy42IDYwLjkgMCAxMDMuNiA0MS41IDEwMy42IDEwMC45IDAgNjcuMS0zMy45IDExMy42LTc4IDExMy42LTI0LjMgMC00Mi42LTIwLjEtMzYuNy00NC44IDctMjkuNSAyMC41LTYxLjMgMjAuNS04Mi42IDAtMTktMTAuMi0zNC45LTMxLjQtMzQuOS0yNC45IDAtNDQuOSAyNS43LTQ0LjkgNjAuMiAwIDIyIDcuNCAzNi44IDcuNCAzNi44cy0yNC41IDEwMy44LTI5IDEyMy4yQzE2MS41IDQzNy4yIDE2My41IDQ2Ny40IDE2NS42IDQ4NyA3My40IDQ1MC45IDggMzYxLjEgOCAyNTYgOCAxMTkgMTE5IDggMjU2IDhTNTA0IDExOSA1MDQgMjU2eiJdfSxpeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWxnb2xpYSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YyIsIk0yNTYgMGMtMTM5LjkgMC0yNTQgMTEyLjctMjU2IDI1Mi4xLTIgMTQxLjUgMTEyLjkgMjU4LjcgMjU0LjUgMjU5LjUgNDMuNyAuMyA4NS45LTEwLjQgMTIzLjMtMzAuNyAzLjYtMiA0LjItNyAxLjEtOS43bC0yNC0yMS4yYy00LjktNC4zLTExLjgtNS41LTE3LjgtMy0yNi4xIDExLjEtNTQuNSAxNi44LTgzLjcgMTYuNC0xMTQuNC0xLjUtMjA2LjktOTYuNi0yMDUuMS0yMTEgMS44LTExMi45IDk0LjMtMjA0LjIgMjA3LjctMjA0LjJsMjA3LjcgMCAwIDM2OS0xMTcuOC0xMDQuN2MtMy44LTMuNC05LjctMi43LTEyLjcgMS4zLTE4LjkgMjUtNDkuNyA0MC42LTgzLjkgMzguMi00Ny41LTMuMy04NS45LTQxLjUtODkuNS04OC45LTQuMi01Ni42IDQwLjYtMTAzLjkgOTYuMy0xMDMuOSA1MC40IDAgOTEuOSAzOC44IDk2LjIgODggLjQgNC40IDIuNCA4LjUgNS43IDExLjRsMzAuNyAyNy4yYzMuNSAzLjEgOSAxLjIgOS45LTMuNCAyLjItMTEuOCAzLTI0LjIgMi4xLTM2LjgtNC45LTcyLTYzLjMtMTMwLTEzNS40LTEzNC40LTgyLjctNS4xLTE1MS44IDU5LjUtMTU0IDE0MC42LTIuMSA3OC45IDYyLjYgMTQ3IDE0MS42IDE0OC43IDMzIC43IDYzLjYtOS42IDg4LjMtMjcuNkw0OTUgNTA5LjRjNi42IDUuOCAxNyAxLjIgMTctNy43bDAtNDkyYzAtNS40LTQuNC05LjctOS43LTkuN0wyNTYgMHoiXX0sb3h0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrcGF0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0MiIsIk0yNDQuNiAyMzIuNGMwIDguNS00LjMgMjAuNS0yMS4zIDIwLjVsLTE5LjYgMCAwLTQxLjUgMTkuNiAwYzE3LjEgMCAyMS4zIDEyLjQgMjEuMyAyMXpNNDQ4IDMybDAgNDQ4LTQ0OCAwIDAtNDQ4IDQ0OCAwek0xNTEuMyAyODcuOGMwLTIxLjItMTIuMS0zNC41LTQ2LjctNDQuOC0yMC42LTcuNC0yNi0xMC45LTI2LTE4LjZzNy0xNC42IDIwLjQtMTQuNmMxNC4xIDAgMjAuOCA4LjQgMjAuOCAxOC40bDMwLjcgMCAuMi0uNmMuNS0xOS42LTE1LjEtNDEuNi01MS4xLTQxLjYtMjMuNCAwLTUyLjYgMTAuOC01Mi42IDM4LjMgMCAxOS40IDkuMiAzMS4zIDUwLjcgNDQuNCAxNy4zIDYuMiAyMS45IDEwLjQgMjEuOSAxOS41IDAgMTUuMi0xOS4xIDE0LjItMTkuNSAxNC4yLTIwLjQgMC0yNS43LTkuMS0yNS43LTIxLjlsLTMwLjggMC0uMiAuNmMtLjcgMzEuMyAyOC40IDQ1LjIgNTYuNiA0NS4yIDMwIDAgNTEuMS0xMy42IDUxLjEtMzguM3ptMTI1LjQtNTUuNmMwLTI1LjMtMTguNC00NS41LTUzLjQtNDUuNWwtNTEuOCAwIDAgMTM4LjIgMzIuMiAwIDAtNDcuNCAxOS42IDBjMzAuMyAwIDUzLjQtMTYgNTMuNC00NS40ek0yOTcuOSAzMjVsNDkuMS0xMzguMi0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDB6TTQwNC41IDE4Ni44bC0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDAgNDkuMS0xMzguMnoiXX0sbnh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9jdG9wdXMtZGVwbG95IixpY29uOls1MTIsNTEyLFtdLCJlMDgyIiwiTTQ1NS43IDM0OS4yYy00NS45LTM5LjEtMzYuNy03Ny45LTE2LjEtMTI4LjEgMzUuNy04Ny0yMy41LTE4Ni45LTEwOS42LTIxMi44LTkyLjktMjcuOS0xOTUuNyAxNi0yMzAuMyAxMDguOC04LjcgMjMuNS0xMi41IDQ4LjUtMTEgNzMuNSAxLjcgMjkuNSAxNC43IDUzIDI0LjEgODAuMyAxNy4yIDUwLjItMjguMSA5Mi43LTY2LjcgMTE3LjYtNDYuOCAzMC4yLTM2LjMgMzkuOS04LjQgNDEuOSAyMy40IDEuNyA0NC41LTQuNSA2NS4zLTE1IDkuMi00LjYgNDAuNy0xOC45IDQ1LjEtMjguNi0xMi4yIDI2LjYtMzcgNzIuNy0yMS41IDEwMi4xIDE5LjEgMzYuMiA2Ny4xLTMxLjggNzYuNy00NS44IDguNi0xMi42IDQzLTgxLjMgNjMuNi00Ni45IDE4LjkgMzEuNCA4LjYgNzYuNCAzNS43IDEwNC42IDMyLjkgMzQuMiA1MS4yLTE4LjMgNTEuNC00NC4yIC4yLTE2LjQtNi4xLTk1LjkgMjkuOS01OS45IDIxLjQgMjEuNCA1Mi45IDcxLjIgODguNiA2NyAzOC43LTQuNS0yMi4xLTY4LTI4LjMtNzguNyA1LjQgNC4zIDUzLjcgMzQuMSA1My44IDkuNSAuMS0xOC44LTMwLjEtMzQuNy00Mi41LTQ1LjN6Il19LGx4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW1tZXIiLGljb246WzUxMiw1MTIsW10sImY4NDAiLCJNNTAwLjcgMTU5LjVjLS40LTEuOC0xLjItMy40LTIuMy00LjhzLTIuNS0yLjYtNC4xLTMuNWMtMy4xLTEuNi02LjctMi0xMC4xLTEuMWwtMjYuNCA2LjYgMC0uMi0yMi4zIDUuOC0xLjIgLjMtLjYtMi4yYy0xNS41LTU4LjMtNDUtMTExLjktODYuMS0xNTYuMi0yLjYtMi43LTYuMS00LjItOS44LTQuM3MtNy4zIDEuMy0xMCAzLjhsLTEwMi45IDEwMi43LTE5OS45IDBjLTYuNiAwLTEyLjkgMi42LTE3LjYgNy4zUzAgMTI0LjggMCAxMzEuNGwwIDI0OUMwIDM4NyAyLjYgMzkzLjMgNy4zIDM5OHMxMSA3LjMgMTcuNiA3LjNMMjI1IDQwNS4zIDMyOC4xIDUwOGMyLjYgMi42IDYgNCA5LjcgNHM3LjEtMS40IDkuNy00Yy4xLS4xIC4yLS4zIC40LS40IDI5LjMtMzEuNSA1Mi44LTY3LjggNjkuNi0xMDcuNCA2LjktMTYuNSAxMi43LTMzLjUgMTcuMy01MC44bDAgMCAyMC40IDUuMyAwLS4xIDI4LjMgNy4zYy45IC4yIDEuNyAuNCAyLjYgLjUgMS40IC4yIDIuOCAuMiA0LjEtLjEgMi41LS41IDQuOC0xLjcgNi43LTMuNHMzLjItNCAzLjgtNi41YzE1LjItNjMuNCAxNS4yLTEyOS42IC4xLTE5M2wwIDB6TTMzNy4xIDI0LjdsMCAwIDAgMCAwIDB6TTIyNi45IDE4OS44bC01Mi42IDkxLjNjLTEgMS43LTEuNSAzLjctMS41IDUuN2wwIDQ2LjJjMCA1LjgtMi4zIDExLjQtNi41IDE1LjZzLTkuNyA2LjQtMTUuNiA2LjRsLTMuNCAwYy01LjggMC0xMS40LTIuMy0xNS42LTYuNHMtNi41LTkuNy02LjUtMTUuNmwwLTQ1LjdjMC0xLjktLjUtMy44LTEuNC01LjVMNzIuMyAxODkuNmMtMS45LTMuNC0yLjgtNy4xLTIuOC0xMXMxLjEtNy42IDMtMTAuOSA0LjctNi4xIDguMS04IDcuMS0yLjkgMTEtMi45bDMuMyAwYzQgMCA4IDEuMSAxMS41IDMuMnM2LjMgNS4xIDguMSA4LjdsMzYuNCA3MC4zIDM3LjUtNzAuNWMxLjgtMy41IDQuNi02LjQgNy45LTguNHM3LjItMy4yIDExLjEtMy4yIDcuOCAuOSAxMS4yIDIuOCA2LjMgNC43IDguMiA4LjFjMiAzLjMgMyA3LjEgMyAxMXMtMSA3LjctMyAxMWwwIDB6TTMzNy4xIDI0LjdjMzUuOSA0MC42IDYxLjkgODkgNzUuOCAxNDEuM2wuNiAyLTExNC4xIDI5LjYgMC02Ni4xYzAtNi42LTIuNy0xMi45LTcuMy0xNy42cy0xMS03LjMtMTcuNi03LjNsLTE5LjQgMCA4Mi4xLTgxLjh6TTM5Ny42IDM5MmwwIDAgMCAwYy0xNC43IDM0LjgtMzUuMSA2Ny02MC4yIDk1LjJsLTgyLjItODEuOSAxOS4yIDBjNi42IDAgMTIuOS0yLjYgMTcuNi03LjNzNy4zLTExIDcuMy0xNy42bDAtNjYuMiAxMTQuNiAyOS45Yy00LjQgMTYuMy05LjggMzIuMy0xNi4zIDQ3LjlsMCAwem04NC01Mi40bDAgMC01MC42LTEzLjEtMTMxLjctMzQuMyAwLTcyLjUgMTE5LjctMzEgNC41LTEuMmMyOS45LTcuNyA0OS4yLTEyLjggNTguMS0xNS4xIDEyIDU1LjEgMTIgMTEyLjEgMCAxNjcuMnoiXX0sY3h0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1vZHgiLGljb246WzQ0OCw1MTIsW10sImYyODUiLCJNMzU2IDI0MS44bDM2LjcgMjMuNyAwIDIxNC41LTEzMy04My44IDk2LjMtMTU0LjR6TTQ0MCA3NWwtMjEzLjcgMC0yMyAzNy44IDE1My41IDk2LjUgODMuMi0xMzQuM3pNMzUxIDIxNy44bC0yOTUuOC0xODUuOCAwIDIxNC41IDQ2IDI5IDI0OS44LTU3Ljd6TTk3IDI5NC4yTDggNDM3IDIyMS43IDQzNyAzNDYuNyAyMzYuNSA5NyAyOTQuMnoiXX0sZHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10aHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJlNjE5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI5NC4yIDI0NC4zYzE5LjUgOS4zIDMzLjcgMjMuNSA0MS4yIDQwLjkgMTAuNCAyNC4zIDExLjQgNjMuOS0yMC4yIDk1LjQtMjQuMiAyNC4xLTUzLjUgMzUtOTUuMSAzNS4zbC0uMiAwYy00Ni44LS4zLTgyLjgtMTYuMS0xMDYuOS00Ni44LTIxLjUtMjcuMy0zMi42LTY1LjQtMzMtMTEzLjFsMC0uMmMuNC00Ny43IDExLjUtODUuNyAzMy0xMTMuMSAyNC4yLTMwLjcgNjAuMi00Ni41IDEwNi45LTQ2LjhsLjIgMGM0Ni45IC4zIDgzLjMgMTYgMTA4LjIgNDYuNiAxMi4zIDE1LjEgMjEuMyAzMy4zIDI3IDU0LjRsLTI2LjkgNy4yYy00LjctMTcuMi0xMS45LTMxLjktMjEuNC00My42LTE5LjQtMjMuOS00OC43LTM2LjEtODctMzYuNC0zOCAuMy02Ni44IDEyLjUtODUuNSAzNi4yLTE3LjUgMjIuMy0yNi42IDU0LjQtMjYuOSA5NS41IC4zIDQxLjEgOS40IDczLjMgMjYuOSA5NS41IDE4LjcgMjMuOCA0Ny40IDM2IDg1LjUgMzYuMiAzNC4zLS4zIDU2LjktOC40IDc1LjgtMjcuMyAyMS41LTIxLjUgMjEuMS00Ny45IDE0LjItNjQtNC05LjQtMTEuNC0xNy4zLTIxLjMtMjMuMy0yLjQgMTgtNy45IDMyLjItMTYuNSA0My4yLTExLjQgMTQuNS0yNy43IDIyLjQtNDguNCAyMy41LTE1LjcgLjktMzAuOC0yLjktNDIuNi0xMC43LTEzLjktOS4yLTIyLTIzLjItMjIuOS0zOS41LTEuNy0zMi4yIDIzLjgtNTUuMyA2My41LTU3LjYgMTQuMS0uOCAyNy4zLS4yIDM5LjUgMS45LTEuNi05LjktNC45LTE3LjctOS44LTIzLjQtNi43LTcuOC0xNy4xLTExLjgtMzAuOC0xMS45bC0uNCAwYy0xMSAwLTI2IDMuMS0zNS42IDE3LjZsLTIzLTE1LjhjMTIuOC0xOS40IDMzLjYtMzAuMSA1OC41LTMwLjFsLjYgMGM0MS44IC4zIDY2LjYgMjYuMyA2OS4xIDcxLjggMS40IC42IDIuOCAxLjIgNC4yIDEuOWwuMSAuNXptLTcxLjggNjcuNWMxNy0uOSAzNi40LTcuNiAzOS43LTQ4LjgtOC44LTEuOS0xOC42LTIuOS0yOS0yLjktMy4yIDAtNi40IC4xLTkuNiAuMy0yOC42IDEuNi0zOC4xIDE1LjUtMzcuNCAyNy45IC45IDE2LjcgMTkgMjQuNSAzNi40IDIzLjZsLS4xLS4xeiJdfSx1eHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2xkLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTEwIiwiTTI0My44IDEwLjJjNy41LS4zIDE1LS4zIDIyLjUtLjEgMy42IC4xIDcuMiAuNCAxMC44IC43IDQuOSAuMyA5LjggMSAxNC43IDEuNiAyLjkgLjQgNS44IDEgOC43IDEuNSA3LjkgMS4zIDE1LjcgMy4zIDIzLjQgNS40IDEyLjIgMy41IDI0LjIgNy45IDM1LjggMTMuMiAyNi42IDEyLjIgNTAuOSAyOS4yIDcxLjYgNDkuOSAyMCAyMC4xIDM2LjcgNDMuNSA0OC45IDY5LjIgMS4xIDIuNiAyLjQgNS4xIDMuNSA3LjcgMi44IDYuNCA1LjQgMTMgNy42IDE5LjYgNC4xIDEyLjMgNy4zIDI1IDkuNCAzNy44IC42IDMuMSAxIDYuMyAxLjQgOS41IC41IDMuOCAuOSA3LjcgMS4yIDExLjYgLjggOC4zIC44IDE2LjcgLjggMjUuMS0uMSA1LS4zIDkuOS0uNyAxNC45LS4yIDMuNC0uNSA2LjgtMSAxMC4xLS40IDIuNy0uNiA1LjUtMS4xIDguMi0uOSA1LjEtMS43IDEwLjMtMi45IDE1LjQtNC4xIDE4LjUtMTAuMyAzNi42LTE4LjUgNTMuNi0xNS44IDMyLjgtMzguOCA2Mi4yLTY3LjEgODUuMS0xNy4zIDE0LjEtMzYuNCAyNS45LTU2LjkgMzQuOS02LjIgMi43LTEyLjUgNS4zLTE4LjkgNy40LTMuNSAxLjItNyAyLjQtMTAuNiAzLjQtNi42IDEuOS0xMy4zIDMuNi0yMCA1LTQuNyAuOS05LjMgMS43LTE0IDIuNS01LjMgLjctMTAuNSAxLjQtMTUuOCAxLjctNi43IC43LTEzLjQgLjgtMjAuMSAuOC02LjggMC0xMy42LS4xLTIwLjQtLjgtMy4zLS4yLTYuNi0uNS05LjgtMS0yLjctLjQtNS41LS42LTguMi0xLjEtNC4xLS43LTguMi0xLjQtMTIuNC0yLjItNC4yLS45LTguNS0xLjktMTIuNy0zLTguNi0yLjItMTcuMS01LTI1LjQtOC4xLTEwLjUtNC4xLTIwLjgtOC43LTMwLjYtMTQuMi0yLjEtMS4yLTQuMy0yLjMtNi40LTMuNi0xMS4yLTYuNi0yMS45LTE0LjEtMzEuOS0yMi4zLTM0LjctMjguNC02MS40LTY2LjQtNzYuNC0xMDguNy0zLjEtOC43LTUuNy0xNy42LTcuOC0yNi43LTEuNS02LjItMi41LTEyLjQtMy42LTE4LjctLjQtMi4zLS42LTQuNy0xLTcuMS0uNi00LS44LTgtMS4yLTExLjktLjgtOS41LS43LTE5LS41LTI4LjUgLjEtMy41IC4zLTcgLjctMTAuNSAuMy0zLjIgLjUtNi40IC45LTkuNSAuNC0yLjggLjctNS42IDEuMi04LjQgLjctMy45IDEuMy03LjkgMi4xLTExLjggMy40LTE2LjUgOC41LTMyLjcgMTUuMy00OC4yIDEuMi0yLjkgMi42LTUuNyAzLjktOC42IDguMS0xNi43IDE3LjktMzIuNiAyOS41LTQ3LjEgMjAtMjUuNCA0NS4xLTQ2LjcgNzMuMy02Mi41IDcuNS00LjIgMTUuMi04IDIzLjEtMTEuNCAxNS44LTYuOSAzMi40LTEyIDQ5LjMtMTUuNCAzLjUtLjcgNy0xLjIgMTAuNi0xLjggMi42LS41IDUuMy0uNyA3LjktMS4xIDMuNS0uNSA3LjEtLjcgMTAuNi0xIDIuNS0uMiA0LjktLjQgNy40LS41em04LjYgMjQuNGMtOS4yIC4xLTE4LjQgMS0yNy42IDIuMi03LjMgMS4xLTE0LjUgMi42LTIxLjcgNC4zLTEzLjkgMy41LTI3LjUgOC4zLTQwLjUgMTQuNC0xMC41IDUtMjAuNiAxMC43LTMwLjIgMTcuMi00LjIgMi45LTguNCA1LjgtMTIuMyA5LTUuMSA0LTEwIDguMi0xNC43IDEyLjYtMi41IDIuMi00LjggNC43LTcuMiA3LjEtMjguMiAyOC44LTQ4LjQgNjUuNC01Ny41IDEwNC43LTIgOC40LTMuNSAxNy00LjQgMjUuNi0xLjEgOC45LTEuNCAxNy45LTEuNCAyNi44IC4xIDcuMSAuNCAxNC4zIDEuMiAyMS40IC42IDcuMSAxLjkgMTQuMiAzLjIgMjEuMiAxLjEgNC42IDIgOS4zIDMuMyAxMy45IDYuMyAyMy40IDE2LjUgNDUuNyAzMC4xIDY1LjggOC42IDEzIDE4LjggMjQuOSAzMCAzNS44IDE2LjMgMTUuOCAzNSAyOSA1NS4zIDM5LjIgNy4zIDMuNSAxNC43IDYuOSAyMi4zIDkuNiA1IDEuOCAxMC4xIDMuNiAxNS4yIDUgMTEuMyAzLjIgMjIuOCA1LjYgMzQuNCA3LjEgMi45IC4zIDUuOCAuNiA4LjcgLjkgMTMuOCAxLjEgMjcuNyAxIDQxLjUtLjQgNC40LS42IDguOS0xIDEzLjMtMS44IDMuNi0uNyA3LjMtMS4yIDEwLjktMi4xIDQuMS0xIDguMy0xLjkgMTIuNC0zLjEgMjYuNS03LjMgNTEuNi0xOS43IDczLjYtMzYuMiAxNS44LTExLjggMzAtMjUuOCA0Mi4xLTQxLjMgMy4zLTQgNi4yLTguMyA5LjEtMTIuNiAzLjQtNS4xIDYuNi0xMC4yIDkuNi0xNS41IDIuNC00LjQgNC43LTguOSA3LTEzLjQgNS43LTEyLjEgMTAuMy0yNC42IDEzLjgtMzcuNSAyLjYtMTAgNC43LTIwLjIgNS45LTMwLjQgMS44LTEzLjUgMS45LTI3LjEgMS4zLTQwLjctLjMtMy45LS43LTcuOC0xLTExLjctMi4yLTE5LjEtNi44LTM3LjktMTMuOC01NS44LTYtMTUuMS0xMy41LTI5LjYtMjIuNi00My4xLTEyLjctMTguOC0yOC4yLTM1LjctNDYtNDkuOC0yNS0yMC01NC41LTM0LjUtODUuNi00Mi4xLTcuOC0xLjktMTUuNy0zLjMtMjMuNi00LjQtMy45LS42LTcuOC0uOC0xMS44LTEuMi03LjQtLjYtMTQuOC0uNy0yMi4yLS42ek0xNDcuMyA4My41YzEzLjMtOC45IDI4LjEtMTUuNCA0My4zLTIwLjItMy4yIDEuOC02LjQgMy40LTkuNSA1LjMtMTEuMiA2LjctMjEuNSAxNC45LTMwLjQgMjQuNS02LjggNy40LTEyLjggMTUuNy0xNyAyNC45LTMuMyA2LjktNS42IDE0LjItNi45IDIxLjctLjkgNC44LTEuMyA5LjgtMS4yIDE0LjggLjEgMTMuNyA0LjQgMjcuMSAxMS4zIDM4LjggNS45IDEwLjIgMTMuNiAxOS4zIDIyLjQgMjcuMyA0LjkgNC40IDEwLjIgOC4xIDE1IDEyLjYgMi4zIDIuMiA0LjUgNC40IDYuNCA2LjkgMi42IDMuMyA0LjkgNyA2IDExLjEgLjkgMyAuNyA2LjIgLjcgOS4zIDAgNC4xIDAgOC4yIDAgMTIuMyAuMSAzLjUgMCA3LjEgLjEgMTAuNiAuMSAyLjQgMCA0LjggLjEgNy4xIC4yIDUuOCAuMSAxMS41IC4xIDE3LjMgLjEgMi45IDAgNS44IC4xIDguNyAwIDEuNiAuMSAzLjMgMCA0LjktLjkgLjEtMS44IC4yLTIuNyAuMi0xMSAwLTIxLjktMi42LTMyLTYuOS02LTIuNy0xMS44LTUuOS0xNy4xLTkuOC01LjgtNC4yLTExLjEtOS0xNS44LTE0LjMtNi41LTcuMi0xMi0xNS40LTE2LjYtMjMuOS0xLjEtMi0yLjItNC0zLjItNi4xLTEuMi0yLjYtMi42LTUuMS0zLjctNy44LTQtOS43LTYuNi0xOS45LTguMS0zMC4zLS41LTQuNC0xLjEtOC45LTEuMi0xMy4zLS43LTE1LjcgLjgtMzEuNiA0LjctNDYuOCAyLjEtOC4yIDQuOC0xNi4yIDguMy0yMy44IDYuMy0xNC4yIDE1LjMtMjcuMiAyNi4zLTM4LjIgNi4zLTYuMiAxMy4xLTExLjggMjAuNS0xNi43ek0zMjIuNyA2My40YzIuNyAuNyA1LjQgMS43IDguMSAyLjcgNi40IDIuMyAxMi43IDQuOCAxOC43IDggMTMuMSA2LjQgMjUuMyAxNC44IDM1LjggMjUgMTAuMiAxMCAxOC43IDIxLjYgMjUuMSAzNC4zIDEuMyAyLjcgMi42IDUuNSAzLjggOC4zIDYuMyAxNS4xIDEwIDMxLjMgMTEuMiA0Ny42IC40IDQuNSAuNCA5LjEgLjUgMTMuNiAuMSAxMS42LTEuNSAyMy4zLTQuMyAzNC41LTIgNy4zLTQuMyAxNC41LTcuOSAyMS4yLTMuMiA2LjYtNi43IDEzLjItMTAuOCAxOS4yLTYuOSAxMC41LTE1LjYgMTkuOS0yNS44IDI3LjItMTAuNSA3LjYtMjIuNiAxMy0zNS40IDE1LjQtMy41IC43LTcuMSAxLjEtMTAuNyAxLjItMS44IC4xLTMuNyAuMi01LjYtLjEtLjMtMi4xIDAtNC4zIDAtNi41IDAtMy43IC4xLTcuNCAuMS0xMS4yIC4yLTcgMC0xNC4xIC4yLTIxLjEgMC0yLjQgMC00LjggMC03LjEgLjItNS4xIDAtMTAuMSAuMS0xNS4yIC4xLTMtLjItNiAuNS05IC43LTIuNSAxLjgtNC45IDMuMS03LjEgNC41LTcuMyAxMS4xLTEzIDE3LjctMTguMyA1LjQtNC4yIDEwLjUtOC44IDE1LTEzLjggNy43LTguNCAxNC4yLTE3LjkgMTguOC0yOC4zIDIuNS01LjkgNC41LTEyLjEgNS41LTE4LjUgLjktNC40IDEuMS04LjggMS0xMy4zIDAtNy44LTEuNC0xNS42LTMuNi0yMy4yLTEuOC01LjctNC4zLTExLjItNy4xLTE2LjQtMy45LTYuOS04LjYtMTMuMy0xNC0xOS4yLTkuOS0xMC44LTIxLjgtMTkuOS0zNC42LTI3LjEtMS44LTEtMy44LTEuOC01LjYtM3pNMjIxLjkgMTIxLjljMS0xLjIgMi0yLjMgMy4xLTMuNC0uNiAuOS0xLjMgMS44LTIgMi43LTMuMSAzLjktNS41IDguMy03IDEzLjEtLjkgMy4zLTEuNyA2LjYtMS43IDEwLS4xIDIuNS0uMSA1LjEgLjMgNy42IDEuMSA3LjYgNC4zIDE0LjkgOC44IDIxLjEgMiAyLjcgNC4yIDUuMyA2LjkgNy4zIDEuNiAxLjMgMy41IDIuMSA1LjMgMyAzLjEgMS43IDYuMyAzLjIgOS4xIDUuNSAyLjcgMi4xIDQuNiA1LjMgNC40IDguOCAwIDczLjcgMCAxNDcuMyAwIDIyMSAwIDEuNC0uMSAyLjcgMCA0IC4xIDEuNSAuOCAyLjggMS41IDQuMSAuOSAxLjcgMS44IDMuMyAzLjIgNC42IC45IC44IDIgMS40IDMuMiAxLjIgMS41LS4yIDIuNy0xLjQgMy40LTIuNiAxLTEuNSAxLjctMy4yIDIuMy00LjkgLjgtMi4xIC40LTQuNCAuNS02LjYgLjEtNCAwLTguMSAuMS0xMi4xIDAtNS45IDAtMTEuOCAuMS0xNy43IC4xLTMuNiAwLTcuMiAuMS0xMC45IC4yLTQgMC04LjEgLjEtMTIuMSAwLTYgMC0xMiAuMS0xOCAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMS0zLjkgMC03LjkgLjEtMTEuOCAwLTYgMC0xMiAuMS0xOCAuMi0zLjkgMC03LjkgLjItMTEuOCAuMyAxLjQgLjEgMi45IC4yIDQuNCAuMiAzLjYgLjQgNy4yIC44IDEwLjggLjMgMy40IC40IDYuOSAuOSAxMC4zIC40IDMuMSAuNSA2LjIgMSA5LjMgLjYgNC4xIC45IDguMiAxLjUgMTIuMyAxLjUgOSAyLjggMTguMSA1LjEgMjcgMS4xIDQuOCAyLjQgOS42IDQgMTQuMyAyLjUgNy45IDUuNyAxNS43IDEwLjMgMjIuNiAxLjcgMi42IDMuOSA1IDYuMSA3LjIgLjMgLjIgLjYgLjUgLjkgLjcgLjYgLjMgMS4zLS4xIDEuNy0uNiAuNy0uOSAxLjItMS45IDEuNy0yLjkgNC4xLTcuOCA4LjItMTUuNiAxMi4zLTIzLjMgLjctMS4zIDEuNC0yLjYgMi42LTMuNiAxLjgtMS42IDMuOC0yLjcgNi0zLjYgMi45LTEuMiA1LjktMi4yIDktMi40IDYuNi0uNiAxMy4xIC43IDE5LjYgMS44IDMuNyAuNiA3LjQgMS4yIDExLjEgMS40IDMuNyAuMSA3LjUgLjEgMTEuMi0uMyA4LjYtLjkgMTctMyAyNC45LTYuMiA1LjMtMi4yIDEwLjUtNC44IDE1LjMtNy45IDExLjUtNy4yIDIxLjUtMTYuNiAzMC0yNyAxLjItMS40IDIuMi0yLjkgMy41LTQuMy0xLjIgMy4yLTIuNyA2LjQtNC4yIDkuNS0xLjMgMi45LTIuOCA1LjYtNC4zIDguNC01LjIgOS42LTExIDE4LjktMTcuOCAyNy41LTQgNS4yLTguNSAxMC4xLTEzLjMgMTQuNi02LjYgNi4xLTE0LjEgMTEuNC0yMi40IDE0LjgtOC4yIDMuNC0xNy4zIDQuNi0yNi4xIDMuMy0zLjYtLjYtNy0xLjctMTAuNC0yLjktMi44LTEtNS40LTIuNC04LTMuNy0zLjQtMS43LTYuNi0zLjgtOS43LTYuMSAyLjcgMy4xIDUuNyA1LjkgOC43IDguNiA0LjMgMy44IDguNyA3LjMgMTMuNiAxMC4yIDQgMi41IDguMyA0LjQgMTIuOCA1LjUgMS41IC40IDMgLjUgNC41IC42LTEuMyAxLjEtMi42IDItNCAzLTkuNiA2LjUtMjAgMTEuOS0zMC43IDE2LjQtMjAuOSA4LjctNDMuMiAxNC02NS43IDE1LjMtNC43IC4yLTkuMyAuNC0xNCAuNC01LS4xLTEwLS4xLTE0LjktLjctMTEuMi0uOC0yMi4zLTIuNy0zMy4yLTUuNC0xMC40LTIuNy0yMC42LTYuMS0zMC4zLTEwLjYtOC43LTMuOS0xNy4xLTguNC0yNS0xMy44LTEuOC0xLjMtMy43LTIuNS01LjQtNC4xIDYuNi0xLjIgMTMtMy40IDE5LTYuNSA1LjctMi45IDExLTYuNyAxNS42LTExLjEgMi4yLTIuMiA0LjMtNC42IDYuMi03LjEtMy40IDIuMS02LjkgNC4yLTEwLjYgNS44LTQuNCAyLjItOS4xIDMuOC0xMy44IDUtNS43IDEuNS0xMS43IDEuNy0xNy42IDEuMS04LjEtMS0xNS45LTQuMy0yMi41LTktNC4zLTIuOS04LjItNi40LTEyLTEwLjEtOS45LTEwLjItMTguMi0yMS44LTI1LjctMzMuOS0zLjktNi4zLTcuNS0xMi43LTExLjEtMTkuMi0xLTItMi4xLTQuMS0zLjItNi4xIDIuOCAyLjkgNS42IDYgOC40IDguOSAxOS4yIDE5LjIgMzcuNiAzMi4zIDUzLjcgMzUuNSAzLjEgLjcgNi4zIC41IDkuNSAuOCAyLjggLjMgNS42IC4yIDguMyAuMyA1IC4xIDEwLjEgMCAxNS4yLS4yIDMuNi0uMiA3LjMtLjcgMTAuOS0xLjEgMi4xLS4yIDQuMS0uNyA2LjEtMS4yIDMuOS0xIDguMS0xIDExLjggLjYgNC44IDEuOCA4LjQgNS42IDExLjQgOS43IDIuMiAzIDQuMSA2LjIgNS43IDkuNiAxLjIgMi40IDIuNSA0LjggMy42IDcuMyAxIDIuMiAyLjIgNC40IDMuNCA2LjUgLjcgMSAxLjQgMi4yIDIuNiAyLjYgMS4xLS44IDEuNy0xLjkgMi4zLTMgMi4xLTQuMiAzLjQtOC42IDQuOS0xMyAyLTYuNiAzLjgtMTMuMyA1LjItMjAgMi4yLTkuMyAzLjItMTguNyA0LjUtMjguMSAuNi00IC44LTggMS4zLTEyIC45LTEwLjYgMS45LTIxLjMgMi4yLTMxLjkgLjEtMS45IC4yLTMuNyAuMy01LjYgMC00LjMgLjItOC43IC4yLTEzIDAtMi40IDAtNC44IDAtNy4xIDAtNS4xLS4yLTEwLjEtLjItMTUuMi0uMi02LjYtLjctMTMuMi0xLjMtMTkuOC0uNy01LjktMS41LTExLjgtMy4xLTE3LjUtMi03LjctNS42LTE1LTkuOC0yMS44LTMuMi01LjEtNi44LTkuOS0xMS4xLTE0LTMuOS0zLjktOC42LTcuMS0xMy45LTguNC0xLjUtLjQtMy4xLS40LTQuNi0uNiAuMS0zIC43LTUuOSAxLjMtOC44IDEuNi03LjcgMy44LTE1LjMgNi44LTIyLjYgMS41LTQgMy40LTcuOSA1LjQtMTEuNyAzLjQtNi42IDcuNi0xMi44IDEyLjUtMTguNXptMzEuMyAxLjdjLjQtLjEgLjctLjEgMS4xLS4yIC4yIDEuOCAuMSAzLjYgLjEgNS40bDAgMzguMWMwIDEuNyAuMSAzLjUtLjIgNS4yLS40IDAtLjcgMC0xLjEgMC0uOS0zLjgtMS43LTcuNi0yLjYtMTEuMy0uNC0xLjUtLjYtMy4xLTEuMS00LjYtMS43LS4yLTMuNC0uMi01LjItLjItNS4xIDAtMTAuMSAwLTE1LjIgMC0xLjcgMC0zLjMgLjEtNSAwIDAtLjQtLjMtLjkgLjItMS4yIDEuMy0uNyAyLjctLjkgNC4xLTEuNCAzLjQtMS4xIDYuOS0yLjIgMTAuMy0zLjMgMS40LS41IDIuOS0uNyA0LjItMS41IDAtLjYgMC0xLjEgMC0xLjctMS4yLS42LTIuNS0uOS0zLjgtMS4zLTMuMS0xLTYuMy0yLTkuNC0zLTEuOC0uNi0zLjctMS01LjQtMS44IDAtLjQtLjEtLjctLjEtMS4xIDUuMS0uMiAxMC4yIC4xIDE1LjMtLjEgMy40LS4xIDYuNyAuMSAxMC4xLS4xIC4xLS40IC4zLS44IC40LTEuMiAxLjEtNC45IDIuMy05LjggMy40LTE0Ljd6bTYtLjJjLjQgMCAuNyAuMSAxLjEgLjIgMSAzLjggMS43IDcuOCAyLjcgMTEuNiAuNCAxLjQgLjYgMi45IDEgNC4zIDIuNSAuMiA1LjEgMCA3LjYgMCA1LjIgLjEgMTAuMyAuMSAxNS41IC4xIC44IDAgMS41IDAgMi4zIC4xIDAgLjQtLjEgLjctLjEgMS4xLTEuOCAuOC0zLjggMS4yLTUuNyAxLjktMy43IDEuMi03LjUgMi40LTExLjIgMy42LS42IC4yLTEuMSAuNC0xLjcgLjYtLjIgLjYtLjIgMS4xLS4xIDEuNyAuOSAuNSAxLjggLjggMi44IDEuMSA0LjkgMS41IDkuNyAzLjEgMTQuNiA0LjYgLjQgLjEgLjggLjMgMS4xIC41IC40IC4zIC4yIC44IC4yIDEuMi0xLjcgLjEtMy4zIDAtNSAwLTUuMiAwLTEwLjMgMC0xNS41IDAtMS42IDAtMy4yIDAtNC44IC4yLS41IDEuNy0uNyAzLjQtMS4yIDUuMS0uOSAzLjYtMS41IDcuMi0yLjUgMTAuOC0uNCAwLS43IDAtMS4xIC4xLS4zLTEuNy0uMi0zLjUtLjItNS4ybDAtMzguMWMwLTEuOC0uMS0zLjYgLjEtNS40em0tMTg2IDQ1YzEuMS0yLjIgMi4xLTQuNCAzLjQtNi41LTEuOCA3LjYtMi45IDE1LjMtMy42IDIzLS44IDcuNy0uOCAxNS41LS41IDIzLjIgMS4xIDE5LjkgNS41IDM5LjggMTQuMiA1Ny45IDMgNiA2LjQgMTEuOCAxMC41IDE3LjEgNi4xIDcuNSAxMi41IDE0LjggMTkuOCAyMS4xIDQuOCA0LjEgMTAgNy44IDE1LjUgMTAuOCAzLjMgMS43IDYuNSAzLjQgOS45IDQuNyA1IDIgMTAuMiAzLjYgMTUuNCA0LjkgMy44IDEgNy44IDEuNCAxMS41IDIuNyA1IDEuNiA5LjUgNC42IDEzIDguNCA0LjkgNS4yIDguMSAxMS45IDEwLjIgMTguNyAxIDIuOSAxLjYgNS45IDIuMiA4LjkgLjIgLjggLjIgMS41IC4yIDIuMy02LjUgMi44LTEzLjMgNS4xLTIwLjMgNi4yLTQuMSAuOC04LjMgMS0xMi41IDEuMS0xMC4yIC4yLTIwLjUtMS44LTMwLjEtNS4xLTMuNy0xLjQtNy41LTIuOS0xMS00LjctOC4xLTMuOC0xNS42LTguNy0yMi41LTE0LjUtMi45LTIuNi01LjgtNS4xLTguNC04LTkuMi05LjgtMTYuMy0yMS40LTIxLjgtMzMuNy0yLjQtNS41LTQuNi0xMS4yLTYuNC0xNy0xLjItMy45LTIuNC03LjktMy4zLTExLjktLjctMi45LTEuMi01LjktMS45LTguOS0uNS0yLjEtLjctNC4zLTEtNi41LS44LTUuNC0xLjMtMTAuOS0xLjMtMTYuNCAuMS02LjIgLjItMTIuNCAxLjEtMTguNSAuNC0yLjkgLjctNS43IDEuMi04LjYgMS01LjcgMi4xLTExLjQgMy43LTE2LjkgMy4xLTExLjYgNy41LTIzIDEyLjctMzMuOHptMzYzLjctNi40YzEuMSAxLjcgMS45IDMuNSAyLjggNS4zIDIuMSA0LjUgNC4yIDguOSA2IDEzLjUgNy42IDE4LjggMTIuMyAzOC44IDEzIDU5IDAgMS44IC4xIDMuNSAuMSA1LjMgLjEgOS42LTEuMyAxOS4xLTMuMiAyOC41LS43IDMuNi0xLjUgNy4yLTIuNiAxMC43LTQgMTQuNy0xMCAyOS0xOC40IDQxLjgtOC4yIDEyLjYtMTkgMjMuNS0zMS44IDMxLjQtNS43IDMuNi0xMS44IDYuNi0xOCA5LjItNS44IDIuMi0xMS43IDQtMTcuOCA1LjEtNi40IDEtMTIuOSAxLjUtMTkuNCAxLjItNy45LS41LTE1LjgtMi4xLTIzLjItNC44LTEuOS0uOC0zLjktMS41LTUuOC0yLjMtLjItMS41IC4yLTMgLjUtNC41IDEuMi01LjcgMy0xMS40IDUuNy0xNi42IDIuNC00LjUgNS41LTguNyA5LjUtMTEuOSAyLjQtMi4xIDUuMi0zLjYgOC4yLTQuOCAzLjYtMS41IDcuNS0yIDExLjItMi44IDcuMi0xLjcgMTQuNC0zLjkgMjEuMi03IDEwLjMtNC43IDE5LjctMTEuNCAyNy42LTE5LjUgMS42LTEuNiAzLjItMy4yIDQuNy00LjkgMy40LTMuOCA2LjctNy42IDkuOC0xMS41IDcuNS0xMC4xIDEyLjgtMjEuNiAxNi43LTMzLjUgMS42LTUuMyAzLjItMTAuNiA0LjItMTYuMSAuNi0yLjkgMS01LjggMS41LTguNyAuOS02LjEgMS42LTEyLjIgMS43LTE4LjQgLjEtNi42IC4xLTEzLjMtLjUtMTkuOS0uNy04LTEuOS0xNi0zLjctMjMuOHoiXX0scHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1c2UiLGljb246WzY0MCw1MTIsW10sImY3ZDYiLCJNNjA0LjUgMjEwYTEwLjQgMTAuNCAwIDEgMSAtMTEuNC0xNy40IDEwLjQgMTAuNCAwIDEgMSAxMS40IDE3LjR6TTYyMSAxODcuMmEzOC41IDM4LjUgMCAxIDEgLTc1IDE3LjYgMzguNSAzOC41IDAgMSAxIDc1LTE3LjZ6TTQzMy43IDMzNi43YzMuMiA0LjYgNS44IDkgNy4zIDEzLjQgMSAzLjEgMi40IDcuMyA1LjUgOC45IC4yIC4xIC4zIC4yIC41IC4yIDUuNyAyLjEgMjAuMyAxLjcgMjAuMyAxLjdsMjYuOCAwYzIuMyAwIDIyLjQgMCAyMS45LTIuMy0yLjQtMTAuOC0xNC45LTEyLjctMjQuNC0xOC4zLTguNy01LjItMTctMTEuMS0yMC44LTIxLjMtMi01LjItLjgtMTcuNCAyLjYtMjEuOCAyLjUtMy4yIDYuMS01LjMgMTAtNi4yIDQuMy0uOSA4LjgtLjEgMTMuMSAuMyA1LjMgLjUgMTAuNiAxLjUgMTUuOSAyLjIgMTAuMyAxLjMgMjAuNiAxLjkgMzEgMS42IDE3LjEtLjUgMzQuMi0zLjIgNTAuNC04LjcgMTEuMy0zLjggMjIuNC04LjkgMzItMTYuMSAxMC45LTguMSA4LjEtNy40LTMtNi4yLTEzLjMgMS40LTI2LjYgMS42LTM5LjkgLjgtMTIuNC0uNy0yNC43LTIuMi0zNS45LTcuOS04LjgtNC42LTE2LjQtOS4xLTIzLjQtMTYuMi0xLTEuMS0xLjctNC4yIC4yLTYuMiAxLjktMS45IDUuOC0uOCA3IC4yIDEyLjIgMTAuMiAzMC41IDE4LjYgNDkuMyAxOS41IDEwLjIgLjUgMjAuMSAuNyAzMC40IC4zIDUuMS0uMiAxMi44LS4yIDE3LjktLjMgMi42IDAgOS44IC43IDExLjItMi4xIC40LS44IC40LTEuOCAuMy0yLjctMS41LTQwLjktNC41LTg2LjktNDcuMy0xMDYuNS0zMS45LTE0LjYtNzkuNy0zNy4yLTk5LjktNDYuNi00LjctMi4yLTEwLjIgMS4zLTEwLjIgNi41IDAgMTMuNiAuNyAzMy4zIC43IDUxLjEtOS43LTkuOS0yNi0xNi4xLTM4LjQtMjEuOC0xNC4xLTYuNS0yOC43LTEyLTQzLjUtMTYuNi0yOS44LTkuMi02MC43LTE0LjktOTEuNy0xOC0zNS4yLTMuNS03MS0xLjgtMTA1LjcgNS4zLTU2LjkgMTIuMi0xMTMuMSAzOS43LTE1NS43IDc5LjgtMjYuMSAyNC42LTQ2LjYgNTkuNy00OCA5NS4yLTIgNTAuMyAxMi4xIDc3LjMgMzggMTA1LjIgNDEuMyA0NC40IDEzMC4yIDUwLjYgMTY2LjItMiAxNi4yLTIzLjcgMTkuNy01NS44IDgtODItMTEuOC0yNi4yLTM4LjgtNDUuMS02Ny40LTQ2LTIyLjItLjctNDUuOSAxMC42LTU0LjUgMzEuMS02LjUgMTUuNy0yLjggMzUuMSA5IDQ3LjMgNC42IDQuOCAxMC45IDguNyAxNy43IDcuMSA0LS45IDcuNC0zLjkgOC04IC45LTYtNC40LTkuOS03LjYtMTQuNS01LjgtOC4zLTQuNy0yMC45IDIuNy0yNy45IDYuMi02IDE1LjMtNy44IDIzLjktNy43IDggMCAxNi4yIDEuNCAyMy4xIDUuNSA5LjcgNS43IDE2LjIgMTYuMiAxOC40IDI3LjIgNi43IDMzLTIwLjIgNTkuOS01Ni42IDYyLTE4LjYgMS4xLTM3LjYtMy44LTUyLjEtMTUuNS0zNi45LTI5LjgtNDUuOS05MC4zLTMuOC0xMjIuNyA0MC0zMC43IDkwLjQtMjIuOCAxMjAuMi02LjggMjMuOCAxMi44IDQxLjUgMzMuNiA1NSA1Ni43IDYuNyAxMS42IDEyLjUgMjMuNyAxNy44IDM2LjEgNS4xIDExLjggOS45IDIzLjggMjAuMiAzMi41IDYuOCA1LjggMTUuMiA1LjYgMjQuMSA1LjZsNTAuOCAwYzYuOSAwIDUuMi00LjYgMi4yLTcuNy02LjctNi45LTE2LjQtOC40LTI1LjQtMTAuOS0yMC41LTUuNi0xOC40LTMyLjgtMTIuNy0zMi44IDE4LjMgMCAxOC45IC42IDM0LjkgLjMgMjMuMi0uMyAzMC4yLTEuNyA0OC4zIDUgOS43IDMuNiAxOSAxMy4xIDI1LjEgMjEuN3oiXX0sZnh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZS1pb3MiLGljb246WzQ0OCw1MTIsW10sImYzNzAiLCJNNDAwIDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyNyAzODQuNWMtNS41IDkuNi0xNy44IDEyLjgtMjcuMyA3LjMtOS42LTUuNS0xMi44LTE3LjgtNy4zLTI3LjNsMTQuMy0yNC43YzE2LjEtNC45IDI5LjMtMS4xIDM5LjYgMTEuNEwxMjcgMzg0LjV6bTEzOC45LTUzLjlMODQgMzMwLjZjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDUxIDAgNjUuNC0xMTMuMi0yMC41LTM1LjRjLTUuNS05LjYtMi4yLTIxLjggNy4zLTI3LjMgOS42LTUuNSAyMS44LTIuMiAyNy4zIDcuM2w4LjkgMTUuNCA4LjktMTUuNGM1LjUtOS42IDE3LjgtMTIuOCAyNy4zLTcuMyA5LjYgNS41IDEyLjggMTcuOCA3LjMgMjcuM2wtODUuOCAxNDguNiA2Mi4xIDBjMjAuMiAwIDMxLjUgMjMuNyAyMi43IDQwem05OC4xIDBsLTI5IDAgMTkuNiAzMy45YzUuNSA5LjYgMi4yIDIxLjgtNy4zIDI3LjMtOS42IDUuNS0yMS44IDIuMi0yNy4zLTcuMy0zMi45LTU2LjktNTcuNS05OS43LTc0LTEyOC4xLTE2LjctMjktNC44LTU4IDcuMS02Ny44IDEzLjEgMjIuNyAzMi43IDU2LjcgNTguOSAxMDJsNTIgMGMxMSAwIDIwIDkgMjAgMjAgMCAxMS4xLTkgMjAtMjAgMjB6Il19LGh4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcy15b2xvIixpY29uOls1MTIsNTEyLFtdLCJlODZmIiwiTTM4My41IDEwLjhjNjEuOC0uMiAxMTIuMyA1MC42IDExMi4zIDExMi45LS4yIDIuNyAwIDAtLjEgMy4zbC4zIC4zYy0xLjUgODkuOS01MyAxNjguNC0xMjcuNCAyMDguNWwwIDUyLjhjMCA2Mi42LTUxLjEgMTEzLjUtMTEzLjcgMTEyLjktNjItLjYtMTExLjQtNTIuMi0xMTEuNC0xMTQuM2wwLTUxLjJjLTQwLjctMjEuOS03NC41LTU1LjItOTctOTUuNiAyMy4yIDE2LjUgNTEuNyAyNiA4MiAyNS45IDc4LjYtLjIgMTQyLjItNjQgMTQyLjMtMTQyLjUgLjEtNjIuMyA1MC41LTExMi43IDExMi45LTExMi45em0tMjU1IDIyNS44YTExMi45IDExMi45IDAgMSAxIDAtMjI1LjggMTEyLjkgMTEyLjkgMCAxIDEgMCAyMjUuOHoiXX0sUHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1kcmliYmJsZSIsaWNvbjpbNDQ4LDUxMixbImRyaWJiYmxlLXNxdWFyZSJdLCJmMzk3IiwiTTE2NS45IDEzMi41Yy0zOC4zIDE4LTY2LjggNTMuMy03NS43IDk1LjcgNi4xIC4xIDYyLjQgLjMgMTI2LjQtMTYuNy0yMi43LTQwLjItNDcuMS03NC4xLTUwLjctNzl6bTI2LjEtOS4xYzMuOCA1LjEgMjguNiAzOC45IDUxIDgwIDQ4LjYtMTguMyA2OS4xLTQ1LjkgNzEuNi00OS40LTMzLjYtMjkuOC03OS4zLTQxLjEtMTIyLjYtMzAuNnpNMjc3LjQgMzgyYy0yLTEyLTEwLTUzLjgtMjkuMi0xMDMuNi01NS4xIDE4LjgtOTMuOCA1Ni40LTEwOC4xIDg1LjYgNDAuNSAzMS42IDkzLjMgMzYuNyAxMzcuMyAxOHpNMjI3LjggMjMyLjZDMTU5LjYgMjUzIDkzLjQgMjUyLjIgODcuNCAyNTJsMCA0LjJjMCAzNS4xIDEzLjMgNjcuMSAzNS4xIDkxLjQgMjIuMi0zNy45IDY3LjEtNzcuOSAxMTYuNS05MS44LTMuNC03LjgtNy4yLTE1LjUtMTEuMS0yMy4ybC0uMSAwem03Mi41IDEzNi45YzMwLjctMjAuNyA1Mi41LTUzLjYgNTguNi05MS42LTQuNi0xLjUtNDIuMy0xMi43LTg1LjEtNS44IDE3LjkgNDkuMSAyNS4xIDg5LjEgMjYuNSA5Ny40em0tMzQuOC0xMTljNDUuNS01LjcgOTAuNyAzLjQgOTUuMiA0LjQtLjMtMzIuMy0xMS44LTYxLjktMzAuOS04NS4xLTIuOSAzLjktMjUuOCAzMy4yLTc2LjMgNTMuOSA0LjggOS44IDguMyAxNy44IDEyIDI2Ljh6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yMjQgOTZhMTYwIDE2MCAwIDEgMSAwIDMyMCAxNjAgMTYwIDAgMSAxIDAtMzIweiJdfSxteHQ9UHVlLGd4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1aWtpdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwMyIsIk00NDMuOSAxMjhsMCAyNTYtMjI1LjkgMTI4LTIxOC0xMjggMC0yMTQuMyA4Ny42IDQ1LjEgMCAxMTcgMTMzLjUgNzUuNSAxMzUuOC03NS41IDAtMTUxLTEwMS4xLTU3LjYgODcuNi01My4xIDEwMC41IDU3Ljl6TTMwOC42IDQ5LjFsLTg0LjgtNDkuMS04OC42IDU0LjggODYgNDcuMyA4Ny40LTUzeiJdfSxieHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VwZXJwb3dlcnMiLGljb246WzQ0OCw1MTIsW10sImYyZGQiLCJNNDQ4IDMyYy04My4zIDExLTE2Ni44IDIyLTI1MCAzMy05MiAxMi41LTE2My4zIDg2LjctMTY5IDE4MC0zLjMgNTUuNSAxOCAxMDkuNSA1Ny44IDE0OC4yTDAgNDgwYzgzLjMtMTEgMTY2LjUtMjIgMjQ5LjgtMzMgOTEuOC0xMi41IDE2My4zLTg2LjggMTY4LjctMTc5LjggMy41LTU1LjUtMTgtMTA5LjUtNTcuNy0xNDguMkw0NDggMzJ6TTM2OC4zIDI2NC4zYy00LjIgNzkuNS03NCAxMzkuMi0xNTIuOCAxMzQuNS03OS41LTQuNy0xNDAuNy03MS0xMzYuMy0xNTEgNC41LTc5LjIgNzQuMy0xMzkuMyAxNTMtMTM0LjUgNzkuMyA0LjcgMTQwLjUgNzEgMTM2LjEgMTUxeiJdfSx2eHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieW91dHViZSIsaWNvbjpbNTc2LDUxMixbNjE4MDJdLCJmMTY3IiwiTTU0OS43IDEyNC4xQzU0My41IDEwMC40IDUyNC45IDgxLjggNTAxLjQgNzUuNSA0NTguOSA2NCAyODguMSA2NCAyODguMSA2NFMxMTcuMyA2NCA3NC43IDc1LjVDNTEuMiA4MS44IDMyLjcgMTAwLjQgMjYuNCAxMjQuMSAxNSAxNjcgMTUgMjU2LjQgMTUgMjU2LjRzMCA4OS40IDExLjQgMTMyLjNjNi4zIDIzLjYgMjQuOCA0MS41IDQ4LjMgNDcuOCA0Mi42IDExLjUgMjEzLjQgMTEuNSAyMTMuNCAxMS41czE3MC44IDAgMjEzLjQtMTEuNWMyMy41LTYuMyA0Mi0yNC4yIDQ4LjMtNDcuOCAxMS40LTQyLjkgMTEuNC0xMzIuMyAxMS40LTEzMi4zczAtODkuNC0xMS40LTEzMi4zek0yMzIuMiAzMzcuNmwwLTE2Mi40IDE0Mi43IDgxLjItMTQyLjcgODEuMnoiXX0seHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVtYmVyIixpY29uOls2NDAsNTEyLFtdLCJmNDIzIiwiTTYzOS45IDI1NC42Yy0xLjEtMTAuNy0xMC43LTYuOC0xMC43LTYuOHMtMTUuNiAxMi4xLTI5LjMgMTAuN2MtMTMuNy0xLjMtOS40LTMyLTkuNC0zMnMzLTI4LjEtNS4xLTMwLjRjLTguMS0yLjQtMTggNy4zLTE4IDcuM3MtMTIuNCAxMy43LTE4LjMgMzEuMmwtMS42IC41czEuOS0zMC42LS4zLTM3LjZjLTEuNi0zLjUtMTYuNC0zLjItMTguOCAzcy0xNC4yIDQ5LjItMTUgNjcuMmMwIDAtMjMuMSAxOS42LTQzLjMgMjIuOHMtMjUtOS40LTI1LTkuNCA1NC44LTE1LjMgNTIuOS01OS4xLTQ0LjItMjcuNi00OS0yNGMtNC42IDMuNS0yOS40IDE4LjQtMzYuNiA1OS43LS4yIDEuNC0uNyA3LjUtLjcgNy41cy0yMS4yIDE0LjItMzMgMThjMCAwIDMzLTU1LjYtNy4zLTgwLjktMTEuNC02LjgtMjEuMy0uNS0yNy4yIDUuMyAxMy42LTE3LjMgNDYuNC02NC4yIDM2LjktMTA1LjItNS44LTI0LjQtMTgtMjcuMS0yOS4yLTIzLjEtMTcgNi43LTIzLjUgMTYuNy0yMy41IDE2LjdzLTIyIDMyLTI3LjEgNzkuNS0xMi42IDEwNS4xLTEyLjYgMTA1LjEtMTAuNSAxMC4yLTIwLjIgMTAuNy01LjQtMjguNy01LjQtMjguNyA3LjUtNDQuNiA3LTUyLjEtMS4xLTExLjYtOS45LTE0LjJjLTguOS0yLjctMTguNSA4LjYtMTguNSA4LjZzLTI1LjUgMzguNy0yNy43IDQ0LjZsLTEuMyAyLjQtMS4zLTEuNnMxOC01Mi43IC44LTUzLjUtMjguNSAxOC44LTI4LjUgMTguOC0xOS42IDMyLjgtMjAuNCAzNi41bC0xLjMtMS42czguMS0zOC4yIDYuNC00Ny42Yy0xLjYtOS40LTEwLjUtNy41LTEwLjUtNy41cy0xMS4zLTEuMy0xNC4yIDUuOS0xMy43IDU1LjMtMTUgNzAuN2MwIDAtMjguMiAyMC4yLTQ2LjggMjAuNC0xOC41IC4zLTE2LjctMTEuOC0xNi43LTExLjhzNjgtMjMuMyA0OS40LTY5LjJjLTguMy0xMS44LTE4LTE1LjUtMzEuNy0xNS4zLTEzLjcgLjMtMzAuMyA4LjYtNDEuMyAzMy4zLTUuMyAxMS44LTYuOCAyMy03LjggMzEuNSAwIDAtMTIuMyAyLjQtMTguOC0yLjlzLTEwIDAtMTAgMC0xMS4yIDE0LS4xIDE4LjMgMjguMSA2LjEgMjguMSA2LjFjMS42IDcuNSA2LjIgMTkuNSAxOS42IDI5LjcgMjAuMiAxNS4zIDU4LjgtMS4zIDU4LjgtMS4zbDE1LjktOC44cy41IDE0LjYgMTIuMSAxNi43IDE2LjQgMSAzNi41LTQ3LjljMTEuOC0yNSAxMi42LTIzLjYgMTIuNi0yMy42bDEuMy0uM3MtOS4xIDQ2LjgtNS42IDU5LjdDMTg3LjcgMzE5LjQgMjAzIDMxOCAyMDMgMzE4czguMyAyLjQgMTUtMjEuMiAxOS42LTQ5LjkgMTkuNi00OS45bDEuNiAwcy01LjYgNDguMSAzIDYzLjcgMzAuOSA1LjMgMzAuOSA1LjMgMTUuNi03LjggMTgtMTAuMmMwIDAgMTguNSAxNS44IDQ0LjYgMTIuOSA1OC4zLTExLjUgNzkuMS0yNS45IDc5LjEtMjUuOXMxMCAyNC40IDQxLjEgMjYuN2MzNS41IDIuNyA1NC44LTE4LjYgNTQuOC0xOC42cy0uMyAxMy41IDEyLjEgMTguNiAyMC43LTIyLjggMjAuNy0yMi44bDIwLjctNTcuMiAxLjkgMHMxLjEgMzcuMyAyMS41IDQzLjIgNDctMTMuNyA0Ny0xMy43IDYuNC0zLjUgNS4zLTE0LjN6bS01NzggNS4zYy44LTMyIDIxLjgtNDUuOSAyOS0zOSA3LjMgNyA0LjYgMjItOS4xIDMxLjQtMTMuNyA5LjUtMTkuOSA3LjYtMTkuOSA3LjZ6TTMzNC43IDEzNi4xczE5LjEtNDkuNyAyMy42LTI1LjUtNDAgOTYuMi00MCA5Ni4yYy41LTE2LjIgMTYuNC03MC43IDE2LjQtNzAuN3ptMjIuOCAxMzguNGMtMTIuNiAzMy00My4zIDE5LjYtNDMuMyAxOS42cy0zLjUtMTEuOCA2LjQtNDQuOSAzMy4zLTIwLjIgMzMuMy0yMC4yIDE2LjIgMTIuNCAzLjYgNDUuNXptODQuNi0xNC42cy0zLTEwLjUgOC4xLTMwLjZjMTEtMjAuMiAxOS42LTkuMSAxOS42LTkuMXM5LjQgMTAuMi0xLjMgMjUuNS0yNi40IDE0LjItMjYuNCAxNC4yeiJdfSx5eHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYm9vdHN0cmFwIixpY29uOls1NzYsNTEyLFtdLCJmODM2IiwiTTMzMy41IDIwMS40YzAtMjIuMS0xNS42LTM0LjMtNDMtMzQuM2wtNTAuNCAwIDAgNzEuMiA0Mi41IDBjMzIuOC0uMSA1MC45LTEzLjMgNTAuOS0zNi45ek01MTcgMTg4LjZjLTkuNS0zMC45LTEwLjktNjguOC05LjgtOTguMSAxLjEtMzAuNS0yMi43LTU4LjUtNTQuNy01OC41TDEyMy43IDMyYy0zMi4xIDAtNTUuOCAyOC4xLTU0LjcgNTguNSAxIDI5LjMtLjMgNjcuMi05LjggOTguMS05LjYgMzEtMjUuNyA1MC42LTUyLjIgNTMuMWwwIDI4LjVjMjYuNCAyLjUgNDIuNiAyMi4xIDUyLjIgNTMuMSA5LjUgMzAuOSAxMC45IDY4LjggOS44IDk4LjEtMS4xIDMwLjUgMjIuNyA1OC41IDU0LjcgNTguNWwzMjguNyAwYzMyLjEgMCA1NS44LTI4LjEgNTQuNy01OC41LTEtMjkuMyAuMy02Ny4yIDkuOC05OC4xIDkuNi0zMSAyNS43LTUwLjYgNTIuMS01My4xbDAtMjguNWMtMjYuMy0yLjUtNDIuNS0yMi4xLTUyLTUzLjF6TTMwMC4yIDM3NS4xbC05Ny45IDAgMC0yMzguMyA5Ny40IDBjNDMuMyAwIDcxLjcgMjMuNCA3MS43IDU5LjQgMCAyNS4zLTE5LjEgNDcuOS00My41IDUxLjhsMCAxLjNjMzMuMiAzLjYgNTUuNSAyNi42IDU1LjUgNTguMyAwIDQyLjEtMzEuMyA2Ny41LTgzLjIgNjcuNXptLTEwLTEwOC43bC01MC4xIDAgMCA3OC40IDUyLjMgMGMzNC4yIDAgNTIuMy0xMy43IDUyLjMtMzkuNSAwLTI1LjctMTguNi0zOC45LTU0LjUtMzguOXoiXX0sd3h0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Iml0dW5lcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiNCIsIk0yMjMuNiA4MC4zYTE3MS4zIDE3MS4zIDAgMSAwIC4yIDM0Mi41IDE3MS4zIDE3MS4zIDAgMSAwIC0uMi0zNDIuNXptNzkuNCAyNDBjLTMuMiAxMy42LTEzLjUgMjEuMi0yNy4zIDIzLjgtMTIuMSAyLjItMjIuMiAyLjgtMzEuOS01LTExLjgtMTAtMTItMjYuNC0xLjQtMzYuOCA4LjQtOCAyMC4zLTkuNiAzOC0xMi44IDMtLjUgNS42LTEuMiA3LjctMy43IDMuMi0zLjYgMi4yLTIgMi4yLTgwLjggMC01LjYtMi43LTcuMS04LjQtNi4xLTQgLjctOTEuOSAxNy4xLTkxLjkgMTcuMS01IDEuMS02LjcgMi42LTYuNyA4LjMgMCAxMTYuMSAuNSAxMTAuOC0xLjIgMTE4LjUtMi4xIDktNy42IDE1LjgtMTQuOSAxOS42LTguMyA0LjYtMjMuNCA2LjYtMzEuNCA1LjItMjEuNC00LTI4LjktMjguNy0xNC40LTQyLjkgOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyA1LTUuNyAuOS0xMjcgMi42LTEzMy43IC40LTIuNiAxLjUtNC44IDMuNS02LjQgMi4xLTEuNyA1LjgtMi43IDYuNy0yLjcgMTAxLTE5IDExMy4zLTIxLjQgMTE1LjEtMjEuNCA1LjctLjQgOSAzIDkgOC43LS4xIDE3MC42IC40IDE2MS40LTEgMTY3LjZ6TTM0NS4yIDMyTDEwMi44IDMyQzQ1LjkgMzIgMCA3Ny45IDAgMTM0LjhMMCAzNzcuMkMwIDQzNC4xIDQ1LjkgNDgwIDEwMi44IDQ4MGwyNDIuNCAwYzU3IDAgMTAyLjgtNDUuOSAxMDIuOC0xMDIuOGwwLTI0Mi40QzQ0OCA3Ny45IDQwMi4xIDMyIDM0NS4yIDMyek0yMjMuNiA1OWExOTIuNSAxOTIuNSAwIDEgMSAwIDM4NSAxOTIuNSAxOTIuNSAwIDEgMSAwLTM4NXoiXX0sRXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS14aW5nIixpY29uOls0NDgsNTEyLFsieGluZy1zcXVhcmUiXSwiZjE2OSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNOTMuOCAzMjAuMmMtNS41IDAtOC43LTUuMy02LTEwLjNsNDkuMy04Ni43Yy4xIDAgLjEtLjEgMC0uMmwtMzEuNC01NGMtMy01LjYgLjItMTAuMSA2LTEwLjFsNDYuNiAwYzUuMiAwIDkuNSAyLjkgMTIuOSA4LjdsMzEuOSA1NS4zYy0xLjMgMi4zLTE4IDMxLjctNTAuMSA4OC4yLTMuNSA2LjItNy43IDkuMS0xMi42IDkuMWwtNDYuNiAwem0xNjMuNS0zMy40bDAgLjIgNjUuNSAxMTljMi44IDUuMSAuMSAxMC4xLTYgMTAuMWwtNDYuNiAwYy01LjUgMC05LjctMi45LTEyLjktOC43bC02Ni0xMjAuM2MxLjgtMy4yIDIyLjktNDAuNCA2My4zLTExMS42IDExLjctMjAuNyAyNS4xLTQ0LjMgNDAuMS03MC44IDMuMy01LjggNy40LTguNyAxMi41LTguN2w0Ni45IDBjNS43LS4xIDguOCA0LjcgNiAxMEwyNTcuMyAyODYuOHoiXX0sTXh0PUV1ZSxreHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3NzMy1hbHQiLGljb246WzM4NCw1MTIsW10sImYzOGIiLCJNMCAzMkwzNC45IDQyNy44IDE5MiA0ODAgMzQ5LjEgNDI3LjggMzg0IDMyIDAgMzJ6bTMxMy4xIDgwbC00LjggNDcuMy0xMTUuMyA0OS4zLS4zIC4xIDExMS41IDAtMTIuOCAxNDYuNi05OC4yIDI4LjctOTguOC0yOS4yLTYuNC03My45IDQ4LjkgMCAzLjIgMzguMyA1Mi42IDEzLjMgNTQuNy0xNS40IDMuNy02MS42LTE2Ni4zLS41IDAtLjEtLjIgLjEtMy42LTQ2LjMgMTEyLjEtNDYuNyA2LjUtMi43LTEyMi45IDAtNS44LTQ3LjMgMjQyLjIgMHoiXX0sU3h0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZXNwYWNlIixpY29uOls1MTIsNTEyLFtdLCJmNWJlIiwiTTE4Ni4xIDM0My4zYy05LjcgOS43LTkuNyAyNS4zIDAgMzQuOXMyNS4zIDkuNiAzNC45IDBMMzc4LjMgMjIxLjFjMTkuMy0xOS4zIDUwLjYtMTkuMyA2OS45IDBzMTkuMyA1MC42IDAgNjkuOUwyOTQgNDQ1LjFjMTkuMyAxOS4zIDUwLjUgMTkuMyA2OS44IDBsMCAwIDExOS4zLTExOS4yYzM4LjYtMzguNiAzOC42LTEwMS4xIDAtMTM5LjctMzguNi0zOC42LTEwMS4yLTM4LjYtMTM5LjcgMEwxODYuMSAzNDMuM3pNNDMwLjcgMjM4LjVjLTkuNy05LjctMjUuMy05LjctMzQuOSAwTDIzOC41IDM5NS43Yy0xOS4zIDE5LjMtNTAuNSAxOS4zLTY5LjggMGwwIDBjLTkuNi05LjYtMjUuMy05LjctMzQuOSAwbDAgMGMtOS43IDkuNi05LjcgMjUuMyAwIDM0LjlsMCAwYzM4LjYgMzguNiAxMDEuMSAzOC42IDEzOS43IDBMNDMwLjcgMjczLjVjOS42LTkuNyA5LjYtMjUuMyAwLTM0Ljl6bS0yNjIgODcuM0wzMjUuOSAxNjguN2M5LjYtOS42IDkuNi0yNS4zIDAtMzQuOS05LjYtOS42LTI1LjMtOS42LTM0LjkgMEwxMzMuNyAyOTAuOWMtMTkuMyAxOS4zLTUwLjYgMTkuMy02OS45IDBsMCAwYy0xOS4zLTE5LjMtMTkuMy01MC41IDAtNjkuOGwwIDAgMTU0LjItMTU0LjJjLTE5LjMtMTkuMy01MC41LTE5LjMtNjkuOCAwbDAgMC0xMTkuMiAxMTkuM2MtMzguNiAzOC42LTM4LjYgMTAxLjEgMCAxMzkuNyAzOC42IDM4LjYgMTAxLjEgMzguNiAxMzkuNyAwek04MS4zIDI3My41YzkuNiA5LjYgMjUuMyA5LjYgMzQuOSAwTDI3My41IDExNi4zYzE5LjMtMTkuMyA1MC42LTE5LjMgNjkuOCAwbDAgMGM5LjcgOS42IDI1LjMgOS42IDM0LjkgMHM5LjYtMjUuMyAwLTM0LjljLTM4LjYtMzguNi0xMDEuMS0zOC42LTEzOS43IDBMODEuMyAyMzguNWMtOS42IDkuNi05LjYgMjUuMyAwIDM0LjlsMCAweiJdfSx6eHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHJlbGxvIixpY29uOls0NDgsNTEyLFtdLCJmMTgxIiwiTTM5Mi4zIDMyTDU2LjEgMzJjLTMxIDAtNTYuMSAyNS4xLTU2LjEgNTYtLjEgMCAwLTQgMCAzMzYgMCAzMC45IDI1LjEgNTYgNTYgNTZsMzM2LjIgMGMzMC44LS4yIDU1LjctMjUuMiA1NS43LTU2bDAtMzM2Yy4xLTMwLjgtMjQuOC01NS44LTU1LjYtNTZ6TTE5NyAzNzEuM2MtLjIgMTQuNy0xMi4xIDI2LjYtMjYuOSAyNi42bC04Mi43IDBjLTE0LjggLjEtMjYuOS0xMS44LTI3LTI2LjZsMC0yNTQuMmMwLTE0LjggMTItMjYuOSAyNi45LTI2LjlsODIuOSAwYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOWwwIDI1NC4yLS4xIDB6bTE5My4xLTExMmMwIDE0LjgtMTIgMjYuOS0yNi45IDI2LjlsLTgxIDBjLTE0LjggMC0yNi45LTEyLTI2LjktMjYuOWwwLTE0Mi4xYzAtMTQuOCAxMi0yNi45IDI2LjgtMjYuOWw4MS4xIDBjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45bDAgMTQyLjF6Il19LEN4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aWFkZW8iLGljb246WzQ0OCw1MTIsW10sImYyYTkiLCJNMjc2LjQgMTUwLjVsMCAuN2MtMTcuOS01Mi42LTQyLjYtMTAzLjQtNzAuOC0xNTEuMiA0My4zIDI5LjIgNjcgMTAwIDcwLjggMTUwLjV6bTMyLjcgMTIxLjdjNy42IDE4LjIgMTEgMzcuNSAxMSA1NyAwIDc3LjctNTcuOCAxNDEtMTM3LjggMTM5LjRsMy44LS4zYzc0LjItNDYuNyAxMDkuMy0xMTguNiAxMDkuMy0yMDUuMSAwLTM4LjEtNi41LTc1LjktMTguOS0xMTIgMSAxMS43IDEgMjMuNyAxIDM1LjQgMCA5MS44LTE4LjEgMjQxLjYtMTE2LjYgMjgwLTY1LjctMTEuNC0xMTEuMy02OC42LTExMS4zLTEzNy40IDAtNzUuNiA1Ny40LTE0Mi4zIDEzNS40LTE0Mi4zIDE2LjggMCAzMy43IDMuMSA0OS4xIDkuNiAxLjctMTUuMSA2LjUtMjkuOSAxMy40LTQzLjMtMTkuOS03LjItNDEuMi0xMC43LTYyLjUtMTAuNy0xNjEuNSAwLTIzOC43IDE5NS45LTEyOS45IDMxMy43IDY3LjkgNzQuNiAxOTIgNzMuOSAyNTkuOCAwIDU2LjYtNjEuMyA2MC45LTE0Mi40IDM2LjQtMjAxLTEyLjcgOC0yNy4xIDEzLjktNDIuMiAxN3pNNDE4LjMgMTEuN2MtMzEgNjYuNS04MS4zIDQ3LjItMTE1LjggODAuMS0xMi40IDEyLTIwLjYgMzQtMjAuNiA1MC41IDAgMTQuMSA0LjUgMjcuMSAxMiAzOC44IDQ3LjQtMTEgOTguMy00NiAxMTguMi05MC43LS43IDUuNS00LjggMTQuNC03LjIgMTkuMi0yMC4zIDM1LjctNjQuNiA2NS42LTk5LjcgODQuOSAxNC44IDE0LjQgMzMuNyAyNS44IDU1IDI1LjggNzkgMCAxMTAuMS0xMzQuNiA1OC4xLTIwOC42eiJdfSxfeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VhcmNoZW5naW4iLGljb246WzQ0OCw1MTIsW10sImYzZWIiLCJNMjE0LjYgMTMwLjNsLTY3LjIgMjguMiAwLTExNS4zLTU0LjcgMTkwLjMgNTQuNy0yNC4yIDAgMTMwLjMgNjcuMi0yMDkuM3pNMTMxLjQgMzMuNmwtMS4zIDQuNy0xNS4yIDUyLjlDNzQuNiAxMDYuNyA0NiAxNDUuOCA0NiAxOTEuNSA0NiAyNDMuOCA4MC4zIDI4Ny40IDEyOS40IDI5N2wwIDUzLjZDNTEuNSAzNDAuMS02IDI3Mi40LTYgMTkxLjYtNiAxMTEuMSA1My44IDQ0LjQgMTMxLjQgMzMuNnpNNDQyLjggNDgwLjhjLTExLjIgMTEuMi0yMy4xIDEyLjMtMjguNiAxMC41LTUuNC0xLjgtMjcuMS0xOS45LTYwLjQtNDQuNC0zMy4zLTI0LjYtMzMuNi0zNS43LTQzLTU2LjctOS40LTIwLjktMzAuNC00Mi42LTU3LjUtNTIuNGwtOS43LTE0LjdjLTI0LjcgMTYuOS01MyAyNi45LTgxLjMgMjguN2wyLjEtNi42IDE1LjktNDkuNWM0Ni41LTExLjkgODAuOS01NCA4MC45LTEwNC4yIDAtNTQuNS0zOC40LTEwMi4xLTk2LTEwNy4xbDAtNTIuMWM4My4yIDUuMSAxNDguOCA3NC41IDE0OC44IDE1OS4zIDAgMzMuNi0xMS4yIDY0LjctMjkgOTAuNGwxNC42IDkuNmM5LjggMjcuMSAzMS41IDQ4IDUyLjQgNTcuNHMzMi4yIDkuNyA1Ni44IDQzYzI0LjYgMzMuMiA0Mi43IDU0LjkgNDQuNSA2MC4zcy43IDE3LjMtMTAuNSAyOC41em0tOS45LTE3LjljMC00LjQtMy42LTgtOC04cy04IDMuNi04IDggMy42IDggOCA4IDgtMy42IDgtOHoiXX0sVHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVucmVhbC1lbmdpbmUiLGljb246WzUxMiw1MTIsW10sImU4NWMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTY1LjUtMTEzLjdsLTI1LjEtMjguMy00Mi40IDQyLjZjLTI0LjEtLjMtNDcuOS02LjItNjkuMy0xNy4ycy00MC4xLTI2LjktNTQuNS00Ni4zYzQuNSAxLjQgOS4yIDIuMyAxMy45IDIuNiA2LjkgLjEgMTQuNS0yLjQgMTQuNS0xNC4xbDAtMTE1LjFjLjEtMy0uNS01LjktMS43LTguNnMtMy4xLTUtNS40LTYuOS01LTMuMS03LjktMy43LTUuOS0uNS04LjggLjJjLTE5LjYgNC41LTM1LjMgNTMuNS0zNS4zIDUzLjUtLjItMjIuNiA0LjUtNDUgMTMuOC02NS42czIzLTM5IDQwLjEtNTMuOGMyMi41LTE5LjUgNTAuMS0zMi4yIDc5LjYtMzYuNy0yMS40IDEyLjItMzMuNSAzMi4xLTMzLjUgNDguOSAwIDI2LjkgMTYuMiAyMy42IDIxIDE5LjdsMCAxNTUuM2MuOCAxLjkgMS45IDMuOCAzLjIgNS41IDIuMSAzIDUgNS40IDguMiA3czYuOSAyLjUgMTAuNSAyLjVjMTYuMiAwIDM3LjMtMTguNSAzNy4zLTE4LjVsMC0xMjUuN2MwLTEyLjgtOS42LTI4LjItMTkuMy0zMy41IDAgMCAxNy45LTMuMiAzMS43IDcuNCAyLjYtMy4yIDUuMy02LjIgOC4yLTkuMSAzMi4yLTMxLjYgNjIuNS00MC42IDg3LjctNDUuMSAwIDAtNDUuOSAzNi4xLTQ1LjkgODQuNSAwIDM2IC45IDEyMy44IC45IDEyMy44IDE3IDE2LjQgNDIuNC03LjMgNjUuMi0zMC44LTQuNCAyMS4zLTI0IDc1LjktODYuNiAxMDUuNHoiXX0sTHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBheXBhbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFlZCIsIk0xMTEuOSAyOTUuOWMtMy41IDE5LjItMTcuNCAxMDguNy0yMS41IDEzNC0uMyAxLjgtMSAyLjUtMyAyLjVsLTc0LjYgMGMtNy42IDAtMTMuMS02LjYtMTIuMS0xMy45TDU5LjMgNDYuNmMxLjUtOS42IDEwLjEtMTYuOSAyMC0xNi45IDE1Mi4zIDAgMTY1LjEtMy43IDIwNCAxMS40IDYwLjEgMjMuMyA2NS42IDc5LjUgNDQgMTQwLjMtMjEuNSA2Mi42LTcyLjUgODkuNS0xNDAuMSA5MC4zLTQzLjQgLjctNjkuNS03LTc1LjMgMjQuMnpNMzU3LjYgMTUyYy0xLjgtMS4zLTIuNS0xLjgtMyAxLjMtMiAxMS40LTUuMSAyMi41LTguOCAzMy42LTM5LjkgMTEzLjgtMTUwLjUgMTAzLjktMjA0LjUgMTAzLjktNi4xIDAtMTAuMSAzLjMtMTAuOSA5LjQtMjIuNiAxNDAuNC0yNy4xIDE2OS43LTI3LjEgMTY5LjctMSA3LjEgMy41IDEyLjkgMTAuNiAxMi45bDYzLjUgMGM4LjYgMCAxNS43LTYuMyAxNy40LTE0LjkgLjctNS40LTEuMSA2LjEgMTQuNC05MS4zIDQuNi0yMiAxNC4zLTE5LjcgMjkuMy0xOS43IDcxIDAgMTI2LjQtMjguOCAxNDIuOS0xMTIuMyA2LjUtMzQuOCA0LjYtNzEuNC0yMy44LTkyLjZ6Il19LCR4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtYmx1ZXNreSIsaWNvbjpbNDQ4LDUxMixbXSwiZTZhMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjQgMjQ3LjRjMTQuNS0zMCA1NC04NS44IDkwLjctMTEzLjMgMjYuNS0xOS45IDY5LjMtMzUuMiA2OS4zIDEzLjcgMCA5LjgtNS42IDgyLjEtOC45IDkzLjgtMTEuNCA0MC44LTUzIDUxLjItOTAgNDQuOSA2NC43IDExIDgxLjIgNDcuNSA0NS42IDg0LTY3LjUgNjkuMy05Ny0xNy40LTEwNC42LTM5LjZsLS4zLS45Yy0uOS0yLjYtMS40LTQuMS0xLjgtNC4xcy0uOSAxLjUtMS44IDQuMWMtLjEgLjMtLjIgLjYtLjMgLjktNy42IDIyLjItMzcuMSAxMDguOC0xMDQuNiAzOS42LTM1LjUtMzYuNS0xOS4xLTczIDQ1LjYtODQtMzcgNi4zLTc4LjYtNC4xLTkwLTQ0LjktMy4zLTExLjctOC45LTg0LTguOS05My44IDAtNDguOSA0Mi45LTMzLjUgNjkuMy0xMy43IDM2LjcgMjcuNSA3Ni4yIDgzLjQgOTAuNyAxMTMuM3oiXX0sRHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImQtYW5kLWQtYmV5b25kIixpY29uOls2NDAsNTEyLFtdLCJmNmNhIiwiTTMxMy44IDI0MS41YzEzLjggMCAyMS0xMC4xIDI0LjgtMTcuOS0xLTEuMS01LTQuMi03LjQtNi42LTIuNCA0LjMtOC4yIDEwLjctMTMuOSAxMC43LTEwLjIgMC0xNS40LTE0LjctMy4yLTI2LjYtLjUtLjItNC4zLTEuOC04IDIuNCAwLTMgMS01LjEgMi4xLTYuNi0zLjUgMS4zLTkuOCA1LjYtMTEuNCA3LjkgLjItNS44IDEuNi03LjUgLjYtOWwtLjItLjJzLTguNSA1LjYtOS4zIDE0LjdjMCAwIDEuMS0xLjYgMi4xLTEuOSAuNi0uMyAxLjMgMCAuNiAxLjktLjIgLjYtNS44IDE1LjcgNS4xIDI2LS42LTEuNi0xLjktNy42IDIuNC0xLjktLjMgLjEgNS44IDcuMSAxNS43IDcuMXptNTIuNC0yMS4xYzAtNC00LjktNC40LTUuNi00LjUgMiAzLjkgLjkgNy41IC4yIDkgMi41LS40IDUuNC0xLjYgNS40LTQuNXptMTAuMyA1LjJjMC02LjQtNi4yLTExLjQtMTMuNS0xMC43IDggMS4zIDUuNiAxMy44LTUgMTEuNCAzLjctMi42IDMuMi05LjktMS4zLTEyLjUgMS40IDQuMi0zIDguMi03LjQgNC42LTIuNC0xLjktOC02LjYtMTAuNi04LjYtMi40LTIuMS01LjUtMS02LjYtMS44LTEuMy0xLjEtLjUtMy44LTIuMi01LTEuNi0uOC0zLS4zLTQuOC0xLTEuNi0uNi0yLjctMS45LTIuNi0zLjUtMi41IDQuNCAzLjQgNi4zIDQuNSA4LjUgMSAxLjktLjggNC44IDQgOC41IDE0LjggMTEuNiA5LjEgOCAxMC40IDE4LjEgLjYgNC4zIDQuMiA2LjcgNi40IDcuNC0yLjEtMS45LTIuOS02LjQgMC05LjMgMCAxMy45IDE5LjIgMTMuMyAyMy4xIDYuNC0yLjQgMS4xLTctLjItOS0xLjkgNy43IDEgMTQuMi00LjEgMTQuNi0xMC42em0tMzkuNC0xOC40YzIgLjggMS42IC43IDYuNCA0LjUgMTAuMi0yNC41IDIxLjctMTUuNyAyMi0xNS41IDIuMi0xLjkgOS44LTMuOCAxMy44LTIuNy0yLjQtMi43LTcuNS02LjItMTMuMy02LjItNC43IDAtNy40IDIuMi04IDEuMy0uOC0xLjQgMy4yLTMuNCAzLjItMy40LTUuNCAuMi05LjYgNi43LTExLjIgNS45LTEuMS0uNSAxLjQtMy43IDEuNC0zLjctNS4xIDIuOS05LjMgOS4xLTEwLjIgMTMgNC42LTUuOCAxMy44LTkuOCAxOS43LTktMTAuNSAuNS0xOS41IDkuNy0yMy44IDE1Ljh6bTI0Mi41IDUxLjljLTIwLjcgMC00MCAxLjMtNTAuMyAyLjFsNy40IDguMiAwIDc3LjItNy40IDguMmMxMC40IC44IDMwLjkgMi4xIDUxLjYgMi4xIDQyLjEgMCA1OS4xLTIwLjcgNTkuMS00OC45IDAtMjkuMy0yMy4yLTQ4LjktNjAuNC00OC45em0tMTUuMSA3NS42bDAtNTMuM2MzMC4xLTMuMyA0Ni44IDMuOCA0Ni44IDI2LjMgMCAyNS42LTIxLjQgMzAuMi00Ni44IDI3ek0zMDEuNiAxODFjLTEtMy40LS4yLTYuOSAxLjEtOS40IDEgMyAyLjYgNi40IDcuNSA5LS41LTIuNC0uMi01LjYgLjUtOC0xLjQtNS40IDIuMS05LjkgNi40LTkuOSA2LjkgMCA4LjUgOC44IDQuNyAxNC40IDIuMSAzLjIgNS41IDUuNiA3LjcgNy44IDMuMi0zLjcgNS41LTkuNSA1LjUtMTMuOCAwLTguMi01LjUtMTUuOS0xNi43LTE2LjUtMjAtLjktMjAuMiAxNi42LTIwIDE4LjkgLjUgNS4yIDMuNCA3LjggMy4zIDcuNXptLS40IDZjLS41IDEuOC03IDMuNy0xMC4yIDYuOSA0LjgtMSA3LS4yIDcuOCAxLjggLjUgMS40LS4yIDMuNC0uNSA1LjYgMS42LTEuOCA3LTUuNSAxMS02LjItMS0uMy0zLjQtLjgtNC4zLS44IDIuOS0zLjQgOS4zLTQuNSAxMi44LTMuNy0yLjItLjItNi43IDEuMS04LjUgMi42IDEuNiAuMyAzIC42IDQuMyAxLjEtMi4xIC44LTQuOCAzLjQtNS44IDYuMSA3LTUgMTMuMSA1LjIgNyA4LjIgLjggLjIgMi43IDAgMy41LS41LS4zIDEuMS0xLjkgMy0zIDMuNCAyLjkgMCA3LTEuOSA4LjItNC42IDAgMC0xLjggLjYtMi42LS4ycy4zLTQuMyAuMy00LjNjLTIuMyAyLjktMy40LTEuMy0xLjMtNC4yLTEtLjMtMy41LS42LTQuNi0uNSAzLjItMS4xIDEwLjQtMS44IDExLjItLjMgLjYgMS4xLTEgMy40LTEgMy40IDQtLjUgOC4zIDEuMSA2LjcgNS4xIDIuOS0xLjQgNS41LTUuOSA0LjgtMTAuNC0uMyAxLTEuNiAyLjQtMi45IDIuNyAuMi0xLjQtMS0yLjItMS45LTIuNiAxLjctOS42LTE0LjYtMTQuMi0xNC4xLTIzLjktMSAxLjMtMS44IDUtLjggNy4xIDIuNyAzLjIgOC43IDYuNyAxMC4xIDEyLjItMi42LTYuNC0xNS4xLTExLjQtMTQuNi0yMC4yLTEuNiAxLjYtMi42IDcuOC0xLjMgMTEgMi40IDEuNCA0LjUgMy44IDQuOCA2LjEtMi4yLTUuMS0xMS40LTYuMS0xMy45LTEyLjItLjYgMi4yLS4zIDUgMSA2LjcgMCAwLTIuMi0uOC03LS42IDEuNyAuNiA1LjEgMy41IDQuOCA1LjJ6bTI1LjkgNy40Yy0yLjcgMC0zLjUtMi4xLTQuMi00LjMgMy4zIDEuMyA0LjIgNC4zIDQuMiA0LjN6bTM4LjkgMy43bC0xLS42Yy0xLjEtMS0yLjktMS40LTQuNy0xLjQtMi45IDAtNS44IDEuMy03LjUgMy40LS44IC44LTEuNCAxLjgtMi4xIDIuNmwwIDE1LjdjMy41IDIuNiA3LjEtMi45IDMtNy4yIDEuNSAuMyA0LjYgMi43IDUuMSAzLjIgMCAwIDIuNi0uNSA1LS41IDIuMSAwIDMuOSAuMyA1LjYgMS4xbDAtMTguNGMtMS4xIC41LTIuMiAxLTIuNyAxLjRsLS43IC43ek03OS45IDMwNS45YzE3LjItNC42IDE2LjItMTggMTYuMi0xOS45IDAtMjAuNi0yNC4xLTI1LTM3LTI1bC01Ni4xIDAgOC4zIDguNiAwIDI5LjUtMTEuMyAwIDExLjQgMTQuNiAwIDMyLjMtOC40IDguNmM2MS43IDAgNzMuOCAxLjUgODYuNC01LjkgNi43LTQgOS45LTkuOCA5LjktMTcuNiAwLTUuMSAyLjYtMTguOC0xOS40LTI1LjJ6TTM4LjYgMjc4LjRjMjAgMCAyOS42LS44IDI5LjYgOS4xbDAgM2MwIDEyLjEtMTkgOC44LTI5LjYgOC44bDAtMjAuOXptMCA1OS4ybDAtMjIuNmMxMi4yIDAgMzIuNy0yLjMgMzIuNyA4LjhsMCA0LjUgLjIgMGMwIDExLjItMTIuNSA5LjMtMzIuOSA5LjN6bTEwMS4yLTE5LjNsMjMuMSAuMiAwLS4yIDE0LjEtMjEuMi0zNy4yIDAgMC0xNC45IDUyLjQgMC0xNC4xLTIxIDAtLjItNzMuNSAuMiA3LjQgOC4yIDAgNzcuMS03LjQgOC4yIDgxLjIgMCAxNC4xLTIxLjItNjAuMSAuMiAwLTE1LjR6bTIxNC43LTYwLjFjLTczLjkgMC03Ny41IDk5LjMtLjMgOTkuMyA3Ny45IDAgNzQuMS05OS4zIC4zLTk5LjN6bS0uMyA3Ny41Yy0zNy40IDAtMzYuOS01NS4zIC4yLTU1LjMgMzYuOCAuMSAzOC44IDU1LjMtLjIgNTUuM3ptLTkxLjMtOC4zbDQ0LjEtNjYuMi00MS43IDAgNi4xIDcuMi0yMC41IDM3LjItLjMgMC0yMS0zNy4yIDYuNC03LjItNDQuOSAwIDQ0LjEgNjUuOCAuMiAxOS40LTcuNyA4LjIgNDIuNiAwLTcuMi04LjItLjItMTl6TTIzNC41IDE3Ni4xYzEuNiAxLjMgMi45IDIuNCAyLjkgNi42bDAgMzguOGMwIDQuMi0uOCA1LjMtMi43IDYuNC0uMSAuMS03LjUgNC41LTcuOSA0LjZsMzUuMSAwYzEwIDAgMTcuNC0xLjUgMjYtOC42LS42LTUgLjItOS41IC44LTEyIDAtLjItMS44IDEuNC0yLjcgMy41IDAtNS43IDEuNi0xNS40IDkuNi0yMC41LS4xIDAtMy43LS44LTkgMS4xIDItMy4xIDEwLTcuOSAxMC40LTcuOS04LjItMjYtMzgtMjIuOS0zMi4yLTIyLjktMzAuOSAwLTMyLjYgLjMtMzkuOS00IC4xIC44IC41IDguMiA5LjYgMTQuOXptMjEuNSA1LjVjNC42IDAgMjMuMS0zLjMgMjMuMSAxNy4zIDAgMjAuNy0xOC40IDE3LjMtMjMuMSAxNy4zbDAtMzQuNnptMjI4LjkgNzkuNmw3IDguMyAwIDQyLjUtLjMgMGMtNS40LTE0LjQtNDIuMy00MS41LTQ1LjItNTAuOWwtMzEuNiAwIDcuNCA4LjUgMCA3Ni45LTcuMiA4LjMgMzkgMC03LjQtOC4yIDAtNDcuNCAuMyAwYzMuNyAxMC42IDQ0LjUgNDIuOSA0OC41IDU1LjZsMjEuMyAwIDAtODUuMiA3LjQtOC4zLTM5LjItLjF6TTM3OC4yIDE2NS4xYy0zMi4yIDAtMzIuOCAuMi0zOS45LTQgLjEgLjcgLjUgOC4zIDkuNiAxNC45IDMuMSAyIDIuOSA0LjMgMi45IDkuNSAxLjgtMS4xIDMuOC0yLjIgNi4xLTMtMS4xIDEuMS0yLjcgMi43LTMuNSA0LjUgMS0xLjEgNy41LTUuMSAxNC42LTMuNS0xLjYgLjMtNCAxLjEtNi4xIDIuOSAuMSAwIDIuMS0xLjEgNy41LS4zbDAtNC4zYzQuNyAwIDIzLjEtMy40IDIzLjEgMTcuMyAwIDIwLjUtMTguNSAxNy4zLTE5LjcgMTcuMyA1LjcgNC40IDUuOCAxMiAyLjIgMTYuM2wuMyAwYzMzLjQgMCAzNi43LTI3LjMgMzYuNy0zNCAwLTMuOC0xLjEtMzItMzMuOC0zMy42eiJdfSxBeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWljcm9zb2Z0IixpY29uOls0NDgsNTEyLFtdLCJmM2NhIiwiTTAgMzJsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnptMjMzLjQgMGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42ek0wIDI2NS40bDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6bTIzMy40IDBsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnoiXX0sUHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZseSIsaWNvbjpbMzIwLDUxMixbXSwiZjQxNyIsIk0xNjUuOSA0MjcuOGMxMi45IDExLjcgMzMuNyAzMy4zIDMzLjIgNTAuNyAwIC44LS4xIDEuNi0uMSAyLjUtMS44IDE5LjgtMTguOCAzMS4xLTM5LjEgMzEtMjUtLjEtMzkuOS0xNi44LTM4LjctMzUuOCAxLTE2LjIgMjAuNS0zNi43IDMyLjQtNDcuNiAyLjMtMi4xIDIuNy0yLjcgNS42LTMuNiAzLjQgMCAzLjkgLjMgNi43IDIuOHpNMzAwIDY3LjNjLTE2LjMtMjUuNy0zOC42LTQwLjYtNjMuMy01Mi4xLTI1LjUtMTAuNy01NC42LTE1LjQtNzYuNi0xNS4yLTQ0LjEgMC03MS4yIDEzLjItODEuMSAxNy4zLTUzLjYgMjcuOS04NC40IDY5LjktODIuOSAxNDEuMyA3LjEgODIuMiA5NyAxNzYgMTU1LjggMjMzLjggMS43IDEuNiA0LjUgNC41IDYuMiA1LjFsMy4zIC4xYzIuMS0uNyAxLjgtLjUgMy41LTIuMSA1Mi4zLTQ5LjIgMTQwLjctMTQ1LjggMTU1LjktMjE1LjcgNy0zOS4yIDMuMS03Mi41LTIwLjgtMTEyLjV6TTE1NC45IDM1MS45Yy0yOC01MS4xLTY1LjItMTMwLjctNjkuMy0xODktMy40LTQ3LjUgMTEuNC0xMzEuMiA2OS4zLTEzNi43bDAgMzI1Ljd6TTI5Ni44IDE4MGMtMTYuNCA1Ni44LTc3LjMgMTI4LTExOC45IDE3MC4zIDI3LjgtNTEuOSA2NS4yLTEzMy4zIDY3LjItMTkxLjkgMS42LTQ1LjktOS44LTEwNS44LTQ4LTEzMS40IDg4LjggMTguMyAxMTUuNSA5OC4xIDk5LjcgMTUzeiJdfSxFeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2Mtc3RyaXBlIixpY29uOls1NzYsNTEyLFtdLCJmMWY1IiwiTTQ5Mi40IDIyMC44Yy04LjkgMC0xOC43IDYuNy0xOC43IDIyLjdsMzYuNyAwYzAtMTYtOS4zLTIyLjctMTgtMjIuN3pNMzc1IDIyMy40Yy04LjIgMC0xMy4zIDIuOS0xNyA3bC4yIDUyLjhjMy41IDMuNyA4LjUgNi43IDE2LjggNi43IDEzLjEgMCAyMS45LTE0LjMgMjEuOS0zMy40IDAtMTguNi05LTMzLjItMjEuOS0zMy4xek01MjggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTIyLjIgMjgxLjFjMCAyNS42LTIwLjMgNDAuMS00OS45IDQwLjMtMTIuMiAwLTI1LjYtMi40LTM4LjgtOC4xbDAtMzMuOWMxMiA2LjQgMjcuMSAxMS4zIDM4LjkgMTEuMyA3LjkgMCAxMy42LTIuMSAxMy42LTguNyAwLTE3LTU0LTEwLjYtNTQtNDkuOSAwLTI1LjIgMTkuMi00MC4yIDQ4LTQwLjIgMTEuOCAwIDIzLjUgMS44IDM1LjMgNi41bDAgMzMuNGMtMTAuOC01LjgtMjQuNS05LjEtMzUuMy05LjEtNy41IDAtMTIuMSAyLjItMTIuMSA3LjcgMCAxNiA1NC4zIDguNCA1NC4zIDUwLjd6TTE5MSAyMjQuNWwtMjcgMCAwIDUwLjVjMCAyMC45IDIyLjUgMTQuNCAyNyAxMi42bDAgMjguOWMtNC43IDIuNi0xMy4zIDQuNy0yNC45IDQuNy0yMS4xIDAtMzYuOS0xNS41LTM2LjktMzYuNWwuMi0xMTMuOSAzNC43LTcuNCAwIDMwLjggMjYuOSAwIDAgMzAuM3ptNzQgMi40Yy00LjUtMS41LTE4LjctMy42LTI3LjEgNy40bDAgODQuNC0zNS41IDAgMC0xMjQuNSAzMC43IDAgMi4yIDEwLjVjOC4zLTE1LjMgMjQuOS0xMi4yIDI5LjYtMTAuNWwuMSAwIDAgMzIuN3ptNDQuMSA5MS44bC0zNS43IDAgMC0xMjQuNSAzNS43IDAgMCAxMjQuNXptMC0xNDIuOWwtMzUuNyA3LjYgMC0yOC45IDM1LjctNy42IDAgMjguOXptNzQuMSAxNDUuNWMtMTIuNCAwLTIwLTUuMy0yNS4xLTlsLS4xIDQwLjItMzUuNSA3LjUgMC0xNjUuOCAzMS4zIDAgMS44IDguOGM0LjktNC41IDEzLjktMTEuMSAyNy44LTExLjEgMjQuOSAwIDQ4LjQgMjIuNSA0OC40IDYzLjggMCA0NS4xLTIzLjIgNjUuNS00OC42IDY1LjZ6bTE2MC40LTUxLjVsLTY5LjUgMGMxLjYgMTYuNiAxMy44IDIxLjUgMjcuNiAyMS41IDE0LjEgMCAyNS4yLTMgMzQuOS03LjlsMCAyOC42Yy05LjcgNS4zLTIyLjQgOS4yLTM5LjQgOS4yLTM0LjYgMC01OC44LTIxLjctNTguOC02NC41IDAtMzYuMiAyMC41LTY0LjkgNTQuMy02NC45IDMzLjcgMCA1MS4zIDI4LjcgNTEuMyA2NS4xIDAgMy41LS4zIDEwLjktLjQgMTIuOXoiXX0sSXh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndvcmRwcmVzcy1zaW1wbGUiLGljb246WzUxMiw1MTIsW10sImY0MTEiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zMyAyNTZjMC0zMi4zIDYuOS02MyAxOS4zLTkwLjdMMTU4LjcgNDU2LjdDODQuMyA0MjAuNSAzMyAzNDQuMiAzMyAyNTZ6TTI1NiA0NzljLTIxLjkgMC00My0zLjItNjMtOS4xbDY2LjktMTk0LjQgNjguNSAxODcuOGMuNSAxLjEgMSAyLjEgMS42IDMuMS0yMy4xIDguMS00OCAxMi42LTc0IDEyLjZ6bTMwLjctMzI3LjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC0yMS45IDAtNTguNy0yLjgtNTguNy0yLjgtMTItLjctMTMuNCAxNy43LTEuNCAxOC40IDAgMCAxMS40IDEuNCAyMy40IDIuMWwzNC43IDk1LjItNDguOCAxNDYuMy04MS4yLTI0MS41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtNC4yIDAtOS4xLS4xLTE0LjQtLjMgMzkuOS02MC41IDEwOC40LTEwMC41IDE4Ni4zLTEwMC41IDU4IDAgMTEwLjkgMjIuMiAxNTAuNiA1OC41LTEtLjEtMS45LS4yLTIuOS0uMi0yMS45IDAtMzcuNCAxOS4xLTM3LjQgMzkuNiAwIDE4LjQgMTAuNiAzMy45IDIxLjkgNTIuMyA4LjUgMTQuOCAxOC40IDMzLjkgMTguNCA2MS41IDAgMTkuMS03LjMgNDEuMi0xNyA3Mi4xbC0yMi4yIDc0LjMtODAuNy0yMzkuNnptODEuNCAyOTcuMmw2OC4xLTE5Ni45YzEyLjctMzEuOCAxNy01Ny4yIDE3LTc5LjkgMC04LjItLjUtMTUuOC0xLjUtMjIuOSAxNy40IDMxLjggMjcuMyA2OC4yIDI3LjMgMTA3IDAgODIuMy00NC42IDE1NC4xLTExMC45IDE5Mi43eiJdfSxOeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VsbHN5IixpY29uOls2NDAsNTEyLFtdLCJmMjEzIiwiTTU0MCAyMzcuM2MzLjEtMTIuMyA0LjMtMjQuOCA0LjMtMzcuNCAwLTkyLjUtNzUuNC0xNjcuOS0xNjcuOS0xNjcuOS03Ny4yIDAtMTQ0LjYgNTMtMTYzIDEyNy44LTE1LjMtMTMuMi0zNC45LTIwLjUtNTUuMi0yMC41LTQ2LjMgMC04NCAzNy43LTg0IDg0IDAgNy40IC45IDE1IDMuMSAyMi40LTQyLjkgMjAuMi03MC44IDYzLjctNzAuOCAxMTEuMiAwIDY4IDU1LjUgMTIzLjIgMTIzLjIgMTIzLjJsMzgxLjIgMGM2Ny43IDAgMTIzLjItNTUuMiAxMjMuMi0xMjMuMiAwLTU2LjQtMzguOS0xMDYtOTQuMS0xMTkuNXpNMjAwLjIgNDAxLjZjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMzAuOSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTEwLjljMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMC45IDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDExMC45em04OS41IDBjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMzAuOSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTMxLjVjMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMC45IDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDEzMS41em04OS41IDBjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMzEgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTE2Mi43YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzEgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTYyLjd6bTg3IDBjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMjguNSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMjI0LjZjMC04LjYgNy0xNS42IDE1LjMtMTUuNmwyOC41IDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuNmwwIDIyNC42eiJdfSxSeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFzaGN1YmUiLGljb246WzQ0OCw1MTIsW10sImYyMTAiLCJNMzI2LjkgMTA0bC0yMTYuMiAwYy01MS4xIDAtOTEuMiA0My4zLTkxLjIgOTMuNWwwIDIyOS41YzAgNTAuNSA0MC4xIDg1IDkxLjIgODVsMjI3LjIgMGM1MS4xIDAgOTEuMi0zNC41IDkxLjItODVsMC00MjctMTAyLjIgMTA0ek0xNTQuMiA0MTYuNWMtMTcuNyAwLTMyLjQtMTUuMS0zMi40LTMyLjhsMC0xNDIuOWMwLTE3LjcgMTQuNy0zMi41IDMyLjQtMzIuNWwxNDAuNyAwYzE3LjcgMCAzMiAxNC44IDMyIDMyLjVsMCAxMjMuNSA1MS4xIDUyLjMtMjIzLjggMCAwLS4xeiJdfSxPeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0dGVyIixpY29uOlszODQsNTEyLFtdLCJmNDI2IiwiTTY2LjQgMzIyLjVsLTUwLjQgMCAwLTMyMi41IDUwLjQgMCAwIDMyMi41ek0xNjYuOSA3Ni4xbC01MC40IDAgMCA0MzUuOSA1MC40IDAgMC00MzUuOXptMTAwLjYgMGwtNTAuNCAwIDAgNDM1LjkgNTAuNCAwIDAtNDM1Ljl6TTM2OCA3NmwtNTAuNCAwIDAgMjQ3IDUwLjQgMCAwLTI0N3oiXX0sRnh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndvbGYtcGFjay1iYXR0YWxpb24iLGljb246WzQ0OCw1MTIsW10sImY1MTQiLCJNMjM2LjIgNDcxLjVsMTAuNiAxNS44IDUuMy0xMi4zIDUuMyA3IDAgMjkuOWMyMS4xLTcuOSAyMS4xLTY2LjkgMjUuNS05Ny4yIDQuNi0zMS45LS45LTkyLjggODEuNC0xNDkuMS04LjktMjMuNi0xMi00OS40LTIuNi04MCAyNy45IDMuNCA1My45IDEwLjYgNjMuMyA1NC4xbC0zMC4zIDguNGMxMS4xIDIzIDE3IDQ2LjggMTMuMiA3Mi4xbC0yNy4zLTctNi4yIDMzLjQtMTguNS03LTguOCAzMy40LTE5LjQtNyAyNi40IDIxLjEgOC44LTI4LjIgMjQuNiA1LjIgNy0zNS42IDI2LjQgMTQuNWMuMi0yMCA3LTU4LjEtOC44LTg0LjVsMjYuNCA1LjNjNC0yMi4xLTIuNC0zOS4yLTcuOS01Ni43bDIyLjQgOS43Yy0uNC0yNS4xLTI5LjktNTYuOC02MS42LTU4LjUtMjAuMi0xLjEtNTYuNy0yNS4yLTU0LjEtNTEuOSAyLTE5LjkgMTcuNC00Mi42IDQzLjEtNDkuNy00NCAzNi41LTkuNyA2Ny4zIDUuMyA3My41IDQuNC0xMS40IDE3LjUtNjkuMSAwLTEzMC4yLTQwLjQgMjIuOS04OS43IDY1LjEtOTMuMiAxNDcuOGwtNTggMzguNy0zLjUgOTMuMiAxMDcuMy01OS44IDcgNy0xNy42IDMuNS00NCAzOC43LTE1LjgtNS4zLTI4LjEgNDkuMy0zLjUgMTE5LjYgMjEuMSAxNS44LTMyLjUgMTUuOC0zMi42LTE1LjggMjEuMS0xNS44LTMuNS0xMTkuNi0yOC4yLTQ5LjMtMTUuOCA1LjMtNDQtMzguNy0xNy42LTMuNSA3LTcgMTA3LjMgNTkuOC0zLjUtOTMuMy01OC4xLTM4LjdjLTMuNS04Mi44LTUyLjctMTI1LTkzLjItMTQ3LjktMTcuNSA2MS4xLTQuNCAxMTguOCAwIDEzMC4yIDE1LTYuMiA0OS4zLTM3IDUuMy03My41IDI1LjcgNy4xIDQxLjEgMjkuOCA0My4xIDQ5LjcgMi42IDI2LjctMzMuOSA1MC44LTU0LjEgNTEuOS0zMS43IDEuNy02MS4yIDMzLjQtNjEuNiA1OC41bDIyLjQtOS43QzEzLjQgMjI0LjcgNyAyNDEuOCAxMSAyNjMuOWwyNi40LTUuM2MtMTUuOCAyNi40LTkuMSA2NC40LTguOCA4NC40bDI2LjQtMTQuNSA3IDM1LjYgMjQuNi01LjMgOC44IDI4LjIgMjYuNC0yMS4xLTE5LjQgNy04LjgtMzMuNC0xOC41IDctNi4yLTMzLjQtMjcuMyA3QzM4IDI5NC44IDQzLjggMjcxIDU1IDI0OGwtMzAuMy04LjRjOS40LTQzLjUgMzUuNS01MC44IDYzLjMtNTQuMSA5LjQgMzAuNiA2LjIgNTYuNS0yLjYgODAuMSA4Mi4zIDU2LjMgNzYuOCAxMTcuMiA4MS40IDE0OS4xIDQuNCAzMC4zIDQuNCA4OS4zIDI1LjUgOTcuMmwwLTI5LjggNS4zLTcgNS4zIDEyLjMgMTAuNi0xNS44IDExLjQgMjEuMSAxMS40LTIxLjEgMCAwem03OS4yLTk1TDI5OS41IDM2NmM3LjUtNC40IDEzLjgtOC40IDE5LjQtMTIuMy0uNiA3LjItLjMgMTMuOC0zLjUgMjIuOGwwIDB6bTI4LjItNDkuM2MtLjQgMTAuOS0uOSAyMS43LTEuOCAzMS43LTcuOC0xLjktMTUuNi0zLjgtMjEuMS03IDguMi03LjkgMTUuNi0xNi4zIDIyLjktMjQuN2wwIDB6bTI0LjYgNS4zYzAtMTMuNC0yLjEtMjQuMi01LjMtMzMuNC01LjUgOS41LTExLjcgMTguNi0xOC41IDI3LjNsMjMuOCA2LjJ6bTMuNS04MC45YzE5LjQgMTIuOCAyNy44IDMzLjcgMjkuOSA1Ni4zLTEyLjMtNC41LTI0LjYtOS4zLTM3LTEwLjYgNS4xLTEyIDYuNi0yOC4xIDctNDUuN2wwIDB6bS0xLjgtNDUuN2MuOCAxNC4zIDEuOCAyOC44IDEuOCA0Mi4yIDE5LjItOC4xIDI5LjgtOS43IDQ0LTE0LjEtMTAuNi0xOS0yNy4yLTI1LjUtNDUuOC0yOC4ybDAgMHpNMTM0LjIgMzc2LjVMMTUwIDM2NmMtNy41LTQuNC0xMy44LTguNC0xOS40LTEyLjMgLjYgNy4zIC4zIDEzLjkgMy41IDIyLjlsMCAwek0xMDYgMzI3LjNjLjQgMTAuOSAuOSAyMS43IDEuOCAzMS43IDcuOC0xLjkgMTUuNi0zLjggMjEuMS03LTguMi03LjktMTUuNi0xNi4zLTIyLjktMjQuN3ptLTI0LjYgNS4zYzAtMTMuNCAyLTI0LjIgNS4zLTMzLjQgNS41IDkuNSAxMS43IDE4LjYgMTguNSAyNy4zbC0yMy44IDYuMnptLTMuNS04MC45Yy0xOS40IDEyLjgtMjcuOCAzMy43LTI5LjkgNTYuMyAxMi4zLTQuNSAyNC42LTkuMyAzNy0xMC42LTUtMTItNi42LTI4LjEtNy00NS43bC0uMSAwem0xLjgtNDUuN2MtLjggMTQuMy0xLjggMjguOC0xLjggNDIuMi0xOS4yLTguMS0yOS44LTkuNy00NC0xNC4xIDEwLjYtMTkgMjcuMi0yNS41IDQ1LjgtMjguMXoiXX0sQnh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imxhc3RmbSIsaWNvbjpbNTEyLDUxMixbXSwiZjIwMiIsIk0yMjUuOCAzNjcuMWwtMTguOC01MXMtMzAuNSAzNC03Ni4yIDM0Yy00MC41IDAtNjkuMi0zNS4yLTY5LjItOTEuNSAwLTcyLjEgMzYuNC05Ny45IDcyLjEtOTcuOSA2Ni41IDAgNzQuOCA1My4zIDEwMC45IDEzNC45IDE4LjggNTYuOSA1NCAxMDIuNiAxNTUuNCAxMDIuNiA3Mi43IDAgMTIyLTIyLjMgMTIyLTgwLjkgMC03Mi45LTYyLjctODAuNi0xMTUtOTIuMS0yNS44LTUuOS0zMy40LTE2LjQtMzMuNC0zNCAwLTE5LjkgMTUuOC0zMS43IDQxLjYtMzEuNyAyOC4yIDAgNDMuNCAxMC42IDQ1LjcgMzUuOGw1OC42LTdjLTQuNy01Mi44LTQxLjEtNzQuNS0xMDAuOS03NC41LTUyLjggMC0xMDQuNCAxOS45LTEwNC40IDgzLjkgMCAzOS45IDE5LjQgNjUuMSA2OCA3Ni44IDQ0LjkgMTAuNiA3OS44IDEzLjggNzkuOCA0NS43IDAgMjEuNy0yMS4xIDMwLjUtNjEgMzAuNS01OS4yIDAtODMuOS0zMS4xLTk3LjktNzMuOS0zMi05Ni44LTQzLjYtMTYzLTE2MS4zLTE2My04Ni4xIDAtMTMxLjggNTQuNS0xMzEuOCAxNDcuMiAwIDg5LjEgNDUuNyAxMzcuMiAxMjcuOSAxMzcuMiA2Ni4yIDAgOTcuOS0zMS4xIDk3LjktMzEuMXoiXX0sSHh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob3B3YXJlIixpY29uOls1MTIsNTEyLFtdLCJmNWI1IiwiTTQwMy41IDQ1NS40Yy00Mi42IDMxLjctOTQuNCA0OC43LTE0Ny41IDQ4LjYtMTM3LjIgMC0yNDgtMTExLTI0OC0yNDggMC0xMzcuMiAxMTEtMjQ4IDI0OC0yNDggNjEuMi0uMSAxMjAuMiAyMi42IDE2NS43IDYzLjUgLjYgLjUgLjkgMS4yIDEuMSAxLjlzLjEgMS41LS4zIDIuMi0uOCAxLjMtMS41IDEuNi0xLjQgLjUtMi4yIC40Yy0xOC44LTIuNS0zNy43LTMuNy01Ni43LTMuNy0xMjkuNCAwLTIyMi40IDUzLjUtMjIyLjQgMTU1LjQgMCAxMDkgOTIuMSAxNDUuOSAxNzYuOCAxNzguNyAzMy42IDEzIDY1LjQgMjUuNCA4NyA0MS42IC40IC4zIC44IC44IDEuMSAxLjNzLjQgMSAuNCAxLjYtLjEgMS4xLS40IDEuNi0uNiAuOS0xLjEgMS4zbC0uMSAwek01MDMgMjMzLjFjLS4xLS45LS41LTEuOC0xLjMtMi40LTUxLjgtNDMtOTMuNi02MC41LTE0NC41LTYwLjUtODQuMSAwLTgwLjMgNTIuMi04MC4zIDUzLjYgMCA0Mi42IDUyLjEgNjIgMTEyLjMgODQuNSAzMS4xIDExLjYgNjMuMiAyMy42IDkyLjcgMzkuOSAuNCAuMiAuOSAuNCAxLjQgLjRzMSAwIDEuNS0uMiAuOS0uNCAxLjMtLjggLjYtLjggLjgtMS4yYzE0LjEtMzYgMTkuNS03NC44IDE2LTExMy4zeiJdfSxxeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxvZ2dlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3YyIsIk0xNjIuNCAxOTZjNC44LTQuOSA2LjItNS4xIDM2LjQtNS4xIDI3LjIgMCAyOC4xIC4xIDMyLjEgMi4xIDUuOCAyLjkgOC4zIDcgOC4zIDEzLjYgMCA1LjktMi40IDEwLTcuNiAxMy40LTIuOCAxLjgtNC41IDEuOS0zMS4xIDIuMS0xNi40IC4xLTI5LjUtLjItMzEuNS0uOC0xMC4zLTIuOS0xNC4xLTE3LjctNi42LTI1LjN6bTYxLjQgOTQuNWMtNTMuOSAwLTU1LjggLjItNjAuMiA0LjEtMy41IDMuMS01LjcgOS40LTUuMSAxMy45IC43IDQuNyA0LjggMTAuMSA5LjIgMTIgMi4yIDEgMTQuMSAxLjcgNTYuMyAxLjJsNDcuOS0uNiA5LjItMS41YzktNS4xIDEwLjUtMTcuNCAzLjEtMjQuNC01LjMtNC43LTUtNC43LTYwLjQtNC43ek00NDcuMiA0MjAuNmMtMy41IDI4LjQtMjMgNTAuNC01MS4xIDU3LjUtNy4yIDEuOC05LjcgMS45LTE3Mi45IDEuOC0xNTcuOCAwLTE2NS45LS4xLTE3Mi0xLjgtOC40LTIuMi0xNS42LTUuNS0yMi4zLTEwLTUuNi0zLjgtMTMuOS0xMS44LTE3LTE2LjQtMy44LTUuNi04LjItMTUuMy0xMC0yMlMwIDQyMC4zIDAgMjU2LjNjMC0xNjMuMSAwLTE2Ni42IDEuOC0xNzMuNyA2LjMtMjQuNyAyNS45LTQzLjYgNTEuMi00OS4yIDcuMy0xLjYgMzMyLjEtMS45IDM0MC0uMyAyMS4yIDQuMyAzNy45IDE3LjEgNDcuNiAzNi40IDcuNyAxNS4zIDctMS41IDcuMyAxODAuNiAuMiAxMTUuOCAwIDE2NC41LS43IDE3MC41ek0zNjEuOCAyMzUuNGMtMS4xLTUtNC4yLTkuNi03LjctMTEuNS0xLjEtLjYtOC0xLjMtMTUuNS0xLjctMTIuNC0uNi0xMy44LS44LTE3LjgtMy4xLTYuMi0zLjYtNy45LTcuNi04LTE4LjMgMC0yMC40LTguNS0zOS40LTI1LjMtNTYuNS0xMi0xMi4yLTI1LjMtMjAuNS00MC42LTI1LjEtMy42LTEuMS0xMS44LTEuNS0zOS4yLTEuOC00Mi45LS41LTUyLjUgLjQtNjcuMSA2LjItMjcgMTAuNy00Ni4zIDMzLjQtNTMuNCA2Mi40LTEuMyA1LjQtMS42IDE0LjItMS45IDY0LjMtLjQgNjIuOCAwIDcyLjEgNCA4NC41IDkuNyAzMC43IDM3LjEgNTMuNCA2NC42IDU4LjQgOS4yIDEuNyAxMjIuMiAyLjEgMTMzLjcgLjUgMjAuMS0yLjcgMzUuOS0xMC44IDUwLjctMjUuOSAxMC43LTEwLjkgMTcuNC0yMi44IDIxLjgtMzguNSAzLjItMTAuOSAyLjktODguNCAxLjctOTMuOXoiXX0sVnh0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVkZ2UiLGljb246WzUxMiw1MTIsW10sImYyODIiLCJNMTIwLjEgMzcuNGM0MS0yNS4yIDg3LjYtMzguMiAxMzQuOS0zNy40IDE2OCAwIDI1NyAxMjMuOCAyNTcgMjE5LjUtLjEgMzIuNy0xMyA2My45LTM1LjkgODcuMi0yMi45IDIzLjItNTQgMzYuNS04Ni43IDM3LTc1LjIgMC05MS41LTIzLjEtOTEuNS0zMiAwLTMuOCAxLjItNi4yIDQuOC05LjRsMS0xLjIgLjQtMS42YzEwLjUtMTEuNSAxNS45LTI2LjIgMTUuOS00MS42IDAtNzguNy04Mi4yLTE0Mi43LTE4NC0xNDIuNy0zNy41LS4zLTc0LjUgOC45LTEwNy41IDI2LjkgMjctNTcuNSA4Mi43LTk3LjYgOTEuMy0xMDMuOCAuOC0uNiAuMy0uOCAuMy0uOHptMTUuNiAzMTguMWMtMS40IDMwIDQuNiA2MCAxNi40IDg3LjIgMTMuNiAyNi40IDMyLjcgNTEgNTYuNSA2OS4zLTU5LjUtMTEuNS0xMTEuNS00My45LTE0OS40LTg5LjMtMzguMS00Ni40LTU5LjItMTA0LjMtNTkuMi0xNjQuOCAwLTUxLjIgNjIuNC05NC40IDEzNi05NC40IDM2LjYtLjYgNzIuNCAxMC45IDEwMS44IDMyLjdsLTMuNiAxLjJjLTUxLjUgMTcuNi05OC41IDkwLjctOTguNSAxNTguMXpNNDY5LjggNDAwbC0uNyAuMWMtMTEuOCAxOC44LTI1LjkgMzUuMS00Mi4yIDQ5LjUtMzAuOCAyOC02OC4xIDQ1LjUtMTA4LjggNDkuOS0xOC42IC4zLTM2LjgtMy4yLTUzLjgtMTEuNC0yNS42LTEwLjMtNDcuMS0zMC02MS42LTUzLTE0LjQtMjMuOS0yMS4xLTUxLjctMTktNzkuNi0uNi0yMC4xIDUuNC00MC4zIDE1LTU4LjIgMTMuOSAzMy4xIDM3LjUgNjEuMyA2Ny42IDgwLjhzNjUuNSAyOS41IDEwMS40IDI4LjZjMzEgLjMgNjIuMS02LjcgOTAuMi0yMC41bDEuOS0uOWMzLjktMi4zIDcuNy0zLjkgMTEuNiAwIDQuNSA0LjkgMS44IDkuMi0xLjIgMTQtLjIgLjItLjMgLjUtLjQgLjd6Il19LGp4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpb3hob3N0IixpY29uOls2NDAsNTEyLFtdLCJmMjA4IiwiTTYxNiAxNjBsLTY3LjMgMEM1MTEuMiA3MC43IDQyMi45IDggMzIwIDggMTgzIDggNzIgMTE5IDcyIDI1NiA3MiAyNzIuNCA3My42IDI4OC41IDc2LjcgMzA0TDI0IDMwNGMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjcuMyAwYzM3LjUgODkuMyAxMjUuOCAxNTIgMjI4LjcgMTUyIDEzNyAwIDI0OC0xMTEgMjQ4LTI0OCAwLTE2LjQtMS42LTMyLjUtNC43LTQ4bDUyLjcgMGMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNHptLTk2IDk2YzAgMTEwLjUtODkuNSAyMDAtMjAwIDIwMC03NS43IDAtMTQxLjYtNDItMTc1LjUtMTA0TDQyNCAzNTJjMTMuMyAwIDI0LTEwLjggMjQtMjQgMC0xMy4zLTEwLjctMjQtMjQtMjRsLTI5OC4yIDBjLTMuOC0xNS40LTUuOC0zMS40LTUuOC00OCAwLTExMC41IDg5LjUtMjAwIDIwMC0yMDAgNzUuNyAwIDE0MS42IDQyIDE3NS41IDEwNEwyMTYgMTYwYy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGwyOTguMiAwYzMuOCAxNS40IDUuOCAzMS40IDUuOCA0OHpNMjE2IDIzMmwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEzLjItMTAuNyAyNC0yNCAyNGwtMjA4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTMuMiAxMC43LTI0IDI0LTI0eiJdfSxVeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NobGl4IixpY29uOls0NDgsNTEyLFtdLCJmM2VhIiwiTTM1MC41IDE1Ny43bC01NC4yLTQ2LjEgNzMuNC0zOSA3OC4zIDQ0LjItOTcuNSA0MC45ek0xOTIgMTIyLjFsNDUuNy0yOC4yIDM0LjcgMzQuNi01NS40IDI5LTI1LTM1LjR6bS02NS4xIDYuNmwzMS45LTIyLjEgMTcuMiAyOC40LTM2LjcgMjIuNS0xMi40LTI4Ljh6bS0yMy4zIDg4LjJsLTguOC0zNC44IDI5LjYtMTguMyAxMy4xIDM1LjMtMzMuOSAxNy44ek04Mi40IDEzMy4ybDIzLjktMTguMSA4LjkgMjQtMjYuNyAxOC4zLTYuMS0yNC4yek01OSAyMDYuNWwtMy42LTI4LjQgMjIuMy0xNS41IDYuMSAyOC43LTI0LjggMTUuMnpNMjguNCAyMjMuMWwyMC44LTEyLjggMy4zIDMzLjQtMjIuOSAxMi0xLjItMzIuNnpNMS40IDI2OEwyMC42IDI1Ny44IDIxIDI5NiAwIDMwNC44IDEuNCAyNjh6bTU5LjEgNTkuM2wtMjguMyA4LjMtMS42LTQ2LjggMjUuMS0xMC43IDQuOCA0OS4yek05OSAyNjMuMmwtMzEuMSAxMy01LjItNDAuOCAyNy40LTE0LjQgOC45IDQyLjJ6TTEyMy4yIDM3N2wtNDEuNiA1LjktOC4xLTYzLjUgMzUuMi0xMC44IDE0LjUgNjguNHptMjguNS0xMzkuOWwyMS4yIDU3LjEtNDYuMiAxMy42LTEzLjctNTQuMSAzOC43LTE2LjZ6bTg1LjcgMjMwLjVsLTcwLjktMy4zLTI0LjMtOTUuOCA1NS4yLTguNiA0MCAxMDcuN3pNMTUyLjUgMTg3LjlsNDIuMi0yMi40IDI4IDQ1LjktNTAuOCAyMS4zLTE5LjQtNDQuOHptNDEgOTQuOWw2MS4zLTE4LjcgNTIuOCA4Ni42LTc5LjggMTEuMy0zNC4zLTc5LjJ6bTUxLjQtODUuNmw2Ny4zLTI4LjggNjUuNSA2NS40LTg4LjYgMjYuMi00NC4yLTYyLjh6Il19LFd4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkLWFuZC1kIixpY29uOls1NzYsNTEyLFtdLCJmMzhkIiwiTTgyLjkgOTguOWMtLjYtMTcuMiAyLTMzLjggMTIuNy00OC4yIC4zIDcuNCAxLjIgMTQuNSA0LjIgMjEuNiA1LjktMjcuNSAxOS43LTQ5LjMgNDIuMy02NS41LTEuOSA1LjktMy41IDExLjgtMyAxNy43IDguNy03LjQgMTguOC0xNy44IDQ0LjQtMjIuNyAxNC43LTIuOCAyOS43LTIgNDIuMSAxIDM4LjUgOS4zIDYxIDM0LjMgNjkuNyA3Mi4zIDUuMyAyMy4xIC43IDQ1LTguMyA2Ni40LTUuMiAxMi40LTEyIDI0LjQtMjAuNyAzNS4xLTItMS45LTMuOS0zLjgtNS44LTUuNi00Mi44LTQwLjgtMjYuOC0yNS4yLTM3LjQtMzcuNC0xLjEtMS4yLTEtMi4yLS4xLTMuNiA4LjMtMTMuNSAxMS44LTI4LjIgMTAtNDQtMS4xLTkuOC00LjMtMTguOS0xMS4zLTI2LjItMTQuNS0xNS4zLTM5LjItMTUtNTMuNSAuNi0xMS40IDEyLjUtMTQuMSAyNy40LTEwLjkgNDMuNiAuMiAxLjMgLjQgMi43IDAgMy45LTMuNCAxMy43LTQuNiAyNy42LTIuNSA0MS42IC4xIC41IC4xIDEuMSAuMSAxLjYgMCAuMy0uMSAuNS0uMiAxLjEtMjEuOC0xMS0zNi0yOC4zLTQzLjItNTIuMi04LjMgMTcuOC0xMS4xIDM1LjUtNi42IDU0LjEtMTUuNi0xNS4yLTIxLjMtMzQuMy0yMi01NS4yek01NTIuNSAyMjIuMWMtMTEuNi0xMS42LTI1LTIwLjQtNDAuMS0yNi42LTEyLjgtNS4yLTI2LTcuOS0zOS45LTcuMS0xMCAuNi0xOS42IDMuMS0yOSA2LjQtMi41IC45LTUuMSAxLjYtNy43IDIuMi00LjkgMS4yLTcuMy0zLjEtNC43LTYuOCAzLjItNC42IDMuNC00LjIgMTUtMTIgLjYtLjQgMS4yLS44IDIuMi0xLjVsLTIuNSAwYy0uNiAwLTEuMiAuMi0xLjkgLjMtMTkuMyAzLjMtMzAuNyAxNS41LTQ4LjkgMjkuNi0xMC40IDguMS0xMy44IDMuOC0xMi0uNSAxLjQtMy41IDMuMy02LjcgNS4xLTEwIDEtMS44IDIuMy0zLjQgMy41LTUuMS0uMi0uMi0uNS0uMy0uNy0uNS0yNyAxOC4zLTQ2LjcgNDIuNC01Ny43IDczLjMgLjMgLjMgLjcgLjYgMSAuOSAuMy0uNiAuNS0xLjIgLjktMS43IDEwLjQtMTIuMSAyMi44LTIxLjggMzYuNi0yOS44IDE4LjItMTAuNiAzNy41LTE4LjMgNTguNy0yMC4yIDQuMy0uNCA4LjctLjEgMTMuMS0uMS0xLjggLjctMy41IC45LTUuMyAxLjEtMTguNSAyLjQtMzUuNSA5LTUxLjUgMTguNS0zMC4yIDE3LjktNTQuNSA0Mi4yLTc1LjEgNzAuNC0uMyAuNC0uNCAuOS0uNyAxLjMgMTQuNSA1LjMgMjQgMTcuMyAzNi4xIDI1LjYgLjItLjEgLjMtLjIgLjQtLjRsMS4yLTIuN2MxMi4yLTI2LjkgMjctNTIuMyA0Ni43LTc0LjUgMTYuNy0xOC44IDM4LTI1LjMgNjIuNS0yMCA1LjkgMS4zIDExLjQgNC40IDE3LjIgNi44IDIuMy0xLjQgNS4xLTMuMiA4LTQuNyA4LjQtNC4zIDE3LjQtNyAyNi43LTkgMTQuNy0zLjEgMjkuNS00LjkgNDQuNS0xLjNsMC0uNWMtLjUtLjQtMS4yLS44LTEuNy0xLjR6TTMxNy4xIDM5Ny42Yy0zOS40LTMzLTIyLjgtMTkuNS00Mi43LTM1LjYtLjggLjkgMC0uMi0xLjkgMy0xMS4yIDE5LjEtMjUuNSAzNS4zLTQ0IDQ3LjYtMTAuMyA2LjgtMjEuNSAxMS44LTM0LjEgMTEuOC0yMS42IDAtMzguMi05LjUtNDkuNC0yNy44LTEyLTE5LjUtMTMuMy00MC43LTguMi02Mi42IDcuOC0zMy44IDMwLjEtNTUuMiAzOC42LTY0LjMtMTguNy02LjItMzMgMS43LTQ2LjQgMTMuOSAuOC0xMy45IDQuMy0yNi4yIDExLjgtMzcuMy0yNC4zIDEwLjYtNDUuOSAyNS02NC44IDQzLjktLjMtNS44IDUuNC00My43IDUuNi00NC43IC4zLTIuNy0uNi01LjMtMy03LjQtMjQuMiAyNC43LTQ0LjUgNTEuOC01Ni4xIDg0LjYgNy40LTUuOSAxNC45LTExLjQgMjMuNi0xNi4yLTguMyAyMi4zLTE5LjYgNTIuOC03LjggMTAxLjEgNC42IDE5IDExLjkgMzYuOCAyNC4xIDUyLjMgMi45IDMuNyA2LjMgNi45IDkuNSAxMC4zIC4yLS4yIC40LS4zIC42LS41LTEuNC03LTIuMi0xNC4xLTEuNS0yMS45IDIuMiAzLjIgMy45IDYgNS45IDguNiAxMi42IDE2IDI4LjcgMjcuNCA0Ny4yIDM1LjYgMjUgMTEuMyA1MS4xIDEzLjMgNzcuOSA4LjYgNTQuOS05LjcgOTAuNy00OC42IDExNi05OC44IDEtMS44IC42LTIuOS0uOS00LjJ6bTE3Mi00Ni40Yy05LjUtMy4xLTIyLjItNC4yLTI4LjctMi45IDkuOSA0IDE0LjEgNi42IDE4LjggMTIgMTIuNiAxNC40IDEwLjQgMzQuNy01LjQgNDUuNi0xMS43IDguMS0yNC45IDEwLjUtMzguOSA5LjEtMS4yLS4xLTIuMy0uNC0zLS42IDIuOC0zLjcgNi03IDguMS0xMC44IDkuNC0xNi44IDUuNC00Mi4xLTguNy01Ni4xLTIuMS0yLjEtNC42LTMuOS03LTUuOS0uMyAxLjMtLjEgMi4xIC4xIDIuOCA0LjIgMTYuNi04LjEgMzIuNC0yNC44IDMxLjgtNy42LS4zLTEzLjktMy44LTE5LjYtOC41LTE5LjUtMTYuMS0zOS4xLTMyLjEtNTguNS00OC4zLTUuOS00LjktMTIuNS04LjEtMjAuMS04LjctNC42LS40LTkuMy0uNi0xMy45LS45LTUuOS0uNC04LjgtMi44LTEwLjQtOC40LS45LTMuNC0xLjUtNi44LTIuMi0xMC4yLTEuNS04LjEtNi4yLTEzLTE0LjMtMTQuMi00LjQtLjctOC45LTEtMTMuMy0xLjUtMTMtMS40LTE5LjgtNy40LTIyLjYtMjAuMy01IDExLTEuNiAyMi40IDcuMyAyOS45IDQuNSAzLjggOS4zIDcuMyAxMy44IDExLjIgNC42IDMuOCA3LjQgOC43IDcuOSAxNC44IC40IDQuNyAuOCA5LjUgMS44IDE0LjEgMi4yIDEwLjYgOC45IDE4LjQgMTcgMjUuMSAxNi41IDEzLjcgMzMgMjcuMyA0OS41IDQxLjEgMTcuOSAxNSAxMy45IDMyLjggMTMgNTYtLjkgMjIuOSAxMi4yIDQyLjkgMzMuNSA1MS4yIDEgLjQgMiAuNiAzLjYgMS4xLTE1LjctMTguMi0xMC4xLTQ0LjEgLjctNTIuMyAuMyAyLjIgLjQgNC4zIC45IDYuNCA5LjQgNDQuMSA0NS40IDY0LjIgODUgNTYuOSAxNi0yLjkgMzAuNi04LjkgNDIuOS0xOS44IDItMS44IDMuNy00LjEgNS45LTYuNS0xOS4zIDQuNi0zNS44IC4xLTUwLjktMTAuNiAuNy0uMyAxLjMtLjMgMS45LS4zIDIxLjMgMS44IDQwLjYtMy40IDU3LTE3LjQgMTkuNS0xNi42IDI2LjYtNDIuOSAxNy40LTY2LTguMy0yMC4xLTIzLjYtMzIuMy00My44LTM4Ljl6TTk5LjggMTc5LjNjLTUuMy05LjItMTMuMi0xNS42LTIyLjEtMjEuMyAxMy43LS41IDI2LjYgLjIgMzkuNiAzLjctNy0xMi4yLTguNS0yNC43LTUtMzguNyA1LjMgMTEuOSAxMy43IDIwLjEgMjMuNiAyNi44IDE5LjcgMTMuMiAzNS43IDE5LjYgNDYuNyAzMC4yIDMuNCAzLjMgNi4zIDcuMSA5LjYgMTAuOS0uOC0yLjEtMS40LTQuMS0yLjItNi01LTEwLjYtMTMtMTguNi0yMi42LTI1LTEuOC0xLjItMi44LTIuNS0zLjQtNC41LTMuMy0xMi41LTMtMjUuMS0uNy0zNy42IDEtNS41IDIuOC0xMC45IDQuNS0xNi4zIC44LTIuNCAyLjMtNC42IDQtNi42IC42IDYuOSAwIDI1LjUgMTkuNiA0NiAxMC44IDExLjMgMjIuNCAyMS45IDMzLjkgMzIuNyA5IDguNSAxOC4zIDE2LjcgMjUuNSAyNi44IDEuMSAxLjYgMi4yIDMuMyAzLjggNC43LTUtMTMtMTQuMi0yNC4xLTI0LjItMzMuOC05LjYtOS4zLTE5LjQtMTguNC0yOS4yLTI3LjQtMy4zLTMtNC42LTYuNy01LjEtMTAuOS0xLjItMTAuNCAwLTIwLjYgNC4zLTMwLjIgLjUtMSAxLjEtMiAxLjktMy4zIC41IDQuMiAuNiA3LjkgMS40IDExLjYgNC44IDIzLjEgMjAuNCAzNi4zIDQ5LjMgNjMuNSAxMCA5LjQgMTkuMyAxOS4yIDI1LjYgMzEuNiA0LjggOS4zIDcuMyAxOSA1LjcgMjkuNi0uMSAuNiAuNSAxLjcgMS4xIDIgNi4yIDIuNiAxMCA2LjkgOS43IDE0LjMgNy43LTIuNiAxMi41LTggMTYuNC0xNC41IDQuMiAyMC4yLTkuMSA1MC4zLTI3LjIgNTguNyAuNC00LjUgNS0yMy40LTE2LjUtMjcuNy02LjgtMS4zLTEyLjgtMS4zLTIyLjktMi4xIDQuNy05IDEwLjQtMjAuNiAuNS0yMi40LTI0LjktNC42LTUyLjggMS45LTU3LjggNC42IDguMiAuNCAxNi4zIDEgMjMuNSAzLjMtMiA2LjUtNCAxMi43LTUuOCAxOC45LTEuOSA2LjUgMi4xIDE0LjYgOS4zIDkuNiAxLjItLjkgMi4zLTEuOSAzLjMtMi43LTMuMSAxNy45LTIuOSAxNS45LTIuOCAxOC4zIC4zIDEwLjIgOS41IDcuOCAxNS43IDcuMy0yLjUgMTEuOC0yOS41IDI3LjMtNDUuNCAyNS44IDctNC43IDEyLjctMTAuMyAxNS45LTE3LjktNi41IC44LTEyLjkgMS42LTE5LjIgMi40bC0uMy0uOWM0LjctMy40IDgtNy44IDEwLjItMTMuMSA4LjctMjEuMS0zLjYtMzgtMjUtMzkuOS05LjEtLjgtMTcuOCAuOC0yNS45IDUuNSA2LjItMTUuNiAxNy4yLTI2LjYgMzIuNi0zNC41LTE1LjItNC4zLTguOS0yLjctMjQuNi02LjMgMTQuNi05LjMgMzAuMi0xMy4yIDQ2LjUtMTQuNi01LjItMy4yLTQ4LjEtMy42LTcwLjIgMjAuOSA3LjkgMS40IDE1LjUgMi44IDIzLjIgNC4yLTIzLjggNy00NCAxOS43LTYyLjQgMzUuNiAxLjEtNC44IDIuNy05LjUgMy4zLTE0LjMgLjYtNC41IC44LTkuMiAuMS0xMy42LTEuNS05LjQtOC45LTE1LjEtMTkuNy0xNi4zLTcuOS0uOS0xNS42IC4xLTIzLjMgMS4zLS45IC4xLTEuNyAuMy0yLjkgMCAxNS44LTE0LjggMzYtMjEuNyA1My4xLTMzLjUgNi00LjUgNi44LTguMiAzLTE0Ljl6bTEyOC40IDI2LjhjMy4zIDE2IDEyLjYgMjUuNSAyMy44IDI0LjMtNC42LTExLjMtMTIuMS0xOS41LTIzLjgtMjQuM3oiXX0sR3h0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZ1ZWpzIixpY29uOls0NDgsNTEyLFtdLCJmNDFmIiwiTTM1Ni45IDY0LjNsLTc2LjkgMC01NiA4OC42LTQ4LTg4LjYtMTc2IDAgMjI0IDM4My43IDIyNC0zODMuNy05MS4xIDB6TTU1LjcgOTYuM2w1My44IDAgMTE0LjUgMTk4LjIgMTE0LjQtMTk4LjIgNTMuOCAwLTE2OC4yIDI4OC4yLTE2OC4zLTI4OC4yeiJdfSxZeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWV0YSIsaWNvbjpbNjQwLDUxMixbXSwiZTQ5YiIsIk02NDAgMzE3LjljMCA5MS4zLTM5LjQgMTQ4LjUtMTEwLjMgMTQ4LjUtNjIuNiAwLTk1LjgtMzQuNi0xNTYuOS0xMzYuNmwtMzEuNC01Mi42Yy04LjMtMTIuNS0xNC41LTI0LjItMjEuMi0zNS0yMC4xIDMzLjgtNDcuMSA4My00Ny4xIDgzLTY3IDExNi42LTEwNC42IDE0MS4yLTE1Ni45IDE0MS4yLTcyLjggMC0xMTYuMi01Ny4zLTExNi4yLTE0NS45IDAtMTQzIDc5LjgtMjc4LjEgMTgzLjktMjc4LjEgNTAuMiAwIDkzLjggMjQuNyAxNDQuOCA4OS41IDM3LjEtNTAuMSA3OC4xLTg5LjUgMTMwLjYtODkuNSA5OS4xIDAgMTgwLjcgMTI1LjcgMTgwLjcgMjc1LjV6TTI4Ny40IDE5Mi4yYy00Mi45LTYyLjEtNzAuOS04MC41LTEwNC40LTgwLjUtNjEuOSAwLTExMy44IDEwNi4xLTExMy44IDIxMCAwIDQ4LjUgMTguNSA3NS43IDQ5LjYgNzUuNyAzMC4yIDAgNDktMTkgMTAzLjItMTAzLjggMCAwIDI0LjctMzkuMSA2NS40LTEwMS40ek01MzEuMiAzOTcuNGMzMi4yIDAgNDYuOS0yNy41IDQ2LjktNzQuOSAwLTEyNC4yLTU0LjMtMjI1LjQtMTIzLjItMjI1LjQtMzMuMiAwLTYxLjEgMjUuOS05NC45IDc4IDkuNCAxMy44IDE5LjEgMjkgMjkuMyA0NS40bDM3LjUgNjIuNGM1OC43IDk0LjEgNzMuNSAxMTQuNSAxMDQuNCAxMTQuNXoiXX0sS3h0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2hhcmUiLGljb246WzUxMiw1MTIsW10sImY0ZjIiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xMDEgMTMyLjRjNy44IDAgMTMuNyA2LjEgMTMuNyAxMy43bDAgMTgyLjVjMCA3LjctNi4xIDEzLjctMTMuNyAxMy43bC0xMzUuMSAwYy03LjcgMC0xMy43LTYtMTMuNy0xMy43bDAtNTQtNTQgMGMtNy44IDAtMTMuNy02LTEzLjctMTMuN2wwLTE4Mi41YzAtOC4yIDYuNi0xMi43IDEyLjQtMTMuN2wxMzYuNCAwYzcuNyAwIDEzLjcgNiAxMy43IDEzLjdsMCA1NCA1NCAwek0xNjcuOSAzMDAuM2w0MC43IDAgMC0xMDEuNGMwLTcuNCA1LjgtMTIuNiAxMi0xMy43bDU1LjggMCAwLTQwLjMtMTA4LjUgMCAwIDE1NS40em0xNzYuMi04OC4xbC0xMDguNSAwIDAgMTU1LjQgMTA4LjUgMCAwLTE1NS40eiJdfSxaeHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1ZGlvdmluYXJpIixpY29uOls1MTIsNTEyLFtdLCJmM2Y4IiwiTTQ4MC43IDE4Ny43bDQuMiAyOCAwIDI4LTI1LjEgNDQuMS0zOS44IDc4LjQtNTYuMSA2Ny41LTc5LjEgMzcuOC0xNy43IDI0LjUtNy43IDEyLTkuNiA0czE3LjMtNjMuNiAxOS40LTYzLjYgMjAuMyAuNyAyMC4zIC43bDY2LjctMzguNi05Mi41IDI2LjEtNTUuOSAzNi44LTIyLjggMjgtNi42IDEuNCAyMC44LTczLjYgNi45LTUuNSAyMC43IDEyLjkgODguMy00NS4yIDU2LjgtNTEuNSAxNC44LTY4LjQtMTI1LjQgMjMuMyAxNS4yLTE4LjItMTczLjQtNTMuMyA4MS45LTEwLjUtMTY2LTEyMi45IDExNC45IDE4LjEtMTAxLjMtMTA4IDI1Mi45IDEyNi42LTMxLjUtMzggMTI0LjQgNzQuNC0xNDMuMy05OSAxOC43IDM4LjQtNDkuNi0xOC4xLTQ1LjUtODQuMyAxOTQuNiAxMjItNDIuOS01NS44IDEwOCA5Ni40IDEyLTguOS0yMS0xNi40IDQuMi0zNy44IDM3LjgtMTAuNCAyOS4yIDI0LjcgMTEuNSA0LjItNyA2LjIgOC41IDEyLTEzLjEgNy40LTEwLjMgMjAuMiAxMC41IDIzLjl6Il19LFh4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaXRidWNrZXQiLGljb246WzUxMiw1MTIsWzYxODEwXSwiZjE3MSIsIk0yMi4yIDMyYy0yLjEgMC00LjIgLjQtNi4xIDEuMXMtMy43IDEuOS01LjIgMy40LTIuNyAzLjItMy41IDUuMS0xLjMgNC0xLjMgNi4xYzAgLjkgLjEgMS45IC4yIDIuOEw3NC4xIDQ2Mi43Yy44IDUuMSAzLjQgOS43IDcuMyAxM3M4LjggNS4yIDE0IDUuMmwzMjUuNyAwYzMuOCAuMSA3LjUtMS4zIDEwLjUtMy43czQuOS01LjkgNS41LTkuN0w1MDUgNTAuN2MuNy00LjItLjMtOC40LTIuOC0xMS45cy02LjItNS43LTEwLjQtNi40Yy0uOS0uMS0xLjktLjItMi44LS4yTDIyLjIgMzJ6TTMwOC4xIDMyOS44bC0xMDQgMC0yOC4xLTE0NyAxNTcuMyAwLTI1LjIgMTQ3eiJdfSxReHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmsiLGljb246WzQ0OCw1MTIsW10sImYxODkiLCJNMzEuNSA2My41QzAgOTUgMCAxNDUuNyAwIDI0N0wwIDI2NUMwIDM2Ni4zIDAgNDE3IDMxLjUgNDQ4LjVTMTEzLjcgNDgwIDIxNSA0ODBsMTcuOSAwYzEwMS40IDAgMTUyLjEgMCAxODMuNS0zMS41UzQ0OCAzNjYuMyA0NDggMjY1bDAtMTcuOWMwLTEwMS40IDAtMTUyLjEtMzEuNS0xODMuNVMzMzQuMyAzMiAyMzMgMzJMMjE1IDMyQzExMy43IDMyIDYzIDMyIDMxLjUgNjMuNXpNNzUuNiAxNjguM2w1MS4xIDBjMS43IDg1LjUgMzkuNCAxMjEuNyA2OS4zIDEyOS4ybDAtMTI5LjIgNDguMiAwIDAgNzMuN2MyOS41LTMuMiA2MC41LTM2LjggNzAuOS03My43bDQ4LjIgMGMtMy45IDE5LjItMTEuOCAzNy4zLTIzLjEgNTMuM3MtMjUuNyAyOS41LTQyLjUgMzkuNmMxOC43IDkuMyAzNS4yIDIyLjQgNDguNCAzOC41czIyLjkgMzQuOSAyOC4zIDU1bC01MyAwYy00LjktMTcuNS0xNC44LTMzLjEtMjguNi00NXMtMzAuNy0xOS40LTQ4LjctMjEuNmwwIDY2LjYtNS44IDBjLTEwMi4xIDAtMTYwLjMtNzAtMTYyLjgtMTg2LjV6Il19LEp4dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRodWIiLGljb246WzUxMiw1MTIsW10sImYwOWIiLCJNMTczLjkgMzk3LjRjMCAyLTIuMyAzLjYtNS4yIDMuNi0zLjMgLjMtNS42LTEuMy01LjYtMy42IDAtMiAyLjMtMy42IDUuMi0zLjYgMy0uMyA1LjYgMS4zIDUuNiAzLjZ6bS0zMS4xLTQuNWMtLjcgMiAxLjMgNC4zIDQuMyA0LjkgMi42IDEgNS42IDAgNi4yLTJzLTEuMy00LjMtNC4zLTUuMmMtMi42LS43LTUuNSAuMy02LjIgMi4zem00NC4yLTEuN2MtMi45IC43LTQuOSAyLjYtNC42IDQuOSAuMyAyIDIuOSAzLjMgNS45IDIuNiAyLjktLjcgNC45LTIuNiA0LjYtNC42LS4zLTEuOS0zLTMuMi01LjktMi45ek0yNTIuOCA4Yy0xMzguNyAwLTI0NC44IDEwNS4zLTI0NC44IDI0NCAwIDExMC45IDY5LjggMjA1LjggMTY5LjUgMjM5LjIgMTIuOCAyLjMgMTcuMy01LjYgMTcuMy0xMi4xIDAtNi4yLS4zLTQwLjQtLjMtNjEuNCAwIDAtNzAgMTUtODQuNy0yOS44IDAgMC0xMS40LTI5LjEtMjcuOC0zNi42IDAgMC0yMi45LTE1LjcgMS42LTE1LjQgMCAwIDI0LjkgMiAzOC42IDI1LjggMjEuOSAzOC42IDU4LjYgMjcuNSA3Mi45IDIwLjkgMi4zLTE2IDguOC0yNy4xIDE2LTMzLjctNTUuOS02LjItMTEyLjMtMTQuMy0xMTIuMy0xMTAuNSAwLTI3LjUgNy42LTQxLjMgMjMuNi01OC45LTIuNi02LjUtMTEuMS0zMy4zIDIuNi02Ny45IDIwLjktNi41IDY5IDI3IDY5IDI3IDIwLTUuNiA0MS41LTguNSA2Mi44LTguNXM0Mi44IDIuOSA2Mi44IDguNWMwIDAgNDguMS0zMy42IDY5LTI3IDEzLjcgMzQuNyA1LjIgNjEuNCAyLjYgNjcuOSAxNiAxNy43IDI1LjggMzEuNSAyNS44IDU4LjkgMCA5Ni41LTU4LjkgMTA0LjItMTE0LjggMTEwLjUgOS4yIDcuOSAxNyAyMi45IDE3IDQ2LjQgMCAzMy43LS4zIDc1LjQtLjMgODMuNiAwIDYuNSA0LjYgMTQuNCAxNy4zIDEyLjEgMTAwLTMzLjIgMTY3LjgtMTI4LjEgMTY3LjgtMjM5IDAtMTM4LjctMTEyLjUtMjQ0LTI1MS4yLTI0NHpNMTA1LjIgMzUyLjljLTEuMyAxLTEgMy4zIC43IDUuMiAxLjYgMS42IDMuOSAyLjMgNS4yIDEgMS4zLTEgMS0zLjMtLjctNS4yLTEuNi0xLjYtMy45LTIuMy01LjItMXptLTEwLjgtOC4xYy0uNyAxLjMgLjMgMi45IDIuMyAzLjkgMS42IDEgMy42IC43IDQuMy0uNyAuNy0xLjMtLjMtMi45LTIuMy0zLjktMi0uNi0zLjYtLjMtNC4zIC43em0zMi40IDM1LjZjLTEuNiAxLjMtMSA0LjMgMS4zIDYuMiAyLjMgMi4zIDUuMiAyLjYgNi41IDEgMS4zLTEuMyAuNy00LjMtMS4zLTYuMi0yLjItMi4zLTUuMi0yLjYtNi41LTF6bS0xMS40LTE0LjdjLTEuNiAxLTEuNiAzLjYgMCA1LjlzNC4zIDMuMyA1LjYgMi4zYzEuNi0xLjMgMS42LTMuOSAwLTYuMi0xLjQtMi4zLTQtMy4zLTUuNi0yeiJdfSxleXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29kaWVwaWUiLGljb246WzUxMiw1MTIsW10sImYyODQiLCJNNDQyLjUgMjAyLjljMzAuNyAwIDMzLjUgNTMuMS0uMyA1My4xbC0xMC44IDAgMCA0NC4zLTI2LjYgMCAwLTk3LjQgMzcuNyAwek00OTIgMzUyLjZDNDQ5LjkgNDQ0LjUgMzcwLjQgNTA0IDI2OCA1MDQgMTMxIDUwNCAyMCAzOTMgMjAgMjU2UzEzMSA4IDI2OCA4Yzk3LjQgMCAxNzIuOCA1My43IDIxOC4yIDEzOC40TDMwMC4yIDI1NS4yIDQ5MiAzNTIuNnptLTM4LjUgMTIuNWwtNjAuMy0zMC43Yy0yNy4xIDQ0LjMtNzAuNCA3MS40LTEyMi40IDcxLjQtODIuNSAwLTE0OS4yLTY2LjctMTQ5LjItMTQ4LjkgMC04Mi41IDY2LjctMTQ5LjIgMTQ5LjItMTQ5LjIgNDguNCAwIDg4LjkgMjMuNSAxMTYuOSA2My40bDU5LjUtMzQuNkM0MDYuNSA3My45IDM0Mi41IDM2LjUgMjY4IDM2LjUgMTQ2LjggMzYuNSA0OC41IDEzNC44IDQ4LjUgMjU2UzE0Ni44IDQ3NS41IDI2OCA0NzUuNWM3OC42IDAgMTQ2LjUtNDIuMSAxODUuNS0xMTAuNHoiXX0sdHl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXIiLGljb246WzQ0OCw1MTIsW10sImYyYWUiLCJNNDQwLjIgMjMuMmMtMjYuNyA2LjgtNjguMSAyOC41LTExNC42IDY3LjUtMzAuOS0xNy41LTY1LjgtMjYuNy0xMDEuNC0yNi43LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOHM5My4xIDIwOCAyMDggMjA4IDIwOC05My4xIDIwOC0yMDhjLjEtNTQuMS0yMS0xMDYuMS01OC43LTE0NC44LTYuNiA4LjUtMTIuMyAxNy43LTE3IDI3LjQgMjguOSAzMi4zIDQ0LjggNzQuMSA0NC45IDExNy40IDAgOTcuNy03OS40IDE3Ny4xLTE3Ny4xIDE3Ny4xLTMwLjggMC02MS04LjEtODcuNi0yMy40IDgyLjktMTA3LjMgMTUwLjgtMzcuOCAxODQuMy0yMjYuNiA1LjgtMzIuNiAyOC05NC4zIDEyNi4yLTE2MC4yIDguMS01LjQgMi40LTE4LjEtNy0xNS43ek0xMDkuMyA0MDYuNEM4OS44IDM4OS44IDc0LjIgMzY5LjIgNjMuNSAzNDZzLTE2LjMtNDguNS0xNi4zLTc0YzAtOTcuNyA3OS40LTE3Ny4xIDE3Ny4xLTE3Ny4xIDI2LjYgMCA1Mi44IDYuMSA3Ni42IDE3LjgtNjYgNjIuMS0xMjYuOSAxNTIuOS0xOTEuNiAyOTMuOHoiXX0sYXl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJhc3BiZXJyeS1waSIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiYiIsIk0zOTIuNSAyMzIuNWwtMy43LTYuNWMuMS00Ni40LTIxLjQtNjUuMy00Ni41LTc5LjcgNy42LTIgMTUuNC0zLjYgMTcuNi0xMy4yIDEzLjEtMy4zIDE1LjgtOS40IDE3LjEtMTUuOCAzLjQtMi4zIDE0LjgtOC43IDEzLjYtMTkuNyA2LjQtNC40IDEwLTEwLjEgOC4xLTE4LjEgNi45LTcuNSA4LjctMTMuNyA1LjgtMTkuNCA4LjMtMTAuMyA0LjYtMTUuNiAxLjEtMjAuOSA2LjItMTEuMiAuNy0yMy4yLTE2LjYtMjEuMi02LjktMTAuMS0yMS45LTcuOC0yNC4yLTcuOC0yLjYtMy4yLTYtNi0xNi41LTQuNy02LjgtNi4xLTE0LjQtNS0yMi4zLTIuMS05LjMtNy4zLTE1LjUtMS40LTIyLjYgLjgtMTEuMy0zLjYtMTMuOSAxLjMtMTkuNCAzLjQtMTIuMy0yLjYtMTYuMSAzLTIyIDguOWwtNi45LS4xYy0xOC42IDEwLjgtMjcuOCAzMi44LTMxLjEgNDQuMS0zLjMtMTEuMy0xMi41LTMzLjMtMzEuMS00NC4xbC02LjkgLjFjLTUuOS01LjktOS43LTExLjUtMjItOC45LTUuNi0yLTguMS03LTE5LjQtMy40LTQuNi0xLjQtOC45LTQuNC0xMy45LTQuMy0yLjYgLjEtNS41IDEtOC43IDMuNS03LjktMy0xNS41LTQtMjIuMyAyLjEtMTAuNS0xLjMtMTQgMS40LTE2LjUgNC43LTIuMyAwLTE3LjMtMi4zLTI0LjIgNy44LTE3LjMtMi0yMi43IDEwLTE2LjUgMjEuMi0zLjUgNS40LTcuMiAxMC43IDEuMSAyMC45LTIuOSA1LjctMS4xIDExLjkgNS44IDE5LjQtMS44IDggMS44IDEzLjcgOC4xIDE4LjEtMS4yIDExIDEwLjIgMTcuNCAxMy42IDE5LjcgMS4zIDYuNCA0IDEyLjQgMTcuMSAxNS44IDIuMiA5LjUgMTAgMTEuMiAxNy42IDEzLjItMjUuMSAxNC40LTQ2LjYgMzMuMy00Ni41IDc5LjdsLTMuNyA2LjVjLTI4LjggMTcuMi01NC43IDcyLjctMTQuMiAxMTcuNyAyLjYgMTQuMSA3LjEgMjQuMiAxMSAzNS40IDUuOSA0NS4yIDQ0LjUgNjYuMyA1NC42IDY4LjggMTQuOSAxMS4yIDMwLjggMjEuOCA1Mi4yIDI5LjIgMjAuMyAyMC42IDQyLjMgMjguNCA2NC4zIDI4LjRsMSAwYzIyLjEgMCA0NC03LjggNjQuMi0yOC40IDIxLjUtNy40IDM3LjMtMTggNTIuMi0yOS4yIDEwLjItMi41IDQ4LjctMjMuNiA1NC42LTY4LjggMy45LTExLjIgOC40LTIxLjMgMTEtMzUuNCA0MC42LTQ1LjEgMTQuNy0xMDAuNS0xNC0xMTcuN3ptLTIyLjItOGMtMS41IDE4LjctOTguOS02NS4xLTgyLjEtNjcuOSA0NS43LTcuNSA4My42IDE5LjIgODIuMSA2Ny45em0tNDMgOTMuMWMtMjQuNSAxNS44LTU5LjggNS42LTc4LjgtMjIuOHMtMTQuNi02NC4yIDkuOS04MCA1OS44LTUuNiA3OC44IDIyLjggMTQuNiA2NC4yLTkuOSA4MHpNMjU5LjQgMjkuM2MuOCA0LjIgMS44IDYuOCAyLjkgNy42IDUuNC01LjggOS44LTExLjcgMTYuOC0xNy4zIDAgMy4zLTEuNyA2LjggMi41IDkuNCAzLjctNSA4LjgtOS41IDE1LjUtMTMuMy0zLjIgNS42LS42IDcuMyAxLjIgOS42IDUuMS00LjQgMTAtOC44IDE5LjQtMTIuMy0yLjYgMy4xLTYuMiA2LjItMi40IDkuOCA1LjMtMy4zIDEwLjYtNi42IDIzLjEtOC45LTIuOCAzLjEtOC43IDYuMy01LjEgOS40IDYuNi0yLjUgMTQtNC40IDIyLjEtNS40LTMuOSAzLjItNy4xIDYuMy0zLjkgOC44IDcuMS0yLjIgMTYuOS01LjEgMjYuNC0yLjZsLTYgNi4xYy0uNyAuOCAxNC4xIC42IDIzLjkgLjgtMy42IDUtNy4yIDkuNy05LjMgMTguMiAxIDEgNS44IC40IDEwLjQgMC00LjcgOS45LTEyLjggMTIuMy0xNC43IDE2LjYgMi45IDIuMiA2LjggMS42IDExLjIgLjEtMy40IDYuOS0xMC40IDExLjctMTYgMTcuMyAxLjQgMSAzLjkgMS42IDkuNyAuOS01LjIgNS41LTExLjQgMTAuNS0xOC44IDE1IDEuMyAxLjUgNS44IDEuNSAxMCAxLjYtNi43IDYuNS0xNS4zIDkuOS0yMy40IDE0LjIgNCAyLjcgNi45IDIuMSAxMCAyLjEtNS43IDQuNy0xNS40IDcuMS0yNC40IDEwIDEuNyAyLjcgMy40IDMuNCA3LjEgNC4xLTkuNSA1LjMtMjMuMiAyLjktMjcgNS42IC45IDIuNyAzLjYgNC40IDYuNyA1LjgtMTUuNCAuOS01Ny4zLS42LTY1LjQtMzIuMyAxNS43LTE3LjMgNDQuNC0zNy41IDkzLjctNjIuNi0zOC40IDEyLjgtNzMgMzAtMTAyIDUzLjUtMzQuMy0xNS45LTEwLjgtNTUuOSA1LjgtNzEuOHpNMjI1IDE0My45YzI0LjItLjMgNTQuMSAxNy44IDU0IDM0LjctLjEgMTUtMjEgMjcuMS01My44IDI2LjktMzIuMS0uNC01My43LTE1LjItNTMuNi0yOS44IDAtMTEuOSAyNi4yLTMyLjUgNTMuNC0zMS44ek0xMDIgMTMxLjFjMy43LS43IDUuNC0xLjUgNy4xLTQuMS05LTIuOC0xOC43LTUuMy0yNC40LTEwIDMuMSAwIDYgLjcgMTAtMi4xLTguMS00LjMtMTYuNy03LjctMjMuNC0xNC4yIDQuMi0uMSA4LjcgMCAxMC0xLjYtNy40LTQuNS0xMy42LTkuNS0xOC44LTE1IDUuOCAuNyA4LjMgLjEgOS43LS45LTUuNi01LjYtMTIuNy0xMC40LTE2LTE3LjMgNC4zIDEuNSA4LjMgMiAxMS4yLS4xLTEuOS00LjItMTAtNi43LTE0LjctMTYuNiA0LjYgLjQgOS40IDEgMTAuNCAwLTIuMS04LjUtNS44LTEzLjMtOS4zLTE4LjIgOS44LS4xIDI0LjYgMCAyMy45LS44bC02LTYuMWM5LjUtMi41IDE5LjMgLjQgMjYuNCAyLjYgMy4yLTIuNS0uMS01LjYtMy45LTguOCA4LjEgMS4xIDE1LjQgMi45IDIyLjEgNS40IDMuNS0zLjEtMi4zLTYuMy01LjEtOS40IDEyLjUgMi4zIDE3LjggNS42IDIzLjEgOC45IDMuOC0zLjYgLjItNi43LTIuNC05LjggOS40IDMuNCAxNC4zIDcuOSAxOS40IDEyLjMgMS43LTIuMyA0LjQtNCAxLjItOS42IDYuNyAzLjggMTEuOCA4LjMgMTUuNSAxMy4zIDQuMS0yLjYgMi41LTYuMiAyLjUtOS40IDcgNS42IDExLjQgMTEuNSAxNi44IDE3LjMgMS4xLS44IDItMy40IDIuOS03LjYgMTYuNiAxNS45IDQwLjEgNTUuOSA2IDcxLjgtMjktMjMuNS02My42LTQwLjctMTAyLTUzLjUgNDkuMyAyNSA3OCA0NS4zIDkzLjcgNjIuNi04IDMxLjgtNTAgMzMuMi02NS40IDMyLjMgMy4xLTEuNCA1LjgtMy4yIDYuNy01LjgtNC0yLjgtMTcuNi0uNC0yNy4yLTUuNnptNjAuMSAyNC4xYzE2LjggMi44LTgwLjYgODYuNS04Mi4xIDY3LjktMS41LTQ4LjcgMzYuNS03NS41IDgyLjEtNjcuOXpNNTguNyAzNDJjLTIzLjctMTguOC0zMS4zLTczLjcgMTIuNi05OC4zIDI2LjUtNyA5IDEwNy44LTEyLjYgOTguM3ptOTEgOTguMmMtMTMuMyA3LjktNDUuOCA0LjctNjguOC0yNy45LTE1LjUtMjcuNC0xMy41LTU1LjItMi42LTYzLjQgMTYuMy05LjggNDEuNSAzLjQgNjAuOSAyNS42IDE2LjkgMjAgMjQuNiA1NS4zIDEwLjUgNjUuN3pNMTIzLjMgMzIwLjVjLTI0LjUtMTUuOC0yOC45LTUxLjYtOS45LTgwczU0LjMtMzguNiA3OC44LTIyLjggMjguOSA1MS42IDkuOSA4MGMtMTkuMSAyOC40LTU0LjQgMzguNi03OC44IDIyLjh6TTIyNS41IDQ5NmMtMjkuNCAxLjItNTguMi0yMy43LTU3LjgtMzIuMy0uNC0xMi43IDM1LjgtMjIuNiA1OS4zLTIyIDIzLjctMSA1NS42IDcuNSA1NS43IDE4LjkgLjUgMTEtMjguOCAzNS45LTU3LjIgMzUuNHptNTguOS0xMjQuOWMuMiAyOS43LTI2LjIgNTMuOC01OC44IDU0cy01OS4yLTIzLjgtNTkuNC01My40bDAtLjZjLS4yLTI5LjcgMjYuMi01My44IDU4LjgtNTRzNTkuMiAyMy44IDU5LjQgNTMuNGwwIC42em04Mi4yIDQyLjdjLTI1LjMgMzQuNi01OS42IDM1LjktNzIuMyAyNi4zLTEzLjMtMTIuNC0zLjItNTAuOSAxNS4xLTcyIDIwLjktMjMuMyA0My4zLTM4LjUgNTguOS0yNi42IDEwLjUgMTAuMyAxNi43IDQ5LjEtMS43IDcyLjN6bTIyLjktNzMuMmMtMjEuNSA5LjQtMzktMTA1LjMtMTIuNi05OC4zIDQzLjkgMjQuNyAzNi4zIDc5LjYgMTIuNiA5OC4zeiJdfSxyeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3NzMyIsaWNvbjpbNTEyLDUxMixbXSwiZjEzYyIsIk00ODAgMzJsLTY0IDM2OC0yMjMuMyA4MC0xOTIuNy04MCAxOS42LTk0LjggODIgMC04IDQwLjYgMTE2LjQgNDQuNCAxMzQuMS00NC40IDE4LjgtOTcuMS0zMzMuNCAwIDE2LTgyIDMzMy43IDAgMTAuNS01Mi43LTMzMy40IDAgMTYuMy04MiA0MDcuNCAweiJdfSxzeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHVic3BvdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiMiIsIk0yMzUuOCAyMTEuNmMtMjUuMSAyMy43LTQwLjggNTcuMy00MC44IDk0LjYgMCAyOS4zIDkuNyA1Ni4zIDI2IDc4TDE3MS41IDQzNGMtNC40LTEuNi05LjEtMi41LTE0LTIuNS0xMC44IDAtMjAuOSA0LjItMjguNSAxMS44cy0xMS44IDE3LjgtMTEuOCAyOC42IDQuMiAyMC45IDExLjggMjguNSAxNy44IDExLjYgMjguNSAxMS42YzEwLjggMCAyMC45LTMuOSAyOC42LTExLjYgNy42LTcuNiAxMS44LTE3LjggMTEuOC0yOC41IDAtNC4yLS42LTguMi0xLjktMTIuMWw1MC01MC4yYzIyIDE2LjkgNDkuNCAyNi45IDc5LjMgMjYuOSA3MS45IDAgMTMwLTU4LjMgMTMwLTEzMC4yIDAtNjUuMi00Ny43LTExOS4yLTExMC4yLTEyOC43bDAtNjEuNmMxNy41LTcuNCAyOC4yLTIzLjggMjguMi00Mi45IDAtMjYuMS0yMC45LTQ3LjktNDctNDcuOVMyNzkuNiA0NyAyNzkuNiA3My4xYzAgMTkuMSAxMC43IDM1LjUgMjguMiA0Mi45bDAgNjEuMmMtMTUuMiAyLjEtMjkuNiA2LjctNDIuNyAxMy42LTI3LjYtMjAuOS0xMTcuNS04NS43LTE2OC45LTEyNC44IDEuMi00LjQgMi05IDItMTMuOCAwLTI4LjgtMjMuNS01Mi4yLTUyLjQtNTIuMi0yOC44IDAtNTIuMiAyMy40LTUyLjIgNTIuMiAwIDI4LjkgMjMuNCA1Mi4zIDUyLjIgNTIuMyA5LjggMCAxOC45LTIuOSAyNi44LTcuNkwyMzUuOCAyMTEuNnptODkuNSAyNS42YTY5IDY5IDAgMSAxIDAgMTM4IDY5IDY5IDAgMSAxIDAtMTM4eiJdfSxpeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY21wbGlkIixpY29uOls2NDAsNTEyLFtdLCJlMzYwIiwiTTIyNi4xIDM4OC4yYzAtLjctLjItMS41LS42LTIuMXMtMS0xLjEtMS43LTEuNGMtLjUtLjItMS4xLS40LTEuNi0uNGwtMTQ5LjYgMGMtMy4xIDAtNi4yLS44LTguOS0yLjJzLTUuMS0zLjUtNi45LTYuMS0yLjktNS41LTMuMy04LjYgMC02LjIgMS4xLTkuMUw4MS42IDI1NS43YzItNy4yIDYuMi0xMy41IDEyLTE4LjJzMTIuOS03LjQgMjAuNC03LjhsMTQ4LjYgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZsMTAuOC00MS4xYy40LTEgLjMtMi0uMS0yLjlzLTEuMi0xLjYtMi4xLTJjLS40LS4yLS45LS4zLTEuNC0uMy0uMSAwLS4xIDAtLjIgMGwtMTQ4LjUgMGMtMjIuMiAxLjItNDMuNCA5LjItNjAuOCAyM3MtMzAgMzIuNy0zNi4yIDU0LjFMMy41IDM1OC44Yy0zLjIgOC43LTQuMiAxOC0zIDI3LjFzNC42IDE3LjkgOS45IDI1LjUgMTIuMyAxMy44IDIwLjUgMTggMTcuMyA2LjUgMjYuNSA2LjZjMSAwIDEuOSAwIDIuOS0uMWwxNDguNiAwYzEuNS0uMSAyLjktLjcgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC43LTQxLjFjLjItLjUgLjMtLjkgLjMtMS40em04MC41LTMwN2MuMi0uNCAuMy0uOSAuMy0xLjQgMC0uNS0uMS0xLS4zLTEuNXMtLjUtLjktLjgtMS4yLS44LS42LTEuMi0uOC0xLS4zLTEuNS0uM2wtNDEuMiAwYy0xLjUgLjEtMi45IC42LTQgMS42cy0yIDIuMi0yLjQgMy42bC0yMS4zIDgwLjkgNTEuMSAwIDIxLjQtODAuOXptLTEyNi4zIDI4N2w1MS4xIDAgMzItMTIyLjYtNTEuMSAwLTMyIDEyMi42ek01MTEuOSA3OS43YzAtMS0uNS0xLjktMS4yLTIuNnMtMS43LTEuMS0yLjYtMS4xYy0uMSAwLS4xIDAtLjIgMGwtNDEgMGMtMS41IC4xLTIuOSAuNi00LjEgMS41cy0yIDIuMi0yLjUgMy42TDM2OC45IDQzMC42Yy0uMiAuNC0uMyAuOS0uMyAxLjMgMCAxIC40IDIgMS4xIDIuN3MxLjcgMS4xIDIuNyAxLjFsNDEuMiAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNkw1MTEuNSA4MS4yYy4yLS41IC4zLTEgLjMtMS41ek0zMjQuNiAzODQuNWwtNDEgMGMtMS41IC4xLTIuOSAuNy00IDEuNnMtMiAyLjItMi40IDMuNmwtMTAuNyA0MS4xYy0uMiAuNC0uMyAuOS0uMyAxLjQgMCAuNSAuMSAxIC4zIDEuNXMuNSAuOSAuOCAxLjIgLjggLjYgMS4yIC44IDEgLjMgMS41IC4zYy4xIDAgLjIgMCAuMyAwbDQwLjkgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZsMTAuOC00MS4xYy4yLS42IC4zLTEuMiAuMy0xLjhzLS4zLTEuMi0uNi0xLjctLjgtLjktMS4zLTEuMi0xLjItLjQtMS44LS40Yy0uMSAwLS4yIDAtLjMgMGwwIDB6TTYzNiA3Ni4xbC00MSAwYy0xLjUgLjEtMi45IC42LTQgMS41cy0yIDIuMi0yLjQgMy42TDQ5Ny4xIDQzMC42Yy0uMiAuNC0uMiAuOS0uMiAxLjMgMCAxIC40IDIgMS4xIDIuN3MxLjcgMS4xIDIuNyAxLjFsNDEuMSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNkw2MzkuNyA4MS4yYy4yLS41IC4zLTEgLjMtMS41LS4xLTEtLjUtMS45LTEuMi0yLjVzLTEuNi0xLTIuNi0xYy0uMSAwLS4xIDAtLjIgMGwwLS4xek0zNzEuNiAyMjUuMmwxMC44LTQxLjFjLjItLjQgLjItLjkgLjItMS40IDAtMS0uNC0yLTEuMS0yLjdzLTEuNy0xLjEtMi43LTEuMWwtNDEuMyAwYy0xLjUgLjEtMi45IC43LTQgMS42cy0yIDIuMi0yLjQgMy42bC0xMC44IDQxLjFjLS4yIC41LS4zIDEtLjMgMS41bDAgLjJjLjEgMSAuNSAxLjggMS4yIDIuNXMxLjYgMSAyLjYgMWMuMSAwIC4yIDAgLjMgMGw0MS4xIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42eiJdfSxveXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHlhbG9nIixpY29uOls0NDgsNTEyLFtdLCJmMzk5IiwiTTE2IDMybDAgMTE5LjIgNjQgMCAwLTU1LjIgMTA3LjIgMEMzMDAuNiA5NiAzNjggMTc2LjIgMzY4IDI1NS45IDM2OCAzMzIgMzA5LjQgNDE2IDE4Ny4yIDQxNmwtMTcxLjIgMCAwIDY0IDE3MS4yIDBDMzQ3LjkgNDgwIDQzMiAzNjcuMyA0MzIgMjU1LjkgNDMyIDE5Ny4yIDQwOS45IDE0Mi41IDM2OS43IDEwMS42IDMyNC45IDU2IDI2MS43IDMyIDE4Ny4yIDMyTDE2IDMyeiJdfSxueXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxlbWVudG9yIixpY29uOls1MTIsNTEyLFtdLCJmNDMwIiwiTS41IDI1NmMwIDE0MSAxMTMuNiAyNTUgMjU0LjYgMjU1IDE0MiAwIDI1Ni0xMTQgMjU2LTI1NSAwLTE0MC0xMTQtMjUzLjktMjU2LTI1My45LTE0MSAwLTI1NC42IDExMy45LTI1NC42IDI1My45ek0xOTIuMSAxNTBsMCAyMTMtNDMgMCAwLTIxMyA0MyAwem00MiAwbDEyOCAwIDAgNDMtMTI4IDAgMC00M3ptMTI4IDg1bDAgNDMtMTI4IDAgMC00MyAxMjggMHptLTEyOCA4NWwxMjggMCAwIDQzLTEyOCAwIDAtNDN6Il19LGx5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJzdC1vcmRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjJiMCIsIk0xMy4zIDIyOS4yYy4xLS4xIC4yLS4zIC4zLS40IDAgLjEgMCAuMy0uMSAuNGwtLjIgMHpNMjI0LjQgOTYuNmMtNy4xIDAtMTQuNiAuNi0yMS40IDEuN2wzLjcgNjcuNC0yMi02NGMtMTQuMyAzLjctMjcuNyA5LjQtNDAgMTYuNmwyOS40IDYxLjQtNDUuMS01MC45Yy0xMS40IDguOS0yMS43IDE5LjEtMzAuNiAzMC45bDUwLjYgNDUuNC02MS4xLTI5LjdjLTcuMSAxMi4zLTEyLjkgMjUuNy0xNi42IDQwbDY0LjMgMjIuNi02OC00Yy0uOSA3LjEtMS40IDE0LjYtMS40IDIycy42IDE0LjYgMS40IDIxLjdsNjcuNy00LTY0IDIyLjZjMy43IDE0LjMgOS40IDI3LjcgMTYuNiA0MC4zTDE0OSAzMDYuOSA5OC4xIDM1MmM4LjkgMTEuNyAxOS4xIDIyLjMgMzAuOSAzMC45bDQ0LjktNTAuOS0yOS41IDYxLjRjMTIuMyA3LjQgMjUuNyAxMy4xIDQwIDE2LjlsMjIuMy02NC42LTQgNjhjNy4xIDEuMSAxNC42IDEuNyAyMS43IDEuNyA3LjQgMCAxNC42LS42IDIxLjctMS43bC00LTY4LjYgMjIuNiA2NS4xYzE0LjMtNCAyNy43LTkuNCA0MC0xNi45bC0yOS40LTYxLjMgNDQuOSA1MC45YzExLjctOC45IDIyLTE5LjEgMzAuNi0zMC45bC01MC42LTQ1LjEgNjEuMSAyOS40YzcuMS0xMi4zIDEyLjktMjUuNyAxNi42LTQwLjNsLTY0LTIyLjMgNjcuNCA0YzEuMS03LjEgMS40LTE0LjMgMS40LTIxLjdzLS4zLTE0LjktMS40LTIybC02Ny43IDQgNjQtMjIuM2MtMy43LTE0LjMtOS4xLTI4LTE2LjYtNDAuM2wtNjAuOSAyOS43IDUwLjYtNDUuNGMtOC45LTExLjctMTkuMS0yMi0zMC42LTMwLjlsLTQ1LjEgNTAuOSAyOS40LTYxLjFjLTEyLjMtNy40LTI1LjctMTMuMS00MC0xNi45bC0yMi4zIDY0LjMgNC02Ny43Yy03LjEtMS4yLTE0LjMtMS43LTIxLjctMS43ek00NDMuOCAxMjhMNDQzLjggMzg0IDIyNC40IDUxMiA1IDM4NCA1IDEyOCAyMjQuNCAwIDQ0My44IDEyOHptLTE3LjEgMTAuM2wtMjAyLjMtMTE3LjQtMjAyLjMgMTE3LjQgMCAyMzUuMSAyMDIuMyAxMTcuNyAyMDIuMy0xMTcuNyAwLTIzNS4xek0yMjQuNCAzNy4xbDE4Ny43IDEwOS40IDAgMjE4LjktMTg3LjcgMTA5LjUtMTg3LjctMTA5LjUgMC0yMTguOCAxODcuNy0xMDkuNXptMCA1MC45Yy05Mi4zIDAtMTY2LjkgNzUuMS0xNjYuOSAxNjggMCA5Mi42IDc0LjYgMTY3LjcgMTY2LjkgMTY3LjcgOTIgMCAxNjYuOS03NS4xIDE2Ni45LTE2Ny43IDAtOTIuOS03NC45LTE2OC0xNjYuOS0xNjh6Il19LGN5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcmliYmJsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjE3ZCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQyMCAxMjIuNGMyOS41IDM2IDQ3LjQgODIgNDcuOCAxMzItNy0xLjUtNzctMTUuNy0xNDcuNS02LjgtNS44LTE0LTExLjItMjYuNC0xOC42LTQxLjYgNzguMy0zMiAxMTMuOC03Ny41IDExOC4zLTgzLjV6TTM5Ni40IDk3LjljLTMuOCA1LjQtMzUuNyA0OC4zLTExMSA3Ni41LTM0LjctNjMuOC03My4yLTExNi4yLTc5LTEyNCA2Ny4yLTE2LjIgMTM4IDEuMyAxOTAuMSA0Ny41ek0xNjUuOSA2NC42YzUuNiA3LjcgNDMuNCA2MC4xIDc4LjUgMTIyLjUtOTkuMSAyNi4zLTE4Ni40IDI1LjktMTk1LjggMjUuOCAxMy43LTY1LjcgNTgtMTIwLjQgMTE3LjMtMTQ4LjN6TTQ0LjIgMjU2LjNjMC0yLjIgMC00LjMgLjEtNi41IDkuMyAuMiAxMTEuOSAxLjUgMjE3LjctMzAuMSA2LjEgMTEuOSAxMS45IDIzLjkgMTcuMiAzNS45LTc2LjYgMjEuNi0xNDYuMiA4My41LTE4MC41IDE0Mi4zLTMzLjgtMzcuNi01NC41LTg3LjItNTQuNS0xNDEuNnpNMTI2IDQyMy40YzIyLjEtNDUuMiA4Mi4yLTEwMy42IDE2Ny42LTEzMi44IDI5LjcgNzcuMyA0MiAxNDIuMSA0NS4yIDE2MC42LTY4LjEgMjktMTUwIDIxLjEtMjEyLjgtMjcuOXptMjQ4LjQgOC41Yy0yLjItMTIuOS0xMy40LTc0LjktNDEuMi0xNTEgNjYuNC0xMC42IDEyNC43IDYuOCAxMzEuOSA5LjEtOS40IDU4LjktNDMuMyAxMDkuOC05MC44IDE0MnoiXX0sY2VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluIixpY29uOls0NDgsNTEyLFtdLCJmMDhjIiwiTTQxNiAzMkwzMS45IDMyQzE0LjMgMzIgMCA0Ni41IDAgNjQuM0wwIDQ0Ny43QzAgNDY1LjUgMTQuMyA0ODAgMzEuOSA0ODBMNDE2IDQ4MGMxNy42IDAgMzItMTQuNSAzMi0zMi4zbDAtMzgzLjRDNDQ4IDQ2LjUgNDMzLjYgMzIgNDE2IDMyek0xMzUuNCA0MTZsLTY2LjQgMCAwLTIxMy44IDY2LjUgMCAwIDIxMy44LS4xIDB6TTEwMi4yIDk2YTM4LjUgMzguNSAwIDEgMSAwIDc3IDM4LjUgMzguNSAwIDEgMSAwLTc3ek0zODQuMyA0MTZsLTY2LjQgMCAwLTEwNGMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45bDAgMTA1LjgtNjYuNCAwIDAtMjEzLjggNjMuNyAwIDAgMjkuMiAuOSAwYzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45bDAgMTE3LjJ6Il19LGR5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1wYXlwYWwiLGljb246WzU3Niw1MTIsW10sImYxZjQiLCJNMTg2LjMgMjU4LjJjMCAxMi4yLTkuNyAyMS41LTIyIDIxLjUtOS4yIDAtMTYtNS4yLTE2LTE1IDAtMTIuMiA5LjUtMjIgMjEuNy0yMiA5LjMgMCAxNi4zIDUuNyAxNi4zIDE1LjV6TTgwLjUgMjA5LjdsLTQuNyAwYy0xLjUgMC0zIDEtMy4yIDIuN2wtNC4zIDI2LjcgOC4yLS4zYzExIDAgMTkuNS0xLjUgMjEuNS0xNC4yIDIuMy0xMy40LTYuMi0xNC45LTE3LjUtMTQuOXptMjg0IDBsLTQuNSAwYy0xLjggMC0zIDEtMy4yIDIuN2wtNC4yIDI2LjcgOC0uM2MxMyAwIDIyLTMgMjItMTgtLjEtMTAuNi05LjYtMTEuMS0xOC4xLTExLjF6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTEyOC4zIDIxNS40YzAtMjEtMTYuMi0yOC0zNC43LTI4bC00MCAwYy0yLjUgMC01IDItNS4yIDQuN0wzMiAyOTQuMmMtLjMgMiAxLjIgNCAzLjIgNGwxOSAwYzIuNyAwIDUuMi0yLjkgNS41LTUuN2w0LjUtMjYuNmMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNiAwIDQ2LjEtMTcgNDYuMS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4yIDguMi01LjgtOC41LTE0LjItMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5IDAgMjAuMi00LjkgMjYuNS0xMS45LS41IDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMiAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTI1MyAzMjIuMWw2My43LTkyLjZjLjUtLjUgLjUtMSAuNS0xLjcgMC0xLjctMS41LTMuNS0zLjItMy41bC0xOS4yIDBjLTEuNyAwLTMuNSAxLTQuNSAyLjVsLTI2LjUgMzktMTEtMzcuNWMtLjgtMi4yLTMtNC01LjUtNGwtMTguNyAwYy0xLjcgMC0zLjIgMS44LTMuMiAzLjUgMCAxLjIgMTkuNSA1Ni44IDIxLjIgNjIuMS0yLjcgMy44LTIwLjUgMjguNi0yMC41IDMxLjYgMCAxLjggMS41IDMuMiAzLjIgMy4ybDE5LjIgMGMxLjgtLjEgMy41LTEuMSA0LjUtMi42ek00MTIuMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtMzkuNyAwYy0yLjcgMC01LjIgMi01LjUgNC43bC0xNi4yIDEwMmMtLjIgMiAxLjMgNCAzLjIgNGwyMC41IDBjMiAwIDMuNS0xLjUgNC0zLjJsNC41LTI5YzEtNy4yIDEzLjItNC43IDE4LTQuNyAyOC40IDAgNDUuOS0xNyA0NS45LTQ1Ljh6bTg0LjIgOC44bC0xOSAwYy0zLjggMC00IDUuNS00LjMgOC4yLTUuNS04LjUtMTQtMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5LjMgMCAyMC41LTQuOSAyNi41LTExLjktLjMgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNGwxNy4zIDBjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXpNNTQ0IDE5MC45YzAtMi0xLjUtMy41LTMuMi0zLjVsLTE4LjUgMGMtMS41IDAtMyAxLjItMy4yIDIuN2wtMTYuMiAxMDQtLjMgLjVjMCAxLjggMS41IDMuNSAzLjUgMy41bDE2LjUgMGMyLjUgMCA1LTIuOSA1LjItNS43bDE2LjItMTAxLjIgMC0uM3ptLTkwIDUxLjhjLTEyLjIgMC0yMS43IDkuNy0yMS43IDIyIDAgOS43IDcgMTUgMTYuMiAxNSAxMiAwIDIxLjctOS4yIDIxLjctMjEuNSAuMS05LjgtNi45LTE1LjUtMTYuMi0xNS41eiJdfSx1eXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGhsIixpY29uOls2NDAsNTEyLFtdLCJmNzkwIiwiTTIzOCAzMDEuMmw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMC0yMi4zIDMwLjJ6TTAgMjgyLjlsMCA2LjQgODEuOCAwIDQuNy02LjQtODYuNSAwek0xNzIuOSAyNzFjLTguNyAwLTYtMy42LTQuNi01LjUgMi44LTMuOCA3LjYtMTAuNCAxMC40LTE0LjFzMi44LTUuOS0yLjgtNS45bC01MSAwLTQxLjEgNTUuOCAxMDAuMSAwYzMzLjEgMCA1MS41LTIyLjUgNTcuMi0zMC4zbC02OC4yIDB6bTMxNy41LTYuOWwzOS4zLTUzLjQtNjIuMiAwLTM5LjMgNTMuNCA2Mi4yIDB6TTk1LjMgMjcxbC05NS4zIDAgMCA2LjQgOTAuNiAwIDQuNy02LjR6bTExMS0yNi42Yy0yLjggMy44LTcuNSAxMC40LTEwLjMgMTQuMi0xLjQgMi00LjEgNS41IDQuNiA1LjVsNDUuNiAwczcuMy0xMCAxMy41LTE4LjRjOC40LTExLjQgLjctMzUtMjkuMi0zNWwtMTE3LjkgMC0yMC40IDI3LjggMTExLjQgMGM1LjYgMCA1LjUgMi4yIDIuNyA1Ljl6TTAgMzAxLjJsNzMuMSAwIDQuNy02LjQtNzcuOCAwIDAgNi40em0zMjMgMGw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMGMtLjEgMC0yMi4zIDMwLjItMjIuMyAzMC4yem0yMjIgLjFsOTUgMCAwLTYuNC05MC4zIDAtNC43IDYuNHpNNTY3LjMgMjcxbC00LjcgNi40IDc3LjQgMCAwLTYuNC03Mi43IDB6bS0xMy41IDE4LjNsODYuMiAwIDAtNi40LTgxLjUgMC00LjcgNi40ek0zODkuNiAyMTAuN2wtMjIuNSAzMC42LTI2LjIgMCAyMi41LTMwLjYtNTguNyAwLTM5LjMgNTMuNCAxNDMuNiAwIDM5LjMtNTMuNC01OC43IDB6TTQyMy4xIDI3MXMtNC4zIDUuOS02LjQgOC43Yy03LjQgMTAtLjkgMjEuNiAyMy4yIDIxLjZsOTQuMyAwIDIyLjMtMzAuMy0xMzMuNCAweiJdfSxweXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGV4IixpY29uOls2NDAsNTEyLFtdLCJlN2ZmIiwiTTYyMC44IDk1LjRjLTMwLjggLjQtNDIuMSAxNi42LTQ3LjcgMjQuNWwtLjEgLjEtNTUuNyA4MC41IDgyLjggMTIxLjFjNy41IDEwLjYgMTEuMyAxMi41IDM1LjQgMTIuNWwwIDkuMWMtOS4xLS43LTI4LS43LTM3LjctLjctMTIuNCAwLTMwLjggMC00Mi45IC43bDAtOS4xYzEzLjItLjggMTYuNi03LjMgMTYuNi0xMC4yIDAtMS4xIDAtMi4zLTMtNi40bC02NS41LTk2LjMtNjAuMiA4Ny45Yy0xLjkgMi43LTMuOCA1LjQtMy44IDEwLjIgMCA2LjEgMy40IDEzLjYgMTUgMTQuN2wwIDkuMWMtOS40LS43LTI3LjEtLjctMzcuMi0uN2wtMi44IDAtMTEuNyA4Mi42LTE5NS45IDAgMC05LjFjMjYuNyAwIDMwLjkgMCAzMC45LTE2LjlsMC0yMDMuMmMwLTE2LjktNC4zLTE2LjktMzAuOS0xNi45bDAtMTAuMyAxOS44IDBjLTQuOC02MS4xLTEwLjgtNzEuNy02OC03MS44bC0yMC43IDBjLTYuOCAxLjUtNi44IDYuMS02LjggMTQuNGwwIDIwNWMwIDEzLjYgMS4xIDE3LjggMzIuNCAxNy44bDEwLjUgMCAwIDkuMS0uNCAwYy0xNy45LS4zLTM2LjctLjctNTQuOS0uN3MtMzYuOSAuMy01NC44IC43bC0uNiAwIDAtOS4xIDEwLjcgMGMzMS43IDAgMzIuOC00LjEgMzIuOC0xNy44bDAtMjA1YzAtOC43IDAtMTMuMi03LjItMTQuM2wtMjAuOCAwYy01OC40IDAtNjMuNyAxMC45LTY4LjYgNzMuM2wtNi44IDAgNi4zLTgzLjMgMjE3LjUgMCA2LjEgODEuOCAxNjQuMSAwIDkgODMuMy02LjggMGMtNS4zLTQ5LjgtMTIuMS03My03MC4zLTczbC01MS41IDBjLTE1IDAtMTUuOCAxLjktMTUuOCAxNC42bDAgOTMuMyAzNS41IDBjMzUuNSAwIDM4LjktMTIuOCAzOC45LTQ0bDYgMCAwIDk3LjktNiAwYzAtMzEuOC0zLjQtNDQuOC0zOC45LTQ0LjhsLTM1LjUgMCAwIDEwNS4yYzAgMTMgLjcgMTQuOCAxNS44IDE0LjhsNTIuMiAwYzYxLjEgMCA2OS45LTI1LjggNzcuNC03My42LTcuNyAwLTE2LjMgLjItMjIuMiAuN2wwLTkuMWM3LjIgMCAzMS43LS40IDQ3LjgtMjMuOGw2NS41LTk1LjctNzIuNy0xMDYuN2MtOC4zLTExLjctMTUuMS0xMi41LTM1LjgtMTIuNWwwLTkuMWM5LjEgLjcgMjcuOSAuNyAzNy43IC43IDEyLjQgMCAzMC44IDAgNDIuOS0uN2wwIDkuMWMtMTIuNSAuNC0xNi42IDYuOC0xNi42IDEwLjIgMCAxLjEgLjQgMi4zIDMgNi40bDU1LjcgODEuNiA0OS43LTcyLjFjMi43LTMuNyA0LjUtNi44IDQuNS0xMS4zIDAtNi4xLTMtMTMuNi0xNS0xNC44bDAtOS4xYzkuNCAuNyAyNC44IC43IDM3LjIgLjcgOSAwIDIzLjMgMCAzMi0uN2wwIDkuMXoiXX0sZnl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsYXVkZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg2MSIsIk0xMDAuNCAzNDAuNWwxMDAuNy01Ni41IDEuNy00LjktMS43LTIuNy00LjkgMC0xNi44LTEtNTcuNS0xLjYtNDkuOS0yLjEtNDguMy0yLjYtMTIuMi0yLjYtMTEuNC0xNSAxLjItNy41IDEwLjItNi45IDE0LjcgMS4zYzE4LjkgMS4zIDQ1LjkgMy4xIDgxIDUuNmwzNS4yIDIuMSA1Mi4yIDUuNCA4LjMgMCAxLjItMy40LTIuOC0yLjEtMi4yLTIuMS01MC4zLTM0LjEtNTQuNC0zNi0yOC41LTIwLjctMTUuNC0xMC41LTcuOC05LjgtMy40LTIxLjUgMTQtMTUuNCAxOC44IDEuMyA0LjggMS4zIDE5IDE0LjcgNDAuNyAzMS41IDUzLjEgMzkuMSA3LjggNi41IDMuMS0yLjIgLjQtMS42LTMuNS01LjgtMjguOS01Mi4yLTMwLjgtNTMuMS0xMy43LTIyLTMuNi0xMy4yYy0xLjMtNS40LTIuMi0xMC0yLjItMTUuNWwxNS45LTIxLjYgOC44LTIuOCAyMS4yIDIuOCA4LjkgNy44IDEzLjIgMzAuMiAyMS40IDQ3LjUgMzMuMiA2NC42IDkuNyAxOS4yIDUuMiAxNy44IDEuOSA1LjQgMy40IDAgMC0zLjEgMi43LTM2LjQgNS00NC43IDQuOS01Ny41IDEuNy0xNi4yIDgtMTkuNCAxNS45LTEwLjUgMTIuNCA1LjkgMTAuMiAxNC43LTEuNCA5LjUtNi4xIDM5LjUtMTEuOSA2MS45LTcuOCA0MS41IDQuNSAwIDUuMi01LjIgMjEtMjcuOCAzNS4yLTQ0LjEgMTUuNS0xNy41IDE4LjEtMTkuMyAxMS42LTkuMiAyMiAwIDE2LjIgMjQuMS03LjMgMjQuOS0yMi43IDI4LjctMTguOCAyNC40LTI3IDM2LjMtMTYuOCAyOSAxLjYgMi4zIDQtLjQgNjAuOS0xMyAzMi45LTUuOSAzOS4zLTYuNyAxNy44IDguMyAxLjkgOC40LTcgMTcuMi00MiAxMC40LTQ5LjIgOS44LTczLjMgMTcuMy0uOSAuNyAxIDEuMyAzMyAzLjEgMTQuMSAuOCAzNC42IDAgNjQuNCA0LjggMTYuOCAxMS4xIDEwLjEgMTMuNi0xLjcgMTAuNC0yNS45IDEzLjJjLTE1LjUtMy43LTU0LjQtMTIuOS0xMTYuNi0yNy43bC0yOC03LTMuOSAwIDAgMi4zIDIzLjMgMjIuOCA0Mi43IDM4LjYgNTMuNSA0OS44IDIuNyAxMi4zLTYuOSA5LjctNy4zLTEtNDctMzUuNC0xOC4xLTE1LjktNDEuMS0zNC42LTIuNyAwIDAgMy42IDkuNSAxMy45IDUwIDc1LjIgMi42IDIzLTMuNiA3LjUtMTMgNC41LTE0LjItMi42LTI5LjMtNDEuMS0zMC4yLTQ2LjMtMjQuNC00MS41LTMgMS43LTE0LjQgMTU0LjgtNi43IDcuOS0xNS41IDUuOS0xMy05LjgtNi45LTE1LjkgNi45LTMxLjUgOC4zLTQxLjEgNi43LTMyLjcgNi4xLTQwLjYgMy42LTEzLjUtLjItLjktMyAuNC0zMC42IDQyLTQ2LjUgNjIuOS0zNi44IDM5LjQtOC44IDMuNS0xNS4zLTcuOSAxLjQtMTQuMSA4LjUtMTIuNiA1MC45LTY0LjggMzAuNy00MC4yIDE5LjgtMjMuMi0uMS0zLjQtMS4yIDAtMTM1LjMgODcuOC0yNC4xIDMuMS0xMC40LTkuNyAxLjMtMTUuOSA0LjktNS4yIDQwLjctMjgtLjEgLjEgMCAuMXoiXX0saHl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob3BpZnkiLGljb246WzQ0OCw1MTIsW10sImUwNTciLCJNMzg4LjUgMTA0LjFjLS4yLTEuMS0uNy0yLjEtMS41LTIuOHMtMS44LTEuMi0yLjktMS4yYy0yIDAtMzcuMi0uOC0zNy4yLS44cy0yMS42LTIwLjgtMjkuNi0yOC44bDAgNDMyLjcgMTI1LjctMzEuMnMtNTQtMzY1LjUtNTQuNC0zNjcuOXpNMjg4LjkgNzAuNWMtMS45LTYuMS00LjMtMTEuOS03LjItMTcuNi0xMC40LTIwLTI2LTMwLjktNDQuNC0zMC45LTEuMyAwLTIuNyAuMS00IC40LS40LS44LTEuMi0xLjItMS42LTItOC04LjgtMTguNC0xMi44LTMwLjgtMTIuNC0yNCAuOC00OCAxOC02Ny4yIDQ4LjgtMTMuNiAyMS42LTI0IDQ4LjgtMjYuOCA3MC4xLTI3LjYgOC40LTQ2LjggMTQuNC00Ny4yIDE0LjgtMTQgNC40LTE0LjQgNC44LTE2IDE4LTEuMiAxMC0zOCAyOTEuOC0zOCAyOTEuOGwzMDIuNiA1Mi41IDAtNDM4LjNjLTEuNSAuMS0yLjkgLjItNC40IC40IDAgMC01LjYgMS42LTE0LjggNC40ek0yMzMuNiA4Ny43Yy0xNiA0LjgtMzMuNiAxMC40LTUwLjggMTUuNiA0LjgtMTguOCAxNC40LTM3LjYgMjUuNi01MCA0LjQtNC40IDEwLjQtOS42IDE3LjItMTIuOCA2LjggMTQuNCA4LjQgMzQgOCA0Ny4yek0yMDAuOCAyNC40YzUtLjIgMTAgMS4xIDE0LjQgMy42LTYuNCAzLjItMTIuOCA4LjQtMTguOCAxNC40LTE1LjIgMTYuNC0yNi44IDQyLTMxLjYgNjYuNS0xNC40IDQuNC0yOC44IDguOC00MiAxMi44IDguOC0zOC40IDQxLjItOTYuNCA3OC05Ny4yek0xNTQuNCAyNDQuNmMxLjYgMjUuNiA2OS4yIDMxLjIgNzMuMiA5MS43IDIuOCA0Ny42LTI1LjIgODAuMS02NS42IDgyLjUtNDguOCAzLjItNzUuNi0yNS42LTc1LjYtMjUuNmwxMC40LTQ0czI2LjggMjAuNCA0OC40IDE4LjhjMTQtLjggMTkuMi0xMi40IDE4LjgtMjAuNC0yLTMzLjYtNTcuMi0zMS42LTYwLjgtODYuOS0zLjItNDYuNCAyNy4yLTkzLjMgOTQuNS05Ny43IDI2LTEuNiAzOS4yIDQuOCAzOS4yIDQuOGwtMTUuMiA1Ny42cy0xNy4yLTgtMzcuNi02LjRjLTI5LjYgMi0zMCAyMC44LTI5LjYgMjUuNnpNMjQ5LjYgODIuOWMwLTEyLTEuNi0yOS4yLTcuMi00My42IDE4LjQgMy42IDI3LjIgMjQgMzEuMiAzNi40LTcuMiAyLTE1LjIgNC40LTI0IDcuMnoiXX0sSXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1yZWRkaXQiLGljb246WzQ0OCw1MTIsWyJyZWRkaXQtc3F1YXJlIl0sImYxYTIiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0zMDUuOSAxNjYuNGMyMC42IDAgMzcuMy0xNi43IDM3LjMtMzcuM3MtMTYuNy0zNy4zLTM3LjMtMzcuM2MtMTggMC0zMy4xIDEyLjgtMzYuNiAyOS44LTMwLjIgMy4yLTUzLjggMjguOC01My44IDU5LjlsMCAuMmMtMzIuOCAxLjQtNjIuOCAxMC43LTg2LjYgMjUuNS04LjgtNi44LTE5LjktMTAuOS0zMi0xMC45LTI4LjkgMC01Mi4zIDIzLjQtNTIuMyA1Mi4zIDAgMjEgMTIuMyAzOSAzMC4xIDQ3LjQgMS43IDYwLjcgNjcuOSAxMDkuNiAxNDkuMyAxMDkuNnMxNDcuNi00OC45IDE0OS4zLTEwOS43YzE3LjctOC40IDI5LjktMjYuNCAyOS45LTQ3LjMgMC0yOC45LTIzLjQtNTIuMy01Mi4zLTUyLjMtMTIgMC0yMyA0LTMxLjkgMTAuOC0yNC0xNC45LTU0LjMtMjQuMi04Ny41LTI1LjRsMC0uMWMwLTIyLjIgMTYuNS00MC43IDM3LjktNDMuNyAzLjkgMTYuNSAxOC43IDI4LjcgMzYuMyAyOC43bC4yLS4yek0xNTUgMjQ4LjFjMTQuNiAwIDI1LjggMTUuNCAyNSAzNC40cy0xMS44IDI1LjktMjYuNSAyNS45LTI3LjUtNy43LTI2LjYtMjYuNyAxMy41LTMzLjUgMjguMS0zMy41bDAtLjF6bTE2Ni40IDMzLjVjLjkgMTktMTIgMjYuNy0yNi42IDI2LjdzLTI1LjYtNi45LTI2LjUtMjUuOSAxMC4zLTM0LjQgMjUtMzQuNCAyNy4zIDE0LjYgMjguMSAzMy41bDAgLjF6bS00Mi4xIDQ5LjZjLTkgMjEuNS0zMC4zIDM2LjctNTUuMSAzNi43cy00Ni4xLTE1LjEtNTUuMS0zNi43Yy0xLjEtMi42IC43LTUuNCAzLjQtNS43IDE2LjEtMS42IDMzLjUtMi41IDUxLjctMi41czM1LjYgLjkgNTEuNyAyLjVjMi43IC4zIDQuNSAzLjEgMy40IDUuN3oiXX0sbXl0PUl1ZSxneXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYyIsaWNvbjpbNTEyLDUxMixbXSwiZjRlOCIsIk0yNTUuNiA4QzM5NS40IDggNTA0IDExNS45IDUwNCAyNTYgNTA0IDQwMy4yIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjEgNTA0IDggMzkzLjIgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6TTYzLjggMTg5LjFjLTcuNCAyMC40LTExLjEgNDIuNy0xMS4xIDY2LjkgMCAxMTAuOSA5Mi4xIDIwMi40IDIwMy43IDIwMi40IDEyMi40IDAgMTc3LjItMTAxLjggMTc4LjUtMTA0LjFsLTkzLjQtNDEuNmMtNy43IDM3LjEtNDEuMiA1My02OC4yIDU1LjRsMCAzOC4xLTI4LjggMCAwLTM4LjJjLTI3LjUtLjMtNTIuNi0xMC4yLTc1LjMtMjkuN2wzNC4xLTM0LjVjMzEuNyAyOS40IDg2LjQgMzEuOCA4Ni40LTIuMiAwLTYuMi0yLjItMTEuMi02LjYtMTUuMS0xNC4yLTYtMS44LS4xLTIxOS4zLTk3LjR6TTI1Ni40IDUyLjNDMjE4IDUyLjMgMTQ0IDYxIDg1LjkgMTQ1LjNsOTQuOCA0Mi41YzEwLTMxLjMgNDAuNC00Mi45IDYzLjgtNDQuM2wwLTM4LjEgMjguOCAwIDAgMzguMWMyMi43IDEuMiA0My40IDguOSA2MiAyM0wzMDMgMTk5LjdjLTQyLjctMjkuOS04My41LTgtNzAgMTEuMSA1My40IDI0LjEgNDMuOCAxOS44IDkzIDQxLjZsMTI3LjEgNTYuN2M0LjEtMTcuNCA2LjItMzUuMSA2LjItNTMuMSAwLTU3LTE5LjgtMTA1LTU5LjMtMTQzLjktMzkuMy0zOS45LTg3LjItNTkuOC0xNDMuNi01OS44eiJdfSxieXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtcmVwdWJsaWMiLGljb246WzUxMiw1MTIsW10sImY1MGMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMSAwIDQ5NiAyNDggMjQ4IDAgMSAxIDAtNDk2em0wIDE2LjVhMjMxLjUgMjMxLjUgMCAxIDAgMCA0NjIuOSAyMzEuNSAyMzEuNSAwIDEgMCAwLTQ2Mi45em0yNy42IDIxLjhsMCAyNC42YzMwLjMgNC41IDU5IDE2LjMgODMuNiAzNC41bDE3LjQtMTcuNGMtMjguNy0yMi4xLTYzLjMtMzYuOS0xMDEtNDEuOHptLTU1LjQgLjFjLTM3LjYgNC45LTcyLjIgMTkuOC0xMDAuOSA0MS45bDE3LjMgMTcuNCAuMSAwYzI0LjEtMTcuOCA1Mi42LTMwLjEgODMuNS0zNC43bDAtMjQuNXptMTIuMiA1MC4ybDAgODIuOWMtMTAgMi0xOS40IDUuOS0yNy43IDExLjRsLTU4LjYtNTguNi0yMS45IDIxLjkgNTguNyA1OC43Yy01LjUgOC4yLTkuNCAxNy42LTExLjUgMjcuNmwtODIuOSAwIDAgMzEgODIuOSAwYzIgMTAgNiAxOS4zIDExLjUgMjcuNWwtNTguNyA1OC43IDIxLjkgMjEuOSA1OC42LTU4LjZjOC40IDUuNiAxNy44IDkuNSAyNy43IDExLjVsMCA4Mi45IDMxIDAgMC04Mi45YzEwLTIgMTkuNC02LjEgMjcuNi0xMS41bDU4LjcgNTguNyAyMS45LTIxLjktNTguNy01OC43YzUuNS04LjIgOS41LTE3LjUgMTEuNS0yNy41bDgyLjkgMCAwLTMxLTgyLjkgMGMtMi0xMC02LTE5LjQtMTEuNS0yNy42bDU4LjctNTguNy0yMS45LTIxLjktNTguNyA1OC43Yy04LjItNS41LTE3LjYtOS41LTI3LjYtMTEuNWwwLTgyLjktMzEgMHptMTgzLjIgMzAuN2wtMTcuNCAxNy40YzE4LjMgMjQuNiAzMC4yIDUzLjQgMzQuNyA4My43bDI0LjYgMGMtNS0zNy43LTE5LjgtNzIuMy00MS45LTEwMXptLTMzNS42IC4xYy0yMi4xIDI4LjctMzYuOSA2My4zLTQxLjggMTAwLjlsMjQuNiAwYzQuNi0zMSAxNi44LTU5LjQgMzQuNi04My41TDg4LjIgMTI3LjR6TTQ2LjMgMjgzLjdjNC45IDM3LjYgMTkuNyA3Mi4yIDQxLjggMTAwLjlsMTcuNC0xNy40Qzg3LjcgMzQzLjEgNzUuNiAzMTQuNiA3MSAyODMuN2wtMjQuNiAwIDAgMHptMzk0LjcgMGMtNC42IDMxLTE2LjggNTkuNS0zNC43IDgzLjZsMTcuNCAxNy40YzIyLjEtMjguNyAzNy02My4zIDQxLjktMTAxbC0yNC42IDB6TTE0NC43IDQwNi40bC0xNy40IDE3LjRjMjguNyAyMi4xIDYzLjMgMzcgMTAxIDQxLjlsMC0yNC42Yy0zMS00LjYtNTkuNS0xNi44LTgzLjYtMzQuNnptMjIyLjUgMGMtMjQuMSAxNy44LTUyLjYgMzAuMS04My42IDM0LjdsMCAyNC42YzM3LjctNC45IDcyLjItMTkuOCAxMDEtNDEuOGwtMTcuMy0xNy40LS4xIDB6Il19LGRlZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vayIsaWNvbjpbNTEyLDUxMixbNjJlM10sImYwOWEiLCJNNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2QzAgMzc2IDgyLjcgNDc2LjggMTk0LjIgNTA0LjVsMC0xNzAuMy01Mi44IDAgMC03OC4yIDUyLjggMCAwLTMzLjdjMC04Ny4xIDM5LjQtMTI3LjUgMTI1LTEyNy41IDE2LjIgMCA0NC4yIDMuMiA1NS43IDYuNGwwIDcwLjhjLTYtLjYtMTYuNS0xLTI5LjYtMS00MiAwLTU4LjIgMTUuOS01OC4yIDU3LjJsMCAyNy44IDgzLjYgMC0xNC40IDc4LjItNjkuMyAwIDAgMTc1LjlDNDEzLjggNDk0LjggNTEyIDM4Ni45IDUxMiAyNTZ6Il19LHZ5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRsYWIiLGljb246WzUxMiw1MTIsW10sImYyOTYiLCJNNTA0IDIwNC42bC0uNy0xLjgtNjkuNy0xODEuOGMtMS40LTMuNi0zLjktNi42LTcuMi04LjYtMi40LTEuNi01LjEtMi41LTgtMi44cy01LjcgLjEtOC40IDEuMS01LjEgMi43LTcuMSA0LjhjLTEuOSAyLjEtMy4zIDQuNy00LjEgNy40bC00NyAxNDQtMTkwLjUgMC00Ny4xLTE0NGMtLjgtMi44LTIuMi01LjMtNC4xLTcuNC0yLTIuMS00LjQtMy43LTcuMS00LjgtMi42LTEtNS41LTEuNC04LjQtMS4xcy01LjYgMS4yLTggMi44Yy0zLjIgMi01LjggNS4xLTcuMiA4LjZMOS44IDIwMi44IDkgMjA0LjZjLTEwIDI2LjItMTEuMyA1NS0zLjUgODIgNy43IDI2LjkgMjQgNTAuNyA0Ni40IDY3LjZsLjMgLjIgLjYgLjQgMTA2IDc5LjVjMzguNSAyOS4xIDY2LjcgNTAuMyA4NC42IDYzLjkgMy43IDEuOSA4LjMgNC4zIDEzIDQuM3M5LjMtMi40IDEzLTQuM2MxNy45LTEzLjUgNDYuMS0zNC45IDg0LjYtNjMuOWwxMDYuNy03OS45IC4zLS4zYzIyLjQtMTYuOSAzOC43LTQwLjYgNDUuNi02Ny41IDguNi0yNyA3LjQtNTUuOC0yLjYtODJ6Il19LHh5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxcSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFkNiIsIk00MzQuMSA0MjAuNGMtMTEuNSAxLjQtNDQuOS01Mi43LTQ0LjktNTIuNyAwIDMxLjMtMTYuMSA3Mi4yLTUxIDEwMS44IDE2LjggNS4yIDU0LjggMTkuMiA0NS44IDM0LjQtNy4zIDEyLjMtMTI1LjUgNy45LTE1OS42IDQtMzQuMSAzLjgtMTUyLjMgOC4zLTE1OS42LTQtOS0xNS4yIDI4LjktMjkuMiA0NS44LTM0LjQtMzQuOS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy4zIDU0LjEtNDQuOSA1Mi43LTUuNC0uNi0xMi40LTI5LjYgOS4zLTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjEtMTA1LjgtMy4xLTExNi45IDQ1LjItMjE1IDE2MC4zLTIxNSAxMTMuNyAwIDE2My4yIDk2LjEgMTYwLjMgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjkgNDAuMSAxMDUuOCAyMS44IDcwLjEgMTQuNyA5OS4xIDkuMyA5OS43eiJdfSx5eXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlIixpY29uOls2NDAsNTEyLFtdLCJmNDI5IiwiTTE2NSAxNDQuN2wtNDMuMyA5LjItLjIgMTQyLjRjMCAyNi4zIDE5LjggNDMuMyA0Ni4xIDQzLjMgMTQuNiAwIDI1LjMtMi43IDMxLjItNS45bDAtMzMuOGMtNS43IDIuMy0zMy43IDEwLjUtMzMuNy0xNS43bDAtNjMuMiAzMy43IDAgMC0zNy44LTMzLjcgMC0uMS0zOC41em04OS4xIDUxLjZsLTIuNy0xMy4xLTM4LjQgMCAwIDE1My4yIDQ0LjMgMCAwLTEwMy4xYzEwLjUtMTMuOCAyOC4yLTExLjEgMzMuOS05LjNsMC00MC44Yy02LTIuMS0yNi43LTYtMzcuMSAxMy4xek0zNDYuNCAxMjRsLTQ0LjYgOS41IDAgMzYuMiA0NC42LTkuNSAwLTM2LjJ6TTQ0LjkgMjI4LjNjMC02LjkgNS44LTkuNiAxNS4xLTkuNyAxMy41IDAgMzAuNyA0LjEgNDQuMiAxMS40bDAtNDEuOGMtMTQuNy01LjgtMjkuNC04LjEtNDQuMS04LjEtMzYgMC02MCAxOC44LTYwIDUwLjIgMCA0OS4yIDY3LjUgNDEuMiA2Ny41IDYyLjQgMCA4LjItNy4xIDEwLjktMTcgMTAuOS0xNC43IDAtMzMuNy02LjEtNDguNi0xNC4ybDAgNDBjMTYuNSA3LjEgMzMuMiAxMC4xIDQ4LjUgMTAuMSAzNi45IDAgNjIuMy0xNS44IDYyLjMtNDcuOCAwLTUyLjktNjcuOS00My40LTY3LjktNjMuNHpNNjQwIDI2MS42YzAtNDUuNS0yMi04MS40LTY0LjItODEuNHMtNjcuOSAzNS45LTY3LjkgODEuMWMwIDUzLjUgMzAuMyA3OC4yIDczLjUgNzguMiAyMS4yIDAgMzcuMS00LjggNDkuMi0xMS41bDAtMzMuNGMtMTIuMSA2LjEtMjYgOS44LTQzLjYgOS44LTE3LjMgMC0zMi41LTYuMS0zNC41LTI2LjlsODYuOSAwYy4yLTIuMyAuNi0xMS42IC42LTE1Ljl6bS04Ny45LTE2LjhjMC0yMCAxMi4zLTI4LjQgMjMuNC0yOC40IDEwLjkgMCAyMi41IDguNCAyMi41IDI4LjRsLTQ1LjkgMHpNNDM5LjIgMTgwLjJjLTE3LjQgMC0yOC42IDguMi0zNC44IDEzLjlsLTIuMy0xMS0zOS4xIDAgMCAyMDQuOCA0NC40LTkuNCAuMS01MC4yYzYuNCA0LjcgMTUuOSAxMS4yIDMxLjQgMTEuMiAzMS44IDAgNjAuOC0yMy4yIDYwLjgtNzkuNiAuMS01MS42LTI5LjMtNzkuNy02MC41LTc5Ljd6TTQyOC42IDMwMi43Yy0xMC40IDAtMTYuNi0zLjgtMjAuOS04LjRsLS4zLTY2YzQuNi01LjEgMTEtOC44IDIxLjItOC44IDE2LjIgMCAyNy40IDE4LjIgMjcuNCA0MS40IC4xIDIzLjktMTAuOSA0MS44LTI3LjQgNDEuOHpNMzAxLjkgMzM2LjRsNDQuNiAwIDAtMTUzLjItNDQuNiAwIDAgMTUzLjJ6Il19LHd5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYWlseW1vdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTA1MiIsIk0yOTguOSAyNjdjLTcuNC00LjItMTUuOC02LjMtMjQuNC02LjItMTMuMiAwLTI0LjQgNC40LTMzLjQgMTMuM3MtMTMuNiAyMC0xMy42IDMzLjRjMCAxNC4xIDQuNCAyNS42IDEzLjMgMzQuNnMyMCAxMy40IDMzLjQgMTMuNGMxMy43IDAgMjUtNC42IDM0LjEtMTMuOFMzMjIgMzIxLjEgMzIyIDMwNy41YzAtOC4yLTIuMS0xNi4zLTYuMS0yMy41LTQtNy4xLTkuOC0xMy0xNy0xN3pNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMzc0LjcgNDA1LjNsLTUzLjEgMCAwLTIzLjktLjcgMGMtMTAuNSAxNy41LTI5LjEgMjYuMi01NS44IDI2LjItMTguNCAwLTM0LjctNC40LTQ4LjktMTMuMS0xNC4xLTguNi0yNS41LTIxLTMyLjktMzUuOC03LjctMTUuMS0xMS42LTMyLjEtMTEuNi01MC45IDAtMTguNCAzLjktMzUuMSAxMS44LTUwLjIgNy41LTE0LjcgMTguOS0yNy4xIDMyLjktMzUuOCAxNC4xLTguNyAzMC0xMy4xIDQ3LjctMTMuMSAxMC4yLS4xIDIwLjIgMS42IDI5LjcgNS4yIDguOSAzLjUgMTcuMiA5LjEgMjUgMTdsMC03Ny45IDU1LjgtMTIuMSAwIDI2NC40eiJdfSxNeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RlYW0iLGljb246WzUxMiw1MTIsW10sImYxYjYiLCJNNTA0IDI1NmMwIDEzNy0xMTEuMiAyNDgtMjQ4LjQgMjQ4LTExMy44IDAtMjA5LjYtNzYuMy0yMzktMTgwLjRsOTUuMiAzOS4zYzYuNCAzMi4xIDM0LjkgNTYuNCA2OC45IDU2LjQgMzkuMiAwIDcxLjktMzIuNCA3MC4yLTczLjVsODQuNS02MC4yYzUyLjEgMS4zIDk1LjgtNDAuOSA5NS44LTkzLjUgMC01MS42LTQyLTkzLjUtOTMuNy05My41cy05My43IDQyLTkzLjcgOTMuNWwwIDEuMi01OS4yIDg1LjdjLTE1LjUtLjktMzAuNyAzLjQtNDMuNSAxMi4xTDggMjM2LjFDMTguMiAxMDguNCAxMjUuMSA4IDI1NS42IDggMzkyLjggOCA1MDQgMTE5IDUwNCAyNTZ6TTE2My43IDM4NC4zbC0zMC41LTEyLjZjNS42IDExLjYgMTUuMyAyMC44IDI3LjIgMjUuOCAyNi45IDExLjIgNTcuOC0xLjYgNjktMjguNCA1LjQtMTMgNS41LTI3LjMgLjEtNDAuM1MyMTQgMzA1LjYgMjAxIDMwMC4yYy0xMi45LTUuNC0yNi43LTUuMi0zOC45LS42bDMxLjUgMTNjMTkuOCA4LjIgMjkuMiAzMC45IDIwLjkgNTAuNy04LjMgMTkuOS0zMSAyOS4yLTUwLjggMjF6TTMzNy41IDEyOS44YTYyLjMgNjIuMyAwIDEgMSAwIDEyNC42IDYyLjMgNjIuMyAwIDEgMSAwLTEyNC42em0uMSAxMDlhNDYuOCA0Ni44IDAgMSAwIDAtOTMuNiA0Ni44IDQ2LjggMCAxIDAgMCA5My42eiJdfSxreXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmVubW8tdiIsaWNvbjpbNTEyLDUxMixbXSwiZTg1YiIsIk00NjYuNSAxNC44YzE3LjQgMjguNyAyNS4zIDU4LjIgMjUuMyA5NS41IDAgMTE5LTEwMS45IDI3My41LTE4NC43IDM4Mi4xbC0xODguOSAwLTc1LjgtNDUxLjUgMTY1LjQtMTUuNyA0MC4xIDMyMS4zYzM3LjQtNjAuOCA4My42LTE1Ni4zIDgzLjYtMjIxLjQgMC0zNS42LTYuMS01OS45LTE1LjctNzkuOUw0NjYuNSAxNC44eiJdfSxOdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic25hcGNoYXQiLGljb246WzUxMiw1MTIsWzYyMTI0LCJzbmFwY2hhdC1naG9zdCJdLCJmMmFiIiwiTTQ5Ny4xIDM2Ni42Yy0zLjQtOS4yLTkuOC0xNC4xLTE3LjEtMTguMi0xLjQtLjgtMi42LTEuNS0zLjctMS45LTIuMi0xLjEtNC40LTIuMi02LjYtMy40LTIyLjgtMTIuMS00MC42LTI3LjMtNTMtNDUuNC0zLjUtNS4xLTYuNi0xMC41LTkuMS0xNi4xLTEuMS0zLTEtNC43LS4yLTYuMyAuOC0xLjIgMS43LTIuMiAyLjktMyAzLjktMi42IDgtNS4yIDEwLjctNyA0LjktMy4yIDguOC01LjcgMTEuMi03LjQgOS40LTYuNSAxNS45LTEzLjUgMjAtMjEuMyAyLjktNS40IDQuNS0xMS4zIDQuOS0xNy40cy0uNi0xMi4yLTIuOC0xNy44Yy02LjItMTYuMy0yMS42LTI2LjQtNDAuMy0yNi40LTMuOSAwLTcuOSAuNC0xMS43IDEuMi0xIC4yLTIuMSAuNS0zLjEgLjcgLjItMTEuMi0uMS0yMi45LTEuMS0zNC41LTMuNS00MC44LTE3LjgtNjIuMS0zMi43LTc5LjItOS41LTEwLjctMjAuNy0xOS43LTMzLjItMjYuNy0yMi42LTEyLjktNDguMi0xOS40LTc2LjEtMTkuNHMtNTMuNCA2LjUtNzYgMTkuNGMtMTIuNSA3LTIzLjcgMTYuMS0zMy4zIDI2LjgtMTQuOSAxNy0yOS4yIDM4LjQtMzIuNyA3OS4yLTEgMTEuNi0xLjIgMjMuNC0xLjEgMzQuNS0xLS4zLTItLjUtMy4xLS43LTMuOS0uOC03LjgtMS4yLTExLjctMS4yLTE4LjcgMC0zNC4xIDEwLjEtNDAuMyAyNi40LTIuMiA1LjctMy4yIDExLjgtMi44IDE3LjhzMiAxMiA0LjkgMTcuNGM0LjEgNy44IDEwLjcgMTQuNyAyMCAyMS4zIDIuNSAxLjcgNi40IDQuMiAxMS4yIDcuNCAyLjYgMS43IDYuNSA0LjIgMTAuMyA2LjcgMS4zIC45IDIuNCAyIDMuMyAzLjMgLjggMS42IC44IDMuNC0uNCA2LjYtMi41IDUuNS01LjUgMTAuOC04LjkgMTUuOC0xMi4xIDE3LjctMjkuNCAzMi42LTUxLjQgNDQuNi0xMS43IDYuMi0yMy45IDEwLjMtMjkgMjQuMy0zLjkgMTAuNS0xLjMgMjIuNSA4LjUgMzIuNiAzLjYgMy44IDcuOCA2LjkgMTIuNCA5LjQgOS42IDUuMyAxOS44IDkuMyAzMC4zIDEyLjEgMi4yIC42IDQuMyAxLjUgNi4xIDIuNyAzLjYgMy4xIDMuMSA3LjkgNy44IDE0LjggMi40IDMuNiA1LjQgNi43IDkgOS4xIDEwIDYuOSAyMS4zIDcuNCAzMy4yIDcuOCAxMC44IC40IDIzIC45IDM2LjkgNS41IDUuOCAxLjkgMTEuOCA1LjYgMTguNyA5LjkgMTYuNyAxMC4zIDM5LjYgMjQuMyA3Ny44IDI0LjNzNjEuMy0xNC4xIDc4LjEtMjQuNGM2LjktNC4yIDEyLjktNy45IDE4LjUtOS44IDEzLjktNC42IDI2LjItNS4xIDM2LjktNS41IDExLjktLjUgMjMuMi0uOSAzMy4yLTcuOCA0LjItMi45IDcuNy02LjcgMTAuMi0xMS4yIDMuNC01LjggMy40LTkuOSA2LjYtMTIuOCAxLjgtMS4yIDMuNy0yLjEgNS44LTIuNiAxMC43LTIuOCAyMS02LjkgMzAuOC0xMi4yIDQuOS0yLjYgOS4zLTYuMSAxMy0xMC4ybC4xLS4yYzkuMi05LjkgMTEuNS0yMS41IDcuOC0zMS44em0tMzQgMTguM2MtMjAuNyAxMS41LTM0LjUgMTAuMi00NS4zIDE3LjEtOS4xIDUuOS0zLjcgMTguNS0xMC4zIDIzLjEtOC4xIDUuNi0zMi4yLS40LTYzLjIgOS45LTI1LjYgOC41LTQyIDMyLjgtODggMzIuOHMtNjItMjQuMy04OC4xLTMyLjljLTMxLTEwLjMtNTUuMS00LjItNjMuMi05LjktNi42LTQuNi0xLjItMTcuMi0xMC4zLTIzLjEtMTAuNy02LjktMjQuNS01LjctNDUuMy0xNy4xLTEzLjItNy4zLTUuNy0xMS44LTEuMy0xMy45IDc1LjEtMzYuNCA4Ny4xLTkyLjYgODcuNy05Ni43IC42LTUgMS40LTktNC4yLTE0LjEtNS40LTUtMjkuMi0xOS43LTM1LjgtMjQuMy0xMC45LTcuNi0xNS43LTE1LjMtMTIuMi0yNC42IDIuNS02LjUgOC41LTguOSAxNC45LTguOSAyIDAgNCAuMiA2IC43IDEyIDIuNiAyMy43IDguNiAzMC40IDEwLjIgLjggLjIgMS42IC4zIDIuNSAuMyAzLjYgMCA0LjktMS44IDQuNi01LjktLjgtMTMuMS0yLjYtMzguNy0uNi02Mi42IDIuOC0zMi45IDEzLjQtNDkuMiAyNi02My42IDYuMS02LjkgMzQuNS0zNyA4OC45LTM3UzMzOSA3NC4yIDM0NSA4MS4xYzEyLjYgMTQuNCAyMy4yIDMwLjcgMjYgNjMuNiAyLjEgMjMuOSAuMyA0OS41LS42IDYyLjYtLjMgNC4zIDEgNS45IDQuNiA1LjkgLjggMCAxLjctLjEgMi41LS4zIDYuNy0xLjYgMTguNC03LjYgMzAuNC0xMC4yIDItLjQgNC0uNyA2LS43IDYuNCAwIDEyLjQgMi41IDE0LjkgOC45IDMuNSA5LjQtMS4yIDE3LTEyLjIgMjQuNi02LjYgNC42LTMwLjQgMTkuMy0zNS44IDI0LjMtNS42IDUuMS00LjggOS4xLTQuMiAxNC4yIC41IDQuMiAxMi41IDYwLjQgODcuNyA5Ni43IDQuNCAyLjIgMTEuOSA2LjctMS4zIDE0LjF6Il19LFN5dD1OdWUsenl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdhbGFjdGljLXNlbmF0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjUwZCIsIk0yNDkuOSAzMy41bDAgMjYuMWMtMTMuNiAyMC42LTIzLjkgMTA4LjYtMjQuNSAyMTUuMyAxMS43LTE1LjYgMTkuMS0zMy4zIDE5LjEtNDguMmwwLTE2LjljMC01LjMgLjgtMTAuNSAyLjItMTUuNiAuNi0yLjEgMS40LTQuMSAyLjYtNS44czMuNC0zLjggNi43LTMuOCA1LjQgMi4xIDYuNyAzLjhjMS4yIDEuOCAyIDMuNyAyLjYgNS44IDEuNCA1LjEgMi4yIDEwLjMgMi4yIDE1LjZsMCAxNi45YzAgMTQuOSA3LjQgMzIuNiAxOS4xIDQ4LjItLjYtMTA2LjgtMTAuOS0xOTQuNy0yNC41LTIxNS4zbDAtMjYuMS0xMi4zIDB6TTIyMy41IDE4MS4zYy05LjUgMi4xLTE4LjcgNS4yLTI3LjUgOS4xIDguOSAxNi4xIDkuOCAzMi42IDEuNyAzNy4zLTggNC42LTIxLjgtNC4yLTMxLjQtMTkuOC0xMS42IDguOC0yMS45IDE5LjMtMzAuNiAzMS4xIDE0LjcgOS42IDIyLjkgMjIuOSAxOC4zIDMwLjctNC41IDcuNy0yMCA3LjEtMzUuNS0xLTUuOCAxMy4yLTkuNyAyNy41LTExLjYgNDIuNCA5LjcgLjIgMTguNyAyLjQgMjYuMiA2IDE3LjgtLjMgMzIuOC0yIDQwLjUtNC4yIDUuNi0yNi40IDIzLTQ4LjIgNDYuMy01OS41IC43LTI1LjYgMS45LTQ5LjcgMy41LTcyLjF6bTY1IDBjMS42IDIyLjQgMi43IDQ2LjUgMy41IDcyLjEgMjMuMyAxMS4zIDQwLjggMzMuMiA0Ni4zIDU5LjUgNy43IDIuMyAyMi43IDMuOSA0MC41IDQuMiA3LjUtMy43IDE2LjUtNS44IDI2LjItNi0xLjktMTQuOS01LjktMjkuMi0xMS43LTQyLjQtMTUuNCA4LjEtMzAuOSA4LjctMzUuNSAxLTQuNi03LjcgMy42LTIxLjEgMTguMy0zMC43LTguNy0xMS44LTE5LTIyLjMtMzAuNi0zMS4xLTkuNSAxNS42LTIzLjQgMjQuNC0zMS40IDE5LjgtOC4xLTQuNi03LjItMjEuMiAxLjctMzcuMy04LjgtMy45LTE4LTctMjcuNC05LjF6TTI1NiAxODkuOWMtMy4yIDAtNS45IDguOC02LjEgMTkuOWwwIDAgMCAxNi45YzAgNDEuNC00OSA5NS05My41IDk1LTUyIDAtMTIyLjgtMS40LTE1Ni40IDI5LjJsMCAyLjVjOS40IDE3LjEgMjAuNiAzMy4yIDMzLjIgNDggMTIuNS0yMS4xIDUxLjYtNDEgMTA4LTQxLjQgNDUuNyAxIDc5IDIwLjMgOTAuOCA0MC45IDAgMCAwIDAgMCAuMSA3LjcgMi4xIDE1LjggMy4yIDI0IDMuMiA4LjIgMCAxNi40LTEuMSAyNC0zLjIgMCAwIDAgMCAwLS4xIDExLjctMjAuNSA0NS4xLTM5LjggOTAuOC00MC45IDU2LjQgLjQgOTUuNSAyMC4zIDEwOCA0MS40IDEyLjYtMTQuOCAyMy44LTMwLjkgMzMuMi00OGwwLTIuNWMtMzMuNi0zMC42LTEwNC40LTI5LjItMTU2LjQtMjkuMi00NC41IDAtOTMuNS01My42LTkzLjUtOTVsMC0xNi45LS4xIDBjLS4yLTExLjEtMi45LTE5LjktNi4xLTE5Ljl6bTAgMTc3LjlhNDAuNiA0MC42IDAgMSAxIDAtODEuMyA0MC42IDQwLjYgMCAxIDEgMCA4MS4zem0wLTczLjZhMzMgMzMgMCAxIDAgMCA2NS45IDMzIDMzIDAgMSAwIDAtNjUuOXptMCA1OS44YTI2LjggMjYuOCAwIDEgMSAwLTUzLjYgMjYuOCAyNi44IDAgMSAxIDAgNTMuNnptLTExNC44IDEzYy0xMC4yIC4xLTIxLjYgLjQtMzAuNSAxLjcgLjQgNC40IDEuNSAxOC42IDcuMSAyOS44IDkuMS0yLjYgMTguNC0zLjkgMjcuNi0zLjkgNDEuMyAuOSA3MS41IDM0LjQgNzguMyA3NC41bC4xIDQuN2MxMC40IDEuOSAyMS4yIDIuOSAzMi4yIDIuOSAxMSAwIDIxLjgtMSAzMi4yLTIuOWwuMS00LjdjNi44LTQwLjEgMzctNzMuNSA3OC4zLTc0LjUgOS4zIDAgMTguNSAxLjMgMjcuNiAzLjkgNS42LTExLjEgNi43LTI1LjMgNy4xLTI5LjgtOC45LTEuMy0yMC4zLTEuNi0zMC41LTEuNy0xOC44IC40LTM1LjIgNC4yLTQ4LjYgOS43LTEyLjUgMTYtMjkuMiAzMC00OS42IDMzLjEtLjEgMC0uMiAwLS4zIDAgMCAwLS4xIDAtLjIgLjEtNS4yIDEuMS0xMC42IDEuNi0xNi4yIDEuNi01LjUgMC0xMC45LS41LTE2LjItMS42LS4xIDAtLjEgMC0uMi0uMS0uMSAwLS4yIDAtLjMgMC0yMC40LTMtMzctMTctNDkuNi0zMy4xLTEzLjQtNS41LTI5LjktOS4yLTQ4LjYtOS43eiJdfSxDeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhvZW5peC1mcmFtZXdvcmsiLGljb246WzY0MCw1MTIsW10sImYzZGMiLCJNMjEyLjkgMzQ0LjNjMy44LS4xIDIyLjgtMS40IDI1LjYtMi4yLTIuNC0yLjYtNDMuNi0xLTY4LTQ5LjYtNC4zLTguNi03LjUtMTcuNi02LjQtMjcuNiAyLjktMjUuNSAzMi45LTMwIDUyLTE4LjUgMzYgMjEuNiA2My4zIDkxLjMgMTEzLjcgOTcuNSAzNyA0LjUgODQuNi0xNyAxMDguMi00NS40LS42LS4xLS44LS4yLTEtLjEtLjQgLjEtLjggLjItMS4xIC4zLTMzLjMgMTIuMS05NC4zIDkuNy0xMzQuNy0xNC44LTM3LjYtMjIuOC01My4xLTU4LjctNTEuOC03NC42IDEuOC0yMS4zIDIyLjktMjMuMiAzNS45LTE5LjYgMTQuNCAzLjkgMjQuNCAxNy42IDM4LjkgMjcuNCAxNS42IDEwLjQgMzIuOSAxMy43IDUxLjMgMTAuMyAxNC45LTIuNyAzNC40LTEyLjMgMzYuNS0xNC41LTEuMS0uMS0xLjgtLjEtMi41LS4yLTYuMi0uNi0xMi40LS44LTE4LjUtMS43LTExMS4yLTE2LjUtMTI4LjktMTYzLjYtMjUyLjUtMTczLjEtNDQuMy0zLjQtOTkuNCA4LjEtMTM2LjMgMzUtLjggLjYtMS41IDEuMi0yLjIgMS44IC4xIC4yIC4xIC4zIC4yIC41IC44IDAgMS42LS4xIDIuNC0uMiA2LjMtMSAxMi41LS44IDE4LjcgLjMgMjMuOCA0LjMgNDcuNyAyMy4xIDU1LjkgNzYuNSA1LjMgMzQuMy0uNyA1MC44IDggODYuMSAxOSA3Ny4xIDkxIDEwNy42IDEyNy43IDEwNi40ek03NS4zIDY0LjljLS45LTEtLjktMS4yLTEuMy0yIDEyLjEtMi42IDI0LjItNC4xIDM2LjYtNC44LTEuMSAxNC43LTIyLjIgMjEuMy0zNS4zIDYuOHpNMjcyLjIgNDE1LjRjLTQyLjggMS4yLTkyLTI2LjctMTIzLjUtNjEuNC00LjYtNS0xNi44LTIwLjItMTguNi0yMy40bC40LS40YzYuNiA0LjEgMjUuNyAxOC42IDU0LjggMjcgMjQuMiA3IDQ4LjEgNi4zIDcxLjYtMy4zIDIyLjctOS4zIDQxLS41IDQzLjEgMi45LTE4LjUgMy44LTIwLjEgNC40LTI0IDcuOS01LjEgNC40LTQuNiAxMS43IDcgMTcuMiAyNi4yIDEyLjQgNjMtMi44IDk3LjIgMjUuNCAyLjQgMiA4LjEgNy44IDEwLjEgMTAuNy0uMSAuMi0uMyAuMy0uNCAuNS00LjgtMS41LTE2LjQtNy41LTQwLjItOS4zLTI0LjctMi00Ni4zIDUuMy03Ny41IDYuMnpNNDQ3IDE2My40YzE2LjQtNS4yIDQxLjMtMTMuNCA2Ni41LTMuMyAxNi4xIDYuNSAyNi4yIDE4LjcgMzIuMSAzNC42IDMuNSA5LjQgNS4xIDE5LjcgNS4xIDI4LjctLjIgMC0uNCAwLS42IC4xLS4yLS40LS40LS45LS41LTEuMy01LTIyLTI5LjktNDMuOC02Ny42LTI5LjktNTAuMiAxOC42LTEzMC40IDkuNy0xNzYuOS00OC0uNy0uOS0yLjQtMS43LTEuMy0zLjIgLjEtLjIgMi4xIC42IDMgMS4zIDE4LjEgMTMuNCAzOC4zIDIxLjkgNjAuMyAyNi4yIDMwLjUgNi4xIDU0LjYgMi45IDc5LjktNS4yek01NDkuNyAyODAuOWMtMzIuNCAuMi0zMy44IDUwLjEtMTAzLjYgNjQuNC0xOC4yIDMuNy0zOC43IDQuNi00NC45IDQuMmwwLS40YzIuOC0xLjUgMTQuNy0yLjYgMjkuNy0xNi42IDcuOS03LjMgMTUuMy0xNS4xIDIyLjgtMjIuOSAxOS41LTIwLjIgNDEuNC00Mi4yIDgxLjktMzkgMjMuMSAxLjggMjkuMyA4LjIgMzYuMSAxMi43IC4zIC4yIC40IC41IC43IC45LS41IDAtLjcgLjEtLjkgMC03LTIuNy0xNC4zLTMuMy0yMS44LTMuM3ptLTEyLjMtMjQuMWMtLjEgLjItLjEgLjQtLjIgLjYtMjguOS00LjQtNDgtNy45LTY4LjUgNC0xNyA5LjktMzEuNCAyMC41LTYyIDI0LjQtMjcuMSAzLjQtNDUuMSAyLjQtNjYuMS04LS4zLS4yLS42LS40LTEtLjYgMC0uMiAuMS0uMyAuMS0uNSAyNC45IDMuOCAzNi40IDUuMSA1NS41LTUuOCAyMi4zLTEyLjkgNDAuMS0yNi42IDcxLjMtMzEgMjkuNi00LjEgNTEuMyAyLjUgNzAuOSAxNi45ek0yNjguNiA5Ny4zYy0uNi0uNi0xLjEtMS4yLTIuMS0yLjMgNy42IDAgMjkuNy0xLjIgNTMuNCA4LjQgMTkuNyA4IDMyLjIgMjEgNTAuMiAzMi45IDExLjEgNy4zIDIzLjQgOS4zIDM2LjQgOC4xIDQuMy0uNCA4LjUtMS4yIDEyLjgtMS43IC40LS4xIC45IDAgMS41IC4zLS42IC40LTEuMiAuOS0xLjggMS4yLTguMSA0LTE2LjcgNi4zLTI1LjYgNy4xLTI2LjEgMi42LTUwLjMtMy43LTczLjQtMTUuNC0xOS4zLTkuOS0zNi40LTIyLjktNTEuNC0zOC42ek02NDAgMzM1LjdjLTMuNSAzLjEtMjIuNyAxMS42LTQyLjcgNS4zLTEyLjMtMy45LTE5LjUtMTQuOS0zMS42LTI0LjEtMTAtNy42LTIwLjktNy45LTI4LjEtOC40IC42LS44IC45LTEuMiAxLjItMS40IDE0LjgtOS4yIDMwLjUtMTIuMiA0Ny4zLTYuNSAxMi41IDQuMiAxOS4yIDEzLjUgMzAuNCAyNC4yIDEwLjggMTAuNCAyMSA5LjkgMjMuMSAxMC41IC4xLS4xIC4yIDAgLjQgLjR6bS0yMTIuNSAxMzdjMi4yIDEuMiAxLjYgMS41IDEuNSAyLTE4LjUtMS40LTMzLjktNy42LTQ2LjgtMjIuMi0yMS44LTI0LjctNDEuNy0yNy45LTQ4LjYtMjkuNyAuNS0uMiAuOC0uNCAxLjEtLjQgMTMuMSAuMSAyNi4xIC43IDM4LjkgMy45IDI1LjMgNi40IDM1IDI1LjQgNDEuNiAzNS4zIDMuMiA0LjggNy4zIDguMyAxMi4zIDExLjF6Il19LF95dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXQiLGljb246WzUxMiw1MTIsW10sImYxZDMiLCJNMjE2LjMgMTU4LjRsLTc5LjMgMGMtNDAtMTAuNS0xMzAuNS03LjgtMTMwLjUgNzQuOCAwIDMwLjEgMTUgNTEuMiAzNSA2MS0yNS4xIDIzLTM3IDMzLjgtMzcgNDkuMiAwIDExIDQuNSAyMS4xIDE3LjkgMjYuOC0xNC4zIDEzLjQtMjIuNCAyMy4xLTIyLjQgNDEuNCAwIDMyLjEgMjggNTAuOCAxMDEuNiA1MC44IDcwLjggMCAxMTEuOC0yNi40IDExMS44LTczLjIgMC01OC43LTQ1LjItNTYuNS0xNTEuNi02M2wxMy40LTIxLjZjMjcuMyA3LjYgMTE4LjcgMTAgMTE4LjctNjcuOSAwLTE4LjctNy43LTMxLjctMTUtNDEuMWwzNy40LTIuOCAwLTM0LjV6TTE1Mi45IDQwMC4zYzAgMzIuMS0xMDQuOSAzMi4xLTEwNC45IDIuNCAwLTguMSA1LjMtMTUgMTAuNi0yMS41IDc3LjcgNS4zIDk0LjMgMy40IDk0LjMgMTkuMXpNMTAyLjEgMjY1LjdjLTUyLjggMC01MC41LTcxLjIgMS4yLTcxLjIgNDkuNSAwIDUwLjggNzEuMi0xLjIgNzEuMnpNMjM1LjQgMzY2LjJsMC0zMi4xYzI2LjctMy43IDI3LjItMiAyNy4yLTExbDAtMTE5LjVjMC04LjUtMi4xLTcuNC0yNy4yLTE2LjNsNC41LTMyLjkgODQuMiAwIDAgMTY4LjdjMCA2LjUgLjQgNy4zIDYuNSA4LjFsMjAuNyAyLjggMCAzMi4xLTExNS45IDB6bTUyLjUtMjQ0LjNjLTIzLjIgMC0zNi42LTEzLjQtMzYuNi0zNi42czEzLjQtMzUuOCAzNi42LTM1LjhjMjMuNiAwIDM3IDEyLjYgMzcgMzUuOHMtMTMuNCAzNi42LTM3IDM2LjZ6TTUxMiAzNTAuNWMtMTcuNSA4LjUtNDMuMSAxNi4zLTY2LjMgMTYuMy00OC40IDAtNjYuNy0xOS41LTY2LjctNjUuNWwwLTEwNi41YzAtNS40IDEtNC4xLTMxLjctNC4xbDAtMzYuMmMzNS44LTQuMSA1MC0yMiA1NC41LTY2LjNsMzguNiAwYzAgNjUuOC0xLjMgNjEuOCAzLjMgNjEuOGw1Ny4zIDAgMCA0MC42LTYwLjYgMCAwIDk3LjFjMCA2LjktNC45IDUxLjQgNjAuNiAyNi44bDExIDM1Ljh6Il19LFR5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcHRpbi1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmMjNjIiwiTTU3Mi44IDQyMS40YzUuNi05LjUgNC43LTE1LjItNS40LTExLjYtMy00LjktNy05LjUtMTEuMS0xMy44IDIuOS05LjctLjctMTQuMi0xMC44LTkuMi00LjYtMy4yLTEwLjMtNi41LTE1LjktOS4yIDAtMTUuMS0xMS42LTExLjYtMTcuNi01LjctMTAuNC0xLjUtMTguNy0uMy0yNi44IDUuNyAuMy02LjUgLjMtMTMgLjMtMTkuNyAxMi42IDAgNDAuMi0xMSA0NS45LTM2LjIgMS40LTYuOCAxLjYtMTMuOC0uMy0yMS45LTMtMTMuNS0xNC4zLTIxLjMtMjUuMS0yNS43LS44LTUuOS03LjYtMTQuMy0xNC45LTE1LjlzLTEyLjQgNC45LTE0LjEgMTAuM2MtOC41IDAtMTkuMiAyLjgtMjEuMSA4LjQtNS40LS41LTExLjEtMS40LTE2LjgtMS45IDIuNy0xLjkgNS40LTMuNSA4LjQtNC42IDUuNC05LjIgMTQuNi0xMS40IDI1LjctMTEuNmwwLTIuOGMxOS41LS41IDQzLTUuOSA1My44LTE4LjEgMTIuNy0xMy44IDE0LjYtMzcuMyAxMi40LTU1LjEtMi40LTE3LjMtOS43LTM3LjYtMjQuNi00OC4xLTguNC01LjktMjEuNi0uOC0yMi43IDkuNS0yLjIgMTkuNiAxLjIgMzAtMzguNiAyNS4xLTEwLjMtMjMuOC0yNC42LTQ0LjYtNDIuNy02MC02OS42LTU5LjctMTY3LjctNTMuOC0yNDQuMi0zNy42IDE5LjcgNC42IDQxLjEgOC42IDU5LjcgMTYuNS0yNi4yIDIuNC01Mi43IDExLjMtNzYuMiAyMy4yLTMyLjggMTctNDQgMjkuOS01Ni43IDQyLjQgMTQuOS0yLjIgMjguOS01LjEgNDMuOC0zLjgtOS43IDUuNC0xOC40IDEyLjItMjYuNSAyMC0yNS44IC45LTIzLjgtNS4zLTI2LjItMjUuOS0xLjEtMTAuNS0xNC4zLTE1LjQtMjIuNy05LjctMjguMSAxOS45LTMzLjUgNzkuOS0xMi4yIDEwMy41IDEwLjggMTIuMiAzNS4xIDE3LjMgNTQuOSAxNy44LS4zIDEuMS0uMyAxLjktLjMgMi43IDEwLjggLjUgMTkuNSAyLjcgMjQuNiAxMS42IDMgMS4xIDUuNyAyLjcgOC4xIDQuNi01LjQgLjUtMTEuMSAxLjQtMTYuNSAxLjktMy4zLTYuNi0xMy43LTguMS0yMS4xLTguMS0xLjYtNS43LTYuNS0xMi4yLTE0LjEtMTAuMy02LjggMS45LTE0LjEgMTAtMTQuOSAxNS45LTIyLjUgOS41LTMwLjEgMjYuOC0yNS4xIDQ3LjYgNS4zIDI0LjggMzMgMzYuMiA0NS45IDM2LjJsMCAxOS43Yy02LjYtNS0xNC4zLTcuNS0yNi44LTUuNy01LjUtNS41LTE3LjMtMTAuMS0xNy4zIDUuNy01LjkgMi43LTExLjQgNS45LTE1LjkgOS4yLTkuOC00LjktMTMuNi0xLjctMTEuMSA5LjItNC4xIDQuMy03LjggOC42LTExLjEgMTMuOC0xMC4yLTMuNy0xMSAyLjItNS40IDExLjYtMS4xIDMuNS0xLjYgNy0xLjkgMTAuOC0uNSAzMS42IDQ0LjYgNjQgNzMuNSA2NS4xIDE3LjMgLjUgMzQuNi04LjQgNDMtMjMuNSAxMTMuMiA0LjkgMjI2LjcgNC4xIDM0MC4yIDAgOC4xIDE1LjEgMjUuNCAyNC4zIDQyLjcgMjMuNSAyOS4yLTEuMSA3NC4zLTMzLjUgNzMuNS02NS4xIC4yLTMuNy0uNy03LjItMS43LTEwLjd6TTQ5OSAxNjcuNGMxLjEtMyAyLjQtOC40IDIuNC0xNC42IDAtNS45IDYuOC04LjEgMTQuMS0uOCAxMS4xIDExLjYgMTQuOSA0MC41IDEzLjggNTEuMS00LjEtMTMuNi0xMy0yOS0zMC4zLTM1Ljd6bS00LjYgNi43YzE5LjUgNi4yIDI4LjYgMjcuNiAyOS43IDQ4LjktMS4xIDIuNy0zIDUuNC00LjkgNy42LTUuNyA1LjktMTUuNCAxMC0yNi4yIDEyLjIgNC4zLTIxLjMgLjMtNDcuMy0xMi43LTYzIDQuOS0uOCAxMC45LTIuNCAxNC4xLTUuN3ptLTI0LjEgNi44YzEzLjggMTEuOSAyMCAzOS4yIDE0LjEgNjMuNS00LjEgLjUtOC4xIC44LTExLjYgLjgtMS45LTIxLjktNi44LTQ0LTE0LjMtNjQuNiAzLjcgLjMgOC4xIC4zIDExLjggLjN6TTQ3LjcgMjAzYy0xLjEtMTAuNSAyLjQtMzkuNSAxMy44LTUxLjEgNy03LjMgMTQuMS01LjEgMTQuMSAuOCAwIDYuMiAxLjQgMTEuNiAyLjQgMTQuNi0xNy4zIDYuOC0yNi4yIDIyLjItMzAuMyAzNS43em05LjcgMjcuNmMtMS45LTIuMi0zLjUtNC45LTQuOS03LjYgMS40LTIxLjMgMTAuMy00Mi43IDI5LjctNDguOSAzLjIgMy4yIDkuMiA0LjkgMTQuMSA1LjctMTMgMTUuNy0xNyA0MS42LTEyLjcgNjMtMTAuOC0yLjItMjAuNS02LTI2LjItMTIuMnptNDcuOSAxNC42Yy00LjEgMC04LjEtLjMtMTIuNy0uOC00LjYtMTguNi0xLjktMzguOSA1LjQtNTNsMCAuMyAxMi4yLTUuMWM0LjktMS45IDkuNy0zLjggMTQuOS00LjktMTAuNyAxOS43LTE3LjQgNDEuMy0xOS44IDYzLjV6bTE4NC0xMC41YTc2LjEgNzYuMSAwIDEgMSAwLTE1Mi4yIDc2LjEgNzYuMSAwIDEgMSAwIDE1Mi4yem0xMTUuNiAyMi4xYy0uMyAxNy44LTcgNDguOS0yMyA1Ny0xMy4yIDYuNi02LjUtNy41LTE2LjUtNTguMSAxMy4zIC4zIDI2LjYgLjMgMzkuNSAxLjF6bS01NC0xLjZjLjggNC45IDMuOCA0MC4zLTEuNiA0MS45LTExLjYgMy41LTQwIDQuMy01MS4xLTEuMS00LjEtMy00LjYtMzUuOS00LjMtNDEuMWwwIC4zYzE4LjktLjMgMzguMS0uMyA1NyAwek0yNzguNSAzMDljLTEzIDMuNS00MS42IDQuMS01NC42LTEuNi02LjUtMi43LTMuOC00Mi40LTEuOS01MS42IDE5LjItLjUgMzguNC0uNSA1Ny44LS44bDAgLjNjMS4xIDguMyAzLjMgNTEuMi0xLjMgNTMuN3pNMTcyIDI1Ny45YzEyLjItLjggMjQuNi0xLjQgMzYuOC0xLjYtMi40IDE1LjQtMyA0My41LTQuOSA1Mi4yLTEuMSA2LjgtNC4zIDYuOC05LjcgNC4zLTIxLjktOS44LTI3LjYtMzUuMi0yMi4yLTU0Ljl6bS0zNS40IDMxLjNjNy44LTEuMSAxNS43LTEuOSAyMy41LTIuNyAxLjYgNi4yIDMuOCAxMS45IDcgMTcuNiAxMCAxNyA0NCAzNS43IDQ1LjEgNyA2LjIgMTQuOSA0MC44IDEyLjIgNTQuOSAxMC44IDE1LjctMS40IDIzLjgtMS40IDI2LjgtMTQuMyAxMi40IDQuMyAzMC44IDQuMSA0NCAzIDExLjMtLjggMjAuOC0uNSAyNC42LTguOSAxLjEgNS4xIDEuOSAxMS42IDQuNiAxNi44IDEwLjggMjEuMyAzNy4zIDEuNCA0Ni44LTMxLjYgOC42IC44IDE3LjYgMS45IDI2LjUgMi43LS40IDEuMy0zLjggNy4zIDcuMyAxMS42LTQ3LjYgNDctOTUuNyA4Ny44LTE2My4yIDEwNy02My4yLTIwLjgtMTEyLjEtNTkuNS0xNTUuOS0xMDYuNSA5LjYtMy40IDEwLjQtOC44IDgtMTIuNXpNMTE1IDQ2MS43Yy0zLjggMTcuOC0yMS45IDI5LjctMzkuNyAyOC45LTE5LjItLjgtNDYuNS0xNy01OS4yLTM2LjUtMi43LTMxLjEgNDMuOC02MS4zIDY2LjItNTQuNiAxNC45IDQuMyAyNy44IDMwLjggMzMuNSA1NCAwIDMtLjMgNS43LS44IDguMnptLTguNy02NmMtLjUtMTMuNS0uNS0yNy0uMy00MC41bC4zIDBjMi43LTEuNiA1LjctMy44IDcuOC02LjUgNi41LTEuNiAxMy01LjEgMTUuMS05LjIgMy4zLTcuMS03LTcuNS01LjQtMTIuNCAyLjctMS4xIDUuNy0yLjIgNy44LTMuNSAyOS4yIDI5LjIgNTguNiA1Ni41IDk3LjMgNzctMzYuOCAxMS4zLTcyLjQgMjcuNi0xMDUuOSA0Ny0xLjItMTguNi03LjctMzUuOS0xNi43LTUxLjl6bTMzNy42IDY0LjZjLTEwMyAzLjUtMjA2LjIgNC4xLTMwOS40IDAgMCAuMyAwIC4zLS4zIC4zbDAtLjMgLjMgMGMzNS4xLTIxLjYgNzIuMi0zOS4yIDExMi40LTUwLjggMTEuNiA1LjEgMjMgOS41IDM0LjkgMTMuMiAyLjIgLjggMi4yIC44IDQuMyAwIDE0LjMtNC4xIDI4LjQtOS4yIDQyLjItMTUuNCA0MS41IDExLjcgNzguOCAzMS43IDExNS42IDUzem0xMC41LTEyLjRjLTM1LjktMTkuNS03My0zNS45LTExMS45LTQ3LjYgMzguMS0yMCA3MS45LTQ3LjMgMTAzLjUtNzYuNyAyLjIgMS40IDQuNiAyLjQgNy42IDMuMiAwIC44IC4zIDEuOSAuNSAyLjQtNC42IDIuNy03LjggNi4yLTUuOSAxMC4zIDIuMiAzLjggOC42IDcuNiAxNS4xIDguOSAyLjQgMi43IDUuMSA1LjEgOC4xIDYuOCAwIDEzLjgtLjMgMjcuNi0uOCA0MS4zbC4zLS4zYy05LjMgMTUuOS0xNS41IDM3LTE2LjUgNTEuN3ptMTA1LjkgNi4yYy0xMi43IDE5LjUtNDAgMzUuNy01OS4yIDM2LjUtMTkuMyAuOS00MC41LTEzLjItNDAuNS0zNyA1LjctMjMuMiAxOC45LTQ5LjcgMzMuNS01NCAyMi43LTYuOSA2OS4yIDIzLjQgNjYuMiA1NC41ek0zNzMuMSA3NS4yYy0zLjgtNzIuMS0xMDAuOC03OS43LTEyNi0yMy41IDQ0LjYtMjQuMyA5MC4zLTE1LjcgMTI2IDIzLjV6TTc1IDQwNy4xYy0xNS43IDEuNi00OS41IDI1LjQtNDkuNSA0My4yIDAgMTEuNiAxNS43IDE5LjUgMzIuMiAxNC45IDEyLjItMy4yIDMxLjEtMTcuNiAzNS45LTI3LjMgNi0xMS42LTMuNy0zMi43LTE4LjYtMzAuOHpNMjkwLjkgMjMwLjljMjguNiAwIDUxLjktMjEuNiA1MS45LTQ4LjQgMC0zNi4xLTQwLjUtNTguMS03Mi4yLTQ0LjMgOS41IDMgMTYuNSAxMS42IDE2LjUgMjEuNiAwIDIzLjMtMzMuMyAzMi00Ni41IDExLjMtNy4zIDM0LjEgMTkuNCA1OS44IDUwLjMgNTkuOHpNNjguMiA0NzQuMWMuNSA2LjUgMTIuMiAxMi43IDIxLjYgOS41IDYuOC0yLjcgMTQuNi0xMC41IDE3LjMtMTYuMiAzLTctMS4xLTIwLTkuNy0xOC40LTguOSAxLjYtMjkuNyAxNi43LTI5LjIgMjUuMXptNDMzLjItNjdjLTE0LjktMS45LTI0LjYgMTkuMi0xOC45IDMwLjggNC45IDkuNyAyNC4xIDI0LjEgMzYuMiAyNy4zIDE2LjUgNC42IDMyLjItMy4yIDMyLjItMTQuOSAwLTE3LjgtMzMuOC00MS42LTQ5LjUtNDMuMnpNNDc5IDQ0OWMtOC40LTEuNi0xMi40IDExLjMtOS41IDE4LjQgMi40IDUuNyAxMC4zIDEzLjUgMTcuMyAxNi4yIDkuMiAzLjIgMjEuMS0zIDIxLjMtOS41IC45LTguNC0yMC4yLTIzLjUtMjkuMS0yNS4xeiJdfSxMeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamVua2lucyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiNiIsIk00NTUuNCA0MjVjLTEuNC0xMS4yLTE5LTIzLjEtMjguMi0zMS45LTUuMS01LTI5LTIzLjEtMzAuNC0yOS45LTEuNC02LjYgOS43LTIxLjUgMTMuMy0yOC45IDUuMS0xMC43IDguOC0yMy43IDExLjMtMzIuNiAxOC44LTY2LjEgMjAuNy0xNTYuOS02LjItMjExLjItMTAuMi0yMC42LTM4LjYtNDktNTYuNC02Mi41LTQyLTMxLjctMTE5LjYtMzUuMy0xNzAuMS0xNi42LTE0LjEgNS4yLTI3LjggOS44LTQwLjEgMTcuMS0zMy4xIDE5LjQtNjguMyAzMi41LTc4LjEgNzEuNi0yNC4yIDEwLjgtMzEuNSA0MS44LTMwLjMgNzcuOCAuMiA3IDQuMSAxNS44IDIuNyAyMi40LS43IDMuMy01LjIgNy42LTYuMSA5LjgtMTEuNiAyNy43LTIuMyA2NCAxMS4xIDgzLjcgOC4xIDExLjkgMjEuNSAyMi40IDM5LjIgMjUuMiAuNyAxMC42IDMuMyAxOS43IDguMiAzMC40IDMuMSA2LjggMTQuNyAxOSAxMC40IDI3LjctMi4yIDQuNC0yMSAxMy44LTI3LjMgMTcuNi0yMS4xIDEyLjUtMzYuNCAyMC4zLTU1LjkgMzQuMy0xMi42IDktMzIuMyAxMC4yLTI5LjIgMzEuMSAyLjEgMTQuMSAxMC4xIDMxLjYgMTQuNyA0NS44IC43IDIgMS40IDQuMSAyLjEgNmw0MjIgMGM0LjktMTUuMyA5LjctMzAuOSAxNC42LTQ3LjIgMy40LTExLjQgMTAuMi0yNy44IDguNy0zOS43ek0xNzQuMiAzMy43YzEuOC0uNSAzLjQgLjcgNC45IDIuNC0uMiA1LjItNS40IDUuMS04LjkgNi44LTUuNCA2LjctMTMuNCA5LjgtMjAgMTcuMi02LjggNy41LTE0LjQgMjcuNy0yMy40IDMwLTQuNSAxLjEtOS43LS44LTEzLjYtLjUtMTAuNCAuNy0xNy43IDYtMjguMyA3LjUgMTMuNi0yOS45IDU2LjEtNTQgODkuMy02My40ek02OS40IDEyNy4zYzEzLjUtMTQuOSAzMi4xLTI0LjEgNTQuOC0yNS45IDExLjcgMjkuNy04LjQgNjUtLjkgOTcuNiAyLjMgOS45IDEwLjIgMjUuNC0yLjQgMjUuNyAuMy0yOC4zLTM0LjgtNDYuMy02MS4zLTI5LjYtMS44LTIxLjUtNC45LTUxLjcgOS44LTY3Ljh6bTM2LjcgMjAwLjJjLTEtNC4xLTIuNy0xMi45LTIuMy0xNS4xIDEuNi04LjcgMTcuMS0xMi41IDExLTI0LjctMTEuMy0uMS0xMy44IDEwLjItMjQuMSAxMS4zLTI2LjcgMi42LTQ1LjYtMzUuNC00NC40LTU4LjQgMS0xOS41IDE3LjYtMzguMiA0MC4xLTM1LjggMTYgMS44IDIxLjQgMTkuMiAyNC41IDM0LjcgOS4yIC41IDIyLjUtLjQgMjYuOS03LjYtLjYtMTcuNS04LjgtMzEuNi04LjItNDcuNyAxLTMwLjMgMTcuNS01Ny42IDQuOC04Ny40IDEzLjYtMzAuOSA1My41LTU1LjMgODMuMS03MCAzNi42LTE4LjMgOTQuOS0zLjcgMTI5LjMgMTUuOCAxOS43IDExLjEgMzQuNCAzMi43IDQ4LjMgNTAuNy0xOS41LTUuOC0zNi4xIDQuMi0zMy4xIDIwLjMgMTYuMy0xNC45IDQ0LjItLjIgNTIuNSAxNi40IDcuOSAxNS44IDcuOCAzOS4zIDkgNjIuOCAyLjkgNTctMTAuNCAxMTUuOS0zOS4xIDE1Ny4xLTcuNyAxMS0xNC4xIDIzLTI0LjkgMzAuNi0yNiAxOC4yLTY1LjQgMzQuNy05OS4yIDIzLjQtNDQuNy0xNS02NS00NC44LTg5LjUtNzguOCAuNyAxOC43IDEzLjggMzQuMSAyNi44IDQ4LjQgMTEuMyAxMi41IDI1IDI2LjYgMzkuNyAzMi40LTEyLjMtMi45LTMxLjEtMy44LTM2LjIgNy4yLTI4LjYtMS45LTU1LjEtNC44LTY4LjctMjQuMi0xMC42LTE1LjQtMjEuNC00MS40LTI2LjMtNjEuNHptMjIyIDEyNC4xYzQuMS0zIDExLjEtMi45IDE3LjQtMy42LTUuNC0yLjctMTMtMy43LTE5LjMtMi4yLS4xLTQuMi0yLTYuOC0zLjItMTAuMiAxMC42LTMuOCAzNS41LTI4LjUgNDkuNi0yMC4zIDYuNyAzLjkgOS41IDI2LjIgMTAuMSAzNyAuNCA5LS44IDE4LTQuNSAyMi44LTE4LjgtLjYtMzUuOC0yLjgtNTAuNy03IC45LTYuMS0xLTEyLjEgLjYtMTYuNXptLTE3LjItMjBjLTE2LjggLjgtMjYtMS4yLTM4LjMtMTAuOCAuMi0uOCAxLjQtLjUgMS41LTEuNCAxOCA4IDQwLjgtMy4zIDU5LTQuOS03LjkgNS4xLTE0LjYgMTEuNi0yMi4yIDE3LjF6bS0xMi4xIDMzLjJjLTEuNi05LjQtMy41LTEyLTIuOC0yMC4yIDI1LTE2LjYgMjkuNyAyOC42IDIuOCAyMC4yek0xOTQuMyA0MzguNmMtMTEuNi0uNy00OC4xLTE0LTM4LjUtMjMuNyA5LjQgNi41IDI3LjUgNC45IDQxLjMgNy4zIC44IDQuNC0yLjggMTAuMi0yLjggMTYuNHpNMjYgNDk3LjFjLTQuMy0xMi43LTkuMi0yNS4xLTE0LjgtMzYuOSAzMC44LTIzLjggNjUuMy00OC45IDEwMi4yLTYzLjUgMi44LTEuMSAyMy4yIDI1LjQgMjYuMiAyNy42IDE2LjUgMTEuNyAzNyAyMSA1Ni4yIDMwLjIgMS4yIDguOCAzLjkgMjAuMiA4LjcgMzUuNSAuNyAyLjMgMS40IDQuNyAyLjIgNy4ybC0xODAuNyAwIDAtLjF6bTI0MC42IDUuN2wtLjggMGMuMy0uMiAuNS0uNCAuOC0uNWwwIC41em03LjUtNS43YzIuMS0xLjQgNC4zLTIuOCA2LjQtNC4zIDEuMSAxLjQgMi4yIDIuOCAzLjIgNC4zbC05LjYgMHptMTUuMS0yNC43Yy0xMC44IDcuMy0yMC42IDE4LjMtMzMuMyAyNS4yLTYgMy4zLTI3IDExLjctMzMuNCAxMC4yLTMuNi0uOC0zLjktNS4zLTUuNC05LjUtMy4xLTktMTAuMS0yMy40LTEwLjgtMzctLjgtMTcuMi0yLjUtNDYgMTYtNDIuNCAxNC45IDIuOSAzMi4zIDkuNyA0My45IDE2LjEgNy4xIDMuOSAxMS4xIDguNiAyMS45IDkuNS0uMSAxLjQtLjEgMi44LS4yIDQuMy01LjkgMy45LTE1LjMgMy44LTIxLjggNy4xIDkuNSAuNCAxNyAyLjcgMjMuNSA1LjktLjEgMy40LS4zIDctLjQgMTAuNnptNTMuNCAyNC43bC0xNCAwYy0uMS0zLjItMi44LTUuOC02LjEtNS44cy01LjkgMi42LTYuMSA1LjhsLTE3LjQgMGMtMi44LTQuNC01LjctOC42LTguOS0xMi41IDIuMS0yLjIgNC00LjcgNi02LjkgOSAzLjcgMTQuOC00LjkgMjEuNy00LjIgNy45IC44IDE0LjIgMTEuNyAyNS40IDExbC0uNiAxMi42em04LjcgMGMuMi00IC40LTcuOCAuNi0xMS41IDE1LjYtNy4zIDI5IDEuMyAzNS43IDExLjVsLTM2LjMgMHptODMuNC0zN2MtMi4zIDExLjItNS44IDI0LTkuOSAzNy4xLS4yLS4xLS40LS4xLS42LS4xbC0yNy45IDBjLjYtMS4xIDEuMi0yLjIgMS45LTMuMy0yLjYtNi4xLTktOC43LTEwLjktMTUuNSAxMi4xLTIyLjcgNi41LTkzLjQtMjQuMi03OC41IDQuMy02LjMgMTUuNi0xMS41IDIwLjgtMTkuMyAxMyAxMC40IDIwLjggMjAuMyAzMy4yIDMxLjQgNi44IDYgMjAgMTMuMyAyMS40IDIzLjEgLjggNS41LTIuNiAxOC45LTMuOCAyNS4xek0xOTAuNSAxMzAuNWM1LjQtMTQuOSAyNy4yLTM0LjcgNDUtMzIgNy43IDEuMiAxOCA4LjIgMTIuMiAxNy43LTMwLjItNy00NS4yIDEyLjYtNTQuNCAzMy4xLTguMS0yLTQuOS0xMy4xLTIuOC0xOC44em0xODQuMSA2My4xYzguMi0zLjYgMjIuNC0uNyAyOS42LTUuMy00LjItMTEuNS0xMC4zLTIxLjQtOS4zLTM3LjcgLjUgMCAxIDAgMS40IC4xIDYuOCAxNC4yIDEyLjcgMjkuMiAyMS40IDQxLjctNS43IDEzLjUtNDMuNiAyNS40LTQzLjEgMS4yem0tOTYuOCAyLjdjLTYuOC0xMC45LTE5LTMyLjUtMTQuNS00NS4zIDYuNSAxMS45IDguNiAyNC40IDE3LjggMzMuMyA0LjEgNCAxMi4yIDkgOC4yIDIwLjItLjkgMi43LTcuOCA4LjYtMTEuNyA5LjctMTQuNCA0LjMtNDcuOSAuOS0zNi42LTE3LjEgMTEuOSAuNyAyNy45IDcuOCAzNi44LS44em0yNy4zIDcwYzMuOCA2LjYgMS40IDE4LjcgMTIuMSAyMC42IDIwLjIgMy40IDQzLjYtMTIuMyA1OC4xLTE3LjggOS0xNS4yLS44LTIwLjctOC45LTMwLjUtMTYuNi0yMC0zOC44LTQ0LjgtMzgtNzQuNyA2LjctNC45IDcuMyA3LjQgOC4yIDkuNyA4LjcgMjAuMyAzMC40IDQ2LjIgNDYuMyA2My41IDMuOSA0LjMgMTAuMyA4LjQgMTEgMTEuMiAyLjEgOC4yLTUuNCAxOC00LjUgMjMuNS0yMS43IDEzLjktNDUuOCAyOS4xLTgxLjQgMjUuNi03LjQtNi43LTEwLjMtMjEuNC0yLjktMzEuMXptLTIwMS4zLTkuMmMtNi44LTMuOS04LjQtMjEtMTYuNC0yMS40LTExLjQtLjctOS4zIDIyLjItOS4zIDM1LjUtNy44LTcuMS05LjItMjkuMS0zLjUtNDAuMy02LjYtMy4yLTkuNSAzLjYtMTMuMSA1LjkgNC43LTM0LjEgNDkuOC0xNS44IDQyLjMgMjAuM3ptMjk5LjYgMjguOGMtMTAuMSAxOS4yLTI0LjQgNDAuNC01NCA0MS0uNi02LjItMS4xLTE1LjYgMC0xOS40IDIyLjctMi4yIDM2LjYtMTMuNyA1NC0yMS42ek0yNjEuNSAyOTguM2MxOC45IDkuOSA1My42IDExIDc5LjMgMTAuMiAxLjQgNS42IDEuMyAxMi42IDEuNCAxOS40LTMzIDEuOC03Mi02LjQtODAuNy0yOS42ek0zNTMuNyAzNDVjLTEuNyA0LjMtNS4zIDkuMy05LjggMTEuMS0xMi4xIDQuOS00NS42IDguNy02Mi40LS4zLTEwLjctNS43LTE3LjUtMTguNS0yMy40LTI2LTIuOC0zLjYtMTYuOS0xMi45LS4yLTEyLjkgMTMuMSAzMi43IDU4IDI5IDk1LjggMjguMXoiXX0sJHl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNsaWRlc2hhcmUiLGljb246WzUxMiw1MTIsW10sImYxZTciLCJNMTg3LjkgMTUzLjdjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuN3M2MS43LTI2IDYxLjctNTcuN2MwLTMyLTI3LjctNTcuNy02MS43LTU3Ljd6bTE0My40IDBjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuNyAzNC4zIDAgNjEuNy0yNiA2MS43LTU3LjcgLjEtMzItMjcuNC01Ny43LTYxLjctNTcuN3ptMTU2LjYgOTBsLTYgNC4zIDAtMTk4LjNjMC0yNy40LTIwLjYtNDkuNy00Ni00OS43TDc2LjggMGMtMjUuNCAwLTQ2IDIyLjMtNDYgNDkuN2wwIDE5OC4zYy0yLTEuNC00LjMtMi45LTYuMy00LjMtMTUuMS0xMC42LTI1LjEgNC0xNiAxNy43IDE4LjMgMjIuNiA1My4xIDUwLjMgMTA2LjMgNzItNTYuMyAxOTEuNyAxMzcuNCAyMjIuMyAxMzQuMyAxMjQuMSAwLS43IC4zLTU2LjYgLjMtOTYuNiA1LjEgMS4xIDkuNCAyLjMgMTMuNyAzLjEgMCAzOS43IC4zIDkyLjggLjMgOTMuNS0zLjEgOTguMyAxOTAuNiA2Ny43IDEzNC4zLTEyNCA1My4xLTIxLjcgODgtNDkuNCAxMDYuMy03MiA5LjEtMTMuOC0uOS0yOC4zLTE2LjEtMTcuOHptLTMwLjUgMTkuMmMtNjguOSAzNy40LTEyOC4zIDMxLjEtMTYwLjYgMjkuNy0yMy43LS45LTMyLjYgOS4xLTMzLjcgMjQuOS0xMC4zLTcuNy0xOC42LTE1LjUtMjAuMy0xNy4xLTUuMS01LjQtMTMuNy04LTI3LjEtNy43LTMxLjcgMS4xLTg5LjcgNy40LTE1Ny40LTI4bDAtMTkyLjRjMC0zNC45IDguOS00NS43IDQwLjYtNDUuN2wzMTcuNyAwYzMwLjMgMCA0MC45IDEyLjkgNDAuOSA0NS43bDAgMTkwLjYtLjEgMHoiXX0sRHl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InViZXIiLGljb246WzQ0OCw1MTIsW10sImY0MDIiLCJNNDE0LjEgMzJMMzMuOSAzMkMxNS4yIDMyIDAgNDcuMiAwIDY1LjlMMCA0NDZjMCAxOC44IDE1LjIgMzQgMzMuOSAzNEw0MTQgNDgwYzE4LjcgMCAzMy45LTE1LjIgMzMuOS0zMy45bDAtMzgwLjJDNDQ4IDQ3LjIgNDMyLjggMzIgNDE0LjEgMzJ6TTIzNy42IDM5MS4xQzE2MyAzOTguNiA5Ni40IDM0NC4yIDg4LjkgMjY5LjZsOTQuNCAwIDAgMjAuNGMwIDMuNyAzIDYuOCA2LjggNi44bDY3LjkgMGMzLjcgMCA2LjgtMyA2LjgtNi44bDAtNjcuOWMwLTMuNy0zLTYuOC02LjgtNi44bC02Ny45IDBjLTMuNyAwLTYuOCAzLTYuOCA2LjhsMCAyMC40LTk0LjQgMGM3LTY5LjQgNjUuNC0xMjIuMiAxMzUuMS0xMjIuMnMxMjguMSA1Mi44IDEzNS4xIDEyMi4yYzcuNSA3NC41LTQ2LjkgMTQxLjEtMTIxLjUgMTQ4LjZ6Il19LEF5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWdpdGFsLW9jZWFuIixpY29uOls1MTIsNTEyLFtdLCJmMzkxIiwiTTg3IDQ4MS44bDczLjcgMCAwLTczLjYtNzMuNyAwIDAgNzMuNnpNMjUuNCAzNDYuNmwwIDYxLjYgNjEuNiAwIDAtNjEuNi02MS42IDB6TTQ5MS42IDE3Ni45QzQ2OC42IDEwMi43IDQwOS4yIDQzLjYgMzM1IDIwLjMgMTY0LjktMzIuOCA4IDkzLjcgOCAyNTUuOWw5NS44IDBjMC0xMDEuOCAxMDEtMTgwLjUgMjA4LjEtMTQxLjcgMzkuNyAxNC4zIDcxLjUgNDYuMSA4NS44IDg1LjcgMzkuMSAxMDctMzkuNyAyMDcuOC0xNDEuNCAyMDhsMCAuMy0uMyAwIDAgOTUuOGMxNjIuNiAwIDI4OC44LTE1Ni44IDIzNS42LTMyNy4xem0tMjM1LjMgMjMxbDAtOTUuMy05NS42IDAgMCA5NS42IDk1LjMgMCAwLS4zIC4zIDB6Il19LFB5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb3VuZGNsb3VkIixpY29uOls2NDAsNTEyLFtdLCJmMWJlIiwiTTY0MC4yIDI5OC42Yy0xLjMgMjMuMS0xMS41IDQ0LjgtMjguNCA2MC41cy0zOS4yIDI0LjQtNjIuMyAyNC4xbC0yMTggMGMtNC44IDAtOS40LTItMTIuOC01LjRzLTUuMy04LTUuMy0xMi44bDAtMjM0LjhjLS4yLTQgLjktOCAzLjEtMTEuNHM1LjMtNi4xIDktNy43YzAgMCAyMC4xLTEzLjkgNjIuMy0xMy45IDI1LjggMCA1MS4xIDYuOSA3My4zIDIwLjEgMTcuMyAxMC4yIDMyLjMgMjMuOCA0NC4xIDQwLjFzMjAgMzQuOCAyNC4yIDU0LjRjNy41LTIuMSAxNS4zLTMuMiAyMy4xLTMuMiAxMS43LS4xIDIzLjMgMi4yIDM0LjIgNi43czIwLjUgMTEuMyAyOC43IDE5LjcgMTQuNiAxOC4zIDE4LjkgMjkuMyA2LjMgMjIuNiA1LjkgMzQuM3ptLTM1NC0xNTMuNWMuMS0xIDAtMi0uMy0yLjlzLS44LTEuOC0xLjUtMi42LTEuNS0xLjMtMi40LTEuN2MtMS44LS44LTQtLjgtNS44IDAtLjkgLjQtMS43IDEtMi40IDEuN3MtMS4yIDEuNi0xLjUgMi42LS40IDEuOS0uMyAyLjljLTYgNzguOS0xMC42IDE1Mi45IDAgMjMxLjYgLjIgMS43IDEgMy4zIDIuMyA0LjUgMi42IDIuNCA2LjggMi40IDkuNCAwIDEuMy0xLjIgMi4xLTIuOCAyLjMtNC41IDExLjMtNzkuNCA2LjYtMTUyIDAtMjMxLjZsLjIgMHptLTQ0IDI3LjNjLS4yLTEuOC0xLjEtMy41LTIuNC00LjdzLTMuMS0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMiAyLjktMi40IDQuN2MtNy45IDY3LjktNy45IDEzNi41IDAgMjA0LjQgLjMgMS44IDEuMiAzLjQgMi41IDQuNXMzLjEgMS44IDQuOCAxLjggMy41LS42IDQuOC0xLjggMi4yLTIuOCAyLjUtNC41YzguOC02Ny44IDguOC0xMzYuNSAuMS0yMDQuNGwuMSAwem0tNDQuMy02LjljLS4yLTEuOC0xLTMuNC0yLjMtNC42cy0zLTEuOC00LjgtMS44LTMuNSAuNy00LjggMS44LTIuMSAyLjgtMi4zIDQuNmMtNi43IDcyLTEwLjIgMTM5LjMgMCAyMTEuMSAwIDEuOSAuNyAzLjcgMi4xIDVzMy4xIDIuMSA1IDIuMSAzLjctLjcgNS0yLjEgMi4xLTMuMSAyLjEtNWMxMC41LTcyLjggNy4zLTEzOC4yIC4xLTIxMS4xbC0uMSAwem0tNDQgMjAuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMnMtMy4yLTIuMS01LjItMi4xLTMuOCAuOC01LjIgMi4xLTIuMSAzLjItMi4xIDUuMmMtOC4xIDYzLjMtOC4xIDEyNy41IDAgMTkwLjggLjIgMS44IDEgMy40IDIuNCA0LjZzMy4xIDEuOSA0LjggMS45IDMuNS0uNyA0LjgtMS45IDIuMi0yLjggMi40LTQuNmM4LjgtNjMuMyA4LjktMTI3LjUgLjMtMTkwLjhsLS4xIDB6bS00NC41IDQ3LjZjMC0xLjktLjgtMy44LTIuMS01LjFzLTMuMi0yLjEtNS4xLTIuMS0zLjggLjgtNS4xIDIuMS0yLjEgMy4yLTIuMSA1LjFjLTEwLjUgNDkuMi01LjUgOTMuOSAuNCAxNDMuNiAuMyAxLjYgMS4xIDMuMSAyLjMgNC4yczIuOCAxLjcgNC41IDEuNyAzLjItLjYgNC41LTEuNyAyLjEtMi41IDIuMy00LjJjNi42LTUwLjQgMTEuNi05NC4xIC40LTE0My42em0tNDQuMS03LjVjLS4yLTEuOC0xLjEtMy41LTIuNC00LjhzLTMuMi0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMiAyLjktMi40IDQuOGMtOS4zIDUwLjItNi4yIDk0LjQgLjMgMTQ0LjUgLjcgNy42IDEzLjYgNy41IDE0LjQgMCA3LjItNTAuOSAxMC41LTkzLjggLjMtMTQ0LjVsLS4yIDB6TTIwLjcgMjUwLjhjLS4yLTEuOC0xLjEtMy41LTIuNC00LjhzLTMuMi0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMyAyLjktMi40IDQuOGMtOC41IDMzLjctNS45IDYxLjYgLjYgOTUuNCAuMiAxLjcgMSAzLjMgMi4zIDQuNHMyLjkgMS44IDQuNyAxLjggMy40LS42IDQuNy0xLjggMi4xLTIuNyAyLjMtNC40YzcuNS0zNC41IDExLjItNjEuOCAuNC05NS40bC0uMiAweiJdfSxFeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZpZ21hIixpY29uOls0NDgsNTEyLFtdLCJlN2U0IiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTE3My43IDk2Yy0zMyAwLTU5LjggMjYuOC01OS44IDU5LjggMCAyMSAxMC44IDM5LjQgMjcuMiA1MC4xLTE2LjQgMTAuNy0yNy4yIDI5LjEtMjcuMiA1MC4xczEwLjggMzkuNSAyNy4yIDUwLjFjLTE2LjQgMTAuNy0yNy4yIDI5LjEtMjcuMiA1MC4xIDAgMzMuMSAyNy4xIDU5LjggNjAuMSA1OS44IDMzLjIgMCA2MC42LTI2LjkgNjAuNi02MC4zbDAtNTUuN2MxMC42IDkuOCAyNC44IDE1LjggNDAuNCAxNS44bDEuMSAwYzMzIDAgNTkuOC0yNi44IDU5LjgtNTkuOCAwLTIxLTEwLjgtMzkuNS0yNy4yLTUwLjEgMTYuNC0xMC43IDI3LjItMjkuMSAyNy4yLTUwLjEgMC0zMy0yNi44LTU5LjgtNTkuOC01OS44TDE3My43IDk2em00MS42IDIxOS44bDAgMzkuOWMwIDIyLjYtMTguNiA0MS00MS4zIDQxLTIyLjQgMC00MC43LTE4LjItNDAuNy00MC41IDAtMjIuMyAxOC4xLTQwLjQgNDAuMy00MC40bDQxLjcgMHptMC0xMDAuM2wwIDgwLjktNDEuNyAwYy0yMi4zLS4xLTQwLjMtMTguMi00MC4zLTQwLjUgMC0yMi4zIDE4LjEtNDAuNSA0MC41LTQwLjVsNDEuNiAwem02MC44IDBjMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNS00MC41IDQwLjVsLTEuMSAwYy0yMi4zIDAtNDAuNC0xOC4xLTQwLjQtNDAuNXMxOC4xLTQwLjUgNDAuNC00MC41bDEuMSAwem0tNjAuOC0xOS4zbC00MS42IDBjLTIyLjMgMC00MC41LTE4LjEtNDAuNS00MC40czE4LjEtNDAuNSA0MC41LTQwLjVsNDEuNiAwIDAgODAuOXptNjAuOC04MC45YzIyLjMgMCA0MC41IDE4LjEgNDAuNSA0MC41cy0xOC4xIDQwLjQtNDAuNSA0MC40bC00MS41IDAgMC04MC45IDQxLjUgMHoiXX0sSXl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2EiLGljb246WzUxMiw1MTIsW10sImY0ZWYiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek0xNDUuNyAyMjFjMTMtODMuOSA4MC41LTk1LjcgMTA4LjktOTUuNyA5OS44IDAgMTI3LjUgODIuNSAxMjcuNSAxMzQuMiAwIDYzLjYtNDEgMTMyLjktMTI4LjkgMTMyLjktMzguOSAwLTk5LjEtMjAtMTA5LjQtOTdsNjIuNSAwYzEuNSAzMC4xIDE5LjYgNDUuMiA1NC41IDQ1LjIgMjMuMyAwIDU4LTE4LjIgNTgtODIuOCAwLTgyLjUtNDkuMS04MC42LTU2LjctODAuNi0zMy4xIDAtNTEuNyAxNC42LTU1LjggNDMuOGwxOC4yIDAtNDkuMiA0OS4yLTQ5LTQ5LjIgMTkuNCAweiJdfSxOeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2hyb21lIixpY29uOls1MTIsNTEyLFtdLCJmMjY4IiwiTTAgMjU2YzAtNDYuNiAxMi41LTkwLjQgMzQuMy0xMjguOUwxNDQuMSAzMTguM2MyMS45IDM5LjIgNjMuOCA2NS43IDExMS45IDY1LjcgMTQuMyAwIDI3LjEtMi4zIDQwLjgtNi42TDIyMC41IDUwOS42Qzk1LjkgNDkyLjMgMCAzODUuMyAwIDI1NnptMzY1LjEgNjUuNmMxMi4zLTE5LjIgMTguOS00Mi41IDE4LjktNjUuNiAwLTM4LjItMTYuOC03Mi41LTQzLjMtOTZsMTUyLjcgMGMxMiAyOS42IDE4LjYgNjIuMSAxOC42IDk2IDAgMTQxLjQtMTE0LjYgMjU1LjEtMjU2IDI1NkwzNjUuMSAzMjEuNnpNNDc3LjggMTI4TDI1NiAxMjhjLTYyLjkgMC0xMTMuNyA0NC4xLTEyNS41IDEwMi43TDU0LjIgOTguNUMxMDEgMzguNSAxNzQgMCAyNTYgMCAzNTAuOCAwIDQzMy41IDUxLjUgNDc3LjggMTI4ek0zNDQgMjU2YTg4IDg4IDAgMSAxIC0xNzYgMCA4OCA4OCAwIDEgMSAxNzYgMHoiXX0sUnl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyYWRlLWZlZGVyYXRpb24iLGljb246WzUxMiw1MTIsW10sImY1MTMiLCJNMjU2IDguOGEyNDcuMiAyNDcuMiAwIDEgMCAwIDQ5NC40IDI0Ny4yIDI0Ny4yIDAgMSAwIDAtNDk0LjR6bTAgMTEuNmEyMzUuNiAyMzUuNiAwIDEgMSAwIDQ3MS4yIDIzNS42IDIzNS42IDAgMSAxIDAtNDcxLjJ6TTQxMS4xIDE2My4xbDAtNDYuOC0xOTMuOCAwIDAgODEuNy0xNTUuMSAwIDM2LjcgNDYgMTE3LjcgMCAwIDE5Ni44IDQ4LjggMCAwLTE5NS44IDgzLjMgMCAwLTQ3LTgzLjMgMCAwLTM0LjggMTQ1LjcgMCAwLS4xem0tNzMuMyA0NS4xbDAgMjMuOS04Mi45IDAgMCAxOTcuNC0yNi44IDAgMC0xOTcuNC0xMjMuOCAwLTIwLjEtMjMuOSAxNDMuOSAwIDAtODAuNiAxNzEuOCAwIDAgMjQuNC0xNDUgMCAwIDU2LjIgODIuOSAwem0tMTYxLjMtNjlsLTEyLjQtMjAuNyAyLjEgMjMuOC0yMy41IDUuNCAyMy4zIDUuNC0yLjEgMjQgMTIuMy0yMC41IDIyLjIgOS41LTE1LjctMTguMSAxNS44LTE4LjEtMjIgOS4zem0tMjkuNi0xOS43bDkuMy0xMS41LTEyLjcgNS45LTgtMTIuNCAxLjcgMTMuOS0xNC4zIDMuOCAxMy43IDIuNy0uOCAxNC43IDYuOC0xMi4yIDEzLjggNS4zLTkuNS0xMC4yek0zMTIuMyAyNjQuN2wtMTMuMSA1LjYtNy4zLTEyLjIgMS4zIDE0LjItMTMuOSAzLjIgMTMuOSAzLjItMS4yIDE0LjIgNy4zLTEyLjIgMTMuMSA1LjUtOS40LTEwLjcgOS4zLTEwLjh6bTEwNi45LTc3LjJsLTIwLjkgOS4xLTEyLTE5LjYgMi4yIDIyLjctMjIuMyA1LjQgMjIuMiA0LjktMS44IDIyLjkgMTEuNS0xOS42IDIxLjIgOC44LTE1LjEtMTcgMTUtMTcuNnpNMjU2IDI5LjlhMjI2LjEgMjI2LjEgMCAxIDAgMCA0NTIuMiAyMjYuMSAyMjYuMSAwIDEgMCAwLTQ1Mi4yek0zNTAuNiAxOTZsMCA1MS04My4zIDAgMCAxOTUuNy01Mi43IDAgMC0xOTYuOC0xMTYuNyAwLTQwLTQ5LjkgMTU3LjQgMCAwLTgxLjYgMTk3LjggMCAwIDUwLjctMTQ1LjcgMCAwIDMwLjkgODMuMiAwek0yNTYgNDMuMmM2MC4zIDAgMTE0LjggMjUgMTUzLjYgNjUuMmwtMTk5LjEgMCAwIDgxLjYtMTU3LjQgMEM4MS4xIDEwNC44IDE2MS40IDQzLjIgMjU2IDQzLjJ6bTAgNDI3LjFjLTExNy45IDAtMjEzLjYtOTUuNi0yMTMuNi0yMTMuNSAwLTIxLjIgMy4xLTQxLjggOC45LTYxLjFsNDMuOCA1Ni4zIDExNC43IDAgMCAxOTYuOCA2NC42IDAgMC0xOTUuOCA4My4zIDAgMC02Mi43LTgzLjIgMCAwLTE5LjIgMTQ1LjYgMCAwLTUwLjhjMzAuOCAzNyA0OS4zIDg0LjYgNDkuMyAxMzYuNSAuMSAxMTcuOS05NS41IDIxMy41LTIxMy40IDIxMy41ek0xODYuOCAyNzVsLTExLTIxLjQgMS43IDI0LjUtMjMuNyAzLjkgMjMuOCA1LjktMy43IDIzLjggMTMtMjAuOSAyMS41IDEwLjgtMTUuOC0xOC44IDE2LjktMTcuMS0yMi43IDkuM3oiXX0sT3l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZhYWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwOCIsIk0yMjQuNSAxNDAuN0MyMjYgMTIzLjEgMjI5LjQgODggMjc0LjMgODhsOTguNiAwYzIwLjcgMCAzMi4xLTcuOCAzMi4xLTIxLjZsMC0xMi4zYzAtMTIuMiA5LjMtMjIuMSAyMS41LTIyLjFTNDQ4IDQxLjkgNDQ4IDU0LjFsMCAzNi41YzAgNDIuOS0yMS41IDYyLTY2LjggNjJsLTEwMC41IDBjLTMwLjEgMC0zMyAxNC43LTMzIDI3LjEgMCAxLjMtLjEgMi41LS4yIDMuNy0uNyAxMi4zLTEwLjkgMjIuMi0yMy40IDIyLjJzLTIyLjctOS44LTIzLjQtMjIuMmMtLjEtMS4yLS4yLTIuNC0uMi0zLjcgMC0xMi4zLTMtMjcuMS0zMy0yNy4xbC0xMDAuNyAwQzIxLjUgMTUyLjYgMCAxMzMuNSAwIDkwLjZMMCA1NC4xQzAgNDEuOSA5LjQgMzIgMjEuNiAzMnMyMS41IDkuOSAyMS41IDIyLjFsMCAxMi4zQzQzLjEgODAuMiA1NC41IDg4IDc1LjIgODhsOTguNiAwYzQ0LjggMCA0OC4zIDM1LjEgNDkuOCA1Mi43bC45IDB6TTIyNCA0NTZjMTEuNSAwIDIxLjQtNyAyNS43LTE2LjMgMS4xLTEuOCA5Ny4xLTE2OS42IDk4LjItMTcxLjQgMTEuOS0xOS42LTMuMi00NC4zLTI3LjItNDQuMy0xMy45IDAtMjMuMyA2LjQtMjkuOCAyMC4zTDIyNCAzNjIgMTU3LjEgMjQ0LjNjLTYuNC0xMy45LTE1LjktMjAuMy0yOS44LTIwLjMtMjQgMC0zOS4xIDI0LjYtMjcuMiA0NC4zIDEuMSAxLjkgOTcuMSAxNjkuNiA5OC4yIDE3MS40IDQuMyA5LjMgMTQuMiAxNi4zIDI1LjcgMTYuM3oiXX0sRnl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldmlhbnRhcnQiLGljb246WzMyMCw1MTIsW10sImYxYmQiLCJNMzIwIDkzLjJsLTk4LjIgMTc5LjEgNy40IDkuNSA5MC44IDAgMCAxMjcuNy0xNjAuOSAwLTEzLjUgOS4yLTQzLjcgODRjLS4zIDAtOC42IDguNi05LjIgOS4ybC05Mi43IDAgMC05My4yIDkzLjItMTc5LjQtNy40LTkuMi04NS44IDAgMC0xMjcuNiAxNTYgMCAxMy41LTkuMiA0My43LTg0Yy4zIDAgOC42LTguNiA5LjItOS4ybDk3LjYgMCAwIDkzLjF6Il19LExiPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZGl1bSIsaWNvbjpbNDQ4LDUxMixbNjI0MDcsIm1lZGl1bS1tIl0sImYyM2EiLCJNMzY5LjQgMzJjNDMuNCAwIDc4LjYgMzUuMiA3OC42IDc4LjZsMCA4My44Yy0xLjktLjEtMy44LS4yLTUuNy0uMmwtLjQgMGMtMTAgMC0yMi4zIDIuNC0zMS4xIDYuOC0xMCA0LjYtMTguNyAxMS41LTI2IDIwLjYtMTEuOCAxNC42LTE4LjkgMzQuMy0yMC42IDU2LjQtLjEgLjctLjEgMS4zLS4yIDJzLS4xIDEuMi0uMSAxLjljLS4xIDEuMi0uMSAyLjQtLjEgMy42IDAgMS45LS4xIDMuOCAwIDUuOCAxLjIgNTAuMSAyOC4yIDkwLjIgNzYuMyA5MC4yIDIuNyAwIDUuMy0uMSA3LjktLjRsMCAyMC40YzAgNDMuNC0zNS4yIDc4LjYtNzguNiA3OC42TDc4LjYgNDgwQzM1LjIgNDgwIDAgNDQ0LjggMCA0MDEuNEwwIDExMC42QzAgNjcuMiAzNS4yIDMyIDc4LjYgMzJsMjkwLjggMHpNODIuMyAxMzguOWwuMyAuMWMxMy4yIDMgMTkuOCA3LjQgMTkuOCAyMy40bDAgMTg3LjJjMCAxNi02LjcgMjAuNC0xOS45IDIzLjRsLS4zIC4xIDAgMi44IDUyLjggMCAwLTIuOC0uMy0uMWMtMTMuMi0zLTE5LjktNy40LTE5LjktMjMuNGwwLTE3Ni4zIDg2LjEgMjAyLjUgNC45IDAgODguNi0yMDguMiAwIDE4Ni42Yy0xLjEgMTIuNi03LjggMTYuNS0xOS43IDE5LjJsLS4zIC4xIDAgMi43IDkxLjkgMCAwLTIuNy0uMy0uMWMtMTEuOS0yLjctMTguNy02LjYtMTkuOS0xOS4ybC0uMS0xOTEuOCAuMSAwYzAtMTYgNi43LTIwLjQgMTkuOS0yMy40bC4zLS4xIDAtMi43LTcyLjIgMC02NyAxNTcuNC02Ny0xNTcuNC03Ny44IDAgMCAyLjd6TTQ0OCAzNDAuM2MtMjUuMS03LjQtNDMtMzUuMS00MS4yLTY3LjhsMCAwIDQxLjEgMCAwIDY3Ljh6bS02LjQtMTM1LjZjMi4zIDAgNC40IC4zIDYuNCAuOWwwIDU3LjQtNDAuMiAwYzEuNS0zMy42IDEzLjYtNTcuOSAzMy44LTU4LjN6Il19LEJ5dD1MYixIeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmNhcnQiLGljb246WzY0MCw1MTIsW10sImYyM2QiLCJNMzMxLjggNDQwLjRhNDUuOCA0NS44IDAgMSAxIDkxLjUgLjMgNDUuOCA0NS44IDAgMSAxIC05MS41LS4zek0xNjkuNCAzOTQuOWE0NS43IDQ1LjcgMCAxIDAgLjMgOTEuMyA0NS43IDQ1LjcgMCAxIDAgLS4zLTkxLjN6bTI5MS43LTI3MGMtMzAyLjIgMC0zNzkuMi0xMi44LTQ2MS4xLTk5LjIgMzQuNCA1MS43IDUzLjMgMTQ4LjkgMzczLjEgMTQ0LjIgMzMzLjMtNSAxMzAgODYuMSA3MC44IDE4OC45IDE4Ni43LTE2Ni43IDMxOS40LTIzMy45IDE3LjItMjMzLjl6Il19LHF5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5LWNvbWJpbmF0b3IiLGljb246WzQ0OCw1MTIsW10sImYyM2IiLCJNNDQ4IDMybDAgNDQ4LTQ0OCAwIDAtNDQ4IDQ0OCAwek0yMzYgMjg3LjVsNzcuNS0xNDUuNS0zMi43IDAtNDUuOCA5MWMtNC43IDkuMy05IDE4LjMtMTIuOCAyNi44bC0xMi4yLTI2LjgtNDUuMi05MS0zNSAwIDc2LjcgMTQzLjggMCA5NC41IDI5LjUgMCAwLTkyLjh6Il19LFZ5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5lIixpY29uOls1MTIsNTEyLFtdLCJmM2MwIiwiTTMxMSAxOTYuOGwwIDgxLjNjMCAyLjEtMS42IDMuNy0zLjcgMy43bC0xMyAwYy0xLjMgMC0yLjQtLjctMy0xLjVMMjU0IDIzMCAyNTQgMjc4LjJjMCAyLjEtMS42IDMuNy0zLjcgMy43bC0xMyAwYy0yLjEgMC0zLjctMS42LTMuNy0zLjdsMC04MS4zYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wxMi45IDBjMS4xIDAgMi40IC42IDMgMS42bDM3LjMgNTAuMyAwLTQ4LjJjMC0yLjEgMS42LTMuNyAzLjctMy43bDEzIDBjMi4xLS4xIDMuOCAxLjYgMy44IDMuNWwwIC4xem0tOTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAyLjEgMS42IDMuNyAzLjcgMy43bDEzIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtODEuM2MwLTEuOS0xLjYtMy43LTMuNy0zLjd6bS0zMS40IDY4LjFsLTM1LjYgMCAwLTY0LjRjMC0yLjEtMS42LTMuNy0zLjctMy43bC0xMyAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMSAuMyAxLjggMSAyLjUgLjcgLjYgMS41IDEgMi41IDFsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzYzAtMS45LTEuNi0zLjctMy41LTMuN2wuMSAwem0xOTMuNy02OC4xbC01Mi4zIDBjLTEuOSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxLjkgMS42IDMuNyAzLjcgMy43bDUyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNiAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTMuMWMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTM1LjUgMCAwLTEzLjcgMzUuNSAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzYy0uMS0xLjktMS43LTMuNy0zLjctMy43bC4xIDB6TTUxMiA5My40bDAgMzI2Yy0uMSA1MS4yLTQyLjEgOTIuNy05My40IDkyLjZsLTMyNiAwQzQxLjQgNTExLjktLjEgNDY5LjggMCA0MTguNmwwLTMyNkMuMSA0MS40IDQyLjItLjEgOTMuNCAwbDMyNiAwYzUxLjIgLjEgOTIuNyA0Mi4xIDkyLjYgOTMuNHpNNDQxLjYgMjMzLjVjMC04My40LTgzLjctMTUxLjMtMTg2LjQtMTUxLjNTNjguOCAxNTAuMSA2OC44IDIzMy41YzAgNzQuNyA2Ni4zIDEzNy40IDE1NS45IDE0OS4zIDIxLjggNC43IDE5LjMgMTIuNyAxNC40IDQyLjEtLjggNC43LTMuOCAxOC40IDE2LjEgMTAuMXMxMDcuMy02My4yIDE0Ni41LTEwOC4yYzI3LTI5LjcgMzkuOS01OS44IDM5LjktOTMuMWwwLS4yeiJdfSxqeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1pbGlhIixpY29uOls0NDgsNTEyLFtdLCJmMzZkIiwiTTI0MC4yIDMyYy02MS45IDAtMTMxLjUgMTYuOS0xODQuMiA1NS40LTUuMSAzLjEtOS4xIDkuMi03LjIgMTkuNCAxLjEgNS4xIDUuMSAyNy40IDEwLjIgMzkuNiA0LjEgMTAuMiAxNC4yIDEwLjIgMjAuMyA2LjEgMzIuNS0yMi4zIDk2LjUtNDcuNyAxNTIuMy00Ny43IDU3LjkgMCA1OC45IDI4LjQgNTguOSA3My4xbDAgMzguNUMyMDMuMSAyMjcuNyA3OC4zIDI1MSA0Ni44IDI2NC4yIDExLjMgMjgwLjUgMTYuNCAzNTcuNyAxNi40IDM3NlMzMS42IDQ4MCAxNDEuMyA0ODBjNDcuOCAwIDExMy43LTIwLjcgMTUzLjMtNDIuMWwwIDI1LjRjMCAzIDIuMSA4LjIgNi4xIDkuMSAzLjEgMSA1MC43IDIgNTkuOSAyczYyLjUgLjMgNjYuNS0uN2M0LjEtMSA1LjEtNi4xIDUuMS05LjFsMC0yOTYuNmMtLjEtODAuMy01Ny45LTEzNi0xOTItMTM2em01MC4yIDM0OGMtMjEuNCAxMy4yLTQ4LjcgMjQuNC03OS4xIDI0LjQtNTIuOCAwLTU4LjktMzMuNS01OS00NC43IDAtMTIuMi0zLTQyLjcgMTguMy01Mi45IDI0LjMtMTMuMiA3NS4xLTI5LjQgMTE5LjgtMzMuNWwwIDEwNi43eiJdfSxVeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXN5bW1ldHJpayIsaWNvbjpbNTc2LDUxMixbXSwiZjM3MiIsIk01MTcuNSAzMDkuMmMzOC44LTQwIDU4LjEtODAgNTguNS0xMTYuMSAuOC02NS41LTU5LjQtMTE4LjItMTY5LjQtMTM1LTEyOC43LTE5LjctMjg4LjUgMTUuNS00MDYuNiA4Mi40IDUyLTI2LjUgMTEwLjYtNDguMiAxNzAuNy01OC4yIDc0LjUtMjAuNSAxNTMtMjUuNCAyMjEuMy0xNC44IDE1Mi41IDIzLjggMTk2LjggMTI3LjUgOTguOCAyMzEuNy0xMC4yIDEwLjgtMjIgMjEuMS0zNSAzMC42TDMwNC45IDEwMy40IDExNC43IDM4OC45Yy02NS42LTI5LjQtNzYuNS05MC4yLTE5LjEtMTUxLjIgMjAuOC0yMi4yIDQ4LjMtNDEuOSA3OS41LTU4LjEgMjAtMTIuMiAzOS43LTIyLjYgNjItMzAuNy02NS4xIDIwLjMtMTIyLjcgNTIuOS0xNjEuNiA5Mi45LTI3LjcgMjguNi00MS40IDU3LjEtNDEuNyA4Mi45LS41IDM1LjEgMjMuNCA2NS4xIDY4LjQgODNsLTM0LjUgNTEuNyAxMDEuNiAwIDIyLTM0LjRjMjIuMiAxIDQ1LjMgMCA2OC42LTIuN2wtMjIuOCAzNy4xIDEzNS41IDAtMzIuNi01My4xYzE4LjYtNS4zIDM2LjktMTEuNSA1NC41LTE4LjdsNDUuOSA3MS44IDEwMS42IDAtNzMuNC0xMTAuNGMxOC41LTEyLjEgMzUtMjUuNSA0OC45LTM5Ljh6TTMyOS45IDM4OS43bC0yNS00MC42LTMyLjcgNTMuM2MtMjMuNCAzLjUtNDYuNyA1LjEtNjkuMiA0LjRsMTAxLjktMTU5LjMgNzguNyAxMjNjLTE3LjIgNy40LTM1LjMgMTMuOS01My43IDE5LjJ6Il19LFd5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaGFicmljYXRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjNkYiIsIk0zMzEuMSAyNjIuMWwtLjEtMTNzMjEuNy0xOS44IDIxLjEtMjEuMmwtOS41LTIwYy0uNi0xLjQtMjkuNS0uNS0yOS41LS41bC05LjQtOS4zcy4yLTI4LjUtMS4yLTI5LjFsLTIwLjEtOS4yYy0xLjQtLjYtMjAuNyAyMS0yMC43IDIxbC0xMy4xLS4ycy0yMC41LTIxLjQtMjEuOS0yMC44bC0yMCA4LjNjLTEuNCAuNSAuMiAyOC45IC4yIDI4LjlsLTkuMSA5LjFzLTI5LjItLjktMjkuNyAuNEwxNjAgMjI2LjNjLS42IDEuNCAyMSAyMSAyMSAyMWwuMSAxMi45UzE1OS40IDI4MCAxNjAgMjgxLjRsOS41IDIwYy42IDEuNCAyOS41IC41IDI5LjUgLjVsOS40IDkuM3MtLjIgMzEuOCAxLjIgMzIuM2wyMC4xIDguM2MxLjQgLjYgMjAuNy0yMy41IDIwLjctMjMuNWwxMy4xIC4yczIwLjUgMjMuOCAyMS44IDIzLjNsMjAtNy41YzEuNC0uNi0uMi0zMi4xLS4yLTMyLjFsOS4xLTkuMXMyOS4yIC45IDI5LjctLjVsOC4xLTE5LjhjLjctMS4xLTIwLjktMjAuNy0yMC45LTIwLjd6bS00NC45LTguN2MuNyAxNy4xLTEyLjggMzEuNi0zMC4xIDMyLjRzLTMyLjEtMTIuNS0zMi44LTI5LjYgMTIuOC0zMS42IDMwLjEtMzIuM2MxNy4zLS44IDMyLjEgMTIuNSAzMi44IDI5LjV6bTIwMS4yLTM3LjlsLTk3LTk3LS4xIC4xYy03NS4xLTczLjMtMTk1LjQtNzIuOC0yNjkuOCAxLjYtNTAuOSA1MS0yNy44IDI3LjktOTUuNyA5NS4zLTIyLjMgMjIuMy0yMi4zIDU4LjcgMCA4MSA2OS45IDY5LjQgNDYuNCA0NiA5Ny40IDk3bC4xLS4xYzc1LjEgNzMuMyAxOTUuNCA3Mi45IDI2OS44LTEuNiA1MS01MC45IDI3LjktMjcuOSA5NS4zLTk1LjMgMjIuMy0yMi4zIDIyLjMtNTguNyAwLTgxek0zNjMuNSAxNDguMmExNTIuMyAxNTIuMyAwIDEgMSAtMjE1IDIxNS42IDE1Mi4zIDE1Mi4zIDAgMSAxIDIxNS0yMTUuNnoiXX0sR3l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvdHMiLGljb246WzY0MCw1MTIsW10sImUzNDAiLCJNODYuMyAxOTcuOGMtOC0uMS0xNS45IDEuNy0yMy4xIDUuMXMtMTMuNSA4LjYtMTguNCAxNC45bDAtNjEuOWMwLTIuMi0uOS00LjMtMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC40IDBjLTIuMiAwLTQuMyAuOS01LjggMi40UzAgMTUzLjggMCAxNTZMMCAzMzMuNmMwIDEuMSAuMiAyLjEgLjYgMy4xczEgMS45IDEuOCAyLjcgMS43IDEuNCAyLjcgMS44IDIuMSAuNiAzLjEgLjZsMjguNCAwYzEuMSAwIDIuMS0uMiAzLjEtLjZzMS45LTEgMi43LTEuOCAxLjQtMS43IDEuOC0yLjcgLjYtMi4xIC42LTMuMWwwLTguMWMxMS42IDEzLjQgMjUuOSAxOS44IDQxLjYgMTkuOCAzNC42IDAgNjEuOS0yNi4yIDYxLjktNzMuOCAwLTQ1LjktMjctNzMuNi02MS45LTczLjZ6TTcxLjUgMzA1LjdjLTkuNiAwLTIxLjItNC45LTI2LjctMTIuNWwwLTQzYzUuNS03LjYgMTcuMi0xMi44IDI2LjctMTIuOCAxNy43IDAgMzEuMSAxMy4xIDMxLjEgMzQgMCAyMS4yLTEzLjQgMzQuMy0zMS4xIDM0LjN6bTE1Ni40LTU5YTE3LjQgMTcuNCAwIDEgMCAwIDM0LjggMTcuNCAxNy40IDAgMSAwIDAtMzQuOHptNDYuMS05MGwwLTQ0LjdjMi44LTEuMiA1LjItMy4zIDYuNi02czEuOS01LjggMS4zLTguOS0yLjItNS43LTQuNi03LjctNS40LTMtOC40LTMtNi4xIDEuMS04LjQgMy00IDQuNy00LjYgNy43LS4xIDYuMSAxLjMgOC45IDMuOCA0LjggNi42IDZsMCA0NC43Yy0yOCAxLjMtNTQuNCAxMy42LTczLjYgMzQuMXMtMjkuNSA0Ny43LTI4LjggNzUuOCAxMi4zIDU0LjcgMzIuNCA3NC4zIDQ3IDMwLjYgNzUuMSAzMC42IDU1LTExIDc1LjEtMzAuNiAzMS43LTQ2LjMgMzIuNC03NC4zLTkuNy01NS4zLTI4LjgtNzUuOC00NS41LTMyLjgtNzMuNi0zNC4xem04NiAxMDcuNGMwIDMwLjUtNDAuOCA1NS4zLTkxLjEgNTUuM3MtOTEuMS0yNC43LTkxLjEtNTUuMyA0MC44LTU1LjMgOTEuMS01NS4zIDkxLjEgMjQuNyA5MS4xIDU1LjNsMCAwem0tNTAuMiAxNy40YzMuNCAwIDYuOC0xIDkuNy0yLjlzNS4xLTQuNiA2LjQtNy44IDEuNy02LjcgMS0xMC4xLTIuMy02LjUtNC44LTguOS01LjUtNC4xLTguOS00LjgtNi45LS4zLTEwLjEgMS01LjkgMy41LTcuOCA2LjQtMi45IDYuMi0yLjkgOS43YzAgNC42IDEuOCA5IDUuMSAxMi4zczcuNyA1LjEgMTIuMyA1LjFsMCAwem0yNzAuOS0zMWMtMTQuOC0yLjYtMjIuNC0zLjgtMjIuNC05LjkgMC01LjUgNy4zLTkuOSAxNy43LTkuOSAxMi4yIC4xIDI0LjIgMy42IDM0LjUgMTAuMSAxLjggMS4yIDQgMS42IDYuMiAxLjFzNC0xLjcgNS4xLTMuNmMuMS0uMSAuMS0uMiAuMi0uM2w4LjYtMTQuOWMxLjEtMS45IDEuNC00LjEgLjgtNi4xcy0xLjktMy45LTMuNy01Yy0xNS43LTkuNC0zMy43LTE0LjMtNTItMTQuMS0zOSAwLTYwLjIgMjEuNS02MC4yIDQ2LjIgMCAzNi4zIDMzLjcgNDEuOSA1Ny42IDQ1LjYgMTMuNCAyLjMgMjQuMSA0LjQgMjQuMSAxMSAwIDYuNC01LjUgMTAuOC0xOC45IDEwLjgtMTMuNiAwLTMxLTYuMi00Mi42LTEzLjYtLjktLjYtMS45LTEtMy0xLjJzLTIuMS0uMi0zLjIgLjEtMi4xIC43LTIuOSAxLjMtMS42IDEuNC0yLjIgMi4zYzAgLjEtLjEgLjEtLjEgLjJsLTEwLjIgMTYuOWMtMS4xIDEuOC0xLjQgNC0xIDZzMS43IDMuOSAzLjUgNWMxNS4yIDEwLjMgMzcuNyAxNi43IDU5LjQgMTYuNyA0MC40IDAgNjQtMTkuOCA2NC00Ni41IDAtMzguMS0zNS41LTQzLjktNTkuMy00OC4zem0tOTUuOSA2MC44Yy0uNS0yLTEuOC0zLjctMy42LTQuOHMtMy45LTEuNS01LjktMS4xYy0xLjQgLjMtMi44IC40LTQuMiAuNC03LjggMC0xMi41LTYuMS0xMi41LTE0LjJsMC01MS4yIDIwLjMgMGMyLjIgMCA0LjItLjkgNS44LTIuNHMyLjQtMy42IDIuNC01LjhsMC0yMi43YzAtMi4yLS45LTQuMi0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTIwLjMgMCAwLTMwLjJjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjguMiAwYy0yLjIgMC00LjIgLjktNS44IDIuNHMtMi40IDMuNi0yLjQgNS44bDAgMzAuMi0xNS4xIDBjLTEuMSAwLTIuMSAuMi0zLjEgLjZzLTEuOSAxLTIuNiAxLjgtMS40IDEuNy0xLjggMi42LS42IDItLjYgMy4xbDAgMjIuN2MwIDEuMSAuMiAyLjEgLjYgMy4xczEgMS45IDEuOCAyLjYgMS43IDEuNCAyLjYgMS44IDIgLjYgMy4xIC42bDE1LjEgMCAwIDYzLjdjMCAyNyAxNS40IDQxLjMgNDMuOSA0MS4zIDEyLjIgMCAyMS40LTIuMiAyNy42LTUuNCAxLjYtLjggMi45LTIuMiAzLjctMy45cy45LTMuNiAuNS01LjRsLTUtMTkuM3oiXX0sWXl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbmUiLGljb246WzM4NCw1MTIsW10sImYxY2EiLCJNMzg0IDI1NC43bDAgNTIuMWMtMTguNCA0LjItMzYuOSA2LjEtNTIuMSA2LjEtMzYuOSA3Ny40LTEwMyAxNDMuOC0xMjUuMSAxNTYuMi0xNCA3LjktMjcuMSA4LjQtNDIuNy0uOC0yNy4xLTE2LjMtMTI5LjktMTAwLjYtMTY0LjEtMzY1LjZsNzQuNSAwYzE4LjcgMTU5LjEgNjQuNSAyNDAuNyAxMTQuOCAzMDEuOCAyNy45LTI3LjkgNTQuOC02NS4xIDc1LjYtMTA2LjktNDkuOC0yNS4zLTgwLjEtODAuOS04MC4xLTE0NS42IDAtNjUuNiAzNy43LTExNS4xIDEwMi4yLTExNS4xIDExNC45IDAgMTA2LjIgMTI3LjkgODEuNiAxODEuNSAwIDAtNDYuNCA5LjItNjMuNS0yMC41IDMuNC0xMS4zIDguMi0zMC44IDguMi00OC41IDAtMzEuMy0xMS4zLTQ2LjYtMjguNC00Ni42LTE4LjIgMC0zMC44IDE3LjEtMzAuOCA1MCAuMSA3OS4yIDU5LjQgMTE4LjcgMTI5LjkgMTAxLjl6Il19LEt5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRydCIsaWNvbjpbNTc2LDUxMixbXSwiZjNjOCIsIk0xMjkuNyAyNTZjMCAxMjEuOCA4My45IDIyMi44IDE5My41IDI0MS4xLTE4LjcgNC41LTM4LjIgNi45LTU4LjIgNi45LTEzNy42IDAtMjQ5LTExMS0yNDktMjQ4UzEyNy40IDggMjY0LjkgOGMyMC4xIDAgMzkuNiAyLjQgNTguMiA2LjktMTA5LjYgMTguMy0xOTMuNCAxMTkuMy0xOTMuNCAyNDEuMXpNNDI3LjEgMzU2LjNjLTc3LjcgNTUuNC0xNzkuNiA0Ny41LTI0MC40LTE0LjYgNS41IDE0LjEgMTIuNyAyNy43IDIxLjcgNDAuNSA2MS42IDg4LjIgMTgyLjQgMTA5LjMgMjY5LjcgNDdzMTA4LjEtMTg0LjMgNDYuNS0yNzIuNmMtOS0xMi45LTE5LjMtMjQuMy0zMC41LTM0LjIgMzcuNCA3OC44IDEwLjcgMTc4LjUtNjcgMjMzLjl6bS0yMTguOC0yNDRjLTEuNCAxLTIuNyAyLjEtNCAzLjEgNjQuMy0xNy44IDEzNS45IDQgMTc4LjkgNjAuNSAzNS43IDQ3IDQyLjkgMTA2LjYgMjQuNCAxNTggNTYuNy01Ni4yIDY3LjYtMTQyLjEgMjIuMy0yMDEuOC01MC02NS41LTE0OS4xLTc0LjQtMjIxLjYtMTkuOHpNMzEyIDIyNGMtNC40IDAtOC0zLjYtOC04bDAtNDBjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04IDMuNi04IDhsMCA0MGMwIDQuNC0zLjYgOC04IDhsLTQwIDBjLTQuNCAwLTggMy42LTggOGwwIDQ4YzAgNC40IDMuNiA4IDggOGw0MCAwYzQuNCAwIDggMy42IDggOGwwIDQwYzAgNC40IDMuNiA4IDggOGw0OCAwYzQuNCAwIDgtMy42IDgtOGwwLTQwYzAtNC40IDMuNi04IDgtOGw0MCAwYzQuNCAwIDgtMy42IDgtOGwwLTQ4YzAtNC40LTMuNi04LTgtOGwtNDAgMHoiXX0sWnl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9zaSIsaWNvbjpbNTEyLDUxMixbXSwiZjQxYSIsIk04IDI2Ni40YzIuMy0xMzUuOCA5Ny40LTIzMi40IDIxMy44LTI0OC4xIDEzOC44LTE4LjYgMjU1LjYgNzUuOCAyNzggMjAxLjEgMjEuMyAxMTguOC00NCAyMzAtMTUxLjYgMjc0LTkuMyAzLjgtMTQuNCAxLjctMTgtNy43LTE3LjgtNDYuMy0zNS42LTkyLjYtNTMuNC0xMzktMy4xLTguMS0xLTEzLjIgNy0xNi44IDI0LjItMTEgMzkuMy0yOS40IDQzLjMtNTUuOCAxLjUtOS43IDEtMTkuNi0xLjUtMjkuMXMtNi45LTE4LjQtMTIuOS0yNi4xLTEzLjYtMTQuMS0yMi4yLTE4LjgtMTguMS03LjUtMjcuOS04LjNjLTM5LTMuNC03MS44IDIzLjctNzcuNSA1OS43LTUuMiAzMyAxMS4xIDYzLjcgNDEuOSA3Ny43IDkuNiA0LjQgMTEuNSA4LjYgNy44IDE4LjQtMTcuOSA0Ni42LTM1LjggOTMuMi01My43IDEzOS45LTIuNiA2LjktOC4zIDkuMy0xNS41IDYuNS01Mi42LTIwLjMtMTAxLjQtNjEtMTMwLjgtMTE5LTI0LjktNDkuMi0yNS4yLTg3LjctMjYuOC0xMDguN3ptMjAuOS0xLjljLjQgNi42IC42IDE0LjMgMS4zIDIyLjEgNi4zIDcxLjkgNDkuNiAxNDMuNSAxMzEgMTgzLjEgMy4yIDEuNSA0LjQgLjggNS42LTIuMyAxNC45LTM5LjEgMjkuOS03OC4yIDQ1LTExNy4zIDEuMy0zLjMgLjYtNC44LTIuNC02LjctMzEuNi0xOS45LTQ3LjMtNDguNS00NS42LTg2IDEtMjEuNiA5LjMtNDAuNSAyMy44LTU2LjMgMzAtMzIuNyA3Ny0zOS44IDExNS41LTE3LjYgMTUuNiA5IDI4LjIgMjIuMyAzNi4yIDM4LjRzMTEuMiAzNC4yIDkgNTJjLTMuNiAzMC42LTE5LjMgNTMuOS00NS43IDY5LjgtMi43IDEuNi0zLjUgMi45LTIuMyA2IDE1LjIgMzkuMiAzMC4zIDc4LjQgNDUuMiAxMTcuNyAxLjIgMy4xIDIuNCAzLjggNS42IDIuMyAzNS41LTE2LjYgNjUuMi00MC4zIDg4LjEtNzIgMzQuOC00OC4yIDQ5LjEtMTAxLjkgNDIuMy0xNjEtMTMuNy0xMTcuNS0xMTkuNC0yMTQuOC0yNTUuNS0xOTgtMTA2LjEgMTMtMTk1LjMgMTAyLjUtMTk3LjEgMjI1Ljh6Il19LFh5dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjI2MCIsIk0xNzkuMiAyMzAuNGwxMDIuNCAxMDIuNC0xMDIuNCAxMDIuNC0xNzkuMi0xNzkuMiAxNzkuMi0xNzkuMiA0NC44IDQ0LjgtMjUuNiAyNS42LTE5LjItMTkuMi0xMjggMTI4IDEyOCAxMjggNTEuNS01MS41LTc3LjEtNzYuNSAyNS42LTI1LjZ6TTMzMi44IDc2LjhsLTEwMi40IDEwMi40IDEwMi40IDEwMi40IDI1LjYtMjUuNi03Ny4xLTc2LjUgNTEuNS01MS41IDEyOCAxMjgtMTI4IDEyOC0xOS4yLTE5LjItMjUuNiAyNS42IDQ0LjggNDQuOCAxNzkuMi0xNzkuMi0xNzkuMi0xNzkuMnoiXX0sUXl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1eXNlbGxhZHMiLGljb246WzQ0OCw1MTIsW10sImYyMGQiLCJNMjI0IDE1MC43bDQyLjkgMTYwLjctODUuOCAwIDQyLjktMTYwLjd6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM4Mi43IDQwNS4zbC05NC41LTI5OC43LTEyOC40IDAtOTQuNSAyOTguNyA5MC43IDAgMTExLjctOTEuNiAyNC4yIDkxLjYgOTAuOCAweiJdfSxKeXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsdXMiLGljb246WzUxMiw1MTIsW10sImYyYjMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xODUuMyAzODBjLTMyLjkgMC02NC40LTEzLjEtODcuNy0zNi4zcy0zNi4zLTU0LjgtMzYuMy04Ny43IDEzLjEtNjQuNCAzNi4zLTg3LjcgNTQuOC0zNi4zIDg3LjctMzYuM2MzMS4zIDAgNjAuMSAxMSA4MyAzMi4zbC0zMy42IDMyLjZjLTEzLjItMTIuOS0zMS4zLTE5LjEtNDkuNC0xOS4xLTQyLjkgMC03Ny4yIDM1LjUtNzcuMiA3OC4xUzE0Mi4zIDMzNCAxODUuMyAzMzRjMzIuNiAwIDY0LjktMTkuMSA3MC4xLTUzLjNsLTcwLjEgMCAwLTQyLjYgMTE2LjkgMGMxLjMgNi44IDEuOSAxMy44IDEuOSAyMC43IDAgNzAuOC00Ny41IDEyMS4yLTExOC44IDEyMS4yek00MTUuNSAyNzMuOGwwIDM1LjUtMzUuNSAwIDAtMzUuNS0zNS41IDAgMC0zNS41IDM1LjUgMCAwLTM1LjUgMzUuNSAwIDAgMzUuNSAzNS4yIDAgMCAzNS41LTM1LjIgMHoiXX0sZXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjcmVlbnBhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MCIsIk0yNzguNiAyMi41YTIyLjUgMjIuNSAwIDEgMSAtNDUgMCAyMi41IDIyLjUgMCAxIDEgNDUgMHpNMTk4LjcgMjU5YTU3LjQgNTcuNCAwIDEgMSAxMTQuOCAwIDU3LjQgNTcuNCAwIDEgMSAtMTE0LjggMHptMTM4LjYgOTFjMjIuMy0xOS45IDM2LjUtNDcuMyAzOS45LTc3bDExOS41IDBjLTMuNSA2MS40LTMwLjQgMTE5LjItNzUuMiAxNjEuNC00NC43IDQyLjItMTAzLjkgNjUuOC0xNjUuNCA2NS44UzEzNS40IDQ3Ni42IDkwLjcgNDM0LjRDNDUuOSAzOTIuMiAxOS4xIDMzNC40IDE1LjUgMjczbDExOS43IDBjMy40IDI5LjcgMTcuNiA1Ny4xIDM5LjkgNzdzNTEuMiAzMC45IDgxLjEgMzAuOWMyOSAwIDU4LjctMTEgODEuMS0zMC45ek0yOC4zIDE0MS43YTIyLjUgMjIuNSAwIDEgMSA0NS0xLjQgMjIuNSAyMi41IDAgMSAxIC00NSAxLjR6bTQ1NS42LS43YTIyLjQgMjIuNCAwIDEgMSAtNDQuOSAwIDIyLjQgMjIuNCAwIDEgMSA0NC45IDB6TTMxOCA5NS4zYy0xNy4zIDEzLjgtMzkuMiAyMi44LTYxLjkgMjIuOHMtNDQuNi05LTYxLjktMjIuOGMtMTcuMy0xNC43LTI4LjgtMzUuMS0zMi40LTU3LjUgMTUuMS02LjQgMzAuOC0xMS4zIDQ2LjktMTQuNSAwIDEyLjYgNSAyNC42IDEzLjkgMzMuNXMyMC45IDEzLjkgMzMuNSAxMy45IDI0LjYtNSAzMy41LTEzLjkgMTMuOS0yMC45IDEzLjktMzMuNWMxNi4xIDMuMiAzMS44IDguMSA0Ni45IDE0LjUtMy42IDIyLjQtMTUuMSA0Mi44LTMyLjQgNTcuNXpNODIuOSAyMzFjLTIxLjQgNy42LTQ0LjcgNy40LTY1LjktLjYgMi0xNi4zIDUuNi0zMi4zIDEwLjgtNDcuOSA1LjQgMy4xIDExLjMgNS4xIDE3LjUgNiA2LjIgLjggMTIuNCAuNCAxOC41LTEuMiA2LTEuNyAxMS42LTQuNCAxNi42LTguMnM5LjEtOC41IDEyLjItMTMuOSA1LjEtMTEuNCA2LTE3LjVjLjgtNi4yIC40LTEyLjUtMS4yLTE4LjVzLTQuNC0xMS42LTguMi0xNi42Yy0zLjgtNC45LTguNS05LjEtMTMuOS0xMi4yIDEwLjgtMTIuMyAyMi45LTIzLjUgMzYtMzMuMyAxNy42IDE0LjMgMjkuNSAzNC41IDMzLjYgNTYuOHMuMSA0NS40LTExLjIgNjVjLTExLjQgMTkuNi0yOS40IDM0LjUtNTAuNyA0Mi4xem0zNDYuNCAuMWMtMjEuMy03LjYtMzkuMy0yMi42LTUwLjctNDIuMi0xMS4zLTE5LjYtMTUuMi00Mi43LTExLjEtNjUgNC4xLTIyLjIgMTYtNDIuNCAzMy41LTU2LjcgMTMuMSA5LjggMjUuMiAyMSAzNiAzMy4zLTEwLjcgNi40LTE4LjQgMTYuNy0yMS41IDI4LjgtMy4yIDEyLTIuMyAyNC44IDQuOCAzNS42IDYuMiAxMC44IDE2LjQgMTguNyAyOC40IDIyczI0LjkgMS43IDM1LjctNC4zYzUuMyAxNS41IDguOSAzMS42IDEwLjkgNDcuOC0yMi4xIDguMS00NC42IDguMy02NiAuN3oiXX0sdHd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdGNvaW4iLGljb246WzUxMiw1MTIsW10sImYzNzkiLCJNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzU0LjMtMzUuM2M0LjktMzMtMjAuMi01MC43LTU0LjYtNjIuNmwxMS4xLTQ0LjctMjcuMi02LjgtMTAuOSA0My41Yy03LjItMS44LTE0LjUtMy41LTIxLjgtNS4xbDEwLjktNDMuOC0yNy4yLTYuOC0xMS4yIDQ0LjdjLTUuOS0xLjMtMTEuNy0yLjctMTcuNC00LjFsMC0uMS0zNy41LTkuNC03LjIgMjkuMXMyMC4yIDQuNiAxOS44IDQuOWMxMSAyLjggMTMgMTAgMTIuNyAxNS44bC0xMi43IDUwLjljLjggLjIgMS43IC41IDIuOCAuOS0uOS0uMi0xLjktLjUtMi45LS43bC0xNy44IDcxLjNjLTEuMyAzLjMtNC44IDguNC0xMi41IDYuNSAuMyAuNC0xOS44LTQuOS0xOS44LTQuOWwtMTMuNSAzMS4xIDM1LjQgOC44YzYuNiAxLjcgMTMgMy40IDE5LjQgNWwtMTEuMyA0NS4yIDI3LjIgNi44IDExLjItNDQuN2M3LjIgMiAxNC40IDMuOCAyMS43IDUuNmwtMTEuMSA0NC41IDI3LjIgNi44IDExLjMtNDUuMWM0Ni40IDguOCA4MS4zIDUuMiA5Ni0zNi43IDExLjgtMzMuOC0uNi01My4zLTI1LTY2IDE3LjgtNC4xIDMxLjItMTUuOCAzNC43LTM5Ljl6bS02Mi4yIDg3LjJjLTguNCAzMy44LTY1LjMgMTUuNS04My44IDEwLjlsMTQuOS01OS45YzE4LjQgNC42IDc3LjYgMTMuNyA2OC44IDQ5em04LjQtODcuN2MtNy43IDMwLjctNTUgMTUuMS03MC40IDExLjNsMTMuNS01NC4zYzE1LjQgMy44IDY0LjggMTEgNTYuOCA0M3oiXX0sYXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN3aWZ0IixpY29uOls0NDgsNTEyLFtdLCJmOGUxIiwiTTQ0OCAxNTYuMWMwLTQuNS0uMS05LS4yLTEzLjUtLjEtOS45LTEtMTkuNy0yLjYtMjkuNC0xLjctOS43LTQuOC0xOS4yLTkuMi0yOC05LTE3LjctMjMuNC0zMi4xLTQxLjItNDEuMS04LjgtNC41LTE4LjMtNy42LTI4LTkuMi05LjctMS42LTE5LjYtMi41LTI5LjQtMi42LTQuNS0uMS05LS4yLTEzLjUtLjJMMTI0LjEgMzJjLTQuNSAwLTkgLjEtMTMuNSAuMi0yLjQgLjEtNC45IC4yLTcuNCAuMy03LjQgLjMtMTQuOCAxLjEtMjIuMSAyLjMtNy4zIDEuMy0xNC40IDMuMy0yMS4yIDYuMS0yLjMgMS00LjYgMi02LjggMy4xLTYuNiAzLjQtMTIuOCA3LjUtMTguNCAxMi4zLTEuOSAxLjYtMy43IDMuMy01LjQgNS03IDctMTIuOSAxNS0xNy40IDIzLjgtNC40IDguOC03LjYgMTguMy05LjIgMjgtMS42IDkuNy0yLjQgMTkuNi0yLjUgMjkuNC0uMSA0LjUtLjIgOS0uMiAxMy41TDAgMzU1LjljMCA0LjUgLjEgOSAuMiAxMy41IC4xIDkuOSAxIDE5LjcgMi42IDI5LjQgMS43IDkuNyA0LjggMTkuMiA5LjIgMjggOSAxNy43IDIzLjQgMzIuMSA0MS4xIDQxLjEgOC44IDQuNCAxOC4zIDcuNSAyOCA5LjIgOS43IDEuNiAxOS42IDIuNSAyOS40IDIuNiA0LjUgLjEgOSAuMiAxMy41IC4ybDE5OS44IDBjNC41IDAgOS0uMSAxMy41LS4yIDkuOS0uMSAxOS43LTEgMjkuNC0yLjYgOS43LTEuNyAxOS4yLTQuOCAyOC05LjIgMTcuNy05IDMyLjEtMjMuNCA0MS4xLTQxLjIgNC40LTguOCA3LjYtMTguMyA5LjItMjggMS42LTkuNyAyLjUtMTkuNiAyLjYtMjkuNCAuMS00LjUgLjItOSAuMi0xMy41bDAtMTgzLjhjMC01LjQgMC0xMC43IDAtMTZ6bS02OS45IDI0MWMtMjAtMzguOS01Ny4yLTI5LjMtNzYuMy0xOS41LTEuNyAxLTMuNSAyLTUuMiAzbC0uNCAuMmMtMzkuNSAyMS05Mi41IDIyLjUtMTQ1LjgtLjQtNDMuNC0xOC44LTgwLjEtNTAuMy0xMDUuMy05MC40IDEyLjMgOS4xIDI1LjQgMTYuOSAzOS4yIDIzLjQgNTYuNCAyNi40IDExMyAyNC41IDE1MyAwLTU3LTQzLjgtMTA0LjYtMTAxLTE0MS4xLTE0Ny4yLTctOC4xLTEzLjItMTYuOC0xOC44LTI1LjkgNDMuNyA0MCAxMTIuNyA5MC4yIDEzNy41IDEwNC4xLTUyLjYtNTUuNS05OC45LTEyMy45LTk2LjctMTIxLjcgODIuOCA4My40IDE1OS4yIDEzMC42IDE1OS4yIDEzMC42IDIuOSAxLjYgNSAyLjggNi43IDQgMS42LTQuMSAzLTguMiA0LjItMTIuNSAxMy4yLTQ4LjMtMS43LTEwMy42LTM1LjMtMTQ5LjIgNzYuOCA0Ni4xIDEyMi4yIDEzMy43IDEwMy42IDIwNy44LS40IDEuNy0xIDMuNC0xLjQgNS4xIDM4LjUgNDcuNCAyOCA5OC4yIDIzLjEgODguNmwwIDB6Il19LHJ3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaWxlcy1waW53aGVlbCIsaWNvbjpbNTEyLDUxMixbXSwiZTY5ZiIsIk0yNTMuNSAyNDYuNEwxMzcuMiAxMzAuMmMtLjYtLjYtMS0xLjMtMS40LTJzLS41LTEuNi0uNS0yLjQgLjItMS42IC41LTIuNCAuOC0xLjQgMS40LTJMMjUzLjYgNS4xYy45LS45IDItMS41IDMuMi0xLjdzMi41LS4xIDMuNiAuMyAyLjEgMS4zIDIuOCAyLjMgMS4xIDIuMiAxLjEgMy41bDAgMjMyLjVjMCAxLjMtLjMgMi41LTEgMy42cy0xLjcgMS45LTIuOSAyLjQtMi41IC42LTMuNyAuMy0yLjQtLjktMy4yLTEuOXptNDAuMy00LjRsMC0xMzQuNGMwLS44IC4xLTEuNiAuNS0yLjRzLjgtMS41IDEuMy0yLjEgMS4zLTEuMSAyLTEuNCAxLjYtLjUgMi40LS41bDEzNC40IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjkgMi4zLTEuNyAzLjJMMzA0LjMgMjQ2LjRjLS45IC44LTIgMS40LTMuMiAxLjZzLTIuNCAuMS0zLjUtLjQtMi4xLTEuMy0yLjgtMi4zLTEuMS0yLjItMS4xLTMuNGwuMSAuMXptMzAuNiAzNWMtMS4yIDAtMi41LS4zLTMuNS0xcy0xLjktMS42LTIuNC0yLjgtLjYtMi40LS40LTMuNiAuOC0yLjMgMS43LTMuMkw0MDQgMTgyLjJjLjYtLjYgMS4zLTEgMi0xLjRzMS42LS41IDIuNC0uNSAxLjYgLjIgMi40IC41IDEuNCAuOCAyIDEuNGw4NC40IDg0LjJjLjkgLjkgMS41IDIgMS43IDMuMnMuMSAyLjUtLjMgMy42LTEuMyAyLjEtMi4zIDIuOC0yLjIgMS4xLTMuNSAxLjFsLTE2OC41IDAgLjEtLjF6bTkwLjcgMTMxbC05NS4zLTk1LjJjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjcgMS4zLTIuMSAyLjQtMi44IDIuMy0xIDMuNS0xbDk1LjIgMGMxLjcgMCAzLjIgLjcgNC40IDEuOHMxLjggMi44IDEuOCA0LjRsMCA5NS4zYzAgMS4yLS40IDIuNS0xLjEgMy41cy0xLjcgMS44LTIuOCAyLjMtMi40IC42LTMuNiAuMy0yLjMtLjktMy4yLTEuN3pNMTYuOCAzMDIuMWwyMTYuOSAwYzEuMiAwIDIuNSAuNCAzLjUgMS4xczEuOCAxLjcgMi4zIDIuOCAuNiAyLjQgLjMgMy42LS44IDIuMy0xLjcgMy4yTDEyOS43IDQyMS4yYy0uNiAuNi0xLjMgMS0yIDEuNHMtMS42IC41LTIuNCAuNS0xLjYtLjItMi40LS41LTEuNC0uOC0yLTEuNEwxMi4zIDMxMi44Yy0uOS0uOS0xLjUtMi0xLjctMy4ycy0uMS0yLjUgLjQtMy42IDEuMy0yLjEgMi4zLTIuOCAyLjMtMSAzLjUtMWwwLS4xek0yNjQuMyA0NjUuM2MwIC44LS4yIDEuNi0uNSAyLjRzLS44IDEuNS0xLjQgMi0xLjMgMS0yIDEuNC0xLjYgLjUtMi40IC41bC0xMjggMGMtMS4yIDAtMi41LS40LTMuNS0xLjFzLTEuOC0xLjctMi4zLTIuOC0uNi0yLjQtLjMtMy42IC44LTIuMyAxLjctMy4ybDEyOC0xMjhjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAxMjh6bTQwLTEzMi41bDgyLjggODIuN2MuNiAuNiAxIDEuMyAxLjQgMnMuNSAxLjYgLjUgMi40LS4yIDEuNi0uNSAyLjQtLjggMS40LTEuNCAyTDMwNC4zIDUwN2MtLjkgLjktMiAxLjUtMy4yIDEuN3MtMi41IC4xLTMuNi0uMy0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy41bDAtMTY1LjRjMC0xLjIgLjQtMi41IDEuMS0zLjVzMS43LTEuOCAyLjgtMi4zIDIuNC0uNiAzLjYtLjMgMi4zIC44IDMuMiAxLjd6TTc5IDEyMi40YzAtMS4yIC4zLTIuNSAxLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uNCAyLjMgLjggMy4yIDEuN0wyMzguMSAyNjYuNGMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTQ4LjQgMGMtMS43IDAtMy4yLS43LTQuNC0xLjhzLTEuOC0yLjgtMS44LTQuNGwwLTE0OC40LS4xLS4xeiJdfSxzd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGFyYXZlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjNiZCIsIk01MDQuNiAxMTUuOGMtLjEtLjItLjItLjUtLjMtLjctLjEtLjQtLjMtLjgtLjUtMS4yLS4yLS4yLS4zLS41LS41LS43LS4yLS4zLS41LS42LS43LS45LS4yLS4yLS41LS40LS44LS42LS4zLS4yLS42LS41LS45LS43TDQwNC42IDU1LjVjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMzAwLjMgMTExYy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMi0uNCAuNC0uNSAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDEwNS4yLTgwLjIgNDYuMiAwLTIwNS45YzAtLjctLjEtMS40LS4zLTIuMS0uMS0uMi0uMi0uNC0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjEtLjMtLjQtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMMTE1LjggMS4xYy0xLjItLjctMi42LTEuMS00LTEuMXMtMi44IC40LTQgMS4xTDExLjUgNTYuNWMtLjMgLjItLjYgLjQtLjkgLjctLjMgLjItLjUgLjQtLjggLjYtLjMgLjMtLjUgLjYtLjcgLjktLjIgLjMtLjQgLjUtLjYgLjctLjIgLjQtLjQgLjgtLjUgMS4yLS4xIC4yLS4yIC40LS4zIC43LS4yIC43LS4zIDEuNC0uMyAyLjFsMCAzMjkuN2MwIDEuNCAuNCAyLjggMS4xIDRzMS43IDIuMiAyLjkgMi45TDIwNCA1MTAuOWMuNCAuMiAuOSAuNCAxLjMgLjUgLjIgLjEgLjQgLjIgLjYgLjMgMS4zIC40IDIuOCAuNCA0LjEgMCAuMi0uMSAuNC0uMiAuNi0uMiAuNS0uMiAxLS4zIDEuNC0uNkw0MDQuNiA0MDAuMWMxLjItLjcgMi4yLTEuNyAyLjktMi45czEuMS0yLjYgMS4xLTRsMC0xMDUuMyA5Mi4yLTUzLjFjMS4yLS43IDIuMi0xLjcgMi45LTNzMS4xLTIuNiAxLjEtNGwwLTEwOS44YzAtLjctLjEtMS40LS4yLTIuMXpNMTExLjggMTcuM2w4MC4yIDQ2LjEtODAuMiA0Ni4yLTgwLjItNDYuMiA4MC4yLTQ2LjJ6bTg4LjIgNjBsMCAyMDEuM2MtMzMuMiAxOS4xLTU5LjkgMzQuNS04MC4yIDQ2LjJsMC0yMDEuM0MxNTMgMTA0LjQgMTc5LjcgODkgMjAwIDc3LjN6bTAgNDEyLjhMMjMuNSAzODguNSAyMy41IDc3LjNjMjAuMyAxMS43IDQ3LjEgMjcuMSA4MC4yIDQ2LjJsMCAyMTUuMmMwIC4zIC4xIC42IC4xIC45IDAgLjQgLjEgLjggLjIgMS4yIC4xIC4zIC4yIC42IC40IC45IC4xIC4zIC4zIC43IC40IDEgLjIgLjMgLjQgLjUgLjYgLjggLjIgLjMgLjQgLjYgLjcgLjggLjIgLjIgLjUgLjQgLjggLjYgLjMgLjIgLjYgLjUgLjkgLjdsOTIuMiA1Mi4yIC4xIDkyLjR6bTgtMTA2LjJMMTI4IDMzOC42YzU0LjctMzEuNSAxMTMuNS02NS4zIDE3Ni4zLTEwMS41bDgwLjEgNDYuMUMzNTUgMzAwIDI5Ni4yIDMzMy41IDIwOCAzODMuOXptMTg0LjUgNC42bC0xNzYuNSAxMDEuNiAwLTkyLjNDMzE3LjQgMzQwIDM3Ni4yIDMwNi40IDM5Mi41IDI5N2wwIDkxLjR6bTAtMTE5LjFjLTIwLjMtMTEuNi00Ny4xLTI3LTgwLjItNDYuMWwwLTkxLjRjMjAuMyAxMS43IDQ3LjEgMjcuMSA4MC4yIDQ2LjJsMCA5MS4zem04LTEwNS4zbC04MC4yLTQ2LjIgODAuMi00Ni4yIDgwLjIgNDYuMS04MC4yIDQ2LjJ6bTggMTA1LjNsMC05MS4zYzMzLjItMTkuMSA2MC0zNC41IDgwLjMtNDYuMmwwIDkxLjQtODAuMyA0Ni4yeiJdfSxpd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3Bmb3JtcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI5OCIsIk00NDggNzUuMmwwIDM2MS43YzAgMjQuMy0xOSA0My4yLTQzLjIgNDMuMmwtMzYxLjYgMEMxOS4zIDQ4MCAwIDQ2MS40IDAgNDM2LjhMMCA3NS4yQzAgNTEuMSAxOC44IDMyIDQzLjIgMzJsMzYxLjcgMGMyNCAwIDQzLjEgMTguOCA0My4xIDQzLjJ6TTQxMC43IDQzNi44bDAtMzYxLjZjMC0zLTIuNi01LjgtNS44LTUuOGwtOS4zIDAtMTEwLjMgNzQuNi02MS4zLTQ5LjktNjEuMiA0OS45LTExMC4zLTc0LjctOS4zIDBjLTMuMiAwLTUuOCAyLjgtNS44IDUuOGwwIDM2MS43YzAgMyAyLjYgNS44IDUuOCA1LjhsMzYxLjcgMGMzLjIgLjEgNS44LTIuNyA1LjgtNS44ek0xNTAuMiAxODZsMCAzNy03My41IDAgMC0zNyA3My41IDB6bTAgNzQuNGwwIDM3LjMtNzMuNSAwIDAtMzcuMyA3My41IDB6bTExLjEtMTQ3LjNsNTQtNDMuNy0xMTguNSAwIDY0LjUgNDMuN3ptMjEwIDcyLjlsMCAzNy0xOTYgMCAwLTM3IDE5NiAwem0wIDc0LjRsMCAzNy4zLTE5NiAwIDAtMzcuMyAxOTYgMHpNMjg2LjcgMTEzLjFsNjQuNS00My43LTExOC40IDAgNTMuOSA0My43ek0zNzEuMyAzMzVsMCAzNy4zLTk5LjQgMCAwLTM3LjMgOTkuNCAweiJdfSxvd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWtlci1kZWNrIixpY29uOls1MTIsNTEyLFtdLCJmODNjIiwiTTIxMy45IDI5NkwxMDAgMjk2Yy0yNi41IDAtNTItMTAuNS03MC43LTI5LjNTMCAyMjIuNSAwIDE5NiAxMC41IDE0NCAyOS4zIDEyNS4zIDczLjUgOTYgMTAwIDk2bDEzMi44IDBjMTAuNiAwIDIwLjggNC4yIDI4LjMgMTEuN3MxMS43IDE3LjcgMTEuNyAyOC4zLTQuMiAyMC44LTExLjcgMjguMy0xNy43IDExLjctMjguMyAxMS43TDk4IDE3NmMtMjYuNSAwLTI2LjQgNDAgMCA0MGwxMTMuOCAwYzI2LjUgMCA1MiAxMC41IDcwLjcgMjkuM3MyOS4zIDQ0LjIgMjkuMyA3MC43LTEwLjUgNTItMjkuMyA3MC43LTQ0LjIgMjkuMy03MC43IDI5LjNMNDAgNDE2Yy0xMC42IDAtMjAuOC00LjItMjguMy0xMS43UzAgMzg2LjYgMCAzNzYgNC4yIDM1NS4yIDExLjcgMzQ3LjcgMjkuNCAzMzYgNDAgMzM2bDE3My45IDBjMjYuNSAwIDI2LjUtNDAgMC00MHpNMjk4IDQxNmMxMy41LTkuMiAyNS0yMSAzMy44LTM0LjdzMTQuNy0yOS4yIDE3LjMtNDUuM2w2NC42IDBjMi42IDAgNS4yLS42IDcuNi0xLjZzNC42LTIuNSA2LjQtNC40IDMuMy00LjEgNC4yLTYuNSAxLjUtNSAxLjQtNy42bDAtMTIwYzAtMi42LS41LTUuMi0xLjQtNy42cy0yLjQtNC42LTQuMi02LjUtNC0zLjMtNi40LTQuNC01LTEuNi03LjYtMS42bC0xMTcuMiAwYzkuNy0xMS4xIDE1LTI1LjMgMTUtNDBzLTUuMy0yOC45LTE1LTQwbDEzNi45IDBjNDMuNCAwIDc4LjYgMzUuOCA3OC42IDgwbDAgMTYwYzAgNDQuMi0zNS4yIDgwLTc4LjYgODBMMjk4IDQxNnoiXX0sbnd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZsaWNrciIsaWNvbjpbNDQ4LDUxMixbXSwiZjE2ZSIsIk00MDAgMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTQ0LjUgMTkyYTYzLjUgNjMuNSAwIDEgMSAwIDEyNyA2My41IDYzLjUgMCAxIDEgMC0xMjd6bTE1OSAwYTYzLjUgNjMuNSAwIDEgMSAwIDEyNyA2My41IDYzLjUgMCAxIDEgMC0xMjd6Il19LGx3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy12aXNhIixpY29uOls1NzYsNTEyLFtdLCJmMWYwIiwiTTQ3MC4xIDIzMS4zczcuNiAzNy4yIDkuMyA0NWwtMzMuNCAwYzMuMy04LjkgMTYtNDMuNSAxNi00My41LS4yIC4zIDMuMy05LjEgNS4zLTE0LjlsMi44IDEzLjR6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE1Mi41IDMzMS4ybDYzLjItMTU1LjItNDIuNSAwLTM5LjMgMTA2LTQuMy0yMS41LTE0LTcxLjRjLTIuMy05LjktOS40LTEyLjctMTguMi0xMy4xbC02NC43IDAtLjcgMy4xYzE1LjggNCAyOS45IDkuOCA0Mi4yIDE3LjFsMzUuOCAxMzUgNDIuNSAwem05NC40IC4ybDI1LjItMTU1LjQtNDAuMiAwLTI1LjEgMTU1LjQgNDAuMSAwem0xMzkuOS01MC44Yy4yLTE3LjctMTAuNi0zMS4yLTMzLjctNDIuMy0xNC4xLTcuMS0yMi43LTExLjktMjIuNy0xOS4yIC4yLTYuNiA3LjMtMTMuNCAyMy4xLTEzLjQgMTMuMS0uMyAyMi43IDIuOCAyOS45IDUuOWwzLjYgMS43IDUuNS0zMy42Yy03LjktMy4xLTIwLjUtNi42LTM2LTYuNi0zOS43IDAtNjcuNiAyMS4yLTY3LjggNTEuNC0uMyAyMi4zIDIwIDM0LjcgMzUuMiA0Mi4yIDE1LjUgNy42IDIwLjggMTIuNiAyMC44IDE5LjMtLjIgMTAuNC0xMi42IDE1LjItMjQuMSAxNS4yLTE2IDAtMjQuNi0yLjUtMzcuNy04LjNsLTUuMy0yLjUtNS42IDM0LjljOS40IDQuMyAyNi44IDguMSA0NC44IDguMyA0Mi4yIC4xIDY5LjctMjAuOCA3MC01M3pNNTI4IDMzMS40bC0zMi40LTE1NS40LTMxLjEgMGMtOS42IDAtMTYuOSAyLjgtMjEgMTIuOWwtNTkuNyAxNDIuNSA0Mi4yIDBzNi45LTE5LjIgOC40LTIzLjNsNTEuNiAwYzEuMiA1LjUgNC44IDIzLjMgNC44IDIzLjNsMzcuMiAweiJdfSxjd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXB3b3JrIixpY29uOls2NDAsNTEyLFtdLCJlNjQxIiwiTTQ5My45IDI5NS42Yy01MC4zIDAtODMuNS0zOC45LTkyLjgtNTMuOSAxMS45LTk1LjMgNDYuOC0xMjUuNCA5Mi44LTEyNS40IDQ1LjUgMCA4MC45IDM2LjQgODAuOSA4OS43cy0zNS40IDg5LjctODAuOSA4OS43bDAtLjF6bTAtMjM3LjhjLTgxLjkgMC0xMjcuOCA1My40LTE0MSAxMDguNC0xNC45LTI4LTI1LjktNjUuNS0zNC41LTEwMC4zbC0xMTMuMiAwIDAgMTQxYzAgNTEuMS0yMy4zIDg5LTY4LjggODlzLTcxLjYtMzcuOC03MS42LTg5bC41LTE0MS02NS4zIDAgMCAxNDFjMCA0MS4xIDEzLjMgNzguNCAzNy42IDEwNS4xIDI1IDI3LjUgNTkuMiA0MS44IDk4LjggNDEuOCA3OC44IDAgMTMzLjgtNjAuNCAxMzMuOC0xNDYuOWwwLTk0LjhjOC4yIDMxLjIgMjcuOCA5MS4xIDY1LjMgMTQzLjZsLTM1IDE5OS40IDY2LjQgMCAyMy4xLTE0MS4zYzcuNiA2LjMgMTUuNyAxMiAyNC4yIDE3IDIyLjIgMTQgNDcuNyAyMS45IDczLjkgMjIuOCAwIDAgNCAuMiA2LjEgLjIgODEuMiAwIDE0NS45LTYyLjkgMTQ1LjktMTQ3LjhTNTc1LjMgNTcuOSA0OTQuMSA1Ny45bC0uMi0uMXoiXX0sZHd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imtha2FvLXRhbGsiLGljb246WzU3Niw1MTIsW10sImU3ZDciLCJNMjg4IDIuNWMxNTkuMSAwIDI4OCAxMDEuNyAyODggMjI3LjEgMCAxMjUuNC0xMjguOSAyMjcuMS0yODggMjI3LjEtMTcuNSAwLTM0LjYtMS4yLTUxLjItMy42LTE2LjYgMTEuNy0xMTIuNiA3OS4xLTEyMS43IDgwLjQgMCAwLTMuNyAxLjQtNi45LS40cy0yLjYtNi43LTIuNi02LjdDMTA2LjYgNTE5LjggMTMwLjYgNDM3LjIgMTM1IDQyMS45IDUzLjkgMzgxLjggMCAzMTAuNiAwIDIyOS41IDAgMTA0LjEgMTI4LjkgMi41IDI4OCAyLjV6TTg2LjIgMTYxLjdjLTkgMC0xNi4zIDcuMy0xNi4zIDE2LjNzNy4zIDE2LjMgMTYuMyAxNi4zbDI1LjkgMCAwIDk4LjdjMCA4LjggNy41IDE1LjkgMTYuNiAxNS45czE2LjYtNy4xIDE2LjYtMTUuOWwwLTk4LjcgMjUuOSAwYzkgMCAxNi4zLTcuMyAxNi4zLTE2LjNzLTcuMy0xNi4zLTE2LjMtMTYuM2wtODUuMSAwem0xNDAuOCAwYy0xMC44IC4yLTE5LjMgOC40LTIyLjEgMTYuNEwxNjUuMiAyODIuN2MtNSAxNS43LS42IDIxLjUgMy45IDIzLjYgMy4yIDEuNSA2LjkgMi4zIDEwLjYgMi4zIDYuOSAwIDEyLjItMi44IDEzLjgtNy4zbDguMi0yMS42IDUwLjcgMCA4LjIgMjEuNWMxLjYgNC41IDYuOSA3LjMgMTMuOCA3LjMgMy43IDAgNy4zLS44IDEwLjYtMi4zIDQuNi0yLjEgOS03LjkgMy45LTIzLjZMMjQ5LjIgMTc4LjFjLTIuOC04LTExLjMtMTYuMi0yMi4yLTE2LjR6bTE4MC45IDBjLTkuMiAwLTE2LjYgNy41LTE2LjYgMTYuNmwwIDExMy43YzAgOS4yIDcuNSAxNi42IDE2LjYgMTYuNnMxNi42LTcuNSAxNi42LTE2LjZsMC0zNi4yIDUuOC01LjggMzguOSA1MS42YzMuMiA0LjIgOCA2LjYgMTMuMyA2LjYgMy42IDAgNy4xLTEuMSAxMC0zLjMgMy41LTIuNyA1LjgtNi42IDYuNC0xMXMtLjUtOC44LTMuMi0xMi4zbC00MC45LTU0LjIgMzcuOS0zNy44YzIuNi0yLjYgMy45LTYuMiAzLjctMTAuMS0uMi0zLjktMi03LjYtNC45LTEwLjUtMy4xLTMuMS03LjMtNC45LTExLjQtNC45LTMuNiAwLTYuOCAxLjMtOS4yIDMuN2wtNDYuMyA0Ni40IDAtMzUuN2MwLTkuMi03LjUtMTYuNi0xNi42LTE2LjZ6bS05MS4zIDBjLTkuMyAwLTE2LjkgNy41LTE2LjkgMTYuNmwwIDExMi44YzAgOC40IDcuMSAxNS4yIDE1LjkgMTUuM2w1My4zIDBjOC44IDAgMTUuOS02LjkgMTUuOS0xNS4zcy03LjItMTUuMi0xNS45LTE1LjJsLTM1LjMgMCAwLTk3LjZjMC05LjItNy42LTE2LjYtMTctMTYuNnptLTczIDg4LjZsLTMzLjIgMCAxNi42LTQ3LjEgMTYuNiA0Ny4xeiJdfSx1d3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmx1dHRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5NCIsIk00MjkuNSAyMzYuM0wyOTEuNyAzNzQuMSA0MjkuNSA1MTIgMjcyIDUxMmMtMzYuMS0zNi4xLTgyLjEtODIuMS0xMzcuOS0xMzcuOWwxMzcuOS0xMzcuOCAxNTcuNSAwek0yNzIgMEwxNiAyNTYgOTQuOCAzMzQuOCA0MjkuNSAwIDI3MiAweiJdfSxwd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnVmZmVyIixpY29uOls0NDgsNTEyLFtdLCJmODM3IiwiTTQyOC4yIDM4MC43TDIzMS43IDQ3OC41Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUwyMC41IDM4MC43Yy00LTItNC01LjMgMC03LjNMNjcuNiAzNTBjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWwxMzQuOCA2N2MyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDEzNC44LTY3YzIuMy0xIDQuOC0xLjUgNy4zLTEuNXM1IC41IDcuMyAxLjVsNDcuMSAyMy40YzQgMiA0IDUuMiAwIDcuMnptMC0xMzYuNWwtNDcuMS0yMy40Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMzEuNyAyODcuOGMtMi4zIDEtNC44IDEuNS03LjMgMS41cy01LS41LTcuMy0xLjVMODIuMyAyMjAuN2MtMi4zLTEtNC44LTEuNS03LjMtMS41cy01IC41LTcuMyAxLjVMMjAuNSAyNDQuMWMtNCAyLTQgNS4zIDAgNy4zbDE5Ni41IDk3LjhjMi4zIDEgNC44IDEuNSA3LjMgMS41czUtLjUgNy4zLTEuNWwxOTYuNS05Ny44YzQtMiA0LTUuMyAwLTcuM3pNMjAuNSAxMzAuNEwyMTcgMjIwLjdjNC43IDEuOSAxMCAxLjkgMTQuNyAwbDE5Ni41LTkwLjNjNC0xLjkgNC00LjkgMC02LjdMMjMxLjcgMzMuNGMtNC43LTEuOS0xMC0xLjktMTQuNyAwTDIwLjUgMTIzLjdjLTQgMS44LTQgNC45IDAgNi43eiJdfSxmd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JhdGlwYXkiLGljb246WzUxMiw1MTIsW10sImYxODQiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0zNzQuMyAyMzMuN0wyNTcuNyAzOTEuMyAxNDEuMyAyMzMuN2MtOS0xMi4zLTE5LjctNTIgMTQtNzQuMyAyOS0xOC43IDU2LjQtNC4zIDcwLjcgMTIuMyAxNi40IDE4LjUgNDguMSAxNy40IDYzLjcgMCAxNC4zLTE2LjYgNDEuNy0zMSA3MC4zLTEyLjMgMzQgMjIuMyAyMy4zIDYxLjkgMTQuMiA3NC4zeiJdfSxod3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZTA3OSIsIk0xMDUuNyAyMTVsMCA0MS4yIDU3LjEgMGMtMS4yIDYuNi0zLjYgMTIuOS03LjIgMTguNXMtOC40IDEwLjQtMTMuOSAxNC4xYy05LjUgNi42LTIxLjcgMTAuMy0zNiAxMC4zLTI3LjYgMC01MC45LTE4LjktNTkuMy00NC4yLTQuNC0xMy4zLTQuNC0yNy43IDAtNDEgOC40LTI1LjUgMzEuNy00NC40IDU5LjMtNDQuNCA3LjUtLjEgMTQuOSAxLjIgMjEuOSA0czEzLjMgNi45IDE4LjYgMTIuMUwxNzYuNSAxNTVjLTE5LjEtMTguMS00NC40LTI4LjEtNzAuNy0yNy44LTE5LjcgLjEtMzguOSA1LjctNTUuNiAxNi4xcy0zMC4xIDI1LjMtMzguOCA0M0MzLjkgMjAxLjIgMCAyMTcuNyAwIDIzNC40czMuOSAzMy4yIDExLjMgNDguMWwwIC4yYzguNyAxNy43IDIyLjEgMzIuNSAzOC44IDQzczM1LjkgMTYgNTUuNiAxNmMyOC41IDAgNTIuNS05LjUgNzAtMjUuOSAyMC0xOC42IDMxLjQtNDYuMiAzMS40LTc4LjkgMC03LjMtLjYtMTQuNi0xLjgtMjEuOGwtOTkuNyAwem0zODkuNC00Yy0xMC4xLTkuNC0yMy45LTE0LjEtNDEuNC0xNC4xLTIyLjUgMC0zOS4zIDguMy01MC41IDI0LjlMNDI0LjEgMjM1YzcuNi0xMS4zIDE4LjEtMTcgMzEuMy0xNyA4LjQgMCAxNi41IDMuMiAyMi43IDguOCAzIDIuNiA1LjUgNS45IDcuMSA5LjZzMi41IDcuNiAyLjUgMTEuN2wwIDUuNWMtOS4xLTUuMS0yMC42LTcuOC0zNC42LTcuOC0xNi40IDAtMjkuNiAzLjktMzkuNSAxMS44cy0xNC44IDE4LjMtMTQuOCAzMS42Yy0uMiA1LjkgMSAxMS44IDMuNCAxNy4yczYgMTAuMiAxMC41IDE0LjFjOS4yIDguMyAyMSAxMi41IDM0LjggMTIuNSAxNi4zIDAgMjkuMi03LjMgMzktMjEuOWwxIDAgMCAxNy43IDIyLjYgMCAwLTc4LjdjLjEtMTYuNi00LjktMjkuNy0xNS0zOXptLTE5LjIgODkuM2MtMy41IDMuNS03LjYgNi4zLTEyLjIgOC4ycy05LjUgMi45LTE0LjQgMi45Yy02LjcgLjEtMTMuMS0yLjEtMTguMy02LjItMi40LTEuOC00LjQtNC4yLTUuNy02LjlzLTItNS43LTItOC43YzAtNyAzLjItMTIuOCA5LjUtMTcuNHMxNC41LTcgMjQuMS03YzEzLjItLjIgMjMuNSAyLjggMzAuOCA4LjggMCAxMC4xLTQgMTguOS0xMS43IDI2LjR6bS05My43LTE0MmMtNS4zLTUuMy0xMS42LTkuNS0xOC42LTEyLjNzLTE0LjQtNC4yLTIxLjktNGwtNjIuNyAwIDAgMTg2LjcgMjMuNiAwIDAtNzUuNiAzOSAwYzE2IDAgMjkuNS01LjQgNDAuNS0xNS45IC45LS45IDEuOC0xLjggMi42LTIuNyA5LjYtMTAuNSAxNC44LTI0LjQgMTQuMy0zOC42cy02LjYtMjcuNy0xNi45LTM3LjZsMCAwem0tMTYuNiA2Mi4yYy0zIDMuMi02LjYgNS43LTEwLjYgNy40cy04LjQgMi41LTEyLjcgMi4zbC0zOS42IDAgMC02NS4yIDM5LjYgMGM4LjUgMCAxNi42IDMuMyAyMi42IDkuMiA2LjEgNi4xIDkuNiAxNC4zIDkuOCAyM3MtMy4xIDE3LTkgMjMuM2wwIDB6TTYxNC4zIDIwMWwtMzYuNSA5MS43LS41IDAtMzcuNC05MS43LTI1LjcgMCA1MS44IDExOS42LTI5LjQgNjQuMyAyNC4zIDAgNzktMTgzLjktMjUuNyAweiJdfSxtd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwbGUiLGljb246WzM4NCw1MTIsW10sImYxNzkiLCJNMzE5LjEgMjY4LjdjLS4yLTM2LjcgMTYuNC02NC40IDUwLTg0LjgtMTguOC0yNi45LTQ3LjItNDEuNy04NC43LTQ0LjYtMzUuNS0yLjgtNzQuMyAyMC43LTg4LjUgMjAuNy0xNSAwLTQ5LjQtMTkuNy03Ni40LTE5LjctNTUuOCAuOS0xMTUuMSA0NC41LTExNS4xIDEzMy4yIDAgMjYuMiA0LjggNTMuMyAxNC40IDgxLjIgMTIuOCAzNi43IDU5IDEyNi43IDEwNy4yIDEyNS4yIDI1LjItLjYgNDMtMTcuOSA3NS44LTE3LjkgMzEuOCAwIDQ4LjMgMTcuOSA3Ni40IDE3LjkgNDguNi0uNyA5MC40LTgyLjUgMTAyLjYtMTE5LjMtNjUuMi0zMC43LTYxLjctOTAtNjEuNy05MS45ek0yNjIuNSAxMDQuNWMyNy4zLTMyLjQgMjQuOC02MS45IDI0LTcyLjUtMjQuMSAxLjQtNTIgMTYuNC02Ny45IDM0LjktMTcuNSAxOS44LTI3LjggNDQuMy0yNS42IDcxLjkgMjYuMSAyIDQ5LjktMTEuNCA2OS41LTM0LjN6Il19LGd3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0dW1ibHIiLGljb246WzMyMCw1MTIsW10sImYxNzMiLCJNMzA5LjkgNDgwLjNjLTEzLjYgMTQuNS01MCAzMS43LTk3LjQgMzEuNy0xMjAuOCAwLTE0Ny04OC44LTE0Ny0xNDAuNmwwLTE0NC00Ny41IDBjLTUuNSAwLTEwLTQuNS0xMC0xMGwwLTY4YzAtNy4yIDQuNS0xMy42IDExLjMtMTYgNjItMjEuOCA4MS41LTc2IDg0LjMtMTE3LjEgLjgtMTEgNi41LTE2LjMgMTYuMS0xNi4zbDcwLjkgMGM1LjUgMCAxMCA0LjUgMTAgMTBsMCAxMTUuMiA4MyAwYzUuNSAwIDEwIDQuNCAxMCA5LjlsMCA4MS43YzAgNS41LTQuNSAxMC0xMCAxMGwtODMuNCAwIDAgMTMzLjJjMCAzNC4yIDIzLjcgNTMuNiA2OCAzNS44IDQuOC0xLjkgOS0zLjIgMTIuNy0yLjIgMy41IC45IDUuOCAzLjQgNy40IDcuOWwyMiA2NC4zYzEuOCA1IDMuMyAxMC42LS40IDE0LjV6Il19LGJ3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LXNxdWFkcm9uIixpY29uOls1MTIsNTEyLFtdLCJmNTExIiwiTTk2IDYzLjRjNDYuNS0zNi4xIDEwNS42LTU2LjEgMTY0LjUtNTQuNiAyOS42LS40IDU5LjEgNS40IDg2LjkgMTUuMy0yNC4xLTQuNi00OS02LjMtNzMuNC0yLjUtNDIuOSA1LjMtODMgMjcuMi0xMTEuOCA1OS4yIDUuNy0xIDEwLjgtMy43IDE2LTUuOSAxOC4xLTcuOSAzNy41LTEzLjMgNTcuMi0xNC44IDE5LjctMi4xIDM5LjYtLjQgNTkuMyAxLjktMTQuNCAyLjgtMjkuMSA0LjYtNDMgOS42LTM0LjQgMTEuMS02NS4zIDMzLjItODYuMyA2Mi42LTEzLjggMTkuNy0yMy42IDQyLjktMjQuNyA2Ny4xLS40IDE2LjUgNS4yIDM0LjggMTkuOCA0NCAxMS4yIDYuOCAyNC42IDkuMiAzNy41IDYuNyAxNS40LTIuNSAzMC4xLTguNiA0My42LTE2LjMgMTEuNS02LjggMjIuNy0xNC42IDMyLTI0LjMgMy44LTMuMiAyLjUtOC40IDIuNi0xMi44LTIuMS0uMy00LjQtMS4xLTYuMyAuMy0xMS40IDYuMy0yMy40IDExLjQtMzUuOCAxNS40LTIwIDYuMi00Mi4yIDguNS02Mi4xIC44IDEyLjggMS43IDI2LjEgLjMgMzcuNy01LjQgMjAuMi05LjcgMzYuOC0yNS4yIDU0LjQtMzguOCAyNy43LTIxLjMgNTcuNS0zOS45IDg4LjktNTUuMyAyNS43LTEyIDUyLjktMjIuOCA4MS42LTI0LjEtMTUuNiAxMy43LTMyLjEgMjYuNS00Ni44IDQxLjQtMTQuNSAxNC0yNy41IDI5LjUtNDAuMSA0NS4yLTMuNSA0LjYtOSA2LjktMTMuNiAxMC4yLTIyLjQgMTUtNDAuMyAzNS44LTUxLjkgNjAuMS05LjMgMTkuNy0xNC41IDQxLjktMTEuOCA2My42IDEuOSAxMy43IDguNyAyNy42IDIwLjkgMzQuOSAxMi45IDggMjkgOC4xIDQzLjUgNS4xIDMyLjgtNy40IDYxLjQtMjguOSA4MS01NS44IDIwLjQtMjcuNSAzMC41LTYyLjIgMjkuMi05Ni4zLS41LTcuNS0xLjYtMTUtMS43LTIyLjUgOCAxOS41IDE0LjggMzkuNyAxNi42IDYwLjggMiAxNC4zIC43IDI4LjgtMS42IDQyLjktMS45IDExLTUuNyAyMS41LTcuOCAzMi40IDIwLjQtMjIuOSAzNC01MC45IDM5LjMtODEuMSA1LjYtMzUuNSAuNy03MS45LTE0LjItMTA0LjYgMjAuOCAzMiAzMi4zIDY5LjYgMzUuNyAxMDcuNSAuNSAxMi43IC41IDI1LjUgMCAzOC4yLTIuOCAzNC4zLTEyLjkgNjcuNi0yOS42IDk3LjgtMjYuMSA0Ny4zLTY4IDg1LjYtMTE3LjIgMTA4LTc4LjMgMzYuMi0xNzQuNyAzMS4zLTI0OC0xNC43LTM5LTIzLjgtNzAuNi01OC05MS40LTk4LjctMTQuNy0yOC45LTIzLjMtNjAuNS0yNS40LTkyLjlsMC0zMS4zQzMuOSAxNzIgNDAuOSAxMDUuOCA5NiA2My40em0yMjIgODAuM2M1LjUtLjkgMTAuOC0yLjQgMTYtNC41IDUtMS44IDkuMi01LjkgMTAuMy0xMS4yLTkgNS0xOCA5LjktMjYuMyAxNS43eiJdfSx2d3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2VudGVyY29kZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM4MCIsIk0yMDEuOCAyNTQuOGE2NC4xIDY0LjEgMCAxIDEgMTI3LjQgMTMuOCA2NC4xIDY0LjEgMCAxIDEgLTEyNy40LTEzLjh6bTQxLjYgMjQ4LjlDOTYuNyA0OTYtOC4yIDM2NS41IDEwLjEgMjI0LjMgMjEuMyAxMzcuNyA3NS45IDY3LjQgMTQ5LjIgMzIuMyAzMTAuMi00NC44IDQ5OC45IDY5LjcgNTAzLjkgMjQ4LjkgNTA4IDM5NS45IDM4NS41IDUxMS4xIDI0My40IDUwMy43em0xNzkuOS0xODBjMjcuOS0xMTgtMTYwLjUtMjA1LjktMjM3LjItMjM0LjItNTcuNSA1Ni4zLTY5LjEgMTg4LjYtMzMuOCAzNDQuNCA2OC44IDE1LjggMTY5LjEtMjYuNCAyNzEtMTEwLjJ6Il19LHh3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWJpYW4iLGljb246WzQ0OCw1MTIsW10sImU2MGIiLCJNMzgwLjQgMjQ1LjZjMy03LjYgNS41LTE0IDUuMi0yNC40bC00LjMgOWM0LjQtMTMuMiA0LTI3LjEgMy42LTQwLjQtLjItNi0uMy0xMS44IDAtMTcuNGwtMS44LS41Yy0xLjUtNDUuMi00MC42LTkzLjEtNzUuMy0xMDkuNC0zMC0xMy44LTc2LjEtMTYuMi05Ny4zLTUuOCAxLjMtMS4xIDQuMi0yIDYuOC0yLjdsLjMtLjFjMy4zLTEgNi0xLjcgNC0yLjktMTkuMiAxLjktMjQuOSA1LjUtMzEuMSA5LjRsLS4xIDBjLTQuNiAyLjktOS41IDYtMjAuMyA4LjctMy41IDMuNCAxLjcgMiA1LjggLjlzNy4yLTEuOS0uMSAyLjRjLTMuNSAxLTYuNiAxLjMtOS42IDEuNmwtLjEgMGMtOC4zIC44LTE1LjggMS42LTMwLjcgMTcgLjggMS4zIDMuNC0uMiA1LjMtMS4zbC4xLS4xYzIuMy0xLjQgMy40LTItMS43IDQuNC0xOS4xLTIuNC02MC4zIDQzLjctNjkuMSA1OWw0LjYgLjhjLTMuMiA4LTYuOCAxNC44LTEwIDIwLjgtNC4zIDguMS03LjkgMTQuOS04LjcgMjEuMy0uMyA1LjEtMSAxMS0xLjcgMTcuMy0uMSAxLS4yIDItLjMgM2wtLjEgLjZjLTMgMjcuMy02LjcgNjAuOCAzLjkgNzNsLTEuMyAxM2MuNiAxLjIgMS4xIDIuMyAxLjYgMy41IC4yIC40IC40IC44IC41IDEuMSAxIDIuMSAyIDQuMiAzLjMgNi4ybC0zIC4yYzcgMjIuMSAxMC44IDIyLjUgMTUuMSAyMi45IDQuNCAuNCA5LjMgLjkgMTguNyAyNC4yLTIuNy0uOS01LjUtMS45LTkuNC03LjItLjUgNC4xIDUuOCAxNi4zIDEzLjEgMjUuOGwtMy4xIDMuNmMyLjEgMy43IDQuOCA2LjIgNy42IDguOCAxIC45IDIuMSAxLjkgMy4xIDIuOS0xMS45LTYuNSAzLjIgMTMuNyAxMS45IDI1LjIgLjggMS4xIDEuNSAyIDIuMiAyLjkgMS40IDEuOSAyLjUgMy40IDIuOSA0LjFsMi40LTQuMmMtLjMgNi4xIDQuMyAxMy45IDEzLjEgMjQuN2w3LjMtLjNjMyA2IDE0IDE2LjcgMjAuNyAxNy4ybC00LjQgNS44YzguMSAyLjYgMTAuMyA0LjMgMTIuNyA2LjIgMi42IDIuMSA1LjQgNC4zIDE2LjEgOC4xbC00LjItNy40YzMuNSAzIDYuMiA1LjkgOC44IDguN2wuMSAuMWM1LjIgNS42IDkuOSAxMC42IDE5LjcgMTUuMyAxMC43IDMuNyAxNi42IDQuNyAyMi43IDUuOCAuMyAwIC42IC4xIC45IC4xIDUuNCAuOCAxMS4yIDEuOCAyMC44IDQuNS0xLjEtLjEtMi4yLS4xLTMuMy0uMS0yLjMtLjEtNC43LS4xLTctLjEtMTQuNC0uMi0yOS4yLS40LTQyLjctNS4yLTk2LjYtMjUuNy0xODQuOS0xMzktMTc4LjQtMjU1LjYtLjYtOS45LS4zLTIwLjkgMC0zMC43IC40LTEzLjUgLjctMjQuOC0xLjYtMjguM2wxLTMuMWM1LjMtMTcuNCAxMS43LTM4LjIgMjMuOC02Mi44bC0uMS0uMiAwLS4xYy40IC40IDMuNCAzLjQgOC44LTUuOCAuOC0xLjggMS42LTMuNyAyLjQtNS42IC41LTEuMSAuOS0yLjIgMS40LTMuMiAyLjUtNi4xIDUuMS0xMi4zIDguNC0xNy45bDIuNi0uNmMxLjctMTAuMSAxNy0yMy44IDI5LjgtMzUuMmwxLjEtMWM1LjctNS4xIDEwLjctOS43IDEzLjYtMTMuMWwuNyA0LjRjMTctMTUuOSA0NC42LTI3LjUgNjUuNi0zNi40bC41LS4yYzQuOC0yIDkuMy0zLjkgMTMuMy01LjctMy40IDMuOCAyLjIgMi43IDEwIDEgNC44LTEgMTAuNC0yLjEgMTUuMy0yLjRsLTMuOSAyLjFjLTIuNyAxLjQtNS40IDIuOC04IDQuNiA4LjEtMiAxMS43LTEuNCAxNS43LS44bC4zIDBjMy41IC42IDcuMyAxLjIgMTQuNiAuMi01LjYgLjgtMTIuMyAzLTExLjIgMy44IDcuOSAuOSAxMi44LS4xIDE3LjItMWwuMiAwYzUuNS0xLjEgMTAuMy0yIDE5LjMgLjlsLTEtNC44YzcuMyAyLjYgMTIuNyA0LjMgMTcuNSA1LjhsLjUgLjFjMTAgMyAxNy42IDUuMyAzNC4yIDE0LjEgMy4yIC4yIDUuMy0uNSA3LjQtMS4ybC4xIDBjMy42LTEuMSA3LTIuMSAxNS4yIDEuMiAuMyAuNSAuNSAxIC43IDEuNCAuMSAuMiAuMiAuNSAuMyAuN2wwIC4xYzEgMi42IDEuOCA0LjYgMTQuNiAxMi4xIDEuNy0uNy0yLjctNC43LTYuNC04LjJsLS4xLS4xYy0uMi0uMS0uMy0uMy0uNS0uNCAzMi4yIDE3LjMgNjcuMyA1NC4xIDc4IDkzLjUtNi0xMS4xLTUuMi01LjUtNC4zIC41IC42IDQgMS4yIDguMS0uMiA3LjUgNC41IDEyLjEgOC4xIDI0LjUgMTAuNCAzNy40bC0uOC0yLjktLjEtLjNjLTMuMy0xMS45LTkuNi0zNC4zLTE5LjktNDkuMy0uNCA0LjMtMi44IDMuOS01LjIgMy41bC0uMSAwYy0zLjMtLjYtNi4yLTEuMS0xLjkgMTIuNiAyLjYgMy44IDMuMSAyLjQgMy41IDEuMSAuNS0xLjUgLjktMi43IDQuNyA1LjIgLjEgNC4xIDEgOC4yIDIuMSAxMi43bC4xIC42Yy4xIC4zIC4xIC41IC4yIC44bC4xIC42Yy42IDIuNiAxLjMgNS40IDEuOCA4LjQtMS4xLS4yLTIuMy0yLjItMy40LTQuMi0xLjQtMi40LTIuOC00LjctMy43LTMuMiAyLjQgMTEuNSA2LjUgMTcuNCA4IDE4LjMtLjMgLjYtLjYgLjctMS4xIC43LS44IDAtMS44IC4xLTEuOSA1LjMgLjcgMTMuNyAzLjMgMTIuNSA1LjMgMTEuNiAuNi0uMyAxLjItLjYgMS43LS40LS42IDIuNS0xLjYgNS4xLTIuNyA3LjktMi44IDcuMS02IDE1LjQtMy40IDI2LjEtLjgtMy0yLTYtMy4xLTguOWwtLjEtLjRjLS4yLS41LS40LTEtLjYtMS41LS4zLS44LS42LTEuNi0uOS0yLjMtLjYgNC40LS4zIDcuNy0uMSAxMC42bDAgLjdjLjQgNS4zIC43IDEwLTMgMTkuOSA0LjMtMTQuMiAzLjgtMjYuOS0uMi0yMC44IDEgMTAuOS0zLjcgMjAuNC04IDI4LjlsLS4xIC4yYy0zLjYgNy4xLTYuOCAxMy41LTUuOSAxOS4zbC01LjItNy4xYy03LjUgMTAuOS03IDEzLjMtNi41IDE1LjVsMCAuMWMuNSAxLjkgMSAzLjgtMy40IDEwLjggMS43LTIuOSAxLjMtMy42IDEtNC4yLS40LS44LS43LTEuNSAxLjctNS4xLTEuNiAuMS01LjUgMy45LTEwLjEgOC41LTMuOSAzLjktOC41IDguNC0xMi44IDExLjgtMzcuNSAzMC4xLTgyLjMgMzQtMTI1LjYgMTcuOCAuMi0xLS4yLTIuMS0zLjEtNC4xLTM2LjgtMjguMi01OC41LTUyLjEtNTAuOS0xMDcuNSAyLjEtMS42IDMuNi01LjggNS4zLTEwLjhsLjItLjQgLjEtLjMgMC0uMWMyLjktOC40IDYuNS0xOC44IDE0LjMtMjMuOCA3LjgtMTcuMyAzMS4zLTMzLjMgNTYuNC0zMy43IDI1LjYtMS40IDQ3LjIgMTMuNyA1OC4xIDI3LjktMTkuOC0xOC40LTUyLjEtMjQtNzkuNy0xMC40LTI4LjIgMTIuNy00NSA0My44LTQyLjUgNzQuNyAuMy0uNCAuNi0uNiAuOS0uOGwuMi0uMmMuNi0uNSAxLjEtLjkgMS40LTMuMy0uOSA2MC4yIDY0LjggMTA0LjMgMTEyLjEgODJsLjYgMS4zYzEyLjctMy41IDE1LjktNi41IDIwLjMtMTAuN2wuMS0uMWMyLjItMi4xIDQuNy00LjUgOC45LTcuMy0uMyAuNy0xLjMgMS43LTIuNCAyLjctMi4yIDIuMS00LjYgNC41LTEuNiA0LjYgNS0xLjMgMTguNS0xMy40IDI4LjUtMjIuMyAuNi0uNSAxLjItMSAxLjctMS41IDEuNS0xLjMgMi44LTIuNSA0LTMuNmwuMy0uM2MxLjktNC4yIDEuNi01LjYgMS4zLTdsMC0uMWMtLjQtMS42LS44LTMuMyAyLjQtOS42bDcuMy0zLjdjLjgtMi4xIDEuNS00LjEgMi4yLTYgLjItLjYgLjUtMS4yIC43LTEuOGwtLjQtLjItLjEtLjF6TTI0OCAzMzQuMWMtNi0zLTEzLjctOC45LTE0LjgtMTEuNGwtLjQgLjNjLS4zIC42LS41IDEuMy0uMiAyLjItMTIuMi01LjctMjMuNC0xNC4zLTMyLjYtMjQuOSA0LjkgNy4xIDEwLjEgMTQuMSAxNyAxOS41LTYuOS0yLjMtMTUuMS0xMS44LTIxLjYtMTkuM2wtLjEtLjFjLTQuMy01LTcuOS05LjEtOS43LTkuNSAxOS44IDM1LjUgODAuNSA2Mi4zIDExMi4zIDQ5LTE0LjcgLjUtMzMuNCAuMy00OS45LTUuOHptNzkuMy0xMTkuN2wtLjEtLjJjLS41LTEuNS0xLjEtMy4xLTEuNy0zLjQgMS40LTUuOCA1LjQtMTAuNyA0LjQgNC42LTEgMy44LTEuOCAxLjUtMi42LTF6bS00LjIgMjIuMmMtMS4zIDcuOS01IDE1LjUtMTAuMSAyMi41IC4yLTItMS4yLTIuNC0yLjYtMi44LTIuOS0uOC01LjktMS42IDUuNi0xNi4xLS41IDEuOS0yLjEgNC42LTMuNyA3LjNsLS4zIC40Yy0zLjYgNS45LTYuNyAxMSA0IDQuM2wxLTEuOGMyLjYtNC41IDUtOC44IDYtMTMuOGwuMSAwem0tNTUuNiAzMy45YzcuMSAuNiAxNC4xIC42IDIxLTEuMS0yLjUgMi40LTUuMiA0LjgtOC4zIDcuMi0xMS4xLTEuNy0yMS4yLTYtMTIuNy02LjF6bS05Mi42IDExLjZjMy42IDcuMSA2LjQgMTEuNSA5IDE1LjdsLjEgLjJjMi4zIDMuNyA0LjQgNy4xIDYuOCAxMS43LTUuMS00LjItOC43LTkuNS0xMi41LTE1bC0uMy0uNWMtMS40LTIuMS0yLjgtNC4yLTQuNC02LjJsMS4yLTUuOSAuMSAwem03LjUtOS42YzEuNiAzLjMgMy4yIDYuNCA1LjcgOS4xbDIuNiA3LjctMS4zLTIuMWMtMy4yLTUuMy02LjMtMTAuNi04LTE2LjdsMSAyem0yMzguOS00MS42Yy0yLjMgMTcuNC03LjcgMzQuNi0xNiA1MC4zIDcuNi0xNC45IDEyLjUtMzAuOSAxNC44LTQ3LjJsMS4yLTMuMXpNMzUuOCAxMTAuNmMuNCAuOCAxLjQgLjUgMi4zIC4zIDEuOS0uNSAzLjYtLjktLjEgNy42LS41IC4zLTEgLjctMS41IDEtMS40IC45LTIuOCAxLjktMy45IDMgMS45LTMuOCAzLjUtNy40IDMuMi0xMS45ek0yNS41IDE1Mi4zYy0uNyAzLjctMS41IDcuOS0zLjQgMTMuOSAuMi0xLjkgMC0zLjUtLjItNC45bDAtLjFjLS40LTMuNC0uNy02LjMgNC4zLTEyLjgtLjMgMS4yLS41IDIuNS0uNyAzLjhsMCAuMXoiXX0seXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hc3RvZG9uIixpY29uOls0NDgsNTEyLFtdLCJmNGY2IiwiTTQzMyAxNzkuMWMwLTk3LjItNjMuNy0xMjUuNy02My43LTEyNS43LTYyLjUtMjguNy0yMjguNi0yOC40LTI5MC41IDAgMCAwLTYzLjcgMjguNS02My43IDEyNS43IDAgMTE1LjctNi42IDI1OS40IDEwNS42IDI4OS4xIDQwLjUgMTAuNyA3NS4zIDEzIDEwMy4zIDExLjQgNTAuOC0yLjggNzkuMy0xOC4xIDc5LjMtMTguMWwtMS43LTM2LjlzLTM2LjMgMTEuNC03Ny4xIDEwLjFjLTQwLjQtMS40LTgzLTQuNC04OS42LTU0LS42LTQuNi0uOS05LjMtLjktMTMuOSA4NS42IDIwLjkgMTU4LjcgOS4xIDE3OC43IDYuNyA1Ni4xLTYuNyAxMDUtNDEuMyAxMTEuMi03Mi45IDkuOC00OS44IDktMTIxLjUgOS0xMjEuNXpNMzU3LjkgMzA0LjNsLTQ2LjYgMCAwLTExNC4yYzAtNDkuNy02NC01MS42LTY0IDYuOWwwIDYyLjUtNDYuMyAwIDAtNjIuNWMwLTU4LjUtNjQtNTYuNi02NC02LjlsMCAxMTQuMi00Ni43IDBjMC0xMjIuMS01LjItMTQ3LjkgMTguNC0xNzUgMjUuOS0yOC45IDc5LjgtMzAuOCAxMDMuOCA2LjFsMTEuNiAxOS41IDExLjYtMTkuNWMyNC4xLTM3LjEgNzguMS0zNC44IDEwMy44LTYuMSAyMy43IDI3LjMgMTguNCA1MyAxOC40IDE3NWwwIDB6Il19LHd3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza2V0Y2giLGljb246WzUxMiw1MTIsW10sImY3YzYiLCJNMjcuOCAxNjIuMmwtMTguNSAyNC45IDkwLjUgMCA2LjktMTMwLjctNzguOSAxMDUuOHpNMzk2LjYgNDUuN0wyNjggMzIgNDAzLjcgMTc5LjIgMzk2LjYgNDUuN3pNMTEyLjUgMjE4LjNsLTExLjItMjItOTEuMSAwIDIyNC45IDI2MS43LTEyMi42LTIzOS43em0yLTMxLjJsMjg0IDBDMzQwLjYgMTI0LjMgMjkzLjMgNzIuOSAyNTYuNiAzM0wxMTQuNSAxODcuMXptMjk3LjMgOS4xbC0xMzMuOSAyNjEuOCAyMjQuOC0yNjEuNy05MC45IDAgMC0uMXpNNDE1LjcgNjlsLTkuNC0xMi42IC45IDE3LjMgNi4xIDExMy40IDkwLjMgMC04Ny45LTExOC4xek0xMTMuOCA5My41TDEwOS4yIDE3OS4xIDI0NSAzMiAxMTYuNCA0NS43IDExMy44IDkzLjV6TTQwMS41IDE5Ni4ybC0yOTAgMGMxOC4yIDM1LjYgNjYuNiAxMzAuMiAxNDUuMSAyODMuOEw0MDEuNSAxOTYuMnoiXX0sTXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlYi1hd2Vzb21lIixpY29uOls2NDAsNTEyLFtdLCJlNjgyIiwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkyIDU1Mi40IDE3MS4xYy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDQgMCAxMTcuNSAyMS41IDk2IDQ4IDk2czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xIDAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsLjEgMHoiXX0sa3d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNhc3MiLGljb246WzY0MCw1MTIsW10sImY0MWUiLCJNMzAxLjggMzc4LjlsMCAwem0yNDkuMS04N2MtMjAuMSAwLTQwIDQuNi01OCAxMy41LTUuOS0xMS45LTEyLTIyLjMtMTMtMzAuMS0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjMgNS45Yy0yLjMgNi4yLTQuMSAxMi42LTUuMyAxOS4xLTIuMyAxMS43LTI1LjggNTMuNS0zOS4xIDc1LjMtNC40LTguNS04LjEtMTYtOC45LTIyLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjktMi43IDExLjQtNS4zIDE5LjEtMzMuOSA3Ny4zLTQyLjEgOTUuNGMtNC4yIDkuMi03LjggMTYuNi0xMC40IDIxLjYtLjQgLjgtLjcgMS4zLS45IDEuNyAuMy0uNSAuNS0xIC41LS44LTIuMiA0LjMtMy41IDYuNy0zLjUgNi43bDAgLjFjLTEuNyAzLjItMy42IDYuMS00LjUgNi4xLS42IDAtMS45LTguNCAuMy0xOS45IDQuNy0yNC4yIDE1LjgtNjEuOCAxNS43LTYzLjEtLjEtLjcgMi4xLTcuMi03LjMtMTAuNy05LjEtMy4zLTEyLjQgMi4yLTEzLjIgMi4ycy0xLjQgMi0xLjQgMiAxMC4xLTQyLjQtMTkuNC00Mi40Yy0xOC40IDAtNDQgMjAuMi01Ni42IDM4LjUtNy45IDQuMy0yNSAxMy42LTQzIDIzLjUtNi45IDMuOC0xNCA3LjctMjAuNyAxMS40LS41LS41LS45LTEtMS40LTEuNS0zNS44LTM4LjItMTAxLjktNjUuMi05OS4xLTExNi41IDEtMTguNyA3LjUtNjcuOCAxMjcuMS0xMjcuNCA5OC00OC44IDE3Ni4zLTM1LjQgMTg5LjgtNS42IDE5LjQgNDIuNS00MS45IDEyMS42LTE0My43IDEzMy0zOC44IDQuMy01OS4yLTEwLjctNjQuMy0xNi4zLTUuMy01LjktNi4xLTYuMi04LjEtNS4xLTMuMyAxLjgtMS4yIDcgMCAxMC4xIDMgNy45IDE1LjUgMjEuOSAzNi44IDI4LjkgMTguNyA2LjEgNjQuMiA5LjUgMTE5LjItMTEuOCA2MS44LTIzLjggMTA5LjktOTAuMSA5NS44LTE0NS42LTE0LjQtNTYuNC0xMDcuOS03NC45LTE5Ni4zLTQzLjUtNTIuNyAxOC43LTEwOS43IDQ4LjEtMTUwLjcgODYuNC00OC43IDQ1LjYtNTYuNSA4NS4zLTUzLjMgMTAxLjkgMTEuNCA1OC45IDkyLjYgOTcuMyAxMjUuMSAxMjUuNy0xLjYgLjktMy4xIDEuNy00LjUgMi41LTE2LjMgOC4xLTc4LjIgNDAuNS05My43IDc0LjctMTcuNSAzOC44IDIuOSA2Ni42IDE2LjMgNzAuNCA0MS44IDExLjYgODQuNi05LjMgMTA3LjYtNDMuNnMyMC4yLTc5LjEgOS42LTk5LjVjLS4xLS4zLS4zLS41LS40LS44IDQuMi0yLjUgOC41LTUgMTIuOC03LjUgOC4zLTQuOSAxNi40LTkuNCAyMy41LTEzLjMtNCAxMC44LTYuOSAyMy44LTguNCA0Mi42LTEuOCAyMiA3LjMgNTAuNSAxOS4xIDYxLjcgNS4yIDQuOSAxMS41IDUgMTUuNCA1IDEzLjggMCAyMC0xMS40IDI2LjktMjUgOC41LTE2LjYgMTYtMzUuOSAxNi0zNS45cy05LjQgNTIuMiAxNi4zIDUyLjJjOS40IDAgMTguOC0xMi4xIDIzLTE4LjNsMCAuMXMuMi0uNCAuNy0xLjJjMS0xLjUgMS41LTIuNCAxLjUtMi40bDAtLjNjMy44LTYuNSAxMi4xLTIxLjQgMjQuNi00NiAxNi4yLTMxLjggMzEuNy03MS41IDMxLjctNzEuNSAxLjUgOC43IDMuNiAxNy4zIDYuMiAyNS44IDIuOCA5LjUgOC43IDE5LjkgMTMuNCAzMC0zLjggNS4yLTYuMSA4LjItNi4xIDguMiAwIC4xIDAgLjEgLjEgLjItMyA0LTYuNCA4LjMtOS45IDEyLjUtMTIuOCAxNS4yLTI4IDMyLjYtMzAgMzcuNi0yLjQgNS45LTEuOCAxMC4zIDIuOCAxMy43IDMuNCAyLjYgOS40IDMgMTUuNyAyLjUgMTEuNS0uOCAxOS42LTMuNiAyMy41LTUuNCA3LjItMi42IDE0LTYuMSAyMC4yLTEwLjYgMTIuNS05LjIgMjAuMS0yMi40IDE5LjQtMzkuOC0uNC05LjYtMy41LTE5LjItNy4zLTI4LjIgMS4xLTEuNiAyLjMtMy4zIDMuNC01IDE5LjgtMjguOSAzNS4xLTYwLjYgMzUuMS02MC42IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi40IDguMSA3LjEgMTcgMTEuNCAyNS43LTE4LjYgMTUuMS0zMC4xIDMyLjYtMzQuMSA0NC4xLTcuNCAyMS4zLTEuNiAzMC45IDkuMyAzMy4xIDQuOSAxIDExLjktMS4zIDE3LjEtMy41IDcuNy0yLjYgMTUtNi4zIDIxLjYtMTEuMSAxMi41LTkuMiAyNC42LTIyLjEgMjMuOC0zOS42LS4zLTcuOS0yLjUtMTUuOC01LjQtMjMuNCAxNS43LTYuNiAzNi4xLTEwLjIgNjIuMS03LjIgNTUuNyA2LjUgNjYuNiA0MS4zIDY0LjUgNTUuOHMtMTMuOCAyMi42LTE3LjcgMjUtNS4xIDMuMy00LjggNS4xYy41IDIuNiAyLjMgMi41IDUuNiAxLjkgNC42LS44IDI5LjItMTEuOCAzMC4zLTM4LjcgMS42LTM0LTMxLjEtNzEuNC04OS03MS4xbDAgMHpNMTIxLjggNDM2LjZjLTE4LjQgMjAuMS00NC4yIDI3LjctNTUuMyAyMS4zLTExLjktNi45LTcuMi0zNi41IDE1LjUtNTcuOSAxMy44LTEzIDMxLjYtMjUgNDMuNC0zMi40IDIuNy0xLjYgNi42LTQgMTEuNC02LjkgLjgtLjUgMS4yLS43IDEuMi0uNyAuOS0uNiAxLjktMS4xIDIuOS0xLjcgOC4zIDMwLjQgLjMgNTcuMi0xOS4xIDc4LjNsMCAwem0xMzQuNC05MS40Yy02LjQgMTUuNy0xOS45IDU1LjctMjguMSA1My42LTctMS44LTExLjMtMzIuMy0xLjQtNjIuMyA1LTE1LjEgMTUuNi0zMy4xIDIxLjktNDAuMSAxMC4xLTExLjMgMjEuMi0xNC45IDIzLjgtMTAuNCAzLjUgNS45LTEyLjIgNDkuNC0xNi4yIDU5LjJ6bTExMSA1M2MtMi43IDEuNC01LjIgMi4zLTYuNCAxLjYtLjktLjUgMS4xLTIuNCAxLjEtMi40czEzLjktMTQuOSAxOS40LTIxLjdjMy4yLTQgNi45LTguNyAxMC45LTEzLjkgMCAuNSAuMSAxIC4xIDEuNi0uMSAxNy45LTE3LjMgMzAtMjUuMSAzNC44bDAgMHptODUuNi0xOS41Yy0yLTEuNC0xLjctNi4xIDUtMjAuNyAyLjYtNS43IDguNi0xNS4zIDE5LTI0LjUgMS4yIDMuNSAxLjggNy4xIDEuOSAxMC44LS4xIDIyLjUtMTYuMiAzMC45LTI1LjkgMzQuNGwwIDB6Il19LFN3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aHJlZW1hIixpY29uOlszODQsNTEyLFtdLCJlODVmIiwiTTg3LjQgNDQ1LjFjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40UzEwNS45IDUxMiA4Ny40IDUxMiA1NCA0OTcgNTQgNDc4LjUgNjkgNDQ1LjEgODcuNCA0NDUuMXptMTA5LjIgMGMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRzLTE1IDMzLjUtMzMuNSAzMy41LTMzLjQtMTUtMzMuNC0zMy41IDE1LTMzLjQgMzMuNC0zMy40em0xMDkuMyAwYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNHMtMTUgMzMuNS0zMy41IDMzLjUtMzMuNS0xNS0zMy41LTMzLjUgMTUtMzMuNCAzMy41LTMzLjR6TTE5Mi4zIC4zYzEwOS44IDAgMTk5LjIgODkuMyAxOTkuMiAxOTkuMVMzMDIuMiAzOTguNSAxOTIuNCAzOTguNWMtNDAuNSAwLTc4LjEtMTIuMS0xMDkuNi0zMi45bC03Ni41IDI0LjUgMjQuOC03NEM3LjMgMjgzLjQtNi44IDI0My02LjggMTk5LjQtNi44IDg5LjcgODIuNSAuMyAxOTIuMyAuM3ptLjEgOTMuN2MtMzEuNiAwLTU3LjMgMjUuOC01Ny4zIDU3LjNsMCAyNi43LTEuOCAwYy0xMCAwLTE4IDgtMTggMThsMCA3Mi4zYzAgMTAgOCAxOCAxOCAxOGwxMTguMSAwYzEwIDAgMTgtOCAxOC0xOGwuMSAwIDAtNzIuM2MwLTEwLTguMS0xOC0xOC0xOGwtMS44IDAgMC0yNi43YzAtMzEuNi0yNS44LTU3LjMtNTcuMy01Ny4zem0tLjEgMjMuNWMxOC42IDAgMzMuOCAxNS4xIDMzLjggMzMuOGwwIDI2LjctNjcuNiAwIDAtMjYuN2MwLTE4LjYgMTUuMS0zMy44IDMzLjgtMzMuOHoiXX0sUnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbIndoYXRzYXBwLXNxdWFyZSJdLCJmNDBjIiwiTTkyLjEgMjU0LjZjMCAyNC45IDcgNDkuMiAyMC4yIDcwLjFsMy4xIDUtMTMuMyA0OC42IDQ5LjktMTMuMSA0LjggMi45YzIwLjIgMTIgNDMuNCAxOC40IDY3LjEgMTguNGwuMSAwYzcyLjYgMCAxMzMuMy01OS4xIDEzMy4zLTEzMS44IDAtMzUuMi0xNS4yLTY4LjMtNDAuMS05My4yLTI1LTI1LTU4LTM4LjctOTMuMi0zOC43LTcyLjcgMC0xMzEuOCA1OS4xLTEzMS45IDEzMS44ek0yNzQuOCAzMzBjLTEyLjYgMS45LTIyLjQgLjktNDcuNS05LjktMzYuOC0xNS45LTYxLjgtNTEuNS02Ni45LTU4LjctLjQtLjYtLjctLjktLjgtMS4xLTItMi42LTE2LjItMjEuNS0xNi4yLTQxIDAtMTguNCA5LTI3LjkgMTMuMi0zMi4zIC4zLS4zIC41LS41IC43LS44IDMuNi00IDcuOS01IDEwLjYtNSAyLjYgMCA1LjMgMCA3LjYgLjFsLjggMGMyLjMgMCA1LjIgMCA4LjEgNi44IDEuMiAyLjkgMyA3LjMgNC45IDExLjggMy4zIDggNi43IDE2LjMgNy4zIDE3LjYgMSAyIDEuNyA0LjMgLjMgNi45LTMuNCA2LjgtNi45IDEwLjQtOS4zIDEzLTMuMSAzLjItNC41IDQuNy0yLjMgOC42IDE1LjMgMjYuMyAzMC42IDM1LjQgNTMuOSA0Ny4xIDQgMiA2LjMgMS43IDguNi0xIDIuMy0yLjYgOS45LTExLjYgMTIuNS0xNS41IDIuNi00IDUuMy0zLjMgOC45LTJzMjMuMSAxMC45IDI3LjEgMTIuOWMuOCAuNCAxLjUgLjcgMi4xIDEgMi44IDEuNCA0LjcgMi4zIDUuNSAzLjYgLjkgMS45IC45IDkuOS0yLjQgMTkuMS0zLjMgOS4zLTE5LjEgMTcuNy0yNi43IDE4Ljh6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xNDguMSAzOTMuOUw2NCA0MTYgODYuNSAzMzMuOGMtMTMuOS0yNC0yMS4yLTUxLjMtMjEuMi03OS4zIC4xLTg3LjQgNzEuMi0xNTguNSAxNTguNi0xNTguNSA0Mi40IDAgODIuMiAxNi41IDExMi4yIDQ2LjUgMjkuOSAzMCA0Ny45IDY5LjggNDcuOSAxMTIuMiAwIDg3LjQtNzIuNyAxNTguNS0xNjAuMSAxNTguNS0yNi42IDAtNTIuNy02LjctNzUuOC0xOS4zeiJdfSx6d3Q9UnVlLEN3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lwZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3ZSIsIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuNy0xOS0xNC43LTQyLjYtMjMuNC02OC4zLTIzLjQtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6TTIzMC4xIDM5MS4zYy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXoiXX0sX3d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3VsYXIiLGljb246WzQ0OCw1MTIsW10sImY0MjAiLCJNMTg1LjcgMjY4LjFsNzYuMiAwLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40IDQ3LjggMzgyLjEgMjIzLjggNDgwIDM5OS44IDM4Mi4xIDQzMS42IDEwNi40IDIyMy44IDMyek0zNTQgMzczLjhsLTQ4LjYgMC0yNi4yLTY1LjQtMTEwLjYgMC0yNi4yIDY1LjQtNDguNyAwIDEzMC4xLTI5Mi4zIDEzMC4yIDI5Mi4zeiJdfSxUd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2lyY2xlLXp1bGlwIixpY29uOls1MTIsNTEyLFtdLCJlODUxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0yNDMuNSAyNDBjMS4yLTEuOS0uOS00LjItMi42LTIuOGwtODkgNzkuNWMtOS4yIDcuMi0xNS4yIDE5LjEtMTUuMiAzMi41IDAgMjEuOSAxNiAzOS44IDM1LjcgMzkuOGwxNjcuMyAwYzE5LjYgMCAzNS43LTE3LjkgMzUuNy0zOS44IDAtMjEuOS0xNi4xLTM5LjctMzUuNy0zOS44bC0xMjYuNiAwYy0xLjkgMC0zLTIuMy0yLjEtNC4xTDI0My41IDI0MHpNMTcyLjQgMTIzLjFjLTE5LjYgMC0zNS43IDE3LjktMzUuNyAzOS44czE2IDM5LjggMzUuNyAzOS44bDEyNi42IDBjMS45IDAgMy4xIDIuMiAyLjIgNC4xTDI2OC41IDI3MmMtMS4yIDEuOSAuOSA0LjIgMi42IDIuOGw4OS03OS41YzkuMi03LjIgMTUuMi0xOS4xIDE1LjItMzIuNSAwLTIxLjktMTYtMzkuNy0zNS43LTM5LjhsLTE2Ny4zIDB6Il19LEx3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3VzZSIsaWNvbjpbNjQwLDUxMixbXSwiZTYyYiIsIk00NzEuMSAxMDIuN3MtLjMgMTguMy0uMyAyMC4zYy05LjEtMy03NC40LTI0LjEtMTM1LjctMjYuMy01MS45LTEuOC0xMjIuOC00LjMtMjIzIDU3LjMtMTkuNCAxMi40LTczLjkgNDYuMS05OS42IDEwOS43LTUuNSAxMy4zLTEyLjYgNDMuMy01LjUgNzEuNCAzLjMgMTIuOCA4LjkgMjQuOSAxNi41IDM1LjcgMTcuNCAyNSA0Ni42IDQxLjYgNzguMSA0NC40IDQ0LjQgMy45IDc4LjEtMTYgOTAtNTMuMyA4LjItMjUuOCAwLTYzLjYtMzEuNS04Mi45LTI1LjYtMTUuNy01My4zLTEyLjEtNjkuMi0xLjYtMTMuOSA5LjItMjEuOCAyMy41LTIxLjYgMzkuMiAuMyAyNy44IDI0LjMgNDIuNiA0MS41IDQyLjYgNS40IDAgMTAuNy0uOSAxNS44LTIuNyA2LjUtMS44IDEzLjMtNi41IDEzLjMtMTQuOSAwLTEyLjEtMTEuNi0xNC44LTE2LjgtMTMuOS0yLjkgLjUtNC41IDItMTEuOCAyLjQtMi0uMi0xMi0zLjEtMTItMTRsMC0uMWMuMi0xMi4zIDEzLjItMTggMjUuNS0xNi45IDMyLjMgMi44IDQ3LjcgNDAuNyAyOC41IDY1LjctMTguMyAyMy43LTc2LjYgMjMuMi05OS43LTIwLjQtMjYtNDkuMiAxMi43LTExMS4yIDg3LTk4LjQgMzMuMiA1LjcgODMuNiAzNS41IDEwMi40IDEwNC4zbDQ1LjkgMGMtNS43LTE3LjYtOC45LTY4LjMgNDIuNy02OC4zIDU2LjcgMCA2My45IDM5LjkgNzkuOCA2OC4zbDQ4LjYgMGMtMTIuOC0xOC4zLTIxLjctMzguNy0xOC45LTU1LjggNS42LTMzLjggMzkuNy0xOC40IDgyLjQtMTcuNCA2Ni41IC40IDEwMi4xLTI3IDEwMy4xLTI4IDMuNy0zLjEgNi41LTE1LjggNy0xNy43IDEuMy01LjEtMy4yLTIuNC0zLjItMi40LTguNyA1LjItMzAuNSAxNS4yLTUwLjkgMTUuNi0yNS4zIC41LTc2LjItMjUuNC04MS42LTI4LjItLjMtLjQgLjEgMS4yLTExLTI1LjUgODguNCA1OC4zIDExOC4zIDQwLjUgMTQ1LjIgMjEuNyAuOC0uNiA0LjMtMi45IDMuNi01LjctMTMuOC00OC4xLTIyLjQtNjIuNy0zNC41LTY5LjYtMzctMjEuNi0xMjUtMzQuNy0xMjkuMi0zNS4zIC4xLS4xLS45LS4zLS45IC43em02MC40IDcyLjhhMzcuNiAzNy42IDAgMSAxIDc1LjIgMi42IDM3LjYgMzcuNiAwIDEgMSAtNzUuMi0yLjZ6bTM4LjYtMjUuM2MtMy42LS4zLTcuMSAuMS0xMC41IDEuMnMtNi41IDIuOS05LjIgNS4zLTQuOCA1LjMtNi4zIDguNS0yLjQgNi43LTIuNSAxMC4zIC41IDcuMSAxLjggMTAuNCAzLjMgNi4zIDUuOCA4LjkgNS41IDQuNSA4LjggNS45IDYuOSAyIDEwLjQgMS45YzMuNiAuMyA3LjEtLjEgMTAuNS0xLjJzNi41LTIuOSA5LjItNS4zIDQuOC01LjMgNi4zLTguNSAyLjQtNi43IDIuNS0xMC4zLS41LTcuMS0xLjgtMTAuNC0zLjMtNi4zLTUuOC04LjktNS41LTQuNS04LjgtNS45LTYuOS0yLTEwLjQtMS45em00LjMgMjguOGMtMTUuNCAwLTE1LjQtMTUuNiAwLTE1LjZzMTUuNCAxNS42IDAgMTUuNnoiXX0sJHd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyb3Bib3giLGljb246WzU3Niw1MTIsW10sImYxNmIiLCJNMjg4LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi40LTg1LjEgMTMyLjMtODQuMy0xMzIuMy04My41IDEzMi4zLTg0LjMgMTMyLjEgODQuM3pNMTU1LjYgMzk1LjdsMTMyLTg0LjMgMTMyIDg0LjMtMTMyIDg0LjMtMTMyLTg0LjN6TTI4OC40IDI4NC4xbDEzMi04NC4zLTEzMi04My42IDEzMS4zLTg0LjIgMTMyLjMgODQuMy0xMzIuMyA4NC4zIDEzMi4zIDg0LjItMTMyLjMgODQuMy0xMzEuMy04NXoiXX0sRHd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlZXplciIsaWNvbjpbNTEyLDUxMixbXSwiZTA3NyIsIk0xNC44IDEwMS4xQzYuNiAxMDEuMSAwIDEyNy42IDAgMTYwLjNzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yek00NDguNyA0MC45Yy03LjcgMC0xNC41IDE3LjEtMTkuNCA0NC4xLTcuNy00Ni43LTIwLjItNzctMzQuMi03Ny0xNi44IDAtMzEuMSA0Mi45LTM4IDEwNS40LTYuNi00NS40LTE2LjgtNzQuMi0yOC4zLTc0LjItMTYuMSAwLTI5LjYgNTYuOS0zNC43IDEzNi4yLTkuNC00MC44LTIzLjItNjYuMy0zOC4zLTY2LjNzLTI4LjggMjUuNS0zOC4zIDY2LjNjLTUuMS03OS4zLTE4LjYtMTM2LjItMzQuNy0xMzYuMi0xMS41IDAtMjEuNyAyOC44LTI4LjMgNzQuMi02LjYtNjIuNS0yMS4yLTEwNS40LTM3LjgtMTA1LjQtMTQgMC0yNi41IDMwLjQtMzQuMiA3Ny00LjgtMjctMTEuNy00NC4xLTE5LjQtNDQuMS0xNC4zIDAtMjYgNTkuMi0yNiAxMzIuMVM0OSAzMDUuMiA2My4zIDMwNS4yYzUuOSAwIDExLjUtOS45IDE1LjgtMjYuOCA2LjkgNjEuNyAyMS4yIDEwNC4xIDM4IDEwNC4xIDEzIDAgMjQuNS0yNS41IDMyLjEtNjUuNiA1LjQgNzYuMyAxOC42IDEzMC40IDM0LjIgMTMwLjQgOS43IDAgMTguNi0yMS40IDI1LjMtNTYuNCA3LjkgNzIuMiAyNi4zIDEyMi43IDQ3LjcgMTIyLjdzMzkuNS01MC41IDQ3LjctMTIyLjdjNi42IDM1IDE1LjYgNTYuNCAyNS4zIDU2LjQgMTUuNiAwIDI4LjgtNTQuMSAzNC4yLTEzMC40IDcuNyA0MC4xIDE5LjQgNjUuNiAzMi4xIDY1LjYgMTYuNiAwIDMwLjktNDIuMyAzOC0xMDQuMSA0LjMgMTYuOCA5LjcgMjYuOCAxNS44IDI2LjggMTQuMyAwIDI2LTU5LjIgMjYtMTMyLjFTNDYzIDQwLjkgNDQ4LjcgNDAuOXptNDguNSA2MC4yYy04LjIgMC0xNC44IDI2LjUtMTQuOCA1OS4yczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnoiXX0sQXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmciLGljb246WzUxMiw1MTIsW10sImY0ZjAiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0zLjYgNTMuMmMyLjgtLjMgMTEuNSAxIDExLjUgMTEuNWw2LjYgMTA3LjIgNC45LTU5LjNjMC02IDQuNy0xMC42IDEwLjYtMTAuNnMxMC42IDQuNyAxMC42IDEwLjZjMCAyLjUtLjUtNS43IDUuNyA4MS41bDUuOC02NC4yYy4zLTIuOSAyLjktOS4zIDEwLjItOS4zIDMuOCAwIDkuOSAyLjMgMTAuNiA4LjlsMTEuNSA5Ni41IDUuMy0xMi44YzEuOC00LjQgNS4yLTYuNiAxMC4yLTYuNmw1OCAwIDAgMjEuMy01MC45IDAtMTguMiA0NC4zYy0zLjkgOS45LTE5LjUgOS4xLTIwLjgtMy4xbC00LTMxLjktNy41IDkyLjZjLS4zIDMtMyA5LjMtMTAuMiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0xLjkgLjYgNS44LTYuMi03Ny45bC01LjMgNzIuMmMtMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTIuOSAwLTkuOC0yLTEwLjYtOS4zIDAtMS45IC41IDYuNy01LjgtODcuN0wyNTUgMzgzLjljMCA2LjMtMy42IDEyLjQtMTAuNiAxMi40LTUuMiAwLTEwLjYtNC4xLTEwLjYtMTJMMjI4IDI5Ni42Yy01LjggOTIuNS01LjMgODQtNS4zIDg1LjktMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtLjctLjQtMS4xLS40LTIuNmwtNi4yLTg4LjYtNC45IDU2LjdjLS43IDYuNS02LjcgOS4zLTEwLjYgOS4zLTUuOCAwLTkuNi00LjEtMTAuNi04LjlMMTU3LjcgMjcyYy0yIDQtMy41IDguNC0xMS4xIDguNGwtNTEuNCAwIDAtMjEuMyA0NC44IDAgMTMuNy0yNy45YzQuNC05LjkgMTguMi03LjIgMTkuOSAyLjdsMy4xIDIwLjQgOC40LTk3LjljMC02IDQuOC0xMC42IDEwLjYtMTAuNiAuNSAwIDEwLjYtLjIgMTAuNiAxMi40bDQuOSA2OS4xIDYuNi05Mi42YzAtMTAuMSA5LjUtMTAuNiAxMC4yLTEwLjYgLjYgMCAxMC42IC43IDEwLjYgMTAuNmw1LjMgODAuNiA2LjItOTcuOWMuMS0xLjEtLjYtMTAuMyA5LjktMTEuNXoiXX0sUHd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImplZGktb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImY1MGUiLCJNMzk4LjkgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOSAwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdTNTkuMSAzODguNiAxNDQuOSAyMzAuMmMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43bDQuMSAwYzIwNS0yLjQgMjIyLTE4NS43IDIyMi0xODUuNy0yMy42IDYxLjUtNDkuOSA3Ny43LTQ5LjkgNzcuN3oiXX0sRXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InItcHJvamVjdCIsaWNvbjpbNTc2LDUxMixbXSwiZjRmNyIsIk01NzguNSAyMjYuNkM1NzguNSAxMTkuMSA0NDguNCAzMiAyODggMzJTLTIuNSAxMTkuMS0yLjUgMjI2LjZjMCA5NS44IDEwMy4zIDE3NS40IDIzOS40IDE5MS41bDAgNjEuOSA5OS4xIDAgMC02MS41YzI0LjMtMi43IDQ3LjYtNy40IDY5LjQtMTMuOWw0MC4xIDc1LjQgMTEyIDAtNjcuNC0xMTMuN2M1NC41LTM1LjQgODguNC04NC45IDg4LjQtMTM5Ljd6TTExMS43IDI0MS4xYzAtNzMuNSA5OC45LTEzMyAyMjAuOC0xMzNzMjExLjkgNDAuNyAyMTEuOSAxMzNjMCA1MC4xLTI2LjUgODUtNzAuMyAxMDYuNC0yLjQtMS42LTQuNy0yLjktNi40LTMuNy0xMC4yLTUuMi0yNy44LTEwLjUtMjcuOC0xMC41czg2LjYtNi40IDg2LjYtOTIuNy05MC42LTg3LjktOTAuNi04Ny45bC0xOTkgMCAwIDIwOC4zYy03NC4xLTIxLjUtMTI1LjItNjcuMS0xMjUuMi0xMTkuOXptMjI1LjEgMzguM2wwLTU1LjZjNTcuOCAwIDg3LjgtNi44IDg3LjggMjcuMyAwIDM2LjUtMzguMiAyOC4zLTg3LjggMjguM3ptLS45IDcyLjVsMjYuNiAwYzEwLjggMCAxOC45IDExLjcgMjQgMTkuMi0xNi4xIDEuOS0zMyAyLjgtNTAuNiAyLjlsMC0yMi4xeiJdfSxJd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW5zdGFsb2QiLGljb246WzUxMiw1MTIsW10sImUwODEiLCJNMTUzLjYgNDgwbDIzMy43IDAgMTE1LjQtMjA0LjItMjk4LjMgNTcuNC01MC44IDE0Ni44ek01MDUgMjQwLjFMMzg3LjQgMzIgMTU1LjkgMzIgMzYwLjUgMjY3LjkgNTA1IDI0MC4xek0xMjQuNiA0OC44TDcuNSAyNTYgMTIzLjUgNDYxLjIgMjI1LjkgMTY1LjYgMTI0LjYgNDguOHoiXX0sTnd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhbmFkaWFuLW1hcGxlLWxlYWYiLGljb246WzUxMiw1MTIsW10sImY3ODUiLCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01LTUuMS03LjUtNDIuNy03OS44LTQyLjctNzkuOHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zcy0xMi41IDI3LjMtMTUgMzIuMy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdTNDMgMjI2LjcgNDUuNSAyMzQuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJsMzAgMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXoiXX0sUnd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0aGVyZXVtIixpY29uOlszMjAsNTEyLFtdLCJmNDJlIiwiTTMxMS45IDI2MC44TDE2MCAzNTMuNiA4IDI2MC44IDE2MCAwIDMxMS45IDI2MC44ek0xNjAgMzgzLjRMOCAyOTAuNiAxNjAgNTEyIDMxMiAyOTAuNiAxNjAgMzgzLjR6Il19LE93dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3V6eiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3YyIsIk0yNzYgMzMwLjdsLTEwNC42IDAgMCAxNDkuMy0xNTQuMyAwIDAtNDQ4IDEwOS41IDAgMCAxMDQuNSAzMDUuMSA4NS42IDAgMjU3LjktMTU1LjcgMCAwLTE0OS4zeiJdfSxGd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmliZXIiLGljb246WzUxMiw1MTIsW10sImY0MDkiLCJNNDQ0LjMgNDkuOWMtMTIuNy0xMS43LTY0LjEtNDktMTc4LjctNDkuNSAwIDAtMTM1LjEtOC4xLTIwMC45IDUyLjMtMzYuNiAzNi42LTQ5LjUgOTAuMy01MC45IDE1Ni44cy0zLjEgMTkxLjEgMTE3IDIyNC45bC4xIDAtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1OC4yIDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkgLjQtODUuNyAuNC04NS43bDAgMEM0My40IDM3Mi43IDQ5LjQgMjY2LjYgNTAuNSAyMTEuMXMxMS42LTEwMSA0Mi42LTEzMS42YzU1LjctNTAuNSAxNzAuNC00MyAxNzAuNC00MyA5Ni45IC40IDE0My4zIDI5LjYgMTU0LjEgMzkuNCAzNS43IDMwLjYgNTMuOSAxMDMuOCA0MC42IDIxMS4xem0tMTM5LTgwLjhjLjQgOC42LTEyLjUgOS4yLTEyLjkgLjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40IC43LTEyLjkgMjcuOSAxLjUgNDMuNCAxNy41IDQ0LjggNDYuMnptMjAuMyAxMS4zYzEtNDIuNC0yNS41LTc1LjYtNzUuOC03OS4zLTguNS0uNi03LjYtMTMuNSAuOS0xMi45IDU4IDQuMiA4OC45IDQ0LjEgODcuOCA5Mi41LS4xIDguNi0xMy4xIDguMi0xMi45LS4zem00NyAxMy40Yy4xIDguNi0xMi45IDguNy0xMi45IC4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcgLjUgMTMzIDUxLjQgMTMzLjcgMTM5LjJ6TTM3NS4yIDMyOWwwIC4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44bC4yIDBjOS4yLTQuOCAxOC0zLjIgMjMuOSAzLjkgMCAwIDEyLjQgMTQuOCAxNy43IDIyLjEgNSA2LjggMTEuNyAxNy43IDE1LjIgMjMuOCA2LjEgMTAuOSAyLjMgMjItMy43IDI2LjZsLTEyIDkuNmMtNi4xIDQuOS01LjMgMTQtNS4zIDE0czE3LjggNjcuMyA4NC4zIDg0LjNjMCAwIDkuMSAuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6Il19LE91ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJraWNrc3RhcnRlciIsaWNvbjpbNDQ4LDUxMixbInNxdWFyZS1raWNrc3RhcnRlciJdLCJmM2JiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMC44IDIzM2wtMjMuMyAyMy4xIDIzLjMgMjIuOWMyNC4xIDIzLjkgMjQuMSA2MyAwIDg2LjlzLTYzLjQgMjMuOS04Ny42IDBsLTguNS04LjRjLTExLjMgMTYtMjkuNyAyNi41LTUwLjkgMjYuNS0zNC4xIDAtNjEuOS0yNy41LTYxLjktNjEuNGwwLTEzMy4yYzAtMzMuOCAyNy43LTYxLjQgNjEuOS02MS40IDIxLjEgMCAzOS42IDEwLjUgNTAuOSAyNi41bDguNS04LjRjMjQuMS0yMy45IDYzLjQtMjMuOSA4Ny42IDBzMjQuMSA2MyAwIDg2Ljl6Il19LEJ3dD1PdWUsSHd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwb3RpZnkiLGljb246WzUxMiw1MTIsW10sImYxYmMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNTYuNyAzNzIuOWMtNC4yIDAtNi44LTEuMy0xMC43LTMuNi02Mi40LTM3LjYtMTM1LTM5LjItMjA2LjctMjQuNS0zLjkgMS05IDIuNi0xMS45IDIuNi05LjcgMC0xNS44LTcuNy0xNS44LTE1LjggMC0xMC4zIDYuMS0xNS4yIDEzLjYtMTYuOCA4MS45LTE4LjEgMTY1LjYtMTYuNSAyMzcgMjYuMiA2LjEgMy45IDkuNyA3LjQgOS43IDE2LjVzLTcuMSAxNS40LTE1LjIgMTUuNHptMjYuOS02NS42Yy01LjIgMC04LjctMi4zLTEyLjMtNC4yLTYyLjUtMzctMTU1LjctNTEuOS0yMzguNi0yOS40LTQuOCAxLjMtNy40IDIuNi0xMS45IDIuNi0xMC43IDAtMTkuNC04LjctMTkuNC0xOS40czUuMi0xNy44IDE1LjUtMjAuN2MyNy44LTcuOCA1Ni4yLTEzLjYgOTcuOC0xMy42IDY0LjkgMCAxMjcuNiAxNi4xIDE3NyA0NS41IDguMSA0LjggMTEuMyAxMSAxMS4zIDE5LjctLjEgMTAuOC04LjUgMTkuNS0xOS40IDE5LjV6bTMxLTc2LjJjLTUuMiAwLTguNC0xLjMtMTIuOS0zLjktNzEuMi00Mi41LTE5OC41LTUyLjctMjgwLjktMjkuNy0zLjYgMS04LjEgMi42LTEyLjkgMi42LTEzLjIgMC0yMy4zLTEwLjMtMjMuMy0yMy42IDAtMTMuNiA4LjQtMjEuMyAxNy40LTIzLjkgMzUuMi0xMC4zIDc0LjYtMTUuMiAxMTcuNS0xNS4yIDczIDAgMTQ5LjUgMTUuMiAyMDUuNCA0Ny44IDcuOCA0LjUgMTIuOSAxMC43IDEyLjkgMjIuNiAwIDEzLjYtMTEgMjMuMy0yMy4yIDIzLjN6Il19LHF3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZWFucHViIixpY29uOls1NzYsNTEyLFtdLCJmMjEyIiwiTTM4Ni42IDExMS41bDE1LjEgMjQ5LTExLS4zYy0zNi4yLS44LTcxLjYgOC44LTEwMi43IDI4LTMxLTE5LjItNjYuNC0yOC0xMDIuNy0yOC00NS42IDAtODIuMSAxMC43LTEyMy41IDI3LjdMOTMuMiAxMjkuNmMyOC41LTExLjggNjEuNS0xOC4xIDkyLjItMTguMSA0MS4yIDAgNzMuOCAxMy4yIDEwMi43IDQyLjUgMjcuNy0yOC4zIDU5LTQxLjcgOTguNS00Mi41ek01NjkuMiA0NDhjLTI1LjUgMC00Ny41LTUuMi03MC41LTE1LjYtMzQuMy0xNS42LTcwLTI1LTEwNy45LTI1LTM5IDAtNzQuOSAxMi45LTEwMi43IDQwLjYtMjcuNy0yNy43LTYzLjctNDAuNi0xMDIuNy00MC42LTM3LjkgMC03My42IDkuMy0xMDcuOSAyNS0yMi4yIDkuOS00NC43IDE1LjYtNjkuMiAxNS42TDcgNDQ4IDQ5LjYgOTguOWMzOS4zLTIyLjIgODctMzQuOSAxMzIuMy0zNC45IDM3LjEgMCA3NS4yIDcuNyAxMDYuMiAyOS4xIDMxLTIxLjQgNjkuMi0yOS4xIDEwNi4yLTI5LjEgNDUuMyAwIDkzIDEyLjYgMTMyLjMgMzQuOUw1NjkuMiA0NDh6bS00My40LTQ0LjdMNDkxLjggMTIzYy0zMC43LTE0LTY3LjItMjEuNC0xMDEtMjEuNC0zOC40IDAtNzQuNCAxMi4xLTEwMi43IDM4LjctMjguMy0yNi42LTY0LjItMzguNy0xMDIuNy0zOC43LTMzLjggMC03MC4zIDcuNC0xMDEgMjEuNGwtMzQgMjgwLjJjNDcuMi0xOS41IDgyLjktMzMuNSAxMzUtMzMuNSAzNy42IDAgNzAuOCA5LjYgMTAyLjcgMjkuNiAzMS44LTIwIDY1LjEtMjkuNiAxMDIuNy0yOS42IDUyLjIgMCA4Ny44IDE0IDEzNSAzMy41eiJdfSxWd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamF2YSIsaWNvbjpbMzg0LDUxMixbXSwiZjRlNCIsIk0yNzcuOCAzMTIuOWM5LjgtNi43IDIzLjQtMTIuNSAyMy40LTEyLjVzLTM4LjcgNy03Ny4yIDEwLjJjLTQ3LjEgMy45LTk3LjcgNC43LTEyMy4xIDEuMy02MC4xLTggMzMtMzAuMSAzMy0zMC4xcy0zNi4xLTIuNC04MC42IDE5Yy01Mi41IDI1LjQgMTMwIDM3IDIyNC41IDEyLjF6bS04NS40LTMyLjFjLTE5LTQyLjctODMuMS04MC4yIDAtMTQ1LjggMTAzLjctODEuOCA1MC41LTEzNSA1MC41LTEzNSAyMS41IDg0LjUtNzUuNiAxMTAuMS0xMTAuNyAxNjIuNi0yMy45IDM1LjkgMTEuNyA3NC40IDYwLjIgMTE4LjJ6TTMwNyAxMDQuNmMuMSAwLTE3NS4yIDQzLjgtOTEuNSAxNDAuMiAyNC43IDI4LjQtNi41IDU0LTYuNSA1NHM2Mi43LTMyLjQgMzMuOS03Mi45QzIxNiAxODguMSAxOTUuNCAxNjkuMyAzMDcgMTA0LjZ6bS02LjEgMjcwLjVjLS41IDEtMS4yIDEuOC0yIDIuNiAxMjguMy0zMy43IDgxLjEtMTE4LjkgMTkuOC05Ny4zLTMuMyAxLjItNi4yIDMuNC04LjIgNi4zIDMuNi0xLjMgNy4zLTIuMyAxMS0zIDMxLTYuNSA3NS41IDQxLjUtMjAuNiA5MS40ek0zNDggNDM3LjRzMTQuNSAxMS45LTE1LjkgMjEuMmMtNTcuOSAxNy41LTI0MC44IDIyLjgtMjkxLjYgLjctMTguMy03LjkgMTYtMTkgMjYuOC0yMS4zIDExLjItMi40IDE3LjctMiAxNy43LTItMjAuMy0xNC4zLTEzMS4zIDI4LjEtNTYuNCA0MC4yIDIwNC4yIDMzLjIgMzcyLjQtMTQuOSAzMTkuNC0zOC44ek0xMjQuNSAzOTZjLTc4LjcgMjIgNDcuOSA2Ny40IDE0OC4xIDI0LjUtOS44LTMuOC0xOS4yLTguNC0yOC4yLTEzLjgtNDQuNyA4LjUtNjUuNCA5LjEtMTA2IDQuNS0zMy41LTMuOC0xMy45LTE1LjItMTMuOS0xNS4yem0xNzkuOCA5Ny4yYy03OC43IDE0LjgtMTc1LjggMTMuMS0yMzMuMyAzLjYgMC0uMSAxMS44IDkuNyA3Mi40IDEzLjYgOTIuMiA1LjkgMjMzLjgtMy4zIDIzNy4xLTQ2LjkgMCAwLTYuNCAxNi41LTc2LjIgMjkuN3pNMjYwLjcgMzUzYy01OS4yIDExLjQtOTMuNSAxMS4xLTEzNi44IDYuNi0zMy41LTMuNS0xMS42LTE5LjctMTEuNi0xOS43LTg2LjggMjguOCA0OC4yIDYxLjQgMTY5LjUgMjUuOS03LjgtMi44LTE1LTcuMS0yMS4xLTEyLjh6Il19LGp3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZmMtc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTMxIiwiTTM2MC45IDMyLjRjNy43LTEuMyAxNS43IC41IDIxLjIgNSA4NC4xIDU4LjcgMTI5LjkgMTM2LjMgMTI5LjkgMjE3LjcgMCA4My4xLTQ1LjggMTYwLjgtMTI5LjkgMjE5LjUtNC44IDQtMTEuNyA1LjktMTguNiA1LjMtNy0uNi0xMy41LTMuNi0xOC40LTguNUwxNjEuNyAyODguN2MtNS42LTUuNS04LjctMTMtOS42LTIwLjkgMC03LjggNC0xNS4zIDkuNS0yMC45IDUuNi01LjUgMTMuMS04LjcgMjAuOS04LjcgNy45IDAgMTUuNCAzLjEgMjAuOSA4LjZMMzY4LjUgNDExLjJjNTQuNi00NC43IDg0LjMtOTkuMiA4NC4zLTE1Ni4xIDAtNjEuNi0zNi45LTEyMi4yLTEwMy45LTE2OS4zLTYuNC00LjUtMTAuOC0xMS40LTEyLjEtMTkuMS0xLjQtNy43IC40LTE1LjcgNS0yMi4xIDQuNS02LjQgMTEuNC0xMC44IDE5LjEtMTIuMXptLTIwNiA0NDcuMmMtNy43IDEuMy0xNS42LS41LTIyLjEtNS04My4xLTU4LjctMTI5LTEzNi40LTEyOS0yMTkuNSAwLTgxLjQgNDUuOC0xNTkgMTI5LTIxNy43IDUuNy00IDEyLjYtNS45IDE5LjYtNS4zIDYuOSAuNiAxMy40IDMuNiAxOC4zIDguNUwzNTQuMSAyMjMuM2M1LjYgNS41IDguNyAxMyA4LjcgMjAuOSAuMSA2LjktMyAxNS4zLTguNiAyMC45LTUuNSA1LjUtMTMgOC43LTIwLjkgOC43LTcuOCAwLTE2LjItMy4xLTIwLjktOC42TDE0Ny4zIDEwMC43Yy01NC42IDQ1LjItODQuMyA5OS4yLTg0LjMgMTU0LjQgMCA2My40IDM2LjkgMTI0IDEwMy4xIDE3MS4xIDcuMyA0LjYgMTEuNiAxMS40IDEzIDE5LjIgMS4zIDcuNy0uNSAxNS43LTUgMjIuMXMtMTEuNCAxMC43LTE5LjIgMTIuMXoiXX0sVXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndvZHUiLGljb246WzY0MCw1MTIsW10sImUwODgiLCJNMTc4LjQgMzM5LjdsLTM3LjMgMC0yOC45LTExNi4yLS41IDAtMjguNSAxMTYuMi0zOCAwLTQ1LjItMTcwLjggMzcuNSAwIDI3IDExNi4yIC41IDAgMjkuNy0xMTYuMiAzNS4yIDAgMjkuMiAxMTcuNyAuNSAwIDI4LTExNy43IDM2LjggMC00NS45IDE3MC44em05My0xMjdjMzkgMCA2NC4xIDI1LjggNjQuMSA2NS4zIDAgMzkuMi0yNS4xIDY1LTY0LjEgNjUtMzguNyAwLTYzLjktMjUuOC02My45LTY1IDAtMzkuNSAyNS4xLTY1LjMgNjMuOS02NS4zem0wIDEwNC44YzIzLjIgMCAzMC4xLTE5LjkgMzAuMS0zOS41IDAtMTkuOS02LjktMzkuNy0zMC4xLTM5LjctMjcuNyAwLTI5LjkgMTkuOS0yOS45IDM5LjcgMCAxOS42IDYuOSAzOS41IDI5LjkgMzkuNXptMTYzLjcgNi41bC0uNSAwYy03LjkgMTMuNC0yMS44IDE5LjEtMzcuNSAxOS4xLTM3LjMgMC01NS41LTMyLTU1LjUtNjYuMiAwLTMzLjIgMTguNC02NC4xIDU0LjgtNjQuMSAxNC42IDAgMjguOSA2LjIgMzYuOCAxOC40bC4yIDAgMC02Mi4yIDM0IDAgMCAxNzAuOC0zMi4zIDAgMC0xNS44em0tMjkuNy04NS42Yy0yMi4yIDAtMjkuOSAxOS4xLTI5LjkgMzkuNSAwIDE5LjQgOC44IDM5LjcgMjkuOSAzOS43IDIyLjUgMCAyOS4yLTE5LjYgMjkuMi0zOS45IDAtMjAuMS03LjItMzkuMi0yOS4yLTM5LjJ6TTU5MyAzMzkuN2wtMzIuMyAwIDAtMTcuMi0uNyAwYy04LjYgMTMuOS0yMy40IDIwLjYtMzcuOCAyMC42LTM2LjEgMC00NS4yLTIwLjMtNDUuMi01MC45bDAtNzYuMSAzNCAwIDAgNjkuOGMwIDIwLjMgNiAzMC40IDIxLjggMzAuNCAxOC40IDAgMjYuMy0xMC4zIDI2LjMtMzUuNGwwLTY0LjggMzQgMCAwIDEyMy42em05LjUtMzYuOGwzNy41IDAgMCAzNi44LTM3LjUgMCAwLTM2Ljh6Il19LEZ1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc3RlYW0iLGljb246WzQ0OCw1MTIsWyJzdGVhbS1zcXVhcmUiXSwiZjFiNyIsIk0xNjUuNiAzMDkuMWMxOC42IDcuNyAyNy4zIDI4LjkgMTkuNiA0Ny40cy0yOSAyNy4yLTQ3LjYgMTkuNGwtMjguNS0xMS44YzUgMTAuNiAxMy44IDE5LjQgMjUuNCAyNC4yIDI1LjIgMTAuNSA1NC4xLTEuNCA2NC42LTI2LjUgNS4xLTEyLjEgNS4xLTI1LjUgLjEtMzcuNy01LjEtMTIuMS0xNC41LTIxLjYtMjYuNy0yNi43LTEyLjEtNS0yNS00LjgtMzYuNC0uNWwyOS41IDEyLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgMTQ0LjcgMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjIgMC0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44LTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI0MS45IDE5Ni4yYTU4LjQgNTguNCAwIDEgMCAxMTYuOCAwIDU4LjQgNTguNCAwIDEgMCAtMTE2LjggMHptMTAyLjQtLjFhNDMuOSA0My45IDAgMSAxIC04Ny44IDAgNDMuOSA0My45IDAgMSAxIDg3LjggMHoiXX0sV3d0PUZ1ZSxHd3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1ldSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlOSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi4zIDExOS43IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMSA1MDQgMjU2IDUwNCAxMTcgMzk2LjQgOCAyNTUuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIzLjIgMy43LTQ1LjIgMTAuOS02Nmw2NS43IDI5LjEtNC43IDAgMCAyOS41IDIzLjMgMGMwIDYuMi0uNCAzLjItLjQgMTkuNWwtMjIuOCAwIDAgMjkuNSAyNyAwYzExLjQgNjcgNjcuMiAxMDEuMyAxMjQuNiAxMDEuMyAyNi42IDAgNTAuNi03LjkgNjQuOC0xNS44bC0xMC00Ni4xYy04LjcgNC42LTI4LjIgMTAuOC00Ny4zIDEwLjgtMjguMiAwLTU4LjEtMTAuOS02Ny4zLTUwLjJsOTAuMyAwIDEyOC4zIDU2LjhjLTEuNSAyLjEtNTYuMiAxMDQuMy0xNzguOCAxMDQuM3pNMjM5LjYgMjY4LjFsLS41LS40IC45IC40LS40IDB6bTc3LjItMTkuNWwzLjcgMCAwLTI5LjUtNzAuMyAwLTI4LjYtMTIuNmMyLjUtNS41IDUuNC0xMC41IDguOC0xNC4zIDEyLjktMTUuOCAzMS4xLTIyLjQgNTEuMS0yMi40IDE4LjMgMCAzNS4zIDUuNCA0Ni4xIDEwbDExLjYtNDcuM2MtMTUtNi42LTM3LTEyLjQtNjIuMy0xMi40LTM5IDAtNzIuMiAxNS44LTk1LjkgNDIuMy01LjMgNi4xLTkuOCAxMi45LTEzLjkgMjAuMUw4NS41IDE0Ni40YzY0LjYtOTYuOCAxNTcuNy05My42IDE3MC43LTkzLjYgMTEzIDAgMjAzIDkwLjIgMjAzIDIwMy40IDAgMTguNy0yLjEgMzYuMy02LjMgNTIuOUwzMTYuOCAyNDguNnoiXX0sWXd0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5wbSIsaWNvbjpbNTc2LDUxMixbXSwiZjNkNCIsIk0yODggMjg4bC0zMiAwIDAtNjQgMzIgMCAwIDY0ek01NzYgMTYwbDAgMTkyLTI4OCAwIDAgMzItMTI4IDAgMC0zMi0xNjAgMCAwLTE5MiA1NzYgMHpNMTYwIDE5MmwtMTI4IDAgMCAxMjggNjQgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4em0xNjAgMGwtMTI4IDAgMCAxNjAgNjQgMCAwLTMyIDY0IDAgMC0xMjh6bTIyNCAwbC0xOTIgMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTEyOHoiXX0sS3d0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3Vkc2NhbGUiLGljb246WzQ0OCw1MTIsW10sImYzODMiLCJNMzE4LjEgMTU0bC05LjQgNy42Yy0yMi41LTE5LjMtNTEuNS0zMy42LTgzLjMtMzMuNi03MS42IDAtMTI5LjQgNjAuOC0xMjkuNCAxMzIuMyAwIDYuNiAuNCAxMy4xIDEuNCAxOS40LTItNTYgNDEuOC05Ny40IDkyLjYtOTcuNCAyNC4yIDAgNDYuMiA5LjQgNjIuNiAyNC43bC0yNS4yIDIwLjRjLTguMy0uOS0xNi44IDEuOC0yMy4xIDguMS0xMS4xIDExLTExLjEgMjguOSAwIDQwIDExLjEgMTEgMjguOSAxMSA0MCAwIDYuMy02LjMgOS0xNC45IDguMS0yMy4xbDc1LjItODguOGM2LjMtNi41LTMuMy0xNS45LTkuNS05LjZ6TTIxMy43IDI0Ni41YTE0IDE0IDAgMSAxIDIwLjYgMTkgMTQgMTQgMCAxIDEgLTIwLjYtMTl6TTIyNCAzMmEyMjQgMjI0IDAgMSAwIDAgNDQ4IDIyNCAyMjQgMCAxIDAgMC00NDh6bTAgNjRhMTYwIDE2MCAwIDEgMSAwIDMyMCAxNjAgMTYwIDAgMSAxIDAtMzIweiJdfSxad3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlbWVjbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjVjNiIsIk0yMDIuOSA4LjRjOS45LTUuNyAyNi01LjggMzYtLjJMNDMwIDExNS45YzEwIDUuNiAxOCAxOS40IDE4IDMwLjlMNDQ4IDM2NGMwIDExLjQtOC4xIDI1LjMtMTggMzFMMjM4LjggNTAzLjdjLTkuOSA1LjctMjYgNS42LTM1LjgtLjJMMTcuOSAzOTUuMUM4IDM4OS4zIDAgMzc1LjQgMCAzNjRMMCAxNDYuN2MwLTExLjQgOC0yNS40IDE3LjktMzEuMUwyMDIuOSA4LjR6TTEyNS41IDIwOC4zYy0xNS45IDAtMzEuOSAuMS00Ny44IC4xbDAgMTAxLjQgMTkuMSAwIDAtMjkuOCAyOC43IDBjNDkuNyAwIDQ5LjYtNzEuNyAwLTcxLjd6TTI2NS42IDMwOC42bC0zMC43LTM0LjZjMzctNy41IDM0LjgtNjUuMi0xMC45LTY1LjUtMTYuMSAwLTMyLjItLjEtNDguMy0uMWwwIDEwMS42IDE5LjEgMCAwLTMzLjkgMTguNCAwIDI5LjYgMzMuOSAyMi44IDAgMC0xLjN6bS00MS42LTgyLjNjMjMuMyAwIDIzLjMgMzIuNSAwIDMyLjVsLTI5LjEgMCAwLTMyLjUgMjkuMSAwem0tOTUuNi0xLjZjMjEuMiAwIDIxLjEgMzguOSAwIDM4LjlsLTMyLjMgMCAwLTM4LjggMzIuMyAwem0xOTIuNi0xOC4yYy02OC41IDAtNzEgMTA1LjggMCAxMDUuOCA2OS41IDAgNjkuNC0xMDUuOCAwLTEwNS44em0wIDE3LjRjNDQuMSAwIDQ0LjggNzAuOSAwIDcwLjlzLTQ0LjQtNzAuOSAwLTcwLjl6Il19LFh3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGxheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhYiIsIk0yOTMuNiAyMzQuM0w3Mi45IDEzIDM1My43IDE3NC4yIDI5My42IDIzNC4zek0xNS4zIDBDMi4zIDYuOC02LjQgMTkuMi02LjQgMzUuM2wwIDQ0MS4zYzAgMTYuMSA4LjcgMjguNSAyMS43IDM1LjNMMjcxLjkgMjU1LjkgMTUuMyAwek00NDAuNSAyMjUuNmwtNTguOS0zNC4xLTY1LjcgNjQuNSA2NS43IDY0LjUgNjAuMS0zNC4xYzE4LTE0LjMgMTgtNDYuNS0xLjItNjAuOHpNNzIuOSA0OTlMMzUzLjcgMzM3LjggMjkzLjYgMjc3LjcgNzIuOSA0OTl6Il19LFF3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrb3J2dWUiLGljb246WzQ0OCw1MTIsW10sImY0MmYiLCJNMzg3LjYgMzRsLTMyNyAwQzI3LjkgMzQgMS4xIDYwLjggMS4xIDkzLjVsMCAzMjcuMWMwIDMyLjYgMjYuOCA1OS40IDU5LjUgNTkuNGwzMjcuMSAwYzMzIDAgNTkuNS0yNi44IDU5LjUtNTkuNWwwLTMyN0M0NDcuMSA2MC44IDQyMC4zIDM0IDM4Ny42IDM0ek04OC4yIDEyMC44bDk2IDAgMCAxMTYgNjEuOC0xMTYgMTEwLjkgMC04MS4yIDEzMi0xODcuNSAwIDAtMTMyek0yNTAgMzkyLjlsLTY1LjctMTEzLjYgMCAxMTMuNi05NiAwIDAtMTMwLjggMTkxLjUgMCA4OC42IDEzMC44LTExOC40IDB6Il19LEp3dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3M2MiLGljb246WzY0MCw1MTIsW10sImU3ZGUiLCJNMTA1LjIgMzA1LjNsMzAuOS0xMDQuN2M3LjktMjYuNyA4LjYtNDAuNiAuMi02OC44bC0xMC4xLTMzLjkgNDQuMSAwIDYxIDIwNy40IDQ1LjctMTU1LjVjMTMuMy00NS4zIDIxLjEtNTEuOSA1OS40LTUxLjlsMTMyLjggMGMtMjQuMiA0Mi45LTQ5LjMgODUuMi03My45IDEyNy45IDIuNiAuOCA1LjIgMS44IDcuNyAyLjggMTcuMyA3LjEgMzIuMiAxOS40IDQyIDM1LjUgMTEuMiAxOC41IDE2LjggNDAuMiAxNi44IDY1LjIgMCAzMC44LTguMiA1Ni44LTI0LjYgNzcuOC0xNC41IDE4LjYtMzUgMjkuNS01OC4yIDMxLjIgMCAuMy01LjIgLjQtNS44IC40LTM5LjctLjEtNzAuOC0zMi4xLTgzLjEtNjguN2w0Mi45IDBjMy41IDUuMyA2LjggMTAuNyAxMS4yIDE1LjUgOC4xIDcuMyAxOC41IDEwLjkgMjkuMyAxMS4xIDEzLjEgMCAyMy4zLTkuMSAyOS45LTE5LjggOC4xLTEzLjIgMTIuMi0yOSAxMi4yLTQ3LjUgMC0xMy4xLTEuOC0yNC4zLTUuMy0zMy42LS45LTIuMy0xLjktNC41LTMtNi42LTEuNC0yLjYtMi45LTUuMS00LjctNy40LTEwLjEtMTMuMi0yOS4zLTE5LjctNDcuNS0xOS44bC0yOC4yIDAgNzAuMy0xMjItMzUuNiAwYy00My4xIDAtMzUuOS01LjQtNTAuNCA0My4zbC03NS43IDI1NS4zLTQuMiAwLTYzLjEtMjExLjEtNjMuMSAyMTEuMS00LjIgMC0xMDEtMzQwLjcgNDQuMiAwIDYxIDIwNy40ek00NjcgMzM1LjdjLjMgLjYgMTEuMyAyMC4zIDE4LjMgMzAuMyA3LjEgMTAuMSAxOS44IDIwLjkgMjQuOCAyNC42czE5LjEgMTIuNSAzNC4zIDEzLjljMTUuMiAxLjUgMjMuMyAuMiAzOC43LTYuNiAxNS40LTYuOCAyNy45LTIwLjQgMzQuOS0yOC4xIDYuOS03LjYgMTcuOS0yNy4zIDE4LjItMjcuN2wzLjMgMTYuOGMxLjcgOS0xIDIzLjctNC4xIDMwLTQuMyA4LjYtNy42IDEzLjUtMTQgMjAuMy02LjEgNi41LTE2LjcgMTMuNS0yMS4zIDE2LjQtNC42IDIuOS0yMy4xIDE1LjEtNTAuMSAxMC4zcy00NC43LTI1LjktNTMuOS0zOC4yYy05LjgtMTMuMi0xNi43LTI4LjMtMTktMzMuMi0zLjgtOC40LTkuOS0yOC4yLTEwLjEtMjguOHptMTY5LjctMjE4YzMuMyAyMC4zLS4xIDI4LjctOS4xIDQ2bC0xMi43IDI0LjJjLS4zLS42LTEwLTIwLjctMjUuOS0zMS45LTEzLjYtOS42LTIyLjUtMTEuNy0zNi4zLTguOC0xNy44IDMuNy0zOCAyNS00Ni44IDUxLjItMTAuNSAzMS40LTEwLjcgNDYuNi0xMSA2MC42LS42IDIyLjQgMi45IDM1LjYgMi45IDM1LjZzLTE1LjQtMjguNS0xNS4yLTcwLjFjLjEtMjkuNyA0LjgtNTYuNyAxOC41LTgzLjMgMTIuMS0yMy40IDMwLjEtMzcuNCA0Ni4xLTM5LjEgMTYuNS0xLjcgMjkuNiA2LjMgMzkuNyAxNC45IDEwLjYgOSAyMS4zIDI4LjggMjEuMyAyOC44bDI0LjktNDkuOCAzLjYgMjEuOHoiXX0sZU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyYXYiLGljb246WzUxMiw1MTIsW10sImYyZDYiLCJNMzAyLjYgMjEwLjZjNC41IDQuNSA0LjUgMTIuMyAwIDE2LjhsLTEwIDEwYy00LjUgNC45LTEyLjMgNC45LTE3LjEgMGwtMTAuOC0xMC44Yy00LjUtNC45LTQuNS0xMi4zIDAtMTcuMWwxMC0xMGM0LjUtNC41IDEyLjMtNC41IDE3LjEgMGwxMC44IDExLjF6bS0zMS4yLTIwLjNhNy43IDcuNyAwIDEgMCAtMTAuNi0xMSA3LjcgNy43IDAgMSAwIDEwLjYgMTF6bS0yNi44IDUuNWE3LjUgNy41IDAgMSAwIDEwLjcgMTAuNSA3LjUgNy41IDAgMSAwIC0xMC43LTEwLjV6TTMxOS40IDE4MmMtMjAuNS0xNC45LTM0LjktNDQuNi0xMi4zLTcwLjMgMjIuMy0yNS43IDQyLTE3LjggNjEuNyAuOCAxMi4zIDExLjcgMzAuMiAyNS43IDE3LjggNDkuOC0xMi45IDI0LjMtNDYuNiAzNC4zLTY3LjIgMTkuN3ptNDkuMi00NS45Yy05LjItMTAuMy0yNC4xIDcuMS0xNiAxNi42IDcuNiA5LjMgMzMuMSAyLjUgMTYtMTYuNnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptNDQzLjcgNDRjMi42LTE2LjYtMjAuOS0xNy4xLTI2LTI2LjUtMTQtMjQuOS0yOC42LTM4LTU2LjMtMzEuNCAxMi04LjMgMjQuMy02LjMgMjQuMy02LjMgLjMtNi42IDAtMTMuNC05LjctMjUuNyA0LTEyLjkgLjMtMjMuMSAuMy0yMy4xIDE2LTguOSAyNy43LTI1LjIgMzAtNDQuNiAzLjctMzItMTkuNC02MS4xLTUxLjQtNjQuOC0yMi44LTIuNi00NS4xIDcuOS01Ni4xIDI2LjUtMjMuOSA0MS40IDEuNCA3My4yIDIzLjEgODQtMTQuOS0xLjQtMzUuNC0xMi4zLTQxLjQtMzUuNC02LjgtMjYuNSAyLjktNTEuNCA5LjItNjMuNCAwIDAtNC41LTYtOC4zLTkuMiAwIDAtMTQuMiAwLTI1LjQgNS41IDEyLjMtMTUuNyAyNi0xNC45IDI2LTE0LjkgMC02LjYtLjYtMTUuNC0zLjctMjIuMy01LjYtMTEuNC0yNC42LTEzLjMtMzIuNyAyLjkgLjEtLjIgLjMtLjQgLjQtLjUtNS4yIDEyLjMtMS4xIDU3LjcgMTcuNCA5MC0yLjYgMS40LTkuNCA2LjMtMTMuNCAxMC4zLTIyLjMgMTAtNTggNjIuMi01OCA2Mi4yLTI5LjEgMTEuMS03OS43IDUyLjUtNzIuOSA4Mi4zIC4zIDMuMSAxLjQgNS43IDMuMSA3LjctMi45IDIuMy01LjcgNS4yLTguNiA4LjYtMTIuMyAxNC4yLTUuNSAzNi4zIDE4LjMgMjUuMiAxNi4zLTcuNCAzMC42LTIwLjkgMzcuNS0zMS40IDAgMC01LjctNS4yLTE2LjgtNC41IDI4LjYtNi44IDM1LjQtOS43IDQ3LjctOS40IDguMyA0IDguMy0zNS40IDguMy0zNS40IDAtMTUuMi0yLjMtMzItMTEuNS00Mi44IDEyLjkgMTIuNiAzMCAzMy44IDI4LjkgNjIuNi0uOCAxOC45LTE1LjcgMjMuNy0xNS43IDIzLjctOS40IDE3LjEtNDQuNiA2OC0zMS40IDEwOS40IDAgMC0xMC0xNS40LTEwLjUtMjIuOC0xOCAyMC00OCA1NC0yNS40IDY2LjYgMjcuNSAxNS4yIDExMi4zLTkxLjUgMTMwLjMtMTQ2LjkgMzUuNy0yMS41IDU3LjItNDguOCA2Ni02Ny4xIDIyLjcgNDQuOSA5OC40IDk3LjUgMTA0LjQgNjAuOXoiXX0sdE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF3cyIsaWNvbjpbNjQwLDUxMixbXSwiZjM3NSIsIk0xODAuNCAyMDNjLS43IDIyLjYgMTAuNiAzMi43IDEwLjkgMzktLjEgMS4zLS42IDIuNS0xLjMgMy42cy0xLjcgMi0yLjggMi42bC0xMi44IDljLTEuNyAxLjItMy42IDEuOC01LjYgMS45LS40IDAtOC4yIDEuOC0yMC41LTI1LjYtNy41IDkuNC0xNyAxNi45LTI3LjkgMjJzLTIyLjcgNy43LTM0LjcgNy41Yy0xNi4zIC45LTYwLjQtOS4yLTU4LjEtNTYuMi0xLjYtMzguMyAzNC4xLTYyLjEgNzAuOS02MCA3LjEgMCAyMS42IC40IDQ3IDYuM2wwLTE1LjZjMi43LTI2LjUtMTQuNy00Ny00NC44LTQzLjktMi40IDAtMTkuNC0uNS00NS44IDEwLjEtNy40IDMuNC04LjMgMi44LTEwLjggMi44LTcuNCAwLTQuNC0yMS41LTIuOS0yNC4yIDUuMi02LjQgMzUuOS0xOC40IDY1LjktMTguMiAyMC4xLTEuOCA0MC4xIDQuNCA1NS43IDE3LjMgNi4zIDcuMSAxMS4yIDE1LjQgMTQuMiAyNC40czQuMiAxOC41IDMuNSAyOGwwIDY5LjN6TTk0IDIzNS40YzMyLjQtLjUgNDYuMi0yMCA0OS4zLTMwLjUgMi41LTEwLjEgMi4xLTE2LjQgMi4xLTI3LjQtOS43LTIuMy0yMy42LTQuOS0zOS42LTQuOS0xNS4yLTEuMS00Mi44IDUuNi00MS43IDMyLjMtMS4yIDE2LjggMTEuMSAzMS40IDMwIDMwLjV6bTE3MC45IDIzLjFjLTcuOSAuNy0xMS41LTQuOS0xMi43LTEwLjRMMjAyLjQgODMuNGMtMS0yLjgtMS42LTUuNi0xLjktOC42LS4yLTEuMiAuMS0yLjQgLjgtMy40czEuOC0xLjYgMy0xLjhjLjIgMC0yLjEgMCAyMi4yIDAgOC44LS45IDExLjYgNiAxMi42IDEwLjRMMjc0LjkgMjIwLjggMzA4LjEgODBjLjUtMy4yIDIuOS0xMS4xIDEyLjgtMTAuMmwxNy4yIDBjMi4yLS4yIDExLjEtLjUgMTIuNyAxMC40TDM4NC4xIDIyMi43IDQyMSA4MC4xYy41LTIuMiAyLjctMTEuNCAxMi43LTEwLjRsMTkuNyAwYy45LS4xIDYuMi0uOCA1LjMgOC42LS40IDEuOCAzLjQtMTAuNy01Mi44IDE2OS45LTEuMSA1LjUtNC44IDExLjEtMTIuNyAxMC40bC0xOC43IDBjLTEwLjkgMS4yLTEyLjUtOS43LTEyLjctMTAuN2wtMzMuMi0xMzcuMS0zMi44IDEzN2MtLjIgMS4xLTEuNyAxMS45LTEyLjcgMTAuN2wtMTguMyAwIDAgMHptMjczLjUgNS42Yy01LjkgMC0zMy45LS4zLTU3LjQtMTIuMy0yLjMtMS00LjMtMi42LTUuNy00LjhzLTIuMS00LjYtMi4xLTcuMWwwLTEwLjdjMC04LjUgNi4yLTYuOSA4LjgtNS45IDEwIDQuMSAxNi41IDcuMSAyOC44IDkuNiAzNi43IDcuNSA1Mi44LTIuMyA1Ni43LTQuNSAxMy4yLTcuOCAxNC4yLTI1LjcgNS4zLTM0LjktMTAuNS04LjgtMTUuNS05LjEtNTMuMS0yMS00LjYtMS4zLTQzLjctMTMuNi00My44LTUyLjQtLjYtMjguMiAyNS01Ni4yIDY5LjUtNTYgMTIuNyAwIDQ2LjQgNC4xIDU1LjYgMTUuNiAxLjQgMi4xIDIgNC42IDEuOSA3bDAgMTAuMWMwIDQuNC0xLjYgNi43LTQuOSA2LjctNy43LS45LTIxLjQtMTEuMi00OS4yLTEwLjgtNi45LS40LTM5LjkgLjktMzguNCAyNS0uNCAxOSAyNi42IDI2LjEgMjkuNyAyNi45IDM2LjUgMTEgNDguNiAxMi44IDYzLjEgMjkuNiAxNy4xIDIyLjIgNy45IDQ4LjMgNC4zIDU1LjQtMTkuMSAzNy41LTY4LjQgMzQuNC02OS4zIDM0LjR6bTQwLjIgMTA0LjljLTcwIDUxLjctMTcxLjcgNzkuMi0yNTguNSA3OS4yLTExNy4xIC44LTIzMC4zLTQyLjMtMzE3LjMtMTIwLjctNi41LTUuOS0uOC0xNCA3LjItOS41IDk2LjUgNTUuMiAyMDUuNyA4NC4yIDMxNi45IDg0LjEgODMtLjQgMTY1LjEtMTcuMyAyNDEuNi00OS41IDExLjgtNSAyMS44IDcuOCAxMC4xIDE2LjR6bTI5LjItMzMuM2MtOS0xMS41LTU5LjMtNS40LTgxLjgtMi43LTYuOCAuOC03LjktNS4xLTEuOC05LjUgNDAuMS0yOC4yIDEwNS45LTIwLjEgMTEzLjQtMTAuNiA3LjUgOS41LTIuMSA3NS40LTM5LjYgMTA2LjktNS44IDQuOS0xMS4zIDIuMy04LjctNC4xIDguNC0yMS4zIDI3LjQtNjguNSAxOC40LTgweiJdfSxhTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xpZGUtZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhNiIsIk00MDcuMSAyMTEuMmMtMy41LTEuNC0xMS42LTMuOC0xNS40LTMuOC0zNy4xIDAtNjIuMiAxNi44LTkzLjUgMzQuNWwtLjktLjljNy00Ny4zIDIzLjUtOTEuOSAyMy41LTE0MC40IDAtNzEuNS0zOC4yLTEwMC42LTEwOC40LTEwMC42LTExNS4xIDAtMTczLjQgMTEzLjctMTczLjQgMTk4LjQgMCA4Ny45IDUxLjMgMTM2LjYgMTM4LjYgMTM2LjYgMTIgMCAxMS0xIDExIDMuOC0xNi45IDEyOC45LTkwLjggMTMzLjEtOTAuOCA5NC42IDAtMzkuMiA0NS01OC42IDQ1LjUtNjEtLjMtMTIuMi00Ny0yNy42LTU4LjktMjcuNi0zMy45IC4xLTUyLjQgNTEuMi01Mi40IDc5LjMgMCA1MS45IDMyLjggODcuOSA4NS41IDg3LjkgNzcuNCAwIDEzNC03Ny44IDE1MS40LTE0NS40IDE1LjEtNjAuNSAxMS4yLTYzLjMgMTkuNy02Ny42IDMyLjItMTYuMiA1Ny41LTI3IDkzLjgtMjcgMTcuOCAwIDMwLjUgMy43IDU4LjkgOC40IDIuOSAwIDYuNy0yLjkgNi43LTUuOCAwLTgtMzMuNC02MC41LTQwLjktNjMuNHpNMjMxLjggMTI2LjhjLTkuMyA0NC43LTE4LjYgODkuNi0yNy44IDEzNC4zLTIuMyAxMC4yLTEzLjMgNy44LTIyIDcuOC0zOC4zIDAtNDktNDEuOC00OS03My4xIDAtNDcgMTgtMTA5LjMgNjEuOC0xMzMuNCA3LTQuMSAxNC44LTYuNyAyMi42LTYuNyAxOC42IDAgMjAgMTMuMyAyMCAyOC43LS4xIDE0LjMtMi43IDI4LjUtNS42IDQyLjR6Il19LHJNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqc2ZpZGRsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFjYyIsIk01MTEuMSAyMzcuNWMtNC43LTIuNi01LjctNS43LTYuNC0xMC44LTIuNC0xNi41LTMuNS0zMy42LTkuMS00OS4xLTM1LjktMTAwLTE1NC0xNDMuNC0yNDYuOC05MS42LTI3LjQgMTUuMi00OSAzNi40LTY1LjUgNjMuOS0zLjItMS41LTUuNS0yLjctNy44LTMuNy0zMC4xLTEyLjQtNTktMTAuMS04NS4zIDkuMi0yNS41IDE4LjctMzYuNCA0NC41LTMyLjcgNzYuNCAuNCAzLTIgNy42LTQuNSA5LjUtMzkuNyAzMC01NiA3OC4xLTQxLjkgMTI0LjYgMTMuOCA0NS42IDU3LjUgNzkuOCAxMDUuNiA4MS40IDMwLjMgMSA2MC42IC41IDkxIC41IDg0IDAgMTY4LjEgLjUgMjUyLjEtLjUgNTIuNy0uNiA5Ni4xLTM2LjkgMTA4LjItODcuMyAxMS41LTQ4LjEtMTEuMS05Ny4zLTU2LjgtMTIyLjZ6bTIxLjEgMTU2LjljLTE4LjIgMjIuNC00Mi4zIDM1LjMtNzEuMyAzNS43LTU2LjkgLjgtMTEzLjggLjItMTcwLjcgLjIgMCAuNy0xNjMgLjItMTYzLjcgLjItNDMuOS0uMy03Ni43LTE5LjgtOTUuMi02MC0xOC45LTQxLjItNC05MC44IDM0LjItMTE2LjEgOS4yLTYuMSAxMi41LTExLjYgMTAuMS0yMy4xLTUuNS0yNi40IDQuNS00OCAyNi40LTYzIDIzLTE1LjcgNDcuNC0xNi4xIDcyLTMuMSAxMC4zIDUuNCAxNC42IDExLjYgMjIuMi0yLjUgMTQuMi0yNi40IDM0LjYtNDYuNyA2MC43LTYxLjMgOTcuNS01NC40IDIyOC40IDcuNiAyMzAuMiAxMzIuNyAuMSA4LjIgMi40IDEyLjQgOS44IDE1LjkgNTcuNiAyNi44IDc0LjUgOTYuMSAzNS4xIDE0NC41em0tODcuOC04MC41Yy01LjggMzEuMi0zNC42IDU1LjEtNjYuNyA1NS4xLTE3IDAtMzIuMS02LjUtNDQuMS0xNy43LTI3LjctMjUuNy03MS4xLTc1LTk1LjktOTMuNC0yMC4xLTE0LjktNDItMTIuMy02MC4zIDMuOC01MCA0NC4xIDE1LjkgMTIxLjggNjcuMSA3Ny4yIDQuNS00IDcuOC05LjUgMTIuNy0xMi44IDguMi01LjUgMjAuOC0uOSAxMy4yIDEwLjYtMTcuNCAyNi4zLTQ5LjMgMzguMi03OC45IDI5LjMtMjguOS04LjctNDguOC0zNi00OC42LTcwLjIgMS4yLTIyLjUgMTIuNC00My4xIDM1LjQtNTYgMjIuNi0xMi42IDQ2LjQtMTMuMSA2NyAyLjUgNTAuOCAzOC41IDc1LjYgODEuNyAxMDcuMyAxMDEuMiAyNC42IDE1LjEgNTQuMyA3LjQgNjguOC0xNy41IDI4LjgtNDkuMi0zNC42LTEwNS03OC45LTYzLjUtNCAzLjctNi45IDguOS0xMS40IDExLjctMTEgNi44LTE3LjMtNC4xLTEyLjgtMTAuNCAyMC43LTI4LjYgNTAuNS00MC40IDgzLjMtMjguMiAzMS40IDExLjcgNDkuMSA0NC40IDQyLjggNzguMnoiXX0sc010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtleWJhc2UiLGljb246WzQ0OCw1MTIsW10sImY0ZjUiLCJNMjg2LjIgNDE5YTE4IDE4IDAgMSAwIDAgMzYgMTggMTggMCAxIDAgMC0zNnpNMzk4LjEgMjcxLjRjLTkuNS0xNC42LTM5LjQtNTIuNC04Ny4zLTczLjctNi4xLTIuNy0xMi4yLTUuMS0xOC40LTcuMyA0LjEtOS45IDYtMjAuNiA1LjgtMzEuNHMtMi43LTIxLjMtNy4yLTMxLjEtMTAuOS0xOC41LTE4LjktMjUuNy0xNy40LTEyLjYtMjcuNi0xNmMtMTIuNC00LjEtMjMuMy02LTMyLjQtNS44LS42LTItMS45LTExIDkuNC0zNWwtMjIuOS0xMy41LTUuNSA3LjZjLTguNyAxMi4xLTE2LjkgMjMuNi0yNC4zIDM0LjktMi43LS42LTUuNS0xLjEtOC4zLTEuMi00MS41LTIuNC0zOS0yLjMtNDEuMS0yLjMtNTAuNiAwLTUwLjggNTIuMS01MC44IDQ1LjlsLTIuNCAzNi43Yy0xLjYgMjcgMTkuOCA1MC4yIDQ3LjYgNTEuOGw4LjkgLjVDMTA2IDIxNS41IDkwLjQgMjI3LjUgNzYuNiAyNDEuNCAxNCAzMDQuNyAxNCAzNzQgMTQgNDI5LjhsMCAzMy42IDIzLjMtMjkuOGMzLjEgMTMuMSA4IDI1LjggMTQuNiAzNy42IDUuOCAxMC4xIDE0LjkgOS40IDE5LjYgNy4zIDQuMi0xLjkgMTAtNi45IDMuOC0yMC4xLTgtMTYuOC0xMy4zLTM0LjctMTUuOC01My4xbDQ2LjgtNTkuOC0yNC43IDc0LjFjNTguMi00Mi40IDE1Ny40LTYxLjggMjM2LjItMzguNiAzNC4yIDEwLjEgNjcuNCAuNyA4NC43LTIzLjggLjctMSAxLjItMi4yIDEuOC0zLjIgMS44IDkuNCAyLjcgMTguOSAyLjggMjguNCAwIDIzLjMtMy43IDUyLjktMTQuOSA4MS42LTIuNSA2LjUgMS44IDE0LjUgOC42IDE1LjcgNy40IDEuNiAxNS4zLTMuMSAxOC40LTExLjEgOS42LTI1LjUgMTQuNi01NC42IDE0LjYtODYuMiAwLTM4LjYtMTMtNzcuNS0zNS45LTExMC45ek0xNDIuNCAxMjguNmwtMTUuNy0uOS0xLjQgMjEuOCAxMy4xIC44Yy0uNiA2LjUtLjUgMTMuMSAuMyAxOS42bC0yMi40LTEuM2MtMS42LS4xLTMuMi0uNS00LjctMS4xcy0yLjgtMS42LTMuOS0yLjgtMS45LTIuNi0yLjUtNC4xLS44LTMuMS0uNy00LjdMMTA3IDExOWMxLTEyLjIgMTMuOS0xMS4zIDEzLjMtMTEuM2wyOS4xIDEuN2MtMi44IDYuMi01LjEgMTIuNi03IDE5LjJ6TTI5MC44IDMwMC44Yy0yLjEgMS42LTQuOCAyLjQtNy41IDIuMnMtNS4xLTEuNS02LjktMy41bC05LjctMTEuNS0zNC40IDI3Yy0xLjYgMS4zLTMuNyAxLjktNS44IDEuN3MtNC0xLjItNS4zLTIuOGwtMTUuOC0xOC42Yy0xLjItMS42LTEuNy0zLjUtMS41LTUuNHMxLjMtMy43IDIuOC00LjlsMzQuNi0yNy4yLTE0LjEtMTYuNy0xNy4xIDEzLjVjLTEuNiAxLjItMy41IDEuOC01LjUgMS42cy0zLjgtMS4xLTUuMS0yLjZjMCAwLTMuNy00LjQtMy44LTQuNS0xLjItMS42LTEuNy0zLjUtMS41LTUuNXMxLjMtMy43IDIuOC00LjlMMjE0IDIyNS4ycy0xOC41LTIyLTE4LjYtMjIuMWMtLjgtMS0xLjMtMi4xLTEuNy0zLjNzLS40LTIuNS0uMy0zLjcgLjYtMi40IDEuMi0zLjUgMS41LTIgMi41LTIuOGMyLjEtMS43IDQuOC0yLjQgNy40LTIuMnM1LjEgMS41IDYuOSAzLjZsODEuMSA5Ni4zYy44IDEgMS4zIDIuMSAxLjcgMy4zcy40IDIuNSAuMyAzLjctLjYgMi41LTEuMiAzLjUtMS41IDIuMS0yLjUgMi44ek0xODcuNCA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2eiJdfSxpTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHVtb24tZHJvcCIsaWNvbjpbNTc2LDUxMixbXSwiZTdlMyIsIk00ODAgMzJjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ0OGMtNTMgMC05Ni00My05Ni05NkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDM4NCAwek0zMDIuNCAxMTQuN2MtOS44LTE2LjQtMjAuNS0xNi40LTI5LjYgMGwtNjguOSAxMTRjLTEwLjcgMTUuNi0xNi40IDMyLjgtMTYuNCA1Mi41IDAgNTAuOSA0NC4zIDk0LjMgMTAwLjEgOTQuMyA1NSAwIDEwMC45LTQzLjUgMTAwLjktOTQuMyAwLTE5LjctNi42LTM3LjgtMTcuMi01Mi41bC02OC45LTExNHoiXX0sb010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcmdlam8iLGljb246WzMyMCw1MTIsW10sImU4NjAiLCJNMjYxLjUgMS4yYzM0IDAgNjEuNiAyNy42IDYxLjYgNjEuNnMtMjcuNiA2MS42LTYxLjYgNjEuNmMtMjMgMC00My4xLTEyLjctNTMuNy0zMS40bC0yOC41IDBjLTI0IDAtNDcgOS41LTY0IDI2LjVzLTI2LjUgNDAtMjYuNSA2NGwwIDQzLjVjMjYtMTkuNSA1Ny43LTMwLjIgOTAuNi0zMC4ybDI4LjUgMGMxMC42LTE4LjcgMzAuNi0zMS40IDUzLjctMzEuNCAzNCAwIDYxLjYgMjcuNiA2MS42IDYxLjZzLTI3LjYgNjEuNi02MS42IDYxLjZjLTIzIDAtNDMuMS0xMi43LTUzLjctMzEuNGwtMjguNSAwYy0yNCAwLTQ3IDkuNS02NCAyNi41cy0yNi41IDQwLTI2LjUgNjRsMCA0Ny44YzE4LjcgMTAuNiAzMS40IDMwLjYgMzEuNCA1My42IDAgMzQtMjcuNiA2MS42LTYxLjYgNjEuNlMtMyA0ODMuMi0zIDQ0OS4yYzAtMjMgMTIuNy00My4xIDMxLjQtNTMuNmwwLTIxMmMwLTQwIDE1LjktNzguNCA0NC4yLTEwNi43czY2LjctNDQuMiAxMDYuNy00NC4ybDI4LjUgMGMxMC42LTE4LjcgMzAuNi0zMS40IDUzLjctMzEuNHpNNTguNiA0MjMuOWMtMTQgMC0yNS4zIDExLjMtMjUuMyAyNS4zczExLjMgMjUuNCAyNS4zIDI1LjQgMjUuNC0xMS40IDI1LjQtMjUuNC0xMS40LTI1LjMtMjUuNC0yNS4zek0yNjEuNSAyMDEuN2EyNS40IDI1LjQgMCAxIDAgMCA1MC43IDI1LjQgMjUuNCAwIDEgMCAwLTUwLjd6bTAtMTY0LjJhMjUuNCAyNS40IDAgMSAwIDAgNTAuNyAyNS40IDI1LjQgMCAxIDAgMC01MC43eiJdfSxuTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicG9zdGdyZXNxbCIsaWNvbjpbNTEyLDUxMixbXSwiZTg1OCIsIk0yMTkuOCAxNzEuM2MzLjkgLjUgMTMuMSAyLjcgMTIuMyA4LjUtLjggNS45LTkuMiA5LjEtMTQuMiA4LjQtNC43LS43LTEzLjItNi4xLTEyLjMtMTIuMWwuMy0yLjFjNC4yIDAgOC4zLTMuNSAxMy45LTIuN3ptMTY4LjEtMy40YzEwLjggMi42LTEuMSAxMy41LTYuOCAxNC4zLTQuMyAuNi0xMi4xLTIuMi0xMi44LTcuNC0xLTcuNCAxNS43LTcuOSAxOS43LTYuOXptLTIyLTE0MC44YzM1LjctLjMgODEuMyA5LjQgMTE0LjMgNTEuNyA3LjIgOS4yIDEwIDI0IDkuNyA0MC45LS44IDQ5LjYtMjYgMTI5LjQtNzAuNyAxOTcuNCA0LjUgMi45IDE3LjYgNy40IDUxLjEgLjUgNS42LTEuMiAxMi43LTIuMiAxNy42IDEuNiAxOC4yIDEzLjktMTkuNiAzNS4xLTI4LjQgMzkuMi0xMy4yIDYuMi0zNC44IDkuNS01MS4yIDguNy0yLjEtLjItNC4zLS4yLTYuMy0uNi01LjEtMS4xLTcuNC0xLTguMy0uNy0xLjEgLjMtMS40IDIuOS0xLjYgMy44LTIuOCAyNC45LTcuNyA2NC43LTEwLjcgODItMi44IDE2LjMtNy43IDI5LjMtMTcuMiAzOS4yLTkuNSA5LjktMjIuOCAxNS43LTQwLjYgMTkuNS0yMi4zIDQuOC0zNy45LS4xLTQ4LjctOS4xLTEwLjMtOC43LTE1LjItMjAuNC0xOC0yNy40LTEuOC00LjUtMy0xMS41LTQtMTkuOC0yLjMtMTkuOC0zLjMtNTAuNC0zLTgzLjMtMjQuNiAyMi4xLTU1IDE3LjItNjguMiAxMy45LTEwLjUtMi42LTMzLTE2LjEtMTcuNS0yOC43IDExLjktOS43IDMwLjMtNS41IDQyLjItMTUgMi40LTEuOSAxMS40LTEwLjYgMTEuNC0xMy41LTEwLS4zLTE5LjYtMi45LTI4LjEtNy41LTEzLjUgMTQuNS0yNi40IDI5LjUtMzkuMyA0NC42LTguMyA5LjktMTcuNCAxNS44LTI3LjQgMTYuMi05LjkgLjQtMTguNy00LjYtMjYuMS0xMS44LTcuMy03LjEtMTQuMS0xNy4yLTIwLjQtMjktMTktMzUuNS0zMy4yLTg2LjEtNDIuMy0xMjYuNC02LTI2LjctOS42LTQ5LjEtMTAuMS01OS0yLjItNDQuMyA4LTc0LjEgMjYtOTMuMiAxNy45LTE5IDQyLjQtMjYgNjYuMS0yNy40IDM1LjYtMiA3MSA4LjUgODYuNiAxMy44bDUgMS44YzE1LjktMTAuOCAzNi4xLTE3LjQgNjEuNy0xNyAxMy4yIC4yIDI1LjUgMi4yIDM2LjcgNC4yIDE4LjYtNy4xIDM5LjgtOS41IDU5LjQtOS43em0tOTYgMjAuNWMtMjQuNy0uNC00Mi45IDYuNS01Ni42IDE2LjgtLjggLjYtMS44IDEtMi44IDEuMi0xNC40IDExLjgtMjMuOSAyOC0zMC4zIDQ0LjgtNy4yIDE5LjEtMTAgMzguNS0xMS4xIDUxLjUgNy42LTQuMyAxNy45LTguNyAyOC43LTExLjIgMTAuNS0yLjQgMjIuNC0zLjIgMzIuNyAuOCAxMC45IDQuMiAxOSAxMy4zIDIyLjIgMjguMSA3LjUgMzQuNyA2LjcgNTguMiAyLjcgNzUuOS00LjggMjEtMTYuOCAzOS41LTIxLjkgNjAuNCAzLjUtLjkgNy4xLS42IDkuOCAuMWw3LjIgMi45YzcuNyA0LjQgMTIuOCAxMyAxNCAyMS43IDIgNiAuMSAxNC4zIDAgMjAuNiA2LjcgMTYuMyA3LjIgMzYuMSA2LjcgNTMuMy0uNyAyNS0xIDQwLjIgMy4yIDUxLjcgMi45IDcuOSA0LjcgMTYuNCAxMC40IDIyLjggMi42IDMgNi4xIDUuNSAxMC45IDYuOCAxOC41IDUuMSA0NC00LjcgNTYuNi0xOC4yIDcuNy04LjIgMTIuMy0xOS4zIDEzLjQtMzMuOSAxLjEtMTMuNiA0LjItMjcuNiA2LjMtNDEuMWwyLjktOC44YzEuNy0xNC44IDMuNC0yOS42IDUtNDQuNC0uNC05LjEgLjktMTYuMSAzLjktMjEuNSAzLjEtNS43IDcuNi04LjkgMTEuOC0xMC44IDEuOC0uOCAzLjktMS4yIDUuNi0yLTEuNi0yLjQtMy42LTQuNi01LjMtNi44LTguMi0xMC40LTEzLjMtMjIuMy0xOS43LTMzLjgtOC41LTE1LjItMjMuOC00Mi4yLTMwLjEtNjcuNS00LjEtMTYuNC00LjktMzQuNSA2LTQ3IDkuOC0xMS4yIDI2LjktMTUuNSA1MS45LTEzLTMuNC0xMC0xMS40LTI3LjUtMjQuOC00NC43LTE4LTIzLTQ1LjctNDUuOS04NS43LTUzLjEtNy4zLS45LTE1LjItMS41LTIzLjYtMS43em0tMzIuMiAyODJjLTggLjctMTUuNSAxOC4yLTIxLjcgMjMuMS02LjIgNC45LTE0LjUgNy42LTMwIDEwLjctNC41IC45LTcuNyAxLjktOS43IDIuOCAyMi4zIDE1LjggNTguMyAzLjIgNzIuNi0xNi44IDEuNy0yLjQgMi4xLTYgLjUtMTAuMi0xLjctNC41LTYuNC0xMC4xLTExLjktOS42ek0xMTcuNiA0OS4yYy0yMS42IDEuMi00MiA3LjUtNTYuNCAyMi44LTE0LjQgMTUuMi0yNC4yIDQwLjYtMjIuMSA4Mi41IC40IDguNSAzLjggMzAgOS44IDU2LjYgOC45IDM5LjggMjMuNyA5MC4zIDQwLjYgMTIyLjIgNiAxMS4xIDE3LjQgMzMgMzIuOCAzMi4zIDQuNC0uMiAxMC4xLTIuOCAxNy0xMSAxMi42LTE0LjggMjUuMi0yOS41IDM4LjUtNDMuNy0xNy45LTE1LjQtMjguNS00MC4zLTI0LjgtNjcuMiAzLjQtMjQuMyAuNS00OC4yIDEuMi03Mi41IC40LTExLjkgMi4zLTM4LjcgMTIuNi02NS44IDUuOS0xNS41IDE0LjUtMzEuMyAyNy40LTQ0LjItMTYuNC01LjQtNDcuMS0xMy41LTc2LjYtMTEuOXpNNDA1LjEgMzI4LjljLTMuOCAxLjEtNi43IDIuMi04LjcgNS44LTEuMyAyLjQtMi41IDYuNy0yLjIgMTQuMiA0LjggMy45IDE0LjEgMy4zIDE5LjggMy4yIDEzLjktLjIgMjkuOS0zLjEgMzkuMy03LjUgNy45LTMuNyAxNC43LTguMyAxOS0xMi4yLTM4LjIgNy43LTU1LjQgMi4xLTYzLjItNC44LTEuMyAuNC0yLjkgLjktMy45IDEuMnpNMjI1LjMgMTY0LjljLTE1LjQtNS45LTM1LjQgMS44LTQ4LjkgOS40LTMuNiAyLTYuNSA0LTcuOSA1LjIgLjQgOC44IDIuOCAzNi4xLTEuNCA2Ni4zLTUuMSAzNi42IDIxLjcgNjYuNiA1Mi41IDY2LjcgNS4xLTIwLjggMTctMzkuMiAyMS44LTYwLjEgMy41LTE1LjMgNC41LTM2LjYtMi43LTY5LjctMi4zLTEwLjUtNy40LTE1LjQtMTMuNC0xNy43ek0zNzAuMSA0Mi4yYy0xNS4yLS4yLTI4LjggMS43LTM5LjIgMy44IDI2IDExLjggNDUuNiAyOS43IDU5LjYgNDcuNiAxNy40IDIyLjIgMjYuMyA0NC4xIDI5IDU1IC43IDIuNyAxLjMgNS43IC41IDguNCAuNiAxOC45LTQgMzEuMy00LjYgNDkuMi0uNCAxMi45IDIuOSAyOC4xIDMuNyA0NC43IC44IDE1LjctMSAzMi41LTExLjIgNDkuNSAuOCAxIDEuNiAyLjEgMi40IDMuMSAyNi44LTQyLjIgNDYtODguNiA1Ni4zLTEyOC41IDUuNS0yMS40IDguNC00MC43IDguNy01Ni4xIC4yLTE1LjItMi0yNS40LTUuOC0zMC40LTI4LjMtMzYuMS02Ni44LTQ1LjgtOTkuMy00Ni4yem0zNS42IDExOS41Yy0yNS4zLTMuMi0zNy4zIDEuNS00Mi44IDcuNy02IDYuOC02LjggMTguNS0yLjkgMzQuMSA1LjcgMjIuNiAyMC4xIDQ4LjYgMjguNyA2NCAzLjYgNi40IDYuNCAxMy4xIDEwIDE5LjQgNS41LTExLjcgNi42LTIzLjUgNi0zNS41LS43LTE1LTQuMi0zMC4zLTMuNy00NS44bC40LTcuNGMxLjItMTQuMyA0LjEtMjQuNiA0LjItMzYuNXoiXX0sbE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlZWJseSIsaWNvbjpbNTEyLDUxMixbXSwiZjVjYyIsIk00MjUuMSA2NS44Yy0zOS45IDAtNzMuMyAyNS43LTgzLjcgNjQuMy0xOC4yLTU4LjEtNjUuNS02NC4zLTg1LTY0LjMtMTkuOCAwLTY2LjggNi4zLTg1LjMgNjQuMy0xMC40LTM4LjYtNDMuNC02NC4zLTgzLjctNjQuMy00OSAwLTg3LjUgMzMuOS04Ny41IDc3LjIgMCAyOSA0LjIgMzMuMyA3Ny4yIDIzMy41IDIyLjQgNjAuNiA2Ny44IDY5LjQgOTIuNyA2OS40IDM5LjIgMCA3MC0xOS41IDg1LjktNTQgMTUuOSAzNC44IDQ2LjcgNTQuMyA4NS45IDU0LjMgMjUgMCA3MC40LTkuMSA5Mi43LTY5LjcgNzYuNi0yMDguNiA3Ny41LTIwNS42IDc3LjUtMjI3LjIgLjYtNDguMy0zNi04My41LTg2LjktODMuNXptMjYuMyAxMTQuOEwzODUuOSAzNTcuMWMtNy45IDIxLjUtMjEuMiAzNy4yLTQ2LjIgMzcuMi0yMy40IDAtMzcuNC0xMi40LTQ0LTMzLjlsLTM5LjMtMTE3LjQtMSAwLTM5LjMgMTE3LjRjLTcgMjEuNS0yMC45IDMzLjYtNDQgMzMuNi0yNSAwLTM4LjMtMTUuNy00Ni4yLTM3LjJMNjAuOSAxODEuNmMtNS40LTE0LjgtNy45LTIzLjktNy45LTM0LjUgMC0xNi4zIDE1LjgtMjkuNCAzOC4zLTI5LjQgMTguNyAwIDMyIDExLjggMzYuMSAyOS4xbDQ0IDEzOS44IDEgMCA0NC43LTEzNi44YzYtMTkuNyAxNi41LTMyLjEgMzktMzIuMXMzMi45IDEyLjEgMzkgMzIuMWw0NC43IDEzNi44IDEgMCA0NC0xMzkuOGM0LjEtMTcuMiAxNy40LTI5LjEgMzYuMS0yOS4xIDIyLjIgMCAzOC4zIDEzLjMgMzguMyAzNS43LS4zIDcuOS00LjEgMTYtNy42IDI3LjJ6Il19LGNNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NrZXIiLGljb246WzY0MCw1MTIsW10sImYzOTUiLCJNMzQ5LjkgMjM2LjNsLTY2LjEgMCAwLTU5LjQgNjYuMSAwIDAgNTkuNHptMC0yMDQuM2wtNjYuMSAwIDAgNjAuNyA2Ni4xIDAgMC02MC43em03OC4yIDE0NC44bC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6TTI3MS44IDEwNC43bC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTc4LjEgMGwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xem0yNzYuOCAxMDBjLTE0LjQtOS43LTQ3LjYtMTMuMi03My4xLTguNC0zLjMtMjQtMTYuNy00NC45LTQxLjEtNjMuN2wtMTQtOS4zLTkuMyAxNGMtMTguNCAyNy44LTIzLjQgNzMuNi0zLjcgMTAzLjgtOC43IDQuNy0yNS44IDExLjEtNDguNCAxMC43bC00MzQuNyAwYy04LjcgNTAuOCA1LjggMTE2LjggNDQgMTYyLjEgMzcuMSA0My45IDkyLjcgNjYuMiAxNjUuNCA2Ni4yIDE1Ny40IDAgMjczLjktNzIuNSAzMjguNC0yMDQuMiAyMS40IC40IDY3LjYgLjEgOTEuMy00NS4yIDEuNS0yLjUgNi42LTEzLjIgOC41LTE3LjFsLTEzLjMtOC45ek0xMTUuNiAxNzYuOGwtNjYgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNC0uMSAwem03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptNzguMSAwbC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6bS03OC4xLTcyLjFsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXoiXX0sZE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hZ2VudG8iLGljb246WzQ0OCw1MTIsW10sImYzYzQiLCJNNDQ1LjkgMTI3LjlsMCAyNTYuMS02My40IDM2LjUgMC0yNTUuOC0xNTguNS05MS42LTE1OC42IDkxLjYgLjQgMjU1LjktNjMuMy0zNi42IDAtMjU1LjkgMjIxLjktMTI4LjEgMjIxLjUgMTI3Ljl6TTI1NS44IDQyMC41bC0zMS42IDE4LjQtMzEuOC0xOC4yIDAtMjU2LTYzLjMgMzYuNiAuMSAyNTUuOSA5NC45IDU0LjkgOTUuMS01NC45IDAtMjU2LTYzLjQtMzYuNiAwIDI1NS45eiJdfSx1TXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidG9yLWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImU4MzgiLCJNMjU2LjUgNDY1LjRsMC0zMWM5OC4zLS4zIDE3Ny45LTgwIDE3Ny45LTE3OC40UzM1NC44IDc3LjkgMjU2LjUgNzcuNmwwLTMxQzM3MiA0Ni44IDQ2NS40IDE0MC41IDQ2NS40IDI1NlMzNzIgNDY1LjIgMjU2LjUgNDY1LjR6bTAtMTA4LjZjNTUuNC0uMyAxMDAuMy00NS4zIDEwMC4zLTEwMC44UzMxMiAxNTUuNSAyNTYuNSAxNTUuMmwwLTMxYzcyLjYgLjMgMTMxLjQgNTkuMiAxMzEuNCAxMzEuOFMzMjkuMSAzODcuNiAyNTYuNSAzODcuOGwwLTMxem0wLTE1NS4xYzI5LjcgLjMgNTMuOCAyNC41IDUzLjggNTQuM3MtMjQgNTQtNTMuOCA1NC4zbDAtMTA4LjZ6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6Il19LHBNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXQtYWx0IixpY29uOls0NDgsNTEyLFtdLCJmODQxIiwiTTQzOS42IDIzNi4xTDI0NCA0MC41QzIzOC42IDM1IDIzMS4yIDMyIDIyMy42IDMycy0xNSAzLTIwLjQgOC40bC00MC43IDQwLjYgNTEuNSA1MS41YzI3LjEtOS4xIDUyLjcgMTYuOCA0My40IDQzLjdsNDkuNyA0OS43YzM0LjItMTEuOCA2MS4yIDMxIDM1LjUgNTYuNy0yNi41IDI2LjUtNzAuMi0yLjktNTYtMzcuM2wtNDYuMy00Ni4zIDAgMTIxLjljMjUuMyAxMi41IDIyLjMgNDEuOCA5LjEgNTUtNi40IDYuNC0xNS4yIDEwLjEtMjQuMyAxMC4xcy0xNy44LTMuNi0yNC4zLTEwLjFjLTE3LjYtMTcuNi0xMS4xLTQ2LjkgMTEuMi01NmwwLTEyM2MtMjAuOC04LjUtMjQuNi0zMC43LTE4LjYtNDVMMTQyLjYgMTAxIDguNSAyMzUuMUMzIDI0MC42IDAgMjQ3LjkgMCAyNTUuNXMzIDE1IDguNSAyMC40TDIwNC4xIDQ3MS42YzUuNCA1LjQgMTIuNyA4LjQgMjAuNCA4LjRzMTUtMyAyMC40LTguNEw0MzkuNiAyNzYuOWM1LjQtNS40IDguNC0xMi44IDguNC0yMC40cy0zLTE1LTguNC0yMC40eiJdfSxmTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyZWZveC1icm93c2VyIixpY29uOls1MTIsNTEyLFtdLCJlMDA3IiwiTTEzMC4yIDEyNy41bDAgMHptMzUxLjQgNDUuNGMtMTAuNi0yNS41LTMyLjEtNTMtNDguOS02MS43IDEzLjcgMjYuOSAyMS43IDUzLjkgMjQuNyA3NCAwIC4xIDAgLjMgLjEgLjQtMjcuNi02OC44LTc0LjQtOTYuNS0xMTIuNi0xNTYuOC0xNS0yMy43LTEwLjktMjUuMi0xMy4xLTI0LjdsLS4xIC4xYy00Ni43IDI2LTc1LjMgNzguNC04Mi42IDEyMi43LTE2LjYgLjktMzIuOSA1LTQ3LjkgMTIuMS0xLjQgLjYtMi41IDEuNy0zLjEgM3MtLjkgMi44LS42IDQuM2MuMiAuOCAuNiAxLjYgMS4xIDIuM3MxLjIgMS4zIDEuOSAxLjcgMS42IC43IDIuNCAuOCAxLjcgMCAyLjUtLjNsLjUtLjJjMTUuNS03LjMgMzIuNC0xMS4yIDQ5LjUtMTEuMyA2Mi44LS42IDk3LjIgNDQgMTA3LjYgNjIuMy0xMy05LjItMzYuNC0xOC4yLTU4LjgtMTQuMyA4Ny43IDQzLjkgNjQuMiAxOTQuNS01Ny40IDE4OS4yLTU5LjUtMi42LTk3LjEtNTEtMTAwLjUtOTAuOCAwIDAgMTEuMi00MS45IDgwLjYtNDEuOSA3LjUgMCAyOC45LTIwLjkgMjkuMy0yNy0uMS0yLTQyLjUtMTguOS01OS4xLTM1LjItOC44LTguNy0xMy4xLTEyLjktMTYuOC0xNi4xLTItMS43LTQuMS0zLjMtNi4zLTQuOC01LjYtMTkuNS01LjgtNDAtLjctNTkuNi0yNS4xIDExLjQtNDQuNiAyOS40LTU4LjcgNDUuNGwtLjEgMGMtOS43LTEyLjItOS01Mi42LTguNC02MS4xLS4xLS41LTcuMiAzLjctOC4yIDQuMy04LjYgNi4xLTE2LjUgMTIuOS0yMy44IDIwLjQtMTYuMyAxNi42LTQ0LjEgNTAuMi01NS41IDEwMS4yLTQuNSAyMC40LTYuOCA0NC40LTYuOCA1Mi4zIDAgMTM0LjcgMTA5LjIgMjQzLjkgMjQzLjkgMjQzLjkgMTIwLjYgMCAyMjMtODcuMiAyNDAuNC0yMDIuNiAxMS42LTc2LjctMTQuNy0xMzEuMS0xNC43LTEzMnoiXX0saE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3Vkc21pdGgiLGljb246WzUxMiw1MTIsW10sImYzODQiLCJNNTEyIDIyNy42TDUxMiAyODQuNSAyODQuNCA1MTIgMjI3LjYgNTEyIDAgMjg0LjQgMCAyMjcuNiAyMjcuNiAwIDI4NC41IDAgNTEyIDIyNy42em0tMjU2IDE2MmMxNy44IC41IDM1LjYtMi42IDUyLjItOS4xczMxLjgtMTYuMiA0NC42LTI4LjcgMjMtMjcuMyAyOS45LTQzLjggMTAuNS0zNC4xIDEwLjUtNTItMy42LTM1LjUtMTAuNS01Mi0xNy4xLTMxLjMtMjkuOS00My44LTI4LTIyLjItNDQuNi0yOC43LTM0LjQtOS42LTUyLjItOS4xYy0xNy44LS41LTM1LjYgMi42LTUyLjIgOS4xcy0zMS44IDE2LjMtNDQuNiAyOC43LTIzIDI3LjMtMjkuOSA0My44LTEwLjUgMzQuMS0xMC41IDUyIDMuNiAzNS41IDEwLjUgNTIgMTcuMSAzMS4zIDI5LjkgNDMuOCAyOCAyMi4yIDQ0LjYgMjguNyAzNC40IDkuNiA1Mi4yIDkuMXoiXX0sbU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpemFyZHMtb2YtdGhlLWNvYXN0IixpY29uOls2NDAsNTEyLFtdLCJmNzMwIiwiTTIxOS4yIDM0NS43Yy0xLjkgMS40LTExLjEgOC40LS4zIDIzLjYgNC42IDYuNCAxNC4xIDEyLjggMjEuNyA2LjYgNi41LTQuOSA3LjQtMTIuOSAuMy0yMy01LjUtNy44LTE0LjMtMTIuOS0yMS43LTcuMXptMzM2LjggNzUuOWMtLjMgMS43LS42IDEuNyAuOCAwIDIuMS00LjIgNC4yLTEwLjIgNS0xOS45IDMuMS0zOC41LTQwLjMtNzEuNS0xMDEuMy03OC01NC43LTYtMTI0LjQgOS4yLTE4OC44IDYwLjVsLS4zIDEuNmMyLjYgNSA1IDEwLjcgMy40IDIxLjJsLjggLjNjNjMuOS01OC40IDEzMS4yLTc3LjIgMTg0LjQtNzMuOCA1OC40IDMuNyAxMDAgMzQgMTAwIDY4LjEgMCAxMC0yLjYgMTUuNy0zLjkgMjAuMnpNMzkyLjMgMjQwLjRjLjggNy4xIDQuMiAxMC4yIDkuMiAxMC41IDUuNSAuMyA5LjQtMi42IDEwLjUtNi42IC44LTMuNCAyLjEtMjkuOCAyLjEtMjkuOFM0MDIuOCAyMjEgMzk5LjEgMjI1Yy0zLjcgMy43LTcuMyA4LjQtNi44IDE1LjV6bS01MC0xNTEuMWMtMjA0LjUgMC0zMjkuMiAxMzcuNS0zNDEuNSAxNTEuOS0xIC41LTEuMyAuOCAuOCAxLjMgNjAuNSAxNi41IDE1NS44IDgxLjIgMTk2LjEgMjAyLjJsMSAuM2M1NS4yLTY5LjkgMTQwLjktMTI4LjEgMjM3LTEyOC4xIDgwLjkgMCAxMzAuMiA0Mi4yIDEzMC4yIDgwLjQgMCAxOC4zLTYuNiAzMy41LTIyLjMgNDYuMyAwIDEtLjIgLjggLjggLjggMTQuNy0xMC43IDI3LjUtMjguOCAyNy41LTQ4LjIgMC0yMi44LTEyLjEtMzguMi0xMi4xLTM4LjIgNy4xIDcuMSAxMC43IDE2LjIgMTAuNyAxNi4yIDUuOC00MC45IDI3LTYyLjMgMjctNjIuMy0yLjQtOS43LTYuOC0xNy44LTYuOC0xNy44IDcuNiA4LjEgMTQuNCAyNy41IDE0LjQgNDEuNCAwIDEwLjUtMy40IDIyLjgtMTIuNiAzMS45bC4zIC41YzguMS01IDE2LjUtMTYuOCAxNi41LTM4IDAtMTUuNy00LjctMjUuOS00LjctMjUuOSA1LjgtNS4yIDExLjMtOS4yIDE2LTExLjggLjggMy40IDIuMSA5LjcgMi40IDE0LjkgMCAxIC44IDEuOCAxIDAgLjgtNS44LS4zLTE2LjItLjMtMTYuNSA2LTMuMSA5LjctNC41IDkuNy00LjUtMTUuNy0xMTAuMy0xNDQtMTk2LjktMjkxLjItMTk2Ljl6TTI0MyAzNzguOWMtMTEuMSA5LTI0LjIgNC4xLTMwLjYtNC4yLTcuNC05LjYtNi44LTI0LjEgNC4yLTMyLjUgMTQuOC0xMS40IDI3LjEtLjUgMzEuMiA1LjUgLjMgLjQgMTIuMSAxNi42LTQuNyAzMS4yem0yLjEtMTM2LjRsOS40LTE3LjggMTEuOCA3MS0xMi42IDYtMjQuNi0yOC44IDE0LjEtMjYuNyAzLjcgNC40LTEuOC04LjF6bTE4LjYgMTE3LjZsLS4zLS4zYzItNC4xLTIuNS02LjYtMTcuNS0zMS43LTEuMy0yLjQtMy4xLTIuOS00LjQtMi42bC0uMy0uNWM3LjktNS44IDE1LjQtMTAuMiAyNS40LTE1LjdsLjUgLjNjMS4zIDEuOCAyLjEgMi45IDMuNCA0LjdsLS4zIC41Yy0xLS4zLTIuNC0uOC01LjIgLjMtMi4xIC44LTcuOSAzLjctMTIuMyA3LjZsMCAxLjNjMS42IDIuNCAzLjkgNi42IDUuOCA5LjdsLjMgMGMxMC02LjMgNy42LTQuNSAxMS41LTcuOWwuMyAwYy41IDEuOCAuNSAxLjggMS44IDUuNWwtLjMgLjNjLTMuMSAuNi00LjcgLjMtMTEuNSA1LjVsMCAuM2M5LjUgMTcgMTEgMTYuOCAxMi42IDE2bC4zIC4zYy0yLjMgMS42LTYuMyA0LjItOS43IDYuNnpNMzE5IDMyNy42Yy0zLjEgMS42LTYgMi45LTEwIDVsLS4zLS4zYzEuMy0yLjYgMS4yLTIuNy0xMS44LTMyLjVsLS4zLS4zYy0uMiAwLTguOSAzLjctMTAgNy4zbC0uNSAwLTEtNS44IC4zLS41YzcuMy00LjYgMjUuNS0xMS42IDI3LjgtMTIuNmwuNSAuMyAzLjEgNS0uMyAuNWMtMy41LTEuOC03LjQgLjgtMTIuMyAyLjZsMCAuM2MxMi4zIDMyIDEyLjcgMzAuNiAxNC43IDMwLjZsMCAuMnptNDQuOC0xNi41Yy00LjIgMS01LjIgMS4zLTkuNyAyLjlsLS4zLS4zIC41LTQuNWMtMS0zLjQtMy4xLTExLjUtMy43LTEzLjZsLS4zLS4zYy0zLjQgLjgtOC45IDIuNi0xMi44IDMuOWwtLjMgLjNjLjggMi42IDMuMSA5LjkgNC4yIDEzLjkgLjggMi40IDEuOCAyLjkgMi45IDMuMWwwIC41Yy0zLjcgMS03LjEgMi42LTEwLjIgMy45bC0uMy0uM2MxLTEuMyAxLTIuOSAuMy01LTEtMy4xLTguMS0yMy44LTkuMi0yNy4yLS41LTEuOC0xLjYtMy4xLTIuNi0zLjFsMC0uNWMzLjEtMSA2LTIuMSAxMC43LTMuNGwuMyAuMy0uMyA0LjdjMS4zIDMuOSAyLjQgNy42IDMuMSA5LjdsLjMgMGMzLjktMS4zIDkuNC0yLjkgMTIuOC0zLjlsLjMtLjMtMi42LTkuNGMtLjUtMS44LTEtMy40LTIuNi0zLjlsMC0uM2M0LjQtMSA3LjMtMS44IDEwLjctMi40bC4zIC4zYy0xIDEuMy0xIDIuOS0uNSA0LjQgMS42IDYuMyA0LjcgMjAuNCA2LjMgMjYuNSAuNSAyLjYgMS44IDMuNCAyLjYgMy45em0zMi4yLTYuOGwtLjMgLjNjLTQuNyAuNS0xNC4xIDIuNC0yMi41IDQuMmwtLjMtLjMgLjgtNC4yYy0xLjYtNy45LTMuNC0xOC42LTUtMjYuMi0uMy0xLjgtLjgtMi45LTIuNi0zLjdsLjgtLjVjOS4yLTEuNiAyMC4yLTIuNCAyNC45LTIuNmwuMyAuM2MuNSAyLjQgLjggMy4xIDEuNiA1LjVsLS4zIC4zYy0xLjEtMS4xLTMuMy0zLjItMTYuMi0uOGwtLjMgLjNjLjMgMS42IDEgNi42IDEuNiA5LjlsLjMgLjNjOS41LTEuNyA0LjgtLjEgMTAuNy0yLjRsLjMgMGMwIDEuNi0uMyAxLjgtLjMgNS4ybC0uMyAwYy00LjgtMS0yLjItLjktMTAuMiAwbC0uMyAuM2MuMyAyLjEgMS42IDkuNCAyLjEgMTIuNmwuMyAuM2MxLjIgLjQgMTQuMi0uNiAxNi4yLTQuN2wuMyAwYy0uNSAyLjQtMSA0LjItMS42IDZ6bTEwLjctNDQuNWMtNC41IDIuNC04LjEgMi45LTExIDIuOS0uMiAwLTExLjQgMS4xLTE3LjUtMTAtNi43LTEwLjgtMS0yNS4yIDUuNS0zMS43IDguOC04LjEgMjMuNC0xMC4xIDI4LjUtMTcgOC0xMC4zLTEzLTIyLjMtMjkuNi01LjhsLTIuNi0yLjkgNS4yLTE2LjJjMjUuNi0xLjYgNDUuMi0zIDUwIDE2LjIgLjggMy4xIDAgOS40LS4zIDEyLjEgMCAyLjYtMS44IDE4LjgtMi4xIDIzLS41IDQuMi0uOCAxOC4zLS44IDIwLjcgLjMgMi40IC41IDQuMiAxLjYgNS41IDEuNiAxLjggNS44IDEuOCA1LjggMS44bC0uOCA0LjdjLTExLjgtMS4xLTEwLjMtLjYtMjAuNC0xLTMuMi01LjEtMi4yLTMuMy00LjItNy45IDAgMC00LjIgMy45LTcuMyA1LjV6TTQ0My45IDI4MWMtNi40LTEwLjYtMTkuOC03LjItMjEuNyA1LjUtMi42IDE3LjEgMTQuMyAxOS44IDIwLjcgMTAuMmwuMyAuM2MtLjUgMS44LTEuOCA2LTEuOCA2LjNsLS41IC41Yy0xMC4zIDYuOS0yOC41LTIuNS0yNS43LTE4LjYgMS45LTEwLjkgMTQuNC0xOC45IDI4LjgtOS45bC4zIC41YzAgMS4xLS4zIDMuNC0uMyA1LjN6bTUuOC04Ny43bDAtNi42Yy43IDAgMTkuNiAzLjMgMjcuOCA3LjNsLTEuNiAxNy41czEwLjItOS40IDE1LjQtMTAuN2M1LjItMS42IDE0LjkgNy4zIDE0LjkgNy4zbC0xMS4zIDExLjNjLTEyLjEtNi40LTE5LjYtLjEtMjAuNyAuOC01LjMgMzguNy04LjYgNDIuMiA0LjQgNDYuMWwtLjUgNC43Yy0xNy42LTQuMy0xOC41LTQuNS0zNi45LTcuM2wuOC00LjdjNy4zIDAgNy41LTUuMyA3LjYtNi44IDAgMCA1LTUzLjIgNS01NS4zIDAtMi45LTUtMy43LTUtMy43em0xMSAxMTQuNGMtOC4xLTIuMS0xNC4xLTExLTEwLjctMjAuNyAzLjEtOS40IDEyLjMtMTIuMyAxOC45LTEwLjIgOS4yIDIuNiAxMi44IDExLjggMTAuNyAxOS40LTIuNiA4LjktOS40IDEzLjktMTguOSAxMS41em00Mi4yIDkuN2MtMi40LS41LTcuMS0yLjQtOC42LTIuOWwwLS4zIDEuNi0xLjhjLjYtOC4yIC42LTcuMyAuMy03LjYtNC44LTEuOC02LjctMi40LTcuMS0yLjQtMS4zIDEuOC0yLjkgNC41LTMuNyA1LjVsLS44IDMuNCAwIC4zYy0xLjMtLjMtMy45LTEuMy02LTEuNmwwLS4zIDIuNi0xLjhjMy40LTQuNyAxMC0xNC4xIDEzLjktMjAuMmwwLTIuMSAuNS0uM2MyLjEgLjggNS41IDIuMSA3LjYgMi45IC41IC41IC4yLTEuOS0xIDI1LjEtLjIgMS44IDAgMi42IC44IDMuOXptLTQuNy04OS44YzExLjMtMTguMyAzMC44LTE2LjIgMzQtMy40bDcuNi0yNi4yYzIuMy02LjItMi44LTkuOS00LjUtMTEuM2wxLjgtMy43YzEyLjIgMTAuNCAxNi40IDE0IDIyLjUgMjAuNC0yNS45IDczLjEtMzAuOCA4MC44LTI0LjYgODQuM2wtMS44IDQuNGMtNi40LTMuMy04LjktNC40LTE3LjgtOC42bDIuMS02LjhjLS4zLS4zLTMuOSAzLjktOS43IDMuNy0xOS4xLTEuMy0yMi45LTMxLjctOS43LTUyLjl6bTI5LjMgNzkuM2MwLTUuNy02LjMtNy45LTcuOS01LjItMS4zIDIuMSAxIDUgMi45IDguNCAxLjYgMi42IDIuNiA2LjMgMSA5LjQtMi42IDYuMy0xMi40IDUuMy0xNS40LS44IDAtLjctLjMgLjEgMS44LTQuN2wuOC0uM2MtLjYgNS43IDYuMSA5LjYgOC40IDUgMS0yLjEtLjUtNS41LTIuMS04LjQtMS42LTIuNi0zLjctNi4zLTEuOC05LjcgMi43LTUuMSAxMS4zLTQuNSAxNC43IDIuNGwwIC41LTIuNCAzLjR6bTIxLjIgMTMuNGMtMi0zLjMtLjktMi4xLTQuNS00LjdsLS4zIDBjLTIuNCA0LjItNS44IDEwLjUtOC42IDE2LjItMS4zIDIuNC0xIDMuNC0uOCAzLjlsLS4zIC4zLTUuOC00LjQgLjMtLjMgMi4xLTEuM2MzLjEtNS44IDYuNi0xMi4xIDkuMi0xN2wwLS4zYy0yLjYtMi0xLjItMS41LTYtMS44bDAtLjMgMy4xLTMuNCAuMyAwYzMuNyAyLjQgMTAgNi44IDEyLjMgOC45bC4zIC4zLTEuMyAzLjl6TTU3NS44IDI3NmwtMi45LTIuOWMuOC0yLjQgMS44LTUgMi4xLTcuNiAuNy05LjctMTEuNS0xMS44LTExLjUtNSAwIDUgNy45IDE5LjQgNy45IDI3LjggMCAxMC4yLTUuOCAxNS43LTEzLjkgMTYuNS04LjQgLjgtMjAuMi0xMC41LTIwLjItMTAuNWw1LTE0LjQgMi45IDIuMWMtMyAxNy44IDE3LjcgMjAuNCAxMy4zIDUuMi0xLjEtNC0xOC43LTM0LjIgMi4xLTM4LjIgMTMuNi0yLjQgMjMgMTYuNSAyMyAxNi41TDU3NS44IDI3NnptMzUuNi0xMC4yYy0xMS0zMC40LTYwLjUtMTI3LjUtMTkyLTEyOS42LTUzLjQtMS05NC4zIDE1LjQtMTMyLjggMzhsODUuNi05LjItOTEuNCAyMC43IDI1LjEgMTkuNi0zLjktMTYuNWM3LjUtMS43IDM5LjEtOC41IDY2LjgtOC45bC0yMi4zIDgwLjRjMTMuNi0uNyAxOS05IDE5LjYtMjIuOGw1LTEgLjMgMjYuN2MtMjIuNSAzLjItMzcuMyA2LjctNDkuNSA5LjlsMTMuMS00My4yLTYxLjUtMzYuNyAyLjQgOC4xIDEwLjIgNWM2LjMgMTguNiAxOS40IDU2LjYgMjAuNCA1OC43IDIgNC4zIDMuMiA1LjggMTIgNC41bDEuMSA1Yy0xNi4xIDQuOS0yMy43IDcuNi0zOSAxNC40bC0yLjQtNC43YzQuNC0yLjkgOC43LTMuOSA1LjUtMTIuOC0yMy43LTYyLjUtMjEuNS01OC4xLTIyLjgtNTkuNGwyLjQtNC40IDMzLjUgNjcuM2MtMy44LTExLjkgMS43IDEuNy0zMy03OC44bC00MS45IDg4LjUgNC43LTEzLjktMzUuOS00Mi4yIDI3LjggOTMuNS0xMS44IDguNGMtMTExLjktMTAxLjctMTA1LjgtOTguNC0xMTMuNy05OC43LTUuNS0uMy0xMy42IDUuNS0xMy42IDUuNWwtNS02YzMwLjYtMjMuNSAzMS42LTI0LjMgNTguNC00Mi43bDQuMiA3LjFzLTUuOCA0LjItNy45IDcuMWMtNS45IDkuMyAxLjcgMTMuMyA2MS44IDc1LjdsLTE4LjgtNTguOSAzOS44LTEwLjIgMjUuNyAzMC42IDQuNC0xMi4zLTUtMjQuNiAxMy4xLTMuNCAuNSAzLjEgMy43LTEwLjUtOTQuMyAyOS4zIDExLjMtNS0xMy42LTQyLjQgMTcuMy05LjIgMzAuMSAzNi4xIDI4LjUtMTMuMWMtMS40LTcuNS0yLjUtMTQuNS00LjctMTkuNmwxNy4zIDEzLjkgNC43LTIuMS01OS4yLTQyLjcgMjMuMSAxMS41YzE5LTYuMSAyNS4yLTcuNSAzMi4yLTkuN2wyLjYgMTFjLTEyLjYgMTIuNiAxLjQgMTYuOCA2LjUgMTkuNGwtMTMuNi02MSAxMiAyOC4zYzQuMi0xLjMgNy4zLTIuMSA3LjMtMi4xbDIuNiA4LjZzLTMuMSAxLTYuMyAyLjFsOC45IDIxIDMzLjgtNjUuNy0yMC43IDYxYzQyLjQtMjQuMSA4MS40LTM2LjcgMTMyLTM1LjkgNjcgMSAxNjcuMyA0MC44IDE5OS44IDEzOS44IC44IDIuMSAwIDIuNi0uOCAuM3ptLTQwOC0xMTMuNHMxLjgtLjUgNC4yLTEuM2w5LjQgNy42Yy0uNCAwLTMuNC0uMy0xMS4zIDIuNGwtMi40LTguNnptMTQzLjggMzguNWMtMS42LS42LTI2LjUtNC44LTMzLjMgMjAuN2wyMS43IDE3IDExLjUtMzcuN3pNMzE4LjQgNjcuMWMtNTguNCAwLTEwNi4xIDEyLTExNSAxNC40bDAgLjhjOC40IDIuMSAxNC40IDQuMiAyMS4yIDExLjhsMS42IC4zYzYuNi0xLjggNDktMTMuOSAxMTAuMi0xMy45IDE4MC4yIDAgMzAxLjcgMTE2LjggMzAxLjcgMjIzLjRsMCAxMGMwIDEuMyAuOCAyLjYgMS4xIC41IC41LTIuMSAuOC04LjYgLjgtMTkuNiAuMy04My44LTk2LjYtMjI3LjYtMzIxLjYtMjI3LjZ6TTUyOS41IDIzNi44YzEuMy01LjggMC0xMi4zLTcuMy0xMy4xLTkuNi0xLjEtMTYuMSAyMy44LTE3IDMzLjUtLjggNS41LTEuMyAxNC45IDYgMTQuOSA0LjcgMCA5LjctLjkgMTguMy0zNS40ek00NjggMjc5LjdjLTIuNi0uOC05LjQtLjgtMTIuNiAxMC41LTEuOCA2LjggLjUgMTMuNCA2IDE0LjcgMy43IDEuMSA4LjkgLjUgMTEuOC0xMC43IDIuNi05LjktMS44LTEzLjYtNS4yLTE0LjR6bTIzIDIxYzEuOCAuNSAzLjEgMSA1LjggMS44IDAtMS44IC41LTguNCAuOC0xMi4xLTEgMS4zLTUuNSA4LjEtNi42IDEwbDAgLjN6Il19LGdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5kIixpY29uOls1MTIsNTEyLFtdLCJmNGViIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptOTQgMTQ0LjNsMCA0Mi41LTE4MC4zIDAgMC00Mi41IDE4MC4zIDB6bTAgNzkuOGwwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHoiXX0sYk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzcHMiLGljb246WzUxMiw1MTIsW10sImY3ZTEiLCJNNDI4LjMgMjQxLjdjMjUuOC00MS4zIDE1LjItNDguOC0xMS43LTQ4LjhsLTI3IDBjLS4xIDAtMS41LTEuNC0xMC45IDgtMTEuMiA1LjYtMzcuOSA2LjMtMzcuOSA4LjcgMCA0LjUgNzAuMy0zLjEgODguMSAwIDkuNSAxLjUtMS41IDIwLjQtNC40IDMyLS41IDQuNSAyLjQgMi4zIDMuOCAuMXpNMzE2LjIgMjY0LjNjNjQtMjEuMyA5Ny4zLTIzLjkgMTAyLTI2LjIgNC40LTIuOS00LjQtNi42LTI2LjItNS44LTUxLjcgMi4yLTEzNy42IDM3LjEtMTcyLjYgNTMuOWwtMzAuNy05My4zIDE5Ni42IDBjLTIuNy0yOC4yLTE1Mi45LTIyLjYtMzM3LjktMjIuNkwtNSA0MTUuOGMxOTYuNC05Ny4zIDI1OC45LTEzMC4zIDMyMS4yLTE1MS41ek02Mi43IDk2YzI1My4zIDUzLjcgMzMwIDY1LjcgMzMyLjEgODUuMiAzNi40IDAgNDUuOSAwIDUyLjQgNi42IDIxLjEgMTkuNy0xNC42IDY3LjctMTQuNiA2Ny43LTQuNCAyLjktNDA2LjQgMTYwLjItNDA2LjQgMTYwLjJMNDQ5LjMgNDE1LjcgNTE3IDk2IDYyLjcgOTZ6Il19LHZNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGV0dGVyYm94ZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTYyZSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xMDUuMSAxODdDNjYuNCAxODcgMzUgMjE4LjMgMzUgMjU3czMxLjQgNzAgNzAuMSA3MGMyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjgtMzQuNC0zMi45LTU5LjUtMzIuOXpNMjI0IDE4N2MtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS43IDM0LjQgMzIuOSA1OS41IDMyLjkgMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41IDAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjEtMTIuNC0xOS43LTM0LjQtMzIuOS01OS41LTMyLjl6bTExOC45IDBjLTI0LjggMC00Ni41IDEyLjgtNTkgMzIuMmwtLjUgLjcgLjQgLjZjNi41IDEwLjYgMTAuMiAyMy4xIDEwLjIgMzYuNSAwIDEzLjYtMy45IDI2LjMtMTAuNiAzNy4xIDEyLjQgMTkuOCAzNC40IDMyLjkgNTkuNSAzMi45IDM4LjcgMCA3MC4xLTMxLjMgNzAuMS03MHMtMzEuNC03MC03MC4xLTcweiJdfSx4TXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFuZGFsb3JpYW4iLGljb246WzM4NCw1MTIsW10sImY1MGYiLCJNMjAwLjYgNTExLjljLTEtMy4zLTEuNy0xNS44LTEuNC0yNC42IC42LTE1LjkgMS0yNC43IDEuNC0yOC44IC42LTYuMiAyLjktMjAuNyAzLjMtMjEuNCAuNi0xIC40LTI3LjktLjItMzMuMS0uMy0yLjYtLjYtMTEuOS0uNy0yMC43LS4xLTE2LjUtLjUtMjAuMS0yLjctMjQuOC0xLjEtMi4zLTEuMi0zLjgtMS0xMS40IC4yLTQuMiAuMS04LjUtLjMtMTIuNy0yLTEzLTMuNS0yNy43LTMuMi0zMy45cy40LTcuMSAyLjEtOS43YzMuMS00LjcgNi41LTE0IDguNi0yMy4zIDIuMy05LjkgMy45LTE3LjIgNC42LTIwLjcgMS4xLTUuMSAyLjYtMTAuMSA0LjQtMTUuMSAyLjMtNi4yIDIuNS0xNS40IC40LTE1LjQtLjMgMC0xLjQgMS4yLTIuNCAyLjdzLTQuOCA0LjgtOC4zIDcuNGMtOC40IDYuMS0xMS43IDkuNC0xMi43IDEyLjZzLTEgNy4yLS4yIDcuOGMuMyAuMiAxLjMgMi40IDIuMSA0LjkgMS42IDUgMS45IDEwLjMgLjcgMTUuNC0uNCAxLjgtMSA1LjUtMS41IDguMnMtMSA2LjUtMS4zIDguMmMtLjIgMS41LS43IDMtMS41IDQuMy0xIDEtMS4xIC45LTIuMS0uNS0uNy0xLjUtMS4yLTMuMS0xLjQtNC43LS4yLTEuNy0xLjYtNy4xLTMuMS0xMS45LTMuMy0xMC45LTMuNS0xNi4yLTEtMjEgLjgtMS40IDEuNC0zIDEuNy00LjYgMC0yLjQtMi4yLTUuMy03LjQtOS45LTctNi4yLTguNi03LjktMTAuMi0xMS4zLTEuNy0zLjYtMy4xLTQuMS00LjUtMS41LTEuOCAzLTIuNiA5LjEtMyAyMmwtLjMgMTIuMiAyIDIuMmMzLjIgMy43IDEyLjEgMTYuNSAxMy44IDE5LjggMy40IDYuNyA0LjMgMTEuNyA0LjQgMjMuNnMxIDIyLjggMiAyNC43Yy40IC43IC41IDEuNCAuMyAxLjVzLjQgMi4xIDEuMyA0LjNjMSAyLjkgMS43IDUuOSAyLjEgOSAuNCAzLjUgLjkgNyAxLjcgMTAuNCAyLjIgOS42IDIuOCAxNC4xIDIuNCAyMC4xLS4yIDMuMy0uNSAxMS4xLS43IDE3LjMtMS4zIDQxLjgtMS44IDU4LTIgNjEuMi0uMSAyLS40IDExLjUtLjYgMjEuMS0uNCAxNi4zLTEuMyAyNy40LTIuNCAyOC42LS42IC43LTguMS00LjktMTIuNS05LjUtMy44LTMuOS00LTQuOC0yLjgtOS45IC43LTMgMi4zLTE4LjMgMy4zLTMyLjYgLjQtNC44IC44LTEwLjUgMS0xMi43IC44LTkuNCAxLjctMjAuMyAyLjYtMzQuOCAuNi04LjUgMS4zLTE2LjQgMS43LTE3LjdzLjktOS45IDEuMS0xOS4xbC40LTE2LjgtMi4zLTQuM2MtMS43LTMuMy00LjktNi45LTEzLjItMTUuMy02LTYuMS0xMS44LTEyLjMtMTIuOS0xMy44bC0yLTIuOCAuOC0xMC45YzEuMS0xNS43IDEuMS00OC42IDAtNTkuMWwtLjktOC43LTMuMy00LjVjLTUuOS04LjEtNS44LTcuNy02LjItMzMuMy0uMS02LjEtLjQtMTEuNS0uNi0xMi4xLS44LTEuOS0zLTIuNy04LjUtMy04LjktLjYtMTEtMS45LTIzLjgtMTQuNi02LjItNi0xMi4zLTEyLTEzLjgtMTMuMi0yLjgtMi40LTIuOC0yLS42LTkuNmwxLjQtNC42LTEuNy0zYy0uOC0xLjQtMS42LTIuOC0yLjYtNC4xLTEuMy0xLjUtNS41LTEwLjktNi0xMy41LS4yLS43LS4yLTEuNC0uMS0yLjFzLjUtMS4zIC45LTEuOGMyLjItMi45IDMuNC01LjcgNC41LTEwLjcgMi4zLTExLjIgNy43LTI2LjEgMTAuNi0yOS4yIDMuMi0zLjUgNy43LTEgOS40IDUgMS4zIDQuOCAxLjQgOS44IC4xIDE4LjYtLjUgMy43LS45IDcuNC0xIDExLjEgMCA0IC4yIDQuNyAyLjMgNy40IDMuMyA0LjQgNy43IDcuNCAxNS4yIDEwLjUgMS43IC43IDMuMyAxLjcgNC43IDIuOCAxMS4yIDEwLjcgMTguNiAxNi4yIDIyLjkgMTYuOSA1LjIgLjggOCA0LjUgMTAgMTMuNCAxLjMgNS43IDQgMTEuMSA1LjUgMTEuMSAxLjItLjIgMi4zLS43IDMuMy0xLjQgMi0xLjIgMi4yLTEuNyAyLjItNC4yLS4zLTYtLjktMTEuOS0yLTE3LjgtLjQtMS43LS44LTQuMS0uOS01LjRzLS42LTMuOC0xLTUuN2MtMi42LTExLjItMy42LTE1LjUtNC4xLTE2LTEuNi0yLTQuMS0xMC4yLTQuOS0xNS45LTEuNi0xMS4xLTQtMTQuMi0xMi45LTE3LjQtNC45LTEuOC05LjQtNC41LTEzLjMtNy45LTEuMi0xLTQtMy4yLTYuNC01LjFzLTQuNC0zLjUtNC42LTMuOGMtLjgtLjctMS43LTEuNC0yLjctMi02LjItNC4yLTguOC03LTExLjMtMTJsLTIuNC01Yy0uMS04LjctLjMtMTcuMy0uNC0yNmw2LjktNi42YzQtMy44IDguNS03LjQgMTAuNi04LjQgMy4zLTEuNyA0LjQtMS45IDExLjQtMiA4LjUtLjIgMTAuMSAwIDExLjcgMS42czEuNCA2LjQtLjMgOC41Yy0uNiAuNy0xLjEgMS41LTEuMyAyLjMgMCAuNi0yLjYgNC45LTUuNCA5LTEuMSAyLjItMS45IDQuNS0yLjQgNi44IDIwLjQgMTMuNCAyMS42IDMuOCAxNC4xIDI5bDExLjQgMi41YzMuMS04LjcgNi41LTE3LjMgOC42LTI2LjIgLjMtNy42LTEyLTQuMi0xNS40LTguNy0yLjMtNS45IDMuMS0xNC4yIDYuMS0xOS4yIDEuNi0yLjMgNi42LTQuNyA4LjgtNC4xIC45IC4yIDQuMi0uNCA3LjQtMS4zIDIuNS0uOCA1LTEuMyA3LjUtMS43IDItLjIgNC4xLS43IDYtMS4zIDMuNy0xLjEgNC41LTEuMiA2LjMtLjQgMS45IC42IDMuOCAxLjEgNS44IDEuNCAyLjEgLjMgNC4xIC45IDYgMS45IDEuNiAuOSAzLjMgMS43IDUgMi4yIDIuNSAuNyAzIC42IDctMS43TDIyNiA1LjQgMjM2LjcgNWMxMC40LS40IDEwLjgtLjUgMTUuMy0yLjdMMjU2LjUgMCAyNTkgMS40YzEuOCAxIDMuMSAyLjcgNC45IDYgMi40IDQuNSAyLjQgNC42IDEuNCA3LjQtLjkgMi40LS45IDMuMy0uMSA2LjQgLjUgMiAxLjIgNCAyLjEgNS45IC42IDEuMyAxLjEgMi42IDEuMyA0IC4zIDQuMyAwIDUuMy0yLjQgNi45LTIuMiAxLjUtNyA3LjktNyA5LjMtLjIgMS0uNiAyLTEuMSAzLTUgMTEuNS02LjggMTMuNi0xNC4zIDE3LTkuMiA0LjItMTIuMyA1LjItMTYuMiA1LjItMy4xIDAtNCAuMi00LjUgMS4zLTEuMiAxLjQtMi41IDIuNy00LjEgMy43LTEuOCAxLjItMy4zIDIuOS00LjQgNC44LS41IDEuMi0xLjQgMi4yLTIuNSAyLjktLjkgLjQtMS44IDEtMi41IDEuNy0yLjIgMS45LTQuNiAzLjctNyA1LjQtMy4zIDIuMy02LjkgNS03LjkgNi0uNyAuNy0xLjUgMS4zLTIuNCAxLjctLjggLjQtMS42IC45LTIuMSAxLjYtMS4zIDEuNC0xLjUgMi4xLTEuMSA0LjYgLjMgMiAuOCA0IDEuNCA1LjkgMS4zIDMuOCAxLjMgNy45IDAgMTAuNnMtLjkgNi43IDEuNCA5LjZjMiAyLjYgMi4yIDQuNiAuNyA4LjgtLjggMi45LTEuMSA1LjktMS4xIDguOSAwIDQuOSAuMiA2LjMgMS41IDguNHMxLjggMi41IDMuMiAyLjNjMi0uMiAyLjMtMS4xIDQuNy0xMi4xIDIuMi0xMCAzLjctMTEuOSAxMy44LTE3LjEgMi45LTEuNSA3LjUtNCAxMC01LjRzNi44LTMuNyA5LjQtNC45YzUuOS0yLjYgMTEuMi02LjYgMTUuMi0xMS43IDcuMS04LjggMTAtMTYuMiAxMi44LTMzLjMgLjQtMi44IDEuMy01LjQgMi45LTcuNyAxLjQtMi4yIDIuNC00LjcgMi45LTcuMyAxLTUuMyAyLjktOS4xIDUuNi0xMS41IDQuNy00LjIgNi0xLjEgNC42IDEwLjktLjUgMy45LTEuMSAxMC4zLTEuNCAxNC40bC0uNiA3LjRjMyAyLjcgNS45IDUuNSA4LjkgOC4ybC4xIDguNGMuMSA0LjYgLjUgOS41IC45IDEwLjlsLjggMi41LTYuNCA2LjNjLTguNSA4LjMtMTIuOSAxMy45LTE2LjggMjEuNi0xLjggMy41LTMuNyA3LjEtNC40IDgtMi4yIDMuMS02LjUgMTMtOC44IDIwLjNsLTIuMyA3LjItNyA2LjVjLTMuOCAzLjYtOCA3LjItOS4yIDguMi0zIDIuMy00LjMgNS4xLTQuMyAxMC0uMSAyLjUgLjQgNSAxLjYgNy4zIC44IDEuNiAxLjUgMy4yIDIuMSA0LjggLjMgMSAuOSAyIDEuNiAyLjkgMS40IDEuNiAxLjkgMTYuMSAuOCAyMy4yLS43IDQuNS0zLjYgMTItNC43IDEyLTEuOCAwLTQuMSA5LjMtNS4xIDIwLjctLjIgMi0uNiA1LjktMSA4LjdzLTEgMTAtMS40IDE2Yy0uOCAxMi4yLS4yIDE4LjggMiAyMy4yIDMuNCA2LjcgLjUgMTIuNy0xMSAyMi44bC00IDMuNSAuMSA1LjJjLjEgMyAuNCA2IDEuMSA4LjkgNC42IDE2IDQuNyAxNi45IDQuNCAzNy4xLS41IDI2LjQtLjMgNDAuMyAuNiA0NC4yIC41IDIuMyAuOSA0LjYgMS4xIDcgLjIgMiAuNyA1LjMgMS4xIDcuNCAuNSAyLjMgLjggMTEgLjggMjIuN2wwIDE5LjEtMS44IDIuNmMtMi43IDMuOS0xNS4xIDEzLjUtMTUuNSAxMi4zbC4xIDB6bTI5LjUtNDUuMWMtLjItLjMtLjMtNi45LS4zLTE0LjYgMC0xNC4xLS45LTI3LjUtMi4zLTM0LjQtLjQtMi0uOC05LjctLjktMTcuMS0uMi0xMS45LTEuNC0yNC40LTIuNi0yNi40LS43LTEuMS0zLTE3LjctMy0yMS4zIDAtNC4yIDEtNiA1LjMtOS4xczQuOS0zLjEgNS41LS43Yy4zIDEuMSAxLjQgNS42IDIuNiAxMCAzLjkgMTUuMSA0LjEgMTYuMyA0IDIxLjctLjEgNS44LS4xIDYuMS0xLjcgMTcuNy0xIDcuMS0xLjIgMTIuNC0xIDI4LjQgLjIgMTkuNC0uNiAzNS43LTIgNDEuMy0uNyAyLjgtMi44IDUuNS0zLjQgNC40bC0uMSAwem0tNzEtMzcuNmMtLjgtMy42LTEuMy03LjItMS43LTEwLjhzLTEtNy4yLTEuNy0xMC44Yy0uNS0yLjEtLjktNC4zLTEtNi41LS4zLTMuMi0uOS03LjUtMS4zLTkuNS0xLTQuOC0zLjMtMTkuNC0zLjQtMjEuMSAwLS43LS4zLTQtLjctNy40LS43LTYuMi0uOC0yNy43LS4yLTI4LjMgMS0xIDYuNiAyLjggMTEuMyA3LjRsNS4zIDUuMy0uNCA2LjVjLS4yIDMuNi0uNiAxMC4yLS44IDE0LjgtLjUgMTMuMy0uNyA4LjctMS42IDI4LjQtLjggMTcuNC0xLjkgMzEuMy0yLjYgMzItLjEgLjEtLjIgLjEtLjIgLjJzLS4yIDAtLjMgMC0uMiAwLS4zLS4xLS4xLS4xLS4yLS4ybDAgMHpNNzIgMTYyLjZjMjEuMSAxMi44IDE3LjggMTQuMiAyOC41IDE3LjcgMTMgNC4zIDE4LjkgNy4xIDIzLjIgMTYuOS00My43IDM2LjEtNjkgNTcuOS03Ni43IDcwLjktMzEgNTItNiAxMDEuNiA2Mi44IDg3LjItMTQuMiAyOS4yLTc4IDI4LjYtOTguNy00LjktMjQuNy00MC0yMi4xLTExOC4zIDYxLTE4Ny43bDAgMHptMjEwLjggMTc5YzU2LjcgNi45IDgyLjMtMzcuNyA0Ni41LTg5LjIgMCAwLTI2LjktMjkuMy02NC4zLTY4IDMtMTUuNSA5LjUtMzIuMSAzMC42LTUzLjggODkuMiA2My41IDkyIDE0MS42IDkyLjUgMTQ5LjQgNC4zIDcwLjYtNzguNyA5MS4yLTEwNS4zIDYxLjdsMCAweiJdfSxCdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xhY2siLGljb246WzQ0OCw1MTIsWzYyNDQ3LCJzbGFjay1oYXNoIl0sImYxOTgiLCJNOTQuMSAzMTUuMWMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMVMwIDM0MSAwIDMxNS4xIDIxLjIgMjY4IDQ3LjEgMjY4bDQ3LjEgMCAwIDQ3LjF6bTIzLjcgMGMwLTI1LjkgMjEuMi00Ny4xIDQ3LjEtNDcuMVMyMTIgMjg5LjIgMjEyIDMxNS4xbDAgMTE3LjhjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFzLTQ3LjEtMjEuMi00Ny4xLTQ3LjFsMC0xMTcuOHptNDcuMS0xODljLTI1LjkgMC00Ny4xLTIxLjItNDcuMS00Ny4xUzEzOSAzMiAxNjQuOSAzMiAyMTIgNTMuMiAyMTIgNzkuMWwwIDQ3LjEtNDcuMSAwem0wIDIzLjdjMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFTMTkwLjggMjQ0IDE2NC45IDI0NEw0Ny4xIDI0NEMyMS4yIDI0NCAwIDIyMi44IDAgMTk2LjlzMjEuMi00Ny4xIDQ3LjEtNDcuMWwxMTcuOCAwem0xODkgNDcuMWMwLTI1LjkgMjEuMi00Ny4xIDQ3LjEtNDcuMVM0NDggMTcxIDQ0OCAxOTYuOSA0MjYuOCAyNDQgNDAwLjkgMjQ0bC00Ny4xIDAgMC00Ny4xem0tMjMuNyAwYzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xUzIzNiAyMjIuOCAyMzYgMTk2LjlsMC0xMTcuOEMyMzYgNTMuMiAyNTcuMiAzMiAyODMuMSAzMnM0Ny4xIDIxLjIgNDcuMSA0Ny4xbDAgMTE3Ljh6bS00Ny4xIDE4OWMyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMVMzMDkgNDgwIDI4My4xIDQ4MCAyMzYgNDU4LjggMjM2IDQzMi45bDAtNDcuMSA0Ny4xIDB6bTAtMjMuN2MtMjUuOSAwLTQ3LjEtMjEuMi00Ny4xLTQ3LjFTMjU3LjIgMjY4IDI4My4xIDI2OGwxMTcuOCAwYzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xcy0yMS4yIDQ3LjEtNDcuMSA0Ny4xbC0xMTcuOCAweiJdfSx1ZWU9QnVlLHlNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbmdlbGxpc3QiLGljb246WzM4NCw1MTIsW10sImYyMDkiLCJNMzE1LjYgMjE1LjRjMTEuNy0zMi42IDQ1LjQtMTI2LjkgNDUuNC0xNTcuMSAwLTI2LjYtMTUuNy00OC45LTQzLjctNDguOS00NC42IDAtODQuNiAxMzEuNy05Ny4xIDE2My4xLTkuNy0yOC41LTU1LjEtMTcyLjUtOTUuMS0xNzIuNS0zMS4xIDAtNDUuNyAyMi45LTQ1LjcgNTEuNyAwIDM1LjMgMzQuMiAxMjYuOCA0Ni42IDE2Mi02LjMtMi4zLTEzLjEtNC4zLTIwLTQuMy0yMy40IDAtNDguMyAyOS4xLTQ4LjMgNTIuNiAwIDguOSA0LjkgMjEuNCA4IDI5LjctMzYuOSAxMC01MS4xIDM0LjYtNTEuMSA3MS43LS4xIDcyLjIgNjguMyAxNDguNiAxNjQuNSAxNDguNiAxMTggMCAxOTEuNC04OC42IDE5MS40LTIwMi45IDAtNDMuMS02LjktODItNTQuOS05My43ek0yODAuMiAxMDhjNC0xMi4zIDIxLjEtNjQuMyAzNy4xLTY0LjMgOC42IDAgMTAuOSA4LjkgMTAuOSAxNiAwIDE5LjEtMzguNiAxMjQuNi00Ny4xIDE0OGwtMzQtNiAzMy4xLTkzLjd6TTExMC44IDQ4LjNjMC0xMS45IDE0LjUtNDUuNyA0Ni4zIDQ3LjFsMzQuNiAxMDAuM2MtMTUuNi0xLjMtMjcuNy0zLTM1LjQgMS40LTEwLjktMjguOC00NS41LTExOS43LTQ1LjUtMTQ4Ljh6TTEwOC41IDI0NGMyOS4zIDAgNjcuMSA5NC42IDY3LjEgMTA3LjQgMCA1LjEtNC45IDExLjQtMTAuNiAxMS40LTIwLjkgMC03Ni45LTc2LjktNzYuOS05Ny43IC4xLTcuNyAxMi43LTIxLjEgMjAuNC0yMS4xek0yOTIuOCA0MzAuM2MtMjkuMSAzMi02Ni4zIDQ4LjYtMTA5LjcgNDguNi01OS40IDAtMTA2LjMtMzIuNi0xMjguOS04OC4zLTE3LjEtNDMuNCAzLjgtNjguMyAyMC42LTY4LjMgMTEuNCAwIDU0LjMgNjAuMyA1NC4zIDczLjEgMCA0LjktNy43IDguMy0xMS43IDguMy0xNi4xIDAtMjIuNC0xNS41LTUxLjEtNTEuNC0yOS43IDI5LjcgMjAuNSA4Ni45IDU4LjMgODYuOSAyNi4xIDAgNDMuMS0yNC4yIDM4LTQyIDMuNyAwIDguMyAuMyAxMS43LS42IDEuMSAyNy4xIDkuMSA1OS40IDQxLjcgNjEuNyAwLS45IDItNy4xIDItNy40IDAtMTcuNC0xMC42LTMyLjYtMTAuNi01MC4zIDAtMjguMyAyMS43LTU1LjcgNDMuNy03MS43IDgtNiAxNy43LTkuNyAyNy4xLTEzLjEgOS43LTMuNyAyMC04IDI3LjQtMTUuNC0xLjEtMTEuMi01LjctMjEuMS0xNi45LTIxLjEtMjcuNyAwLTEyMC42IDQtMTIwLjYtMzkuNyAwLTYuNyAuMS0xMy4xIDE3LjQtMTMuMSAzMi4zIDAgMTE0LjMgOCAxMzguMyAyOS4xIDE4LjEgMTYuMSAyNC4zIDExMy4yLTMxIDE3NC43em0tOTguNi0xMjZjOS43IDMuMSAxOS43IDQgMjkuNyA2LTcuNCA1LjQtMTQgMTItMjAuMyAxOS4xLTIuOC04LjUtNi4yLTE2LjgtOS40LTI1LjF6Il19LHdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbmRyb2lkIixpY29uOls1NzYsNTEyLFtdLCJmMTdiIiwiTTQyMC41IDI1My45YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTI2NS4xIDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0yNzMuNy05Ni41bDQ3LjktODNjLjgtMS4xIDEuMy0yLjQgMS41LTMuOHMuMi0yLjctLjEtNC4xLS45LTIuNi0xLjctMy43LTEuOC0yLTMtMi43LTIuNS0xLjEtMy45LTEuMy0yLjcgMC00IC40LTIuNSAxLjEtMy42IDEuOS0xLjkgMi0yLjUgMy4ybC00OC41IDg0LjFjLTM4LjgtMTcuNC04MC44LTI2LjQtMTIzLjMtMjYuNHMtODQuNSA5LTEyMy4zIDI2LjRMMTE2LjIgNjQuNGMtLjYtMS4yLTEuNS0yLjMtMi41LTMuMnMtMi4zLTEuNS0zLjYtMS45LTIuNy0uNS00LS40LTIuNyAuNi0zLjkgMS4zLTIuMiAxLjYtMyAyLjctMS40IDIuNC0xLjcgMy43LS4zIDIuNy0uMSA0LjEgLjggMi42IDEuNSAzLjhsNDcuOSA4M0M2NC41IDIwMi4yIDguMiAyODUuNSAwIDM4NGw1NzYgMGMtOC4yLTk4LjUtNjQuNS0xODEuOC0xNDYuOS0yMjYuNnoiXX0sTU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZXR1cCIsaWNvbjpbNTc2LDUxMixbXSwiZjJlMCIsIk0xMzEuMSA0MTQuM2MxLjEgNS43LTIuMyAxMS4xLTggMTIuMy01LjQgMS4xLTEwLjktMi4zLTEyLTgtMS4xLTUuNCAyLjMtMTEuMSA3LjctMTIuM3MxMS4xIDIuMyAxMi4zIDh6bTE0My4xIDcxLjRjLTYuMyA0LjYtOCAxMy40LTMuNyAyMCA0LjYgNi42IDEzLjQgOC4zIDIwIDMuNyA2LjMtNC42IDgtMTMuNCAzLjQtMjAtNC4yLTYuNS0xMy4xLTguMy0xOS43LTMuN3ptLTg2LTQ2Mi4zYTExLjggMTEuOCAwIDEgMCAtNC45LTIzIDExLjggMTEuOCAwIDEgMCA0LjkgMjN6TTY2LjUgMjI2LjNhMjIuMiAyMi4yIDAgMSAwIC0yNC43IDM2LjkgMjIuMiAyMi4yIDAgMSAwIDI0LjctMzYuOXptMjcyLTE3MC45YTIyLjEgMjIuMSAwIDEgMCAtMjIuNC0zOCAyMi4xIDIyLjEgMCAxIDAgMjIuNCAzOHptLTE5MS4xIDU4YTE2LjkgMTYuOSAwIDEgMCAtMTguOC0yOCAxNi45IDE2LjkgMCAxIDAgMTguOCAyOHptMzcyLjMgMTU2Yy03LjQgMS43LTEyLjMgOS4xLTEwLjYgMTYuOSAxLjQgNy40IDguOSAxMi4zIDE2LjMgMTAuNiA3LjQtMS40IDEyLjMtOC45IDEwLjYtMTYuNi0xLjUtNy40LTguOS0xMi4zLTE2LjMtMTAuOXptMzkuNy01Ni44YTEwLjEgMTAuMSAwIDEgMCAtMTkuOCA0LjMgMTAuMSAxMC4xIDAgMSAwIDE5LjgtNC4zem0tODAuMy03My43YTE4LjggMTguOCAwIDEgMCAyMC43IDMxLjMgMTguOCAxOC44IDAgMSAwIC0yMC43LTMxLjN6bS02LjMgMTM5LjRjMjYuMyA0My4xIDE1LjEgMTAwLTI2LjMgMTI5LjEtMTcuNCAxMi4zLTM3LjEgMTcuNy01Ni45IDE3LjEtMTIgNDcuMS02OS40IDY0LjYtMTA1LjEgMzIuNi0xLjEgLjktMi42IDEuNy0zLjcgMi45LTM5LjEgMjcuMS05Mi4zIDE3LjQtMTE5LjQtMjIuMy05LjctMTQuMy0xNC42LTMwLjYtMTUuMS00Ni45LTY1LjQtMTAuOS05MC05NC00MS4xLTEzOS43LTI4LjMtNDYuOSAuNi0xMDcuNCA1My40LTExNC45IDI1LjEtNjYuMiAxMDcuNi05Ny42IDE2My42LTU0LjIgNjcuNC0yMi4zIDEzNi4zIDI5LjQgMTMwLjkgMTAxLjEgNDEuMSAxMi42IDUyLjggNjYuOSAxOS43IDk1LjJ6bS03MCA3NC4zYy0zLjEtMjAuNi00MC45LTQuNi00My4xLTI3LjEtMy4xLTMyIDQzLjctMTAxLjEgNDAtMTI4LTMuNC0yNC0xOS40LTI5LjEtMzMuNC0yOS40LTEzLjQtLjMtMTYuOSAyLTIxLjQgNC42LTIuOSAxLjctNi42IDQuOS0xMS43LS4zLTYuMy02LTExLjEtMTEuNy0xOS40LTEyLjktMTIuMy0yLTE3LjcgMi0yNi42IDkuNy0zLjQgMi45LTEyIDEyLjktMjAgOS4xLTMuNC0xLjctMTUuNC03LjctMjQtMTEuNC0xNi4zLTcuMS00MCA0LjYtNDguNiAyMC0xMi45IDIyLjktMzggMTEzLjEtNDEuNyAxMjUuMS04LjYgMjYuNiAxMC45IDQ4LjYgMzYuOSA0Ny4xIDExLjEtLjYgMTguMy00LjYgMjUuNC0xNy40IDQtNy40IDQxLjctMTA3LjcgNDQuNi0xMTIuNiAyLTMuNCA4LjktOCAxNC42LTUuMSA1LjcgMy4xIDYuOSA5LjQgNiAxNS4xLTEuMSA5LjctMjggNzAuOS0yOC45IDc3LjctMy40IDIyLjkgMjYuOSAyNi42IDM4LjYgNCAzLjctNy4xIDQ1LjctOTIuNiA0OS40LTk4LjMgNC4zLTYuMyA3LjQtOC4zIDExLjctOCAzLjEgMCA4LjMgLjkgNy4xIDEwLjktMS40IDkuNC0zNS4xIDcyLjMtMzguOSA4Ny43LTQuNiAyMC42IDYuNiA0MS40IDI0LjkgNTAuNiAxMS40IDUuNyA2Mi41IDE1LjcgNTguNS0xMS4xem01LjcgOTIuM2EyMy4zIDIzLjMgMCAxIDAgMjYuMiAzOC40IDIzLjMgMjMuMyAwIDEgMCAtMjYuMi0zOC40eiJdfSxrTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9udGljb25zLWZpIixpY29uOlszODQsNTEyLFtdLCJmM2EyIiwiTTExNC40IDIyNGw5Mi40IDAtMTUuMiA1MS4yLTc2LjQgMCAwIDE1Ny44YzAgOC0yLjggOS4yIDQuNCAxMGw1OS42IDUuNiAwIDM0LjQtMTc5LjIgMCAwLTM1LjIgMjkuMi0yLjhjNy4yLS44IDkuMi0zLjIgOS4yLTEwLjhsMC0xNTUuOGMwLTMuMi00LTMuMi04LTMuMmwtMzAuNCAwIDAtNTEuMiAzOC40IDAgMC0yOC44YzAtNjggMzYuNC05NiAxMDYtOTYgNDYuOCAwIDg4LjggMTEuMiA4OC44IDcyLjRMMTYzLjYgMTgwYy40LTI1LjYtNi0zMS42LTIyLjQtMzEuNi0yNS4yIDAtMjYgMTMuNi0yNiAzNy42bDAgMzJjMCAzLjItNC44IDYtLjggNnpNMzg0IDQ4M2wtMTQwLjggMCAwLTM0LjQgMjgtMy42YzcuMi0uOCAxMC40LTIuNCAxMC40LTEwbDAtMTQ4YzAtNS42LTQtOS4yLTkuMi0xMC44bC0zMy4yLTguOCA5LjItNDAuNCAxMTAgMCAwIDIwOGMwIDgtMy42IDguOCA0IDEwbDIxLjYgMy42IDAgMzQuNHpNMzU0IDEzNS44bDEyLjQgNDUuNi0xMCAxMC00Mi44LTIyLjgtNDIuOCAyMi44LTEwLTEwIDEyLjQtNDUuNi0zMC0zNi40IDQuOC0xMCAzOCAwIDIxLjItMzguNCAxMi44IDAgMjEuMiAzOC40IDM4IDAgNC44IDEzLjItMzAgMzMuMnoiXX0sU010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhbGZlZCIsaWNvbjpbNTc2LDUxMixbXSwiZjNkOCIsIk0zODQuOSAxOTMuOWMwLTQ3LjQtNTUuMi00NC4yLTk1LjQtMjkuOC0xLjMgMzkuNC0yLjUgODAuNy0zIDExOS44IC43IDIuOCAyLjYgNi4yIDE1LjEgNi4yIDM2LjggMCA4My40LTQyLjggODMuMy05Ni4yek0xOTAuNCAyNjYuMWMuMiAwIDYuNS0yLjcgMTEuMi0yLjcgMjYuNiAwIDIwLjcgNDQuMS0xNC40IDQ0LjEtMjEuNSAwLTM3LjEtMTguMS0zNy4xLTQzIDAtNDIgNDIuOS05NS42IDEwMC43LTEyNi41IDEtMTIuNCAzLTIyIDEwLjUtMjguMiAxMS4yLTkgMjYuNi0zLjUgMjkuNSAxMS4xIDcyLjItMjIuMiAxMzUuMiAxIDEzNS4yIDcyIDAgNzcuOS03OS4zIDE1Mi42LTE0MC4xIDEzOC4yLS4xIDM5LjQgLjkgNzQuNCAyLjcgMTAwbDAgLjJjLjIgMy40IC42IDEyLjUtNS4zIDE5LjEtOS42IDEwLjYtMzMuNCAxMC0zNi40LTIyLjMtNC4xLTQ0LjQgLjItMjA2LjEgMS40LTI0Mi41LTIxLjUgMTUtNTguNSA1MC4zLTU4LjUgNzUuOSAuMiAyLjUgLjQgNCAuNiA0LjZ6TTggMTgxLjFzLS4xIDM3LjQgMzguNCAzNy40bDMwIDAgMjIuNCAyMTcuMnMwIDQ0LjMgNDQuNyA0NC4zbDI4OC45IDBzNDQuNy0uNCA0NC43LTQ0LjNsMjIuNC0yMTcuMiAzMCAwczM4LjQgMS4yIDM4LjQtMzcuNGMwIDAgLjEtMzcuNC0zOC40LTM3LjRsLTMwLjEgMGMtNy4zLTI1LjYtMzAuMi03NC4zLTExOS40LTc0LjNsLTI4IDAgMC0xOS4xcy0yLjctMTguNC0yMS4xLTE4LjRsLTg1LjggMFMyMjQgMzEuOSAyMjQgNTAuM2wwIDE5LjEtMjguMSAwcy0xMDUgNC4yLTEyMC41IDc0LjNsLTI5IDBTOCAxNDIuNSA4IDE4MS4xeiJdfSx6TXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3BiZWdpbm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZjI5NyIsIk00NjMuMiAzMjIuNGM1Ni4yIDY0LjMgNC4yIDE1Ny42LTkxLjkgMTU3LjYtMzkuNiAwLTc4LjgtMTcuNy0xMDAuMS01MC02LjkgLjQtMjIuNyAuNC0yOS42IDAtMjEuNCAzMi40LTYwLjYgNTAtMTAwLjEgNTAtOTUuNSAwLTE0OC4zLTkzLTkxLjktMTU3LjYtNzkuMS0xMzEuOSAzMS4zLTI5MC40IDIwNi44LTI5MC40IDE3NS42IDAgMjg1LjkgMTU4LjYgMjA2LjggMjkwLjR6bS0zMzkuNi04M2w0MS41IDAgMC01OC4xLTQxLjUgMCAwIDU4LjF6bTIxNy4yIDg2LjFsMC0yMy44Yy02MC41IDIwLjktMTMyLjQgOS4yLTE4Ny42LTM0bC4yIDI0LjljNTEuMSA0Ni40IDEzMS43IDU3LjkgMTg3LjMgMzIuOXpNMTkwIDIzOS40bDE2Ni4xIDAgMC01OC4xLTE2Ni4xIDAgMCA1OC4xeiJdfSxDTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlhc3BvcmEiLGljb246WzQ0OCw1MTIsW10sImY3OTEiLCJNMjE5LjcgMzU0LjZjLTEuNCAwLTg4IDExOS45LTg4LjcgMTE5LjlTNDQuNCA0MTQgNDQgNDEzLjMgMTMwLjYgMjg3LjUgMTMwLjYgMjg1LjhjMC0yLjItMTI5LjYtNDQtMTM3LjYtNDcuMS0xLjMtLjUgMzEuNC0xMDEuOCAzMS43LTEwMi4xIC42LS43IDE0NC40IDQ3IDE0NS41IDQ3IC40IDAgLjktLjYgMS0xLjMgLjQtMiAxLTE0OC42IDEuNy0xNDkuNiAuOC0xLjIgMTA0LjUtLjcgMTA1LjEtLjMgMS41IDEgMy41IDE1Ni4xIDYuMSAxNTYuMSAxLjQgMCAxMzguNy00NyAxMzkuMy00Ni4zIC44IC45IDMxLjkgMTAyLjIgMzEuNSAxMDIuNi0uOSAuOS0xNDAuMiA0Ny4xLTE0MC42IDQ4LjgtLjMgMS40IDgyLjggMTIyLjEgODIuNSAxMjIuOXMtODUuNSA2My41LTg2LjMgNjMuNWMtMS0uMi04OS0xMjUuNS05MC45LTEyNS41bDAgMHoiXX0sX010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InByb2R1Y3QtaHVudCIsaWNvbjpbNTEyLDUxMixbXSwiZjI4OCIsIk0zMjYuMyAyMTguOGMwIDIwLjUtMTYuNyAzNy4yLTM3LjIgMzcuMmwtNzAuMyAwIDAtNzQuNCA3MC4zIDBjMjAuNSAwIDM3LjIgMTYuNyAzNy4yIDM3LjJ6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTM2Ny45LTM3LjJjMC00Ny45LTM4LjktODYuOC04Ni44LTg2LjhsLTExOS45IDAgMCAyNDggNDkuNiAwIDAtNzQuNCA3MC4zIDBjNDcuOSAwIDg2LjgtMzguOSA4Ni44LTg2Ljh6Il19LFRNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdXB3b3JrIixpY29uOls0NDgsNTEyLFtdLCJlNjdjIiwiTTU2IDMybDMzNiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMzM2YzAgMzAuOS0yNS4xIDU2LTU2IDU2TDU2IDQ4MGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA4OEMwIDU3LjEgMjUuMSAzMiA1NiAzMnpNMjcwLjkgMjc0LjJjNi42LTUyLjkgMjUuOS02OS41IDUxLjQtNjkuNSAyNS4zIDAgNDQuOSAyMC4yIDQ0LjkgNDkuN3MtMTkuNyA0OS43LTQ0LjkgNDkuN2MtMjcuOSAwLTQ2LjMtMjEuNS01MS40LTI5Ljl6bS0yNi43LTQxLjhjLTguMi0xNS41LTE0LjMtMzYuMy0xOS4yLTU1LjZsLTYyLjkgMCAwIDc4LjFjMCAyOC40LTEyLjkgNDkuNC0zOC4yIDQ5LjRTODQuMSAyODMuNCA4NC4xIDI1NWwuMy03OC4xLTM2LjIgMCAwIDc4LjFjMCAyMi44IDcuNCA0My41IDIwLjkgNTguMiAxMy45IDE1LjIgMzIuOCAyMy4yIDU0LjggMjMuMiA0My43IDAgNzQuMi0zMy41IDc0LjItODEuNWwwLTUyLjVjNC42IDE3LjMgMTUuNCA1MC41IDM2LjIgNzkuN2wtMTkuMyAxMTAuNSAzNi44IDAgMTIuOC03OC40YzQuMiAzLjUgOC43IDYuNiAxMy40IDkuNCAxMi4zIDcuOCAyNi40IDEyLjIgNDAuOSAxMi42bDMuNCAwYzQ1LjEgMCA4MC45LTM0LjkgODAuOS04MS45cy0zNS45LTgyLjItODAuOS04Mi4yYy00NS40IDAtNzAuOSAyOS43LTc4LjEgNjAuMWwwIC4yeiJdfSxMTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3V0dGxlZmlzaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4YyIsIk0zNDggMzA1LjVjLTE3LjUgMzEuNi01Ny40IDU0LjUtOTYgNTQuNS01Ni42IDAtMTA0LTQ3LjQtMTA0LTEwNHM0Ny40LTEwNCAxMDQtMTA0YzM4LjYgMCA3OC41IDIyLjkgOTYgNTQuNSAxMy43LTUwLjkgNDEuNy05My4zIDg3LTExNy44LTQ1LjMtNDkuNi0xMTAuNS04MC43LTE4My04MC43LTEzNyAwLTI0OCAxMTEtMjQ4IDI0OFMxMTUgNTA0IDI1MiA1MDRjNzIuNSAwIDEzNy43LTMxLjEgMTgzLTgwLjctNDUuMy0yNC41LTczLjMtNjYuOS04Ny0xMTcuOHoiXX0sJE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZGFwcHMiLGljb246WzMyMCw1MTIsW10sImYzYzYiLCJNMTE4LjMgMjM4LjRjMy41LTEyLjUgNi45LTMzLjYgMTMuMi0zMy42IDguMyAxLjggOS42IDIzLjQgMTguNiAzNi42IDQuNi0yMy41IDUuMy04NS4xIDE0LjEtODYuNyA5LS43IDE5LjcgNjYuNSAyMiA3Ny41IDkuOSA0LjEgNDguOSA2LjYgNDguOSA2LjYgMS45IDcuMy0yNCA3LjYtNDAgNy44LTQuNiAxNC44LTUuNCAyNy43LTExLjQgMjgtNC43IC4yLTguMi0yOC44LTE3LjUtNDkuNmwtOS40IDY1LjVjLTQuNCAxMy0xNS41LTIyLjUtMjEuOS0zOS4zLTMuMy0uMS02Mi40LTEuNi00Ny42LTcuOGwzMS01ek0yMjggNDQ4YzIxLjIgMCAyMS4yLTMyIDAtMzJMOTIgNDE2Yy0yMS4yIDAtMjEuMiAzMiAwIDMybDEzNiAwem0tMjQgNjRjMjEuMiAwIDIxLjItMzIgMC0zMmwtODggMGMtMjEuMiAwLTIxLjIgMzIgMCAzMmw4OCAwem0zNC4yLTE0MS41YzMuMi0xOC45IDUuMi0zNi40IDExLjktNDguOCA3LjktMTQuNyAxNi4xLTI4LjEgMjQtNDEgMjQuNi00MC40IDQ1LjktNzUuMiA0NS45LTEyNS41IDAtODUuNi03MS44LTE1NS4yLTE2MC0xNTUuMlMwIDY5LjYgMCAxNTUuMmMwIDUwLjIgMjEuMyA4NS4xIDQ1LjkgMTI1LjUgNy45IDEyLjkgMTYgMjYuMyAyNCA0MSA2LjcgMTIuNSA4LjcgMjkuOCAxMS45IDQ4LjkgMy41IDIxIDM2LjEgMTUuNyAzMi42LTUuMS0zLjYtMjEuNy01LjYtNDAuNy0xNS4zLTU4LjYtMzIuNi02MC40LTY2LjEtOTUuNi02Ni4xLTE1MS43IDAtNjcuOSA1Ny0xMjMuMiAxMjctMTIzLjJTMjg3IDg3LjMgMjg3IDE1NS4yYzAgNTYuMS0zMy41IDkxLjMtNjYuMSAxNTEuNi05LjcgMTgtMTEuNyAzNy40LTE1LjMgNTguNi0zLjQgMjAuNiAyOSAyNi40IDMyLjYgNS4xeiJdfSxETXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGl4IixpY29uOls1MTIsNTEyLFtdLCJlNDNhIiwiTTI0Mi40IDI5Mi41YzUuNC01LjQgMTQuNy01LjQgMjAuMSAwbDc3IDc3YzE0LjIgMTQuMiAzMy4xIDIyIDUzLjEgMjJsMTUuMSAwLTk3LjEgOTcuMWMtMzAuMyAyOS41LTc5LjUgMjkuNS0xMDkuOCAwbC05Ny41LTk3LjQgOS4zIDBjMjAgMCAzOC45LTcuOCA1My4xLTIybDc2LjctNzYuN3ptMjAuMS03My42Yy02LjQgNS41LTE0LjYgNS42LTIwLjEgMGwtNzYuNy03Ni43Yy0xNC4yLTE1LjEtMzMuMS0yMi01My4xLTIybC05LjMgMCA5Ny40LTk3LjRjMzAuNC0zMC4zIDc5LjYtMzAuMyAxMDkuOSAwbDk3LjIgOTcuMS0xNS4yIDBjLTIwIDAtMzguOSA3LjgtNTMuMSAyMmwtNzcgNzd6TTExMi42IDE0Mi43YzEzLjggMCAyNi41IDUuNiAzNy4xIDE1LjRsNzYuNyA3Ni43YzcuMiA2LjMgMTYuNiAxMC44IDI2LjEgMTAuOCA5LjQgMCAxOC44LTQuNSAyNi0xMC44bDc3LTc3YzkuOC05LjcgMjMuMy0xNS4zIDM3LjEtMTUuM2wzNy43IDAgNTguMyA1OC4zYzMwLjMgMzAuMyAzMC4zIDc5LjUgMCAxMDkuOGwtNTguMyA1OC4zLTM3LjcgMGMtMTMuOCAwLTI3LjMtNS42LTM3LjEtMTUuNGwtNzctNzdjLTEzLjktMTMuOS0zOC4yLTEzLjktNTIuMSAuMWwtNzYuNyA3Ni42Yy0xMC42IDkuOC0yMy4zIDE1LjQtMzcuMSAxNS40bC0zMS44IDAtNTgtNThjLTMwLjMtMzAuMy0zMC4zLTc5LjUgMC0xMDkuOGw1OC01OC4xIDMxLjggMHoiXX0sSHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10dW1ibHIiLGljb246WzQ0OCw1MTIsWyJ0dW1ibHItc3F1YXJlIl0sImYxNzQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI1Ni44IDQxNmMtNzUuNSAwLTkxLjktNTUuNS05MS45LTg3LjlsMC05MC0yOS43IDBjLTMuNCAwLTYuMi0yLjgtNi4yLTYuMmwwLTQyLjVjMC00LjUgMi44LTguNSA3LjEtMTAgMzguOC0xMy43IDUwLjktNDcuNSA1Mi43LTczLjIgLjUtNi45IDQuMS0xMC4yIDEwLTEwLjJsNDQuMyAwYzMuNCAwIDYuMiAyLjggNi4yIDYuMmwwIDcyIDUxLjkgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA1MS4xYzAgMy40LTIuOCA2LjItNi4yIDYuMmwtNTIuMSAwIDAgODMuM2MwIDIxLjQgMTQuOCAzMy41IDQyLjUgMjIuNCAzLTEuMiA1LjYtMiA4LTEuNCAyLjIgLjUgMy42IDIuMSA0LjYgNC45TDMxOCAzODcuMWMxIDMuMiAyIDYuNy0uMyA5LjEtOC41IDkuMS0zMS4yIDE5LjgtNjAuOSAxOS44eiJdfSxBTXQ9SHVlLFBNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFjdCIsaWNvbjpbNTEyLDUxMixbXSwiZjQxYiIsIk00MTguMiAxNzcuMmMtNS40LTEuOC0xMC44LTMuNS0xNi4yLTUuMSAuOS0zLjcgMS43LTcuNCAyLjUtMTEuMSAxMi4zLTU5LjYgNC4yLTEwNy41LTIzLjEtMTIzLjMtMjYuMy0xNS4xLTY5LjIgLjYtMTEyLjYgMzguNC00LjMgMy43LTguNSA3LjYtMTIuNSAxMS41LTIuNy0yLjYtNS41LTUuMi04LjMtNy43LTQ1LjUtNDAuNC05MS4xLTU3LjQtMTE4LjQtNDEuNS0yNi4yIDE1LjItMzQgNjAuMy0yMyAxMTYuNyAxLjEgNS42IDIuMyAxMS4xIDMuNyAxNi43LTYuNCAxLjgtMTIuNyAzLjgtMTguNiA1LjktNTMuNCAxOC41LTkxLjcgNDcuNy05MS43IDc3LjkgMCAzMS4yIDQwLjggNjIuNSA5Ni4zIDgxLjUgNC41IDEuNSA5IDMgMTMuNiA0LjMtMS41IDYtMi44IDExLjktNCAxOC0xMC41IDU1LjUtMi4zIDk5LjUgMjMuOSAxMTQuNiAyNyAxNS42IDcyLjQtLjQgMTE2LjYtMzkuMSAzLjUtMy4xIDctNi4zIDEwLjUtOS43IDQuNCA0LjMgOSA4LjQgMTMuNiAxMi40IDQyLjggMzYuOCA4NS4xIDUxLjcgMTExLjIgMzYuNiAyNy0xNS42IDM1LjgtNjIuOSAyNC40LTEyMC41LS45LTQuNC0xLjktOC45LTMtMTMuNSAzLjItLjkgNi4zLTEuOSA5LjQtMi45IDU3LjctMTkuMSA5OS41LTUwIDk5LjUtODEuNyAwLTMwLjMtMzkuNC01OS43LTkzLjgtNzguNHpNMjgyLjkgOTIuM2MzNy4yLTMyLjQgNzEuOS00NS4xIDg3LjctMzYgMTYuOSA5LjcgMjMuNCA0OC45IDEyLjggMTAwLjQtLjcgMy40LTEuNCA2LjctMi4zIDEwLTIyLjItNS00NC43LTguNi02Ny4zLTEwLjYtMTMtMTguNi0yNy4yLTM2LjQtNDIuNi01My4xIDMuOS0zLjcgNy43LTcuMiAxMS43LTEwLjd6TTE2Ny4yIDMwNy41YzUuMSA4LjcgMTAuMyAxNy40IDE1LjggMjUuOS0xNS42LTEuNy0zMS4xLTQuMi00Ni40LTcuNSA0LjQtMTQuNCA5LjktMjkuMyAxNi4zLTQ0LjUgNC42IDguOCA5LjMgMTcuNSAxNC4zIDI2LjF6TTEzNi45IDE4Ny4yYzE0LjQtMy4yIDI5LjctNS44IDQ1LjYtNy44LTUuMyA4LjMtMTAuNSAxNi44LTE1LjQgMjUuNC00LjkgOC41LTkuNyAxNy4yLTE0LjIgMjYtNi4zLTE0LjktMTEuNi0yOS41LTE2LTQzLjZ6bTI3LjQgNjguOWM2LjYtMTMuOCAxMy44LTI3LjMgMjEuNC00MC42czE1LjgtMjYuMiAyNC40LTM4LjljMTUtMS4xIDMwLjMtMS43IDQ1LjktMS43czMxIC42IDQ1LjkgMS43YzguNSAxMi42IDE2LjYgMjUuNSAyNC4zIDM4LjdzMTQuOSAyNi43IDIxLjcgNDAuNGMtNi43IDEzLjgtMTMuOSAyNy40LTIxLjYgNDAuOC03LjYgMTMuMy0xNS43IDI2LjItMjQuMiAzOS0xNC45IDEuMS0zMC40IDEuNi00Ni4xIDEuNnMtMzAuOS0uNS00NS42LTEuNGMtOC43LTEyLjctMTYuOS0yNS43LTI0LjYtMzlzLTE0LjgtMjYuOC0yMS41LTQwLjZ6bTE4MC42IDUxLjJjNS4xLTguOCA5LjktMTcuNyAxNC42LTI2LjcgNi40IDE0LjUgMTIgMjkuMiAxNi45IDQ0LjMtMTUuNSAzLjUtMzEuMiA2LjItNDcgOCA1LjQtOC40IDEwLjUtMTcgMTUuNS0yNS42em0xNC40LTc2LjVjLTQuNy04LjgtOS41LTE3LjYtMTQuNS0yNi4yLTQuOS04LjUtMTAtMTYuOS0xNS4zLTI1LjIgMTYuMSAyIDMxLjUgNC43IDQ1LjkgOC00LjYgMTQuOC0xMCAyOS4yLTE2LjEgNDMuNHpNMjU2LjIgMTE4LjNjMTAuNSAxMS40IDIwLjQgMjMuNCAyOS42IDM1LjgtMTkuOC0uOS0zOS43LS45LTU5LjUgMCA5LjgtMTIuOSAxOS45LTI0LjkgMjkuOS0zNS44ek0xNDAuMiA1N2MxNi44LTkuOCA1NC4xIDQuMiA5My40IDM5IDIuNSAyLjIgNSA0LjYgNy42IDctMTUuNSAxNi43LTI5LjggMzQuNS00Mi45IDUzLjEtMjIuNiAyLTQ1IDUuNS02Ny4yIDEwLjQtMS4zLTUuMS0yLjQtMTAuMy0zLjUtMTUuNS05LjQtNDguNC0zLjItODQuOSAxMi42LTk0ek0xMTUuNyAzMjAuNmMtNC4yLTEuMi04LjMtMi41LTEyLjQtMy45LTIxLjMtNi43LTQ1LjUtMTcuMy02My0zMS4yLTEwLjEtNy0xNi45LTE3LjgtMTguOC0yOS45IDAtMTguMyAzMS42LTQxLjcgNzcuMi01Ny42IDUuNy0yIDExLjUtMy44IDE3LjMtNS41IDYuOCAyMS43IDE1IDQzIDI0LjUgNjMuNi05LjYgMjAuOS0xNy45IDQyLjUtMjQuOCA2NC41em0xMTYuNiA5OGMtMTYuNSAxNS4xLTM1LjYgMjcuMS01Ni40IDM1LjMtMTEuMSA1LjMtMjMuOSA1LjgtMzUuMyAxLjMtMTUuOS05LjItMjIuNS00NC41LTEzLjUtOTIgMS4xLTUuNiAyLjMtMTEuMiAzLjctMTYuNyAyMi40IDQuOCA0NSA4LjEgNjcuOSA5LjggMTMuMiAxOC43IDI3LjcgMzYuNiA0My4yIDUzLjQtMy4yIDMuMS02LjQgNi4xLTkuNiA4Ljl6bTI0LjUtMjQuM2MtMTAuMi0xMS0yMC40LTIzLjItMzAuMy0zNi4zIDkuNiAuNCAxOS41IC42IDI5LjUgLjYgMTAuMyAwIDIwLjQtLjIgMzAuNC0uNy05LjIgMTIuNy0xOS4xIDI0LjgtMjkuNiAzNi40em0xMzAuNyAzMGMtLjkgMTIuMi02LjkgMjMuNi0xNi41IDMxLjMtMTUuOSA5LjItNDkuOC0yLjgtODYuNC0zNC4yLTQuMi0zLjYtOC40LTcuNS0xMi43LTExLjUgMTUuMy0xNi45IDI5LjQtMzQuOCA0Mi4yLTUzLjYgMjIuOS0xLjkgNDUuNy01LjQgNjguMi0xMC41IDEgNC4xIDEuOSA4LjIgMi43IDEyLjIgNC45IDIxLjYgNS43IDQ0LjEgMi41IDY2LjN6bTE4LjItMTA3LjVjLTIuOCAuOS01LjYgMS44LTguNSAyLjYtNy0yMS44LTE1LjYtNDMuMS0yNS41LTYzLjggOS42LTIwLjQgMTcuNy00MS40IDI0LjUtNjIuOSA1LjIgMS41IDEwLjIgMy4xIDE1IDQuNyA0Ni42IDE2IDc5LjMgMzkuOCA3OS4zIDU4IDAgMTkuNi0zNC45IDQ0LjktODQuOCA2MS40ek0yNTYgMzAxLjhhNDUuOCA0NS44IDAgMSAwIDAtOTEuNiA0NS44IDQ1LjggMCAxIDAgMCA5MS42eiJdfSxFTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHVnZ2luZy1mYWNlIixpY29uOls1NzYsNTEyLFtdLCJlODY5IiwiTTI4Ni44IDguMmMxMzAgMCAyMzUuNCAxMDUuOCAyMzUuNCAyMzYuMyAwIDE3LjctMS45IDM1LTUuNiA1MS43LTEuNCA2LjUtMy4xIDEyLjgtNS4xIDE5LjEgNi41LS42IDEzIC42IDE4LjcgMy41IDEyLjYgNi41IDIwLjIgMjEuNyAxOC4yIDM1LjctLjcgNC45LTIuNCA5LjQtNC44IDEzLjUgNS4yIDQuMiA5IDEwLjEgMTAuOCAxNy4xIDEuNCA1LjUgMi45IDE3LjEtNC44IDI4LjkgNS44IDkuMiA2LjYgMjAuNiAyLjIgMzAuNi02LjIgMTQuMS0yMS43IDI1LjMtNTEuNyAzNy4zLTMyLjUgMTMtNjcuMSAyMS45LTEwMi4zIDIxLjktMzIgMC01NS45LTguOS03MS0yNi40LTEzIDIuMi0yNi4zIDMuNC00MCAzLjQtMTIuNyAwLTI1LjItMS0zNy4zLTIuOS0xNS4xIDE3LjItMzguOCAyNS45LTcwLjYgMjUuOS0zNS4xIDAtNzAtOS0xMDIuNC0yMS45LTMwLTEyLTQ1LjUtMjMuMS01MS43LTM3LjMtNC40LTkuOS0zLjYtMjEuNCAyLjItMzAuNi03LjctMTEuOS02LjMtMjMuNC00LjgtMjguOSAxLjgtNyA1LjctMTIuOSAxMC44LTE3LjEtMi41LTQuMS00LjEtOC42LTQuOC0xMy41LTEuNS0xMC40IDItMjAuNyA5LjctMjkuMiA2LjEtNi43IDE1LjEtMTAuMyAyNC4yLTEwLjItMS45LTYuMS0zLjYtMTIuNC01LTE4LjctMy43LTE2LjctNS43LTM0LTUuNy01MS44IDAtMTMwLjUgMTA1LjQtMjM2LjMgMjM1LjQtMjM2LjN6TTExNy41IDMxMWMtMTMtOC4yLTIyLjEtMy42LTE5IDEzLjRzNTcuMiA1OC4yIDUyIDY3LjJjLTUuMiA4LjgtMjMuNS0xMC4xLTIzLjgtMTAuNSAwIDAtNTguMi01My4xLTcwLjgtMzkuMy0xMi42IDEzLjggOS42IDI1LjQgNDEuMyA0NC43czM0LjIgMjQuNCAyOS43IDMxLjctNzQuNS01Mi04MS4xLTI2LjhjLTYuNSAyNS4xIDcxLjQgMzIuNCA2Ni43IDQ5LjgtNC44IDE3LjQtNTQuOS0zMi44LTY1LjItMTMuMy0xMC4zIDE5LjYgNzAuOCA0Mi42IDcxLjQgNDIuNyAyNi4yIDYuOCA5Mi42IDIxLjMgMTE1LjktMTIuOSAxNi43LTI0LjYgMTUuNi00My4xLTcuNC02Ni4xcy0zNi4zLTU2LjctMzYuMy01Ni43YzAtLjItNS0xOS41LTE2LjMtMTcuOC0xMS40IDEuOC0xOS43IDMxIDQuMSA0OC45IDIzLjggMTcuOS00LjcgMzAtMTMuOSAxMy4zLTkuMi0xNi44LTM0LjItNTkuOS00Ny4xLTY4LjJ6bTM2MC42IDEzLjRjMy4xLTE3LTYuMS0yMS42LTE5LTEzLjQtMTMgOC4zLTM3LjkgNTEuNC00Ny4xIDY4LjJzLTM3LjcgNC42LTEzLjktMTMuMyAxNS40LTQ3LjEgNC4xLTQ4LjktMTYuMyAxNy44LTE2LjMgMTcuOGMtLjEgLjItMTMuNCAzMy43LTM2LjMgNTYuNy0yMi45IDIzLTI0LjEgNDEuNS03LjQgNjYuMSAyMy4yIDM0LjIgODkuNyAxOS43IDExNS45IDEyLjkgMS41LS40IDgxLjYtMjMuMyA3MS40LTQyLjctMTAuMy0xOS41LTYwLjQgMzAuNi02NS4zIDEzLjMtNC44LTE3LjMgNzMuMi0yNC42IDY2LjctNDkuOC02LjYtMjUuMS03Ni42IDM0LjEtODEuMSAyNi44LTQuNS03LjMtMi0xMi40IDI5LjctMzEuNyAzMS43LTE5LjMgNTQtMzAuOSA0MS4zLTQ0LjctMTIuNy0xMy44LTcwLjggMzkuMy03MC44IDM5LjMtLjQgLjQtMTguNiAxOS4zLTIzLjggMTAuNS01LjMtOC45IDQ4LjktNTAuMSA1Mi02Ny4yek0yODYuOCAzMi42Yy0xMTYuNiAwLTIxMS4xIDk0LjktMjExLjEgMjExLjkgMCAxNy4xIDIgMzMuOCA1LjggNDkuNyAwLS4xIC4xLS4xIC4yLS4yIDYuMS03LjQgMTQuOS0xMS40IDI0LjctMTEuNCAxNy43IDAgMzEuMSAxMS45IDQxLjUgMjQuOSA2LjgtOS40IDE3LjEtMTUgMjcuOS0xNSAyMC43IDAgMzMuMiAxOC4xIDM3LjkgMzQuMyAyLjMgNS41IDEzLjYgMzAuNSAzMC40IDQ3LjQgMjUuNyAyNS44IDMyLjIgNTIuNCAxOS40IDgwLjkgMTYgMS44IDMyLjggMS43IDQ5LjItLjMtMTIuNS0yOC40LTYtNTQuOSAxOS42LTgwLjYgMTYuOS0xNi45IDI4LjEtNDEuOSAzMC41LTQ3LjQgNC43LTE2LjIgMTcuMi0zNC4zIDM3LjktMzQuMyAxMC45IDAgMjEuMiA1LjYgMjcuOSAxNSAxMC40LTEzIDIzLjgtMjQuOSA0MS41LTI0LjkgOC43IDAgMTYuNiAzLjEgMjIuNSA4LjkgNS0yMiA2LjQtNDUuOCA0LjEtNjguNy0xMC44LTEwNi45LTEwMC43LTE5MC4zLTIxMC0xOTAuM3ptMS41IDIzNC4yYzQzLjYgMCA3OS00MiA3OS0xNC41IDAgMjcuNC0xOS4yIDgwLjktNzguOCA4MC45LTE5LjIgMC0zNC4yLTUuNS00NS44LTEzLjktMjMuMi0xOS40LTMzLjQtNDguMi0zMy40LTY2LjkgMC0yNy40IDM1LjQgMTQuNSA3OSAxNC41em0tMTMuMyAyNWMtOC4yIDIuNC0xNS41IDYuOC0yMS41IDEyLjYgMjIgMTIuOCA1MC40IDEyLjkgNzEuNy0xLjMtNS41LTQuOS0xMi04LjctMTkuMS0xMS01LjEtMS42LTEwLjQgMTUuOC0xNiAxNS44LTUuMiAwLTEwLjMtMTcuNi0xNS4xLTE2LjJ6TTE0Ny4xIDIxNS41YTE5LjggMTkuOCAwIDEgMSAwLTM5LjYgMTkuOCAxOS44IDAgMSAxIDAgMzkuNnptMjgyLjQgMGExOS44IDE5LjggMCAxIDEgMC0zOS42IDE5LjggMTkuOCAwIDEgMSAwIDM5LjZ6bS0yNDQtNTUuNGM3LjktMTQuOSAyNi4zLTIwLjUgNDEuMS0xMi42czIwLjQgMjYuNCAxMi42IDQxLjJjLTMuNyA3LTE1LjUtNC40LTIyLjQtMS45LTcuNyAyLjctMTAuOCAxOC43LTE4LjYgMTQuNi0xNC44LTcuOS0yMC40LTI2LjQtMTIuNi00MS4yem0xNjQuNC0xMi42YzE0LjgtNy45IDMzLjItMi4zIDQxLjEgMTIuNnMyLjIgMzMuMy0xMi42IDQxLjJjLTcuOCA0LjItMTAuOS0xMS44LTE4LjctMTQuNi02LjktMi40LTE4LjcgOS0yMi40IDEuOS03LjktMTQuOS0yLjItMzMuMyAxMi42LTQxLjJ6Il19LElNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqeGwiLGljb246WzQ0OCw1MTIsW10sImU2N2IiLCJNNDEyLjIgMzJMMzUuOCAzMkMxNiAzMiAwIDQ4IDAgNjcuOEwwIDQ0NC4yQzAgNDY0IDE2IDQ4MCAzNS44IDQ4MGwzNzYuNCAwYzE5LjggMCAzNS44LTE2IDM1LjgtMzUuOGwwLTM3Ni40QzQ0OCA0OCA0MzIgMzIgNDEyLjIgMzJ6TTM3OC42IDMzMy43YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAweiJdfSxOTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWxpbmtlZGluIixpY29uOls0NDgsNTEyLFtdLCJlN2QwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTUgMTcwLjJsNjYuNSAwIDAgMjEzLjgtNjYuNSAwIDAtMjEzLjh6bTcxLjctNjcuN2EzOC41IDM4LjUgMCAxIDEgLTc3IDAgMzguNSAzOC41IDAgMSAxIDc3IDB6TTMxNy45IDQxNmwwLTEwNGMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45bDAgMTA1LjgtNjYuNCAwIDAtMjEzLjggNjMuNyAwIDAgMjkuMiAuOSAwYzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45bDAgMTE3LjItNjYuNCAweiJdfSxSTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3NzIixpY29uOls0NDgsNTEyLFtdLCJlNmEyIiwiTTM3Ni4zIDMyTDAgMzIgMCA0MDguM2MwIDE5IDcuNiAzNy4yIDIxIDUwLjdzMzEuNyAyMSA1MC43IDIxbDMwNC42IDBjMTkgMCAzNy4yLTcuNiA1MC43LTIxczIxLTMxLjcgMjEtNTAuN2wwLTMwNC42YzAtMTktNy42LTM3LjItMjEtNTAuN3MtMzEuNy0yMS01MC43LTIxek0zMzIuNCA0MzEuNGMtNy43LTguNS0xMS43LTIwLjctMTItMzYuNmwzMS4zIDBjLjIgMTQuMSA1LjEgMjEuMSAxNC44IDIxLjFjNC45IDAgOC40LTEuNiAxMC41LTQuN2MyLTMuMSAzLTggMy0xNC44YzAtNS40LTEuMy05LjktNC0xMy40Yy0zLjUtNC4yLTguMS03LjUtMTMuMi05LjVMMzUxLjIgMzY4Yy0xMC4zLTQuOS0xNy44LTEwLjgtMjIuNS0xNy42Yy00LjUtNi44LTYuNy0xNi4zLTYuNy0yOC40YzAtMTMuNiA0LTI0LjYgMTEuOC0zMy4xYzguMS04LjUgMTkuMS0xMi43IDMzLjItMTIuN2MxMy42IDAgMjQuMSA0LjIgMzEuNSAxMi41YzcuNSA4LjQgMTEuNSAyMC4zIDExLjggMzUuOWwtMzAuMSAwYy4yLTUuMS0uOS0xMC4yLTMtMTQuOGMtMS43LTMuNC01LTUuMS0xMC01LjFjLTguOCAwLTEzLjIgNS4yLTEzLjIgMTUuN2MwIDUuMyAxLjEgOS40IDMuMiAxMi42YzMuMSAzLjUgNyA2LjIgMTEuNCA3LjhsMTEuMSA0LjljMTEuNSA1LjMgMTkuNyAxMS43IDI0LjggMTkuNGM1LjEgNy43IDcuNiAxOCA3LjYgMzFjMCAxNS41LTQgMjcuNC0xMi4zIDM1LjdjLTguMiA4LjMtMTkuNSAxMi41LTM0LjEgMTIuNXMtMjUuNi00LjItMzMuNC0xMi43em0tMTAxIDBjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNC00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTMuOS0xMy40Yy0zLjUtNC4yLTguMS03LjUtMTMuMi05LjVMMjUwLjIgMzY4Yy0xMC4zLTQuOS0xNy44LTEwLjgtMjIuNS0xNy42Yy00LjUtNi44LTYuNy0xNi4zLTYuNy0yOC40YzAtMTMuNiA0LTI0LjYgMTEuOC0zMy4xYzguMS04LjUgMTkuMS0xMi43IDMzLjItMTIuN2MxMy42IDAgMjQuMSA0LjIgMzEuNCAxMi41YzcuNiA4LjQgMTEuNSAyMC4zIDExLjkgMzUuOWwtMzAuMSAwYy4yLTUuMS0uOS0xMC4yLTMtMTQuOGMtMS43LTMuNC01LTUuMS0xMC01LjFjLTguOCAwLTEzLjIgNS4yLTEzLjIgMTUuN2MwIDUuMyAxLjEgOS40IDMuMiAxMi42YzMuMSAzLjUgNyA2LjIgMTEuNCA3LjhsMTEuMSA0LjljMTEuNSA1LjMgMTkuNyAxMS43IDI0LjggMTkuNGM1LjEgNy43IDcuNiAxOCA3LjYgMzFjMCAxNS41LTQuMSAyNy40LTEyLjMgMzUuN3MtMTkuNSAxMi41LTM0LjEgMTIuNXMtMjUuNi00LjItMzMuNC0xMi43em0tMTA1LjYgMS4xYy04LjQtNy43LTEyLjUtMTkuMi0xMi41LTM0LjVsMC03NS40YzAtMTUuMiA0LjQtMjYuNyAxMy4yLTM0LjZjOC45LTcuOCAyMC43LTExLjggMzUuMi0xMS44YzE0LjEgMCAyNS4yIDQgMzMuNCAxMmM4LjMgOCAxMi41IDIwIDEyLjUgMzUuOWwwIDYtMzMuMSAwIDAtNS44YzAtNi4xLTEuMy0xMC43LTQtMTMuNmMtMS4xLTEuNS0yLjYtMi43LTQuMy0zLjVzLTMuNS0xLjItNS40LTEuMWMtNS40IDAtOS4yIDEuOC0xMS40IDUuNmMtMi4zIDUuMi0zLjMgMTAuOC0zIDE2LjRsMCA2NS41YzAgMTMuNyA0LjggMjAuNiAxNC40IDIwLjhjNC41IDAgNy45LTEuNiAxMC4yLTQuOGMyLjUtNC4xIDMuNy04LjggMy41LTEzLjZsMC00LjkgMzMuMSAwIDAgNS4xYzAgMTAuNi0yLjEgMTkuNS02LjIgMjYuNmMtNCA2LjktOS45IDEyLjUtMTcuMSAxNmMtNy43IDMuNy0xNi4xIDUuNS0yNC42IDUuM2MtMTQuMiAwLTI1LjUtMy45LTMzLjgtMTEuNnoiXX0sT010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhhc2hub2RlIixpY29uOls1MTIsNTEyLFtdLCJlNDk5IiwiTTM1LjcgMTcxLjFjLTQ2LjkgNDYtNDYuOSAxMjIuOSAwIDE2OS44TDE3MS42IDQ3Ni44YzQ2IDQ2LjkgMTIyLjkgNDYuOSAxNjkuOCAwTDQ3Ny4zIDM0MC45YzQ2LjktNDYuOSA0Ni45LTEyMy44IDAtMTY5LjhMMzQxLjQgMzUuMmMtNDYuOS00Ni45LTEyMy44LTQ2LjktMTY5LjggMEwzNS43IDE3MS4xek0xOTYgMTk2LjVhODQuNSA4NC41IDAgMSAxIDEyMCAxMTkgODQuNSA4NC41IDAgMSAxIC0xMjAtMTE5eiJdfSxGTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0LWFsaWVuIixpY29uOls1MTIsNTEyLFtdLCJmMjgxIiwiTTM3MyAxMzguNmMtMjUuMiAwLTQ2LjMtMTcuNS01MS45LTQxLTMwLjYgNC4zLTU0LjIgMzAuNy01NC4yIDYyLjRsMCAuMmM0Ny40IDEuOCA5MC42IDE1LjEgMTI0LjkgMzYuMyAxMi42LTkuNyAyOC40LTE1LjUgNDUuNS0xNS41IDQxLjMgMCA3NC43IDMzLjQgNzQuNyA3NC43IDAgMjkuOC0xNy40IDU1LjUtNDIuNyA2Ny41LTIuNCA4Ni44LTk3IDE1Ni42LTIxMy4yIDE1Ni42UzQ1LjUgNDEwLjEgNDMgMzIzLjRjLTI1LjQtMTEuOS00My0zNy43LTQzLTY3LjcgMC00MS4zIDMzLjQtNzQuNyA3NC43LTc0LjcgMTcuMiAwIDMzIDUuOCA0NS43IDE1LjYgMzQtMjEuMSA3Ni44LTM0LjQgMTIzLjctMzYuNGwwLS4zYzAtNDQuMyAzMy43LTgwLjkgNzYuOC04NS41IDQuOS0yNC4yIDI2LjMtNDIuNCA1Mi4xLTQyLjQgMjkuNCAwIDUzLjMgMjMuOSA1My4zIDUzLjNzLTIzLjkgNTMuMy01My4zIDUzLjN6TTE1Ny41IDI1NS4zYy0yMC45IDAtMzguOSAyMC44LTQwLjIgNDcuOXMxNy4xIDM4LjEgMzggMzguMSAzNi42LTkuOCAzNy44LTM2LjktMTQuNy00OS4xLTM1LjctNDkuMWwuMSAwek0zOTUgMzAzLjFjLTEuMi0yNy4xLTE5LjItNDcuOS00MC4yLTQ3LjlzLTM2LjkgMjItMzUuNyA0OS4xIDE2LjkgMzYuOSAzNy44IDM2LjkgMzkuMy0xMSAzOC0zOC4xbC4xIDB6bS02MC4xIDcwLjhjMS41LTMuNi0xLTcuNy00LjktOC4xLTIzLTIuMy00Ny45LTMuNi03My44LTMuNnMtNTAuOCAxLjMtNzMuOCAzLjZjLTMuOSAuNC02LjQgNC41LTQuOSA4LjEgMTIuOSAzMC44IDQzLjMgNTIuNCA3OC43IDUyLjRzNjUuOC0yMS42IDc4LjctNTIuNHoiXX0scGVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRpa3RvayIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3YiIsIk00NDguNSAyMDkuOWMtNDQgLjEtODctMTMuNi0xMjIuOC0zOS4ybDAgMTc4LjdjMCAzMy4xLTEwLjEgNjUuNC0yOSA5Mi42cy00NS42IDQ4LTc2LjYgNTkuNi02NC44IDEzLjUtOTYuOSA1LjMtNjAuOS0yNS45LTgyLjctNTAuOC0zNS4zLTU2LTM5LTg4LjkgMi45LTY2LjEgMTguNi05NS4yIDQwLTUyLjcgNjkuNi02Ny43IDYyLjktMjAuNSA5NS43LTE2bDAgODkuOWMtMTUtNC43LTMxLjEtNC42LTQ2IC40cy0yNy45IDE0LjYtMzcgMjcuMy0xNCAyOC4xLTEzLjkgNDMuOSA1LjIgMzEgMTQuNSA0My43IDIyLjQgMjIuMSAzNy40IDI2LjkgMzEuMSA0LjggNDYtLjEgMjgtMTQuNCAzNy4yLTI3LjEgMTQuMi0yOC4xIDE0LjItNDMuOGwwLTM0OS40IDg4IDBjLS4xIDcuNCAuNiAxNC45IDEuOSAyMi4yIDMuMSAxNi4zIDkuNCAzMS45IDE4LjcgNDUuN3MyMS4zIDI1LjYgMzUuMiAzNC42YzE5LjkgMTMuMSA0My4yIDIwLjEgNjcgMjAuMWwwIDg3LjR6Il19LEJNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3MiLGljb246WzUxMiw1MTIsW10sImYxOWEiLCJNNjEuNyAxNjkuNGwxMDEuNSAyNzhjLTcxLTM0LjQtMTE5LjktMTA3LjItMTE5LjktMTkxLjQgMC0zMC45IDYuNi02MC4xIDE4LjQtODYuNnptMzM3LjkgNzUuOWMwLTI2LjMtOS40LTQ0LjUtMTcuNS01OC43LTEwLjgtMTcuNS0yMC45LTMyLjQtMjAuOS00OS45IDAtMTkuNiAxNC44LTM3LjggMzUuNy0zNy44IC45IDAgMS44IC4xIDIuOCAuMi0zNy45LTM0LjctODguMy01NS45LTE0My43LTU1LjktNzQuMyAwLTEzOS43IDM4LjEtMTc3LjggOTUuOSA1IC4yIDkuNyAuMyAxMy43IC4zIDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc3LjUgMjMwLjQgNDYuNi0xMzkuNi0zMy4xLTkwLjhjLTExLjUtLjctMjIuMy0yLTIyLjMtMi0xMS41LS43LTEwLjEtMTguMiAxLjMtMTcuNSAwIDAgMzUuMSAyLjcgNTYgMi43IDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc2LjkgMjI4LjcgMjEuMi03MC45YzktMjkuNCAxNi01MC41IDE2LTY4Ljd6TTI1OS43IDI3NC42TDE5NS45IDQ2MC4xYzE5LjEgNS42IDM5LjIgOC43IDYwLjEgOC43IDI0LjggMCA0OC41LTQuMyA3MC42LTEyLjEtLjYtLjktMS4xLTEuOS0xLjUtMi45TDI1OS43IDI3NC42em0xODMtMTIwLjdjLjkgNi44IDEuNCAxNCAxLjQgMjEuOSAwIDIxLjYtNCA0NS44LTE2LjIgNzYuMmwtNjUgMTg3LjljNjMuMy0zNi45IDEwNS44LTEwNS40IDEwNS44LTE4My45IDAtMzctOS40LTcxLjgtMjYtMTAyLjF6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQ4NC42IDBhMjM2LjYgMjM2LjYgMCAxIDAgLTQ3My4yIDAgMjM2LjYgMjM2LjYgMCAxIDAgNDczLjIgMHoiXX0sSE10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImlkZWFsIixpY29uOls1MTIsNTEyLFtdLCJlMDEzIiwiTTkzLjggMTY1LjVhNDkuMSA0OS4xIDAgMSAwIDAgOTguMSA0OS4xIDQ5LjEgMCAxIDAgMC05OC4xek01NC4zIDQyNS44bDc4LjkgMCAwLTE0MC41LTc4LjkgMCAwIDE0MC41ek0yMDUuOCAyMTQuMmMwLTIwLTEwLTIyLjUtMTguNy0yMi41bC0xNCAwIDAgNDUuOCAxNCAwYzkuNyAwIDE4LjctMi44IDE4LjctMjMuM3ptMjAxLjcgNDZsMC05MS4zIDIyLjggMCAwIDY4LjYgMzMuNyAwQzQ1NC42IDExMy4xIDM1Ni44IDg2LjIgMjY3LjggODYuMmwtOTQuOCAwIDAgODIuOCAxNCAwYzI1LjYgMCA0MS41IDE3LjQgNDEuNSA0NS4zIDAgMjguOC0xNS41IDQ2LTQxLjUgNDZsLTE0IDAgMCAxNjUuNiA5NC44IDBjMTQ0LjYgMCAxOTQuOS02Ny4yIDE5Ni43LTE2NS42bC01Ny4xIDB6bS0xMDkuOCAwbC01Ni4yIDAgMC05MS4yIDU0LjQgMCAwIDIyLjctMzEuNyAwIDAgMTAuNiAzMCAwIDAgMjIuNy0zMCAwIDAgMTIuNSAzMy41IDAgMCAyMi43em03NC43IDBsLTUuMi0xNy43LTI5LjcgMC01LjIgMTcuNy0yMy43IDAgMjcuNS05MS4zIDMyLjMgMCAyNy41IDkxLjMtMjMuNyAwek0yNjcuOCAzMkwuMSAzMiAuMSA0ODAgMjY3LjggNDgwYzE2MS44IDAgMjUxLTc5LjcgMjUxLTIyNC41IDAtODMuNS0zMi42LTIyMy41LTI1MS0yMjMuNXptMCA0MjYuOWwtMjQ2LjYgMCAwLTQwNS45IDI0Ni42IDBjMTQyLjEgMCAyMjkuOSA2NC42IDIyOS45IDIwMi40IDAgMTM0LjEtODEgMjAzLjQtMjI5LjkgMjAzLjR6bTgzLjktMjY0LjlsLTcuNSAyNS44IDE2LjQgMC03LjUtMjUuOC0xLjQgMHoiXX0scU10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItcHAiLGljb246WzQ0OCw1MTIsW10sImYxYTciLCJNMjA1LjMgMTc0LjZjMCAyMS4xLTE0LjIgMzguMS0zMS43IDM4LjEtNy4xIDAtMTIuOC0xLjItMTcuMi0zLjdsMC02OGM0LjQtMi43IDEwLjEtNC4yIDE3LjItNC4yIDE3LjUgMCAzMS43IDE2LjkgMzEuNyAzNy44em01Mi42IDY3Yy03LjEgMC0xMi44IDEuNS0xNy4yIDQuMmwwIDY4YzQuNCAyLjUgMTAuMSAzLjcgMTcuMiAzLjcgMTcuNCAwIDMxLjctMTYuOSAzMS43LTM3LjggMC0yMS4xLTE0LjMtMzguMS0zMS43LTM4LjF6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4NSAyNTUuMWM0MSAwIDc0LjItMzUuNiA3NC4yLTc5LjZTMjI2IDk1LjkgMTg1IDk1LjljLTEyIDAtMjQuMSAzLjItMzQuNiA4LjhsLTQ1LjcgMCAwIDIwNi4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMSAxOC4xIDQuOCAyOC41IDQuOHptMTU4LjQgMjUuM2MwLTQ0LTMzLjItNzkuNi03My45LTc5LjYtMy4yIDAtNi40IC4yLTkuNiAuNy0zLjcgMTIuNS0xMC4xIDIzLjgtMTkuMiAzMy40LTEzLjggMTUtMzIuMiAyMy44LTUxLjggMjQuOGwwIDE1Ni4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMiAxOC4yIDQuNyAyOC43IDQuNyA0MC44IDAgNzQtMzUuNiA3NC03OS42eiJdfSxWTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNzdW5uYWgiLGljb246WzUxMiw1MTIsW10sImY0MDciLCJNNDk2LjkgMjY4LjFjMCA2My45LTI1LjQgMTI1LjItNzAuNiAxNzAuM1MzMTkuOSA1MDkgMjU2IDUwOSAxMzAuOCA0ODMuNSA4NS43IDQzOC40IDE1LjEgMzMxLjkgMTUuMSAyNjhjMC02My45IDI1LjQtMTI1LjIgNzAuNi0xNzAuNFMxOTIuMiAyNy4xIDI1Ni4xIDI3LjEgMzgxLjMgNTIuNCA0MjYuNSA5Ny42IDQ5NyAyMDQuMSA0OTcgMjY4bC0uMSAuMXpNMzkuNSAyNjhjLS42IDI4LjggNC41IDU3LjUgMTUuMSA4NC4zczI2LjQgNTEuMiA0Ni42IDcxLjggNDQuMiAzNyA3MC44IDQ4LjEgNTUuMSAxNi45IDgzLjkgMTYuOSA1Ny40LTUuOCA4My45LTE2LjkgNTAuNi0yNy41IDcwLjgtNDguMSAzNi00NSA0Ni42LTcxLjggMTUuNy01NS41IDE1LjEtODQuM2MuNi0yOC44LTQuNS01Ny41LTE1LjEtODQuM3MtMjYuNC01MS4yLTQ2LjYtNzEuOC00NC4yLTM3LTcwLjgtNDguMS01NS4xLTE2LjktODMuOS0xNi45LTU3LjQgNS44LTgzLjkgMTYuOS01MC42IDI3LjUtNzAuOCA0OC4xLTM2IDQ1LTQ2LjYgNzEuOC0xNS43IDU1LjUtMTUuMSA4NC4zem0zODUuOSA2My4zYy0xMi43IDAtMjEuNi0xLjktMjYuNy01LjktNS41LTQuMy04LjItMTIuMy04LjItMjMuOGwwLTk2LjVjMC02LjUtNS4yLTIwLjItMTUuNy00MS4yIDcgMCAxNy05LjEgMzAtMjcuMmwwIDE0Ny44YzAgMTEgMi40IDE5LjQgNyAyNS4zIDMuNyA0LjcgMTAuMSA4LjkgMTkgMTIuNiAxLjIgLjQgMi42IC45IDQuMSAxLjQgMi45IC45IDYuMyAyLjEgMTAuMyAzLjUtMS44IDIuNy04LjMgNC0xOS45IDRsLjEgMHptLTIxOSAwYy0xLjMgMi40LTMuNiA1LjUtNi44IDkuNGwtMTguNSAyMi41Yy0xLTYuMS00LTEzLTkuMy0yMC42cy05LjctMTEuNC0xMy40LTExLjRsLTg5LjggMGMzLjMtNS4zIDQuOS04LjggNC45LTEwLjhzLS44LTUuMy0yLjQtOS43Yy0xLjUtNC40LTIuNC04LjUtMi40LTEyLjQgMC03LjQgMi4xLTEzLjkgNi4zLTE5LjNsMjAtMjUuNi03LjEtMTcuNyAxNi4xLTE5LjggNi43IDE2LjggOC0xMC4zYy0xLjggNi40LTIuNiAxMi4zLTIuNiAxNy43IDAgNC4yIDIuOCAxMy4zIDguMyAyNy4zbDE2LjIgNDAuNyAxNy43IDBjMi44IC40IDcuNyA1IDE0LjYgMTMuOSAxLjggMi40IDQuMyA1LjggNy43IDEwLjIgMS40IDEuOSAyLjkgMy45IDQuNiA2LjEgMS4zLTIuMyAyLTQuNiAyLTcuMSAwLTItMS4zLTYuNi00LTEzLjRMMTc4IDMwNC4xYy00LTEwLjYtNi4xLTE3LjctNi4xLTIxLjMgMC02LjMgMS45LTEyLjMgNS44LTE3LjkgLjUtLjYgMS0xLjMgMS41LTEuOSA0LjQtNS42IDguOC0xMS4xIDEzLjMtMTYuNS0xLjEgNC42LTEuNyA4LjctMS43IDEyIDAgMy43IDEuNyA5LjkgNS4xIDE4LjhsNy45IDIwLjRjMS45IDQuNyAzIDguMiAzLjcgMTAuM2wyNS45IDAtLjktMi42Yy0xLjQtMy45LTQtNy03LjctOS4zbDE1LjYtMjAuMSAxMi4zIDMyIDEzLjQgMC02LjEtMTUuOGMtMS41LTMuOS00LTctNy43LTkuM2wxNS43LTIwLjEgMTcuMyA0NS4yIDEzLjQgMC0xMS40LTI5LjRjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNi0yMCAyMi40IDU4LjcgMjYuMiAwYzEuNSAwIDMtMS4xIDQuNS0zLjFzMi4yLTQuMSAyLjItNi4zbDAtOTMuNWMwLTYuNS00LjUtMjAuMy0xMy43LTQxLjIgNS40IDAgMTQuMS05LjEgMjYuMi0yNy4ybDAgMTYzLjVjMCA3LjIgLjYgMTIgMS43IDE0LjYgMS42IDMuNCA1LjMgNi4yIDExLjEgOC4yLTMuOSA1LjYtOC43IDguNS0xNC41IDguNWwtMTU0LjggMC0uMS0uMnptLTk4LTQ0Yy0yLjctNi43LTQtMTEuNy00LTE1LS42IDEuMi0yLjQgMy43LTUuNCA3LjYtMS40IDEuOS0yLjIgMy43LTIuMiA1LjMgMCAyLjYgLjggNS43IDIuMiA5LjNsNS42IDEzLjljNSAwIDkgMCAxMS45LS4xbC04LjItMjAuOSAuMS0uMXptMTMuNS03Mi40Yy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bS0yNy42IDBjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHptODcgMjcuNWMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAweiJdfSxqTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydC1hd2Vzb21lLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjNhMyIsIk0yMDggMjM3LjRsLTIyLjIgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgNTEuN2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMjIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTUxLjdjMC0yLjEtMS42LTMuNy0zLjctMy43em0xMTguMiAwbC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43Yy0uMS0yLjEtMS43LTMuNy0zLjctMy43em0xMzItMTI1LjFjLTIuMy0zLjItNC42LTYuNC03LjEtOS41LTkuOC0xMi41LTIwLjgtMjQtMzIuOC0zNC40LTQuNS0zLjktOS4xLTcuNi0xMy45LTExLjItMS42LTEuMi0zLjItMi4zLTQuOC0zLjUtMjcuNi0xOS42LTU5LjMtMzMuNy05My42LTQwLjctMTYuMi0zLjMtMzIuOS01LTUwLTVzLTMzLjkgMS43LTUwIDVjLTM0LjMgNy4xLTY2IDIxLjItOTMuMyA0MC44LTEuNiAxLjEtMy4yIDIuMy00LjggMy41LTQuOCAzLjYtOS40IDcuMy0xMy45IDExLjItMyAyLjYtNS45IDUuMy04LjggOHMtNS43IDUuNS04LjQgOC40Yy01LjUgNS43LTEwLjcgMTEuOC0xNS42IDE4LTIuNCAzLjEtNC44IDYuMy03LjEgOS41LTI4LjkgNDAuNi00NS44IDkwLjEtNDUuOCAxNDMuNiAwIDIgLjEgNCAuMSA2IC4xIC43IC4xIDEuMyAuMSAyIC4xIDEuMyAuMSAyLjcgLjIgNCAwIC44IC4xIDEuNSAuMSAyLjMgMCAxLjMgLjEgMi41IC4yIDMuNyAuMSAuOCAuMSAxLjYgLjIgMi40IC4xIDEuMSAuMiAyLjMgLjMgMy41IDAgLjggLjEgMS42IC4yIDIuNCAuMSAxLjIgLjMgMi40IC40IDMuNiAuMSAuOCAuMiAxLjUgLjMgMi4zIC4xIDEuMyAuMyAyLjYgLjUgMy45IC4xIC42IC4yIDEuMyAuMyAxLjlsLjkgNS43Yy4xIC42IC4yIDEuMSAuMyAxLjcgLjMgMS4zIC41IDIuNyAuOCA0IC4yIC44IC4zIDEuNiAuNSAyLjQgLjIgMSAuNSAyLjEgLjcgMy4yIC4yIC45IC40IDEuNyAuNiAyLjYgLjIgMSAuNCAyIC43IDMgLjIgLjkgLjUgMS44IC43IDIuNyAuMyAxIC41IDEuOSAuOCAyLjkgLjMgLjkgLjUgMS44IC44IDIuNyAuMiAuOSAuNSAxLjkgLjggMi44cy41IDEuOCAuOCAyLjdjLjMgMSAuNiAxLjkgLjkgMi44IC42IDEuNiAxLjEgMy4zIDEuNyA0LjkgLjQgMSAuNyAxLjkgMSAyLjggLjMgMSAuNyAyIDEuMSAzIC4zIC44IC42IDEuNSAuOSAyLjNsMS4yIDNjLjMgLjcgLjYgMS41IC45IDIuMiAuNCAxIC45IDIgMS4zIDNsLjkgMi4xYy41IDEgLjkgMiAxLjQgMyAuMyAuNyAuNiAxLjMgLjkgMiAuNSAxIDEgMi4xIDEuNSAzLjEgLjIgLjYgLjUgMS4xIC44IDEuNyAuNiAxLjEgMS4xIDIuMiAxLjcgMy4zIC4xIC4yIC4yIC4zIC4zIC41IDIuMiA0LjEgNC40IDguMiA2LjggMTIuMiAuMiAuNCAuNSAuOCAuNyAxLjIgLjcgMS4xIDEuMyAyLjIgMiAzLjMgLjMgLjUgLjYgLjkgLjkgMS40IC42IDEuMSAxLjMgMi4xIDIgMy4yIC4zIC41IC42IC45IC45IDEuNCAuNyAxLjEgMS40IDIuMSAyLjEgMy4yIC4yIC40IC41IC44IC44IDEuMiAuNyAxLjEgMS41IDIuMiAyLjMgMy4zIC4yIC4yIC4zIC41IC41IC43IDM3LjUgNTEuNyA5NC40IDg4LjUgMTYwIDk5LjQgLjkgLjEgMS43IC4zIDIuNiAuNCAxIC4yIDIuMSAuNCAzLjEgLjVzMS45IC4zIDIuOCAuNGMxIC4yIDIgLjMgMyAuNCAuOSAuMSAxLjkgLjIgMi45IC4zczEuOSAuMiAyLjkgLjMgMi4xIC4yIDMuMSAuM2MuOSAuMSAxLjggLjEgMi43IC4yIDEuMSAuMSAyLjMgLjEgMy40IC4yIC44IDAgMS43IC4xIDIuNSAuMSAxLjMgMCAyLjYgLjEgMy45IC4xIC43IC4xIDEuNCAuMSAyLjEgLjEgMiAuMSA0IC4xIDYgLjFzNC0uMSA2LS4xYy43IDAgMS40LS4xIDIuMS0uMSAxLjMgMCAyLjYgMCAzLjktLjEgLjggMCAxLjctLjEgMi41LS4xIDEuMS0uMSAyLjMtLjEgMy40LS4yIC45IDAgMS44LS4xIDIuNy0uMiAxLS4xIDIuMS0uMiAzLjEtLjNzMS45LS4yIDIuOS0uM2MuOS0uMSAxLjktLjIgMi45LS4zczItLjMgMy0uNCAxLjktLjMgMi44LS40YzEtLjIgMi4xLS4zIDMuMS0uNSAuOS0uMSAxLjctLjMgMi42LS40IDY1LjYtMTEgMTIyLjUtNDcuNyAxNjAuMS0xMDIuNCAuMi0uMiAuMy0uNSAuNS0uNyAuOC0xLjEgMS41LTIuMiAyLjMtMy4zIC4yLS40IC41LS44IC44LTEuMiAuNy0xLjEgMS40LTIuMSAyLjEtMy4yIC4zLS41IC42LS45IC45LTEuNCAuNi0xLjEgMS4zLTIuMSAyLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjctMS4xIDEuMy0yLjIgMi0zLjMgLjItLjQgLjUtLjggLjctMS4yIDIuNC00IDQuNi04LjEgNi44LTEyLjIgLjEtLjIgLjItLjMgLjMtLjUgLjYtMS4xIDEuMS0yLjIgMS43LTMuMyAuMi0uNiAuNS0xLjEgLjgtMS43IC41LTEgMS0yLjEgMS41LTMuMSAuMy0uNyAuNi0xLjMgLjktMiAuNS0xIDEtMiAxLjQtM2wuOS0yLjFjLjUtMSAuOS0yIDEuMy0zIC4zLS43IC42LTEuNSAuOS0yLjJsMS4yLTNjLjMtLjggLjYtMS41IC45LTIuMyAuNC0xIC43LTIgMS4xLTNzLjctMS45IDEtMi44Yy42LTEuNiAxLjItMy4zIDEuNy00LjkgLjMtMSAuNi0xLjkgLjktMi44cy41LTEuOCAuOC0yLjdjLjItLjkgLjUtMS45IC44LTIuOHMuNi0xLjggLjgtMi43Yy4zLTEgLjUtMS45IC44LTIuOSAuMi0uOSAuNS0xLjggLjctMi43IC4yLTEgLjUtMiAuNy0zIC4yLS45IC40LTEuNyAuNi0yLjYgLjItMSAuNS0yLjEgLjctMy4yIC4yLS44IC4zLTEuNiAuNS0yLjQgLjMtMS4zIC42LTIuNyAuOC00IC4xLS42IC4yLTEuMSAuMy0xLjdsLjktNS43Yy4xLS42IC4yLTEuMyAuMy0xLjkgLjEtMS4zIC4zLTIuNiAuNS0zLjkgLjEtLjggLjItMS41IC4zLTIuMyAuMS0xLjIgLjMtMi40IC40LTMuNiAwLS44IC4xLTEuNiAuMi0yLjQgLjEtMS4xIC4yLTIuMyAuMy0zLjUgLjEtLjggLjEtMS42IC4yLTIuNCAuMSAxLjcgLjEgLjUgLjItLjcgMC0uOCAuMS0xLjUgLjEtMi4zIC4xLTEuMyAuMi0yLjcgLjItNCAuMS0uNyAuMS0xLjMgLjEtMiAuMS0yIC4xLTQgLjEtNiAwLTUzLjUtMTYuOS0xMDMtNDUuOC0xNDMuN3pNNDQ4IDM3MS41Yy05LjQgMTUuNS0yMC42IDI5LjktMzMuNiA0Mi45LTIwLjYgMjAuNi00NC41IDM2LjctNzEuMiA0OC0xMy45IDUuOC0yOC4yIDEwLjMtNDIuOSAxMy4ybDAtNzUuOGMwLTU4LjYtODguNi01OC42LTg4LjYgMGwwIDc1LjhjLTE0LjctMi45LTI5LTcuMy00Mi45LTEzLjItMjYuNy0xMS4zLTUwLjYtMjcuNC03MS4yLTQ4LTEzLTEzLTI0LjItMjcuNC0zMy42LTQyLjlsMC03MS4zYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOCAyOS42IDAgMC0xNDRjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC00LjggNi41LTMuNyA5LjUtMy43bDAtOTAuMmMtNC40LTItNy40LTYuNy03LjQtMTEuNSAwLTE2LjggMjUuNC0xNi44IDI1LjQgMCAwIDQuOC0zIDkuNC03LjQgMTEuNWwwIDMuOWM2LjMtMS40IDEyLjctMi4zIDE5LjItMi4zIDkuNCAwIDE4LjQgMy41IDI2LjMgMy41IDcuMiAwIDE1LjItMy41IDE5LjQtMy41IDIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDQ4LjRjMCA1LjYtMTguNyA2LjUtMjIuNCA2LjUtOC42IDAtMTYuNi0zLjUtMjUuNC0zLjUtNyAwLTE0LjEgMS4yLTIwLjggMi44bDAgMzAuN2MzIDAgOS41LTEuMSA5LjUgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMTQ0IDI5LjUgMCAwLTI1LjhjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA3MS4zeiJdfSxVTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnVyb21vYmVsZXhwZXJ0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3ZiIsIk0wIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMTYwIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMzIwIDMybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMTUybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAxOTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTQ0MCAzMTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0wIDM1MmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDQ3MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDQ3MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHoiXX0sV010PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpbGliaWxpIixpY29uOls1MTIsNTEyLFtdLCJlM2Q5IiwiTTQ4OC42IDEwNC4xYzE2LjcgMTguMSAyNC40IDM5LjcgMjMuMyA2NS43bDAgMjAyLjRjLS40IDI2LjQtOS4yIDQ4LjEtMjYuNSA2NS4xLTE3LjIgMTctMzkuMSAyNS45LTY1LjUgMjYuN0w5MiA0NjRjLTI2LjQtLjgtNDguMi05LjgtNjUuMy0yNy4yLTE3LjEtMTcuNC0yNi00MC4zLTI2LjctNjguNkwwIDE2OS44Yy44LTI2IDkuNy00Ny42IDI2LjctNjUuNyAxNy4xLTE2LjMgMzguOC0yNS4zIDY1LjMtMjYuMWwyOS40IDAtMjUuNC0yNS44Yy01LjctNS43LTguNi0xMy04LjYtMjEuOHMyLjktMTYuMSA4LjYtMjEuOCAxMy04LjYgMjEuOS04LjYgMTYuMSAyLjkgMjEuOSA4LjZsNzMuMyA2OS40IDg4IDAgNzQuNS02OS40QzM4MS43IDIuOSAzODkuMiAwIDM5OCAwczE2LjEgMi45IDIxLjkgOC42YzUuNyA1LjcgOC42IDEzIDguNiAyMS44cy0yLjkgMTYuMS04LjYgMjEuOEwzOTQuNiA3OCA0MjMuOSA3OGMyNi40IC44IDQ4IDkuOCA2NC43IDI2LjF6bS0zOC44IDY5LjdjLS40LTkuNi0zLjctMTcuNC0xMC43LTIzLjUtNS4yLTYuMS0xNC05LjQtMjIuNy05LjhsLTMyMC40IDBjLTkuNiAuNC0xNy40IDMuNy0yMy42IDkuOC02LjEgNi4xLTkuNCAxMy45LTkuOCAyMy41bDAgMTk0LjRjMCA5LjIgMy4zIDE3IDkuOCAyMy41czE0LjQgOS44IDIzLjYgOS44bDMyMC40IDBjOS4yIDAgMTctMy4zIDIzLjMtOS44czkuNy0xNC4zIDEwLjEtMjMuNWwwLTE5NC40ek0xODUuNSAyMTYuNWM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMi02LjIgNi4zLTE0IDkuNS0yMy42IDkuNXMtMTcuNS0zLjItMjMuNi05LjUtOS40LTE0LTkuOC0yMy4ybDAtMzMuM2MuNC05LjEgMy44LTE2LjkgMTAuMS0yMy4yczEzLjItOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEwem0xOTEuNSAwYzYuMyA2LjMgOS43IDE0LjEgMTAuMSAyMy4ybDAgMzMuM2MtLjQgOS4yLTMuNyAxNi45LTkuOCAyMy4ycy0xNCA5LjUtMjMuNiA5LjUtMTcuNC0zLjItMjMuNi05LjVjLTctNi4zLTkuNC0xNC05LjctMjMuMmwwLTMzLjNjLjMtOS4xIDMuNy0xNi45IDEwLTIzLjJzMTQuMS05LjYgMjMuMy0xMGM5LjIgLjQgMTcgMy43IDIzLjMgMTB6Il19LEdNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZW9zIixpY29uOls0NDgsNTEyLFtdLCJmNjEyIiwiTTM4My44IDUxMmwtOTUuMSAwLTEwOC4yLTE1NC41IDAgOTEuMS04Ni40IDYzLjQtOTcuNyAwIDAtNDgyLjIgNDAuNS0yOS44IDEwOCAwIDEyMy43IDE3Ni4xIDAtMTEyLjcgODYuNC02My40IDk3LjcgMCAwIDQ2MS41LTY4LjkgNTAuNXpNNy4yIDM1LjNsMCA0NjAuNyA3Mi01Mi45IDAtMjQ5LjEgMjE1LjUgMzA3LjYgODQuOCAwIDUyLjQtMzguMi03OC4zIDAtMzE2LjEtNDUwLjUtMzAuMiAyMi4zek04OS43IDUwMS45bDgwLTU4LjggMC0xMDEtNzkuOC0xMTQuNCAwIDIyMC45LTcyLjYgNTMuMyA3Mi4zIDAgMCAwek00OSAxMC44bDMxMC42IDQ0Mi42IDgyLjQgMCAwLTQ0Mi42LTc5LjggMCAwIDMxNy42LTIyMi45LTMxNy42LTkwLjMgMHpNMjc5LjQgMTkxLjZsNzIgMTAyLjggMC0yNzguNS03MiA1MyAwIDEyMi43eiJdfSxZTXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2IixpY29uOls0NDgsNTEyLFtdLCJmNmNjIiwiTTEyMC4xIDIwOC4zYy0zLjktMi45LTcuOC00LjMtMTEuNi00LjNsLTE3LjQgMCAwIDEwNC41IDE3LjQgMGMzLjkgMCA3LjgtMS40IDExLjYtNC4zczUuOC03LjMgNS44LTEzLjFsMC02OS43YzAtNS44LTItMTAuMi01LjgtMTMuMXpNNDA0LjEgMzJMNDMuOSAzMkMxOS43IDMyIC4xIDUxLjYgMCA3NS44TDAgNDM2LjJDLjEgNDYwLjQgMTkuNyA0ODAgNDMuOSA0ODBsMzYwLjIgMGMyNC4yIDAgNDMuOC0xOS42IDQzLjktNDMuOGwwLTM2MC40QzQ0Ny45IDUxLjYgNDI4LjMgMzIgNDA0LjEgMzJ6TTE1NC4yIDI5MS4yYzAgMTguOC0xMS42IDQ3LjMtNDguNCA0Ny4zbC00Ni40IDAgMC0xNjUuNSA0Ny40IDBjMzUuNCAwIDQ3LjQgMjguNSA0Ny40IDQ3LjNsMCA3MC45em0xMDAuNy04OC43bC01My4zIDAgMCAzOC40IDMyLjYgMCAwIDI5LjYtMzIuNiAwIDAgMzguNCA1My4zIDAgMCAyOS42LTYyLjIgMGMtMTEuMiAuMy0yMC40LTguNS0yMC43LTE5LjdsMC0xMjUuMWMtLjMtMTEuMSA4LjYtMjAuNCAxOS43LTIwLjdsNjMuMiAwIDAgMjkuNXpNMzU4LjUgMzE3LjhjLTEzLjIgMzAuNy0zNi44IDI0LjYtNDcuNCAwbC0zOC41LTE0NC44IDMyLjYgMCAyOS43IDExMy43IDI5LjYtMTEzLjcgMzIuNiAwLTM4LjUgMTQ0Ljh6Il19LEtNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3RqYXIiLGljb246WzUxMiw1MTIsW10sImYzYjEiLCJNMzYxLjggMGMwIDEzMS42LTgwLjcgMTc2LjgtMTQwLjIgMjA5LjQtLjYgLjMtMS4xIC42LTEuNiAuOS01My44IDMwLjItODguNyA0OS44LTg5LjYgMTIybC05OC4xIDBjMC0xMzEuNSA4MC43LTE3Ni43IDE0MC4yLTIwOS4zIDU0LjgtMjkuOCA5MC4zLTUwIDkwLjMtMTIzbDk5IDB6TTMwMS4zIDMwMi42YzU0LjgtMjkuOCA5MC4zLTUwIDkwLjMtMTIzbDk4IDBjMCAxMzEuNi04MC43IDE3Ni43LTE0MC4yIDIwOS40LTU0LjggMjkuOC05MC4zIDUwLTkwLjMgMTIzbC05OCAwYzAtMTMxLjYgODAuNy0xNzYuOCAxNDAuMi0yMDkuNHoiXX0sWk10PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRvY2h1YiIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5NCIsIk00MTMuOSAxNjBMMjcyIDE2MCAyNzIgMTkuNiA0MTMuOSAxNjB6TTMyMCAxOTJsMCAxMzBjMCA2Ni44LTM2LjUgMTAwLjEtMTEzLjMgMTAwLjFsLTk0LjcgMCAwLTMzNy4zIDk0LjcgMGMxMiAwIDIzLjEgLjggMzMuMSAyLjVsMC04NEMyMjguOSAxLjEgMjE3LjQgMCAyMDUuMiAwTDE2IDAgMTYgNTEyIDIwNS4yIDUxMkMzNDUuNyA1MTIgNDE2IDQ0Ny40IDQxNiAzMTguMWwwLTEyNi4xLTk2IDB6Il19LFhNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW1lbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwYSIsIk00MDMuMiAzMkw0NC44IDMyQzIwLjEgMzIgMCA1Mi4xIDAgNzYuOEwwIDQzNS4yQzAgNDU5LjkgMjAuMSA0ODAgNDQuOCA0ODBsMzU4LjQgMGMyNC43IDAgNDQuOC0yMC4xIDQ0LjgtNDQuOGwwLTM1OC40QzQ0OCA1Mi4xIDQyNy45IDMyIDQwMy4yIDMyek0zNzcgMTgwLjhjLTEuNCAzMS41LTIzLjQgNzQuNy02NiAxMjkuNC00NCA1Ny4yLTgxLjMgODUuOC0xMTEuNyA4NS44LTE4LjkgMC0zNC44LTE3LjQtNDcuOS01Mi4zLTI1LjUtOTMuMy0zNi40LTE0OC01Ny40LTE0OC0yLjQgMC0xMC45IDUuMS0yNS40IDE1LjJMNTMuNCAxOTEuM2MzNy4zLTMyLjggNzIuOS02OS4yIDk1LjItNzEuMiAyNS4yLTIuNCA0MC43IDE0LjggNDYuNSA1MS43IDIwLjcgMTMxLjIgMjkuOSAxNTEgNjcuNiA5MS42IDEzLjUtMjEuNCAyMC44LTM3LjcgMjEuOC00OC45IDMuNS0zMy4yLTI1LjktMzAuOS00NS44LTIyLjQgMTUuOS01Mi4xIDQ2LjMtNzcuNCA5MS4yLTc2IDMzLjMgLjkgNDkgMjIuNSA0Ny4xIDY0Ljd6Il19LFFNdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXhjZG4iLGljb246WzUxMiw1MTIsW10sImYxMzYiLCJNNDYxLjEgNDQyLjdsLTk3LjQgMCA1MS45LTI0Mi43YzIuMy0xMC4yIC45LTE5LjUtNC40LTI1LjctNS02LjEtMTMuNy05LjYtMjQuMi05LjZsLTQ5LjMgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtODMuNCAwLTU5LjUgMjc4LTk3LjQgMCA1OS41LTI3OC00NC42LTk1LjQgMzcyLjEgMGMzOS40IDAgNzUuMyAxNi4zIDk4LjMgNDQuOSAyMy4zIDI4LjYgMzEuOCA2Ny40IDIzLjYgMTA1LjlMNDYxLjEgNDQyLjd6Il19LHF1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZm9udC1hd2Vzb21lLXN0cm9rZSIsaWNvbjpbNDQ4LDUxMixbImZvbnQtYXdlc29tZS1hbHQiXSwiZjM1YyIsIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNTQgNThjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy44IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSxKTXQ9cXVlLGVrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2FwIixpY29uOls0NDgsNTEyLFtdLCJmM2YzIiwiTTY0LjQgMzkxLjhDLTE1IDMwMy42LTcuNiAxNjcuNCA4MS4xIDg3LjZzMjI0LjgtNzMgMzA0LjIgMTUuMiA3MiAyMjQuNC0xNi42IDMwNC4xYy0xOC43IDE2LjkgNjQgNDMuMSA0MiA1Mi4zLTgyLjEgMzQuMi0yNTMuOSAzNS0zNDYuMi02Ny41bDAgMHpNMjc3LjcgMTgwLjJsMzguNS00MC45Yy05LjYtOC45LTMyLTI2LjgtNzYuMi0yNy42LTUyLjMtLjktOTUuOSAyOC4zLTk2LjggODAtLjIgMTEuMyAuMyAzNi43IDI5LjQgNTQuOCAzNC41IDIxLjQgODYuNSAyMS41IDg2IDUyLjMtLjQgMjEuMy0yNi40IDI1LjgtMzguNiAyNS42LTMgMC0zMC4yLS41LTQ3LjYtMjQuNmwtNDAgNDIuNmMyOC4yIDI3IDU5IDMyLjYgODMuNSAzMyAxMC4yIC4yIDk2LjQgLjMgOTcuOC04MSAuMy0xNS44LTIuMS0zOS43LTI4LjktNTYuNi0zNC40LTIxLjYtODUtMTkuNC04NC40LTQ5LjcgLjQtMjMuMyAzMS0yNS40IDM3LjUtMjUuMyAuNCAwIDI2LjYgLjMgMzkuNiAxNy40bDAgMHoiXX0sdGt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhbnRhc3ktZmxpZ2h0LWdhbWVzIixpY29uOls1MTIsNTEyLFtdLCJmNmRjIiwiTTI1NiAzMi45TDMyLjkgMjU2IDI1NiA0NzkuMSA0NzkuMSAyNTYgMjU2IDMyLjl6TTg4LjMgMjU1LjhjMi0yIDExLjktMTIuMyA5Ni41LTk3LjUgNDEuNC00MS44IDg2LjItNDMuOCAxMTkuOC0xOC43IDI0LjYgMTguNCA2Mi4xIDU4LjkgNjIuMSA1OSAuNyAuNyAxLjEgMi45IC42IDMuNC0xMS4zIDExLjgtMjIuNyAyMy41LTMzLjUgMzQuNy0zNC4yLTMyLjMtNDAuNS0zOC4yLTQ4LjUtNDQtMTcuOC0xMi43LTQxLjQtMTAuMS01NyA1LjEtMi4yIDIuMS0xLjggMy40IC4xIDUuNCAyLjkgMi45IDI4LjEgMjguMyAzNS4xIDM1LjgtMTEuOSAxMS42LTIzLjcgMjMtMzUuNyAzNC43LTEyLTEyLjUtMjQuNS0yNS41LTM2LjUtMzguMS0yMS40IDIxLjEtNDEuNyA0MS4xLTYxLjggNjFMODguMyAyNTUuOHpNMzIzLjIgMzU3LjRjLTM1LjUgMzUuNC03OC4xIDM4LjEtMTA3IDIwLjUtMjIuMS0xMy41LTM5LjQtMzIuMS03Mi45LTY2LjggMTItMTIuNCAyMy44LTI0LjQgMzUuNC0zNi4zIDMzIDMxLjkgMzcuMSAzNiA0NC43IDQyLjEgMTguNSAxNC43IDQyLjUgMTMuNyA1OS4zLTEuOCAzLjctMy40IDMuNy0zLjYgLjEtNy4yLTEwLjYtMTAuNy0yMS4yLTIxLjQtMzEuOC0zMi4yLTEuMy0xLjMtMy0yLjUtLjgtNC43IDEwLjgtMTAuNyAyMS41LTIxLjUgMzIuMi0zMi4zIC4zLS4zIC42LS40IDEuOS0xLjEgMTIuNCAxMi45IDI0LjkgMjUuOSAzNy4yIDM4LjggMjEtMjAuNyA0MS4yLTQwLjcgNjEuMy02MC40IDEzLjcgMTMuNCAyNy4xIDI2LjYgNDAuOSA0MC0yMC4yIDIwLjktODEuNyA4Mi43LTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NiAyNTYgNTEyIDUxMiAyNTYgMjU2IDB6TTE2IDI1NkwyNTYgMTYgNDk2IDI1NiAyNTYgNDk2IDE2IDI1NnoiXX0sYWt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbnV4IixpY29uOls0NDgsNTEyLFtdLCJmMTdjIiwiTTIyMC45IDEyMy4zYzEgLjUgMS44IDEuNyAzIDEuNyAxLjEgMCAyLjgtLjQgMi45LTEuNSAuMi0xLjQtMS45LTIuMy0zLjItMi45LTEuNy0uNy0zLjktMS01LjUtLjEtLjQgLjItLjggLjctLjYgMS4xIC4zIDEuMyAyLjMgMS4xIDMuNCAxLjd6TTE5OSAxMjVjMS4yIDAgMi0xLjIgMy0xLjcgMS4xLS42IDMuMS0uNCAzLjUtMS42IC4yLS40LS4yLS45LS42LTEuMS0xLjYtLjktMy44LS42LTUuNSAuMS0xLjMgLjYtMy40IDEuNS0zLjIgMi45IC4xIDEgMS44IDEuNSAyLjggMS40ek00MjAgNDAzLjhjLTMuNi00LTUuMy0xMS42LTcuMi0xOS43LTEuOC04LjEtMy45LTE2LjgtMTAuNS0yMi40LTEuMy0xLjEtMi42LTIuMS00LTIuOS0xLjMtLjgtMi43LTEuNS00LjEtMiA5LjItMjcuMyA1LjYtNTQuNS0zLjctNzkuMS0xMS40LTMwLjEtMzEuMy01Ni40LTQ2LjUtNzQuNC0xNy4xLTIxLjUtMzMuNy00MS45LTMzLjQtNzIgLjUtNDUuOSA1LjEtMTMxLjItNzUuOC0xMzEuMy0xMDIuNC0uMi03Ni44IDEwMy40LTc3LjkgMTM1LjItMS43IDIzLjQtNi40IDQxLjgtMjIuNSA2NC43LTE4LjkgMjIuNS00NS41IDU4LjgtNTguMSA5Ni43LTYgMTcuOS04LjggMzYuMS02LjIgNTMuMy02LjUgNS44LTExLjQgMTQuNy0xNi42IDIwLjItNC4yIDQuMy0xMC4zIDUuOS0xNyA4LjNzLTE0IDYtMTguNSAxNC41Yy0yLjEgMy45LTIuOCA4LjEtMi44IDEyLjQgMCAzLjkgLjYgNy45IDEuMiAxMS44IDEuMiA4LjEgMi41IDE1LjcgLjggMjAuOC01LjIgMTQuNC01LjkgMjQuNC0yLjIgMzEuNyAzLjggNy4zIDExLjQgMTAuNSAyMC4xIDEyLjMgMTcuMyAzLjYgNDAuOCAyLjcgNTkuMyAxMi41IDE5LjggMTAuNCAzOS45IDE0LjEgNTUuOSAxMC40IDExLjYtMi42IDIxLjEtOS42IDI1LjktMjAuMiAxMi41LS4xIDI2LjMtNS40IDQ4LjMtNi42IDE0LjktMS4yIDMzLjYgNS4zIDU1LjEgNC4xIC42IDIuMyAxLjQgNC42IDIuNSA2LjdsMCAuMWM4LjMgMTYuNyAyMy44IDI0LjMgNDAuMyAyMyAxNi42LTEuMyAzNC4xLTExIDQ4LjMtMjcuOSAxMy42LTE2LjQgMzYtMjMuMiA1MC45LTMyLjIgNy40LTQuNSAxMy40LTEwLjEgMTMuOS0xOC4zIC40LTguMi00LjQtMTcuMy0xNS41LTI5Ljd6TTIyMy44IDg3LjNjOS44LTIyLjIgMzQuMi0yMS44IDQ0LS40IDYuNSAxNC4yIDMuNiAzMC45LTQuMyA0MC40LTEuNi0uOC01LjktMi42LTEyLjYtNC45IDEuMS0xLjIgMy4xLTIuNyAzLjktNC42IDQuOC0xMS44LS4yLTI3LTkuMS0yNy4zLTcuMy0uNS0xMy45IDEwLjgtMTEuOCAyMy00LjEtMi05LjQtMy41LTEzLTQuNC0xLTYuOS0uMy0xNC42IDIuOS0yMS44ek0xODMuMSA3NS44YzEwLjEgMCAyMC44IDE0LjIgMTkuMSAzMy41LTMuNSAxLTcuMSAyLjUtMTAuMiA0LjYgMS4yLTguOS0zLjMtMjAuMS05LjYtMTkuNi04LjQgLjctOS44IDIxLjItMS44IDI4LjEgMSAuOCAxLjktLjItNS45IDUuNS0xNS42LTE0LjYtMTAuNS01Mi4xIDguNC01Mi4xem0tMTMuNiA2MC43YzYuMi00LjYgMTMuNi0xMCAxNC4xLTEwLjUgNC43LTQuNCAxMy41LTE0LjIgMjcuOS0xNC4yIDcuMSAwIDE1LjYgMi4zIDI1LjkgOC45IDYuMyA0LjEgMTEuMyA0LjQgMjIuNiA5LjMgOC40IDMuNSAxMy43IDkuNyAxMC41IDE4LjItMi42IDcuMS0xMSAxNC40LTIyLjcgMTguMS0xMS4xIDMuNi0xOS44IDE2LTM4LjIgMTQuOS0zLjktLjItNy0xLTkuNi0yLjEtOC0zLjUtMTIuMi0xMC40LTIwLTE1LTguNi00LjgtMTMuMi0xMC40LTE0LjctMTUuMy0xLjQtNC45IDAtOSA0LjItMTIuM3ptMy4zIDMzNGMtMi43IDM1LjEtNDMuOSAzNC40LTc1LjMgMTgtMjkuOS0xNS44LTY4LjYtNi41LTc2LjUtMjEuOS0yLjQtNC43LTIuNC0xMi43IDIuNi0yNi40bDAtLjJjMi40LTcuNiAuNi0xNi0uNi0yMy45LTEuMi03LjgtMS44LTE1IC45LTIwIDMuNS02LjcgOC41LTkuMSAxNC44LTExLjMgMTAuMy0zLjcgMTEuOC0zLjQgMTkuNi05LjkgNS41LTUuNyA5LjUtMTIuOSAxNC4zLTE4IDUuMS01LjUgMTAtOC4xIDE3LjctNi45IDguMSAxLjIgMTUuMSA2LjggMjEuOSAxNmwxOS42IDM1LjZjOS41IDE5LjkgNDMuMSA0OC40IDQxIDY4Ljl6bS0xLjQtMjUuOWMtNC4xLTYuNi05LjYtMTMuNi0xNC40LTE5LjYgNy4xIDAgMTQuMi0yLjIgMTYuNy04LjkgMi4zLTYuMiAwLTE0LjktNy40LTI0LjktMTMuNS0xOC4yLTM4LjMtMzIuNS0zOC4zLTMyLjUtMTMuNS04LjQtMjEuMS0xOC43LTI0LjYtMjkuOXMtMy0yMy4zLS4zLTM1LjJjNS4yLTIyLjkgMTguNi00NS4yIDI3LjItNTkuMiAyLjMtMS43IC44IDMuMi04LjcgMjAuOC04LjUgMTYuMS0yNC40IDUzLjMtMi42IDgyLjQgLjYtMjAuNyA1LjUtNDEuOCAxMy44LTYxLjUgMTItMjcuNCAzNy4zLTc0LjkgMzkuMy0xMTIuNyAxLjEgLjggNC42IDMuMiA2LjIgNC4xIDQuNiAyLjcgOC4xIDYuNyAxMi42IDEwLjMgMTIuNCAxMCAyOC41IDkuMiA0Mi40IDEuMiA2LjItMy41IDExLjItNy41IDE1LjktOSA5LjktMy4xIDE3LjgtOC42IDIyLjMtMTUgNy43IDMwLjQgMjUuNyA3NC4zIDM3LjIgOTUuNyA2LjEgMTEuNCAxOC4zIDM1LjUgMjMuNiA2NC42IDMuMy0uMSA3IC40IDEwLjkgMS40IDEzLjgtMzUuNy0xMS43LTc0LjItMjMuMy04NC45LTQuNy00LjYtNC45LTYuNi0yLjYtNi41IDEyLjYgMTEuMiAyOS4yIDMzLjcgMzUuMiA1OSAyLjggMTEuNiAzLjMgMjMuNyAuNCAzNS43IDE2LjQgNi44IDM1LjkgMTcuOSAzMC43IDM0LjgtMi4yLS4xLTMuMiAwLTQuMiAwIDMuMi0xMC4xLTMuOS0xNy42LTIyLjgtMjYuMS0xOS42LTguNi0zNi04LjYtMzguMyAxMi41LTEyLjEgNC4yLTE4LjMgMTQuNy0yMS40IDI3LjMtMi44IDExLjItMy42IDI0LjctNC40IDM5LjktLjUgNy43LTMuNiAxOC02LjggMjktMzIuMSAyMi45LTc2LjcgMzIuOS0xMTQuMyA3LjJ6bTI1Ny40LTExLjVjLS45IDE2LjgtNDEuMiAxOS45LTYzLjIgNDYuNS0xMy4yIDE1LjctMjkuNCAyNC40LTQzLjYgMjUuNXMtMjYuNS00LjgtMzMuNy0xOS4zYy00LjctMTEuMS0yLjQtMjMuMSAxLjEtMzYuMyAzLjctMTQuMiA5LjItMjguOCA5LjktNDAuNiAuOC0xNS4yIDEuNy0yOC41IDQuMi0zOC43IDIuNi0xMC4zIDYuNi0xNy4yIDEzLjctMjEuMSAuMy0uMiAuNy0uMyAxLS41IC44IDEzLjIgNy4zIDI2LjYgMTguOCAyOS41IDEyLjYgMy4zIDMwLjctNy41IDM4LjQtMTYuMyA5LS4zIDE1LjctLjkgMjIuNiA1LjEgOS45IDguNSA3LjEgMzAuMyAxNy4xIDQxLjYgMTAuNiAxMS42IDE0IDE5LjUgMTMuNyAyNC42ek0xNzMuNCAxNDguN2MyIDEuOSA0LjcgNC41IDggNy4xIDYuNiA1LjIgMTUuOCAxMC42IDI3LjMgMTAuNiAxMS42IDAgMjIuNS01LjkgMzEuOC0xMC44IDQuOS0yLjYgMTAuOS03IDE0LjgtMTAuNHM1LjktNi4zIDMuMS02LjYtMi42IDIuNi02IDUuMWMtNC40IDMuMi05LjcgNy40LTEzLjkgOS44LTcuNCA0LjItMTkuNSAxMC4yLTI5LjkgMTAuMnMtMTguNy00LjgtMjQuOS05LjdjLTMuMS0yLjUtNS43LTUtNy43LTYuOS0xLjUtMS40LTEuOS00LjYtNC4zLTQuOS0xLjQtLjEtMS44IDMuNyAxLjcgNi41eiJdfSxya3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY290dG9uLWJ1cmVhdSIsaWNvbjpbNTEyLDUxMixbXSwiZjg5ZSIsIk00NzQuMyAzMzAuNEM0NTAuNiA0MjIuMyAzODAuMSA0NzUgMjcyLjQgNDc4LjhsMC00OS4yYzAtNDggMjYuNC03NC40IDc0LjQtNzQuNCA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIgMC02MS40LTM2LjUtOTguMy05Ny40LTk5LjEtMzMtNjkuMy0xNDYuNS02NC43LTE3Ny4yIDAtNjAuOSAuOC05Ny40IDM3LjctOTcuNCA5OS4xIDAgNjIuMSAzNy4zIDk5LjQgOTkuNCA5OS40IDQ4IDAgNzQuNiAyNi4yIDc0LjYgNzQuNGwwIDQ5LjJjLTEzNC40LTUtMjExLjEtODUuMS0yMTEuMS0yMjMgMC0xNDEuOCA4MS40LTIyMy4yIDIyMy4yLTIyMy4yIDExNC44IDAgMTg5LjggNTMuMiAyMTQuNyAxNDguOGwyNS4zIDBDNDczLjkgNzEuNSAzODguMiA4IDI1OS44IDggMTA1IDggMTIgMTAxLjIgMTIgMjU1LjggMTIgNDExLjEgMTA1LjIgNTA0LjMgMjU5LjggNTA0IDM4OC4xIDUwNCA0NzMuNyA0NDAuMiA0OTkuNSAzMzAuNGwtMjUuMiAwek0zNTcgMTgyLjNjNDEuNCAzLjQgNjQuMiAyOSA2NC4yIDczLjcgMCA0OC0yNi40IDc0LjQtNzQuNCA3NC40LTI4LjYgMC00OS4zLTkuNi02MS42LTI3LjMgODMuMS0xNi41IDc1LjYtOTkuNyA3MS44LTEyMC43em0tODEuNyA5Ny40Yy0yLjUtMTAuMy0xNi4zLTg3IDU2LjItOTcgMi4zIDEwLjEgMTYuNSA4Ny4xLTU2LjMgOTdsMCAwek0yNjAgMTMyYzI4LjYgMCA0OSA5LjcgNjEuNCAyNy42LTI4LjQgNS41LTQ5LjQgMjAuNi02MS42IDQzLjQtMTIuMi0yMi45LTMzLjItMzgtNjEuNi00My40IDEyLjQtMTcuNyAzMy4zLTI3LjQgNjEuNi0yNy40bC4yLS4zem0tNzEuNSA1MC43YzczLjIgMTAuNiA1OC45IDg2LjggNTYuNSA5Ny03Mi40LTkuOC01OS04Ny01Ni4yLTk3bC0uMiAwek0xNzMuMiAzMzAuNGMtNDggMC03NC40LTI2LjQtNzQuNC03NC40IDAtNDQuNCAyMi45LTcwIDY0LjItNzMuNy02LjggMzcuMi0xLjQgMTA2LjUgNzEuNiAxMjAuNy0xMi4xIDE3LjYtMzIuOCAyNy4zLTYxLjEgMjcuM2wtLjMgMHptNTMuMiAxMi40YzE0LjMtNy42IDI2LTE5LjMgMzMuNi0zMy41IDcuOCAxNC41IDE5LjMgMjUuNSAzMy44IDMzLjUtMTQuNCA3LjYtMjYuMSAxOS40LTMzLjYgMzMuOC04LTE0LjUtMTkuMS0yNi4yLTMzLjYtMzMuOGwtLjMgMHoiXX0sc2t0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS13YWxsZXQiLGljb246WzQ0OCw1MTIsW10sImYxZWUiLCJNMTU2LjggMTI2LjhjMzcuNiA2MC42IDY0LjIgMTEzLjEgODQuMyAxNjIuNS04LjMgMzMuOC0xOC44IDY2LjUtMzEuMyA5OC4zLTEzLjItNTIuMy0yNi41LTEwMS4zLTU2LTE0OC41IDYuNS0zNi40IDIuMy03My42IDMtMTEyLjN6TTEwOS4zIDIwMGwtOTMuMiAwYy02LjUgMC0xMC41IDcuNS02LjUgMTIuNyA0Mi4yIDU0LjMgNzEuNyAxMTcuOCA5MS43IDE4Ny4zbDEwMy41IDBjLTE2LjItNjkuNy0zOC43LTEzMy43LTgyLjUtMTkzLjUtMy00LTgtNi41LTEzLTYuNXptNDcuOC04OGM2OC41IDEwOCAxMzAgMjM0LjUgMTM4LjIgMzY4TDQwOSA0ODBjLTEyLTEzOC02OC40LTI2NS0xNDMuMi0zNjhsLTEwOC43IDB6TTQwOC45IDQzLjVjLTEuOC02LjgtOC4yLTExLjUtMTUuMi0xMS41bC04OC4zIDBjLTUuMyAwLTkgNS03LjggMTAuMyAxMy4yIDQ2LjUgMjIuMyA5NS41IDI2LjUgMTQ2IDQ4LjIgODYuMiA3OS43IDE3OC4zIDkwLjYgMjcwLjggMTUuOC02MC41IDI1LjMtMTMzLjUgMjUuMy0yMDMgMC03My42LTEyLjEtMTQ1LjEtMzEuMS0yMTIuNnoiXX0saWt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvdXJzcXVhcmUiLGljb246WzM4NCw1MTIsW10sImYxODAiLCJNMzMxLjEgM0w1Ny45IDNDMjAuNCAzIDggMzEuMyA4IDQ5LjFMOCA0ODIuOWMwIDIwLjMgMTIuMSAyNy43IDE4LjIgMzAuMSA2LjIgMi41IDIyLjggNC42IDMyLjktNy4xIDEyOC45LTE0OS40IDEzMS4xLTE1MS45IDEzMS4xLTE1MS45IDMuMS0zLjQgMy40LTMuMSA2LjgtMy4xbDgzLjQgMGMzNS4xIDAgNDAuNi0yNS4yIDQ0LjMtMzkuN2w0OC42LTI0M0MzODEuOCAyNS44IDM3MS4xIDMgMzMxLjEgM3pNMzE0LjggNzYuOGwtMTEuNCA1OS43Yy0xLjIgNi41LTkuNSAxMy4yLTE2LjkgMTMuMmwtMTA2LjQgMGMtMTIgMC0yMC42IDguMy0yMC42IDIwLjNsMCAxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmw5MC40IDBjOC4zIDAgMTYuNiA5LjIgMTQuOCAxOC4yLTEuOCA4LjktMTAuNSA1My44LTExLjQgNTguOC0uOSA0LjktNi44IDEzLjUtMTYuOSAxMy41bC03My41IDBjLTEzLjUgMC0xNy4yIDEuOC0yNi41IDEyLjYgMCAwLTguOSAxMS40LTg5LjUgMTA4LjMtLjkgLjktMS44IC42LTEuOC0uM2wwLTMzOC44YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmwyMTkgMGM4LjIgMCAxNS42IDcuNyAxMy41IDE3LjV6Il19LG9rdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaGlydHNpbmJ1bGsiLGljb246WzQ0OCw1MTIsW10sImYyMTQiLCJNMTAwIDQxMC4zbDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0zOS40IDE3LjVsMzAuNiAxMy40IDQuNC05LjktMzAuNi0xMy40LTQuNCA5Ljl6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40ek0xNzkuMSA0NDVsMzAuMyAxMy43IDQuNC05LjktMzAuMy0xMy40LTQuNCA5LjZ6TTYwLjQgMzkyLjhsMzAuNiAxMy40IDQuNC05LjYtMzAuNi0xMy43LTQuNCA5Ljl6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjR6bS0zOS4zIDE3LjVsNC40IDkuOSAzMC42LTEzLjctNC40LTkuNi0zMC42IDEzLjR6bTExOC40LTUyLjJsNC40IDkuNiAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjd6TTE3MCA0Ni42bC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bS00Ny4yIDBsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS00Ny4zIDBsLTMzLjIgMCAwIDEwLjUgMzMuMyAwLS4xLTEwLjV6bTE0MS41IDBsLTMzLjIgMCAwIDEwLjUgMzMuMiAwIDAtMTAuNXptOTQuNSAwbC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tOTQuNiAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTE0MS41IDBsLTMzLjMgMCAwIDEwLjUgMzMuMyAwIDAtMTAuNXpNNTIuOCAzNTEuMWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em03MC0yMTUuOWwtMzMuNiAwIDAgMTAuNSAzMy41IDAgLjEtMTAuNXptLTcwIDEwLjZsMjIuOCAwIDAtMTAuNS0zMy42IDAgMCAzMy41IDEwLjggMCAwLTIzek0yMjEuNyAzNzQuNGE5MS4zIDkxLjMgMCAxIDAgMC0xODIuNiA5MS4zIDkxLjMgMCAxIDAgMCAxODIuNnpNMTczLjUgMjYzLjNjMC0yNS40IDI5LjUtMzEuOCA0OS42LTMxLjggMTYuOSAwIDI5LjIgNS44IDQ0LjMgMTJsLTguOCAxNi45LS45IDBjLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNCAuOSAwYzYuMSAxMi4yIDIzLjYgMTQuOSAzNS45IDE0LjkgOC43IDAgMzIuNy0xLjIgMzIuNy0xNC4zIDAtMjYuMS03Ny42IDYuMy03Ny42LTM4ek01Mi44IDE3OC40bC0xMC44IDAgMCAzMy42IDEwLjggMCAwLTMzLjZ6TTM5NS4yIDM4NC42bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNNTIuOCAzMDcuOWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41ek0wIDMuN2wwIDQwNiAyMjEuNyA5OC42IDIyNi4zLTk4LjYgMC00MDYtNDQ4IDB6TTQxOC44IDM5MC44bC0xOTYuOCA4NS43LTE5Mi44LTg1LjcgMC0yNzAuMSAzODkuNyAwIDAgMjcwLjEtLjEgMHptMC0yOTkuM2wtMzg5LjYgMCAwLTU4LjYgMzg5LjcgMCAwIDU4LjYtLjEgMHpNNTIuOCAyMjEuNmwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em0wIDQzLjJsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMTcwIDEzNS4ybC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6TTM5NS4yIDI5OC4zbDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptMC00My4ybDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNMjE3IDEzNS4ybC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6TTM5NS4yIDIxMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAgMTI5LjVsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0tMTMxLTIwNi4zbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em04My43IDMzLjZsMTAuOCAwIDAtMzMuNS0zMy41IDAgMCAxMC41IDIyLjggMC0uMSAyM3ptLTM2LjQtMzMuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41eiJdfSxua3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWludGJpdCIsaWNvbjpbNTEyLDUxMixbXSwiZTYyZiIsIk03My4yIDUxMmwwLTczLjEgMjkyLjUgMCAwLTczLjIgNzMuMiAwIDAtMTQ2LjMgNzMuMSAwIDAtMjE5LjQtMjE5LjQgMCAwIDczLjEtMTQ2LjMgMCAwIDczLjItNzMuMSAwIDAgMjkyLjYtNzMuMiAwIDAgNzMuMSA3My4yIDB6bTczLjEtMjE5LjRsNzMuMiAwIDAgNzMuMS03My4yIDAgMC03My4xem03My4yLTczLjFsNzMuMSAwIDAgNzMuMS03My4yIDAgMC03My4yIC4xIC4xem03My4xIDBsMC03My4yIDczLjIgMCAwIDczLjEtNzMuMiAwIDAgLjF6TTM2NS43IDczLjFsNzMuMiAwIDAgNzMuMi03My4yIDAgMC03My4yeiJdfSxsa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToienVsaXAiLGljb246WzQ0OCw1MTIsW10sImU4NTMiLCJNNDI0IDk5YzAgMjIuNi0xMC4xIDQyLjYtMjUuNSA1NC44TDI0OS4zIDI4Ny43Yy0yLjggMi40LTYuNC0xLjUtNC40LTQuN2w1NC43LTExMC4xYzEuNS0zLjEtLjUtNi45LTMuNi02LjlMODMuOCAxNjZDNTAuOSAxNjYgMjQgMTM1LjkgMjQgOTkgMjQgNjIuMSA1MC45IDMyIDgzLjggMzJsMjgwLjQgMEMzOTcuMSAzMiA0MjQgNjIuMSA0MjQgOTl6TTgzLjggNDgwbDI4MC40IDBjMzIuOSAwIDU5LjgtMzAuMiA1OS44LTY3cy0yNi45LTY3LTU5LjgtNjdsLTIxMi4zIDBjLTMuMSAwLTUuMS0zLjgtMy42LTYuOUwyMDMuMSAyMjljMi0zLjItMS42LTcuMS00LjQtNC43TDQ5LjUgMzU4LjJDMzQuMSAzNzAuNCAyNCAzOTAuNCAyNCA0MTMgMjQgNDQ5LjggNTAuOSA0ODAgODMuOCA0ODB6Il19LGNrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGF5bGlua2VkIixpY29uOls0NDgsNTEyLFtdLCJmM2Y1IiwiTTM4Ni43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDguMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjcuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDcuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxNSA1MTAuN3M3LjQgNi44IDE3LjMtLjhMNDMwLjMgMzQ2YzQtMy4yIDQuNC04LjcgLjctMTIuMmwtNDQuMy00MS4zem01NC41LTgzLjRMMjMwLjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDcuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMgLjRsNTAuMi0zOC44LS4zLS4zIDcuNy02YzQuMi0zLjIgNC42LTguNyAuOS0xMi4ybC01Ny4xLTU0LjRjLTMuNi0zLjUtMTAtMy43LTE0LjItLjVsLS4xIC4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTEzIDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkgLjVsMTYwLjQgMTU5YzMuNyAzLjUgMTAgMy43IDE0LjEgLjVsNDUuOC0zNS44YzQuMS0zLjIgNC40LTguNyAuNy0xMi4yeiJdfSxka3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViZmxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZTY1YyIsIk02NDAgNjRsLTIwNC4yIDM5OS4yLTE5MS44IDAgODUuNS0xNjUuNS0zLjggMEMyNTUuMSAzODkuMyAxNDkuOSA0NDkuNSAwIDQ2My4yTDAgMzAwLjFzOTUuOS01LjcgMTUyLjMtNjQuOWwtMTUyLjMgMCAwLTE3MS4yIDE3MS4xIDAgMCAxNDAuOCAzLjggMCA3MC0xNDAuOCAxMjkuNCAwIDAgMTM5LjkgMy44IDAgNzIuNi0xMzkuOSAxODkuMyAweiJdfSx1a3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVucmVuIixpY29uOls1MTIsNTEyLFtdLCJmMThiIiwiTTIxNCAxNjkuMUMyMTQgMjc5LjUgMTUzIDM3NC41IDY2LjQgNDE2LjUgMzAgMzczLjIgOCAzMTcuNyA4IDI1Ni42IDggMTMzLjkgOTcuMSAzMi4yIDIxNCAxMi41bDAgMTU2LjZ6TTI1NSA1MDRjLTQyLjkgMC04My4zLTExLTExOC41LTMwLjQgNTcuMi0zNi4xIDEwMy40LTkwLjcgMTE4LjUtMTU0LjYgMTUuNSA2My45IDYxLjcgMTE4LjUgMTE4LjggMTU0LjctMzUuMSAxOS4zLTc1LjUgMzAuMy0xMTguOCAzMC4zem0xOTAuNi04Ny41QzM1OSAzNzQuNSAyOTggMjc5LjYgMjk4IDE2OS4xbDAtMTU2LjZjMTE2LjkgMTkuNyAyMDYgMTIxLjQgMjA2IDI0NC4xIDAgNjEuMS0yMiAxMTYuNi01OC40IDE1OS45eiJdfSxwa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia28tZmkiLGljb246WzUxMiw1MTIsW10sImU4NTYiLCJNMjQ5LjggNzVjODkuOCAwIDExMyAxLjEgMTQ2LjMgNC40IDc4LjEgNy44IDEyMy42IDU2IDEyMy42IDEyNS4ybDAgOC45YzAgNjQuMy00Ny4xIDExNi45LTExMC44IDEyMi40LTUgMTYuNi0xMi44IDMzLjItMjMuMyA0OS45LTI0LjQgMzcuNy03My4xIDg1LjMtMTYyLjkgODUuM2wtMTcuNyAwYy03My4xIDAtMTI5LjctMzEuNi0xNjMuNS04OS4yLTI5LjktNTAuNC0zMy44LTEwNi40LTMzLjgtMTgxLjIgMC03My43IDQ0LjQtMTEzLjYgOTYuNC0xMjAuMiAzOS4zLTUgODguMS01LjUgMTQ1LjctNS41em0wIDQxLjZjLTYwLjQgMC0xMDMuNiAuNS0xMzYuMyA1LjUtNDYgNi43LTY0LjMgMzIuNy02NC4zIDc5LjJsLjIgMjUuN2MxLjIgNTcuMyA3LjEgOTcuMSAyNy41IDEzNC41IDI2LjYgNDkuMyA3NC44IDY4LjIgMTI5LjcgNjguMmwxNy4yIDBjNzIgMCAxMDctMzQuOSAxMjYuMy02NS40IDkuNC0xNS41IDE3LjctMzIuNyAyMi4yLTU0LjNsMy4zLTEzLjggMTkuOSAwYzQ0LjMgMCA4Mi42LTM2IDgyLjYtODJsMC04LjNjMC01MS41LTMyLjItNzguNy04OC4xLTg1LjMtMzEuNi0yLjgtNTAuNC0zLjktMTQwLjItMy45ek0yNjcgMTY5LjJjMzguMiAwIDY0LjggMzEuNiA2NC44IDY3IDAgMzIuNy0xOC4zIDYxLTQyLjEgODMuMS0xNSAxNS0zOS4zIDMwLjUtNTUuOSA0MC41LTQuNCAyLjgtMTAgNC40LTE2LjcgNC40LTUuNSAwLTEwLjUtMS43LTE1LjUtNC40LTE2LjYtMTAtNDEtMjUuNS01Ni41LTQwLjUtMjEuOC0yMC44LTM5LjItNDYuOS00MS4zLTc3bC0uMi02LjFjMC0zNS41IDI1LjUtNjcgNjQuMy02NyAyMi43IDAgMzguOCAxMS42IDQ5LjMgMjcuNyAxMS42LTE2LjEgMjcuMi0yNy43IDQ5LjktMjcuN3ptMTIyLjUtMy45YzI4LjMgMCA0My44IDE2LjYgNDMuOCA0My4ycy0xNS41IDQyLjctNDMuOCA0Mi43Yy04LjkgMC0xMy44LTUtMTMuOC0xMS43bDAtNjIuNmMwLTYuNyA1LTExLjYgMTMuOC0xMS42eiJdfSxma3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmV2IixpY29uOls0NDgsNTEyLFtdLCJmNWIyIiwiTTE1OC43IDI3NC45YTY1LjYgNjUuNiAwIDEgMSAxMzEuMiAwIDY1LjYgNjUuNiAwIDEgMSAtMTMxLjIgMHptMjcwLjctNS4xbC0uMSAwYy0uNy0yOS4zLTcuNy01OC4yLTIwLjUtODQuNnMtMzEuMi00OS43LTUzLjgtNjguNEwzMDkuNiAxNDNjMjIgMTQuMiA0MC4xIDMzLjggNTIuNyA1Ni44czE5LjEgNDguOCAxOS4xIDc1LjFjMCA4Ni42LTcwLjUgMTU3LjEtMTU3LjEgMTU3LjFTNjcuMiAzNjEuNSA2Ny4yIDI3NC45YzAtODEuOSA2My0xNDkuMyAxNDMtMTU2LjRsMCAzOS4xIDEwOC44LTYyLjgtMTA4LjgtNjIuOCAwIDM4LjNjLTEwNi43IDcuMi0xOTEgOTYtMTkxIDIwNC42IDAgMTExLjYgODkuMSAyMDIuMyAyMDAuMSAyMDVsMCAuMSAyMTAuMiAwIDAtMjEwLjJ6Il19LGhrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXljZG4iLGljb246WzUxMiw1MTIsW10sImYzYmEiLCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNSAuNyA2MC4zLTcgODYuNC0yMi40IDUuMSA1LjMgMTguNSAxOS41IDIwLjkgMjItMzIuMiAyMC43LTY5LjYgMzEuMS0xMDguMSAzMC4yLTQzLjMtMS4xLTg0LjYtMTYuNy0xMTcuNy00NC40IC4zLS42LTM4LjIgMzcuNS0zOC42IDM3LjkgOS41IDI5LjgtMTMuMSA2Mi40LTQ2LjMgNjIuNC0yNi44LS4xLTQ3LjUtMjEuNy00Ny41LTQ4LjUgMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6TTQxOC43IDE1Ni45YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMyAuMyAyMy44IDI1LjIgMjQuMSAyNS41IDkuNi0xLjMgMTkuMiAyIDI1LjkgOS4xIDExLjMgMTIgMTAuOSAzMC45LTEuMSA0Mi40LTEyIDExLjMtMzAuOSAxMC45LTQyLjQtMS4xLTYuNy03LTkuNC0xNi44LTcuNi0yNi4zLTI0LjktMjYuNi00NC40LTQ3LjItNDQuNC00Ny4yIDQyLjctMzQuMSA2My4zLTc5LjYgNjQuNC0xMjQuMiAuNy0yOC45LTcuMi01Ny4yLTIxLjEtODIuMmwyMi4xLTIxek0xMDQgNTMuMWM2LjcgNyA5LjQgMTYuOCA3LjYgMjYuM2w0NS45IDQ4LjFjLTQuNyAzLjgtMTMuMyAxMC40LTIyLjggMjEuMy0yNS40IDI4LjUtMzkuNiA2NC44LTQwLjcgMTAyLjktLjcgMjguOSA2LjEgNTcuMiAyMCA4Mi40TDkyIDM1NS42Yy0xOS4zLTMxLjYtMjguOS02Ny43LTI3LjgtMTA0LjcgMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xTDg2LjQgMTAzLjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40IDExLjktMTEuMiAzMC42LTEwLjkgNDIuNCAxLjJ6TTQ2NC45IDhjMjYgMCA0Ny4xIDIyLjQgNDcuMSA0OC4zUzQ5MC45IDEwNCA0NjQuOSAxMDRjLTYuMyAuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjkgMzAzLjMgNjYgMzQ0LjYgODEuNiAzNzcuNyAxMDkuNWw0MS4xLTM4LjZjLTEuNS00LjctMi4yLTkuNi0yLjItMTQuNS0uMS0yNi43IDIyLjMtNDguNCA0OC4zLTQ4LjR6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkgLjQgMTYuNCAxLjEgNzguMSA5LjggMTMzLjQgODEuMSAxMjMuOCAxNTkuMS05LjggNzguMS04MS4xIDEzMy40LTE1OS4xIDEyMy44LTc4LjEtOS44LTEzMy40LTgxLjEtMTIzLjgtMTU5LjIgOS4zLTcyLjQgNzAuMS0xMjQuNiAxNDIuNy0xMjQuOHptLTU5IDExOS40Yy42IDIyLjcgMTIuMiA0MS44IDMyLjQgNTIuMmwtMTEgNTEuNyA3My43IDAtMTEtNTEuN2MyMC4xLTEwLjkgMzIuMS0yOSAzMi40LTUyLjItLjQtMzIuOC0yNS44LTU3LjUtNTguMy01OC4zLTMyLjEgLjgtNTcuMyAyNC44LTU4LjIgNTguM3oiXX0sbWt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpcmUtYS1oZWxwZXIiLGljb246WzUxMiw1MTIsW10sImYzYjAiLCJNNDQzLjEgMEw3MS45IDBDNjcuOSAzNy4zIDM3LjQgNjcuOCAwIDcxLjdMMCA0NDMuMmMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGwzNzIuMiAwYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44bDAtMzcwLjVDNDc1LjYgNjUuOCA0NDcgMzYuNCA0NDMuMSAwem0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOGwtMTExLjIgMGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhsMC0xMDEuMmMwLTIyLjItMTIuMi0yOC4zLTI4LjYtMzIuNC04LjgtMi4yLTQtMTEuOCAxLTExLjggMzYuNSAwIDIwLjYgMiA1Ny4xIDIgMzIuNyAwIDE2LjUtMiA0OS4yLTIgMy4zIDAgOC41IDguMyAxIDEwLjgtNC45IDEuNi0yNy42IDMuNy0yNy42IDM5LjMgMCA0NS42LS4yIDU1LjggMSA2OC44IDAgMS4zIDIuMyAxMi44IDEyLjggMTIuOGwxMDkuMiAwYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjRsMCAxMDEuMmMwIDgzLjQgLjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44eiJdfSxWdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFsiaGFja2VyLW5ld3Mtc3F1YXJlIl0sImYzYWYiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTIxIDIyOS4ycy4xLS4xIC4xLS4yIC4xLS4yIC4yLS4yYzAgLjEgMCAuMy0uMSAuNGwtLjIgMHpNMjM5LjIgMzg0bC0zMS40IDAgMC0xMDIuNy03OS44LTE1My4zIDM3LjMgMGM0MS41IDc3LjcgNDguMSA5NS44IDU0LjEgMTEyIDEuNiA0LjMgMy4xIDguNSA1LjIgMTMuNiAzLjItNyA1LjEtMTEuOSA3LjEtMTcuMyA1LjktMTUuMyAxMi44LTMzLjIgNTMuNS0xMDguM2wzNC44IDAtODAuOCAxNTUuMSAwIDEwMC45eiJdfSxna3Q9VnVlLGJrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZCIsIk0yNTUuNiA4QzExMi43IDggOCAxMjMuMSA4IDI1NiA4IDM5NC41IDEyMS42IDUwNCAyNTUuNiA1MDQgMzg1LjUgNTA0IDUwNCA0MDMuMSA1MDQgMjU2IDUwNCAxMTguMSAzOTcuNCA4IDI1NS42IDh6bS44IDQ1MC44Yy0xMTIuNSAwLTIwMy43LTkzLTIwMy43LTIwMi44IDAtMTA1LjQgODUuNS0yMDMuMyAyMDMuNy0yMDMuMyAxMTIuNiAwIDIwMi45IDg5LjUgMjAyLjggMjAzLjMgMCAxMjEuNy05OS42IDIwMi44LTIwMi44IDIwMi44ek0zMjQuNyAxODZsLTUzLjIgMCAwIDEzNy4yIDUzLjIgMGMyMS40IDAgNzAtNS4xIDcwLTY4LjYgMC02My40LTQ4LjYtNjguNi03MC02OC42em0uOCAxMDguNWwtMTkuOSAwIDAtNzkuNyAxOS40LS4xYzMuOCAwIDM1LTIuMSAzNSAzOS45IDAgMjQuNi0xMC41IDM5LjktMzQuNSAzOS45ek0yMTEuNyAxODZsLTY4LjIgMCAwIDEzNy4zIDM0LjYgMCAwLTQ0LjMgMjcgMGM1NC4xIDAgNTcuMS0zNy41IDU3LjEtNDYuNSAwLTMxLTE2LjgtNDYuNS01MC41LTQ2LjV6bS00LjkgNjcuM2wtMjkuMiAwIDAtNDEuNiAyOC4zIDBjMzAuOSAwIDI4LjggNDEuNiAuOSA0MS42eiJdfSx2a3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3JjaWQiLGljb246WzUxMiw1MTIsW10sImY4ZDIiLCJNMjk0LjcgMTg4LjJsLTQ1LjkgMCAwIDE1My44IDQ3LjUgMGM2Ny42IDAgODMuMS01MS4zIDgzLjEtNzYuOSAwLTQxLjYtMjYuNS03Ni45LTg0LjctNzYuOXpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xNzUuMiAzNjguOGwtMjkuOCAwIDAtMjA3LjUgMjkuOCAwIDAgMjA3LjV6TTE2MC4zIDk4LjVhMTkuNiAxOS42IDAgMSAxIDAgMzkuMiAxOS42IDE5LjYgMCAxIDEgMC0zOS4yek0zMDAgMzY5bC04MSAwIDAtMjA3LjcgODAuNiAwYzc2LjcgMCAxMTAuNCA1NC44IDExMC40IDEwMy45IDAgNTMuMy00MS43IDEwMy45LTExMCAxMDMuOXoiXX0sanVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvYXJkLWdhbWUtZ2VlayIsaWNvbjpbNjQwLDUxMixbImJnZyJdLCJlODU1IiwiTTE2OC44IDE2OC4zbDMwLjEtOC4yLTEyLjMgOTguOCAxNi43IDE2LjEtMzguOSA5MS4yLTExMS44IDQxLjItNTIuNi0xMzEuOCAxNy43LTE3LTEwLjUtODQuMyAxOTEuMi03MC4zLTI5LjUgNjQuM3ptMTgwLjYgMTYuNWMxMS42IDAgMTkgNy40IDE5IDE3LjlsMCAzMS41YzAgOS43LTYuMyAxOC45LTE5LjUgMjIuMSAxMy4xIDMuMSAyMC41IDEyIDIwLjUgMjEuNGwwIDMwLjljMCAxMS4xLTcuNCAxOC4xLTE5IDE4LjFsLTg5LjEgMCAwLTE0MS44IDg4IDB6TTI5OCAyOTkuOGwzMyAwYzEuNSAwIDIuMS0xIDIuMS0yLjFsMC0yNi45YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDMxLjN6bTAtNTcuM2wzMyAwYzEuNSAwIDIuMS0xLjEgMi4xLTIuM2wwLTI0LjhjMC0xLS42LTIuMy0yLjEtMi4zbC0zMyAwIDAgMjkuNHptMjA0LjEtMjcuMmwtNjUuNiAwYy0xIDAtMi4xIDEuMS0yLjEgMi4zbDAgNzYuMWMwIDEuMyAxIDIuMSAyLjEgMi4xbDI5LjcgMGMxLjUgMCAyLjMtLjggMi4zLTIuMWwwLTI0LTE5LjMgMCAxMi44LTMwIDQwLjEgMCAwIDcwLjhjMCA5LjItNy4yIDE2LjItMTYuMyAxNi4ybC03MS41IDBjLTkuMSAwLTE2LjUtNy0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41em0xMzIuNiAwbC02NS42IDBjLTEuMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS42IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4yIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTYuOS0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41eiJdfSx4a3Q9anVlLHlrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiZWhhbmNlIixpY29uOls1NzYsNTEyLFtdLCJmMWI0IiwiTTIzMiAyMzcuMmMzMS44LTE1LjIgNDguNC0zOC4yIDQ4LjQtNzQgMC03MC42LTUyLjYtODcuOC0xMTMuMy04Ny44bC0xNjcuMSAwIDAgMzU0LjQgMTcxLjggMGM2NC40IDAgMTI0LjktMzAuOSAxMjQuOS0xMDIuOSAwLTQ0LjUtMjEuMS03Ny40LTY0LjctODkuN3pNNzcuOSAxMzUuOWw3My4xIDBjMjguMSAwIDUzLjQgNy45IDUzLjQgNDAuNSAwIDMwLjEtMTkuNyA0Mi4yLTQ3LjUgNDIuMmwtNzkgMCAwLTgyLjd6bTgzLjMgMjMzLjdsLTgzLjMgMCAwLTk3LjYgODQuOSAwYzM0LjMgMCA1NiAxNC4zIDU2IDUwLjYgMCAzNS44LTI1LjkgNDctNTcuNiA0N3pNNTE5LjcgMTI4LjlsLTE0My43IDAgMC0zNC45IDE0My43IDAgMCAzNC45ek01NzYgMzA1LjJjMC03NS45LTQ0LjQtMTM5LjItMTI0LjktMTM5LjItNzguMiAwLTEzMS4zIDU4LjgtMTMxLjMgMTM1LjggMCA3OS45IDUwLjMgMTM0LjcgMTMxLjMgMTM0LjcgNjEuMyAwIDEwMS0yNy42IDEyMC4xLTg2LjNsLTYyLjIgMGMtNi43IDIxLjktMzQuMyAzMy41LTU1LjcgMzMuNS00MS4zIDAtNjMtMjQuMi02My02NS4zbDE4NS4xIDBjLjMtNC4yIC42LTguNyAuNi0xMy4yek0zOTAuNCAyNzRjMi4zLTMzLjcgMjQuNy01NC44IDU4LjUtNTQuOCAzNS40IDAgNTMuMiAyMC44IDU2LjIgNTQuOGwtMTE0LjcgMHoiXX0sd2t0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1vbmVybyIsaWNvbjpbNTEyLDUxMixbXSwiZjNkMCIsIk0zNjAgMzg0bDEwOC40IDBDNDI1IDQ1NS45IDM0Ni4xIDUwNCAyNTYgNTA0Uzg3IDQ1NS45IDQzLjYgMzg0bDEwOC40IDAgMC0xMjcuOCAxMDQgMTA0LjggMTA0LTEwNSAwIDEyOHpNOTYgMzM2bDAtMjA4IDE1OS40IDE1OS40IDE2MC42LTE1OS40IDAgMjA4IDc0LjggMGM4LjUtMjUuMSAxMy4yLTUyIDEzLjItODAgMC0xMzctMTExLTI0OC0yNDgtMjQ4UzggMTE5IDggMjU2YzAgMjggNC42IDU0LjkgMTMuMiA4MEw5NiAzMzZ6Il19LE1rdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaWdtYSIsaWNvbjpbMzg0LDUxMixbXSwiZjc5OSIsIk0xNCA5NS44QzE0IDQyLjkgNTYuOSAwIDEwOS44IDBMMjc0LjIgMGM1Mi45IDAgOTUuOCA0Mi45IDk1LjggOTUuOCAwIDMzLjUtMTcuMiA2My00My4yIDgwLjEgMjYgMTcuMSA0My4yIDQ2LjYgNDMuMiA4MC4xIDAgNTIuOS00Mi45IDk1LjgtOTUuOCA5NS44bC0yLjEgMGMtMjQuOCAwLTQ3LjQtOS40LTY0LjQtMjQuOWwwIDg4LjNjMCA1My42LTQ0IDk2LjgtOTcuNCA5Ni44LTUyLjggMC05Ni4zLTQyLjgtOTYuMy05NS44IDAtMzMuNSAxNy4yLTYzIDQzLjItODAuMS0yNi0xNy4xLTQzLjItNDYuNi00My4yLTgwLjFzMTcuMi02MyA0My4yLTgwLjFDMzEuMiAxNTguOCAxNCAxMjkuMyAxNCA5NS44em0xNjIuMyA5NS44bC02Ni41IDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40IDAgMzUuNCAyOC42IDY0LjIgNjQgNjQuNGw2Ni45IDAgMC0xMjguOHpNMjA3LjcgMjU2YzAgMzUuNiAyOC44IDY0LjQgNjQuNCA2NC40bDIuMSAwYzM1LjYgMCA2NC40LTI4LjggNjQuNC02NC40cy0yOC44LTY0LjQtNjQuNC02NC40bC0yLjEgMGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjR6bS05Ny45IDk1LjhsLS40IDBjLTM1LjQgLjItNjQgMjktNjQgNjQuNHMyOS4yIDY0LjQgNjQuOSA2NC40YzM2LjMgMCA2Ni0yOS40IDY2LTY1LjVsMC02My40LTY2LjUgMHptMC0zMjAuNGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjRzMjguOCA2NC40IDY0LjQgNjQuNGw2Ni41IDAgMC0xMjguOC02Ni41IDB6bTk3LjkgMTI4LjhsNjYuNSAwYzM1LjYgMCA2NC40LTI4LjggNjQuNC02NC40cy0yOC44LTY0LjQtNjQuNC02NC40bC02Ni41IDAgMCAxMjguOHoiXX0sZmVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE2ZCIsIk0yMjQuMyAxNDFhMTE1IDExNSAwIDEgMCAtLjYgMjMwIDExNSAxMTUgMCAxIDAgLjYtMjMwem0tLjYgNDAuNGE3NC42IDc0LjYgMCAxIDEgLjYgMTQ5LjIgNzQuNiA3NC42IDAgMSAxIC0uNi0xNDkuMnptOTMuNC00NS4xYTI2LjggMjYuOCAwIDEgMSA1My42IDAgMjYuOCAyNi44IDAgMSAxIC01My42IDB6bTEyOS43IDI3LjJjLTEuNy0zNS45LTkuOS02Ny43LTM2LjItOTMuOS0yNi4yLTI2LjItNTgtMzQuNC05My45LTM2LjItMzctMi4xLTE0Ny45LTIuMS0xODQuOSAwLTM1LjggMS43LTY3LjYgOS45LTkzLjkgMzYuMXMtMzQuNCA1OC0zNi4yIDkzLjljLTIuMSAzNy0yLjEgMTQ3LjkgMCAxODQuOSAxLjcgMzUuOSA5LjkgNjcuNyAzNi4yIDkzLjlzNTggMzQuNCA5My45IDM2LjJjMzcgMi4xIDE0Ny45IDIuMSAxODQuOSAwIDM1LjktMS43IDY3LjctOS45IDkzLjktMzYuMiAyNi4yLTI2LjIgMzQuNC01OCAzNi4yLTkzLjkgMi4xLTM3IDIuMS0xNDcuOCAwLTE4NC44ek0zOTkgMzg4Yy03LjggMTkuNi0yMi45IDM0LjctNDIuNiA0Mi42LTI5LjUgMTEuNy05OS41IDktMTMyLjEgOXMtMTAyLjcgMi42LTEzMi4xLTljLTE5LjYtNy44LTM0LjctMjIuOS00Mi42LTQyLjYtMTEuNy0yOS41LTktOTkuNS05LTEzMi4xcy0yLjYtMTAyLjcgOS0xMzIuMWM3LjgtMTkuNiAyMi45LTM0LjcgNDIuNi00Mi42IDI5LjUtMTEuNyA5OS41LTkgMTMyLjEtOXMxMDIuNy0yLjYgMTMyLjEgOWMxOS42IDcuOCAzNC43IDIyLjkgNDIuNiA0Mi42IDExLjcgMjkuNSA5IDk5LjUgOSAxMzIuMXMyLjcgMTAyLjctOSAxMzIuMXoiXX0sa2t0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmJ5dGUiLGljb246WzQ0OCw1MTIsW10sImUwODMiLCJNMzA1LjMgMjg0LjZsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0xNDkuNCAxMjguN2wtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6TTM2Ni42IDMyTDgxLjQgMzJjLTIxLjYgMC00Mi4yIDguNi01Ny41IDIzLjlTMCA5MS44IDAgMTEzLjRMMCAzOTguNmMwIDIxLjYgOC42IDQyLjIgMjMuOSA1Ny41UzU5LjggNDgwIDgxLjQgNDgwbDI4NS4zIDBjMjEuNiAwIDQyLjItOC42IDU3LjUtMjMuOVM0NDggNDIwLjIgNDQ4IDM5OC42bDAtMjg1LjNjMC0yMS42LTguNi00Mi4yLTIzLjktNTcuNVMzODguMiAzMiAzNjYuNiAzMnptNjMuNiAzNjYuNmMwIDE2LjktNi43IDMzLTE4LjcgNDVzLTI4LjEgMTguNi00NSAxOC43bC0yODUuMyAwYy0xNi45IDAtMzMtNi43LTQ1LTE4LjdzLTE4LjYtMjguMS0xOC43LTQ1bDAtMjg1LjNjMC0xNi45IDYuNy0zMyAxOC43LTQ1czI4LjEtMTguNiA0NS0xOC43bDI4NS4zIDBjMTYuOSAwIDMzIDYuNyA0NSAxOC43czE4LjYgMjguMSAxOC43IDQ1bDAgMjg1LjN6bS0xMjUtMjY5LjlsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41eiJdfSxVdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpbWVvIixpY29uOls0NDgsNTEyLFsidmltZW8tc3F1YXJlIl0sImYxOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMxOC41IDMwOS41Yy00My41IDU2LjUtODAuMyA4NC44LTExMC40IDg0LjgtMTguNyAwLTM0LjQtMTcuMi00Ny4zLTUxLjYtMy44LTEzLjktNy4zLTI2LjktMTAuNS0zOS0xOC4yLTY4LjMtMjguNi0xMDcuNC00Ni4yLTEwNy40LTIuNCAwLTEwLjggNS0yNS4xIDE1LjFMNjQgMTkyYzctNi4xIDEzLjktMTIuNCAyMC42LTE4LjUgMjkuMS0yNi4zIDU1LjYtNTAuMyA3My41LTUxLjkgMjQuOS0yLjQgNDAuMiAxNC42IDQ2IDUxLjEgMjAuNSAxMjkuNiAyOS42IDE0OS4yIDY2LjggOTAuNSAxMy40LTIxLjIgMjAuNi0zNy4yIDIxLjUtNDguMyAzLjQtMzIuOC0yNS42LTMwLjYtNDUuMi0yMi4yIDE1LjctNTEuNSA0NS44LTc2LjUgOTAuMS03NS4xIDMyLjkgMSA0OC40IDIyLjQgNDYuNSA2NC0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOXoiXX0sU2t0PVV1ZSx6a3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHVzaGVkIixpY29uOls0NDgsNTEyLFtdLCJmM2UxIiwiTTQxNS4xIDExMS45bC05OC41LTkgMTQtMzMuNGMxMC40LTIzLjUtMTAuOC00MC40LTI4LjctMzdMMzAuNiA3Ni45Yy0xNS4xIDIuNy0yNiAxOC4zLTIxLjQgMzYuNkwxMTQuMyA0NjEuOGM2LjUgMjEuMyAzNi43IDI0LjIgNDcuNyA3TDE5Ny4zIDM4OCA0MzIuNSAxNTYuN2MxNi40LTE2LjggNC4zLTQyLjktMTcuNC00NC44ek0zMDUuNyA1My42YzUuMS0uNyA3LjUgMi41IDUuMiA3LjRsLTE2LjggMzkuOS0xNzcuNC0xNi4zIDE4OS0zMXpNMzAuOCAxMDcuOWMtMy4xLTUuMSAxLTEwIDYuMS05LjFsMjQ4LjcgMjIuNy05Ni45IDIzMC43LTE1Ny45LTI0NC4zek0xNDQuMSA0NTYuNGMtMi42IDQtNy45IDMuMS05LjQtMS4yTDUxLjYgMTc5LjcgMTc5LjMgMzc3LjNjLTcgMTUtMzUuMiA3OS4xLTM1LjIgNzkuMXpNNDE2LjkgMTQxLjlsLTE5OC43IDE5NS40IDg5LjctMjEzLjcgMTA2LjQgOS43YzQgMS4xIDUuNyA1LjMgMi42IDguNnoiXX0sQ2t0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peGNsb3VkIixpY29uOls2NDAsNTEyLFtdLCJmMjg5IiwiTTIxMyAzNDYuNmwtMzMuMiAwIDAtMTUxLjUgNi4yLTIxLjYtMTAuNyAwLTM4LjEgMTczLjEtNjEgMC0zOC40LTE3My4xLTEwLjUgMCA1LjkgMjEuNiAwIDE1MS41LTMzLjIgMCAwLTE4MS42IDY1LjcgMCAzNi42IDE3My4xIDguNSAwIDM2LjYtMTczLjEgNjUuNyAwIDAgMTgxLjZ6bTMzMS41LTYzbC04NiA2Mi4xIDAtMzguMSA3Mi45LTUxLjgtNzIuOS01MS44IDAtMzguMSA4NiA2Mi4zIDkuMyAwIDg2LjMtNjIuMyAwIDM4LjEtNzMuMSA1MS44IDczLjEgNTEuOCAwIDM4LjEtODYuMy02Mi4xLTkuMyAwek00MzAuMiAyNzIuM2wtMTgyIDAgMC0zMy4xIDE4MiAwIDAgMzMuMXoiXX0sX2t0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleC1pbnRlcm5hdGlvbmFsIixpY29uOlszMjAsNTEyLFtdLCJmNDE0IiwiTTEyOS41IDUxMmwwLTE2Ni4xLTExMS0yOTcuOSA1NS44IDAgODEuOCAyMjkuNyA5NC4xLTI3Ny43IDUxLjMgMC0xMjAuNyAzNDcuOCAwIDE2NC4yLTUxLjMgMHoiXX0sVGt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpdmUiLGljb246WzUxMiw1MTIsW10sImUwN2YiLCJNMjYwLjQgMjU0LjlMMTMxLjUgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uMy0uOCAuMS0xLjEgLjMtLjYgLjUtLjggLjhMLjMgMjU0LjljLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjFMMTI5LjEgNDc4LjljLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zIC44LS4xIDEuMS0uMyAuNi0uNSAuOC0uOEwyNjAuNCAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXptMzkuMS0yNS43Yy4yIC4zIC41IC42IC44IC44cy43IC4zIDEuMSAuM2w2Ni41IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjggLjMtLjcgLjMtMS4xLS4xLS44LS4zLTEuMUwyNTkuMSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zbC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOC0uMyAuNy0uMyAxLjEgLjEgLjggLjMgMS4xTDI5OS40IDIyOS4yem0yMTIuMyAyNS43TDM4NC45IDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjYgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMNDQwLjcgMjU2IDMxNC41IDQ3Ni43Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xIC41IC42IC44IC44IC43IC4zIDEuMSAuM2w2Ni42IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjhMNTExLjcgMjU3LjFjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjF6TTM2NiAyODQuOWwtNjYuNSAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjhMMTg4LjggNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEwzNjcuOSAyODguM2MuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMS0uNS0uNi0uOC0uOC0uNy0uMy0xLjEtLjN6Il19LExrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXplcm8iLGljb246WzUxMiw1MTIsW10sImY0ZjMiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0tLjQgNjAuNWMtODEuOSAwLTEwMi41IDc3LjMtMTAyLjUgMTQyLjhTMTc0LjEgMzk4LjggMjU2IDM5OC44IDM1OC41IDMyMS41IDM1OC41IDI1NiAzMzcuOSAxMTMuMiAyNTYgMTEzLjJ6bTAgNTMuOWMzLjMgMCA2LjQgLjUgOS4yIDEuMiA1LjkgNS4xIDguOCAxMi4xIDMuMSAyMS45TDIxMy44IDI5MC40Yy0xLjctMTIuNy0xLjktMjUuMS0xLjktMzQuNCAwLTI4LjggMi04OC45IDQ0LjEtODguOXptNDAuOCA0Ni4yYzIuOSAxNS40IDMuMyAzMS40IDMuMyA0Mi43IDAgMjguOS0yIDg4LjktNDQuMSA4OC45LTEzLjUgMC0zMi42LTcuNy0yMC4xLTI2LjRsNjAuOS0xMDUuMnoiXX0sV3VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1zbmFwY2hhdCIsaWNvbjpbNDQ4LDUxMixbInNuYXBjaGF0LXNxdWFyZSJdLCJmMmFkIiwiTTM4NCAzMkw2NCAzMmMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdTMCA3OSAwIDk2TDAgNDE2YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zUzQ3IDQ4MCA2NCA0ODBsMzIwIDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdTNDQ4IDQzMyA0NDggNDE2bDAtMzIwYzAtMTctNi43LTMzLjMtMTguNy00NS4zUzQwMSAzMiAzODQgMzJ6bS0zLjkgMzE5LjNsLS4xIC4xYy0yLjUgMi44LTUuNCA1LjEtOC43IDYuOC02LjUgMy42LTEzLjQgNi4zLTIwLjYgOC4yLTEuNCAuNC0yLjcgMS0zLjkgMS44LTIuMiAxLjktMi4xIDQuNi00LjQgOC42LTEuNyAzLTQgNS41LTYuOCA3LjUtNi43IDQuNi0xNC4yIDQuOS0yMi4yIDUuMi03LjIgLjMtMTUuNCAuNi0yNC43IDMuNy0zLjggMS4yLTcuOCAzLjctMTIuNCA2LjUtMTEuMyA2LjktMjYuNyAxNi40LTUyLjMgMTYuNHMtNDAuOS05LjQtNTIuMS0xNi4zYy00LjctMi45LTguNy01LjQtMTIuNS02LjYtOS4zLTMuMS0xNy41LTMuNC0yNC43LTMuNy04LS4zLTE1LjUtLjYtMjIuMi01LjItMi40LTEuNi00LjQtMy43LTYtNi4xLTMuMi00LjYtMi45LTcuOC01LjMtOS45LTEuMy0uOC0yLjYtMS41LTQuMS0xLjgtNy4xLTEuOS0xMy45LTQuNi0yMC4zLTguMS0zLjEtMS42LTUuOS0zLjgtOC4zLTYuMy02LjYtNi44LTguMy0xNC44LTUuNy0yMS44IDMuNC05LjMgMTEuNi0xMi4xIDE5LjQtMTYuMyAxNC44LTggMjYuMy0xOC4xIDM0LjQtMjkuOSAyLjMtMy4zIDQuMy02LjkgNi0xMC42IC44LTIuMiAuOC0zLjMgLjItNC40LS42LS45LTEuMy0xLjYtMi4yLTIuMi0yLjUtMS43LTUuMS0zLjQtNi45LTQuNS0zLjMtMi4xLTUuOS0zLjgtNy41LTUtNi4zLTQuNC0xMC42LTktMTMuNC0xNC4yLTEuOS0zLjYtMy03LjYtMy4zLTExLjZzLjQtOC4xIDEuOS0xMS45YzQuMS0xMC45IDE0LjUtMTcuNyAyNy0xNy43IDIuNiAwIDUuMyAuMyA3LjggLjggLjcgLjIgMS40IC4zIDIgLjUtLjEtNy40IC4xLTE1LjQgLjctMjMuMSAyLjQtMjcuMyAxMS45LTQxLjYgMjEuOS01MyA2LjQtNy4yIDEzLjktMTMuMiAyMi4zLTE3LjkgMTUuMS04LjYgMzIuMi0xMyA1MC45LTEzczM1LjggNC40IDUwLjkgMTNjOC4zIDQuNyAxNS45IDEwLjggMjIuMiAxNy45IDEwIDExLjQgMTkuNSAyNS43IDIxLjkgNTMgLjYgNy43IC45IDE1LjQgLjcgMjMuMSAuNy0uMiAxLjQtLjMgMi4xLS41IDIuNi0uNiA1LjItLjggNy44LS44IDEyLjUgMCAyMi44IDYuOCAyNyAxNy43IDEuNSAzLjggMi4xIDcuOSAxLjkgMTEuOXMtMS40IDgtMy4zIDExLjZjLTIuNyA1LjItNy4xIDkuOS0xMy40IDE0LjItMS43IDEuMi00LjMgMi45LTcuNSA1LTEuOCAxLjItNC41IDIuOS03LjIgNC43LS44IC41LTEuNCAxLjItMS45IDItLjUgMS0uNSAyLjIgLjIgNC4yIDEuNyAzLjggMy43IDcuNCA2LjEgMTAuOCA4LjMgMTIuMSAyMC4yIDIyLjMgMzUuNSAzMC40IDEuNSAuOCAzIDEuNSA0LjQgMi4zIC43IC4zIDEuNiAuOCAyLjUgMS4zIDQuOSAyLjcgOS4yIDYgMTEuNSAxMi4yIDIuNSA2LjkgMSAxNC43LTUuMiAyMS4zem0tMTYuNy0xOC41Yy01MC4zLTI0LjMtNTguMy02MS45LTU4LjctNjQuNy0uNC0zLjQtLjktNiAyLjgtOS41IDMuNi0zLjMgMTkuNS0xMy4yIDI0LTE2LjMgNy4zLTUuMSAxMC41LTEwLjIgOC4yLTE2LjUtMS43LTQuMy01LjctNi0xMC02LTEuMyAwLTIuNyAuMi00IC40LTggMS43LTE1LjggNS44LTIwLjQgNi45LS41IC4xLTEuMSAuMi0xLjcgLjItMi40IDAtMy4zLTEuMS0zLjEtNCAuNi04LjggMS44LTI1LjkgLjQtNDEuOS0xLjktMjItOS0zMi45LTE3LjQtNDIuNi00LjEtNC42LTIzLjEtMjQuNy01OS41LTI0LjdzLTU1LjQgMjAuMS01OS41IDI0LjhjLTguNCA5LjctMTUuNSAyMC42LTE3LjQgNDIuNi0xLjQgMTYtLjEgMzMuMSAuNCA0MS45IC4yIDIuOC0uNyA0LTMuMSA0LS42IDAtMS4xLS4xLTEuNy0uMi00LjUtMS4xLTEyLjMtNS4xLTIwLjMtNi45LTEuMy0uMy0yLjYtLjQtNC0uNC00LjMgMC04LjMgMS42LTEwIDYtMi40IDYuMyAuOCAxMS40IDguMiAxNi41IDQuNCAzLjEgMjAuNCAxMyAyNCAxNi4zIDMuNyAzLjQgMy4yIDYuMSAyLjggOS41LS40IDIuOC04LjQgNDAuNC01OC43IDY0LjctMi45IDEuNC04IDQuNCAuOSA5LjMgMTMuOSA3LjYgMjMuMSA2LjggMzAuMyAxMS40IDYuMSAzLjkgMi41IDEyLjQgNi45IDE1LjQgNS41IDMuOCAyMS42LS4zIDQyLjMgNi42IDE3LjQgNS43IDI4LjEgMjIgNTkgMjJzNDEuOC0xNi4zIDU4LjktMjJjMjAuOC02LjkgMzYuOS0yLjggNDIuMy02LjYgNC40LTMuMSAuOC0xMS41IDYuOS0xNS40IDcuMi00LjYgMTYuNC0zLjggMzAuMy0xMS41IDguOC00LjkgMy44LTcuOSAuOS05LjR6Il19LCRrdD1XdWUsRGt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1laXNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMiIsIk0yMDggODguM2MwLTEwIDYuMy0yMS43IDE3LjctMjEuNyAxMS4xIDAgMTcuNyAxMS43IDE3LjcgMjEuNyAwIDEwLjMtNi42IDIxLjctMTcuNyAyMS43LTExLjQgMC0xNy43LTExLjQtMTcuNy0yMS43em0zMDQgMTYwYzAgMzYtMTEuNCAxMDIuMy0zNi4zIDEyOS43LTIyLjkgMjQuOS04Ny40IDYxLjEtMTIwLjkgNzAuNmwtMS4xIC4zIDAgMzIuNmMwIDE2LjMtMTIuNiAzMC42LTI5LjEgMzAuNi0xMCAwLTE5LjQtNS43LTI0LjYtMTQuMy01LjQgOC42LTE0LjkgMTQuMy0yNC45IDE0LjNzLTE5LjQtNS43LTI0LjktMTQuM2MtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTEwLjMgMC0xOS40LTUuNy0yNC45LTE0LjMtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTE4LjkgMC0yOS40LTE1LjctMjkuNC0zMi45LTE2LjMgMTIuMy0zNS43IDE5LjQtNTYuNiAxOS40LTIyIDAtNDMuNC04LjMtNjAuMy0yMi45IDEwLjMtLjMgMjAuNi0yLjMgMzAuMy01LjctMjAuOS01LjctMzkuNC0xOC45LTUyLTM2LjMgMjEuNCA0LjYgNDYuMiAxLjcgNjcuMS0xMS4xLTIyLTIyLTU2LjYtNTguOS02OC42LTg3LjQtNS43LTEzLjQtNi45LTMxLjQtNi45LTQ1LjcgMC00OS43IDIwLjMtMTYwIDg2LjMtMTYwIDEwLjYgMCAxOC45IDQuOSAyMy4xIDE0LjkgMy43LTUuNCA3LjctMTAuNSAxMi0xNS40IDItMi42IDUuNy01LjQgNy4xLTguMyA4LTEyLjYgMTEuNy0yMS4xIDIxLjctMzQgMzIuMy00MS4xIDgxLjctNjkuNCAxMzQuOS02OS40IDYgMCAxMiAuMyAxNy43IDEuMSAxMC45LTExLjcgMjYtMTguMyA0MS43LTE4LjMgMTQuNiAwIDI5LjcgNiA0MCAxNi4zIC45IC45IDEuNCAyLjMgMS40IDMuNCAwIDMuNy0xMC4zIDEzLjQtMTIuOSAxNi4zIDQuMyAxLjQgMTUuNyA2LjkgMTUuNyAxMiAwIDIuOS0yLjkgNS4xLTQuNiA3LjEgMzEuNCAyNy43IDQ5LjQgNjcuMSA1Ni4zIDEwOCA0LjMtNS4xIDEwLjMtOC42IDE3LjEtOC42IDEwLjYgMCAyMC45IDcuMSAyOC42IDE0IDIwLjkgMTguNiAyNS43IDUzLjEgMjUuNyA3OS43ek0xODggODkuNGMwIDE4LjMgMTIuNiAzNy4xIDMyLjMgMzcuMXMzMi4zLTE4LjkgMzIuMy0zNy4xYzAtMTgtMTIuNi0zNi45LTMyLjMtMzYuOVMxODggNzEuNCAxODggODkuNHpNMjM3LjcgMTk0YzAtMTkuNyAzLjctMzkuMSA4LjYtNTguMy01MiA3OS41LTEzLjUgMTg0LjYgNjguOSAxODQuNiAyMS40IDAgNDIuNi03LjcgNjAtMjAgMi03LjQgMy43LTE0LjkgMy43LTIyLjYgMC0xNC4zLTYuMy0yMS40LTIwLjYtMjEuNC00LjYgMC05LjEgLjktMTMuNCAxLjctNjMuMyAxMi43LTEwNy4xIDMuNy0xMDcuMS02NHpNMTk2LjYgNDQ4LjljMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAgOS43LTIwIDIwLjlsMCAzMi42YzAgMTEuMSA4LjYgMjEuMSAyMCAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjEgMGMwLTExLjEtOC42LTIwLjktMjAtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLTEwIDIwLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy0xMCAyMC4zLTIxLjFsMC0zMi42ek00MjEuNyAyODZjLTMwLjkgNTkuMS05MC4zIDEwMi42LTE1OC42IDEwMi42LTk2LjYgMC0xNjAuNi04NC42LTE2MC42LTE3Ni42IDAtMTYuOSAyLTMzLjQgNi00OS43LTIwIDMzLjctMjkuNyA3Mi42LTI5LjcgMTExLjQgMCA2MC4zIDI0LjkgMTIxLjcgNzEuNCAxNjAuOSA1LjEtOS43IDE0LjktMTYuMyAyNi0xNi4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuNi0xNC4zIDI0LjktMTQuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjktMTQuMyAyNC45LTE0LjNzMTkuNCA1LjcgMjQuOSAxNC4zYzUuMS04LjYgMTQuNi0xNC4zIDI0LjYtMTQuMyAxMC45IDAgMjAuOSA2LjYgMjUuNyAxNiA0My40LTM2LjMgNjguNi05MiA3MS40LTE0OC4zem0xMC42LTk5LjdjMC01My43LTM0LjYtMTA1LjctOTIuNi0xMDUuNy0zMC4zIDAtNTguNiAxNS4xLTc4LjkgMzYuOS0yMCA2Ni40LTI3LjQgMTM2LjYgNDEuNCAxMzYuNiAyOC44IDAgOTcuNC0yOC41IDg0LjMgMzYuOSAyOC45LTI2IDQ1LjctNjUuNyA0NS43LTEwNC42eiJdfSxBa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFydC1sYW5nIixpY29uOls1MTIsNTEyLFtdLCJlNjkzIiwiTTM3OC42IDc4LjljLTIuOC0uMS01LjYtLjItOC41LS4ybC0yNjQuMSAwIDE0My4yLTcyYzcuNC00LjQgMTguOC02LjcgMzAuNC02LjcgMTMuNSAwIDI5LjQgOS4yIDM3IDE2LjhsNjIgNjIgMCAuMXpNMTA3LjMgOTYuNWwyNjIuOCAwYzE2IDAgMjUuNCAxLjQgMzUuNCA5LjNsMTA2LjUgMTA2LjQgMCAyMDguOC03OS4zIC43LTMyNS40LTMyNS4yek05Ni41IDM3M2wwLTI2Mi4yIDMyMy44IDMyMy44IC43IDc3LjQtMjEyLjIgMC05OC4xLTk4LjJDOTkuNCA0MDIuNSA5Ni41IDM5OC41IDk2LjUgMzczek03OC43IDEwNS4zbDAgMjY3LjdjMCAzLjMgLjEgNi4zIC4yIDkuMWwtNjItNjJDNi41IDMwOS4zIDAgMjk0LjMgMCAyNzkuNiAwIDI3Mi44IDMuOSAyNjIuMSA2LjcgMjU2bDcyLTE1MC43eiJdfSxQa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVwbG95ZG9nIixpY29uOls1MTIsNTEyLFtdLCJmMzhlIiwiTTM4Mi4yIDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTMxNy41IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTE4OC41IDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTEyMy44IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTQ0OCA5NmMxNy41IDAgMzIgMTQuNCAzMiAzMmwwIDI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkw2NCA0MTZjLTE3LjUgMC0zMi0xNC40LTMyLTMybDAtMjU2YzAtMTcuNSAxNC40LTMyIDMyLTMybDM4NCAwem0wLTMyTDY0IDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4TDAgMzg0YzAgMzUuMiAyOC44IDY0IDY0IDY0bDM4NCAwYzM1LjIgMCA2NC0yOC44IDY0LTY0bDAtMjU2YzAtMzUuMi0yOC44LTY0LTY0LTY0eiJdfSxFa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpcGJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDRkIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM1OC40IDIxMS4ybC04OS42IDAgMCA4OS42LTg5LjYgMCAwIDg5LjYtODkuNiAwIDAtMjY4LjggMjY4LjggMCAwIDg5LjZ6Il19LElrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXktbi1sYXJnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjhhNiIsIk0yODguMiAzMkMxMzMuNSAzMiA4IDEzMi4zIDggMjU2UzEzMy41IDQ4MCAyODguMiA0ODAgNTY4LjQgMzc5LjcgNTY4LjQgMjU2IDQ0Mi45IDMyIDI4OC4yIDMyek0yMDIuOCAzODkuMmwtMTM4LjUgMS40IDc3LjItMjkwLjcgMTMzLjQgMGM2My4yIDAgODQuOSAyOC42IDc4IDcyLjgtLjQgMi4zLS45IDQuNi0xLjUgNi45LTUuNi0xLjMtMTEuNC0xLjktMTcuMi0xLjktNDIuMyAwLTc2LjcgMzMuOS03Ni43IDc1LjcgMCAzNy4xIDI3LjEgNjggNjIuOSA3NC41LTE4LjIgMzcuMi01Ni4yIDYwLjktMTE3LjcgNjEuNXpNMzU4LjIgMjA3LjFsMzIgMC0yMi4yIDkwLjMtMzUuNCAwLTExLjItMzUuNi03LjggMzUuNi0zNy44IDAgMjYuNi05MC4zIDMxLjMgMCAxNSAzNi44IDkuNC0zNi44ek01MDQuMSAzODkuMmwtMTk3LjEgMCAxNS44LTYxLjJjMy44IC42IDcuNiAuOCAxMS41IC44IDQyLjMgMCA3Ni43LTMzLjkgNzYuNy03NS42IDAtMzIuNi0yMS02MC41LTUwLjQtNzEuMWwyMS4zLTgyLjQgOTIuNSAwLTUzIDIwNS40IDEwMy45IDAtMjEuMiA4NC4xek0yMTEuOSAyNjkuNGwtMjQuNyAwLTEzLjggNTYuNSAyNC43IDBjMTYuMSAwIDMyLjEtMy4yIDM3LjktMjYuNiA1LjYtMjIuMy04LTI5LjgtMjQuMS0yOS44ek0yMzMuMiAxNzBsLTIxLjMgMC0xMS43IDQ3LjcgMjEuNCAwYzE4IDAgMzUuNC0xNC42IDM5LjItMzAuMSA0LjYtMTguOS05LjUtMTcuNi0yNy42LTE3LjZ6Il19LE5rdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXRjaG1hbi1tb25pdG9yaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMDg3IiwiTTI1NiAxNmEyNDAgMjQwIDAgMSAwIDAgNDgwIDI0MCAyNDAgMCAxIDAgMC00ODB6TTEyMS43IDQyOS4xYy01MS42LTQwLjItODQuOS0xMDIuOC04NC45LTE3My4xIDAtMjEuNyAzLjItNDMuMyA5LjYtNjQuMWwxMDIuOS0xNy45LS4xIDExLTEzLjkgMnMtLjEgMTIuNS0uMSAxOS41YzAgMiAuNCA0IDEuMiA1LjhzMi4xIDMuNCAzLjcgNC42bDkuNSA3LjQtMjcuNyAyMDQuOXpNMjI3LjQgMTQ1LjlsOC41LTcuNnM2LjktNS40LS4xLTkuM2MtNy4yLTQtMzkuNS0zNC41LTM5LjUtMzQuNS01LjMtNS41LTguMy03LjMtMTUuNSAwIDAgMC0zMi4zIDMwLjUtMzkuNSAzNC41LTcuMSA0LS4xIDkuMy0uMSA5LjNsOC41IDcuNiAwIDQuNC03My41LTE5LjJjMzkuNi01Ni45IDEwNS41LTk0LjMgMTgwLTk0LjMgMzEuMyAwIDYyLjIgNi43IDkwLjYgMTkuNnM1My44IDMxLjggNzQuMyA1NS40bC0xOTMuNSAzNy43IDAtMy42em0zNC4xIDMyOS4zbC0zMy45LTI1MC45IDkuNS03LjRjMS42LTEuMiAyLjgtMi44IDMuNy00LjZzMS4zLTMuOCAxLjItNS44YzAtNy0uMS0xOS41LS4xLTE5LjVsLTEzLjktMi0uMS0xMC41IDI0MS43IDMxLjRjMy45IDE2LjQgNS44IDMzLjMgNS44IDUwLjEgMCAxMTkuMS05NS40IDIxNi4yLTIxMy44IDIxOS4xeiJdfSxSa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGlwcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1MiIsIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGwtNDAuOSAwYy0xLjYgMC0yLjcgMS40LTIuNyAyLjhsMCAyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMjAxLjh6TTE1Ni41IDE2OGMtMTYuMS0xMS44LTM2LjMtMTcuOS02MC4zLTE4LTE4LjEtLjEtMzQuNiAzLjctNDkuOCAxMS40bDAtODEuMmMwLTEuOC0uOS0yLjctMi44LTIuN2wtNDAuOSAwQy45IDc3LjUgMCA3OC40IDAgODAuMkwwIDM1OS40YzAgMS45IC45IDIuOCAyLjcgMi44bDQxIDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0xMzYuMWMwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN2wwIDEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNsMjcuMyAwYzEuOCAwIDIuNy0uOSAyLjctMi44bDAtMTM2LjFjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6TTYzNC45IDI3OC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40bDAtNDQuN2MwLTEuMy0uNi0yLjEtMS45LTIuNi0xNy43LTYuNi0zNi4xLTkuOS01NS4xLTkuOS0yNi41IDAtNDUuMyA1LjgtNTguNSAxNS40LS41IC40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZMNTgwLjQgMjg2YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQgLjItNC40IDIuM2wwIDM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMgLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41bDAgMTgzLjVjMCAuOCAuNiAyLjcgMi43IDIuN2w0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjdsMC04OC44YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43IC4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCA0Ni42YTYyLjIgNjIuMiAwIDEgMSAwIDEyNC4zIDYyLjIgNjIuMiAwIDEgMSAwLTEyNC4zek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXoiXX0sT2t0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkdmVyc2lmeSIsaWNvbjpbNjQwLDUxMixbXSwiZjM4NSIsIk0xNjAuNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41bDAgMjAuNGMwIDEwLjctOC43IDE5LjUtMTkuNSAxOS41bC0yMC4yIDBjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43bDAtNi42LTQ2LjggMGMtMy44IDAtMTAuOCA0LjMtMTAuOCAxMS45bDAgNDAuNGMwIDYuNCA1LjMgMTEuOCAxMS43IDExLjhsNDguOSAwIDAtLjF6TTM4OCAzMTJjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44LTEwNy4yIDMzLjgtMTcxLjYtNTAuOC0xMzUuMy0xMTAuOC0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjkgMzAuNi0xNS44IDEwMy41LTguNSAxMzMuNiA0MC44LTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTE0MCAyMDhsLTM5LjggMGMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ybDAtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJsMzkuOCAwYzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMmwwIDM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0yMi4xIDE2OGMtNS42IDAtMTAuMS00LjUtMTAuMS0xMC4xbDAtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFsMjcuNyAwYzUuNSAwIDEwLjEgNC41IDEwLjEgMTAuMWwwIDI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xbC0yNy43IDB6TTE4MCAxNDIuN2wwLTIxLjRjMC01LjEgNC4yLTkuMyA5LjMtOS4zbDIxLjQgMGM1LjEgMCA5LjMgNC4yIDkuMyA5LjNsMCAyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2wtMjEuNCAwYy01LjEgMC05LjMtNC4yLTkuMy05LjN6TTY4IDIzNS41bDAgMjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41bC0yNS4yIDBjLTYuMyAwLTExLjQtNS4yLTExLjQtMTEuNWwwLTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWwyNS4xIDBjNi40IDAgMTEuNSA1LjIgMTEuNSAxMS41eiJdfSxGa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJmM2E4IiwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OGwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNsLTI5IDAgMCA0MC4zYy0uOCAuMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOSAuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMiAuNS0xIDEuMS0xLjkgMS43LTIuOSAuMiAuMSAuNCAuMSAuNiAuMiAuMyAzLjggLjIgMzAuNyAuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNsLTI2LjggMGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6Il19LEJrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWRhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTdkYyIsIk0xMDcuMiA0OGwtMS4zIDBjLTMyLjMgMzMuMS02NS40IDY1LjUtOTggOTguNS0yLjYgMi44LTYuMSA1LjEtNy45IDguNiAzNS42IDM1LjQgNzEgNzEgMTA2LjYgMTA2LjQgMzUuNC0zNS4zIDcwLjctNzAuOCAxMDYuMS0xMDYuMWwwLTEuMy03My4yLTczLjJDMTI4LjggNjkuOCAxMTcuMyA1OS42IDEwNy4yIDQ4em0yMTMuNSAwbC0xLjMgMGMtMzQuOSAzNi4xLTcxLjUgNzEtMTA2LjMgMTA3LjIgMzUuOSAzNS4xIDcxIDcxIDEwNi43IDEwNi4zIDM0LjMtMzQuMSA2OC40LTY4LjQgMTAyLjYtMTAyLjQgMS41LTEuNSAzLjMtMi44IDQuMS00LjgtMzQuNi0zMy44LTY4LjQtNjguMi0xMDIuNi0xMDIuMS0xLjMtMS4zLTIuMy0yLjYtMy4zLTQuMXptMjEzLjUgMGwtMS4zIDBjLTE3LjIgMTgtMzUuMSAzNS4zLTUyLjYgNTMtMTcuOSAxNy43LTM1LjQgMzUuNy01My41IDUzLjMgLjggMi4zIDMgMy42IDQuNiA1LjVMNTMzLjMgMjYxLjVjMzYuMS0zNC45IDcwLjgtNzEuMiAxMDYuNy0xMDYuMS0uNS0yLjItMi42LTMuNS00LTVMNTU1LjggNzAuMmMtNy4xLTcuNC0xNC45LTE0LjItMjEuNS0yMi4yek0zMTkuNiAyNjEuN2MtMzQuOSAzNS4xLTcwIDcwLTEwNC45IDEwNC45LS4zIC43LS43IDEuNy0xIDIuMyAyNCAyMy43IDQ3LjcgNDcuNSA3MS41IDcxLjMgMTEuOCAxMS4zIDIyLjggMjMuNSAzNC45IDM0LjQgOC40LTcuNCAxNi40LTE2LjQgMjQuNy0yNC4zIDI1LjUtMjUuMyA1MS01MSA3Ni41LTc2LjMgMS44LTIuMiA0LjMtMy42IDUuNS02LjMtMzUuNC0zNC45LTcwLjUtNzAuMi0xMDUuNi0xMDUuNGwtMS41LS43eiJdfSxIa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pdHkiLGljb246WzQ0OCw1MTIsW10sImUwNDkiLCJNMjQzLjYgOTEuNmw4MC4xIDQ2LjhjMi45IDEuNiAzIDYuMiAwIDcuOGwtOTUuMiA1NS42Yy0yLjkgMS43LTYuMyAxLjYtOSAwbC05NS4yLTU1LjZjLTIuOS0xLjYtMy02LjMgMC03LjhsODAuMS00Ni44IDAtOTEuNi0yMDQuNCAxMTkuNCAwIDIzOC44IDc4LjQtNDUuOCAwLTkzLjZjLS4xLTMuMyAzLjgtNS43IDYuNy0zLjlsOTUuMiA1NS42YzIuOSAxLjcgNC41IDQuNyA0LjUgNy44bDAgMTExLjJjLjEgMy4zLTMuOCA1LjctNi43IDMuOUw5OCAzNDYuOCAxOS42IDM5Mi42IDIyNCA1MTIgNDI4LjQgMzkyLjYgMzUwIDM0Ni44IDI2OS45IDM5My42Yy0yLjggMS43LTYuOC0uNS02LjctMy45bDAtMTExLjJjMC0zLjMgMS44LTYuMyA0LjUtNy44TDM2Mi45IDIxNWMyLjgtMS43IDYuOCAuNSA2LjcgMy45bDAgOTMuNiA3OC40IDQ1LjggMC0yMzguOC0yMDQuNC0xMTkuNCAwIDkxLjZ6Il19LHFrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZW5jZW50LXdlaWJvIixpY29uOlszMjAsNTEyLFtdLCJmMWQ1IiwiTTQwLjUgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45LTExLjYtMTI5LjkgMzEuMS0yMzkuNSAxMDEuNC0zMTMuMi0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE2MC4yIC4xYy0xMjUuOSAwLTIwNC4zIDEzNC4yLTE0OC4zIDI0Mi4zIDguNyAxNy40IDM1LjMgNC41IDI2LjMtMTMuNC00Ni4zLTkyLjYgMjEtMTk5LjIgMTIyLTE5OS4yIDc1LjQgMCAxMzYuOSA2MS40IDEzNi45IDEzNi45IDAgOTAuOC04Ni45IDE1My45LTE2Ny43IDEzMy4xLTE5LjEtNC4xLTI1LjYgMjQuNC02LjYgMjkuMSAxMTAuNyAyMy4yIDIwNC02MCAyMDQtMTYyLjMgMC05MS45LTc0LjYtMTY2LjUtMTY2LjYtMTY2LjV6Il19LFZrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlLWNvZGUtY2FtcCIsaWNvbjpbNTc2LDUxMixbXSwiZjJjNSIsIk05Ny40IDk2LjJjMTAuNC0xMC42IDE2LTE3LjEgMTYtMjEuOSAwLTIuOC0xLjktNS41LTMuOC03LjQtMi40LTEuOC01LjQtMi44LTguNC0yLjgtOC41IDAtMjAuOSA4LjgtMzUuOCAyNS43LTQxLjUgNDcuMy02Mi43IDkzLjEtNjEuOCAxNjAuNlMyMSAzNjcuMyA1Ny42IDQxMi4yYzE4LjggMjMuNiAzMy4yIDM1LjggNDMuNSAzNS44IDMuMi0uMyA2LjEtMS42IDguNC0zLjggMS45LTIuOCAzLjgtNS42IDMuOC04LjQgMC01LjYtMy45LTEyLjItMTMuMi0yMC42LTQ0LjUtNDIuMy02Ny4zLTk3LTY3LjUtMTY1LS4yLTYxLjQgMjEuNi0xMTIuNCA2NC44LTE1NHpNMjM5LjYgNDIwLjFjLjYgLjQgLjkgLjYgLjkgLjZsLS45LS42em05My44IC42bC4yLS4xYy0uMiAuMS0uMyAuMi0uMiAuMXptMy4xLTE1OC4yYy0xNi4yLTQuMiA1MC40LTgyLjktNjguMS0xNzcuMiAwIDAgMTUuNSA0OS40LTYyLjggMTU5LjYtNzQuMyAxMDQuNCAyMy41IDE2OC43IDM0IDE3NS4yLTYuNy00LjMtNDcuNC0zNS43IDkuNi0xMjguNiAxMS0xOC4zIDI1LjUtMzQuOSA0My41LTcyLjIgMCAwIDE1LjkgMjIuNCA3LjYgNzEuMS0xMi41IDczLjYgNTMuOCA1Mi41IDU0LjggNTMuNSAyMi44IDI2LjgtMTcuNyA3My41LTIxLjYgNzYuNiA1LjUtMy43IDExNy43LTc4IDMzLTE4OC4xLTYgNi0xMy44IDM0LjItMzAgMzAuMXpNNTExIDg5LjdjLTE0LjktMTYuOS0yNy40LTI1LjctMzUuOS0yNS43LTMgLjEtNS45IDEuMS04LjQgMi44LTEuOSAxLjktMy44IDQuNy0zLjggNy40IDAgNC44IDUuNiAxMS4zIDE2IDIxLjkgNDMuMiA0MS42IDY1IDkyLjYgNjQuOCAxNTQuMS0uMiA2OC0yMyAxMjIuNi02Ny41IDE2NS05LjMgOC40LTEzLjIgMTQuOS0xMy4yIDIwLjYgMCAyLjcgMS45IDUuNiAzLjggOC40IDIuMyAyLjIgNS4yIDMuNiA4LjQgMy44IDEwLjMgMCAyNC43LTEyLjEgNDMuNS0zNS44IDM2LjYtNDQuOSA1My4xLTk0LjQgNTQuMS0xNjEuOVM1NTIuNSAxMzcgNTExIDg5Ljd6Il19LGprdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWIiLCJNMzU3LjIgNDhMNDI3LjggNDggMjczLjYgMjI0LjIgNDU1IDQ2NCAzMTMgNDY0IDIwMS43IDMxOC42IDc0LjUgNDY0IDMuOCA0NjQgMTY4LjcgMjc1LjUtNS4yIDQ4IDE0MC40IDQ4IDI0MC45IDE4MC45IDM1Ny4yIDQ4ek0zMzIuNCA0MjEuOGwzOS4xIDAtMjUyLjQtMzMzLjgtNDIgMCAyNTUuMyAzMzMuOHoiXX0sVWt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0aWNrZXItbXVsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjNmNyIsIk01NjEuNyAxOTkuNmwwIDB6bS02LjItNzcuNGMtNy43LTIyLjMtNS4xLTcuMi0xMy40LTM2LjktMS42LTYuNS0zLjYtMTQuNS02LjItMjAtNC40LTguNy00LjYtNy41LTQuNi05LjUgMC01LjMgMzAuNy00NS4zIDE5LTQ2LjktNS43LS42LTEyLjIgMTEuNi0yMC42IDE3LTguNiA0LjItOCA1LTEwLjMgNS0yLjYgMC01LjctMy02LjItNS0yLTUuNyAxLjktMjUuOS0zLjYtMjUuOS0zLjYgMC0xMi4zIDI0LjgtMTcgMjUuOC01LjIgMS4zLTI3LjktMTEuNC03NS4xIDE4LTI1LjMgMTMuMi04Ni45IDY1LjItODcgNjUuMy02LjcgNC43LTIwIDQuNy0zNS41IDE2LTQ0LjQgMzAuMS0xMDkuNiA5LjQtMTEwLjcgOS0xMTAuNi0yNi44LTEyOC0xNS4yLTE1OSAxMS41LTIwLjggMTcuOS0yMy43IDM2LjUtMjQuMiAzOC45LTQuMiAyMC40IDUuMiA0OC4zIDYuNyA2NC4zIDEuOCAxOS4zLTIuNyAxNy43IDcuNyA5OC4zIC41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44IC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUgLjUgMiAzLjYgNCA2LjIgNSA5LjIgMy42IDI3IC4zIDI5LjktMi41IDEuNi0xLjUgLjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40IC41IDEgMSAyIDEuNSAzLjUgLjUgNC41IDEuNSA4LjUgNC42IDEwIDcuMyAzLjYgMTItMy41IDkuOCAxMS41LS43IDMuMS0yLjYgMTIgMS41IDE1IDQuNCAzLjcgMzAuNiAzLjQgMzYuNSAuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNSAuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYgLjUtNTkuNCAzLTExIDUuNi0yMi40IDguNy0zMi40IDExLTQyLjUgMTAuMy01MC42IDE2LjUtNjguMyAuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45eiJdfSxXa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdGNoIixpY29uOls0NDgsNTEyLFtdLCJmMWU4IiwiTTM1OS40IDEwMy41bC0zOC42IDAgMCAxMDkuNyAzOC42IDAgMC0xMDkuN3pNMjUzLjIgMTAzbC0zOC42IDAgMCAxMDkuOCAzOC42IDAgMC0xMDkuOHpNODkgMGwtOTYuNSA5MS40IDAgMzI5LjIgMTE1LjggMCAwIDkxLjQgOTYuNS05MS40IDc3LjMgMCAxNzMuOC0xNjQuNiAwLTI1Ni0zNjYuOSAwek00MTcuMyAyMzcuOGwtNzcuMiA3My4xLTc3LjIgMC02Ny42IDY0IDAtNjQtODYuOSAwIDAtMjc0LjMgMzA4LjkgMCAwIDIwMS4yeiJdfSxHa3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXItayIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiYyIsIk0zNTYuNyAyNTYuMmw0MC44LTQwLjVjNDIuMi00MS45IDQyLjItMTEwLjMgMC0xNTIuMXMtMTExLTQxLjktMTUzLjIgMEwyMjkuMyA3OC40QzIwOS42IDUwLjMgMTc3LjEgMzIgMTQwLjIgMzIgODAuNSAzMiAzMiA4MC4yIDMyIDEzOS41bDAgMjMzYzAgNTkuNCA0OC41IDEwNy41IDEwOC4yIDEwNy41IDM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwIC4xIDB6Il19LFlrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcml0aWNhbC1yb2xlIixpY29uOls0NDgsNTEyLFtdLCJmNmM5IiwiTTIyNS44IDBjLjMgLjIgMjE2LjYgMTI0LjUgMjE3LjEgMTI0LjcgMyAxLjIgMy43IDMuNSAzLjcgNi42LS4xIDgzLjQtLjEgMTY2LjkgMCAyNTAuNCAuMSAxLjItLjIgMi40LS44IDMuNHMtMS41IDEuOS0yLjYgMi40Yy0yMS40IDEyLTIwNy45IDExOC4zLTIxOC45IDEyNC42bC0zIDBjLTc5LjMtNDUuNy0yMTguMy0xMjUuNC0yMTguNC0xMjUuNS0uNi0uMy0xLjEtLjctMS40LTEuM3MtLjUtMS4yLS40LTEuOWMwLS45IDAtMjI1LjktLjEtMjUzLjEtLjEtMSAuMi0yIC43LTIuOXMxLjMtMS42IDIuMi0yQzI3LjIgMTEyLjEgMjEzLjIgNiAyMjQuMSAwbDEuOCAwek0yMTUuNCAyMC40bC0uMi0uMmMtNjQuNyAzNi45LTEyOS41IDczLjctMTk0LjIgMTEwLjYgMCAuMSAuMSAuMiAuMSAuNEw1MiAxNDIuOWMtNy43IDYtOC4zIDYtMTAuNiA1LjEtLjEgMC0yNC4yLTkuMy0yNi44LTEwbDAgMjMwLjRjLjktMS40IDY0LjEtMTEwLjkgNjQuMS0xMTEgMS42LTIuOCAzLTEuOSA5LjEtMS41IDEuNCAuMSAxLjUgLjIgLjggMS40LTQxLjIgNzEuMy0zNi40IDYzLTY3LjUgMTE2LjktLjggMS40LS42IDEuMSAxLjIgMS4xbDE4Ni41IDBjMS40IDAgMS43LS4yIDEuNy0xLjZsMC04LjljMC0xLjMgMi40LS44LTE4LjQtMS03LjUtLjEtMTQuMS0zLjItMjEuNC0xMi43LTcuNC05LjctMTQuNi0xOS40LTIxLjgtMjkuMi0yLjMtMy4xLTMuNC0yLjQtMTYuOC0yLjQtMS44IDAtMS44IDAtMS44IDEuOCAuMyAyNi4yIC4yIDI1LjMgMSAzMi43IC41IDQuNCAyLjIgNC4yIDkuNyA0LjggMy4xIC4zIDMuOSA0LjEgLjUgNC45LTEuNiAuNC0zMS42IC41LTMzLjctLjEtLjUtLjEtMS0uNS0xLjMtLjlzLS41LTEtLjQtMS42IC4zLTEuMSAuNi0xLjUgLjktLjcgMS40LS44YzMuMy0uOCA2LjIgLjggNi43LTQuNCAxLjMtMTMuNyAxLjItOSAxLjEtNzkuNCAwLTEwLjgtLjQtMTIuNi01LjQtMTMuNi0xLjItLjItMy41LS4yLTQuNy0uNi0yLjktMS0yLTQuOCAxLjgtNC44IDMzLjcgMCA0Ni4xLTEuMSA1Ni4xIDQuOSA3LjcgNC42IDEyIDExLjUgMTIuNSAyMC40IC45IDE0LjYtNi41IDIyLjMtMTUgMzIuNi0uMiAuMS0uMyAuMy0uNCAuNXMtLjEgLjQtLjEgLjYgMCAuNCAuMSAuNiAuMiAuNCAuNCAuNWMyLjYgMy4yIDUgNi42IDcuNyA5LjggMjcuNiAzMy4yIDI0LjEgMzAuNSA0MS4zIDMzLjEgLjkgLjEgMS0uNCAxLTEuMmwwLTExYzAtMSAuMy0xLjQgMS40LTEuMyA3LjggMS4yIDE1LjggMS4xIDIzLjYtLjMgMS4xLS4xIDEuNSAuMiAxLjUgMS4zIDAgLjEgLjkgMjYuNyAuOSAyNi44IDAgMS41IC43IDEuNiAxLjkgMS42bDE4Ni43IDBjLTI3LjItNDctNTQuMi05NC04MS4yLTE0MC44IDIuMy0uNy0uNCAwIDYuNy0xLjQgMi0uNCAyLjEtLjQgMy4xIDEuNCA3LjMgMTIuNiA3Ny4zIDEzNCA3Ny40IDEzNC4xbDAtMjMwLjRjLTEuNyAuNS0xMDMuMyAzOC43LTEwNS44IDM5LjctMS4xIC40LTEuNSAuMi0xLjktLjktLjYtMS45LTEuMy0zLjgtMi4xLTUuNi0uMy0uOC0uMS0xLjEgLjYtMS40IC4xIDAgOTUuNS0zNS44IDEwMy0zOC44LTY1LjQtMzcuNi0xMzAuNi03NS0xOTYtMTEyLjZsODYuOCAxNTAuNC0uMyAuM2MtOS42LS45LTEwLjUtMS42LTExLjgtMy45LTEtMS43LTczLjUtMTI3LjctODItMTQyLjItOS4xIDE0LjctODMuNiAxNDYuMi04NS40IDE0Ni4zLTIuOSAuMi01LjkgLjEtOS4yIC4xIDI4LjgtNDkuOCA1Ny42LTk5LjUgODYuMi0xNDlsMCAwem01MS45IDEyOS45YzEuOS0uMSAzLjctLjQgNS41LS44IDEuNy0uMyAyLjUgLjIgMi42IDEuOSAwIC4xIC4xIDE5LjEtLjkgMjAuNXMtMS45IDEuMi0yLjYtLjJjLTUtOS43IDYuMi05LjctMzkuMS0xMi0uNyAwLTEgLjItMSAuOSAwIC4xIDMuNyAxMjIgMy43IDEyMi4xIDAgLjkgLjUgMS4yIDEuMiAxLjUgMyAxLjIgNS45IDIuNSA4LjcgNCA3LjMgNC4zIDExLjQgMTAuOCAxMi40IDE5LjMgMS40IDExLjgtMi44IDM1LjgtMzIuMiAzNy4xLTIuOCAuMS0yOC4zIDEuMS0zNC4xLTIzLjMtNC43LTE5LjMgOC4zLTMyLjcgMTkuOS0zNi40IC42LS4xIDEuMi0uNCAxLjUtLjlzLjUtMS4xIC41LTEuN2MuMS01LjYgMy0xMDcuMSAzLjctMTIxLjMgMC0xLjEtLjYtMS4yLTEuNC0xLjEtMzIuMyAuNS0zNi43LS4zLTQwLjIgOC41LTIuNCA2LjItNC4xIDEuMy00IC4yIDEuMS02IDIuMi0xMiAzLjMtMTggLjQtMi4xIDEuNC0yLjYgMy40LTEuOSA1LjYgMi4xIDYuNyAxLjcgMzcuMiAxLjkgMS43IDAgMS44LS4xIDEuOC0xLjggLjctMjcuNSAuNi0yMi42IDEtMjkuNiAuMS0uNi0uMS0xLjItLjMtMS43cy0uNy0uOS0xLjMtMS4xYy01LjYtMi45LTguOC03LjYtOC45LTEzLjktLjQtMTQuOCAxNy43LTIxLjcgMjcuNC0xMS41IDYuOCA3LjIgNS44IDE4LjktMi41IDI0LjItLjggLjQtMS40IDEuMS0xLjggMS44cy0uNiAxLjYtLjQgMi41YzAgLjYtLjEtNC4zIDEgMzAgMCAuOSAuNCAxLjEgMS4yIDEuMSAuMSAwIDIzLS4xIDM0LjUtLjRsMC0uMXpNNjguMyAxNDEuN2MxOS44LTQuNSAzMi43LS42IDUyLjUgMS43IDIuOCAuMyAzLjcgMS4yIDMuNiA0LS4yIDUtMS4yIDIyLjMtMS4yIDIzLjEgMCAuNS0uMiAxLS41IDEuNHMtLjcgLjctMS4yIC45Yy00LjEgMS43LTMuNi00LjQtNC03LjMtMy4xLTIyLjQtNzMuOS0zMi43LTc0LjYgMjUuNC0uMyAyMy45IDE3IDUzLjYgNTQuMSA1MC45IDI3LjItMiAxOS0yMC4yIDI0LjgtMjAuNSAuNC0uMSAuOSAwIDEuMyAuMXMuOCAuNCAxLjEgLjcgLjUgLjcgLjYgMS4yIC4xIC45IDAgMS4zYy0xLjggMTAuOC0zLjQgMTktMy40IDE5LjItMS41IDkuMi04Ni43IDIyLjEtOTMuNC00Mi4xLTIuNy0yNS44IDEwLjQtNTMuNCA0MC4zLTYwLjJ6bTgwIDg3LjdsLTE5LjUgMGMtLjYgMC0xLjItLjEtMS42LS40cy0uOC0uOC0xLTEuNGMyLjQtMy44IDUuOSAuOSA1LjktNi4xLS4xLTI1LjggLjItMzggLjItNDAuMSAwLTMuNC0uNS00LjYtMy4zLTQuOS03LS43LTMuMS0zLjQtMS4xLTMuNCAxMS44LS4xIDIyLjYtLjIgMzAgLjcgOC44IDEuMSAxNi43IDEyLjYgNy45IDIyLjYtMiAyLjItNCA0LjQtNi4xIDYuNyAxIDEuMiA2LjkgOC44IDE3LjMgMTkuNyAyLjcgMi44IDYuMiAzLjUgOS45IDMuMSAuNiAwIDEuMS0uMiAxLjUtLjZzLjctLjkgLjctMS41Yy4zLTMuNCAuMyA0LjcgLjQtNDAuNiAwLTUuNi0uMy02LjYtMy4yLTYuOC00LS40LTQtMi4zLS43LTMuNGwxOS4xLS4xYy4zIDAgNC41IC41IDEgMy40IDAgMC0uMiAwLS4yIDAtMy42IC4zLTMuOSAxLTQgNC42LS4zIDQzLjkgLjEgNDAuMiAuNCA0Mi44IC4xIC44IC4zIDIuMiA1LjEgMi4xIDIuNSAwIDMuOSAzLjQgMCAzLjQtMTAuNCAuMS0yMC43IDAtMzEuMSAuMS0xMC43IDAtMTMuNS02LjItMjQuMi0yMC44LTEuNi0yLjItOC4zLTIuNC04LjItLjQgLjkgMTYuNSAwIDE3LjggNCAxNy43IDQuOC0uMSA0LjcgMy42IC44IDMuNWwuMSAwem0yNzUtMTAuMWMtMS4yIDcuMSAuMiAxMC40LTUuMyAxMC4zLTYxLjUtLjQtNDcuOC0uMi01MC43LS4zLTEuMi0uMS0yLjQtLjQtMy42LS43LTIuNS0uNiAxLjUtMS4yLS40LTUuNi0xLjQtMy40LTIuOC02LjgtNC4xLTEwLjItLjEtLjQtLjQtLjgtLjctMS4xcy0uOC0uNC0xLjMtLjRjLTQuOS0uMi05LjctLjItMTQuNiAuMS0uMyAwLS42IC4yLS45IC4zcy0uNSAuNC0uNyAuN2MtMS42IDMuNi0zLjEgNy4zLTQuNSAxMS0xLjMgMy4yIDcuOSAxLjMgMTIuMiAyLjIgMyAuNiA0LjUgMy43IC43IDMuN2wtMjYuNCAwYy0yLjkgMC0zLjEtMy4yLS43LTMuMiAxLjIgLjEgMi40LS4yIDMuNS0uOXMxLjktMS41IDIuNC0yLjZjMS41LTMgMi44LTYgNC4xLTkuMSAxOC4yLTQyLjEgMTcuMS00MC4yIDE4LjQtNDEuNiAuMi0uMiAuNC0uNCAuNy0uNnMuNi0uMiAuOC0uMiAuNiAuMSAuOCAuMiAuNSAuMyAuNyAuNmMyLjkgMy4zIDE4LjQgNDQuNyAyMy42IDUxLjkgMiAyLjcgNS43IDIgNi40IDIgMy42IC4xIDQtMS4xIDQuMS00LjMgLjEtMS45IC4xIDEuMiAuMS00MS4yIDAtNC41LTIuNC0zLjctNS42LTQuMy0uMyAwLTIuNi0uNi0uMS0zLjEgLjItLjItLjktLjIgMjEuNy0uMiAyLjMgMCA1LjMgMi44LTEuMiAzLjQtLjQgMC0uNyAwLTEuMSAuMnMtLjYgLjMtLjkgLjYtLjQgLjYtLjYgLjktLjIgLjctLjEgMS4xYy0uMSAxLjYtLjIgMzguOSAuMyA0MS4yIC4yIC43IC42IDEuNCAxLjIgMS44czEuMyAuNyAyLjEgLjZjMTMuMyAuNCAxNC45IC40IDE2LTMuNCAxLjctNS44IDQuMS0yLjUgMy43LS4ybDAgLjF6TTMxOC42IDI4My42Yy00LjIgMC00LjQtMy40LS42LTMuNCAzNS45LS4yIDI4LjEgLjQgMzcuMi0uNiAxLjctLjIgMi40IC4yIDIuMyAxLjktLjMgMy40LS42IDYuOC0xIDEwLjItLjIgMi4yLTMuMiAyLjYtMy40LS4yLS40LTUuMy0yLjItNC41LTE1LjYtNS4xLTEuNi0uMS0xLjYgMC0xLjYgMS41bDAgMTYuMWMwIDEuNyAwIDEuNiAxLjYgMS41IDMuMS0uMiAxMC4zIC4zIDE1LjctMS41IC41LS4yIDMuMy0xLjggMy4xIDEuOCAwIC4yLS44IDEwLjQtMS4yIDExLjQtLjUgMS4zLTEuOSAxLjUtMi42IC4zLTEuMi0yIDAtNS4xLTMuNy01LjMtMTUuNC0uOS0xMi45LTIuNS0xMi45IDYgMCAxMi4zLS44IDE2LjEgMy45IDE2LjIgMTYuNiAuNSAxNC40IDAgMTYuNC01LjcgLjgtMi40IDMuNS0xLjggMy4yIC42LS40IDMuMi0uOCA2LjQtMS4yIDkuNiAwIC40LS4yIDIuNC00LjcgMi40LTM3LjItLjEtMzQuNS0uMi0zNS4yLS4zLTIuNy0uNS0yLjItMyAuMi0zLjQgMS4xLS4yIDQgLjUgNC4yLTIuNiAyLjQtNTYuMi0uMS01MS4zLTMuOS01MS4zbDAgMHptLS40LTEwOS41YzIuNSAuNiAzLjEgMS44IDMgNC42LS4zIDUuMy0uMyA5LS42IDkuNy0uNyAyLjItMy4xIDIuMS0zLjMtLjMtLjQtNC44LTMtNy44LTcuNi05LjEtMjYuMy03LjctMzIuOCAxNS41LTI3LjIgMzAuMiA1LjkgMTUuNCAyMiAxNS45IDI4LjkgMTMuOCA1LjktMS45IDUuOS02LjUgNi45LTcuNiAxLjItMS4zIDIuMi0xLjggMy4xIDEuMSAwIC4xIC42IDExLjktNiAxMi43LTEuNiAuMi0xOS40IDMuNy0zMi43LTMuNC0yMS0xMS4yLTE2LjctMzUuNS02LjktNDUuMyAxNC0xNC4xIDM5LjktNy4xIDQyLjMtNi41bDAgMHpNMjg5LjggMjgwLjFjMy4zIDAgMy43IDMgLjIgMy40LTIuNiAuMy01LS40LTUgNS41IDAgMi0uMiAyOSAuNCA0MS40IC4xIDIuMyAxLjIgMy41IDMuNCAzLjcgMjIgMS4yIDE1LTEuNyAxOC44LTYuMyAxLjgtMi4yIDIuOCAuOCAyLjggMS4xIC4zIDEzLjYtNCAxMi40LTUuMiAxMi40bC0zOC4yLS4yYy0xLjktLjItMi4xLTMtLjQtMy40IDItLjUgNC45IC40IDUuMS0yLjggMS0xNS45IC42LTQ0LjYgLjMtNDcuOC0uMy0zLjgtMi44LTMuMy01LjctMy43LTIuNS0uNC0yLTMuMiAuMy0zLjIgMS40IDAgMTggMCAyMy4xIDB6bS0zMS42LTU3LjhjLjEgNC4xIDIuOSAzLjUgNiAzLjYgMi42IC4xIDIuNSAzLjQtLjEgMy40LTYuNSAwLTEzLjcgMC0yMS42LS4xLTMuOCAwLTMuNC0zLjQgMC0zLjQgNC41IDAgMy4yIDEuNiAzLjQtNDUuNSAwLTUuMS0zLjMtMy41LTQuNy00LjItMi42LTEuMi0xLjQtMy4xIC40LTMuMiAxLjMgMCAyMC4yLS40IDIxLjIgLjJzMS45IDEuNi0uNCAyLjljLTEgLjUtMy45LS4zLTQuMiAyLjUgMCAuMi0uOCAxLjYtLjEgNDMuOGwwIDB6TTIyMS4zIDQ5Ni42Yy41IC4zIDEgLjUgMS42IC41czEuMS0uMiAxLjYtLjVjMTctOS44IDE4Mi0xMDMuNiAxOTcuNC0xMTIuNS0uMS0uNCAxMS4zLS4yLTE4MS41LS4zLTEuMiAwLTEuNiAuNC0xLjUgMS42IDAgLjEgMS4zIDQ0LjUgMS4yIDUwLjQtLjEgMi42LS42IDUuMi0xLjQgNy43LS42IDEuOCAuNC0uNS0xMy41IDMyLjItLjcgMS43LTEgMi4yLTItLjEtNC4yLTEwLjMtOC4zLTIwLjctMTIuNi0zMS0xLjUtMy40LTIuMi03LjEtMi0xMC44IC4yLTIuNSAuOC0xNi4xIDEuNS00OCAwLTEuOSAwLTItMi0ybC0xODMgMGMyLjYgMS42IDE3OC4zIDEwMi42IDE5NiAxMTIuOGwuMSAwek0xMzAuNCAzMDcuOWMwIDIuNCAuNCAyLjggMi44IDMgMTEuNSAxLjIgMjEgMy43IDI1LjYtNy4zIDYtMTQuNSAyLjctMzQuNC0xMi41LTM4LjgtMi0uNi0xNi0yLjgtMTUuOSAxLjUgMCA4IDAgMTEuNiAwIDQxLjZ6bTEwNS44LTE1YzAgMi4xIDEuMSAzOC43IDEuMSAzOS4xIC4zIDkuOS0yNS42IDUuOC0yNS4yLTIuNiAuMS0yIDEuNC0zNy40IDEuMS0zOS40LTE0LjEgNy40LTE0LjQgNDAuMiA2LjQgNDguOCA0IDEuNyA4LjQgMS45IDEyLjUgLjZzNy42LTQgOS45LTcuN2M0LjktNy44IDYuOC0yOS41LTUuNC0zOS0uMSAuMS0uMiAuMS0uNCAuMWwwIDB6bS0xMi4zLTE5OGMtOS44IDAtOS43IDE0LjgtLjEgMTQuOXMxMC4xLTE0LjkgLjEtMTQuOWwwIDB6TTE0My43IDE5OC42YzAgMS44IC40IDIuNCAyLjIgMi42IDEzLjYgMS40IDEyLjUtMTEgMTIuMi0xMy40LTEuNy0xMS4yLTE0LjQtMTAuMi0xNC40LTcuOCAwIDQuNSAwIDEzLjcgMCAxOC42ek0zNTYgMjA1bC02LjEtMTUuOGMtMi4yIDUuNS00LjIgMTAuNi02LjIgMTUuOGwxMi4zIDB6Il19LEtrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbS1zeW1ib2wiLGljb246WzQ0OCw1MTIsW10sImYzZjYiLCJNMjczLjUgMTc3LjVhNjEgNjEgMCAxIDEgMTIyIDAgNjEgNjEgMCAxIDEgLTEyMiAwem0xNzQuNSAuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNTggMCAyNTAuNyA5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN0MyMjAuNyAxMTQuNSAyNzEuNyA2NCAzMzQuMiA2NCAzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6TTQxMC41IDE3Ny43YTc2LjQgNzYuNCAwIDEgMCAtMTUyLjggMCA3Ni40IDc2LjQgMCAxIDAgMTUyLjggMHoiXX0sWmt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1haWxjaGltcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5ZSIsIk0zMzEgMjQzLjVjMy4xLS40IDYuMi0uNCA5LjMgMCAxLjctMy44IDItMTAuNCAuNS0xNy42LTIuMi0xMC43LTUuMy0xNy4xLTExLjUtMTYuMXMtNi41IDguNy00LjIgMTkuNGMxLjMgNiAzLjUgMTEuMSA2IDE0LjNsMCAwek0yNzcuNCAyNTJjNC41IDIgNy4yIDMuMyA4LjMgMi4xIDEuOS0xLjktMy41LTkuNC0xMi4xLTEzLjEtNS0yLjEtMTAuNC0yLjgtMTUuOC0yLjJzLTEwLjUgMi43LTE0LjggNS44Yy0zIDIuMi01LjggNS4yLTUuNCA3LjEgLjkgMy43IDEwLTIuNyAyMi42LTMuNSA3LS40IDEyLjggMS44IDE3LjMgMy43bDAgMHptLTkgNS4xYy05LjEgMS40LTE1IDYuNS0xMy41IDEwLjEgLjkgLjMgMS4yIC44IDUuMi0uOCA2LTIuMyAxMi40LTIuOSAxOC43LTEuOSAyLjkgLjMgNC4zIC41IDQuOS0uNSAxLjUtMi4yLTUuNy04LTE1LjQtNi45bDAgMHptNTQuMiAxNy4xYzMuNC02LjktMTAuOS0xMy45LTE0LjMtN3MxMC45IDEzLjkgMTQuMyA3bDAgMHptMTUuNy0yMC41Yy03LjctLjEtOCAxNS44LS4zIDE1LjlzOC0xNS44IC4zLTE2bDAgMHpNMTE5LjUgMzMyLjdjLTEuMyAuMy02IDEuNS04LjUtMi4zLTUuMi04IDExLjEtMjAuNCAzLTM1LjgtOS4xLTE3LjUtMjcuOC0xMy41LTM1LTUuNS04LjcgOS42LTguNyAyMy41LTUgMjQuMSA0LjMgLjYgNC4xLTYuNSA3LjQtMTEuNiAuOS0xLjQgMi4xLTIuNiAzLjUtMy42czMtMS42IDQuNi0yIDMuNC0uNCA1IDAgMy4zIDEgNC43IDEuOWMxMS42IDcuNiAxLjQgMTcuOCAyLjMgMjguNiAxLjQgMTYuNyAxOC40IDE2LjQgMjEuNiA5IC4yLS40IC4zLS44IC4zLTEuMnMtLjItLjgtLjUtMS4xYzAgLjkgLjctMS4zLTMuNC0uNGwwIDB6bTI5OS43LTE3LjFjLTMuMy0xMS43LTIuNi05LjItNi44LTIwLjUgMi40LTMuNyAxNS4zLTI0LTMuMS00My4zLTEwLjQtMTAuOS0zMy45LTE2LjUtNDEuMS0xOC41LTEuNS0xMS40IDQuNi01OC43LTIxLjUtODMgMjAuOC0yMS42IDMzLjgtNDUuMyAzMy43LTY1LjctLjEtMzkuMi00OC4yLTUxLTEwNy40LTI2LjVsLTEyLjUgNS4zYy0uMSAwLTIyLjctMjIuMy0yMy4xLTIyLjYtNjcuNS01OC45LTI3OC44IDE3NS45LTIxMS4zIDIzMi45bDE0LjggMTIuNWMtNCAxMC43LTUuNCAyMi4yLTQuMSAzMy41IDMuNCAzMy40IDM2IDYwLjQgNjcuNSA2MC40IDU3LjcgMTMzLjEgMjY3LjkgMTMzLjMgMzIyLjMgMyAxLjctNC41IDkuMS0yNC42IDkuMS00Mi40cy0xMC4xLTI1LjMtMTYuNS0yNS4zbDAgMHptLTMxNiA0OC4yYy0yMi44LS42LTQ3LjUtMjEuMS00OS45LTQ1LjUtNi4yLTYxLjMgNzQuMy03NS4zIDg0LTEyLjMgNC41IDI5LjYtNC43IDU4LjUtMzQuMSA1Ny44bDAgMHpNODQuNyAyNDkuNmMtMTUuMiAzLTI4LjUgMTEuNS0zNi43IDIzLjUtNC45LTQuMS0xNC0xMi0xNS42LTE1LTEzLTI0LjggMTQuMi03MyAzMy4zLTEwMC4yIDQ3LjEtNjcuMiAxMjAuOS0xMTguMSAxNTUtMTA4LjkgNS41IDEuNiAyMy45IDIyLjkgMjMuOSAyMi45cy0zNC4xIDE4LjktNjUuOCA0NS4zQzEzNi4yIDE1MCAxMDQgMTk3LjcgODQuNyAyNDkuNnpNMzIzLjYgMzUwLjdzLTM1LjcgNS4zLTY5LjUtNy4xYzYuMi0yMC4yIDI3IDYuMSA5Ni40LTEzLjggMTUuMy00LjQgMzUuNC0xMyA1MS0yNS40IDMuNCA3LjggNS44IDE1LjkgNy4xIDI0LjMgMy43LS43IDE0LjItLjUgMTEuNCAxOC4xLTMuMyAxOS45LTExLjcgMzYtMjUuOSA1MC44LTguOSA5LjYtMTkuNCAxNy41LTMxLjIgMjMuMy02LjUgMy40LTEzLjMgNi4zLTIwLjMgOC42LTUzLjUgMTcuNS0xMDguMy0xLjctMTI2LTQzLTEuNC0zLjEtMi42LTYuNC0zLjYtOS43LTcuNS0yNy4yLTEuMS01OS44IDE4LjgtODAuNCAxLjItMS4zIDIuNS0yLjkgMi41LTQuOC0uMi0xLjctLjgtMy4zLTEuOS00LjUtNy0xMC4xLTMxLjItMjcuNC0yNi4zLTYwLjggMy41LTI0IDI0LjUtNDAuOSA0NC4xLTM5LjlsNSAuM2M4LjUgLjUgMTUuOSAxLjYgMjIuOSAxLjkgMTEuNyAuNSAyMi4yLTEuMiAzNC42LTExLjYgNC4yLTMuNSA3LjYtNi41IDEzLjMtNy41IDIuMy0uNiA0LjctLjcgNy0uM3M0LjYgMS4yIDYuNiAyLjVjMTAgNi42IDExLjQgMjIuNyAxMS45IDM0LjUgLjMgNi43IDEuMSAyMyAxLjQgMjcuNiAuNiAxMC43IDMuNCAxMi4yIDkuMSAxNCAzLjIgMSA2LjIgMS44IDEwLjUgMy4xIDEzLjIgMy43IDIxIDcuNSAyNiAxMi4zIDIuNSAyLjUgNC4yIDUuOCA0LjcgOS4zIDEuNiAxMS40LTguOCAyNS40LTM2LjMgMzguMi00Ni43IDIxLjctOTMuNyAxNC40LTEwMC41IDEzLjctMjAuMi0yLjctMzEuNiAyMy4zLTE5LjUgNDEuMSAyMi42IDMzLjQgMTIyLjQgMjAgMTUxLjQtMjEuNCAuNy0xIC4xLTEuNi0uNy0xLTQxLjggMjguNi05Ny4xIDM4LjItMTI4LjUgMjYtNC44LTEuOC0xNC43LTYuNC0xNS45LTE2LjcgNDMuNiAxMy41IDcxIC43IDcxIC43czItMi44LS42LTIuNXpNMTcxLjcgMTU3LjVjMTYuNy0xOS40IDM3LjQtMzYuMiA1NS44LTQ1LjYgLjEtLjEgLjMtLjEgLjUtLjFzLjMgLjEgLjQgLjIgLjIgLjMgLjIgLjQgMCAuMy0uMSAuNWMtMS41IDIuNy00LjMgOC4zLTUuMiAxMi43IDAgLjEgMCAuMyAwIC40cy4yIC4zIC4zIC40IC4zIC4xIC40IC4xIC4zIDAgLjQtLjFjMTEuNS03LjggMzEuNS0xNi4yIDQ5LTE3LjMgLjIgMCAuMyAwIC41IC4xcy4yIC4yIC4zIC40IC4xIC4zIDAgLjUtLjEgLjMtLjMgLjRjLTIuOSAyLjItNS41IDQuOC03LjcgNy43LS4xIC4xLS4xIC4yLS4xIC40czAgLjMgLjEgLjQgLjIgLjIgLjMgLjMgLjIgLjEgLjQgLjFjMTIuMyAuMSAyOS43IDQuNCA0MSAxMC43IC44IC40IC4yIDEuOS0uNiAxLjctNjkuNS0xNS45LTEyMy4xIDE4LjUtMTM0LjUgMjYuOC0uMiAuMS0uMyAuMS0uNSAuMXMtLjMtLjEtLjUtLjItLjItLjMtLjItLjUgLjEtLjQgLjItLjVsLS4xIDB6Il19LFhrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbiIsaWNvbjpbNjQwLDUxMixbXSwiZTdlMiIsIk00NTIuNSAyMjMuNWM5LjggMCAxNi41IDYuMyAxNi41IDE2LjZsMCAzMS44YzAgMTAuMy02LjYgMTYuNi0xNi42IDE2LjZsLTU2LjIgMGMtOS44IDAtMTYuNS02LjMtMTYuNS0xNi42bDAtMzEuOGMwLTEwLjMgNi43LTE2LjYgMTYuNS0xNi42bDU2LjMgMHptLTI1LjcgMTMuMWMtMS41LTIuNi0zLjItMi42LTQuNiAwbC0xMC43IDE3LjZjLTEuNyAyLjQtMi42IDUuMS0yLjYgOC4yIDAgNy45IDYuOSAxNC42IDE1LjYgMTQuNiA4LjUgMCAxNS42LTYuNyAxNS42LTE0LjYgMC0zLTEtNS44LTIuNy04LjJsLTEwLjctMTcuNnpNODUuOCAyMjMuOGMxIDAgMS41IC42IDEuNSAxLjVsMCA1MC4zIDY0LjYgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA5LjdjMCAuOS0uNiAxLjUtMS42IDEuNWwtNzguNCAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem04OC4zIDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNDVjMCA0IDIgNS4yIDUuNyA1LjJsNDYuOSAwYzMuOCAwIDUuNy0xLjMgNS43LTUuMmwwLTQ1YzAtLjkgLjUtMS41IDEuNS0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDQ2YzAgMTAuNS01LjMgMTYuOC0xNy42IDE2LjhsLTU0IDBjLTEyLjMgMC0xNy42LTYuMy0xNy42LTE2LjhsMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptMTA4LjIgMGMxIDAgMS42IC41IDIuMiAxLjRsMzAuNSA0Ni40IDEuNCAwIDMwLjUtNDYuNGMuNi0uOSAxLjItMS40IDIuMi0xLjRsMTggMGMxIDAgMS41IC42IDEuNSAxLjVsMCA2MS40YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNDMuOC0xLjEgMC0yOC43IDQzLjhjLS42IC45LTEuMyAxLjUtMi40IDEuNWwtMTAuNyAwYy0xIDAtMS43LS42LTIuMy0xLjVsLTI4LjctNDMuOC0xLjEgMCAwIDQzLjhjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTcuOSAwem0yMTQuNCAwYy45IDAgMS4zIC40IDIuMiAxLjFsNTIuNyA0Ni4zIDEuMyAwIDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNjEuNGMwIC45LS42IDEuNS0xLjYgMS41bC0xNC40IDBjLTEgMC0xLjQtLjQtMi4zLTEuMWwtNTIuNi00Ni4zLTEuNCAwIDAgNDZjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTQuNCAwek0zMjAgMTE0LjFjODcuOSAwIDE2Ny43IDE1LjcgMjI1LjUgNDFsMi43IDEuMkM1ODcuMSAxNzMuOCA2NDAgMjA2LjUgNjQwIDI1NnMtNTIuOSA4Mi4yLTkxLjggOTkuNmwtMi43IDEuMmMtNTcuOCAyNS40LTEzNy42IDQxLTIyNS41IDQxLTc2LjIgMC0xNTUuMS0xMC41LTIyNS41LTQxLTM5LjYtMTcuNC05NC41LTUwLjMtOTQuNS0xMDAuOHM1NC45LTgzLjUgOTQuNS0xMDAuOGM3MC40LTMwLjUgMTQ5LjMtNDEgMjI1LjUtNDF6bS04OC45IDIyOWMyMC4zIDI5IDUyLjggNDkuNiA4OC45IDQ5LjYgMzYuMiAwIDY4LjctMjAuNiA4OS00OS43bC0xNzcuOSAuMXptLTk2LjEgMGM0My4zIDI5LjcgOTYuNyA0My41IDE0OC40IDQ4LTI0LjItOS4xLTQ0LjQtMjYuNy01OC42LTQ4LjFsLTg5LjkgMHptMjgwLjMtLjFjLTE0LjIgMjEuNC0zNC40IDM5LjEtNTguNiA0OC4xIDUxLjgtNC41IDEwNS4zLTE4LjMgMTQ4LjYtNDguMmwtOTAgMHptLTMzNy40IC4xYzQ0LjEgMjMuMSA5My43IDM1LjQgMTQyLjcgNDIuNi0zMy40LTguNi02Ni41LTIxLjktOTQuNC00Mi42bC00OC4zIDB6bTQzNi4yLS4yYy0yNy45IDIwLjgtNjEuMSAzNC4yLTk0LjYgNDIuOCA0Ny4zLTYuOSA4OS42LTE4LjUgMTIzLjktMzMuNmwxLjctLjhjNi4xLTIuNyAxMS45LTUuNSAxNy40LTguNGwtNDguNSAwek01MjAgMTczLjZjMTAuNyA4LjcgMTkuOCAxOC4xIDI3IDI4LjIgLjQgLjYgLjUgMS4zIC4xIDJzLTEgMS0xLjcgMWwtMS42IDBjLS42IDAtMS4yLS4zLTEuNS0uOC03LjktMTAuOS0xOC4yLTIxLjEtMzAuNi0zMC40bC05My41IDBjNS40IDguOCA5LjkgMTguNSAxMy40IDI4LjYgLjIgLjYgLjEgMS4yLS4yIDEuN3MtLjkgLjgtMS42IC44bC0xLjQgMGMtLjggMC0xLjUtLjUtMS44LTEuMy0zLjgtMTAuNy04LjctMjAuOC0xNC41LTI5LjlsLTE4NC4zIC4xYy01LjggOS4xLTEwLjcgMTkuMS0xNC40IDI5LjgtLjMgLjgtMSAxLjMtMS44IDEuM2wtMS40IDBjLS42IDAtMS4yLS4zLTEuNi0uOHMtLjUtMS4xLS4yLTEuN2MzLjUtMTAuMiA4LTE5LjcgMTMuNC0yOC42bC05My42IDBjLTEyLjMgOS4zLTIyLjYgMTkuNC0zMC40IDMwLjMtLjQgLjUtLjkgLjgtMS41IC44bC0xLjYgMGMtLjcgMC0xLjQtLjQtMS43LTFzLS4zLTEuNCAuMS0yYzcuNi0xMC41IDE2LjctMTkuOSAyNi44LTI4bC01MSAwYy0yOC45IDE2LjYtNjIgNDMuMy02My41IDc5LjdsNDQuNyAwYy41IDAgMSAuMiAxLjMgLjZzLjYgLjggLjYgMS4zbDAgMS4zYzAgMS4xLS45IDEuOS0xLjkgMS45bC00NC43IDBDNi44IDI5NSA0MCAzMjEuNyA2OSAzMzguM2w1MC45IDBjLTEwLjMtOC40LTE5LjEtMTcuNC0yNi4xLTI3bC0uOC0xLjFjLS40LS42LS41LTEuMy0uMS0yczEtMSAxLjctMWwxLjYgMCAuMiAwYy41IC4xIDEgLjMgMS4zIC44IDcuOSAxMC45IDE4LjEgMjEgMzAuNSAzMC4zbDkzLjYgMGMtNS4zLTguOC05LjgtMTguNC0xMy40LTI4LjUtLjItLjYtLjEtMS4yIC4yLTEuN3MuOS0uOCAxLjYtLjhsMS40IDAgLjIgMGMuNyAuMSAxLjQgLjYgMS43IDEuMyAzLjggMTAuNyA4LjYgMjAuNyAxNC40IDI5LjhsMTg0LjUtLjFjNS44LTkuMSAxMC42LTE5LjEgMTQuNC0yOS43bC4xLS4xYy4zLS43IDEtMS4xIDEuNy0xLjFsMS40IDBjLjYgMCAxLjIgLjMgMS42IC44cy41IDEuMiAuMiAxLjdjLTMuNSAxMC4xLTggMTkuNy0xMy4zIDI4LjVsOTMuNyAwYzEyLjMtOS4zIDIyLjUtMTkuNCAzMC4zLTMwLjJsLjEtLjJjLjQtLjQgLjktLjYgMS40LS42bDEuNiAwYy43IDAgMS40IC40IDEuNyAxcy4zIDEuNC0uMSAyYy03LjEgMTAtMTYuMSAxOS4zLTI2LjcgMjcuOWw1MS4xIDBjMjguOC0xNi42IDYxLjgtNDMuMyA2My40LTc5LjZsLTQ0LjcgMGMtMSAwLTEuOS0uOS0xLjktMS45bDAtMS4zYzAtMS4xIC45LTEuOSAxLjktMS45bDQ0LjcgMGMtMS42LTM2LjUtMzQuOS02My4zLTYzLjktNzkuOWwtNTAuOSAwek0yMjAuNSAxMjYuMmMtNDkuMSA3LjEtOTguNyAxOS41LTE0MyA0Mi43bDQ4LjQgMGMyNy45LTIwLjggNjEtMzQuMSA5NC41LTQyLjd6bTYyLjgtNS40Yy01MS44IDQuNS0xMDUuMiAxOC4zLTE0OC42IDQ4LjFsOTAgMGMxNC4yLTIxLjQgMzQuNC0zOSA1OC42LTQ4LjF6bTM2LjYtMS42Yy0zNi4yIDAtNjguNyAyMC42LTg5IDQ5LjdsMTc3LjktLjFjLTIwLjMtMjkuMS01Mi43LTQ5LjYtODguOS00OS42em0zNi42IDEuNmMyNC4yIDkuMSA0NC40IDI2LjYgNTguNSA0OGw4OS44IDBjLTQzLjMtMjkuNy05Ni42LTQzLjUtMTQ4LjMtNDh6bTYyLjggNS40YzMzLjQgOC41IDY2LjQgMjEuOSA5NC4zIDQyLjVsNDguMyAwYy00NC4xLTIzLjEtOTMuNi0zNS40LTE0Mi42LTQyLjV6Il19LFFrdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJudXRyaXRpb25peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkNiIsIk0xMTIgOC4xUzI0NS40LS4xIDIzMyAxMTIuNWMwIDAgMTkuMS03NC45IDEwMy00MC42IDAgMC0xNy43IDc0LTg4IDU2IDAgMCAxNC42LTU0LjYgNjYuMS01Ni42IDAgMC0zOS45LTEwLjMtODIuMSA0OC44IDAgMC0xOS44LTk0LjUtOTMuNi05OS43IDAgMCA3NS4yIDE5LjQgNzcuNiAxMDcuNSAwIC4xLTEwNi40IDctMTA0LTExOS44ek00MjQgMzIzLjdjMCA0OC41LTkuNyA5NS4zLTMyIDEzMi4zLTQyLjIgMzAuOS0xMDUgNDgtMTY4IDQ4LTYyLjkgMC0xMjUuOC0xNy4xLTE2OC00OC0yMi4zLTM3LTMyLTgzLjgtMzItMTMyLjMgMC00OC40IDE3LjctOTQuNyA0MC0xMzEuNyA0Mi4yLTMwLjkgOTcuMS00OC42IDE2MC00OC42IDYzIDAgMTE3LjggMTcuNiAxNjAgNDguNiAyMi4zIDM3IDQwIDgzLjMgNDAgMTMxLjd6TTE0NCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yMTYgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjg4IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM2MCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zODQgMjU2Yy00LjgtMjIuMy03LjQtMzYuOS0xNi01Ni0zOC44LTE5LjktOTAuNS0zMi0xNDQtMzJTMTE4LjggMTgwLjEgODAgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHoiXX0sSmt0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMSAuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43LTQzLjkgMCAwIDIzLjIgNTEuMyAwYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yIC4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMSAuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjQgNTAuNSAwIDAtMjMuMi01OC40IC4zem0tNzggNS4ybC0yMS45IDAgMCAyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjVsMC0yMS45LTIxLjkgMGMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWwyMS45IDAgMC0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjVsMCAyMS45IDIxLjkgMGM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41eiJdfSxlU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkaGF0IixpY29uOls1MTIsNTEyLFtdLCJmN2JjIiwiTTM0MS41IDI4NS42YzMzLjcgMCA4Mi4zLTYuOSA4Mi4zLTQ3IC4yLTYuNyAuOS0xLjgtMjAuOS05Ni4yLTQuNi0xOS4xLTguNy0yNy44LTQyLjMtNDQuNi0yNi4xLTEzLjMtODIuOS0zNS40LTk5LjctMzUuNC0xNS43IDAtMjAuMiAyMC4yLTM4LjkgMjAuMi0xOCAwLTMxLjMtMTUuMS00OC4xLTE1LjEtMTYuMSAwLTI2LjcgMTEtMzQuOCAzMy42LTI3LjUgNzcuNi0yNi4zIDc0LjMtMjYuMSA3OC4zIDAgMjQuOCA5Ny42IDEwNi4xIDIyOC41IDEwNi4xek00MjkgMjU0LjhjNC43IDIyIDQuNyAyNC4zIDQuNyAyNy4yIDAgMzcuNy00Mi4zIDU4LjYtOTggNTguNi0xMjUuNyAuMS0yMzUuOS03My42LTIzNS45LTEyMi4zIDAtNi44IDEuNC0xMy41IDQuMS0xOS43LTQ1LjIgMi4zLTEwMy44IDEwLjMtMTAzLjggNjIgMCA4NC43IDIwMC42IDE4OSAzNTkuNSAxODkgMTIxLjggMCAxNTIuNS01NS4xIDE1Mi41LTk4LjYgMC0zNC4yLTI5LjYtNzMtODIuOS05Ni4yeiJdfSxHdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXBpZWQtcGlwZXIiLGljb246WzQ0OCw1MTIsWyJwaWVkLXBpcGVyLXNxdWFyZSJdLCJlMDFlIiwiTTMyLjEgNDE5bC0zMiA2MC4yIC44LTMyOEMuOSA4NS4zIDU0LjEgMzIgMTIwLjEgMzJsMzI3LjIgMEMzNTQuMyA2MC45IDI1Ny40IDEyNi4yIDE5My40IDIwMC42IDEyMi44IDI4MiA4Mi43IDMzOCAzMi4xIDQxOXptNDE2LTM4N1MzMDUuMyA5OC44IDI2MS43IDE5OS4xYy0yMy4yIDUzLjYtMjguOSAxMTguMS03MSAxNTguNi0yOC45IDI3LjgtNjkuOCAzOC4yLTEwNS4zIDU2LjMtMjMuMiAxMi02Ni40IDQwLjUtODQuOSA2NmwzMjguNCAwYzY2IDAgMTE5LjMtNTMuMyAxMTkuMy0xMTkuMi0uMSAwLS4xLTMyOC44LS4xLTMyOC44eiJdfSx0U3Q9R3VlLGFTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMiIsIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6Il19LHJTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbWRiIixpY29uOls0NDgsNTEyLFtdLCJmMmQ4IiwiTTg5LjUgMzIzLjZsLTM1LjYgMCAwLTEzNy40IDM1LjYgMCAwIDEzNy40em02Ni42LTczLjFsOS4xLTY0LjMgNDYuMyAwIDAgMTM3LjQtMzEgMCAwLTkyLjctMTMuNCA5Mi43LTIxLjMgMC0xMy05MC43LS4xIDkwLjctMzEuMiAwIDAtMTM3LjQgNDYuMSAwYy41IDguMyAyLjggMTguMSA0LjMgMjkuNGw0LjIgMzQuOXptNjcuNiA3My4xbDAtMTM3LjQgMjYuNiAwYzE3IDAgMjcgLjkgMzMgMi40IDYuMSAxLjcgMTAuNyA0LjIgMTMuOSA3LjkgMy4xIDMuMyA1LjEgNi42IDUuOCAxMiAuOSA0LjQgMS40IDEzLjEgMS40IDI2LjJsMCA0OC4yYzAgMTIuMy0uNyAyMC41LTEuOSAyNC43LTEuMSA0LjEtMy4xIDcuNC02IDkuNy0yLjggMi40LTYuNCA0LjEtMTAuNyA1LTQuMiAuOC0xMC42IDEuMy0xOS4xIDEuM2wtNDMgMHptMzUuNS0xMTMuOWwwIDg5LjRjNS4xIDAgOC4zLTEgOS40LTIuMyAxLjEtMiAxLjgtNy42IDEuOC0xNi43bDAtNTMuM2MwLTYuMi0uMS0xMC4yLS43LTEyLS4zLTEuOC0xLjItMy0yLjYtNC43LTEuNCAwLTQuMS0uNC03LjktLjR6bTU3LjMgMTEzLjlsMC0xMzcuNCAzNC4xIDAgMCA0My45YzIuOS0yLjQgNi4xLTQuOSA5LjUtNi42IDMuNi0xLjUgOC44LTIuNCAxMi44LTIuNCA0LjggMCA4LjkgLjggMTIuMyAyLjIgMy40IDEuNSA2IDMuNSA4IDYuMiAxLjcgMi42IDIuNyA1LjMgMy4xIDcuOCAuNCAyLjYtLjIgOC0uMiAxNi4ybDAgMzguNmMwIDguMiAuMiAxNC4zLS44IDE4LjQtMS4xIDQtMy44IDcuNi03LjggOS42LTQuMSAzLjktOC45IDUuMy0xNC42IDUuMy00IDAtOS4yLS45LTEyLjctMi41LTMuNS0xLjgtNi43LTQuNS05LjYtOGwtMi4xIDguNy0zMiAwem00NS4xLTIwLjdjLjctMS44IDEtNiAxLTEyLjVsMC0zNS40YzAtNS42LS4zLTkuNS0xLjEtMTEuMi0uNy0xLjktMy43LTIuNy01LjgtMi43LTIgMC0zLjQgLjgtNC4xIDIuMy0uNiAxLjUtMSA1LjQtMSAxMS42bDAgMzYuNGMwIDYuMSAuNCAxMCAxLjIgMTEuNiAuNiAxLjcgMi4xIDIuNSA0LjEgMi41IDIuMiAwIDQuMi0uOCA1LjctMi42ek00MTguNCAzMmMxNS43IDEuMiAyOC43IDE1LjIgMjguNyAzMS45bDAgMzg0LjJjMCAxNi40LTExLjkgMzAuNC0yOC4yIDMxLS4zIDAtLjUgLjktLjggLjlMMjkuOSA0ODBjLS4zIDAtLjYtLjktLjgtLjEtMTUuNy0xLjQtMjcuOS0xMy44LTI5LTMwLjJMMCA2MS44QzEuMSA0NS45IDEzLjggMzMuMSAzMC4zIDMxLjFsMzg3LjQgMGMuMiAwIC41IC45IC43IC45ek0zMC4zIDQxLjNDMTkgNDIgMTAgNTEgOS4zIDYyLjRsMCAzODcuM2MuNCA1LjQgMi43IDEwLjUgNi40IDE0LjMgMy44IDMuOSA4LjggNi4zIDE0LjIgNi43bDM4OC4yIDBjMTEuNS0xIDIwLjYtMTEuNiAyMC42LTIyLjZsMC0zODQuMmMwLTUuNy0yLjEtMTEuMy02LTE1LjVzLTkuMy02LjgtMTUtNy4ybC0zODcuNCAweiJdfSxzU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHl0aG9uIixpY29uOls0NDgsNTEyLFtdLCJmM2UyIiwiTTQzOS44IDIwMC41Yy03LjctMzAuOS0yMi4zLTU0LjItNTMuNC01NC4ybC00MC4xIDAgMCA0Ny40YzAgMzYuOC0zMS4yIDY3LjgtNjYuOCA2Ny44bC0xMDYuOCAwYy0yOS4yIDAtNTMuNCAyNS01My40IDU0LjNsMCAxMDEuOGMwIDI5IDI1LjIgNDYgNTMuNCA1NC4zIDMzLjggOS45IDY2LjMgMTEuNyAxMDYuOCAwIDI2LjktNy44IDUzLjQtMjMuNSA1My40LTU0LjNsMC00MC43LTEwNi43IDAgMC0xMy42IDE2MC4yIDBjMzEuMSAwIDQyLjYtMjEuNyA1My40LTU0LjIgMTEuMi0zMy41IDEwLjctNjUuNyAwLTEwOC42ek0yODYuMiA0NDQuN2EyMC40IDIwLjQgMCAxIDEgMC00MC43IDIwLjQgMjAuNCAwIDEgMSAwIDQwLjd6TTE2Ny44IDI0OC4xbDEwNi44IDBjMjkuNyAwIDUzLjQtMjQuNSA1My40LTU0LjNsMC0xMDEuOWMwLTI5LTI0LjQtNTAuNy01My40LTU1LjYtMzUuOC01LjktNzQuNy01LjYtMTA2LjggLjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZsMCA0MC43IDEwNi45IDAgMCAxMy42LTE0NyAwYy0zMS4xIDAtNTguMyAxOC43LTY2LjggNTQuMi05LjggNDAuNy0xMC4yIDY2LjEgMCAxMDguNiA3LjYgMzEuNiAyNS43IDU0LjIgNTYuOCA1NC4ybDM2LjcgMCAwLTQ4LjhjMC0zNS4zIDMwLjUtNjYuNCA2Ni44LTY2LjR6TTE2MS4yIDY0LjdhMjAuNCAyMC40IDAgMSAxIDAgNDAuOCAyMC40IDIwLjQgMCAxIDEgMC00MC44eiJdfSxpU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2FzaC1hcHAiLGljb246WzQ0OCw1MTIsW10sImU3ZDQiLCJNNDQwLjMgOTYuOWMtOS40LTI2LjUtMzAuMy00Ny40LTU2LjgtNTctMjQuMS03LjktNDYuMy03LjktOTEuNi03LjlMMTU2IDMyYy00NC44IDAtNjcuMiAwLTkxLjMgNy41LTI2LjUgOS42LTQ3LjQgMzAuNS01NyA1Ny03LjcgMjQuMy03LjcgNDYuNy03LjcgOTEuN0wwIDMyMy44YzAgNDUuMiAwIDY3LjQgNy41IDkxLjUgOS42IDI2LjUgMzAuNSA0Ny40IDU3IDU3IDI0LjMgNy43IDQ2LjcgNy43IDkxLjYgNy43bDEzNS43IDBjNDUgMCA2Ny40IDAgOTEuNi03LjcgMjYuNS05LjYgNDcuNC0zMC41IDU3LTU3IDcuNy0yNC4zIDcuNy00Ni43IDcuNy05MS41bDAtMTM1LjVjMC00NSAwLTY3LjQtNy43LTkxLjV6TTMyMy4xIDE4NS40bC0yNS44IDIxLjFjLTIuMyAxLjktNS41IDEuNS03LjMtLjktMTMuMi0xNi4yLTMzLjctMjUuNC01Ni4xLTI1LjQtMjUgMC00MC42IDEwLjktNDAuNiAyNi4yLS40IDEyLjggMTEuNyAxOS42IDQ5LjEgMjcuNyA0Ny4yIDEwIDY4LjcgMjkuNyA2OC43IDYyLjcgMCA0MS40LTMzLjcgNzEuOS04Ni40IDc1LjNsLTUuMSAyNC41Yy0uNCAyLjMtMi42IDQuMS01LjEgNC4xbC00MC42IDBjLTMuNCAwLTUuOC0zLjItNS4xLTYuNGw2LjQtMjcuM2MtMjYtNy41LTQ3LjItMjItNTkuMy0zOS43LTEuNS0yLjMtMS4xLTUuMyAxLjEtN2wyOC4yLTIyYzIuMy0xLjkgNS44LTEuMyA3LjUgMS4xIDE0LjkgMjAuOSAzOCAzMy4zIDY1LjcgMzMuMyAyNSAwIDQzLjgtMTIuMiA0My44LTI5LjcgMC0xMy40LTkuNC0xOS42LTQxLjItMjYuMi01NC4yLTExLjctNzUuOC0zMS44LTc1LjgtNjQuOSAwLTM4LjQgMzIuMi02Ny4yIDgwLjktNzFsNS4zLTI1LjRjLjQtMi4zIDIuNi00LjEgNS4xLTQuMWwzOS45IDBjMy4yIDAgNS44IDMgNS4xIDYuMmwtNi4yIDI4LjRjMjAuOSA2LjQgMzggMTcuOSA0OC43IDMyLjIgMS43IDIuMSAxLjMgNS4zLS45IDd6Il19LG9TdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QtcCIsaWNvbjpbMzg0LDUxMixbXSwiZjIzMSIsIk0yMDQgNi41Yy0xMDIuNiAwLTIwNCA2OC40LTIwNCAxNzkuMSAwIDcwLjQgMzkuNiAxMTAuNCA2My42IDExMC40IDkuOSAwIDE1LjYtMjcuNiAxNS42LTM1LjQgMC05LjMtMjMuNy0yOS4xLTIzLjctNjcuOCAwLTgwLjQgNjEuMi0xMzcuNCAxNDAuNC0xMzcuNCA2OC4xIDAgMTE4LjUgMzguNyAxMTguNSAxMDkuOCAwIDUzLjEtMjEuMyAxNTIuNy05MC4zIDE1Mi43LTI0LjkgMC00Ni4yLTE4LTQ2LjItNDMuOCAwLTM3LjggMjYuNC03NC40IDI2LjQtMTEzLjQgMC02Ni4yLTkzLjktNTQuMi05My45IDI1LjggMCAxNi44IDIuMSAzNS40IDkuNiA1MC43LTEzLjggNTkuNC00MiAxNDcuOS00MiAyMDkuMSAwIDE4LjkgMi43IDM3LjUgNC41IDU2LjQgMy40IDMuOCAxLjcgMy40IDYuOSAxLjUgNTAuNC02OSA0OC42LTgyLjUgNzEuNC0xNzIuOCAxMi4zIDIzLjQgNDQuMSAzNiA2OS4zIDM2IDEwNi4yIDAgMTUzLjktMTAzLjUgMTUzLjktMTk2LjggMC05OS4zLTg1LjgtMTY0LjEtMTgwLTE2NC4xeiJdfSxuU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2htY3MiLGljb246WzQ0OCw1MTIsW10sImY0MGQiLCJNNDQ4IDE2MWwwLTIxLjMtMjguNS04LjgtMi4yLTEwLjQgMjAuMS0yMC43LTEwLjQtMTkuNC0yOSA3LjUtNy4yLTcuNSA3LjUtMjguMi0xOS4xLTExLjYtMjEuMyAyMS0xMC43LTMuMi03LTI2LjQtMjIuNiAwLTYuMiAyNi40LTEyLjEgMy4yLTE5LjctMjEtMTkuNCAxMSA4LjEgMjcuNy04LjEgOC40LTI4LjUtNy41LTExIDE5LjEgMjAuNyAyMS0yLjkgMTAuNC0yOC41IDcuOC0uMyAyMS43IDI4LjggNy41IDIuNCAxMi4xLTIwLjEgMTkuOSAxMC40IDE4LjUgMjkuNi03LjUgNy4yIDguNi04LjEgMjYuOSAxOS45IDExLjYgMTkuNC0yMC40IDExLjYgMi45IDYuNyAyOC41IDIyLjYgLjMgNi43LTI4LjggMTEuNi0zLjUgMjAuNyAyMS42IDIwLjQtMTIuMS04LjgtMjggNy44LTguMSAyOC44IDguOCAxMC4zLTIwLjEtMjAuOS0xOC44IDIuMi0xMi4xIDI5LjEtN3pNMzI4LjggOTIuNmE1Ni44IDU2LjggMCAxIDEgMCAxMTMuNiA1Ni44IDU2LjggMCAxIDEgMC0xMTMuNnptNzIuMyAxMzBsNDYuOSAxNC41IDAgMzkuOS01NS4xIDEzLjQtNC4xIDIyLjcgMzguOSAzNS4zLTE5LjIgMzcuOS01NC0xNi43LTE0LjYgMTUuMiAxNi43IDUyLjUtMzguMyAyMi43LTM4LjktNDAuNS0yMS43IDYuNi0xMi42IDU0LTQyLjQtLjUtMTIuNi01My42LTIxLjctNS42LTM2LjQgMzguNC0zNy40LTIxLjcgMTUuMi01MC41LTEzLjctMTYuMS01NS41IDE0LjEtMTkuNy0zNC44IDM3LjktMzcuNC00LjgtMjIuOC01NC0xNC4xIC41LTQwLjkgNTMuNS0xNC43IDUuNy0xOS43LTM4LjktMzkuNCAyMC43LTM1LjggNTMuNiAxNC4xIDE1LjItMTUuNy0xNS4yLTUyIDM2LjQtMjAuNyAzNi44IDM5LjQgMjIuNy02LjEgMTEuNi01MiA0Mi40IDAgMTEuNiA0NS45LTIyLjYtNS45LTYuMy0xLjctMy4zIDUuNy0xMSAxOS4xLTMuMyA1LjYgNC42IDQuNiAxNy4yIDE3LjQtLjMgMS0yMy44IDYuNS02LjIgMS43YzAgMy4yLS4xIDkuNi0uMyAxOS4zLTQ3LjUgMTAuNC04My4zIDUyLjgtODMuMyAxMDMuNSAwIDU4LjMgNDcuMyAxMDUuNyAxMDUuNyAxMDUuNyA1MC41IDAgOTIuNy0zNS40IDEwMy4yLTgyLjggOS45IC4xIDE2LjYgLjIgMjAuMSAuM2wxLjYtNi43IDUuNi0yNCAxLjktLjYgMTcuMSAxNy44IDQuNyA0LjkgNS44LTMuNCAyMC40LTEyLjEgNS44LTMuNS0yLTYuNS02LjgtMjEuMnoiXX0sbFN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpvZ2V0IixpY29uOls1MTIsNTEyLFtdLCJmM2I3IiwiTTM4Ni4xIDQ1QzM0NS42IDE5LjkgMzAwLjYgOCAyNTYuMiA4IDE3MyA4IDkxLjggNDkuOSA0NC45IDEyNS45LTI3IDI0Mi41IDkuMyAzOTUuMiAxMjUuOSA0NjcuMXMyNjkuMyAzNS42IDM0MS4yLTgwLjlDNTM5IDI2OS42IDUwMi43IDExNi44IDM4Ni4xIDQ1em01MS44IDMyMy4yYy00MC40IDY1LjUtMTEwLjQgMTAxLjUtMTgyIDEwMS41LTYuOCAwLTEzLjYtLjQtMjAuNC0xLTktMTMuNi0xOS45LTMzLjMtMjMuNy00Mi40LTUuNy0xMy43LTI3LjItNDUuNiAzMS4yLTY3LjEgNTEuNy0xOS4xIDE3Ni43LTE2LjUgMjA4LjgtMTcuNi00IDktOC42IDE3LjktMTMuOSAyNi42ek0yMzcuMSAyODEuOWMtNTUuNS0xLjQtODEuNy0yMC44LTU4LjUtNDguMnM1MS4xLTQwLjcgNjguOS01MS4yYzE3LjktMTAuNSAyNy4zLTMzLjctMjMuNi0yOS43LTEyOC42IDguNy0xNjcuMyA5OS4zLTE3OC4zIDE0MC4yLTguOC00OS43LS4xLTEwMi43IDI4LjUtMTQ5LjEgNjEuOS0xMDAuNSAxOTMuNS0xMzEuNyAyOTQtNjkuOCA3NC44IDQ2LjEgMTExLjIgMTMwLjkgOTkuMyAyMTIuNy0yNC45LS41LTE3OS4zLTMuNi0yMzAuMy00Ljl6bTE4My44LTU0LjhjLTIyLjctNi01NyAxMS4zLTg2LjcgMjcuMi0yOS43IDE1LjgtMzEuMSA4LjItMzEuMSA4LjJzNDAuMi0yOC4xIDUwLjctMzQuNSAzMS45LTE0IDEzLjQtMjQuNmMtMy4yLTEuOC02LjctMi43LTEwLjQtMi43LTE3LjggMC00MS41IDE4LjctNjcuNSAzNS42LTMxLjUgMjAuNS02NS4zIDMxLjMtNjUuMyAzMS4zTDM5My41IDI2NiA0NDAgMjQyLjZzMy42LTkuNS0xOS4xLTE1LjV6Il19LFl1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteW91dHViZSIsaWNvbjpbNDQ4LDUxMixbNjE3OTgsInlvdXR1YmUtc3F1YXJlIl0sImY0MzEiLCJNMjgyIDI1Ni4ybC05NS4yLTU0LjEgMCAxMDguMiA5NS4yLTU0LjF6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNC40IDEzNi4xYzcuNiAyOC42IDcuNiA4OC4yIDcuNiA4OC4yczAgNTkuNi03LjYgODguMWMtNC4yIDE1LjgtMTYuNSAyNy43LTMyLjIgMzEuOS0yOC4zIDcuNy0xNDIuMiA3LjctMTQyLjIgNy43cy0xMTMuOSAwLTE0Mi4yLTcuNmMtMTUuNy00LjItMjgtMTYuMS0zMi4yLTMxLjktNy42LTI4LjYtNy42LTg4LjItNy42LTg4LjJzMC01OS43IDcuNi04OC4yYzQuMi0xNS44IDE2LjUtMjguMiAzMi4yLTMyLjQgMjguMy03LjcgMTQyLjItNy43IDE0Mi4yLTcuN3MxMTMuOSAwIDE0Mi4yIDcuN2MxNS43IDQuMiAyOCAxNi42IDMyLjIgMzIuNHoiXX0sY1N0PVl1ZSxkU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXRsYXNzaWFuIixpY29uOls1MTIsNTEyLFtdLCJmNzdiIiwiTTE1Mi4yIDIzNi40Yy03LjctOC4yLTE5LjctNy43LTI0LjggMi44TDEuNiA0OTAuMmMtNSAxMCAyLjQgMjEuNyAxMy40IDIxLjdsMTc1IDBjNS44IC4xIDExLTMuMiAxMy40LTguNCAzNy45LTc3LjggMTUuMS0xOTYuMy01MS4yLTI2Ny4xek0yNDQuNCA4LjFjLTEyMi4zIDE5My40LTguNSAzNDguNiA2NSA0OTUuNSAyLjUgNS4xIDcuNyA4LjQgMTMuNCA4LjRMNDk3IDUxMmMxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYgLjF6Il19LHVTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWhhdCIsaWNvbjpbNjQwLDUxMixbXSwiZjRlNSIsIk02NDAgMjQuOWMtODAuOCA1My42LTg5LjQgOTIuNS05Ni40IDEwNC40LTYuNyAxMi4yLTExLjcgNjAuMy0yMy4zIDgzLjYtMTEuNyAyMy42LTU0LjIgNDIuMi02Ni4xIDUwLTExLjcgNy44LTI4LjMgMzguMS00MS45IDY0LjItMTA4LjEtNC40LTE2Ny40IDM4LjgtMjU5LjIgOTMuNiAyOS40LTkuNyA0My4zLTE2LjcgNDMuMy0xNi43IDk0LjItMzYgMTM5LjMtNjguMyAyODEuMS00OS4yIDEuMSAwIDEuOSAuNiAyLjggLjggMy45IDIuMiA1LjMgNi45IDMuMSAxMC44bC01My45IDk1LjhjLTIuNSA0LjctNy44IDcuMi0xMy4xIDYuMS0xMjYuOC0yMy44LTIyNi45IDE3LjMtMzE4LjkgMTguNi03My40IDEuMS05Ny41LTMzLjUtOTcuNS0zNS4xIDAtMS4xIC42LTEuNyAxLjctMS43IDAgMCAzOC4zIDAgMTAzLjEtMTUuMyA3My42LTE0MC4zIDEzOS4yLTE4OS40IDIxMC42LTE4OS40IDAgMCA3MS43IDAgOTAuNiA2MS45IDIyLjgtMzkuNyAyOC4zLTQ5LjIgMjguMy00OS4yIDUuMy05LjQgMzUtNzcuMiA4Ni40LTE0MS40IDUxLjUtNjQgOTAuNC03OS45IDExOS4zLTkxLjh6Il19LHBTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnRlcm5ldC1leHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjI2YiIsIk00ODMuMSAxNTkuN2MxMC45LTI0LjYgMjEuNC02MC40IDIxLjQtODcuOSAwLTcyLjctNzkuNi05OC40LTIwOS43LTM4LjYtMTA3LjYtNy4yLTIxMS4yIDczLjctMjM3LjEgMTg2LjUgMzAuOS0zNC45IDc4LjMtODIuMyAxMjItMTAxLjItNTQuMyA0OC4zLTEwMC42IDEwOS40LTEzNS43IDE3My4yLTIwLjcgMzcuOS00NCA5OS4yLTQ0IDE0NSAwIDk4LjYgOTIuOSA4Ni41IDE4MC4zIDQyIDMxLjQgMTUuNCA2Ni42IDE1LjYgMTAxLjcgMTUuNiA5Ny4xIDAgMTg0LjItNTQuMyAyMTYuOC0xNDZsLTEyMC44IDBjLTUyLjUgODguNi0xOTYuOCA1My0xOTYuOC00Ny40bDMyOC44IDBjNi40LTQzLjYtMS43LTk1LjctMjYuOS0xNDEuMnpNNjQuNiAzNDYuOUM4Mi4zIDM5OCAxMTguMyA0NDIuNyAxNjQuOCA0NzAuMiA3Ni4xIDUxOS4xLTguNCA0OTkuMyA2NC42IDM0Ni45ek0xODAuNSAyMzhjMi01NS4yIDUwLjMtOTQuOSAxMDQtOTQuOSA1My40IDAgMTAyIDM5LjcgMTA0IDk0LjlsLTIwOCAwek0zNjUuMSA1MC40YzIxLjQtMTAuMyA0OC42LTIyIDcyLjYtMjIgMzEuNCAwIDU0LjMgMjEuNyA1NC4zIDUzLjcgMCAyMC03LjQgNDktMTQuNiA2Ny45LTI2LjMtNDIuMy02Ni04MS42LTExMi4zLTk5LjZ6Il19LGZTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhaXJibmIiLGljb246WzQ0OCw1MTIsW10sImY4MzQiLCJNMjI0LjUgMzczLjFjLTI1LjItMzEuNy00MC4xLTU5LjQtNDUtODMuMi0yMi41LTg4IDExMi42LTg4IDkwLjEgMC01LjQgMjQuMi0yMC4zIDUyLTQ1IDgzLjJsLS4xIDB6bTEzOC4yIDczLjJjLTQyLjEgMTguMy04My43LTEwLjktMTE5LjMtNTAuNSAxMDMuOS0xMzAuMSA0Ni4xLTIwMC0xOC44LTIwMC01NC45IDAtODUuMiA0Ni41LTczLjMgMTAwLjUgNi45IDI5LjIgMjUuMiA2Mi40IDU0LjQgOTkuNS0zMi41IDM2LTYwLjUgNTIuNy04NS4yIDU0LjktNTAgNy40LTg5LjEtNDEuMS03MS4zLTkxLjEgMTUuMS0zOS4yIDExMS43LTIzMS4yIDExNS45LTI0MS42IDE1LjgtMzAuMSAyNS42LTU3LjQgNTkuNC01Ny40IDMyLjMgMCA0My40IDI1LjkgNjAuNCA1OS45IDM2IDcwLjYgODkuNCAxNzcuNSAxMTQuOCAyMzkuMSAxMy4yIDMzLjEtMS40IDcxLjMtMzcgODYuNnptNDctMTM2LjFjLTEyOC45LTI3NC4zLTEzNi0yNzguMi0xODUuMS0yNzguMi00NS41IDAtNjQuOSAzMS43LTg0LjcgNzIuOC0xMDYuMiAyMTIuMy0xMTYuNCAyNDIuNC0xMTcuMyAyNDUtMjUuMiA2OS4zIDI2LjcgMTMwLjIgODkuNiAxMzAuMiAyMS43IDAgNjAuNi02LjEgMTEyLjQtNjIuNCA1OC43IDYzLjggMTAxLjMgNjIuNCAxMTIuNCA2Mi40IDYyLjkgLjEgMTE0LjktNjAuOSA4OS42LTEzMC4yIDAtMy45LTE2LjgtMzguOS0xNi44LTM5LjZsMCAweiJdfSxoU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianMiLGljb246WzQ0OCw1MTIsW10sImYzYjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjQzLjggMzgxLjRjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjUtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43em05OS42IDYzLjVjLTM5LjEgMC02NC40LTE4LjYtNzYuNy00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42eiJdfSxtU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVpbnNjYXBlIixpY29uOls1MTIsNTEyLFtdLCJmNDU5IiwiTTMxMy43IDQ3NC42bC0xIDBjLTQxLjkgMC04Mi4xLTE2LjctMTExLjgtNDYuM3MtNDYuMy02OS45LTQ2LjMtMTExLjggMTYuNy04Mi4xIDQ2LjMtMTExLjggNjkuOS00Ni4zIDExMS44LTQ2LjNjOTQuOSAwIDE2OC4yIDgzLjEgMTU3IDE3Ni42IDQgNS4xIDguMiA5LjYgMTEuMiAxNS4zIDEzLjQtMzAuMyAyMC4zLTYyLjQgMjAuMy05Ny43IDAtMTM1LjEtMTA5LjUtMjQ0LjYtMjQ0LjYtMjQ0LjZTMTIuMSAxMTcuNSAxMi4xIDI1Mi42IDEyMS42IDQ5Ny4yIDI1Ni42IDQ5Ny4yYzIzLjggLjIgNDcuNi0zLjIgNzAuNC0xMC4xLTUuMi0zLjUtOC45LTguMS0xMy4zLTEyLjV6bTc4LjMtMTY5YTk5LjIgOTkuMiAwIDEgMCAwIDE5OC40IDk5LjIgOTkuMiAwIDEgMCAwLTE5OC40eiJdfSxnU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWR2ZXJzYWwiLGljb246WzUxMiw1MTIsW10sImYzNmEiLCJNNDgyLjEgMzJMMjguNyAzMkM1LjggMzIgMCAzNy45IDAgNjAuOUwwIDQ1MS4xQzAgNDc0LjQgNS44IDQ4MCAyOC43IDQ4MGw0NTMuNCAwYzI0LjQgMCAyOS45LTUuMiAyOS45LTI5LjdsMC0zODguMWMwLTI0LjYtNS40LTMwLjItMjkuOS0zMC4yek0xNzguNCAyMjAuM2MtMjcuNS0yMC4yLTcyLjEtOC43LTg0LjIgMjMuNC00LjMgMTEuMS05LjMgOS41LTE3LjUgOC4zLTkuNy0xLjUtMTcuMi0zLjItMjIuNS01LjUtMjguOC0xMS40IDguNi01NS4zIDI0LjktNjQuMyA0MS4xLTIxLjQgODMuNC0yMi4yIDEyNS4zLTQuOCA0MC45IDE2LjggMzQuNSA1OS4yIDM0LjUgMTI4LjUgMi43IDI1LjgtNC4zIDU4LjMgOS4zIDg4LjggMS45IDQuNCAuNCA3LjktMi43IDEwLjctOC40IDYuNy0zOS4zIDIuMi00Ni42LTcuNC0xLjktMi4yLTEuOC0zLjYtMy45LTYuMi0zLjYtMy45LTcuMy0yLjItMTEuOSAxLTU3LjQgMzYuNC0xNDAuMyAyMS40LTE0Ny00My4zLTMuMS0yOS4zIDEyLjQtNTcuMSAzOS42LTcxIDM4LjItMTkuNSAxMTIuMi0xMS44IDExNC0zMC45IDEuMS0xMC4yLTEuOS0yMC4xLTExLjMtMjcuM3ptMjg2LjcgMjIyYzAgMTUuMS0xMS4xIDkuOS0xNy44IDkuOWwtMzk0LjkgMGMtNy40IDAtMTguMiA0LjgtMTcuOC0xMC43IC40LTEzLjkgMTAuNS05LjEgMTcuMS05LjEgMTMyLjMtLjQgMjY0LjUtLjQgMzk2LjggMCA2LjggMCAxNi42LTQuNCAxNi42IDkuOXptMy44LTM0MC41bDAgMjkxYzAgNS43LS43IDEzLjktOC4xIDEzLjktMTIuNC0uNC0yNy41IDcuMS0zNi4xLTUuNi01LjgtOC43LTcuOC00LTEyLjQtMS4yLTUzLjQgMjkuNy0xMjguMSA3LjEtMTQ0LjQtODUuMi02LjEtMzMuNC0uNy02Ny4xIDE1LjctMTAwIDExLjgtMjMuOSA1Ni45LTc2LjEgMTM2LjEtMzAuNWwwLTcxYzAtMjYuMi0uMS0yNi4yIDI2LTI2LjIgMy4xIDAgNi42IC40IDkuNyAwIDEwLjEtLjggMTMuNiA0LjQgMTMuNiAxNC4zLS4xIC4yLS4xIC4zLS4xIC41ek00MTcuNCAzMzQuMWMtMTkuNSA0Ny42LTcyLjkgNDMuMy05MCA1LjItMTUuMS0zMy4zLTE1LjUtNjguMiAuNC0xMDEuNSAxNi4zLTM0LjEgNTkuNy0zNS43IDgxLjUtNC44IDIwLjYgMjguOCAxNC45IDg0LjYgOC4xIDEwMS4xek0xMjIuNiAzNjkuNGMtNy41LTEuMy0zMy0zLjMtMzMuNy0yNy44LS40LTEzLjkgNy44LTIzIDE5LjgtMjUuOCAyNC40LTUuOSA0OS4zLTkuOSA3My43LTE0LjcgOC45LTIgNy40IDQuNCA3LjggOS41IDEuNCAzMy0yNi4xIDU5LjItNjcuNiA1OC44eiJdfSxiU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1ZSIsIk0yNTMuOCAyMTQuOWwtMzMuMiAxNy4zYy05LjQtMTkuNi0yNS4yLTE5LjktMjcuNS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNiA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNSAwIDI0LjYtNy4xIDMwLjYtMjEuM2wzMC42IDE1LjVjLTYuMiAxMS41LTI1LjcgMzktNjUuMSAzOS0yMi42IDAtNzQtMTAuMy03NC03NyAwLTU4LjcgNDMtNzcuMSA3Mi42LTc3LjEgMzAuNyAwIDUyLjcgMTEuOSA2NiAzNS45em0xNDMgMGwtMzIuOCAxNy4zYy05LjUtMTkuOC0yNS43LTE5LjktMjcuOS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNSA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNCAwIDI0LjYtNy4xIDMwLjUtMjEuM2wzMSAxNS41Yy0yLjEgMy44LTIxLjQgMzktNjUuMSAzOS0yMi43IDAtNzQtOS45LTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNiAxMS45IDY1LjYgMzUuOXpNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYuMSA4IDM5NC41IDEyMS42IDUwNC4xIDI1NS42IDUwNC4xIDM4NS41IDUwNC4xIDUwNCA0MDMuMiA1MDQgMjU2LjEgNTA0IDExOC4yIDM5Ny40IDggMjU1LjYgOHptLjkgNDUwLjhjLTExMi41IDAtMjAzLjctOTMtMjAzLjctMjAyLjggMC0xMDUuNCA4NS40LTIwMy4zIDIwMy43LTIwMy4zIDExMi41IDAgMjAyLjggODkuNSAyMDIuOCAyMDMuMyAwIDEyMS43LTk5LjcgMjAyLjgtMjAyLjggMjAyLjh6Il19LHZTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub3Rpb24iLGljb246WzUxMiw1MTIsW10sImU3ZDkiLCJNOTQuOSAxMDAuMmMxNC45IDEyLjEgMjAuNSAxMS4yIDQ4LjYgOS4zTDQwNy44IDkzLjZjNS42IDAgLjktNS42LS45LTYuNUwzNjIuOSA1NS40Yy04LjQtNi41LTE5LjYtMTQtNDEuMS0xMi4xTDY1LjkgNjEuOWMtOS4zIC45LTExLjIgNS42LTcuNSA5LjNsMzYuNCAyOC45em0xNS45IDYxLjZsMCAyNzguMWMwIDE0LjkgNy41IDIwLjUgMjQuMyAxOS42bDI5MC41LTE2LjhjMTYuOC0uOSAxOC43LTExLjIgMTguNy0yMy4zbDAtMjc2LjJjMC0xMi4xLTQuNy0xOC43LTE1LTE3LjdMMTI1LjcgMTQzLjFjLTExLjIgLjktMTQuOSA2LjUtMTQuOSAxOC43em0yODYuNyAxNC45YzEuOSA4LjQgMCAxNi44LTguNCAxNy44bC0xNCAyLjggMCAyMDUuM2MtMTIuMiA2LjUtMjMuNCAxMC4zLTMyLjcgMTAuMy0xNSAwLTE4LjctNC43LTI5LjktMTguN2wtOTEuNS0xNDMuNyAwIDEzOSAyOSA2LjVzMCAxNi44LTIzLjQgMTYuOGwtNjQuNCAzLjdjLTEuOS0zLjcgMC0xMy4xIDYuNS0xNC45bDE2LjgtNC43IDAtMTgzLjgtMjMuMy0xLjljLTEuOS04LjQgMi44LTIwLjUgMTUuOS0yMS41bDY5LjEtNC43IDk1LjMgMTQ1LjYgMC0xMjguOC0yNC4zLTIuOGMtMS45LTEwLjMgNS42LTE3LjcgMTQuOS0xOC43bDY0LjUtMy44ek00NC40IDM2LjdMMzEwLjYgMTcuMWMzMi43LTIuOCA0MS4xLS45IDYxLjYgMTRsODUgNTkuN2MxNCAxMC4zIDE4LjcgMTMuMSAxOC43IDI0LjNsMCAzMjcuNmMwIDIwLjUtNy41IDMyLjctMzMuNiAzNC41TDEzMy4yIDQ5NS44Yy0xOS42IC45LTI5LTEuOS0zOS4yLTE0LjlMMzEuNCAzOTkuN2MtMTEuMi0xNC45LTE1LjktMjYuMS0xNS45LTM5LjJsMC0yOTEuMmMwLTE2LjggNy41LTMwLjggMjguOS0zMi43eiJdfSx4U3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2hyb21lY2FzdCIsaWNvbjpbNTEyLDUxMixbXSwiZjgzOCIsIk00NDggNjRMNjQuMiA2NGMtMjMuNiAwLTQyLjcgMTkuMS00Mi43IDQyLjdsMCA2My45IDQyLjcgMCAwLTYzLjkgMzgzLjggMCAwIDI5OC42LTE0OS4yIDAgMCA0Mi43IDE0OS40IDBjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdsMC0yOTguNkM0OTAuOSA4My4xIDQ3MS42IDY0IDQ0OCA2NHpNMjEuNSAzODMuNmwwIDYzLjkgNjMuOSAwYzAtMzUuMy0yOC42LTYzLjktNjMuOS02My45em0wLTg1bDAgNDIuNGM1OC45IDAgMTA2LjYgNDguMSAxMDYuNiAxMDdsNDIuNyAwYy4xLTgyLjQtNjYuOS0xNDkuMy0xNDkuMy0xNDkuNHpNMjEzLjYgNDQ4bDQyLjcgMEMyNTUuOCAzMTguNSAxNTEgMjEzLjcgMjEuNSAyMTMuNGwwIDQyLjRjMTA2LS4yIDE5MiA4Ni4yIDE5Mi4xIDE5Mi4yeiJdfSx5U3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MtaHViIixpY29uOls1MTIsNTEyLFtdLCJlODZlIiwiTTEzMC40IDE2YzYwLjkgMCAxMTAuNCA0OS41IDExMC40IDExMC40bDAgMjQuOWM0LjgtLjcgOS43LTEgMTQuNi0xIDg4LjEtLjIgMTY1LjEgNDkgMjA1LjQgMTIxLjItMjIuOC0xNi4yLTUwLjctMjUuNC04MC40LTI1LjMtNzcuMSAuMi0xMzkuNSA2Mi42LTEzOS42IDEzOS40LS4xIDYwLjktNDkuNSAxMTAuMy0xMTAuNyAxMTAuNS02MC42IC4yLTExMC4yLTQ5LjUtMTEwLjItMTEwLjUgLjItMi42IDAgMCAuMS0zLjJsMC0yNTZDMjAuMSA2NS41IDY5LjUgMTYgMTMwLjQgMTZ6TTM4MC4zIDQ5NmExMTAuNCAxMTAuNCAwIDEgMSAwLTIyMC45IDExMC40IDExMC40IDAgMSAxIDAgMjIwLjl6Il19LHdTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aWtpcGVkaWEtdyIsaWNvbjpbNjQwLDUxMixbXSwiZjI2NiIsIk02NDAgNTEuMmwtLjMgMTIuMmMtMjguMSAuOC00NSAxNS44LTU1LjggNDAuMy0yNSA1Ny44LTEwMy4zIDI0MC0xNTUuMyAzNTguNmwtMTMuNiAwLTgxLjktMTkzLjFjLTMyLjUgNjMuNi02OC4zIDEzMC05OS4yIDE5My4xLS4zIC4zLTE1IDAtMTUtLjMtNDYuOS0xMDkuNy05Ni4xLTIxOC42LTE0My4xLTMyOC42LTExLjQtMjYuNy00OS40LTcwLTc1LjYtNjkuNyAwLTMuMS0uMy0xMC0uMy0xNC4ybDE2MS45IDAgMCAxMy45Yy0xOS4yIDEuMS01Mi44IDEzLjMtNDMuMyAzNC4yIDIxLjkgNDkuNyAxMDMuNiAyNDAuMyAxMjUuNiAyODguNiAxNS0yOS43IDU3LjgtMTA5LjIgNzUuMy0xNDIuOC0xMy45LTI4LjMtNTguNi0xMzMuOS03Mi44LTE2MC05LjctMTcuOC0zNi4xLTE5LjQtNTUuOC0xOS43bDAtMTMuOSAxNDIuNSAuMyAwIDEzLjFjLTE5LjQgLjYtMzguMSA3LjgtMjkuNCAyNi4xIDE4LjkgNDAgMzAuNiA2OC4xIDQ4LjEgMTA0LjcgNS42LTEwLjggMzQuNy02OS40IDQ4LjEtMTAwLjggOC45LTIwLjYtMy45LTI4LjYtMzguNi0yOS40IC4zLTMuNiAwLTEwLjMgLjMtMTMuNiA0NC40LS4zIDExMS4xLS4zIDEyMy4xLS42bDAgMTMuNkM0NjIuNCA2NCA0MzkuMSA3NiA0MjYuOCA5NC45TDM2Ny42IDIxNy43YzYuNCAxNi4xIDYzLjMgMTQyLjggNjkuMiAxNTYuN0w1NTkuMiA5MS44Yy04LjYtMjMuMS0zNi40LTI4LjEtNDcuMi0yOC4zbDAtMTMuOSAxMjcuOCAxLjEgLjIgLjV6Il19LE1TdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXRyb3giLGljb246WzQ0OCw1MTIsW10sImU0NGEiLCJNMjEyLjQgMGwwIDAgMjM1LjYgMCAwIDEyOC0zODQgMEM2NCA1Ny42IDE0MS44IC41IDIxMi40IDB6bTI0LjggMTkybDAgMGM2OS45IC41IDE0Ni43IDU3LjYgMTQ2LjcgMTI4bC0xNzMuMiAwIDAgMEMxNDAuOSAzMTkuNiA2NCAyNjIuNCA2NCAxOTJsMTczLjMgMHptLTEuNyAzMjBjNzAuNy0uNSAxNDguNC01Ny42IDE0OC40LTEyOGwtMzg0IDAgMCAxMjggMjM1LjYgMCAwIDB6Il19LEt1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0bGFiIixpY29uOls0NDgsNTEyLFsiZ2l0bGFiLXNxdWFyZSJdLCJlNWFlIiwiTTAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NnptMzM3LjUgMTIuNWw0NC42IDExNi40IC40IDEuMmM1LjYgMTYuOCA3LjIgMzUuMiAyLjMgNTIuNS01IDE3LjItMTUuNCAzMi40LTI5LjggNDMuM2wtLjIgLjEtNjguNCA1MS4yLTU0LjEgNDAuOWMtLjUgLjItMS4xIC41LTEuNyAuOC0yIDEtNC40IDItNi43IDItMyAwLTYuOC0xLjgtOC4zLTIuOGwtNTQuMi00MC45LTY3LjktNTAuOS0uNC0uMy0uMi0uMWMtMTQuMy0xMC44LTI0LjgtMjYtMjkuNy00My4zcy00LjItMzUuNyAyLjItNTIuNWwuNS0xLjIgNDQuNy0xMTYuNGMuOS0yLjMgMi41LTQuMyA0LjUtNS42IDEuNi0xIDMuNC0xLjYgNS4yLTEuOCAxLjMtLjcgMi4xLS40IDMuNCAuMSAuNiAuMiAxLjIgLjUgMiAuNyAxIC40IDEuNiAuOSAyLjQgMS41IC42IC40IDEuMiAxIDIuMSAxLjUgMS4yIDEuNCAyLjIgMyAyLjcgNC44bDI5LjIgOTIuMiAxMjIuOSAwIDMwLjItOTIuMmMuNS0xLjggMS40LTMuNCAyLjYtNC44czIuOC0yLjQgNC41LTMuMWMxLjctLjYgMy42LS45IDUuNC0uN3MzLjYgLjggNS4yIDEuOGMyIDEuMyAzLjcgMy4zIDQuNiA1LjZ6Il19LGtTdD1LdWUsU1N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob2VsYWNlIixpY29uOls1MTIsNTEyLFtdLCJlNjBjIiwiTTQwNS4yIDMzMWMyLjItMS4xIDQuNC0yLjMgNi41LTMuN2w4LjMtNC44YzEuNS0xLjEgNC40LTMuNCA4LjctNi43bC41LS41YzMuNC0zLjQgNy4yLTUgMTEuMy00LjkgMS44IDAgMy45IC41IDYuNCAxLjVsMzEtMjcuNWMuOS0uNyAxLjctMS4zIDIuNi0xLjhsLjIgMGMzLjMtMS45IDYtMS44IDguMiAuNCAzLjkgMi4xIDQuMiA1LjYgLjkgMTAuNkw0NTcuMiAzMjJjLjIgLjUgLjQgMSAuNCAxLjUgLjUgMi4yIC4zIDQuNC0uNSA2LjYtLjcgMS41LTEuOCAyLjktMy4xIDQuMi0xLjQgMS40LTIuNyAyLjgtNC4yIDQuMkw0MzEgMzUyLjJjLTEuNyAxLjItMy40IDIuMy01LjEgMy4zLTIuMSAxLjMtNC4zIDIuNS02LjYgMy42LTEgLjQtMS45IC45LTIuOSAxLjMtNS45IDIuNS0xMS45IDQuMi0xOC4yIDUtMi45IDI0LjUtMTEuMyA0Ny4xLTI1LjEgNjcuOC0xNy41IDI1LjctNDEuNCA0NS40LTcxLjggNTguOC0zMC4yIDEzLjUtNjMgMjAuMi05OC4yIDIwLjItNDguNi0uNS04OC0xMS40LTExOC4yLTMyLjgtMzUuMS0yNS01Mi42LTU3LjktNTIuNi05OS4xbDAtNS42YzEuMi0yOC4xIDkuNS01NC42IDI0LjgtNzkuOCAxNS4xLTI0LjkgMzcuMS00MS43IDY2LjEtNTAuNSAxNC45LTQuNCAyOS45LTYuNiA0NS02LjYgMTUuNSAwIDMxLjYgMi45IDQ4LjEgOC42czM1LjIgMTUuNSA1NS45IDI5LjVsNTQuMSAzNi4zYzE1LjEgOS44IDI4LjggMTYuNSA0MS4yIDIwLTIuNi0yNS4xLTExLjctNDYuNi0yNy4zLTY0LjUtMTUuNy0xOC4xLTM1LjYtMzEuMy01OS45LTM5LjdMMjU3IDIyMGMtMjEuNC03LjUtMzcuMy0xNC45LTQ3LjctMjIuMi0yOC4yLTE5LjEtNDMuOC00NS4yLTQ3LTc4LjVsLS41LTkuOGMwLTMyLjEgMTMtNTguOSAzOS04MC41IDIzLTE5LjMgNTAuNi0yOSA4Mi41LTI5IDI0IDAgNDUuNiA2LjkgNjQuNyAyMC44IDE5LjIgMTQgMzAuMSAzMy44IDMyLjYgNTkuNGwuNSAxMGMwIDE4LjYtNC44IDM0LjUtMTQuNCA0Ny43LTkuOCAxMy4yLTE4LjUgMTkuOS0yNiAxOS45LTEuNi0uMS0zLjEtLjMtNC41LS42bC0zNCAzMmMtNS41IDMtOS4yIDIuNS0xMS4xLTEuNi0xLjktMi4yLTEuOC00LjkgLjUtOC4ybC4yLS4yYy41LS43IDEuMi0xLjUgMi0yLjRsMzEuNi0zMGMtLjQtMS41LS42LTMuMS0uNi00LjggMC00LjEgMS42LTcuNiA0LjktMTAuNCAxMy44LTEyLjQgMjAuOC0yNi43IDIwLjgtNDIuOCAwLTE2LTYuMS0yOS41LTE4LjItNDAuNHMtMjguNy0xNi41LTQ5LjctMTYuOGMtMjYuMiAwLTQ3LjggNy45LTY0LjcgMjMuN1MxOTIuNiA4OS45IDE5Mi42IDExMmMwIDE3LjggNi45IDMzLjkgMjAuNiA0OC4zIDEzLjYgMTQuMiAzNC42IDI1LjQgNjMgMzMuNSAzOS44IDExLjUgNzAuMiAzMSA5MS4zIDU4LjMgMTguNyAyNC4yIDI5LjEgNTEuMyAzMS4zIDgxLjQgMi4yLS43IDQuMy0xLjUgNi41LTIuNmwtLjEgLjF6TTI5NC40IDE3OC43YzAgMS4xIC42IDEuNiAxLjggMS42IC4xIDAgOS43LTguOSAyOC44LTI2LjYgMC0yLjQtNS4xIC45LTE1LjMgMTAtMTAuMiA5LjItMTUuMyAxNC4yLTE1LjMgMTQuOWwwIC4xem04IDYuNGMwLTEtLjUtMS41LTEuNS0xLjUtMS4xIDAtMi4xIC41LTIuOSAxLjYtMS45LS4xLTMuMyAuMS00LjIgLjctLjQgLjItLjUgLjUtLjUgLjcgMCAuNyAuNSAxLjMgMS41IDEuNmwzLjMgMGMyLjktMS4xIDQuNC0yLjIgNC40LTMuM2wtLjEgLjJ6TTMyNSAxNjUuMmMwLTIuOC0xLjYtMi44LTQuOSAwLTEuNiAxLjUtMy42IDMuNS02IDYuMi0uOCAuNi0yLjYgMi4yLTUuMyA0LjktMi44IDIuOS00LjIgNC43LTQuMiA1LjNsLjIgMS4zYy43IC4yIDEuMiAuNCAxLjUgLjQgLjEgMCAzLjMtMi45IDkuNS04LjdzOS4zLTguOSA5LjMtOS4zbC0uMS0uMXptMTU5LjcgMTIwbC0zMC42IDI3YzEuOCAxIDMuMiAyLjQgNCA0LjJsMzAuMi0yN2MuMi0xLjIgLjEtMi4yLS41LTIuOS0uNi0uNS0xLjYtLjktMy4xLTEuM3ptLTEuNi0uOWwtLjctLjctMjcgMjEuOSAxLjYgMiAyNi0yMy4xIC4xLS4xek0zNjYuOSAzNjMuOWMtOC0yLjEtMTUuNC00LjYtMjIuMi03LjUtMTUuMy02LjItMzQuMy0xNy01Ny0zMi40bC0zNy40LTI1LjNjLTE1LjgtMTAuMS0zMC4yLTE3LjYtNDMuMi0yMi42LTEzLjEtNC45LTI2LTcuMy0zOC42LTcuM2wtNS41IDBjLTMyLjIgMS43LTU3LjIgMTMuOC03NSAzNi4yLTE2LjYgMjAuOC0yNSA0NS4zLTI1IDczLjYgMCAzMS44IDEyLjggNTYuNyAzOC4yIDc0LjcgMjUuNCAxOC4xIDYwLjIgMjcuMSAxMDQuNCAyNy4xIDM0LjcgMCA2NC02LjIgODcuOC0xOC42IDIzLjctMTIuNCA0Mi4xLTI4LjggNTUuMi00OS4yIDkuOC0xNS41IDE1LjktMzEuOCAxOC4yLTQ4LjhsLjEgLjF6Il19LHpTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3RyZWV0bWFwIixpY29uOls1MTIsNTEyLFtdLCJlODZiIiwiTTYxIDQ5OC43Yy03LjEtMS44LTEwLjgtNC43LTI5LjYtMjMuNi0yMi41LTIyLjQtMjMuOS0yNC42LTIzLjktMzYuMyAwLTEzLTMuOS04LjQgNjcuOS04MC4zIDcyLjUtNzIuNyA2OC43LTY5LjUgODEuOS02OS41IDYuMSAwIDcuNiAuNCAxMi41IDIuOGw1LjYgMi44YzExLjctMTEuNyAyMy40LTIzLjQgMzUuMS0zNS4xbC00LjQtNi45Yy04LjYtMTMuMy0xNi42LTMyLjgtMjAuMy00OC45LTEwLjItNDUuNCAuOC05My4zIDI5LjgtMTI5LjcgNTAuMS02Mi44IDE0MC4xLTc2LjcgMjA2LjYtMzIgMzYuNSAyNC41IDYwLjMgNjIuNSA2NyAxMDcgMS40IDkuNCAxLjQgMzEuOCAwIDQxLjgtNC45IDM0LjYtMTkuNyA2NC00NC40IDg4LjctMTIuNyAxMi43LTIzIDIwLjEtMzkuMiAyOC4yLTE5LjMgOS43LTM1LjcgMTQuMy01OCAxNi4xLTMxLjcgMi42LTY2LjktNi4xLTkzLjgtMjMuNGwtNi45LTQuNGMtMTEuNyAxMS43LTIzLjQgMjMuNC0zNS4xIDM1LjFsMi44IDUuNmMyLjUgNC45IDIuOCA2LjQgMi44IDEyLjUgMCAxMy4xIDMuMSA5LjQtNjkgODEuNS01NS42IDU1LjUtNjQuMSA2My43LTY4LjQgNjUuNy01LjUgMi41LTEzLjkgMy40LTE5IDIuMXpNMzU5LjQgMjk2LjljNDAuMS03LjMgNzUuMS0zNCA5Mi43LTcwLjcgMjgtNTguNCA5LjItMTI3LTQ0LjgtMTYzLjMtMTIuOS04LjctMzAuOC0xNi00Ny43LTE5LjQtMTEuNy0yLjQtMzYuNC0yLjEtNDguNiAuNS0xOC4yIDMuOS0zNC45IDExLjEtNDkuNCAyMS40LTguOSA2LjQtMjMuNyAyMS4xLTI5LjkgMjkuOS0zNC42IDQ5LTMxLjUgMTE0LjEgNy43IDE1OS4zIDIwLjEgMjMuMiA0Ny44IDM4LjQgNzguNiA0MyAxMC4yIDEuNSAzMSAxLjIgNDEuNS0uOHptLTM1LjUtMTcuNGMtMTMuOC0yLjItMjUuNi01LjctMzUuMS0xMC41bC01LjQtMi43IDAtNDkuOS05LjUgMGMtOC4yIDAtMTkuNSAxLjYtMjcuNyA0LTEuMSAuMy0xLjUgMS42LTEuNyA0LjhsLS4zIDQuNC00LjEtNy44Yy05LTE3LjItMTIuMi0zMC43LTEyLjItNTEuNCAwLTE2IDEuMS0yMy40IDUuNi0zNi4zIDIuNC02LjggOC4yLTE4LjkgMTAuOC0yMi4zIDEuMS0xLjUgMS4yLTEuMSAxLjMgMy4zbDAgNWMxOC44LS4yIDM3LjYtLjMgNTYuNC0uNSAuMi00LjcgLjMtOS41IC41LTE0LjJsLTE5IDAgMC0zMSAzLjQtMS43YzUuNi0yLjggMTUuOS02LjcgMjEuNy04LjIgMy0uOCA2LjEtMS42IDYuOS0xLjggMS4yLS40IDEuMyAuMSAuNyAzLjMtMS4yIDYuMS0uOSAyMyAuNSAyOSAyLjggMTEuOSA5LjggMjAuNyAxOS4yIDI0LjMgNS42IDIuMSAxNi4zIDIuNiAyMi41IC45IDUuOS0xLjYgMTIuNS02LjQgMTUuOS0xMS41IDUtNy41IDYuNy0xNC4xIDcuMi0yNy4xbC40LTExLjQgNyAzLjZjOCA0LjIgMTcuOCAxMS4yIDI0LjkgMTggNC44IDQuNiA1IDQuOCA1IDkuMmwwIDQuNS0xOC45IDAgMCAxNC42IDM1IDBjMS4zIDIuNiAyLjUgNS4yIDMuOCA3LjdsLTkuNyAwYy02LjcgMC0xMi43IC42LTE5LjQgMS45bC05LjcgMS45IDAgNy4xYzAgMy45IC4yIDcuMSAuMyA3LjFzNC4xLS44IDguNy0xLjcgOC43LTEuNyA5LjEtMS43Yy40IDAgLjggMTEuMyAuOCAyNS44bDAgMjUuOGMtNi4yIC4yLTEyLjMgLjMtMTguNSAuNS0uMiA0LjctLjMgOS40LS41IDE0LjIgMTMuNSAuMiAyNyAuMyA0MC40IC41LTEgMi4zLTIgNC41LTMgNi44bC0xMC43IC4xYy05LjkgLjEtMTEuMSAuMi0xNS42IDIuNS0xMS44IDUuOC0xOC4xIDE4LjktMTguMyAzNy45bC0uMSA5LjMtNS44IDNjLTUgMi42LTIyLjYgOS0yNC45IDktLjUgMC0uOC0xMi0uOC0zMC42bDAtMzAuNi05LjQgMGMtNiAwLTEyLjQgLjYtMTcuOSAxLjctMTIuNiAyLjYtMTEuNSAxLjctMTEuNSA5LjUgMCA1IC4zIDYuOCAxLjEgNi44IC42IDAgNC42LS44IDguOC0xLjdzOC0xLjcgOC4zLTEuNyAuNiAxMSAuNiAyNC41bDAgMjQuNS03LjUtLjFjLTQuMS0uMS04LjUtLjMtOS43LS41em0tMzkuNC03MS42YzguOS0zLjkgMTUuNi0xMi45IDE4LjMtMjQuNCAxLjYtNi45IDEuNy0yMi42IDAtMzAuMi0yLjUtMTItOS42LTIxLjEtMTkuMy0yNC44LTYuOS0yLjYtMTguNC0yLjYtMjUuMyAwLTkuNyAzLjctMTYuNCAxMi44LTE5LjIgMjUuNi0xLjYgNy41LTEuNiAyMS40IDAgMjguOSAyLjYgMTIuNSAxMC41IDIyLjMgMjAuNiAyNS42IDcgMi4zIDE4LjkgMiAyNC45LS43em0tMTkuOS0xNC41Yy0zLjUtMy01LjItOC45LTUuOC0yMC42LS42LTEwLjUgLjYtMjEuMyAyLjktMjYgMi00LjMgNS44LTYuNCAxMC40LTYgNy40IC44IDEwLjMgNi41IDExLjEgMjIuNSAuOSAxNi43LTEuOSAyOC45LTcgMzEuMy0zLjkgMS44LTguNiAxLjMtMTEuNi0xLjJ6bTk0LjkgMTUuMWMxNS00LjYgMjIuOC0yMC4xIDIxLjktNDMuNS0uOC0xOS45LTcuOS0zMi4xLTIxLjUtMzcuMi01LjctMi4xLTE4LTEuOC0yNCAuNS05LjYgMy43LTE2LjQgMTIuNC0xOS4zIDI0LjctMiA4LjYtMS4zIDI4IDEuMyAzNS4yIDQgMTEuMyAxMS42IDE4LjcgMjEuNCAyMSA1LjggMS40IDE0LjQgMSAyMC4zLS44em0tMTYuNy0xNC4yYy01LTIuNy03LjMtMTMuMi02LjUtMzAuMSAuNi0xMi44IDEuNS0xNi43IDQuOC0yMC40IDQuNy01LjMgMTMuNi0zLjggMTYuNyAyLjggMy40IDcuMyA0IDMwLjEgMSA0MC4yLTEuNyA1LjctNS4yIDguOC0xMC4xIDguNy0yIDAtNC42LS42LTUuOC0xLjN6bS04NS4yIDUxLjVjLTcuMy03LjYtOS45LTExLjQtOC40LTExLjkgMi45LS45IDEzLjktMy4xIDE0LjItMi44IC4yIC4yIC4yIDQuOSAuMSAxMC40bC0uMiAxMC4xLTUuNi01Ljl6bTE1Ni40LTEuMmMuNy02IDMuMS0xMS41IDUuNy0xMy4yIDIuOS0xLjggNi40LTIuNiA4LTEuNyAxLjIgLjcgLjkgMS41LTIuNCA1LjktMi4xIDIuOC01LjYgNy03LjggOS40bC00IDQuMyAuNS00Ljd6TTQzOC40IDE2MWwuMS0zMi45IDIuNiA3LjdjNS4xIDE1LjMgNi45IDMxLjggNS4xIDQ2LjYtMS40IDExLjYtMS40IDExLjUtNC45IDExLjVsLTMgMCAuMS0zMi45ek0zNDQgMTA2LjJjLTIuNi0xLTUuMy00LjgtNi41LTktMS4yLTQtMS41LTI4LjUtLjQtMzMuNSAuNi0zIC45LTMuMiAzLjgtMy4yIDYuMiAwIDE4LjMgMiAxOC43IDMuMSAuMiAuNiAuNyA0LjkgMSA5LjUgLjcgOS43LS43IDIzLjItMi44IDI3LjYtMi40IDUuMS04LjUgNy41LTEzLjcgNS4zem0tOTQuMy0yLjRjLjQtLjggMy43LTQuNiA3LjMtOC40bDYuNS02LjljMCA1LjYgMCAxMS4yIC4xIDE2LjhsLTcuMyAwYy02LjcgMC03LjMtLjEtNi41LTEuNXptMzQuNCAzNDEuN2MtMjQtNi45LTQzLjktMTIuOS00NC4yLTEzLjEtLjUtLjYgMjQuMy04OC41IDI1LjMtODkuNiAuNS0uNSA4NS40IDIzLjMgODguOSAyNC45IDEuMiAuNi0uMSA1LjgtMTAuNiA0Mi40LTYuNiAyMy0xMi40IDQzLjItMTIuOCA0NXMtMS40IDMuMi0xLjkgMy4xLTIwLjctNS44LTQ0LjctMTIuN3pNMzQyLjggNDU2YzAtMS4xIDI0LjctODcuMyAyNS4xLTg3LjYgLjktLjcgODcuMS0yNC43IDg3LjQtMjQuNCAuNCAuNC0yNC4xIDg3LjMtMjQuNyA4Ny45LS40IC4zLTgzLjIgMjQtODUuOCAyNC41LTEuMSAuMi0xLjkgLjEtMS45LS40ek0xOTkuNiA0MTcuNWMxNy0xNy4xIDMyLjItMzIuNyAzMy43LTM0LjcgMy40LTQuNSA4LjItMTQuOCA5LjUtMjAuNSAuNS0yLjQgMS4xLTcuMSAxLjItMTAuNWwuMi02LjIgMy43LTFjMi0uNiAzLjgtLjkgNC0uNyAuNSAuNS0yNC4zIDg3LTI1LjEgODcuOC0uNCAuMy0xMy42IDQuMy0yOS40IDguOGwtMjguNyA4LjIgMzEtMzEuMXptMTY2LjktNjEuNmMtLjItLjMtLjctMi0xLjItMy43bC0uOS0zLjIgMy4yLS41YzI3LTQuNiA1NS45LTE3LjMgNzguNy0zNC41IDMuMy0yLjUgNS4xLTMuNCA1LjMtMi43IDEuMSAzLjMgNS41IDE5LjEgNS40IDE5LjMtLjcgLjctOTAuMiAyNS44LTkwLjUgMjUuNHpNNjIuOSAzMjkuOGMtMS0uOC0yMy44LTc3LjktMjUuNS04Ni40LS4zLTEuNyAzLS45IDQzLjggMTAuOCA0Mi43IDEyLjIgNDQuMiAxMi43IDQ0LjggMTQuOSAuNSAyIC4yIDIuNi0yLjUgNC41LTEuNyAxLjItMTUuNSAxNC42LTMwLjcgMjkuOHMtMjcuOCAyNy42LTI4IDI3LjYtMS4xLS41LTEuOC0xLjF6bTE2LjUtODguMmMtMjMuOS02LjktNDMuNS0xMi42LTQzLjYtMTIuNi0uMy0uMiAyNS4zLTg5LjMgMjUuOS04OS44IC40LS40IDg5LjEgMjQuNCA5MCAyNS4yIC4yIC4yLTUuNCAyMC41LTEyLjQgNDUuMS0xMS42IDQwLjctMTIuOSA0NC44LTE0LjUgNDQuNy0xIDAtMjEuMy01LjctNDUuMi0xMi42em01OS42IDEwLjhjLjItLjYgNC4zLTE0LjUgOC45LTMwLjlsOC41LTI5LjcgMS4xIDYuNWMxLjkgMTEuMiA1LjMgMjMuOSA5LjMgMzUuMSAyLjEgNS45IDMuOCAxMC45IDMuNiAxMXMtNi43IDItMTQuNSA0LjMtMTQuOSA0LjItMTUuOCA0LjVjLTEuMSAuMy0xLjUgLjEtMS4yLS43ek0xMDYgMTM5LjFjLTIzLjktNi45LTQzLjctMTIuOC00My45LTEzLjItLjgtMS4zLTI1LjEtODctMjQuNy04Ny40IC41LS41IDg2LjggMjQuMyA4Ny42IDI1LjEgLjkgMSAyNS44IDg4LjIgMjUuMSA4OC0uMyAwLTIwLjEtNS43LTQ0LTEyLjZ6bTQzLjItMzQuNUMxMzYuNSA2MCAxMzkgNjguOCAxMzcuMiA2Mi41bDM0LjEtOS43YzE4LjgtNS40IDM0LjctOS45IDM1LjQtMTAuMnMtMS42IDIuOC01LjIgNi44Yy0xOS4xIDIxLjMtMzEuNSA0NC0zOS40IDcxLjktMS41IDUuMi0yLjcgMTAuMy0yLjcgMTEuMyAwIDUuOS0yLjMtLjUtMTAuMi0yOHoiXX0sQ1N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmRhIiwiTTM1My41IDMyTDk0LjggMzJDNDIuNyAzMiAuMSA3NC42IC4xIDEyNi42bDAgMjU4LjdDLjEgNDM3LjQgNDIuNyA0ODAgOTQuOCA0ODBsMjU4LjcgMGM1Mi4xIDAgOTQuNy00Mi42IDk0LjctOTQuNmwwLTI1OC44YzAtNTItNDIuNi05NC42LTk0LjctOTQuNnptLTUwIDMxNi40Yy0yNy45IDQ4LjItODkuOSA2NC45LTEzOC4yIDM3LjItMjIuOSAzOS44LTU0LjkgOC42LTQyLjMtMTMuMmwxNS43LTI3LjJjNS45LTEwLjMgMTkuMi0xMy45IDI5LjUtNy45IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgMjcuNiAxNS45IDYzLjQgNi4zIDc5LjQtMjEuMyAxNS45LTI3LjYgNi4zLTYzLjQtMjEuMy03OS40LTE3LjgtMTAuMi0uNi0uNC0xOC42LTEwLjYtMjQuNi0xNC4yLTMuNC01MS45IDIxLjYtMzcuNSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDQ4LjQgMjggNjUuMSA5MC4zIDM3LjIgMTM4LjV6bTIxLjgtMjA4LjhjLTE3IDI5LjUtMTYuMyAyOC44LTE5IDMxLjUtNi41IDYuNS0xNi4zIDguNy0yNi41IDMuNi0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctNDguMi0yNy44LTY0LjktOTAuMS0zNy4xLTEzOC40IDI3LjktNDguMiA4OS45LTY0LjkgMTM4LjItMzcuMmw0LjgtOC40YzE0LjMtMjQuOSA1Mi0zLjMgMzcuNyAyMS41eiJdfSxfU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4IixpY29uOls0NDgsNTEyLFtdLCJmM2NiIiwiTTAgNjRMMCA0MTIuOWMwIDU2LjIgODggNTguMSA4OCAwbDAtMjM4LjZjNy45LTUyLjkgODgtNTAuNCA4OCA2LjVsMCAxNzUuM2MwIDU3LjkgOTYgNTggOTYgMEwyNzIgMjQwYzUuMy01NC43IDg4LTUyLjUgODggNC4zbDAgMjMuOGMwIDU5LjkgODggNTYuNiA4OCAwTDQ0OCA2NCAwIDY0eiJdfSxUU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYXBwbGUtcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDE2IiwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWwtMjQuMyAwIDAtNTQuMiAyNC40IDBjMTguNCAwIDI4LjkgOS44IDI4LjkgMjcuMXpNMzQ5LjcgMjgxYzAgOC4zIDcuMiAxMy43IDE4LjUgMTMuNyAxNC40IDAgMjUuMi05LjEgMjUuMi0yMS45bDAtNy43LTIzLjUgMS41Yy0xMy4zIC45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ3OWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA3OUMwIDUyLjUgMjEuNSAzMSA0OCAzMWw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40IC43IDE2LjgtNC4yIDIyLjEtMTAuNCA1LjItNi40IDguNi0xNSA3LjctMjMuNy03LjQgLjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNSAuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhsLTUxLjIgMCAwIDEzNi40IDIxLjIgMCAwLTQ2LjYgMjkuMyAwYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVsMTkuMSAwYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJsMCA3LjUtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGwuNCAwIDAgMTYuNCAxOS42IDAgMC02OCAuMSAwek01MTYgMjEwLjlsLTIxLjUgMC0yNC45IDgwLjYtLjQgMC0yNC45LTgwLjYtMjIuMyAwIDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjNsMCAxNi40YzEuMiAuNCA2LjUgLjUgOC4xIC41IDIwLjcgMCAzMC40LTcuOSAzOC45LTMxLjhMNTE2IDIxMC45eiJdfSxMU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic29sYW5hIixpY29uOls1MTIsNTEyLFtdLCJlODVlIiwiTTUxMC41IDM4NS4ybC04NC45IDg4LjdjLTEuOCAxLjktNC4xIDMuNS02LjYgNC41cy01LjIgMS42LTcuOSAxLjZMOC45IDQ4MGMtMS45IDAtMy44LS41LTUuNC0xLjZzLTIuOS0yLjUtMy42LTQuMi0xLTMuNi0uNy01LjUgMS4yLTMuNiAyLjUtNC45bDg0LjktODguN2MxLjgtMS45IDQuMS0zLjUgNi41LTQuNXM1LjEtMS42IDcuOC0xLjZsNDAyLjQgMGMxLjkgMCAzLjggLjUgNS40IDEuNnMyLjkgMi41IDMuNiA0LjIgMSAzLjYgLjcgNS41LTEuMiAzLjYtMi41IDQuOXpNNDI1LjcgMjA2LjZjLTEuOC0xLjktNC4xLTMuNS02LjYtNC41cy01LjItMS42LTcuOS0xLjZsLTQwMi40IDBjLTEuOSAwLTMuOCAuNS01LjQgMS42cy0yLjkgMi41LTMuNiA0LjItMSAzLjYtLjcgNS41IDEuMiAzLjYgMi41IDQuOWw4NC45IDg4LjdjMS44IDEuOSA0LjEgMy41IDYuNSA0LjVzNS4xIDEuNiA3LjggMS42bDQwMi40IDBjMS45IDAgMy44LS41IDUuNC0xLjZzMi45LTIuNSAzLjYtNC4yIDEtMy42IC43LTUuNS0xLjItMy42LTIuNS00LjlsLTg0LjktODguN3pNOC45IDE0Mi45bDQwMi40IDBjMi43IDAgNS40LS41IDcuOS0xLjZzNC43LTIuNiA2LjYtNC41bDg0LjktODguN2MxLjMtMS40IDIuMi0zLjEgMi41LTQuOXMuMS0zLjctLjctNS41LTItMy4yLTMuNi00LjItMy41LTEuNi01LjQtMS42TDEwMSAzMmMtMi43IDAtNS40IC41LTcuOCAxLjZzLTQuNyAyLjYtNi41IDQuNUwxLjcgMTI2LjhjLTEuMyAxLjQtMi4yIDMuMS0yLjUgNC45cy0uMSAzLjcgLjcgNS41IDIgMy4yIDMuNiA0LjIgMy41IDEuNiA1LjQgMS42eiJdfSwkU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwZXNjcmlwdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0MCIsIk0xNi44IDMybDQxNC40IDBjOS4zIDAgMTYuOCA3LjUgMTYuOCAxNi44bDAgNDE0LjRjMCA5LjMtNy41IDE2LjgtMTYuOCAxNi44TDE2LjggNDgwQzcuNSA0ODAgMCA0NzIuNSAwIDQ2My4yTDAgNDguOEMwIDM5LjUgNy41IDMyIDE2LjggMzJ6TTI0OSAyNzAuM2wwLTM2LjctMTU5LjQgMCAwIDM2LjcgNTYuOSAwIDAgMTYzLjYgNDUuMyAwIDAtMTYzLjYgNTcuMiAwem0xOC4xIDE1OS4zYzcuMyAzLjcgMTUuOSA2LjUgMjUuOSA4LjRzMjAuNSAyLjggMzEuNSAyLjhjMTAuOCAwIDIxLTEgMzAuNy0zLjFzMTguMi01LjQgMjUuNS0xMC4xIDEzLjEtMTAuOSAxNy40LTE4LjQgNi40LTE3IDYuNC0yOC4yYzAtOC4xLTEuMi0xNS4yLTMuNy0yMS4zcy01LjktMTEuNS0xMC41LTE2LjMtMTAuMS05LTE2LjUtMTIuOC0xMy43LTcuMy0yMS43LTEwLjdjLTUuOS0yLjQtMTEuMi00LjgtMTUuOS03LjFzLTguNy00LjYtMTEuOS03LTUuOC00LjktNy42LTcuNS0yLjctNS43LTIuNy05YzAtMy4xIC44LTUuOCAyLjQtOC4zczMuOC00LjYgNi43LTYuNCA2LjUtMy4xIDEwLjctNC4xIDguOS0xLjUgMTQuMS0xLjVjMy43IDAgNy43IC4zIDExLjkgLjhzOC40IDEuNCAxMi42IDIuNiA4LjMgMi42IDEyLjMgNC40IDcuNyAzLjggMTEgNi4xbDAtNDEuOGMtNi44LTIuNi0xNC4zLTQuNS0yMi40LTUuOHMtMTcuNC0xLjktMjcuOS0xLjljLTEwLjcgMC0yMC44IDEuMS0zMC40IDMuNHMtMTggNS44LTI1LjIgMTAuNy0xMyAxMS0xNy4yIDE4LjUtNi4zIDE2LjUtNi4zIDI2LjljMCAxMy4zIDMuOSAyNC43IDExLjYgMzQuMXMxOS41IDE3LjQgMzUuMiAyMy45YzYuMiAyLjUgMTEuOSA1IDE3LjMgNy40czEwIDQuOSAxMy44IDcuNSA3IDUuNCA5LjIgOC41IDMuNCA2LjYgMy40IDEwLjVjMCAyLjktLjcgNS42LTIuMSA4cy0zLjUgNC42LTYuNCA2LjQtNi40IDMuMi0xMC43IDQuMy05LjMgMS41LTE1IDEuNWMtOS43IDAtMTkuNC0xLjctMjguOS01LjFzLTE4LjQtOC41LTI2LjYtMTUuM2wwIDQ0Ljd6Il19LERTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTYzYyIsIk0xNDUuNiAwbDE1NyAwIDQ0LjcgNTAuOHMzOS4zLTEwLjkgNTcuOCA3LjYgMzMuOCAzNC45IDMzLjggMzQuOWwtMTIgMjkuNSAxNS4zIDQzLjdzLTQ0LjkgMTcwLjItNTAuMSAxOTFjLTEwLjQgNDAuOS0xNy40IDU2LjgtNDYuOSA3Ny41cy04Mi45IDU2LjgtOTEuNiA2Mi4yYy0xLjkgMS4yLTMuOSAyLjUtNS45IDMuOS03LjUgNS4xLTE1LjggMTAuOC0yMy41IDEwLjhzLTE2LjEtNS43LTIzLjUtMTAuOGMtMi0xLjQtNC0yLjgtNS45LTMuOS04LjctNS41LTYyLjEtNDEuNS05MS42LTYyLjJzLTM2LjUtMzYuNi00Ni45LTc3LjVjLTUuMy0yMC44LTUwLjEtMTkxLTUwLjEtMTkxTDIxLjUgMTIyLjggOS4zIDkzLjNzMTUuMy0xNi40IDMzLjgtMzQuOSA1Ny44LTcuNiA1Ny44LTcuNkwxNDUuNiAwem03OC41IDQwNy42YzMuNyAwIDguOS00LjcgMTMtOC40IC42LS41IDEuMi0xLjEgMS43LTEuNSA0LjItMy43IDQ3LjgtMzcuNSA1MS0zOS44czUuNC02LjUgMS45LTguN2MtMi44LTEuNy0xMC01LjUtMjAuMy0xMC44LTMtMS42LTYuMy0zLjItOS43LTUtMTUuNC04LTM0LjUtMTQuNy0zNy41LTE0LjdzLTIyLjEgNi44LTM3LjUgMTQuN2MtMy41IDEuOC02LjcgMy41LTkuNyA1LTEwLjMgNS4zLTE3LjYgOS4xLTIwLjMgMTAuOC0zLjYgMi4yLTEuNCA2LjQgMS45IDguN3M0Ni44IDM2LjEgNTEgMzkuOGMuNSAuNSAxLjEgMSAxLjcgMS41IDQuMSAzLjcgOS4zIDguNCAxMyA4LjRsLS4yIDB6bTAtMTY1LjdjNC43IDAgMTcuNi0zIDI2LjQtNWwyLS41YzcuOC0xLjggNy4zLTYuMyA2LjQtMTMtLjEtLjgtLjItMS42LS4zLTIuNC0uNi02LjEtNS44LTMzLjEtOS4xLTUwLjMtMS4xLTUuOC0yLTEwLjUtMi40LTEyLjktMS41LTguMS0uNi05LjQgLjctMTEuMyAuMi0uMyAuNS0uNyAuNy0xLjEgMS40LTIuMyAxNi02LjIgMjcuOS05LjUgMi41LS43IDQuOC0xLjMgNi45LTEuOSAxMC42LTMgMzIuNC0uNiA0NC4yIC42IDEuOCAuMiAzLjQgLjQgNC43IC41IDkuNiAuOSAxMC40IDIuMyA3LjIgMy44LTIuMyAxLjEtMTYuMiA2LjMtMjguNyAxMC45LTQuNyAxLjgtOS4yIDMuNS0xMi44IDQuOC0xLjUgLjUtMyAxLjEtNC41IDEuNy0xMi41IDQuNi0yNy4yIDEwLTI4LjkgMTkuNC0xLjUgOC4zIDUuMiAxOS45IDExLjMgMzAuMyAxLjYgMi44IDMuMiA1LjUgNC42IDguMSA2LjMgMTEuOSA2LjUgMTMuMyA2LjEgMTguMS0uNCAzLjktMTQuNSAxMi43LTIyLjQgMTcuNi0xLjggMS4xLTMuMyAyLjEtNC4yIDIuNy0uOCAuNS0yLjEgMS40LTMuOCAyLjQtOC42IDUuMi0yNi4zIDE2LTI2LjMgMjIuNSAwIDcuOCAyNC42IDI4LjEgMzIuNCAzMy4yczI4LjkgMTYuMSAzNy45IDE3LjggMjMtOC41IDMxLjItMjMuOGM3LjctMTQuNCAxLjctMjguNS0zLjItNDBsLS45LTIuMmMtNC41LTEwLjYgMS45LTE3IDYuMi0yMS4zIC41LS41IDEtMSAxLjQtMS40bDQzLTQ1LjdjMS4zLTEuMyAyLjUtMi42IDMuNy0zLjggNS44LTUuNyAxMC44LTEwLjUgMTAuOC0yMi44IDAtMTQuOS01Ny41LTg0LjUtNTcuNS04NC41cy00OC41IDkuMy01NS4xIDkuM2MtNS4yIDAtMTUuMy0zLjUtMjUuOC03LjEtMi43LS45LTUuNC0xLjktOC0yLjctMTMtNC4zLTIxLjgtNC40LTIxLjgtNC40cy04LjcgMC0yMS44IDQuNGMtMi43IC45LTUuNCAxLjgtOCAyLjctMTAuNSAzLjYtMjAuNiA3LjEtMjUuOCA3LjEtNi41IDAtNTUuMS05LjMtNTUuMS05LjNzLTU3LjUgNjkuNi01Ny41IDg0LjVjMCAxMi4zIDQuOSAxNy4xIDEwLjggMjIuOCAxLjIgMS4yIDIuNSAyLjQgMy43IDMuOGw0My4xIDQ1LjhjLjQgLjUgLjkgLjkgMS40IDEuNCA0LjMgNC4zIDEwLjYgMTAuNyA2LjIgMjEuM2wtLjkgMi4yYy00LjkgMTEuNS0xMSAyNS42LTMuMiA0MCA4LjIgMTUuMyAyMi4yIDI1LjUgMzEuMiAyMy44czMwLjEtMTIuNyAzNy45LTE3LjggMzIuNC0yNS40IDMyLjQtMzMuMmMwLTYuNS0xNy43LTE3LjMtMjYuMy0yMi41LTEuNy0xLTMuMS0xLjktMy44LTIuNC0uOS0uNi0yLjQtMS41LTQuMi0yLjctNy45LTQuOS0yMi0xMy43LTIyLjQtMTcuNi0uNC00LjgtLjMtNi4yIDYuMS0xOC4xIDEuMy0yLjUgMi45LTUuMyA0LjYtOC4xIDYtMTAuNCAxMi44LTIyIDExLjMtMzAuMy0xLjctOS40LTE2LjQtMTQuOC0yOC45LTE5LjQtMS42LS42LTMuMS0xLjEtNC41LTEuNy0zLjYtMS40LTguMS0zLjEtMTIuOC00LjhsLS4xIDBjLTEyLjUtNC43LTI2LjQtOS45LTI4LjctMTAuOS0zLjItMS41LTIuMy0yLjggNy4yLTMuOCAxLjMtLjEgMi45LS4zIDQuNy0uNSAxMS44LTEuMyAzMy42LTMuNiA0NC4yLS42IDIuMSAuNiA0LjQgMS4yIDYuOSAxLjkgMTEuOSAzLjIgMjYuNSA3LjIgMjcuOSA5LjUgLjIgLjQgLjUgLjcgLjcgMS4xIDEuMyAxLjkgMi4yIDMuMiAuNyAxMS4zLS40IDIuNC0xLjMgNy4xLTIuNCAxMi45LTMuMyAxNy4yLTguNSA0NC4yLTkuMSA1MC4zLS4xIC44LS4yIDEuNy0uMyAyLjQtLjggNi43LTEuNCAxMS4yIDYuNCAxM2wyIC41YzguOCAyIDIxLjggNSAyNi40IDVsMC0uMXoiXX0sQVN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0c3kiLGljb246WzM4NCw1MTIsW10sImYyZDciLCJNMzg0IDM0OGMtMS44IDEwLjctMTMuOCAxMTAtMTUuNSAxMzItMTE3LjktNC4zLTIxOS45LTQuNy0zNjguNSAwbDAtMjUuNWM0NS41LTguOSA2MC42LTggNjEtMzUuMiAxLjgtNzIuMyAzLjUtMjQ0LjEgMC0zMjItMS0yOC41LTEyLjEtMjYuOC02MS0zNkwwIDM1LjhjNzMuOSAyLjQgMjU1LjkgOC42IDM2My0zLjgtMy41IDM4LjItNy44IDEyNi41LTcuOCAxMjYuNWwtMjMuMiAwQzMyMC45IDExNS43IDMxMy4yIDY4IDI3Ny4zIDY4bC0xMzcgMGMtMTAuMiAwLTEwLjcgMy41LTEwLjcgOS44bDAgMTYzLjhjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuOC0xIDI3LjYtOC41IDQwLjctNjUuM2wyNS44IDBjLTQuNCAxMDEuNC0zLjkgNjEuOC0xLjggMTYwLjNMMjU3IDMzNGMtOS4yLTQwLjEtOS4xLTYxLTM5LjUtNjEuNSAwIDAtMjEuNS0yLTg4LTJsMCAxMzljMCAyNiAxNC4zIDM4LjMgNDQuMyAzOC4zbDg5LjMgMGM2My42IDAgNjYuNi0yNSA5OC43LTk5LjhsMjIuMiAweiJdfSxQU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnRjIixpY29uOlszODQsNTEyLFtdLCJmMTVhIiwiTTMxMC40IDI0Mi42YzI3LjctMTQuMiA0NS40LTM5LjQgNDEuMy04MS4zLTUuNC01Ny40LTUyLjUtNzYuNi0xMTQuOC04MS45bDAtNzkuNC00OC41IDAgMCA3Ny4yYy0xMi42IDAtMjUuNSAuMy0zOC40IC42bDAtNzcuOC00OC41IDAgMCA3OS40Yy0xNy44IC41LTM4LjYgLjMtOTcuNCAwbDAgNTEuN2MzOC4zLS43IDU4LjQtMy4xIDYzIDIxLjRsMCAyMTcuNGMtMi45IDE5LjUtMTguNSAxNi43LTUzLjMgMTYuMUw0IDQ0My43Yzg4LjUgMCA5Ny40IC4zIDk3LjQgLjNsMCA2OCA0OC41IDAgMC02Ny4xYzEzLjIgLjMgMjYuMiAuMyAzOC40IC4zbDAgNjYuNyA0OC41IDAgMC02OGM4MS4zLTQuNCAxMzUuNi0yNC45IDE0Mi45LTEwMS41IDUuNy02MS40LTIzLjMtODguOS02OS4zLTk5Ljl6TTE1MC44IDEzNC42YzI3LjQgMCAxMTMuMS04LjUgMTEzLjEgNDguNSAwIDU0LjUtODUuNyA0OC4yLTExMy4xIDQ4LjJsMC05Ni43em0wIDI1MS44bDAtMTA2LjVjMzIuOCAwIDEzMy4xLTkuMSAxMzMuMSA1My4zIDAgNjAuMi0xMDAuNCA1My4zLTEzMy4xIDUzLjN6Il19LEVTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZG4iLGljb246WzUxMiw1MTIsW10sImYxNzAiLCJNMjU2IDE2Ny41bDY0LjkgOTguOC0xMjkuOCAwIDY0LjktOTguOHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzk2LjIgODIuN2wtMTQ4LjItMjIzLjItMTQ4LjIgMjIzLjIgMzAuNCAwIDMzLjYtNTEuNyAxNjguNiAwIDMzLjYgNTEuNyAzMC4yIDB6Il19LElTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFhIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI5Ny4xIDg0bC0xMDMuOCAxMTguNiAxMjIuMSAxNjEuNC05NS42IDAtNzQuOC05Ny45LTg1LjcgOTcuOS00Ny41IDAgMTExLTEyNi45LTExNy4xLTE1My4xIDk4IDAgNjcuNyA4OS41IDc4LjItODkuNSA0Ny41IDB6TTMyMy4zIDM2Ny42bC0xNjkuOS0yMjQuNy0yOC4zIDAgMTcxLjggMjI0LjcgMjYuNCAweiJdfSxOU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTVhZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05MCAxMjJjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy43IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSxSU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydW1iZWUiLGljb246WzQ0OCw1MTIsW10sImYyMTEiLCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzUgMjM5LjcgMzUgMjU2LjQgMzcgMjcyLjQgNDAuNSAxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6TTM5OC43IDEyMC41Yy0xMy43LTE3LjUtMjkuNy0zMi43LTQ3LjgtNDUuMy0xNDkuNiA0NC4zLTI2Ni4zIDE2Mi4xLTMwOS43IDMxMiAxMi41IDE4LjEgMjggMzUuNiA0NS4yIDQ5IDQzLjEtMTUxLjMgMTYxLjItMjcxLjcgMzEyLjMtMzE1Ljd6bTE1LjggMjUyLjdjMTUuMi0yNS4xIDI1LjQtNTMuNyAyOS41LTgyLjgtNzkuNCA0Mi45LTE0NSAxMTAuNi0xODcuNiAxOTAuMyAzMC00LjQgNTguOS0xNS4zIDg0LjYtMzEuMyAzNSAxMy4xIDcwLjkgMjQuMyAxMDcgMzMuNi05LjMtMzYuNS0yMC40LTc0LjUtMzMuNS0xMDkuOHptMjkuNy0xNDUuNWMtMi42LTE5LjUtNy45LTM4LjctMTUuOC01Ni44LTEzNy45IDQ1LjgtMjQ2LjQgMTU2LjYtMjkxLjMgMjk1LjEgMTguMSA3LjYgMzcgMTIuNSA1Ni42IDE1LjIgNDYuMy0xMTQuMSAxMzYuOC0yMDYuOCAyNTAuNS0yNTMuNXoiXX0sWnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjQyLWdyb3VwIixpY29uOls2NDAsNTEyLFsiaW5ub3NvZnQiXSwiZTA4MCIsIk0zMjAgOTZsMCAzMjBjMjEgMCA0MS44LTQuMSA2MS4yLTEyLjJzMzctMTkuOCA1MS45LTM0LjcgMjYuNi0zMi41IDM0LjctNTEuOSAxMi4yLTQwLjIgMTIuMi02MS4yLTQuMS00MS44LTEyLjItNjEuMi0xOS44LTM3LjEtMzQuNy01MS45LTMyLjUtMjYuNi01MS45LTM0LjctNDAuMi0xMi4yLTYxLjItMTIuMnpNMCAyNTZMMTYwIDQxNiAzMjAgMjU2IDE2MCA5NiAwIDI1NnptNDgwIDBjMCAyMSA0LjEgNDEuOCAxMi4yIDYxLjJzMTkuOCAzNyAzNC43IDUxLjkgMzIuNSAyNi42IDUxLjkgMzQuNyA0MC4yIDEyLjIgNjEuMiAxMi4ybDAtMzIwYy00Mi40IDAtODMuMSAxNi45LTExMy4xIDQ2LjlTNDgwIDIxMy42IDQ4MCAyNTZ6Il19LE9TdD1adWUsRlN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dW1ibGV1cG9uLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMyIsIk0yNjQgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTc3LjVjLTkuOCAwLTE3LjggOC0xNy44IDE3LjhsMCAxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOWwwLTQ2LjUgNTcuMyAwIDAgNDUuOGMwIDEwIDggMTcuOCAxNy44IDE3LjhzMTcuOC03LjkgMTcuOC0xNy44bDAtMTA4LjRjMC00MCAzNC4yLTcyLjEgNzQuNy03Mi4xIDQwLjcgMCA3NC43IDMyLjMgNzQuNyA3Mi42bDAgMjMuNy0zNC4xIDEwLjEtMjIuOS0xMC43IDAtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42ek00MzEuNiAzMDkuMWMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMmwwLTQ2LjggMjIuOSAxMC43IDM0LjEtMTAuMSAwIDQ3LjFjMCA5LjggOCAxNy42IDE3LjggMTcuNnMxNy44LTcuOSAxNy44LTE3LjZsMC00OCA1Ny4zIDBjLS4xIDQ1LjktLjEgNDYuNC0uMSA0Ni40eiJdfSxCU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM4OS43IDE1MS41Yy0xMS41IC40LTE5LjQtNi40LTE5LjgtMTYuOS0uMy05LjIgNi43LTEzLjQgNi41LTE4LjktLjItNi41LTEwLjItNi44LTEyLjktNi43LTM5LjggMS4zLTQ4LjYgNTctNTguOSAxMTMuOCAyMS40IDMuMiAzNi42LS43IDQ1LjEtNi4yIDEyLTcuNy0zLjMtMTUuNy0xLjQtMjQuNiA0LTE4LjIgMzIuNi0xOSAzMiA1LjMtLjQgMTcuOS0yNS45IDQxLjgtNzcuNiAzNS43LTEwLjggNTkuNS0xOC40IDExNS01OC4yIDE2MS43LTI5IDM0LjUtNTguNCAzOS44LTcxLjYgNDAuMy0yNC42IC45LTQxLTEyLjMtNDEuNi0yOS44LS42LTE3IDE0LjQtMjYuMyAyNC4zLTI2LjYgMjEuOS0uOCAzMC4xIDI1LjcgMTQuOSAzNC0xMi4xIDkuNyAuMSAxMi42IDIuMSAxMi42IDEwLjQtLjQgMTcuMy01LjUgMjIuMi05IDI0LTIwIDMzLjItNTQuOSA0NS40LTExOC4zIDguMi00OS43IDE3LTc4IDE4LjItODItMTYuOS0xMi43LTI3LjEtMjguNi00OS44LTM0LjctMTUuNi00LjItMjUuMS0uNi0zMS44IDcuOC03LjkgMTAtNS4zIDIzIDIuNCAzMC43bDEyLjYgMTRjMTUuNSAxNy45IDI0IDMxLjkgMjAuOCA1MC42LTUuMSAyOS45LTQwLjcgNTIuOS04Mi45IDM5LjktMzYtMTEuMS00Mi43LTM2LjYtMzguNC01MC42IDcuNS0yNC4yIDQyLjQtMTEuNyAzNC42IDEzLjYtMi44IDguNi00LjkgOC43LTYuMyAxMy4xLTQuNiAxNC44IDQxLjggMjguNCA1MS0xLjQgNC41LTE0LjUtNS4zLTIxLjctMjIuMi0zOS45LTI4LjUtMzEuNy0xNi02NS41IDIuOS03OS43IDUyLjgtMzkuNCAxMDAuNSAxNy41IDExMC42IDI1LjggMzcuMi0xMDkgMTAwLjUtMTA1LjUgMTAyLjQtMTA1LjUgMjUuMi0uOCA0NC4yIDEwLjYgNDQuOCAyOC42IC4yIDcuNy00LjIgMjIuNi0xOS41IDIzLjF6Il19LEhTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYWxlc2ZvcmNlIixpY29uOls2NDAsNTEyLFtdLCJmODNiIiwiTTI0OS40IDI0NS42bC0yNi40IDBjLjctNS4yIDMuMy0xNC4xIDEzLjYtMTQuMSA2LjggMCAxMiAzLjggMTIuNyAxNC4xek0zODYgMjMxLjhjLS41IDAtMTQuMS0xLjgtMTQuMSAyMHMxMy42IDIwIDE0LjEgMjBjMTMgMCAxNC4xLTEzLjUgMTQuMS0yMCAwLTIxLjgtMTMuNy0yMC0xNC4xLTIwek0xNDIuOCAyNTUuNWMtMS4xIC45LTIgMi0yLjUgMy4ycy0uOCAyLjctLjcgNGMwIDQuOCAyLjEgNi4xIDMuMyA3IDQuNyAzLjcgMTUuMSAyLjEgMjAuOSAxbDAtMTYuOWMtNS4zLTEuMS0xNi43LTItMjAuOSAxLjZ6TTY0MC41IDIzMmMwIDg3LjYtODAgMTU0LjQtMTY1LjQgMTM2LjQtMTguNCAzMy03MC43IDcwLjgtMTMyLjIgNDEuNi00MS4yIDk2LTE3Ny45IDkyLjItMjEzLjgtNS4yLTExOS43IDIzLjktMTc4LjgtMTM4LjQtNzUuMy0xOTkuMy0zNC44LTc5LjQgMjIuNi0xNzMuNiAxMTQuMy0xNzMuNiAxOS4xIDAgMzcuOSA0LjQgNTUgMTIuOXMzMiAyMC43IDQzLjYgMzUuOGMyMC43LTIxLjQgNDkuNC0zNC44IDgxLjEtMzQuOCA0Mi4zIDAgNzkgMjMuNSA5OC44IDU4LjYgOTIuOC00MC43IDE5My44IDI4LjIgMTkzLjggMTI3LjV6TTEyMC45IDI2My44YzAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTUuMy0yLjEtMTMuNC0zLjUtMTMuNC04LjkgMC05LjUgMTctNi43IDI1LjItMi4xIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTEyLjMtNy42LTQwLjctOC41LTQwLjcgMTIuNyAwIDEyLjUgMTEuNSAxNS40IDE3LjkgMTcuMiA0LjcgMS42IDEzLjIgMyAxMy4yIDguNyAwIDQtMy41IDcuMS05LjIgNy4xLTYuOSAwLTEzLjUtMi4yLTE5LTYuMy0uNS0uMi0xLjQtLjctMS42IC43bC0yLjQgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuOCAxLjQgMTAuMyA2LjYgMjIuOCA2LjYgMTMuMiAwIDIxLjQtNy4xIDIxLjQtMTguMWwwIDB6bTMyLTQyLjZjLTEwLjEgMC0xOC43IDMuMi0yMS40IDUuMi0uMSAuMS0uMiAuMi0uMyAuM3MtLjEgLjItLjEgLjQgMCAuMyAwIC40IC4xIC4zIC4yIC40bDIuNiA3LjFjLjEgLjIgLjIgLjUgLjUgLjZzLjUgLjIgLjcgLjFjLjYgMCA2LjgtNCAxNi45LTQgNCAwIDcuMSAuNyA5LjIgMi40IDMuNiAyLjggMy4xIDguMyAzLjEgMTAuNi00LjgtLjMtMTkuMS0zLjQtMjkuNCAzLjgtMi4zIDEuNi00LjMgMy44LTUuNSA2LjNzLTEuOSA1LjQtMS44IDguMmMwIDUuOSAxLjUgMTAuNCA2LjYgMTQuNCAxMi4yIDguMiAzNi4zIDIgMzguMSAxLjQgMS42LS4zIDMuNS0uNyAzLjUtMS45bDAtMzMuOWMwLTQuNiAuMy0yMS42LTIyLjgtMjEuNmwwIC4xem00Ni42LTIxYzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuOCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNzljMCAuMiAwIC4zIC4xIC41cy4xIC4zIC4zIC40IC4yIC4yIC40IC4zIC4zIC4xIC41IC4xbDkuOSAwYy4yIDAgLjMgMCAuNS0uMXMuMy0uMSAuNC0uMyAuMi0uMiAuMy0uNCAuMS0uMyAuMS0uNWwtLjEtNzl6bTU1LjcgMjguOWMtMi4xLTIuMy02LjgtNy41LTE3LjYtNy41LTMuNSAwLTE0LjIgLjItMjAuNyA4LjktNi40IDcuNi02LjYgMTguMS02LjYgMjEuNCAwIDMuMSAuMiAxNC4zIDcuMSAyMS4yIDIuNiAyLjkgOS4xIDguMiAyMi44IDguMiAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjMtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjUtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi44LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMyAwIDIuMS0xNC43LTYuMS0yNC4ybDAgMHptMzYuNyA1Mi43YzEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjEgMC0xMS44LTExLjctMTUuMi0xNy45LTE3LjItNC4xLTEuNy0xMy40LTMuNC0xMy40LTguOSAwLTMuOCAzLjMtNi40IDguNS02LjQgNS44IC4xIDExLjUgMS42IDE2LjcgNC4yIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTcuOS00LjktMTYuNy00LjktMjAuMi00LjktMTIgMC0yMC41IDcuMy0yMC41IDE3LjYgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNi4xIDIgMTMuMiAzLjMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjQtLjEtLjEtLjMtLjItLjUtLjJzLS40IDAtLjUgLjEtLjMgLjItLjQgLjMtLjIgLjMtLjIgLjVsLTIuMyA3LjVjLS41IC45IC4yIDEuMiAuMiAxLjQgMS43IDEuNCAxMC4zIDYuNiAyMi44IDYuNmwwIDB6TTM1Ny42IDIyNGMwLS43LS4yLTEuMi0xLjItMS4ybC0xMS44IDBjMC0uMSAuOS04LjkgNC41LTEyLjUgNC4yLTQuMiAxMS44LTEuNiAxMi0xLjYgMS4yIC41IDEuNCAwIDEuNi0uNWwyLjgtNy44Yy43LS45IDAtMS4yLS4yLTEuNC01LjEtMi0xNy40LTIuOS0yNC41IDQuMi01LjUgNS41LTcgMTMuOS04IDE5LjVsLTguNSAwYy0uMyAwLS42IC4yLS44IC40cy0uMyAuNS0uNCAuOGwtMS40IDcuOGMwIC43IC4yIDEuMiAxLjIgMS4ybDguMiAwYy04LjUgNDcuOS04LjcgNTAuMi0xMC4zIDU1LjUtMS4xIDMuNi0zLjMgNi45LTUuOSA3LjgtLjEgMC0zLjkgMS43LTkuNi0uMiAwIDAtLjktLjUtMS40IC43LS4yIC43LTIuNiA2LjgtMi44IDcuNXMwIDEuNCAuNSAxLjRjNS4xIDIgMTMgMS44IDE3LjkgMCA2LjMtMi4zIDkuNy03LjkgMTEuNS0xMi45IDIuOC03LjcgMi44LTkuOCAxMS44LTU5LjdsMTIuMiAwYy4zIDAgLjYtLjIgLjgtLjRzLjMtLjUgLjQtLjhsMS40LTcuOHpNNDExIDI0MGMtLjYtMS43LTUuMS0xOC4xLTI1LjItMTguMS0xNS4yIDAtMjMgMTAtMjUuMiAxOC4xLTEgMy0zLjIgMTQgMCAyMy41IC4xIC4zIDQuNCAxOC4xIDI1LjIgMTguMSAxNSAwIDIyLjktOS42IDI1LjItMTguMSAzLjItOS42IDEtMjAuNSAwLTIzLjV6bTQ1LjQtMTYuN2MtNS0xLjctMTYuNi0xLjktMjIuMSA1LjRsMC00LjVjMC0uMiAwLS4zLS4xLS41cy0uMS0uMy0uMy0uNC0uMi0uMi0uNC0uMy0uMy0uMS0uNS0uMWwtOS40IDBjLS4yIDAtLjMgMC0uNSAuMXMtLjMgLjEtLjQgLjMtLjIgLjItLjMgLjQtLjEgLjMtLjEgLjVsMCA1NS4zYzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjYgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsMC0yNy44YzAtMi45IC4xLTExLjQgNC41LTE1LjEgNC45LTQuOSAxMi0zLjQgMTMuNC0zLjEgLjMgMCAuNi0uMSAuOC0uM3MuNC0uNCAuNi0uN2MxLjItMi42IDIuMi01LjMgMy4xLTggLjEtLjMgLjEtLjUgMC0uOHMtLjMtLjUtLjUtLjZsMCAwem00Ni44IDU0LjFsLTIuMS03LjNjLS41LTEuMi0xLjQtLjctMS40LS43LTQuMiAxLjgtMTAuMSAxLjktMTEuMyAxLjktNC42IDAtMTcuMi0xLjEtMTcuMi0xOS44IDAtNi4yIDEuOC0xOS44IDE2LjUtMTkuOCAzLjktLjEgNy44IC41IDExLjUgMS42IDAgMCAuOSAuNSAxLjItLjcgLjktMi42IDEuNi00LjUgMi42LTcuNSAuMi0uOS0uNS0xLjItLjctMS4yLTExLjYtMy45LTIyLjMtMi41LTI3LjggMC0xLjYgLjctMTYuMiA2LjUtMTYuMiAyNy41IDAgMi45LS42IDMwLjEgMjguOSAzMC4xIDUuMyAwIDEwLjYtMSAxNS41LTIuOCAuMi0uMiAuNC0uNCAuNS0uNnMuMS0uNSAwLS44bDAgMHptNTMuOS0zOS41Yy0uOC0zLTUuNC0xNi4yLTIyLjMtMTYuMi0xNiAwLTIzLjUgMTAuMS0yNS42IDE4LjYtMS4yIDMuOC0xLjcgNy44LTEuNyAxMS44IDAgMjUuOSAxOC44IDI5LjQgMjkuOSAyOS40IDEwLjggMCAxNi41LTIuMyAxOC42LTMuOCAuNS0uMiAuNy0uNyAuMi0xLjlsLTIuNC02LjhjLS4xLS4zLS4zLS41LS42LS42cy0uNi0uMi0uOC0uMWMtMi42IC45LTYuMyAyLjgtMTUuMyAyLjgtMTcuNCAwLTE2LjktMTQuNy0xNi45LTE2LjdsMzcuMiAwYy4zIDAgLjUtLjEgLjctLjNzLjQtLjQgLjQtLjdjLS4yIDAgLjktNy4xLTEuNC0xNS41bDAgMHptLTIzLjMtNi40Yy0xMC4zIDAtMTMgOS0xMy42IDE0LjFsMjYuNCAwYy0uOS0xMS45LTcuNi0xNC4xLTEyLjctMTQuMWwwIDB6Il19LHFTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb3VyY2V0cmVlIixpY29uOls0NDgsNTEyLFtdLCJmN2QzIiwiTTQyNy40IDIwM2MwLTExMi4xLTkwLjktMjAzLTIwMy0yMDMtMTEyLjEtLjItMjAzIDkwLjYtMjAzLjIgMjAyLjYtLjEgNDMgMTMuNSA4NC44IDM4LjcgMTE5LjZzNjAuOSA2MC42IDEwMS44IDczLjhsMCAxMDEuN2MwIDMuOCAxLjUgNy40IDQuMiAxMC4xczYuMyA0LjIgMTAuMSA0LjJsOTYuNCAwYzMuOCAwIDcuNC0xLjUgMTAuMS00LjJzNC4yLTYuMyA0LjItMTAuMWwwLTEwMS42YzQwLjgtMTMuMiA3Ni41LTM5IDEwMS43LTczLjdzMzguOS03Ni41IDM5LTExOS40em0tMjcxLjYgMGMwLTkwLjggMTM3LjMtOTAuOCAxMzcuMyAwLS4xIDg5LjktMTM3LjMgOTEtMTM3LjMgMHoiXX0sVlN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluLWluIixpY29uOls0NDgsNTEyLFtdLCJmMGUxIiwiTTEwMC4zIDQ0OGwtOTIuOSAwIDAtMjk5LjEgOTIuOSAwIDAgMjk5LjF6TTUzLjggMTA4LjFDMjQuMSAxMDguMSAwIDgzLjUgMCA1My44IDAgMzkuNSA1LjcgMjUuOSAxNS44IDE1LjhzMjMuOC0xNS44IDM4LTE1LjggMjcuOSA1LjcgMzggMTUuOCAxNS44IDIzLjggMTUuOCAzOGMwIDI5LjctMjQuMSA1NC4zLTUzLjggNTQuM3pNNDQ3LjkgNDQ4bC05Mi43IDAgMC0xNDUuNmMwLTM0LjctLjctNzkuMi00OC4zLTc5LjItNDguMyAwLTU1LjcgMzcuNy01NS43IDc2LjdsMCAxNDguMS05Mi44IDAgMC0yOTkuMSA4OS4xIDAgMCA0MC44IDEuMyAwYzEyLjQtMjMuNSA0Mi43LTQ4LjMgODcuOS00OC4zIDk0IDAgMTExLjMgNjEuOSAxMTEuMyAxNDIuM2wwIDE2NC4zLS4xIDB6Il19LGpTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodG1sNSIsaWNvbjpbMzg0LDUxMixbXSwiZjEzYiIsIk0wIDMyTDM0LjkgNDI3LjggMTkxLjUgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyek0zMDguMiAxNTkuOWwtMTgzLjggMCA0LjEgNDkuNCAxNzUuNiAwLTEzLjYgMTQ4LjQtOTcuOSAyNyAwIC4zLTEuMSAwLTk4LjctMjcuMy02LTc1LjggNDcuNyAwIDMuNSAzOC4xIDUzLjUgMTQuNSA1My43LTE0LjUgNi02Mi4yLTE2Ni45IDAtMTIuOC0xNDUuNiAyNDEuMSAwLTQuNCA0Ny43eiJdfSxVU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicnVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTA3YSIsIk01MDguNSAyNDkuOGwtMjEuOC0xMy41Yy0uMi0yLS4zLTMuOS0uNS01LjlsMTguNy0xNy41Yy45LS45IDEuNi0xLjkgMi0zLjFzLjUtMi41IC4yLTMuNy0uOC0yLjQtMS42LTMuMy0xLjgtMS43LTMtMi4xbC0yNC05Yy0uNS0xLjktMS4xLTMuOC0xLjctNS42bDE1LTIwLjhjLjctMSAxLjItMi4yIDEuMy0zLjRzMC0yLjUtLjUtMy43LTEuMi0yLjItMi4yLTIuOS0yLjEtMS4zLTMuNC0xLjVsLTI1LjQtNC4yYy0uOS0xLjctMS44LTMuNC0yLjctNS4ybDEwLjctMjMuNGMuNS0xLjEgLjctMi40IC42LTMuNnMtLjUtMi40LTEuMi0zLjUtMS42LTEuOS0yLjgtMi41LTIuNC0uOC0zLjYtLjhsLTI1LjggLjljLTEuMi0xLjUtMi40LTIuOS0zLjYtNC40TDQzOSA4MS44Yy4zLTEuMiAuMy0yLjUtLjEtMy43cy0xLTIuMy0xLjktMy4yLTItMS41LTMuMi0xLjktMi41LS40LTMuNy0uMUw0MDUgNzguOWMtMS40LTEuMi0yLjktMi40LTQuNC0zLjZsLjktMjUuOGMuMS0xLjMtLjItMi41LS44LTMuNnMtMS40LTIuMS0yLjUtMi44LTIuMi0xLjEtMy41LTEuMi0yLjUgLjEtMy43IC42TDM2Ny43IDUzLjJjLTEuNy0uOS0zLjQtMS44LTUuMS0yLjdsLTQuMi0yNS40Yy0uMi0xLjItLjctMi40LTEuNS0zLjRzLTEuOC0xLjctMi45LTIuMi0yLjQtLjctMy43LS41LTIuNCAuNi0zLjQgMS4zTDMyNiAzNS4zYy0xLjktLjYtMy44LTEuMS01LjYtMS43bC05LTI0Yy0uNC0xLjItMS4yLTIuMi0yLjEtM3MtMi4xLTEuNC0zLjMtMS42LTIuNS0uMi0zLjcgLjItMi4zIDEuMS0zLjEgMkwyODEuNiAyNS45Yy0yLS4yLTMuOS0uNC01LjktLjVMMjYyLjMgMy41Yy0uNy0xLjEtMS42LTEuOS0yLjctMi42cy0yLjMtLjktMy42LS45LTIuNSAuMy0zLjYgLjktMiAxLjUtMi43IDIuNkwyMzYuMiAyNS4zYy0yIC4yLTMuOSAuMy01LjkgLjZMMjEyLjkgNy4xYy0uOS0uOS0xLjktMS42LTMuMS0ycy0yLjUtLjUtMy43LS4yLTIuNCAuOC0zLjMgMS42LTEuNyAxLjgtMi4xIDNsLTkgMjRjLTEuOSAuNi0zLjggMS4xLTUuNyAxLjdsLTIwLjgtMTVjLTEtLjctMi4yLTEuMi0zLjQtMS4zcy0yLjUgMC0zLjcgLjUtMi4yIDEuMi0yLjkgMi4yLTEuMyAyLjEtMS41IDMuNGwtNC4yIDI1LjRjLTEuNyAuOS0zLjQgMS44LTUuMiAyLjdMMTIwLjkgNDIuNmMtMS4xLS41LTIuNC0uNy0zLjctLjZzLTIuNSAuNS0zLjUgMS4yLTEuOSAxLjctMi41IDIuOC0uOCAyLjQtLjggMy42bC45IDI1LjhjLTEuNSAxLjItMyAyLjQtNC40IDMuNkw4MS44IDczYy0xLjItLjMtMi41LS4zLTMuNyAuMXMtMi4zIDEtMy4yIDEuOS0xLjUgMi0xLjkgMy4yLS40IDIuNS0uMSAzLjdMNzguOSAxMDdjLTEuMiAxLjQtMi40IDIuOS0zLjYgNC40bC0yNS44LS45Yy0xLjMgMC0yLjUgLjItMy42IC44cy0yLjEgMS40LTIuOCAyLjQtMS4xIDIuMi0xLjIgMy41IC4xIDIuNSAuNiAzLjZsMTAuNyAyMy40Yy0uOSAxLjctMS44IDMuNC0yLjcgNS4ybC0yNS40IDQuMWMtMS4yIC4yLTIuNCAuNy0zLjQgMS41cy0xLjcgMS44LTIuMiAyLjktLjcgMi40LS41IDMuNyAuNiAyLjQgMS4zIDMuNGwxNSAyMC44Yy0uNiAxLjktMS4xIDMuOC0xLjcgNS43bC0yNCA5Yy0xLjIgLjQtMi4yIDEuMi0zIDIuMXMtMS40IDIuMS0xLjYgMy4zLS4yIDIuNSAuMiAzLjcgMS4xIDIuMyAyIDMuMWwxOC43IDE3LjVjLS4yIDItLjQgMy45LS42IDUuOUwzLjUgMjQ5LjhjLTEuMSAuNy0xLjkgMS42LTIuNiAyLjdzLS45IDIuMy0uOSAzLjYgLjMgMi41IC45IDMuNiAxLjUgMiAyLjYgMi43bDIxLjggMTMuNWMuMiAyIC4zIDMuOSAuNiA1LjlMNy4xIDI5OS4xYy0uOSAuOS0xLjYgMS45LTIgMy4xcy0uNSAyLjUtLjIgMy43IC44IDIuNCAxLjYgMy4zIDEuOCAxLjcgMyAyLjFsMjQgOWMuNiAxLjkgMS4xIDMuOCAxLjcgNS42bC0xNSAyMC44Yy0uNyAxLTEuMiAyLjItMS4zIDMuNHMwIDIuNSAuNSAzLjcgMS4yIDIuMiAyLjIgMi45IDIuMSAxLjMgMy40IDEuNWwyNS40IDQuMmMuOSAxLjcgMS44IDMuNCAyLjcgNS4xTDQyLjYgMzkxLjFjLS41IDEuMS0uNyAyLjQtLjYgMy42cy41IDIuNSAxLjIgMy41Yy43IDEuMSAxLjYgMS45IDIuNyAyLjVzMi40IC44IDMuNiAuOGwyNS44LS45YzEuMiAxLjUgMi40IDIuOSAzLjYgNC40TDczIDQzMC4yYy0uMyAxLjItLjMgMi41IC4xIDMuN3MxIDIuMyAxLjkgMy4yIDIgMS41IDMuMiAxLjkgMi41IC40IDMuNyAuMWwyNS4yLTUuOWMxLjUgMS4yIDIuOSAyLjQgNC40IDMuNmwtLjkgMjUuOGMwIDEuMyAuMiAyLjUgLjggMy42czEuNCAyLjEgMi41IDIuOCAyLjIgMS4xIDMuNSAxLjIgMi41LS4xIDMuNi0uNmwyMy40LTEwLjdjMS43IC45IDMuNCAxLjggNS4xIDIuN2w0LjIgMjUuNGMuMiAxLjIgLjcgMi40IDEuNSAzLjRzMS44IDEuOCAyLjkgMi4yIDIuNCAuNyAzLjcgLjUgMi40LS42IDMuNC0xLjNsMjAuOC0xNWMxLjkgLjYgMy44IDEuMSA1LjYgMS43bDkgMjRjLjQgMS4yIDEuMiAyLjIgMi4xIDNzMi4xIDEuNCAzLjMgMS42IDIuNSAuMiAzLjctLjIgMi4zLTEuMSAzLjEtMmwxNy41LTE4LjdjMiAuMiAzLjkgLjQgNS45IC42bDEzLjUgMjEuOGMuNyAxLjEgMS42IDEuOSAyLjcgMi42czIuMyAuOSAzLjYgLjkgMi41LS4zIDMuNi0uOSAyLTEuNSAyLjctMi42bDEzLjUtMjEuOGMyLS4yIDMuOS0uMyA1LjktLjZsMTcuNSAxOC43Yy45IC45IDEuOSAxLjYgMy4xIDJzMi41IC41IDMuNyAuMiAyLjQtLjggMy4zLTEuNiAxLjctMS44IDIuMS0zbDktMjRjMS45LS42IDMuOC0xLjEgNS42LTEuN2wyMC44IDE1YzEgLjcgMi4yIDEuMiAzLjQgMS4zczIuNSAwIDMuNy0uNSAyLjItMS4yIDIuOS0yLjIgMS4zLTIuMSAxLjUtMy40bDQuMi0yNS40YzEuNy0uOSAzLjQtMS44IDUuMS0yLjdsMjMuNCAxMC43YzEuMSAuNSAyLjQgLjcgMy42IC42czIuNC0uNSAzLjUtMS4yIDEuOS0xLjYgMi41LTIuOCAuOC0yLjQgLjgtMy42bC0uOS0yNS44YzEuNS0xLjIgMi45LTIuNCA0LjQtMy42bDI1LjIgNS45YzEuMiAuMyAyLjUgLjMgMy43LS4xczIuMy0xIDMuMi0xLjkgMS41LTIgMS45LTMuMiAuNC0yLjUgLjEtMy43TDQzMy4xIDQwNWMxLjItMS40IDIuNC0yLjkgMy42LTQuNGwyNS44IC45YzEuMyAuMSAyLjUtLjIgMy42LS44czIuMS0xLjQgMi44LTIuNWMuNy0xIDEuMS0yLjIgMS4yLTMuNXMtLjEtMi41LS42LTMuNmwtMTAuNy0yMy40Yy45LTEuNyAxLjgtMy40IDIuNy01LjFsMjUuNC00LjJjMS4yLS4yIDIuNC0uNyAzLjQtMS41czEuOC0xLjggMi4yLTIuOSAuNy0yLjQgLjUtMy43LS42LTIuNC0xLjMtMy40bC0xNS0yMC44Yy42LTEuOSAxLjEtMy44IDEuNy01LjZsMjQtOWMxLjItLjQgMi4yLTEuMiAzLTIuMXMxLjQtMi4xIDEuNi0zLjMgLjItMi41LS4yLTMuNy0xLjEtMi4zLTItMy4xbC0xOC43LTE3LjVjLjItMS45IC40LTMuOSAuNi01LjlsMjEuOC0xMy41YzEuMS0uNyAxLjktMS42IDIuNi0yLjdzLjktMi4zIC45LTMuNi0uMy0yLjUtLjktMy42LTEuNS0yLTIuNi0yLjdsMCAwem0tMTUxIDEyOS4xYy0zLjYtLjgtNy40LS4xLTEwLjUgMS45cy01LjMgNS4yLTYgOC44bC03LjYgMzUuN2MtMjQuNiAxMS4xLTUxLjMgMTYuOC03OC4zIDE2LjdzLTUzLjYtNi4xLTc4LjEtMTcuNGwtNy42LTM1LjdjLS40LTEuOC0xLjEtMy41LTIuMS01cy0yLjQtMi44LTMuOS0zLjgtMy4yLTEuNy01LTItMy42LS4zLTUuNCAuMWwtMzEuNSA2LjhjLTUuOC02LTExLjMtMTIuNS0xNi4zLTE5LjJsMTUzLjIgMGMxLjcgMCAyLjktLjMgMi45LTEuOWwwLTU0LjJjMC0xLjYtMS4yLTEuOS0yLjktMS45bC00NC44IDAgMC0zNC40IDQ4LjUgMGM0LjQgMCAyMy43IDEuMyAyOS44IDI1LjkgMS45IDcuNSA2LjIgMzIuMSA5LjEgNDAgMi45IDguOCAxNC42IDI2LjUgMjcuMSAyNi41bDc5IDBjLTUuMyA3LjEtMTEuMSAxMy44LTE3LjMgMjAuMWwtMzIuMS02Ljl6bTI1LjggMzQuNWMwIDMtLjkgNi0yLjYgOC41cy00IDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjgtOC44IDMuMS01LjIgNS42LTYuOSA1LjQtMi42IDguNS0yLjZsLjQgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwem0tMjI1LjYtLjdjMCAzLS45IDYtMi42IDguNXMtNC4xIDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjktOC44IDMuMS01LjIgNS42LTYuOCA1LjQtMi42IDguNS0yLjZsLjUgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwek02OS42IDIzNC4ybDMyLjgtMTQuNmMxLjctLjcgMy4yLTEuOCA0LjQtMy4xczIuMi0yLjkgMi45LTQuNiAxLTMuNSAuOS01LjMtLjUtMy42LTEuMi01LjNsLTYuOC0xNS4yIDI2LjYgMCAwIDExOS43LTUzLjYgMGMtNi42LTIzLjItOC43LTQ3LjYtNi4xLTcxLjZ6TTU4LjMgMTk4LjFjMC0yIC40LTQgMS4yLTUuOHMxLjktMy41IDMuMy00LjkgMy4xLTIuNSA0LjktMy4zIDMuOC0xLjIgNS44LTEuMmwuNSAwYzMgLjEgNS45IDEgOC4zIDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQuMS02IC4yLTguNy0uOS01LjEtMy4xLTYuOC01LjYtMi41LTUuNC0yLjUtOC40bDAgMHptMTU1LjIgMjQuNWwwLTM1LjMgNjMuMyAwYzMuMyAwIDIzLjEgMy44IDIzLjEgMTguNiAwIDEyLjMtMTUuMiAxNi43LTI3LjcgMTYuN2wtNTguNyAwek0zOTkgMzA2LjdjLTkuOCAxLjEtMjAuNi00LjEtMjItMTAuMS01LjgtMzIuNS0xNS40LTM5LjQtMzAuNi01MS40IDE4LjktMTIgMzguNS0yOS42IDM4LjUtNTMuMyAwLTI1LjUtMTcuNS00MS42LTI5LjQtNDkuNS0xNi44LTExLTM1LjMtMTMuMi00MC4zLTEzLjJsLTE5OC45IDBjMjcuNS0zMC43IDY0LjQtNTEuNSAxMDQuOS01OS4ybDIzLjUgMjQuNmMxLjMgMS4zIDIuOCAyLjQgNC40IDMuMXMzLjUgMS4xIDUuMyAxLjIgMy42LS4zIDUuMy0uOSAzLjItMS43IDQuNi0yLjlsMjYuMy0yNWMyNi44IDUgNTIuMSAxNS44IDc0LjMgMzEuNnM0MC42IDM2LjIgNTQuMSA1OS45bC0xOCA0MC42Yy0xLjUgMy40LTEuNSA3LjItLjIgMTAuNnMzLjkgNi4yIDcuMyA3LjdsMzQuNiAxNS4zYzEuMSAxMC44IDEuMiAyMS43IC40IDMyLjVsLTE5LjMgMGMtMS45IDAtMi43IDEuMy0yLjcgMy4xbDAgOC44YzAgMjAuOC0xMS43IDI1LjMtMjIgMjYuNXpNMjQwIDYwLjJjMC00IDEuNi03LjkgNC41LTEwLjdzNi43LTQuNSAxMC43LTQuNWwuNCAwYzMgLjEgNS45IDEgOC40IDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNHpNNDM2LjggMjE0Yy0yIDAtNC0uNC01LjgtMS4ycy0zLjUtMS45LTQuOS0zLjMtMi41LTMuMS0zLjMtNC45LTEuMi0zLjgtMS4yLTUuOCAuNC00IDEuMi01LjggMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjQgMGM0IC4xIDcuOSAxLjcgMTAuNyA0LjZzNC40IDYuOCA0LjMgMTAuOC0xLjcgNy45LTQuNiAxMC43LTYuOCA0LjQtMTAuOCA0LjN6Il19LFdTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3JuYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjU5MiIsIk03Ni44IDM3MC4zYzEgNy44LS40IDE1LjgtNC4xIDIyLjhzLTkuNiAxMi42LTE2LjcgMTYuMS0xNS4xIDQuNy0yMi45IDMuMy0xNS01LjEtMjAuNi0xMC43LTkuMi0xMi45LTEwLjUtMjAuNyAwLTE1LjggMy42LTIyLjkgOS4zLTEyLjggMTYuMy0xNi41IDE1LTUgMjIuOS0zLjljLTc4LjMtMTExLjMgNTItMTkwLjUgNTItMTkwLjUtNS45IDQzLTguMiA5MS4yLTguMiA5MS4yLTY3LjMgNDEuNSAuOSA2NC4xIDM5LjggNzIuOSA5LjkgMjcgMjcuOCA1MC4yIDUxLjQgNjYuN3M1MS42IDI1LjMgODAuMyAyNS4zYzEuOSAwIDMuOC0uMiA1LjctLjNsLjEgMTguOWMtOTkuMiAxLjQtMTU4LjctMjkuMS0xODguOS01MS42em0xMDgtMzI3LjdjLjktNy4yLS4yLTE0LjYtMy40LTIxLjItMy02LjItNy42LTExLjUtMTMuNC0xNS4zcy0xMi41LTUuOS0xOS40LTYuMi0xMy44IDEuNC0xOS44IDQuNy0xMS4xIDguMy0xNC41IDE0LjMtNS4yIDEyLjgtNSAxOS43IDIuMiAxMy43IDUuOSAxOS41IDguOSAxMC42IDE1LjEgMTMuNiAxMy4xIDQuNCAyMCAzLjljLTIyLjYgMjkuOS01My44IDg5LjYtNTIuNCAxOTBsMjEuOC0uMmMwLS45LS4xLTEuOC0uMS0yLjcgMC0yOCA4LjQtNTUuMyAyNC4xLTc4LjVzMzcuOS00MS4yIDYzLjgtNTEuNmM4LTM3LjcgMzAuNy0xMTQuMyA3My44LTQ0LjMgMCAwIDQ4LjEgMi40IDkxLjIgOC4yIDAgMC03Ny44LTEyOC0xODcuNi01NC4xbDAgMHpNNDg5IDE3Ni44YzYuMy0zIDExLjctNy43IDE1LjUtMTMuNnM1LjktMTIuNyA2LjEtMTkuOC0xLjYtMTQtNS4yLTIwLTguNy0xMS0xNC45LTE0LjMtMTMuMi00LjgtMjAuMi00LjQtMTMuOCAyLjgtMTkuNSA2LjktMTAuMiA5LjYtMTMgMTYuMS0zLjcgMTMuNi0yLjcgMjAuNWMtMzEuNy0yMS45LTg5LjgtNDkuMS0xODMuNC00Ny43bC4xIDIyLjVjMi43LS4yIDUuNC0uNCA4LjEtLjQgMjguMSAwIDU1LjYgOC41IDc4LjkgMjQuM3M0MS4yIDM4LjMgNTEuNiA2NC41YzM5LjEgOSAxMDUuMSAzMS42IDM4LjUgNzIuNSAwIDAtMi4zIDQ4LjEtOC4yIDkxLjIgMCAwIDEzMy40LTgxLjIgNDktMTk0LjYgNi42IC42IDEzLjMtLjYgMTkuMy0zLjVsMCAwek0zNzQuNCA0MzYuMmMyMS40LTMyLjUgNDYuNC04OS43IDQ1LjEtMTc5LjdsLTE5LjUgLjFjLjEgMi4xIC4zIDQuMSAuMyA2LjIgMCAyOC42LTguOCA1Ni41LTI1LjEgODBzLTM5LjUgNDEuNC02Ni4zIDUxLjRjLTguOSAzOS0zMS40IDEwNi43LTcyLjggMzkuNSAwIDAtNDguMS0yLjMtOTEuMi04LjIgMCAwIDc5LjkgMTMxLjMgMTkxLjkgNTEgLjMgNC45IDEuNSA5LjYgMy42IDE0IDIuOSA2LjEgNy41IDExLjQgMTMuMSAxNS4xczEyLjIgNiAxOSA2LjQgMTMuNi0xLjEgMTkuNi00LjIgMTEuMS03LjggMTQuNy0xMy42IDUuNi0xMi40IDUuNy0xOS4yLTEuNS0xMy41LTQuOC0xOS40LTguMi0xMC45LTE0LjEtMTQuMy0xMi42LTUuMi0xOS40LTUuMWwwLS4xeiJdfSxHU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhwIixpY29uOls2NDAsNTEyLFtdLCJmNDU3IiwiTTMyMCAxMDQuNWMxNzEuNCAwIDMwMy4yIDcyLjIgMzAzLjIgMTUxLjVTNDkxLjMgNDA3LjUgMzIwIDQwNy41QzE0OC42IDQwNy41IDE2LjggMzM1LjMgMTYuOCAyNTZTMTQ4LjcgMTA0LjUgMzIwIDEwNC41em0wLTE2LjhDMTQzLjMgODcuNyAwIDE2MyAwIDI1NlMxNDMuMyA0MjQuMyAzMjAgNDI0LjMgNjQwIDM0OSA2NDAgMjU2IDQ5Ni43IDg3LjcgMzIwIDg3Ljd6TTIxOC4yIDI0Mi41Yy03LjkgNDAuNS0zNS44IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOCAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNOTcuNCAzNTAuM2wzNi43IDAgOC43LTQ0LjhjNDEuMSAwIDY2LjYgMyA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi43IDE2OC43ek0yODMuMSAxMzYuN2wzNi41IDAtOC43IDQ0LjhjMzEuNSAwIDYwLjctMi4zIDc0LjggMTAuNyAxNC44IDEzLjYgNy43IDMxLTguMyAxMTMuMWwtMzcgMGMxNS40LTc5LjQgMTguMy04NiAxMi43LTkyLTUuNC01LjgtMTcuNy00LjYtNDcuNC00LjZsLTE4LjggOTYuNi0zNi41IDAgMzIuNy0xNjguNnpNNTA1IDI0Mi41Yy04IDQxLjEtMzYuNyAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzguMiAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNMzg0LjIgMzUwLjNsMzYuOCAwIDguNy00NC44YzQzLjIgMCA2Ny4xIDIuNSA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi44IDE2OC43eiJdfSxZU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlzcXVzIixpY29uOls1NzYsNTEyLFtdLCJlN2Q1IiwiTTI5MC4yIDUxMmMtNjIuNiAwLTExOS45LTIyLjktMTY0LjItNjAuOEwxNyA0NjYuMSA1OS4xIDM2Mi4yYy0xNC43LTMyLjQtMjIuOS02OC4zLTIyLjktMTA2LjIgMC0xNDEuNCAxMTMuNy0yNTYgMjU0LTI1NiAxNDAuMyAwIDI1NCAxMTQuNiAyNTQgMjU2IDAgMTQxLjQtMTEzLjcgMjU2LTI1NCAyNTZ6TTQyOC45IDI1NS4zbDAtLjdDNDI4LjkgMTgwLjcgMzc2LjggMTI4IDI4NyAxMjhsLTk3IDAgMCAyNTYgOTUuNiAwYzkwLjUgMCAxNDMuNC01NC45IDE0My40LTEyOC43ek0yODggMzIxLjFsLTI4LjQgMCAwLTEzMC4yIDI4LjQgMGM0MS43IDAgNjkuMyAyMy44IDY5LjMgNjQuN2wwIC43YzAgNDEuMy0yNy43IDY0LjctNjkuMyA2NC43eiJdfSxLU3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNTAwcHgiLGljb246WzM4NCw1MTIsW10sImYyNmUiLCJNNzEuOCAzNDQuM2MtNi41LTE0LjItNi45LTE4LjMgNy40LTIzLjEgMjUuNi04IDggOS4yIDQzLjIgNDkuMmwuMyAwIDAtOTMuOWMxLjItNTAuMiA0NC05Mi4yIDk3LjctOTIuMiA1My45IDAgOTcuNyA0My41IDk3LjcgOTYuOCAwIDYzLjQtNjAuOCAxMTMuMi0xMjguNSA5My4zLTEwLjUtNC4yLTIuMS0zMS43IDguNS0yOC42IDUzIDAgODkuNC0xMC4xIDg5LjQtNjQuNCAwLTYxLTc3LjEtODkuNi0xMTYuOS00NC42LTIzLjUgMjYuNC0xNy42IDQyLjEtMTcuNiAxNTcuNiA1MC43IDMxIDExOC4zIDIyIDE2MC40LTIwLjEgMjQuOC0yNC44IDM4LjUtNTggMzguNS05MyAwLTM1LjItMTMuOC02OC4yLTM4LjgtOTMuMy0yNC44LTI0LjgtNTcuOC0zOC41LTkzLjMtMzguNVMxNTEgMTYzLjMgMTI2LjMgMTg4Yy0uMyAuMy0xNiAxNi41LTIxLjIgMjMuOWwtLjUgLjZjLTMuMyA0LjctNi4zIDkuMS0yMC4xIDYuMS02LjktMS43LTE0LjMtNS44LTE0LjMtMTEuOEw3MC4yIDIwYzAtNSAzLjktMTAuNSAxMC41LTEwLjVMMzIyIDkuNWM4LjMgMCA4LjMgMTEuNiA4LjMgMTUuMSAwIDMuOSAwIDE1LjEtOC4zIDE1LjFsLTIyMy4yIDAgMCAxMzIuOSAuMyAwYzEwNC4yLTEwOS44IDI4Mi44LTM2IDI4Mi44IDEwOC45IDAgMTc4LjEtMjQ0LjggMjIwLjMtMzEwLjEgNjIuOHpNMTM1LjEgODMuNWMtLjUgNC4yIDQuNiAyNC41IDE0LjYgMjAuNiAxMjQuOC00Ny41IDIwMi44IDQwLjQgMjA5LjQgNDAuNCA0LjggMCAyMi44LTE1LjMgMTQuMy0yMi44LTkzLjItODktMjM0LjUtNTctMjM4LjMtMzguMnpNMzYxLjUgNDE0LjdjLTExMCAxMDkuOS0yOTkgNjAuOC0zMzItMTA0LjIgMC0xMi4yLTMwLjQtNy40LTI4LjkgMy4zIDI0IDE3My40IDI0NiAyNTYuOSAzODEuNiAxMjEuMyA2LjktNy44LTEyLjYtMjguNC0yMC43LTIwLjR6TTE4Mi4xIDMwNi42YzAgNCA0LjMgNy4zIDUuNSA4LjUgMyAzIDYuMSA0LjQgOC41IDQuNCAzLjggMCAyLjYgLjIgMjIuMy0xOS41IDE5LjYgMTkuMyAxOS4xIDE5LjUgMjIuMyAxOS41IDUuNCAwIDE4LjUtMTAuNCAxMC43LTE4LjJsLTE3LjMtMTcuMyAxOC4yLTE4LjJjNi4zLTYuOC0xMC4xLTIxLjgtMTYuMi0xNS43TDIxOC4yIDI2OGMtMTguNi0xOC44LTE4LjQtMTkuNS0yMS41LTE5LjUtNSAwLTE4IDExLjctMTIuNCAxNy4zTDIwMi41IDI4NGMtMTguMSAxNy45LTIwLjQgMTkuMi0yMC40IDIyLjZ6Il19LFpTdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZmZpbGlhdGV0aGVtZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YiIsIk0xNTkuNyAyMzcuNEMxMDguNCAzMDguMyA0My4xIDM0OC4yIDE0IDMyNi42LTE1LjIgMzA0LjkgMi44IDIzMCA1NC4yIDE1OS4xIDEwNS41IDg4LjIgMTcwLjggNDguMyAxOTkuOSA2OS45czExLjEgOTYuNi00MC4yIDE2Ny41em0zNTEuMi01Ny4zYy03My44IDEyMy40LTE5MS45IDE4Ny43LTI2NC41IDE0My42LTI1LTE1LjItNDEuMy00MS4yLTQ5LTczLjgtMzMuNiA2NC44LTkyLjggMTEzLjgtMTY0LjEgMTMzLjIgNDkuOCA1OS4zIDEyNC4xIDk2LjkgMjA3IDk2LjkgMTUwIDAgMjcxLjYtMTIzLjEgMjcxLjYtMjc0LjkgLjEtOC41LS4zLTE2LjgtMS0yNXoiXX0sWFN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZC1yaXZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMyIsIk0zNTMuMiAzMkw5NC44IDMyQzQyLjQgMzIgMCA3NC40IDAgMTI2LjhMMCAzODUuMkMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwbDI1OC40IDBjNTIuNCAwIDk0LjgtNDIuNCA5NC44LTk0LjhsMC0yNTguNEM0NDggNzQuNCA0MDUuNiAzMiAzNTMuMiAzMnpNMTQ0LjkgMjAwLjlsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bC01Ni4zIDBjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNGwwIDU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bDAtMTU0LjJjMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjlsMTU0LjIgMGMwIDI3LTIxLjkgNDguOS00OC45IDQ4Ljl6Il19LGhlZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0d2l0dGVyIixpY29uOls1MTIsNTEyLFtdLCJmMDk5IiwiTTQ1OS40IDE1MS43Yy4zIDQuNSAuMyA5LjEgLjMgMTMuNiAwIDEzOC43LTEwNS42IDI5OC42LTI5OC42IDI5OC42LTU5LjUgMC0xMTQuNy0xNy4yLTE2MS4xLTQ3LjEgOC40IDEgMTYuNiAxLjMgMjUuMyAxLjMgNDkuMSAwIDk0LjItMTYuNiAxMzAuMy00NC44LTQ2LjEtMS04NC44LTMxLjItOTguMS03Mi44IDYuNSAxIDEzIDEuNiAxOS44IDEuNiA5LjQgMCAxOC44LTEuMyAyNy42LTMuNi00OC4xLTkuNy04NC4xLTUyLTg0LjEtMTAzbDAtMS4zYzE0IDcuOCAzMC4yIDEyLjcgNDcuNCAxMy4zLTI4LjMtMTguOC00Ni44LTUxLTQ2LjgtODcuNCAwLTE5LjUgNS4yLTM3LjQgMTQuMy01MyA1MS43IDYzLjcgMTI5LjMgMTA1LjMgMjE2LjQgMTA5LjgtMS42LTcuOC0yLjYtMTUuOS0yLjYtMjQgMC01Ny44IDQ2LjgtMTA0LjkgMTA0LjktMTA0LjkgMzAuMiAwIDU3LjUgMTIuNyA3Ni43IDMzLjEgMjMuNy00LjUgNDYuNS0xMy4zIDY2LjYtMjUuMy03LjggMjQuNC0yNC40IDQ0LjgtNDYuMSA1Ny44IDIxLjEtMi4zIDQxLjYtOC4xIDYwLjQtMTYuMi0xNC4zIDIwLjgtMzIuMiAzOS4zLTUyLjYgNTQuM3oiXX0sUVN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4NiIsIk00ODkuNSAyODcuOWwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMTc4LjNjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMzJjMC02LTgtNC42LTExLjctNC42bDAtMzhjOC4zLTIgMTcuMS0zLjQgMjUuNy0zLjQgMTAuOSAwIDIwLjkgNC4zIDMxLjQgNC4zIDQuNiAwIDI3LjctMS4xIDI3LjctOGwwLTYwYzAtMi42LTItNC42LTQuNi00LjYtNS4xIDAtMTUuMSA0LjMtMjQgNC4zLTkuNyAwLTIwLjktNC4zLTMyLjYtNC4zLTggMC0xNiAxLjEtMjMuNyAyLjlsMC00LjljNS40LTIuNiA5LjEtOC4zIDkuMS0xNC4zIDAtMjAuNy0zMS40LTIwLjgtMzEuNCAwIDAgNiAzLjcgMTEuNyA5LjEgMTQuM2wwIDExMS43Yy0zLjcgMC0xMS43LTEuNC0xMS43IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjMgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDE3OC4zLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDIxOS41IDE4Mi45IDAgMC05NmMwLTcyLjYgMTA5LjctNzIuNiAxMDkuNyAwbDAgOTYgMTgyLjkgMCAwLTIxOS41Yy4xLTIuNi0xLjktNC42LTQuNS00LjZ6bS0yODguMS00LjVjMCAyLjYtMiA0LjYtNC42IDQuNmwtMjcuNCAwYy0yLjYgMC00LjYtMi00LjYtNC42bDAtNjRjMC0yLjYgMi00LjYgNC42LTQuNmwyNy40IDBjMi42IDAgNC42IDIgNC42IDQuNmwwIDY0em0xNDYuNCAwYzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHoiXX0sSlN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peGVyIixpY29uOls0NDgsNTEyLFtdLCJlMDU2IiwiTTgyLjYgNzYuMWMtMy44LTUuMS04LjctOS40LTE0LjItMTIuNXMtMTEuNy01LjEtMTguMS01LjctMTIuOCAuMS0xOC44IDIuMi0xMS42IDUuMy0xNi4zIDkuNmMtMTcuNiAxNi4yLTE5IDQzLjUtNC44IDYyLjhsOTEuOCAxMjMtOTIuMyAxMjQuMWMtMTQuMiAxOS4zLTEzLjEgNDYuNiA0LjcgNjIuOCA0LjcgNC4zIDEwLjMgNy42IDE2LjMgOS42czEyLjUgMi44IDE4LjggMi4yIDEyLjUtMi41IDE4LjEtNS43IDEwLjQtNy40IDE0LjItMTIuNUwyMTAuOSAyNjIuN2MxLjUtMi4xIDIuMy00LjYgMi4zLTcuMXMtLjgtNS0yLjMtNy4xTDgyLjYgNzYuMXpNNDM4LjIgMzc5LjZsLTkyLjMtMTI0LjEgOTEuOC0xMjNjMTQuMi0xOS4yIDEyLjgtNDYuNi00LjctNjIuOC00LjctNC4zLTEwLjMtNy42LTE2LjMtOS42cy0xMi41LTIuOC0xOC44LTIuMi0xMi41IDIuNS0xOC4xIDUuNy0xMC40IDcuNC0xNC4yIDEyLjVsLTEyOCAxNzIuMWMtMS41IDIuMS0yLjMgNC42LTIuMyA3LjFzLjggNSAyLjMgNy4xTDM2NiA0MzUuOWMzLjggNS4xIDguNyA5LjQgMTQuMiAxMi41czExLjcgNS4xIDE4LjEgNS43IDEyLjgtLjEgMTguOC0yLjIgMTEuNi01LjMgMTYuMy05LjZjMTcuOC0xNi4yIDE5LTQzLjUgNC43LTYyLjh6Il19LGV6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJseWZ0IixpY29uOls1MTIsNTEyLFtdLCJmM2MzIiwiTTAgODEuMWw3Ny44IDAgMCAyMDguN2MwIDMzLjEgMTUgNTIuOCAyNy4yIDYxLTEyLjcgMTEuMS01MS4yIDIwLjktODAuMi0yLjgtMTctMTQtMjQuOC0zNy4zLTI0LjgtNTlMMCA4MS4xek00ODUuOSAyNTQuNmwwLTIyIDIzLjggMCAwLTc2LjgtMjYuMSAwYy0xMC4xLTQ2LjMtNTEuMi04MC43LTEwMC4zLTgwLjctNTYuNiAwLTEwMi43IDQ2LTEwMi43IDEwMi43bDAgMTc5LjJjMTYgMi4zIDM1LjQtLjMgNTEuNy0xNCAxNy4xLTE0IDI0LjgtMzcuMiAyNC44LTU5bDAtNi43IDM4LjggMCAwLTc2LjgtMzguOCAwIDAtMjMuM2MwLTM0LjYgNTIuMi0zNC42IDUyLjIgMGwwIDc3LjFjMCA1Ni42IDQ2IDEwMi43IDEwMi43IDEwMi43bDAtNzYuNWMtMTQuNSAwLTI2LjEtMTEuNy0yNi4xLTI1Ljl6bS0yOTQuMy05OWwwIDExM2MwIDE1LjQtMjMuOCAxNS40LTIzLjggMGwwLTExMy03Ni44IDAgMCAxMzIuN2MwIDIzLjggOCA1NCA0NSA2My45IDM3IDkuOCA1OC4yLTEwLjYgNTguMi0xMC42LTIuMSAxMy40LTE0LjUgMjMuMy0zNC45IDI1LjMtMTUuNSAxLjYtMzUuMi0zLjYtNDUtNy44bDAgNzAuM2MyNS4xIDcuNSA1MS41IDkuOCA3Ny42IDQuNyA0Ny4xLTkuMSA3Ni44LTQ4LjQgNzYuOC0xMDAuOGwwLTE3OC4yLTc3LjEgMCAwIC41eiJdfSx0enQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJmNDE1IiwiTTExNi45IDE1OC41Yy03LjUgOC45LTE5LjUgMTUuOS0zMS41IDE0LjktMS41LTEyIDQuNC0yNC44IDExLjMtMzIuNiA3LjUtOS4xIDIwLjYtMTUuNiAzMS4zLTE2LjEgMS4yIDEyLjQtMy43IDI0LjctMTEuMSAzMy44em0xMC45IDE3LjJjLTE3LjQtMS0zMi4zIDkuOS00MC41IDkuOS04LjQgMC0yMS05LjQtMzQuOC05LjEtMTcuOSAuMy0zNC41IDEwLjQtNDMuNiAyNi41LTE4LjggMzIuMy00LjkgODAgMTMuMyAxMDYuMyA4LjkgMTMgMTkuNSAyNy4zIDMzLjUgMjYuOCAxMy4zLS41IDE4LjUtOC42IDM0LjUtOC42IDE2LjEgMCAyMC44IDguNiAzNC44IDguNCAxNC41LS4zIDIzLjYtMTMgMzIuNS0yNiAxMC4xLTE0LjggMTQuMy0yOS4xIDE0LjUtMjkuOS0uMy0uMy0yOC0xMC45LTI4LjMtNDIuOS0uMy0yNi44IDIxLjktMzkuNSAyMi45LTQwLjMtMTIuNS0xOC42LTMyLTIwLjYtMzguOC0yMS4xem0xMDAuNC0zNi4ybDAgMTk0LjkgMzAuMyAwIDAtNjYuNiA0MS45IDBjMzguMyAwIDY1LjEtMjYuMyA2NS4xLTY0LjNzLTI2LjQtNjQtNjQuMS02NGwtNzMuMiAwek0yNTguNSAxNjVsMzQuOSAwYzI2LjMgMCA0MS4zIDE0IDQxLjMgMzguNnMtMTUgMzguOC00MS40IDM4LjhsLTM0LjggMCAwLTc3LjR6TTQyMC43IDMzNS45YzE5IDAgMzYuNi05LjYgNDQuNi0yNC45bC42IDAgMCAyMy40IDI4IDAgMC05N2MwLTI4LjEtMjIuNS00Ni4zLTU3LjEtNDYuMy0zMi4xIDAtNTUuOSAxOC40LTU2LjggNDMuNmwyNy4zIDBjMi4zLTEyIDEzLjQtMTkuOSAyOC42LTE5LjkgMTguNSAwIDI4LjkgOC42IDI4LjkgMjQuNWwwIDEwLjgtMzcuOCAyLjNjLTM1LjEgMi4xLTU0LjEgMTYuNS01NC4xIDQxLjUgLjEgMjUuMiAxOS43IDQyIDQ3LjggNDJ6bTguMi0yMy4xYy0xNi4xIDAtMjYuNC03LjgtMjYuNC0xOS42IDAtMTIuMyA5LjktMTkuNCAyOC44LTIwLjVsMzMuNi0yLjEgMCAxMWMwIDE4LjItMTUuNSAzMS4yLTM2IDMxLjJ6bTEwMi41IDc0LjZjMjkuNSAwIDQzLjQtMTEuMyA1NS41LTQ1LjRsNTMuMS0xNDktMzAuOCAwLTM1LjYgMTE1LjEtLjYgMC0zNS42LTExNS4xLTMxLjYgMCA1MS4yIDE0MS45LTIuOCA4LjZjLTQuNiAxNC42LTEyLjEgMjAuMy0yNS41IDIwLjMtMi40IDAtNy0uMy04LjktLjVsMCAyMy40YzEuOCAuNCA5LjMgLjcgMTEuNiAuN3oiXX0sYXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFydHN0YXRpb24iLGljb246WzUxMiw1MTIsW10sImY3N2EiLCJNMi4xIDM3Ny40bDQzIDc0LjNjNC4zIDguNSAxMC44IDE1LjcgMTguOSAyMC43czE3LjQgNy42IDI3IDcuNmwyODUuNCAwLTU5LjItMTAyLjYtMzE1LjEgMHpNNTAxLjkgMzUwTDMzNS43IDU5LjNjLTQuNC04LjItMTAuOS0xNS4xLTE4LjktMjBTMjk5LjcgMzIgMjkwLjQgMzJsLTg4LjQgMCAyNTcuMyA0NDcuNiA0MC43LTcwLjVjMS45LTMuMiAyMS0yOS43IDItNTkuMXpNMjc1LjIgMzA0LjVsLTExNS41LTIwMC0xMTUuNSAyMDAgMjMxIDB6Il19LHJ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub2RlLWpzIixpY29uOls0NDgsNTEyLFtdLCJmM2QzIiwiTTIyNC41IDUwOGMtNi43IDAtMTMuNS0xLjgtMTkuNC01LjJsLTYxLjctMzYuNWMtOS4yLTUuMi00LjctNy0xLjctOCAxMi4zLTQuMyAxNC44LTUuMiAyNy45LTEyLjcgMS40LS44IDMuMi0uNSA0LjYgLjRsNDcuNCAyOC4xYzEuNyAxIDQuMSAxIDUuNyAwTDQxMiAzNjcuNWMxLjctMSAyLjgtMyAyLjgtNWwwLTIxMy4yYzAtMi4xLTEuMS00LTIuOS01LjFMMjI3LjMgMzcuN2MtMS43LTEtNC0xLTUuNyAwTDM3LjEgMTQ0LjNjLTEuOCAxLTIuOSAzLTIuOSA1LjFsMCAyMTMuMWMwIDIgMS4xIDQgMi45IDQuOWw1MC42IDI5LjJjMjcuNSAxMy43IDQ0LjMtMi40IDQ0LjMtMTguN2wwLTIxMC40YzAtMyAyLjQtNS4zIDUuNC01LjNsMjMuNCAwYzIuOSAwIDUuNCAyLjMgNS40IDUuM2wwIDIxMC41YzAgMzYuNi0yMCA1Ny42LTU0LjcgNTcuNi0xMC43IDAtMTkuMSAwLTQyLjUtMTEuNkwyMC42IDM5Ni4xYy0xMi02LjktMTkuNC0xOS44LTE5LjQtMzMuN2wwLTIxMy4xYzAtMTMuOCA3LjQtMjYuOCAxOS40LTMzLjdMMjA1LjEgOWMxMS43LTYuNiAyNy4yLTYuNiAzOC44IDBMNDI4LjYgMTE1LjdjMTIgNi45IDE5LjQgMTkuOCAxOS40IDMzLjdsMCAyMTMuMWMwIDEzLjgtNy40IDI2LjctMTkuNCAzMy43TDI0My45IDUwMi44Yy01LjkgMy40LTEyLjYgNS4yLTE5LjQgNS4yek0zNzMuNiAyOTcuOWMwLTM5LjktMjctNTAuNS04My43LTU4LTU3LjQtNy42LTYzLjItMTEuNS02My4yLTI0LjkgMC0xMS4xIDQuOS0yNS45IDQ3LjQtMjUuOSAzNy45IDAgNTEuOSA4LjIgNTcuNyAzMy44IC41IDIuNCAyLjcgNC4yIDUuMiA0LjJsMjQgMGMxLjUgMCAyLjktLjYgMy45LTEuN3MxLjUtMi42IDEuNC00LjFjLTMuNy00NC4xLTMzLTY0LjYtOTIuMi02NC42LTUyLjcgMC04NC4xIDIyLjItODQuMSA1OS41IDAgNDAuNCAzMS4zIDUxLjYgODEuOCA1Ni42IDYwLjUgNS45IDY1LjIgMTQuOCA2NS4yIDI2LjcgMCAyMC42LTE2LjYgMjkuNC01NS41IDI5LjQtNDguOSAwLTU5LjYtMTIuMy02My4yLTM2LjYtLjQtMi42LTIuNi00LjUtNS4zLTQuNWwtMjMuOSAwYy0zIDAtNS4zIDIuNC01LjMgNS4zIDAgMzEuMSAxNi45IDY4LjIgOTcuOCA2OC4yIDU4LjQtLjEgOTItMjMuMiA5Mi02My40eiJdfSxzenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5jaGFydGVkIixpY29uOls0NDgsNTEyLFtdLCJlMDg0IiwiTTE3MS44IDIzMi44YzEuMSAwIDIuMS0uMyAzLS45czEuNi0xLjQgMi0yLjRjMi4yLTkuOCA3LjQtMTguNiAxNC45LTI1LjMgMS4yLS44IDEuNy0yLjUgMS43LTQuMS0uMS0uNy0uMy0xLjMtLjYtMS45cy0uOS0xLjEtMS40LTEuNEw3NC41IDEyOC41IDE0OS4xIDg1YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGMwLTEuNy0uNC0zLjQtMS4zLTQuOXMtMi4yLTIuNy0zLjctMy40TDEyNi43IDU1LjZjLTEuNS0uOC0zLjEtMS4yLTQuOC0xLjJzLTMuMyAuNC00LjggMS4yTDE3IDExMy42Yy0xLjUgLjgtMi43IDItMy42IDMuNXMtMS40IDMuMS0xLjQgNC44TDEyIDIzN2MwIDEuNyAuNCAzLjQgMS4zIDQuOXMyLjIgMi43IDMuNyAzLjRsMjIuNCAxMi44YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDIuNCAuMSA0LjgtLjggNi42LTIuNSAxLjgtMS45IDIuOC00LjQgMi45LTdsMC04NS4zIDExNS45IDY3LjljLjYgLjMgMS40IC40IDIuMSAuNHpNMzIzLjQgMzc3LjdjLTEuNyAuMS0zLjQgLjUtNSAxLjJsLTc0LjUgNDMuMSAwLTEzNC4yYzAtMi45LTIuOS01LjgtNi4yLTQuNi05LjQgMi44LTE5LjUgMy0yOSAuNC0uNy0uMi0xLjUtLjItMi4yLS4xcy0xLjQgLjQtMiAuOS0xLjEgMS0xLjQgMS43LS41IDEuNC0uNSAyLjFsMCAxMzMuMy03NC41LTQzLjFjLTEuNS0uOS0zLjItMS4zLTUtMS4yLTIuNSAwLTQuOSAxLTYuNyAyLjhzLTIuOCA0LjItMi44IDYuN2wwIDI2LjFjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDEwMC4yIDU3LjZjMS41IC45IDMuMiAxLjMgNSAxLjIgMS43IDAgMy40LS40IDUtMS4ybDEwMC4yLTU3LjZjMS41LS44IDIuNy0yIDMuNi0zLjVzMS40LTMuMSAxLjQtNC44bDAtMjYuMWMtLjgtNC42LTUuNC05LjEtMTAuNC05LjF6TTI4Ni4xIDc4YTIzIDIzIDAgMSAwIDAtNDYgMjMgMjMgMCAxIDAgMCA0NnptNjMuNi0xMC4xYTIzIDIzIDAgMSAwIDAgNDYgMjMgMjMgMCAxIDAgMC00NnptNjMuMiA4My43YTIzIDIzIDAgMSAwIDAtNDYgMjMgMjMgMCAxIDAgMCA0NnptLTYzLjItOS4yYTIzIDIzIDAgMSAwIDAgNDYgMjMgMjMgMCAxIDAgMC00NnptLTYzLjYgODMuMmM0LjUgMCA5LTEuMyAxMi44LTMuOXM2LjctNi4xIDguNS0xMC4zIDIuMi04LjggMS4zLTEzLjMtMy4xLTguNi02LjMtMTEuOC03LjMtNS40LTExLjgtNi4zLTkuMS0uNC0xMy4zIDEuMy03LjggNC43LTEwLjMgOC41LTMuOSA4LjItMy45IDEyLjhjMCAzIC42IDYgMS44IDguOHMyLjkgNS4zIDUgNy41IDQuNyAzLjggNy41IDUgNS44IDEuOCA4LjggMS44bDAgMHpNMjI0IDI2MmM0LjUgMCA5LTEuNCAxMi44LTMuOXM2LjctNi4xIDguNS0xMC4zIDIuMi04LjggMS4zLTEzLjMtMy4xLTguNi02LjMtMTEuOC03LjMtNS40LTExLjgtNi4zLTkuMS0uNC0xMy4zIDEuMy03LjggNC43LTEwLjMgOC41LTMuOSA4LjItMy45IDEyLjhjMCAzIC42IDYgMS43IDguOHMyLjggNS4zIDUgNy41IDQuNyAzLjggNy41IDUgNS44IDEuOCA4LjggMS44bDAgMHptMTg4LjktODIuNGMtNC42IDAtOSAxLjMtMTIuOCAzLjlzLTYuNyA2LjEtOC41IDEwLjMtMi4yIDguOC0xLjMgMTMuMyAzLjEgOC42IDYuMyAxMS44IDcuMyA1LjQgMTEuOCA2LjMgOS4xIC40IDEzLjMtMS4zIDcuOC00LjcgMTAuMy04LjUgMy45LTguMiAzLjktMTIuOGMwLTYuMS0yLjQtMTEuOS02LjctMTYuM3MtMTAuMi02LjctMTYuMy02LjdsMCAwem0wIDcyLjNjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHoiXX0saXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBsYXlzdGF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmM2RmIiwiTTU3MSAzNzIuM2MtMTEuMyAxNC4yLTM4LjggMjQuMy0zOC44IDI0LjNsLTIwNS4xIDczLjYgMC01NC4zIDE1MC45LTUzLjhjMTcuMS02LjEgMTkuOC0xNC44IDUuOC0xOS40LTEzLjktNC42LTM5LjEtMy4zLTU2LjIgMi45bC0xMDAuNSAzNS41IDAtNTYuNGMyMy4yLTcuOCA0Ny4xLTEzLjYgNzUuNy0xNi44IDQwLjktNC41IDkwLjkgLjYgMTMwLjIgMTUuNSA0NC4yIDE0IDQ5LjIgMzQuNyAzOCA0OC45ek0zNDYuNiAyNzkuOGwwLTEzOWMwLTE2LjMtMy0zMS4zLTE4LjMtMzUuNi0xMS43LTMuOC0xOSA3LjEtMTkgMjMuNGwwIDM0Ny45LTkzLjgtMjkuOCAwLTQxNC43YzM5LjkgNy40IDk4IDI0LjkgMTI5LjIgMzUuNCA3OS41IDI3LjMgMTA2LjQgNjEuMyAxMDYuNCAxMzcuOCAwIDc0LjUtNDYgMTAyLjgtMTA0LjUgNzQuNnpNNDMuMyA0MTAuMmMtNDUuNC0xMi44LTUzLTM5LjUtMzIuMy01NC44IDE5LjEtMTQuMiA1MS43LTI0LjkgNTEuNy0yNC45bDEzNC41LTQ3LjggMCA1NC41LTk2LjggMzQuNmMtMTcuMSA2LjEtMTkuNyAxNC44LTUuOCAxOS40czM5LjEgMy4zIDU2LjItMi45bDQ2LjQtMTYuOSAwIDQ4LjhjLTUxLjYgOS4zLTEwMS40IDcuMy0xNTMuOS0xMHoiXX0sb3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3JvYmxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTAxYSIsIk0zOTkuOCAzNjIuMmMyOS41LTM0LjcgNDcuMS03OC4zIDQ3LjEtMTI1LjggMC0xMTMtOTkuNi0yMDQuNC0yMjIuNS0yMDQuNFMyIDEyMy41IDIgMjM2LjQgMTAxLjYgNDQwLjkgMjI0LjUgNDQwLjljMjcgMCA1My45LTQuNSA3OS40LTEzLjQgMS40LS41IDMtLjUgNC41LS4xczIuNyAxLjQgMy42IDIuNmMxOC42IDI1LjEgNDcuNiA0Mi43IDc5LjkgNDkuOSAxLjEgLjIgMi4zIDAgMy4zLS42czEuNy0xLjYgMS45LTIuOGMuMS0uNiAuMS0xLjMgMC0xLjlzLS40LTEuMi0uOC0xLjdjLTEyLjMtMTYtMTguNy0zNS44LTE4LTU2czguNC0zOS41IDIxLjctNTQuN2wtLjIgLjF6TTMzMCAyMTIuNGwtNTcuMyA0My41IDIwLjggNjguOWMuNCAxLjMgLjQgMi43LS4xIDRzLTEuMiAyLjQtMi4zIDMuMi0yLjQgMS4yLTMuOCAxLjItMi43LS40LTMuOC0xLjJsLTU5LjEtNDEtNTkuMSA0MS4xYy0xLjEgLjgtMi40IDEuMi0zLjggMS4ycy0yLjctLjQtMy44LTEuMi0xLjktMS45LTIuMy0zLjItLjUtMi43LS4xLTRsMjAuOC02OC45LTU3LjMtNDMuNWMtMS4xLS44LTEuOS0xLjktMi4zLTMuMnMtLjQtMi43IDAtNCAxLjItMi40IDIuMy0zLjIgMi40LTEuMyAzLjctMS4zbDcxLjktMS41IDIzLjctNjcuOWMuNC0xLjMgMS4zLTIuNCAyLjQtMy4yczIuNC0xLjIgMy44LTEuMiAyLjcgLjQgMy44IDEuMiAxLjkgMS45IDIuNCAzLjJsMjMuNyA2Ny45IDcxLjkgMS41YzEuNCAwIDIuNyAuNCAzLjggMS4yczEuOSAxLjkgMi4zIDMuMiAuNCAyLjcgMCA0LTEuMiAyLjQtMi4zIDMuM2wwIDB6Il19LG56dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRrcmFrZW4iLGljb246WzU3Niw1MTIsW10sImYzYTYiLCJNNTU3LjcgMTE4LjFjLTIuMy02LjEtOS4zLTkuMi0xNS4zLTYuNi01LjcgMi40LTguNSA4LjktNi4zIDE0LjYgMTAuOSAyOSAxNi45IDYwLjUgMTYuOSA5My4zIDAgMTM0LjYtMTAwLjMgMjQ1LjctMjMwLjIgMjYyLjdsMC0xMjMuN2M3LjktMS41IDE1LjUtMy42IDIzLTYuMmwwIDEwNGMxMDYuNy0yNS45IDE4NS45LTEyMi4xIDE4NS45LTIzNi44IDAtOTEuOC01MC44LTE3MS44LTEyNS44LTIxMy4zLTUuNy0zLjItMTMtLjktMTUuOSA1LTIuNyA1LjUtLjYgMTIuMiA0LjcgMTUuMSA2Ny45IDM3LjYgMTEzLjkgMTEwIDExMy45IDE5My4yIDAgOTMuMy01Ny45IDE3My4xLTEzOS44IDIwNS40bDAtOTIuMmMxNC4yLTQuNSAyNC45LTE3LjcgMjQuOS0zMy41IDAtMTMuMS02LjgtMjQuNC0xNy4zLTMwLjUgOC4zLTc5LjUgNDQuNS01OC42IDQ0LjUtODMuOWwwLTE0LjdjMC0zOC04Ny45LTE2MS44LTEyOS0xNjQuNy0yLjUtLjItNS0uMi03LjYgMC00MS4yIDMtMTI5LjEgMTI2LjctMTI5LjEgMTY0LjdsMCAxNC44YzAgMjUuMyAzNi4zIDQuMyA0NC41IDgzLjktMTAuNiA2LjEtMTcuMyAxNy40LTE3LjMgMzAuNSAwIDE1LjggMTAuNiAyOSAyNC44IDMzLjVsMCA5Mi4yYy04MS45LTMyLjItMTM5LjgtMTEyLTEzOS44LTIwNS40IDAtODMuMSA0Ni0xNTUuNSAxMTMuOS0xOTMuMiA1LjQtMyA3LjQtOS42IDQuNy0xNS4xLTIuOS01LjktMTAuMS04LjItMTUuOS01LTc1IDQxLjUtMTI1LjggMTIxLjUtMTI1LjggMjEzLjMgMCAxMTQuNyA3OS4yIDIxMC44IDE4NS45IDIzNi44bDAtMTA0YzcuNiAyLjUgMTUuMSA0LjYgMjMgNi4ybDAgMTIzLjdjLTEyOS44LTE3LTIzMC4yLTEyOC4xLTIzMC4yLTI2Mi43IDAtMzIuOCA2LTY0LjMgMTYuOS05My4zIDIuMi01LjgtLjYtMTIuMi02LjMtMTQuNi02LTIuNi0xMyAuNC0xNS4zIDYuNi0xMS44IDMxLjUtMTguMyA2NS42LTE4LjMgMTAxLjMgMCAxNTUuMSAxMjIuNiAyODEuNiAyNzYuMyAyODcuOGwwLTE0NS45YzYuOCAuNCAxNSAuNSAyMy40IDBsMCAxNDUuOGMxNTMuNy02LjEgMjc2LjMtMTMyLjYgMjc2LjMtMjg3LjcgMC0zNS43LTYuNS02OS44LTE4LjMtMTAxLjR6TTM1Ny45IDMyMi45YTIzLjcgMjMuNyAwIDEgMSAwLTQ3LjQgMjMuNyAyMy43IDAgMSAxIDAgNDcuNHpNMjE4LjEgMjc1LjRhMjMuNyAyMy43IDAgMSAxIDAgNDcuNCAyMy43IDIzLjcgMCAxIDEgMC00Ny40eiJdfSxYdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGVsZWdyYW0iLGljb246WzUxMiw1MTIsWzYyNDYyLCJ0ZWxlZ3JhbS1wbGFuZSJdLCJmMmM2IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzcxIDE3Ni43Yy0zLjcgMzkuMi0xOS45IDEzNC40LTI4LjEgMTc4LjMtMy41IDE4LjYtMTAuMyAyNC44LTE2LjkgMjUuNC0xNC40IDEuMy0yNS4zLTkuNS0zOS4zLTE4LjctMjEuOC0xNC4zLTM0LjItMjMuMi01NS4zLTM3LjItMjQuNS0xNi4xLTguNi0yNSA1LjMtMzkuNSAzLjctMy44IDY3LjEtNjEuNSA2OC4zLTY2LjcgLjItLjcgLjMtMy4xLTEuMi00LjRzLTMuNi0uOC01LjEtLjVjLTIuMiAuNS0zNy4xIDIzLjUtMTA0LjYgNjkuMS05LjkgNi44LTE4LjkgMTAuMS0yNi45IDkuOS04LjktLjItMjUuOS01LTM4LjYtOS4xLTE1LjUtNS0yNy45LTcuNy0yNi44LTE2LjMgLjYtNC41IDYuNy05IDE4LjQtMTMuNyA3Mi4zLTMxLjUgMTIwLjUtNTIuMyAxNDQuNi02Mi4zIDY4LjktMjguNiA4My4yLTMzLjYgOTIuNS0zMy44IDIuMSAwIDYuNiAuNSA5LjYgMi45IDIgMS43IDMuMiA0LjEgMy41IDYuNyAuNSAzLjIgLjYgNi41IC40IDkuOHoiXX0sbHp0PVh1ZSxjenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MiLGljb246WzUxMiw1MTIsW10sImU4NmQiLCJNMzkxLjQgMzkuN2M2NS44LS4yIDExOC42IDUxLjggMTIwLjQgMTE2LjYgLjcgMjYuNC0xLjUgNTQuMS0zLjggNzQuMS0xNy4yIDE0OC42LTEyMi40IDI0Mi0yNTIuNCAyNDItOTUuNC0uMS0xNzkuNC01Mi43LTIyMy4yLTEzMC42IDI0LjQgMTcuNCA1NC41IDI3LjQgODcuNiAyNy40IDgzLjIgLjEgMTUxLjQtNjcuNCAxNTEuMi0xNTBsLjEtNjAuNmMtLjItNjUuNyA1My45LTExOSAxMjAuMS0xMTguOXpNMTE5LjkgMTAwLjJjNjYuMiAwIDExOS45IDUzLjMgMTE5LjkgMTE5UzE4Ni4xIDMzOC4zIDExOS45IDMzOC4zIDAgMjg1IDAgMjE5LjNjMC02NS43IDUzLjctMTE5IDExOS45LTExOXoiXX0sZHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Iml0dW5lcy1ub3RlIixpY29uOlszODQsNTEyLFtdLCJmM2I1IiwiTTM4MS45IDM4OC4yYy02LjQgMjcuNC0yNy4yIDQyLjgtNTUuMSA0OC0yNC41IDQuNS00NC45IDUuNi02NC41LTEwLjItMjMuOS0yMC4xLTI0LjItNTMuNC0yLjctNzQuNCAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgNi40LTcuMiA0LjQtNC4xIDQuNC0xNjMuMiAwLTExLjItNS41LTE0LjMtMTctMTIuMy04LjIgMS40LTE4NS43IDM0LjYtMTg1LjcgMzQuNi0xMC4yIDIuMi0xMy40IDUuMi0xMy40IDE2LjcgMCAyMzQuNyAxLjEgMjIzLjktMi41IDIzOS41LTQuMiAxOC4yLTE1LjQgMzEuOS0zMC4yIDM5LjUtMTYuOCA5LjMtNDcuMiAxMy40LTYzLjQgMTAuNC00My4yLTguMS01OC40LTU4LTI5LjEtODYuNiAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgMTAuMS0xMS41IDEuOC0yNTYuNiA1LjItMjcwLjIgLjgtNS4yIDMtOS42IDcuMS0xMi45IDQuMi0zLjUgMTEuOC01LjUgMTMuNC01LjUgMjA0LTM4LjIgMjI4LjktNDMuMSAyMzIuNC00My4xIDExLjUtLjggMTguMSA2IDE4LjEgMTcuNiAuMiAzNDQuNSAxLjEgMzI2LTEuOCAzMzguNXoiXX0sdXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imxlc3MiLGljb246WzY0MCw1MTIsW10sImY0MWQiLCJNNjEzLjIgMjE5YzAtMjAuNSAzLjItMzIuNiAzLjItNTQuNiAwLTM0LjItMTIuNi00NS4yLTQwLjUtNDUuMmwtMjAuNSAwIDAgMjQuMiA2LjMgMGMxNC4yIDAgMTcuMyA0LjcgMTcuMyAyMi4xIDAgMTYuMy0xLjYgMzIuNi0xLjYgNTEuNSAwIDI0LjIgNy45IDMzLjYgMjMuNiAzNy4zbDAgMS42Yy0xNS44IDMuNy0yMy42IDEzLjEtMjMuNiAzNy4zIDAgMTguOSAxLjYgMzQuMiAxLjYgNTEuNSAwIDE3LjktMy43IDIyLjYtMTcuMyAyMi42bDAgLjUtNi4zIDAgMCAyNS4yIDIwLjUgMGMyNy44IDAgNDAuNS0xMSA0MC41LTQ1LjIgMC0yMi42LTMuMi0zNC4yLTMuMi01NC42IDAtMTEgNi44LTIyLjYgMjcuMy0yMy42bDAtMjcuM2MtMjAuNS0uNy0yNy4zLTEyLjMtMjcuMy0yMy4zek01MDcuNiAyNTFjLTE1LjgtNi4zLTMwLjUtMTAtMzAuNS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMSAzMC41YzE1LjggMTMuMSAzOS45IDIyLjEgNTkuOSAyMi4xIDQyIDAgNjQuNi0yMi4xIDY0LjYtNTFzLTIyLjUtNDEtNDMtNDcuOHpNMTQ4LjcgMzEwLjRjLTMuNyAwLTguNC0zLjItOC40LTEzLjFsMC0xNzguMi03NC42IDBjLTI4LjQgMC00MSAxMS00MSA0NS4yIDAgMjIuNiAzLjIgMzUuMiAzLjIgNTQuNiAwIDExLTYuOCAyMi42LTI3LjMgMjMuNmwwIDI3LjNjMjAuNSAuNSAyNy4zIDEyLjEgMjcuMyAyMy4xIDAgMTkuNC0zLjIgMzEtMy4yIDUzLjYgMCAzNC4yIDEyLjYgNDUuMiA0MC41IDQ1LjJsMjAuNSAwIDAtMjQuMi02LjMgMGMtMTMuMSAwLTE3LjMtNS4zLTE3LjMtMjIuNnMxLjYtMzIuMSAxLjYtNTEuNWMwLTI0LjItNy45LTMzLjYtMjMuNi0zNy4zbDAtMS42YzE1LjgtMy43IDIzLjYtMTMuMSAyMy42LTM3LjMgMC0xOC45LTEuNi0zNC4yLTEuNi01MS41czMuNy0yMi4xIDE3LjMtMjIuMWwxNC4xIDAgMCAxNTAuOGMwIDMyLjEgMTEgNTMuMSA0My4xIDUzLjEgMTAgMCAxNy45LTEuNiAyMy42LTMuN2wtNS4zLTM0LjJjLTMuMSAuOC00LjYgLjgtNi4yIC44ek0zODAuNCAyNTFjLTE2LjMtNi4zLTMxLTEwLTMxLTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42czIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIwLjUgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxIC4xLTI4LjktMjIuNS00MS00My00Ny44em0tMTU1LTY4LjhjLTM4LjQgMC03NS4xIDMyLjEtNzQuMSA4Mi41IDAgNTIgMzQuMiA4Mi41IDc5LjMgODIuNSAxOC45IDAgMzkuOS02LjggNTYuMi0xNy45TDI3MSAzMDEuNWMtMTEuNiA2LjgtMjIuNiAxMC0zNC4yIDEwLTIxIDAtMzcuMy0xMC00MS41LTM0LjJsOTUuMiAwYy41LTMuNyAxLjYtMTEgMS42LTE5LjQgLjYtNDIuNi0yMi42LTc1LjctNjYuNy03NS43em0tMzAgNjYuMmMzLjItMjEgMTUuOC0zMSAzMC41LTMxIDE4LjkgMCAyNi4zIDEzLjEgMjYuMyAzMWwtNTYuOCAweiJdfSxwenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyZWZveCIsaWNvbjpbNTEyLDUxMixbXSwiZjI2OSIsIk01MDMuNSAyNDEuNWMtLjEtMS42LS4yLTMuMS0uMi00LjdsMC0uMS0uNC00LjcgMC0uMWMtMS4zLTEzLjktMy43LTI3LjctNy4zLTQxLjIgMC0uMSAwLS4xLS4xLS4ybC0xLjEtNGMtLjEtLjItLjEtLjUtLjItLjYtLjQtMS4yLS43LTIuNS0xLjEtMy43LS4xLS4yLS4xLS42LS4yLS44LS40LTEuMi0uNy0yLjQtMS4xLTMuNS0uMS0uNC0uMi0uNi0uNC0xLS40LTEuMi0uNy0yLjMtMS4yLTMuNWwtLjQtMS4xYy0uNC0xLjEtLjgtMi4zLTEuMi0zLjQtLjEtLjMtLjItLjctLjQtMS0uNS0xLjEtLjgtMi4zLTEuMy0zLjQtLjEtLjItLjItLjYtLjQtLjgtLjUtMS4yLTEtMi4zLTEuNC0zLjUgMC0uMS0uMS0uMi0uMS0uNC0xLjYtMy44LTMuMi03LjctNS0xMS40bC0uNC0uN2MtLjUtMS0uOC0xLjgtMS4zLTIuNi0uMi0uNS0uNS0xLjEtLjctMS42LS40LS44LS44LTEuNi0xLjItMi40LS40LS42LS42LTEuMi0xLTEuOHMtLjgtMS40LTEuMi0yLjNjLS40LS42LS43LTEuMy0xLjEtMS45cy0uOC0xLjQtMS4yLTIuMmMtLjQtLjctLjgtMS40LTEuMi0yLS40LS43LS44LTEuMy0xLjItMnMtLjgtMS4zLTEuMi0yLS44LTEuMy0xLjItMS45LS44LTEuNC0xLjMtMi4yYy0uNC0uNi0uOC0xLjItMS4yLTEuOGwtMS40LTIuMWMtLjQtLjYtLjgtMS4yLTEuMi0xLjgtLjUtLjctMS4xLTEuNi0xLjYtMi4zLS40LS41LS43LTEuMS0xLjEtMS42bC0xLjgtMi41Yy0uNC0uNS0uNi0uOC0xLTEuMy0xLTEuMy0xLjgtMi41LTIuOC0zLjctNy4yLTkuNC0xNS0xOC4zLTIzLjUtMjYuNi01LjctNi0xMS44LTExLjUtMTguMy0xNi43LTQtMy41LTguMi02LjctMTIuNS05LjgtNy43LTUuOC0xNi0xMC44LTI0LjYtMTUuMS0yLjQtMS4zLTQuOC0yLjUtNy4yLTMuNy0xNy43LTguNi0zNi4zLTE1LjItNTUuNC0xOS42LTEuOS0uNC0zLjgtLjgtNS42LTEuMmwtLjEgMGMtMS0uMS0xLjgtLjQtMi44LS41LTEyLjUtMi40LTI1LjItMy43LTM4LTRsLTEwLjYgMGMtMTUuMyAuMi0zMC41IDEuOS00NS41IDUtMzMuNiA3LjEtNjMuMiAyMS4yLTgyLjkgMzktMS4xIDEtMS45IDEuNy0yLjQgMi4ybC0uNSAuNSAuMSAwYzAgMCAuMSAwIC4xIDBzMC0uMSAwLS4xbC0uMSAuMWMuMS0uMSAuMS0uMSAuMi0uMSAxNC42LTguOCAzNC45LTE2IDQ5LjQtMTkuNmw1LjktMS40Yy40LS4xIC44LS4xIDEuMi0uMiAxLjctLjQgMy40LS43IDUuMi0xLjEgLjIgMCAuNi0uMSAuOC0uMSA2NC4yLTExLjcgMTMyLjYgNy41IDE4MC4yIDUzIDEwLjMgOS44IDE5LjMgMjAuOCAyNi45IDMyLjggMzAuNCA0OS4yIDI3LjUgMTExLjEgMy44IDE0Ny42LTM0LjQgNTMtMTExLjQgNzEuMy0xNTkgMjQuOC0xNi0xNS41LTI1LjItMzYuNy0yNS42LTU5LS4yLTEwLjcgMi0yMS4yIDYuMi0zMSAxLjctMy44IDEzLjEtMjUuNyAxOC4yLTI0LjYtMTMuMS0yLjgtMzcuNSAyLjYtNTQuNyAyOC4yLTE1LjQgMjIuOS0xNC41IDU4LjItNSA4My4zLTYtMTIuNC0xMC4xLTI1LjYtMTIuMS0zOS4yLTEyLjItODIuNiA0My4zLTE1MyA5NC4zLTE3MC41LTI3LjUtMjQtOTYuNS0yMi4zLTE0Ny43IDE1LjQtMjkuOSAyMi01MS4yIDUzLjItNjIuNSA5MC40IDEuNy0yMC45IDkuNi01Mi4xIDI1LjgtODMuOS0xNy4yIDguOS0zOSAzNy00OS44IDYyLjktMTUuNiAzNy40LTIxIDgyLjItMTYuMSAxMjQuOCAuNCAzLjIgLjcgNi40IDEuMSA5LjYgMTkuOSAxMTcuMSAxMjIgMjA2LjQgMjQ0LjggMjA2LjQgMTM3LjEgMCAyNDguMy0xMTEuMiAyNDguMy0yNDguNC0uMS00LjUtLjItOS4xLS41LTEzLjV6Il19LGZ6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrYWdnbGUiLGljb246WzMyMCw1MTIsW10sImY1ZmEiLCJNMzA0LjIgNTAxLjVMMTU4LjQgMzIwLjMgMjk4LjIgMTg1YzIuNi0yLjcgMS43LTEwLjUtNS4zLTEwLjVsLTY5LjIgMGMtMy41IDAtNyAxLjgtMTAuNSA1LjNsLTEzMi4zIDEzMy43IDAtMzA2YzAtNS0yLjUtNy41LTcuNS03LjVMMjEuNSAwQzE2LjUgMCAxNCAyLjUgMTQgNy41bDAgNDk3YzAgNSAyLjUgNy41IDcuNSA3LjVsNTEuOSAwYzUgMCA3LjUtMi41IDcuNS03LjVsMC0xMDkgMzAuOC0yOS4zIDExMC41IDE0MC42YzMgMy41IDYuNSA1LjMgMTAuNSA1LjNsNjYuOSAwYzMuNSAwIDUuNS0xIDYtM2wtMS40LTcuNnoiXX0saHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhY2Vib29rLW1lc3NlbmdlciIsaWNvbjpbNTEyLDUxMixbXSwiZjM5ZiIsIk0yNTYuNiA4Yy0xNDAgMC0yNDguNiAxMDIuMy0yNDguNiAyNDAuNiAwIDcyLjMgMjkuNyAxMzQuOCA3OC4xIDE3Ny45IDguMyA3LjUgNi42IDExLjkgOCA1OC4yIC4xIDMuMiAxIDYuNCAyLjYgOS4yczMuOSA1LjIgNi43IDYuOSA1LjkgMi44IDkuMSAzIDYuNS0uMyA5LjUtMS42QzE3NC45IDQ3OSAxNzUuNiA0NzcuMiAxODQuNiA0NzkuNiAzMzcuOCA1MjEuOCA1MDQgNDIzLjcgNTA0IDI0OC42IDUwNCAxMTAuMyAzOTYuNiA4IDI1Ni42IDh6TTQwNS44IDE5My4xbC03MyAxMTUuNmMtMi44IDQuMy02LjQgOC4xLTEwLjYgMTFzLTkuMSA0LjgtMTQuMSA1LjgtMTAuMyAuOC0xNS4zLS40LTkuNy0zLjQtMTMuOC02LjRsLTU4LjEtNDMuNWMtMi42LTEuOS01LjgtMy05LTNzLTYuNCAxLjEtOSAzbC03OC40IDU5LjRjLTEwLjUgNy45LTI0LjItNC42LTE3LjEtMTUuN2w3My0xMTUuNmMyLjgtNC4zIDYuNC04LjEgMTAuNi0xMXM5LjEtNC44IDE0LjEtNS44IDEwLjMtLjggMTUuMyAuNCA5LjcgMy40IDEzLjkgNi40bDU4LjEgNDMuNWMyLjYgMS45IDUuOCAzIDkgM3M2LjQtMS4xIDktM2w3OC40LTU5LjRjMTAuNC04IDI0LjEgNC41IDE3LjEgMTUuNnoiXX0sbXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF1ZGlibGUiLGljb246WzY0MCw1MTIsW10sImYzNzMiLCJNNjQwIDE5OS45bDAgNTQtMzIwIDIwMC0zMjAtMTk5LjkgMC01NCAzMjAgMjAwIDMyMC0yMDAuMXptLTE5NC41IDcybDQ3LjEtMjkuNGMtMzcuMi01NS44LTEwMC43LTkyLjYtMTcyLjctOTIuNnMtMTM1LjUgMzYuNy0xNzIuNiA5Mi40bC4zIDBjMi41LTIuMyA1LjEtNC41IDcuNy02LjcgODkuNy03NC40IDIxOS40LTU4LjEgMjkwLjIgMzYuM3pNMjI1LjQgMjkwLjdjMTYuOS0xMS45IDM2LjUtMTguNyA1Ny40LTE4LjcgMzQuNCAwIDY1LjIgMTguNCA4Ni40IDQ3LjZsNDUuNC0yOC40Yy0yMC45LTI5LjktNTUuNi00OS41LTk0LjgtNDkuNS0zOC45IDAtNzMuNCAxOS40LTk0LjQgNDl6TTEwMy42IDE2MS4xQzIzNS40IDU2LjggNDIxLjggODQuNyA1MjEuMSAyMjMuMmwuNyAxIDQ4LjgtMzAuNGMtNTMuNS04MS43LTE0NS44LTEzNS43LTI1MC43LTEzNS43LTEwMy41IDAtMTk2LjYgNTMuNS0yNTAuNSAxMzUuNiA5LjktMTAuNSAyMi43LTIzLjUgMzQuMi0zMi42eiJdfSxnenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGF0cmVvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjNkOSIsIk00OTAgMTUzLjhjLS4xLTY1LjQtNTEtMTE5LTExMC43LTEzOC4zLTc0LjItMjQtMTcyLTIwLjUtMjQyLjkgMTIuOS04NS44IDQwLjUtMTEyLjggMTI5LjMtMTEzLjggMjE3LjgtLjggNzIuOCA2LjQgMjY0LjQgMTE0LjYgMjY1LjggODAuMyAxIDkyLjMtMTAyLjUgMTI5LjUtMTUyLjMgMjYuNC0zNS41IDYwLjUtNDUuNSAxMDIuNC01NS45IDcyLTE3LjggMTIxLjEtNzQuNyAxMjEtMTUwbC0uMSAweiJdfSxienQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidm52IixpY29uOls2NDAsNTEyLFtdLCJmNDBiIiwiTTEwNC45IDM1MmMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRMMi42IDIxMC4xUy03LjggMTkyIDEzIDE5MmwzMi44IDBjMTAuNCAwIDEzLjIgOC43IDE4LjggMTguMWwzNi43IDc0LjVzNS4yIDEzLjEgMjEuMSAxMy4xIDIxLjEtMTMuMSAyMS4xLTEzLjFsMzYuNy03NC41YzUuNi05LjUgOC40LTE4LjEgMTguOC0xOC4xbDMyLjggMGMyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMUwxODYuNCAzMjEuNlMxNzQuMiAzNTIgMTQwIDM1MmwtMzUuMSAwem0zOTUgMGMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRMMzk3LjYgMjEwLjFTMzg3LjIgMTkyIDQwOCAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjgtNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi45IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMNTgxLjUgMzIxLjZTNTY5LjMgMzUyIDUzNS4xIDM1MmwtMzUuMiAwek0zMzcuNiAxOTJjMzQuMSAwIDQ2LjQgMzAuNCA0Ni40IDMwLjRsNTUuOSAxMTEuNVM0NTAuMyAzNTIgNDI5LjUgMzUybC0zMi44IDBjLTEwLjQgMC0xMy4yLTguNy0xOC44LTE4LjFsLTM2LjctNzQuNXMtNS4yLTEzLjEtMjEuMS0xMy4xLTIxLjEgMTMuMS0yMS4xIDEzLjFsLTM2LjcgNzQuNWMtNS42IDkuNC04LjQgMTguMS0xOC44IDE4LjFsLTMyLjkgMGMtMjAuOCAwLTEwLjQtMTguMS0xMC40LTE4LjFsNTUuOS0xMTEuNVMyNjguMyAxOTIgMzAyLjUgMTkybDM1LjEgMHoiXX0sdnp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhZ2VsaW5lcyIsaWNvbjpbMzg0LDUxMixbXSwiZjE4YyIsIk0zODQuMSAzMTIuN2MtNTUuMSAxMzYuNy0xODcuMSA1NC0xODcuMSA1NC00MC41IDgxLjgtMTA3LjQgMTM0LjQtMTg0LjYgMTM0LjctMTYuMSAwLTE2LjYtMjQuNCAwLTI0LjQgNjQuNC0uMyAxMjAuNS00Mi43IDE1Ny4yLTExMC4xLTQxLjEgMTUuOS0xMTguNiAyNy45LTE2MS42LTgyLjIgMTA5LTQ0LjkgMTU5LjEgMTEuMiAxNzguMyA0NS41IDkuOS0yNC40IDE3LTUwLjkgMjEuNi03OS43IDAgMC0xMzkuNyAyMS45LTE0OS41LTk4LjEgMTE5LjEtNDcuOSAxNTIuNiA3Ni43IDE1Mi42IDc2LjcgMS42LTE2LjcgMy4zLTUyLjYgMy4zLTUzLjQgMCAwLTEwNi4zLTczLjctMzguMS0xNjUuMiAxMjQuNiA0MyA2MS40IDE2Mi40IDYxLjQgMTYyLjQgLjUgMS42IC41IDIzLjggMCAzMy40IDAgMCA0NS4yLTg5IDEzNi40LTU3LjUtNC4yIDEzNC0xNDEuOSAxMDYuNC0xNDEuOSAxMDYuNC00LjQgMjcuNC0xMS4yIDUzLjQtMjAgNzcuNSAwIDAgODMtOTEuOCAxNzItMjB6Il19LHh6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWF6b24iLGljb246WzQ0OCw1MTIsW10sImYyNzAiLCJNMjU3LjcgMTYyLjdjLTQ4LjcgMS44LTE2OS41IDE1LjUtMTY5LjUgMTE3LjUgMCAxMDkuNSAxMzguMyAxMTQgMTgzLjUgNDMuMiA2LjUgMTAuMiAzNS40IDM3LjUgNDUuMyA0Ni44bDU2LjgtNTZzLTMyLjMtMjUuMy0zMi4zLTUyLjhsMC0xNDcuMUMzNDEuNSA4OSAzMTcgMzIgMjI5LjIgMzIgMTQxLjIgMzIgOTQuNSA4NyA5NC41IDEzNi4zbDczLjUgNi44YzE2LjMtNDkuNSA1NC4yLTQ5LjUgNTQuMi00OS41IDQwLjctLjEgMzUuNSAyOS44IDM1LjUgNjkuMXptMCA4Ni44YzAgODAtODQuMiA2OC04NC4yIDE3LjIgMC00Ny4yIDUwLjUtNTYuNyA4NC4yLTU3LjhsMCA0MC42ek0zOTMuNyA0MTNjLTcuNyAxMC03MCA2Ny0xNzQuNSA2N1MzNC43IDQwOC41IDEwLjIgMzc5Yy02LjgtNy43IDEtMTEuMyA1LjUtOC4zIDczLjMgNDQuNSAxODcuOCAxMTcuOCAzNzIuNSAzMC4zIDcuNS0zLjcgMTMuMyAyIDUuNSAxMnptMzkuOCAyLjJjLTYuNSAxNS44LTE2IDI2LjgtMjEuMiAzMS01LjUgNC41LTkuNSAyLjctNi41LTMuOHMxOS4zLTQ2LjUgMTIuNy01NWMtNi41LTguMy0zNy00LjMtNDgtMy4yLTEwLjggMS0xMyAyLTE0LS4zLTIuMy01LjcgMjEuNy0xNS41IDM3LjUtMTcuNSAxNS43LTEuOCA0MS0uOCA0NiA1LjcgMy43IDUuMSAwIDI3LjEtNi41IDQzLjF6Il19LHl6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbnZpcmEiLGljb246WzQ0OCw1MTIsW10sImYyOTkiLCJNMCAzMmM0NzcuNiAwIDM2Ni42IDMxNy4zIDM2Ny4xIDM2Ni4zbDgwLjkgODEuNy0yNiAwLTcwLjQtNzEuMkMzMTIuNiA0MTMgMjI3LjIgNDQzLjMgMTM3LjIgMzcxLjggNDcgMzAwLjMgNTIgMjE0LjcgMCAzMnpNNzkuNyA3OGMtNDkuNy0yMy41LTUuMiA5LjItNS4yIDkuMiA0NS4yIDMxLjIgNjYgNzMuNyA5MC4yIDExOS45IDMxLjUgNjAuMiA3OSAxMzkuNyAxNDQuMiAxNjcuNyA2NSAyOCAzNC4yIDEyLjUgNi04LjUtMjguMi0yMS4yLTY4LjItODctOTEtMTMwLjItMzEuNy02MC02MS0xMTguNi0xNDQuMi0xNTguMXoiXX0sd3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imxpbm9kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjJiOCIsIk0zNjYuMyAxODYuOWwtNTkuNSAzNi45LS44IDM2LjktMjkuMy0xOS4zLTM5LjQgMjQuM2MyLjIgNTUuMiAyLjUgNTkuMyAyLjUgNTkuNWwtOTcuMiA2NS40LTE1LjEtMTA0LjcgMTA4LjEtNjItNDAuMi0yNi03NS40IDM4LjUtMjEtMTQzLjMgMTI5LTQ5LjQtOTEuMy00My42LTEyNS43IDM5LjQgMjcuNyAxMzQuOSA0MS45IDMyLjctMzEuOCAxNS4xIDIwLjkgMTAxLjQgMjkuMyAyNy43LTIwLjkgMTIuNiAxNi44IDc4LjggNjYuMiA2OS42Yy0xMC44LTc0LjgtMTEuNy03OC42LTExLjctNzguOGw3Ny45LTU1LjNDMjQ0IDM2NS40IDI0Mi4zIDM2NyAyNDIuMyAzNjdsLjggMjQuMyAzMy41IDI4LjUtLjgtNzcuMSA0Ni45LTMzLjUgMjYuOC0xOC40LTIuNSAzNiAyNS4xIDE3LjYgNi43LTc0LjYgNTguNy00My42LTcxLjItMzkuNHoiXX0sTXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFjY3Vzb2Z0IixpY29uOls2NDAsNTEyLFtdLCJmMzY5IiwiTTMyMi4xIDI1MmwwLTEtNTEuMi02NS44cy0xMiAxLjYtMjUgMTUuMWMtOSA5LjMtMjQyLjEgMjM5LjEtMjQzLjQgMjQwLjktNyAxMCAxLjYgNi44IDE1LjcgMS43IC44IDAgMTE0LjUtMzYuNiAxMTQuNS0zNi42IC41LS42LS4xLS4xIC42LS42LS40LTUuMS0uOC0yNi4yLTEtMjcuNy0uNi01LjIgMi4yLTYuOSA3LTguOWw5Mi42LTMzLjhjLjYtLjggODguNS04MS43IDkwLjItODMuM3pNNDgyLjIgMzcyLjFjMTMuMyAxNi4xIDIwLjcgMTMuMyAzMC44IDkuMyAzLjItMS4yIDExNS40LTQ3LjYgMTE3LjgtNDguOSA4LTQuMy0xLjctMTYuNy03LjItMjMuNC0yLjEtMi41LTIwNS4xLTI0NS42LTIwNy4yLTI0OC4zLTkuNy0xMi4yLTE0LjMtMTIuOS0zOC40LTEyLjgtMTAuMiAwLTEwNi44IC41LTExNi41IC42LTE5LjIgLjEtMzIuOS0uMy0xOS4yIDE2LjkgNy43IDkuNSAyMzQuMiAyOTkuNyAyMzkuOSAzMDYuNnptMTUyLjcgMS42Yy0yLjMtLjMtMjQuNi00LjctMzgtNy4yIDAgMC0xMTUgNTAuNC0xMTcuNSA1MS42LTE2IDcuMy0yNi45LTMuMi0zNi43LTE0LjZsLTU3LjEtNzRjLTUuNC0uOS02MC40LTkuNi02NS4zLTkuMy0zLjEgLjItOS42IC44LTE0LjQgMi45LTQuOSAyLjEtMTQ1LjIgNTIuOC0xNTAuMiA1NC43LTUuMSAyLTExLjQgMy42LTExLjEgNy42IC4yIDIuNSAyIDIuNiA0LjYgMy41IDIuNyAuOCAzMDAuOSA2Ny42IDMwOCA2OS4xIDE1LjYgMy4zIDM4LjUgMTAuNSA1My42IDEuNyAyLjEtMS4yIDEyMy44LTc2LjQgMTI1LjgtNzcuOCA1LjQtNCA0LjMtNi44LTEuNy04LjJ6Il19LGt6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlcmxhbmciLGljb246WzY0MCw1MTIsW10sImYzOWQiLCJNODcuMiA1My41bC04Ny4yIDAgMCA0MDUgMTAwLjQgMGMtNDkuNy01Mi42LTc4LjgtMTI1LjMtNzguNy0yMTIuMS0uMS03Ni43IDI0LTE0Mi43IDY1LjUtMTkyLjl6bTIzOC4yIDkuN2MtNDUuOSAuMS04NS4xIDMzLjUtODkuMiA4My4ybDE2OS45IDBjLTEuMS00OS43LTM0LjUtODMuMS04MC43LTgzLjJ6bTIzMC43LTkuNmwuMyAwLS4xLS4xLS4yIC4xem0uMyAwYzMxLjQgNDIuNyA0OC43IDk3LjUgNDYuMiAxNjIuNyAuNSA2IC41IDExLjcgMCAyNC4xbC0zNzIuNCAwYy0uMiAxMDkuNyAzOC45IDE5NC45IDEzOC42IDE5NS4zIDY4LjUtLjMgMTE4LTUxIDE1MS45LTEwNi4xbDk2LjQgNDguMmMtMTcuNCAzMC45LTM2LjUgNTcuOC01Ny45IDgwLjhsODAuOCAwIDAtNDA1LTgzLjYgMHoiXX0sU3p0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuaXNvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTg1NCIsIk00MzUuMSAxNjEuN2ExMy45IDEzLjkgMCAxIDEgMTkuNi0xOS43IDEzLjkgMTMuOSAwIDEgMSAtMTkuNiAxOS43ek0zNjkuNyA5Ny44YzEwLjQgMi4xIDIwLjYgNS4yIDMwLjQgOS4yIDYuOCAyLjggMTAuMSAxMC44IDcuMyAxNy43LTIuOCA2LjctMTAuOSAxMC4xLTE3LjYgNy4zLTguMy0zLjQtMTYuOC01LjgtMjUuNy03LjgtOC42LTEuNy0xNy4zLTIuNS0yNi0yLjUtMTkuMyAwLTM3LjEtMTAuMy00Ni43LTI3LTguNy0xNS4xLTIwLjYtMjguOS0zNC43LTM5LjctNTkuMS00NS41LTE0My44LTM0LjMtMTg5LjIgMjUtMi42IDMuMy02LjUgNS4zLTEwLjcgNS4zLTcuNCAwLTEzLjUtNi4xLTEzLjUtMTMuNSAwLTMuMiAxLjItNi4zIDMuMi04LjggMTIuOS0xNi43IDI4LjktMzAuNyA0Ny4xLTQxLjIgNzcuNC00NC44IDE3Ni40LTE4LjIgMjIxLjEgNTkuNCA0LjMgOC4yIDEzLjcgMTMuMyAyMi44IDEzLjUgMTAuOCAwIDIxLjYgMSAzMi4yIDMuMXpNMzUgMjcwYzQuNi04LjIgNC42LTE4LjIgMC0yNi40LTIxLjktMzYuNS0yNy4zLTgyLjMtMTYuMy0xMjMuMiAxLjYtNS45IDYuOS0xMCAxMy0xMCA4LjcgMCAxNS4zIDguNyAxMyAxNy05LjUgMzUuNC0zLjQgNzEgMTMuNyAxMDIuOSA5LjMgMTYuNSA5LjMgMzYuNyAwIDUzLjEtOC43IDE1LjctMTQuOCAzMi40LTE3LjIgNTAuMy05LjcgNzMuOSA0Mi4zIDE0MS43IDExNi4yIDE1MS40IDcuMyAxIDEyLjYgNy45IDExLjYgMTUuMi0xIDcuMy03LjggMTIuNi0xNS4xIDExLjYtMjEuMS0yLjgtNDEuNC05LjctNTkuOC0yMC4zLTc1LjYtNDMuNi0xMDQuOS0xNDUuOC01OS4yLTIyMS41ek0yMTYuOSA1MDljLTcuNCAyLTE1LjEtMi40LTE3LjEtOS44czIuNS0xNSA5LjktMTYuOWM4LjUtMi4yIDE3LjQgNC41IDE3LjQgMTMuNCAwIDYuMi00LjIgMTEuNi0xMC4yIDEzLjN6bTEyMi4zLTkxYy05LjUgMC0xOC40IDUtMjMuMiAxMy4yLTQuOSA5LjQtMTEuNyAxOC4yLTE4LjcgMjYuMmwwIDBjLTcuMSA4LTE0LjggMTUuMi0yMy4yIDIxLjctNS45IDQuNS0xNC40IDMuNC0xOS0yLjVzLTMuNC0xNC40IDIuNS0xOC45YzctNS40IDEzLjUtMTEuNSAxOS40LTE4LjFsMCAwYzUuOS02LjYgMTEuMS0xMy44IDE1LjUtMjEuNiA5LjctMTYuNyAyNy41LTI3IDQ2LjgtMjcgMTcuOCAwIDM1LjQtMy41IDUxLjgtMTAuMyA2OC4zLTI4LjMgMTAxLjEtMTA4LjMgNzMuMi0xNzYuNS0uNi0xLjYtMS0zLjMtMS01IDAtNy40IDYuMS0xMy41IDEzLjUtMTMuNSA1LjQgMCAxMC4zIDMuMiAxMi40IDguMiA4LjIgMTkuNyAxMi40IDQwLjggMTIuNCA2Mi4xIDAgODkuNS03Mi43IDE2Mi4xLTE2Mi40IDE2Mi4xbDAgMHptLTEzLjEtMjY4YzMuOS0uNCA3LjktLjYgMTEuOS0uNiA1OS4zIDAgMTA4LjIgNDguNyAxMDguMiAxMDcuOFMzOTcuMyAzNjUgMzM4IDM2NWMtNCAwLTcuOS0uMi0xMS44LS42LTIyLjItMS43LTQzLjMgMTAuNC01Mi45IDMwLjQtMTcuMiAzOS4xLTU2LjIgNjQuNS05OS4xIDY0LjUtNTkuMyAwLTEwOC4yLTQ4LjctMTA4LjItMTA3LjggMC0yMy4yIDcuNS00NS43IDIxLjQtNjQuMyAxMi4yLTE4LjMgMTIuMS00Mi4zLS40LTYwLjUtMTMuNi0xOC41LTIwLjktNDAuOC0yMC45LTYzLjcgMC01OS4xIDQ4LjgtMTA3LjggMTA4LjItMTA3LjggNDIuOCAwIDgxLjggMjUuNCA5OSA2NC40IDkuNiAyMCAzMC43IDMyLjEgNTIuOSAzMC40ek0xMDYuOCAzOTMuNGMxNC40IDI1LjIgNDEuMSA0MC44IDY5LjggNDAuOCA0NC4yIDAgODAuNi0zNi44IDgwLjYtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNmMtMTQuMiAwLTI4LjEgMy44LTQwLjMgMTAuOS0zOC4zIDIyLjQtNTEuNiA3Mi43LTI5LjUgMTExLjR6TTI2OCAyOThjMTQuNCAyNS4yIDQxLjEgNDAuOCA2OS44IDQwLjggNDQuMiAwIDgwLjYtMzYuOCA4MC42LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjZjLTE0LjIgMC0yOC4xIDMuOC00MC4zIDEwLjktMzguMyAyMi40LTUxLjYgNzIuNy0yOS41IDExMS40em0tOTEuMi01NC42YzQ0LjIgMCA4MC41LTM2LjggODAuNS04MS42cy0zNi40LTgxLjYtODAuNi04MS42LTgwLjYgMzYuOC04MC42IDgxLjZjMCA0NC43IDM2LjQgODEuNiA4MC42IDgxLjZ6Il19LHp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1kaXNjb3ZlciIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMiIsIk01MjAuNCAxOTYuMWMwLTcuOS01LjUtMTIuMS0xNS42LTEyLjFsLTQuOSAwIDAgMjQuOSA0LjcgMGMxMC4zIDAgMTUuOC00LjQgMTUuOC0xMi44ek01MjggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNNDgzLjkgMTcwLjljMjIuNiAwIDUyLjktNC4xIDUyLjkgMjQuNCAwIDEyLjYtNi42IDIwLjctMTguNyAyMy4ybDI1LjggMzQuNC0xOS42IDAtMjIuMi0zMi44LTIuMiAwIDAgMzIuOC0xNiAwIDAtODJ6TTQyOCAxNzFsNDUuMyAwIDAgMTQtMjkuMyAwIDAgMTguMiAyOC4zIDAgMCAxMy44LTI4LjMgMCAwIDIyLjIgMjkuMyAwIDAgMTMuOC00NS4zIDAgMC04MnptLTY4LjcgMGwyMS45IDU1LjIgMjIuMi01NS4yIDE3LjUgMC0zNS41IDg0LjItOC42IDAtMzUtODQuMiAxNy41IDB6bS01NS45IDg2LjJhNDQuNiA0NC42IDAgMSAxIDAtODkuMiA0NC42IDQ0LjYgMCAxIDEgMCA4OS4yem0tNDkuMy04My4xbDAgMTljLTIwLjEtMjAuMS00Ni44LTQuNy00Ni44IDE5IDAgMjUgMjcuNSAzOC41IDQ2LjggMTkuMmwwIDE5Yy0yOS43IDE0LjMtNjMuMy01LjctNjMuMy0zOC4yIDAtMzEuMiAzMy4xLTUzIDYzLjMtMzh6bS05Ny4yIDY2LjNjMTEuNCAwIDIyLjQtMTUuMy0zLjMtMjQuNC0xNS01LjUtMjAuMi0xMS40LTIwLjItMjIuNyAwLTIzLjIgMzAuNi0zMS40IDQ5LjctMTQuM2wtOC40IDEwLjhjLTEwLjQtMTEuNi0yNC45LTYuMi0yNC45IDIuNSAwIDQuNCAyLjcgNi45IDEyLjMgMTAuMyAxOC4yIDYuNiAyMy42IDEyLjUgMjMuNiAyNS42IDAgMjkuNS0zOC44IDM3LjQtNTYuNiAxMS4zbDEwLjMtOS45YzMuNyA3LjEgOS45IDEwLjggMTcuNSAxMC44ek01NS40IDI1M2wtMjMuNCAwIDAtODIgMjMuNCAwYzI2LjEgMCA0NC4xIDE3IDQ0LjEgNDEuMSAwIDE4LjUtMTMuMiA0MC45LTQ0LjEgNDAuOXptNjcuNSAwbC0xNiAwIDAtODIgMTYgMCAwIDgyek01NDQgNDMzYzAgOC4yLTYuOCAxNS0xNSAxNWwtNDAxIDBjMTg5LjYtMzUuNiAzODIuNy0xMzkuMiA0MTYtMTYwbDAgMTQ1ek03NC4xIDE5MS42Yy01LjItNC45LTExLjYtNi42LTIxLjktNi42bC00LjIgMCAwIDU0LjIgNC4yIDBjMTAuMyAwIDE3LTIgMjEuOS02LjQgNS43LTUuMiA4LjktMTIuOCA4LjktMjAuN3MtMy4yLTE1LjUtOC45LTIwLjV6Il19LEN6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYWZhcmkiLGljb246WzUxMiw1MTIsW10sImYyNjciLCJNMjc0LjcgMjc0LjdMMjM3LjMgMjM3LjMgMTY2IDM0NiAyNzQuNyAyNzQuN3pNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MTEuOCAxODIuOGwxNC44LTYuMWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS44IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjYgLjYgMiAuNiAzLjEtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjMtMi42IDEuN0w0MTggMTk3LjZjLTIgLjgtNC4yIC44LTYuMSAwcy0zLjUtMi40LTQuMy00LjMtLjgtNC4yIDAtNi4xIDIuNC0zLjUgNC4zLTQuM3pNMzE0LjQgOTRsNi4xLTE0LjhjLjgtMiAyLjQtMy41IDQuMy00LjNzNC4yLS44IDYuMSAwIDMuNSAyLjQgNC4zIDQuMyAuOCA0LjIgMCA2LjFsLTYuMSAxNC44Yy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwYy0xLS40LTEuOS0xLTIuNi0xLjdzLTEuMy0xLjYtMS43LTIuNi0uNi0yLS42LTMuMSAuMi0yLjEgLjYtMy4xek0yNTYgNjBjMi4xIDAgNC4yIC44IDUuNyAyLjNTMjY0IDY1LjkgMjY0IDY4bDAgMTZjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN1MyNTMuOSA2MCAyNTYgNjB6TTE4MSA3NC45YzEtLjQgMi0uNiAzLjEtLjZzMi4xIC4yIDMuMSAuNiAxLjkgMSAyLjYgMS43IDEuMyAxLjYgMS43IDIuNkwxOTcuNiA5NGMuNCAxIC43IDIgLjcgMy4xcy0uMiAyLjEtLjYgMy4xLTEgMS45LTEuNyAyLjYtMS42IDEuNC0yLjYgMS44LTIgLjYtMy4xIC42LTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuOC0xLjMtMS43LTEuNy0yLjdsLTYuMS0xNC44Yy0uOC0yLS44LTQuMiAwLTYuMXMyLjQtMy41IDQuMy00LjN6bS02My42IDQyLjVjMS41LTEuNSAzLjUtMi4zIDUuNy0yLjNzNC4yIC44IDUuNyAyLjNMMTQwIDEyOC43YzEuNSAxLjUgMi4zIDMuNSAyLjMgNS42cy0uOCA0LjEtMi4zIDUuNmMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zbC0xMS4zLTExLjNjLTEuNS0xLjUtMi4zLTMuNS0yLjMtNS42cy44LTQuMSAyLjMtNS42bDAgMHpNNjAgMjU2YzAtMi4xIC44LTQuMiAyLjMtNS43UzY1LjkgMjQ4IDY4IDI0OGwxNiAwYzIuMSAwIDQuMiAuOCA1LjcgMi4zczIuMyAzLjUgMi4zIDUuNy0uOCA0LjItMi4zIDUuNy0zLjUgMi4zLTUuNyAyLjNsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zUzYwIDI1OC4xIDYwIDI1NnptNDAuMiA3My4ybC0xNC44IDYuMWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNi0uNi0yLS42LTMuMSAuMi0yLjEgLjYtMy4xIDEtMS45IDEuNy0yLjYgMS42LTEuMyAyLjYtMS43TDk0IDMxNC40YzItLjggNC4yLS44IDYuMSAwczMuNSAyLjQgNC4zIDQuMyAuOCA0LjIgMCA2LjEtMi40IDMuNS00LjMgNC4zem00LjMtMTM2Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42bC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjMgNC4yLS44IDYuMSAwbDE0LjggNi4xYzIgLjggMy41IDIuNCA0LjMgNC4zcy44IDQuMiAwIDYuMWwwIDB6TTE5Ny42IDQxOGwtNi4xIDE0LjhjLS40IDEtMSAxLjktMS43IDIuNnMtMS42IDEuMy0yLjYgMS43LTIgLjYtMy4xIC42LTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMWw2LjEtMTQuOGMuNC0xIDEtMS45IDEuNy0yLjdzMS42LTEuNCAyLjYtMS44IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuOCAxLjMgMS43IDEuNyAyLjYgLjYgMiAuNiAzLjEtLjIgMi4xLS43IDMuMXpNMjY0IDQ0NGMwIDIuMS0uOCA0LjItMi4zIDUuN3MtMy41IDIuMy01LjcgMi4zLTQuMi0uOC01LjctMi4zLTIuMy0zLjUtMi4zLTUuN2wwLTE2YzAtMi4xIC44LTQuMiAyLjMtNS43czMuNS0yLjMgNS43LTIuMyA0LjIgLjggNS43IDIuMyAyLjMgMy41IDIuMyA1LjdsMCAxNnptNjctNi45Yy0xIC40LTIgLjYtMy4xIC42cy0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42TDMxNC40IDQxOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjNsNi4xIDE0LjhjLjggMiAuOCA0LjIgMCA2LjFzLTIuNCAzLjUtNC4zIDQuM3ptNjMuNi00Mi41Yy0xLjUgMS41LTMuNSAyLjMtNS43IDIuM3MtNC4yLS44LTUuNy0yLjNMMzcyIDM4My4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNiAzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjNsMTEuMyAxMS4zYzEuNSAxLjUgMi4zIDMuNSAyLjMgNS42cy0uOCA0LjEtMi4zIDUuNmwwIDB6TTI4Ni4yIDI4Ni4yTDExMC4zIDQwMS43IDIyNS44IDIyNS44IDQwMS43IDExMC4zIDI4Ni4yIDI4Ni4yek00MzcuMSAzMzFjLS44IDItMi40IDMuNS00LjMgNC4zcy00LjIgLjgtNi4xIDBsLTE0LjgtNi4xYy0yLS44LTMuNS0yLjQtNC4zLTQuM3MtLjgtNC4yIDAtNi4xYy40LTEgMS0xLjkgMS43LTIuNnMxLjYtMS4zIDIuNi0xLjcgMi0uNiAzLjEtLjYgMi4xIC4yIDMuMSAuNmwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjF6bTYuOS02N2wtMTYgMGMtMi4xIDAtNC4yLS44LTUuNy0yLjNzLTIuMy0zLjUtMi4zLTUuNyAuOC00LjIgMi4zLTUuNyAzLjUtMi4zIDUuNy0yLjNsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zeiJdfSxfenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BhY2UtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYyIsIk05NiAyNTZsMzIgMCAwIDI1Ni0xMjggMCAwLTE2MCAzMiAwIDAtMzIgMzIgMCAwLTMyIDMyIDAgMC0zMnptNDE2IDk2bDAgMTYwLTEyOCAwIDAtMjU2IDMyIDAgMCAzMiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDB6TTMyMCA2NGwzMiAwIDAgMzg0LTMyIDAgMC0zMi0xMjggMCAwIDMyLTMyIDAgMC0zODQgMzIgMCAwLTMyIDMyIDAgMC0zMiA2NCAwIDAgMzIgMzIgMCAwIDMyem0tMzIgNjRsLTY0IDAgMCA2NCA2NCAwIDAtNjR6Il19LFR6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub2RlIixpY29uOls2NDAsNTEyLFtdLCJmNDE5IiwiTTMxNi4zIDQ1MmMtMi4xIDAtNC4yLS42LTYuMS0xLjZMMjkxIDQzOWMtMi45LTEuNi0xLjUtMi4yLS41LTIuNSAzLjgtMS4zIDQuNi0xLjYgOC43LTQgLjQtLjIgMS0uMSAxLjQgLjFsMTQuOCA4LjhjLjUgLjMgMS4zIC4zIDEuOCAwTDM3NSA0MDhjLjUtLjMgLjktLjkgLjktMS42bDAtNjYuN2MwLS43LS4zLTEuMy0uOS0xLjZsLTU3LjgtMzMuM2MtLjUtLjMtMS4yLS4zLTEuOCAwbC01Ny44IDMzLjNjLS42IC4zLS45IDEtLjkgMS42bDAgNjYuN2MwIC42IC40IDEuMiAuOSAxLjVsMTUuOCA5LjFjOC42IDQuMyAxMy45LS44IDEzLjktNS44bDAtNjUuOWMwLS45IC43LTEuNyAxLjctMS43bDcuMyAwYy45IDAgMS43IC43IDEuNyAxLjdsMCA2NS45YzAgMTEuNS02LjIgMTgtMTcuMSAxOC0zLjMgMC02IDAtMTMuMy0zLjZsLTE1LjItOC43Yy0zLjctMi4yLTYuMS02LjItNi4xLTEwLjVsMC02Ni43YzAtNC4zIDIuMy04LjQgNi4xLTEwLjVsNTcuOC0zMy40YzMuNy0yLjEgOC41LTIuMSAxMi4xIDBsNTcuOCAzMy40YzMuNyAyLjIgNi4xIDYuMiA2LjEgMTAuNWwwIDY2LjdjMCA0LjMtMi4zIDguNC02LjEgMTAuNWwtNTcuOCAzMy40Yy0xLjcgMS4xLTMuOCAxLjctNiAxLjd6TTM2MyAzODYuMmMwLTEyLjUtOC40LTE1LjgtMjYuMi0xOC4yLTE4LTIuNC0xOS44LTMuNi0xOS44LTcuOCAwLTMuNSAxLjUtOC4xIDE0LjgtOC4xIDExLjkgMCAxNi4zIDIuNiAxOC4xIDEwLjYgLjIgLjggLjggMS4zIDEuNiAxLjNsNy41IDBjLjUgMCAuOS0uMiAxLjItLjUgLjMtLjQgLjUtLjggLjQtMS4zLTEuMi0xMy44LTEwLjMtMjAuMi0yOC44LTIwLjItMTYuNSAwLTI2LjMgNy0yNi4zIDE4LjYgMCAxMi43IDkuOCAxNi4xIDI1LjYgMTcuNyAxOC45IDEuOSAyMC40IDQuNiAyMC40IDguMyAwIDYuNS01LjIgOS4yLTE3LjQgOS4yLTE1LjMgMC0xOC43LTMuOC0xOS44LTExLjQtLjEtLjgtLjgtMS40LTEuNy0xLjRsLTcuNSAwYy0uOSAwLTEuNyAuNy0xLjcgMS43IDAgOS43IDUuMyAyMS4zIDMwLjYgMjEuMyAxOC41IDAgMjktNy4yIDI5LTE5Ljh6bTU0LjUtNTAuMWMwIDYuMS01IDExLjEtMTEuMSAxMS4xcy0xMS4xLTUtMTEuMS0xMS4xYzAtNi4zIDUuMi0xMS4xIDExLjEtMTEuMSA2LS4xIDExLjEgNC44IDExLjEgMTEuMXptLTEuOCAwYzAtNS4yLTQuMi05LjMtOS40LTkuMy01LjEgMC05LjMgNC4xLTkuMyA5LjNzNC4yIDkuNCA5LjMgOS40YzUuMi0uMSA5LjQtNC4zIDkuNC05LjR6bS00LjUgNi4ybC0yLjYgMGMtLjEtLjYtLjUtMy44LS41LTMuOS0uMi0uNy0uNC0xLjEtMS4zLTEuMWwtMi4yIDAgMCA1LTIuNCAwIDAtMTIuNSA0LjMgMGMxLjUgMCA0LjQgMCA0LjQgMy4zIDAgMi4zLTEuNSAyLjgtMi40IDMuMSAxLjcgLjEgMS44IDEuMiAyLjEgMi44IC4xIDEgLjMgMi43IC42IDMuM3ptLTIuOC04LjhjMC0xLjctMS4yLTEuNy0xLjgtMS43bC0yIDAgMCAzLjUgMS45IDBjMS42IDAgMS45LTEuMSAxLjktMS44ek0xMzcuMyAxOTFjMC0yLjctMS40LTUuMS0zLjctNi40TDcyLjMgMTQ5LjNjLTEtLjYtMi4yLS45LTMuNC0xbC0uNiAwYy0xLjIgMC0yLjMgLjQtMy40IDFMMy43IDE4NC42QzEuNCAxODUuOSAwIDE4OC40IDAgMTkxbC4xIDk1YzAgMS4zIC43IDIuNSAxLjggMy4yczIuNSAuNyAzLjcgMEw0MiAyNjguM2MyLjMtMS40IDMuNy0zLjggMy43LTYuNGwwLTQ0LjRjMC0yLjYgMS40LTUuMSAzLjctNi40bDE1LjUtOC45YzEuMi0uNyAyLjQtMSAzLjctMXMyLjYgLjMgMy43IDFsMTUuNSA4LjljMi4zIDEuMyAzLjcgMy44IDMuNyA2LjRsMCA0NC40YzAgMi42IDEuNCA1LjEgMy43IDYuNGwzNi40IDIwLjljMS4xIC43IDIuNiAuNyAzLjcgMCAxLjEtLjYgMS44LTEuOSAxLjgtMy4ybC4yLTk1ek00NzIuNSA4Ny4zbDAgMTc2LjRjMCAyLjYtMS40IDUuMS0zLjcgNi40bC02MS4zIDM1LjRjLTIuMyAxLjMtNS4xIDEuMy03LjQgMGwtNjEuMy0zNS40Yy0yLjMtMS4zLTMuNy0zLjgtMy43LTYuNGwwLTcwLjhjMC0yLjYgMS40LTUuMSAzLjctNi40bDYxLjMtMzUuNGMyLjMtMS4zIDUuMS0xLjMgNy40IDBsMTUuMyA4LjhjMS43IDEgMy45LS4zIDMuOS0yLjJsMC05NGMwLTIuOCAzLTQuNiA1LjUtMy4ybDM2LjUgMjAuNGMyLjMgMS4yIDMuOCAzLjcgMy44IDYuNHptLTQ2IDEyOC45YzAtLjctLjQtMS4zLS45LTEuNmwtMjEtMTIuMmMtLjYtLjMtMS4zLS4zLTEuOSAwbC0yMSAxMi4yYy0uNiAuMy0uOSAuOS0uOSAxLjZsMCAyNC4zYzAgLjcgLjQgMS4zIC45IDEuNmwyMSAxMi4xYy42IC4zIDEuMyAuMyAxLjggMGwyMS0xMi4xYy42LS4zIC45LS45IC45LTEuNmwwLTI0LjMgLjEgMHptMjA5LjgtLjdjMi4zLTEuMyAzLjctMy44IDMuNy02LjRsMC0xNy4xYzAtMi42LTEuNC01LjEtMy43LTYuNGwtNjAuOS0zNS40Yy0yLjMtMS4zLTUuMS0xLjMtNy40IDBsLTYxLjMgMzUuNGMtMi4zIDEuMy0zLjcgMy44LTMuNyA2LjRsMCA3MC44YzAgMi43IDEuNCA1LjEgMy43IDYuNGw2MC45IDM0LjdjMi4yIDEuMyA1IDEuMyA3LjMgMGwzNi44LTIwLjVjMi41LTEuNCAyLjUtNSAwLTYuNEw1NTAgMjQxLjZjLTEuMi0uNy0xLjktMS45LTEuOS0zLjJsMC0yMi4yYzAtMS4zIC43LTIuNSAxLjktMy4ybDE5LjItMTEuMWMxLjEtLjcgMi42LS43IDMuNyAwTDU5Mi4xIDIxM2MxLjEgLjcgMS45IDEuOSAxLjkgMy4ybDAgMTcuNGMwIDIuOCAzLjEgNC42IDUuNiAzLjJsMzYuNy0yMS4zek01NTkgMjE5Yy0uNCAuMy0uNyAuNy0uNyAxLjJsMCAxMy42YzAgLjUgLjMgMSAuNyAxLjJsMTEuOCA2LjhjLjQgLjMgMSAuMyAxLjQgMEw1ODQgMjM1Yy40LS4zIC43LS43IC43LTEuMmwwLTEzLjZjMC0uNS0uMy0xLS43LTEuMmwtMTEuOC02LjhjLS40LS4zLTEtLjMtMS40IDBMNTU5IDIxOXpNMzA0LjggMjYyLjVsMC03MC40YzAtMi42LTEuNi01LjEtMy45LTYuNGwtNjEuMS0zNS4yYy0yLjEtMS4yLTUtMS40LTcuNCAwbC02MS4xIDM1LjJjLTIuMyAxLjMtMy45IDMuNy0zLjkgNi40bDAgNzAuNGMwIDIuOCAxLjkgNS4yIDQgNi40bDYxLjIgMzUuMmMyLjQgMS40IDUuMiAxLjMgNy40IDBsNjEtMzUuMmMxLjgtMSAzLjEtMi43IDMuNi00LjcgLjEtLjUgLjItMS4xIC4yLTEuN3pNMjMwLjUgMTM3LjZsLS44IC41IDEuMSAwLS4zLS41em03Ni4yIDEzMC4ybC0uNC0uNyAwIC45IC40LS4yeiJdfSxMenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29kZXBlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjFjYiIsIk01MDIuMyAxNTkuN2wtMjM0LTE1NmMtOC00LjktMTYuNS01LTI0LjYgMGwtMjM0IDE1NmMtNiA0LTkuNyAxMS4xLTkuNyAxOC4zTDAgMzM0YzAgNy4xIDMuNyAxNC4zIDkuNyAxOC4zbDIzNCAxNTZjOCA0LjkgMTYuNSA1IDI0LjYgMGwyMzQtMTU2YzYtNCA5LjctMTEuMSA5LjctMTguM2wwLTE1NmMwLTcuMS0zLjctMTQuMy05LjctMTguM3pNMjc4IDYzLjFsMTcyLjMgMTE0LjktNzYuOSA1MS40LTk1LjQtNjMuNyAwLTEwMi42em0tNDQgMEwyMzQgMTY1LjcgMTM4LjYgMjI5LjQgNjEuNyAxNzggMjM0IDYzLjF6TTQ0IDIxOS4xTDk5LjEgMjU2IDQ0IDI5Mi44IDQ0IDIxOS4xek0yMzQgNDQ4LjhMNjEuNyAzMzQgMTM4LjYgMjgyLjYgMjM0IDM0Ni4zIDIzNCA0NDguOHpNMjU2IDMwOGwtNzcuNy01MiA3Ny43LTUyIDc3LjcgNTItNzcuNyA1MnptMjIgMTQwLjlsMC0xMDIuNiA5NS40LTYzLjcgNzYuOSA1MS40LTE3Mi4zIDExNC45em0xOTAtMTU2bC01NS4xLTM2LjkgNTUuMS0zNi45IDAgNzMuN3oiXX0sJHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJhdmVscnkiLGljb246WzUxMiw1MTIsW10sImYyZDkiLCJNNDk4LjYgMjM0LjJjLTEuMi0xMC4zLTEuNy0yMC44LTMuNy0zMS0yLjUtMTIuNC01LjctMjQuNi05LjYtMzYuNi02LjgtMjAuOS0xNy4yLTQwLjMtMzAuOS01Ny41LTUuOS03LjYtMTIuMS0xNC44LTE4LjgtMjEuNy0xNC4xLTE0LTMwLTI2LjEtNDcuMS0zNi4xLTE3LjgtMTAuNi0zNi44LTE4LjktNTYuNy0yNC43LTExLTMuMS0yMi4zLTUuNC0zMy41LTcuNi02LjgtMS4zLTEzLjctMS43LTIwLjYtMi41LS4zIDAtLjYtLjQtLjktLjYtMTAuOCAwLTIxLjUgMC0zMi4zIDAtMi40IC40LTQuOCAuOS03LjIgMS4yLTExLjYgMS4yLTIzLjEgMy42LTM0LjMgNy4xLTEzLjggNC4xLTI3LjEgOS42LTM5LjggMTYuNC0xMy4zIDctMjYuMSAxNS4xLTM4LjEgMjQuMi02LjIgNC42LTEyLjMgOS40LTE4IDE0LjUtMTAuMiA5LjItMjAuNCAxOC40LTI5LjkgMjguMy0xMi44IDEzLjMtMjQuMSAyOC4xLTMzLjYgNDQtOC42IDE0LTE1LjUgMjktMjAuNSA0NC42LTcuMiAyMi43LTEwLjMgNDYuNi05LjIgNzAuMyAuNiAxMy41IDIgMjYuOSA0LjQgNDAuMiAzLjQgMTguNCA5IDM2LjMgMTYuNyA1My4zIDEzLjYgMjkuMiAzMi4xIDUxLjUgNTAuNCA2Ny45IDEyLjggMTEuNiAyNi44IDIxLjkgNDEuOCAzMC42IDE3LjcgMTAuNCAzNi40IDE4LjkgNTUuOSAyNS4zIDEzLjMgNC4zIDI2LjkgNy42IDQwLjYgOS44IDYuMSAxIDEyLjMgMS4zIDE4LjQgMS45IC40IC4xIC44IC4zIDEuMiAuNmwzMi4zIDBjMi41LS40IDUtLjkgNy41LTEuMSAxNi4zLTEuMyAzMi4xLTUuMyA0Ny41LTEwLjcgMTcuMi01LjkgMzMuNy0xMy45IDQ5LTIzLjggOS43LTYuNCAxOS40LTEzLjEgMjguNy0yMC4xIDUuOC00LjMgMTEtOS41IDE2LjMtMTQuNSA0LTMuNyA3LjgtNy42IDExLjUtMTEuNSAxMi0xMi43IDIyLjYtMjYuNiAzMS40LTQxLjYgOS41LTE2IDE3LjQtMzIuOSAyMi4zLTUwLjkgMi45LTEwLjQgNC45LTIxIDctMzEuNyAxLTUuMyAxLjMtMTAuNyAxLjktMTYuMSAwLS4zIC40LS42IC42LS45bDAtMzcuMWMtLjItLjYtLjQtMS4yLS42LTEuOHptLTE2MS4xLTEuMnMtMTYuNi0zLTI4LjUtM2MtMjcuMiAwLTMzLjYgMTQuOS0zMy42IDM3bDAgOTMuNy03My41IDAgMC0xOTAuNyA3My41IDAgMCAzMS45YzguOS0yNi44IDI2LjgtMzYuMiA2Mi0zNi4ybDAgNjcuM3oiXX0sRHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFsaXBheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjY0MiIsIk0zNzcuNyAzMkw3MC4zIDMyQzMxLjQgMzIgMCA2My40IDAgMTAyLjNMMCA0MDkuN0MwIDQ0OC42IDMxLjQgNDgwIDcwLjMgNDgwbDMwNy41IDBjMzguNSAwIDY5LjgtMzEuMSA3MC4zLTY5LjYtNDYtMjUuNi0xMTAuNi02MC4zLTE3MS42LTg4LjQtMzIuMSA0NC04NC4xIDgxLTE0OC42IDgxLTcwLjYgMC05My43LTQ1LjMtOTctNzYuNC00LTM5IDE0LjktODEuNSA5OS41LTgxLjUgMzUuNCAwIDc5LjQgMTAuMiAxMjcuMSAyNSAxNi41LTMwLjEgMjYuNS02MC4zIDI2LjUtNjAuM2wtMTc4LjIgMCAwLTE2LjcgOTIuMSAwIDAtMzEuMi0xMDkuNCAwIDAtMTkgMTA5LjQgMCAwLTUwLjQgNTAuOSAwIDAgNTAuNCAxMDkuNCAwIDAgMTktMTA5LjQgMCAwIDMxLjIgODguOCAwcy0xNS4yIDQ2LjYtMzguMyA5MC45YzQ4LjkgMTYuNyAxMDAgMzYgMTQ4LjYgNTIuN2wwLTIzNC40Yy4yLTM4LjctMzEuMi03MC4zLTY5LjktNzAuM3pNNDcuMyAzMjNjMSAyMC4yIDEwLjIgNTMuNyA2OS45IDUzLjcgNTIuMSAwIDkyLjYtMzkuNyAxMTcuOS03Mi45LTQ0LjYtMTguNy04NC41LTMxLjQtMTA5LjQtMzEuNC02Ny40IDAtNzkuNCAzMy4xLTc4LjQgNTAuNnoiXX0sQXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFtZXgiLGljb246WzU3Niw1MTIsW10sImYxZjMiLCJNMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xLjEtNjEuNyAwLTMxLjktMzUuMS0zMS45IDM1LjEtMjAzLjcgMCAwLTE2My44LTY1LjggMCA4MS43LTE4NC43IDc4LjYgMCAyOC4xIDYzLjIgMC02My4yIDk3LjIgMCAxNi45IDQ3LjYgMTctNDcuNiA3NS41IDAgMC0yLjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMnptNDQwLjQtMjEuN2w0Mi4yLTQ2LjMgNDIgNDYuMyA1MS40IDAtNjgtNzIuMSA2OC03Mi4xLTUwLjYgMC00MiA0Ni43LTQxLjUtNDYuNy01MS40IDAgNjcuNSA3Mi41LTY3LjQgNzEuNiAwLTMzLjEtODMgMCAwLTIyLjIgODAuOSAwIDAtMzIuMy04MC45IDAgMC0yMi40IDgzIDAgMC0zMy4xLTEyMiAwIDAgMTQzLjIgMTcxLjggMHptOTYuMy03MmwzOS4zIDQxLjkgMC04My4zLTM5LjMgNDEuNHptLTM2LjMtOTJsMzYuOS0xMDAuNiAwIDEwMC42IDM4LjcgMCAwLTE0My4zLTYwLjIgMC0zMi4yIDg5LjMtMzEuOS04OS4zLTYxLjIgMCAwIDE0My4xLTYzLjItMTQzLjEtNTEuMiAwLTYyLjQgMTQzLjMgNDMgMCAxMS45LTI4LjcgNjUuOSAwIDEyIDI4LjcgODIuNyAwIDAtMTAwLjMgMzYuOCAxMDAuMyAzNC40IDB6TTI4MiAxODUuNGwxOS41LTQ2LjkgMTkuNCA0Ni45LTM4LjkgMHoiXX0sUHp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItYWx0IixpY29uOls1NzYsNTEyLFtdLCJmMWE4IiwiTTI0NCAyNDZjLTMuMi0yLTYuMy0yLjktMTAuMS0yLjktNi42IDAtMTIuNiAzLjItMTkuMyAzLjdsMS43IDQuOSAyNy43LTUuN3pNMzc5LjkgNDQzLjljLTE5IDAtNjQuMSA5LjUtNzkuOSAxOS44bDYuOSA0NS4xYzM1LjcgNi4xIDcwLjEgMy42IDEwNi05LjgtNC44LTEwLTIzLjUtNTUuMS0zMy01NS4xek0zNDAuOCAxNzdjNi42IDIuOCAxMS41IDkuMiAyMi43IDIyLjEgMi0xLjQgNy41LTUuMiA3LjUtOC42IDAtNC45LTExLjgtMTMuMi0xMy4yLTIzIDExLjItNS43IDI1LjItNiAzNy42LTguOSA2OC4xLTE2LjQgMTE2LjMtNTIuOSAxNDYuOC0xMTYuNyA2LjEtMTIuNiAxMS44LTI1LjggMTIuNC0zOS45bC0yIDIuNmMtMjguNCA1MC0zMyA2My4yLTgxLjMgMTAwLTMxLjkgMjQuNC02OS4yIDQwLjItMTA2LjYgNTQuNmwtNi4zLS4zIDAtMjEuOGMtMTkuNiAxLjYtMTkuNy0xNC42LTMxLjYtMjMtMTguNyAyMC42LTMxLjYgNDAuOC01OC45IDUxLjEtMTIuNyA0LjgtMTkuNiAxMC0yNS45IDIxLjggMzQuOS0xNi40IDkxLjItMTMuNSA5OC44LTEwek01NTUuNSAwbC0uNiAxLjEtLjMgLjkgLjYtLjYgLjMtMS40ek00OTYuMyAzODIuMWMtMzMuOS01Ni45LTc1LjMtMTE4LjQtMTUwLTExNS41bC0uMy02Yy0xLjEtMTMuNSAzMi44IDMuMiAzNS4xLTMxbC0xNC40IDcuMmMtMTkuOC00NS43LTguNi01NC4zLTY1LjUtNTQuMy0xNC43IDAtMjYuNyAxLjctNDEuNCA0LjYgMi45IDE4LjYgMi4yIDM2LjctMTAuOSA1MC4zbDE5LjUgNS41Yy0xLjcgMy4yLTIuOSA2LjMtMi45IDkuOCAwIDIxIDQyLjggMi45IDQyLjggMzMuNiAwIDE4LjQtMzYuOCA2MC4xLTU0LjkgNjAuMS04IDAtNTMuNy01MC01My40LTYwLjFsLjMtNC42IDUyLjMtMTEuNWMxMy0yLjYgMTIuMy0yMi43LTIuOS0yMi43LTMuNyAwLTQzLjEgOS4yLTQ5LjQgMTAuNi0yLTUuMi03LjUtMTQuMS0xMy44LTE0LjEtMy4yIDAtNi4zIDMuMi05LjUgNC05LjIgMi42LTMxIDIuOS0yMS41IDIwLjFMMTUuOSAyOTguNWMtNS41IDEuMS04LjkgNi4zLTguOSAxMS44IDAgNiA1LjUgMTAuOSAxMS41IDEwLjkgOCAwIDEzMS4zLTI4LjQgMTQ3LjQtMzIuMiAyLjYgMy4yIDQuNiA2LjMgNy44IDguNiAyMC4xIDE0LjQgNTkuOCA4NS45IDc2LjQgODUuOSAyNC4xIDAgNTgtMjIuNCA3MS4zLTQxLjkgMy4yLTQuMyA2LjktNy41IDEyLjQtNi45IC42IDEzLjgtMzEuNiAzNC4yLTMzIDQzLjctMS40IDEwLjItMSAzNS4yLS4zIDQxLjEgMjYuNyA4LjEgNTItMy42IDc3LjktMi45IDQuMy0yMSAxMC42LTQxLjkgOS44LTYzLjVsLS4zLTkuNWMtMS40LTM0LjItMTAuOS0zOC41LTM0LjgtNTguNi0xLjEtMS4xLTIuNi0yLjYtMy43LTQgMi4yLTEuNCAxLjEtMSA0LjYtMS43IDg4LjUgMCA1Ni4zIDE4My42IDExMS41IDIyOS45IDMzLjEtMTUgNzIuNS0yNy45IDEwMy41LTQ3LjItMjktMjUuNi01Mi42LTQ1LjctNzIuNy03OS45ek0zMDAuMSA0MjguMmwwIDI3LjIgMTEuOC0zLjQtMi45LTIzLjgtOC45IDB6TTIzMS40IDI3Ny44bDI0LjEgNjEuMiAyMS0xMy44LTMxLjMtNTAuOS0xMy44IDMuNXptODQuNCAxNTQuOWwyIDEyLjRjOS0xLjUgNTguNC02LjYgNTguNC0xNC4xIDAtMS40LS42LTMuMi0uOS00LjYtMjYuOCAwLTM2LjkgMy44LTU5LjUgNi4zeiJdfSxFenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGV0dGVyYm94ZCIsaWNvbjpbNjQwLDUxMixbXSwiZTYyZCIsIk01MjEuMyAxMjhDNTg2LjkgMTI4IDY0MCAxODEuMSA2NDAgMjQ2LjZTNTg2LjkgMzY1LjIgNTIxLjMgMzY1LjJjLTQyLjUgMC03OS43LTIyLjMtMTAwLjctNTUuOCAxMS40LTE4LjIgMTgtMzkuNyAxOC02Mi44cy02LjYtNDQuNi0xOC02Mi44bC44LTEuMmMyMC44LTMyLjMgNTYuOC01My45IDk3LjktNTQuNmwyIDB6TTMyMCAxMjhjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwem0tMjAxLjMgMGM0Mi41IDAgNzkuNyAyMi4zIDEwMC43IDU1LjgtMTEuNCAxOC4yLTE4IDM5LjctMTggNjIuOHM2LjYgNDQuNiAxOCA2Mi44bC0uOCAxLjJjLTIwLjggMzIuMy01Ni44IDUzLjktOTcuOSA1NC42bC0yIDBDNTMuMSAzNjUuMSAwIDMxMi4xIDAgMjQ2LjZTNTMuMSAxMjggMTE4LjcgMTI4eiJdfSxJenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlcmEiLGljb246WzUxMiw1MTIsW10sImYyNmEiLCJNMzIxLjkgMzIuN2MtMTcwLjIgMC0yNTIuNiAyMjMuOC0xNDcuNSAzNTUuMSAzNi41IDQ1LjQgODguNiA3NS42IDE0Ny41IDc1LjYgMzYuMyAwIDcwLjMtMTEuMSA5OS40LTMwLjQtNDMuOCAzOS4yLTEwMS45IDYzLTE2NS4zIDYzLTMuOSAwLTggMC0xMS45LS4zLTEzMS41LTYuMS0yMzYuMS0xMTQuNi0yMzYuMS0yNDcuNyAwLTEzNyAxMTEtMjQ4IDI0OC0yNDhsLjggMGM2My4xIC4zIDEyMC43IDI0LjEgMTY0LjQgNjMuMS0yOS0xOS40LTYzLjEtMzAuNC05OS4zLTMwLjR6TTQyMy43IDQzMC40Yy00MC45IDI0LjctOTAuNyAyMy42LTEzMi01LjggNTYuMi0yMC41IDk3LjctOTEuNiA5Ny43LTE3Ni42IDAtODQuNy00MS4yLTE1NS44LTk3LjQtMTc2LjYgNDEuOC0yOS4yIDkxLjItMzAuMyAxMzIuOS01IDEwNS45IDk4LjcgMTA1LjUgMjY1LjctMS4yIDM2NHoiXX0sTnp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlaWJvIixpY29uOls1MTIsNTEyLFtdLCJmMThhIiwiTTQwNyAxNzcuNmM3LjYtMjQtMTMuNC00Ni44LTM3LjQtNDEuNy0yMiA0LjgtMjguOC0yOC4xLTcuMS0zMi44IDUwLjEtMTAuOSA5Mi4zIDM3LjEgNzYuNSA4NC44LTYuOCAyMS4yLTM4LjggMTAuOC0zMi0xMC4zek0yMTQuOCA0NDYuN2MtMTA2LjMgMC0yMTQuOC01MS40LTIxNC44LTEzNi4zIDAtNDQuMyAyOC05NS40IDc2LjMtMTQzLjcgOTkuNy05OS43IDIwMy4yLTEwMC45IDE3My42LTUuNy00IDEzLjEgMTIuMyA1LjcgMTIuMyA2IDc5LjUtMzMuNiAxNDAuNS0xNi44IDExNCA1MS40LTMuNyA5LjQgMS4xIDEwLjkgOC4zIDEzLjEgMTM1LjcgNDIuMyAzNC44IDIxNS4yLTE2OS43IDIxNS4yek0zNTguNSAzMDAuNGMtNS40LTU1LjctNzguNS05NC0xNjMuNC04NS43LTg0LjggOC42LTE0OC44IDYwLjMtMTQzLjQgMTE2czc4LjUgOTQgMTYzLjQgODUuN2M4NC44LTguNiAxNDguOC02MC4zIDE0My40LTExNnpNMzQ3LjkgMzUuMWMtMjUuOSA1LjYtMTYuOCA0My43IDguMyAzOC4zIDcyLjMtMTUuMiAxMzQuOCA1Mi44IDExMS43IDEyNC03LjQgMjQuMiAyOS4xIDM3IDM3LjQgMTIgMzEuOS05OS44LTU1LjEtMTk1LjktMTU3LjQtMTc0LjN6bS03OC41IDMxMWMtMTcuMSAzOC44LTY2LjggNjAtMTA5LjEgNDYuMy00MC44LTEzLjEtNTgtNTMuNC00MC4zLTg5LjcgMTcuNy0zNS40IDYzLjEtNTUuNCAxMDMuNC00NS4xIDQyIDEwLjggNjMuMSA1MC4yIDQ2IDg4LjV6bS04Ni4zLTMwYy0xMi45LTUuNC0zMCAuMy0zOCAxMi45LTguMyAxMi45LTQuMyAyOCA4LjYgMzQgMTMuMSA2IDMwLjggLjMgMzkuMS0xMi45IDgtMTMuMSAzLjctMjguMy05LjctMzR6bTMyLjYtMTMuNGMtNS4xLTEuNy0xMS40IC42LTE0LjMgNS40LTIuOSA1LjEtMS40IDEwLjYgMy43IDEyLjkgNS4xIDIgMTEuNy0uMyAxNC42LTUuNCAyLjgtNS4yIDEuMS0xMC45LTQtMTIuOXoiXX0sUnp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYWRtZSIsaWNvbjpbNTc2LDUxMixbXSwiZjRkNSIsIk01MjguMyA0Ni41bC0xMzkuOCAwYy00OC4xIDAtODkuOSAzMy4zLTEwMC40IDgwLjMtMTAuNi00Ny01Mi4zLTgwLjMtMTAwLjQtODAuM0w0OCA0Ni41QzIxLjUgNDYuNSAwIDY4IDAgOTQuNUwwIDM0MC4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDg5LjcgMGMxMDIuMiAwIDEzMi43IDI0LjQgMTQ3LjMgNzUgLjcgMi44IDUuMiAyLjggNiAwIDE0LjctNTAuNiA0NS4yLTc1IDE0Ny4zLTc1bDg5LjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI0NS43YzAtMjYuNC0yMS4zLTQ3LjktNDcuNy00OC4xek0yNDIgMzExLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwek01MDEuMyAzMTEuOGMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOGMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi44LS4xIDB6Il19LE96dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb2xhbmciLGljb246WzY0MCw1MTIsW10sImU0MGYiLCJNNDAwLjEgMTk0LjhjLTEwLjkgMi44LTE5LjkgNC4zLTI5LjEgNy42LTcuMyAxLjktMTQuNyAzLjktMjMuMiA2LjFsLS42IC4xYy00LjIgMS4yLTQuNiAxLjMtOC41LTMuMi00LjctNS4zLTguMS04LjctMTQuNi0xMS45LTE5LjctOS42LTM4LjctNi44LTU2LjQgNC43LTIxLjIgMTMuNy0zMi4xIDM0LTMxLjggNTkuMiAuMyAyNSAxNy40IDQ1LjUgNDEuMiA0OC45IDIyIDIuOCAzOS44LTQuNiA1My44LTIwLjUgMi4xLTIuNiA0LTUuMyA2LjEtOC4zIC44LTEgMS41LTIuMSAyLjMtMy4zbC02MC4xIDBjLTYuNSAwLTguMS00LTUuOS05LjMgNC05LjcgMTEuNS0yNS45IDE1LjktMzQgLjktMS44IDMuMS01LjggNi45LTUuOGwxMDEuMSAwYzQuNS0xMy40IDExLjgtMjYuOSAyMS42LTM5LjcgMjIuNy0yOS45IDQ5LjMtNDUuNSA4Ny4yLTUyIDMxLjgtNS42IDYxLjctMi41IDg4LjkgMTUuOSAyNC42IDE2LjggMzkuOCAzOS42IDQzLjkgNjkuNSA1LjMgNDIuMS02LjkgNzYuMy0zNi43IDEwNS42LTE5LjcgMjAuOS00NC45IDM0LTczLjkgMzkuOS01LjYgMS0xMS4xIDEuNS0xNi41IDItMi45IC4yLTUuNyAuNS04LjUgLjgtMjguMy0uNi01NC4yLTguNy03Ni0yNy40LTE1LjMtMTMuMy0yNS45LTI5LjYtMzEuMS00OC41LTMuNyA3LjMtOCAxNC40LTE0IDIxLjEtMjEuNiAyOS42LTUwLjkgNDgtODcuOSA1Mi45LTMwLjYgNC4xLTU4LjktMS44LTgzLjktMjAuNS0yMy0xNy41LTM2LjEtNDAuNS0zOS41LTY5LjItNC4xLTM0IDUuOS02NS40IDI2LjQtOTEuMyAyMi4yLTI5IDUxLjUtNDcuNCA4Ny4zLTUzLjkgMjkuMy02LjIgNTcuMy0xLjkgODIuNiAxNS4zIDE2LjUgMTAuOSAyOC4zIDI1LjggMzYuMSA0My45IDEuOSAyLjggLjYgNC40LTMuMSA1LjN6TTQ4LjMgMjAwLjRjLTEuMyAwLTEuNi0uNi0uOS0xLjZsNi42LTguNGMuNi0uOSAyLjItMS41IDMuNC0xLjVsMTExLjMgMGMxLjIgMCAxLjUgLjkgLjkgMS44bC01LjMgOC4xYy0uNiAxLTIuMiAxLjktMy4xIDEuOWwtMTEyLjgtLjN6TTEuMiAyMjkuMWMtMS4yIDAtMS42LS43LS45LTEuNmw2LjUtOC40Yy42LS45IDIuMi0xLjYgMy40LTEuNmwxNDIuMSAwYzEuMiAwIDEuOCAxIDEuNSAxLjlsLTIuNSA3LjVjLS4zIDEuMi0xLjUgMS45LTIuOCAxLjlMMS4yIDIyOS4xem03NC41IDI2LjhjLS42IC45LS4zIDEuOCAuOSAxLjhsNjggLjNjLjkgMCAyLjItLjkgMi4yLTIuMWwuNi03LjVjMC0xLjMtLjYtMi4yLTEuOS0yLjJsLTYyLjMgMGMtMS4yIDAtMi41IC45LTMuMSAxLjlsLTQuNCA3Ljh6bTUwMS41LTE4Yy0uMi0yLjYtLjMtNC44LS43LTctNS42LTMwLjgtMzQtNDguMy02My42LTQxLjQtMjkgNi41LTQ3LjcgMjQuOS01NC41IDU0LjItNS42IDI0LjMgNi4yIDQ4LjkgMjguNiA1OC45IDE3LjIgNy41IDM0LjMgNi42IDUwLjgtMS45IDI0LjYtMTMuNiAzOC0zMi43IDM5LjYtNTkuNS0uMS0xLjItLjEtMi4zLS4yLTMuM3oiXX0sRnp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrLWV4Y2hhbmdlIixpY29uOls0NDgsNTEyLFtdLCJmMThkIiwiTTE4LjEgMzMyLjNsNDEyLjcgMCAwIDIyYzAgMzcuNy0yOS4zIDY4LTY1LjMgNjhsLTE5IDAtODYuOCA4OS43IDAtODkuNy0xNzYuMyAwYy0zNiAwLTY1LjMtMzAuMy02NS4zLTY4bDAtMjJ6bTAtMjMuNmw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1em0wLTEwOS40bDQxMi43IDAgMC04NS00MTIuNyAwIDAgODV6TTM2NS40IDBMODMuNCAwYy0zNiAwLTY1LjMgMzAuMy02NS4zIDY3LjdsMCAyMi4zIDQxMi43IDAgMC0yMi4zQzQzMC43IDMwLjMgNDAxLjQgMCAzNjUuNCAweiJdfSxCenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3VscCIsaWNvbjpbMjU2LDUxMixbXSwiZjNhZSIsIk0yMTAgMzkxLjFsLTE0LjEgMjQuNi00LjYgODAuMmMwIDguOS0yOC4zIDE2LjEtNjMuMSAxNi4xcy02My4xLTcuMi02My4xLTE2LjFsLTUuOC03OS40LTE0LjktMjUuNGM0MS4yIDE3LjMgMTI2IDE2LjcgMTY1LjYgMHpNMTQgMTM3LjhMMjcuNiAyNjMuM2M1LjktMjAgMjAuOC00NyA0MC01NS4yIDYuMy0yLjcgMTIuNy0yLjcgMTguNyAuOSA1LjIgMyA5LjYgOS4zIDEwLjEgMTEuOCAxLjIgNi41LTIgOS4xLTQuNSA5LjEtMyAwLTUuMy00LjYtNi44LTcuMy00LjEtNy4zLTEwLjMtNy42LTE2LjktMi44LTYuOSA1LTEyLjkgMTMuNC0xNy4xIDIwLjctNS4xIDguOC05LjQgMTguNS0xMiAyOC4yLTEuNSA1LjYtMi45IDE0LjYtLjYgMTkuOSAxIDIuMiAyLjUgMy42IDQuOSAzLjYgNSAwIDEyLjMtNi42IDE1LjgtMTAuMSA0LjUtNC41IDEwLjMtMTEuNSAxMi41LTE2bDUuMi0xNS41YzIuNi02LjggOS45LTUuNiA5LjkgMCAwIDEwLjItMy43IDEzLjYtMTAgMzQuNy01LjggMTkuNS03LjYgMjUuOC03LjYgMjUuOC0uNyAyLjgtMy40IDcuNS02LjMgNy41LTEuMiAwLTIuMS0uNC0yLjYtMS4yLTEtMS40LS45LTUuMy0uOC02LjMgLjItMy4yIDYuMy0yMi4yIDcuMy0yNS4yLTIgMi4yLTQuMSA0LjQtNi40IDYuNi01LjQgNS4xLTE0LjEgMTEuOC0yMS41IDExLjgtMy40IDAtNS42LS45LTcuNy0yLjRsNy42IDc5LjZjMiA1IDM5LjIgMTcuMSA4OC4yIDE3LjEgNDkuMSAwIDg2LjMtMTIuMiA4OC4yLTE3LjFsMTAuOS05NC42Yy01LjcgNS4yLTEyLjMgMTEuNi0xOS42IDE0LjgtNS40IDIuMy0xNy40IDMuOC0xNy40LTUuNyAwLTUuMiA5LjEtMTQuOCAxNC40LTIxLjUgMS40LTEuNyA0LjctNS45IDQuNy04LjEgMC0yLjktNi0yLjItMTEuNyAyLjUtMy4yIDIuNy02LjIgNi4zLTguNyA5LjctNC4zIDYtNi42IDExLjItOC41IDE1LjUtNi4yIDE0LjItNC4xIDguNi05LjEgMjItNSAxMy4zLTQuMiAxMS44LTUuMiAxNC0uOSAxLjktMi4yIDMuNS00IDQuNS0xLjkgMS00LjUgLjktNi4xLS4zLS45LS42LTEuMy0xLjktMS4zLTMuNyAwLS45IC4xLTEuOCAuMy0yLjcgMS41LTYuMSA3LjgtMTguMSAxNS0zNC4zIDEuNi0zLjcgMS0yLjYgLjgtMi4zLTYuMiA2LTEwLjkgOC45LTE0LjQgMTAuNS01LjggMi42LTEzIDIuNi0xNC41LTQuMS0uMS0uNC0uMS0uOC0uMi0xLjItMTEuOCA5LjItMjQuMyAxMS43LTIwLTguMS00LjYgOC4yLTEyLjYgMTQuOS0yMi40IDE0LjktNC4xIDAtNy4xLTEuNC04LjYtNS4xLTIuMy01LjUgMS4zLTE0LjkgNC42LTIzLjggMS43LTQuNSA0LTkuOSA3LjEtMTYuMiAxLjYtMy40IDQuMi01LjQgNy42LTQuNSAuNiAuMiAxLjEgLjQgMS42IC43IDIuNiAxLjggMS42IDQuNSAuMyA3LjItMy44IDcuNS03LjEgMTMtOS4zIDIwLjgtLjkgMy4zLTIgOSAxLjUgOSAyLjQgMCA0LjctLjggNi45LTIuNCA0LjYtMy40IDguMy04LjUgMTEuMS0xMy41IDItMy42IDQuNC04LjMgNS42LTEyLjMgLjUtMS43IDEuMS0zLjMgMS44LTQuOCAxLjEtMi41IDIuNi01LjEgNS4yLTUuMSAxLjMgMCAyLjQgLjUgMy4yIDEuNSAxLjcgMi4yIDEuMyA0LjUgLjQgNi45LTIgNS42LTQuNyAxMC42LTYuOSAxNi43LTEuMyAzLjUtMi43IDgtMi43IDExLjcgMCAzLjQgMy43IDIuNiA2LjggMS4yIDIuNC0xLjEgNC44LTIuOCA2LjgtNC41IDEuMi00LjkgLjktMy44IDI2LjQtNjguMiAxLjMtMy4zIDMuNy00LjcgNi4xLTQuNyAxLjIgMCAyLjIgLjQgMy4yIDEuMSAxLjcgMS4zIDEuNyA0LjEgMSA2LjItLjcgMS45LS42IDEuMy00LjUgMTAuNS01LjIgMTIuMS04LjYgMjAuOC0xMy4yIDMxLjktMS45IDQuNi03LjcgMTguOS04LjcgMjIuMy0uNiAyLjItMS4zIDUuOCAxIDUuOCA1LjQgMCAxOS4zLTEzLjEgMjMuMS0xNyAuMi0uMyAuNS0uNCAuOS0uNiAuNi0xLjkgMS4yLTMuNyAxLjctNS41IDEuNC0zLjggMi43LTguMiA1LjMtMTEuMyAuOC0xIDEuNy0xLjYgMi43LTEuNiAyLjggMCA0LjIgMS4yIDQuMiA0IDAgMS4xLS43IDUuMS0xLjEgNi4yIDEuNC0xLjUgMi45LTMgNC41LTQuNSAxNS0xMy45IDI1LjctNi44IDI1LjcgLjIgMCA3LjQtOC45IDE3LjctMTMuOCAyMy40LTEuNiAxLjktNC45IDUuNC01IDYuNCAwIDEuMyAuOSAxLjggMi4yIDEuOCAyIDAgNi40LTMuNSA4LTQuNyA1LTMuOSAxMS44LTkuOSAxNi42LTE0LjFsMTQuOC0xMzYuOGMtMzAuNSAxNy4xLTE5Ny42IDE3LjItMjI4LjMgLjJ6bTIyOS43LTguNWMwIDIxLTIzMS4yIDIxLTIzMS4yIDAgMC04LjggNTEuOC0xNS45IDExNS42LTE1LjkgOSAwIDE3LjggLjEgMjYuMyAuNEwxNjcgNjUuMSAyMjguMyAuNmMxLjQtMS40IDUuOC0uMiA5LjkgMy41czYuNiA3LjkgNS4zIDkuM2wtLjEgLjEtNTcuMyA2MC41LTEwIDQwLjdjMzkuOSAyLjYgNjcuNiA4LjEgNjcuNiAxNC42em0tNjkuNCA0LjZjMC0uOC0uOS0xLjUtMi41LTIuMWwtLjIgLjhjMCAxLjMtNSAyLjQtMTEuMSAyLjRzLTExLjEtMS4xLTExLjEtMi40YzAtLjEgMC0uMiAuMS0uM2wuMi0uN2MtMS44IC42LTMgMS40LTMgMi4zIDAgMi4xIDYuMiAzLjcgMTMuNyAzLjcgNy43IC4xIDEzLjktMS42IDEzLjktMy43eiJdfSxIenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWVscCIsaWNvbjpbMzg0LDUxMixbXSwiZjFlOSIsIk00Mi45IDI0MC4zbDk5LjYgNDguNmMxOS4yIDkuNCAxNi4yIDM3LjUtNC41IDQyLjdMMzAuNSAzNTguNWMtMy4yIC44LTYuNCAuOS05LjYgLjNzLTYuMi0xLjgtOC45LTMuNy00LjktNC4zLTYuNi03LjEtMi43LTUuOS0zLjEtOS4yYy0zLjMtMjguOC0uMi01Ny45IDktODUuMyAxLTMuMSAyLjctNS45IDQuOS04LjNzNC45LTQuMiA3LjktNS41IDYuMi0xLjggOS41LTEuOCA2LjQgLjkgOS4zIDIuM3ptNDQgMjM5LjNjMjMuOCAxNi4zIDUwLjkgMjcuMyA3OS40IDMyLjEgMy4yIC42IDYuNSAuNCA5LjYtLjRzNi4xLTIuMyA4LjYtNC40IDQuNi00LjYgNi03LjUgMi4zLTYuMSAyLjQtOS40bDMuOS0xMTAuOGMuNy0yMS4zLTI1LjUtMzEuOS0zOS44LTE2LjFMODIuOCA0NDUuNWMtMi4yIDIuNC0zLjggNS4zLTQuOCA4LjRzLTEuMyA2LjQtLjkgOS42IDEuNSA2LjMgMy4xIDkuMSAzLjkgNS4yIDYuNiA3bDAgMHpNMjMyLjIgMzY5LjdsNTguOCA5NGMxLjcgMi44IDQgNS4xIDYuOCA2LjlzNS44IDMgOSAzLjUgNi41IC4zIDkuNy0uNSA2LjEtMi40IDguNi00LjRjMjIuMy0xOC40IDQwLjMtNDEuNSA1Mi43LTY3LjYgMS40LTIuOSAyLjEtNi4xIDIuMi05LjRzLS42LTYuNS0xLjktOS40LTMuMi01LjctNS42LTcuOC01LjItMy45LTguMy00LjlMMjU4LjcgMzM1LjdjLTIwLjMtNi41LTM3LjggMTUuOC0yNi41IDMzLjl6TTM4MC42IDIzNy40Yy0xMS41LTI2LjUtMjguNy01MC4yLTUwLjQtNjkuMy0yLjQtMi4xLTUuMy0zLjctOC40LTQuN3MtNi40LTEuMi05LjYtLjgtNi4zIDEuNS05LjEgMy4yLTUuMSA0LTYuOSA2LjdsLTYyIDkxLjljLTExLjkgMTcuNyA0LjcgNDAuNiAyNS4yIDM0LjdMMzY2IDI2OC42YzMuMS0uOSA2LTIuNSA4LjUtNC42czQuNS00LjcgNS44LTcuNyAyLjEtNi4yIDIuMi05LjQtLjYtNi41LTEuOS05LjVsMCAwek02Mi4xIDMwLjJjLTIuOCAxLjQtNS40IDMuMy03LjQgNS43cy0zLjYgNS4yLTQuNSA4LjItMS4yIDYuMi0uOSA5LjMgMS4zIDYuMSAyLjkgOC45TDE1Ni4zIDI0Mi42YzExLjcgMjAuMiA0Mi42IDExLjkgNDIuNi0xMS40bDAtMjA4LjNjMC0zLjEtLjYtNi4zLTEuOC05LjJzLTMuMS01LjUtNS40LTcuNi01LTMuOC04LTQuOC02LjEtMS40LTkuMy0xLjJjLTM5IDMuMS03NyAxMy4zLTExMi4zIDMwLjF6Il19LHF6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb2ZvcmUiLGljb246WzQ0OCw1MTIsW10sImYzYTciLCJNMzQ4IDMxOS44bC0xMy4yIDAgMCAzNC43Yy0yNC41IDIzLjEtNTYuMyAzNS44LTg5LjkgMzUuOC03My4yIDAtMTMyLjQtNjAuMi0xMzIuNC0xMzQuNCAwLTc0LjEgNTkuMi0xMzQuNCAxMzIuNC0xMzQuNCAzNS4zIDAgNjguNiAxNCA5My42IDM5LjRsNjIuMy02My4zYy00MS44LTQyLjMtOTcuMS02NS42LTE1Ni4xLTY1LjYtMTIyLjcgMC0yMjAuNyAxMDAuNi0yMjAuNyAyMjQgMCAxMjIuNSA5NyAyMjQgMjIwLjcgMjI0IDYzLjIgMCAxMjQuNS0yNi4yIDE3MS04Mi41LTItMjcuNi0xMy40LTc3LjctNjcuNy03Ny43ek0zMzUuOSAyMDcuM2wtMTA2LjMgMCAwIDg5IDExOC40IDBjMzMuNSAwIDYwLjUgMTUuMSA3NiA0MS44bDAtMzAuNmMwLTY1LjItNDAuNC0xMDAuMi04OC4xLTEwMC4yeiJdfSxWenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXZpYXRvIixpY29uOls2NDAsNTEyLFtdLCJmNDIxIiwiTTEwNy4yIDI4My41bC0xOS00MS44LTUyLjEgMC0xOSA0MS44LTE3LjEgMCA2Mi4yLTEzMS40IDYyLjIgMTMxLjQtMTcuMiAwem0tNDUtOTguMWwtMTkuNiA0Mi41IDM5LjIgMC0xOS42LTQyLjV6TTE3NC45IDI4Ny44bC02Mi4yLTEzMS40IDE3LjEgMCA0NS4xIDk2IDQ1LjEtOTYgMTcgMC02Mi4xIDEzMS40em04MC42LTQuM2wwLTEyNy4xIDE1LjUgMCAwIDEyNy4xLTE1LjUgMHpNNDY0LjYgMTY3LjlsMCAxMTUuNi0xNy4zIDAgMC0xMTUuNi00MS4yIDAgMC0xMS41IDk5LjYgMCAwIDExLjUtNDEuMSAwek02NDAgMjE4LjhjMCA5LjItMS43IDE3LjgtNS4xIDI1LjhzLTguMiAxNS4xLTE0LjIgMjEuMS0xMy4xIDEwLjgtMjEuMSAxNC4yLTE2LjYgNS4xLTI1LjggNS4xLTE3LjgtMS43LTI1LjgtNS4xLTE1LjEtOC4yLTIxLjEtMTQuMi0xMC44LTEzLTE0LjItMjEuMWMtMy40LTgtNS4xLTE2LjYtNS4xLTI1LjhzMS43LTE3LjggNS4xLTI1LjggOC4yLTE1LjEgMTQuMi0yMS4xIDEzLTguNCAyMS4xLTExLjljOC0zLjQgMTYuNi01LjEgMjUuOC01LjFzMTcuOCAxLjcgMjUuOCA1LjEgMTUuMSA1LjggMjEuMSAxMS45YzYgNiAxMC43IDEzLjEgMTQuMiAyMS4xIDMuNCA4IDUuMSAxNi42IDUuMSAyNS44em0tMTUuNSAwYzAtNy4zLTEuMy0xNC0zLjktMjAuM3MtNi4yLTExLjctMTAuOC0xNi4zLTEwLTguMi0xNi4yLTEwLjktMTIuOC00LTE5LjgtNC0xMy42IDEuMy0xOS44IDQtMTEuNiA2LjMtMTYuMiAxMC45LTguMiAxMC0xMC44IDE2LjMtMy45IDEzLjEtMy45IDIwLjNjMCA3LjMgMS4zIDE0IDMuOSAyMC4zczYuMiAxMS43IDEwLjggMTYuMyAxMCA4LjIgMTYuMiAxMC45IDEyLjggNCAxOS44IDQgMTMuNi0xLjMgMTkuOC00IDExLjYtNi4zIDE2LjItMTAuOSA4LjItMTAgMTAuOC0xNi4zIDMuOS0xMy4xIDMuOS0yMC4zem0tOTQuOCA5Ni43bDAtNi4zIDg4LjktMTAtMjQyLjkgMTMuNGMuNi0yLjIgMS4xLTQuNiAxLjQtNy4yIC4zLTIgLjUtNC4yIC42LTYuNWw2NC44LTguMS02NC45IDEuOWMwLS40LS4xLS43LS4xLTEuMS0yLjgtMTcuMi0yNS41LTIzLjctMjUuNS0yMy43bC0xLjEtMjYuMyAyMy44IDAgMTkgNDEuOCAxNy4xIDAtNjIuMi0xMzEuNC02Mi4yIDEzMS40IDE3LjEgMCAxOS00MS44IDIzLjYgMC0xLjEgMjYuNHMtMjIuNyA2LjUtMjUuNSAyMy43Yy0uMSAuMy0uMSAuNy0uMSAxLjFsLTY0LjktMS45IDY0LjggOC4xYy4xIDIuMyAuMyA0LjQgLjYgNi41IC4zIDIuNiAuOCA1IDEuNCA3LjJsLTI0Mi45LTEzLjUgODguOSAxMCAwIDYuM2MtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMwLTYuMi00LjYtMTEuMy0xMC41LTEyLjJsMC01LjggODAuMyA5IDAgNS40Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNC45IDI4LjQgMy4yIDAgMjMuNy01LjkgMCAwIDEzLjkgNS45IDAgMC02LjYgNSAwIDAgNi42IDUuOSAwIDAtMTMuOC01LjkgMCAwLTIzLjIgMzguMyA0LjNjOC4xIDExLjQgMTkgMTMuNiAxOSAxMy42bC0uMSA2LjctNS4xIC4yLS4xIDEyLjEgNC4xIDAgLjEtNSA1LjIgMCAuMSA1IDQuMSAwLS4xLTEyLjEtNS4xLS4yLS4xLTYuN3MxMC45LTIuMSAxOS0xMy42bDM4LjMtNC4zIDAgMjMuMi01LjkgMCAwIDEzLjggNS45IDAgMC02LjYgNSAwIDAgNi42IDUuOSAwIDAtMTMuOC01LjkgMCAwLTIzLjcgMjguNC0zLjIgMCA0LjljLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjJzMTIuNC0zLjQgMTIuNC0xMC4yYzAtNi00LjMtMTEtOS45LTEyLjFsMC01LjQgODAuMy05IDAgNS44Yy01LjkgLjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjRzMTIuNC01LjYgMTIuNC0xMi40Yy0uMi02LjMtNC43LTExLjQtMTAuNy0xMi4zek0zMjguOSAyMjcuOWwxOS42LTQyLjUgMTkuNiA0Mi41LTE3LjkgMC0xLjctNDAuMy0xLjcgNDAuMy0xNy45IDB6Il19LGp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWRsZXQiLGljb246WzY0MCw1MTIsW10sImU0YTAiLCJNMjk3LjkgMGwuMSAwYzcuNiAuMSAxNC40IDQuNyAxNy41IDExLjhsMTMyIDMwOC41IC4zLS4xIC4yIC40LTIuOCAxMC00Mi45IDE1OGMtMy43IDE2LjItMTkuNyAyNi4zLTM1LjggMjIuNmwtNjguNC0xNS42LTY4LjUgMTUuNmMtMTYuMSAzLjctMzIuMS02LjQtMzUuOC0yMi42bC00Mi45LTE1OC0yLjctMTAgLjEtLjQgMTMyLjEtMzA4LjRjMy03IDkuOS0xMS42IDE3LjUtMTEuOHpNMTYwLjEgMzIyLjFsMTMxIDM5LjEgNi45IDEyMi41IDcuOS0xMjEuNSAxMzAuNi0zOS4zIC4yLS4xLTEzMSAyNS4xLTguNi0zMjAuMi01LjIgMzIwLjItMTMxLjgtMjUuOHpNNDI2IDIyMi42bDk0LjQtNDEgNzMuOCAwLTE1NyAyNDcuNiAzMS42LTEwOS00Mi44LTk3LjZ6bTE3MS41LTQxLjJsNDEuNCA3Ni4yYzQgNy41LTMuOSAxNS45LTExLjYgMTIuMmwtNDcuNi0yMi43IDE3LjgtNjUuN3pNMTI3LjMgMzE4LjVMMTU4LjcgNDMwIDEuNiAxNTQuNWMtNS45LTEwLjQgNS41LTIyIDE1LjktMTYuMmwxNTEuOCA4NC4yLTQyLjEgOTZ6Il19LFV6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlZGdlLWxlZ2FjeSIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3OCIsIk0tNiAyMjguMmwuNC0uNWMwIC4yIDAgLjMtLjEgLjVsLS4zIDB6bTQ2MC42IDE1LjVjMC00NC03LjgtODQuNS0yOC44LTEyMi40LTQxLTczLjQtMTEzLjYtMTEzLjMtMTk4LjYtMTEzLjMtMTM5LjktLjMtMjE4LjMgMTA1LjItMjMyLjggMjE5LjcgNDIuNC02MS4zIDExNy4xLTEyMS40IDIyMC40LTEyNSAwIDAgMTA5LjcgMCA5OS40IDEwNWwtMTc1LjggMGM2LjQtMzcuNCAxOC41LTU5IDM0LjMtNzguOS03NSAzNC45LTEyMS44IDk2LjEtMTIwLjggMTg4LjMgLjggNzEuNSA1MC4xIDE0NC44IDEyMC44IDE3MiA4My40IDMxLjggMTkyLjggNy4yIDI0MC4xLTIxLjNsMC0xMDQuNGMtODAuOSA1Ni41LTI3MC45IDYwLjktMjcyLjMtNjcuNmwzMTQuMSAwIDAtNTIuMXoiXX0sUXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sYXN0Zm0iLGljb246WzQ0OCw1MTIsWyJsYXN0Zm0tc3F1YXJlIl0sImYyMDMiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTIxMC43IDI4MC44Yy0xLjgtNS41LTMuNC0xMC44LTUtMTUuOS0xMi45LTQxLjktMjEtNjguNC01OC02OC40LTIyLjQgMC00NS4xIDE2LjEtNDUuMSA2MS4yIDAgMzUuMiAxOCA1Ny4yIDQzLjMgNTcuMiAyOC42IDAgNDcuNi0yMS4zIDQ3LjYtMjEuM2wxMS43IDMxLjlzLTE5LjggMTkuNC02MS4yIDE5LjRjLTUxLjMgMC03OS45LTMwLjEtNzkuOS04NS44IDAtNTcuOSAyOC42LTkyIDgyLjUtOTIgNjcuOSAwIDc5LjMgMzUuMyA5Ni40IDg4LjQgMS40IDQuNCAyLjkgOC45IDQuNCAxMy41IDguOCAyNi44IDI0LjIgNDYuMiA2MS4yIDQ2LjIgMjQuOSAwIDM4LjEtNS41IDM4LjEtMTkuMSAwLTE3LjUtMTYuOS0yMS4yLTQwLTI2LjQtMy4yLS43LTYuNS0xLjQtOS45LTIuMi0zMC40LTcuMy00Mi41LTIzLjEtNDIuNS00OCAwLTQwIDMyLjMtNTIuNCA2NS4yLTUyLjQgMzcuNCAwIDYwLjEgMTMuNiA2MyA0Ni42bC0zNi43IDQuNGMtMS41LTE1LjgtMTEtMjIuNC0yOC42LTIyLjQtMTYuMSAwLTI2IDcuMy0yNiAxOS44IDAgMTEgNC44IDE3LjYgMjAuOSAyMS4zIDIuMiAuNSA0LjUgMSA2LjcgMS40IDMxLjEgNi41IDY1LjEgMTMuNyA2NS4xIDU2LjEgLjEgMzYuNy0zMC43IDUwLjYtNzYuMSA1MC42LTYzLjQgMC04NS40LTI4LjYtOTcuMS02NC4xeiJdfSxXenQ9UXVlLEd6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29kcmVhZHMtZyIsaWNvbjpbMzIwLDUxMixbXSwiZjNhOSIsIk0xMC44IDQwMy4zbDIuOCAwYzEyLjcgMCAyNS41IDAgMzguMiAuMSAxLjYgMCAzLjEtLjQgMy42IDIuMSA3LjEgMzQuOSAzMCA1NC42IDYyLjkgNjMuOSAyNi45IDcuNiA1NC4xIDcuOCA4MS4zIDEuOCAzMy44LTcuNCA1Ni0yOC4zIDY4LTYwLjQgOC0yMS41IDEwLjctNDMuOCAxMS02Ni41IC4xLTUuOCAuMy00Ny0uMi01Mi44bC0uOS0uM2MtLjggMS41LTEuNyAyLjktMi41IDQuNC0yMi4xIDQzLjEtNjEuMyA2Ny40LTEwNS40IDY5LjEtMTAzIDQtMTY5LjQtNTctMTcyLTE3Ni4yLS41LTIzLjcgMS44LTQ2LjkgOC4zLTY5LjcgMjAuNi03MS4xIDc0LjYtMTE4LjIgMTUzLjktMTE4LjggNjEuMy0uNCAxMDEuNSAzOC43IDExNi4yIDcwLjMgLjUgMS4xIDEuMyAyLjMgMi40IDEuOWwwLTYxLjYgNDQuMyAwYzAgMjgwLjMgLjEgMzMyLjIgLjEgMzMyLjItLjEgNzguNS0yNi43IDE0My43LTEwMyAxNjIuMi02OS41IDE2LjktMTU5IDQuOC0xOTYtNTcuMi04LTEzLjUtMTEuOC0yOC4zLTEzLTQ0LjV6TTE1Ny4xIDM2LjVjLTUyLjUtLjUtMTA4LjUgNDAuNy0xMTUgMTMzLjgtNC4xIDU5IDE0LjggMTIyLjIgNzEuNSAxNDguNiAyNy42IDEyLjkgNzQuMyAxNSAxMDguMy04LjcgNDcuNi0zMy4yIDYyLjctOTcgNTQuOC0xNTQtOS43LTcxLjEtNDcuOC0xMjAtMTE5LjYtMTE5Ljd6Il19LFl6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1tYXN0ZXJjYXJkIixpY29uOls1NzYsNTEyLFtdLCJmMWYxIiwiTTQ4Mi45IDQxMC4zYzAgNi44LTQuNiAxMS43LTExLjIgMTEuNy02LjggMC0xMS4yLTUuMi0xMS4yLTExLjdzNC40LTExLjcgMTEuMi0xMS43YzYuNiAwIDExLjIgNS4yIDExLjIgMTEuN3pNMTcyLjEgMzk4LjZjLTcuMSAwLTExLjIgNS4yLTExLjIgMTEuN1MxNjUgNDIyIDE3Mi4xIDQyMmM2LjUgMCAxMC45LTQuOSAxMC45LTExLjctLjEtNi41LTQuNC0xMS43LTEwLjktMTEuN3ptMTE3LjUtLjNjLTUuNCAwLTguNyAzLjUtOS41IDguN2wxOS4xIDBjLS45LTUuNy00LjQtOC43LTkuNi04Ljd6bTEwNy44IC4zYy02LjggMC0xMC45IDUuMi0xMC45IDExLjdzNC4xIDExLjcgMTAuOSAxMS43IDExLjItNC45IDExLjItMTEuN2MwLTYuNS00LjQtMTEuNy0xMS4yLTExLjd6bTEwNS45IDI2LjFjMCAuMyAuMyAuNSAuMyAxLjEgMCAuMy0uMyAuNS0uMyAxLjEtLjMgLjMtLjMgLjUtLjUgLjgtLjMgLjMtLjUgLjUtMS4xIC41LS4zIC4zLS41IC4zLTEuMSAuMy0uMyAwLS41IDAtMS4xLS4zLS4zIDAtLjUtLjMtLjgtLjUtLjMtLjMtLjUtLjUtLjUtLjgtLjMtLjUtLjMtLjgtLjMtMS4xIDAtLjUgMC0uOCAuMy0xLjEgMC0uNSAuMy0uOCAuNS0xLjEgLjMtLjMgLjUtLjMgLjgtLjUgLjUtLjMgLjgtLjMgMS4xLS4zIC41IDAgLjggMCAxLjEgLjMgLjUgLjMgLjggLjMgMS4xIC41cy4yIC42IC41IDEuMXptLTIuMiAxLjRjLjUgMCAuNS0uMyAuOC0uMyAuMy0uMyAuMy0uNSAuMy0uOHMwLS41LS4zLS44Yy0uMyAwLS41LS4zLTEuMS0uM2wtMS42IDAgMCAzLjUgLjggMCAwLTEuNCAuMyAwIDEuMSAxLjQgLjggMC0xLjEtMS4zek01NzYgODFsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgxYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgxQzAgNTQuNSAyMS41IDMzIDQ4IDMzbDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek02NCAyMjAuNmMwIDc2LjUgNjIuMSAxMzguNSAxMzguNSAxMzguNSAyNy4yIDAgNTMuOS04LjIgNzYuNS0yMy4xLTcyLjktNTkuMy03Mi40LTE3MS4yIDAtMjMwLjUtMjIuNi0xNS00OS4zLTIzLjEtNzYuNS0yMy4xLTc2LjQtLjEtMTM4LjUgNjItMTM4LjUgMTM4LjJ6TTI4OCAzMjkuNGM3MC41LTU1IDcwLjItMTYyLjIgMC0yMTcuNS03MC4yIDU1LjMtNzAuNSAxNjIuNiAwIDIxNy41ek0xNDUuNyA0MDUuN2MwLTguNy01LjctMTQuNC0xNC43LTE0LjctNC42IDAtOS41IDEuNC0xMi44IDYuNS0yLjQtNC4xLTYuNS02LjUtMTIuMi02LjUtMy44IDAtNy42IDEuNC0xMC42IDUuNGwwLTQuNC04LjIgMCAwIDM2LjcgOC4yIDBjMC0xOC45LTIuNS0zMC4yIDktMzAuMiAxMC4yIDAgOC4yIDEwLjIgOC4yIDMwLjJsNy45IDBjMC0xOC4zLTIuNS0zMC4yIDktMzAuMiAxMC4yIDAgOC4yIDEwIDguMiAzMC4ybDguMiAwIDAtMjMtLjIgMHpNMTkwLjYgMzkybC03LjkgMCAwIDQuNGMtMi43LTMuMy02LjUtNS40LTExLjctNS40LTEwLjMgMC0xOC4yIDguMi0xOC4yIDE5LjMgMCAxMS4yIDcuOSAxOS4zIDE4LjIgMTkuMyA1LjIgMCA5LTEuOSAxMS43LTUuNGwwIDQuNiA3LjkgMCAwLTM2Ljh6bTQwLjUgMjUuNmMwLTE1LTIyLjktOC4yLTIyLjktMTUuMiAwLTUuNyAxMS45LTQuOCAxOC41LTEuMWwzLjMtNi41Yy05LjQtNi4xLTMwLjItNi0zMC4yIDguMiAwIDE0LjMgMjIuOSA4LjMgMjIuOSAxNSAwIDYuMy0xMy41IDUuOC0yMC43IC44bC0zLjUgNi4zYzExLjIgNy42IDMyLjYgNiAzMi42LTcuNXptMzUuNCA5LjNsLTIuMi02LjhjLTMuOCAyLjEtMTIuMiA0LjQtMTIuMi00LjFsMC0xNi42IDEzLjEgMCAwLTcuNC0xMy4xIDAgMC0xMS4yLTguMiAwIDAgMTEuMi03LjYgMCAwIDcuMyA3LjYgMCAwIDE2LjdjMCAxNy42IDE3LjMgMTQuNCAyMi42IDEwLjl6bTEzLjMtMTMuNGwyNy41IDBjMC0xNi4yLTcuNC0yMi42LTE3LjQtMjIuNi0xMC42IDAtMTguMiA3LjktMTguMiAxOS4zIDAgMjAuNSAyMi42IDIzLjkgMzMuOCAxNC4ybC0zLjgtNmMtNy44IDYuNC0xOS42IDUuOC0yMS45LTQuOXpNMzM4LjkgMzkyYy00LjYtMi0xMS42LTEuOC0xNS4yIDQuNGwwLTQuNC04LjIgMCAwIDM2LjcgOC4yIDAgMC0yMC43YzAtMTEuNiA5LjUtMTAuMSAxMi44LTguNGwyLjQtNy42em0xMC42IDE4LjNjMC0xMS40IDExLjYtMTUuMSAyMC43LTguNGwzLjgtNi41Yy0xMS42LTkuMS0zMi43LTQuMS0zMi43IDE1IDAgMTkuOCAyMi40IDIzLjggMzIuNyAxNWwtMy44LTYuNWMtOS4yIDYuNS0yMC43IDIuNi0yMC43LTguNnpNNDE2LjIgMzkybC04LjIgMCAwIDQuNGMtOC4zLTExLTI5LjktNC44LTI5LjkgMTMuOSAwIDE5LjIgMjIuNCAyNC43IDI5LjkgMTMuOWwwIDQuNiA4LjIgMCAwLTM2Ljh6bTMzLjcgMGMtMi40LTEuMi0xMS0yLjktMTUuMiA0LjRsMC00LjQtNy45IDAgMCAzNi43IDcuOSAwIDAtMjAuN2MwLTExIDktMTAuMyAxMi44LTguNGwyLjQtNy42em00MC4zLTE0LjlsLTcuOSAwIDAgMTkuM2MtOC4yLTEwLjktMjkuOS01LjEtMjkuOSAxMy45IDAgMTkuNCAyMi41IDI0LjYgMjkuOSAxMy45bDAgNC42IDcuOSAwIDAtNTEuN3ptNy42LTc1LjFsMCA0LjYgLjggMCAwLTQuNiAxLjkgMCAwLS44LTQuNiAwIDAgLjggMS45IDB6bTYuNiAxMjMuOGMwLS41IDAtMS4xLS4zLTEuNi0uMy0uMy0uNS0uOC0uOC0xLjFzLS44LS41LTEuMS0uOGMtLjUgMC0xLjEtLjMtMS42LS4zLS4zIDAtLjggLjMtMS40IC4zLS41IC4zLS44IC41LTEuMSAuOC0uNSAuMy0uOCAuOC0uOCAxLjEtLjMgLjUtLjMgMS4xLS4zIDEuNiAwIC4zIDAgLjggLjMgMS40IDAgLjMgLjMgLjggLjggMS4xIC4zIC4zIC41IC41IDEuMSAuOCAuNSAuMyAxLjEgLjMgMS40IC4zIC41IDAgMS4xIDAgMS42LS4zIC4zLS4zIC44LS41IDEuMS0uOHMuNS0uOCAuOC0xLjFjLjMtLjYgLjMtMS4xIC4zLTEuNHptMy4yLTEyNC43bC0xLjQgMC0xLjYgMy41LTEuNi0zLjUtMS40IDAgMCA1LjQgLjggMCAwLTQuMSAxLjYgMy41IDEuMSAwIDEuNC0zLjUgMCA0LjEgMS4xIDAgMC01LjR6bTQuNC04MC41YzAtNzYuMi02Mi4xLTEzOC4zLTEzOC41LTEzOC4zLTI3LjIgMC01My45IDguMi03Ni41IDIzLjEgNzIuMSA1OS4zIDczLjIgMTcxLjUgMCAyMzAuNSAyMi42IDE1IDQ5LjUgMjMuMSA3Ni41IDIzLjEgNzYuNCAuMSAxMzguNS02MS45IDEzOC41LTEzOC40eiJdfSxLenQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlzY291cnNlIixpY29uOls0NDgsNTEyLFtdLCJmMzkzIiwiTTIyNS45IDMyQzEwMy4zIDMyIDAgMTMwLjUgMCAyNTIuMSAwIDI1NiAuMSA0ODAgLjEgNDgwbDIyNS44LS4yQzM0OC42IDQ3OS44IDQ0OCAzNzcuNSA0NDggMjU1LjlTMzQ4LjYgMzIgMjI1LjkgMzJ6TTIyNCAzODRjLTE5LjQgMC0zNy45LTQuMy01NC40LTEyLjFMODguNSAzOTIgMTExLjQgMzE3Yy05LjgtMTguMS0xNS40LTM4LjktMTUuNC02MSAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4LTU3LjMgMTI4LTEyOCAxMjh6Il19LFp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibGFjay10aWUiLGljb246WzQ0OCw1MTIsW10sImYyN2UiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMzE2LjUgMzU3LjJsLTkyLjUgODguNy05Mi41LTg4LjcgNjQuNS0xODQtNjQuNS04Ni42IDE4NC45IDAtNjQuNCA4Ni42IDY0LjUgMTg0eiJdfSxKdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZhY2Vib29rIixpY29uOls0NDgsNTEyLFsiZmFjZWJvb2stc3F1YXJlIl0sImYwODIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5OC4yIDAgMC0xNDUuOC01Mi44IDAgMC03OC4yIDUyLjggMCAwLTMzLjdjMC04Ny4xIDM5LjQtMTI3LjUgMTI1LTEyNy41IDE2LjIgMCA0NC4yIDMuMiA1NS43IDYuNGwwIDcwLjhjLTYtLjYtMTYuNS0xLTI5LjYtMS00MiAwLTU4LjIgMTUuOS01OC4yIDU3LjJsMCAyNy44IDgzLjYgMC0xNC40IDc4LjItNjkuMyAwIDAgMTQ1LjggMTI5IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LFh6dD1KdWUsUXp0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhdHRsZS1uZXQiLGljb246WzUxMiw1MTIsW10sImY4MzUiLCJNNDQ4LjggMjI1LjZjMjYuOSAuMiAzNS42LTcuNCAzOC45LTEyLjQgMTIuNS0xNi4zLTcuMS00Ny42LTUyLjgtNzEuMyAxNy44LTMzLjYgMzAuMS02My43IDM2LjMtODUuMyAzLjQtMTEuOCAxLjEtMTkgLjUtMjAuMy0xLjcgMTAuNS0xNS44IDQ4LjUtNDguMiAxMDAtMjUtMTEuMi01Ni41LTIwLjEtOTMuOC0yMy44LTguOS0xNi45LTM0LjktNjMuOS02MC41LTg4LjktMTYuOC0xNi41LTMwLjMtMjIuNi00MC44LTIzLjVsMCAwYy0xMy44LTEuNi0yMi43IDUuOC0yNy40IDExLTE3LjIgMTguNS0yNC4zIDQ4LjktMjUgODQuMS03LjItMTIuMy0xNy4yLTI0LjYtMjguNS0yNS45bC0uMiAwYy0yMC43LTMuNS0zOC40IDI5LjItMzYgODEuMy0zOC40IDEuNC03MSA1LjgtOTMgMTEuMi05LjkgMi40LTE2LjIgNy4zLTE3LjggOS43IDEtLjQgMjIuNC05LjIgMTExLjYtOS4yIDUuMiA1MyAyOS44IDEwMS44IDI2IDkzLjItOS43IDE1LjQtMzguMiA2Mi40LTQ3LjMgOTcuNy01LjkgMjIuOS00LjQgMzcuNiAuMiA0Ny4xIDUuNiAxMi44IDE2LjQgMTYuNyAyMy4yIDE4LjMgMjUgNS43IDU1LjQtMy42IDg2LjctMjEuMS03LjUgMTIuOC0xMy45IDI4LjUtOS4xIDM5LjMgNy4zIDE5LjYgNDQuNSAxOC43IDg4LjQtOS40IDIwLjIgMzIuMiA0MC4xIDU3LjkgNTUuNyA3NC4xIDIuNiAyLjggNS41IDUuMiA4LjggNy4xIDUuMSAzLjIgOC42IDMuNCA4LjYgMy40LTguMi02LjctMzQtMzgtNjIuNS05MS44IDIyLjItMTYgNDUuNy0zOC45IDY3LjUtNjkuMyAxMjIuOCA0LjYgMTQzLjMtMjQuOCAxNDgtMzEuNiAxNC43LTE5LjkgMy40LTU3LjQtNTcuMy05My43ek0zNzEgMzMxLjhjMjMuOC0zNy43IDMwLjMtNjcuOCAyOS40LTkyLjMgMjcuOSAxNy42IDQ3LjIgMzcuNiA0OS4xIDU4LjggMS4xIDEyLjktOC4xIDI5LjEtNzguNSAzMy41ek0yMTcuMSAzODcuN2M5LjgtNi4yIDE5LjUtMTMuMSAyOS4yLTIwLjUgNi43IDEzLjMgMTMuNiAyNi4xIDIwLjYgMzguMi00MC42IDIxLjktNjguOCAxMi44LTQ5LjgtMTcuN3ptMjE1LTE3MS4zYy0xMC4zLTUuMy0yMS4yLTEwLjMtMzIuNC0xNSA3LjktMTIuMSAxNS41LTI0LjQgMjIuNy0zNi45IDM5LjEgMjQuMSA0NS45IDUzLjIgOS42IDUxLjl6TTI3OS40IDM5OGMtNS41LTExLjQtMTEtMjMuNS0xNi41LTM2LjQgNDMuMiAxLjMgNjIuNC0xOC43IDYzLjMtMjAuNCAwIC4xLTI1IDE1LjYtNjIuNSAxMi4yIDMwLjYtMjUuNiA1OS4xLTUzLjcgODUuMS04NCA4LjctMTAuMiAxNy0yMC42IDI0LjktMzEuMS0uNC0uMy0xLjUtMy0xNi41LTEyLTUxLjcgNjAuMy0xMDIuMyA5OC0xMzIuOCAxMTUuOS0yMC42LTExLjItNDAuOC0zMS44LTU1LjctNjEuNS0yMC0zOS45LTMwLTgyLjQtMzEuNi0xMTYuMSAxMi4zIC45IDI1LjMgMi4yIDM4LjggMy45LTIyLjMgMzYuOC0xNC40IDYzLTEzLjUgNjQuMiAwLS4xLTEtMjkuMiAyMC4xLTU5LjYgOSA1Mi41IDI0IDEwMy44IDQ0LjcgMTUyLjggLjktLjQgMS44IC45IDE4LjctOC4yLTI2LjMtNzQuNS0zMy44LTEzOC4yLTM0LTE3My40IDIwLTEyLjQgNDguMi0xOS44IDgxLjYtMTcuOCA0NC42IDIuNyA4Ni40IDE1LjIgMTE2LjMgMzAuNy03LjEgMTAuNC0xNC45IDIxLjMtMjMuMyAzMi41LTIwLjctMzcuNy00Ny4zLTQzLjktNDguOS00My43IC4xIDAgMjUuOSAxNC4xIDQxLjUgNDcuMi0zNy41LTEzLjgtNzYuMS0yNC40LTExNS4zLTMxLjctMTMuMS0yLjQtMjYuMi00LjQtMzkuNC02LS4xIC40LTEuOCAxLjgtMi4yIDIwLjMgNzcuOSAxNC41IDEzNi42IDM5LjkgMTY3LjIgNTcuMiAuNyAyMy42LTcgNTEuNi0yNS40IDc5LjYtMjQuNiAzNy4zLTU2LjQgNjcuMi04NC44IDg1LjR6bTI3LjQtMjg3Yy00NC42LTEuNy03My42IDcuNC05NC43IDIwLjcgMi01Mi4zIDIxLjMtNzYuNCAzOC4yLTc1LjMgMTYuOS00LjIgNTQuOSA1Mi4yIDU2LjUgNTQuNnptLTEzMC43IDMuMWMuNSAxMi4xIDEuNiAyNC42IDMuMiAzNy4zLTE0LjYtLjktMjguNy0xLjMtNDIuNC0xLjMtLjEgMy4yLS4xLTUxIDI0LjctNDkuNmwuMSAwYzUuOCAxLjEgMTAuNiA2LjkgMTQuNCAxMy42em0tMjguMSAxNjJjMjAuOCAzOS43IDQzLjMgNjAuNiA2NS4zIDcyLjMtNDYuOCAyNC44LTc3LjUgMjAtODQuOSA0LjUtLjItLjItMTEuMS0xNS4zIDE5LjctNzYuOGwwIDB6Il19LEp6dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaW1vYmplY3QiLGljb246WzQ0OCw1MTIsW10sImYzNzgiLCJNNDE2IDMyTDMyIDMyQzE0LjQgMzIgMCA0Ni40IDAgNjRMMCA0NDhjMCAxNy42IDE0LjQgMzIgMzIgMzJsMzg0IDBjMTcuNiAwIDMyLTE0LjQgMzItMzJsMC0zODRjMC0xNy42LTE0LjQtMzItMzItMzJ6TTM1MiAyODkuNGMwIDQ5LjQtMTEuNCA4Mi42LTEwMy44IDgyLjZsLTE2LjkgMGMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhsLS45IDAgMCAzNC44LTY0IDAgMC0yMzIgNjQgMCAwIDc0LjcgMS4xIDBjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGwxNy4zIDBjOTIuNCAwIDEwMy44IDMzLjEgMTAzLjggODIuNWwwIDM1IC4xIDB6bS02NC0yOC45bDAgMjIuOWMwIDIxLjctMy40IDMzLjgtMzguNCAzMy44bC00NS4zIDBjLTI4LjkgMC00NC4xLTYuNS00NC4xLTM1LjdsMC0xOWMwLTI5LjMgMTUuMi0zNS43IDQ0LjEtMzUuN2w0NS4zIDBjMzUtLjIgMzguNCAxMiAzOC40IDMzLjd6Il19LGVDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdmVsdGUiLGljb246WzQ0OCw1MTIsW10sImU4NjgiLCJNMjAyLjEgMjYuNGM2Ni44LTQyLjYgMTU5LjMtMjIuNyAyMDYuMSA0NC4zIDExLjEgMTUuNSAxOSAzMy4xIDIzLjIgNTEuOHM0LjcgMzcuOSAxLjMgNTYuN2MtMy4yIDE4LTEwLjEgMzUuMS0yMC4xIDUwLjMgMTQuNiAyNy45IDE5LjYgNjAgMTQgOTEtMy4zIDE4LjQtMTAuNCAzNi0yMC45IDUxLjVzLTI0LjEgMjguNy0zOS45IDM4LjdMMjQ4LjMgNDg1LjZjLTY2LjggNDIuNi0xNTkuMyAyMi43LTIwNi4xLTQ0LjItMTEuMS0xNS41LTE5LTMzLjItMjMuMi01MS44cy00LjctMzcuOS0xLjMtNTYuN2MzLjItMTggMTAuMS0zNS4xIDIwLjEtNTAuMy0xNC43LTI3LjktMTkuNi02MC0xNC05MS4xIDMuMy0xOC40IDEwLjQtMzYgMjAuOS01MS41czI0LjEtMjguNyAzOS45LTM4LjdMMjAyLjEgMjYuNHpNMzE1LjYgNjcuMmMtMTcuOS02LjYtMzcuNC03LjYtNTUuOS0yLjgtOC40IDIuMy0xNi41IDUuOC0yMy44IDEwLjVMMTE4LjUgMTQ5LjdjLTkuNSA2LTE3LjcgMTMuOS0yNCAyMy4zUzg0IDE5Mi44IDgyIDIwMy45Yy0yIDExLjMtMS43IDIyLjkgLjggMzQuMXM3LjMgMjEuOCAxMy45IDMxLjJjMTAuOSAxNS43IDI2LjMgMjcuNiA0NC4yIDM0LjNzMzcuNCA3LjYgNTUuOSAyLjhjOC40LTIuMyAxNi41LTUuOCAyMy44LTEwLjVsNDQuOC0yOC42YzIuMi0xLjQgNC43LTIuNSA3LjItMy4yIDUuNi0xLjQgMTEuNC0xLjIgMTYuOCAuOHMxMCA1LjYgMTMuMyAxMC4zYzIgMi44IDMuNSA2IDQuMiA5LjRzLjkgNi45IC4zIDEwLjNjLS42IDMuMy0xLjkgNi41LTMuOCA5LjMtMS45IDIuOC00LjQgNS4yLTcuMiA3TDE3OC44IDM4Ni4xYy0yLjIgMS40LTQuNyAyLjUtNy4yIDMuMi01LjYgMS40LTExLjQgMS4yLTE2LjgtLjhzLTEwLTUuNi0xMy4zLTEwLjNjLTMuNi01LjEtNS4zLTExLjItNC43LTE3LjRsLjQtNC40LTQuMy0xLjNjLTE2LjUtNS0zMi4xLTEyLjctNDUuOS0yMi45bC02LTQuNC0yLjIgNi43Yy0xLjIgMy42LTIuMSA3LjMtMi44IDExLTIgMTEuMy0xLjcgMjIuOSAuOCAzNC4xczcuMyAyMS44IDEzLjkgMzEuMWMxMC45IDE1LjcgMjYuMyAyNy42IDQ0LjIgMzQuM3MzNy40IDcuNiA1NS44IDIuOGM4LjQtMi4zIDE2LjUtNS44IDIzLjktMTAuNWwxMTcuMy03NC44YzkuNS02IDE3LjctMTMuOSAyNC0yMy4zczEwLjYtMTkuOSAxMi42LTMxYzItMTEuMyAxLjgtMjIuOS0uOC0zNC4xcy03LjMtMjEuOC0xNC0zMS4xYy0xMC45LTE1LjctMjYuMy0yNy42LTQ0LjItMzQuM3MtMzcuNC03LjYtNTUuOS0yLjhjLTguNCAyLjMtMTYuNSA1LjgtMjMuOCAxMC41TDE4NSAyNDQuOGMtMi4yIDEuNC00LjYgMi41LTcuMiAzLjItNS42IDEuNC0xMS41IDEuMi0xNi44LS44cy0xMC01LjYtMTMuMy0xMC4zYy0yLTIuOC0zLjQtNi00LjItOS40cy0uOS02LjktLjItMTAuM2MuNi0zLjMgMS45LTYuNSAzLjgtOS4zczQuNC01LjIgNy4yLTdsMTE3LjQtNzQuOGMyLjItMS40IDQuNy0yLjUgNy4yLTMuMiA1LjYtMS40IDExLjQtMS4xIDE2LjggLjlzMTAgNS42IDEzLjMgMTAuM2MzLjYgNS4xIDUuMiAxMS4zIDQuNyAxNy40bC0uNCA0LjQgNC40IDEuM2MxNi41IDUgMzIgMTIuOCA0NS45IDIzbDYgNC40IDIuMi02LjhjMS4yLTMuNiAyLjEtNy4zIDIuOC0xMSAyLTExLjMgMS44LTIyLjktLjgtMzQuMXMtNy4zLTIxLjgtMTQtMzEuMWMtMTAuOS0xNS43LTI2LjMtMjcuNi00NC4yLTM0LjN6Il19LHRDdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZGVza3BybyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0NCIsIk00MDguOCAzMkM0MzAuNCAzMiA0NDggNDkuNiA0NDggNzEuMmwwIDM2OS42YzAgMjEuNi0xNy42IDM5LjItMzkuMiAzOS4yTDM5LjIgNDgwQzE3LjYgNDgwIDAgNDYyLjQgMCA0NDAuOEwwIDcxLjJDMCA0OS42IDE3LjYgMzIgMzkuMiAzMmwzNjkuNiAwek0xMTAuOSAyNzQuMWwwIDExNC40IDg5LjEtLjFjMjAuNiAwIDM5LjQtMy4yIDU2LjMtOS41czMxLjMtMTUuNCA0My4yLTI3YzEyLjItMTEuOSAyMS42LTI2IDI4LjItNDIuMSA0LjYtMTEuMSA3LjctMjMgOS4yLTM1LjdsLTQzLjggMGMtMS4xIDYuNC0yLjggMTIuNC01LjEgMTguMi00LjIgMTAuOS0xMC4zIDIwLjMtMTguMiAyOC4yLTcuOSA3LjctMTcuNCAxMy43LTI4LjYgMTcuOS0xMS4xIDQuMy0yMy41IDYuNC0zNy4zIDYuNGwtNTAgMCAwLTcwLjYtNDMgLjF6bTAtMTUxLjRsMCAxMTQuNCA0My0uMSAwLTcwLjcgNTAgMGMxMy43IDAgMjYuMiAyLjEgMzcuMyA2LjQgMTEuMSA0LjMgMjAuNiAxMC4zIDI4LjYgMTguMyA3LjkgNy43IDE0IDE3LjEgMTguMiAyOC4yIDIuMyA1LjYgNCAxMS41IDUuMSAxNy44bDQzLjkgLjFjLTEuNC0xMi42LTQuNC0yNC40LTguOS0zNS4zLTYuNi0xNi40LTE2LTMwLjUtMjguMS00Mi4yLTEyLjEtMTEuOS0yNi43LTIxLjEtNDMuNi0yNy41LTE2LjktNi40LTM1LjctOS41LTU2LjMtOS41bC04OSAuMXoiXX0sYUN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRhaWx3aW5kLWNzcyIsaWNvbjpbNjQwLDUxMixbXSwiZTg2NiIsIk0zMjAgNjRjLTg1LjMgMC0xMzguNyA0Mi43LTE2MCAxMjggMzItNDIuNyA2OS4zLTU4LjcgMTEyLTQ4IDI0LjMgNi4xIDQxLjcgMjMuOCA2MSA0My4zIDMxLjQgMzEuOCA2Ny43IDY4LjcgMTQ3IDY4LjcgODUuMyAwIDEzOC43LTQyLjcgMTYwLTEyOC0zMiA0Mi43LTY5LjMgNTguNy0xMTIgNDgtMjQuMy02LjEtNDEuNy0yMy44LTYxLTQzLjMtMzEuNC0zMS44LTY3LjctNjguNy0xNDctNjguN3pNMTYwIDI1NmMtODUuMyAwLTEzOC43IDQyLjctMTYwIDEyOCAzMi00Mi43IDY5LjMtNTguNyAxMTItNDggMjQuMyA2LjEgNDEuNyAyMy44IDYxIDQzLjMgMzEuNCAzMS44IDY3LjcgNjguNyAxNDcgNjguNyA4NS4zIDAgMTM4LjctNDIuNyAxNjAtMTI4LTMyIDQyLjctNjkuMyA1OC43LTExMiA0OC0yNC4zLTYuMS00MS43LTIzLjgtNjEtNDMuMy0zMS40LTMxLjgtNjcuNy02OC43LTE0Ny02OC43eiJdfSx5JGE9e2ZhU3F1YXJlR2l0aHViOnl1ZSxmYUdpdGh1YlNxdWFyZTpKOXQsZmFUaGlua1BlYWtzOmVndCxmYUdvb2dsZURyaXZlOnRndCxmYUF1dG9wcmVmaXhlcjphZ3QsZmFTcXVhcmVWaWFkZW86d3VlLGZhVmlhZGVvU3F1YXJlOnJndCxmYUNwYW5lbDpzZ3QsZmFNZW5kZWxleTppZ3QsZmFEcmFmdDJkaWdpdGFsOm9ndCxmYVJlcGx5ZDpuZ3QsZmFFbXBpcmU6bGd0LGZhQWNjZXNzaWJsZUljb246Y2d0LGZhUXVvcmE6ZGd0LGZhQ2NKY2I6dWd0LGZhRmVkb3JhOnBndCxmYUR1b2xpbmdvOmZndCxmYUZpcnN0ZHJhZnQ6aGd0LGZhRnJlZWJzZDptZ3QsZmFPZHlzZWU6Z2d0LGZhR2dDaXJjbGU6Ymd0LGZhQ2xvdWRmbGFyZTp2Z3QsZmFIYWNrZXJyYW5rOnhndCxmYVNreWF0bGFzOnlndCxmYURlc2twcm86d2d0LGZhUmVzb2x2aW5nOk1ndCxmYUJsYWNrYmVycnk6a2d0LGZhU3RyaXBlUzpTZ3QsZmFTcXVhcmVCZWhhbmNlOk11ZSxmYUJlaGFuY2VTcXVhcmU6emd0LGZhU2VydmljZXN0YWNrOkNndCxmYVJvY2tldGNoYXQ6X2d0LGZhUmViZWw6VGd0LGZhU3F1YXJlV2ViQXdlc29tZTpMZ3QsZmFMaW5rdHJlZTokZ3QsZmFTaW1wbHlidWlsdDpEZ3QsZmFTdHViYmVyOkFndCxmYUFwcGVyOlBndCxmYUdvb2dsZVNjaG9sYXI6RWd0LGZhWWFybjpJZ3QsZmFTdGFja092ZXJmbG93Ok5ndCxmYUJsdWV0b290aDpSZ3QsZmFDcmVhdGl2ZUNvbW1vbnNOY0pwOk9ndCxmYVJlZGRpdDpGZ3QsZmFDb25uZWN0ZGV2ZWxvcDpCZ3QsZmFSZXNlYXJjaGdhdGU6SGd0LGZhU2lnbmFsTWVzc2VuZ2VyOnFndCxmYVhpbmc6Vmd0LGZhU3F1YXJlSnM6a3VlLGZhSnNTcXVhcmU6amd0LGZhRm9udGljb25zOlVndCxmYVVwczpXZ3QsZmFBbWF6b25QYXk6R2d0LGZhUGFuZG9yYTpZZ3QsZmFPcGVuaWQ6S2d0LGZhVnNjbzpaZ3QsZmFHbG9iYWxlYWtzOlhndCxmYVZlbm1vOlFndCxmYVVidW50dTpKZ3QsZmFWaWFjb2luOmVidCxmYVpoaWh1OnRidCxmYVlhbmRleDphYnQsZmFQaXhpdjpyYnQsZmFPcGVuYWk6c2J0LGZhU2l0aDppYnQsZmFKdWxpYTpvYnQsZmFOZmNEaXJlY3Rpb25hbDpuYnQsZmFDcmVhdGl2ZUNvbW1vbnNCeTpsYnQsZmFVbWJyYWNvOmNidCxmYUhvb2xpOmRidCxmYVNxdWFyZUdpdDpTdWUsZmFHaXRTcXVhcmU6dWJ0LGZhT2Rub2tsYXNzbmlraTpwYnQsZmFEcnVwYWw6ZmJ0LGZhQmxvZ2dlckI6aGJ0LGZhSW52aXNpb246bWJ0LGZhRmFjZWJvb2tGOmdidCxmYUNlbnRvczpiYnQsZmFTY2FsZXdheTp2YnQsZmFDY0FtYXpvblBheTp4YnQsZmFFYmF5OnlidCxmYUNvbnRhbzp3YnQsZmFFbGxvOk1idCxmYVNpc3RyaXg6a2J0LGZhUGVyaXNjb3BlOlNidCxmYUV4cGVkaXRlZHNzbDp6YnQsZmFOYXBzdGVyOkNidCxmYURlbGljaW91czpfYnQsZmFHdWlsZGVkOlRidCxmYU9ic2lkaWFuOkxidCxmYVhib3g6JGJ0LGZhVW50YXBwZDpEYnQsZmFHb29nbGVQbHVzRzpBYnQsZmFHaXRodWJBbHQ6UGJ0LGZhR2V0UG9ja2V0OkVidCxmYUdsaWRlOklidCxmYUJpdHk6TmJ0LGZhV3BleHBsb3JlcjpSYnQsZmFNZWdhcG9ydDpPYnQsZmFMZWV0Y29kZTpGYnQsZmFNZGI6QmJ0LGZhUGFnZTQ6SGJ0LGZhVGhlUmVkWWV0aTpxYnQsZmFKaXJhOlZidCxmYUZlZGV4OmpidCxmYUV2ZXJub3RlOlVidCxmYVVzYjpXYnQsZmFBbmdyeWNyZWF0aXZlOkdidCxmYU1penVuaTpZYnQsZmFJdGNoSW86S2J0LGZhV2luZG93czpaYnQsZmFTdHVtYmxldXBvbjpYYnQsZmFHb29nbGU6bGVlLGZhRGlzY29yZDpRYnQsZmFIYWNrZXJOZXdzOkpidCxmYUVsZXZlbnR5Onp1ZSxmYTExdHk6ZXZ0LGZhVGVhbXNwZWFrOnR2dCxmYVN1cHBsZTphdnQsZmFTcXVhcmVUd2l0dGVyOkN1ZSxmYVR3aXR0ZXJTcXVhcmU6cnZ0LGZhVmltOnN2dCxmYUZvbnRBd2Vzb21lOm5lZSxmYUZvbnRBd2Vzb21lRmxhZzppdnQsZmFGb250QXdlc29tZUxvZ29GdWxsOm92dCxmYVdpcnNpbmRoYW5kd2VyazpfdWUsZmFXc2g6bnZ0LGZhWm9vbTpsdnQsZmFDb25mbHVlbmNlOmN2dCxmYURpZ2c6ZHZ0LGZhVGhyZWFkczp1dnQsZmFXcHJlc3NyOlR1ZSxmYVJlbmRhY3Q6cHZ0LGZhWW9hc3Q6ZnZ0LGZhTmltYmxyOmh2dCxmYVBpeGVsZmVkOm12dCxmYVlhaG9vOmd2dCxmYUJsdWVza3k6YnZ0LGZhU2NyaWJkOnZ2dCxmYUNyZWF0aXZlQ29tbW9uc1BkOnh2dCxmYUVhcmx5YmlyZHM6eXZ0LGZhU3ltZm9ueWNhc3RzOnd2dCxmYVNxdWFyZU9kbm9rbGFzc25pa2k6THVlLGZhT2Rub2tsYXNzbmlraVNxdWFyZTpNdnQsZmFNYXJrZG93bjprdnQsZmFUeXBvMzpTdnQsZmFKb29tbGE6enZ0LGZhV2VpeGluOkN2dCxmYUdydW50Ol92dCxmYVN1cHBvcnRub3c6VHZ0LGZhUm9ja3JtczpMdnQsZmFVbnNwbGFzaDokdnQsZmFTcXVhcmVJbnN0YWdyYW06JHVlLGZhSW5zdGFncmFtU3F1YXJlOkR2dCxmYUZpcnN0T3JkZXJBbHQ6QXZ0LGZhRnVsY3J1bTpQdnQsZmFBcmNoTGludXg6RXZ0LGZhRmVkaXZlcnNlOkl2dCxmYUJyYXZlUmV2ZXJzZTpOdnQsZmFBdmlhbmV4OlJ2dCxmYU5zODpPdnQsZmFTcXVhcmVQaW50ZXJlc3Q6RHVlLGZhUGludGVyZXN0U3F1YXJlOkZ2dCxmYUJsdWV0b290aEI6QnZ0LGZhR3JpcGZpcmU6SHZ0LGZhU3F1YXJlR29vZ2xlUGx1czpBdWUsZmFHb29nbGVQbHVzU3F1YXJlOnF2dCxmYUdpdGVlOlZ2dCxmYVhtcHA6anZ0LGZhQXBwU3RvcmU6VXZ0LGZhV2l4Old2dCxmYUludGVyY29tOkd2dCxmYVJlYWN0ZXVyb3BlOll2dCxmYVdhemU6S3Z0LGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6WnZ0LGZhQmFuZGNhbXA6WHZ0LGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpRdnQsZmFWaW1lb1Y6SnZ0LGZhU3RyYXZhOmV4dCxmYVVuaXJlZ2lzdHJ5OnR4dCxmYUNjRGluZXJzQ2x1YjpheHQsZmFLdWJlcm5ldGVzOnJ4dCxmYVBpbnRlcmVzdDpzeHQsZmFBbGdvbGlhOml4dCxmYVN0YWNrcGF0aDpveHQsZmFPY3RvcHVzRGVwbG95Om54dCxmYVlhbW1lcjpseHQsZmFNb2R4OmN4dCxmYVNxdWFyZVRocmVhZHM6ZHh0LGZhT2xkUmVwdWJsaWM6dXh0LGZhU3VzZTpweHQsZmFBcHBTdG9yZUlvczpmeHQsZmFVbHRyYWx5dGljc1lvbG86aHh0LGZhU3F1YXJlRHJpYmJibGU6UHVlLGZhRHJpYmJibGVTcXVhcmU6bXh0LGZhVWlraXQ6Z3h0LGZhU3VwZXJwb3dlcnM6Ynh0LGZhWW91dHViZTp2eHQsZmFFbWJlcjp4eHQsZmFCb290c3RyYXA6eXh0LGZhSXR1bmVzOnd4dCxmYVNxdWFyZVhpbmc6RXVlLGZhWGluZ1NxdWFyZTpNeHQsZmFDc3MzQWx0Omt4dCxmYVNxdWFyZXNwYWNlOlN4dCxmYVRyZWxsbzp6eHQsZmFWaWFkZW86Q3h0LGZhU2VhcmNoZW5naW46X3h0LGZhVW5yZWFsRW5naW5lOlR4dCxmYVBheXBhbDpMeHQsZmFTcXVhcmVCbHVlc2t5OiR4dCxmYURBbmREQmV5b25kOkR4dCxmYU1pY3Jvc29mdDpBeHQsZmFGbHk6UHh0LGZhQ2NTdHJpcGU6RXh0LGZhV29yZHByZXNzU2ltcGxlOkl4dCxmYVNlbGxzeTpOeHQsZmFEYXNoY3ViZTpSeHQsZmFHaXR0ZXI6T3h0LGZhV29sZlBhY2tCYXR0YWxpb246Rnh0LGZhTGFzdGZtOkJ4dCxmYVNob3B3YXJlOkh4dCxmYUJsb2dnZXI6cXh0LGZhRWRnZTpWeHQsZmFJb3hob3N0Omp4dCxmYVNjaGxpeDpVeHQsZmFEQW5kRDpXeHQsZmFWdWVqczpHeHQsZmFNZXRhOll4dCxmYUNyZWF0aXZlQ29tbW9uc1NoYXJlOkt4dCxmYVN0dWRpb3ZpbmFyaTpaeHQsZmFCaXRidWNrZXQ6WHh0LGZhVms6UXh0LGZhR2l0aHViOkp4dCxmYUNvZGllcGllOmV5dCxmYVBpZWRQaXBlcjp0eXQsZmFSYXNwYmVycnlQaTpheXQsZmFDc3MzOnJ5dCxmYUh1YnNwb3Q6c3l0LGZhQ21wbGlkOml5dCxmYUR5YWxvZzpveXQsZmFFbGVtZW50b3I6bnl0LGZhRmlyc3RPcmRlcjpseXQsZmFEcmliYmJsZTpjeXQsZmFMaW5rZWRpbjpjZWUsZmFDY1BheXBhbDpkeXQsZmFEaGw6dXl0LGZhVGV4OnB5dCxmYUNsYXVkZTpmeXQsZmFTaG9waWZ5Omh5dCxmYVNxdWFyZVJlZGRpdDpJdWUsZmFSZWRkaXRTcXVhcmU6bXl0LGZhQ3JlYXRpdmVDb21tb25zTmM6Z3l0LGZhR2FsYWN0aWNSZXB1YmxpYzpieXQsZmFGYWNlYm9vazpkZWUsZmFHaXRsYWI6dnl0LGZhUXE6eHl0LGZhU3RyaXBlOnl5dCxmYURhaWx5bW90aW9uOnd5dCxmYVN0ZWFtOk15dCxmYVZlbm1vVjpreXQsZmFTbmFwY2hhdDpOdWUsZmFTbmFwY2hhdEdob3N0OlN5dCxmYUdhbGFjdGljU2VuYXRlOnp5dCxmYVBob2VuaXhGcmFtZXdvcms6Q3l0LGZhR2l0Ol95dCxmYU9wdGluTW9uc3RlcjpUeXQsZmFKZW5raW5zOkx5dCxmYVNsaWRlc2hhcmU6JHl0LGZhVWJlcjpEeXQsZmFEaWdpdGFsT2NlYW46QXl0LGZhU291bmRjbG91ZDpQeXQsZmFTcXVhcmVGaWdtYTpFeXQsZmFDcmVhdGl2ZUNvbW1vbnNTYTpJeXQsZmFDaHJvbWU6Tnl0LGZhVHJhZGVGZWRlcmF0aW9uOlJ5dCxmYVZhYWRpbjpPeXQsZmFEZXZpYW50YXJ0OkZ5dCxmYU1lZGl1bTpMYixmYU1lZGl1bU06Qnl0LGZhT3BlbmNhcnQ6SHl0LGZhWUNvbWJpbmF0b3I6cXl0LGZhTGluZTpWeXQsZmFBbWlsaWE6anl0LGZhQXN5bW1ldHJpazpVeXQsZmFQaGFicmljYXRvcjpXeXQsZmFCb3RzOkd5dCxmYVZpbmU6WXl0LGZhTWVkcnQ6S3l0LGZhT3NpOlp5dCxmYUdnOlh5dCxmYUJ1eXNlbGxhZHM6UXl0LGZhR29vZ2xlUGx1czpKeXQsZmFTY3JlZW5wYWw6ZXd0LGZhQml0Y29pbjp0d3QsZmFTd2lmdDphd3QsZmFGaWxlc1BpbndoZWVsOnJ3dCxmYUxhcmF2ZWw6c3d0LGZhV3Bmb3Jtczppd3QsZmFTcGVha2VyRGVjazpvd3QsZmFGbGlja3I6bnd0LGZhQ2NWaXNhOmx3dCxmYVVwd29yazpjd3QsZmFLYWthb1RhbGs6ZHd0LGZhRmx1dHRlcjp1d3QsZmFCdWZmZXI6cHd0LGZhR3JhdGlwYXk6Znd0LGZhR29vZ2xlUGF5Omh3dCxmYUFwcGxlOm13dCxmYVR1bWJscjpnd3QsZmFQaG9lbml4U3F1YWRyb246Ynd0LGZhQ2VudGVyY29kZTp2d3QsZmFEZWJpYW46eHd0LGZhTWFzdG9kb246eXd0LGZhU2tldGNoOnd3dCxmYVdlYkF3ZXNvbWU6TXd0LGZhU2Fzczprd3QsZmFUaHJlZW1hOlN3dCxmYVNxdWFyZVdoYXRzYXBwOlJ1ZSxmYVdoYXRzYXBwU3F1YXJlOnp3dCxmYVNreXBlOkN3dCxmYUFuZ3VsYXI6X3d0LGZhQ2lyY2xlWnVsaXA6VHd0LGZhT3BlbnN1c2U6THd0LGZhRHJvcGJveDokd3QsZmFEZWV6ZXI6RHd0LGZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmc6QXd0LGZhSmVkaU9yZGVyOlB3dCxmYVJQcm9qZWN0OkV3dCxmYUluc3RhbG9kOkl3dCxmYUNhbmFkaWFuTWFwbGVMZWFmOk53dCxmYUV0aGVyZXVtOlJ3dCxmYUhvdXp6Ok93dCxmYVZpYmVyOkZ3dCxmYUtpY2tzdGFydGVyOk91ZSxmYVNxdWFyZUtpY2tzdGFydGVyOkJ3dCxmYVNwb3RpZnk6SHd0LGZhTGVhbnB1Yjpxd3QsZmFKYXZhOlZ3dCxmYU5mY1N5bWJvbDpqd3QsZmFXb2R1OlV3dCxmYVNxdWFyZVN0ZWFtOkZ1ZSxmYVN0ZWFtU3F1YXJlOld3dCxmYUNyZWF0aXZlQ29tbW9uc05jRXU6R3d0LGZhTnBtOll3dCxmYUNsb3Vkc2NhbGU6S3d0LGZhVGhlbWVjbzpad3QsZmFHb29nbGVQbGF5Olh3dCxmYUtvcnZ1ZTpRd3QsZmFXM2M6Snd0LGZhR3JhdjplTXQsZmFBd3M6dE10LGZhR2xpZGVHOmFNdCxmYUpzZmlkZGxlOnJNdCxmYUtleWJhc2U6c010LGZhTHVtb25Ecm9wOmlNdCxmYUZvcmdlam86b010LGZhUG9zdGdyZXNxbDpuTXQsZmFXZWVibHk6bE10LGZhRG9ja2VyOmNNdCxmYU1hZ2VudG86ZE10LGZhVG9yQnJvd3Nlcjp1TXQsZmFHaXRBbHQ6cE10LGZhRmlyZWZveEJyb3dzZXI6Zk10LGZhQ2xvdWRzbWl0aDpoTXQsZmFXaXphcmRzT2ZUaGVDb2FzdDptTXQsZmFDcmVhdGl2ZUNvbW1vbnNOZDpnTXQsZmFVc3BzOmJNdCxmYVNxdWFyZUxldHRlcmJveGQ6dk10LGZhTWFuZGFsb3JpYW46eE10LGZhU2xhY2s6QnVlLGZhU2xhY2tIYXNoOnVlZSxmYUFuZ2VsbGlzdDp5TXQsZmFBbmRyb2lkOndNdCxmYU1lZXR1cDpNTXQsZmFGb250aWNvbnNGaTprTXQsZmFQYWxmZWQ6U010LGZhV3BiZWdpbm5lcjp6TXQsZmFEaWFzcG9yYTpDTXQsZmFQcm9kdWN0SHVudDpfTXQsZmFTcXVhcmVVcHdvcms6VE10LGZhQ3V0dGxlZmlzaDpMTXQsZmFNZWRhcHBzOiRNdCxmYVBpeDpETXQsZmFTcXVhcmVUdW1ibHI6SHVlLGZhVHVtYmxyU3F1YXJlOkFNdCxmYVJlYWN0OlBNdCxmYUh1Z2dpbmdGYWNlOkVNdCxmYUp4bDpJTXQsZmFTcXVhcmVMaW5rZWRpbjpOTXQsZmFDc3M6Uk10LGZhSGFzaG5vZGU6T010LGZhUmVkZGl0QWxpZW46Rk10LGZhVGlrdG9rOnBlZSxmYVdvcmRwcmVzczpCTXQsZmFJZGVhbDpITXQsZmFQaWVkUGlwZXJQcDpxTXQsZmFVc3N1bm5haDpWTXQsZmFGb3J0QXdlc29tZUFsdDpqTXQsZmFCdXJvbW9iZWxleHBlcnRlOlVNdCxmYUJpbGliaWxpOldNdCxmYU5lb3M6R010LGZhRGV2OllNdCxmYUhvdGphcjpLTXQsZmFEb2NodWI6Wk10LGZhVmltZW86WE10LGZhTWF4Y2RuOlFNdCxmYVNxdWFyZUZvbnRBd2Vzb21lU3Ryb2tlOnF1ZSxmYUZvbnRBd2Vzb21lQWx0OkpNdCxmYVNwZWFrYXA6ZWt0LGZhRmFudGFzeUZsaWdodEdhbWVzOnRrdCxmYUxpbnV4OmFrdCxmYUNvdHRvbkJ1cmVhdTpya3QsZmFHb29nbGVXYWxsZXQ6c2t0LGZhRm91cnNxdWFyZTppa3QsZmFTaGlydHNpbmJ1bGs6b2t0LGZhTWludGJpdDpua3QsZmFadWxpcDpsa3QsZmFTdGF5bGlua2VkOmNrdCxmYVdlYmZsb3c6ZGt0LGZhUmVucmVuOnVrdCxmYUtvRmk6cGt0LGZhUmV2OmZrdCxmYUtleWNkbjpoa3QsZmFIaXJlQUhlbHBlcjpta3QsZmFTcXVhcmVIYWNrZXJOZXdzOlZ1ZSxmYUhhY2tlck5ld3NTcXVhcmU6Z2t0LGZhQ3JlYXRpdmVDb21tb25zUGRBbHQ6Ymt0LGZhT3JjaWQ6dmt0LGZhQm9hcmRHYW1lR2VlazpqdWUsZmFCZ2c6eGt0LGZhQmVoYW5jZTp5a3QsZmFNb25lcm86d2t0LGZhRmlnbWE6TWt0LGZhSW5zdGFncmFtOmZlZSxmYVBlcmJ5dGU6a2t0LGZhU3F1YXJlVmltZW86VXVlLGZhVmltZW9TcXVhcmU6U2t0LGZhUHVzaGVkOnprdCxmYU1peGNsb3VkOkNrdCxmYVlhbmRleEludGVybmF0aW9uYWw6X2t0LGZhSGl2ZTpUa3QsZmFDcmVhdGl2ZUNvbW1vbnNaZXJvOkxrdCxmYVNxdWFyZVNuYXBjaGF0Old1ZSxmYVNuYXBjaGF0U3F1YXJlOiRrdCxmYVRoZW1laXNsZTpEa3QsZmFEYXJ0TGFuZzpBa3QsZmFEZXBsb3lkb2c6UGt0LGZhRmxpcGJvYXJkOkVrdCxmYUJ1eU5MYXJnZTpJa3QsZmFXYXRjaG1hbk1vbml0b3Jpbmc6Tmt0LGZhSGlwczpSa3QsZmFDbG91ZHZlcnNpZnk6T2t0LGZhR29vZHJlYWRzOkZrdCxmYVRpZGFsOkJrdCxmYVVuaXR5OkhrdCxmYVRlbmNlbnRXZWlibzpxa3QsZmFGcmVlQ29kZUNhbXA6Vmt0LGZhWFR3aXR0ZXI6amt0LGZhU3RpY2tlck11bGU6VWt0LGZhVHdpdGNoOldrdCxmYUtpY2tzdGFydGVySzpHa3QsZmFDcml0aWNhbFJvbGU6WWt0LGZhU3RlYW1TeW1ib2w6S2t0LGZhTWFpbGNoaW1wOlprdCxmYUx1bW9uOlhrdCxmYU51dHJpdGlvbml4OlFrdCxmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nUGx1czpKa3QsZmFSZWRoYXQ6ZVN0LGZhU3F1YXJlUGllZFBpcGVyOkd1ZSxmYVBpZWRQaXBlclNxdWFyZTp0U3QsZmFXaGF0c2FwcDphU3QsZmFJbWRiOnJTdCxmYVB5dGhvbjpzU3QsZmFDYXNoQXBwOmlTdCxmYVBpbnRlcmVzdFA6b1N0LGZhV2htY3M6blN0LGZhSm9nZXQ6bFN0LGZhU3F1YXJlWW91dHViZTpZdWUsZmFZb3V0dWJlU3F1YXJlOmNTdCxmYUF0bGFzc2lhbjpkU3QsZmFQaWVkUGlwZXJIYXQ6dVN0LGZhSW50ZXJuZXRFeHBsb3JlcjpwU3QsZmFBaXJibmI6ZlN0LGZhSnM6aFN0LGZhUXVpbnNjYXBlOm1TdCxmYUFkdmVyc2FsOmdTdCxmYUNyZWF0aXZlQ29tbW9uczpiU3QsZmFOb3Rpb246dlN0LGZhQ2hyb21lY2FzdDp4U3QsZmFVbHRyYWx5dGljc0h1Yjp5U3QsZmFXaWtpcGVkaWFXOndTdCxmYVNpdHJveDpNU3QsZmFTcXVhcmVHaXRsYWI6S3VlLGZhR2l0bGFiU3F1YXJlOmtTdCxmYVNob2VsYWNlOlNTdCxmYU9wZW5zdHJlZXRtYXA6elN0LGZhU2VsbGNhc3Q6Q1N0LGZhTWl4Ol9TdCxmYUNjQXBwbGVQYXk6VFN0LGZhU29sYW5hOkxTdCxmYVR5cGVzY3JpcHQ6JFN0LGZhQnJhdmU6RFN0LGZhRXRzeTpBU3QsZmFCdGM6UFN0LGZhQWRuOkVTdCxmYVNxdWFyZVhUd2l0dGVyOklTdCxmYVNxdWFyZUZvbnRBd2Vzb21lOk5TdCxmYUZvcnVtYmVlOlJTdCxmYTQyR3JvdXA6WnVlLGZhSW5ub3NvZnQ6T1N0LGZhU3R1bWJsZXVwb25DaXJjbGU6RlN0LGZhU3ltZm9ueTpCU3QsZmFTYWxlc2ZvcmNlOkhTdCxmYVNvdXJjZXRyZWU6cVN0LGZhTGlua2VkaW5JbjpWU3QsZmFIdG1sNTpqU3QsZmFSdXN0OlVTdCxmYUhvcm5iaWxsOldTdCxmYVBocDpHU3QsZmFEaXNxdXM6WVN0LGZhNTAwcHg6S1N0LGZhQWZmaWxpYXRldGhlbWU6WlN0LGZhUmVkUml2ZXI6WFN0LGZhVHdpdHRlcjpoZWUsZmFGb3J0QXdlc29tZTpRU3QsZmFNaXhlcjpKU3QsZmFMeWZ0OmV6dCxmYUFwcGxlUGF5OnR6dCxmYUFydHN0YXRpb246YXp0LGZhTm9kZUpzOnJ6dCxmYVVuY2hhcnRlZDpzenQsZmFQbGF5c3RhdGlvbjppenQsZmFNaWNyb2Jsb2c6b3p0LGZhR2l0a3Jha2VuOm56dCxmYVRlbGVncmFtOlh1ZSxmYVRlbGVncmFtUGxhbmU6bHp0LGZhVWx0cmFseXRpY3M6Y3p0LGZhSXR1bmVzTm90ZTpkenQsZmFMZXNzOnV6dCxmYUZpcmVmb3g6cHp0LGZhS2FnZ2xlOmZ6dCxmYUZhY2Vib29rTWVzc2VuZ2VyOmh6dCxmYUF1ZGlibGU6bXp0LGZhUGF0cmVvbjpnenQsZmFWbnY6Ynp0LGZhUGFnZWxpbmVzOnZ6dCxmYUFtYXpvbjp4enQsZmFFbnZpcmE6eXp0LGZhTGlub2RlOnd6dCxmYUFjY3Vzb2Z0Ok16dCxmYUVybGFuZzprenQsZmFVbmlzb246U3p0LGZhQ2NEaXNjb3Zlcjp6enQsZmFTYWZhcmk6Q3p0LGZhU3BhY2VBd2Vzb21lOl96dCxmYU5vZGU6VHp0LGZhQ29kZXBlbjpMenQsZmFSYXZlbHJ5OiR6dCxmYUFsaXBheTpEenQsZmFDY0FtZXg6QXp0LGZhUGllZFBpcGVyQWx0OlB6dCxmYUxldHRlcmJveGQ6RXp0LGZhT3BlcmE6SXp0LGZhV2VpYm86Tnp0LGZhUmVhZG1lOlJ6dCxmYUdvbGFuZzpPenQsZmFTdGFja0V4Y2hhbmdlOkZ6dCxmYUd1bHA6Qnp0LGZhWWVscDpIenQsZmFHb2ZvcmU6cXp0LGZhQXZpYXRvOlZ6dCxmYVBhZGxldDpqenQsZmFFZGdlTGVnYWN5OlV6dCxmYVNxdWFyZUxhc3RmbTpRdWUsZmFMYXN0Zm1TcXVhcmU6V3p0LGZhR29vZHJlYWRzRzpHenQsZmFDY01hc3RlcmNhcmQ6WXp0LGZhRGlzY291cnNlOkt6dCxmYUJsYWNrVGllOlp6dCxmYVNxdWFyZUZhY2Vib29rOkp1ZSxmYUZhY2Vib29rU3F1YXJlOlh6dCxmYUJhdHRsZU5ldDpRenQsZmFCaW1vYmplY3Q6Snp0LGZhU3ZlbHRlOmVDdCxmYVNxdWFyZURlc2twcm86dEN0LGZhVGFpbHdpbmRDc3M6YUN0fX0pO3ZhciB3JGEsZXBlLHNDdCxpQ3QsdHBlLG9DdCxBYixuQ3QsbEN0LGNDdCxkQ3QsYXBlLHVDdCxwQ3QsZkN0LFBiLGhDdCxycGUsbUN0LHNwZSxnQ3QsYkN0LHZDdCx4Q3QsaXBlLHlDdCxvcGUsd0N0LG5wZSxNQ3QsbHBlLGtDdCxjcGUsU0N0LGRwZSx6Q3QsdXBlLENDdCxfQ3QscHBlLFRDdCxmcGUsTEN0LGhwZSwkQ3QsbXBlLERDdCxBQ3QsZ3BlLFBDdCxicGUsRUN0LHZwZSxJQ3QseHBlLE5DdCx5cGUsUkN0LE9DdCxGQ3QsbWVlLEJDdCxIQ3QscUN0LFZDdCxqQ3QsVUN0LFdDdCxHQ3QsZ2VlLFlDdCxLQ3Qsd3BlLFpDdCxYQ3QsUUN0LEpDdCxlX3QsdF90LGFfdCxyX3QsTXBlLHNfdCxpX3Qsb190LFU4LG5fdCxsX3Qsa3BlLGNfdCxkX3QsU3BlLHVfdCxrZWUscF90LGZfdCxiZWUsaF90LG1fdCx6cGUsZ190LGJfdCx2X3QsQ3BlLHhfdCxfcGUseV90LHZlZSx3X3QsTV90LFRwZSxrX3QsTHBlLFNfdCx6X3QsQ190LCRwZSxfX3QsRHBlLFRfdCxBcGUsTF90LFBwZSwkX3QsRF90LEFfdCxQX3QsRXBlLEVfdCxJX3QsSXBlLE5fdCxSX3QsTnBlLE9fdCxGX3QsUnBlLEJfdCxIX3QscV90LCRiLFZfdCxqX3QsVV90LEViLFdfdCxHX3QsWV90LE9wZSxLX3QsWl90LEZwZSxYX3QsQnBlLFFfdCxEYixKX3QsZVR0LHRUdCxIcGUsYVR0LHhlZSxyVHQsc1R0LGlUdCxvVHQscXBlLG5UdCx5ZWUsbFR0LGNUdCxWcGUsZFR0LGpwZSx1VHQscFR0LFVwZSxmVHQsV3BlLGhUdCx3ZWUsbVR0LGdUdCxiVHQsSWIsdlR0LHhUdCx5VHQsd1R0LEdwZSxNVHQsWXBlLGtUdCxLcGUsU1R0LFpwZSx6VHQsWHBlLENUdCxRcGUsX1R0LE1lZSxUVHQsTFR0LCRUdCxEVHQsSnBlLEFUdCxlZmUsUFR0LHRmZSxFVHQsYWZlLElUdCxOVHQsUlR0LE9UdCxGVHQsQlR0LEhUdCxyZmUscVR0LHNmZSxWVHQsalR0LGlmZSxVVHQsb2ZlLFdUdCxuZmUsR1R0LFNlZSxZVHQsbGZlLEtUdCxaVHQsY2ZlLFhUdCxkZmUsUVR0LEpUdCxlTHQsdWZlLHRMdCxhTHQscGZlLHJMdCxzTHQsaUx0LG9MdCxmZmUsbkx0LGhmZSxsTHQsbWZlLGNMdCxkTHQsdUx0LGdmZSxwTHQsYmZlLGZMdCx2ZmUsaEx0LG1MdCx4ZmUsZ0x0LHlmZSxiTHQsdkx0LHdmZSx4THQseUx0LHdMdCxNJGEsTUx0PWYoKCk9Pnt3JGE9ImZhciIsZXBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1taW51cyIsaWNvbjpbNDQ4LDUxMixbNjE3NjcsIm1pbnVzLXNxdWFyZSJdLCJmMTQ2IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xMzYgMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sc0N0PWVwZSxpQ3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItY2hlY2siLGljb246WzQ0OCw1MTIsW10sImYyNzQiLCJNMzI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjg4YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6bTIzMC43IDY1LjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zIDEwLjcgNy44IDEzLjEgMjIuOCA1LjMgMzMuNUwyMTEuNCAzNzQuMWMtNC4xIDUuNy0xMC41IDkuMy0xNy41IDkuOC03IC41LTEzLjktMi0xOC44LTYuOWwtNTUuOS01NS45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzYgMzYgMTA1LjYtMTQ1LjJ6Il19LHRwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWtpc3MiLGljb246WzUxMiw1MTIsWzEyODUzNSwia2lzcyJdLCJmNTk2IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjQwIDBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTk2LTQ4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG9DdD10cGUsQWI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDQ4bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMTIgMCAwLTQ4LTExMiAwYy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2em0xNzYgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRMMTA0IDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNS42IDBjOC44LTguNiAxOS0xNS44IDMwLjItMjEuMSAuMS0uOSAuMi0xLjkgLjItMi45ek00NDggNDY0bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmwxMDEuNSAwYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsNTguNSA1OC41YzMgMyA0LjcgNy4xIDQuNyAxMS4zTDQ2NCA0NDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMjI0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NHoiXX0sbkN0PUFiLGxDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LWxlZnQiLGljb246WzUxMiw1MTIsW10sImYwYTUiLCJNNjQgMTI4bDE3Ny42IDBjLTEgNS4yLTEuNiAxMC41LTEuNiAxNmwwIDE2LTE3NiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0yMjQgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDQ4YzAgNTIuNS0zMy43IDk3LjEtODAuNyAxMTMuNCAuNS0zLjEgLjctNi4yIC43LTkuNCAwLTIwLTkuMi0zNy45LTIzLjYtNDkuNyA0LjktOSA3LjYtMTkuNCA3LjYtMzAuMyAwLTE1LjEtNS4zLTI5LTE0LTQwIDguOC0xMSAxNC0yNC45IDE0LTQwbDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwem0zMi04MGwwIDBjLTE4IDAtMzQuNiA2LTQ4IDE2TDY0IDgwQzI4LjcgODAgMCAxMDguNyAwIDE0NHMyOC43IDY0IDY0IDY0bDgyIDBjLTEuMyA1LjEtMiAxMC41LTIgMTYgMCAyNS4zIDE0LjcgNDcuMiAzNiA1Ny42LTIuNiA3LTQgMTQuNS00IDIyLjQgMCAyMCA5LjIgMzcuOSAyMy42IDQ5LjctNC45IDktNy42IDE5LjQtNy42IDMwLjMgMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGM5Mi44IDAgMTY4LTc1LjIgMTY4LTE2OGwwLTQ4YzAtOTIuOC03NS4yLTE2OC0xNjgtMTY4bC0yNCAwek0yNTYgNDAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDB6TTI0MCAyMjRjMCA1LjUgLjcgMTAuOSAyIDE2bC0zNCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDMyIDAgMCAxNnptMjQgNjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNCAweiJdfSxjQ3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem05OS4yIDI2NS42Yy04LTEwLjYtMjMtMTIuOC0zMy42LTQuOHMtMTIuOCAyMy00LjggMzMuNkwxNjIgMzQ0IDEyNC44IDM5My42Yy04IDEwLjYtNS44IDI1LjYgNC44IDMzLjZzMjUuNiA1LjggMzMuNi00LjhMMTkyIDM4NCAyMjAuOCA0MjIuNGM4IDEwLjYgMjMgMTIuOCAzMy42IDQuOHMxMi44LTIzIDQuOC0zMy42TDIyMiAzNDQgMjU5LjIgMjk0LjRjOC0xMC42IDUuOC0yNS42LTQuOC0zMy42cy0yNS42LTUuOC0zMy42IDQuOEwxOTIgMzA0IDE2My4yIDI2NS42eiJdfSxkQ3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZW52ZWxvcGUiLGljb246WzUxMiw1MTIsWzEyODM4Niw5OTkzLDYxNDQzXSwiZjBlMCIsIk02MS40IDY0QzI3LjUgNjQgMCA5MS41IDAgMTI1LjQgMCAxMjYuMyAwIDEyNy4xIC4xIDEyOEwwIDEyOCAwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1Ni0uMSAwYzAtLjkgLjEtMS43IC4xLTIuNiAwLTMzLjktMjcuNS02MS40LTYxLjQtNjEuNEw2MS40IDY0ek00NjQgMTkyLjNMNDY0IDM4NGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xOTEuNyAxNTQuOCAxMTcuNGMzMS40IDIzLjkgNzQuOSAyMy45IDEwNi40IDBMNDY0IDE5Mi4zek00OCAxMjUuNEM0OCAxMTggNTQgMTEyIDYxLjQgMTEybDM4OS4yIDBjNy40IDAgMTMuNCA2IDEzLjQgMTMuNCAwIDQuMi0yIDguMi01LjMgMTAuN0wyODAuMiAyNzEuNWMtMTQuMyAxMC44LTM0LjEgMTAuOC00OC40IDBMNTMuMyAxMzYuMWMtMy4zLTIuNS01LjMtNi41LTUuMy0xMC43eiJdfSxhcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWRvd24iLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtZG93biJdLCJmMTUwIiwiTTM4NCA0MzJjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMHptNjQtMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LHVDdD1hcGUscEN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRydWNrIixpY29uOls1NzYsNTEyLFsxMjg2NjYsOTk1MV0sImYwZDEiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMy4zIDBjMTAuNC0zNi45IDQ0LjQtNjQgODQuNy02NHM3NC4yIDI3LjEgODQuNyA2NGwxMDIuNiAwYzQuOS0xNy40IDE1LjEtMzIuNyAyOC43LTQzLjlMMzY4IDk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMy4zIDM2OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1NS40IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsNDAuNiA0MC42YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNTc2IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NHpNNDE2IDI1NmwxMTIgMCAwLTIzLjRjMC00LjItMS43LTguMy00LjctMTEuM2wtNDAuNi00MC42Yy0zLTMtNy4xLTQuNy0xMS4zLTQuN2wtNTUuNCAwIDAgODB6bTAgNDhsMCAzMi40YzIuNi0uMiA1LjMtLjQgOC0uNCA0MC4zIDAgNzQuMiAyNy4xIDg0LjcgNjRsMy4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODAtMTEyIDB6TTE1MiA0NjRhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0yNzIgMGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGZDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJiZWxsIixpY29uOls0NDgsNTEyLFsxMjgyNzYsNjE2MDJdLCJmMGYzIiwiTTIyNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkuN0MxMTguNiA0NS4zIDU2IDExNS40IDU2IDIwMGwwIDE0LjVjMCAzNy43LTEwIDc0LjctMjkgMTA3LjNMNS4xIDM1OS4yQzEuOCAzNjUgMCAzNzEuNSAwIDM3OC4yIDAgMzk5LjEgMTYuOSA0MTYgMzcuOCA0MTZsMzcyLjQgMGMyMC45IDAgMzcuOC0xNi45IDM3LjgtMzcuOCAwLTYuNy0xLjgtMTMuMy01LjEtMTlMNDIxIDMyMS43Yy0xOS0zMi42LTI5LTY5LjYtMjktMTA3LjNsMC0xNC41YzAtODQuNi02Mi42LTE1NC43LTE0NC0xNjYuM2wwLTkuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzkyLjQgMzY4bC0zMzYuOSAwIDEyLjktMjIuMUM5MS43IDMwNiAxMDQgMjYwLjYgMTA0IDIxNC41bDAtMTQuNWMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHMxMjAgNTMuNyAxMjAgMTIwbDAgMTQuNWMwIDQ2LjIgMTIuMyA5MS41IDM1LjUgMTMxLjRMMzkyLjQgMzY4ek0xNTYuMSA0NjRjOS45IDI4IDM2LjYgNDggNjcuOSA0OHM1OC0yMCA2Ny45LTQ4bC0xMzUuOCAweiJdfSxQYj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtZXNzYWdlIixpY29uOls1MTIsNTEyLFsiY29tbWVudC1hbHQiXSwiZjI3YSIsIk0yMDMuNyA1MTIuOXMwIDAgMCAwbC0zNy44IDI2LjdjLTcuMyA1LjItMTYuOSA1LjgtMjQuOSAxLjdTMTI4IDUyOSAxMjggNTIwbDAtNzItMzIgMGMtNTMgMC05Ni00My05Ni05NkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDMyMCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5NmwtMTIwLjQgMC05MS45IDY0Ljl6bTY0LjMtMTA0LjFjOC4xLTUuNyAxNy44LTguOCAyNy43LTguOEw0MTYgNDAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDgwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDIyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1NiAwYzEwLjQgMCAxOS4zIDYuNiAyMi42IDE1LjkgLjkgMi41IDEuNCA1LjIgMS40IDguMWwwIDQ5LjdjMzIuNy0yMy4xIDYzLjMtNDQuNyA5MS45LTY0Ljl6Il19LGhDdD1QYixycGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1kaXp6eSIsaWNvbjpbNTEyLDUxMixbImRpenp5Il0sImY1NjciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xMzQuMSAxNTMuOWwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHptMTkyIDBsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6TTI1NiAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LG1DdD1ycGUsc3BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLWRheXMiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci1hbHQiXSwiZjA3MyIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTM4NCA0MzJjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQtODggMCAwIDgwIDcyIDB6bTE2LTEyOGwwLTgwLTg4IDAgMCA4MCA4OCAwem0tMTM2IDBsMC04MC04MCAwIDAgODAgODAgMHptLTEyOCAwbDAtODAtODggMCAwIDgwIDg4IDB6TTQ4IDM1MmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw3MiAwIDAtODAtODggMHptMTM2IDBsMCA4MCA4MCAwIDAtODAtODAgMHpNMTIwIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAweiJdfSxnQ3Q9c3BlLGJDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LXVwIixpY29uOlszODQsNTEyLFs5NzU3XSwiZjBhNiIsIk02NCA2NGwwIDE3Ny42YzUuMi0xIDEwLjUtMS42IDE2LTEuNmwxNiAwIDAtMTc2YzAtOC44LTcuMi0xNi0xNi0xNlM2NCA1NS4yIDY0IDY0ek04MCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjRjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjBsNDggMGM1Mi41IDAgOTcuMS0zMy43IDExMy40LTgwLjctMy4xIC41LTYuMiAuNy05LjQgLjctMjAgMC0zNy45LTkuMi00OS43LTIzLjYtOSA0LjktMTkuNCA3LjYtMzAuMyA3LjYtMTUuMSAwLTI5LTUuMy00MC0xNC0xMSA4LjgtMjQuOSAxNC00MCAxNGwtNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC04MCAwek0wIDMyMGwwIDBjMC0xOCA2LTM0LjYgMTYtNDhMMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMHM2NCAyOC43IDY0IDY0bDAgODJjNS4xLTEuMyAxMC41LTIgMTYtMiAyNS4zIDAgNDcuMiAxNC43IDU3LjYgMzYgNy0yLjYgMTQuNS00IDIyLjQtNCAyMCAwIDM3LjkgOS4yIDQ5LjcgMjMuNiA5LTQuOSAxOS40LTcuNiAzMC4zLTcuNiAzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgOTIuOC03NS4yIDE2OC0xNjggMTY4bC00OCAwQzc1LjIgNTEyIDAgNDM2LjggMCAzNDRsMC0yNHptMzM2LTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek0xNjAgMjQwYzUuNSAwIDEwLjkgLjcgMTYgMmwwLTM0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMzIgMTYgMHptNjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyNHoiXX0sdkN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTcyIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDBjNC41IDAgOC45IDEuMyAxMi43IDMuNmw2NCA0MGM3IDQuNCAxMS4zIDEyLjEgMTEuMyAyMC40bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMC43LTQ2LjktMjkuMy0xNDUuMSAwYy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcybDEwNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDcyIDIwOGMtMzkuOCAwLTcyLTMyLjItNzItNzJTMzIuMiA2NCA3MiA2NGwyMDkuNiAwYzQ2LjcgMCA5MC45IDIxLjUgMTE5LjcgNTguM2w3OC40IDEwMC4xYzIwLjkgMjYuNyAzMi4zIDU5LjcgMzIuMyA5My43TDUxMiA0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDcuOWMwLTIzLjItNy44LTQ1LjgtMjIuMS02NC4xTDM2My41IDE1MS45Yy0xOS43LTI1LjItNDkuOS0zOS45LTgxLjktMzkuOUw3MiAxMTJ6Il19LHhDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtZnVsbCIsaWNvbjpbNTEyLDUxMixbMTI4OTk3LDEyODk5OCwxMjg5OTksMTI5ZTMsMTI5MDAxLDEyOTAwMiwxMjkwMDMsMTEwMzUsMTEwMzZdLCJmNDVjIiwiTTQ0OCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHoiXX0saXBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1wYXVzZSIsaWNvbjpbNTEyLDUxMixbNjIwOTIsInBhdXNlLWNpcmNsZSJdLCJmMjhiIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTQ0em0xMTIgMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTQ0eiJdfSx5Q3Q9aXBlLG9wZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYXJkLWRyaXZlIixpY29uOls0NDgsNTEyLFsxMjg0MzYsImhkZCJdLCJmMGEwIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNjJjNS4xLTEuMyAxMC41LTIgMTYtMmwzMjAgMGM1LjUgMCAxMC45IC43IDE2IDJsMC0xNjJjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek00OCAzMjBsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDMwNGMtOC44IDAtMTYgNy4yLTE2IDE2ek0wIDMyMEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC05NnptMjE2IDQ4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LHdDdD1vcGUsbnBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtemlwcGVyIixpY29uOlszODQsNTEyLFsiZmlsZS1hcmNoaXZlIl0sImYxYzYiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNODAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0wIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em02NCA1NmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4bDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0xNiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LE1DdD1ucGUsbHBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZsb3BweS1kaXNrIixpY29uOls0NDgsNTEyLFsxMjgxOTAsMTI4NDI2LCJzYXZlIl0sImYwYzciLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQyLjdjMC00LjItMS43LTguMy00LjctMTEuM0wzMjAgODYuNiAzMjAgMTc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05Ni0zMiAwem04MCAwbDAgODAgMTI4IDAgMC04MC0xMjggMHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNDIuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDQyOS4zIDEyOGMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDQ0OCA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNjAgMzIwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sa0N0PWxwZSxjcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNzUuOSA0MC43IDE0Mi40IDEwMS41IDE3OC43LTMuNi0xMC45LTUuNS0yMi42LTUuNS0zNC43bDAtMzcuNWMtMTAuMi0xMi42LTE4LjMtMjYuOS0yMy44LTQyLjQtNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC01LjUgMTUuNi0xMy42IDI5LjktMjMuOCA0Mi41bDAgMzcuNWMwIDEyLjEtMS45IDIzLjgtNS41IDM0LjcgNjAuOC0zNi4zIDEwMS41LTEwMi43IDEwMS41LTE3OC43ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMjUuOC03NS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0MTZsMC0zNy40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgMzcuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxTQ3Q9Y3BlLGRwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYW1lcmEiLGljb246WzUxMiw1MTIsWzYyMjU4LCJjYW1lcmEtYWx0Il0sImYwMzAiLCJNMTkzLjEgMzJjLTE4LjcgMC0zNi4yIDkuNC00Ni42IDI0LjlMMTIwLjUgOTYgNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC01Ni41IDAtMjYtMzkuMUMzNTUuMSA0MS40IDMzNy42IDMyIDMxOC45IDMyTDE5My4xIDMyem0tNi43IDUxLjZjMS41LTIuMiA0LTMuNiA2LjctMy42bDEyNS43IDBjMi43IDAgNS4yIDEuMyA2LjcgMy42bDMzLjIgNDkuOGM0LjUgNi43IDExLjkgMTAuNyAyMCAxMC43bDY5LjMgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw2OS4zIDBjOCAwIDE1LjUtNCAyMC0xMC43bDMzLjItNDkuOHpNMjU2IDM4NGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTE5MiAyNzJhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSx6Q3Q9ZHBlLHVwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3RhcnMiLGljb246WzUxMiw1MTIsWzEyOTMyMSwiZ3Jpbi1zdGFycyJdLCJmNTg3IiwiTTAgMjU2YzAtMjkuNiA1LTU3LjkgMTQuMi04NC40bDE3LjMgMTYuOS00LjYgMjdjLTQuMiAyNC40IDUuNiA0Ni4yIDIyIDU5LjkgOS44IDEwNS44IDk4LjggMTg4LjcgMjA3LjEgMTg4LjdzMTk3LjQtODIuOCAyMDcuMS0xODguNmMxNi40LTEzLjcgMjYuMS0zNS40IDIyLTU5LjlsLTQuNi0yNyAxNy4zLTE2LjljOS4yIDI2LjQgMTQuMiA1NC44IDE0LjIgODQuNCAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZ6TTI1NiA0OGMtMTUuMiAwLTMwIDEuNi00NC4zIDQuN0wyMDEuNCAzMS44QzE5NyAyMyAxOTEuMSAxNS44IDE4NC4yIDEwLjIgMjA3IDMuNiAyMzEuMSAwIDI1NiAwczQ5IDMuNiA3MS44IDEwLjJDMzIwLjkgMTUuOCAzMTUgMjMgMzEwLjYgMzEuOEwzMDAuMyA1Mi43QzI4NiA0OS42IDI3MS4yIDQ4IDI1NiA0OHpNMzcyLjIgMzAyLjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTM1My43IDUzLjFjNS45LTExLjkgMjIuOC0xMS45IDI4LjcgMGwyMy4zIDQ3LjIgNTIgNy42YzEzLjEgMS45IDE4LjQgMTggOC45IDI3LjNsLTM3LjcgMzYuNyA4LjkgNTEuOGMyLjIgMTMuMS0xMS41IDIzLTIzLjIgMTYuOUwzNjggMjE2IDMyMS41IDI0MC41Yy0xMS43IDYuMi0yNS41LTMuOC0yMy4yLTE2LjlsOC45LTUxLjgtMzcuNy0zNi43Yy05LjUtOS4zLTQuMy0yNS40IDguOS0yNy4zbDUyLTcuNiAyMy4zLTQ3LjJ6bS0xOTUuMyAwbDIzLjMgNDcuMiA1MiA3LjZjMTMuMSAxLjkgMTguNCAxOCA4LjkgMjcuM2wtMzcuNyAzNi43IDguOSA1MS44YzIuMiAxMy4xLTExLjUgMjMtMjMuMiAxNi45TDE0NCAyMTYgOTcuNSAyNDAuNWMtMTEuNyA2LjItMjUuNS0zLjgtMjMuMi0xNi45bDguOS01MS44LTM3LjctMzYuN2MtOS41LTkuMy00LjMtMjUuNCA4LjktMjcuM2w1Mi03LjYgMjMuMy00Ny4yYzUuOS0xMS45IDIyLjgtMTEuOSAyOC43IDB6Il19LENDdD11cGUsX0N0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImV5ZSIsaWNvbjpbNTc2LDUxMixbMTI4MDY1XSwiZjA2ZSIsIk0yODggODBDMjIyLjggODAgMTY5LjIgMTA5LjYgMTI4LjEgMTQ3LjcgODkuNiAxODMuNSA2MyAyMjYgNDkuNCAyNTYgNjMgMjg2IDg5LjYgMzI4LjUgMTI4LjEgMzY0LjMgMTY5LjIgNDAyLjQgMjIyLjggNDMyIDI4OCA0MzJzMTE4LjgtMjkuNiAxNTkuOS02Ny43QzQ4Ni40IDMyOC41IDUxMyAyODYgNTI2LjYgMjU2IDUxMyAyMjYgNDg2LjQgMTgzLjUgNDQ3LjkgMTQ3LjcgNDA2LjggMTA5LjYgMzUzLjIgODAgMjg4IDgwek05NS40IDExMi42QzE0Mi41IDY4LjggMjA3LjIgMzIgMjg4IDMyczE0NS41IDM2LjggMTkyLjYgODAuNmM0Ni44IDQzLjUgNzguMSA5NS40IDkzIDEzMS4xIDMuMyA3LjkgMy4zIDE2LjcgMCAyNC42LTE0LjkgMzUuNy00Ni4yIDg3LjctOTMgMTMxLjEtNDcuMSA0My43LTExMS44IDgwLjYtMTkyLjYgODAuNlMxNDIuNSA0NDMuMiA5NS40IDM5OS40Yy00Ni44LTQzLjUtNzguMS05NS40LTkzLTEzMS4xLTMuMy03LjktMy4zLTE2LjcgMC0yNC42IDE0LjktMzUuNyA0Ni4yLTg3LjcgOTMtMTMxLjF6TTI4OCAzMzZjNDQuMiAwIDgwLTM1LjggODAtODAgMC0yOS42LTE2LjEtNTUuNS00MC02OS4zLTEuNCA1OS43LTQ5LjYgMTA3LjktMTA5LjMgMTA5LjMgMTMuOCAyMy45IDM5LjcgNDAgNjkuMyA0MHptLTc5LjYtODguNGMyLjUgLjMgNSAuNCA3LjYgLjQgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yLjYtLjItNS4xLS40LTcuNi0zNy40IDMuOS02Ny4yIDMzLjctNzEuMSA3MS4xem00NS42LTExNWMxMC44LTMgMjIuMi00LjUgMzMuOS00LjUgOC44IDAgMTcuNSAuOSAyNS44IDIuNiAuMyAuMSAuNSAuMSAuOCAuMiA1Ny45IDEyLjIgMTAxLjQgNjMuNyAxMDEuNCAxMjUuMiAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOC02MS42IDAtMTEzLTQzLjUtMTI1LjItMTAxLjQtMS44LTguNi0yLjgtMTcuNS0yLjgtMjYuNiAwLTExIDEuNC0yMS44IDQtMzIgLjItLjcgLjMtMS4zIC41LTEuOSAxMS45LTQzLjQgNDYuMS03Ny42IDg5LjUtODkuNXoiXX0scHBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA0MS44IDEyLjMgODAuNyAzMy42IDExMy4zIDguMiA0NC43IDQ3LjMgNzguNiA5NC4zIDc4LjcgMjQuNyAxMC4zIDUxLjcgMTYgODAuMSAxNiAxMTQuOSAwIDIwOC05My4xIDIwOC0yMDh6TTI4OCAzNTJjLTUuNSAwLTEwLjkgLjYtMTYgMS44IDAtLjYgMC0xLjIgMC0xLjggMC0xNi4yLTQtMzEuNS0xMS4xLTQ0LjkgOC43LTIgMTcuOC0zLjEgMjcuMS0zLjEgNDAuMiAwIDc1LjcgMTkuOCA5Ny41IDUwIDcuNyAxMC44IDUuMyAyNS44LTUuNSAzMy41cy0yNS44IDUuMy0zMy41LTUuNWMtMTMuMS0xOC4yLTM0LjQtMzAtNTguNS0zMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE4NS40IDI3Ni44YzYuNSA3LjggMTIuNiAxNi4xIDE4LjMgMjQuNiA5IDEzLjQgMjAuMyAzMC4yIDIwLjMgNDcuNCAwIDI4LjMtMjEuNSA1MS4yLTQ4IDUxLjJzLTQ4LTIyLjktNDgtNTEuMmMwLTE3LjIgMTEuMi0zNCAyMC4zLTQ3LjQgNS43LTguNSAxMS45LTE2LjcgMTguMy0yNC42IDIuNC0yLjkgNS43LTQuOCA5LjQtNC44czcgMS45IDkuNCA0Ljh6Il19LFRDdD1wcGUsZnBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNoYXJlLWZyb20tc3F1YXJlIixpY29uOls1NzYsNTEyLFs2MTUwOSwic2hhcmUtc3F1YXJlIl0sImYxNGQiLCJNNDI1LjUgN2MtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzODQuNSAxNC4zIDM4NC41IDI0bDAgNTYtNDggMGMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCA0Ni43IDIwLjcgODAuNCA0My42IDEwMy40IDguMSA4LjIgMTYuNSAxNC45IDI0LjMgMjAuNCA5LjIgNi41IDIxLjcgNS43IDMwLjEtMS45czEwLjItMjAgNC41LTI5LjhjLTMuNi02LjMtNi41LTE0LjktNi41LTI2LjcgMC0zNi4yIDI5LjMtNjUuNSA2NS41LTY1LjVsNDYuNSAwIDAgNTZjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDI1LjUgN3ptNyA5N2wwLTIyLjEgNzguMSA3OC4xLTc4LjEgNzguMSAwLTIyLjFjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzM4IDE5MmMtNTAuOSAwLTkzLjkgMzMuNS0xMDguMyA3OS42LTMuMy05LjQtNS4yLTE5LjgtNS4yLTMxLjYgMC02MS45IDUwLjEtMTEyIDExMi0xMTJsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHptLTMyMC04Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNCAweiJdfSxMQ3Q9ZnBlLGhwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJub3RlLXN0aWNreSIsaWNvbjpbNDQ4LDUxMixbNjIwMjYsInN0aWNreS1ub3RlIl0sImYyNDkiLCJNMjQwIDQzMkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTc2LTg4IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgODh6TTM4MC4xIDMyMEwyODggNDEyLjEgMjg4IDM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw2OC4xIDB6TTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5Ny41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDI5LjMgMzM4LjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w0NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNnoiXX0sJEN0PWhwZSxtcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1iYWNrLWZpc3QiLGljb246WzM4NCw1MTIsWyJoYW5kLXJvY2siXSwiZjI1NSIsIk05NiA0MDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA0MDB6TTczLjIgMzUybDY0LjYgMC03OS41LTg4LjNDNTEuNyAyNTYuMyA0OCAyNDYuOCA0OCAyMzYuOUw0OCAyMDRjMC0xNi4xIDExLjktMjkuNSAyNy40LTMxLjcgMTEuOC0xLjcgMjAuNi0xMS44IDIwLjYtMjMuOEw5NiA3MmMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3LjIgMCAxMy42IDMuMSAxOCA4LjEgNC42IDUuMiAxMS4xIDguMSAxOCA4LjFzMTMuNC0zIDE4LTguMWM0LjQtNSAxMC44LTguMSAxOC04LjEgOC41IDAgMTUuOSA0LjQgMjAuMiAxMS4xIDYuOSAxMC43IDIwLjkgMTQuMiAzMiA4IDMuNS0xLjkgNy40LTMuMSAxMS44LTMuMSAxMC42IDAgMTkuNyA2LjkgMjIuOCAxNi42IDMuOCAxMS43IDE1LjkgMTguNyAyOCAxNiAxLjctLjQgMy40LS42IDUuMi0uNiAxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDkyLjJjMCAxNC40LTMuNSAyOC41LTEwLjIgNDEuMmwtNTIuMiA5OC42IDU0LjMgMCA0MC4zLTc2LjJjMTAuNC0xOS42IDE1LjgtNDEuNSAxNS44LTYzLjZsMC05Mi4yYzAtMzguNC0zMC4xLTY5LjgtNjguMS03MS45LTEyLjktMTkuMy0zNC45LTMyLjEtNTkuOS0zMi4xLTUuNyAwLTExLjIgLjctMTYuNSAxLjktMTIuNy0xMS4xLTI5LjMtMTcuOS00Ny41LTE3LjktMTMuMSAwLTI1LjQgMy41LTM2IDkuNi0xMC42LTYuMS0yMi45LTkuNi0zNi05LjYtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA1OC43QzE5LjcgMTQzIDAgMTcxLjIgMCAyMDRsMCAzMi45YzAgMjEuNyA4IDQyLjcgMjIuNiA1OC45TDczLjIgMzUyeiJdfSxEQ3Q9bXBlLEFDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1xdWVlbiIsaWNvbjpbNTEyLDUxMixbOTgxOV0sImY0NDUiLCJNMzI1LjMgOTAuOGM5LjEtNC44IDIwLjYtMy4zIDI4LjIgNC4zbDM5LjggMzkuOCAzLjcgMy4zYzkuMSA3LjEgMjAuOSAxMCAzMi40IDcuN2w0Ni40LTkuMyAzLjUtLjRjOC0uNCAxNS44IDMuMiAyMC42IDkuOCA1LjUgNy42IDYuMSAxNy42IDEuNiAyNS44bC0xMTIuNiAyMDIuNiA1MS41IDcwLjkgMS44IDIuN2M0IDYuNiA2LjIgMTQuMiA2LjIgMjIgMCAyMy4zLTE4LjkgNDIuMS00Mi4xIDQyLjFsLTI5OS44IDBjLTIxLjggMC0zOS44LTE2LjYtNDEuOS0zNy44bC0uMi00LjMgLjEtMy4zYy42LTcuNyAzLjQtMTUuMSA3LjktMjEuNGw1MS41LTcwLjktMTEyLjUtMjAyLjZjLTQuNS04LjItMy45LTE4LjMgMS42LTI1LjhzMTQuOS0xMS4yIDI0LjEtOS40bDQ2LjQgOS4zYzEzLjEgMi42IDI2LjctMS41IDM2LjEtMTAuOUwxNTkuNSA5NSAxNjMgOTIuMmM4LjYtNS44IDIwLjEtNS42IDI4LjUgMS4xbDQwIDMyIDIuOCAyLjFjMTQuNCA5LjYgMzMuNSA4LjkgNDcuMi0yLjFsNDAtMzIgMy44LTIuNXpNMTY0LjcgNDAwbC00Ni42IDY0IDI3Ni43IDAtNDYuNi02NC0xODMuNiAwek0zMTEuNSAxNjIuOGMtMzAuMSAyNC4xLTcyLjEgMjUuNi0xMDMuOCA0LjVsLTYuMi00LjUtMjMuMy0xOC42LTI0LjYgMjQuNmMtMTkuOCAxOS44LTQ3LjcgMjguOS03NS4xIDI0LjhsODguMSAxNTguNSAxNzkuOCAwIDg4LTE1OC41Yy0yNS43IDMuOC01MS43LTMuOS03MS4xLTIxbC00LTMuNy0yNC42LTI0LjYtMjMuMiAxOC42ek0yNTYuNSA3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6Il19LGdwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdGVhcnMiLGljb246WzY0MCw1MTIsWzEyODUxNCwiZ3Jpbi10ZWFycyJdLCJmNTg4IiwiTTUwNC4xIDM1M0M1MTIuOSAzNjcuMiA1MjUuMyAzNzkgNTM5LjggMzg3LjIgNDk1LjEgNDYyIDQxMy40IDUxMiAzMjAgNTEyUzE0NC45IDQ2MiAxMDAuMiAzODcuMmMxNC42LTguMiAyNi45LTIwIDM1LjgtMzQuMyAzNC45IDY2IDEwNC4yIDExMSAxODQuMSAxMTFzMTQ5LjItNDUgMTg0LjEtMTExem0xNi40LTE1Mi41QzQ5Ni4yIDExMi42IDQxNS43IDQ4IDMyMCA0OFMxNDMuOCAxMTIuNiAxMTkuNSAyMDAuNWMtMTAuNi00LjgtMjIuNy02LjgtMzUuNC01bC0xMy40IDEuOUM5Ny4yIDg0LjMgMTk4LjggMCAzMjAgMFM1NDIuOCA4NC4zIDU2OS4zIDE5Ny40bC0xMy40LTEuOWMtMTIuNy0xLjgtMjQuOCAuMi0zNS40IDV6TTQ1NS44IDMyMGMtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3Ljh6TTIxMiAyMDhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHptMTg4LTI4Yy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4ek02NDAgMzAwLjZjMCAyOC40LTIzIDUxLjQtNTEuNCA1MS40LTI1LjYgMC00Ny4zLTE4LjgtNTAuOS00NC4xTDUzMSAyNjEuMWMtMS41LTEwLjYgNy41LTE5LjYgMTguMS0xOC4xbDQ2LjcgNi43YzI1LjMgMy42IDQ0LjEgMjUuMyA0NC4xIDUwLjl6bS02NDAgMGMwLTI1LjYgMTguOC00Ny4zIDQ0LjEtNTAuOUw5MC45IDI0M2MxMC42LTEuNSAxOS42IDcuNSAxOC4xIDE4LjFsLTYuNyA0Ni43Qzk4LjcgMzMzLjIgNzcgMzUyIDUxLjQgMzUyIDIzIDM1MiAwIDMyOSAwIDMwMC42eiJdfSxQQ3Q9Z3BlLGJwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJwZW4tdG8tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZWRpdCJdLCJmMDQ0IiwiTTQ0MSA1OC45TDQ1My4xIDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDQyNCAxMzQuMSAzNzcuOSA4OCA0MDcgNTguOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHpNMjA5LjggMjU2LjJMMzQ0IDEyMS45IDM5MC4xIDE2OCAyNTUuOCAzMDIuMmMtMi45IDIuOS02LjUgNS0xMC40IDYuMWwtNTguNSAxNi43IDE2LjctNTguNWMxLjEtMy45IDMuMi03LjUgNi4xLTEwLjR6TTM3My4xIDI1TDE3NS44IDIyMi4yYy04LjcgOC43LTE1IDE5LjQtMTguMyAzMS4xbC0yOC42IDEwMGMtMi40IDguNC0uMSAxNy40IDYuMSAyMy42czE1LjIgOC41IDIzLjYgNi4xbDEwMC0yOC42YzExLjgtMy40IDIyLjUtOS43IDMxLjEtMTguM0w0ODcgMTM4LjljMjguMS0yOC4xIDI4LjEtNzMuNyAwLTEwMS44TDQ3NC45IDI1QzQ0Ni44LTMuMSA0MDEuMi0zLjEgMzczLjEgMjV6TTg4IDY0QzM5LjQgNjQgMCAxMDMuNCAwIDE1MkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OGwyNzIgMGM0OC42IDAgODgtMzkuNCA4OC04OGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDIyLjEtMTcuOSA0MC00MCA0MEw4OCA0NjRjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtMjcyYzAtMjIuMSAxNy45LTQwIDQwLTQwbDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDY0eiJdfSxFQ3Q9YnBlLHZwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbS1zd2VhdCIsaWNvbjpbNTc2LDUxMixbMTI4NTE3LCJncmluLWJlYW0tc3dlYXQiXSwiZjU4MyIsIk01MzAuMiAxNS45Yy04LjgtMTAuNy0xOC41LTIwLjktMjktMzAtMy0yLjYtNy40LTIuNi0xMC40IDAtMTAuNSA5LjEtMjAuMSAxOS4zLTI5IDMwLTE0LjcgMTcuOC0yOS44IDQwLjEtMjkuOCA2NC4xIDAgMzYuNCAyNy42IDY0IDY0IDY0czY0LTI3LjYgNjQtNjRjMC0yNC0xNS4yLTQ2LjMtMjkuOC02NC4xem0tMTMyIDguOUMzNjQuOCA4LjkgMzI3LjQgMCAyODggMCAxNDYuNiAwIDMyIDExNC42IDMyIDI1NlMxNDYuNiA1MTIgMjg4IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NmMwLTI0LjQtMy40LTQ4LTkuOC03MC40LTExLjkgNC4yLTI0LjcgNi40LTM4LjIgNi40LTMuNCAwLTYuOC0uMS0xMC4yLS40IDYuNiAyMC4zIDEwLjIgNDEuOSAxMC4yIDY0LjQgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzgwIDM3MC45IDgwIDI1NiAxNzMuMSA0OCAyODggNDhjMzQuOCAwIDY3LjUgOC41IDk2LjMgMjMuNiAxLjQtMTcuNCA2LjktMzMuMSAxMy44LTQ2Ljh6TTQyMy44IDMyMGM0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NnpNMTgwIDIwOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHptMTg4LTI4YzE1LjUgMCAyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHoiXX0sSUN0PXZwZSx4cGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvY2siLGljb246WzUxMiw1MTIsWzEyODMzOSwiY2xvY2stZm91ciJdLCJmMDE3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHpNMjMyIDEyMGwwIDEzNmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMiAyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxOQ3Q9eHBlLHlwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWxhdWdoLXdpbmsiLGljb246WzUxMiw1MTIsWyJsYXVnaC13aW5rIl0sImY1OWMiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sUkN0PXlwZSxPQ3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGFwZXItcGxhbmUiLGljb246WzU3Niw1MTIsWzYxOTEzXSwiZjFkOCIsIk0yOTAuNSAyODcuN0w0OTEuNCA4Ni45IDM1OSA0NTYuMyAyOTAuNSAyODcuN3pNNDU3LjQgNTNMMjU2LjYgMjUzLjggODggMTg1LjMgNDU3LjQgNTN6TTM4LjEgMjE2LjhsMjA1LjggODMuNiA4My42IDIwNS44YzUuMyAxMy4xIDE4LjEgMjEuNyAzMi4zIDIxLjcgMTQuNyAwIDI3LjgtOS4yIDMyLjgtMjMuMUw1NzAuNiA4YzMuNS05LjggMS0yMC42LTYuMy0yOHMtMTguMi05LjgtMjgtNi4zTDM5LjQgMTUxLjdjLTEzLjkgNS0yMy4xIDE4LjEtMjMuMSAzMi44IDAgMTQuMiA4LjYgMjcgMjEuNyAzMi4zeiJdfSxGQ3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMzc4LjkgODBjLTI3LjMgMC01MyAxMy4xLTY5IDM1LjJsLTM0LjQgNDcuNmMtNC41IDYuMi0xMS43IDkuOS0xOS40IDkuOXMtMTQuOS0zLjctMTkuNC05LjlsLTM0LjQtNDcuNmMtMTYtMjIuMS00MS43LTM1LjItNjktMzUuMi00NyAwLTg1LjEgMzguMS04NS4xIDg1LjEgMCA0OS45IDMyIDk4LjQgNjguMSAxNDIuMyA0MS4xIDUwIDkxLjQgOTQgMTI1LjkgMTIwLjMgMy4yIDIuNCA3LjkgNC4yIDE0IDQuMnMxMC44LTEuOCAxNC00LjJjMzQuNS0yNi4zIDg0LjgtNzAuNCAxMjUuOS0xMjAuMyAzNi4yLTQzLjkgNjguMS05Mi40IDY4LjEtMTQyLjMgMC00Ny0zOC4xLTg1LjEtODUuMS04NS4xek0yNzEgODcuMWMyNS0zNC42IDY1LjItNTUuMSAxMDcuOS01NS4xIDczLjUgMCAxMzMuMSA1OS42IDEzMy4xIDEzMy4xIDAgNjguNi00Mi45IDEyOC45LTc5LjEgMTcyLjgtNDQuMSA1My42LTk3LjMgMTAwLjEtMTMzLjggMTI3LjktMTIuMyA5LjQtMjcuNSAxNC4xLTQzLjEgMTQuMXMtMzAuOC00LjctNDMuMS0xNC4xQzE3Ni40IDQzOCAxMjMuMiAzOTEuNSA3OS4xIDMzOCA0Mi45IDI5NC4xIDAgMjMzLjcgMCAxNjUuMSAwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMWwxNSAyMC43IDE1LTIwLjd6Il19LG1lZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDQ4IDAgMC02NCAzODkuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnpNODAgNDAwbDAtMjU2IDM1Ni40IDAtNDguMiAxMDguNWMtNS41IDEyLjQtNS41IDI2LjYgMCAzOUw0MzYuNCA0MDAgODAgNDAweiJdfSxCQ3Q9bWVlLEhDdD1tZWUscUN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb25lIixpY29uOls1MTIsNTEyLFtdLCJmMjRkIiwiTTI4OCA0NjRMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OC00OCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTQ4LTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZ6TTIyNCAzMDRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDB6bS02NC0xNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjR6Il19LFZDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXItb3BlbiIsaWNvbjpbNTc2LDUxMixbMTI4MTk0LDEyODQ0OSw2MTcxN10sImYwN2MiLCJNOTcuNSA0MDBsNTAtMTYwIDM3OS40IDAtNTAgMTYwLTM3OS40IDB6bTE5MC43IDQ4TDQ3NyA0NDhjMjEgMCAzOS42LTEzLjYgNDUuOC0zMy43bDUwLTE2MGM5LjctMzAuOS0xMy40LTYyLjMtNDUuOC02Mi4zbC0zNzkuNCAwYy0yMSAwLTM5LjYgMTMuNi00NS44IDMzLjdMODAuMiAyOTQuNCA4MC4yIDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzguNyAwYzMuNSAwIDYuOCAxLjEgOS42IDMuMkwyODIuOSAxMTJjMTMuOCAxMC40IDMwLjcgMTYgNDggMTZsMTE3LjMgMGM4LjggMCAxNiA3LjIgMTYgMTZsNDggMGMwLTM1LjMtMjguNy02NC02NC02NEwzMzAuOSA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjczLjMgNDQuOEMyNjIuMiAzNi41IDI0OC44IDMyIDIzNC45IDMyTDk2LjIgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAweiJdfSxqQ3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LW1pbmltaXplIixpY29uOls1MTIsNTEyLFsxMjg0NjldLCJmMmQxIiwiTTAgNDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDQ0OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LFVDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdGFyLWhhbGYiLGljb246WzU3Niw1MTIsWzYxNzMxXSwiZjA4OSIsIk0yODUuNy0xNS44YzEwLjggMi42IDE4LjQgMTIuMiAxOC40IDIzLjNsMCAzODcuMWMwIDktNS4xIDE3LjMtMTMuMSAyMS40TDE0My44IDQ5MWMtOCA0LjEtMTcuNyAzLjMtMjUtMnMtMTEtMTQuMi05LjYtMjMuMkwxMzQuNCAzMDUuOSAyMCAxOTEuNGMtNi40LTYuNC04LjYtMTUuOC01LjgtMjQuNHMxMC4xLTE0LjkgMTkuMS0xNi4zTDE5My4xIDEyNS4zIDI1OC44LTMuM2M1LTkuOSAxNi4yLTE1IDI3LTEyLjR6TTI1Ni4xIDEwNy40TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgOTIuMi00Ni45IDAtMjcyLjZ6Il19LFdDdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJhbGFybS1jbG9jayIsaWNvbjpbNTEyLDUxMixbOTIwMF0sImYzNGUiLCJNNDAyLjYgNTAuMmMtNS40IDEuNy0xMS4zIDEuOC0xNi4yLS45LTUuOC0zLjItMTEuOC02LjItMTcuOC04LjktMTAuNC00LjctMTMuNy0xOC4zLTQuMS0yNC42IDE1LTkuOSAzMy0xNS43IDUyLjMtMTUuNyA1Mi42IDAgOTUuMiA0Mi42IDk1LjIgOTUuMiAwIDEzLjItMi43IDI1LjgtNy42IDM3LjMtNC41IDEwLjUtMTguNCA5LjgtMjQuOSAuNC0zLjgtNS41LTcuOC0xMC44LTEyLTE2LTMuNS00LjQtNC41LTEwLjItMy44LTE1LjggLjItMS45IC40LTMuOSAuNC01LjkgMC0yNi4xLTIxLjItNDcuMi00Ny4yLTQ3LjItNC45IDAtOS43IC44LTE0LjIgMi4yek0zMi41IDEzMi45Yy02LjUgOS40LTIwLjUgMTAuMS0yNC45LS40LTQuOS0xMS41LTcuNi0yNC4xLTcuNi0zNy4zIDAtNTIuNiA0Mi42LTk1LjIgOTUuMi05NS4yIDE5LjMgMCAzNy4zIDUuOCA1Mi4zIDE1LjcgOS42IDYuMyA2LjMgMTkuOS00LjEgMjQuNi02LjEgMi44LTEyIDUuNy0xNy44IDguOS00LjkgMi43LTEwLjkgMi42LTE2LjIgLjktNC41LTEuNC05LjItMi4yLTE0LjItMi4yLTI2LjEgMC00Ny4yIDIxLjItNDcuMiA0Ny4yIDAgMiAuMSA0IC40IDUuOSAuNyA1LjYtLjMgMTEuNC0zLjggMTUuOC00LjIgNS4yLTguMiAxMC41LTEyIDE2ek00MzIgMjg4YTE3NiAxNzYgMCAxIDAgLTM1MiAwIDE3NiAxNzYgMCAxIDAgMzUyIDB6TTM5Ni41IDQ2Mi41QzM1OC4xIDQ5My40IDMwOS4yIDUxMiAyNTYgNTEycy0xMDIuMS0xOC42LTE0MC41LTQ5LjVMNzMgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQyLjUtNDIuNUM1MC42IDM5MC4xIDMyIDM0MS4yIDMyIDI4OCAzMiAxNjQuMyAxMzIuMyA2NCAyNTYgNjRTNDgwIDE2NC4zIDQ4MCAyODhjMCA1My4yLTE4LjYgMTAyLjEtNDkuNSAxNDAuNUw0NzMgNDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQyLjUtNDIuNXpNMjgwIDE4NGwwIDk0LjEgNDEgNDFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDgtNDhjLTQuNS00LjUtNy0xMC42LTctMTdsMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sR0N0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im5ld3NwYXBlciIsaWNvbjpbNTEyLDUxMixbMTI4MjQwXSwiZjFlYSIsIk0xNjggODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzA0YzAgOC40LTEuNCAxNi41LTQuMSAyNEw0NDAgNDMyYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMzA0YzAtMTMuMy0xMC43LTI0LTI0LTI0TDE2OCA4MHpNNzIgNDgwYy0zOS44IDAtNzItMzIuMi03Mi03MkwwIDExMkMwIDk4LjcgMTAuNyA4OCAyNCA4OHMyNCAxMC43IDI0IDI0bDAgMjk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMDRjMC0zOS44IDMyLjItNzIgNzItNzJsMjcyIDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAzMDRjMCAzOS44LTMyLjIgNzItNzIgNzJMNzIgNDgwek0xOTIgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OHptMTUyIDI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTIxNiAyNTZsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDgwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZ2VlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OC00OCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3MmMwLTM1LjMtMjguNy02NC02NC02NGwtNDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE3NiAwek0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjcyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MC0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjcyYzAtOC44IDcuMi0xNiAxNi0xNmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNzJ6TTExMiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNOTYgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMyMCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2LTExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxZQ3Q9Z2VlLEtDdD1nZWUsd3BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1zdG9wIixpY29uOls1MTIsNTEyLFs2MjA5NCwic3RvcC1jaXJjbGUiXSwiZjI4ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2MCAxOTJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNDggMTEybDAtOTYgOTYgMCAwIDk2LTk2IDB6Il19LFpDdD13cGUsWEN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im9iamVjdC11bmdyb3VwIixpY29uOls2NDAsNTEyLFtdLCJmMjQ4IiwiTTQ4LjIgNjYuOGMtLjEtLjgtLjItMS43LS4yLTIuNWwwLS4yYzAtOC44IDcuMi0xNiAxNi0xNiAuOSAwIDEuOSAuMSAyLjggLjIgNy41IDEuMyAxMy4yIDcuOSAxMy4yIDE1LjggMCA4LjgtNy4yIDE2LTE2IDE2LTcuOSAwLTE0LjUtNS43LTE1LjgtMTMuMnpNMCA2NGMwIDI2LjkgMTYuNSA0OS45IDQwIDU5LjNsMCAxMDUuM2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI2LjkgMCA0OS45LTE2LjUgNTkuMy00MGwyMDEuMyAwYzkuNSAyMy41IDMyLjUgNDAgNTkuMyA0MCAzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0xMDUuM2MyMy41LTkuNSA0MC0zMi41IDQwLTU5LjMgMC0zNS4zLTI4LjctNjQtNjQtNjQtMjYuOSAwLTQ5LjkgMTYuNS01OS4zIDQwTDEyMy4zIDQwQzExMy45IDE2LjUgOTAuOSAwIDY0IDAgMjguNyAwIDAgMjguNyAwIDY0em0zNjggMGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0zMjQuNyA4OGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDEwNS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMjAxLjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0xMDUuM2MxNi02LjUgMjguOS0xOS4zIDM1LjMtMzUuM2wyMDEuMyAwek0zODQgMjcyYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpNODAgMjg4YzAgNy45LTUuNyAxNC41LTEzLjIgMTUuOC0uOCAuMS0xLjcgLjItMi41IC4ybC0uMiAwYy04LjggMC0xNi03LjItMTYtMTYgMC0uOSAuMS0xLjkgLjItMi44IDEuMy03LjUgNy45LTEzLjIgMTUuOC0xMy4yIDguOCAwIDE2IDcuMiAxNiAxNnptNDM2LjctNDBjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAxMDUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTIwMS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMjAuNy00OCAwIDAgMjAuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI2LjkgMCA0OS45LTE2LjUgNTkuMy00MGwyMDEuMyAwYzkuNSAyMy41IDMyLjUgNDAgNTkuMyA0MCAzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0xMDUuM2MyMy41LTkuNSA0MC0zMi41IDQwLTU5LjMgMC0zNS4zLTI4LjctNjQtNjQtNjQtMjYuOSAwLTQ5LjkgMTYuNS01OS4zIDQwbC01Mi43IDAgMCA5LjZjMTAuNyAxMC45IDE5LjEgMjMuOSAyNC42IDM4LjRsMjggMHptNTkuMy04YTE2IDE2IDAgMSAxIDAtMzIgMTYgMTYgMCAxIDEgMCAzMnpNMjcxLjggNDUwLjdhMTYgMTYgMCAxIDEgLTMxLjUtNS41IDE2IDE2IDAgMSAxIDMxLjUgNS41em0zMDEuNSAxM2MtNy41LTEuMy0xMy4yLTcuOS0xMy4yLTE1LjggMC04LjggNy4yLTE2IDE2LTE2IDcuOSAwIDE0LjUgNS43IDE1LjggMTMuMmwwIC4xYy4xIC45IC4yIDEuOCAuMiAyLjcgMCA4LjgtNy4yIDE2LTE2IDE2LS45IDAtMS45LS4xLTIuOC0uMnoiXX0sUUN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbW1lbnQiLGljb246WzUxMiw1MTIsWzEyODQ4OSw2MTY2OV0sImYwNzUiLCJNNTEuOSAzODQuOUMxOS4zIDM0NC42IDAgMjk0LjQgMCAyNDAgMCAxMDcuNSAxMTQuNiAwIDI1NiAwUzUxMiAxMDcuNSA1MTIgMjQwIDM5Ny40IDQ4MCAyNTYgNDgwYy0zNi41IDAtNzEuMi03LjItMTAyLjYtMjBMMzcgNTA5LjljLTMuNyAxLjYtNy41IDIuMS0xMS41IDIuMS0xNC4xIDAtMjUuNS0xMS40LTI1LjUtMjUuNSAwLTQuMyAxLjEtOC41IDMuMS0xMi4ybDQ4LjgtODkuNHptMzcuMy0zMC4yYzEyLjIgMTUuMSAxNC4xIDM2LjEgNC44IDUzLjJsLTE4IDMzLjEgNTguNS0yNS4xYzExLjgtNS4xIDI1LjItNS4yIDM3LjEtLjMgMjUuNyAxMC41IDU0LjIgMTYuNCA4NC4zIDE2LjQgMTE3LjggMCAyMDgtODguOCAyMDgtMTkyUzM3My44IDQ4IDI1NiA0OCA0OCAxMzYuOCA0OCAyNDBjMCA0Mi44IDE1LjEgODIuNCA0MS4yIDExNC43eiJdfSxKQ3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtcGF3biIsaWNvbjpbMzg0LDUxMixbOTgyM10sImY0NDMiLCJNMTkyLTMyYzY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwIDAgMjcuNi05LjMgNTIuOS0yNC45IDczLjIgOS44IDMgMTYuOSAxMi4xIDE2LjkgMjIuOCAwIDEzLjMtMTAuNyAyNC0yNCAyNGwtLjYgMCAyNC42IDE2MCA1My42IDY3YzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw2My40IDUxMmMtMjYuMiAwLTQ3LjQtMjEuMi00Ny40LTQ3LjQgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNmw1My42LTY3IDI0LjYtMTYwLS42IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTAuOCA3LjEtMTkuOCAxNi45LTIyLjgtMTUuNi0yMC4zLTI0LjktNDUuNi0yNC45LTczLjIgMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6TTExNS45IDQwMGwtNTEuMiA2NCAyNTQuNyAwLTUxLjItNjQtMTUyLjIgMHptMzYuMi0xODQuN2wtMjEgMTM2LjcgMTIxLjkgMC0yMS0xMzYuNy0xLjEtNy4zLTc3LjYgMC0xLjEgNy4zek0xOTIgMTZhNzIgNzIgMCAxIDAgMCAxNDQgNzIgNzIgMCAxIDAgMC0xNDR6Il19LGVfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1wbHVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcxIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjg4YzAtOC44LTcuMi0xNi0xNi0xNmwtMjY0IDB6bTEwNCA2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDAgMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4LTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSx0X3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xpcGJvYXJkIixpY29uOlszODQsNTEyLFsxMjgyMDNdLCJmMzI4IiwiTTIzMiA5NmwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0em0wIDQ4YzM3LjEgMCA2Ny42LTI4IDcxLjYtNjRMMzIwIDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDM1MmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2LjQgMGM0IDM2IDM0LjUgNjQgNzEuNiA2NGw4MCAwek0yOTEuOSAzMkMyNzkgMTIuNyAyNTcgMCAyMzIgMEwxNTIgMGMtMjUgMC00NyAxMi43LTU5LjkgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NGwtMjguMSAweiJdfSxhX3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidGh1bWJzLWRvd24iLGljb246WzUxMiw1MTIsWzEyODA3OCw2MTU3Nl0sImYxNjUiLCJNMzYwIDMybDcuNCAuNGMzNSAzLjYgNjIuNSAzMi4yIDY0LjQgNjcuNyAxNy44IDExLjggMzAuMSAzMS40IDMyIDUzLjlsLjIgNmMwIDUuNy0uNyAxMS4yLTIgMTYuNSAxMC4yIDExLjUgMTYuOCAyNi4zIDE3LjggNDIuN2wuMiA0LjhjMCAxMy4yLTMuNiAyNS40LTkuOCAzNiA0LjkgOC40IDguMiAxNy45IDkuMyAyOGwuNCA4YzAgMzcuMy0yOC4zIDY3LjktNjQuNiA3MS42bC03LjQgLjQtMTA5LjcgMCAxNC4xIDMwIDMuMSA3LjZjMTIuNSAzNS43LTEuOCA3NS41LTM0LjIgOTVsLTcuMiAzLjljLTM3LjUgMTcuNi04MS43IDMuNi0xMDIuNi0zMS4ybC0uNi0uOS0yLjctNS0uNi0xLjItMzAuMS02NGMtOS40IDE3LjgtMjggMjkuOS00OS41IDI5LjlsLTMyIDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMTUyYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDMyIDBjMTIuNCAwIDIzLjkgNC4xIDMzLjIgMTEgMTMuMi0yMS40IDMyLTM5LjQgNTUtNTEuNmwxMi4yLTYuNSAuNy0uMyA2LjYtMy4yIC43LS4zIDcuMS0zYzE2LjctNi42IDM0LjUtOS45IDUyLjYtOS45TDM2MCAzMnpNMjU1LjkgODBjLTEyIDAtMjMuOSAyLjMtMzUuMSA2LjZsLTQuNyAyLTUuMyAyLjYgMCAwLTEyLjIgNi41Yy0yOS4yIDE1LjUtNDguMyA0NC45LTUwLjcgNzcuNmwtLjIgOCAwIDExMi45IC4xIDQuMWMuNSA4LjIgMi41IDE2LjIgNiAyMy43bDU2LjggMTIwLjkgMi4xIDMuOGM4LjQgMTMuNyAyNiAxOS4xIDQwLjggMTIuMmwyLjktMS42YzEzLTcuOCAxOC43LTIzLjcgMTMuNy0zOGwtMS4yLTMtMzAuMi02NC4yYy0zLjUtNy40LTIuOS0xNi4xIDEuNS0yMy4xczEyLTExLjEgMjAuMi0xMS4xbDE0Ny41IDAgMi40LS4xYzExLjMtMS4xIDIwLjMtMTAuMSAyMS40LTIxLjRsLjEtMi41YzAtNy4xLTMuMS0xMy41LTguMi0xOC01LjItNC42LTguMi0xMS4xLTguMi0xOHMzLTEzLjQgOC4yLTE4YzQuNC0zLjkgNy40LTkuMyA4LTE1LjNsLjItMi43YzAtOC40LTQuNC0xNS45LTExLjItMjAuMi0xMC43LTYuOS0xNC4yLTIwLjktOC0zMiAxLjUtMi42IDIuNS01LjYgMi45LTguNmwuMi0zLjJjMC0xMC42LTYuOS0xOS42LTE2LjYtMjIuOC0xMS43LTMuOC0xOC43LTE1LjktMTYtMjggLjItLjkgLjMtMS44IC40LTIuNmwuMi0yLjZjMC0xMi40LTkuNS0yMi42LTIxLjYtMjMuOEwzNjAgODAgMjU1LjkgODB6TTU2IDE0NGMtNC40IDAtOCAzLjYtOCA4bDAgMjI0YzAgNC40IDMuNiA4IDggOGwzMiAwYzQuNCAwIDgtMy42IDgtOGwwLTIyNGMwLTQuNC0zLjYtOC04LThsLTMyIDB6Il19LHJfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpZC1iYWRnZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJjMSIsIk0yNTYgNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM4NGMwLTguOC03LjItMTYtMTYtMTZsLTY0IDB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMTYwIDMyMGw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNkw5NiA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHoiXX0sTXBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jaGVjayIsaWNvbjpbNDQ4LDUxMixbOTc0NSw5OTg5LDYxNTEwLCJjaGVjay1zcXVhcmUiXSwiZjE0YSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwem0yMzAuNyA4OS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjExLjQgMzY2LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSxzX3Q9TXBlLGlfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1iaXNob3AiLGljb246WzMyMCw1MTIsWzk4MjFdLCJmNDNhIiwiTTIxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDgxLjggOTguMWMyNC43IDI5LjYgMzguMiA2NyAzOC4yIDEwNS42IDAgNDMuNy0xNy40IDg1LjctNDguMyAxMTYuNmwtOC42IDguNiA0Ni41IDU4LjJjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDQ3LjQgNTEyQzIxLjIgNTEyIDAgNDkwLjggMCA0NjQuNiAwIDQ1My45IDMuNyA0NDMuNCAxMC40IDQzNWw0Ni41LTU4LjItOC42LTguNkMxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMjAgNDggMTA0IDQ4QzkwLjcgNDggODAgMzcuMyA4MCAyNFM5MC43IDAgMTA0IDBMMjE2IDB6TTk0LjQgNDA2LjhsLTQ1LjcgNTcuMiAyMjIuNyAwLTQ1LjctNTcuMS01LjUtNi45LTEyMC4zIDAtNS41IDYuOHpNMTU2LjkgNzguN0w3NS4xIDE3Ni44Yy0xNS4zIDE4LjQtMjQuNiA0MS0yNi43IDY0LjdMNDggMjUxLjdjMCAzMSAxMi4zIDYwLjcgMzQuMiA4Mi43bDE3LjcgMTcuNyAxMjAuMiAwYzYuMi02LjIgMTIuMS0xMi4xIDE3LjgtMTcuNyAyMS45LTIxLjkgMzQuMi01MS42IDM0LjItODIuNmwtLjQtMTAuMmMtMS41LTE3LTYuNy0zMy4zLTE1LjItNDhMMjA5IDI0MWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1MS44LTUxLjgtNjMuNy03Ni41LTMuMS0zLjgtMy4xIDMuOHoiXX0sb190PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4iLGljb246WzUxMiw1MTIsWzYyMTM1XSwiZjJiNiIsIk01MTIgNDE2YzAgMzUuMy0yOC41IDY0LTYzLjkgNjRMNjQgNDgwYy0zNS40IDAtNjQtMjguNy02NC02NEwwIDE2NGMuMS0xNS41IDcuOC0zMCAyMC41LTM4LjhMMjA2LTIuN2MzMC4xLTIwLjcgNjkuOC0yMC43IDk5LjkgMEw0OTEuNSAxMjUuMmMxMi44IDguOCAyMC40IDIzLjMgMjAuNSAzOC44bDAgMjUyek02NCA0MzJsMzg0LjEgMGM4LjggMCAxNS45LTcuMSAxNS45LTE2bDAtMTkxLjctMTU0LjggMTE3LjRjLTMxLjQgMjMuOS03NC45IDIzLjktMTA2LjQgMEw0OCAyMjQuMyA0OCA0MTZjMCA4LjkgNy4yIDE2IDE2IDE2ek00NjMuNiAxNjQuNEwyNzguNyAzNi44Yy0xMy43LTkuNC0zMS43LTkuNC00NS40IDBMNDguNCAxNjQuNCAyMzEuOCAzMDMuNWMxNC4zIDEwLjggMzQuMSAxMC44IDQ4LjQgMEw0NjMuNiAxNjQuNHoiXX0sVTg9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MTUzMiwidGltZXMtY2lyY2xlIiwieG1hcmstY2lyY2xlIl0sImYwNTciLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxuX3Q9VTgsbF90PVU4LGtwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtdXAiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtdXAiXSwiZjE1MSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMjI0IDY0YzYuNyAwIDEzIDIuOCAxNy42IDcuN2wxMDQgMTEyYzYuNSA3IDguMiAxNy4yIDQuNCAyNS45UzMzNy41IDMyMCAzMjggMzIwbC0yMDggMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43eiJdfSxjX3Q9a3BlLGRfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWltYWdlIixpY29uOlszODQsNTEyLFsxMjg0NDNdLCJmMWM1IiwiTTE3NiA0OEw2NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDAtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzE2LjEgMTYwTDIyNCA2Ny45IDIyNCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwxOTcuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTI1OS40IDQzMmwtMTM0LjggMGMtMTUuOCAwLTI4LjYtMTIuOC0yOC42LTI4LjYgMC02LjQgMi4xLTEyLjUgNi0xNy42bDY3LjYtODYuOUMxNzUgMjkyIDE4My4zIDI4OCAxOTIgMjg4czE3IDQgMjIuNCAxMC45TDI4MiAzODUuOWMzLjkgNSA2IDExLjIgNiAxNy42IDAgMTUuOC0xMi44IDI4LjYtMjguNiAyOC42ek0xMTIgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sU3BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1yaWdodCJdLCJmMTUyIiwiTTQwMCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwek0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0zMjAgMjU2YzAgNi43LTIuOCAxMy03LjcgMTcuNmwtMTEyIDEwNGMtNyA2LjUtMTcuMiA4LjItMjUuOSA0LjRTMTYwIDM2OS41IDE2MCAzNjBsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6Il19LHVfdD1TcGUsa2VlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN1biIsaWNvbjpbNTc2LDUxMixbOTcyOF0sImYxODUiLCJNMjg4LTMyYzggMCAxNS40IDQgMTkuOSAxMC42bDU4LjggODcuNCAxMDMuNC0yMC4yYzcuOC0xLjUgMTUuOSAuOSAyMS42IDYuNnM4LjEgMTMuOCA2LjYgMjEuNkw0NzggMTc3LjMgNTY1LjQgMjM2LjFDNTcyIDI0MC41IDU3NiAyNDggNTc2IDI1NnMtNCAxNS40LTEwLjYgMTkuOUw0NzggMzM0LjcgNDk4LjIgNDM4YzEuNSA3LjgtLjkgMTUuOS02LjYgMjEuNnMtMTMuOCA4LjEtMjEuNiA2LjZMMzY2LjcgNDQ2IDMwNy45IDUzMy40QzMwMy40IDU0MCAyOTYgNTQ0IDI4OCA1NDRzLTE1LjQtNC0xOS45LTEwLjZMMjA5LjMgNDQ2IDEwNS45IDQ2Ni4yYy03LjggMS41LTE1LjktLjktMjEuNi02LjZzLTguMS0xMy44LTYuNi0yMS42TDk4IDMzNC43IDEwLjYgMjc1LjlDNCAyNzEuNCAwIDI2NCAwIDI1NnM0LTE1LjQgMTAuNi0xOS45TDk4IDE3Ny4zIDc3LjggNzMuOWMtMS41LTcuOCAuOS0xNS45IDYuNi0yMS42czEzLjgtOC4xIDIxLjYtNi42bDEwMy4zIDIwLjIgNTguOC04Ny40IDEuOC0yLjNDMjc0LjQtMjkgMjgxLTMyIDI4OC0zMnptLTQ3LjggMTM4Yy01LjQgOC0xNSAxMi0yNC41IDEwLjJsLTg0LTE2LjQgMTYuNCA4NGMxLjggOS41LTIuMiAxOS4xLTEwLjIgMjQuNUw2NyAyNTYgMTM4IDMwMy44YzggNS40IDEyIDE1IDEwLjIgMjQuNWwtMTYuNCA4NCA4NC0xNi40IDMuNS0uNGM4LjMtLjQgMTYuMyAzLjYgMjEgMTAuNmw0Ny44IDcxIDQ3LjgtNzEgMi4yLTIuOGM1LjYtNi4xIDE0LTkgMjIuMy03LjNsODQgMTYuNC0xNi40LTg0Yy0xLjgtOS41IDIuMi0xOS4xIDEwLjItMjQuNWw3MS00Ny44LTcxLTQ3LjhjLTgtNS40LTEyLTE1LTEwLjItMjQuNWwxNi40LTg0LTg0IDE2LjRjLTkuNSAxLjgtMTkuMS0yLjItMjQuNS0xMC4ybC00Ny44LTcxLTQ3LjggNzF6TTI4OCAzNzZhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0wLTE5MmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHoiXX0scF90PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlIixpY29uOls0NDgsNTEyLFtdLCJmMDNlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xMjggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMzYgNzJjOC41IDAgMTYuNCA0LjUgMjAuNyAxMS44bDgwIDEzNmM0LjQgNy40IDQuNCAxNi42IC4xIDI0LjFTMzUyLjYgMzg0IDM0NCAzODRsLTI0MCAwYy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDE3LjIgMjQuNiA0Ni41LTc5YzQuMy03LjMgMTIuMi0xMS44IDIwLjctMTEuOHoiXX0sZl90PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZ2h0YnVsYiIsaWNvbjpbMzg0LDUxMixbMTI4MTYxXSwiZjBlYiIsIk0yOTYuNSAyOTEuMUMzMjEgMjY1LjIgMzM2IDIzMC40IDMzNiAxOTIgMzM2IDExMi41IDI3MS41IDQ4IDE5MiA0OFM0OCAxMTIuNSA0OCAxOTJjMCAzOC40IDE1IDczLjIgMzkuNSA5OS4xIDIxLjMgMjIuNCA0NC45IDU0IDUzLjMgOTIuOWwxMDIuNCAwYzguNC0zOSAzMi03MC41IDUzLjMtOTIuOXptMzQuOCAzM0MzMDcuNyAzNDkgMjg4IDM3OS40IDI4OCA0MTMuN2wwIDE4LjNjMCA0NC4yLTM1LjggODAtODAgODBsLTMyIDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTguM0M5NiAzNzkuNCA3Ni4zIDM0OSA1Mi43IDMyNC4xIDIwIDI4OS43IDAgMjQzLjIgMCAxOTIgMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyYzAgNTEuMi0yMCA5Ny43LTUyLjcgMTMyLjF6TTE0NCAxODRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQweiJdfSxiZWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LGhfdD1iZWUsbV90PWJlZSx6cGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg0IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGdfdD16cGUsYl90PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1hcCIsaWNvbjpbNTEyLDUxMixbMTI4NTA2LDYyMDcyXSwiZjI3OSIsIk01MTIgNDhjMC04LjMtNC4zLTE2LTExLjMtMjAuNHMtMTUuOS00LjgtMjMuMy0xLjFMMzUyLjUgODguMSAxODAgMjkuNGMtMTMuNy00LjctMjguNy0zLjgtNDEuOSAyLjNMMTMuOCA5MC4zQzUuNCA5NC4yIDAgMTAyLjcgMCAxMTJMMCA0NjRjMCA4LjIgNC4yIDE1LjkgMTEuMSAyMC4zczE1LjYgNC45IDIzLjEgMS40bDEyNy4zLTU5LjkgMTcwLjcgNTYuOWMxMy43IDQuNiAyOC41IDMuNyA0MS42LTIuNWwxMjQuNC01OC41YzguNC00IDEzLjgtMTIuNCAxMy44LTIxLjdsMC0zNTJ6TTE0NCA4Mi4xbDAgMjk5LTk2IDQ1LjIgMC0yOTkgOTYtNDUuMnptNDggMzAzLjNsMC0zMDEuMSAxMjggNDMuNSAwIDMwMC4zLTEyOC00Mi43ek0zNjggMTM0bDk2LTQ3LjQgMCAyOTguMi05NiA0NS4yIDAtMjk2eiJdfSx2X3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTY0IDQ0OGwwLTE3Ny42YzUuMiAxIDEwLjUgMS42IDE2IDEuNmwxNiAwIDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2ek04MCAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsNDggMGM1Mi41IDAgOTcuMSAzMy43IDExMy40IDgwLjctMy4xLS41LTYuMi0uNy05LjQtLjctMjAgMC0zNy45IDkuMi00OS43IDIzLjYtOS00LjktMTkuNC03LjYtMzAuMy03LjYtMTUuMSAwLTI5IDUuMy00MCAxNC0xMS04LjgtMjQuOS0xNC00MC0xNGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC04MCAwek0wIDE5MmwwIDBjMCAxOCA2IDM0LjYgMTYgNDhsMCAyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTgyYzUuMSAxLjMgMTAuNSAyIDE2IDIgMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2IDcgMi42IDE0LjUgNCAyMi40IDQgMjAgMCAzNy45LTkuMiA0OS43LTIzLjYgOSA0LjkgMTkuNCA3LjYgMzAuMyA3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OEMzODQgNzUuMiAzMDguOCAwIDIxNiAwTDE2OCAwQzc1LjIgMCAwIDc1LjIgMCAxNjhsMCAyNHptMzM2IDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0ek0xNjAgMjcyYzUuNSAwIDEwLjktLjcgMTYtMmwwIDM0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzIgMTYgMHptNjQtMjRsMC00MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yNHoiXX0sQ3BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoLWJsYW5rIixpY29uOls1MTIsNTEyLFsxMjg1NjYsIm1laC1ibGFuayJdLCJmNWE0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZhMjU2IDI1NiAwIDEgMSAtNTEyIDAgMjU2IDI1NiAwIDEgMSA1MTIgMHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSx4X3Q9Q3BlLF9wZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNzQuMSAzOC44IDEzOS4yIDk3LjEgMTc2LS43LTUuMi0xLjEtMTAuNi0xLjEtMTZsMC01My41Yy0xMC4yLTEyLjYtMTguMy0yNi45LTIzLjgtNDIuNC00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTUuNSAxNS42LTEzLjYgMjkuOS0yMy44IDQyLjVsMCA1My41YzAgNS40LS40IDEwLjgtMS4xIDE2IDU4LjQtMzYuOCA5Ny4xLTEwMS45IDk3LjEtMTc2em00OCAwYzAgMTE2LjMtNzcuNiAyMTQuNi0xODMuOSAyNDUuNy0xOS41IDE2LjQtNDQuNiAyNi4zLTcyLjEgMjYuM3MtNTIuNi05LjktNzIuMS0yNi4zQzc3LjYgNDcwLjYgMCAzNzIuMyAwIDI1NiAwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYgMjA4bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0seV90PV9wZSx2ZWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNMzg3IDIyOC4zYy00LjQtMi44LTcuNi03LTkuMi0xMS45cy0xLjQtMTAuMiAuNS0xNUw0MTEuNiAxMThjLTE5LjktMjIuNC00NC42LTQwLjUtNzIuNC01Mi43bC02OS4xIDU3LjZjLTQgMy4zLTkgNS4xLTE0LjEgNS4xcy0xMC4yLTEuOC0xNC4xLTUuMUwxNzIuOCA2NS4zYy0yNy44IDEyLjItNTIuNSAzMC4zLTcyLjQgNTIuN2wzMy40IDgzLjRjMS45IDQuOCAyLjEgMTAuMSAuNSAxNXMtNC45IDkuMS05LjIgMTEuOUw0OSAyNzYuMmMzIDMwLjkgMTIuNyA1OS43IDI3LjYgODUuMmw4OS43LTZjNS4yLS4zIDEwLjMgMS4xIDE0LjUgNC4yczcuMiA3LjQgOC40IDEyLjVsMjIgODcuMmMxNC40IDMuMiAyOS40IDQuOCA0NC44IDQuOHMzMC4zLTEuNyA0NC44LTQuOGwyMi04Ny4yYzEuMy01IDQuMi05LjQgOC40LTEyLjVzOS4zLTQuNSAxNC41LTQuMmw4OS43IDZjMTUtMjUuNCAyNC43LTU0LjMgMjcuNi04NS4xTDM4NyAyMjguM3pNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyem02MiAyMjFjOC40IDYuMSAxMS45IDE2LjkgOC43IDI2LjhsLTE4LjMgNTYuM2MtMy4yIDkuOS0xMi40IDE2LjYtMjIuOCAxNi42bC01OS4yIDBjLTEwLjQgMC0xOS42LTYuNy0yMi44LTE2LjZsLTE4LjMtNTYuM2MtMy4yLTkuOSAuMy0yMC43IDguNy0yNi44bDQ3LjktMzQuOGM4LjQtNi4xIDE5LjgtNi4xIDI4LjIgMEwzMTggMjIxeiJdfSx3X3Q9dmVlLE1fdD12ZWUsVHBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LGtfdD1UcGUsTHBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlciIsaWNvbjpbNTEyLDUxMixbMTI4MTkzLDEyODQ0Nyw2MTcxNiwiZm9sZGVyLWJsYW5rIl0sImYwN2IiLCJNNjQgNDAwbDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MGMwLTguOC03LjItMTYtMTYtMTZsLTE0OS4zIDBjLTE3LjMgMC0zNC4yLTUuNi00OC0xNkwyMTIuMyA4My4yYy0yLjgtMi4xLTYuMS0zLjItOS42LTMuMkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNnptMzg0IDQ4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxTX3Q9THBlLHpfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNODAgMTkyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwIDQ3LjEgMCA4OS40IDIwLjQgMTE4LjcgNTIuNyAxMC42LTMuMSAyMS44LTQuNyAzMy4zLTQuNyA2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDEzLjItMi4xIDI1LjktNi4xIDM3LjggNDEuNiAyMS4xIDcwLjEgNjQuMyA3MC4xIDExNC4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC01Ni44IDMyLjktMTA1LjkgODAuNy0xMjkuNC0uNC00LjgtLjctOS43LS43LTE0LjZ6TTI0MCA4MGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA4LjQgLjkgMTYuNiAyLjcgMjQuNSAyLjcgMTIuMS00LjMgMjQuMy0xNi4xIDI4LjEtMzguNyAxMi40LTY2LjYgNDguNy02Ni42IDkxLjQgMCA1MyA0MyA5NiA5NiA5NmwzMDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM3LjQtMjUuNy02OC45LTYwLjUtNzcuNi03LjUtMS45LTEzLjYtNy4yLTE2LjUtMTQuM3MtMi4xLTE1LjIgMi0yMS43YzctMTEuMSAxMS0yNC4yIDExLTM4LjMgMC0zOS44LTMyLjItNzItNzItNzItMTEuMSAwLTIxLjUgMi41LTMwLjggNi45LTEwLjUgNS0yMy4xIDEuNy0yOS44LTcuOC0yMC4zLTI4LjYtNTMuNy00Ny4xLTkxLjMtNDcuMXoiXX0sQ190PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LCRwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1MTgsImdyaW4tc3F1aW50Il0sImY1ODUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42em0tMjQ5LjYtMTQzYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LF9fdD0kcGUsRHBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk00MDYuNSAzOTkuNkMzODcuNCAzNTIuOSAzNDEuNSAzMjAgMjg4IDMyMGwtNjQgMGMtNTMuNSAwLTk5LjQgMzIuOS0xMTguNSA3OS42LTM1LjYtMzcuMy01Ny41LTg3LjktNTcuNS0xNDMuNiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU1LjctMjEuOSAxMDYuMi01Ny41IDE0My42em0tNDAuMSAzMi43QzMzNC40IDQ1Mi40IDI5Ni42IDQ2NCAyNTYgNDY0cy03OC40LTExLjYtMTEwLjUtMzEuN2M3LjMtMzYuNyAzOS43LTY0LjMgNzguNS02NC4zbDY0IDBjMzguOCAwIDcxLjIgMjcuNiA3OC41IDY0LjN6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTI3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6bS04OC00MGE4OCA4OCAwIDEgMCAxNzYgMCA4OCA4OCAwIDEgMCAtMTc2IDB6Il19LFRfdD1EcGUsQXBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlY3RhbmdsZS1saXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1hbHQiXSwiZjAyMiIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE2MCAzMjBhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTA0LTU2bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxMX3Q9QXBlLFBwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kIixpY29uOls1MTIsNTEyLFsxMjkzMDYsOTk5NSwiaGFuZC1wYXBlciJdLCJmMjU2IiwiTTI1Ni41IDBjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNi03LTIuNi0xNC41LTQtMjIuNC00LTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTY1LjUtMi43LTIuN2MtMjUtMjUtNjUuNS0yNS05MC41IDBzLTI1IDY1LjUgMCA5MC41TDEwNyA0MzdjNDggNDggMTEzLjEgNzUgMTgxIDc1bDE2LjUgMGMxLjUgMCAzLS4xIDQuNS0uNCA5MS43LTYuMiAxNjUtNzkuNCAxNzEuMS0xNzEuMSAuMy0xLjUgLjQtMyAuNC00LjVsMC0xNzZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNS41IDAtMTAuOSAuNy0xNiAybDAtMmMwLTM1LjMtMjguNy02NC02NC02NC03LjkgMC0xNS40IDEuNC0yMi40IDQtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNnptLTE2IDk2LjFsMC0uMSAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTcyLjljLS4xIC42LS4xIDEuMy0uMiAxLjktMy40IDY5LjctNTkuMyAxMjUuNi0xMjkgMTI5LS42IDAtMS4zIC4xLTEuOSAuMkwyODggNDY0QzIzMi45IDQ2NCAxODAgNDQyLjEgMTQxIDQwMy4xTDUzLjIgMzE1LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw0My43IDQzLjdjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4ybDAtMjIzLjRjMC04LjggNy4yLTE2IDE2LTE2IDguOCAwIDE2IDcuMSAxNiAxNS45bDAgMTM2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNS45eiJdfSwkX3Q9UHBlLERfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNMTcxLjUgMzguOEMxOTIuMyA0IDIzNi41LTEwIDI3NCA3LjZsNy4yIDMuOEMzMTYgMzIuMyAzMzAgNzYuNSAzMTIuNCAxMTRsMCAwLTE0LjEgMzAgMTA5LjcgMCA3LjQgLjRjMzYuMyAzLjcgNjQuNiAzNC40IDY0LjYgNzEuNiAwIDEzLjItMy42IDI1LjQtOS44IDM2IDYuMSAxMC42IDkuNyAyMi44IDkuOCAzNiAwIDE4LjMtNi45IDM0LjgtMTggNDcuNSAxLjMgNS4zIDIgMTAuOCAyIDE2LjUgMCAyNS4xLTEyLjkgNDctMzIuMiA1OS45LTEuOSAzNS41LTI5LjQgNjQuMi02NC40IDY3LjdsLTcuNCAuNC0xMDQuMSAwYy0xOCAwLTM1LjktMy40LTUyLjYtOS45bC03LjEtMy0uNy0uMy02LjYtMy4yLS43LS4zLTEyLjItNi41Yy0xMi4zLTYuNS0yMy4zLTE0LjctMzIuOS0yNC4xLTQuMSAyNi45LTI3LjMgNDcuNC01NS4zIDQ3LjRsLTMyIDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjAwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDMyIDBjMTAuOCAwIDIwLjkgMy4xIDI5LjUgOC41bDUwLjEtMTA2LjUgLjYtMS4yIDIuNy01IC42LS45ek01NiAxOTJjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAwek0yNTMuNiA1MWMtMTQuOC02LjktMzIuMy0xLjYtNDAuNyAxMmwtMi4yIDQtNTYuOCAxMjAuOWMtMy41IDcuNS01LjUgMTUuNS02IDIzLjdsLS4xIDQuMiAwIDExMi45IC4yIDcuOWMyLjQgMzIuNyAyMS40IDYyLjEgNTAuNyA3Ny43bDExLjUgNi4xIDYuMyAzLjFjMTIuNCA1LjYgMjUuOCA4LjUgMzkuNCA4LjVsMTA0LjEgMCAyLjQtLjFjMTIuMS0xLjIgMjEuNi0xMS41IDIxLjYtMjMuOWwtLjItMi42Yy0uMS0uOS0uMi0xLjctLjQtMi42LTIuNy0xMi4xIDQuMy0yNC4yIDE2LTI4IDkuNy0zLjEgMTYuNi0xMi4yIDE2LjYtMjIuOCAwLTQuMy0xLjEtOC4yLTMuMS0xMS44LTYuMy0xMS4xLTIuOC0yNS4yIDgtMzIgNi44LTQuMyAxMS4yLTExLjggMTEuMi0yMC4yIDAtNy4xLTMuMS0xMy41LTguMi0xOC01LjItNC42LTguMi0xMS4xLTguMi0xOHMzLTEzLjQgOC4yLTE4YzUuMS00LjUgOC4yLTEwLjkgOC4yLTE4bC0uMS0yLjRjLTEuMS0xMS4zLTEwLjEtMjAuMy0yMS40LTIxLjRsLTIuNC0uMS0xNDcuNSAwYy04LjIgMC0xNS44LTQuMi0yMC4yLTExLjEtNC40LTYuOS01LTE1LjctMS41LTIzLjFMMjY5IDkzLjZjNy0xNSAxLjQtMzIuNy0xMi41LTQxTDI1My42IDUxeiJdfSxBX3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYnVpbGRpbmciLGljb246WzM4NCw1MTIsWzEyNzk3MCw2MTY4N10sImYxYWQiLCJNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsODAgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM4NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptOTYgNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sUF90PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTM4LjdjMCAxMy44LTQuNSAyNy4zLTEyLjggMzguNGwtMzUuMiA0Ni45IDAgMTEyIDQwLjggNjguMWM0LjcgNy44IDcuMiAxNi43IDcuMiAyNS44IDAgMjcuNy0yMi40IDUwLjEtNTAuMSA1MC4xTDUwLjEgNTEyYy0yNy43IDAtNTAuMS0yMi40LTUwLjEtNTAuMSAwLTkuMSAyLjUtMTggNy4yLTI1LjhMNDggMzY4IDQ4IDI1NiAxMi44IDIwOS4xQzQuNSAxOTggMCAxODQuNSAwIDE3MC43TDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwek00OC4zIDQ2MC44bC0uMyAxLjFjMCAxLjIgMSAyLjEgMi4xIDIuMWwyODMuOCAwYzEuMiAwIDIuMS0xIDIuMS0yLjFsLS4zLTEuMS0zNi41LTYwLjgtMjE0LjQgMC0zNi41IDYwLjh6TTQ4IDE3MC43YzAgMi42IC42IDUuMSAxLjggNy40bDEuNCAyLjIgMCAwIDM1LjIgNDYuOSA5LjYgMTIuOCAwIDExMiAxOTIgMCAwLTExMiA5LjYtMTIuOCAzNS4yLTQ2LjkgMCAwIDEuNC0yLjJjMS4yLTIuMyAxLjgtNC44IDEuOC03LjRsMC0xMjIuNy02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMTIyLjd6Il19LEVwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcXVlc3Rpb24iLGljb246WzUxMiw1MTIsWzYyMTA4LCJxdWVzdGlvbi1jaXJjbGUiXSwiZjA1OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni04MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LEVfdD1FcGUsSV90PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUiLGljb246WzM4NCw1MTIsWzEyODE5NiwxMjg0NTksNjE0NjJdLCJmMTViIiwiTTE3NiA0OEw2NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDAtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzE2LjEgMTYwTDIyNCA2Ny45IDIyNCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwxOTcuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LElwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC1jcnkiLGljb246WzUxMiw1MTIsWzEyODU1Nywic2FkLWNyeSJdLCJmNWIzIiwiTTQwMCA0MDYuMUw0MDAgMjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTUyLjZjLTI4LjcgMTUtNjEuNCAyMy40LTk2IDIzLjRzLTY3LjMtOC41LTk2LTIzLjRMMTYwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExOC4xQzcyLjYgMzY4LjIgNDggMzE1IDQ4IDI1NiA0OCAxNDEuMSAxNDEuMSA0OCAyNTYgNDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU5LTI0LjYgMTEyLjItNjQgMTUwLjF6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxOX3Q9SXBlLFJfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0zMiAxMzZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxOcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS10aXJlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTU1LCJ0aXJlZCJdLCJmNWM4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LjUgNjQuM0MxOTYuMSAzMDIuMSAyMjMuOCAyODggMjU2IDI4OHM1OS45IDE0LjEgNzkuNSAzMi4zYzE5IDE3LjggMzIuNSA0MS43IDMyLjUgNjMuNyAwIDUuNC0yLjcgMTAuNC03LjIgMTMuNHMtMTAuMiAzLjQtMTUuMiAxLjNsLTE3LjItNy41Yy0yMi44LTEwLTQ3LjUtMTUuMS03Mi40LTE1LjFzLTQ5LjYgNS4yLTcyLjQgMTUuMWwtMTcuMiA3LjVjLTQuOSAyLjItMTAuNyAxLjctMTUuMi0xLjNzLTcuMi04LTcuMi0xMy40YzAtMjIgMTMuNS00NS45IDMyLjUtNjMuN3pNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sT190PU5wZSxGX3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNCIsIk00NDggMTI4bC0xNzcuNiAwYzEgNS4yIDEuNiAxMC41IDEuNiAxNmwwIDE2IDE3NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2ek0yMjQgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwwIDQ4YzAgNTIuNSAzMy43IDk3LjEgODAuNyAxMTMuNC0uNS0zLjEtLjctNi4yLS43LTkuNCAwLTIwIDkuMi0zNy45IDIzLjYtNDkuNy00LjktOS03LjYtMTkuNC03LjYtMzAuMyAwLTE1LjEgNS4zLTI5IDE0LTQwLTguOC0xMS0xNC0yNC45LTE0LTQwbDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MHpNMTkyIDY0bDAgMGMxOCAwIDM0LjYgNiA0OCAxNmwyMDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtODIgMGMxLjMgNS4xIDIgMTAuNSAyIDE2IDAgMjUuMy0xNC43IDQ3LjItMzYgNTcuNiAyLjYgNyA0IDE0LjUgNCAyMi40IDAgMjAtOS4yIDM3LjktMjMuNiA0OS43IDQuOSA5IDcuNiAxOS40IDcuNiAzMC4zIDAgMzUuMy0yOC43IDY0LTY0IDY0bC04OCAwQzc1LjIgNDQ4IDAgMzcyLjggMCAyODBsMC00OEMwIDEzOS4yIDc1LjIgNjQgMTY4IDY0bDI0IDB6bTY0IDMzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwem0xNi0xNzZjMCA1LjUtLjcgMTAuOS0yIDE2bDM0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMCAxNnptLTI0IDY0bC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTI0IDB6Il19LFJwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTA0IDEwNGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45bDcyIDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEwNCA3MiAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0xMDQtMTA0eiJdfSxCX3Q9UnBlLEhfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTS4yIDI3Ni4zYy0xLjItMzUuMyAyNi40LTY1IDYxLjctNjYuMmwzLjMtLjEtOC4yLTEuOEMyMi41IDIwMC41IC43IDE2Ni4zIDguMyAxMzEuOFM1MC4yIDc1LjUgODQuNyA4My4ybDE3MyAzOC4zYzIuMy0yLjkgNC42LTUuNyA3LjEtOC41bDE4LjQtMjAuM0MyOTkuOSA3NC41IDMyMy41IDY0IDM0OC4zIDY0bDEwLjIgMGM1NC4xIDAgMTA0LjEgMjguNyAxMzEuMyA3NS40bDEuNSAyLjZjMTMuNiAyMy4yIDIwLjcgNDkuNyAyMC43IDc2LjZMNTEyIDM0NGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtMTA0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMi44IC4yLTUuNiAuNS04LjMtMTkuNC0xMS0zMi41LTMxLjgtMzIuNS01NS43IDAtLjggMC0xLjYgMC0yLjRMNjYuNCAzMzhjLTM1LjMgMS4yLTY1LTI2LjQtNjYuMi02MS43em02My40LTE4LjJjLTguOCAuMy0xNS43IDcuNy0xNS40IDE2LjZzNy43IDE1LjcgMTYuNSAxNS40bDE2MS41LTUuNmM5LjgtLjMgMTguNyA1LjMgMjIuNyAxNC4yczIuMiAxOS4zLTQuNSAyNi40Yy0yLjggMi45LTQuNCA2LjctNC40IDExIDAgOC44IDcuMiAxNiAxNiAxNiA5LjEgMCAxNy40IDUuMSAyMS41IDEzLjNzMy4yIDE3LjktMi4zIDI1LjFjLTIgMi43LTMuMiA2LTMuMiA5LjYgMCA4LjggNy4yIDE2IDE2IDE2bDEwNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtMTI1LjRjMC0xOC40LTQuOS0zNi41LTE0LjItNTIuNGwtMS41LTIuNmMtMTguNi0zMi01Mi44LTUxLjYtODkuOC01MS42bC0xMC4yIDBjLTExLjMgMC0yMiA0LjgtMjkuNiAxMy4xbDAgMC0xOC40IDIwLjNjLS42IC42LTEuMSAxLjMtMS43IDEuOWw1NyAxMy4yYzguNiAyIDE0IDEwLjYgMTIgMTkuMnMtMTAuNiAxNC0xOS4yIDEyTDI2Mi44IDE3MS44IDc0LjMgMTMwYy04LjYtMS45LTE3LjIgMy41LTE5LjEgMTIuMnMzLjUgMTcuMiAxMi4yIDE5LjFsMTg3LjUgNDEuNmMxMC4yIDIuMyAxNy44IDEwLjkgMTguNyAyMS40bC4xIDFjLjYgNi42LTEuNSAxMy4xLTUuOCAxOC4xcy0xMC42IDcuOS0xNy4yIDguMkw2My42IDI1OC4xeiJdfSxxX3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTE2OC41IDcybDg3LjUgOTMgODcuNS05My0xNzUgMHpNMzgzLjkgOTkuMWwtNzIuMyA3Ni45IDEyOSAwLTU2LjYtNzYuOXptNTAgMTI0LjlMNzguMSAyMjQgMjU2IDQyMC4zIDQzMy45IDIyNHpNNzEuNSAxNzZsMTI5IDAtNzIuMy03Ni45LTU2LjYgNzYuOXptNDM0LjMgNDAuMWwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyYzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhsMjQwIDBjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40eiJdfSwkYj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTMzNC4xIDQ5LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ0LjEgNDQuMSA0NC4xIDQ0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDQuMS00NC4xLTQ0LjEgNDQuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0NC4xLTQ0LjEtNDQuMS00NC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDQuMSA0NC4xIDQ0LjEtNDQuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sVl90PSRiLGpfdD0kYixVX3Q9JGIsRWI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTY2LjItMTZjLTEzLjMgMC0yNS4zIDguMy0zMCAyMC44TDEyMCA0OCAyNCA0OEMxMC43IDQ4IDAgNTguNyAwIDcyUzEwLjcgOTYgMjQgOTZsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDAtMTYuMi00My4yQzMwNy4xLTcuNyAyOTUuMi0xNiAyODEuOC0xNkwxNjYuMi0xNnpNMzIgMTQ0bDAgMzA0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzA0LTQ4IDAgMCAzMDRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzA0LTQ4IDB6bTE2MCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2em0xMTIgMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2eiJdfSxXX3Q9RWIsR190PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZmUtcmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFjZCIsIk0zODUuMSA0MTkuMUMzNDkuNyA0NDcuMiAzMDQuOCA0NjQgMjU2IDQ2NHMtOTMuNy0xNi44LTEyOS4xLTQ0LjlsODAuNC04MC40YzE0LjMgOC40IDMxIDEzLjMgNDguOCAxMy4zczM0LjUtNC44IDQ4LjgtMTMuM2w4MC40IDgwLjR6bTY4LjEgLjJDNDg5LjkgMzc0LjkgNTEyIDMxOC4xIDUxMiAyNTZTNDg5LjkgMTM3LjEgNDUzLjIgOTIuN0w0NjUgODFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMFMxMzcuMSAyMi4xIDkyLjcgNTguOEw4MSA0N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMzcuNyA3MS42IDQ3IDgxTDU4LjggOTIuN0MyMi4xIDEzNy4xIDAgMTkzLjkgMCAyNTZTMjIuMSAzNzQuOSA1OC44IDQxOS4zTDQ3IDQzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDExLjgtMTEuOEMxMzcuMSA0ODkuOSAxOTMuOSA1MTIgMjU2IDUxMnMxMTguOS0yMi4xIDE2My4zLTU4LjhMNDMxIDQ2NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTExLjgtMTEuOHptLTM0LjEtMzQuMWwtODAuNC04MC40YzguNC0xNC4zIDEzLjMtMzEgMTMuMy00OC44cy00LjgtMzQuNS0xMy4zLTQ4LjhsODAuNC04MC40QzQ0Ny4yIDE2Mi4zIDQ2NCAyMDcuMiA0NjQgMjU2cy0xNi44IDkzLjctNDQuOSAxMjkuMXpNMzg1LjEgOTIuOWwtODAuNCA4MC40Yy0xNC4zLTguNC0zMS0xMy4zLTQ4LjgtMTMuM3MtMzQuNSA0LjgtNDguOCAxMy4zTDEyNi45IDkyLjlDMTYyLjMgNjQuOCAyMDcuMiA0OCAyNTYgNDhzOTMuNyAxNi44IDEyOS4xIDQ0Ljl6TTE3My4zIDMwNC44TDkyLjkgMzg1LjFDNjQuOCAzNDkuNyA0OCAzMDQuOCA0OCAyNTZzMTYuOC05My43IDQ0LjktMTI5LjFsODAuNCA4MC40Yy04LjQgMTQuMy0xMy4zIDMxLTEzLjMgNDguOHM0LjggMzQuNSAxMy4zIDQ4Ljh6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sWV90PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwNS4xIDMwNi45Yy0yOC4xLTI4LjEtMjguMS03My43IDAtMTAxLjhzNzMuNy0yOC4xIDEwMS44IDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy00Ni45LTQ2LjktMTIyLjgtNDYuOS0xNjkuNyAwcy00Ni45IDEyMi44IDAgMTY5LjcgMTIyLjggNDYuOSAxNjkuNyAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHoiXX0sT3BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNDggMjU2YTIwOCAyMDggMCAxIDEgNDE2IDAgMjA4IDIwOCAwIDEgMSAtNDE2IDB6bTQ2NCAwYTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTEyNC43IDI0NC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwxMDQgMTA0YzQuNiA0LjYgMTEuNSA1LjkgMTcuNCAzLjVzOS45LTguMyA5LjktMTQuOGwwLTcyIDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEwNCAwIDAtNzJjMC02LjUtMy45LTEyLjMtOS45LTE0LjhzLTEyLjktMS4xLTE3LjQgMy41bC0xMDQgMTA0eiJdfSxLX3Q9T3BlLFpfdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwek00OCAyMjRsMCAxOTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE5Mi0zNTIgMHoiXX0sRnBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWF90PUZwZSxCcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNNDggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCA0Mi43IDAgNTZMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODAgNDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMkw0OCA1NnptMTA0IDcybDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE1MiA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sUV90PUJwZSxEYj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI0MCA2LjFjOS4xLTguMiAyMi45LTguMiAzMiAwbDIzMiAyMDhjOS45IDguOCAxMC43IDI0IDEuOCAzMy45cy0yNCAxMC43LTMzLjkgMS44bC04LTcuMiAwIDIwNS4zYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMDUuMy04IDcuMmMtOS45IDguOC0yNSA4LTMzLjktMS44cy04LTI1IDEuOC0zMy45TDI0MCA2LjF6bTE2IDUwLjFMOTYgMTk5LjcgOTYgNDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAtMTA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAxMDQgNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDguMy0xNjAtMTQzLjR6TTIwOCA0NjRsOTYgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDR6Il19LEpfdD1EYixlVHQ9RGIsdFR0PURiLEhwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duIixpY29uOls1MTIsNTEyLFs5Nzg1LCJmcm93biJdLCJmMTE5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzM0LjcgMzg0LjZDMzE5LjcgMzY5IDI5My42IDM1MiAyNTYgMzUycy02My43IDE3LTc4LjcgMzIuNmMtOS4yIDkuNi0yNC40IDkuOS0zMy45IC43cy05LjktMjQuNC0uNy0zMy45YzIyLjEtMjMgNjAtNDcuNCAxMTMuMy00Ny40czkxLjIgMjQuNCAxMTMuMyA0Ny40YzkuMiA5LjYgOC45IDI0LjgtLjcgMzMuOXMtMjQuOCA4LjktMzMuOS0uN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxhVHQ9SHBlLHhlZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTE0NCAxMjhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwem0yMDggMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwek00OCA0ODBjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsOTYgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLThjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTk2IDBDNzguOCAzMDQgMCAzODIuOCAwIDQ4MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTh6Il19LHJUdD14ZWUsc1R0PXhlZSxpVHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjgwLjEtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDc4LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTcgNTcgMCA3Ni41LTY2LjItMzguMi0yMC45LTc3LjhjLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjIgOTggOTguNyAxMTAuOGw4LjQgMzEuNS02Ny42LTM5QzI4IDk2LjYgMTMuMyAxMDAuNSA2LjcgMTEyUzQgMTM4LjIgMTUuNSAxNDQuOGw2Ny42IDM5LTMxLjUgOC40Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w3Ny44LTIwLjkgNjYuMiAzOC4yLTY2LjIgMzguMi03Ny44LTIwLjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDMxLjUgOC40LTY3LjYgMzlDNCAzNzMuOCAuMSAzODguNSA2LjcgNDAwczIxLjMgMTUuNCAzMi44IDguOGw2Ny42LTM5LTguNCAzMS41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wyMC45LTc3LjggNjYuMi0zOC4yIDAgNzYuNS01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgNzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzguMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtNzYuNSA2Ni4yIDM4LjIgMjAuOSA3Ny44YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC04LjQtMzEuNSA2Ny42IDM5YzExLjUgNi42IDI2LjIgMi43IDMyLjgtOC44czIuNy0yNi4yLTguOC0zMi44bC02Ny42LTM5IDMxLjUtOC40YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNzcuOCAyMC45LTY2LjItMzguMiA2Ni4yLTM4LjIgNzcuOCAyMC45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMzEuNS04LjQgNjcuNi0zOWMxMS41LTYuNiAxNS40LTIxLjMgOC44LTMyLjhzLTIxLjMtMTUuNC0zMi44LTguOGwtNjcuNiAzOSA4LjQtMzEuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTIwLjkgNzcuOC02Ni4yIDM4LjIgMC03Ni41IDU3LTU3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtNzguMXoiXX0sb1R0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDE3LjFjMCAyNS42LTI4LjUgNDAuOC00OS44IDI2LjZMMTkyIDQxMi44IDQ5LjggNTA3LjdDMjguNSA1MjEuOSAwIDUwNi42IDAgNDgxLjFMMCA2NHpNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4Ny4yIDExNy40LTc4LjJjMTYuMS0xMC43IDM3LjEtMTAuNyA1My4yIDBMMzM2IDQ1MS4yIDMzNiA2NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6Il19LHFwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNNDggNDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjB6bTE2IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MHptNjQtMjI0YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42eiJdfSxuVHQ9cXBlLHllZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzY0MCw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6Il19LGxUdD15ZWUsY1R0PXllZSxWcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGRUdD1WcGUsanBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzUxMiw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk00MDMuMSA0MDMuMWM2Ny4yLTY3LjIgNzguOC0xNjguOSAzNC45LTI0OGwzNi43LTUuMmM0LjUtLjYgOC44LTEuNiAxMy4xLTIuOCA0NC42IDk0LjkgMjcuNyAyMTEuNS01MC43IDI5MHMtMTk1LjEgOTUuMy0yOTAgNTAuN2MxLjItNC4yIDIuMS04LjYgMi44LTEzLjFsNS4yLTM2LjdjNzkuMSA0My45IDE4MC44IDMyLjMgMjQ4LTM0Ljl6TTc1IDc1Yzc4LjQtNzguNCAxOTUuMS05NS4zIDI5MC01MC43LTEuMiA0LjItMi4xIDguNi0yLjggMTMuMWwtNS4yIDM2LjdjLTc5LjEtNDMuOS0xODAuOC0zMi4zLTI0OCAzNC45cy03OC44IDE2OC45LTM0LjkgMjQ4bC0zNi43IDUuMmMtNC41IC42LTguOCAxLjYtMTMuMSAyLjgtNDQuNi05NC45LTI3LjctMjExLjUgNTAuNy0yOTB6TTM3MC45IDIwNi41YzUuOC0xMC45IDIxLjEtMTIuNCAyNi40LTEuMyAyNS42IDUzLjUgMTYuMiAxMTkuNi0yOC4yIDE2My45LTQ0LjMgNDQuMy0xMTAuMyA1My43LTE2My44IDI4LjItMTEuMS01LjMtOS42LTIwLjYgMS4zLTI2LjQgMzItMTcuMSA2NC4yLTQwLjggOTMuOC03MC40IDI5LjctMjkuNyA1My40LTYxLjkgNzAuNS05NHpNOTMuMyAyODEuOWMtMS43LTggMi45LTE1LjkgMTAuNi0xOC40bDg0LjYtMjhjNS43LTEuOSAxMi4xLS40IDE2LjMgMy45czUuOCAxMC42IDMuOSAxNi4zbC0yOCA4NC42Yy0yLjYgNy43LTEwLjUgMTIuMy0xOC40IDEwLjZzLTEzLjQtOS0xMi43LTE3LjFsMy45LTQzLjEtNDMuMSAzLjljLTguMSAuNy0xNS41LTQuNy0xNy4xLTEyLjd6TTI5NC42IDExMC40bC0zLjkgNDMuMSA0My4xLTMuOWM4LjEtLjcgMTUuNSA0LjcgMTcuMSAxMi43cy0yLjkgMTUuOS0xMC42IDE4LjRsLTg0LjYgMjhjLTUuNyAxLjktMTIuMSAuNC0xNi4zLTMuOXMtNS44LTEwLjYtMy45LTE2LjNsMjgtODQuNmMyLjYtNy43IDEwLjUtMTIuMyAxOC40LTEwLjZzMTMuNCA5IDEyLjcgMTcuMXpNNTEyIDUxLjRjMCAyNS42LTE4LjggNDcuMy00NC4xIDUwLjlMNDIxLjEgMTA5Yy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDEzLjMgMTguOCA0MzUgMCA0NjAuNiAwIDQ4OSAwIDUxMiAyMyA1MTIgNTEuNHpNNDQuMSA0MDkuN0w5MC45IDQwM2MxMC42LTEuNSAxOS42IDcuNSAxOC4xIDE4LjFsLTYuNyA0Ni43Qzk4LjcgNDkzLjIgNzcgNTEyIDUxLjQgNTEyIDIzIDUxMiAwIDQ4OSAwIDQ2MC42IDAgNDM1IDE4LjggNDEzLjMgNDQuMSA0MDkuN3oiXX0sdVR0PWpwZSxwVHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0yMjEuOSAyNjcuNmMtNC43IDEwLS4zIDIxLjkgOS43IDI2LjYgMTkuMiA4LjkgMzIuNCAyOC4zIDMyLjQgNTAuOHMtMTMuMiA0MS45LTMyLjQgNTAuOGMtMTAgNC43LTE0LjQgMTYuNi05LjcgMjYuNnMxNi42IDE0LjQgMjYuNiA5LjdDMjgxLjIgNDE2LjggMzA0IDM4My42IDMwNCAzNDVzLTIyLjgtNzEuOS01NS42LTg3LjFjLTEwLTQuNy0yMS45LS4zLTI2LjYgOS43ek0xMDQgMzA1Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0xNiAwek0yMjMuMyAzNzNjOS45LTUuNCAxNi43LTE2IDE2LjctMjguMXMtNi43LTIyLjctMTYuNy0yOC4xYy03LjgtNC4yLTE1LjMgMy4zLTE1LjMgMTIuMWwwIDMyYzAgOC44IDcuNiAxNi4zIDE1LjMgMTIuMXoiXX0sVXBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xNzEuOSA5Mi4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LGZUdD1VcGUsV3BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDQ2NGEyMDggMjA4IDAgMSAxIDAtNDE2IDIwOCAyMDggMCAxIDEgMCA0MTZ6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTA0LTEwNGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzM2Ni41IDI1NiAzNjAgMjU2bC03MiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNC03MiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsMTA0IDEwNHoiXX0saFR0PVdwZSx3ZWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem01NiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sbVR0PXdlZSxnVHQ9d2VlLGJUdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50cyIsaWNvbjpbNTc2LDUxMixbMTI4NDkwLDYxNjcwXSwiZjA4NiIsIk03Ni4yIDI1OC43YzYuMS0xNS4yIDQtMzIuNi01LjYtNDUuOS0xNC41LTIwLjEtMjIuNi00My43LTIyLjYtNjguOCAwLTY2LjggNjAuNS0xMjggMTQ0LTEyOHMxNDQgNjEuMiAxNDQgMTI4LTYwLjUgMTI4LTE0NCAxMjhjLTE1LjkgMC0zMS4xLTIuMy00NS4zLTYuNS0xMC4zLTMuMS0yMS40LTIuNS0zMS40IDEuNWwtNTAuNCAyMC4yIDExLjQtMjguNXpNMCAxNDRjMCAzNS44IDExLjYgNjkuMSAzMS43IDk2LjhMMS45IDMxNS4yYy0xLjMgMy4yLTEuOSA2LjYtMS45IDEwIDAgMTQuOCAxMiAyNi44IDI2LjggMjYuOCAzLjQgMCA2LjgtLjcgMTAtMS45bDk2LjMtMzguNWMxOC42IDUuNSAzOC40IDguNCA1OC45IDguNCAxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0ek0zODQgNTEyYzIwLjYgMCA0MC4zLTMgNTguOS04LjRsOTYuMyAzOC41YzMuMiAxLjMgNi42IDEuOSAxMCAxLjkgMTQuOCAwIDI2LjgtMTIgMjYuOC0yNi44IDAtMy40LS43LTYuOC0xLjktMTBsLTI5LjctNzQuNGMyMC0yNy44IDMxLjctNjEuMSAzMS43LTk2LjggMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTEuNiAxNi4zLTUuMSAzMS45LTEwLjEgNDYuOSA2My45IDE0LjggMTA3LjIgNjcuMyAxMDcuMiAxMjMuOSAwIDI1LjEtOC4xIDQ4LjctMjIuNiA2OC44LTkuNiAxMy4zLTExLjcgMzAuNi01LjYgNDUuOWwxMS40IDI4LjUtNTAuNC0yMC4yYy0xMC00LTIxLjEtNC41LTMxLjQtMS41LTE0LjIgNC4yLTI5LjQgNi41LTQ1LjMgNi41LTcyLjIgMC0xMjcuMS00NS43LTE0MC43LTEwMS4yLTE1LjYgMy4yLTMxLjcgNS00OC4xIDUuMiAxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0eiJdfSxJYj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtY2hlY2siLGljb246WzUxMiw1MTIsWzYxNTMzLCJjaGVjay1jaXJjbGUiXSwiZjA1OCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em03MC43IDEyMS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjQzLjQgMzY2LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSx2VHQ9SWIseFR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1vb24iLGljb246WzUxMiw1MTIsWzEyNzc2OSw5MjE0XSwiZjE4NiIsIk0yMzkuMyA0OC43Yy0xMDcuMSA4LjUtMTkxLjMgOTguMS0xOTEuMyAyMDcuMyAwIDExNC45IDkzLjEgMjA4IDIwOCAyMDggMzMuMyAwIDY0LjctNy44IDkyLjYtMjEuNy0xMDMuNC0yMy40LTE4MC42LTExNS44LTE4MC42LTIyNi4zIDAtNjUuOCAyNy40LTEyNS4xIDcxLjMtMTY3LjN6TTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMTkuNCAwIDM4LjQgMi4yIDU2LjcgNi4zIDkuOSAyLjIgMTcuMyAxMC41IDE4LjUgMjAuNXMtNCAxOS44LTEzLjEgMjQuNGMtNjAuNiAzMC4yLTEwMi4xIDkyLjctMTAyLjEgMTY0LjggMCAxMDEuNiA4Mi40IDE4NCAxODQgMTg0IDUgMCA5LjktLjIgMTQuOC0uNiAxMC4xLS44IDE5LjYgNC44IDIzLjggMTQuMXMyIDIwLjEtNS4zIDI3LjFDMzg3LjMgNDg0LjggMzI0LjggNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6Il19LHlUdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk00NDggMTEyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptODggMTQ0bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgwYzAtNC40IDMuNi04IDgtOHptMTY4IDhjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgweiJdfSx3VHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTQ4MCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTgwIDExMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNDAuNyAzLjhjLTQuMy03LjMtMTIuMi0xMS44LTIwLjctMTEuOHMtMTYuNCA0LjUtMjAuNyAxMS44bC00Ni41IDc5LTE3LjItMjQuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzE5MS4xIDMyMCAyMDAgMzIwbDI0MCAwYzguNiAwIDE2LjYtNC42IDIwLjgtMTIuMXM0LjItMTYuNy0uMS0yNC4xbC04MC0xMzZ6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM2MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjk2eiJdfSxHcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs2MTgzOCwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodCJdLCJmMzVhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHptMzg3LjMgMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTA0LTEwNGMtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNVMyNTYgMTQ1LjUgMjU2IDE1MmwwIDcyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzJjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsMTA0LTEwNHoiXX0sTVR0PUdwZSxZcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDcsImRyaXZlcnMtbGljZW5zZSJdLCJmMmMyIiwiTTQ4IDQxNmwwLTI1NiA0ODAgMCAwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDggMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNzYgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sa1R0PVlwZSxLcGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjEyLjUgMTQ3LjVjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNVMxNzYgMTU5LjMgMTc2IDE2OGwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OHpNMjk4IDI1NmwtNzQgNDUuMiAwLTkwLjQgNzQgNDUuMnoiXX0sU1R0PUtwZSxacGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTMsImxhdWdoLWJlYW0iXSwiZjU5YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHpUdD1acGUsWHBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFkZHJlc3MtYm9vayIsaWNvbjpbNTEyLDUxMixbNjIxMzgsImNvbnRhY3QtYm9vayJdLCJmMmI5IiwiTTM4NCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDgwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyODggMHpNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yNDAgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0tMzIgNDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0eiJdfSxDVHQ9WHBlLFFwZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsOCAwIDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsODEuNSA4MS41LTgxLjUgODEuNUM0OCAzNjYgMzIgNDA0LjcgMzIgNDQ1bDAgMTktOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtODEuNS04MS41IDgxLjUtODEuNUMzMzYgMTQ2IDM1MiAxMDcuMyAzNTIgNjdsMC0xOSA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzczLjMgMCAzNjAgMEwyNCAwek0xOTIgMjg5LjlsODEuNSA4MS41QzI5MyAzOTEgMzA0IDQxNy40IDMwNCA0NDVsMCAxOS0yMjQgMCAwLTE5YzAtMjcuNiAxMS01NCAzMC41LTczLjVMMTkyIDI4OS45em0wLTY3LjlsLTgxLjUtODEuNUM5MSAxMjEgODAgOTQuNiA4MCA2N2wwLTE5IDIyNCAwIDAgMTljMCAyNy42LTExIDU0LTMwLjUgNzMuNUwxOTIgMjIyLjF6Il19LF9UdD1RcGUsTWVlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYWRwaG9uZXMiLGljb246WzQ0OCw1MTIsWzEyNzkxMSw2Mjg2MywiaGVhZHBob25lcy1hbHQiLCJoZWFkcGhvbmVzLXNpbXBsZSJdLCJmMDI1IiwiTTQ4IDIyNGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnMxNzYgNzguOCAxNzYgMTc2bDAgNDQuOGMtMTQuMS04LjItMzAuNS0xMi44LTQ4LTEyLjhsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTcuNSAwLTMzLjkgNC43LTQ4IDEyLjhMNDggMjI0em0wIDEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAgMTI4LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJ6bTM1MiAwbDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMC0xMjggMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHoiXX0sVFR0PU1lZSxMVHQ9TWVlLCRUdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptODggMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEyOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMjggMGMzNy42IDAgNjgtMzAuNCA2OC02OHMtMzAuNC02OC02OC02OGwtNTIgMHptNTIgODhsLTI4IDAgMC00MCAyOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMHoiXX0sRFR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1tYXhpbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcwXSwiZjJkMCIsIk00OCAyMjRsMCAxNjBjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2MC00MTYgMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHoiXX0sSnBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbW1lbnQtZG90cyIsaWNvbjpbNTEyLDUxMixbMTI4MTcyLDYyMDc1LCJjb21tZW50aW5nIl0sImY0YWQiLCJNMCAyNDBjMCA1NC40IDE5LjMgMTA0LjYgNTEuOSAxNDQuOUwzLjEgNDc0LjNjLTIgMy43LTMuMSA3LjktMy4xIDEyLjIgMCAxNC4xIDExLjQgMjUuNSAyNS41IDI1LjUgNCAwIDcuOC0uNiAxMS41LTIuMUwxNTMuNCA0NjBjMzEuNCAxMi45IDY2LjEgMjAgMTAyLjYgMjAgMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDB6TTk0IDQwNy45YzkuMy0xNy4xIDcuNC0zOC4xLTQuOC01My4yLTI2LjEtMzIuMy00MS4yLTcxLjktNDEuMi0xMTQuNyAwLTEwMy4yIDkwLjItMTkyIDIwOC0xOTJzMjA4IDg4LjggMjA4IDE5Mi05MC4yIDE5Mi0yMDggMTkyYy0zMC4yIDAtNTguNy01LjktODQuMy0xNi40LTExLjktNC45LTI1LjMtNC44LTM3LjEgLjNMNzYgNDQwLjkgOTQgNDA3Ljl6TTE0NCAyNzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNDQtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptODAgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxBVHQ9SnBlLGVmZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODU0MCwiZ3Jpbi10b25ndWUtd2luayJdLCJmNThiIiwiTTM2Ni45IDQzMmMuOC01LjIgMS4xLTEwLjYgMS4xLTE2bDAtNTMuNWMxMC4yLTEyLjYgMTguMy0yNi45IDIzLjgtNDIuNSA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggNS41IDE1LjUgMTMuNiAyOS45IDIzLjggNDIuNGwwIDUzLjVjMCA1LjQgLjQgMTAuOCAxLjEgMTYtNTguNC0zNi44LTk3LjEtMTAxLjktOTcuMS0xNzYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA3NC4xLTM4LjggMTM5LjItOTcuMSAxNzZ6bS0zOC44IDY5LjdDNDM0LjQgNDcwLjYgNTEyIDM3Mi4zIDUxMiAyNTYgNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3Mi4zIDc3LjYgNDcwLjYgMTgzLjkgNTAxLjcgMjAzLjQgNTE4LjEgMjI4LjUgNTI4IDI1NiA1MjhzNTIuNi05LjkgNzIuMS0yNi4zek0zMjAgMzc4LjZsMCAzNy40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtMzcuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0xMzIgMjMyYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwem0yMjguNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sUFR0PWVmZSx0ZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwTDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAxOWMwIDQwLjMtMTYgNzktNDQuNSAxMDcuNWwtODEuNSA4MS41IDgxLjUgODEuNUMzMzYgMzY2IDM1MiA0MDQuNyAzNTIgNDQ1bDAgMTkgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0xOWMwLTQwLjMgMTYtNzkgNDQuNS0xMDcuNWw4MS41LTgxLjUtODEuNS04MS41QzQ4IDE0NiAzMiAxMDcuMyAzMiA2N2wwLTE5LTggMEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMTAuNSAzNzEuNWMtMy45IDMuOS03LjUgOC4xLTEwLjcgMTIuNWwxODQuNCAwYy0zLjItNC40LTYuOC04LjYtMTAuNy0xMi41bC04MS41LTgxLjUtODEuNSA4MS41ek04MC44IDQzMmMtLjUgNC4zLS44IDguNi0uOCAxM2wwIDE5IDIyNCAwIDAtMTljMC00LjQtLjMtOC43LS44LTEzTDgwLjggNDMyek0yNTQuMSAxNjBsLTEyNC4xIDAgNjIuMSA2Mi4xIDYyLjEtNjIuMXptMzkuNy00OEMzMDAuNCA5OC4xIDMwNCA4Mi43IDMwNCA2N2wwLTE5LTIyNCAwIDAgMTljMCAxNS43IDMuNiAzMS4xIDEwLjIgNDVsMjAzLjUgMHoiXX0sRVR0PXRmZSxhZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY3JlZGl0LWNhcmQiLGljb246WzUxMiw1MTIsWzEyODE3OSw2MjA4MywiY3JlZGl0LWNhcmQtYWx0Il0sImYwOWQiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMi00MTYgMCAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHptMTYgMTEybDAgMTYwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2MCA0MTYgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTgwIDM0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMTQ0IDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LElUdD1hZmUsTlR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMTM4LjMgODAuOGMtOS4yLTMzLjggMTAuNS02OC44IDQ0LjMtNzguNCAzNC05LjYgNjkuNCAxMC4yIDc5IDQ0LjJMMjkxLjkgMTUzLjcgMzA1LjEgODRjNi42LTM0LjcgNDAuMS01Ny41IDc0LjgtNTAuOSAzMS40IDYgNTMgMzMuOSA1MiA2NC45IDEwLTIuNiAyMC44LTIuOCAzMS41LS4xIDM0LjMgOC42IDU1LjEgNDMuMyA0Ni42IDc3LjZMNDU0LjcgMzk3LjJDNDM3LjggNDY0LjcgMzc3LjIgNTEyIDMwNy42IDUxMmwtMzMuNyAwYy01Ni45IDAtMTEyLjItMTktMTU3LjItNTMuOWwtOTItNzEuNmMtMjcuOS0yMS43LTMyLjktNjEuOS0xMS4yLTg5LjhzNjEuOS0zMi45IDg5LjgtMTEuMmwxNyAxMy4yLTUxLjgtMTMxLjJjLTEzLTMyLjkgMy4yLTcwLjEgMzYtODMgMTEuMS00LjQgMjIuNy01LjQgMzMuNy0zLjd6bTc3LjEtMjEuMmMtMi40LTguNS0xMS4yLTEzLjQtMTkuNy0xMXMtMTMuNCAxMS4yLTExIDE5LjdsNTQuOCAxODIuNGMzLjUgMTIuMy0zLjMgMjUuMi0xNS40IDI5LjNzLTI1LjMtMi0zMC0xMy45TDE0Mi45IDEzOC4xYy0zLjItOC4yLTEyLjUtMTIuMy0yMC44LTlzLTEyLjMgMTIuNS05IDIwLjhsNzMuMyAxODUuNmMxMiAzMC4zLTIzLjcgNTctNDkuNCAzN0w3My44IDMyMy40Yy03LTUuNC0xNy00LjItMjIuNSAyLjhzLTQuMiAxNyAyLjggMjIuNWw5MiA3MS42YzM2LjUgMjguNCA4MS40IDQzLjggMTI3LjcgNDMuOGwzMy43IDBjNDcuNSAwIDg5LTMyLjQgMTAwLjUtNzguNWw1NS40LTIyMS42YzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTI2IDEwNGMtMi45IDExLjctMTMuNCAxOS45LTI1LjUgMTkuOS0xNi41IDAtMjguOS0xNS0yNS44LTMxLjJMMzgzLjcgOTljMS43LTguNy00LTE3LjEtMTIuNy0xOC43UzM1NCA4NC4zIDM1Mi4zIDkzTDMyMC41IDI2MGMtMi4yIDExLjYtMTIuNCAyMC0yNC4yIDIwLTExIDAtMjAuNy03LjMtMjMuNy0xNy45TDIxNS40IDU5LjZ6Il19LFJUdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjgtODcuOGMxNy41LTMuMyAzMC44LTE4LjcgMzAuOC0zNy4xIDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0ODUgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOS43Yy00Mi4yIDYtNzkuNCAyNy44LTEwNS40IDU5LjFMNDEtMjQuOXpNMTkyLjggMTI2LjlDMjE0LjcgOTguNCAyNDkuMiA4MCAyODggODAgMzU0LjMgODAgNDA4IDEzMy43IDQwOCAyMDBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNGwxMi45IDIyLjEtMjIuNiAwLTI0MS4xLTI0MS4xek0xMzIuNSAzNDUuOWMxOS41LTMzLjQgMzEuMy03MC43IDM0LjYtMTA5bC00Ni43LTQ2LjdjLS4yIDMuMy0uMyA2LjYtLjMgOS45bDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w2OS4xIDM1OS4yYy0zLjQgNS44LTUuMSAxMi4zLTUuMSAxOSAwIDIwLjkgMTYuOSAzNy44IDM3LjggMzcuOGwyNDQuNCAwLTQ4LTQ4LTE3OC42IDAgMTIuOS0yMi4xek0yMjAuMSA0NjRjOS45IDI4IDM2LjYgNDggNjcuOSA0OHM1OC0yMCA2Ny45LTQ4bC0xMzUuOCAweiJdfSxPVHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTI4OC4xLTMyYzkgMCAxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4ycy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXptMCA3Ni44TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgMTEzLjMtNTcuNmM2LjgtMy41IDE0LjktMy41IDIxLjggMGwxMTMuMyA1Ny42LTE5LjgtMTI1LjVjLTEuMi03LjYgMS4zLTE1LjMgNi43LTIwLjdsODkuOC04OS45LTEyNS41LTIwYy03LjYtMS4yLTE0LjEtNi0xNy42LTEyLjhMMjg4LjEgNDQuOHoiXX0sRlR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAwIDgwLjMtMjAuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNCA0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjc5LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMC0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDQ4IDUyIDQ4IDI0em0wIDc3LjVsOTYuNi0yNC4yYzI3LTYuNyA1NS41LTMuNiA4MC40IDguOCA1NC45IDI3LjQgMTE4LjcgMjkuNyAxNzUgNi44bDAgMjQxLjgtMjQuNCA5LjFjLTMzLjcgMTIuNi03MS4yIDEwLjctMTAzLjQtNS40LTQ4LjItMjQuMS0xMDMuMy0zMC4xLTE1NS42LTE3LjFsLTY4LjYgMTcuMiAwLTIzN3oiXX0sQlR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTM2OCA4MGMtMy4yIDAtNi4yIC40LTguOSAxLjMtMTkuMSA1LjUtNDYuMSAxMC43LTc0LjMgMy4zLTU3LjQtMTQuOS0xMjQuNiA3LjQtMTc0LjcgNTcuNVMzNy43IDI1OS40IDUyLjYgMzE2LjhjNy4zIDI4LjIgMi4yIDU1LjItMy4zIDc0LjMtLjggMi44LTEuMyA1LjgtMS4zIDguOSAwIDE3LjcgMTQuMyAzMiAzMiAzMiAzLjIgMCA2LjItLjQgOC45LTEuMyAxOS4xLTUuNSA0Ni4xLTEwLjcgNzQuMy0zLjMgNTcuNCAxNC45IDEyNC42LTcuNCAxNzQuNy01Ny41czcyLjQtMTE3LjMgNTcuNS0xNzQuN2MtNy4zLTI4LjItMi4yLTU1LjIgMy4zLTc0LjMgLjgtMi44IDEuMy01LjggMS4zLTguOSAwLTE3LjctMTQuMy0zMi0zMi0zMnptMC00OGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNy0xLjEgMTUuMi0zLjEgMjIuMy00LjYgMTUuOC03LjEgMzIuOS0zIDQ4LjkgMjAuMSA3Ny42LTEwLjkgMTYxLjUtNzAgMjIwLjdzLTE0My4xIDkwLjItMjIwLjcgNzBjLTE2LTQuMS0zMy0xLjYtNDguOSAzLTcuMSAyLTE0LjYgMy4xLTIyLjMgMy4xLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtNy43IDEuMS0xNS4yIDMuMS0yMi4zIDQuNi0xNS44IDcuMS0zMi45IDMtNDguOS0yMC4xLTc3LjYgMTAuOS0xNjEuNSA3MC0yMjAuN1MyMTkuMyAxOCAyOTYuOCAzOC4xYzE2IDQuMSAzMyAxLjYgNDguOS0zIDcuMS0yIDE0LjYtMy4xIDIyLjMtMy4xek0yNDYuNyAxNjdjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzg1LjIgMjc4IDg5IDI2NS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxIVHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDgwTDIyNCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYtNDggMCAwLTE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNjggMjg4bC0zMjAgMCAwIDEyOGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4ek02NCAxNjBsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0scmZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1oZWFydHMiLGljb246WzUxMiw1MTIsWzEyODUyNSwiZ3Jpbi1oZWFydHMiXSwiZjU4NCIsIk00NjQgMjU2YzAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM0OCAzNzAuOSA0OCAyNTZjMC0zLjUgLjEtNy4xIC4zLTEwLjYtMTQtMTMuOS0yOS43LTMzLjEtMzkuMy01Ni43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2UzUxMiAzOTcuNCA1MTIgMjU2YzAtMjMuMy0zLjEtNDUuOS04LjktNjcuMy05LjYgMjMuNy0yNS40IDQyLjgtMzkuMyA1Ni43IC4yIDMuNSAuMyA3IC4zIDEwLjZ6TTM2OCA1OC45YzExLjctNiAyNC41LTkuNiAzNy43LTEwLjYtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MxMy4yIDEgMjYgNC42IDM3LjcgMTAuNiAxMy44LTcuMSAyOS4zLTEwLjkgNDUuMS0xMC45bDIuOSAwYzguOSAwIDE3LjYgMS4yIDI1LjggMy41IDEyLjQtMi4zIDI1LjItMy41IDM4LjItMy41czI1LjggMS4yIDM4LjIgMy41YzguMi0yLjMgMTYuOS0zLjUgMjUuOC0zLjVsMi45IDBjMTUuOCAwIDMxLjMgMy44IDQ1LjEgMTAuOXptNC4yIDI0My40Yy0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCAxOS44IDU1LjkgNzMuMSA5NS45IDEzNS44IDk1LjkgNjIuNyAwIDExNi00MC4xIDEzNS44LTk2IDQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOHpNMzIyLjkgOTZMMzIwIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOXptLTE4OCAxNC45Yy05LjUtOS41LTIyLjUtMTQuOS0zNi0xNC45TDk2IDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMXoiXX0scVR0PXJmZSxzZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTY0LTkyYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sVlR0PXNmZSxqVHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wZGYiLGljb246WzU3Niw1MTIsW10sImYxYzEiLCJNMjA4IDQ4TDk2IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMCA0OC04MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDIyOS41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzk3LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDE0OS41LTQ4IDAgMC0xMjgtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzQ4LjEgMTYwTDI1NiA2Ny45IDI1NiAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0yNDAgMzgwbDMyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTEyIDAgMCAyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiA4MGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTEyIDAgMCA0MCAxMiAwem05Ni04MGwzMiAwYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJsLTMyIDBjLTExIDAtMjAtOS0yMC0yMGwwLTEyOGMwLTExIDktMjAgMjAtMjB6bTMyIDEyOGM2LjYgMCAxMi01LjQgMTItMTJsMC02NGMwLTYuNi01LjQtMTItMTItMTJsLTEyIDAgMCA4OCAxMiAwem03Ni0xMDhjMC0xMSA5LTIwIDIwLTIwbDQ4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgMjQgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTI4IDAgMCA0NGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjh6Il19LGlmZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMjI0IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTk2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sVVR0PWlmZSxvZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTEyNS4yIDc2LjRjLTYuNS0xNCA1LTI4LjQgMjAuNC0yOC40bDIyMC44IDBjMTUuNCAwIDI2LjggMTQuNCAyMC40IDI4LjQtMjIuOCA0OS40LTcyLjggODMuNi0xMzAuOCA4My42cy0xMDcuOS0zNC4yLTEzMC44LTgzLjZ6bS0yLjYtMTczLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sV1R0PW9mZSxuZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLXdpbmstaGVhcnQiLGljb246WzY0MCw1MTIsWzEyODUzNiwia2lzcy13aW5rLWhlYXJ0Il0sImY1OTgiLCJNMzg2IDQzOS41Yy0yOS4yIDE1LjYtNjIuNSAyNC41LTk4IDI0LjUtMTE0LjkgMC0yMDgtOTMuMS0yMDgtMjA4UzE3My4yIDQ4IDI4OCA0OGMxMTMuMiAwIDIwNS4yIDkwLjQgMjA3LjkgMjAyLjkgMTQuMyAxLjUgMjguNiA2IDQxLjkgMTMuNyAyIDEuMiA0IDIuNCA1LjkgMy43IC4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy01LjgtMTIuOS0xMi0yOC41LTE3LjItNDUuMnpNMjU2IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC0xMi4zLTQuNi0yMy41LTEyLjItMzIgNy42LTguNSAxMi4yLTE5LjcgMTIuMi0zMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tNDgtNDhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNTItNDRsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxHVHQ9bmZlLFNlZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb3B5IixpY29uOls0NDgsNTEyLFtdLCJmMGM1IiwiTTM4NCAzMzZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDEzMy41IDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2w1OC41IDU4LjVjMyAzIDQuNyA3LjEgNC43IDExLjNMNDAwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZ6TTE5MiAzODRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNzAuNyAxOC43QzM1OC43IDYuNyAzNDIuNSAwIDMyNS41IDBMMTkyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtNDggMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4LTE2IDB6Il19LFlUdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1raW5nIixpY29uOls0NDgsNTEyLFs5ODE4XSwiZjQzZiIsIk0yMjQtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgODAgMTYxLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTcuMiAzNzQuNSA0MDUuNiA0MzVjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDc5LjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42TDkwLjggMzc0LjUgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNjEuOCAwIDAtODAtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTEzMS44IDQwMGwtMy42IDQuNC00Ny42IDU5LjYgMjg2LjYgMC00Ny42LTU5LjYtMy42LTQuNC0xODQuMyAwem0xLjEtNDguNWwuMyAuNSAxODEuNiAwIC4zLS41IDc4LjMtMTQzLjUtMzM4LjcgMCA3OC4zIDE0My41eiJdfSxsZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0yMDAgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sS1R0PWxmZSxaVHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTE3MC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em04MC0zMS4yYy04LjYtMTAuMS0yMy44LTExLjItMzMuOC0yLjZzLTExLjIgMjMuOC0yLjYgMzMuOGwzNC42IDQwLjQtMzQuNiA0MC40Yy04LjYgMTAuMS03LjUgMjUuMiAyLjYgMzMuOHMyNS4yIDcuNSAzMy44LTIuNmw0OC01NmM3LjctOSA3LjctMjIuMiAwLTMxLjJsLTQ4LTU2eiJdfSxjZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpbmsiLGljb246WzUxMiw1MTIsWyJncmluLXdpbmsiXSwiZjU4YyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sWFR0PWNmZSxkZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibW9uZXktYmlsbC0xIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC1hbHQiXSwiZjNkMSIsIk0xMTIgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTYwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDI4OCAwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtMTYwYy0zNS4zIDAtNjQtMjguNy02NC02NGwtMjg4IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTI1NiAxNmExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6bS0xNiA0NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sUVR0PWRmZSxKVHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMTc2LjkgMTExLjFjMzIuMS0xOC45IDY5LjItMzEuMSAxMTEuMS0zMS4xIDY1LjIgMCAxMTguOCAyOS42IDE1OS45IDY3LjcgMzguNSAzNS43IDY1LjEgNzguMyA3OC42IDEwOC4zLTEzLjYgMzAtNDAuMiA3Mi41LTc4LjYgMTA4LjMtMy4xIDIuOC02LjIgNS42LTkuNCA4LjRMMzkzLjggMzI4YzE0LTIwLjUgMjIuMi00NS4zIDIyLjItNzIgMC03MC43LTU3LjMtMTI4LTEyOC0xMjgtMjYuNyAwLTUxLjUgOC4yLTcyIDIyLjJsLTM5LjEtMzkuMXptMTgyIDE4MmwtMTA4LTEwOGMxMS4xLTUuOCAyMy43LTkuMSAzNy4xLTkuMSA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDEzLjQtMy4zIDI2LTkuMSAzNy4xek0xMDMuNCAxNzMuMmwtMzQtMzRjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42TDM1Mi4yIDQyMmMtMjAgNi40LTQxLjQgMTAtNjQuMiAxMC02NS4yIDAtMTE4LjgtMjkuNi0xNTkuOS02Ny43LTM4LjUtMzUuNy02NS4xLTc4LjMtNzguNi0xMDguMyAxMC40LTIzLjEgMjguNi01My42IDU0LTgyLjh6Il19LGVMdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXdvcmQiLGljb246WzM4NCw1MTIsW10sImYxYzIiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNzEuMyAyNzQuMmMtMy4yLTEyLjktMTYuMi0yMC43LTI5LjEtMTcuNVM4NS41IDI3MyA4OC43IDI4NS44bDMyIDEyOGMyLjUgMTAuMiAxMS40IDE3LjUgMjEuOSAxOC4xczIwLjEtNS43IDIzLjgtMTUuNWwyNS41LTY4LjEgMjUuNSA2OC4xYzMuNyA5LjggMTMuMyAxNi4xIDIzLjggMTUuNXMxOS40LTcuOSAyMS45LTE4LjFsMzItMTI4YzMuMi0xMi45LTQuNi0yNS45LTE3LjUtMjkuMXMtMjUuOSA0LjYtMjkuMSAxNy41bC0xMy4zIDUzLjItMjAuOS01NS44QzIxMSAyNjIuMiAyMDIgMjU2IDE5MiAyNTZzLTE5IDYuMi0yMi41IDE1LjZsLTIwLjkgNTUuOC0xMy4zLTUzLjJ6Il19LHVmZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTE0NGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LHRMdD11ZmUsYUx0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWtuaWdodCIsaWNvbjpbNDQ4LDUxMixbOTgyMl0sImY0NDEiLCJNMjMyLTMyYzExMC41IDAgMjAwIDg5LjUgMjAwIDIwMGwwIDEyNy43YzAgMTguOS02LjEgMzcuMS0xNy4yIDUyLjJsLTUuMSA2LjItMzYuMyA0MC43IDMyLjEgNDAuMmM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjZsLS4yIDQuOGMtMi40IDIzLjktMjIuNiA0Mi41LTQ3LjEgNDIuNWwtMjg5LjIgMC00LjgtLjJjLTIzLjktMi40LTQyLjUtMjIuNi00Mi41LTQ3LjEgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNmwzNy42LTQ3IDAtMjQuM2MwLTI0LjMgMTAuMS00Ny42IDI3LjgtNjQuMmw2My41LTU5LjUtMTcuNCAwLS4yIC4yYy0yMC4zIDIwLjMtNDkuNiAyOC4yLTc3LjEgMjEuMWwtNS41LTEuNmMtMzAuOS0xMC4zLTUyLjMtMzgtNTQuOS03MC4xbC0uMi02LjQgMC0xLjRjMC0xOS43IDcuMS0zOC44IDE5LjktNTMuOGw3Ni4xLTg4LjggMC00Ny4xIC4xLTIuNUMxMTMuNC0yMi42IDEyMy42LTMyIDEzNi0zMmw5NiAwek04MC43IDQ2NGwyODYuNiAwLTM4LjQtNDgtMjA5LjkgMC0zOC40IDQ4ek0xNjAgNDhjMCA1LjctMi4xIDExLjMtNS44IDE1LjZMNzIuMyAxNTkuMUM2NyAxNjUuNCA2NCAxNzMuNCA2NCAxODEuN2wwIDEuNCAuNCA1LjJjMS45IDExLjkgMTAuMyAyMS45IDIxLjkgMjUuOGw0LjUgMS4xYzEwLjUgMS45IDIxLjMtMS40IDI5LTlsNy4yLTcuMiAzLjctM2MzLjktMi42IDguNS00IDEzLjMtNGw4OCAwYzkuOCAwIDE4LjcgNiAyMi4zIDE1LjJzMS4zIDE5LjYtNS45IDI2LjNsLTEwNy44IDEwMWMtOC4xIDcuNi0xMi43IDE4LjEtMTIuNyAyOS4ybDAgNC4zIDIwNS4yIDAgNDAuNy00NS44IDIuMy0yLjhjNS4xLTYuOCA3LjgtMTUuMiA3LjgtMjMuN0wzODQgMTY4YzAtODMuOS02OC4xLTE1Mi0xNTItMTUybC03MiAwIDAgMzJ6bTMyIDcyYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHoiXX0scGZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTYsImdyaW4tYmVhbSJdLCJmNTgyIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHJMdD1wZmUsc0x0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTIxOSAxLjRjLTM1LjItMy43LTY2LjYgMjEuOC03MC4zIDU3bC02LjQgNjAuNi0xNy40LTQ5LjRDMTEzLjIgMzYuMyA3Ni42IDE4LjggNDMuMyAzMC41Uy03LjYgNzguOCA0LjEgMTEyLjFMNTYuOSAyNjIuMkM0MS43IDI3Ni43IDMyLjIgMjk3LjMgMzIuMiAzMjBsMCAyNGMwIDkyLjggNzUuMiAxNjggMTY4IDE2OGw0OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTcuOSAwLTE1LjQgMS40LTIyLjQgNC0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2LS43IDAtMS41IDAtMi4yIDBsNS45LTU2LjNjMy43LTM1LjItMjEuOC02Ni42LTU3LTcwLjN6bS0uMiAxNTUuNGMtNi42IDEwLjEtMTAuNSAyMi4yLTEwLjUgMzUuMmwwIDQ4YzAgLjcgMCAxLjQgMCAyLTUuMS0xLjMtMTAuNS0yLTE2LTJsLTcuNCAwLTUuNC0xNS4zIDE3LTE2MS4zYy45LTguOCA4LjgtMTUuMiAxNy42LTE0LjJzMTUuMiA4LjggMTQuMiAxNy42bC05LjUgOTAuMXpNNzkuNiA4NS42bDU0LjMgMTU0LjQtMjEuNyAwYy00IDAtOCAuMy0xMS45IC45TDQ5LjQgOTYuMmMtMi45LTguMyAxLjUtMTcuNSA5LjgtMjAuNHMxNy41IDEuNSAyMC40IDkuOHpNMjU2LjIgMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4em0zOC40IDEwOGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDUuNSAwIDEwLjktLjcgMTYtMmwwIDEwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC00OCAwYy02Ni4zIDAtMTIwLTUzLjctMTIwLTEyMGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMzNS4zIDAgNjQtMjguNyA2NC02NCAwLS43IDAtMS40IDAtMiA1LjEgMS4zIDEwLjUgMiAxNiAyIDcuOSAwIDE1LjQtMS40IDIyLjQtNHptNzMuNi0yOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OHoiXX0saUx0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbXBhc3MiLGljb246WzUxMiw1MTIsWzEyOTUxN10sImYxNGUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMDYuNyA2OS4xTDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4zIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sb0x0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTM4NCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sZmZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG5MdD1mZmUsaGZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGxMdD1oZmUsbWZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTIyLCJzbWlsZS1iZWFtIl0sImY1YjgiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGNMdD1tZmUsZEx0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQwMEw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE0NCA0MTYgMCAwIDE0NGMwIDguOC03LjIgMTYtMTYgMTZ6bTE2LTIwOGwtNDE2IDAgMC05NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjUwLjcgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2TDQ0OCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDh6TTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSx1THQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNzYgMzIwbDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptLTcyLTcyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGdmZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXJvbGxpbmctZXllcyIsaWNvbjpbNTEyLDUxMixbMTI4NTgwLCJtZWgtcm9sbGluZy1leWVzIl0sImY1YTUiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMzc2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTE2MCAyNjRjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTkyLTQwYy0yMi4xIDAtNDAtMTcuOS00MC00MCAwLTkuNSAzLjMtMTguMSA4LjgtMjUgMy4yIDE0LjMgMTYgMjUgMzEuMiAyNXMyOC0xMC43IDMxLjItMjVjNS41IDYuOCA4LjggMTUuNSA4LjggMjUgMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgNDBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Il19LHBMdD1nZmUsYmZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NmEyNTYgMjU2IDAgMSAxIC01MTIgMCAyNTYgMjU2IDAgMSAxIDUxMiAwek0xNTIgMzUyYzAgMTEuOSA4LjYgMjEuOCAyMCAyMy43bDAtNDcuM2MtMTEuNCAxLjktMjAgMTEuOC0yMCAyMy43em04NCAyNGwwLTQ4LTI0IDAgMCA0OCAyNCAwem02NCAwbDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTQwLS4zYzExLjQtMS45IDIwLTExLjggMjAtMjMuN3MtOC42LTIxLjgtMjAtMjMuN2wwIDQ3LjN6TTE3NiAyODhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTE2MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0em0wLTExMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxmTHQ9YmZlLHZmZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em0wIDMwNGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnoiXX0saEx0PXZmZSxtTHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LWdyb3VwIixpY29uOls1NzYsNTEyLFtdLCJmMjQ3IiwiTTQwIDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQ4IDU5LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMzI5LjMgMGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDI2NS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMzI5LjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yNjUuM3pNNTEyIDBjLTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDkwLjkgMTYuNSAxMTMuOSA0MCAxMjMuM2wwIDI2NS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDMyOS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI2NS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NHpNNDg4IDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDQyNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQyNCAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0xOTIgMTc2bDg4IDAgMCA1Ni04OCAwIDAtNTZ6bS04LTQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDcyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwem03MiAxODRsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYzAgMTQuNi0zLjkgMjguMi0xMC43IDQwbDI2LjcgMCAwIDU2LTg4IDAgMC0xNi40Yy0yLjYgLjMtNS4zIC40LTggLjRsLTMyIDB6Il19LHhmZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZsdXNoZWQiLGljb246WzUxMiw1MTIsWzEyODU2MywiZmx1c2hlZCJdLCJmNTc5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xNjAgMjQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE5MiAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTI4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyOCAwek0xNjAgMTc2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMCAxMjhhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE0NC04MGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6Il19LGdMdD14ZmUseWZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45ek0yNjQuMSA5MS44bDAgMjg0LjEtMTAwLjEgNTAuOSAxOS44LTEyNS41YzEuMi03LjYtMS4zLTE1LjMtNi43LTIwLjdsLTg5LjgtODkuOSAxMjUuNS0yMGM3LjYtMS4yIDE0LjEtNiAxNy42LTEyLjhsMzMuOC02Ni4yem00OCAyODQuMWwwLTI4NC4xIDMzLjggNjYuMmMzLjUgNi44IDEwIDExLjYgMTcuNiAxMi44bDEyNS41IDIwLTg5LjggODkuOWMtNS40IDUuNC03LjkgMTMuMS02LjcgMjAuN2wxOS44IDEyNS41LTEwMC4xLTUwLjl6Il19LGJMdD15ZmUsdkx0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNODAgMjg4bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI0IDM1IDM1YzMuMiAzLjIgNy41IDUgMTIgNSA5LjQgMCAxNy03LjYgMTctMTdsMC05NC4xYzAtOS40LTcuNi0xNy0xNy0xNy00LjUgMC04LjggMS44LTEyIDVsLTM1IDM1IDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSx3ZmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaCIsaWNvbjpbNTEyLDUxMixbImxhdWdoIl0sImY1OTkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0seEx0PXdmZSx5THQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTE2MCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDguOCAwIDE2IDcuMiAxNiAxNiAwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA3LjggMCAxNC4zIDUuNiAxNS43IDEzIDEuNiA4LjIgNy4zIDE1LjEgMTUuMSAxOHMxNi43IDEuNiAyMy4zLTMuNmMyLjctMi4xIDYuMS0zLjQgOS45LTMuNCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxMjBjMCAzOS44LTMyLjIgNzItNzIgNzJsLTExNi42IDBjLTM3LjQgMC03Mi40LTE4LjctOTMuMi00OS45TDUwLjcgMzEyLjljLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjRMMTE2IDM1My4yYzUuOSA4LjggMTYuOCAxMi43IDI2LjkgOS43czE3LTEyLjQgMTctMjNMMTYwIDY0ek0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxOTcuN0M5MS4yIDIzOCA1NS41IDIzMi44IDI4LjUgMjUwLjctLjkgMjcwLjQtOC45IDMxMC4xIDEwLjggMzM5LjVMNzguMyA0NDAuOGMyOS43IDQ0LjUgNzkuNiA3MS4yIDEzMy4xIDcxLjJMMzI4IDUxMmM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC00LjUgMC04LjggLjUtMTMgMS4zLTExLjctMTUuNC0zMC4yLTI1LjMtNTEtMjUuMy02LjkgMC0xMy41IDEuMS0xOS43IDMuMS0xMS42LTE2LjQtMzAuNy0yNy4xLTUyLjMtMjcuMS0yLjcgMC01LjQgLjItOCAuNUwyNDAgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTQ4IDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSx3THQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NiAzNC40IDAgNDEgNjguM2M2LjggMTEuNCAyMS42IDE1IDMyLjkgOC4yczE1LTIxLjYgOC4yLTMyLjlsLTMwLjItNTAuM2MyNC42LTExLjUgNDEuNi0zNi40IDQxLjYtNjUuMyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtODAgMHptNzIgOTZsLTQ4IDAgMC00OCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDB6Il19LE0kYT17ZmFTcXVhcmVNaW51czplcGUsZmFNaW51c1NxdWFyZTpzQ3QsZmFDYWxlbmRhckNoZWNrOmlDdCxmYUZhY2VLaXNzOnRwZSxmYUtpc3M6b0N0LGZhUGFzdGU6QWIsZmFGaWxlQ2xpcGJvYXJkOm5DdCxmYUhhbmRQb2ludExlZnQ6bEN0LGZhRmlsZUV4Y2VsOmNDdCxmYUVudmVsb3BlOmRDdCxmYVNxdWFyZUNhcmV0RG93bjphcGUsZmFDYXJldFNxdWFyZURvd246dUN0LGZhVHJ1Y2s6cEN0LGZhQmVsbDpmQ3QsZmFNZXNzYWdlOlBiLGZhQ29tbWVudEFsdDpoQ3QsZmFGYWNlRGl6enk6cnBlLGZhRGl6enk6bUN0LGZhQ2FsZW5kYXJEYXlzOnNwZSxmYUNhbGVuZGFyQWx0OmdDdCxmYUhhbmRQb2ludFVwOmJDdCxmYUhhbmRMaXphcmQ6dkN0LGZhU3F1YXJlRnVsbDp4Q3QsZmFDaXJjbGVQYXVzZTppcGUsZmFQYXVzZUNpcmNsZTp5Q3QsZmFIYXJkRHJpdmU6b3BlLGZhSGRkOndDdCxmYUZpbGVaaXBwZXI6bnBlLGZhRmlsZUFyY2hpdmU6TUN0LGZhRmxvcHB5RGlzazpscGUsZmFTYXZlOmtDdCxmYUZhY2VHcmluVG9uZ3VlU3F1aW50OmNwZSxmYUdyaW5Ub25ndWVTcXVpbnQ6U0N0LGZhQ2FtZXJhOmRwZSxmYUNhbWVyYUFsdDp6Q3QsZmFGYWNlR3JpblN0YXJzOnVwZSxmYUdyaW5TdGFyczpDQ3QsZmFFeWU6X0N0LGZhRmFjZVNhZFRlYXI6cHBlLGZhU2FkVGVhcjpUQ3QsZmFTaGFyZUZyb21TcXVhcmU6ZnBlLGZhU2hhcmVTcXVhcmU6TEN0LGZhTm90ZVN0aWNreTpocGUsZmFTdGlja3lOb3RlOiRDdCxmYUhhbmRCYWNrRmlzdDptcGUsZmFIYW5kUm9jazpEQ3QsZmFDaGVzc1F1ZWVuOkFDdCxmYUZhY2VHcmluVGVhcnM6Z3BlLGZhR3JpblRlYXJzOlBDdCxmYVBlblRvU3F1YXJlOmJwZSxmYUVkaXQ6RUN0LGZhRmFjZUdyaW5CZWFtU3dlYXQ6dnBlLGZhR3JpbkJlYW1Td2VhdDpJQ3QsZmFDbG9jazp4cGUsZmFDbG9ja0ZvdXI6TkN0LGZhRmFjZUxhdWdoV2luazp5cGUsZmFMYXVnaFdpbms6UkN0LGZhUGFwZXJQbGFuZTpPQ3QsZmFIZWFydDpGQ3QsZmFGb250QXdlc29tZTptZWUsZmFGb250QXdlc29tZUZsYWc6QkN0LGZhRm9udEF3ZXNvbWVMb2dvRnVsbDpIQ3QsZmFDbG9uZTpxQ3QsZmFGb2xkZXJPcGVuOlZDdCxmYVdpbmRvd01pbmltaXplOmpDdCxmYVN0YXJIYWxmOlVDdCxmYUFsYXJtQ2xvY2s6V0N0LGZhTmV3c3BhcGVyOkdDdCxmYUhvc3BpdGFsOmdlZSxmYUhvc3BpdGFsQWx0OllDdCxmYUhvc3BpdGFsV2lkZTpLQ3QsZmFDaXJjbGVTdG9wOndwZSxmYVN0b3BDaXJjbGU6WkN0LGZhT2JqZWN0VW5ncm91cDpYQ3QsZmFDb21tZW50OlFDdCxmYUNoZXNzUGF3bjpKQ3QsZmFDYWxlbmRhclBsdXM6ZV90LGZhQ2xpcGJvYXJkOnRfdCxmYVRodW1ic0Rvd246YV90LGZhSWRCYWRnZTpyX3QsZmFTcXVhcmVDaGVjazpNcGUsZmFDaGVja1NxdWFyZTpzX3QsZmFDaGVzc0Jpc2hvcDppX3QsZmFFbnZlbG9wZU9wZW46b190LGZhQ2lyY2xlWG1hcms6VTgsZmFUaW1lc0NpcmNsZTpuX3QsZmFYbWFya0NpcmNsZTpsX3QsZmFTcXVhcmVDYXJldFVwOmtwZSxmYUNhcmV0U3F1YXJlVXA6Y190LGZhRmlsZUltYWdlOmRfdCxmYVNxdWFyZUNhcmV0UmlnaHQ6U3BlLGZhQ2FyZXRTcXVhcmVSaWdodDp1X3QsZmFTdW46a2VlLGZhSW1hZ2U6cF90LGZhTGlnaHRidWxiOmZfdCxmYUFkZHJlc3NDYXJkOmJlZSxmYUNvbnRhY3RDYXJkOmhfdCxmYVZjYXJkOm1fdCxmYUZhY2VNZWg6enBlLGZhTWVoOmdfdCxmYU1hcDpiX3QsZmFIYW5kUG9pbnREb3duOnZfdCxmYUZhY2VNZWhCbGFuazpDcGUsZmFNZWhCbGFuazp4X3QsZmFGYWNlR3JpblRvbmd1ZTpfcGUsZmFHcmluVG9uZ3VlOnlfdCxmYUZ1dGJvbDp2ZWUsZmFGdXRib2xCYWxsOndfdCxmYVNvY2NlckJhbGw6TV90LGZhRmFjZVN1cnByaXNlOlRwZSxmYVN1cnByaXNlOmtfdCxmYUZvbGRlcjpMcGUsZmFGb2xkZXJCbGFuazpTX3QsZmFDbG91ZDp6X3QsZmFDaXJjbGU6Q190LGZhRmFjZUdyaW5TcXVpbnQ6JHBlLGZhR3JpblNxdWludDpfX3QsZmFDaXJjbGVVc2VyOkRwZSxmYVVzZXJDaXJjbGU6VF90LGZhUmVjdGFuZ2xlTGlzdDpBcGUsZmFMaXN0QWx0OkxfdCxmYUhhbmQ6UHBlLGZhSGFuZFBhcGVyOiRfdCxmYVRodW1ic1VwOkRfdCxmYUJ1aWxkaW5nOkFfdCxmYUNoZXNzUm9vazpQX3QsZmFDaXJjbGVRdWVzdGlvbjpFcGUsZmFRdWVzdGlvbkNpcmNsZTpFX3QsZmFGaWxlOklfdCxmYUZhY2VTYWRDcnk6SXBlLGZhU2FkQ3J5Ok5fdCxmYUNhbGVuZGFyTWludXM6Ul90LGZhRmFjZVRpcmVkOk5wZSxmYVRpcmVkOk9fdCxmYUhhbmRQb2ludFJpZ2h0OkZfdCxmYUNpcmNsZVVwOlJwZSxmYUFycm93QWx0Q2lyY2xlVXA6Ql90LGZhSGFuZFNjaXNzb3JzOkhfdCxmYUdlbTpxX3QsZmFSZWN0YW5nbGVYbWFyazokYixmYVJlY3RhbmdsZVRpbWVzOlZfdCxmYVRpbWVzUmVjdGFuZ2xlOmpfdCxmYVdpbmRvd0Nsb3NlOlVfdCxmYVRyYXNoQ2FuOkViLGZhVHJhc2hBbHQ6V190LGZhTGlmZVJpbmc6R190LGZhQ29weXJpZ2h0OllfdCxmYUNpcmNsZUxlZnQ6T3BlLGZhQXJyb3dBbHRDaXJjbGVMZWZ0OktfdCxmYUNhbGVuZGFyOlpfdCxmYUZhY2VGcm93bk9wZW46RnBlLGZhRnJvd25PcGVuOlhfdCxmYUNoYXJ0QmFyOkJwZSxmYUJhckNoYXJ0OlFfdCxmYUhvdXNlOkRiLGZhSG9tZTpKX3QsZmFIb21lQWx0OmVUdCxmYUhvbWVMZ0FsdDp0VHQsZmFGYWNlRnJvd246SHBlLGZhRnJvd246YVR0LGZhVXNlcjp4ZWUsZmFVc2VyQWx0OnJUdCxmYVVzZXJMYXJnZTpzVHQsZmFTbm93Zmxha2U6aVR0LGZhQm9va21hcms6b1R0LGZhU3F1YXJlQ2FyZXRMZWZ0OnFwZSxmYUNhcmV0U3F1YXJlTGVmdDpuVHQsZmFIYW5kc2hha2U6eWVlLGZhSGFuZHNoYWtlQWx0OmxUdCxmYUhhbmRzaGFrZVNpbXBsZTpjVHQsZmFGYWNlU21pbGVXaW5rOlZwZSxmYVNtaWxlV2luazpkVHQsZmFGYWNlR3JpblNxdWludFRlYXJzOmpwZSxmYUdyaW5TcXVpbnRUZWFyczp1VHQsZmFGaWxlQXVkaW86cFR0LGZhQ2FsZW5kYXJYbWFyazpVcGUsZmFDYWxlbmRhclRpbWVzOmZUdCxmYUNpcmNsZURvd246V3BlLGZhQXJyb3dBbHRDaXJjbGVEb3duOmhUdCxmYUZpbGVMaW5lczp3ZWUsZmFGaWxlQWx0Om1UdCxmYUZpbGVUZXh0OmdUdCxmYUNvbW1lbnRzOmJUdCxmYUNpcmNsZUNoZWNrOkliLGZhQ2hlY2tDaXJjbGU6dlR0LGZhTW9vbjp4VHQsZmFDbG9zZWRDYXB0aW9uaW5nOnlUdCxmYUltYWdlczp3VHQsZmFDaXJjbGVSaWdodDpHcGUsZmFBcnJvd0FsdENpcmNsZVJpZ2h0Ok1UdCxmYUlkQ2FyZDpZcGUsZmFEcml2ZXJzTGljZW5zZTprVHQsZmFDaXJjbGVQbGF5OktwZSxmYVBsYXlDaXJjbGU6U1R0LGZhRmFjZUxhdWdoQmVhbTpacGUsZmFMYXVnaEJlYW06elR0LGZhQWRkcmVzc0Jvb2s6WHBlLGZhQ29udGFjdEJvb2s6Q1R0LGZhSG91cmdsYXNzOlFwZSxmYUhvdXJnbGFzc0VtcHR5Ol9UdCxmYUhlYWRwaG9uZXM6TWVlLGZhSGVhZHBob25lc0FsdDpUVHQsZmFIZWFkcGhvbmVzU2ltcGxlOkxUdCxmYUZpbGVQb3dlcnBvaW50OiRUdCxmYVdpbmRvd01heGltaXplOkRUdCxmYUNvbW1lbnREb3RzOkpwZSxmYUNvbW1lbnRpbmc6QVR0LGZhRmFjZUdyaW5Ub25ndWVXaW5rOmVmZSxmYUdyaW5Ub25ndWVXaW5rOlBUdCxmYUhvdXJnbGFzc0hhbGY6dGZlLGZhSG91cmdsYXNzMjpFVHQsZmFDcmVkaXRDYXJkOmFmZSxmYUNyZWRpdENhcmRBbHQ6SVR0LGZhSGFuZFNwb2NrOk5UdCxmYUJlbGxTbGFzaDpSVHQsZmFTdGFyOk9UdCxmYUZsYWc6RlR0LGZhTGVtb246QlR0LGZhV2luZG93UmVzdG9yZTpIVHQsZmFGYWNlR3JpbkhlYXJ0czpyZmUsZmFHcmluSGVhcnRzOnFUdCxmYUZhY2VLaXNzQmVhbTpzZmUsZmFLaXNzQmVhbTpWVHQsZmFGaWxlUGRmOmpUdCxmYUZhY2VHcmluV2lkZTppZmUsZmFHcmluQWx0OlVUdCxmYUZhY2VMYXVnaFNxdWludDpvZmUsZmFMYXVnaFNxdWludDpXVHQsZmFGYWNlS2lzc1dpbmtIZWFydDpuZmUsZmFLaXNzV2lua0hlYXJ0OkdUdCxmYUNvcHk6U2VlLGZhQ2hlc3NLaW5nOllUdCxmYVNxdWFyZVBsdXM6bGZlLGZhUGx1c1NxdWFyZTpLVHQsZmFGaWxlQ29kZTpaVHQsZmFGYWNlR3Jpbldpbms6Y2ZlLGZhR3Jpbldpbms6WFR0LGZhTW9uZXlCaWxsMTpkZmUsZmFNb25leUJpbGxBbHQ6UVR0LGZhRXllU2xhc2g6SlR0LGZhRmlsZVdvcmQ6ZUx0LGZhRmFjZUFuZ3J5OnVmZSxmYUFuZ3J5OnRMdCxmYUNoZXNzS25pZ2h0OmFMdCxmYUZhY2VHcmluQmVhbTpwZmUsZmFHcmluQmVhbTpyTHQsZmFIYW5kUGVhY2U6c0x0LGZhQ29tcGFzczppTHQsZmFTcXVhcmU6b0x0LGZhRmFjZUdyaW46ZmZlLGZhR3JpbjpuTHQsZmFGYWNlU21pbGU6aGZlLGZhU21pbGU6bEx0LGZhRmFjZVNtaWxlQmVhbTptZmUsZmFTbWlsZUJlYW06Y0x0LGZhRm9sZGVyQ2xvc2VkOmRMdCxmYUtleWJvYXJkOnVMdCxmYUZhY2VSb2xsaW5nRXllczpnZmUsZmFNZWhSb2xsaW5nRXllczpwTHQsZmFGYWNlR3JpbWFjZTpiZmUsZmFHcmltYWNlOmZMdCxmYUNpcmNsZURvdDp2ZmUsZmFEb3RDaXJjbGU6aEx0LGZhT2JqZWN0R3JvdXA6bUx0LGZhRmFjZUZsdXNoZWQ6eGZlLGZhRmx1c2hlZDpnTHQsZmFTdGFySGFsZlN0cm9rZTp5ZmUsZmFTdGFySGFsZkFsdDpiTHQsZmFGaWxlVmlkZW86dkx0LGZhRmFjZUxhdWdoOndmZSxmYUxhdWdoOnhMdCxmYUhhbmRQb2ludGVyOnlMdCxmYVJlZ2lzdGVyZWQ6d0x0fX0pO3ZhciBrJGEsa0x0LFNMdCx6THQsQ0x0LF9MdCxUTHQsTEx0LCRMdCxETHQsQUx0LHplZSxQTHQsRUx0LElMdCxOTHQsTWZlLFJMdCxrZmUsT0x0LEZMdCxCTHQsU2ZlLEhMdCxxTHQsVkx0LGpMdCxRYixVTHQsV0x0LHpmZSxHTHQsWUx0LEtMdCxaTHQsWEx0LFFMdCxKTHQsZSR0LENmZSx0JHQsYSR0LHIkdCxfZmUscyR0LGkkdCxvJHQsbiR0LGwkdCxKYixjJHQsVGZlLGQkdCx1JHQsQ2VlLHAkdCxmJHQsTGZlLGgkdCwkZmUsbSR0LGckdCxEZmUsYiR0LEFmZSx2JHQsUGZlLHgkdCx5JHQsdyR0LE0kdCxrJHQsUyR0LHokdCxFZmUsQyR0LF8kdCxUJHQsTCR0LElmZSwkJHQsRCR0LEEkdCxQJHQsRSR0LEkkdCxfZWUsTiR0LFIkdCxPJHQsVGVlLEYkdCxCJHQsSCR0LE5mZSxxJHQsViR0LGokdCxVJHQsUmZlLFckdCxNdGUsRyR0LGt0ZSxZJHQsSyR0LE9mZSxaJHQsRmZlLFgkdCxRJHQsTGVlLEokdCxlRHQsdER0LGFEdCxyRHQsc0R0LGlEdCxvRHQsU3RlLGV2LG5EdCxsRHQsQmZlLGNEdCxkRHQsTmIsdUR0LHBEdCxmRHQsSGZlLGhEdCxtRHQsZ0R0LHFmZSxiRHQsVmZlLHZEdCx4RHQseUR0LHdEdCxqZmUsTUR0LGtEdCxTRHQsVWZlLHpEdCxXZmUsQ0R0LF9EdCxURHQsTER0LCRlZSwkRHQsRER0LEFEdCxQRHQsRUR0LElEdCxORHQsR2ZlLFJEdCxPRHQsRkR0LEJEdCxIRHQsWWZlLHFEdCxWRHQsUmIsakR0LFVEdCxXRHQsR0R0LFlEdCxLRHQsRGVlLFpEdCxYRHQsUUR0LEpEdCxlQXQsS2ZlLHRBdCxhQXQsckF0LHNBdCxpQXQsb0F0LFpmZSxuQXQsbEF0LGNBdCxkQXQsWGZlLHVBdCxwQXQsZkF0LFFmZSxoQXQsbUF0LEpmZSxnQXQsZTVlLGJBdCx2QXQsdDVlLHhBdCx5QXQsYTVlLHdBdCxyNWUsTUF0LGtBdCx0dixTQXQsYXYsekF0LENBdCxBZWUsX0F0LFRBdCxMQXQsczVlLCRBdCxEQXQsaTVlLEFBdCxQQXQsRUF0LElBdCxvNWUsTkF0LFJBdCxPQXQsRkF0LEJBdCxuNWUsSEF0LHFBdCxWQXQsakF0LGw1ZSxVQXQsYzVlLFdBdCxHQXQsWUF0LEtBdCxaQXQsZDVlLFhBdCxRQXQsSkF0LGVQdCx1NWUsdFB0LGFQdCxwNWUsclB0LGY1ZSxzUHQsaVB0LG9QdCxuUHQsbFB0LGNQdCxoNWUsZFB0LHVQdCxwUHQsZlB0LGhQdCxtNWUsbVB0LGdQdCxiUHQsdlB0LGc1ZSx4UHQsYjVlLHlQdCx6dGUsQ3RlLHY1ZSx3UHQseDVlLE1QdCxrUHQsU1B0LGh2LHk1ZSx6UHQsQ1B0LF9QdCxUUHQsTFB0LCRQdCx3NWUsRFB0LF90ZSxBUHQsUFB0LEVQdCxJUHQsTlB0LE01ZSxSUHQsazVlLE9QdCxGUHQsQlB0LEhQdCxTNWUscVB0LFBlZSxWUHQsalB0LFVQdCx6NWUsV1B0LEdQdCxZUHQsS1B0LEM1ZSxaUHQsWFB0LFFQdCxKUHQsXzVlLGVFdCx0RXQsYUV0LHJFdCxzRXQsaUV0LG9FdCxuRXQsbEV0LGNFdCxkRXQsdUV0LHBFdCxUNWUsZkV0LGhFdCxtRXQsZ0V0LGJFdCx2RXQseEV0LEw1ZSx5RXQsd0V0LE1FdCxXOCxrRXQsU0V0LHpFdCxDRXQsX0V0LCQ1ZSxURXQsRDVlLExFdCxBNWUsJEV0LFA1ZSxERXQsRTVlLEFFdCxydixQRXQsSTVlLEVFdCxONWUsSUV0LFI1ZSxORXQsUkV0LE9FdCxGRXQsTzVlLEJFdCxIRXQsRjVlLHFFdCxWRXQsQjVlLGpFdCxVRXQsV0V0LEdFdCxINWUsWUV0LEtFdCxaRXQscTVlLFhFdCxRRXQsT2IsSkV0LGVJdCx0SXQsYUl0LHJJdCxzSXQsVjVlLGlJdCxqNWUsb0l0LG5JdCxsSXQsVTVlLGNJdCxkSXQsdUl0LFc1ZSxwSXQsRzVlLGZJdCxFZWUsaEl0LG1JdCxnSXQsYkl0LHZJdCx4SXQseUl0LHdJdCxNSXQsa0l0LFNJdCx6SXQsQ0l0LF9JdCxGYixUSXQsTEl0LCRJdCxESXQsQUl0LFBJdCxFSXQsSUl0LFk1ZSxOSXQsUkl0LE9JdCxGSXQsQkl0LEhJdCxxSXQsVkl0LGpJdCxVSXQsSzVlLFdJdCxHSXQsWUl0LEtJdCxaSXQsWEl0LFFJdCxaNWUsSkl0LFg1ZSxlTnQsdE50LFE1ZSxhTnQsck50LHNOdCxpTnQsSjVlLG9OdCxuTnQsbE50LGVoZSxjTnQsdGhlLGROdCx1TnQsYWhlLHBOdCxmTnQsaE50LG1OdCxyaGUsZ050LGJOdCx2TnQsVHRlLHhOdCx5TnQsd050LHNoZSxNTnQsa050LFNOdCx6TnQsQ050LGloZSxfTnQsVE50LExOdCwkTnQsRE50LG9oZSxBTnQsUE50LEVOdCxuaGUsSU50LE5OdCxJZWUsUk50LE9OdCxGTnQsQk50LGxoZSxITnQscU50LFZOdCxjaGUsak50LGRoZSxVTnQsV050LEdOdCxZTnQsc3YsS050LHVoZSxaTnQsWE50LFFOdCxKTnQsZVJ0LHBoZSx0UnQsZmhlLGFSdCxoaGUsclJ0LHNSdCxOZWUsaVJ0LG9SdCxtaGUsblJ0LFJlZSxsUnQsY1J0LGRSdCx1UnQscFJ0LGZSdCxoUnQsbVJ0LGdoZSxnUnQsYlJ0LHZSdCx4UnQseVJ0LGJoZSx3UnQsTVJ0LGtSdCx2aGUsU1J0LHhoZSx6UnQseWhlLENSdCxfUnQsVFJ0LExSdCwkUnQsRFJ0LEFSdCx3aGUsUFJ0LEVSdCxJUnQsTlJ0LE1oZSxSUnQsT1J0LEZSdCxCUnQsSFJ0LHFSdCxraGUsVlJ0LGpSdCxTaGUsVVJ0LFdSdCx6aGUsR1J0LFlSdCxLUnQsWlJ0LENoZSxYUnQsUVJ0LEpSdCxfaGUsZU90LFRoZSx0T3QsYU90LHJPdCxzT3QsTGhlLGlPdCxvT3Qsbk90LGxPdCxjT3QsJGhlLGRPdCxEaGUsdU90LEFoZSxwT3QsZk90LFBoZSxoT3QsRWhlLG1PdCxnT3QsYk90LHZPdCx4T3QseU90LHdPdCxNT3Qsa090LFNPdCx6T3QsT2VlLENPdCxfT3QsWjgsVE90LExPdCwkT3QsRmVlLERPdCxBT3QsUE90LEVPdCxJT3QsTk90LFJPdCxJaGUsT090LE5oZSxGT3QsQk90LEhPdCxSaGUscU90LE9oZSxWT3Qsak90LEJlZSxVT3QsV090LEdPdCxZT3QsRzgsS090LFpPdCxYT3QsUU90LEpPdCxlRnQsdEZ0LEZoZSxhRnQsckZ0LHNGdCxpRnQsQmhlLG9GdCxuRnQsbEZ0LGNGdCxkRnQsdUZ0LHBGdCxIaGUsZkZ0LGhGdCxtRnQsZ0Z0LGJGdCx2RnQscWhlLHhGdCxMdGUsVmhlLHlGdCx3RnQsTUZ0LGpoZSxrRnQsVWhlLFNGdCx6RnQsQ0Z0LFdoZSxfRnQsVEZ0LEdoZSxMRnQsJEZ0LERGdCxBRnQsWWhlLFBGdCxFRnQsSUZ0LE5GdCxSRnQsT0Z0LEtoZSxGRnQsQkZ0LCR0ZSxIRnQscUZ0LFpoZSxWRnQsakZ0LFVGdCxCYixXRnQsR0Z0LFlGdCxLRnQsSGIsWkZ0LFhGdCxRRnQsSkZ0LGVCdCx0QnQsWGhlLGFCdCxIZWUsckJ0LHNCdCxpQnQsUWhlLG9CdCxuQnQsbEJ0LGNCdCxkQnQsdUJ0LHBCdCxKaGUsZkJ0LER0ZSxoQnQsbUJ0LGdCdCxlOGUsYkJ0LHQ4ZSx2QnQseEJ0LGE4ZSx5QnQscWIsd0J0LE1CdCxrQnQsU0J0LHpCdCxDQnQsX0J0LFRCdCxMQnQscjhlLCRCdCxEQnQsQUJ0LFBCdCxxZWUsRUJ0LElCdCxzOGUsTkJ0LFJCdCxPQnQsaThlLEZCdCxCQnQsSEJ0LG84ZSxxQnQsVkJ0LGpCdCxVQnQsV0J0LEdCdCxZQnQsS0J0LFpCdCxuOGUsWEJ0LGw4ZSxRQnQsSkJ0LGVIdCx0SHQsYUh0LHJIdCxzSHQsYzhlLGlIdCxvSHQsbkh0LGQ4ZSxsSHQsY0h0LHU4ZSxkSHQscDhlLHVIdCxmOGUscEh0LGZIdCxoSHQsaDhlLG1IdCxtOGUsZ0h0LGc4ZSxiSHQsdkh0LGI4ZSx4SHQsdjhlLHlIdCx4OGUsd0h0LE1IdCx5OGUsa0h0LFNIdCx6SHQsQ0h0LF9IdCxUSHQsTEh0LCRIdCxESHQsQUh0LHc4ZSxQSHQsTThlLEVIdCxrOGUsSUh0LE5IdCxBdGUsUkh0LFM4ZSxPSHQsRkh0LEJIdCx6OGUsSEh0LHFIdCxDOGUsVkh0LGl2LGpIdCxVSHQsV0h0LF84ZSxHSHQsVDhlLFlIdCxLSHQsTDhlLFpIdCwkOGUsWEh0LEQ4ZSxRSHQsSkh0LGVxdCx0cXQsYXF0LEE4ZSxycXQsUDhlLHNxdCxpcXQsb3F0LG5xdCxFOGUsbHF0LGNxdCxkcXQsSThlLHVxdCxwcXQsZnF0LE44ZSxocXQsbXF0LGdxdCxicXQsUjhlLHZxdCx4cXQsTzhlLHlxdCx3cXQsTXF0LEY4ZSxrcXQsU3F0LHpxdCxCOGUsQ3F0LEg4ZSxfcXQsVmVlLFRxdCxMcXQsJHF0LHE4ZSxEcXQsQXF0LFBxdCxWOGUsRXF0LElxdCxOcXQsajhlLFJxdCxPcXQsRnF0LEJxdCxIcXQscXF0LFZxdCxqcXQsVXF0LFdxdCxHcXQsWXF0LFU4ZSxLcXQsUHRlLFpxdCxXOGUsWHF0LFFxdCxKcXQsZVZ0LEc4ZSx0VnQsYVZ0LHJWdCxzVnQsaVZ0LG9WdCxuVnQsVmIsbFZ0LGNWdCxkVnQsdVZ0LG92LHBWdCxZOGUsZlZ0LGhWdCxtVnQsSzhlLGdWdCxiVnQsWjhlLHZWdCx4VnQseVZ0LHdWdCxNVnQsWDhlLGtWdCxROGUsU1Z0LHpWdCxDVnQsSjhlLF9WdCxUVnQsTFZ0LGVtZSwkVnQsRFZ0LEFWdCxQVnQsRVZ0LElWdCxOVnQsdG1lLFJWdCxFdGUsT1Z0LEZWdCxCVnQsYW1lLEhWdCxxVnQscm1lLFZWdCxzbWUsalZ0LFVWdCxXVnQsaW1lLEdWdCxvbWUsWVZ0LG5tZSxLVnQsWlZ0LGxtZSxYVnQsUVZ0LEpWdCxlanQsY21lLHRqdCxqYixhanQscmp0LHNqdCxpanQsZG1lLG9qdCx1bWUsbmp0LGxqdCxjanQsZGp0LHBtZSx1anQsVWIscGp0LGZqdCxoanQsZm1lLG1qdCxnanQsYmp0LHZqdCxobWUseGp0LG1tZSx5anQsd2p0LE1qdCxnbWUsa2p0LGJtZSxTanQsemp0LHZtZSxDanQseG1lLF9qdCx5bWUsVGp0LHdtZSxManQsJGp0LERqdCxBanQsTW1lLFBqdCxFanQsSWp0LE5qdCxSanQsT2p0LEZqdCxCanQsa21lLEhqdCxTbWUscWp0LFZqdCxqanQsVWp0LHptZSxXanQsR2p0LGplZSxZanQsS2p0LFpqdCxYanQsUWp0LEpqdCxlVXQsV2IsdFV0LGFVdCxyVXQsc1V0LGlVdCxvVXQsblV0LGxVdCxjVXQsZFV0LHVVdCxwVXQsZlV0LFVlZSxoVXQsbVV0LGdVdCxiVXQsdlV0LHhVdCxDbWUseVV0LF9tZSx3VXQsTVV0LGtVdCxXZWUsU1V0LHpVdCxDVXQsVG1lLF9VdCxHZWUsVFV0LExVdCwkVXQsRFV0LEl0ZSxZZWUsQVV0LFBVdCxMbWUsRVV0LElVdCxOVXQsUlV0LCRtZSxPVXQsRlV0LERtZSxCVXQsSFV0LEFtZSxxVXQsVlV0LGpVdCxVVXQsV1V0LEdVdCxLZWUsWVV0LEtVdCxQbWUsWlV0LFhVdCxRVXQsSlV0LGVXdCx0V3QsYVd0LHJXdCxFbWUsc1d0LGlXdCxJbWUsb1d0LE5tZSxuV3QsbFd0LHQ0LGNXdCxkV3QsdVd0LHBXdCxSbWUsZld0LGhXdCxtV3QsZ1d0LE9tZSxiV3QsRm1lLHZXdCxaZWUseFd0LHlXdCx3V3QsQm1lLE1XdCxOdGUsa1d0LFNXdCxIbWUseld0LFhlZSxDV3QsX1d0LFRXdCxMV3QsJFd0LERXdCxudixBV3QsUFd0LHFtZSxFV3QsSVd0LE5XdCxWbWUsUld0LGptZSxPV3QsR2IsRld0LEJXdCxIV3QscVd0LFZXdCxqV3QsVVd0LFVtZSxXV3QsR1d0LFdtZSxZV3QsR21lLEtXdCxZbWUsWld0LFhXdCxRV3QsSld0LGVHdCx0R3QsS21lLGFHdCxyR3Qsc0d0LGlHdCxvR3QsWm1lLG5HdCxYbWUsbEd0LFFtZSxjR3QsZEd0LHVHdCxRZWUscEd0LGZHdCxoR3QsbUd0LGdHdCxKbWUsYkd0LGU3ZSx2R3QseEd0LHlHdCx3R3QsdDdlLE1HdCxhN2Usa0d0LFNHdCxKZWUsekd0LENHdCxfR3QsVEd0LExHdCxyN2UsJEd0LERHdCxzN2UsQUd0LGk3ZSxQR3QsRUd0LElHdCxOR3QsUkd0LE9HdCxGR3QsQkd0LEhHdCxxR3QsbzdlLFZHdCxqR3QsVUd0LFdHdCxldGUsR0d0LFlHdCxLR3QsWkd0LG43ZSxYR3QsUUd0LGw3ZSxKR3QsZVl0LHRZdCxhWXQsYzdlLHJZdCxzWXQsaVl0LGx2LG9ZdCxuWXQsdHRlLGxZdCxjWXQsZDdlLGRZdCx1WXQscFl0LGZZdCxoWXQsdTdlLG1ZdCxnWXQscDdlLGJZdCxmN2Usdll0LHhZdCx5WXQsd1l0LE1ZdCxoN2Usa1l0LG03ZSxTWXQsZzdlLHpZdCxDWXQsX1l0LFRZdCxiN2UsTFl0LCRZdCx2N2UsRFl0LEFZdCxQWXQseDdlLEVZdCxJWXQsYXRlLE5ZdCxSWXQseTdlLE9ZdCx3N2UsRll0LE03ZSxCWXQsUnRlLGs3ZSxIWXQsUzdlLHFZdCxWWXQsall0LFVZdCxXWXQsR1l0LHJ0ZSxZWXQsS1l0LFpZdCx6N2UsWFl0LFFZdCxKWXQsc3RlLGVLdCx0S3QsYUt0LHJLdCxpdGUsc0t0LGlLdCxvS3Qsbkt0LEM3ZSxsS3QsXzdlLGNLdCxkS3QsdUt0LHBLdCxmS3Qsb3RlLGhLdCxtS3QsZ0t0LGJLdCx2S3QseEt0LG50ZSx5S3Qsd0t0LE1LdCxUN2Usa0t0LFNLdCx6S3QsQ0t0LEw3ZSxfS3QsVEt0LExLdCwkS3QsREt0LEFLdCwkN2UsUEt0LEVLdCxJS3QsTkt0LEQ3ZSxSS3QsT0t0LFliLEZLdCxCS3QsSEt0LEE3ZSxxS3QsVkt0LGpLdCxVS3QsV0t0LEdLdCxZS3QsS0t0LFpLdCxQN2UsWEt0LFFLdCxFN2UsSkt0LGVadCx0WnQsSTdlLGFadCxyWnQsc1p0LGladCxvWnQsTjdlLG5adCxPdGUsUjdlLGxadCxjWnQsZFp0LHVadCxwWnQsTzdlLGZadCxoWnQsbVp0LGdadCxiWnQsRjdlLHZadCx4WnQseVp0LHdadCxNWnQsbHRlLGtadCxTWnQselp0LENadCxfWnQsQjdlLFRadCxIN2UsTFp0LCRadCxEWnQsY3RlLEFadCxQWnQsRVp0LHE3ZSxJWnQsVjdlLE5adCxSWnQsT1p0LEZadCxCWnQsSFp0LGo3ZSxxWnQsVlp0LFU3ZSxqWnQsVzdlLFVadCxHN2UsV1p0LEdadCxZN2UsWVp0LEs3ZSxLWnQsWlp0LFhadCxRWnQsSlp0LGVYdCx0WHQsYVh0LHJYdCxaN2Usc1h0LGlYdCxkdGUsb1h0LG5YdCxYN2UsbFh0LGNYdCxkWHQsUTdlLHVYdCxwWHQsZlh0LGhYdCxKN2UsbVh0LGdYdCxiWHQsdlh0LHhYdCxlOWUseVh0LHdYdCxNWHQsdXRlLGtYdCxTWHQselh0LENYdCxfWHQsVFh0LHB0ZSxMWHQsJFh0LERYdCx0OWUsQVh0LGE5ZSxQWHQsRVh0LElYdCxOWHQscjllLFJYdCxzOWUsT1h0LEZYdCxpOWUsQlh0LEhYdCxvOWUscVh0LFZYdCxqWHQsVVh0LG45ZSxXWHQsR1h0LFlYdCxLWHQsY3YsWlh0LEZ0ZSxYWHQsUVh0LEpYdCxlUXQsbDllLHRRdCxjOWUsYVF0LHJRdCxzUXQsaVF0LEtiLG9RdCxuUXQsbFF0LFpiLGNRdCxkUXQsdVF0LGQ5ZSxwUXQsZlF0LGZ0ZSxoUXQsbVF0LGdRdCxiUXQsdTllLHZRdCx4UXQseVF0LHA5ZSx3UXQsTVF0LGtRdCxTUXQselF0LGY5ZSxDUXQsaHRlLF9RdCxUUXQsTFF0LCRRdCxEUXQsQVF0LGg5ZSxQUXQsbTllLEVRdCxnOWUsSVF0LE5RdCxiOWUsUlF0LEJ0ZSx2OWUsT1F0LEZRdCxCUXQseDllLEhRdCxxUXQsSHRlLHk5ZSxWUXQsalF0LFVRdCxXUXQsWTgsR1F0LFlRdCxLUXQsWlF0LHc5ZSxYUXQsUVF0LEpRdCxNOWUsZUp0LHRKdCxhSnQsckp0LGs5ZSxzSnQsaUp0LG9KdCxuSnQsbEp0LG10ZSxjSnQsZEp0LGR2LHVKdCxTOWUscEp0LHo5ZSxmSnQsaEp0LG1KdCxnSnQsQzllLGJKdCx2SnQseEp0LHlKdCxfOWUsd0p0LE1KdCxrSnQsVDllLFNKdCx6SnQsQ0p0LF9KdCxMOWUsVEp0LExKdCwkSnQsJDllLERKdCxBSnQsUEp0LHV2LEVKdCxJSnQsRDllLE5KdCxBOWUsUkp0LFA5ZSxPSnQsRTllLEZKdCxCSnQsSTllLEhKdCxxSnQsVkp0LGpKdCxVSnQsV0p0LE45ZSxHSnQsWUp0LFI5ZSxLSnQsWkp0LE85ZSxYSnQsUUp0LEpKdCxGOWUsZWVhLHRlYSxhZWEscmVhLHNlYSxLOCxpZWEsb2VhLG5lYSxsZWEsY2VhLGRlYSx1ZWEscGVhLGZlYSxoZWEsbWVhLGdlYSxiZWEsdmVhLHhlYSx5ZWEsd2VhLEI5ZSxNZWEsa2VhLFNlYSx6ZWEsSDllLENlYSxfZWEsVGVhLFhiLExlYSwkZWEsRGVhLEFlYSxQZWEscTllLEVlYSxwdixJZWEsTmVhLFJlYSxWOWUsT2VhLEZlYSxCZWEsSGVhLGo5ZSxxZWEsVmVhLFU5ZSxqZWEsVWVhLFdlYSxXOWUsR2VhLFllYSxHOWUsS2VhLFk5ZSxaZWEsWGVhLFFlYSxKZWEsZXRhLEs5ZSx0dGEsYXRhLHJ0YSxaOWUsc3RhLGl0YSxvdGEsbnRhLGx0YSxjdGEsZHRhLFg5ZSx1dGEsUTllLHB0YSxKOWUsZnRhLGd0ZSxodGEsbXRhLGVnZSxndGEsdGdlLGJ0YSxhZ2UsdnRhLHh0YSx5dGEsd3RhLE10YSxrdGEscmdlLFN0YSxzZ2UsenRhLEN0YSxfdGEsVHRhLEx0YSxpZ2UsJHRhLG9nZSxEdGEsbmdlLEF0YSxsZ2UsUHRhLEV0YSxJdGEsTnRhLGNnZSxSdGEsT3RhLGJ0ZSxGdGEsQnRhLGRnZSxIdGEscXRhLFZ0YSxqdGEsdWdlLFV0YSxXdGEsR3RhLFl0YSxwZ2UsS3RhLFg4LFp0YSxYdGEsZmdlLFF0YSxoZ2UsSnRhLGVhYSx0YWEsdnRlLGFhYSxyYWEsc2FhLG1nZSxpYWEsZ2dlLG9hYSxiZ2UsbmFhLHZnZSxsYWEsY2FhLGRhYSx1YWEscGFhLGZhYSxoYWEseHRlLG1hYSxnYWEsYmFhLHZhYSx4YWEseGdlLHlhYSx3YWEsTWFhLGthYSxTYWEsemFhLHlnZSxDYWEsX2FhLHdnZSxUYWEsTGFhLHl0ZSwkYWEsRGFhLEFhYSxmdixQYWEsRWFhLElhYSxNZ2UsTmFhLGtnZSxSYWEsT2FhLEZhYSxCYWEsSGFhLFNnZSxxYWEsVmFhLGphYSxVYWEsV2FhLHd0ZSxHYWEsWWFhLEthYSxaYWEsWGFhLHpnZSxRYWEsQ2dlLEphYSxlcmEsX2dlLHRyYSxUZ2UsYXJhLExnZSxycmEsJGdlLHNyYSxpcmEsRGdlLG9yYSxucmEsbHJhLGNyYSxkcmEsdXJhLFMkYSxwcmE9ZigoKT0+e2skYT0iZmFzIixrTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMCIsaWNvbjpbMzIwLDUxMixbXSwiMzAiLCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMnMxNjAgNzEuNiAxNjAgMTYwbDAgMTI4YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBMMCAxOTJ6TTE2MCA5NmMtNTMgMC05NiA0My05NiA5NmwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6Il19LFNMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiIxIixpY29uOlsyNTYsNTEyLFtdLCIzMSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNjQgMCAwIDMyMC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSx6THQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMiIsaWNvbjpbMzg0LDUxMixbXSwiMzIiLCJNNDggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTcxIDBjNjAuMiAwIDEwOSA0OC44IDEwOSAxMDkgMCA0My44LTI2LjIgODMuMy02Ni40IDEwMC40bC0xMzkuMSA1OUMxMTkgMzE1LjQgOTYgMzUwLjIgOTYgMzg4LjdsMCAyNy4zIDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC01OS4zYzAtNjQuMiAzOC40LTEyMi4yIDk3LjUtMTQ3LjNsMTM5LjEtNTljMTYuNi03LjEgMjcuNC0yMy40IDI3LjQtNDEuNCAwLTI0LjktMjAuMi00NS00NS00NUw4MCA5NkM2Mi4zIDk2IDQ4IDgxLjcgNDggNjR6Il19LENMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiIzIixpY29uOlszMjAsNTEyLFtdLCIzMyIsIk04MCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDE2MCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4IDAgMzguMi0xNi44IDcyLjUtNDMuMyA5NiAyNi42IDIzLjUgNDMuMyA1Ny44IDQzLjMgOTYgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDgwIDI4OHoiXX0sX0x0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjQiLGljb246WzM4NCw1MTIsW10sIjM0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMjQtMTkyIDAgMC0yMjR6Il19LFRMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI1IixpY29uOlszMjAsNTEyLFtdLCIzNSIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwIDExMiAxMjAgMGM3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNlMyNTkuMSA0ODAgMTg0IDQ4MEwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTUyIDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJMMzIgMjcyYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0eiJdfSxMTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNiIsaWNvbjpbMzg0LDUxMixbXSwiMzYiLCJNMjU2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04OCAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDMyLjJjMjIuOS0xNS4zIDUwLjQtMjQuMiA4MC0yNC4ybDQ4IDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTMjg3LjUgNDgwIDIwOCA0ODBsLTQ4IDBDODAuNSA0ODAgMTYgNDE1LjUgMTYgMzM2bDAtMTUyQzE2IDEwMC4xIDg0LjEgMzIgMTY4IDMybDg4IDB6TTgwIDMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHoiXX0sJEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjciLGljb246WzMyMCw1MTIsW10sIjM3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjU2IDBjMTEuNSAwIDIyIDYuMSAyNy43IDE2LjFzNS43IDIyLjItLjEgMzIuMWwtMjI0IDM4NGMtOC45IDE1LjMtMjguNSAyMC40LTQzLjggMTEuNXMtMjAuNC0yOC41LTExLjUtNDMuOEwyMzIuMyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxETHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiOCIsaWNvbjpbMzIwLDUxMixbXSwiMzgiLCJNMzA0IDE2MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtMzIgMGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjggMCAzNC42IDEzLjcgNjYgMzYgODktMzEuNSAyMy4zLTUyIDYwLjgtNTIgMTAzIDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDY0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Mi4yLTIwLjUtNzkuNy01Mi0xMDMgMjIuMy0yMyAzNi01NC40IDM2LTg5ek0xNzYuMSAyODhsMTUuOSAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4LjEgMHptMC02NEwxNDQgMjI0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMzUuMy0yOC42IDY0LTY0IDY0eiJdfSxBTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiOSIsaWNvbjpbMzg0LDUxMixbXSwiMzkiLCJNMjA4IDMyMGMyOS42IDAgNTcuMS04LjkgODAtMjQuMmwwIDMyLjJjMCA0OC42LTM5LjQgODgtODggODhMOTYgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEwNCAwYzgzLjkgMCAxNTItNjguMSAxNTItMTUybDAtMTUyLjFDMzUxLjkgOTYuNCAyODcuNSAzMiAyMDggMzJsLTQ4IDBDODAuNSAzMiAxNiA5Ni41IDE2IDE3NlM4MC41IDMyMCAxNjAgMzIwbDQ4IDB6bTgwLTE0NGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtNDggMGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MGw0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgweiJdfSx6ZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9sbGFyLXNpZ24iLGljb246WzMyMCw1MTIsWzEyODE3OCw2MTc4MSwiZG9sbGFyIiwidXNkIl0sIjI0IiwiTTEzNiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTE0LjkgMGMtMjQuOSAwLTQ1LjEgMjAuMi00NS4xIDQ1LjEgMCAyMi41IDE2LjUgNDEuNSAzOC43IDQ0LjdsOTEuNiAxMy4xYzUzLjggNy43IDkzLjcgNTMuNyA5My43IDEwOCAwIDYwLjMtNDguOSAxMDkuMS0xMDkuMSAxMDkuMWwtMTAuOSAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC03MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEzMC45IDBjMjQuOSAwIDQ1LjEtMjAuMiA0NS4xLTQ1LjEgMC0yMi41LTE2LjUtNDEuNS0zOC43LTQ0LjdsLTkxLjYtMTMuMUM1NS45IDI3My41IDE2IDIyNy40IDE2IDE3My4xIDE2IDExMi45IDY0LjkgNjQgMTI1LjEgNjRsMTAuOSAwIDAtNDB6Il19LFBMdD16ZWUsRUx0PXplZSxJTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9nIixpY29uOls1NzYsNTEyLFsxMjgwMjFdLCJmNmQzIiwiTTMyIDExMmMxNi42IDAgMzAuMiAxMi42IDMxLjggMjguN2wuMyA2LjZDNjUuOCAxNjMuNCA3OS40IDE3NiA5NiAxNzZsMTc5LjEgMCAxNDAuOSA2MC40IDAgMjQzLjZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMxLjNDMjk2IDM2MSAyNjguOCAzNjggMjQwIDM2OHMtNTYtNy04MC0xOS4zTDE2MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjQ1LjZjLTM3LjMtMTMuMi02NC00OC42LTY0LTkwLjQgMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1NS44LTMyYzcuNyAwIDE0LjkgMy42IDE5LjYgOS44TDM5MiAwIDQ0NC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMUw0OTYgMzIgNTUyIDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCA0NC4yLTM1LjggODAtODAgODBsLTY0IDAtNyAyOC0xMjQuNy01My40IDMxLjYtMTQ3LjJDMzM0LjMtMjMuOSAzNDQuMi0zMiAzNTUuOC0zMnpNNDQ4IDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHoiXX0sTkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1vdmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZjRkZiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4IDI1LjIgMCA0OC0xMC42IDY0LTI3LjYgMTYgMTcgMzguOCAyNy42IDY0IDI3LjYgNDAuMyAwIDc0LjItMjcuMSA4NC43LTY0bDEzNC42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NCA0MyAwIDc4LjktMzAuOSA4Ni41LTcxLjcgMjAtMTAuOCAzMy41LTMyIDMzLjUtNTYuM2wwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDU3NiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ4MCAxOTJsNTAuNyAwIDQ1LjMgNDUuMyAwIDUwLjctOTYgMCAwLTk2ek04OCAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0zOTIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjE2IDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LE1mZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODI2MCwic3luYy1hbHQiXSwiZjJmMSIsIk00ODAuMSAxOTJsNy45IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IC4yIDQ3MSA3TDQxOS4zIDU4LjhDMzc1IDIyLjEgMzE4IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMUM3OS4yIDEzNS41IDE1OS4zIDY0IDI1NiA2NCAzMDAuNCA2NCAzNDEuMiA3OSAzNzMuNyAxMDQuM0wzMjcgMTUxYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzMzNC4zIDE5MiAzNDQgMTkybDEzNi4xIDB6bTI5LjQgMTAwLjVjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS00NC40IDAtODUuMi0xNS0xMTcuNy00MC4zTDE4NSAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMjAgMTY4IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDg4YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDUxMS44IDQxIDUwNWw1MS44LTUxLjhDMTM3IDQ4OS45IDE5NCA1MTIgMjU2IDUxMiAzODUgNTEyIDQ5MS43IDQxNi42IDUwOS40IDI5Mi41eiJdfSxSTHQ9TWZlLGtmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MiAyMDBsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxPTHQ9a2ZlLEZMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1qdXN0aWZ5IixpY29uOls0NDgsNTEyLFtdLCJmMDM5IiwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LEJMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTIyIDE2MS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMzEuMiAxMzcgMjc5LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxOTUuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sU2ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcyIsaWNvbjpbNTEyLDUxMixbMTI4NTM1LCJraXNzIl0sImY1OTYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTk2LTgwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEhMdD1TZmUscUx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdGNoZW4tc2V0IixpY29uOls1NzYsNTEyLFtdLCJlNTFhIiwiTTI0MCAxNDRhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem00NC40IDMyQzI2OS45IDI0MC4xIDIxMi41IDI4OCAxNDQgMjg4IDY0LjUgMjg4IDAgMjIzLjUgMCAxNDRTNjQuNSAwIDE0NCAwYzY4LjUgMCAxMjUuOSA0Ny45IDE0MC40IDExMmw3MS44IDBjOC44LTkuOCAyMS42LTE2IDM1LjgtMTZsMTA0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTEwNCAwYy0xNC4yIDAtMjctNi4yLTM1LjgtMTZsLTcxLjggMHpNMTQ0IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00MDAgMjQwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjg4IDQ2NGwwLTExMiAyMjQgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek00OCAzMjBsMTI4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMCAzMiAxNiAwek0yNCA0NjRsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxWTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG5hIixpY29uOlszODQsNTEyLFsxMjk1MTZdLCJmNDcxIiwiTTM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgNTcuOC0yNC40IDEwNC44LTU3LjQgMTQ0LjUtMjQuMSAyOC45LTUzLjggNTUuMS04My42IDc5LjUgMjkuOCAyNC41IDU5LjUgNTAuNiA4My42IDc5LjUgMzMgMzkuNiA1Ny40IDg2LjcgNTcuNCAxNDQuNSAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEMwIDQyMi4yIDI0LjQgMzc1LjIgNTcuNCAzMzUuNSA4MS41IDMwNi42IDExMS4yIDI4MC41IDE0MSAyNTYgMTExLjIgMjMxLjUgODEuNSAyMDUuNCA1Ny40IDE3Ni41IDI0LjQgMTM2LjggMCA4OS44IDAgMzIgMCAxNC4zIDE0LjMgMCAzMiAwUzY0IDE0LjMgNjQgMzJsMjU2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDM4NGwtMTgyLjkgMGMtOC4yIDEwLjUtMTUuMSAyMS4xLTIwLjYgMzJsMjI0LjIgMGMtNS42LTEwLjktMTIuNS0yMS41LTIwLjYtMzJ6TTIzOCAzMzZjLTE0LjMtMTMtMjkuOC0yNS44LTQ2LTM5LTE2LjIgMTMuMS0zMS43IDI2LTQ2IDM5bDkyIDB6TTEwMC41IDEyOGwxODIuOSAwYzguMi0xMC41IDE1LjEtMjEuMSAyMC42LTMyTDc5LjkgOTZjNS42IDEwLjkgMTIuNSAyMS41IDIwLjYgMzJ6TTE0NiAxNzZjMTQuMyAxMyAyOS44IDI1LjggNDYgMzkgMTYuMi0xMy4xIDMxLjctMjYgNDYtMzlsLTkyIDB6Il19LGpMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1yZWFjaGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTU5ZCIsIk0yNTYgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0xNTIuOSAxNjkuM2MtMjMuNy04LjQtNDQuNS0yNC4zLTU4LjgtNDUuOEw3NC42IDk0LjJDNjQuOCA3OS41IDQ1IDc1LjYgMzAuMyA4NS40UzExLjYgMTE1IDIxLjQgMTI5LjhMNDAuOSAxNTljMTguMSAyNy4xIDQyLjggNDguNCA3MS4xIDYyLjRMMTEyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTguNGMyOS4xLTE0LjIgNTQuNC0zNi4yIDcyLjctNjQuMmwxOC4yLTI3LjljOS42LTE0LjggNS40LTM0LjYtOS40LTQ0LjNzLTM0LjYtNS41LTQ0LjMgOS40TDI5MSAxMjIuNGMtMjEuOCAzMy40LTU4LjkgNTMuNi05OC44IDUzLjYtMTIuNiAwLTI0LjktMi0zNi42LTUuOC0uOS0uMy0xLjgtLjctMi43LS45eiJdfSxRYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXN0ZSIsaWNvbjpbNTEyLDUxMixbImZpbGUtY2xpcGJvYXJkIl0sImYwZWEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC0yMjRjMC02MS45IDUwLjEtMTEyIDExMi0xMTJsNjQgMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTI0OCAxMTJsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0em00MCA0OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDI4OCAxNjB6Il19LFVMdD1RYixXTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWV0ZW9yIixpY29uOls1MTIsNTEyLFs5NzMyXSwiZjc1MyIsIk00OTMuNyAuOWwtMTk0LjIgNzQuNyAyLjMtMjkuM2MxLTEyLjgtMTIuOC0yMS41LTI0LTE1LjFMMTAxLjMgMTMzLjRDMzguNiAxNjkuNyAwIDIzNi42IDAgMzA5IDAgNDIxLjEgOTAuOSA1MTIgMjAzIDUxMiAyNzUuNCA1MTIgMzQyLjMgNDczLjQgMzc4LjYgNDEwLjdMNDgwLjggMjM0LjNjNi41LTExLjEtMi4yLTI1LTE1LjEtMjRsLTI5LjMgMi4zIDc0LjctMTk0LjJjLjYtMS41IC45LTMuMiAuOS00LjggMC03LjUtNi0xMy41LTEzLjUtMTMuNS0xLjcgMC0zLjMgLjMtNC44IC45ek0xOTIgMTkyYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LHpmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZWFycyIsaWNvbjpbNjQwLDUxMixbImNvZ3MiXSwiZjA4NSIsIk00MTUuOSAyMTAuNWMxMi4yLTMuMyAyNSAyLjUgMzAuNSAxMy44TDQ2NSAyNjEuOWMxMC4zIDEuNCAyMC40IDQuMiAyOS45IDguMWwzNS0yMy4zYzEwLjUtNyAyNC40LTUuNiAzMy4zIDMuM2wxOS4yIDE5LjJjOC45IDguOSAxMC4zIDIyLjkgMy4zIDMzLjNsLTIzLjMgMzQuOWMxLjkgNC43IDMuNiA5LjYgNSAxNC43IDEuNCA1LjEgMi4zIDEwLjEgMyAxNS4ybDM3LjcgMTguNmMxMS4zIDUuNiAxNy4xIDE4LjQgMTMuOCAzMC41bC03IDI2LjJjLTMuMyAxMi4xLTE0LjYgMjAuMy0yNy4yIDE5LjVsLTQyLTIuN2MtNi4zIDguMS0xMy42IDE1LjYtMjEuOSAyMmwyLjcgNDEuOWMuOCAxMi42LTcuNCAyNC0xOS41IDI3LjJsLTI2LjIgN2MtMTIuMiAzLjMtMjQuOS0yLjUtMzAuNS0xMy44bC0xOC42LTM3LjZjLTEwLjMtMS40LTIwLjQtNC4yLTI5LjktOC4xbC0zNSAyMy4zYy0xMC41IDctMjQuNCA1LjYtMzMuMy0zLjNsLTE5LjItMTkuMmMtOC45LTguOS0xMC4zLTIyLjgtMy4zLTMzLjNsMjMuMy0zNWMtMS45LTQuNy0zLjYtOS42LTUtMTQuN3MtMi4zLTEwLjItMy0xNS4ybC0zNy43LTE4LjZjLTExLjMtNS42LTE3LTE4LjQtMTMuOC0zMC41bDctMjYuMmMzLjMtMTIuMSAxNC42LTIwLjMgMjcuMi0xOS41bDQxLjkgMi43YzYuMy04LjEgMTMuNi0xNS42IDIxLjktMjJsLTIuNy00MS44Yy0uOC0xMi42IDcuNC0yNCAxOS41LTI3LjJsMjYuMi03ek00NDguNCAzNDBhNDQgNDQgMCAxIDAgLjEgODggNDQgNDQgMCAxIDAgLS4xLTg4ek0yMjQuOS00NS41bDI2LjIgN2MxMi4xIDMuMyAyMC4zIDE0LjcgMTkuNSAyNy4ybC0yLjcgNDEuOGM4LjMgNi40IDE1LjYgMTMuOCAyMS45IDIybDQyLTIuN2MxMi41LS44IDIzLjkgNy40IDI3LjIgMTkuNWw3IDI2LjJjMy4yIDEyLjEtMi41IDI0LjktMTMuOCAzMC41bC0zNy43IDE4LjZjLS43IDUuMS0xLjcgMTAuMi0zIDE1LjJzLTMuMSAxMC01IDE0LjdsMjMuMyAzNWM3IDEwLjUgNS42IDI0LjQtMy4zIDMzLjNMMzA3LjMgMjYyYy04LjkgOC45LTIyLjggMTAuMy0zMy4zIDMuM0wyMzkgMjQyYy05LjUgMy45LTE5LjYgNi43LTI5LjkgOC4xbC0xOC42IDM3LjZjLTUuNiAxMS4zLTE4LjQgMTctMzAuNSAxMy44bC0yNi4yLTdjLTEyLjItMy4zLTIwLjMtMTQuNy0xOS41LTI3LjJsMi43LTQxLjljLTguMy02LjQtMTUuNi0xMy44LTIxLjktMjJsLTQyIDIuN2MtMTIuNSAuOC0yMy45LTcuNC0yNy4yLTE5LjVsLTctMjYuMmMtMy4yLTEyLjEgMi41LTI0LjkgMTMuOC0zMC41bDM3LjctMTguNmMuNy01LjEgMS43LTEwLjEgMy0xNS4yIDEuNC01LjEgMy0xMCA1LTE0LjdMNTUuMSA0Ni41Yy03LTEwLjUtNS42LTI0LjQgMy4zLTMzLjNMNzcuNi02YzguOS04LjkgMjIuOC0xMC4zIDMzLjMtMy4zbDM1IDIzLjNjOS41LTMuOSAxOS42LTYuNyAyOS45LTguMWwxOC42LTM3LjZjNS42LTExLjMgMTguMy0xNyAzMC41LTEzLjh6TTE5Mi40IDg0YTQ0IDQ0IDAgMSAwIDAgODggNDQgNDQgMCAxIDAgMC04OHoiXX0sR0x0PXpmZSxZTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtcGx1cyIsaWNvbjpbNTc2LDUxMixbNTg2MDZdLCJlNDk0IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOGwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LEtMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2ljbGVzIixpY29uOls1MTIsNTEyLFtdLCJmN2FkIiwiTTc1LjggMzA0LjhMMSAzNS43Qy4zIDMzLjIgMCAzMC43IDAgMjguMiAwIDEyLjYgMTIuNiAwIDI4LjIgMEw0ODIuNCAwYzE2LjMgMCAyOS42IDEzLjIgMjkuNiAyOS42IDAgMS42LS4xIDMuMy0uNCA0LjlMNDM0LjYgNDk2LjFjLTEuNSA5LjItOS41IDE1LjktMTguOCAxNS45LTkuMiAwLTE3LjEtNi42LTE4LjctMTUuNkwzMzYgMTYwIDMwNy4yIDMwMy45Yy0xLjkgOS4zLTEwLjEgMTYuMS0xOS42IDE2LjEtOS4yIDAtMTcuMi02LjItMTkuNC0xNS4xTDI0MCAxOTIgMjEwLjYgMzY4LjJjLTEuNSA5LjEtOS40IDE1LjgtMTguNiAxNS44cy0xNy4xLTYuNy0xOC42LTE1LjhMMTQ0IDE5MiAxMTUuOSAzMDQuM2MtMi4zIDkuMi0xMC42IDE1LjctMjAuMSAxNS43LTkuMyAwLTE3LjUtNi4yLTIwLTE1LjJ6Il19LFpMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10cmVuZC11cCIsaWNvbjpbNTc2LDUxMixbXSwiZTA5OCIsIk0zODQgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuNy0xNjkuNCAxNjkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMTkyIDI2OS4zIDU0LjYgNDA2LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzIwIDMwNi43IDQ2Ni43IDE2MCAzODQgMTYweiJdfSxYTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGV4YWdvbi1ub2Rlcy1ib2x0IixpY29uOls1NzYsNTEyLFtdLCJlNjlhIiwiTTI0OCAxMDYuNmMxOC45LTkgMzItMjguMyAzMi01MC42YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2YzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTIuOCAxLjMtNS41IDIuOS04IDQuN2wtODAuMS00NS44YzEuNi0yMC44LTguNi00MS42LTI3LjktNTIuOEM1Ny4yIDk2IDIzIDEwNS4yIDcuNSAxMzJTMS4yIDE5MyAyOCAyMDguNWMxLjMgLjggMi42IDEuNSA0IDIuMWwwIDkwLjhjLTEuMyAuNi0yLjcgMS4zLTQgMi4xQzEuMiAzMTktOCAzNTMuMiA3LjUgMzgwUzU3LjIgNDE2IDg0IDQwMC41YzE5LjMtMTEuMSAyOS40LTMyIDI3LjgtNTIuOGw1MC41LTI4LjljLTExLjUtMTEuMi0xOS45LTI1LjYtMjMuOC00MS43TDg4IDMwNi4xYy0yLjYtMS44LTUuMi0zLjMtOC00LjdsMC05MC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLS4xIDEuNC0uMiAyLjgtLjIgNC4zYzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTE4LjkgOS0zMiAyOC4zLTMyIDUwLjZjMCAzMC45IDI1LjEgNTYgNTYgNTZjMzAuNyAwIDU1LjYtMjQuNyA1Ni01NS4yYy03LjUtMTIuOS0xMy41LTI2LjgtMTcuNi00MS41Yy00LjItNC05LjEtNy4zLTE0LjQtOS45bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsMTAuNSA2YzUuNS0xNS4zIDEzLjEtMjkuNSAyMi40LTQyLjVsLTkuMS01LjJjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHpNNDQwLjUgMTMyQzQyNSAxMDUuMiAzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMuNCAuMyAuOCAuNiAxLjMgLjljMjEuNy05LjUgNDUuNi0xNC44IDcwLjgtMTQuOGMyIDAgNCAwIDUuOSAuMWMxMi4xLTE3LjMgMTMuOC00MC42IDIuNi02MC4xek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1NmwzNS42IDBjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODAgMzc2IDM4MGMtNS4yIDAtOS44LTMuMy0xMS40LTguMnMuMS0xMC4zIDQuMi0xMy40bDk2LTcyYzQuNS0zLjQgMTAuOC0zLjIgMTUuMSAuNnoiXX0sUUx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1ZXN0aW9uIixpY29uOlszMjAsNTEyLFsxMDA2NywxMDA2OCw2MTczNl0sIjNmIiwiTTY0IDE2MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDIuNy0yNy45IDc4LjktNjYuNSA5MS40LTI4LjQgOS4yLTYxLjUgMzUuMy02MS41IDc2LjZsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjRjMC0xLjcgLjYtNC4xIDMuNS03LjMgMy0zLjMgNy45LTYuNSAxMy43LTguNCA2NC4zLTIwLjcgMTEwLjgtODEgMTEwLjgtMTUyLjMgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTMCA3MS42IDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6bTk2IDM1MmMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MC00MCAxNy45LTQwIDQwIDE3LjkgNDAgNDAgNDB6Il19LEpMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ib3VuZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOSIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgMjEzLjljMCAxNC4yIDUuMSAyNy45IDE0LjMgMzguN0w5OS42IDM1MiA5NiAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMuNiAwIDg1LjMtOTkuNWM5LjItMTAuOCAxNC4zLTI0LjUgMTQuMy0zOC43TDU3NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMi44LTY5LjMgOTIuNGMtNS43IDcuNi0xNi4xIDkuNi0yNC4yIDQuOC05LjctNS43LTEyLjEtMTguNy01LjEtMjcuNUw0NDEgMTgwYzEwLjgtMTMuNSA4LjktMzMuMy00LjQtNDQuNXMtMzMtOS44LTQ0LjUgMy4ybC00Ni43IDUyLjVDMzI5IDIwOS43IDMyMCAyMzMuNCAzMjAgMjU4LjFsMCA5My45LTY0IDAgMC05My45YzAtMjQuNi05LTQ4LjQtMjUuNC02Ni44bC00Ni43LTUyLjVjLTExLjUtMTMtMzEuMy0xNC40LTQ0LjUtMy4yUzEyNC4yIDE2Ni40IDEzNSAxODBsMjcuNiAzNC41YzcgOC44IDQuNyAyMS44LTUuMSAyNy41LTguMSA0LjgtMTguNiAyLjctMjQuMi00LjhMNjQgMTQ0LjggNjQgMzJ6bTY0IDQ0OGwwIDMyIDEyOCAwIDAtMzIgNjQgMCAwIDMyIDEyOCAwIDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw5NiA0MzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMHoiXX0sZSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWx1Z2dhZ2UiLGljb246WzUxMiw1MTIsW10sImU1NTQiLCJNMjY0LjMgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0tOCAxODEuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTIuMy03IDIzLTE3LjIgMjguNC0uOSA0LjItMi40IDguNC00LjMgMTIuM2wtNjkgMTM4LjEtLjgtLjQtMjcuNyA1NS4zYy05LjkgMTkuOC0zMy45IDI3LjgtNTMuNyAxNy45TDE0LjYgNTIxYy0xOS44LTkuOS0yNy44LTMzLjktMTcuOS01My43TDQ3LjMgMzY2LjNjOS45LTE5LjggMzMuOS0yNy44IDUzLjctMTcuOWwzMC43IDE1LjMgMjguMy01Ni42Yy4zLS42IC40LTEuMiAuNC0xLjhsMC0xNi45YzAtLjIgMC0uMyAwLS41bDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNS4xLTM1LjFjMjIuOC0yMi44IDUzLjYtMzUuNiA4NS44LTM1LjYgMzYuOSAwIDcxLjggMTYuOCA5NC44IDQ1LjZMNDIyLjEgMTgwYzYuMSA3LjYgMTUuMyAxMiAyNSAxMmwzMy4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMzLjIgMGMtMjkuMiAwLTU2LjctMTMuMy03NS0zNmwtMy44LTQuNyAwIDExNS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM0w0NDggNTA3LjVjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJMMzcyIDQyOC40Yy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDIzOCA0MjEuMWMzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMjU2LjQgMzcxeiJdfSxDZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hcnJvdy1kb3duIixpY29uOlszODQsNTEyLFsiZmlsZS1kb3dubG9hZCJdLCJmNTZkIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNzUgNDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY0LTY0YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtODYuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDg2LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjR6Il19LHQkdD1DZmUsYSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ib290aCIsaWNvbjpbNTc2LDUxMixbXSwiZjc1NiIsIk00MCAyNEE1NiA1NiAwIDEgMSAxNTIgMjQgNTYgNTYgMCAxIDEgNDAgMjR6bTUxLjEgODhjMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzYgOC40IDE1LjcgMTMuNCAyNiAxMy40bDMxLjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMjA5LjggMzczLjMgMjI0IDQwMS44IDIyNCA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNzAuNCAzNDguOEM0Ni4yIDMzMC43IDMyIDMwMi4yIDMyIDI3MmwwLTEwMC45QzMyIDEzOC41IDU4LjUgMTEyIDkxLjEgMTEyek0zMiA1MTJsMC0xMzIuN2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw5NiA0MjggOTYgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyem01NDQtODhsMCA5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcyLTE2OCAwYy03LjEgMC0xMy44LTMuMS0xOC40LTguNnMtNi41LTEyLjYtNS4zLTE5LjZsMzAuNy0xNzYuNy02My4xLTEzNy42IDAgNzJjLTUuMi0xLTEwLjUtMS42LTE2LTEuNmwtMzIgMCAwLTEyMGMwLTMwLjkgMjUuMS01NiA1Ni01Nkw1MjAgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDM2OHpNMjg4IDMzNmM1LjUgMCAxMC44LS42IDE2LTEuNkwzMDQgNTIwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg0IDMyIDB6Il19LHIkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2N1c3QiLGljb246WzU3Niw1MTIsW10sImU1MjAiLCJNMzI4IDMyYzEzNyAwIDI0OCAxMTEgMjQ4IDI0OGwwIDQwLS40IDguMkM1NzEuNSAzNjguNSA1MzcuNCA0MDAgNDk2IDQwMGwtMTIuMyAwIDI1LjIgNDQuMWM2LjYgMTEuNSAyLjYgMjYuMi04LjkgMzIuOHMtMjYuMiAyLjYtMzIuNy04LjlsLTM4LjgtNjcuOS04MC40IDAtNDguMiA2OS43Yy03LjUgMTAuOS0yMi41IDEzLjYtMzMuNCA2LjFzLTEzLjYtMjIuNS02LjEtMzMuNGwyOS4zLTQyLjMtNzQuNSAwLTUxLjcgNzAuMmMtNy45IDEwLjctMjIuOSAxMi45LTMzLjYgNS4xcy0xMi45LTIyLjktNS4xLTMzLjZsNDAuNS01NS00My0xNi40LTc5LjMgMTAwLjVjLTguMiAxMC40LTIzLjMgMTIuMi0zMy43IDRzLTEyLjItMjMuMy00LTMzLjdsMjQwLTMwNCAyLjEtMi4zYzUuMi01LjEgMTIuNS03LjUgMTkuOS02LjYgOC40IDEuMSAxNS42IDYuNSAxOC45IDE0LjNsMjEuNyA1MC43IDQwLjktNTUuNSAyLjEtMi40YzUuMS01LjMgMTIuNS04IDIwLTcuMiA4LjUgMSAxNS45IDYuNSAxOS4zIDE0LjRsNDEuOCA5Ny41IDY0LjIgMGMxMC4yIDAgMjAgMiAyOSA1LjUtMTYuNC05NC05OC4zLTE2NS41LTE5Ny0xNjUuNWwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwek00ODggMjk2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNNDMuNSAzMzEuMUMzNi4yIDMyMS40IDMyIDMwOS41IDMyIDI5Ni44IDMyIDI2NS41IDU3LjUgMjQwIDg4LjkgMjQwbDI3LjYgMC03Mi45IDkxLjF6TTIyNS4xIDI0MGw0OC4yIDAgMS40LTEuOS0xNi45LTM5LjUtMzIuNyA0MS41em0xMDcuOCAwbDQ2LjcgMC0xNy4yLTQwLTI5LjUgNDB6Il19LF9mZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1hbHQtcmlnaHQiXSwiZjMwYiIsIk01NjYuNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDM5Ni45IDM4NCAzODRsMC02NC0zMzYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMzYgMCAwLTY0YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsMTI4IDEyOHoiXX0scyR0PV9mZSxpJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZHJvcGxldCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yMDggMzA0Yy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTMzLjIgMzQuNS03OCA1NS44LTEwMi40IDguNy0xMCAyMy44LTEwIDMyLjUgMCAyMS4yIDI0LjQgNTUuOCA2OS4xIDU1LjggMTAyLjQgMCA0OC0zMi4yIDcyLTcyIDcyeiJdfSxvJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLW1lZGljYWwiLGljb246WzU3Niw1MTIsW10sImUwNWMiLCJNMjQwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA1NiA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTU2IDAgMCA1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC01Ni01NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDU2IDAgMC01NnpNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxuJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOHMxNC4zIDMyIDMyIDMybDIwOCAwIDAtNjQtMjA4IDB6TTE5MiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptLTY0LTY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptODgtOTZsLS42IDBjNS40IDkuNCA4LjYgMjAuMyA4LjYgMzIgMCAxMy4yLTQgMjUuNC0xMC44IDM1LjYgMjQuOSA4LjcgNDIuOCAzMi41IDQyLjggNjAuNCAwIDExLjctMy4xIDIyLjYtOC42IDMybDguNiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtNjEuN2MwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTExLjYtMTEuNkM0MjkuNSA3Ny41IDM5Ni45IDY0IDM2MyA2NGwtMjcgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4OGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtNTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDU2YzAgMzkuOC0zMi4yIDcyLTcyIDcyeiJdfSxsJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsY3VsYXRvciIsaWNvbjpbMzg0LDUxMixbMTI4NDI1XSwiZjFlYyIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek05NiA2NGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgMTY4YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6bTgwIDI0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTI4LTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTg4IDM1MmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTY0IDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yMzItMjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0eiJdfSxKYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW51cyIsaWNvbjpbNDQ4LDUxMixbODIxMSw4NzIyLDEwMTM0LCJzdWJ0cmFjdCJdLCJmMDY4IiwiTTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LGMkdD1KYixUZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cC1hbHQiXSwiZjg4MiIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTI4OCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSAyMjQgMzIwIDIyNGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjEgMzIgNDQ4IDMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQxMi42IDI3My43QzQwNy4yIDI2Mi44IDM5Ni4xIDI1NiAzODQgMjU2cy0yMy4yIDYuOC0yOC42IDE3LjdsLTgwIDE2MGMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTgwLTE2MHpNMzg0IDM1OS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40eiJdfSxkJHQ9VGZlLHUkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMTMxIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDI0LjcgMzU4LjhDNDU4LjkgMzI0LjIgNDgwIDI3Ni42IDQ4MCAyMjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMzkuMy0xNS43IDc0LjktNDEuMyAxMDAuOUwzNTYuOCAyOTFDMzczLjYgMjczLjcgMzg0IDI1MCAzODQgMjI0bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzAuMi0xNTEtMTUxem0yOTguMyA0MzRsLTQxLjQtNDEuNGMtMy4zIC4yLTYuNSAuMy05LjggLjMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRsMC0xMC4yLTQzLjYtNDMuNmMtMi44IDMuOS00LjQgOC43LTQuNCAxMy44bDAgNDBjMCA5Ny45IDczLjMgMTc4LjcgMTY4IDE5MC41bDAgNDkuNS00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDkuNWM5LjMtMS4yIDE4LjQtMyAyNy4zLTUuNHoiXX0sQ2VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wZW4iLGljb246WzQ0OCw1MTIsWyJwZW4tc3F1YXJlIiwicGVuY2lsLXNxdWFyZSJdLCJmMTRiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyNS44IDEzOS43bDE0LjQgMTQuNGMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtMjMuOCAyMy44LTcxLTcxIDIzLjgtMjMuOGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHpNMTE5LjkgMjg5bDkxLjUtOTEuNiA3MSA3MS05MS42IDkxLjVjLTQuMSA0LjEtOS4yIDctMTQuOSA4LjRsLTYwLjEgMTVjLTUuNSAxLjQtMTEuMi0uMi0xNS4yLTQuMnMtNS42LTkuNy00LjItMTUuMmwxNS02MC4xYzEuNC01LjYgNC4zLTEwLjggOC40LTE0Ljl6Il19LHAkdD1DZWUsZiR0PUNlZSxMZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1maXN0IixpY29uOlszODQsNTEyLFs5OTk0LCJmaXN0LXJhaXNlZCJdLCJmNmRlIiwiTTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyLTY0IDAgMC0xMTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA4MC02NCAwIDAtODB6bTE5MiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2em05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgNTIuMy0yNS4xIDk4LjgtNjQgMTI4bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc4LjRjLTE3LjMtNy45LTMzLjItMTguOC00Ni45LTMyLjVMMzcuNSAzNTcuNUMxMy41IDMzMy41IDAgMzAwLjkgMCAyNjdsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6Il19LGgkdD1MZmUsJGZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtc21zIixpY29uOls1MTIsNTEyLFsic21zIl0sImY3Y2QiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTE0MC44IDE3Mi44bDE5LjIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkuMiAwYy01LjMgMC05LjYgNC4zLTkuNiA5LjZzNC4zIDkuNiA5LjYgOS42YzIzIDAgNDEuNiAxOC42IDQxLjYgNDEuNnMtMTguNiA0MS42LTQxLjYgNDEuNmwtMjUuNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI1LjYgMGM1LjMgMCA5LjYtNC4zIDkuNi05LjZzLTQuMy05LjYtOS42LTkuNmMtMjMgMC00MS42LTE4LjYtNDEuNi00MS42czE4LjYtNDEuNiA0MS42LTQxLjZ6bTE4OC44IDQxLjZjMC0yMyAxOC42LTQxLjYgNDEuNi00MS42bDE5LjIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkuMiAwYy01LjMgMC05LjYgNC4zLTkuNiA5LjZzNC4zIDkuNiA5LjYgOS42YzIzIDAgNDEuNiAxOC42IDQxLjYgNDEuNnMtMTguNiA0MS42LTQxLjYgNDEuNmwtMjUuNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI1LjYgMGM1LjMgMCA5LjYtNC4zIDkuNi05LjZzLTQuMy05LjYtOS42LTkuNmMtMjMgMC00MS42LTE4LjYtNDEuNi00MS42em0tOTguMy0zMy44bDI0LjcgNDEuMSAyNC43LTQxLjFjMy43LTYuMiAxMS4xLTkuMSAxOC03LjJzMTEuNyA4LjIgMTEuNyAxNS40bDAgMTAyLjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00NC42LTguNyAxNC41Yy0yLjkgNC44LTguMSA3LjgtMTMuNyA3LjhzLTEwLjgtMy0xMy43LTcuOGwtOC43LTE0LjUgMCA0NC42YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTAyLjRjMC03LjIgNC44LTEzLjUgMTEuNy0xNS40czE0LjMgMSAxOCA3LjJ6Il19LG0kdD0kZmUsZyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpbS1jYXJkIixpY29uOlszODQsNTEyLFtdLCJmN2M0IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDI1OC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgODBjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNOTYgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQwIDEyOCAwIDAtNzItOTYgMHpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDAgMC03Mi04MCAwIDAgNDB6bTI1NiAwbDAtNDAtMTI4IDAgMCA3MiA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMCAwIDcyIDgwIDAgMC00MHoiXX0sRGZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjYWxlLWJhbGFuY2VkIixpY29uOls2NDAsNTEyLFs5ODc4LCJiYWxhbmNlLXNjYWxlIl0sImYyNGUiLCJNMzg0IDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM5OC40IDk2Yy01LjIgMjUuOC0yMi45IDQ3LjEtNDYuNCA1Ny4zbDAgMjk0LjcgMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIzLjUtMTAuMy00MS4yLTMxLjYtNDYuNC01Ny4zTDEyOCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMGMxNC42LTE5LjQgMzcuOC0zMiA2NC0zMnM0OS40IDEyLjYgNjQgMzJ6bTU1LjYgMjg4TDU4NC40IDMyMCA1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45ek0xMjYuOCAxOTUuOEw1NC40IDMyMCAxOTkuMyAzMjAgMTI2LjggMTk1Ljh6TS45IDMzNy4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xLTEwLjggNDQuOC02My4xIDc4LjktMTI2IDc4LjlTMTEuNyAzODIgLjkgMzM3LjF6Il19LGIkdD1EZmUsQWZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhciIsaWNvbjpbNTEyLDUxMixbMTI4NjY0LCJhdXRvbW9iaWxlIl0sImYxYjkiLCJNMTM1LjIgMTE3LjRsLTI2LjEgNzQuNiAyOTMuOCAwLTI2LjEtNzQuNkMzNzIuMyAxMDQuNiAzNjAuMiA5NiAzNDYuNiA5NkwxNjUuNCA5NmMtMTMuNiAwLTI1LjcgOC42LTMwLjIgMjEuNHpNMzkuNiAxOTYuOEw3NC44IDk2LjNDODguMyA1Ny44IDEyNC42IDMyIDE2NS40IDMybDE4MS4yIDBjNDAuOCAwIDc3LjEgMjUuOCA5MC42IDY0LjNsMzUuMiAxMDAuNWMyMy4yIDkuNiAzOS42IDMyLjUgMzkuNiA1OS4ybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTMyMCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMjU2YzAtMjYuNyAxNi40LTQ5LjYgMzkuNi01OS4yek0xMjggMzA0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHYkdD1BZmUsUGZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3Atc2ltcGxlIixpY29uOls1MTIsNTEyLFsiY3JvcC1hbHQiXSwiZjU2NSIsIk0xMjggMzJjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgMTQuMyA2NCAzMmwwIDMyLTMyIDBDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjA4IDAgMC02NC0yMDggMCAwLTM1MnpNMzg0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjA4IDAgMCA2NCAyMDggMCAwIDM1MnoiXX0seCR0PVBmZSx5JHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVkYWwiLGljb246WzQ0OCw1MTIsWzEyNzk0MV0sImY1YTIiLCJNMjI0LjMgMTI4TDEzOS43LTEyLjljLTYuNS0xMC44LTIwLjEtMTQuNy0zMS4zLTkuMUwyMS44IDIxLjNDOS45IDI3LjIgNS4xIDQxLjYgMTEgNTMuNUw4MC42IDE5Mi42Yy0zMC4xIDMzLjktNDguMyA3OC41LTQ4LjMgMTI3LjQgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC00OC45LTE4LjMtOTMuNS00OC4zLTEyNy40TDQzNy42IDUzLjVjNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4yTDM0MC4yLTIyLjFjLTExLjItNS42LTI0LjktMS42LTMxLjMgOS4xTDIyNC4zIDEyOHptMzAuOCAxNDIuNWMxLjQgMi44IDQgNC43IDcgNS4xbDUwLjEgNy4zYzcuNyAxLjEgMTAuNyAxMC41IDUuMiAxNmwtMzYuMyAzNS40Yy0yLjIgMi4yLTMuMiA1LjItMi43IDguM2w4LjYgNDkuOWMxLjMgNy42LTYuNyAxMy41LTEzLjYgOS45bC00NC44LTIzLjZjLTIuNy0xLjQtNi0xLjQtOC43IDBsLTQ0LjggMjMuNmMtNi45IDMuNi0xNC45LTIuMi0xMy42LTkuOWw4LjYtNDkuOWMuNS0zLS41LTYuMS0yLjctOC4zbC0zNi4zLTM1LjRjLTUuNi01LjQtMi41LTE0LjggNS4yLTE2bDUwLjEtNy4zYzMtLjQgNS43LTIuNCA3LTUuMWwyMi40LTQ1LjRjMy40LTcgMTMuMy03IDE2LjggMGwyMi40IDQ1LjR6Il19LHckdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY3JvbGwiLGljb246WzU3Niw1MTIsWzEyODIyMF0sImY3MGUiLCJNMCAxMTJDMCA3MC41IDMxLjYgMzYuNCA3MiAzMi40bDAtLjQgMjgwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDE3Ni0xNzYgMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA2MGMwIDI0LjMtMTkuNyA0NC00NCA0NHMtNDQtMTkuNy00NC00NGwwLTIyOC02NCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQ4ek0yMzYuOCA0ODBjNy4xLTEzLjEgMTEuMi0yOC4xIDExLjItNDRsMC02MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yMjcuMiAwek04MCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LE0kdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWV4Y2VsIixpY29uOlszODQsNTEyLFtdLCJmMWMzIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjQgMjY2LjdjLTcuNC0xMS0yMi4zLTE0LTMzLjMtNi43cy0xNCAyMi4zLTYuNyAzMy4zTDE2My4yIDM1MiAxMjQgNDEwLjdjLTcuNCAxMS00LjQgMjUuOSA2LjcgMzMuM3MyNS45IDQuNCAzMy4zLTYuN2wyOC00MiAyOCA0MmM3LjQgMTEgMjIuMyAxNCAzMy4zIDYuN3MxNC0yMi4zIDYuNy0zMy4zTDIyMC44IDM1MiAyNjAgMjkzLjNjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zcy0yNS45LTQuNC0zMy4zIDYuN2wtMjggNDItMjgtNDJ6Il19LGskdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXIiLGljb246WzUxMiw1MTIsW10sImYwYjAiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMzIwIDQ5Mi45IDMyMCA0ODBsMC0xNzguNyAxODIuNi0xODIuNmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6Il19LFMkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtIixpY29uOls1MTIsNTEyLFsxMjkzNDVdLCJmNTY5IiwiTTUwMS4yIDc2LjFjMTEuMS03LjMgMTQuMi0yMi4xIDYuOS0zMy4ycy0yMi4xLTE0LjItMzMuMi02LjlMMzcwLjIgMTA0LjVDMzM1LjggOTguNyAyOTcgOTYgMjU2IDk2IDExNC42IDk2IDAgMTI4IDAgMjA4TDAgMzY4YzAgMzEuMyAyNy40IDU4LjggNzIgNzguN0w3MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDExOS40YzMzIDguOSA3MS4xIDE0LjUgMTEyIDE2LjFMMjMyIDM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTAzLjVjNDAuOS0xLjYgNzktNy4yIDExMi0xNi4xTDM5MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMi43YzQ0LjYtMTkuOSA3Mi00Ny40IDcyLTc4LjdsMC0xNjBjMC00MS4xLTMwLjItNjkuNS03OC44LTg3LjRsNjcuOS00NC41ek0zMDcuNCAxNDUuNmwtNjQuNiA0Mi4zYy0xMS4xIDcuMy0xNC4yIDIyLjEtNi45IDMzLjJzMjIuMSAxNC4yIDMzLjIgNi45bDExMS4xLTcyLjhjMTQuNyAzLjIgMjcuOSA3IDM5LjQgMTEuNSAzOC44IDE1LjEgNDQuNCAzMC42IDQ0LjQgNDEuMyAwIC44LTIuNyAxNy4yLTQ2IDM1LjktMzguOSAxNi44LTk2IDI4LjEtMTYyIDI4LjFTMTMyLjkgMjYwLjcgOTQgMjQzLjljLTQzLjMtMTguNy00Ni0zNS4xLTQ2LTM1LjkgMC0xMC42IDUuNi0yNi4yIDQ0LjQtNDEuMyAzOC4zLTE0LjkgOTUuNC0yMi43IDE2My42LTIyLjcgMTggMCAzNS4xIC41IDUxLjQgMS42eiJdfSx6JHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLXBpbiIsaWNvbjpbMzIwLDUxMixbMTI4MjA1XSwiZjI3NiIsIk0xOTIgMjg0LjRDMjU2LjEgMjY5LjkgMzA0IDIxMi41IDMwNCAxNDQgMzA0IDY0LjUgMjM5LjUgMCAxNjAgMFMxNiA2NC41IDE2IDE0NGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRMMTI4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTk1LjZ6TTE2OCA5NmMtMzAuOSAwLTU2IDI1LjEtNTYgNTYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40IDQ2LjYtMTA0IDEwNC0xMDQgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LEVmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkLWZsaXAiLGljb246WzY0MCw1MTIsWyJiYWxhbmNlLXNjYWxlLXJpZ2h0Il0sImY1MTYiLCJNMTE4LjIgNjIuNEMxMDEuNSA1Ni44IDkyLjQgMzguNiA5OCAyMS45UzEyMS43LTMuOSAxMzguNSAxLjZsMTEzIDM3LjdjMTMuOS0yMy41IDM5LjYtMzkuMyA2OC45LTM5LjMgNDQuMiAwIDgwIDM1LjggODAgODAgMCAzLS4yIDUuOS0uNSA4LjhsMTIyLjYgNDAuOWMxNi44IDUuNiAyNS44IDIzLjcgMjAuMiA0MC41cy0yMy43IDI1LjgtNDAuNSAyMC4yTDM2Ni43IDE0NS4yYy00LjUgMy4yLTkuMyA1LjktMTQuNCA4LjJsMCAzMjYuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDAgMC0yOTQuN2MtMjEtOS4yLTM3LjItMjctNDQuMi00OWwtMTI1LjktNDJ6TTIwMC44IDI4OEwxMjguMyAxNjMuOCA1NS45IDI4OCAyMDAuOCAyODh6bS03Mi40IDk2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45em0zODIuOC05Mi4ybC03Mi40IDEyNC4yIDE0NC45IDAtNzIuNC0xMjQuMnptMTI2IDE0MS4zQzYyNi40IDQ3OCA1NzQuMSA1MTIgNTExLjIgNTEycy0xMTUuMi0zNC0xMjYtNzguOWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMXoiXX0sQyR0PUVmZSxfJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiZCIsIk05LjQgOS40QzIxLjktMy4xIDQyLjEtMy4xIDU0LjYgOS40TDEyOCA4Mi43IDEyOCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguNyAwLTczLjQtNzMuNEMtMy4xIDQyLjEtMy4xIDIxLjkgOS40IDkuNHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTUwMi42IDU0LjZMNDI5LjMgMTI4IDQ0OCAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE4LjcgNzMuNC03My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS00NS4zIDQ0OEwzODQgNDI5LjMgMzg0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjcgMCA3My40IDczLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6TTkuNCA0NTcuNEw4Mi43IDM4NCA2NCAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguNy03My40IDczLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zeiJdfSxUJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUiLGljb246WzUxMiw1MTIsWzEyODM4Niw5OTkzLDYxNDQzXSwiZjBlMCIsIk00OCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCAxNS4xIDcuMSAyOS4zIDE5LjIgMzguNGwyMDggMTU2YzE3LjEgMTIuOCA0MC41IDEyLjggNTcuNiAwbDIwOC0xNTZjMTIuMS05LjEgMTkuMi0yMy4zIDE5LjItMzguNCAwLTI2LjUtMjEuNS00OC00OC00OEw0OCA2NHpNMCAxOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xODgtMTk4LjQgMTQ4LjhjLTM0LjEgMjUuNi04MS4xIDI1LjYtMTE1LjIgMEwwIDE5NnoiXX0sTCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnkiLGljb246WzM4NCw1MTIsW10sImY3N2MiLCJNMTIwIDg4YTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNNy43IDE0NC41YzEzLTE3LjkgMzgtMjEuOCA1NS45LTguOEw5OS44IDE2MmMyNi44IDE5LjUgNTkuMSAzMCA5Mi4yIDMwczY1LjQtMTAuNSA5Mi4yLTMwbDM2LjItMjYuNGMxNy45LTEzIDQyLjktOSA1NS45IDguOHM5IDQyLjktOC44IDU1LjlsLTM2LjIgMjYuNGMtMTMuNiA5LjktMjguMSAxOC4yLTQzLjMgMjVsMCAzNi4zLTE5MiAwIDAtMzYuM2MtMTUuMi02LjctMjkuNy0xNS4xLTQzLjMtMjVMMTYuNSAyMDAuM2MtMTcuOS0xMy0yMS44LTM4LTguOC01NS45ek05Ny41IDMyOS4zbDYwLjYgNTMtMjYgMzcuMiAyNC4zIDI0LjNjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTQ4LTQ4QzM4IDQzOC42IDM2LjEgNDE3IDQ3LjIgNDAxLjFsNTAuMi03MS44em0xMjguNSA1M2w2MC42LTUzIDUwLjIgNzEuOGMxMS4xIDE1LjkgOS4yIDM3LjUtNC41IDUxLjJsLTQ4IDQ4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNmwyNC4zLTI0LjMtMjYtMzcuMnoiXX0sSWZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3oiXX0sJCR0PUlmZSxEJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZCIsIk0yNi45IDIwNi45TDMuNyA0NDQuOUMxLjggNDYzLjcgMTYuNiA0ODAgMzUuNSA0ODBsMTcyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOWMwLTguMyA2LjctMTUgMTUtMTUgNS41IDAgMTAuNiAzIDEzLjIgNy45bDg2LjEgMTU5YzguNCAxNS41IDI0LjYgMjUuMSA0Mi4yIDI1LjFsNjQuMSAwYzE4LjkgMCAzMy43LTE2LjMgMzEuOC0zNS4xTDQ4NS42IDIwNy4xYy0xLjktMTkuNi0xMi44LTM3LjMtMjkuNS00Ny44TDI4MC45IDQ4LjNjLTE1LjctMTAtMzUuOC05LjktNTEuNSAuMUw1Ni4xIDE1OS4yYy0xNi41IDEwLjYtMjcuMyAyOC4yLTI5LjIgNDcuN3oiXX0sQSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImEiLGljb246WzM4NCw1MTIsWzk3XSwiNDEiLCJNMjIxLjUgNTEuN0MyMTYuNiAzOS44IDIwNC45IDMyIDE5MiAzMnMtMjQuNiA3LjgtMjkuNSAxOS43Yy05My4zIDIyNC0xNDYuNyAzNTItMTYwIDM4NC02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4ybDMxLjgtNzYuMyAxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOGMtMTMuMy0zMi02Ni43LTE2MC0xNjAtMzg0ek0yNjQgMzIwbC0xNDQgMCA3Mi0xNzIuOCA3MiAxNzIuOHoiXX0sUCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcmFjaHV0ZS1ib3giLGljb246WzUxMiw1MTIsW10sImY0Y2QiLCJNMTI4IDIyNEMxMjggMTUyLjIgMTQ0LjMgODguNCAxNjkuNSA0My40IDE5NS4xLTIuNCAyMjYuNi0yNCAyNTYtMjRzNjAuOSAyMS42IDg2LjUgNjcuNEMzNjcuNyA4OC40IDM4NCAxNTIuMiAzODQgMjI0bC0xMDQgMCAwIDk2IDggMGM5LjMgMCAxOC4xIDIgMjYgNS41bDExOC40LTEwMS41LS41IDBjMC03OC40LTE3LjctMTUwLjYtNDcuNi0yMDQtNi4xLTExLTEyLjktMjEuMy0yMC4zLTMwLjkgODYuNSAzNS45IDE0Ny44IDExNS4xIDE0Ny44IDIxOC45IDAgNy0zLjEgMTMuNy04LjQgMTguMkwzNDcuNCAzNjAuMWMzIDcuNCA0LjYgMTUuNCA0LjYgMjMuOWwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtOC40IDEuNi0xNi41IDQuNi0yMy45TDguNCAyMjYuMkMzLjEgMjIxLjcgMCAyMTUgMCAyMDggMCAxMDQuMiA2MS4zIDI0LjkgMTQ3LjgtMTAuOSAxNDAuNS0xLjQgMTMzLjcgOSAxMjcuNiAyMCA5Ny43IDczLjQgODAgMTQ1LjYgODAgMjI0bC0uNSAwIDExOC40IDEwMS41YzgtMy41IDE2LjgtNS41IDI2LTUuNWw4IDAgMC05Ni0xMDQgMHoiXX0sRSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtYXJyb3ctZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjIxOCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgMTg3LjIgMCAwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjEgMTc3LjQgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sSSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0Y2EiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxfZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYXJyb3ctdXAiLGljb246WzU3Niw1MTIsWzYyMzM4LCJjbG91ZC11cGxvYWQiLCJjbG91ZC11cGxvYWQtYWx0Il0sImYwZWUiLCJNMTQ0IDQ4MGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC02My40IDQxLTExNy4yIDk3LjktMTM2LjUtMS4zLTcuNy0xLjktMTUuNS0xLjktMjMuNSAwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA1NS40IDAgMTAzLjUgMzEuMyAxMjcuNiA3Ny4xIDE0LjItOC4zIDMwLjgtMTMuMSA0OC40LTEzLjEgNTMgMCA5NiA0MyA5NiA5NiAwIDE1LjctMy44IDMwLjYtMTAuNSA0My43IDQ0IDIwLjMgNzQuNSA2NC43IDc0LjUgMTE2LjMgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMwNCAwek0zMDUgMTkxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNzIgNzJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMS0zMSAwIDEwMi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDIuMSAzMSAzMWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyeiJdfSxOJHQ9X2VlLFIkdD1fZWUsTyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF0IixpY29uOls1MTIsNTEyLFs2MTk0Nl0sIjQwIiwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwIDUxMiAxMTQuNiA1MTIgMjU2bDAgMzJjMCA1My00MyA5Ni05NiA5Ni0yOS4zIDAtNTUuNi0xMy4yLTczLjItMzMuOS0yMi44IDIxLTUzLjMgMzMuOS04Ni44IDMzLjktNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGMyNy45IDAgNTMuNyA4LjkgNzQuNyAyNC4xIDUuNy01IDEzLjEtOC4xIDIxLjMtOC4xIDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTEwNi04Ni0xOTItMTkyLTE5MnptNjQgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHoiXX0sVGVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZGlhbi1ydXBlZS1zaWduIixpY29uOlszMjAsNTEyLFsiaW5kaWFuLXJ1cGVlIiwiaW5yIl0sImUxYmMiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNzYuNyAwYzE3LjcgMTkuOCAzMC4xIDQ0LjYgMzQuNyA3Mmw0MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MiAwYy0xMC40IDYyLjItNjAuOCAxMTAuOS0xMjMuOCAxMTguOUwyNzQuNiA0MjJjMTQuNCAxMC4zIDE3LjcgMzAuMyA3LjQgNDQuNnMtMzAuMyAxNy43LTQ0LjYgNy40TDEzLjQgMzE0QzIuMSAzMDYtMi43IDI5MS41IDEuNSAyNzguMlMxOC4xIDI1NiAzMiAyNTZsODAgMGMzNS44IDAgNjYuMS0yMy41IDc2LjMtNTZMMjQgMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2NC4zIDBjLTEwLjItMzIuNS00MC41LTU2LTc2LjMtNTZMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sRiR0PVRlZSxCJHQ9VGVlLEgkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTU3LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNTc2IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTUxMiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0xOTIgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LE5mZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFsa2JvYXJkLXVzZXIiLGljb246WzY0MCw1MTIsWyJjaGFsa2JvYXJkLXRlYWNoZXIiXSwiZjUxYyIsIk0xOTIgMzg0YzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMiAwLTUzIDQzLTk2IDk2LTk2bDk2IDB6TTU0NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDMzLjEtMjUuMiA2MC40LTU3LjUgNjMuN2wtNi41IC4zLTIxMS4xIDBjLTUuMS0yNC4yLTE2LjMtNDYuMS0zMi4xLTY0bDUxLjIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwIDAtMjg4LTM1MiAwIDAgNTcuM2MtMTQuOC02LTMxLTkuMy00OC05LjMtNS40IDAtMTAuOCAuMy0xNiAxbDAtNDljMC0zNS4zIDI4LjctNjQgNjQtNjRsMzUyIDB6TTE0NCAzNTJhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6Il19LHEkdD1OZmUsViR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2hlY2siLGljb246WzY0MCw1MTIsW10sImY0ZmMiLCJNMjg2IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3OCA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zbDU5LjQgMHpNNTg1LjcgMTA1LjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUw1MjIuMSAyNzQuOWMtNC4yIDUuNy0xMC43IDkuNC0xNy43IDkuOHMtMTQtMi4yLTE4LjktNy4zbC00Ni40LTQ4Yy05LjItOS41LTktMjQuNyAuNi0zMy45IDkuNS05LjIgMjQuNy04LjkgMzMuOSAuNmwyNi41IDI3LjQgODUuNi0xMTcuN3pNMjU2LjMgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0saiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbmluamEiLGljb246WzQ0OCw1MTIsWzEyOTM5OV0sImY1MDQiLCJNMzUyIDEyOGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOC01Ny4yIDAtMTA1LjYtMzcuNS0xMjItODkuMy0xLjEgMS4zLTIuMiAyLjYtMy41IDMuOC0xNS44IDE1LjgtMzguOCAyMC43LTUzLjYgMjIuMS04LjEgLjgtMTQuNi01LjctMTMuOC0xMy44IDEuNC0xNC43IDYuMy0zNy44IDIyLjEtNTMuNiA1LjgtNS44IDEyLjYtMTAuMSAxOS42LTEzLjQtNy0zLjItMTMuOC03LjYtMTkuNi0xMy40LTE1LjgtMTUuOC0yMC43LTM4LjgtMjIuMS01My42LS44LTguMSA1LjctMTQuNiAxMy44LTEzLjggMTQuNyAxLjQgMzcuOCA2LjMgNTMuNiAyMi4xIDQuOCA0LjggOC43IDEwLjQgMTEuNyAxNi4xIDIxLjMtNDEuMiA2NC4zLTY5LjQgMTEzLjgtNjkuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHpNMTQ0IDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMTYwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6bS0xLjQgMjExbDY3IDUwLjJjOC41IDYuNCAyMC4zIDYuNCAyOC44IDBsNjctNTAuMmM2LjUtNC45IDE1LjItNi4yIDIyLjYtMi44IDYxLjQgMjguMiAxMDQuMSA5MC4yIDEwNC4xIDE2Mi4xIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDQ1LjcgNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTcyIDQyLjctMTM0IDEwNC4xLTE2Mi4xIDcuNC0zLjQgMTYuMS0yLjEgMjIuNiAyLjh6Il19LFUkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFudC13aWx0IixpY29uOls1MTIsNTEyLFtdLCJlNWFhIiwiTTM0NC0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDYuMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zYy00MC43LTM2LjgtNjYtODMuNy02Ni0xMTEuNyAwLTM1LjYgMTguNy02NC43IDQ4LTc2LjlsMC02LjJjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCA0MjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yOTZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCAzOC4yYzI5LjMgMTIuMiA0OCA0MS4zIDQ4IDc2LjkgMCAyNy45LTI1LjMgNzQuOC02NiAxMTEuNy0zLjggMy41LTguOCA1LjMtMTQgNS4zcy0xMC4yLTEuOC0xNC01LjNDMjUuMyA0MDUuOSAwIDM1OSAwIDMzMS4xIDAgMjk1LjQgMTguNyAyNjYuNCA0OCAyNTQuMkw0OCAyMTZjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMjAuMiAwIDM5LjMgNSA1NiAxMy44TDIyNCA4OGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sUmZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1zY2FsZSIsaWNvbjpbNDQ4LDUxMixbIndlaWdodCJdLCJmNDk2IiwiTTExNi42IDE5MmMtMy0xMC4xLTQuNi0yMC45LTQuNi0zMiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMlMzMzYgOTguMSAzMzYgMTYwYzAgMTEuMS0xLjYgMjEuOS00LjYgMzJsLTcxIDAgMjQuNi00NC4zYzYuNC0xMS42IDIuMy0yNi4yLTkuMy0zMi42cy0yNi4yLTIuMy0zMi42IDkuM2wtMzcuNiA2Ny43LTg4LjggMHpNMTI4IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBDMjkzLjMgMTEuOSAyNjAgMCAyMjQgMHMtNjkuMyAxMS45LTk2IDMyeiJdfSxXJHQ9UmZlLE10ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1yaWdodCIsaWNvbjpbMjU2LDUxMixbXSwiZjBkYSIsIk0yNDkuMyAyMzUuOGMxMC4yIDEyLjYgOS41IDMxLjEtMi4yIDQyLjhsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzY0LjUgMzk2LjkgNjQuNSAzODRsMC0yNTZjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWwxMjggMTI4IDIuMiAyLjR6Il19LEckdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9yaW4tc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE4NCIsIk0zMTQuNyAzMmMtMzguOCAwLTczLjcgMjMuMy04OC42IDU5LjFMMTcwLjcgMjI0IDY0IDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4MCAwLTQ1LjEgMTA4LjNjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43TDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNy4zIDBjMzguOCAwIDczLjctMjMuMyA4OC42LTU5LjFMMjEzLjMgMjg4IDMyMCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgNDUuMS0xMDguM2M1LTExLjkgMTYuNi0xOS43IDI5LjUtMTkuN0wzNTIgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3LjMgMHoiXX0sa3RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwiLGljb246WzQ0OCw1MTIsWzEyODI3Niw2MTYwMl0sImYwZjMiLCJNMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMy4yQzExOSA1MCA2NCAxMTQuNiA2NCAxOTJsMCAyMS43YzAgNDguMS0xNi40IDk0LjgtNDYuNCAxMzIuNEw3LjggMzU4LjNDMi43IDM2NC42IDAgMzcyLjQgMCAzODAuNSAwIDQwMC4xIDE1LjkgNDE2IDM1LjUgNDE2bDM3Ni45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTkuOC0xMi4yQzQwMC40IDMwOC41IDM4NCAyNjEuOCAzODQgMjEzLjdsMC0yMS43YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44bDAtMy4yYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjIgNDY0YzcuMSAyNy42IDMyLjIgNDggNjIgNDhzNTQuOS0yMC40IDYyLTQ4bC0xMjQgMHoiXX0sWSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxhcmktc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTFjOCIsIk0xNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQxLjVjNy45LTEgMTUuOS0xLjUgMjQtMS41czE2LjEgLjUgMjQgMS41TDIxNiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNTRjNTguOSAyMy44IDEwMy4yIDc2IDExNi4yIDEzOS43IDMuNSAxNy4zLTcuNyAzNC4yLTI1IDM3LjdzLTM0LjItNy43LTM3LjctMjVjLTYuNy0zMy4yLTI2LjQtNjEuOC01My40LTgwLjJsMCA4MS44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAxLjhjLTcuOC0xLjUtMTUuOC0yLjItMjQtMi4ycy0xNi4yIC44LTI0IDIuMkwxNjggMjMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODEuOGMtMzMuOCAyMy01NiA2MS45LTU2IDEwNS44IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNi45IDBDMTguNSAzNTAgMCAzMDUuMiAwIDI1NiAwIDE3NS40IDQ5LjYgMTA2LjQgMTIwIDc4bDAtNTRjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEskdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWxsLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZWQiLCJNMjk3LTIyLjJjMTIuMyA1IDE4LjIgMTkgMTMuMiAzMS4zbC0yOSA3MS4zQzMzOC44IDg1LjEgMzg0IDEzMy4zIDM4NCAxOTJsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDgtNi40IDAtMTIuNSAxLjItMTggMy41bC0zMCA3My44IDAgMTc4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMS4yLTU3LjggMTQyLjJjLTUgMTIuMy0xOSAxOC4yLTMxLjMgMTMuMnMtMTguMi0xOS0xMy4yLTMxLjNMMTYwIDI1MS4zIDE2MCAxOTJjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MTcuNyAwIDQwMEwwIDExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMiAxMC45IDAgMjAuNSA1LjQgMjYuMyAxMy43IDE2LTguNyAzNC4zLTEzLjcgNTMuNy0xMy43IDMxLjMgMCA1OS43IDEyLjkgODAgMzMuNiA5LjYtOS44IDIwLjktMTcuOCAzMy41LTIzLjVMMjY1LjgtOWM1LTEyLjMgMTktMTguMiAzMS4zLTEzLjJ6Il19LE9mZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc25vd2JvYXJkaW5nIixpY29uOls1NzYsNTEyLFsxMjc5MzgsInNub3dib2FyZGluZyJdLCJmN2NlIiwiTTQyNC41IDE2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xNjYuNCA0NS41YzEwLjItMTQuNCAzMC4yLTE3LjkgNDQuNi03LjdsMjcyIDE5MmMxNC40IDEwLjIgMTcuOSAzMC4yIDcuNyA0NC42cy0zMC4yIDE3LjktNDQuNiA3LjdsLTkyLjItNjUuMS02Mi4yIDUzLjMgMzIuMSAyNi43YzE4LjIgMTUuMiAyOC44IDM3LjcgMjguOCA2MS41bDAgODcuOCA3Ny41IDE1LjJjNi4yIDEuMiAxMi42IC45IDE4LjctLjhsNDEuMi0xMS44YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTQxLjIgMTEuOGMtMTMuNCAzLjgtMjcuNCA0LjQtNDEuMSAxLjhMODcuMSA0NDMuM2MtMTcuMi0zLjQtMzMtMTEuOC00NS4zLTI0LjFMMTUuNSAzOTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyNi4yIDI2LjJjNS42IDUuNiAxMi44IDkuNCAyMC42IDExbDY0LjIgMTIuNiAwLTEyMy43YzAtMjcuNyAxMi01NCAzMi44LTcyLjJsNjktNjAuNC04OC4yLTYyLjNDMTU5LjYgODAgMTU2LjIgNjAgMTY2LjQgNDUuNXptNTguMSAzNzUuN2w2NCAxMi41IDAtNzUuM2MwLTQuNy0yLjEtOS4zLTUuOC0xMi4zbC01OC4yLTQ4LjUgMCAxMjMuNnoiXX0sWiR0PU9mZSxGZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHR5IixpY29uOls1MTIsNTEyLFsidGVsZXR5cGUiXSwiZjFlNCIsIk00NTAuMiAyNjYuOGMxNS44IDYuNSAzNC4xIC4zIDQyLjYtMTQuNmwyLjQtNC4yYzI3LjktNDguOSAyMy42LTExOC44LTMxLjMtMTU0LjUtMTI2LTgyLTI4OS42LTgyLTQxNS42IDAtNTQuOSAzNS43LTU5LjMgMTA1LjctMzEuMyAxNTQuNWwyLjQgNC4yYzguNSAxNC45IDI2LjcgMjEuMSA0Mi42IDE0LjZsODEuOS0zMy43YzEzLjktNS43IDIyLjQtMTkuOSAyMC45LTM0LjlsLTUuMS01MWM2Mi41LTIxIDEzMC44LTE5LjkgMTkyLjYgMy4zbC00LjggNDcuN2MtMS41IDE1IDcgMjkuMiAyMC45IDM0LjlsODEuOSAzMy43ek0zMiAzNTJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptOTYgMGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwek02NCA0MTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0zNTIgMzJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNMjU2IDMyMGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0IDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTEyOCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sWCR0PUZmZSxRJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtcmVjdGFuZ2xlIixpY29uOls1NzYsNTEyLFtdLCJlNTk0IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTIyNCA3MmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMCAxNTJjNTMgMCA5NiA0MyA5NiA5NmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNGMwLTUzIDQzLTk2IDk2LTk2em05Ni02NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0xNjggMjcyLjNjLTE1LjIgMjIuOC0yNCA1MC4yLTI0IDc5LjdsMCAyNGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTQ2LjggMEM4OS42IDQwMCA4MCAzOTAuNCA4MCAzNzguN0w4MCAzNjhjMC01MC4zIDM4LjctOTEuNiA4OC05NS43ek00MjcuOSA0MDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC0yNGMwLTI5LjUtOC44LTU2LjktMjQtNzkuNyA0OS4zIDQuMSA4OCA0NS4zIDg4IDk1LjdsMCAxMC43YzAgMTEuOC05LjYgMjEuMy0yMS4zIDIxLjNsLTQ2LjggMHpNOTYgMTkyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LExlZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUiLGljb246WzM4NCw1MTIsWzEyODI0MSwibW9iaWxlLWFuZHJvaWQiLCJtb2JpbGUtcGhvbmUiXSwiZjNjZSIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6bTcyIDQxNmw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxKJHQ9TGVlLGVEdD1MZWUsdER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10dXJuLXRvLWRvdHMiLGljb246WzQ0OCw1MTIsW10sImU0YzEiLCJNMjY1LjQtNi42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMjg1LjMgNjQgMzUyIDY0YzUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC02Ni43IDAgMjUuNCAyNS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsODAtODB6bS04Mi43IDI3Mmw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDE2Mi43IDQwMCA5NiA0MDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0ODEuNyAwIDQ2NGwwLTMyYzAtNTMgNDMtOTYgOTYtOTZsNjYuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMHpNMzIwIDM2OGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTY0IDE2MGE2NCA2NCAwIDEgMSAwLTEyOCA2NCA2NCAwIDEgMSAwIDEyOHoiXX0sYUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4Y2xhbWF0aW9uIixpY29uOlsxMjgsNTEyLFsxMDA2OSwxMDA3MSw2MTczOF0sIjIxIiwiTTY0IDQzMmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwYzAtMjIuMSAxNy45LTQwIDQwLTQwek02NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgLjYgMCAxLjEgMCAxLjdsLTE2IDMwNGMtLjkgMTctMTUgMzAuMy0zMiAzMC4zUzMzIDM3MC43IDMyIDM1My43TDE2IDQ5LjdjMC0uNiAwLTEuMSAwLTEuNyAwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sckR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNodXJjaCIsaWNvbjpbNTEyLDUxMixbOTk2Ml0sImY1MWQiLCJNMjgwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjMyLTIxLjMgMjMyLThsMCAyNC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCA0OC05OC42IDY1LjhDMTIwIDE4Ni43IDExMiAyMDEuNiAxMTIgMjE3LjdsMCAzOC4zLTc5LjggNDUuNkMxMi4zIDMxMyAwIDMzNC4yIDAgMzU3LjFMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgNzQuNyAwIDg1LjQgMCAzMjAgMGw2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtOTAuOWMwLTIzLTEyLjMtNDQuMi0zMi4yLTU1LjZMNDAwIDI1NiA0MDAgMjE3LjdjMC0xNi04LTMxLTIxLjQtMzkuOWwtOTguNi02NS44IDAtNDggMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTI0ek0yNTYgMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODAtMTI4IDAgMC04MGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sc0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvZ2dsZS1vZmYiLGljb246WzU3Niw1MTIsW10sImYyMDQiLCJNMzg0IDEyOGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM0NTQuNyAzODQgMzg0IDM4NGwtMTkyIDBjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhsMTkyIDB6TTU3NiAyNTZjMC0xMDYtODYtMTkyLTE5Mi0xOTJMMTkyIDY0Qzg2IDY0IDAgMTUwIDAgMjU2Uzg2IDQ0OCAxOTIgNDQ4bDE5MiAwYzEwNiAwIDE5Mi04NiAxOTItMTkyek0xOTIgMzM2YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYweiJdfSxpRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvZS1wcmludHMiLGljb246WzU3Niw1MTIsW10sImY1NGIiLCJNMjk2IDE5MmMtMjEuMS0xMi4xLTQyLjMtMjQuMi03Mi0yOS4zbDAtMTQwLjNDMjU3LjcgMTMgMzExLjQgMCAzNTIgMCA0NDggMCA1NzYgNDggNTc2IDEyOHMtMTE5LjYgOTYtMTc2IDk2Yy00OCAwLTc2LTE2LTEwNC0zMnpNMTI4IDMybDQ4IDAgMCAxMjgtNDggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NHpNMjMyIDMyMGMyOC0xNiA1Ni0zMiAxMDQtMzIgNTYuNCAwIDE3NiAxNiAxNzYgOTZTMzg0IDUxMiAyODggNTEyYy00MC41IDAtOTQuMy0xMy0xMjgtMjIuNGwwLTE0MC4zYzI5LjctNS4yIDUwLjktMTcuMyA3Mi0yOS40ek02NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRsNDggMCAwIDEyOC00OCAweiJdfSxvRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0ZWIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sU3RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZjU1NSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDcyIDEyOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNTguNyA4MCA3MiA4MGwzODQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCAzMnpNNDE2IDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGV2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lc3NhZ2UiLGljb246WzUxMiw1MTIsWyJjb21tZW50LWFsdCJdLCJmMjdhIiwiTTAgMzUyTDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAgMGMtNS4yIDAtMTAuMiAxLjctMTQuNCA0LjhMMTY2LjQgNTM5LjJjLTQuMiAzLjEtOS4yIDQuOC0xNC40IDQuOC0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZ6Il19LG5EdD1ldixsRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvcGh5IixpY29uOls1MTIsNTEyLFsxMjc5NDJdLCJmMDkxIiwiTTE0NC4zIDBsMjI0IDBjMjYuNSAwIDQ4LjEgMjEuOCA0Ny4xIDQ4LjItLjIgNS4zLS40IDEwLjYtLjcgMTUuOGw0OS42IDBjMjYuMSAwIDQ5LjEgMjEuNiA0Ny4xIDQ5LjgtNy41IDEwMy43LTYwLjUgMTYwLjctMTE4IDE5MC41LTE1LjggOC4yLTMxLjkgMTQuMy00Ny4yIDE4LjgtMjAuMiAyOC42LTQxLjIgNDMuNy01Ny45IDUxLjhsMCA3My4xIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC03My4xYy0xNi03LjctMzUuOS0yMi01NS4zLTQ4LjMtMTguNC00LjgtMzguNC0xMi4xLTU3LjktMjMuMS01NC4xLTMwLjMtMTAyLjktODcuNC0xMDkuOS0xODkuOS0xLjktMjguMSAyMS00OS43IDQ3LjEtNDkuN2w0OS42IDBjLS4zLTUuMi0uNS0xMC40LS43LTE1LjgtMS0yNi41IDIwLjYtNDguMiA0Ny4xLTQ4LjJ6TTEwMS41IDExMmwtNTIuNCAwYzYuMiA4NC43IDQ1LjEgMTI3LjEgODUuMiAxNDkuNi0xNC40LTM3LjMtMjYuMy04Ni0zMi44LTE0OS42ek0zODAgMjU2LjhjNDAuNS0yMy44IDc3LjEtNjYuMSA4My4zLTE0NC44TDQxMSAxMTJjLTYuMiA2MC45LTE3LjQgMTA4LjItMzEgMTQ0Ljh6Il19LEJmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMzA0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxjRHQ9QmZlLGREdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTA1OSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0wzMTEgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDM0NSAxNTFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMjE3IDI3OWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0w3MyAzMTNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMzkgMTY5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMWMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMTAzIDEwNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjEgMzAuMS0zMC4xLTQuMS00LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45UzE5MS42LTIuMyAyMDEgN2w2LjMgNi4zYzcuOC00LjYgMTYuMi04IDI0LjgtMTAuM2wwLTExYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMjggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjQwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yOTYgNDBsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0w1NjcgMTk5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNi4zIDYuM2M0LjYgNy44IDggMTYuMiAxMC4zIDI0LjhsMTEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEgMGMtMi4yIDguNi01LjYgMTYuOS0xMC4zIDI0LjhMNjAxIDM0M2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xLTMwLjEgMzAuMSA0LjEgNC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjFjLTEwIDEwLTIwIDIwLTMwLjEgMzAuMUw0NzMgNDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTYuMy02LjNjLTcuOCA0LjYtMTYuMiA4LTI0LjggMTAuM2wwIDExYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTFjLTguNi0yLjItMTYuOS01LjYtMjQuOC0xMC4zTDMyOSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMjk1IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM1OSAyOTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek00NDggMzg0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LE5iPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1kZWFmIixpY29uOls1MTIsNTEyLFsiZGVhZiIsImRlYWZuZXNzIiwiaGFyZC1vZi1oZWFyaW5nIl0sImYyYTQiLCJNNTAyLjYgNTQuNmwtNDAgNDBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQwLTQwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS0zMjAgMzIwbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyem0wIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSx1RHQ9TmIscER0PU5iLGZEdD1OYixIZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWFycm93cyIsaWNvbjpbNTEyLDUxMixbInBlb3BsZS1hcnJvd3MtbGVmdC1yaWdodCJdLCJlMDY4IiwiTTMyIDY0QTY0IDY0IDAgMSAxIDE2MCA2NCA2NCA2NCAwIDEgMSAzMiA2NHpNMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzLjIgMCA2LjQgLjIgOS41IC43TDkzLjEgMjA1LjFDNjUgMjMzLjIgNjUgMjc4LjggOTMuMSAzMDYuOWw1NiA1NmMzLjQgMy40IDcgNi40IDEwLjkgOWwwIDkyLjFjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTIwLjZDMTIuOSAzMzIuNCAwIDMxMS43IDAgMjg4bDAtNjR6TTM1MiA2NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTY2LjkgMTQxLjFsLTQ0LjQtNDQuNGMzLjEtLjUgNi4zLS43IDkuNS0uN2w2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40TDQ4MCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTIuMWMzLjktMi42IDcuNS01LjYgMTAuOS05bDU2LTU2YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOHpNMzAyLjggMTc3LjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzI4OCAzMjEuNyAyODggMzEybDAtMjQtNjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzIyNCAxOTAuMyAyMjQgMjAwbDAgMjQgNjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnoiXX0saER0PUhmZSxtRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtY2xhcHBpbmciLGljb246WzUxMiw1MTIsW10sImUxYTgiLCJNMzQ0IDhsMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0UzM0NC01LjMgMzQ0IDh6TTIyMCAxMC43bDMyIDQ4YzcuNCAxMSA0LjQgMjUuOS02LjcgMzMuM3MtMjUuOSA0LjQtMzMuMy02LjdsLTMyLTQ4Yy03LjQtMTEtNC40LTI1LjkgNi43LTMzLjNTMjEyLjYtLjMgMjIwIDEwLjd6TTEzNSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjkyLjcgMjQyLjdjMTAuMSAxMC4xIDI3LjMgMi45IDI3LjMtMTEuM2wwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNC02NCAzOC40LTE0NS44IDI4LjMtMTk4LjUtMjQuNEw3IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDUzIDUzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDIzIDI2NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkzIDkzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDU1IDE4NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExNyAxMTdjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFsLTkzLTkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNNDMzLjEgNDg0LjljLTI0LjIgMTQuNS01MC45IDIyLjEtNzcuNyAyMy4xIDQ4LjEtMzkuNiA3Ni42LTk5IDc2LjYtMTYyLjRsMC05OC4xYzguMi0uMSAxNi02LjQgMTYtMTZsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjR6TTQ1My4zIDRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3oiXX0sZ0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNGE5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgzLTgzIDExLjQtMTEuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xMS4zIDExLjMtMjMuOC0yMy44YzE3LjktMjMuNSAyOS45LTUxLjcgMzQuMS04Mi4zbDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM2wyMy44LTIzLjggMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NDAuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDExLjMgMTEuMy0yMy44IDIzLjhDMzcwLjggOTcuOSAzNDIuNyA4NS44IDMxMiA4MS42bDAtMzMuNiAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM0MS4zIDAgMzI4IDBMMjQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjZjLTMwLjcgNC4yLTU4LjggMTYuMy04Mi4zIDM0LjFMMTU3LjkgOTIgMTY5LjIgODAuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEyMy45IDU4LjEgNDEtMjQuOXpNMTEzLjYgMjMybC0zMy42IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAzMy42IDBjNC4yIDMwLjcgMTYuMyA1OC44IDM0LjEgODIuM2wtMjMuOCAyMy44LTExLjMtMTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1Ni42IDU2LjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS4zLTExLjMgMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzEzLjQtMS44IDI2LjQtNS4yIDM4LjctOS45TDEyMy41IDE5My4zYy00LjcgMTIuMy04IDI1LjItOS45IDM4Ljd6Il19LHFmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTI4IDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LGJEdD1xZmUsVmZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQtdHVybi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImRpcmVjdGlvbnMiXSwiZjVlYiIsIk0yMTUgMTdMMTcgMjE1QzYuMSAyMjUuOSAwIDI0MC42IDAgMjU2czYuMSAzMC4xIDE3IDQxTDIxNSA0OTVjMTAuOSAxMC45IDI1LjYgMTcgNDEgMTdzMzAuMS02LjEgNDEtMTdMNDk1IDI5N2MxMC45LTEwLjkgMTctMjUuNiAxNy00MXMtNi4xLTMwLjEtMTctNDFMMjk3IDE3QzI4Ni4xIDYuMSAyNzEuNCAwIDI1NiAwcy0zMC4xIDYuMS00MSAxN3pNMzg1IDI1N2wtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBjMC0zOS44IDMyLjItNzIgNzItNzJsNzguMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LHZEdD1WZmUseER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtdXAiLGljb246WzM4NCw1MTIsWzk3NTddLCJmMGE2IiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBTOTYgMTQuMyA5NiAzMmwwIDIwOC02NCAwIDAtMjA4ek0yMjQgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tNjQtNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNjAgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlMMzcuNSA0NTMuNUMxMy41IDQyOS41IDAgMzk2LjkgMCAzNjNsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6Il19LHlEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZXppZXItY3VydmUiLGljb246WzY0MCw1MTIsW10sImY1NWIiLCJNMjk2IDEzNmwwLTQ4IDQ4IDAgMCA0OC00OCAwek0yODggMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNC0xMTguNCAwQzExMS4yIDYyLjcgODkuMyA0OCA2NCA0OCAyOC43IDQ4IDAgNzYuNyAwIDExMnMyOC43IDY0IDY0IDY0YzI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNmw2Ni45IDBjLTU4LjkgMzkuNi05OC45IDEwNS0xMDQgMTgwTDgwIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuMyAwYzUuOS02NyA0OC41LTEyMy40IDEwNy41LTE0OS4xIDguNiAxMi43IDIzLjIgMjEuMSAzOS44IDIxLjFsNjQgMGMxNi42IDAgMzEuMS04LjQgMzkuOC0yMS4xIDU5IDI1LjcgMTAxLjYgODIuMSAxMDcuNSAxNDkuMWwtMy4zIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00LjUgMGMtNS03NS00NS4xLTE0MC40LTEwNC0xODBsNjYuOSAwYzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNmwtMTE4LjQgMCAwLTRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTg4IDM3Nmw0OCAwIDAgNDgtNDggMCAwLTQ4em00MTYgNDhsMC00OCA0OCAwIDAgNDgtNDggMHoiXX0sd0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYWxmLWRyZXNzIixpY29uOlszODQsNTEyLFtdLCJlNTQ4IiwiTTE0My40LTMuOWM5LjctMTYuOCAyNy44LTI4LjEgNDguNi0yOC4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMjUuNC0xNi45IDQ2LjgtNDAgNTMuN2wwIDBjLTUuMSAxLjUtMTAuNCAyLjMtMTYgMi4zLTMwLjkgMC01Ni0yNS4xLTU2LTU2bDAgMGMwLTEwLjEgMi43LTE5LjcgNy40LTI3Ljl6TTMxOC4zIDI5OS4xTDI3MiAyMzYuNyAyNzIgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwIDAtLjQgMC0yMzguNmMzNi4yIDQuNCA2OS4yIDIzLjQgOTEuMiA1M2w3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiAxMTNsMCAzOTljMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NWMyMi0yOS42IDU1LjEtNDguNiA5MS4yLTUzeiJdfSxqZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBvbGwtaG9yaXpvbnRhbCIsaWNvbjpbNDQ4LDUxMixbInBvbGwtaCJdLCJmNjgyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYgMTUyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHptNzIgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIwOCAwek0xOTIgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6Il19LE1EdD1qZmUsa0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NmQiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sU0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDIzOC41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMuOC03OC4xLTUwLjItMTYxLjkgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw0OCAxNjBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxVZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZCIsaWNvbjpbNTc2LDUxMixbImJsYWNrYm9hcmQiXSwiZjUxYiIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ4MCAzODRsLTY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMCAwLTI1NiAzODQgMCAwIDI1NnoiXX0sekR0PVVmZSxXZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rLWFsdCJdLCJmMzVkIiwiTTI5MC40IDE5LjhDMjk1LjQgNy44IDMwNy4xIDAgMzIwIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNDAwIDE1Ny4zIDI0Ni42IDMxMC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzNTQuNyAxMTIgMjk3LjQgNTQuNmMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0Ljl6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgNDQuMi0zNS44IDgwLTgwIDgwTDgwIDUxMmMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxNzZ6Il19LENEdD1XZmUsX0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1mdWxsIixpY29uOls1MTIsNTEyLFsxMjg5OTcsMTI4OTk4LDEyODk5OSwxMjllMywxMjkwMDEsMTI5MDAyLDEyOTAwMywxMTAzNSwxMTAzNl0sImY0NWMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxURHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdmVyIixpY29uOls1MTIsNTEyLFtdLCJlMTM5IiwiTTMxMC40IDE2QzM0Ni42IDE2IDM3NiA0NS40IDM3NiA4MS43bDAgNS4yYzAgMTEuMi0yLjcgMjIuMy03LjggMzIuMmwtMi4zIDQuMi0yMC4xIDMzLjVjLTEuMSAxLjktMS4yIDMuNC0xLjEgNC41IC4yIDEuMyAuOSAyLjcgMi4xIDMuOXMyLjYgMS45IDMuOSAyLjFjMS4xIC4yIDIuNiAuMSA0LjUtMS4xbDMzLjUtMjAuMSA0LjItMi4zYzEwLTUuMSAyMS03LjggMzIuMi03LjhsNS4yIDBjMzYuMiAwIDY1LjYgMjkuNCA2NS42IDY1LjcgMCAxNy40LTYuOSAzNC4xLTE5LjIgNDYuNGwtMS4zIDEuM2MtMy43IDMuNy0zLjcgOS42IDAgMTMuM2wxLjMgMS4zYzEyLjMgMTIuMyAxOS4yIDI5IDE5LjIgNDYuNCAwIDM2LjItMjkuNCA2NS42LTY1LjYgNjUuNmwtNS4yIDBjLTEyLjggMC0yNS41LTMuNS0zNi41LTEwLjFsLTMzLjUtMjAuMWMtMS45LTEuMS0zLjQtMS4yLTQuNS0xLjEtMS4zIC4yLTIuNyAuOS0zLjkgMi4xcy0xLjkgMi42LTIuMSAzLjljLS4yIDEuMS0uMSAyLjYgMS4xIDQuNWwyMC4xIDMzLjVjNi42IDExIDEwLjEgMjMuNiAxMC4xIDM2LjVsMCA1LjJjMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjYtMTcuNCAwLTM0LjEtNi45LTQ2LjQtMTkuMmwtMS4zLTEuM2MtMy43LTMuNy05LjYtMy43LTEzLjMgMGwtMS4zIDEuM2MtMTIuMyAxMi4zLTI5IDE5LjItNDYuNCAxOS4yLTM2LjIgMC02NS42LTI5LjQtNjUuNy02NS42bDAtNS4yYzAtMTIuOCAzLjUtMjUuNSAxMC4xLTM2LjVsMjAuMS0zMy41YzEuMS0xLjkgMS4yLTMuNCAxLjEtNC41LS4yLTEuMy0uOS0yLjctMi4xLTMuOXMtMi42LTEuOS0zLjktMi4xYy0uNS0uMS0xLjItLjEtMS45IDBsLTIuNSAxLTMzLjUgMjAuMWMtMTEgNi42LTIzLjYgMTAuMS0zNi41IDEwLjFsLTUuMiAwQzQ1LjQgMzc2IDE2IDM0Ni42IDE2IDMxMC40IDE2IDI5MyAyMi45IDI3Ni4zIDM1LjIgMjY0bDEuMy0xLjMgMS4yLTEuNWMyLjEtMy4xIDIuMS03LjIgMC0xMC4zbC0xLjItMS41LTEuMy0xLjNDMjIuOSAyMzUuOCAxNiAyMTkuMSAxNiAyMDEuNyAxNiAxNjUuNCA0NS40IDEzNiA4MS43IDEzNmw1LjIgMGMxMi44IDAgMjUuNSAzLjUgMzYuNSAxMC4xbDMzLjUgMjAuMSAyLjUgMWMuNyAuMSAxLjQgLjEgMS45IC4xIDEuMy0uMiAyLjctLjkgMy45LTIuMXMxLjktMi42IDIuMS0zLjljLjEtLjUgLjEtMS4yLS4xLTEuOWwtMS0yLjUtMjAuMS0zMy41Yy02LjYtMTEtMTAuMS0yMy42LTEwLjEtMzYuNWwwLTUuMmMwLTM2LjIgMjkuNC02NS43IDY1LjctNjUuNyAxNy40IDAgMzQuMSA2LjkgNDYuNCAxOS4ybDEuMyAxLjNjMy43IDMuNiA5LjYgMy43IDEzLjMgMGwxLjMtMS4zIDQuOC00LjRDMjgwLjUgMjEuMyAyOTUuMSAxNiAzMTAuNCAxNnoiXX0sTER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoLW9wZW4iLGljb246WzUxMiw1MTIsW10sImY2MmYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDgwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTAgMjcyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzA0em04MC0xNjBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0em0xMjggMGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6TTgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek00OCAzODRsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptMTQ0IDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTEyLTE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyeiJdfSwkZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycy1zdGFnZ2VyZWQiLGljb246WzUxMiw1MTIsWyJyZW9yZGVyIiwic3RyZWFtIl0sImY1NTAiLCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek02NCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTYgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6Il19LCREdD0kZWUsRER0PSRlZSxBRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FyZWhvdXNlIixpY29uOls1NzYsNTEyLFtdLCJmNDk0IiwiTTAgMTQyLjFMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM3LjljMC0yNy41LTE3LjYtNTItNDMuOC02MC43TDMwMy4yIDUuMWMtOS45LTMuMy0yMC41LTMuMy0zMC40IDBMNDMuOCA4MS40QzE3LjYgOTAuMSAwIDExNC42IDAgMTQyLjF6TTQ2NCAyNTZsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHpNMTEyIDQxNmwzNTIgMCAwLTY0LTM1MiAwIDAgNjR6bTM1MiAzMmwtMzUyIDAgMCA2NCAzNTIgMCAwLTY0eiJdfSxQRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3dhdGNoYm9vayIsaWNvbjpbNTEyLDUxMixbXSwiZjVjMyIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzY4YzAgNTMtNDMgOTYtOTYgOTZTMCA0NjkgMCA0MTZMMCA0OHpNMjQwIDQwOS42bDAtMjcxLjUgNDguMS00OC4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDY3LjkgNjcuOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyNDAgNDA5LjZ6TTIwNS41IDUxMmwxOTItMTkyIDY2LjYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTguNSAwek04MCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDY0ek02NCAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgNDQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sRUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbXBncm91bmQiLGljb246WzUxMiw1MTIsWzk5NzhdLCJmNmJiIiwiTTM0NC44IDUyLjNjMTEuMi0xMy43IDkuMi0zMy44LTQuNS00NXMtMzMuOC05LjItNDUgNC41bC0zOS4yIDQ4LTM5LjItNDhDMjA1LjYtMS45IDE4NS40LTQgMTcxLjcgNy4ycy0xNS43IDMxLjQtNC41IDQ1bDQ3LjQgNTgtMjAyIDI0Ni45QzQuNSAzNjcuMSAwIDM3OS42IDAgMzkyLjZMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zOS40YzAtMTIuOS00LjUtMjUuNS0xMi43LTM1LjVsLTIwMi0yNDYuOSA0Ny40LTU4ek0yNTYgMjg4bDExMiAxMjgtMjI0IDAgMTEyLTEyOHoiXX0sSUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNTUyIiwiTTEwNC41IDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNMNzMuOSAyMjcuOWMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDI2Mi4zIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNsMTIuNiA4OC4xYzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4ybC0xMi42LTg4LjFjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOEwxMzAgMzQ3LjVjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3pNOTYuNiAzNzFjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNUw1NS4xIDUzNC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2OC4zLTY4LjNjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDk2LjYgMzcxek01MDUuNSAzNDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyeiJdfSxORHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xhc3NlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjUzMCIsIk0xNDMuMyA5NmMtMTQgMC0yNi41IDkuMi0zMC42IDIyLjZMNzAuNCAyNTYgMjI0IDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMmw2NCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1My42IDAtNDIuMy0xMzcuNEM0NTkuMiAxMDUuMiA0NDYuOCA5NiA0MzIuNyA5Nkw0MDAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIuNyAwYzQyLjEgMCA3OS40IDI3LjUgOTEuOCA2Ny44bDQ1LjQgMTQ3LjVjNC4xIDEzLjIgNi4xIDI2LjkgNi4xIDQwLjdsMCA5NmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMzItNjQgMCAwIDMyYzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC05NmMwLTEzLjggMi4xLTI3LjUgNi4xLTQwLjdMNTEuNSA5OS44QzYzLjkgNTkuNSAxMDEuMSAzMiAxNDMuMyAzMkwxNzYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyLjcgMHpNNjQgMzIwbDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0LTEyOCAwem00MTYgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6Il19LEdmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE5MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxSRHQ9R2ZlLE9EdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW1vcnkiLGljb246WzUxMiw1MTIsW10sImY1MzgiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRDMCAxNDIuMiA0LjQgMTQ4IDEwLjEgMTUxLjcgMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNmwwIDU1LjQgNTEyIDAgMC01NS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuMy0xMy4yLTguNi0yMS45LTIzLjQtMjEuOS00MC4zczguNy0zMS43IDIxLjktNDAuM2M1LjctMy43IDEwLjEtOS41IDEwLjEtMTYuM2wwLTcuNGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNTEyIDQxNmwwLTY0LTUxMiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDg4IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTYwIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxGRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2lmdCIsaWNvbjpbNTEyLDUxMixbMTI3ODczXSwiZjA2YiIsIk0zMjEuNSA2OC44QzMyOS4xIDU1LjkgMzQyLjkgNDggMzU3LjggNDhsMi4yIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTczLjMgMCAzNC44LTU5LjJ6bS0xMzEgMGwzNC44IDU5LjItNzMuMyAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDIuMiAwYzE0LjkgMCAyOC44IDcuOSAzNi4zIDIwLjh6bTg5LjYtMjQuM2wtMjQuMSA0MS0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwTDE1MiAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjQgMy41IDI4IDkuNiA0MEwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDEuNiAwYzYuMS0xMiA5LjYtMjUuNiA5LjYtNDAgMC00OC42LTM5LjQtODgtODgtODhsLTIuMiAwYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNHpNNDgwIDI3MmwtMjAwIDAgMCAyMDggMTM2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDR6bS0yNDggMGwtMjAwIDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTM2IDAgMC0yMDh6Il19LEJEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTJhIiwiTTE3Ni0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2ek01NiAwbDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgNDhDNDIuNyA0OCAzMiAzNy4zIDMyIDI0UzQyLjcgMCA1NiAwek0yNCA3MmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxMjBDMTAuNyAxMjAgMCAxMDkuMyAwIDk2UzEwLjcgNzIgMjQgNzJ6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiAwYzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMC0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDExMmM4LjggMCAxNiA3LjIgMTYgMTYgMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LEhEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW5nZW9uIixpY29uOls1MTIsNTEyLFtdLCJmNmQ5IiwiTTM0Ny41IDE0NC44YzYuNSA1LjQgMTIuNSAxMS4zIDE4IDE3LjcgOC43IDEwLjIgMjMuNyAxNCAzNS4xIDYuOWw1NC4xLTMzLjhjMTEuMi03IDE0LjctMjEuNyA2LjktMzIuMi0xNS4zLTIwLjUtMzMuNS0zOC42LTU0LjEtNTMuOC0xMC40LTcuNi0yNC43LTQuMy0zMS44IDYuNGwtMzUuMSA1Mi42Yy03LjggMTEuNi0zLjggMjcuMyA3IDM2LjJ6TTMyNy44IDQxLjFjOC42LTEyLjkgMi45LTMwLjUtMTIuMi0zNC4xLTE5LjEtNC42LTM5LjEtNy01OS42LTdzLTQwLjQgMi40LTU5LjYgN2MtMTUuMSAzLjYtMjAuOCAyMS4yLTEyLjIgMzQuMWw0MCA2MGM1LjIgNy44IDE0LjUgMTEuNyAyMy45IDExLjIgNS4yLS4zIDEwLjYtLjMgMTUuOCAwIDkuNCAuNSAxOC43LTMuNCAyMy45LTExLjJsNDAtNjB6TTUwLjUgMTAzLjNjLTcuOSAxMC41LTQuMyAyNS4zIDYuOSAzMi4ybDU0LjEgMzMuOGMxMS40IDcuMSAyNi4zIDMuMyAzNS4xLTYuOSA1LjUtNi40IDExLjUtMTIuMyAxOC0xNy43IDEwLjgtOC45IDE0LjgtMjQuNiA3LTM2LjJMMTM2LjQgNTUuOWMtNy4xLTEwLjctMjEuNS0xNC0zMS44LTYuNC0yMC42IDE1LjEtMzguOCAzMy4zLTU0LjEgNTMuOHptNjIgMTQxLjFjLjgtOS45LTMuMy0xOS45LTExLjgtMjUuMUw0MSAxODJjLTEyLjktOC0yOS45LTIuMy0zMy42IDEyLjUtNC45IDE5LjctNy41IDQwLjMtNy41IDYxLjZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0zLjkgLjItNy44IC41LTExLjZ6bTI4Ny4xIDBjLjMgMy44IC41IDcuNyAuNSAxMS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjEuMi0yLjYtNDEuOC03LjUtNjEuNi0zLjYtMTQuNy0yMC43LTIwLjUtMzMuNi0xMi41bC01OS43IDM3LjNjLTguNCA1LjMtMTIuNiAxNS4yLTExLjggMjUuMXpNODggMzUybC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em00MDAgMGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0em0tODAgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnptMTYwIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnoiXX0sWWZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1aXRjYXNlLW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJtZWRraXQiXSwiZjBmYSIsIk0xOTIgNTZsMCA0MCAxMjggMCAwLTQwYzAtNC40LTMuNi04LTgtOEwyMDAgNDhjLTQuNCAwLTggMy42LTggOHptLTQ4IDhsMC04YzAtMzAuOSAyNS4xLTU2IDU2LTU2TDMxMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDI0LTIyNCAwIDAtNDE2ek05NiAxNzZsMCAzMDQtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDgwek00MTYgNDgwbDAtMzg0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyIDB6TTI0NCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM2LTM2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwzNiAwIDAgMzZjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzYgMzYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTM2IDAgMC0zNmMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LHFEdD1ZZmUsVkR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jYW5lIixpY29uOls0NDgsNTEyLFtdLCJlNTNjIiwiTTIzMi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTQ0IDIzNi43TDk3LjcgMjk5LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzE0MiAxMzIgMTgxLjcgMTEyIDIyNCAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMzA0IDIzNi43IDMwNCA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNzUuM3pNMzkyIDM4NGMtNC40IDAtOCAzLjYtOCA4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMjhjMC00LjQtMy42LTgtOC04eiJdfSxSYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZSIsaWNvbjpbNTEyLDUxMixbImRhc2hib2FyZCIsImdhdWdlLW1lZCIsInRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2UiXSwiZjYyNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0tMTYgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDAwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxqRHQ9UmIsVUR0PVJiLFdEdD1SYixHRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtb3Blbi10ZXh0IixpY29uOls1NzYsNTEyLFtdLCJmNjU4IiwiTTI4OCAzMy45TDk2LjQgMTc1LjggMjU0LjUgMjkzYzUuMyAzLjkgMTEuMiA2LjkgMTcuNSA4LjdMMjcyIDQ2NGMwIDUuNSAuNSAxMC44IDEuMyAxNkw5NiA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjM5LjljMC0yMC4zIDkuNi0zOS40IDI1LjktNTEuNEwyNTQuNS0yMWM5LjctNy4yIDIxLjQtMTEgMzMuNS0xMXMyMy44IDMuOSAzMy41IDExTDUxOC4xIDEyNC43YzcuMiA1LjMgMTMuMSAxMiAxNy40IDE5LjYtMi41LS4yLTUtLjMtNy41LS4zTDQzNi42IDE0NCAyODggMzMuOXpNMzIwIDI0MGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjI0em04MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDB6Il19LFlEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b29sYm94IixpY29uOls1MTIsNTEyLFsxMjk1MjBdLCJmNTUyIiwiTTE3NiA1NmwwIDQwIDE2MCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDE4NCA0OGMtNC40IDAtOCAzLjYtOCA4ek0xMjggOTZsMC00MGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMjggMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQwIDI4LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDUxLjkgNTEuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOWwwIDc2LjEtMTM2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTE0NCAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xMzYgMCAwLTc2LjFjMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWw1MS45LTUxLjljOS05IDIxLjItMTQuMSAzMy45LTE0LjFMMTI4IDk2ek0wIDQxNmwwLTk2IDEzNiAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDE0NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDEzNiAwIDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHoiXX0sS0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvd2VyLW9mZiIsaWNvbjpbNTEyLDUxMixbOTIxMV0sImYwMTEiLCJNMjg4IDBjMC0xNy43LTE0LjMtMzItMzItMzJTMjI0LTE3LjcgMjI0IDBsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkwyODggMHpNMTQ2LjMgOTguNGMxNC41LTEwLjEgMTgtMzAuMSA3LjktNDQuNnMtMzAuMS0xOC00NC42LTcuOUM0My40IDkyLjEgMCAxNjkgMCAyNTYgMCAzOTcuNCAxMTQuNiA1MTIgMjU2IDUxMlM1MTIgMzk3LjQgNTEyIDI1NmMwLTg3LTQzLjQtMTYzLjktMTA5LjctMjEwLjEtMTQuNS0xMC4xLTM0LjQtNi42LTQ0LjYgNy45cy02LjYgMzQuNCA3LjkgNDQuNmM0OS44IDM0LjggODIuMyA5Mi40IDgyLjMgMTU3LjYgMCAxMDYtODYgMTkyLTE5MiAxOTJTNjQgMzYyIDY0IDI1NmMwLTY1LjIgMzIuNS0xMjIuOSA4Mi4zLTE1Ny42eiJdfSxEZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbmFsIixpY29uOls1MTIsNTEyLFsxMjgyNDYsInNpZ25hbC01Iiwic2lnbmFsLXBlcmZlY3QiXSwiZjAxMiIsIk00ODggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMHpNMzYwIDEyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDI0OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4ek0xNTIgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0ek00OCAzODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxaRHQ9RGVlLFhEdD1EZWUsUUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1zcGluIixpY29uOls1MTIsNTEyLFtdLCJlNGJiIiwiTTQ4MS43IDI0MC4xYy0xNy42LTEuMi0zMi45IDEyLTM0LjIgMjkuNy0zLjMgNDctMjMuNiA4OS40LTU0LjggMTIxTDM2MSAzNTljLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIwIDM2Ni4zIDMyMCAzNzZsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC0zNS0zNWM0MS43LTQyLjIgNjguOS05OC44IDczLjQtMTYxLjggMS4yLTE3LjYtMTItMzIuOS0yOS43LTM0LjJ6TTM5IDQxTDc0IDc2Yy00MS43IDQyLjItNjguOSA5OC44LTczLjQgMTYxLjgtMS4yIDE3LjYgMTIgMzIuOSAyOS43IDM0LjJzMzIuOS0xMiAzNC4yLTI5LjdjMy4zLTQ3IDIzLjYtODkuNCA1NC44LTEyMUwxNTEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMTkyIDE0NS43IDE5MiAxMzZsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRMNTYgMEM0Ni4zIDAgMzcuNSA1LjggMzMuOCAxNC44UzMyLjIgMzQuMSAzOSA0MXptMjAxLTEwLjdjLTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yIDQ3IDMuMyA4OS40IDIzLjYgMTIxIDU0LjhMMzU5IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzNjYuMyAxOTIgMzc2IDE5MmwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTNDc3LjkgMzIuMiA0NzEgMzlMNDM2IDc0Yy00Mi4yLTQxLjctOTguOC02OC45LTE2MS44LTczLjQtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5Ljd6TTQxIDQ3M2wzNS0zNWM0Mi4yIDQxLjcgOTguOCA2OC45IDE2MS44IDczLjQgMTcuNiAxLjIgMzIuOS0xMiAzNC4yLTI5LjdzLTEyLTMyLjktMjkuNy0zNC4yYy00Ny0zLjMtODkuNC0yMy42LTEyMS01NC44TDE1MyAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNDUuNyAzMjAgMTM2IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDQ3OS44IDQxIDQ3M3oiXX0sSkR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpvaW50IixpY29uOls1NzYsNTEyLFtdLCJmNTk1IiwiTTM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsMjEgMjFDNDY5IDE5MSA0ODAgMjE3LjQgNDgwIDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTljMC0xNC45LTUuOS0yOS4xLTE2LjQtMzkuNmwtMjEtMjFDMzU3LjEgMTQ2LjkgMzM2IDk2IDMzNiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0ek01NTIgMjg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC0yMS0yMUM0NDMgOTcgNDMyIDcwLjYgNDMyIDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE5YzAgMTQuOSA1LjkgMjkuMSAxNi40IDM5LjZsMjEgMjFDNTU0LjkgMTQxLjEgNTc2IDE5MiA1NzYgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTI5Mi43IDMyMGM1LjYgMCAxMC43IDIuOSAxMy42IDcuNkwzOTQuNiA0NzFjMS4zIDIuMSAwIDQuOS0yLjQgNS4yLTE2LjEgMi41LTMyLjQgMy43LTQ4LjcgMy43bC0zOC4xIDBjLTUuNiAwLTEwLjctMi45LTEzLjYtNy42bC03OS0xMjguNGMtNi05LjggMC0yMi42IDExLjUtMjMuMyA2LjctLjQgMTMuNC0uNiAyMC4yLS42bDQ4LjMgMHpNNDU5LjMgNDY1LjljLTYuNCAxLTEyLjctMS45LTE2LjEtNy40TDM3NC4xIDM0Ni4xYy02LjctMTAuOSAxLjUtMjQuNyAxNC4yLTIyLjkgMS4zIC4yIDIuNiAuNCAzLjggLjZsMTM2LjQgMjFjMjcuMyA0LjIgNDcuNCAyNy43IDQ3LjQgNTUuM3MtMjAuMSA1MS4xLTQ3LjQgNTUuM2wtNjkuMiAxMC42ek0xMzguNyAzMzZjNi43LTEuNSAxMy42IDEuNCAxNy4yIDcuMmw2OC45IDExMmM2LjYgMTAuNy0xLjIgMjQuNC0xMy44IDIzLjEtMTMtMS40LTI1LjktMy41LTM4LjYtNi41TDMxLjIgNDM5LjJDMTIuOSA0MzUgMCA0MTguNyAwIDQwMHMxMi45LTM1IDMxLjItMzkuMkwxMzguNyAzMzZ6Il19LGVBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbGxlIixpY29uOlszODQsNTEyLFtdLCJmMmExIiwiTTgwIDE0NGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMCAxOTJhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptMCA1NmM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MC04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODB6bTI0OC04MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjR6bTU2IDBjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODAgMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwek0zMDQgMjMyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMCAxMDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYweiJdfSxLZmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0LXNob3BwaW5nIixpY29uOls1NzYsNTEyLFsic2hvcHBpbmctYmFza2V0Il0sImYyOTEiLCJNMjg4IDBjNi42IDAgMTIuOSAyLjcgMTcuNCA3LjVsMTQ0IDE1MiAuNSAuNSA3OC4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxNC41LTkuNiAyNi43LTIyLjggMzAuN0w0OTEuMSA0MjkuOWMtNi41IDI5LjMtMzIuNSA1MC4xLTYyLjUgNTAuMWwtMjgxLjMgMGMtMzAgMC01Ni0yMC44LTYyLjUtNTAuMWwtNDYtMjA3LjJjLTEzLjItMy45LTIyLjgtMTYuMi0yMi44LTMwLjcgMC0xNy43IDE0LjMtMzIgMzItMzJsNzguMSAwIC41LS41IDE0NC0xNTJDMjc1LjEgMi43IDI4MS40IDAgMjg4IDB6bTAgNTguOUwxOTIuMiAxNjAgMzgzLjggMTYwIDI4OCA1OC45ek0yMDggMjY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6bTgwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMjggMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMnoiXX0sdEF0PUtmZSxhQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlIixpY29uOls1MTIsNTEyLFtdLCJlNGM4IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NGMwLTM4LjggMjYuNC03Mi42IDY0LTgybDAtMTEyLTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHoiXX0sckF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWFycml2YWwiLGljb246WzU3Niw1MTIsWzEyODc0OF0sImY1YWYiLCJNMzg2LjYgMTkzLjFMMjY1LjkgMy43Yy00LjgtNy42LTEyLjYtMTIuOC0yMS40LTE0LjNsLTQzLjEtNy42Yy0xMC44LTEuOS0yMC4yIDcuMy0xOC42IDE4LjFsMjQgMTYxLjYtMTA1LTE4LjUtMzMuOC02MS44QzY0LjUgNzQuNyA1OC4yIDcwLjIgNTEuMSA2OUwzNCA2NmMtOS44LTEuNy0xOC44IDUuOS0xOC44IDE1LjhsLjYgMTA2LjNjLjIgMzAuOSAyMi40IDU3LjMgNTIuOSA2Mi43bDEzLjUgMi40IDAgMCA0MTcuNiA3My42YzMwLjUgNS40IDU5LjUtMTUgNjQuOS00NS40cy0xNS01OS41LTQ1LjQtNjQuOUwzODYuNiAxOTMuMXpNMjI0IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEzMS4yLTE1LjNhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQ0OHoiXX0sc0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhc2gtcmVnaXN0ZXIiLGljb246WzUxMiw1MTIsW10sImY3ODgiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NHMyOC43IDY0IDY0IDY0bDQ4IDAgMCAzMi01NyAwYy0zMS42IDAtNTguNSAyMy4xLTYzLjMgNTQuNEwxLjEgMzY0LjFDLjQgMzY4LjggMCAzNzMuNiAwIDM3OC40TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjkuNmMwLTQuOC0uNC05LjYtMS4xLTE0LjRMNDg4LjIgMjE0LjRDNDgzLjUgMTgzLjEgNDU2LjYgMTYwIDQyNSAxNjBsLTIxNyAwIDAtMzIgNDggMGMzNS4zIDAgNjQtMjguNyA2NC02NFMyOTEuMyAwIDI1NiAwTDk2IDB6bTAgNDhsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMOTYgODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTY0IDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em00OC0xNjBhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjAtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMTYwIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTMyOCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMjU2IDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTQyNCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMzUyIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6Il19LGlBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaW5nIixpY29uOls1MTIsNTEyLFtdLCJmNzBiIiwiTTY0IDIwOGMwIDcuOCA0LjQgMTguNyAxNy4xIDMwLjMgNDUuNC0yNC4yIDEwNy43LTM4LjMgMTc0LjktMzguM3MxMjkuNSAxNC4xIDE3NC45IDM4LjNjMTIuOC0xMS42IDE3LjEtMjIuNSAxNy4xLTMwLjMgMC0xMi4zLTEwLjgtMzItNDcuOS01MC42LTM1LjItMTcuNi04Ni4xLTI5LjQtMTQ0LjEtMjkuNHMtMTA4LjkgMTEuOC0xNDQuMSAyOS40Qzc0LjggMTc2IDY0IDE5NS43IDY0IDIwOHptMTkyIDQwYy00NyAwLTg5LjMgNy42LTEyMi45IDE5LjcgMzMuMiAxMi40IDc1LjcgMjAuMyAxMjIuOSAyMC4zczg5LjctNy44IDEyMi45LTIwLjNDMzQ1LjMgMjU1LjYgMzAzIDI0OCAyNTYgMjQ4ek0wIDIwOEMwIDE1OC40IDM5LjQgMTIyLjIgODMuMyAxMDAuMiAxMjkuMSA3Ny4zIDE5MC4zIDY0IDI1NiA2NHMxMjYuOSAxMy4zIDE3Mi43IDM2LjJjNDMuOSAyMiA4My4zIDU4LjIgODMuMyAxMDcuOGwwIDk2YzAgNDkuNi0zOS40IDg1LjgtODMuMyAxMDcuOC00NS45IDIyLjktMTA3IDM2LjItMTcyLjcgMzYuMlMxMjkuMSA0MzQuNyA4My4zIDQxMS44QzM5LjQgMzg5LjggMCAzNTMuNiAwIDMwNGwwLTk2eiJdfSxvQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXF1YXJpdXMiLGljb246WzU3Niw1MTIsW10sImU4NDUiLCJNNDAxLjcgMjkxLjRjOS00LjUgMTkuNi00LjUgMjguNiAwbDEyOCA2NGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDQxNiAzNTUuOCAzMDIuMyA0MTIuNmMtOSA0LjUtMTkuNiA0LjUtMjguNiAwTDE2MCAzNTUuOCA0Ni4zIDQxMi42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDEyOC02NGM5LTQuNSAxOS42LTQuNSAyOC42IDBMMjg4IDM0OC4yIDQwMS43IDI5MS40em0zLjQtMTkzLjVjOC4yLTMgMTcuMy0yLjUgMjUuMiAxLjVsMTI4IDY0YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNMNDE2IDE2My44IDMwMi4zIDIyMC42Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTYwIDE2My44IDQ2LjMgMjIwLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMTI4LTY0IDMuNC0xLjVjOC4yLTMgMTcuMy0yLjUgMjUuMiAxLjVsMTEzLjcgNTYuOCAxMTMuNy01Ni44IDMuNC0xLjV6Il19LFpmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZS1ub2RlcyIsaWNvbjpbNTEyLDUxMixbInNoYXJlLWFsdCJdLCJmMWUwIiwiTTM4NCAxOTJjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTYtOTYgNDMtOTYgOTZjMCA1LjQgLjUgMTAuOCAxLjMgMTZMMTU5LjYgMTg0LjFjLTE2LjktMTUtMzkuMi0yNC4xLTYzLjYtMjQuMS01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI0LjQgMCA0Ni42LTkuMSA2My42LTI0LjFMMjg5LjMgNDAwYy0uOSA1LjItMS4zIDEwLjUtMS4zIDE2IDAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTYtNDMtOTYtOTYtOTZjLTI0LjQgMC00Ni42IDkuMS02My42IDI0LjFMMTkwLjcgMjcyYy45LTUuMiAxLjMtMTAuNSAxLjMtMTZzLS41LTEwLjgtMS4zLTE2bDEyOS43LTcyLjFjMTYuOSAxNSAzOS4yIDI0LjEgNjMuNiAyNC4xeiJdfSxuQXQ9WmZlLGxBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTNmIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGNBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaW5vY3VsYXJzIixpY29uOls1MTIsNTEyLFtdLCJmMWU1IiwiTTEyOCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zIDEzLjctMjIuOCAyMi41LTQ4LjIgMjUuOC03NC42TDYwLjUgMTU2YzItMTYgMTUuNi0yOCAzMS44LTI4bDk5LjggMHptMjI3LjggMGMxNi4xIDAgMjkuOCAxMiAzMS44IDI4TDQ1OSAyMTZjMy4zIDI2LjQgMTIuMSA1MS44IDI1LjggNzQuNiAxNy44IDI5LjcgMjcuMiA2My43IDI3LjIgOTguM2wwIDU5LjFjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyMCA5OS44IDB6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyem0tMzIgNjRsMCAxNjAtNjQgMCAwLTE2MCA2NCAweiJdfSxkQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2lwLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzQiLCJNMzQwLjggODguM2MxMy40LTExLjUgMTUtMzEuNyAzLjUtNDUuMXMtMzEuNy0xNS00NS4xLTMuNUwxMjggMTg2LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNjgtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjIuNCAxNzEuMiAxNDYuN2MxMy40IDExLjUgMzMuNiA5LjkgNDUuMS0zLjVzOS45LTMzLjYtMy41LTQ1LjFMMTczLjIgMjgwIDM1MiAyODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTczLjIgMjMyIDM0MC44IDg4LjN6Il19LFhmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXJkLWRyaXZlIixpY29uOls0NDgsNTEyLFsxMjg0MzYsImhkZCJdLCJmMGEwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAyNjAuMUMxOC4xIDI0Ny40IDQwLjIgMjQwIDY0IDI0MGwzMjAgMGMyMy44IDAgNDUuOSA3LjQgNjQgMjAuMUw0NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ0OCAzNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjR6TTIyNCAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sdUF0PVhmZSxwQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFua2luZy1zdGFyIixpY29uOls1NzYsNTEyLFtdLCJlNTYxIiwiTTMyMS44IDU0LjFMMjk4LjIgNi4zYy0zLjktOC4zLTE2LjEtOC42LTIwLjQgMGwtMjMuNiA0Ny44LTUyLjMgNy41Yy05LjMgMS40LTEzLjMgMTIuOS02LjQgMTkuOGwzOCAzNy05IDUyLjFjLTEuNCA5LjMgOC4yIDE2LjUgMTYuOCAxMi4ybDQ2LjktMjQuOCA0Ni42IDI0LjRjOC42IDQuMyAxOC4zLTIuOSAxNi44LTEyLjJsLTktNTIuMSAzOC0zNi42YzYuOC02LjggMi45LTE4LjMtNi40LTE5LjhsLTUyLjMtNy41ek0yNTYgMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTYwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00OCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00MTYgNDMybDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHoiXX0sZkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGllIixpY29uOls0NDgsNTEyLFtdLCJmNTA4IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0tMzAuNSA1Nmw2MSAwYzkuNyAwIDE3LjUgNy44IDE3LjUgMTcuNSAwIDQuMi0xLjUgOC4yLTQuMiAxMS40bC0yNy40IDMyIDMxIDExNS4xIC42IDAgMzQuNi0xMzguNWMyLjItOC43IDExLjEtMTQgMTkuNS0xMC44IDYxLjkgMjMuNiAxMDUuOSA4My42IDEwNS45IDE1My44IDAgMTUuMS0xMi4zIDI3LjQtMjcuNCAyNy40TDQzLjQgNTEyYy0xNS4xIDAtMjcuNC0xMi4zLTI3LjQtMjcuNCAwLTcwLjIgNDQtMTMwLjIgMTA1LjktMTUzLjggOC40LTMuMiAxNy4zIDIuMSAxOS41IDEwLjhsMzQuNiAxMzguNSAuNiAwIDMxLTExNS4xLTI3LjQtMzJjLTIuNy0zLjItNC4yLTcuMi00LjItMTEuNCAwLTkuNyA3LjgtMTcuNSAxNy41LTE3LjV6Il19LFFmZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcyIsaWNvbjpbNDQ4LDUxMixbImVsbGlwc2lzLWgiXSwiZjE0MSIsIk0wIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE2OCAwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjI0LTU2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxoQXQ9UWZlLG1BdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9yZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA3MSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01OC42LTU4LjZjMS4xLTQgMS42LTguMiAxLjYtMTIuNWwwLTE1MS4yYy0xMi41IDQuNi0yNi4xIDcuMi00MC41IDcuMi04LjEgMC0xNS45LS44LTIzLjUtMi40bDAgNjYuNC0zMC4yIDAtMTM3LjUtMTM3LjVjMi45LTMuNiA1LjUtNy40IDcuNi0xMS41IDExLjYgMjIgMzQuNyAzNyA2MS4zIDM3IDI2LjggMCA0OS44LTE1LjEgNjEuNC0zNy4xIDExLjQgMjIuMSAzNC41IDM3LjEgNjAuOCAzNy4xIDQ1LjYgMCA3OC40LTQzLjcgNjUuNi04Ny41TDUxMy44IDcyLjNDNTA2LjggNDguNCA0ODQuOSAzMiA0NjAgMzJMMTE2IDMyYy01LjUgMC0xMC44IC44LTE1LjkgMi4zTDQxLTI0Ljl6TTE1MS41IDIyMS4zTDQ4LjcgMTE4LjYgMzguOSAxNTIuNWMtMTIuOCA0My43IDIwIDg3LjUgNjUuNiA4Ny41IDE4LjEgMCAzNC43LTcuMSA0Ny0xOC43ek00MTAuMiA0ODBsLTEyOC0xMjgtMTU0LjIgMCAwLTY2LjRjLTcuNiAxLjYtMTUuNSAyLjQtMjMuNSAyLjQtMTQuNCAwLTI4LTIuNi00MC41LTcuMkw2NCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMjk4LjIgMHoiXX0sSmZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcmNlbnQiLGljb246WzQ0OCw1MTIsWzYyMTAxLDYyNzg1LCJwZXJjZW50YWdlIl0sIjI1IiwiTTE5MiAxMjhhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwek00NDggMzg0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDM4LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzg0IDM4NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwzODQtMzg0eiJdfSxnQXQ9SmZlLGU1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek02NCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDQ4Qzc0LjcgNDggNjQgNTguNyA2NCA3MnptMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxiQXQ9ZTVlLHZBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaXNwbGF5IixpY29uOls1MTIsNTEyLFtdLCJlMTYzIiwiTTQ0OCA5NmwwIDI1Ni0zODQgMCAwLTI1NiAzODQgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSx0NWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNvbnMiLGljb246WzUxMiw1MTIsWyJoZWFydC1tdXNpYy1jYW1lcmEtYm9sdCJdLCJmODZkIiwiTTE3NC45IDI3MmMxMC43IDAgMjAuNyA1LjMgMjYuNiAxNC4ybDExLjggMTcuOCAyNi43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDM1MmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNi43IDAgMTEuOC0xNy44YzUuOS04LjkgMTUuOS0xNC4yIDI2LjYtMTQuMmw2MS43IDB6bTI3OC42LTEyYzUuNi00LjkgMTMuOS01LjMgMTkuOS0uOXM4LjMgMTIuNCA1LjMgMTkuM0w0NDAuMyAzNjggNDk2IDM2OGM2LjcgMCAxMi42IDQuMSAxNSAxMC40cy42IDEzLjMtNC40IDE3LjdsLTEyOCAxMTJjLTUuNiA0LjktMTMuOSA1LjMtMTkuOSAuOXMtOC4zLTEyLjQtNS4zLTE5LjNsMzguNS04OS43LTU1LjggMGMtNi43IDAtMTIuNi00LjEtMTUtMTAuNHMtLjYtMTMuMyA0LjQtMTcuN2wxMjgtMTEyek0xNDQgMzYwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnpNNDgzLjggLjRjNi41LTEuMSAxMy4xIC40IDE4LjUgNC40IDYuMSA0LjUgOS43IDExLjcgOS43IDE5LjJsMCAxNTItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZsMC00OS4zLTExMiAzMy42IDAgMTEwLjItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZMMzA0IDcyYzAtMTAuNiA3LTIwIDE3LjEtMjNsMTYwLTQ4IDIuNy0uNnpNMTg4LjkgMEMyMjYgMCAyNTYgMzAgMjU2IDY3LjFsMCA2LjFjMCA1Ni4xLTc1LjIgMTEyLjEtMTEwLjMgMTM1LjMtMTAuOCA3LjEtMjQuNiA3LjEtMzUuNCAwLTM1LjEtMjMuMS0xMTAuMy03OS4yLTExMC4zLTEzNS4zbDAtNi4xQzAgMzAgMzAgMCA2Ny4xIDAgODguMiAwIDEwOCA5LjkgMTIwLjcgMjYuOGw3LjMgOS44IDcuMy05LjhDMTQ4IDkuOSAxNjcuOCAwIDE4OC45IDB6Il19LHhBdD10NWUseUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLXZlcnRpY2FsIixpY29uOlsyNTYsNTEyLFtdLCJmNTQ4IiwiTTAgMTZDMC0xMC41IDIxLjUtMzIgNDgtMzJsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyNC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCAyNGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1NDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTZ6Il19LGE1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAtbG9jYXRpb24tZG90IixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZC1hbHQiXSwiZjVhMCIsIk01NzYgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMNDEzLjUgNzcuNSAyMzQuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNzAuOCA4OC44IDY0IDk5LjkgNjQgMTEybDAgMzUyYzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzMuMyA1Ny44Yy00LjMtNi40LTguNS0xMy4xLTEyLjYtMTkuOS0xMS0xOC4zLTIxLjktMzkuMy0zMC02MS44bC0xMDEuMi0zMy43IDAtMjg0LjUgMTI4IDQyLjcgMCA5OS4zYzMxLTM1LjggNzctNTguNCAxMjgtNTguNCAyMi42IDAgNDQuMiA0LjQgNjQgMTIuNUw1NzYgNDh6TTUxMiAyMjRjLTY2LjMgMC0xMjAgNTIuOC0xMjAgMTE3LjkgMCA2OC45IDY0LjEgMTUwLjQgOTguNiAxODkuMyAxMS42IDEzIDMxLjMgMTMgNDIuOSAwIDM0LjUtMzguOSA5OC42LTEyMC40IDk4LjYtMTg5LjMgMC02NS4xLTUzLjctMTE3LjktMTIwLTExNy45ek00NzIgMzQ0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6Il19LHdBdD1hNWUscjVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNyYWNrIixpY29uOls1MTIsNTEyLFsxMjgxNDgsImhlYXJ0LWJyb2tlbiJdLCJmN2E5IiwiTTEzMy4xIDMyYzE3LjMgMCAzNC4yIDMuNCA0OS45IDkuN2w1NC44IDg1LjItNzUuNCA3NS40Yy0xLjUgMS41LTIuNCAzLjYtMi4zIDUuOHMxIDQuMiAyLjYgNS43bDExMiAxMDRjMi45IDIuNyA3LjQgMi45IDEwLjUgLjNzMy44LTcgMS43LTEwLjRsLTYwLjQtOTguMSA5MC43LTc1LjZjMi42LTIuMSAzLjUtNS43IDIuNC04LjhMMjk2LjQgNjAuNkMzMTkuNiA0Mi4zIDM0OC42IDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzJ6Il19LE1BdD1yNWUsa0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvdyIsaWNvbjpbNjQwLDUxMixbMTI4MDA0XSwiZjZjOCIsIk05NiAyMjRsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTg4LjJjOS45IDYuNiAyMC42IDEyIDMyIDE2LjFsMCAyNC4yYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNi45YzUuMyAuNiAxMC42IC45IDE2IC45czEwLjctLjMgMTYtLjlsMCAxNi45YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNC4yYzExLjQtNCAyMi4xLTkuNCAzMi0xNi4xbDAgODguMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwIDMyIDMyIDAgNDkuNWMwIDkuNSAyLjggMTguNyA4LjEgMjYuNkw1MzAgNDI3YzguOCAxMy4xIDIzLjUgMjEgMzkuMyAyMSAyMi41IDAgNDEuOS0xNS45IDQ2LjMtMzhsMjAuMy0xMDEuNmMyLjYtMTMtLjMtMjYuNS04LTM3LjNsLTMuOS01LjUgMC04MS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQuNC01Mi45LTc0LjFDNDk2IDg2LjUgNDUyLjQgNjQgNDA1LjkgNjRMMTQ0IDY0Qzc3LjcgNjQgMjQgMTE3LjcgMjQgMTg0bDAgNTRDOS40IDI0OS44IDAgMjY3LjggMCAyODhsMCAxNy42YzAgOCA2LjQgMTQuNCAxNC40IDE0LjQgMzEuOCAwIDU3LjYtMjUuOCA1Ny42LTU3LjZMNzIgMTg0YzAtMjQuMyAxMi4xLTQ1LjggMzAuNS01OC45LTQuMiAxMC44LTYuNSAyMi42LTYuNSAzNC45bDAgNjR6TTU2MCAzMzZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTY2LjYgMTY2LjZjLTQuMi00LjItNi42LTEwLTYuNi0xNiAwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmwxNzguNyAwYzEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42IDAgNi0yLjQgMTEuOC02LjYgMTZsLTIzLjQgMjMuNEMzMzIuMiAyMTEuOCAzMDIuNyAyMjQgMjcyIDIyNHMtNjAuMi0xMi4yLTgxLjktMzMuOWwtMjMuNC0yMy40eiJdfSx0dj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyc3MiLGljb246WzQ0OCw1MTIsWyJmZWVkIl0sImYwOWUiLCJNMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiAyMjkuOCAwIDQxNiAxODYuMiA0MTYgNDE2IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyQzM4NCAyNTMuNiAyMjYuNCA5NiAzMiA5NiAxNC4zIDk2IDAgODEuNyAwIDY0ek0wIDQxNmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyIDE2MGMxNTkuMSAwIDI4OCAxMjguOSAyODggMjg4IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjQtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sU0F0PXR2LGF2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MiLGljb246WzUxMiw1MTIsWzEyODI2OSwic2VhcmNoIl0sImYwMDIiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yMDggMzUyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHoiXX0sekF0PWF2LENBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uIixpY29uOls2NDAsNTEyLFtdLCJmNmMzIiwiTTQ4MCAwYzE0LjYgMCAyOC44IDEuNiA0Mi41IDQuNyA3LjQgMS43IDEzIDcuOCAxMy45IDE1LjRzLTMgMTQuOS05LjggMTguM2MtNDUuNCAyMi42LTc2LjYgNjkuNS03Ni42IDEyMy42IDAgNzYuMiA2MS44IDEzOCAxMzggMTM4IDMuNyAwIDcuNC0uMSAxMS4xLS40IDcuNi0uNiAxNC43IDMuNiAxNy44IDEwLjZzMS41IDE1LjEtMy45IDIwLjRjLTI2IDI1LTU5LjEgNDIuNy05NS45IDQ5LjktMTEuMS0yNS4zLTMwLjItNDYuMy01NC4xLTU5LjgtNy42LTYzLjQtNjEuNi0xMTIuNi0xMjcuMS0xMTIuNi0xMS4yIDAtMjIuMSAxLjUtMzIuNSA0LjItNC44LTQuMi05LjktOC4yLTE1LjItMTEuOC0uMS0yLjgtLjItNS42LS4yLTguNCAwLTEwNiA4Ni0xOTIgMTkyLTE5MnptLS4xIDQzMS45YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yNzEuOSAwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDcuNiAzNC42LTg3IDgwLTk0LjYtLjQtNTIuOCA0Mi45LTk3LjMgOTYtOTcuMyAzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNCAxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuOS0uNiAxMS43LTEuOSAxNy4yIDM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6Il19LEFlZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFs2MjYyNSwiYm94ZXMiLCJib3hlcy1hbHQiXSwiZjQ2OCIsIk0yMjQgMGwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCA1LjUtLjcgMTAuOS0yIDE2bC0yNTIgMGMtMS4zLTUuMS0yLTEwLjUtMi0xNmwwLTEyOGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwem05NiA1MTJjLTExLjIgMC0yMS44LTIuOS0zMS04IDkuNS0xNi41IDE1LTM1LjYgMTUtNTZsMC0xMjhjMC0yMC40LTUuNS0zOS41LTE1LTU2IDkuMi01LjEgMTkuNy04IDMxLThsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwek0wIDMyMGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzIweiJdfSxfQXQ9QWVlLFRBdD1BZWUsTEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtYnJhbmNoIixpY29uOls0NDgsNTEyLFtdLCJmMTI2IiwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCA3MC43IDE3NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIuN2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNzYgMCAwIDcwLjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MFMwIDQ3Ni4yIDAgNDMyYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNsMC0yMDUuM0MxOS43IDE0MSAwIDExMi44IDAgODAgMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIzMiAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTgwIDQ1NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHM1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4iLGljb246WzUxMiw1MTIsWzEyODY4MywiY2FuY2VsIl0sImYwNWUiLCJNMzY3LjIgNDEyLjVMOTkuNSAxNDQuOGMtMjIuNCAzMS40LTM1LjUgNjkuOC0zNS41IDExMS4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zYzIyLjQtMzEuNCAzNS41LTY5LjggMzUuNS0xMTEuMiAwLTEwNi04Ni0xOTItMTkyLTE5Mi00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LCRBdD1zNWUsREF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imp1Zy1kZXRlcmdlbnQiLGljb246WzM4NCw1MTIsW10sImU1MTkiLCJNOTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA5NkM3NC43IDk2IDY0IDg1LjMgNjQgNzJTNzQuNyA0OCA4OCA0OGw4IDAgMC0yNHpNMCAyNTZjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsMTI4IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI1NnptMjU2IDBsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LGk1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBseSIsaWNvbjpbNTEyLDUxMixbNjE3MTQsIm1haWwtcmVwbHkiXSwiZjNlNSIsIk0yMDQuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDExMiAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6Il19LEFBdD1pNWUsUEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1bi1wbGFudC13aWx0IixpY29uOls2NDAsNTEyLFtdLCJlNTdhIiwiTTE2MCAwYy01LjUgMC0xMC42IDIuOC0xMy41IDcuNGwtMS4xIDIuMS0yNC44IDU1LjQtNTYuNy0yMS43Yy01LjktMi4yLTEyLjUtLjgtMTcgMy43UzQxIDU4IDQzLjIgNjMuOWwyMS43IDU2LjctNTUuNCAyNC44QzMuNyAxNDggMCAxNTMuNyAwIDE2MHMzLjcgMTIgOS41IDE0LjZsNTUuNCAyNC44LTIxLjcgNTYuN2MtMi4yIDUuOS0uOCAxMi41IDMuNyAxN3MxMS4xIDUuOSAxNyAzLjdsNTYuNy0yMS43IDI0LjggNTUuNGMyLjYgNS44IDguMyA5LjUgMTQuNiA5LjVzMTItMy43IDE0LjYtOS41bDI0LjgtNTUuNCA1Ni44IDIxLjdjNS45IDIuMiAxMi41IC44IDE3LTMuN3M1LjktMTEuMSAzLjctMTdsLTIxLjctNTYuNyA1NS40LTI0LjhjNS44LTIuNiA5LjUtOC4zIDkuNS0xNC42cy0zLjctMTItOS41LTE0LjZsLTU1LjQtMjQuOCAyMS43LTU2LjcgLjctMi4yYzEuMi01LjMtLjQtMTAuOS00LjMtMTQuOHMtOS41LTUuNS0xNC44LTQuM2wtMi4yIC43LTU2LjggMjEuNy0yNC44LTU1LjRDMTcyIDMuNyAxNjYuMyAwIDE2MCAwem0wIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zNzYgMTZsMCA1My40Yy0xNC44IDcuNy0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC01My40YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjctNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMS40Yy0xNC44IDcuNi0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC0yMS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzYtNDI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwNCAwIDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LEVBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpdW0iLGljb246WzU3Niw1MTIsW10sImUwNWEiLCJNNDA4IDE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM2MCAyLjcgMzYwIDE2bDAgMjMuNGMtMTMuOSA1LjMtMjYuOSAxMy41LTM4LjIgMjQuNUwzMDUgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMTc3IDE3NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjgtMzAuMSAzMC4xLTE2LjgtMTYuOGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjhjLTExIDExLjMtMTkuMiAyNC4zLTI0LjUgMzguMkw0OCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYuMyAwYzEuMyAxOC4zIDcuMSAzNi40IDE3LjQgNTIuNEw3MSA0MzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMC42LTEwLjZjMTYgMTAuMyAzNC4xIDE2LjEgNTIuNCAxNy40bDAgMTYuM2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjMuNGMxMy45LTUuMyAyNi45LTEzLjUgMzguMi0yNC41TDI3MSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzk5IDMzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOCAzMC4xLTMwLjEgMTYuOCAxNi44YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44YzExLTExLjMgMTkuMi0yNC4zIDI0LjUtMzguMmwyMy40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2LjMgMGMtMS4zLTE4LjMtNy4xLTM2LjQtMTcuNC01Mi40TDUwNSA3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ2MC40IDQ5LjdjLTE2LTEwLjMtMzQuMS0xNi4xLTUyLjQtMTcuNEw0MDggMTZ6TTE2MCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjcyIDI0MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LElBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNvcmQtdmlueWwiLGljb246WzUxMiw1MTIsW10sImY4ZDkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDI0MGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTEyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sbzVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsb3BweS1kaXNrIixpY29uOls0NDgsNTEyLFsxMjgxOTAsMTI4NDI2LCJzYXZlIl0sImYwYzciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0Mi43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM1MiA1MC43QzM0MCAzOC43IDMyMy43IDMyIDMwNi43IDMyTDY0IDMyem0zMiA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpNMjI0IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sTkF0PW81ZSxSQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0cy1wb3J0YWJsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTU4NCIsIk02NCAwbDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNi0yMjQgMCAwLTE2QzAgMjguNyAyOC43IDAgNjQgMHpNMCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUwMS4zIDAgNDg4TDAgMTI4ek0xMjggMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNTIgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NHpNMjg4IDEyOGwyMjQgMCAwIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTI4IDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMzYwek00MTYgMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxPQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibyIsaWNvbjpbNDQ4LDUxMixbMTExXSwiNGYiLCJNMjI0IDk2YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDEgMCAwLTMyMHpNNDQ4IDI1NmEyMjQgMjI0IDAgMSAxIC00NDggMCAyMjQgMjI0IDAgMSAxIDQ0OCAweiJdfSxGQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFsZXR0ZSIsaWNvbjpbNTEyLDUxMixbMTI3OTEyXSwiZjUzZiIsIk01MTIgMjU2YzAgLjkgMCAxLjggMCAyLjctLjQgMzYuNS0zMy42IDYxLjMtNzAuMSA2MS4zTDM0NCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMy40IC40IDYuNyAxIDkuOSAyLjEgMTAuMiA2LjUgMjAgMTAuOCAyOS45IDYuMSAxMy44IDEyLjEgMjcuNSAxMi4xIDQyIDAgMzEuOC0yMS42IDYwLjctNTMuNCA2Mi0zLjUgLjEtNyAuMi0xMC42IC4yLTE0MS40IDAtMjU2LTExNC42LTI1Ni0yNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sQkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc1XSwiZjA5YyIsIk0xMjggOTZjMC0zNS4zIDI4LjctNjQgNjQtNjQgMzEuNyAwIDU4IDIzIDYzLjEgNTMuMyAyLjkgMTcuNCAxOS40IDI5LjIgMzYuOSAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjlDMzA4LjEgMTQuMSAyNTUuNS0zMiAxOTItMzIgMTIxLjMtMzIgNjQgMjUuMyA2NCA5NmwwIDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NGwtMTkyIDAgMC02NHoiXX0sbjVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1saXN0ZW4iLGljb246WzUxMiw1MTIsWyJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXMiXSwiZjJhMiIsIk0zNzkuNiAuM2MtOC45IDEuMi0xNy4yIDYuMi0yMi40IDE0LjEtNi44IDEwLjQtNyAyNC4xLS40IDM0LjYgNS42IDguOSAxNS41IDEyLjcgMjMuOCAxOC41IDcuNSA1LjIgMTcuNiAxMy4yIDI3LjcgMjQuMiAyMCAyMS43IDM5LjUgNTQuMyAzOS41IDEwMC4zIDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjctMTMuOS0xNS4xLTI3LjgtMjYuMS0zOC4zLTMzLjMtMTEtNy42LTIzLjUtMTYuNi0zNy42LTE0Ljd6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyek0wIDQ4MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek04Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpNMjQwIDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sSEF0PW41ZSxxQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1wdWxsLXJlcXVlc3QiLGljb246WzUxMiw1MTIsW10sImUxM2MiLCJNMzI4IDI0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlMyOTMuOSAuMiAyODcgN0wyMzEgNjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU2IDU2YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMzI4IDE0NS43IDMyOCAxMzZsMC0yNCAyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjE0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zTDQ0OCAxNDRjMC01My00My05Ni05Ni05NmwtMjQgMCAwLTI0ek03MiA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem01NiA3My4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBTMTYgMzUuOCAxNiA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgMjA1LjNjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtMjA1LjN6TTcyIDQzMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0zNDQtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxWQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5IixpY29uOls1MTIsNTEyLFsxMjgyNzNdLCJmMDg0IiwiTTMzNiAzNTJjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZTNDMzLjIgMCAzMzYgMCAxNjAgNzguOCAxNjAgMTc2YzAgMTguNyAyLjkgMzYuOCA4LjMgNTMuN0w3IDM5MWMtNC41IDQuNS03IDEwLjYtNyAxN2wwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00MCA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGM2LjQgMCAxMi41LTIuNSAxNy03bDMzLjMtMzMuM2MxNi45IDUuNCAzNSA4LjMgNTMuNyA4LjN6TTM3NiA5NmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LGpBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJza3VsbCIsaWNvbjpbNTEyLDUxMixbMTI4MTI4XSwiZjU0YyIsIk00MTYgNDI3LjRjNTguNS00NCA5Ni0xMTEuNiA5Ni0xODcuNCAwLTEzMi41LTExNC42LTI0MC0yNTYtMjQwUzAgMTA3LjUgMCAyNDBjMCA3NS44IDM3LjUgMTQzLjQgOTYgMTg3LjRMOTYgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNjQgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzYuNnpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMjU2LTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxsNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtdXAiLGljb246WzM4NCw1MTIsWzk4OTYsIm1hcnMtc3Ryb2tlLXYiXSwiZjIyYSIsIk0xOTIgMjU2YTExMiAxMTIgMCAxIDAgMCAyMjQgMTEyIDExMiAwIDEgMCAwLTIyNHpNMTYgMzY4YzAtODYuMyA2Mi4xLTE1OC4xIDE0NC4xLTE3My4xLS4xLS45LS4xLTEuOS0uMS0yLjlsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02MS40LTI4IDIyLjRjLTEzLjggMTEtMzMuOSA4LjgtNDUtNXMtOC44LTMzLjkgNS00NWw4MC02NGMxMS43LTkuMyAyOC4zLTkuMyA0MCAwbDgwIDY0YzEzLjggMTEgMTYgMzEuMiA1IDQ1cy0zMS4yIDE2LTQ1IDVsLTI4LTIyLjQgMCA2MS40IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDEgMCAxLjktLjEgMi45IDgyIDE1IDE0NC4xIDg2LjggMTQ0LjEgMTczLjEgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYgNDY1LjIgMTYgMzY4eiJdfSxVQXQ9bDVlLGM1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLXNpbXBsZSIsaWNvbjpbMzg0LDUxMixbImJ1cm4iXSwiZjQ2YSIsIk0zNzIuNSAyNTYuNWwtLjctMS45QzMzNy44IDE2MC44IDI4MiA3Ni41IDIwOS4xIDguNWwtMy4zLTNDMjAyLjEgMiAxOTcuMSAwIDE5MiAwcy0xMC4xIDItMTMuOCA1LjVsLTMuMyAzQzEwMiA3Ni41IDQ2LjIgMTYwLjggMTIuMiAyNTQuNmwtLjcgMS45QzMuOSAyNzcuMyAwIDI5OS40IDAgMzIxLjYgMCA0MjYuNyA4Ni44IDUxMiAxOTIgNTEyczE5Mi04NS4zIDE5Mi0xOTAuNGMwLTIyLjItMy45LTQ0LjItMTEuNS02NS4xem0tOTAuOCA0OS41YzQuMSA5LjMgNi4yIDE5LjQgNi4yIDI5LjUgMCA1My00MyA5Ni41LTk2IDk2LjVzLTk2LTQzLjUtOTYtOTYuNWMwLTEwLjEgMi4xLTIwLjMgNi4yLTI5LjVsMS45LTQuM2MxNS44LTM1LjQgMzcuOS02Ny43IDY1LjMtOTUuMWw4LjktOC45YzMuNi0zLjYgOC41LTUuNiAxMy42LTUuNnMxMCAyIDEzLjYgNS42bDguOSA4LjljMjcuNCAyNy40IDQ5LjYgNTkuNyA2NS4zIDk1LjFsMS45IDQuM3oiXX0sV0F0PWM1ZSxHQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJlZSIsaWNvbjpbNDQ4LDUxMixbMTI3Nzk0XSwiZjFiYiIsIk0yMjQtMzJjNyAwIDEzLjcgMy4xIDE4LjMgOC41bDEzNiAxNjBjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlMzNjkuNCAxNzYgMzYwIDE3NmwtMjQuOSAwIDc1LjIgODguNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQwMS40IDMwNCAzOTIgMzA0bC0zOC41IDAgODguOCAxMDQuNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQzMy40IDQ0OCA0MjQgNDQ4bC0xNjggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtMTY4IDBjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZMOTQuNSAzMDQgNTYgMzA0Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDExMi45IDE3NiA4OCAxNzZjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZsMTM2LTE2MEMyMTAuMy0yOC45IDIxNy0zMiAyMjQtMzJ6Il19LFlBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbW9nIixpY29uOls1NzYsNTEyLFtdLCJmNzVmIiwiTTE3NiAyODhDOTYuNSAyODggMzIgMjIzLjUgMzIgMTQ0Uzk2LjUgMCAxNzYgMGMyNy4yIDAgNTIuNiA3LjUgNzQuMyAyMC42IDIwLjEtMTMgNDQtMjAuNiA2OS43LTIwLjYgNDcuNCAwIDg4LjcgMjUuNyAxMTAuOSA2NGwxLjEgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMiAwIDYwLjMtNDcuNiAxMDkuNC0xMDcuMiAxMTEuOS0yMi42IDIwLTUyLjMgMzIuMS04NC44IDMyLjEtMzIuNSAwLTYyLjEtMTIuMS04NC43LTMyTDE3NiAyODh6TTUxMiAzOTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRMMjQgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0ek04OCA0NjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTc2IDBsMjg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI4OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxLQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicyIsaWNvbjpbMzIwLDUxMixbMTE1XSwiNTMiLCJNMCAxNTcuNUMwIDg4LjIgNTYuMiAzMiAxMjUuNSAzMkwyNzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMTI1LjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxTDIxMC4xIDIzMEMyNzIuOSAyMzcuOSAzMjAgMjkxLjIgMzIwIDM1NC41IDMyMCA0MjMuOCAyNjMuOCA0ODAgMTk0LjUgNDgwTDQ4IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDYuNSAwYzM0IDAgNjEuNS0yNy41IDYxLjUtNjEuNSAwLTMxLTIzLjEtNTcuMi01My45LTYxTDEwOS45IDI4MkM0Ny4xIDI3NC4xIDAgMjIwLjggMCAxNTcuNXoiXX0sWkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImplZGkiLGljb246WzU3Niw1MTIsW10sImY2NjkiLCJNMjQ2IDMxNS43bC0yMS4yLTMxLjljLTIuMS0zLjItMS43LTcuNCAxLTEwLjFzNi45LTMuMSAxMC4xLTFsMjkuNSAxOS43YzIuMSAxLjQgNC45LS4xIDUtMi42TDI3OS43IDhjLjEtNC41IDMuOC04IDguMy04czguMSAzLjUgOC4zIDhsOS40IDI4MS45Yy4xIDIuNSAyLjkgMy45IDUgMi42bDI5LjUtMTkuN2MzLjItMi4xIDcuNC0xLjcgMTAuMSAxczMuMSA2LjkgMSAxMC4xTDMzMCAzMTUuN2MtMS4zIDEuOS0uMiA0LjUgMiA0LjlsMzcuNiA3LjVjMy43IC43IDYuNCA0IDYuNCA3LjhzLTIuNyA3LjEtNi40IDcuOEwzMzIgMzUxLjRjLTIuMiAuNC0zLjMgMy0yIDQuOWwyMS4yIDMxLjljMi4xIDMuMiAxLjcgNy40LTEgMTAuMXMtNi45IDMuMS0xMC4xIDFsLTI2LjMtMTcuNmMtMi4yLTEuNC01LjEgLjItNSAyLjhsMi4xIDYxLjVjNTkuOC0xMC44IDEwNS4xLTYzLjEgMTA1LjEtMTI2IDAtMzctMTUuNy03MC40LTQwLjgtOTMuNy03LTYuNS02LjUtMTguNiAxLTI0LjQgMzQtMjYuMyA1NS44LTY3LjUgNTUuOC0xMTMuOSAwLTE2LjgtMi45LTMzLTguMi00OC00LjYtMTMgMTAuMi0zMCAyMS40LTIyIDUzLjUgMzggOTIuNyA5NC44IDEwNy44IDE2MC43IC41IDIuMS0uMiA0LjMtMS43IDUuOWwtMjguNCAyOC40Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMjYgMGMzLjQgMCA2LjIgMi42IDYuMyA2IC4xIDMuMyAuMiA2LjYgLjIgMTAgMCAxNy41LTEuNyAzNC43LTQuOCA1MS4zLS4yIDEuMi0uOSAyLjQtMS43IDMuM2wtNDYuNSA0Ni41Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMTQuNiAwYzQuNiAwIDcuNyA0LjggNS43IDktNDQuNSA4OS41LTEzNi45IDE1MS0yNDMuNyAxNTFTODguOCA0NTAuNSA0NC4zIDM2MWMtMi4xLTQuMiAxLTkgNS43LTlsMTQuNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjIuNiAyOTQuNmMtLjktLjktMS41LTItMS43LTMuMy0zLjItMTYuNi00LjgtMzMuOC00LjgtNTEuMyAwLTMuMyAuMS02LjcgLjItMTAgLjEtMy40IDIuOS02IDYuMy02bDI2IDBjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyNC42IDE4NC42Yy0xLjUtMS41LTIuMi0zLjgtMS43LTUuOSAxNS4yLTY2IDU0LjMtMTIyLjggMTA3LjgtMTYwLjcgMTEuMy04IDI2IDguOSAyMS40IDIyLTUuMyAxNS04LjIgMzEuMi04LjIgNDggMCA0Ni4zIDIxLjkgODcuNSA1NS44IDExMy45IDcuNSA1LjggOCAxNy45IDEgMjQuNC0yNS4xIDIzLjQtNDAuOCA1Ni43LTQwLjggOTMuNyAwIDYyLjkgNDUuNCAxMTUuMiAxMDUuMSAxMjZsMi4xLTYxLjVjLjEtMi42LTIuOC00LjItNS0yLjhsLTI2LjMgMTcuNmMtMy4yIDIuMS03LjQgMS43LTEwLjEtMXMtMy4xLTYuOS0xLTEwLjFMMjQ2IDM1Ni4zYzEuMy0xLjkgLjItNC41LTItNC45bC0zNy42LTcuNWMtMy43LS43LTYuNC00LTYuNC03LjhzMi43LTcuMSA2LjQtNy44bDM3LjYtNy41YzIuMi0uNCAzLjMtMyAyLTQuOXoiXX0sZDVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oaWtpbmciLGljb246WzQ0OCw1MTIsWyJoaWtpbmciXSwiZjZlYyIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTEyOCAxNzMuNmMwLTM0IDI3LjYtNjEuNiA2MS42LTYxLjYgMjAuMyAwIDM5LjcgOC4xIDU0IDIyLjRsNDguMiA0OC4yYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwzNy41IDBjNS44IDAgMTEuMyAxLjYgMTYgNC4zbDAtNzYuM2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjY4LjNjLTQuNyAyLjctMTAuMiA0LjMtMTYgNC4zbC0zNy41IDBjLTI1LjUgMC00OS45LTEwLjEtNjcuOS0yOC4xbC02LjYtNi42IDAgMTA5LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC0xMDF6bS00LjggMjAzLjdjMi4zIDIuMyA0LjcgNC40IDcuMSA2LjVsNDQuOSAzOC41Yy0zLjYgOC40LTguNSAxNi4zLTE0LjQgMjMuNEw4OC42IDUzMi41Yy0xMS4zIDEzLjYtMzEuNSAxNS40LTQ1LjEgNC4xcy0xNS40LTMxLjUtNC4xLTQ1LjFsNzIuMy04Ni43YzIuNi0zLjEgNC41LTYuNiA1LjgtMTAuNGw1LjctMTcuMXpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjQgMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6Il19LFhBdD1kNWUsUUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC10by1saW5lIixpY29uOls0NDgsNTEyLFtdLCJlNGMyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDMzLjcgMCA0MTYgMEwzMiAwem04Ni42IDEzNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNjQgMjM3LjMgNjQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDIuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0em0yNTYgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAyNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHoiXX0sSkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtZG91YmxlIixpY29uOls2NDAsNTEyLFs5ODkxXSwiZjIyNyIsIk0yODggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTk1IDk1YzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMCA0MDEuMiAwIDMwNCA3OC44IDEyOCAxNzYgMTI4YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsOTUtOTUtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTc2IDQxNmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6bTE2MCA2NGMtNi44IDAtMTMuNC0uNC0yMC0xLjEgMjMuNi0xOC45IDQzLjMtNDIuNSA1Ny42LTY5LjQgNDMuMy0xNS41IDc0LjQtNTYuOSA3NC40LTEwNS41IDAtMjUuMi04LjMtNDguNS0yMi40LTY3LjIgNy4xIDIuMSAxNC42IDMuMiAyMi40IDMuMiAxNyAwIDMyLjctNS4zIDQ1LjctMTQuMyAxMS43IDIzLjYgMTguMyA1MC4yIDE4LjMgNzguMyAwIDk3LjItNzguOCAxNzYtMTc2IDE3NnpNNTI4IDE1Ny4zTDUyOCAzMmMwLTExLjQtMi40LTIyLjItNi43LTMyTDYwOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy00OCA0OHoiXX0sZVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRoZXJtb21ldGVyIixpY29uOls1MTIsNTEyLFtdLCJmNDkxIiwiTTk2IDM4Mi4xbDAtODguOGMwLTE0LjkgNS45LTI5LjEgMTYuNC0zOS42bDIxLjctMjEuNyA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDcuOC03LjhjMTkuNC0xOS40IDQ1LjYtMzAuMiA3My0zMC4yIDU3IDAgMTAzLjIgNDYuMiAxMDMuMiAxMDMuMiAwIDI3LjQtMTAuOSA1My42LTMwLjIgNzNMMjU4LjMgMzk5LjZjLTEwLjUgMTAuNS0yNC43IDE2LjQtMzkuNiAxNi40bC04OC44IDAtODkgODljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwUy0yLjMgNDgwLjQgNyA0NzFsODktODl6Il19LHU1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWludGJydXNoIixpY29uOls1NzYsNTEyLFsxMjgzOTYsInBhaW50LWJydXNoIl0sImYxZmMiLCJNNDgwLjUgMTAuM0wyNTkuMSAxNThjLTI5LjEgMTkuNC00Ny42IDUwLjktNTAuNiA4NS4zIDYyLjMgMTIuOCAxMTEuNCA2MS45IDEyNC4zIDEyNC4zIDM0LjUtMyA2NS45LTIxLjUgODUuMy01MC42TDU2NS43IDk1LjVjNi43LTEwLjEgMTAuMy0yMS45IDEwLjMtMzQuMSAwLTMzLjktMjcuNS02MS40LTYxLjQtNjEuNC0xMi4xIDAtMjQgMy42LTM0LjEgMTAuM3pNMjg4IDQwMGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlM2NCAzMzguMSA2NCA0MDBjMCAzLjkgLjIgNy44IC42IDExLjYgMS44IDE3LjUtMTAuMiAzNi40LTI3LjggMzYuNEwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ0IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJ6Il19LHRQdD11NWUsYVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldXRlciIsaWNvbjpbMzg0LDUxMixbOTkwNl0sImYyMmMiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xIDAtMS45LS4xLTIuOXoiXX0scDVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1waG9uZS1mbGlwIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlLWFsdCJdLCJmODdiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTIzMiA5Ni43bDIuOCAuOGMzMi4zIDguOCA1OS45IDQwLjEgNTEuOCA3OC4yLTE4LjUgODcuNS04Ny40IDE1Ni4zLTE3NC45IDE3NC45LTM4LjEgOC4xLTY5LjQtMTkuNS03OC4yLTUxLjhsLS44LTIuOGMtMi43LTkuOCAyLjQtMjAuMSAxMS44LTI0bDQ4LjctMjAuM2M4LjMtMy40IDE3LjgtMS4xIDIzLjUgNS45bDE5LjMgMjMuNmMzNS4xLTE3LjQgNjMuNC00Ni42IDc5LjYtODIuNGwtMjIuMS0xOGMtNi45LTUuNy05LjMtMTUuMi01LjktMjMuNWwyMC4zLTQ4LjdjMy45LTkuNCAxNC4yLTE0LjQgMjQtMTEuOHoiXX0sclB0PXA1ZSxmNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTEyNS44LTkxLjdjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjFzMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zem0yNjMuNi0yMS4xYzQuNSA2LjggMy4xIDE1LjktMy4xIDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXpNMzIwIDQ0OGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LHNQdD1mNWUsaVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtZG9sbGFyIixpY29uOls1MTIsNTEyLFtdLCJmNjUxIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwem00LTM1MmMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN2MtMjUuMy00LjItNDMuOS0yNi4xLTQzLjktNTEuOCAwLTI4LjggMjMuMi01Mi4yIDUyLTUyLjVsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sb1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpcHBvIixpY29uOls2NDAsNTEyLFsxMjk0MzVdLCJmNmVkIiwiTTQwNyA0N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNy4yIDE3LjJjMS45LS4xIDMuOS0uMiA1LjgtLjJsMzIgMGMxMS4yIDAgMjEuOSAyLjMgMzEuNiA2LjVMNTQzIDU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw1NjQgMTAxLjljNy42IDEyLjIgMTIgMjYuNyAxMiA0Mi4xIDAgMTAuMiA3LjQgMTguOCAxNi43IDIzIDI3LjkgMTIuNSA0Ny4zIDQwLjUgNDcuMyA3MyAwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNi02NCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNy42Yy0xMS44LTIuNC0yMi43LTcuNC0zMi0xNC40LTEuNS0xLjEtMi45LTIuMy00LjMtMy41LTE3LTE0LjctMjcuNy0zNi40LTI3LjctNjAuNSAwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDQ0LjcgMjYuMiA4My4yIDY0IDEwMS4ybDAgMTAuOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzZjLTE5LjggNy43LTQxLjQgMTItNjQgMTJzLTQ0LjItNC4zLTY0LTEybDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE4LjktMTguMSA0MC43Yy01LjQgMTIuMS0xOS42IDE3LjYtMzEuNyAxMi4yUy0zLjMgMzYyLjQgMi4xIDM1MC4zTDI0IDMwMC45YzUuMy0xMS45IDgtMjQuNyA4LTM3LjcgMC0xMDcuNSA4NS4yLTE5NS4yIDE5MS44LTE5OS4xbC4yLS4xIDY0IDBjNDEuNyAwIDgzLjQgMTIuMSAxMTcuMiAyNS43IDEuNy0xLjggMy41LTMuNiA1LjMtNS4yTDQwNyA4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bTczIDE4NWEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem04OCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTQ4MCAxNDRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxuUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bC1mb29kIixpY29uOls1MTIsNTEyLFtdLCJlNGM2IiwiTTAgMTc2YzAtMzUuMyAyOC43LTY0IDY0LTY0IC41IDAgMS4xIDAgMS42IDAgNy40LTM2LjUgMzkuNy02NCA3OC40LTY0IDE1IDAgMjkgNC4xIDQwLjkgMTEuMiAxMy4zLTI1LjcgNDAuMS00My4yIDcxLjEtNDMuMnM1Ny44IDE3LjYgNzEuMSA0My4yYzEyLTcuMSAyNi0xMS4yIDQwLjktMTEuMiAzOC43IDAgNzEgMjcuNSA3OC40IDY0IC41IDAgMS4xIDAgMS42IDAgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAxMS43LTMuMSAyMi42LTguNiAzMkw4LjYgMjA4QzMuMSAxOTguNiAwIDE4Ny43IDAgMTc2ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHoiXX0sbFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS12aXJ1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3OCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0xNjAgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0xOTIgMjQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sY1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXN1bi1yYWluIixpY29uOls2NDAsNTEyLFsxMjc3ODJdLCJmNzQzIiwiTTI1NC45IDQ0OC4yYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnptMTIwIDBjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yem0xMjAgMGM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6TTQ0OC4zIDEyOGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNS0xLjEgMTQuNy0zIDIxLjUgMjkuOCAxMS42IDUxIDQwLjYgNTEgNzQuNSAwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTkyIDAtOC4yLS40Yy00MC4zLTQuMS03MS44LTM4LjItNzEuOC03OS42IDAtMzkgMjcuOS03MS41IDY0LjktNzguNS0uNS0zLjEtLjktNi4yLS45LTkuNSAwLTMwLjkgMjUuMS01NiA1Ni01NiAxMi40IDAgMjMuOSA0LjEgMzMuMiAxMC45IDEzLjQtMjUuNSA0MC4xLTQyLjkgNzAuOC00Mi45ek0yNDAuMy0zMS44YzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xbDQ3LjMgNzAuNCA4My4zLTE2LjNjNS4yLTEgMTAuNiAuNyAxNC4zIDQuNCAzLjggMy44IDUuNCA5LjIgNC40IDE0LjRsLTguNiA0My44Yy0xMS45IDUuNS0yMi44IDEyLjktMzIuNCAyMS42LTUuNy0xLTExLjctMS41LTE3LjctMS41LTE0LjMgMC0yOCAzLTQwLjQgOC4yLTE2LjktMTUtMzkuMi0yNC4yLTYzLjYtMjQuMi01MyAwLTk2IDQzLTk2IDk2IDAgMzAuOSAxNC42IDU4LjIgMzcuMiA3NS44LTMuNCAxMS41LTUuMiAyMy42LTUuMiAzNi4yIDAgMTMuMiAyIDI1LjkgNS43IDM3LjlsLTIuNC0zLjUtODMuMiAxNi4zYy01LjIgMS0xMC42LS43LTE0LjMtNC40LTMuOC0zLjgtNS40LTkuMi00LjQtMTQuNGwxNi4zLTgzLjMtNzAuNC00Ny40Yy00LjQtMy03LjEtOC03LjEtMTMuMyAwLTUuMyAyLjYtMTAuMyA3LTEzLjJsNzAuNC00Ny40LTE2LjMtODMuMi0uMi0yYy0uMy00LjYgMS4zLTkuMSA0LjYtMTIuNCAzLjgtMy44IDkuMi01LjQgMTQuNC00LjRsODMuMiAxNi4zIDQ3LjMtNzAuNCAxLjItMS42YzMtMy41IDcuNC01LjUgMTIuMS01LjV6bTAgMTc1LjhjOC42IDAgMTYuNiAyLjMgMjMuNiA2LjItOS43IDExLjktMTYuOSAyNS45LTIwLjcgNDEuMy0xNSA4LjEtMjguMiAxOS4yLTM4LjggMzIuMy03LjUtOC41LTEyLjItMTkuNi0xMi4yLTMxLjggMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGg1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1yaWdodCJdLCJmMTc4IiwiTTU2Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0NjYuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQzNC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LGRQdD1oNWUsdVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVuIixpY29uOls1MTIsNTEyLFtdLCJlNGQ5IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNzItMTEyIDBjLTIwLjkgMC0zOS41IDEwLjEtNTEuMiAyNS42LTgtNi0xOC05LjYtMjguOC05LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NCA2NCAwIDAgNDgtMTQ0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTQyNy40IDM4MC41YzktMi4xIDE4LjMgMi4yIDIyLjUgMTAuNWwyNi4xIDUyLjIgMC00My4zYzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgMTI4YzAgOS4zLTYuNCAxNy4zLTE1LjQgMTkuNXMtMTguMy0yLjItMjIuNS0xMC41TDQ1MiA0ODQuNyA0NTIgNTI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTkuMyA2LjQtMTcuMyAxNS40LTE5LjV6TTMyNCA0MDBsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxwUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtbG93IixpY29uOls1MTIsNTEyLFtdLCJmNzZiIiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00NjQgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzUyIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHoiXX0sZlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3Itb3BlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUyYiIsIk0yODggNjRsNjQgMCAwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgMC0xNjAgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQxNnpNMTYwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxoUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tbGVmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNiIsIk0yODggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxtNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE0OS4xIDY0LjhMMTM4LjcgOTYgNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC03NC43IDAtMTAuNC0zMS4yQzM1Ni40IDQ1LjIgMzM4LjEgMzIgMzE3LjQgMzJMMTk0LjYgMzJjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOHpNMjU2IDE5MmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sbVB0PW01ZSxnUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtcmF5cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU5MyIsIk0zMS0zM0MyMS43LTIzLjYgMjEuNy04LjQgMzEgMUw4NyA1N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNjUtMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek02MDktMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDUxOSAyM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDYwOSAxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45ek02NSA1NDVsNTYtNTZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMSA1MTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHptNTQ0IDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTU2LTU2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU2IDU2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek0zMjAgMjA4YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0wIDMyYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMmwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem0yMTYtODBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek00NTEuMiAyNjAuNEM0NjkuNCAyODYuMyA0ODAgMzE3LjkgNDgwIDM1MmwwIDhjMCA4LjQtMS40IDE2LjUtNC4xIDI0bDc4LjggMGMxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zbDAtMTAuN2MwLTUzLTQzLTk2LTk2LTk2LTEwIDAtMTkuNyAxLjUtMjguOCA0LjR6bS0yNjIuNCAwYy05LjEtMi45LTE4LjgtNC40LTI4LjgtNC40LTUzIDAtOTYgNDMtOTYgOTZsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNzguOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLThjMC0zNC4xIDEwLjYtNjUuNyAyOC44LTkxLjZ6TTIxNiAxNjBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAweiJdfSxiUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFpbmJvdyIsaWNvbjpbNjQwLDUxMixbMTI3NzUyXSwiZjc1YiIsIk0zMjAgOTZDMTc4LjYgOTYgNjQgMjEwLjYgNjQgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MzMuNyAwIDQxNmwwLTY0QzAgMTc1LjMgMTQzLjMgMzIgMzIwIDMyUzY0MCAxNzUuMyA2NDAgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NEM1NzYgMjEwLjYgNDYxLjQgOTYgMzIwIDk2em0wIDExMmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHpNMjg4IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LHZQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaXRlbWFwIixpY29uOls1MTIsNTEyLFtdLCJmMGU4IiwiTTE5MiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTggMCAwIDY0IDEyMCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyMCAwIDAgODAgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtODAtMTIwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0zOS44IDMyLjItNzIgNzItNzJsMTIwIDAgMC02NC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6Il19LGc1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3RhcnMiLGljb246WzUxMiw1MTIsWzEyOTMyMSwiZ3Jpbi1zdGFycyJdLCJmNTg3IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTI0LjQtMy40LTQ4LjEtOS44LTcwLjUgMTguNi0zNi4xLTIuNy04My42LTQ2LjctOTAtNDYuOS01OC4zLTExOC45LTk1LjUtMTk5LjUtOTUuNVMxMDMuNCAzNy4zIDU2LjUgOTUuNWMtNDQgNi40LTY1LjMgNTMuOS00Ni43IDkwLTYuNCAyMi40LTkuOCA0Ni05LjggNzAuNSAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXptLTMxLjYtMjMxYzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40em0tMTk4LjIgMGwyMC45IDQyLjQgNDYuNyA2LjhjMTEuOCAxLjcgMTYuNSAxNi4yIDggMjQuNWwtMzMuOCAzMyA4IDQ2LjZjMiAxMS43LTEwLjMgMjAuNy0yMC45IDE1LjJsLTQxLjgtMjItNDEuOCAyMmMtMTAuNSA1LjUtMjIuOS0zLjQtMjAuOS0xNS4ybDgtNDYuNi0zMy44LTMzYy04LjUtOC4zLTMuOC0yMi44IDgtMjQuNWw0Ni43LTYuOCAyMC45LTQyLjRjNS4zLTEwLjcgMjAuNS0xMC43IDI1LjggMHoiXX0seFB0PWc1ZSxiNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydC11cCIsaWNvbjpbMzg0LDUxMixbInNvcnQtYXNjIl0sImYwZGUiLCJNMzIgMjI0Yy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDE3OC41IDkuNCAxNjkuNGwxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzY0LjkgMjI0IDM1MiAyMjRMMzIgMjI0eiJdfSx5UHQ9YjVlLHp0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDMyYy04MC44IDAtMTQ1LjUgMzYuOC0xOTIuNiA4MC42LTQ2LjggNDMuNS03OC4xIDk1LjQtOTMgMTMxLjEtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42czE0NS41LTM2LjggMTkyLjYtODAuNmM0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNnpNMTQ0IDI1NmExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTEuNSAwLTIyLjMtMy0zMS43LTguNC0xIDEwLjktLjEgMjIuMSAyLjkgMzMuMiAxMy43IDUxLjIgNjYuNCA4MS42IDExNy42IDY3LjlzODEuNi02Ni40IDY3LjktMTE3LjZjLTEyLjItNDUuNy01NS41LTc0LjgtMTAxLjEtNzAuOCA1LjMgOS4zIDguNCAyMC4xIDguNCAzMS43eiJdfSxDdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtbGVmdCIsaWNvbjpbMjU2LDUxMixbXSwiZjBkOSIsIk03LjcgMjM1LjhjLTEwLjMgMTIuNi05LjUgMzEuMSAyLjIgNDIuOGwxMjggMTI4YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45czE5LjgtMTYuNiAxOS44LTI5LjZsMC0yNTZjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTEyOCAxMjgtMi4yIDIuNHoiXX0sdjVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFwcGxlLXdob2xlIixpY29uOls0NDgsNTEyLFsxMjc4MjIsMTI3ODIzLCJhcHBsZS1hbHQiXSwiZjVkMSIsIk0yMjQgMTEyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0xNiAwek0wIDI4OGMwLTc2LjMgMzUuNy0xNjAgMTEyLTE2MCAyNy4zIDAgNTkuNyAxMC4zIDgyLjcgMTkuMyAxOC44IDcuMyAzOS45IDcuMyA1OC43IDAgMjIuOS04LjkgNTUuNC0xOS4zIDgyLjctMTkuMyA3Ni4zIDAgMTEyIDgzLjcgMTEyIDE2MCAwIDEyOC04MCAyMjQtMTYwIDIyNC0xNi41IDAtMzguMS02LjYtNTEuNS0xMS4zLTguMS0yLjgtMTYuOS0yLjgtMjUgMC0xMy40IDQuNy0zNSAxMS4zLTUxLjUgMTEuMy04MCAwLTE2MC05Ni0xNjAtMjI0eiJdfSx3UHQ9djVlLHg1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY3JvbGwtdG9yYWgiLGljb246WzU3Niw1MTIsWyJ0b3JhaCJdLCJmNmEwIiwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwIDY4LjkgMCA4Ni43IDEzLjQgOTMuMyAzMmwzODkuNSAwYzYuNi0xOC42IDI0LjQtMzIgNDUuMy0zMiAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OC0yMC45IDAtMzguNy0xMy40LTQ1LjMtMzJMOTMuMyA0ODBjLTYuNiAxOC42LTI0LjQgMzItNDUuMyAzMi0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek0xNzcuOSAzMDFjLTEuMiAyLTEuOSA0LjItMS45IDYuNiAwIDYuOSA1LjYgMTIuNSAxMi41IDEyLjVsNTYuOSAwIDMwLjUgNDkuMmMyLjYgNC4yIDcuMiA2LjggMTIuMiA2LjhzOS42LTIuNiAxMi4yLTYuOGwzMC41LTQ5LjIgNTYuOSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTIuMy0uNi00LjYtMS45LTYuNmwtMjcuOC00NSAyNy44LTQ1YzEuMi0yIDEuOS00LjIgMS45LTYuNiAwLTYuOS01LjYtMTIuNS0xMi41LTEyLjVsLTU2LjkgMC0zMC41LTQ5LjJjLTIuNi00LjItNy4yLTYuOC0xMi4yLTYuOHMtOS42IDIuNi0xMi4yIDYuOGwtMzAuNSA0OS4yLTU2LjkgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgMi4zIC42IDQuNiAxLjkgNi42bDI3LjggNDUtMjcuOCA0NXoiXX0sTVB0PXg1ZSxrUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMCIsIk01MjggMjI0LjFjNDQuMiAwIDgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDE4NSAxNzEuOEM0NDAuMiAxOTUgNDAwIDI0NC44IDQwMCAzMDRsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTYgMCAwLTg3LjNjMC0xNi41IDctMzEuNSAxOC40LTQyLjEtOC43LTktMjAuOS0xNC42LTM0LjQtMTQuNmwtMzIgMHptMjU2LTQ3LjljLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sU1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1sZWZ0LXJpZ2h0LXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU0YmEiLCJNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4TDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM5MC42IDM0Mi42bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0xMzMuNSAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAxMzMuNSAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6TTU3NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NnoiXX0saHY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2giLGljb246WzQ0OCw1MTIsW10sImYxZjgiLCJNMTM2LjcgNS45TDEyOCAzMiAzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAtOC43LTI2LjFDMzA2LjktNy4yIDI5NC43LTE2IDI4MC45LTE2TDE2Ny4xLTE2Yy0xMy44IDAtMjYgOC44LTMwLjQgMjEuOXpNNDE2IDE0NEwzMiAxNDQgNTMuMSA0NjcuMUM1NC43IDQ5Mi40IDc1LjcgNTEyIDEwMSA1MTJMMzQ3IDUxMmMyNS4zIDAgNDYuMy0xOS42IDQ3LjktNDQuOUw0MTYgMTQ0eiJdfSx5NWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zYWQtdGVhciIsaWNvbjpbNTEyLDUxMixbMTI4NTQ2LCJzYWQtdGVhciJdLCJmNWI0IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI3MSA5OGM1LjUtMS4zIDExLjEtMiAxNy0yIDI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwLTEyLjUgMC0yNC42IDEuOS0zNS45IDUuNSA5LjggMTIuNyAxNi41IDI3LjkgMTguOSA0NC42ek0xNzYgMjQwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTkyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE4NS40IDI5Mi44Yy0yLjQtMi45LTUuNy00LjgtOS40LTQuOHMtNyAxLjktOS40IDQuOGMtNi41IDcuOC0xMi42IDE2LjEtMTguMyAyNC42LTkgMTMuNC0yMC4zIDMwLjItMjAuMyA0Ny40IDAgMjguMyAyMS41IDUxLjIgNDggNTEuMnM0OC0yMi45IDQ4LTUxLjJjMC0xNy4yLTExLjItMzQtMjAuMy00Ny40LTUuNy04LjUtMTEuOS0xNi43LTE4LjMtMjQuNnoiXX0selB0PXk1ZSxDUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmF4IixpY29uOls1MTIsNTEyLFsxMjgyMjQsMTI4NDM5XSwiZjFhYyIsIk0xNjAgNjRsMCA4MCA2NCAwIDAtODAgMTQ2LjcgMCA0NS4zIDQ1LjMgMCAzNC43IDY0IDAgMC0zNC43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDQxNiAxOC43QzQwNCA2LjcgMzg3LjcgMCAzNzAuNyAwTDIyNCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHpNMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMkwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMybC00OCAwem00NDggNjRsLTMyMCAwIDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMjg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTAgOTZhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMzM2IDI2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTMxMiAzODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNDI0IDI2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTQwMCAzODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sX1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDhsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSxUUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFtc2EiLGljb246WzUxMiw1MTIsW10sImY2NjUiLCJNMzQuNiAyODhMODAgMjg4YzguOCAwIDE2LTcuMiAxNi0xNkw5NiA3MmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTMyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTY0YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxNjRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIwMGMwIDguOCA3LjIgMTYgMTYgMTZsNDUuNCAwYzE5LjEgMCAzNC42IDE1LjUgMzQuNiAzNC42IDAgOC42LTMuMiAxNi45LTkgMjMuM0w0MTYuNiA0NDFjLTQxLjEgNDUuMi05OS40IDcxLTE2MC42IDcxUzEzNi42IDQ4Ni4yIDk1LjQgNDQxTDkgMzQ1LjljLTUuOC02LjQtOS0xNC43LTktMjMuMyAwLTE5LjEgMTUuNS0zNC42IDM0LjYtMzQuNnpNMjU2IDI4OGMtMzguNCAwLTc2LjggMzUuOC05MC42IDUwLjItMy42IDMuNy01LjQgOC43LTUuNCAxMy44czEuOCAxMC4xIDUuNCAxMy44QzE3OS4yIDM4MC4yIDIxNy42IDQxNiAyNTYgNDE2czc2LjgtMzUuOCA5MC42LTUwLjJjMy42LTMuNyA1LjQtOC43IDUuNC0xMy44cy0xLjgtMTAuMS01LjQtMTMuOEMzMzIuOCAzMjMuOCAyOTQuNCAyODggMjU2IDI4OHptMCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LExQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXF1ZXN0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTQyIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xMDBjLTExLjYgMC0yMS4zIDguMi0yMy41IDE5LjItMS44IDguNy0xMC4yIDE0LjMtMTguOSAxMi41cy0xNC4zLTEwLjItMTIuNS0xOC45YzUuMi0yNS42IDI3LjgtNDQuOCA1NC45LTQ0LjggMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAxOS44LTExLjcgMzcuOC0yOS44IDQ1LjlsLTEwLjQgNC42Yy0xLjIgNy43LTcuOCAxMy41LTE1LjggMTMuNS04LjggMC0xNi03LjItMTYtMTYgMC0xMS4yIDYuNi0yMS4zIDE2LjgtMjUuOWwxMi40LTUuNWM2LjYtMi45IDEwLjgtOS40IDEwLjgtMTYuNiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sJFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1jaGVjayIsaWNvbjpbMzg0LDUxMixbXSwiZjQ2YyIsIk0yNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwem0yNi45IDIxMi42Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM2wtODUuNiAxMTcuNy0yNi41LTI3LjRjLTkuMi05LjUtMjQuNC05LjgtMzMuOS0uNnMtOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMjg4LjIgMjQ2LjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6TTEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjR6Il19LHc1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTM4NC41IDI0bDAgNzItNjQgMGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCA5My40IDgyLjggMTM0LjggMTAwLjYgMTQyLjYgMi4yIDEgNC42IDEuNCA3LjEgMS40bDIuNSAwYzkuOCAwIDE3LjgtOCAxNy44LTE3LjggMC04LjMtNS45LTE1LjUtMTIuOC0yMC4zLTguOS02LjItMTkuMi0xOC4yLTE5LjItNDAuNSAwLTQ1IDM2LjUtODEuNSA4MS41LTgxLjVsMzAuNSAwIDAgNzJjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDI1LjUgN2MtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzODQuNSAxNC4zIDM4NC41IDI0em0tMjcyIDcyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAweiJdfSxEUHQ9dzVlLF90ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNlaXB0IixpY29uOlszODQsNTEyLFsxMjk1MzRdLCJmNTQzIiwiTTE0IDIuMkMyMi41LTEuNyAzMi41LS4zIDM5LjYgNS44TDgwIDQwLjQgMTIwLjQgNS44YzktNy43IDIyLjMtNy43IDMxLjIgMEwxOTIgNDAuNCAyMzIuNCA1LjhjOS03LjcgMjIuMi03LjcgMzEuMiAwTDMwNCA0MC40IDM0NC40IDUuOGM3LjEtNi4xIDE3LjEtNy41IDI1LjYtMy42UzM4NCAxNC42IDM4NCAyNGwwIDQ2NGMwIDkuNC01LjUgMTcuOS0xNCAyMS44cy0xOC41IDIuNS0yNS42LTMuNmwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMiA3LjctMzEuMiAwbC00MC40LTM0LjYtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMODAgNDcxLjYgMzkuNiA1MDYuMmMtNy4xIDYuMS0xNy4xIDcuNS0yNS42IDMuNlMwIDQ5Ny40IDAgNDg4TDAgMjRDMCAxNC42IDUuNSA2LjEgMTQgMi4yek0xMDQgMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHpNODAgMzUyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0LTEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LEFQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcXVhbHMiLGljb246WzQ0OCw1MTIsWzYyNzY0XSwiM2QiLCJNMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDEyOHptMCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIweiJdfSxQUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi11cCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3NyIsIk0yMDEuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDIyNCAxNzMuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyeiJdfSxFUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzUiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODguNi04OC42YzEuNy0xMi4xLTItMjQuOC0xMS4zLTM0LTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBjLTMxLjIgMzEuMi04NC41IDkuMS04NC41LTM1IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS05LjMtOS4zLTIyLTEzLTM0LTExLjNMNDEtMjQuOXpNNzIgMjE2Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC0yMS40IDEyLjYtMzcuNiAyOS4xLTQ1LjFsLTI0MC0yNDBDMTA5LjYgMjAzLjQgOTMuNCAyMTYgNzIgMjE2eiJdfSxJUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xhc2giLGljb246WzU3Niw1MTIsW10sImY3MTUiLCJNNy0yNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw1NjkgNTAzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5Qy0yLjMtLjQtMi4zLTE1LjYgNy0yNXoiXX0sTlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGFuZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDMzNC4zIDAgMzUybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNNDQ4IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2eiJdfSxNNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIxMy41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDMyMi43IDQ2MS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ4MHpNMzg5LjUgMzA0TDI5NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXoiXX0sUlB0PU01ZSxrNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY29sdW1ucyIsaWNvbjpbNDQ4LDUxMixbImNvbHVtbnMiXSwiZjBkYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgNjRsMCAyNTYgMTI4IDAgMC0yNTYtMTI4IDB6bTMyMCAwbC0xMjggMCAwIDI1NiAxMjggMCAwLTI1NnoiXX0sT1B0PWs1ZSxGUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNoZWx0ZXIiLGljb246WzUxMiw1MTIsW10sImU1NGYiLCJNMjcxLjkgNC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOEM2LjIgMTM3LjkgMCAxNDguNSAwIDE2MEwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDE3OC42IDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDE5MmwxNiAwIDAgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTMzLjItNjEuN0MzMjkuNyAyNDUuMSAyOTQuNCAyMjQgMjU2IDIyNHMtNzMuNyAyMS4xLTkxLjkgNTQuOWwtMzMuMiA2MS43Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6Il19LEJQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm90Y2giLGljb246WzUxMiw1MTIsW10sImYxY2UiLCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44LTc5LjMgMjMuNi0xMzcuMSA5Ny4xLTEzNy4xIDE4NC4xIDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xLTE2LjktNS0yNi42LTIyLjktMjEuNS0zOS44czIyLjktMjYuNiAzOS44LTIxLjVDNDM0LjkgNDIuMSA1MTIgMTQwIDUxMiAyNTYgNTEyIDM5Ny40IDM5Ny40IDUxMiAyNTYgNTEyUzAgMzk3LjQgMCAyNTZjMC0xMTYgNzcuMS0yMTMuOSAxODIuOS0yNDUuNCAxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41eiJdfSxIUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2F0ZXIiLGljb246WzUxMiw1MTIsW10sImY3NzMiLCJNNDEwLjYgMTI0LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0wIDE0NGMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuNy0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDE0NGMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LFM1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZWxldGUtbGVmdCIsaWNvbjpbNjQwLDUxMixbOTAwMywiYmFja3NwYWNlIl0sImY1NWEiLCJNNTc2IDEyOGMwLTM1LjMtMjguNy02NC02NC02NEwyMDUuMyA2NGMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMOS40IDIzMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZMMTYwIDQyOS4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NnpNMjg0LjEgMTg4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0scVB0PVM1ZSxQZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJvb20tYmFsbCIsaWNvbjpbNTc2LDUxMixbInF1aWRkaXRjaCIsInF1aWRkaXRjaC1icm9vbS1iYWxsIl0sImY0NTgiLCJNNDk2IDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHpNMTA2LjggMjc3LjJjMzAuNi0zMC42IDczLjEtNDUuOSAxMTUuOC00Mi4yTDM0MSAzNTMuM2MzLjcgNDIuOC0xMS42IDg1LjItNDIuMiAxMTUuOS0yNy40IDI3LjQtNjQuNiA0Mi44LTEwMy4zIDQyLjhMMjIuMSA1MTJjLTEyLjIgMC0yMi4xLTkuOS0yMi4xLTIyLjEgMC02LjMgMi43LTEyLjMgNy4zLTE2LjVMMTMzLjcgMzU5LjdjNC4yLTMuNy0uNC0xMC40LTUuNC03LjlMNzcuMiAzNzcuNGMtNi4xIDMtMTMuMi0xLjQtMTMuMi04LjIgMC0zMS41IDEyLjUtNjEuOCAzNC44LTg0bDgtOHptNDE3LTI3MGMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJzMTIuNCAzMC4yIDIuMiA0Mi44bC0yLjIgMi40LTE5MiAxOTIgMzQuOCAzNC43YzQuMiA0LjIgNi42IDEwIDYuNiAxNiAwIDEyLjUtMTAuMSAyMi42LTIyLjYgMjIuNmwtMjkuMSAwLTEwOC4zLTEwOC4zIDAtMjkuMWMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNiA2IDAgMTEuOCAyLjQgMTYgNi42bDM0LjggMzQuNyAxOTItMTkyIDIuNC0yLjJ6Il19LFZQdD1QZWUsalB0PVBlZSxVUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaiIsaWNvbjpbMzIwLDUxMixbMTA2XSwiNGEiLCJNMjg4IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sejVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodXR0bGUtc3BhY2UiLGljb246WzU3Niw1MTIsWyJzcGFjZS1zaHV0dGxlIl0sImYxOTciLCJNMCAzNjhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1MCAwYzQwLjYgMCA4MC40LTExIDExNS4yLTMxLjlsMTMzLjUtODAuMS05My4zIDAtNjQuOSAzOC45Yy0xNCA4LjQtMjguOSAxNC43LTQ0LjUgMTlsMC02Ni40YzkuNy01LjYgMTcuOC0xMy43IDIzLjQtMjMuNGwxOTguOCAwYzY3LjEgMCAxMjcuOC0yMC42IDE3MC4zLTcwLjYgNC42LTUuNCA0LjYtMTMuMyAwLTE4LjgtNDIuNS01MC4xLTEwMy4yLTcwLjYtMTcwLjMtNzAuNmwtMTk4LjggMGMtNS42LTkuNy0xMy43LTE3LjgtMjMuNC0yMy40bDAtNjYuNGMxNS42IDQuMiAzMC42IDEwLjYgNDQuNSAxOWw2NC45IDM4LjkgOTMuMyAwLTEzMy41LTgwLjFDMTc4LjQgNDMgMTM4LjYgMzIgOTggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDM2OHptOTYgMGwwIDY0LTQ4IDAgMC02NCA0OCAwek05NiA4MGwwIDY0LTQ4IDAgMC02NCA0OCAwek00MTYgMjI0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxXUHQ9ejVlLEdQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5aW4teWFuZyIsaWNvbjpbNTEyLDUxMixbOTc3NV0sImY2YWQiLCJNMjI0IDE2MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAzNTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTQ0OGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Ni05NiA0My05NiA5NiA0MyA5NiA5NiA5NkMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZTMTUwIDY0IDI1NiA2NHpNMjI0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxZUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcCIsaWNvbjpbNDQ4LDUxMixbOTIwOV0sImYwNGQiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyeiJdfSxLUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsIixpY29uOls1NzYsNTEyLFtdLCJlNTg5IiwiTTQwNy45IDE4MS40TDI3Ny4zIDMxMiAzNDIuNiAzNzcuNGM3LjkgNy45IDExLjEgMTkuNCA4LjQgMzAuM3MtMTAuOCAxOS42LTIxLjUgMjIuOWwtMjU2IDgwYy0xMS40IDMuNS0yMy44IC41LTMyLjItNy45cy0xMS41LTIwLjgtNy45LTMyLjJsODAtMjU2YzMuMy0xMC43IDEyLTE4LjkgMjIuOS0yMS41czIyLjQgLjUgMzAuMyA4LjRMMjMyIDI2Ni43IDM2Mi42IDEzNi4xYy0xNC4zLTE0LjYtMTQuMi0zOCAuMy01Mi41bDk1LjQtOTUuNGMyNi45LTI2LjkgNzAuNS0yNi45IDk3LjUgMHMyNi45IDcwLjUgMCA5Ny41bC05NS40IDk1LjRjLTE0LjUgMTQuNS0zNy45IDE0LjYtNTIuNSAuM3oiXX0sQzVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNNy40IDI1My42QzIuNiAyNDUuOSAwIDIzNy4xIDAgMjI4bDAtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDE3LjMgMCAzMi40IDkuMSA0MC45IDIyLjggNC4zLTIyLjEgMjMuOC0zOC44IDQ3LjEtMzguOCAyMy40IDAgNDIuOSAxNi44IDQ3LjEgMzguOSA3LjMtNC40IDE1LjgtNi45IDI0LjktNi45IDIyLjEgMCA0MC44IDE1IDQ2LjMgMzUuNCA1LjUtMi4yIDExLjQtMy40IDE3LjctMy40IDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTYuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMzkuNiA3OS4xYy0xMC44IDIxLjctMzMgMzUuNC01Ny4yIDM1LjRMOTYgMzUyYy0xNi41IDAtMzEuOC04LjQtNDAuNi0yMi40bC00OC03NnpNMzIgNDgwbDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxaUHQ9QzVlLFhQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oaWdoIixpY29uOls1MTIsNTEyLFtdLCJmNzY5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjE2IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LFFQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzY5XSwiM2UiLCJNMzQuOSA1MC42Yy03LjQgMTYtLjQgMzUuMSAxNS42IDQyLjVMNDAzLjYgMjU2IDUwLjYgNDE5Yy0xNiA3LjQtMjMuMSAyNi40LTE1LjYgNDIuNXMyNi40IDIzIDQyLjUgMTUuNmw0MTYtMTkyYzExLjMtNS4yIDE4LjYtMTYuNiAxOC42LTI5LjFzLTcuMy0yMy44LTE4LjYtMjkuMUw3Ny40IDM1Yy0xNi03LjQtMzUuMS0uNC00Mi41IDE1LjZ6Il19LEpQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV0Y2giLGljb246WzUxMiw1MTIsW10sImY3ZjciLCJNMjk3LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTEuNC0xLjQtMTU4LjYgMTU4LjZjLTE4IDE4LTQyLjQgMjguMS02Ny45IDI4LjFsLTU5IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40LTYxLjcgNjEuNy05Mi44IDkyLjgtOTMuMyA5My4zLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2LTE2IDAgMCA3Ny4zLTc3LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtNTljMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMjk4LjcgNTYgMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6TTM0NCAxMDEuM0wyNjEuMyAxODQgMzI4IDI1MC43IDQxMC43IDE2OCAzNDQgMTAxLjN6bS0xMjggMTI4bC0zMC42IDMwLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDUzLjUgNTMuNSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDI4Mi43IDI5NiAyMTYgMjI5LjN6Il19LF81ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZXB0YWdvbiIsaWNvbjpbNTc2LDUxMixbImhlcHRhZ29uIl0sImU4MjAiLCJNMjY3LjQtMzEuNWMxNS45LTUuNSAzMy41LTQuNiA0OC44IDIuN2wxNzIuNCA4MyA2LjMgMy41YzE0LjIgOSAyNC41IDIzLjMgMjguMyAzOS45bDQyLjYgMTg2LjUgMS4yIDcuMmMxLjYgMTQuMy0xLjcgMjguOC05LjQgNDEuMWwtNC4yIDUuOS0xMTkuMyAxNDkuNmMtMTIuMSAxNS4yLTMwLjYgMjQuMS01MCAyNC4xbC0xOTEuMyAwYy0xOS41IDAtMzcuOS04LjktNTAtMjQuMUwyMy41IDMzOC40Yy0xMi4xLTE1LjItMTYuNy0zNS4yLTEyLjMtNTQuMmw0Mi42LTE4Ni41IDItN2M1LjYtMTUuOSAxNy4yLTI5IDMyLjYtMzYuNGwxNzIuNC04MyA2LjctMi43eiJdfSxlRXQ9XzVlLHRFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJlZXQtdmlldyIsaWNvbjpbNTEyLDUxMixbXSwiZjIxZCIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjI0IDE2MGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEuOCAwLTExLjEgOTkuNWMtMS44IDE2LjItMTUuNSAyOC41LTMxLjggMjguNWwtMzguNyAwYy0xNi4zIDAtMzAtMTIuMy0zMS44LTI4LjVsLTExLjEtOTkuNS0xLjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDEyLjQgNDAwLjJjLTE2LjEtNC4yLTM0LjgtNy42LTU1LjQtMTAuMmw1LjMtNDcuN2MyMi43IDIuOSA0My43IDYuNyA2Mi4xIDExLjUgMjIuNCA1LjggNDIuNiAxMy4zIDU3LjggMjMuMyAxNC43IDkuNiAyOS44IDI0LjkgMjkuOCA0N3MtMTUuMSAzNy40LTI5LjggNDdjLTE1LjIgOS45LTM1LjUgMTcuNS01Ny44IDIzLjMtNDUuMSAxMS43LTEwNS4zIDE3LjgtMTY4LjQgMTcuOHMtMTIzLjMtNi4xLTE2OC40LTE3LjhDNjUuMiA0ODguNCA0NSA0ODAuOSAyOS44IDQ3MSAxNS4xIDQ2MS40IDAgNDQ2LjEgMCA0MjRzMTUuMS0zNy40IDI5LjgtNDdjMTUuMi05LjkgMzUuNS0xNy41IDU3LjgtMjMuMyAxOC41LTQuOCAzOS41LTguNiA2Mi4xLTExLjVMMTU1IDM5MGMtMjAuNiAyLjYtMzkuMyA2LjEtNTUuNCAxMC4yLTU2LjYgMTQuNi01Ni42IDMyLjkgMCA0Ny41IDM5LjkgMTAuMyA5NS44IDE2LjIgMTU2LjQgMTYuMnMxMTYuNS01LjkgMTU2LjQtMTYuMmM1Ni42LTE0LjYgNTYuNi0zMi45IDAtNDcuNXoiXX0sYUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdmUtc3F1YXJlIixpY29uOls1MTIsNTEyLFtdLCJmODNlIiwiTTY0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjg4IDk2IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjg4LTk2IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTEyOHoiXX0sckV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLWxlZnQiLGljb246WzI1Niw1MTIsWzgyNDldLCJmMTA0IiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDIxNC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxzRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NyZXdkcml2ZXIiLGljb246WzU3Niw1MTIsWzEyOTY5MV0sImY1NGEiLCJNMzUyLjEgMTQ2LjdsMC00OS42YzAtMTAuNyA1LjMtMjAuNyAxNC4yLTI2LjZMNDg1LjItOC43YzYuMy00LjIgMTQuOC0zLjQgMjAuMiAybDQ1LjQgNDUuNWM1LjQgNS40IDYuMiAxMy44IDIgMjAuMkw0NzMuNiAxNzcuOGMtNS45IDguOS0xNS45IDE0LjItMjYuNiAxNC4ybC00OS42IDAtOTAuNyA5MC43YzE1IDMzLjMgOC45IDczLjktMTguNSAxMDEuM0wxNjIuMSA1MTAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMzQuMSA0NDkuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMMTYwLjEgMjU2YzI3LjQtMjcuNCA2Ny45LTMzLjYgMTAxLjMtMTguNWw5MC43LTkwLjd6Il19LGlFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFjdG9yIixpY29uOls1NzYsNTEyLFsxMjg2NjhdLCJmNzIyIiwiTTE2MCA5NmwwIDk2IDEzMy40IDAtNTcuNi05Ni03NS44IDB6TTk2IDIyM0w5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMDcuOCAwYzIyLjUgMCA0My4zIDExLjggNTQuOSAzMS4xbDc3LjQgMTI4LjkgNjQgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDEuNWMwIDE0LjItNi4zIDI3LjgtMTcuMyAzNi45bC0zNSAyOS4yYzI2LjUgMTUuMiA0NC4zIDQzLjcgNDQuMyA3Ni40IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMTQuNCAzLjUtMjggOS42LTQwbC0xMDEuMiAwYy0zIDEzLjQtNy45IDI2LTE0LjQgMzcuNyA3LjcgOS40IDcuMiAyMy40LTEuNiAzMi4ybC0yMi42IDIyLjZjLTguOCA4LjgtMjIuNyA5LjMtMzIuMiAxLjYtOS4zIDUuMi0xOS4zIDkuMy0yOS44IDEyLjMtMS4yIDEyLjEtMTEuNCAyMS42LTIzLjkgMjEuNmwtMzIgMGMtMTIuNCAwLTIyLjctOS41LTIzLjktMjEuNi0xMC41LTMtMjAuNC03LjItMjkuOC0xMi4zLTkuNCA3LjctMjMuNCA3LjItMzIuMi0xLjZMMzUuNSA0NTMuOGMtOC44LTguOC05LjMtMjIuNy0xLjYtMzIuMi01LjItOS4zLTkuMy0xOS4zLTEyLjMtMjkuOC0xMi4xLTEuMi0yMS42LTExLjQtMjEuNi0yMy45bDAtMzJjMC0xMi40IDkuNS0yMi43IDIxLjYtMjMuOSAzLTEwLjUgNy4yLTIwLjQgMTIuMy0yOS44LTcuNy05LjQtNy4yLTIzLjQgMS42LTMyLjJsMjIuNi0yMi42YzguOC04LjggMjIuNy05LjMgMzIuMi0xLjYgMS45LTEgMy43LTIgNS43LTN6bTY0IDY1YTY0IDY0IDAgMSAwIDAgMTI4IDY0IDY0IDAgMSAwIDAtMTI4ek00NDAgNDI0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAgLTgwIDB6Il19LG9FdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNGNiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sbkV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWxzIixpY29uOls1MTIsNTEyLFtdLCJmNDkzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAzNTJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTM1MiA2NCAwIDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDk3LjcgMCA0ODAgMEwzMiAwek0xNjAgNjRsMCAxMjgtNjQgMCAwLTEyOCA2NCAwem0yNTYgMGwwIDEyOC02NCAwIDAtMTI4IDY0IDB6Il19LGxFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGV0aG9zY29wZSIsaWNvbjpbNTc2LDUxMixbMTI5NjU4XSwiZjBmMSIsIk0zMiA0OEMzMiAyMS41IDUzLjUgMCA4MCAwbDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMyMzguMyAwIDI1NiAwbDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDRjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxOS4yYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJsMC04NS41Yy0zNy4zLTEzLjItNjQtNDguNy02NC05MC41IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgODUuNWMwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMxNjAgNDY1LjIgMTYwIDM2OGwwLTE5LjJDODcgMzM0IDMyIDI2OS40IDMyIDE5MkwzMiA0OHpNNDgwIDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGNFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb2RjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmNlIiwiTTMzNiAzNTkuOGMzOS4xLTMyLjMgNjQtODEuMSA2NC0xMzUuOCAwLTk3LjItNzguOC0xNzYtMTc2LTE3NlM0OCAxMjYuOCA0OCAyMjRDNDggMjc4LjcgNzIuOSAzMjcuNSAxMTIgMzU5LjggMTEyLjQgMzc3LjQgMTE1LjIgNDAwLjIgMTE4LjQgNDIxLjYgNDggMzgzLjkgMCAzMDkuNSAwIDIyNCAwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRjMCA4NS42LTQ4IDE1OS45LTExOC41IDE5Ny42IDMuMy0yMS40IDYtNDQuMiA2LjQtNjEuOHptLTE0LTUzLjRjLTguMy0xMi42LTE5LjItMjEuNi0zMC40LTI3LjgtMi4xLTEuMS00LjItMi4yLTYuMy0zLjIgMTEuNy0xMy45IDE4LjgtMzEuOSAxOC44LTUxLjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAxOS42IDcuMSAzNy42IDE4LjggNTEuNS0yLjEgMS00LjIgMi02LjMgMy4yLTExLjIgNi4yLTIyLjEgMTUuMi0zMC40IDI3LjgtMTguOC0yMi4zLTMwLjEtNTEtMzAuMS04Mi40IDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjhjMCAzMS40LTExLjMgNjAuMi0zMC4xIDgyLjR6TTIyNCAzMTJjMzIuOSAwIDY0IDguNiA2NCA0My44IDAgMzMtMTIuOSAxMDQuMS0yMC42IDEzMi45LTUuMSAxOS0yNC41IDIzLjQtNDMuNCAyMy40cy0zOC4yLTQuNC00My40LTIzLjRjLTcuOC0yOC41LTIwLjYtOTkuNy0yMC42LTEzMi44IDAtMzUuMSAzMS4xLTQzLjggNjQtNDMuOHptMC0xMjhhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxkRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZG90cyIsaWNvbjpbNTEyLDUxMixbXSwiZTRiNyIsIk05NiAzMkM3OC4zIDMyIDY0IDQ2LjMgNjQgNjRTNzguMyA5NiA5NiA5NkwxMTQuNyA5NiA5LjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDE0MS4zIDE2MCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDMyek00MDMuOCA3MC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTI3OS43IDE5NC4yYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2Mi4yLTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yek0xNTYuMiAzMTcuOGEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjEuNi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTcwLjEgNDAzLjhhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAweiJdfSx1RXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTI1NiA4MGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTUuNSAxODVMMTI4IDM4NCA3MS44IDQ1NC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwzMTIuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDM4NCAzODQgNTA2LjUgMTg1YzMuNi01LjkgNS41LTEyLjcgNS41LTE5LjZsMC0uNmMwLTIwLjMtMTYuNS0zNi44LTM2LjgtMzYuOC03LjMgMC0xNC40IDIuMi0yMC40IDYuMmwtMTYuOSAxMS4zYy0xMi43IDguNS0yOS42IDYuOC00MC40LTRsLTM0LjEtMzQuMUMzNTYuMSAxMDAuMSAzNDYuMiA5NiAzMzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzAuMSAzMC4xYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMzAuMS0zMC4xQzE5Ni4xIDEwMC4xIDE4Ni4yIDk2IDE3NiA5NnMtMjAuMSA0LjEtMjcuMyAxMS4zbC0zNC4xIDM0LjFjLTEwLjggMTAuOC0yNy43IDEyLjUtNDAuNCA0TDU3LjMgMTM0LjJjLTYuMS00LTEzLjItNi4yLTIwLjQtNi4yLTIwLjMgMC0zNi44IDE2LjUtMzYuOCAzNi44bDAgLjZjMCA2LjkgMS45IDEzLjcgNS41IDE5LjZ6Il19LHBFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNGFiIiwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjA4IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFQ1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcy12ZXJ0aWNhbCIsaWNvbjpbMTI4LDUxMixbImVsbGlwc2lzLXYiXSwiZjE0MiIsIk02NCAxNDRhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6bTAgMjI0YzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTEyYzAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTYgNTYgMjUuMSA1NiA1NnoiXX0sZkV0PVQ1ZSxoRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGZlIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxtRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGQzIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGdFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYXJyb3ctdXAtZnJvbS1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM5IiwiTTE5Mi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMzE4LjMgMjk5LjFsLTQ2LjMtNjIuNCAwIDI0My4zIDI3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MCAwIDAtMjQzLjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0yMDggNDgwbDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4IDMyIDB6TTU2Ni42IDEwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEw0OTYgNzcuMyA0OTYgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQ2LjctMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w4MC04MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3oiXX0sYkV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdC1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzZSIsIk0zNzguNiA4MS44YzkuOC0xNC43IDUuOC0zNC42LTguOS00NC40cy0zNC42LTUuOC00NC40IDguOUwyNzAuOSAxMjggMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5Ni4yIDAtODUuMyAxMjgtMTEwLjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2OC4yIDAtMzAuOCA0Ni4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOUwxNzcuMSAzODQgNDE2IDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTk2LjIgMCA4NS4zLTEyOCAxMTAuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02OC4yIDAgMzAuOC00Ni4yeiJdfSx2RXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tdHJhbSIsaWNvbjpbMzg0LDUxMixbMTI4NjUwXSwiZTViNCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjAgMCAwIDY0IDQwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDE2MGMwIDMxLjItMTQuOSA1OS0zOCA3Ni41bDY0LjMgNzZjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC42LTg4LjFjLTMuNiAuNC03LjMgLjYtMTEuMSAuNmwtMTI4IDBjLTMuOCAwLTcuNS0uMi0xMS4xLS42TDQyLjMgNTM1LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDY0LjMtNzZDNDYuOSA0MTEgMzIgMzgzLjIgMzIgMzUybDAtMTYwYzAtNTMgNDMtOTYgOTYtOTZsNDAgMCAwLTY0LTEyMCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUzLjMgMCA0MEwwIDh6TTEyOCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDB6bTMyIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHhFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1kZXBhcnR1cmUiLGljb246WzU3Niw1MTIsWzEyODc0N10sImY1YjAiLCJNMzcyIDE0My45TDE3Mi43IDQwLjJjLTgtNC4xLTE3LjMtNC44LTI1LjctMS43bC00MS4xIDE1Yy0xMC4zIDMuNy0xMy44IDE2LjQtNy4xIDI1TDIwMC4zIDIwNi40IDEwMC4xIDI0Mi44IDQwIDIwNi4yYy02LjItMy44LTEzLjgtNC41LTIwLjctMi4xTDMgMjEwLjFjLTkuNCAzLjQtMTMuNCAxNC41LTguMyAyMy4xbDUzLjYgOTEuOGMxNS42IDI2LjcgNDguMSAzOC40IDc3LjEgMjcuOGwxMi45LTQuNyAwIDAgMzk4LjQtMTQ1YzI5LjEtMTAuNiA0NC00Mi43IDMzLjUtNzEuOHMtNDIuNy00NC03MS44LTMzLjVMMzcyIDE0My45ek0zMi4yIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTEyIDB6Il19LEw1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbi1hbHQiXSwiZjJmNiIsIk0zNDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIwMSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMxNjAgMTAyLjMgMTYwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDM0NSAyNzN6bTcgMTQzYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDB6Il19LHlFdD1MNWUsd0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNkLWNhcmQiLGljb246WzM4NCw1MTIsW10sImY3YzIiLCJNMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyNS4zIDBDMTA4LjMgMCA5MiA2LjcgODAgMTguN0wxOC43IDgwQzYuNyA5MiAwIDEwOC4zIDAgMTI1LjNMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODR6TTE2MCA4OGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sTUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ5NiA0NDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sVzg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hla2VsLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjIsImlscyIsInNoZWtlbCIsInNoZXFlbCIsInNoZXFlbC1zaWduIl0sImYyMGIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAweiJdfSxrRXQ9VzgsU0V0PVc4LHpFdD1XOCxDRXQ9VzgsX0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlvIixpY29uOls1MTIsNTEyLFsxMjgyNTFdLCJmOGQ3IiwiTTQ5NC44IDE1YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0zNC44IDQ4MS4zLTMxTDUxLjggOTQuOUM0Mi40IDk3LjYgMzMuOSAxMDIuMSAyNi42IDEwOCAxMC41IDExOS43IDAgMTM4LjYgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjE4LjUgOTYgNDk0LjggMTV6TTM2OCAyMDhhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTY0IDI0OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAyNzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LCQ1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWRvdHMiLGljb246WzUxMiw1MTIsWyJhbGxlcmdpZXMiXSwiZjQ2MSIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHpNMjAwIDM1MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tODggMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxURXQ9JDVlLEQ1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXNrdWxsIixpY29uOls0NDgsNTEyLFsiYm9vay1kZWFkIl0sImY2YjciLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3MiAxNjMuMmwwIDEyLjhjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMi44Yy0xOS40LTExLjctMzItMzAuMy0zMi01MS4yIDAtMzUuMyAzNS44LTY0IDgwLTY0czgwIDI4LjcgODAgNjRjMCAyMC45LTEyLjYgMzkuNS0zMiA1MS4yek0yMDggMTEyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNzQuMiA5NS43YzQuNiAxMC4xIC4xIDIxLjktOS45IDI2LjVsLTQ3LjkgMjEuOCA0Ny45IDIxLjhjMTAuMSA0LjYgMTQuNSAxNi40IDkuOSAyNi41cy0xNi40IDE0LjUtMjYuNSA5LjlMMjI0IDI5NCAxNDQuMyAzMzAuMmMtMTAuMSA0LjYtMjEuOSAuMS0yNi41LTkuOXMtLjEtMjEuOSA5LjktMjYuNWw0Ny45LTIxLjgtNDcuOS0yMS44Yy0xMC4xLTQuNi0xNC41LTE2LjQtOS45LTI2LjVzMTYuNC0xNC41IDI2LjUtOS45TDIyNCAyNTAgMzAzLjcgMjEzLjhjMTAuMS00LjYgMjEuOS0uMSAyNi41IDkuOXoiXX0sTEV0PUQ1ZSxBNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5sb2NrLWtleWhvbGUiLGljb246WzM4NCw1MTIsWyJ1bmxvY2stYWx0Il0sImYxM2UiLCJNMTkyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0IDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC02NGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2My41IDAgMTE2LjEgNDYuMSAxMjYuMiAxMDYuNyAyLjkgMTcuNC04LjggMzMuOS0yNi4zIDM2LjlzLTMzLjktOC44LTM2LjktMjYuM0MyNTAgNTUuMSAyMjMuNyAzMiAxOTIgMzJ6bTQwIDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAweiJdfSwkRXQ9QTVlLFA1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWFycm93LXVwIixpY29uOlszODQsNTEyLFsiZmlsZS11cGxvYWQiXSwiZjU3NCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMjA5IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTY0IDY0Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMjMtMjMgMCA4Ni4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04Ni4xIDIzIDIzYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjQtNjR6Il19LERFdD1QNWUsRTVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTU0LjggMjAzLjRsMTYuMyAyLjNDNTQ3LjcgODguNCA0NDQuMiAwIDMyMCAwUzkyLjMgODguNCA2OC45IDIwNS43bDE2LjMtMi4zYzM3LTUuMyA2OC42IDI2LjQgNjMuNCA2My40bC02LjcgNDYuN2MtNC4xIDI5LTIxLjYgNTMuMi00NS44IDY2LjggNDMuNyA3OC41IDEyNy42IDEzMS43IDIyMy44IDEzMS43czE4MC4xLTUzLjEgMjIzLjgtMTMxLjdjLTI0LjEtMTMuNS00MS42LTM3LjgtNDUuOC02Ni44bC02LjctNDYuN2MtNS4zLTM3IDI2LjQtNjguNiA2My40LTYzLjR6TTQ3MC4zIDMyNi45QzQ0Ny45IDM4OC4yIDM4OS4xIDQzMiAzMjAgNDMyUzE5Mi4xIDM4OC4yIDE2OS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAtMjUuNi0xOC44LTQ3LjMtNDQuMS01MC45TDU0OS4xIDI0M2MtMTAuNi0xLjUtMTkuNiA3LjUtMTguMSAxOC4xbDYuNyA0Ni43YzMuNiAyNS4zIDI1LjMgNDQuMSA1MC45IDQ0LjEgMjguNCAwIDUxLjQtMjMgNTEuNC01MS40em0tNjQwIDBDMCAzMjkgMjMgMzUyIDUxLjQgMzUyIDc3IDM1MiA5OC43IDMzMy4yIDEwMi4zIDMwNy45bDYuNy00Ni43YzEuNS0xMC42LTcuNS0xOS42LTE4LjEtMTguMWwtNDYuNyA2LjdDMTguOCAyNTMuMyAwIDI3NSAwIDMwMC42eiJdfSxBRXQ9RTVlLHJ2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDcxLjYgMjEuN2MtMjEuOS0yMS45LTU3LjMtMjEuOS03OS4yIDBMMzY4IDQ2LjEgNDY1LjkgMTQ0IDQ5MC4zIDExOS42YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ3MS42IDIxLjd6bS0yOTkuMiAyMjBjLTYuMSA2LjEtMTAuOCAxMy42LTEzLjUgMjEuOWwtMjkuNiA4OC44Yy0yLjkgOC42LS42IDE4LjEgNS44IDI0LjZzMTUuOSA4LjcgMjQuNiA1LjhsODguOC0yOS42YzguMi0yLjcgMTUuNy03LjQgMjEuOS0xMy41TDQzMiAxNzcuOSAzMzQuMSA4MCAxNzIuNCAyNDEuN3pNOTYgNjRDNDMgNjQgMCAxMDcgMCAxNjBMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgNjR6Il19LFBFdD1ydixJNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtZXVyb3BlIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtZXVyb3BlIl0sImY3YTIiLCJNMjU2LjIgNDhjMTE0LjggLjEgMjA3LjggOTMuMiAyMDcuOCAyMDggMCAyMi4xLTMuNCA0My40LTkuOCA2My40LTIgLjQtNC4xIC42LTYuMiAuNmwtMi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTUwLjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZsLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjUuNCAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDcwLjEtNzAuMWMyLjEtMi4xIDMuMy01IDMuMy04IDAtNi4yLTUuMS0xMS4zLTExLjMtMTEuM2wtMTQuMSAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDIzLjEtMjMuMWMuOC0uOCAxLjYtMS41IDIuNS0yLjJ6TTQzOC40IDM1Ni4xYy0zMi44IDU5LjYtOTMuOSAxMDEuNC0xNjUuMiAxMDcuMi0uNy0yLjMtMS4xLTQuOC0xLjEtNy4zIDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yNi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTY2LjdjMC0xNy43IDE0LjMtMzIgMzItMzJsOTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsNS41IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTYgMTZjNC4yIDQuMiAxMCA2LjYgMTYgNi42IDQuOCAwIDkuMyAxLjUgMTMgNC4xek0yNTYgNTEybDI2LjItMS4zYy04LjYgLjktMTcuMyAxLjMtMjYuMiAxLjN6bTI2LjItMS4zQzQxMS4zIDQ5Ny42IDUxMiAzODguNiA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwbDAgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTYgMCAzODMuNSA5My4yIDQ4OS4zIDIxNS4zIDUwOC44IDIyOC41IDUxMC45IDI0Mi4xIDUxMiAyNTYgNTEyek0xODcuMyAxMjMuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxFRXQ9STVlLE41ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbS1zd2VhdCIsaWNvbjpbNTc2LDUxMixbMTI4NTE3LCJncmluLWJlYW0tc3dlYXQiXSwiZjU4MyIsIk01NDYuMi0uMWMxNC43IDE3LjggMjkuOCA0MC4xIDI5LjggNjQuMSAwIDM2LjQtMjcuNiA2NC02NCA2NHMtNjQtMjcuNi02NC02NGMwLTI0IDE1LjItNDYuMyAyOS44LTY0LjEgOC44LTEwLjcgMTguNS0yMC44IDI5LTMwIDMtMi42IDcuNC0yLjYgMTAuNCAwIDEwLjUgOS4xIDIwLjEgMTkuMyAyOSAzMHpNMjg4IDBjNDIuNSAwIDgyLjYgMTAuNCAxMTcuOCAyOC43LTMuNiAxMC45LTUuOCAyMi43LTUuOCAzNS4zIDAgNjIuOSA0OS4xIDExMiAxMTIgMTEyIDYuNCAwIDEyLjctLjUgMTguOC0xLjUgOC42IDI1LjYgMTMuMiA1MyAxMy4yIDgxLjUgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMzMiAzOTcuNCAzMiAyNTYgMTQ2LjYgMCAyODggMHpNNDE4LjcgMzA4LjlDMzc5LjUgMzIxLjEgMzM1LjEgMzI4IDI4OCAzMjhzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSAyMi40IDYxLjMgODEuMyAxMDUuMSAxNTAuMyAxMDUuMXMxMjcuOS00My44IDE1MC4zLTEwNS4xYzQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMXpNMjA4IDE4MGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6bTEzMiAyOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHoiXX0sSUV0PU41ZSxSNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWhhbGYtc3Ryb2tlIixpY29uOls1MTIsNTEyLFs5NjgwLCJhZGp1c3QiXSwiZjA0MiIsIk00NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkybDAgMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkyek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxORXQ9UjVlLFJFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktdG8tcGVyc29uIixpY29uOls1MTIsNTEyLFtdLCJlNTRjIiwiTTcxIDEyLjVjLTguNiAxLTE1IDguMi0xNSAxNi44IDAgOS4zIDcuNSAxNi44IDE2LjcgMTYuOWwxMTEuNCAwYzguOC0uMSAxNS45LTcuMiAxNS45LTE2TDIwMCAxNmMwLTkuNS04LjMtMTctMTcuOC0xNS45TDcxIDEyLjV6TTE4OS41IDc4LjFsLTEyMi45IDBjLTEuNiA1LjctMi41IDExLjctMi41IDE3LjkgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTYuMi0uOS0xMi4yLTIuNS0xNy45ek0zMiAyNTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxLjggMCAzLjUtLjEgNS4yLS40TDUzIDIwOC42QzQwLjEgMjIwLjMgMzIgMjM3LjIgMzIgMjU2em0xOTAuMiA0Mi41YzEuMS0zLjMgMS44LTYuOCAxLjgtMTAuNWwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zLjcgMC03LjQgLjMtMTAuOSAuOUwyMjIuMiAyOTguNXpNMzg0IDE2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTIxNS44IDQ1MC4xYzUuMi00LjYgOC4yLTExLjEgOC4yLTE4LjFzLTMtMTMuNS04LjItMTguMWwtNjQtNTZjLTcuMS02LjItMTcuMS03LjctMjUuNy0zLjhTMTEyIDM2Ni42IDExMiAzNzZsMCAzMi04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDg4IDAgMCAzMmMwIDkuNCA1LjUgMTggMTQuMSAyMS45czE4LjYgMi40IDI1LjctMy44bDY0LTU2ek0yODggNDMxLjljMCA2LjkgMyAxMy41IDguMSAxOC4xbDY0IDU2LjRjNy4xIDYuMiAxNy4xIDcuOCAyNS43IDMuOVM0MDAgNDk3LjggNDAwIDQ4OC40bDAtMzIuNCA4OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwIDAtMzJjMC05LjQtNS41LTE4LTE0LjEtMjEuOXMtMTguNi0yLjQtMjUuNyAzLjhsLTY0IDU2Yy01LjIgNC41LTguMiAxMS4xLTguMiAxOHoiXX0sT0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWNvbHVtbi1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNjc4IiwiTTI1NiAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem0yNTYtNzljLTQ2LjcgNS44LTg1LjYgMzYuOC0xMDIuNyA3OWwtMjUuMyAwIDAgOTAuOGMtMTAuMSAxNS4yLTE2IDMzLjQtMTYgNTMuMWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTI4IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OXpNMTI4IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDM2OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sRkV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZpZWxkLXVuIixpY29uOls2NDAsNTEyLFtdLCJlNThlIiwiTTk2IDMyQzYwLjcgMzIgMzIgNjAuNyAzMiA5NmwwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDAgNDhjMCAyMS4xIDEzLjcgMzkuMSAzMi42IDQ1LjUtLjQgMy40LS42IDctLjYgMTAuNSAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE0NC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bC40IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjQuNyAwLTEuNy00LjItNDMuOC0xMDYuM2MtMTIuMy0zMC00MS42LTQ5LjUtNzQtNDkuNWwtNDAuNCAwQzM2NC40IDQ0LjkgMzQzLjcgMzIgMzIwIDMyTDk2IDMyek0zODQgMjI0bDAtOTYgMzEuOSAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45bDM1LjQgODYuMS04Mi4xIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yODAgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjU2LjYgMTMyLjlsMjcuNCA0MSAwLTI5LjljMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDguOC01LjggMTYuNi0xNC4yIDE5LjFzLTE3LjUtLjctMjIuNC04bC0yNy40LTQxIDAgMjkuOWMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC05NmMwLTguOCA1LjgtMTYuNiAxNC4yLTE5LjFzMTcuNSAuNyAyMi40IDh6TTEzMiAxNDRsMCA2NGMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtNjRjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA2NGMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxPNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvY2siLGljb246WzUxMiw1MTIsWzEyODMzOSwiY2xvY2stZm91ciJdLCJmMDE3IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnpNMjMyIDEyMGwwIDEzNmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMiAyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxCRXQ9TzVlLEhFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rIixpY29uOls0NDgsNTEyLFsxMjgyMTJdLCJmMDJkIiwiTTM4NCA1MTJMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHpNOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6bTMyLTIzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNCA3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LEY1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLXdpbmsiLGljb246WzUxMiw1MTIsWyJsYXVnaC13aW5rIl0sImY1OWMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0scUV0PUY1ZSxWRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbWVhdGJhbGwiLGljb246WzUxMiw1MTIsW10sImY3M2IiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwyNi45IDBjMy41LTEyLjEgMTAuMS0yMy4zIDE5LjItMzIuNGwxLjQtMS40YzE1LTE1IDM1LjMtMjIuOSA1Ni4xLTIyLjIgMTQuMi0xNS4xIDM0LjItMjMuOSA1NS40LTIzLjlsMiAwYzIxLjEgMCA0MS4xIDguOCA1NS40IDIzLjkgMjAuOC0uNiA0MS4xIDcuMyA1Ni4xIDIyLjJsMS40IDEuNGM5LjIgOS4yIDE1LjcgMjAuNCAxOS4yIDMyLjRsMjYuOSAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE1Ni41IDQyNC4zYzkuNSA2LjMgMTQuMiAxNy43IDExLjkgMjguOC0xLjggOS4yIDEgMTguNyA3LjcgMjUuM2wxLjQgMS40YzYuNiA2LjYgMTYuMSA5LjUgMjUuMyA3LjcgMTEuMS0yLjIgMjIuNSAyLjUgMjguOCAxMS45IDUuMiA3LjggMTQgMTIuNSAyMy4zIDEyLjVsMiAwYzkuNCAwIDE4LjEtNC43IDIzLjMtMTIuNSA2LjMtOS41IDE3LjctMTQuMiAyOC44LTExLjkgOS4yIDEuOCAxOC43LTEgMjUuMy03LjdsMS40LTEuNGM2LjYtNi42IDkuNS0xNi4xIDcuNy0yNS4zLTIuMi0xMS4xIDIuNS0yMi41IDExLjktMjguOCA3LjgtNS4yIDEyLjUtMTQgMTIuNS0yMy4zbDAtMmMwLTkuNC00LjctMTguMS0xMi41LTIzLjMtOS41LTYuMy0xNC4yLTE3LjctMTEuOS0yOC44IDEuOC05LjItMS0xOC43LTcuNy0yNS4zbC0xLjQtMS40Yy02LjYtNi42LTE2LjEtOS41LTI1LjMtNy43LTExLjEgMi4yLTIyLjUtMi41LTI4LjgtMTEuOS01LjItNy44LTE0LTEyLjUtMjMuMy0xMi41bC0yIDBjLTkuNCAwLTE4LjEgNC43LTIzLjMgMTIuNS02LjMgOS41LTE3LjcgMTQuMi0yOC44IDExLjktOS4yLTEuOC0xOC43IDEtMjUuMyA3LjdsLTEuNCAxLjRjLTYuNiA2LjYtOS41IDE2LjEtNy43IDI1LjMgMi4yIDExLjEtMi41IDIyLjUtMTEuOSAyOC44LTcuOCA1LjItMTIuNSAxNC0xMi41IDIzLjNsMCAyYzAgOS40IDQuNyAxOC4xIDEyLjUgMjMuM3pNNDggNDQ4YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDE2IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxCNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYXJlYSIsaWNvbjpbNTEyLDUxMixbImFyZWEtY2hhcnQiXSwiZjFmZSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0yNDAgOTZjNi43IDAgMTMuMSAyLjggMTcuNyA3LjhMMzI4LjggMTgxLjMgMzc1IDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0zMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMTJjMC02IDIuMy0xMS44IDYuMy0xNi4ybDg4LTk2YzQuNS01IDExLTcuOCAxNy43LTcuOHoiXX0sakV0PUI1ZSxVRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwaWFoLXNpZ24iLGljb246WzUxMiw1MTIsW10sImUyM2QiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYwem0yNTYtMzJsODAgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NjEuOSA0NDggNDAwIDQ0OGwtNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA5NiA0OCAweiJdfSxXRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC13aWR0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNSIsIk00MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxMjggMCAwIDE2MC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMTYwIDEyOCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDB6bTc4LjYgNDA2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDIyOS41IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMjI5LjUgMCA5LjQtOS40eiJdfSxHRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2F0ZWxsaXRlIixpY29uOls1MTIsNTEyLFsxMjg3NTJdLCJmN2JmIiwiTTE5OSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDg5LjQgODkuNCA1NS01NWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0OCA0OGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTUgNTUgODkuNCA4OS40YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC05NiA5NmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTg5LjQtODkuNC0xNS41IDE1LjVjMTEuNCAyNC42IDE3LjggNTIgMTcuOCA4MC45IDAgMzEuNy03LjcgNjEuNS0yMS4yIDg3LjgtNC43IDktMTYuNyAxMC4zLTIzLjggMy4xbC05Ni4zLTk2LjMtNjAgNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDYwLTYwLTk2LjMtOTYuM2MtNy4yLTcuMi01LjktMTkuMiAzLjEtMjMuOCAyNi4zLTEzLjYgNTYuMi0yMS4yIDg3LjgtMjEuMiAyOC45IDAgNTYuMyA2LjQgODAuOSAxNy44TDE5Mi40IDIyNi4zIDEwMyAxMzdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDE5OSA3em0xNyA1MC45bC02Mi4xIDYyLjEgNzIuNCA3Mi40IDYyLjEtNjIuMS03Mi40LTcyLjR6TTM5MiAzNTguMWw2Mi4xLTYyLjEtNzIuNC03Mi40LTYyLjEgNjIuMSA3Mi40IDcyLjR6Il19LEg1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLW1pbnVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLW1pbnVzIl0sImYwMTAiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0xMzYgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sWUV0PUg1ZSxLRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJlNTMzIiwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFDMTcyLjcgMzU5IDE2MCAzMzcgMTYwIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHpNOTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTE2IDI0MGwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDc1LjNjMCAxLjIgMCAyLjUgLjEgMy43LTguNSA3LjYtMTkuNyAxMi4zLTMyLjEgMTIuM2wtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC01Ni42QzEyLjkgMzY0LjQgMCAzNDMuNyAwIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xek0zNjggNDY0bDAtNzUuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNTYuNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMTIuMyAwLTIzLjYtNC42LTMyLjEtMTIuMyAwLTEuMiAuMS0yLjUgLjEtMy43ek00MTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LFpFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYmluYXJ5IixpY29uOls0NDgsNTEyLFtdLCJlNjliIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNDQgNGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA0OGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwzMiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtNDhjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTMyIDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDh6bTE0MC00NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwek0xMzIgMjk2YzAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6bTk2IDI0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptNDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDhjMC0yLjIgMS44LTQgNC00eiJdfSxxNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFza3MtdGhlYXRlciIsaWNvbjpbNTc2LDUxMixbMTI3OTE3LCJ0aGVhdGVyLW1hc2tzIl0sImY2MzAiLCJNLTUgMTE4TDIzLjUgMjc5LjdjMTQgNzkuNSA3Ni4zIDE0MS44IDE1NS44IDE1NS44bDEyLjcgMi4yYy0xNi41LTI4LjYtMjcuMS02MC43LTMwLjYtOTQuNWwtMjQuMSA0LjNjLTkuNyAxLjctMTguOC01LjgtMTYuOS0xNS41IDQuOC0yNC43IDE5LjEtNDYuNiAzOS43LTYwLjlsMC03NC42Yy0xLjQgLjgtMyAxLjMtNC43IDEuNmwtNjMgMTEuMWMtOC43IDEuNS0xNy4zLTQuNC0xNS45LTEzLjEgMy4xLTE5LjYgMTguNC0zNiAzOS4xLTM5LjcgMTcuMi0zIDMzLjkgMy41IDQ0LjYgMTUuOGwwLTIyLjdjMC0yMi41IDYuOS01Mi40IDMyLjMtNzMuNCAyNi0yMS41IDY3LjctNDMuOSAxMjQuOS01NC4yLTMwLjUtMTYuMy04Ni4zLTMyLTE2My44LTE4LjQtODAuMyAxNC4yLTEyOCA1MC4xLTE1MC4xIDc2LjEtOSAxMC41LTEwLjggMjQuOS04LjQgMzguNXpNMjA4IDEzOC43bDAgMTc0LjhjMCA4MC43IDUwLjUgMTUyLjkgMTI2LjQgMTgwLjRMMzYyLjEgNTA0YzE0LjEgNS4xIDI5LjYgNS4xIDQzLjcgMEw0MzMuNiA0OTRDNTA5LjUgNDY2LjQgNTYwIDM5NC4zIDU2MCAzMTMuNWwwLTE3NC44YzAtNi45LTIuMS0xMy44LTctMTguNi0yMi42LTIyLjUtNzguMi01Ni0xNjktNTZzLTE0Ni40IDMzLjYtMTY5IDU2Yy00LjkgNC45LTcgMTEuNy03IDE4LjZ6bTY2LjEgMTg3LjFjLTEuNC03IDctMTEgMTIuNy02LjYgMjYuOSAyMC42IDYwLjYgMzIuOSA5Ny4yIDMyLjlzNzAuMi0xMi4zIDk3LjItMzIuOWM1LjctNC40IDE0LjEtLjQgMTIuNyA2LjYtMTAuMSA1MS40LTU1LjUgOTAuMy0xMDkuOSA5MC4zcy05OS44LTM4LjgtMTA5LjktOTAuM3ptLjUtMTAxLjVDMjgxLjIgMjA1LjUgMjk5IDE5MiAzMjAgMTkyczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1LjdsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuN3pNNDgwIDI0MGwtNjQgMGMtOC44IDAtMTYuMy03LjQtMTMuNC0xNS43IDYuNS0xOC44IDI0LjQtMzIuMyA0NS40LTMyLjNzMzguOSAxMy41IDQ1LjQgMzIuM2MyLjkgOC40LTQuNSAxNS43LTEzLjQgMTUuN3oiXX0sWEV0PXE1ZSxRRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjE3IiwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDQ1LjMgMGMyNy4xIDAgNTAuMyAxOS40IDU1LjEgNDZsLjQgMiA0MTIuNyAwYzIwIDAgMzUuMSAxOC4yIDMxLjQgMzcuOUw1MzcuOCAyMzUuOGMtNS43IDMwLjMtMzIuMSA1Mi4yLTYyLjkgNTIuMmwtMzAzLjYgMCA1LjEgMjguM2MyLjEgMTEuNCAxMiAxOS43IDIzLjYgMTkuN0w0NTYgMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNTUuOSAwYy0zNC44IDAtNjQuNi0yNC45LTcwLjgtNTkuMUw3Ny4yIDM4LjZjLS43LTMuOC00LTYuNi03LjktNi42TDI0IDMyQzEwLjcgMzIgMCAyMS4zIDAgOHpNMTYwIDQ2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0yMjQgMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0zMzYgNzguNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMy42LTMzLjYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy42IDAgMCAzMy42YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMy42IDMzLjYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzMuNiAwIDAtMzMuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sT2I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYXNsLWludGVycHJldGluZyIsaWNvbjpbNjQwLDUxMixbImFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIiwiYXNsLWludGVycHJldGluZyIsImhhbmRzLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIl0sImYyYTMiLCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN0wwIDI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw4MCAwIDAtLjNjMzUuMi0yLjcgNjUuNC0yMi44IDgyLjEtNTEuNyA4LjgtMTUuMyAzLjYtMzQuOS0xMS43LTQzLjdzLTM0LjktMy42LTQzLjcgMTEuN2MtNyAxMi0xOS45IDIwLTM0LjcgMjAtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGMxNC44IDAgMjcuNyA4IDM0LjcgMjAgOC44IDE1LjMgMjguNCAyMC41IDQzLjcgMTEuN3MyMC41LTI4LjQgMTEuNy00My43Yy0xMi44LTIyLjEtMzMuNi0zOS4xLTU4LjQtNDcuMWw4MC44LTIyYzE3LTQuNiAyNy4xLTIyLjIgMjIuNS0zOS4zcy0yMi4yLTI3LjEtMzkuMy0yMi41bC0xMDAuNyAyNy41IDgxLjYtNjhjMTMuNi0xMS4zIDE1LjQtMzEuNSA0LjEtNDUuMVMyNDkuMS0zLjkgMjM1LjUgNy40bC0xMDEuOSA4NC45IDIzLTQ2ek00ODMuNCA0NjUuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDg1LjktMTcxLjdjOC45LTE3LjggMTMuNS0zNy40IDEzLjUtNTcuMmwwLTkuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtODAgMCAwIC4zYy0zNS4yIDIuNy02NS40IDIyLjgtODIuMSA1MS43LTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMC04LjktMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43cy0yMC41IDI4LjQtMTEuNyA0My43YzEyLjggMjIuMSAzMy42IDM5LjEgNTguNCA0Ny4xbC04MC44IDIyYy0xNy4xIDQuNi0yNy4xIDIyLjItMjIuNSAzOS4zczIyLjIgMjcuMSAzOS4zIDIyLjVsMTAwLjctMjcuNS04MS42IDY4Yy0xMy42IDExLjMtMTUuNCAzMS41LTQuMSA0NS4xczMxLjUgMTUuNCA0NS4xIDQuMWwxMDEuOS04NC45LTIzIDQ2eiJdfSxKRXQ9T2IsZUl0PU9iLHRJdD1PYixhSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LXVubG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY5MSIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDhjLS4xLTE3LjYtMTQuNC0zMS45LTMyLTMxLjktMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA0NC4yIDAgNzkuOSAzNS44IDgwIDc5LjlsLTQ4IDB6Il19LHJJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2NrZXQiLGljb246WzUxMiw1MTIsW10sImYxMzUiLCJNMTI4IDMyMEwyNC41IDMyMGMtMjQuOSAwLTQwLjItMjcuMS0yNy40LTQ4LjVMNTAgMTgzLjNDNTguNyAxNjguOCA3NC4zIDE2MCA5MS4yIDE2MGw5NSAwYzc2LjEtMTI4LjkgMTg5LjYtMTM1LjQgMjY1LjUtMTI0LjMgMTIuOCAxLjkgMjIuOCAxMS45IDI0LjYgMjQuNiAxMS4xIDc1LjkgNC42IDE4OS40LTEyNC4zIDI2NS41bDAgOTVjMCAxNi45LTguOCAzMi41LTIzLjMgNDEuMmwtODguMiA1Mi45Yy0yMS4zIDEyLjgtNDguNS0yLjYtNDguNS0yNy40TDE5MiAzODRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLS4xIDB6TTQwMCAxNjBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sc0l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNocmltcCIsaWNvbjpbNTEyLDUxMixbMTI5NDI0XSwiZTQ0OCIsIk03MiAzMkMzMi4yIDMyIDAgNjQuMiAwIDEwNCAwIDE0MS45IDI5LjMgMTcyLjkgNjYuNCAxNzUuOCA3Ny42IDI1Ny4yIDE0Ny40IDMyMCAyMzIgMzIwbDU2IDAgMC0xOTItMjE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNzIgMzJ6TTIyNCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNzIgMCAwLTcyLjItNjQuMS0yMi40Yy0xMi41LTQuNC0yNi4yIDIuMi0zMC42IDE0LjdzMi4yIDI2LjIgMTQuNyAzMC42bDQuNSAxLjZDMjMzIDQzMy45IDIyNCA0NDMuOSAyMjQgNDU2em0xMjggMjMuM2MzNi40LTMuMyA2OS41LTE3LjYgOTYuMS0zOS42bC04Ni41LTM0LjZjLTMgMS44LTYuMiAzLjItOS42IDQuM2wwIDY5Ljl6TTQ3Mi42IDQxNWMyNC42LTMwLjMgMzkuNC02OC45IDM5LjQtMTExIDAtMTIuMy0xLjMtMjQuMy0zLjctMzUuOUwzODIuOCAzNTUuMWMuOCAzLjQgMS4yIDcgMS4yIDEwLjYgMCA0LjYtLjcgOS0xLjkgMTMuMUw0NzIuNiA0MTV6TTMzNiAxMjhsLTE2IDAgMCAxOTIgMTguMyAwYzkuOSAwIDE5LjEgMy4yIDI2LjYgOC41bDEzMy41LTkyLjRDNDcxLjggMTcyLjYgNDA5LjEgMTI4IDMzNiAxMjh6TTE2OCAxOTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sVjVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbmdlLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNzYsInRlbmdlIl0sImY3ZDciLCJNMCA1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA4MEMxMC43IDgwIDAgNjkuMyAwIDU2ek0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTYtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxpSXQ9VjVlLGo1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJjbGluaWMtbWVkaWNhbCJdLCJmN2YyIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yMjQgMjQ4bDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxvSXQ9ajVlLG5JdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1zbGFzaCIsaWNvbjpbNjQwLDUxMixbXSwiZTA3MyIsIk03My0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyOS43LS4zIDM5IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjEuOCAyMjRjNTYuNi0xIDEwMi4yLTQ3LjIgMTAyLjItMTA0IDAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTU2LjggMC0xMDMgNDUuNi0xMDQgMTAyLjJMNzMtMjQuOXpNNTEyIDI4OGMtMTcuMiAwLTMzLjcgMy40LTQ4LjcgOS42bDE3MCAxNzBjNC4yLTUuNCA2LjctMTIuMiA2LjctMTkuNmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4ek01OS45IDk3LjdjLTIxLjUgMTIuNS0zNS45IDM1LjctMzUuOSA2Mi4zIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDI2LjYgMCA0OS44LTE0LjQgNjIuMy0zNS45TDU5LjkgOTcuN3pNMjUwLjIgMjg4QzE5Ni44IDMxMy45IDE2MCAzNjguNyAxNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjUwLjIgMC0xOTItMTkyek0xMjggMjg4QzU3LjMgMjg4IDAgMzQ1LjMgMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjR6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxsSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXItcGxhbmUiLGljb246WzU3Niw1MTIsWzYxOTEzXSwiZjFkOCIsIk01MzYuNC0yNi4zYzkuOC0zLjUgMjAuNi0xIDI4IDYuM3M5LjggMTguMiA2LjMgMjhsLTE3OCA0OTYuOWMtNSAxMy45LTE4LjEgMjMuMS0zMi44IDIzLjEtMTQuMiAwLTI3LTguNi0zMi4zLTIxLjdsLTY0LjItMTU4Yy00LjUtMTEtMi41LTIzLjYgNS4yLTMyLjZsOTQuNS0xMTIuNGM1LjEtNi4xIDQuNy0xNS0uOS0yMC42cy0xNC42LTYtMjAuNi0uOUwyMjkuMiAyNzYuMWMtOS4xIDcuNi0yMS42IDkuNi0zMi42IDUuMkwzOC4xIDIxNi44Yy0xMy4xLTUuMy0yMS43LTE4LjEtMjEuNy0zMi4zIDAtMTQuNyA5LjItMjcuOCAyMy4xLTMyLjhsNDk2LjktMTc4eiJdfSxVNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1hdGxhcyIsaWNvbjpbNDQ4LDUxMixbImF0bGFzIl0sImY1NTgiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTMxMC42IDIwOEwyNzkgMjA4Yy0xLjQgMjMuMS02IDQ0LjItMTIuNiA2MS4yIDIyLjctMTIuNSAzOS40LTM0LjggNDQuMi02MS4yem0tMTczLjEgMGM0LjggMjYuNCAyMS41IDQ4LjcgNDQuMiA2MS4yLTYuNy0xNy0xMS4yLTM4LTEyLjYtNjEuMmwtMzEuNiAwem03Ni40IDU1YzQuNSA5LjYgOC4yIDEzLjggMTAuMiAxNS41IDItMS43IDUuNy01LjggMTAuMi0xNS41IDYuMi0xMy40IDExLjEtMzIuNSAxMi43LTU1bC00NS44IDBjMS42IDIyLjUgNi41IDQxLjYgMTIuNyA1NXptLTEyLjctODdsNDUuOCAwYy0xLjYtMjIuNS02LjUtNDEuNi0xMi43LTU1LTQuNS05LjYtOC4yLTEzLjgtMTAuMi0xNS41LTIgMS43LTUuNyA1LjgtMTAuMiAxNS41LTYuMiAxMy40LTExLjEgMzIuNS0xMi43IDU1em0xMDkuNSAwYy00LjgtMjYuNC0yMS41LTQ4LjctNDQuMi02MS4yIDYuNyAxNyAxMS4yIDM4IDEyLjYgNjEuMmwzMS42IDB6TTE2OSAxNzZjMS40LTIzLjEgNi00NC4yIDEyLjYtNjEuMi0yMi43IDEyLjUtMzkuNCAzNC44LTQ0LjIgNjEuMmwzMS42IDB6TTk2IDE5MmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAweiJdfSxjSXQ9VTVlLGRJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjZSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwLTYuNS0uM0MyNS4yIDQ3Ni40IDAgNDQ5LjEgMCA0MTZMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgMzIwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHptMTkyIDBsMCA5NiAxMjggMCAwLTk2LTEyOCAwek02NCAyNTZsMTI4IDAgMC05Ni0xMjggMCAwIDk2em0xOTIgMGwxMjggMCAwLTk2LTEyOCAwIDAgOTZ6Il19LHVJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydCIsaWNvbjpbNTEyLDUxMixbMTI4MTUzLDEyODE1NCwxMjgxNTUsMTI4MTU2LDEyODQyMCwxMjkyOTMsMTI5Mjk0LDEyOTUwNSw5ODI5LDEwMDg0LDYxNTc4XSwiZjAwNCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTEyLjItMTM5LjkgMjQyLjUtMjEyLjkgMjk4LjItMTIuNCA5LjQtMjcuNiAxNC4xLTQzLjEgMTQuMXMtMzAuOC00LjYtNDMuMS0xNC4xQzEzOS45IDQxMC4yIDAgMjc5LjkgMCAxNjcuN2wwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXoiXX0sVzVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXVwIixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtdXAiXSwiZjEzOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzc3IDI3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04Ny04Ny04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMzkgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDM3NyAyNzF6Il19LHBJdD1XNWUsRzVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktaGFsZiIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktMyJdLCJmMjQyIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sZkl0PUc1ZSxFZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA2NCAwIDAtNjQgMzczLjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6Il19LGhJdD1FZWUsbUl0PUVlZSxnSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZGN1ZmZzIixpY29uOls1NzYsNTEyLFtdLCJlNGY4IiwiTTMyMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6TTE5MiA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE1MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEgLjEgMS45IC4yIDIuOS03NC43IDI2LjMtMTI4LjIgOTcuNS0xMjguMiAxODEuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTY0IDMyMGExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem00NDggMGMwIDY2LjktNTEuMyAxMjEuOC0xMTYuNiAxMjcuNS0xNC4zIDIyLjgtMzIuNCA0My4xLTUzLjQgNTkuOSAxMy41IDMgMjcuNiA0LjYgNDIgNC42IDEwNiAwIDE5Mi04NiAxOTItMTkyIDAtODMuNy01My41LTE1NC44LTEyOC4yLTE4MS4xIC4xLS45IC4yLTEuOSAuMi0yLjlsMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTIuMyAwLTIyLjQgOS4yLTIzLjggMjEuMSAzMC4zIDE5LjIgNTYuMSA0NSA3NS4yIDc1LjQgNjUuNCA1LjggMTE2LjYgNjAuNiAxMTYuNiAxMjcuNXpNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC1jb3dib3ktc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMSIsIk02NDAgMzg4LjNjMCAxNi45LTcuMSAzMi4yLTE4LjQgNDMuMWwtMzUtMjMuMy0yOTIuNy0xOTUuMWMtMzYuMS0yNC4xLTc4LjYtMzYuOS0xMjItMzYuOWwtMy45IDBjLTIuNyAwLTUuNCAwLTggLjFsMjIuMi0xMDBjNS43LTI1LjggMjguNi00NC4xIDU1LTQ0LjEgMTIuMiAwIDI0LjEgNCAzMy44IDExLjNsNC43IDMuNWMyNi4zIDE5LjcgNjIuNCAxOS43IDg4LjYgMGw0LjctMy41YzkuOC03LjMgMjEuNi0xMS4zIDMzLjgtMTEuMyAyNi40IDAgNDkuMyAxOC4zIDU1IDQ0LjFsMzMgMTQ4LjVDNTc0LjUgMjMyLjMgNjQwIDMwMi42IDY0MCAzODguM3pNMTcxLjkgMjI0YzMzLjkgMCA2Ny4xIDEwIDk1LjQgMjguOUw1NjAgNDQ4IDU2IDQ0OGMtMzAuOSAwLTU2LTI1LjEtNTYtNTYgMC05Mi44IDc1LjItMTY4IDE2OC0xNjhsMy45IDB6Il19LHZJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmR1c3RyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjI3NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjc5LjhjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFsLTE1Ni42IDg0LjMgMC02My4yYzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xTDEyOCAyMTUuNCAxMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LHhJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5lcy1sZWFuaW5nIixpY29uOlszODQsNTEyLFtdLCJlNTFlIiwiTTE5MC40IDc0LjFjNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTEyOCAzODRjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMTI4LTM4NHptNzAuOS00MS43Yy0xNy40LTIuOS0zMy45IDguOS0zNi44IDI2LjNsLTY0IDM4NGMtMi45IDE3LjQgOC45IDMzLjkgMjYuMyAzNi44czMzLjktOC45IDM2LjgtMjYuM2w2NC0zODRjMi45LTE3LjQtOC45LTMzLjktMjYuMy0zNi44ek0zNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LHlJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXNzcG9ydCIsaWNvbjpbMzg0LDUxMixbXSwiZjVhYiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0yNzguNiAyMDhjLTQuOCAyNi40LTIxLjUgNDguNy00NC4yIDYxLjIgNi43LTE3IDExLjItMzggMTIuNi02MS4ybDMxLjYgMHptLTE3My4xIDBsMzEuNiAwYzEuNCAyMy4xIDYgNDQuMiAxMi42IDYxLjItMjIuNy0xMi41LTM5LjQtMzQuOC00NC4yLTYxLjJ6bTc2LjQgNTVjLTYuMi0xMy40LTExLjEtMzIuNS0xMi43LTU1bDQ1LjggMGMtMS42IDIyLjUtNi41IDQxLjYtMTIuNyA1NS00LjUgOS42LTguMiAxMy44LTEwLjIgMTUuNS0yLTEuNy01LjctNS44LTEwLjItMTUuNXptMC0xNDJjNC41LTkuNiA4LjItMTMuOCAxMC4yLTE1LjUgMiAxLjcgNS43IDUuOCAxMC4yIDE1LjUgNi4yIDEzLjQgMTEuMSAzMi41IDEyLjcgNTVsLTQ1LjggMGMxLjYtMjIuNSA2LjUtNDEuNiAxMi43LTU1em05Ni43IDU1TDI0NyAxNzZjLTEuNC0yMy4xLTYtNDQuMi0xMi42LTYxLjIgMjIuNyAxMi41IDM5LjQgMzQuOCA0NC4yIDYxLjJ6TTEzNyAxNzZsLTMxLjYgMGM0LjgtMjYuNCAyMS41LTQ4LjcgNDQuMi02MS4yLTYuNyAxNy0xMS4yIDM4LTEyLjYgNjEuMnptMTgzIDE2YTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6Il19LHdJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmZpbml0eSIsaWNvbjpbNjQwLDUxMixbODczNCw5ODU0XSwiZjUzNCIsIk0wIDI1NmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA1MC40IDAgOTcuOCAyMy43IDEyOCA2NGwzMiA0Mi43IDMyLTQyLjdjMzAuMi00MC4zIDc3LjYtNjQgMTI4LTY0IDg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzU2OC40IDQxNiA0ODAgNDE2Yy01MC40IDAtOTcuOC0yMy43LTEyOC02NGwtMzItNDIuNy0zMiA0Mi43Yy0zMC4yIDQwLjMtNzcuNiA2NC0xMjggNjQtODguNCAwLTE2MC03MS42LTE2MC0xNjB6bTI4MCAwbC00My4yLTU3LjZjLTE4LjEtMjQuMi00Ni42LTM4LjQtNzYuOC0zOC40LTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMzAuMiAwIDU4LjctMTQuMiA3Ni44LTM4LjRMMjgwIDI1NnptODAgMGw0My4yIDU3LjZjMTguMSAyNC4yIDQ2LjYgMzguNCA3Ni44IDM4LjQgNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTMwLjIgMC01OC43IDE0LjItNzYuOCAzOC40TDM2MCAyNTZ6Il19LE1JdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDQ4bC0yMjQgMCAwLTIyNCA0OCAwIDAtNjQtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC02NCAwIDAgNDh6bS02NC05NmwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LGtJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkIixpY29uOls1NzYsNTEyLFs5MTkzXSwiZjA0ZSIsIk0zNzEuNyA0My4xQzM2MC4xIDMyIDM0MyAyOC45IDMyOC4zIDM1LjJTMzA0IDU2IDMwNCA3MmwwIDEzNi4zLTE3Mi4zLTE2NS4xQzEyMC4xIDMyIDEwMyAyOC45IDg4LjMgMzUuMlM2NCA1NiA2NCA3MmwwIDM2OGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOUwzMDQgMzAzLjcgMzA0IDQ0MGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOWwxOTItMTg0YzcuOS03LjUgMTIuMy0xOCAxMi4zLTI4LjlzLTQuNS0yMS4zLTEyLjMtMjguOWwtMTkyLTE4NHoiXX0sU0l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im0iLGljb246WzQ0OCw1MTIsWzEwOV0sIjRkIiwiTTIyLjcgMzMuNGMxMy41LTQuMSAyOC4xIDEuMSAzNS45IDEyLjlMMjI0IDI5NC4zIDM4OS40IDQ2LjNjNy44LTExLjcgMjIuNC0xNyAzNS45LTEyLjlTNDQ4IDQ5LjkgNDQ4IDY0bDAgMzg0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc4LjMtMTMzLjQgMjAwLjFjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMnMtMjAuNy01LjMtMjYuNi0xNC4yTDY0IDE2OS43IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0OS45IDkuMiAzNy41IDIyLjcgMzMuNHoiXX0sekl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtc3Bpa2VzIixpY29uOls2NDAsNTEyLFtdLCJlNTY4IiwiTTY0IDExNi44YzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDYwNi44IDMwMi4yYzE0LjIgMjEuMy0xLjEgNDkuOC0yNi42IDQ5LjhMNjQgMzUyIDY0IDExNi44ek0zMiAzODRsNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxDSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4iLGljb246WzUxMiw1MTIsWzEyNzk1Nl0sImY2ZmMiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6Il19LF9JdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjQzOSIsIk0xNjggNTZsMCA0MC03OC4xIDBjLTE0LjMgMC0yNS45IDExLjYtMjUuOSAyNS45IDAgNCAuOSA4IDIuNyAxMS42bDMzLjQgNjYuOGMtMTEuNCAxLjgtMjAuMiAxMS43LTIwLjIgMjMuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNGw1LjYgMC0xMy42IDEzNi01Ni4yIDcwLjNjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDI0OC45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJMMjg4IDM4NCAyNzQuNCAyNDggMjgwIDI0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNCAwLTExLjktOC43LTIxLjktMjAuMi0yMy43bDMzLjQtNjYuOGMxLjgtMy42IDIuNy03LjYgMi43LTExLjYgMC0xNC4zLTExLjYtMjUuOS0yNS45LTI1LjlsLTc4LjEgMCAwLTQwIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMjQ1LjMgOCAyMzIgOGwtMTYgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzE2OC0yMS4zIDE2OC04bDAgMTYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwek0zMjUuOCAyNzkuNmw4LjUgODUuNSA0Ny40IDU5LjIgNC4yIDUuN2M5LjIgMTMuNyAxNC4xIDI5LjkgMTQuMSA0Ni41IDAgMTIuNy0yLjggMjQuOC03LjkgMzUuNWw4My4xIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjggMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRsLTI1LjgtMzguNyAwLTY0IDEzLjMtMTMuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNi0zMiAwIDAtMTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDIyLjQtMTAuMiA0Mi40LTI2LjIgNTUuNnoiXX0sRmI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtdGhyZWUtcXVhcnRlcnMiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0zIiwidGhlcm1vbWV0ZXItMyIsInRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzIl0sImYyYzgiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1Ni43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sVEl0PUZiLExJdD1GYiwkSXQ9RmIsREl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImIiLGljb246WzMyMCw1MTIsWzk4XSwiNDIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0xNjAgMjI0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTY0IDI4OGwxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDAgMC0xMjh6Il19LEFJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtdmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNmMiLCJNMjUzLjQgMi45QzI0OS4yIDEgMjQ0LjcgMCAyNDAgMHMtOS4yIDEtMTMuNCAyLjlMMzguMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNTMuNCAyLjl6TTI0MCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMDggMjY0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sUEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpdGVjb2luLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDMiLCJNMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNTcuOS0zOC42IDExYy0xMi43IDMuNi0yMC4xIDE2LjktMTYuNSAyOS43czE2LjkgMjAuMSAyOS43IDE2LjVMNjQgMjcxLjggNjQgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTE2Mi41IDEzNC42LTM4LjVjMTIuNy0zLjYgMjAuMS0xNi45IDE2LjUtMjkuN3MtMTYuOS0yMC4xLTI5LjctMTYuNUwxMjggMjAzLjYgMTI4IDY0eiJdfSxFSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kNiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkMSIsIk0yMjQuNCA4LjNDMjQ0LTIuOCAyNjgtMi44IDI4Ny42IDguM2wxNzYgOTkuN2MyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAxOTcuNGMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE3NiA5OS43Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMGwtMTc2LTk5LjdDMjguNCA0MDUuNSAxNiAzODQuMiAxNiAzNjEuMmwwLTE5Ny40YzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN2wxNzYtOTkuN3pNMTAyLjYgMTU1LjZjLTguOC0zLjEtMTguOCAuMy0yMy44IDguNnMtMy4yIDE4LjcgMy42IDI1bDMuMiAyLjQgMTUwLjIgOTAuMiAwIDE0OC43YzAgMTEgOSAyMCAyMCAyMCAxMSAwIDIwLTkgMjAtMjBsMC0xNDguNyAxNTAuMy05MC4yYzkuNS01LjcgMTIuNi0xOCA2LjktMjcuNHMtMTgtMTIuNS0yNy40LTYuOWwtMTQ5LjcgODkuOC0xNDkuNy04OS44LTMuNy0xLjd6Il19LElJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzLXZlcnRpY2FsIixpY29uOlsxOTIsNTEyLFtdLCJmN2E1IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjR6bTEyOCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODR6Il19LFk1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnb2xmLWJhbGwtdGVlIixpY29uOlszODQsNTEyLFsiZ29sZi1iYWxsIl0sImY0NTAiLCJNMjk4LjUgMzg0LjFjMTIuMSAxLjIgMjEuNSAxMS41IDIxLjUgMjMuOXMtOS40IDIyLjYtMjEuNSAyMy45bC0yLjUgLjEtODAgMCAwIDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODgtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMi40IDkuNC0yMi42IDIxLjUtMjMuOWwyLjUtLjEgMjA4IDAgMi41IC4xek0xOTIgMGMxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDU3LjQtMjUuMiAxMDguOC02NS4xIDE0NEw2NS4xIDMzNkMyNS4yIDMwMC44IDAgMjQ5LjQgMCAxOTIgMCA4NiA4NiAwIDE5MiAwem0zMiAyNDBjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnptNjQtNjRjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnptLTgwLTE2Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6Il19LE5JdD1ZNWUsUkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24iLGljb246WzU3Niw1MTIsWzExMDQzXSwiZjMxMiIsIk0zMy41IDIyMC4zYy0xMi43IDIyLjItMTIuNyA0OS40IDAgNzEuNWw5Ni4yIDE2OC4xYzEyLjggMjIuNCAzNi43IDM2LjIgNjIuNSAzNi4ybDE5MS42IDBjMjUuOCAwIDQ5LjctMTMuOCA2Mi41LTM2LjJsOTYuMi0xNjguMWMxMi43LTIyLjIgMTIuNy00OS40IDAtNzEuNUw0NDYuMyA1Mi4yQzQzMy41IDI5LjggNDA5LjYgMTYgMzgzLjggMTZMMTkyLjIgMTZjLTI1LjggMC00OS43IDEzLjgtNjIuNSAzNi4yTDMzLjUgMjIwLjN6Il19LE9JdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItb3BlbiIsaWNvbjpbNTc2LDUxMixbMTI4MTk0LDEyODQ0OSw2MTcxN10sImYwN2MiLCJNNTYgMjI1LjZMMzIuNCAyOTYuMiAzMi40IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNGwxMTcuMyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMzY1LjQgMGMtNDEuMyAwLTc4IDI2LjQtOTEuMSA2NS42ek00NzcuOCA0NDhMOTkgNDQ4Yy0zMi44IDAtNTUuOS0zMi4xLTQ1LjUtNjMuMmw0OC0xNDRDMTA4IDIyMS4yIDEyNi40IDIwOCAxNDcgMjA4bDM3OC44IDBjMzIuOCAwIDU1LjkgMzIuMSA0NS41IDYzLjJsLTQ4IDE0NGMtNi41IDE5LjYtMjQuOSAzMi44LTQ1LjUgMzIuOHoiXX0sRkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImthYWJhIixpY29uOls1MTIsNTEyLFsxMjgzMzFdLCJmNjZiIiwiTTI1NiA1MS4zTDkyLjggMTEyLjQgMjQ3LjUgMTcxLjFjNS41IDIuMSAxMS41IDIuMSAxNyAwTDQxOS4yIDExMi40IDI1NiA1MS4zek0wIDEyOS4zYzAtMjAgMTIuNC0zNy45IDMxLjEtNDQuOWwyMDgtNzhjMTAuOS00LjEgMjIuOC00LjEgMzMuNyAwbDIwOCA3OGMxOC43IDcgMzEuMSAyNC45IDMxLjEgNDQuOWwwIDM2LTI1My4yIDk2Yy0xLjggLjctMy44IC43LTUuNyAwbC0yNTMuMi05NiAwLTM2em0wIDE0MGwwLTUyLjcgMjM2LjEgODkuNmMxMi44IDQuOSAyNi45IDQuOSAzOS43IDBsMjM2LjEtODkuNiAwIDUyLjctMTI4IDQ4LjYgMCA1MS4zIDEyOC00OC42IDAgNjIuMmMwIDIwLTEyLjQgMzcuOS0zMS4xIDQ0LjlsLTIwOCA3OGMtMTAuOSA0LjEtMjIuOCA0LjEtMzMuNyAwbC0yMDgtNzhDMTIuNCA0MjAuNyAwIDQwMi43IDAgMzgyLjdsMC02Mi4yIDEyOCA0OC42IDAtNTEuMy0xMjgtNDguNnpNMjM2LjEgNDEwLjFjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDYwLjEtMjIuOCAwLTUxLjMtNzcuMiAyOS4zYy0xLjggLjctMy44IC43LTUuNyAwbC03Ny4yLTI5LjMgMCA1MS4zIDYwLjEgMjIuOHoiXX0sQkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZyIsaWNvbjpbNTc2LDUxMixbXSwiZjRiZCIsIk02Ni43IDM4NGw0Mi41LTQyLjVjMjQtMjQgNTYuNi0zNy41IDkwLjUtMzcuNUwzNTIgMzA0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMi42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjVzOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNC43IDB6Il19LEhJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtcmlnaHQiLGljb246WzE5Miw1MTIsW10sImU4MWMiLCJNNjQgNDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDB6Il19LHFJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3R0bGUtZHJvcGxldCIsaWNvbjpbMzIwLDUxMixbXSwiZTRjNCIsIk04MCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxMDMuM2M2NC45IDIwLjQgMTEyIDgxIDExMiAxNTIuN2wwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjg4YzAtNzEuNiA0Ny4xLTEzMi4zIDExMi0xNTIuN0wxMTIgMzJDOTQuMyAzMiA4MCAxNy43IDgwIDB6bTgwIDQxNmMzNS4zIDAgNjQtMzIuNCA2NC02NCAwLTIxLjItMjguOS02NC41LTQ3LjktOTAuNi04LjEtMTEuMS0yNC4yLTExLjEtMzIuMyAwLTE5IDI2LjEtNDcuOSA2OS40LTQ3LjkgOTAuNiAwIDMxLjYgMjguNyA2NCA2NCA2NHoiXX0sVkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxqSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1yaWdodCIsaWNvbjpbMzIwLDUxMixbOTAwMl0sImYwNTQiLCJNMzExLjEgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0My4yIDI1NiA3My45IDg2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MnoiXX0sVUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVnZyIsaWNvbjpbMzg0LDUxMixbMTI5MzcwXSwiZjdmYiIsIk0xOTIgNDk2Qzg2IDQ5NiAwIDM5NCAwIDI4OCAwIDE3NiA2NCAxNiAxOTIgMTZTMzg0IDE3NiAzODQgMjg4YzAgMTA2LTg2IDIwOC0xOTIgMjA4ek0xNTQuOCAxMzRjNi41LTYgNy0xNi4xIDEtMjIuNnMtMTYuMS03LTIyLjYtMWMtMjMuOSAyMS44LTQxLjEgNTIuNy01Mi4zIDg0LjItMTEuMiAzMS42LTE2LjkgNjUuMS0xNi45IDkzLjUgMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTI0LjUgNS01NC40IDE1LjEtODIuOCAxMC4xLTI4LjUgMjUtNTQuMSA0My43LTcxLjJ6Il19LEs1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1kb21lIixpY29uOls1MTIsNTEyLFsibGFuZG1hcmstYWx0Il0sImY3NTIiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgLjkgMCAxLjggLjEgMi42LTgwLjUgMTMuNC0xNDQgNzYuOS0xNTcuNSAxNTcuNEw2NCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAxNjAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNDQ4IDQxNiA0NDggMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yLjcgMGMtMTMuNS04MC40LTc3LTE0My45LTE1Ny41LTE1Ny40IC4xLS45IC4xLTEuNyAuMS0yLjYgMC0xNy43LTE0LjMtMzItMzItMzJ6bTgwIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6TTIyNCA0MTZsMC0xNjAgNjQgMCAwIDE2MC02NCAwek0xMTIgMjU2bDY0IDAgMCAxNjAtNjQgMCAwLTE2MHoiXX0sV0l0PUs1ZSxHSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid29ybSIsaWNvbjpbNDQ4LDUxMixbXSwiZTU5OSIsIk0yMjQgOTZjMC01MyA0My05NiA5Ni05NmwzOC40IDBDNDA3LjkgMCA0NDggNDAuMSA0NDggODkuNkw0NDggMzc2YzAgNzUuMS02MC45IDEzNi0xMzYgMTM2UzE3NiA0NTEuMSAxNzYgMzc2bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBsMCAxNjhjMCAyNi41LTIxLjUgNDgtNDggNDhTMCA0OTAuNSAwIDQ2NEwwIDI5NmMwLTc1LjEgNjAuOS0xMzYgMTM2LTEzNnMxMzYgNjAuOSAxMzYgMTM2bDAgODBjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTE4NC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2em0xNDQtOGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxZSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1pbmp1cmVkIixpY29uOls0NDgsNTEyLFtdLCJmNzI4IiwiTTI0Mi43IDgwTDMzNCA4MGMtMTAuNy0yNC42LTI5LjUtNDQuOS01Mi45LTU3LjZMMjQyLjcgODB6bS0uOS03MC43QzIzNiA4LjQgMjMwIDggMjI0IDggMTc0LjggOCAxMzIuNSAzNy42IDExNCA4MGw4MC42IDAgNDcuMS03MC43ek0yMjQgMjQ4YzY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbC0yNDAgMGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMHpNOTguNyAzNDEuOEM0OS4zIDM3MC4yIDE2IDQyMy41IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDE1MSAwLTk1LjgtMTcwLjJ6bTQ1LjEtMTcuN2w0Mi43IDc1LjkgODUuNSAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTEuNC0yLjQgMjIuMi02LjcgMzJsNTkuMiAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtOTAuOS03My43LTE2NC42LTE2NC42LTE2NC42bC04Ni45IDBjLTEyLjYgMC0yNC45IDEuNC0zNi43IDQuMXpNMjEzLjUgNDQ4bDM2IDY0IDIyLjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTguNSAweiJdfSxLSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyaWtldGhyb3VnaCIsaWNvbjpbNTEyLDUxMixbXSwiZjBjYyIsIk05NiAxNTcuNUM5NiA4OC4yIDE1Mi4yIDMyIDIyMS41IDMyTDM2OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwyMjEuNSA5NmMtMzQgMC02MS41IDI3LjUtNjEuNSA2MS41IDAgMzEgMjMuMSA1Ny4yIDUzLjkgNjFsNDQuMSA1LjUgMjIyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgzLjEgMEMxMDMgMjA0LjYgOTYgMTgxLjggOTYgMTU3LjV6TTM0OS4yIDMzNmw2NS41IDBjLjkgNi4xIDEuNCAxMi4yIDEuNCAxOC41IDAgNjkuMy01Ni4yIDEyNS41LTEyNS41IDEyNS41TDE0NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC02LjQtMS0xMi43LTIuOC0xOC41eiJdfSxaSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxvZyIsaWNvbjpbNTEyLDUxMixbXSwiZjc4MSIsIk0yMjQgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTQ1LjggMCAyNjQgMTE4LjIgMjY0IDI2NCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExOS4zLTk2LjctMjE2LTIxNi0yMTYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTgwIDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI1NS41IDUxMiAxNzYgNTEyIDMyIDQ0Ny41IDMyIDM2OGwwLTIyNGMwLTI2LjUgMjEuNS00OCA0OC00OHptMTY4IDBjOTIuOCAwIDE2OCA3NS4yIDE2OCAxNjggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC02Ni4zLTUzLjctMTIwLTEyMC0xMjAtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3B3YXRjaC0yMCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA2ZiIsIk0xNjguNSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAyNS4zYy0xMDggMTEuOS0xOTIgMTAzLjUtMTkyIDIxNC43IDAgMTE5LjMgOTYuNyAyMTYgMjE2IDIxNnMyMTYtOTYuNyAyMTYtMjE2YzAtMzkuOC0xMC44LTc3LjEtMjkuNi0xMDkuMmwyOC4yLTI4LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTIzLjQgMjMuNGMtMzIuOS0zMC4yLTc1LjItNTAuMy0xMjItNTUuNWwwLTI1LjMgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bS02MCAyNDBjMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwwIDMuOGMwIDExLjctMy4yIDIzLjEtOS4zIDMzbC00My44IDcxLjIgMzMuMSAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNTcuOCAwYy0xNC41IDAtMjYuMi0xMS43LTI2LjItMjYuMiAwLTQuOSAxLjMtOS42IDMuOS0xMy44bDU2LjctOTIuMWMyLjItMy42IDMuNC03LjggMy40LTEyLjFsMC0zLjhjMC02LjYtNS40LTEyLTEyLTEycy0xMiA1LjQtMTIgMTJjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwem0xODAtNTJjMjguNyAwIDUyIDIzLjMgNTIgNTJsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMjguNyAyMy4zLTUyIDUyLTUyem0tMTIgNTJsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC02LjYtNS40LTEyLTEyLTEycy0xMiA1LjQtMTIgMTJ6Il19LFFJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1waWNrdXAiLGljb246WzY0MCw1MTIsWzEyODc2M10sImY2M2MiLCJNMzYzLjggOTZsNTcuNiA5Ni0xMzMuNCAwIDAtOTYgNzUuOCAwek00OTYgMTkyTDQxOC42IDYzLjFDNDA3LjEgNDMuOCAzODYuMiAzMiAzNjMuOCAzMkwyNTYgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4LTE0NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyLjQgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMTYwLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMzIuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTExMiAzOTJhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMzc2LTQwYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sWjVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlZWRsaW5nIixpY29uOls1MTIsNTEyLFsxMjc3OTMsInNwcm91dCJdLCJmNGQ4IiwiTTUxMiAzMkM1MTIgMTQwLjEgNDM1LjQgMjMwLjMgMzMzLjYgMjUxLjQgMzI1LjcgMTkzLjMgMjk5LjYgMTQxIDI2MS4xIDEwMC41IDMwMS4yIDQwIDM2OS45IDAgNDQ4IDBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzMiAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBDMTAwLjMgMzIwIDAgMjE5LjcgMCA5NnoiXX0sSkl0PVo1ZSxYNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhbnNnZW5kZXIiLGljb246WzU3Niw1MTIsWzk4OTUsInRyYW5zZ2VuZGVyLWFsdCJdLCJmMjI1IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5Ny45IDMyIDEzNiA3MC4xIDE1MSA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTE1IDE1IDE0LjIgMTQuMmMyNy45LTIzLjggNjQuMi0zOC4yIDEwMy44LTM4LjIgMzYuNyAwIDcwLjYgMTIuNCA5Ny42IDMzLjJMNDY2LjcgMzIgNDQ4IDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctODQuNCA4NC40YzEzIDIzLjEgMjAuNCA0OS45IDIwLjQgNzguMyAwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDM1LjIgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzUuMmMtNzMtMTQuOC0xMjgtNzkuNC0xMjgtMTU2LjggMC0zMS40IDktNjAuNyAyNC43LTg1LjRsLTE2LjctMTYuNy0xNSAxNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwxNS0xNS0zOC4xLTM4LjEgMCAzMC4xYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMTEzLjcgMCA5NkwwIDBDMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMHpNMjg4IDMzNmE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnoiXX0sZU50PVg1ZSx0TnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMzA0LjEgNy42YzAtMTEuMS03LjYtMjAuNy0xOC40LTIzLjNzLTIxLjkgMi41LTI3IDEyLjRMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyOTEgNDE2LjFjOC00LjEgMTMuMS0xMi40IDEzLjEtMjEuNGwwLTM4Ny4xeiJdfSxRNWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvdG8tZmlsbSIsaWNvbjpbNjQwLDUxMixbInBob3RvLXZpZGVvIl0sImY4N2MiLCJNMTkyIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDU3NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjR6TTMyMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNTYuNSAxMS41QzQ3Mi4xIDEwMC40IDQ2NC40IDk2IDQ1NiA5NnMtMTYuMSA0LjQtMjAuNSAxMS41bC01NCA4OC4zLTE3LjktMjUuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzI3OS4xIDI4OCAyODggMjg4bDI1NiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6TTE0NCAxMjhsMCAxNjBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMTkyIDAgMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDgwIDB6TTUyIDE5NmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwem0wIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LGFOdD1RNWUsck50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpY3R1cmUtaW4tcGljdHVyZSIsaWNvbjpbNTEyLDUxMixbXSwiZTgwYiIsIk00NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMTItNjQgMCAwLTExMi0zODQgMCAwIDMyMCAxNDQgMCAwIDY0LTE0NCAwLTYuNS0uM2MtMzAuMS0zLjEtNTQuMS0yNy01Ny4xLTU3LjFMMCA0MTYgMCA5NkMwIDYyLjkgMjUuMiAzNS42IDU3LjUgMzIuM0w2NCAzMiA0NDggMzJ6bTE2IDIyNGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTI4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2MCAweiJdfSxzTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHVtcC1tZWRpY2FsIixpY29uOlszMjAsNTEyLFtdLCJlMDZhIiwiTTk2IDBsMCA4MCAxMjggMCAwLTI0IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgOCAyOTYgOGwtNzIgMCAwLThjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBDMTEwLjMtMzIgOTYtMTcuNyA5NiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHptNjQgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxpTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZSIsaWNvbjpbNDQ4LDUxMixbMTI4MjkzXSwiZjA2ZCIsIk0xNjAuNS0yNi40YzkuMy03LjggMjMtNy41IDMxLjkgLjkgMTIuMyAxMS42IDIzLjMgMjQuNCAzMy45IDM3LjQgMTMuNSAxNi41IDI5LjcgMzguMyA0NS4zIDY0LjIgNS4yLTYuOCAxMC0xMi44IDE0LjItMTcuOSAxLjEtMS4zIDIuMi0yLjcgMy4zLTQuMSA3LjktOS44IDE3LjctMjIuMSAzMC44LTIyLjEgMTMuNCAwIDIyLjggMTEuOSAzMC44IDIyLjEgMS4zIDEuNyAyLjYgMy4zIDMuOSA0LjggMTAuMyAxMi40IDI0IDMwLjMgMzcuNyA1Mi40IDI3LjIgNDMuOSA1NS42IDEwNi40IDU1LjYgMTc2LjYgMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNFMwIDQxMS43IDAgMjg4YzAtOTEuMSA0MS4xLTE3MCA4MC41LTIyNSAxOS45LTI3LjcgMzkuNy00OS45IDU0LjYtNjUuMSA4LjItOC40IDE2LjUtMTYuNyAyNS41LTI0LjJ6TTIyNS43IDQxNmMyNS4zIDAgNDcuNy03IDY4LjgtMjEgNDIuMS0yOS40IDUzLjQtODguMiAyOC4xLTEzNC40LTQuNS05LTE2LTkuNi0yMi41LTJsLTI1LjIgMjkuM2MtNi42IDcuNi0xOC41IDcuNC0yNC43LS41LTE3LjMtMjIuMS00OS4xLTYyLjQtNjUuMy04My01LjQtNi45LTE1LjItOC0yMS41LTEuOS0xOC4zIDE3LjgtNTEuNSA1Ni44LTUxLjUgMTA0LjMgMCA2OC42IDUwLjYgMTA5LjIgMTEzLjcgMTA5LjJ6Il19LEo1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLXBsdXMiLGljb246WzUxMiw1MTIsWyJzZWFyY2gtcGx1cyJdLCJmMDBlIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxvTnQ9SjVlLG5OdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzayIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjMyIsIk0yODggMEwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMkwxMjggMjE1LjUgNy41IDQyNi4zQzIuNiA0MzUgMCA0NDQuNyAwIDQ1NC43IDAgNDg2LjQgMjUuNiA1MTIgNTcuMyA1MTJsMzMzLjQgMGMzMS42IDAgNTcuMy0yNS42IDU3LjMtNTcuMyAwLTEwLTIuNi0xOS44LTcuNS0yOC40TDMyMCAyMTUuNSAzMjAgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzM3LjcgMCAzMjAgMEwyODggMHpNMTkyIDIxNS41bDAtMTUxLjUgNjQgMCAwIDE1MS41YzAgMTEuMSAyLjkgMjIuMSA4LjQgMzEuOGw0MS42IDcyLjctMTY0IDAgNDEuNi03Mi43YzUuNS05LjcgOC40LTIwLjYgOC40LTMxLjh6Il19LGxOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOCIsIk00NDggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMTkyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxlaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FibGUtY2FyIixpY29uOls1MTIsNTEyLFsxMjg2NzMsNTc1NTEsInRyYW0iXSwiZjdkYSIsIk0yODgtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNjAgMjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIgMjg4YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEzNiAwIDAtOTYuMi0xOTMuNCA1NS4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMjI0LTY0IDAgMCAyMjQtNjRjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMjA2LjYgNTkgMCAxMDkuOSAxMzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwem04MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNTYgMCAwLTk2LTU2IDB6bTE4NCA5NmwwLTk2LTgwIDAgMCA5NiA4MCAwem00OCAwbDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC01NiAwIDAgOTZ6Il19LGNOdD1laGUsdGhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiZmlyc3QtYWlkIl0sImY0NzkiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYgMCAwLTM4NC0xNiAwem02NCAwbDAgMzg0IDI1NiAwIDAtMzg0LTI1NiAwek00NDggNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNiAwIDAgMzg0IDE2IDB6TTIyNCAxODRjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LGROdD10aGUsdU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAtbGluZXMiLGljb246WzQ0OCw1MTIsW10sImY3YTQiLCJNMzIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI4OHptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYweiJdfSxhaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVyZ2VyIixpY29uOls1MTIsNTEyLFsiaGFtYnVyZ2VyIl0sImY4MDUiLCJNNDggMzg0Yy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMjg4IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC04LjgtNy4yLTE2LTE2LTE2TDQ4IDM4NHpNMzIgMjAyYzAgMTIuMiA5LjkgMjIgMjIgMjJMNDU4IDIyNGMxMi4yIDAgMjItOS45IDIyLTIyIDAtMTcuMi0yLjYtMzQuNC0xMC44LTQ5LjUtMjIuMi00MC44LTgyLjMtMTIwLjUtMjEzLjItMTIwLjVTNjUgMTExLjYgNDIuOCAxNTIuNUMzNC42IDE2Ny42IDMyIDE4NC44IDMyIDIwMnpNMCAzMDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjcyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjU2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMTIwIDEyOGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNDgtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxwTnQ9YWhlLGZOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93bWFuIixpY29uOls2NDAsNTEyLFs5NzMxLDk5MjRdLCJmN2QwIiwiTTQwMyAyMTEuN2MzMi4yLTI0LjkgNTMtNjMuOSA1My0xMDcuNyAwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxODQgMjguOSAxODQgMTA0YzAgNDMuOSAyMC44IDgyLjkgNTMgMTA3LjctMzIuMiAxNi4zLTU5IDQxLjgtNzYuOCA3My4xTDExMiAyNjQuMiAxMTIgMjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTkuNi0yMi41LTkuN2MtMTIuMi01LjItMjYuMyAuNC0zMS41IDEyLjZzLjQgMjYuMyAxMi42IDMxLjVjMzYuMSAxNS41IDc1LjkgMzIuNSAxMTkuNCA1MS4yLTMuOSAxNC45LTYgMzAuNi02IDQ2LjcgMCA3MCAzOS4xIDEzMC44IDk2LjYgMTYxLjkgNy45IDQuMyAxNi45IDYuMSAyNS45IDYuMWwxMjMgMGM5IDAgMTgtMS44IDI1LjktNi4xIDU3LjUtMzEuMSA5Ni42LTkyIDk2LjYtMTYxLjkgMC0xNi4yLTIuMS0zMS44LTYtNDYuNyA0My41LTE4LjcgODMuNC0zNS43IDExOS40LTUxLjIgMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNmwtMjIuNSA5LjcgMC0xOS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAuMi00OC4yIDIwLjZjLTE3LjktMzEuMy00NC42LTU2LjgtNzYuOC03My4xek0yOTYgNDE2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0LTEyMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI0OCA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zNjggNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yOTIuMiAxNTkuM2MtMi43LTQuOC00LjItMTAuMi00LjItMTUuNyAwLTE3LjUgMTQuMi0zMS42IDMxLjYtMzEuNmwuOCAwYzE3LjUgMCAzMS42IDE0LjIgMzEuNiAzMS42IDAgNS41LTEuNCAxMC45LTQuMiAxNS43TDMyNyAxOTUuOGMtMy4xIDUuNC0xMC44IDUuNC0xMy45IDBsLTIwLjktMzYuNnoiXX0saE50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdGVsIixpY29uOls1MTIsNTEyLFsxMjc5NzZdLCJmNTk0IiwiTTE2IDI0QzE2IDEwLjcgMjYuNyAwIDQwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQxNiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQxNi04IDBDMjYuNyA0OCAxNiAzNy4zIDE2IDI0em0yMDggODhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTI4IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTEyIDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0yNDAtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDM4NGw0My44IDBjOS45IDAgMTcuNS05IDE0LTE4LjItMTMuOC0zNi4xLTQ4LjgtNjEuOC04OS43LTYxLjhzLTc1LjkgMjUuNy04OS43IDYxLjhjLTMuNSA5LjIgNC4xIDE4LjIgMTQgMTguMmw0My44IDAgMCA4MCA2NCAwIDAtODB6Il19LG1OdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmludCIsaWNvbjpbNTEyLDUxMixbMTI4NDI0LDEyODQzOCw5MTEzXSwiZjAyZiIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzNDEuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQyLjUgNDIuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMzcuNS0zODQgMCAwLTgwek0wIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTEyOCA0MTZsMCAzMiAyNTYgMCAwLTk2LTI1NiAwIDAgNjR6TTQ1NiAyNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0scmhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGxleWJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk1Miwidm9sbGV5YmFsbC1iYWxsIl0sImY0NWYiLCJNNTEyIDI1OC45Yy0yMy40IDgtNDcuOCAxMy4xLTcyLjYgMTUuMSA1LjktOTguNi0zMC43LTE5MS4xLTk0LjktMjU4LjMgOTcuOCAzNiAxNjcuNSAxMzAgMTY3LjUgMjQwLjMgMCAxIDAgMS45IDAgMi45em0tNS45IDUyYy01LjIgMjMuNy0xMy42IDQ2LjItMjQuOSA2Ni45LTk0LjcgNTIuMi0yMTQgNTAtMzA4LjQtMTMuNiAyMS43LTMxLjMgNDkuOC01OC45IDgzLjgtODAuNSA3OS41IDQxLjYgMTY4LjUgNDkuMSAyNDkuNSAyNy4xek0yNzkuNyAyNDEuNmMtMy43LTg5LjctNDEuNy0xNzAuNS0xMDEuMy0yMjkuNyAyMi4zLTcuMSA0Ni0xMS4yIDcwLjUtMTEuOSA5Mi41IDU1LjkgMTUwLjMgMTYwLjMgMTQyLjQgMjczLjgtMzgtMy4yLTc1LjktMTMuNy0xMTEuNi0zMi4zek0xMzAuNSAzMi44QzE0OS4xIDQ5LjEgMTY1LjggNjcuNyAxNzkuOSA4OC4yIDkxLjUgMTMyLjMgMjkuNyAyMTAuMyAzLjcgMjk5LjUgMS4zIDI4NS4zIDAgMjcwLjggMCAyNTYgMCAxNjAuMiA1Mi42IDc2LjcgMTMwLjUgMzIuOHptNzMuNCA5N2MxNi4zIDM0LjUgMjYuMSA3Mi42IDI3LjkgMTEyLjgtNzUuOCA0OC0xMjYuOCAxMjEuMy0xNDguMyAyMDIuNS0xNy42LTE2LjEtMzMtMzQuNi00NS41LTU1IDIuMS0xMDguMSA2My43LTIxMC40IDE2NS45LTI2MC4zek0yNTYgNTEyYy00Ny43IDAtOTIuMy0xMy0xMzAuNS0zNS43IDQuOC0yNC4zIDEyLjYtNDggMjMuMi03MC40IDgyLjQgNTQuNCAxODAuOCA2OC45IDI3MSA0Ny00NC40IDM3LTEwMS41IDU5LjItMTYzLjcgNTkuMnoiXX0sZ050PXJoZSxiTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhZmZpYy1saWdodCIsaWNvbjpbMzIwLDUxMixbMTI4Njc4XSwiZjYzNyIsIk02NC0zMkMyOC43LTMyIDAtMy4zIDAgMzJMMCAzODRjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBzMTYwLTcxLjYgMTYwLTE2MGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NC0zMnptOTYgMzkyYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTA0YTU2IDU2IDAgMSAxIC0xMTIgMCA1NiA1NiAwIDEgMSAxMTIgMHpNMTYwIDE1MmE1NiA1NiAwIDEgMSAwLTExMiA1NiA1NiAwIDEgMSAwIDExMnoiXX0sdk50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NSIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sVHRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzIixpY29uOls2NDAsNTEyLFtdLCJmMGMwIiwiTTMyMCAxNmExMDQgMTA0IDAgMSAxIDAgMjA4IDEwNCAxMDQgMCAxIDEgMC0yMDh6TTk2IDg4YTcyIDcyIDAgMSAxIDAgMTQ0IDcyIDcyIDAgMSAxIDAtMTQ0ek0wIDQxNmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCAxMi44IDAgMjUuMiAxLjkgMzYuOSA1LjQtMzIuOSAzNi44LTUyLjkgODUuNC01Mi45IDEzOC42bDAgMTZjMCAxMS40IDIuNCAyMi4yIDYuNyAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6bTUyMS4zIDY0YzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtMTZjMC01My4yLTIwLTEwMS44LTUyLjktMTM4LjYgMTEuNy0zLjUgMjQuMS01LjQgMzYuOS01LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODYuNyAwek00NzIgMTYwYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDQzMmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSx4TnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VydGlmaWNhdGUiLGljb246WzU3Niw1MTIsW10sImYwYTMiLCJNMjM5LjItOGMtNi4xLTYuMi0xNS04LjctMjMuNC02LjRTMjAwLjktNS42IDE5OC44IDIuOEwxODMuNSA2M2MtMS4xIDQuNC01LjYgNy05LjkgNS43TDExMy44IDUxLjljLTguNC0yLjQtMTcuNCAwLTIzLjUgNi4xcy04LjUgMTUuMS02LjEgMjMuNWwxNi45IDU5LjhjMS4yIDQuMy0xLjQgOC44LTUuNyA5LjlMMzUuMSAxNjYuNWMtOC40IDIuMS0xNSA4LjctMTcuMyAxNy4xcy4yIDE3LjMgNi40IDIzLjRsNDQuNSA0My4zYzMuMiAzLjEgMy4yIDguMyAwIDExLjVMMjQuMyAzMDUuMWMtNi4yIDYuMS04LjcgMTUtNi40IDIzLjRzOC45IDE0LjkgMTcuMyAxNy4xbDYwLjIgMTUuM2M0LjQgMS4xIDcgNS42IDUuNyA5LjlMODQuMiA0MzAuNWMtMi40IDguNCAwIDE3LjQgNi4xIDIzLjVzMTUuMSA4LjUgMjMuNSA2LjFsNTkuOC0xNi45YzQuMy0xLjIgOC44IDEuNCA5LjkgNS43bDE1LjMgNjAuMmMyLjEgOC40IDguNyAxNSAxNy4xIDE3LjNzMTcuMy0uMiAyMy40LTYuNGw0My4zLTQ0LjVjMy4xLTMuMiA4LjMtMy4yIDExLjUgMEwzMzcuMyA1MjBjNi4xIDYuMiAxNSA4LjcgMjMuNCA2LjRzMTQuOS04LjkgMTcuMS0xNy4zTDM5My4xIDQ0OWMxLjEtNC40IDUuNi03IDkuOS01LjdsNTkuOCAxNi45YzguNCAyLjQgMTcuNCAwIDIzLjUtNi4xczguNS0xNS4xIDYuMS0yMy41bC0xNi45LTU5LjhjLTEuMi00LjMgMS40LTguOCA1LjctOS45bDYwLjItMTUuM2M4LjQtMi4xIDE1LTguNyAxNy4zLTE3LjFzLS4yLTE3LjQtNi40LTIzLjRsLTQ0LjUtNDMuM2MtMy4yLTMuMS0zLjItOC4zIDAtMTEuNWw0NC41LTQzLjNjNi4yLTYuMSA4LjctMTUgNi40LTIzLjRzLTguOS0xNC45LTE3LjMtMTcuMWwtNjAuMi0xNS4zYy00LjQtMS4xLTctNS42LTUuNy05LjlsMTYuOS01OS44YzIuNC04LjQgMC0xNy40LTYuMS0yMy41cy0xNS4xLTguNS0yMy41LTYuMUw0MDMgNjguOGMtNC4zIDEuMi04LjgtMS40LTkuOS01LjdMMzc3LjggMi44Yy0yLjEtOC40LTguNy0xNS0xNy4xLTE3LjNzLTE3LjMgLjItMjMuNCA2LjRMMjk0IDM2LjVjLTMuMSAzLjItOC4zIDMuMi0xMS41IDBMMjM5LjItOHoiXX0seU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsYXJtLWNsb2NrIixpY29uOls1MTIsNTEyLFs5MjAwXSwiZjM0ZSIsIk01MDQuNCAxMzIuNWMtNC41IDEwLjUtMTguNCA5LjgtMjQuOSAuNC0yNy44LTQwLTY2LjEtNzIuMi0xMTEtOTIuNi0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuM3ptLTQ3MS45IC40Yy02LjUgOS40LTIwLjUgMTAuMS0yNC45LS40LTQuOS0xMS41LTcuNi0yNC4xLTcuNi0zNy4zIDAtNTIuNiA0Mi42LTk1LjIgOTUuMi05NS4yIDE5LjMgMCAzNy4zIDUuOCA1Mi4zIDE1LjcgOS42IDYuMyA2LjMgMTkuOS00LjEgMjQuNi00NC44IDIwLjQtODMuMSA1Mi42LTExMSA5Mi42ek0zOTAuMiA0NjcuNEMzNTIuOCA0OTUuNCAzMDYuMyA1MTIgMjU2IDUxMnMtOTYuOC0xNi42LTEzNC4xLTQ0LjZMODYuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMzUuMi0zNS4yQzQ4LjYgMzg0LjggMzIgMzM4LjMgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUwLjMtMTYuNiA5Ni44LTQ0LjYgMTM0LjJsMzUuMiAzNS4yYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zNS4yLTM1LjJ6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtOTQuMXoiXX0sd050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXItc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTAyIiwiTTQ0NS40IDIyNGw2NC43IDBDNDk1LjYgMTA4LjIgNDAzLjggMTYuNCAyODggMmwwIDY0LjdDMzY4LjQgODAuMSA0MzEuOSAxNDMuNiA0NDUuNCAyMjR6TTUxMCAyODhsLTY0LjcgMEM0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNsMCA2NC43YzExNS44LTE0LjQgMjA3LjYtMTA2LjIgMjIyLTIyMnpNMiAyODhDMTYuNCA0MDMuOCAxMDguMiA0OTUuNiAyMjQgNTEwbDAtNjQuN0MxNDMuNiA0MzEuOSA4MC4yIDM2OC40IDY2LjcgMjg4TDIgMjg4em0wLTY0bDY0LjcgMEM4MC4yIDE0My42IDE0My42IDgwLjEgMjI0IDY2LjdMMjI0IDJDMTA4LjIgMTYuNCAxNi40IDEwOC4yIDIgMjI0em0yMDYtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDk2IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjQtOTYgMCAwLTY0eiJdfSxzaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1jcmFjayIsaWNvbjpbNTEyLDUxMixbImhvdXNlLWRhbWFnZSJdLCJmNmYxIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMDUuNiAwLTM4LjQtNjQgODAuOC02Ny4zYzcuOC02LjUgNy42LTE4LjYtLjQtMjQuOUwyMTguNiAyNjMuMmMtMTQuNi0xMS41LTMzLjggNy0yMi44IDIyTDI1NiAzNjggMTcwLjUgNDM5LjJjLTYuMSA1LTcuNSAxMy44LTMuNSAyMC41bDMxLjMgNTIuMi04Ni40IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHoiXX0sTU50PXNoZSxrTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXBvaW50aW5nIixpY29uOls1MTIsNTEyLFtdLCJlNTRhIiwiTTIxNC45IDE0LjFDMjAyIDE1LjIgMTkyIDI2IDE5MiAzOSAxOTIgNTIuOCAyMDMuMiA2NCAyMTcgNjRsMTUxIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzAuNkMzODQgOCAzNzYgLjcgMzY2LjcgMS40TDIxNC45IDE0LjF6TTIwOCAxMTJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTUuNS0uNi0xMC44LTEuNi0xNkwyMDkuNiA5NmMtMSA1LjItMS42IDEwLjUtMS42IDE2ek00MCAyMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTUyIDAgMCA4OS40IDE2Mi44LTE2Mi44Yy0xMy4zLTQuMy0yNy4zLTYuNS00MS42LTYuNUw0MCAyMjR6bTM0NS43IDIwLjlsLTE3MS4xIDE3MS4xIDE2OS40IDAgMC00Ni4zIDUzLjYgOTAuNmMxMS4yIDE5IDM1LjggMjUuMyA1NC44IDE0LjFzMjUuMy0zNS44IDE0LjEtNTQuOEw0MzAuMyAyOTAuOGMtMTEuMi0xOS0yNi42LTM0LjUtNDQuNi00NS45ek0xOTIgNDQ4bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMi0xOTIgMHoiXX0sU050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRhdGFiYXNlIixpY29uOls0NDgsNTEyLFtdLCJmMWMwIiwiTTQ0OCAyMDUuOGMtMTQuOCA5LjgtMzEuOCAxNy43LTQ5LjUgMjQtNDcgMTYuOC0xMDguNyAyNi4yLTE3NC41IDI2LjJTOTYuNCAyNDYuNSA0OS41IDIyOS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDI4OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTgyLjJ6bTAtNzcuOGwwLTQ4QzQ0OCAzNS44IDM0Ny43IDAgMjI0IDBTMCAzNS44IDAgODBsMCA0OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MHpNMzk4LjUgMzg5LjhDMzUxLjYgNDA2LjUgMjg5LjkgNDE2IDIyNCA0MTZTOTYuNCA0MDYuNSA0OS41IDM4OS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDQzMmMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTY2LjJjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0eiJdfSx6TnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmV3c3BhcGVyIixpY29uOls1MTIsNTEyLFsxMjgyNDBdLCJmMWVhIiwiTTAgNDE2TDAgMTIwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNEw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0xNjAgMTI4bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMjQgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNDAgMHptLTI0LTcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTM2MCAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMHoiXX0sQ050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXJhaW4iLGljb246WzUxMiw1MTIsWzEyNzc4Myw5OTI2XSwiZjczZCIsIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjItMS4zLTYuNy0xLjktMTMuNy0xLjktMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA0My4xIDAgODAuNSAyNC4zIDk5LjIgNjAgMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC44LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2TDk2IDMyMHptMS42IDY4LjJjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2bDMwLjItNjguMnptMTUyIDBjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2bDMwLjItNjguMnptMTIxLjggNjguMmwzMC4yLTY4LjJjMS4xLTIuNSAzLjYtNC4yIDYuNC00LjJzNS4zIDEuNiA2LjQgNC4ybDMwLjIgNjguMmMyLjIgNS4xIDMuNCAxMC41IDMuNCAxNiAwIDIxLjktMTguMSAzOS42LTQwIDM5LjZzLTQwLTE3LjctNDAtMzkuNmMwLTUuNSAxLjItMTEgMy40LTE2eiJdfSxpaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF4aW1pemUiLGljb246WzQ0OCw1MTIsWyJleHBhbmQtYXJyb3dzLWFsdCJdLCJmMzFlIiwiTTE2OCAzMkwyNCAzMkMxMC43IDMyIDAgNDIuNyAwIDU2TDAgMjAwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDIyMy44IDQxIDIxN2w0MC00MCA3OSA3OS03OSA3OS00MC00MGMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMwIDMwMi4zIDAgMzEyTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDAtNDAgNzktNzkgNzkgNzktNDAgNDBjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMjcwLjMgNDgwIDI4MCA0ODBsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMmwtNDAgNDAtNzktNzkgNzktNzkgNDAgNDBjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlM0NDggMjA5LjcgNDQ4IDIwMGwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyODAgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOFMyNTYuMiA2Ni4xIDI2MyA3M2w0MCA0MC03OSA3OS03OS03OSA0MC00MGM2LjktNi45IDguOS0xNy4yIDUuMi0yNi4yUzE3Ny43IDMyIDE2OCAzMnoiXX0sX050PWloZSxUTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tYXJyb3ciLGljb246WzUxMiw1MTIsW10sImYxMjQiLCJNNDc3LjkgNzUuNWM0LjUtMTEuOCAxLjctMjUuMi03LjItMzQuMXMtMjIuMy0xMS44LTM0LjEtNy4ybC00MTYgMTYwQzcuOSAxOTktLjMgMjExLjIgMCAyMjQuN3M5LjEgMjUuNCAyMS45IDI5LjZsMTc2LjggNTguOSA1OC45IDE3Ni44YzQuMyAxMi44IDE2LjEgMjEuNiAyOS42IDIxLjlzMjUuNy03LjkgMzAuNi0yMC41bDE2MC00MTZ6Il19LExOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXR5IixpY29uOls1NzYsNTEyLFsxMjc5NjFdLCJmNjRmIiwiTTMyMCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyLTQ4IDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTY0IDAgMC03MkM5NiAxMC43IDg1LjMgMCA3MiAwUzQ4IDEwLjcgNDggMjRsMCA3NGMtMjcuNiA3LjEtNDggMzIuMi00OCA2MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMCAwLTEyOGMwLTM1LjMtMjguNy02NC02NC02NEwzMjAgMHptNjQgMTEybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6bS0xNiA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwem0xNiAxMTJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnptMTEyLTE2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTI1NiAzMDRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMjQwIDE5MmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwek0xMjggMzA0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6TTExMiAxOTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHoiXX0sJE50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IngtcmF5IixpY29uOls1MTIsNTEyLFtdLCJmNDk3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6bTI4MCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDQ4LTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMCAwIDQ4LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtNDggODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMCAwLTQ4IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC0xNnoiXX0sRE50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVtYnJlbGxhLWJlYWNoIixpY29uOls1MTIsNTEyLFsxMjc5NThdLCJmNWNhIiwiTTQ5Ny41IDM0MS4xYy01LjkgMTYuNy0yNS4zIDIzLTQxLjEgMTUuMWwtMTc4LjItODkuMS0xLjYgMy4yLTg4LjggMTc3LjcgMjkyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODQuMiAwIDEwMy4yLTIwNi4zIDEuNi0zLjItMTY1LjQtODIuN2MtMTUuOC03LjktMjIuNC0yNy4zLTEyLjUtNDIgNDUuOS02OC42IDEyNC4xLTExMy44IDIxMi45LTExMy44IDE0MS40IDAgMjU2IDExNC42IDI1NiAyNTYgMCAyOS44LTUuMSA1OC41LTE0LjUgODUuMXoiXX0sb2hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0LXRvLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLWluIl0sImYwOTAiLCJNMzUyIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bS05LjQgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDI0Mi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sQU50PW9oZSxQTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHNldCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5MCIsIk0yMjQgNjRjLTc5IDAtMTQ0LjcgNTcuMy0xNTcuNyAxMzIuNyA5LjMtMyAxOS4zLTQuNyAyOS43LTQuN2wxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02NEMwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRsMCAxNjguMWMwIDY2LjMtNTMuOCAxMjAtMTIwLjEgMTIwbC04Ny45LS4xLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDAgNDAgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTIwLjljLTE0LjEgOC4yLTMwLjUgMTIuOC00OCAxMi44bC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDBjMTAuNCAwIDIwLjMgMS42IDI5LjcgNC43LTEzLTc1LjMtNzguNi0xMzIuNy0xNTcuNy0xMzIuN3oiXX0sRU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwbG90Y2giLGljb246WzUxMiw1MTIsW10sImY1YmMiLCJNMjA4LjUgNjIuM2wyOC4xLTM2LjlDMjQ4LjggOS40IDI2Ny44IDAgMjg4IDAgMzE2LjUgMCAzNDEuNiAxOC43IDM0OS44IDQ2bDE3LjggNTkuNGMxMC4zIDM0LjQgMzYuMSA2MiA2OS44IDc0LjZsMzkuOCAxNC45YzIwLjkgNy45IDM0LjggMjcuOSAzNC44IDUwLjIgMCAxNi45LTcuOSAzMi44LTIxLjUgNDIuOWwtNjcuMyA1MC41Yy0yNC4zIDE4LjItMzcuMiA0Ny45LTMzLjggNzguMWwyLjUgMjIuN2M0LjMgMzguNy0yNiA3Mi42LTY1IDcyLjYtMTQuOCAwLTI5LjMtNS4xLTQwLjktMTQuM2wtNTUuMy00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjItMTUuOC03LjktMzMuNy0xMC40LTUxLTcuM0w4Mi40IDQ1MS45Yy0zNC42IDYuMy02Ni40LTIwLjMtNjYuNC01NS40IDAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMSAwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOSAwIDExMC41IDMwLjEgODUuMSA2MyA5MC43bDUxLjMgOC43YzM1LjkgNi4xIDcyLjItOC4yIDk0LjItMzcuMXoiXX0sbmhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC11cCJdLCJmMzBjIiwiTTEzNy40LTIyLjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDAuOSAxNjAgMjg4IDE2MGwtNjQgMCAwIDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMzYtNjQgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxMTQuNSA5LjQgMTA1LjRsMTI4LTEyOHoiXX0sSU50PW5oZSxOTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGV4YWdvbi1ub2RlcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5OSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2czU2LTI1LjEgNTYtNTZjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0xLjYgMjAuOCA4LjYgNDEuNiAyNy44IDUyLjhjMjYuOCAxNS41IDYxIDYuMyA3Ni41LTIwLjVzNi4zLTYxLTIwLjUtNzYuNWMtMS4zLS44LTIuNy0xLjUtNC0yLjFsMC05MC44YzEuNC0uNiAyLjctMS4zIDQtMi4xYzI2LjgtMTUuNSAzNi00OS43IDIwLjUtNzYuNVMzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMyLjYgMS44IDUuMiAzLjMgOCA0LjdsMCA5MC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjZsLTgwLjEtNDUuOGMuMS0xLjQgLjItMi44IC4yLTQuM2MwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44eiJdfSxJZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwiLGljb246WzU3Niw1MTIsWzEyNzk3Myw2MjU4OSwiaG9zcGl0YWwtYWx0IiwiaG9zcGl0YWwtd2lkZSJdLCJmMGY4IiwiTTEyOCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDAtNjR6TTI3MiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgOTYgMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwek0xMjggMzY4bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTExMiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHpNNTEyIDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTI2NCAxMDRsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFJOdD1JZWUsT050PUllZSxGTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWhhcmFzc2luZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU0OSIsIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01OS40IDMwNC41TDg4IDI1Ni45IDg4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0NC43IDQ3LjQgNTcuMWMxMS4zIDEzLjYgMzEuNSAxNS41IDQ1LjEgNC4yczE1LjUtMzEuNSA0LjItNDUuMWwtNzMuNy04OC45Yy0xOC4yLTIyLTQ1LjMtMzQuNy03My45LTM0LjdsLTM1LjkgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjl6TTQ4MCAyNDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNNDY0IDM0NGwwIDU4LjctNDEuNC00MS40Yy03LjMtNy4zLTE3LjYtMTAuNi0yNy44LTlzLTE4LjkgOC4xLTIzLjUgMTcuM2wtNDggOTZjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2wyOC4xLTU2LjMgNTQuNyA1NC43YzEyLjQgMTIuNCAyOS4xIDE5LjMgNDYuNiAxOS4zIDM2LjQgMCA2NS45LTI5LjUgNjUuOS02NS45TDU3NiAzNDRjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZ6TTI4OCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsNTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tLjggNDkuN2MtNy45LTQtMTcuNS0uNy0yMS41IDcuMnMtLjcgMTcuNSA3LjIgMjEuNWw0OCAyNGM3LjkgNCAxNy41IC43IDIxLjUtNy4ycy43LTE3LjUtNy4yLTIxLjVsLTQ4LTI0eiJdfSxCTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC10cmVuZC11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyOSIsIk00ODAgOGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzNTQuMi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0My45IDAtMTExLjMgMTExLjMtOTUuMS04MS41Yy05LTcuNy0yMi4yLTcuNy0zMS4yIDBsLTExMiA5NmMtMTAuMSA4LjYtMTEuMiAyMy44LTIuNiAzMy44czIzLjggMTEuMiAzMy44IDIuNmw5Ni40LTgyLjYgOTYuNCA4Mi42YzkuNSA4LjIgMjMuNyA3LjYgMzIuNi0xLjNsMTI3LTEyNyAwIDQzLjljMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNEw0ODAgOHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyNTZ6bTQ3LjMgNTZjLTMuNCAyMC4xLTE5LjIgMzYtMzkuNCAzOS40LTQuNCAuNy04LTIuOS04LTcuM2wwLTMyYzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDguMSAzLjYgNy4zIDh6bTAgMTQ0LjFjLjcgNC40LTIuOSA4LTcuMyA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC0zMmMwLTQuNCAzLjYtOC4xIDgtNy4zIDIwLjEgMy40IDM2IDE5LjIgMzkuNCAzOS40ek00NTYgNDE2LjdjNC40LS43IDggMi45IDggNy4zbDAgMzJjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LjEtMy42LTcuMy04IDMuNC0yMC4xIDE5LjItMzYgMzkuNC0zOS40ek00MTYuNyAzMTJjLS43LTQuNCAyLjktOCA3LjMtOGwzMiAwYzQuNCAwIDggMy42IDggOGwwIDMyYzAgNC40LTMuNiA4LjEtOCA3LjMtMjAuMS0zLjQtMzYtMTkuMi0zOS40LTM5LjR6TTE5MiAzODRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxsaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLXJ1bGVyIixpY29uOls1MTIsNTEyLFsicGVuY2lsLXJ1bGVyIl0sImY1YWUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTU4LjkgMzE1LjFMMjc0LjEgMTAwIDQxMiAyMzcuOSAxOTYuOSA0NTMuMWMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTEuMWMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJzLTguNS0xNS4xLTYuMi0yMy40TDM2LjQgMzUzLjhjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN3pNMjI1LjQgODAuOEw4MC44IDIyNS40IDExLjcgMTU2LjNjLTE1LjYtMTUuNi0xNS42LTQwLjkgMC01Ni42bDg4LTg4YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDUuOSA1LjktNTYuMyA1Ni4zYy03LjggNy44LTcuOCAyMC41IDAgMjguM3MyMC41IDcuOCAyOC4zIDBsNTYuMy01Ni4zIDM0LjkgMzQuOXpNNDMxLjIgMjg2LjZsMzQuOSAzNC45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyA1LjkgNS45YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC04OCA4OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBsLTY5LjEtNjkuMSAxNDQuNi0xNDQuNnoiXX0sSE50PWxoZSxxTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwZWF0IixpY29uOls1MTIsNTEyLFsxMjgyNTddLCJmMzYzIiwiTTQ3MC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzUyIDE5LjEgMzUyIDMybDAgMzItMTYwIDBDODYgNjQgMCAxNTAgMCAyNTYgMCAyNzMuNyAxNC4zIDI4OCAzMiAyODhzMzItMTQuMyAzMi0zMmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGwxNjAgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjR6TTQxLjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzE2MCA0OTIuOSAxNjAgNDgwbDAtMzIgMTYwIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTE2MCAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0eiJdfSxWTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZSIsaWNvbjpbNjQwLDUxMixbMTI5NDYwXSwiZjVkNyIsIk0xOTcuNCAxNjBjLTMuOSAwLTcuMi0yLjgtOC4xLTYuNi0xMC4yLTQyLjEtNDguMS03My40LTkzLjMtNzMuNC01MyAwLTk2IDQzLTk2IDk2IDAgMjkuMSAxMi45IDU1LjEgMzMuMyA3Mi43IDQuMyAzLjcgNC4zIDEwLjggMCAxNC41LTIwLjQgMTcuNi0zMy4zIDQzLjctMzMuMyA3Mi43IDAgNTMgNDMgOTYgOTYgOTYgNDUuMiAwIDgzLjEtMzEuMyA5My4zLTczLjQgLjktMy44IDQuMi02LjYgOC4xLTYuNmwyNDUuMSAwYzMuOSAwIDcuMiAyLjggOC4xIDYuNiAxMC4yIDQyLjEgNDguMSA3My40IDkzLjMgNzMuNCA1MyAwIDk2LTQzIDk2LTk2IDAtMjkuMS0xMi45LTU1LjEtMzMuMy03Mi43LTQuMy0zLjctNC4zLTEwLjggMC0xNC41IDIwLjQtMTcuNiAzMy4zLTQzLjcgMzMuMy03Mi43IDAtNTMtNDMtOTYtOTYtOTYtNDUuMiAwLTgzLjEgMzEuMy05My4zIDczLjQtLjkgMy44LTQuMiA2LjYtOC4xIDYuNmwtMjQ1LjEgMHoiXX0sY2hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtZmxhbWUtY3VydmVkIixpY29uOlszODQsNTEyLFsiZmlyZS1hbHQiXSwiZjdlNCIsIk0xNTMuNiAyOS45bDE2LTIxLjNDMTczLjYgMy4yIDE4MCAwIDE4Ni43IDAgMTk4LjQgMCAyMDggOS42IDIwOCAyMS4zbDAgMjIuMWMwIDEzLjEgNS40IDI1LjcgMTQuOSAzNC43TDMwNy42IDE1OUMzNTYuNCAyMDUuNiAzODQgMjcwLjIgMzg0IDMzNy43IDM4NCA0MzQgMzA2IDUxMiAyMDkuNyA1MTJMMTkyIDUxMkM4NiA1MTIgMCA0MjYgMCAzMjBsMC0zLjhjMC00OC44IDE5LjQtOTUuNiA1My45LTEzMC4xbDMuNS0zLjVjNC4yLTQuMiAxMC02LjYgMTYtNi42IDEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42TDk2IDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtMy45YzAtMTgtNy4yLTM1LjMtMTkuOS00OGwtMzguNi0zOC42Yy0yNC0yNC0zNy41LTU2LjctMzcuNS05MC43IDAtMjcuNyA5LTU0LjggMjUuNi03Ni45eiJdfSxqTnQ9Y2hlLGRoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMtc2ltcGxlIixpY29uOls0NDgsNTEyLFsiYnVzLWFsdCJdLCJmNTVlIiwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCAzODRjMCAyOS44IDIwLjQgNTQuOSA0OCA2MmwwIDM0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAxOTIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zNGMyNy42LTcuMSA0OC0zMi4yIDQ4LTYybDAtMjg4YzAtNTMtNDMtOTYtOTYtOTZMOTYgMHpNNjQgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek05NiAzMjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yNTYgMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFVOdD1kaGUsV050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLW1hcnMiLGljb246WzY0MCw1MTIsWzk4OTJdLCJmMjI4IiwiTTQ4MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJTNDYyLjMgMCA0ODAgMEw1MzAuNyAwIDQ3NCA1Ni43Yy0yNi4zLTE1LjctNTcuMS0yNC43LTkwLTI0LjctMzUuNCAwLTY4LjQgMTAuNS05NiAyOC41LTI3LjYtMTgtNjAuNi0yOC41LTk2LTI4LjUtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljMjMuMy00LjMgNDQuOS0xMy4xIDY0LTI1LjYgMjcuNiAxOCA2MC42IDI4LjUgOTYgMjguNSA5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NiAwLTQxLjEtMTQuMS03OS0zNy44LTEwOUw1NzYgNDUuMyA1NzYgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw0ODAtNjR6TTMzNiAzMDkuMmMyMC4yLTI4LjYgMzItNjMuNSAzMi0xMDEuMnMtMTEuOC03Mi42LTMyLTEwMS4yYzE0LjYtNi45IDMwLjgtMTAuOCA0OC0xMC44IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzQ0NS45IDMyMCAzODQgMzIwYy0xNy4yIDAtMzMuNS0zLjktNDgtMTAuOHpNMjg4IDE1MC4zYzEwLjIgMTYuOSAxNiAzNi42IDE2IDU3LjdzLTUuOCA0MC45LTE2IDU3LjdjLTEwLjItMTYuOS0xNi0zNi42LTE2LTU3LjdzNS44LTQwLjkgMTYtNTcuN3ptLTQ4LTQzLjVjLTIwLjIgMjguNi0zMiA2My41LTMyIDEwMS4yczExLjggNzIuNiAzMiAxMDEuMmMtMTQuNSA2LjktMzAuOCAxMC44LTQ4IDEwLjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJTMTMwLjEgOTYgMTkyIDk2YzE3LjIgMCAzMy41IDMuOSA0OCAxMC44eiJdfSxHTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjUxNyIsIk0wIDU2QzAgMjUuMSAyNS4xIDAgNTYgMEw0MzcuNiAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDQ1Ny4xIDgwIDM0NCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDAtOS4xLTk2LTYyLjkgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA1NnpNMTE0LjMgMTkyTDEwMC42IDQ4IDU2IDQ4Yy00LjQgMC04IDMuNi04IDhsMCAxMjhjMCA0LjQgMy42IDggOCA4bDU4LjMgMHpNMTM2IDM4NGwyNDAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC0yNDAgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTIwIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sWU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InUiLGljb246WzM4NCw1MTIsWzExN10sIjU1IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDEwNi04NiAxOTItMTkyIDE5MlMwIDM5NCAwIDI4OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyeiJdfSxzdj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZSIsaWNvbjpbNTEyLDUxMixbIm1haWwtZm9yd2FyZCJdLCJmMDY0IiwiTTMwNy44IDE4LjRjLTEyIDUtMTkuOCAxNi42LTE5LjggMjkuNmwwIDgwLTExMiAwYy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDExMy4zIDgxLjUgMTYzLjkgMTAwLjIgMTc0LjEgMi41IDEuNCA1LjMgMS45IDguMSAxLjkgMTAuOSAwIDE5LjctOC45IDE5LjctMTkuNyAwLTcuNS00LjMtMTQuNC05LjgtMTkuNS05LjQtOC44LTIyLjItMjYuNC0yMi4yLTU2LjcgMC01MyA0My05NiA5Ni05Nmw5NiAwIDAgODBjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXoiXX0sS050PXN2LHVoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS1mbGlwIixpY29uOls1MTIsNTEyLFsxMjgzODEsInBob25lLWFsdCJdLCJmODc5IiwiTTM1MS44IDI1YzcuOC0xOC44IDI4LjQtMjguOSA0OC4xLTIzLjVsNS41IDEuNWM2NC42IDE3LjYgMTE5LjggODAuMiAxMDMuNyAxNTYuNC0zNy4xIDE3NS0xNzQuOCAzMTIuNy0zNDkuOCAzNDkuOC03Ni4zIDE2LjItMTM4LjgtMzkuMS0xNTYuNC0xMDMuN2wtMS41LTUuNWMtNS40LTE5LjcgNC43LTQwLjMgMjMuNS00OC4xbDk3LjMtNDAuNWMxNi41LTYuOSAzNS42LTIuMSA0NyAxMS44bDM4LjYgNDcuMmM3MC4zLTM0LjkgMTI2LjgtOTMuMyAxNTkuMy0xNjQuOWwtNDQuMS0zNi4xYy0xMy45LTExLjMtMTguNi0zMC40LTExLjgtNDdMMzUxLjggMjV6Il19LFpOdD11aGUsWE50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wb3J0YWJsZSIsaWNvbjpbMzIwLDUxMixbXSwiZTU4MyIsIk0wIDY0bDAgMTYgMzIwIDAgMC0xNmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NHptMjQgNjRMMCAxMjggMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTggMjI0IDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zNjAtMjk2IDB6bTIyNCA5NmwyNCAwIDAgOTYtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sUU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmVnbmFudCIsaWNvbjpbMzg0LDUxMixbXSwiZTMxZSIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTgwIDMyMS4yYzguNi00LjUgMTYuOC0xMCAyNC4zLTE2LjVsNC0zLjRjMjIuNi0xOS40IDM1LjctNDcuNyAzNS43LTc3LjYgMC0zNS45LTE4LjgtNjkuMS00OS42LTg3LjZsLTMwLjQtMTguMiAwLTEuOGMwLTQ2LjUtMzcuNy04NC4xLTg0LjEtODQuMS0yOC4xIDAtNTQuNCAxNC4xLTcwIDM3LjVMMjEuNCAyNzAuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlsMjktNDMuNS0zMC41IDExMy41Yy0yLjYgOS42LS42IDE5LjkgNS41IDI3LjhTOTQgNDE2IDEwNCA0MTZsOCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEwLjh6Il19LEpOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZXNzLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzc0XSwiM2MiLCJNNDc3LjEgNTAuNmM3LjQgMTYgLjQgMzUuMS0xNS42IDQyLjVMMTA4LjQgMjU2IDQ2MS40IDQxOWMxNiA3LjQgMjMgMjYuNCAxNS42IDQyLjVzLTI2LjQgMjMtNDIuNSAxNS42bC00MTYtMTkyQzcuMyAyNzkuOCAwIDI2OC41IDAgMjU2UzcuMyAyMzIuMiAxOC42IDIyN2w0MTYtMTkyYzE2LTcuNCAzNS4xLS40IDQyLjUgMTUuNnoiXX0sZVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1cGVyc2NyaXB0IixpY29uOls1NzYsNTEyLFtdLCJmMTJiIiwiTTU0NCAzMmMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZDNDQ5LjkgMjcuMyA0NDMuNSA0Ni41IDQ1MS40IDYyLjMgNDU3IDczLjUgNDY4LjMgODAgNDgwIDgwbDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTEyOHpNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHoiXX0scGhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1zdG9wIixpY29uOls1MTIsNTEyLFs2MjA5NCwic3RvcC1jaXJjbGUiXSwiZjI4ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDE2MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSx0UnQ9cGhlLGZoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtZG93biIsaWNvbjpbMjU2LDUxMixbImFycm93cy12Il0sImYwN2QiLCJNMTUwLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDc3LjMgOTYgNDM0LjcgNTQuNiAzOTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNiA2IDE0LjEgOS40IDIyLjYgOS40czE2LjYtMy40IDIyLjYtOS40bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC00MS40IDQxLjQgMC0zNTcuNSA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LGFSdD1maGUsaGhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvby1zdG9ybSIsaWNvbjpbNTEyLDUxMixbInBvby1ib2x0Il0sImY3NWEiLCJNMjY4LjktMzEuOGMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjNjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDIxLjctOC41IDM3LjItMjEuOSA0Ny42LTEzLjkgMTAuOC0zNC4xIDE3LTU4LjEgMTdsLTI0IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4IDAgMTQuOCAzLjcgMjguOCAxMC4yIDQxLjEtNDIgNi42LTc0LjIgNDMtNzQuMiA4Ni45IDAgNDYuNiAzNi4yIDg0LjcgODEuOSA4Ny44IDMuMS0xMi40IDkuOS0yMy44IDE5LjYtMzIuNUwyNDIuNyAyMjVjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43bC0xMi43IDQyLjRjMjguOCAxLjIgNTIuNyAyMS4xIDU5LjggNDcuOWwyNi4yIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC00My45LTMyLjEtODAuMy03NC4yLTg2LjkgNi41LTEyLjMgMTAuMi0yNi4yIDEwLjItNDEuMSAwLTQ4LjYtMzkuNC04OC04OC04OGwtOS40IDBjLjktNS40IDEuNC0xMC45IDEuNC0xNi42IDAtNDguNy0zNi4xLTg4LjktODMuMS05NS4yek0xNDQuNiA0MTZsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNDYuNSA0MTIuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTMzLjUgMzg3LjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LHJSdD1oaGUsc1J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpZGVvLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGUyIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE1My0xNTMgMC0yMjIuMmMwLTM1LjMtMjguNy02NC02NC02NEwxMjkuOCA2NCA0MS0yNC45ek0zMiAxMjhsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjNy44IDAgMTUuMy0xLjQgMjIuMi00TDM2IDEwNS44Yy0yLjYgNi45LTQgMTQuNC00IDIyLjJ6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnoiXX0sTmVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS14bWFyayIsaWNvbjpbNDQ4LDUxMixbMTAwNjIsInRpbWVzLXNxdWFyZSIsInhtYXJrLXNxdWFyZSJdLCJmMmQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0saVJ0PU5lZSxvUnQ9TmVlLG1oZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZHJvcGxldCIsaWNvbjpbNTc2LDUxMixbImhhbmQtaG9sZGluZy13YXRlciJdLCJmNGMxIiwiTTI3NS41IDYuNkwyMDkuMiAxMDNDMTk4IDExOS4zIDE5MiAxMzguNiAxOTIgMTU4LjNsMCAxLjdjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEuN2MwLTE5LjgtNi0zOS0xNy4yLTU1LjNMMzAwLjUgNi42QzI5Ny43IDIuNSAyOTMgMCAyODggMHMtOS43IDIuNS0xMi41IDYuNnpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LG5SdD1taGUsUmVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvbi1zaWduIixpY29uOls1MTIsNTEyLFs4MzYxLCJrcnciLCJ3b24iXSwiZjE1OSIsIk02Mi40IDUzLjlDNTYuOCAzNy4xIDM4LjcgMjguMSAyMS45IDMzLjZTLTMuOSA1Ny40IDEuNyA3NC4xTDU2LjkgMjQwIDMyIDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MC45IDAgNTYuNyAxNzAuMWM0LjUgMTMuNSAxNy40IDIyLjQgMzEuNiAyMS45czI2LjQtMTAuNCAyOS44LTI0LjJMMjMzIDI4OCAyNzkgMjg4IDMyMSA0NTUuOGMzLjQgMTMuOCAxNS42IDIzLjcgMjkuOCAyNC4yczI3LjEtOC40IDMxLjYtMjEuOUw0MzkuMSAyODggNDgwIDI4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQuOSAwIDU1LjMtMTY1LjljNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTYyIDE4Ni4xLTU0LjYgMC00NS45LTE4My44QzI4My41IDQyIDI3MC43IDMyIDI1NiAzMnMtMjcuNSAxMC0zMSAyNC4yTDE3OSAyNDAgMTI0LjQgMjQwIDYyLjQgNTMuOXptNzggMjM0LjFsMjYuNiAwLTExLjQgNDUuNi0xNS4yLTQ1LjZ6TTI0NSAyNDBsMTEtNDQuMSAxMSA0NC4xLTIyIDB6bTEwMCA0OGwyNi42IDAtMTUuMiA0NS42LTExLjQtNDUuNnoiXX0sbFJ0PVJlZSxjUnQ9UmVlLGRSdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwyMDkuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMTEzLjF6TTExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAxMTMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMWMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40TDExOS40IDk2ek01NDQgMjc5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGwtMjkuMiAwYy01LjMtMTcuNy0xNC44LTMzLjUtMjcuNC00Ni40bDAtMTcuNiA1Ni42IDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAxMTMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjA5LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNC42IDY0IDAgMCAyNC42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xeiJdfSx1UnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MTIgMjQwYzAgMTMyLjUtMTE0LjYgMjQwLTI1NiAyNDAtMzcuMSAwLTcyLjMtNy40LTEwNC4xLTIwLjdMMzMuNSA1MTAuMWMtOS40IDQtMjAuMiAxLjctMjcuMS01LjhTLTIgNDg1LjggMi44IDQ3Ni44bDQ4LjgtOTIuMkMxOS4yIDM0NC4zIDAgMjk0LjMgMCAyNDAgMCAxMDcuNSAxMTQuNiAwIDI1NiAwUzUxMiAxMDcuNSA1MTIgMjQweiJdfSxwUnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1hdmFsYW5jaGUiLGljb246WzU3Niw1MTIsW10sImU1MDciLCJNNDQwLjEgNDAxLjljMzQuMiAyMy4xIDgxLjEgMTkuNSAxMTEuNC0xMC44IDM0LjQtMzQuNCAzNC40LTkwLjEgMC0xMjQuNS0yNy44LTI3LjgtNjkuNS0zMy4xLTEwMi42LTE2LTExLjggNi4xLTE2LjQgMjAuNi0xMC4zIDMyLjNzMjAuNiAxNi40IDMyLjMgMTAuM2MxNS4xLTcuOCAzNC01LjMgNDYuNiA3LjMgMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTgxLjctODEuN2MyMi4zLTE0LjIgMzcuMS0zOS4xIDM3LjEtNjcuNSAwLTMzLjktMjEuMS02Mi45LTUwLjktNzQuNSAxLjktNi44IDIuOS0xNCAyLjktMjEuNSAwLTQ0LjItMzUuOC04MC04MC04MC0yNy4zIDAtNTEuNSAxMy43LTY1LjkgMzQuNi01LjgtMjAtMjQuMi0zNC42LTQ2LjEtMzQuNi0yNi41IDAtNDggMjEuNS00OCA0OCAwIDQgLjUgNy45IDEuNCAxMS42TDQ0MC4xIDQwMS45ek00ODAuNCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wIDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTY4LjcgODdDNDMuNSA2MS44IC40IDc5LjcgLjQgMTE1LjNMLjQgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguNyA4N3oiXX0sZlJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1leWUiLGljb246WzY0MCw1MTIsW10sImU0YmYiLCJNMTc2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzguMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjEuNyA1NS42IDMxIDY1bDYzIDYzLTM4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOTZ6bTAgNDAwbDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzguMSAwLTYzIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNjMtNjMgMCAzOC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6bTMxMiAyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTM4LjEgNjMgNjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyAzOC4xIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTQ2NCA1NmwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM4LjEgMCA2My02M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC02MyA2MyAwLTM4LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6TTMyMCAxMjBjLTU3LjMgMC05OS40IDM0LTEyNS42IDY0LjMtMjAgMjMuMS0zMi40IDQ1LjgtMzcuNiA1Ni4xLTIuNSA1LTQuOSA5LjctNC45IDE1LjZzMi4zIDEwLjYgNC45IDE1LjZjNS4yIDEwLjMgMTcuNiAzMyAzNy42IDU2LjEgMjYuMiAzMC4zIDY4LjIgNjQuMyAxMjUuNiA2NC4zczk5LjQtMzQgMTI1LjYtNjQuM2MyMC0yMy4xIDMyLjQtNDUuOCAzNy42LTU2LjEgMi41LTUgNC45LTkuNyA0LjktMTUuNnMtMi4zLTEwLjYtNC45LTE1LjZjLTUuMi0xMC4zLTE3LjYtMzMtMzcuNi01Ni4xLTI2LjItMzAuMy02OC4yLTY0LjMtMTI1LjYtNjQuM3pNMjU2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LGhSdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93cGxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjdkMiIsIk0xMjggMTYwbDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjk2LjQgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw4Ny42IDE3NS4xYzQuNCA4LjkgNi44IDE4LjcgNi44IDI4LjZsMCA1Ni45IDgwIDAgMC04MGMwLTQ4LjYgMzkuNC04OCA4OC04OCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAyMDhjMCAyMi4xIDE3LjkgNDAgNDAgNDAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4bDAtODAtNjMgMGM5LjUgMTYuNSAxNSAzNS42IDE1IDU2IDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0yMjQgMGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTIgMC0zMC41IDEyLjItNTguMiAzMi03OC40TDY0IDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHptOTEuNyAzNC45bDQzLjYgMjkuMSAxMTMuMiAwLTgwLTE2MC0xMDQuNCAwIDAgMTA4LjggMjcuNyAyMi4xek00MTYgNDAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHptLTI4MCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTIxNi0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIzMiA0MDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sbVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWdhbnR0IixpY29uOls1MTIsNTEyLFtdLCJlMGU0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTY0IDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDB6TTM4NCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0sZ2hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpZGVvIixpY29uOls1NzYsNTEyLFsidmlkZW8tY2FtZXJhIl0sImYwM2QiLCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00NjQgMzM2bDczLjUgNTguOGM0LjIgMy40IDkuNCA1LjIgMTQuOCA1LjIgMTMuMSAwIDIzLjctMTAuNiAyMy43LTIzLjdsMC0yNDAuNmMwLTEzLjEtMTAuNi0yMy43LTIzLjctMjMuNy01LjQgMC0xMC42IDEuOC0xNC44IDUuMkw0NjQgMTc2IDQ2NCAzMzZ6Il19LGdSdD1naGUsYlJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LTguOSA1MS45LTI0IDcyIDE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC43IDAgMjYuNyAxNjAgNTYuMiA3MC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDUxLjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw4MCAzODQgMTA2LjcgMjI0IDk2IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMtMTUuMS0yMC4xLTI0LTQ1LTI0LTcyIDAtNjYuMyA1My43LTEyMCAxMjAtMTIweiJdfSx2UnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3luYWdvZ3VlIixpY29uOls1NzYsNTEyLFsxMjgzMzNdLCJmNjliIiwiTTE2IDgwYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMi0xMjggMCAwLTMyem0wIDM2OGwwLTI4OCAxMjggMCAxMjYuMi04NC4yYzEwLjctNy4yIDI0LjgtNy4yIDM1LjUgMGwxMjYuMiA4NC4yIDEyOCAwIDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTU2MCAxMTJsLTEyOCAwIDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyek0yMjQgMzg0bDAgODAgMTI4IDAgMC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHptNjQtMTUyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0seFJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSx5UnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxiaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpci1tb3ZlIixpY29uOls0NDgsNTEyLFsid2hlZWxjaGFpci1hbHQiXSwiZTJjZSIsIk0zMTIgNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0yMDUuNCAxMjQuMWMtNi40LTUuMi0xNS42LTQuNy0yMS40IDEuMWwtMzMuNCAzMy40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxMzguOCA4MGMyOS0yOSA3NS4yLTMxLjQgMTA3LTUuNWw4MS4zIDY2YzIxLjQgMTcuNCAyMy44IDQ5LjIgNS4yIDY5LjVsLTQxLjggNDYgOTggMGMzMC4zIDAgNTMgMjcuNyA0Ny4xIDU3LjRMNDA3LjQgNDU0LjNjLTMuNSAxNy4zLTIwLjMgMjguNi0zNy43IDI1LjFzLTI4LjYtMjAuMy0yNS4xLTM3LjdMMzY5IDMyMCAzMTYuOCAzMjBjMi4xIDEwLjMgMy4yIDIxIDMuMiAzMiAwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyIDcxLjYgMTkyIDE2MCAxOTJjNiAwIDExLjkgLjMgMTcuOCAxbDUwLjQtNTAuNC0yMi43LTE4LjV6TTE2MCA0NDhhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LHdSdD1iaGUsTVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJmNTA1IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwyNTEuNSAwQzI2MSA0NjkuNCAyNDAgNDE0LjUgMjQwIDM1Ni40bDAtMzEuMWMwLTcuMyAxLTE0LjUgMi45LTIxLjNsLTQ4LjYgMHptMjUxIDE4NC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sa1J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbGQiLGljb246WzM4NCw1MTIsW10sImYwMzIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDMyIDAgMCAzMjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0yODggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR6TTEyOCA0MTZsMC0xMjggMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAweiJdfSx2aGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtcHVsc2UiLGljb246WzUxMiw1MTIsWyJoZWFydGJlYXQiXSwiZjIxZSIsIk0yNTYgMTA3LjlMMjQxIDg3LjFDMjE2IDUyLjUgMTc1LjkgMzIgMTMzLjEgMzIgNTkuNiAzMiAwIDkxLjYgMCAxNjUuMWwwIDIuNmMwIDIzLjYgNi4yIDQ4IDE2LjYgNzIuM2wxMDYgMGMzLjIgMCA2LjEtMS45IDcuNC00LjlsMzEuOC03Ni4zYzMuNy04LjggMTIuMy0xNC42IDIxLjgtMTQuOHMxOC4zIDUuNCAyMi4yIDE0LjFsNTEuMyAxMTMuOSA0MS40LTgyLjhjNC4xLTguMSAxMi40LTEzLjMgMjEuNS0xMy4zczE3LjQgNS4xIDIxLjUgMTMuM2wyMy4yIDQ2LjNjMS40IDIuNyA0LjEgNC40IDcuMiA0LjRsMTIzLjYgMGMxMC41LTI0LjMgMTYuNi00OC43IDE2LjYtNzIuM2wwLTIuNkM1MTIgOTEuNiA0NTIuNCAzMiAzNzguOSAzMiAzMzYuMiAzMiAyOTYgNTIuNSAyNzEgODcuMWwtMTUgMjAuN3pNNDY5LjYgMjg4bC05Ny44IDBjLTIxLjIgMC00MC42LTEyLTUwLjEtMzFsLTEuNy0zLjQtNDIuNSA4NS4xYy00LjEgOC4zLTEyLjcgMTMuNS0yMiAxMy4zcy0xNy42LTUuNy0yMS40LTE0LjFsLTQ5LjMtMTA5LjUtMTAuNSAyNS4yYy04LjcgMjAuOS0yOS4xIDM0LjUtNTEuNyAzNC41bC04MC4yIDBjNDcuMiA3My44IDEyMyAxNDEuNyAxNzAuNCAxNzcuOSAxMi40IDkuNCAyNy42IDE0LjEgNDMuMSAxNC4xczMwLjgtNC42IDQzLjEtMTQuMUMzNDYuNiA0MjkuNyA0MjIuNCAzNjEuOCA0NjkuNiAyODh6Il19LFNSdD12aGUseGhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1yb290LXZhcmlhYmxlIixpY29uOls1NzYsNTEyLFsic3F1YXJlLXJvb3QtYWx0Il0sImY2OTgiLCJNMjgyLjYgNzguMWM4LTI3LjMgMzMtNDYuMSA2MS40LTQ2LjFsMjAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzQ0IDk2IDIzOC43IDQ1N2MtMy42IDEyLjMtMTQuMSAyMS4yLTI2LjggMjIuOHMtMjUuMS00LjYtMzEuNS0xNS42TDc3LjYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NS42IDBjMjIuOCAwIDQzLjggMTIuMSA1NS4zIDMxLjhsNjUuMiAxMTEuOCA4NC40LTI4OS41ek0zOTMuNCAyMzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0MS40IDQxLjQgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTQxLjQgNDEuNCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQxLjQtNDEuNC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zeiJdfSx6UnQ9eGhlLHloZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1idWJibGVzIixpY29uOls1MTIsNTEyLFsiaGFuZHMtd2FzaCJdLCJlMDVlIiwiTTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTk2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTEyOCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMCAxNjBsLjEgNzIuNmMwIDQ0LjggMTcuNiA4Ny4xIDQ3LjkgMTE4LjQgLjMtNzcgNDAuMS0xNDguNCAxMDUuNC0xODkuM2wxLjktMS4yYy0yLjUtMy43LTIuOC04LjYtLjQtMTIuN2w2Mi0xMDcuNGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOFMxODIgNSAxNzUuNCAxNi41bC02OCAxMTcuOCAwIDAgMCAwLTQzLjMgNzUgMC00OS4zYzAtMTcuNy0xNC40LTMyLTMyLTMyUzAgMTQyLjQgMCAxNjB6bTIxMy42LTM1LjljMTQuMS04LjggMjkuOC0xMi43IDQ1LjItMTIuMWwzNi41LTYzLjNjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44bC02Ny4xIDExNi4yIDI3LTE2Ljl6bTg2LjUtMzUuN2wtMTYuNCAyOC40YzE1LjEgNS41IDI4LjYgMTUuNiAzOC4zIDI5LjdsMTkuNy0zNC4yYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHptNDYuNCA2My43bC0xMi41IDIxLjdjMiA4LjYgMi41IDE3LjUgMS43IDI2LjFsNC4zIDAgMCAwIDM0LjQgMCAxMy43LTIzLjhjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44ek0yODMuMSAxNzVjLTkuNC0xNS0yOS4xLTE5LjUtNDQuMS0xMC4ybC02MC4yIDM3LjZDMTI3LjMgMjM0LjcgOTYgMjkxLjIgOTYgMzUybDAgOGMwIDguOSAuOCAxNy42IDIuMiAyNi4xIDM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45IDAgNi4zLS43IDEyLjUtMi4xIDE4LjQgMjUuMiAxOC42IDU2LjQgMjkuNiA5MC4xIDI5LjZsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTkyIDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyNCAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDE1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNTYgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTM2IDAgMCAwIDAgMC05My4yIDAgNDYuMi0yOC45YzE1LTkuNCAxOS41LTI5LjEgMTAuMi00NC4xeiJdfSxDUnQ9eWhlLF9SdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJrZXIiLGljb246WzUxMiw1MTIsW10sImY1YTEiLCJNNDA4LjggMGMtMjcuNCAwLTUzLjYgMTAuOS03MyAzMC4yTDMxOC4xIDQ4IDMwNSAzNC45Yy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBMMTAzIDEzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDIzNy4xIDY4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjg0LjEgODEuOSAxODQgMTgyLjEgMzI5LjkgMzI4IDQ4MS44IDE3Ni4yYzE5LjQtMTkuNCAzMC4yLTQ1LjYgMzAuMi03MyAwLTU3LTQ2LjItMTAzLjItMTAzLjItMTAzLjJ6TTEwMi40IDI2My43Yy00OS45IDQ5LjktODMuMyAxMTQtOTUuNSAxODMuNUwuNCA0ODMuOEMtMSA0OTEuNiAxLjUgNDk5LjQgNyA1MDVzMTMuNCA4IDIxLjEgNi43bDM2LjctNi41YzY5LjUtMTIuMyAxMzMuNi00NS42IDE4My41LTk1LjVMMjk2IDM2MS45IDE1MC4xIDIxNiAxMDIuNCAyNjMuN3oiXX0sVFJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0zMjAgMzJsLTguNiAwQzMwMC40IDEyLjkgMjc5LjcgMCAyNTYgMEwxMjggMEMxMDQuMyAwIDgzLjYgMTIuOSA3Mi42IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEzNiAxMTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAweiJdfSxMUnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhY2Utb2Ytd29yc2hpcCIsaWNvbjpbNTEyLDUxMixbXSwiZjY3ZiIsIk0xNjAgNzlsMCA4MS00NC44IDMzLjZDMTAzLjEgMjAyLjcgOTYgMjE2LjkgOTYgMjMybDAgNDAtNjAuNiAzMC4zQzEzLjcgMzEzLjIgMCAzMzUuMyAwIDM1OS42TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTg4LjRjMC0yNC4yLTEzLjctNDYuNC0zNS40LTU3LjJMNDE2IDI3MiA0MTYgMjMyYzAtMTUuMS03LjEtMjkuMy0xOS4yLTM4LjRMMzUyIDE2MCAzNTIgNzljMC05LjUtNC4yLTE4LjUtMTEuNS0yNC42TDI3MS40LTMuMmMtOC45LTcuNC0yMS44LTcuNC0zMC43IDBMMTcxLjUgNTQuNEMxNjQuMiA2MC41IDE2MCA2OS41IDE2MCA3OXptOTYgMjQxYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODAtMTI4IDAgMC04MGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sJFJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbm5hYmlzIixpY29uOls1MTIsNTEyLFtdLCJmNTVmIiwiTTI1NiAwYzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xIDE1LjggMjMuNSAzNi43IDYzLjcgNDkuMiAxMDkgNy4zIDI2LjQgMTEuOCA1NS4zIDEwLjMgODQgMTEuNi04LjkgMjMuNy0xNi43IDM1LjktMjMuNyA0MS0yMy4zIDg0LjQtMzYuOSAxMTIuMi00Mi41IDUuMi0xIDEwLjcgLjYgMTQuNCA0LjRzNS40IDkuMiA0LjQgMTQuNWMtNS42IDI3LjctMTkuMyA3MC45LTQyLjcgMTExLjctOS4xIDE1LjktMTkuOSAzMS43LTMyLjUgNDYuMyAyNy45IDYuNiA1Mi41IDE3LjIgNjcuMyAyNS40IDUuMSAyLjggOC4yIDguMiA4LjIgMTRzLTMuMiAxMS4yLTguMiAxNGMtMTUuMiA4LjQtNDAuOSAxOS41LTY5LjggMjYuMS0yMC4yIDQuNi00Mi45IDcuMi02NS4yIDQuNmw4LjMgMzMuMmMxLjUgNi4xLS42IDEyLjUtNS41IDE2LjRzLTExLjYgNC42LTE3LjIgMS44TDI4MCA0MTcuMiAyODAgNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzAuOC01OC41IDI5LjFjLTUuNiAyLjgtMTIuMyAyLjEtMTcuMi0xLjhzLTctMTAuMy01LjUtMTYuNGw4LjMtMzMuMmMtMjIuMiAyLjYtNDUgMC02NS4yLTQuNi0yOC45LTYuNi01NC41LTE3LjYtNjkuOC0yNi4xLTUuMS0yLjgtOC4yLTguMi04LjItMTRzMy4yLTExLjIgOC4yLTE0bDYuMi0zLjNjMTUtNy42IDM2LjgtMTYuNCA2MS4xLTIyLjItMTIuNS0xNC41LTIzLjMtMzAuNC0zMi40LTQ2LjItMjMuNC00MC44LTM3LjEtODQtNDIuNy0xMTEuNy0xLjEtNS4yIC42LTEwLjcgNC40LTE0LjVzOS4yLTUuNCAxNC40LTQuNGMyNy45IDUuNSA3MS4yIDE5LjIgMTEyLjIgNDIuNSAxMi4yIDYuOSAyNC4zIDE0LjggMzUuOCAyMy43LTEuNC0yOC43IDMuMS01Ny42IDEwLjMtODQgMTIuNS00NS4zIDMzLjQtODUuNSA0OS4yLTEwOWwxLjItMS42QzI0Ni45IDIgMjUxLjMgMCAyNTYgMHoiXX0sRFJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb29mIixpY29uOls1NzYsNTEyLFtdLCJlNTM3IiwiTTMwMi4zLTEyLjZjLTktNC41LTE5LjYtNC41LTI4LjYgMGwtMjU2IDEyOEMxLjkgMTIzLjMtNC41IDE0Mi41IDMuNCAxNTguM3MyNy4xIDIyLjIgNDIuOSAxNC4zTDI4OCA1MS44IDUyOS43IDE3Mi42YzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOWwtMjU2LTEyOHpNMjg4IDI3MmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptMCA0OGMtNTMgMC05NiA0My05NiA5NmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC01My00My05Ni05Ni05NnpNMTYwIDI1NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0zNTIgMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xMTIgMzM2Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDMzLjFjMCAxNyAxMy44IDMwLjkgMzAuOSAzMC45bDg3LjggMGMtNC4zLTkuOC02LjctMjAuNi02LjctMzJsMC00OGMwLTE4LjQgMy41LTM2IDkuOC01Mi4yLTEyLjItNy41LTI2LjUtMTEuOC00MS44LTExLjh6TTQyNS40IDQ4MGw4Ny44IDBjMTcgMCAzMC45LTEzLjggMzAuOS0zMC45bDAtMzMuMWMwLTQ0LjItMzUuOC04MC04MC04MC0xNS4zIDAtMjkuNiA0LjMtNDEuOCAxMS44IDYuMyAxNi4yIDkuOCAzMy44IDkuOCA1Mi4ybDAgNDhjMCAxMS40LTIuNCAyMi4yLTYuNyAzMnoiXX0sQVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpc2Vhc2UiLGljb246WzUxMiw1MTIsW10sImY3ZmEiLCJNMjM2LjUgMjkuNEwyMjQgNDhjLTIwIDMwLTUzLjYgNDgtODkuNyA0OEw2OCA5NmMtMzcuNSAwLTY3LjkgMzAuNC02Ny45IDY3LjkgMCAxOCA3LjIgMzUuMiAxOS45IDQ3LjlsMjcgMjdjMTEgMTEgMTcuMiAyNS45IDE3LjIgNDEuNSAwIDE1LjgtNi40IDMwLjktMTcuNyA0MkwzMy40IDMzNS4xYy0xMS4xIDEwLjgtMTcuMyAyNS43LTE3LjMgNDEuMiAwIDM2LjggMzQuMSA2NC4yIDcwLjEgNTYuMmw2Mi4zLTEzLjhjNy43LTEuNyAxNS43LTIuNiAyMy42LTIuNiAzMi44IDAgNjQuMiAxNC42IDg1LjIgMzkuOGwzMC41IDM2LjZjMTAuNCAxMi40IDI1LjcgMTkuNiA0MS45IDE5LjYgMzAuMSAwIDU0LjUtMjQuNCA1NC41LTU0LjVsMC01MS4yYzAtNDEuNCAyNS40LTc4LjUgNjQtOTMuNWwyMi4yLTguNmMyNS4yLTkuOCA0MS44LTM0LjEgNDEuOC02MS4xIDAtMjYuNC0xNS45LTUwLjMtNDAuMy02MC41TDQyOSAxNjQuOGMtMzMuMi0xMy45LTU3LjYtNDMtNjUuNS03OC4xbC03LjktMzUuMmMtNi44LTMwLjEtMzMuNS01MS41LTY0LjMtNTEuNS0yMiAwLTQyLjYgMTEtNTQuOCAyOS40ek0xNjAgMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHdoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWJpYmxlIixpY29uOls0NDgsNTEyLFsiYmlibGUiXSwiZjY0NyIsIk05NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NkMwIDQzIDQzIDAgOTYgMEw0MDAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDIwLjktMTMuNCAzOC43LTMyIDQ1LjNsMCA2Ni43YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDUxMnptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDAgMC02NC0yNTYgMHpNMTkyIDgwbDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyIDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFBSdD13aGUsRVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDNjIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDY0bDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwem02NCAxMjhsNjQgMCAwLTY0LTY0IDAgMCA2NHptMCA2NGwwLTY0LTY0IDAgMCA2NCA2NCAwem02NCAwbC02NCAwIDAgNjQgNjQgMCAwLTY0em0wIDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sSVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMiLGljb246WzUxMiw1MTIsWzk3OTRdLCJmMjIyIiwiTTMyMCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMzMiA0MDEuMiAzMiAzMDQgMTEwLjggMTI4IDIwOCAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yMDggNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sTlJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcCIsaWNvbjpbNjQwLDUxMixbMTI4MTg3XSwiZjEwOSIsIk0xMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMjQwIDY0IDAgMC0yNDAgMzg0IDAgMCAyNDAgNjQgMCAwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJ6TTE5LjIgMzg0QzguNiAzODQgMCAzOTIuNiAwIDQwMy4yIDAgNDQ1LjYgMzQuNCA0ODAgNzYuOCA0ODBsNDg2LjQgMGM0Mi40IDAgNzYuOC0zNC40IDc2LjgtNzYuOCAwLTEwLjYtOC42LTE5LjItMTkuMi0xOS4yTDE5LjIgMzg0eiJdfSxNaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci14bWFyayIsaWNvbjpbNTc2LDUxMixbInVzZXItdGltZXMiXSwiZjIzNSIsIk0yNTQuMSAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNDYuMSA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zbDU5LjQgMHpNNTMwLjMgMTA4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjl6TTIyNC40IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LFJSdD1NaGUsT1J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWctdXNhIixpY29uOls0NDgsNTEyLFtdLCJmNzRkIiwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJsMCAxNiA2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjUgNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFsMCAzNi4xLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtMjAuMy05LTQxLjgtMTQuNy02My42LTE2LjlsMCAzMi4yYzE3LjQgMi4xIDM0LjQgNi43IDUwLjYgMTMuOWwxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDYyLTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDYxLjktNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zbC02My41IDEzLjYgMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgMzMuNWMwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjQtMzcuOS0xOS04MS40LTIzLjctMTIyLjUtMTMuNEw2NCA0MDAgNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6bTgwIDk2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tMzIgNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LEZSdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLW1pZGRsZS1maW5nZXIiLGljb246WzQ0OCw1MTIsWzEyODQwNV0sImY4MDYiLCJNMjMyIDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgMTY0LjJjLTguNS03LjYtMTkuNy0xMi4yLTMyLTEyLjItMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTU1LjdjLTIgMS40LTMuOSAzLTUuOCA0LjVMNTUgMjg0LjhDNDAuNCAyOTcgMzIgMzE1IDMyIDMzNEwzMiAzNzJjMCAzOCAxNi45IDc0IDQ2LjEgOTguM2w1LjQgNC41YzI4LjggMjQgNjUgMzcuMSAxMDIuNCAzNy4xTDMwNCA1MTJjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OC0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zLTEuOS0yNC44LTIyLjYtNDQuMy00Ny45LTQ0LjMtMTIuMyAwLTIzLjUgNC42LTMyIDEyLjJMMjcyIDQwYzAtMjIuMS0xNy45LTQwLTQwLTQweiJdfSxCUnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9ydGFyLXBlc3RsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjVhNyIsIk01MDQuMyAxMS4xQzQ5My4zLTEuNiA0NzQuNS0zLjcgNDYxIDYuMkwyNTIuMyAxNjAgMzk3LjMgMTYwIDUwMi42IDU0LjZjMTEuOC0xMS44IDEyLjYtMzAuOCAxLjYtNDMuNXpNMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzAgODIuNSA0My40IDE0Ny43IDEyMy45IDE3Ni4yLTExLjEgMTMuOS0xOS40IDMwLjMtMjMuOSA0OC4xLTQuNCAxNy4xIDEwLjQgMzEuNyAyOC4xIDMxLjdsMTkyIDBjMTcuNyAwIDMyLjQtMTQuNiAyOC4xLTMxLjctNC41LTE3LjgtMTIuOC0zNC4xLTIzLjktNDguMSA4MC41LTI4LjYgMTIzLjktOTMuNyAxMjMuOS0xNzYuMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxOTJ6Il19LEhSdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtY291Z2giLGljb246WzUxMiw1MTIsW10sImUwNjEiLCJNOTYgNTEybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNmwxIDBjMjYgMCA0Ny0yMSA0Ny00NyAwLTExLTMuOS0yMS42LTEwLjktMzAuMUwyNzMuMyAyMDBDMjcxLjQgMTk3LjYgMjcwLjEgMTk0LjcgMjY5LjcgMTkxLjcgMjU0IDgzLjMgMTYwLjcgMCA0OCAwIDQwLjQgMCAzMi45IC40IDI1LjQgMS4xIDEwLjUgMi42IDAgMTUuOSAwIDMwLjlMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMHptMTYtMzIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTYzLjEgMjM3LjJsLTQxLjUtMy41Yy0xMi4yLTEtMjEuNi0xMS4yLTIxLjYtMjMuNCAwLTEwLjggNy4zLTIwLjIgMTcuOC0yMi44bDQwLjQtMTAuMWMxOS4yLTQuOCAzNy44IDkuNyAzNy44IDI5LjUgMCAxNy44LTE1LjIgMzEuOC0zMi45IDMwLjN6TTQ4MCAzMTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0tNDAgMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptLTY0IDQ4YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTEyOCAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTQ4MCA1MDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0tNDAtNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0scVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1NTgiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA4Mi4xIDc1LjJDNDA5LjcgMjQ4LjEgNDAwIDI3NC45IDQwMCAzMDRsMCAyNC40Yy03LjMgNi42LTEzLjYgMTQuMi0xOC43IDIyLjdsLTM3LjMtMTIuNCAwIDk5LjcgMjQgMTkuMiAwIDM4LjNjMCAxMy41IDIuOCAyNi40IDcuOCAzOC4xTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek01NjAgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxraGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS10aHJlZS1xdWFydGVycyIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktNCJdLCJmMjQxIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0yMjQgMHoiXX0sVlJ0PWtoZSxqUnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnJhbmMtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTE4ZiIsIk04MCAzMkM2Mi4zIDMyIDQ4IDQ2LjMgNDggNjRsMCAyNTYtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC02NCAxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTQ0IDAgMC05NiAxNzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCAzMnoiXX0sU2hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbHRlci1jaXJjbGUtZG9sbGFyIixpY29uOls1NzYsNTEyLFsiZnVubmVsLWRvbGxhciJdLCJmNjYyIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzIuNSAyLjUgNS4zIDQuNSA4LjMgNi0yMS4yLTMwLjktMzMuNi02OC4zLTMzLjYtMTA4LjYgMC05OS40IDc1LjUtMTgxLjEgMTcyLjMtMTkxbDkwLjQtOTAuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNNDE2IDMyMGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00NS44IDBjLTUuNiAwLTEwLjIgNC42LTEwLjIgMTAuMiAwIDQuOSAzLjUgOS4xIDguMyAxMGw0NSA4LjJjMjAgMy42IDM0LjYgMjEuMSAzNC42IDQxLjUgMCAyMy4zLTE4LjkgNDIuMi00Mi4yIDQyLjJsLTUuOCAwIDAgOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1My44IDBjNS42IDAgMTAuMi00LjYgMTAuMi0xMC4yIDAtNC45LTMuNS05LjEtOC4zLTEwbC00NS04LjJjLTIwLTMuNi0zNC42LTIxLjEtMzQuNi00MS41IDAtMjIuNiAxNy43LTQxIDQwLTQyLjFsMC04LjF6Il19LFVSdD1TaGUsV1J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWVzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlZiIsIk01MTIgMjQwLjJsMCAxNS44LTUxMiAwYzAtMjAgMTAtMzguNyAyNi42LTQ5LjhMMjc0LjkgNDAuN2M4LjYtNS43IDE4LjYtOC43IDI4LjktOC43IDExNSAwIDIwOC4yIDkzLjIgMjA4LjIgMjA4LjJ6bTAgNjMuOGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTEyIDUxMiAweiJdfSx6aGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWgiLGljb246WzUxMiw1MTIsWzk0MDUsImhvc3BpdGFsLXN5bWJvbCJdLCJmNDdlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem05Ni0zNDRsMCAxNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NC05NiAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDk2IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxHUnQ9emhlLFlSdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wiLGljb246WzU3Niw1MTIsWzEyNzk3OV0sImY1NDkiLCJNMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjcuOS0xMTUuMWMxOC4zLTE2LjQgNDYtMTYuNCA2NC4yIDBMNDQ4IDEyOCA1MTIgMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTIyNCAzNzZsMCA4OCAxMjggMCAwLTg4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHptLTExMiA4YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek0yODggMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4eiJdfSxLUnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1maXZlIixpY29uOls0NDgsNTEyLFs5ODYwXSwiZjUyMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTk2IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0yMjQgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQtNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMTYwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWlJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvcm5hZG8iLGljb246WzQ0OCw1MTIsWzEyNzc4Nl0sImY3NmYiLCJNMCAzMkwwIDQ1LjZDMCA2Mi43IDEuNyA3OS42IDUgOTZsMzUyLjggMGMzLjItNi45IDcuNS0xMy4zIDEzLTE4LjhsMzguNi0zOC42YzQuMi00LjIgNi42LTEwIDYuNi0xNiAwLTEyLjUtMTAuMS0yMi42LTIyLjYtMjIuNkwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMnpNMzU1LjcgMTQ0bC0zMzYgMGMxMi40IDI5LjcgMzAuMiA1Ni44IDUyLjcgODBsMzM5LjYgMC00Ny4yLTYyLjljLTMuOS01LjItNy0xMS05LjItMTcuMXpNMjQyLjYgMzM0LjdjOC4yIDQuOCAxNS44IDEwLjcgMjIuNSAxNy4zTDQ0NSAzNTJjMi05LjggMy0xOS45IDMtMzAuMSAwLTE3LjEtMi45LTM0LTguNi00OS45TDEzNiAyNzIgMjQyLjYgMzM0Ljd6TTI5NC4zIDQwMGM1LjMgMTcgNi41IDM1LjIgMy42IDUzbC01LjkgMzUuN2MtMiAxMi4yIDcuNCAyMy40IDE5LjggMjMuNCA1LjMgMCAxMC40LTIuMSAxNC4yLTUuOWw3OC4yLTc4LjJjOC41LTguNSAxNS44LTE3LjggMjEuOS0yNy45bC0xMzEuOCAweiJdfSxDaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXIiLGljb246WzU3Niw1MTIsWyJmaWdodGVyLWpldCJdLCJmMGZiIiwiTTQ5Ni4yIDIwNi44Yy0xMC43LTQuNS0yMi4yLTYuOC0zMy44LTYuOEwzNjIgMjAwIDI0OCA0OCAyOTYgNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgMCAyOTYgMEwxNTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4IDAgMCAxNTItNTQuNCAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNkwxNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDg4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA4OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQuMyAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgNTQuNCAwIDAgMTUyLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAxMTQtMTUyIDEwMC40IDBjMTEuNiAwIDIzLjEtMi4zIDMzLjgtNi44bDY1LTI3LjFjOC45LTMuNyAxNC44LTEyLjUgMTQuOC0yMi4ycy01LjgtMTguNC0xNC44LTIyLjJsLTY1LTI3LjF6Il19LFhSdD1DaGUsUVJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM4NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDYuMy0xLjMgMTIuMi0zLjQgMTcuNyAyMC40IDUuNSAzNS40IDI0LjEgMzUuNCA0Ni4zIDAgOS4xLTIuNiAxNy42LTcgMjQuOSAyMi4yIDQuMiAzOSAyMy43IDM5IDQ3LjEgMCAxOS43LTExLjkgMzYuNi0yOC45IDQ0IDE3IDcuNCAyOC45IDI0LjMgMjguOSA0NCAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDAgMjguMiA3MC40YzIuNSA2LjMgMy44IDEzLjEgMy44IDE5LjlsMCA0LjJjMCAyNy4zLTIyLjEgNDkuNC00OS40IDQ5LjQtMTguNyAwLTM1LjgtMTAuNi00NC4yLTI3LjNMMTcwLjEgMzU2LjNjLTYuNy0xMy4zLTEwLjEtMjgtMTAuMS00Mi45bDAtMTg2LjZjMC0xOS40IDguOS0zNy44IDI0LTUwbDEyLjItOS43QzIyNC42IDQ0LjQgMjU5LjggMzIgMjk2LjEgMzJMMzg0IDMyek04MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHoiXX0sSlJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyb29tIixpY29uOls1NzYsNTEyLFsxMjk1MjldLCJmNTFhIiwiTTU2Ni42IDU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTItMzQuNy0zNC43Yy00LjItNC4yLTEwLTYuNi0xNi02LjYtMTIuNSAwLTIyLjYgMTAuMS0yMi42IDIyLjZsMCAyOS4xIDEwOC4zIDEwOC4zIDI5LjEgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0zNC43LTM0LjcgMTkyLTE5MnpNMzQxLjEgMzUzLjRMMjIyLjYgMjM0LjljLTQyLjctMy43LTg1LjIgMTEuNy0xMTUuOCA0Mi4zbC04IDhjLTIyLjMgMjIuMy0zNC44IDUyLjUtMzQuOCA4NCAwIDYuOCA3LjEgMTEuMiAxMy4yIDguMmw1MS4xLTI1LjVjNS0yLjUgOS41IDQuMSA1LjQgNy45TDcuMyA0NzMuNEMyLjcgNDc3LjYgMCA0ODMuNiAwIDQ4OS45IDAgNTAyLjEgOS45IDUxMiAyMi4xIDUxMmwxNzMuMyAwYzM4LjggMCA3NS45LTE1LjQgMTAzLjQtNDIuOCAzMC42LTMwLjYgNDUuOS03My4xIDQyLjMtMTE1Ljh6Il19LF9oZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWltcG9ydCIsaWNvbjpbMzg0LDUxMixbImFycm93LXJpZ2h0LXRvLWZpbGUiXSwiZjU2ZiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxODIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTE4Mi4xIDAgMCA5NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2eiJdfSxlT3Q9X2hlLFRoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1dGVuc2lscyIsaWNvbjpbNTEyLDUxMixbMTI3ODYwLDYxNjg1LCJjdXRsZXJ5Il0sImYyZTciLCJNNjMuOSAxNC40QzYzLjEgNi4yIDU2LjIgMCA0OCAwcy0xNS4xIDYuMi0xNiAxNC4zTDE3LjkgMTQ5LjdjLTEuMyA2LTEuOSAxMi4xLTEuOSAxOC4yIDAgNDUuOSAzNS4xIDgzLjYgODAgODcuN0w5NiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNC40YzQ0LjktNC4xIDgwLTQxLjggODAtODcuNyAwLTYuMS0uNi0xMi4yLTEuOS0xOC4yTDIyMy45IDE0LjNDMjIzLjEgNi4yIDIxNi4yIDAgMjA4IDBzLTE1LjEgNi4yLTE1LjkgMTQuNEwxNzguNSAxNDkuOWMtLjYgNS43LTUuNCAxMC4xLTExLjEgMTAuMS01LjggMC0xMC42LTQuNC0xMS4yLTEwLjJMMTQzLjkgMTQuNkMxNDMuMiA2LjMgMTM2LjMgMCAxMjggMHMtMTUuMiA2LjMtMTUuOSAxNC42TDk5LjggMTQ5LjhjLS41IDUuOC01LjQgMTAuMi0xMS4yIDEwLjItNS44IDAtMTAuNi00LjQtMTEuMS0xMC4xTDYzLjkgMTQuNHpNNDQ4IDBDNDMyIDAgMzIwIDMyIDMyMCAxNzZsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSx0T3Q9VGhlLGFPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1iYWRnZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJjMSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwem05NiAzNTJsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDQ4Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE1MiA2NGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxyT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BpZGVyIixpY29uOls1MTIsNTEyLFsxMjgzNzVdLCJmNzE3IiwiTTM2OS4zLTMxYzExLjktMy41IDI0LjQgMi43IDI5IDEzLjlsLjggMi4zIDQwIDEzNmMyLjUgOC40IC4xIDE3LjUtNi4xIDIzLjdsLTY0LjEgNjQuMSA3Ni40LTIwLjggMTkuOS01OS44IC45LTIuM2M1LTExLjEgMTcuNy0xNi44IDI5LjUtMTIuOSAxMS44IDMuOSAxOC41IDE2LjEgMTUuOCAyOGwtLjcgMi40LTI0IDcyYy0yLjUgNy42LTguNyAxMy40LTE2LjUgMTUuNmwtOTEuMSAyNC44IDkxLjEgMjQuOGM3LjcgMi4xIDEzLjkgOCAxNi41IDE1LjZsMjQgNzIgLjcgMi40YzIuNyAxMS45LTQuMSAyNC4xLTE1LjggMjgtMTEuOCAzLjktMjQuNS0xLjgtMjkuNS0xMi45bC0uOS0yLjMtMTkuOS01OS44LTc2LjQtMjAuOCA2NC4xIDY0LjFjNi4xIDYuMSA4LjUgMTUuMSA2LjIgMjMuNGwtNDAgMTQ0LS44IDIuM2MtNC40IDExLjMtMTYuOCAxNy43LTI4LjggMTQuNC0xMi0zLjMtMTkuMy0xNS4yLTE3LjItMjcuMmwuNS0yLjQgMzYuMi0xMzAuNS0zNy4yLTM3LjJDMzUxIDQwNiAzMDguNCA0NDggMjU2IDQ0OHMtOTUtNDItOTYtOTQuMWwtMzcgMzcgMzYgMTIyLjMgLjYgMi40YzIuMiAxMS45LTQuOSAyMy45LTE2LjggMjcuNC0xMS45IDMuNS0yNC40LTIuNy0yOS0xMy45bC0uOC0yLjMtNDAtMTM2Yy0yLjUtOC40LS4xLTE3LjUgNi4xLTIzLjhsNjQuMS02NC4xLTc2LjQgMjAuOC0xOS45IDU5LjgtLjkgMi4zYy01IDExLjEtMTcuNyAxNi44LTI5LjUgMTIuOXMtMTguNS0xNi4xLTE1LjgtMjhsLjctMi40IDI0LTcyYzIuNS03LjYgOC43LTEzLjQgMTYuNS0xNS42bDkxLjEtMjQuOC05MS4xLTI0LjhjLTcuNy0yLjEtMTMuOS04LTE2LjUtMTUuNmwtMjQtNzItLjctMi40Yy0yLjctMTEuOSA0LjEtMjQuMSAxNS44LTI4czI0LjUgMS44IDI5LjUgMTIuOWwuOSAyLjMgMTkuOSA1OS44IDc2LjQgMjAuOC02NC4xLTY0LjFjLTYuMi02LjItOC41LTE1LjMtNi4xLTIzLjdsNDAtMTM2IC44LTIuM2M0LjYtMTEuMyAxNy4xLTE3LjQgMjktMTMuOSAxMS45IDMuNSAxOSAxNS41IDE2LjggMjcuNGwtLjYgMi40LTM2IDEyMi4zIDUzIDUzYzEtNDMuMyAzNi40LTc4LjEgNzkuOS03OC4xczc4LjkgMzQuOCA3OS45IDc4LjJsNTMuMS01My4xLTM2LTEyMi4zLS42LTIuNGMtMi4yLTEyIDQuOS0yMy45IDE2LjgtMjcuNHoiXX0sc090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1yZXRybyIsaWNvbjpbMzg0LDUxMixbXSwiZTUyNyIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6bTgwIDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem04IDE5MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHptNjQtNzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0ek0xNjggNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sTGhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25zLXBvc3QiLGljb246WzUxMiw1MTIsWyJtYXAtc2lnbnMiXSwiZjI3NyIsIk0yNTYuNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwIDAgNjQtMTUzLjQgMGMtNC4yIDAtOC4zIDEuNy0xMS4zIDQuN2wtNDggNDhjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQ4IDQ4YzMgMyA3LjEgNC43IDExLjMgNC43bDE1My40IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC02NCAxNTMuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNDgtNDhjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTQ4LTQ4Yy0zLTMtNy4xLTQuNy0xMS4zLTQuN2wtMTUzLjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxpT3Q9TGhlLG9PdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncm91cC1hcnJvd3Mtcm90YXRlIixpY29uOls1MTIsNTEyLFtdLCJlNGY2IiwiTTM3LjYgMTIyLjNjLTExLjUgMTguNy0yMC42IDM5LTI3IDYwLjUtNSAxNi45IDQuNiAzNC44IDIxLjUgMzkuOHMzNC44LTQuNiAzOS44LTIxLjVjMTguNC02MS45IDY3LjMtMTEwLjggMTI5LjItMTI5LjIgMTYuOS01IDI2LjYtMjIuOSAyMS41LTM5LjhTMTk5LjggNS42IDE4Mi45IDEwLjZDMTYxLjQgMTcgMTQxLjEgMjYuMSAxMjIuMyAzNy42IDExMi4zIDE1LjQgODkuOSAwIDY0IDAgMjguNyAwIDAgMjguNyAwIDY0IDAgODkuOSAxNS40IDExMi4zIDM3LjYgMTIyLjN6bTQzNi43IDBjMjIuMi0xMCAzNy42LTMyLjQgMzcuNi01OC4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI1LjkgMC00OC4zIDE1LjQtNTguMyAzNy42LTE4LjctMTEuNS0zOS0yMC42LTYwLjUtMjctMTYuOS01LTM0LjggNC42LTM5LjggMjEuNXM0LjYgMzQuOCAyMS41IDM5LjhjNjEuOSAxOC40IDExMC44IDY3LjMgMTI5LjIgMTI5LjIgNSAxNi45IDIyLjkgMjYuNiAzOS44IDIxLjVzMjYuNi0yMi45IDIxLjUtMzkuOGMtNi40LTIxLjUtMTUuNS00MS44LTI3LTYwLjV6TTUxMiA0NDhjMC0yNS45LTE1LjQtNDguMy0zNy42LTU4LjMgMTEuNS0xOC43IDIwLjYtMzkgMjctNjAuNSA1LTE2LjktNC42LTM0LjgtMjEuNS0zOS44cy0zNC44IDQuNi0zOS44IDIxLjVjLTE4LjQgNjEuOS02Ny4zIDExMC44LTEyOS4yIDEyOS4yLTE2LjkgNS0yNi42IDIyLjktMjEuNSAzOS44czIyLjkgMjYuNiAzOS44IDIxLjVjMjEuNS02LjQgNDEuOC0xNS41IDYwLjUtMjcgMTAgMjIuMiAzMi40IDM3LjYgNTguMyAzNy42IDM1LjMgMCA2NC0yOC43IDY0LTY0ek0zNy42IDM4OS43Yy0yMi4yIDEwLTM3LjYgMzIuNC0zNy42IDU4LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjUuOSAwIDQ4LjMtMTUuNCA1OC4zLTM3LjYgMTguNyAxMS41IDM5IDIwLjYgNjAuNSAyNyAxNi45IDUgMzQuOC00LjYgMzkuOC0yMS41cy00LjYtMzQuOC0yMS41LTM5LjhjLTYxLjktMTguNC0xMTAuOC02Ny4zLTEyOS4yLTEyOS4yLTUtMTYuOS0yMi45LTI2LjYtMzkuOC0yMS41UzUuNiAzMTIuMiAxMC42IDMyOS4xYzYuNCAyMS41IDE1LjUgNDEuOCAyNyA2MC41ek0yNTYgMTkyYzE1LjYgMCAzMCA1LjYgNDEuMSAxNC45bC0xNS4zIDE1LjNjLTYuNiA2LjYtMS45IDE3LjggNy40IDE3LjhsNjAuNSAwYzUuNyAwIDEwLjQtNC43IDEwLjQtMTAuNGwwLTYwLjVjMC05LjMtMTEuMi0xMy45LTE3LjgtNy40bC0xMS4yIDExLjJjLTE5LjgtMTcuOS00Ni4yLTI4LjktNzUuMS0yOC45LTQzLjYgMC04MS4zIDI0LjktOTkuOCA2MS4xLTYgMTEuOC0xLjQgMjYuMyAxMC40IDMyLjNzMjYuMyAxLjQgMzIuMy0xMC40YzEwLjYtMjAuOCAzMi4yLTM0LjkgNTctMzQuOXptNTguNiA5My4xYy0xMC42IDIwLjgtMzIuMiAzNC45LTU3IDM0LjktMTUuNyAwLTMwLTUuNi00MS4xLTE0LjlsMTUuMy0xNS4zYzYuNi02LjYgMS45LTE3LjgtNy40LTE3LjhMMTY0IDI3MmMtNS43IDAtMTAuNCA0LjctMTAuNCAxMC40bDAgNjAuNWMwIDkuMyAxMS4yIDEzLjkgMTcuOCA3LjRsMTEuMi0xMS4yYzE5LjggMTcuOSA0Ni4yIDI4LjkgNzUuMSAyOC45IDQzLjYgMCA4MS4zLTI0LjkgOTkuOC02MS4xIDYtMTEuOCAxLjQtMjYuMy0xMC40LTMyLjNzLTI2LjMtMS40LTMyLjMgMTAuNHoiXX0sbk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1zcGxpdC11cC1hbmQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYyIsIk0zNDIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNDEuNC00MS40IDAgMTk1LjljLTE4LjgtMTAuOS00MC43LTE3LjEtNjQtMTcuMWwtMTE0LjcgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDMyMCAyMjQgMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSxsT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbC1kcmlwIixpY29uOls1NzYsNTEyLFtdLCJmNTc2IiwiTTMwOS43IDcxLjZsLTY0LjQgNjQuNCAzMy40IDMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTMzLjQtMzMuNC05Ni40IDk2LjRjLTIuOSAyLjktNS4xIDYuNS02LjMgMTAuM2wzMjEuNSAwIDUzLjctNTMuN2M0LjktNC45IDcuNi0xMS41IDcuNi0xOC4zcy0yLjctMTMuNS03LjYtMTguM0wzNDYuMyA3MS42QzM0MS41IDY2LjcgMzM0LjkgNjQgMzI4IDY0cy0xMy41IDIuNy0xOC4zIDcuNnpNNTguMyAyMzIuNGw5Ni40LTk2LjQtNDkuNC00OS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDIwMCA5MC43IDI2NC40IDI2LjNDMjgxLjMgOS41IDMwNC4xIDAgMzI4IDBzNDYuNyA5LjUgNjMuNiAyNi4zTDUxNy43IDE1Mi40QzUzNC41IDE2OS4zIDU0NCAxOTIuMSA1NDQgMjE2cy05LjUgNDYuNy0yNi4zIDYzLjZMMzExLjYgNDg1LjdDMjk0LjcgNTAyLjUgMjcxLjkgNTEyIDI0OCA1MTJzLTQ2LjctOS41LTYzLjYtMjYuM0w1OC4zIDM1OS42QzQxLjUgMzQyLjcgMzIgMzE5LjkgMzIgMjk2czkuNS00Ni43IDI2LjMtNjMuNnpNNTEyIDU0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNS4yIDMyLjYtNzkuNiA1MS4yLTEwOC43IDYtOS40IDE5LjUtOS40IDI1LjUgMCAxOC43IDI5LjEgNTEuMiA4My41IDUxLjIgMTA4LjcgMCAzNS4zLTI4LjcgNjQtNjQgNjR6Il19LGNPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtaGVhcnQiLGljb246WzUxMiw1MTIsW10sImU1NzQiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTI0OS42IDE4My41bDYuNCA4LjUgNi40LTguNWMxMS4xLTE0LjggMjguNS0yMy41IDQ2LjktMjMuNSAzMi40IDAgNTguNyAyNi4zIDU4LjcgNTguN2wwIDUuM2MwIDQ5LjEtNjUuOCA5OC4xLTk2LjUgMTE4LjMtOS41IDYuMi0yMS41IDYuMi0zMC45IDAtMzAuNy0yMC4yLTk2LjUtNjkuMy05Ni41LTExOC4zbDAtNS4zYzAtMzIuNCAyNi4zLTU4LjcgNTguNy01OC43IDE4LjUgMCAzNS45IDguNyA0Ni45IDIzLjV6Il19LCRoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2tpaW5nLW5vcmRpYyIsaWNvbjpbNTc2LDUxMixbInNraWluZy1ub3JkaWMiXSwiZjdjYSIsIk00MjQuOCAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptOTkuOCAxOTMuN2M3LjYgMTUuMiAxLjkgMzMuNi0xMi42IDQybDAgMTgwLjMtMzIgMCAwLTE2NC4yLTEwLjEgNWMtMjcuNCAxMy43LTYwLjcgNi4xLTc5LjQtMTguMmwtMTkuNi0yNS41LTM5LjUgNjguOCAyNC44IDEyLjRjMjkuNSAxNC43IDQyLjkgNDkuNSAzMS4xIDgwLjJsLTI4LjIgNzMuNCAxNDkuNCAwYzcuOSAwIDE1LjYtMi4zIDIyLjItNi43bDcuOS01LjNjMTEtNy40IDI1LjktNC40IDMzLjMgNi43czQuNCAyNS45LTYuNyAzMy4zbC03LjkgNS4zQzU0MyA1MDYuOSA1MjYgNTEyIDUwOC42IDUxMmwtMTg5LjEgMGMtLjUgMC0xIDAtMS41IDBMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDg4IDBjMC04LjIgMy4xLTE2LjQgOS40LTIyLjZsNzQuMS03NC4xIDEwLjItMzUuOWMxMS4zIDE4LjMgMjcuNyAzMy44IDQ4LjQgNDQuMmw0LjggMi40LTEuOSA2LjhjLTMgMTAuNS04LjYgMjAtMTYuMyAyNy43bC01MS41IDUxLjUgMTAxLjMgMCAzNy4xLTk2LjQtNTUuNi0yNy44QzIzMC40IDMxOSAyMTUuMyAyNjcgMjM5LjMgMjI3LjFsMzcuNy02Mi43LTI3LjctNy43Yy05LTIuNS0xOC4xIDMuMi0yMCAxMi4zbC01LjkgMjkuM2MtMy4xIDE1LjYtMTcuMSAyNi4zLTMyLjUgMjUuN2wtMTMwIDIwOC0zNy43IDAgMTQwLjYtMjI1Yy0zLjQtNi4zLTQuNi0xMy44LTMuMS0yMS4zbDUuOS0yOS4zYzkuMS00NS42IDU1LjEtNzMuOCA5OS45LTYxLjRsMzIuNSA5YzQ2LjcgMTMgODggNDAuOCAxMTcuNiA3OS4zbDI0LjkgMzIuMyA0MC40LTIwLjJjMTUuOC03LjkgMzUtMS41IDQyLjkgMTQuM3oiXX0sZE90PSRoZSxEaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNoZWNrIixpY29uOls0NDgsNTEyLFs5NzQ1LDk5ODksNjE1MTAsImNoZWNrLXNxdWFyZSJdLCJmMTRhIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTM0MiAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzE1LjIgMTM3IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LHVPdD1EaGUsQWhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdGgiLGljb246WzUxMiw1MTIsWzEyODcwNSwiYmF0aHR1YiJdLCJmMmNkIiwiTTk2IDc3LjNjMC03LjMgNS45LTEzLjMgMTMuMy0xMy4zIDMuNSAwIDYuOSAxLjQgOS40IDMuOWwxNC45IDE0LjljLTMuNiA5LjEtNS41IDE4LjktNS41IDI5LjIgMCAxOS45IDcuMiAzOCAxOS4yIDUyLTUuMyA5LjItNCAyMS4xIDMuOCAyOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwyODkgODljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjktNy44LTcuOS0xOS44LTkuMS0yOS0zLjgtMTQtMTItMzIuMS0xOS4yLTUyLTE5LjItMTAuMyAwLTIwLjIgMi0yOS4yIDUuNUwxNjMuOSAyMi42QzE0OS40IDguMSAxMjkuNyAwIDEwOS4zIDAgNjYuNiAwIDMyIDM0LjYgMzIgNzcuM0wzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA0OGMwIDI4LjQgMTIuNCA1NCAzMiA3MS42TDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYgMjU2IDAgMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDAuNGMxOS42LTE3LjYgMzItNDMuMSAzMi03MS42bDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMjU2IDk2IDc3LjN6Il19LHBPdD1BaGUsZk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJpc2hvcCIsaWNvbjpbMzIwLDUxMixbOTgyMV0sImY0M2EiLCJNNjQgMzg0TDQ4LjMgMzY4LjNDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTA2LjcgNjQgOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyUzc4LjMgMCA5NiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC43IDAgNDcuNiA1Ny4xLTg1LjkgODUuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDgyLjMtODIuM2MxOC43IDI3LjMgMjguNyA1OS43IDI4LjcgOTMgMCA0My43LTE3LjQgODUuNy00OC4zIDExNi42TDI1NiAzODQgMzEyLjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMMzUuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDY0IDM4NHoiXX0sUGhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbi1ib3R0bGUtbWVkaWNhbCIsaWNvbjpbMzg0LDUxMixbInByZXNjcmlwdGlvbi1ib3R0bGUtYWx0Il0sImY0ODYiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJ6TTMyIDE0NGwzMjAgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0ek0xNjAgMjQ4bDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxoT3Q9UGhlLEVoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcmF3LXBvbHlnb24iLGljb246WzUxMiw1MTIsWzU4MDU1LCJ2ZWN0b3ItcG9seWdvbiJdLCJmNWVlIiwiTTY0IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDI3My4xIDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM0LTI2LjUgNjEuOC02MCA2My45bC0yLjEgMi45LTcxLjUgOTkuMWMzLjYgOCA1LjYgMTYuOSA1LjYgMjYuMnMtMiAxOC4yLTUuNiAyNi4ybDIuMiAzLjEgNjkuMyA5NiAyLjEgMi45YzMzLjUgMi4xIDYwIDI5LjkgNjAgNjMuOSAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTI3My4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjFDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDB6TTM5NC4yIDQxMy40bC02NS41LTkwLjYtMi4yLTMuMWMtMi4xIC4yLTQuMyAuMy02LjUgLjMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMyLjIgMCA0LjQgLjEgNi41IC4zbDY3LjctOTMuN2MtLjYtLjktMS4xLTEuNy0xLjYtMi42TDExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAyNzMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjczLjEgMGMuNS0uOSAxLjEtMS44IDEuNi0yLjZ6Il19LG1PdD1FaGUsZ090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImktY3Vyc29yIixpY29uOlsyNTYsNTEyLFtdLCJmMjQ2IiwiTS4xIDI5LjNDLTEuNCA0NyAxMS43IDYyLjQgMjkuMyA2My45bDggLjdDNzAuNSA2Ny4zIDk2IDk1IDk2IDEyOC4zbDAgOTUuNy0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA5NS43YzAgMzMuMy0yNS41IDYxLTU4LjcgNjMuOGwtOCAuN0MxMS43IDQ0OS42LTEuNCA0NjUgLjEgNDgyLjdTMTcgNTEzLjQgMzQuNyA1MTEuOWw4LS43YzM0LjEtMi44IDY0LjItMTguOSA4NS40LTQyLjkgMjEuMiAyNCA1MS4yIDQwIDg1LjQgNDIuOWw4IC43YzE3LjYgMS41IDMzLjEtMTEuNiAzNC41LTI5LjJzLTExLjYtMzMuMS0yOS4yLTM0LjVsLTgtLjdDMTg1LjUgNDQ0LjcgMTYwIDQxNyAxNjAgMzgzLjdsMC05NS43IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC05NS43YzAtMzMuMyAyNS41LTYxIDU4LjctNjMuOGw4LS43YzE3LjYtMS41IDMwLjctMTYuOSAyOS4yLTM0LjVTMjM5LTEuNCAyMjEuMyAuMWwtOCAuN2MtMzQuMSAyLjgtNjQuMiAxOC45LTg1LjQgNDIuOS0yMS4yLTI0LTUxLjItNDAtODUuNC00Mi45bC04LS43QzE3LTEuNCAxLjYgMTEuNyAuMSAyOS4zeiJdfSxiT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsW10sImU1MDAiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHoiXX0sdk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1kb2ciLGljb246WzUxMiw1MTIsW10sImU1NzMiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MC45IDI4Ni4yYzQuOCAxLjIgOS45IDEuOCAxNS4xIDEuOCAzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0IDQ0LjIgMGMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43bDcuMiAxNC4zIDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDAgMCA1MC43YzAgNy4zLTUuOSAxMy4zLTEzLjMgMTMuMy0xLjggMC0zLjYtLjQtNS4yLTEuMWwtOTguNy00Mi4zYy02LjYtMi44LTEwLjgtOS4zLTEwLjgtMTYuNCAwLTIuOCAuNi01LjUgMS45LThsMTUtMzB6TTE2MCAxNjBsNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDhjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0seE90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyZWF0ZXItdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzMiIsIk0yMS45IDk0LjRDNS4xIDg4LjgtMy45IDcwLjYgMS43IDUzLjlTMjUuNCAyOC4xIDQyLjEgMzMuNmwzODQgMTI4QzQzOS4yIDE2NiA0NDggMTc4LjIgNDQ4IDE5MnMtOC44IDI2LTIxLjkgMzAuNGwtMzg0IDEyOGMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNUwzMTQuOCAxOTIgMjEuOSA5NC40ek00MTYgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMHoiXX0seU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4iLGljb246WzUxMiw1MTIsWzYyMTM1XSwiZjJiNiIsIk02NC40IDE3NS44TDI1NiAzMy45IDQ0Ny42IDE3NS44IDI4OS41IDI5M2MtOS43IDcuMi0yMS40IDExLTMzLjUgMTFzLTIzLjgtMy45LTMzLjUtMTFMNjQuNCAxNzUuOHpNMjU2LTMyYy0xMi4xIDAtMjMuOCAzLjktMzMuNSAxMUwyNS45IDEyNC43QzkuNiAxMzYuOCAwIDE1NS44IDAgMTc2LjFMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMzkuOWMwLTIwLjMtOS42LTM5LjQtMjUuOS01MS40TDI4OS41LTIxYy05LjctNy4yLTIxLjQtMTEtMzMuNS0xMXoiXX0sd090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW5kIixpY29uOls1MTIsNTEyLFtdLCJlNTJkIiwiTTExMi40IDE3OS4yQzE0MiAxMjcuNyAxOTYuOCA5NiAyNTYuMiA5NnMxMTQuMiAzMS43IDE0My45IDgzLjJMNTA4LjcgMzY4YzEyLjMgMjEuMy0zLjEgNDgtMjcuNyA0OEwzMS41IDQxNmMtMjQuNiAwLTQwLTI2LjYtMjcuNy00OEwxMTIuNCAxNzkuMnoiXX0sTU90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvaWNlbWFpbCIsaWNvbjpbNjQwLDUxMixbXSwiZjg5NyIsIk0xNDQgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0yNjMuOCAzMjBjMTUuMy0yMi45IDI0LjItNTAuNCAyNC4yLTgwIDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzAgMTYwLjUgMCAyNDAgNjQuNSAzODQgMTQ0IDM4NGwzNTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFM1NzUuNSA5NiA0OTYgOTYgMzUyIDE2MC41IDM1MiAyNDBjMCAyOS42IDguOSA1Ny4xIDI0LjIgODBsLTExMi41IDB6TTQ5NiAxNjBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6Il19LGtPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZXN0IixpY29uOls0NDgsNTEyLFtdLCJlMDg1IiwiTTIwMCA0NjRsMC0xNzAuMWMwLTMuOS0uNS03LjgtMS40LTExLjZMMTQ0LjQgNjUuNEMxNjIuMSA3Ny4yIDE4OC4yIDg4IDIyNCA4OHM2MS45LTEwLjggNzkuNi0yMi42TDI0OS40IDI4Mi4zYy0xIDMuOC0xLjQgNy43LTEuNCAxMS42TDI0OCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xOTMuNWMwLTkuNS0yLjgtMTguNy04LjEtMjYuNmwtNDcuOS03MS44Yy01LjMtNy45LTguMS0xNy4xLTguMS0yNi42TDM4NCA0OGMwLTI2LjUtMjEuNS00OC00OC00OGwtMy41IDBjLS4zIDAtLjYgMC0xIDAtLjYgMC0xLjIgMC0xLjggMC0xOC44IDAtMzQuMSA5LjctNDQuMSAxOC44LTkuMyA4LjQtMjguNSAyMS4yLTYxLjcgMjEuMnMtNTIuNC0xMi44LTYxLjctMjEuMmMtMTAtOS4xLTI1LjMtMTguOC00NC4xLTE4LjgtLjYgMC0xLjIgMC0xLjggMC0uMyAwLS42IDAtMSAwTDExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgOTcuNWMwIDkuNS0yLjggMTguNy04LjEgMjYuNkw4LjEgMjQzLjlDMi44IDI1MS44IDAgMjYxLjEgMCAyNzAuNUwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHoiXX0sU090PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF1ZGlvLWRlc2NyaXB0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmMjllIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTk2IDk2bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCA0OCAwIDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNGMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTQ4IDMybDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDggMHptMTUyLTk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtNDhjMC0zOS44LTMyLjItNzItNzItNzJsLTQ4IDB6bTQ4IDE0NGwtMjQgMCAwLTk2IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sek90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InciLGljb246WzU3Niw1MTIsWzExOV0sIjU3IiwiTTIwLjggMzRjMTYuNS02LjIgMzUgMi4yIDQxLjIgMTguN0wxNzIuMiAzNDYuNyAyNTcuMyA1NWM0LTEzLjcgMTYuNS0yMyAzMC43LTIzczI2LjcgOS40IDMwLjcgMjNMNDAzLjggMzQ2LjcgNTE0IDUyLjhjNi4yLTE2LjUgMjQuNi0yNC45IDQxLjItMTguN1M1ODAuMiA1OC43IDU3NCA3NS4ybC0xNDQgMzg0Yy00LjggMTIuOS0xNy40IDIxLjMtMzEuMiAyMC43cy0yNS43LTkuOC0yOS41LTIzTDI4OCAxNzguMyAyMDYuNyA0NTdjLTMuOSAxMy4yLTE1LjggMjIuNS0yOS41IDIzcy0yNi4zLTcuOC0zMS4yLTIwLjdMMiA3NS4yQy00LjIgNTguNyA0LjIgNDAuMiAyMC44IDM0eiJdfSxPZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWRyb3BwZXIiLGljb246WzUxMiw1MTIsWyJleWUtZHJvcHBlci1lbXB0eSIsImV5ZWRyb3BwZXIiXSwiZjFmYiIsIk0zNDEuNiAyOS4ybC0xMDEuNiAxMDEuNi05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTAxLjYtMTAxLjZjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNmwwIDQyLjQtMjYuNiAzOS45Yy04LjUgMTIuNy02LjggMjkuNiA0IDQwLjRzMjcuNyAxMi41IDQwLjQgNGwzOS45LTI2LjYgNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRsMTA5LjQtMTA5LjQtNDUuMy00NS4zLTEwOS40IDEwOS40Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN2wtMzYuMSAwIDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNHoiXX0sQ090PU9lZSxfT3Q9T2VlLFo4PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjcgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDU1IDU1IDU1LTU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNTUgNTUgNTUgNTVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNTUtNTUtNTUgNTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTUtNTUtNTUtNTVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxUT3Q9WjgsTE90PVo4LCRPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbGVyIixpY29uOls2NDAsNTEyLFtdLCJlMDQxIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5Ni40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04TDk2IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgOTZ6bTQwOCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTEyIDEzNmwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xNzYtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI2NCA0MjRhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHoiXX0sRmVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cmtpc2gtbGlyYS1zaWduIixpY29uOls0NDgsNTEyLFsidHJ5IiwidHVya2lzaC1saXJhIl0sImUyYmIiLCJNMTYwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDMuNiAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCA0Ni4xIDEyMS40LTM0LjdjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMTM0LjYgMzguNSAwIDE2Mi41IDcyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYuMi0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC00Ni4xLTI1LjQgNy4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMzguNi0xMSAwLTYxLjljMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LERPdD1GZWUsQU90PUZlZSxQT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sY2FubyIsaWNvbjpbNTEyLDUxMixbMTI3NzU1XSwiZjc3MCIsIk0xNjAgMTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE1LjcgMCAzMCA1LjYgNDEuMiAxNSAxMS4yLTE4LjYgMzEuNi0zMSA1NC44LTMxczQzLjYgMTIuNCA1NC44IDMxYzExLjEtOS40IDI1LjUtMTUgNDEuMi0xNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtMTQuNyAwLTI4LjMtNS0zOS4xLTEzLjNsLTMyIDQ4QzI3NS4zIDE4NyAyNjYgMTkyIDI1NiAxOTJzLTE5LjMtNS0yNC45LTEzLjNsLTMyLTQ4QzE4OC4zIDEzOSAxNzQuNyAxNDQgMTYwIDE0NHpNMTQ0IDM1Mmw0OC40LTI0LjJjMTAuMi01LjEgMjEuNi03LjggMzMtNy44IDE5LjYgMCAzOC40IDcuOCA1Mi4yIDIxLjZsMzIuNSAzMi41YzYuMyA2LjMgMTQuOSA5LjkgMjMuOCA5LjkgMTEuMyAwIDIxLjgtNS42IDI4LTE1bDkuNy0xNC42LTU5LTY2LjNjLTkuMS0xMC4yLTIyLjItMTYuMS0zNS45LTE2LjFsLTQxLjggMGMtMTMuNyAwLTI2LjggNS45LTM1LjkgMTYuMWwtNTkuOSA2Ny40IDQuNy0zLjV6bTE5LjQtOTUuOGMxOC4yLTIwLjUgNDQuMy0zMi4yIDcxLjgtMzIuMmw0MS44IDBjMjcuNCAwIDUzLjUgMTEuNyA3MS44IDMyLjJsMTUwLjIgMTY5YzguNSA5LjUgMTMuMiAyMS45IDEzLjIgMzQuNyAwIDI4LjgtMjMuNCA1Mi4yLTUyLjIgNTIuMkw1Mi4yIDUxMkMyMy40IDUxMiAwIDQ4OC42IDAgNDU5LjggMCA0NDcuMSA0LjcgNDM0LjcgMTMuMiA0MjUuMmwxNTAuMi0xNjl6Il19LEVPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLXNwYXJrbGVzIixpY29uOls1MTIsNTEyLFtdLCJmNzJiIiwiTTQ2NCA2LjFjOS41LTguNSAyNC04LjEgMzMgLjlsOCA4YzkgOSA5LjQgMjMuNSAuOSAzM2wtODUuOCA5NS45Yy0yLjYgMi45LTQuMSA2LjctNC4xIDEwLjdsMCAyMS40YzAgOC44LTcuMiAxNi0xNiAxNmwtMTUuOCAwYy00LjYgMC04LjkgMS45LTExLjkgNS4zTDEwMC43IDUwMC45Yy02LjMgNy4xLTE1LjMgMTEuMS0yNC44IDExLjEtOC44IDAtMTcuMy0zLjUtMjMuNS05LjhMOS43IDQ1OS43Yy02LjItNi4yLTkuNy0xNC43LTkuNy0yMy41IDAtOS41IDQtMTguNSAxMS4xLTI0LjhsMTExLjYtOTkuOGMzLjQtMyA1LjMtNy40IDUuMy0xMS45bDAtMjcuNmMwLTguOCA3LjItMTYgMTYtMTZsMzQuNiAwYzMuOSAwIDcuNy0xLjUgMTAuNy00LjFMNDY0IDYuMXpNNDMyIDI4OGMzLjYgMCA2LjcgMi40IDcuNyA1LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhsLTE0LjgtNTEuNy01MS43LTE0LjhjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01Ljh6TTg3LjcgNjkuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOEw1Ny41IDE2Ni41IDUuOCAxNTEuN2MtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHM2LjcgMi40IDcuNyA1Ljh6TTIwOCAwYzMuNyAwIDYuOSAyLjUgNy44IDYuMWw2LjggMjcuMyAyNy4zIDYuOGMzLjYgLjkgNi4xIDQuMSA2LjEgNy44cy0yLjUgNi45LTYuMSA3LjhsLTI3LjMgNi44LTYuOCAyNy4zYy0uOSAzLjYtNC4xIDYuMS03LjggNi4xcy02LjktMi41LTcuOC02LjFsLTYuOC0yNy4zLTI3LjMtNi44Yy0zLjYtLjktNi4xLTQuMS02LjEtNy44czIuNS02LjkgNi4xLTcuOGwyNy4zLTYuOCA2LjgtMjcuM2MuOS0zLjYgNC4xLTYuMSA3LjgtNi4xeiJdfSxJT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZSIsaWNvbjpbMzg0LDUxMixbXSwiZjEzMCIsIk0xOTIgMEMxMzkgMCA5NiA0MyA5NiA5NmwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTQ4IDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDE3MC43IDAgMTg0bDAgNDBjMCA5Ny45IDczLjMgMTc4LjcgMTY4IDE5MC41bDAgNDkuNS00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDkuNWM5NC43LTExLjggMTY4LTkyLjYgMTY4LTE5MC41bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCAzMDMuNSA0OCAyMjRsMC00MHoiXX0sTk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3duIixpY29uOls1NzYsNTEyLFsxMjgwODFdLCJmNTIxIiwiTTMxMyA4Ny4yYzkuMi03LjMgMTUtMTguNiAxNS0zMS4yIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMTIuNiA1LjkgMjMuOSAxNSAzMS4yTDE5NC42IDE5NC44Yy0xMCAxNS43LTMxLjMgMTkuNi00Ni4yIDguNEw4OC45IDE1OC43YzQuNS02LjQgNy4xLTE0LjMgNy4xLTIyLjcgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCAyMS44IDE3LjUgMzkuNiAzOS4yIDQwTDg3LjggMzkzLjVjNC43IDMxLjMgMzEuNiA1NC41IDYzLjMgNTQuNWwyNzMuOCAwYzMxLjcgMCA1OC42LTIzLjIgNjMuMy01NC41TDUyMC44IDE3NmMyMS43LS40IDM5LjItMTguMiAzOS4yLTQwIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgOC40IDIuNiAxNi4zIDcuMSAyMi43bC01OS40IDQ0LjZjLTE0LjkgMTEuMi0zNi4yIDcuMy00Ni4yLTguNEwzMTMgODcuMnoiXX0sUk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctdHVybi1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJlNTgwIiwiTS0uNSAxMTNsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAzNTAuMSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0YzAtNDguNi0zOS40LTg4LTg4LTg4bC0zNTAuMSAwIDMxLTMxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzgwLjktMi4zIDcxLjUgN0wtLjUgNzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45ek02MC4zIDI5Mi42TDM3LjEgNDc2Yy0yLjQgMTkuMSAxMi41IDM2IDMxLjcgMzZsMTU0LjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExNy40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45bDY4LjIgMTM2LjVjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w3MS45IDBjMTkuMyAwIDM0LjItMTYuOSAzMS43LTM2TDQ1Mi43IDI5Mi43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwyNzEuOSAxNjkuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUw3NS40IDI2OS4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6Il19LEloZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1mYXN0IixpY29uOls2NDAsNTEyLFsic2hpcHBpbmctZmFzdCJdLCJmNDhiIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYyMS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDY0MCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTMuMyAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTQ4LTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDE0NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTMTAuNyA5NiAyNCA5Nmw0MCAwek01NzYgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMjU2IDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxPT3Q9SWhlLE5oZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXBlbiIsaWNvbjpbNjQwLDUxMixbInVzZXItZWRpdCJdLCJmNGZmIiwiTTI1Ni4xIDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Yy05OC41IDAtMTc4LjMgNzkuOC0xNzguMyAxNzguMyAwIDE2LjQgMTMuMyAyOS43IDI5LjcgMjkuN2wxOTYuNSAwIDEwLjktNTQuNWM0LjMtMjEuNyAxNS00MS42IDMwLjYtNTcuMmw2Ny4zLTY3LjNjLTI4LTE4LjMtNjEuNC0yOC45LTk3LjQtMjguOWwtNTkuNCAwek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LEZPdD1OaGUsQk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2xvY2siLGljb246WzU3Niw1MTIsW10sImY0ZmQiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzMuOSAwIDcuOSAuMSAxMS44IC40LTE2LjIgMjguMi0yNS41IDYwLjgtMjUuNSA5NS42IDAgNDEuOCAxMy40IDgwLjUgMzYgMTEyTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxIT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvd2VyIixpY29uOls1MTIsNTEyLFsxMjg3MDNdLCJmMmNjIiwiTTY0IDEzMS45YzAtMTkuOCAxNi4xLTM1LjkgMzUuOS0zNS45IDkuNSAwIDE4LjYgMy44IDI1LjQgMTAuNWwxNi4yIDE2LjJjLTIxIDM4LjktMTcuNCA4Ny41IDEwLjkgMTIzTDE1MSAyNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwzNDUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTEuMyAxLjNjLTM1LjUtMjguMy04NC4xLTMxLjktMTIzLTEwLjlMMTcwLjUgNjEuM0MxNTEuOCA0Mi41IDEyNi40IDMyIDk5LjkgMzIgNDQuNyAzMiAwIDc2LjcgMCAxMzEuOUwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzE2LjF6TTI1NiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzItMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxSaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDE2MGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0scU90PVJoZSxPaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uIixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZCJdLCJmNTlmIiwiTTU3NiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEw0MTMuNSA3Ny41IDIzNC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM3MC44IDg4LjggNjQgOTkuOSA2NCAxMTJsMCAzNTJjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3My4zIDU3LjhjLTQuMy02LjQtOC41LTEzLjEtMTIuNi0xOS45LTExLTE4LjMtMjEuOS0zOS4zLTMwLTYxLjhsLTEwMS4yLTMzLjcgMC0yODQuNSAxMjggNDIuNyAwIDk5LjNjMzEtMzUuOCA3Ny01OC40IDEyOC01OC40IDIyLjYgMCA0NC4yIDQuNCA2NCAxMi41TDU3NiA0OHpNMzkyIDM0MS45YzAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOVMzOTIgMjc2LjggMzkyIDM0MS45eiJdfSxWT3Q9T2hlLGpPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tZmFuY3kiLGljb246WzUxMiw1MTIsWzEyODM5NSwxMDAwMl0sImY1YWMiLCJNMzczLjUgMjcuMWMxNS0xNy4yIDM2LjctMjcuMSA1OS42LTI3LjEgNDMuNiAwIDc5IDM1LjQgNzkgNzkgMCAyMi44LTkuOSA0NC42LTI3LjEgNTkuNkwyODMuNyAzMTMuOCAyNzMgMzAzIDIwOSAyMzkgMTk4LjIgMjI4LjMgMzczLjUgMjcuMXpNMTYxLjEgMjU5QzE2MiAyNjAgMTg4IDI4NiAyMzkgMzM3bDEzLjkgMTMuOS0xNy4xIDc0LjJjLTMuOSAxNy4xLTE2LjkgMzAuNy0zMy44IDM1LjRsLTE2OS44IDQ3LjUgOTIuMy05Mi4zYzEuMiAuMSAyLjMgLjIgMy41IC4yIDE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJjMCAxLjIgLjEgMi40IC4yIDMuNUwzLjkgNDc5LjggNTEuNSAzMTBjNC43LTE2LjkgMTguMy0yOS45IDM1LjQtMzMuOEwxNjEuMSAyNTl6Il19LEJlZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJldXJvLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjQsImV1ciIsImV1cm8iXSwiZjE1MyIsIk03My4zIDE5MkMxMDAuOCA5OS41IDE4Ni41IDMyIDI4OCAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy02NS42IDAtMTIyIDM5LjUtMTQ2LjcgOTZMMjcyIDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQzLjIgMGMtLjUgNS4zLS44IDEwLjYtLjggMTZzLjMgMTAuNyAuOCAxNkwyNzIgMjcyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMzAuNyAwYzI0LjcgNTYuNSA4MS4xIDk2IDE0Ni43IDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTEwMS41IDAtMTg3LjItNjcuNS0yMTQuNy0xNjBMNDAgMzIwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0LjYgMGMtLjctMTAuNS0uNy0yMS41IDAtMzJMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDMzLjMgMHoiXX0sVU90PUJlZSxXT3Q9QmVlLEdPdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1MGIiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjIgNDcuMi0xNzUuOSAxMTQuOC01LTEuOC0xMC41LTIuOC0xNi4xLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MC45IDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjIgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek01NTUuMyAzNDAuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42eiJdfSxZT3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlyYS1zaWduIixpY29uOlszODQsNTEyLFs4MzU2XSwiZjE5NSIsIk04NC45IDI1NmwtMjguNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExLjYgMEM1My4yIDEyNC43IDExNi44IDQyIDIwNy42IDQybDguMiAwYzMzLjYgMCA2Ni4yIDExLjMgOTIuNSAzMi4ybDE2LjEgMTIuN2MxMy45IDExIDE2LjIgMzEuMSA1LjIgNDVzLTMxLjEgMTYuMi00NSA1LjJsLTE2LjEtMTIuN2MtMTUtMTEuOS0zMy42LTE4LjQtNTIuOC0xOC40bC04LjIgMGMtNTMuOCAwLTkwLjEgNTIuOS03My41IDEwMmwxNjIuNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDUuMSAwYzIuMyAxMC42IDMuNiAyMS4zIDMuOSAzMmwxNDEuMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDE1MCAzMzZjLTQuOCAxOC42LTEyLjYgMzYuNS0yMy42IDUyLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMy43LTUuNiA2LjktMTEuNCA5LjQtMTcuNGwtMjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzNC44IDBjLS41LTEwLjgtMi42LTIxLjYtNi40LTMyeiJdfSxHOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5ZW4tc2lnbiIsaWNvbjpbMzg0LDUxMixbMTY1LCJjbnkiLCJqcHkiLCJybWIiLCJ5ZW4iXSwiZjE1NyIsIk03NC45IDQ2LjdjLTkuNi0xNC45LTI5LjQtMTkuMi00NC4yLTkuNlMxMS41IDY2LjQgMjEuMSA4MS4zTDE0My43IDI3MiA4OCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDMyLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtMzIgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTUuNyAwIDEyMi42LTE5MC43YzkuNi0xNC45IDUuMy0zNC43LTkuNi00NC4ycy0zNC43LTUuMy00NC4yIDkuNkwxOTIgMjI4LjggNzQuOSA0Ni43eiJdfSxLT3Q9RzgsWk90PUc4LFhPdD1HOCxRT3Q9RzgsSk90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC1vcGVuIixpY29uOls2NDAsNTEyLFtdLCJmNDllIiwiTTU2MC4zIDIzNy4yYzEwLjQgMTEuOCAyOC4zIDE0LjQgNDEuOCA1LjUgMTQuNy05LjggMTguNy0yOS43IDguOS00NC40bC00OC03MmMtMi44LTQuMi02LjYtNy43LTExLjEtMTAuMkwzNTEuNCA0LjdjLTE5LjMtMTAuNy00Mi44LTEwLjctNjIuMiAwTDg4LjggMTE2Yy01LjQgMy05LjcgNy40LTEyLjYgMTIuOEwyNy43IDIxOC43Yy0xMi42IDIzLjQtMy44IDUyLjUgMTkuNiA2NS4xbDMzIDE3LjcgMCA1My4zYzAgMjMgMTIuNCA0NC4zIDMyLjQgNTUuN2wxNzYgOTkuN2MxOS42IDExLjEgNDMuNSAxMS4xIDYzLjEgMGwxNzYtOTkuN2MyMC4xLTExLjQgMzIuNC0zMi42IDMyLjQtNTUuN2wwLTExNy41em0tMjQwLTkuOEwxNzAuMiAxNDQgMzIwLjMgNjAuNiA0NzAuNCAxNDQgMzIwLjMgMjI3LjR6bS00MS41IDUwLjJsLTIxLjMgNDYuMi0xNjUuOC04OC44IDI1LjQtNDcuMiAxNjEuNyA4OS44eiJdfSxlRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmllbGQiLGljb246WzY0MCw1MTIsW10sImU1OGQiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjI0IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDQwLjQgMGMzMi40IDAgNjEuNiAxOS42IDc0IDQ5LjVsNDMuOCAxMDYuMyAxLjcgNC4yIDI0LjcgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0uNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOGwtMTQ0LjcgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0zLjYgLjItNy4xIC42LTEwLjUtMTktNi40LTMyLjYtMjQuNC0zMi42LTQ1LjVsMC00OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTMyem0zNTIgMzJsMCA5NiA4Mi4xIDAtMzUuNC04Ni4xYy0yLjUtNi04LjMtOS45LTE0LjgtOS45TDM4NCAxMjh6TTE5MiAzOTJhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMjgwIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sdEZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbi1sb2NrIixpY29uOls1MTIsNTEyLFtdLCJlNTFmIiwiTTAgMTg4LjZDMCA4NC40IDg2IDAgMTkyIDAgMjk0LjEgMCAzNzcuNiA3OC4zIDM4My42IDE3NyAzMjAuNyAxODUuMSAyNzIgMjM4LjggMjcyIDMwNGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA3NS43Yy05LjkgMTEuNi0xOC45IDIxLjctMjYuNCAyOS44LTExLjggMTIuOC0zMS41IDEyLjgtNDMuMyAwLTUwLjItNTQuNS0xNzAuNC0xOTcuNS0xNzAuNC0zMTYuOHpNMTkyIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMjQwIDQ4LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0yODggNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxGaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXByYXlpbmciLGljb246WzM4NCw1MTIsWzEyODcyMCwicHJheSJdLCJmNjgzIiwiTTMyMCA2NGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTIwMC43IDI2NGwyMi45IDMxLjVjNi41IDguOSAxNi4zIDE0LjcgMjcuMiAxNi4xczIxLjktMS43IDMwLjQtOC43bDg4LTcyYzE3LjEtMTQgMTkuNi0zOS4yIDUuNi01Ni4zcy0zOS4yLTE5LjYtNTYuMy01LjZsLTU1LjIgNDUuMi0yNi4yLTM2Yy0xNS42LTIxLjUtNDAuNi0zNC4yLTY3LjItMzQuMi0zMC45IDAtNTkuMiAxNy4xLTczLjYgNDQuNEw0Ny44IDI4MC45Yy0yMC4yIDM4LjUtOS40IDg1LjkgMjUuNiAxMTEuOEwxMjYuNiA0MzIgNDAgNDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDIwOCAwYzE3LjMgMCAzMi42LTExLjEgMzgtMjcuNXMtLjMtMzQuNC0xNC4yLTQ0LjdsLTExNi4xLTg1LjggNDUtOTB6Il19LGFGdD1GaGUsckZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1saXN0IixpY29uOlszODQsNTEyLFtdLCJmNDZkIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyIDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNOTYgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sc0Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2stZG9sbGFyIixpY29uOls1MTIsNTEyLFsxMjgxNzZdLCJmODFkIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0yNjAgMjI0Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjE2IDM4NGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0saUZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluLXN1biIsaWNvbjpbNTc2LDUxMixbXSwiZTUyZiIsIk0yNTYuNSAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNS03LjIgMTIuMS0yMC4zIDE5LjUtMzQuMyAxOS41bC00MzIgMGMtMTQuMSAwLTI3LjEtNy40LTM0LjMtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwIDIuOS00LjZDMjMxLjcgNi4yIDI0My42IDAgMjU2LjUgMHpNMTcwLjQgMjQ5LjlsMjYuOCAyNi44YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDQzLjMtNDMuM2M2LTYgMTQuMS05LjQgMjIuNi05LjRsNDIuOCAwLTcyLjEtMTMzLjUtODYuMSAxNTkuNHpNNDk2LjUgMTYwYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxCaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtd2lkZS1zaG9ydCIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LXVwIl0sImYxNjEiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek0zMjAgNDgwbDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyeiJdfSxvRnQ9QmhlLG5GdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTkyIiwiTTIyNCAxMjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNzYgMzM2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJsMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC04ek0zOTIgMTQ0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjcuMiAxMDAuNGM5LjEtMi45IDE4LjgtNC40IDI4LjgtNC40IDUzIDAgOTYgNDMgOTYgOTZsMCAxMC43YzAgMTEuOC05LjYgMjEuMy0yMS4zIDIxLjNsLTc4LjggMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLThjMC0zNC4xLTEwLjYtNjUuNy0yOC44LTkxLjZ6bS0yNjIuNCAwYy0xOC4yIDI2LTI4LjggNTcuNS0yOC44IDkxLjZsMCA4YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNzguOCAwQzQxLjYgMzY4IDMyIDM1OC40IDMyIDM0Ni43TDMyIDMzNmMwLTUzIDQzLTk2IDk2LTk2IDEwIDAgMTkuNyAxLjUgMjguOCA0LjR6TTcyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTAgNDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDQ2NGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LGxGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLW9mLWRhdmlkIixpY29uOls1MTIsNTEyLFsxMDAxN10sImY2OWEiLCJNNDE1LjkgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0zODMuNiAyNTZsLTYwLjItMTA0LTEzNC44IDAtNjAuMiAxMDQgNjAuMiAxMDQgMTM0LjggMCA2MC4yLTEwNHptNjQuNyAwbDU4LjQgMTAwLjljMy41IDYgNS4zIDEyLjggNS4zIDE5LjcgMCAyMS43LTE3LjYgMzkuNC0zOS40IDM5LjRsLTExNyAwLTYxLjMgMTA1LjhDMjg2LjUgNTM1LjYgMjcxLjggNTQ0IDI1NiA1NDRzLTMwLjUtOC40LTM4LjQtMjIuMmwtNjEuMy0xMDUuOC0xMTcgMGMtMjEuNyAwLTM5LjQtMTcuNi0zOS40LTM5LjQgMC02LjkgMS44LTEzLjcgNS4zLTE5LjdMNjMuNyAyNTYgNS4zIDE1NS4xQzEuOCAxNDkuMSAwIDE0Mi4zIDAgMTM1LjQgMCAxMTMuNiAxNy42IDk2IDM5LjQgOTZsMTE3IDAgNjEuMy0xMDUuOEMyMjUuNS0yMy42IDI0MC4yLTMyIDI1Ni0zMnMzMC41IDguNCAzOC40IDIyLjJsNjEuMyAxMDUuOCAxMTcgMGMyMS43IDAgMzkuNCAxNy42IDM5LjQgMzkuNCAwIDYuOS0xLjggMTMuNy01LjMgMTkuN0w0NDguMyAyNTZ6TTM4OC4xIDE1MmwyNy44IDQ4LjEgMjcuOC00OC4xLTU1LjcgMHpNMjkxIDk2bC0zNS02MC40LTM1IDYwLjQgNzAgMHpNMTIzLjkgMTUybC01NS43IDAgMjcuOCA0OC4xIDI3LjgtNDguMXpNOTYuMSAzMTEuOWwtMjcuOCA0OC4xIDU1LjcgMC0yNy44LTQ4LjF6TTIyMSA0MTZsMzUgNjAuNCAzNS02MC40LTcwIDB6Il19LGNGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3Rlcy1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmNDgxIiwiTTk2IDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODEuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDI5MC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAwQzEyNC43IDAgOTYgMjguNyA5NiA2NGwwIDI4OHpNMjg4IDExMmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjh6Il19LGRGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdXN0cmFsLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUwYTkiLCJNMjY2LjUgMjQwbC04NSAwIDQyLjUtMTA2LjQgNDIuNSAxMDYuNHptNjguOSAwTDI2Mi45IDU4LjNDMjU2LjUgNDIuNCAyNDEuMSAzMiAyMjQgMzJzLTMyLjUgMTAuNC0zOC45IDI2LjNMMTEyLjYgMjQwIDMyIDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2MS40IDAtMTkuMiA0OC00Mi4zIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjMuMSAwLTIwLjggNTIuMWMtNi42IDE2LjQgMS40IDM1IDE3LjkgNDEuNnMzNS0xLjQgNDEuNi0xNy45bDMwLjMtNzUuOSAyMDAgMCAzMC4zIDc1LjljNi42IDE2LjQgMjUuMiAyNC40IDQxLjYgMTcuOXMyNC40LTI1LjIgMTcuOS00MS42TDM5Mi45IDM4NCA0MTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00Mi4zIDAtMTkuMi00OCA2MS40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwLjYgMHptLTQ5LjcgNDhsMTkuMiA0OC0xNjEuNiAwIDE5LjItNDggMTIzLjMgMHoiXX0sdUZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC11c2VyIixpY29uOlszODQsNTEyLFtdLCJmN2YzIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xOTIgMzQ0YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek05OC4zIDQxM2MtMTIuOSAxNS42IDIuMiAzNSAyMi40IDM1bDE0Mi41IDBjMjAuMiAwIDM1LjMtMTkuNCAyMi40LTM1LTE0LjctMTcuNy0zNi45LTI5LTYxLjctMjlsLTY0IDBjLTI0LjggMC00NyAxMS4zLTYxLjcgMjl6Il19LHBGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWltYWdlIixpY29uOlszODQsNTEyLFsxMjg0NDNdLCJmMWM1IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTkyLjYgNDQ4bDE5OC44IDBjMTUuOCAwIDI4LjYtMTIuOCAyOC42LTI4LjYgMC03LjMtMi44LTE0LjQtNy45LTE5LjdMMjE1LjMgMjk3LjljLTYtNi4zLTE0LjQtOS45LTIzLjItOS45bC0uMyAwYy04LjggMC0xNy4xIDMuNi0yMy4yIDkuOUw3MS45IDM5OS43QzY2LjggNDA1IDY0IDQxMi4xIDY0IDQxOS40IDY0IDQzNS4yIDc2LjggNDQ4IDkyLjYgNDQ4eiJdfSxIaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXJpZ2h0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXJpZ2h0Il0sImYxNTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNFMxNjAgMzY5LjUgMTYwIDM2MGwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnoiXX0sZkZ0PUhoZSxoRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbCIsaWNvbjpbNTEyLDUxMixbMTI5NTE0XSwiZjQ5MiIsIk0zNDIuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDMwNi43IDY0IDI4LjEgMzQyLjZDMTAuMSAzNjAuNiAwIDM4NSAwIDQxMC41TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsNS41IDBjMjUuNSAwIDQ5LjktMTAuMSA2Ny45LTI4LjFsMjc4LjYtMjc4LjYgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwek0yMDUuMyAyNTZsMTQ2LjctMTQ2LjcgNTAuNyA1MC43LTk2IDk2LTEwMS41IDB6Il19LG1GdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxpY29wdGVyIixpY29uOls1NzYsNTEyLFsxMjg2NDFdLCJmNTMzIiwiTTE3NiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNTIgMCAwIDQ4LTIyMC44IDAtMzIuOC0zOS40QzY5LjkgODMuMiA2My4xIDgwIDU2IDgwTDI0IDgwQzE1LjcgODAgOCA4NC4zIDMuNiA5MS40cy00LjggMTUuOS0xLjEgMjMuNGw0OCA5NkM1NC42IDIxOC45IDYyLjkgMjI0IDcyIDIyNGwxMDcuOCAwIDEwNCAxNDMuMWMxNS4xIDIwLjcgMzkuMSAzMi45IDY0LjcgMzIuOWw3NS41IDBjNzUuMSAwIDEzNi02MC45IDEzNi0xMzZTNDk5LjEgMTI4IDQyNCAxMjhsLTQ4IDAgMC00OCAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxNzYgMzJ6TTM3NiAxOTJsNDggMGMzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3MmwtNDggMCAwLTE0NHpNNTUyIDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCA0LjQtMy42IDgtOCA4bC0yNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sZ0Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pdHRlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiNSIsIk0zNTIgMzg0TDY0IDM4NCA1LjQgMTc4LjlDMS44IDE2Ni40IDAgMTUzLjQgMCAxNDAuMyAwIDYyLjggNjIuOCAwIDE0MC4zIDBsMy40IDBjNjYgMCAxMjMuNSA0NC45IDEzOS41IDEwOC45bDMxLjQgMTI1LjggMTcuNi0yMC4xQzM0NC44IDIwMC4yIDM2Mi45IDE5MiAzODIgMTkybDIuOCAwYzM0LjkgMCA2My4zIDI4LjMgNjMuMyA2My4zIDAgMTUuOS02IDMxLjItMTYuOCA0Mi45TDM1MiAzODR6TTMyIDQ2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sYkZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdhcy1wdW1wIixpY29uOls1MTIsNTEyLFs5OTgxXSwiZjUyZiIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyIDggMGM0OC42IDAgODggMzkuNCA4OCA4OGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNTRjLTI3LjYtNy4xLTQ4LTMyLjItNDgtNjJsMC01OS41LTI1LjgtMjguM2MtOC45LTkuOC04LjItMjUgMS42LTMzLjlzMjUtOC4yIDMzLjkgMS42bDcxLjcgNzguOGM5LjQgMTAuMyAxNC42IDIzLjcgMTQuNiAzNy43TDUxMiAzNzZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzJsMC0zMmMwLTIyLjEtMTcuOS00MC00MC00MGwtOCAwIDAgMTYxLjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkwzMiA2NHpNOTYgODBsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2TDExMiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSx2RnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNGU4IiwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OGw0MTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgxLjRjLTI0LjQtMTEuMi01MS40LTE3LjQtODAtMTcuNC04Ny43IDAtMTYxLjcgNTguOC0xODQuNyAxMzkuMi03LjEtMS4zLTE0LjEtNC4yLTIwLjEtOC44bC0yMDgtMTU2QzcxLjEgMTQxLjMgNjQgMTI3LjEgNjQgMTEyek0zMDQgMzY4YzAgMjguNiA2LjIgNTUuNiAxNy40IDgwTDEyOCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTg4IDE5OC40IDE0OC44YzEyLjYgOS40IDI2LjkgMTUuNCA0MS43IDE3LjkgMCAxLjgtLjEgMy41LS4xIDUuM3ptNDggMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0scWhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2F0aW5nIixpY29uOls1MTIsNTEyLFsic2thdGluZyJdLCJmN2M1IiwiTTM2OCA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTEyOCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTUwLjEgMGM0OS45IDAgNzQuOSA2MC4zIDM5LjYgOTUuNmwtNjMuOSA2My45IDY5LjggMzFjMTcuMyA3LjcgMjguNSAyNC45IDI4LjUgNDMuOWwwIDg1LjZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC03NS4yLTgyLjQtMzYuNmMtNDEtMTguMi01MS03Mi0xOS4zLTEwMy43bDQwLjQtNDAuNC05OC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek04OS40IDM2MS40bDc1LjktNzUuOWM3LjcgMTkuNyAyMS42IDM3LjMgNDEgNDkuNmwtNzEuNiA3MS42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3ptMzQ2LjUgODcuMWM4LjYgMi4xIDEzLjggMTAuOCAxMS42IDE5LjRsLS40IDEuN2MtNi4yIDI0LjktMjguNiA0Mi40LTU0LjMgNDIuNEwzMDQgNTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDg4LjggMGMxMSAwIDIwLjYtNy41IDIzLjMtMTguMmwuNC0xLjdjMi4xLTguNiAxMC44LTEzLjggMTkuNC0xMS42ek0xNDMuMiA0ODYuM2wtNi4yIDMuMWMtMjEuNiAxMC44LTQ3LjYgNi42LTY0LjYtMTAuNUwxMi43IDQxOS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsNTkuNiA1OS42YzcuMyA3LjMgMTguNSA5LjEgMjcuNyA0LjVsNi4yLTMuMWM3LjktNCAxNy41LS43IDIxLjUgNy4ycy43IDE3LjUtNy4yIDIxLjV6Il19LHhGdD1xaGUsTHRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1biIsaWNvbjpbNTc2LDUxMixbOTcyOF0sImYxODUiLCJNMjg4LTMyYzguNCAwIDE2LjMgNC40IDIwLjYgMTEuN0wzNjQuMSA3Mi4zIDQ2OC45IDQ2YzguMi0yIDE2LjkgLjQgMjIuOCA2LjNTNTAwIDY3IDQ5OCA3NS4xbC0yNi4zIDEwNC43IDkyLjcgNTUuNWM3LjIgNC4zIDExLjcgMTIuMiAxMS43IDIwLjZzLTQuNCAxNi4zLTExLjcgMjAuNkw0NzEuNyAzMzIuMSA0OTggNDM2LjhjMiA4LjItLjQgMTYuOS02LjMgMjIuOFM0NzcgNDY4IDQ2OC45IDQ2NmwtMTA0LjctMjYuMy01NS41IDkyLjdjLTQuMyA3LjItMTIuMiAxMS43LTIwLjYgMTEuN3MtMTYuMy00LjQtMjAuNi0xMS43TDIxMS45IDQzOS43IDEwNy4yIDQ2NmMtOC4yIDItMTYuOC0uNC0yMi44LTYuM1M3NiA0NDUgNzggNDM2LjhsMjYuMi0xMDQuNy05Mi42LTU1LjVDNC40IDI3Mi4yIDAgMjY0LjQgMCAyNTZzNC40LTE2LjMgMTEuNy0yMC42TDEwNC4zIDE3OS45IDc4IDc1LjFjLTItOC4yIC4zLTE2LjggNi4zLTIyLjhTOTkgNDQgMTA3LjIgNDZsMTA0LjcgMjYuMiA1NS41LTkyLjYgMS44LTIuNmM0LjUtNS43IDExLjQtOS4xIDE4LjgtOS4xem0wIDE0NGExNDQgMTQ0IDAgMSAwIDAgMjg4IDE0NCAxNDQgMCAxIDAgMC0yODh6bTAgMjQwYTk2IDk2IDAgMSAxIDAtMTkyIDk2IDk2IDAgMSAxIDAgMTkyeiJdfSxWaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFzZWJhbGwiLGljb246WzUxMiw1MTIsWzEyOTM1OCw5OTE4LCJiYXNlYmFsbC1iYWxsIl0sImY0MzMiLCJNMjMyLjQgMS4xYy0xMjIuMiAxMS40LTIxOS41IDEwOC43LTIzMC45IDIzMC45IDE2LjItLjEgMzItMS44IDQ3LjItNSAxMy0yLjcgMjUuNyA1LjUgMjguNCAxOC41cy01LjUgMjUuNy0xOC41IDI4LjRjLTE4LjQgMy45LTM3LjYgNi01Ny4xIDYuMSAxMS40IDEyMi4yIDEwOC43IDIxOS41IDIzMC45IDIzMC45IC4xLTE5LjUgMi4yLTM4LjcgNi4xLTU3LjEgMi43LTEzIDE1LjUtMjEuMyAyOC40LTE4LjVzMjEuMyAxNS41IDE4LjUgMjguNGMtMy4yIDE1LjItNC45IDMxLTUgNDcuMiAxMjIuMi0xMS40IDIxOS41LTEwOC43IDIzMC45LTIzMC45LTE2LjIgLjEtMzIgMS44LTQ3LjIgNS0xMyAyLjctMjUuNy01LjUtMjguNC0xOC41czUuNS0yNS43IDE4LjUtMjguNGMxOC40LTMuOSAzNy42LTYgNTcuMS02LjEtMTEuNC0xMjIuMi0xMDguNy0yMTkuNS0yMzAuOS0yMzAuOS0uMSAxOS41LTIuMiAzOC43LTYuMSA1Ny4xLTIuNyAxMy0xNS41IDIxLjMtMjguNCAxOC41cy0yMS4zLTE1LjUtMTguNS0yOC40YzMuMi0xNS4yIDQuOS0zMSA1LTQ3LjJ6bTIuOCAxNTEuNGMtMjEuNCAzMi45LTQ5LjUgNjAuOS04Mi4zIDgyLjMtMTEuMSA3LjItMjYgNC4xLTMzLjItN3MtNC4xLTI2IDctMzMuMmMyNy4yLTE3LjcgNTAuNS00MSA2OC4zLTY4LjMgNy4yLTExLjEgMjIuMS0xNC4zIDMzLjItN3MxNC4zIDIyLjEgNyAzMy4yek0zOTMuMSAyODQuMmM3LjIgMTEuMSA0LjEgMjYtNyAzMy4yLTI3LjIgMTcuNy01MC41IDQxLTY4LjMgNjguMy03LjIgMTEuMS0yMi4xIDE0LjMtMzMuMiA3cy0xNC4zLTIyLjEtNy0zMy4yYzIxLjQtMzIuOSA0OS41LTYwLjkgODIuMy04Mi4zIDExLjEtNy4yIDI2LTQuMSAzMy4yIDd6Il19LHlGdD1WaGUsd0Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImltYWdlIixpY29uOls0NDgsNTEyLFtdLCJmMDNlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDgwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMjcyIDIyNGM4LjQgMCAxNi4xIDQuNCAyMC41IDExLjVsODggMTQ0YzQuNSA3LjQgNC43IDE2LjcgLjUgMjQuM1MzNjguNyA0MTYgMzYwIDQxNkw4OCA0MTZjLTguOSAwLTE3LjItNS0yMS4zLTEyLjlzLTMuNS0xNy41IDEuNi0yNC44bDU2LTgwYzQuNS02LjQgMTEuOC0xMC4yIDE5LjctMTAuMnMxNS4yIDMuOCAxOS43IDEwLjJsMjYuNCAzNy44IDYxLjQtMTAwLjVjNC40LTcuMSAxMi4xLTExLjUgMjAuNS0xMS41eiJdfSxNRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZGVmIixpY29uOlszODQsNTEyLFtdLCJlMWZlIiwiTTY0IDM5MC4zTDE1My41IDI1NiA2NCAxMjEuNyA2NCAzOTAuM3pNMTAyLjUgNDQ4TDI4MS41IDQ0OCAxOTIgMzEzLjcgMTAyLjUgNDQ4em0xMjgtMTkyTDMyMCAzOTAuMyAzMjAgMTIxLjcgMjMwLjUgMjU2ek0yODEuNSA2NEwxMDIuNSA2NCAxOTIgMTk4LjMgMjgxLjUgNjR6TTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHoiXX0samhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2tldGJhbGwiLGljb246WzUxMiw1MTIsWzEyNzkzNiwiYmFza2V0YmFsbC1iYWxsIl0sImY0MzQiLCJNOTIuNyA1OC44bDc4LjQgNzguNGMxOC4yLTI1IDI4LjktNTUuOSAyOC45LTg5LjIgMC0xNC4xLTEuOS0yNy43LTUuNS00MC42LTM4IDkuNC03Mi42IDI3LjItMTAxLjggNTEuNHpNNTguOCA5Mi43Yy0yNC4yIDI5LjItNDIgNjMuOC01MS40IDEwMS44IDEyLjkgMy42IDI2LjUgNS41IDQwLjYgNS41IDMzLjMgMCA2NC4xLTEwLjcgODkuMi0yOC45TDU4LjggOTIuN3pNMjU2IDBjLTQuNiAwLTkuMiAuMS0xMy43IC40IDMuNyAxNS4zIDUuNyAzMS4yIDUuNyA0Ny42IDAgNDYuNi0xNS45IDg5LjQtNDIuNiAxMjMuNEwyNTYgMjIyLjEgNDE5LjMgNTguOEMzNzQuOSAyMi4xIDMxOC4xIDAgMjU2IDB6TTQ4IDI0OGMtMTYuNCAwLTMyLjQtMi00Ny42LTUuNy0uMiA0LjUtLjQgOS4xLS40IDEzLjcgMCA2Mi4xIDIyLjEgMTE4LjkgNTguOCAxNjMuM0wyMjIuMSAyNTYgMTcxLjQgMjA1LjRDMTM3LjQgMjMyLjEgOTQuNiAyNDggNDggMjQ4em00NjMuNiAyMS43Yy4yLTQuNSAuNC05LjEgLjQtMTMuNyAwLTYyLjEtMjIuMS0xMTguOS01OC44LTE2My4zTDI4OS45IDI1NiAzNDAuNiAzMDYuNmMzNC0yNi43IDc2LjktNDIuNiAxMjMuNC00Mi42IDE2LjQgMCAzMi40IDIgNDcuNiA1Ljd6bS03LjEgNDcuOGMtMTIuOS0zLjYtMjYuNS01LjUtNDAuNi01LjUtMzMuMyAwLTY0LjEgMTAuNy04OS4yIDI4LjlsNzguNCA3OC40YzI0LjItMjkuMiA0Mi02My44IDUxLjQtMTAxLjh6TTM0MC45IDM3NC44Yy0xOC4yIDI1LTI4LjkgNTUuOS0yOC45IDg5LjIgMCAxNC4xIDEuOSAyNy43IDUuNSA0MC42IDM4LTkuNCA3Mi42LTI3LjIgMTAxLjgtNTEuNGwtNzguNC03OC40em0tMzQuMy0zNC4zTDI1NiAyODkuOSA5Mi43IDQ1My4yYzQ0LjMgMzYuNyAxMDEuMiA1OC44IDE2My4zIDU4LjggNC42IDAgOS4yLS4xIDEzLjctLjQtMy43LTE1LjMtNS43LTMxLjItNS43LTQ3LjYgMC00Ni42IDE1LjktODkuNCA0Mi42LTEyMy40eiJdfSxrRnQ9amhlLFVoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW5jaWwiLGljb246WzUxMiw1MTIsWzk5OTksNjE1MDQsInBlbmNpbC1hbHQiXSwiZjMwMyIsIk0zNi40IDM1My4yYzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdsMTgxLjItMTgxLjIgMzMuOS0zMy45YzE2LjYgMTYuNiA1MS4zIDUxLjMgMTA0IDEwNGwzMy45IDMzLjktMzMuOSAzMy45LTE4MS4yIDE4MS4yYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMC42Yy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMlMtMS40IDQ4OS4zIC45IDQ4MUwzNi40IDM1My4yem01NS42LTMuN2MtNC40IDQuNy03LjYgMTAuNC05LjMgMTYuNmwtMjQuMSA4Ni45IDg2LjktMjQuMWM2LjQtMS44IDEyLjItNS4xIDE3LTkuN0w5MS45IDM0OS41em0zNTQtMTQ2LjFjLTE2LjYtMTYuNi01MS4zLTUxLjMtMTA0LTEwNEwzMDggNjUuNUMzMzQuNSAzOSAzNDkuNCAyNC4xIDM1Mi45IDIwLjYgMzY2LjQgNyAzODQuOC0uNiA0MDQtLjZTNDQxLjYgNyA0NTUuMSAyMC42bDM1LjcgMzUuN0M1MDQuNCA2OS45IDUxMiA4OC4zIDUxMiAxMDcuNHMtNy42IDM3LjYtMjEuMiA1MS4xYy0zLjUgMy41LTE4LjQgMTguNC00NC45IDQ0Ljl6Il19LFNGdD1VaGUsekZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWFycm93LWxvb3AtbGVmdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU1MSIsIk0xNjAgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTczLjQgMjI3LjlsMjIuNi0yMi42IDAgNjkuM2MwIDI4IDEyLjIgNTQuNyAzMy41IDcyLjlsNzEuNCA2MS4yYzUuOSA1LjEgOS44IDEyLjEgMTAuOSAxOS44bDEyLjYgODguMWMyLjUgMTcuNSAxOC43IDI5LjcgMzYuMiAyNy4yczI5LjctMTguNyAyNy4yLTM2LjJsLTEyLjYtODguMWMtMy4zLTIzLjEtMTQuOS00NC4xLTMyLjYtNTkuM2wtMzQuNS0yOS42IDAtMTE1LjIgMy44IDQuN2MxOC4yIDIyLjggNDUuOCAzNiA3NSAzNmwzMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMzLjIgMGMtOS43IDAtMTguOS00LjQtMjUtMTJsLTE3LjktMjIuNGMtMjMtMjguOC01Ny45LTQ1LjYtOTQuOC00NS42LTMyLjIgMC02My4xIDEyLjgtODUuOCAzNS42TDI4LjEgMTgyLjZDMTAuMSAyMDAuNiAwIDIyNSAwIDI1MC41TDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNy41YzAtOC41IDMuNC0xNi42IDkuNC0yMi42ek04NS44IDQwNy4zYy0xLjUgNS4yLTQuMyAxMC04LjEgMTMuOEw5LjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44TDg1LjggNDA3LjN6TTM1OSAzMzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzEtMzEgMTAyLjEgMGMxLjIgMCAyLjQtLjEgMy41LS4zIDU2LjEtMy45IDEwMC41LTUwLjYgMTAwLjUtMTA3LjcgMC01OS42LTQ4LjQtMTA4LTEwOC0xMDhsLTkyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTIgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MHMtMjYuOSA2MC02MCA2MGwtOTguMSAwIDMxLTMxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTcyIDcyeiJdfSxDRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1zaXgiLGljb246WzQ0OCw1MTIsWzk4NjFdLCJmNTI2IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sV2hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1kb3duIixpY29uOlszODQsNTEyLFsiYW5nbGUtZG91YmxlLWRvd24iXSwiZjEwMyIsIk0yMTQuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTkyIDQwMi43IDMyOS40IDI2NS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjB6bTE2MC0zNTJsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiAyMTAuNyAzMjkuNCA3My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6Il19LF9GdD1XaGUsVEZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5cmluZ2UiLGljb246WzU3Niw1MTIsWzEyODEzN10sImY0OGUiLCJNNDk3LjUtMTdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtNDYuMSA0Ni4xLTYzLTYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcgNy03OC4xIDc4LjEgNDEgNDFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDEtNDEtNDYuMSA0Ni4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTM3LjcgMzcuN2MtMTAuNSAxMC41LTE2LjQgMjQuNy0xNi40IDM5LjZsMCA4OC44LTU3IDU3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTctNTcgODguOCAwYzE0LjkgMCAyOS4xLTUuOSAzOS42LTE2LjRsMjI5LjctMjI5LjcgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjMtNjMgNDYuMS00Ni4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjQtNjR6Il19LEdoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVhdC1hd24iLGljb246WzU3Niw1MTIsWyJ3aGVhdC1hbHQiXSwiZTJjZCIsIk03OS43IDIzNC42YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMiA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsNDYuMSA0Ni4xYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBMMTM0LjEgNDQ0LjMgNDkuNCA1MjljLTkuNCA5LjQtMjQuNSA5LjQtMzMuOSAwLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg0LjctODQuNy0zMC41LTMwLjVjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6bTEwNC0xMDRjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4yIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2w0Ni4xIDQ2LjFjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMGwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek00OTUuMiAxNWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMkw1MjkuMiA0OSA0MTQuNyAxNjMuNGM3LjcgMSAxNS4yIDMgMjIuNSA1LjlMNDk1LjUgMTExYzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTUyLjcgNTIuNyAzOSAzOWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwbC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjFjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWwzOSAzOSA1Mi43LTUyLjdjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTguMyA1OC4zYzIuOCA3LjEgNC43IDE0LjUgNS43IDIyLjFMNDk1LjIgMTV6Il19LExGdD1HaGUsJEZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLXVwIixpY29uOls1MTIsNTEyLFtdLCJlMjJkIiwiTTIwMCAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgMTczLjYgMTU5LjJjNi42IDYuMSAxMC40IDE0LjYgMTAuNCAyMy42bDAgNDMuN2MwIDEwLjktMTAuNyAxOC42LTIxLjEgMTUuMmwtMTYyLjktNTQuMyAwIDk5LjcgNjYgNTIuOGMzLjggMyA2IDcuNiA2IDEyLjVsMCAxOS44YzAgMTAuNC05LjggMTgtMTkuOSAxNS41TDI1NiA1MTIgMTQ3LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDMjYuNyAzOTYuNCAxNiAzODguNyAxNiAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMDAgMTUxLjMgMjAwIDI0eiJdfSxERnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tY2VudGVyIixpY29uOls0NDgsNTEyLFtdLCJmMDM3IiwiTTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxMjggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTk2IDEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTM1MiAzMjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyeiJdfSxBRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9ja2V5LXB1Y2siLGljb246WzUxMiw1MTIsW10sImY0NTMiLCJNMjU2IDI1NkMxMTQuNiAyNTYgMCAyMTMgMCAxNjBzMTE0LjYtOTYgMjU2LTk2IDI1NiA0MyAyNTYgOTYtMTE0LjYgOTYtMjU2IDk2ek0wIDM1MkwwIDI0Mi43YzE2LjkgMTIuMyAzNyAyMi4yIDU4LjEgMzAuMSA1MyAxOS45IDEyMyAzMS4yIDE5Ny45IDMxLjJzMTQ0LjktMTEuMyAxOTcuOS0zMS4yYzIxLjItNy45IDQxLjItMTcuOCA1OC4xLTMwLjFMNTEyIDM1MmMwIDUzLTExNC42IDk2LTI1NiA5NlMwIDQwNSAwIDM1MnoiXX0sWWhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLWxlZnQiXSwiZjBhOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM1IDIzOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTM5IDM5IDE1MC4xIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE1MC4xIDAgMzkgMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODAtODBjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxQRnQ9WWhlLEVGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1ib2x0IixpY29uOls2NDAsNTEyLFtdLCJlNTViIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNzcuNC03N2MtNS44LTQuMi0xMy44LTQtMTkuNCAuNWwtODAgNjRjLTUuMyA0LjItNy40IDExLjQtNS4xIDE3LjhTNDMzLjIgNDE2IDQ0MCA0MTZsMzIuOSAwLTE1LjkgNDIuNGMtMi41IDYuNy0uMiAxNC4zIDUuNiAxOC42czEzLjggNCAxOS40LS41bDgwLTY0YzUuMy00LjIgNy40LTExLjQgNS4xLTE3LjhTNTU4LjggMzg0IDU1MiAzODRsLTMyLjkgMCAxNS45LTQyLjRjMi41LTYuNyAuMi0xNC4zLTUuNi0xOC42eiJdfSxJRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVzdHJvb20iLGljb246WzY0MCw1MTIsW10sImY3YmQiLCJNODAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0bDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTU0LjhjLTguMSA5LjItMjEuMSAxMy4yLTMzLjUgOS40LTE2LjktNS4zLTI2LjMtMjMuMi0yMS00MC4xbDI5LjctOTUuMkM0NC40IDE1Ni45IDgzLjYgMTI4IDEyOCAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMS0xMi40IDMuOS0yNS40LS4yLTMzLjUtOS40TDIwMCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNMzIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00NjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ2NCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00NDAgNDgwbDAtOTYtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw5LTI2LjljLTMuMiAwLTYuNC0uNS05LjUtMS41LTE2LjktNS4zLTI2LjMtMjMuMi0yMS00MC4xbDI5LjctOTUuMkM0MjguNCAxNTYuOSA0NjcuNiAxMjggNTEyIDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xLTMuMiAxLTYuNCAxLjUtOS41IDEuNWw5IDI2LjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0xNy44IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTE2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnoiXX0sTkZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNGFkIiwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAyOC4zIDAgNTUuNC01LjcgODAtMTUuOWwwLS4yIDAtNzIuMmMtMTQuNCA5LjYtMzAuNiAxNi43LTQ4IDIwLjdsMC0yNTcuOWMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTI3MiAzMDQuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2LjUgNDAwbDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxSRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGltZWxpbmUiLGljb246WzU3Niw1MTIsW10sImUyOWMiLCJNMTYwIDE2OS4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBTNDggNTEuOCA0OCA5NmMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwIDAgNTQuN2MtMjguMyAxMi4zLTQ4IDQwLjUtNDggNzMuMyAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNsMC01NC43IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtNTQuN2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCA1NC43LTI1NiAwIDAtNTQuN3oiXX0sT0Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpZ2h0YnVsYiIsaWNvbjpbMzg0LDUxMixbMTI4MTYxXSwiZjBlYiIsIk0yOTIuOSAzODRjNy4zLTIyLjMgMjEuOS00Mi41IDM4LjQtNTkuOSAzMi43LTM0LjQgNTIuNy04MC45IDUyLjctMTMyLjEgMC0xMDYtODYtMTkyLTE5Mi0xOTJTMCA4NiAwIDE5MmMwIDUxLjIgMjAgOTcuNyA1Mi43IDEzMi4xIDE2LjUgMTcuNCAzMS4yIDM3LjYgMzguNCA1OS45bDIwMS43IDB6TTI4OCA0MzJsLTE5MiAwIDAgMTZjMCA0NC4yIDM1LjggODAgODAgODBsMzIgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTE2ek0xODQgMTEyYy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHoiXX0sS2hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1yaWdodCJdLCJmMGE5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem00MS0xNTljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzktMzktMTUwLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNTAuMSAwLTM5LTM5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTgwIDgweiJdfSxGRnQ9S2hlLEJGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWFuZC12ZW51cyIsaWNvbjpbNTEyLDUxMixbOTg5M10sImYyMjQiLCJNMzY4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC43LTYzIDYzYzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xbDAgMzQuOSAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNC45Yy04MS45LTE1LTE0NC04Ni44LTE0NC0xNzMuMSAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NiAzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDYzLTYzLTM0LjcgMHpNMzUyIDIwOGExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAweiJdfSwkdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmV0d29yay13aXJlZCIsaWNvbjpbNTc2LDUxMixbXSwiZjZmZiIsIk0yNDggODhsODAgMCAwIDQ4LTgwIDAgMC00OHptLTgtNTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMCAwIDMyLTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAzMi0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMCAwLTMyIDE5MiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTMyIDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtOTYgMHpNNDQ4IDM3Nmw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHptLTI1NiAwbDggMCAwIDQ4LTgwIDAgMC00OCA3MiAweiJdfSxIRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJlNGQ4IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMGMtMTIuNS0xNC43LTIzLjItMzAuOC0zMS44LTQ4bC04OS41IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjYuN2MwLTE4LjEgNi4xLTM1LjIgMTYuNi00OC44LS40LTEuNC0uNi0yLjktLjYtNC41bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMSA4Ni43LTI4LjljMy4xLTEgNi4yLTEuOCA5LjMtMi41TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDQ1LjMgNDg4LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSxxRnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZSIsaWNvbjpbNTc2LDUxMixbXSwiZjEyMSIsIk0zNjAuOCAxLjJjLTE3LTQuOS0zNC43IDUtMzkuNiAyMmwtMTI4IDQ0OGMtNC45IDE3IDUgMzQuNyAyMiAzOS42czM0LjctNSAzOS42LTIybDEyOC00NDhjNC45LTE3LTUtMzQuNy0yMi0zOS42em02NC42IDEzNi4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w3My40IDczLjQtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS0yNzQuNyAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMTUwLjYgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjN6Il19LFpoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyLXBvaW50ZWQiLGljb246WzUxMiw1MTIsWyJmZWF0aGVyLWFsdCJdLCJmNTZiIiwiTTQ3NS4zIC4xYzkuOS0uOCAxOS42IDMgMjYuNiAxMHMxMC44IDE2LjcgMTAgMjYuNmMtNCA0OS4zLTE3LjQgMTI2LjItNDYuMyAxOTkuNy0xLjggNC41LTUuNSA3LjktMTAuMiA5LjNMMzc0LjUgMjcwYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMzguNiAwYzEyIDAgMTkuNyAxMi44IDEzLjUgMjMuMS00IDYuNy04LjMgMTMuMi0xMi43IDE5LjYtMiAyLjktNSA1LTguNCA2LjFMMzEwLjUgMzY2Yy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMTYgMGMxNC42IDAgMjEgMTcuNCA4LjggMjUuNC02OCA0NS0xMzcuNyA0My4zLTE4Mi40IDMxLjMtMTIuNy0zLjQtMjQtOS45LTM0LjQtMTcuOUw0OCA0OTZjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMmw4MC04MCAuNSAuNWMuNy0xLjMgMS42LTIuNSAyLjctMy42TDI1NiAyMjRjOC44LTguOCA4LjgtMjMuMiAwLTMycy0yMy4yLTguOC0zMiAwTDg5LjcgMzI2LjJjLTguOSA4LjktMjQgNC40LTI1LTguMi00LjMtNTMuMiA5LjMtMTIzLjEgNzIuNi0xODYuNCA5MS4xLTkxLjEgMjU0LjItMTI0LjcgMzM3LjktMTMxLjV6Il19LFZGdD1aaGUsakZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGVmIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xMDBjLTExLjYgMC0yMS4zIDguMi0yMy41IDE5LjItMS44IDguNy0xMC4yIDE0LjMtMTguOSAxMi41cy0xNC4zLTEwLjItMTIuNS0xOC45YzUuMi0yNS42IDI3LjgtNDQuOCA1NC45LTQ0LjggMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAxOS44LTExLjcgMzcuOC0yOS44IDQ1LjlsLTEwLjQgNC42Yy0xLjIgNy43LTcuOCAxMy41LTE1LjggMTMuNS04LjggMC0xNi03LjItMTYtMTYgMC0xMS4yIDYuNi0yMS4zIDE2LjgtMjUuOWwxMi40LTUuNWM2LjYtMi45IDEwLjgtOS40IDEwLjgtMTYuNiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVUZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hdHVyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjViNyIsIk0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA3LjhjMCAyNy43LTIuNCA1NS4zLTcuMSA4Mi41bC04NC40IDI1LjNjLTQwLjYgMTIuMi02OC40IDQ5LjYtNjguNCA5MmwwIDMyLjQtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3Mi41IDBjNC4yIDM2IDM0LjggNjQgNzIgNjQgMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44UzQwNS43IDMyMCA0MTYgMzIwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04My42IDAgMTgtNTMuOWMzLjgtMTEuMyAuOS0yMy44LTcuNC0zMi40cy0yMC43LTExLjgtMzIuMi04LjRMMzE2LjQgMTk4LjFjMi40LTIwLjcgMy42LTQxLjQgMy42LTYyLjNsMC03LjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJ6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zLTQuNyAwLTguNS0zLjgtOC41LTguNWwwLTcxLjljMC0xNC4xIDkuMy0yNi42IDIyLjgtMzAuN3pNNjE2IDQxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjkyLjkgMGMtNi41IDE2LjMtMTMuNyAzMi4zLTIxLjYgNDhMNjE2IDQxNnoiXX0sQmI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYW1lcmljYXMiLGljb246WzUxMiw1MTIsWzEyNzc1OCwiZWFydGgiLCJlYXJ0aC1hbWVyaWNhIiwiZ2xvYmUtYW1lcmljYXMiXSwiZjU3ZCIsIk01NS43IDE5OS43bDMwLjkgMzAuOWM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMjEuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAzNy41YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDEzLjMgMTMuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDUuMy00NS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTM0LjdjMC0xNy43LTE0LjMtMzItMzItMzJsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMzQuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTE5LjctMTkuN0MyNDIgMTMwIDI0MCAxMjUuMSAyNDAgMTIwczItMTAgNS43LTEzLjdsMTcuMy0xNy4zYzUuOC01LjggOS4xLTEzLjcgOS4xLTIxLjkgMC03LjItMi40LTEzLjctNi40LTE4LjktMy4yLS4xLTYuNC0uMi05LjYtLjItOTUuNCAwLTE3NS43IDY0LjItMjAwLjMgMTUxLjd6TTQ2NCAyNTZjMC0zNC42LTguNC02Ny4yLTIzLjQtOTUuOC02LjQgLjktMTIuNyAzLjktMTcuOSA5LjFsLTEzLjQgMTMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNC4xIDBjMi41IDAgNS0uMyA3LjMtLjggLjQtNSAuNS0xMC4xIC41LTE1LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFdGdD1CYixHRnQ9QmIsWUZ0PUJiLEtGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJyb3QiLGljb246WzY0MCw1MTIsWzEyOTM2NV0sImY3ODciLCJNNDUzLjEtMzYuN0w0NDAuOS0yNC42Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjEgMTUuNiAxNS42IDMxLjIgMzEuMiA0Ni45IDQ2LjkgMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwbDEyLjEtMTIuMWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw2MDAuOSA4OC42Yy0zMS4yLTMxLjItODEuOS0zMS4yLTExMy4xIDAgMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xTDQ3NS43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek0zMzEuNiA5NmMtNDUuMiAwLTg3LjEgMjAuNC0xMTUgNTQuM0wyNzMuMyAyMDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxOTEuNiAxOTMuMiA2Ny4yIDQ2Ni44Yy01LjUgMTIuMS0yLjkgMjYuNCA2LjUgMzUuOXMyMy43IDEyIDM1LjkgNi41bDE0MS42LTY0LjQtNDMuOC00My44Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNSA1Ni41IDk1LjMtNDMuM2M1My4xLTI0LjEgODcuMi03Ny4xIDg3LjItMTM1LjUgMC04Mi4yLTY2LjYtMTQ4LjgtMTQ4LjgtMTQ4Ljh6Il19LEhiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWZ1bGwiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS00IiwidGhlcm1vbWV0ZXItNCIsInRoZXJtb21ldGVyLWZ1bGwiXSwiZjJjNyIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNMMTM2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyMTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LFpGdD1IYixYRnQ9SGIsUUZ0PUhiLEpGdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1yb3ctbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3YSIsIk0yNTYgMjg4bDAtNjQgMTUzLjMgMGMxNy4xLTQyLjIgNTYtNzMuMiAxMDIuNy03OWwwLTQ5YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQxLjMgMGMtLjktNS4yLTEuMy0xMC42LTEuMy0xNi4xbDAtNDcuOS0xMTIgMCAwLTY0IDExMy4zIDBjMy43LTIyIDE0LjgtNDEuNCAzMC43LTU1LjZsMC04LjQtMTQ0IDB6bTAtMTkybDE5MiAwIDAgNjQtMTkyIDAgMC02NHpNNTYwIDI3Mi4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYgMzY4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxlQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sdC1saWdodG5pbmciLGljb246WzM4NCw1MTIsW10sImUwYjciLCJNMCAyNTZMMjguNSAyOGMyLTE2IDE1LjYtMjggMzEuOC0yOEwyMjguOSAwYzE1IDAgMjcuMSAxMi4xIDI3LjEgMjcuMSAwIDMuMi0uNiA2LjUtMS43IDkuNUwyMDggMTYwIDM0Ny4zIDE2MGMyMC4yIDAgMzYuNyAxNi40IDM2LjcgMzYuNyAwIDcuNC0yLjIgMTQuNi02LjQgMjAuN2wtMTkyLjIgMjgxYy01LjkgOC42LTE1LjYgMTMuNy0yNS45IDEzLjdsLTIuOSAwYy0xNS43IDAtMjguNS0xMi44LTI4LjUtMjguNSAwLTIuMyAuMy00LjYgLjktNi45TDE3NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sdEJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtd2F0ZXIiLGljb246WzUxMiw1MTIsW10sImU0ZTQiLCJNMjc5LjIgNTUuN0MyNjMuOSAyMi44IDIzMC42IDAgMTkyIDAgMTM5IDAgOTYgNDMgOTYgOTYgNjAuNyA5NiAzMiAxMjQuNyAzMiAxNjBzMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGwtMS42IDBjLTcuNC0zNi41LTM5LjctNjQtNzguNC02NC0yMi4yIDAtNDIuMyA5LjEtNTYuOCAyMy43ek00MTAuNiA0NzYuMWMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6TTEwMC4xIDMwMy42YzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0QzI5IDM2NSAzNS44IDM3OC42IDQ4LjQgMzgyLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTExMiAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6Il19LFhoZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy11cCJdLCJmMTc2IiwiTTE4Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDEyOCA3Ny4zIDEyOCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQzNC43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4eiJdfSxhQnQ9WGhlLEhlZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhZGRyZXNzLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQwLCJjb250YWN0LWNhcmQiLCJ2Y2FyZCJdLCJmMmJiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTgwIDI1Nmw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNkw4MCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjQwLTQ4bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA5NmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHJCdD1IZWUsc0J0PUhlZSxpQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtcmlnaHQiLGljb246WzI1Niw1MTIsWzgyNTBdLCJmMTA1IiwiTTI0Ny4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNzkuMiAyNTYgNDEuOSAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYweiJdfSxRaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTc2IDMyMGwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LG9CdD1RaGUsbkJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tZ3JvdW5kLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNGI1IiwiTTMwMyA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDg4IDg4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3IDAgMjc4LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNzguMS00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwzMDMgN3pNMjQwIDE5MmwwIDE2My4xYy0xMC42LTIuMi0yMS4zLTMuMi0zMi0zLjEtMzIuNSAuMi02NC45IDEwLjctOTIuMyAzMS40LTguOCA2LjYtMTUuOSAxMC45LTIxLjcgMTMuNWwtLjggLjRjLTMuNyAxLjctNi40IDIuOS05LjggLjMtNi00LjUtMTIuNi04LTE5LjMtMTAuNEw2NCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTI4IDB6bTMzNiA0OGwwIDE1NS4yYy0xLjEgLjgtMi4yIDEuNS0zLjMgMi40LTQuMSAzLjEtOC4zIC44LTEyLjYtMS41LS42LS4zLTEuMi0uNi0xLjgtMS01LjItMi43LTExLjEtNi42LTE4LTExLjctMjguMS0yMS4xLTYxLjMtMzEuNi05NC40LTMxLjQtMTUuNSAuMS0zMSAyLjUtNDYgNy4zbDAtMTY3LjMgMTI4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTQwMy40IDQ3Ni4xQzM3OS4xIDQ5NC4zIDM1MS4xIDUxMiAzMjAgNTEycy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sbEJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcCIsaWNvbjpbNTEyLDUxMixbMTI4NTA2LDYyMDcyXSwiZjI3OSIsIk01MTIgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMMzQ5LjUgNzcuNSAxNzAuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNi44IDg4LjggMCA5OS45IDAgMTEyTDAgNDY0YzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzkuNCA1OS44YzguMSAyLjcgMTYuOCAyLjEgMjQuNC0xLjdsMTI4LTY0YzEwLjgtNS40IDE3LjctMTYuNSAxNy43LTI4LjZsMC0zNTJ6TTE5MiAzNzYuOWwwLTI4NC41IDEyOCA0Mi43IDAgMjg0LjUtMTI4LTQyLjd6Il19LGNCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXBsdXMiLGljb246WzY0MCw1MTIsW10sImYyMzQiLCJNMjg1LjcgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zIDQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwek01MjggODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjU2IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LGRCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cyIsaWNvbjpbMzg0LDUxMixbOTc5Ml0sImYyMjEiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NGMwLTEgMC0xLjktLjEtMi45eiJdfSx1QnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1zdWNjZXNzb3IiLGljb246WzQ0OCw1MTIsW10sImU0N2EiLCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDQ4MEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTYwIDE2MGwwLTY0LTk2IDAgMCA2NCA5NiAweiJdfSxwQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDYyIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwyNS0yNSAwLTQ0Ny4yYzAtMTUgMTAuNS0yOC4zIDI1LjQtMjkuOCA3LjQtLjcgMTQuOS0xLjEgMjIuNi0xLjEgMTEyLjcgMCAyMDYgODMuMyAyMjEuNyAxOTEuNyAuNCAzIDEuNyA1LjkgMy42IDguM2wyLjIgMi42IDIyNy41LTIyNy41ek0xMzMuOCA1MTJMMjg4IDM1Ny44IDI4OCA0MTZjMCA1My00MyA5Ni05NiA5NmwtNTguMiAwek0xNzYgMjI0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzM2IDQwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTg4IDcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjggMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OC0yNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxKaGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1wcm9qZWN0IixpY29uOls1MTIsNTEyLFsicHJvamVjdC1kaWFncmFtIl0sImY1NDIiLCJNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgMTI4IDAgMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTYtMTI4IDAgMCAxNmMwIDcuMy0xLjcgMTQuMy00LjYgMjAuNWw2OC42IDkxLjUgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtNy4zIDEuNy0xNC4zIDQuNi0yMC41TDEyOCAyMjQgNDggMjI0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgweiJdfSxmQnQ9SmhlLER0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXJtaW5hbCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyMCIsIk05LjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTQ2LjcgMjU2IDkuNCAxMTguNnpNMjI0IDM4NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LGhCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1maXJlIixpY29uOls2NDAsNTEyLFtdLCJlNTBjIiwiTTQ0OCAxOTJjMTQuMSAuNCAyMy44IDExLjQgMzIuNyAyMS43IDIgMi4zIDQgNC42IDYgNi43bDE5IDE5LjkgMTIuMi0xMy44YzUuNC02LjEgMTMuMy04LjkgMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjIgMjYuMiA4OC4yIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4xIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjV6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTQ3LjUgMTM3Yy0xOS4yLTQuMy00MCAuNS01NS41IDE0LjQtMzYuNCAzMi42LTY3LjcgNjkuOC05MC4zIDEwNi40LTEwLjMgMTYuNi0xOS43IDM0LjktMjYuOCA1My43TDI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgNjQuNiAwYzcuMyAxNy4yIDE2LjggMzMuNCAyOC4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNDg5LjMgMzQzLjdjLTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC43IDUxLjktNTQuNyA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0zNi41LTM3LTczLTU0LjctODguNHoiXX0sbUJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2siLGljb246WzU3Niw1MTIsW10sImY2ZmEiLCJNMjg4IDY0QzY0IDY0IDAgMTYwIDAgMjcyUzgwIDQ0OCAxNzYgNDQ4bDguNCAwYzI0LjIgMCA0Ni40LTEzLjcgNTcuMi0zNS40bDIzLjItNDYuM2M0LjQtOC44IDEzLjMtMTQuMyAyMy4yLTE0LjNzMTguOCA1LjUgMjMuMiAxNC4zbDIzLjIgNDYuM2MxMC44IDIxLjcgMzMgMzUuNCA1Ny4yIDM1LjRsOC40IDBjOTYgMCAxNzYtNjQgMTc2LTE3NlM1MTIgNjQgMjg4IDY0ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0zMjAtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LGdCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJodXJyaWNhbmUiLGljb246WzM4NCw1MTIsW10sImY3NTEiLCJNMCAyMDhDMCAxMDQuNCA3NS43IDE4LjUgMTc0LjkgMi42IDE4NCAxLjIgMTkyIDguNiAxOTIgMTcuOWwwIDYzLjNjMCA4LjQgNi41IDE1LjMgMTQuNyAxNi41IDEwMC4zIDE0LjkgMTc3LjMgMTAxLjMgMTc3LjMgMjA1LjcgMCAxMDMuNi03NS43IDE4OS41LTE3NC45IDIwNS40LTkuMiAxLjUtMTcuMS01LjktMTcuMS0xNS4ybDAtNjMuM0MxOTIgNDIxLjkgMTg1LjUgNDE1IDE3Ny4zIDQxMy43IDc3IDM5OC45IDAgMzEyLjQgMCAyMDh6bTI4OCA0OGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bS05Ni0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGU4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1hZnJpY2EiLGljb246WzUxMiw1MTIsWzEyNzc1NywiZ2xvYmUtYWZyaWNhIl0sImY1N2MiLCJNNDQ3LjYgMTc1Yy0zMS42LTc0LjYtMTA1LjUtMTI3LTE5MS42LTEyNy0yMi4xIDAtNDMuNCAzLjUtNjMuNCA5LjgtLjQgMi0uNiA0LjEtLjYgNi4ybDAgNzMuNGMwIDEyLjUgMTAuMSAyMi42IDIyLjYgMjIuNiA2IDAgMTEuOC0yLjQgMTYtNi42bDE2LTE2YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw1LjUgMGMyOC41IDAgNDIuOCAzNC41IDIyLjYgNTQuNi02IDYtMTQuMSA5LjQtMjIuNiA5LjRsLTYxLjUgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRsLTIxLjMgMjEuM2MtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMi43IDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjkuMy0yOS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTE4LjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNmwwLTM0LjdjMC04LjUtMy40LTE2LjYtOS40LTIyLjZsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDUgMGMxMi40IDAgMjIuNy03LjEgMjgtMTd6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGJCdD1lOGUsdDhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1idGFjayIsaWNvbjpbMzg0LDUxMixbMTI4MjA0LDEyODM5MiwidGh1bWItdGFjayJdLCJmMDhkIiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5LjUgMCAxMC4zIDEzNC4xYzM3LjEgMjEuMiA2NS44IDU2LjQgNzguMiA5OS43bDMuOCAxMy40YzIuOCA5LjcgLjggMjAtNS4yIDI4LjFTMzYyIDM1MiAzNTIgMzUyTDMyIDM1MmMtMTAgMC0xOS41LTQuNy0yNS41LTEyLjdzLTgtMTguNC01LjItMjguMUw1IDI5Ny44YzEyLjQtNDMuMyA0MS03OC41IDc4LjItOTkuN0w5My41IDY0IDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMTYwIDQwMGw2NCAwIDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTEyeiJdfSx2QnQ9dDhlLHhCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LWRvd24iLGljb246WzM4NCw1MTIsW10sImYwYTciLCJNMzIgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMDgtNjQgMCAwIDIwOHpNMjI0IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTY0IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTYwLTk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tOTYtODhsMCAuNmM5LjQtNS40IDIwLjMtOC42IDMyLTguNiAxMy4yIDAgMjUuNCA0IDM1LjYgMTAuOCA4LjctMjQuOSAzMi41LTQyLjggNjAuNC00Mi44IDExLjcgMCAyMi42IDMuMSAzMiA4LjZsMC04LjZDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMEwxNjIuMyAwQzExOS44IDAgNzkuMSAxNi45IDQ5LjEgNDYuOUwzNy41IDU4LjVDMTMuNSA4Mi41IDAgMTE1LjEgMCAxNDlsMCAyN2MwIDM1LjMgMjguNyA2NCA2NCA2NGw4OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwbC01NiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJ6Il19LGE4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yMDgtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0seUJ0PWE4ZSxxYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1lbXB0eSIsaWNvbjpbMzIwLDUxMixbInRlbXBlcmF0dXJlLTAiLCJ0aGVybW9tZXRlci0wIiwidGhlcm1vbWV0ZXItZW1wdHkiXSwiZjJjYiIsIk02NCA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTYgNDQ3LjUgMTYgMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0eiJdfSx3QnQ9cWIsTUJ0PXFiLGtCdD1xYixTQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLW5vbmUiLGljb246WzQ0OCw1MTIsW10sImY4NTAiLCJNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMjg4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTE2MCA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0yODggMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek00MTYgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMC0zODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQxNiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0eiJdfSx6QnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlnaGxpZ2h0ZXIiLGljb246WzU3Niw1MTIsW10sImY1OTEiLCJNMzE1IDMxNUw0NzMuNCA5OS45IDQ0NC4xIDcwLjYgMjI5IDIyOSAzMTUgMzE1em0tMTg3IDVsMCAwIDAtNzEuN2MwLTE1LjMgNy4yLTI5LjYgMTkuNS0zOC42TDQyMC42IDguNEM0MjggMi45IDQzNyAwIDQ0Ni4yIDAgNDU3LjYgMCA0NjguNSA0LjUgNDc2LjYgMTIuNmw1NC44IDU0LjhjOC4xIDguMSAxMi42IDE5IDEyLjYgMzAuNSAwIDkuMi0yLjkgMTguMi04LjQgMjUuNkwzMzQuNCAzOTYuNWMtOSAxMi4zLTIzLjQgMTkuNS0zOC42IDE5LjVsLTcxLjcgMC0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC01MC43LTUwLjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDEyOCAzMjB6TTcgNDY2LjNsNTEuNy01MS43IDcwLjYgNzAuNi0xOS43IDE5LjdjLTQuNSA0LjUtMTAuNiA3LTE3IDdMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuN2MwLTYuNCAyLjUtMTIuNSA3LTE3eiJdfSxDQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13YXZlIixpY29uOls1MTIsNTEyLFtdLCJmNTNhIiwiTTAgNDE5LjZMMCAxMDkuNWMwLTIzLjIgMjQuMS0zOC42IDQ2LjMtMzIgODcuNyAyNi4yIDE0OS43IDUuNSAyMTIuMS0xNS4zIDY0LjUtMjEuNSAxMjkuNC00My4xIDIyMy4zLTEzLjEgMTguNSA1LjkgMzAuMyAyMy44IDMwLjMgNDMuM2wwIDMxMC4xYzAgMjMuMi0yNC4xIDM4LjYtNDYuMiAzMi04Ny43LTI2LjItMTQ5LjgtNS41LTIxMi4xIDE1LjMtNjQuNSAyMS41LTEyOS40IDQzLjEtMjIzLjMgMTMuMS0xOC41LTUuOS0zMC4zLTIzLjgtMzAuMy00My4zek0zMzYgMjU2YzAtNTMtMzUuOC05Ni04MC05NnMtODAgNDMtODAgOTYgMzUuOCA5NiA4MCA5NiA4MC00MyA4MC05NnpNMTIwIDQxMy42YzQuNCAwIDcuOS0zLjggNy4yLTguMS00LjYtMjcuOC0yNy00OS41LTU1LjItNTMtNC40LS41LTggMy4xLTggNy41bDAgMzkuOWMwIDMuNiAyLjQgNi44IDYgNy43IDE3LjkgNC4yIDM0LjMgNi4xIDUwIDYuMXptMzE4LjUtNTEuMWM1IC44IDkuNS0zIDkuNS04bDAtNDIuNmMwLTQuNC0zLjYtOC4xLTgtNy41LTI1LjIgMy4xLTQ1LjkgMjAuOS01My4yIDQ0LjYtMS40IDQuNyAyLjMgOS4xIDcuMiA5LjIgMTQuMiAuNCAyOSAxLjcgNDQuNCA0LjN6TTQ0OCAxNTJsMC0zOS45YzAtMy42LTIuNS02LjgtNi03LjctMTcuOS00LjItMzQuMy02LjEtNTAtNi4xLTQuNCAwLTcuOSAzLjgtNy4yIDguMSA0LjYgMjcuOCAyNyA0OS41IDU1LjIgNTMgNC40IC41IDgtMy4xIDgtNy41ek0xMjUuMiAxNjIuOWMxLjQtNC43LTIuMy05LjEtNy4yLTkuMi0xNC4yLS40LTI5LTEuNy00NC40LTQuMy01LS44LTkuNSAzLTkuNSA4TDY0IDIwMGMwIDQuNCAzLjYgOC4xIDggNy41IDI1LjItMy4xIDQ1LjktMjAuOSA1My4yLTQ0LjZ6Il19LF9CdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXItc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTQuNS05NC41YzQwLjItMjMgNjkuNS05Ni45IDY5LjUtMTg0LjYgMC0xMDYtNDMtMTkyLTk2LTE5MnMtOTYgODYtOTYgMTkyYzAgMjQuMSAyLjIgNDcuMiA2LjMgNjguNEwzMDQgMjM4LjIgMzA0IDIyNGMwLTU4LjkgMTEuOC0xMTQuNSAzMy4yLTE1Ny4yIDUuOS0xMS43IDEzLjEtMjMuNyAyMS45LTM0LjhMMTI4IDMyYy04LjMgMC0xNi40IDIuMS0yNC4xIDYuMWwtNjMtNjN6TTMyIDIyNGwwIDI2NGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwxNjAgMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTExNC4yLTI1Ni0yNTZDMzcuOSAxNDguMiAzMiAxODQuNyAzMiAyMjR6bTQxNiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LFRCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtMzQuNCAyMi02NSA1NC43LTc1LjlsMTEyLTM3LjNjMy4xLTEgNi4yLTEuOCA5LjMtMi41bDAtMzkuMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnptODcuOCAzMTIuNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LExCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LWhlaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZjAzNCIsIk00MCAzMkMxNy45IDMyIDAgNDkuOSAwIDcybDAgNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDY0IDAgMCAzMjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyMCA2NCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDMyek00MzguNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTkuNCA5LjQgMC0yMjkuNSA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy02LTYtMTQuMS05LjQtMjIuNi05LjRzLTE2LjYgMy40LTIyLjYgOS40bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjI5LjUtOS40LTkuNHoiXX0scjhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUiLGljb246WzUxMiw1MTIsWzEyODUzOSwiZ3Jpbi10b25ndWUiXSwiZjU4OSIsIk0wIDI1NmMwIDEwNC40IDYyLjUgMTk0LjIgMTUyLjIgMjM0LjEtNS4zLTEzLTguMi0yNy4yLTguMi00Mi4xbDAtNjEuN2MtMTYuOS0xNi41LTMwLjEtMzYuNy0zOC4zLTU5LjMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS04LjMgMjIuNi0yMS41IDQyLjgtMzguMyA1OS4zbDAgNjEuN2MwIDE0LjktMi45IDI5LjEtOC4yIDQyLjEgODkuNy0zOS44IDE1Mi4yLTEyOS42IDE1Mi4yLTIzNC4xIDAtMTQxLjQtMTE0LjYtMjU2LTI1Ni0yNTZTMCAxMTQuNiAwIDI1NnptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDI0MGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LCRCdD1yOGUsREJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2lnbmF0dXJlIixpY29uOls2NDAsNTEyLFtdLCJmNTczIiwiTTY0LjEgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjc3LjYgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgOTcuNS0xMzIgMTMyLTQyLjEgMC0xNi4xLTUzLjZjLTQuNy0xNS43LTE5LjEtMjYuNC0zNS41LTI2LjQtMTEuMyAwLTIxLjkgNS4xLTI4LjkgMTMuOUwxMzMuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDMxLjUgMGMtLjkgMy4xLTEuNyA2LjMtMi4zIDkuNWwtMTAuOSA1NC41LTE0Ni4yIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5My41IDAtMTE3LjUtMTE3LjV6bTYwLjIgNDA4LjRjMi41LTEyLjQgOC42LTIzLjggMTcuNS0zMi43bDExOC45LTExOC45IDgwIDgwLTExOC45IDExOC45Yy04LjkgOC45LTIwLjMgMTUtMzIuNyAxNy41bC01OS42IDExLjljLS45IC4yLTEuOSAuMy0yLjkgLjMtOCAwLTE0LjYtNi41LTE0LjYtMTQuNiAwLTEgLjEtMS45IC4zLTIuOWwxMS45LTU5LjZ6bTI2Ny44LTEyM2wtMjguOCAyOC44LTgwLTgwIDI4LjgtMjguOGMyMi4xLTIyLjEgNTcuOS0yMi4xIDgwIDBzMjIuMSA1Ny45IDAgODB6Il19LEFCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy13aGVhdCIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0OS4zIDBjLTYtMTQuOC05LjMtMzEtOS4zLTQ4IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTI1LjIgMTQuNS00Ni45IDM1LjYtNTcuNC0yLjQtNy4xLTMuNi0xNC43LTMuNi0yMi42bDAtMzJDMzY4IDk2LjcgMzg4IDcwLjEgNDE1LjkgNjAuMSA0MTMuOSAyNi42IDM4NiAwIDM1MiAwTDk2IDB6TTIwOCAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptMzUyIDBsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6bTAgMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6TTQ5NiA1MjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTE2LTk2YzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDB6bTE2LTEyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2ek01MTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTk2IDY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00NDAgMTA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sUEJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVlIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0scWVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZ1dGJvbCIsaWNvbjpbNTEyLDUxMixbOTkxNywiZnV0Ym9sLWJhbGwiLCJzb2NjZXItYmFsbCJdLCJmMWUzIiwiTTQxNy4zIDM2MC4xbC03MS42LTQuOGMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0xNy42IDY5LjZDMjg5LjUgNDQ1LjggMjczIDQ0OCAyNTYgNDQ4cy0zMy41LTIuMi00OS4yLTYuNEwxODkuMiAzNzJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTcxLjYgNC44Yy0xNy42LTI3LjItMjguNS01OS4yLTMwLjQtOTMuNkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNWwtMjYuNy02Ni42QzEyOCAxMDkuMiAxNTUuMyA4OSAxODYuNyA3Ni45bDU1LjIgNDZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNTUuMi00NmMzMS4zIDEyLjEgNTguNyAzMi4zIDc5LjYgNTcuOWwtMjYuNyA2Ni42Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlsNjAuNyAzOC4yYy0xLjkgMzQuNC0xMi44IDY2LjQtMzAuNCA5My42ek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmw1OS4yIDBjMTAuNCAwIDE5LjYtNi43IDIyLjgtMTYuNmwxOC4zLTU2LjNjMy4yLTkuOS0uMy0yMC43LTguNy0yNi44bC00Ny45LTM0Ljh6Il19LEVCdD1xZWUsSUJ0PXFlZSxzOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBsdXMiLGljb246WzUxMiw1MTIsWyJwbHVzLWNpcmNsZSJdLCJmMDU1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzIgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sTkJ0PXM4ZSxSQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhemlsaWFuLXJlYWwtc2lnbiIsaWNvbjpbNTEyLDUxMixbXSwiZTQ2YyIsIk00MDAgMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC00OC45IDBjLTI2IDAtNDcuMSAyMS4xLTQ3LjEgNDcuMSAwIDIyLjUgMTUuOSA0MS44IDM3LjkgNDYuMmwzMi44IDYuNmM1MS45IDEwLjQgODkuMyA1NiA4OS4zIDEwOSAwIDUwLjYtMzMuOCA5My4zLTgwIDEwNi43bDAgMjAuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQuOSAwYzI2IDAgNDcuMS0yMS4xIDQ3LjEtNDcuMSAwLTIyLjUtMTUuOS00MS44LTM3LjktNDYuMmwtMzIuOC02LjZjLTUxLjktMTAuNC04OS4zLTU2LTg5LjMtMTA5IDAtNTAuNiAzMy44LTkzLjIgODAtMTA2LjdMMzY4IDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6Il19LE9CdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLWFuZC1jcmVzY2VudCIsaWNvbjpbNTEyLDUxMixbOTc3MF0sImY2OTkiLCJNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAzMyAwIDY0LjYgNi4zIDkzLjYgMTcuNyA3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOHM5My4xIDIwOCAyMDggMjA4YzQuOSAwIDkuOC0uMiAxNC42LS41IDcuOS0uNSAxNSA0LjcgMTYuNyAxMi40cy0yLjQgMTUuNS05LjggMTguNEMzMjAuNiA1MDUuNyAyODkgNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6TTM3NS40IDEzNy40YzMuNS03LjEgMTMuNy03LjEgMTcuMiAwbDMxLjUgNjMuOGMxLjQgMi44IDQuMSA0LjggNy4yIDUuM2w3MC40IDEwLjJjNy45IDEuMSAxMSAxMC44IDUuMyAxNi40bC01MC45IDQ5LjZjLTIuMyAyLjItMy4zIDUuNC0yLjggOC41bDEyIDcwLjFjMS4zIDcuOC02LjkgMTMuOC0xMy45IDEwLjFsLTYzLTMzLjFjLTIuOC0xLjUtNi4xLTEuNS04LjkgMGwtNjMgMzMuMWMtNyAzLjctMTUuMy0yLjMtMTMuOS0xMC4xbDEyLTcwLjFjLjUtMy4xLS41LTYuMy0yLjgtOC41TDI2MSAyMzMuMWMtNS43LTUuNi0yLjYtMTUuMiA1LjMtMTYuNGw3MC40LTEwLjJjMy4xLS41IDUuOC0yLjQgNy4yLTUuM2wzMS41LTYzLjh6Il19LGk4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxGQnQ9aThlLEJCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3NwaXRhbC11c2VyIixpY29uOls2NDAsNTEyLFtdLCJmODBkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjcgMCAyNy43IDguOCA1My40IDIzLjggNzQuNC01MS41IDIxLTg3LjggNzEuNi04Ny44IDEzMC43IDAgMSAwIDEuOSAwIDIuOWwtMTc2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDY0ek0yMDggNDAwbDAgNjQgNTMuNCAwYzcuMi0yOS40IDIxLjMtNTYuMSA0MC40LTc4LjMtNi4xLTE5LjUtMjQuMy0zMy43LTQ1LjgtMzMuNy0yNi41IDAtNDggMjEuNS00OCA0OHpNMjQ4IDg4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwek00MTYgMzA0YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxIQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGIwIiwiTTI2Mi42IDQyMi42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDI1LjQgMjUuNCAwLTExNC43LTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjU2IDAgMC0xMTQuNy0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDgwLTgwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0yNS40LTI1LjQgMCA5NC44Yy0yNS4zIDIwLjMtNDIuOCA1MC4xLTQ3IDgzLjlsLTE0NSAwIDAgMTE0LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTE5MiAzMmwwIDE0NC02NCAwIDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LG84ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxxQnQ9bzhlLFZCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2xseS1iZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYSIsIk0yNTYuMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTI3NyAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjIgMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjkgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42LTM0LjYgMC02Mi43LTI4LjEtNjIuNy02Mi43bDAtMzJjMC0xNi40LTE2LTI3LjktMzEuNi0yMi44bC0xMi44IDQuM2MtMTggNi0zNy4zIDYuNS01NS42IDEuNWwtMjkuNi04LjFjLTIuOS0uOC01LjktMS04LjctLjcgNC4yIDkuNyA1LjggMjAuOCAzLjcgMzIuM2wtNi4zIDM0LjhjLTEuNSA4LjQtMS40IDE3IC41IDI1LjNsNS4zIDIzLjljMi44IDEyLjcgMS4xIDI1LjItNCAzNS45ek0xMjcuOCAyMzQuNWMtMTUuNS01LjItMzEuNiA2LjQtMzEuNiAyMi44bDAgMzJjMCAzNC42LTI4LjEgNjIuNy02Mi43IDYyLjctMTYuNCAwLTI3LjkgMTYtMjIuOCAzMS42TDE1IDM5Ni40YzYgMTggNi41IDM3LjMgMS41IDU1LjZsLTUuMyAxOS40QzYuNCA0ODkuNCAyMi44IDUwNS44IDQwLjcgNTAxbDE5LjQtNS4zYzE4LjMtNSAzNy42LTQuNSA1NS42IDEuNWwxMi44IDQuM2MxNS41IDUuMiAzMS42LTYuNCAzMS42LTIyLjhsMC0zMmMwLTM0LjYgMjguMS02Mi43IDYyLjctNjIuNyAxNi40IDAgMjcuOS0xNiAyMi44LTMxLjZsLTQuMy0xMi44Yy02LTE4LTYuNS0zNy4zLTEuNS01NS42bDUuMy0xOS40YzQuOS0xNy45LTExLjYtMzQuNC0yOS41LTI5LjVsLTE5LjQgNS4zYy0xOC4zIDUtMzcuNiA0LjQtNTUuNi0xLjVsLTEyLjgtNC4zek0zODQuMiAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sakJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MF0sImYyMjYiLCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgMSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS04Mi0xNS0xNDQuMS04Ni44LTE0NC4xLTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2UzM2OCA3OC44IDM2OCAxNzZ6TTM1Ny41IDMyN2MxNC40LTE1LjggMjYuNi0zMy43IDM2LjEtNTMuMSAxNi4xIDkgMzQuNyAxNC4xIDU0LjUgMTQuMSA2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1MDkuOSA2NCA0NDggNjRjLTE5LjggMC0zOC4zIDUuMS01NC41IDE0LjEtOS41LTE5LjQtMjEuNi0zNy4zLTM2LjEtNTMuMSAyNi40LTE1LjkgNTcuNC0yNSA5MC41LTI1IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIC45IC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTIxLjEtMy45LTQwLjktMTEuNS01OC42LTIyLjJ6Il19LFVCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtcXVlc3Rpb24iLGljb246WzM4NCw1MTIsW10sImU0ZTMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAyNDhjMTYuMSAwIDI5LjIgMTMuMSAyOS4yIDI5LjIgMCA4LjctMy4xIDEzLjktNi45IDE3LjctNC41IDQuNC0xMC43IDcuNS0xNi44IDkuNS0xNC45IDUtMjkuNSAxOS4zLTI5LjUgMzkuNSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMS41IDAgMjEuMi04LjEgMjMuNS0xOSAxOS4yLTcuMSA1My43LTI2LjMgNTMuNy03MS44IDAtNDIuNi0zNC42LTc3LjItNzcuMi03Ny4ycy03Ny4yIDM0LjYtNzcuMiA3Ny4yYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xNi4xIDEzLjEtMjkuMiAyOS4yLTI5LjJ6bTI4IDE2OGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6Il19LFdCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3Rkb2ciLGljb246WzUxMiw1MTIsWzEyNzc4OV0sImY4MGYiLCJNMjg4IDBjLTIwLjUgMC00MC4xIDguMS01NC42IDIyLjZMMjIuNiAyMzMuNEM4LjEgMjQ3LjkgMCAyNjcuNSAwIDI4OCAwIDMwMC4yIDIuOSAzMTIuMSA4LjIgMzIyLjdMMzIyLjcgOC4yQzMxMi4xIDIuOSAzMDAuMiAwIDI4OCAwek0yMjQgNTEyYzIwLjUgMCA0MC4xLTguMSA1NC42LTIyLjZMNDg5LjQgMjc4LjZjMTQuNS0xNC41IDIyLjYtMzQuMSAyMi42LTU0LjYgMC0xMi4yLTIuOS0yNC4xLTguMi0zNC43TDE4OS4zIDUwMy44YzEwLjcgNS40IDIyLjYgOC4yIDM0LjcgOC4yek00NTYuNiAxNjguNmMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0yODggMjg4Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjFzODEuOSAzMS4yIDExMy4xIDBsMjg4LTI4OHoiXX0sR0J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tYnJhY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA5YSIsIk0yNDYuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAxOTIgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpNNjQgMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMzM0LjMgMCAzNTJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHoiXX0sWUJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3Jvc2NvcGUiLGljb246WzUxMiw1MTIsWzEyODMwMF0sImY2MTAiLCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NCAzMiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzM5MC43IDQ0OCAzMjAgNDQ4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYuOSAwYzMwLjQtMzQgNDguOS03OC44IDQ4LjktMTI4IDAtMTA2LTg2LTE5Mi0xOTItMTkybC0zMiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6TTEyMCAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxLQnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0bDMwNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNTEuNi0zMC41LTk2LjEtNzQuNS0xMTYuMyA2LjctMTMuMSAxMC41LTI4IDEwLjUtNDMuNyAwLTUzLTQzLTk2LTk2LTk2LTE3LjcgMC0zNC4yIDQuOC00OC40IDEzLjEtMjQuMS00NS44LTcyLjItNzcuMS0xMjcuNi03Ny4xLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOCAuNyAxNS45IDEuOSAyMy41LTU2LjkgMTkuMi05Ny45IDczLjEtOTcuOSAxMzYuNXoiXX0sWkJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsLWJhdC1iYWxsIixpY29uOls1NzYsNTEyLFtdLCJmNDMyIiwiTTQ2NC4xIDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptOC40LTU3NmMxNS4xIDAgMjkuNyA1LjggNDAuNyAxNi4ybDQ3LjIgNDQuOGMxMi42IDEyIDE5LjEgMjkgMTcuNSA0Ni4zLTEuMiAxMy4zLTcgMjUuOC0xNi41IDM1LjJMMzYzLjEgMzA5Yy03LjMgNy4zLTE1LjcgMTMuNC0yNSAxOEwyMDYgMzkzYy05LjIgNC42LTE3LjcgMTAuNy0yNSAxOGwtOTIgOTIgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN2wtMS44LTEuNy00OC00OC0xLjctMS44Yy03LjctOS40LTcuMS0yMy4zIDEuNy0zMi4xczIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgOTItOTJjNy4zLTcuMyAxMy40LTE1LjcgMTgtMjVsNjYuMS0xMzIuMWM0LjYtOS4yIDEwLjctMTcuNyAxOC0yNUw0MzAuOC0xNC43QzQ0MS45LTI1LjggNDU2LjktMzIgNDcyLjUtMzJ6Il19LG44ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItcmVhciIsaWNvbjpbNTEyLDUxMixbImNhci1hbHQiXSwiZjVkZSIsIk0xNjUuNCA5NmwxODEuMiAwYzEzLjYgMCAyNS43IDguNiAzMC4yIDIxLjRsMjYuMSA3NC42LTI5My44IDAgMjYuMS03NC42YzQuNS0xMi44IDE2LjYtMjEuNCAzMC4yLTIxLjR6bS05MC42IC4zTDM5LjYgMTk2LjhDMTYuNCAyMDYuNCAwIDIyOS4zIDAgMjU2bDAgOTZjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjU2IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDAuNmMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40bDAtOTZjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgOTYuM0M0MjMuNyA1Ny44IDM4Ny40IDMyIDM0Ni42IDMyTDE2NS40IDMyYy00MC44IDAtNzcuMSAyNS44LTkwLjYgNjQuM3pNMjA4IDI4OGw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00OCAyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTM2MC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxYQnQ9bjhlLGw4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2stc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aHVtYi10YWNrLXNsYXNoIl0sImU2OGYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MTcuOCAzNTIgNDQ4IDM1MmMxMCAwIDE5LjUtNC43IDI1LjUtMTIuN3M4LTE4LjQgNS4yLTI4LjFMNDc1IDI5Ny44Yy0xMi40LTQzLjMtNDEtNzguNS03OC4yLTk5LjdMMzg2LjUgNjQgNDE2IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMTYwIDBjLTcuNCAwLTE0LjEgMi41LTE5LjUgNi42TDE5MC4xIDU2LjMgMTg1LjMgMTE5LjQgNDEtMjQuOXpNMjgyLjIgMzUyTDE0OS43IDIxOS42Yy0yMi43IDIwLjUtMzkuOCA0Ny40LTQ4LjcgNzguM2wtMy44IDEzLjRjLTIuOCA5LjctLjggMjAgNS4yIDI4LjFTMTE4IDM1MiAxMjggMzUybDE1NC4yIDB6TTI1NiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMi02NCAwIDAgMTEyeiJdfSxRQnQ9bDhlLEpCdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVzLW1pbnVzIixpY29uOlszODQsNTEyLFtdLCJlNDNjIiwiTTIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDEyOC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTEyOHpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sZUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwOSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1My40IDMzOS4xYy03LjEtNS4yLTE3LjEtMy42LTIyLjMgMy41bC01MyA3Mi44LTI2LjctMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDAtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuN3M4LjktMi44IDExLjctNi42bDY0LTg4YzUuMi03LjEgMy42LTE3LjEtMy41LTIyLjN6Il19LHRIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXkiLGljb246WzQ0OCw1MTIsW10sImY3ODMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6Il19LGFIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWJyYSIsaWNvbjpbNTEyLDUxMixbXSwiZTg0YiIsIk00ODAgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NDggMHpNMjU2IDMyYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTYuNi0yLjQgMzIuNy02LjcgNDhsNTQuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMDQuMiAwYy0xMS44IDAtMjIuNy02LjUtMjguMi0xNi45cy00LjktMjMuMSAxLjYtMzIuOWMxMS45LTE3LjggMTguOC0zOS4xIDE4LjgtNjIuMiAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxNDQgMTQ2LjEgMTQ0IDIwOGMwIDIzLjEgNi45IDQ0LjQgMTguOCA2Mi4yIDYuNiA5LjggNy4yIDIyLjUgMS42IDMyLjlTMTQ4LjEgMzIwIDEzNi4yIDMyMEwzMiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTQuOCAwYy00LjMtMTUuMy02LjgtMzEuNC02LjgtNDggMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZ6Il19LHJIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sc0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS12aWJyYXRlIixpY29uOls1NzYsNTEyLFtdLCJlODE2IiwiTTM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zODRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDB6TTI0OCA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNNDguOCAxMzMuNGM5LjQtNy43IDIzLjMtNy4xIDMyLjEgMS43IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMSAzMSAyNS40IDI1LjQgMi45IDMuMmM2LjMgNy43IDkuOCAxNy40IDkuOCAyNy40IDAgMTEuNS00LjYgMjIuNS0xMi43IDMwLjZsLTI1LjQgMjUuNCAzMSAzMSAxLjcgMS44YzcuNyA5LjQgNy4xIDIzLjMtMS43IDMyLjFzLTIyLjcgOS4zLTMyLjEgMS43TDQ3IDM3NyAxMi43IDM0Mi42QzUuNiAzMzUuNSAxLjIgMzI2LjIgLjIgMzE2LjNMMCAzMTIgLjIgMzA3LjdjMS05LjkgNS40LTE5LjIgMTIuNS0yNi4zTDM4LjEgMjU2IDEyLjcgMjMwLjZDNS42IDIyMy41IDEuMiAyMTQuMiAuMiAyMDQuM0wwIDIwMCAuMiAxOTUuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMNDcgMTM1IDQ4LjggMTMzLjR6TTQ5NSAxMzVjOC44LTguOCAyMi43LTkuMyAzMi4xLTEuN2wxLjggMS43IDM0LjMgMzQuM2M3LjEgNy4xIDExLjUgMTYuNCAxMi41IDI2LjNsLjIgNC4zLS4yIDQuM2MtMSA5LjktNS40IDE5LjItMTIuNSAyNi4zbC0yNS40IDI1LjQgMjUuNCAyNS40YzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTM0LjMgMzQuMy0xLjggMS43Yy05LjQgNy43LTIzLjMgNy4xLTMyLjEtMS43cy05LjMtMjIuNy0xLjctMzIuMWwxLjctMS44IDMxLTMxLTI1LjQtMjUuNGMtOC4xLTguMS0xMi43LTE5LjEtMTIuNy0zMC42IDAtMTAgMy41LTE5LjcgOS44LTI3LjRsMi45LTMuMiAyNS40LTI1LjQtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxjOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTIyLjYgMTQzLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0saUh0PWM4ZSxvSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtYmV0d2Vlbi1saW5lcyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MSIsIk0yNCAxNmw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA2NEMxMC43IDY0IDAgNTMuMyAwIDQwUzEwLjcgMTYgMjQgMTZ6bTAgNDQ4bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMzkyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMEMxMzguNiAzMTguMyAxMjggMzQ5LjkgMTI4IDM4NGwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiA0MTYgMzIgNDA2LjQgMzIgMzk0LjdMMzIgMzg0YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMTUyLTE2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDM4NGMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHoiXX0sbkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTEzIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxkOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtbGlzdCIsaWNvbjpbNDQ4LDUxMixbInRoLWxpc3QiXSwiZjAwYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgMGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAyMjRsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHpNNjQgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6Il19LGxIdD1kOGUsY0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYXNrLXZpYWwiLGljb246WzY0MCw1MTIsW10sImU0ZjMiLCJNMTg0LjYgNDExLjVjLTMuMSA3LjMtNS40IDE0LjktNi44IDIyLjYtMTQuNSA4LjgtMzEuNSAxMy45LTQ5LjggMTMuOS01MyAwLTk2LTQzLTk2LTk2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAyNTUuNi0zOS40IDkxLjl6TTk2IDY0bDAgMTI4IDY0IDAgMC0xMjgtNjQgMHpNMzUyIDBMNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuNCA5MS4zIDIxM2MyLjMgNS40IDMuOCAxMS4xIDQuNCAxN2wuMyAuNi0uMyAwYy4yIDEuOCAuMyAzLjYgLjMgNS40IDAgMzIuMy0yNi4yIDU4LjYtNTguNiA1OC42bC0yNjYuOSAwYy0zMi4zIDAtNTguNi0yNi4yLTU4LjYtNTguNiAwLTEuOCAuMS0zLjYgLjMtNS40bC0uMyAwIC4zLS42Yy42LTUuOCAyLjEtMTEuNiA0LjQtMTdMMzIwIDIxNy40IDMyMCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMzAyLjMgMCAzMjAgMGwzMiAwek00NTMuMiAyNDIuNmMtMy40LTgtNS4yLTE2LjUtNS4yLTI1LjJsMC0xNTMuNC02NCAwIDAgMTUzLjRjMCA4LjctMS44IDE3LjItNS4yIDI1LjJsLTMzLjIgNzcuNCAxNDAuNyAwLTMzLjItNzcuNHoiXX0sdThlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbImV4Y2xhbWF0aW9uLWNpcmNsZSJdLCJmMDZhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTE5MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjYgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LGRIdD11OGUscDhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRheGkiLGljb246WzUxMiw1MTIsWzEyODY2MiwiY2FiIl0sImYxYmEiLCJNMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItOC45IDBjLTQyIDAtNzkuMSAyNy4zLTkxLjYgNjcuNGwtMjMgNzMuNUMxNC41IDIxOS4xIDAgMjQzLjkgMCAyNzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDMyMCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE3NmMwLTI4LjEtMTQuNS01Mi45LTM2LjQtNjcuMWwtMjMtNzMuNUM0NDAuMSA5MS4zIDQwMi45IDY0IDM2MC45IDY0bC04LjkgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwek0xNTEuMSAxMjhsMjA5LjkgMGMxNCAwIDI2LjQgOS4xIDMwLjUgMjIuNWwxMyA0MS41LTI5Ni45IDAgMTMtNDEuNWM0LjItMTMuNCAxNi41LTIyLjUgMzAuNS0yMi41ek05NiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yODggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sdUh0PXA4ZSxmOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInJlbW92ZS1mb3JtYXQiXSwiZjg3ZCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDMyMi43IDI1Ni45IDM2OC4yIDk2IDQ3MSA5NiA0NjUgMTIwLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTEtNDQuMUM1NDUuNiA2MS4zIDUyMi43IDMyIDQ5MS41IDMybC0zMTkgMGMtMTkuOCAwLTM3LjMgMTIuMS00NC41IDMwLjFsLTg3LTg3ek0xODAuNCAxMTQuNWw0LjYtMTguNSAxMTYuNyAwLTMwLjggMTA5LTkwLjUtOTAuNXpNMjQxIDMxMC44TDIxMS4zIDQxNiAxNjAgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Mi4yIDAgMTUuMS01My4zLTUxLjktNTEuOXoiXX0scEh0PWY4ZSxmSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXB1bGxpbmciLGljb246WzU3Niw1MTIsW10sImU1MzUiLCJNODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyIDkuOCAwIDE4LjUtNC40IDI0LjQtMTEuMkw4MC40IDQ4NS4zYzIuOSAxNy40IDE5LjQgMjkuMiAzNi44IDI2LjNzMjkuMi0xOS40IDI2LjMtMzYuOGwtMjAuNS0xMjIuNyAxNS43IDAgMzAgMTM0LjljMy44IDE3LjMgMjAuOSAyOC4xIDM4LjIgMjQuM3MyOC4xLTIwLjkgMjQuMy0zOC4ybC01Ny4zLTI1OCAxMTYuMyA1My44Yy41IC4zIDEuMSAuNSAxLjYgLjcgOC42IDMuNiAxOCAzLjEgMjUuOS0uNyAzLjQtMS42IDYuNi0zLjkgOS4zLTYuNyAzLjEtMy4yIDUuNS03IDcuMS0xMS40IC4xLS4zIC4yLS43IC4zLTFsMi41LTcuNWM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOWwtMjEuNC0xMC43LTE1LjMtMzYuOGMtMTcuMS00MS4xLTU3LjMtNjcuOS0xMDEuOS02Ny45LTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMjQuNCAxMC45LTQ0LjYgMjktNTguMSA1MS42TDE1Ny4zIDEzNi45QzE0NC43IDEzMSAxMzAuOSAxMjggMTE3IDEyOGwtNTMgMHpNNDY0IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ5LjcgMzM1LjZsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM3Mi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6Il19LGhIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5NF0sImYwNGEiLCJNMjA0LjMgNDMuMUMyMTUuOSAzMiAyMzMgMjguOSAyNDcuNyAzNS4yUzI3MiA1NiAyNzIgNzJsMCAxMzYuMyAxNzIuMy0xNjUuMUM0NTUuOSAzMiA0NzMgMjguOSA0ODcuNyAzNS4yUzUxMiA1NiA1MTIgNzJsMCAzNjhjMCAxNi05LjYgMzAuNS0yNC4zIDM2LjhzLTMxLjggMy4yLTQzLjQtNy45TDI3MiAzMDMuNyAyNzIgNDQwYzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOWwtMTkyLTE4NEM0LjUgMjc3LjMgMCAyNjYuOSAwIDI1NnM0LjUtMjEuMyAxMi4zLTI4LjlsMTkyLTE4NHoiXX0saDhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1idXJzdCIsaWNvbjpbNjQwLDUxMixbImNhci1jcmFzaCJdLCJmNWUxIiwiTTIzMiAxNi4xbDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0ek0zMiAxNjguMWw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek0yODEuNSA3MC42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDI4MS41IDM2LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em0tMTgxIDIxNWwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1Mi45IDE3NS40TDUwNSAyMTYuMmM2LjQgMS43IDExLjEgNy4zIDExLjggMTMuOWw3LjIgNzQtMjMxLjUtNjIgNDMuMi02MC41YzMuOS01LjQgMTAuNy03LjkgMTcuMi02LjJ6TTIyMy42IDIyOC41bC0yLjEgMi45Yy0yMS43IDUuNS0zOS45IDIyLjMtNDYuMSA0NS41LTQuMSAxNS41LTEyLjQgNDYuNC0yNC44IDkyLjdsLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI3OC4yIDc0LjUtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjYgNC4xLTE1LjUgMTIuNC00Ni40IDI0LjgtOTIuN2w4LjMtMzAuOWM2LjItMjMuMi0xLjEtNDYuOC0xNy4yLTYyLjVsLS4zLTMuNi0xMC0xMDNjLTMuMi0zMy4yLTI2LjctNjAuOS01OC45LTY5LjVMMzY5LjUgMTEzLjZjLTMyLjItOC42LTY2LjQgMy42LTg1LjggMzAuOGwtNjAuMiA4NC4yem00OC43IDU3LjhhMzIgMzIgMCAxIDEgLTE2LjYgNjEuOCAzMiAzMiAwIDEgMSAxNi42LTYxLjh6bTIwOC4xIDg4LjlhMzIgMzIgMCAxIDEgNjEuOCAxNi42IDMyIDMyIDAgMSAxIC02MS44LTE2LjZ6Il19LG1IdD1oOGUsbThlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpbmsiLGljb246WzU3Niw1MTIsWzEyODI3OSwiY2hhaW4iXSwiZjBjMSIsIk00MTkuNSA5NmMtMTYuNiAwLTMyLjcgNC41LTQ2LjggMTIuNy0xNS44LTE2LTM0LjItMjkuNC01NC41LTM5LjUgMjguMi0yNCA2NC4xLTM3LjIgMTAxLjMtMzcuMiA4Ni40IDAgMTU2LjUgNzAgMTU2LjUgMTU2LjUgMCA0MS41LTE2LjUgODEuMy00NS44IDExMC42bC03MS4xIDcxLjFjLTI5LjMgMjkuMy02OS4xIDQ1LjgtMTEwLjYgNDUuOC04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC0xLjUgMC0zIC4xLTQuNSAuNS0xNy43IDE1LjItMzEuNiAzMi45LTMxLjFzMzEuNiAxNS4yIDMxLjEgMzIuOWMwIC45IDAgMS44IDAgMi42IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDI0LjUgMCA0OC05LjcgNjUuNC0yNy4xbDcxLjEtNzEuMWMxNy4zLTE3LjMgMjcuMS00MC45IDI3LjEtNjUuNCAwLTUxLjEtNDEuNC05Mi41LTkyLjUtOTIuNXpNMjc1LjIgMTczLjNjLTEuOS0uOC0zLjgtMS45LTUuNS0zLjEtMTIuNi02LjUtMjctMTAuMi00Mi4xLTEwLjItMjQuNSAwLTQ4IDkuNy02NS40IDI3LjFMOTEuMSAyNTguMmMtMTcuMyAxNy4zLTI3LjEgNDAuOS0yNy4xIDY1LjQgMCA1MS4xIDQxLjQgOTIuNSA5Mi41IDkyLjUgMTYuNSAwIDMyLjYtNC40IDQ2LjctMTIuNiAxNS44IDE2IDM0LjIgMjkuNCA1NC42IDM5LjUtMjguMiAyMy45LTY0IDM3LjItMTAxLjMgMzcuMi04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC00MS41IDE2LjUtODEuMyA0NS44LTExMC42bDcxLjEtNzEuMWMyOS4zLTI5LjMgNjkuMS00NS44IDExMC42LTQ1LjggODYuNiAwIDE1Ni41IDcwLjYgMTU2LjUgMTU2LjkgMCAxLjMgMCAyLjYgMCAzLjktLjQgMTcuNy0xNS4xIDMxLjYtMzIuOCAzMS4ycy0zMS42LTE1LjEtMzEuMi0zMi44YzAtLjggMC0xLjUgMC0yLjMgMC0zMy43LTE4LTYzLjMtNDQuOC03OS42eiJdfSxnSHQ9bThlLGc4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZC1zdGVwIixpY29uOlszODQsNTEyLFsic3RlcC1iYWNrd2FyZCJdLCJmMDQ4IiwiTTM2MyAzNi44Yy0xMi45LTctMjguNy02LjMtNDEgMS44TDY0IDIwOC4xIDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQuMSAyNTggMTY5LjZjMTIuMyA4LjEgMjggOC44IDQxIDEuOHMyMS0yMC41IDIxLTM1LjJsMC0zNjhjMC0xNC43LTguMS0yOC4yLTIxLTM1LjJ6Il19LGJIdD1nOGUsdkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IngiLGljb246WzM4NCw1MTIsWzEyMF0sIjU4IiwiTTM3Ni42IDg0LjVjMTEuMy0xMy42IDkuNS0zMy44LTQuMS00NS4xcy0zMy44LTkuNS00NS4xIDQuMUwxOTIgMjA2IDU2LjYgNDMuNUM0NS4zIDI5LjkgMjUuMSAyOC4xIDExLjUgMzkuNFMtMy45IDcwLjkgNy40IDg0LjVMMTUwLjMgMjU2IDcuNCA0MjcuNWMtMTEuMyAxMy42LTkuNSAzMy44IDQuMSA0NS4xczMzLjggOS41IDQ1LjEtNC4xTDE5MiAzMDYgMzI3LjQgNDY4LjVjMTEuMyAxMy42IDMxLjUgMTUuNCA0NS4xIDQuMXMxNS40LTMxLjUgNC4xLTQ1LjFMMjMzLjcgMjU2IDM3Ni42IDg0LjV6Il19LGI4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yIDM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDE2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0eiJdfSx4SHQ9YjhlLHY4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTk2IDI1NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0xMjAtNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHlIdD12OGUseDhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQiLGljb246WzUxMiw1MTIsWzEyOTMwNiw5OTk1LCJoYW5kLXBhcGVyIl0sImYyNTYiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6Il19LHdIdD14OGUsTUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbmNlciIsaWNvbjpbNTEyLDUxMixbXSwiZTg0NyIsIk00MDggMTUyYzU3LjQgMCAxMDQgNDYuNiAxMDQgMTA0IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTYtNTQuMyAwLTEwNC44LTE3LTE0Ni4zLTQ1LjktMTQuNS0xMC4xLTE4LTMwLjEtNy45LTQ0LjZzMzAuMS0xOCA0NC42LTcuOWMzMS4xIDIxLjcgNjguOSAzNC40IDEwOS43IDM0LjQgNjcuOSAwIDEyNy41LTM1LjMgMTYxLjctODguNS0zLjIgLjMtNi40IC41LTkuNyAuNS01Ny40IDAtMTA0LTQ2LjYtMTA0LTEwNHM0Ni42LTEwNCAxMDQtMTA0ek0yNTYgMGM1NC4zIDAgMTA0LjggMTcgMTQ2LjMgNDUuOSAxNC41IDEwLjEgMTggMzAuMSA3LjkgNDQuNnMtMzAuMSAxOC00NC42IDcuOWMtMzEuMS0yMS43LTY4LjktMzQuNC0xMDkuNy0zNC40LTY3LjkgMC0xMjcuNSAzNS4yLTE2MS43IDg4LjQgMy4yLS4zIDYuNC0uNCA5LjctLjQgNTcuNCAwIDEwNCA0Ni42IDEwNCAxMDRTMTYxLjQgMzYwIDEwNCAzNjAgMCAzMTMuNCAwIDI1NkMwIDI1NC4xIDAgMjUyLjIgLjEgMjUwLjQgMy4xIDExMS42IDExNi41IDAgMjU2IDB6TTEwNCAyMTZhNDAgNDAgMCAxIDAgMCA4MCA0MCA0MCAwIDEgMCAwLTgwem0zMDQgMGE0MCA0MCAwIDEgMCAwIDgwIDQwIDQwIDAgMSAwIDAtODB6Il19LHk4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YW4tc2h1dHRsZSIsaWNvbjpbNTc2LDUxMixbMTI4NjU2LCJzaHV0dGxlLXZhbiJdLCJmNWI2IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzM2YzAgMzUuMyAyOC43IDY0IDY0IDY0bC40IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MHM4My42LTM1LjEgODcuNi04MGwxMDQuNyAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODAgNDYuMSAwIDgzLjktMzUuNCA4Ny43LTgwLjUgMzEuNy0zLjggNTYuMy0zMC44IDU2LjMtNjMuNWwwLTEwMS4zYzAtMTMuOC00LjUtMjcuMy0xMi44LTM4LjRsLTgwLTEwNi43QzQ3MS4xIDczLjUgNDUyLjEgNjQgNDMyIDY0TDY0IDY0ek01MDQgMjI0bC0xMjAgMCAwLTk2IDQ4IDAgNzIgOTZ6TTY0IDIyNGwwLTk2IDk2IDAgMCA5Ni05NiAwem0xNjAgMGwwLTk2IDk2IDAgMCA5Ni05NiAwek0zOTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxrSHQ9eThlLFNIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFpcnMiLGljb246WzU3Niw1MTIsW10sImUyODkiLCJNMzg0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NnoiXX0sekh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvcnNlLWhlYWQiLGljb246WzUxMiw1MTIsW10sImY3YWIiLCJNMCA0NjRMMCAzMTYuOUMwIDIwOC41IDY4LjMgMTExLjggMTcwLjUgNzUuNkwzNDAuMiAxNS41YzIxLjQtNy42IDQzLjggOC4zIDQzLjggMzAuOSAwIDExLTUuNSAyMS4yLTE0LjYgMjcuM0wzMzYgOTZjNDguMSAwIDkxLjIgMjkuOCAxMDguMSA3NC45bDQ4LjYgMTI5LjVjMTEuOCAzMS40IDQuMSA2Ni44LTE5LjYgOTAuNS0xNiAxNi0zNy44IDI1LjEtNjAuNSAyNS4xbC0zLjQgMGMtMjYuMSAwLTUwLjktMTEuNi02Ny42LTMxLjdsLTMyLjMtMzguN2MtMTEuNyA0LjEtMjQuMiA2LjQtMzcuMyA2LjRsLS4xIDBjLTYuMyAwLTEyLjUtLjUtMTguNi0xLjUtMy42LS42LTcuMi0xLjQtMTAuNy0yLjNsMCAwYy0yOC45LTcuOC01My4xLTI2LjgtNjcuOC01Mi4yLTQuNC03LjctMTQuMi0xMC4zLTIxLjktNS44cy0xMC4zIDE0LjItNS44IDIxLjljMjQgNDEuNSA2OC4zIDcwIDExOS4zIDcxLjlsNDcuMiA3MC44YzQgNi4xIDYuMiAxMy4yIDYuMiAyMC40IDAgMjAuMy0xNi41IDM2LjgtMzYuOCAzNi44TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6TTMyOCAyMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxDSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmF1bHQiLGljb246WzUxMiw1MTIsW10sImUyYzUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDI1NiAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI1NiAyNTZhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek02NCAyNTZhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptMzg0LTQ4YzAgMTcuOC05LjcgMzMuMy0yNCA0MS42bDAgNzguNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTc4LjRjLTE0LjMtOC4zLTI0LTIzLjgtMjQtNDEuNiAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4eiJdfSxfSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmctc2xhc2giLGljb246WzU3Niw1MTIsW10sImUxMzUiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDEyOS44IDY0IDQ4MCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDI1LjUtMTQuOSA0Ny40LTM2LjQgNTcuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXptMzQ1IDMxMWwwLTcwLjJjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgMjIuMiA0OCA0OHptNjEuNSA2MS41YzIwLjItOC40IDM0LjUtMjguNCAzNC41LTUxLjcgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0yMi4yIDAgNDMuNyA0My43ek0xMzAuMyAyMDAuMWMtMS41IDUtMi4zIDEwLjQtMi4zIDE1LjlsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzE4LjEgMCAzNC4xLTguNSA0NC40LTIxLjhMMzc4LjIgNDQ4IDk2IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNTZjMC03LjggMS40LTE1LjMgNC0yMi4ybDk0LjMgOTQuM3ptOTMuOCA5My44Yy0uMSAuNy0uMSAxLjQtLjEgMi4xIDAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtNTAuMiA0OC4xIDQ4LjF6Il19LFRIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtLXN0ZWVscGFuIixpY29uOls1NzYsNTEyLFtdLCJmNTZhIiwiTTI4OCAzMmMxNTkuMSAwIDI4OCA0OCAyODggMTI4bDAgMTkyYzAgODAtMTI4LjkgMTI4LTI4OCAxMjhTMCA0MzIgMCAzNTJMMCAxNjBDMCA4MCAxMjguOSAzMiAyODggMzJ6TTUyOCAxNjBjMC05LjktOC0yOS45LTU1LTQ5LjgtMTguNi03LjktNDAuOS0xNC40LTY2LTE5LjRsLTI3LjggNDMuNmMtNy4zIDExLjUtMTEuMiAyNC44LTExLjIgMzguNCAwIDE3LjUgNi40IDM0LjQgMTguMSA0Ny41bDkuOCAxMWMyOS44LTUuMiA1NS45LTEyLjUgNzcuMi0yMS41IDQ3LjEtMTkuOSA1NS0zOS45IDU1LTQ5Ljh6TTM0OS4yIDIzNy4zYy04LTI2LjItMzIuNC00NS4zLTYxLjItNDUuM3MtNTMuMyAxOS4xLTYxLjIgNDUuM2MxOS40IDEuNyAzOS45IDIuNyA2MS4yIDIuN3M0MS44LS45IDYxLjItMi43ek0xNjkgOTAuOGMtMjUuMiA1LTQ3LjQgMTEuNi02NiAxOS40LTQ3LjEgMTkuOS01NSAzOS45LTU1IDQ5LjhzOCAyOS45IDU1IDQ5LjhjMjEuMyA5IDQ3LjQgMTYuMyA3Ny4yIDIxLjVsOS44LTExYzExLjYtMTMuMSAxOC4xLTMwIDE4LjEtNDcuNSAwLTEzLjYtMy45LTI2LjktMTEuMi0zOC40TDE2OSA5MC44em01Ni4zLThjLS45IDQuMy0xLjQgOC43LTEuNCAxMy4yIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC00LjUtLjUtOS0xLjQtMTMuMi0xOS44LTEuOC00MC44LTIuOC02Mi42LTIuOHMtNDIuOCAxLTYyLjYgMi44eiJdfSxMSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTgwIDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHpNMjcwLjYgMTZDMjk3LjkgMTYgMzIwIDM4LjEgMzIwIDY1LjRsMCA0LjJjMCA2LjgtMS4zIDEzLjYtMy44IDE5LjlMMjg4IDE2MCA0NDggMTYwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyMy40LTE2LjggNDIuOS0zOSA0Ny4xIDQuNCA3LjMgNyAxNS44IDcgMjQuOSAwIDIyLjItMTUgNDAuOC0zNS40IDQ2LjMgMi4yIDUuNSAzLjQgMTEuNSAzLjQgMTcuNyAwIDI2LjUtMjEuNSA0OC00OCA0OGwtODcuOSAwYy0zNi4zIDAtNzEuNi0xMi40LTk5LjktMzUuMUwxODQgNDM1LjJjLTE1LjItMTIuMS0yNC0zMC41LTI0LTUwbDAtMTg2LjZjMC0xNC45IDMuNS0yOS42IDEwLjEtNDIuOUwyMjYuMyA0My4zQzIzNC43IDI2LjYgMjUxLjggMTYgMjcwLjYgMTZ6Il19LCRIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjViZiIsIk0zMTIgMjAxLjhjMC0xNy40IDkuMi0zMy4yIDE5LjktNDcgMTIuNi0xNi4yIDIwLjEtMzYuNiAyMC4xLTU4LjggMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyMi4xIDcuNSA0Mi41IDIwLjEgNTguOCAxMC43IDEzLjggMTkuOSAyOS42IDE5LjkgNDcgMCAyOS45LTI0LjMgNTQuMi01NC4yIDU0LjJMMTEyIDI1NmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTMzLjggMGMtMjkuOSAwLTU0LjItMjQuMy01NC4yLTU0LjJ6TTU2IDQ2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw1NiA0NjR6Il19LERIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW5vcmFoIixpY29uOls2NDAsNTEyLFtdLCJmNjc2IiwiTTIwLjggNy40QzIyLjggMi45IDI3LjEgMCAzMiAwczkuMiAyLjkgMTEuMiA3LjRMNjEuMyA0OS43YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMUw2NCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDgxLjcgMCA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMjAuOCA3LjR6bTk2IDBDMTE4LjggMi45IDEyMy4xIDAgMTI4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzk2IDgxLjcgOTYgNjRsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDExNi44IDcuNHptNzcuOCA0Mi40TDIxMi44IDcuNEMyMTQuOCAyLjkgMjE5LjEgMCAyMjQgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMDguOCA3LjRDMzEwLjggMi45IDMxNS4xIDAgMzIwIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwzMDguOCA3LjR6bTc3LjggNDIuNEw0MDQuOCA3LjRDNDA2LjggMi45IDQxMS4xIDAgNDE2IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNNTAwLjggNy40QzUwMi44IDIuOSA1MDcuMSAwIDUxMiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMNTAwLjggNy40em03Ny44IDQyLjRMNTk2LjggNy40QzU5OC44IDIuOSA2MDMuMSAwIDYwOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMyIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTYwIDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDAgMCA2NCAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDAgMC02NC0xOTIgMGMtNTMgMC05Ni00My05Ni05NkwwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sQUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkcmVuIixpY29uOls2NDAsNTEyLFtdLCJlNGUxIiwiTTE2MC41IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bS03MiA0ODBsMC04MC0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xTDg2LjcgMjg1LjUgNTggMzIzLjNjLTEwLjcgMTQuMS0zMC44IDE2LjgtNDQuOCA2LjJTLTMuNyAyOTguNyA3IDI4NC43TDY1LjkgMjA3YzIyLjQtMjkuNiA1Ny41LTQ3IDk0LjYtNDdzNzIuMiAxNy40IDk0LjYgNDdMMzE0IDI4NC43YzEwLjcgMTQuMSA3LjkgMzQuMi02LjIgNDQuOHMtMzQuMiA3LjktNDQuOC02LjJsLTI4LjctMzcuOCAzMS4xIDkzLjRjMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0xNy44IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwLTE2IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNNDgwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTggMzg0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNzkuNS0xMi45IDIwLjVjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMHMtMTkuNC0yOS4yLTEwLTQ0LjFsNTEuNy04Mi4xYzE3LjYtMjcuOSA0OC4zLTQ0LjkgODEuMi00NC45bDEyLjMgMGMzMyAwIDYzLjcgMTYuOSA4MS4yIDQ0LjlMNjE5LjYgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwbC0xMi45LTIwLjUgMCAxNzkuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTE2IDB6Il19LHc4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1saW5lIixpY29uOls1MTIsNTEyLFsibGluZS1jaGFydCJdLCJmMjAxIiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em00MDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDMyMCAyMTAuNyAyNjIuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDczLjQtNzMuNCA1Ny40IDU3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sUEh0PXc4ZSxNOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWVudmVsb3BlIixpY29uOls0NDgsNTEyLFsiZW52ZWxvcGUtc3F1YXJlIl0sImYxOTkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA5LjEgMjY3LjlMMTA4LjQgMjA3LjRjLTcuNy00LjYtMTIuNC0xMi45LTEyLjQtMjEuOSAwLTE0LjEgMTEuNC0yNS41IDI1LjUtMjUuNWwyMDQuOSAwYzE0LjEgMCAyNS41IDExLjQgMjUuNSAyNS41IDAgOS00LjcgMTcuMy0xMi40IDIxLjlMMjM4LjkgMjY3LjljLTQuNSAyLjctOS42IDQuMS0xNC45IDQuMXMtMTAuNC0xLjQtMTQuOS00LjF6TTM1MiAyMzcuM2wwIDgyLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgyLjcgOTYuNyA1OEMyMDIuMSAzMDEgMjEzIDMwNCAyMjQgMzA0czIxLjktMyAzMS4zLTguN2w5Ni43LTU4eiJdfSxFSHQ9TThlLGs4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4tc21va2luZyIsaWNvbjpbNTEyLDUxMixbMTI4Njg1LCJzbW9raW5nLWJhbiJdLCJmNTRkIiwiTTk5LjUgMTQ0LjhsNzkuMiA3OS4yLTUwLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNDYuNyAwIDkyLjUgOTIuNWMtMzEuNCAyMi40LTY5LjggMzUuNS0xMTEuMiAzNS41LTEwNiAwLTE5Mi04Ni0xOTItMTkyIDAtNDEuNSAxMy4xLTc5LjkgMzUuNS0xMTEuMnpNMzMzLjMgMjg4bC0zMi0zMiA4Mi43IDAgMCAzMi01MC43IDB6bTMyIDMybDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDI2OS4zIDIyNCAxNDQuOCA5OS41YzMxLjQtMjIuNCA2OS44LTM1LjUgMTExLjItMzUuNSAxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjJMMzY1LjMgMzIwek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjcyIDk2Yy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZ6Il19LElIdD1rOGUsTkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZyb250IixpY29uOls0NDgsNTEyLFtdLCJlMmI3IiwiTTAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMybDI4OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjU2YzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0xOTIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4QzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OEwwIDExMnptOTYgODBsMCA2NCAyNTYgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTMyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yMjQgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxBdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmciLGljb246WzM4NCw1MTIsWzEyNzk3MCw2MTY4N10sImYxYWQiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTc2IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sUkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1bGxzZXllIixpY29uOls1MTIsNTEyLFtdLCJmMTQwIiwiTTQ0OCAyNTZhMTkyIDE5MiAwIDEgMCAtMzg0IDAgMTkyIDE5MiAwIDEgMCAzODQgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDgwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6TTIyNCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sUzhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctbGVmdCJdLCJmMTc3IiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA1NDQgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00MzQuNyAwIDczLjQtNzMuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOHoiXX0sT0h0PVM4ZSxGSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3Mtcm9vayIsaWNvbjpbMzg0LDUxMixbOTgyMF0sImY0NDciLCJNMCAzMkwwIDEzMy41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zTDY0IDIyNCA2NCAzODQgNy44IDQ1NC4zQzIuNyA0NjAuNiAwIDQ2OC40IDAgNDc2LjUgMCA0OTYuMSAxNS45IDUxMiAzNS41IDUxMmwzMTIuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC01Ni4yLTcwLjMgMC0xNjAgNDUuMy00NS4zYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMMzg0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTQ4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi00OCAwIDAtMzJDOTYgMTQuMyA4MS43IDAgNjQgMEwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMnoiXX0sQkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsZW5kZXItcGhvbmUiLGljb246WzU3Niw1MTIsW10sImY2YjYiLCJNMTUxLjQgMTMuMmMxMC4yIDUuOCAxNC41IDE4LjQgMTAgMjkuM0wxMzguMiA5OC44Yy0zLjkgOS42LTEzLjcgMTUuNC0yNCAxNC40bC0yMC4yLTJDNzguNyAxNTIuOSA3OCAxOTguOSA5MS45IDI0MS4xbDIyLjQtMi4yYzEwLjMtMSAyMCA0LjggMjQgMTQuNGwyMy4yIDU2LjNjNC41IDEwLjkgLjIgMjMuNC0xMCAyOS4zbC0yLjkgMS42Yy0zMy42IDE5LjItODEuNyAxNi4yLTEwNi4yLTIxLjYtNTYuMy04Ni42LTU2LjMtMTk5LjEgMC0yODUuNyAyNC42LTM3LjcgNzIuNy00MC43IDEwNi4yLTIxLjZsMi45IDEuNnpNMjI0IDMzNkwxOTMuNyAxNy41QzE5Mi44IDguMSAyMDAuMiAwIDIwOS42IDBsMzI0IDBjMjEuMyAwIDM2LjYgMjAuMyAzMC44IDQwLjhMNTUzLjEgODAgNDQwIDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDk5LjQgMC0xOC4zIDY0LTgxLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2Ny40IDAtMjcuNCA5Ni0yNTYgMHptOCA0OGwyNDAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC0yNDAgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTIwIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sejhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXR1cm4tdXAiLGljb246WzM4NCw1MTIsWyJsZXZlbC11cCJdLCJmMTQ4IiwiTTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0zMDYuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDEwOS4zIDE2MCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDB6Il19LEhIdD16OGUscUh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpY3ljbGUiLGljb246WzY0MCw1MTIsWzEyODY5MF0sImYyMDYiLCJNMzMxLjcgNDMuM0MzMzYgMzYuMyAzNDMuNyAzMiAzNTIgMzJsMTA0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY1LjYgMCA3Mi4yIDE0OC40YzEwLjctMi45IDIxLjktNC40IDMzLjQtNC40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4cy01Ny4zIDEyOC0xMjggMTI4LTEyOC01Ny4zLTEyOC0xMjhjMC00MiAyMC4yLTc5LjIgNTEuNC0xMDIuNmwtMjAuNC00MS45LTczLjUgMTQ3Yy0yLjMgNC44LTYuMyA4LjgtMTEuNCAxMS4yLS42IC4zLTEuMiAuNS0xLjggLjctMi45IDEuMS01LjkgMS42LTguOSAxLjVMMjcxIDM2OGMtNy45IDYzLjEtNjEuNyAxMTItMTI3IDExMi03MC43IDAtMTI4LTU3LjMtMTI4LTEyOFM3My4zIDIyNCAxNDQgMjI0YzEwLjggMCAyMS4yIDEuMyAzMS4yIDMuOGwyOC41LTU2LjktMTEuNS0yNi45LTQwLjIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzkuNiAwIDE4LjMgNS43IDIyLjEgMTQuNWwxNC4zIDMzLjUgMTIzLjcgMC0zNy43LTc3LjVjLTMuNi03LjQtMy4yLTE2LjIgMS4yLTIzLjJ6TTIyOC41IDIyOC43bC00NS42IDkxLjMgODQuOCAwLTM5LjEtOTEuM3pNMzA1LjcgMjg3bDQ3LjUtOTUtODguMiAwIDQwLjcgOTV6bTE2OC43IDc1LjVsLTI5LjctNjFjLTEyLjggMTMtMjAuNyAzMC44LTIwLjcgNTAuNSAwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJjLTIuNyAwLTUuNSAuMi04LjEgLjVsMjkuNyA2MWM1LjggMTEuOSAuOCAyNi4zLTExLjEgMzIuMXMtMjYuMyAuOC0zMi4xLTExLjF6TTE0OS4yIDM2OGMtMjAuMiAwLTMzLjQtMjEuMy0yNC4zLTM5LjRsMjQuMi00OC41Yy0xLjctLjEtMy40LS4yLTUuMS0uMi0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyYzM0LjMgMCA2Mi45LTIzLjkgNzAuMi01NmwtNjUgMHoiXX0sQzhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1hcnJvdy1kb3duIixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLWRvd24iXSwiZjBhYiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjM5IDM3N2wtODAtODBjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzOSAzOSAwLTE1MC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNTAuMSAzOS0zOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTgwIDgwYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHoiXX0sVkh0PUM4ZSxpdj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZWFyIixpY29uOls1MTIsNTEyLFs5ODgxLCJjb2ciXSwiZjAxMyIsIk0xOTUuMSA5LjVDMTk4LjEtNS4zIDIxMS4yLTE2IDIyNi40LTE2bDU5LjggMGMxNS4yIDAgMjguMyAxMC43IDMxLjMgMjUuNUwzMzIgNzkuNWMxNC4xIDYgMjcuMyAxMy43IDM5LjMgMjIuOGw2Ny44LTIyLjVjMTQuNC00LjggMzAuMiAxLjIgMzcuOCAxNC40bDI5LjkgNTEuOGM3LjYgMTMuMiA0LjkgMjkuOC02LjUgMzkuOUw0NDcgMjMzLjNjLjkgNy40IDEuMyAxNSAxLjMgMjIuN3MtLjUgMTUuMy0xLjMgMjIuN2w1My40IDQ3LjVjMTEuNCAxMC4xIDE0IDI2LjggNi41IDM5LjlsLTI5LjkgNTEuOGMtNy42IDEzLjEtMjMuNCAxOS4yLTM3LjggMTQuNGwtNjcuOC0yMi41Yy0xMi4xIDkuMS0yNS4zIDE2LjctMzkuMyAyMi44bC0xNC40IDY5LjljLTMuMSAxNC45LTE2LjIgMjUuNS0zMS4zIDI1LjVsLTU5LjggMGMtMTUuMiAwLTI4LjMtMTAuNy0zMS4zLTI1LjVsLTE0LjQtNjkuOWMtMTQuMS02LTI3LjItMTMuNy0zOS4zLTIyLjhMNzMuNSA0MzIuM2MtMTQuNCA0LjgtMzAuMi0xLjItMzcuOC0xNC40TDUuOCAzNjYuMWMtNy42LTEzLjItNC45LTI5LjggNi41LTM5LjlsNTMuNC00Ny41Yy0uOS03LjQtMS4zLTE1LTEuMy0yMi43cy41LTE1LjMgMS4zLTIyLjdMMTIuMyAxODUuOGMtMTEuNC0xMC4xLTE0LTI2LjgtNi41LTM5LjlMMzUuNyA5NC4xYzcuNi0xMy4yIDIzLjQtMTkuMiAzNy44LTE0LjRsNjcuOCAyMi41YzEyLjEtOS4xIDI1LjMtMTYuNyAzOS4zLTIyLjhMMTk1LjEgOS41ek0yNTYuMyAzMzZhODAgODAgMCAxIDAgLS42LTE2MCA4MCA4MCAwIDEgMCAuNiAxNjB6Il19LGpIdD1pdixVSHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1hbmQtdmVudXMtYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1MjMiLCJNNDY0LTMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDM0LjcgMC02MyA2M2MtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDg2LjMgNjIuMSAxNTguMSAxNDQgMTczLjFsMCAzNC45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzQuOWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMSAwLTM3LTExLjQtNzEuNC0zMS05OS44bDYzLTYzIDAgMzQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQ5Ni02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTM2OCA5NmExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6TTE5MC45LTIxLjlDMTg4LjQtMjggMTgyLjYtMzIgMTc2LTMycy0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0LTc2LjItMjMuMWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zUzMzLjggNDYuNSAzNyA1Mi4ybDM5LjUgNjkuMS02NS42IDQ1LjFjLTUuNCAzLjctOCAxMC4zLTYuNSAxNi43czYuNyAxMS4yIDEzLjEgMTIuMmw3OC43IDEyLjItNS42IDc5LjRjLS41IDYuNSAzLjEgMTIuNyA5IDE1LjVzMTIuOSAxLjggMTcuOC0yLjZMMTUyLjEgMjY4Yy01LjMtMTkuMS04LjEtMzkuMi04LjEtNjAgMC02NS40IDI4LTEyNC4yIDcyLjYtMTY1LjFMMTkwLjktMjEuOXoiXX0sV0h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im90dGVyIixpY29uOls2NDAsNTEyLFsxMjk0NDZdLCJmNzAwIiwiTTE4MS41IDE5Ny4xbDEyLjkgNi40YzUuOSAzIDEyLjQgNC41IDE5LjEgNC41IDIzLjUgMCA0Mi42LTE5LjEgNDIuNi00Mi42bDAtMjEuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMS40YzAgMjMuNSAxOS4xIDQyLjYgNDIuNiA0Mi42IDYuNiAwIDEzLjEtMS41IDE5LjEtNC41IDkuMy00LjcgMTYuNC04LjIgMjEuMi0xMC42TDEzNS4xIDE4NWMtNC41LTMtNy4xLTgtNy4xLTEzLjNsMC0zLjdjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDMuN2MwIDUuMy0yLjcgMTAuMy03LjEgMTMuM2wtMTEuOCA3LjkgOC40IDQuMnptLTguNiA0OS40bC0xMi45LTYuNC0xMi45IDYuNGMtMTIuNiA2LjMtMjYuNSA5LjYtNDAuNSA5LjYtMy42IDAtNy4xLS4yLTEwLjYtLjZsMCAuNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDE2MCAwIDAtNjRjMC0yMy43IDEyLjktNDQuNCAzMi01NS40IDkuNC01LjQgMjAuMy04LjYgMzItOC42bDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDggOC44IDAgMTYgNy4yIDE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk5LjdjMC00OC4yLTMwLjgtOTEtNzYuNi0xMDYuM2wtOC41LTIuOGMtOC0yLjctMTIuNi0xMS4xLTEwLjQtMTkuM3MxMC4zLTEzLjIgMTguNi0xMS42bDE5LjkgNEM1NzYgODYuMSA2NDAgMTY0LjIgNjQwIDI1NC45bDAgMS4xIDAgMGMwIDEyMy43LTEwMC4zIDIyNC0yMjQgMjI0bC0xNjAuNiAwQzEzMiA0ODAgMzIgMzgwIDMyIDI1Ni42bDAtMzkuOGMtMTAuMS0xNC42LTE2LTMyLjMtMTYtNTEuNGwwLTIxLjQgMC0xLjRDNi43IDEzOS4zIDAgMTMwLjUgMCAxMjAgMCAxMDYuNyAxMC43IDk2IDI0IDk2bDIuOCAwQzQ0LjggNTguMiA4My4zIDMyIDEyOCAzMmw2NCAwYzQ0LjcgMCA4My4yIDI2LjIgMTAxLjIgNjRsMi44IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMC41LTYuNyAxOS4zLTE2IDIyLjZsMCAxLjQgMCAyMS40YzAgMS40IDAgMi44LS4xIDQuMyAxMi02LjIgMjUuNy05LjYgNDAuMS05LjZsOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOCA1Ni40IDBjLTE1LjIgMTctMjQuNCAzOS40LTI0LjQgNjRsLTMyIDBjLTQyLjMgMC03OC4yLTI3LjQtOTEtNjUuMy01LjEgLjktMTAuMyAxLjMtMTUuNiAxLjMtMTQuMSAwLTI3LjktMy4zLTQwLjUtOS42ek05NiAxMjhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyem0xMTIgMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHoiXX0sXzhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLWxlZnQiLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1sZWZ0Il0sImYxMzciLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0yNzEgMTM1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODcgODcgODcgODdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxNjcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyNzEgMTM1eiJdfSxHSHQ9XzhlLFQ4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcXVlc3Rpb24iLGljb246WzUxMiw1MTIsWzYyMTA4LCJxdWVzdGlvbi1jaXJjbGUiXSwiZjA1OSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zMzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCA0Ny4yLTM2IDY3LjItNTYgNzQuNWwwIDMuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTguMWMwLTIwLjUgMTQuOC0zNS4yIDMwLjEtNDAuMiA2LjQtMi4xIDEzLjItNS41IDE4LjItMTAuMyA0LjMtNC4yIDcuNy0xMCA3LjctMTkuNiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDM2OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxZSHQ9VDhlLEtIdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxraWUtdGFsa2llIixpY29uOlszODQsNTEyLFtdLCJmOGVmIiwiTTg4LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDMyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwLjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTIwLjIgNDAuNGMtMy4zIDYuNy01LjEgMTQtNS4xIDIxLjVsMCA4NC43YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04NC43YzAtNy41LTEuNy0xNC44LTUuMS0yMS41TDYuOCAzMDEuNUMyLjMgMjkyLjYgMCAyODIuOCAwIDI3Mi45TDAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDE2IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMzIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEw4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdyb3VwIixpY29uOls1NzYsNTEyLFsxMjgxMDEsInVzZXItZnJpZW5kcyJdLCJmNTAwIiwiTTY0IDEyOGExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0wIDQ2NGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnMxNzYgNzguOCAxNzYgMTc2bDAgNmMwIDIzLjItMTguOCA0Mi00MiA0Mkw0MiA1MTJjLTIzLjIgMC00Mi0xOC44LTQyLTQybDAtNnpNNDMyIDY0YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDI0MGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDIyLjRjMCAyMy0xOC42IDQxLjYtNDEuNiA0MS42bC0xNDQuOCAwYzYuNi0xMi41IDEwLjQtMjYuOCAxMC40LTQybDAtNmMwLTUxLjUtMTcuNC05OC45LTQ2LjUtMTM2LjcgMjIuNi0xNC43IDQ5LjYtMjMuMyA3OC41LTIzLjN6Il19LFpIdD1MOGUsJDhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXkiLGljb246WzUxMiw1MTIsWzYzNDk5LCJob21lLWxnIl0sImUzYWYiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTI0MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgMTI4IDAgMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMHoiXX0sWEh0PSQ4ZSxEOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtZnJvbS1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1vdXQtYWx0Il0sImYyZjUiLCJNNTA1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwzNjEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIwIDEwMi4zIDMyMCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkw1MDUgMjczek0xNjAgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6Il19LFFIdD1EOGUsSkh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUiLGljb246WzM4NCw1MTIsWzEyODE5NiwxMjg0NTksNjE0NjJdLCJmMTViIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6Il19LGVxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2OSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xODMuNC0xODMuNCA3LjEtNy43IDEyNy4zIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZzLTI1LjEtNTYtNTYtNTZMMzkyLjcgMjAwIDIzMy41IDI2LjRDMjI3LjUgMTkuOCAyMTguOSAxNiAyMDkuOSAxNmwtNDMuNyAwYy0xMC45IDAtMTguNiAxMC43LTE1LjIgMjEuMUwxNzUuMSAxMDkuMiA0MS0yNC45ek0xMzAuMiAyMDBsLTI0LjYgMC01Mi44LTY2Yy0zLTMuOC03LjYtNi0xMi41LTZsLTE5LjggMGMtMTAuNCAwLTE4IDkuOC0xNS41IDE5LjlMMzIgMjU2IDUgMzY0LjFDMi40IDM3NC4yIDEwLjEgMzg0IDIwLjUgMzg0bDE5LjggMGM0LjkgMCA5LjUtMi4yIDEyLjUtNmw1Mi44LTY2IDk5LjcgMC01NC4zIDE2Mi45Yy0zLjUgMTAuNCA0LjMgMjEuMSAxNS4yIDIxLjFsNDMuNyAwYzkgMCAxNy41LTMuOCAyMy42LTEwLjRMMzIwLjcgMzkwLjUgMTMwLjIgMjAweiJdfSx0cXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc2hvd2Vycy1oZWF2eSIsaWNvbjpbNTEyLDUxMixbXSwiZjc0MCIsIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjItMS4zLTYuNy0xLjktMTMuNy0xLjktMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA0My4xIDAgODAuNSAyNC4zIDk5LjIgNjAgMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC44LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2TDk2IDMyMHptNi44IDc5LjZsLTMyIDk2QzY2LjYgNTA4LjIgNTMgNTE1IDQwLjQgNTEwLjhTMjEgNDkzIDI1LjIgNDgwLjRsMzItOTZDNjEuNCAzNzEuOCA3NSAzNjUgODcuNiAzNjkuMlMxMDcgMzg3IDEwMi44IDM5OS42em0xMjAgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMTQxIDQ5MyAxNDUuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzIyNyAzODcgMjIyLjggMzk5LjZ6bTExMiAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMyNTMgNDkzIDI1Ny4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTMzM5IDM4NyAzMzQuOCAzOTkuNnptMTIwIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzM3MyA0OTMgMzc3LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlM0NTkgMzg3IDQ1NC44IDM5OS42eiJdfSxhcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWZhbGxpbmciLGljb246WzUxMiw1MTIsW10sImU1NDYiLCJNMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNS40YzAgNDUtMjMuNiA4Ni42LTYyLjEgMTA5LjhsLTQuNiAyLjhDMTMxLjQgMTg0LjcgOTYgMjQ3LjEgOTYgMzE0LjZMOTYgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02OS40YzAtMTYuNyAzLjMtMzMgOS40LTQ4TDM1OS4yIDUwMC4yYzExLjEgMTMuNyAzMS4zIDE1LjggNDUgNC43czE1LjgtMzEuMyA0LjctNDVMMjk1LjIgMzIwIDQwMCAzMjAgNDM4LjQgMzcxLjJjMTAuNiAxNC4xIDMwLjcgMTcgNDQuOCA2LjRzMTctMzAuNyA2LjQtNDQuOGwtNDMuMi01Ny42QzQzNy4zIDI2My4xIDQyMy4xIDI1NiA0MDggMjU2bC04OSAwLTYyLjktNzUuNWM0MC4zLTM2IDYzLjktODcuOSA2My45LTE0My4xbDAtNS40ek0xMDQgMTQ0YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxBOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHVybi1kb3duIixpY29uOlszODQsNTEyLFsxMDU0OSwibGV2ZWwtZG93bi1hbHQiXSwiZjNiZSIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMzMi45IDMyMCAzMjAgMzIwbC02NCAwIDAtMTYwQzI1NiA3MS42IDE4NC40IDAgOTYgMEwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsMTI4IDEyOHoiXX0scnF0PUE4ZSxQOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtYW5kLWRvd24tbGVmdC1mcm9tLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImV4cGFuZC1hbHQiXSwiZjQyNCIsIk0zNDQgMEw0ODggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC0zOS0zOS04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTMyLTMyYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4Ny04Ny0zOS0zOWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlMzMzQuMyAwIDM0NCAwek0xNjggNTEyTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMCAzNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzM0LjEgMzIwLjIgNDEgMzI3bDM5IDM5IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzE3Ny43IDUxMiAxNjggNTEyeiJdfSxzcXQ9UDhlLGlxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRhZyIsaWNvbjpbNjQwLDUxMixbXSwiZjUwNyIsIk0yNTYuMSA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMjI2LjQgMzA0bDU5LjQgMGM2LjcgMCAxMy4yIC40IDE5LjcgMS4xLS45IDQuOS0xLjQgOS45LTEuNCAxNWwwIDkyLjFjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlsMzEuOSAzMS45LTI4Ni4zIDBjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zek0zNTIuMSA0MTIuMmwwLTkyLjFjMC0xNy43IDE0LjMtMzIgMzItMzJsOTIuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFsOTYgOTZjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTc2LjEgNzYuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBsLTk2LTk2Yy05LTktMTQuMS0yMS4yLTE0LjEtMzMuOXptMTA0LTQ0LjJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sb3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtc3BhcmtsZXMiLGljb246WzY0MCw1MTIsW10sImUwNWQiLCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xMTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3OC4yYy0xOS4yIDUuNC0zNC43IDIwLjQtNDAuNCA0MC4zbC02LjUgMjIuNy0yMi43IDYuNWMtMjUuMiA3LjItNDIuNSAzMC4yLTQyLjUgNTYuNCAwIDIyLjEgMTIuNCA0MiAzMS40IDUxLjktMjcuNSAxNy44LTYwLjIgMjguMS05NS40IDI4LjFsLTE5LjIgMGMtNTkuNiAwLTExNi45LTIyLjktMTYwLTY0TDc2LjQgMzQxYy0xNi0xNS4yLTE2LjYtNDAuNi0xLjQtNTYuNnM0MC42LTE2LjYgNTYuNi0xLjRsNjAuNSA1Ny42YzAtMS41LS4xLTMuMS0uMS00LjZsMC0yNzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjA4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tNy4zIDMyNi42Yy0xLjEtMy45LTQuNy02LjYtOC43LTYuNnMtNy42IDIuNy04LjcgNi42bC03LjMgMjUuNC0yNS40IDcuM2MtMy45IDEuMS02LjYgNC43LTYuNiA4LjdzMi43IDcuNiA2LjYgOC43bDI1LjQgNy4zIDcuMyAyNS40YzEuMSAzLjkgNC43IDYuNiA4LjcgNi42czcuNi0yLjcgOC43LTYuNmw3LjMtMjUuNCAyNS40LTcuM2MzLjktMS4xIDYuNi00LjcgNi42LTguN3MtMi43LTcuNi02LjYtOC43bC0yNS40LTcuMy03LjMtMjUuNHpNMTA0IDEyMGw0OC4zIDEzLjhjNC42IDEuMyA3LjcgNS41IDcuNyAxMC4ycy0zLjEgOC45LTcuNyAxMC4yTDEwNCAxNjggOTAuMiAyMTYuM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDU2IDE2OCA3LjcgMTU0LjJDMy4xIDE1Mi45IDAgMTQ4LjcgMCAxNDRzMy4xLTguOSA3LjctMTAuMkw1NiAxMjAgNjkuOCA3MS43QzcxLjEgNjcuMSA3NS4zIDY0IDgwIDY0czguOSAzLjEgMTAuMiA3LjdMMTA0IDEyMHpNNTg0IDQwOGw0OC4zIDEzLjhjNC42IDEuMyA3LjcgNS41IDcuNyAxMC4ycy0zLjEgOC45LTcuNyAxMC4yTDU4NCA0NTYgNTcwLjIgNTA0LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1MzYgNDU2IDQ4Ny43IDQ0Mi4yYy00LjYtMS4zLTcuNy01LjUtNy43LTEwLjJzMy4xLTguOSA3LjctMTAuMkw1MzYgNDA4IDU0OS44IDM1OS43YzEuMy00LjYgNS41LTcuNyAxMC4yLTcuN3M4LjkgMy4xIDEwLjIgNy43TDU4NCA0MDh6Il19LG5xdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdG8tZG90IixpY29uOls1MTIsNTEyLFtdLCJlNGJlIiwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy05LjItOS4yLTExLjktMjIuOS02LjktMzQuOVMxNzkuMSA2NCAxOTIgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xNjkuNCAzOTMuNGw2NC02NGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw2NCA2NGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMzIuOSA0NDggMzIwIDQ0OGwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0Ljl6TTMyIDIyNGwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw2NCA2NGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzY0IDMzMi45IDY0IDMyMGwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDY0LTY0YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzQ0OCAxNzkuMSA0NDggMTkybDAgMzIgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC02NC02NHpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEU4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNhZC1jcnkiLGljb246WzUxMiw1MTIsWzEyODU1Nywic2FkLWNyeSJdLCJmNWIzIiwiTTM1MiA0OTMuNGMtMjkuNiAxMi02Mi4xIDE4LjYtOTYgMTguNnMtNjYuNC02LjYtOTYtMTguNkwxNjAgMjk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcxLjdDNDQuNCA0MjEuNiAwIDM0NCAwIDI1NiAwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCA4OC00NC40IDE2NS42LTExMiAyMTEuN0w0MDAgMjk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTk3LjR6TTE1MiAxOTZsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwem0xNzIgMjBjMC0xMSA5LTIwIDIwLTIwbDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjB6TTIwOCAzMzZsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6Il19LGxxdD1FOGUsY3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbmctc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE2OSIsIk0yODgtMTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA3Mi4yYy0yMi45LTE1LjMtNTAuNC0yNC4yLTgwLTI0LjItNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRTOTYuNSA0MzIgMTc2IDQzMmMzMCAwIDU3LjgtOS4xIDgwLjgtMjQuOCAzLjMgMTQuMiAxNiAyNC44IDMxLjIgMjQuOCAxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMwNCA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTk2IDI4OGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTI0IDQ2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCA0NjR6Il19LGRxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNCIsIk0yODggMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptOTYgMzEyYzAgMjUtMTIuNyA0Ny0zMiA1OS45bDAgNDQuMS0xMjggMCAwLTQ0LjFDMjA0LjcgMzU5IDE5MiAzMzcgMTkyIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHptMTYgMTA0bDAtMjcuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNDAuNi0xMTIgMHpNNjQgMzc1LjRDNDQuOSAzNjQuNCAzMiAzNDMuNyAzMiAzMjBsMC0zMmMwLTUzIDQzLTk2IDk2LTk2IDEyLjcgMCAyNC44IDIuNSAzNS45IDYuOS0xMi42IDIxLjQtMTkuOSA0Ni40LTE5LjkgNzMuMWwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDI3LjMtMTEyIDAgMC00MC42ek0xMjggMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTMyMCAwYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0yNCA0NjRsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxJOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXJzcyIsaWNvbjpbNDQ4LDUxMixbInJzcy1zcXVhcmUiXSwiZjE0MyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05NiAxMzZjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTM3IDAgMjQ4IDExMSAyNDggMjQ4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTEwLjUtODkuNS0yMDAtMjAwLTIwMC0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNCA4My45IDAgMTUyIDY4LjEgMTUyIDE1MiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNC0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCAxMjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sdXF0PUk4ZSxwcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItbWludXMiLGljb246WzQ0OCw1MTIsW10sImYyNzIiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0yNCAyNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxmcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtZGlhZ3JhbSIsaWNvbjpbNTEyLDUxMixbXSwiZTY5NSIsIk04MCAzMkM1My41IDMyIDMyIDUzLjUgMzIgODBzMjEuNSA0OCA0OCA0OGwxNTIgMCAwIDQwLTQ4IDQ4LTcyIDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNzIgMCA0OCA0OCAwIDQwLTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTQwIDQ4LTQ4IDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA2NC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC02NGMwLTM5LjgtMzIuMi03Mi03Mi03MmwtNzIgMC00OC00OCAwLTQwIDE1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4TDgwIDMyeiJdfSxOOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS10aXJlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTU1LCJ0aXJlZCJdLCJmNWM4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuNyAzMjguN2MyMi0yMiA1My45LTQwLjcgOTEuMy00MC43czY5LjMgMTguNyA5MS4zIDQwLjdjMTEuMSAxMS4xIDIwLjEgMjMuNCAyNi40IDM1LjQgNi4yIDExLjcgMTAuMyAyNC40IDEwLjMgMzUuOSAwIDUuMi0yLjYgMTAuMi02LjkgMTMuMnMtOS44IDMuNy0xNC43IDEuOGwtMjAuNS03LjdjLTI2LjktMTAuMS01NS41LTE1LjMtODQuMy0xNS4zbC0zLjIgMGMtMjguOCAwLTU3LjMgNS4yLTg0LjMgMTUuM0wxNDkuNiA0MTVjLTQuOSAxLjgtMTAuNCAxLjItMTQuNy0xLjhTMTI4IDQwNS4yIDEyOCA0MDBjMC0xMS42IDQuMi0yNC4yIDEwLjMtMzUuOSA2LjMtMTIgMTUuMy0yNC4zIDI2LjQtMzUuNHpNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0saHF0PU44ZSxtcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNCIsIk00ODAgOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIwOCAwIDAtNjQgMjA4IDB6TTMyMCAyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMHptNjQtNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMjg4IDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem0tODgtOTZsLjYgMGMtNS40IDkuNC04LjYgMjAuMy04LjYgMzIgMCAxMy4yIDQgMjUuNCAxMC44IDM1LjYtMjQuOSA4LjctNDIuOCAzMi41LTQyLjggNjAuNCAwIDExLjcgMy4xIDIyLjYgOC42IDMybC04LjYgMEM3MS42IDQ0OCAwIDM3Ni40IDAgMjg4bDAtNjEuN2MwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsMTEuNi0xMS42QzgyLjUgNzcuNSAxMTUuMSA2NCAxNDkgNjRsMjcgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwbDAtNTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA1NmMwIDM5LjggMzIuMiA3MiA3MiA3MnoiXX0sZ3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwIixpY29uOlszODQsNTEyLFs4NTkzXSwiZjA2MiIsIk0yMTQuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNzAuNyAxMDUuNCAxMDUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYweiJdfSxicXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZXMtc3RhY2tlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRlNiIsIk0xOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0em0zMiAzNTJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTMyMCAxOTJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tMTgyLjYtMy45YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQ1LjMgNDUuM2MxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNDUuMyA0NS4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEw5Mi4xIDI3OC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w0NS4zLTQ1LjN6TTMyIDM4NGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFI4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1jb21iYXRhbnQiLGljb246WzU3Niw1MTIsWyJjaGlsZC1yaWZsZSJdLCJlNGUwIiwiTTE3Ni41IDEyOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTE2IDM1MmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyLjIgMjAuOSAzMy4yYzkuNCAxNSAyOS4yIDE5LjQgNDQuMSAxMHMxOS40LTI5LjIgMTAtNDQuMWwtMzkuOS02My4zQzI2Ni44IDE4NCAyMjMuMyAxNjAgMTc2LjUgMTYwUzg2LjIgMTg0IDYxLjMgMjIzLjZMMjEuNCAyODdjLTkuNCAxNS00LjkgMzQuNyAxMCA0NC4xczM0LjcgNC45IDQ0LjEtMTBsMjAuOS0zMy4yIDAgMTkyLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNNDQ4LjUgMGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwwIDEwMC4zYy05LjYgNS41LTE2IDE1LjktMTYgMjcuN2wwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwIDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDU5LjUgMGMxMC40IDAgMTgtOS44IDE1LjUtMTkuOWwtMjMtOTIuMSA0NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTI2LjcgNTMuMS0xNy43YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ybDAtODQuNWMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDU2LTE2IDUuMyAwLTEwOS4zYzAtMTEuOC02LjQtMjIuMi0xNi0yNy43bDAtMTE2LjNjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSx2cXQ9UjhlLHhxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZXN0LXBhdGNoZXMiLGljb246WzQ0OCw1MTIsW10sImUwODYiLCJNMjAwIDI5My45TDIwMCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MC41YzAtOS41IDIuOC0xOC43IDguMS0yNi42bDQ3LjktNzEuOGM1LjMtNy45IDguMS0xNy4xIDguMS0yNi42TDY0IDQ4QzY0IDIxLjUgODUuNSAwIDExMiAwbDMuNSAwYy4zIDAgLjYgMCAxIDAgLjYgMCAxLjIgMCAxLjggMCAxOC44IDAgMzQuMSA5LjcgNDQuMSAxOC44IDkuMyA4LjQgMjguNSAyMS4yIDYxLjcgMjEuMnM1Mi40LTEyLjggNjEuNy0yMS4yYzEwLTkuMSAyNS4zLTE4LjggNDQuMS0xOC44IC42IDAgMS4yIDAgMS44IDAgLjMgMCAuNiAwIDEgMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk3LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZsNDcuOSA3MS44YzUuMyA3LjkgOC4xIDE3LjEgOC4xIDI2LjZMNDQ4IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTcwLjFjMC0zLjkgLjUtNy44IDEuNC0xMS42TDMwMy42IDY1LjRDMjg1LjkgNzcuMiAyNTkuOCA4OCAyMjQgODhzLTYxLjktMTAuOC03OS42LTIyLjZsNTQuMiAyMTYuOGMxIDMuOCAxLjQgNy43IDEuNCAxMS42ek05NiA0NTZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek02My41IDI1NS41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdMNzkgMjg4IDYzLjUgMzAzLjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN3MxMi4zIDQuNyAxNyAwTDk2IDMwNSAxMTEuNSAzMjAuNWM0LjcgNC43IDEyLjMgNC43IDE3IDBzNC43LTEyLjMgMC0xN0wxMTMgMjg4IDEyOC41IDI3Mi41YzQuNy00LjcgNC43LTEyLjMgMC0xN3MtMTIuMy00LjctMTcgMEw5NiAyNzEgODAuNSAyNTUuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwek0zMDQgMjgwbDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMCAwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LE84ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzLWVtcHR5IixpY29uOls1MTIsNTEyLFsiZ2xhc3MtbWFydGluaSJdLCJmMDAwIiwiTTMyIDMyQzE5LjEgMzIgNy40IDM5LjggMi40IDUxLjhTLjIgNzcuNSA5LjQgODYuNmwyMTQuNiAyMTQuNiAwIDE0Ni43LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC0xNDYuNyAyMTQuNi0yMTQuNmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSAzMiA0ODAgMzJMMzIgMzJ6TTI1NiAyNDIuN0wxMDkuMyA5NiA0MDIuNyA5NiAyNTYgMjQyLjd6Il19LHlxdD1POGUsd3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25ldCIsaWNvbjpbNDQ4LDUxMixbMTI5NTIyXSwiZjA3NiIsIk0wIDE3NkwwIDI4OEMwIDQxMS43IDEwMC4zIDUxMiAyMjQgNTEyUzQ0OCA0MTEuNyA0NDggMjg4bDAtMTEyLTEyOCAwIDAgMTEyYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtMTEyLTEyOCAwem0wLTQ4bDEyOCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDY0em0zMjAgMGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0eiJdfSxNcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1iYXJyaWVyIixpY29uOls2NDAsNTEyLFtdLCJlNTYyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAyNjYuMyAxNDkuMiA5NiA2NCA5NiA2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDA1LjIgOTZsLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zIDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zek0zNjIuOCAyODhsNzQuMyAwIDUuNC0xMC43IDkwLjYtMTgxLjMtNzQuMyAwLTUuNCAxMC43LTkwLjYgMTgxLjN6TTIwMi44IDk2bC01LjQgMTAuNy05MC42IDE4MS4zIDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMHptMjg4IDE5Mmw4NS4yIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjctODUuMiAxNzAuM3oiXX0sRjhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhc3MtZHJhZnRpbmciLGljb246WzUxMiw1MTIsWyJkcmFmdGluZy1jb21wYXNzIl0sImY1NjgiLCJNOTkuMyAyNTYuMWw2OS40LTExOS45Yy01LjYtMTIuMi04LjgtMjUuOC04LjgtNDAuMiAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMTQuMy0zLjEgMjcuOS04LjggNDAuMmw0NC40IDc2LjdjLTIzLjEgMjYtNTMuNyA0NS4xLTg4LjQgNTMuOEwyNTYgMTkxLjkgMTg3LjkgMzA5LjVjMjEuNSA2LjggNDQuMyAxMC41IDY4LjEgMTAuNSA3MC43IDAgMTMzLjgtMzIuNyAxNzQuOS04NCAxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NWMtNTIuNyA2NS44LTEzMy45IDEwOC0yMjQuOCAxMDgtMzUuNCAwLTY5LjQtNi40LTEwMC43LTE4LjFMOTguNyA0NjMuN0M5NCA0NzEuOCA4NyA0NzguNCA3OC42IDQ4Mi42TDIzLjIgNTEwLjNjLTUgMi41LTEwLjkgMi4yLTE1LjYtLjdTMCA1MDEuNSAwIDQ5NmwwLTU1LjRjMC04LjQgMi4yLTE2LjcgNi41LTI0LjFsNjAtMTAzLjdjLTEyLjgtMTEuMi0yNC42LTIzLjUtMzUuMy0zNi44LTExLjEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVjNS43IDcuMSAxMS44IDEzLjggMTguMiAyMC4xek0zODEuMSA0MDcuOWMzMi41LTEzIDYyLjQtMzEgODguOS01Mi45bDM1LjYgNjEuNWM0LjIgNy4zIDYuNSAxNS42IDYuNSAyNC4xbDAgNTUuNGMwIDUuNS0yLjkgMTAuNy03LjYgMTMuNnMtMTAuNiAzLjItMTUuNiAuN2wtNTUuNC0yNy43Yy04LjQtNC4yLTE1LjQtMTAuOC0yMC4xLTE4LjlsLTMyLjMtNTUuOHpNMjU2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGtxdD1GOGUsU3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wZXJzb24tY29uZmluZWQiLGljb246WzQ0OCw1MTIsW10sImU1NzciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTYgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTgwIDEwNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTAyLjFjMCAzNi40LTI5LjUgNjUuOS02NS45IDY1LjktMTcuNSAwLTM0LjMtNi45LTQ2LjYtMTkuM2wtNTQuNy01NC43LTI4LjEgNTYuM2MtNy45IDE1LjgtMjcuMSAyMi4yLTQyLjkgMTQuM3MtMjIuMi0yNy4xLTE0LjMtNDIuOWw0OC05NmM0LjYtOS4yIDEzLjMtMTUuNiAyMy41LTE3LjNzMjAuNSAxLjcgMjcuOCA5bDQxLjQgNDEuNCAwLTU4Ljd6Il19LHpxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGF0ZS13aGVhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU1YSIsIk0xNzYgMzJjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6TTU2IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzQyLjcgNjQgNTYgNjR6TTI0IDEzNmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxODRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiA0OGMwLTguOCA3LjItMTYgMTYtMTYgNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNnpNNDAwIDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNjBsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxNzZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS05NiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMy41IDM0Ny42QzEuNiAzMzIuOSAxMyAzMjAgMjcuOCAzMjBsNDU2LjQgMGMxNC44IDAgMjYuMiAxMi45IDI0LjQgMjcuNi02LjMgNTAuMi00NC40IDg5LjQtOTIuNiA5OC40bDAgMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMmMtNDguMi05LTg2LjMtNDguMi05Mi41LTk4LjR6Il19LEI4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduLWhhbmdpbmciLGljb246WzUxMiw1MTIsWyJzaWduIl0sImY0ZDkiLCJNOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNTIgMCAwIDM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM1Mi0zMiAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDMyIDAgMC0zMkM2NCAxNC4zIDc4LjMgMCA5NiAwek0yMDggMTc2bDI0MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTQ0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNDAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LENxdD1COGUsSDhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1iYXR0ZXJ5IixpY29uOls1MTIsNTEyLFsiYmF0dGVyeS1jYXIiXSwiZjVkZiIsIk04MCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTYgMHpNMzkyIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMzJ6TTY0IDI0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAyMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxfcXQ9SDhlLFZlZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGlydCIsaWNvbjpbNjQwLDUxMixbMTI4MDg1LCJ0LXNoaXJ0IiwidHNoaXJ0Il0sImY1NTMiLCJNMzIwLjIgMTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDUzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MTcuNiAxNjkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTAuNyA1MC43Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwyMi45IDIxNC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxNDEuNSA1MC43YzEyLTEyIDI4LjMtMTguNyA0NS4zLTE4LjdsNTMuNSAwYzAgNDQuMiAzNS44IDgwIDgwIDgweiJdfSxUcXQ9VmVlLExxdD1WZWUsJHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcmFncmFwaCIsaWNvbjpbNDQ4LDUxMixbMTgyXSwiZjFkZCIsIk0xNjAgMEw0MTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQxNi00OCAwIDAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwLTQ4IDBDNzEuNiAzMjAgMCAyNDguNCAwIDE2MFM3MS42IDAgMTYwIDB6Il19LHE4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZXMtYnVsayIsaWNvbjpbNTc2LDUxMixbIm1haWwtYnVsayJdLCJmNjc0IiwiTTExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgMTYwIDgwIDAgMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDIwOCAwIDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTEyIDB6TTI0MCAxMjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzIgODAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTEyIDE2MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yODggMHptMjAwIDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEwLjQgMTU2LjYgODYuMmMxLjEgLjYgMi4yIC45IDMuNCAuOXMyLjQtLjMgMy40LS45TDMyMCAzMTQuNCAzMjAgMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDI1NnpNMzIwIDM2OS4yTDE4Ni42IDQ0Mi42Yy04LjEgNC41LTE3LjMgNi44LTI2LjYgNi44cy0xOC40LTIuNC0yNi42LTYuOEwwIDM2OS4yIDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTQuOHoiXX0sRHF0PXE4ZSxBcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VpdGFyIixpY29uOls1MTIsNTEyLFtdLCJmN2E2IiwiTTQ2NSA3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwzODMgNTVjLTIuNCAyLjQtNC4zIDUuMy01LjUgOC41bC0xNS40IDQxLTc3LjUgNzcuNmMtNDUuMS0yOS40LTk5LjMtMzAuMi0xMzEgMS42LTExIDExLTE4IDI0LjYtMjEuNCAzOS42LTMuNyAxNi42LTE5LjEgMzAuNy0zNi4xIDMxLjYtMjUuNiAxLjMtNDkuMyAxMC43LTY3LjMgMjguNi00NC44IDQ0LjgtMzYuNCAxMjUuOCAxOC43IDE4MC45UzE4My42IDUyOCAyMjguNCA0ODMuMmMxNy45LTE3LjkgMjcuNC00MS43IDI4LjYtNjcuMyAuOS0xNyAxNS0zMi4zIDMxLjYtMzYuMSAxNS0zLjQgMjguNi0xMC41IDM5LjYtMjEuNCAzMS44LTMxLjggMzEtODUuOSAxLjYtMTMxbDc3LjYtNzcuNiA0MS0xNS40YzMuMi0xLjIgNi4xLTMuMSA4LjUtNS41bDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQ2NSA3ek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sUHF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1aXRjYXNlIixpY29uOls1MTIsNTEyLFsxMjk1MjNdLCJmMGYyIiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MjQgMjI0IDAgMC00MjRjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek00MTYgOTZsMCAzODQgMzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMHpNOTYgNDgwbDAtMzg0LTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDB6Il19LFY4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTExLjMtMzg3LjNsMTA0IDEwNGM0LjYgNC42IDUuOSAxMS41IDMuNSAxNy40UzM2Ni41IDI1NiAzNjAgMjU2bC01NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtNTYgMGMtNi41IDAtMTIuMy0zLjktMTQuOC05LjlzLTEuMS0xMi45IDMuNS0xNy40bDEwNC0xMDRjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6Il19LEVxdD1WOGUsSXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImYiLGljb246WzMyMCw1MTIsWzEwMl0sIjQ2IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xMjggMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LE5xdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFya3MtbGluZXMiLGljb246WzY0MCw1MTIsW10sImU1OWEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6TTcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek0yNjUgMTY3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NXpNNDU1IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sajhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLW9jZWFuaWEiLGljb246WzUxMiw1MTIsWyJnbG9iZS1vY2VhbmlhIl0sImU0N2IiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNTAuNmMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmw0MS40IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTZ6TTQzMiAyNTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQxMS4zIDM3OS4zbC0zMiAzMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzMi0zMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6TTIyNCA0MzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnptLTk2LTgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE4LjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDgtNDhjNC4yLTQuMiAxMC02LjYgMTYtNi42bDYuNiAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2IDcuMi0xNiAxNi0xNmw2LjYgMGM2IDAgMTEuOCAyLjQgMTYgNi42bDQ4IDQ4YzYgNiA5LjQgMTQuMSA5LjQgMjIuNmwwIDUwLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTUwLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTEzLjMtMTMuM2MtNi02LTE0LjEtOS40LTIyLjYtOS40TDEyOCAzNTJ6Il19LFJxdD1qOGUsT3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtc2xhc2giLGljb246WzU3Niw1MTIsW10sImY0YjMiLCJNNDEtMjVDMzEuNi0zNC4zIDE2LjQtMzQuMyA3LTI1Uy0yLjMtLjQgNyA5TDUzNSA1MzdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni42LTk2LjZjNDQuNC00My4yIDcxLjYtMTAxLjggNzEuNi0xNjYuNSAwLTEzMi41LTExNC42LTI0MC0yNTYtMjQwLTYzIDAtMTIwLjggMjEuNC0xNjUuNCA1Ni44TDQxLTI1em0xOS40IDE1NUM0Mi4yIDE2MyAzMiAyMDAuMyAzMiAyMzkuOSAzMiAyOTQuMiA1MS4yIDM0NC4yIDgzLjYgMzg0LjRMMzQuOCA0NzYuN2MtNC44IDktMy4zIDIwIDMuNiAyNy41UzU2LjEgNTE0IDY1LjUgNTEwbDExOC40LTUwLjdjMzEuOCAxMy4zIDY3LjEgMjAuNyAxMDQuMSAyMC43IDM2LjQgMCA3MC45LTcuMSAxMDIuMy0xOS45TDYwLjMgMTMwLjF6Il19LEZxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGF5IixpY29uOls0NDgsNTEyLFs5NjU0XSwiZjA0YiIsIk05MS4yIDM2LjljLTEyLjQtNi44LTI3LjQtNi41LTM5LjYgLjdTMzIgNTcuOSAzMiA3MmwwIDM2OGMwIDE0LjEgNy41IDI3LjIgMTkuNiAzNC40czI3LjIgNy41IDM5LjYgLjdsMzM2LTE4NGMxMi44LTcgMjAuOC0yMC41IDIwLjgtMzUuMXMtOC0yOC4xLTIwLjgtMzUuMWwtMzM2LTE4NHoiXX0sQnF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwtY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFtdLCJlNTk2IiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNjEuNGMtNjYuMSAzMC4zLTExMiA5Ny4xLTExMiAxNzQuNiAwIDM5LjcgMTIgNzYuNiAzMi43IDEwNy4yLTEwLjMgMy4xLTIxLjMgNC44LTMyLjcgNC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyTDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnptOTYgMzJsMCAxMjggOTYgMCAwLTEyOC05NiAwem05NiAzMzZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LEhxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJlNGM5IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0scXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlZGktc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTBkZiIsIk0yMzIgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNi41Qzg4LjggNzMuOSAxNiAxNTYuNCAxNiAyNTZTODguOCA0MzguMSAxODQgNDUzLjVsMCAyNi41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNC42YzQ2LjgtMy43IDg5LjEtMjMuNiAxMjEuMy01My45IDEyLjktMTIuMSAxMy40LTMyLjQgMS4zLTQ1LjJzLTMyLjQtMTMuNC00NS4yLTEuM2MtMjAuNyAxOS42LTQ3LjYgMzIuNy03Ny4zIDM2LjJsMC0yNzAuMWMyOS44IDMuNSA1Ni42IDE2LjYgNzcuMyAzNi4yIDEyLjkgMTIuMSAzMy4xIDExLjUgNDUuMi0xLjNzMTEuNS0zMy4xLTEuMy00NS4yQzMyMS4xIDgwLjIgMjc4LjggNjAuMyAyMzIgNTYuNkwyMzIgMzJ6bS00OCA5MS44bDAgMjY0LjRDMTI0LjMgMzczLjggODAgMzIwLjEgODAgMjU2czQ0LjMtMTE3LjggMTA0LTEzMi4yeiJdfSxWcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHV6emxlLXBpZWNlIixpY29uOls1MTIsNTEyLFsxMjk1MTNdLCJmMTJlIiwiTTIyNCAwYzM1LjMgMCA2NCAyMS41IDY0IDQ4IDAgMTAuNC00LjQgMjAtMTIgMjcuOS02LjYgNi45LTEyIDE1LjMtMTIgMjQuOSAwIDE1IDEyLjIgMjcuMiAyNy4yIDI3LjJsNDQuOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDQuOGMwIDE1IDEyLjIgMjcuMiAyNy4yIDI3LjIgOS41IDAgMTgtNS40IDI0LjktMTIgNy45LTcuNSAxNy41LTEyIDI3LjktMTIgMjYuNSAwIDQ4IDI4LjcgNDggNjRzLTIxLjUgNjQtNDggNjRjLTEwLjQgMC0yMC4xLTQuNC0yNy45LTEyLTYuOS02LjYtMTUuMy0xMi0yNC45LTEyLTE1IDAtMjcuMiAxMi4yLTI3LjIgMjcuMkwzODQgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC01Ni44IDBjLTEyLjggMC0yMy4yLTEwLjQtMjMuMi0yMy4yIDAtOS4yIDUuOC0xNy4zIDEzLjItMjIuOCAxMS42LTguNyAxOC44LTIwLjcgMTguOC0zNCAwLTI2LjUtMjguNy00OC02NC00OHMtNjQgMjEuNS02NCA0OGMwIDEzLjMgNy4yIDI1LjMgMTguOCAzNCA3LjQgNS41IDEzLjIgMTMuNSAxMy4yIDIyLjggMCAxMi44LTEwLjQgMjMuMi0yMy4yIDIzLjJMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDM0My4yYzAtMTIuOCAxMC40LTIzLjIgMjMuMi0yMy4yIDkuMiAwIDE3LjMgNS44IDIyLjggMTMuMiA4LjcgMTEuNiAyMC43IDE4LjggMzQgMTguOCAyNi41IDAgNDgtMjguNyA0OC02NHMtMjEuNS02NC00OC02NGMtMTMuMyAwLTI1LjMgNy4yLTM0IDE4LjgtNS41IDcuNC0xMy41IDEzLjItMjIuOCAxMy4yLTEyLjggMC0yMy4yLTEwLjQtMjMuMi0yMy4yTDAgMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEwOC44IDBjMTUgMCAyNy4yLTEyLjIgMjcuMi0yNy4yIDAtOS41LTUuNC0xOC0xMi0yNC45LTcuNS03LjktMTItMTcuNS0xMi0yNy45IDAtMjYuNSAyOC43LTQ4IDY0LTQ4eiJdfSxqcXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsbWV0LXVuIixpY29uOls1MTIsNTEyLFtdLCJlNTAzIiwiTTQ3OS41IDIyNEM0NzEuMiA5OC45IDM2Ny4yIDAgMjQwIDAgMTA3LjUgMCAwIDEwNy41IDAgMjQwbDAgNTYuM0MwIDM0NC44IDM5LjIgMzg0IDg3LjcgMzg0bDEyNy4zIDAgMTI4LjYgMTIxLjRjNC41IDQuMiAxMC40IDYuNiAxNi41IDYuNmw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni41IDAtMS41LTEuNSAwLTE3NC41IDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0uNSAwek0zMjAgNDE3LjJsLTc4LTczLjcgMzIuNC01NS41IDQ1LjYgMCAwIDEyOS4yek0yODUuMyAxMDMuMWwzNC43IDUyIDAtNDMuMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOTZjMCA3LjEtNC42IDEzLjMtMTEuNCAxNS4zcy0xNC0uNi0xNy45LTYuNGwtMzQuNy01MiAwIDQzLjJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6TTE2MCAxMTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sVXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyIixpY29uOlszODQsNTEyLFtdLCJlNGY0IiwiTTMyIDBDMjMuMSAwIDE0LjYgMy43IDguNiAxMC4yUy0uNiAyNS40IC4xIDM0LjNMMjguOSA0MzcuN2MzIDQxLjkgMzcuOCA3NC4zIDc5LjggNzQuM2wxNjYuNiAwYzQyIDAgNzYuOC0zMi40IDc5LjgtNzQuM0wzODMuOSAzNC4zYy42LTguOS0yLjQtMTcuNi04LjUtMjQuMVMzNjAuOSAwIDM1MiAwTDMyIDB6TTczIDE1Ni41bC02LjYtOTIuNSAyNTEuMyAwLTYuNiA5Mi41LTI0LjIgMTIuMWMtMTkuNCA5LjctNDIuMiA5LjctNjEuNiAwLTIwLjktMTAuNC00NS41LTEwLjQtNjYuNCAwLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMEw3MyAxNTYuNXoiXX0sV3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1ib2x0IixpY29uOls1NzYsNTEyLFtdLCJlNGZjIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTc3LjQtNzdjLTUuOC00LjItMTMuOC00LTE5LjQgLjVsLTgwIDY0Yy01LjMgNC4yLTcuNCAxMS40LTUuMSAxNy44UzM2OS4yIDQxNiAzNzYgNDE2bDMyLjkgMC0xNS45IDQyLjRjLTIuNSA2LjctLjIgMTQuMyA1LjYgMTguNnMxMy44IDQgMTkuNC0uNWw4MC02NGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44UzQ5NC44IDM4NCA0ODggMzg0bC0zMi45IDAgMTUuOS00Mi40YzIuNS02LjcgLjItMTQuMy01LjYtMTguNnoiXX0sR3F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1bXAtc29hcCIsaWNvbjpbMzIwLDUxMixbXSwiZTA2YiIsIk05NiAwbDAgODAgMTI4IDAgMC0yNCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDggMjk2IDhsLTcyIDAgMC04YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwQzExMC4zLTMyIDk2LTE3LjcgOTYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6TTIyNCAzNDRjMCAzNS4zLTI4LjcgNTYtNjQgNTZzLTY0LTIwLjctNjQtNTZjMC0zMi41IDM3LTgwLjkgNTAuOS05Ny45IDMuMi0zLjkgOC4xLTYuMSAxMy4xLTYuMXM5LjkgMi4yIDEzLjEgNi4xQzE4NyAyNjMuMSAyMjQgMzExLjUgMjI0IDM0NHoiXX0sWXF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtc2Npc3NvcnMiLGljb246WzUxMiw1MTIsW10sImYyNTciLCJNNDAgMjA4Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDE4MC4yIDBjLTcuNiA4LjUtMTIuMiAxOS43LTEyLjIgMzIgMCAyNS4zIDE5LjUgNDYgNDQuMyA0Ny45LTcuNyA4LjUtMTIuMyAxOS44LTEyLjMgMzIuMSAwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMTEzLjFjMC00MC4yLTE2LTc4LjgtNDQuNC0xMDcuMy0yMi44LTIyLjgtNTMuNi0zNS42LTg1LjgtMzUuNkwzMzYgNjRjLTIxLjMgMC0zOS4zIDEzLjktNDUuNiAzMy4xbDc0LjUgMjMuN2M4LjQgMi43IDEzLjEgMTEuNyAxMC40IDIwLjFzLTExLjcgMTMuMS0yMC4xIDEwLjRsLTY3LjEtMjEuNCAwIC4xLTIwNC02NC4xQzYyLjkgNTkuMiA0MC41IDcwLjkgMzMuOSA5MnM1LjEgNDMuNSAyNi4yIDUwLjJMMjY5LjUgMjA4IDQwIDIwOHoiXX0sVThlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGx5IixpY29uOls1NzYsNTEyLFsiZG9sbHktYm94Il0sImY0NzIiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGw3Mi45IDAgOTIuMSAyNzYuMmMtMjIuNSAxNy42LTM3IDQ1LTM3IDc1LjggMCA1MyA0MyA5NiA5NiA5NiA1Mi40IDAgOTUuMS00MiA5Ni05NC4zbDIwMi4xLTY3LjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNXMtMjMuNy0yNS44LTQwLjUtMjAuMkwzMzEuOCAzNTdjLTE3LjItMjIuMS00My45LTM2LjUtNzQtMzdMMTY1LjcgNDMuOEMxNTYuOSAxNy42IDEzMi41IDAgMTA0LjkgMEwzMiAwek0yMDggNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTI4MC41IDg5LjNjLTI1LjIgOC4yLTM5IDM1LjMtMzAuOCA2MC41bDM5LjYgMTIxLjdjOC4yIDI1LjIgMzUuMyAzOSA2MC41IDMwLjhsMTIxLjctMzkuNmMyNS4yLTguMiAzOS0zNS4zIDMwLjgtNjAuNUw0NjIuOCA4MC41Yy04LjItMjUuMi0zNS4zLTM5LTYwLjUtMzAuOEwyODAuNSA4OS4zeiJdfSxLcXQ9VThlLFB0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXBlcmNsaXAiLGljb246WzUxMiw1MTIsWzEyODIwNl0sImYwYzYiLCJNMjI0LjYgMTIuOGM1Ni4yLTU2LjIgMTQ3LjQtNTYuMiAyMDMuNiAwczU2LjIgMTQ3LjQgMCAyMDMuNmwtMTY0IDE2NGMtMzQuNCAzNC40LTkwLjEgMzQuNC0xMjQuNSAwcy0zNC40LTkwLjEgMC0xMjQuNUwyOTIuNSAxMDMuM2MxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDE4NSAzMDEuM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDE2NC0xNjRjMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xcy04MS45LTMxLjItMTEzLjEgMGwtMTY0IDE2NGMtNTMuMSA1My4xLTUzLjEgMTM5LjIgMCAxOTIuM3MxMzkuMiA1My4xIDE5Mi4zIDBMNDI4LjMgMjg0LjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wzNDMuNCA0NTkuNmMtNzguMSA3OC4xLTIwNC43IDc4LjEtMjgyLjggMHMtNzguMS0yMDQuNyAwLTI4Mi44bDE2NC0xNjR6Il19LFpxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZW1vY3JhdCIsaWNvbjpbNjQwLDUxMixbXSwiZjc0NyIsIk02NCAzMmMwLTguOSAzLjgtMjAuOSA2LjItMjcuMyAxLTIuOCAzLjgtNC43IDYuOC00LjcgMS45IDAgMy44IC43IDUuMiAyLjFMMTI4IDQ1LjcgMTczLjggMi4xYzEuNC0xLjMgMy4yLTIuMSA1LjItMi4xIDMgMCA1LjggMS44IDYuOCA0LjcgMi40IDYuNSA2LjIgMTguNCA2LjIgMjcuMyAwIDI2LjUtMjEuOSA0Mi0yOS41IDQ2LjZsNzYuMiA3Mi42YzYgNS43IDEzLjkgOC44IDIyLjEgOC44bDIxOS4yIDAgMzIgMGM0MC4zIDAgNzguMiAxOSAxMDIuNCA1MS4ybDE5LjIgMjUuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40bC0xOS4yLTI1LjZjLTUuMy03LTExLjgtMTIuOC0xOS4yLTE3bDAgODcuNC0zNTIgMC00MC40LTk0LjNjLTMuOS05LjItMTUuMy0xMi42LTIzLjYtN2wtNDIuMSAyOGMtOS4xIDYuMS0xOS43IDkuMy0zMC43IDkuM2wtMiAwQzIzLjkgMjU2IDAgMjMyLjEgMCAyMDIuNyAwIDE5MC42IDQuMSAxNzguOSAxMS43IDE2OS40TDg3LjYgNzQuNkM3OC4xIDY3LjQgNjQgNTMuMiA2NCAzMnpNNTQ0IDM1MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xNjAgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOCAzNTIgMHpNMjU2IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0OC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0zNjggMjgwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sVzhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1hcnJvdy11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImV4dGVybmFsLWxpbmstc3F1YXJlIl0sImYxNGMiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMjcyIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NC4xIDAtMTAzIDEwM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDEwMy0xMDMgMCA1NC4xeiJdfSxYcXQ9VzhlLFFxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZXJyeSIsaWNvbjpbNjQwLDUxMixbXSwiZTRlYSIsIk0yMjQgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4LS4xIDBjLjEgLjcgLjEgMS4zIC4xIDIgMCAzMC4yLTcuNiA1OS44LTIyIDg2LjNsLTEyLjcgMjMuMy0uNiAxYy0yMi4zLTExLjMtNDYuNS0xNi44LTcwLjgtMTYuNy0zMi41IC4yLTY0LjkgMTAuNy05Mi40IDMxLjQtMjIuMSAxNi42LTI5LjEgMTYuNi01MS4yIDAtMjguMS0yMS4xLTYxLjMtMzEuNi05NC40LTMxLjQtMjMuNiAuMi00Ny4xIDUuNy02OC43IDE2LjdsLS42LTEtMTIuNy0yMy4zYy0xNC40LTI2LjUtMjItNTYuMi0yMi04Ni4zIDAtLjcgMC0xLjQgLjEtMmwtLjEgMCAwLTEyOGMwLTQ0LjIgMzUuOC04MCA4MC04MGw0OCAwIDAtMzJ6TTE2MCAyNTZsMzIwIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0yODggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LEpxdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3NxdWl0byIsaWNvbjpbNTc2LDUxMixbXSwiZTUyYiIsIk0xNzguNSA0OTUuMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zUzEzMy41IDQ4MCAxMzguOSA0NjlsMS4yLTIuMiAzNi4yLTU4IDAtNDEgLjMtNGMuNi0zLjkgMi4yLTcuNyA0LjYtMTAuOWwzOS4zLTUyLjItNjYuMiA1OS41Yy0xNyAxNS4zLTM5IDIzLjctNjEuOSAyMy44bC04LjEgMGMtNDYuNiAwLTg0LjQtMzcuOC04NC40LTg0LjQgMC00MyAzMi40LTc5LjIgNzUuMS04My45bDEzMC41LTE0LjUtNDQuOC0zOC4zLTIuNC0yLjRjLTUuMy02LTcuMy0xNC40LTUuMy0yMi4zbDEzLjMtNTMuNC0yNS45LTM4LjktMS4zLTIuMWMtNS44LTEwLjgtMi43LTI0LjYgNy40LTMxLjcgMTAuMS03LjEgMjMuNy01LjEgMzEuNCA0LjNsMS41IDIgMzIgNDggMS40IDIuMmMyLjggNS4zIDMuNSAxMS42IDIuMSAxNy42bC0xMi4zIDQ5LjIgNTMuMyA0NS43IDAtMjguOGMwLTExLjggNi41LTIyLjEgMTYtMjcuN2wwLTYwLjUgLjMtMy4zYzEuNS03LjMgOC0xMi43IDE1LjctMTIuN3MxNC4yIDUuNSAxNS43IDEyLjdsLjMgMy4yIDAgNjAuNWM5LjYgNS41IDE2IDE1LjggMTYgMjcuN2wwIDI4LjkgNTMuNC00NS44LTEyLjMtNDkuMmMtMS41LTUuOS0uNy0xMi4yIDIuMS0xNy42bDEuNC0yLjIgMzItNDggMS41LTJjNy43LTkuNCAyMS4zLTExLjUgMzEuNC00LjMgMTAuMSA3LjEgMTMuMSAyMC45IDcuNCAzMS43bC0xLjMgMi4xLTI1LjkgMzguOSAxMy4zIDUzLjRjMiA4LS4xIDE2LjMtNS4zIDIyLjNsLTIuNCAyLjQtNDQuNyAzOC4zIDEzMC41IDE0LjVjNDIuOCA0LjggNzUuMSA0MC45IDc1LjEgODMuOSAwIDQ2LjYtMzcuOCA4NC40LTg0LjQgODQuNGwtOC4xIDBjLTIyLjggMC00NC45LTguNS02MS45LTIzLjhsLTY2LjEtNTkuNSAzOS4yIDUyLjJjMi40IDMuMiA0IDcgNC42IDEwLjlsLjMgNCAwIDQxIDM2LjIgNTggMS4yIDIuMWM1LjQgMTEgMiAyNC43LTguMyAzMS41cy0yMy44IDQuNC0zMS4zLTUuM2wtMS40LTItNDAtNjQtMS42LTMuMWMtMS40LTMuMS0yLjEtNi42LTIuMS0xMC4xbDAtMzkuOC0zMi40LTQzLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzQuNi0zMi4zIDQzIDAgMzkuOGMwIDMuNS0uNyA2LjktMi4xIDEwLjFsLTEuNiAzLjEtNDAgNjQtMS40IDJ6Il19LGVWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU0ZDEiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE0NC43Yy0zNS43IDIuOS02OC41IDE1LjYtOTYgMzUuNGwwLTRjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNCAwYy0xMy44IDE5LjItMjQuMSA0MS0zMC4xIDY0LjUtMS45LS40LTMuOS0uNS01LjktLjVsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgNzQuOSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0MC43LTY3LjNjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDI4LjcgMjguNy04OS40IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODkuNCAwLTI4LjcgMjguN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDU2LTU2YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC01Ni01NmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDB6Il19LEc4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NTk2LCJhcnJvd3MtYWx0LWgiXSwiZjMzNyIsIk01MDIuNiA0MDYuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiA0OTIuOSAzNTIgNDgwbDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zek05LjQgMTUwLjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAxOS4xIDE2MCAzMmwwIDY0IDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC05Ni05NnoiXX0sdFZ0PUc4ZSxhVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNzQiLCJNMjk2IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMHMtMTUuNiA0MC45IDAgNTYuNmMzMS4yIDMxLjIgOS4xIDg0LjUtMzUgODQuNS0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC00NC4xIDUzLjMtNjYuMSA4NC41LTM1IDE1LjYgMTUuNiA0MC45IDE1LjYgNTYuNiAwczE1LjYtNDAuOSAwLTU2LjZjLTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBDMzQ5LjMgMTA2LjEgMjk2IDg0LjEgMjk2IDQwek0xNjAgMjI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2MCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHJWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW0iLGljb246WzUxMiw1MTIsWzEyODE0Ml0sImYzYTUiLCJNMTE2LjcgMzMuOGM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNGwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyem0zOC41IDM5LjhjLTMuMyAyLjUtNC4yIDctMi4xIDEwLjVMMjEwLjUgMTc5LjggNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThsLTE0Ny4yLTEyLjMgNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXoiXX0sc1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldCIsaWNvbjpbNDQ4LDUxMixbMTI4NzAxXSwiZjdkOCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNC0xNS41IDEzLjItMjYuNCAzMS42LTI2LjQgNTQuNiAwIDQ2LjkgMTQuMyA4NC4xIDM3IDExMi41IDE0LjIgMTcuNyAzMS4xIDMxLjMgNDguNSA0MS44TDY1LjYgNDY5LjljLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhTODUuNyA1MTIgOTYgNTEybDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjggMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjUgMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjYtMS44LTEuNS0zLjctMy01LjYtNC40bDAtMTQ4LjkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzQzNy4zIDAgNDI0IDBMMjQgMHpNOTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNMjI0IDI4OGMtODguNCAwLTE2MC0xNC4zLTE2MC0zMnM3MS42LTMyIDE2MC0zMiAxNjAgMTQuMyAxNjAgMzItNzEuNiAzMi0xNjAgMzJ6Il19LGlWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtbGVmdCIsaWNvbjpbMTkyLDUxMixbXSwiZTgxYiIsIk0xMjggOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDB6Il19LG9WdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxscyIsaWNvbjpbNTc2LDUxMixbXSwiZTFmMyIsIk0xNjAgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMnptMTc2IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0xNjAgMTUybDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTEyYzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNTA0IDE1OS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek01MTIgMjY0bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNNDggMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTM4LjcgMCAxNTJMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzkyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0yNjR6Il19LG5WdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQtYnV0dG9uIixpY29uOls0NDgsNTEyLFtdLCJmMTBhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTIyNCA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxWYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sbFZ0PVZiLGNWdD1WYixkVnQ9VmIsdVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndyZW5jaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjk1XSwiZjBhZCIsIk01MDkuNCA5OC42YzcuNi03LjYgMjAuMy01LjcgMjQuMSA0LjMgNi44IDE3LjcgMTAuNSAzNyAxMC41IDU3LjEgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjAtMTcuNSAwLTM0LjQtMi44LTUwLjItOEwxNDYuOSA0OTguOWMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAwcy0yOC4xLTczLjcgMC0xMDEuOEwyMzIgMjEwLjJjLTUuMi0xNS44LTgtMzIuNi04LTUwLjIgMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgMjAuMSAwIDM5LjQgMy43IDU3LjEgMTAuNSAxMCAzLjggMTEuOCAxNi41IDQuMyAyNC4xbC04OC43IDg4LjdjLTMgMy00LjcgNy4xLTQuNyAxMS4zbDAgNDEuNGMwIDguOCA3LjIgMTYgMTYgMTZsNDEuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsODguNy04OC43eiJdfSxvdj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1jYW4iLGljb246WzQ0OCw1MTIsWzYxNDYwLCJ0cmFzaC1hbHQiXSwiZjJlZCIsIk0xMzYuNyA1LjlDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMXpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTg4IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LHBWdD1vdixZOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMiLGljb246WzQ0OCw1MTIsWyJ0aCJdLCJmMDBhIiwiTTM4NCA5NmwwIDY0LTY0IDAgMC02NCA2NCAwem0wIDEyOGwwIDY0LTY0IDAgMC02NCA2NCAwem0wIDEyOGwwIDY0LTY0IDAgMC02NCA2NCAwek0yNTYgMjg4bC02NCAwIDAtNjQgNjQgMCAwIDY0em0tNjQgNjRsNjQgMCAwIDY0LTY0IDAgMC02NHptLTY0LTY0bC02NCAwIDAtNjQgNjQgMCAwIDY0ek02NCAzNTJsNjQgMCAwIDY0LTY0IDAgMC02NHptMC0xOTJsMC02NCA2NCAwIDAgNjQtNjQgMHptMTI4IDBsMC02NCA2NCAwIDAgNjQtNjQgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sZlZ0PVk4ZSxoVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmliYm9uIixpY29uOlszODQsNTEyLFsxMjc4OTVdLCJmNGQ2IiwiTTIzNS4xIDBjMzMuNCAwIDY0LjUgMTcuNCA4MS45IDQ1LjkgMS4yIDIgMTMgMjEuMyAzNS4zIDU3LjggMjEuMSAzNC41IDE4LjMgNzguNS03IDExMEwyNzguMyAyOTcuNyAzNjQuNSA0MDZjNS41IDYuOSA0LjQgMTYuOS0yLjUgMjIuNWwtODAgNjRjLTYuOSA1LjUtMTcgNC40LTIyLjUtMi41TDM4LjYgMjEzLjhDMTMuMyAxODIuMyAxMC41IDEzOC4zIDMxLjYgMTAzLjggNTQgNjcuMiA2NS43IDQ3LjkgNjcgNDUuOSA4NC40IDE3LjQgMTE1LjQgMCAxNDguOSAwbDg2LjMgMHpNMTkyIDE4OS4ybDQ4LjYtNjEuMi05Ny4zIDAgNDguNiA2MS4yek03NSAzMzYuMmw4Ni4yIDEwNy44LTM2LjggNDZjLTUuNSA2LjktMTUuNiA4LTIyLjUgMi41bC04MC02NGMtNi45LTUuNS04LTE1LjYtMi41LTIyLjVMNzUgMzM2LjJ6Il19LG1WdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1mbGFnIixpY29uOls1MTIsNTEyLFtdLCJlNTFjIiwiTTM1Mi0zMkwyNDAtMzJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE0NC0xNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMjI0LTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42bC01MS4yLTM4LjQgMC0yMjQgMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTkyIDAgMC02NCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptNDggMjI0bDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHoiXX0sSzhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cy1hbHQiXSwiZjBiMiIsIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTc5LjEgMTI4IDE5MiAxMjhsMzIgMCAwIDk2LTk2IDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzEyOCAzMzIuOSAxMjggMzIwbDAtMzIgOTYgMCAwIDk2LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMzMi45IDM4NCAzMjAgMzg0bC0zMiAwIDAtOTYgOTYgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzODQgMTc5LjEgMzg0IDE5MmwwIDMyLTk2IDAgMC05NiAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0eiJdfSxnVnQ9SzhlLGJWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItc2lkZSIsaWNvbjpbNjQwLDUxMixbMTI4NjYzXSwiZjVlNCIsIk0xNDcgMTA2LjdsLTI5LjggODUuMyAxMjIuOSAwIDAtOTYtNzcuOSAwYy02LjggMC0xMi45IDQuMy0xNS4xIDEwLjd6TTQ4LjYgMTkzLjlMODYuNSA4NS42Qzk3LjggNTMuNSAxMjguMSAzMiAxNjIuMSAzMkwzNjAgMzJjMjUuMiAwIDQ4LjkgMTEuOSA2NCAzMmw5Ni4yIDEyOC4zQzU4Ny4xIDE5Ni41IDY0MCAyNTIuMSA2NDAgMzIwbDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE2LjQgMGMtNCA0NC45LTQxLjcgODAtODcuNiA4MHMtODMuNi0zNS4xLTg3LjYtODBsLTE0NC43IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0uNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTgwYzAtMzAuMSAyMC43LTU1LjMgNDguNi02Mi4xek00NDAgMTkybC02Ny4yLTg5LjZjLTMtNC03LjgtNi40LTEyLjgtNi40bC03MiAwIDAgOTYgMTUyIDB6TTE1MiA0MzJhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0zNjAtNDBhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHoiXX0sWjhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWFycm93LXVwIixpY29uOls0NDgsNTEyLFsidHJhc2gtcmVzdG9yZSJdLCJmODI5IiwiTTE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMUMxNDEuMS03LjIgMTUzLjMtMTYgMTY3LjEtMTZ6TTMyIDE0NGwzODQgMC0yMS4xIDMyMy4xQzM5My4zIDQ5Mi40IDM3Mi4zIDUxMiAzNDcgNTEyTDEwMSA1MTJjLTI1LjMgMC00Ni4zLTE5LjYtNDcuOS00NC45TDMyIDE0NHptMjA5IDc5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNzIgNzJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMS0zMSAwIDEwMi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDIuMSAzMSAzMWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyeiJdfSx2VnQ9WjhlLHhWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNTNDkxLjggMTQyLjEgNDU4IDk4LjdjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2UzIwLjIgMzY5LjkgNTQgNDEzLjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSx5VnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weXJpZ2h0IixpY29uOls1MTIsNTEyLFsxNjldLCJmMWY5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDAgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy00Ni45IDQ2LjktMTIyLjggNDYuOS0xNjkuNyAwcy00Ni45LTEyMi44IDAtMTY5LjcgMTIyLjgtNDYuOSAxNjkuNyAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMHMtMjguMSA3My43IDAgMTAxLjh6Il19LHdWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXByZXNjcmlwdGlvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNODggMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgMjIuNSAwIDU4LjQgNTUtMzMuNCAzMS42Yy05LjYgOS4xLTEwLjEgMjQuMy0uOSAzMy45czI0LjMgMTAuMSAzMy45IC45bDM1LjQtMzMuNSAzNS42IDMzLjVjOS43IDkuMSAyNC44IDguNiAzMy45LTFzOC42LTI0LjgtMS0zMy45bC0zMy42LTMxLjYgMzMuNi0zMS44YzkuNi05LjEgMTAuMS0yNC4zIC45LTMzLjlzLTI0LjMtMTAuMS0zMy45LS45bC0zNS43IDMzLjctNDAuOS0zOC41YzEyLjktMTEuNyAyMS4xLTI4LjYgMjEuMS00Ny41IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01NiAwem0zMiA4MGwtOCAwIDAtMzIgMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjQgMHoiXX0sTVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVyYXNlciIsaWNvbjpbNTc2LDUxMixbXSwiZjEyZCIsIk0xNzguNSA0MTZsMTIzIDAgNjUuMy02NS4zLTE3My41LTE3My41LTEyNi43IDEyNi43IDExMiAxMTJ6TTIyNCA0ODBsLTQ1LjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMTcgMzQ1QzYuMSAzMzQuMSAwIDMxOS40IDAgMzA0czYuMS0zMC4xIDE3LTQxTDI2MyAxN0MyNzMuOSA2LjEgMjg4LjYgMCAzMDQgMHMzMC4xIDYuMSA0MSAxN0w1MjcgMTk5YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MWwtMTM1IDEzNSAxMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDB6Il19LFg4ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3Mtc3RhcnQiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMSJdLCJmMjUxIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek0yODggNDM3bDAgMTEtMTkyIDAgMC0xMWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWw2Ny45LTY3LjkgNjcuOSA2Ny45YzE4IDE4IDI4LjEgNDIuNCAyOC4xIDY3Ljl6Il19LGtWdD1YOGUsUThlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2wxMDQtMTA0YzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOGwwIDU2IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDU2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMTA0LTEwNGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6Il19LFNWdD1ROGUselZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNydXplaXJvLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUxNTIiLCJNMjQwIDk2Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDcxLjYgNDcuMSAxMzIuMyAxMTIgMTUyLjdMMTkyIDI1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMi44IDAgMjMuMyAxMC4xIDI0IDIyLjcgMTUuNS05LjUgMzMuNS0xNC43IDUyLjMtMTQuN2wxMS44IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExLjggMGMtMTguOCAwLTM2LjEgMTAtNDUuNCAyNi4zLTQuNSA3LjktNi45IDE2LjgtNi45IDI1LjlsMCA3NS44YzQyLjUgMCA4MS4xLTE2LjYgMTA5LjgtNDMuNiAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMkMzNTMuNyA0NTYuOCAyOTkuNSA0ODAgMjQwIDQ4MCAxMTYuMyA0ODAgMTYgMzc5LjcgMTYgMjU2UzExNi4zIDMyIDI0MCAzMmM1OS41IDAgMTEzLjcgMjMuMiAxNTMuNyA2MS4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM0MzMjEuMSAxMTIuNiAyODIuNSA5NiAyNDAgOTZ6Il19LENWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbW9raW5nIixpY29uOls1NzYsNTEyLFsxMjg2ODRdLCJmNDhkIiwiTTM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsMjEgMjFDNDY5IDE5MSA0ODAgMjE3LjQgNDgwIDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTljMC0xNC45LTUuOS0yOS4xLTE2LjQtMzkuNmwtMjEtMjFDMzU3LjEgMTQ2LjkgMzM2IDk2IDMzNiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0ek01NTIgMjg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC0yMS0yMUM0NDMgOTcgNDMyIDcwLjYgNDMyIDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE5YzAgMTQuOSA1LjkgMjkuMSAxNi40IDM5LjZsMjEgMjFDNTU0LjkgMTQxLjEgNTc2IDE5MiA1NzYgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTMyMCA0NDhsOTYgMCAwLTMyLTk2IDAgMCAzMnpNMCA0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJ6bTU3Ni00MGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxKOGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBvbGwtdmVydGljYWwiLGljb246WzQ0OCw1MTIsWyJwb2xsIl0sImY2ODEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNTYgMTkyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xODQgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDh6TTIyNCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyMDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LF9WdD1KOGUsVFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtbWludXMiLGljb246WzY0MCw1MTIsW10sImU1NDAiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2eiJdfSxMVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlvaGF6YXJkIixpY29uOls1NzYsNTEyLFs5NzYzXSwiZjc4MCIsIk0yNjAgMTIuNmMwLTguMy03LjYtMTQuNS0xNS41LTEyLjEtNjAuOSAxOC44LTEwNS4xIDc1LjgtMTA1LjEgMTQzLjEgMCAyNS4xIDYuMSA0OC43IDE3IDY5LjUtMjEgMS44LTQyIDguMi02MS41IDE5LjUtNTcuOSAzMy42LTg0LjggMTAwLjItNzAuOSAxNjIuNSAxLjkgOC40IDExLjQgMTIgMTguOSA3LjYgNS0yLjkgNy42LTguNiA3LjEtMTQuNC0uMy0zLjMtLjQtNi42LS40LTEwLjEgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgODguNC05NC41IDExMy42LTE0OC4yIDc1LjQtNC41LTMuMi0xMC41LTMuOS0xNS4zLTEuMS03IDQuMS04LjYgMTMuNi0yLjcgMTkuMSA0Ni42IDQzLjggMTE4IDUzLjkgMTc2LjEgMjAuMiAxNy45LTEwLjQgMzIuOC0yMy45IDQ0LjUtMzkuNCAxMS43IDE1LjYgMjYuNiAyOS4xIDQ0LjUgMzkuNCA1OC4xIDMzLjcgMTI5LjUgMjMuNiAxNzYuMS0yMC4yIDUuOS01LjUgNC4zLTE1LjEtMi43LTE5LjEtNC44LTIuOC0xMC44LTIuMS0xNS4zIDEuMS01My43IDM4LjItMTQ4LjIgMTMtMTQ4LjItNzUuNCAwLTEyMy41IDE4NC40LTEyMy41IDE4NC40IDAgMCAzLjQtLjEgNi44LS40IDEwLjEtLjUgNS44IDIuMSAxMS41IDcuMSAxNC40IDcuNCA0LjMgMTcgLjggMTguOS03LjYgMTMuOS02Mi4yLTEzLTEyOC45LTcwLjktMTYyLjUtMTkuNS0xMS4zLTQwLjQtMTcuNy02MS41LTE5LjUgMTAuOS0yMC44IDE3LTQ0LjQgMTctNjkuNSAwLTY3LjMtNDQuMi0xMjQuMy0xMDUuMS0xNDMuMS03LjktMi40LTE1LjUgMy44LTE1LjUgMTIuMSAwIDUuOSA0IDExIDkuNSAxMy4yIDgzLjQgMzMuNiA3MC44IDE3OC40LTM3LjggMTc4LjRTMTY3LjEgNTkuNCAyNTAuNSAyNS44YzUuNS0yLjIgOS41LTcuMyA5LjUtMTMuMnpNMjQ4LjQgMjg4YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTQzNSAzMTcuN2MtMTYuMiAwLTMxLjQgNS41LTQyLjEgMTUtMTAuMSA5LjEtMTguMSAyMy40LTE4LjEgNDUuNiAwIDIxLjEgNy4yIDM1IDE2LjUgNDQuMSAzMi4yLTI0LjYgNTUuNS02MC41IDYzLjktMTAxLjgtNi4zLTEuOS0xMy4yLTMtMjAuMi0zek0yMDIgMzc4LjNjMC0yMi4zLTgtMzYuNi0xOC4xLTQ1LjYtMTAuNy05LjYtMjUuOS0xNS00Mi4xLTE1LTcgMC0xMy45IDEtMjAuMiAzIDguNCA0MS4zIDMxLjYgNzcuMiA2My45IDEwMS44IDkuNC05LjEgMTYuNS0yMy4xIDE2LjUtNDQuMnptNDEuMi0yMjQuM2M5IDEwLjIgMjMuMiAxOC4yIDQ1LjIgMTguMnMzNi4yLTggNDUuMi0xOC4yYzYuNy03LjYgMTEuNS0xNy41IDEzLjYtMjguNC0xOC4zLTYuOC0zOC4yLTEwLjUtNTguOC0xMC41cy00MC41IDMuNy01OC44IDEwLjVjMi4yIDEwLjkgNi45IDIwLjggMTMuNiAyOC41eiJdfSxlbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1jb25jaWVyZ2UiLGljb246WzUxMiw1MTIsWzEyODcxOCwiY29uY2llcmdlLWJlbGwiXSwiZjU2MiIsIk0yMTYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjNDMTI0LjggMTU2LjcgNDAuMiAyNDMuNyAzMi42IDM1Mmw0NDYuOSAwQzQ3MS44IDI0My43IDM4Ny4yIDE1Ni43IDI4MCAxNDUuM2wwLTMzLjMgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNMjQgNDAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQwMHoiXX0sJFZ0PWVtZSxEVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXItaG9yaXpvbnRhbCIsaWNvbjpbNTc2LDUxMixbXSwiZjU0NyIsIk00OCAzODRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI0IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCA0OCAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDQ4IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCA0OCAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDQ4IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCAyNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDM4NHoiXX0sQVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvcnNlIixpY29uOls1NzYsNTEyLFsxMjgwMTRdLCJmNmYwIiwiTTQ0OCAyMzguMWwwLTc4LjEgMTYgMCA5LjggMTkuNmMxMi41IDI1LjEgNDIuMiAzNi40IDY4LjMgMjYgMjAuNS04LjIgMzMuOS0yOCAzMy45LTUwLjFMNTc2IDgwYzAtMTkuMS04LjQtMzYuMy0yMS43LTQ4bDUuNyAwYzguOCAwIDE2LTcuMiAxNi0xNlM1NjguOCAwIDU2MCAwTDQ0OCAwQzM3Ny4zIDAgMzIwIDU3LjMgMzIwIDEyOGwtMTcxLjIgMEMxMTguMSAxMjggOTEuMiAxNDQuMyA3Ni4zIDE2OC44IDMzLjIgMTc0LjUgMCAyMTEuNCAwIDI1NmwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NmMwLTEzLjQgNi42LTI1LjIgMTYuNy0zMi41IDEuNiAxMyA2LjMgMjUuNCAxMy42IDM2LjRsMjguMiA0Mi40YzguMyAxMi40IDYuNCAyOC43LTEuMiA0MS42LTE2LjUgMjgtMjAuNiA2Mi4yLTEwIDkzLjlsMTcuNSA1Mi40YzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsMzMuNyAwYzIxLjggMCAzNy4zLTIxLjQgMzAuNC00Mi4xbC0yMC44LTYyLjVjLTIuMS02LjQtLjUtMTMuNCA0LjMtMTguMmwxMi43LTEyLjdjMTMuMi0xMy4yIDIwLjYtMzEuMSAyMC42LTQ5LjcgMC0yLjMtLjEtNC42LS4zLTYuOWw4NCAyNGM0LjEgMS4yIDguMiAyLjEgMTIuMyAyLjhMMzIwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTY0LjNjMTkuMi0xOS4yIDMxLjUtNDUuNyAzMi03NS43bDAgMCAwLTEuOXpNNDk2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sUFZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyIixpY29uOls0NDgsNTEyLFsxMjgxOTcsMTI4MTk4XSwiZjEzMyIsIk0xMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJsMCAzMi0zMiAwQzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNDggNDQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzItMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMCAyMjRMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTItNDQ4IDB6Il19LEVWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nLWNoaWxkIixpY29uOls2NDAsNTEyLFtdLCJlNGZhIiwiTTMyMC0zMmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTYwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xIDEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOC03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGMyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMmwwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCA3OC45YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02Ni43IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41TDAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDIyMS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w0MDAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTc4LjljMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMGM3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjItMTEgMTEtOS4yIDI5LjIgMy43IDM3LjggOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTYwIDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHpNMzg0LjUgMTQ5bC0xOS44LTE2LjcgMTEuMSA4OC44YzEuNiAxMy4yLTcuNyAyNS4xLTIwLjggMjYuOHMtMjUuMS03LjctMjYuOC0yMC44bC00LjQtMzUtNy42IDAtNC40IDM1Yy0xLjYgMTMuMi0xMy42IDIyLjUtMjYuOCAyMC44cy0yMi41LTEzLjYtMjAuOC0yNi44bDExLjEtODguOC0xOS44IDE2LjdjLTEwLjEgOC42LTI1LjMgNy4zLTMzLjgtMi44cy03LjMtMjUuMyAyLjgtMzMuOGwyNy45LTIzLjZDMjcxLjMgNzIuOCAyOTUuMyA2NCAzMjAgNjRzNDguNyA4LjggNjcuNiAyNC43bDI3LjkgMjMuNmMxMC4xIDguNiAxMS40IDIzLjcgMi44IDMzLjhzLTIzLjcgMTEuNC0zMy44IDIuOHoiXX0sSVZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Iml0YWxpYyIsaWNvbjpbMzg0LDUxMixbXSwiZjAzMyIsIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTU4LjcgMC0xMzMuMyAzMjAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTguNyAwIDEzMy4zLTMyMC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sTlZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtoYW5kYSIsaWNvbjpbNTEyLDUxMixbOTc3Ml0sImY2NmQiLCJNMjQwLjcgOGM4LjktNy40IDIxLjgtNy40IDMwLjcgMGwzNy44IDMxLjVjOC43IDcuMyAxMS4xIDE5LjYgNiAyOS42LTEuMiAyLjQtMi44IDUuNS00LjYgOS4yIDM0LjIgMTkuMiA1Ny4zIDU1LjggNTcuMyA5Ny44cy0yMy4xIDc4LjYtNTcuMyA5Ny44YzEuOCAzLjcgMy4zIDYuOCA0LjYgOS4yIDUuMSAxMCAyLjcgMjIuMy02IDI5LjZsLTM3LjIgMzEgMCAxOS44YzIyLjktMTUuNyA0OC40LTMzLjMgNzYuNy01Mi43IDQyLjgtMjkuNCA2OC40LTc4IDY4LjQtMTMwbDAtMTEuMWMwLTIzLjktNy4xLTQ3LjMtMjAuNC02Ny4yLTUuMS03LjctNC42LTE3LjggMS43LTI0LjYgNi42LTcuMSAxNy4yLTguMSAyNS4yLTIuOCAyNy41IDE4LjEgODkuNCA2Ny41IDg5LjQgMTQ5LjEgMCA0Ni41LTIwLjIgODguNi00MS44IDEyMC40LTIxLjYgMzItNDUuNiA1NS01NS4zIDYzLjgtNy44IDcuMS0xOSA3LjktMjcuNiAzbC03MC44LTQwLjMtMzIuNyAyMi41IDQ1LjUgMzEuM2MxLjgtLjQgMy43LS43IDUuNy0uNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTIuMiAwLTIyLjMtOS4xLTIzLjgtMjFsLTQwLjItMjcuNiAwIDI4LjljOS42IDUuNSAxNiAxNS45IDE2IDI3LjcgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0xMS44IDYuNC0yMi4yIDE2LTI3LjdsMC0yOC4xLTQwLjMgMjcuN2MtMS44IDExLjQtMTEuOCAyMC4xLTIzLjcgMjAuMS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIuMiAwIDQuNCAuMyA2LjUgLjlsNDUuOC0zMS41LTMyLjctMjIuNS03MC44IDQwLjNjLTguNyA0LjktMTkuOCA0LjEtMjcuNi0zLTkuNy04LjgtMzMuNy0zMS45LTU1LjMtNjMuOC0yMS41LTMxLjgtNDEuOC03My45LTQxLjgtMTIwLjQgMC04MS43IDYxLjktMTMxLjEgODkuNC0xNDkuMSA4LjEtNS4zIDE4LjYtNC4zIDI1LjIgMi44IDYuNCA2LjkgNi44IDE3IDEuNyAyNC42LTEzLjMgMTkuOS0yMC40IDQzLjMtMjAuNCA2Ny4ybDAgMTEuMWMwIDUxLjkgMjUuNiAxMDAuNiA2OC40IDEzMCAyOC40IDE5LjYgNTMuNyAzNi45IDc1LjYgNTJsMC0xOS4xLTM3LjItMzFjLTguNy03LjMtMTEuMS0xOS42LTYtMjkuNiAxLjItMi40IDIuOC01LjUgNC42LTkuMi0zNC4yLTE5LjItNTcuMy01NS44LTU3LjMtOTcuOHMyMy4xLTc4LjYgNTcuMy05Ny44Yy0xLjgtMy43LTMuMy02LjgtNC42LTkuMi01LjEtMTAtMi43LTIyLjMgNi0yOS42TDI0MC43IDh6TTIyMC4zIDEyMi45Yy0xNyAxMS41LTI4LjIgMzEtMjguMiA1My4xczExLjIgNDEuNiAyOC4yIDUzLjFjNi44LTE5LjIgMTEuOC0zOC40IDExLjgtNTMuMXMtNC45LTMzLjktMTEuOC01My4xem03MS41IDEwNi4yYzE3LTExLjUgMjguMi0zMSAyOC4yLTUzLjFzLTExLjItNDEuNi0yOC4yLTUzLjFjLTYuOCAxOS4yLTExLjggMzguNC0xMS44IDUzLjFzNC45IDMzLjkgMTEuOCA1My4xeiJdfSx0bWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93bi1vcGVuIixpY29uOls1MTIsNTEyLFsxMjg1NTAsImZyb3duLW9wZW4iXSwiZjU3YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6Il19LFJWdD10bWUsRXRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWNrIixpY29uOls0NDgsNTEyLFsxMDAwMywxMDAwNF0sImYwMGMiLCJNNDM0LjggNzAuMWMxNC4zIDEwLjQgMTcuNSAzMC40IDcuMSA0NC43bC0yNTYgMzUyYy01LjUgNy42LTE0IDEyLjMtMjMuNCAxMy4xcy0xOC41LTIuNy0yNS4xLTkuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxMDEuNSAxMDEuNSAyMzQtMzIxLjdjMTAuNC0xNC4zIDMwLjQtMTcuNSA0NC43LTcuMXoiXX0sT1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbmdlcnByaW50IixpY29uOls1MTIsNTEyLFtdLCJmNTc3IiwiTTQ4IDI1NmMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDggNjMuMSAwIDExOS42IDI4LjEgMTU3LjggNzIuNSA4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44QzQwMy4zIDM0LjYgMzMzLjcgMCAyNTYgMCAxMTQuNiAwIDAgMTE0LjYgMCAyNTZsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDB6bTQ1OC41LTUyLjljLTIuNy0xMy0xNS41LTIxLjMtMjguNC0xOC41cy0yMS4zIDE1LjUtMTguNSAyOC40YzIuOSAxMy45IDQuNSAyOC4zIDQuNSA0My4xbDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwYzAtMTguMS0xLjktMzUuOC01LjUtNTIuOXpNMjU2IDgwYy0xOSAwLTM3LjQgMy01NC41IDguNi0xNS4yIDUtMTguNyAyMy43LTguMyAzNS45IDcuMSA4LjMgMTguOCAxMC44IDI5LjQgNy45IDEwLjYtMi45IDIxLjgtNC40IDMzLjQtNC40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMjQuOWMwIDI1LjItMS41IDUwLjMtNC40IDc1LjMtMS43IDE0LjYgOS40IDI3LjggMjQuMiAyNy44IDExLjggMCAyMS45LTguNiAyMy4zLTIwLjMgMy4zLTI3LjQgNS01NSA1LTgyLjdsMC0yNC45YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2ek0xNTAuNyAxNDguN2MtOS4xLTEwLjYtMjUuMy0xMS40LTMzLjktLjQtMjMuMSAyOS44LTM2LjggNjcuMS0zNi44IDEwNy43bDAgMjQuOWMwIDI0LjItMi42IDQ4LjQtNy44IDcxLjktMy40IDE1LjYgNy45IDMxLjEgMjMuOSAzMS4xIDEwLjUgMCAxOS45LTcgMjIuMi0xNy4zIDYuNC0yOC4xIDkuNy01Ni44IDkuNy04NS44bDAtMjQuOWMwLTI3LjIgOC41LTUyLjQgMjIuOS03My4xIDcuMi0xMC40IDgtMjQuNi0uMi0zNC4yek0yNTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjQuOWMwIDM1LjktNC42IDcxLjUtMTMuOCAxMDYuMS0zLjggMTQuMyA2LjcgMjkgMjEuNSAyOSA5LjUgMCAxNy45LTYuMiAyMC40LTE1LjQgMTAuNS0zOSAxNS45LTc5LjIgMTUuOS0xMTkuN2wwLTI0LjljMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwwIDI0LjljMCAzNi4zLTMuNSA3Mi40LTEwLjQgMTA3LjktMi43IDEzLjkgNy43IDI3LjIgMjEuOCAyNy4yIDEwLjIgMCAxOS03IDIxLTE3IDcuNy0zOC44IDExLjYtNzguMyAxMS42LTExOC4xbDAtMjQuOWMwLTUzLTQzLTk2LTk2LTk2em0yNCA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0LjljMCA1OS45LTExIDExOS4zLTMyLjUgMTc1LjJsLTUuOSAxNS4zYy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhsNS45LTE1LjNDMjY3LjkgNDExLjkgMjgwIDM0Ni43IDI4MCAyODAuOWwwLTI0Ljl6Il19LEZWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFyZ2luZy1zdGF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmNWU3IiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMjcuN2MtMzIuNS0xMC4yLTU2LTQwLjUtNTYtNzYuM2wwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDMyIDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDM1LjgtMjMuNSA2Ni4xLTU2IDc2LjNMNTIwIDM4MGMwIDM3LjYtMzAuNCA2OC02OCA2OHMtNjgtMzAuNC02OC02OGwwLTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMybDAgMTI5LjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNzIgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkw2NCA2NHptODIuNyAxMjUuN2wzOSAwLTIwLjkgNjYuOWMtMi40IDcuNiAzLjMgMTUuNCAxMS4zIDE1LjQgMi45IDAgNS42LTEgNy44LTIuOWw5NC42LTgyYzMuMS0yLjcgNC45LTYuNiA0LjktMTAuNyAwLTcuOC02LjMtMTQuMS0xNC4xLTE0LjFsLTM5IDAgMjAuOS02Ni45YzIuNC03LjYtMy4zLTE1LjQtMTEuMy0xNS40LTIuOSAwLTUuNiAxLTcuOCAyLjlsLTk0LjYgODJjLTMuMSAyLjctNC45IDYuNi00LjkgMTAuNyAwIDcuOCA2LjMgMTQuMSAxNC4xIDE0LjF6Il19LEJWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWxvY2siLGljb246WzU3Niw1MTIsW10sImY1MDIiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzI5LjcgMCA1Ny43IDcuMyA4Mi4zIDIwLjFsMCA0LjNjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHptMzAxLjcgLjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxhbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbi1idXR0b24iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYWx0Il0sImYzY2QiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em02NCAwbDAgMzA0IDIyNCAwIDAtMzA0LTIyNCAwek0xOTIgNDcyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnoiXX0sSFZ0PWFtZSxxVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYSIsIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpNMjg4IDBjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zTDgwIDMwNy45YzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LHJtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy13aXRoLWNhbmUiLGljb246WzU3Niw1MTIsWyJibGluZCJdLCJmMjlkIiwiTTIyNC0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTYwIDIwNS4zbC0yMi42IDIyLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM0LjQtMzQuNGMyMy4yLTIzLjIgNTQuNi0zNi4yIDg3LjMtMzYuMiAzNi4xIDAgNzAuMyAxNS44IDkzLjggNDMuMWw2OC42IDgwYzExLjUgMTMuNCA5LjkgMzMuNi0zLjUgNDUuMXMtMzMuNiA5LjktNDUuMS0zLjVsLTU1LjctNjUgMCAxMTguNiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNsMTIuNiA4OC4xYzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4ybC0xMi42LTg4LjFjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOGwtNzEuNC02MS4yYy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6bS4xIDE2NS44YzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVsLTY4LjMgNjguM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjguMy02OC4zYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEwxNjAuMSAzNzF6bTIzMy41LTYyLjJjMTAuNi04IDI1LjYtNS44IDMzLjYgNC44bDE0NCAxOTJjOCAxMC42IDUuOCAyNS42LTQuOCAzMy42cy0yNS42IDUuOC0zMy42LTQuOGwtMTQ0LTE5MmMtOC0xMC42LTUuOC0yNS42IDQuOC0zMy42eiJdfSxWVnQ9cm1lLHNtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXdhdmVmb3JtIixpY29uOlszODQsNTEyLFsiZmlsZS1tZWRpY2FsLWFsdCJdLCJmNDc4IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC05NiA2MC4zIDAgNDguOCA2Mi43YzUuMSA2LjYgMTMuMyAxMCAyMS42IDkuMXMxNS41LTYuMSAxOS4xLTEzLjZsNDIuOS05MS4yIDkuOSAxOS44YzQuMSA4LjEgMTIuNCAxMy4zIDIxLjUgMTMuM2w3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01Ny4yIDAtMjUuNC01MC43Yy00LjEtOC4yLTEyLjYtMTMuNC0yMS44LTEzLjNzLTE3LjUgNS41LTIxLjQgMTMuOGwtNDcuMyAxMDAuNi0zMi00MS4xQzg2LjQgMzA3LjQgNzkuNCAzMDQgNzIgMzA0TDAgMzA0IDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXoiXX0salZ0PXNtZSxVVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY3JhY2siLGljb246WzUxMiw1MTIsW10sImUzYjEiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGw4Ni40IDAtMzEuMy01Mi4yYy00LjEtNi44LTIuNi0xNS41IDMuNS0yMC41TDI1NiAzNjggMTk1LjggMjg1LjJjLTEwLjktMTUgOC4yLTMzLjUgMjIuOC0yMmwxMTcuOSA5Mi42YzggNi4zIDguMiAxOC40IC40IDI0LjlMMjU2IDQ0OCAyOTQuNCA1MTIgNDAwIDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHoiXX0sV1Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC13aXphcmQiLGljb246WzUxMiw1MTIsW10sImY2ZTgiLCJNNjQgNDAwbDg1LjctMjA4LjJjMTctNDEuMyA0Ny44LTc1LjMgODcuMi05Ni4zTDM4My44IDE3LjJjMTIuMy02LjYgMjYuNSA0LjcgMjMgMTguMkwzNjkuNiAxNzcuOGMtMS4xIDQuMS0xLjYgOC4zLTEuNiAxMi42IDAgNi4zIDEuMiAxMi42IDMuNiAxOC41bDc2LjQgMTkxLjEtMjA3LjEgMCAxMS44LTM1LjQgNDAuNC0xMy41YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ycy00LjQtMTMtMTAuOS0xNS4ybC00MC40LTEzLjUtMTMuNS00MC40QzIzNyAyNjAuNCAyMzAuOSAyNTYgMjI0IDI1NnMtMTMgNC40LTE1LjIgMTAuOWwtMTMuNSA0MC40LTQwLjQgMTMuNUMxNDguNCAzMjMgMTQ0IDMyOS4xIDE0NCAzMzZzNC40IDEzIDEwLjkgMTUuMmw0MC40IDEzLjUgMTEuOCAzNS40LTE0My4xIDB6TTI3OS42IDE0MS41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNXMtNi41IDIuMi03LjYgNS41bC02LjcgMjAuMi0yMC4yIDYuN2MtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZzMi4yIDYuNSA1LjUgNy42bDIwLjIgNi43IDYuNyAyMC4yYzEuMSAzLjMgNC4xIDUuNSA3LjYgNS41czYuNS0yLjIgNy42LTUuNWw2LjctMjAuMiAyMC4yLTYuN2MzLjMtMS4xIDUuNS00LjEgNS41LTcuNnMtMi4yLTYuNS01LjUtNy42bC0yMC4yLTYuNy02LjctMjAuMnpNMzIgNDQ4bDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0saW1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZG9jdG9yIixpY29uOls0NDgsNTEyLFsidXNlci1tZCJdLCJmMGYwIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDAgMCAyNDAgMTIwIDEyMCAwIDEgMCAwLTI0MHptNjAgMzEyLjhjLTUuNC0uNS0xMS0uOC0xNi42LS44bC04Ni45IDBjLTUuNiAwLTExLjEgLjMtMTYuNiAuOGwwIDY3LjVjMTYuNSA3LjYgMjggMjQuMyAyOCA0My42IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMTkuNCAxMS41LTM2LjEgMjgtNDMuNmwwLTU4LjRDNjEgMzUzIDE2IDQxMy42IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDM2MS4xIDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC03MS00NS0xMzEuNS0xMDgtMTU0LjZsMCAzNy40YzIzLjMgOC4yIDQwIDMwLjUgNDAgNTYuNmwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMjYuMSAxNi43LTQ4LjMgNDAtNTYuNmwwLTQ2LjZ6Il19LEdWdD1pbWUsb21lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWJhciIsaWNvbjpbNTEyLDUxMixbImJhci1jaGFydCJdLCJmMDgwIiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDgwbDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMTJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxZVnQ9b21lLG5tZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcHJheS1jYW4tc3BhcmtsZXMiLGljb246WzU3Niw1MTIsWyJhaXItZnJlc2hlbmVyIl0sImY1ZDAiLCJNMTYwIDMybDAgODAgMTI4IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTAgMTI4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4YzAtNTMtNDMtOTYtOTYtOTZsLTEyOCAwem02NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDQ4IDQ4YzAtMS40LTEtMy0yLjItMy42TDQxNiAzMiA0MDMuNiAyLjJDNDAzIDEgNDAxLjQgMCA0MDAgMHMtMyAxLTMuNiAyLjJMMzg0IDMyIDM1NC4yIDQ0LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMMzg0IDY0IDM5Ni40IDkzLjhDMzk3IDk1IDM5OC42IDk2IDQwMCA5NnMzLTEgMy42LTIuMkw0MTYgNjQgNDQ1LjggNTEuNkM0NDcgNTEgNDQ4IDQ5LjQgNDQ4IDQ4em03Ni40IDQ1LjhDNTI1IDk1IDUyNi42IDk2IDUyOCA5NnMzLTEgMy42LTIuMkw1NDQgNjQgNTczLjggNTEuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42IDAtMS40LTEtMy0yLjItMy42TDU0NCAzMiA1MzEuNiAyLjJDNTMxIDEgNTI5LjQgMCA1MjggMHMtMyAxLTMuNiAyLjJMNTEyIDMyIDQ4Mi4yIDQ0LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNTEyIDY0IDUyNC40IDkzLjh6bTcuMiAxMDAuNGMtLjYtMS4yLTIuMi0yLjItMy42LTIuMnMtMyAxLTMuNiAyLjJMNTEyIDIyNCA0ODIuMiAyMzYuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgMjU2IDUyNC40IDI4NS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNTQ0IDI1NiA1NzMuOCAyNDMuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42IDAtMS40LTEtMy0yLjItMy42TDU0NCAyMjQgNTMxLjYgMTk0LjJ6TTUxMiAxNDRjMC0xLjQtMS0zLTIuMi0zLjZMNDgwIDEyOCA0NjcuNiA5OC4yQzQ2NyA5NyA0NjUuNCA5NiA0NjQgOTZzLTMgMS0zLjYgMi4yTDQ0OCAxMjggNDE4LjIgMTQwLjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNDQ4IDE2MCA0NjAuNCAxODkuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDQ4MCAxNjAgNTA5LjggMTQ3LjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNnoiXX0sS1Z0PW5tZSxaVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFodC1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMGFjIiwiTTEzNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwLTc0LjQgMEMxNi44IDY0IDAgODAuOCAwIDEwMS42TDAgNDA2LjNjMCAyMyAxOC43IDQxLjcgNDEuNyA0MS43bDcwLjMgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA0OCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyIDAtNDAuMS0yMS4xLTc1LjMtNTIuNy05NS4xIDEzLjEtMTguMyAyMC43LTQwLjcgMjAuNy02NC45IDAtNjEuOS01MC4xLTExMi0xMTItMTEybC0xNiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMjhsMCA5Ni00OCAwIDAtOTYgNDggMHptNDggOTZsMC05NiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwem0tNDggNjRsMCA5Ni00OCAwIDAtOTYgNDggMHptNDggOTZsMC05NiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC00OCAweiJdfSxsbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJ0ZW1wZXJhdHVyZS11cCJdLCJlMDQwIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yMTIuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQzOS4xIDkuNGw2NCA2NGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOS40LTkuNCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTc4LjctOS40IDkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjNi02IDE0LjEtOS40IDIyLjYtOS40czE2LjYgMy40IDIyLjYgOS40eiJdfSxYVnQ9bG1lLFFWdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWItYXdlc29tZSIsaWNvbjpbNjQwLDUxMixbXSwiZTY4MiIsIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MiA1NTIuNCAxNzEuMWMtNS4zLTcuNy04LjQtMTcuMS04LjQtMjcuMSAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjYtMjAuNiA0Ny4xLTQ2LjQgNDhMNDgxIDQ0Mi4zYy0xMC4zIDIzLTMzLjIgMzcuNy01OC40IDM3LjdsLTIwNS4yIDBjLTI1LjIgMC00OC0xNC44LTU4LjQtMzcuN0w0Ni40IDE5MkMyMC42IDE5MS4xIDAgMTcwIDAgMTQ0IDAgMTE3LjUgMjEuNSA5NiA0OCA5NnM0OCAyMS41IDQ4IDQ4YzAgMTAuMS0zLjEgMTkuNC04LjQgMjcuMUwxOTIgMTkyIDI5OC4xIDk5LjFjLTE3LjctOC4zLTMwLTI2LjMtMzAtNDcuMSAwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUyeiJdfSxKVnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm9uLWJpbmFyeSIsaWNvbjpbMzg0LDUxMixbXSwiZTgwNyIsIk0xOTIgNTQ0Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NiAwLTg2LjMgNjIuMS0xNTggMTQ0LTE3M2wwLTQ3LjItNDkuNyAyNC44LTMgMS4zYy0xNS4yIDUuNy0zMi41LS44LTM5LjktMTUuNy03LjQtMTQuOC0yLjItMzIuNiAxMS41LTQxLjNsMi44LTEuNiAzOC44LTE5LjQtMzguOC0xOS40Yy0xNS44LTcuOS0yMi4yLTI3LjEtMTQuMy00Mi45IDcuNC0xNC44IDI0LjgtMjEuNCA0MC0xNS42bDMgMS4zIDQ5LjcgMjQuOCAwLTQ0LjJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ0LjIgNDkuNy0yNC44IDMtMS4zYzE1LjItNS44IDMyLjUgLjggMzkuOSAxNS42czIuMiAzMi43LTExLjUgNDEuM2wtMi44IDEuNi0zOC43IDE5LjQgMzguNyAxOS4zYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNy40IDE0LjgtMjQuNyAyMS40LTM5LjkgMTUuNmwtMy0xLjMtNDkuNy0yNC44IDAgNDcuMmM4MS45IDE1LjEgMTQ0IDg2LjggMTQ0IDE3MyAwIDk3LjItNzguOCAxNzYtMTc2IDE3NnptMC02NGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LGVqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuIixpY29uOlszODQsNTEyLFsxMTBdLCI0ZSIsIk0yMS4xIDMzLjljMTIuNy00LjYgMjYuOS0uNyAzNS41IDkuNkwzMjAgMzU5LjYgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxMy41LTguNCAyNS41LTIxLjEgMzAuMXMtMjYuOSAuNy0zNS41LTkuNkw2NCAxNTIuNCA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNTAuNSA4LjQgMzguNSAyMS4xIDMzLjl6Il19LGNtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtZG93bi1sZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFsiYXJyb3dzIl0sImYwNDciLCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDExNC43LTExNC43IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTE0LjcgMCAwIDExNC43LTkuNC05LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40IDAtMTE0LjcgMTE0LjcgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0xMTQuNyAwIDAtMTE0LjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHoiXX0sdGp0PWNtZSxqYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTI0MCAzMjBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LTEyOCAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGFqdD1qYixyanQ9amIsc2p0PWpiLGlqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMTEwIiwiTTIwOCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0wIDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0zNjggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNzUgMzY5LjFBNDggNDggMCAxIDEgMTQyLjkgNDM3IDQ4IDQ4IDAgMSAxIDc1IDM2OS4xek03NSA3NUE0OCA0OCAwIDEgMSAxNDIuOSAxNDIuOSA0OCA0OCAwIDEgMSA3NSA3NXpNNDM3IDM2OS4xQTQ4IDQ4IDAgMSAxIDM2OS4xIDQzNyA0OCA0OCAwIDEgMSA0MzcgMzY5LjF6Il19LGRtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXZlbCIsaWNvbjpbNTc2LDUxMixbImxlZ2FsIl0sImYwZTMiLCJNMTY5LjYgMTUzLjRsLTE4LjctMTguN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMjY1LjYtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEwzMjkuNi02LjZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMMjE0LjkgMTUzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwek0yNzYgMjExLjdsLTMxLjQtMzEuNCAxMTItMTEyIDExOS40IDExOS40LTExMiAxMTItMzEuNC0zMS40LTIzMiAyMzJjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42bDIzMi0yMzJ6TTM5MC45IDM3NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0w1MDUuNiAyMTQuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOC43IDE4LjdjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMNDU0LjkgMzkzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xOC43LTE4Ljd6Il19LG9qdD1kbWUsdW1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldC1zaW1wbGUiLGljb246WzU3Niw1MTIsWyJ0aWNrZXQtYWx0Il0sImYzZmYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDguOC03LjQgMTUuNy0xNS43IDE4LjYtMTguOCA2LjUtMzIuMyAyNC40LTMyLjMgNDUuNHMxMy41IDM4LjkgMzIuMyA0NS40YzguMyAyLjkgMTUuNyA5LjggMTUuNyAxOC42bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0QzAgMzExLjIgNy40IDMwNC4zIDE1LjcgMzAxLjQgMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkybDAtNjR6Il19LG5qdD11bWUsbGp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvdmUiLGljb246WzUxMiw1MTIsWzEyODMzMF0sImY0YmEiLCJNNDk2IDY0YzEzLjIgMCAyMC43IDE1LjEgMTIuOCAyNS42TDQ4MCAxMjggNDgwIDMwNGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NGwtMTEyIDAtNDYuMyA0Ni4zYy0xMC40IDEwLjQtMjYuNSAxMi40LTM5LjEgNC44TDQxLjUgNDQwLjljLTE3LTEwLjItMTUtMzUuNSAzLjQtNDIuOUwxNjAgMzUyQzIzLjggMzExLjEgNy41IDE2OS44IDIyIDk1LjcgMjUuNiA3Ny45IDQ1LjMgNzEuNCA2MS4zIDgwLjJMMzIwIDIyNCAzMjAgMTQ0YzAtNDQuMiAzNS44LTgwIDgwLTgwbDk2IDB6bS05NiA1NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTE4Mi41LTkuNmMxMi40LTEzLjcgMzMuMy04LjkgNDIuNSA3LjFsNTYuNCA5OC4zYy01LjggMTQuNC05LjIgMzAuMS05LjQgNDYuNUwxMzguMSA2OGMxMC4xLTMxLjYgMjctNTguNCA0NC40LTc3LjZ6Il19LGNqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXJwLWRyb3BsZXQiLGljb246WzUxMiw1MTIsW10sImU1N2MiLCJNMjU2IDE2MGMzNS4zIDAgNjQtMjYuOSA2NC02MCAwLTI0LTMzLjctNzAuMS01Mi4yLTkzLjUtNi4xLTcuNy0xNy41LTcuNy0yMy42IDAtMTguNSAyMy40LTUyLjIgNjkuNS01Mi4yIDkzLjUgMCAzMy4xIDI4LjcgNjAgNjQgNjB6TTM2OCA5NmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMTU3LjkgMTQ0IDk2YzAtMTEuMSAxLjYtMjEuOSA0LjYtMzJMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAzMjIuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTg0LjYgMGMzIDEwLjEgNC42IDIwLjkgNC42IDMyem04NS41IDE3NkwzMzYgMzg5LjUgMzM2IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDB6TTk2IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGRqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmVlLWNpdHkiLGljb246WzY0MCw1MTIsW10sImU1ODciLCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI1NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQxNnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzUyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek01MjggMTkyYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgNDgwbDAtMTYwLTE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtMjYuNyAxMy4xLTUwLjMgMzMuMi02NC45LS44LTQuOS0xLjItMTAtMS4yLTE1LjEgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxwbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHVybi11cCIsaWNvbjpbMzg0LDUxMixbMTA1NDgsImxldmVsLXVwLWFsdCJdLCJmM2JmIiwiTTE2OS40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDE5MiAzMjAgMTkybC02NCAwIDAgMTYwYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjAtNjQgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlsMTI4LTEyOHoiXX0sdWp0PXBtZSxVYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1xdWFydGVyIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMSIsInRoZXJtb21ldGVyLTEiLCJ0aGVybW9tZXRlci1xdWFydGVyIl0sImYyY2EiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtMjguN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjguN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LHBqdD1VYixmanQ9VWIsaGp0PVViLGZtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbGlkZXJzIixpY29uOls1MTIsNTEyLFsic2xpZGVycy1oIl0sImYxZGUiLCJNMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDI2NS4zIDY0QzI1MyAzNS43IDIyNC44IDE2IDE5MiAxNnMtNjEgMTkuNy03My4zIDQ4TDMyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNDYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4bDU0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTQuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMjI0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NC43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjQ2LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDM4NHoiXX0sbWp0PWZtZSxnanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVlIixpY29uOls1NzYsNTEyLFsxMjgzMzJdLCJmNjc4IiwiTTE3NC44IDIyNGwyMjYuNCAwYzQzLjUgMCA3OC44LTM1LjMgNzguOC03OC44IDAtMjUuNS0xMi4zLTQ5LjQtMzMuMS02NC4yTDI5Ny4zLTI1LjRjLTUuNi0zLjktMTMtMy45LTE4LjUgMEwxMjkuMSA4MUMxMDguMyA5NS44IDk2IDExOS43IDk2IDE0NS4yIDk2IDE4OC43IDEzMS4zIDIyNCAxNzQuOCAyMjR6TTUxMiA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC00NDggMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDB6TTI0MCAzODRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwLTk2IDAgMC04MHoiXX0sYmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImgiLGljb246WzM4NCw1MTIsWzEwNF0sIjQ4IiwiTTMyMCAyODhsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE2MC0yNTYgMCAwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwIDI1NiAweiJdfSx2anQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5mbyIsaWNvbjpbMTkyLDUxMixbXSwiZjEyOSIsIk00OCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0yMjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LGhtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZyIsaWNvbjpbMzg0LDUxMixbMTI4Njk0LCJ3YWxraW5nIl0sImY1NTQiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0xMDUuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMNjAuMSAxODIuNkM0Mi4xIDIwMC42IDMyIDIyNSAzMiAyNTAuNUwzMiAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6bTEyLjQgMTc5LjRjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDQxLjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44bC0xMC40IDM2LjJ6Il19LHhqdD1obWUsbW1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXR1cm4tZG93biIsaWNvbjpbMzg0LDUxMixbImxldmVsLWRvd24iXSwiZjE0OSIsIk0zMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwbDk2IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMwNi43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgNDAyLjcgMTYwIDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDY0eiJdfSx5anQ9bW1lLHdqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkIixpY29uOls1MTIsNTEyLFsxMjg3MzldLCJmMDE4IiwiTTIyMy45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDEuNCA0MjAuNUMtNi4xIDQ1MC43IDE2LjggNDgwIDQ4IDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDE3Ni4xIDBjMzEuMiAwIDU0LjEtMjkuMyA0Ni42LTU5LjVMNDI2LjUgODAuNkM0MTkuNCA1Mi4xIDM5My44IDMyIDM2NC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LE1qdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlyYWwiLGljb246WzUxMiw1MTIsW10sImU4MGEiLCJNMTE1LjUgNy40YzEzLjYtMTEuMyAzMy44LTkuNSA0NS4xIDQuMXM5LjUgMzMuOC00LjEgNDUuMUMxMDAuMiAxMDMuNSA2NCAxNzUuMiA2NCAyNTYgNjQgMzYyIDE1MCA0NDggMjU2IDQ0OHMxOTItODYgMTkyLTE5MmMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxNzYgMTgwLjkgMTc2IDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTEyIDMzNS41IDExMiAyNTZjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDBjMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2QzAgMTU1LjggNDUgNjYuMSAxMTUuNSA3LjR6Il19LGdtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWZyb3duIixpY29uOls1MTIsNTEyLFs5Nzg1LCJmcm93biJdLCJmMTE5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem05MC42LTExMy45Yy0yMC40LTI4LTUzLjQtNDYuMS05MC42LTQ2LjFzLTcwLjIgMTguMS05MC42IDQ2LjFjLTcuOCAxMC43LTIyLjggMTMuMS0zMy41IDUuM3MtMTMuMS0yMi44LTUuMy0zMy41QzE1NS43IDMzMCAyMDIuOCAzMDQgMjU2IDMwNHMxMDAuMyAyNiAxMjkuNCA2NS45YzcuOCAxMC43IDUuNCAyNS43LTUuMyAzMy41cy0yNS43IDUuNC0zMy41LTUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxranQ9Z21lLGJtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzLWVtcHR5IixpY29uOlszMjAsNTEyLFsid2luZS1nbGFzcy1hbHQiXSwiZjVjZSIsIk02NCAwQzQ4LjcgMCAzNS42IDEwLjggMzIuNiAyNS43TDMuMiAxNzNDMS4xIDE4My41IDAgMTk0LjIgMCAyMDVsMCAzYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44bDAgMTE1LjItNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTExNS4yQzI2NSAzNTAgMzIwIDI4NS40IDMyMCAyMDhsMC0zYzAtMTAuNy0xLjEtMjEuNC0zLjItMzJMMjg3LjQgMjUuN0MyODQuNCAxMC44IDI3MS4zIDAgMjU2IDBMNjQgMHptMS45IDE4NS42TDkwLjIgNjQgMjI5LjggNjQgMjU0LjEgMTg1LjZjMS4zIDYuNCAxLjkgMTIuOSAxLjkgMTkuNGwwIDNjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0zYzAtNi41IC42LTEzIDEuOS0xOS40eiJdfSxTanQ9Ym1lLHpqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGFwcGVyYm9hcmQiLGljb246WzUxMiw1MTIsW10sImUxMzEiLCJNNDQ4IDY0YzIgMCAzLjkgLjEgNS44IC4zbC05NS43IDk1LjcgNjcuOSAwIDcyLTcyYzguOCAxMSAxNCAyNC45IDE0IDQwbDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNzAuMSAwLTk2IDk2IDY3LjkgMCA5NS05NSAxLTEgOTIuMSAwLTk2IDk2IDY3LjkgMCA5NS05NSAxLTEgODYuMSAweiJdfSx2bWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZC1zdGVwIixpY29uOlszODQsNTEyLFsic3RlcC1mb3J3YXJkIl0sImYwNTEiLCJNMjEgMzYuOGMxMi45LTcgMjguNy02LjMgNDEgMS44TDMyMCAyMDguMSAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NC4xLTI1OCAxNjkuNmMtMTIuMyA4LjEtMjggOC44LTQxIDEuOFMwIDQ1NC43IDAgNDQwTDAgNzJDMCA1Ny4zIDguMSA0My44IDIxIDM2Ljh6Il19LENqdD12bWUseG1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODU5OSwiZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0Il0sImYzNjAiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTY4IDE2MGMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44cy0xLjcgMTkuMyA1LjIgMjYuMmwzNSAzNS02NyA2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMjQgMjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNjctNjcgMzUgMzVjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlMzMjAgMzIxLjcgMzIwIDMxMmwwLTEyOGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6Il19LF9qdD14bWUseW1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stam91cm5hbC13aGlsbHMiLGljb246WzQ0OCw1MTIsWyJqb3VybmFsLXdoaWxscyJdLCJmNjZhIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzQuMSA5OS4yYzIuNi0yLjYgNi43LTMuMSA5LjktMS4xIDMyLjEgMjAgNTMuNCA1NS42IDUzLjQgOTYuMiAwIDYyLjYtNTAuNyAxMTMuMy0xMTMuMyAxMTMuM1MxMTAuNyAyNTYuOSAxMTAuNyAxOTQuM2MwLTQwLjYgMjEuNC03Ni4yIDUzLjQtOTYuMiAzLjEtMiA3LjItMS41IDkuOSAxLjFzMy4xIDYuNyAxLjIgOS44Yy01LjIgOC42LTguMiAxOC43LTguMiAyOS41IDAgMTUuMSA1LjkgMjguOCAxNS41IDM5LjEgMi41IDIuNyAyLjkgNi43IC45IDkuNy00LjcgNy40LTcuNCAxNi4xLTcuNCAyNS41IDAgMjEuNiAxNC4zIDM5LjkgMzQgNDUuOWwxLTI0LjhjLTcuMS00LjQtMTEuOC0xMi4yLTExLjgtMjEuMSAwLTkuNiA1LjUtMTggMTMuNS0yMi4xbDMuMy04MS44Yy4yLTQuMyAzLjctNy43IDgtNy43czcuOCAzLjQgOCA3LjdsMy4zIDgxLjhjOCA0LjEgMTMuNSAxMi40IDEzLjUgMjIuMSAwIDguOS00LjcgMTYuNy0xMS44IDIxLjFsMSAyNC44YzE5LjYtNiAzMy45LTI0LjEgMzQtNDUuNmwwLS42Yy0uMS05LjMtMi43LTE3LjktNy40LTI1LjItMS45LTMuMS0xLjYtNy4xIC45LTkuNyA5LjYtMTAuMiAxNS41LTIzLjkgMTUuNS0zOS4xIDAtMTAuOC0zLTIwLjktOC4yLTI5LjUtMS45LTMuMi0xLjQtNy4yIDEuMi05Ljh6Il19LFRqdD15bWUsd21lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYW1wYWduZS1nbGFzc2VzIixpY29uOls2NDAsNTEyLFsxMjkzNDYsImdsYXNzLWNoZWVycyJdLCJmNzlmIiwiTTE1NS42IDE3LjNDMTYzIDMgMTc5LjktMy42IDE5NSAxLjlsMTI1IDQ1LjYgMTI1LTQ1LjZjMTUuMS01LjUgMzIgMS4xIDM5LjQgMTUuNGw3OC44IDE1Mi45YzI4LjggNTUuOCAxMC4zIDEyMi4zLTM4LjUgMTU2LjZsMzEuMyA4Ni4yIDQxLTE1YzE2LjYtNiAzNSAyLjUgNDEgMTkuMXMtMi41IDM1LTE5LjEgNDFjLTQ3LjQgMTcuMy05NC44IDM0LjUtMTQyLjIgNTEuOC0xNi42IDYuMS0zNS0yLjUtNDEtMTkuMXMyLjUtMzUgMTkuMS00MWw0MS0xNS0zMS4zLTg2LjJjLTU5LjQgNS4yLTExNi4yLTMzLjktMTMwLTk1LjJsLTE0LjYtNjQuNy0xNC42IDY0LjdjLTEzLjggNjEuMy03MC42IDEwMC40LTEzMCA5NS4ybC0zMS4zIDg2LjIgNDEgMTVjMTYuNiA2LjEgMjUuMiAyNC40IDE5LjEgNDFzLTI0LjQgMjUuMi00MSAxOS4xYy00Ny40LTE3LjMtOTQuOC0zNC42LTE0Mi4yLTUxLjgtMTYuNi02LjEtMjUuMi0yNC40LTE5LjEtNDFTMjYuMyAzOTIgNDIuOSAzOThsNDEgMTUgMzEuMy04Ni4yQzY2LjUgMjkyLjUgNDguMSAyMjYgNzYuOSAxNzAuMkwxNTUuNiAxNy4zem00NCA1NC40bC0yNy4yIDUyLjggODkuMiAzMi41IDEzLjEtNTcuOS03NS4xLTI3LjR6bTI0MC45IDBsLTc1LjEgMjcuNCAxMy4xIDU3LjkgODkuMi0zMi41LTI3LjItNTIuOHoiXX0sTGp0PXdtZSwkanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXIiLGljb246WzU3Niw1MTIsW10sImY3OTMiLCJNMTMyLjMgNjRMMTA2LjcgMTkyIDI0IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMMjYuNSA4MC40QzI5LjggNzAuNiAzOSA2NCA0OS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zMTIgNjRsODIuNyAwIDI1LjYgMTI4LTEwOC4zIDAgMC0xMjh6bTEzMS43IDBsODMgMGMxMC4zIDAgMTkuNSA2LjYgMjIuOCAxNi40bDI1LjMgNzUuOWMuOCAyLjQgMS4yIDUgMS4yIDcuNmwwIDQuMWMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtODIuNyAwLTI1LjYtMTI4ek0yNS43IDI0MGw1MjQuNyAwYy0uNCAyLjEtMTMuMyA3My40LTM4LjkgMjEzLjctMyAxNi4zLTE3LjkgMjcuNi0zNC40IDI2LjFTNDQ4IDQ2NC42IDQ0OCA0NDhsMC0xNi0zMjAgMCAwIDE2YzAgMTYuNi0xMi42IDMwLjQtMjkuMSAzMS45UzY3LjUgNDcwIDY0LjUgNDUzLjdDMzkgMzEzLjMgMjYgMjQyLjEgMjUuNyAyNDB6Il19LERqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1MDEiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LEFqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTRlNSIsIk0zNDguOCAzMkMzNDAuNyA0Ni4xIDMzNiA2Mi41IDMzNiA4MGwwIDE2LTI3MiAwIDAgMjI0IDI3MiAwIDAgNjQtMjcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg0LjggMHpNMzM2IDQzMmMwIDE3LjUgNC43IDMzLjkgMTIuOCA0OEwxMjAgNDgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxNiAwek00MzIgMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTI0IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNTYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LE1tZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLW1hZ2ljIixpY29uOls1MTIsNTEyLFsibWFnaWMiXSwiZjBkMCIsIk0zOTguNSAxMi4ybC04OC4yIDg4LjIgMTAxLjMgMTAxLjMgODguMi04OC4yQzUwNy42IDEwNS42IDUxMiA5NSA1MTIgODRzLTQuNC0yMS42LTEyLjItMjkuNUw0NTcuNSAxMi4yQzQ0OS42IDQuNCA0MzkgMCA0MjggMHMtMjEuNiA0LjQtMjkuNSAxMi4yek0yNzYuNCAxMzQuM0wxMi4yIDM5OC41QzQuNCA0MDYuNCAwIDQxNyAwIDQyOHM0LjQgMjEuNiAxMi4yIDI5LjVsNDIuMyA0Mi4zQzYyLjQgNTA3LjYgNzMgNTEyIDg0IDUxMnMyMS42LTQuNCAyOS41LTEyLjJMMzc3LjcgMjM1LjYgMjc2LjQgMTM0LjN6Il19LFBqdD1NbWUsRWp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyYWluIixpY29uOls1MTIsNTEyLFsxMjk1MDRdLCJmNWRjIiwiTTEyMCA1NmMwLTMwLjkgMjUuMS01NiA1Ni01NmwyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0yOS44IDAtNTQuOS0yMC40LTYyLTQ4LS43IDAtMS4zIDAtMiAwLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtMTggNi0zNC42IDE2LTQ4LTE5LjQtMTQuNi0zMi0zNy44LTMyLTY0IDAtMzAuOSAxNy42LTU3LjggNDMuMi03MS4xLTcuMS0xMi0xMS4yLTI2LTExLjItNDAuOSAwLTQ0LjIgMzUuOC04MCA4MC04MGwwLTI0em0yNzIgMGwwIDI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTUtNC4xIDI5LTExLjIgNDAuOSAyNS43IDEzLjMgNDMuMiA0MC4xIDQzLjIgNzEuMSAwIDI2LjItMTIuNiA0OS40LTMyIDY0IDEwIDEzLjQgMTYgMzAgMTYgNDggMCA0NC4yLTM1LjggODAtODAgODAtLjcgMC0xLjMgMC0yIDAtNy4xIDI3LjYtMzIuMiA0OC02MiA0OGwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnoiXX0sSWp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWVmY2FzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmNDY5IiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptODAgMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxOanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1MTIiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFJqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWNvbW1pdCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4NiIsIk0yODggMzM2YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xNTYuOC00OEM0MzAgMzYxIDM2NS40IDQxNiAyODggNDE2UzE0NiAzNjEgMTMxLjIgMjg4TDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OS4yIDBDMTQ2IDE1MSAyMTAuNiA5NiAyODggOTZzMTQyIDU1IDE1Ni44IDEyOGw5OS4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk5LjIgMHoiXX0sT2p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1icmVhc3RmZWVkaW5nIixpY29uOls0NDgsNTEyLFtdLCJlNTNhIiwiTTIyNCAwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00MzYuOCAzODIuOEwzNzMuNSA0NjJjLTE2LjYgMjAuNy00Ni44IDI0LjEtNjcuNSA3LjUtMTcuNi0xNC4xLTIyLjctMzguMS0xMy41LTU3LjdsLS43LS4xYy0zOC45LTUuNi03NC4zLTI1LjEtOTkuNy01NC44bDAtMzYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgLjggMCAxLjYgLjEgMi40bDEwMS40IDUwLjdjMjMuNyAxMS45IDMzLjMgNDAuNyAyMS41IDY0LjRzLTQwLjcgMzMuMy02NC40IDIxLjVMMjcuMiA0MjcuM2MtMS4xLS41LTIuMi0xLjEtMy4zLTEuNy00LjktMi44LTkuMi02LjQtMTIuNi0xMC42LTQuNi01LjQtNy44LTExLjctOS42LTE4LjQtMy4zLTEyLTEuOS0yNS4yIDQuOC0zNi42IC42LTEuMSAxLjMtMi4yIDItMy4yTDc1LjYgMjU2LjFjMjYuNy00MC4xIDcxLjctNjQuMSAxMTkuOC02NC4xbDc1LjIgMGM0Ni41IDAgOTAuMSAyMi41IDExNy4yIDYwLjNsNTAuNyA3MC45YzIuMiAzIDQgNi4xIDUuNSA5LjQgMi45IDYuNyA0LjMgMTMuOCA0IDIwLjgtLjMgMTAuNi00LjIgMjEtMTEuMiAyOS40ek0zMjAgMzMyYTQ0IDQ0IDAgMSAwIC04OCAwIDQ0IDQ0IDAgMSAwIDg4IDB6Il19LEZqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmF5cyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0ZCIsIk0zMTIuNSAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43bDQ2LjMgNjIuNGMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUMzMzguNSAxMzIgMjk4LjggMTEyIDI1Ni41IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42bDQ2LjMtNjIuNCAwIDI3NS4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTcuNSA3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw4MCA4MGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDEuNSA3QzMyLjEtMi4zIDE2LjktMi4zIDcuNSA3em00NjQgMGwtODAgODBjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwek03LjUgNTA1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXptNDY0IDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw4MCA4MHoiXX0sQmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hbmF0LXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDUiLCJNMTkyIDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyAxMDkuMyAwIDE5MC4xIDAgMjg4TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC02Mi41IDQ0LjgtMTE0LjUgMTA0LTEyNS44TDE2OCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI5My44YzU5LjIgMTEuMiAxMDQgNjMuMyAxMDQgMTI1LjhsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTk3LjktNzMuMy0xNzguNy0xNjgtMTkwLjVMMjE2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxrbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydCIsaWNvbjpbMzg0LDUxMixbInVuc29ydGVkIl0sImYwZGMiLCJNMi40IDIwNC4yYzUgMTIgMTYuNiAxOS44IDI5LjYgMTkuOGwzMjAgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0Ljl6bTAgMTAzLjVjLTUgMTItMi4yIDI1LjcgNi45IDM0LjlsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHoiXX0sSGp0PWttZSxTbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXJhZGlhdGlvbiIsaWNvbjpbNTEyLDUxMixbOTc2MiwicmFkaWF0aW9uLWFsdCJdLCJmN2JhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTgwIDBsNjQuMyAwYzguNyAwIDE1LjctNy4xIDE3LjMtMTUuNiA0LjQtMjQuNCAxOC4xLTQ1LjUgMzcuMi01OS43IDcuNC01LjUgMTAuNi0xNS42IDYtMjMuNmwtMzIuNS01Ni4zYy00LjMtNy41LTEzLjktMTAuMy0yMS4yLTUuNS00OC4yIDMxLjUtODEuMyA4NC4yLTg2LjMgMTQ0LjgtLjcgOC44IDYuNSAxNiAxNS4zIDE2em0xMzcuOSA4OS44Yy04LjUtMy43LTE4LjgtMS40LTIzLjUgNi42bC0zMSA1My44Yy00LjMgNy41LTEuOSAxNy4yIDUuOCAyMS4xIDI2LjEgMTMuMiA1NS41IDIwLjcgODYuOCAyMC43czYwLjctNy41IDg2LjgtMjAuN2M3LjctMy45IDEwLjEtMTMuNiA1LjgtMjEuMWwtMzEtNTMuOGMtNC42LTgtMTUtMTAuMy0yMy41LTYuNi0xMS43IDUtMjQuNSA3LjgtMzguMSA3LjhzLTI2LjQtMi44LTM4LjEtNy44ek0zNTAuNCAyNDAuNGMxLjYgOC42IDguNSAxNS42IDE3LjMgMTUuNmw2NC4zIDBjOC44IDAgMTYuMS03LjIgMTUuMy0xNi01LTYwLjYtMzguMS0xMTMuMi04Ni4zLTE0NC44LTcuMy00LjgtMTYuOC0yLTIxLjIgNS41TDMwNy4zIDE1N2MtNC42IDgtMS40IDE4LjEgNiAyMy42IDE5LjEgMTQuMiAzMi43IDM1LjQgMzcuMiA1OS43ek0yNTYgMzA1LjdhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxxanQ9U21lLFZqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtY29kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjVmYyIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4MSAyMDlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTM5MyAxNzVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LGpqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5rIixpY29uOls1MTIsNTEyLFtdLCJlMDZkIiwiTTI4OCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyIDE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDE5Mi02NCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC04MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgMC00MGMwLTQuNCAzLjYtOCA4LThsNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA0MC02NCAwIDAtMTkyeiJdfSxVanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS13YXRlci1wdW1wIixpY29uOls2NDAsNTEyLFtdLCJlNGI2IiwiTTE0NCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzYtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA3OS42YzE3LjYtMiAzNiAyLjUgNTEuMyAxNCAzLjQgMi42IDYuMSAxLjQgOS44LS4zbC44LS40YzUuNy0yLjYgMTIuOS02LjkgMjEuNy0xMy41IDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuMy0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDEwLjctOC4xIDIyLjktMTIuNyAzNS4zLTE0LjFsMC03OS41YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC01NiAwIDAtMTQyLjEgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ5NyAzOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTg4IDg4Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgMCAxNDIuMS0xMzYgMCAwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwxNDQgMzJ6TTQ3NC42IDQ3Ni4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDgyLjMgMTcuNiA0OTAuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6Il19LHptZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzLXNsYXNoIixpY29uOls1NzYsNTEyLFsibWljcm9waG9uZS1hbHQtc2xhc2giXSwiZjUzOSIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTUxIDE1MSAwLTMwLjJjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMzI4IDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtMS45IDIyLjktMTEuOCA0My40LTI2LjkgNTlsMzMuOSAzMy45YzI1LjUtMjYgNDEuMy02MS42IDQxLjMtMTAwLjlsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA1Mi42LTIxLjEgMTAwLjItNTUuMyAxMzQuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXpNMjk3LjggMzY3LjdsNDEuNCA0MS40Yy04LjggMi40LTE3LjkgNC4zLTI3LjMgNS40bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUMxNjkuMyA0MDIuNyA5NiAzMjEuOSA5NiAyMjRsMC00MGMwLTUuMSAxLjYtOS45IDQuNC0xMy44bDQzLjYgNDMuNiAwIDEwLjJjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDQgMy4zIDAgNi42LS4xIDkuOC0uM3oiXX0sV2p0PXptZSxHanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VydmVyIixpY29uOls0NDgsNTEyLFtdLCJmMjMzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAyODh6bTIxNiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTU2IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGplZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtOTguNS03OS44LTE3OC4zLTE3OC4zLTE3OC4zbC01OS40IDB6Il19LFlqdD1qZWUsS2p0PWplZSxaanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjg4LjIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDYyLjEtMTUtMTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNDkgNDkgMCA3MC42LTYxLjItMzUuMy0xNy45LTY2LjljLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjMgOTggOTguNyAxMTAuOGw1LjUgMjAuNS01My43LTMxQzM1LjIgOTEuNSAxNS42IDk2LjcgNi44IDExMnMtMy42IDM0LjkgMTEuNyA0My43bDUzLjcgMzEtMjAuNSA1LjVjLTEyLjggMy40LTIwLjQgMTYuNi0xNyAyOS40czE2LjYgMjAuNCAyOS40IDE3bDY2LjktMTcuOSA2MS4yIDM1LjMtNjEuMiAzNS4zLTY2LjktMTcuOWMtMTIuOC0zLjQtMjYgNC4yLTI5LjQgMTdzNC4yIDI2IDE3IDI5LjRsMjAuNSA1LjUtNTMuNyAzMUMzLjIgMzY1LjEtMiAzODQuNyA2LjggNDAwczI4LjQgMjAuNiA0My43IDExLjdsNTMuNy0zMS01LjUgMjAuNWMtMy40IDEyLjggNC4yIDI2IDE3IDI5LjRzMjYtNC4yIDI5LjQtMTdsMTcuOS02Ni45IDYxLjItMzUuMyAwIDcwLjYtNDkgNDljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNS0xNSAwIDYyLjFjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTYyLjEgMTUgMTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00OS00OSAwLTcwLjYgNjEuMiAzNS4zIDE3LjkgNjYuOWMzLjQgMTIuOCAxNi42IDIwLjQgMjkuNCAxN3MyMC40LTE2LjYgMTctMjkuNGwtNS41LTIwLjUgNTMuNyAzMWMxNS4zIDguOCAzNC45IDMuNiA0My43LTExLjdzMy42LTM0LjktMTEuNy00My43bC01My43LTMxIDIwLjUtNS41YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNjYuOSAxNy45LTYxLjItMzUuMyA2MS4yLTM1LjMgNjYuOSAxNy45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMjAuNS01LjUgNTMuNy0zMWMxNS4zLTguOCAyMC42LTI4LjQgMTEuNy00My43cy0yOC40LTIwLjUtNDMuNy0xMS43bC01My43IDMxIDUuNS0yMC41YzMuNC0xMi44LTQuMi0yNi0xNy0yOS40cy0yNiA0LjItMjkuNCAxN2wtMTcuOSA2Ni45LTYxLjIgMzUuMyAwLTcwLjYgNDktNDljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTUgMTUgMC02Mi4xeiJdfSxYanQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGF1cnVzIixpY29uOlszODQsNTEyLFtdLCJlODRmIiwiTTMzNi0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU4LjUtMjguNiAxMTAuMy03Mi41IDE0Mi4zIDUzLjIgMzQuMSA4OC41IDkzLjggODguNSAxNjEuNyAwIDEwNi04NiAxOTItMTkyIDE5MlMwIDQyNiAwIDMyMEMwIDI1Mi4xIDM1LjMgMTkyLjQgODguNSAxNTguMyA0NC42IDEyNi4zIDE2IDc0LjUgMTYgMTYgMTYtMS43IDMwLjMtMTYgNDgtMTZTODAtMS43IDgwIDE2YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyUzMwNCA3Ny45IDMwNCAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTkyIDE5MmExMjggMTI4IDAgMSAwIDAgMjU2IDEyOCAxMjggMCAxIDAgMC0yNTZ6Il19LFFqdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJza3VsbC1jcm9zc2JvbmVzIixpY29uOls0NDgsNTEyLFsxMjgzNjksOTc2MF0sImY3MTQiLCJNMzg0IDE0NEMzODQgNjQuNSAzMTIuNCAwIDIyNCAwUzY0IDY0LjUgNjQgMTQ0YzAgNDcuMSAyNS4xIDg4LjkgNjQgMTE1LjJsMCAyOC44YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjguOGMzOC45LTI2LjMgNjQtNjguMSA2NC0xMTUuMnpNMTYwIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0NS41IDMzOS43Yy02LjgtMTYuMy0yNS41LTI0LTQxLjgtMTcuMkwyMjQgMzk3LjMgNDQuMyAzMjIuNWMtMTYuMy02LjgtMzUgLjktNDEuOCAxNy4ycy45IDM1IDE3LjIgNDEuOEwxNDAuOCA0MzIgMTkuNyA0ODIuNUMzLjQgNDg5LjMtNC4zIDUwOCAyLjUgNTI0LjNzMjUuNSAyNCA0MS44IDE3LjJMMjI0IDQ2Ni43IDQwMy43IDU0MS41YzE2LjMgNi44IDM1LS45IDQxLjgtMTcuMnMtLjktMzUtMTcuMi00MS44TDMwNy4yIDQzMiA0MjguMyAzODEuNWMxNi4zLTYuOCAyNC0yNS41IDE3LjItNDEuOHoiXX0sSmp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlc28tc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTIyMiIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgNjQtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMzItMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiA5NiAwYzY1LjYgMCAxMjItMzkuNSAxNDYuNy05NmwzNy4zIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0LjggMGMuNS01LjMgLjgtMTAuNiAuOC0xNnMtLjMtMTAuNy0uOC0xNmwyNC44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM3LjMgMEMzNjIgNzEuNSAzMDUuNiAzMiAyNDAgMzJMMTEyIDMyem0xOTkuNiA5NmwtMTY3LjYgMCAwLTMyIDk2IDBjMjguNCAwIDU0IDEyLjQgNzEuNiAzMnpNMTQ0IDE3NmwxOTAuNyAwYy45IDUuMiAxLjMgMTAuNSAxLjMgMTZzLS41IDEwLjgtMS4zIDE2bC0xOTAuNyAwIDAtMzJ6bTE2Ny42IDgwYy0xNy42IDE5LjYtNDMuMSAzMi03MS42IDMybC05NiAwIDAtMzIgMTY3LjYgMHoiXX0sZVV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtZ2xhc3MiLGljb246WzMyMCw1MTIsWzEyNzg2M10sImY0ZTMiLCJNMzIuNiAyNS43QzM1LjYgMTAuOCA0OC43IDAgNjQgMEwyNTYgMGMxNS4zIDAgMjguNCAxMC44IDMxLjQgMjUuN0wzMTYuOCAxNzNjMi4xIDEwLjUgMy4yIDIxLjIgMy4yIDMybDAgM2MwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDExNS4yIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xMTUuMkM1NSAzNTAgMCAyODUuNCAwIDIwOGwwLTNjMC0xMC43IDEuMS0yMS40IDMuMi0zMkwzMi42IDI1Ljd6TTc3LjQgMTI4bDE2NS4xIDAtMTIuOC02NC0xMzkuNSAwLTEyLjggNjR6Il19LFdiPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWhhbGYiLGljb246WzMyMCw1MTIsWzEyNzc3NywidGVtcGVyYXR1cmUtMiIsInRoZXJtb21ldGVyLTIiLCJ0aGVybW9tZXRlci1oYWxmIl0sImYyYzkiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtOTIuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LHRVdD1XYixhVXQ9V2IsclV0PVdiLHNVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aWNrZXQiLGljb246WzU3Niw1MTIsWzEyNzkwM10sImYxNDUiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA2NEMwIDIwMC44IDcuNCAyMDcuNyAxNS43IDIxMC42IDM0LjUgMjE3LjEgNDggMjM1IDQ4IDI1NnMtMTMuNSAzOC45LTMyLjMgNDUuNEM3LjQgMzA0LjMgMCAzMTEuMiAwIDMyMGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC04LjgtNy40LTE1LjctMTUuNy0xOC42LTE4LjgtNi41LTMyLjMtMjQuNC0zMi4zLTQ1LjRzMTMuNS0zOC45IDMyLjMtNDUuNGM4LjMtMi45IDE1LjctOS44IDE1LjctMTguNmwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek00MTYgMzM2bDAtMTYwLTI1NiAwIDAgMTYwIDI1NiAwek0xMTIgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yODggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LGlVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVhdC1hd24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTk4IiwiTTQ5NiA1NzZhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek04MSA1MjljLTkuNCA5LjMtMjQuNSA5LjMtMzMuOSAwLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDgxIDUyOXptMzAuMi0yOTQuNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjMgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDEyIDEyYy0uOCA3LTEuMiAxNC4yLTEuMiAyMS40IDAgMjAgMyAzOS4zIDguNyA1Ny40LTM2LjggMjEuOC04NSAxNy0xMTYuNi0xNC43TDE2NS42IDQ0NC4zIDgxIDUyOUM2OS43IDUxNy43IDU4LjQgNTA2LjMgNDcgNDk1bDg0LjctODQuNy0zMC41LTMwLjVjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NiA0NzZhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpNMjE1LjIgMTMwLjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4zIDgzLjkgMjQuMi01LjkgNTAuMS0yLjEgNzEuOSAxMC44LTMyLjIgMjQuOS01Ni4yIDU5LjgtNjcuNCAxMDAuMS0zLjgtMi44LTcuNS02LTExLTkuNWwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek01MjYuNyAxNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMCA4LjggOC44IDkuMyAyMi43IDEuNyAzMi4xTDU2MC42IDQ5IDQ0Ni4yIDE2My40YzcuNyAxIDE1LjMgMyAyMi41IDUuOUw1MjcgMTExYzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTUyLjcgNTIuNyAzOSAzOWMzLjIgMy4yIDQuNyA3LjQgNC43IDExLjYtMTcuNy01LjQtMzYuNS04LjMtNTUuOS04LjMtMzQuMiAwLTY2LjMgOC45LTk0LjEgMjQuNmwtOTIuNy05Mi43Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjhsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xTDQ2NSA0OSA0MDYuNyAxMDcuM2MyLjggNy4xIDQuNyAxNC41IDUuOCAyMi4xTDUyNi43IDE1eiJdfSxvVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXR1cm4tcmlnaHQiLGljb246WzQ0OCw1MTIsW10sImU0YzAiLCJNMzEzLjQtNi42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzM4LjcgMTI4IDEyOCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCAyNDEuNyAwIDIyNGwwLTMyQzAgMTIxLjMgNTcuMyA2NCAxMjggNjRsMjEwLjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zem0tOTYgMjU2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQyLjcgMzg0IDk2IDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4bDAtMzJjMC01MyA0My05NiA5Ni05NmwxNDYuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6Il19LG5VdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5keS1jYW5lIixpY29uOls0NDgsNTEyLFtdLCJmNzg2IiwiTTQyMS44IDM5LjZDNDUyIDg1LjIgNDU2LjUgMTQyLjkgNDM1LjEgMTkybC0xNjUuNCAwIDQxLjQtNDEuNGMuOC0uOCAxLjUtMS42IDIuMi0yLjRMNDIxLjggMzkuNnpNMjY4IDEwMi45Yy0uOCAuNy0xLjYgMS40LTIuNCAyLjJsLTI4LjEgMjguMWMtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41TDE3NSAxNC42QzIyOS45LTQwLjIgMzE0LjUtNDYuNyAzNzYuNS01LjZMMjY4IDEwMi45ek0xMjUuNyAzMzZsODAtODAgMTgxIDAtODIuNSA4Mi41IDAtMi41LTE3OC41IDB6bTExNyA2NEwxNDEuNCA1MDEuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41bDEwLjctMTAuNyAxODEgMHoiXX0sbFV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWVsY2hhaXIiLGljb246WzUxMiw1MTIsW10sImYxOTMiLCJNMTM2IDQwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTE3LjkgMTk3LjZsMTIuNiA2M2MtMzguNiAxMi40LTY2LjUgNDguNy02Ni41IDkxLjQgMCA1MyA0MyA5NiA5NiA5NiAzNS42IDAgNjYuNy0xOS40IDgzLjMtNDguMiAyLjMgLjEgNC42IC4yIDcgLjJsNC4xIDBjMSAwIDIuMSAwIDMuMSAwbDU1LjIgMGMtMjAuNCA2NC45LTgxIDExMi0xNTIuNyAxMTItODguNCAwLTE2MC03MS42LTE2MC0xNjAgMC03My44IDUwLTEzNS45IDExNy45LTE1NC40em0xNDguNi0yOC4xbDIzLjcgMTE4LjUgNjAuNSAwYzMzLjMgMCA2My4yIDIwLjcgNzQuOSA1MS45bDI1LjUgNjggMTguNy02LjJjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVsLTQ4IDE2Yy0xNi4zIDUuNC0zNC0zLTQwLjEtMTkuMWwtMzYuMy05Ni45Yy0yLjMtNi4yLTguMy0xMC40LTE1LTEwLjRsLTg2LjEgMGMtLjQgMC0uOCAwLTEuMyAwbC0xMy4xIDBjLTMwLjUgMC01Ni44LTIxLjUtNjIuOC01MS40TDE2NS4zIDE4OS43Yy02LjQtMzEuOSAxOC02MS43IDUwLjYtNjEuNyAyNC42IDAgNDUuOCAxNy40IDUwLjYgNDEuNXoiXX0sY1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwZWxsLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJmODkxIiwiTTEyMCAzMmMtNDguNiAwLTg4IDM5LjQtODggODhsMCAxNjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTY4YzAtNDguNi0zOS40LTg4LTg4LTg4bC0xNiAwem00MCAxMjhsLTY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDB6TTMwNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMGM0OC42IDAgODgtMzkuNCA4OC04OCAwLTIzLjYtOS4zLTQ1LTI0LjQtNjAuOCAxMC4zLTE0LjQgMTYuNC0zMi4xIDE2LjQtNTEuMiAwLTQ4LjYtMzkuNC04OC04OC04OGwtNjQgMHptNjQgMTEybC0zMiAwIDAtNDggMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpNMzM2IDI1NmwwLTQ4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDB6bTIzMyA4NGMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVsLTEwNS43IDEzMi4xLTM4LjctMzguN2MtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi40IDYuNCAxNS4zIDkuOCAyNC40IDkuM3MxNy41LTQuOSAyMy4yLTEyTDU2OSAzNDB6Il19LGRVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtb2ZmIixpY29uOlszMjAsNTEyLFtdLCJmMDI2IiwiTTk2IDM1MmwtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw0OCAwIDEzNC4xLTExOS4yYzYuNC01LjcgMTQuNi04LjggMjMuMS04LjggMTkuMiAwIDM0LjggMTUuNiAzNC44IDM0LjhsMCAzNzguNGMwIDE5LjItMTUuNiAzNC44LTM0LjggMzQuOC04LjUgMC0xNi43LTMuMS0yMy4xLTguOEw5NiAzNTJ6Il19LHVVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsdW5ncyIsaWNvbjpbNTc2LDUxMixbMTI5NzI5XSwiZjYwNCIsIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNDEuOS0zMiAxOS4yIDAtMTE2LjdjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDIyIDAgNDMuNy01LjEgNjMuNC0xNWw1LTIuNWMzNy40LTE4LjcgNjEtNTYuOSA2MS05OC44bDAtMTI4IDY0LTM4LjQgNjQgMzguNCAwIDEyOGMwIDQxLjggMjMuNiA4MC4xIDYxIDk4LjhsNSAyLjVjMTkuNyA5LjggNDEuNCAxNSA2My40IDE1IDUyLjIgMCA5NC41LTQyLjMgOTQuNS05NC41bDAtNi4yYzAtMTExLjEtMzYuNy0yMTktMTA0LjQtMzA3TDQyOC45IDQ4LjdjLTguMS0xMC42LTIwLjctMTYuNy0zNC0xNi43LTIzLjcgMC00Mi45IDE5LjItNDIuOSA0Mi45bDAgMTE4LjItMzItMTkuMiAwLTE0MS45eiJdfSxwVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9va21hcmsiLGljb246WzM4NCw1MTIsWzEyODI3OCw2MTU5MV0sImYwMmUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0ODBjMCAxMS41IDYuMiAyMi4yIDE2LjIgMjcuOHMyMi4zIDUuNSAzMi4yLS40TDE5MiA0MjEuMyAzMzUuNSA1MDcuNGM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMzg0IDQ5MS41IDM4NCA0ODBsMC00MTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHoiXX0sZlV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMmEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0em03MiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyem0yMDgtOGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0tOTYgMGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxVZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC1vbCIsaWNvbjpbNTEyLDUxMixbImxpc3QtMS0yIiwibGlzdC1udW1lcmljIl0sImYwY2IiLCJNMCA3MkMwIDU4LjggMTAuNyA0OCAyNCA0OGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTgwLTI0IDBDMTAuNyA5NiAwIDg1LjMgMCA3MnpNMzAuNCAzMDEuMkM0MS44IDI5Mi42IDU1LjcgMjg4IDcwIDI4OGw0LjkgMGMzMy43IDAgNjEuMSAyNy40IDYxLjEgNjEuMSAwIDE5LjYtOS40IDM3LjktMjUuMiA0OS40bC0yNCAxNy41IDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTAuNyAwQzEzLjEgNDY0IDAgNDUwLjkgMCA0MzQuNyAwIDQyNS4zIDQuNSA0MTYuNSAxMi4xIDQxMWw3MC41LTUxLjNjMy40LTIuNSA1LjQtNi40IDUuNC0xMC42IDAtNy4yLTUuOS0xMy4xLTEzLjEtMTMuMUw3MCAzMzZjLTMuOSAwLTcuNyAxLjMtMTAuOCAzLjZMMzguNCAzNTUuMmMtMTAuNiA4LTI1LjYgNS44LTMzLjYtNC44Uy0xIDMyNC44IDkuNiAzMTYuOGwyMC44LTE1LjZ6TTIyNCA2NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxoVXQ9VWVlLG1VdD1VZWUsZ1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNWExIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LGJVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlIixpY29uOls1MTIsNTEyLFtdLCJmMWIyIiwiTTIyNC4zLTIuNWMxOS44LTExLjQgNDQuMi0xMS40IDY0IDBMNDY0LjIgOTljMTkuOCAxMS40IDMyIDMyLjYgMzIgNTUuNGwwIDIwM2MwIDIyLjktMTIuMiA0NC0zMiA1NS40TDI4OC4zIDUxNC41Yy0xOS44IDExLjQtNDQuMiAxMS40LTY0IDBMNDguNSA0MTNjLTE5LjgtMTEuNC0zMi0zMi42LTMyLTU1LjRsMC0yMDNjMC0yMi45IDEyLjItNDQgMzItNTUuNEwyMjQuMy0yLjV6bTIwNy44IDM2MGwwLTE2Ni4xLTE0My44IDgzIDAgMTY2LjEgMTQzLjgtODN6Il19LHZVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXBlIixpY29uOls1NzYsNTEyLFtdLCJmNGRiIiwiTTQxMi44IDQxNmM0MS41LTQwLjcgNjcuMi05Ny4zIDY3LjItMTYwIDAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRTMzIgMTMyLjMgMzIgMjU2IDEzMi4zIDQ4MCAyNTYgNDgwbDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMzEuMiAwek0yNTYgMTYwYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem00OCA5NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSx4VXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9tYiIsaWNvbjpbNTc2LDUxMixbMTI4MTYzXSwiZjFlMiIsIk00ODAtMTZjNi45IDAgMTMgNC40IDE1LjIgMTAuOWwxMy41IDQwLjQgNDAuNCAxMy41QzU1NS42IDUxIDU2MCA1Ny4xIDU2MCA2NHMtNC40IDEzLTEwLjkgMTUuMmwtNDAuNCAxMy41LTEzLjUgNDAuNEM0OTMgMTM5LjYgNDg2LjkgMTQ0IDQ4MCAxNDRzLTEzLTQuNC0xNS4yLTEwLjlsLTEzLjUtNDAuNC00MC40LTEzLjVDNDA0LjQgNzcgNDAwIDcwLjkgNDAwIDY0czQuNC0xMyAxMC45LTE1LjJsNDAuNC0xMy41IDEzLjUtNDAuNEM0NjctMTEuNiA0NzMuMS0xNiA0ODAtMTZ6TTMyMS40IDk3LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEwLjkgMTAuOWM3LjkgMjIgMTIuMiA0NS43IDEyLjIgNzAuNSAwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTMzIgNDE4LjkgMzIgMzA0IDEyNS4xIDk2IDI0MCA5NmMyNC43IDAgNDguNSA0LjMgNzAuNSAxMi4zbDEwLjktMTAuOXpNMTQ0IDMwNGMwLTUzIDQzLTk2IDk2LTk2IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0eiJdfSxDbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbImJhbGFuY2Utc2NhbGUtbGVmdCJdLCJmNTE1IiwiTTUxOS44IDYyLjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNVM1MTYuMy0zLjkgNDk5LjYgMS42bC0xMTMgMzcuN2MtMTMuOS0yMy41LTM5LjYtMzkuMy02OC45LTM5LjMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCAzIC4yIDUuOSAuNSA4LjhMMTE1LjYgMTI5LjZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmwxMzUuNS00NS4yYzQuNSAzLjIgOS4zIDUuOSAxNC40IDguMmwwIDMyNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTI5NC43YzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzNy4zIDI4OGw3Mi40LTEyNC4yIDcyLjQgMTI0LjItMTQ0LjkgMHptNzIuNCA5NmM2Mi45IDAgMTE1LjItMzQgMTI2LTc4LjkgMi42LTExLTEtMjIuMy02LjctMzIuMUw1MzMuOCAxMDkuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDM5MC40IDI3My4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xIDEwLjggNDQuOCA2My4xIDc4LjkgMTI2IDc4Ljl6TTEyNi44IDI5MS44bDcyLjQgMTI0LjItMTQ0LjkgMCA3Mi40LTEyNC4yek0uOSA0MzMuMUMxMS43IDQ3OCA2NCA1MTIgMTI2LjggNTEyczExNS4yLTM0IDEyNi03OC45YzIuNi0xMS0xLTIyLjMtNi43LTMyLjFMMTUwLjkgMjM3LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEw3LjYgNDAxLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjF6Il19LHlVdD1DbWUsX21lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1sZWZ0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWxlZnQiXSwiZjE5MSIsIk0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2ek0xMjggMjU2YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42eiJdfSx3VXQ9X21lLE1VdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlciIsaWNvbjpbNTc2LDUxMixbMTI4MjA3XSwiZjU0NSIsIk0yMDkuMSA1MTYuMmMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjguMSA0MDMuMWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsMTctMTcgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAzMy45LTMzLjkgNTAuOSA1MC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTAuOS01MC45IDMzLjktMzMuOSA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMTctMTdjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBMNTQ4LjUgMTA4LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjA5LjEgNTE2LjJ6Il19LGtVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpIixpY29uOlszMjAsNTEyLFsxMDVdLCI0OSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOTYgMCAwIDMyMC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwIDAtMzIwIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LFdlZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUteG1hcmsiLGljb246WzU3Niw1MTIsWyJ2b2x1bWUtbXV0ZSIsInZvbHVtZS10aW1lcyJdLCJmNmE5IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek0zNjcgMTc1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw0NyA0Ny00NyA0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDctNDcgNDctNDdjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNDcgNDctNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxTVXQ9V2VlLHpVdD1XZWUsQ1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyY2h3YXkiLGljb246WzUxMiw1MTIsW10sImY1NTciLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjcyLTQ0OCAwIDAgMjcyeiJdfSxUbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRpZ2dpbmciLGljb246WzU3Niw1MTIsWyJkaWdnaW5nIl0sImY4NWUiLCJNMjA4IDQwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTAuNSAxODEuM2M1LjktMTEuOSAyMC4zLTE2LjcgMzIuMi0xMC43bDI0LjYgMTIuMyAxMi4yLTIwLjRjMTguOS0zMS41IDUzLjItNTAuNSA4OS42LTUwLjUgNDYuMiAwIDg3LjcgMzAuNSAxMDAuNSA3NS40bDMyLjIgMTEyLjcgOTIuOSA0Ni40IDI1LjgtNDNjNS44LTkuNiAxNi4yLTE1LjUgMjcuNC0xNS41czIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzU1NS41IDUxMiA1NDQgNTEybC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMkwzNzAgMzg3LjggMjEuMyAyMTMuNWMtMTEuOS01LjktMTYuNy0yMC4zLTEwLjctMzIuMnpNOTQuMyAzMDcuNGwxMTIgNTZjMTAuOCA1LjQgMTcuNyAxNi41IDE3LjcgMjguNmwwIDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjguMi02MS4zLTMwLjctMzYuMyAxMDljLTUuNiAxNi44LTIzLjcgMjUuOC00MC41IDIwLjJTLTMuOSA0ODYuNiAxLjcgNDY5LjlsNDgtMTQ0YzIuOS04LjggOS41LTE1LjkgMTguMS0xOS40czE4LjMtMy4yIDI2LjYgLjl6Il19LF9VdD1UbWUsR2VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLWhpZ2giLGljb246WzUxMiw1MTIsWzYyNDYxLCJ0YWNob21ldGVyLWFsdCIsInRhY2hvbWV0ZXItYWx0LWZhc3QiXSwiZjYyNSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHpNMTc2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05NiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zNTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sVFV0PUdlZSxMVXQ9R2VlLCRVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW5kZXJsZXNzIixpY29uOlszODQsNTEyLFtdLCJmMjJkIiwiTTE5MiAxMjhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2em0wIDMyMGExOTIgMTkyIDAgMSAwIDAtMzg0IDE5MiAxOTIgMCAxIDAgMCAzODR6Il19LERVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4iLGljb246WzY0MCw1MTIsWzk5MjVdLCJmNmM0IiwiTTIwOC4zIDE5MmM0My4xIDAgODAuNSAyNC40IDk5LjIgNjAuMSAxNC43LTE3LjIgMzYuNC0yOC4xIDYwLjgtMjguMSA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC45LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0zMjAgMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNy03OC41IDY2LTkxLjItMS4zLTYuOC0yLTEzLjctMi0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyem0xOTItMjIzLjhjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFsNDcuMyA3MC40IDgzLjMtMTYuM2M1LjItMSAxMC42IC43IDE0LjMgNC40IDMuOCAzLjggNS40IDkuMiA0LjQgMTQuNGwtMTYuMyA4My4zIDcwLjQgNDcuM2M0LjQgMyA3LjEgOCA3LjEgMTMuMyAwIDUuMy0yLjYgMTAuMy03IDEzLjJsLTcwLjQgNDcuMyAxNC41IDc0LjJjLTE3LjItMjEuNy00MC40LTM4LjQtNjcuMi00Ny4zLTIuNS0xMi43LTYuOS0yNC42LTEyLjgtMzUuNyA5LjYtMTQuOSAxNS4yLTMyLjcgMTUuMi01MS43IDAtNTMtNDMtOTYtOTYtOTYtNDcuOSAwLTg3LjYgMzUuMS05NC44IDgwLjktMjAuOS0xNi00NS45LTI3LTczLjEtMzEuMWwyMS41LTE0LjUtMTYuMy04My4yLS4zLTJjLS4zLTQuNiAxLjMtOS4xIDQuNi0xMi40IDMuOC0zLjggOS4yLTUuNCAxNC40LTQuNGw4My4zIDE2LjMgNDcuMy03MC40IDEuMi0xLjZjMy0zLjUgNy40LTUuNSAxMi4xLTUuNXptMCAxNzUuOGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDMuOC0uNSA3LjYtMS40IDExLjEtMjEuNy0xNi45LTQ4LjktMjcuMS03OC42LTI3LjEtNC42IDAtOS4xIC4yLTEzLjUgLjcgNi40LTE5IDI0LjMtMzIuNyA0NS41LTMyLjd6Il19LEl0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NF0sImYwNjEiLCJNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcwLjcgMC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYweiJdfSxZZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlIixpY29uOls1NzYsNTEyLFsxMjkzMDksNjI2NjIsImhhbmRzaGFrZS1hbHQiLCJoYW5kc2hha2Utc2ltcGxlIl0sImYyYjUiLCJNMjY4LjkgODUuMkwxNTIuMyAyMTQuOGMtNC42IDUuMS00LjQgMTMgLjUgMTcuOSAzMC41IDMwLjUgODAgMzAuNSAxMTAuNSAwbDMxLjgtMzEuOGM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE4Mi43TDIyMy40IDY0IDE4My44IDY0Yy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwxMTIgOTYgMCAzMiAwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHoiXX0sQVV0PVllZSxQVXQ9WWVlLExtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2tpaW5nIixpY29uOls1NzYsNTEyLFs5OTc1LCJza2lpbmciXSwiZjdjOSIsIk00MTYgNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0yLjcgMzAwLjljNi4xLTExLjggMjAuNi0xNi4zIDMyLjQtMTAuMmwxOTcuOCAxMDIuNyA2Mi4zLTg3LjItODItOTIuMmMtMTEtMTIuNC0xNi4yLTI3LjUtMTYuMi00Mi40bDExMS42IDUzLjQgNDIuOSA0OC4yYzE0LjkgMTYuNyAxNi4yIDQxLjYgMy4yIDU5LjhsLTY0LjQgOTAuMiAxMjguMyA2Ni42YzEzLjYgNy4xIDI5LjggNy4yIDQzLjYgLjNsMTUuMi03LjZjMTEuOS01LjkgMjYuMy0xLjEgMzIuMiAxMC43czEuMSAyNi4zLTEwLjcgMzIuMmwtMTUuMiA3LjZjLTI3LjUgMTMuNy01OS45IDEzLjUtODcuMi0uN0wxMi45IDMzMy4zQzEuMiAzMjcuMi0zLjQgMzEyLjcgMi43IDMwMC45ek0xMDMgNDkuNmwxOCA4LjcgOC43LTE3LjRjNC03LjkgMTMuNi0xMS4xIDIxLjUtNy4yczExLjEgMTMuNiA3LjIgMjEuNWwtOC41IDE3IDg0LjggNDEgLjQtLjIgNzYuMS0zMy44YzMxLjMtMTMuOSA2Ny45LS43IDgzLjIgMjkuOWwyOC45IDU3LjggNjguNyAyNy41YzE2LjQgNi42IDI0LjQgMjUuMiAxNy44IDQxLjZzLTI1LjIgMjQuNC00MS42IDE3LjhMMzkzLjggMjI0Yy0xMC45LTQuNC0xOS44LTEyLjYtMjUuMS0yMy4xbC0xMS41LTIzLjFjLTE2LjQgOS40LTI1LjkgMTQuOC0yOC41IDE2LjNsLTcuNi0zLjctMTg1LjYtODkuNi05LjIgMTguM2MtNCA3LjktMTMuNiAxMS4xLTIxLjUgNy4ycy0xMS4xLTEzLjYtNy4yLTIxLjVsOS0xNy45LTE3LjYtOC41QzgxLjEgNzQuNiA3Ny44IDY1IDgxLjYgNTdTOTUgNDUuNyAxMDMgNDkuNnoiXX0sRVV0PUxtZSxJVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNGNlIiwiTTY0IDY0bDUxMiAwIDAgMTEyYy0zNy42IDkuNC02NCA0My4yLTY0IDgybDAgNzYuNGMtMjEtOS43LTQzLjUtMTQuNS02Ni0xNC40LTEwIC4xLTIwLjEgMS4xLTMwIDMuMWwwLTM1LjFjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMi43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0yNy43IC4yLTU1LjQgNy44LTgwIDIzbDAtODVjMC0zOC44LTI2LjQtNzIuNi02NC04Mkw2NCA2NHpNNDAzLjQgNDQ0LjFDMzc5LjEgNDYyLjMgMzUxLjEgNDgwIDMyMCA0ODBzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxOVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctbmdvIixpY29uOls1NzYsNTEyLFtdLCJlNGQ3IiwiTTEyOCAwQzkyLjcgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ4IDAgMC0xMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjA4IDAgMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI4IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0zMDQgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTYwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNTIwIDM4MGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtODBjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTE2IDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwxNiAwYzIuMiAwIDQgMS44IDQgNGwwIDgwYzAgMi4yLTEuOCA0LTQgNGwtMTYgMGMtMi4yIDAtNC0xLjgtNC00bDAtODB6bS0xNjggMGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC0yNGMwLTExLTktMjAtMjAtMjBsLTggMGMtMTEgMC0yMCA5LTIwIDIwIDAgNi41IDMuMSAxMi40IDggMTZsMCA4YzAgMi4yLTEuOCA0LTQgNGwtMTYgMGMtMi4yIDAtNC0xLjgtNC00bDAtODBjMC0yLjIgMS44LTQgNC00bDIwLjQgMGMxLjkgOS4xIDkuOSAxNiAxOS42IDE2IDExIDAgMjAtOSAyMC0yMCAwLTE5LjktMTYuMS0zNi0zNi0zNmwtMjQgMGMtMjQuMyAwLTQ0IDE5LjctNDQgNDR6bS05MC4xLTMyLjljLTQuMS04LjMtMTMuNS0xMi43LTIyLjUtMTAuNVMyMjAgMzkwLjcgMjIwIDQwMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQzLjMgMjYuMSA1Mi4yYzQuMSA4LjMgMTMuNSAxMi43IDIyLjUgMTAuNVMzMjQgNTM3LjMgMzI0IDUyOGwwLTEyOGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCA0My4zLTI2LjEtNTIuMnoiXX0sUlV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlnbG9vIixpY29uOls1NzYsNTEyLFtdLCJmN2FlIiwiTTMyMCAzMy44bDAgMTI2LjItMjcxLjUgMGM1MS43LTc3LjIgMTM5LjYtMTI4IDIzOS41LTEyOCAxMC44IDAgMjEuNSAuNiAzMiAxLjh6TTM2OCAxNjBsMC0xMTYuN2M2NiAxOSAxMjIuMiA2MSAxNTkuNSAxMTYuN0wzNjggMTYwek0yMi42IDIwOGw3My40IDAgMCAxMTItOTYgMGMwLTM5LjcgOC03Ny42IDIyLjYtMTEyek0xNzYgMzIwbC0zMiAwIDAtMTEyIDI4OCAwIDAgMTEyLTMyIDAgMCA0OCAxNzYgMCAwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02NCAxNzYgMCAwLTQ4em0zMDQgMGwwLTExMiA3My40IDBDNTY4IDI0Mi40IDU3NiAyODAuMyA1NzYgMzIwbC05NiAwek0yODggMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgwIDEyOCAwIDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjR6Il19LCRtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG9sbGFyLXRvLXNsb3QiLGljb246WzU3Niw1MTIsWyJkb25hdGUiXSwiZjRiOSIsIk05NiAyMjRhMTkyIDE5MiAwIDEgMSAzODQgMCAxOTIgMTkyIDAgMSAxIC0zODQgMHptMTc2LTkybDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDI0OCAyNzJjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB6TTQ4IDM0NGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxPVXQ9JG1lLEZVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5IixpY29uOlszODQsNTEyLFsxMjFdLCI1OSIsIk01OCA0NS40QzQ3LjggMzEgMjcuOCAyNy43IDEzLjQgMzhTLTQuMyA2OC4yIDYgODIuNkwxNjAgMjk4LjMgMTYwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTQ5LjcgMTU0LTIxNS43YzEwLjMtMTQuNCA2LjktMzQuNC03LjQtNDQuNlMzMzYuMiAzMSAzMjYgNDUuNEwxOTIgMjMyLjkgNTggNDUuNHoiXX0sRG1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc21pbGUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTIxLCJzbWlsZS13aW5rIl0sImY0ZGEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxCVXQ9RG1lLEhVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWZvdXIiLGljb246WzQ0OCw1MTIsWzk4NTldLCJmNTI0IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM1MiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEFtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1NzYsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNTYwIDM1LjRjMCAyNS42LTE4LjggNDcuMy00NC4xIDUwLjlMNDY5LjEgOTNjLTEwLjYgMS41LTE5LjYtNy41LTE4LjEtMTguMWw2LjctNDYuN0M0NjEuMyAyLjggNDgzLTE2IDUwOC42LTE2IDUzNy0xNiA1NjAgNyA1NjAgMzUuNHpNNDAzLjUgNjguMWMtNiA0Mi4yIDMwLjIgNzguNCA3Mi40IDcyLjRsMzcuOC01LjRDNTY1LjcgMjMyIDU1MC44IDM1NS4zIDQ2OSA0MzdzLTIwNSA5Ni42LTMwMS45IDQ0LjdsNS40LTM3LjhjNi00Mi4yLTMwLjItNzguNC03Mi40LTcyLjRsLTM3LjggNS40QzEwLjMgMjgwIDI1LjIgMTU2LjcgMTA3IDc1UzMxMi0yMS43IDQwOC45IDMwLjNsLTUuNCAzNy44ek00MTcuOCAyMDFjLTE5LjEgMzYuNC00NS42IDcyLjctNzguOSAxMDZzLTY5LjYgNTkuOC0xMDYgNzguOWMtMTEuMSA1LjgtMTIuNCAyMS40LTEuMSAyNi42IDU5LjIgMjcuNSAxMzEuOCAxNi44IDE4MC42LTMyczU5LjUtMTIxLjQgMzItMTgwLjZjLTUuMy0xMS4zLTIwLjgtMTAtMjYuNiAxLjF6TTExMy45IDI3MC42YzEuNyA4IDkgMTMuNCAxNy4xIDEyLjdsNDMuMS0zLjktMy45IDQzLjFjLS43IDguMSA0LjcgMTUuNSAxMi43IDE3LjFzMTUuOS0yLjkgMTguNC0xMC42bDI4LTg0LjZjMS45LTUuNyAuNC0xMi4xLTMuOS0xNi4zcy0xMC42LTUuOC0xNi4zLTMuOWwtODQuNiAyOGMtNy43IDIuNi0xMi4zIDEwLjUtMTAuNiAxOC41ek0zMTUuMiA5OS4xYy43LTguMS00LjctMTUuNS0xMi43LTE3LjFzLTE1LjkgMi45LTE4LjUgMTAuNmwtMjggODQuNmMtMS45IDUuNy0uNCAxMi4xIDMuOSAxNi4zczEwLjYgNS44IDE2LjMgMy45bDg0LjYtMjhjNy43LTIuNiAxMi4zLTEwLjUgMTAuNi0xOC40cy05LTEzLjQtMTcuMS0xMi43bC00My4xIDMuOSAzLjktNDMuMXpNNjAuMSA0MjUuN2w0Ni43LTYuN2MxMC42LTEuNSAxOS42IDcuNSAxOC4xIDE4LjFsLTYuNyA0Ni43QzExNC43IDUwOS4yIDkzIDUyOCA2Ny40IDUyOCAzOSA1MjggMTYgNTA1IDE2IDQ3Ni42IDE2IDQ1MSAzNC44IDQyOS4zIDYwLjEgNDI1Ljd6Il19LHFVdD1BbWUsVlV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXVkaW8iLGljb246WzM4NCw1MTIsW10sImYxYzciLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6bTUzLjggMTg1LjJjLTkuMS02LjMtMjEuNS00LjEtMjcuOCA1cy00LjEgMjEuNSA1IDI3LjhjMjMuOSAxNi43IDM5LjQgNDQuMyAzOS40IDc1LjVzLTE1LjYgNTguOS0zOS40IDc1LjVjLTkuMSA2LjMtMTEuMyAxOC44LTUgMjcuOHMxOC44IDExLjMgMjcuOCA1YzM0LjEtMjMuOCA1Ni42LTYzLjUgNTYuNi0xMDguM1MyOTYgMjY3LjUgMjYxLjggMjQzLjd6TTgwIDMxMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0yNCAwem0xMjggNzIuMmMwIDEwLjcgMTAuNSAxOC4yIDE4LjkgMTEuNiAxMi45LTEwLjMgMjEuMS0yNi4xIDIxLjEtNDMuOHMtOC4yLTMzLjUtMjEuMS00My44Yy04LjQtNi43LTE4LjkgLjktMTguOSAxMS42bDAgNjQuNXoiXX0salV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1kb3duLXRvLWxpbmUiLGljb246WzUxMiw1MTIsW10sImU0YjgiLCJNMjE0LjYgMzEwLjZsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMjc0LjcgOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0Mi43IDkuNC05LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMjU2IDBsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOS40IDkuNCAwLTI0Mi43YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJ6Il19LFVVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnIixpY29uOls0NDgsNTEyLFsxMDNdLCI0NyIsIk0yMjQgOTZDMTM1LjYgOTYgNjQgMTY3LjYgNjQgMjU2czcxLjYgMTYwIDE2MCAxNjBjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhMMjU2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDQgMGMyNS44IDAgNDkuNiAyMS40IDQ3LjIgNTAuNi05LjUgMTE1LTEwNS44IDIwNS40LTIyMy4yIDIwNS40LTEyMy43IDAtMjI0LTEwMC4zLTIyNC0yMjRTMTAwLjMgMzIgMjI0IDMyYzU3LjQgMCAxMDkuNyAyMS42IDE0OS4zIDU3IDEzLjIgMTEuOCAxNC4zIDMyIDIuNSA0NS4ycy0zMiAxNC4zLTQ1LjIgMi41QzMwMi4zIDExMS40IDI2NSA5NiAyMjQgOTZ6Il19LFdVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWhhcmEiLGljb246WzU3Niw1MTIsW10sImY2YTciLCJNMjczLjYtMy4yYzguNS02LjQgMjAuMy02LjQgMjguOCAwTDQ0My4yIDEwMi40YzguMyA2LjIgMTguNCA5LjYgMjguOCA5LjYgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCA0OCA1OC43IDY0IDEzLjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgNDggMjQuNCAzMiAxNS42IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTEyOCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMi4xIDAgMTcuOS0zMiAwLTQ4LTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMy4zIDAgNTguNy02NCAwLTQ4LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMTAuNCAwIDIwLjUtMy40IDI4LjgtOS42TDI3My42LTMuMnpNMTI4IDM2OGwzMjAgMCAwLTQ4LTMyMCAwIDAgNDh6TTM4NCAxNjBsLTE5MiAwIDAgNDggMTkyIDAgMC00OHoiXX0sR1V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWctY2hlY2tlcmVkIixpY29uOls0NDgsNTEyLFsxMjc5MzddLCJmMTFlIiwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJsMCAxNiA2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjUgNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFsMCAyNzkuN2MwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjQtMzcuOS0xOS04MS40LTIzLjctMTIyLjUtMTMuNEw2NCAzODQgNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6TTY0IDE4Ny4xbDY0LTEzLjkgMCA2NS41LTY0IDEzLjkgMCA2NS41IDQ4LjgtMTIuMmM1LjEtMS4zIDEwLjEtMi40IDE1LjItMy4zbDAtNjMuOSAzOC45LTguNGM4LjMtMS44IDE2LjctMi41IDI1LjEtMi4xbDAtNjRjMTMuNiAuNCAyNy4yIDIuNiA0MC40IDYuNGwyMy42IDYuOSAwIDY2LjctNDEuNy0xMi4zYy03LjMtMi4xLTE0LjgtMy40LTIyLjMtMy44bDAgNzEuNGMyMS44IDEuOSA0My4zIDYuNyA2NCAxNC40bDAtNjkuOCAyMi43IDYuN2MxMy41IDQgMjcuMyA2LjQgNDEuMyA3LjRsMC02NC4yYy03LjgtLjgtMTUuNi0yLjMtMjMuMi00LjVsLTQwLjgtMTIgMC02MmMtMTMtMy44LTI1LjgtOC44LTM4LjItMTUtOC4yLTQuMS0xNi45LTctMjUuOC04LjhsMCA3Mi40Yy0xMy0uNC0yNiAuOC0zOC43IDMuNmwtMjUuMyA1LjUgMC03NS4yLTY0IDE2IDAgNzMuMXpNMzIwIDMzNS43YzE2LjggMS41IDMzLjktLjcgNTAtNi44bDE0LTUuMiAwLTcxLjctNy45IDEuOGMtMTguNCA0LjMtMzcuMyA1LjctNTYuMSA0LjVsMCA3Ny40em02NC0xNDkuNGwwLTcwLjhjLTIwLjkgNi4xLTQyLjQgOS4xLTY0IDkuMWwwIDY5LjRjMTMuOSAxLjQgMjggLjUgNDEuNy0yLjZsMjIuMy01LjJ6Il19LEtlZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUiLGljb246WzUxMiw1MTIsWyJnYXVnZS1zaW1wbGUtbWVkIiwidGFjaG9tZXRlci1hdmVyYWdlIl0sImY2MjkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxZVXQ9S2VlLEtVdD1LZWUsUG1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWxlZnQiLGljb246WzUxMiw1MTIsWyJleGNoYW5nZS1hbHQiXSwiZjM2MiIsIk01MDIuNiAxNTAuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiAyMzYuOSAzNTIgMjI0bDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zem0tMzk3LjMgMzUybC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTYwIDI3NS4xIDE2MCAyODhsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOXoiXX0sWlV0PVBtZSxYVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlsbHMiLGljb246WzUxMiw1MTIsW10sImY0ODQiLCJNNjQgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTItOTYgMCAwLTExMnpNMTc2IDM2OGMwLTQ4LjcgMTguMS05My4yIDQ4LTEyN2wwLTEyOUMyMjQgNTAuMSAxNzMuOSAwIDExMiAwUzAgNTAuMSAwIDExMkwwIDQwMGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMiAzNy4zIDAgNzAuMy0xOC4yIDkwLjctNDYuMy0xNy0yOC42LTI2LjctNjItMjYuNy05Ny43em02NC43IDY3LjRjNC42IDguNyAxNi4zIDkuNyAyMy4zIDIuN0w0MzguMSAyNjRjNy03IDYtMTguNy0yLjctMjMuMy0yMC4xLTEwLjctNDMtMTYuNy02Ny40LTE2LjctNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAyNC4zIDYgNDcuMyAxNi43IDY3LjR6TTI5Ny45IDQ3MmMtNyA3LTYgMTguNyAyLjcgMjMuMyAyMC4xIDEwLjcgNDMgMTYuNyA2Ny40IDE2LjcgNzkuNSAwIDE0NC02NC41IDE0NC0xNDQgMC0yNC4zLTYtNDcuMy0xNi43LTY3LjQtNC42LTguNy0xNi4zLTkuNy0yMy4zLTIuN0wyOTcuOSA0NzJ6Il19LFFVdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBsb3Npb24iLGljb246WzUxMiw1MTIsW10sImU0ZTkiLCJNMjU2LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxNjBjMTIuNCAwIDIyLjcgOS40IDIzLjkgMjEuN0wyOTMuNCAyOTEuNiA0NjcuNiAxMS4zYzYuNy0xMC43IDIwLjUtMTQuNSAzMS43LTguNXMxNS44IDE5LjUgMTAuNiAzMUwzNzIuOCAzMzguNmMyLjIgMi4zIDQuMyA0LjcgNi4zIDcuMWw5Ny4yLTU0LjdjMTAuNS01LjkgMjMuNi0zLjEgMzAuOSA2LjRzNi4zIDIzLTIuMiAzMS41bC04NyA4Ny03MS40IDBjLTEzLjItMzcuMy00OC43LTY0LTkwLjUtNjRzLTc3LjQgMjYuNy05MC41IDY0bC03OS42IDAtNzUuNS01Mi4zQy42IDM1Ny0yLjggMzQ0LjEgMi40IDMzMy41czE3LjQtMTUuOSAyOC43LTEyLjRsOTcuMiAzMC40YzMtMy45IDYuMS03LjYgOS40LTExLjNMNzUuNCAyMzYuM2MtNi4xLTEwLjEtMy45LTIzLjEgNS4xLTMwLjdzMjIuMi03LjUgMzEuMSAuMUwyMTQgMjkzLjZjMS41LS40IDMtLjggNC41LTEuMWwxMy42LTE0Mi43YzEuMi0xMi4zIDExLjUtMjEuNyAyMy45LTIxLjd6TTMyIDQ2NGw0NTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAweiJdfSxKVXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWRvd24tdG8tcGVvcGxlIixpY29uOls1MTIsNTEyLFtdLCJlNGI5IiwiTTExMyAxNTNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE1IDg5QzUuNyA3OS42IDUuNyA2NC40IDE1IDU1UzM5LjYgNDUuNyA0OSA1NUw3MiA3OC4xIDcyLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDg2LjEgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02NCA2NHptMzIwIDBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDMzNSA4OWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDIzIDIzIDAtODYuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODYuMSAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0ek0yNTYgMTkyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0wIDE2MGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtNTMgNDMtOTYgOTYtOTZ6TTMyIDI4OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0zNTIgMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek04MCAzNjhjMTUuMyAwIDI5LjYgNC4zIDQxLjggMTEuOC02LjMgMTYuMi05LjggMzMuOC05LjggNTIuMmwwIDQ4YzAgMTEuNCAyLjQgMjIuMiA2LjcgMzJsLTg3LjggMEMxMy44IDUxMiAwIDQ5OC4yIDAgNDgxLjFMMCA0NDhjMC00NC4yIDM1LjgtODAgODAtODB6TTM5My4zIDUxMmM0LjMtOS44IDYuNy0yMC42IDYuNy0zMmwwLTQ4YzAtMTguNC0zLjUtMzYtOS44LTUyLjIgMTIuMi03LjUgMjYuNS0xMS44IDQxLjgtMTEuOCA0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDMzLjFjMCAxNy0xMy44IDMwLjktMzAuOSAzMC45bC04Ny44IDB6Il19LGVXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy12aWV3ZmluZGVyIixpY29uOls1NzYsNTEyLFtdLCJlNTk1IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtOC44IDcuMi0xNiAxNi0xNmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzE0OS4zIDAgMTM2IDBMNjQgMHpNNDQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNDQwIDB6TTQ4IDM3NmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDM2Mi43IDAgMzc2bDAgNzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNzJ6bTUyOCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzJjMCA4LjgtNy4yIDE2LTE2IDE2bC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC03MnpNMjg4IDIxNmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptMCA0MGMtNTMgMC05NiA0My05NiA5NmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC01My00My05Ni05Ni05NnptMTkyLTY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTE2OCAyNzIuM2MtNDkuMyA0LjEtODggNDUuMy04OCA5NS43bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDQ2LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC0yNGMwLTI5LjUgOC44LTU2LjkgMjQtNzkuN3pNNDI3LjkgNDAwbDQ2LjggMGMxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zbDAtMTAuN2MwLTUwLjMtMzguNy05MS42LTg4LTk1LjcgMTUuMiAyMi44IDI0IDUwLjIgMjQgNzkuN2wwIDI0YzAgOC40LTEuNCAxNi41LTQuMSAyNHpNMTkyIDE5MmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSx0V3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLW9uIixpY29uOls0NDgsNTEyLFtdLCJlNGRkIiwiTTI0OC04YzAtMTMuMy0xMC43LTI0LTI0LTI0UzIwMC0yMS4zIDIwMC04bDAgNjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0ek0xNDUuMyAyMDhsMTU3LjUgMGM2LjcgMCAxMi42IDQuMSAxNSAxMC40bDI2LjEgNjkuNi0yMzkuNiAwIDI2LjEtNjkuNmMyLjMtNi4yIDguMy0xMC40IDE1LTEwLjR6TTM0IDI5Mi44bC0xLjMgMy40QzEzLjIgMzA3LjEgMCAzMjggMCAzNTJMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDI4OCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTI0LTEzLjItNDQuOS0zMi44LTU1LjlsLTEuMy0zLjQtMzYuMy05Ni45Yy0xMS43LTMxLjItNDEuNi01MS45LTc0LjktNTEuOWwtMTU3LjUgMGMtMzMuMyAwLTYzLjIgMjAuNy03NC45IDUxLjlMMzQgMjkyLjh6TTk2IDMzNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTIyNCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek03IDdDLTIuMyAxNi40LTIuMyAzMS42IDcgNDFMNTUgODljOS40IDkuNCAyNC42IDkuNCAzMy45IDBTOTguMyA2NC40IDg5IDU1TDQxIDdDMzEuNi0yLjMgMTYuNC0yLjMgNyA3ek00MDcgN0wzNTkgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM0MTYuNC0yLjMgNDA3IDd6Il19LGFXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbGVpZ2giLGljb246WzY0MCw1MTIsW10sImY3Y2MiLCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0UzQ2LjMgOTYgNjQgOTZsMCAxNjBjMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgNjkuNS03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDUwNCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTgwIDAgMC02NGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTQ4LjkgMGMtNDguNSAwLTkyLjgtMjcuNC0xMTQuNS03MC44bC0yNS4yLTUwLjVDMjM3LjcgNTkuNCAxOTMuNCAzMiAxNDQuOSAzMkw2NCAzMnpNNDMyIDQxNmwtMjU2IDAgMC02NCAyNTYgMCAwIDY0eiJdfSxyV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtYmJlbGwiLGljb246WzY0MCw1MTIsW10sImY0NGIiLCJNOTYgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTIgMjU2IDAgMC0xMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDE2IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0xMTItMjU2IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0xNi0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwLTE2eiJdfSxFbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFieS1jYXJyaWFnZSIsaWNvbjpbNTEyLDUxMixbImNhcnJpYWdlLWJhYnkiXSwiZjc3ZCIsIk02NCAyMDhsMCA4MGMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xMTIgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA1Ni0zMzYgMHptLjItNDhsMjIzLjggMCAwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMzIgMEMxNDEuOSAwIDY4LjQgNzAuOSA2NC4yIDE2MHpNMTYwIDQ2NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0yODggMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxzV3Q9RW1lLGlXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXdpLWJpcmQiLGljb246WzU3Niw1MTIsW10sImY1MzUiLCJNMjkxLjIgMzg4LjRjMzEuMi0xOC44IDY0LjctMzYuNCAxMDEuMS0zNi40bDU1LjcgMGM0LjYgMCA5LjEtLjIgMTMuNi0uN2w4NS4zIDEyMS45YzQgNS43IDExLjMgOC4yIDE3LjkgNi4xUzU3NiA0NzEgNTc2IDQ2NGwwLTI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtNTUuNyAwQzM1NS45IDk2IDMyMi40IDc4LjQgMjkxLjIgNTkuNiAyNjIuMyA0Mi4xIDIyOC4zIDMyIDE5MiAzMiA4NiAzMiAwIDExOCAwIDIyNCAwIDI5NS4xIDM4LjYgMzU3LjEgOTYgMzkwLjNMOTYgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00NmMxNS4zIDMuOSAzMS40IDYgNDggNiA1LjQgMCAxMC43LS4yIDE2LS43bDAgNDAuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTAuOWMxMi40LTQuNCAyNC4yLTEwIDM1LjItMTYuN3pNNDQ4IDIwMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LEltZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci14bWFyayIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLXRpbWVzIl0sImYyNzMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yOTEuOSAyMjAuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45eiJdfSxvV3Q9SW1lLE5tZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNsLTEwNC0xMDRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw1NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDU2IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTEwNCAxMDRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAweiJdfSxuV3Q9Tm1lLGxXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLW1lZGljYWwiLGljb246WzM4NCw1MTIsW10sImY0NzciLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE2MCAyODBsMCA0MC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNDAgMCAwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQwIDQwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00MCAwIDAtNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LHQ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InhtYXJrIixpY29uOlszODQsNTEyLFsxMjg0NzMsMTAwMDUsMTAwMDYsMTAwNjAsMjE1LCJjbG9zZSIsIm11bHRpcGx5IiwicmVtb3ZlIiwidGltZXMiXSwiZjAwZCIsIk01NS4xIDczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE0Ny4yIDI1NiA5LjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyLjUgMzAxLjMgMzI5LjkgNDM4LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyMzcuOCAyNTYgMzc1LjEgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyLjUgMjEwLjcgNTUuMSA3My40eiJdfSxjV3Q9dDQsZFd0PXQ0LHVXdD10NCxwV3Q9dDQsUm1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoYXBlcyIsaWNvbjpbNTEyLDUxMixbInRyaWFuZ2xlLWNpcmNsZS1zcXVhcmUiXSwiZjYxZiIsIk0yNTYgMGMxMS4yIDAgMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTMzYzLjUgMjI0IDM1MiAyMjRsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4ybDk2LTE2MEMyMzQuMyA1LjkgMjQ0LjggMCAyNTYgMHpNMTI4IDI3MmExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6bTIwMCAxNmwxMTIgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDExMmMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMTEyIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtMTEyYzAtMjIuMSAxNy45LTQwIDQwLTQweiJdfSxmV3Q9Um1lLGhXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLW9uZSIsaWNvbjpbNDQ4LDUxMixbOTg1Nl0sImY1MjUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG1XdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NrLW9wZW4iLGljb246WzU3Niw1MTIsW10sImYzYzEiLCJNMzg0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhTMzIwIDI1LjMgMzIwIDk2bDAgNjQtMTYwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAtNjR6Il19LGdXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXBwZXItaG90IixpY29uOls1NzYsNTEyLFsxMjc3OThdLCJmODE2IiwiTTU0NSA2NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ3OC45IDYzLjJDNDUyLjMgNDMuNiA0MTkuNSAzMiAzODQgMzIgMzQ4LjkgMzIgMzE2LjUgNDMuMyAyOTAuMSA2Mi40IDI3NC4xIDc0LjEgMjg0LjIgOTYgMzA0IDk2bDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAxOS44IDIxLjkgMjkuOSAzMy42IDEzLjkgMTkuMS0yNi40IDMwLjQtNTguOCAzMC40LTkzLjkgMC0zNS41LTExLjYtNjguMy0zMS4yLTk0LjlMNTQ1IDY1ek0yNzAgMTM1LjVsLTE1OS42IDIyOEMxMDEuMyAzNzYuNCA4Ni43IDM4NCA3MSAzODRsLTcgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyNy4xIDBjNjUuNyAwIDEyOS43LTIwLjIgMTgzLjUtNTcuOEw0NDAuNSAzMDYuMUM0MzUgMjk1LjkgNDMyIDI4NC4yIDQzMiAyNzJsLTU2IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtNTZjLTEyLjIgMC0yMy45LTMtMzQtOC41eiJdfSxPbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJvcGxldC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInRpbnQtc2xhc2giXSwiZjVjNyIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ2My42IDM5Ny44YzEwLjUtMjMuOCAxNi40LTUwLjEgMTYuNC03Ny44IDAtOTEuMi0xMzAuMi0yNzQuMS0xNjYuNi0zMjMuNS01LjktOC0xNS4yLTEyLjUtMjUuMi0xMi41bC0uNCAwYy0xMCAwLTE5LjMgNC41LTI1LjIgMTIuNS0xNS42IDIxLjItNDguNSA2Ni45LTgwLjkgMTE5LjRMNDEtMjQuOXptOTIgMjI3LjdjLTIxLjYgNDMuOC0zNyA4NS45LTM3IDExNy4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQzLjQgMCA4My40LTE0LjQgMTE1LjUtMzguNkwxMzMgMjAyLjh6Il19LGJXdD1PbWUsRm1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQiLGljb246WzM4NCw1MTIsWzEyODE2NywidGludCJdLCJmMDQzIiwiTTE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwIDAgMjI4LjggMTMwLjIgNDUuOSAxNjYuNi0zLjUgMTcyLjUtMTEuNSAxODEuOC0xNiAxOTEuOC0xNmwuNCAwYzEwIDAgMTkuMyA0LjUgMjUuMiAxMi41IDM2LjQgNDkuNCAxNjYuNiAyMzIuMyAxNjYuNiAzMjMuNSAwIDEwNi04NiAxOTItMTkyIDE5MnpNMTEyIDMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDc1LjEgNjAuOSAxMzYgMTM2IDEzNiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDguNiAwLTg4LTM5LjQtODgtODh6Il19LHZXdD1GbWUsWmVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyODQ0MSwxMjg0NjIsNjE2ODYsImZpbGUtYWx0IiwiZmlsZS10ZXh0Il0sImYxNWMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTEyMCAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0seFd0PVplZSx5V3Q9WmVlLHdXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50cy1kb2xsYXIiLGljb246WzU3Niw1MTIsW10sImY2NTMiLCJNMTkyIDMyMGMxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0YzAgMzkuNiAxNC4zIDc2LjIgMzguNCAxMDUuNkwyLjggMzE2LjhDLTIuMSAzMjYuMS0uNCAzMzcuNSA3IDM0NXMxOC45IDkuMiAyOC4yIDQuMkwxMTYuOCAzMDZjMjMuMSA5IDQ4LjUgMTQgNzUuMiAxNHptMy4yIDQ4YzE2LjQgODEuOSA5NC43IDE0NCAxODguOCAxNDQgMjYuNyAwIDUyLjEtNSA3NS4yLTE0bDgxLjYgNDMuMmM5LjMgNC45IDIwLjcgMy4yIDI4LjItNC4yczkuMi0xOC45IDQuMi0yOC4ybC0zNS42LTY3LjJjMjQuMS0yOS40IDM4LjQtNjYgMzguNC0xMDUuNiAwLTgyLjQtNjEuNy0xNTEuNS0xNDUtMTcwLjctMTEuNSAxMTUuOC0xMTUuOCAyMDEuMi0yMzUuOCAyMDIuN3pNMTk2IDMyYzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Yy0yNS4zLTQuMi00My45LTI2LjEtNDMuOS01MS44IDAtMjguOCAyMy4yLTUyLjIgNTItNTIuNWwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxCbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1sb2NhdGlvbiIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1sb2NhdGlvbiJdLCJmNjg5IiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjg4IDE3NmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDQ4LjggNDYuNSAxMTEuNiA2OC42IDEzOC42IDYgNy4zIDE2LjggNy4zIDIyLjcgMCAyMi4xLTI3IDY4LjYtODkuOCA2OC42LTEzOC42em0tMTEyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sTVd0PUJtZSxOdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbnZvaWNlIixpY29uOlszODQsNTEyLFtdLCJmNTcwIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTY0IDM4NGwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNzQuNyA2NCA4OCA2NHptMCA5Nmw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxrV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVudGFnb24iLGljb246WzU3Niw1MTIsW10sImU3OTAiLCJNMzE2LjQtMy4xYy0xNi44LTEyLjItMzkuNi0xMi4yLTU2LjQgMEwzNS4zIDE2MC4yYy0xNi44IDEyLjItMjMuOSAzMy45LTE3LjQgNTMuN2w4NS44IDI2NC4xYzYuNCAxOS44IDI0LjkgMzMuMiA0NS43IDMzLjJsMjc3LjcgMGMyMC44IDAgMzkuMi0xMy40IDQ1LjctMzMuMmw4NS44LTI2NC4xYzYuNC0xOS44LS42LTQxLjQtMTcuNC01My43TDMxNi40LTMuMXoiXX0sU1d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcHVibGljYW4iLGljb246WzY0MCw1MTIsW10sImY3NWUiLCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMmwyMjQgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDY0LTU0NCAwIDAtNjR6bTE1Mi0zMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0yMzIgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0yODAgMTYwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTEyOCAyODhsNDE2IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGwwLTQ4LTMyIDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xOTIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2MCAxMjggMHoiXX0sSG1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3AiLGljb246WzU3Niw1MTIsWyJzdG9yZS1hbHQiXSwiZjU0ZiIsIk0yMS41IDE4MS4xTDc4LjMgNjcuNEM4OS4yIDQ1LjcgMTExLjMgMzIgMTM1LjYgMzJsMzA0LjkgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw1Ni44IDExMy43YzMuNiA3LjIgNS41IDE1LjEgNS41IDIzLjIgMCAyNy4zLTIxLjIgNDkuNy00OCA1MS42TDUxMiA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOTItOTYgMCAwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTc2LjFjLTI2LjgtMS45LTQ4LTI0LjMtNDgtNTEuNiAwLTggMS45LTE2IDUuNS0yMy4yek0xMjggMjU2bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTItMTYwIDB6Il19LHpXdD1IbWUsWGVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbG0iLGljb246WzQ0OCw1MTIsWzEyNzkwMiw2MjM2OCwiZmlsbS1hbHQiLCJmaWxtLXNpbXBsZSJdLCJmMDA4IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek00OCAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzA0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDI0MGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNDggMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6TTM1MiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAweiJdfSxDV3Q9WGVlLF9XdD1YZWUsVFd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNDU0LjYgNDAweiJdfSxMV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNMzg0IDE0NGMwIDk3LjItODYgMTc2LTE5MiAxNzYtMjYuNyAwLTUyLjEtNS03NS4yLTE0TDM1LjIgMzQ5LjJjLTkuMyA0LjktMjAuNyAzLjItMjguMi00LjJzLTkuMi0xOC45LTQuMi0yOC4ybDM1LjYtNjcuMkMxNC4zIDIyMC4yIDAgMTgzLjYgMCAxNDQgMCA0Ni44IDg2LTMyIDE5Mi0zMlMzODQgNDYuOCAzODQgMTQ0em0wIDM2OGMtOTQuMSAwLTE3Mi40LTYyLjEtMTg4LjgtMTQ0IDEyMC0xLjUgMjI0LjMtODYuOSAyMzUuOC0yMDIuNyA4My4zIDE5LjIgMTQ1IDg4LjMgMTQ1IDE3MC43IDAgMzkuNi0xNC4zIDc2LjItMzguNCAxMDUuNmwzNS42IDY3LjJjNC45IDkuMyAzLjIgMjAuNy00LjIgMjguMnMtMTguOSA5LjItMjguMiA0LjJMNDU5LjIgNDk4Yy0yMy4xIDktNDguNSAxNC03NS4yIDE0eiJdfSwkV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFncyIsaWNvbjpbNTc2LDUxMixbXSwiZjAyYyIsIk00MDEuMiAzOS4xTDU0OS40IDE4OS40YzI3LjcgMjguMSAyNy43IDczLjEgMCAxMDEuMkwzOTMgNDQ4LjljLTkuMyA5LjQtMjQuNSA5LjUtMzMuOSAuMnMtOS41LTI0LjUtLjItMzMuOUw1MTUuMyAyNTYuOGM5LjItOS4zIDkuMi0yNC40IDAtMzMuN0wzNjcgNzIuOWMtOS4zLTkuNC05LjItMjQuNiAuMi0zMy45czI0LjYtOS4yIDMzLjkgLjJ6TTMyLjEgMjI5LjVMMzIuMSA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDE0NCAxNDRjMjUgMjUgMjUgNjUuNSAwIDkwLjVMMjg1LjQgNDE4LjdjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC0xNDQtMTQ0Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zem0xNDQtODUuNWEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxEV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VuIixpY29uOls1NzYsNTEyLFtdLCJlMTliIiwiTTUyOCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgtNDQ4IDBDMTQuMyA2NCAwIDc4LjMgMCA5NkwwIDIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMCAwYzIwLjggMCAzNi4xIDE5LjYgMzEgMzkuOEwzMyA0NDAuMmMtMi40IDkuNi0uMiAxOS43IDUuOCAyNy41UzU0LjEgNDgwIDY0IDQ4MGw5NiAwYzE0LjcgMCAyNy41LTEwIDMxLTI0LjJMMjE3IDM1MiAzMjEuNCAzNTJjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJsMjYuNy03NC44IDMxLjEgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNGwyMi42LTIyLjYgNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2IDAgMC04ek0zMjEuNCAzMDRsLTkyLjUgMCAxNi02NCAxMDUgMC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4bDM4NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDgwIDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnoiXX0sbnY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM3NCAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMjIxLjEgMzE1LjIgMTY5IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS44IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzc5LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LEFXdD1udixQV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NvcnBpbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg0ZSIsIk0zNjggMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJsMCAyODkuN2MwIDcuOSA2LjQgMTQuMyAxNC4zIDE0LjMgMy45IDAgNy42LTEuNiAxMC4yLTQuM2w0MC4xLTQxLjEtOS43LTkuN2MtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM1NDIuMyAzNTIgNTUyIDM1Mmw2NCAwIDIuNSAuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45bDAgNjQtLjMgMy42Yy0xLjIgOC4yLTYuNyAxNS4zLTE0LjUgMTguNi05IDMuNy0xOS4zIDEuNi0yNi4yLTUuMmwtOS4xLTkuMS0zOS42IDQwLjZjLTE0LjcgMTUuMS0zNC45IDIzLjYtNTYgMjMuNi00My4zIDAtNzguMy0zNS4xLTc4LjMtNzguM0w0MTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyeiJdfSxxbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtY2FyZC1jbGlwIixpY29uOls1NzYsNTEyLFsiaWQtY2FyZC1hbHQiXSwiZjQ3ZiIsIk0yNTYtMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0LTEyOCAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDMybDExMiAwIDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMiAxMTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6TTE3NiA0MDBjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTI4OCAyODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LEVXdD1xbWUsSVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vb24iLGljb246WzUxMiw1MTIsWzEyNzc2OSw5MjE0XSwiZjE4NiIsIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZTMTE0LjYgNTEyIDI1NiA1MTJjNjguOCAwIDEzMS4zLTI3LjIgMTc3LjMtNzEuNCA3LjMtNyA5LjQtMTcuOSA1LjMtMjcuMXMtMTMuNy0xNC45LTIzLjgtMTQuMWMtNC45IC40LTkuOCAuNi0xNC44IC42LTEwMS42IDAtMTg0LTgyLjQtMTg0LTE4NCAwLTcyLjEgNDEuNS0xMzQuNiAxMDIuMS0xNjQuOCA5LjEtNC41IDE0LjMtMTQuMyAxMy4xLTI0LjRTMzIyLjYgOC41IDMxMi43IDYuM0MyOTQuNCAyLjIgMjc1LjQgMCAyNTYgMHoiXX0sTld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC13ZWxsIixpY29uOls1NzYsNTEyLFtdLCJlNTMyIiwiTTUyOC4zIDYxLjNjLTExLjQtNDIuNy01NS4zLTY4LTk4LTU2LjZMNDE0LjkgOC44QzM5Ny44IDEzLjQgMzg3LjcgMzEgMzkyLjMgNDhsMjQuNSA5MS40LTEwOC4yIDI4LjEtNi4zLTE4LjFDMjk3LjcgMTM2LjYgMjg1LjYgMTI4IDI3MiAxMjhzLTI1LjcgOC42LTMwLjIgMjEuNGwtMTMuNiAzOS0xMzIuMiAzNC4zIDAtMzguNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI2NC0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMzcuMyAwLTYxLjQtMTc1LjQtNjIuMiAxNi4xIDIyLjEgNjMuMi02Ni42IDAgMTkuOS01Ni45LTc0LjYgMTkuMy00Ni43IDEzMy41LTQxLjMgMCAwLTE1OS4yIDMzNy40LTg3LjUgMjUuMiA5NGM0LjYgMTcuMSAyMi4xIDI3LjIgMzkuMiAyMi42bDE1LjUtNC4xYzQyLjctMTEuNCA2OC01NS4zIDU2LjYtOThMNTI4LjMgNjEuM3pNMjA1LjEgNDQ4bDE2LjgtNDggMTAwLjIgMCAxNi44IDQ4LTEzMy44IDB6Il19LFZtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWNob2dyYXBoLWRpZ2l0YWwiLGljb246WzU3Niw1MTIsWyJkaWdpdGFsLXRhY2hvZ3JhcGgiXSwiZjU2NiIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODggMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDM1MnptMjU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwek00OTYgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNODggMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTA0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sUld0PVZtZSxqbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0IixpY29uOls0NDgsNTEyLFsidGFibGV0LWFuZHJvaWQiXSwiZjNmYiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xODQgNDAwbDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE9XdD1qbWUsR2I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVibGUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM4MSwicm91YmxlIiwicnViIiwicnVibGUiXSwiZjE1OCIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgMjA4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDQ4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTUyIDAgMC00OCAxMTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFMzMzUuNSAzMiAyNTYgMzJMMTEyIDMyek0yNTYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sRld0PUdiLEJXdD1HYixIV3Q9R2IscVd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMjBhIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTE1MiA4MGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0sVld0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbiIsaWNvbjpbNTEyLDUxMixbMTI4Mzk0XSwiZjMwNCIsIk0zNTIuOSAyMS4yTDMwOCA2Ni4xIDQ0NS45IDIwNCA0OTAuOCAxNTkuMUM1MDQuNCAxNDUuNiA1MTIgMTI3LjIgNTEyIDEwOHMtNy42LTM3LjYtMjEuMi01MS4xTDQ1NS4xIDIxLjJDNDQxLjYgNy42IDQyMy4yIDAgNDA0IDBzLTM3LjYgNy42LTUxLjEgMjEuMnpNMjc0LjEgMTAwTDU4LjkgMzE1LjFjLTEwLjcgMTAuNy0xOC41IDI0LjEtMjIuNiAzOC43TC45IDQ4MS42Yy0yLjMgOC4zIDAgMTcuMyA2LjIgMjMuNHMxNS4xIDguNSAyMy40IDYuMmwxMjcuOC0zNS41YzE0LjYtNC4xIDI3LjktMTEuOCAzOC43LTIyLjZMNDEyIDIzNy45IDI3NC4xIDEwMHoiXX0sald0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lIixpY29uOls1NzYsNTEyLFtdLCJmMDcyIiwiTTUyMCAyMDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTZsLTEyNy4zIDAtMTU5LjIgMTczLjZjLTYuMSA2LjYtMTQuNiAxMC40LTIzLjYgMTAuNGwtNDMuNyAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw1NC4zLTE2Mi45LTk5LjcgMC01Mi44IDY2Yy0zIDMuOC03LjYgNi0xMi41IDZsLTE5LjggMGMtMTAuNCAwLTE4LTkuOC0xNS41LTE5LjlMMzIgMjU2IDUgMTQ3LjlDMi40IDEzNy44IDEwLjEgMTI4IDIwLjUgMTI4bDE5LjggMGM0LjkgMCA5LjUgMi4yIDEyLjUgNmw1Mi44IDY2IDk5LjcgMC01NC4zLTE2Mi45QzE0Ny42IDI2LjcgMTU1LjMgMTYgMTY2LjIgMTZsNDMuNyAwYzkgMCAxNy41IDMuOCAyMy42IDEwLjRMMzkyLjcgMjAwIDUyMCAyMDB6Il19LFVXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZXMiLGljb246WzU3Niw1MTIsW10sImYzMDIiLCJNOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NnpNMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjk2YzAgOC44IDcuMiAxNiAxNiAxNmwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xNjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTYuNSAxMS41Yy00LjQtNy4xLTEyLjEtMTEuNS0yMC41LTExLjVzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTYuMyA5Mi4xLTI0LjUtMzAuNmMtNC42LTUuNy0xMS40LTktMTguNy05cy0xNC4yIDMuMy0xOC43IDlsLTY0IDgwYy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40UzE3NC44IDM1MiAxODQgMzUybDI3MiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6Il19LFVtZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtc2NyZWVuIixpY29uOlszODQsNTEyLFsibW9iaWxlLWFuZHJvaWQtYWx0Il0sImYzY2YiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0ek0xMjggNDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zMDQgNjRsLTIyNCAwIDAgMzA0IDIyNCAwIDAtMzA0eiJdfSxXV3Q9VW1lLEdXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndWFyYW5pLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxOWEiLCJNMTkyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDEuNUM3My4zIDc3LjMgMCAxNTguMSAwIDI1NlM3My4zIDQzNC43IDE2OCA0NDYuNWwwIDQxLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQxLjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNSAwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTM2IDAgMC05My44YzI1LjMgNC44IDQ3LjkgMTcgNjUuNiAzNC4zIDEyLjYgMTIuNCAzMi45IDEyLjIgNDUuMy0uNHMxMi4yLTMyLjktLjUtNDUuM0MyOTcuMiA5MC4yIDI1OC44IDcwLjggMjE2IDY1LjVMMjE2IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xNjggMTMwLjJsMCAyNTEuNUMxMDguOCAzNzAuNSA2NCAzMTguNSA2NCAyNTZzNDQuOC0xMTQuNSAxMDQtMTI1Ljh6bTQ4IDI1MS41bDAtOTMuOCAxMDAgMGMtMTIuMyA0Ny42LTUxLjIgODQuNS0xMDAgOTMuOHoiXX0sV21lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhZy1zaG9wcGluZyIsaWNvbjpbNDQ4LDUxMixbInNob3BwaW5nLWJhZyJdLCJmMjkwIiwiTTE2MCA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgNDgtMTI4IDAgMC00OHptLTQ4IDQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMC00OGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxMTIgMTguMSAxMTIgODBsMCA0OHptMjQgNDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0xNTIgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sWVd0PVdtZSxHbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs2MTgzOCwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodCJdLCJmMzVhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNsLTEwNCAxMDRjLTQuNiA0LjYtMTEuNSA1LjktMTcuNCAzLjVTMjU2IDM2Ni41IDI1NiAzNjBsMC01Ni05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC01NmMwLTYuNSAzLjktMTIuMyA5LjktMTQuOHMxMi45LTEuMSAxNy40IDMuNWwxMDQgMTA0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42eiJdfSxLV3Q9R21lLFltZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS12b2x1bWUiLGljb246WzU3Niw1MTIsWyJ2b2x1bWUtY29udHJvbC1waG9uZSJdLCJmMmEwIiwiTTM0NC0zMmMxMjguMSAwIDIzMiAxMDMuOSAyMzIgMjMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTMyMCA4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTQ0LjEgMS40YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzMyLjUgNzEuNiA4OSAxMzAgMTU5LjMgMTY0LjlMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNUM1MjMuNCA0NzAuMSA0NjAuOSA1MjUuMyAzODQuNiA1MDkuMiAyMDkuNiA0NzIuMSA3MS45IDMzNC40IDM0LjggMTU5LjQgMTguNyA4My4xIDczLjkgMjAuNiAxMzguNSAyLjlsNS41LTEuNXoiXX0sWld0PVltZSxYV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZXMiLGljb246WzUxMiw1MTIsW10sImYxYjMiLCJNMjg0LTEuM2MtMTcuMy0xMC0zOC43LTEwLTU2IDBMMTQzLjggNDcuM2MtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCAxMDEuOS04OC4zIDUxYy0xNy4zIDEwLTI4IDI4LjUtMjggNDguNWwwIDk3LjNjMCAyMCAxMC43IDM4LjUgMjggNDguNWw4NC4zIDQ4LjZjMTcuMyAxMCAzOC43IDEwIDU2IDBsODguMy01MSA4OC4zIDUxYzE3LjMgMTAgMzguNyAxMCA1NiAwTDQ4NC41IDQ0M2MxNy4zLTEwIDI4LTI4LjUgMjgtNDguNWwwLTk3LjNjMC0yMC0xMC43LTM4LjUtMjgtNDguNWwtODguMy01MSAwLTEwMS45YzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVMMjg0LTEuM3pNMjMyIDI5Mi42bDAgMTA2LjUtODguMyA1MWMtMS4yIC43LTIuNiAxLjEtNCAxLjFsMC0xMDUuMyA5Mi4zLTUzLjN6bTIzMS40IC42Yy43IDEuMiAxLjEgMi42IDEuMSA0bDAgOTcuM2MwIDIuOS0xLjUgNS41LTQgNi45bC04NC4zIDQ4LjZjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTEuMi01Mi42ek0zNDguMyA5NS44bDAgMTAxLjktOTIuMyA1My4zIDAtMTA2LjUgOTEuMi01Mi42Yy43IDEuMiAxLjEgMi42IDEuMSA0eiJdfSxRV3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUiLGljb246WzUxMiw1MTIsWzEyODIyMiwxMjgzNzldLCJmMDk1IiwiTTE2MC4yIDI1QzE1Mi4zIDYuMSAxMzEuNy0zLjkgMTEyLjEgMS40bC01LjUgMS41Yy02NC42IDE3LjYtMTE5LjggODAuMi0xMDMuNyAxNTYuNCAzNy4xIDE3NSAxNzQuOCAzMTIuNyAzNDkuOCAzNDkuOCA3Ni4zIDE2LjIgMTM4LjgtMzkuMSAxNTYuNC0xMDMuN2wxLjUtNS41YzUuNC0xOS43LTQuNy00MC4zLTIzLjUtNDguMWwtOTcuMy00MC41Yy0xNi41LTYuOS0zNS42LTIuMS00NyAxMS44bC0zOC42IDQ3LjJDMjMzLjkgMzM1LjQgMTc3LjMgMjc3IDE0NC44IDIwNS4zTDE4OSAxNjkuM2MxMy45LTExLjMgMTguNi0zMC40IDExLjgtNDdMMTYwLjIgMjV6Il19LEpXdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JpaS1nYXRlIixpY29uOls0NDgsNTEyLFs5OTYxXSwiZjZhMSIsIk0wIDk2TDAgMjguNUMwIDIxLjYgNS42IDE2IDEyLjUgMTYgMTQuOCAxNiAxNyAxNi42IDE5IDE3LjhMNTggNDEuMkM4Mi45IDU2LjEgMTExLjMgNjQgMTQwLjMgNjRsMTY3LjQgMGMyOSAwIDU3LjUtNy45IDgyLjMtMjIuOGwzOS0yMy40YzEuOS0xLjIgNC4yLTEuOCA2LjQtMS44IDYuOSAwIDEyLjUgNS42IDEyLjUgMTIuNUw0NDggOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCA2NCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTE5MiAwIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTY0QzI4LjcgMTYwIDAgMTMxLjMgMCA5NnpNMTI4IDIyNGw2NCAwIDAtNjQtNjQgMCAwIDY0em0xMjggMGw2NCAwIDAtNjQtNjQgMCAwIDY0eiJdfSxlR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjb24iLGljb246WzU3Niw1MTIsWzEyOTM2M10sImY3ZTUiLCJNNTU3IDk2LjdjMTQuNCAxNC40IDEyLjQgMzguNC00LjMgNTAuMmwtNjQuNiA0NS43Yy00My43IDMwLjktNzkuMiA3MS45LTEwMy40IDExOS42bC0yNS4zIDQ5LjhjLTI1LjEgNDkuMy02Mi4xIDkxLjUtMTA3LjggMTIyLjZsLTc0LjEgNTAuNmMtMTMuMSA4LjktMzAuNyA3LjMtNDEuOC0zLjlsLTQ0LjktNDQuOSA4Ni41LTY2LjVjNDIuMy0zMi41IDc2LjctNzQuMyAxMDAuNi0xMjJsMjQuNS00OS4xYzI0LjUtNDkgNjEuOC05MC42IDEwNy45LTEyMC4ybDEwOC43LTY5LjkgMzggMzh6TTQ4NC4yIDIzLjlMMzg0LjMgODguMmMtNTMuNCAzNC4zLTk2LjUgODIuNC0xMjQuOSAxMzkuMWwtMjQuNSA0OS4xYy0yMC42IDQxLjMtNTAuMyA3Ny4zLTg2LjkgMTA1LjRsLTkxLjQgNzAuMy0zNi45LTM2LjljLTE0LjQtMTQuNC0xMi40LTM4LjQgNC4zLTUwLjJsNjQuNi00NS43YzQzLjctMzAuOSA3OS4yLTcxLjkgMTAzLjQtMTE5LjZsMjUuMy00OS44QzI0Mi4zIDEwMC44IDI3OS4zIDU4LjYgMzI1IDI3LjRsNzQuMS01MC42YzEzLjEtOC45IDMwLjYtNy4zIDQxLjggMy45bDQzLjMgNDMuM3oiXX0sdEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1mYWxsaW5nLWJ1cnN0IixpY29uOls1NzYsNTEyLFtdLCJlNTQ3IiwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNS40YzAgNTUuMi0yMy43IDEwNy02My45IDE0My4xbDYyLjkgNzUuNSA4OSAwYzE1LjEgMCAyOS4zIDcuMSAzOC40IDE5LjJsNDMuMiA1Ny42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRMMzY4IDMyMCAyNjMuMiAzMjAgMzc2LjggNDU5LjhjMTEuMSAxMy43IDkuMSAzMy45LTQuNyA0NXMtMzMuOSA5LjEtNDUtNC43TDEzNy40IDI2Ni42Yy02LjEgMTUtOS40IDMxLjMtOS40IDQ4bDAgNjkuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY5LjRjMC02Ny40IDM1LjQtMTI5LjkgOTMuMi0xNjQuNmw0LjYtMi44QzIwMC40IDEyNCAyMjQgODIuNCAyMjQgMzcuNGwwLTUuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTYgODhBNTYgNTYgMCAxIDEgMTI4IDg4IDU2IDU2IDAgMSAxIDE2IDg4em0zNzYtNy45YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4em0xMDQgMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDB6bS01NC41LTk3LjVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6Il19LEttZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODIyMSwicXVvdGUtcmlnaHQtYWx0Il0sImYxMGUiLCJNNDQ4IDI5NmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2em0tMjU2IDBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnoiXX0sYUd0PUttZSxyR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1mbGFnIixpY29uOls2NDAsNTEyLFtdLCJlNTE0IiwiTTQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDI4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjY3LjUgNTkuMUw0MDAgMTg2LjkgNDAwIDUwMy40Yy05LjQgNS40LTIwLjMgOC42LTMyIDguNmwtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTQ0LTE5LjkgMEMxMi42IDMwNCAwIDI5MS40IDAgMjc1LjkgMCAyNjguMyAzLjEgMjYxIDguNiAyNTUuN0wyMTIuNSA1OS4xQzIxOS45IDUyIDIyOS43IDQ4IDI0MCA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMDQuOCAyNTYuOGwwIDQ0LTQ0IDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNmwwIDM1LjJjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDQ0IDAgMCA0NGMwIDkuNyA3LjkgMTcuNiAxNy42IDE3LjZsMzUuMiAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTQ0IDQ0IDBjOS43IDAgMTcuNi03LjkgMTcuNi0xNy42bDAtMzUuMmMwLTkuNy03LjktMTcuNi0xNy42LTE3LjZsLTQ0IDAgMC00NGMwLTkuNy03LjktMTcuNi0xNy42LTE3LjZsLTM1LjIgMGMtOS43IDAtMTcuNiA3LjktMTcuNiAxNy42eiJdfSxzR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uIixpY29uOls0NDgsNTEyLFtdLCJmNWIxIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA1MC43IDAgMTI4IDEyOC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyODggMzk3LjMgMzkzLjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzMzMuMyAzNTIgNDM4LjYgMjQ2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjg4IDMwNi43IDIwMi4yIDIyMC45QzI1MS40IDIwOS4xIDI4OCAxNjQuOCAyODggMTEyIDI4OCA1MC4xIDIzNy45IDAgMTc2IDBMMzIgMHpNMTc2IDE2MGwtMTEyIDAgMC05NiAxMTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OHoiXX0saUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtdGhyZWUiLGljb246WzQ0OCw1MTIsWzk4NThdLCJmNTI3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG9HdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGQ2IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguN2wwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTE3NiAzODRsMCA4MCA4MCAwIDAtNjQuMWMwLTEzLjcgMS45LTI3IDUuNS0zOS42LTUuNy01LjItMTMuMi04LjMtMjEuNS04LjNsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zMDcgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTM1MiA4MC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sWm1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQ3LCJkcml2ZXJzLWxpY2Vuc2UiXSwiZjJjMiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0TDAgOTZ6bTAgNDhsNTc2IDAgMCAyNzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0NHpNMjQ3LjMgNDE2YzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5LTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwek0xNzYgMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNjAgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6Il19LG5HdD1abWUsWG1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1wbGF5IixpY29uOls1MTIsNTEyLFs2MTQ2OSwicGxheS1jaXJjbGUiXSwiZjE0NCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xODguMyAxNDcuMWMtNy42IDQuMi0xMi4zIDEyLjMtMTIuMyAyMC45bDAgMTc2YzAgOC43IDQuNyAxNi43IDEyLjMgMjAuOXMxNi44IDQuMSAyNC4zLS41bDE0NC04OGM3LjEtNC40IDExLjUtMTIuMSAxMS41LTIwLjVzLTQuNC0xNi4xLTExLjUtMjAuNWwtMTQ0LTg4Yy03LjQtNC41LTE2LjctNC43LTI0LjMtLjV6Il19LGxHdD1YbWUsUW1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE3NiAxNjRjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxjR3Q9UW1lLGRHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWFmIixpY29uOls1MTIsNTEyLFtdLCJmMDZjIiwiTTQ3MS4zIDYuN0M0NzcuNyAuNiA0ODctMS42IDQ5NS42IDEuMiA1MDUuNCA0LjUgNTEyIDEzLjcgNTEyIDI0bDAgMTg2LjljMCAxMzEuMi0xMDguMSAyMzcuMS0yMzguOCAyMzcuMS03NyAwLTE0My40LTQ5LjUtMTY3LjUtMTE4LjctMzUuNCAzMC44LTU3LjcgNzYuMS01Ny43IDEyNi43IDAgMTMuMy0xMC43IDI0LTI0IDI0UzAgNDY5LjMgMCA0NTZDMCAzODEuMSAzOC4yIDMxNS4xIDk2LjEgMjc2LjMgMTMxLjQgMjUyLjcgMTczLjUgMjQwIDIxNiAyNDBsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMzkuNyAwLTc3LjMgOC44LTExMSAyNC41IDIzLjMtNzAgODkuMi0xMjAuNSAxNjctMTIwLjUgNjYuNCAwIDExNS44LTIyLjEgMTQ4LjctNDQgMTkuMi0xMi44IDM1LjUtMjguMSA1MC43LTQ1LjN6Il19LHVHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LXVzZXIiLGljb246WzUxMiw1MTIsW10sImUwNjUiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTMxMiAyNTZhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek0xNDQgNDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgweiJdfSxRZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlLXJpZ2h0IixpY29uOls1MTIsNTEyLFsicmVkby1hbHQiLCJyb3RhdGUtZm9yd2FyZCJdLCJmMmY5IiwiTTQ4OCAxOTJsLTE0NCAwYy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhzLTEuNy0xOS4zIDUuMi0yNi4ybDQ2LjctNDYuN2MtNzUuMy01OC42LTE4NC4zLTUzLjMtMjUzLjUgMTUuOS03NSA3NS03NSAxOTYuNSAwIDI3MS41czE5Ni41IDc1IDI3MS41IDBjOC4yLTguMiAxNS41LTE2LjkgMjEuOS0yNi4xIDEwLjEtMTQuNSAzMC4xLTE4IDQ0LjYtNy45czE4IDMwLjEgNy45IDQ0LjZjLTguNSAxMi4yLTE4LjIgMjMuOC0yOS4xIDM0LjctMTAwIDEwMC0yNjIuMSAxMDAtMzYyIDBTLTI1IDE3NSA3NSA3NWM5NC4zLTk0LjMgMjQzLjctOTkuNiAzNDQuMy0xNi4yTDQ3MSA3YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTNTEyIDE0LjMgNTEyIDI0bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0eiJdfSxwR3Q9UWVlLGZHdD1RZWUsaEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvb3RoIixpY29uOls0NDgsNTEyLFsxMjk0NjNdLCJmNWM5IiwiTTE0NSA1LjdMMjI0IDMyIDMwMyA1LjdDMzE0LjMgMS45IDMyNiAwIDMzNy45IDAgMzk4LjcgMCA0NDggNDkuMyA0NDggMTEwLjFsMCA2OC41YzAgMjkuNC05LjUgNTguMS0yNy4yIDgxLjZsLTEuMSAxLjVjLTEyLjkgMTcuMi0yMS4zIDM3LjQtMjQuMyA1OC43TDM3My43IDQ3MS45Yy0zLjMgMjMtMjMgNDAuMS00Ni4yIDQwLjEtMjIuOCAwLTQyLjMtMTYuNS00Ni0zOUwyNjEuMyAzNTEuNmMtMy0xOC4yLTE4LjgtMzEuNi0zNy4zLTMxLjZzLTM0LjIgMTMuNC0zNy4zIDMxLjZMMTY2LjUgNDczYy0zLjggMjIuNS0yMy4yIDM5LTQ2IDM5LTIzLjIgMC00Mi45LTE3LjEtNDYuMi00MC4xTDUyLjYgMzIwLjVjLTMtMjEuMy0xMS40LTQxLjUtMjQuMy01OC43bC0xLjEtMS41QzkuNSAyMzYuNyAwIDIwOC4xIDAgMTc4LjdsMC02OC41QzAgNDkuMyA0OS4zIDAgMTEwLjEgMCAxMjIgMCAxMzMuNyAxLjkgMTQ1IDUuN3oiXX0sbUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktd2luZG93IixpY29uOls1MTIsNTEyLFtdLCJlMDBkIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yMTYgMjI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sZ0d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdG9yY3ljbGUiLGljb246WzY0MCw1MTIsWzEyNzk0OV0sImYyMWMiLCJNMjgwIDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2LjYgMCAyMi41IDQ4LjctOTUuMSA3MS4zYy0zMy40LTI1LjEtNzUtNDAtMTIwLTQwbC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjNzguNSAwIDE0My4yIDU5LjYgMTUxLjIgMTM2bC0yNS40IDBjLTExLjItNTkuMi02My4zLTEwNC0xMjUuOC0xMDQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhTNzMuMyA0ODAgMTQ0IDQ4MGM2Mi41IDAgMTE0LjUtNDQuOCAxMjUuOC0xMDRsNTAuMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjIuNWMwLTQ1LjEgMjUuNy04NS40IDY1LjUtMTA3LjdsMTIuMSAyNi4xYy0zMi40IDIzLjItNTMuNSA2MS4yLTUzLjUgMTA0LjEgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOC01Ny4zLTEyOC0xMjgtMTI4Yy0xMC43IDAtMjEgMS4zLTMwLjkgMy44TDQzMy44IDE2MCA0ODggMTYwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTUzLjMgMGMtNi45IDAtMTMuNyAyLjItMTkuMiA2LjRsLTE3LjEgMTIuOC0yNC42LTUzLjNDMzY5LjkgMjEuNCAzNjEuNCAxNiAzNTIgMTZsLTcyIDB6TTQ0NS44IDMwMC40bDI4LjQgNjEuNmM1LjYgMTIgMTkuOCAxNy4zIDMxLjggMTEuN3MxNy4zLTE5LjggMTEuNy0zMS44bC0yOC41LTYxLjZjMi4yLS4yIDQuNC0uMyA2LjctLjMgMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzItNzItMzIuMi03Mi03MmMwLTIwLjIgOC4zLTM4LjUgMjEuOC01MS42ek0xNDQgNDI0Yy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcyYzMxLjMgMCA1OCAyMCA2Ny45IDQ4TDE0NCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuOSAwYy05LjkgMjgtMzYuNiA0OC02Ny45IDQ4eiJdfSxKbWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5OCwiZmFzdC1iYWNrd2FyZCJdLCJmMDQ5IiwiTTQ5Mi4yIDQ3Ny42Yy0xMiA1LTI1LjcgMi4yLTM0LjktNi45TDI4OCAzMDEuMyAyODggNDQ4YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45TDY0IDMwMS4zIDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJTNjQgNDYuMyA2NCA2NEw2NCAyMTAuNyAyMzMuNCA0MS40YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzI4OCA1MS4xIDI4OCA2NGwwIDE0Ni43IDE2OS40LTE2OS40YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzUxMiA1MS4xIDUxMiA2NGwwIDM4NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42eiJdfSxiR3Q9Sm1lLGU3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhZGRyZXNzLWJvb2siLGljb246WzUxMiw1MTIsWzYyMTM4LCJjb250YWN0LWJvb2siXSwiZjJiOSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6TTIwOCAyODhsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHptMCAxMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAzMjBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6Il19LHZHdD1lN2UseEd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhaWxib2F0IixpY29uOls1MTIsNTEyLFtdLCJlNDQ1IiwiTTI0MCAzNS45bDAgMzQ4LjEtMjI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmwyODggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTguOC03LjItMTYtMTYtMTZsLTIwOCAwIDAtNDggMTYxLjcgMGMxMi45IDAgMjAuNS0xNC40IDEzLjItMjVMMjY5LjIgMjYuOWMtOC45LTEzLTI5LjItNi43LTI5LjIgOXpNMTkyIDMyMGwwLTE4NC4yYzAtMTYuMS0yMS0yMi4xLTI5LjYtOC41TDQ3LjMgMzExLjVjLTYuNyAxMC43IDEgMjQuNSAxMy42IDI0LjVMMTc2IDMzNmM4LjggMCAxNi03LjIgMTYtMTZ6Il19LHlHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWJvb2ttYXJrIixpY29uOls0NDgsNTEyLFtdLCJlMGJiIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgMTY5LjRjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjYtNiAwLTExLjgtMi40LTE2LTYuNkwyNzIgMTQ0IDIzMC42IDE4NS40Yy00LjIgNC4yLTEwIDYuNi0xNiA2LjYtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjZMMTkyIDAgOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHdHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJlNTIxIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMzA1IDIyNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtMTAyLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDIuMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LHQ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjc4OTcsIm1pY3JvcGhvbmUtYWx0Il0sImYzYzkiLCJNOTYgOTZjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMjMyIDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtNC4xIDQ5LjMtNDUuMyA4OC05NS43IDg4LTUzIDAtOTYtNDMtOTYtOTZMOTYgOTZ6TTI0IDE2MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA5Ny45LTczLjMgMTc4LjctMTY4IDE5MC41bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUM3My4zIDQwMi43IDAgMzIxLjkgMCAyMjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sTUd0PXQ3ZSxhN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHktYWxsIixpY29uOls1NzYsNTEyLFsibWFpbC1yZXBseS1hbGwiXSwiZjEyMiIsIk0zMzIuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDQ4IDBjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxMTMuMy04MS41IDE2My45LTEwMC4yIDE3NC4xLTIuNSAxLjQtNS4zIDEuOS04LjEgMS45LTEwLjkgMC0xOS43LTguOS0xOS43LTE5LjcgMC03LjUgNC4zLTE0LjQgOS44LTE5LjUgOS40LTguOCAyMi4yLTI2LjQgMjIuMi01Ni43IDAtNTMtNDMtOTYtOTYtOTZsLTMyIDAgMCA4MGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXpNMjA1LjYgMjMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw1NC42IDIwOCAyMDUuNiAzNTguOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDEwIDIzMS4yYy02LjQtNi0xMC0xNC40LTEwLTIzLjJzMy42LTE3LjIgMTAtMjMuMkwxNzEuNiAyMy4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxrR3Q9YTdlLFNHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bml2ZXJzYWwtYWNjZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMjlhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjNsMCA1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJTMzM5IDM5NyAzMzQuOCAzODQuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZsMC01MC4xYzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxKZWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0LXBhcGVyIixpY29uOls1MTIsNTEyLFsxMjk1MzEsNjMyNjMsInRvaWxldC1wYXBlci1hbHQiLCJ0b2lsZXQtcGFwZXItYmxhbmsiXSwiZjcxZSIsIk0zMjcuMSAzMmMtOC44IDExLjEtMTYgMjMuMS0yMS45IDM0LjgtMjEuNCA0Mi43LTMzLjIgOTguNC0zMy4yIDE1Ny4ybDAgMjY0YzAgMzAuOS0yNS4xIDU2LTU2IDU2TDU2IDU0NGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCAyMjRDMCAxMTggNDMgMzIgOTYgMzJsMjMxLjEgMHpNNDE2IDQxNmMtNTMgMC05Ni04Ni05Ni0xOTJzNDMtMTkyIDk2LTE5MiA5NiA4NiA5NiAxOTItNDMgMTkyLTk2IDE5MnptMC0xMjhjMTcuNyAwIDMyLTI4LjcgMzItNjRzLTE0LjMtNjQtMzItNjQtMzIgMjguNy0zMiA2NCAxNC4zIDY0IDMyIDY0eiJdfSx6R3Q9SmVlLENHdD1KZWUsX0d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZyLWNhcmRib2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjcyOSIsIk01MTIgOTZMNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDExNy41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMzMuOS0zMy45YzcuMi03LjIgMTcuMS0xMS4zIDI3LjMtMTEuM3MyMC4xIDQuMSAyNy4zIDExLjNsMzMuOSAzMy45YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NHpNODAgMjQwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMzUyLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxUR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGl6emEtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY4MTgiLCJNMTY5LjcgLjljLTIyLjgtMS42LTQxLjkgMTQtNDcuNSAzNC43TDExMi41IDcyQzI5My4zIDcyLjMgNDM5LjcgMjE4LjcgNDQwIDM5OS41bDM2LjQtOS43YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjUtMTIuNi0xODIuOC0xNTguNi0zMjguOC0zNDEuNC0zNDEuNHptMjIyIDQxMS41Yy4yLTQuMSAuMy04LjIgLjMtMTIuNCAwLTE1NC42LTEyNS40LTI4MC0yODAtMjgwLTQuMSAwLTguMyAuMS0xMi40IC4zTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMWwzNzEuNi05OS4xek0xNzYgMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTk2IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxMR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuIixpY29uOls1NzYsNTEyLFtdLCJmNWJkIiwiTTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC0xMjggMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yMDh6bTI0MCA4MGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTMyMCA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTUxMiAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHI3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtbG93IixpY29uOls0NDgsNTEyLFsxMjgyNjQsInZvbHVtZS1kb3duIl0sImYwMjciLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTM4MC42IDE4MS41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzYxLjEgMjI3LjYgMzY4IDI0MSAzNjggMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDAyLjEgMzEyLjkgNDE2IDI4Ni4xIDQxNiAyNTZzLTEzLjktNTYuOS0zNS41LTc0LjV6Il19LCRHdD1yN2UsREd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3NzIixpY29uOlszODQsNTEyLFsxMjgzMjcsMTAwMTNdLCJmNjU0IiwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwLTgwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsODAgMCAwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4IDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtODAgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE3NiAweiJdfSxzN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uIixpY29uOlszODQsNTEyLFsxMjk0ODUsIm1hbGUiXSwiZjE4MyIsIk0yNDggMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMjc0IDEzMiAyMzQuMyAxMTIgMTkyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6Il19LEFHdD1zN2UsaTdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcyIsaWNvbjpbMzg0LDUxMixbOTIwMyw2MjAzMiwiaG91cmdsYXNzLWVtcHR5Il0sImYyNTQiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxMWMwIDQyLjQtMTYuOSA4My4xLTQ2LjkgMTEzLjFsLTY3LjkgNjcuOSA2Ny45IDY3LjljMzAgMzAgNDYuOSA3MC43IDQ2LjkgMTEzLjFsMCAxMWMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC0xMWMwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsNjcuOS02Ny45LTY3LjktNjcuOUM0OC45IDE1OC4xIDMyIDExNy40IDMyIDc1bDAtMTFDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNOTYgNjRsMCAxMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWw2Ny45IDY3LjkgNjcuOS02Ny45YzE4LTE4IDI4LjEtNDIuNCAyOC4xLTY3LjlsMC0xMS0xOTIgMHptMCAzODRsMTkyIDAgMC0xMWMwLTI1LjUtMTAuMS00OS45LTI4LjEtNjcuOWwtNjcuOS02Ny45LTY3LjkgNjcuOWMtMTggMTgtMjguMSA0Mi40LTI4LjEgNjcuOWwwIDExeiJdfSxQR3Q9aTdlLEVHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXNoIixpY29uOls1NzYsNTEyLFsxMjgwMzFdLCJmNTc4IiwiTTE4MC41IDE0MS41QzIxOS43IDEwOC41IDI3Mi42IDgwIDMzNiA4MHMxMTYuMyAyOC41IDE1NS41IDYxLjVjMzkuMSAzMyA2Ni45IDcyLjQgODEgOTkuOCA0LjcgOS4yIDQuNyAyMC4xIDAgMjkuMy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjgtMzkuMiAzMy4xLTkyIDYxLjUtMTU1LjUgNjEuNXMtMTE2LjMtMjguNS0xNTUuNS02MS41Yy0xNi4yLTEzLjctMzAuNS0yOC41LTQyLjctNDMuMUw0OC4xIDM3OS42Yy0xMi41IDcuMy0yOC40IDUuMy0zOC43LTQuOXMtMTIuNC0yNi01LjMtMzguNkw1MCAyNTYgNC4yIDE3NS45Yy03LjItMTIuNi01LTI4LjQgNS4zLTM4LjZzMjYuMS0xMi4yIDM4LjctNC45bDg5LjcgNTIuM2MxMi4yLTE0LjYgMjYuNS0yOS40IDQyLjctNDMuMXpNNDQ4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxJR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bXN0aWNrLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY2ZDciLCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjItNC42LTEuMS05LjUtMS44LTE0LjUtMS44LTMzLjEgMC02MCAyNi45LTYwIDYwczI2LjkgNjAgNjAgNjBjNi4zIDAgMTIgNS43IDEyIDEyIDAgMzMuMSAyNi45IDYwIDYwIDYwczYwLTI2LjkgNjAtNjBjMC01LS42LTkuOC0xLjgtMTQuNS00LjItMTYuOS01LjItMzcuMSA3LjItNDkuNGwyNi44LTI2LjhjNi02IDE0LjEtOS40IDIyLjYtOS40bDg5LjIgMGM2LjMgMCAxMi40LS4zIDE4LjUtMSAxMS45LTEuMiAxNi40LTE1LjUgMTAuOC0yNi04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01MyAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA4IDAgMTUuNyAuOCAyMy4yIDIuNCAxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42LTE0LjctODIuMy04Ni43LTE0NC44LTE3My4yLTE0NC44LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2bDAgODkuMnoiXX0sTkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ3MyIsIk0xOTIgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJ6TTAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcyek00MzIgOTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yODhjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LFJHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdG9tIixpY29uOls0NDgsNTEyLFs5ODgzXSwiZjVkMiIsIk0yMjQgMzk4LjhjLTExLjggNS4xLTIzLjQgOS43LTM0LjkgMTMuNSAxNi43IDMzLjggMzEgMzUuNyAzNC45IDM1LjdzMTguMS0xLjkgMzQuOS0zNS43Yy0xMS40LTMuOS0yMy4xLTguNC0zNC45LTEzLjV6TTQxNCAyNTZjMzMgNDUuMiA0NC4zIDkwLjkgMjMuNiAxMjgtMjAuMiAzNi4zLTYyLjUgNDkuMy0xMTUuMiA0My4yLTIyIDUyLjEtNTUuNyA4NC44LTk4LjQgODQuOHMtNzYuNC0zMi43LTk4LjQtODQuOEM3Mi45IDQzMy4zIDMwLjYgNDIwLjMgMTAuNCAzODQtMTAuMyAzNDYuOSAxIDMwMS4yIDM0IDI1NiAxIDIxMC44LTEwLjMgMTY1LjEgMTAuNCAxMjggMzAuNiA5MS43IDcyLjkgNzguNyAxMjUuNiA4NC44IDE0Ny42IDMyLjcgMTgxLjIgMCAyMjQgMHM3Ni40IDMyLjcgOTguNCA4NC44YzUyLjctNi4xIDk1IDYuOCAxMTUuMiA0My4yIDIwLjcgMzcuMSA5LjQgODIuOC0yMy42IDEyOHptLTY1LjggNjcuNGMtMS43IDE0LjItMy45IDI4LTYuNyA0MS4yIDMxLjggMS40IDM4LjYtOC43IDQwLjItMTEuNyAyLjMtNC4yIDctMTcuOS0xMS45LTQ4LjEtNi44IDYuMy0xNCAxMi41LTIxLjYgMTguNnptLTYuNy0xNzUuOWMyLjggMTMuMSA1IDI2LjkgNi43IDQxLjIgNy42IDYuMSAxNC44IDEyLjMgMjEuNiAxOC42IDE4LjktMzAuMiAxNC4yLTQ0IDExLjktNDguMS0xLjYtMi45LTguNC0xMy00MC4yLTExLjd6TTI1OC45IDk5LjdDMjQyLjEgNjUuOSAyMjcuOSA2NCAyMjQgNjRzLTE4LjEgMS45LTM0LjkgMzUuN2MxMS40IDMuOSAyMy4xIDguNCAzNC45IDEzLjUgMTEuOC01LjEgMjMuNC05LjcgMzQuOS0xMy41em0tMTU5IDg4LjljMS43LTE0LjMgMy45LTI4IDYuNy00MS4yLTMxLjgtMS40LTM4LjYgOC43LTQwLjIgMTEuNy0yLjMgNC4yLTcgMTcuOSAxMS45IDQ4LjEgNi44LTYuMyAxNC0xMi41IDIxLjYtMTguNnpNNzguMiAzMDQuOGMtMTguOSAzMC4yLTE0LjIgNDQtMTEuOSA0OC4xIDEuNiAyLjkgOC40IDEzIDQwLjIgMTEuNy0yLjgtMTMuMS01LTI2LjktNi43LTQxLjItNy42LTYuMS0xNC44LTEyLjMtMjEuNi0xOC42ek0zMDQgMjU2YTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHptLTgwLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sT0d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InAiLGljb246WzMyMCw1MTIsWzExMl0sIjUwIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMTI4IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBTMjQ4LjQgMzUyIDE2MCAzNTJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI4OGw5NiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2bC05NiAwIDAgMTkyeiJdfSxGR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXItdXAiLGljb246WzUxMiw1MTIsW10sImU1MTgiLCJNMjA2LjggNDcuOEMyMDIuMyA1OC41IDIwMCA3MCAyMDAgODEuNmwwIDEwMC40LTE1MiAxMTQgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDIzNC43IDAgMjQ4TDAgMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDE1MiAwIDAgNTQuNC02NiA1Mi44Yy0zLjggMy02IDcuNi02IDEyLjVsMCAyNC4zYzAgOC44IDcuMiAxNiAxNiAxNmw4OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQuM2MwLTQuOS0yLjItOS41LTYtMTIuNWwtNjYtNTIuOCAwLTU0LjQgMTUyIDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OC0xNTItMTE0IDAtMTAwLjRjMC0xMS42LTIuMy0yMy4xLTYuOC0zMy44bC0yNy4xLTY1QzI3NC40LTI2LjIgMjY1LjctMzIgMjU2LTMycy0xOC40IDUuOC0yMi4yIDE0LjhsLTI3LjEgNjV6Il19LEJHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSxIR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hlZXQtcGxhc3RpYyIsaWNvbjpbMzg0LDUxMixbXSwiZTU3MSIsIk0wIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDkuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDM2NS4zIDM4Ni43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4em0yMDggNS41bDAtOTMuNWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDAtMTE3LjUgMTE3LjV6TTE1MyAxMDVsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXptOTYgMzJMMTM3IDI0OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMTUgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXoiXX0scUd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InYiLGljb246WzM4NCw1MTIsWzExOF0sIjU2IiwiTTE5LjcgMzQuNWMxNi4zLTYuOCAzNSAuOSA0MS44IDE3LjJMMTkyIDM2NC44IDMyMi41IDUxLjdjNi44LTE2LjMgMjUuNS0yNCA0MS44LTE3LjJzMjQgMjUuNSAxNy4yIDQxLjhsLTE2MCAzODRjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43cy0yNC42LTcuOC0yOS41LTE5LjdMMi41IDc2LjNjLTYuOC0xNi4zIC45LTM1IDE3LjItNDEuOHoiXX0sbzdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QiLGljb246WzUxMiw1MTIsWyJsaXN0LXNxdWFyZXMiXSwiZjAzYSIsIk00MCA0OEMyNi43IDQ4IDE2IDU4LjcgMTYgNzJsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMNDAgNDh6TTE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwek0xNiAyMzJsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek00MCAzNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxWR3Q9bzdlLGpHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaXNjZXMiLGljb246WzQ0OCw1MTIsW10sImU4NGMiLCJNNDAuNCAxMC40YzExLjktMTMgMzIuMi0xMy45IDQ1LjItMiAyLjkgMi43IDI4LjMgMjYuNyA1My42IDY3LjggMjIuMyAzNi4yIDQ1IDg2LjYgNTEuMSAxNDcuOGw2Ny4zIDBjNi4xLTYxLjEgMjguOC0xMTEuNiA1MS4xLTE0Ny44IDI1LjMtNDEuMSA1MC43LTY1LjEgNTMuNi02Ny44IDEzLTExLjkgMzMuMy0xMS4xIDQ1LjIgMiAxMS45IDEzIDExIDMzLjMtMiA0NS4yLTEuNCAxLjMtMjIgMjEuMS00Mi40IDU0LjItMTcuOSAyOS4xLTM1LjQgNjgtNDEuMiAxMTQuMmw5NCAwIDMuMyAuMmMxNi4xIDEuNiAyOC43IDE1LjMgMjguNyAzMS44cy0xMi42IDMwLjItMjguNyAzMS44bC0zLjMgLjItOTQgMGM1LjggNDYuMiAyMy4zIDg1LjEgNDEuMiAxMTQuMiAyMC40IDMzLjEgNDEgNTIuOSA0Mi40IDU0LjIgMTMgMTEuOSAxMy45IDMyLjIgMiA0NS4yLTExLjkgMTMtMzIuMiAxMy45LTQ1LjIgMi0yLjktMi43LTI4LjMtMjYuNy01My42LTY3LjgtMjIuMy0zNi4yLTQ1LTg2LjYtNTEuMS0xNDcuOGwtNjcuMyAwYy02LjEgNjEuMS0yOC44IDExMS42LTUxLjEgMTQ3LjgtMjUuMyA0MS4xLTUwLjcgNjUuMS01My42IDY3LjgtMTMgMTEuOS0zMy4zIDExLjEtNDUuMi0yLTExLjktMTMtMTEtMzMuMyAyLTQ1LjIgMS40LTEuMyAyMi0yMS4xIDQyLjQtNTQuMiAxNy45LTI5LjEgMzUuNC02OCA0MS4yLTExNC4ybC05NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk0IDBjLTUuOC00Ni4yLTIzLjMtODUuMS00MS4yLTExNC4yLTIwLjQtMzMuMS00MS01Mi45LTQyLjQtNTQuMi0xMy0xMS45LTEzLjktMzIuMi0yLTQ1LjJ6Il19LFVHdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2xhci1wYW5lbCIsaWNvbjpbNTc2LDUxMixbXSwiZjViYSIsIk0xMjEuOCAzMmMtMzAgMC01NiAyMC44LTYyLjUgNTAuMUw5LjYgMzA2LjFDLjcgMzQ2LjEgMzEuMSAzODQgNzIgMzg0bDE4NC4xIDAgMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtNjQgMTg0LjEgMGM0MC45IDAgNzEuNC0zNy45IDYyLjUtNzcuOWwtNDkuOC0yMjRDNTEwLjQgNTIuOCA0ODQuNSAzMiA0NTQuNSAzMkwxMjEuOCAzMnpNMjQ1LjYgOTZsODUuMiAwIDcuMyA4OC05OS44IDAgNy4zLTg4em0tNTUuNSA4OGwtODcuOCAwIDE5LjYtODggNzUuNiAwLTcuMyA4OHpNOTEuNiAyMzJsOTQuNSAwLTcuMyA4OC0xMDYuNyAwIDE5LjYtODh6bTE0Mi42IDBsMTA3LjggMCA3LjMgODgtMTIyLjUgMCA3LjMtODh6bTE1NiAwbDk0LjUgMCAxOS42IDg4LTEwNi43IDAtNy4zLTg4ek00NzQgMTg0bC04Ny44IDAtNy4zLTg4IDc1LjYgMCAxOS42IDg4eiJdfSxXR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZC1taW5lLW9uIixpY29uOls1NzYsNTEyLFtdLCJlNTFiIiwiTTMxMiAwbDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0TDI2NCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTE2MCAyODhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMODAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDgwIDAgMC0zMnpNMTIgMTE0LjdjNy40LTExIDIyLjMtMTQgMzMuMy02LjdsOTYgNjRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNzLTIyLjMgMTQtMzMuMyA2LjdsLTk2LTY0Yy0xMS03LjQtMTQtMjIuMy02LjctMzMuM3pNNTMwLjcgMTA4YzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtOTYgNjRjLTExIDcuNC0yNS45IDQuNC0zMy4zLTYuN3MtNC40LTI1LjkgNi43LTMzLjNsOTYtNjR6Il19LGV0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkcGhvbmVzIixpY29uOls0NDgsNTEyLFsxMjc5MTEsNjI4NjMsImhlYWRwaG9uZXMtYWx0IiwiaGVhZHBob25lcy1zaW1wbGUiXSwiZjAyNSIsIk02NCAyMjRjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBzMTYwIDcxLjYgMTYwIDE2MGwwIDM3LjVjLTEwLTMuNS0yMC44LTUuNS0zMi01LjVsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTEuMiAwLTIyIDEuOS0zMiA1LjVMNjQgMjI0eiJdfSxHR3Q9ZXRlLFlHdD1ldGUsS0d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cyIsaWNvbjpbNDQ4LDUxMixbMTI4NjUzXSwiZjIwNyIsIk05NiAwQzQzIDAgMCA0MyAwIDk2TDAgMzg0YzAgMjkuOCAyMC40IDU0LjkgNDggNjJsMCAzNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMTkyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzRjMjcuNi03LjEgNDgtMzIuMiA0OC02MmwwLTI4OGMwLTUzLTQzLTk2LTk2LTk2TDk2IDB6TTY0IDE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMDQgMCAwIDExMi0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OHptMTg0IDgwbDAtMTEyIDEwNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEwNCAwek05NiAzMjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yNTYgMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE1MiA3MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sWkd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcG93ZXJwb2ludCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTUyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0IDI0IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJsLTQ4IDB6bTQ4IDk2bC0yNCAwIDAtNDggMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHoiXX0sbjdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1b3RlLWxlZnQiLGljb246WzQ0OCw1MTIsWzgyMjAsInF1b3RlLWxlZnQtYWx0Il0sImYxMGQiLCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZ6bTI1NiAwYzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTEzNnoiXX0sWEd0PW43ZSxRR3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1kb3duIixpY29uOls0NDgsNTEyLFtdLCJmMDc4IiwiTTIwMS40IDQwNi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDMzOC43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJ6Il19LGw3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1hc2lhIixpY29uOls1MTIsNTEyLFsxMjc3NTksImdsb2JlLWFzaWEiXSwiZjU3ZSIsIk01MCAyODQuOGM0LjIgMi4xIDkgMy4yIDE0IDMuMmw1MC43IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTMuMyAxMy4zYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwxOC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNC0xMC43IDI0LTI0bDAtNDIuN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmwxMy4zLTEzLjNjNi02IDkuNC0xNC4xIDkuNC0yMi42TDMwNCA1N2MwLTEuMi0uMS0yLjMtLjItMy41LTE1LjQtMy42LTMxLjQtNS41LTQ3LjgtNS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOCAwIDkuOCAuNyAxOS40IDIgMjguOHptNDAzLjMgMzcuM2MtMy4yLTEuNC02LjctMi4xLTEwLjUtMi4xTDQzMiAzMjBjLTguOCAwLTE2LTcuMi0xNi0xNnMtNy4yLTE2LTE2LTE2bC0zNC43IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40bC00NS4zIDQ1LjNjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDE4LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40IDIuMiAyLjIgNC43IDQuMSA3LjMgNS41IDM5LjMtMjUuNCA2OS41LTYzLjYgODQuNi0xMDguOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTI4IDM2OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0yNzIgMjU2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2em00OC0xMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ6Il19LEpHdD1sN2UsZVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlbnQtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTNmNSIsIk0yMDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1LjRjNDMuNiA1LjIgODMgMjQuNSAxMTMuMyA1My4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMjQuNC0yMy01Ny4yLTM3LjEtOTMuMy0zNy4xLTc1LjEgMC0xMzYgNjAuOS0xMzYgMTM2czYwLjkgMTM2IDEzNiAxMzZjMzYuMiAwIDY5LTE0LjEgOTMuMy0zNy4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzMyMyA0MzAuMSAyODMuNiA0NDkuNCAyNDAgNDU0LjZsMCAyNS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjhDODQuNyA0MzMuNSAxNiAzNTIuOCAxNiAyNTZTODQuNyA3OC41IDE3NiA2MGwwLTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSx0WXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWNhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MiIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGwuMiAwYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40bDQ4IDBjNSAwIDkuOC0yLjQgMTIuOC02LjRsNDAtNTMuM2MyLTIuNyA1LjItNC4zIDguNS00LjNsLjIgMGM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRMMzUyIDI3MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExNy42ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sYVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NmIiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sYzdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MiLGljb246WzUxMiw1MTIsWzEyNzg2NCwiZ2xhc3MtbWFydGluaS1hbHQiXSwiZjU3YiIsIk0yLjQgNTEuOEM3LjQgMzkuOCAxOS4xIDMyIDMyIDMybDQ0OCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMjg4IDMwMS4zIDI4OCA0NDggMzUyIDQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTE0Ni43LTIxNC42LTIxNC42Qy4yIDc3LjUtMi41IDYzLjcgMi40IDUxLjh6TTM1NC43IDE0NGw0OC00OC0yOTMuNSAwIDQ4IDQ4IDE5Ny41IDB6Il19LHJZdD1jN2Usc1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWciLGljb246WzQ0OCw1MTIsWzEyODI2OF0sImYxZTYiLCJNMTI4LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDY0YzAgOTUuMS02OS4yIDE3NC4xLTE2MCAxODkuM2wwIDY2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzEwMS4yIDM5OC4xIDMyIDMxOS4xIDMyIDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0saVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbm9yYW1hIixpY29uOls1NzYsNTEyLFtdLCJlMjA5IiwiTTQzLjkgNDhDMTkuNyA0OCAwIDY3LjcgMCA5MS45TDAgNDIwLjFjMCAyNC4zIDE5LjcgNDMuOSA0My45IDQzLjkgNS41IDAgMTAuNy0xIDE1LjctMi45IDEyLjktNC45IDEwMy40LTM3LjEgMjI4LjQtMzcuMXMyMTUuNSAzMi4zIDIyOC40IDM3LjFjNSAxLjkgMTAuMiAyLjkgMTUuNyAyLjkgMjQuMyAwIDQzLjktMTkuNyA0My45LTQzLjlsMC0zMjguMmMwLTI0LjMtMTkuNy00My45LTQzLjktNDMuOS01LjUgMC0xMC43IDEtMTUuNyAyLjktMTIuOSA0LjktMTAzLjQgMzcuMS0yMjguNCAzNy4xUzcyLjUgNTUuNyA1OS42IDUwLjlDNTQuNiA0OSA0OS40IDQ4IDQzLjkgNDh6TTcyIDE3NmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwem0yNjQuMS0xNmM3LjUgMCAxNC42IDMuNiAxOS4xIDkuNkw0NzkuNyAzMzYuMmM1LjkgNy45IDYuNCAxOC41IDEuMyAyNi45cy0xNC44IDEyLjgtMjQuNSAxMS4xYy00NS44LTcuOC0xMDMuMy0xNC4yLTE2OC40LTE0LjItNjUuNiAwLTEyMy40IDYuNS0xNjkuMyAxNC40LTkuOCAxLjctMTkuNy0yLjktMjQuNy0xMS41cy00LjMtMTkuNCAxLjktMjcuMkwxNjUuMyAyNDljNC42LTUuNyAxMS41LTkgMTguNy05czE0LjIgMy4zIDE4LjcgOWwyNy41IDM0LjQgODYuNy0xMTMuOWM0LjYtNiAxMS43LTkuNSAxOS4yLTkuNXoiXX0sbHY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvY2stcm90YXRlLWxlZnQiLGljb246WzU3Niw1MTIsWyJoaXN0b3J5Il0sImYxZGEiLCJNMjg4IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkyUzM5NCA0NDggMjg4IDQ0OGMtNjUuMiAwLTEyMi45LTMyLjUtMTU3LjYtODIuMy0xMC4xLTE0LjUtMzAuMS0xOC00NC42LTcuOXMtMTggMzAuMS03LjkgNDQuNkMxMjQuMSA0NjguNiAyMDEgNTEyIDI4OCA1MTIgNDI5LjQgNTEyIDU0NCAzOTcuNCA1NDQgMjU2UzQyOS40IDAgMjg4IDBDMjAyLjMgMCAxMjYuNSA0Mi4xIDgwIDEwNi43TDgwIDgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzE2IDYyLjMgMTYgODBsMCAxMTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuNiAwYy41IDAgMSAwIDEuNSAwbDg2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM4LjMgMEMxNTQuOSAxMDIuNiAyMTcgNjQgMjg4IDY0em0yNCA4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwNGMwIDYuNCAyLjUgMTIuNSA3IDE3bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjUtNjUgMC05NC4xeiJdfSxvWXQ9bHYsbll0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imphci13aGVhdCIsaWNvbjpbMzIwLDUxMixbXSwiZTUxNyIsIk0zMi04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDE2QzQyLjcgMTYgMzIgNS4zIDMyLTh6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTExMiAzMmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDc1LjYgMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAxNjBjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43LTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3ptNDggMTE3LjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN2wtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDc1LjYgMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAyNTZjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43ek0xMTIgMzUybC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOCAwIDMyLjEgMjYgNTguMiA1OC4yIDU4LjJsMjEuOCAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyIDIxLjggMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAzNTJjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43LTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3oiXX0sdHRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWFycm93LWRvd24iLGljb246WzU3Niw1MTIsWzYyMzM3LCJjbG91ZC1kb3dubG9hZCIsImNsb3VkLWRvd25sb2FkLWFsdCJdLCJmMGVkIiwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzc3IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LGxZdD10dGUsY1l0PXR0ZSxkN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcmFtcC1ib3giLGljb246WzU3Niw1MTIsWyJ0cnVjay1sb2FkaW5nIl0sImY0ZGUiLCJNNDAwIDMyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI0OC4yLTI5Ny4yIDg5LjJDNS45IDQ1NC40LTMuNyA0NzIuMyAxLjQgNDg5LjJzMjIuOSAyNi41IDM5LjggMjEuNWwzMTUuNS05NC42IDQzLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhsMC0zOTItMTc2IDB6TTUyOCA0MjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MGMyMi4xIDAgMzkuOSAxNy45IDQwIDM5LjlsMCAuMXpNNTEuOSAxNDkuNUMxOC4xIDE1OS44LS45IDE5NS42IDkuNCAyMjkuNGwyOC4xIDkxLjhDNDcuOCAzNTUgODMuNiAzNzQgMTE3LjQgMzYzLjdsOTEuOC0yOC4xYzMzLjgtMTAuMyA1Mi44LTQ2LjEgNDIuNS03OS45bC0yOC4xLTkxLjhjLTEwLjMtMzMuOC00Ni4xLTUyLjgtNzkuOS00Mi41TDUxLjkgMTQ5LjV6Il19LGRZdD1kN2UsdVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLWRvd24iLGljb246WzM4NCw1MTIsWzg5NjRdLCJmMTA3IiwiTTE2OS40IDM3NC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDMwNi43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6Il19LHBZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1YyIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LGZZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWF4aW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ3MF0sImYyZDAiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTI0IDY0bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0saFl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWhvbGRpbmctY2lyY2xlIixpY29uOls2NDAsNTEyLFtdLCJlNGZiIiwiTTMyMCAwYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnpNNDAgNjRjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxNjAuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1MS4xIDUxLjFjOC4zIDguMyAyMS4zIDkuNiAzMSAzLjEgMTIuOS04LjYgMTQuNy0yNi45IDMuNy0zNy44LTcuMy03LjMtMjMuMS0yMy4xLTQ3LjItNDcuMi0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4ybDAgMCAyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAxMDRDMCA4MS45IDE3LjkgNjQgNDAgNjR6bTU2MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjIxLjVjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlMNTEyIDQ5My4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDQwMCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNzguOWMwLTI5LjcgMTEuOC01OC4yIDMyLjgtNzkuMmwyNS4zLTI1LjMgMCAwYzcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy0yNC4xIDI0LjEtMzkuOSAzOS45LTQ3LjIgNDcuMi0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOCA5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1NjAgMTA0YzAtMjIuMSAxNy45LTQwIDQwLTQweiJdfSx1N2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tcGluIixpY29uOlszODQsNTEyLFsibWFwLW1hcmtlciJdLCJmMDQxIiwiTTE5MiAwQzg2IDAgMCA4NC40IDAgMTg4LjYgMCAzMDcuOSAxMjAuMiA0NTAuOSAxNzAuNCA1MDUuNCAxODIuMiA1MTguMiAyMDEuOCA1MTguMiAyMTMuNiA1MDUuNCAyNjMuOCA0NTAuOSAzODQgMzA3LjkgMzg0IDE4OC42IDM4NCA4NC40IDI5OCAwIDE5MiAweiJdfSxtWXQ9dTdlLGdZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsaW5nLWJhbGwiLGljb246WzUxMiw1MTIsW10sImY0MzYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0scDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtZmxhdGJlZCIsaWNvbjpbNTc2LDUxMixbImRvbGx5LWZsYXRiZWQiXSwiZjQ3NCIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjg4YzAgMzkuOCAyOS4xIDcyLjggNjcuMSA3OS0yIDUuMy0zLjEgMTEtMy4xIDE3IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMTk3LjUgMGMtMS44IDUtMi43IDEwLjQtMi43IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMzQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00MDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjg4QzEyOCAzNS44IDkyLjIgMCA0OCAwTDMyIDB6TTIyNCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzZjMCAyNi41IDIxLjUgNDggNDggNDhsMjQwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjI0IDY0eiJdfSxiWXQ9cDdlLGY3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS11c2VyIixpY29uOls1MTIsNTEyLFsiaG9tZS11c2VyIl0sImUxYjAiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE0NCA0MzJjMC00NC4yIDM1LjgtODAgODAtODBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZ6Il19LHZZdD1mN2UseFl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdob3N0IixpY29uOlszODQsNTEyLFsxMjgxMjNdLCJmNmUyIiwiTTQwLjEgNDY3LjFsLTExLjIgOUMyNS43IDQ3OC42IDIxLjggNDgwIDE3LjggNDgwIDggNDgwIDAgNDcyIDAgNDYyLjJMMCAxOTJDMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkybDAgMjcwLjJjMCA5LjgtOCAxNy44LTE3LjggMTcuOC00IDAtNy45LTEuNC0xMS4xLTMuOWwtMTEuMi05Yy0xMy40LTEwLjctMzIuOC05LTQ0LjEgMy45TDI2OS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02bC0yNi42LTMwLjVjLTEyLjctMTQuNi0zNS40LTE0LjYtNDguMiAwTDE0MS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02TDg0LjIgNDcxYy0xMS4zLTEyLjktMzAuNy0xNC42LTQ0LjEtMy45ek0xNjAgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0seVl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbm9kZXMiLGljb246WzY0MCw1MTIsW10sImU2OTYiLCJNNDgwIDIwOEM1MDMuNyAyMDggNTI1LjYgMjE1LjMgNTQzLjcgMjI3LjkgNTM2LjkgMTAwLjkgNDI1IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMDcuNSAzMiAyNDAgMzIgMjk0LjMgNTEuMiAzNDQuMyA4My42IDM4NC41TDM0LjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43YzI3LjIgMTEuNCA1Ni45IDE4LjQgODguMSAyMC4yIC4xLTE4LjkgNC45LTM4IDE1LTU1LjUgMTcuMS0yOS43IDQ1LjgtNDguNSA3Ny01NC4ybDkuMi0xNmMtMy40LTEwLjctNS4yLTIyLTUuMi0zMy44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyek0zMjguNiA0NDhjLTE3LjcgMzAuNi03LjIgNjkuNyAyMy40IDg3LjRzNjkuNyA3LjIgODcuNC0yMy40YzEuNS0yLjYgMi44LTUuMyAzLjktOGw3My4zIDBjMS4xIDIuNyAyLjQgNS40IDMuOSA4IDE3LjcgMzAuNiA1Ni44IDQxLjEgODcuNCAyMy40czQxLjEtNTYuOCAyMy40LTg3LjRjLTEzLjQtMjMuMi0zOS4xLTM0LjgtNjQtMzEuNGwtMTcuNi0zMC43Yy0xMSAxMS43LTI1IDIwLjYtNDAuNiAyNS42bDE2LjUgMjguOWMtMy44IDQuOC02LjggMTAtOSAxNS42bC03My40IDBjLTIuMi01LjYtNS4zLTEwLjgtOS0xNS42bDMzLTU3LjdjNC4xIC44IDguNCAxLjMgMTIuOCAxLjMgMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NGMwIDEzLjQgNC4xIDI1LjggMTEuMiAzNi4xbC0zNC42IDYwLjVjLTI1LTMuNC01MC42IDguMy02NCAzMS40eiJdfSx3WXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWFycm93LWRvd24tdG8tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzOCIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMTc2IDQ4MGwzMiAwIDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4ek01NjYuNiAxNjYuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw0MzIgMTQ2LjcgNDMyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0Ni43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxNWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZiIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LGg3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc3dpbW1pbmciLGljb246WzY0MCw1MTIsWzEyNzk0Niwic3dpbW1lciJdLCJmNWM0IiwiTTU1MiAxNTJhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek0yOTMuNCAxOTguMmwtODguNiA3My45YzEuMSAwIDIuMi0uMSAzLjMtLjEgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDQuOCAwIDkuNyAuMiAxNC41IC42LTguMy0zMC0yNC4zLTU3LjctNDYuOC04MC4yLTE4LjQtMTguNC00MC42LTMyLjctNjUtNDEuOGwtNjguNi0yNS43Yy0yNy40LTEwLjMtNTgtNy41LTgzLjEgNy42bC01My41IDMyLjFjLTE1LjIgOS4xLTIwLjEgMjguNy0xMSA0My45czI4LjcgMjAuMSA0My45IDExTDIzMCAxODcuM2M4LjQtNSAxOC42LTUuOSAyNy43LTIuNWwzNS43IDEzLjR6bTExMCAxODEuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDM4Ni4zIDE3LjYgMzk0LjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxrWXQ9aDdlLG03ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xMjggMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxTWXQ9bTdlLGc3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1waWUiLGljb246WzU3Niw1MTIsWyJwaWUtY2hhcnQiXSwiZjIwMCIsIk01MTIuNCAyNDBsLTE3NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NmMwLTE3LjcgMTQuNC0zMi4yIDMxLjktMjkuOSAxMDcgMTQuMiAxOTEuOCA5OSAyMDYgMjA2IDIuMyAxNy41LTEyLjIgMzEuOS0yOS45IDMxLjl6TTIyMi42IDM3LjJjMTguMS0zLjggMzMuOCAxMSAzMy44IDI5LjVsMCAxOTcuM2MwIDUuNiAyIDExIDUuNSAxNS4zTDM5NCA0MzguN2MxMS43IDE0LjEgOS4yIDM1LjQtNi45IDQ0LjEtMzQuMSAxOC42LTczLjIgMjkuMi0xMTQuNyAyOS4yLTEzMi41IDAtMjQwLTEwNy41LTI0MC0yNDAgMC0xMTUuNSA4MS41LTIxMS45IDE5MC4yLTIzNC44ek00NzcuOCAyODhsNjQgMGMxOC41IDAgMzMuMyAxNS43IDI5LjUgMzMuOC0xMC4yIDQ4LjQtMzUgOTEuNC02OS42IDEyNC4yLTEyLjMgMTEuNy0zMS42IDkuMi00Mi40LTMuOUwzNzQuOSAzNDAuNGMtMTcuMy0yMC45LTIuNC01Mi40IDI0LjYtNTIuNGw3OC4yIDB6Il19LHpZdD1nN2UsQ1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZyb2ciLGljb246WzU3Niw1MTIsW10sImY1MmUiLCJNMzY4IDMyYzQxLjcgMCA3NS45IDMxLjggNzkuNyA3Mi41bDg1LjYgMjYuM2MyNS40IDcuOCA0Mi44IDMxLjMgNDIuOCA1Ny45IDAgMjEuOC0xMS43IDQxLjktMzAuNyA1Mi43bC0xNDQuNSA4Mi4xIDkyLjUgOTIuNSA1MC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40TDM0Ni45IDM2MC4yYzExLjctMzYgMy4yLTc3LjEtMjUuNC0xMDUuNy00MC42LTQwLjYtMTA2LjMtNDAuNi0xNDYuOS0uMUwxMDEgMzI0LjRjLTYuNCA2LjEtNi43IDE2LjItLjYgMjIuNnMxNi4yIDYuNiAyMi42IC42bDczLjgtNzAuMiAuMS0uMSAuMS0uMWMzLjUtMy41IDcuMy02LjYgMTEuMy05LjIgMjcuOS0xOC41IDY1LjktMTUuNCA5MC41IDkuMiAyNC43IDI0LjcgMjcuNyA2Mi45IDkgOTAuOS0yLjYgMy44LTUuNiA3LjUtOSAxMC45TDI2MS44IDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MEMyOC43IDQ4MCAwIDQ1MS4zIDAgNDE2IDAgMjQ5LjYgMTI3IDExMi45IDI4OS4zIDk3LjUgMjk2LjIgNjAuMiAzMjguOCAzMiAzNjggMzJ6bTAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sX1l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtYm90dGxlIixpY29uOlszMjAsNTEyLFtdLCJmNzJmIiwiTTgwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxMS44LTYuNCAyMi4yLTE2IDI3LjdsMCAxNDUuNmM1Ni41IDI0LjcgOTYgODEuMSA5NiAxNDYuN2wwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1NzZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjg4YzAtNjUuNiAzOS41LTEyMiA5Ni0xNDYuN0w5Ni00LjNDODYuNC05LjggODAtMjAuMiA4MC0zMnpNOTYgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAyODh6Il19LFRZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmJveCIsaWNvbjpbNTEyLDUxMixbXSwiZjAxYyIsIk05MS44IDMyQzU5LjkgMzIgMzIuOSA1NS40IDI4LjQgODYuOUwuNiAyODEuMmMtLjQgMy0uNiA2LS42IDkuMUwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTEyNS43YzAtMy0uMi02LjEtLjYtOS4xTDQ4My42IDg2LjlDNDc5LjEgNTUuNCA0NTIuMSAzMiA0MjAuMiAzMkw5MS44IDMyem0wIDY0bDMyOC41IDAgMjcuNCAxOTItNTkuOSAwYy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC0xNC4zIDI4LjZjLTUuNCAxMC44LTE2LjUgMTcuNy0yOC42IDE3LjdsLTEyMC40IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdsLTE0LjMtMjguNmMtNS40LTEwLjgtMTYuNS0xNy43LTI4LjYtMTcuN0w2NC4zIDI4OCA5MS44IDk2eiJdfSxiN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWgiLGljb246WzQ0OCw1MTIsWyJoLXNxdWFyZSJdLCJmMGZkIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMCAxNjhsMCAxNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NC05NiAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDk2IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxMWXQ9YjdlLCRZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJlM2IyIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIyNCAyNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LHY3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXJpZ2h0Il0sImYxMzgiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHpNMjQxIDM3N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4Ny04Ny04Ny04N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwTDM0NSAyMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjQxIDM3N3oiXX0sRFl0PXY3ZSxBWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jc3YiLGljb246WzU3Niw1MTIsW10sImY2ZGQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4MCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE3NiAwIDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTI2NCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLThjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwxNiAwYzIuMiAwIDQgMS44IDQgNGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0xMzYgMGMtMjguNyAwLTUyIDIzLjMtNTIgNTJzMjMuMyA1MiA1MiA1MmM2LjYgMCAxMiA1LjQgMTIgMTJzLTUuNCAxMi0xMiAxMmwtMzIgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMzIgMGMyOC43IDAgNTItMjMuMyA1Mi01MnMtMjMuMy01Mi01Mi01MmMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwyNCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjQgMHptOTYgMGMtMTEgMC0yMCA5LTIwIDIwbDAgMzEuNmMwIDM1LjUgMTAuNSA3MC4zIDMwLjIgOTkuOGw1LjEgNy43YzMuNyA1LjYgMTAgOC45IDE2LjYgOC45czEyLjktMy4zIDE2LjYtOC45bDUuMS03LjdjMTkuNy0yOS42IDMwLjItNjQuMyAzMC4yLTk5LjhsMC0zMS42YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMxLjZjMCAxOS42LTQuMSAzOC45LTEyIDU2LjctNy45LTE3LjgtMTItMzcuMS0xMi01Ni43bDAtMzEuNmMwLTExLTktMjAtMjAtMjB6Il19LFBZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95IixpY29uOls2NDAsNTEyLFtdLCJmOGMwIiwiTTE4Mi4yIDc2LjFMMTMwLjggMzA3LjVDMTQ1LjUgMzI0LjkgMTY3LjQgMzM2IDE5MiAzMzZsMjU2IDBjMjQuNiAwIDQ2LjUtMTEuMSA2MS4yLTI4LjVMNDU3LjggNzYuMWMtNS43LTI1LjgtMjguNi00NC4xLTU1LTQ0LjEtMTIuMiAwLTI0LjEgNC0zMy44IDExLjNsLTQuNyAzLjVjLTI2LjMgMTkuNy02Mi40IDE5LjctODguNiAwTDI3MSA0My4zYy05LjgtNy4zLTIxLjYtMTEuMy0zMy44LTExLjMtMjYuNCAwLTQ5LjMgMTguMy01NSA0NC4xek02NCAyNTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMzguMyAwIDI1NkMwIDM2MiA4NiA0NDggMTkyIDQ0OGwyNTYgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMjU2IDBjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4eiJdfSx4N2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0xNTIuMiA0OTAuMUM2Mi41IDQ1MC4yIDAgMzYwLjQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgMTA0LjQtNjIuNSAxOTQuMi0xNTIuMiAyMzQuMSA1LjMtMTMgOC4yLTI3LjIgOC4yLTQyLjFsMC02MS43YzE2LjktMTYuNSAzMC4xLTM2LjcgMzguMy01OS4zIDQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMS0zOS4yIDEyLjItODMuNyAxOS4xLTEzMC43IDE5LjFzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSA4LjMgMjIuNiAyMS41IDQyLjggMzguMyA1OS4zbDAgNjEuN2MwIDE0LjkgMi45IDI5LjEgOC4yIDQyLjF6TTE1MiAyMTJsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwem0xODQgNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTMyMCA0MDIuNmwwIDQ1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC00NS40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45IDIuOCAxMi42IDIwLjggMTIuNiAyMy42IDAgMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxFWXQ9eDdlLElZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsIixpY29uOlszMjAsNTEyLFsxMDhdLCI0YyIsIk02NCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM1MiAxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxhdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi1zaG9ydC13aWRlIixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtZGVzYyIsInNvcnQtYW1vdW50LWRvd24tYWx0Il0sImY4ODQiLCJNMjQ2LjYgMzc0LjZsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMjAgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LE5ZdD1hdGUsUll0PWF0ZSx5N2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAxOS01LjYgMzcuNC0xNiA1M0wxMTIgMTI4Yy0xMC4zLTE1LjYtMTYtMzQtMTYtNTN6bTE2IDMwOWMzLjUtNS4zIDcuNi0xMC4zIDEyLjEtMTQuOWw2Ny45LTY3LjkgNjcuOSA2Ny45YzQuNiA0LjYgOC42IDkuNiAxMi4yIDE0LjlMMTEyIDM4NHoiXX0sT1l0PXk3ZSx3N2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bvb24iLGljb246WzUxMiw1MTIsWzEyOTM0OCw2MTg3MywidXRlbnNpbC1zcG9vbiJdLCJmMmU1IiwiTTI0NS44IDIyMC45Yy0xNC41LTE3LjYtMjEuOC0zOS4yLTIxLjgtNjAuOCAwLTgwLjIgOTYtMTYwLjIgMTkyLTE2MC4yIDUzIDAgOTYgNDMgOTYgOTYgMCA5Ni04MCAxOTItMTYwLjIgMTkyLTIxLjYgMC00My4yLTcuMy02MC44LTIxLjhMNTQuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQ1LjggMjIwLjl6Il19LEZZdD13N2UsTTdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTAgMTI4bDAgMzIgNTEyIDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHptMCA4MEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3Ni01MTIgMHpNNjQgMzYwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xNDQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sQll0PU03ZSxSdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbnZvaWNlLWRvbGxhciIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NEM3NC43IDY0IDY0IDc0LjcgNjQgODh6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTExMiA3NmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwxNTIgNDAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIweiJdfSxrN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nIixpY29uOls2NDAsNTEyLFsicGFzdGFmYXJpYW5pc20iXSwiZjY3YiIsIk0yMDggNjRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMGMwIDE2LjItNiAzMS4xLTE2IDQyLjNsMTUuNiAzMS4yYzE4LjctNiAzOS45LTkuNSA2NC40LTkuNXM0NS44IDMuNSA2NC40IDkuNUw0MDAgMTA2LjNjLTEwLTExLjMtMTYtMjYuMS0xNi00Mi4zIDAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjQgNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNCAxMC43IDExLjcgMTYuMSAxMy40IDE5LjQgMTMuNCAyLjUgMCA0LjMtLjYgNy4xLTMuMyAzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjcgOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuMy0zLjcgMy41LTcuMSA4LjgtMTIuNSAxNy40bC0uNiAuOWMtNC42IDcuNC0xMSAxNy42LTE5LjQgMjUuNy05LjcgOS4zLTIyLjkgMTYuNy00MC40IDE2LjctMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNi0zLjEgNC02LjYgOC4zLTEwLjUgMTIuNyAxLjQgNC4zIDIuOCA4LjUgNCAxMi41IC45IDMgMS44IDUuOCAyLjYgOC42IDMgOS44IDUuNSAxOC4yIDguNiAyNS45IDMuOSA5LjggNy40IDE1LjQgMTAuOCAxOC41IDIuNiAyLjQgNS45IDQuMyAxMi44IDQuMyA4LjcgMCAxNi45LTQuMiAzMy43LTEzLjIgMTUtOCAzNS43LTE4LjggNjIuMy0xOC44IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMy40IDAtMjQuNyA1LjItMzkuNyAxMy4yLTEgLjYtMi4xIDEuMS0zLjIgMS43LTEzLjEgNy4xLTMxLjYgMTcuMS01My4xIDE3LjEtMTguNCAwLTMzLjYtNi4xLTQ1LjUtMTcuMi0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzYtMy42LTktNi43LTE5LjEtOS41LTI4LjUtMTYuNCAxMi4zLTM2LjEgMjMuNi01OC45IDMxLjMgMy42IDEwLjggOC40IDIzLjUgMTQuNCAzNi4yIDcuNSAxNS45IDE2LjIgMzAuNCAyNS44IDQwLjUgOS42IDEwLjIgMTcuNyAxMy43IDI0LjUgMTMuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjUuMiAwLTQ1LTEzLjUtNTkuNS0yOC44LTE0LjUtMTUuNC0yNS43LTM0LjktMzQuMi01My04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjktNS4yIC40LTEwLjYgLjYtMTYgLjZzLTEwLjgtLjItMTYtLjZjLTQuMiAxMy0xMC4zIDI5LjktMTguMyA0Ni45LTguNSAxOC4xLTE5LjggMzcuNi0zNC4yIDUzLTE0LjQgMTUuMy0zNC4zIDI4LjgtNTkuNSAyOC44LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjNi44IDAgMTUtMy41IDI0LjUtMTMuNyA5LjUtMTAuMSAxOC4zLTI0LjYgMjUuOC00MC41IDUuOS0xMi42IDEwLjctMjUuNCAxNC40LTM2LjItMjIuOC03LjctNDIuNS0xOS01OC45LTMxLjMtMi45IDkuNC02IDE5LjUtOS41IDI4LjUtNC44IDEyLjItMTEuNiAyNS42LTIyLjcgMzYtMTEuOSAxMS4xLTI3LjEgMTcuMi00NS41IDE3LjItMTMuMSAwLTI0LjUtNC4xLTMzLjgtOC45LTcuOS00LTE1LjctOS4yLTIyLjEtMTMuNWwwIDAtMi40LTEuNmMtMTUuMy0xMC4yLTI1LjgtMTYtMzcuNy0xNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI4LjEgMCA0OS42IDE0LjIgNjQuMyAyNGwyLjQgMS42YzYuOSA0LjYgMTIuMSA4LjEgMTcuMiAxMC43IDUuNSAyLjggOS4xIDMuNiAxMiAzLjYgNi44IDAgMTAuMi0xLjkgMTIuOC00LjMgMy40LTMuMiA3LTguOCAxMC44LTE4LjUgMy03LjcgNS42LTE2LjEgOC42LTI1LjkgLjgtMi43IDEuNy01LjYgMi42LTguNiAxLjItNCAyLjYtOC4yIDQtMTIuNS0zLjktNC41LTcuNC04LjgtMTAuNS0xMi43LTExLjQgMTAuMS0yNS45IDE4LjYtNDQuMyAxOC42LTE3LjUgMC0zMC43LTcuNC00MC40LTE2LjctOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjQtMi44LTIuNy00LjYtMy4zLTcuMS0zLjMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxNy41IDAgMzAuNyA3LjQgNDAuNCAxNi43IDguNCA4LjEgMTQuOCAxOC4zIDE5LjQgMjUuN2wuNiAuOWM1LjQgOC42IDguOCAxMy45IDEyLjUgMTcuNCAyLjggMi43IDQuNiAzLjMgNy4xIDMuMyAzLjMgMCA4LjctMS43IDE5LjQtMTMuNCA1LjEtNS42IDEwLjQtMTIuMyAxNi43LTIwLjRsMS40LTEuOGM1LjgtNy40IDEyLjItMTUuNyAxOS4zLTI0IDEzLjgtMTYuMiAzMC4zLTMyLjggNTEuNC00Ni40bC0xNS4xLTMwLjJjLTEuNyAuMS0zLjQgLjItNS4xIC4yLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sSFl0PWs3ZSxTN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcy1jaXRydXMiLGljb246WzY0MCw1MTIsWyJjb2NrdGFpbCJdLCJmNTYxIiwiTTU3NiA4MGMwLTQ0LjItMzUuOC04MC04MC04MC0xOCAwLTM0LjYgNi00OCAxNmwtODEgMGMyMy42LTQ3LjQgNzIuNS04MCAxMjktODAgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTNTc1LjUgMjI0IDQ5NiAyMjRjLTYuNSAwLTEzLS40LTE5LjMtMS4zbDY0LTc0LjdjMS4xLTEuMyAyLjItMi43IDMuMy00LjEgMTkuNC0xNC42IDMyLTM3LjggMzItNjR6TTY2LjkgODIuNkM3Mi4yIDcxLjMgODMuNSA2NCA5NiA2NGwzODQgMGMxMi41IDAgMjMuOCA3LjMgMjkuMSAxOC42czMuNCAyNC43LTQuOCAzNC4ybC0xODQuMyAyMTUgMCAxMTYuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE2LjItMTg0LjMtMjE1Yy04LjEtOS41LTEwLTIyLjgtNC44LTM0LjJ6TTE2NS42IDEyOEwyODggMjcwLjggNDEwLjQgMTI4IDE2NS42IDEyOHoiXX0scVl0PVM3ZSxWWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbGhvcm4iLGljb246WzUxMiw1MTIsWzEyODIyNiwxMjgzNjNdLCJmMGExIiwiTTQ2MS4yIDE4LjlDNDcyLjcgMjQgNDgwIDM1LjQgNDgwIDQ4bDAgNDE2YzAgMTIuNi03LjMgMjQtMTguOCAyOS4xcy0yNC44IDMuMi0zNC4zLTUuMWwtNDYuNi00MC43Yy00My42LTM4LjEtOTguNy02MC4zLTE1Ni40LTYzbDAgOTUuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NkM1Ny4zIDM4NCAwIDMyNi43IDAgMjU2UzU3LjMgMTI4IDEyOCAxMjhsODQuNSAwYzYxLjgtLjIgMTIxLjQtMjIuNyAxNjcuOS02My4zbDQ2LjYtNDAuN2M5LjQtOC4zIDIyLjktMTAuMiAzNC4zLTUuMXpNMjI0IDMyMGwwIC4yYzcwLjMgMi43IDEzNy44IDI4LjUgMTkyIDczLjRsMC0yNzUuM2MtNTQuMiA0NC45LTEyMS43IDcwLjctMTkyIDczLjRMMjI0IDMyMHoiXX0sall0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC10aXNzdWUiLGljb246WzUxMiw1MTIsW10sImUwNWIiLCJNMTAzLjkgMzJsMTYxIDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlsMTcuNCA1Mi4yYzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsNjAuNSAwYzIxLjggMCAzNy4zIDIxLjQgMzAuNCA0Mi4xTDM4NCAzMjAgMTI4IDMyMCA3Mi43IDcwLjlDNjguMiA1MSA4My40IDMyIDEwMy45IDMyek00OCAyNTZsMTYuNiAwIDE2LjUgNzQuNEM4NiAzNTIuNCAxMDUuNSAzNjggMTI4IDM2OGwyNTYgMGMyMC43IDAgMzktMTMuMiA0NS41LTMyLjhsMjYuNC03OS4yIDguMSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LFVZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXR0cmVzcy1waWxsb3ciLGljb246WzU3Niw1MTIsW10sImU1MjUiLCJNMjU2IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAtMzg0em00OCAzODRsMjA4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgMzg0ek02NCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LFdZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWxlZnQiLGljb246WzMyMCw1MTIsWzkwMDFdLCJmMDUzIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDI0Ni42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTJ6Il19LEdZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uLXJhaW4iLGljb246WzU3Niw1MTIsW10sImY3M2MiLCJNNDQ4IDBjLTY4LjYgMC0xMjcuMSA0My4xLTE0OS44IDEwMy44IDE3LjEgMTQuMSAyOS42IDMzLjUgMzQuOSA1NS44IDM5LjkgMjEuNyA2Ni45IDYzLjkgNjYuOSAxMTIuNSAwIDEzLjUtMi4xIDI2LjUtNS45IDM4LjcgMTYuOSA2IDM1IDkuMyA1My45IDkuMyA0MyAwIDgyLjEtMTcgMTEwLjgtNDQuNiA0LjYtNC40IDUuOS0xMS4yIDMuMy0xN3MtOC42LTkuMy0xNC45LTguOGMtMyAuMi02LjEgLjQtOS4yIC40LTYzLjUgMC0xMTUtNTEuNS0xMTUtMTE1IDAtNDUuMSAyNi04NC4yIDYzLjgtMTAzIDUuNy0yLjggOS04LjkgOC4yLTE1LjJTNDg5LjYgNS4zIDQ4My40IDMuOUM0NzIgMS40IDQ2MC4yIDAgNDQ4IDB6TTI3MiAzNTJjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS0yNy45LTcxLjUtNjQuOC03OC42IC41LTMuMSAuOC02LjIgLjgtOS40IDAtMzAuOS0yNS4xLTU2LTU2LTU2LTEyLjQgMC0yMy45IDQtMzMuMSAxMC44LTEzLjQtMjUuNS00MC4xLTQyLjgtNzAuOS00Mi44LTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgNy40IDEgMTQuNiAyLjkgMjEuNS0yOS44IDExLjYtNTAuOSA0MC42LTUwLjkgNzQuNSAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxOTIgMHpNNjkgNDAxLjFjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMkwxNy4yIDQ4MC40QzEzIDQ5MyAxOS44IDUwNi42IDMyLjQgNTEwLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHoiXX0scnRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tMS05IixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLWFzYyIsInNvcnQtbnVtZXJpYy1kb3duIl0sImYxNjIiLCJNNDE4LjcgMzhjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZsMCA5NiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6TTM2NS4xIDQzMC42bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMzM2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE1MC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC05NiA5NnoiXX0sWVl0PXJ0ZSxLWXQ9cnRlLFpZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTIxNC45IDIzLjdDMjEwLjMgNi42IDE5Mi44LTMuNSAxNzUuNyAxLjFzLTI3LjIgMjIuMS0yMi42IDM5LjJMMjA2IDIzNy44YzIuNSA5LjItNC41IDE4LjItMTQgMTguMi02LjQgMC0xMi00LjItMTMuOS0xMC4zTDEzNC42IDEwMi43Yy01LjEtMTYuOS0yMy0yNi40LTM5LjktMjEuM3MtMjYuNCAyMy0yMS4zIDM5LjlsNjIuOCAyMDYuNGMyLjQgNy45LTcuMiAxMy44LTEzLjIgOC4xTDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjEgMGMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDExLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjktNy45IDAtMTMuOC03LjMtMTIuMi0xNS4xbDM2LTE3MC4zYzMuNy0xNy4zLTcuNC0zNC4zLTI0LjctMzcuOXMtMzQuMyA3LjQtMzcuOSAyNC43TDMyMy4xIDIzNS4xYy0yLjYgMTIuMi0xMy4zIDIwLjktMjUuOCAyMC45LTExLjkgMC0yMi40LTgtMjUuNC0xOS41bC01Ny0yMTIuOHoiXX0sejdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtbWFnaWMtc3BhcmtsZXMiLGljb246WzU3Niw1MTIsWyJtYWdpYy13YW5kLXNwYXJrbGVzIl0sImUyY2EiLCJNMjYzLjQtMjdMMjc4LjIgOS44IDMxNSAyNC42YzMgMS4yIDUgNC4yIDUgNy40cy0yIDYuMi01IDcuNEwyNzguMiA1NC4yIDI2My40IDkxYy0xLjIgMy00LjIgNS03LjQgNXMtNi4yLTItNy40LTVMMjMzLjggNTQuMiAxOTcgMzkuNGMtMy0xLjItNS00LjItNS03LjRzMi02LjIgNS03LjRMMjMzLjggOS44IDI0OC42LTI3YzEuMi0zIDQuMi01IDcuNC01czYuMiAyIDcuNCA1ek0xMTAuNyA0MS43bDIxLjUgNTAuMSA1MC4xIDIxLjVjNS45IDIuNSA5LjcgOC4zIDkuNyAxNC43cy0zLjggMTIuMi05LjcgMTQuN2wtNTAuMSAyMS41LTIxLjUgNTAuMWMtMi41IDUuOS04LjMgOS43LTE0LjcgOS43cy0xMi4yLTMuOC0xNC43LTkuN0w1OS44IDE2NC4yIDkuNyAxNDIuN0MzLjggMTQwLjIgMCAxMzQuNCAwIDEyOHMzLjgtMTIuMiA5LjctMTQuN0w1OS44IDkxLjggODEuMyA0MS43QzgzLjggMzUuOCA4OS42IDMyIDk2IDMyczEyLjIgMy44IDE0LjcgOS43ek00NjQgMzA0YzYuNCAwIDEyLjIgMy44IDE0LjcgOS43bDIxLjUgNTAuMSA1MC4xIDIxLjVjNS45IDIuNSA5LjcgOC4zIDkuNyAxNC43cy0zLjggMTIuMi05LjcgMTQuN2wtNTAuMSAyMS41LTIxLjUgNTAuMWMtMi41IDUuOS04LjMgOS43LTE0LjcgOS43cy0xMi4yLTMuOC0xNC43LTkuN2wtMjEuNS01MC4xLTUwLjEtMjEuNWMtNS45LTIuNS05LjctOC4zLTkuNy0xNC43czMuOC0xMi4yIDkuNy0xNC43bDUwLjEtMjEuNSAyMS41LTUwLjFjMi41LTUuOSA4LjMtOS43IDE0LjctOS43ek00NjAgMGMxMSAwIDIxLjYgNC40IDI5LjUgMTIuMmw0Mi4zIDQyLjNDNTM5LjYgNjIuNCA1NDQgNzMgNTQ0IDg0cy00LjQgMjEuNi0xMi4yIDI5LjVsLTg4LjIgODguMi0xMDEuMy0xMDEuMyA4OC4yLTg4LjJDNDM4LjQgNC40IDQ0OSAwIDQ2MCAwek00NC4yIDM5OC41TDMwOC40IDEzNC4zIDQwOS43IDIzNS42IDE0NS41IDQ5OS44QzEzNy42IDUwNy42IDEyNyA1MTIgMTE2IDUxMnMtMjEuNi00LjQtMjkuNS0xMi4yTDQ0LjIgNDU3LjVDMzYuNCA0NDkuNiAzMiA0MzkgMzIgNDI4czQuNC0yMS42IDEyLjItMjkuNXoiXX0sWFl0PXo3ZSxRWXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJmN2Y1IiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0yMTcuNiAxNTMuNmMwLTEwLjYgOC42LTE5LjIgMTkuMi0xOS4ybDM4LjQgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgNDggNDggMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgMzguNGMwIDEwLjYtOC42IDE5LjItMTkuMiAxOS4ybC00OCAwIDAgNDhjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtMzguNCAwYy0xMC42IDAtMTkuMi04LjYtMTkuMi0xOS4ybDAtNDgtNDggMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTM4LjRjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmw0OCAwIDAtNDh6Il19LEpZdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjUtODcuNWMxNy4yLTIuNCAzMC41LTE3LjMgMzAuNS0zNS4yIDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0NjQuNCAzMDguNSA0NDggMjYxLjggNDQ4IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMuMmMtMzguNiA3LjgtNzIuMiAyOS42LTk1LjIgNTkuN0w0MS0yNC45em04NyAyMzguNWMwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRsLTkuOCAxMi4yYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyMzUuMyAwLTIwNi45LTIwNi45IDAgNC41ek0yODggNTEyYzI5LjggMCA1NC45LTIwLjQgNjItNDhsLTEyNCAwYzcuMSAyNy42IDMyLjIgNDggNjIgNDh6Il19LHN0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2Utc2xhc2giLGljb246WzU3Niw1MTIsWzU3NDM5LCJoYW5kc2hha2UtYWx0LXNsYXNoIiwiaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCJdLCJlMDYwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTI4OC0yODggMTQuMi0xNC4yYzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMWwtNTUuOCA2Mi4xLTM0LTM0IDQ0LjMtNDkuMi0zOS43IDBjLTE1LjMgMC0zMC4xIDMuNi00My41IDEwLjRMNDEtMjQuOXpNMCA2OS44TDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMyMi4yIDAgNDMuOC01LjggNjIuOC0xNi40TDAgNjkuOHoiXX0sZUt0PXN0ZSx0S3Q9c3RlLGFLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3R0bGUtd2F0ZXIiLGljb246WzMyMCw1MTIsW10sImU0YzUiLCJNMTEyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBDOTQuMyAzMiA4MCAxNy43IDgwIDBzMTQuMy0zMiAzMi0zMnpNMTYgMTQ0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjQuMS0xMy4zIDQ1LjEtMzMgNTYgMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NnMtMTMuMyA0NS4xLTMzIDU2YzE5LjcgMTAuOSAzMyAzMS45IDMzIDU2IDAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDU0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNC4xIDEzLjMtNDUuMSAzMy01Ni0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2czEzLjMtNDUuMSAzMy01NmMtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZ6Il19LHJLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWQyMCIsaWNvbjpbNTEyLDUxMixbXSwiZjZjZiIsIk0yMjQuNC04LjJjMTkuNi0xMS4xIDQzLjYtMTEuMSA2My4xIDBsMTkyIDEwOC44YzIwIDExLjQgMzIuNCAzMi42IDMyLjQgNTUuN2wwIDIxNS42YzAgMjMtMTIuNCA0NC4zLTMyLjQgNTUuN2wtMTkyIDEwOC44Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMEwzMi40IDQyNy41QzEyLjQgNDE2LjEgMCAzOTQuOCAwIDM3MS44TDAgMTU2LjJjMC0yMyAxMi40LTQ0LjMgMzIuNC01NS43TDIyNC40LTguMnptNTIgNzMuMkMyNjcgNDkuOCAyNDUgNDkuOCAyMzUuNiA2NWwtNzYuNiAxMjMuNy04NS40LTQ2LjMtMy44LTEuNmMtOC45LTIuNy0xOC44IDEuMS0yMy40IDkuNnMtMi40IDE4LjkgNC43IDI0LjhsMy4zIDIuMyA4My40IDQ1LjItNzQuNiAxMjAuNkM1NS4zIDM1Ni4yIDYxIDM3MyA3NSAzNzguNGwxNjEgNjEuOSAwIDM5LjdjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0zOS43IDE2MS02MS45YzE0LTUuNCAxOS43LTIyLjIgMTEuOC0zNWwtNzQuNy0xMjAuNiA4My40LTQ1LjJjOS43LTUuMyAxMy4zLTE3LjQgOC4xLTI3LjFzLTE3LjQtMTMuMy0yNy4xLTguMUwzNTMgMTg4LjcgMjc2LjQgNjV6bS00NyAzMjkuOWwtMTIyLTQ2LjkgNTQuNS04OC4xIDY3LjUgMTM1ek00MDQuNiAzNDhsLTEyMiA0Ni45IDY3LjUtMTM1IDU0LjUgODguMXpNMzE5LjMgMjMyTDI1NiAzNTguNiAxOTIuNyAyMzIgMzE5LjMgMjMyek0zMDggMTkybC0xMDQuMSAwIDUyLTg0IDUyIDg0eiJdfSxpdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi16LWEiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWRlc2MiLCJzb3J0LWFscGhhLWRvd24tYWx0Il0sImY4ODEiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyAxNjAgNDQ4IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDM3MC44IDk2IDMyMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQxMi42IDI3My43bDgwIDE2MGM3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsODAtMTYwYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMzU5LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40eiJdfSxzS3Q9aXRlLGlLdD1pdGUsb0t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJydXNoIixpY29uOlszODQsNTEyLFtdLCJmNTVkIiwiTTE2Mi40IDZjLTEuNS0zLjYtNS02LTguOS02bC0xOSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDEwNC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMNjYuNCA2Yy0xLjUtMy42LTUtNi04LjktNkw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OGwwIDIwOCAzODQgMCAwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OEwyMzAuNSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDIwMC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMMTYyLjQgNnpNMCAzMDRsMCAxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw2NCAwIDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTY0IDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi0zODQgMHpNMTkyIDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2eiJdfSxuS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctZGFzaGVkLWxpbmUtYXJyb3ctcmlnaHQiLGljb246WzY0MCw1MTIsW10sImU1NTMiLCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek00MzIgOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzODQtNS4zIDM4NCA4bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyem0wIDEyOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNDA4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNjA5IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtMTAyLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDIuMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LEM3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1zaG9ydC13aWRlIixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAtYWx0Il0sImY4ODUiLCJNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LGxLdD1DN2UsXzdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAtdmVydGljYWwiLGljb246WzMyMCw1MTIsWyJncmlkLXZlcnRpY2FsIl0sImY1OGUiLCJNMTI4IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDBDMTcuOSAwIDAgMTcuOSAwIDQwTDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0wIDE5MmMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTAgNDI0bDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMzIwIDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwTDIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpNMTkyIDIzMmwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MjRjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4eiJdfSxjS3Q9XzdlLGRLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItdHVubmVsIixpY29uOls1MTIsNTEyLFtdLCJlNGRlIiwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0Mi44IDBjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0xMTMuMWMwLTEzLjUgMy4xLTI2LjggOS0zOC45bDM5LjctODAuOGM5LjQtMTkuMSAyOC45LTMxLjMgNTAuMi0zMS4zTDMxNyAyMjRjMjEuMyAwIDQwLjggMTIuMSA1MC4yIDMxLjNMNDA3IDMzNmM1LjkgMTIuMSA5IDI1LjQgOSAzOC45TDQxNiA0ODhjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGw0Mi44IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJDNTEyIDExNC42IDM5Ny40IDAgMjU2IDB6TTM2Mi44IDUxMmMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNGwwLTI0LTE5MiAwIDAgMjRjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGwyMTMuNyAwem0tMTc1LTIzNS41bC0yOS4zIDU5LjUgMTk0LjkgMC0yOS4zLTU5LjVjLTEuMy0yLjctNC4xLTQuNS03LjItNC41TDE5NSAyNzJjLTMgMC01LjggMS43LTcuMiA0LjV6TTE3NiA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0xODQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sdUt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWNvbHVtbiIsaWNvbjpbNTEyLDUxMixbXSwiZTBlMyIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0xNDQgMjI0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTQ0LTY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTgwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNTEyIDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LHBLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXByaWNvcm4iLGljb246WzU3Niw1MTIsW10sImU4NDgiLCJNMjQwIDMyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgNjUuMmMxOC44LTEwLjkgNDAuNy0xNy4yIDY0LTE3LjIgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgNDgwIDQ0OCA0ODBjLTM1LjggMC02OC4yLTE0LjctOTEuNC0zOC40LTI4LjggNDIuNS03Ny40IDcwLjQtMTMyLjYgNzAuNC0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzUzIDAgOTYtNDMgOTYtOTZsMC0xNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjQtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyAzMiAzMiAzMkM3Mi42IDMyIDEwOC44IDUxIDEzMi4yIDgwLjUgMTU4LjYgNTAuNyAxOTcuMSAzMiAyNDAgMzJ6TTQ0OCAyODhhNjQgNjQgMCAxIDAgMCAxMjggNjQgNjQgMCAxIDAgMC0xMjh6Il19LGZLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0zMDUgMjI1bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXoiXX0sb3RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR2IixpY29uOls1NzYsNTEyLFs2MzcxNywidGVsZXZpc2lvbiIsInR2LWFsdCJdLCJmMjZjIiwiTTY0IDk2bDAgMjQwIDQ0OCAwIDAtMjQwLTQ0OCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQwMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDQ0OGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LGhLdD1vdGUsbUt0PW90ZSxnS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VjdGlvbiIsaWNvbjpbMjU2LDUxMixbXSwiZTQ0NyIsIk0xMTAgMEM0OS4yIDAgMCA0OS4yIDAgMTEwIDAgMTMzLjcgNy42IDE1NS44IDIwLjUgMTc0IDcuNiAxOTIgMCAyMTQuMSAwIDIzOCAwIDI5MS43IDM4LjkgMzM3LjYgOTEuOSAzNDYuNGw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDI1LjQtMjAuNiA0Ni00NiA0NmwtOTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5OCAwYzYwLjcgMCAxMTAtNDkuMiAxMTAtMTEwIDAtMjMuNy03LjYtNDUuOS0yMC41LTY0IDEyLjktMTggMjAuNS00MC4xIDIwLjUtNjQgMC01My44LTM4LjktOTkuNi05MS45LTEwOC41bC02MS43LTEwLjNDODAuMiAxNTEuNiA2NCAxMzIuNCA2NCAxMTAgNjQgODQuNiA4NC42IDY0IDExMCA2NGw5OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzIyNS43IDAgMjA4IDBMMTEwIDB6bTc0LjcgMjk5LjFjLTYuNS0yLjQtMTMuNC00LjMtMjAuNS01LjVsLTYxLjctMTAuM2MtMjIuMi0zLjctMzguNC0yMi45LTM4LjQtNDUuMyAwLTkuMiAyLjctMTcuOCA3LjQtMjUgNi41IDIuNCAxMy40IDQuMyAyMC41IDUuNWw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDkuMi0yLjcgMTcuOC03LjQgMjV6Il19LGJLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZWFjZSIsaWNvbjpbNTEyLDUxMixbOTc3NF0sImY2N2MiLCJNMjI0IDQ0NS4zbDAtMTIxLjgtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOCAyMjQgNjYuN2MtOTAuOCAxNS4yLTE2MCA5NC4yLTE2MCAxODkuMyAwIDM0LjYgOS4yIDY3LjEgMjUuMiA5NS4xem0yOTMuMSA0OS41bC05NC4zLTc3LjEgMCAxMjEuOGMzNS43LTYgNjguMS0yMS45IDk0LjMtNDQuN3ptNDAuNi00OS41YzE2LTI4IDI1LjItNjAuNSAyNS4yLTk1LjEgMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zbDAgMTc0LjIgMTM0LjggMTEwLjN6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LHZLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyIixpY29uOls1NzYsNTEyLFsxMTA4OCw2MTQ0Nl0sImYwMDUiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45eiJdfSx4S3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZyIsaWNvbjpbNDQ4LDUxMixbMTI3OTg4LDYxNzI1XSwiZjAyNCIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjEuNiA2Mi43LTE4LjhjNDEuOS0xMi42IDg3LjEtOC43IDEyNi4yIDEwLjkgNDIuNyAyMS40IDkyLjUgMjQgMTM3LjIgNy4ybDM3LjEtMTMuOWMxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTExLjggNS45Yy00NC45IDIyLjUtOTcuOCAyMi41LTE0Mi44IDAtMzYuNC0xOC4yLTc4LjMtMjEuOC0xMTcuMi0xMC4xTDY0IDU0LjQgNjQgMzJ6Il19LG50ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmlhbmdsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbOTg4OCwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJ3YXJuaW5nIl0sImYwNzEiLCJNMjU2IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41UzQ4Ni4xIDQ4MCA0NzIgNDgwTDQwIDQ4MGMtMTQuMSAwLTI3LjItNy40LTM0LjQtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwYzctMTIuOSAyMC41LTIxIDM1LjItMjF6bTAgMzUyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNSAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3oiXX0seUt0PW50ZSx3S3Q9bnRlLE1LdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTZjIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFQ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmFkdWF0aW9uLWNhcCIsaWNvbjpbNTc2LDUxMixbMTI3ODkxLCJtb3J0YXItYm9hcmQiXSwiZjE5ZCIsIk00OCAxOTUuOGwyMDkuMiA4Ni4xYzkuOCA0IDIwLjIgNi4xIDMwLjggNi4xczIxLTIuMSAzMC44LTYuMWwyNDIuNC05OS44YzktMy43IDE0LjgtMTIuNCAxNC44LTIyLjFzLTUuOC0xOC40LTE0LjgtMjIuMUwzMTguOCAzOC4xQzMwOSAzNC4xIDI5OC42IDMyIDI4OCAzMnMtMjEgMi4xLTMwLjggNi4xTDE0LjggMTM3LjlDNS44IDE0MS42IDAgMTUwLjMgMCAxNjBMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI2MC4yem00OCA3MS43TDk2IDM4NGMwIDUzIDg2IDk2IDE5MiA5NnMxOTItNDMgMTkyLTk2bDAtMTE2LjYtMTQyLjkgNTguOWMtMTUuNiA2LjQtMzIuMiA5LjctNDkuMSA5LjdzLTMzLjUtMy4zLTQ5LjEtOS43TDk2IDI2Ny40eiJdfSxrS3Q9VDdlLFNLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9yZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU0ZSIsIk0zMC43IDcyLjNDMzcuNiA0OC40IDU5LjUgMzIgODQuNCAzMmwzNDQgMGMyNC45IDAgNDYuOCAxNi40IDUzLjggNDAuM2wyMy40IDgwLjJjMTIuOCA0My43LTIwLjEgODcuNS02NS42IDg3LjUtMjYuMyAwLTQ5LjQtMTQuOS02MC44LTM3LjEtMTEuNiAyMS45LTM0LjYgMzcuMS02MS40IDM3LjEtMjYuNiAwLTQ5LjctMTUtNjEuMy0zNy0xMS42IDIyLTM0LjcgMzctNjEuMyAzNy0yNi44IDAtNDkuOC0xNS4xLTYxLjQtMzcuMS0xMS40IDIyLjEtMzQuNSAzNy4xLTYwLjggMzcuMS00NS42IDAtNzguNC00My43LTY1LjYtODcuNUwzMC43IDcyLjN6TTk2LjQgMzUybDMyMCAwIDAtNjYuNGM3LjYgMS42IDE1LjUgMi40IDIzLjUgMi40IDE0LjMgMCAyOC0yLjYgNDAuNS03LjJsMCAxNTEuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTUxLjJjMTIuNSA0LjYgMjYuMSA3LjIgNDAuNSA3LjIgOC4xIDAgMTUuOS0uOCAyMy41LTIuNGwwIDY2LjR6Il19LHpLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWFzdHJvbmF1dCIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmYiIsIk0yMjQgMzM2Yzc0LjYgMCAxMzguNC00Ni40IDE2NC0xMTJsNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQgMEMzNjIuNCAzMC40IDI5OC42LTE2IDIyNC0xNlM4NS42IDMwLjQgNjAgOTZsLTQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0IDBjMjUuNiA2NS42IDg5LjQgMTEyIDE2NCAxMTJ6TTIwOCA4MGwzMiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek0xNiA0ODQuNkMxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmw1Mi42IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4IDUyLjYgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTU5LjgtMzEuOS0xMTIuMi03OS42LTE0MS0zNi40IDI1LjUtODAuNiA0MC40LTEyOC40IDQwLjRzLTkyLTE0LjktMTI4LjQtNDAuNEM0Ny45IDM3Mi40IDE2IDQyNC44IDE2IDQ4NC42ek0xODMuMyAxNDEuNWMtLjktMy4zLTMuOS01LjUtNy4zLTUuNXMtNi40IDIuMi03LjMgNS41bC02IDIxLjItMjEuMiA2Yy0zLjMgLjktNS41IDMuOS01LjUgNy4zczIuMiA2LjQgNS41IDcuM2wyMS4yIDYgNiAyMS4yYy45IDMuMyAzLjkgNS41IDcuMyA1LjVzNi40LTIuMiA3LjMtNS41bDYtMjEuMiAyMS4yLTZjMy4zLS45IDUuNS0zLjkgNS41LTcuM3MtMi4yLTYuNC01LjUtNy4zbC0yMS4yLTYtNi0yMS4yek0xNTIgNDg4bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xMjAtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxDS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTRkNSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00NjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI4OCAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQ5NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sTDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1zYXVjZXIiLGljb246WzU3Niw1MTIsWyJjb2ZmZWUiXSwiZjBmNCIsIk02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNTIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyAyODggNDQ4IDI4OGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw2NCA2NHptNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bDAgMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0ek02NCA0NDhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxfS3Q9TDdlLFRLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZW1vbiIsaWNvbjpbNDQ4LDUxMixbMTI3ODE5XSwiZjA5NCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNi42IDAtMTMgMS0xOSAyLjktMjIuNSA3LTQ4LjEgMTQuOS03MSA5LTc1LjItMTkuMS0xNTYuNCAxMS0yMTMuNyA2OC4zUy03LjIgMjUwLjggMTEuOSAzMjZjNS44IDIyLjktMiA0OC40LTkgNzEtMS45IDYtMi45IDEyLjQtMi45IDE5IDAgMzUuMyAyOC43IDY0IDY0IDY0IDYuNiAwIDEzLTEgMTkuMS0yLjkgMjIuNS03IDQ4LjEtMTQuOSA3MS05IDc1LjIgMTkuMSAxNTYuNC0xMSAyMTMuNy02OC4zUzQ1NS4yIDI2MS4yIDQzNi4xIDE4NmMtNS44LTIyLjkgMi00OC40IDktNzEgMS45LTYgMi45LTEyLjQgMi45LTE5LjF6TTIyMi43IDE0M2MtNTIgMTUuMi05Ni41IDU5LjctMTExLjcgMTExLjctMy43IDEyLjctMTcuMSAyMC0yOS44IDE2LjNTNjEuMiAyNTQgNjUgMjQxLjNjMTkuOC02Ny43IDc2LjYtMTI0LjUgMTQ0LjMtMTQ0LjMgMTIuNy0zLjcgMjYuMSAzLjYgMjkuOCAxNi4zcy0zLjYgMjYuMS0xNi4zIDI5Ljh6Il19LExLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJhdmFuIixpY29uOls2NDAsNTEyLFtdLCJmOGZmIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5Ni40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04TDk2IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgOTZ6TTM1MiAzNTJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnpNMTYwIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6bTY0IDMzNmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LCRLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxIixpY29uOls0NDgsNTEyLFsxMTNdLCI1MSIsIk02NCAyNTZjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjAgMjguOSAwIDU2LTcuNyA3OS40LTIxLjFsLTcyLTg2LjRjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWw3MC45IDg1LjFjMjAuNC0yNi44IDMyLjUtNjAuMyAzMi41LTk2LjYgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTNjQgMTY3LjYgNjQgMjU2ek0zNDQuOSA0NDQuNkMzMTAgNDY3IDI2OC41IDQ4MCAyMjQgNDgwIDEwMC4zIDQ4MCAwIDM3OS43IDAgMjU2UzEwMC4zIDMyIDIyNCAzMiA0NDggMTMyLjMgNDQ4IDI1NmMwIDU2LjEtMjAuNiAxMDcuNC01NC43IDE0Ni43bDQ3LjMgNTYuOGMxMS4zIDEzLjYgOS41IDMzLjgtNC4xIDQ1LjFzLTMzLjggOS41LTQ1LjEtNC4xbC00Ni42LTU1Ljl6Il19LERLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NrIixpY29uOlszODQsNTEyLFsxMjgyNzRdLCJmMDIzIiwiTTEyOCA5NmwwIDY0IDEyOCAwIDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6TTY0IDE2MGwwLTY0QzY0IDI1LjMgMTIxLjMtMzIgMTkyLTMyUzMyMCAyNS4zIDMyMCA5NmwwIDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LEFLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWludC1yb2xsZXIiLGljb246WzUxMiw1MTIsW10sImY1YWEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDk2YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTguN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC0xOC43YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCAxOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LCQ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtaGlnaCIsaWNvbjpbNjQwLDUxMixbMTI4MjY2LCJ2b2x1bWUtdXAiXSwiZjAyOCIsIk01MzMuNiAzMi41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNTU3LjUgMTEzLjggNTkyIDE4MC44IDU5MiAyNTZzLTM0LjUgMTQyLjItODguNyAxODYuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM1OTguNSA0MjYuNyA2NDAgMzQ2LjIgNjQwIDI1NlM1OTguNSA4NS4yIDUzMy42IDMyLjV6TTQ3My4xIDEwN2MtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzQ3NS4zIDE3MC43IDQ5NiAyMTAuOSA0OTYgMjU2cy0yMC43IDg1LjMtNTMuMiAxMTEuOGMtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNWM0My4yLTM1LjIgNzAuOS04OC45IDcwLjktMTQ5cy0yNy43LTExMy44LTcwLjktMTQ5em0tNjAuNSA3NC41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzkzLjEgMjI3LjYgNDAwIDI0MSA0MDAgMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDM0LjEgMzEyLjkgNDQ4IDI4Ni4xIDQ0OCAyNTZzLTEzLjktNTYuOS0zNS40LTc0LjV6TTgwIDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEwxMjggMTYwIDgwIDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sUEt0PSQ3ZSxFS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLXBsdXMiLGljb246WzUxMiw1MTIsW10sImY2NWUiLCJNNTEyIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MHpNMjU2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxJS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVyY3VyeSIsaWNvbjpbMzg0LDUxMixbOTc5MV0sImYyMjMiLCJNMTE3LTRDMTA2LTE3LjggODUuOC0yMCA3Mi4xLTlzLTE2IDMxLjItNSA0NUM3NC45IDQ1LjcgODMuNyA1NC41IDkzLjUgNjIuMSA0Ni43IDkzLjcgMTYgMTQ3LjMgMTYgMjA4IDE2IDI5NC4zIDc4LjEgMzY2LjEgMTYwIDM4MS4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC02MC43LTMwLjctMTE0LjMtNzcuNS0xNDUuOSA5LjgtNy43IDE4LjctMTYuNCAyNi40LTI2LjEgMTEuMS0xMy44IDguOC0zMy45LTUtNDVTMjc4LTE3LjggMjY3LTRjLTE3LjYgMjItNDQuNyAzNi03NSAzNlMxMzQuNyAxOCAxMTctNHptNzUgMzI0Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMlMxMzAuMSA5NiAxOTIgOTYgMzA0IDE0Ni4xIDMwNCAyMDhjMCA2MS44LTUwLjEgMTEyLTExMS45IDExMmwtLjEgMHoiXX0sTkt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvciIsaWNvbjpbNTc2LDUxMixbOTg3NV0sImYxM2QiLCJNMjg4IDY0YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgMjU3LjljNjIuOS0xNC4zIDExMC4yLTY5LjcgMTExLjktMTM2LjVsLTE2LjEgMTQuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNMNDk2IDMwNy45QzQ5My45IDQyMSA0MDEuNiA1MTIgMjg4IDUxMlM4Mi4xIDQyMSA4MCAzMDcuOUw2My44IDMyMi4xYy0xMCA4LjctMjUuMSA3LjctMzMuOS0yLjNzLTcuNy0yNS4xIDIuMy0zMy45bDY0LTU2YzktNy45IDIyLjYtNy45IDMxLjYgMGw2NCA1NmMxMCA4LjcgMTEgMjMuOSAyLjMgMzMuOXMtMjMuOSAxMS0zMy45IDIuM2wtMTYuMS0xNC4xYzEuOCA2Ni44IDQ5LjEgMTIyLjIgMTExLjkgMTM2LjVsMC0yNTcuOWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNXoiXX0sRDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wYXJraW5nIixpY29uOls0NDgsNTEyLFsxMjczNTksInBhcmtpbmciXSwiZjU0MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0xOTIgMjU2bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDAgMCA2NHptNDggNjRsLTQ4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4NGMwLTIyLjEgMTcuOS00MCA0MC00MGw3MiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2eiJdfSxSS3Q9RDdlLE9LdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW51a2lhaCIsaWNvbjpbNjQwLDUxMixbMTI4MzM0XSwiZjZlNiIsIk0zMTQuMiAzLjNjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6bS0yODggNDhDMjEuMSA2MC4xIDggODQuNiA4IDEwNCA4IDExNy4zIDE4LjcgMTI4IDMyIDEyOHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTg4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMTAxLjEgNjAuMSA4OCA4NC42IDg4IDEwNHptODIuMi01Mi43Yy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek0yMTYgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0MyMjkuMSA2MC4xIDIxNiA4NC42IDIxNiAxMDR6TTM5NC4yIDUxLjNjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTQ0MCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzQ1My4xIDYwLjEgNDQwIDg0LjYgNDQwIDEwNHptODIuMi01Mi43Yy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek01ODQgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M1OTcuMSA2MC4xIDU4NCA4NC42IDU4NCAxMDR6TTExMiAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNTIgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTc2LTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMTc0LjMgMCAxOTJsMCA5NmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwIDAgNjQtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtNjQgMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwIDAtMTc2eiJdfSxZYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbInJvdGF0ZS1iYWNrIiwicm90YXRlLWJhY2t3YXJkIiwidW5kby1hbHQiXSwiZjJlYSIsIk0yNCAxOTJsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00Ni43LTQ2LjdjNzUuMy01OC42IDE4NC4zLTUzLjMgMjUzLjUgMTUuOSA3NSA3NSA3NSAxOTYuNSAwIDI3MS41cy0xOTYuNSA3NS0yNzEuNSAwYy0xMC4yLTEwLjItMTktMjEuMy0yNi40LTMzLTkuNS0xNC45LTI5LjMtMTkuMy00NC4yLTkuOHMtMTkuMyAyOS4zLTkuOCA0NC4yQzQ5LjcgNDA4LjcgNjEuNCA0MjMuNSA3NSA0MzcgMTc1IDUzNyAzMzcgNTM3IDQzNyA0MzdTNTM3IDE3NSA0MzcgNzVDMzQyLjgtMTkuMyAxOTMuMy0yNC43IDkyLjcgNTguOEw0MSA3QzM0LjEgLjIgMjMuOC0xLjkgMTQuOCAxLjhTMCAxNC4zIDAgMjRMMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjR6Il19LEZLdD1ZYixCS3Q9WWIsSEt0PVliLEE3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkaW5nIixpY29uOls0NDgsNTEyLFsiaGVhZGVyIl0sImYxZGMiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTEyIDIyNCAwIDAtMTEyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDMyMCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNDQtMjI0IDAgMCAxNDQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMzIwLTE2IDBDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0scUt0PUE3ZSxWS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3Jvc3NoYWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZjA1YiIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEzMS4yIDI4OGMxMi43IDYyLjcgNjIuMSAxMTIuMSAxMjQuOCAxMjQuOGwwLTEyLjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyLjhjNjIuNy0xMi43IDExMi4xLTYyLjEgMTI0LjgtMTI0LjhMNDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMi44IDBDNDMyLjEgMTYxLjMgMzgyLjcgMTExLjkgMzIwIDk5LjJsMCAxMi44YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTIuOEMxOTMuMyAxMTEuOSAxNDMuOSAxNjEuMyAxMzEuMiAyMjRsMTIuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMi44IDB6TTI4OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSxqS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW5vZGVzIixpY29uOls1MTIsNTEyLFtdLCJlNGUyIiwiTTQxOC40IDE1Ny45YzM1LjMtOC4zIDYxLjYtNDAgNjEuNi03Ny45IDAtNDQuMi0zNS44LTgwLTgwLTgwLTQzLjQgMC03OC43IDM0LjUtODAgNzcuNUwxMzYuMiAxNTEuMUMxMjEuNyAxMzYuOCAxMDEuOSAxMjggODAgMTI4IDM1LjggMTI4IDAgMTYzLjggMCAyMDhzMzUuOCA4MCA4MCA4MGMxMi4yIDAgMjMuOC0yLjcgMzQuMS03LjZMMjU5LjcgNDA3LjhjLTIuNCA3LjYtMy43IDE1LjgtMy43IDI0LjIgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTI3LjctMTQtNTIuMS0zNS40LTY2LjRsMzcuOC0yMDcuN3pNMTU2LjMgMjMyLjJjMi4yLTYuOSAzLjUtMTQuMiAzLjctMjEuN2wxODMuOC03My41YzMuNiAzLjUgNy40IDYuNyAxMS42IDkuNUwzMTcuNiAzNTQuMWMtNS41IDEuMy0xMC44IDMuMS0xNS44IDUuNUwxNTYuMyAyMzIuMnoiXX0sVUt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1yZXN0b3JlIixpY29uOls1NzYsNTEyLFtdLCJmMmQyIiwiTTUxMiA5NkwxNjAgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTQ4IDAgMC02NCA0OCAwIDAtMTkyek0wIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0em02NCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxXS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiciIsaWNvbjpbMzIwLDUxMixbMTE0XSwiNTIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDk1LjMgMCAxMDIuNCAxNDYuNGMxMC4xIDE0LjUgMzAuMSAxOCA0NC42IDcuOXMxOC0zMC4xIDcuOS00NC42TDIzMC4xIDMwOS41QzI4Mi44IDI4OC4xIDMyMCAyMzYuNCAzMjAgMTc2IDMyMCA5Ni41IDI1NS41IDMyIDE3NiAzMkwzMiAzMnpNMTc2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6Il19LEdLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlMTdiIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzIuNSAyLjUgNS4zIDQuNSA4LjMgNi0yMS4yLTMwLjktMzMuNi02OC4zLTMzLjYtMTA4LjYgMC05OS40IDc1LjUtMTgxLjEgMTcyLjMtMTkxbDkwLjQtOTAuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxZS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29wdXJhbSIsaWNvbjpbNTEyLDUxMixbXSwiZjY2NCIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDggMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEzNmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC00OCAwIDAtMjI0LTMyIDAgMC0xMjgtNDggMCAwIDEyOCAzMiAwIDAgMjI0LTIyNCAwIDAtMjI0IDMyIDAgMC0xMjgtNDggMCAwIDEyOC0zMiAwIDAgMjI0LTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhMOTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMDggNDAwbDAgNjQgOTYgMCAwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek0yNTYgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzIgNjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxLS3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLW1pbnVzIixpY29uOls1NzYsNTEyLFtdLCJlNGZmIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xMjggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZ6Il19LFpLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLW9mLWxpZmUiLGljb246WzUxMiw1MTIsW10sImY2MjEiLCJNMjA4LjUgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0MC45IDEyMi03MC40YzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN2wxNiAyNy43YzguOCAxNS4zIDMuNiAzNC45LTExLjcgNDMuN2wtMTIyIDcwLjQgMTIyIDcwLjRjMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN2wtMTYgMjcuN2MtOC44IDE1LjMtMjguNCAyMC42LTQzLjcgMTEuN2wtMTIyLTcwLjQgMCAxNDAuOWMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNDAuOS0xMjIgNzAuNGMtMTUuMyA4LjgtMzQuOSAzLjYtNDMuNy0xMS43bC0xNi0yNy43Yy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjdsMTIyLTcwLjQtMTIyLTcwLjRjLTE1LjMtOC44LTIwLjUtMjguNC0xMS43LTQzLjdsMTYtMjcuN2M4LjgtMTUuMyAyOC40LTIwLjUgNDMuNy0xMS43bDEyMiA3MC40IDAtMTQwLjl6Il19LFA3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXNpbmVzcy10aW1lIixpY29uOls2NDAsNTEyLFsiYnJpZWZjYXNlLWNsb2NrIl0sImY2NGEiLCJNMjY0IDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwLTgwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMzA1IDBjMzMuOC0yOS45IDc4LjMtNDggMTI3LTQ4IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNGMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDI2NCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptODAgMjk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTE5MiAwIDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5My40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTE2LjYgMi4xLTMyLjcgNi00OGwtMjIgMHptMzUyIDQ4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQ5NiAzMjBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxYS3Q9UDdlLFFLdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWV4dGluZ3Vpc2hlciIsaWNvbjpbNTEyLDUxMixbMTI5NTE5XSwiZjEzNCIsIk01MTIgMzJjMC05LjYtNC4zLTE4LjctMTEuNy0yNC43UzQ4My4xLTEuMyA0NzMuNyAuNmwtMTYwIDMyQzMwMS41IDM1LjEgMjkyIDQ0LjMgMjg5IDU2bC02NSAwIDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjguNGMtNTUuMyAxMi4zLTEwMS4zIDQ5LjUtMTI1LjUgOTkuMS01LjggMTEuOS0uOSAyNi4zIDExLjEgMzIuMXMyNi4zIC45IDMyLjEtMTEuMUM2MiAxNDYuOSA5MS44IDEyMS4xIDEyOCAxMTBsMCAyOC44Yy0zNy44IDE4LTY0IDU2LjUtNjQgMTAxLjJsMCAxMjggMjI0IDAgMC0xMjhjMC00NC43LTI2LjItODMuMi02NC0xMDEuMmwwLTM0LjggNjUgMGMzIDExLjcgMTIuNSAyMC45IDI0LjcgMjMuNGwxNjAgMzJjOS40IDEuOSAxOS4xLS42IDI2LjYtNi42UzUxMiAxMzcuNiA1MTIgMTI4bDAtOTZ6TTI4OCA0NDhsMC0zMi0yMjQgMCAwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDk2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjR6Il19LEU3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWRvd24iXSwiZjE3NSIsIk0xMzcuNCA1MzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiA0MzQuNyAxOTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxMjgtMTcuNyAxMjggMGwwIDQzNC43LTczLjQtNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOHoiXX0sSkt0PUU3ZSxlWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1taW51cyIsaWNvbjpbNjQwLDUxMixbXSwiZjUwMyIsIk0yODUuNyAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzcuNyA1MTJDNjEuMyA1MTIgNDggNDk4LjcgNDggNDgyLjMgNDggMzgzLjggMTI3LjggMzA0IDIyNi4zIDMwNGw1OS40IDB6TTI1NiAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0zNDQtOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE0NCAweiJdfSx0WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktY2hlY2siLGljb246WzUxMiw1MTIsW10sImY1M2MiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHpNOTYgMzEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0LTEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjcyIDB6Il19LEk3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1sYXB0b3AiLGljb246WzY0MCw1MTIsWyJsYXB0b3AtaG91c2UiXSwiZTA2NiIsIk00NDggMjQwbDE5LjkgMGMxNS41IDAgMjguMS0xMi42IDI4LjEtMjguMSAwLTcuNi0zLjEtMTQuOS04LjYtMjAuMkwyODMuNS00LjlDMjc2LjEtMTIgMjY2LjMtMTYgMjU2LTE2cy0yMC4xIDQtMjcuNSAxMS4xTDI0LjYgMTkxLjdDMTkuMSAxOTcgMTYgMjA0LjMgMTYgMjExLjkgMTYgMjI3LjQgMjguNiAyNDAgNDQuMSAyNDBsMTkuOSAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg1LjcgMGM3LjQtNi42IDE2LjQtMTEuNCAyNi4zLTE0bDAtMTMwYzAtNS41IC43LTEwLjkgMi0xNmwtMTAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgMTQ0IDB6TTM1MiAzNTJsMTYwIDAgMCAxMjgtMTYwIDAgMC0xMjh6bS02NC0zMmwwIDE2MC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGFadD1JN2Usclp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvd25sb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDE5IiwiTTI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIxMC43LTQxLjQtNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjU2IDI0Mi43IDI1NiAzMnpNNjQgMzIwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ2LjkgMC01Ni42IDU2LjZjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMEwxMTAuOSAzMjAgNjQgMzIwem0zMDQgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxzWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2FnaXR0YXJpdXMiLGljb246WzQ0OCw1MTIsW10sImU4NGQiLCJNNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuOC0xNDYuOCAxNDYuOCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjJzLTMyLjggMTIuNS00NS4zIDBMMTkyIDMzMy4zIDU0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMiAwcy0xMi41LTMyLjggMC00NS4yTDE0Ni44IDI4OCAxMDUuNCAyNDYuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjJzMzIuOC0xMi41IDQ1LjIgMEwxOTIgMjQyLjggMzM4LjggOTYgMjU2IDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAweiJdfSxpWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY291Y2giLGljb246WzY0MCw1MTIsW10sImY0YjgiLCJNMTQ0IDI3MkMxNDQgMjI0LjcgMTA5LjggMTg1LjQgNjQuOCAxNzcuNSA3MiAxMTMuNiAxMjYuMiA2NCAxOTIgNjRsMjU2IDBjNjUuOCAwIDEyMCA0OS42IDEyNy4yIDExMy41LTQ1IDgtNzkuMiA0Ny4yLTc5LjIgOTQuNWwwIDMyLTM1MiAwIDAtMzJ6TTAgMzg0TDAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MCA0NDggMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NHoiXX0sb1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTU2NyIsIk0yNTYgMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMMzMuNCA0MjAuNUMyNS45IDQ1MC43IDQ4LjggNDgwIDgwIDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgNi4xIDAgMTEuOCAxLjcgMTYuNyA0LjcgMi44LTIzLjkgMTQuMy00NS4xIDMxLjQtNjAuM2wwLTI0LjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNi4yIDAgMTIuNCAuNCAxOC40IDEuM0w0NTguNSA4MC42QzQ1MS40IDUyLjEgNDI1LjggMzIgMzk2LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTc2IDgwLjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTM1MiA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LE43ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbOTk4NCw5OTg2LDk5ODgsImN1dCJdLCJmMGM0IiwiTTE5MiAyNTZsLTM5LjUgMzkuNWMtMTIuNi00LjktMjYuMi03LjUtNDAuNS03LjUtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJzNTAuMSAxMTIgMTEyIDExMiAxMTItNTAuMSAxMTItMTEyYzAtMTQuMy0yLjctMjcuOS03LjUtNDAuNUw0OTkuMiA3Ni44YzcuMS03LjEgNy4xLTE4LjUgMC0yNS42LTI4LjMtMjguMy03NC4xLTI4LjMtMTAyLjQgMEwyNTYgMTkyIDIxNi41IDE1Mi41YzQuOS0xMi42IDcuNS0yNi4yIDcuNS00MC41IDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzAgNTAuMSAwIDExMiA1MC4xIDIyNCAxMTIgMjI0YzE0LjMgMCAyNy45LTIuNyA0MC41LTcuNUwxOTIgMjU2em05Ny45IDk3LjlMMzk2LjggNDYwLjhjMjguMyAyOC4zIDc0LjEgMjguMyAxMDIuNCAwIDcuMS03LjEgNy4xLTE4LjUgMC0yNS42bC0xNDUuMy0xNDUuMy02NCA2NHpNNjQgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQ4IDI0MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LG5adD1ON2UsT3RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1ZyIsaWNvbjpbNTc2LDUxMixbXSwiZjE4OCIsIk0xOTIgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDMuNmMwIDE1LjctMTIuNyAyOC40LTI4LjQgMjguNGwtMTM1LjEgMGMtMTUuNyAwLTI4LjQtMTIuNy0yOC40LTI4LjRsMC0zLjZ6bTM0NS42IDEyLjhjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44bC05Ny44IDczLjNjNS4zIDguOSA5LjMgMTguNyAxMS44IDI5LjFsOTguOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMzJjMCAyLjYtLjEgNS4zLS4yIDcuOWw4My40IDYyLjVjMTQuMSAxMC42IDE3IDMwLjcgNi40IDQ0LjhzLTMwLjcgMTctNDQuOCA2LjRsLTYzLjEtNDcuM2MtMjMuMiA0NC4yLTY2LjUgNzYuMi0xMTcuNyA4My45TDMxMiAyODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMzAuMmMtNTEuMi03LjctOTQuNS0zOS43LTExNy43LTgzLjlMODMuMiA0NzMuNmMtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw4My40LTYyLjVjLS4xLTIuNi0uMi01LjItLjItNy45bDAtMzItOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OC44IDBjMi41LTEwLjQgNi41LTIwLjIgMTEuOC0yOS4xTDQ0LjggMTUzLjZjLTE0LjEtMTAuNi0xNy0zMC43LTYuNC00NC44czMwLjctMTcgNDQuOC02LjRMMTkyIDE4NGMxMi4zLTUuMSAyNS44LTggNDAtOGwxMTIgMGMxNC4yIDAgMjcuNyAyLjggNDAgOGwxMDguOC04MS42YzE0LjEtMTAuNiAzNC4yLTcuNyA0NC44IDYuNHoiXX0sUjdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0LWZyb20tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24tb3V0Il0sImYwOGIiLCJNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwek01MDIuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjI0IDE5MiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sbFp0PVI3ZSxjWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWhhbmQiLGljb246WzU3Niw1MTIsW10sImU0ZjciLCJNNDY2LjggMTg2LjVsNDIuNS00Mi41IDM0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDIyMy42IDE2Yy0yOSAwLTU3LjMgOS4zLTgwLjcgMjYuNUwxNi4zIDEzNS44Yy0xNy44IDEzLjEtMjEuNiAzOC4xLTguNSA1NS45czM4LjEgMjEuNiA1NS45IDguNUwxODMuNCAxMTIgMjk2IDExMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNTIuMiAwYzMzLjkgMCA2Ni41LTEzLjUgOTAuNS0zNy41em0tMzU3LjUgMTM5TDY2LjcgMzY4IDMyIDM2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQwMCAyODAgNDAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxkWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Ryb29wd2FmZWwiLGljb246WzUxMiw1MTIsW10sImY1NTEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzEyLjYgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMjU2IDk3LjYgMjIyLjEgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzMy45IDMzLjktNDUuMyA0NS4zLTU2LjYtNTYuNmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw1Ni42IDU2LjYtNDUuMyA0NS4zLTMzLjktMzMuOWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw5Ny42IDI1NiA2My43IDI4OS45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDQ1LjMgNDUuMy01Ni42IDU2LjZjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni42LTU2LjYgNDUuMyA0NS4zLTMzLjkgMzMuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSAzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgNDUuMy00NS4zIDU2LjYgNTYuNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU2LjYtNTYuNiA0NS4zLTQ1LjMgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zMy45IDMzLjktNDUuMy00NS4zIDU2LjYtNTYuNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC01Ni42IDU2LjYtNDUuMy00NS4zIDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpNMTQyLjkgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptNjcuOSA2Ny45bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3pNMjc4LjYgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptMjIuNi02Ny45bC00NS4zIDQ1LjMtNDUuMy00NS4zIDQ1LjMtNDUuMyA0NS4zIDQ1LjN6Il19LHVadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZCIsaWNvbjpbMzIwLDUxMixbXSwiZjFhZSIsIk05NiA2NEE2NCA2NCAwIDEgMSAyMjQgNjQgNjQgNjQgMCAxIDEgOTYgNjR6bTQ4IDMyMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDgwIDI4Ny44IDU5LjEgMzIxYy05LjQgMTUtMjkuMiAxOS40LTQ0LjEgMTBTLTQuNSAzMDEuOSA0LjkgMjg3bDM5LjktNjMuM0M2OS43IDE4NCAxMTMuMiAxNjAgMTYwIDE2MHM5MC4zIDI0IDExNS4yIDYzLjZMMzE1LjEgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwTDI0MCAyODcuOCAyNDAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHoiXX0scFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImljZS1jcmVhbSIsaWNvbjpbMzg0LDUxMixbMTI3ODQ4XSwiZjgxMCIsIk0zMzUuMSAxNjBjLjYtNS4zIC45LTEwLjYgLjktMTYgMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTNDggNjQuNSA0OCAxNDRjMCA1LjQgLjMgMTAuNyAuOSAxNmwtLjkgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyODggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtLjkgMHpNNjQgMzA0TDE2OS4yIDUyOS41YzQuMSA4LjggMTMgMTQuNSAyMi44IDE0LjVzMTguNi01LjcgMjIuOC0xNC41TDMyMCAzMDQgNjQgMzA0eiJdfSxPN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHV0ZXItbW91c2UiLGljb246WzM4NCw1MTIsWzEyODQzMywibW91c2UiXSwiZjhjYyIsIk0wIDE5MmwxNjggMCAwLTE5Mi04IDBDNzEuNiAwIDAgNzEuNiAwIDE2MGwwIDMyem0wIDQ4TDAgMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwbDY0IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC0xMTItMzg0IDB6bTM4NC00OGwwLTMyQzM4NCA3MS42IDMxMi40IDAgMjI0IDBsLTggMCAwIDE5MiAxNjggMHoiXX0sZlp0PU83ZSxoWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmF1Y2V0IixpY29uOls1MTIsNTEyLFtdLCJlMDA1IiwiTTE5MiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCA2NCAxOC43IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMjIuNiAyMi42IDMyIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjAgMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMycy0xNC4zLTMyLTMyLTMybC0zNi4xIDBjLTIwLjIgMjktNTMuOSA0OC05MS45IDQ4cy03MS43LTE5LTkxLjktNDhMMzIgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMjIuNi0yMi42YzYtNiAxNC4xLTkuNCAyMi42LTkuNGwxOC43IDAgMC02NC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDY0IDk2IDY0bDk2IDB6Il19LG1adD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhd2FyZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU1OSIsIk0yNDUuOS0yNS45Yy0xMy40LTguMi0zMC4zLTguMi00My43IDAtMjQuNCAxNC45LTM5LjUgMTguOS02OC4xIDE4LjMtMTUuNy0uNC0zMC4zIDguMS0zNy45IDIxLjktMTMuNyAyNS4xLTI0LjggMzYuMi00OS45IDQ5LjktMTMuOCA3LjUtMjIuMiAyMi4yLTIxLjkgMzcuOSAuNyAyOC42LTMuNCA0My43LTE4LjMgNjguMS04LjIgMTMuNC04LjIgMzAuMyAwIDQzLjcgMTQuOSAyNC40IDE4LjkgMzkuNSAxOC4zIDY4LjEtLjQgMTUuNyA4LjEgMzAuMyAyMS45IDM3LjkgMjIuMSAxMi4xIDMzLjMgMjIuMSA0NS4xIDQxLjVMNDIuNyA0NTguNWMtNS45IDExLjktMS4xIDI2LjMgMTAuNyAzMi4ybDg2IDQzYzExLjUgNS43IDI1LjUgMS40IDMxLjctOS44bDUyLjgtOTUuMSA1Mi44IDk1LjFjNi4yIDExLjIgMjAuMiAxNS42IDMxLjcgOS44bDg2LTQzYzExLjktNS45IDE2LjctMjAuMyAxMC43LTMyLjJsLTQ4LjYtOTcuMmMxMS43LTE5LjQgMjMtMjkuNCA0NS4xLTQxLjUgMTMuOC03LjUgMjIuMi0yMi4yIDIxLjktMzcuOS0uNy0yOC42IDMuNC00My43IDE4LjMtNjguMSA4LjItMTMuNCA4LjItMzAuMyAwLTQzLjctMTQuOS0yNC40LTE4LjktMzkuNS0xOC4zLTY4LjEgLjQtMTUuNy04LjEtMzAuMy0yMS45LTM3LjktMjUuMS0xMy43LTM2LjItMjQuOC00OS45LTQ5LjktNy41LTEzLjgtMjIuMi0yMi4yLTM3LjktMjEuOS0yOC42IC43LTQzLjctMy40LTY4LjEtMTguM3pNMjI0IDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxnWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRyb3duaW5nIixpY29uOls2NDAsNTEyLFtdLCJlNTQ1IiwiTTI2NCA4OGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTEzMy45IDY1LjZjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ybDEwLjkgMzIuOGM5LjQgMjguMyAzMy4yIDQ5LjUgNjIuNSA1NS42IDUuNiAxLjIgMTEuMyAxLjggMTcuMSAxLjhsODggMGMxNy4yIDAgMzQuMy0yLjggNTAuNi04LjJsMTE0LjQtMzguMWMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJzLTMuNSAzNC45LTIwLjIgNDAuNUw0MjMuNyAyMjguNWMtOC40IDIuOC0xNyA1LjEtMjUuNyA2LjlsLTI2LjUgODguM2MtNi4xIDMuNC0xMi4xIDcuMy0xNy45IDExLjctMjIuMSAxNi42LTI5LjEgMTYuNi01MS4yIDAtMjYuMi0xOS43LTU2LjktMzAuMi04Ny44LTMxLjNsMjAuMi02Ny4yYy01MS41LTEwLjctOTMuNS00OC4xLTExMC4yLTk4bC0xMC45LTMyLjhjLTUuNi0xNi44IDMuNS0zNC45IDIwLjItNDAuNXpNNDAzLjQgNDEyLjFDMzc5LjEgNDMwLjMgMzUxLjEgNDQ4IDMyMCA0NDhzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxiWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTBkOCIsIk0xMzguNyA5NmwxMC40LTMxLjJDMTU1LjYgNDUuMiAxNzMuOSAzMiAxOTQuNiAzMmwxMjIuOCAwYzIwLjcgMCAzOSAxMy4yIDQ1LjUgMzIuOEwzNzMuMyA5NiA0NDggOTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NGw3NC43IDB6TTk2IDMwNS45YzAgMy45IDEuNCA3LjcgNCAxMC42bDQ4IDU0YzYuNCA3LjIgMTcuNiA3LjIgMjMuOSAwbDQ4LTU0YzIuNi0yLjkgNC02LjcgNC0xMC42bDAtMS45YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMGMwLTM5LjggMzIuMi03MiA3Mi03MiA0LjQgMCA4LjcgLjQgMTIuOSAxLjJsMzQuOS0zOS4zYy0xNC42LTYuNC0zMC44LTkuOS00Ny44LTkuOS02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMS45em0xOTYtNDYuNWMtMi42IDIuOS00IDYuNy00IDEwLjZsMCAxLjljMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjMCAzOS44LTMyLjIgNzItNzIgNzItNC40IDAtOC43LS40LTEyLjktMS4ybC0zNC45IDM5LjNjMTQuNyA2LjQgMzAuOCA5LjkgNDcuOCA5LjkgNjYuMyAwIDEyMC01My43IDEyMC0xMjBsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xLjljMC0zLjktMS40LTcuNy00LTEwLjZsLTQ4LTU0Yy02LjQtNy4yLTE3LjYtNy4yLTIzLjkgMGwtNDggNTR6Il19LEY3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4taGVhcnRzIixpY29uOls1MTIsNTEyLFsxMjg1MjUsImdyaW4taGVhcnRzIl0sImY1ODQiLCJNMjU2IDUxMmMxNDEuNCAwIDI1Ni0xMTQuNiAyNTYtMjU2IDAtMjMuMy0zLjEtNDUuOS04LjktNjcuMyA1LjUtMTMuNSA4LjktMjguNCA4LjktNDQuNyAwLTUzLTQzLTk2LTk2LTk2bC0yLjkgMGMtMi41IDAtNSAuMS03LjQgLjMtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MtMi41LS4yLTQuOS0uMy03LjQtLjNMOTYgNDhjLTUzIDAtOTYgNDMtOTYgOTYgMCAxNi4zIDMuNSAzMS4yIDguOSA0NC43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzIyLjkgOTZjMTMuNSAwIDI2LjUgNS40IDM2IDE0LjlsOS4xIDkuMSA5LjEtOS4xYzkuNS05LjUgMjIuNS0xNC45IDM2LTE0LjlsMi45IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA1My40LTY2LjkgOTUuNy04OSAxMDguMi00LjQgMi41LTkuNiAyLjUtMTQgMC0yMi4xLTEyLjUtODktNTQuOC04OS0xMDguMiAwLTI2LjUgMjEuNS00OCA0OC00OGwyLjkgMHptLTE4OCAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDBjMTMuNSAwIDI2LjUgNS40IDM2IDE0Ljl6Il19LHZadD1GN2UseFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtZnJhZ21lbnQiLGljb246WzM4NCw1MTIsW10sImU2OTciLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNDAgMTI4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxMjggMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnpNMzIgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHoiXX0seVp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS1yaWZsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTU0YiIsIk0xMjggMzljMC0xMyAxMC0yMy44IDIyLjktMjQuOUwzMDIuNyAxLjRDMzEyIC43IDMyMCA4IDMyMCAxNy40TDMyMCA0OGMwIDguOC03LjIgMTYtMTYgMTZMMTUzIDY0Yy0xMy44IDAtMjUtMTEuMi0yNS0yNXptMTcuNiA1N2wxNTYuOCAwYzEgNS4yIDEuNiAxMC41IDEuNiAxNiAwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTUuNSAuNi0xMC44IDEuNi0xNnptMjI4IDM2NC4zTDMyMCAzNjkuNyAzMjAgNDgwYzAgMS4zLS4xIDIuNS0uMiAzLjhMMTQ1LjUgMjM0LjljMTYuNi03LjEgMzQuNi0xMC45IDUzLjMtMTAuOWw1MC40IDBjMTUuOSAwIDMxLjMgMi44IDQ1LjggNy45TDM4OS45IDY3LjdjLTcuNy00LjQtMTAuMy0xNC4yLTUuOS0yMS45czE0LjItMTAuMyAyMS45LTUuOWwyNy43IDE2YzcuNyA0LjQgMTAuMyAxNC4yIDUuOSAyMS45bC01NS41IDk2LjEgMS42IC45YzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdMMzYwLjcgMjgyYzIgMi44IDMuOSA1LjggNS43IDguOGw3Ni4xIDEyOC44YzExLjIgMTkgNC45IDQzLjUtMTQuMSA1NC44cy00My41IDQuOS01NC44LTE0LjF6TTI4OCA1MTJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExMC4zLTUzLjYgOTAuNmMtMTEuMiAxOS0zNS44IDI1LjMtNTQuOCAxNC4xUy01LjcgNDM4LjcgNS42IDQxOS43TDgxLjcgMjkwLjhjOS40LTE1LjggMjEuNy0yOS4zIDM2LTQwTDI5OS4xIDUxMGMtMy41IDEuMy03LjIgMi0xMS4xIDJ6TTI2NCAzMjBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSx3WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9nZ2xlLW9uIixpY29uOls1NzYsNTEyLFtdLCJmMjA1IiwiTTE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MlM0OTAgNjQgMzg0IDY0TDE5MiA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxNWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibHVuZ3MtdmlydXMiLGljb246WzU3Niw1MTIsW10sImUwNjciLCJNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTUxLjNjOS42LTQuOCAyMC41LTcuNSAzMi03LjVzMjIuNCAyLjcgMzIgNy41TDMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDUwLjEgNDUxYzggMTguMyA4LjEgMzkuMiAuMiA1Ny41IDEwLjIgMi4zIDIwLjYgMy41IDMxLjIgMy41IDUyLjIgMCA5NC41LTQyLjMgOTQuNS05NC41bDAtNi4yYzAtMTExLjEtMzYuNy0yMTktMTA0LjQtMzA3TDQyOC45IDQ4LjdjLTguMS0xMC42LTIwLjctMTYuNy0zNC0xNi43LTIzLjcgMC00Mi45IDE5LjItNDIuOSA0Mi45bDAgMTM5LjljMS4yIDIuMiAyLjIgNC42IDMuMSA2LjkgMjYuNC0xMS42IDU4LjMtNi42IDc5LjkgMTVzMjYuNiA1My42IDE1IDc5LjlDNDc3IDMyNy4yIDQ5NiAzNTMuMyA0OTYgMzgzLjhzLTE5IDU2LjctNDUuOSA2Ny4xek0yMjAuOSAyMjEuOGMuOS0yLjQgMi00LjcgMy4xLTYuOWwwLTEzOC41YzAtMjQuNS0xOS45LTQ0LjQtNDQuNC00NC40LTEyLjUgMC0yNC40IDUuMy0zMi44IDE0LjVsLTI2LjQgMjlDNDIuOSAxNjAuOCAwIDI3MS44IDAgMzg3bDAgMzAuNWMwIDUyLjIgNDIuMyA5NC41IDk0LjUgOTQuNSAxMC41IDAgMjEtMS4yIDMxLjItMy41LTcuOS0xOC4zLTcuOC0zOS4zIC4yLTU3LjUtMjYuOS0xMC40LTQ1LjktMzYuNi00NS45LTY3LjFzMTktNTYuNyA0NS45LTY3LjFjLTExLjYtMjYuNC02LjYtNTguMyAxNS03OS45czUzLjYtMjYuNiA3OS45LTE1ek0xNTIgNDA4YzI4LjggMCA0My4yIDM0LjggMjIuOSA1NS4yLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMyMC40LTIwLjQgNTUuMi01LjkgNTUuMiAyMi45IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yOC44IDM0LjgtNDMuMiA1NS4yLTIyLjkgOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy0yMC40LTIwLjQtNS45LTU1LjIgMjIuOS01NS4yIDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yOC44IDAtNDMuMi0zNC44LTIyLjktNTUuMiA5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0yMC40IDIwLjQtNTUuMiA1LjktNTUuMi0yMi45IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMjguOC0zNC44IDQzLjItNTUuMiAyMi45LTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjljMjAuNCAyMC40IDUuOSA1NS4yLTIyLjkgNTUuMi0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0em0xMDQtODBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxsdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtdGVubmlzLXBhZGRsZS1iYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTUsInBpbmctcG9uZy1wYWRkbGUtYmFsbCIsInRhYmxlLXRlbm5pcyJdLCJmNDVkIiwiTTk3IDEyN2w2Ny40LTY3LjRjMzguMi0zOC4yIDkwLTU5LjYgMTQ0LTU5LjYgMTEyLjUgMCAyMDMuNyA5MS4yIDIwMy43IDIwMy42IDAgNDYuNC0xNS44IDkxLjEtNDQuNSAxMjctMjMuNi0xNi44LTUyLjQtMjYuNy04My41LTI2LjctMzEuMSAwLTU5LjkgOS45LTgzLjQgMjYuNkw5NyAxMjd6TTI0MCA0NDhjMCA5LjcgMSAxOS4xIDIuOCAyOC4yLTE5LjgtNS4yLTM4LTE1LjUtNTIuNy0zMC4yLTEyLjItMTIuMi0zMS45LTEyLjItNDQuMSAwTDk2LjYgNDk1LjRjLTEwLjYgMTAuNi0yNSAxNi42LTQwIDE2LjYtMzEuMiAwLTU2LjYtMjUuMy01Ni42LTU2LjYgMC0xNSA2LTI5LjQgMTYuNi00MGw0OS40LTQ5LjRjMTIuMi0xMi4yIDEyLjItMzEuOSAwLTQ0LjEtMjEuNy0yMS43LTMzLjktNTEuMi0zMy45LTgxLjkgMC0yOS40IDExLjEtNTcuNiAzMS4xLTc5TDI2Ni42IDM2NC42QzI0OS45IDM4OC4xIDI0MCA0MTYuOSAyNDAgNDQ4em0xNDQtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LGtadD1sdGUsU1p0PWx0ZSx6WnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94ZXMtcGFja2luZyIsaWNvbjpbNTc2LDUxMixbXSwiZTRjNyIsIk0yMDggMGw4MCAwIDAgNTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTU2IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEwOC44IDBjOC4yLTE0LjEgMTIuOC0zMC41IDEyLjgtNDhsMC0xNjBjMTAtMTMuNCAxNi0zMCAxNi00OGwwLTMyYzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNzYgMCAwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek0zMiAzMzZsMzIwIDAgMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhMODAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOHpNNDggMTkybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxDWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNoYWxrYm9hcmQiLGljb246WzY0MCw1MTIsW10sImU1M2QiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0xNzYgNTEybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTQ4IDE5MiAwIDAgMTkyLTE5MiAwIDAtMzItNjQgMCAwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDM2OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LTEyMi43IDBjLTQ1LjYgMC04OC41IDIxLjYtMTE1LjYgNTguMkwxNC4zIDI2MC45Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTEyIDIzNi43IDExMiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnoiXX0sX1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtdHdvIixpY29uOls0NDgsNTEyLFs5ODU3XSwiZjUyOCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMzUyIDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sQjdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJpZ2h0LWFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWzg2NDQsImV4Y2hhbmdlIl0sImYwZWMiLCJNNTAyLjYgMTUwLjZsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w0MDIuNyAxNjAgMzIgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDM3MC43IDAtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zem0tMzk3LjMgMzUybC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxMDkuMyAzNTIgNDgwIDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzcwLjcgMCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6Il19LFRadD1CN2UsSDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvb3RiYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NDQsImZvb3RiYWxsLWJhbGwiXSwiZjQ0ZSIsIk0yNjEuMSAyMi42Yy04OSAxOC0xNTAuNSA2My40LTE5MCAxMjMuOS0yMy4zIDM1LjYtMzguMSA3NS4zLTQ2LjcgMTE1LjVMMjUxLjkgNDg5LjRjODktMTggMTUwLjUtNjMuNCAxOTAuMS0xMjMuOSAyMy4zLTM1LjYgMzguMS03NS4zIDQ2LjctMTE1LjVMMjYxLjEgMjIuNnptMjM2IDE2OC4xYzMuMi00Mi4zIC43LTgzLjMtNC44LTExOC43LTQuNC0yNy44LTI2LjgtNDgtNTMuMS01MS42LTQzLTUuOS04Mi4yLTcuNS0xMTcuOC01LjRMNDk3LjEgMTkwLjZ6TTE5MS43IDQ5Ny4xTDE1LjkgMzIxLjRjLTMuMiA0Mi4zLS43IDgzLjMgNC44IDExOC43IDQuNCAyNy44IDI2LjggNDggNTMuMSA1MS42IDQzIDUuOSA4Mi4yIDcuNSAxMTcuOCA1LjR6TTI3MS41IDE0M2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bS02NCA2NGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bS02NCA2NGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LExadD1IN2UsJFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1vbnN0ZXIiLGljb246WzU3Niw1MTIsW10sImY2M2IiLCJNMzM2IDk2bDQ4IDY0LTEyOCAwIDAtNjQgODAgMHptMTI4IDY0TDM4Ny4yIDU3LjZDMzc1LjEgNDEuNSAzNTYuMSAzMiAzMzYgMzJMMjI0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2LTE0NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMTguMSAxMC4xIDMzLjkgMjQuOSA0Mi4xLS41IDUuNyAxLjEgMTEuNiA0LjcgMTYuNC0zLjcgNi45LTYuOCAxNC4xLTkgMjEuOC0xMS42IDEuNy0yMC42IDExLjctMjAuNiAyMy44bDAgMTZjMCAxMi4xIDguOSAyMi4xIDIwLjYgMjMuOCAyLjIgNy42IDUuMyAxNC45IDkgMjEuOC03IDkuNC02LjMgMjIuOCAyLjMgMzEuM2wxMS4zIDExLjNjOC42IDguNiAyMS45IDkuMyAzMS4zIDIuMiA2LjggMy43IDE0LjEgNi44IDIxLjcgOSAxLjcgMTEuNiAxMS43IDIwLjYgMjMuOCAyMC42bDE2IDBjMTIuMSAwIDIyLjEtOC45IDIzLjgtMjAuNiA3LjYtMi4yIDE0LjktNS4zIDIxLjctOSA5LjQgNyAyMi44IDYuMyAzMS4zLTIuMmwxMS4zLTExLjNjOC42LTguNiA5LjMtMjEuOSAyLjMtMzEuMyAzLjctNi44IDYuOC0xNC4xIDktMjEuNyAxMS42LTEuNyAyMC42LTExLjcgMjAuNi0yMy44bDAtMTZjMC0xMi4xLTguOS0yMi4xLTIwLjYtMjMuOC0yLjItNy42LTUuMy0xNC45LTktMjEuNyAyLjQtMy4yIDMuOS02LjggNC41LTEwLjVsMTE0LjIgMGMuNiAzLjcgMi4xIDcuMyA0LjUgMTAuNS0zLjcgNi45LTYuOCAxNC4xLTkgMjEuOC0xMS42IDEuNy0yMC42IDExLjctMjAuNiAyMy44bDAgMTZjMCAxMi4xIDguOSAyMi4xIDIwLjYgMjMuOCAyLjIgNy42IDUuMyAxNC45IDkgMjEuOC03IDkuNC02LjMgMjIuOCAyLjIgMzEuM2wxMS4zIDExLjNjOC41IDguNiAyMS45IDkuMyAzMS4zIDIuMiA2LjggMy43IDE0LjEgNi44IDIxLjcgOSAxLjcgMTEuNiAxMS43IDIwLjYgMjMuOCAyMC42bDE2IDBjMTIuMSAwIDIyLjEtOC45IDIzLjgtMjAuNiA3LjYtMi4yIDE0LjktNS4zIDIxLjgtOSA5LjQgNyAyMi44IDYuMyAzMS4zLTIuMmwxMS4zLTExLjNjOC42LTguNiA5LjMtMjEuOSAyLjItMzEuMyAzLjctNi44IDYuOC0xNC4xIDktMjEuNyAxMS42LTEuNyAyMC42LTExLjcgMjAuNi0yMy44bDAtMTZjMC0xMi4xLTguOS0yMi4xLTIwLjYtMjMuOC0yLjItNy42LTUuMy0xNC45LTktMjEuNyAzLjYtNC44IDUuMi0xMC43IDQuNy0xNi40IDE0LjgtOC4yIDI0LjktMjMuOSAyNC45LTQyLjFsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNMTI4IDMzNmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTI3MiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxEWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXN0ZXJpc2siLGljb246WzQ0OCw1MTIsWzEwMDMzLDYxNTQ1XSwiMmEiLCJNMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjguNiAxNDQtODMuMWMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdzMy42IDM0LjktMTEuNyA0My43TDI4OCAyNTYgNDMyIDMzOS4xYzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdzLTI4LjQgMjAuNi00My43IDExLjdMMjU2IDMxMS40IDI1NiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjguNi0xNDQgODMuMWMtMTUuMyA4LjgtMzQuOSAzLjYtNDMuNy0xMS43Uy43IDM0OCAxNiAzMzkuMUwxNjAgMjU2IDE2IDE3Mi45Qy43IDE2NC00LjUgMTQ0LjUgNC4zIDEyOS4xUzMyLjcgMTA4LjYgNDggMTE3LjRMMTkyIDIwMC42IDE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sY3RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZnVsbCIsaWNvbjpbNjQwLDUxMixbMTI4MjY3LCJiYXR0ZXJ5IiwiYmF0dGVyeS01Il0sImYyNDAiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzA0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTMwNCAweiJdfSxBWnQ9Y3RlLFBadD1jdGUsRVp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkLWRyZXNzIixpY29uOlszMjAsNTEyLFtdLCJlNTljIiwiTTIyNCA2NEE2NCA2NCAwIDEgMCA5NiA2NCA2NCA2NCAwIDEgMCAyMjQgNjR6TTg4IDQwMGwwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNiAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDE3LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtMzEuMS05My40IDI4LjcgMzcuOGMxMC43IDE0LjEgMzAuOCAxNi44IDQ0LjggNi4yczE2LjgtMzAuNyA2LjItNDQuOEwyNTQuNiAyMDdjLTIyLjQtMjkuNi01Ny41LTQ3LTk0LjYtNDdzLTcyLjIgMTcuNC05NC42IDQ3TDYuNSAyODQuN2MtMTAuNyAxNC4xLTcuOSAzNC4yIDYuMiA0NC44czM0LjIgNy45IDQ0LjgtNi4yTDg2LjIgMjg1LjUgNTUgMzc4LjlDNTEuNiAzODkuMyA1OS4zIDQwMCA3MC4yIDQwMEw4OCA0MDB6Il19LHE3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTM3LCJraXNzLWJlYW0iXSwiZjU5NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjQwIDI4OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sSVp0PXE3ZSxWN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2gtY2FuLWFycm93LXVwIixpY29uOls0NDgsNTEyLFsidHJhc2gtcmVzdG9yZS1hbHQiXSwiZjgyYSIsIk0xNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjFDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2ek0zMiAxNDRsMzg0IDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNHptMjA5IDc5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNzIgNzJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMS0zMSAwIDEwMi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDIuMSAzMSAzMWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyeiJdfSxOWnQ9VjdlLFJadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb250IixpY29uOls1MTIsNTEyLFtdLCJmMDMxIiwiTTI4NS4xIDUwLjdDMjc5LjkgMzkuMyAyNjguNSAzMiAyNTYgMzJzLTIzLjkgNy4zLTI5LjEgMTguN0w1OS41IDQxNiA0OCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNi4xIDAgMjItNDggMjA4LjMgMCAyMiA0OC02LjEgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMS41IDAtMTY3LjQtMzY1LjN6TTMzMC44IDMwNEwxODEuMiAzMDQgMjU2IDE0MC44IDMzMC44IDMwNHoiXX0sT1p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmUtaG9sZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRjMyIsIk0yNTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMzIuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtMjMuNy0xMi45LTQ0LjQtMzItNTUuNEwyODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMzg0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTQ0YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAzODEuOSAxNDQgMzIwbDAtMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NHoiXX0sRlp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkIixpY29uOls1MTIsNTEyLFtdLCJlNGE4IiwiTTE5MiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMzMuNmMzMC43IDQuMiA1OC44IDE2LjMgODIuMyAzNC4xTDM4Ni4xIDkyIDM3NC44IDgwLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1Ni42IDU2LjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMTEuMy0xMS4zLTIzLjggMjMuOGMxNy45IDIzLjUgMjkuOSA1MS43IDM0LjEgODIuM2wzMy42IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNi0zMy42IDBjLTQuMiAzMC43LTE2LjMgNTguOC0zNC4xIDgyLjNsMjMuOCAyMy44IDExLjMtMTEuM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU2LjYgNTYuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwxMS4zLTExLjMtMjMuOC0yMy44Yy0yMy41IDE3LjktNTEuNyAyOS45LTgyLjMgMzQuMWwwIDMzLjYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtMzMuNmMtMzAuNy00LjItNTguOC0xNi4zLTgyLjMtMzQuMWwtMjMuOCAyMy44IDExLjMgMTEuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQ2LjcgNDA4LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMS4zIDExLjMgMjMuOC0yMy44Qzk3LjkgMzM4LjggODUuOCAzMTAuNyA4MS42IDI4MGwtMzMuNiAwIDAgMTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCAzMDkuMyAwIDI5NmwwLTgwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiAzMy42IDBjNC4yLTMwLjcgMTYuMy01OC44IDM0LjEtODIuM0w5MiAxMjUuOSA4MC42IDEzNy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU2LjYtNTYuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMTI1LjkgOTIgMTQ5LjcgMTE1LjdjMjMuNS0xNy45IDUxLjctMjkuOSA4Mi4zLTM0LjFsMC0zMy42LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zMiAyMDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxCWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZGYiLGljb246WzU3Niw1MTIsW10sImYxYzEiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4MCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE3NiAwIDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTI0MCAzODBjLTExIDAtMjAgOS0yMCAyMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTI4IDEyIDBjMzMuMSAwIDYwLTI2LjkgNjAtNjBzLTI2LjktNjAtNjAtNjBsLTMyIDB6bTMyIDgwbC0xMiAwIDAtNDAgMTIgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6bTk2LTgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJsMC02NGMwLTI4LjctMjMuMy01Mi01Mi01MmwtMzIgMHptMjAgMTI4bDAtODggMTIgMGM2LjYgMCAxMiA1LjQgMTIgMTJsMCA2NGMwIDYuNi01LjQgMTItMTIgMTJsLTEyIDB6bTg4LTEwOGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQ0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0yOCAwIDAtMjQgMjggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQ4IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sSFp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxhbmd1YWdlIixpY29uOls1NzYsNTEyLFtdLCJmMWFiIiwiTTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTkuNiAwLTguNCAyMy4xYy0xNi40IDQ1LjItNDEuMSA4Ni41LTcyLjIgMTIyIDE0LjIgOC44IDI5IDE2LjYgNDQuNCAyMy41bDUwLjQgMjIuNCA2Mi4yLTE0MGM1LjEtMTEuNiAxNi42LTE5IDI5LjItMTlzMjQuMSA3LjQgMjkuMiAxOWwxMjggMjg4YzcuMiAxNi4yLS4xIDM1LjEtMTYuMiA0Mi4ycy0zNS4xLS4xLTQyLjItMTYuMmwtMjAtNDUtMTU3LjUgMC0yMCA0NWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmwzOS44LTg5LjUtNTAuNC0yMi40Yy0yMy0xMC4yLTQ1LTIyLjQtNjUuOC0zNi40LTIxLjMgMTcuMi00NC42IDMyLjItNjkuNSA0NC43TDc4LjMgMzgwLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMzQuNS0xNy4zYzE2LjMtOC4yIDMxLjgtMTcuNyA0Ni40LTI4LjMtMTMuOC0xMi43LTI2LjgtMjYuNC0zOC45LTQwLjlMODEuNiAyMjQuN2MtMTEuMy0xMy42LTkuNS0zMy44IDQuMS00NS4xczMzLjgtOS41IDQ1LjEgNC4xbDEwLjIgMTIuMmMxMS41IDEzLjkgMjQuMSAyNi44IDM3LjQgMzguNyAyNy41LTMwLjQgNDkuMi02Ni4xIDYzLjUtMTA1LjRsLjUtMS4yLTIxMC4zIDBDMTQuMyAxMjggMCAxMTMuNyAwIDk2UzE0LjMgNjQgMzIgNjRsOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek00MTYgMjcwLjhMMzY1LjcgMzg0IDQ2Ni4zIDM4NCA0MTYgMjcwLjh6Il19LGo3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtaGFsdmVkIixpY29uOls1MTIsNTEyLFsic2hpZWxkLWFsdCJdLCJmM2VkIiwiTTI1NiAwYzQuNiAwIDkuMiAxIDEzLjQgMi45TDQ1Ny44IDgyLjhjMjIgOS4zIDM4LjQgMzEgMzguMyA1Ny4yLS41IDk5LjItNDEuMyAyODAuNy0yMTMuNiAzNjMuMi0xNi43IDgtMzYuMSA4LTUyLjggMC0xNzIuNC04Mi41LTIxMy4xLTI2NC0yMTMuNi0zNjMuMi0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni45IDEgMjUxLjQgMCAyNTYgMHptMCA2Ni44bDAgMzc4LjFjMTM4LTY2LjggMTc1LjEtMjE0LjggMTc2LTMwMy40bC0xNzYtNzQuNiAwIDB6Il19LHFadD1qN2UsVlp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LXVwIixpY29uOlszMjAsNTEyLFtdLCJmMGQ4IiwiTTE0MC4zIDEzNS4yYzEyLjYtMTAuMyAzMS4xLTkuNSA0Mi44IDIuMmwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMwMS40IDMyMCAyODguNSAzMjBsLTI1NiAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy43IDI3NC41IDkuOSAyNjUuNGwxMjgtMTI4IDIuNC0yLjJ6Il19LFU3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBlbiIsaWNvbjpbNjQwLDUxMixbMTI4MjIxLCJmaWxlLWVkaXQiXSwiZjMxYyIsIk0xMjguMSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDYuMiAwIDEwLjktNTQuNWM0LjMtMjEuNyAxNS00MS42IDMwLjYtNTcuMmwxMzIuMi0xMzIuMiAwLTk3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzIyLjggMTguN0MzMTAuOCA2LjcgMjk0LjUgMCAyNzcuNiAwTDEyOC4xIDB6TTM4OS42IDE3NmwtOTMuNSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTkzLjUgMTE3LjUgMTE3LjV6TTMzMi4zIDQ2Ni45bC0xMS45IDU5LjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNiAxIDAgMS45LS4xIDIuOS0uM2w1OS42LTExLjljMTIuNC0yLjUgMjMuOC04LjYgMzIuNy0xNy41bDExOC45LTExOC45LTgwLTgwLTExOC45IDExOC45Yy04LjkgOC45LTE1IDIwLjMtMTcuNSAzMi43em0yNjcuOC0xMjNjMjIuMS0yMi4xIDIyLjEtNTcuOSAwLTgwcy01Ny45LTIyLjEtODAgMGwtMjguOCAyOC44IDgwIDgwIDI4LjgtMjguOHoiXX0salp0PVU3ZSxXN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWJpa2luZyIsaWNvbjpbNTc2LDUxMixbMTI4NjkyLCJiaWtpbmciXSwiZjg0YSIsIk0zNjggOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0yNy4yIDY0bC02MS44LTQ4LjhjLTE3LjMtMTMuNi00MS43LTEzLjgtNTkuMS0uM2wtODMuMSA2NC4yYy0zMC43IDIzLjgtMjguNSA3MC44IDQuMyA5MS42TDI1NiAzMDUuMSAyNTYgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xMC43LTUuMy0yMC43LTE0LjItMjYuNkwyNjMgMjMyLjkgMzIzLjMgMTg0LjQgMzY0IDIxN2M1LjcgNC41IDEyLjcgNyAyMCA3bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUyLjggMHpNMTEyIDUxMmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6bTM1MiAwYTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sVVp0PVc3ZSxHN2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1vcGVuLXJlYWRlciIsaWNvbjpbNTEyLDUxMixbImJvb2stcmVhZGVyIl0sImY1ZGEiLCJNMjU2IDE1MmE4OCA4OCAwIDEgMCAwLTE3NiA4OCA4OCAwIDEgMCAwIDE3NnptMCAyOTguN2wwLTE0OS4zYzE2LjMtNi44IDMyLjktMTMuNyA0OS43LTIwLjcgMzktMTYuMiA4MC44LTI0LjYgMTIzLjEtMjQuNmwxOS4yIDAgMCAxNjAtMTkuMiAwYy01OS4xIDAtMTE3LjcgMTEuNy0xNzIuMyAzNC41bC0uNSAuMnpNMjU2IDIzMmwtMjUuMS0xMC41QzE4NC4xIDIwMiAxMzMuOSAxOTIgODMuMiAxOTJMNDggMTkyYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNS4yIDBjNTAuNyAwIDEwMC45IDEwIDE0Ny43IDI5LjVsMTIuOCA1LjNjNy45IDMuMyAxNi43IDMuMyAyNC42IDBsMTIuOC01LjNjNDYuOC0xOS41IDk3LTI5LjUgMTQ3LjctMjkuNWwzNS4yIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xOTJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTM1LjIgMGMtNTAuNyAwLTEwMC45IDEwLTE0Ny43IDI5LjVMMjU2IDIzMnoiXX0sV1p0PUc3ZSxHWnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xhc3Mtd2F0ZXItZHJvcGxldCIsaWNvbjpbMzg0LDUxMixbXSwiZTRmNSIsIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek04MyAyOTcuNUw2Ni40IDY0IDMxNy42IDY0IDMwMSAyOTcuNSAyODggMzA0Yy0yMC4xIDEwLjEtNDMuOSAxMC4xLTY0IDBzLTQzLjktMTAuMS02NCAwLTQzLjkgMTAuMS02NCAwbC0xMy02LjV6TTI1NiAxOTZjMC0yNC0zMy43LTcwLjEtNTIuMi05My41LTYuMS03LjctMTcuNS03LjctMjMuNiAwLTE4LjUgMjMuNC01Mi4yIDY5LjUtNTIuMiA5My41IDAgMzMuMSAyOC43IDYwIDY0IDYwczY0LTI2LjkgNjQtNjB6Il19LFk3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1icm9hZGNhc3QiLGljb246WzU3Niw1MTIsWyJicm9hZGNhc3QtdG93ZXIiXSwiZjUxOSIsIk04Ny45IDExLjVjLTExLjMtNi45LTI2LjEtMy4yLTMzIDguMS0yNC44IDQxLTM5IDg5LjEtMzkgMTQwLjRzMTQuMiA5OS40IDM5IDE0MC40YzYuOSAxMS4zIDIxLjYgMTUgMzMgOC4xczE1LTIxLjYgOC4xLTMzQzc1LjcgMjQxLjkgNjQgMjAyLjMgNjQgMTYwUzc1LjcgNzguMSA5Ni4xIDQ0LjRjNi45LTExLjMgMy4yLTI2LjEtOC4xLTMzem00MDAuMSAwYy0xMS4zIDYuOS0xNSAyMS42LTguMSAzMyAyMC40IDMzLjcgMzIuMSA3My4zIDMyLjEgMTE1LjZzLTExLjcgODEuOS0zMi4xIDExNS42Yy02LjkgMTEuMy0zLjIgMjYuMSA4LjEgMzNzMjYuMSAzLjIgMzMtOC4xYzI0LjgtNDEgMzktODkuMSAzOS0xNDAuNFM1NDUuOCA2MC42IDUyMSAxOS42Yy02LjktMTEuMy0yMS42LTE1LTMzLTguMXpNMzIwIDIxNS40YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjQgMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDI1NiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI2NC42ek0xODAuMiA5MWM3LjItMTEuMiAzLjktMjYtNy4yLTMzLjJzLTI2LTMuOS0zMy4yIDcuMmMtMTcuNiAyNy40LTI3LjggNjAtMjcuOCA5NXMxMC4yIDY3LjYgMjcuOCA5NWM3LjIgMTEuMiAyMiAxNC40IDMzLjIgNy4yczE0LjQtMjIgNy4yLTMzLjJjLTEyLjgtMTkuOS0yMC4yLTQzLjYtMjAuMi02OXM3LjQtNDkuMSAyMC4yLTY5ek00MzYuMiA2NWMtNy4yLTExLjItMjItMTQuNC0zMy4yLTcuMnMtMTQuNCAyMi03LjIgMzMuMmMxMi44IDE5LjkgMjAuMiA0My42IDIwLjIgNjlzLTcuNCA0OS4xLTIwLjIgNjljLTcuMiAxMS4yLTMuOSAyNiA3LjIgMzMuMnMyNiAzLjkgMzMuMi03LjJjMTcuNi0yNy40IDI3LjgtNjAgMjcuOC05NXMtMTAuMi02Ny42LTI3LjgtOTV6Il19LFladD1ZN2UsSzdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pbmltaXplIixpY29uOls1MTIsNTEyLFsiY29tcHJlc3MtYXJyb3dzLWFsdCJdLCJmNzhjIiwiTTQ1NiAyMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJTMzIyLjEgMzIuMiAzMjkgMzlsNDAgNDAgNzMuNC03My40QzQ0NiAyIDQ1MC45IDAgNDU2IDBzMTAgMiAxMy43IDUuN2wzNi43IDM2LjdDNTEwIDQ2IDUxMiA1MC45IDUxMiA1NnMtMiAxMC01LjcgMTMuN0w0MzMgMTQzIDQ3MyAxODNjNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlM0NjUuNyAyMjQgNDU2IDIyNHptMCA2NGM5LjcgMCAxOC41IDUuOCAyMi4yIDE0LjhzMS43IDE5LjMtNS4yIDI2LjJsLTQwIDQwIDczLjQgNzMuNGMzLjYgMy42IDUuNyA4LjUgNS43IDEzLjdzLTIgMTAtNS43IDEzLjdsLTM2LjcgMzYuN0M0NjYgNTEwIDQ2MS4xIDUxMiA0NTYgNTEycy0xMC0yLTEzLjctNS43TDM2OSA0MzMgMzI5IDQ3M2MtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggNDY1LjcgMjg4IDQ1NmwwLTE0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNDQgMHptLTI1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTQwLTQwLTczLjQgNzMuNEM2NiA1MTAgNjEuMSA1MTIgNTYgNTEycy0xMC0yLTEzLjctNS43TDUuNyA0NjkuN0MyIDQ2NiAwIDQ2MS4xIDAgNDU2czItMTAgNS43LTEzLjdMNzkgMzY5IDM5IDMyOWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM0Ni4zIDI4OCA1NiAyODhsMTQ0IDB6TTU2IDIyNGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44UzMyLjIgMTg5LjkgMzkgMTgzTDc5IDE0MyA1LjcgNjkuN0MyIDY2IDAgNjEuMSAwIDU2UzIgNDYgNS43IDQyLjNMNDIuMyA1LjdDNDYgMiA1MC45IDAgNTYgMFM2NiAyIDY5LjcgNS43TDE0MyA3OSAxODMgMzljNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgNDYuMyAyMjQgNTZsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRMNTYgMjI0eiJdfSxLWnQ9SzdlLFpadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNGIzIiwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODAgNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTc2LTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzMzZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTUzIDE2N2w3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LFhadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtbWVkaWNhbCIsaWNvbjpbNjQwLDUxMixbXSwiZjgxMiIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4OCAxNjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LFFadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmVhZC1zbGljZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlYyIsIk02NCA0MzJsMC0xNzZjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjE2LjUgNTEyLTIxNi41IDUxMiAwIDAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTc2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yODggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LEpadD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbG9iZSIsaWNvbjpbNTEyLDUxMixbMTI3NzYwXSwiZjBhYyIsIk0zNTEuOSAyODBsLTE5MC45IDBjMi45IDY0LjUgMTcuMiAxMjMuOSAzNy41IDE2Ny40IDExLjQgMjQuNSAyMy43IDQxLjggMzUuMSA1Mi40IDExLjIgMTAuNSAxOC45IDEyLjIgMjIuOSAxMi4yczExLjctMS43IDIyLjktMTIuMmMxMS40LTEwLjYgMjMuNy0yOCAzNS4xLTUyLjQgMjAuMy00My41IDM0LjYtMTAyLjkgMzcuNS0xNjcuNHpNMTYwLjkgMjMybDE5MC45IDBDMzQ5IDE2Ny41IDMzNC43IDEwOC4xIDMxNC40IDY0LjYgMzAzIDQwLjIgMjkwLjcgMjIuOCAyNzkuMyAxMi4yIDI2OC4xIDEuNyAyNjAuNCAwIDI1Ni40IDBzLTExLjcgMS43LTIyLjkgMTIuMmMtMTEuNCAxMC42LTIzLjcgMjgtMzUuMSA1Mi40LTIwLjMgNDMuNS0zNC42IDEwMi45LTM3LjUgMTY3LjR6bS00OCAwQzExNi40IDE0Ni40IDEzOC41IDY2LjkgMTcwLjggMTQuNyA3OC43IDQ3LjMgMTAuOSAxMzEuMiAxLjUgMjMybDExMS40IDB6TTEuNSAyODBjOS40IDEwMC44IDc3LjIgMTg0LjcgMTY5LjMgMjE3LjMtMzIuMy01Mi4yLTU0LjQtMTMxLjctNTcuOS0yMTcuM0wxLjUgMjgwem0zOTguNCAwYy0zLjUgODUuNi0yNS42IDE2NS4xLTU3LjkgMjE3LjMgOTIuMS0zMi43IDE1OS45LTExNi41IDE2OS4zLTIxNy4zbC0xMTEuNCAwem0xMTEuNC00OEM1MDEuOSAxMzEuMiA0MzQuMSA0Ny4zIDM0MiAxNC43IDM3NC4zIDY2LjkgMzk2LjQgMTQ2LjQgMzk5LjkgMjMybDExMS40IDB6Il19LGVYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItbWludXMiLGljb246WzUxMiw1MTIsW10sImY2NWQiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTg0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LHRYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLWZhY2UiLGljb246WzY0MCw1MTIsW10sImUxZDciLCJNMzIwIDY0Yy0yNy4yIDAtNTMuOCA4LTc2LjQgMjMuMWwtMzcuMSAyNC44Yy0xNS44IDEwLjUtMzQuMyAxNi4xLTUzLjMgMTYuMUw2NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNzguN2MwIDYyLjYgNDUuMiAxMTYgMTA3IDEyNi4zbDk3LjkgMTYuM2MzMyAyMiA3Mi42IDM0LjcgMTE1LjEgMzQuN3M4Mi4yLTEyLjggMTE1LjEtMzQuN0w1MzMgMzk2LjljNjEuNy0xMC4zIDEwNy02My43IDEwNy0xMjYuM2wwLTc4LjdjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTg5LjIgMGMtMTkgMC0zNy41LTUuNi01My4zLTE2LjFMMzk2LjQgODcuMUMzNzMuOCA3MiAzNDcuMiA2NCAzMjAgNjR6TTEzNS45IDMzNi45bC0xOC40LTMuMUM4Ni42IDMyOC43IDY0IDMwMiA2NCAyNzAuN2wwLTc4LjcgNDggMCAwIDQ4YzAgMzUgOC42IDY3LjkgMjMuOSA5Ni45em0zODYuNi0zLjFsLTE4LjQgMy4xQzUxOS40IDMwNy45IDUyOCAyNzUgNTI4IDI0MGwwLTQ4IDQ4IDAgMCA3OC43YzAgMzEuMy0yMi42IDU4LTUzLjUgNjMuMXpNMTkyIDIzMmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjA4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em01NiA1NmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGFYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib25nIixpY29uOls1MTIsNTEyLFtdLCJmNTVjIiwiTTQ0OC41IDM4NGMwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjMtNy45IDExLjEtMjEuMiAxNi43LTM0LjggMTYuN2wtMjQzLjMgMGMtMTMuNyAwLTI2LjktNS42LTM0LjgtMTYuNy0yMi40LTMxLjQtMzUuNS02OS44LTM1LjUtMTExLjMgMC03MS4xIDM4LjYtMTMzLjEgOTYtMTY2LjNsMC0xNTMuN2MtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1My43YzE0LjIgOC4yIDI3LjIgMTguMiAzOC44IDI5LjZsMzkuMy0zOS4zLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2IDE2IDMyIDMyIDQ4IDQ4IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTctNy00My4zIDQzLjNjMTcuMyAyOC45IDI3LjMgNjIuNiAyNy4zIDk4Ljh6TTI4OC41IDY0bC02NCAwIDAgMTkwLjYtMzIgMTguNWMtMTkuNSAxMS4zLTM1LjcgMjcuNS00Ni45IDQ2LjlsMjIxLjggMGMtMTEuMi0xOS40LTI3LjQtMzUuNi00Ni45LTQ2LjlsLTMyLTE4LjUgMC0xOTAuNnoiXX0sclh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYnJpZGdlIixpY29uOls1NzYsNTEyLFtdLCJlNTYzIiwiTTMyIDMybDIwOCAwIDAgNjQtMjQgMCAwIDY0IDI0IDAgMCAxMjkuM2MtNDUuNCA3LjYtODAgNDcuMS04MCA5NC43bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMnpNODggOTZsMCA2NCA4MCAwIDAtNjQtODAgMHpNMzM2IDMybDcyIDAgMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzIgNzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNzIgMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTk2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFo3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC05LTEiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtdXAtYWx0Il0sImY4ODciLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek0zNjUuMSAyMDYuNmMtOS42IDE0LjgtNS40IDM0LjYgOS40IDQ0LjNzMzQuNiA1LjQgNDQuMy05LjRsNDIuMS02NC45YzEyLjQtMTkuMiAxOS4xLTQxLjYgMTkuMS02NC41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMzYuMSAyMy45IDY2LjcgNTYuOCA3Ni42bC0xMS43IDE4ek0zNzYgMTEyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQyLjcgMTgyYy04LjMtNi0xOS4xLTcuNy0yOC44LTQuNGwtNDggMTZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmw1LjktMiAwIDUxLjYtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6Il19LHNYdD1aN2UsaVh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluLWNpdHkiLGljb246WzY0MCw1MTIsW10sImU1MmUiLCJNMjU2LjMgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyMGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNzcuOCAwYzQtMTUuNCAyLjQtMzIuNi02LjctNDguMkwzNTQuNiAyNTYgMzY4LjMgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtNi4xIDAtMTEuNCAzLjQtMTQuMSA4LjVsLTQyLjYtNzNjLTYtMTAuMi0xNC4xLTE4LTIzLjMtMjMuM2wwLTU2LjJ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2MCA5NmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0tMjcyLTY0LjdsLTY1LjEgMTExLjYgMzMuMSAzMy4xIDQ4LTQ4IDQwLjQgMC01Ni40LTk2Ljd6bS0yNy42LTQ3LjljMTIuMy0yMS4yIDQyLjktMjEuMiA1NS4zIDBMNDIwLjMgNDYzLjljMTIuNCAyMS4zLTIuOSA0OC4xLTI3LjYgNDguMUw1NiA1MTJjLTI0LjcgMC00MC4xLTI2LjgtMjcuNi00OC4xTDE5Ni43IDE3NS40eiJdfSxkdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi05LTEiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtZGVzYyIsInNvcnQtbnVtZXJpYy1kb3duLWFsdCJdLCJmODg2IiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTM0LjUtMTg0bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMTEyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS01LjMgMTgyYzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40eiJdfSxvWHQ9ZHRlLG5YdD1kdGUsWDdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aWRlIixpY29uOls1MTIsNTEyLFsxMjg1MTUsImdyaW4tYWx0Il0sImY1ODEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0yMDggMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0IDE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NHptMTI4IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sbFh0PVg3ZSxjWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vcCIsaWNvbjpbNTEyLDUxMixbXSwiZjYxOSIsIk0yNTQuNCA2LjZjMy41LTQuMyA5LTYuNSAxNC41LTUuNyA0Ni45IDYuMyA4My4xIDQ2LjUgODMuMSA5NS4xIDAgMTEuMi0xLjkgMjItNS41IDMybDUuNSAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTkuMS04LjQgMzYuMy0yMS43IDQ4bDEzLjcgMGMzOS44IDAgNzIgMzIuMiA3MiA3MiAwIDIzLjItMTEgNDMuOC0yOCA1NyAzNC4xIDUuNyA2MCAzNS4zIDYwIDcxIDAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDUxMmMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zNS43IDI1LjktNjUuMyA2MC03MS0xNy0xMy4yLTI4LTMzLjgtMjgtNTcgMC0zOS44IDMyLjItNzIgNzItNzJsMTMuNyAwYy0xMy4zLTExLjctMjEuNy0yOC45LTIxLjctNDggMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYuMiAwYzQ0LjEtLjEgNzkuOC0zNS45IDc5LjgtODAgMC05LjItMS41LTE3LjktNC4zLTI2LjEtMS44LTUuMi0uOC0xMS4xIDIuOC0xNS40eiJdfSxkWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGhhcm1hY2hha3JhIixpY29uOls1MTIsNTEyLFs5Nzg0XSwiZjY1NSIsIk0zMzcuOCAyMDUuN2w0OC42LTQyLjVjMTMuOCAxOS4zIDIzLjQgNDEuOSAyNy40IDY2LjJsLTY0LjQgNC4zYy0yLjQtMTAuMS02LjQtMTkuNS0xMS42LTI4em0xNDAuMSAxOS41Yy01LjMtMzguOC0yMC42LTc0LjUtNDMuMi0xMDQuM2wuOC0uN0M0NDkgMTA4LjQgNDQ5LjcgODcuNiA0MzcgNzVzLTMzLjQtMTItNDUuMiAxLjVsLS43IC44Yy0yOS44LTIyLjYtNjUuNS0zNy45LTEwNC4zLTQzLjJsLjEtMS4xYzEuMi0xNy45LTEzLTMzLTMwLjktMzNzLTMyLjEgMTUuMi0zMC45IDMzbC4xIDEuMWMtMzguOCA1LjMtNzQuNSAyMC42LTEwNC4zIDQzLjJsLS43LS44QzEwOC40IDYzIDg3LjYgNjIuMyA3NSA3NXMtMTIgMzMuNCAxLjUgNDUuMmwuOCAuN2MtMjIuNiAyOS44LTM3LjkgNjUuNS00My4yIDEwNC4zbC0xLjEtLjFjLTE3LjktMS4yLTMzIDEzLTMzIDMwLjlzMTUuMiAzMi4xIDMzIDMwLjlsMS4xLS4xYzUuMyAzOC44IDIwLjYgNzQuNSA0My4yIDEwNC4zbC0uOCAuN0M2MyA0MDMuNiA2Mi4zIDQyNC40IDc1IDQzN3MzMy40IDEyIDQ1LjItMS41bC43LS44YzI5LjggMjIuNiA2NS41IDM3LjkgMTA0LjMgNDMuMmwtLjEgMS4xYy0xLjIgMTcuOSAxMyAzMyAzMC45IDMzczMyLjEtMTUuMiAzMC45LTMzbC0uMS0xLjFjMzguOC01LjMgNzQuNS0yMC42IDEwNC4zLTQzLjJsLjcgLjhjMTEuOCAxMy41IDMyLjUgMTQuMiA0NS4yIDEuNXMxMi0zMy40LTEuNS00NS4ybC0uOC0uN2MyMi42LTI5LjggMzcuOS02NS41IDQzLjItMTA0LjNsMS4xIC4xYzE3LjkgMS4yIDMzLTEzIDMzLTMwLjlzLTE1LjItMzIuMS0zMy0zMC45bC0xLjEgLjF6TTE2My4yIDEyNS42YzE5LjMtMTMuOCA0MS45LTIzLjQgNjYuMi0yNy41bDQuMyA2NC40Yy0xMCAyLjQtMTkuNSA2LjQtMjggMTEuNmwtNDIuNS00OC42em0tNjUgMTAzLjhjNC4xLTI0LjQgMTMuNy00Ni45IDI3LjUtNjYuMmw0OC42IDQyLjVjLTUuMyA4LjUtOS4yIDE4LTExLjYgMjhsLTY0LjQtNC4zem0yNy41IDExOS40Yy0xMy44LTE5LjMtMjMuNC00MS45LTI3LjUtNjYuMmw2NC40LTQuM2MyLjQgMTAuMSA2LjQgMTkuNSAxMS42IDI4bC00OC42IDQyLjV6bTEwMy44IDY1Yy0yNC40LTQuMS00Ni45LTEzLjctNjYuMi0yNy40bDQyLjUtNDguNmM4LjUgNS4zIDE4IDkuMiAyOCAxMS42bC00LjMgNjQuNHptMTE5LjQtMjcuNGMtMTkuMyAxMy44LTQxLjkgMjMuNC02Ni4yIDI3LjRsLTQuMy02NC40YzEwLTIuNCAxOS41LTYuNCAyOC0xMS42bDQyLjUgNDguNnptNjUtMTAzLjhjLTQuMSAyNC40LTEzLjcgNDYuOS0yNy40IDY2LjJsLTQ4LjYtNDIuNWM1LjMtOC42IDkuMi0xOCAxMS42LTI4bDY0LjQgNC4zem0tNjUtMTU2LjlsLTQyLjUgNDguNmMtOC42LTUuMy0xOC05LjItMjgtMTEuNmw0LjMtNjQuNGMyNC40IDQuMSA0Ni45IDEzLjcgNjYuMiAyNy41ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUTdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktcXVhcnRlciIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktMiJdLCJmMjQzIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTY0IDB6Il19LHVYdD1RN2UscFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFua2giLGljb246WzMyMCw1MTIsWzk3NjVdLCJmNjQ0IiwiTTk2IDEyOGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0YzAgNDEuNi0yMC43IDc2LjYtNDYuNiAxMDQuMS01LjkgNi4yLTExLjggMTEuOC0xNy40IDE2LjctNS42LTQuOS0xMS41LTEwLjUtMTcuNC0xNi43LTI1LjktMjcuNS00Ni42LTYyLjYtNDYuNi0xMDQuMXpNMTYwIDBDODkuMyAwIDMyIDU3LjMgMzIgMTI4IDMyIDE4MC40IDUzLjUgMjIzLjUgNzguOCAyNTZMMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Ni44IDBDMjY2LjUgMjIzLjUgMjg4IDE4MC40IDI4OCAxMjggMjg4IDU3LjMgMjMwLjcgMCAxNjAgMHoiXX0sZlh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQiLGljb246WzUxMiw1MTIsWzk4MzBdLCJmMjE5IiwiTTE3IDIxNUwyMTUgMTdDMjI1LjkgNi4xIDI0MC42IDAgMjU2IDBzMzAuMSA2LjEgNDEgMTdMNDk1IDIxNWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFMMjk3IDQ5NWMtMTAuOSAxMC45LTI1LjYgMTctNDEgMTdzLTMwLjEtNi4xLTQxLTE3TDE3IDI5N0M2LjEgMjg2LjEgMCAyNzEuNCAwIDI1NnM2LjEtMzAuMSAxNy00MXoiXX0saFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1YnNjcmlwdCIsaWNvbjpbNTc2LDUxMixbXSwiZjEyYyIsIk05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0ek01NDQgMzIwYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNmMtMTUuOCA3LjktMjIuMiAyNy4xLTE0LjMgNDIuOSA1LjYgMTEuMiAxNi45IDE3LjcgMjguNiAxNy43bDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTEyOHoiXX0sSjdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1cGVlLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjAsInJ1cGVlIl0sImYxNTYiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYwem0yODUuMS0zMmwzNC45IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM0LjkgMGMtNy4yIDAtMTMuMSA1LjktMTMuMSAxMy4xIDAgNS43IDMuNyAxMC43IDkuMSAxMi41bDQ5LjQgMTUuOWMzMS45IDEwLjMgNTMuNSAzOS45IDUzLjUgNzMuNCAwIDQyLjYtMzQuNSA3Ny4xLTc3LjEgNzcuMUwzMjAgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDUwLjkgMGM3LjIgMCAxMy4xLTUuOSAxMy4xLTEzLjEgMC01LjctMy43LTEwLjctOS4xLTEyLjVsLTQ5LjQtMTUuOWMtMzEuOS0xMC4zLTUzLjUtMzkuOS01My41LTczLjQgMC00Mi42IDM0LjUtNzcuMSA3Ny4xLTc3LjF6Il19LG1YdD1KN2UsZ1h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1yaWZsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTU0ZSIsIk00MTYgMEwzODQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwwIDEwMC4zYy05LjYgNS41LTE2IDE1LjktMTYgMjcuN2wwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwIDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDU5LjUgMGMxMC40IDAgMTgtOS44IDE1LjUtMTkuOWwtMjMtOTIuMSA0NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTI2LjcgNTMuMS0xNy43YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ybDAtODQuNWMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDU2LTE2IDUuMyAwLTEwOS4zYzAtMTEuOC02LjQtMjIuMi0xNi0yNy43TDQzMiAxNmMwLTguOC03LjItMTYtMTYtMTZ6TTIyNCAyMDhDMTE4IDIwOCAzMiAyOTQgMzIgNDAwbDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ4YzAtMzIuNSAxMi4xLTYyLjEgMzItODQuN2wwIDE5Ni43IDE2MCAwIDAtMjkzLjFjLTIwLTcuMS00MS42LTEwLjktNjQtMTAuOXpNMjgwIDg4YTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHoiXX0sYlh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImQiLGljb246WzM4NCw1MTIsWzEwMF0sIjQ0IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMTI4IDBjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNFMyODMuNyA0ODAgMTYwIDQ4MEwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgNjR6TTY0IDk2bDAgMzIwIDk2IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBTMjQ4LjQgOTYgMTYwIDk2TDY0IDk2eiJdfSx2WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW5maSIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3NiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05MyAxNzIuM2wzNSA2MyAwLTUxLjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDEwLjktNy40IDIwLjUtMTggMjMuMnMtMjEuNy0yLTI3LTExLjZsLTM1LTYzIDAgNTEuNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTEwLjkgNy40LTIwLjUgMTgtMjMuMnMyMS43IDIgMjcgMTEuNnpNMjA4IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwIDAgMzIgNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0em0xOTIgMGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSx4WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVldGgiLGljb246WzUxMiw1MTIsW10sImY2MmUiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE0NCAyMDhsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6bTEyOCAwbDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek04MCAxNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0zMjAgMzJsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6TTQ4IDMzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNnptMTQ0IDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0xMTItMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyeiJdfSxlOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJzZWFyY2gtZG9sbGFyIl0sImY2ODgiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yMTIgOTZjLTExIDAtMjAgOS0yMCAyMGwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwxNjggMjU2Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIweiJdfSx5WHQ9ZTllLHdYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW1wc3Rlci1maXJlIixpY29uOls2NDAsNTEyLFtdLCJmNzk0IiwiTTE2NC4zIDY0TDEzOC43IDE5MiA1NiAxOTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC4xYzAtMi42IC40LTUuMSAxLjItNy42TDU4LjUgODAuNEM2MS44IDcwLjYgNzEgNjQgODEuMyA2NGw4MyAwem0yMy40IDEyOGwyNS42LTEyOCA4Mi43IDAgMCAxMjgtMTA4LjMgMHpNMzQ0IDY0bDgyLjcgMCAxNiA4MGMtMTQuNyAuMi0yOS4zIDUuNS00MC45IDE1LjktMTEuNSAxMC4zLTIyLjUgMjEtMzIuOCAzMi4xbC0yNC45IDAgMC0xMjh6TTk2IDI0MGwyMzMuMiAwYy02LjQgOC44LTEyLjMgMTcuNi0xNy43IDI2LjMtMjEuNCAzNC43LTM5LjUgNzYuMS0zOS41IDExNS44IDAgMTcuMSAyLjEgMzMuOCA2IDQ5LjlsLTEyMC40IDAgMS45IDEwLjNjMy4yIDE3LjQtOC40IDM0LTI1LjggMzcuMnMtMzQtOC40LTM3LjItMjUuOEM3MSAzMTMuMyA1OCAyNDIuMSA1Ny43IDI0MEw5NiAyNDB6bTUxMi03MmMwIDExLTcuNCAyMC4zLTE3LjUgMjMuMS0uOS0uOC0xLjctMS42LTIuNi0yLjQtMjEuOC0yMC01NC4zLTIxLjgtNzgtNS41LTQuMi00LjMtOC41LTguNS0xMi45LTEyLjZsLTIxLjMtMTA2LjYgODMgMGMxMC4zIDAgMTkuNSA2LjYgMjIuOCAxNi40bDI1LjMgNzUuOWMuOCAyLjQgMS4yIDUgMS4yIDcuNmwwIDQuMXpNNTA1LjcgMjQwLjNMNTE4IDIyNi41YzUuNC02LjEgMTMuMy04LjggMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjEgMjYuMiA4OC4xIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVzMTMuNCAzLjIgMTguOCA3LjVjMTQuNCAxMS40IDM4LjkgNDAuNyAzOC45IDQwLjd6TTU0NCA0MzIuMmMwLTM2LjUtMzctNzMtNTQuOC04OC40LTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC44IDUxLjktNTQuOCA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LE1YdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cGxvYWQiLGljb246WzQ0OCw1MTIsW10sImYwOTMiLCJNMjU2IDEwOS4zTDI1NiAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMTAuNy00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDI1NiAxMDkuM3pNMjI0IDQwMGM0NC4yIDAgODAtMzUuOCA4MC04MGw4MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDgwIDBjMCA0NC4yIDM1LjggODAgODAgODB6bTE0NCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHV0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNsYXNoIixpY29uOls1NzYsNTEyLFs2MjcxNCwidXNlci1hbHQtc2xhc2giLCJ1c2VyLWxhcmdlLXNsYXNoIl0sImY1MDYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMTEuNSAyNDUuN2M1NS0xMC45IDk2LjUtNTkuNSA5Ni41LTExNy43IDAtNjYuMy01My43LTEyMC0xMjAtMTIwLTU4LjIgMC0xMDYuOCA0MS41LTExNy43IDk2LjVMNDEtMjQuOXpNMjM1LjYgMzA1LjRDMTQ3LjkgMzE2LjYgODAgMzkxLjUgODAgNDgyLjMgODAgNDk4LjcgOTMuMyA1MTIgMTA5LjcgNTEybDMzMi41IDAtMjA2LjYtMjA2LjZ6Il19LGtYdD11dGUsU1h0PXV0ZSx6WHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctbGVmdCIsaWNvbjpbNTEyLDUxMixbODU5Ml0sImYwNjAiLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDQ4MCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3MC43IDAgMTA1LjQtMTA1LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6Il19LENYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsLXZpcnVzIixpY29uOls1NzYsNTEyLFtdLCJlNTk3IiwiTTY0IDMyQzY0IDE0LjMgNzguMyAwIDk2IDBMMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTEuN2MtMTguNSAwLTM3IDctNTEuMSAyMS4xLTIxLjYgMjEuNi0yNi42IDUzLjYtMTUgNzkuOS0yNi45IDEwLjQtNDUuOSAzNi42LTQ1LjkgNjcuMXMxOSA1Ni43IDQ1LjkgNjcuMWMtNy4zIDE2LjUtOCAzNS4yLTIuMyA1Mi4yLTEzLjQgNS43LTI4LjIgOC44LTQzLjYgOC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyTDk2IDY0Qzc4LjMgNjQgNjQgNDkuNyA2NCAzMnptOTYgMzJsMCAxMjggOTYgMCAwLTEyOC05NiAwek0yODAgNDA4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI4LjggMCA0My4yLTM0LjggMjIuOS01NS4yLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMyMC40IDIwLjQgNTUuMiA1LjkgNTUuMi0yMi45IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAyOC44IDM0LjggNDMuMiA1NS4yIDIyLjkgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0yMC40IDIwLjQtNS45IDU1LjIgMjIuOSA1NS4yIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yOC44IDAtNDMuMiAzNC44LTIyLjkgNTUuMiA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0yMC40LTIwLjQtNTUuMi01LjktNTUuMiAyMi45IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjguOC0zNC44LTQzLjItNTUuMi0yMi45LTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMjAuNC0yMC40IDUuOS01NS4yLTIyLjktNTUuMnptMTA0LTMyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sX1h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWNrLWRvdWJsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjU2MCIsIk0yNDkuOSA2Ni44YzEwLjQtMTQuMyA3LjItMzQuMy03LjEtNDQuN3MtMzQuMy03LjItNDQuNyA3LjFsLTEwNiAxNDUuNy0zNy41LTM3LjVjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzYuNiA2LjYgMTUuOCAxMCAyNS4xIDkuM3MxNy45LTUuNSAyMy40LTEzLjFsMTI4LTE3NnptMTI4IDEzNmMxMC40LTE0LjMgNy4yLTM0LjMtNy4xLTQ0LjdzLTM0LjMtNy4yLTQ0LjcgNy4xbC0xNzAgMjMzLjctNjkuNS02OS41Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmM2LjYgNi42IDE1LjggMTAgMjUuMSA5LjNzMTcuOS01LjUgMjMuNC0xMy4xbDE5Mi0yNjR6Il19LFRYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXciLGljb246WzUxMiw1MTIsW10sImYxYjAiLCJNMjM0LjUgOTIuOWMxNC4zIDQyLjktLjMgODYuMi0zMi42IDk2LjhzLTcwLjEtMTUuNi04NC40LTU4LjUgLjMtODYuMiAzMi42LTk2LjggNzAuMSAxNS42IDg0LjQgNTguNXpNMTAwLjQgMTk4LjZjMTguOSAzMi40IDE0LjMgNzAuMS0xMC4yIDg0LjFzLTU5LjctLjktNzguNS0zMy4zLTE0LjMtNzAuMSAxMC4yLTg0LjEgNTkuNyAuOSA3OC41IDMzLjN6TTY5LjIgNDAxLjJDMTIxLjYgMjU5LjkgMjE0LjcgMjI0IDI1NiAyMjRzMTM0LjQgMzUuOSAxODYuOCAxNzcuMmMzLjYgOS43IDUuMiAyMC4xIDUuMiAzMC41bDAgMS42YzAgMjUuOC0yMC45IDQ2LjctNDYuNyA0Ni43LTExLjUgMC0yMi45LTEuNC0zNC00LjJsLTg4LTIyYy0xNS4zLTMuOC0zMS4zLTMuOC00Ni42IDBsLTg4IDIyYy0xMS4xIDIuOC0yMi41IDQuMi0zNCA0LjItMjUuOCAwLTQ2LjctMjAuOS00Ni43LTQ2LjdsMC0xLjZjMC0xMC40IDEuNi0yMC44IDUuMi0zMC41ek00MjEuOCAyODIuN2MtMjQuNS0xNC0yOS4xLTUxLjctMTAuMi04NC4xczU0LTQ3LjMgNzguNS0zMy4zIDI5LjEgNTEuNyAxMC4yIDg0LjEtNTQgNDcuMy03OC41IDMzLjN6TTMxMC4xIDE4OS43Yy0zMi4zLTEwLjYtNDYuOS01My45LTMyLjYtOTYuOHM1Mi4xLTY5LjEgODQuNC01OC41IDQ2LjkgNTMuOSAzMi42IDk2LjgtNTIuMSA2OS4xLTg0LjQgNTguNXoiXX0scHRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC1zYWZldHkiLGljb246WzU3Niw1MTIsWyJoYXJkLWhhdCIsImhhdC1oYXJkIl0sImY4MDciLCJNMzUyIDI2NGwwLTIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xODUuOUM5MCAxMDkuOCAzMiAxOTEuOCAzMiAyODhsMCA2NCA1MTIgMCAwLTY0Yy0xLTk1LjItNTguNC0xNzcuNy0xNDQtMjA5LjhMNDAwIDI2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpNNDAgNDAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDQ5NiAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwTDQwIDQwMHoiXX0sTFh0PXB0ZSwkWHQ9cHRlLERYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlIixpY29uOlszMjAsNTEyLFsxMDFdLCI0NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTEyOCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xMjggMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LHQ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLXNxdWludCIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXNxdWludCJdLCJmNTliIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDcuNyAzMzIuMUMxMDIgMzE4IDExMy40IDMwNCAxMjguNiAzMDRsMjU0LjkgMGMxNS4yIDAgMjYuNiAxNCAyMC45IDI4LjEtMjMuOCA1OC42LTgxLjIgOTkuOS0xNDguMyA5OS45cy0xMjQuNi00MS4zLTE0OC4zLTk5Ljl6bTE1LTE4OC44YzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LEFYdD10OWUsYTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvd24tbGVmdC1hbmQtdXAtcmlnaHQtdG8tY2VudGVyIixpY29uOls1MTIsNTEyLFsiY29tcHJlc3MtYWx0Il0sImY0MjIiLCJNNDM5LjUgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlM0NTAuMiAyNDAgNDQwLjUgMjQwbC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yczE5LjMtMS43IDI2LjIgNS4ybDM5IDM5IDg3LTg3ek03Mi41IDI3MmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC0zOS0zOS04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTMyLTMyYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4Ny04Ny0zOS0zOWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM2Mi44IDI3MiA3Mi41IDI3MnoiXX0sUFh0PWE5ZSxFWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2lmdHMiLGljb246WzU3Niw1MTIsW10sImY3OWMiLCJNMjAyLTMwLjZjMTIuNSA0LjQgMTkgMTguMSAxNC42IDMwLjZsLTguMiAyMy4xIDI1LjQtMTguNWMxMC43LTcuOCAyNS43LTUuNCAzMy41IDUuM3M1LjQgMjUuNy01LjMgMzMuNUwyMzMuOCA2NCAyNzIgNjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyLjFjLTU0LjcgMTAuNC05NiA1OC40LTk2IDExNmwwIDEuOWMwIDguOSAxIDE3LjUgMi44IDI1LjktMTEuOSAxNy44LTE4LjggMzkuMS0xOC44IDYyLjFsMCAxMjhjMCAyMy44IDcuNCA0NS45IDIwLjEgNjRMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwzOC4yIDAtMjguMy0yMC42QzQ3LjIgMzUuNiA0NC44IDIwLjYgNTIuNiA5LjlTNzUuNC0zLjIgODYuMSA0LjZsMjcuNCAyMC04LjMtMjVDMTAxLTEzIDEwNy44LTI2LjYgMTIwLjQtMzAuOHMyNi4yIDIuNiAzMC40IDE1LjJsOS45IDI5LjggMTAuNy0zMC4yYzQuNC0xMi41IDE4LjEtMTkgMzAuNi0xNC42ek00ODkuOSAyMDhjLTcuNSAwLTE0LjUgMy44LTE4LjYgMTAuMUw0NDYuOSAyNTYgNDg4IDI1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEuOWMwLTEyLjItOS45LTIyLjEtMjIuMS0yMi4xek0zODUuMSAyNTZsLTI0LjQtMzcuOWMtNC4xLTYuMy0xMS4xLTEwLjEtMTguNi0xMC4xLTEyLjIgMC0yMi4xIDkuOS0yMi4xIDIyLjFsMCAxLjljMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDEuMSAwek0yODEuOSAyNjguNWMtNi4zLTEwLjctOS45LTIzLjItOS45LTM2LjVsMC0xLjljMC0zOC43IDMxLjQtNzAuMSA3MC4xLTcwLjEgMjMuOCAwIDQ2IDEyLjEgNTguOSAzMi4xbDE1IDIzLjIgMTUtMjMuMmMxMi45LTIwIDM1LjEtMzIuMSA1OC45LTMyLjEgMzguNyAwIDcwLjEgMzEuNCA3MC4xIDcwLjFsMCAxLjljMCAxMy4zLTMuNiAyNS44LTkuOSAzNi41IDE1LjcgMTEuNyAyNS45IDMwLjQgMjUuOSA1MS41bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC03MiAwIDAtMjA4LTQ4IDAgMCAyMDgtNzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xMjhjMC0yMS4xIDEwLjItMzkuOCAyNS45LTUxLjV6Il19LElYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWQiLGljb246WzU3Niw1MTIsWzEyODcxNl0sImYyMzYiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjQgMjI0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTQ0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem04MCAxNjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxOWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC10cmFuc2ZlciIsaWNvbjpbNjQwLDUxMixbXSwiZTUyOCIsIk0zMSAxMDVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDEwMy0xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzEgMzEgNjcuNyAwIDAgMCAzMzguMyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTc4LjItNS4xLTUuMWMtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwLTI3LjIgMjcuMi0yOC4xIDcwLjYtMi44IDk4LjlsNjcuNyAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTQwNi4xIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc4LjIgNS4xIDUuMWMyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDAgMjcuMi0yNy4yIDI4LjEtNzAuNiAyLjgtOTguOWwtNjcuNyAwIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMzEgMTA1ek00MTYgMjU2YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptODgtNjQuNWM0LjQgLjUgOC0zLjEgOC03LjVsMC00OGMwLTQuNC0zLjYtOC04LThsLTQ4IDBjLTQuNCAwLTguMSAzLjYtNy41IDggMy42IDI5IDI2LjYgNTEuOSA1NS41IDU1LjV6bS0zNjggMTI5Yy00LjQtLjUtOCAzLjEtOCA3LjVsMCA0OGMwIDQuNCAzLjYgOCA4IDhsNDggMGM0LjQgMCA4LjEtMy42IDcuNS04LTMuNi0yOS0yNi42LTUxLjktNTUuNS01NS41eiJdfSxyOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJ1bm5pbmciLGljb246WzQ0OCw1MTIsWzEyNzkzOSwicnVubmluZyJdLCJmNzBjIiwiTTI1Ni41LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjMuNiAxNzZjLTMuMyAwLTYuMiAyLTcuNCA1TDk0LjIgMjM1LjljLTYuNiAxNi40LTI1LjIgMjQuNC00MS42IDE3LjhzLTI0LjQtMjUuMi0xNy44LTQxLjZsMjEuOS01NC45QzY3LjcgMTI5LjkgOTQuMSAxMTIgMTIzLjYgMTEybDk3LjMgMGMyOC41IDAgNTQuOCAxNS4xIDY5LjEgMzkuN2wzMi44IDU2LjMgNjEuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02MS42IDBjLTIyLjggMC00My44LTEyLjEtNTUuMy0zMS44bC0xMC0xNy4xLTIwLjcgNzAuNCA3NS40IDIyLjZjMjcuNyA4LjMgNDEuOCAzOSAzMC4xIDY1LjVMMjg1LjcgNTA5Yy03LjIgMTYuMi0yNi4xIDIzLjQtNDIuMiAxNi4ycy0yMy40LTI2LjEtMTYuMi00Mi4ybDQ5LjItMTEwLjgtOTUuOS0yOC44Yy0zMi43LTkuOC01Mi00My43LTQzLjctNzYuOGwyMi43LTkwLjYtMzUuOSAwem0tOCAxODFjMTMuMyAxNC45IDMwLjcgMjYuMyA1MS4yIDMyLjRsNC43IDEuNC02LjkgMTkuM2MtNS44IDE2LjMtMTYgMzAuOC0yOS4zIDQxLjhMNTIuOSA1MTkuOGMtMTMuNiAxMS4yLTMzLjggOS4zLTQ1LTQuM3MtOS4zLTMzLjggNC4zLTQ1bDgyLjQtNjcuOWM0LjUtMy43IDcuOC04LjUgOS44LTEzLjlMMTE1LjYgMzU3eiJdfSxSWHQ9cjllLHM5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1kb3duIixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtZG93biJdLCJmMTNhIiwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMTM1IDI0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDg3IDg3IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMzUgMjQxeiJdfSxPWHQ9czllLEZYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW51cnNlIixpY29uOls0NDgsNTEyLFtdLCJmODJmIiwiTTk2IDQ0LjljMC0xMi43IDcuNS0yNC4yIDE5LjItMjkuM2w5Ni00MmM4LjItMy42IDE3LjUtMy42IDI1LjcgMGw5NiA0MkMzNDQuNSAyMC43IDM1MiAzMi4yIDM1MiA0NC45bDAgOTkuMWMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOFM5NiAyMTQuNyA5NiAxNDRsMC05OS4xek0zMDQgMTI4bC0xMTEuNiAwLS40IDAtNDggMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBsMC0xNnpNMjA4IDE2bDAgMTYtMTYgMGMtNC40IDAtOCAzLjYtOCA4bDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDAgMCAxNmMwIDQuNCAzLjYgOCA4IDhsMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNiAxNiAwYzQuNCAwIDgtMy42IDgtOGwwLTE2YzAtNC40LTMuNi04LTgtOGwtMTYgMCAwLTE2YzAtNC40LTMuNi04LTgtOEwyMTYgOGMtNC40IDAtOCAzLjYtOCA4ek0xNDIuNiAzMjNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjgtNjEuNCAyOC4yLTEwNC4xIDkwLjItMTA0LjEgMTYyLjEgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTY3IDUwLjJjLTguNSA2LjQtMjAuMyA2LjQtMjguOCAwbC02Ny01MC4yeiJdfSxpOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzLXdpbmstaGVhcnQiLGljb246WzY0MCw1MTIsWzEyODUzNiwia2lzcy13aW5rLWhlYXJ0Il0sImY1OTgiLCJNNTQzLjcgMjY4LjNjLjItNC4xIC4zLTguMiAuMy0xMi4zIDAtMTQxLjQtMTE0LjYtMjU2LTI1Ni0yNTZTMzIgMTE0LjYgMzIgMjU2IDE0Ni42IDUxMiAyODggNTEyYzQxLjQgMCA4MC41LTkuOCAxMTUuMS0yNy4zLTcuNi0xNy4xLTE2LjEtMzguOC0yMS44LTYxLjctNy43LTMwLjUtMTQuMS03Ni4yIDguMi0xMTQuN2wyLjctNC42YzI5LjUtNTEgOTQuNy02OC41IDE0NS43LTM5IDIgMS4yIDQgMi40IDUuOSAzLjd6TTI0MCAzMDRjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNMjA4IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTE1MiAyMGMtMTEgMC0yMCA5LTIwIDIwcy05IDIwLTIwIDIwLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMHpNNTQyLjggMzUwYy0yLjItMTguMy0xMi45LTM0LjYtMjguOS00My44LTI4LjEtMTYuMi02My45LTYuNi04MC4xIDIxLjVsLTIuNyA0LjZjLTI0LjUgNDIuNSA3LjkgMTE3LjkgMjQuNCAxNTAuOCA1LjEgMTAuMSAxNS41IDE2LjEgMjYuOCAxNS41IDM2LjctMi4yIDExOC4yLTExLjcgMTQyLjgtNTQuMmwyLjctNC42YzE2LjItMjguMSA2LjYtNjMuOS0yMS41LTgwLjEtMTYtOS4yLTM1LjQtMTAuNC01Mi40LTMuMWwtOS44IDQuMi0xLjMtMTAuNnoiXX0sQlh0PWk5ZSxIWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjU3NSIsIk0yOTYgNjRjNi45IDAgMTMuNSAyLjcgMTguMyA3LjZMNDQwLjQgMTk3LjdjNC45IDQuOSA3LjYgMTEuNSA3LjYgMTguM3MtMi43IDEzLjUtNy42IDE4LjNMMzg2LjcgMjg4IDY1LjMgMjg4YzEuMy0zLjkgMy40LTcuNCA2LjMtMTAuM2w5Ni40LTk2LjQgMzMuNCAzMy40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjEzLjMgMTM2IDI3Ny43IDcxLjZjNC45LTQuOSAxMS41LTcuNiAxOC4zLTcuNnpNMTIyLjcgMTM2TDI2LjMgMjMyLjRDOS41IDI0OS4zIDAgMjcyLjEgMCAyOTZzOS41IDQ2LjcgMjYuMyA2My42TDE1Mi40IDQ4NS43QzE2OS4zIDUwMi41IDE5Mi4xIDUxMiAyMTYgNTEyczQ2LjctOS41IDYzLjYtMjYuM0w0ODUuNyAyNzkuNkM1MDIuNSAyNjIuNyA1MTIgMjM5LjkgNTEyIDIxNnMtOS41LTQ2LjctMjYuMy02My42TDM1OS42IDI2LjNDMzQyLjcgOS41IDMxOS45IDAgMjk2IDBzLTQ2LjcgOS41LTYzLjYgMjYuM0wxNjggOTAuNyAxMTguNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxMjIuNyAxMzZ6Il19LG85ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLTEtd2F2ZSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtd2F2ZS1hbHQiXSwiZjUzYiIsIk0wIDEwOS41TDAgNDE5LjZjMCAxOS40IDExLjggMzcuMyAzMC4zIDQzLjMgOTQgMzAgMTU4LjggOC40IDIyMy4zLTEzLjEgNjIuNC0yMC44IDEyNC40LTQxLjUgMjEyLjEtMTUuMyAyMi4yIDYuNiA0Ni4yLTguOCA0Ni4yLTMybDAtMzEwLjFjMC0xOS40LTExLjgtMzcuMy0zMC4zLTQzLjMtOTQtMzAtMTU4LjgtOC40LTIyMy4zIDEzLjEtNjIuNCAyMC44LTEyNC40IDQxLjUtMjEyLjEgMTUuMy0yMi4yLTYuNi00Ni4zIDguOC00Ni4zIDMyek0yNTYgMzY4Yy01MyAwLTk2LTUwLjEtOTYtMTEyczQzLTExMiA5Ni0xMTIgOTYgNTAuMSA5NiAxMTItNDMgMTEyLTk2IDExMnpNMTI3LjEgNDA1LjVjLjcgNC40LTIuOCA4LjEtNy4yIDguMS0xNS43IDAtMzIuMS0xLjgtNTAtNi4xLTMuNS0uOC02LTQtNi03LjdMNjQgMzYwYzAtNC40IDMuNi04LjEgOC03LjUgMjguMSAzLjUgNTAuNiAyNS4yIDU1LjIgNTN6TTQ0OCAzNTQuNmMwIDUtNC42IDguOC05LjUgOC0xNS40LTIuNS0zMC4yLTMuOS00NC40LTQuMy00LjktLjEtOC43LTQuNS03LjItOS4yIDcuMy0yMy43IDI4LTQxLjQgNTMuMi00NC42IDQuNC0uNSA4IDMuMSA4IDcuNWwwIDQyLjZ6bS04LTE5NS4xYy0yOC4xLTMuNS01MC42LTI1LjItNTUuMi01My0uNy00LjQgMi44LTguMSA3LjItOC4xIDE1LjcgMCAzMi4xIDEuOCA1MCA2LjEgMy41IC44IDYgNCA2IDcuN2wwIDM5LjljMCA0LjQtMy42IDguMS04IDcuNXptLTMyMi4xLTUuOGM0LjkgLjEgOC43IDQuNSA3LjIgOS4yLTcuMyAyMy43LTI4IDQxLjQtNTMuMiA0NC42LTQuNCAuNS04LTMuMS04LTcuNWwwLTQyLjZjMC01IDQuNi04LjggOS41LTggMTUuNCAyLjUgMzAuMiAzLjkgNDQuNCA0LjN6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LHFYdD1vOWUsVlh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmRtYXJrIixpY29uOls1MTIsNTEyLFsxMjc5NjNdLCJmNjZmIiwiTTIzOC43IDUuMWMxMC41LTYuOCAyNC4xLTYuOCAzNC42IDBsMjI0IDE0NGMxMS45IDcuNyAxNy40IDIyLjMgMTMuNCAzNS45cy0xNi41IDIzLTMwLjcgMjNsLTMyIDAgMCAyMDggNTEuMiAzOC40YzguMSA2IDEyLjggMTUuNSAxMi44IDI1LjYgMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMiAwLTEwLjEgNC43LTE5LjYgMTIuOC0yNS42bDUxLjItMzguNCAwIDAgMC0yMDgtMzIgMGMtMTQuMiAwLTI2LjctOS40LTMwLjctMjNzMS41LTI4LjMgMTMuNC0zNS45bDIyNC0xNDR6TTMzNiAyMDhsMCAyMDggNjQgMCAwLTIwOC02NCAwek0yMjQgNDE2bDY0IDAgMC0yMDgtNjQgMCAwIDIwOHpNMTEyIDIwOGwwIDIwOCA2NCAwIDAtMjA4LTY0IDB6Il19LGpYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtdXNpYyIsaWNvbjpbNTEyLDUxMixbMTI3OTI1XSwiZjAwMSIsIk00NjggN2M3LjYgNi4xIDEyIDE1LjMgMTIgMjVsMCAzMDRjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwIDQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42bDAtMTE2LjctMjI0IDQ5LjggMCAyMDYuM2MwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODAgNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZMMTI4IDk2YzAtMTUgMTAuNC0yOCAyNS4xLTMxLjJsMjg4LTY0YzkuNS0yLjEgMTkuNCAuMiAyNyA2LjN6Il19LFVYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW1lZGljYWwiLGljb246WzQ0OCw1MTIsW10sImY3ZTYiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE5MiAxMjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LG45ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHVmZmxlIixpY29uOls1MTIsNTEyLFsxMjgyNTYsInJhbmRvbSJdLCJmMDc0IiwiTTQwMy44IDM0LjRjMTItNSAyNS43LTIuMiAzNC45IDYuOWw2NCA2NGM2IDYgOS40IDE0LjEgOS40IDIyLjZzLTMuNCAxNi42LTkuNCAyMi42bC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDIwNC45IDM4NCAxOTJsMC0zMi0zMiAwYy0xMC4xIDAtMTkuNiA0LjctMjUuNiAxMi44bC0zMi40IDQzLjItNDAtNTMuMyAyMS4yLTI4LjNDMjkzLjMgMTEwLjIgMzIxLjggOTYgMzUyIDk2bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42ek0xNTQgMjk2bDQwIDUzLjMtMjEuMiAyOC4zQzE1NC43IDQwMS44IDEyNi4yIDQxNiA5NiA0MTZsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMGMxMC4xIDAgMTkuNi00LjcgMjUuNi0xMi44TDE1NCAyOTZ6TTQzOC42IDQ3MC42Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzODQgNDYwLjkgMzg0IDQ0OGwwLTMyLTMyIDBjLTMwLjIgMC01OC43LTE0LjItNzYuOC0zOC40TDEyMS42IDE3Mi44Yy02LTguMS0xNS41LTEyLjgtMjUuNi0xMi44bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRMMzI2LjQgMzM5LjJjNiA4LjEgMTUuNSAxMi44IDI1LjYgMTIuOGwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw2NCA2NGM2IDYgOS40IDE0LjEgOS40IDIyLjZzLTMuNCAxNi42LTkuNCAyMi42bC02NCA2NHoiXX0sV1h0PW45ZSxHWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5kZXJsaW5lIixpY29uOlszODQsNTEyLFtdLCJmMGNkIiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJTMTEzLjcgNjQgOTYgNjRsMCAxNjBjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjcwLjMgMCAyODggMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYwYzAgODguNC03MS42IDE2MC0xNjAgMTYwUzMyIDMxMi40IDMyIDIyNEwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek0wIDQ4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxZWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctdXNlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYSIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43IDAgMjcuNyA4LjggNTMuNCAyMy44IDc0LjQtNTEuNSAyMS04Ny44IDcxLjYtODcuOCAxMzAuNyAwIDEgMCAxLjkgMCAyLjlsLTE3NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA2NHpNMjA4IDQwMGwwIDY0IDUzLjQgMGM3LjItMjkuNCAyMS4zLTU2LjEgNDAuNC03OC4zLTYuMS0xOS41LTI0LjMtMzMuNy00NS44LTMzLjctMjYuNSAwLTQ4IDIxLjUtNDggNDh6TTMzOSAyMjQuM2MtMS0uMi0yLS4zLTMtLjNsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNi43IDBjMi4xLTIyLjggOC40LTQ0LjMgMTguMy02My43ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMjQwIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxLWHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ib3QiLGljb246WzY0MCw1MTIsWzEyOTMwMl0sImY1NDQiLCJNMzUyIDBjMC0xNy43LTE0LjMtMzItMzItMzJTMjg4LTE3LjcgMjg4IDBsMCA2NC05NiAwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTIyNGMwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAtNjR6TTE2MCAzNjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTEyMCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjI0IDE3NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTE0NCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek02NCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMDYuMyAwIDIyNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NnptNTQ0LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sY3Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1cyIsaWNvbjpbNDQ4LDUxMixbMTAxMzMsNjE1NDMsImFkZCJdLCIyYiIsIk0yNTYgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xNjB6Il19LFpYdD1jdixGdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0xOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMDAuNmMwLTE3LjQtNy4xLTM0LjEtMTkuNy00Ni4yTDM3MC42IDE3LjhDMzU4LjcgNi40IDM0Mi44IDAgMzI2LjMgMEwxOTIgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTY0IDAgMCAxNi0xOTIgMCAwLTI1NiAxNiAwIDAtNjQtMTYgMHoiXX0sWFh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWtpbmciLGljb246WzQ0OCw1MTIsWzk4MThdLCJmNDNmIiwiTTIyNC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA2NCAxNTMuOCAwYzIxLjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgNi40LTEuNiAxMi43LTQuNyAxOC4zTDM1MiAzODQgNDA4LjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMNjcuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDk2IDM4NCA0LjcgMjE2LjZDMS42IDIxMC45IDAgMjA0LjYgMCAxOTguMiAwIDE3Ny4xIDE3LjEgMTYwIDM4LjIgMTYwbDE1My44IDAgMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sUVh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNTBlIiwiTTQ5NiAyMDhsNC41IDBjMTUuMiAwIDI3LjUtMTIuMyAyNy41LTI3LjUgMC03LjktMy40LTE1LjUtOS40LTIwLjdMMzQ4IDEwLjVDMzQwLjMgMy43IDMzMC4zIDAgMzIwIDBzLTIwLjMgMy43LTI4IDEwLjVMMTIxLjQgMTU5LjhjLTYgNS4yLTkuNCAxMi44LTkuNCAyMC43IDAgMTUuMiAxMi4zIDI3LjUgMjcuNSAyNy41bDQuNSAwIDAgOTQuNGMyMC4zLTkuNCA0Mi4xLTE0LjIgNjQtMTQuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMTYuOS0uMSAzMy44IDIuNiA1MCA4bDAtODh6bS0yMjQtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6TTQ3NC42IDQxMi4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDE4LjMgMTcuNiA0MjYuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDk2YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNTE0LjMgMTcuNiA1MjIuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LEpYdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaXRjb2luLXNpZ24iLGljb246WzMyMCw1MTIsW10sImUwYjQiLCJNNjQgMjRDNjQgMTAuNyA3NC43IDAgODggMHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MS4xYzU0LjMgNy44IDk2IDU0LjQgOTYgMTEwLjkgMCAyNC4yLTcuNyA0Ni42LTIwLjcgNjQuOSAzMS43IDE5LjggNTIuNyA1NSA1Mi43IDk1LjEgMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTE2IDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTMyIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTIyLjMgMEMxOC43IDQ0OCAwIDQyOS4zIDAgNDA2LjNMMCAxMDEuNkMwIDgwLjggMTYuOCA2NCAzNy42IDY0TDY0IDY0IDY0IDI0em0wIDIwMGwxMTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMTEyIDAgMCA5NnptMTEyIDY0bC0xMTIgMCAwIDk2IDE0NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAweiJdfSxlUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94IixpY29uOls0NDgsNTEyLFsxMjgyMzBdLCJmNDY2IiwiTTM2OS40IDEyOGwtMzQuMy00OC0yMjIuMSAwLTM0LjMgNDggMjkwLjcgMHpNMCAxNDguNWMwLTEzLjMgNC4yLTI2LjMgMTEuOS0zNy4yTDYwLjkgNDIuOEM3Mi45IDI2IDkyLjMgMTYgMTEyLjkgMTZsMjIyLjEgMGMyMC43IDAgNDAuMSAxMCA1Mi4xIDI2LjhsNDguOSA2OC41YzcuOCAxMC45IDExLjkgMjMuOSAxMS45IDM3LjJMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTQ4LjV6Il19LGw5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbNjE4NDYsInBsdXMtc3F1YXJlIl0sImYwZmUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LHRRdD1sOWUsYzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1sZWZ0LXJpZ2h0IixpY29uOls1NzYsNTEyLFsiYXJyb3dzLWgiXSwiZjA3ZSIsIk00NzAuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDQxLjQgNDEuNC0zNTcuNSAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNmw5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC00MS40LTQxLjQgMzU3LjUgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6Il19LGFRdD1jOWUsclF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjg2MyIsIk0xNjAgMTQ0YzAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDguOCAwIDE2IDcuMiAxNiAxNmwwIDE1Mi4yYzE1LTUuMyAzMS4yLTguMiA0OC04LjIgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA4LjgtNy4yIDE2LTE2IDE2bC0xNTIuMiAwYzUuMyAxNSA4LjIgMzEuMiA4LjIgNDggMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDQtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTUyLjJjLTE1IDUuMy0zMS4yIDguMi00OCA4LjItNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC04LjggNy4yLTE2IDE2LTE2bDE1Mi4yIDBjLTUuMy0xNS04LjItMzEuMi04LjItNDh6bTk2IDE0NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHNRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93IixpY29uOls2NDAsNTEyLFtdLCJmNTIwIiwiTTQ1Ni41IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMzYtMzU1LjIgMjY2LjRDLS44IDQwMS0zLjcgNDIxIDYuOSA0MzUuMnMzMC42IDE3IDQ0LjggNi40bDc2LjgtNTcuNiAxMzEuMyAwIDQ2LjYgMTEzLjEgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTM5LjEtOTQuOSA0MC45IDBjMS4xIDAgMi4yIDAgMy4yIDBsNDYuNiAxMTMuMiAxIDIuMmM1LjcgMTAuNyAxOC44IDE1LjUgMzAuMyAxMC44czE3LjMtMTcuMyAxMy45LTI5bC0uOC0yLjMtNDItMTAyQzQ4NS4zIDM1NC4xIDU0NC41IDI4MCA1NDQuNSAxOTJsMC03MiA4MC41LTIwLjFjOC42LTIuMSAxMy44LTEwLjggMTEuNi0xOS40LTcuMS0yOC41LTMyLjctNDguNS02Mi4xLTQ4LjVsLTUwLjEgMEM1MDguMiAxMi41IDQ4My44IDAgNDU2LjUgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LGlRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxLYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rLXNsYXNoIixpY29uOls1NzYsNTEyLFsiY2hhaW4tYnJva2VuIiwiY2hhaW4tc2xhc2giLCJ1bmxpbmsiXSwiZjEyNyIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMjItMTIyYzQuMi0zLjQgOC4zLTcuMSAxMi4xLTEwLjlsNzEuMS03MS4xYzI5LjMtMjkuMyA0NS44LTY5LjEgNDUuOC0xMTAuNiAwLTg2LjQtNzAtMTU2LjUtMTU2LjUtMTU2LjUtMzcuMyAwLTczLjEgMTMuMy0xMDEuMyAzNy4yIDIwLjMgMTAuMSAzOC43IDIzLjUgNTQuNSAzOS41IDE0LjEtOC4zIDMwLjItMTIuNyA0Ni44LTEyLjcgNTEuMSAwIDkyLjUgNDEuNCA5Mi41IDkyLjUgMCAyNC41LTkuNyA0OC0yNy4xIDY1LjRsLTcxLjEgNzEuMWMtMy45IDMuOS04LjEgNy40LTEyLjYgMTAuNWwtNDcuNS00Ny41YzE2LjUtLjkgMjkuNy0xNC40IDMwLjItMzEuMSAwLTEuMyAwLTIuNiAwLTMuOSAwLTg2LjMtNjkuOS0xNTYuOS0xNTYuNS0xNTYuOS0xOS4yIDAtMzcuOSAzLjUtNTUuNSAxMC4yTDQxLTI0Ljl6TTIyNS45IDE2MGMuNiAwIDEuMSAwIDEuNyAwIDE1LjEgMCAyOS41IDMuNyA0Mi4xIDEwLjIgMS44IDEuMiAzLjYgMi4zIDUuNSAzLjEgMjYuOCAxNi4zIDQ0LjggNDUuOSA0NC44IDc5LjYgMCAuNCAwIC44IDAgMS4yTDIyNS45IDE2MHpNMzQ2LjIgNDE2TDE5MiAyNjEuOGMxLjIgODQuNiA2OS42IDE1Mi45IDE1NC4xIDE1NC4xek0xMzkuNyAyMDkuNWwtNDUuMy00NS4zLTQ4LjYgNDguNmMtMjkuMyAyOS4zLTQ1LjggNjkuMS00NS44IDExMC42IDAgODYuNCA3MCAxNTYuNSAxNTYuNSAxNTYuNSAzNy4yIDAgNzMuMS0xMy4zIDEwMS4zLTM3LjItMjAuMy0xMC4xLTM4LjgtMjMuNS01NC42LTM5LjUtMTQgOC4yLTMwLjEgMTIuNi00Ni43IDEyLjYtNTEuMSAwLTkyLjUtNDEuNC05Mi41LTkyLjUgMC0yNC41IDkuNy00OCAyNy4xLTY1LjRsNDguNi00OC42eiJdfSxvUXQ9S2IsblF0PUtiLGxRdD1LYixaYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yb3RhdGUtcmlnaHQiLGljb246WzUxMiw1MTIsWzg2MzUsImFycm93LXJpZ2h0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1mb3J3YXJkIiwicmVkbyJdLCJmMDFlIiwiTTQzNi43IDc0LjdMNDQ4IDg1LjQgNDQ4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ3LjkgMC03LjYtNy4yYy0uMi0uMi0uNC0uNC0uNi0uNi03NS03NS0xOTYuNS03NS0yNzEuNSAwcy03NSAxOTYuNSAwIDI3MS41IDE5Ni41IDc1IDI3MS41IDBjOC4yLTguMiAxNS41LTE2LjkgMjEuOS0yNi4xIDEwLjEtMTQuNSAzMC4xLTE4IDQ0LjYtNy45czE4IDMwLjEgNy45IDQ0LjZjLTguNSAxMi4yLTE4LjIgMjMuOC0yOS4xIDM0LjctMTAwIDEwMC0yNjIuMSAxMDAtMzYyIDBTLTI1IDE3NSA3NSA3NWM5OS45LTk5LjkgMjYxLjctMTAwIDM2MS43LS4zeiJdfSxjUXQ9WmIsZFF0PVpiLHVRdD1aYixkOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWNsaXAiLGljb246WzUxMiw1MTIsWyJwZW4tYWx0Il0sImYzMDUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTI3NC4xIDEwMGwwIDAgMTM3LjkgMTM3LjktMjE1LjEgMjE1LjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdMMjQwLjEgMTMzLjkgMjIzIDExNi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw4OSAyMTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTU1LjEgODIuOWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjc0LjEgMTAweiJdfSxwUXQ9ZDllLGZRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLWNsb3NlZCIsaWNvbjpbNDQ4LDUxMixbMTI4NjgyXSwiZjUyYSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA2NHpNMzIwIDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGZ0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXdpZGUtc2hvcnQiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC1hc2MiLCJzb3J0LWFtb3VudC1kb3duIl0sImYxNjAiLCJNMjQ2LjYgMzc0LjZsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMjAgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIwIDk2eiJdfSxoUXQ9ZnRlLG1RdD1mdGUsZ1F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWRvd24iLGljb246WzMyMCw1MTIsW10sImYwZDciLCJNMTQwLjMgMzc2LjhjMTIuNiAxMC4yIDMxLjEgOS41IDQyLjgtMi4ybDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzAxLjQgMTkyIDI4OC41IDE5MmwtMjU2IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjcgMjM3LjUgOS45IDI0Ni42bDEyOCAxMjggMi40IDIuMnoiXX0sYlF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImsiLGljb246WzMyMCw1MTIsWzEwN10sIjRiIiwiTTMxMSA4Ni4zYzEyLjMtMTIuNyAxMi0zMi45LS43LTQ1LjJzLTMyLjktMTItNDUuMiAuN0MxNDMuNCAxNjcuMiA3Ni40IDIzNi4zIDY0IDI0OUw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTA3IDY0LjctNjYuNyAxMzMgMTkyYzEwLjEgMTQuNSAzMCAxOC4xIDQ0LjUgOC4xczE4LjEtMzAgOC4xLTQ0LjVMMTc0LjEgMjI3LjQgMzExIDg2LjN6Il19LHU5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay10by1zbG90IixpY29uOls1NzYsNTEyLFsidm90ZS15ZWEiXSwiZjc3MiIsIk01NTIgMjg4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MTYgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyNTYgMHptLTM3LjEgODQuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjYtOS41IDkuMi05LjggMjQuNC0uNiAzMy45bDQ2LjQgNDhjNC45IDUuMSAxMS44IDcuOCAxOC45IDcuM3MxMy42LTQuMSAxNy44LTkuOEwzODQuMiAxNTAuMWM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sdlF0PXU5ZSx4UXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaC1maW5zIixpY29uOls1NzYsNTEyLFtdLCJlNGYyIiwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjUtMTUuMyAxMS41LTI5IDIzLjktNDAuNyAzNi4zTDQ4LjEgMTMyLjRjLTEyLjUtNy4zLTI4LjQtNS4zLTM4LjcgNC45cy0xMi40IDI2LTUuMyAzOC42TDUwIDI1NiA0LjIgMzM2LjFjLTcuMiAxMi42LTUgMjguNCA1LjMgMzguNnMyNi4xIDEyLjIgMzguNyA0LjlsOTMuMS01NC4zYzExLjggMTIuMyAyNS40IDI0LjggNDAuNyAzNi4zIDE1LjUgMTEuNiAzMyAyMi41IDUyLjQgMzEuNWwtOS43IDQ4LjZjLTIuNiAxMyAzLjEgMjYuMyAxNC4zIDMzLjNzMjUuNiA2LjUgMzYuMy0xLjVsNzcuNi01OC4yYzU0LjktNCAxMDEuNS0yNyAxMzcuMi01My44IDM5LjItMjkuNCA2Ny4yLTY0LjcgODEuNi04OS41IDUuOC05LjkgNS44LTIyLjIgMC0zMi4xLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41LTM1LjgtMjYuOC04Mi4zLTQ5LjgtMTM3LjItNTMuOEwyNzUuMiAzOC40ek0zODQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHlRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wcmVzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NiIsIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgNDYuMyA5NiA2NGwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2ek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxwOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtYS16IixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cCJdLCJmMTVlIiwiTTQxMi42IDQ5LjdDNDA3LjIgMzguOCAzOTYuMSAzMiAzODQgMzJzLTIzLjIgNi44LTI4LjYgMTcuN2MtNTAuNyAxMDEuMy03Ny4zIDE1NC43LTgwIDE2MC03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsNy4yLTE0LjMgODguNCAwIDcuMiAxNC4zYzcuOSAxNS44IDI3LjEgMjIuMiA0Mi45IDE0LjNzMjIuMi0yNy4xIDE0LjMtNDIuOWMtMi43LTUuMy0yOS4zLTU4LjctODAtMTYwek0zODQgMTM1LjZsMjAuMiA0MC40LTQwLjQgMCAyMC4yLTQwLjR6TTI4OCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgNDgwIDMyMCA0ODBsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYwLjkgMjg4IDQ0OCAyODhsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgweiJdfSx3UXQ9cDllLE1RdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdyYWR1YXRlIixpY29uOls0NDgsNTEyLFtdLCJmNTAxIiwiTTI0MS4zLTEzYy0xMS40LTIuMy0yMy4xLTIuMy0zNC41IDBMMTkuMyAyNC41QzguMSAyNi43IDAgMzYuNiAwIDQ4IDAgNTguMyA2LjUgNjcuMyAxNiA3MC42TDE2IDE0NCAuMyAyMjIuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42bDM0LjkgMGM4IDAgMTQuNi02LjUgMTQuNi0xNC42IDAtMS0uMS0xLjktLjMtMi45TDQ4IDE0NCA0OCA3Ny4zIDk2IDg2LjkgOTYgMTQ0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC01Ny4xIDc2LjctMTUuM0M0MzkuOSA2OS4zIDQ0OCA1OS40IDQ0OCA0OHMtOC4xLTIxLjMtMTkuMy0yMy41TDI0MS4zLTEzek0yMjQgMjI0Yy00NC4yIDAtODAtMzUuOC04MC04MGwxNjAgMGMwIDQ0LjItMzUuOCA4MC04MCA4MHpNMTIwLjEgMzIwLjFDNTguNyAzNDguMyAxNiA0MTAuMyAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwxNTQuMyAwIDAtMTQ2LTU3LjQtNDNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjh6TTI0OCA1MTJsMTU0LjMgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTU3LjQgNDMgMCAxNDZ6Il19LGtRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1NC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em0xMTItMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnoiXX0sU1F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvYXAiLGljb246WzUxMiw1MTIsWzEyOTUzMl0sImUwNmUiLCJNMjA4LTMyYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMzIwIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0zNTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAxNjBsMTEyIDBjMCAyMy44IDcuNCA0NS45IDIwLjEgNjRMMTYwIDIyNGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2IDAtMzUuMS0xOC45LTY1LjktNDctODIuNiAxOS0xOS44IDMwLjctNDYuNiAzMS03Ni4xIDQ1LjQgNy42IDgwIDQ3LjEgODAgOTQuN2wwIDEyOGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ4MGMtNTMgMC05Ni00My05Ni05NkwwIDI1NmMwLTUzIDQzLTk2IDk2LTk2em02NCAxMTJsMTkyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4eiJdfSx6UXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjeWNsZSIsaWNvbjpbNTEyLDUxMixbOTg0Miw5ODUwLDk4NTFdLCJmMWI4IiwiTTE1Mi4zIDYwQzE5OC41LTIwIDMxNC0yMCAzNjAuMiA2MGwzNy4zIDY0LjYgMjcuNy0xNmM4LjQtNC45IDE4LjktNC4yIDI2LjYgMS43czExLjEgMTUuOSA4LjYgMjUuM0w0MzYuOSAyMjNjLTMuNCAxMi44LTE2LjYgMjAuNC0yOS40IDE3bC04Ny40LTIzLjRjLTkuNC0yLjUtMTYuMy0xMC40LTE3LjYtMjBzMy40LTE5LjEgMTEuOC0yMy45bDI3LjctMTYtMzcuMy02NC42Yy0yMS42LTM3LjMtNzUuNC0zNy4zLTk3IDBsLTUuMyA5LjFjLTguOCAxNS4zLTI4LjQgMjAuNS00My43IDExLjdTMTM4LjIgODQuNSAxNDcgNjkuMWw1LjMtOS4xek00NDkuNyAyNzkuMWMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsNS4zIDkuMWM0Ni4yIDgwLTExLjUgMTgwLTEwMy45IDE4MGwtNzQuNiAwIDAgMzJjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDY0LTY0YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMmwwIDMyIDc0LjYgMGM0My4xIDAgNzAuMS00Ni43IDQ4LjUtODRsLTUuMy05LjFjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN3pNNTEgMjM1LjRsLTI3LjctMTZjLTguNC00LjktMTMuMS0xNC4zLTExLjgtMjMuOXM4LjItMTcuNSAxNy42LTIwTDExNi41IDE1MmMxMi44LTMuNCAyNiA0LjIgMjkuNCAxN2wyMy40IDg3LjRjMi41IDkuNC0uOSAxOS4zLTguNiAyNS4zcy0xOC4yIDYuNi0yNi42IDEuN2wtMjcuNy0xNi0zNy4zIDY0LjZjLTIxLjYgMzcuMyA1LjQgODQgNDguNSA4NGwxMC42IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjYgMEMyNS4zIDQ4MC0zMi40IDM4MCAxMy44IDMwMEw1MSAyMzUuNHoiXX0sZjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjggMTk2Yy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sQ1F0PWY5ZSxodGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2F0ZXItbGFkZGVyIixpY29uOls2NDAsNTEyLFsibGFkZGVyLXdhdGVyIiwic3dpbW1pbmctcG9vbCJdLCJmNWM1IiwiTTM3NC41IDQwNS43YzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS44IDI1LjctNC44IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjQuMiAxOC4zLTUyLjMgMzUuOS04My40IDM1LjlzLTU5LjEtMTcuNy04My4zLTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjYtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM3pNNTExLjggMzJjNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44LTE3LjUgMC0zMS44IDE0LjItMzEuOCAzMS44bDAgMjExLjhjLTIzLjEtNS4xLTQ0LjktNC40LTY0LS40bDAtNTEuMi0xOTIgMCAwIDQ4LjdjLTUuMy0uNS0xMC43LS44LTE2LS43LTE2LjIgLjEtMzIuNCAyLjctNDggOGwwLTIxNi4yYzAtNTIuOSA0Mi45LTk1LjggOTUuNy05NS44IDQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOC0xNy41IDAtMzEuNyAxNC4yLTMxLjcgMzEuOGwwIDk2LjIgMTkyIDAgMC05Ni4yQzQxNiA3NC45IDQ1OC45IDMyIDUxMS44IDMyeiJdfSxfUXQ9aHRlLFRRdD1odGUsTFF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlbWluaSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0OSIsIk0zOTUuNCA4YzEzLjItMTEuNyAzMy4zLTEwLjUgNDUuMSAyLjcgMTEuNyAxMy4yIDEwLjUgMzMuNC0yLjcgNDUuMi0yLjcgMi40LTIzLjEgMTkuOC01OC4zIDM2LjgtOC4yIDQtMTcuMiA3LjktMjcgMTEuNmwwIDMwMy4yYzkuOCAzLjggMTguOCA3LjYgMjcgMTEuNiAxOC4yIDguOCAzMi40IDE3LjcgNDIuMiAyNC41IDMgMi4xIDUuNSA0LjEgNy43IDUuNyAxLjIgLjkgMi4zIDEuNiAzLjIgMi40IC4yIC4xIC4zIC4yIC41IC40IDEuMyAxLjEgMi40IDIgMy4yIDIuNiAuNCAuMyAuNyAuNiAuOSAuOCAuMSAuMSAuMyAuMiAuMyAuMyAwIDAgLjEgLjEgLjEgLjFsLjEgMCAwIDAgMCAwYzMuMyAyLjkgNS45IDYuNCA3LjcgMTAuMiA1LjQgMTEuMyAzLjggMjUuMS01IDM1LS4zIC40LS43IC43LTEuMSAxLjEtMTEuOSAxMi4yLTMxLjIgMTMuMS00NCAxLjctLjMtLjMtMS41LTEuMy0zLjUtMi44LS40LS4zLS45LS43LTEuNS0xLjEtMS45LTEuNC00LjItMy4xLTcuMS01LjEtMi4yLTEuNS00LjctMy4xLTcuNC00LjgtNi42LTQuMS0xNC44LTguOC0yNC40LTEzLjUtNy40LTMuNi0xNS42LTcuMi0yNC43LTEwLjUtMTMuNi01LjEtMjktOS42LTQ2LjEtMTIuOS01LjctMS4xLTExLjYtMi4xLTE3LjctMi44LTEyLjEtMS42LTI1LTIuNS0zOC42LTIuNS01NC4yIDAtOTcuNCAxNC40LTEyNyAyOC44LTMuNCAxLjYtNi41IDMuMy05LjUgNC45LTUuMSAyLjgtOS43IDUuNC0xMy44IDcuOS0zLjMgMi4xLTYuMyA0LTguOSA1LjctMS43IDEuMi0zLjIgMi4zLTQuNiAzLjMtMS45IDEuNC0zLjUgMi41LTQuNiAzLjQtMS40IDEuMS0yLjIgMS44LTIuNSAyLTEzLjIgMTEuNy0zMy4zIDEwLjUtNDUuMS0yLjgtMi4yLTIuNS00LTUuMi01LjItOC4xcy0yLjEtNS45LTIuNS04LjljLTEuNC0xMC4yIDIuMi0yMC44IDEwLjQtMjguMiAuMi0uMiAuNi0uNSAxLjItMSAuMS0uMSAuMi0uMiAuMy0uM2wzLjItMi42YzEuNy0xLjMgMy43LTIuOCA2LjItNC42IDEuNi0xLjIgMy4zLTIuNSA1LjItMy44IDkuOC02LjggMjQtMTUuNyA0Mi4yLTI0LjUgOC4yLTQgMTcuMi03LjkgMjctMTEuNmwwLTMwMy4yQzg2LjcgMTAwLjYgNzcuNyA5Ni43IDY5LjUgOTIuOCAzNC4zIDc1LjcgMTQgNTguMyAxMS4zIDU1LjktMS45IDQ0LjItMy4xIDI0IDguNiAxMC43IDIwLjMtMi41IDQwLjUtMy43IDUzLjcgOCA1NS4xIDkuMiA3MC43IDIyLjIgOTcuNSAzNS4yIDEyNy4xIDQ5LjYgMTcwLjMgNjQgMjI0LjUgNjRzOTcuNC0xNC40IDEyNy0yOC44YzI2LjgtMTMgNDIuNC0yNiA0My44LTI3LjJ6TTI4OC41IDEyMi4zYy0xOS43IDMuNS00MSA1LjctNjQgNS43cy00NC4zLTIuMi02NC01LjdsMCAyNjcuNGMxMi42LTIuMyAyNS45LTQgMzkuOS00LjkgNy44LS41IDE1LjgtLjggMjQtLjggMjMgMCA0NC40IDIuMiA2NCA1LjdsMC0yNjcuNHoiXX0sJFF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLWNlbGwiLGljb246WzU3Niw1MTIsW10sImU1ODUiLCJNNTkuNiA5LjhDNDcuMyA0LjggMzMuMyAxMC43IDI4LjQgMjMgMTUuMiA1NS41IDggOTAuOSA4IDEyOHM3LjIgNzIuNSAyMC40IDEwNWM1IDEyLjMgMTkgMTguMiAzMS4zIDEzLjJzMTguMi0xOSAxMy4yLTMxLjNDNjIgMTg4LjIgNTYgMTU4LjggNTYgMTI4czYtNjAuMiAxNi45LTg3YzUtMTIuMy0xLTI2LjMtMTMuMi0zMS4zem00NTYuOCAwYy0xMi4zIDUtMTguMiAxOS0xMy4yIDMxLjMgMTAuOSAyNi44IDE2LjkgNTYuMiAxNi45IDg3cy02IDYwLjItMTYuOSA4N2MtNSAxMi4zIDEgMjYuMyAxMy4yIDMxLjNzMjYuMy0xIDMxLjMtMTMuMmMxMy4xLTMyLjUgMjAuNC02Ny45IDIwLjQtMTA1cy03LjItNzIuNS0yMC40LTEwNWMtNS0xMi4zLTE5LTE4LjItMzEuMy0xMy4yek0zNDAuMSAxNjUuMmM3LjUtMTAuNSAxMS45LTIzLjMgMTEuOS0zNy4yIDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMTMuOSA0LjQgMjYuNyAxMS45IDM3LjJMOTguOSA0NjYuOGMtNy4zIDE2LjEtLjIgMzUuMSAxNS45IDQyLjRzMzUuMSAuMiA0Mi40LTE1LjlsMjAuNi00NS4yIDIyMC42IDAgMjAuNiA0NS4yYzcuMyAxNi4xIDI2LjMgMjMuMiA0Mi40IDE1LjlzMjMuMi0yNi4zIDE1LjktNDIuNEwzNDAuMSAxNjUuMnpNMzc2LjUgNDAwbC0xNzcgMCAyMS44LTQ4IDEzMy4zIDAgMjEuOCA0OHpNMjg4IDIwNS4zbDQ0LjggOTguNy04OS43IDAgNDQuOC05OC43ek0xNjMuMyA3My42YzUuMy0xMi4xLS4yLTI2LjMtMTIuNC0zMS42cy0yNi4zIC4yLTMxLjYgMTIuNEMxMDkuNSA3NyAxMDQgMTAxLjkgMTA0IDEyOHM1LjUgNTEgMTUuMyA3My42YzUuMyAxMi4xIDE5LjUgMTcuNyAzMS42IDEyLjRzMTcuNy0xOS41IDEyLjQtMzEuNkMxNTYgMTY1LjggMTUyIDE0Ny40IDE1MiAxMjhzNC0zNy44IDExLjMtNTQuNHpNNDU2LjcgNTQuNGMtNS4zLTEyLjEtMTkuNS0xNy43LTMxLjYtMTIuNHMtMTcuNyAxOS41LTEyLjQgMzEuNkM0MjAgOTAuMiA0MjQgMTA4LjYgNDI0IDEyOHMtNCAzNy44LTExLjMgNTQuNGMtNS4zIDEyLjEgLjIgMjYuMyAxMi40IDMxLjZzMjYuMy0uMiAzMS42LTEyLjRDNDY2LjUgMTc5IDQ3MiAxNTQuMSA0NzIgMTI4cy01LjUtNTEtMTUuMy03My42eiJdfSxEUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29sb24tc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE0MCIsIk0yMTMuOCA4LjdjMTIuOSAzLjIgMjAuNyAxNi4yIDE3LjUgMjkuMWwtNC42IDE4LjVjMTUuNCAuOCAzMC40IDMuNCA0NC43IDcuNWw5LjQtMzcuNkMyODMuOSAxMy4zIDI5NyA1LjUgMzA5LjggOC43UzMzMC41IDI1IDMyNy4zIDM3LjhMMzE2IDgyLjhjMTMuNSA3LjggMjYgMTcuMSAzNy4yIDI3LjggMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zYy0zLjEtMi45LTYuNC01LjgtOS44LTguNEwyMzkuMiAzOTBjMjYuOS00LjYgNTEuMS0xNy4xIDcwLjEtMzUuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMmMtMzQuMyAzMi4zLTgwIDUyLjgtMTMwLjUgNTQuNGwtNy41IDI5LjljLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVzLTIwLjctMTYuMi0xNy41LTI5LjFsNS42LTIyLjVjLTE1LTMuMi0yOS40LTgtNDIuOS0xNC40bC0xMi4xIDQ4LjVjLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVTNjkuNSA0ODcgNzIuNyA0NzQuMmwxNi02My45QzQ0LjMgMzczLjYgMTYgMzE4LjEgMTYgMjU2IDE2IDE1OS4yIDg0LjggNzguNCAxNzYuMyA2MGw4LjQtMzMuOEMxODcuOSAxMy4zIDIwMSA1LjUgMjEzLjggOC43ek0xNTggMTMyLjljLTQ2LjEgMjEuOC03OCA2OC43LTc4IDEyMy4xIDAgMzAuNSAxMCA1OC42IDI2LjkgODEuM0wxNTggMTMyLjl6TTE0Ny40IDM3My40YzEzIDcuNiAyNy4zIDEzLjEgNDIuNSAxNi4xbDY1LjktMjYzLjZjLTEyLjYtMy44LTI1LjktNS45LTM5LjgtNS45LTEuOCAwLTMuNSAwLTUuMyAuMUwxNDcuNCAzNzMuNHoiXX0sQVF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1maWxlIixpY29uOls1NzYsNTEyLFtdLCJlNTFkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDQxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDgtNjQgMCAwLTQ4LTI4OCAwIDAgMTkyIDExMiAwIDAgOTYtMTYzLjIgMEMzNC40IDM1MiAwIDMxNy42IDAgMjc1LjIgMCAyNjQuNiA4LjYgMjU2IDE5LjIgMjU2TDY0IDI1NiA2NCA2NHpNNTI5LjkgMjU3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNTQ0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjU2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDc2LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xIDIwIDIwIDQ3LjkgNDcuOSA4My45IDgzLjl6TTQxNiAyNzJjMCA4LjggNy4yIDE2IDE2IDE2bDYwLjEgMC03Ni4xLTc2LjEgMCA2MC4xeiJdfSxoOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFoYWkiLGljb246WzU3Niw1MTIsWyJoYXlrYWwiXSwiZjY2NiIsIk0yODguNC04YzEzLjIgMCAyNSA4LjEgMjkuOCAyMC40bDMxLjkgODIgNzcuMi00Mi4zYzExLjYtNi4zIDI1LjgtNC45IDM1LjkgMy41czE0IDIyLjMgOS43IDM0LjhsLTI4LjIgODMuMyA4Ni4zIDE3LjJjMTIuOSAyLjYgMjMgMTIuOCAyNS4zIDI1LjhzLTMuNiAyNi4xLTE0LjkgMzIuOWwtNzUuMiA0NS43IDU1IDY4LjZjOC4zIDEwLjMgOS4zIDI0LjYgMi43IDM2cy0xOS41IDE3LjYtMzIuNiAxNS42bC04Ny0xMy4zLTIgODhjLS4zIDEzLjItOC42IDI0LjgtMjEgMjkuNHMtMjYuMyAxLTM1LTlsLTU4LTY2LjEtNTggNjYuMWMtOC43IDkuOS0yMi42IDEzLjUtMzUgOXMtMjAuOC0xNi4yLTIxLTI5LjRsLTItODgtODcgMTMuM2MtMTMgMi0yNi00LjItMzIuNi0xNS42cy01LjUtMjUuNyAyLjctMzZsNTUtNjguNi03NS4yLTQ1LjdjLTExLjMtNi44LTE3LjItMTkuOS0xNC45LTMyLjlzMTIuMy0yMy4yIDI1LjMtMjUuOGw4Ni4zLTE3LjItMjguMi04My4zYy00LjItMTIuNS0uNC0yNi4zIDkuNy0zNC44czI0LjQtOS45IDM1LjktMy41bDc3LjEgNDIuMyAzMS45LTgyQzI2My4zIC4xIDI3NS4yLTggMjg4LjQtOHptMCAxMjAuMkwyNzMgMTUxLjZjLTMuMyA4LjYtMTAuMiAxNS4zLTE4LjkgMTguNXMtMTguMiAyLjQtMjYuMy0ybC0zNy0yMC4zIDEzLjYgNDBjMyA4LjcgMiAxOC4zLTIuNiAyNi4zcy0xMi40IDEzLjYtMjEuNSAxNS40bC00MS40IDguMyAzNi4xIDIxLjljNy45IDQuOCAxMy4zIDEyLjcgMTQuOSAyMS44cy0uOCAxOC40LTYuNSAyNS42bC0yNi40IDMzIDQxLjgtNi40YzkuMS0xLjQgMTguNCAxLjIgMjUuNCA3LjFzMTEuMiAxNC42IDExLjQgMjMuOGwuOSA0Mi4yIDI3LjktMzEuOGM2LjEtNi45IDE0LjgtMTAuOSAyNC4xLTEwLjlzMTggNCAyNC4xIDEwLjlsMjcuOSAzMS44IC45LTQyLjJjLjItOS4yIDQuNC0xNy45IDExLjQtMjMuOHMxNi4zLTguNSAyNS40LTcuMWw0MS44IDYuNC0yNi40LTMzYy01LjgtNy4yLTguMi0xNi41LTYuNi0yNS42czctMTcgMTQuOS0yMS44bDM2LjEtMjEuOS00MS40LTguM2MtOS0xLjgtMTYuOS03LjQtMjEuNS0xNS40cy01LjUtMTcuNi0yLjYtMjYuM2wxMy42LTQwLTM3IDIwLjNjLTguMSA0LjQtMTcuNyA1LjItMjYuMyAycy0xNS41LTkuOS0xOC45LTE4LjVsLTE1LjMtMzkuNHoiXX0sUFF0PWg5ZSxtOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC1hbHQiXSwiZjNkMSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDgwYTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHpNNjQgMTg0bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTQ0YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNDQwIDE5MS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek00NDggMzI4bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNMjQwIDE4OGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sRVF0PW05ZSxnOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYm9sdCIsaWNvbjpbNTEyLDUxMixbMTI3Nzg1LCJ0aHVuZGVyc3Rvcm0iXSwiZjc2YyIsIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDM4LjYgMCAxMjQuMS0xMTFjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43TDM1NC4xIDMyMCA0MTYgMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE2MC42IDQwMGw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM2Mi41IDM5Ni45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxNDkuNSAzNzEuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0sSVF0PWc5ZSxOUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXRoZXJuZXQiLGljb246WzUxMiw1MTIsW10sImY3OTYiLCJNMCAyMjRMMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxiOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaHJ5dm5pYS1zaWduIixpY29uOlszODQsNTEyLFs4MzcyLCJocnl2bmlhIl0sImY2ZjIiLCJNMzM2IDE0OS40QzMzNiA3NyAyNjguNSAyMy41IDE5OCA0MC4xTDkzLjIgNjQuOUM3NiA2OC45IDY1LjQgODYuMiA2OS40IDEwMy40czIxLjMgMjcuOSAzOC41IDIzLjhsMTA0LjgtMjQuN2MzMC4zLTcuMSA1OS4zIDE1LjggNTkuMyA0Ni45IDAgMTcuNi05LjYgMzMuOC0yNSA0Mi4zbC0uNyAuNC0yMjIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMi40IDBjNS41LTEzLjMgOC40LTI3LjggOC40LTQyLjZ6TTM2MCAyNzJMMjQgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzLjMgMGMtNi4xIDEzLjQtOS4zIDI4LjEtOS4zIDQzLjMgMCA2NC4xIDU2LjkgMTEzLjQgMTIwLjQgMTA0LjJsMTM3LjktMTkuOWMxNy41LTIuNSAyOS42LTE4LjcgMjcuMS0zNi4ycy0xOC44LTI5LjYtMzYuMi0yNy4xTDE1OS4yIDQwNC4yYy0yNC45IDMuNi00Ny4yLTE1LjctNDcuMi00MC45IDAtMTUuMSA4LjItMjguOSAyMS40LTM2LjJsMTMtNy4xIDIxMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6Il19LFJRdD1iOWUsQnRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTIwNC41IDEzOC43YzIzLjUtMTYuOCA1Mi40LTI2LjcgODMuNS0yNi43IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgMzEuMS05LjkgNTkuOS0yNi43IDgzLjVsLTM0LjctMzQuN2MxMi43LTIxLjQgMTctNDcuNyAxMC4xLTczLjctMTMuNy01MS4yLTY2LjQtODEuNi0xMTcuNi02Ny45LTguNiAyLjMtMTYuNyA1LjctMjQgMTBsLTM0LjctMzQuN3pNMzI1LjMgMzk1LjFjLTExLjkgMy4yLTI0LjQgNC45LTM3LjMgNC45LTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtMTIuOSAxLjctMjUuNCA0LjktMzcuM0w2OS40IDEzOS4yYy0zMi42IDM2LjgtNTUgNzUuOC02Ni45IDEwNC41LTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNiAzNy4zIDAgNzEuMi03LjkgMTAxLjUtMjAuNmwtNjQuMi02NC4yeiJdfSx2OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1mbGF0YmVkLXN1aXRjYXNlIixpY29uOls1NzYsNTEyLFsibHVnZ2FnZS1jYXJ0Il0sImY1OWQiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM0LjcgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC01LjYgMS0xMSAyLjctMTZsLTE5Ny41IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNiAxLjEtMTEuNyAzLjEtMTctMzguMS02LjItNjcuMS0zOS4yLTY3LjEtNzlMNjQgODBjMC04LjgtNy4yLTE2LTE2LTE2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6TTE3NiAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMCAwLTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2bDY0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAyNCAzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNDAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNDR6TTM4NCA5NmwwLTI0YzAtNC40LTMuNi04LTgtOGwtNjQgMGMtNC40IDAtOCAzLjYtOCA4bDAgMjQgODAgMHoiXX0sT1F0PXY5ZSxGUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFkaWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmN2I5IiwiTTQ0Ni4yIDM0LjVjLTE0LjItMTAuMS0zMy41LTQuNi00Mi4yIDEwLjVMMzMxLjYgMTcwLjNjMzEuMyAxNS44IDUyLjggNDguMyA1Mi44IDg1LjdsMTQ0IDBjMTcuNyAwIDMyLjItMTQuNCAzMC4xLTMxLjktOS4xLTc4LjEtNTEuNC0xNDYuMS0xMTIuMy0xODkuNnpNMTcyLjcgNDQuOUMxNjQgMjkuOCAxNDQuNyAyNC4zIDEzMC41IDM0LjUgNjkuNiA3Ny45IDI3LjMgMTQ1LjkgMTguMiAyMjQuMSAxNi4xIDI0MS42IDMwLjcgMjU2IDQ4LjMgMjU2bDE0NCAwYzAtMzcuNSAyMS41LTY5LjkgNTIuOC04NS43TDE3Mi43IDQ0Ljl6bS05LjQgNDE2LjhjLTguNyAxNS4xLTMuOCAzNC41IDEyIDQxLjggMzQuNCAxNS43IDcyLjcgMjQuNSAxMTMgMjQuNXM3OC42LTguOCAxMTMtMjQuNWMxNS44LTcuMiAyMC43LTI2LjcgMTItNDEuOEwzNDEgMzM2LjNjLTE1LjEgOS45LTMzLjIgMTUuNy01Mi42IDE1LjdzLTM3LjUtNS44LTUyLjYtMTUuN0wxNjMuMyA0NjEuN3pNMjg4LjMgMzA0YTQ4IDQ4IDAgMSAwIC0uNy05NiA0OCA0OCAwIDEgMCAuNyA5NnoiXX0sQlF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTM1LjQgMjc0LjhjLTIuOS0xMi45LTE1LjctMjEuMS0yOC42LTE4LjJzLTIxLjEgMTUuNy0xOC4yIDI4LjZsMzIgMTQ0YzIuMyAxMC41IDExLjQgMTguMiAyMi4yIDE4LjhzMjAuNi02LjEgMjQtMTYuNGwyNS4yLTc1LjcgMjUuMiA3NS43YzMuNCAxMC4yIDEzLjIgMTYuOSAyNCAxNi40czE5LjktOC4yIDIyLjItMTguOGwzMi0xNDRjMi45LTEyLjktNS4zLTI1LjgtMTguMi0yOC42cy0yNS44IDUuMy0yOC42IDE4LjJsLTEzLjIgNTkuNC0yMC42LTYxLjhjLTMuMy05LjgtMTIuNC0xNi40LTIyLjgtMTYuNHMtMTkuNSA2LjYtMjIuOCAxNi40bC0yMC42IDYxLjgtMTMuMi01OS40eiJdfSx4OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkLXB1bHNlIixpY29uOls2NDAsNTEyLFsicHJvY2VkdXJlcyJdLCJmNDg3IiwiTTUzMS4yLTIyLjRMNTcyIDMyIDYxNiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtNy42IDAtMTQuNy0zLjYtMTkuMi05LjZsLTI0LjEtMzIuMS00NyA5OS45Yy0zLjcgNy44LTExLjMgMTMuMS0xOS45IDEzLjdzLTE2LjktMy40LTIxLjctMTAuNkwzODcuMiA4MCAzNDQgODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM4IDAgMTUuNSA0IDIwIDEwLjdsMjQuNCAzNi42IDQ1LjktOTcuNWMzLjYtNy42IDEwLjktMTIuOCAxOS4zLTEzLjdzMTYuNiAyLjcgMjEuNiA5LjV6TTMyMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsOS41IDAgMjYuNiAzOS45YzE0LjQgMjEuNiAzOS4zIDMzLjggNjUuMiAzMS45czQ4LjgtMTcuNiA1OS44LTQxLjFMNTI3IDEyOS4yYzQ1LjkgNy4yIDgxIDQ2LjkgODEgOTQuOGwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTQ0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJTOTYgNDYuMyA5NiA2NGwwIDIyNCAyMjQgMCAwLTEyOHpNMTQ0IDE5MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LEhRdD14OWUscVF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnRzIixpY29uOls1NzYsNTEyLFtdLCJlNTgyIiwiTTUzOS45IDM1MmwtOTUuNiAwLTguNC02Ni4xYy0yLjktMjMuMi0xNS45LTQzLjktMzUuNC01Ni44TDI1Mi4yIDEzMS41Yy0xOC0xMS45LTM5LjctMTUuNy02MC4xLTExLjUgMi41LTQuMyA1LjktNy45IDEwLjEtMTAuN0wzNTAuNiAxMS42YzEwLjctNyAyNC41LTcgMzUuMiAwbDE0OC40IDk3LjdjNy44IDUuMSAxMyAxMy40IDE0LjIgMjIuN2wyMy4zIDE4NGMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZ6TTQuOCA0NzZsMjMuMy0xODRjMS4yLTkuMyA2LjMtMTcuNiAxNC4yLTIyLjdsMTQ4LjQtOTcuN2MxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC00OS43IDBjLTExLjIgMC0yMS41LTUuOC0yNy4zLTE1LjRsLTc3LTEyNi43Yy0xLjctMi44LTQuOC00LjYtOC4xLTQuNi01LjMgMC05LjUgNC4zLTkuNSA5LjVsMCAxMDUuMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzNi41IDUxMmMtMTkuMyAwLTM0LjItMTYuOS0zMS43LTM2eiJdfSxIdGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVnLWhvdCIsaWNvbjpbNTc2LDUxMixbOTc0OV0sImY3YjYiLCJNMTUyLTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMxODMuNSAzMS43IDE3NiAyNC4xIDE3NiA4IDE3Ni01LjMgMTY1LjMtMTYgMTUyLTE2ek05NiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTkyYzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNDEuOCAwIDc3LjQtMjYuNyA5MC41LTY0bDUuNSAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzUxOC43IDE5MiA0NDggMTkyTDk2IDE5MnpNNDQ4IDM4NGwwLTEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHpNMjg4IDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjQwLTUuMyAyNDAgOGMwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMyOTUuNSAzMS43IDI4OCAyNC4xIDI4OCA4eiJdfSx5OWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sdCIsaWNvbjpbNDQ4LDUxMixbOTg4OSwiemFwIl0sImYwZTciLCJNMzM4LjgtOS45YzExLjkgOC42IDE2LjMgMjQuMiAxMC45IDM3LjhMMjcxLjMgMjI0IDQxNiAyMjRjMTMuNSAwIDI1LjUgOC40IDMwLjEgMjEuMXMuNyAyNi45LTkuNiAzNS41bC0yODggMjQwYy0xMS4zIDkuNC0yNy40IDkuOS0zOS4zIDEuM3MtMTYuMy0yNC4yLTEwLjktMzcuOEwxNzYuNyAyODggMzIgMjg4Yy0xMy41IDAtMjUuNS04LjQtMzAuMS0yMS4xcy0uNy0yNi45IDkuNi0zNS41bDI4OC0yNDBjMTEuMy05LjQgMjcuNC05LjkgMzkuMy0xLjN6Il19LFZRdD15OWUsalF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImphciIsaWNvbjpbMzIwLDUxMixbXSwiZTUxNiIsIk0zMi04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDE2QzQyLjcgMTYgMzIgNS4zIDMyLTh6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTk2IDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAxOTJ6Il19LFVRdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1wbGFuZSIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZiIsIk0xNDQgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDMyMGMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCAyNy4zYzAgNy4xIC45IDE0LjEgMi43IDIwLjdMMTkyIDQ4MCA4My45IDUwN0M3My44IDUwOS42IDY0IDUwMS45IDY0IDQ5MS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw3NC01OS4yIDAtNTcuNi0xMjIuMSA0OC44QzExLjQgMzk1LjQgMCAzODcuNyAwIDM3Ni40bDAtNDRjMC04IDMtMTUuNiA4LjMtMjEuNUwxNDQgMTYxLjYgMTQ0IDQ4em0yMjQgODBsMTkyIDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNjBjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTYwIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4Yy0xOS40LTE0LjYtMzItMzcuOC0zMi02NGwwLTE2MGMwLTQ0LjIgMzUuOC04MCA4MC04MHptMCAxNzZsMTkyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJ6bTAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sV1F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1oZWFydCIsaWNvbjpbNTc2LDUxMixbXSwiZjRiZSIsIk0yNzkuNiAzMUMyNjUuNSAxMS41IDI0Mi45IDAgMjE4LjkgMCAxNzcuNSAwIDE0NCAzMy41IDE0NCA3NC45bDAgMi40YzAgNjQuNCA4MiAxMzMuNCAxMjIuMiAxNjMuMyAxMyA5LjcgMzAuNSA5LjcgNDMuNSAwIDQwLjItMzAgMTIyLjItOTguOSAxMjIuMi0xNjMuM2wwLTIuNGMwLTQxLjQtMzMuNS03NC45LTc0LjktNzQuOS0yNCAwLTQ2LjYgMTEuNS02MC43IDMxTDI4OCA0Mi43IDI3OS42IDMxek0xMDkuMyAzNDEuNUw2Ni43IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjgwIDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sWTg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcm90YXRlLWxlZnQiLGljb246WzUxMiw1MTIsWzg2MzQsImFycm93LWxlZnQtcm90YXRlIiwiYXJyb3ctcm90YXRlLWJhY2siLCJhcnJvdy1yb3RhdGUtYmFja3dhcmQiLCJ1bmRvIl0sImYwZTIiLCJNMjU2IDY0Yy01Ni44IDAtMTA3LjkgMjQuNy0xNDMuMSA2NGw0Ny4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDAgNTQuN0MxMTAuOSAzMy42IDE3OS41IDAgMjU2IDAgMzk3LjQgMCA1MTIgMTE0LjYgNTEyIDI1NlMzOTcuNCA1MTIgMjU2IDUxMmMtODcgMC0xNjMuOS00My40LTIxMC4xLTEwOS43LTEwLjEtMTQuNS02LjYtMzQuNCA3LjktNDQuNnMzNC40LTYuNiA0NC42IDcuOWMzNC44IDQ5LjggOTIuNCA4Mi4zIDE1Ny42IDgyLjMgMTA2IDAgMTkyLTg2IDE5Mi0xOTJTMzYyIDY0IDI1NiA2NHoiXX0sR1F0PVk4LFlRdD1ZOCxLUXQ9WTgsWlF0PVk4LHc5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjU2IDM2OGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LFhRdD13OWUsUVF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cnN0IixpY29uOls1MTIsNTEyLFtdLCJlNGRjIiwiTTM3LjYgNC4yQzI4LTIuMyAxNS4yLTEuMSA3IDdTLTIuMyAyOCA0LjIgMzcuNmwxMTIgMTYzLjMtOTkuNiAzMi4zQzYuNyAyMzYuNCAwIDI0NS42IDAgMjU2czYuNyAxOS42IDE2LjYgMjIuOGwxMDMuMSAzMy40LTUyLjkgMTAwLjZjLTQuOSA5LjMtMy4yIDIwLjcgNC4zIDI4LjFzMTguOCA5LjIgMjguMSA0LjNsMTAwLjYtNTIuOSAzMy40IDEwMy4xYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNnMxOS42LTYuNyAyMi44LTE2LjZsMzMuNC0xMDMuMSAxMDAuNiA1Mi45YzkuMyA0LjkgMjAuNyAzLjIgMjguMS00LjNzOS4yLTE4LjggNC4zLTI4LjFsLTUyLjktMTAwLjYgMTAzLjEtMzMuNGM5LjktMy4yIDE2LjYtMTIuNCAxNi42LTIyLjhzLTYuNy0xOS42LTE2LjYtMjIuOGwtMTA2LjUtMzQuNSAyNS43LTcwLjRjMy4yLTguOCAxLTE4LjYtNS42LTI1LjJzLTE2LjQtOC44LTI1LjItNS42bC03MC40IDI1LjctMzQuNS0xMDYuNUMyNzUuNiA2LjcgMjY2LjQgMCAyNTYgMHMtMTkuNiA2LjctMjIuOCAxNi42TDIwMC45IDExNi4yIDM3LjYgNC4yeiJdfSxKUXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieiIsaWNvbjpbMzg0LDUxMixbMTIyXSwiNWEiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzMjAgMGMxMi40IDAgMjMuNyA3LjIgMjkgMTguNHMzLjYgMjQuNS00LjQgMzQuMUwxMDAuMyA0MTYgMzUyIDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTEyLjQgMC0yMy43LTcuMi0yOS0xOC40cy0zLjYtMjQuNSA0LjQtMzQuMUwyODMuNyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxNOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuZGFnZSIsaWNvbjpbNTc2LDUxMixbMTI5NjU3LCJiYW5kLWFpZCJdLCJmNDYyIiwiTTQ2NCA0MTZsNDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtNDggMCAwIDMyMHpNNDE2IDk2bC0yNTYgMCAwIDMyMCAyNTYgMCAwLTMyMHpNNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ4IDAgMC0zMjAtNDggMHpNMjE2IDIwOGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMTYgMzA0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LGVKdD1NOWUsdEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NiIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LGFKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMtc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZTgxZCIsIk00ODAgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNS42IDBjLTEzLjIgMzcuMy00OC42IDY0LTkwLjQgNjRzLTc3LjMtMjYuNy05MC40LTY0bC0xMzkuMSAwYy0xMy4yIDM3LjMtNDguNyA2NC05MC40IDY0cy03Ny4yLTI2LjctOTAuNC02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDgwIDB6TTE2MCAzNjhhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0zMjAgMGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6bTAtMzA0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTI0OCAyMjRsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTA0IDAgMCAxNjB6TTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwIDAtMTYwLTEwNCAweiJdfSxySnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVncyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMCIsIk00NDcuNSAxNzQuNmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43YzI2LjcgMTMuNSA0Ni4zIDM5LjEgNTEuNCA2OS42bDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMMjk2IDQzMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtMzItMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNS4zIDBjNS4xLTMwLjUgMjQuNy01Ni4xIDUxLjQtNjkuNmwtMjIuOS0yNi43Yy04LjYtMTAuMS03LjUtMjUuMiAyLjYtMzMuOHMyNS4yLTcuNSAzMy44IDIuNmwyOS44IDM0LjggMjkuOC0zNC44IDEuNy0xLjh6bS0yNTYtMTkyYzguOC04LjQgMjIuNy04LjkgMzIuMi0uOHMxMSAyMS45IDQuMSAzMS45bC0xLjUgMS45LTIzIDI2LjdDMjMwIDU1LjkgMjQ5LjUgODEuNSAyNTQuNyAxMTJsMjUuMyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgMzIgMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjUuMyAwYy03LjYgNDUuNC00Ny4xIDgwLTk0LjcgODBzLTg3LTM0LjYtOTQuNy04MEw0MCAyNDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwQzcwLjUgODEuNSA5MCA1NS45IDExNi43IDQyLjRMOTMuOCAxNS42Qzg1LjIgNS42IDg2LjMtOS42IDk2LjQtMTguMnMyNS4yLTcuNSAzMy44IDIuNmwyOS44IDM0LjggMjkuOC0zNC44IDEuNy0xLjh6Il19LGs5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWVyLW11Zy1lbXB0eSIsaWNvbjpbNTc2LDUxMixbImJlZXIiXSwiZjBmYyIsIk02NCA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGwyODggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMDguMmMwIDI0LjItMTMuNyA0Ni40LTM1LjQgNTcuMkw0NDggMzcxLjggNDQ4IDM4NGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw2NCA4MHpNNDQ4IDMwMC4ybDY0LTMyIDAtMTA4LjItNjQgMCAwIDE0MC4yek0xOTIgMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6bTg4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHptODggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4eiJdfSxzSnQ9azllLGlKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTNlIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LG9KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFwbGVyIixpY29uOls2NDAsNTEyLFtdLCJlNWFmIiwiTTY0MCAyOTkuM0w2NDAgNDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDY0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMCAwLTQ4LTM1MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExNi42LTMwLjItNS40Yy0xOS42LTMuNS0zMy44LTIwLjUtMzMuOC00MC40IDAtOC45IDIuOS0xNy41IDguMi0yNC42bDM1LjYtNDcuNWMzMi44LTQzLjggODQuNC02OS42IDEzOS4xLTY5LjYgMjcgMCA1My42IDYuMyA3Ny44IDE4LjRMNTg2LjkgMjEzLjVDNjE5LjUgMjI5LjcgNjQwIDI2MyA2NDAgMjk5LjN6TTQ0OCAzMDRsMC0xNi0zMjAtNTcuMSAwIDczLjEgMzIwIDB6Il19LG5KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMSIsIk0zMDkuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzUwLjggMjcyIDY0IDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5NiAwYy0yMS4yLTI5LjUtMzQuMy02NS4zLTM1LjktMTA0TDI3MiA0MDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgMjAgMGMzNC45LTQ4LjUgOTEuNy04MCAxNTYtODAgMTAuNyAwIDIxLjEgLjkgMzEuMyAyLjVMMzA5LjggOC42ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sbEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5haXJhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUxZjYiLCJNMTIyLjYgNDYuM2MtNy44LTExLjctMjIuNC0xNy0zNS45LTEyLjlTNjQgNDkuOSA2NCA2NGwwIDE5Mi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NCA4OS41IDAgMTA3LjggMTYxLjhjNy44IDExLjcgMjIuNCAxNyAzNS45IDEyLjlTMzg0IDQ2Mi4xIDM4NCA0NDhsMC0xNDQgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE5Mi01Ny41IDAtMTM5LjgtMjA5Ljd6TTI5NC41IDMwNGwyNS41IDAgMCAzOC4zLTI1LjUtMzguM3pNMTg1LjUgMjU2bC01Ny41IDAgMC04Ni4zIDU3LjUgODYuM3oiXX0sbXRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpZmkiLGljb246WzU3Niw1MTIsWyJ3aWZpLTMiLCJ3aWZpLXN0cm9uZyJdLCJmMWViIiwiTTI4OCA5NmMtOTAuOSAwLTE3My4yIDM2LTIzMy43IDk0LjYtMTIuNyAxMi4zLTMzIDEyLTQ1LjItLjdzLTEyLTMzIC43LTQ1LjJDODEuNyA3NC45IDE3OS45IDMyIDI4OCAzMlM0OTQuMyA3NC45IDU2Ni4zIDE0NC43YzEyLjcgMTIuMyAxMyAzMi42IC43IDQ1LjJzLTMyLjYgMTMtNDUuMiAuN0M0NjEuMiAxMzIgMzc4LjkgOTYgMjg4IDk2ek0yNDAgNDMyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAzMjYuMmMtMTEuNyAxMy4zLTMxLjkgMTQuNS00NS4yIDIuOHMtMTQuNS0zMS45LTIuOC00NS4yQzE2MSAyMzcuNCAyMjEuMSAyMDggMjg4IDIwOHMxMjcgMjkuNCAxNjggNzUuOGMxMS43IDEzLjMgMTAuNCAzMy41LTIuOCA0NS4ycy0zMy41IDEwLjQtNDUuMi0yLjhDMzc4LjYgMjkyLjkgMzM1LjggMjcyIDI4OCAyNzJzLTkwLjYgMjAuOS0xMjAgNTQuMnoiXX0sY0p0PW10ZSxkSnQ9bXRlLGR2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWNoZWNrLWRvbGxhciIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWNoZWNrLWFsdCJdLCJmNTNkIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek0yOTYgMjg4bDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptLTI0LTg4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTE0OCAxNDRjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdDOTQuNSAyNjggNzYgMjQ2LjEgNzYgMjIwLjUgNzYgMTkxLjcgOTkuMiAxNjguMyAxMjggMTY4bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LHVKdD1kdixTOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWxvdy12aXNpb24iLGljb246WzU3Niw1MTIsWyJsb3ctdmlzaW9uIl0sImYyYTgiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0yMDQuNSAxMzguN2MyMy41LTE2LjggNTIuNC0yNi43IDgzLjUtMjYuNyA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDMxLjEtOS45IDU5LjktMjYuNyA4My41bC0zNC43LTM0LjdjMTIuNy0yMS40IDE3LTQ3LjcgMTAuMS03My43LTEzLjctNTEuMi02Ni40LTgxLjYtMTE3LjYtNjcuOS04LjYgMi4zLTE2LjcgNS43LTI0IDEwbC0zNC43LTM0Ljd6TTg4IDE1Ny45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDMyOC4yIDQ2NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMODggMTU3Ljl6TTQ1LjcgMjUxLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMTgxLjkgNDU1LjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ1LjcgMjUxLjN6Il19LHBKdD1TOWUsejllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1hcnJvdy11cCIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS11cCJdLCJmMGFhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xNy0zNzdsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzktMzkgMCAxNTAuMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE1MC4xLTM5IDM5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDgwLTgwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxmSnQ9ejllLGhKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1lcmEtcmV0cm8iLGljb246WzUxMiw1MTIsWzEyODI0N10sImYwODMiLCJNMCA0MTZsMC0yMDggMTM2LjIgMGMxMy41LTIwLjIgMzItMzYuOCA1My43LTQ4TDAgMTYwIDAgMTI1LjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsLjEgMEM2NS4zIDQ1LjEgNzkuMSAzMiA5NiAzMmwzMiAwYzE2LjkgMCAzMC43IDEzLjEgMzEuOSAyOS43bDMyLjEgMCA1MS4yLTIzLjhjOC40LTMuOSAxNy42LTYgMjYuOS02TDQ0OCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0LTE5MCAwYzIxLjcgMTEuMiA0MC4yIDI3LjggNTMuNyA0OGwxMzYuMiAwIDAgMjA4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI1NiAxOTJhOTYuMSA5Ni4xIDAgMSAwIDAgMTkyLjEgOTYuMSA5Ni4xIDAgMSAwIDAtMTkyLjF6Il19LG1KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXBzdWxlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjQ2YiIsIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyem0tNjQgMGwwIDI4OGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtMTA1LjggMTE2LjMgMTY5LjVjMzUuNSA1MS43IDEwNS4zIDY0LjMgMTU2IDI4LjFzNjMtMTA3LjUgMjcuNS0xNTkuMkw0MjcuMyAxNDUuM2MtMzUuNS01MS43LTEwNS4zLTY0LjMtMTU2LTI4LjEtNS42IDQtMTAuNyA4LjQtMTUuMyAxMy4xbDAtMTguM0MyNTYgNTAuMSAyMDUuOSAwIDE0NCAwUzMyIDUwLjEgMzIgMTEyek0yOTYuNiAyNDAuMmMtMTYtMjMuMy0xMC01NS4zIDExLjktNzEgMjEuMi0xNS4xIDUwLjUtMTAuMyA2NiAxMi4ybDY3IDk3LjYtNzkuOSA1NS45LTY1LTk0Ljh6Il19LGdKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb28iLGljb246WzUxMiw1MTIsWzEyODE2OV0sImYyZmUiLCJNMjY4LjkgLjljLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS40YzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjEgMCA0NC4xLTM1LjcgNzkuOS03OS44IDgwTDE2MCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMTkuMSA4LjQgMzYuMyAyMS43IDQ4TDEwNCAyNDBjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMjMuMiAxMSA0My44IDI4IDU3LTM0LjEgNS43LTYwIDM1LjMtNjAgNzEgMCAzOS44IDMyLjIgNzIgNzIgNzJsMzY4IDBjMzkuOCAwIDcyLTMyLjIgNzItNzIgMC0zNS43LTI1LjktNjUuMy02MC03MSAxNy0xMy4yIDI4LTMzLjggMjgtNTcgMC0zOS44LTMyLjItNzItNzItNzJsLTEzLjcgMGMxMy4zLTExLjcgMjEuNy0yOC45IDIxLjctNDggMC0zNS4zLTI4LjctNjQtNjQtNjRsLTUuNSAwYzMuNS0xMCA1LjUtMjAuOCA1LjUtMzIgMC00OC42LTM2LjItODguOC04My4xLTk1LjF6TTE5MiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02NCAxMDguM2MwIDIuNC0uNyA0LjgtMi4yIDYuNy04LjIgMTAuNS0zOS41IDQ1LTkzLjggNDVzLTg1LjYtMzQuNi05My44LTQ1Yy0xLjUtMS45LTIuMi00LjMtMi4yLTYuNyAwLTYuOCA1LjUtMTIuMyAxMi4zLTEyLjNsMTY3LjQgMGM2LjggMCAxMi4zIDUuNSAxMi4zIDEyLjN6Il19LEM5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUiLGljb246WzUxMiw1MTIsWzEyODI2NSwidm9sdW1lLW1lZGl1bSJdLCJmNmE4IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek00NDEuMSAxMDdjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM0NDMuMyAxNzAuNyA0NjQgMjEwLjkgNDY0IDI1NnMtMjAuNyA4NS4zLTUzLjIgMTExLjhjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVjNDMuMi0zNS4yIDcwLjktODguOSA3MC45LTE0OXMtMjcuNy0xMTMuOC03MC45LTE0OXptLTYwLjUgNzQuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM2MS4xIDIyNy42IDM2OCAyNDEgMzY4IDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQwMi4xIDMxMi45IDQxNiAyODYuMSA0MTYgMjU2cy0xMy45LTU2LjktMzUuNS03NC41eiJdfSxiSnQ9QzllLHZKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGV2YXRvciIsaWNvbjpbNTEyLDUxMixbXSwiZTE2ZCIsIk0yOTIuNy00LjdsNjQgNjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNjQtNjRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFM0MzguNS0zMiA0MzItMzJMMzA0LTMyYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjR6bS0xNjAtMjIuNmwtNjQgNjRjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRTNzMuNSA2NCA4MCA2NGwxMjggMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtNjQtNjRjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHptOTYgOTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek04MCA0MDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0xOTIgMGMwLTI2LjUgMjEuNS00OCA0OC00OGw2NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6bTMyLTEyOGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSx4SnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFnIixpY29uOls1MTIsNTEyLFsxMjc5OTFdLCJmMDJiIiwiTTMyLjUgOTZsMCAxNDkuNWMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2wxOTIgMTkyYzI1IDI1IDY1LjUgMjUgOTAuNSAwTDQ4My4yIDMzMy4zYzI1LTI1IDI1LTY1LjUgMC05MC41bC0xOTItMTkyQzI3OS4yIDM4LjcgMjYzIDMyIDI0NiAzMkw5Ni41IDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NHptMTEyIDE2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0seUp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLW1pbnVzIixpY29uOls1NzYsNTEyLFtdLCJlNGVkIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnoiXX0sXzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvd24tbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctYWx0LWRvd24iXSwiZjMwOSIsIk0xMzcuNCA1MzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMC45IDM1MiAyODggMzUybC02NCAwIDAtMzM2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMzNi02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy4yIDM5Ny41IDkuNCA0MDYuNmwxMjggMTI4eiJdfSx3SnQ9XzllLE1KdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYWN0LWRpc2MiLGljb246WzUxMiw1MTIsWzEyODE5MSwxMjgxOTIsMTI4NDQwXSwiZjUxZiIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYgMzJhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tOTYtMzJhOTYgOTYgMCAxIDAgMTkyIDAgOTYgOTYgMCAxIDAgLTE5MiAwem0tNTYtMTZjMC0zMi40IDE2LjMtNjYuNiA0Mi44LTkzLjJTMjA3LjYgMTA0IDI0MCAxMDRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTQ3LjkgMC05My43IDIzLjUtMTI3LjEgNTYuOVM1NiAxOTIuMSA1NiAyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHoiXX0sa0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1aXRjYXNlLXJvbGxpbmciLGljb246WzM4NCw1MTIsW10sImY1YzEiLCJNMTQ0IDI0YzAtNC40IDMuNi04IDgtOGw4MCAwYzQuNCAwIDggMy42IDggOGwwIDcyLTk2IDAgMC03MnpNMzIwIDk2bC0zMiAwIDAtNzJjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTgwIDBDMTIxLjEtMzIgOTYtNi45IDk2IDI0bDAgNzItMzIgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwxMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xMjAgMjA4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxUOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1xdXJhbiIsaWNvbjpbNDQ4LDUxMixbInF1cmFuIl0sImY2ODciLCJNNjQgNTEybDI4OCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0zMjBjMC01My00My05Ni05Ni05Nkw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDMzNmMwIDIwLjkgMTMuNCAzOC43IDMyIDQ1LjNMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDB6TTM1MiAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwIDAtNjQgMjU2IDB6TTI3My4xIDE0NC40YzIuNS02LjEgMTEuMi02LjEgMTMuNyAwbDEwLjMgMjQuOCAyNi44IDIuMWM2LjYgLjUgOS4yIDguNyA0LjIgMTNMMzA3LjggMjAxLjkgMzE0IDIyOGMxLjUgNi40LTUuNSAxMS41LTExLjEgOC4xbC0yMi45LTE0LTIyLjkgMTRjLTUuNiAzLjQtMTIuNi0xLjYtMTEuMS04LjFsNi4yLTI2LjEtMjAuNC0xNy41Yy01LTQuMy0yLjMtMTIuNSA0LjItMTNsMjYuOC0yLjEgMTAuMy0yNC44ek0xMDAgMTkyYzAtNjguNSA1NS41LTEyNCAxMjQtMTI0IDIzLjggMCA0Ni4xIDYuNyA2NSAxOC40IDQuOCAyLjkgNi45IDguOCA1IDE0LjFzLTcuMSA4LjYtMTIuNyA4Yy0zLjEtLjMtNi4yLS41LTkuNC0uNS00Ni40IDAtODQgMzcuNi04NCA4NHMzNy42IDg0IDg0IDg0YzMuMiAwIDYuMy0uMiA5LjQtLjUgNS42LS42IDEwLjggMi43IDEyLjcgOHMtLjMgMTEuMi01IDE0LjFjLTE4LjkgMTEuNy00MS4yIDE4LjQtNjUgMTguNC02OC41IDAtMTI0LTU1LjUtMTI0LTEyNHoiXX0sU0p0PVQ5ZSx6SnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYzZGQiLCJNNTM1LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDQxIDUzNy4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE0MS41IDM2OC42Qzg5LjIgMzEwLjUgNTEuNiAyMzguOCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjVjMTkuNy01LjQgNDAuMyA0LjcgNDguMSAyMy41bDQwLjUgOTcuM2M2LjkgMTYuNSAyLjEgMzUuNi0xMS44IDQ3bC00NC4xIDM2LjFjMTIuOSAyOC41IDI5LjYgNTQuOCA0OS41IDc4LjVMNTM1LTI0Ljl6bS0xNTAuNCA1MzRjLTYzLTEzLjQtMTIxLjMtMzkuOC0xNzEuNy03Ni4zTDI5Ny44IDM0OGMxMi4yIDguMiAyNSAxNS42IDM4LjMgMjIuMkwzNzQuNyAzMjNjMTEuMy0xMy45IDMwLjQtMTguNiA0Ny0xMS44TDUxOSAzNTEuOGMxOC44IDcuOCAyOC45IDI4LjQgMjMuNSA0OC4xbC0xLjUgNS41Yy0xNy42IDY0LjYtODAuMiAxMTkuOC0xNTYuNCAxMDMuN3oiXX0sQ0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTY0IiwiTTI4OCAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS41IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDljMzUuMi0zOS45IDg2LjctNjUgMTQ0LTY1IDkgMCAxNy44IC42IDI2LjUgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sX0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3AtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhNSIsIk0yMS41IDE4MS4xTDc4LjMgNjcuNEM4OS4yIDQ1LjcgMTExLjMgMzIgMTM1LjYgMzJsMzA0LjkgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw1NS42IDExMS4xYy04LjItMS42LTE2LjYtMi41LTI1LjItMi41LTUzLjcgMC05OS43IDMzLjEtMTE4LjcgODBsLTU3LjMgMCAwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTc2LjFjLTI2LjgtMS45LTQ4LTI0LjMtNDgtNTEuNiAwLTggMS45LTE2IDUuNS0yMy4yek0xMjggMjU2bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTItMTYwIDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sTDllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImltYWdlLXBvcnRyYWl0IixpY29uOlszODQsNTEyLFsicG9ydHJhaXQiXSwiZjNlMCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTgwIDM2OGMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHpNMTkyIDI0OGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0sVEp0PUw5ZSxMSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0Y2MiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwIDAgMzIuMmMxMy44IC42IDI3LjIgMi44IDQwIDYuNGwwIDUwLjdjLTE0LjgtNi0zMS05LjMtNDgtOS4zLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4bDAgMjQuNGMtLjQgLjMtLjcgLjYtMS4xIDEtMTcuMy0yNS00Ni4yLTQxLjMtNzguOS00MS4zLTUzIDAtOTYgNDMtOTYgOTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NGMwLTM4LjgtMjYuNC03Mi42LTY0LTgybDAtMTEyIDQwIDAgMC02NC04IDBDMTQuMyA5NiAwIDgxLjcgMCA2NHptNDI0IDY4LjZsMC0zNi42LTgwIDAgMCA2NCAxOC44IDBjMTguMi0xMi44IDM4LjktMjIuMiA2MS4yLTI3LjR6TTIxNiA5NmwwIDY0IDgwIDAgMC02NC04MCAwem0tNDggMGwtODAgMCAwIDY0IDgwIDAgMC02NHpNNDk2IDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sJEp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbW1lciIsaWNvbjpbNjQwLDUxMixbMTI4Mjk2XSwiZjZlMyIsIk0yNDYuOSAxOC4zTDI3MSAzLjhjMjEuNi0xMyA0Ni4zLTE5LjggNzEuNS0xOS44IDM2LjggMCA3Mi4yIDE0LjYgOTguMiA0MC43bDYzLjkgNjMuOWMxNSAxNSAyMy40IDM1LjQgMjMuNCA1Ni42bDAgMzAuOSAxOS43IDE5LjcgMCAwYzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwczE1LjYgNDAuOSAwIDU2LjZsLTY0IDY0Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNkw0NjQgMjQwIDQzMy4xIDI0MGMtMjEuMiAwLTQxLjYtOC40LTU2LjYtMjMuNGwtNDkuMS00OS4xYy0xNS0xNS0yMy40LTM1LjQtMjMuNC01Ni42bDAtMTIuN2MwLTExLjItNS45LTIxLjctMTUuNS0yNy40bC00MS42LTI1Yy0xMC40LTYuMi0xMC40LTIxLjIgMC0yNy40ek01MC43IDQwMi43bDIyMi4xLTIyMi4xIDkwLjUgOTAuNS0yMjIuMSAyMjIuMWMtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41eiJdfSwkOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtMS05IixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwIl0sImYxNjMiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek00MTguNyAzOGMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2ek0zNjUuMSA0MzAuNmMtOS42IDE0LjgtNS40IDM0LjYgOS40IDQ0LjNzMzQuNiA1LjQgNDQuMy05LjRsNDIuMS02NC45YzEyLjQtMTkuMiAxOS4xLTQxLjYgMTkuMS02NC41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMzYuMSAyMy45IDY2LjcgNTYuOCA3Ni42bC0xMS43IDE4ek0zNzYgMzM2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LERKdD0kOWUsQUp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWtuaWdodCIsaWNvbjpbMzg0LDUxMixbOTgyMl0sImY0NDEiLCJNMTkyLTMyYzEwNiAwIDE5MiA4NiAxOTIgMTkybDAgMTMzLjVjMCAxNy02LjggMzMuMi0xOC43IDQ1LjJMMzIwIDM4NCAzNzAuOCA0MzQuN2M4LjUgOC41IDEzLjIgMjAgMTMuMiAzMiAwIDI1LTIwLjMgNDUuMi00NS4yIDQ1LjNMNDUuMyA1MTJjLTI1IDAtNDUuMi0yMC4zLTQ1LjItNDUuMyAwLTEyIDQuOC0yMy41IDEzLjItMzJMNjQgMzg0IDY0IDM0OS40YzAtMTguNyA4LjItMzYuNCAyMi4zLTQ4LjZsODkuNy03Ni44LTQ4IDAtMTIuMSAxMi4xYy0xMi43IDEyLjctMzAgMTkuOS00OCAxOS45LTM3LjUgMC02Ny45LTMwLjQtNjcuOS02Ny45bDAtOC43YzAtMjIuOCA4LjItNDQuOSAyMy4xLTYyLjNMOTYgMzIgOTYgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwek0xNjAgNzJhMjQgMjQgMCAxIDAgMCA0OCAyNCAyNCAwIDEgMCAwLTQ4eiJdfSxQSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxvb2Qtd2F0ZXItY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls2NDAsNTEyLFtdLCJlNTBmIiwiTTI4OC41IDExMmExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek0xNDEuMiA0NC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDU2IDU2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC01NiA1NmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwyOC43LTI4LjctODkuNCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDg5LjQgMC0yOC43LTI4LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42ek0zMzYuNSAxMTJjMCA3MS4xLTM4LjYgMTMzLjEtOTYgMTY2LjNsMCAxMi44YzIyLjEgNC41IDQzLjQgMTMuOSA2Mi40IDI4LjIgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDYuOSA1LjIgMTIuOCA5IDE4IDExLjcgLjYgLjMgMS4yIC42IDEuOCAxIDQuMiAyLjMgOC41IDQuNiAxMi42IDEuNSA2LTQuNSAxMi42LTggMTkuMy0xMC40bDAtMTE1LjIgNC41IDBjMTUuMiAwIDI3LjUtMTIuMyAyNy41LTI3LjUgMC03LjktMy40LTE1LjUtOS40LTIwLjdMNDQ0LjUgMTAuNUM0MzYuOCAzLjcgNDI2LjggMCA0MTYuNSAwcy0yMC4zIDMuNy0yOCAxMC41TDMyOS45IDYxLjhjNC4zIDE2IDYuNiAzMi44IDYuNiA1MC4yem0zMiA4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6TTQ3NS4xIDQxMi4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM1MyOTAgMzkxLjggMjY2IDM3My43Yy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43cy01LjkgMjUuNiA0LjcgMzMuNmMxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDk2YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM1MyOTAgNDg3LjggMjY2IDQ2OS43Yy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43cy01LjkgMjUuNiA0LjcgMzMuNmMxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LHV2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXJpZ2h0LWZyb20tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZXh0ZXJuYWwtbGluayJdLCJmMDhlIiwiTTMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDgyLjcgMC0yMDEuNCAyMDEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0NDggMTA5LjMgNDQ4IDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyMCAwek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZMMCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNkw4MCA0NDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsODAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA5NnoiXX0sRUp0PXV2LElKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXVwLWFjcm9zcy1saW5lIixpY29uOls1MTIsNTEyLFtdLCJlNGFmIiwiTTI2NS40IDEwNS40bDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC00MS40LTQxLjQgMCAxMTQuNyA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMCAwIDExNC43IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDQwMi43IDk2IDI4OCAzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIwIDAgMC0xMTQuNy00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zek00MTYgMzM2bDAgMTQ0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQ0IDY0IDB6TTk2IDE3Nkw5NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTQ0LTY0IDB6Il19LEQ5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTE2LCJncmluLWJlYW0iXSwiZjU4MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxOSnQ9RDllLEE5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUtYWQiLGljb246WzUxMiw1MTIsWyJhZCJdLCJmNjQxIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek00MTYgMTg0bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0LTcuMSAwLTEzLjUtMy4xLTE3LjktOC0xMC4yIDUuMS0yMS44IDgtMzQuMSA4LTQyIDAtNzYtMzQtNzYtNzZzMzQtNzYgNzYtNzZjOS45IDAgMTkuMyAxLjkgMjggNS4zbDAtMjEuM2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em0tNDggOTJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMTYwIDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIgNDggMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMHptMzIgOTZsLTQ4IDAgMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwNGMwLTM1LjMgMjguNy02NCA2NC02NGwxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjR6Il19LFJKdD1BOWUsUDllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stdGFuYWtoIixpY29uOls0NDgsNTEyLFsidGFuYWtoIl0sImY4MjciLCJNMzUyIDUxMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC02Ni43QzEzLjQgMzc0LjcgMCAzNTYuOSAwIDMzNkwwIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZ6bTMyLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMCAwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0xMTMuOSAyMjljLTEuMiAyLTEuOSA0LjItMS45IDYuNiAwIDYuOSA1LjYgMTIuNSAxMi41IDEyLjVsNTYuOSAwIDMwLjUgNDkuMmMyLjYgNC4yIDcuMiA2LjggMTIuMiA2LjhzOS42LTIuNiAxMi4yLTYuOGwzMC41LTQ5LjIgNTYuOSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTIuMy0uNi00LjYtMS45LTYuNmwtMjcuOC00NSAyNy44LTQ1YzEuMi0yIDEuOS00LjIgMS45LTYuNiAwLTYuOS01LjYtMTIuNS0xMi41LTEyLjVsLTU2LjkgMC0zMC41LTQ5LjJDMjMzLjYgNjYuNiAyMjkgNjQgMjI0IDY0cy05LjYgMi42LTEyLjIgNi44bC0zMC41IDQ5LjItNTYuOSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCAyLjMgLjYgNC42IDEuOSA2LjZsMjcuOCA0NS0yNy44IDQ1eiJdfSxPSnQ9UDllLEU5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3QtdHViLXBlcnNvbiIsaWNvbjpbNDQ4LDUxMixbImhvdC10dWIiXSwiZjU5MyIsIk0yNDAgNDBjMCAxMy42IDUuOCAyNi41IDE1LjggMzUuNmwyNi41IDIzLjhjMjQgMjEuNiAzNy43IDUyLjMgMzcuNyA4NC42IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTguNy03LjktMzYuNC0yMS44LTQ4LjlsLTI2LjUtMjMuOEMyMDMuNSA5My4xIDE5MiA2Ny4yIDE5MiA0MCAxOTIgMjYuNyAyMDIuNyAxNiAyMTYgMTZzMjQgMTAuNyAyNCAyNHpNMCAzMzZsMC04MGMwLTM1LjMgMjguNy02NCA2NC02NGwxOS43IDBjOC4xIDAgMTYuMiAxLjYgMjMuOCA0LjZsMTM3LjEgNTQuOGM3LjYgMyAxNS42IDQuNiAyMy44IDQuNkwzODQgMjU2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMzZ6bTk2LTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTUyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwem0xMDQtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zMjggMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMy42IDUuOCAyNi41IDE1LjggMzUuNmwyNi41IDIzLjhjMjQgMjEuNiAzNy43IDUyLjMgMzcuNyA4NC42IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTguNy03LjktMzYuNC0yMS44LTQ4LjlsLTI2LjUtMjMuOEMzMTUuNSA5My4xIDMwNCA2Ny4yIDMwNCA0MCAzMDQgMjYuNyAzMTQuNyAxNiAzMjggMTZ6TTY0IDQwYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxGSnQ9RTllLEJKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWhhbGYtZGFzaGVkIixpY29uOlszODQsNTEyLFtdLCJlNjk4IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjU2IDM4NCAwIDAtMTQ5LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTAgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6TTY0IDUxMmwwLTY0LTY0IDBjMCAzNS4zIDI4LjcgNjQgNjQgNjR6bTMyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsLTY0IDAgMCA2NHptNjQtMTYwbC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxJOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib3V0ZGVudCIsaWNvbjpbNDQ4LDUxMixbImRlZGVudCJdLCJmMDNiIiwiTS40IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMEMxNC44IDk2IC40IDgxLjcgLjQgNjR6bTE5MiAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgOTZsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyek0uNCA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNLjcgMjY4LjZjLTguMi02LjQtOC4yLTE4LjkgMC0yNS4zbDEwMS45LTc5LjNjMTAuNS04LjIgMjUuOC0uNyAyNS44IDEyLjZsMCAxNTguNmMwIDEzLjMtMTUuMyAyMC44LTI1LjggMTIuNkwuNyAyNjguNnoiXX0sSEp0PUk5ZSxxSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wZWFjZSIsaWNvbjpbNDQ4LDUxMixbOTk5Nl0sImYyNWIiLCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMDgtNjQgMCAwLTIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTYxLjMgNTEuMkwxNDMuOSAyNDAgNzQuMSAyNDAgMi43IDc2LjhDLTQuNCA2MC42IDMgNDEuOCAxOS4yIDM0LjdTNTQuMiAzNSA2MS4zIDUxLjJ6bTI3IDIyMS4zbC0uMi0uNSA5NS45IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNTYgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlMNjkuNSA0NTMuNUM0NS41IDQyOS41IDMyIDM5Ni45IDMyIDM2M2wwLTI3YzAtMzIuNyAyNC42LTU5LjcgNTYuMy02My41eiJdfSxWSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLXZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDY0IiwiTTMyOS43IDQ0OGMtNS4xIDAtOS43IDMuNy05LjcgOC44bDAgNy4yYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02My42YzAtMTIuNi01LjEtMjQuNS0xMy4xLTM0LjItMzEuOC0zOC43LTUwLjktODguMi01MC45LTE0Mi4yIDAtMTIzLjcgMTAwLjMtMjI0IDIyNC0yMjQgMTEyLjcgMCAyMDYgODMuMyAyMjEuNyAxOTEuNyAuNCAzIDEuNyA1LjkgMy42IDguM2wzNS44IDQyLjljNyA4LjQgMTAuOSAxOS4xIDEwLjkgMzAuMSAwIDI1LjktMjEgNDctNDcgNDdsLTEgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTM4LjMgMHpNMjI0IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDIyLjktMjcuNyAzNC40LTQzLjkgMTguMi05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzE2LjIgMTYuMiA0LjcgNDMuOS0xOC4yIDQzLjktMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGMyMi45IDAgMzQuNCAyNy43IDE4LjIgNDMuOS05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBjMTYuMi0xNi4yIDQzLjktNC43IDQzLjkgMTguMiAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMjIuOSAyNy43LTM0LjQgNDMuOS0xOC4yIDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtMTYuMi0xNi4yLTQuNy00My45IDE4LjItNDMuOSAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtMjIuOSAwLTM0LjQtMjcuNy0xOC4yLTQzLjkgOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMTYuMiAxNi4yLTQzLjkgNC43LTQzLjktMTguMiAwLTEzLjMtMTAuNy0yNC0yNC0yNHptLTMyIDg4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sakp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhc3MiLGljb246WzUxMiw1MTIsWzEyOTUxN10sImYxNGUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTUwLjctMTg2LjlMMTYyLjQgMzgwLjZjLTE5LjQgNy41LTM4LjUtMTEuNi0zMS0zMWw1NS41LTE0NC4zYzMuMy04LjUgOS45LTE1LjEgMTguNC0xOC40bDE0NC4zLTU1LjVjMTkuNC03LjUgMzguNSAxMS42IDMxIDMxTDMyNS4xIDMwNi43Yy0zLjIgOC41LTkuOSAxNS4xLTE4LjQgMTguNHpNMjg4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxVSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLW5pYiIsaWNvbjpbNTEyLDUxMixbMTAwMDFdLCJmNWFkIiwiTTM2OC41IDE4LjNsLTUwLjEgNTAuMSAxMjUuMyAxMjUuMyA1MC4xLTUwLjFjMjEuOS0yMS45IDIxLjktNTcuMyAwLTc5LjJMNDQ3LjcgMTguM2MtMjEuOS0yMS45LTU3LjMtMjEuOS03OS4yIDB6TTI3OS4zIDk3LjJsLS41IC4xLTE0NC4xIDQzLjJjLTE5LjkgNi0zNS43IDIxLjItNDIuMyA0MUwzLjggNDQ1LjhjLTIuOSA4LjctMS45IDE4LjIgMi41IDI2TDE2MS43IDMxNi40Yy0xLjEtNC0xLjYtOC4xLTEuNi0xMi40IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OGMtNC4zIDAtOC41LS42LTEyLjQtMS42TDQwLjMgNTA1LjdjNy44IDQuNCAxNy4yIDUuNCAyNiAyLjVsMjY0LjMtODguNmMxOS43LTYuNiAzNS0yMi40IDQxLTQyLjNsNDMuMi0xNDQuMSAuMS0uNS0xMzUuNS0xMzUuNXoiXX0sV0p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3dzLWRvd24iLGljb246WzUxMiw1MTIsW10sImU1ODEiLCJNMTg1LjUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MnptMjQ4IDcybDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHpNNjAuMyAyOTIuNkwzNy4xIDQ3NmMtMi40IDE5LjEgMTIuNSAzNiAzMS43IDM2bDE1NC41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTcuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOWw2OC4yIDEzNi41YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNzEuOSAwYzE5LjMgMCAzNC4yLTE2LjkgMzEuNy0zNkw0NTIuNyAyOTIuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMjcxLjkgMTY5LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMNzUuNCAyNjkuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zeiJdfSxOOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZC1mYXN0IixpY29uOls1MTIsNTEyLFs5MTk3LCJmYXN0LWZvcndhcmQiXSwiZjA1MCIsIk0xOS44IDQ3Ny42YzEyIDUgMjUuNyAyLjIgMzQuOS02LjlMMjI0IDMwMS4zIDIyNCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOUw0NDggMzAxLjMgNDQ4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQ2LjctMTY5LjQtMTY5LjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzIyNCA1MS4xIDIyNCA2NEwyMjQgMjEwLjcgNTQuNiA0MS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMwIDUxLjEgMCA2NEwwIDQ0OGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42eiJdfSxHSnQ9TjllLFlKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9wIixpY29uOls1MTIsNTEyLFtdLCJmMTI1IiwiTTQ0OCAxMDkuM2w1NC42LTU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMNDAyLjcgNjQgMTc2IDY0IDE3NiAxMjggMzM4LjcgMTI4IDEyOCAzMzguNyAxMjggMzJjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgMTQuMyA2NCAzMmwwIDMyLTMyIDBDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjA4IDAgMC02NC0xNjIuNyAwIDIxMC43LTIxMC43IDAgMzA2LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yNzQuN3oiXX0sUjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoaXNrZXktZ2xhc3MiLGljb246WzQ0OCw1MTIsWzEyOTM0NywiZ2xhc3Mtd2hpc2tleSJdLCJmN2EwIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCAzNTJjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMTkyIDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJ6TTY0IDI1NmwwLTE2MCAzMjAgMCAwIDE2MC0zMjAgMHoiXX0sS0p0PVI5ZSxaSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlIixpY29uOls0NDgsNTEyLFs5NjMyLDk3MjMsOTcyNCw2MTU5MF0sImYwYzgiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyeiJdfSxPOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluIixpY29uOls1MTIsNTEyLFsxMjg1MTIsImdyaW4iXSwiZjU4MCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWEp0PU85ZSxRSnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jb250cmFjdCIsaWNvbjpbMzg0LDUxMixbXSwiZjU2YyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNODggNjRDNzQuNyA2NCA2NCA3NC43IDY0IDg4czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem03MC4zIDE2MGMtMTEuMyAwLTIxLjkgNS4xLTI4LjkgMTMuOUw2OS4zIDQwOWMtOC4zIDEwLjMtNi42IDI1LjUgMy43IDMzLjdzMjUuNSA2LjYgMzMuNy0zLjhsNDcuMS01OC44IDE1LjIgNTAuN2MzIDEwLjIgMTIuNCAxNy4xIDIzIDE3LjFsMTA0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg2LjEgMC0xNi4xLTUzLjZjLTQuNy0xNS43LTE5LjEtMjYuNC0zNS41LTI2LjR6Il19LEpKdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS11cCIsaWNvbjpbMzg0LDUxMixbODk2M10sImYxMDYiLCJNMTY5LjQgMTM3LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMjA1LjMgNTQuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MHoiXX0sRjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGVlYT1GOWUsdGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcmVzcy1idXJzdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NCIsIk0yMDggNDAuMWMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTggMTQ0LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTkyLjUgMTQxLjRsMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNjYuNiAyNTEuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwek02Ni42IDIuN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwxMDAuNSAyLjdDOTEuMS02LjcgNzYtNi43IDY2LjYgMi43ek0zNTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTI0Ni4yIDM4NGwyNS44IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAzMiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMjUuOCAwYzEwLjkgMCAxOC42LTEwLjcgMTUuMi0yMS4xbC00My0xMjkgNDguMyA2NS4xYzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzQzNCAxMzIgMzk0LjMgMTEyIDM1MiAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0OC4zLTY1LjEtNDMgMTI5Yy0zLjUgMTAuNCA0LjMgMjEuMSAxNS4yIDIxLjF6Il19LGFlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaXZpZGUiLGljb246WzQ0OCw1MTIsWzEwMTM1LDI0N10sImY1MjkiLCJNMjI0IDQ4YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xNjggNDA4YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHoiXX0scmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtZm9yayIsaWNvbjpbNDQ4LDUxMixbXSwiZTEzYiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMzIgMCAwIDcwLjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtNzAuNy0zMiAwQzk4LjEgMjg4IDQ4IDIzNy45IDQ4IDE3NmwwLTIyLjdDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMDggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0yNDggNDMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHNlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbGFnIixpY29uOls2NDAsNTEyLFtdLCJlNTBkIiwiTTQ3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDI4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjgzLjUgNTkuMWwxMDAuNSA5Ni45IDAgMzU2LTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE0NC0xOS45IDBjLTE1LjUgMC0yOC4xLTEyLjYtMjguMS0yOC4xIDAtNy42IDMuMS0xNC45IDguNi0yMC4yTDIyOC41IDU5LjFDMjM1LjkgNTIgMjQ1LjcgNDggMjU2IDQ4czIwLjEgNCAyNy41IDExLjF6TTIzMiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxLOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jb2x1bW5zIixpY29uOls1MTIsNTEyLFsiYmFuayIsImluc3RpdHV0aW9uIiwibXVzZXVtIiwidW5pdmVyc2l0eSJdLCJmMTljIiwiTTI3MS45IDIwLjJjLTkuOC01LjYtMjEuOS01LjYtMzEuOCAwbC0yMjQgMTI4Yy0xMi42IDcuMi0xOC44IDIyLTE1LjEgMzZTMTcuNSAyMDggMzIgMjA4bDMyIDAgMCAyMDggMCAwLTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42bC01MS4yLTM4LjQgMC0yMDggMzIgMGMxNC41IDAgMjcuMi05LjggMzAuOS0yMy44cy0yLjUtMjguOC0xNS4xLTM2bC0yMjQtMTI4ek00MDAgMjA4bDAgMjA4LTY0IDAgMC0yMDggNjQgMHptLTExMiAwbDAgMjA4LTY0IDAgMC0yMDggNjQgMHptLTExMiAwbDAgMjA4LTY0IDAgMC0yMDggNjQgMHpNMjU2IDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0saWVhPUs4LG9lYT1LOCxuZWE9SzgsbGVhPUs4LGNlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWciLGljb246WzU3Niw1MTIsW10sImU1NjkiLCJNMjQgNjRsNTYgMCAwIDM4NC01NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQwLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMzItOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQwLTggMEMxMC43IDExMiAwIDEwMS4zIDAgODhTMTAuNyA2NCAyNCA2NHptMTA0IDBsMzIwIDAgMCAzODQtMzIwIDAgMC0zODR6TTU3NiA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgNDAgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDMyIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgNDAgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwIDAtMzg0IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6Il19LGRlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLW1lcmdlIixpY29uOls0NDgsNTEyLFtdLCJmMzg3IiwiTTgwIDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMzIuNCA5Ny4yYzI4LTEyLjQgNDcuNi00MC41IDQ3LjYtNzMuMiAwLTQ0LjItMzUuOC04MC04MC04MFMwIDM1LjggMCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgMjA1LjNDMTkuNyAzNzEgMCAzOTkuMiAwIDQzMiAwIDQ3Ni4yIDM1LjggNTEyIDgwIDUxMnM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNsMC04Ni42YzI2LjcgMjAuMSA2MCAzMiA5NiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OCA0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGMtMzIuOCAwLTYxIDE5LjctNzMuMyA0OEwyMDggMjQwYy00OS45IDAtOTEtMzguMS05NS42LTg2Ljh6TTgwIDQwOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTM0NCAyNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sdWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLXRzdW5hbWkiLGljb246WzY0MCw1MTIsW10sImU1MTUiLCJNMjg4IDE2QzE1NS41IDE2IDQ4IDEyMy41IDQ4IDI1NlMxNTUuNSA0OTYgMjg4IDQ5NmM3LjQgMCAxOS43LTIuMyAzMy43LTcuMyAxMy44LTQuOSAyNy4xLTExLjcgMzYuNy0xOC45IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNS40IDExLjYgMzUuMyAyMS4xIDU1IDI0LjQgMTkuNSAzLjMgMzcgLjQgNTEuMS0xMC4yIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjcuMyAyMC41LTU5LjIgMjQtODcuOSAxOS4yLTI4LjUtNC44LTU1LjQtMTgtNzUuOS0zMy40LTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTE0LjUgMTAuOS0zMi40IDE5LjctNDkuNSAyNS44LTE2LjggNi0zNC45IDEwLjEtNDkuOSAxMC4xbC0uMSAwQzEyOC45IDU0My45IDAgNDE1IDAgMjU2IDAgOTYuOSAxMjguOS0zMiAyODgtMzIgMzAxLjMtMzIgMzEyLTIxLjMgMzEyLThzLTEwLjcgMjQtMjQgMjR6bTQ0LjggMTY2LjRsOTYtNzJjMTEuNC04LjUgMjcuMS04LjUgMzguNSAwbDk1LjUgNzJjOCA2IDEyLjcgMTUuNSAxMi43IDI1LjVsLjMgMTIxLjVjLTIuMiAxLjMtNC4zIDIuNi02LjQgNC4yLTQuMyAzLjEtOC43IC44LTEzLjItMS41bC0xLjItLjYtLjctLjNjLTUuNC0yLjctMTEuNy02LjYtMTguOS0xMS43LTI5LjUtMjEuMS02NC4zLTMxLjYtOTkuMS0zMS40LTM0LjEgLjItNjguMSAxMC43LTk3IDMxLjQtNy44IDUuNi0xMy44IDkuMy0xOS4zIDExLjJMMzIwIDIwOGMwLTEwLjEgNC43LTE5LjYgMTIuOC0yNS42em01NC42IDIyOS43Yy0xNC41IDEwLjktMzIuNCAxOS43LTQ5LjUgMjUuOC0xNi44IDYtMzQuOSAxMC4xLTQ5LjkgMTAuMS0xMDYgMC0xOTItODYtMTkyLTE5MlMxODIgNjQgMjg4IDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NHM2NC41IDE0NCAxNDQgMTQ0YzcuNCAwIDE5LjctMi4zIDMzLjctNy4zIDEzLjgtNC45IDI3LjEtMTEuNyAzNi43LTE4LjkgMzguNC0yOSA5MC41LTI5IDEyOSAwIDE1LjQgMTEuNiAzNS4zIDIxLjEgNTUgMjQuNCAxOS41IDMuMyAzNyAuNCA1MS4xLTEwLjIgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNy4zIDIwLjUtNTkuMiAyNC04Ny45IDE5LjItMjguNS00LjgtNTUuNC0xOC03NS45LTMzLjQtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LHBlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWNoYXJ0IixpY29uOls1MTIsNTEyLFtdLCJlNTIyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHptLTMxMiA4bDAgNjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MC05NmwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MCA2NGwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC05NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sZmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVtYnJlbGxhIixpY29uOls1MTIsNTEyLFtdLCJmMGU5IiwiTTI1Ni0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDJjMTI2LjMgMTUuNyAyMjQgMTIzLjUgMjI0IDI1NCAwIDMuOC0uMSA3LjUtLjIgMTEuMy0uMyA2LjktNSAxMi44LTExLjcgMTQuN3MtMTMuOC0uNy0xNy42LTYuNWMtMTQuNC0yMS40LTM4LjgtMzUuNS02Ni41LTM1LjUtMjkuMyAwLTU0LjkgMTUuNy02OC45IDM5LjMtMi43IDQuNi03LjYgNy42LTEzIDcuOHMtMTAuNS0yLjItMTMuNy02LjVjLTE0LjYtMTkuOC0zOC0zMi42LTY0LjUtMzIuNnMtNDkuOSAxMi44LTY0LjUgMzIuNmMtMy4yIDQuMy04LjMgNi44LTEzLjcgNi41cy0xMC4yLTMuMi0xMy03LjhjLTE0LTIzLjYtMzkuNi0zOS4zLTY4LjktMzkuMy0yNy43IDAtNTIuMSAxNC4xLTY2LjUgMzUuNS0zLjkgNS43LTExIDguNC0xNy42IDYuNVMuNSAyNzQuMiAuMiAyNjcuM0MuMSAyNjMuNSAwIDI1OS44IDAgMjU2IDAgMTI1LjUgOTcuNyAxNy43IDIyNCAybDAtMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIgMzYwbDAgMTAyLjZjMCA0NS0zNi41IDgxLjQtODEuNCA4MS40LTMwLjggMC01OS0xNy40LTcyLjgtNDVsLTIuMy00LjdjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlzMzUtMS41IDQyLjkgMTQuM2wyLjMgNC43YzMgNS45IDkgOS42IDE1LjYgOS42IDkuNiAwIDE3LjQtNy44IDE3LjQtMTcuNEwyMjQgMzI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LGhlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaWxsLXJvY2tzbGlkZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUwOCIsIk0yNTIuNCAxMDMuOGwyNyA0OGMyLjggNSA4LjIgOC4yIDEzLjkgOC4ybDUzLjMgMGM1LjggMCAxMS4xLTMuMSAxMy45LTguMmwyNy00OGMyLjctNC45IDIuNy0xMC44IDAtMTUuN2wtMjctNDhjLTIuOC01LTguMi04LjItMTMuOS04LjJsLTUzLjMgMGMtNS44IDAtMTEuMSAzLjEtMTMuOSA4LjJsLTI3IDQ4Yy0yLjcgNC45LTIuNyAxMC44IDAgMTUuN3pNNjguMyA4N0M0My4xIDYxLjggMCA3OS43IDAgMTE1LjNMMCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBsMzE2LjcgMGMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM0w2OC4zIDg3ek01MDQuMiA0MDMuNmM0LjkgMi43IDEwLjggMi43IDE1LjcgMGw0OC0yN2M1LTIuOCA4LjItOC4yIDguMi0xMy45bDAtNTMuM2MwLTUuOC0zLjEtMTEuMS04LjItMTMuOWwtNDgtMjdjLTQuOS0yLjctMTAuOC0yLjctMTUuNyAwbC00OCAyN2MtNSAyLjgtOC4yIDguMi04LjIgMTMuOWwwIDUzLjNjMCA1LjggMy4xIDExLjEgOC4yIDEzLjlsNDggMjd6TTE5MiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zODQgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sbWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItc2VjcmV0IixpY29uOls0NDgsNTEyLFsxMjgzNzNdLCJmMjFiIiwiTTE3MS0xNmMtMzYuNCAwLTU3LjggNTguMy02OC4zIDExMkw3MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMzJjMCAxNyAzLjMgMzMuMiA5LjMgNDhsLTkuMyAwIDAgMC0yMC41IDBjLTE1LjIgMC0yNy41IDEyLjMtMjcuNSAyNy41IDAgMyAuNSA1LjkgMS40IDguN2wyOC45IDg2LjZDNDAuMiAzNzkuNiAxNiA0MjguMSAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtNTQuMi0yNC4yLTEwMi43LTYyLjMtMTM1LjRsMjguOS04Ni42Yy45LTIuOCAxLjQtNS43IDEuNC04LjcgMC0xNS4yLTEyLjMtMjcuNS0yNy41LTI3LjVsLTIwLjUgMCAwIDAtOS4zIDBjNi0xNC44IDkuMy0zMSA5LjMtNDhsMC0zMiAyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMC43IDBjLTEwLjQtNTMuNy0zMS45LTExMi02OC4zLTExMi05LjYgMC0xOSAzLjktMjcuNSA4LjItOC4yIDQuMS0xOC40IDcuOC0yNS41IDcuOHMtMTcuMy0zLjctMjUuNS03LjhDMTkwLTEyLjEgMTgwLjYtMTYgMTcxLTE2em05My43IDQ4NC40bC0yNC44LTcwLjkgMjcuOS0zMi41YzIuNy0zLjIgNC4yLTcuMiA0LjItMTEuNCAwLTkuNy03LjgtMTcuNS0xNy41LTE3LjVsLTYxIDBjLTkuNyAwLTE3LjUgNy44LTE3LjUgMTcuNSAwIDQuMiAxLjUgOC4yIDQuMiAxMS40bDI3LjkgMzIuNS0yNC44IDcwLjktNTctMTgwLjQgMzUuNyAwYzE4LjQgMTAuMiAzOS41IDE2IDYyIDE2czQzLjYtNS44IDYyLTE2bDM1LjcgMC01NyAxODAuNHpNMjI0IDI1NmMtMzQuNyAwLTY0LjItMjIuMS03NS4zLTUzIDUuNyAzLjIgMTIuMyA1IDE5LjMgNWwxMi40IDBjMTYuNSAwIDMxLjEtMTAuNiAzNi4zLTI2LjIgMi4zLTcgMTIuMi03IDE0LjUgMCA1LjIgMTUuNiAxOS45IDI2LjIgMzYuMyAyNi4ybDEyLjQgMGM3IDAgMTMuNi0xLjggMTkuMy01LTExLjEgMzAuOS00MC42IDUzLTc1LjMgNTN6Il19LGdlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWdlciIsaWNvbjpbNTEyLDUxMixbMTI4MjIzXSwiZjgxNSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODggMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTEyOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LGJlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmllZmNhc2UiLGljb246WzUxMiw1MTIsWzEyODE4OF0sImYwYjEiLCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwLTgwIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwbDAgOTYgNTEyIDAgMC05NmMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNTEyIDMwNGwtMTkyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi0xOTIgMCAwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTExMnoiXX0sdmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3dlbC1icmlja3MiLGljb246WzUxMiw1MTIsW10sImU1OGEiLCJNMjI0IDMyYzAtMTEuNS02LjItMjIuMi0xNi4yLTI3LjhzLTIyLjMtNS41LTMyLjIgLjRsLTE2MCA5NkM1LjkgMTA2LjMgMCAxMTYuOCAwIDEyOHM1LjkgMjEuNyAxNS41IDI3LjRsMTYwIDk2YzkuOSA1LjkgMjIuMiA2LjEgMzIuMiAuNFMyMjQgMjM1LjUgMjI0IDIyNGwwLTY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNTYgMCAwLTY0em05NiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDB6TTAgNDE2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMjI0LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTI1NiAweiJdfSx4ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ja3MiLGljb246WzUxMiw1MTIsWzEyOTUxMF0sImY2OTYiLCJNMjUyLjggMEwxNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNiAxMTIgMCAwLTE2YzAtMTcuNSA0LjctMzMuOSAxMi44LTQ4ek0xMjggMTEybDAgMTI4YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4Yy0yNC4yIDE4LjEtMzguNCA0Ni42LTM4LjQgNzYuOCAwIDUzIDQzIDk2IDk2IDk2IDE1LjQgMCAzMC41LTMuNyA0NC0xMC43LTE3LjYtMjMuOS0yOC01My40LTI4LTg1LjMgMC00NS4zIDIxLjMtODggNTcuNi0xMTUuMmw2NC00OGM0LTMgNi40LTcuOCA2LjQtMTIuOGwwLTEyOC0xMTIgMHptMTYwIDBsMCAxMjhjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhjLTI0LjIgMTguMS0zOC40IDQ2LjYtMzguNCA3Ni44IDAgNTMgNDMgOTYgOTYgOTYgMjAuOCAwIDQxLTYuNyA1Ny42LTE5LjJsMTE1LjItODYuNEM0NjEgMzgyLjIgNDgwIDM0NC4zIDQ4MCAzMDRsMC0xOTItMTkyIDB6TTQ4MCA2NGwwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDMzNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDE5MiAweiJdfSx5ZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidCIsaWNvbjpbMzg0LDUxMixbMTE2XSwiNTQiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDEyOCAwIDAgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LHdlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb2NoaXAiLGljb246WzUxMiw1MTIsW10sImYyZGIiLCJNMTc2IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCA1Ni00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCA1Ni00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA1NiAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC01NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMGMwLTM1LjMtMjguNy02NC02NC02NGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAtNTYgMCAwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAtNTYgMCAwLTQwek0xNjAgMTI4bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDQ4bDAgMTYwIDE2MCAwIDAtMTYwLTE2MCAweiJdfSxCOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stbWVkaWNhbCIsaWNvbjpbNTc2LDUxMixbMTI4NjU3LCJhbWJ1bGFuY2UiXSwiZjBmOSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0xNzYgMTM2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxNZWE9QjllLGtlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvbSIsaWNvbjpbNTc2LDUxMixbMTI4MzI5XSwiZjY3OSIsIk0zODguNyA0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsMTYgMTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTE2IDE2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtMTYtMTZjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42bDE2LTE2ek0xNzYgMTYwYy0xMC44IDAtMjAuOCAzLjYtMjguOCA5LjYtMTQuMSAxMC42LTM0LjIgNy44LTQ0LjgtNi40cy03LjgtMzQuMiA2LjQtNDQuOGMxOC43LTE0LjEgNDItMjIuNCA2Ny4yLTIyLjQgNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCAxNy4yLTMuOSAzMy41LTEwLjggNDhsNDkuNyAwYzEyLjcgMCAyNC45LTUgMzMuOS0xNC4xbDIwLjctMjAuN2MxOC43LTE4LjcgNDQuMS0yOS4zIDcwLjYtMjkuMyA1NS4yIDAgOTkuOSA0NC43IDk5LjkgOTkuOWwwIDk2LjFjMCA1NS4yLTQ0LjggMTAwLTEwMCAxMDBTMzUyIDQ0My4yIDM1MiAzODhsMC00YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0YzAgMTkuOSAxNi4xIDM2IDM2IDM2czM2LTE2LjEgMzYtMzZsMC05Ni4xYzAtMTkuOC0xNi4xLTM1LjktMzUuOS0zNS45LTkuNSAwLTE4LjYgMy44LTI1LjQgMTAuNWwtMjAuNyAyMC43Yy0yMSAyMS00OS40IDMyLjgtNzkuMSAzMi44bC0yNi44IDBjMTIuNiAxOS42IDE5LjkgNDIuOCAxOS45IDY4IDAgNzUuMi02NSAxMzItMTQwIDEzMlM0MCA0NjMuMiA0MCAzODhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDM1LjMgMzEuNyA2OCA3NiA2OHM3Ni0zMi43IDc2LTY4LTMxLjctNjgtNzYtNjhsLTIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OHpNMzM3LjEgNjAuMWMtMTEtMTMuOC0zMS4xLTE2LjItNDUtNS4ycy0xNi4yIDMxLjEtNS4yIDQ1QzMxMi42IDEzMi4yIDM1NC40IDE1MiA0MDAgMTUyczg3LjQtMTkuOCAxMTMuMS01Mi4xYzExLTEzLjggOC43LTM0LTUuMi00NXMtMzQtOC43LTQ1IDUuMkM0NTAuMyA3NiA0MjcuNSA4OCA0MDAgODhzLTUwLjMtMTItNjIuOS0yNy45eiJdfSxTZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVpdG8tbmV0IixpY29uOls2NDAsNTEyLFtdLCJlNTJjIiwiTTU3NiAzNTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNiAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgNDggMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDE2LS4xIDIuNUM1OTguNiA1NjYuNiA1ODguNCA1NzYgNTc2IDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi00OCAwIDAgMTYtLjEgMi41QzUwMi42IDU2Ni42IDQ5Mi40IDU3NiA0ODAgNTc2cy0yMi42LTkuNC0yMy45LTIxLjVsLS4xLTIuNSAwLTE2LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTQ4LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiA0OCAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQyOS45IDE2LjNjNy43LTkuNCAyMS4zLTExLjUgMzEuNC00LjMgMTAuMSA3LjEgMTMuMSAyMC45IDcuNCAzMS43bC0xLjMgMi4xLTI1LjkgMzguOSAxMy4zIDUzLjRjMiA4LS4xIDE2LjMtNS4zIDIyLjNsLTIuNCAyLjQtNDQuNyAzOC4zIDEzMC41IDE0LjVjNDIuOCA0LjggNzUuMSA0MC45IDc1LjEgODMuOSAwIDMuOS0uNCA3LjctLjkgMTEuNS03LjMtMy41LTE1LjMtNS44LTIzLjgtNi43TDU3NiAzMDRjLTE4LjUgMC0zNS4zIDctNDggMTguNC0xMS05LjktMjUuMS0xNi41LTQwLjYtMTguMUw0ODAgMzA0Yy0zMC4zIDAtNTYuMSAxOC43LTY2LjggNDUuMi0xMi41IDUtMjMuMiAxMy40LTMxLjEgMjRsLTMwLjItNDAuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTYuNiAwLTMwLjItMTIuNi0zMS44LTI4LjdsLS4yLTMuMyAwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjMtMTAuMy02LjgtMTMuNy0yMC41LTguMy0zMS41bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjctMzguMy0yLjQtMi40Yy01LjItNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMi0yLjFjLTUuNy0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjggLjItMy4yYzEuMS0xMC40IDcuMi0xOS40IDE1LjgtMjQuNGwwLTYwLjUgLjMtMy4yYzEuNS03LjMgOC0xMi43IDE1LjctMTIuOCA3LjcgMCAxNC4yIDUuNSAxNS43IDEyLjhsLjMgMy4yIDAgNjAuNWM4LjcgNSAxNC44IDE0IDE1LjggMjQuNGwuMiAzLjIgMCAyOC45IDUzLjQtNDUuNy0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yek01MDQgNDg4bDQ4IDAgMC00OC00OCAwIDAgNDh6Il19LHplYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlIixpY29uOlszODQsNTEyLFtdLCJmNDg1IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC02NHoiXX0sSDllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2Vycy1jb2ciXSwiZjUwOSIsIk0zMjAgMjI0YTEwNCAxMDQgMCAxIDAgMC0yMDggMTA0IDEwNCAwIDEgMCAwIDIwOHpNOTYgMjMyYTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0ek0wIDQxNmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDg2LjcgMGMtNC4zLTkuOC02LjctMjAuNi02LjctMzJsMC0xNmMwLTUzLjIgMjAtMTAxLjggNTIuOS0xMzguNi0xMS43LTMuNS0yNC4xLTUuNC0zNi45LTUuNC03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHpNNjE2IDE2MGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6TTE2MCA0MzJsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNTYuOCAwYy03LjEtMjEuNi02LjMtNDQuNCAxMC43LTY0LTE0LTE2LjItMjAuNS0zOS43LTExLjQtNjMuMyA2LjYtMTcuMSAxNS45LTMzLjEgMjcuNC00Ny4zIDUuNC02LjYgMTEuNi0xMS43IDE4LjMtMTUuNC0yMi4xLTExLjUtNDcuMi0xOC03My44LTE4LTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwem00NjQuNi00NC4xYzYuMy0zLjYgOS41LTExLjEgNi44LTE4LTQuOC0xMi40LTExLjUtMjQuMS0xOS45LTM0LjQtNC42LTUuNy0xMi43LTYuNy0xOS0zLTIxLjggMTIuNi00OC42LTIuOC00OC42LTI4LjEgMC03LjMtNC45LTEzLjgtMTIuMS0xNC45LTEyLjktMi0yNi44LTItMzkuNyAwLTcuMiAxLjEtMTIuMSA3LjYtMTIuMSAxNC45IDAgMjUuMi0yNi44IDQwLjctNDguNiAyOC4xLTYuMy0zLjYtMTQuNC0yLjYtMTkgMy04LjQgMTAuMy0xNS4xIDIyLTE5LjkgMzQuNC0yLjYgNi44IC41IDE0LjMgNi44IDE3LjkgMjEuOSAxMi42IDIxLjkgNDMuNSAwIDU2LjItNi4zIDMuNi05LjUgMTEuMS02LjggMTcuOSA0LjggMTIuNCAxMS41IDI0LjEgMTkuOSAzNC40IDQuNiA1LjcgMTIuNyA2LjcgMTkgMyAyMS44LTEyLjYgNDguNiAyLjkgNDguNiAyOC4xIDAgNy4zIDQuOSAxMy44IDEyLjEgMTQuOSAxMi45IDIgMjYuOCAyIDM5LjcgMCA3LjItMS4xIDEyLjEtNy42IDEyLjEtMTQuOSAwLTI1LjIgMjYuOC00MC43IDQ4LjYtMjguMSA2LjMgMy42IDE0LjQgMi42IDE5LTMgOC40LTEwLjMgMTUuMS0yMiAxOS45LTM0LjQgMi42LTYuOC0uNS0xNC4zLTYuOC0xNy45LTIxLjktMTIuNi0yMS45LTQzLjUgMC01Ni4yek00NzIgNDE2YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6Il19LENlYT1IOWUsX2VhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTY1IiwiTTI4OCAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS41IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDljMzUuMi0zOS45IDg2LjctNjUgMTQ0LTY1IDkgMCAxNy44IC42IDI2LjUgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sVGVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhdXNlIixpY29uOlszODQsNTEyLFs5MjA4XSwiZjA0YyIsIk00OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJ6bTIyNCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAweiJdfSxYYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFmZi1zbmFrZSIsaWNvbjpbNDQ4LDUxMixbInJvZC1hc2NsZXBpdXMiLCJyb2Qtc25ha2UiLCJzdGFmZi1hZXNjdWxhcGl1cyJdLCJlNTc5IiwiTTE5MiAzMmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiA2NCAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0xNiAwIDAtNjQgMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwIDE5MiAzMiAwYzUzIDAgOTYgNDMgOTYgOTYgMCA0Ny42LTM0LjYgODcuMS04MCA5NC43bDAtNjdjOS42LTUuNSAxNi0xNS45IDE2LTI3LjcgMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDcuNiAzNC42LTg3LjEgODAtOTQuN2wwIDY3Yy05LjYgNS41LTE2IDE1LjktMTYgMjcuNyAwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAtMTkyLTcyLjYgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMmwtMTYgMEMyMS41IDEyOCAwIDEwNi41IDAgODBTMjEuNSAzMiA0OCAzMmwxNDQgMHoiXX0sTGVhPVhiLCRlYT1YYixEZWE9WGIsQWVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpZ2d5LWJhbmsiLGljb246WzU3Niw1MTIsW10sImY0ZDMiLCJNMjg4LTMyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyek00OCAzMDRjMC03MC4xIDQ3LTEzMS40IDExNy4xLTE2NC45IDI1LjMgNDEuMyA3MC45IDY4LjkgMTIyLjkgNjguOSA1NS43IDAgMTA0LjEtMzEuNyAxMjgtNzggMTUuOC0xMS4zIDM1LjEtMTggNTYtMThsMTkuNSAwYzEwLjQgMCAxOCA5LjggMTUuNSAxOS45bC0xNy4xIDY4LjNjOS45IDEyLjQgMTguMiAyNS43IDI0LjQgMzkuOGwyMS43IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQwIDBjLTE2LjUgMjItMzguNSAzOS42LTY0IDUwLjdsMCAyOS4zYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMyAwYy0xNC4zIDAtMjYuOC05LjUtMzAuOC0yMy4ybC03LjEtMjQuOC04Mi4zIDAtNy4xIDI0LjhDMjM1LjggNTAyLjUgMjIzLjMgNTEyIDIwOSA1MTJsLTMzIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjkuM0M4Ny41IDQyNiA0OCAzNjkuNiA0OCAzMDR6bTM3NiAxNmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFBlYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb251bWVudCIsaWNvbjpbMzg0LDUxMixbXSwiZjVhNiIsIk0yMDktMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDk1IDQ3Yy00LjEgNC4xLTYuNSA5LjQtNyAxNS4xTDU4LjQgNDQ4IDQ4IDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTAuNCAwLTI5LjctMzg1LjhjLS40LTUuNy0yLjktMTEuMS03LTE1LjFMMjA5LTMzek0xMjggMjk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxxOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLXJpZ2h0IixpY29uOls0NDgsNTEyLFsxODcsImFuZ2xlLWRvdWJsZS1yaWdodCJdLCJmMTAxIiwiTTQzOS4xIDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzNzEuMiAyNTYgMjMzLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHptLTM1MiAxNjBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTc5LjIgMjU2IDQxLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6Il19LEVlYT1xOWUscHY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVza3RvcCIsaWNvbjpbNTEyLDUxMixbMTI4NDIxLDYxNzA0LCJkZXNrdG9wLWFsdCJdLCJmMzkwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTYgOTZsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sSWVhPXB2LE5lYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NTciLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSxSZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmV0d2VldCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3OSIsIk0xMTguNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE5LjEgMTYwIDMyIDE2MGwzMiAwIDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIyNCAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0ek00NTcuNCA0NzAuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM1NTYuOSAzNTIgNTQ0IDM1MmwtMzIgMCAwLTIyNGMwLTUzLTQzLTk2LTk2LTk2TDI4OCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNC0zMiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NHoiXX0sVjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZ2VhciIsaWNvbjpbNjQwLDUxMixbInVzZXItY29nIl0sImY0ZmUiLCJNMjU2LjUgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTIyNi43IDMwNGw1OS40IDAgMS41IDBjLTEyLjkgMjYuOC03LjggNTguMiAxMS41IDc5LjUtMjAuMiAyMi4zLTI0LjggNTUuOC05LjQgODMuNGwyMi41IDQwLjRjLjkgMS42IDEuOSAzLjIgMi45IDQuN2wtMjM3IDBjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zem0yMDUuOS01Ni40YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA2LjFjMCAxOC45IDI0LjEgMzIuOCA0MC41IDIzLjRsNS0yLjljMTEuNi02LjcgMjYuNS0yLjYgMzMgOS4xbDIyLjQgNDAuMmM2LjIgMTEuMiAyLjYgMjUuMi04LjIgMzJsLTQuNyAyLjljLTE2LjIgMTAuMS0xNi4yIDM5LjkgMCA1MC4xbDQuNiAyLjljMTAuOCA2LjggMTQuNSAyMC44IDguMyAzMkw2MDcgNDgzLjhjLTYuNSAxMS43LTIxLjQgMTUuOS0zMyA5LjFsLTQuOS0yLjljLTE2LjQtOS41LTQwLjUgNC41LTQwLjUgMjMuNGwwIDYuMWMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC01LjljMC0xOS0yNC4yLTMzLTQwLjctMjMuNWwtNC44IDIuOGMtMTEuNiA2LjctMjYuNCAyLjYtMzMtOS4xbC0yMi42LTQwLjRjLTYuMi0xMS4yLTIuNi0yNS4zIDguMy0zMi4xbDQuNC0yLjdjMTYuMy0xMC4xIDE2LjMtNDAuMSAwLTUwLjJsLTQuNS0yLjhjLTEwLjktNi44LTE0LjUtMjAuOS04LjMtMzIuMWwyMi41LTQwLjNjNi41LTExLjcgMjEuNC0xNS44IDMyLjktOS4xbDQuOCAyLjhjMTYuNSA5LjUgNDAuNy00LjUgNDAuNy0yMy41bDAtNS45em05OS45IDEzNi4yYTUyIDUyIDAgMSAwIC0xMDQgMCA1MiA1MiAwIDEgMCAxMDQgMHoiXX0sT2VhPVY5ZSxGZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLWFsbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0YyIsIk0zODQgOTZsMCAxMjgtMTI4IDAgMC0xMjggMTI4IDB6bTAgMTkybDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwek0xOTIgMjI0bC0xMjggMCAwLTEyOCAxMjggMCAwIDEyOHpNNjQgMjg4bDEyOCAwIDAgMTI4LTEyOCAwIDAtMTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxCZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29pbnMiLGljb246WzUxMiw1MTIsW10sImY1MWUiLCJNMTI4IDk2bDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MFM1MTIgMzUuOCA1MTIgODBsMCAxNmMwIDMwLjYtNDEuMyA1Ny4yLTEwMiA3MC43LTIuNC0yLjgtNC45LTUuNS03LjQtOC0xNS41LTE1LjMtMzUuNS0yNi45LTU2LjQtMzUuNS00MS45LTE3LjUtOTYuNS0yNy4xLTE1NC4yLTI3LjEtMjEuOSAwLTQzLjMgMS40LTYzLjggNC4xLS4yLTEuMy0uMi0yLjctLjItNC4xek00MzIgMzUzbDAtNDYuMmMxNS4xLTMuOSAyOS4zLTguNSA0Mi4yLTEzLjkgMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjRjMCAyNi44LTMxLjUgNTAuNS04MCA2NXptMC05NmwwLTMzYzAtNC41LS40LTguOC0xLTEzIDE1LjUtMy45IDMwLTguNiA0My4yLTE0LjJzMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjRjMCAyNi44LTMxLjUgNTAuNS04MCA2NXpNMCAyNDBsMC0xNmMwLTQ0LjIgODYtODAgMTkyLTgwczE5MiAzNS44IDE5MiA4MGwwIDE2YzAgNDQuMi04NiA4MC0xOTIgODBTMCAyODQuMiAwIDI0MHptMzg0IDk2YzAgNDQuMi04NiA4MC0xOTIgODBTMCAzODAuMiAwIDMzNmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjR6bTAgODAuNmwwIDE1LjRjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDQ3Ni4yIDAgNDMybDAtMTUuNGMxMS42IDguMSAyNC41IDE0LjcgMzcuOCAyMC4zIDQxLjkgMTcuNSA5Ni41IDI3LjEgMTU0LjIgMjcuMXMxMTIuMy05LjcgMTU0LjItMjcuMWMxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zeiJdfSxIZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UiLGljb246WzU3Niw1MTIsWzk4OTRdLCJmMjI5IiwiTTQxNi0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MC43IDAtNTguNyA1OC43LTE3LjQtMTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTcuNCAxNy40LTIzIDIzYy0yOC40LTE5LjUtNjIuNy0zMS05OS44LTMxLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDIzLTIzIDE3LjQgMTcuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDQ1My4zIDEzNiA1MTIgNzcuMyA1MTIgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNTc2IDBjMC0xNy43LTE0LjMtMzItMzItMzJMNDE2LTMyek0xMjggMzA0YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6Il19LGo5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2UtYW5nbGUiLGljb246WzU3Niw1MTIsWyJoYW5kcy1oZWxwaW5nIl0sImY0YzQiLCJNMjY4LjkgNTMuMkwxNTIuMyAxODIuOGMtNC42IDUuMS00LjQgMTMgLjUgMTcuOSAzMC41IDMwLjUgODAgMzAuNSAxMTAuNSAwbDMxLjgtMzEuOGM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNDQgNTc2IDI4OCA1NzYgMCA0NjQgNjQgNDQwLjIgNDguMUM0MjQuNCAzNy42IDQwNS45IDMyIDM4Ni45IDMybC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMXpNMTE2LjYgMTUwLjdMMjIzLjQgMzIgMTgzLjggMzJjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xTDAgMTkyIDAgNTQ0IDE0NCA0MDggMTU2LjQgNDE4LjNjMjMgMTkuMiA1MiAyOS43IDgxLjkgMjkuN2wxNS43IDAtNy03Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDEgNDEgOSAwYzE5LjEgMCAzNy44LTQuMyA1NC44LTEyLjNMMzU5IDQwOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMyIDMyIDE3LjUtMTcuNWM4LjktOC45IDExLjUtMjEuOCA3LjYtMzMuMWwtMTM3LjktMTM2LjgtMTQuOSAxNC45Yy00OS4zIDQ5LjMtMTI5LjEgNDkuMy0xNzguNCAwLTIzLTIzLTIzLjktNTkuOS0yLjItODR6Il19LHFlYT1qOWUsVmVhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24iLGljb246WzM4NCw1MTIsWzg1OTVdLCJmMDYzIiwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDQwMi43IDIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM3MC43LTEwNS40LTEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiJdfSxVOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tZG90IixpY29uOlszODQsNTEyLFsibWFwLW1hcmtlci1hbHQiXSwiZjNjNSIsIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwUzM4NCA4NC40IDM4NCAxODguNmMwIDExOS4zLTEyMC4yIDI2Mi4zLTE3MC40IDMxNi44LTExLjggMTIuOC0zMS41IDEyLjgtNDMuMyAwLTUwLjItNTQuNS0xNzAuNC0xOTcuNS0xNzAuNC0zMTYuOHpNMTkyIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0samVhPVU5ZSxVZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NWQiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyMjhhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDEgMCAwIDQwem0wLTE4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sV2VhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZS1iaXRlIixpY29uOls1MTIsNTEyLFtdLCJmNTY0IiwiTTI1Ny41IDI3LjZjLS44LTUuNC00LjktOS44LTEwLjMtMTAuNi0yMi4xLTMuMS00NC42IC45LTY0LjQgMTEuNGwtNzQgMzkuNUM4OS4xIDc4LjQgNzMuMiA5NC45IDYzLjQgMTE1TDI2LjcgMTkwLjZjLTkuOCAyMC4xLTEzIDQyLjktOS4xIDY0LjlsMTQuNSA4Mi44YzMuOSAyMi4xIDE0LjYgNDIuMyAzMC43IDU3LjlsNjAuMyA1OC40YzE2LjEgMTUuNiAzNi42IDI1LjYgNTguNyAyOC43bDgzIDExLjdjMjIuMSAzLjEgNDQuNi0uOSA2NC40LTExLjRsNzQtMzkuNWMxOS43LTEwLjUgMzUuNi0yNyA0NS40LTQ3LjJsMzYuNy03NS41YzkuOC0yMC4xIDEzLTQyLjkgOS4xLTY0LjktLjktNS4zLTUuMy05LjMtMTAuNi0xMC4xLTUxLjUtOC4yLTkyLjgtNDcuMS0xMDQuNS05Ny40LTEuOC03LjYtOC0xMy40LTE1LjctMTQuNi01NC42LTguNy05Ny43LTUyLTEwNi4yLTEwNi44ek0yMDggMTQ0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTQ0IDMzNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0yMjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxXOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NyZXdkcml2ZXItd3JlbmNoIixpY29uOls1NzYsNTEyLFsidG9vbHMiXSwiZjdkOSIsIk03MC44LTYuN2M1LjQtNS40IDEzLjgtNi4yIDIwLjItMkwyMDkuOSA3MC41YzguOSA1LjkgMTQuMiAxNS45IDE0LjIgMjYuNmwwIDQ5LjYgOTAuOCA5MC44YzMzLjMtMTUgNzMuOS04LjkgMTAxLjIgMTguNUw1NDIuMiAzODIuMWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOWwtNjAuMSA2MC4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMEwyODguMSAzODRjLTI3LjQtMjcuNC0zMy41LTY3LjktMTguNS0xMDEuMmwtOTAuOC05MC44LTQ5LjYgMGMtMTAuNyAwLTIwLjctNS4zLTI2LjYtMTQuMkwyMy40IDU4LjljLTQuMi02LjMtMy40LTE0LjggMi0yMC4yTDcwLjgtNi43em0xNDUgMzAzLjVjLTYuMyAzNi45IDIuMyA3NS45IDI2LjIgMTA3LjJsLTk0LjkgOTVjLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHMtMjguMS03My43IDAtMTAxLjhsMTM1LjQtMTM1LjUgMzUuMiAzNS4xek0zODQuMSAwYzIwLjEgMCAzOS40IDMuNyA1Ny4xIDEwLjUgMTAgMy44IDExLjggMTYuNSA0LjMgMjQuMUwzODguOCA5MS4zYy0zIDMtNC43IDcuMS00LjcgMTEuM2wwIDQxLjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDU2LjctNTYuN2M3LjYtNy41IDIwLjMtNS43IDI0LjEgNC4zIDYuOCAxNy43IDEwLjUgMzcgMTAuNSA1Ny4xIDAgNDMuMi0xNy4yIDgyLjMtNDUgMTExLjFsLTQ5LjEtNDkuMWMtMzMuMS0zMy03OC41LTQ1LjctMTIxLjEtMzguNGwtNTYuOC01Ni44IDAtMjkuNy0uMi01Yy0uOC0xMi40LTQuNC0yNC4zLTEwLjUtMzQuOSAyOS40LTM1IDczLjQtNTcuMiAxMjIuNy01Ny4zeiJdfSxHZWE9VzllLFllYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmRlbnQiLGljb246WzQ0OCw1MTIsW10sImYwM2MiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0xOTIgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMCA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTI3LjggMjY4LjZMMjUuOCAzNDcuOUMxNS4zIDM1Ni4xIDAgMzQ4LjYgMCAzMzUuM0wwIDE3Ni43YzAtMTMuMyAxNS4zLTIwLjggMjUuOC0xMi42bDEwMS45IDc5LjNjOC4yIDYuNCA4LjIgMTguOSAwIDI1LjN6Il19LEc5ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJzIixpY29uOls0NDgsNTEyLFsibmF2aWNvbiJdLCJmMGM5IiwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNMCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6Il19LEtlYT1HOWUsWTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLXByYXlpbmciLGljb246WzY0MCw1MTIsWyJwcmF5aW5nLWhhbmRzIl0sImY2ODQiLCJNMjI0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMi42IDg4LjItMTE5LjdjMTMuMS0xNy44IDkuMy00Mi44LTguNS01NS45cy00Mi44LTkuMy01NS45IDguNUwxMDYuNSAxNDIuOUM4OS4zIDE2Ni4yIDgwIDE5NC41IDgwIDIyMy42bDAgMTEwLjctNTguMSAxOS40QzguOCAzNTggMCAzNzAuMiAwIDM4NGwwIDk2YzAgMTAgNC43IDE5LjUgMTIuNyAyNS41czE4LjQgOCAyOC4xIDUuMmwxNTQuNC00NC4xYzU1LTE1LjcgOTIuOC02NS45IDkyLjgtMTIzLjFMMjg4IDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDcyem0xOTIgMGwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTE5LjZjMCA1Ny4yIDM3LjkgMTA3LjQgOTIuOCAxMjMuMWwxNTQuNCA0NC4xYzkuNyAyLjggMjAgLjggMjguMS01LjJTNjQwIDQ5MCA2NDAgNDgwbDAtOTZjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTU4LjEtMTkuNCAwLTExMC43YzAtMjktOS4zLTU3LjMtMjYuNS04MC43TDQ0MC4yIDE2LjNDNDI3LjEtMS41IDQwMi4xLTUuMyAzODQuMyA3LjhzLTIxLjYgMzguMS04LjUgNTUuOUw0NjQgMTgzLjQgNDY0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sWmVhPVk5ZSxYZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXNlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTA3NiIsIk0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDMwLjUgMzYuOSA0NS44IDU4LjUgMjQuMiAxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy0yMS42IDIxLjYtNi4zIDU4LjUgMjQuMiA1OC41IDE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyYy0zMC41IDAtNDUuOCAzNi45LTI0LjIgNTguNSAxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGMtMjEuNi0yMS42LTU4LjUtNi4zLTU4LjUgMjQuMiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTMwLjUtMzYuOS00NS44LTU4LjUtMjQuMi0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0M3Ny44IDI2MC45IDYyLjUgMjI0IDMyIDIyNCAxNC4zIDIyNCAwIDIwOS43IDAgMTkyczE0LjMtMzIgMzItMzJjMzAuNSAwIDQ1LjgtMzYuOSAyNC4yLTU4LjUtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEMxMjMuMSA3Ny44IDE2MCA2Mi41IDE2MCAzMiAxNjAgMTQuMyAxNzQuMyAwIDE5MiAwek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTI4IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI0OCA0MGMwIDIyLjkgMjcuNyAzNC40IDQzLjkgMTguMiA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTE2LjIgMTYuMi00LjcgNDMuOSAxOC4yIDQzLjkgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjkgMC0zNC40IDI3LjctMTguMiA0My45IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTE2LjItMTYuMi00My45LTQuNy00My45IDE4LjIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yMi45LTI3LjctMzQuNC00My45LTE4LjItOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMxNi4yLTE2LjIgNC43LTQzLjktMTguMi00My45LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjIuOSAwIDM0LjQtMjcuNyAxOC4yLTQzLjktOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2LjIgMTYuMiA0My45IDQuNyA0My45LTE4LjIgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNTA0IDM4NGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxRZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sLWZsYWciLGljb246WzU3Niw1MTIsW10sImU1NmUiLCJNMjU2LThjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNzIgMCAwIDE5LjIgMTI4IDc2LjggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI4LTc2LjggMC05MS4yek0yNDAgMzg0bDAgODAgOTYgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek0xMTIgNDE2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgNDE2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0tMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxKZWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhZGVtYXJrIixpY29uOls2NDAsNTEyLFs4NDgyXSwiZjI1YyIsIk0zNDYuNiAxMTAuMmMtNy44LTExLjctMjIuNC0xNy0zNS45LTEyLjlTMjg4IDExMy45IDI4OCAxMjhsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE1MC4zIDY5LjQgMTA0LjFjNS45IDguOSAxNS45IDE0LjIgMjYuNiAxNC4yczIwLjctNS4zIDI2LjYtMTQuMkw1NDQgMjMzLjcgNTQ0IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTQuMS05LjItMjYuNS0yMi43LTMwLjZzLTI4LjEgMS4xLTM1LjkgMTIuOUw0NDggMjYyLjMgMzQ2LjYgMTEwLjJ6TTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOHMxNC4zIDMyIDMyIDMybDY0IDAgMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDk2eiJdfSxldGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1idXJuZXIiLGljb246WzUxMiw1MTIsW10sImU0ZjEiLCJNMjgxLjcgNDguM0wyOTQgMzQuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4xIDI2LjIgODguMSAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMiA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41czEzLjQgMy4yIDE4LjggNy41YzE0LjQgMTEuNCAzOC45IDQwLjcgMzguOSA0MC43ek0zMjAgMjQwLjJjMC0zNi41LTM3LTczLTU0LjgtODguNC01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuOCA1MS45LTU0LjggODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek05Mi44IDMyMGMzNy43IDQ4LjMgOTYuMSA4MCAxNjMuMiA4MCA2Ni41IDAgMTI1LjEtMzEuNyAxNjMtODBsNDUgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTI2LjUgMjEuNS00OCA0OC00OGw0NC44IDB6TTQ1NiA0MDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sSzllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc21pbGUtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTIyLCJzbWlsZS1iZWFtIl0sImY1YjgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHR0YT1LOWUsYXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZiIsIk0tLjUgMTEzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw3Mi03MmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDMxMC4xIDAgNTQuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDAtLjEgMC0yNjIgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03Mi03MnpNMzcuMSA0NzZMNjAuMyAyOTIuNmMxLjItOS43IDYuOC0xOC4zIDE1LjEtMjMuM0wyMzguOCAxNzBjMTAuMi02LjIgMjIuOS02LjIgMzMuMS0uMWwxNjUuNSA5OS40YzguNCA1IDE0IDEzLjcgMTUuMyAyMy40TDQ3NS45IDQ3NmMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZsLTcxLjkgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN0wyNzUuNCAzNTcuOWMtMS44LTMuNi01LjUtNS45LTkuNS01LjktNS45IDAtMTAuNiA0LjctMTAuNiAxMC42bDAgMTE3LjRjMCAxNy43LTE0LjMgMzItMzIgMzJMNjguOCA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnoiXX0scnRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdXRlIixpY29uOls1MTIsNTEyLFtdLCJmNGQ3IiwiTTUxMiA5NmMwIDUwLjItNTkuMSAxMjUuMS04NC42IDE1NS0zLjggNC40LTkuNCA2LjEtMTQuNSA1TDMyMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMjc2LjQgMGM4LjctOS45IDE5LjMtMjIuNiAzMC0zNi44IDYuMy04LjQgMTIuOC0xNy42IDE5LTI3LjJMNDE2IDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NmwzOS44IDBjLTIxLTMxLjUtMzkuOC02Ny43LTM5LjgtOTYgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnpNMTE3LjEgNDg5LjFjLTMuOCA0LjMtNy4yIDguMS0xMC4xIDExLjNsLTEuOCAyLS4yLS4yYy02IDQuNi0xNC42IDQtMjAtMS44LTI1LjItMjcuNC04NS05Ny45LTg1LTE0OC40IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAzMC0yMS4xIDY3LTQzLjUgOTcuOS0xMC43IDE0LjctMjEuNyAyOC0zMC44IDM4LjVsLS42IC43ek0xMjggMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTQxNiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxaOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLXVwIixpY29uOlszODQsNTEyLFsiYW5nbGUtZG91YmxlLXVwIl0sImYxMDIiLCJNMjE0LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDEwOS4zIDMyOS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6bTE2MCAzNTJsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAzMDEuMyAzMjkuNCA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zeiJdfSxzdGE9WjllLGl0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWNrZXQiLGljb246WzQ0OCw1MTIsW10sImU0Y2YiLCJNNDQzLjcgMjA4YzIuNyA0LjcgNC4zIDEwLjIgNC4zIDE2IDAgMTcuNy0xNC4zIDMyLTMyIDMybC01LjEgMC0yMi40IDIxM2MtMi42IDI0LjQtMjMuMiA0My00Ny44IDQzbC0yMzMuNiAwYy0yNC42IDAtNDUuMi0xOC41LTQ3LjgtNDNMMzcuMSAyNTYgMzIgMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMiAwLTUuOCAxLjYtMTEuMyA0LjMtMTZsNDM5LjQgMHpNMjI0LTE2Yzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgMzItNDggMCAwLTMyYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzItNDggMCAwLTMyQzgwIDQ4LjUgMTQ0LjUtMTYgMjI0LTE2eiJdfSxvdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVzcy10aGFuLWVxdWFsIixpY29uOls0NDgsNTEyLFtdLCJmNTM3IiwiTTQyNi4xIDk0LjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNXMtMjMuNy0yNS44LTQwLjUtMjAuMmwtMzg0IDEyOEM4LjggMTY2IDAgMTc4LjIgMCAxOTJzOC44IDI2IDIxLjkgMzAuNGwzODQgMTI4YzE2LjggNS42IDM0LjktMy41IDQwLjUtMjAuMnMtMy41LTM0LjktMjAuMi00MC41TDEzMy4yIDE5MiA0MjYuMSA5NC40ek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2eiJdfSxudGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLWNsb3NlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTE4NSIsIk00NDggNDQ4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYgNTEyIDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjR6bTY0LTI4OEwwIDE2MCAwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNnoiXX0sbHRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi10aHJvdWdoLXdpbmRvdyIsaWNvbjpbNjQwLDUxMixbXSwiZTVhOSIsIk02NCA2NGwyMjQgMCAwIDkuOGMwIDM5LTIzLjcgNzQtNTkuOSA4OC40LTYwLjUgMjQuMi0xMDAuMSA4Mi43LTEwMC4xIDE0Ny45bDAgNzMuOC02NCAwIDAtMzIwem0yODggMGwyMjQgMCAwIDMyMC02Ny43IDAtMy43LTQuNS03NS4yLTkwLjJjLTkuMS0xMC45LTIyLjYtMTcuMy0zNi45LTE3LjNsLTcxLjEgMC00MS02My4xYy0uMy0uNS0uNi0xLTEtMS40IDQ0LjctMjkgNzIuNS03OSA3Mi41LTEzMy42bDAtOS44em03MyAzMjBsLTI2LjYgMCA0Mi43IDY0IDE1MC45IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCA0MDBjMCAyNi41IDIxLjUgNDggNDggNDhsMjYwLjIgMCAzMy4yIDQ5LjhjOS44IDE0LjcgMjkuNyAxOC43IDQ0LjQgOC45czE4LjctMjkuNyA4LjktNDQuNGwtODQuMi0xMjYuMiA3NC42IDAgNDAgNDh6bS0xNTkuNSAwbC03My41IDAgMC03My44YzAtMTAuMiAxLjYtMjAuMSA0LjctMjkuNUwyNjUuNSAzODR6TTE5MiAxMjhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sY3RhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTZmIiwiTTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI3LjktMTE1LjFjMTguMy0xNi40IDQ2LTE2LjQgNjQuMiAwTDQ0OCAxMjggNTEyIDEyOGMzMyAwIDYwLjIgMjUgNjMuNiA1Ny4yLTE0LjctNS45LTMwLjgtOS4yLTQ3LjYtOS4yLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MnpNMzMyLjMgMzQxLjVjLTYtMy41LTEyLjktNS41LTIwLjMtNS41bC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDg4IDk2IDAgMC02NC4xYzAtMjAuOCA0LjQtNDAuNSAxMi4zLTU4LjR6TTExMiAzODRjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6bTIyNC00OGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTU2MCAzNTJsMC00Ny45YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwem0tMTEyIDIuN2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM3oiXX0sZHRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1idXJzdCIsaWNvbjpbNjQwLDUxMixbXSwiZTUzYiIsIk0yMDQgNDAuMWMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTQgMTQ0LjFjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTk2LjUgMjg1LjVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw5Ni41IDI4NS41ek02Mi42IDIuN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw2Mi42IDM2LjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45ek0zNTIuNC0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNNDc4LjcgMjk5LjFsLTQ2LjMtNjIuNCAwIDI3NS4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc1LjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NWMyNS4yLTMzLjkgNjUtNTMuOSAxMDcuMi01My45czgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42eiJdfSxYOWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1hbHQtbGVmdCJdLCJmMzBhIiwiTTkuNCAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxOTIgMTE1LjEgMTkyIDEyOGwwIDY0IDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMzNiAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTEyOC0xMjh6Il19LHV0YT1YOWUsUTllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWNyb3NzaGFpcnMiLGljb246WzU3Niw1MTIsWyJsb2NhdGlvbiJdLCJmNjAxIiwiTTI4OC0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE4LjNjOTguMSAxNCAxNzUuNyA5MS42IDE4OS43IDE4OS43bDE4LjMgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguMyAwYy0xNCA5OC4xLTkxLjYgMTc1LjctMTg5LjcgMTg5LjdsMCAxOC4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguM0MxNTcuOSA0NjMuNyA4MC4zIDM4Ni4xIDY2LjMgMjg4TDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC4zIDBDODAuMyAxMjUuOSAxNTcuOSA0OC4zIDI1NiAzNC4zTDI1NiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDI1NmExNjAgMTYwIDAgMSAwIDMyMCAwIDE2MCAxNjAgMCAxIDAgLTMyMCAwem0xNjAtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LHB0YT1ROWUsSjllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kb3RzLWZyb20tbGluZSIsaWNvbjpbNTEyLDUxMixbImRpYWdub3NlcyJdLCJmNDcwIiwiTTE4NCA3MmE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTE2MCAyOTkuM2MtMTkuOSAyMi42LTMyIDUyLjItMzIgODQuN2wwIDMyLTY0IDAgMC0zMmMwLTEwNiA4Ni0xOTIgMTkyLTE5MnMxOTIgODYgMTkyIDE5MmwwIDMyLTY0IDAgMC0zMmMwLTMyLjUtMTIuMS02Mi4xLTMyLTg0LjdsMCAxMTYuNy0xOTIgMCAwLTExNi43ek0yMzIgMzg0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODgtMTA0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTI0IDQ2NGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTY0IDE4NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00MjQgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxmdGE9SjllLGd0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUtaGlnaCIsaWNvbjpbNTEyLDUxMixbNjE2NjgsInRhY2hvbWV0ZXIiLCJ0YWNob21ldGVyLWZhc3QiXSwiZjYyYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NHoiXX0saHRhPWd0ZSxtdGE9Z3RlLGVnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtbGVmdCIsaWNvbjpbNDQ4LDUxMixbMTcxLCJhbmdsZS1kb3VibGUtbGVmdCJdLCJmMTAwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDIxNC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwem0zNTItMTYwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjY5LjMgMjU2IDQwNi42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAweiJdfSxndGE9ZWdlLHRnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1kb3duIixpY29uOls1MTIsNTEyLFs4NTk3LDExMDIxLCJhcnJvd3MtYWx0LXYiXSwiZjMzOCIsIk00MDYuNiA1MDIuNmw5Ni05NmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSAzNTIgNDgwIDM1MmwtNjQgMCAwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyMC02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHpNMTUwLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE5LjEgMTYwIDMyIDE2MGw2NCAwIDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjAgNjQgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC05Ni05NnoiXX0sYnRhPXRnZSxhZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS1lbXB0eSIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktMCJdLCJmMjQ0IiwiTTExMiAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDIyNGMwIDguOCA3LjIgMTYgMTYgMTZsNDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjI0YzAtOC44LTcuMi0xNi0xNi0xNmwtNDE2IDB6TTMyIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGw0MTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtNDE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMjI0eiJdfSx2dGE9YWdlLHh0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrZXlib2FyZCIsaWNvbjpbNTc2LDUxMixbOWUzXSwiZjExYyIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTYgNjRsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTE3NiAxMjhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTYwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTE3NmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC04MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC04MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSx5dGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29va2llIixpY29uOls1MTIsNTEyLFsxMjc4NTBdLCJmNTYzIiwiTTI0Ny4yIDE3Yy0yMi4xLTMuMS00NC42IC45LTY0LjQgMTEuNGwtNzQgMzkuNUM4OS4xIDc4LjQgNzMuMiA5NC45IDYzLjQgMTE1TDI2LjcgMTkwLjZjLTkuOCAyMC4xLTEzIDQyLjktOS4xIDY0LjlsMTQuNSA4Mi44YzMuOSAyMi4xIDE0LjYgNDIuMyAzMC43IDU3LjlsNjAuMyA1OC40YzE2LjEgMTUuNiAzNi42IDI1LjYgNTguNyAyOC43bDgzIDExLjdjMjIuMSAzLjEgNDQuNi0uOSA2NC40LTExLjRsNzQtMzkuNWMxOS43LTEwLjUgMzUuNi0yNyA0NS40LTQ3LjJsMzYuNy03NS41YzkuOC0yMC4xIDEzLTQyLjkgOS4xLTY0LjlsLTE0LjYtODIuOGMtMy45LTIyLjEtMTQuNi00Mi4zLTMwLjctNTcuOUwzODguOSA1Ny41Yy0xNi4xLTE1LjYtMzYuNi0yNS42LTU4LjctMjguN0wyNDcuMiAxN3pNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sd3RhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3B3YXRjaCIsaWNvbjpbNDQ4LDUxMixbOTIwMV0sImYyZjIiLCJNMTY4LjUgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMjUuM2MtMTA4IDExLjktMTkyIDEwMy41LTE5MiAyMTQuNyAwIDExOS4zIDk2LjcgMjE2IDIxNiAyMTZzMjE2LTk2LjcgMjE2LTIxNmMwLTM5LjgtMTAuOC03Ny4xLTI5LjYtMTA5LjJsMjguMi0yOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0yMy40IDIzLjRjLTMyLjktMzAuMi03NS4yLTUwLjMtMTIyLTU1LjVsMC0yNS4zIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwem04MCAxODRsMCAxMDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sTXRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVqZWN0IixpY29uOls0NDgsNTEyLFs5MTY3XSwiZjA1MiIsIk0yMjQgMzJjMTMuNSAwIDI2LjMgNS42IDM1LjQgMTUuNmwxNzYgMTkyYzEyLjkgMTQgMTYuMiAzNC4zIDguNiA1MS44UzQxOSAzMjAgNDAwIDMyMEw0OCAzMjBjLTE5IDAtMzYuMy0xMS4yLTQzLjktMjguN3MtNC4zLTM3LjcgOC42LTUxLjhsMTc2LTE5MkMxOTcuNyAzNy42IDIxMC41IDMyIDIyNCAzMnpNMCA0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OHoiXX0sa3RhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhdGVsbGl0ZS1kaXNoIixpY29uOls1MTIsNTEyLFsxMjgyMjVdLCJmN2MwIiwiTTIzMiAwYzE1NC42IDAgMjgwIDEyNS40IDI4MCAyODAgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMjguMS0xMDMuOS0yMzItMjMyLTIzMi0xMy4zIDAtMjQtMTAuNy0yNC0yNFMyMTguNyAwIDIzMiAwek0yMDggMTIwYzAtMTMuMyAxMC43LTI0IDI0LTI0IDEwMS42IDAgMTg0IDgyLjQgMTg0IDE4NCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjYuNCAxNDIuN2M4LjgtMTcuOSAzMi40LTE5LjkgNDYuNS01LjhsMTI4LjUgMTI4LjUgMzItMzJjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMzIgMzIgMTI4LjUgMTI4LjVjMTQuMSAxNC4xIDEyIDM3LjYtNS44IDQ2LjUtMzQuMiAxNi45LTcyLjYgMjYuNC0xMTMuMyAyNi40LTE0MS40IDAtMjU2LTExNC42LTI1Ni0yNTYgMC00MC43IDkuNS03OS4yIDI2LjQtMTEzLjN6Il19LHJnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXJvbGxpbmctZXllcyIsaWNvbjpbNTEyLDUxMixbMTI4NTgwLCJtZWgtcm9sbGluZy1leWVzIl0sImY1YTUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAzNTJsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0zMi0xMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40LTMuNyA1LjItNS44IDExLjYtNS44IDE4LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuOS0yLjItMTMuMi01LjgtMTguNCAyMi4zIDEwIDM3LjggMzIuNCAzNy44IDU4LjR6bTEyOCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40LTMuNyA1LjItNS44IDExLjYtNS44IDE4LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuOS0yLjItMTMuMi01LjgtMTguNCAyMi4zIDEwIDM3LjggMzIuNCAzNy44IDU4LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjR6Il19LFN0YT1yZ2Usc2dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QtY2hlY2siLGljb246WzUxMiw1MTIsWyJ0YXNrcyJdLCJmMGFlIiwiTTEzMy44IDM2LjNjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMTU4IDQ3IDE1M0w3IDExM0MtMi4zIDEwMy42LTIuMyA4OC40IDcgNzlTMzEuNiA2OS43IDQxIDc5bDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45em0wIDE2MGMxMC45IDcuNiAxMy41IDIyLjYgNS45IDMzLjRsLTU2IDgwYy00LjEgNS44LTEwLjUgOS41LTE3LjYgMTAuMVM1MiAzMTggNDcgMzEzTDcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTkuOCAxOS44IDM5LjYtNTYuNmM3LjYtMTAuOSAyMi42LTEzLjUgMzMuNC01Ljl6TTIyNCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xNjAgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yODggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTY0IDM3NmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LHp0YT1zZ2UsQ3RhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2steG1hcmsiLGljb246WzUxMiw1MTIsW10sImU1NmEiLCJNMzI4IDExMmwtMTQ0IDAtMzcuMy03NC41Yy0xLjgtMy42LTIuNy03LjYtMi43LTExLjYgMC0xNC4zIDExLjYtMjUuOSAyNS45LTI1LjlMMzQyLjEgMGMxNC4zIDAgMjUuOSAxMS42IDI1LjkgMjUuOSAwIDQtLjkgOC0yLjcgMTEuNkwzMjggMTEyek0xNjkuNiAxNjBsMTcyLjggMCA0OC43IDQwLjZDNDU3LjYgMjU2IDQ5NiAzMzggNDk2IDQyNC41IDQ5NiA0NzIuOCA0NTYuOCA1MTIgNDA4LjUgNTEybC0zMDUuMSAwQzU1LjIgNTEyIDE2IDQ3Mi44IDE2IDQyNC41IDE2IDMzOCA1NC40IDI1NiAxMjAuOSAyMDAuNkwxNjkuNiAxNjB6TTMyMy45IDI4NC4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMzMuOSAzMy45LTMzLjktMzMuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjktMzMuOSAzMy45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMzLjktMzMuOSAzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6Il19LF90YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXNodGFnIixpY29uOls1MTIsNTEyLFs2MjA5OF0sIjIzIiwiTTIxNC43IC43YzE3LjMgMy43IDI4LjMgMjAuNyAyNC42IDM4bC0xOS4xIDg5LjMgMTI2LjUgMCAyMi0xMDIuN0MzNzIuNCA4IDM4OS40LTMgNDA2LjcgLjdzMjguMyAyMC43IDI0LjYgMzhMNDEyLjIgMTI4IDQ4MCAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgxLjYgMC0yNy40IDEyOCA2Ny44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgxLjYgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4bDE5LjEtODkuMy0xMjYuNSAwLTIyIDEwMi43Yy0zLjcgMTcuMy0yMC43IDI4LjMtMzggMjQuNnMtMjguMy0yMC43LTI0LjYtMzhMOTkuOCAzODQgMzIgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyNy40LTEyOC02Ny44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODEuNiAwIDIyLTEwMi43QzE4MC40IDggMTk3LjQtMyAyMTQuNyAuN3pNMjA2LjQgMTkybC0yNy40IDEyOCAxMjYuNSAwIDI3LjQtMTI4LTEyNi41IDB6Il19LFR0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbiIsaWNvbjpbMzg0LDUxMixbMTI4NjQ2XSwiZjIzOCIsIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDI4OCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA0MC4xLTI0LjYgNzQuNS01OS41IDg4LjhsNTMuOSA2My43YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQtODcuNS0xNTEuMyAwLTc0IDg3LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDUzLjktNjMuN0MyNC42IDQyNi41IDAgMzkyLjEgMCAzNTJMMCA5NnptNjQgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTkyIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEx0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYW1lcGFkIixpY29uOls2NDAsNTEyLFtdLCJmMTFiIiwiTTQ0OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlM1NTQgNDQ4IDQ0OCA0NDhsLTI1NiAwQzg2IDQ0OCAwIDM2MiAwIDI1NlM4NiA2NCAxOTIgNjRsMjU2IDB6TTE5MiAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMjQwIDk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptNjQtOTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0eiJdfSxpZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leHBvcnQiLGljb246WzU3Niw1MTIsWyJhcnJvdy1yaWdodC1mcm9tLWZpbGUiXSwiZjU2ZSIsIk05Ni41IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtOTYgNzguMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTc4LjEgMCAwLTEzMy41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MS4yIDE4LjdDMjc5LjIgNi43IDI2MyAwIDI0NiAwTDk2LjUgMHpNMzU4IDE3NmwtOTMuNSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAuNSA1OC41IDM1OCAxNzZ6TTIyNC41IDMyOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMDQgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sJHRhPWlnZSxvZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmltYWNlIixpY29uOls1MTIsNTEyLFsxMjg1NTYsImdyaW1hY2UiXSwiZjU3ZiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNNDAwIDM1MmMwIDI1LjItMTkuNCA0NS44LTQ0IDQ3LjhsMC05NS43YzI0LjYgMiA0NCAyMi43IDQ0IDQ3Ljh6TTI3NiAzMDRsNDAgMCAwIDk2LTQwIDAgMC05NnptLTgwIDk2bDAtOTYgNDAgMCAwIDk2LTQwIDB6bS00MC05NS44bDAgOTUuN2MtMjQuNi0yLTQ0LTIyLjctNDQtNDcuOHMxOS40LTQ1LjggNDQtNDcuOHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxEdGE9b2dlLG5nZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbi1zdWJ3YXkiLGljb246WzM4NCw1MTIsWyJzdWJ3YXkiXSwiZjIzOSIsIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDI4OCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA0MC4xLTI0LjYgNzQuNS01OS41IDg4LjhsNTMuOSA2My43YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQtODcuNS0xNTEuMyAwLTc0IDg3LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDUzLjktNjMuN0MyNC42IDQyNi41IDAgMzkyLjEgMCAzNTJMMCA5NnptNjQgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw3MiAwIDAtMTYwLTcyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0yMTYgMjU2bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNzIgMCAwIDE2MHpNOTYgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMjI0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LEF0YT1uZ2UsbGdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1kb3QiLGljb246WzUxMiw1MTIsWzEyODI4MCwiZG90LWNpcmNsZSJdLCJmMTkyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTM1MmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sUHRhPWxnZSxFdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2JqZWN0LWdyb3VwIixpY29uOls1NzYsNTEyLFtdLCJmMjQ3IiwiTTMyIDExOS40QzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwIDg3LjcgMCAxMDguNCAxMi45IDExOS40IDMybDMzNy4xIDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAyNzMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMzM3LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMXptNDQ4IDBjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNEwxMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMjczLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDMzNy4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMjczLjF6TTE0NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTEyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTI1NiAzMjBsMzIgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxJdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpcCIsaWNvbjpbNjQwLDUxMixbMTI4Njc0XSwiZjIxYSIsIk0yNzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNi0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDEwOC44LTIxLjYgOC42Yy0xNC44IDUuOS0yMi41IDIyLjQtMTcuNCAzNy41IDEwLjQgMzEuMyAyNi44IDU5LjMgNDcuNyA4My4xIDIwLjEtOS4yIDQxLjctMTMuOSA2My4zLTE0IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNGwxLjYgMS4yIDAtMjE1LTEwNCA0MS42IDAtODMuMmMwLTguOCA3LjItMTYgMTYtMTZsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODMuMi0xMDQtNDEuNiAwIDIxNSAxLjYtMS4yYzI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDIyLjMtLjEgNDQuNiA0LjUgNjUuMyAxNCAyMC45LTIzLjcgMzcuMy01MS44IDQ3LjctODMuMSA1LTE1LjItMi42LTMxLjYtMTcuNC0zNy41TDUxMiAyNTIuOCA1MTIgMTQ0YzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwIDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjcyIDB6TTQwMy40IDQ3Ni4xYzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDgyLjMgMTcuNiA0OTAuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LE50YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjIixpY29uOlszODQsNTEyLFs5OV0sIjQzIiwiTTMyOS4xIDE0Mi45Yy02Mi41LTYyLjUtMTU1LjgtNjIuNS0yMTguMyAwcy02Mi41IDE2My44IDAgMjI2LjMgMTU1LjggNjIuNSAyMTguMyAwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTg3LjUgODcuNS0yMjEuMyA4Ny41LTMwOC44IDBzLTg3LjUtMjI5LjMgMC0zMTYuOCAyMjEuMy04Ny41IDMwOC44IDBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6Il19LGNnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUiLGljb246WzQ0OCw1MTIsWyJwaG9uZS1zcXVhcmUiXSwiZjA5OCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04OCA5Ni43YzkuOC0yLjcgMjAuMSAyLjQgMjQgMTEuOGwyMC4zIDQ4LjdjMy40IDguMyAxLjEgMTcuOC01LjkgMjMuNWwtMjIuMSAxOGMxNi4yIDM1LjggNDQuNSA2NSA3OS42IDgyLjRsMTkuMy0yMy42YzUuNy02LjkgMTUuMi05LjMgMjMuNS01LjlsNDguNyAyMC4zYzkuNCAzLjkgMTQuNCAxNC4yIDExLjggMjRsLS44IDIuOGMtOC44IDMyLjMtNDAuMSA1OS45LTc4LjIgNTEuOC04Ny41LTE4LjUtMTU2LjMtODcuNC0xNzQuOS0xNzQuOS04LjEtMzguMSAxOS41LTY5LjQgNTEuOC03OC4ybDIuOC0uOHoiXX0sUnRhPWNnZSxPdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXItY29tYmluZWQiLGljb246WzQ0OCw1MTIsW10sImY1NDYiLCJNMSA0NDEuN0M1LjUgNDYzLjUgMjQuOCA0ODAgNDggNDgwbDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA3MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcyLTY0IDAgMCA3MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcyLTcyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMCAwLTY0LTcyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMCAwLTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAzLjMgLjMgNi42IDEgOS43eiJdfSxidGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcyLCJyZWZyZXNoIiwic3luYyJdLCJmMDIxIiwiTTY1LjkgMjI4LjVjMTMuMy05MyA5My40LTE2NC41IDE5MC4xLTE2NC41IDUzIDAgMTAxIDIxLjUgMTM1LjggNTYuMiAuMiAuMiAuNCAuNCAuNiAuNmw3LjYgNy4yLTQ3LjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjQtMTEuMy0xMC43QzM5MC41IDI4LjYgMzI2LjUgMCAyNTYgMCAxMjcgMCAyMC4zIDk1LjQgMi42IDIxOS41IC4xIDIzNyAxMi4yIDI1My4yIDI5LjcgMjU1LjdzMzMuNy05LjcgMzYuMi0yNy4xem00NDMuNSA2NGMyLjUtMTcuNS05LjctMzMuNy0yNy4xLTM2LjJzLTMzLjcgOS43LTM2LjIgMjcuMWMtMTMuMyA5My05My40IDE2NC41LTE5MC4xIDE2NC41LTUzIDAtMTAxLTIxLjUtMTM1LjgtNTYuMi0uMi0uMi0uNC0uNC0uNi0uNmwtNy42LTcuMiA0Ny45IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwYy04LjUgMC0xNi43IDMuNC0yMi43IDkuNVMtLjEgMzQzLjcgMCAzNTIuM2wxIDEyN2MuMSAxNy43IDE0LjYgMzEuOSAzMi4zIDMxLjdTNjUuMiA0OTYuNCA2NSA0NzguN2wtLjQtNTEuNSAxMC43IDEwLjFjNDYuMyA0Ni4xIDExMC4yIDc0LjcgMTgwLjcgNzQuNyAxMjkgMCAyMzUuNy05NS40IDI1My40LTIxOS41eiJdfSxGdGE9YnRlLEJ0YT1idGUsZGdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcmVzcyIsaWNvbjpbMzg0LDUxMixbImZlbWFsZSJdLCJmMTgyIiwiTTEzNiAyNGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTExMiAzODRsLTI1LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNDMtMTI5LTQ4LjMgNjUuMWMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNkwyNzAgMjM0IDMxMyAzNjIuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTI1LjggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0zMiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4eiJdfSxIdGE9ZGdlLHF0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODIxNCwxMjgzNjZdLCJmNTE4IiwiTTI1NiAxNDEuM2wwIDMwOS4zIC41LS4yQzMxMS4xIDQyNy43IDM2OS43IDQxNiA0MjguOCA0MTZsMTkuMiAwIDAtMzIwLTE5LjIgMGMtNDIuMiAwLTg0LjEgOC40LTEyMy4xIDI0LjYtMTYuOCA3LTMzLjQgMTMuOS00OS43IDIwLjd6TTIzMC45IDYxLjVMMjU2IDcyIDI4MS4xIDYxLjVDMzI3LjkgNDIgMzc4LjEgMzIgNDI4LjggMzJMNDY0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41bC0xMi44IDUuM2MtNy45IDMuMy0xNi43IDMuMy0yNC42IDBsLTEyLjgtNS4zQzE4NC4xIDQ5MCAxMzMuOSA0ODAgODMuMiA0ODBMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNXoiXX0sVnRhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci10cmVlIixpY29uOls1NzYsNTEyLFtdLCJmODAyIiwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCAzOTJjMCAzMC45IDI1LjEgNTYgNTYgNTZsMTg0IDAgMC00OC0xODQgMGMtNC40IDAtOC0zLjYtOC04bDAtMjMyIDE5MiAwIDAtNDgtMTkyIDAgMC04OHpNMzM2IDIyNGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDh6bTAgMjg4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTguNi04LjZjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xTDMzNiAyODhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4eiJdfSxqdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlyZ28iLGljb246WzY0MCw1MTIsW10sImU4NTAiLCJNMzY4IDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEybDAgMjYuOGMxNC41LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM1ODkuOSAzODQgNTI4IDM4NGwtNDggMCAwIDMyYzAgMTYuNiAxMi42IDMwLjIgMjguNyAzMS44bDYuNiAuM2MxNi4xIDEuNiAyOC43IDE1LjMgMjguNyAzMS44IDAgMTcuNy0xNC4zIDMyLTMyIDMyLTUzIDAtOTYtNDMtOTYtOTZsMC0zMi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAzMDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMDRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAzMDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMjBjMC0xNi42LTEyLjYtMzAuMi0yOC43LTMxLjhsLTYuNi0uM0M0NC42IDk0LjIgMzIgODAuNiAzMiA2NCAzMiA0Ni4zIDQ2LjMgMzIgNjQgMzIgOTEgMzIgMTE1LjMgNDMuMSAxMzIuNyA2MSAxNTIuNiA0MyAxNzkgMzIgMjA4IDMyIDIzOS4zIDMyIDI2Ny43IDQ0LjkgMjg4IDY1LjcgMzA4LjMgNDQuOSAzMzYuNiAzMiAzNjggMzJ6TTUyOCAyMjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNDggNDggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OHoiXX0sdWdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC1hcmNoaXZlIixpY29uOls1MTIsNTEyLFsiYXJjaGl2ZSJdLCJmMTg3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2TDAgNjR6TTMyIDE3Nmw0NDggMCAwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjQwem0xNTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxVdGE9dWdlLFd0YT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LWRvd24tdG8tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU3ZSIsIk0xODUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjFDMTIwIDIuNyAxMDkuMy04IDk2LThTNzIgMi43IDcyIDE2bDAgMTAyLjEtMzEtMzFDMzEuNiA3Ny43IDE2LjQgNzcuNyA3IDg3Uy0yLjMgMTExLjYgNyAxMjFsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6TTE1NS44IDI2MC42TDEzMi4xIDQ0OCAzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0yLjgtLjQtNS41LTEtOEw1NDguMiAyNjAuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMzY3LjQgMTM3LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMMTcwLjkgMjM3LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3pNNDQ4IDQ0OGwtOTcuMSAwIDAtMTQ5LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlMNDQ4IDQ0OHoiXX0sR3RhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InFyY29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAyOSIsIk02NCAxNjBsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODB6TTY0IDQxNmw2NCAwIDAtNjQtNjQgMCAwIDY0ek0wIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6TTMyMCA5NmwwIDY0IDY0IDAgMC02NC02NCAwek0zMDQgMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek0yODggMzUyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyem0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS0zMiAzMmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAweiJdfSxZdGE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJhZ29uIixpY29uOls2NDAsNTEyLFsxMjgwMDldLCJmNmQ1IiwiTTM1MiAxMjQuNWwtNTEuOS0xM2MtNi41LTEuNi0xMS4zLTcuMS0xMi0xMy44czIuOC0xMy4xIDguNy0xNi4xbDQwLjgtMjAuNC00My4zLTMyLjVjLTUuNS00LjEtNy44LTExLjMtNS42LTE3LjlTMjk3LjEgMCAzMDQgMEw0NjQgMGMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNGw1Ny42IDc2LjhjNi4yIDguMyA5LjYgMTguNCA5LjYgMjguOCAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjEuNSAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN2wtMTMuMy0xMy4zLTMyIDAgMCAyMS41YzAgMjQuOCAxMi44IDQ3LjkgMzMuOCA2MS4xbDEwNi42IDY2LjZjMzIuMSAyMC4xIDUxLjYgNTUuMiA1MS42IDkzLjEgMCA2MC42LTQ5LjEgMTA5LjgtMTA5LjggMTA5LjhMMzIuMyA1MTJjLTMuMyAwLTYuNi0uNC05LjYtMS40LTkuMi0yLjgtMTYuNy05LjYtMjAuNC0xOC42LTEuMy0zLjMtMi4yLTYuOS0yLjMtMTAuNy0uMi0zLjcgLjMtNy4zIDEuMy0xMC43IDIuOC05LjIgOS42LTE2LjcgMTguNi0yMC40IDMtMS4yIDYuMi0yIDkuNS0yLjJMNDMzLjMgNDEyYzguMy0uNyAxNC43LTcuNyAxNC43LTE2LjEgMC00LjMtMS43LTguNC00LjctMTEuNGwtNDQuNC00NC40Yy0zMC0zMC00Ni45LTcwLjctNDYuOS0xMTMuMWwwLTEwMi41ek01MTIgNzIuM2MwLS4xIDAtLjIgMC0uM3MwLS4yIDAtLjNsMCAuNnptLTEuMyA3LjRMNDY0LjMgNjguMWMtLjIgMS4zLS4zIDIuNi0uMyAzLjkgMCAxMy4zIDEwLjcgMjQgMjQgMjQgMTAuNiAwIDE5LjUtNi44IDIyLjctMTYuM3pNMTMwLjkgMTE2LjVjMTYuMy0xNC41IDQwLjQtMTYuMiA1OC41LTQuMWwxMzAuNiA4NyAwIDI3LjVjMCAzMi44IDguNCA2NC44IDI0IDkzbC0yMzIgMGMtNi43IDAtMTIuNy00LjItMTUtMTAuNHMtLjUtMTMuMyA0LjYtMTcuN0wxNzEgMjMyLjMgMTguNCAyNTUuOGMtNyAxLjEtMTMuOS0yLjYtMTYuOS05Uy4xIDIzMi44IDUuNCAyMjhMMTMwLjkgMTE2LjV6Il19LHBnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MtZW5kIixpY29uOlszODQsNTEyLFs4OTg3LCJob3VyZ2xhc3MtMyJdLCJmMjUzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlsLTY3LjkgNjcuOS02Ny45LTY3LjlDMTA2LjEgMTI0LjkgOTYgMTAwLjQgOTYgNzV6Il19LEt0YT1wZ2UsWDg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcCIsaWNvbjpbNTEyLDUxMixbNTgxMTksImdyaWQtaG9yaXpvbnRhbCIsImdyaXAtaG9yaXpvbnRhbCJdLCJmNThkIiwiTTg4IDk2YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMHpNMjgwIDIyNGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTE5MiAwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHptMCAxOTJsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwek0yODAgMjg4YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMHpNODggNDE2bC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHoiXX0sWnRhPVg4LFh0YT1YOCxmZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLXRvcC1sZWZ0IixpY29uOls0NDgsNTEyLFsiYm9yZGVyLXN0eWxlIl0sImY4NTMiLCJNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAzNTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4em0xMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMnptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTE2MCAzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6TTM4NCAxOTJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptMzIgMTYwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUXRhPWZnZSxoZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC11bCIsaWNvbjpbNTEyLDUxMixbImxpc3QtZG90cyJdLCJmMGNhIiwiTTQ4IDE0NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwek00OCA0NjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek05NiAyNTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sSnRhPWhnZSxlYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXJvYmJlcnkiLGljb246WzU3Niw1MTIsW10sImU1MzYiLCJNNDg4LjIgNTkuMUM0NzguMSA5OS42IDQ0MS43IDEyOCA0MDAgMTI4cy03OC4xLTI4LjQtODguMi02OC45TDMwMyAyNC4yQzI5OC44IDcuMSAyODEuNC0zLjMgMjY0LjIgMVMyMzYuNyAyMi42IDI0MSAzOS44bDguNyAzNC45YzExIDQ0IDQwLjIgNzkuNiA3OC4zIDk5LjZMMzI4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNS43YzM4LjEtMjAgNjcuMy01NS42IDc4LjMtOTkuNkw1NTkgMzkuOGM0LjMtMTcuMS02LjEtMzQuNS0yMy4zLTM4LjhTNTAxLjIgNy4xIDQ5NyAyNC4ybC04LjcgMzQuOXpNNDAwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA5NiAwIC42IDAgMTkxLjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjcuMyAxMyAyMC41YzUuOSA5LjIgMTYuMSAxNC45IDI3IDE0LjlsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzAuNCAwLTM3LjQtNTguOUMxNTcuNiAxNDIgMTMyLjEgMTI4IDEwNC43IDEyOEw3MiAxMjh6Il19LHRhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtYnV0dG9uIixpY29uOlszODQsNTEyLFtdLCJmMTBiIiwiTTgwIDBDNDQuNyAwIDE2IDI4LjcgMTYgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMODAgMHpNMTkyIDQ2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6Il19LHZ0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtYXNjIiwic29ydC1hbHBoYS1kb3duIl0sImYxNWQiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xODItMzQwLjljNTAuNyAxMDEuMyA3Ny4zIDE1NC43IDgwIDE2MCA3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjljMi43LTUuMyAyOS4zLTU4LjcgODAtMTYwIDUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMTM1LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40ek0yODggMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgNDE2IDQ0OCA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWw3My40LTczLjQtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sYWFhPXZ0ZSxyYWE9dnRlLHNhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsIixpY29uOls1MTIsNTEyLFtdLCJmMGQ2IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTE5MiAyNGMwIDQuNC0zLjYgOC4xLTggNy41LTI5LTMuNi01MS45LTI2LjYtNTUuNS01NS41LS41LTQuNCAzLjEtOCA3LjUtOGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQ4ek02NCAzMjhjMC00LjQgMy42LTguMSA4LTcuNSAyOSAzLjYgNTEuOSAyNi42IDU1LjUgNTUuNSAuNSA0LjQtMy4xIDgtNy41IDhsLTQ4IDBjLTQuNCAwLTgtMy42LTgtOGwwLTQ4em04LTEzNi41Yy00LjQgLjUtOC0zLjEtOC03LjVsMC00OGMwLTQuNCAzLjYtOCA4LThsNDggMGM0LjQgMCA4LjEgMy42IDcuNSA4LTMuNiAyOS0yNi42IDUxLjktNTUuNSA1NS41em0zNjggMTI5YzQuNC0uNSA4IDMuMSA4IDcuNWwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNXoiXX0sbWdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1taW51cyIsaWNvbjpbNTEyLDUxMixbIm1pbnVzLWNpcmNsZSJdLCJmMDU2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjggMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0saWFhPW1nZSxnZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbIm1vdXNlLXBvaW50ZXIiXSwiZjI0NSIsIk03Ny4zIDIuNWM4LjEtNC4xIDE3LjktMy4yIDI1LjEgMi4zbDMyMCAyMzkuOWM4LjMgNi4yIDExLjYgMTcgOC40IDI2LjhzLTEyLjQgMTYuNC0yMi44IDE2LjRsLTE1Mi4zIDAgODguOSAxNzcuN2M3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC04OC45LTE3Ny43LTkxLjMgMTIxLjhjLTYuMiA4LjMtMTcgMTEuNi0yNi44IDguNFM2NCA0MzQuMyA2NCA0MjRMNjQgMjRjMC05LjEgNS4xLTE3LjQgMTMuMy0yMS41eiJdfSxvYWE9Z2dlLGJnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtc2hhcmUtbm9kZXMiLGljb246WzQ0OCw1MTIsWyJzaGFyZS1hbHQtc3F1YXJlIl0sImYxZTEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzY4IDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NC0xNS40IDAtMjkuNS01LjQtNDAuNi0xNC41bC04NS4zIDQ2LjUgODUuMyA0Ni41YzExLTkuMSAyNS4yLTE0LjUgNDAuNi0xNC41IDM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjRjMC0yLjUgLjEtNC45IC40LTcuM0wxNTguNSAzMDBjLTExLjcgMTIuMy0yOC4yIDIwLTQ2LjUgMjAtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxOC4zIDAgMzQuOCA3LjcgNDYuNSAyMGw4MS45LTQ0LjdjLS4zLTIuNC0uNC00LjktLjQtNy4zIDAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR6Il19LG5hYT1iZ2UsdmdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWxhcmdlIixpY29uOls0NDgsNTEyLFsidGgtbGFyZ2UiXSwiZjAwOSIsIk0zODQgOTZsLTEyOCAwIDAgMTI4IDEyOCAwIDAtMTI4em02NCAxMjhsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4ek02NCAyODhsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6bTEyOC02NGwwLTEyOC0xMjggMCAwIDEyOCAxMjggMHptNjQgNjRsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LGxhYT12Z2UsY2FhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhdCIsaWNvbjpbNTc2LDUxMixbMTI4MDA4XSwiZjZiZSIsIk02NCA5NmM1MyAwIDk2IDQzIDk2IDk2bDAgODUuOGMyOS43LTQ0LjcgNzcuOC03Ni4yIDEzMy40LTg0IDI1LjYgNjAgODUuMiAxMDIuMSAxNTQuNiAxMDIuMSAxMC45IDAgMjEuNi0xLjEgMzItMy4xTDQ4MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDAuOC0xMzYgMTA4LjggNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTQ0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC0yMjRjMC0xNi42LTEyLjYtMzAuMi0yOC43LTMxLjhsLTYuNi0uM0M0NC42IDE1OC4yIDMyIDE0NC42IDMyIDEyOCAzMiAxMTAuMyA0Ni4zIDk2IDY0IDk2ek01MzMuOCAzLjJDNTQ0LjItNS41IDU2MCAxLjkgNTYwIDE1LjVMNTYwIDEyOGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMzMzYgMTg5LjkgMzM2IDEyOGwwLTExMi41YzAtMTMuNiAxNS44LTIxIDI2LjItMTIuM0w0MTYgNDggNDgwIDQ4IDUzMy44IDMuMnpNNDAwIDEwOGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6bTk2IDBhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQweiJdfSxkYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItd2VlayIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4NCIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAweiJdfSx1YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1jb21wYXJlIixpY29uOls1MTIsNTEyLFtdLCJlMTNhIiwiTTE5OC44IDEuOGM5LTMuNyAxOS4zLTEuNyAyNi4yIDUuMmw1NiA1NmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNTYgNTZjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMTg0IDE0NS43IDE4NCAxMzZsMC0yNC0yNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIxNC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM0w2NCAxNDRjMC01MyA0My05NiA5Ni05NmwyNCAwIDAtMjRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yek0zOTIgODBhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMCAtNDggMHptLTggNzMuM2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNMNDQ4IDM2OGMwIDUzLTQzIDk2LTk2IDk2bC0yNCAwIDAgMjRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNTYtNTZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDU2LTU2YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMzI4IDM2Ni4zIDMyOCAzNzZsMCAyNCAyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjE0Ljd6TTcyIDQzMmEyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwIC00OCAweiJdfSxwYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVvIixpY29uOls1MTIsNTEyLFtdLCJlODRhIiwiTTI2MCAwYzcyLjkgMCAxMzIgNTkuMSAxMzIgMTMybDAgNS40LS4xIDEuNC0yMy44IDI3MGMuNCAyMS43IDE4LjIgMzkuMiA0MCAzOS4yIDIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQwYzAgNTcuNC00Ni42IDEwNC0xMDQgMTA0UzMwNCA0NjUuNCAzMDQgNDA4bDAtMS40IC4xLTEuNCAyMy45LTI3MC42IDAtMi42YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgNGMwIDMuNyAuMyA3LjMgLjggMTFsMjkuNyAxOTMuNGMuOSA2LjEgMS40IDEyLjIgMS40IDE4LjRsMCA5LjJjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMCA0MjkuOSAwIDM2OCA1MC4xIDI1NiAxMTIgMjU2YzExLjcgMCAyMyAxLjggMzMuNyA1LjFMMTI5LjYgMTU2LjdjLTEuMS02LjgtMS42LTEzLjgtMS42LTIwLjdsMC00QzEyOCA1OS4xIDE4Ny4xIDAgMjYwIDB6TTExMiAzMjBhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2eiJdfSxmYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NjYiLCJNMjg3LjkgMzJsLTc2LjIgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNiAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5LjJjMzUuMi00MCA4Ni43LTY1LjIgMTQ0LjItNjUuMiA5IDAgMTcuOCAuNiAyNi40IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNSAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LGhhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWxsZXQiLGljb246WzU3Niw1MTIsW10sImY0ODIiLCJNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA2NC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjQgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMjB6bTk2IDY0bDEyOCAwIDAgNjQtMTI4IDAgMC02NHptMTkyIDBsMTI4IDAgMCA2NC0xMjggMCAwLTY0eiJdfSx4dGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FrZS1jYW5kbGVzIixpY29uOls0NDgsNTEyLFsxMjc4NzQsImJpcnRoZGF5LWNha2UiLCJjYWtlIl0sImYxZmQiLCJNODYuNC0xMC41TDYxLjggMzEuNkM1OCAzOC4xIDU2IDQ1LjYgNTYgNTMuMkw1NiA1NmMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMTA1LjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6bTEyOCAwTDE4OS44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwyMzMuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNXpNMzE3LjggMzEuNmMtMy44IDYuNS01LjggMTQtNS44IDIxLjZsMCAyLjhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDM2MS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41TDMxNy44IDMxLjZ6TTEyOCAxNjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My41QzI2LjcgMjI2LjYgMCAyNjIuMiAwIDMwNGwwIDIwLjhjMjAuOSAxLjMgNDEuNiA3LjMgNjAuMyAxOGw3LjEgNC4xYzI2LjMgMTUgNTguOSAxMy40IDgzLjYtNC4yIDQzLjctMzEuMiAxMDIuMy0zMS4yIDE0NiAwIDI0LjYgMTcuNiA1Ny4zIDE5LjMgODMuNiA0LjJsNy4xLTQuMWMxOC43LTEwLjcgMzkuMy0xNi43IDYwLjMtMThsMC0yMC44YzAtNDEuOC0yNi43LTc3LjQtNjQtOTAuNWwwLTUzLjVjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC02NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC02NCAwIDAtNDh6TTQ0OCAzNzNjLTEyLjcgMS4yLTI1LjEgNS0zNi41IDExLjVsLTcuMSA0LjFjLTQyLjYgMjQuMy05NS40IDIxLjctMTM1LjMtNi44LTI3LTE5LjMtNjMuMi0xOS4zLTkwLjIgMC0zOS45IDI4LjUtOTIuNyAzMS4yLTEzNS4zIDYuOGwtNy4xLTQuMUMyNS4xIDM3OCAxMi43IDM3NC4xIDAgMzczbDAgNzVjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC03NXoiXX0sbWFhPXh0ZSxnYWE9eHRlLGJhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWctc2xhc2giLGljb246WzU3Niw1MTIsW10sImU0OTAiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI0MS44IDE3NiAzNDQgMTc2YzE0LjIgMCAyNy43IDIuOCA0MCA4bDEwOC44LTgxLjZjMTQuMS0xMC42IDM0LjItNy43IDQ0LjggNi40czcuNyAzNC4yLTYuNCA0NC44bC05Ny44IDczLjNjNS4zIDguOSA5LjMgMTguNyAxMS44IDI5LjFsOTguOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMzJjMCA5LjUtLjggMTguNy0yLjQgMjcuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXpNMzk4LjIgNDY4Yy0yMy4yIDIyLjEtNTMgMzcuMi04Ni4yIDQyLjJsMC0xMjguNCA4Ni4yIDg2LjJ6TTI2NCAzMzMuOGwwIDE3Ni40Yy01MS4yLTcuNy05NC41LTM5LjctMTE3LjctODMuOUw4My4yIDQ3My42Yy0xNC4xIDEwLjYtMzQuMiA3LjctNDQuOC02LjRzLTcuNy0zNC4yIDYuNC00NC44bDgzLjQtNjIuNWMtLjEtMi42LS4yLTUuMi0uMi03LjlsMC0zMi05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk4LjggMGMzLjMtMTMuOSA5LjMtMjYuNyAxNy42LTM3LjhMMjY0IDMzMy44ek0zNTUuNiAxMjhsLTgyLjQgMC03Mi4zLTcyLjNDMjE2LjEgMjIuOCAyNDkuNCAwIDI4OCAwIDM0MSAwIDM4NCA0MyAzODQgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjR6Il19LHZhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXJwIixpY29uOls1MTIsNTEyLFtdLCJlNTdiIiwiTTQ0OCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE0OS41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDM4Ni43IDQyOS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDB6bTUuNSAyMDhMMzYwIDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5My41IDExNy41LTExNy41ek05NiAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx4YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1wcmVkZWNlc3NvciIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3NyIsIk0yODkuMiAxMzcuOWMyLjUtNiA4LjMtOS45IDE0LjgtOS45bDQwIDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtOTggMGMxLjMgNS4xIDIgMTAuNSAyIDE2bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyNCA0MCAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC02NCA2NGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40ek0zODQgMzUybC0zMjAgMCAwIDY0IDMyMCAwIDAtNjR6bTY0IDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0eiJdfSx4Z2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mbHVzaGVkIixpY29uOls1MTIsNTEyLFsxMjg1NjMsImZsdXNoZWQiXSwiZjU3OSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xNjggMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDEyOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bS04LTk2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0em0yNjQtNzJhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwem0tMjg4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTkyIDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0seWFhPXhnZSx3YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1uZXh0IixpY29uOls0NDgsNTEyLFtdLCJlNDc2IiwiTTM4NCAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDAgMCA2NC0zMiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsNjQgNjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNjQtNjRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMyOTQuNSAyODggMjg4IDI4OGwtMzIgMCAwLTY0IDEyOCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NGwtMzQgMGM1LjYgMjEuNy0uNSA0NS4xLTE2LjcgNjEuM2wtNjQgNjRjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC02NC02NEM5OC42IDMzMy4xIDkyLjQgMzA5LjcgOTggMjg4bC0zNCAweiJdfSxNYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYyIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxrYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MyIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxTYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhIixpY29uOls1NzYsNTEyLFtdLCJmNWJiIiwiTTE2OS43IDIyNy41YzM0LjMgMTguNyA2NC41IDQ0LjEgODguOCA3NC41IDExLjEgMTMuOSAyMSAyOC45IDI5LjQgNDQuOCA4LjUtMTUuOSAxOC4zLTMwLjggMjkuNC00NC44IDI0LjMtMzAuNSA1NC41LTU1LjkgODguOC03NC41IDQxLjctMjIuNyA4OS40LTM1LjUgMTM5LjctMzUuNWw5LjkgMGMxMS4xIDAgMjAuMSA5IDIwLjEgMjAuMSAwIDE0OC0xMTkuOSAyNjcuOS0yNjcuOSAyNjcuOWwtNDAuMiAwQzExOS45IDQ4MCAwIDM2MC4xIDAgMjEyLjEgMCAyMDEgOSAxOTIgMjAuMSAxOTJsOS45IDBjNTAuNCAwIDk4LjEgMTIuOCAxMzkuNyAzNS41ek0zMDMuOSAzOGMxNi45IDE1LjkgNjEuNCA2My40IDg5IDE0Mi4zLTQwLjEgMjAuMi03NS44IDQ4LjItMTA0LjkgODIuMS0yOS4yLTMzLjktNjQuOC02MS44LTEwNC45LTgyLjEgMjcuNi03OC45IDcyLjItMTI2LjQgODktMTQyLjMgNC4zLTQuMSAxMC02IDE1LjktNnMxMS42IDIgMTUuOSA2eiJdfSx6YWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJpZXMiLGljb246WzUxMiw1MTIsW10sImU4NDYiLCJNNDAxLjYgMGM2MS4zIDAgMTEwLjQgNTAuMyAxMTAuNCAxMTEgMCAyOS40LTExLjYgNTcuOS0zMi42IDc4LjhsLTguOCA4LjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMiAwcy0xMi41LTMyLjggMC00NS4ybDguOC04LjhjOC44LTguOCAxMy44LTIxIDEzLjgtMzMuNiAwLTI1LjktMjEuMS00Ny00Ni40LTQ3LTIyLjUgMC00MS43IDE2LjEtNDUuNyAzOC4yTDI4Ny41IDQ4NS42YzAgLjEtLjEgLjMtLjEgLjQtLjIgLjgtLjMgMS42LS41IDIuMy0uMSAuMy0uMSAuNS0uMiAuNy0uMiAuNi0uNCAxLjMtLjcgMS45LS4yIC41LS40IDEtLjYgMS41LS4xIC4zLS4zIC42LS40IC45LTEuNiAzLjUtMy44IDYuNS02LjQgOS4yLTIgMi00LjIgMy43LTYuNiA1LjEtLjIgLjEtLjMgLjItLjUgLjMtLjcgLjQtMS40IC43LTIuMSAxLS4zIC4xLS42IC4zLS45IC40LS41IC4yLTEgLjQtMS41IC42LS42IC4yLTEuMiAuNS0xLjkgLjctLjIgLjEtLjUgLjItLjcgLjItLjggLjItMS42IC40LTIuMyAuNS0uMiAwLS4zIC4xLS40IC4xLS4yIDAtLjQgMC0uNiAuMS0uNyAuMS0xLjMgLjItMiAuMi0uNCAwLS44IC4xLTEuMiAuMS0uNiAwLTEuMiAuMS0xLjggLjEtLjYgMC0xLjIgMC0xLjgtLjEtLjQgMC0uOC0uMS0xLjItLjEtLjctLjEtMS40LS4xLTItLjItLjIgMC0uNCAwLS42LS4xLS4yIDAtLjMtLjEtLjUtLjEtLjgtLjItMS42LS4zLTIuMy0uNS0uMy0uMS0uNS0uMS0uOC0uMi0uNi0uMi0xLjMtLjQtMS45LS43LS41LS4yLTEtLjQtMS41LS42LS4zLS4xLS42LS4zLS45LS40LS43LS4zLTEuNC0uNy0yLjEtMS0uMi0uMS0uMy0uMi0uNS0uMy0yLjQtMS40LTQuNy0zLjEtNi42LTUuMS0yLjYtMi42LTQuOC01LjctNi40LTkuMi0uMS0uMi0uMi0uMy0uMi0uNWwtLjUtMS4xYy0uMS0uMy0uMi0uNS0uMy0uOC0uMi0uNi0uNS0xLjItLjctMS45LS4xLS4yLS4yLS41LS4yLS43LS4yLS44LS40LTEuNi0uNS0yLjMgMC0uMS0uMS0uMy0uMS0uNEwxNTYgMTAyLjJjLTQtMjIuMS0yMy4yLTM4LjItNDUuNy0zOC4yLTI1LjMgMC00Ni40IDIxLjEtNDYuNCA0NyAwIDEyLjYgNSAyNC44IDEzLjggMzMuNmw4LjggOC44YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4ycy0zMi44IDEyLjUtNDUuMiAwbC04LjgtOC44QzExLjYgMTY4LjkgMCAxNDAuMyAwIDExMSAwIDUwLjMgNDkuMSAwIDExMC40IDAgMTYzLjggMCAyMDkuNiAzOC4zIDIxOSA5MWwzNyAyMDcgMzctMjA3YzkuNC01Mi42IDU1LjItOTEgMTA4LjctOTF6Il19LHlnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJzLXByb2dyZXNzIixpY29uOls0NDgsNTEyLFsidGFza3MtYWx0Il0sImY4MjgiLCJNMjg4IDE2MGw5NiAwIDAtNjQtOTYgMCAwIDY0ek0wIDE2MEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggMjI0Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2ek0xNjAgNDE2bDIyNCAwIDAtNjQtMjI0IDAgMCA2NHpNMCA0MTZsMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OGwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNnoiXX0sQ2FhPXlnZSxfYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJlNGZkIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LHdnZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLXN0cm9rZS1yaWdodCIsaWNvbjpbNjQwLDUxMixbOTg5NywibWFycy1zdHJva2UtaCJdLCJmMjJiIiwiTTMyMC41IDI1NmExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAwek0yMDguNSA4MGM4Ni4zIDAgMTU4LjEgNjIuMSAxNzMuMSAxNDQuMSAxLS4xIDEuOS0uMSAyLjktLjFsMTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiA2MS40IDAtMjIuNC0yOGMtMTEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVsNjQgODBjOS4zIDExLjcgOS4zIDI4LjMgMCA0MGwtNjQgODBjLTExIDEzLjgtMzEuMiAxNi00NSA1cy0xNi0zMS4yLTUtNDVsMjIuNC0yOC02MS40IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2IDBjLTEgMC0xLjkgMC0yLjktLjEtMTUgODItODYuOCAxNDQuMS0xNzMuMSAxNDQuMS05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2eiJdfSxUYWE9d2dlLExhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1vYnNlcnZhdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTU4NiIsIk0yMDkuNyAzLjRjOS00LjUgMTkuNi00LjUgMjguNiAwbDE2MCA4MGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45LTUuNiAxMS4yLTE2LjkgMTcuNy0yOC42IDE3LjdsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTMgMCAzMiAxOTIgNDUgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDUgMCAzMi0xOTItMTMgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC04MGMtMTEuNyAwLTIzLTYuNS0yOC42LTE3LjctNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOWwxNjAtODB6TTMxMC43IDQ0OGwtODYuNy02MS45LTg2LjcgNjEuOSAxNzMuNCAwem0tMTUzLTE5MmwtMy41IDIxLjIgNjkuOSA0OS45IDY5LjktNDkuOS0zLjUtMjEuMi0xMzIuNyAwem0tMTIuMyA3My45bC0xMC4xIDYwLjYgNDcuNS0zMy45LTM3LjQtMjYuN3ptMTE5LjkgMjYuN2w0Ny41IDMzLjktMTAuMS02MC42LTM3LjQgMjYuN3pNMTUyIDEyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LHl0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGVybGluZy1zaWduIixpY29uOlszODQsNTEyLFsxNjMsImdicCIsInBvdW5kLXNpZ24iXSwiZjE1NCIsIk05MS4zIDI4OGwtMzQuOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxLjQgMEMzNy4zIDE0Ny4zIDEwNS4xIDQyIDIwNy42IDQybDguMiAwYzMzLjYgMCA2Ni4yIDExLjMgOTIuNSAzMi4ybDE2LjEgMTIuN2MxMy45IDExIDE2LjIgMzEuMSA1LjIgNDVzLTMxLjEgMTYuMi00NSA1LjJsLTE2LjEtMTIuN2MtMTUtMTEuOS0zMy42LTE4LjQtNTIuOC0xOC40bC04LjIgMGMtNTcuMyAwLTk0LjcgNTkuOS02OS43IDExMS40IDMuNiA3LjQgNi42IDE0LjkgOS4xIDIyLjZsMTQ5LjUgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQxLjIgMGMxIDM1LjMtOC43IDcwLjYtMjguOSAxMDAuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMxMy4xLTE5LjYgMTkuMi00Mi42IDE4LjItNjUuNHoiXX0sJGFhPXl0ZSxEYWE9eXRlLEFhYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYXVjZXQtZHJpcCIsaWNvbjpbNTEyLDUxMixbMTI4Njg4XSwiZTAwNiIsIk0yMjQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyTDk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NnMxNC4zIDMyIDMyIDMybDk2IDAgMCA2NC0xOC43IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40TDEyOCAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwMC4xIDBjMjAuMiAyOSA1My45IDQ4IDkxLjkgNDhzNzEuNy0xOSA5MS45LTQ4bDM2LjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBsLTMyIDAtMjIuNi0yMi42Yy02LTYtMTQuMS05LjQtMjIuNi05LjRsLTE4LjcgMCAwLTY0IDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQzNi44IDQ1NS40bC0xOC4yIDQyLjRjLTEuOCA0LjEtMi43IDguNi0yLjcgMTMuMWwwIDEuMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMS4yYzAtNC41LS45LTguOS0yLjctMTMuMWwtMTguMi00Mi40Yy0xLjktNC41LTYuMy03LjQtMTEuMi03LjRzLTkuMiAyLjktMTEuMiA3LjR6Il19LGZ2PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1pbmZvIixpY29uOls1MTIsNTEyLFsiaW5mby1jaXJjbGUiXSwiZjA1YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE2MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tOCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgODggOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC02NC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxQYWE9ZnYsRWFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZlYXRoZXIiLGljb246WzUxMiw1MTIsWzEyOTcxOF0sImY1MmQiLCJNMzUyIDBjNDEgMCA4MC4zIDE2LjMgMTA5LjIgNDUuMmw1LjUgNS41YzI5IDI5IDQ1LjMgNjguMyA0NS4zIDEwOS4yIDAgMjQuMS01LjcgNDcuNi0xNi4yIDY4LjgtMS45IDMuNy01LjMgNi41LTkuMyA3LjdMMzc0LjUgMjcwYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMzIuMiAwYzE0LjMgMCAyMS40IDE3LjIgMTEuMyAyNy4zbC0yMi40IDIyLjRjLTEuOSAxLjktNC4yIDMuMi02LjcgNGwtODEgMjQuM2MtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4yIDEzLjIgMCAxOC45IDE1LjcgNy44IDIyLjktNDEuMSAyNi42LTg5LjMgNDEuMS0xMzkgNDEuMWwtODYgMC00OCA0OGMtOC44IDguOC0yMy4yIDguOC0zMiAwcy04LjgtMjMuMiAwLTMyTDI1NiAyMjRjOC44LTguOCA4LjgtMjMuMiAwLTMycy0yMy4yLTguOC0zMiAwTDc5LjUgMzM2LjVjLTUuNyA1LjctMTUuNSAxLjctMTUuNS02LjQgMC02Ny45IDI3LTEzMyA3NS0xODFMMjQyLjggNDUuMkMyNzEuNyAxNi4zIDMxMSAwIDM1MiAweiJdfSxJYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bC1yaWNlIixpY29uOls1MTIsNTEyLFtdLCJlMmViIiwiTTE3NiA0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjQgNDhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNNTYgMTYwbDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTAgMjgzLjRDMCAyNjguMyAxMi4zIDI1NiAyNy40IDI1Nmw0NTcuMSAwYzE1LjEgMCAyNy40IDEyLjMgMjcuNCAyNy40IDAgNzAuNS00NC40IDEzMC43LTEwNi43IDE1NC4xTDQwMy41IDQ1MmMtMiAxNi0xNS42IDI4LTMxLjggMjhsLTIzMS41IDBjLTE2LjEgMC0yOS44LTEyLTMxLjgtMjhsLTEuOC0xNC40QzQ0LjQgNDE0LjEgMCAzNTMuOSAwIDI4My40ek0yMjQgMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tOTYgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTA0IDg4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTIxNiA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjk2IDg4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTEyMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMzkyIDg4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTI5NiAxNmwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxNZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1oYWxmLXN0cm9rZSIsaWNvbjpbNTc2LDUxMixbInN0YXItaGFsZi1hbHQiXSwiZjVjMCIsIk0yODguMSAzNTMuNmMxMCAwIDE5LjkgMi4zIDI5IDdsNzQuNCAzNy45LTEzLTgyLjVjLTMuMi0yMC4yIDMuNS00MC43IDE3LjktNTUuMmw1OS01OS4xLTgyLjUtMTMuMWMtMjAuMi0zLjItMzcuNy0xNS45LTQ3LTM0LjFsLTM4LTc0LjQgMCAyNzMuNnpNNDU3LjQgNDg5Yy03LjMgNS4zLTE3IDYuMS0yNSAyTDI4OC4xIDQxNy42IDE0My44IDQ5MWMtOCA0LjEtMTcuNyAzLjMtMjUtMnMtMTEtMTQuMi05LjYtMjMuMkwxMzQuNCAzMDUuOSAyMCAxOTEuNGMtNi40LTYuNC04LjYtMTUuOC01LjgtMjQuNHMxMC4xLTE0LjkgMTkuMS0xNi4zbDE1OS45LTI1LjQgNzMuNi0xNDQuMmM0LjEtOCAxMi40LTEzLjEgMjEuNC0xMy4xczE3LjMgNS4xIDIxLjQgMTMuMUwzODMgMTI1LjMgNTQyLjkgMTUwLjdjOC45IDEuNCAxNi4zIDcuNyAxOS4xIDE2LjNzLjUgMTgtNS44IDI0LjRMNDQxLjcgMzA1LjkgNDY3IDQ2NS44YzEuNCA4LjktMi4zIDE3LjktOS42IDIzLjJ6Il19LE5hYT1NZ2Usa2dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWFycm93LWRvd24iLGljb246WzUxMiw1MTIsWyJ0ZW1wZXJhdHVyZS1kb3duIl0sImUwM2YiLCJNNjQuNSA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRzLTE0NC02NC41LTE0NC0xNDRjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQuNSA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI4LjdjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyOC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQzOS4xIDMxMC42Yy02IDYtMTQuMSA5LjQtMjIuNiA5LjRzLTE2LjYtMy40LTIyLjYtOS40bC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5LjQgOS40IDAtMTc4LjdjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3OC43IDkuNC05LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtNjQgNjR6Il19LFJhYT1rZ2UsT2FhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2stdmVudGlsYXRvciIsaWNvbjpbNjQwLDUxMixbXSwiZTUyNCIsIk0xNTIuMiAxOTJjLTE1LjQgMzguMy0yNC4yIDc3LjItMjQuMiAxMDguOCAwIDEzLjMgMS41IDI2LjIgNC40IDM4LjdsLTE3LTMuNGMtMjkuOS02LTUxLjQtMzIuMi01MS40LTYyLjhsMC04MS4zIDg4LjIgMHptMzIuOS02NEw2NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODEuM2MwIDYxIDQzLjEgMTEzLjUgMTAyLjkgMTI1LjVsNjYuMyAxMy4zYzE4LjcgMjIuMSA0Mi45IDQwIDcwLjggNTEuOGwwLTg3LjhjLTEwLjEtMTQuMi0xNi0zMS4zLTE2LTQ5LjcgMC00OS41IDQzLTEzNC40IDk2LTEzNC40IDUyLjUgMCA5NiA4NC45IDk2IDEzNC40IDAgMTguNC01LjkgMzUuNC0xNiA0OS42bDAgODcuN2MyNy42LTExLjggNTEuNy0yOS42IDcwLjQtNTEuNmw2Ni43LTEzLjNjNTkuOC0xMiAxMDIuOS02NC41IDEwMi45LTEyNS41bDAtODEuM2MwLTM1LjMtMjguNy02NC02NC02NGwtMTIxLjUgMGMtMzQuOC01NC4yLTgyLjUtOTYtMTM0LjUtOTYtNTIuNiAwLTEwMC4yIDQxLjgtMTM0LjkgOTZ6bTMwMi41IDY0bDg4LjQgMCAwIDgxLjNjMCAzMC41LTIxLjUgNTYuOC01MS40IDYyLjhsLTE3IDMuNGMyLjktMTIuNCA0LjUtMjUuNCA0LjUtMzguNyAwLTMxLjYtOC45LTcwLjUtMjQuNC0xMDguOHpNMjg4IDMyMGwwIDE5MiA2NCAwIDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxGYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS12aWRlbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNODAgMzA0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI0IDM1IDM1YzMuMiAzLjIgNy41IDUgMTIgNSA5LjQgMCAxNy03LjYgMTctMTdsMC05NC4xYzAtOS40LTcuNi0xNy0xNy0xNy00LjUgMC04LjggMS44LTEyIDVsLTM1IDM1IDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxCYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHJlbmQtZG93biIsaWNvbjpbNTc2LDUxMixbXSwiZTA5NyIsIk0zODQgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODIuNy0xNjkuNC0xNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBMMTkyIDI0Mi43IDU0LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBMMzIwIDIwNS4zIDQ2Ni43IDM1MiAzODQgMzUyeiJdfSxIYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2lsLWNhbiIsaWNvbjpbNjQwLDUxMixbXSwiZjYxMyIsIk0zMjAgMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzItMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQuOGMwIDE5IDExLjIgMzYuMiAyOC41IDQzLjlsNjcuNSAzMCAwIDIxLjNjMCAyNi41IDIxLjUgNDggNDggNDhsMjU5LjEgMGMxOC40IDAgMzUuOC03LjkgNDgtMjEuN0w2MzMuNSAxODcuN2MxMi4zLTEzLjktLjMtMzUuNC0xOC40LTMxLjVMNDQ4IDE5MiAzOTcuNSAxNjYuOGMtOC45LTQuNC0xOC43LTYuOC0yOC42LTYuOGwtODAuOSAwIDAtMzIgMzIgMHpNOTYgMjA4bDAgODYuMS00OC0yMS4zIDAtNjQuOCA0OCAweiJdfSxTZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWNhcnJ5LWJveCIsaWNvbjpbNTc2LDUxMixbInBlb3BsZS1jYXJyeSJdLCJmNGNlIiwiTTY0LTMyQTU2IDU2IDAgMSAxIDY0IDgwIDU2IDU2IDAgMSAxIDY0LTMyek0wIDE3MS4xYzAtMzIuNiAyNi41LTU5LjEgNTkuMS01OS4xIDIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM1LjggOC4yIDE1LjEgMTMuMSAyNS4xIDEzLjRsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzEwLS4zIDE5LjMtNS4yIDI1LjEtMTMuNGw0OC43LTY4LjJjMTMuNi0xOS4xIDM1LjYtMzAuNCA1OS4xLTMwLjQgMzIuNiAwIDU5LjEgMjYuNSA1OS4xIDU5LjFMNTc2IDI3MmMwIDMwLjItMTQuMiA1OC43LTM4LjQgNzYuOGwtNzYuOCA1Ny42Yy04LjEgNi0xMi44IDE1LjUtMTIuOCAyNS42bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTMwLjIgMTQuMi01OC43IDM4LjQtNzYuOGw0MS42LTMxLjIgMC04MC4xLTIuOCAzLjljLTE4IDI1LjItNDcuMSA0MC4yLTc4LjEgNDAuMkwzNTIgMjg4Yy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTEyMC40IDBjLS42IDAtMS4zIDAtMS45LS4xLS42IDAtMS4zIC4xLTEuOSAuMWwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMTc3LjggMzczLjMgMTkyIDQwMS44IDE5MiA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMMzguNCAzNDguOEMxNC4yIDMzMC43IDAgMzAyLjIgMCAyNzJMMCAxNzEuMXpNMCAzNzkuM2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw2NCA0MjggNjQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNTI5LjcgMCA1MTJMMCAzNzkuM3pNNTY4IDI0YTU2IDU2IDAgMSAxIC0xMTIgMCA1NiA1NiAwIDEgMSAxMTIgMHptOCA0ODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04NCA1NC40LTQwLjhjMy4zLTIuNSA2LjUtNS4xIDkuNi03LjlMNTc2IDUxMnoiXX0scWFhPVNnZSxWYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhaXIiLGljb246WzQ0OCw1MTIsWzEyOTY4MV0sImY2YzAiLCJNMTUyIDI1NmwwLTE4MS44Yy0yNC41IDIwLjUtNDAgNTEuNC00MCA4NS44bDAgOTYgNDAgMHptNDggMGw0OCAwIDAtMjA1LjRjLTcuNy0xLjctMTUuOC0yLjYtMjQtMi42cy0xNi4zIC45LTI0IDIuNkwyMDAgMjU2ek0yOTYgNzQuMmwwIDE4MS44IDQwIDAgMC05NmMwLTM0LjQtMTUuNS02NS4yLTQwLTg1Ljh6TTMyIDI1NmwzMiAwIDAtOTZDNjQgNzEuNiAxMzUuNiAwIDIyNCAwUzM4NCA3MS42IDM4NCAxNjBsMCA5NiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTI1NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0samFhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmQiLGljb246WzUxMiw1MTIsW10sImY3MmUiLCJNMjg4IDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMzIgMTEyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyOCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4UzQwOC42IDAgMzYwIDBMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem02NCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NkwzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xMjggNTEybDQwIDBjNDguNiAwIDg4LTM5LjQgODgtODhzLTM5LjQtODgtODgtODhMMzIgMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyeiJdfSxVYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGF5ZXItZ3JvdXAiLGljb246WzUxMiw1MTIsW10sImY1ZmQiLCJNMjMyLjUgNS4yYzE0LjktNi45IDMyLjEtNi45IDQ3IDBsMjE4LjYgMTAxYzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSAxNDkuOEM1LjQgMTQ1LjggMCAxMzcuMyAwIDEyOHM1LjQtMTcuOSAxMy45LTIxLjhMMjMyLjUgNS4yek00OC4xIDIxOC40bDE2NC4zIDc1LjljMjcuNyAxMi44IDU5LjYgMTIuOCA4Ny4zIDBsMTY0LjMtNzUuOSAzNC4xIDE1LjhjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEwxMy45IDI3Ny44QzUuNCAyNzMuOCAwIDI2NS4zIDAgMjU2czUuNC0xNy45IDEzLjktMjEuOGwzNC4xLTE1Ljh6TTEzLjkgMzYyLjJsMzQuMS0xNS44IDE2NC4zIDc1LjljMjcuNyAxMi44IDU5LjYgMTIuOCA4Ny4zIDBsMTY0LjMtNzUuOSAzNC4xIDE1LjhjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEwxMy45IDQwNS44QzUuNCA0MDEuOCAwIDM5My4zIDAgMzg0czUuNC0xNy45IDEzLjktMjEuOHoiXX0sV2FhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1tYXNrIixpY29uOls1MTIsNTEyLFtdLCJlMDYzIiwiTTQ0NS45IDE5M2MtLjEtLjQtLjItLjktLjItMS4zLTE1LjctMTA4LjQtMTA4LjktMTkxLjctMjIxLjctMTkxLjctODUgMC0xNTkgNDcuNC0xOTYuOSAxMTcuMkwyODMuMyAyODggNDU2IDI4OCA0NDIuOSAzMzYgMzM2IDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw5OC4yIDAtOC43IDMyLTg5LjUgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw4MC42IDBjLTYuNyAxOS4xLTI0LjggMzItNDUuMyAzMkwyODggNDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEwNC41LTI0Ny41LTE2NUMzIDE4Mi4xIDAgMjAyLjcgMCAyMjQgMCAyNzggMTkuMSAzMjcuNSA1MC45IDM2Ni4yIDU4LjkgMzc1LjkgNjQgMzg3LjggNjQgNDAwLjRMNjQgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyNy4zIDAgLjcgMCAxMzEuMyAwYzQ0LjkgMCA4My44LTMxLjEgOTMuNi03NC45bDMzLjktMTUwLjNjMy4zLTE0LjQtLjMtMjkuNS05LjctNDFMNDQ1LjkgMTkzek0yODggMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHd0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcyIsaWNvbjpbNTEyLDUxMixbInNpZ24tbGFuZ3VhZ2UiLCJzaWduaW5nIl0sImYyYTciLCJNNTEyIDE2MGwtLjEgNzIuNmMwIDQ0LjgtMTcuNiA4Ny4xLTQ3LjkgMTE4LjQtLjMtNzctNDAuMS0xNDguNC0xMDUuNC0xODkuM2wtMS45LTEuMmMyLjUtMy43IDIuOC04LjYgLjQtMTIuN2wtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzMzMCA1IDMzNi42IDE2LjVsNjggMTE3LjggMCAwIDAgMCA0My4zIDc1IC4xLTQ5LjNjMC0xNy43IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnpNMjk4LjQgMTI0LjJjLTE0LjEtOC44LTI5LjgtMTIuNy00NS4yLTEyLjFMMjE2LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNjcuMSAxMTYuMi0yNy0xNi45ek0yMTEuOSA4OC41bDE2LjQgMjguNGMtMTUuMSA1LjUtMjguNiAxNS42LTM4LjMgMjkuN2wtMTkuNy0zNC4yYy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHptLTQ2LjQgNjMuN2wxMi41IDIxLjdjLTIgOC42LTIuNSAxNy41LTEuNyAyNi4xbC00LjMgMCAwIDAtMzQuNCAwLTEzLjctMjMuOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6TTIyOC45IDE3NWM5LjQtMTUgMjkuMS0xOS41IDQ0LjEtMTAuMmw2MC4yIDM3LjZDMzg0LjcgMjM0LjcgNDE2IDI5MS4yIDQxNiAzNTJsMCA4YzAgODMuOS02OC4xIDE1Mi0xNTIgMTUyTDg4IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5MiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDQ0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMjQgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkwyNCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTU2IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMNTYgMjk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzNiAwIDAgMCAwIDAgOTMuMiAwLTQ2LjItMjguOWMtMTUtOS40LTE5LjUtMjkuMS0xMC4yLTQ0LjF6Il19LEdhYT13dGUsWWFhPXd0ZSxLYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0cyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MCIsIk00OTUuMyA3Ni42Yy00LjYtOC43LTE2LjMtOS43LTIzLjMtMi43TDI5Ny45IDI0OGMtNyA3LTYgMTguNyAyLjcgMjMuMyAyMC4xIDEwLjcgNDMgMTYuNyA2Ny40IDE2LjcgNzkuNSAwIDE0NC02NC41IDE0NC0xNDQgMC0yNC4zLTYtNDcuMy0xNi43LTY3LjR6TTI0MC43IDIxMS40YzQuNiA4LjcgMTYuMyA5LjcgMjMuMyAyLjdMNDM4LjEgNDBjNy03IDYtMTguNy0yLjctMjMuMy0yMC4xLTEwLjctNDMtMTYuNy02Ny40LTE2LjctNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAyNC4zIDYgNDcuMyAxNi43IDY3LjR6TTE0NCAyMjRDNzkuMiAyMjQgMjQuNCAyNjYuOCA2LjMgMzI1LjYgMy40IDMzNS4xIDExIDM0NCAyMC45IDM0NGwyNDYuMiAwYzkuOSAwIDE3LjUtOC45IDE0LjYtMTguNC0uOS0zLTEuOS01LjktMy04LjctMzcuNC0xOC4xLTY4LTQ4LTg3LTg0LjgtMTQuOS01LjItMzAuOS04LjEtNDcuNi04LjF6TTI4MS43IDQxMC40YzIuOS05LjUtNC43LTE4LjQtMTQuNi0xOC40TDIwLjkgMzkyQzExIDM5MiAzLjQgNDAwLjkgNi4zIDQxMC40IDI0LjQgNDY5LjIgNzkuMiA1MTIgMTQ0IDUxMnMxMTkuNi00Mi44IDEzNy43LTEwMS42eiJdfSxaYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2VpZ2h0LWhhbmdpbmciLGljb246WzUxMiw1MTIsW10sImY1Y2QiLCJNMjI0IDk2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyMi41IDMyYzMuNS0xMCA1LjUtMjAuOCA1LjUtMzIgMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAxMS4yIDEuOSAyMiA1LjUgMzJsLTIxLjggMGMtMjguMyAwLTUzLjIgMTguNS02MS4zIDQ1LjZMMi40IDQ0MC4yQy44IDQ0NS40IDAgNDUwLjggMCA0NTYuMiAwIDQ4NyAyNSA1MTIgNTUuOCA1MTJsNDAwLjQgMGMzMC44IDAgNTUuOC0yNSA1NS44LTU1LjggMC01LjQtLjgtMTAuOC0yLjQtMTZsLTgwLTI2Ni41Yy04LjEtMjcuMS0zMy00NS42LTYxLjMtNDUuNmwtMjEuOCAweiJdfSxYYWE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZSIsaWNvbjpbNTEyLDUxMixbMTI3OTIyXSwiZjUyMiIsIk0xNDEuNCAyLjNDMTAzLTggNjMuNSAxNC44IDUzLjMgNTMuMkwyLjUgMjQyLjdDLTcuOCAyODEuMSAxNSAzMjAuNiA1My40IDMzMC45bDE4OS41IDUwLjhjMzguNCAxMC4zIDc3LjktMTIuNSA4OC4yLTUwLjlsNTAuOC0xODkuNWMxMC4zLTM4LjQtMTIuNS03Ny45LTUwLjktODguMkwxNDEuNCAyLjN6bTIzIDIwNS43YTMyIDMyIDAgMSAxIDU1LjQtMzIgMzIgMzIgMCAxIDEgLTU1LjQgMzJ6TTc5LjIgMjIwLjNhMzIgMzIgMCAxIDEgMzIgNTUuNCAzMiAzMiAwIDEgMSAtMzItNTUuNHptMTg1IDk2LjRhMzIgMzIgMCAxIDEgLTMyLTU1LjQgMzIgMzIgMCAxIDEgMzIgNTUuNHptOS0yMDguNGEzMiAzMiAwIDEgMSAzMiA1NS40IDMyIDMyIDAgMSAxIC0zMi01NS40em0tMTIxIDE0LjRhMzIgMzIgMCAxIDEgLTMyLTU1LjQgMzIgMzIgMCAxIDEgMzIgNTUuNHpNNDE4IDE5MkwzNzcuNCAzNDMuMmMtMTcuMiA2NC04MyAxMDItMTQ3IDg0LjlsLTM4LjMtMTAuMyAwIDMwLjJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNDE4IDE5MnoiXX0semdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3Atc2xhc2giLGljb246WzU3Niw1MTIsWyJzdG9yZS1hbHQtc2xhc2giXSwiZTA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01Ny01NyAwLTE5MC4zYzI2LjgtMS45IDQ4LTI0LjMgNDgtNTEuNiAwLTgtMS45LTE2LTUuNS0yMy4yTDQ5Ny43IDY3LjRDNDg2LjggNDUuNyA0NjQuNyAzMiA0NDAuNCAzMkwxMzUuNiAzMmMtMTAuNyAwLTIxIDIuNy0zMC4yIDcuNkw0MS0yNC45ek0zMjEuOCAyNTZMNDQ4IDI1NiA0NDggMzgyLjIgMzIxLjggMjU2ek0zNTIgNDIxLjhsLTY0LTY0IDAgMTAuMmMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMTIgNTguMiAwLTEzNC44LTEzNC44LTI5LjkgNTkuOWMtMy42IDcuMi01LjUgMTUuMS01LjUgMjMuMiAwIDI3LjMgMjEuMiA0OS43IDQ4IDUxLjZMNjQgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTAuMnoiXX0sUWFhPXpnZSxDZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydC1kb3duIixpY29uOlszODQsNTEyLFsic29ydC1kZXNjIl0sImYwZGQiLCJNMzIgMjg4Yy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy4yIDMzMy41IDkuNCAzNDIuNmwxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzY0LjkgMjg4IDM1MiAyODhMMzIgMjg4eiJdfSxKYWE9Q2dlLGVyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXNldGEtc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTIyMSIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgMTA0LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDIzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgOTYgMGM4MC4yIDAgMTQ2LjYtNTkgMTU4LjItMTM2bDI1LjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjUuOCAwQzM4Ni42IDkxIDMyMC4yIDMyIDI0MCAzMkwxMTIgMzJ6TTMzMyAxNjhsLTE4OSAwIDAtNzIgOTYgMGM0NC43IDAgODIuMyAzMC42IDkzIDcyek0xNDQgMjE2bDE4OSAwYy0xMC43IDQxLjQtNDguMiA3Mi05MyA3MmwtOTYgMCAwLTcyeiJdfSxfZ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0LXNjcmVlbi1idXR0b24iLGljb246WzQ0OCw1MTIsWyJ0YWJsZXQtYWx0Il0sImYzZmEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTYgNDMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCA2NGwtMzIwIDAgMCAyODggMzIwIDAgMC0yODh6Il19LHRyYT1fZ2UsVGdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1kb2xsYXIiLGljb246WzU3Niw1MTIsWyJoYW5kLWhvbGRpbmctdXNkIl0sImY0YzAiLCJNMjg4LTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEyLTEuOCAwYy0zNi42IDAtNjYuMiAyOS43LTY2LjIgNjYuMiAwIDMzLjQgMjQuOSA2MS42IDU4IDY1LjdsNjEgNy42YzUuMSAuNiA5IDUgOSAxMC4yIDAgNS43LTQuNiAxMC4yLTEwLjIgMTAuMkwyNDAgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOHMxMi41IDI4IDI4IDI4bDI0IDAgMCAxMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTIgMS44IDBjMzYuNiAwIDY2LjItMjkuNyA2Ni4yLTY2LjIgMC0zMy40LTI0LjktNjEuNi01OC02NS43bC02MS03LjZjLTUuMS0uNi05LTUtOS0xMC4yIDAtNS43IDQuNi0xMC4yIDEwLjItMTAuMkwzMjggNzZjMTUuNSAwIDI4LTEyLjUgMjgtMjhzLTEyLjUtMjgtMjgtMjhsLTE2IDAgMC0xMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LGFyYT1UZ2UsTGdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZCIsaWNvbjpbNTEyLDUxMixbMTI4NzM3LCJzaGllbGQtYmxhbmsiXSwiZjEzMiIsIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuOCA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMi0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjItMTYuNyA4LTM2LjEgOC01Mi44IDAtMTcyLjQtODIuNS0yMTMuMS0yNjQtMjEzLjYtMzYzLjItLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOSAxIDI1MS40IDAgMjU2IDB6Il19LHJyYT1MZ2UsJGdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2giLGljb246WzUxMiw1MTIsWyJsYXVnaCJdLCJmNTk5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHNyYT0kZ2UsaXJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWhvbGRpbmciLGljb246WzY0MCw1MTIsW10sImY0YzIiLCJNODAgMTA0YzAtMjIuMS0xNy45LTQwLTQwLTQwUzAgODEuOSAwIDEwNEwwIDMyNS41YzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45TDEyOCA0OTMuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43bDY2LjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTc4LjljMC0yOS43LTExLjgtNTguMi0zMi44LTc5LjJsLTI1LjMtMjUuMyAwIDBjLTcuMy03LjMtMjMuMS0yMy4xLTQ3LjItNDcuMi0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2MyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMiAxMSAxMSA5LjIgMjkuMi0zLjcgMzcuOC05LjcgNi41LTIyLjcgNS4yLTMxLTMuMUw5OC43IDMwOS41Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zTDgwIDEwNHptNDgwIDBsMCAxNjAuMmMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNTEuMSA1MS4xYy04LjMgOC4zLTIxLjMgOS42LTMxIDMuMS0xMi45LTguNi0xNC43LTI2LjktMy43LTM3LjggNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwYy0yNC4xIDI0LjEtMzkuOSAzOS45LTQ3LjIgNDcuMmwwIDAtMjUuMyAyNS4zYy0yMSAyMS0zMi44IDQ5LjUtMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2Ni43IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsOTkuOS05OS45YzE4LTE4IDI4LjEtNDIuNCAyOC4xLTY3LjlMNjQwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHoiXX0sRGdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtc2hvcHBpbmciLGljb246WzY0MCw1MTIsWzEyODcyMiwic2hvcHBpbmctY2FydCJdLCJmMDdhIiwiTTI0LTE2QzEwLjctMTYgMC01LjMgMCA4UzEwLjcgMzIgMjQgMzJsNDUuMyAwYzMuOSAwIDcuMiAyLjggNy45IDYuNmw1Mi4xIDI4Ni4zYzYuMiAzNC4yIDM2IDU5LjEgNzAuOCA1OS4xTDQ1NiAzODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1NS45IDBjLTExLjYgMC0yMS41LTguMy0yMy42LTE5LjdsLTUuMS0yOC4zIDMwMy42IDBjMzAuOCAwIDU3LjItMjEuOSA2Mi45LTUyLjJMNTY4LjkgNjkuOUM1NzIuNiA1MC4yIDU1Ny41IDMyIDUzNy40IDMybC00MTIuNyAwLS40LTJjLTQuOC0yNi42LTI4LTQ2LTU1LjEtNDZMMjQtMTZ6TTIwOCA1MTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0yMjQgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6Il19LG9yYT1EZ2UsbnJhPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9jdGFnb24iLGljb246WzUxMiw1MTIsWzEyODcyMV0sImYzMDYiLCJNMTg4LjYgLjFjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDE5LjIgMTQzQzcuMiAxNTUgLjUgMTcxLjIgLjUgMTg4LjJsMCAxMzUuNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0wxNDMuNCA0OTMuMmMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43bDEzNS42IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjYgMzY5YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNsMC0xMzUuNmMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNjkuNSAxOC44Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDE4OC42IC4xeiJdfSxscmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTEyOCA0MGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTQ4LjJjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMiAyMC42IDAgMzguMiAxMyA0NSAzMS4yIDguOC05LjMgMjEuMi0xNS4yIDM1LTE1LjIgMjUuMyAwIDQ2IDE5LjUgNDcuOSA0NC4zIDguNS03LjcgMTkuOC0xMi4zIDMyLjEtMTIuMyAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDExMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtODUuMyAwYy01IDAtOS45LS4zLTE0LjctMS01NS4zLTUuNi0xMDYuMi0zNC0xNDAtNzlMOCAzMzZjLTEzLjMtMTcuNy05LjctNDIuNyA4LTU2czQyLjctOS43IDU2IDhsNTYgNzQuNyAwLTMyMi43ek0yNDAgMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6Il19LGNyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWdpc3RlcmVkIixpY29uOls1MTIsNTEyLFsxNzRdLCJmMjVkIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDAgMTQ0bDgwIDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyOC45LTE3IDUzLjgtNDEuNiA2NS4zbDMwLjIgNTAuM2M2LjggMTEuNCAzLjEgMjYuMS04LjIgMzIuOXMtMjYuMSAzLjEtMzIuOS04LjJsLTQxLTY4LjMtMzQuNCAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTcyIDk2bDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMCAwIDQ4IDQ4IDB6Il19LGRyYT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1zaWduYWwiLGljb246WzU3Niw1MTIsW10sImUwMTIiLCJNNTE1LjkgMjQwbC0xOS45IDAgMCAxNDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEzNyAwYy0yNC05MS43LTkzLjUtMTY1LTE4My0xOTQuM2wwLTEzLjctMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyNzYuNS00LjlDMjgzLjktMTIgMjkzLjctMTYgMzA0LTE2czIwLjEgNCAyNy41IDExLjFMNTM1LjQgMTkxLjdjNS41IDUuMyA4LjYgMTIuNiA4LjYgMjAuMiAwIDE1LjUtMTIuNiAyOC4xLTI4LjEgMjguMXpNMjgwIDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6TTI0IDI4OGMxMjguMSAwIDIzMiAxMDMuOSAyMzIgMjMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTAgNDA4YzAtMTMuMyAxMC43LTI0IDI0LTI0IDc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4LTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSx1cmE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuZ2xhZGVzaGktdGFrYS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMmU2IiwiTTM2IDMyLjNDMTguNCAzMC4xIDIuNCA0Mi41IC4zIDYwUzEwLjUgOTMuNiAyOCA5NS44bDcuOSAxYzE2IDIgMjggMTUuNiAyOCAzMS44bDAgMzEuNS00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAxNzZjMCA1MyA0MyA5NiA5NiA5NmwzMiAwYzEwNiAwIDE5Mi04NiAxOTItMTkybDAtMzJjMC01My00My05Ni05Ni05NmwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC0zMS41QzEyOCA4MC4xIDkyIDM5LjIgNDMuOSAzMy4ybC03LjktMXoiXX0sUyRhPXtmYTA6a0x0LGZhMTpTTHQsZmEyOnpMdCxmYTM6Q0x0LGZhNDpfTHQsZmE1OlRMdCxmYTY6TEx0LGZhNzokTHQsZmE4OkRMdCxmYTk6QUx0LGZhRG9sbGFyU2lnbjp6ZWUsZmFEb2xsYXI6UEx0LGZhVXNkOkVMdCxmYURvZzpJTHQsZmFUcnVja01vdmluZzpOTHQsZmFSb3RhdGU6TWZlLGZhU3luY0FsdDpSTHQsZmFTcXVhcmVNaW51czprZmUsZmFNaW51c1NxdWFyZTpPTHQsZmFBbGlnbkp1c3RpZnk6Rkx0LGZhQ2FsZW5kYXJDaGVjazpCTHQsZmFGYWNlS2lzczpTZmUsZmFLaXNzOkhMdCxmYUtpdGNoZW5TZXQ6cUx0LGZhRG5hOlZMdCxmYUNoaWxkUmVhY2hpbmc6akx0LGZhUGFzdGU6UWIsZmFGaWxlQ2xpcGJvYXJkOlVMdCxmYU1ldGVvcjpXTHQsZmFHZWFyczp6ZmUsZmFDb2dzOkdMdCxmYUZpbGVDaXJjbGVQbHVzOllMdCxmYUljaWNsZXM6S0x0LGZhQXJyb3dUcmVuZFVwOlpMdCxmYUhleGFnb25Ob2Rlc0JvbHQ6WEx0LGZhUXVlc3Rpb246UUx0LGZhSGFuZHNCb3VuZDpKTHQsZmFQZXJzb25XYWxraW5nTHVnZ2FnZTplJHQsZmFGaWxlQXJyb3dEb3duOkNmZSxmYUZpbGVEb3dubG9hZDp0JHQsZmFQZXJzb25Cb290aDphJHQsZmFMb2N1c3Q6ciR0LGZhUmlnaHRMb25nOl9mZSxmYUxvbmdBcnJvd0FsdFJpZ2h0OnMkdCxmYVRydWNrRHJvcGxldDppJHQsZmFIYW5kSG9sZGluZ01lZGljYWw6byR0LGZhSGFuZFBvaW50TGVmdDpuJHQsZmFDYWxjdWxhdG9yOmwkdCxmYU1pbnVzOkpiLGZhU3VidHJhY3Q6YyR0LGZhQXJyb3dVcFpBOlRmZSxmYVNvcnRBbHBoYVVwQWx0OmQkdCxmYU1pY3JvcGhvbmVTbGFzaDp1JHQsZmFTcXVhcmVQZW46Q2VlLGZhUGVuU3F1YXJlOnAkdCxmYVBlbmNpbFNxdWFyZTpmJHQsZmFIYW5kRmlzdDpMZmUsZmFGaXN0UmFpc2VkOmgkdCxmYUNvbW1lbnRTbXM6JGZlLGZhU21zOm0kdCxmYVNpbUNhcmQ6ZyR0LGZhU2NhbGVCYWxhbmNlZDpEZmUsZmFCYWxhbmNlU2NhbGU6YiR0LGZhQ2FyOkFmZSxmYUF1dG9tb2JpbGU6diR0LGZhQ3JvcFNpbXBsZTpQZmUsZmFDcm9wQWx0OngkdCxmYU1lZGFsOnkkdCxmYVNjcm9sbDp3JHQsZmFGaWxlRXhjZWw6TSR0LGZhRmlsdGVyOmskdCxmYURydW06UyR0LGZhTWFwUGluOnokdCxmYVNjYWxlVW5iYWxhbmNlZEZsaXA6RWZlLGZhQmFsYW5jZVNjYWxlUmlnaHQ6QyR0LGZhQXJyb3dzVG9DaXJjbGU6XyR0LGZhRW52ZWxvcGU6VCR0LGZhQmFieTpMJHQsZmFTcXVhcmVDYXJldERvd246SWZlLGZhQ2FyZXRTcXVhcmVEb3duOiQkdCxmYVRlbnQ6RCR0LGZhQTpBJHQsZmFQYXJhY2h1dGVCb3g6UCR0LGZhQ2FydEFycm93RG93bjpFJHQsZmFCcmlkZ2VDaXJjbGVFeGNsYW1hdGlvbjpJJHQsZmFDbG91ZEFycm93VXA6X2VlLGZhQ2xvdWRVcGxvYWQ6TiR0LGZhQ2xvdWRVcGxvYWRBbHQ6UiR0LGZhQXQ6TyR0LGZhSW5kaWFuUnVwZWVTaWduOlRlZSxmYUluZGlhblJ1cGVlOkYkdCxmYUlucjpCJHQsZmFUcnVjazpIJHQsZmFDaGFsa2JvYXJkVXNlcjpOZmUsZmFDaGFsa2JvYXJkVGVhY2hlcjpxJHQsZmFVc2VyQ2hlY2s6ViR0LGZhVXNlck5pbmphOmokdCxmYVBsYW50V2lsdDpVJHQsZmFXZWlnaHRTY2FsZTpSZmUsZmFXZWlnaHQ6VyR0LGZhQ2FyZXRSaWdodDpNdGUsZmFGbG9yaW5TaWduOkckdCxmYUJlbGw6a3RlLGZhTGFyaVNpZ246WSR0LGZhTWlsbFNpZ246SyR0LGZhUGVyc29uU25vd2JvYXJkaW5nOk9mZSxmYVNub3dib2FyZGluZzpaJHQsZmFUdHk6RmZlLGZhVGVsZXR5cGU6WCR0LGZhVXNlcnNSZWN0YW5nbGU6USR0LGZhTW9iaWxlOkxlZSxmYU1vYmlsZUFuZHJvaWQ6SiR0LGZhTW9iaWxlUGhvbmU6ZUR0LGZhQXJyb3dzVHVyblRvRG90czp0RHQsZmFFeGNsYW1hdGlvbjphRHQsZmFDaHVyY2g6ckR0LGZhVG9nZ2xlT2ZmOnNEdCxmYVNob2VQcmludHM6aUR0LGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uOm9EdCxmYVdhbGxldDpTdGUsZmFNZXNzYWdlOmV2LGZhQ29tbWVudEFsdDpuRHQsZmFUcm9waHk6bER0LGZhRmFjZURpenp5OkJmZSxmYURpenp5OmNEdCxmYUJhY3RlcmlhOmREdCxmYUVhckRlYWY6TmIsZmFEZWFmOnVEdCxmYURlYWZuZXNzOnBEdCxmYUhhcmRPZkhlYXJpbmc6ZkR0LGZhUGVvcGxlQXJyb3dzOkhmZSxmYVBlb3BsZUFycm93c0xlZnRSaWdodDpoRHQsZmFIYW5kc0NsYXBwaW5nOm1EdCxmYVZpcnVzQ292aWRTbGFzaDpnRHQsZmFDYWxlbmRhckRheXM6cWZlLGZhQ2FsZW5kYXJBbHQ6YkR0LGZhRGlhbW9uZFR1cm5SaWdodDpWZmUsZmFEaXJlY3Rpb25zOnZEdCxmYUhhbmRQb2ludFVwOnhEdCxmYUJlemllckN1cnZlOnlEdCxmYVBlcnNvbkhhbGZEcmVzczp3RHQsZmFTcXVhcmVQb2xsSG9yaXpvbnRhbDpqZmUsZmFQb2xsSDpNRHQsZmFTY2hvb2xDaXJjbGVYbWFyazprRHQsZmFIYW5kTGl6YXJkOlNEdCxmYUNoYWxrYm9hcmQ6VWZlLGZhQmxhY2tib2FyZDp6RHQsZmFVcFJpZ2h0RnJvbVNxdWFyZTpXZmUsZmFFeHRlcm5hbExpbmtBbHQ6Q0R0LGZhU3F1YXJlRnVsbDpfRHQsZmFDbG92ZXI6VER0LGZhVGVldGhPcGVuOkxEdCxmYUJhcnNTdGFnZ2VyZWQ6JGVlLGZhUmVvcmRlcjokRHQsZmFTdHJlYW06RER0LGZhV2FyZWhvdXNlOkFEdCxmYVN3YXRjaGJvb2s6UER0LGZhQ2FtcGdyb3VuZDpFRHQsZmFQZXJzb25XYWxraW5nQXJyb3dSaWdodDpJRHQsZmFHbGFzc2VzOk5EdCxmYUNpcmNsZVBhdXNlOkdmZSxmYVBhdXNlQ2lyY2xlOlJEdCxmYU1lbW9yeTpPRHQsZmFHaWZ0OkZEdCxmYU1vbmV5QmlsbFdoZWF0OkJEdCxmYUR1bmdlb246SER0LGZhU3VpdGNhc2VNZWRpY2FsOllmZSxmYU1lZGtpdDpxRHQsZmFQZXJzb25DYW5lOlZEdCxmYUdhdWdlOlJiLGZhRGFzaGJvYXJkOmpEdCxmYUdhdWdlTWVkOlVEdCxmYVRhY2hvbWV0ZXJBbHRBdmVyYWdlOldEdCxmYUVudmVsb3BlT3BlblRleHQ6R0R0LGZhVG9vbGJveDpZRHQsZmFQb3dlck9mZjpLRHQsZmFTaWduYWw6RGVlLGZhU2lnbmFsNTpaRHQsZmFTaWduYWxQZXJmZWN0OlhEdCxmYUFycm93c1NwaW46UUR0LGZhSm9pbnQ6SkR0LGZhQnJhaWxsZTplQXQsZmFCYXNrZXRTaG9wcGluZzpLZmUsZmFTaG9wcGluZ0Jhc2tldDp0QXQsZmFCcmlkZ2U6YUF0LGZhUGxhbmVBcnJpdmFsOnJBdCxmYUNhc2hSZWdpc3RlcjpzQXQsZmFSaW5nOmlBdCxmYUFxdWFyaXVzOm9BdCxmYVNoYXJlTm9kZXM6WmZlLGZhU2hhcmVBbHQ6bkF0LGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb246bEF0LGZhQmlub2N1bGFyczpjQXQsZmFLaXBTaWduOmRBdCxmYUhhcmREcml2ZTpYZmUsZmFIZGQ6dUF0LGZhUmFua2luZ1N0YXI6cEF0LGZhVXNlclRpZTpmQXQsZmFFbGxpcHNpczpRZmUsZmFFbGxpcHNpc0g6aEF0LGZhU3RvcmVTbGFzaDptQXQsZmFQZXJjZW50OkpmZSxmYVBlcmNlbnRhZ2U6Z0F0LGZhRmlsZVppcHBlcjplNWUsZmFGaWxlQXJjaGl2ZTpiQXQsZmFEaXNwbGF5OnZBdCxmYUljb25zOnQ1ZSxmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0OnhBdCxmYVJ1bGVyVmVydGljYWw6eUF0LGZhTWFwTG9jYXRpb25Eb3Q6YTVlLGZhTWFwTWFya2VkQWx0OndBdCxmYUhlYXJ0Q3JhY2s6cjVlLGZhSGVhcnRCcm9rZW46TUF0LGZhQ293OmtBdCxmYVJzczp0dixmYUZlZWQ6U0F0LGZhTWFnbmlmeWluZ0dsYXNzOmF2LGZhU2VhcmNoOnpBdCxmYUNsb3VkTW9vbjpDQXQsZmFCb3hlc1N0YWNrZWQ6QWVlLGZhQm94ZXM6X0F0LGZhQm94ZXNBbHQ6VEF0LGZhQ29kZUJyYW5jaDpMQXQsZmFCYW46czVlLGZhQ2FuY2VsOiRBdCxmYUp1Z0RldGVyZ2VudDpEQXQsZmFSZXBseTppNWUsZmFNYWlsUmVwbHk6QUF0LGZhU3VuUGxhbnRXaWx0OlBBdCxmYUJhY3Rlcml1bTpFQXQsZmFSZWNvcmRWaW55bDpJQXQsZmFGbG9wcHlEaXNrOm81ZSxmYVNhdmU6TkF0LGZhVG9pbGV0c1BvcnRhYmxlOlJBdCxmYU86T0F0LGZhUGFsZXR0ZTpGQXQsZmFVbmxvY2s6QkF0LGZhRWFyTGlzdGVuOm41ZSxmYUFzc2lzdGl2ZUxpc3RlbmluZ1N5c3RlbXM6SEF0LGZhQ29kZVB1bGxSZXF1ZXN0OnFBdCxmYUtleTpWQXQsZmFTa3VsbDpqQXQsZmFNYXJzU3Ryb2tlVXA6bDVlLGZhTWFyc1N0cm9rZVY6VUF0LGZhRmlyZUZsYW1lU2ltcGxlOmM1ZSxmYUJ1cm46V0F0LGZhVHJlZTpHQXQsZmFTbW9nOllBdCxmYVM6S0F0LGZhSmVkaTpaQXQsZmFQZXJzb25IaWtpbmc6ZDVlLGZhSGlraW5nOlhBdCxmYUFycm93c1VwVG9MaW5lOlFBdCxmYU1hcnNEb3VibGU6SkF0LGZhVGhlcm1vbWV0ZXI6ZVB0LGZhUGFpbnRicnVzaDp1NWUsZmFQYWludEJydXNoOnRQdCxmYU5ldXRlcjphUHQsZmFTcXVhcmVQaG9uZUZsaXA6cDVlLGZhUGhvbmVTcXVhcmVBbHQ6clB0LGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQ6ZjVlLGZhR3JpblRvbmd1ZVNxdWludDpzUHQsZmFDb21tZW50RG9sbGFyOmlQdCxmYUhpcHBvOm9QdCxmYUJvd2xGb29kOm5QdCxmYVNxdWFyZVZpcnVzOmxQdCxmYUNsb3VkU3VuUmFpbjpjUHQsZmFBcnJvd1JpZ2h0TG9uZzpoNWUsZmFMb25nQXJyb3dSaWdodDpkUHQsZmFCdWlsZGluZ1VuOnVQdCxmYVRlbXBlcmF0dXJlTG93OnBQdCxmYURvb3JPcGVuOmZQdCxmYUFsaWduTGVmdDpoUHQsZmFDYW1lcmE6bTVlLGZhQ2FtZXJhQWx0Om1QdCxmYVVzZXJzUmF5czpnUHQsZmFSYWluYm93OmJQdCxmYVNpdGVtYXA6dlB0LGZhRmFjZUdyaW5TdGFyczpnNWUsZmFHcmluU3RhcnM6eFB0LGZhU29ydFVwOmI1ZSxmYVNvcnRBc2M6eVB0LGZhRXllOnp0ZSxmYUNhcmV0TGVmdDpDdGUsZmFBcHBsZVdob2xlOnY1ZSxmYUFwcGxlQWx0OndQdCxmYVNjcm9sbFRvcmFoOng1ZSxmYVRvcmFoOk1QdCxmYUhvdXNlTG9jazprUHQsZmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmU6U1B0LGZhVHJhc2g6aHYsZmFGYWNlU2FkVGVhcjp5NWUsZmFTYWRUZWFyOnpQdCxmYUZheDpDUHQsZmFQZXJzb25DaXJjbGVQbHVzOl9QdCxmYUhhbXNhOlRQdCxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOkxQdCxmYUNsaXBib2FyZENoZWNrOiRQdCxmYVNoYXJlRnJvbVNxdWFyZTp3NWUsZmFTaGFyZVNxdWFyZTpEUHQsZmFSZWNlaXB0Ol90ZSxmYUVxdWFsczpBUHQsZmFDaGV2cm9uVXA6UFB0LGZhVmlydXNTbGFzaDpFUHQsZmFTbGFzaDpJUHQsZmFFeHBhbmQ6TlB0LGZhTm90ZVN0aWNreTpNNWUsZmFTdGlja3lOb3RlOlJQdCxmYVRhYmxlQ29sdW1uczprNWUsZmFDb2x1bW5zOk9QdCxmYVBlcnNvblNoZWx0ZXI6RlB0LGZhQ2lyY2xlTm90Y2g6QlB0LGZhV2F0ZXI6SFB0LGZhRGVsZXRlTGVmdDpTNWUsZmFCYWNrc3BhY2U6cVB0LGZhQnJvb21CYWxsOlBlZSxmYVF1aWRkaXRjaDpWUHQsZmFRdWlkZGl0Y2hCcm9vbUJhbGw6alB0LGZhSjpVUHQsZmFTaHV0dGxlU3BhY2U6ejVlLGZhU3BhY2VTaHV0dGxlOldQdCxmYVlpbllhbmc6R1B0LGZhU3RvcDpZUHQsZmFUcm93ZWw6S1B0LGZhSGFuZEJhY2tGaXN0OkM1ZSxmYUhhbmRSb2NrOlpQdCxmYVRlbXBlcmF0dXJlSGlnaDpYUHQsZmFHcmVhdGVyVGhhbjpRUHQsZmFDcnV0Y2g6SlB0LGZhU2VwdGFnb246XzVlLGZhSGVwdGFnb246ZUV0LGZhU3RyZWV0Vmlldzp0RXQsZmFXYXZlU3F1YXJlOmFFdCxmYUFuZ2xlTGVmdDpyRXQsZmFTY3Jld2RyaXZlcjpzRXQsZmFUcmFjdG9yOmlFdCxmYUJyaWRnZUNpcmNsZVhtYXJrOm9FdCxmYVZpYWxzOm5FdCxmYVN0ZXRob3Njb3BlOmxFdCxmYVBvZGNhc3Q6Y0V0LGZhQXJyb3dVcFJpZ2h0RG90czpkRXQsZmFDaGVzc1F1ZWVuOnVFdCxmYUFuY2hvckNpcmNsZUV4Y2xhbWF0aW9uOnBFdCxmYUVsbGlwc2lzVmVydGljYWw6VDVlLGZhRWxsaXBzaXNWOmZFdCxmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb246aEV0LGZhQnVpbGRpbmdDaXJjbGVFeGNsYW1hdGlvbjptRXQsZmFQZXJzb25BcnJvd1VwRnJvbUxpbmU6Z0V0LGZhTm90RXF1YWw6YkV0LGZhVHJhaW5UcmFtOnZFdCxmYVBsYW5lRGVwYXJ0dXJlOnhFdCxmYVJpZ2h0VG9CcmFja2V0Okw1ZSxmYVNpZ25JbkFsdDp5RXQsZmFTZENhcmQ6d0V0LGZhSG91c2VDaXJjbGVFeGNsYW1hdGlvbjpNRXQsZmFTaGVrZWxTaWduOlc4LGZhSWxzOmtFdCxmYVNoZWtlbDpTRXQsZmFTaGVxZWw6ekV0LGZhU2hlcWVsU2lnbjpDRXQsZmFSYWRpbzpfRXQsZmFIYW5kRG90czokNWUsZmFBbGxlcmdpZXM6VEV0LGZhQm9va1NrdWxsOkQ1ZSxmYUJvb2tEZWFkOkxFdCxmYVVubG9ja0tleWhvbGU6QTVlLGZhVW5sb2NrQWx0OiRFdCxmYUZpbGVBcnJvd1VwOlA1ZSxmYUZpbGVVcGxvYWQ6REV0LGZhRmFjZUdyaW5UZWFyczpFNWUsZmFHcmluVGVhcnM6QUV0LGZhUGVuVG9TcXVhcmU6cnYsZmFFZGl0OlBFdCxmYUVhcnRoRXVyb3BlOkk1ZSxmYUdsb2JlRXVyb3BlOkVFdCxmYUZhY2VHcmluQmVhbVN3ZWF0Ok41ZSxmYUdyaW5CZWFtU3dlYXQ6SUV0LGZhQ2lyY2xlSGFsZlN0cm9rZTpSNWUsZmFBZGp1c3Q6TkV0LGZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbjpSRXQsZmFUYWJsZUNlbGxzQ29sdW1uTG9jazpPRXQsZmFUcnVja0ZpZWxkVW46RkV0LGZhQ2xvY2s6TzVlLGZhQ2xvY2tGb3VyOkJFdCxmYUJvb2s6SEV0LGZhRmFjZUxhdWdoV2luazpGNWUsZmFMYXVnaFdpbms6cUV0LGZhQ2xvdWRNZWF0YmFsbDpWRXQsZmFDaGFydEFyZWE6QjVlLGZhQXJlYUNoYXJ0OmpFdCxmYVJ1cGlhaFNpZ246VUV0LGZhVGV4dFdpZHRoOldFdCxmYVNhdGVsbGl0ZTpHRXQsZmFNYWduaWZ5aW5nR2xhc3NNaW51czpINWUsZmFTZWFyY2hNaW51czpZRXQsZmFQZW9wbGVHcm91cDpLRXQsZmFTcXVhcmVCaW5hcnk6WkV0LGZhTWFza3NUaGVhdGVyOnE1ZSxmYVRoZWF0ZXJNYXNrczpYRXQsZmFDYXJ0UGx1czpRRXQsZmFIYW5kc0FzbEludGVycHJldGluZzpPYixmYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nOkpFdCxmYUFzbEludGVycHJldGluZzplSXQsZmFIYW5kc0FtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nOnRJdCxmYVRhYmxlQ2VsbHNSb3dVbmxvY2s6YUl0LGZhUm9ja2V0OnJJdCxmYVNocmltcDpzSXQsZmFUZW5nZVNpZ246VjVlLGZhVGVuZ2U6aUl0LGZhSG91c2VDaGltbmV5TWVkaWNhbDpqNWUsZmFDbGluaWNNZWRpY2FsOm9JdCxmYVVzZXJzU2xhc2g6bkl0LGZhUGFwZXJQbGFuZTpsSXQsZmFCb29rQXRsYXM6VTVlLGZhQXRsYXM6Y0l0LGZhVGFibGU6ZEl0LGZhSGVhcnQ6dUl0LGZhQ2lyY2xlQ2hldnJvblVwOlc1ZSxmYUNoZXZyb25DaXJjbGVVcDpwSXQsZmFCYXR0ZXJ5SGFsZjpHNWUsZmFCYXR0ZXJ5MzpmSXQsZmFGb250QXdlc29tZTpFZWUsZmFGb250QXdlc29tZUZsYWc6aEl0LGZhRm9udEF3ZXNvbWVMb2dvRnVsbDptSXQsZmFIYW5kY3VmZnM6Z0l0LGZhSGF0Q293Ym95U2lkZTpiSXQsZmFJbmR1c3RyeTp2SXQsZmFMaW5lc0xlYW5pbmc6eEl0LGZhUGFzc3BvcnQ6eUl0LGZhSW5maW5pdHk6d0l0LGZhQ2xvbmU6TUl0LGZhRm9yd2FyZDprSXQsZmFNOlNJdCxmYVJvYWRTcGlrZXM6ekl0LGZhTW91bnRhaW46Q0l0LGZhQ2hlc3M6X0l0LGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzOkZiLGZhVGVtcGVyYXR1cmUzOlRJdCxmYVRoZXJtb21ldGVyMzpMSXQsZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnM6JEl0LGZhQjpESXQsZmFTaGllbGRWaXJ1czpBSXQsZmFMaXRlY29pblNpZ246UEl0LGZhRGljZUQ2OkVJdCxmYUdyaXBMaW5lc1ZlcnRpY2FsOklJdCxmYUdvbGZCYWxsVGVlOlk1ZSxmYUdvbGZCYWxsOk5JdCxmYUhleGFnb246Ukl0LGZhRm9sZGVyT3BlbjpPSXQsZmFLYWFiYTpGSXQsZmFIYW5kSG9sZGluZzpCSXQsZmFTaW5nbGVRdW90ZVJpZ2h0OkhJdCxmYUJvdHRsZURyb3BsZXQ6cUl0LGZhV2luZG93TWluaW1pemU6Vkl0LGZhQ2hldnJvblJpZ2h0OmpJdCxmYUVnZzpVSXQsZmFMYW5kbWFya0RvbWU6SzVlLGZhTGFuZG1hcmtBbHQ6V0l0LGZhV29ybTpHSXQsZmFVc2VySW5qdXJlZDpZSXQsZmFTdHJpa2V0aHJvdWdoOktJdCxmYUJsb2c6Wkl0LGZhU3RvcHdhdGNoMjA6WEl0LGZhVHJ1Y2tQaWNrdXA6UUl0LGZhU2VlZGxpbmc6WjVlLGZhU3Byb3V0OkpJdCxmYVRyYW5zZ2VuZGVyOlg1ZSxmYVRyYW5zZ2VuZGVyQWx0OmVOdCxmYVN0YXJIYWxmOnROdCxmYVBob3RvRmlsbTpRNWUsZmFQaG90b1ZpZGVvOmFOdCxmYVBpY3R1cmVJblBpY3R1cmU6ck50LGZhUHVtcE1lZGljYWw6c050LGZhRmlyZTppTnQsZmFNYWduaWZ5aW5nR2xhc3NQbHVzOko1ZSxmYVNlYXJjaFBsdXM6b050LGZhRmxhc2s6bk50LGZhQWxpZ25SaWdodDpsTnQsZmFDYWJsZUNhcjplaGUsZmFUcmFtOmNOdCxmYUtpdE1lZGljYWw6dGhlLGZhRmlyc3RBaWQ6ZE50LGZhR3JpcExpbmVzOnVOdCxmYUJ1cmdlcjphaGUsZmFIYW1idXJnZXI6cE50LGZhU25vd21hbjpmTnQsZmFIb3RlbDpoTnQsZmFQcmludDptTnQsZmFWb2xsZXliYWxsOnJoZSxmYVZvbGxleWJhbGxCYWxsOmdOdCxmYVRyYWZmaWNMaWdodDpiTnQsZmFQbGFuZUNpcmNsZUNoZWNrOnZOdCxmYVVzZXJzOlR0ZSxmYUNlcnRpZmljYXRlOnhOdCxmYUFsYXJtQ2xvY2s6eU50LGZhSGVsaWNvcHRlclN5bWJvbDp3TnQsZmFIb3VzZUNoaW1uZXlDcmFjazpzaGUsZmFIb3VzZURhbWFnZTpNTnQsZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nOmtOdCxmYURhdGFiYXNlOlNOdCxmYU5ld3NwYXBlcjp6TnQsZmFDbG91ZFJhaW46Q050LGZhTWF4aW1pemU6aWhlLGZhRXhwYW5kQXJyb3dzQWx0Ol9OdCxmYUxvY2F0aW9uQXJyb3c6VE50LGZhQ2l0eTpMTnQsZmFYUmF5OiROdCxmYVVtYnJlbGxhQmVhY2g6RE50LGZhQXJyb3dSaWdodFRvQnJhY2tldDpvaGUsZmFTaWduSW46QU50LGZhSGVhZHNldDpQTnQsZmFTcGxvdGNoOkVOdCxmYVVwTG9uZzpuaGUsZmFMb25nQXJyb3dBbHRVcDpJTnQsZmFIZXhhZ29uTm9kZXM6Tk50LGZhSG9zcGl0YWw6SWVlLGZhSG9zcGl0YWxBbHQ6Uk50LGZhSG9zcGl0YWxXaWRlOk9OdCxmYVBlcnNvbkhhcmFzc2luZzpGTnQsZmFNb25leUJpbGxUcmVuZFVwOkJOdCxmYVBlblJ1bGVyOmxoZSxmYVBlbmNpbFJ1bGVyOkhOdCxmYVJlcGVhdDpxTnQsZmFCb25lOlZOdCxmYUZpcmVGbGFtZUN1cnZlZDpjaGUsZmFGaXJlQWx0OmpOdCxmYUJ1c1NpbXBsZTpkaGUsZmFCdXNBbHQ6VU50LGZhVmVudXNNYXJzOldOdCxmYUJsZW5kZXI6R050LGZhVTpZTnQsZmFTaGFyZTpzdixmYU1haWxGb3J3YXJkOktOdCxmYVBob25lRmxpcDp1aGUsZmFQaG9uZUFsdDpaTnQsZmFUb2lsZXRQb3J0YWJsZTpYTnQsZmFQZXJzb25QcmVnbmFudDpRTnQsZmFMZXNzVGhhbjpKTnQsZmFTdXBlcnNjcmlwdDplUnQsZmFDaXJjbGVTdG9wOnBoZSxmYVN0b3BDaXJjbGU6dFJ0LGZhQXJyb3dzVXBEb3duOmZoZSxmYUFycm93c1Y6YVJ0LGZhUG9vU3Rvcm06aGhlLGZhUG9vQm9sdDpyUnQsZmFWaWRlb1NsYXNoOnNSdCxmYVNxdWFyZVhtYXJrOk5lZSxmYVRpbWVzU3F1YXJlOmlSdCxmYVhtYXJrU3F1YXJlOm9SdCxmYUhhbmRIb2xkaW5nRHJvcGxldDptaGUsZmFIYW5kSG9sZGluZ1dhdGVyOm5SdCxmYVdvblNpZ246UmVlLGZhS3J3OmxSdCxmYVdvbjpjUnQsZmFPYmplY3RVbmdyb3VwOmRSdCxmYUNvbW1lbnQ6dVJ0LGZhSGlsbEF2YWxhbmNoZTpwUnQsZmFBcnJvd3NUb0V5ZTpmUnQsZmFTbm93cGxvdzpoUnQsZmFDaGFydEdhbnR0Om1SdCxmYVZpZGVvOmdoZSxmYVZpZGVvQ2FtZXJhOmdSdCxmYUNoZXNzUGF3bjpiUnQsZmFTeW5hZ29ndWU6dlJ0LGZhQnVpbGRpbmdDaXJjbGVDaGVjazp4UnQsZmFDYWxlbmRhclBsdXM6eVJ0LGZhV2hlZWxjaGFpck1vdmU6YmhlLGZhV2hlZWxjaGFpckFsdDp3UnQsZmFVc2VyU2hpZWxkOk1SdCxmYUJvbGQ6a1J0LGZhSGVhcnRQdWxzZTp2aGUsZmFIZWFydGJlYXQ6U1J0LGZhU3F1YXJlUm9vdFZhcmlhYmxlOnhoZSxmYVNxdWFyZVJvb3RBbHQ6elJ0LGZhSGFuZHNCdWJibGVzOnloZSxmYUhhbmRzV2FzaDpDUnQsZmFNYXJrZXI6X1J0LGZhQ2xpcGJvYXJkOlRSdCxmYVBsYWNlT2ZXb3JzaGlwOkxSdCxmYUNhbm5hYmlzOiRSdCxmYVBlb3BsZVJvb2Y6RFJ0LGZhRGlzZWFzZTpBUnQsZmFCb29rQmlibGU6d2hlLGZhQmlibGU6UFJ0LGZhQ2hlc3NCb2FyZDpFUnQsZmFNYXJzOklSdCxmYUxhcHRvcDpOUnQsZmFVc2VyWG1hcms6TWhlLGZhVXNlclRpbWVzOlJSdCxmYUZsYWdVc2E6T1J0LGZhSGFuZE1pZGRsZUZpbmdlcjpGUnQsZmFNb3J0YXJQZXN0bGU6QlJ0LGZhSGVhZFNpZGVDb3VnaDpIUnQsZmFQbGFuZUxvY2s6cVJ0LGZhQmF0dGVyeVRocmVlUXVhcnRlcnM6a2hlLGZhQmF0dGVyeTQ6VlJ0LGZhRnJhbmNTaWduOmpSdCxmYUZpbHRlckNpcmNsZURvbGxhcjpTaGUsZmFGdW5uZWxEb2xsYXI6VVJ0LGZhQ2hlZXNlOldSdCxmYUNpcmNsZUg6emhlLGZhSG9zcGl0YWxTeW1ib2w6R1J0LGZhU2Nob29sOllSdCxmYURpY2VGaXZlOktSdCxmYVRvcm5hZG86WlJ0LGZhSmV0RmlnaHRlcjpDaGUsZmFGaWdodGVySmV0OlhSdCxmYVRodW1ic0Rvd246UVJ0LGZhQnJvb206SlJ0LGZhRmlsZUltcG9ydDpfaGUsZmFBcnJvd1JpZ2h0VG9GaWxlOmVPdCxmYVV0ZW5zaWxzOlRoZSxmYUN1dGxlcnk6dE90LGZhSWRCYWRnZTphT3QsZmFTcGlkZXI6ck90LGZhTW9iaWxlUmV0cm86c090LGZhU2lnbnNQb3N0OkxoZSxmYU1hcFNpZ25zOmlPdCxmYUdyb3VwQXJyb3dzUm90YXRlOm9PdCxmYUFycm93c1NwbGl0VXBBbmRMZWZ0Om5PdCxmYUZpbGxEcmlwOmxPdCxmYVNoaWVsZEhlYXJ0OmNPdCxmYVBlcnNvblNraWluZ05vcmRpYzokaGUsZmFTa2lpbmdOb3JkaWM6ZE90LGZhU3F1YXJlQ2hlY2s6RGhlLGZhQ2hlY2tTcXVhcmU6dU90LGZhQmF0aDpBaGUsZmFCYXRodHViOnBPdCxmYUNoZXNzQmlzaG9wOmZPdCxmYVByZXNjcmlwdGlvbkJvdHRsZU1lZGljYWw6UGhlLGZhUHJlc2NyaXB0aW9uQm90dGxlQWx0OmhPdCxmYURyYXdQb2x5Z29uOkVoZSxmYVZlY3RvclBvbHlnb246bU90LGZhSUN1cnNvcjpnT3QsZmFIZWFydENpcmNsZVBsdXM6Yk90LGZhU2hpZWxkRG9nOnZPdCxmYUdyZWF0ZXJUaGFuRXF1YWw6eE90LGZhRW52ZWxvcGVPcGVuOnlPdCxmYU1vdW5kOndPdCxmYVZvaWNlbWFpbDpNT3QsZmFWZXN0OmtPdCxmYUF1ZGlvRGVzY3JpcHRpb246U090LGZhVzp6T3QsZmFFeWVEcm9wcGVyOk9lZSxmYUV5ZURyb3BwZXJFbXB0eTpDT3QsZmFFeWVkcm9wcGVyOl9PdCxmYUNpcmNsZVhtYXJrOlo4LGZhVGltZXNDaXJjbGU6VE90LGZhWG1hcmtDaXJjbGU6TE90LGZhVHJhaWxlcjokT3QsZmFUdXJraXNoTGlyYVNpZ246RmVlLGZhVHJ5OkRPdCxmYVR1cmtpc2hMaXJhOkFPdCxmYVZvbGNhbm86UE90LGZhV2FuZFNwYXJrbGVzOkVPdCxmYU1pY3JvcGhvbmU6SU90LGZhQ3Jvd246Tk90LGZhVGVudEFycm93VHVybkxlZnQ6Uk90LGZhVHJ1Y2tGYXN0OkloZSxmYVNoaXBwaW5nRmFzdDpPT3QsZmFVc2VyUGVuOk5oZSxmYVVzZXJFZGl0OkZPdCxmYVVzZXJDbG9jazpCT3QsZmFTaG93ZXI6SE90LGZhU3F1YXJlQ2FyZXRVcDpSaGUsZmFDYXJldFNxdWFyZVVwOnFPdCxmYU1hcExvY2F0aW9uOk9oZSxmYU1hcE1hcmtlZDpWT3QsZmFQZW5GYW5jeTpqT3QsZmFFdXJvU2lnbjpCZWUsZmFFdXI6VU90LGZhRXVybzpXT3QsZmFIb3VzZUNpcmNsZVhtYXJrOkdPdCxmYUxpcmFTaWduOllPdCxmYVllblNpZ246RzgsZmFDbnk6S090LGZhSnB5OlpPdCxmYVJtYjpYT3QsZmFZZW46UU90LGZhQm94T3BlbjpKT3QsZmFUcnVja0ZpZWxkOmVGdCxmYUxvY2F0aW9uUGluTG9jazp0RnQsZmFQZXJzb25QcmF5aW5nOkZoZSxmYVByYXk6YUZ0LGZhQ2xpcGJvYXJkTGlzdDpyRnQsZmFTYWNrRG9sbGFyOnNGdCxmYU1vdW50YWluU3VuOmlGdCxmYUFycm93VXBXaWRlU2hvcnQ6QmhlLGZhU29ydEFtb3VudFVwOm9GdCxmYVVzZXJzTGluZTpuRnQsZmFTdGFyT2ZEYXZpZDpsRnQsZmFOb3Rlc01lZGljYWw6Y0Z0LGZhQXVzdHJhbFNpZ246ZEZ0LGZhQ2xpcGJvYXJkVXNlcjp1RnQsZmFGaWxlSW1hZ2U6cEZ0LGZhU3F1YXJlQ2FyZXRSaWdodDpIaGUsZmFDYXJldFNxdWFyZVJpZ2h0OmZGdCxmYVZpYWw6aEZ0LGZhSGVsaWNvcHRlcjptRnQsZmFNaXR0ZW46Z0Z0LGZhR2FzUHVtcDpiRnQsZmFFbnZlbG9wZUNpcmNsZUNoZWNrOnZGdCxmYVBlcnNvblNrYXRpbmc6cWhlLGZhU2thdGluZzp4RnQsZmFTdW46THRlLGZhQmFzZWJhbGw6VmhlLGZhQmFzZWJhbGxCYWxsOnlGdCxmYUltYWdlOndGdCxmYU5vdGRlZjpNRnQsZmFCYXNrZXRiYWxsOmpoZSxmYUJhc2tldGJhbGxCYWxsOmtGdCxmYVBlbmNpbDpVaGUsZmFQZW5jaWxBbHQ6U0Z0LGZhUGVyc29uV2Fsa2luZ0Fycm93TG9vcExlZnQ6ekZ0LGZhRGljZVNpeDpDRnQsZmFBbmdsZXNEb3duOldoZSxmYUFuZ2xlRG91YmxlRG93bjpfRnQsZmFTeXJpbmdlOlRGdCxmYVdoZWF0QXduOkdoZSxmYVdoZWF0QWx0OkxGdCxmYVBsYW5lVXA6JEZ0LGZhQWxpZ25DZW50ZXI6REZ0LGZhSG9ja2V5UHVjazpBRnQsZmFDaXJjbGVBcnJvd0xlZnQ6WWhlLGZhQXJyb3dDaXJjbGVMZWZ0OlBGdCxmYVBsdWdDaXJjbGVCb2x0OkVGdCxmYVJlc3Ryb29tOklGdCxmYUFuY2hvckxvY2s6TkZ0LGZhVGltZWxpbmU6UkZ0LGZhTGlnaHRidWxiOk9GdCxmYUNpcmNsZUFycm93UmlnaHQ6S2hlLGZhQXJyb3dDaXJjbGVSaWdodDpGRnQsZmFNYXJzQW5kVmVudXM6QkZ0LGZhTmV0d29ya1dpcmVkOiR0ZSxmYUJ1aWxkaW5nU2hpZWxkOkhGdCxmYUNvZGU6cUZ0LGZhRmVhdGhlclBvaW50ZWQ6WmhlLGZhRmVhdGhlckFsdDpWRnQsZmFGaWxlQ2lyY2xlUXVlc3Rpb246akZ0LGZhU2lnbmF0dXJlOlVGdCxmYUVhcnRoQW1lcmljYXM6QmIsZmFFYXJ0aDpXRnQsZmFFYXJ0aEFtZXJpY2E6R0Z0LGZhR2xvYmVBbWVyaWNhczpZRnQsZmFDYXJyb3Q6S0Z0LGZhVGVtcGVyYXR1cmVGdWxsOkhiLGZhVGVtcGVyYXR1cmU0OlpGdCxmYVRoZXJtb21ldGVyNDpYRnQsZmFUaGVybW9tZXRlckZ1bGw6UUZ0LGZhVGFibGVDZWxsc1Jvd0xvY2s6SkZ0LGZhQm9sdExpZ2h0bmluZzplQnQsZmFDbG91ZFNob3dlcnNXYXRlcjp0QnQsZmFBcnJvd1VwTG9uZzpYaGUsZmFMb25nQXJyb3dVcDphQnQsZmFBZGRyZXNzQ2FyZDpIZWUsZmFDb250YWN0Q2FyZDpyQnQsZmFWY2FyZDpzQnQsZmFBbmdsZVJpZ2h0OmlCdCxmYUZhY2VNZWg6UWhlLGZhTWVoOm9CdCxmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXI6bkJ0LGZhTWFwOmxCdCxmYVVzZXJQbHVzOmNCdCxmYVZlbnVzOmRCdCxmYURpYWdyYW1TdWNjZXNzb3I6dUJ0LGZhSGVhZFNpZGVDb3VnaFNsYXNoOnBCdCxmYURpYWdyYW1Qcm9qZWN0OkpoZSxmYVByb2plY3REaWFncmFtOmZCdCxmYVRlcm1pbmFsOkR0ZSxmYUhvdXNlRmlyZTpoQnQsZmFNYXNrOm1CdCxmYUh1cnJpY2FuZTpnQnQsZmFFYXJ0aEFmcmljYTplOGUsZmFHbG9iZUFmcmljYTpiQnQsZmFUaHVtYnRhY2s6dDhlLGZhVGh1bWJUYWNrOnZCdCxmYUhhbmRQb2ludERvd246eEJ0LGZhRmFjZU1laEJsYW5rOmE4ZSxmYU1laEJsYW5rOnlCdCxmYVRlbXBlcmF0dXJlRW1wdHk6cWIsZmFUZW1wZXJhdHVyZTA6d0J0LGZhVGhlcm1vbWV0ZXIwOk1CdCxmYVRoZXJtb21ldGVyRW1wdHk6a0J0LGZhQm9yZGVyTm9uZTpTQnQsZmFIaWdobGlnaHRlcjp6QnQsZmFNb25leUJpbGxXYXZlOkNCdCxmYVRvaWxldFBhcGVyU2xhc2g6X0J0LGZhRmlsZVNoaWVsZDpUQnQsZmFUZXh0SGVpZ2h0OkxCdCxmYUZhY2VHcmluVG9uZ3VlOnI4ZSxmYUdyaW5Ub25ndWU6JEJ0LGZhRmlsZVNpZ25hdHVyZTpEQnQsZmFCdWlsZGluZ1doZWF0OkFCdCxmYVBsdWdDaXJjbGVNaW51czpQQnQsZmFGdXRib2w6cWVlLGZhRnV0Ym9sQmFsbDpFQnQsZmFTb2NjZXJCYWxsOklCdCxmYUNpcmNsZVBsdXM6czhlLGZhUGx1c0NpcmNsZTpOQnQsZmFCcmF6aWxpYW5SZWFsU2lnbjpSQnQsZmFTdGFyQW5kQ3Jlc2NlbnQ6T0J0LGZhRmFjZVN1cnByaXNlOmk4ZSxmYVN1cnByaXNlOkZCdCxmYUhvc3BpdGFsVXNlcjpCQnQsZmFBcnJvd0Rvd25VcExvY2s6SEJ0LGZhRm9sZGVyOm84ZSxmYUZvbGRlckJsYW5rOnFCdCxmYUhvbGx5QmVycnk6VkJ0LGZhVmVudXNEb3VibGU6akJ0LGZhQ2xpcGJvYXJkUXVlc3Rpb246VUJ0LGZhSG90ZG9nOldCdCxmYUFycm93VXBGcm9tQnJhY2tldDpHQnQsZmFNaWNyb3Njb3BlOllCdCxmYUNsb3VkOktCdCxmYUJhc2ViYWxsQmF0QmFsbDpaQnQsZmFDYXJSZWFyOm44ZSxmYUNhckFsdDpYQnQsZmFUaHVtYnRhY2tTbGFzaDpsOGUsZmFUaHVtYlRhY2tTbGFzaDpRQnQsZmFQbHVzTWludXM6SkJ0LGZhSG91c2VDaXJjbGVDaGVjazplSHQsZmFDYWxlbmRhckRheTp0SHQsZmFMaWJyYTphSHQsZmFDaXJjbGU6ckh0LGZhTW9iaWxlVmlicmF0ZTpzSHQsZmFGYWNlR3JpblNxdWludDpjOGUsZmFHcmluU3F1aW50OmlIdCxmYVVzZXJzQmV0d2VlbkxpbmVzOm9IdCxmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrOm5IdCxmYVRhYmxlTGlzdDpkOGUsZmFUaExpc3Q6bEh0LGZhRmxhc2tWaWFsOmNIdCxmYUNpcmNsZUV4Y2xhbWF0aW9uOnU4ZSxmYUV4Y2xhbWF0aW9uQ2lyY2xlOmRIdCxmYVRheGk6cDhlLGZhQ2FiOnVIdCxmYVRleHRTbGFzaDpmOGUsZmFSZW1vdmVGb3JtYXQ6cEh0LGZhUGVvcGxlUHVsbGluZzpmSHQsZmFCYWNrd2FyZDpoSHQsZmFDYXJCdXJzdDpoOGUsZmFDYXJDcmFzaDptSHQsZmFMaW5rOm04ZSxmYUNoYWluOmdIdCxmYUJhY2t3YXJkU3RlcDpnOGUsZmFTdGVwQmFja3dhcmQ6Ykh0LGZhWDp2SHQsZmFDaXJjbGVVc2VyOmI4ZSxmYVVzZXJDaXJjbGU6eEh0LGZhUmVjdGFuZ2xlTGlzdDp2OGUsZmFMaXN0QWx0OnlIdCxmYUhhbmQ6eDhlLGZhSGFuZFBhcGVyOndIdCxmYUNhbmNlcjpNSHQsZmFWYW5TaHV0dGxlOnk4ZSxmYVNodXR0bGVWYW46a0h0LGZhU3RhaXJzOlNIdCxmYUhvcnNlSGVhZDp6SHQsZmFWYXVsdDpDSHQsZmFDbG9zZWRDYXB0aW9uaW5nU2xhc2g6X0h0LGZhRHJ1bVN0ZWVscGFuOlRIdCxmYVRodW1ic1VwOkxIdCxmYVN0YW1wOiRIdCxmYU1lbm9yYWg6REh0LGZhQ2hpbGRyZW46QUh0LGZhQ2hhcnRMaW5lOnc4ZSxmYUxpbmVDaGFydDpQSHQsZmFTcXVhcmVFbnZlbG9wZTpNOGUsZmFFbnZlbG9wZVNxdWFyZTpFSHQsZmFCYW5TbW9raW5nOms4ZSxmYVNtb2tpbmdCYW46SUh0LGZhVHJ1Y2tGcm9udDpOSHQsZmFCdWlsZGluZzpBdGUsZmFCdWxsc2V5ZTpSSHQsZmFBcnJvd0xlZnRMb25nOlM4ZSxmYUxvbmdBcnJvd0xlZnQ6T0h0LGZhQ2hlc3NSb29rOkZIdCxmYUJsZW5kZXJQaG9uZTpCSHQsZmFBcnJvd1R1cm5VcDp6OGUsZmFMZXZlbFVwOkhIdCxmYUJpY3ljbGU6cUh0LGZhQ2lyY2xlQXJyb3dEb3duOkM4ZSxmYUFycm93Q2lyY2xlRG93bjpWSHQsZmFHZWFyOml2LGZhQ29nOmpIdCxmYU1hcnNBbmRWZW51c0J1cnN0OlVIdCxmYU90dGVyOldIdCxmYUNpcmNsZUNoZXZyb25MZWZ0Ol84ZSxmYUNoZXZyb25DaXJjbGVMZWZ0OkdIdCxmYUNpcmNsZVF1ZXN0aW9uOlQ4ZSxmYVF1ZXN0aW9uQ2lyY2xlOllIdCxmYVdhbGtpZVRhbGtpZTpLSHQsZmFVc2VyR3JvdXA6TDhlLGZhVXNlckZyaWVuZHM6Wkh0LGZhSG91c2VDaGltbmV5OiQ4ZSxmYUhvbWVMZzpYSHQsZmFSaWdodEZyb21CcmFja2V0OkQ4ZSxmYVNpZ25PdXRBbHQ6UUh0LGZhRmlsZTpKSHQsZmFQbGFuZVNsYXNoOmVxdCxmYUNsb3VkU2hvd2Vyc0hlYXZ5OnRxdCxmYVBlcnNvbkZhbGxpbmc6YXF0LGZhVHVybkRvd246QThlLGZhTGV2ZWxEb3duQWx0OnJxdCxmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXI6UDhlLGZhRXhwYW5kQWx0OnNxdCxmYVVzZXJUYWc6aXF0LGZhSGFuZFNwYXJrbGVzOm9xdCxmYUFycm93c1RvRG90Om5xdCxmYUZhY2VTYWRDcnk6RThlLGZhU2FkQ3J5OmxxdCxmYURvbmdTaWduOmNxdCxmYVBlb3BsZUxpbmU6ZHF0LGZhU3F1YXJlUnNzOkk4ZSxmYVJzc1NxdWFyZTp1cXQsZmFDYWxlbmRhck1pbnVzOnBxdCxmYUNoYXJ0RGlhZ3JhbTpmcXQsZmFGYWNlVGlyZWQ6TjhlLGZhVGlyZWQ6aHF0LGZhSGFuZFBvaW50UmlnaHQ6bXF0LGZhQXJyb3dVcDpncXQsZmFDdWJlc1N0YWNrZWQ6YnF0LGZhQ2hpbGRDb21iYXRhbnQ6UjhlLGZhQ2hpbGRSaWZsZTp2cXQsZmFWZXN0UGF0Y2hlczp4cXQsZmFNYXJ0aW5pR2xhc3NFbXB0eTpPOGUsZmFHbGFzc01hcnRpbmk6eXF0LGZhTWFnbmV0OndxdCxmYVJvYWRCYXJyaWVyOk1xdCxmYUNvbXBhc3NEcmFmdGluZzpGOGUsZmFEcmFmdGluZ0NvbXBhc3M6a3F0LGZhU3F1YXJlUGVyc29uQ29uZmluZWQ6U3F0LGZhUGxhdGVXaGVhdDp6cXQsZmFTaWduSGFuZ2luZzpCOGUsZmFTaWduOkNxdCxmYUNhckJhdHRlcnk6SDhlLGZhQmF0dGVyeUNhcjpfcXQsZmFTaGlydDpWZWUsZmFUU2hpcnQ6VHF0LGZhVHNoaXJ0OkxxdCxmYVBhcmFncmFwaDokcXQsZmFFbnZlbG9wZXNCdWxrOnE4ZSxmYU1haWxCdWxrOkRxdCxmYUd1aXRhcjpBcXQsZmFTdWl0Y2FzZTpQcXQsZmFDaXJjbGVVcDpWOGUsZmFBcnJvd0FsdENpcmNsZVVwOkVxdCxmYUY6SXF0LGZhWG1hcmtzTGluZXM6TnF0LGZhRWFydGhPY2VhbmlhOmo4ZSxmYUdsb2JlT2NlYW5pYTpScXQsZmFDb21tZW50U2xhc2g6T3F0LGZhUGxheTpGcXQsZmFWaWFsQ2lyY2xlQ2hlY2s6QnF0LGZhQnJpZGdlQ2lyY2xlQ2hlY2s6SHF0LGZhQ2VkaVNpZ246cXF0LGZhUHV6emxlUGllY2U6VnF0LGZhSGVsbWV0VW46anF0LGZhR2xhc3NXYXRlcjpVcXQsZmFIZWFydENpcmNsZUJvbHQ6V3F0LGZhUHVtcFNvYXA6R3F0LGZhSGFuZFNjaXNzb3JzOllxdCxmYURvbGx5OlU4ZSxmYURvbGx5Qm94OktxdCxmYVBhcGVyY2xpcDpQdGUsZmFEZW1vY3JhdDpacXQsZmFTcXVhcmVBcnJvd1VwUmlnaHQ6VzhlLGZhRXh0ZXJuYWxMaW5rU3F1YXJlOlhxdCxmYUZlcnJ5OlFxdCxmYU1vc3F1aXRvOkpxdCxmYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodDplVnQsZmFMZWZ0UmlnaHQ6RzhlLGZhQXJyb3dzQWx0SDp0VnQsZmFWaXJ1czphVnQsZmFHZW06clZ0LGZhVG9pbGV0OnNWdCxmYVNpbmdsZVF1b3RlTGVmdDppVnQsZmFNb25leUJpbGxzOm9WdCxmYVRhYmxldEJ1dHRvbjpuVnQsZmFSZWN0YW5nbGVYbWFyazpWYixmYVJlY3RhbmdsZVRpbWVzOmxWdCxmYVRpbWVzUmVjdGFuZ2xlOmNWdCxmYVdpbmRvd0Nsb3NlOmRWdCxmYVdyZW5jaDp1VnQsZmFUcmFzaENhbjpvdixmYVRyYXNoQWx0OnBWdCxmYVRhYmxlQ2VsbHM6WThlLGZhVGg6ZlZ0LGZhUmliYm9uOmhWdCxmYUxhbmRtYXJrRmxhZzptVnQsZmFVcERvd25MZWZ0UmlnaHQ6SzhlLGZhQXJyb3dzQWx0OmdWdCxmYUNhclNpZGU6YlZ0LGZhVHJhc2hBcnJvd1VwOlo4ZSxmYVRyYXNoUmVzdG9yZTp2VnQsZmFMaWZlUmluZzp4VnQsZmFDb3B5cmlnaHQ6eVZ0LGZhRmlsZVByZXNjcmlwdGlvbjp3VnQsZmFFcmFzZXI6TVZ0LGZhSG91cmdsYXNzU3RhcnQ6WDhlLGZhSG91cmdsYXNzMTprVnQsZmFDaXJjbGVMZWZ0OlE4ZSxmYUFycm93QWx0Q2lyY2xlTGVmdDpTVnQsZmFDcnV6ZWlyb1NpZ246elZ0LGZhU21va2luZzpDVnQsZmFTcXVhcmVQb2xsVmVydGljYWw6SjhlLGZhUG9sbDpfVnQsZmFQZXJzb25DaXJjbGVNaW51czpUVnQsZmFCaW9oYXphcmQ6TFZ0LGZhQmVsbENvbmNpZXJnZTplbWUsZmFDb25jaWVyZ2VCZWxsOiRWdCxmYVJ1bGVySG9yaXpvbnRhbDpEVnQsZmFIb3JzZTpBVnQsZmFDYWxlbmRhcjpQVnQsZmFIYW5kc0hvbGRpbmdDaGlsZDpFVnQsZmFJdGFsaWM6SVZ0LGZhS2hhbmRhOk5WdCxmYUZhY2VGcm93bk9wZW46dG1lLGZhRnJvd25PcGVuOlJWdCxmYUNoZWNrOkV0ZSxmYUZpbmdlcnByaW50Ok9WdCxmYUNoYXJnaW5nU3RhdGlvbjpGVnQsZmFVc2VyTG9jazpCVnQsZmFNb2JpbGVTY3JlZW5CdXR0b246YW1lLGZhTW9iaWxlQWx0OkhWdCxmYUFuY2hvckNpcmNsZUNoZWNrOnFWdCxmYVBlcnNvbldhbGtpbmdXaXRoQ2FuZTpybWUsZmFCbGluZDpWVnQsZmFGaWxlV2F2ZWZvcm06c21lLGZhRmlsZU1lZGljYWxBbHQ6alZ0LGZhSG91c2VDcmFjazpVVnQsZmFIYXRXaXphcmQ6V1Z0LGZhVXNlckRvY3RvcjppbWUsZmFVc2VyTWQ6R1Z0LGZhQ2hhcnRCYXI6b21lLGZhQmFyQ2hhcnQ6WVZ0LGZhU3ByYXlDYW5TcGFya2xlczpubWUsZmFBaXJGcmVzaGVuZXI6S1Z0LGZhQmFodFNpZ246WlZ0LGZhVGVtcGVyYXR1cmVBcnJvd1VwOmxtZSxmYVRlbXBlcmF0dXJlVXA6WFZ0LGZhV2ViQXdlc29tZTpRVnQsZmFOb25CaW5hcnk6SlZ0LGZhTjplanQsZmFBcnJvd3NVcERvd25MZWZ0UmlnaHQ6Y21lLGZhQXJyb3dzOnRqdCxmYUhvdXNlOmpiLGZhSG9tZTphanQsZmFIb21lQWx0OnJqdCxmYUhvbWVMZ0FsdDpzanQsZmFTcGlubmVyOmlqdCxmYUdhdmVsOmRtZSxmYUxlZ2FsOm9qdCxmYVRpY2tldFNpbXBsZTp1bWUsZmFUaWNrZXRBbHQ6bmp0LGZhRG92ZTpsanQsZmFUYXJwRHJvcGxldDpjanQsZmFUcmVlQ2l0eTpkanQsZmFUdXJuVXA6cG1lLGZhTGV2ZWxVcEFsdDp1anQsZmFUZW1wZXJhdHVyZVF1YXJ0ZXI6VWIsZmFUZW1wZXJhdHVyZTE6cGp0LGZhVGhlcm1vbWV0ZXIxOmZqdCxmYVRoZXJtb21ldGVyUXVhcnRlcjpoanQsZmFTbGlkZXJzOmZtZSxmYVNsaWRlcnNIOm1qdCxmYU1vc3F1ZTpnanQsZmFIOmJqdCxmYUluZm86dmp0LGZhUGVyc29uV2Fsa2luZzpobWUsZmFXYWxraW5nOnhqdCxmYUFycm93VHVybkRvd246bW1lLGZhTGV2ZWxEb3duOnlqdCxmYVJvYWQ6d2p0LGZhU3BpcmFsOk1qdCxmYUZhY2VGcm93bjpnbWUsZmFGcm93bjpranQsZmFXaW5lR2xhc3NFbXB0eTpibWUsZmFXaW5lR2xhc3NBbHQ6U2p0LGZhQ2xhcHBlcmJvYXJkOnpqdCxmYUZvcndhcmRTdGVwOnZtZSxmYVN0ZXBGb3J3YXJkOkNqdCxmYVNxdWFyZVVwUmlnaHQ6eG1lLGZhRXh0ZXJuYWxMaW5rU3F1YXJlQWx0Ol9qdCxmYUJvb2tKb3VybmFsV2hpbGxzOnltZSxmYUpvdXJuYWxXaGlsbHM6VGp0LGZhQ2hhbXBhZ25lR2xhc3Nlczp3bWUsZmFHbGFzc0NoZWVyczpManQsZmFEdW1wc3RlcjokanQsZmFIZWFydENpcmNsZVhtYXJrOkRqdCxmYUNvbXB1dGVyOkFqdCxmYVdhbmRNYWdpYzpNbWUsZmFNYWdpYzpQanQsZmFCcmFpbjpFanQsZmFCcmllZmNhc2VNZWRpY2FsOklqdCxmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uOk5qdCxmYUNvZGVDb21taXQ6Ump0LGZhUGVyc29uQnJlYXN0ZmVlZGluZzpPanQsZmFQZXJzb25SYXlzOkZqdCxmYU1hbmF0U2lnbjpCanQsZmFTb3J0OmttZSxmYVVuc29ydGVkOkhqdCxmYUNpcmNsZVJhZGlhdGlvbjpTbWUsZmFSYWRpYXRpb25BbHQ6cWp0LGZhTGFwdG9wQ29kZTpWanQsZmFTaW5rOmpqdCxmYUFycm93VXBGcm9tV2F0ZXJQdW1wOlVqdCxmYU1pY3JvcGhvbmVMaW5lc1NsYXNoOnptZSxmYU1pY3JvcGhvbmVBbHRTbGFzaDpXanQsZmFTZXJ2ZXI6R2p0LGZhVXNlcjpqZWUsZmFVc2VyQWx0OllqdCxmYVVzZXJMYXJnZTpLanQsZmFTbm93Zmxha2U6Wmp0LGZhVGF1cnVzOlhqdCxmYVNrdWxsQ3Jvc3Nib25lczpRanQsZmFQZXNvU2lnbjpKanQsZmFXaW5lR2xhc3M6ZVV0LGZhVGVtcGVyYXR1cmVIYWxmOldiLGZhVGVtcGVyYXR1cmUyOnRVdCxmYVRoZXJtb21ldGVyMjphVXQsZmFUaGVybW9tZXRlckhhbGY6clV0LGZhVGlja2V0OnNVdCxmYVdoZWF0QXduQ2lyY2xlRXhjbGFtYXRpb246aVV0LGZhQXJyb3dzVHVyblJpZ2h0Om9VdCxmYUNhbmR5Q2FuZTpuVXQsZmFXaGVlbGNoYWlyOmxVdCxmYVNwZWxsQ2hlY2s6Y1V0LGZhVm9sdW1lT2ZmOmRVdCxmYUx1bmdzOnVVdCxmYUJvb2ttYXJrOnBVdCxmYUJhcmNvZGU6ZlV0LGZhTGlzdE9sOlVlZSxmYUxpc3QxMjpoVXQsZmFMaXN0TnVtZXJpYzptVXQsZmFGaWxlQ2lyY2xlWG1hcms6Z1V0LGZhQ3ViZTpiVXQsZmFUYXBlOnZVdCxmYUJvbWI6eFV0LGZhU2NhbGVVbmJhbGFuY2VkOkNtZSxmYUJhbGFuY2VTY2FsZUxlZnQ6eVV0LGZhU3F1YXJlQ2FyZXRMZWZ0Ol9tZSxmYUNhcmV0U3F1YXJlTGVmdDp3VXQsZmFSdWxlcjpNVXQsZmFJOmtVdCxmYVZvbHVtZVhtYXJrOldlZSxmYVZvbHVtZU11dGU6U1V0LGZhVm9sdW1lVGltZXM6elV0LGZhQXJjaHdheTpDVXQsZmFQZXJzb25EaWdnaW5nOlRtZSxmYURpZ2dpbmc6X1V0LGZhR2F1Z2VIaWdoOkdlZSxmYVRhY2hvbWV0ZXJBbHQ6VFV0LGZhVGFjaG9tZXRlckFsdEZhc3Q6TFV0LGZhR2VuZGVybGVzczokVXQsZmFDbG91ZFN1bjpEVXQsZmFBcnJvd1JpZ2h0Okl0ZSxmYUhhbmRzaGFrZTpZZWUsZmFIYW5kc2hha2VBbHQ6QVV0LGZhSGFuZHNoYWtlU2ltcGxlOlBVdCxmYVBlcnNvblNraWluZzpMbWUsZmFTa2lpbmc6RVV0LGZhQnJpZGdlV2F0ZXI6SVV0LGZhQnVpbGRpbmdOZ286TlV0LGZhSWdsb286UlV0LGZhQ2lyY2xlRG9sbGFyVG9TbG90OiRtZSxmYURvbmF0ZTpPVXQsZmFZOkZVdCxmYUZhY2VTbWlsZVdpbms6RG1lLGZhU21pbGVXaW5rOkJVdCxmYURpY2VGb3VyOkhVdCxmYUZhY2VHcmluU3F1aW50VGVhcnM6QW1lLGZhR3JpblNxdWludFRlYXJzOnFVdCxmYUZpbGVBdWRpbzpWVXQsZmFBcnJvd3NEb3duVG9MaW5lOmpVdCxmYUc6VVV0LGZhVmloYXJhOldVdCxmYUZsYWdDaGVja2VyZWQ6R1V0LGZhR2F1Z2VTaW1wbGU6S2VlLGZhR2F1Z2VTaW1wbGVNZWQ6WVV0LGZhVGFjaG9tZXRlckF2ZXJhZ2U6S1V0LGZhUmlnaHRMZWZ0OlBtZSxmYUV4Y2hhbmdlQWx0OlpVdCxmYVBpbGxzOlhVdCxmYUV4cGxvc2lvbjpRVXQsZmFBcnJvd3NEb3duVG9QZW9wbGU6SlV0LGZhVXNlcnNWaWV3ZmluZGVyOmVXdCxmYUNhck9uOnRXdCxmYVNsZWlnaDphV3QsZmFEdW1iYmVsbDpyV3QsZmFCYWJ5Q2FycmlhZ2U6RW1lLGZhQ2FycmlhZ2VCYWJ5OnNXdCxmYUtpd2lCaXJkOmlXdCxmYUNhbGVuZGFyWG1hcms6SW1lLGZhQ2FsZW5kYXJUaW1lczpvV3QsZmFDaXJjbGVEb3duOk5tZSxmYUFycm93QWx0Q2lyY2xlRG93bjpuV3QsZmFGaWxlTWVkaWNhbDpsV3QsZmFYbWFyazp0NCxmYUNsb3NlOmNXdCxmYU11bHRpcGx5OmRXdCxmYVJlbW92ZTp1V3QsZmFUaW1lczpwV3QsZmFTaGFwZXM6Um1lLGZhVHJpYW5nbGVDaXJjbGVTcXVhcmU6Zld0LGZhRGljZU9uZTpoV3QsZmFMb2NrT3BlbjptV3QsZmFQZXBwZXJIb3Q6Z1d0LGZhRHJvcGxldFNsYXNoOk9tZSxmYVRpbnRTbGFzaDpiV3QsZmFEcm9wbGV0OkZtZSxmYVRpbnQ6dld0LGZhRmlsZUxpbmVzOlplZSxmYUZpbGVBbHQ6eFd0LGZhRmlsZVRleHQ6eVd0LGZhQ29tbWVudHNEb2xsYXI6d1d0LGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb246Qm1lLGZhU2VhcmNoTG9jYXRpb246TVd0LGZhRmlsZUludm9pY2U6TnRlLGZhUGVudGFnb246a1d0LGZhUmVwdWJsaWNhbjpTV3QsZmFTaG9wOkhtZSxmYVN0b3JlQWx0OnpXdCxmYUZpbG06WGVlLGZhRmlsbUFsdDpDV3QsZmFGaWxtU2ltcGxlOl9XdCxmYUJ1aWxkaW5nQ2lyY2xlWG1hcms6VFd0LGZhQ29tbWVudHM6TFd0LGZhVGFnczokV3QsZmFHdW46RFd0LGZhQ2lyY2xlQ2hlY2s6bnYsZmFDaGVja0NpcmNsZTpBV3QsZmFTY29ycGlvOlBXdCxmYUlkQ2FyZENsaXA6cW1lLGZhSWRDYXJkQWx0OkVXdCxmYU1vb246SVd0LGZhT2lsV2VsbDpOV3QsZmFUYWNob2dyYXBoRGlnaXRhbDpWbWUsZmFEaWdpdGFsVGFjaG9ncmFwaDpSV3QsZmFUYWJsZXQ6am1lLGZhVGFibGV0QW5kcm9pZDpPV3QsZmFSdWJsZVNpZ246R2IsZmFSb3VibGU6Rld0LGZhUnViOkJXdCxmYVJ1YmxlOkhXdCxmYUNsb3NlZENhcHRpb25pbmc6cVd0LGZhUGVuOlZXdCxmYVBsYW5lOmpXdCxmYUltYWdlczpVV3QsZmFNb2JpbGVTY3JlZW46VW1lLGZhTW9iaWxlQW5kcm9pZEFsdDpXV3QsZmFHdWFyYW5pU2lnbjpHV3QsZmFCYWdTaG9wcGluZzpXbWUsZmFTaG9wcGluZ0JhZzpZV3QsZmFDaXJjbGVSaWdodDpHbWUsZmFBcnJvd0FsdENpcmNsZVJpZ2h0OktXdCxmYVBob25lVm9sdW1lOlltZSxmYVZvbHVtZUNvbnRyb2xQaG9uZTpaV3QsZmFDdWJlczpYV3QsZmFQaG9uZTpRV3QsZmFUb3JpaUdhdGU6Sld0LGZhQmFjb246ZUd0LGZhUGVyc29uRmFsbGluZ0J1cnN0OnRHdCxmYVF1b3RlUmlnaHQ6S21lLGZhUXVvdGVSaWdodEFsdDphR3QsZmFIb3VzZU1lZGljYWxGbGFnOnJHdCxmYVByZXNjcmlwdGlvbjpzR3QsZmFEaWNlVGhyZWU6aUd0LGZhQnVpbGRpbmdMb2NrOm9HdCxmYUlkQ2FyZDpabWUsZmFEcml2ZXJzTGljZW5zZTpuR3QsZmFDaXJjbGVQbGF5OlhtZSxmYVBsYXlDaXJjbGU6bEd0LGZhRmFjZUxhdWdoQmVhbTpRbWUsZmFMYXVnaEJlYW06Y0d0LGZhTGVhZjpkR3QsZmFIb3VzZUNoaW1uZXlVc2VyOnVHdCxmYVJvdGF0ZVJpZ2h0OlFlZSxmYVJlZG9BbHQ6cEd0LGZhUm90YXRlRm9yd2FyZDpmR3QsZmFUb290aDpoR3QsZmFIb3VzZUNoaW1uZXlXaW5kb3c6bUd0LGZhTW90b3JjeWNsZTpnR3QsZmFCYWNrd2FyZEZhc3Q6Sm1lLGZhRmFzdEJhY2t3YXJkOmJHdCxmYUFkZHJlc3NCb29rOmU3ZSxmYUNvbnRhY3RCb29rOnZHdCxmYVNhaWxib2F0OnhHdCxmYUJvb2tCb29rbWFyazp5R3QsZmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0OndHdCxmYU1pY3JvcGhvbmVMaW5lczp0N2UsZmFNaWNyb3Bob25lQWx0Ok1HdCxmYVJlcGx5QWxsOmE3ZSxmYU1haWxSZXBseUFsbDprR3QsZmFVbml2ZXJzYWxBY2Nlc3M6U0d0LGZhVG9pbGV0UGFwZXI6SmVlLGZhVG9pbGV0UGFwZXJBbHQ6ekd0LGZhVG9pbGV0UGFwZXJCbGFuazpDR3QsZmFWckNhcmRib2FyZDpfR3QsZmFQaXp6YVNsaWNlOlRHdCxmYVNwcmF5Q2FuOkxHdCxmYVZvbHVtZUxvdzpyN2UsZmFWb2x1bWVEb3duOiRHdCxmYUNyb3NzOkRHdCxmYVBlcnNvbjpzN2UsZmFNYWxlOkFHdCxmYUhvdXJnbGFzczppN2UsZmFIb3VyZ2xhc3NFbXB0eTpQR3QsZmFGaXNoOkVHdCxmYURydW1zdGlja0JpdGU6SUd0LGZhQ2hhcnRTaW1wbGU6Tkd0LGZhQXRvbTpSR3QsZmFQOk9HdCxmYUpldEZpZ2h0ZXJVcDpGR3QsZmFQbHVnQ2lyY2xlWG1hcms6Qkd0LGZhU2hlZXRQbGFzdGljOkhHdCxmYVY6cUd0LGZhTGlzdDpvN2UsZmFMaXN0U3F1YXJlczpWR3QsZmFQaXNjZXM6akd0LGZhU29sYXJQYW5lbDpVR3QsZmFMYW5kTWluZU9uOldHdCxmYUhlYWRwaG9uZXM6ZXRlLGZhSGVhZHBob25lc0FsdDpHR3QsZmFIZWFkcGhvbmVzU2ltcGxlOllHdCxmYUJ1czpLR3QsZmFGaWxlUG93ZXJwb2ludDpaR3QsZmFRdW90ZUxlZnQ6bjdlLGZhUXVvdGVMZWZ0QWx0OlhHdCxmYUNoZXZyb25Eb3duOlFHdCxmYUVhcnRoQXNpYTpsN2UsZmFHbG9iZUFzaWE6Skd0LGZhQ2VudFNpZ246ZVl0LGZhU2hpZWxkQ2F0OnRZdCxmYVNjaG9vbENpcmNsZUNoZWNrOmFZdCxmYU1hcnRpbmlHbGFzczpjN2UsZmFHbGFzc01hcnRpbmlBbHQ6cll0LGZhUGx1ZzpzWXQsZmFQYW5vcmFtYTppWXQsZmFDbG9ja1JvdGF0ZUxlZnQ6bHYsZmFIaXN0b3J5Om9ZdCxmYUphcldoZWF0Om5ZdCxmYUNsb3VkQXJyb3dEb3duOnR0ZSxmYUNsb3VkRG93bmxvYWQ6bFl0LGZhQ2xvdWREb3dubG9hZEFsdDpjWXQsZmFUcnVja1JhbXBCb3g6ZDdlLGZhVHJ1Y2tMb2FkaW5nOmRZdCxmYUFuZ2xlRG93bjp1WXQsZmFQbHVnQ2lyY2xlQ2hlY2s6cFl0LGZhV2luZG93TWF4aW1pemU6Zll0LGZhSGFuZHNIb2xkaW5nQ2lyY2xlOmhZdCxmYUxvY2F0aW9uUGluOnU3ZSxmYU1hcE1hcmtlcjptWXQsZmFCb3dsaW5nQmFsbDpnWXQsZmFDYXJ0RmxhdGJlZDpwN2UsZmFEb2xseUZsYXRiZWQ6Yll0LGZhSG91c2VVc2VyOmY3ZSxmYUhvbWVVc2VyOnZZdCxmYUdob3N0OnhZdCxmYUNvbW1lbnROb2Rlczp5WXQsZmFQZXJzb25BcnJvd0Rvd25Ub0xpbmU6d1l0LGZhUGx1Z0NpcmNsZVBsdXM6TVl0LGZhUGVyc29uU3dpbW1pbmc6aDdlLGZhU3dpbW1lcjprWXQsZmFDb21tZW50RG90czptN2UsZmFDb21tZW50aW5nOlNZdCxmYUNoYXJ0UGllOmc3ZSxmYVBpZUNoYXJ0OnpZdCxmYUZyb2c6Q1l0LGZhV2luZUJvdHRsZTpfWXQsZmFJbmJveDpUWXQsZmFTcXVhcmVIOmI3ZSxmYUhTcXVhcmU6TFl0LGZhSG91c2VNZWRpY2FsOiRZdCxmYUNpcmNsZUNoZXZyb25SaWdodDp2N2UsZmFDaGV2cm9uQ2lyY2xlUmlnaHQ6RFl0LGZhRmlsZUNzdjpBWXQsZmFIYXRDb3dib3k6UFl0LGZhRmFjZUdyaW5Ub25ndWVXaW5rOng3ZSxmYUdyaW5Ub25ndWVXaW5rOkVZdCxmYUw6SVl0LGZhQXJyb3dEb3duU2hvcnRXaWRlOmF0ZSxmYVNvcnRBbW91bnREZXNjOk5ZdCxmYVNvcnRBbW91bnREb3duQWx0OlJZdCxmYUhvdXJnbGFzc0hhbGY6eTdlLGZhSG91cmdsYXNzMjpPWXQsZmFTcG9vbjp3N2UsZmFVdGVuc2lsU3Bvb246Rll0LGZhQ3JlZGl0Q2FyZDpNN2UsZmFDcmVkaXRDYXJkQWx0OkJZdCxmYUZpbGVJbnZvaWNlRG9sbGFyOlJ0ZSxmYVNwYWdoZXR0aU1vbnN0ZXJGbHlpbmc6azdlLGZhUGFzdGFmYXJpYW5pc206SFl0LGZhTWFydGluaUdsYXNzQ2l0cnVzOlM3ZSxmYUNvY2t0YWlsOnFZdCxmYUJ1bGxob3JuOlZZdCxmYUJveFRpc3N1ZTpqWXQsZmFNYXR0cmVzc1BpbGxvdzpVWXQsZmFDaGV2cm9uTGVmdDpXWXQsZmFDbG91ZE1vb25SYWluOkdZdCxmYUFycm93RG93bjE5OnJ0ZSxmYVNvcnROdW1lcmljQXNjOllZdCxmYVNvcnROdW1lcmljRG93bjpLWXQsZmFIYW5kU3BvY2s6Wll0LGZhV2FuZE1hZ2ljU3BhcmtsZXM6ejdlLGZhTWFnaWNXYW5kU3BhcmtsZXM6WFl0LGZhQ29tbWVudE1lZGljYWw6UVl0LGZhQmVsbFNsYXNoOkpZdCxmYUhhbmRzaGFrZVNsYXNoOnN0ZSxmYUhhbmRzaGFrZUFsdFNsYXNoOmVLdCxmYUhhbmRzaGFrZVNpbXBsZVNsYXNoOnRLdCxmYUJvdHRsZVdhdGVyOmFLdCxmYURpY2VEMjA6ckt0LGZhQXJyb3dEb3duWkE6aXRlLGZhU29ydEFscGhhRGVzYzpzS3QsZmFTb3J0QWxwaGFEb3duQWx0OmlLdCxmYUJydXNoOm9LdCxmYVBlcnNvbldhbGtpbmdEYXNoZWRMaW5lQXJyb3dSaWdodDpuS3QsZmFBcnJvd1VwU2hvcnRXaWRlOkM3ZSxmYVNvcnRBbW91bnRVcEFsdDpsS3QsZmFHcmlwVmVydGljYWw6XzdlLGZhR3JpZFZlcnRpY2FsOmNLdCxmYUNhclR1bm5lbDpkS3QsZmFDaGFydENvbHVtbjp1S3QsZmFDYXByaWNvcm46cEt0LGZhVHJ1Y2tBcnJvd1JpZ2h0OmZLdCxmYVR2Om90ZSxmYVRlbGV2aXNpb246aEt0LGZhVHZBbHQ6bUt0LGZhU2VjdGlvbjpnS3QsZmFQZWFjZTpiS3QsZmFTdGFyOnZLdCxmYUZsYWc6eEt0LGZhVHJpYW5nbGVFeGNsYW1hdGlvbjpudGUsZmFFeGNsYW1hdGlvblRyaWFuZ2xlOnlLdCxmYVdhcm5pbmc6d0t0LGZhU2Nob29sQ2lyY2xlRXhjbGFtYXRpb246TUt0LGZhR3JhZHVhdGlvbkNhcDpUN2UsZmFNb3J0YXJCb2FyZDprS3QsZmFTdG9yZTpTS3QsZmFVc2VyQXN0cm9uYXV0OnpLdCxmYUJ1aWxkaW5nRmxhZzpDS3QsZmFNdWdTYXVjZXI6TDdlLGZhQ29mZmVlOl9LdCxmYUxlbW9uOlRLdCxmYUNhcmF2YW46TEt0LGZhUTokS3QsZmFMb2NrOkRLdCxmYVBhaW50Um9sbGVyOkFLdCxmYVZvbHVtZUhpZ2g6JDdlLGZhVm9sdW1lVXA6UEt0LGZhRm9sZGVyUGx1czpFS3QsZmFNZXJjdXJ5OklLdCxmYUFuY2hvcjpOS3QsZmFTcXVhcmVQYXJraW5nOkQ3ZSxmYVBhcmtpbmc6Ukt0LGZhSGFudWtpYWg6T0t0LGZhUm90YXRlTGVmdDpZYixmYVJvdGF0ZUJhY2s6Rkt0LGZhUm90YXRlQmFja3dhcmQ6Qkt0LGZhVW5kb0FsdDpIS3QsZmFIZWFkaW5nOkE3ZSxmYUhlYWRlcjpxS3QsZmFDcm9zc2hhaXJzOlZLdCxmYUNpcmNsZU5vZGVzOmpLdCxmYVdpbmRvd1Jlc3RvcmU6VUt0LGZhUjpXS3QsZmFGaWx0ZXJDaXJjbGVYbWFyazpHS3QsZmFHb3B1cmFtOllLdCxmYUhlYXJ0Q2lyY2xlTWludXM6S0t0LGZhU3Rhck9mTGlmZTpaS3QsZmFCdXNpbmVzc1RpbWU6UDdlLGZhQnJpZWZjYXNlQ2xvY2s6WEt0LGZhRmlyZUV4dGluZ3Vpc2hlcjpRS3QsZmFBcnJvd0Rvd25Mb25nOkU3ZSxmYUxvbmdBcnJvd0Rvd246Skt0LGZhVXNlck1pbnVzOmVadCxmYU1vbmV5Q2hlY2s6dFp0LGZhSG91c2VMYXB0b3A6STdlLGZhTGFwdG9wSG91c2U6YVp0LGZhRG93bmxvYWQ6clp0LGZhU2FnaXR0YXJpdXM6c1p0LGZhQ291Y2g6aVp0LGZhUm9hZExvY2s6b1p0LGZhU2Npc3NvcnM6TjdlLGZhQ3V0Om5adCxmYUJ1ZzpPdGUsZmFBcnJvd1JpZ2h0RnJvbUJyYWNrZXQ6UjdlLGZhU2lnbk91dDpsWnQsZmFIYW5kSG9sZGluZ0hhbmQ6Y1p0LGZhU3Ryb29wd2FmZWw6ZFp0LGZhQ2hpbGQ6dVp0LGZhSWNlQ3JlYW06cFp0LGZhQ29tcHV0ZXJNb3VzZTpPN2UsZmFNb3VzZTpmWnQsZmFGYXVjZXQ6aFp0LGZhQXdhcmQ6bVp0LGZhUGVyc29uRHJvd25pbmc6Z1p0LGZhQ2FtZXJhUm90YXRlOmJadCxmYUZhY2VHcmluSGVhcnRzOkY3ZSxmYUdyaW5IZWFydHM6dlp0LGZhRmlsZUZyYWdtZW50OnhadCxmYVBlcnNvbk1pbGl0YXJ5UmlmbGU6eVp0LGZhVG9nZ2xlT246d1p0LGZhTHVuZ3NWaXJ1czpNWnQsZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGw6bHRlLGZhUGluZ1BvbmdQYWRkbGVCYWxsOmtadCxmYVRhYmxlVGVubmlzOlNadCxmYUJveGVzUGFja2luZzp6WnQsZmFQZXJzb25DaGFsa2JvYXJkOkNadCxmYURpY2VUd286X1p0LGZhQXJyb3dSaWdodEFycm93TGVmdDpCN2UsZmFFeGNoYW5nZTpUWnQsZmFGb290YmFsbDpIN2UsZmFGb290YmFsbEJhbGw6TFp0LGZhVHJ1Y2tNb25zdGVyOiRadCxmYUFzdGVyaXNrOkRadCxmYUJhdHRlcnlGdWxsOmN0ZSxmYUJhdHRlcnk6QVp0LGZhQmF0dGVyeTU6UFp0LGZhQ2hpbGREcmVzczpFWnQsZmFGYWNlS2lzc0JlYW06cTdlLGZhS2lzc0JlYW06SVp0LGZhVHJhc2hDYW5BcnJvd1VwOlY3ZSxmYVRyYXNoUmVzdG9yZUFsdDpOWnQsZmFGb250OlJadCxmYUJvcmVIb2xlOk9adCxmYVZpcnVzQ292aWQ6Rlp0LGZhRmlsZVBkZjpCWnQsZmFMYW5ndWFnZTpIWnQsZmFTaGllbGRIYWx2ZWQ6ajdlLGZhU2hpZWxkQWx0OnFadCxmYUNhcmV0VXA6Vlp0LGZhRmlsZVBlbjpVN2UsZmFGaWxlRWRpdDpqWnQsZmFQZXJzb25CaWtpbmc6VzdlLGZhQmlraW5nOlVadCxmYUJvb2tPcGVuUmVhZGVyOkc3ZSxmYUJvb2tSZWFkZXI6V1p0LGZhR2xhc3NXYXRlckRyb3BsZXQ6R1p0LGZhVG93ZXJCcm9hZGNhc3Q6WTdlLGZhQnJvYWRjYXN0VG93ZXI6WVp0LGZhTWluaW1pemU6SzdlLGZhQ29tcHJlc3NBcnJvd3NBbHQ6S1p0LGZhQXJyb3dSaWdodFRvQ2l0eTpaWnQsZmFMYXB0b3BNZWRpY2FsOlhadCxmYUJyZWFkU2xpY2U6UVp0LGZhR2xvYmU6Slp0LGZhRm9sZGVyTWludXM6ZVh0LGZhTWFza0ZhY2U6dFh0LGZhQm9uZzphWHQsZmFSb2FkQnJpZGdlOnJYdCxmYUFycm93VXA5MTpaN2UsZmFTb3J0TnVtZXJpY1VwQWx0OnNYdCxmYU1vdW50YWluQ2l0eTppWHQsZmFBcnJvd0Rvd245MTpkdGUsZmFTb3J0TnVtZXJpY0Rlc2M6b1h0LGZhU29ydE51bWVyaWNEb3duQWx0Om5YdCxmYUZhY2VHcmluV2lkZTpYN2UsZmFHcmluQWx0OmxYdCxmYVBvb3A6Y1h0LGZhRGhhcm1hY2hha3JhOmRYdCxmYUJhdHRlcnlRdWFydGVyOlE3ZSxmYUJhdHRlcnkyOnVYdCxmYUFua2g6cFh0LGZhRGlhbW9uZDpmWHQsZmFTdWJzY3JpcHQ6aFh0LGZhUnVwZWVTaWduOko3ZSxmYVJ1cGVlOm1YdCxmYVBlcnNvblJpZmxlOmdYdCxmYUQ6Ylh0LGZhU3F1YXJlTmZpOnZYdCxmYVRlZXRoOnhYdCxmYU1hZ25pZnlpbmdHbGFzc0RvbGxhcjplOWUsZmFTZWFyY2hEb2xsYXI6eVh0LGZhRHVtcHN0ZXJGaXJlOndYdCxmYVVwbG9hZDpNWHQsZmFVc2VyU2xhc2g6dXRlLGZhVXNlckFsdFNsYXNoOmtYdCxmYVVzZXJMYXJnZVNsYXNoOlNYdCxmYUFycm93TGVmdDp6WHQsZmFWaWFsVmlydXM6Q1h0LGZhQ2hlY2tEb3VibGU6X1h0LGZhUGF3OlRYdCxmYUhlbG1ldFNhZmV0eTpwdGUsZmFIYXJkSGF0OkxYdCxmYUhhdEhhcmQ6JFh0LGZhRTpEWHQsZmFGYWNlTGF1Z2hTcXVpbnQ6dDllLGZhTGF1Z2hTcXVpbnQ6QVh0LGZhRG93bkxlZnRBbmRVcFJpZ2h0VG9DZW50ZXI6YTllLGZhQ29tcHJlc3NBbHQ6UFh0LGZhR2lmdHM6RVh0LGZhQmVkOklYdCxmYU1vbmV5QmlsbFRyYW5zZmVyOk5YdCxmYVBlcnNvblJ1bm5pbmc6cjllLGZhUnVubmluZzpSWHQsZmFDaXJjbGVDaGV2cm9uRG93bjpzOWUsZmFDaGV2cm9uQ2lyY2xlRG93bjpPWHQsZmFVc2VyTnVyc2U6Rlh0LGZhRmFjZUtpc3NXaW5rSGVhcnQ6aTllLGZhS2lzc1dpbmtIZWFydDpCWHQsZmFGaWxsOkhYdCxmYU1vbmV5QmlsbDFXYXZlOm85ZSxmYU1vbmV5QmlsbFdhdmVBbHQ6cVh0LGZhTGFuZG1hcms6Vlh0LGZhTXVzaWM6alh0LGZhQm9va01lZGljYWw6VVh0LGZhU2h1ZmZsZTpuOWUsZmFSYW5kb206V1h0LGZhVW5kZXJsaW5lOkdYdCxmYUJ1aWxkaW5nVXNlcjpZWHQsZmFSb2JvdDpLWHQsZmFQbHVzOmN2LGZhQWRkOlpYdCxmYUNvcHk6RnRlLGZhQ2hlc3NLaW5nOlhYdCxmYUhvdXNlRmxvb2RXYXRlcjpRWHQsZmFCaXRjb2luU2lnbjpKWHQsZmFCb3g6ZVF0LGZhU3F1YXJlUGx1czpsOWUsZmFQbHVzU3F1YXJlOnRRdCxmYUFycm93c0xlZnRSaWdodDpjOWUsZmFBcnJvd3NIOmFRdCxmYUZhbjpyUXQsZmFDcm93OnNRdCxmYUZpbGVDaXJjbGVDaGVjazppUXQsZmFMaW5rU2xhc2g6S2IsZmFDaGFpbkJyb2tlbjpvUXQsZmFDaGFpblNsYXNoOm5RdCxmYVVubGluazpsUXQsZmFBcnJvd1JvdGF0ZVJpZ2h0OlpiLGZhQXJyb3dSaWdodFJvdGF0ZTpjUXQsZmFBcnJvd1JvdGF0ZUZvcndhcmQ6ZFF0LGZhUmVkbzp1UXQsZmFQZW5DbGlwOmQ5ZSxmYVBlbkFsdDpwUXQsZmFEb29yQ2xvc2VkOmZRdCxmYUFycm93RG93bldpZGVTaG9ydDpmdGUsZmFTb3J0QW1vdW50QXNjOmhRdCxmYVNvcnRBbW91bnREb3duOm1RdCxmYUNhcmV0RG93bjpnUXQsZmFLOmJRdCxmYUNoZWNrVG9TbG90OnU5ZSxmYVZvdGVZZWE6dlF0LGZhRmlzaEZpbnM6eFF0LGZhQ29tcHJlc3M6eVF0LGZhQXJyb3dVcEFaOnA5ZSxmYVNvcnRBbHBoYVVwOndRdCxmYVVzZXJHcmFkdWF0ZTpNUXQsZmFGaWxlQ29kZTprUXQsZmFTb2FwOlNRdCxmYVJlY3ljbGU6elF0LGZhRmFjZUdyaW5XaW5rOmY5ZSxmYUdyaW5XaW5rOkNRdCxmYVdhdGVyTGFkZGVyOmh0ZSxmYUxhZGRlcldhdGVyOl9RdCxmYVN3aW1taW5nUG9vbDpUUXQsZmFHZW1pbmk6TFF0LGZhVG93ZXJDZWxsOiRRdCxmYUNvbG9uU2lnbjpEUXQsZmFMYXB0b3BGaWxlOkFRdCxmYUJhaGFpOmg5ZSxmYUhheWthbDpQUXQsZmFNb25leUJpbGwxOm05ZSxmYU1vbmV5QmlsbEFsdDpFUXQsZmFDbG91ZEJvbHQ6ZzllLGZhVGh1bmRlcnN0b3JtOklRdCxmYUV0aGVybmV0Ok5RdCxmYUhyeXZuaWFTaWduOmI5ZSxmYUhyeXZuaWE6UlF0LGZhRXllU2xhc2g6QnRlLGZhQ2FydEZsYXRiZWRTdWl0Y2FzZTp2OWUsZmFMdWdnYWdlQ2FydDpPUXQsZmFSYWRpYXRpb246RlF0LGZhRmlsZVdvcmQ6QlF0LGZhQmVkUHVsc2U6eDllLGZhUHJvY2VkdXJlczpIUXQsZmFUZW50czpxUXQsZmFNdWdIb3Q6SHRlLGZhQm9sdDp5OWUsZmFaYXA6VlF0LGZhSmFyOmpRdCxmYVRydWNrUGxhbmU6VVF0LGZhSGFuZEhvbGRpbmdIZWFydDpXUXQsZmFBcnJvd1JvdGF0ZUxlZnQ6WTgsZmFBcnJvd0xlZnRSb3RhdGU6R1F0LGZhQXJyb3dSb3RhdGVCYWNrOllRdCxmYUFycm93Um90YXRlQmFja3dhcmQ6S1F0LGZhVW5kbzpaUXQsZmFGYWNlQW5ncnk6dzllLGZhQW5ncnk6WFF0LGZhQnVyc3Q6UVF0LGZhWjpKUXQsZmFCYW5kYWdlOk05ZSxmYUJhbmRBaWQ6ZUp0LGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbjp0SnQsZmFCdXNTaWRlOmFKdCxmYUJ1Z3M6ckp0LGZhQmVlck11Z0VtcHR5Oms5ZSxmYUJlZXI6c0p0LGZhUGVyc29uQ2lyY2xlQ2hlY2s6aUp0LGZhU3RhcGxlcjpvSnQsZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazpuSnQsZmFOYWlyYVNpZ246bEp0LGZhV2lmaTptdGUsZmFXaWZpMzpjSnQsZmFXaWZpU3Ryb25nOmRKdCxmYU1vbmV5Q2hlY2tEb2xsYXI6ZHYsZmFNb25leUNoZWNrQWx0OnVKdCxmYUV5ZUxvd1Zpc2lvbjpTOWUsZmFMb3dWaXNpb246cEp0LGZhQ2lyY2xlQXJyb3dVcDp6OWUsZmFBcnJvd0NpcmNsZVVwOmZKdCxmYUNhbWVyYVJldHJvOmhKdCxmYUNhcHN1bGVzOm1KdCxmYVBvbzpnSnQsZmFWb2x1bWU6QzllLGZhVm9sdW1lTWVkaXVtOmJKdCxmYUVsZXZhdG9yOnZKdCxmYVRhZzp4SnQsZmFGaWxlQ2lyY2xlTWludXM6eUp0LGZhRG93bkxvbmc6XzllLGZhTG9uZ0Fycm93QWx0RG93bjp3SnQsZmFDb21wYWN0RGlzYzpNSnQsZmFTdWl0Y2FzZVJvbGxpbmc6a0p0LGZhQm9va1F1cmFuOlQ5ZSxmYVF1cmFuOlNKdCxmYVBob25lU2xhc2g6ekp0LGZhUm9hZENpcmNsZUNoZWNrOkNKdCxmYVNob3BMb2NrOl9KdCxmYUltYWdlUG9ydHJhaXQ6TDllLGZhUG9ydHJhaXQ6VEp0LGZhQnJpZGdlTG9jazpMSnQsZmFIYW1tZXI6JEp0LGZhQXJyb3dVcDE5OiQ5ZSxmYVNvcnROdW1lcmljVXA6REp0LGZhQ2hlc3NLbmlnaHQ6QUp0LGZhSG91c2VGbG9vZFdhdGVyQ2lyY2xlQXJyb3dSaWdodDpQSnQsZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOnV2LGZhRXh0ZXJuYWxMaW5rOkVKdCxmYUFycm93RG93blVwQWNyb3NzTGluZTpJSnQsZmFGYWNlR3JpbkJlYW06RDllLGZhR3JpbkJlYW06Tkp0LGZhUmVjdGFuZ2xlQWQ6QTllLGZhQWQ6Ukp0LGZhQm9va1RhbmFraDpQOWUsZmFUYW5ha2g6T0p0LGZhSG90VHViUGVyc29uOkU5ZSxmYUhvdFR1YjpGSnQsZmFGaWxlSGFsZkRhc2hlZDpCSnQsZmFPdXRkZW50Okk5ZSxmYURlZGVudDpISnQsZmFIYW5kUGVhY2U6cUp0LGZhSGVhZFNpZGVWaXJ1czpWSnQsZmFDb21wYXNzOmpKdCxmYVBlbk5pYjpVSnQsZmFUZW50QXJyb3dzRG93bjpXSnQsZmFGb3J3YXJkRmFzdDpOOWUsZmFGYXN0Rm9yd2FyZDpHSnQsZmFDcm9wOllKdCxmYVdoaXNrZXlHbGFzczpSOWUsZmFHbGFzc1doaXNrZXk6S0p0LGZhU3F1YXJlOlpKdCxmYUZhY2VHcmluOk85ZSxmYUdyaW46WEp0LGZhRmlsZUNvbnRyYWN0OlFKdCxmYUFuZ2xlVXA6Skp0LGZhRmFjZVNtaWxlOkY5ZSxmYVNtaWxlOmVlYSxmYVBlcnNvbkRyZXNzQnVyc3Q6dGVhLGZhRGl2aWRlOmFlYSxmYUNvZGVGb3JrOnJlYSxmYUhvdXNlRmxhZzpzZWEsZmFCdWlsZGluZ0NvbHVtbnM6SzgsZmFCYW5rOmllYSxmYUluc3RpdHV0aW9uOm9lYSxmYU11c2V1bTpuZWEsZmFVbml2ZXJzaXR5OmxlYSxmYVJ1ZzpjZWEsZmFDb2RlTWVyZ2U6ZGVhLGZhSG91c2VUc3VuYW1pOnVlYSxmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0OnBlYSxmYVVtYnJlbGxhOmZlYSxmYUhpbGxSb2Nrc2xpZGU6aGVhLGZhVXNlclNlY3JldDptZWEsZmFQYWdlcjpnZWEsZmFCcmllZmNhc2U6YmVhLGZhVHJvd2VsQnJpY2tzOnZlYSxmYVNvY2tzOnhlYSxmYVQ6eWVhLGZhTWljcm9jaGlwOndlYSxmYVRydWNrTWVkaWNhbDpCOWUsZmFBbWJ1bGFuY2U6TWVhLGZhT206a2VhLGZhTW9zcXVpdG9OZXQ6U2VhLGZhUHJlc2NyaXB0aW9uQm90dGxlOnplYSxmYVVzZXJzR2VhcjpIOWUsZmFVc2Vyc0NvZzpDZWEsZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb246X2VhLGZhUGF1c2U6VGVhLGZhU3RhZmZTbmFrZTpYYixmYVJvZEFzY2xlcGl1czpMZWEsZmFSb2RTbmFrZTokZWEsZmFTdGFmZkFlc2N1bGFwaXVzOkRlYSxmYVBpZ2d5QmFuazpBZWEsZmFNb251bWVudDpQZWEsZmFBbmdsZXNSaWdodDpxOWUsZmFBbmdsZURvdWJsZVJpZ2h0OkVlYSxmYURlc2t0b3A6cHYsZmFEZXNrdG9wQWx0OkllYSxmYVBsYW5lQ2lyY2xlWG1hcms6TmVhLGZhUmV0d2VldDpSZWEsZmFVc2VyR2VhcjpWOWUsZmFVc2VyQ29nOk9lYSxmYUJvcmRlckFsbDpGZWEsZmFDb2luczpCZWEsZmFNYXJzU3Ryb2tlOkhlYSxmYUhhbmRzaGFrZUFuZ2xlOmo5ZSxmYUhhbmRzSGVscGluZzpxZWEsZmFBcnJvd0Rvd246VmVhLGZhTG9jYXRpb25Eb3Q6VTllLGZhTWFwTWFya2VyQWx0OmplYSxmYVBsdWdDaXJjbGVFeGNsYW1hdGlvbjpVZWEsZmFDb29raWVCaXRlOldlYSxmYVNjcmV3ZHJpdmVyV3JlbmNoOlc5ZSxmYVRvb2xzOkdlYSxmYUluZGVudDpZZWEsZmFCYXJzOkc5ZSxmYU5hdmljb246S2VhLGZhSGFuZHNQcmF5aW5nOlk5ZSxmYVByYXlpbmdIYW5kczpaZWEsZmFWaXJ1c2VzOlhlYSxmYVNjaG9vbEZsYWc6UWVhLGZhVHJhZGVtYXJrOkplYSxmYUZpcmVCdXJuZXI6ZXRhLGZhRmFjZVNtaWxlQmVhbTpLOWUsZmFTbWlsZUJlYW06dHRhLGZhVGVudEFycm93TGVmdFJpZ2h0OmF0YSxmYVJvdXRlOnJ0YSxmYUFuZ2xlc1VwOlo5ZSxmYUFuZ2xlRG91YmxlVXA6c3RhLGZhQnVja2V0Oml0YSxmYUxlc3NUaGFuRXF1YWw6b3RhLGZhRm9sZGVyQ2xvc2VkOm50YSxmYVBlcnNvblRocm91Z2hXaW5kb3c6bHRhLGZhU2Nob29sTG9jazpjdGEsZmFQZXJzb25CdXJzdDpkdGEsZmFMZWZ0TG9uZzpYOWUsZmFMb25nQXJyb3dBbHRMZWZ0OnV0YSxmYUxvY2F0aW9uQ3Jvc3NoYWlyczpROWUsZmFMb2NhdGlvbjpwdGEsZmFQZXJzb25Eb3RzRnJvbUxpbmU6SjllLGZhRGlhZ25vc2VzOmZ0YSxmYUdhdWdlU2ltcGxlSGlnaDpndGUsZmFUYWNob21ldGVyOmh0YSxmYVRhY2hvbWV0ZXJGYXN0Om10YSxmYUFuZ2xlc0xlZnQ6ZWdlLGZhQW5nbGVEb3VibGVMZWZ0Omd0YSxmYVVwRG93bjp0Z2UsZmFBcnJvd3NBbHRWOmJ0YSxmYUJhdHRlcnlFbXB0eTphZ2UsZmFCYXR0ZXJ5MDp2dGEsZmFLZXlib2FyZDp4dGEsZmFDb29raWU6eXRhLGZhU3RvcHdhdGNoOnd0YSxmYUVqZWN0Ok10YSxmYVNhdGVsbGl0ZURpc2g6a3RhLGZhRmFjZVJvbGxpbmdFeWVzOnJnZSxmYU1laFJvbGxpbmdFeWVzOlN0YSxmYUxpc3RDaGVjazpzZ2UsZmFUYXNrczp6dGEsZmFTYWNrWG1hcms6Q3RhLGZhSGFzaHRhZzpfdGEsZmFUcmFpbjpUdGEsZmFHYW1lcGFkOkx0YSxmYUZpbGVFeHBvcnQ6aWdlLGZhQXJyb3dSaWdodEZyb21GaWxlOiR0YSxmYUZhY2VHcmltYWNlOm9nZSxmYUdyaW1hY2U6RHRhLGZhVHJhaW5TdWJ3YXk6bmdlLGZhU3Vid2F5OkF0YSxmYUNpcmNsZURvdDpsZ2UsZmFEb3RDaXJjbGU6UHRhLGZhT2JqZWN0R3JvdXA6RXRhLGZhU2hpcDpJdGEsZmFDOk50YSxmYVNxdWFyZVBob25lOmNnZSxmYVBob25lU3F1YXJlOlJ0YSxmYVJ1bGVyQ29tYmluZWQ6T3RhLGZhQXJyb3dzUm90YXRlOmJ0ZSxmYVJlZnJlc2g6RnRhLGZhU3luYzpCdGEsZmFQZXJzb25EcmVzczpkZ2UsZmFGZW1hbGU6SHRhLGZhQm9va09wZW46cXRhLGZhRm9sZGVyVHJlZTpWdGEsZmFWaXJnbzpqdGEsZmFCb3hBcmNoaXZlOnVnZSxmYUFyY2hpdmU6VXRhLGZhVGVudEFycm93RG93blRvTGluZTpXdGEsZmFRcmNvZGU6R3RhLGZhRHJhZ29uOll0YSxmYUhvdXJnbGFzc0VuZDpwZ2UsZmFIb3VyZ2xhc3MzOkt0YSxmYUdyaXA6WDgsZmFHcmlkSG9yaXpvbnRhbDpadGEsZmFHcmlwSG9yaXpvbnRhbDpYdGEsZmFCb3JkZXJUb3BMZWZ0OmZnZSxmYUJvcmRlclN0eWxlOlF0YSxmYUxpc3RVbDpoZ2UsZmFMaXN0RG90czpKdGEsZmFQZW9wbGVSb2JiZXJ5OmVhYSxmYU1vYmlsZUJ1dHRvbjp0YWEsZmFBcnJvd0Rvd25BWjp2dGUsZmFTb3J0QWxwaGFBc2M6YWFhLGZhU29ydEFscGhhRG93bjpyYWEsZmFNb25leUJpbGw6c2FhLGZhQ2lyY2xlTWludXM6bWdlLGZhTWludXNDaXJjbGU6aWFhLGZhQXJyb3dQb2ludGVyOmdnZSxmYU1vdXNlUG9pbnRlcjpvYWEsZmFTcXVhcmVTaGFyZU5vZGVzOmJnZSxmYVNoYXJlQWx0U3F1YXJlOm5hYSxmYVRhYmxlQ2VsbHNMYXJnZTp2Z2UsZmFUaExhcmdlOmxhYSxmYUNhdDpjYWEsZmFDYWxlbmRhcldlZWs6ZGFhLGZhQ29kZUNvbXBhcmU6dWFhLGZhTGVvOnBhYSxmYVJvYWRDaXJjbGVYbWFyazpmYWEsZmFQYWxsZXQ6aGFhLGZhQ2FrZUNhbmRsZXM6eHRlLGZhQmlydGhkYXlDYWtlOm1hYSxmYUNha2U6Z2FhLGZhQnVnU2xhc2g6YmFhLGZhVGFycDp2YWEsZmFEaWFncmFtUHJlZGVjZXNzb3I6eGFhLGZhRmFjZUZsdXNoZWQ6eGdlLGZhRmx1c2hlZDp5YWEsZmFEaWFncmFtTmV4dDp3YWEsZmFBbmNob3JDaXJjbGVYbWFyazpNYWEsZmFQZXJzb25DaXJjbGVYbWFyazprYWEsZmFTcGE6U2FhLGZhQXJpZXM6emFhLGZhQmFyc1Byb2dyZXNzOnlnZSxmYVRhc2tzQWx0OkNhYSxmYUhlYXJ0Q2lyY2xlQ2hlY2s6X2FhLGZhTWFyc1N0cm9rZVJpZ2h0OndnZSxmYU1hcnNTdHJva2VIOlRhYSxmYVRvd2VyT2JzZXJ2YXRpb246TGFhLGZhU3RlcmxpbmdTaWduOnl0ZSxmYUdicDokYWEsZmFQb3VuZFNpZ246RGFhLGZhRmF1Y2V0RHJpcDpBYWEsZmFDaXJjbGVJbmZvOmZ2LGZhSW5mb0NpcmNsZTpQYWEsZmFGZWF0aGVyOkVhYSxmYUJvd2xSaWNlOklhYSxmYVN0YXJIYWxmU3Ryb2tlOk1nZSxmYVN0YXJIYWxmQWx0Ok5hYSxmYVRlbXBlcmF0dXJlQXJyb3dEb3duOmtnZSxmYVRlbXBlcmF0dXJlRG93bjpSYWEsZmFNYXNrVmVudGlsYXRvcjpPYWEsZmFGaWxlVmlkZW86RmFhLGZhQXJyb3dUcmVuZERvd246QmFhLGZhT2lsQ2FuOkhhYSxmYVBlb3BsZUNhcnJ5Qm94OlNnZSxmYVBlb3BsZUNhcnJ5OnFhYSxmYUNoYWlyOlZhYSxmYVdpbmQ6amFhLGZhTGF5ZXJHcm91cDpVYWEsZmFIZWFkU2lkZU1hc2s6V2FhLGZhSGFuZHM6d3RlLGZhU2lnbkxhbmd1YWdlOkdhYSxmYVNpZ25pbmc6WWFhLGZhVGFibGV0czpLYWEsZmFXZWlnaHRIYW5naW5nOlphYSxmYURpY2U6WGFhLGZhU2hvcFNsYXNoOnpnZSxmYVN0b3JlQWx0U2xhc2g6UWFhLGZhU29ydERvd246Q2dlLGZhU29ydERlc2M6SmFhLGZhUGVzZXRhU2lnbjplcmEsZmFUYWJsZXRTY3JlZW5CdXR0b246X2dlLGZhVGFibGV0QWx0OnRyYSxmYUhhbmRIb2xkaW5nRG9sbGFyOlRnZSxmYUhhbmRIb2xkaW5nVXNkOmFyYSxmYVNoaWVsZDpMZ2UsZmFTaGllbGRCbGFuazpycmEsZmFGYWNlTGF1Z2g6JGdlLGZhTGF1Z2g6c3JhLGZhSGFuZHNIb2xkaW5nOmlyYSxmYUNhcnRTaG9wcGluZzpEZ2UsZmFTaG9wcGluZ0NhcnQ6b3JhLGZhT2N0YWdvbjpucmEsZmFIYW5kUG9pbnRlcjpscmEsZmFSZWdpc3RlcmVkOmNyYSxmYUhvdXNlU2lnbmFsOmRyYSxmYUJhbmdsYWRlc2hpVGFrYVNpZ246dXJhfX0pO3ZhciBtdixBZ2U9ZigoKT0+e212PXt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIiwic3Ryb2tlLXdpZHRoIjoyLCJzdHJva2UtbGluZWNhcCI6InJvdW5kIiwic3Ryb2tlLWxpbmVqb2luIjoicm91bmQifX0pO3ZhciBmcmEsYTQsUGdlPWYoKCk9PntBZ2UoKTtmcmE9cygoW2EsZSx0XSk9PntsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixhKTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChpPT57ci5zZXRBdHRyaWJ1dGUoaSxTdHJpbmcoZVtpXSkpfSksdD8ubGVuZ3RoJiZ0LmZvckVhY2goaT0+e2xldCBvPWZyYShpKTtyLmFwcGVuZENoaWxkKG8pfSkscn0sImNyZWF0ZVNWR0VsZW1lbnQiKSxhND1zKChhLGU9e30pPT57bGV0IHI9ey4uLm12LC4uLmV9O3JldHVybiBmcmEoWyJzdmciLHIsYV0pfSwiY3JlYXRlRWxlbWVudCIpfSk7dmFyIEVnZSxocmE9ZigoKT0+e0VnZT1zKGE9Pntmb3IobGV0IGUgaW4gYSlpZihlLnN0YXJ0c1dpdGgoImFyaWEtIil8fGU9PT0icm9sZSJ8fGU9PT0idGl0bGUiKXJldHVybiEwO3JldHVybiExfSwiaGFzQTExeVByb3AiKX0pO3ZhciBJZ2UsbXJhPWYoKCk9PntJZ2U9cygoLi4uYSk9PmEuZmlsdGVyKChlLHQscik9PiEhZSYmZS50cmltKCkhPT0iIiYmci5pbmRleE9mKGUpPT09dCkuam9pbigiICIpLnRyaW0oKSwibWVyZ2VDbGFzc2VzIil9KTt2YXIgTmdlLGdyYT1mKCgpPT57TmdlPXMoYT0+YS5yZXBsYWNlKC9eKFtBLVpdKXxbXHMtX10rKFx3KS9nLChlLHQscik9PnI/ci50b1VwcGVyQ2FzZSgpOnQudG9Mb3dlckNhc2UoKSksInRvQ2FtZWxDYXNlIil9KTt2YXIgUmdlLGJyYT1mKCgpPT57Z3JhKCk7UmdlPXMoYT0+e2xldCBlPU5nZShhKTtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpfSwidG9QYXNjYWxDYXNlIil9KTt2YXIgdnJhLE9nZSxxdGUseHJhPWYoKCk9PntQZ2UoKTtBZ2UoKTtocmEoKTttcmEoKTticmEoKTt2cmE9cyhhPT5BcnJheS5mcm9tKGEuYXR0cmlidXRlcykucmVkdWNlKChlLHQpPT4oZVt0Lm5hbWVdPXQudmFsdWUsZSkse30pLCJnZXRBdHRycyIpLE9nZT1zKGE9PnR5cGVvZiBhPT0ic3RyaW5nIj9hOiFhfHwhYS5jbGFzcz8iIjphLmNsYXNzJiZ0eXBlb2YgYS5jbGFzcz09InN0cmluZyI/YS5jbGFzcy5zcGxpdCgiICIpOmEuY2xhc3MmJkFycmF5LmlzQXJyYXkoYS5jbGFzcyk/YS5jbGFzczoiIiwiZ2V0Q2xhc3NOYW1lcyIpLHF0ZT1zKChhLHtuYW1lQXR0cjplLGljb25zOnQsYXR0cnM6cn0pPT57bGV0IGk9YS5nZXRBdHRyaWJ1dGUoZSk7aWYoaT09bnVsbClyZXR1cm47bGV0IG89UmdlKGkpLG49dFtvXTtpZighbilyZXR1cm4gY29uc29sZS53YXJuKGAke2Eub3V0ZXJIVE1MfSBpY29uIG5hbWUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcHJvdmlkZWQgaWNvbnMgb2JqZWN0LmApO2xldCBsPXZyYShhKSxkPUVnZShsKT97fTp7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGM9ey4uLm12LCJkYXRhLWx1Y2lkZSI6aSwuLi5kLC4uLnIsLi4ubH0scD1PZ2UobCksdT1PZ2UociksbT1JZ2UoImx1Y2lkZSIsYGx1Y2lkZS0ke2l9YCwuLi5wLC4uLnUpO20mJk9iamVjdC5hc3NpZ24oYyx7Y2xhc3M6bX0pO2xldCB2PWE0KG4sYyk7cmV0dXJuIGEucGFyZW50Tm9kZT8ucmVwbGFjZUNoaWxkKHYsYSl9LCJyZXBsYWNlRWxlbWVudCIpfSk7dmFyIGd2LEZnZT1mKCgpPT57Z3Y9W1sicGF0aCIse2Q6Im0xNCAxMiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciBidixCZ2U9ZigoKT0+e2J2PVtbInBhdGgiLHtkOiJtMTQgMTEgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgdnYsSGdlPWYoKCk9Pnt2dj1bWyJwYXRoIix7ZDoibTE1IDE2IDIuNTM2LTcuMzI4YTEuMDIgMS4wMiAxIDAgMSAxLjkyOCAwTDIyIDE2In1dLFsicGF0aCIse2Q6Ik0xNS42OTcgMTRoNS42MDYifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dfSk7dmFyIHh2LHFnZT1mKCgpPT57eHY9W1siY2lyY2xlIix7Y3g6IjE2IixjeToiNCIscjoiMSJ9XSxbInBhdGgiLHtkOiJtMTggMTkgMS03LTYgMSJ9XSxbInBhdGgiLHtkOiJtNSA4IDMtMyA1LjUgMy0yLjM2IDMuNSJ9XSxbInBhdGgiLHtkOiJNNC4yNCAxNC41YTUgNSAwIDAgMCA2Ljg4IDYifV0sWyJwYXRoIix7ZDoiTTEzLjc2IDE3LjVhNSA1IDAgMCAwLTYuODgtNiJ9XV19KTt2YXIgeXYsVmdlPWYoKCk9Pnt5dj1bWyJwYXRoIix7ZDoiTTIyIDEyaC0yLjQ4YTIgMiAwIDAgMC0xLjkzIDEuNDZsLTIuMzUgOC4zNmEuMjUuMjUgMCAwIDEtLjQ4IDBMOS4yNCAyLjE4YS4yNS4yNSAwIDAgMC0uNDggMGwtMi4zNSA4LjM2QTIgMiAwIDAgMSA0LjQ5IDEySDIifV1dfSk7dmFyIHd2LGpnZT1mKCgpPT57d3Y9W1sicGF0aCIse2Q6Ik0xOCAxNy41YTIuNSAyLjUgMCAxIDEtNCAyLjAzVjEyIn1dLFsicGF0aCIse2Q6Ik02IDEySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOGgxMiJ9XSxbInBhdGgiLHtkOiJNNi42IDE1LjU3MkEyIDIgMCAxIDAgMTAgMTd2LTUifV1dfSk7dmFyIE12LFVnZT1mKCgpPT57TXY9W1sicGF0aCIse2Q6Ik01IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0xIn1dLFsicGF0aCIse2Q6Im0xMiAxNSA1IDZIN1oifV1dfSk7dmFyIHVkLFdnZT1mKCgpPT57dWQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoibTkgMTMgMiAyIDQtNCJ9XV19KTt2YXIgcGQsR2dlPWYoKCk9PntwZD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXX0pO3ZhciBrdixZZ2U9ZigoKT0+e2t2PVtbInBhdGgiLHtkOiJNNi44NyA2Ljg3YTggOCAwIDEgMCAxMS4yNiAxMS4yNiJ9XSxbInBhdGgiLHtkOiJNMTkuOSAxNC4yNWE4IDggMCAwIDAtOS4xNS05LjE1In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4yNiAxOC42NyA0IDIxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTQgNCAyIDYifV1dfSk7dmFyIGZkLEtnZT1mKCgpPT57ZmQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XV19KTt2YXIgU3YsWmdlPWYoKCk9PntTdj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMTIgOXY0bDIgMiJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XV19KTt2YXIgenYsWGdlPWYoKCk9Pnt6dj1bWyJwYXRoIix7ZDoiTTExIDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjFjMC0yLjUgMi0yLjUgMi01In1dLFsicGF0aCIse2Q6Im0xOSA4LS44IDNhMS4yNSAxLjI1IDAgMCAxLTEuMiAxSDdhMS4yNSAxLjI1IDAgMCAxLTEuMi0xTDUgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM2ExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNiAyMWMwLTIuNSAyLTIuNSAyLTUifV1dfSk7dmFyIEN2LFFnZT1mKCgpPT57Q3Y9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjExIDMgMTEgMTEgMTQgOCAxNyAxMSAxNyAzIn1dXX0pO3ZhciBfdixKZ2U9ZigoKT0+e192PVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNCJ9XSxbInBhdGgiLHtkOiJNMTAgOFY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjQifV0sWyJwYXRoIix7ZDoiTTIwIDE2djFhMiAyIDAgMCAxLTIgMmgtMmEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0xNCA4VjdjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgVHYsZWJlPWYoKCk9PntUdj1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTggMTBINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0In1dLFsicGF0aCIse2Q6Ik0xNiAxMGg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00In1dLFsicGF0aCIse2Q6Ik04IDIwSDdhMiAyIDAgMCAxLTItMnYtMmMwLTEuMS45LTIgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDFhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTEifV1dfSk7dmFyIEx2LHRiZT1mKCgpPT57THY9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiOSIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV1dfSk7dmFyICR2LGFiZT1mKCgpPT57JHY9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNSJ9XSxbInBhdGgiLHtkOiJNMTcgN1YyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0zIn1dLFsicGF0aCIse2Q6Ik03IDVWMiJ9XV19KTt2YXIgRHYscmJlPWYoKCk9PntEdj1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjkiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJWMiJ9XV19KTt2YXIgQXYsc2JlPWYoKCk9PntBdj1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIwIDJ2MjAifV1dfSk7dmFyIFB2LGliZT1mKCgpPT57UHY9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MjAifV1dfSk7dmFyIEV2LG9iZT1mKCgpPT57RXY9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIwIn1dXX0pO3ZhciBJdixuYmU9ZigoKT0+e0l2PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjEyIix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMnYyMCJ9XV19KTt2YXIgTnYsbGJlPWYoKCk9PntOdj1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjYiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMnYyMCJ9XV19KTt2YXIgUnYsY2JlPWYoKCk9PntSdj1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjkiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDIyVjIifV0sWyJwYXRoIix7ZDoiTTIwIDIyVjIifV1dfSk7dmFyIE92LGRiZT1mKCgpPT57T3Y9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDJIMiJ9XV19KTt2YXIgRnYsdWJlPWYoKCk9PntGdj1bWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiNiIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI2Iix4OiI2Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXX0pO3ZhciBCdixwYmU9ZigoKT0+e0J2PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE1Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAydjIwIn1dXX0pO3ZhciBIdixmYmU9ZigoKT0+e0h2PVtbInBhdGgiLHtkOiJNMjIgMTdoLTMifV0sWyJwYXRoIix7ZDoiTTIyIDdoLTUifV0sWyJwYXRoIix7ZDoiTTUgMTdIMiJ9XSxbInBhdGgiLHtkOiJNNyA3SDIifV0sWyJyZWN0Iix7eDoiNSIseToiMTQiLHdpZHRoOiIxNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI0Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIHF2LGhiZT1mKCgpPT57cXY9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDIwIn1dXX0pO3ZhciBWdixtYmU9ZigoKT0+e1Z2PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMiA0aDIwIn1dXX0pO3ZhciBqdixnYmU9ZigoKT0+e2p2PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV19KTt2YXIgVXYsYmJlPWYoKCk9PntVdj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjEyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjJoMjAifV1dfSk7dmFyIFd2LHZiZT1mKCgpPT57V3Y9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJoMjAifV1dfSk7dmFyIEd2LHhiZT1mKCgpPT57R3Y9W1sicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMjIgNEgyIn1dXX0pO3ZhciBZdix5YmU9ZigoKT0+e1l2PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XSxbInBhdGgiLHtkOiJNMiAzaDIwIn1dXX0pO3ZhciBLdix3YmU9ZigoKT0+e0t2PVtbInBhdGgiLHtkOiJNMTAgMTBINiJ9XSxbInBhdGgiLHtkOiJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy4yOGExIDEgMCAwIDAtLjY4NC0uOTQ4bC0xLjkyMy0uNjQxYTEgMSAwIDAgMS0uNTc4LS41MDJsLTEuNTM5LTMuMDc2QTEgMSAwIDAgMCAxNi4zODIgOEgxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djQifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgWnYsTWJlPWYoKCk9Pntadj1bWyJwYXRoIix7ZDoiTTEwIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxN2MtNS0zLTctNy03LTlhMiAyIDAgMCAxIDQgMGMwIDIuNS01IDIuNS01IDYgMCAxLjcgMS4zIDMgMyAzIDIuOCAwIDUtMi4yIDUtNSJ9XV19KTt2YXIgWHYsa2JlPWYoKCk9PntYdj1bWyJwYXRoIix7ZDoiTTE2IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTJhOCA4IDAgMCAxLTggOEE0LjUgNC41IDAgMCAxIDUgMTUuNWMwLTYgOC00IDgtOC41YTMgMyAwIDEgMC02IDBjMCAzIDIuNSA4LjUgMTIgMTMifV1dfSk7dmFyIFF2LFNiZT1mKCgpPT57UXY9W1sicGF0aCIse2Q6Ik0xMCAydjUuNjMyYzAgLjQyNC0uMjcyLjc5NS0uNjUzLjk4MkE2IDYgMCAwIDAgNiAxNGMuMDA2IDQgMyA3IDUgOCJ9XSxbInBhdGgiLHtkOiJNMTAgNUg4YTIgMiAwIDAgMCAwIDRoLjY4In1dLFsicGF0aCIse2Q6Ik0xNCAydjUuNjMyYzAgLjQyNC4yNzIuNzk1LjY1Mi45ODJBNiA2IDAgMCAxIDE4IDE0YzAgNC0zIDctNSA4In1dLFsicGF0aCIse2Q6Ik0xNCA1aDJhMiAyIDAgMCAxIDAgNGgtLjY4In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg2In1dLFsicGF0aCIse2Q6Ik05IDJoNiJ9XV19KTt2YXIgSnYsemJlPWYoKCk9PntKdj1bWyJwYXRoIix7ZDoiTTEyIDZ2MTYifV0sWyJwYXRoIix7ZDoibTE5IDEzIDItMWE5IDkgMCAwIDEtMTggMGwyIDEifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIGV4LENiZT1mKCgpPT57ZXg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJwYXRoIix7ZDoiTTcuNSA4IDEwIDkifV0sWyJwYXRoIix7ZDoibTE0IDkgMi41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGguMDEifV1dfSk7dmFyIHR4LF9iZT1mKCgpPT57dHg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDE1aDgifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDIifV1dfSk7dmFyIGF4LFRiZT1mKCgpPT57YXg9W1sicGF0aCIse2Q6Ik0yIDEyIDcgMiJ9XSxbInBhdGgiLHtkOiJtNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xMiAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2gxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV19KTt2YXIgcngsTGJlPWYoKCk9PntyeD1bWyJwYXRoIix7ZDoiTTcgMTBINmE0IDQgMCAwIDEtNC00IDEgMSAwIDAgMSAxLTFoNCJ9XSxbInBhdGgiLHtkOiJNNyA1YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMSA3IDcgMCAwIDEtNyA3SDhhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNSAyMGEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgMyAxIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMSJ9XV19KTt2YXIgc3gsJGJlPWYoKCk9PntzeD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0LjMxIDggNS43NCA5Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDhoMTEuNDgifV0sWyJwYXRoIix7ZDoibTcuMzggMTIgNS43NC05Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDE2IDMuOTUgNi4wNiJ9XSxbInBhdGgiLHtkOiJNMTQuMzEgMTZIMi44MyJ9XSxbInBhdGgiLHtkOiJtMTYuNjIgMTItNS43NCA5Ljk0In1dXX0pO3ZhciBpeCxEYmU9ZigoKT0+e2l4PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV1dfSk7dmFyIG94LEFiZT1mKCgpPT57b3g9W1sicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDR2NCJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicGF0aCIse2Q6Ik02IDR2NCJ9XV19KTt2YXIgbngsUGJlPWYoKCk9PntueD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCA4djExYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoibTkgMTUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2OSJ9XV19KTt2YXIgbHgsRWJlPWYoKCk9PntseD1bWyJwYXRoIix7ZDoiTTEyIDYuNTI4VjNhMSAxIDAgMCAxIDEtMWgwIn1dLFsicGF0aCIse2Q6Ik0xOC4yMzcgMjFBMTUgMTUgMCAwIDAgMjIgMTFhNiA2IDAgMCAwLTEwLTQuNDcyQTYgNiAwIDAgMCAyIDExYTE1LjEgMTUuMSAwIDAgMCAzLjc2MyAxMCAzIDMgMCAwIDAgMy42NDguNjQ4IDUuNSA1LjUgMCAwIDEgNS4xNzggMEEzIDMgMCAwIDAgMTguMjM3IDIxIn1dXX0pO3ZhciBjeCxJYmU9ZigoKT0+e2N4PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJtOS41IDE3IDUtNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyIDUgNSJ9XV19KTt2YXIgZHgsTmJlPWYoKCk9PntkeD1bWyJwYXRoIix7ZDoiTTE5IDlWNmEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciB1eCxSYmU9ZigoKT0+e3V4PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XV19KTt2YXIgcHgsT2JlPWYoKCk9PntweD1bWyJwYXRoIix7ZDoiTTE0IDhhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDFoMy4yOTNhLjcwNy43MDcgMCAwIDEgLjUgMS4yMDdsLTYuOTM5IDYuOTM5YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTYuOTQtNi45NGEuNzA3LjcwNyAwIDAgMSAuNS0xLjIwNkg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSA0aDYifV1dfSk7dmFyIGZ4LEZiZT1mKCgpPT57Zng9W1sicGF0aCIse2Q6Ik05IDVhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDAgMSAxaDMuMjkzYS43MDcuNzA3IDAgMCAxIC41IDEuMjA3bC03LjA4NiA3LjA4NmExIDEgMCAwIDEtMS40MTQgMGwtNy4wODYtNy4wODZhLjcwNy43MDcgMCAwIDEgLjUtMS4yMDdIOGExIDEgMCAwIDAgMS0xeiJ9XV19KTt2YXIgaHgsQmJlPWYoKCk9PntoeD1bWyJwYXRoIix7ZDoiTTEwLjc5MyAxOS43OTNhLjcwNy43MDcgMCAwIDAgMS4yMDctLjVWMTZhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDEtMS0xVjQuNzA3YS43MDcuNzA3IDAgMCAwLTEuMjA3LS41bC02Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN3oifV1dfSk7dmFyIG14LEhiZT1mKCgpPT57bXg9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNC43MDdhLjcwNy43MDcgMCAwIDAtMS4yMDctLjVsLTYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3bDYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAxLjIwNy0uNVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOXY2In1dXX0pO3ZhciBneCxxYmU9ZigoKT0+e2d4PVtbInBhdGgiLHtkOiJNMTEgOWExIDEgMCAwIDAgMS0xVjQuNzA3YS43MDcuNzA3IDAgMCAxIDEuMjA3LS41bDYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02Ljk0IDYuOTRhLjcwNy43MDcgMCAwIDEtMS4yMDctLjVWMTZhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTQgOXY2In1dXX0pO3ZhciBieCxWYmU9ZigoKT0+e2J4PVtbInBhdGgiLHtkOiJNMTMuMjA3IDE5Ljc5M2EuNzA3LjcwNyAwIDAgMS0xLjIwNy0uNVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy0uNWw2Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN3oifV1dfSk7dmFyIHZ4LGpiZT1mKCgpPT57dng9W1sicGF0aCIse2Q6Ik0xNCAxNmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMSAxLTFoMy4yOTNhLjcwNy43MDcgMCAwIDAgLjUtMS4yMDdsLTYuOTM5LTYuOTM5YTEuMjA3IDEuMjA3IDAgMCAwLTEuNzA4IDBsLTYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAuNSAxLjIwNkg4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAyMGg2In1dXX0pO3ZhciB4eCxVYmU9ZigoKT0+e3h4PVtbInBhdGgiLHtkOiJNOSAxOWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtNmExIDEgMCAwIDEgMS0xaDMuMjkzYS43MDcuNzA3IDAgMCAwIC41LTEuMjA3bC03LjA4Ni03LjA4NmExIDEgMCAwIDAtMS40MTQgMGwtNy4wODYgNy4wODZhLjcwNy43MDcgMCAwIDAgLjUgMS4yMDdIOGExIDEgMCAwIDEgMSAxeiJ9XV19KTt2YXIgeXgsV2JlPWYoKCk9Pnt5eD1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dfSk7dmFyIHd4LEdiZT1mKCgpPT57d3g9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBWNGgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiMTQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dXX0pO3ZhciBNeCxZYmU9ZigoKT0+e014PVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dfSk7dmFyIGhkLEtiZT1mKCgpPT57aGQ9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGg1bC01IDZoNSJ9XV19KTt2YXIga3gsWmJlPWYoKCk9PntreD1bWyJwYXRoIix7ZDoiTTE3IDcgNyAxNyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdIN1Y3In1dXX0pO3ZhciBTeCxYYmU9ZigoKT0+e1N4PVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTExIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTEgOGg3In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XV19KTt2YXIgengsUWJlPWYoKCk9Pnt6eD1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMEg3In1dXX0pO3ZhciBDeCxKYmU9ZigoKT0+e0N4PVtbInBhdGgiLHtkOiJNMTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgOS03IDctNy03In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dfSk7dmFyIF94LGV2ZT1mKCgpPT57X3g9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dXX0pO3ZhciBUeCx0dmU9ZigoKT0+e1R4PVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXX0pO3ZhciBtZCxhdmU9ZigoKT0+e21kPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTExIDRoMTAifV0sWyJwYXRoIix7ZDoiTTExIDhoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoNCJ9XV19KTt2YXIgZ2QscnZlPWYoKCk9PntnZD1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNSA0aDVsLTUgNmg1In1dLFsicGF0aCIse2Q6Ik0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgtNSJ9XV19KTt2YXIgTHgsc3ZlPWYoKCk9PntMeD1bWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoibTE5IDEyLTcgNy03LTcifV1dfSk7dmFyICR4LGl2ZT1mKCgpPT57JHg9W1sicGF0aCIse2Q6Im05IDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWNSJ9XV19KTt2YXIgRHgsb3ZlPWYoKCk9PntEeD1bWyJwYXRoIix7ZDoiTTggMyA0IDdsNCA0In1dLFsicGF0aCIse2Q6Ik00IDdoMTYifV0sWyJwYXRoIix7ZDoibTE2IDIxIDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIwIDE3SDQifV1dfSk7dmFyIEF4LG52ZT1mKCgpPT57QXg9W1sicGF0aCIse2Q6Ik0zIDE5VjUifV0sWyJwYXRoIix7ZDoibTEzIDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxNCJ9XV19KTt2YXIgUHgsbHZlPWYoKCk9PntQeD1bWyJwYXRoIix7ZDoiTTMgNXYxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJINyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggNi02LTYtNiJ9XV19KTt2YXIgRXgsY3ZlPWYoKCk9PntFeD1bWyJwYXRoIix7ZDoibTEyIDE5LTctNyA3LTcifV0sWyJwYXRoIix7ZDoiTTE5IDEySDUifV1dfSk7dmFyIEl4LGR2ZT1mKCgpPT57SXg9W1sicGF0aCIse2Q6Im0xNiAzIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIwIDdINCJ9XSxbInBhdGgiLHtkOiJtOCAyMS00LTQgNC00In1dLFsicGF0aCIse2Q6Ik00IDE3aDE2In1dXX0pO3ZhciBOeCx1dmU9ZigoKT0+e054PVtbInBhdGgiLHtkOiJNMTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJtMTEgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxNCJ9XV19KTt2YXIgUngscHZlPWYoKCk9PntSeD1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV0sWyJwYXRoIix7ZDoibTEyIDUgNyA3LTcgNyJ9XV19KTt2YXIgT3gsZnZlPWYoKCk9PntPeD1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV19KTt2YXIgRngsaHZlPWYoKCk9PntGeD1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYtNmgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMjBoNCJ9XV19KTt2YXIgYmQsbXZlPWYoKCk9PntiZD1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTIwIDhoLTUifV0sWyJwYXRoIix7ZDoiTTE1IDEwVjYuNWEyLjUgMi41IDAgMCAxIDUgMFYxMCJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoNWwtNSA2aDUifV1dfSk7dmFyIEJ4LGd2ZT1mKCgpPT57Qng9W1sicGF0aCIse2Q6Im0yMSAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY0In1dLFsicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dXX0pO3ZhciBIeCxidmU9ZigoKT0+e0h4PVtbInBhdGgiLHtkOiJtNSA5IDctNyA3IDcifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMSIscjoiMSJ9XV19KTt2YXIgcXgsdnZlPWYoKCk9PntxeD1bWyJwYXRoIix7ZDoibTE4IDktNi02LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgVngseHZlPWYoKCk9PntWeD1bWyJwYXRoIix7ZDoiTTcgMTdWN2gxMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcgNyA3In1dXX0pO3ZhciB2ZCx5dmU9ZigoKT0+e3ZkPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoMTAifV1dfSk7dmFyIGp4LHd2ZT1mKCgpPT57ang9W1sicGF0aCIse2Q6Ik03IDdoMTB2MTAifV0sWyJwYXRoIix7ZDoiTTcgMTcgMTcgNyJ9XV19KTt2YXIgVXgsTXZlPWYoKCk9PntVeD1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxNmg3In1dLFsicGF0aCIse2Q6Ik0xMSAyMGg0In1dXX0pO3ZhciBXeCxrdmU9ZigoKT0+e1d4PVtbInBhdGgiLHtkOiJNNSAzaDE0In1dLFsicGF0aCIse2Q6Im0xOCAxMy02LTYtNiA2In1dLFsicGF0aCIse2Q6Ik0xMiA3djE0In1dXX0pO3ZhciBHeCxTdmU9ZigoKT0+e0d4PVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXX0pO3ZhciB4ZCx6dmU9ZigoKT0+e3hkPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dfSk7dmFyIFl4LEN2ZT1mKCgpPT57WXg9W1sicGF0aCIse2Q6Ik0xMiA2djEyIn1dLFsicGF0aCIse2Q6Ik0xNy4xOTYgOSA2LjgwNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi44MDQgOSAxMC4zOTIgNiJ9XV19KTt2YXIgS3gsX3ZlPWYoKCk9PntLeD1bWyJwYXRoIix7ZDoibTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik03IDE3VjMifV0sWyJwYXRoIix7ZDoibTE0IDYgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XV19KTt2YXIgWngsVHZlPWYoKCk9PntaeD1bWyJwYXRoIix7ZDoiTTEyLjk4MyAyMS4xODZhMSAxIDAgMCAxLTEuOTY2IDAgMTAgMTAgMCAwIDAtOC4yMDMtOC4yMDMgMSAxIDAgMCAxIDAtMS45NjYgMTAgMTAgMCAwIDAgOC4yMDMtOC4yMDMgMSAxIDAgMCAxIDEuOTY2IDAgMTAgMTAgMCAwIDAgOC4yMDMgOC4yMDMgMSAxIDAgMCAxIDAgMS45NjYgMTAgMTAgMCAwIDAtOC4yMDMgOC4yMDMifV1dfSk7dmFyIFh4LEx2ZT1mKCgpPT57WHg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV19KTt2YXIgUXgsJHZlPWYoKCk9PntReD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dfSk7dmFyIEp4LER2ZT1mKCgpPT57Sng9W1sicGF0aCIse2Q6Ik0yIDEwdjMifV0sWyJwYXRoIix7ZDoiTTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNMTAgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTQgOHY3In1dLFsicGF0aCIse2Q6Ik0xOCA1djEzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYzIn1dXX0pO3ZhciBleSxBdmU9ZigoKT0+e2V5PVtbInBhdGgiLHtkOiJNMiAxM2EyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwVjRhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwdi00YTIgMiAwIDAgMSAyLTIifV1dfSk7dmFyIHR5LFB2ZT1mKCgpPT57dHk9W1sicGF0aCIse2Q6Im0xNS40NzcgMTIuODkgMS41MTUgOC41MjZhLjUuNSAwIDAgMS0uODEuNDdsLTMuNTgtMi42ODdhMSAxIDAgMCAwLTEuMTk3IDBsLTMuNTg2IDIuNjg2YS41LjUgMCAwIDEtLjgxLS40NjlsMS41MTQtOC41MjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiI2In1dXX0pO3ZhciBheSxFdmU9ZigoKT0+e2F5PVtbInBhdGgiLHtkOiJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5In1dLFsicGF0aCIse2Q6Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6In1dXX0pO3ZhciByeSxJdmU9ZigoKT0+e3J5PVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXX0pO3ZhciB5ZCxOdmU9ZigoKT0+e3lkPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXX0pO3ZhciBzeSxSdmU9ZigoKT0+e3N5PVtbInBhdGgiLHtkOiJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTggMTBoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg4In1dLFsicGF0aCIse2Q6Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIGl5LE92ZT1mKCgpPT57aXk9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIG95LEZ2ZT1mKCgpPT57b3k9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTUuNCAxMGE0IDQgMCAxIDAgMCA0In1dXX0pO3ZhciB3ZCxCdmU9ZigoKT0+e3dkPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgbnksSHZlPWYoKCk9PntueT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIGx5LHF2ZT1mKCgpPT57bHk9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNNyAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIn1dXX0pO3ZhciBjeSxWdmU9ZigoKT0+e2N5PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dfSk7dmFyIGR5LGp2ZT1mKCgpPT57ZHk9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiI4Iix5MjoiOCJ9XV19KTt2YXIgdXksVXZlPWYoKCk9Pnt1eT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dfSk7dmFyIHB5LFd2ZT1mKCgpPT57cHk9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgZnksR3ZlPWYoKCk9PntmeT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBoeSxZdmU9ZigoKT0+e2h5PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIG15LEt2ZT1mKCgpPT57bXk9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgTWQsWnZlPWYoKCk9PntNZD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dfSk7dmFyIGd5LFh2ZT1mKCgpPT57Z3k9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTEgMTdWOGg0In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgzIn1dLFsicGF0aCIse2Q6Ik05IDE2aDQifV1dfSk7dmFyIGJ5LFF2ZT1mKCgpPT57Ynk9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXX0pO3ZhciB2eSxKdmU9ZigoKT0+e3Z5PVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV19KTt2YXIgeHksZXhlPWYoKCk9Pnt4eT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgeXksdHhlPWYoKCk9Pnt5eT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dXX0pO3ZhciB3eSxheGU9ZigoKT0+e3d5PVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBNeSxyeGU9ZigoKT0+e015PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIn1dXX0pO3ZhciBreSxzeGU9ZigoKT0+e2t5PVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV19KTt2YXIgU3ksaXhlPWYoKCk9PntTeT1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dfSk7dmFyIHp5LG94ZT1mKCgpPT57enk9W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTIifV0sWyJwYXRoIix7ZDoiTTYgNnYxMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBDeSxueGU9ZigoKT0+e0N5PVtbInBhdGgiLHtkOiJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMtMy0zIDMifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIF95LGx4ZT1mKCgpPT57X3k9W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBUeSxjeGU9ZigoKT0+e1R5PVtbInBhdGgiLHtkOiJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAxNy01IDUifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIEx5LGR4ZT1mKCgpPT57THk9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDFNMTggMTJoLjAxIn1dXX0pO3ZhciAkeSx1eGU9ZigoKT0+eyR5PVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik04IDV2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoiTTE3IDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIER5LHB4ZT1mKCgpPT57RHk9W1sicGF0aCIse2Q6Ik0xMCAzYTQxIDQxIDAgMCAwIDAgMTgifV0sWyJwYXRoIix7ZDoiTTE0IDNhNDEgNDEgMCAwIDEgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6In1dLFsicGF0aCIse2Q6Ik0zLjg0IDE3aDE2LjMyIn1dLFsicGF0aCIse2Q6Ik0zLjg0IDdoMTYuMzIifV1dfSk7dmFyIEF5LGZ4ZT1mKCgpPT57QXk9W1sicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBQeSxoeGU9ZigoKT0+e1B5PVtbInBhdGgiLHtkOiJNMTAgNCA4IDYifV0sWyJwYXRoIix7ZDoiTTE3IDE5djIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIEV5LG14ZT1mKCgpPT57RXk9W1sicGF0aCIse2Q6Im0xMSA3LTMgNWg0bC0zIDUifV0sWyJwYXRoIix7ZDoiTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTUuMTQgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyLjkzNiJ9XV19KTt2YXIgSXksZ3hlPWYoKCk9PntJeT1bWyJwYXRoIix7ZDoiTTEwIDEwdjQifV0sWyJwYXRoIix7ZDoiTTE0IDEwdjQifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDEwdjQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgTnksYnhlPWYoKCk9PntOeT1bWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIFJ5LHZ4ZT1mKCgpPT57Unk9W1sicGF0aCIse2Q6Ik0xMCAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgT3kseHhlPWYoKCk9PntPeT1bWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTIuNTQzIDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuNjA1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmg2In1dLFsicGF0aCIse2Q6Ik03LjYwNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMuNjA2In1dXX0pO3ZhciBGeSx5eGU9ZigoKT0+e0Z5PVtbInBhdGgiLHtkOiJNMTAgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA3djYifV0sWyJwYXRoIix7ZDoiTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dXX0pO3ZhciBCeSx3eGU9ZigoKT0+e0J5PVtbInBhdGgiLHtkOiJNIDIyIDE0IEwgMjIgMTAifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgSHksTXhlPWYoKCk9PntIeT1bWyJwYXRoIix7ZDoiTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xIn1dLFsicGF0aCIse2Q6Ik0xMC43NSA1LjA5M0E2IDYgMCAwIDEgMjIgOGMwIDIuNDExLS42MSA0LjY4LTEuNjgzIDYuNjYifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHF5LGt4ZT1mKCgpPT57cXk9W1sicGF0aCIse2Q6Ik00LjUgM2gxNSJ9XSxbInBhdGgiLHtkOiJNNiAzdjE2YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMifV0sWyJwYXRoIix7ZDoiTTYgMTRoMTIifV1dfSk7dmFyIFZ5LFN4ZT1mKCgpPT57Vnk9W1sicGF0aCIse2Q6Ik0yIDIwdi04YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDEwVjZhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDR2NiJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyMCJ9XV19KTt2YXIganksenhlPWYoKCk9PntqeT1bWyJwYXRoIix7ZDoiTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMloifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDEgMCA1LjI3OS01LjI4In1dXX0pO3ZhciBVeSxDeGU9ZigoKT0+e1V5PVtbInBhdGgiLHtkOiJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDE4aDE4In1dXX0pO3ZhciBXeSxfeGU9ZigoKT0+e1d5PVtbInBhdGgiLHtkOiJNMTEuNzcxIDYuMTA5YTIuNSAyLjUgMCAwIDEgMy4xMiAzLjEyIn1dLFsicGF0aCIse2Q6Ik0xNy44NTIgMTIuMTg1YTYuNSA2LjUgMCAwIDAtOS4wMzUtOS4wNCJ9XSxbInBhdGgiLHtkOiJNMTguMDEzIDE4LjAxM0MxNS4wMjkgMjAuMzQ5IDEwLjgzMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUifV0sWyJwYXRoIix7ZDoibTE4LjUgNiAyLjE5IDQuNWE2LjQ4IDYuNDggMCAwIDEtLjEzOSA0LjM5MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02LjM1NSA2LjM3YTcgNyAwIDAgMC0uMDc1LjIzYy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGMzLjM1NiAwIDYuOTkzLTEuMjY3IDkuODUtMy4xNTEifV1dfSk7dmFyIEd5LFR4ZT1mKCgpPT57R3k9W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV19KTt2YXIgWXksTHhlPWYoKCk9PntZeT1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV19KTt2YXIgS3ksJHhlPWYoKCk9PntLeT1bWyJwYXRoIix7ZDoiTTEzIDEzdjUifV0sWyJwYXRoIix7ZDoiTTE3IDExLjQ3VjgifV0sWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDIuNzQ1IDQuMjExIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNy41MzYgNy41MzVDNi43NjYgNy42NDkgNi4xNTQgOCA1LjUgOGEyLjUgMi41IDAgMCAxLTEuNzY4LTQuMjY4In1dLFsicGF0aCIse2Q6Ik04LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMiJ9XSxbInBhdGgiLHtkOiJNOSAxNC42VjE4In1dXX0pO3ZhciBaeSxEeGU9ZigoKT0+e1p5PVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXX0pO3ZhciBYeSxBeGU9ZigoKT0+e1h5PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Im0xNSA4IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTE2Ljg2MDcgNC40ODI0QTYgNiAwIDAgMCA2IDhDNiAxMi40OTkgNC41ODkgMTMuOTU2IDMuMjYyIDE1LjMyNiJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3SDIwQTEgMSAwIDAgMCAyMC43NCAxNS4zMjdDMjAuMjA5IDE0Ljc3OSAxOS42NjUgMTQuMjE4IDE5LjIwMyAxMy40NTQifV1dfSk7dmFyIFF5LFB4ZT1mKCgpPT57UXk9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTExLjY4IDIuMDA5QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczYy0uODI0LS44NS0xLjY3OC0xLjczMS0yLjIxLTMuMzQ4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgSnksRXhlPWYoKCk9PntKeT1bWyJwYXRoIix7ZDoiTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5In1dLFsicGF0aCIse2Q6Ik0xOC44IDRBMTEgMTEgMCAwIDEgMjAgOSJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsicmVjdCIse3g6IjQiLHk6IjE2Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIGV3LEl4ZT1mKCgpPT57ZXc9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIC4yNTgtMS43NDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NjggMy4wMUE2IDYgMCAwIDEgMTggOGMwIDIuNjg3Ljc3IDQuNjUzIDEuNzA3IDYuMDUifV1dfSk7dmFyIHR3LE54ZT1mKCgpPT57dHc9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE1IDhoNiJ9XSxbInBhdGgiLHtkOiJNMTYuMjQzIDMuNzU3QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQTkuNCA5LjQgMCAwIDEgMTguNjY3IDEyIn1dXX0pO3ZhciBhdyxSeGU9ZigoKT0+e2F3PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDV2NiJ9XSxbInBhdGgiLHtkOiJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIifV1dfSk7dmFyIHJ3LE94ZT1mKCgpPT57cnc9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjMtLjgtNC4zLTItNiJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XSxbInBhdGgiLHtkOiJNNCAyQzIuOCAzLjcgMiA1LjcgMiA4In1dXX0pO3ZhciBzdyxGeGU9ZigoKT0+e3N3PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dXX0pO3ZhciBrZCxCeGU9ZigoKT0+e2tkPVtbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMtMyAzLTMifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgU2QsSHhlPWYoKCk9PntTZD1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yIDkgMyAzLTMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBpdyxxeGU9ZigoKT0+e2l3PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zIDMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dXX0pO3ZhciBvdyxWeGU9ZigoKT0+e293PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciBudyxqeGU9ZigoKT0+e253PVtbInBhdGgiLHtkOiJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiJ9XSxbInBhdGgiLHtkOiJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUifV1dfSk7dmFyIGx3LFV4ZT1mKCgpPT57bHc9W1siY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxNy41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNS41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiNSIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNVYxNGwtMy0zIDQtMyAyIDNoMiJ9XV19KTt2YXIgY3csV3hlPWYoKCk9Pntjdz1bWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMGg0In1dLFsicGF0aCIse2Q6Ik02IDE0aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgNGgydjYifV1dfSk7dmFyIGR3LEd4ZT1mKCgpPT57ZHc9W1sicGF0aCIse2Q6Ik0xMCAxMGg0In1dLFsicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTIgMiAwIDAgMCAyLTJ2LTMuODUxYzAtMS4zOS0yLTIuOTYyLTItNC44MjlWOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MTFhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTSAyMiAxNiBMIDIgMTYifV0sWyJwYXRoIix7ZDoiTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDdWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciB1dyxZeGU9ZigoKT0+e3V3PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExLjkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTYuNyAzLjRjLS45IDIuNSAwIDUuMiAyLjIgNi43QzYuNSA5IDMuNyA5LjYgMiAxMS42In1dLFsicGF0aCIse2Q6Im04LjkgMTAuMSAxLjQuOCJ9XSxbInBhdGgiLHtkOiJNMTcuMyAzLjRjLjkgMi41IDAgNS4yLTIuMiA2LjcgMi40LTEuMiA1LjItLjYgNi45IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMSAxMC4xLTEuNC44In1dLFsicGF0aCIse2Q6Ik0xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuOXYxLjYifV0sWyJwYXRoIix7ZDoiTTEzLjUgNS40Yy0xLS4yLTItLjItMyAwIn1dLFsicGF0aCIse2Q6Ik0xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNSJ9XSxbInBhdGgiLHtkOiJNNS41IDEzLjljLjMuOS44IDEuOCAxLjUgMi41In1dXX0pO3ZhciBwdyxLeGU9ZigoKT0+e3B3PVtbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAifV0sWyJwYXRoIix7ZDoibTIwIDcgMiAuNS0yIC41In1dLFsicGF0aCIse2Q6Ik0xMCAxOHYzIn1dLFsicGF0aCIse2Q6Ik0xNCAxNy43NVYyMSJ9XSxbInBhdGgiLHtkOiJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSJ9XV19KTt2YXIgZncsWnhlPWYoKCk9Pntmdz1bWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTE3IDE4IDEuOTU2LTExLjQ2OCJ9XSxbInBhdGgiLHtkOiJtMyA4IDcuODItNS42MTVhMiAyIDAgMCAxIDIuMzYgMEwyMSA4In1dLFsicGF0aCIse2Q6Ik00IDE4aDE2In1dLFsicGF0aCIse2Q6Ik03IDE4IDUuMDQ0IDYuNTMyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIGh3LFh4ZT1mKCgpPT57aHc9W1sicGF0aCIse2Q6Ik0xMS43NjcgMTkuMDg5YzQuOTI0Ljg2OCA2LjE0LTYuMDI1IDEuMjE2LTYuODk0bS0xLjIxNiA2Ljg5NEw1Ljg2IDE4LjA0N201LjkwOCAxLjA0Mi0uMzQ3IDEuOTdtMS41NjMtOC44NjRjNC45MjQuODY5IDYuMTQtNi4wMjUgMS4yMTUtNi44OTNtLTEuMjE1IDYuODkzLTMuOTQtLjY5NG01LjE1NS02LjJMOC4yOSA0LjI2bTUuOTA4IDEuMDQyLjM0OC0xLjk3TTcuNDggMjAuMzY0bDMuMTI2LTE3LjcyNyJ9XV19KTt2YXIgbXcsUXhlPWYoKCk9Pnttdz1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiNyJ9XV19KTt2YXIgZ3csSnhlPWYoKCk9Pntndz1bWyJwYXRoIix7ZDoiTTMgM2gxOCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g4In1dLFsicGF0aCIse2Q6Ik0yMCAxMUg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAzdjE0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgYncsZXllPWYoKCk9Pntidz1bWyJwYXRoIix7ZDoiTTEwIDIyVjdhMSAxIDAgMCAwLTEtMUg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0xLTFIMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIHZ3LHR5ZT1mKCgpPT57dnc9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIHh3LGF5ZT1mKCgpPT57eHc9W1sicGF0aCIse2Q6Im0xNyAxNy01IDVWMTJsLTUgNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xNC41IDkuNSAxNyA3bC01LTV2NC41In1dXX0pO3ZhciB5dyxyeWU9ZigoKT0+e3l3PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dXX0pO3ZhciB3dyxzeWU9ZigoKT0+e3d3PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsicGF0aCIse2Q6Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIE13LGl5ZT1mKCgpPT57TXc9W1sicGF0aCIse2Q6Ik02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCJ9XV19KTt2YXIga3csb3llPWYoKCk9Pntrdz1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMyIscjoiOSJ9XSxbInBhdGgiLHtkOiJNMTQuMzUgNC42NSAxNi4zIDIuN2EyLjQxIDIuNDEgMCAwIDEgMy40IDBsMS42IDEuNmEyLjQgMi40IDAgMCAxIDAgMy40bC0xLjk1IDEuOTUifV0sWyJwYXRoIix7ZDoibTIyIDItMS41IDEuNSJ9XV19KTt2YXIgU3csbnllPWYoKCk9PntTdz1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXX0pO3ZhciB6dyxseWU9ZigoKT0+e3p3PVtbInBhdGgiLHtkOiJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoifV1dfSk7dmFyIEN3LGN5ZT1mKCgpPT57Q3c9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im04IDEzIDQtNyA0IDcifV0sWyJwYXRoIix7ZDoiTTkuMSAxMWg1LjcifV1dfSk7dmFyIF93LGR5ZT1mKCgpPT57X3c9W1sicGF0aCIse2Q6Ik0xMiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV19KTt2YXIgVHcsdXllPWYoKCk9PntUdz1bWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOHYzIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDh2MyJ9XV19KTt2YXIgTHcscHllPWYoKCk9PntMdz1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgOS41IDIgMiA0LTQifV1dfSk7dmFyICR3LGZ5ZT1mKCgpPT57JHc9W1sicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNNS44MDMgMThINWEyIDIgMCAwIDAgMCA0aDkuNWEuNS41IDAgMCAwIC41LS41VjIxIn1dLFsicGF0aCIse2Q6Ik05IDE1VjRhMiAyIDAgMCAxIDItMmg5LjVhLjUuNSAwIDAgMSAuNS41djE0YS41LjUgMCAwIDEtLjUuNUgxMWEyIDIgMCAwIDEgMC00aDEwIn1dXX0pO3ZhciB6ZCxoeWU9ZigoKT0+e3pkPVtbInBhdGgiLHtkOiJNMTIgMTdoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyMmgxLjUifV0sWyJwYXRoIix7ZDoiTTEyIDJoMS41In1dLFsicGF0aCIse2Q6Ik0xNy41IDIySDE5YTEgMSAwIDAgMCAxLTEifV0sWyJwYXRoIix7ZDoiTTE3LjUgMkgxOWExIDEgMCAwIDEgMSAxdjEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTR2M2gtMi41In1dLFsicGF0aCIse2Q6Ik0yMCA4LjVWMTAifV0sWyJwYXRoIix7ZDoiTTQgMTBWOC41In1dLFsicGF0aCIse2Q6Ik00IDE5LjVWMTQifV0sWyJwYXRoIix7ZDoiTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIOCJ9XSxbInBhdGgiLHtkOiJNOCAyMkg2LjVhMSAxIDAgMCAxIDAtNUg4In1dXX0pO3ZhciBEdyxteWU9ZigoKT0+e0R3PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzIDMgMy0zIn1dXX0pO3ZhciBBdyxneWU9ZigoKT0+e0F3PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dfSk7dmFyIFB3LGJ5ZT1mKCgpPT57UHc9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04LjYyIDkuOEEyLjI1IDIuMjUgMCAxIDEgMTIgNi44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBFdyx2eWU9ZigoKT0+e0V3PVtbInBhdGgiLHtkOiJtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiIyIn1dXX0pO3ZhciBJdyx4eWU9ZigoKT0+e0l3PVtbInBhdGgiLHtkOiJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSJ9XSxbInBhdGgiLHtkOiJNMTcgMnY2In1dLFsicGF0aCIse2Q6Ik0xNyA0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEwIixyOiIyIn1dXX0pO3ZhciBOdyx5eWU9ZigoKT0+e053PVtbInBhdGgiLHtkOiJNMTAgMnY4bDMtMyAzIDNWMiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV19KTt2YXIgUncsd3llPWYoKCk9PntSdz1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgT3csTXllPWYoKCk9PntPdz1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgRncsa3llPWYoKCk9PntGdz1bWyJwYXRoIix7ZDoiTTEyIDIxVjcifV0sWyJwYXRoIix7ZDoibTE2IDEyIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTIyIDZWNGExIDEgMCAwIDAtMS0xaC01YTQgNCAwIDAgMC00IDQgNCA0IDAgMCAwLTQtNEgzYTEgMSAwIDAgMC0xIDF2MTNhMSAxIDAgMCAwIDEgMWg2YTMgMyAwIDAgMSAzIDMgMyAzIDAgMCAxIDMtM2g2YTEgMSAwIDAgMCAxLTF2LTEuMyJ9XV19KTt2YXIgQncsU3llPWYoKCk9PntCdz1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTE2IDEyaDIifV0sWyJwYXRoIix7ZDoiTTE2IDhoMiJ9XSxbInBhdGgiLHtkOiJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6In1dLFsicGF0aCIse2Q6Ik02IDEyaDIifV0sWyJwYXRoIix7ZDoiTTYgOGgyIn1dXX0pO3ZhciBIdyx6eWU9ZigoKT0+e0h3PVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIHF3LEN5ZT1mKCgpPT57cXc9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3oifV1dfSk7dmFyIFZ3LF95ZT1mKCgpPT57Vnc9W1sicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgancsVHllPWYoKCk9Pntqdz1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggMTFoOCJ9XSxbInBhdGgiLHtkOiJNOCA3aDYifV1dfSk7dmFyIFV3LEx5ZT1mKCgpPT57VXc9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xOCAyaDFhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDIifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSA1IDMtMyAzIDMifV1dfSk7dmFyIFd3LCR5ZT1mKCgpPT57V3c9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV1dfSk7dmFyIEd3LER5ZT1mKCgpPT57R3c9W1sicGF0aCIse2Q6Ik0xMCAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiA2djcifV0sWyJwYXRoIix7ZDoiTTE2IDhWNkg4djIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIFl3LEF5ZT1mKCgpPT57WXc9W1sicGF0aCIse2Q6Ik0xNSAxM2EzIDMgMCAxIDAtNiAwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiMiJ9XV19KTt2YXIgS3csUHllPWYoKCk9PntLdz1bWyJwYXRoIix7ZDoibTE0LjUgNy01IDUifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkuNSA3IDUgNSJ9XV19KTt2YXIgWncsRXllPWYoKCk9Pntadz1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIFh3LEl5ZT1mKCgpPT57WHc9W1sicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XV19KTt2YXIgUXcsTnllPWYoKCk9PntRdz1bWyJwYXRoIix7ZDoiTTE1IDEwSDkifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgSncsUnllPWYoKCk9PntKdz1bWyJwYXRoIix7ZDoiTTE5IDE5djFhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gxN2EyIDIgMCAwIDEgMiAydjguMzQ0In1dXX0pO3ZhciBlTSxPeWU9ZigoKT0+e2VNPVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xNSAxMEg5In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dfSk7dmFyIHRNLEZ5ZT1mKCgpPT57dE09W1sicGF0aCIse2Q6Im0xNC41IDcuNS01IDUifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dfSk7dmFyIGFNLEJ5ZT1mKCgpPT57YU09W1sicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dfSk7dmFyIHJNLEh5ZT1mKCgpPT57ck09W1sicGF0aCIse2Q6Ik00IDlWNWEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNOCA4djEifV0sWyJwYXRoIix7ZDoiTTEyIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTYgOHYxIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiOSIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTUiLHI6IjIifV1dfSk7dmFyIHNNLHF5ZT1mKCgpPT57c009W1sicGF0aCIse2Q6Ik0xMiA2VjJIOCJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmEyIDIgMCAwIDEtMiAySDguODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSA0IDIwLjI4NlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTF2MiJ9XV19KTt2YXIgaU0sVnllPWYoKCk9PntpTT1bWyJwYXRoIix7ZDoiTTEzLjY3IDhIMThhMiAyIDAgMCAxIDIgMnY0LjMzIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XSxbInBhdGgiLHtkOiJNOS42NyA0SDEydjIuMzMifV1dfSk7dmFyIG9NLGp5ZT1mKCgpPT57b009W1sicGF0aCIse2Q6Ik0xMiA4VjRIOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHg6IjQiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTE1IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XV19KTt2YXIgbk0sVXllPWYoKCk9PntuTT1bWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Ik0xOC41NzUgMTEuMDgyYTEzIDEzIDAgMCAxIDEuMDQ4IDkuMDI3IDEuMTcgMS4xNyAwIDAgMS0xLjkxNC41OTdMMTQgMTcifV0sWyJwYXRoIix7ZDoiTTcgMTAgMy4yOSA2LjI5YTEuMTcgMS4xNyAwIDAgMSAuNi0xLjkxIDEzIDEzIDAgMCAxIDkuMDMgMS4wNSJ9XSxbInBhdGgiLHtkOiJNNyAxNGExLjcgMS43IDAgMCAwLTEuMjA3LjVsLTIuNjQ2IDIuNjQ2QS41LjUgMCAwIDAgMy41IDE4SDVhMSAxIDAgMCAxIDEgMXYxLjVhLjUuNSAwIDAgMCAuODU0LjM1NEw5LjUgMTguMjA3QTEuNyAxLjcgMCAwIDAgMTAgMTd2LTJhMSAxIDAgMCAwLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkuNzA3IDE0LjI5MyAyMSAzIn1dXX0pO3ZhciBsTSxXeWU9ZigoKT0+e2xNPVtbInBhdGgiLHtkOiJNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTYgNiAwIDAgMCAxLjIgMy42bC42LjhBNiA2IDAgMCAxIDE3IDEzdjhhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LThhNiA2IDAgMCAxIDEuMi0zLjZsLjYtLjhBNiA2IDAgMCAwIDEwIDV6In1dLFsicGF0aCIse2Q6Ik0xNyAxM2gtNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0In1dXX0pO3ZhciBjTSxHeWU9ZigoKT0+e2NNPVtbInBhdGgiLHtkOiJNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaIn1dLFsicGF0aCIse2Q6Im0zLjMgNyA4LjcgNSA4LjctNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJWMTIifV1dfSk7dmFyIGRNLFl5ZT1mKCgpPT57ZE09W1sicGF0aCIse2Q6Ik0yLjk3IDEyLjkyQTIgMiAwIDAgMCAyIDE0LjYzdjMuMjRhMiAyIDAgMCAwIC45NyAxLjcxbDMgMS44YTIgMiAwIDAgMCAyLjA2IDBMMTIgMTl2LTUuNWwtNS0zLTQuMDMgMi40MloifV0sWyJwYXRoIix7ZDoibTcgMTYuNS00Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoibTcgMTYuNSA1LTMifV0sWyJwYXRoIix7ZDoiTTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjE5bDMuOTcgMi4zOGEyIDIgMCAwIDAgMi4wNiAwbDMtMS44YTIgMiAwIDAgMCAuOTctMS43MXYtMy4yNGEyIDIgMCAwIDAtLjk3LTEuNzFMMTcgMTAuNWwtNSAzWiJ9XSxbInBhdGgiLHtkOiJtMTcgMTYuNS01LTMifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUgNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41djUuMTcifV0sWyJwYXRoIix7ZDoiTTcuOTcgNC40MkEyIDIgMCAwIDAgNyA2LjEzdjQuMzdsNSAzIDUtM1Y2LjEzYTIgMiAwIDAgMC0uOTctMS43MWwtMy0xLjhhMiAyIDAgMCAwLTIuMDYgMGwtMyAxLjhaIn1dLFsicGF0aCIse2Q6Ik0xMiA4IDcuMjYgNS4xNSJ9XSxbInBhdGgiLHtkOiJtMTIgOCA0Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjVWOCJ9XV19KTt2YXIgQ2QsS3llPWYoKCk9PntDZD1bWyJwYXRoIix7ZDoiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIn1dXX0pO3ZhciB1TSxaeWU9ZigoKT0+e3VNPVtbInBhdGgiLHtkOiJNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMUg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDMifV1dfSk7dmFyIHBNLFh5ZT1mKCgpPT57cE09W1sicGF0aCIse2Q6Ik0xMiA1YTMgMyAwIDEgMC01Ljk5Ny4xMjUgNCA0IDAgMCAwLTIuNTI2IDUuNzcgNCA0IDAgMCAwIC41NTYgNi41ODhBNCA0IDAgMSAwIDEyIDE4WiJ9XSxbInBhdGgiLHtkOiJNOSAxM2E0LjUgNC41IDAgMCAwIDMtNCJ9XSxbInBhdGgiLHtkOiJNNi4wMDMgNS4xMjVBMyAzIDAgMCAwIDYuNDAxIDYuNSJ9XSxbInBhdGgiLHtkOiJNMy40NzcgMTAuODk2YTQgNCAwIDAgMSAuNTg1LS4zOTYifV0sWyJwYXRoIix7ZDoiTTYgMThhNCA0IDAgMCAxLTEuOTY3LS41MTYifV0sWyJwYXRoIix7ZDoiTTEyIDEzaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDZhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4aDgifV0sWyJwYXRoIix7ZDoiTTE2IDhWNWEyIDIgMCAwIDEgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMyIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIyMSIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI4IixyOiIuNSJ9XV19KTt2YXIgZk0sUXllPWYoKCk9PntmTT1bWyJwYXRoIix7ZDoibTEwLjg1MiAxNC43NzItLjM4My45MjMifV0sWyJwYXRoIix7ZDoibTEwLjg1MiA5LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC43NzIuMzgyLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuNTMxIDguMzA1LS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTAuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTMuMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMCAwLTUuNjMtMS40NDYgMyAzIDAgMCAwLS4zNjggMS41NzEgNCA0IDAgMCAwLTIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xNy45OTggNS4xMjVhNCA0IDAgMCAxIDIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xOS41MDUgMTAuMjk0YTQgNCAwIDAgMS0xLjUgNy43MDYifV0sWyJwYXRoIix7ZDoiTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2In1dLFsicGF0aCIse2Q6Ik00LjUgMTAuMjkxQTQgNCAwIDAgMCA2IDE4In1dLFsicGF0aCIse2Q6Ik02LjAwMiA1LjEyNWEzIDMgMCAwIDAgLjQgMS4zNzUifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBoTSxKeWU9ZigoKT0+e2hNPVtbInBhdGgiLHtkOiJNMTYgM3YyLjEwNyJ9XSxbInBhdGgiLHtkOiJNMTcgOWMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAyMiAxN2E1IDUgMCAwIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDMTMgMTEuNSAxNiA5IDE3IDkifV0sWyJwYXRoIix7ZDoiTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWg1LjI1MyJ9XSxbInBhdGgiLHtkOiJNMyA5aDguMjI4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBtTSxld2U9ZigoKT0+e21NPVtbInBhdGgiLHtkOiJNMTIgMThWNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0In1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDEgMC01LjU5OCAxLjUifV0sWyJwYXRoIix7ZDoiTTE3Ljk5NyA1LjEyNWE0IDQgMCAwIDEgMi41MjYgNS43NyJ9XSxbInBhdGgiLHtkOiJNMTggMThhNCA0IDAgMCAwIDItNy40NjQifV0sWyJwYXRoIix7ZDoiTTE5Ljk2NyAxNy40ODNBNCA0IDAgMSAxIDEyIDE4YTQgNCAwIDEgMS03Ljk2Ny0uNTE3In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0yLTcuNDY0In1dLFsicGF0aCIse2Q6Ik02LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NyJ9XV19KTt2YXIgZ00sdHdlPWYoKCk9PntnTT1bWyJwYXRoIix7ZDoiTTEyIDl2MS4yNTgifV0sWyJwYXRoIix7ZDoiTTE2IDN2NS40NiJ9XSxbInBhdGgiLHtkOiJNMjEgOS4xMThWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDUuNzUifV0sWyJwYXRoIix7ZDoiTTIyIDE3LjVjMCAyLjQ5OS0xLjc1IDMuNzQ5LTMuODMgNC40NzRhLjUuNSAwIDAgMS0uMzM1LS4wMDVjLTIuMDg1LS43Mi0zLjgzNS0xLjk3LTMuODM1LTQuNDdWMTRhLjUuNSAwIDAgMSAuNS0uNDk5YzEgMCAyLjI1LS42IDMuMTItMS4zNmEuNi42IDAgMCAxIC43Ni0uMDAxYy44NzUuNzY1IDIuMTIgMS4zNiAzLjEyIDEuMzZhLjUuNSAwIDAgMSAuNS41eiJ9XSxbInBhdGgiLHtkOiJNMyAxNWg3In1dLFsicGF0aCIse2Q6Ik0zIDloMTIuMTQyIn1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciBiTSxhd2U9ZigoKT0+e2JNPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV0sWyJwYXRoIix7ZDoiTTE2IDE1djYifV0sWyJwYXRoIix7ZDoiTTE2IDN2NiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXX0pO3ZhciB2TSxyd2U9ZigoKT0+e3ZNPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgeE0sc3dlPWYoKCk9Pnt4TT1bWyJwYXRoIix7ZDoiTTEwIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4IDIwdjIifV0sWyJwYXRoIix7ZDoiTTIxIDIwSDMifV0sWyJwYXRoIix7ZDoiTTYgMjB2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEyIn1dLFsicmVjdCIse3g6IjQiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMCIscng6IjIifV1dfSk7dmFyIHlNLGl3ZT1mKCgpPT57eU09W1sicGF0aCIse2Q6Ik0xMiAxMXY0In1dLFsicGF0aCIse2Q6Ik0xNCAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOCA2djE0In1dLFsicGF0aCIse2Q6Ik02IDZ2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgd00sb3dlPWYoKCk9Pnt3TT1bWyJwYXRoIix7ZDoiTTE2IDIwVjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjE2In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIE1NLG53ZT1mKCgpPT57TU09W1sicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDEwYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMjBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMiJ9XV19KTt2YXIga00sbHdlPWYoKCk9PntrTT1bWyJwYXRoIix7ZDoibTE2IDIyLTEtNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0yaC0zYTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtNCAwdjVhMSAxIDAgMCAxLTEgMUg2YTIgMiAwIDAgMC0yIDJ2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNEg1bC0xLjk3MyA2Ljc2N0ExIDEgMCAwIDAgNCAyMmgxNmExIDEgMCAwIDAgLjk3My0xLjIzM3oifV0sWyJwYXRoIix7ZDoibTggMjIgMS00In1dXX0pO3ZhciBTTSxjd2U9ZigoKT0+e1NNPVtbInBhdGgiLHtkOiJtMTEgMTAgMyAzIn1dLFsicGF0aCIse2Q6Ik02LjUgMjFBMy41IDMuNSAwIDEgMCAzIDE3LjVhMi42MiAyLjYyIDAgMCAxLS43MDggMS43OTJBMSAxIDAgMCAwIDMgMjF6In1dLFsicGF0aCIse2Q6Ik05Ljk2OSAxNy4wMzEgMjEuMzc4IDUuNjI0YTEgMSAwIDAgMC0zLjAwMi0zLjAwMkw2Ljk2NyAxNC4wMzEifV1dfSk7dmFyIHpNLGR3ZT1mKCgpPT57ek09W1sicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTRhNCA0IDAgMCAxIDQgNHYxLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0xNy4xMjMgMTcuMTIzQTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSAxLjcyLTMuMjg3In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTMuMzQ0In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkuNzEyIDQuMDZBMyAzIDAgMCAxIDE1IDZ2MS4xMyJ9XV19KTt2YXIgQ00sdXdlPWYoKCk9PntDTT1bWyJwYXRoIix7ZDoiTTcuMDAxIDE1LjA4NUExLjUgMS41IDAgMCAxIDkgMTYuNSJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiOC41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiNS41In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjQuNSIscjoiMi41In1dXX0pO3ZhciBfTSxwd2U9ZigoKT0+e19NPVtbInBhdGgiLHtkOiJNMTAgMTkuNjU1QTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSA0LTRoNGE0IDQgMCAwIDEgNCAzLjk3In1dLFsicGF0aCIse2Q6Ik0xNCAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dfSk7dmFyIFRNLGZ3ZT1mKCgpPT57VE09W1sicGF0aCIse2Q6Ik0xMiAyMHYtOSJ9XSxbInBhdGgiLHtkOiJNMTQgN2E0IDQgMCAwIDEgNCA0djNhNiA2IDAgMCAxLTEyIDB2LTNhNCA0IDAgMCAxIDQtNHoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMjFhNCA0IDAgMCAwLTMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0yMiAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dfSk7dmFyIExNLGh3ZT1mKCgpPT57TE09W1sicGF0aCIse2Q6Ik0xMiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDIydi0zYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjMifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgJE0sbXdlPWYoKCk9PnskTT1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMjFWNWEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxNiJ9XV19KTt2YXIgRE0sZ3dlPWYoKCk9PntETT1bWyJwYXRoIix7ZDoiTTQgNiAyIDcifV0sWyJwYXRoIix7ZDoiTTEwIDZoNCJ9XSxbInBhdGgiLHtkOiJtMjIgNy0yLTEifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMWgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMXYtMiJ9XV19KTt2YXIgQU0sYndlPWYoKCk9PntBTT1bWyJwYXRoIix7ZDoiTTggNnY2In1dLFsicGF0aCIse2Q6Ik0xNSA2djYifV0sWyJwYXRoIix7ZDoiTTIgMTJoMTkuNiJ9XSxbInBhdGgiLHtkOiJNMTggMThoM3MuNS0xLjcuOC0yLjhjLjEtLjQuMi0uOC4yLTEuMiAwLS40LS4xLS44LS4yLTEuMmwtMS40LTVDMjAuMSA2LjggMTkuMSA2IDE4IDZINGEyIDIgMCAwIDAtMiAydjEwaDMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgUE0sdndlPWYoKCk9PntQTT1bWyJwYXRoIix7ZDoiTTE3IDE5YTEgMSAwIDAgMS0xLTF2LTJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE5IDE0VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWMTAifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0zIDVWMyJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjZhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyA1VjMifV1dfSk7dmFyIEVNLHh3ZT1mKCgpPT57RU09W1sicGF0aCIse2Q6Ik0xMCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmguMDEifV0sWyJwYXRoIix7ZDoibTIgOSAyMC01In1dLFsicGF0aCIse2Q6Ik0xMiAxMlY2LjUifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEwIix4OiI0Iix5OiIxMiIscng6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgSU0seXdlPWYoKCk9PntJTT1bWyJwYXRoIix7ZDoiTTE2IDEzSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDMifV0sWyJwYXRoIix7ZDoibTcuMiA3LjktMy4zODggMi41QTIgMiAwIDAgMCAzIDEyLjAxVjIwYTEgMSAwIDAgMCAxIDFoMTZhMSAxIDAgMCAwIDEtMXYtOC42NTRjMC0yLTIuNDQtNi4wMjYtNi40NC04LjAyNmExIDEgMCAwIDAtMS4wODIuMDU3TDEwLjQgNS42In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiIyIn1dXX0pO3ZhciBOTSx3d2U9ZigoKT0+e05NPVtbInBhdGgiLHtkOiJNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNCAxNnMuNS0xIDItMSAyLjUgMiA0IDIgMi41LTIgNC0yIDIuNSAyIDQgMiAyLTEgMi0xIn1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dLFsicGF0aCIse2Q6Ik03IDh2MyJ9XSxbInBhdGgiLHtkOiJNMTIgOHYzIn1dLFsicGF0aCIse2Q6Ik0xNyA4djMifV0sWyJwYXRoIix7ZDoiTTcgNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyA0aC4wMSJ9XV19KTt2YXIgUk0sTXdlPWYoKCk9PntSTT1bWyJwYXRoIix7ZDoiTTExIDE0aDF2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBPTSxrd2U9ZigoKT0+e09NPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNiIseTE6IjE0Iix5MjoiMTgifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XV19KTt2YXIgRk0sU3dlPWYoKCk9PntGTT1bWyJwYXRoIix7ZDoibTE0IDE4IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTR2OCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMzU0VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjM0MyJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIEJNLHp3ZT1mKCgpPT57Qk09W1sicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNDNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDkifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBITSxDd2U9ZigoKT0+e0hNPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dfSk7dmFyIHFNLF93ZT1mKCgpPT57cU09W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMiAyIDQtNCJ9XV19KTt2YXIgVk0sVHdlPWYoKCk9PntWTT1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSA3LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXX0pO3ZhciBqTSxMd2U9ZigoKT0+e2pNPVtbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuNDcgMTQuMzA1LjM4Mi45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBVTSwkd2U9ZigoKT0+e1VNPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC4wMSJ9XV19KTt2YXIgV00sRHdlPWYoKCk9PntXTT1bWyJwYXRoIix7ZDoiTTMgMjBhMiAyIDAgMCAwIDIgMmgxMGEyLjQgMi40IDAgMCAwIDEuNzA2LS43MDZsMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAyMSAxNlY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJ2LTVhMSAxIDAgMCAxIDEtMWg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dXX0pO3ZhciBHTSxBd2U9ZigoKT0+e0dNPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dXX0pO3ZhciBZTSxQd2U9ZigoKT0+e1lNPVtbInBhdGgiLHtkOiJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgS00sRXdlPWYoKCk9PntLTT1bWyJwYXRoIix7ZDoiTTQuMiA0LjJBMiAyIDAgMCAwIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAxLjgyLTEuMTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjVWNmEyIDIgMCAwIDAtMi0ySDkuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDcifV0sWyJwYXRoIix7ZDoiTTIxIDEwaC01LjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgWk0sSXdlPWYoKCk9PntaTT1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIFhNLE53ZT1mKCgpPT57WE09W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTEwIDE2aDQifV0sWyJwYXRoIix7ZDoiTTEyIDE0djQifV1dfSk7dmFyIFFNLFJ3ZT1mKCgpPT57UU09W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC02In1dLFsicGF0aCIse2Q6Ik0xMyAxOEg3In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMThoLjAxIn1dXX0pO3ZhciBKTSxPd2U9ZigoKT0+e0pNPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIGVrLEZ3ZT1mKCgpPT57ZWs9W1sicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDExLjc1VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjI1In1dLFsicGF0aCIse2Q6Im0yMiAyMi0xLjg3NS0xLjg3NSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgdGssQndlPWYoKCk9Pnt0az1bWyJwYXRoIix7ZDoiTTExIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoibTIxIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMjEgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIxIDguNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNC4zIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDQifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBhayxId2U9ZigoKT0+e2FrPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE3IDIyIDUtNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dXX0pO3ZhciByayxxd2U9ZigoKT0+e3JrPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im0xNCAxNC00IDQifV0sWyJwYXRoIix7ZDoibTEwIDE0IDQgNCJ9XV19KTt2YXIgc2ssVndlPWYoKCk9Pntzaz1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV19KTt2YXIgaWssandlPWYoKCk9Pntpaz1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTUuNzI2IDIxLjAxQTIgMiAwIDAgMSAxNCAyMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMTggMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTggOGgxNCJ9XSxbInJlY3QiLHt4OiI4Iix5OiIzIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBvayxVd2U9ZigoKT0+e29rPVtbInBhdGgiLHtkOiJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1In1dLFsicGF0aCIse2Q6Ik05LjY5NSA0LjAyNEEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQifV1dfSk7dmFyIG5rLFd3ZT1mKCgpPT57bms9W1sicGF0aCIse2Q6Ik0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMyJ9XV19KTt2YXIgbGssR3dlPWYoKCk9Pntsaz1bWyJwYXRoIix7ZDoiTTUuNyAyMWEyIDIgMCAwIDEtMy41LTJsOC42LTE0YTYgNiAwIDAgMSAxMC40IDYgMiAyIDAgMSAxLTMuNDY0LTIgMiAyIDAgMSAwLTMuNDY0LTJaIn1dLFsicGF0aCIse2Q6Ik0xNy43NSA3IDE1IDIuMSJ9XSxbInBhdGgiLHtkOiJNMTAuOSA0LjggMTMgOSJ9XSxbInBhdGgiLHtkOiJtNy45IDkuNyAyIDQuNCJ9XSxbInBhdGgiLHtkOiJNNC45IDE0LjcgNyAxOC45In1dXX0pO3ZhciBjayxZd2U9ZigoKT0+e2NrPVtbInBhdGgiLHtkOiJNMTAgN3YxMC45In1dLFsicGF0aCIse2Q6Ik0xNCA2LjFWMTcifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Ik0xNi41MzYgNy40NjVhNSA1IDAgMCAwLTcuMDcyIDBsLTIgMmE1IDUgMCAwIDAgMCA3LjA3IDUgNSAwIDAgMCA3LjA3MiAwbDItMmE1IDUgMCAwIDAgMC03LjA3In1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXX0pO3ZhciBkayxLd2U9ZigoKT0+e2RrPVtbInBhdGgiLHtkOiJNMTAgMTB2Ny45In1dLFsicGF0aCIse2Q6Ik0xMS44MDIgNi4xNDVhNSA1IDAgMCAxIDYuMDUzIDYuMDUzIn1dLFsicGF0aCIse2Q6Ik0xNCA2LjF2Mi4yNDMifV0sWyJwYXRoIix7ZDoibTE1LjUgMTUuNTcxLS45NjQuOTY0YTUgNSAwIDAgMS03LjA3MSAwIDUgNSAwIDAgMSAwLTcuMDdsLjk2NC0uOTY1In1dLFsicGF0aCIse2Q6Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXX0pO3ZhciB1ayxad2U9ZigoKT0+e3VrPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTRjMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSJ9XSxbInBhdGgiLHtkOiJNMTMuOTg4IDguMzI3QzEzLjkwMiA2LjA1NCAxMy4zNjUgMy44MiAxMiAyYTkuMyA5LjMgMCAwIDAtMS40NDUgMi45In1dLFsicGF0aCIse2Q6Ik0xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEuMDI0IDE1LjM3OEExNSAxNSAwIDAgMCAyMiAxNWMtLjQyNi0xLjI3OS0yLjY3LTIuNTU3LTQuMjUtMi45MDcifV0sWyJwYXRoIix7ZDoiTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIn1dXX0pO3ZhciBwayxYd2U9ZigoKT0+e3BrPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV0sWyJwYXRoIix7ZDoiTTcgMTJjLTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyAxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01IDAgMCAyLjUuNSA2LTEtLjUtMS41LTMuNS0zLTUtMyAxLjUtMSA0LTQgNC02LTIuNSAwLTUuNSAxLjUtNyAzIDAtMi41LS41LTUtMi03LTEuNSAyLTIgNC41LTIgNy0xLjUtMS41LTQuNS0zLTctMyAwIDIgMi41IDUgNCA2In1dXX0pO3ZhciBmayxRd2U9ZigoKT0+e2ZrPVtbInBhdGgiLHtkOiJNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41In1dLFsicGF0aCIse2Q6Ik0xNyAxMWgtLjUifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNyAxMWg0In1dLFsicGF0aCIse2Q6Ik03IDE1aDIuNSJ9XV19KTt2YXIgX2QsSndlPWYoKCk9PntfZD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE0Iix4OiIzIix5OiI1IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTVoNE0xNSAxNWgyTTcgMTFoMk0xMyAxMWg0In1dXX0pO3ZhciBoayxlTWU9ZigoKT0+e2hrPVtbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dfSk7dmFyIG1rLHRNZT1mKCgpPT57bWs9W1sicGF0aCIse2Q6Ik0xOSAxN2gyYy42IDAgMS0uNCAxLTF2LTNjMC0uOS0uNy0xLjctMS41LTEuOUMxOC43IDEwLjYgMTYgMTAgMTYgMTBzLTEuMy0xLjQtMi4yLTIuM2MtLjUtLjQtMS4xLS43LTEuOC0uN0g1Yy0uNiAwLTEuMS40LTEuNC45bC0xLjQgMi45QTMuNyAzLjcgMCAwIDAgMiAxMnY0YzAgLjYuNCAxIDEgMWgyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjIifV1dfSk7dmFyIGdrLGFNZT1mKCgpPT57Z2s9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciBiayxyTWU9ZigoKT0+e2JrPVtbInBhdGgiLHtkOiJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciB2ayxzTWU9ZigoKT0+e3ZrPVtbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicmVjdCIse3g6IjgiLHk6IjEwIix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgeGssaU1lPWYoKCk9Pnt4az1bWyJwYXRoIix7ZDoiTTIuMjcgMjEuN3M5Ljg3LTMuNSAxMi43My02LjM2YTQuNSA0LjUgMCAwIDAtNi4zNi02LjM3QzUuNzcgMTEuODQgMi4yNyAyMS43IDIuMjcgMjEuN3pNOC42NCAxNGwtMi4wNS0yLjA0TTE1LjM0IDE1bC0yLjQ2LTIuNDYifV0sWyJwYXRoIix7ZDoiTTIyIDlzLTEuMzMtMi0zLjUtMkMxNi44NiA3IDE1IDkgMTUgOXMxLjMzIDIgMy41IDJTMjIgOSAyMiA5eiJ9XSxbInBhdGgiLHtkOiJNMTUgMnMtMiAxLjMzLTIgMy41UzE1IDkgMTUgOXMyLTEuODQgMi0zLjVDMTcgMy4zMyAxNSAyIDE1IDJ6In1dXX0pO3ZhciB5ayxvTWU9ZigoKT0+e3lrPVtbInBhdGgiLHtkOiJNMTAgOXY3In1dLFsicGF0aCIse2Q6Ik0xNCA2djEwIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMi41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiMTIuNSIscjoiMy41In1dXX0pO3ZhciB3ayxuTWU9ZigoKT0+e3drPVtbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0yMiA5djcifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxMi41IixyOiIzLjUifV1dfSk7dmFyIE1rLGxNZT1mKCgpPT57TWs9W1sicGF0aCIse2Q6Ik0xNSAxMWg0LjVhMSAxIDAgMCAxIDAgNWgtNGEuNS41IDAgMCAxLS41LS41di05YS41LjUgMCAwIDEgLjUtLjVoM2ExIDEgMCAwIDEgMCA1In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciBrayxjTWU9ZigoKT0+e2trPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMifV1dfSk7dmFyIFNrLGRNZT1mKCgpPT57U2s9W1sicGF0aCIse2Q6Ik0yIDhWNmEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxMmE5IDkgMCAwIDEgOCA4In1dLFsicGF0aCIse2Q6Ik0yIDE2YTUgNSAwIDAgMSA0IDQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyLjAxIix5MToiMjAiLHkyOiIyMCJ9XV19KTt2YXIgemssdU1lPWYoKCk9Pnt6az1bWyJwYXRoIix7ZDoiTTEwIDVWMyJ9XSxbInBhdGgiLHtkOiJNMTQgNVYzIn1dLFsicGF0aCIse2Q6Ik0xNSAyMXYtM2EzIDMgMCAwIDAtNiAwdjMifV0sWyJwYXRoIix7ZDoiTTE4IDN2OCJ9XSxbInBhdGgiLHtkOiJNMTggNUg2In1dLFsicGF0aCIse2Q6Ik0yMiAxMUgyIn1dLFsicGF0aCIse2Q6Ik0yMiA5djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjkifV0sWyJwYXRoIix7ZDoiTTYgM3Y4In1dXX0pO3ZhciBDayxwTWU9ZigoKT0+e0NrPVtbInBhdGgiLHtkOiJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaIn1dXX0pO3ZhciBfayxmTWU9ZigoKT0+e19rPVtbInBhdGgiLHtkOiJtMTIuMzA5IDYuNjUyIDQuNzk3IDIuNDAxYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0uNTAxIDEuMDAxLjYwNS42MDVoMi43MjVhMSAxIDAgMCAxIC44OTQgMS40NDdsLS43MjQgMS40NDgifV0sWyJwYXRoIix7ZDoibTE1LjE2NiAxNS4xNjYtLjcxOSAxLjQzOWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45IDIuOSAwIDAgMSAuODczLTEuMDM3In1dLFsicGF0aCIse2Q6Ik0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFsMS40NDEtMi45MDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMiAyMXYtNCJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XV19KTt2YXIgVGssaE1lPWYoKCk9PntUaz1bWyJwYXRoIix7ZDoiTTE2Ljc1IDEyaDMuNjMyYTEgMSAwIDAgMSAuODk0IDEuNDQ3bC0yLjAzNCA0LjA2OWExIDEgMCAwIDEtMS43MDguMTM0bC0yLjEyNC0yLjk3In1dLFsicGF0aCIse2Q6Ik0xNy4xMDYgOS4wNTNhMSAxIDAgMCAxIC40NDcgMS4zNDFsLTMuMTA2IDYuMjExYTEgMSAwIDAgMS0xLjM0Mi40NDdMMy42MSAxMi4zYTIuOTIgMi45MiAwIDAgMS0xLjMtMy45MUwzLjY5IDUuNmEyLjkyIDIuOTIgMCAwIDEgMy45Mi0xLjN6In1dLFsicGF0aCIse2Q6Ik0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMXYtNCJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XV19KTt2YXIgVGQsbU1lPWYoKCk9PntUZD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExLjIwN2EuNS41IDAgMCAxIC4xNDYtLjM1M2wyLTJhLjUuNSAwIDAgMSAuNzA4IDBsMy4yOTIgMy4yOTJhLjUuNSAwIDAgMCAuNzA4IDBsNC4yOTItNC4yOTJhLjUuNSAwIDAgMSAuODU0LjM1M1YxNmExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIExkLGdNZT1mKCgpPT57TGQ9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiI3Iix5OiIxMyIsd2lkdGg6IjkiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiNSIsd2lkdGg6IjEyIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBMayxiTWU9ZigoKT0+e0xrPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgzIn1dLFsicGF0aCIse2Q6Ik03IDZoMTIifV1dfSk7dmFyICRrLHZNZT1mKCgpPT57JGs9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMWg4In1dLFsicGF0aCIse2Q6Ik03IDE2aDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV19KTt2YXIgRGsseE1lPWYoKCk9PntEaz1bWyJwYXRoIix7ZDoiTTExIDEzdjQifV0sWyJwYXRoIix7ZDoiTTE1IDV2NCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgJGQseU1lPWYoKCk9PnskZD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDE2aDgifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTIifV0sWyJwYXRoIix7ZDoiTTcgNmgzIn1dXX0pO3ZhciBEZCx3TWU9ZigoKT0+e0RkPVtbInBhdGgiLHtkOiJNOSA1djQifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiNyIseToiOSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTkgMTV2MiJ9XSxbInBhdGgiLHtkOiJNMTcgM3YyIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjgiLHg6IjE1Iix5OiI1IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2MyJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dfSk7dmFyIEFkLE1NZT1mKCgpPT57QWQ9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXX0pO3ZhciBBayxrTWU9ZigoKT0+e0FrPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTd2LTMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDE3VjUifV1dfSk7dmFyIFBkLFNNZT1mKCgpPT57UGQ9W1sicGF0aCIse2Q6Ik0xMyAxN1Y5In1dLFsicGF0aCIse2Q6Ik0xOCAxN1Y1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV19KTt2YXIgUGssek1lPWYoKCk9PntQaz1bWyJwYXRoIix7ZDoiTTExIDEzSDcifV0sWyJwYXRoIix7ZDoiTTE5IDloLTQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI1Iix3aWR0aDoiNCIsaGVpZ2h0OiIxMiIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOSIscng6IjEifV1dfSk7dmFyIEVkLENNZT1mKCgpPT57RWQ9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNMTggMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTdWNSJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV19KTt2YXIgRWssX01lPWYoKCk9PntFaz1bWyJwYXRoIix7ZDoiTTEwIDZoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNiJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTFoNyJ9XV19KTt2YXIgSWQsVE1lPWYoKCk9PntJZD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Im0xOSA5LTUgNS00LTQtMyAzIn1dXX0pO3ZhciBJayxMTWU9ZigoKT0+e0lrPVtbInBhdGgiLHtkOiJtMTMuMTEgNy42NjQgMS43OCAyLjY3MiJ9XSxbInBhdGgiLHtkOiJtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCJ9XSxbInBhdGgiLHtkOiJtMjAgNC02LjA2IDEuNTE1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjIifV1dfSk7dmFyIE5rLCRNZT1mKCgpPT57Tms9W1sicGF0aCIse2Q6Ik01IDIxVjMifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjkifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi02In1dXX0pO3ZhciBOZCxETWU9ZigoKT0+e05kPVtbInBhdGgiLHtkOiJNNSAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgMjFWOSJ9XSxbInBhdGgiLHtkOiJNMTkgMjFWMyJ9XV19KTt2YXIgUmQsQU1lPWYoKCk9PntSZD1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjkifV1dfSk7dmFyIFJrLFBNZT1mKCgpPT57Ums9W1sicGF0aCIse2Q6Ik0xMiAxNnY1In1dLFsicGF0aCIse2Q6Ik0xNiAxNHY3In1dLFsicGF0aCIse2Q6Ik0yMCAxMHYxMSJ9XSxbInBhdGgiLHtkOiJtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1In1dLFsicGF0aCIse2Q6Ik00IDE4djMifV0sWyJwYXRoIix7ZDoiTTggMTR2NyJ9XV19KTt2YXIgT2QsRU1lPWYoKCk9PntPZD1bWyJwYXRoIix7ZDoiTTYgNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTloOCJ9XV19KTt2YXIgRmQsSU1lPWYoKCk9PntGZD1bWyJwYXRoIix7ZDoiTTIxIDEyYy41NTIgMCAxLjAwNS0uNDQ5Ljk1LS45OThhMTAgMTAgMCAwIDAtOC45NTMtOC45NTFjLS41NS0uMDU1LS45OTguMzk4LS45OTguOTV2OGExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMjEuMjEgMTUuODlBMTAgMTAgMCAxIDEgOCAyLjgzIn1dXX0pO3ZhciBCZCxOTWU9ZigoKT0+e0JkPVtbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjUuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTEuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XV19KTt2YXIgT2ssUk1lPWYoKCk9PntPaz1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDE2Yy41LTIgMS41LTcgNC03IDIgMCAyIDMgNCAzIDIuNSAwIDQuNS01IDUtNyJ9XV19KTt2YXIgRmssT01lPWYoKCk9PntGaz1bWyJwYXRoIix7ZDoiTTE4IDYgNyAxN2wtNS01In1dLFsicGF0aCIse2Q6Im0yMiAxMC03LjUgNy41TDEzIDE2In1dXX0pO3ZhciBCayxGTWU9ZigoKT0+e0JrPVtbInBhdGgiLHtkOiJNMjAgNEw5IDE1In1dLFsicGF0aCIse2Q6Ik0yMSAxOUwzIDE5In1dLFsicGF0aCIse2Q6Ik05IDE1TDQgMTAifV1dfSk7dmFyIEhrLEJNZT1mKCgpPT57SGs9W1sicGF0aCIse2Q6Ik0yMCA2IDkgMTdsLTUtNSJ9XV19KTt2YXIgcWssSE1lPWYoKCk9Pntxaz1bWyJwYXRoIix7ZDoiTTE3IDIxYTEgMSAwIDAgMCAxLTF2LTUuMzVjMC0uNDU3LjMxNi0uODQ0LjcyNy0xLjA0MWE0IDQgMCAwIDAtMi4xMzQtNy41ODkgNSA1IDAgMCAwLTkuMTg2IDAgNCA0IDAgMCAwLTIuMTM0IDcuNTg4Yy40MTEuMTk4LjcyNy41ODUuNzI3IDEuMDQxVjIwYTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik02IDE3aDEyIn1dXX0pO3ZhciBWayxxTWU9ZigoKT0+e1ZrPVtbInBhdGgiLHtkOiJNMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTEyIDE3YTUgNSAwIDAgMCAxMCAwYzAtMi43Ni0yLjUtNS01LTMtMi41LTItNSAuMjQtNSAzWiJ9XSxbInBhdGgiLHtkOiJNNyAxNGMzLjIyLTIuOTEgNC4yOS04Ljc1IDUtMTIgMS42NiAyLjM4IDQuOTQgOSA1IDEyIn1dLFsicGF0aCIse2Q6Ik0yMiA5Yy00LjI5IDAtNy4xNC0yLjMzLTEwLTcgNS43MSAwIDEwIDQuNjcgMTAgN1oifV1dfSk7dmFyIGprLFZNZT1mKCgpPT57ams9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV19KTt2YXIgVWssak1lPWYoKCk9PntVaz1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNSAxOGMxLjUtLjYxNSAzLTIuNDYxIDMtNC45MjNDMTggOC43NjkgMTQuNSA0LjQ2MiAxMiAyIDkuNSA0LjQ2MiA2IDguNzcgNiAxMy4wNzcgNiAxNS41MzkgNy41IDE3LjM4NSA5IDE4In1dLFsicGF0aCIse2Q6Im0xNiA3LTIuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMmg2In1dXX0pO3ZhciBXayxVTWU9ZigoKT0+e1drPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE2LjUgMThjMS0yIDIuNS01IDIuNS05YTcgNyAwIDAgMC03LTdINi42MzVhMSAxIDAgMCAwLS43NjggMS42NEw3IDVsLTIuMzIgNS44MDJhMiAyIDAgMCAwIC45NSAyLjUyNmwyLjg3IDEuNDU2In1dLFsicGF0aCIse2Q6Im0xNSA1IDEuNDI1LTEuNDI1In1dLFsicGF0aCIse2Q6Im0xNyA4IDEuNTMtMS41MyJ9XSxbInBhdGgiLHtkOiJNOS43MTMgMTIuMTg1IDcgMTgifV1dfSk7dmFyIEdrLFdNZT1mKCgpPT57R2s9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMCAxLjUgOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCAxLjUtOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjQifV1dfSk7dmFyIFlrLEdNZT1mKCgpPT57WWs9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoibTE3IDE4LTEtOSJ9XSxbInBhdGgiLHtkOiJNNiAydjVhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNiA0aDEyIn1dLFsicGF0aCIse2Q6Im03IDE4IDEtOSJ9XV19KTt2YXIgS2ssWU1lPWYoKCk9PntLaz1bWyJwYXRoIix7ZDoibTYgOSA2IDYgNi02In1dXX0pO3ZhciBaayxLTWU9ZigoKT0+e1prPVtbInBhdGgiLHtkOiJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiJ9XSxbInBhdGgiLHtkOiJtMjAgOS0zIDkifV0sWyJwYXRoIix7ZDoibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCJ9XSxbInBhdGgiLHtkOiJNNyAxOCA0IDkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiNyIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNyIscjoiMiJ9XV19KTt2YXIgWGssWk1lPWYoKCk9PntYaz1bWyJwYXRoIix7ZDoibTE3IDE4LTYtNiA2LTYifV0sWyJwYXRoIix7ZDoiTTcgNnYxMiJ9XV19KTt2YXIgUWssWE1lPWYoKCk9PntRaz1bWyJwYXRoIix7ZDoibTcgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTcgNnYxMiJ9XV19KTt2YXIgSmssUU1lPWYoKCk9PntKaz1bWyJwYXRoIix7ZDoibTE1IDE4LTYtNiA2LTYifV1dfSk7dmFyIGVTLEpNZT1mKCgpPT57ZVM9W1sicGF0aCIse2Q6Im05IDE4IDYtNi02LTYifV1dfSk7dmFyIHRTLGVrZT1mKCgpPT57dFM9W1sicGF0aCIse2Q6Im0xOCAxNS02LTYtNiA2In1dXX0pO3ZhciBhUyx0a2U9ZigoKT0+e2FTPVtbInBhdGgiLHtkOiJtNyAyMCA1LTUgNSA1In1dLFsicGF0aCIse2Q6Im03IDQgNSA1IDUtNSJ9XV19KTt2YXIgclMsYWtlPWYoKCk9PntyUz1bWyJwYXRoIix7ZDoibTcgNiA1IDUgNS01In1dLFsicGF0aCIse2Q6Im03IDEzIDUgNSA1LTUifV1dfSk7dmFyIHNTLHJrZT1mKCgpPT57c1M9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTcgNyA1IDUtNSA1In1dLFsicGF0aCIse2Q6Im03IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dfSk7dmFyIGlTLHNrZT1mKCgpPT57aVM9W1sicGF0aCIse2Q6Im05IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTUgNyA1IDUtNSA1In1dXX0pO3ZhciBvUyxpa2U9ZigoKT0+e29TPVtbInBhdGgiLHtkOiJtMTEgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJtMTggMTctNS01IDUtNSJ9XV19KTt2YXIgblMsb2tlPWYoKCk9PntuUz1bWyJwYXRoIix7ZDoibTIwIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTQgMTcgNS01LTUtNSJ9XV19KTt2YXIgbFMsbmtlPWYoKCk9PntsUz1bWyJwYXRoIix7ZDoibTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJtMTMgMTcgNS01LTUtNSJ9XV19KTt2YXIgY1MsbGtlPWYoKCk9PntjUz1bWyJwYXRoIix7ZDoibTE3IDExLTUtNS01IDUifV0sWyJwYXRoIix7ZDoibTE3IDE4LTUtNS01IDUifV1dfSk7dmFyIGRTLGNrZT1mKCgpPT57ZFM9W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXX0pO3ZhciB1Uyxka2U9ZigoKT0+e3VTPVtbInBhdGgiLHtkOiJNMTAgOWg0In1dLFsicGF0aCIse2Q6Ik0xMiA3djUifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJtMTggOSAzLjUyIDIuMTQ3YTEgMSAwIDAgMSAuNDguODU0VjE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Ljk5OWExIDEgMCAwIDEgLjQ4LS44NTRMNiA5In1dLFsicGF0aCIse2Q6Ik02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0In1dXX0pO3ZhciBwUyx1a2U9ZigoKT0+e3BTPVtbInBhdGgiLHtkOiJNMTIgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMyJ9XSxbInBhdGgiLHtkOiJNMTggOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0uNS44NjYifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Ik03IDEydjQifV1dfSk7dmFyIGZTLHBrZT1mKCgpPT57ZlM9W1sicGF0aCIse2Q6Ik0xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0In1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXX0pO3ZhciBIZCxma2U9ZigoKT0+e0hkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIHFkLGhrZT1mKCgpPT57cWQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoibTggMTIgNCA0IDQtNCJ9XV19KTt2YXIgVmQsbWtlPWYoKCk9PntWZD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XV19KTt2YXIgamQsZ2tlPWYoKCk9PntqZD1bWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAxIDEgMTAgMTAifV0sWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTggMjJIMnYtNiJ9XV19KTt2YXIgVWQsYmtlPWYoKCk9PntVZD1bWyJwYXRoIix7ZDoiTTEyIDIyYTEwIDEwIDAgMSAxIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTZ2NmgtNiJ9XV19KTt2YXIgV2QsdmtlPWYoKCk9PntXZD1bWyJwYXRoIix7ZDoiTTIgOFYyaDYifV0sWyJwYXRoIix7ZDoibTIgMiAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMkExMCAxMCAwIDEgMSAyIDEyIn1dXX0pO3ZhciBHZCx4a2U9ZigoKT0+e0dkPVtbInBhdGgiLHtkOiJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMTYgMmg2djYifV1dfSk7dmFyIFlkLHlrZT1mKCgpPT57WWQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIEtkLHdrZT1mKCgpPT57S2Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXX0pO3ZhciBaZCxNa2U9ZigoKT0+e1pkPVtbInBhdGgiLHtkOiJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1In1dLFsicGF0aCIse2Q6Im05IDExIDMgM0wyMiA0In1dXX0pO3ZhciBYZCxra2U9ZigoKT0+e1hkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dXX0pO3ZhciBRZCxTa2U9ZigoKT0+e1FkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgSmQsemtlPWYoKCk9PntKZD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE2IDEwLTQgNC00LTQifV1dfSk7dmFyIGU2LENrZT1mKCgpPT57ZTY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMCA4IDQgNC00IDQifV1dfSk7dmFyIHQ2LF9rZT1mKCgpPT57dDY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIGhTLFRrZT1mKCgpPT57aFM9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMTgyYTEwIDEwIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgxOGExMCAxMCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNjA5IDMuNzIxYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yNzkgMTcuNjA5YTEwIDEwIDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0yMS44MTggMTAuMWExMCAxMCAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MjEgNi4zOTFhMTAgMTAgMCAwIDEgMi43LTIuNjkifV0sWyJwYXRoIix7ZDoiTTYuMzkxIDIwLjI3OWExMCAxMCAwIDAgMS0yLjY5LTIuNyJ9XV19KTt2YXIgYTYsTGtlPWYoKCk9PnthNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dfSk7dmFyIG1TLCRrZT1mKCgpPT57bVM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIGdTLERrZT1mKCgpPT57Z1M9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMThhOS45MyA5LjkzIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42IDMuNzFhOS45NSA5Ljk1IDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yMS44MiAxMC4xYTkuOTMgOS45MyAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjkgMTcuNmE5Ljk1IDkuOTUgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODJhOS45NCA5Ljk0IDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik02LjQgMjAuMjlhOS45NSA5Ljk1IDAgMCAxLTIuNjktMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4IDEzLjlhOS45MyA5LjkzIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0zLjcxIDYuNGE5Ljk1IDkuOTUgMCAwIDEgMi43LTIuNjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgYlMsQWtlPWYoKCk9PntiUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDEyaC4wMSJ9XV19KTt2YXIgdlMsUGtlPWYoKCk9Pnt2Uz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgeFMsRWtlPWYoKCk9Pnt4Uz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIHlTLElrZT1mKCgpPT57eVM9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV19KTt2YXIgd1MsTmtlPWYoKCk9Pnt3Uz1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dfSk7dmFyIHI2LFJrZT1mKCgpPT57cjY9W1sicGF0aCIse2Q6Ik0xNS42IDIuN2ExMCAxMCAwIDEgMCA1LjcgNS43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEzLjQgMTAuNiAxOSA1In1dXX0pO3ZhciBzNixPa2U9ZigoKT0+e3M2PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBNUyxGa2U9ZigoKT0+e01TPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XSxbInBhdGgiLHtkOiJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIn1dXX0pO3ZhciBpNixCa2U9ZigoKT0+e2k2PVtbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3In1dLFsicGF0aCIse2Q6Ik0xMyAxM0g5In1dLFsicGF0aCIse2Q6Ik0xOS4wNzEgMTkuMDcxQTEgMSAwIDAgMSA0LjkzIDQuOTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNTcgMi42ODdhMTAgMTAgMCAwIDEgMTIuOTU2IDEyLjk1NiJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y5In1dXX0pO3ZhciBvNixIa2U9ZigoKT0+e282PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5In1dXX0pO3ZhciBuNixxa2U9ZigoKT0+e242PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgbDYsVmtlPWYoKCk9PntsNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dfSk7dmFyIGM2LGprZT1mKCgpPT57YzY9W1sicGF0aCIse2Q6Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBrUyxVa2U9ZigoKT0+e2tTPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgZDYsV2tlPWYoKCk9PntkNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBTUyxHa2U9ZigoKT0+e1NTPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTJoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNmg3In1dXX0pO3ZhciB1NixZa2U9ZigoKT0+e3U2PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1In1dXX0pO3ZhciBKbCxLa2U9ZigoKT0+e0psPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgcDYsWmtlPWYoKCk9PntwNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgelMsWGtlPWYoKCk9Pnt6Uz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgQ1MsUWtlPWYoKCk9PntDUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV19KTt2YXIgX1MsSmtlPWYoKCk9PntfUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTExLjA1MSA3LjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2N2wtMS4xNTYtMS4xNTJhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XV19KTt2YXIgZjYsZVNlPWYoKCk9PntmNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJyZWN0Iix7eDoiOSIseToiOSIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIGg2LHRTZT1mKCgpPT57aDY9W1sicGF0aCIse2Q6Ik0xNy45MjUgMjAuMDU2YTYgNiAwIDAgMC0xMS44NTEuMDAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIG02LGFTZT1mKCgpPT57bTY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTcgMjAuNjYyVjE5YTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjEuNjYyIn1dXX0pO3ZhciBnNixyU2U9ZigoKT0+e2c2PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIFRTLHNTZT1mKCgpPT57VFM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBMUyxpU2U9ZigoKT0+e0xTPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMSA5aDRhMiAyIDAgMCAwIDItMlYzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik03IDIxdi00YTIgMiAwIDAgMSAyLTJoNCJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciAkUyxvU2U9ZigoKT0+eyRTPVtbInBhdGgiLHtkOiJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6In1dLFsicGF0aCIse2Q6Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0In1dLFsicGF0aCIse2Q6Im0xNCAxMC01LjUgNS41In1dLFsicGF0aCIse2Q6Ik0xNCAxNy44NVYxMEg2LjE1In1dXX0pO3ZhciBEUyxuU2U9ZigoKT0+e0RTPVtbInBhdGgiLHtkOiJtMTIuMjk2IDMuNDY0IDMuMDIgMy45NTYifV0sWyJwYXRoIix7ZDoiTTIwLjIgNiAzIDExbC0uOS0yLjRjLS4zLTEuMS4zLTIuMiAxLjMtMi41bDEzLjUtNGMxLjEtLjMgMi4yLjMgMi41IDEuM3oifV0sWyJwYXRoIix7ZDoiTTMgMTFoMTh2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoibTYuMTggNS4yNzYgMy4xIDMuODk5In1dXX0pO3ZhciBBUyxsU2U9ZigoKT0+e0FTPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im05IDE0IDIgMiA0LTQifV1dfSk7dmFyIFBTLGNTZT1mKCgpPT57UFM9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydi44MzIifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIEVTLGRTZT1mKCgpPT57RVM9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE0SDExIn1dLFsicGF0aCIse2Q6Im0xNSAxMC00IDQgNCA0In1dXX0pO3ZhciBJUyx1U2U9ZigoKT0+e0lTPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMWg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmg0In1dLFsicGF0aCIse2Q6Ik04IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIE5TLHBTZT1mKCgpPT57TlM9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTkgMTRoNiJ9XV19KTt2YXIgUlMsZlNlPWYoKCk9PntSUz1bWyJwYXRoIix7ZDoiTTExIDE0aDEwIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxLjM0NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjc5My0xLjExMyJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgYjYsaFNlPWYoKCk9PntiNj1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uNSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAxLjczIDEifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciB2NixtU2U9ZigoKT0+e3Y2PVtbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEuMzQgMTUuNjY0YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTggMjJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBPUyxnU2U9ZigoKT0+e09TPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE3di02In1dXX0pO3ZhciBGUyxiU2U9ZigoKT0+e0ZTPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDEydi0xaDZ2MSJ9XSxbInBhdGgiLHtkOiJNMTEgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2NiJ9XV19KTt2YXIgQlMsdlNlPWYoKCk9PntCUz1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTEtNiA2In1dLFsicGF0aCIse2Q6Im05IDExIDYgNiJ9XV19KTt2YXIgSFMseFNlPWYoKCk9PntIUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwyLTQifV1dfSk7dmFyIHFTLHlTZT1mKCgpPT57cVM9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV1dfSk7dmFyIFZTLHdTZT1mKCgpPT57VlM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTQtMiJ9XV19KTt2YXIgalMsTVNlPWYoKCk9PntqUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMi00In1dXX0pO3ZhciBVUyxrU2U9ZigoKT0+e1VTPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2In1dXX0pO3ZhciBXUyxTU2U9ZigoKT0+e1dTPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQtMiJ9XV19KTt2YXIgR1MselNlPWYoKCk9PntHUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmg0In1dXX0pO3ZhciBZUyxDU2U9ZigoKT0+e1lTPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XV19KTt2YXIgS1MsX1NlPWYoKCk9PntLUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDQifV1dfSk7dmFyIFpTLFRTZT1mKCgpPT57WlM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djEwIn1dXX0pO3ZhciBYUyxMU2U9ZigoKT0+e1hTPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bC00IDIifV1dfSk7dmFyIFFTLCRTZT1mKCgpPT57UVM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTIgNCJ9XV19KTt2YXIgSlMsRFNlPWYoKCk9PntKUz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nkg4In1dXX0pO3ZhciBleixBU2U9ZigoKT0+e2V6PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYifV1dfSk7dmFyIHR6LFBTZT1mKCgpPT57dHo9W1sicGF0aCIse2Q6Ik0xMiA2djZsMiAxIn1dLFsicGF0aCIse2Q6Ik0xMi4zMzcgMjEuOTk0YTEwIDEwIDAgMSAxIDkuNTg4LTguNzY3In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY4In1dXX0pO3ZhciBheixFU2U9ZigoKT0+e2F6PVtbInBhdGgiLHtkOiJNMTIgNnY2bDEuNTYuNzgifV0sWyJwYXRoIix7ZDoiTTEzLjIyNyAyMS45MjVhMTAgMTAgMCAxIDEgOC43NjctOS41ODgifV0sWyJwYXRoIix7ZDoibTE0IDE4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dXX0pO3ZhciByeixJU2U9ZigoKT0+e3J6PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMTYtNS41IDUuNUwxNCAxOSJ9XV19KTt2YXIgc3osTlNlPWYoKCk9Pntzej1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXX0pO3ZhciBpeixSU2U9ZigoKT0+e2l6PVtbInBhdGgiLHtkOiJNMTIgNnY2bDMuNjQ0IDEuODIyIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMS45MiAxMy4yNjdhMTAgMTAgMCAxIDAtOC42NTMgOC42NTMifV1dfSk7dmFyIG96LE9TZT1mKCgpPT57b3o9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dXX0pO3ZhciBueixGU2U9ZigoKT0+e256PVtbInBhdGgiLHtkOiJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicGF0aCIse2Q6Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgbHosQlNlPWYoKCk9Pntsej1bWyJwYXRoIix7ZDoiTTEyIDEydjQifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC4xMjggMTYuOTQ5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhMSAxIDAgMCAxIDAgOWgtMS42NDIifV1dfSk7dmFyIGN6LEhTZT1mKCgpPT57Y3o9W1sicGF0aCIse2Q6Ik0yMSAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy41IDhoLTEuNzlBNyA3IDAgMSAwIDMgMTMuNjA3In1dLFsicGF0aCIse2Q6Ik03IDExdjRoNCJ9XSxbInBhdGgiLHtkOiJNOCAxOWE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNSA0LjgyIDQuODIgMCAwIDAtMy40MSAxLjQxTDcgMTUifV1dfSk7dmFyIGR6LHFTZT1mKCgpPT57ZHo9W1sicGF0aCIse2Q6Im0xNyAxNS01LjUgNS41TDkgMTgifV0sWyJwYXRoIix7ZDoiTTUuNTE2IDE2LjA3QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAzLjUwMSA3LjMyNyJ9XV19KTt2YXIgdXosVlNlPWYoKCk9Pnt1ej1bWyJwYXRoIix7ZDoibTEwLjg1MiAxOS43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoiTTEzLjE0OCAxOS43NzJhMyAzIDAgMSAwLTIuMjk2LTUuNTQ0bC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjUzIDIwLjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0In1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTUuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTguMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTQuMiAxNS4xYTcgNyAwIDEgMSA5LjkzLTkuODU4QTcgNyAwIDAgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxNS44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxOC4xNDgtLjkyMy4zODMifV1dfSk7dmFyIHg2LGpTZT1mKCgpPT57eDY9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4bC00LTQifV0sWyJwYXRoIix7ZDoibTEyIDIxIDQtNCJ9XSxbInBhdGgiLHtkOiJNNC4zOTMgMTUuMjY5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjQzNiA4LjI4NCJ9XV19KTt2YXIgcHosVVNlPWYoKCk9Pntwej1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTggMTl2MSJ9XSxbInBhdGgiLHtkOiJNOCAxNHYxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOXYxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHYxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMXYxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYxIn1dXX0pO3ZhciBmeixXU2U9ZigoKT0+e2Z6PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmguMDEifV1dfSk7dmFyIGh6LEdTZT1mKCgpPT57aHo9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0g3In1dLFsicGF0aCIse2Q6Ik0xNyAyMUg5In1dXX0pO3ZhciBteixZU2U9ZigoKT0+e216PVtbInBhdGgiLHtkOiJNNiAxNi4zMjZBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIC41IDguOTczIn1dLFsicGF0aCIse2Q6Im0xMyAxMi0zIDVoNGwtMyA1In1dXX0pO3ZhciBneixLU2U9ZigoKT0+e2d6PVtbInBhdGgiLHtkOiJNMTEgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dLFsicGF0aCIse2Q6Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0In1dLFsicGF0aCIse2Q6Ik03IDE5djIifV1dfSk7dmFyIGJ6LFpTZT1mKCgpPT57Yno9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMCA2SDdhNSA1IDAgMSAxIDQuOS02eiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dXX0pO3ZhciB2eixYU2U9ZigoKT0+e3Z6PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJtOS4yIDIyIDMtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMy0zIDcifV0sWyJwYXRoIix7ZDoibTE3IDEzLTMgNyJ9XV19KTt2YXIgeHosUVNlPWYoKCk9Pnt4ej1bWyJwYXRoIix7ZDoiTTEwLjk0IDUuMjc0QTcgNyAwIDAgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgNC4yMjIgNi4wNTcifV0sWyJwYXRoIix7ZDoiTTE4Ljc5NiAxOC44MUE0LjUgNC41IDAgMCAxIDE3LjUgMTlIOUE3IDcgMCAwIDEgNS43OSA1Ljc4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIHl6LEpTZT1mKCgpPT57eXo9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHY2In1dLFsicGF0aCIse2Q6Ik04IDE0djYifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dfSk7dmFyIHd6LGV6ZT1mKCgpPT57d3o9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC4wMSJ9XV19KTt2YXIgTXosdHplPWYoKCk9PntNej1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV19KTt2YXIga3osYXplPWYoKCk9Pntrej1bWyJwYXRoIix7ZDoibTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIwLjk5NiAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy40OTUgOGgtMS43OWE3IDcgMCAxIDAtMTIuNzA5IDUuNjA3In1dLFsicGF0aCIse2Q6Ik03IDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtNyAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV1dfSk7dmFyIFN6LHJ6ZT1mKCgpPT57U3o9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0xMyAyMkg3YTUgNSAwIDEgMSA0LjktNkgxM2EzIDMgMCAwIDEgMCA2WiJ9XV19KTt2YXIgeTYsc3plPWYoKCk9Pnt5Nj1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTggMTcgNC00IDQgNCJ9XV19KTt2YXIgenosaXplPWYoKCk9Pnt6ej1bWyJwYXRoIix7ZDoiTTE3LjUgMTlIOWE3IDcgMCAxIDEgNi43MS05aDEuNzlhNC41IDQuNSAwIDEgMSAwIDlaIn1dXX0pO3ZhciBDeixvemU9ZigoKT0+e0N6PVtbInBhdGgiLHtkOiJNMTcuNSAxMmExIDEgMCAxIDEgMCA5SDkuMDA2YTcgNyAwIDEgMSA2LjcwMi05eiJ9XSxbInBhdGgiLHtkOiJNMjEuODMyIDlBMyAzIDAgMCAwIDE5IDdoLTIuMjA3YTUuNSA1LjUgMCAwIDAtMTAuNzIuNjEifV1dfSk7dmFyIF96LG56ZT1mKCgpPT57X3o9W1sicGF0aCIse2Q6Ik0xNi4xNyA3LjgzIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuMDIgMTJhMi44MjcgMi44MjcgMCAxIDEgMy44MS00LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDQuMDJhMi44MjcgMi44MjcgMCAxIDEgNC4xNyAzLjgxQTIuODI3IDIuODI3IDAgMSAxIDE5Ljk4IDEyYTIuODI3IDIuODI3IDAgMSAxLTMuODEgNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiAxOS45OGEyLjgyNyAyLjgyNyAwIDEgMS00LjE3LTMuODFBMSAxIDAgMSAxIDQgMTIifV0sWyJwYXRoIix7ZDoibTcuODMgNy44MyA4LjM0IDguMzQifV1dfSk7dmFyIFR6LGx6ZT1mKCgpPT57VHo9W1sicGF0aCIse2Q6Ik0xNy4yOCA5LjA1YTUuNSA1LjUgMCAxIDAtMTAuNTYgMEE1LjUgNS41IDAgMSAwIDEyIDE3LjY2YTUuNSA1LjUgMCAxIDAgNS4yOC04LjZaIn1dLFsicGF0aCIse2Q6Ik0xMiAxNy42NkwxMiAyMiJ9XV19KTt2YXIgdzYsY3plPWYoKCk9Pnt3Nj1bWyJwYXRoIix7ZDoibTE4IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Im0xNC41IDQtNSAxNiJ9XV19KTt2YXIgTHosZHplPWYoKCk9PntMej1bWyJwYXRoIix7ZDoibTE2IDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoibTggNi02IDYgNiA2In1dXX0pO3ZhciAkeix1emU9ZigoKT0+eyR6PVtbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoiTTE2IDhhMSAxIDAgMCAxIDEgMXY4YTQgNCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMWgxNGE0IDQgMCAxIDEgMCA4aC0xIn1dLFsicGF0aCIse2Q6Ik02IDJ2MiJ9XV19KTt2YXIgRHoscHplPWYoKCk9PntEej1bWyJwYXRoIix7ZDoiTTExIDEwLjI3IDcgMy4zNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTMuNzMtNCA2LjkzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNyAyMC42Ni0xLTEuNzMifV0sWyJwYXRoIix7ZDoibTE3IDMuMzQtMSAxLjczIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoibTIwLjY2IDE3LTEuNzMtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgNy0xLjczIDEifV0sWyJwYXRoIix7ZDoibTMuMzQgMTcgMS43My0xIn1dLFsicGF0aCIse2Q6Im0zLjM0IDcgMS43MyAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XV19KTt2YXIgQXosZnplPWYoKCk9PntBej1bWyJwYXRoIix7ZDoiTTEzLjc0NCAxNy43MzZhNiA2IDAgMSAxLTcuNDgtNy40OCJ9XSxbInBhdGgiLHtkOiJNMTUgNmgxdjQifV0sWyJwYXRoIix7ZDoibTYuMTM0IDE0Ljc2OC44NjYtLjUgMiAzLjQ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjgiLHI6IjYifV1dfSk7dmFyIE02LGh6ZT1mKCgpPT57TTY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV1dfSk7dmFyIGVjLG16ZT1mKCgpPT57ZWM9W1sicGF0aCIse2Q6Ik0xMC41IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjUifV0sWyJwYXRoIix7ZDoibTE0LjMgMTkuNiAxLS40In1dLFsicGF0aCIse2Q6Ik0xNSAzdjcuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMiAxNi45LS45LS4zIn1dLFsicGF0aCIse2Q6Im0xNi42IDIxLjcuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTYuOCAxNS4zLS40LTEifV0sWyJwYXRoIix7ZDoibTE5LjEgMTUuMi4zLS45In1dLFsicGF0aCIse2Q6Im0xOS42IDIxLjctLjQtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNyAxNi44IDEtLjQifV0sWyJwYXRoIix7ZDoibTIxLjcgMTkuNC0uOS0uMyJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIGs2LGd6ZT1mKCgpPT57azY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgUHosYnplPWYoKCk9PntQej1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNy41IDN2MTgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTE2LjUgM3YxOCJ9XV19KTt2YXIgRXosdnplPWYoKCk9PntFej1bWyJwYXRoIix7ZDoiTTE0IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTcgMTUgMyAzIn1dLFsicGF0aCIse2Q6Im03IDIxIDMtM0g1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV19KTt2YXIgSXoseHplPWYoKCk9PntJej1bWyJwYXRoIix7ZDoiTTE1IDZ2MTJhMyAzIDAgMSAwIDMtM0g2YTMgMyAwIDEgMCAzIDNWNmEzIDMgMCAxIDAtMyAzaDEyYTMgMyAwIDEgMC0zLTMifV1dfSk7dmFyIE56LHl6ZT1mKCgpPT57Tno9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNi4yNCA3Ljc2LTEuODA0IDUuNDExYTIgMiAwIDAgMS0xLjI2NSAxLjI2NUw3Ljc2IDE2LjI0bDEuODA0LTUuNDExYTIgMiAwIDAgMSAxLjI2NS0xLjI2NXoifV1dfSk7dmFyIFJ6LHd6ZT1mKCgpPT57Uno9W1sicGF0aCIse2Q6Ik0xNS41MzYgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc2IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTIuMjk3IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNEw2LjA4OCA4LjkxNmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDE3LjkxMmExIDEgMCAwIDAgMCAxLjQxNWwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNWwtMi4zNzctMi4zNzZhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik04LjkxNiA0LjY3NGExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6In1dXX0pO3ZhciBPeixNemU9ZigoKT0+e096PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiOCIseDoiNSIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2In1dXX0pO3ZhciBGeixremU9ZigoKT0+e0Z6PVtbInBhdGgiLHtkOiJNMyAyMGExIDEgMCAwIDEtMS0xdi0xYTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmE4IDggMCAxIDAtMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgNHY0In1dLFsicGF0aCIse2Q6Ik0xMCA0aDQifV1dfSk7dmFyIEJ6LFN6ZT1mKCgpPT57Qno9W1sicGF0aCIse2Q6Im0yMC45IDE4LjU1LTgtMTUuOThhMSAxIDAgMCAwLTEuOCAwbC04IDE1Ljk4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjE5IixyeDoiOSIscnk6IjMifV1dfSk7dmFyIEh6LHp6ZT1mKCgpPT57SHo9W1sicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTR2NyJ9XSxbInBhdGgiLHtkOiJNNyAxNHY3In1dLFsicGF0aCIse2Q6Ik0xNyAzdjMifV0sWyJwYXRoIix7ZDoiTTcgM3YzIn1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyLjMgNi4zIn1dLFsicGF0aCIse2Q6Im0xNCA2IDcuNyA3LjcifV0sWyJwYXRoIix7ZDoibTggNiA4IDgifV1dfSk7dmFyIFM2LEN6ZT1mKCgpPT57UzY9W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTE3LjkxNSAyMmE2IDYgMCAwIDAtMTIgMCJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBxeixfemU9ZigoKT0+e3F6PVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjMifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgVnosVHplPWYoKCk9PntWej1bWyJwYXRoIix7ZDoiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMS45VjE0TDIuMSA5LjEifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjktNi45In1dLFsicGF0aCIse2Q6Ik0xNCAxOS44di04LjEifV0sWyJwYXRoIix7ZDoiTTE4IDE3LjVWOS40In1dXX0pO3ZhciBqeixMemU9ZigoKT0+e2p6PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNiA2IDAgMCAwIDAtMTJ2MTJ6In1dXX0pO3ZhciBVeiwkemU9ZigoKT0+e1V6PVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNS41di4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMSAxN3YuMDEifV0sWyJwYXRoIix7ZDoiTTcgMTR2LjAxIn1dXX0pO3ZhciBXeixEemU9ZigoKT0+e1d6PVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCJ9XSxbInBhdGgiLHtkOiJtNCA4IDE2LTQifV0sWyJwYXRoIix7ZDoibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCJ9XV19KTt2YXIgR3osQXplPWYoKCk9PntHej1bWyJwYXRoIix7ZDoibTEyIDE1IDIgMiA0LTQifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgWXosUHplPWYoKCk9PntZej1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxNSIseTI6IjE1In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIEt6LEV6ZT1mKCgpPT57S3o9W1sibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgWnosSXplPWYoKCk9Pntaej1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIFh6LE56ZT1mKCgpPT57WHo9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE4Iix5MjoiMTIifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgUXosUnplPWYoKCk9PntRej1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgSnosT3plPWYoKCk9PntKej1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkuMTcgMTQuODNhNCA0IDAgMSAwIDAtNS42NiJ9XV19KTt2YXIgZUMsRnplPWYoKCk9PntlQz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE0LjgzIDE0LjgzYTQgNCAwIDEgMSAwLTUuNjYifV1dfSk7dmFyIHRDLEJ6ZT1mKCgpPT57dEM9W1sicGF0aCIse2Q6Ik0yMCA0djdhNCA0IDAgMCAxLTQgNEg0In1dLFsicGF0aCIse2Q6Im05IDEwLTUgNSA1IDUifV1dfSk7dmFyIGFDLEh6ZT1mKCgpPT57YUM9W1sicGF0aCIse2Q6Im0xNSAxMCA1IDUtNSA1In1dLFsicGF0aCIse2Q6Ik00IDR2N2E0IDQgMCAwIDAgNCA0aDEyIn1dXX0pO3ZhciByQyxxemU9ZigoKT0+e3JDPVtbInBhdGgiLHtkOiJtMTQgMTUtNSA1LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjAgNGgtN2E0IDQgMCAwIDAtNCA0djEyIn1dXX0pO3ZhciBzQyxWemU9ZigoKT0+e3NDPVtbInBhdGgiLHtkOiJNMTQgOSA5IDQgNCA5In1dLFsicGF0aCIse2Q6Ik0yMCAyMGgtN2E0IDQgMCAwIDEtNC00VjQifV1dfSk7dmFyIGlDLGp6ZT1mKCgpPT57aUM9W1sicGF0aCIse2Q6Im0xMCAxNSA1IDUgNS01In1dLFsicGF0aCIse2Q6Ik00IDRoN2E0IDQgMCAwIDEgNCA0djEyIn1dXX0pO3ZhciBvQyxVemU9ZigoKT0+e29DPVtbInBhdGgiLHtkOiJtMTAgOSA1LTUgNSA1In1dLFsicGF0aCIse2Q6Ik00IDIwaDdhNCA0IDAgMCAwIDQtNFY0In1dXX0pO3ZhciBuQyxXemU9ZigoKT0+e25DPVtbInBhdGgiLHtkOiJNMjAgMjB2LTdhNCA0IDAgMCAwLTQtNEg0In1dLFsicGF0aCIse2Q6Ik05IDE0IDQgOWw1LTUifV1dfSk7dmFyIGxDLEd6ZT1mKCgpPT57bEM9W1sicGF0aCIse2Q6Im0xNSAxNCA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDIwdi03YTQgNCAwIDAgMSA0LTRoMTIifV1dfSk7dmFyIGNDLFl6ZT1mKCgpPT57Y0M9W1sicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE3IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIifV0sWyJwYXRoIix7ZDoiTTIgN2gyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0yMCA3aDIifV0sWyJwYXRoIix7ZDoiTTcgMjB2MiJ9XSxbInBhdGgiLHtkOiJNNyAydjIifV0sWyJyZWN0Iix7eDoiNCIseToiNCIsd2lkdGg6IjE2IixoZWlnaHQ6IjE2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgZEMsS3plPWYoKCk9PntkQz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEwIDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTcgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIn1dXX0pO3ZhciB1QyxaemU9ZigoKT0+e3VDPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciBwQyxYemU9ZigoKT0+e3BDPVtbInBhdGgiLHtkOiJNMTAuMiAxOEg0Ljc3NGExLjUgMS41IDAgMCAxLTEuMzUyLS45NyAxMSAxMSAwIDAgMSAuMTMyLTYuNDg3In1dLFsicGF0aCIse2Q6Ik0xOCAxMC4yVjQuNzc0YTEuNSAxLjUgMCAwIDAtLjk3LTEuMzUyIDExIDExIDAgMCAwLTYuNDg2LjEzMiJ9XSxbInBhdGgiLHtkOiJNMTggNWE0IDMgMCAwIDEgNCAzIDIgMiAwIDAgMS0yIDIgMTAgMTAgMCAwIDAtNS4xMzkgMS40MiJ9XSxbInBhdGgiLHtkOiJNNSAxOGEzIDQgMCAwIDAgMyA0IDIgMiAwIDAgMCAyLTIgMTAgMTAgMCAwIDEgMS40Mi01LjE0In1dLFsicGF0aCIse2Q6Ik04LjcwOSAyLjU1NGExMCAxMCAwIDAgMC02LjE1NSA2LjE1NSAxLjUgMS41IDAgMCAwIC42NzYgMS42MjZsOS44MDcgNS40MmEyIDIgMCAwIDAgMi43MTgtMi43MThsLTUuNDItOS44MDdhMS41IDEuNSAwIDAgMC0xLjYyNi0uNjc2In1dXX0pO3ZhciBmQyxRemU9ZigoKT0+e2ZDPVtbInBhdGgiLHtkOiJNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQifV0sWyJwYXRoIix7ZDoiTTE4IDIyVjhhMiAyIDAgMCAwLTItMkgyIn1dXX0pO3ZhciBoQyxKemU9ZigoKT0+e2hDPVtbInBhdGgiLHtkOiJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6In1dXX0pO3ZhciBtQyxlQ2U9ZigoKT0+e21DPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxOCIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjYiLHkyOiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxOCJ9XV19KTt2YXIgZ0MsdENlPWYoKCk9PntnQz1bWyJwYXRoIix7ZDoiTTExLjU2MiAzLjI2NmEuNS41IDAgMCAxIC44NzYgMEwxNS4zOSA4Ljg3YTEgMSAwIDAgMCAxLjUxNi4yOTRMMjEuMTgzIDUuNWEuNS41IDAgMCAxIC43OTguNTE5bC0yLjgzNCAxMC4yNDZhMSAxIDAgMCAxLS45NTYuNzM0SDUuODFhMSAxIDAgMCAxLS45NTctLjczNEwyLjAyIDYuMDJhLjUuNSAwIDAgMSAuNzk4LS41MTlsNC4yNzYgMy42NjRhMSAxIDAgMCAwIDEuNTE2LS4yOTR6In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXX0pO3ZhciBiQyxhQ2U9ZigoKT0+e2JDPVtbInBhdGgiLHtkOiJNMTAgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTIuMzM2IDguODkgMTAgMTRsMTEuNzE1LTcuMDI5In1dLFsicGF0aCIse2Q6Ik0yMiAxNGEyIDIgMCAwIDEtLjk3MSAxLjcxNWwtMTAgNmEyIDIgMCAwIDEtMi4xMzgtLjA1bC02LTRBMiAyIDAgMCAxIDIgMTZ2LTZhMiAyIDAgMCAxIC45NzEtMS43MTVsMTAtNmEyIDIgMCAwIDEgMi4xMzguMDVsNiA0QTIgMiAwIDAgMSAyMiA4eiJ9XV19KTt2YXIgdkMsckNlPWYoKCk9Pnt2Qz1bWyJwYXRoIix7ZDoibTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgifV0sWyJwYXRoIix7ZDoiTTUgOGgxNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV0sWyJwYXRoIix7ZDoibTEyIDggMS02aDIifV1dfSk7dmFyIHhDLHNDZT1mKCgpPT57eEM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTgiLHkxOiIzIix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIyMSIseTI6IjE4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMjEiLHkyOiIxOCJ9XV19KTt2YXIgeUMsaUNlPWYoKCk9Pnt5Qz1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNSJ9XV19KTt2YXIgd0Msb0NlPWYoKCk9Pnt3Qz1bWyJwYXRoIix7ZDoiTTExIDExLjMxYzEuMTcuNTYgMS41NCAxLjY5IDMuNSAxLjY5IDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTEuNzUgMThjLjM1LjUgMS40NSAxIDIuNzUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik03IDNhMSAxIDAgMCAwLTEgMXYxNmExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMUwxMCA0YTEgMSAwIDAgMC0xLTF6In1dXX0pO3ZhciBNQyxuQ2U9ZigoKT0+e01DPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDUgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEgOS4zVjUifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY0aDQifV0sWyJwYXRoIix7ZDoiTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYifV1dfSk7dmFyIGtDLGxDZT1mKCgpPT57a0M9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAxNSAyMS44NCJ9XSxbInBhdGgiLHtkOiJNMjEgNVY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMkwxOCAxN0gyMkwxOSAyMiJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcifV1dfSk7dmFyIFNDLGNDZT1mKCgpPT57U0M9W1sicGF0aCIse2Q6Ik0yMSAxMS42OTNWNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDguNjk3IDIuOTk4In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDkuMjggMi45OTkifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV1dfSk7dmFyIHpDLGRDZT1mKCgpPT57ekM9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAyMSAxOVY1In1dLFsicGF0aCIse2Q6Ik0zIDEyQTkgMyAwIDAgMCAyMSAxMiJ9XV19KTt2YXIgQ0MsdUNlPWYoKCk9PntDQz1bWyJwYXRoIix7ZDoibTEzIDIxLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIwIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXX0pO3ZhciBfQyxwQ2U9ZigoKT0+e19DPVtbInBhdGgiLHtkOiJNMTAgMThoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTMgMTFoLjAxIn1dLFsicmVjdCIse3g6IjE1Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dLFsicmVjdCIse3g6IjYiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV1dfSk7dmFyIFRDLGZDZT1mKCgpPT57VEM9W1sicGF0aCIse2Q6Ik0xMCA1YTIgMiAwIDAgMC0xLjM0NC41MTlsLTYuMzI4IDUuNzRhMSAxIDAgMCAwIDAgMS40ODFsNi4zMjggNS43NDFBMiAyIDAgMCAwIDEwIDE5aDEwYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJtMTIgOSA2IDYifV0sWyJwYXRoIix7ZDoibTE4IDktNiA2In1dXX0pO3ZhciBMQyxoQ2U9ZigoKT0+e0xDPVtbInBhdGgiLHtkOiJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiJ9XSxbInBhdGgiLHtkOiJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXX0pO3ZhciAkQyxtQ2U9ZigoKT0+eyRDPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYifV0sWyJwYXRoIix7ZDoibTYuNDEgNi40MSAxMS4xOCAxMS4xOCJ9XSxbInBhdGgiLHtkOiJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2In1dXX0pO3ZhciBEQyxnQ2U9ZigoKT0+e0RDPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgejYsYkNlPWYoKCk9Pnt6Nj1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dLFsicGF0aCIse2Q6Ik05LjIgOS4yaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNC43IDE0LjhoLjAxIn1dXX0pO3ZhciBBQyx2Q2U9ZigoKT0+e0FDPVtbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBQQyx4Q2U9ZigoKT0+e1BDPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dXX0pO3ZhciBFQyx5Q2U9ZigoKT0+e0VDPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXX0pO3ZhciBJQyx3Q2U9ZigoKT0+e0lDPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTkgMTVoLjAxIn1dXX0pO3ZhciBOQyxNQ2U9ZigoKT0+e05DPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIFJDLGtDZT1mKCgpPT57UkM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XV19KTt2YXIgT0MsU0NlPWYoKCk9PntPQz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIEZDLHpDZT1mKCgpPT57RkM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV19KTt2YXIgQkMsQ0NlPWYoKCk9PntCQz1bWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMTBoMTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIEhDLF9DZT1mKCgpPT57SEM9W1sicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxMiIseDoiMiIseToiMTAiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTcuOTIgMTQgMy41LTMuNWEyLjI0IDIuMjQgMCAwIDAgMC0zbC01LTQuOTJhMi4yNCAyLjI0IDAgMCAwLTMgMEwxMCA2In1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOWguMDEifV1dfSk7dmFyIHFDLFRDZT1mKCgpPT57cUM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgVkMsTENlPWYoKCk9PntWQz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmMwIDEuNy0uNyAzLjItMS44IDQuMiJ9XV19KTt2YXIgakMsJENlPWYoKCk9PntqQz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIFVDLERDZT1mKCgpPT57VUM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIxIn1dXX0pO3ZhciBXQyxBQ2U9ZigoKT0+e1dDPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBHQyxQQ2U9ZigoKT0+e0dDPVtbInBhdGgiLHtkOiJNMTUgMmMtMS4zNSAxLjUtMi4wOTIgMy0yLjUgNC41TDE0IDgifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjMy4zMzMtMyA2LjY2Ny0zIDEwLTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJtMjAgOSAuODkxLjg5MSJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtMS41IDEuMzUtMyAyLjA5Mi00LjUgMi41bC0xLTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS4zNS0xLjUgMi4wOTItMyAyLjUtNC41TDEwIDE2In1dXX0pO3ZhciBZQyxFQ2U9ZigoKT0+e1lDPVtbInBhdGgiLHtkOiJtMTAgMTYgMS41IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC0xLjUtMS41In1dLFsicGF0aCIse2Q6Ik0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxMC41IDEgMSJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYifV0sWyJwYXRoIix7ZDoibTIwIDkgLjg5MS44OTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMifV1dfSk7dmFyIEtDLElDZT1mKCgpPT57S0M9W1sicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxNmgxMiJ9XV19KTt2YXIgWkMsTkNlPWYoKCk9PntaQz1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTE3IDVIOS41YTMuNSAzLjUgMCAwIDAgMCA3aDVhMy41IDMuNSAwIDAgMSAwIDdINiJ9XV19KTt2YXIgWEMsUkNlPWYoKCk9PntYQz1bWyJwYXRoIix7ZDoiTTExLjI1IDE2LjI1aDEuNUwxMiAxN3oifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik00LjQyIDExLjI0N0ExMy4xNTIgMTMuMTUyIDAgMCAwIDQgMTQuNTU2QzQgMTguNzI4IDcuNTgyIDIxIDEyIDIxczgtMi4yNzIgOC02LjQ0NGExMS43MDIgMTEuNzAyIDAgMCAwLS40OTMtMy4zMDkifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjVjLS4zODQgMS4wNS0xLjA4MyAyLjAyOC0yLjM0NCAyLjUtMS45MzEuNzIyLTMuNTc2LS4yOTctMy42NTYtMS0uMTEzLS45OTQgMS4xNzctNi41MyA0LTcgMS45MjMtLjMyMSAzLjY1MS44NDUgMy42NTEgMi4yMzVBNy40OTcgNy40OTcgMCAwIDEgMTQgNS4yNzdjMC0xLjM5IDEuODQ0LTIuNTk4IDMuNzY3LTIuMjc3IDIuODIzLjQ3IDQuMTEzIDYuMDA2IDQgNy0uMDguNzAzLTEuNzI1IDEuNzIyLTMuNjU2IDEtMS4yNjEtLjQ3Mi0xLjg1NS0xLjQ1LTIuMjM5LTIuNSJ9XV19KTt2YXIgUUMsT0NlPWYoKCk9PntRQz1bWyJwYXRoIix7ZDoiTTIwLjUgMTBhMi41IDIuNSAwIDAgMS0yLjQtM0gxOGEyLjk1IDIuOTUgMCAwIDEtMi42LTQuNCAxMCAxMCAwIDEgMCA2LjMgNy4xYy0uMy4yLS44LjMtMS4yLjMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgSkMsRkNlPWYoKCk9PntKQz1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOVY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDgifV0sWyJwYXRoIix7ZDoiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTciLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIxIn1dXX0pO3ZhciBlXyxCQ2U9ZigoKT0+e2VfPVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dXX0pO3ZhciB0XyxIQ2U9ZigoKT0+e3RfPVtbInBhdGgiLHtkOiJNMTEgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoifV0sWyJwYXRoIix7ZDoiTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDIwaC0zIn1dXX0pO3ZhciBhXyxxQ2U9ZigoKT0+e2FfPVtbImNpcmNsZSIse2N4OiIxMi4xIixjeToiMTIuMSIscjoiMSJ9XV19KTt2YXIgcl8sVkNlPWYoKCk9PntyXz1bWyJwYXRoIix7ZDoiTTEyIDE1VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoibTcgMTAgNSA1IDUtNSJ9XV19KTt2YXIgc18sakNlPWYoKCk9PntzXz1bWyJwYXRoIix7ZDoibTEyLjk5IDYuNzQgMS45MyAzLjQ0In1dLFsicGF0aCIse2Q6Ik0xOS4xMzYgMTJhMTAgMTAgMCAwIDEtMTQuMjcxIDAifV0sWyJwYXRoIix7ZDoibTIxIDIxLTIuMTYtMy44NCJ9XSxbInBhdGgiLHtkOiJtMyAyMSA4LjAyLTE0LjI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XV19KTt2YXIgaV8sVUNlPWYoKCk9PntpXz1bWyJwYXRoIix7ZDoiTTEwIDE4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMyAzIDAgMCAxLTMtMyAxIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTMgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxbC0uODEgMy4yNDJhMSAxIDAgMCAxLS45Ny43NThIOCJ9XSxbInBhdGgiLHtkOiJNMTQgNGgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDQifV0sWyJwYXRoIix7ZDoibTUgMTAtMiA4In1dLFsicGF0aCIse2Q6Im03IDE4IDItOCJ9XV19KTt2YXIgb18sV0NlPWYoKCk9PntvXz1bWyJwYXRoIix7ZDoiTTEwIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjUgMTMuMWguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDVjMCA5LTQgMTItNiAxMnMtNi0zLTYtMTJjMC0yIDItMyA2LTNzNiAxIDYgMyJ9XSxbInBhdGgiLHtkOiJNMTcuNCA5LjljLS44LjgtMiAuOC0yLjggMCJ9XSxbInBhdGgiLHtkOiJNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDE2LjVjLjMtMS4xIDEuNC0xLjcgMi40LTEuNCJ9XV19KTt2YXIgbl8sR0NlPWYoKCk9PntuXz1bWyJwYXRoIix7ZDoiTTEwIDEwIDcgNyJ9XSxbInBhdGgiLHtkOiJtMTAgMTQtMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMgMyJ9XSxbInBhdGgiLHtkOiJNMTQuMjA1IDQuMTM5YTQgNCAwIDEgMSA1LjQzOSA1Ljg2MyJ9XSxbInBhdGgiLHtkOiJNMTkuNjM3IDE0YTQgNCAwIDEgMS01LjQzMiA1Ljg2OCJ9XSxbInBhdGgiLHtkOiJNNC4zNjcgMTBhNCA0IDAgMSAxIDUuNDM4LTUuODYyIn1dLFsicGF0aCIse2Q6Ik05Ljc5NSAxOS44NjJhNCA0IDAgMSAxLTUuNDI5LTUuODczIn1dLFsicmVjdCIse3g6IjEwIix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgbF8sWUNlPWYoKCk9PntsXz1bWyJwYXRoIix7ZDoiTTEyIDIyYTcgNyAwIDAgMCA3LTdjMC0yLTEtMy45LTMtNS41cy0zLjUtNC00LTYuNWMtLjUgMi41LTIgNC45LTQgNi41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDcgN3oifV1dfSk7dmFyIGNfLEtDZT1mKCgpPT57Y189W1sicGF0aCIse2Q6Ik0xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4In1dXX0pO3ZhciBkXyxaQ2U9ZigoKT0+e2RfPVtbInBhdGgiLHtkOiJNNyAxNi4zYzIuMiAwIDQtMS44MyA0LTQuMDUgMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOVM3LjI5IDYuNzUgNyA1LjNjLS4yOSAxLjQ1LTEuMTQgMi44NC0yLjI5IDMuNzZTMyAxMS4xIDMgMTIuMjVjMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXoifV0sWyJwYXRoIix7ZDoiTTEyLjU2IDYuNkExMC45NyAxMC45NyAwIDAgMCAxNCAzLjAyYy41IDIuNSAyIDQuOSA0IDYuNXMzIDMuNSAzIDUuNWE2Ljk4IDYuOTggMCAwIDEtMTEuOTEgNC45NyJ9XV19KTt2YXIgdV8sWENlPWYoKCk9Pnt1Xz1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV19KTt2YXIgcF8sUUNlPWYoKCk9PntwXz1bWyJwYXRoIix7ZDoiTTE1LjQgMTUuNjNhNy44NzUgNiAxMzUgMSAxIDYuMjMtNi4yMyA0LjUgMy40MyAxMzUgMCAwLTYuMjMgNi4yMyJ9XSxbInBhdGgiLHtkOiJtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5In1dXX0pO3ZhciBmXyxKQ2U9ZigoKT0+e2ZfPVtbInBhdGgiLHtkOiJNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6In1dLFsicGF0aCIse2Q6Im0yLjUgMjEuNSAxLjQtMS40In1dLFsicGF0aCIse2Q6Im0yMC4xIDMuOSAxLjQtMS40In1dLFsicGF0aCIse2Q6Ik01LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXoifV0sWyJwYXRoIix7ZDoibTkuNiAxNC40IDQuOC00LjgifV1dfSk7dmFyIGhfLGVfZT1mKCgpPT57aF89W1sicGF0aCIse2Q6Ik02IDE4LjVhMy41IDMuNSAwIDEgMCA3IDBjMC0xLjU3LjkyLTIuNTIgMi4wNC0zLjQ2In1dLFsicGF0aCIse2Q6Ik02IDguNWMwLS43NS4xMy0xLjQ3LjM2LTIuMTQifV0sWyJwYXRoIix7ZDoiTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYifV0sWyJwYXRoIix7ZDoiTTEyLjUgNkEyLjUgMi41IDAgMCAxIDE1IDguNU0xMCAxM2EyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIG1fLHRfZT1mKCgpPT57bV89W1sicGF0aCIse2Q6Ik02IDguNWE2LjUgNi41IDAgMSAxIDEzIDBjMCA2LTYgNi02IDEwYTMuNSAzLjUgMCAxIDEtNyAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4LjVhMi41IDIuNSAwIDAgMC01IDB2MWEyIDIgMCAxIDEgMCA0In1dXX0pO3ZhciBnXyxhX2U9ZigoKT0+e2dfPVtbInBhdGgiLHtkOiJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMSAwIDkuNTQgMTMifV0sWyJwYXRoIix7ZDoiTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjYiLHJ4OiIxIn1dXX0pO3ZhciBDNixyX2U9ZigoKT0+e0M2PVtbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgYl8sc19lPWYoKCk9PntiXz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhNyA3IDAgMSAwIDEwIDEwIn1dXX0pO3ZhciB2XyxpX2U9ZigoKT0+e3ZfPVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMy41In1dLFsicGF0aCIse2Q6Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoifV1dfSk7dmFyIHhfLG9fZT1mKCgpPT57eF89W1sicGF0aCIse2Q6Ik0xMiAyQzggMiA0IDggNCAxNGE4IDggMCAwIDAgMTYgMGMwLTYtNC0xMi04LTEyIn1dXX0pO3ZhciB5XyxuX2U9ZigoKT0+e3lfPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNC4zNDdWMTRjMC02LTQtMTItOC0xMi0xLjA3OCAwLTIuMTU3LjQzNi0zLjE1NyAxLjE5In1dLFsicGF0aCIse2Q6Ik02LjIwNiA2LjIxQzQuODcxIDguNCA0IDExLjIgNCAxNGE4IDggMCAwIDAgMTQuNTY4IDQuNTY4In1dXX0pO3ZhciB3XyxsX2U9ZigoKT0+e3dfPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMiIscng6IjEwIixyeToiNiJ9XV19KTt2YXIgXzYsY19lPWYoKCk9PntfNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgTV8sZF9lPWYoKCk9PntNXz1bWyJwYXRoIix7ZDoiTTUgMTVhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAifV0sWyJwYXRoIix7ZDoiTTUgOWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCJ9XV19KTt2YXIgVDYsdV9lPWYoKCk9PntUNj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIga18scF9lPWYoKCk9PntrXz1bWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV1dfSk7dmFyIFNfLGZfZT1mKCgpPT57U189W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XV19KTt2YXIgel8saF9lPWYoKCk9Pnt6Xz1bWyJwYXRoIix7ZDoiTTIxIDIxSDhhMiAyIDAgMCAxLTEuNDItLjU4N2wtMy45OTQtMy45OTlhMiAyIDAgMCAxIDAtMi44MjhsMTAtMTBhMiAyIDAgMCAxIDIuODI5IDBsNS45OTkgNmEyIDIgMCAwIDEgMCAyLjgyOEwxMi44MzQgMjEifV0sWyJwYXRoIix7ZDoibTUuMDgyIDExLjA5IDguODI4IDguODI4In1dXX0pO3ZhciBDXyxtX2U9ZigoKT0+e0NfPVtbInBhdGgiLHtkOiJtMTUgMjAgMy0zaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgybDMgM3oifV0sWyJwYXRoIix7ZDoiTTYgOHYxIn1dLFsicGF0aCIse2Q6Ik0xMCA4djEifV0sWyJwYXRoIix7ZDoiTTE0IDh2MSJ9XSxbInBhdGgiLHtkOiJNMTggOHYxIn1dXX0pO3ZhciBfXyxnX2U9ZigoKT0+e19fPVtbInBhdGgiLHtkOiJNNCAxMGgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxNGg5In1dLFsicGF0aCIse2Q6Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIifV1dfSk7dmFyIFRfLGJfZT1mKCgpPT57VF89W1sicGF0aCIse2Q6Ik0xNCAxM2gyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDAgNCAwdi02Ljk5OGEyIDIgMCAwIDAtLjU5LTEuNDJMMTggNSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMyJ9XSxbInBhdGgiLHtkOiJNMyA3aDExIn1dLFsicGF0aCIse2Q6Im05IDExLTIgM2gzbC0yIDMifV1dfSk7dmFyIExfLHZfZT1mKCgpPT57TF89W1sicGF0aCIse2Q6Im0xNSAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTE1IDkgNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxNnY1aC01In1dLFsicGF0aCIse2Q6Ik0yMSA4VjNoLTUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2NWg1In1dLFsicGF0aCIse2Q6Im0zIDIxIDYtNiJ9XSxbInBhdGgiLHtkOiJNMyA4VjNoNSJ9XSxbInBhdGgiLHtkOiJNOSA5IDMgMyJ9XV19KTt2YXIgJF8seF9lPWYoKCk9PnskXz1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyMSAzIn1dLFsicGF0aCIse2Q6Ik0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2In1dXX0pO3ZhciBEXyx5X2U9ZigoKT0+e0RfPVtbInBhdGgiLHtkOiJtMTUgMTgtLjcyMi0zLjI1In1dLFsicGF0aCIse2Q6Ik0yIDhhMTAuNjQ1IDEwLjY0NSAwIDAgMCAyMCAwIn1dLFsicGF0aCIse2Q6Im0yMCAxNS0xLjcyNi0yLjA1In1dLFsicGF0aCIse2Q6Im00IDE1IDEuNzI2LTIuMDUifV0sWyJwYXRoIix7ZDoibTkgMTggLjcyMi0zLjI1In1dXX0pO3ZhciBBXyx3X2U9ZigoKT0+e0FfPVtbInBhdGgiLHtkOiJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5In1dLFsicGF0aCIse2Q6Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBQXyxNX2U9ZigoKT0+e1BfPVtbInBhdGgiLHtkOiJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBFXyxrX2U9ZigoKT0+e0VfPVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTlhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjguNWEuNS41IDAgMCAwLS43NjktLjQyMmwtNC40NjIgMi44NDRBLjUuNSAwIDAgMSAxNSAxMC41di0yYS41LjUgMCAwIDAtLjc2OS0uNDIyTDkuNzcgMTAuOTIyQS41LjUgMCAwIDEgOSAxMC41VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV19KTt2YXIgSV8sU19lPWYoKCk9PntJXz1bWyJwYXRoIix7ZDoiTTEwLjgyNyAxNi4zNzlhNi4wODIgNi4wODIgMCAwIDEtOC42MTgtNy4wMDJsNS40MTIgMS40NWE2LjA4MiA2LjA4MiAwIDAgMSA3LjAwMi04LjYxOGwtMS40NSA1LjQxMmE2LjA4MiA2LjA4MiAwIDAgMSA4LjYxOCA3LjAwMmwtNS40MTItMS40NWE2LjA4MiA2LjA4MiAwIDAgMS03LjAwMiA4LjYxOGwxLjQ1LTUuNDEyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dXX0pO3ZhciBOXyx6X2U9ZigoKT0+e05fPVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoifV1dfSk7dmFyIFJfLENfZT1mKCgpPT57Ul89W1sicGF0aCIse2Q6Ik0xMi42NyAxOWEyIDIgMCAwIDAgMS40MTYtLjU4OGw2LjE1NC02LjE3MmE2IDYgMCAwIDAtOC40OS04LjQ5TDUuNTg2IDkuOTE0QTIgMiAwIDAgMCA1IDExLjMyOFYxOGExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTYgOCAyIDIyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDE1SDkifV1dfSk7dmFyIE9fLF9fZT1mKCgpPT57T189W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtNi44IDE1LTMuNSAyIn1dLFsicGF0aCIse2Q6Im0yMC43IDctMy41IDIifV0sWyJwYXRoIix7ZDoiTTYuOCA5IDMuMyA3In1dLFsicGF0aCIse2Q6Im0yMC43IDE3LTMuNS0yIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtOCAzIDgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTggMTguN2E5IDkgMCAxIDAtMTIgMCJ9XV19KTt2YXIgRl8sVF9lPWYoKCk9PntGXz1bWyJwYXRoIix7ZDoiTTQgMyAyIDV2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XSxbInBhdGgiLHtkOiJNNiA4aDQifV0sWyJwYXRoIix7ZDoiTTYgMThoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XSxbInBhdGgiLHtkOiJNMTQgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxOGg0In1dLFsicGF0aCIse2Q6Im0yMCAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dXX0pO3ZhciBCXyxMX2U9ZigoKT0+e0JfPVtbInBhdGgiLHtkOiJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3VjYifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBMNiwkX2U9ZigoKT0+e0w2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0LTQifV0sWyJwYXRoIix7ZDoiTTggMTB2OGg4In1dXX0pO3ZhciAkNixEX2U9ZigoKT0+eyQ2PVtbInBhdGgiLHtkOiJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE0IixyOiIzIn1dXX0pO3ZhciBIXyxBX2U9ZigoKT0+e0hfPVtbInBhdGgiLHtkOiJNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEuNyAxNC4yIDcgMTdsLTQuNy0yLjgifV0sWyJwYXRoIix7ZDoiTTMgMTMuMWEyIDIgMCAwIDAtLjk5OSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NjkgMS43OEw2IDIxLjdhMiAyIDAgMCAwIDIuMDMuMDFMMTEgMTkuOWEyIDIgMCAwIDAgMS0xLjc2VjE0LjlhMiAyIDAgMCAwLS45Ny0xLjc4TDggMTEuM2EyIDIgMCAwIDAtMi4wMy0uMDF6In1dLFsicGF0aCIse2Q6Ik03IDE3djUifV1dfSk7dmFyIEQ2LFBfZT1mKCgpPT57RDY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCAxMmExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAwIDEgMSJ9XSxbInBhdGgiLHtkOiJNMTQgMThhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTFhMSAxIDAgMCAwLTEtMSJ9XV19KTt2YXIgQTYsRV9lPWYoKCk9PntBNj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4di00In1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtNiJ9XV19KTt2YXIgUDYsSV9lPWYoKCk9PntQNj1bWyJwYXRoIix7ZDoiTTE0IDIyaDRhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik01IDE0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik05IDIyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMC0xLTEifV1dfSk7dmFyIEU2LE5fZT1mKCgpPT57RTY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE4di0xIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTMifV1dfSk7dmFyIEk2LFJfZT1mKCgpPT57STY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNiAxMy0zLjUgMy41LTItMkw4IDE3In1dXX0pO3ZhciBONixPX2U9ZigoKT0+e042PVtbInBhdGgiLHtkOiJNMTUuOTQxIDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My41MTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTQuMDE3IDExLjUxMmE2IDYgMCAxIDAgOC40NjYgOC40NzUifV0sWyJwYXRoIix7ZDoiTTkgMTZhMSAxIDAgMCAxLTEtMXYtNGMwLS41NTIuNDUtMS4wMDguOTk1LS45MTdhNiA2IDAgMCAxIDQuOTIyIDQuOTIyYy4wOTEuNTQ0LS4zNjUuOTk1LS45MTcuOTk1eiJ9XV19KTt2YXIgUjYsRl9lPWYoKCk9PntSNj1bWyJwYXRoIix7ZDoiTTEwLjUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNCAyMCAyIDIgNC00In1dXX0pO3ZhciBxXyxCX2U9ZigoKT0+e3FfPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAyIDIgNC00In1dXX0pO3ZhciBWXyxIX2U9ZigoKT0+e1ZfPVtbInBhdGgiLHtkOiJNMTYgMjJoMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjIuODUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTR2Mi4ybDEuNiAxIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNiIscjoiNiJ9XV19KTt2YXIgTzYscV9lPWYoKCk9PntPNj1bWyJwYXRoIix7ZDoiTTQgMTIuMTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTMtMy0zIn1dXX0pO3ZhciBqXyxWX2U9ZigoKT0+e2pfPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTIuNSA4IDE1bDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMi41IDIgMi41LTIgMi41In1dXX0pO3ZhciBGNixqX2U9ZigoKT0+e0Y2PVtbInBhdGgiLHtkOiJNMTUgOGExIDEgMCAwIDEtMS0xVjJhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4eiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC00LjE4MiJ9XSxbInBhdGgiLHtkOiJtMy4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoiTTQgMTAuNTkyVjRhMiAyIDAgMCAxIDItMmg4In1dLFsicGF0aCIse2Q6Im00LjIyOCAxNi44NTItLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTguMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtOC41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im05Ljc3MyAxNi44NTIuOTIyLS4zODMifV0sWyJwYXRoIix7ZDoibTkuNzczIDE5LjE0OC45MjIuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgVV8sVV9lPWYoKCk9PntVXz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dXX0pO3ZhciBXXyxXX2U9ZigoKT0+e1dfPVtbInBhdGgiLHtkOiJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoMnY2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dLFsicmVjdCIse3g6IjIiLHk6IjE2Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV19KTt2YXIgR18sR19lPWYoKCk9PntHXz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dLFsicGF0aCIse2Q6Im05IDE1IDMgMyAzLTMifV1dfSk7dmFyIEI2LFlfZT1mKCgpPT57QjY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgdGMsS19lPWYoKCk9Pnt0Yz1bWyJwYXRoIix7ZDoiTTQgNi44MzVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLS4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTlhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMS00IDB2LTRhNiA2IDAgMCAxIDEyIDB2NGEyIDIgMCAwIDEtNCAwdi0xYTIgMiAwIDAgMSA0IDAifV1dfSk7dmFyIFlfLFpfZT1mKCgpPT57WV89W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMy42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSA3IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhMSAxIDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBLXyxYX2U9ZigoKT0+e0tfPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMCAxNy0xLjI5Ni0xLjI5NmEyLjQxIDIuNDEgMCAwIDAtMy40MDggMEw5IDIyIn1dXX0pO3ZhciBaXyxRX2U9ZigoKT0+e1pfPVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTVoMTAifV0sWyJwYXRoIix7ZDoibTkgMTggMy0zLTMtMyJ9XV19KTt2YXIgSDYsSl9lPWYoKCk9PntINj1bWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTQgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNCAxNGgyIn1dLFsicGF0aCIse2Q6Ik05LjY1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIHE2LGVUZT1mKCgpPT57cTY9W1sicGF0aCIse2Q6Ik00IDkuOFY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxN3YtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMyIseToiMTciLHJ4OiIxIn1dXX0pO3ZhciBWNix0VGU9ZigoKT0+e1Y2PVtbInBhdGgiLHtkOiJNMjAgMTRWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNiJ9XV19KTt2YXIgWF8sYVRlPWYoKCk9PntYXz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV19KTt2YXIgUV8sclRlPWYoKCk9PntRXz1bWyJwYXRoIix7ZDoiTTExLjY1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTAuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMjB2LTdsMyAxLjQ3NCJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIEpfLHNUZT1mKCgpPT57Sl89W1sicGF0aCIse2Q6Ik00LjIyNiAyMC45MjVBMiAyIDAgMCAwIDYgMjJoMTJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjEyNyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNSAxMS0zIDMifV0sWyJwYXRoIix7ZDoibTUgMTctMy0zaDEwIn1dXX0pO3ZhciBqNixpVGU9ZigoKT0+e2o2PVtbInBhdGgiLHtkOiJNMTQuMzY0IDEzLjYzNGEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNmw0LjAxMy00LjAwOWExIDEgMCAwIDAtMy4wMDQtMy4wMDR6In1dLFsicGF0aCIse2Q6Ik0xNC40ODcgNy44NThBMSAxIDAgMCAxIDE0IDdWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTkuNjQ1VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDIuNTE2IDIuNTE2In1dLFsicGF0aCIse2Q6Ik04IDE4aDEifV1dfSk7dmFyIFU2LG9UZT1mKCgpPT57VTY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNS4wMzMgMTMuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NnYtNC43MDRhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dXX0pO3ZhciBXNixuVGU9ZigoKT0+e1c2PVtbInBhdGgiLHtkOiJNMTIuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2OS4zNCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiJ9XV19KTt2YXIgRzYsbFRlPWYoKCk9PntHNj1bWyJwYXRoIix7ZDoiTTExLjM1IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NS4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTZ2NiJ9XV19KTt2YXIgZVQsY1RlPWYoKCk9PntlVD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV1dfSk7dmFyIFk2LGRUZT1mKCgpPT57WTY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMifV1dfSk7dmFyIHRULHVUZT1mKCgpPT57dFQ9W1sicGF0aCIse2Q6Ik0yMCAxMFY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDQuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDE0YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTIwIDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIwIDIyYTIgMiAwIDAgMCAyLTIifV1dfSk7dmFyIEs2LHBUZT1mKCgpPT57SzY9W1sicGF0aCIse2Q6Ik0xMS4xIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OSAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2My4yNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMi44OC0yLjg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTciLHI6IjMifV1dfSk7dmFyIGFULGZUZT1mKCgpPT57YVQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxNC41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTYuMyAxNSAxOCJ9XV19KTt2YXIgWjYsaFRlPWYoKCk9PntaNj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMS41IDEzLjVhMi41IDIuNSAwIDAgMSAwIDMifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTUgNSAwIDAgMSAwIDYifV1dfSk7dmFyIHJULG1UZT1mKCgpPT57clQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEwIDExdjIifV0sWyJwYXRoIix7ZDoiTTggMTdoOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTZ2MiJ9XV19KTt2YXIgc1QsZ1RlPWYoKCk9PntzVD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxN2gyIn1dXX0pO3ZhciBpVCxiVGU9ZigoKT0+e2lUPVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxOCAzLTMtMy0zIn1dXX0pO3ZhciBvVCx2VGU9ZigoKT0+e29UPVtbInBhdGgiLHtkOiJNMTEgMjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LThhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA2YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0yLTJBMiAyIDAgMCAwIDE3IDJoLTNhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xeiJ9XV19KTt2YXIgblQseFRlPWYoKCk9PntuVD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTYgMi0yLTItMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNCJ9XV19KTt2YXIgbFQseVRlPWYoKCk9PntsVD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDlIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTNIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTdIOCJ9XV19KTt2YXIgWDYsd1RlPWYoKCk9PntYNj1bWyJwYXRoIix7ZDoiTTEyIDIyaDZhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zIDE2di0xLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgLjUuNVYxNiJ9XSxbInBhdGgiLHtkOiJNNiAyMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE0djgifV1dfSk7dmFyIGNULE1UZT1mKCgpPT57Y1Q9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMSAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik05IDEzdi0uNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAuNS41di41In1dXX0pO3ZhciBkVCxrVGU9ZigoKT0+e2RUPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJtMTUgMTUtMy0zLTMgMyJ9XV19KTt2YXIgdVQsU1RlPWYoKCk9Pnt1VD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTQgNCAwIDAgMC04IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV19KTt2YXIgcFQselRlPWYoKCk9PntwVD1bWyJwYXRoIix7ZDoiTTQgMTEuNTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTEuOTUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE1YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTggMTQuNTAyYS41LjUgMCAwIDAtLjgyNi0uMzgxbC0xLjg5MyAxLjYzMWExIDEgMCAwIDEtLjY1MS4yNDNIMy41YS41LjUgMCAwIDAtLjUuNTAxdjMuMDA2YS41LjUgMCAwIDAgLjUuNTAxaDEuMTI5YTEgMSAwIDAgMSAuNjUyLjI0M2wxLjg5MyAxLjYzM2EuNS41IDAgMCAwIC44MjYtLjM4eiJ9XV19KTt2YXIgUTYsQ1RlPWYoKCk9PntRNj1bWyJwYXRoIix7ZDoiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE3Ljg0MyAzLjAzMy0xLjc1NWEuNjQuNjQgMCAwIDEgLjk2Ny41NnY0LjcwNGEuNjUuNjUgMCAwIDEtLjk2Ny41NkwxMCAyMC4xNTcifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNiIseDoiMyIseToiMTYiLHJ4OiIxIn1dXX0pO3ZhciBKNixfVGU9ZigoKT0+e0o2PVtbInBhdGgiLHtkOiJNMTEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNSAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIwIDE3LTUgNSJ9XV19KTt2YXIgZlQsVFRlPWYoKCk9PntmVD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSAxMi41IDUgNSJ9XV19KTt2YXIgaFQsTFRlPWYoKCk9PntoVD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV1dfSk7dmFyIG1ULCRUZT1mKCgpPT57bVQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMyA3LjVoNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNi41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE3IDcuNWg0In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41aDQifV1dfSk7dmFyIGdULERUZT1mKCgpPT57Z1Q9W1sicGF0aCIse2Q6Ik0xNSAyaC00YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTYuNzA2IDIuNzA2QTIuNCAyLjQgMCAwIDAgMTUgMnY1YTEgMSAwIDAgMCAxIDFoNWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZ6In1dLFsicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDEuNzMyLTEifV1dfSk7dmFyIGV1LEFUZT1mKCgpPT57ZXU9W1sicGF0aCIse2Q6Ik0xMiAxMGEyIDIgMCAwIDAtMiAyYzAgMS4wMi0uMSAyLjUxLS4yNiA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMy4xMmMwIDIuMzggMCA2LjM4LTEgOC44OCJ9XSxbInBhdGgiLHtkOiJNMTcuMjkgMjEuMDJjLjEyLS42LjQzLTIuMy41LTMuMDIifV0sWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAwIDEgMTgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIxLjggMTZjLjItMiAuMTMxLTUuMzU0IDAtNiJ9XSxbInBhdGgiLHtkOiJNNSAxOS41QzUuNSAxOCA2IDE1IDYgMTJhNiA2IDAgMCAxIC4zNC0yIn1dLFsicGF0aCIse2Q6Ik04LjY1IDIyYy4yMS0uNjYuNDUtMS4zMi41Ny0yIn1dLFsicGF0aCIse2Q6Ik05IDYuOGE2IDYgMCAwIDEgOSA1LjJ2MiJ9XV19KTt2YXIgYlQsUFRlPWYoKCk9PntiVD1bWyJwYXRoIix7ZDoiTTE1IDYuNVYzYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoOCJ9XSxbInBhdGgiLHtkOiJNMTggM2gtMyJ9XSxbInBhdGgiLHtkOiJNMTEgM2E2IDYgMCAwIDAtNiA2djExIn1dLFsicGF0aCIse2Q6Ik01IDEzaDQifV0sWyJwYXRoIix7ZDoiTTE3IDEwYTQgNCAwIDAgMC04IDB2MTBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJaIn1dXX0pO3ZhciB2VCxFVGU9ZigoKT0+e3ZUPVtbInBhdGgiLHtkOiJNMiAxNnM5LTE1IDIwLTRDMTEgMjMgMiA4IDIgOCJ9XV19KTt2YXIgeFQsSVRlPWYoKCk9Pnt4VD1bWyJwYXRoIix7ZDoiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCJ9XV19KTt2YXIgeVQsTlRlPWYoKCk9Pnt5VD1bWyJwYXRoIix7ZDoiTTYuNSAxMmMuOTQtMy40NiA0Ljk0LTYgOC41LTYgMy41NiAwIDYuMDYgMi41NCA3IDYtLjk0IDMuNDctMy40NCA2LTcgNnMtNy41Ni0yLjUzLTguNS02WiJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE3LjkzYTkuNzcgOS43NyAwIDAgMSAwLTExLjg2In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzIn1dLFsicGF0aCIse2Q6Ik0xMC40NiA3LjI2QzEwLjIgNS44OCA5LjE3IDQuMjQgOCAzaDUuOGEyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjQifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOTgifV1dfSk7dmFyIHdULFJUZT1mKCgpPT57d1Q9W1sicGF0aCIse2Q6Im0xNy41ODYgMTEuNDE0LTUuOTMgNS45M2ExIDEgMCAwIDEtOC04bDMuMTM3LTMuMTM3YS43MDcuNzA3IDAgMCAxIDEuMjA3LjVWMTAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCA4LjU4NiAyMiA3In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTAiLHI6IjIifV1dfSk7dmFyIE1ULE9UZT1mKCgpPT57TVQ9W1sicGF0aCIse2Q6Ik0xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCAyMlY0In1dLFsicGF0aCIse2Q6Ik03LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcifV1dfSk7dmFyIGtULEZUZT1mKCgpPT57a1Q9W1sicGF0aCIse2Q6Ik00IDExaDEifV0sWyJwYXRoIix7ZDoiTTggMTVhMiAyIDAgMCAxLTQgMFYzYTEgMSAwIDAgMSAxLTFoLjVDMTQgMiAyMCA5IDIwIDE4djQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgU1QsQlRlPWYoKCk9PntTVD1bWyJwYXRoIix7ZDoiTTE4IDIyVjIuOGEuOC44IDAgMCAwLTEuMTctLjcxTDUuNDUgNy43OGEuOC44IDAgMCAwIDAgMS40NEwxOCAxNS41In1dXX0pO3ZhciB6VCxIVGU9ZigoKT0+e3pUPVtbInBhdGgiLHtkOiJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSJ9XV19KTt2YXIgQ1QscVRlPWYoKCk9PntDVD1bWyJwYXRoIix7ZDoiTTQgMjJWNGExIDEgMCAwIDEgLjQtLjhBNiA2IDAgMCAxIDggMmMzIDAgNSAyIDcuMzMzIDJxMiAwIDMuMDY3LS44QTEgMSAwIDAgMSAyMCA0djEwYTEgMSAwIDAgMS0uNC44QTYgNiAwIDAgMSAxNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV1dfSk7dmFyIF9ULFZUZT1mKCgpPT57X1Q9W1sicGF0aCIse2Q6Ik0xMiAzcTEgNCA0IDYuNXQzIDUuNWExIDEgMCAwIDEtMTQgMCA1IDUgMCAwIDEgMS0zIDEgMSAwIDAgMCA1IDBjMC0yLTEuNS0zLTEuNS01cTAtMiAyLjUtNCJ9XV19KTt2YXIgVFQsalRlPWYoKCk9PntUVD1bWyJwYXRoIix7ZDoiTTExLjY1MiA2SDE4In1dLFsicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnY0YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy42NDkgMkgxN2ExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOGE0IDQgMCAwIDAtLjU1IDEuMDA3In1dXX0pO3ZhciBMVCxVVGU9ZigoKT0+e0xUPVtbInBhdGgiLHtkOiJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiJ9XSxbInBhdGgiLHtkOiJtNSAyMiAxNC00In1dLFsicGF0aCIse2Q6Im01IDE4IDE0IDQifV1dfSk7dmFyICRULFdUZT1mKCgpPT57JFQ9W1sicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44QTQgNCAwIDAgMCAxNiAxMnY4YTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgNmgxMiJ9XV19KTt2YXIgRFQsR1RlPWYoKCk9PntEVD1bWyJwYXRoIix7ZDoiTTEwIDJ2Mi4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2Ni4zNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuMjI3LTkuNTYzIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNUgxNSJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV19KTt2YXIgQVQsWVRlPWYoKCk9PntBVD1bWyJwYXRoIix7ZDoiTTE0IDJ2NmEyIDIgMCAwIDAgLjI0NS45Nmw1LjUxIDEwLjA4QTIgMiAwIDAgMSAxOCAyMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuNTEtMTAuMDhBMiAyIDAgMCAwIDEwIDhWMiJ9XSxbInBhdGgiLHtkOiJNNi40NTMgMTVoMTEuMDk0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXX0pO3ZhciBQVCxLVGU9ZigoKT0+e1BUPVtbInBhdGgiLHtkOiJNMTAgMnY2LjI5MmE3IDcgMCAxIDAgNCAwVjIifV0sWyJwYXRoIix7ZDoiTTUgMTVoMTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dfSk7dmFyIEVULFpUZT1mKCgpPT57RVQ9W1sicGF0aCIse2Q6Im0zIDcgNSA1LTUgNVY3In1dLFsicGF0aCIse2Q6Im0yMSA3LTUgNSA1IDVWNyJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV1dfSk7dmFyIElULFhUZT1mKCgpPT57SVQ9W1sicGF0aCIse2Q6Im0xNyAzLTUgNS01LTVoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxLTUtNS01IDVoMTAifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBOVCxRVGU9ZigoKT0+e05UPVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjEyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVoifV0sWyJwYXRoIix7ZDoiTTEyIDIyYy00LjIgMC03LTEuNjY3LTctNSA0LjIgMCA3IDEuNjY3IDcgNVoifV1dfSk7dmFyIFJULEpUZT1mKCgpPT57UlQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgT1QsZUxlPWYoKCk9PntPVD1bWyJwYXRoIix7ZDoiTTIgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTYifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im0xOSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTUgMTUgMy0zLTMtMyJ9XV19KTt2YXIgRlQsdExlPWYoKCk9PntGVD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTYuNUE0LjUgNC41IDAgMSAxIDcuNSAxMiA0LjUgNC41IDAgMSAxIDEyIDcuNWE0LjUgNC41IDAgMSAxIDQuNSA0LjUgNC41IDQuNSAwIDEgMS00LjUgNC41In1dLFsicGF0aCIse2Q6Ik0xMiA3LjVWOSJ9XSxbInBhdGgiLHtkOiJNNy41IDEySDkifV0sWyJwYXRoIix7ZDoiTTE2LjUgMTJIMTUifV0sWyJwYXRoIix7ZDoiTTEyIDE2LjVWMTUifV0sWyJwYXRoIix7ZDoibTggOCAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDkuODggMTYgOCJ9XSxbInBhdGgiLHtkOiJtOCAxNiAxLjg4LTEuODgifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDE0LjEyIDE2IDE2In1dXX0pO3ZhciBCVCxhTGU9ZigoKT0+e0JUPVtbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0yMC45IDE5LjhBMiAyIDAgMCAwIDIyIDE4VjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMmg1LjEifV0sWyJwYXRoIix7ZDoiTTE1IDExdi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxN3YtMiJ9XV19KTt2YXIgSFQsckxlPWYoKCk9PntIVD1bWyJwYXRoIix7ZDoiTTEyIDZ2OGwzLTMgMyAzVjYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyeiJ9XV19KTt2YXIgcVQsc0xlPWYoKCk9PntxVD1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMgMy0zLTMifV1dfSk7dmFyIFZULGlMZT1mKCgpPT57VlQ9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkgMTMgMiAyIDQtNCJ9XV19KTt2YXIgalQsb0xlPWYoKCk9PntqVD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV19KTt2YXIgVVQsbkxlPWYoKCk9PntVVD1bWyJwYXRoIix7ZDoiTTEwIDEwLjUgOCAxM2wyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTAuNSAyIDIuNS0yIDIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJ6In1dXX0pO3ZhciB0dSxsTGU9ZigoKT0+e3R1PVtbInBhdGgiLHtkOiJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMifV0sWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgV1QsY0xlPWYoKCk9PntXVD1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV1dfSk7dmFyIEdULGRMZT1mKCgpPT57R1Q9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjEifV1dfSk7dmFyIFlULHVMZT1mKCgpPT57WVQ9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoibTE1IDEzLTMgMy0zLTMifV1dfSk7dmFyIEtULHBMZT1mKCgpPT57S1Q9W1sicGF0aCIse2Q6Ik0xOCAxOWE1IDUgMCAwIDEtNS01djgifV0sWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgWlQsZkxlPWYoKCk9PntaVD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gzIn1dLFsicGF0aCIse2Q6Ik03IDEzaDMifV1dfSk7dmFyIFhULGhMZT1mKCgpPT57WFQ9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgUVQsbUxlPWYoKCk9PntRVD1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTB2NiJ9XV19KTt2YXIgSlQsZ0xlPWYoKCk9PntKVD1bWyJwYXRoIix7ZDoiTTEzIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MS4zNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkgMTRoMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBlTCxiTGU9ZigoKT0+e2VMPVtbInBhdGgiLHtkOiJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAzLTMtMy0zIn1dXX0pO3ZhciB0TCx2TGU9ZigoKT0+e3RMPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMTciLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIn1dXX0pO3ZhciBhTCx4TGU9ZigoKT0+e2FMPVtbInBhdGgiLHtkOiJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciByTCx5TGU9ZigoKT0+e3JMPVtbInBhdGgiLHtkOiJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIHNMLHdMZT1mKCgpPT57c0w9W1sicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgaUwsTUxlPWYoKCk9PntpTD1bWyJwYXRoIix7ZDoiTTIgNy41VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMS41In1dLFsicGF0aCIse2Q6Ik0yIDEzaDEwIn1dLFsicGF0aCIse2Q6Im01IDEwLTMgMyAzIDMifV1dfSk7dmFyIGF1LGtMZT1mKCgpPT57YXU9W1sicGF0aCIse2Q6Ik0yIDExLjVWNWEyIDIgMCAwIDEgMi0yaDMuOWMuNyAwIDEuMy4zIDEuNy45bC44IDEuMmMuNC42IDEgLjkgMS43LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC05LjUifV0sWyJwYXRoIix7ZDoiTTExLjM3OCAxMy42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV19KTt2YXIgb0wsU0xlPWYoKCk9PntvTD1bWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXX0pO3ZhciBuTCx6TGU9ZigoKT0+e25MPVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1In1dXX0pO3ZhciBsTCxDTGU9ZigoKT0+e2xMPVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTQuMyAxNSAxNiJ9XV19KTt2YXIgY0wsX0xlPWYoKCk9PntjTD1bWyJwYXRoIix7ZDoiTTEwLjcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY0LjEifV0sWyJwYXRoIix7ZDoibTIxIDIxLTEuOS0xLjkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgZEwsVExlPWYoKCk9PntkTD1bWyJwYXRoIix7ZDoiTTIgOS4zNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Im04IDE2IDMtMy0zLTMifV1dfSk7dmFyIHVMLExMZT1mKCgpPT57dUw9W1sicGF0aCIse2Q6Ik0yMCAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMi41YTEgMSAwIDAgMS0uOC0uNGwtLjktMS4yQTEgMSAwIDAgMCAxNSAzaC0yYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0yLjlhMSAxIDAgMCAxLS44OC0uNTVsLS40Mi0uODVhMSAxIDAgMCAwLS45Mi0uNkgxM2ExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMifV1dfSk7dmFyIHBMLCRMZT1mKCgpPT57cEw9W1sicGF0aCIse2Q6Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2LjUifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0yMiAyMnYtNGgtNCJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41In1dXX0pO3ZhciBmTCxETGU9ZigoKT0+e2ZMPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im05IDEzIDMtMyAzIDMifV1dfSk7dmFyIGhMLEFMZT1mKCgpPT57aEw9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxMC41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMC41LTUgNSJ9XV19KTt2YXIgbUwsUExlPWYoKCk9PnttTD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgZ0wsRUxlPWYoKCk9PntnTD1bWyJwYXRoIix7ZDoiTTIwIDVhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgyLjVhMS41IDEuNSAwIDAgMSAxLjIuNmwuNi44YTEuNSAxLjUgMCAwIDAgMS4yLjZ6In1dLFsicGF0aCIse2Q6Ik0zIDguMjY4YTIgMiAwIDAgMC0xIDEuNzM4VjE5YTIgMiAwIDAgMCAyIDJoMTFhMiAyIDAgMCAwIDEuNzMyLTEifV1dfSk7dmFyIGJMLElMZT1mKCgpPT57Ykw9W1sicGF0aCIse2Q6Ik00IDE2di0yLjM4QzQgMTEuNSAyLjk3IDEwLjUgMyA4Yy4wMy0yLjcyIDEuNDktNiA0LjUtNkM5LjM3IDIgMTAgMy44IDEwIDUuNWMwIDMuMTEtMiA1LjY2LTIgOC42OFYxNmEyIDIgMCAxIDEtNCAwWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdoNCJ9XSxbInBhdGgiLHtkOiJNNCAxM2g0In1dXX0pO3ZhciB2TCxOTGU9ZigoKT0+e3ZMPVtbInBhdGgiLHtkOiJNMTIgMTJINWEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTE1IDE5aDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5VjIifV0sWyJwYXRoIix7ZDoiTTYgMTJWN2EyIDIgMCAwIDEgMi0yaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMy44MjggMy44MjhBMiAyIDAgMCAxIDE2IDEwLjgyOCJ9XSxbInBhdGgiLHtkOiJNNyAxOWg0In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciB4TCxSTGU9ZigoKT0+e3hMPVtbInBhdGgiLHtkOiJNNCAxNGg2In1dLFsicGF0aCIse2Q6Ik00IDJoMTAifV0sWyJyZWN0Iix7eDoiNCIseToiMTgiLHdpZHRoOiIxNiIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIHlMLE9MZT1mKCgpPT57eUw9W1sicGF0aCIse2Q6Im0xNSAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDE4di0yYTQgNCAwIDAgMSA0LTRoMTIifV1dfSk7dmFyIHdMLEZMZT1mKCgpPT57d0w9W1sibGluZSIse3gxOiIyMiIseDI6IjIiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiMTgiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiIyIix5MjoiMjIifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTgiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIE1MLEJMZT1mKCgpPT57TUw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIga0wsSExlPWYoKCk9PntrTD1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDloMTEifV1dfSk7dmFyIFNMLHFMZT1mKCgpPT57U0w9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjgiLHg6IjciLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciB6TCxWTGU9ZigoKT0+e3pMPVtbInBhdGgiLHtkOiJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4In1dLFsicGF0aCIse2Q6Ik0xNiA2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDN2NiJ9XV19KTt2YXIgcnUsakxlPWYoKCk9PntydT1bWyJwYXRoIix7ZDoiTTEyLjUzMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwuNDI3LS40NzMifV0sWyJwYXRoIix7ZDoibTE2LjUgMy41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAzLjUtNSA1In1dXX0pO3ZhciBDTCxVTGU9ZigoKT0+e0NMPVtbInBhdGgiLHtkOiJNMiA3djEwIn1dLFsicGF0aCIse2Q6Ik02IDV2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjE4Iix4OiIxMCIseToiMyIscng6IjIifV1dfSk7dmFyIHN1LFdMZT1mKCgpPT57c3U9W1sicGF0aCIse2Q6Ik0xMCAyMGExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MUwyMS43NCA0LjY3QTEgMSAwIDAgMCAyMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR6In1dXX0pO3ZhciBfTCxHTGU9ZigoKT0+e19MPVtbInBhdGgiLHtkOiJNMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxOCIseDoiNiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDN2MTgifV1dfSk7dmFyIFRMLFlMZT1mKCgpPT57VEw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMWgxIn1dXX0pO3ZhciBMTCxLTGU9ZigoKT0+e0xMPVtbInBhdGgiLHtkOiJNNyAyaDEwIn1dLFsicGF0aCIse2Q6Ik01IDZoMTQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiIxMCIscng6IjIifV1dfSk7dmFyICRMLFpMZT1mKCgpPT57JEw9W1sicGF0aCIse2Q6Ik0zIDJoMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XV19KTt2YXIgREwsWExlPWYoKCk9PntETD1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjExIix5MjoiMTEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjEwIix5MjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6In1dXX0pO3ZhciBBTCxRTGU9ZigoKT0+e0FMPVtbInBhdGgiLHtkOiJNMTEuMTQ2IDE1Ljg1NGExLjIwNyAxLjIwNyAwIDAgMSAxLjcwOCAwbDEuNTYgMS41NkEyIDIgMCAwIDEgMTUgMTguODI4VjIxYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXYtMi4xNzJhMiAyIDAgMCAxIC41ODYtMS40MTR6In1dLFsicGF0aCIse2Q6Ik0xOC44MjggMTVhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTEuNTYtMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwLTEuNzA4bDEuNTYtMS41NkEyIDIgMCAwIDEgMTguODI4IDlIMjFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDF6In1dLFsicGF0aCIse2Q6Ik02LjU4NiAxNC40MTRBMiAyIDAgMCAxIDUuMTcyIDE1SDNhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDh6In1dLFsicGF0aCIse2Q6Ik05IDNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2Mi4xNzJhMiAyIDAgMCAxLS41ODYgMS40MTRsLTEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwOCAwbC0xLjU2LTEuNTZBMiAyIDAgMCAxIDkgNS4xNzJ6In1dXX0pO3ZhciBQTCxKTGU9ZigoKT0+e1BMPVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIxMCIseTI6IjE0In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTMiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjExIix5MjoiMTEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgRUwsZSRlPWYoKCk9PntFTD1bWyJwYXRoIix7ZDoibTEyIDE0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxOWExMCAxMCAwIDEgMSAxNy4zMiAwIn1dXX0pO3ZhciBJTCx0JGU9ZigoKT0+e0lMPVtbInBhdGgiLHtkOiJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM2w4LjM4NC04LjM4MSJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNi02In1dLFsicGF0aCIse2Q6Im0yMS41IDEwLjUtOC04In1dLFsicGF0aCIse2Q6Im04IDggNi02In1dLFsicGF0aCIse2Q6Im04LjUgNy41IDggOCJ9XV19KTt2YXIgTkwsYSRlPWYoKCk9PntOTD1bWyJwYXRoIix7ZDoiTTEwLjUgMyA4IDlsNCAxMyA0LTEzLTIuNS02In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjYuOGwzIDRhMiAyIDAgMCAxIC4wMTMgMi4zODJsLTcuOTkgMTAuOTg2YTIgMiAwIDAgMS0zLjI0NyAwbC03Ljk5LTEwLjk4NkEyIDIgMCAwIDEgMi40IDcuOGwyLjk5OC0zLjk5N0EyIDIgMCAwIDEgNyAzeiJ9XSxbInBhdGgiLHtkOiJNMiA5aDIwIn1dXX0pO3ZhciBSTCxyJGU9ZigoKT0+e1JMPVtbInBhdGgiLHtkOiJNOSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMmE4IDggMCAwIDAtOCA4djEybDMtMyAyLjUgMi41TDEyIDE5bDIuNSAyLjVMMTcgMTlsMyAzVjEwYTggOCAwIDAgMC04LTh6In1dXX0pO3ZhciBPTCxzJGU9ZigoKT0+e09MPVtbInBhdGgiLHtkOiJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTJWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XSxbInBhdGgiLHtkOiJNOSAxMlYzIn1dXX0pO3ZhciBGTCxpJGU9ZigoKT0+e0ZMPVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEJMLG8kZT1mKCgpPT57Qkw9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0yMCAxMXY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi04In1dLFsicGF0aCIse2Q6Ik03LjUgN2ExIDEgMCAwIDEgMC01QTQuOCA4IDAgMCAxIDEyIDdhNC44IDggMCAwIDEgNC41LTUgMSAxIDAgMCAxIDAgNSJ9XSxbInJlY3QiLHt4OiIzIix5OiI3Iix3aWR0aDoiMTgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIEhMLG4kZT1mKCgpPT57SEw9W1sicGF0aCIse2Q6Ik02IDN2MTIifV0sWyJwYXRoIix7ZDoiTTE4IDlhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiJ9XSxbInBhdGgiLHtkOiJNNiAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDkifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dXX0pO3ZhciBxTCxsJGU9ZigoKT0+e3FMPVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgaXUsYyRlPWYoKCk9PntpdT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjkiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgVkwsZCRlPWYoKCk9PntWTD1bWyJwYXRoIix7ZDoiTTEyIDN2NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY2In1dXX0pO3ZhciBqTCx1JGU9ZigoKT0+e2pMPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE4SDdhMiAyIDAgMCAxLTItMlY5In1dLFsicGF0aCIse2Q6Im05IDE1IDMgMy0zIDMifV1dfSk7dmFyIFVMLHAkZT1mKCgpPT57VUw9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoiTTExIDE4SDhhMiAyIDAgMCAxLTItMlY5In1dXX0pO3ZhciBXTCxmJGU9ZigoKT0+e1dMPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5In1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dXX0pO3ZhciBHTCxoJGU9ZigoKT0+e0dMPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNSA5djYifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTUuN0E5IDkgMCAwIDAgMTkgOSJ9XV19KTt2YXIgWUwsbSRlPWYoKCk9PntZTD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiAyMVY5YTkgOSAwIDAgMCA5IDkifV1dfSk7dmFyIEtMLGckZT1mKCgpPT57S0w9W1sicGF0aCIse2Q6Ik0xMiA2aDRhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik02IDEydjkifV0sWyJwYXRoIix7ZDoiTTkgMyAzIDkifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgWkwsYiRlPWYoKCk9PntaTD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV1dfSk7dmFyIFhMLHYkZT1mKCgpPT57WEw9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02IDl2MTIifV0sWyJwYXRoIix7ZDoibTIxIDMtNiA2In1dLFsicGF0aCIse2Q6Im0yMSA5LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNVYxNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBRTCx4JGU9ZigoKT0+e1FMPVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNSA5djEyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDE1djYifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02In1dXX0pO3ZhciBKTCx5JGU9ZigoKT0+e0pMPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiA5djEyIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XV19KTt2YXIgZSQsdyRlPWYoKCk9PntlJD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggNlY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMXYtMSJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dfSk7dmFyIHQkLE0kZT1mKCgpPT57dCQ9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBhJCxrJGU9ZigoKT0+e2EkPVtbInBhdGgiLHtkOiJNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXoifV0sWyJwYXRoIix7ZDoiTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIn1dXX0pO3ZhciByJCxTJGU9ZigoKT0+e3IkPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTUiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNSIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTVhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0yLjUgMTMgNSA3Yy43LTEuMyAxLjQtMiAzLTIifV0sWyJwYXRoIix7ZDoiTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMiJ9XV19KTt2YXIgcyQseiRlPWYoKCk9PntzJD1bWyJwYXRoIix7ZDoiTTE1LjY4NiAxNUExNC41IDE0LjUgMCAwIDEgMTIgMjJhMTQuNSAxNC41IDAgMCAxIDAtMjAgMTAgMTAgMCAxIDAgOS41NDIgMTMifV0sWyJwYXRoIix7ZDoiTTIgMTJoOC41In1dLFsicGF0aCIse2Q6Ik0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI2IixyeDoiMSJ9XV19KTt2YXIgaSQsQyRlPWYoKCk9PntpJD1bWyJwYXRoIix7ZDoibTE2IDMgNSA1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwQTEwIDEwIDAgMSAxIDEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDQtMTAifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dXX0pO3ZhciBvJCxfJGU9ZigoKT0+e28kPVtbInBhdGgiLHtkOiJNMTAuMTE0IDQuNDYyQTE0LjUgMTQuNSAwIDAgMSAxMiAyYTEwIDEwIDAgMCAxIDkuMzEzIDEzLjY0MyJ9XSxbInBhdGgiLHtkOiJNMTUuNTU3IDE1LjU1NkExNC41IDE0LjUgMCAwIDEgMTIgMjIgMTAgMTAgMCAwIDEgNC45MjkgNC45MjkifV0sWyJwYXRoIix7ZDoiTTE1Ljg5MiAxMC4yMzRBMTQuNSAxNC41IDAgMCAwIDEyIDJhMTAgMTAgMCAwIDAtMy42NDMuNjg3In1dLFsicGF0aCIse2Q6Ik0xNy42NTYgMTJIMjIifV0sWyJwYXRoIix7ZDoiTTE5LjA3MSAxOS4wNzFBMTAgMTAgMCAwIDEgMTIgMjIgMTQuNSAxNC41IDAgMCAxIDguNDQgOC40NSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxMCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBuJCxUJGU9ZigoKT0+e24kPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV19KTt2YXIgbCQsTCRlPWYoKCk9PntsJD1bWyJwYXRoIix7ZDoiTTEyIDEzVjJsOCA0LTggNCJ9XSxbInBhdGgiLHtkOiJNMjAuNTYxIDEwLjIyMmE5IDkgMCAxIDEtMTIuNTUtNS4yOSJ9XSxbInBhdGgiLHtkOiJNOC4wMDIgOS45OTdhNSA1IDAgMSAwIDguOSAyLjAyIn1dXX0pO3ZhciBjJCwkJGU9ZigoKT0+e2MkPVtbInBhdGgiLHtkOiJNMiAxN2gxOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDIxVjMifV0sWyJwYXRoIix7ZDoiTTcgMTd2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMyJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjExIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMSIscjoiMiJ9XV19KTt2YXIgZCQsRCRlPWYoKCk9PntkJD1bWyJwYXRoIix7ZDoiTTIxLjQyIDEwLjkyMmExIDEgMCAwIDAtLjAxOS0xLjgzOEwxMi44MyA1LjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDkuMDhhMSAxIDAgMCAwIDAgMS44MzJsOC41NyAzLjkwOGEyIDIgMCAwIDAgMS42NiAweiJ9XSxbInBhdGgiLHtkOiJNMjIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNNiAxMi41VjE2YTYgMyAwIDAgMCAxMiAwdi0zLjUifV1dfSk7dmFyIHUkLEEkZT1mKCgpPT57dSQ9W1sicGF0aCIse2Q6Ik0yMiA1VjJsLTUuODkgNS44OSJ9XSxbImNpcmNsZSIse2N4OiIxNi42IixjeToiMTUuODkiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiOC4xMSIsY3k6IjcuNCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMi4zNSIsY3k6IjExLjY1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEzLjkxIixjeToiNS44NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOC4xNSIsY3k6IjEwLjA5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYuNTYiLGN5OiIxMy4yIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjgiLGN5OiIxNy40NCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjMifV1dfSk7dmFyIG91LFAkZT1mKCgpPT57b3U9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBudSxFJGU9ZigoKT0+e251PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV1dfSk7dmFyIGx1LEkkZT1mKCgpPT57bHU9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxNiA1IDUifV0sWyJwYXRoIix7ZDoibTE2IDIxIDUtNSJ9XV19KTt2YXIgY3UsTiRlPWYoKCk9PntjdT1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgcCQsUiRlPWYoKCk9PntwJD1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBhYyxPJGU9ZigoKT0+e2FjPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgZiQsRiRlPWYoKCk9PntmJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciBoJCxCJGU9ZigoKT0+e2gkPVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjEifV1dfSk7dmFyIG0kLEgkZT1mKCgpPT57bSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBnJCxxJGU9ZigoKT0+e2ckPVtbInBhdGgiLHtkOiJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiI3Iix5OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxMCIseToiMTIiLHJ4OiIxIn1dXX0pO3ZhciBiJCxWJGU9ZigoKT0+e2IkPVtbInBhdGgiLHtkOiJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0In1dLFsicGF0aCIse2Q6Ik0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiJ9XSxbInBhdGgiLHtkOiJtNiAxNiAyIDIifV0sWyJwYXRoIix7ZDoiTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3oifV1dfSk7dmFyIHYkLGokZT1mKCgpPT57diQ9W1sicGF0aCIse2Q6Ik0xMy4xNDQgMjEuMTQ0QTcuMjc0IDEwLjQ0NSA0NSAxIDAgMi44NTYgMTAuODU2In1dLFsicGF0aCIse2Q6Ik0xMy4xNDQgMjEuMTQ0QTcuMjc0IDQuMzY1IDQ1IDAgMCAyLjg1NiAxMC44NTZhNy4yNzQgNC4zNjUgNDUgMCAwIDEwLjI4OCAxMC4yODgifV0sWyJwYXRoIix7ZDoiTTE2LjU2NSAxMC40MzUgMTguNiA4LjRhMi41MDEgMi41MDEgMCAxIDAgMS42NS00LjY1IDIuNSAyLjUgMCAxIDAtNC42NiAxLjY2bC0yLjAyNCAyLjAyNSJ9XSxbInBhdGgiLHtkOiJtOC41IDE2LjUtMS0xIn1dXX0pO3ZhciB4JCxVJGU9ZigoKT0+e3gkPVtbInBhdGgiLHtkOiJNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUifV0sWyJwYXRoIix7ZDoiTTUgMTJhMiAyIDAgMCAxLTItMiA5IDcgMCAwIDEgMTggMCAyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik01IDE2YTIgMiAwIDAgMC0yIDIgMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zIDIgMiAwIDAgMC0yLTJxMCAwIDAgMCJ9XSxbInBhdGgiLHtkOiJtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dXX0pO3ZhciB5JCxXJGU9ZigoKT0+e3kkPVtbInBhdGgiLHtkOiJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSJ9XSxbInBhdGgiLHtkOiJtMTggMTUgNC00In1dLFsicGF0aCIse2Q6Im0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41In1dXX0pO3ZhciB3JCxHJGU9ZigoKT0+e3ckPVtbInBhdGgiLHtkOiJNMTEgMTVoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTcifV0sWyJwYXRoIix7ZDoibTcgMjEgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSJ9XSxbInBhdGgiLHtkOiJtMiAxNiA2IDYifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI5IixyOiIyLjkifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIE0kLFkkZT1mKCgpPT57TSQ9W1sicGF0aCIse2Q6Ik0xMi4wMzUgMTcuMDEyYTMgMyAwIDAgMC0zLTNsLS4zMTEtLjAwMmEuNzIuNzIgMCAwIDEtLjUwNS0xLjIyOWwxLjE5NS0xLjE5NUEyIDIgMCAwIDEgMTAuODI4IDExSDEyYTIgMiAwIDAgMCAwLTRIOS4yNDNhMyAzIDAgMCAwLTIuMTIyLjg3OWwtMi43MDcgMi43MDdBNC44MyA0LjgzIDAgMCAwIDMgMTRhOCA4IDAgMCAwIDggOGgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjJhMiAyIDAgMSAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuODg4IDkuNjYyQTIgMiAwIDAgMCAxNyA4VjVBMiAyIDAgMSAwIDEzIDUifV0sWyJwYXRoIix7ZDoiTTkgNUEyIDIgMCAxIDAgNSA1VjEwIn1dLFsicGF0aCIse2Q6Ik05IDdWNEEyIDIgMCAxIDEgMTMgNFY3LjI2OCJ9XV19KTt2YXIgZHUsSyRlPWYoKCk9PntkdT1bWyJwYXRoIix7ZDoiTTE4IDExLjVWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMFY4YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjlWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2NSJ9XSxbInBhdGgiLHtkOiJNNiAxNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC00YTggOCAwIDAgMS04LTggMiAyIDAgMSAxIDQgMCJ9XV19KTt2YXIgayQsWiRlPWYoKCk9PntrJD1bWyJwYXRoIix7ZDoiTTExIDE0aDJhMiAyIDAgMCAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE2In1dLFsicGF0aCIse2Q6Im0xNC40NSAxMy4zOSA1LjA1LTQuNjk0QzIwLjE5NiA4IDIxIDYuODUgMjEgNS43NWEyLjc1IDIuNzUgMCAwIDAtNC43OTctMS44MzcuMjc2LjI3NiAwIDAgMS0uNDA2IDBBMi43NSAyLjc1IDAgMCAwIDExIDUuNzVjMCAxLjIuODAyIDIuMjQ4IDEuNSAyLjk0NkwxNiAxMS45NSJ9XSxbInBhdGgiLHtkOiJtMiAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTcgMjAgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMSAxIDAgMCAwLTIuNzUtMi45MSJ9XV19KTt2YXIgdXUsWCRlPWYoKCk9Pnt1dT1bWyJwYXRoIix7ZDoiTTExIDEyaDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE0In1dLFsicGF0aCIse2Q6Im03IDE4IDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTMgNiA2In1dXX0pO3ZhciBTJCxRJGU9ZigoKT0+e1MkPVtbInBhdGgiLHtkOiJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1In1dXX0pO3ZhciB6JCxKJGU9ZigoKT0+e3okPVtbInBhdGgiLHtkOiJNMTIgM1YyIn1dLFsicGF0aCIse2Q6Im0xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINSJ9XSxbInBhdGgiLHtkOiJNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yIn1dLFsicGF0aCIse2Q6Ik00IDEwaDE2In1dLFsicGF0aCIse2Q6Ik01IDEwYTcgNyAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik01IDE0djZhMSAxIDAgMCAxLTEgMUgyIn1dXX0pO3ZhciBDJCxlRGU9ZigoKT0+e0MkPVtbInBhdGgiLHtkOiJNMTggMTFWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDEwVjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTggOGEyIDIgMCAxIDEgNCAwdjZhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBfJCx0RGU9ZigoKT0+e18kPVtbInBhdGgiLHtkOiJNMi4wNDggMTguNTY2QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjk1Mi0yLjQzNGwtMi05QTIgMiAwIDAgMCAxOCA4SDZhMiAyIDAgMCAwLTEuOTUyIDEuNTY2eiJ9XSxbInBhdGgiLHtkOiJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSJ9XV19KTt2YXIgVCQsYURlPWYoKCk9PntUJD1bWyJwYXRoIix7ZDoibTExIDE3IDIgMmExIDEgMCAxIDAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAyLjUgMi41YTEgMSAwIDEgMCAzLTNsLTMuODgtMy44OGEzIDMgMCAwIDAtNC4yNCAwbC0uODguODhhMSAxIDAgMSAxLTMtM2wyLjgxLTIuODFhNS43OSA1Ljc5IDAgMCAxIDcuMDYtLjg3bC40Ny4yOGEyIDIgMCAwIDAgMS40Mi4yNUwyMSA0In1dLFsicGF0aCIse2Q6Im0yMSAzIDEgMTFoLTIifV0sWyJwYXRoIix7ZDoiTTMgMyAyIDE0bDYuNSA2LjVhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJNMyA0aDgifV1dfSk7dmFyIEwkLHJEZT1mKCgpPT57TCQ9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMThoLjAxIn1dXX0pO3ZhciAkJCxzRGU9ZigoKT0+eyQkPVtbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV19KTt2YXIgRCQsaURlPWYoKCk9PntEJD1bWyJwYXRoIix7ZDoiTTEwIDEwVjVhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2NSJ9XSxbInBhdGgiLHtkOiJNMTQgNmE2IDYgMCAwIDEgNiA2djMifV0sWyJwYXRoIix7ZDoiTTQgMTV2LTNhNiA2IDAgMCAxIDYtNiJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBBJCxvRGU9ZigoKT0+e0EkPVtbInBhdGgiLHtkOiJNMTAgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yLjIxMiAxMS41NzdhMiAyIDAgMCAwLS4yMTIuODk2VjE4YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS41MjdhMiAyIDAgMCAwLS4yMTItLjg5NkwxOC41NSA1LjExQTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoifV0sWyJwYXRoIix7ZDoiTTIxLjk0NiAxMi4wMTNIMi4wNTQifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dXX0pO3ZhciBQJCxuRGU9ZigoKT0+e1AkPVtbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjEwIix4MjoiOCIseTE6IjMiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNCIseTE6IjMiLHkyOiIyMSJ9XV19KTt2YXIgRSQsbERlPWYoKCk9PntFJD1bWyJwYXRoIix7ZDoiTTE0IDE4YTIgMiAwIDAgMC00IDAifV0sWyJwYXRoIix7ZDoibTE5IDExLTIuMTEtNi42NTdhMiAyIDAgMCAwLTIuNzUyLTEuMTQ4bC0xLjI3Ni42MUEyIDIgMCAwIDEgMTIgNEg4LjVhMiAyIDAgMCAwLTEuOTI1IDEuNDU2TDUgMTEifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEkkLGNEZT1mKCgpPT57SSQ9W1sicGF0aCIse2Q6Im01LjIgNi4yIDEuNCAxLjQifV0sWyJwYXRoIix7ZDoiTTIgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJtMTcuNCA3LjYgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTdIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjFIMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTNhNCA0IDAgMCAwLTggMCJ9XSxbInBhdGgiLHtkOiJNMTIgNVYyLjUifV1dfSk7dmFyIE4kLGREZT1mKCgpPT57TiQ9W1sicGF0aCIse2Q6Ik0xMCAxMkg2In1dLFsicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNC41YS41LjUgMCAwIDAgLjUuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMUEyLjUgMi41IDAgMCAwIDE1LjUgOWgtMWEuNS41IDAgMCAwLS41LjV6In1dLFsicGF0aCIse2Q6Ik02IDE1VjkifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgUiQsdURlPWYoKCk9PntSJD1bWyJwYXRoIix7ZDoiTTIyIDlhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDFsMiAyaDEybDItMmgxYTEgMSAwIDAgMCAxLTFaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTJoOSJ9XV19KTt2YXIgTyQscERlPWYoKCk9PntPJD1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Im0xNyAxMiAzLTJ2OCJ9XV19KTt2YXIgRiQsZkRlPWYoKCk9PntGJD1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNGMwLTQgNC0zIDQtNiAwLTEuNS0yLTIuNS00LTEifV1dfSk7dmFyIEIkLGhEZT1mKCgpPT57QiQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMC41YzEuNy0xIDMuNSAwIDMuNSAxLjVhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuNWMyIDEuNSA0IC4zIDQtMS41YTIgMiAwIDAgMC0yLTIifV1dfSk7dmFyIEgkLG1EZT1mKCgpPT57SCQ9W1sicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0xNyAxMHYzYTEgMSAwIDAgMCAxIDFoMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTB2OCJ9XSxbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV1dfSk7dmFyIHEkLGdEZT1mKCgpPT57cSQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2LTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuN2MuNC4yLjguMyAxLjMuMyAxLjUgMCAyLjctMS4xIDIuNy0yLjVTMTkuOCAxMyAxOC4zIDEzSDE3In1dXX0pO3ZhciBWJCxiRGU9ZigoKT0+e1YkPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTBjLTIgMi0zIDMuNS0zIDYifV1dfSk7dmFyIGokLHZEZT1mKCgpPT57aiQ9W1sicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik02IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE4IDIwVjQifV1dfSk7dmFyIFUkLHhEZT1mKCgpPT57VSQ9W1sicGF0aCIse2Q6Ik0yMSAxNGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTkuMTI4IDMuNDdBOSA5IDAgMCAxIDIxIDEydjMuMzQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCAyMC40MTRBMiAyIDAgMCAxIDE5IDIxaC0xYTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDIuNjM2LTYuMzY0In1dXX0pO3ZhciBXJCx5RGU9ZigoKT0+e1ckPVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dfSk7dmFyIEckLHdEZT1mKCgpPT57RyQ9W1sicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAxOCAwdjdhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgWSQsTURlPWYoKCk9PntZJD1bWyJwYXRoIix7ZDoiTTEyLjQwOSA1LjgyNGMtLjcwMi43OTItMS4xNSAxLjQ5Ni0xLjQxNSAyLjE2NmwyLjE1MyAyLjE1NmEuNS41IDAgMCAxIDAgLjcwN2wtMi4yOTMgMi4yOTNhLjUuNSAwIDAgMCAwIC43MDdMMTIgMTUifV0sWyJwYXRoIix7ZDoiTTEzLjUwOCAyMC4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzcuNi42IDAgMCAwIC44MTguMDAxQTUuNSA1LjUgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNXoifV1dfSk7dmFyIEskLGtEZT1mKCgpPT57SyQ9W1sicGF0aCIse2Q6Ik0xOS40MTQgMTQuNDE0QzIxIDEyLjgyOCAyMiAxMS41IDIyIDkuNWE1LjUgNS41IDAgMCAwLTkuNTkxLTMuNjc2LjYuNiAwIDAgMS0uODE4LjAwMUE1LjUgNS41IDAgMCAwIDIgOS41YzAgMi4zIDEuNSA0IDMgNS41bDUuNTM1IDUuMzYyYTIgMiAwIDAgMCAyLjg3OS4wNTIgMi4xMiAyLjEyIDAgMCAwLS4wMDQtMyAyLjEyNCAyLjEyNCAwIDEgMCAzLTMgMi4xMjQgMi4xMjQgMCAwIDAgMy4wMDQgMCAyIDIgMCAwIDAgMC0yLjgyOGwtMS44ODEtMS44ODJhMi40MSAyLjQxIDAgMCAwLTMuNDA5IDBsLTEuNzEgMS43MWEyIDIgMCAwIDEtMi44MjggMCAyIDIgMCAwIDEgMC0yLjgyOGwyLjgyMy0yLjc2MiJ9XV19KTt2YXIgWiQsU0RlPWYoKCk9PntaJD1bWyJwYXRoIix7ZDoibTE0Ljg3NiAxOC45OS0xLjM2OCAxLjMyM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWE1LjIgNS4yIDAgMCAxLS4yNDQgMS41NzIifV0sWyJwYXRoIix7ZDoiTTE1IDE1aDYifV1dfSk7dmFyIFgkLHpEZT1mKCgpPT57WCQ9W1sicGF0aCIse2Q6Ik0xMC41IDQuODkzYTUuNSA1LjUgMCAwIDEgMS4wOTEuOTMxLjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMS44NzItMS4wMDIgMy4zNTYtMi4xODcgNC42NTUifV0sWyJwYXRoIix7ZDoibTE2Ljk2NyAxNi45NjctMy40NTkgMy4zNDZhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgMi43NDctNC43NjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgUSQsQ0RlPWYoKCk9PntRJD1bWyJwYXRoIix7ZDoibTE0LjQ3OSAxOS4zNzQtLjk3MS45MzlhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjE5IDEuNDkifV0sWyJwYXRoIix7ZDoiTTE1IDE1aDYifV0sWyJwYXRoIix7ZDoiTTE4IDEydjYifV1dfSk7dmFyIEokLF9EZT1mKCgpPT57SiQ9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dLFsicGF0aCIse2Q6Ik0zLjIyIDEzSDkuNWwuNS0xIDIgNC41IDItNyAxLjUgMy41aDUuMjcifV1dfSk7dmFyIGVELFREZT1mKCgpPT57ZUQ9W1sicGF0aCIse2Q6Im0xNS41IDEyLjUgNSA1In1dLFsicGF0aCIse2Q6Im0yMC41IDEyLjUtNSA1In1dLFsicGF0aCIse2Q6Ik0yMS45NTUgOC43NzRhNS41IDUuNSAwIDAgMC05LjU0Ni0yLjk1LjYuNiAwIDAgMS0uODE4IDBBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUwOCA1LjMzMmEyIDIgMCAwIDAgMi41Ny4zNTIifV1dfSk7dmFyIHRELExEZT1mKCgpPT57dEQ9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dXX0pO3ZhciBhRCwkRGU9ZigoKT0+e2FEPVtbInBhdGgiLHtkOiJNMTEgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNMTUuNSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik02IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di00In1dLFsicGF0aCIse2Q6Ik0xNCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNNSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAyMHYyIn1dXX0pO3ZhciByRCxERGU9ZigoKT0+e3JEPVtbInBhdGgiLHtkOiJNMTEgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y4YTIgMiAwIDAgMCAyIDJoNS44NjUifV0sWyJwYXRoIix7ZDoiTTE3IDE3djQifV0sWyJwYXRoIix7ZDoiTTE4IDE3YTQgNCAwIDAgMCA0LTQgOCA2IDAgMCAwLTgtNiA2IDUgMCAwIDAtNiA1djNhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTTIgMTB2NSJ9XSxbInBhdGgiLHtkOiJNNiAzaDE2In1dLFsicGF0aCIse2Q6Ik03IDIxaDE0In1dLFsicGF0aCIse2Q6Ik04IDEzSDIifV1dfSk7dmFyIHNELEFEZT1mKCgpPT57c0Q9W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV1dfSk7dmFyIGlELFBEZT1mKCgpPT57aUQ9W1sicGF0aCIse2Q6Im05IDExLTYgNnYzaDlsMy0zIn1dLFsicGF0aCIse2Q6Im0yMiAxMi00LjYgNC42YTIgMiAwIDAgMS0yLjggMGwtNS4yLTUuMmEyIDIgMCAwIDEgMC0yLjhMMTQgNCJ9XV19KTt2YXIgb0QsRURlPWYoKCk9PntvRD1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y1bDQgMiJ9XV19KTt2YXIgbkQsSURlPWYoKCk9PntuRD1bWyJwYXRoIix7ZDoiTTEwLjgyIDE2LjEyYzEuNjkuNiAzLjkxLjc5IDUuMTguODUuNTUuMDMgMS0uNDIuOTctLjk3LS4wNi0xLjI3LS4yNi0zLjUtLjg1LTUuMTgifV0sWyJwYXRoIix7ZDoiTTExLjUgNi41YzEuNjQgMCA1LS4zOCA2LjcxLTEuMDcuNTItLjIuNTUtLjgyLjEyLTEuMTdBMTAgMTAgMCAwIDAgNC4yNiAxOC4zM2MuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44OC44OCAwIDAgMCAuNzMtLjc0Yy4zLTIuMTQtLjE1LTMuNS0uNjEtNC44OCJ9XSxbInBhdGgiLHtkOiJNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC45Ni0uOTYgMTcuNjggMTcuNjggMCAwIDAtLjktNC44NyJ9XSxbInBhdGgiLHtkOiJNMTYuOTQgMTUuNjJjLjg2LjIgMi43Ny42MiA0LjI5LjVhLjc3Ljc3IDAgMCAwIC43LS45IDE2LjY0IDE2LjY0IDAgMCAwLTEuMzYtNC4wOCJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NyJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkzIDMgM2EuNy43IDAgMCAxIDAtMSJ9XSxbInBhdGgiLHtkOiJNOS41OCAxMi4xOGMxLjI0IDIuOTggMS43NyA1Ljk1IDEuNTcgOC4yOGEuOC44IDAgMCAxLTEuMTMuNjggMjAuODIgMjAuODIgMCAwIDEtNC41LTMuMTUifV1dfSk7dmFyIGxELE5EZT1mKCgpPT57bEQ9W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTQgMjAuNTdjLjUyLjI0IDIuNDQgMS4xMiA0LjA4IDEuMzcuNDYuMDYuODYtLjI1LjktLjcxLjEyLTEuNTItLjMtMy40My0uNS00LjI4In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNSJ9XSxbInBhdGgiLHtkOiJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCJ9XSxbInBhdGgiLHtkOiJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OGExMCAxMCAwIDAgMSA5Ljk4IDEuNThjLjQzLjM1LjQuOTYtLjEyIDEuMTctMS41LjYtNC4zLjk4LTYuMDcgMS4wNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBjRCxSRGU9ZigoKT0+e2NEPVtbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTE0IDloLTQifV0sWyJwYXRoIix7ZDoiTTE4IDExaDJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMjFWNWEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNiJ9XV19KTt2YXIgZEQsT0RlPWYoKCk9PntkRD1bWyJwYXRoIix7ZDoiTTEwIDIydi02LjU3In1dLFsicGF0aCIse2Q6Ik0xMiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNS40M1YyMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZhNSA1IDAgMCAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggN2guMDEifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgdUQsRkRlPWYoKCk9Pnt1RD1bWyJwYXRoIix7ZDoiTTUgMjJoMTQifV0sWyJwYXRoIix7ZDoiTTUgMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTQuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjIifV0sWyJwYXRoIix7ZDoiTTcgMnY0LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNEwxMiAxMmw0LjQxNC00LjQxNEEyIDIgMCAwIDAgMTcgNi4xNzJWMiJ9XV19KTt2YXIgcEQsQkRlPWYoKCk9PntwRD1bWyJwYXRoIix7ZDoiTTguNjIgMTMuOEEyLjI1IDIuMjUgMCAxIDEgMTIgMTAuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgZkQsSERlPWYoKCk9PntmRD1bWyJwYXRoIix7ZDoiTTEwIDEyVjguOTY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtMmExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgaEQscURlPWYoKCk9PntoRD1bWyJwYXRoIix7ZDoiTTkuNSAxMy44NjZhNCA0IDAgMCAxIDUgLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTcgMTAuNzU0YTggOCAwIDAgMSAxMCAwIn1dXX0pO3ZhciBtRCxWRGU9ZigoKT0+e21EPVtbInBhdGgiLHtkOiJNMTIuMzUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzEtMS41M2w3LTZhMiAyIDAgMCAxIDIuNTggMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjIuMzUifV0sWyJwYXRoIix7ZDoiTTE0LjggMTIuNEExIDEgMCAwIDAgMTQgMTJoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0xNSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dXX0pO3ZhciBwdSxqRGU9ZigoKT0+e3B1PVtbInBhdGgiLHtkOiJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dfSk7dmFyIGZ1LFVEZT1mKCgpPT57ZnU9W1sicGF0aCIse2Q6Ik0xMiAxN2M1IDAgOC0yLjY5IDgtNkg0YzAgMy4zMSAzIDYgOCA2bS00IDRoOG0tNC0zdjNNNS4xNCAxMWEzLjUgMy41IDAgMSAxIDYuNzEgMCJ9XSxbInBhdGgiLHtkOiJNMTIuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTE1LjUgNi41YTMuNSAzLjUgMCAxIDAtNyAwIn1dXX0pO3ZhciBodSxXRGU9ZigoKT0+e2h1PVtbInBhdGgiLHtkOiJtNyAxMSA0LjA4IDEwLjM1YTEgMSAwIDAgMCAxLjg0IDBMMTcgMTEifV0sWyJwYXRoIix7ZDoiTTE3IDdBNSA1IDAgMCAwIDcgNyJ9XSxbInBhdGgiLHtkOiJNMTcgN2EyIDIgMCAwIDEgMCA0SDdhMiAyIDAgMCAxIDAtNCJ9XV19KTt2YXIgZ0QsR0RlPWYoKCk9PntnRD1bWyJwYXRoIix7ZDoiTTEzLjUgOGgtMyJ9XSxbInBhdGgiLHtkOiJtMTUgMi0xIDJoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgzIn1dLFsicGF0aCIse2Q6Ik0xNi44OTkgMjJBNSA1IDAgMCAwIDcuMSAyMiJ9XSxbInBhdGgiLHtkOiJtOSAyIDMgNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXX0pO3ZhciBiRCxZRGU9ZigoKT0+e2JEPVtbInBhdGgiLHtkOiJNMTYgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoMiJ9XSxbInBhdGgiLHtkOiJNNi4xNyAxNWEzIDMgMCAwIDEgNS42NiAwIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMSIscjoiMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI1Iix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciB2RCxLRGU9ZigoKT0+e3ZEPVtbInBhdGgiLHtkOiJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIn1dLFsicGF0aCIse2Q6Im0xNCAxOSAzIDN2LTUuNSJ9XSxbInBhdGgiLHtkOiJtMTcgMjIgMy0zIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciB4RCxaRGU9ZigoKT0+e3hEPVtbInBhdGgiLHtkOiJNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjUiLHkyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXX0pO3ZhciB5RCxYRGU9ZigoKT0+e3lEPVtbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dLFsicGF0aCIse2Q6Ik0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIn1dLFsibGluZSIse3gxOiIxMy41Iix4MjoiNiIseTE6IjEzLjUiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIyMSIseTE6IjEyIix5MjoiMTUifV0sWyJwYXRoIix7ZDoiTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5In1dLFsicGF0aCIse2Q6Ik0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSJ9XV19KTt2YXIgd0QsUURlPWYoKCk9Pnt3RD1bWyJwYXRoIix7ZDoiTTE1IDE1LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnoifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjE3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Im02IDIxIDUtNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgTUQsSkRlPWYoKCk9PntNRD1bWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMS41VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg3LjUifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIGtELGVBZT1mKCgpPT57a0Q9W1sicGF0aCIse2Q6Ik0xMC4zIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGwtMy4xLTMuMWEyIDIgMCAwIDAtMi44MTQuMDE0TDYgMjEifV0sWyJwYXRoIix7ZDoibTE0IDE5LjUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUuNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgU0QsdEFlPWYoKCk9PntTRD1bWyJwYXRoIix7ZDoiTTE2IDNoNXY1In1dLFsicGF0aCIse2Q6Ik0xNyAyMWgyYTIgMiAwIDAgMCAyLTIifV0sWyJwYXRoIix7ZDoiTTIxIDEydjMifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Im01IDIxIDQuMTQ0LTQuMTQ0YTEuMjEgMS4yMSAwIDAgMSAxLjcxMiAwTDEzIDE5In1dLFsicGF0aCIse2Q6Ik05IDNoMyJ9XSxbInJlY3QiLHt4OiIzIix5OiIxMSIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIixyeDoiMSJ9XV19KTt2YXIgekQsYUFlPWYoKCk9Pnt6RD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV1dfSk7dmFyIENELHJBZT1mKCgpPT57Q0Q9W1sicGF0aCIse2Q6Im0yMiAxMS0xLjI5Ni0xLjI5NmEyLjQgMi40IDAgMCAwLTMuNDA4IDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTQgOGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjciLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBfRCxzQWU9ZigoKT0+e19EPVtbInBhdGgiLHtkOiJNMTIgM3YxMiJ9XSxbInBhdGgiLHtkOiJtOCAxMSA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik04IDVINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTQifV1dfSk7dmFyIFRELGlBZT1mKCgpPT57VEQ9W1sicG9seWxpbmUiLHtwb2ludHM6IjIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMiJ9XSxbInBhdGgiLHtkOiJNNS40NSA1LjExIDIgMTJ2NmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTZsLTMuNDUtNi44OUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6In1dXX0pO3ZhciBMRCxvQWU9ZigoKT0+e0xEPVtbInBhdGgiLHtkOiJNNiAzaDEyIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoibTYgMTMgOC41IDgifV0sWyJwYXRoIix7ZDoiTTYgMTNoMyJ9XSxbInBhdGgiLHtkOiJNOSAxM2M2LjY2NyAwIDYuNjY3LTEwIDAtMTAifV1dfSk7dmFyICRELG5BZT1mKCgpPT57JEQ9W1sicGF0aCIse2Q6Ik02IDE2YzUgMCA3LTggMTItOGE0IDQgMCAwIDEgMCA4Yy01IDAtNy04LTEyLThhNCA0IDAgMSAwIDAgOCJ9XV19KTt2YXIgREQsbEFlPWYoKCk9PntERD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE2di00In1dLFsicGF0aCIse2Q6Ik0xMiA4aC4wMSJ9XV19KTt2YXIgQUQsY0FlPWYoKCk9PntBRD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxN2guMDEifV1dfSk7dmFyIFBELGRBZT1mKCgpPT57UEQ9W1sibGluZSIse3gxOiIxOSIseDI6IjEwIix5MToiNCIseTI6IjQifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiNSIseTE6IjIwIix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XV19KTt2YXIgRUQsdUFlPWYoKCk9PntFRD1bWyJwYXRoIix7ZDoibTE2IDE0IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIwIDEwYTggOCAwIDEgMC04IDhoOCJ9XV19KTt2YXIgSUQscEFlPWYoKCk9PntJRD1bWyJwYXRoIix7ZDoiTTQgMTBhOCA4IDAgMSAxIDggOEg0In1dLFsicGF0aCIse2Q6Im04IDIyLTQtNCA0LTQifV1dfSk7dmFyIE5ELGZBZT1mKCgpPT57TkQ9W1sicGF0aCIse2Q6Ik0xMiA5LjVWMjFtMC0xMS41TDYgM202IDYuNUwxOCAzIn1dLFsicGF0aCIse2Q6Ik02IDE1aDEyIn1dLFsicGF0aCIse2Q6Ik02IDExaDEyIn1dXX0pO3ZhciBSRCxoQWU9ZigoKT0+e1JEPVtbInBhdGgiLHtkOiJNMjEgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJaIn1dLFsicGF0aCIse2Q6Ik02IDE1di0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMyJ9XV19KTt2YXIgT0QsbUFlPWYoKCk9PntPRD1bWyJwYXRoIix7ZDoiTTUgM3YxNCJ9XSxbInBhdGgiLHtkOiJNMTIgM3Y4In1dLFsicGF0aCIse2Q6Ik0xOSAzdjE4In1dXX0pO3ZhciBGRCxnQWU9ZigoKT0+e0ZEPVtbInBhdGgiLHtkOiJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEifV0sWyJwYXRoIix7ZDoibTYuNzA3IDYuNzA3IDEwLjU4NiAxMC41ODYifV0sWyJwYXRoIix7ZDoiTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXoifV1dfSk7dmFyIEJELGJBZT1mKCgpPT57QkQ9W1sicGF0aCIse2Q6Ik0xMi40IDIuN2EyLjUgMi41IDAgMCAxIDMuNCAwbDUuNSA1LjVhMi41IDIuNSAwIDAgMSAwIDMuNGwtMy43IDMuN2EyLjUgMi41IDAgMCAxLTMuNCAwTDguNyA5LjhhMi41IDIuNSAwIDAgMSAwLTMuNHoifV0sWyJwYXRoIix7ZDoibTE0IDcgMyAzIn1dLFsicGF0aCIse2Q6Im05LjQgMTAuNi02LjgxNCA2LjgxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNCJ9XV19KTt2YXIgSEQsdkFlPWYoKCk9PntIRD1bWyJwYXRoIix7ZDoiTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgcUQseEFlPWYoKCk9PntxRD1bWyJwYXRoIix7ZDoibTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQifV0sWyJwYXRoIix7ZDoibTIxIDItOS42IDkuNiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNS41IixyOiI1LjUifV1dfSk7dmFyIFZELHlBZT1mKCgpPT57VkQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NCJ9XV19KTt2YXIgakQsd0FlPWYoKCk9PntqRD1bWyJwYXRoIix7ZDoiTSAyMCA0IEEyIDIgMCAwIDEgMjIgNiJ9XSxbInBhdGgiLHtkOiJNIDIyIDYgTCAyMiAxNi40MSJ9XSxbInBhdGgiLHtkOiJNIDcgMTYgTCAxNiAxNiJ9XSxbInBhdGgiLHtkOiJNIDkuNjkgNCBMIDIwIDQifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XV19KTt2YXIgVUQsTUFlPWYoKCk9PntVRD1bWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE2aDEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dXX0pO3ZhciBXRCxrQWU9ZigoKT0+e1dEPVtbInBhdGgiLHtkOiJNMTIgMnY1In1dLFsicGF0aCIse2Q6Ik0xNC44MjkgMTUuOTk4YTMgMyAwIDEgMS01LjY1OCAwIn1dLFsicGF0aCIse2Q6Ik0yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnoifV1dfSk7dmFyIEdELFNBZT1mKCgpPT57R0Q9W1sicGF0aCIse2Q6Ik0xMC4yOTMgMi4yOTNhMSAxIDAgMCAxIDEuNDE0IDBsMi41IDIuNSA1Ljk5NCAxLjIyN2ExIDEgMCAwIDEgLjUwNiAxLjY4N2wtNyA3YTEgMSAwIDAgMS0xLjY4Ny0uNTA2bC0xLjIyNy01Ljk5NC0yLjUtMi41YTEgMSAwIDAgMSAwLTEuNDE0eiJ9XSxbInBhdGgiLHtkOiJtMTQuMjA3IDQuNzkzLTMuNDE0IDMuNDE0In1dLFsicGF0aCIse2Q6Ik0zIDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im05LjA4NiA2LjUtNC43OTMgNC43OTNhMSAxIDAgMCAwLS4xOCAxLjE3TDcgMTgifV1dfSk7dmFyIFlELHpBZT1mKCgpPT57WUQ9W1sicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuOTI5IDcuNjI5QTEgMSAwIDAgMSAxNyA5SDdhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSA5IDJoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik05IDIyaDYifV1dfSk7dmFyIEtELENBZT1mKCgpPT57S0Q9W1sicGF0aCIse2Q6Ik0xOS45MjkgMTguNjI5QTEgMSAwIDAgMSAxOSAyMEg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgMTNoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDNhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggNmg0YTIgMiAwIDAgMSAyIDJ2NSJ9XV19KTt2YXIgWkQsX0FlPWYoKCk9PntaRD1bWyJwYXRoIix7ZDoiTTE5LjkyOSA5LjYyOUExIDEgMCAwIDEgMTkgMTFIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDRoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDE1YTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxOGg0YTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIFhELFRBZT1mKCgpPT57WEQ9W1sicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik00LjA3NyAxMC42MTVBMSAxIDAgMCAwIDUgMTJoMTRhMSAxIDAgMCAwIC45MjMtMS4zODVsLTMuMDc3LTcuMzg0QTIgMiAwIDAgMCAxNSAySDlhMiAyIDAgMCAwLTEuODQ2IDEuMjNaIn1dLFsicGF0aCIse2Q6Ik04IDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBRRCxMQWU9ZigoKT0+e1FEPVtbInBhdGgiLHtkOiJtMTIgOCA2LTMtNi0zdjEwIn1dLFsicGF0aCIse2Q6Im04IDExLjk5LTUuNSAzLjE0YTEgMSAwIDAgMCAwIDEuNzRsOC41IDQuODZhMiAyIDAgMCAwIDIgMGw4LjUtNC44NmExIDEgMCAwIDAgMC0xLjc0TDE2IDEyIn1dLFsicGF0aCIse2Q6Im02LjQ5IDEyLjg1IDExLjAyIDYuMyJ9XSxbInBhdGgiLHtkOiJNMTcuNTEgMTIuODUgNi41IDE5LjE1In1dXX0pO3ZhciBKRCwkQWU9ZigoKT0+e0pEPVtbInBhdGgiLHtkOiJNMTAgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eiJ9XSxbInBhdGgiLHtkOiJNMTQgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTE4IDE4di03In1dLFsicGF0aCIse2Q6Ik0zIDIyaDE4In1dLFsicGF0aCIse2Q6Ik02IDE4di03In1dXX0pO3ZhciBlQSxEQWU9ZigoKT0+e2VBPVtbInBhdGgiLHtkOiJtNSA4IDYgNiJ9XSxbInBhdGgiLHtkOiJtNCAxNCA2LTYgMi0zIn1dLFsicGF0aCIse2Q6Ik0yIDVoMTIifV0sWyJwYXRoIix7ZDoiTTcgMmgxIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LTEwLTUgMTAifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dfSk7dmFyIHRBLEFBZT1mKCgpPT57dEE9W1sicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgbXUsUEFlPWYoKCk9PnttdT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIwIix5MjoiMjAifV1dfSk7dmFyIGFBLEVBZT1mKCgpPT57YUE9W1sicGF0aCIse2Q6Ik0xOCA1YTIgMiAwIDAgMSAyIDJ2OC41MjZhMiAyIDAgMCAwIC4yMTIuODk3bDEuMDY4IDIuMTI3YTEgMSAwIDAgMS0uOSAxLjQ1SDMuNjJhMSAxIDAgMCAxLS45LTEuNDVsMS4wNjgtMi4xMjdBMiAyIDAgMCAwIDQgMTUuNTI2VjdhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTIwLjA1NCAxNS45ODdIMy45NDYifV1dfSk7dmFyIHJBLElBZT1mKCgpPT57ckE9W1sicGF0aCIse2Q6Ik03IDIyYTUgNSAwIDAgMS0yLTQifV0sWyJwYXRoIix7ZDoiTTcgMTYuOTNjLjk2LjQzIDEuOTYuNzQgMi45OS45MSJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxNEE2LjggNi44IDAgMCAxIDIgMTBjMC00LjQyIDQuNDgtOCAxMC04czEwIDMuNTggMTAgOGE3LjE5IDcuMTkgMCAwIDEtLjMzIDIifV0sWyJwYXRoIix7ZDoiTTUgMThhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0eiJ9XSxbInBhdGgiLHtkOiJNMTQuMzMgMjJoLS4wOWEuMzUuMzUgMCAwIDEtLjI0LS4zMnYtMTBhLjM0LjM0IDAgMCAxIC4zMy0uMzRjLjA4IDAgLjE1LjAzLjIxLjA4bDcuMzQgNmEuMzMuMzMgMCAwIDEtLjIxLjU5aC00LjQ5bC0yLjU3IDMuODVhLjM1LjM1IDAgMCAxLS4yOC4xNHoifV1dfSk7dmFyIHNBLE5BZT1mKCgpPT57c0E9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxM2E2IDYgMCAwIDEtNiA1IDYgNiAwIDAgMS02LTVoMTJaIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dfSk7dmFyIGlBLFJBZT1mKCgpPT57aUE9W1sicGF0aCIse2Q6Ik0zLjcwNCAxNC40NjdhMTAgOCAwIDEgMSAzLjExNSAyLjM3NSJ9XSxbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi0zLjk5NCJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTYiLHI6IjIifV1dfSk7dmFyIG9BLE9BZT1mKCgpPT57b0E9W1sicGF0aCIse2Q6Ik0xMyAxMy43NGEyIDIgMCAwIDEtMiAwTDIuNSA4Ljg3YTEgMSAwIDAgMSAwLTEuNzRMMTEgMi4yNmEyIDIgMCAwIDEgMiAwbDguNSA0Ljg3YTEgMSAwIDAgMSAwIDEuNzR6In1dLFsicGF0aCIse2Q6Im0yMCAxNC4yODUgMS41Ljg0NWExIDEgMCAwIDEgMCAxLjc0TDEzIDIxLjc0YTIgMiAwIDAgMS0yIDBsLTguNS00Ljg3YTEgMSAwIDAgMSAwLTEuNzRsMS41LS44NDUifV1dfSk7dmFyIG5BLEZBZT1mKCgpPT57bkE9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIC44My4xOCAyIDIgMCAwIDAgLjgzLS4xOGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzMnoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTIuMDAzIDExLjk5NWExIDEgMCAwIDAgLjU5Ny45MTVsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTgifV0sWyJwYXRoIix7ZDoiTTIuMDAzIDE2Ljk5NWExIDEgMCAwIDAgLjU5Ny45MTVsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsMi4xMS0uOTYifV0sWyJwYXRoIix7ZDoiTTIyLjAxOCAxMi4wMDRhMSAxIDAgMCAxLS41OTguOTE2bC0uMTc3LjA4In1dXX0pO3ZhciBsQSxCQWU9ZigoKT0+e2xBPVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXX0pO3ZhciBjQSxIQWU9ZigoKT0+e2NBPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiOSIseDoiMTQiLHk6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV1dfSk7dmFyIGd1LHFBZT1mKCgpPT57Z3U9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIDEuNjYgMGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzeiJ9XSxbInBhdGgiLHtkOiJNMiAxMmExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDEyIn1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGw4LjU4LTMuOUExIDEgMCAwIDAgMjIgMTcifV1dfSk7dmFyIGRBLFZBZT1mKCgpPT57ZEE9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgdUEsakFlPWYoKCk9Pnt1QT1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNCA0aDcifV0sWyJwYXRoIix7ZDoiTTE0IDloNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNyJ9XV19KTt2YXIgcEEsVUFlPWYoKCk9PntwQT1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBmQSxXQWU9ZigoKT0+e2ZBPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjciLHg6IjE2Iix5OiIxNCIscng6IjEifV1dfSk7dmFyIGhBLEdBZT1mKCgpPT57aEE9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgbUEsWUFlPWYoKCk9PnttQT1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXX0pO3ZhciBnQSxLQWU9ZigoKT0+e2dBPVtbInBhdGgiLHtkOiJNMiAyMmMxLjI1LS45ODcgMi4yNy0xLjk3NSAzLjktMi4yYTUuNTYgNS41NiAwIDAgMSAzLjggMS41IDQgNCAwIDAgMCA2LjE4Ny0yLjM1MyAzLjUgMy41IDAgMCAwIDMuNjktNS4xMTZBMy41IDMuNSAwIDAgMCAyMC45NSA4IDMuNSAzLjUgMCAxIDAgMTYgMy4wNWEzLjUgMy41IDAgMCAwLTUuODMxIDEuMzczIDMuNSAzLjUgMCAwIDAtNS4xMTYgMy42OSA0IDQgMCAwIDAtMi4zNDggNi4xNTVDMy40OTkgMTUuNDIgNC40MDkgMTYuNzEyIDQuMiAxOC4xIDMuOTI2IDE5Ljc0MyAzLjAxNCAyMC43MzIgMiAyMiJ9XSxbInBhdGgiLHtkOiJNMiAyMiAxNyA3In1dXX0pO3ZhciBiQSxaQWU9ZigoKT0+e2JBPVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dfSk7dmFyIHZBLFhBZT1mKCgpPT57dkE9W1sicGF0aCIse2Q6Ik03IDJhMSAxIDAgMCAwLS44IDEuNiAxNCAxNCAwIDAgMSAwIDE2LjhBMSAxIDAgMCAwIDcgMjJoMTBhMSAxIDAgMCAwIC44LTEuNiAxNCAxNCAwIDAgMSAwLTE2LjhBMSAxIDAgMCAwIDE3IDJ6In1dXX0pO3ZhciB4QSxRQWU9ZigoKT0+e3hBPVtbInBhdGgiLHtkOiJNMTMuNDMzIDJhMSAxIDAgMCAxIC44MjQuNDQ4IDE4IDE4IDAgMCAxIDAgMTkuMTA0IDEgMSAwIDAgMS0uODI0LjQ0OGgtMi44NjZhMSAxIDAgMCAxLS44MjQtLjQ0OCAxOCAxOCAwIDAgMSAwLTE5LjEwNEExIDEgMCAwIDEgMTAuNTY3IDJ6In1dXX0pO3ZhciB5QSxKQWU9ZigoKT0+e3lBPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WiJ9XV19KTt2YXIgd0EsZVBlPWYoKCk9Pnt3QT1bWyJwYXRoIix7ZDoibTE2IDYgNCAxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnYxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djEyIn1dLFsicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIE1BLHRQZT1mKCgpPT57TUE9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyA5LjE3IDQuMjQtNC4yNCJ9XSxbInBhdGgiLHtkOiJtMTQuODMgMTQuODMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im05LjE3IDE0LjgzLTQuMjQgNC4yNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXX0pO3ZhciBrQSxhUGU9ZigoKT0+e2tBPVtbInBhdGgiLHtkOiJNMTQgMTJoMnY4In1dLFsicGF0aCIse2Q6Ik0xNCAyMGg0In1dLFsicGF0aCIse2Q6Ik02IDEyaDQifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNOCAyMFY4YTQgNCAwIDAgMSA3LjQ2NC0yIn1dXX0pO3ZhciBTQSxyUGU9ZigoKT0+e1NBPVtbInBhdGgiLHtkOiJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dfSk7dmFyIHpBLHNQZT1mKCgpPT57ekE9W1sicGF0aCIse2Q6Ik0xNi44IDExLjJjLjgtLjkgMS4yLTIgMS4yLTMuMmE2IDYgMCAwIDAtOS4zLTUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNi4zIDYuM2E0LjY3IDQuNjcgMCAwIDAgMS4yIDUuMmMuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXX0pO3ZhciBDQSxpUGU9ZigoKT0+e0NBPVtbInBhdGgiLHtkOiJNIDMgMTIgTCAxNSAxMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBfQSxvUGU9ZigoKT0+e19BPVtbInBhdGgiLHtkOiJNMTEgNWgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xOSA1aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA1aDIifV1dfSk7dmFyIFRBLG5QZT1mKCgpPT57VEE9W1sicGF0aCIse2Q6Ik03IDMuNWM1LTIgNyAyLjUgMyA0QzEuNSAxMCAyIDE1IDUgMTZjNSAyIDktMTAgMTQtN3MuNSAxMy41LTQgMTJjLTUtMi41LjUtMTEgNi0yIn1dXX0pO3ZhciBMQSxsUGU9ZigoKT0+e0xBPVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDcifV0sWyJwYXRoIix7ZDoiTTE1IDdoMmE1IDUgMCAwIDEgNCA4In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyICRBLGNQZT1mKCgpPT57JEE9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIERBLGRQZT1mKCgpPT57REE9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV19KTt2YXIgQUEsdVBlPWYoKCk9PntBQT1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggMiAyIDQtNCJ9XV19KTt2YXIgUEEscFBlPWYoKCk9PntQQT1bWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMyAxNyAyIDIgNC00In1dLFsicGF0aCIse2Q6Im0zIDcgMiAyIDQtNCJ9XV19KTt2YXIgRUEsZlBlPWYoKCk9PntFQT1bWyJwYXRoIix7ZDoiTTMgNWg4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAzLTMgMyAzIn1dXX0pO3ZhciBJQSxoUGU9ZigoKT0+e0lBPVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA4IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE1IDE2IDMgMyAzLTMifV1dfSk7dmFyIE5BLG1QZT1mKCgpPT57TkE9W1sicGF0aCIse2Q6Ik0xMCA1aDExIn1dLFsicGF0aCIse2Q6Ik0xMCAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTloMTEifV0sWyJwYXRoIix7ZDoibTMgMTAgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtMyAyMCAzLTMtMy0zIn1dXX0pO3ZhciBSQSxnUGU9ZigoKT0+e1JBPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik05IDE5SDMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XV19KTt2YXIgT0EsYlBlPWYoKCk9PntPQT1bWyJwYXRoIix7ZDoiTTEyIDVIMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDhWMiJ9XV19KTt2YXIgRkEsdlBlPWYoKCk9PntGQT1bWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dXX0pO3ZhciByYyx4UGU9ZigoKT0+e3JjPVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im03IDgtNCA0IDQgNCJ9XV19KTt2YXIgc2MseVBlPWYoKCk9PntzYz1bWyJwYXRoIix7ZDoiTTIxIDVIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDEySDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxOUgxMSJ9XSxbInBhdGgiLHtkOiJtMyA4IDQgNC00IDQifV1dfSk7dmFyIEJBLHdQZT1mKCgpPT57QkE9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBIQSxNUGU9ZigoKT0+e0hBPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNlY1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIHFBLGtQZT1mKCgpPT57cUE9W1sicGF0aCIse2Q6Ik0xMSA1aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTloMTAifV0sWyJwYXRoIix7ZDoiTTQgNGgxdjUifV0sWyJwYXRoIix7ZDoiTTQgOWgyIn1dLFsicGF0aCIse2Q6Ik02LjUgMjBIMy40YzAtMSAyLjYtMS45MjUgMi42LTMuNWExLjUgMS41IDAgMCAwLTIuNi0xLjAyIn1dXX0pO3ZhciBWQSxTUGU9ZigoKT0+e1ZBPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBqQSx6UGU9ZigoKT0+e2pBPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik03IDEySDMifV0sWyJwYXRoIix7ZDoiTTcgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTB2NGg0In1dXX0pO3ZhciBVQSxDUGU9ZigoKT0+e1VBPVtbInBhdGgiLHtkOiJNMyA1aDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloMTMifV0sWyJwYXRoIix7ZDoibTE2IDgtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02In1dXX0pO3ZhciBXQSxfUGU9ZigoKT0+e1dBPVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIEdBLFRQZT1mKCgpPT57R0E9W1sicGF0aCIse2Q6Ik04IDVoMTMifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTJhMiAyIDAgMCAwIDIgMmgzIn1dXX0pO3ZhciBZQSxMUGU9ZigoKT0+e1lBPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dXX0pO3ZhciBLQSwkUGU9ZigoKT0+e0tBPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNS41IDkuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIwLjUgOS41LTUgNSJ9XV19KTt2YXIgWkEsRFBlPWYoKCk9PntaQT1bWyJwYXRoIix7ZDoiTTMgNWguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA1aDEzIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEzIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEzIn1dXX0pO3ZhciBidSxBUGU9ZigoKT0+e2J1PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dfSk7dmFyIFhBLFBQZT1mKCgpPT57WEE9W1sicGF0aCIse2Q6Ik0yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyAyMC43YTEgMSAwIDEgMSA1LTguNyAxIDEgMCAxIDAgNS04LjYifV0sWyJwYXRoIix7ZDoiTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIFFBLEVQZT1mKCgpPT57UUE9W1sicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTE2LjIgNy44IDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTE4IDEyaDQifV0sWyJwYXRoIix7ZDoibTE2LjIgMTYuMiAyLjkgMi45In1dLFsicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Im00LjkgMTkuMSAyLjktMi45In1dLFsicGF0aCIse2Q6Ik0yIDEyaDQifV0sWyJwYXRoIix7ZDoibTQuOSA0LjkgMi45IDIuOSJ9XV19KTt2YXIgSkEsSVBlPWYoKCk9PntKQT1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBlUCxOUGU9ZigoKT0+e2VQPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMmgzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy4wNSA3LjA1YTcgNyAwIDAgMCA5LjkgOS45In1dXX0pO3ZhciB0UCxSUGU9ZigoKT0+e3RQPVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dXX0pO3ZhciB2dSxPUGU9ZigoKT0+e3Z1PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41In1dXX0pO3ZhciBhUCxGUGU9ZigoKT0+e2FQPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjEwIix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyJ9XV19KTt2YXIgeHUsQlBlPWYoKCk9Pnt4dT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDkuOS0xIn1dXX0pO3ZhciByUCxIUGU9ZigoKT0+e3JQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0In1dXX0pO3ZhciBzUCxxUGU9ZigoKT0+e3NQPVtbInBhdGgiLHtkOiJtMTAgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCJ9XV19KTt2YXIgaVAsVlBlPWYoKCk9PntpUD1bWyJwYXRoIix7ZDoibTE2IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEySDkifV0sWyJwYXRoIix7ZDoiTTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBvUCxqUGU9ZigoKT0+e29QPVtbInBhdGgiLHtkOiJNMyA1aDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxIn1dLFsicGF0aCIse2Q6Ik04IDVoMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEifV0sWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XV19KTt2YXIgblAsVVBlPWYoKCk9PntuUD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTFhMiAyIDAgMCAwIDQgMCA0IDQgMCAwIDAtOCAwIDYgNiAwIDAgMCAxMiAwIn1dXX0pO3ZhciBsUCxXUGU9ZigoKT0+e2xQPVtbInBhdGgiLHtkOiJNNiAyMGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTggMThWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjBoNCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjIwIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgY1AsR1BlPWYoKCk9PntjUD1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBkUCxZUGU9ZigoKT0+e2RQPVtbInBhdGgiLHtkOiJtMTIgMTUgNCA0In1dLFsicGF0aCIse2Q6Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6In1dLFsicGF0aCIse2Q6Im01IDggNCA0In1dXX0pO3ZhciB1UCxLUGU9ZigoKT0+e3VQPVtbInBhdGgiLHtkOiJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV1dfSk7dmFyIHBQLFpQZT1mKCgpPT57cFA9W1sicGF0aCIse2Q6Ik0yMS4yIDguNGMuNS4zOC44Ljk3LjggMS42djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAuOC0xLjZsOC02YTIgMiAwIDAgMSAyLjQgMGw4IDZaIn1dLFsicGF0aCIse2Q6Im0yMiAxMC04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgMTAifV1dfSk7dmFyIGZQLFhQZT1mKCgpPT57ZlA9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV19KTt2YXIgeXUsUVBlPWYoKCk9Pnt5dT1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDE1LjI4Yy4yLS40LjUtLjguOS0xYTIuMSAyLjEgMCAwIDEgMi42LjRjLjMuNC41LjguNSAxLjMgMCAxLjMtMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXX0pO3ZhciBoUCxKUGU9ZigoKT0+e2hQPVtbInBhdGgiLHtkOiJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuNS0xLjUifV1dfSk7dmFyIG1QLGVFZT1mKCgpPT57bVA9W1sicGF0aCIse2Q6Ik0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0yMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0yMCAyMnYuMDEifV1dfSk7dmFyIGdQLHRFZT1mKCgpPT57Z1A9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNCA0In1dLFsicGF0aCIse2Q6Im0yMSAxNy00IDQifV1dfSk7dmFyIGJQLGFFZT1mKCgpPT57YlA9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5LjVDMiA3IDQgNSA2LjUgNUgxOGMyLjIgMCA0IDEuOCA0IDR2OFoifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTUsOSAxOCw5IDE4LDExIn1dLFsicGF0aCIse2Q6Ik02LjUgNUM5IDUgMTEgNyAxMSA5LjVWMTdhMiAyIDAgMCAxLTIgMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjciLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciB2UCxyRWU9ZigoKT0+e3ZQPVtbInBhdGgiLHtkOiJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDcifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgeFAsc0VlPWYoKCk9Pnt4UD1bWyJwYXRoIix7ZDoiTTE3IDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAxLTEuNzMyIn1dLFsicGF0aCIse2Q6Im0yMiA1LjUtNi40MTkgNC4xNzlhMiAyIDAgMCAxLTIuMTYyIDBMNyA1LjUifV0sWyJyZWN0Iix7eDoiNyIseToiMyIsd2lkdGg6IjE1IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgeVAsaUVlPWYoKCk9Pnt5UD1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTQifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV19KTt2YXIgd1Asb0VlPWYoKCk9Pnt3UD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dXX0pO3ZhciBNUCxuRWU9ZigoKT0+e01QPVtbInBhdGgiLHtkOiJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTggMiAyIDQtNCJ9XV19KTt2YXIga1AsbEVlPWYoKCk9PntrUD1bWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIC40NDUtLjgzMmwzLTJhMSAxIDAgMCAxIDEuMTEgMGwzIDJBMSAxIDAgMCAxIDIyIDE3djRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtMyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciBTUCxjRWU9ZigoKT0+e1NQPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIHpQLGRFZT1mKCgpPT57elA9W1sicGF0aCIse2Q6Ik0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XV19KTt2YXIgQ1AsdUVlPWYoKCk9PntDUD1bWyJwYXRoIix7ZDoiTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNiJ9XSxbInBhdGgiLHtkOiJNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMyJ9XSxbInBhdGgiLHtkOiJNOS4xMyA5LjEzYTMgMyAwIDAgMCAzLjc0IDMuNzQifV1dfSk7dmFyIHd1LHBFZT1mKCgpPT57d3U9W1sicGF0aCIse2Q6Ik0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMCIscjoiMyJ9XV19KTt2YXIgX1AsZkVlPWYoKCk9PntfUD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIFRQLGhFZT1mKCgpPT57VFA9W1sicGF0aCIse2Q6Ik0xOS45MTQgMTEuMTA1QTcuMjk4IDcuMjk4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XV19KTt2YXIgTFAsbUVlPWYoKCk9PntMUD1bWyJwYXRoIix7ZDoiTSAxMi4yNDggMjEuOTY5IGEgMSAxIDAgMCAxIC0wLjg0OSAtMC4xNyBDIDkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwIGEgOCA4IDAgMCAxIDE2IDAgQyAyMCAxMC40MiAxOS45NjEgMTAuODQxIDE5Ljg4OCAxMS4yNjIifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODgtMS44OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyICRQLGdFZT1mKCgpPT57JFA9W1sicGF0aCIse2Q6Ik0xOS43NTIgMTEuOTAxQTcuNzggNy43OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMTkgMTkgMCAwIDAgLjA5LS4wNzcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxNS41LTUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAyMC41LTUtNSJ9XV19KTt2YXIgRFAsYkVlPWYoKCk9PntEUD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV19KTt2YXIgQVAsdkVlPWYoKCk9PntBUD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciBQUCx4RWU9ZigoKT0+e1BQPVtbInBhdGgiLHtkOiJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIn1dXX0pO3ZhciBFUCx5RWU9ZigoKT0+e0VQPVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxMiJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTIifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBJUCx3RWU9ZigoKT0+e0lQPVtbInBhdGgiLHtkOiJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0djE1In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBOUCxNRWU9ZigoKT0+e05QPVtbInBhdGgiLHtkOiJtMTQgNiA0IDQifV0sWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAzLTcuNzUgNy43NSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjYifV1dfSk7dmFyIFJQLGtFZT1mKCgpPT57UlA9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJtMjEgMy02Ljc1IDYuNzUifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxNCIscjoiNiJ9XV19KTt2YXIgT1AsU0VlPWYoKCk9PntPUD1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2MTEifV0sWyJwYXRoIix7ZDoibTE5IDMtNyA4LTctOFoifV1dfSk7dmFyIEZQLHpFZT1mKCgpPT57RlA9W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjEgMy03IDcifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dfSk7dmFyIEJQLENFZT1mKCgpPT57QlA9W1sicGF0aCIse2Q6Ik04IDNINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDhWNWEyIDIgMCAwIDAtMi0yaC0zIn1dLFsicGF0aCIse2Q6Ik0zIDE2djNhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgzYTIgMiAwIDAgMCAyLTJ2LTMifV1dfSk7dmFyIEhQLF9FZT1mKCgpPT57SFA9W1sicGF0aCIse2Q6Ik03LjIxIDE1IDIuNjYgNy4xNGEyIDIgMCAwIDEgLjEzLTIuMkw0LjQgMi44QTIgMiAwIDAgMSA2IDJoMTJhMiAyIDAgMCAxIDEuNi44bDEuNiAyLjE0YTIgMiAwIDAgMSAuMTQgMi4yTDE2Ljc5IDE1In1dLFsicGF0aCIse2Q6Ik0xMSAxMiA1LjEyIDIuMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNS44OC05LjgifV0sWyJwYXRoIix7ZDoiTTggN2g4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yaC0uNSJ9XV19KTt2YXIgcVAsVEVlPWYoKCk9PntxUD1bWyJwYXRoIix7ZDoiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djYifV1dfSk7dmFyIFZQLExFZT1mKCgpPT57VlA9W1sicGF0aCIse2Q6Ik0xMSA2YTEzIDEzIDAgMCAwIDguNC0yLjhBMSAxIDAgMCAxIDIxIDR2MTJhMSAxIDAgMCAxLTEuNi44QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDZ2OCJ9XV19KTt2YXIgalAsJEVlPWYoKCk9PntqUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgVVAsREVlPWYoKCk9PntVUD1bWyJwYXRoIix7ZDoiTTEyIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yIDExaDEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTIwLjUgMTFIMjIifV0sWyJwYXRoIix7ZDoiTTQgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjEwIixyeDoiMiJ9XV19KTt2YXIgV1AsQUVlPWYoKCk9PntXUD1bWyJwYXRoIix7ZDoiTTQgNWgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxOWgxNiJ9XV19KTt2YXIgR1AsUEVlPWYoKCk9PntHUD1bWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjIifV0sWyJwYXRoIix7ZDoibTIwIDIyLTUtNSJ9XV19KTt2YXIgWVAsRUVlPWYoKCk9PntZUD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIEtQLElFZT1mKCgpPT57S1A9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBaUCxORWU9ZigoKT0+e1pQPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV19KTt2YXIgWFAsUkVlPWYoKCk9PntYUD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXX0pO3ZhciBRUCxPRWU9ZigoKT0+e1FQPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgSlAsRkVlPWYoKCk9PntKUD1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXX0pO3ZhciBlRSxCRWU9ZigoKT0+e2VFPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBNdSxIRWU9ZigoKT0+e011PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIHRFLHFFZT1mKCgpPT57dEU9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNNyAxMmg4YTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgYUUsVkVlPWYoKCk9PnthRT1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgckUsakVlPWYoKCk9PntyRT1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgc0UsVUVlPWYoKCk9PntzRT1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBpRSxXRWU9ZigoKT0+e2lFPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMtMy0zLTMifV1dfSk7dmFyIG9FLEdFZT1mKCgpPT57b0U9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43LjcgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im05IDExIDIgMiA0LTQifV1dfSk7dmFyIG5FLFlFZT1mKCgpPT57bkU9W1sicGF0aCIse2Q6Ik0xNCAzaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0yIDE2djUuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMS4xNDktMS4xNDkifV0sWyJwYXRoIix7ZDoiTTIwIDE5YTIgMiAwIDAgMCAyLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTIyIDZWNWEyIDIgMCAwIDAtMi0yIn1dLFsicGF0aCIse2Q6Ik00IDNhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDIifV0sWyJwYXRoIix7ZDoiTTggM2gyIn1dXX0pO3ZhciBsRSxLRWU9ZigoKT0+e2xFPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV19KTt2YXIgY0UsWkVlPWYoKCk9PntjRT1bWyJwYXRoIix7ZDoiTTEyLjcgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQuNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIGRFLFhFZT1mKCgpPT57ZEU9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXX0pO3ZhciB1RSxRRWU9ZigoKT0+e3VFPVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgcEUsSkVlPWYoKCk9PntwRT1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dXX0pO3ZhciBmRSxlSWU9ZigoKT0+e2ZFPVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXX0pO3ZhciBoRSx0SWU9ZigoKT0+e2hFPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV19KTt2YXIgbUUsYUllPWYoKCk9PnttRT1bWyJwYXRoIix7ZDoiTTE0IDE0YTIgMiAwIDAgMCAyLTJWOGgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE0YTIgMiAwIDAgMCAyLTJWOEg4In1dXX0pO3ZhciBnRSxySWU9ZigoKT0+e2dFPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV19KTt2YXIgYkUsc0llPWYoKCk9PntiRT1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dfSk7dmFyIHZFLGlJZT1mKCgpPT57dkU9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTVoNiJ9XSxbInBhdGgiLHtkOiJNNyA3aDgifV1dfSk7dmFyIHhFLG9JZT1mKCgpPT57eEU9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXX0pO3ZhciB5RSxuSWU9ZigoKT0+e3lFPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXX0pO3ZhciB3RSxsSWU9ZigoKT0+e3dFPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dXX0pO3ZhciBNRSxjSWU9ZigoKT0+e01FPVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV19KTt2YXIga0UsZEllPWYoKCk9PntrRT1bWyJwYXRoIix7ZDoiTTEyIDExLjRWOS4xIn1dLFsicGF0aCIse2Q6Im0xMiAxNyA2LjU5LTYuNTkifV0sWyJwYXRoIix7ZDoibTE1LjA1IDUuNy0uMjE4LS42OTFhMyAzIDAgMCAwLTUuNjYzIDBMNC40MTggMTkuNjk1QTEgMSAwIDAgMCA1LjM3IDIxaDEzLjI1M2ExIDEgMCAwIDAgLjk1MS0xLjMxTDE4LjQ1IDE2LjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciBTRSx1SWU9ZigoKT0+e1NFPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMifV0sWyJwYXRoIix7ZDoiTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiJ9XV19KTt2YXIga3UscEllPWYoKCk9PntrdT1bWyJwYXRoIix7ZDoibTExIDcuNjAxLTUuOTk0IDguMTlhMSAxIDAgMCAwIC4xIDEuMjk4bC44MTcuODE4YTEgMSAwIDAgMCAxLjMxNC4wODdMMTUuMDkgMTIifV0sWyJwYXRoIix7ZDoiTTE2LjUgMjEuMTc0QzE1LjUgMjAuNSAxNC4zNzIgMjAgMTMgMjBjLTIuMDU4IDAtMy45MjggMi4zNTYtNiAyLTIuMDcyLS4zNTYtMi43NzUtMy4zNjktMS41LTQuNSJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjciLHI6IjUifV1dfSk7dmFyIHpFLGZJZT1mKCgpPT57ekU9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMHYyYTcgNyAwIDAgMS0xNCAwdi0yIn1dLFsicmVjdCIse3g6IjkiLHk6IjIiLHdpZHRoOiI2IixoZWlnaHQ6IjEzIixyeDoiMyJ9XV19KTt2YXIgQ0UsaEllPWYoKCk9PntDRT1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE3aDQifV0sWyJwYXRoIix7ZDoiTTEwIDdoNCJ9XSxbInBhdGgiLHtkOiJNMTggMTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMThoMiJ9XSxbInBhdGgiLHtkOiJNMTggNmgyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDIifV0sWyJwYXRoIix7ZDoiTTQgMThoMiJ9XSxbInBhdGgiLHtkOiJNNCA2aDIifV0sWyJyZWN0Iix7eDoiNiIseToiMiIsd2lkdGg6IjEyIixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgX0UsbUllPWYoKCk9PntfRT1bWyJwYXRoIix7ZDoiTTYgMThoOCJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNMTQgMjJhNyA3IDAgMSAwIDAtMTRoLTEifV0sWyJwYXRoIix7ZDoiTTkgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMmEyIDIgMCAwIDEtMi0yVjZoNnY0YTIgMiAwIDAgMS0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiA2VjNhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgVEUsZ0llPWYoKCk9PntURT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI3Iix4OiI2Iix5OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTggOHY3In1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDE5djIifV1dfSk7dmFyIExFLGJJZT1mKCgpPT57TEU9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTE4LjE3MiA2YTIgMiAwIDAgMSAxLjQxNC41ODZsMi4wNiAyLjA2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDhsLTIuMDYgMi4wNmEyIDIgMCAwIDEtMS40MTQuNTg2SDRhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTF6In1dXX0pO3ZhciAkRSx2SWU9ZigoKT0+eyRFPVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIERFLHhJZT1mKCgpPT57REU9W1sicGF0aCIse2Q6Ik04IDJoOCJ9XSxbInBhdGgiLHtkOiJNOSAydjIuNzg5YTQgNCAwIDAgMS0uNjcyIDIuMjE5bC0uNjU2Ljk4NEE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTkuNzg5YTQgNCAwIDAgMC0uNjcyLTIuMjE5bC0uNjU2LS45ODRBNCA0IDAgMCAxIDE1IDQuNzg4VjIifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NzIgNi40NzIgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV1dfSk7dmFyIEFFLHlJZT1mKCgpPT57QUU9W1sicGF0aCIse2Q6Im0xNCAxMCA3LTcifV0sWyJwYXRoIix7ZDoiTTIwIDEwaC02VjQifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik00IDE0aDZ2NiJ9XV19KTt2YXIgUEUsd0llPWYoKCk9PntQRT1bWyJwYXRoIix7ZDoiTTggM3YzYTIgMiAwIDAgMS0yIDJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgOGgtM2EyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoiTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgRUUsTUllPWYoKCk9PntFRT1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV1dfSk7dmFyIElFLGtJZT1mKCgpPT57SUU9W1sicGF0aCIse2Q6Ik0xMSA2IDggOSJ9XSxbInBhdGgiLHtkOiJtMTYgNy04IDgifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgTkUsU0llPWYoKCk9PntORT1bWyJwYXRoIix7ZDoiTTEwIDYuNiA4LjYgOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMTUgNy41IDkuNSAxMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI4In1dXX0pO3ZhciBSRSx6SWU9ZigoKT0+e1JFPVtbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgT0UsQ0llPWYoKCk9PntPRT1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBGRSxfSWU9ZigoKT0+e0ZFPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIEJFLFRJZT1mKCgpPT57QkU9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMiAxMi4zMDdWMTVhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDguNjkzIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXX0pO3ZhciBIRSxMSWU9ZigoKT0+e0hFPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMTdINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDEuMTg0LTEuODI2In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0uMjkzIDEuMDQyIn1dXX0pO3ZhciBxRSwkSWU9ZigoKT0+e3FFPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIFZFLERJZT1mKCgpPT57VkU9W1sicGF0aCIse2Q6Ik0xMCAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xNCAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgakUsQUllPWYoKCk9PntqRT1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgVUUsUEllPWYoKCk9PntVRT1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXX0pO3ZhciBXRSxFSWU9ZigoKT0+e1dFPVtbInBhdGgiLHtkOiJNNS41IDIwSDgifV0sWyJwYXRoIix7ZDoiTTE3IDloLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNiIseDoiMTIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjEifV1dfSk7dmFyIEdFLElJZT1mKCgpPT57R0U9W1sicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBZRSxOSWU9ZigoKT0+e1lFPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV0sWyJyZWN0Iix7eDoiOSIseToiNyIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIEtFLFJJZT1mKCgpPT57S0U9W1sicGF0aCIse2Q6Im0xNC41IDEyLjUtNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBaRSxPSWU9ZigoKT0+e1pFPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV19KTt2YXIgWEUsRkllPWYoKCk9PntYRT1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXX0pO3ZhciBRRSxCSWU9ZigoKT0+e1FFPVtbInBhdGgiLHtkOiJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSJ9XV19KTt2YXIgSkUsSEllPWYoKCk9PntKRT1bWyJwYXRoIix7ZDoibTE4IDE0LTEtMyJ9XSxbInBhdGgiLHtkOiJtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MSJ9XSxbInBhdGgiLHtkOiJNOCAxN2gzYTEgMSAwIDAgMCAxLTEgNiA2IDAgMCAxIDYtNiAxIDEgMCAwIDAgMS0xdi0uNzVBNSA1IDAgMCAwIDE3IDUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTciLHI6IjMifV1dfSk7dmFyIGVJLHFJZT1mKCgpPT57ZUk9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXX0pO3ZhciB0SSxWSWU9ZigoKT0+e3RJPVtbInBhdGgiLHtkOiJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oifV1dfSk7dmFyIGFJLGpJZT1mKCgpPT57YUk9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNNSAxMHY1YTcgNyAwIDAgMCAxNCAwVjljMC0zLjUyNy0yLjYwOC02LjUxNS02LTcifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIHJJLFVJZT1mKCgpPT57ckk9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV19KTt2YXIgc0ksV0llPWYoKCk9PntzST1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dfSk7dmFyIGlJLEdJZT1mKCgpPT57aUk9W1sicGF0aCIse2Q6Ik00LjAzNyA0LjY4OGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsMTYgNi41YS41LjUgMCAwIDEtLjA2My45NDdsLTYuMTI0IDEuNThhMiAyIDAgMCAwLTEuNDM4IDEuNDM1bC0xLjU3OSA2LjEyNmEuNS41IDAgMCAxLS45NDcuMDYzeiJ9XV19KTt2YXIgb0ksWUllPWYoKCk9PntvST1bWyJwYXRoIix7ZDoiTTIuMDM0IDIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQ0TDguMjA0IDcuNTQ1YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY2IDMuNDQzYS41LjUgMCAwIDEtLjk0NC4wMzN6In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJwYXRoIix7ZDoibTExLjggMTEuOCA4LjQgOC40In1dXX0pO3ZhciBuSSxLSWU9ZigoKT0+e25JPVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV19KTt2YXIgbEksWkllPWYoKCk9PntsST1bWyJwYXRoIix7ZDoiTTEyLjU4NiAxMi41ODYgMTkgMTkifV0sWyJwYXRoIix7ZDoiTTMuNjg4IDMuMDM3YS40OTcuNDk3IDAgMCAwLS42NTEuNjUxbDYuNSAxNS45OTlhLjUwMS41MDEgMCAwIDAgLjk0Ny0uMDYybDEuNTY5LTYuMDgzYTIgMiAwIDAgMSAxLjQ0OC0xLjQ3OWw2LjEyNC0xLjU3OWEuNS41IDAgMCAwIC4wNjMtLjk0N3oifV1dfSk7dmFyIGNJLFhJZT1mKCgpPT57Y0k9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2NWE3IDcgMCAwIDEtMTQgMFY5YzAtMy41MjcgMi42MDgtNi41MTUgNi03In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XV19KTt2YXIgZEksUUllPWYoKCk9PntkST1bWyJyZWN0Iix7eDoiNSIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjIwIixyeDoiNyJ9XSxbInBhdGgiLHtkOiJNMTIgNnY0In1dXX0pO3ZhciBTdSxKSWU9ZigoKT0+e1N1PVtbInBhdGgiLHtkOiJNNSAzdjE2aDE2In1dLFsicGF0aCIse2Q6Im01IDE5IDYtNiJ9XSxbInBhdGgiLHtkOiJtMiA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE4IDE2IDMgMy0zIDMifV1dfSk7dmFyIHVJLGVOZT1mKCgpPT57dUk9W1sicGF0aCIse2Q6Ik0xOSAxM3Y2aC02In1dLFsicGF0aCIse2Q6Ik01IDExVjVoNiJ9XSxbInBhdGgiLHtkOiJtNSA1IDE0IDE0In1dXX0pO3ZhciBwSSx0TmU9ZigoKT0+e3BJPVtbInBhdGgiLHtkOiJNMTEgMTlINXYtNiJ9XSxbInBhdGgiLHtkOiJNMTMgNWg2djYifV0sWyJwYXRoIix7ZDoiTTE5IDUgNSAxOSJ9XV19KTt2YXIgZkksYU5lPWYoKCk9PntmST1bWyJwYXRoIix7ZDoiTTExIDE5SDVWMTMifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV19KTt2YXIgaEksck5lPWYoKCk9PntoST1bWyJwYXRoIix7ZDoiTTE5IDEzVjE5SDEzIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIG1JLHNOZT1mKCgpPT57bUk9W1sicGF0aCIse2Q6Ik04IDE4TDEyIDIyTDE2IDE4In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBnSSxpTmU9ZigoKT0+e2dJPVtbInBhdGgiLHtkOiJtMTggOCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Im02IDgtNCA0IDQgNCJ9XV19KTt2YXIgYkksb05lPWYoKCk9PntiST1bWyJwYXRoIix7ZDoiTTYgOEwyIDEyTDYgMTYifV0sWyJwYXRoIix7ZDoiTTIgMTJIMjIifV1dfSk7dmFyIHZJLG5OZT1mKCgpPT57dkk9W1sicGF0aCIse2Q6Ik0xOCA4TDIyIDEyTDE4IDE2In1dLFsicGF0aCIse2Q6Ik0yIDEySDIyIn1dXX0pO3ZhciB4SSxsTmU9ZigoKT0+e3hJPVtbInBhdGgiLHtkOiJNNSAxMVY1SDExIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIHlJLGNOZT1mKCgpPT57eUk9W1sicGF0aCIse2Q6Ik0xMyA1SDE5VjExIn1dLFsicGF0aCIse2Q6Ik0xOSA1TDUgMTkifV1dfSk7dmFyIHdJLGROZT1mKCgpPT57d0k9W1sicGF0aCIse2Q6Ik04IDZMMTIgMkwxNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBNSSx1TmU9ZigoKT0+e01JPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV19KTt2YXIga0kscE5lPWYoKCk9PntrST1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoibTE5IDkgMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciBTSSxmTmU9ZigoKT0+e1NJPVtbImNpcmNsZSIse2N4OiI4IixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjJsNyA0In1dXX0pO3ZhciB6SSxoTmU9ZigoKT0+e3pJPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJwYXRoIix7ZDoibTkgOSAxMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBDSSxtTmU9ZigoKT0+e0NJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiAxOFYyIn1dXX0pO3ZhciBfSSxnTmU9ZigoKT0+e19JPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIFRJLGJOZT1mKCgpPT57VEk9W1sicGF0aCIse2Q6Ik05LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTQuNTMgOC44OCAxMiAybC0xLjE3IDMuMTcifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgTEksdk5lPWYoKCk9PntMST1bWyJwb2x5Z29uIix7cG9pbnRzOiIxMiAyIDE5IDIxIDEyIDE3IDUgMjEgMTIgMiJ9XV19KTt2YXIgJEkseE5lPWYoKCk9PnskST1bWyJwYXRoIix7ZDoiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIn1dLFsicGF0aCIse2Q6Ik0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgREkseU5lPWYoKCk9PntEST1bWyJwb2x5Z29uIix7cG9pbnRzOiIzIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMSJ9XV19KTt2YXIgQUksd05lPWYoKCk9PntBST1bWyJyZWN0Iix7eDoiMTYiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTUgMTZ2LTNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjMifV0sWyJwYXRoIix7ZDoiTTEyIDEyVjgifV1dfSk7dmFyIFBJLE1OZT1mKCgpPT57UEk9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV19KTt2YXIgRUksa05lPWYoKCk9PntFST1bWyJwYXRoIix7ZDoiTTYgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik05LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCJ9XSxbInBhdGgiLHtkOiJNMTIuOTEgNC4xYTE1LjkxIDE1LjkxIDAgMCAxIC4wMSAxNS44In1dLFsicGF0aCIse2Q6Ik0xNi4zNyAyYTIwLjE2IDIwLjE2IDAgMCAxIDAgMjAifV1dfSk7dmFyIElJLFNOZT1mKCgpPT57SUk9W1sicGF0aCIse2Q6Ik0xMiAydjEwIn1dLFsicGF0aCIse2Q6Im04LjUgNCA3IDQifV0sWyJwYXRoIix7ZDoibTguNSA4IDctNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiI1In1dXX0pO3ZhciBOSSx6TmU9ZigoKT0+e05JPVtbInBhdGgiLHtkOiJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCJ9XSxbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciBSSSxDTmU9ZigoKT0+e1JJPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOS41IDhoNSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDE2In1dLFsicGF0aCIse2Q6Ik05LjUgMTZIMTQifV1dfSk7dmFyIE9JLF9OZT1mKCgpPT57T0k9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDUifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE1IDE3aDUifV1dfSk7dmFyIEZJLFROZT1mKCgpPT57Rkk9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjIwIn1dXX0pO3ZhciBCSSxMTmU9ZigoKT0+e0JJPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEifV0sWyJwYXRoIix7ZDoiTTEzIDIyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNCAxNHYtMiJ9XSxbInBhdGgiLHtkOiJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXX0pO3ZhciBISSwkTmU9ZigoKT0+e0hJPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxOCIseDoiNCIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTBoNiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDUifV1dfSk7dmFyIHFJLEROZT1mKCgpPT57cUk9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyYTcuMDEgNy4wMSAwIDAgMCA0LjEyNS0yLjkzOSJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2My4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDEyYy0xLjM0OS0uNTczLTEuOTA1LTEuMDA1LTIuNS0yLS41NDYuOTAyLTEuMDQ4IDEuMzUzLTIuNSAyLTEuMDE4LS42NDQtMS40Ni0xLjA4LTItMi0xLjAyOC43MS0xLjY5LjkxOC0zIDEgMS4wODEtMS4wNDggMS43NTctMi4wMyAyLTMgLjE5NC0uNzc2Ljg0LTEuNTUxIDEuNzktMi4yMW0xMS42NTQgNS45OTdjLjg4Ny0uNDU3IDEuMjgtLjg5MSAxLjU1Ni0xLjc4NyAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNC0uNzQgMC0xLjQ2MS4wNjgtMi4xNS4xOTIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgVkksQU5lPWYoKCk9PntWST1bWyJwYXRoIix7ZDoiTTEyIDRWMiJ9XSxbInBhdGgiLHtkOiJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJBNy4wMDMgNy4wMDMgMCAwIDAgMTkgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDRDOCA0IDQuNSA2IDQgOGMtLjI0My45Ny0uOTE5IDEuOTUyLTIgMyAxLjMxLS4wODIgMS45NzItLjI5IDMtMSAuNTQuOTIuOTgyIDEuMzU2IDIgMiAxLjQ1Mi0uNjQ3IDEuOTU0LTEuMDk4IDIuNS0yIC41OTUuOTk1IDEuMTUxIDEuNDI3IDIuNSAyIDEuMzEtLjYyMSAxLjg2Mi0xLjA1OCAyLjUtMiAuNjI5Ljk3NyAxLjE2MiAxLjQyMyAyLjUgMiAxLjIwOS0uNTQ4IDEuNjgtLjk2NyAyLTIgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTRaIn1dXX0pO3ZhciB6dSxQTmU9ZigoKT0+e3p1PVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6In1dXX0pO3ZhciBqSSxFTmU9ZigoKT0+e2pJPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgQ3UsSU5lPWYoKCk9PntDdT1bWyJwYXRoIix7ZDoiTTEwIDE1VjkifV0sWyJwYXRoIix7ZDoiTTE0IDE1VjkifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXX0pO3ZhciBVSSxOTmU9ZigoKT0+e1VJPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIF91LFJOZT1mKCgpPT57X3U9W1sicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIFdJLE9OZT1mKCgpPT57V0k9W1sicGF0aCIse2Q6Ik0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEifV1dfSk7dmFyIEdJLEZOZT1mKCgpPT57R0k9W1sicGF0aCIse2Q6Ik0zIDNoNmw2IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE0IDNoNyJ9XV19KTt2YXIgWUksQk5lPWYoKCk9PntZST1bWyJwYXRoIix7ZDoiTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUifV0sWyJwYXRoIix7ZDoiTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIEtJLEhOZT1mKCgpPT57S0k9W1sicGF0aCIse2Q6Ik0xMiAxMlY0YTEgMSAwIDAgMSAxLTFoNi4yOTdhMSAxIDAgMCAxIC42NTEgMS43NTlsLTQuNjk2IDQuMDI1In1dLFsicGF0aCIse2Q6Im0xMiAyMS03LjQxNC03LjQxNEEyIDIgMCAwIDEgNCAxMi4xNzJWNi40MTVhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN0wyMCAyMC4wMDkifV0sWyJwYXRoIix7ZDoibTEyLjIxNCAzLjM4MSA4LjQxNCAxNC45NjZhMSAxIDAgMCAxLS4xNjcgMS4xOTlsLTEuMTY4IDEuMTYzYTEgMSAwIDAgMS0uNzA2LjI5MUg2LjM1MWExIDEgMCAwIDEtLjYyNS0uMjE5TDMuMjUgMTguOGExIDEgMCAwIDEgLjYzMS0xLjc4MWw0LjE2NS4wMjcifV1dfSk7dmFyIFpJLHFOZT1mKCgpPT57Wkk9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJwYXRoIix7ZDoiTTE2Ljc2IDNhMiAyIDAgMCAxIDEuOCAxLjFsMi4yMyA0LjQ3OWEyIDIgMCAwIDEgLjIxLjg5MVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY5LjQ3MmEyIDIgMCAwIDEgLjIxMS0uODk0TDUuNDUgNC4xQTIgMiAwIDAgMSA3LjI0IDN6In1dLFsicGF0aCIse2Q6Ik0zLjA1NCA5LjAxM2gxNy44OTMifV1dfSk7dmFyIFhJLFZOZT1mKCgpPT57WEk9W1sicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTcgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMTI3VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43MjlsNyA0YTIgMiAwIDAgMCAyIC4wMDFsMS4zMi0uNzUzIn1dLFsicGF0aCIse2Q6Ik0zLjI5IDcgMTIgMTJsOC43MS01In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA4Ljk5NyA1LjE0OCJ9XV19KTt2YXIgUUksak5lPWYoKCk9PntRST1bWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBKSSxVTmU9ZigoKT0+e0pJPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTkifV0sWyJwYXRoIix7ZDoiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6In1dXX0pO3ZhciBlTixXTmU9ZigoKT0+e2VOPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE0djYifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjUzNVY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciB0TixHTmU9ZigoKT0+e3ROPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTIwLjI3IDE4LjI3IDIyIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxMC40OThWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuOTgtLjU1OSJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjE2LjUiLHI6IjIuNSJ9XV19KTt2YXIgYU4sWU5lPWYoKCk9PnthTj1bWyJwYXRoIix7ZDoiTTExIDIxLjczYTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzN6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dXX0pO3ZhciByTixLTmU9ZigoKT0+e3JOPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoibTE2LjUgMTQuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE2LjUgMTkuNSA1LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjVWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuMTMtLjA3NCJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV1dfSk7dmFyIHNOLFpOZT1mKCgpPT57c049W1sicGF0aCIse2Q6Ik0xMSA3IDYgMiJ9XSxbInBhdGgiLHtkOiJNMTguOTkyIDEySDIuMDQxIn1dLFsicGF0aCIse2Q6Ik0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSJ9XSxbInBhdGgiLHtkOiJtOC41IDQuNSAyLjE0OC0yLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDcuMjk2IDcuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTcuNTkyIDcuNTkyYTMuNjE1IDMuNjE1IDAgMCAxLTUuMTEyIDBsLTMuODg4LTMuODg4YTMuNjE1IDMuNjE1IDAgMCAxIDAtNS4xMTJMNS42NyA3LjMzIn1dXX0pO3ZhciBpTixYTmU9ZigoKT0+e2lOPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDE2di0yYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI2Iix4OiI4Iix5OiIxNiIscng6IjEifV1dfSk7dmFyIFR1LFFOZT1mKCgpPT57VHU9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjlINlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xIn1dXX0pO3ZhciBvTixKTmU9ZigoKT0+e29OPVtbInBhdGgiLHtkOiJtMTQuNjIyIDE3Ljg5Ny0xMC42OC0yLjkxMyJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweiJ9XSxbInBhdGgiLHtkOiJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUifV1dfSk7dmFyIG5OLGVSZT1mKCgpPT57bk49W1sicGF0aCIse2Q6Ik0xMiAyMmExIDEgMCAwIDEgMC0yMCAxMCA5IDAgMCAxIDEwIDkgNSA1IDAgMCAxLTUgNWgtMi4yNWExLjc1IDEuNzUgMCAwIDAtMS40IDIuOGwuMy40YTEuNzUgMS43NSAwIDAgMS0xLjQgMi44eiJ9XSxbImNpcmNsZSIse2N4OiIxMy41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiOC41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBsTix0UmU9ZigoKT0+e2xOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Im0xNSA4LTMgMy0zLTMifV1dfSk7dmFyIGNOLGFSZT1mKCgpPT57Y049W1sicGF0aCIse2Q6Ik0xMS4yNSAxNy4yNWgxLjVMMTIgMTh6In1dLFsicGF0aCIse2Q6Im0xNSAxMiAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDYuNWEuNS41IDAgMCAwLS41LS41In1dLFsicGF0aCIse2Q6Ik0yMC42OSA5LjY3YTQuNSA0LjUgMCAxIDAtNy4wNC01LjUgOC4zNSA4LjM1IDAgMCAwLTMuMyAwIDQuNSA0LjUgMCAxIDAtNy4wNCA1LjVDMi40OSAxMS4yIDIgMTIuODggMiAxNC41IDIgMTkuNDcgNi40OCAyMiAxMiAyMnMxMC0yLjUzIDEwLTcuNWMwLTEuNjItLjQ4LTMuMy0xLjMtNC44MyJ9XSxbInBhdGgiLHtkOiJNNiA2LjVhLjQ5NS40OTUgMCAwIDEgLjUtLjUifV0sWyJwYXRoIix7ZDoibTkgMTItMiAyIn1dXX0pO3ZhciBMdSxyUmU9ZigoKT0+e0x1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XV19KTt2YXIgZE4sc1JlPWYoKCk9PntkTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciB1TixpUmU9ZigoKT0+e3VOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXX0pO3ZhciAkdSxvUmU9ZigoKT0+eyR1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE1LTMtMyAzLTMifV1dfSk7dmFyIER1LG5SZT1mKCgpPT57RHU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTR2MSJ9XSxbInBhdGgiLHtkOiJNOSAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDN2MiJ9XSxbInBhdGgiLHtkOiJNOSA5djEifV1dfSk7dmFyIEF1LGxSZT1mKCgpPT57QXU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTQgOSAzIDMtMyAzIn1dXX0pO3ZhciBwTixjUmU9ZigoKT0+e3BOPVtbInBhdGgiLHtkOiJNMTUgMTBWOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xNSA1VjMifV0sWyJwYXRoIix7ZDoiTTkgMTBWOSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNOSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNOSA1VjMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgUHUsZFJlPWYoKCk9PntQdT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dXX0pO3ZhciBmTix1UmU9ZigoKT0+e2ZOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im04IDkgMyAzLTMgMyJ9XV19KTt2YXIgRXUscFJlPWYoKCk9PntFdT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTUgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNSA5djEifV1dfSk7dmFyIGhOLGZSZT1mKCgpPT57aE49W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV1dfSk7dmFyIG1OLGhSZT1mKCgpPT57bU49W1sicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTE5IDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBnTixtUmU9ZigoKT0+e2dOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXX0pO3ZhciBiTixnUmU9ZigoKT0+e2JOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zIDMgMyJ9XV19KTt2YXIgSXUsYlJlPWYoKCk9PntJdT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgOWgyIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XV19KTt2YXIgdk4sdlJlPWYoKCk9Pnt2Tj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im0xNSAxNC0zIDMtMy0zIn1dXX0pO3ZhciB4Tix4UmU9ZigoKT0+e3hOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV1dfSk7dmFyIHlOLHlSZT1mKCgpPT57eU49W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxMiJ9XV19KTt2YXIgd04sd1JlPWYoKCk9Pnt3Tj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgTnUsTVJlPWYoKCk9PntOdT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik05IDIxVjkifV1dfSk7dmFyIE1OLGtSZT1mKCgpPT57TU49W1sicGF0aCIse2Q6Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSJ9XV19KTt2YXIga04sU1JlPWYoKCk9PntrTj1bWyJwYXRoIix7ZDoiTTggMjFzLTQtMy00LTkgNC05IDQtOSJ9XSxbInBhdGgiLHtkOiJNMTYgM3M0IDMgNCA5LTQgOS00IDkifV1dfSk7dmFyIFNOLHpSZT1mKCgpPT57U049W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dfSk7dmFyIHpOLENSZT1mKCgpPT57ek49W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXX0pO3ZhciBDTixfUmU9ZigoKT0+e0NOPVtbInBhdGgiLHtkOiJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkifV0sWyJwYXRoIix7ZDoiTTQgM2guMDEifV0sWyJwYXRoIix7ZDoiTTIyIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCJ9XSxbInBhdGgiLHtkOiJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTcifV0sWyJwYXRoIix7ZDoibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjcifV0sWyJwYXRoIix7ZDoiTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloifV1dfSk7dmFyIF9OLFRSZT1mKCgpPT57X049W1siY2lyY2xlIix7Y3g6IjExIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWiJ9XV19KTt2YXIgVE4sTFJlPWYoKCk9PntUTj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDZoNiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBSdSwkUmU9ZigoKT0+e1J1PVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV19KTt2YXIgTE4sRFJlPWYoKCk9PntMTj1bWyJwYXRoIix7ZDoibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiJ9XSxbInBhdGgiLHtkOiJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgT3UsQVJlPWYoKCk9PntPdT1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyICROLFBSZT1mKCgpPT57JE49W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXX0pO3ZhciBETixFUmU9ZigoKT0+e0ROPVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIEFOLElSZT1mKCgpPT57QU49W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBQTixOUmU9ZigoKT0+e1BOPVtbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV1dfSk7dmFyIEVOLFJSZT1mKCgpPT57RU49W1sicGF0aCIse2Q6Ik0xMyA3IDguNyAyLjdhMi40MSAyLjQxIDAgMCAwLTMuNCAwTDIuNyA1LjNhMi40MSAyLjQxIDAgMCAwIDAgMy40TDcgMTMifV0sWyJwYXRoIix7ZDoibTggNiAyLTIifV0sWyJwYXRoIix7ZDoibTE4IDE2IDItMiJ9XSxbInBhdGgiLHtkOiJtMTcgMTEgNC4zIDQuM2MuOTQuOTQuOTQgMi40NiAwIDMuNGwtMi42IDIuNmMtLjk0Ljk0LTIuNDYuOTQtMy40IDBMMTEgMTcifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXX0pO3ZhciBJTixPUmU9ZigoKT0+e0lOPVtbInBhdGgiLHtkOiJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoifV1dfSk7dmFyIE5OLEZSZT1mKCgpPT57Tk49W1sibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiNi41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV19KTt2YXIgUk4sQlJlPWYoKCk9PntSTj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsicGF0aCIse2Q6Im05IDIwIDMtNiAzIDYifV0sWyJwYXRoIix7ZDoibTYgOCA2IDIgNi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY0In1dXX0pO3ZhciBPTixIUmU9ZigoKT0+e09OPVtbInBhdGgiLHtkOiJNMjAgMTFINCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcifV1dfSk7dmFyIEZOLHFSZT1mKCgpPT57Rk49W1sicGF0aCIse2Q6Ik0xMyAyYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTEzIDZhNSA1IDAgMCAxIDUgNSJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIEJOLFZSZT1mKCgpPT57Qk49W1sicGF0aCIse2Q6Ik0xNCA2aDgifV0sWyJwYXRoIix7ZDoibTE4IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIEhOLGpSZT1mKCgpPT57SE49W1sicGF0aCIse2Q6Ik0xNiAydjZoNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBxTixVUmU9ZigoKT0+e3FOPVtbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgVk4sV1JlPWYoKCk9PntWTj1bWyJwYXRoIix7ZDoiTTEwLjEgMTMuOWExNCAxNCAwIDAgMCAzLjczMiAyLjY2OCAxIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDIgMTggMTggMCAwIDEtMTIuNzI4LTUuMjcyIn1dLFsicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuNzYgMTMuNTgyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIC4yNDQuNDczIn1dXX0pO3ZhciBqTixHUmU9ZigoKT0+e2pOPVtbInBhdGgiLHtkOiJtMTYgOCA2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDhWMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFVOLFlSZT1mKCgpPT57VU49W1sibGluZSIse3gxOiI5Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNNCA3YzAtMS43IDEuMy0zIDMtM2gxMyJ9XSxbInBhdGgiLHtkOiJNMTggMjBjLTEuNyAwLTMtMS4zLTMtM1Y0In1dXX0pO3ZhciBXTixLUmU9ZigoKT0+e1dOPVtbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIEdOLFpSZT1mKCgpPT57R049W1sicGF0aCIse2Q6Ik0xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4In1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0IDE0djQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djQifV1dfSk7dmFyIFlOLFhSZT1mKCgpPT57WU49W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5In1dLFsicGF0aCIse2Q6Ik0xNS45NzMgNC4wMjdBMTMgMTMgMCAwIDAgNS45MDIgMi4zNzNjLTEuMzk4LjM0Mi0xLjA5MiAyLjE1OC4yNzcgMi42MDFhMTkuOSAxOS45IDAgMCAxIDUuODIyIDMuMDI0In1dLFsicGF0aCIse2Q6Ik0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5In1dLFsicGF0aCIse2Q6Ik0xOC4zNTIgMy4zNTJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMGwtNS4yOTYgNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDUuMjk2LTUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDR6In1dXX0pO3ZhciBLTixRUmU9ZigoKT0+e0tOPVtbInBhdGgiLHtkOiJNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNyIseDoiMTIiLHk6IjEzIixyeDoiMiJ9XV19KTt2YXIgWk4sSlJlPWYoKCk9PntaTj1bWyJwYXRoIix7ZDoiTTIgMTBoNlY0In1dLFsicGF0aCIse2Q6Im0yIDQgNiA2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY3YTIgMiAwIDAgMC0yLTJoLTcifV0sWyJwYXRoIix7ZDoiTTMgMTR2MmEyIDIgMCAwIDAgMiAyaDMifV0sWyJyZWN0Iix7eDoiMTIiLHk6IjE0Iix3aWR0aDoiMTAiLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIFhOLGVPZT1mKCgpPT57WE49W1sicGF0aCIse2Q6Ik0xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4djFhMiAyIDAgMCAwIDIgMmgxIn1dXX0pO3ZhciBRTix0T2U9ZigoKT0+e1FOPVtbInBhdGgiLHtkOiJNMTQgM3YxMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgtM2EzIDMgMCAwIDEgMC02aDkifV0sWyJwYXRoIix7ZDoiTTE4IDN2MTEifV0sWyJwYXRoIix7ZDoiTTIyIDE4SDJsNC00In1dLFsicGF0aCIse2Q6Im02IDIyLTQtNCJ9XV19KTt2YXIgSk4sYU9lPWYoKCk9PntKTj1bWyJwYXRoIix7ZDoiTTEwIDN2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDlIN2ExIDEgMCAwIDEgMC02aDgifV0sWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoibTE4IDE0IDQgNEgyIn1dLFsicGF0aCIse2Q6Im0yMiAxOC00IDQifV1dfSk7dmFyIGVSLHJPZT1mKCgpPT57ZVI9W1sicGF0aCIse2Q6Ik0xMyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMyJ9XV19KTt2YXIgdFIsc09lPWYoKCk9Pnt0Uj1bWyJwYXRoIix7ZDoiTTE4IDExaC00YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTYgN3YxM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY3In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI1Iix4OiI0Iix5OiIyIixyeDoiMSJ9XV19KTt2YXIgYVIsaU9lPWYoKCk9PnthUj1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSJ9XV19KTt2YXIgclIsb09lPWYoKCk9PntyUj1bWyJwYXRoIix7ZDoibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA3IDcifV1dfSk7dmFyIHNSLG5PZT1mKCgpPT57c1I9W1sicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik05IDEwLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDQgMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIGlSLGxPZT1mKCgpPT57aVI9W1sicGF0aCIse2Q6Im0xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTIifV0sWyJwYXRoIix7ZDoibTE4IDkgLjQuNGExIDEgMCAxIDEtMyAzbC0zLjgtMy44YTEgMSAwIDEgMSAzLTNsLjQuNCAzLjQtMy40YTEgMSAwIDEgMSAzIDN6In1dLFsicGF0aCIse2Q6Im0yIDIyIC40MTQtLjQxNCJ9XV19KTt2YXIgb1IsY09lPWYoKCk9PntvUj1bWyJwYXRoIix7ZDoibTEyIDE0LTEgMSJ9XSxbInBhdGgiLHtkOiJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIn1dLFsicGF0aCIse2Q6Ik0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIn1dLFsicGF0aCIse2Q6Ik0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyJ9XSxbInBhdGgiLHtkOiJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6In1dXX0pO3ZhciBuUixkT2U9ZigoKT0+e25SPVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFoifV1dfSk7dmFyIGxSLHVPZT1mKCgpPT57bFI9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiJ9XV19KTt2YXIgY1IscE9lPWYoKCk9PntjUj1bWyJwYXRoIix7ZDoiTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnoifV1dfSk7dmFyIGRSLGZPZT1mKCgpPT57ZFI9W1sicGF0aCIse2Q6Ik01IDVhMiAyIDAgMCAxIDMuMDA4LTEuNzI4bDExLjk5NyA2Ljk5OGEyIDIgMCAwIDEgLjAwMyAzLjQ1OGwtMTIgN0EyIDIgMCAwIDEgNSAxOXoifV1dfSk7dmFyIHVSLGhPZT1mKCgpPT57dVI9W1sicGF0aCIse2Q6Ik05IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMnY2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiJ9XV19KTt2YXIgRnUsbU9lPWYoKCk9PntGdT1bWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNy41IDEzLjUgMTAgMTEifV0sWyJwYXRoIix7ZDoiTTEwLjUgMTYuNSAxMyAxNCJ9XSxbInBhdGgiLHtkOiJtMTggMy00IDRoNmwtNCA0In1dXX0pO3ZhciBwUixnT2U9ZigoKT0+e3BSPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE1IDhWMiJ9XSxbInBhdGgiLHtkOiJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgOFYyIn1dXX0pO3ZhciBmUixiT2U9ZigoKT0+e2ZSPVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XV19KTt2YXIgaFIsdk9lPWYoKCk9PntoUj1bWyJwYXRoIix7ZDoiTTMgMnYxYzAgMSAyIDEgMiAyUzMgNiAzIDdzMiAxIDIgMi0yIDEtMiAyIDIgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAuODMgOC44M2E0IDQgMCAwIDAtNS42Ni01LjY2bC0xMiAxMmE0IDQgMCAxIDAgNS42NiA1LjY2WiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNjZWMjJhNCA0IDAgMCAwIDQtNFY2In1dXX0pO3ZhciBtUix4T2U9ZigoKT0+e21SPVtbInBhdGgiLHtkOiJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNGE1IDUgMCAxIDEgOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgZ1IseU9lPWYoKCk9PntnUj1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBiUix3T2U9ZigoKT0+e2JSPVtbInBhdGgiLHtkOiJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTcifV0sWyJwYXRoIix7ZDoiTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1In1dLFsicGF0aCIse2Q6Ik0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgifV0sWyJwYXRoIix7ZDoibTcgMTUtMS44LTEuOGEyIDIgMCAwIDAtMi43OSAyLjg2TDYgMTkuN2E3Ljc0IDcuNzQgMCAwIDAgNiAyLjNoMmE4IDggMCAwIDAgNS42NTctMi4zNDMifV0sWyJwYXRoIix7ZDoiTTYgNnY4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIHZSLE1PZT1mKCgpPT57dlI9W1sicGF0aCIse2Q6Ik0xOCA4YTIgMiAwIDAgMCAwLTQgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwIDAgNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjIgOSA4In1dLFsicGF0aCIse2Q6Im0xNCAyMiAxLTE0In1dLFsicGF0aCIse2Q6Ik0yMCA4Yy41IDAgLjkuNC44IDFsLTIuNiAxMmMtLjEuNS0uNyAxLTEuMiAxSDdjLS42IDAtMS4xLS40LTEuMi0xTDMuMiA5Yy0uMS0uNi4zLTEgLjgtMVoifV1dfSk7dmFyIHhSLGtPZT1mKCgpPT57eFI9W1sicGF0aCIse2Q6Ik0xOC42IDE0LjRjLjgtLjguOC0yIDAtMi44bC04LjEtOC4xYTQuOTUgNC45NSAwIDEgMC03LjEgNy4xbDguMSA4LjFjLjkuNyAyLjEuNyAyLjktLjFaIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LjUtNS41In1dXX0pO3ZhciB5UixTT2U9ZigoKT0+e3lSPVtbInBhdGgiLHtkOiJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djE0In1dLFsicGF0aCIse2Q6Ik02IDIxaDEyIn1dLFsicGF0aCIse2Q6Ik02IDEzaDEwIn1dXX0pO3ZhciB3Uix6T2U9ZigoKT0+e3dSPVtbInBhdGgiLHtkOiJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUifV0sWyJwYXRoIix7ZDoiTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBNUixDT2U9ZigoKT0+e01SPVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0In1dXX0pO3ZhciBrUixfT2U9ZigoKT0+e2tSPVtbInBhdGgiLHtkOiJNMiAzaDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoibTcgMjEgNS01IDUgNSJ9XV19KTt2YXIgU1IsVE9lPWYoKCk9PntTUj1bWyJwYXRoIix7ZDoiTTEyLjUzMSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWg2LjM3NyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxNi41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTYuNSAyMS41IDUtNSJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEuNSJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dfSk7dmFyIHpSLExPZT1mKCgpPT57elI9W1sicGF0aCIse2Q6Ik0xMy41IDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2LjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XV19KTt2YXIgQ1IsJE9lPWYoKCk9PntDUj1bWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dLFsicmVjdCIse3g6IjYiLHk6IjE0Iix3aWR0aDoiMTIiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIF9SLERPZT1mKCgpPT57X1I9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDl2MTEifV0sWyJwYXRoIix7ZDoiTTIgOWgxM2EyIDIgMCAwIDEgMiAydjkifV1dfSk7dmFyIFRSLEFPZT1mKCgpPT57VFI9W1sicGF0aCIse2Q6Ik0xNS4zOSA0LjM5YTEgMSAwIDAgMCAxLjY4LS40NzQgMi41IDIuNSAwIDEgMSAzLjAxNCAzLjAxNSAxIDEgMCAwIDAtLjQ3NCAxLjY4bDEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDAgMy40MTRMMTkuNjEgMTUuMzlhMSAxIDAgMCAxLTEuNjgtLjQ3NCAyLjUgMi41IDAgMSAwLTMuMDE0IDMuMDE1IDEgMSAwIDAgMSAuNDc0IDEuNjhsLTEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxLTMuNDE0IDBMOC42MSAxOS42MWExIDEgMCAwIDAtMS42OC40NzQgMi41IDIuNSAwIDEgMS0zLjAxNC0zLjAxNSAxIDEgMCAwIDAgLjQ3NC0xLjY4bC0xLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwLTMuNDE0TDQuMzkgOC42MWExIDEgMCAwIDEgMS42OC40NzQgMi41IDIuNSAwIDEgMCAzLjAxNC0zLjAxNSAxIDEgMCAwIDEtLjQ3NC0xLjY4bDEuNjgzLTEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDMuNDE0IDB6In1dXX0pO3ZhciBMUixQT2U9ZigoKT0+e0xSPVtbInBhdGgiLHtkOiJNNSA3IDMgNSJ9XSxbInBhdGgiLHtkOiJNOSA2VjMifV0sWyJwYXRoIix7ZDoibTEzIDcgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMyIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTEuODMgMTJIMjBhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMi4xNyJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoMiJ9XV19KTt2YXIgJFIsRU9lPWYoKCk9PnskUj1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dfSk7dmFyIERSLElPZT1mKCgpPT57RFI9W1sicGF0aCIse2Q6Ik0xNiAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XV19KTt2YXIgQVIsTk9lPWYoKCk9PntBUj1bWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMTYiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTNhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSAyMXYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDd2M2EyIDIgMCAwIDEtMiAySDcifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi0xIn1dXX0pO3ZhciBQUixST2U9ZigoKT0+e1BSPVtbInBhdGgiLHtkOiJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQifV0sWyJwYXRoIix7ZDoiTTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1In1dLFsicGF0aCIse2Q6Ik0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3In1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0xMy40MSAxMC41OSA1LjY2LTUuNjYifV1dfSk7dmFyIEVSLE9PZT1mKCgpPT57RVI9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMi4yNCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDIxaC04YTQgNCAwIDAgMS00LTQgNyA3IDAgMCAxIDctN2guMkw5LjYgNi40YTEgMSAwIDEgMSAyLjgtMi44TDE1LjggN2guMmMzLjMgMCA2IDIuNyA2IDZ2MWEyIDIgMCAwIDEtMiAyaC0xYTMgMyAwIDAgMC0zIDMifV0sWyJwYXRoIix7ZDoiTTIwIDguNTRWNGEyIDIgMCAxIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTcuNjEyIDEyLjUyNGEzIDMgMCAxIDAtMS42IDQuMyJ9XV19KTt2YXIgSVIsRk9lPWYoKCk9PntJUj1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXX0pO3ZhciBOUixCT2U9ZigoKT0+e05SPVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV19KTt2YXIgUlIsSE9lPWYoKCk9PntSUj1bWyJwYXRoIix7ZDoiTTEzLjQxNCAxMy40MTRhMiAyIDAgMSAxLTIuODI4LTIuODI4In1dLFsicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDEuNzQ0IDQuNTcyIn1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMi4yMzQgMTAuNzIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV1dfSk7dmFyIE9SLHFPZT1mKCgpPT57T1I9W1sicGF0aCIse2Q6Ik01IDE2djIifV0sWyJwYXRoIix7ZDoiTTE5IDE2djIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIEZSLFZPZT1mKCgpPT57RlI9W1sicGF0aCIse2Q6Ik00LjkgMTYuMUMxIDEyLjIgMSA1LjggNC45IDEuOSJ9XSxbInBhdGgiLHtkOiJNNy44IDQuN2E2LjE0IDYuMTQgMCAwIDAtLjggNy41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTYuMiA0LjhjMiAyIDIuMjYgNS4xMS44IDcuNDcifV0sWyJwYXRoIix7ZDoiTTE5LjEgMS45YTkuOTYgOS45NiAwIDAgMSAwIDE0LjEifV0sWyJwYXRoIix7ZDoiTTkuNSAxOGg1In1dLFsicGF0aCIse2Q6Im04IDIyIDQtMTEgNCAxMSJ9XV19KTt2YXIgQlIsak9lPWYoKCk9PntCUj1bWyJwYXRoIix7ZDoiTTE2LjI0NyA3Ljc2MWE2IDYgMCAwIDEgMCA4LjQ3OCJ9XSxbInBhdGgiLHtkOiJNMTkuMDc1IDQuOTMzYTEwIDEwIDAgMCAxIDAgMTQuMTM0In1dLFsicGF0aCIse2Q6Ik00LjkyNSAxOS4wNjdhMTAgMTAgMCAwIDEgMC0xNC4xMzQifV0sWyJwYXRoIix7ZDoiTTcuNzUzIDE2LjIzOWE2IDYgMCAwIDEgMC04LjQ3OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBIUixVT2U9ZigoKT0+e0hSPVtbInBhdGgiLHtkOiJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEzLjQxIDQuMTggNC4xOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBxUixXT2U9ZigoKT0+e3FSPVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgVlIsR09lPWYoKCk9PntWUj1bWyJwYXRoIix7ZDoiTTEzIDIySDRhMiAyIDAgMCAxIDAtNGgxMiJ9XSxbInBhdGgiLHtkOiJNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE2LjgyIDMuOTRhMyAzIDAgMSAxIDMuMjM3IDQuODY4bDEuODE1IDIuNTg3YTEuNSAxLjUgMCAwIDEtMS41IDIuMWwtMi44NzItLjQ1M2EzIDMgMCAwIDAtMy41IDMifV0sWyJwYXRoIix7ZDoiTTE3IDQuOTg4YTMgMyAwIDEgMC01LjIgMi4wNTJBNyA3IDAgMCAwIDQgMTQuMDE1IDQgNCAwIDAgMCA4IDE4In1dXX0pO3ZhciBqUixZT2U9ZigoKT0+e2pSPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIFVSLEtPZT1mKCgpPT57VVI9W1sicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MjggMTQuODI5YTQgNCAwIDAgMS01LjY1NiAwIDQgNCAwIDAgMSAwLTUuNjU3IDQgNCAwIDAgMSA1LjY1NiAwIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBXUixaT2U9ZigoKT0+e1dSPVtbInBhdGgiLHtkOiJNMTUuODI4IDE0LjgyOWE0IDQgMCAwIDEtNS42NTYgMCA0IDQgMCAwIDEgMC01LjY1NyA0IDQgMCAwIDEgNS42NTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg1In1dXX0pO3ZhciBHUixYT2U9ZigoKT0+e0dSPVtbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNOSA3YTQgNCAwIDAgMSAwIDhIOGwzIDIifV1dfSk7dmFyIFlSLFFPZT1mKCgpPT57WVI9W1sicGF0aCIse2Q6Ik0xMCAxN1Y5LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxM2g1In1dLFsicGF0aCIse2Q6Ik04IDE3aDcifV1dfSk7dmFyIEtSLEpPZT1mKCgpPT57S1I9W1sicGF0aCIse2Q6Im0xMiAxMCAzLTMifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcifV1dfSk7dmFyIFpSLGVGZT1mKCgpPT57WlI9W1sicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMCAwIDAtNGgtM3YxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXX0pO3ZhciBYUix0RmU9ZigoKT0+e1hSPVtbInBhdGgiLHtkOiJNMTMgMTZIOCJ9XSxbInBhdGgiLHtkOiJNMTQgOEg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBRUixhRmU9ZigoKT0+e1FSPVtbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWN2g1In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDE1aDUifV1dfSk7dmFyIEpSLHJGZT1mKCgpPT57SlI9W1sicGF0aCIse2Q6Ik0xMiAxN1Y3In1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDAgMCAwIDRoNGEyIDIgMCAwIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIGVPLHNGZT1mKCgpPT57ZU89W1sicGF0aCIse2Q6Ik0xMCA3djEwYTUgNSAwIDAgMCA1LTUifV0sWyJwYXRoIix7ZDoibTE0IDgtNiAzIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciB0TyxpRmU9ZigoKT0+e3RPPVtbInBhdGgiLHtkOiJNMTQgNHYxNkgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xeiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjEyIixyOiI4In1dXX0pO3ZhciBCdSxvRmU9ZigoKT0+e0J1PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIGFPLG5GZT1mKCgpPT57YU89W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgck8sbEZlPWYoKCk9PntyTz1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgc08sY0ZlPWYoKCk9PntzTz1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgaU8sZEZlPWYoKCk9PntpTz1bWyJwYXRoIix7ZDoiTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTloOC4yMDNhMS44MyAxLjgzIDAgMCAwIDEuNTU2LS44OSAxLjc4NCAxLjc4NCAwIDAgMCAwLTEuNzc1bC0xLjIyNi0yLjEyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik04LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgifV0sWyJwYXRoIix7ZDoibTkuMzQ0IDUuODExIDEuMDkzLTEuODkyQTEuODMgMS44MyAwIDAgMSAxMS45ODUgM2ExLjc4NCAxLjc4NCAwIDAgMSAxLjU0Ni44ODhsMy45NDMgNi44NDMifV0sWyJwYXRoIix7ZDoibTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NiJ9XV19KTt2YXIgb08sdUZlPWYoKCk9PntvTz1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzIn1dXX0pO3ZhciBuTyxwRmU9ZigoKT0+e25PPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIGxPLGZGZT1mKCgpPT57bE89W1sicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIGNPLGhGZT1mKCgpPT57Y089W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIGRPLG1GZT1mKCgpPT57ZE89W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXX0pO3ZhciB1TyxnRmU9ZigoKT0+e3VPPVtbInBhdGgiLHtkOiJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDcifV0sWyJwYXRoIix7ZDoiTTggMTZIM3Y1In1dLFsicGF0aCIse2Q6Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0In1dLFsicGF0aCIse2Q6Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQifV0sWyJwYXRoIix7ZDoiTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dfSk7dmFyIHBPLGJGZT1mKCgpPT57cE89W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV19KTt2YXIgZk8sdkZlPWYoKCk9PntmTz1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXX0pO3ZhciBoTyx4RmU9ZigoKT0+e2hPPVtbInBhdGgiLHtkOiJNMTcgM3YxMCJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgNS41IDguNjYgNSJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgMTAuNSA4LjY2LTUifV0sWyJwYXRoIix7ZDoiTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoifV1dfSk7dmFyIG1PLHlGZT1mKCgpPT57bU89W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dfSk7dmFyIGdPLHdGZT1mKCgpPT57Z089W1sicGF0aCIse2Q6Im0yIDkgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTMgMThIN2EyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoiTTExIDZoNmEyIDIgMCAwIDEgMiAydjEwIn1dXX0pO3ZhciBiTyxNRmU9ZigoKT0+e2JPPVtbInBhdGgiLHtkOiJtMTcgMiA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQifV0sWyJwYXRoIix7ZDoibTcgMjItNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMifV0sWyJwYXRoIix7ZDoiTTExIDEwaDF2NCJ9XV19KTt2YXIgdk8sa0ZlPWYoKCk9Pnt2Tz1bWyJwYXRoIix7ZDoiTTExLjY1NiA2SDIxbC00LTQifV0sWyJwYXRoIix7ZDoiTTE3Ljg5OCAxNy44OThBNCA0IDAgMCAxIDE3IDE4SDNsNC00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLS4xNzEgMS4xNTkifV0sWyJwYXRoIix7ZDoibTIxIDYtNCA0In1dLFsicGF0aCIse2Q6Ik0zIDExdi0xYTQgNCAwIDAgMSAzLjEwMi0zLjg5OCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQifV1dfSk7dmFyIHhPLFNGZT1mKCgpPT57eE89W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XV19KTt2YXIgeU8sekZlPWYoKCk9Pnt5Tz1bWyJwYXRoIix7ZDoiTTE0IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0xNCA0YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE1IDEwYTEgMSAwIDAgMS0xLTEifV0sWyJwYXRoIix7ZDoiTTE5IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciB3TyxDRmU9ZigoKT0+e3dPPVtbInBhdGgiLHtkOiJNMTQgNGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGExIDEgMCAwIDEtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciBNTyxfRmU9ZigoKT0+e01PPVtbInBhdGgiLHtkOiJtMTIgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3In1dLFsicGF0aCIse2Q6Im03IDE3LTUtNSA1LTUifV1dfSk7dmFyIGtPLFRGZT1mKCgpPT57a089W1sicGF0aCIse2Q6Ik0yMCAxOHYtMmE0IDQgMCAwIDAtNC00SDQifV0sWyJwYXRoIix7ZDoibTkgMTctNS01IDUtNSJ9XV19KTt2YXIgU08sTEZlPWYoKCk9PntTTz1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dfSk7dmFyIHpPLCRGZT1mKCgpPT57ek89W1sicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMTIgMTh6In1dLFsicGF0aCIse2Q6Ik0yMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMjIgMTh6In1dXX0pO3ZhciBDTyxERmU9ZigoKT0+e0NPPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTIgNVYzIn1dLFsicGF0aCIse2Q6Ik0xMiA5djMifV0sWyJwYXRoIix7ZDoiTTIuMDc3IDE4LjQ0OUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjQtMi41NWwtNC0xNEEyIDIgMCAwIDAgMTYgM0g4YTIgMiAwIDAgMC0xLjkyNCAxLjQ1eiJ9XV19KTt2YXIgX08sQUZlPWYoKCk9PntfTz1bWyJwYXRoIix7ZDoiTTEyIDE1djVzMy4wMy0uNTUgNC0yYzEuMDgtMS42MiAwLTUgMC01In1dLFsicGF0aCIse2Q6Ik00LjUgMTYuNWMtMS41IDEuMjYtMiA1LTIgNXMzLjc0LS41IDUtMmMuNzEtLjg0LjctMi4xMy0uMDktMi45MWEyLjE4IDIuMTggMCAwIDAtMi45MS0uMDkifV0sWyJwYXRoIix7ZDoiTTkgMTJhMjIgMjIgMCAwIDEgMi0zLjk1QTEyLjg4IDEyLjg4IDAgMCAxIDIyIDJjMCAyLjcyLS43OCA3LjUtNiAxMWEyMi40IDIyLjQgMCAwIDEtNCAyeiJ9XSxbInBhdGgiLHtkOiJNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAuMDUgNSAuMDUifV1dfSk7dmFyIFRPLFBGZT1mKCgpPT57VE89W1sicGF0aCIse2Q6Im0xNSAxMyAzLjcwOCA3LjQxNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWExNSAxNSAwIDAgMCAxOCAwIn1dLFsicGF0aCIse2Q6Im0zIDIgMy4yMSA5LjYzM0EyIDIgMCAwIDAgOC4xMDkgMTNIMTgifV0sWyJwYXRoIix7ZDoibTkgMTMtMy43MDggNy40MTYifV1dfSk7dmFyIExPLEVGZT1mKCgpPT57TE89W1sicGF0aCIse2Q6Ik02IDE5VjUifV0sWyJwYXRoIix7ZDoiTTEwIDE5VjYuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTl2LTcuOCJ9XSxbInBhdGgiLHtkOiJNMTggNXY0In1dLFsicGF0aCIse2Q6Ik0xOCAxOXYtNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTlWOSJ9XSxbInBhdGgiLHtkOiJNMiAxOVY5YTQgNCAwIDAgMSA0LTRjMiAwIDQgMS4zMyA2IDRzNCA0IDYgNGE0IDQgMCAxIDAtMy02LjY1In1dXX0pO3ZhciAkTyxJRmU9ZigoKT0+eyRPPVtbInBhdGgiLHtkOiJNMTcgMTBoLTFhNCA0IDAgMSAxIDQtNHYuNTM0In1dLFsicGF0aCIse2Q6Ik0xNyA2aDFhNCA0IDAgMCAxIDEuNDIgNy43NGwtMi4yOS44N2E2IDYgMCAwIDEtNS4zMzktMTAuNjhsMi4wNjktMS4zMSJ9XSxbInBhdGgiLHtkOiJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIn1dLFsicGF0aCIse2Q6Ik05Ljc3IDEyQzQgMTUgMiAyMiAyIDIyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiOCIscjoiMiJ9XV19KTt2YXIgSHUsTkZlPWYoKCk9PntIdT1bWyJwYXRoIix7ZDoibTE1LjE5NCAxMy43MDcgMy44MTQgMS44Ni0xLjg2IDMuODE0In1dLFsicGF0aCIse2Q6Ik0xNi40NzIxNCA3LjUyNzg2IEEgNSAxMCAwIDEgMCAxMyAyMS43OTc5NiJ9XSxbInBhdGgiLHtkOiJNMjEuNzk3OTYgMTEgQSAxMCA1IDAgMSAwIDE5IDE1LjU3MDcxIn1dXX0pO3ZhciBETyxSRmU9ZigoKT0+e0RPPVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xMiA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc0IDkuNzQgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciBBTyxPRmU9ZigoKT0+e0FPPVtbInBhdGgiLHtkOiJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiJ9XV19KTt2YXIgUE8sRkZlPWYoKCk9PntQTz1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XV19KTt2YXIgRU8sQkZlPWYoKCk9PntFTz1bWyJwYXRoIix7ZDoiTTEyIDVINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoibTkgOCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik00IDE0djRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XV19KTt2YXIgSU8sSEZlPWYoKCk9PntJTz1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dXX0pO3ZhciBOTyxxRmU9ZigoKT0+e05PPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIn1dLFsicGF0aCIse2Q6Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyJ9XSxbInBhdGgiLHtkOiJNMTUgNWgtNC4zIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgUk8sVkZlPWYoKCk9PntSTz1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE5IixyOiIzIn1dLFsicGF0aCIse2Q6Ik05IDE5aDguNWEzLjUgMy41IDAgMCAwIDAtN2gtMTFhMy41IDMuNSAwIDAgMSAwLTdIMTUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciBPTyxqRmU9ZigoKT0+e09PPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02LjAxIDE4SDYifV0sWyJwYXRoIix7ZDoiTTEwLjAxIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAifV0sWyJwYXRoIix7ZDoiTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAifV1dfSk7dmFyIHF1LFVGZT1mKCgpPT57cXU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV1dfSk7dmFyIFZ1LFdGZT1mKCgpPT57VnU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVIMyJ9XV19KTt2YXIgRk8sR0ZlPWYoKCk9PntGTz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgNy41SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2LjVIMyJ9XV19KTt2YXIgQk8sWUZlPWYoKCk9PntCTz1bWyJwYXRoIix7ZDoiTTQgMTFhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgSE8sS0ZlPWYoKCk9PntITz1bWyJwYXRoIix7ZDoiTTEwIDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xNCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2LTMifV0sWyJwYXRoIix7ZDoiTTIgOFY0In1dLFsicGF0aCIse2Q6Ik0yMiA2SDIifV0sWyJwYXRoIix7ZDoiTTIyIDhWNCJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMyJ9XSxbInJlY3QiLHt4OiIyIix5OiIxMiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIyIn1dXX0pO3ZhciBxTyxaRmU9ZigoKT0+e3FPPVtbInBhdGgiLHtkOiJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNSAyLTIifV0sWyJwYXRoIix7ZDoibTExLjUgOS41IDItMiJ9XSxbInBhdGgiLHtkOiJtOC41IDYuNSAyLTIifV0sWyJwYXRoIix7ZDoibTE3LjUgMTUuNSAyLTIifV1dfSk7dmFyIFZPLFhGZT1mKCgpPT57Vk89W1sicGF0aCIse2Q6Ik02IDExaDhhNCA0IDAgMCAwIDAtOEg5djE4In1dLFsicGF0aCIse2Q6Ik02IDE1aDgifV1dfSk7dmFyIGpPLFFGZT1mKCgpPT57ak89W1sicGF0aCIse2Q6Ik0xMCAydjE1In1dLFsicGF0aCIse2Q6Ik03IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6In1dLFsicGF0aCIse2Q6Ik05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6In1dXX0pO3ZhciBVTyxKRmU9ZigoKT0+e1VPPVtbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIn1dLFsicGF0aCIse2Q6Ik0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNC00In1dLFsicGF0aCIse2Q6Ik0xMC45IDcuMjVBMy45OSAzLjk5IDAgMCAwIDQgMTBjMCAuNzMuMiAxLjQxLjU0IDIifV1dfSk7dmFyIFdPLGVCZT1mKCgpPT57V089W1sicGF0aCIse2Q6Im0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUifV0sWyJwYXRoIix7ZDoiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSJ9XSxbInBhdGgiLHtkOiJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI0Iix4OiIyIix5OiIxMSIscng6IjEifV1dfSk7dmFyIEdPLHRCZT1mKCgpPT57R089W1sicGF0aCIse2Q6Im0xMy41IDYuNS0zLjE0OC0zLjE0OGExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDYuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRMOS41IDEwLjUifV0sWyJwYXRoIix7ZDoiTTE2LjUgNy41IDE5IDUifV0sWyJwYXRoIix7ZDoibTE3LjUgMTAuNSAzLjE0OCAzLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0yLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMS0xLjcwNCAwTDEzLjUgMTQuNSJ9XSxbInBhdGgiLHtkOiJNOSAyMWE2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik05LjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDQuMjk2LTQuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDRsLTIuMjk2LTIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDB6In1dXX0pO3ZhciBZTyxhQmU9ZigoKT0+e1lPPVtbInBhdGgiLHtkOiJNNCAxMGE3LjMxIDcuMzEgMCAwIDAgMTAgMTBaIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTNhNiA2IDAgMCAwLTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTNBMTAgMTAgMCAwIDAgMTEgMyJ9XV19KTt2YXIgS08sckJlPWYoKCk9PntLTz1bWyJwYXRoIix7ZDoibTIwIDE5LjUtNS41IDEuMiJ9XSxbInBhdGgiLHtkOiJNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yIn1dLFsicGF0aCIse2Q6Im0yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwIDQgMTMuNSJ9XV19KTt2YXIgWk8sc0JlPWYoKCk9PntaTz1bWyJwYXRoIix7ZDoiTTEzIDEzSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik0xNCA4aDEifV0sWyJwYXRoIix7ZDoiTTE3IDIxdi00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxIDIwLjQxQTIgMiAwIDAgMSAxOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgLjU5LTEuNDEifV0sWyJwYXRoIix7ZDoiTTI5LjUgMTEuNXM1IDUgNCA1In1dLFsicGF0aCIse2Q6Ik05IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUifV1dfSk7dmFyIFhPLGlCZT1mKCgpPT57WE89W1sicGF0aCIse2Q6Ik0xMCAydjNhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xOCAxOHYtNmExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMC0xIDF2NiJ9XSxbInBhdGgiLHtkOiJNMTggMjJINGEyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoiTTggMThhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOS4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NmwyLjgyOCAyLjgyOEEyIDIgMCAwIDEgMjIgNi44MjhWMTZhMiAyIDAgMCAxLTIuMDEgMnoifV1dfSk7dmFyIFFPLG9CZT1mKCgpPT57UU89W1sicGF0aCIse2Q6Ik0xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik03IDN2NGExIDEgMCAwIDAgMSAxaDcifV1dfSk7dmFyIGp1LG5CZT1mKCgpPT57anU9W1sicGF0aCIse2Q6Ik01IDd2MTFhMSAxIDAgMCAwIDEgMWgxMSJ9XSxbInBhdGgiLHtkOiJNNS4yOTMgMTguNzA3IDExIDEzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjIifV1dfSk7dmFyIEpPLGxCZT1mKCgpPT57Sk89W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Im0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEifV0sWyJwYXRoIix7ZDoibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XV19KTt2YXIgZUYsY0JlPWYoKCk9PntlRj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNyA3djEwIn1dXX0pO3ZhciB0RixkQmU9ZigoKT0+e3RGPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xNCAxNUg5di01In1dLFsicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMjEgMyA5IDE1In1dXX0pO3ZhciBhRix1QmU9ZigoKT0+e2FGPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgckYscEJlPWYoKCk9PntyRj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV1dfSk7dmFyIHNGLGZCZT1mKCgpPT57c0Y9W1sicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNC4xNzIgNC4zMDZsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDQ5IDB6In1dXX0pO3ZhciBpRixoQmU9ZigoKT0+e2lGPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dXX0pO3ZhciBvRixtQmU9ZigoKT0+e29GPVtbInBhdGgiLHtkOiJNMTcgMTJ2NGExIDEgMCAwIDEtMSAxaC00In1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyA4VjcifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiNyIseToiNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dfSk7dmFyIG5GLGdCZT1mKCgpPT57bkY9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtMS45LTEuOSJ9XV19KTt2YXIgbEYsYkJlPWYoKCk9PntsRj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNyA4aDgifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoNiJ9XV19KTt2YXIgY0YsdkJlPWYoKCk9PntjRj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgZEYseEJlPWYoKCk9PntkRj1bWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggNC45MzNWMjEifV0sWyJwYXRoIix7ZDoibTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYifV0sWyJwYXRoIix7ZDoibTYgMTEtMy41MiAyLjE0N2ExIDEgMCAwIDAtLjQ4Ljg1NFYxOWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLS40OC0uODUzTDE4IDExIn1dLFsicGF0aCIse2Q6Ik02IDQuOTMzVjIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV19KTt2YXIgdUYseUJlPWYoKCk9Pnt1Rj1bWyJwYXRoIix7ZDoiTTUuNDIgOS40MiA4IDEyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA2LTguNTggOC41OCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEwLjggMTQuOCAxNCAxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBwRix3QmU9ZigoKT0+e3BGPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOC4xMiA4LjEyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMCA0IDguMTIgMTUuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNC44IDE0LjggMjAgMjAifV1dfSk7dmFyIGZGLE1CZT1mKCgpPT57ZkY9W1sicGF0aCIse2Q6Ik0yMSA0aC0zLjVsMiAxMS4wNSJ9XSxbInBhdGgiLHtkOiJNNi45NSAxN2g1LjE0MmMuNTIzIDAgLjk1LS40MDYgMS4wNjMtLjkxNmE2LjUgNi41IDAgMCAxIDUuMzQ1LTUuMDA5In1dLFsiY2lyY2xlIix7Y3g6IjE5LjUiLGN5OiIxNy41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiNC41IixjeToiMTcuNSIscjoiMi41In1dXX0pO3ZhciBoRixrQmU9ZigoKT0+e2hGPVtbInBhdGgiLHtkOiJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoibTIyIDMtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAzIDUgNSJ9XV19KTt2YXIgbUYsU0JlPWYoKCk9PnttRj1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dfSk7dmFyIGdGLHpCZT1mKCgpPT57Z0Y9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV19KTt2YXIgYkYsQ0JlPWYoKCk9PntiRj1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dfSk7dmFyIHZGLF9CZT1mKCgpPT57dkY9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXX0pO3ZhciB4RixUQmU9ZigoKT0+e3hGPVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dfSk7dmFyIHlGLExCZT1mKCgpPT57eUY9W1sicGF0aCIse2Q6Im0xMyAxMy41IDItMi41LTItMi41In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik05IDguNSA3IDExbDIgMi41In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV1dfSk7dmFyIHdGLCRCZT1mKCgpPT57d0Y9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgTUYsREJlPWYoKCk9PntNRj1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIga0YsQUJlPWYoKCk9PntrRj1bWyJwYXRoIix7ZDoibTIxIDIxLTQuMzQtNC4zNCJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXX0pO3ZhciBTRixQQmU9ZigoKT0+e1NGPVtbInBhdGgiLHtkOiJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIn1dXX0pO3ZhciBVdSxFQmU9ZigoKT0+e1V1PVtbInBhdGgiLHtkOiJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTYifV1dfSk7dmFyIHpGLElCZT1mKCgpPT57ekY9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIENGLE5CZT1mKCgpPT57Q0Y9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dfSk7dmFyIF9GLFJCZT1mKCgpPT57X0Y9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV19KTt2YXIgVEYsT0JlPWYoKCk9PntURj1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXX0pO3ZhciBMRixGQmU9ZigoKT0+e0xGPVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dfSk7dmFyICRGLEJCZT1mKCgpPT57JEY9W1sicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0xMyA2LTQgNmg2bC00IDYifV1dfSk7dmFyIERGLEhCZT1mKCgpPT57REY9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEFGLHFCZT1mKCgpPT57QUY9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV19KTt2YXIgUEYsVkJlPWYoKCk9PntQRj1bWyJwYXRoIix7ZDoiTTE0IDE3SDUifV0sWyJwYXRoIix7ZDoiTTE5IDdoLTkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiMyJ9XV19KTt2YXIgRUYsakJlPWYoKCk9PntFRj1bWyJwYXRoIix7ZDoiTTguMyAxMGEuNy43IDAgMCAxLS42MjYtMS4wNzlMMTEuNCAzYS43LjcgMCAwIDEgMS4xOTgtLjA0M0wxNi4zIDguOWEuNy43IDAgMCAxLS41NzIgMS4xWiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XV19KTt2YXIgSUYsVUJlPWYoKCk9PntJRj1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIE5GLFdCZT1mKCgpPT57TkY9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOSIscjoiMyJ9XSxbImxpbmUiLHt4MToiOC41OSIseDI6IjE1LjQyIix5MToiMTMuNTEiLHkyOiIxNy40OSJ9XSxbImxpbmUiLHt4MToiMTUuNDEiLHgyOiI4LjU5Iix5MToiNi41MSIseTI6IjEwLjQ5In1dXX0pO3ZhciBSRixHQmU9ZigoKT0+e1JGPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXX0pO3ZhciBPRixZQmU9ZigoKT0+e09GPVtbInBhdGgiLHtkOiJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQifV1dfSk7dmFyIEZGLEtCZT1mKCgpPT57RkY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIzIix4MjoiMjEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkiLHkxOiI5Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUiLHkxOiI5Iix5MjoiMjEifV1dfSk7dmFyIEJGLFpCZT1mKCgpPT57QkY9W1sicGF0aCIse2Q6Ik0xMiAxMlY5YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTE2IDIwdi0zYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDE2In1dLFsicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTQgNGgxNiJ9XV19KTt2YXIgSEYsWEJlPWYoKCk9PntIRj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgcUYsUUJlPWYoKCk9PntxRj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiJ9XV19KTt2YXIgVkYsSkJlPWYoKCk9PntWRj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIGpGLGVIZT1mKCgpPT57akY9W1sicGF0aCIse2Q6Ik0xMSAyMmMtMy44MDYtMS40NS03LTMuOTY2LTctOVY2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY0In1dLFsicGF0aCIse2Q6Ik0xNC45MjMgMTYuNTQ3IDE0IDE2LjE2NCJ9XSxbInBhdGgiLHtkOiJtMTQuOTIzIDE4Ljg0My0uOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNMTYuNTQ3IDE0LjkyMyAxNi4xNjQgMTQifV0sWyJwYXRoIix7ZDoibTE2LjU0NyAyMC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE4Ljg0MyAxNC45MjMuMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjIyNSAyMS4zOTEtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTYuNTQ3LjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTguODQzLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTcuNjk1IixjeToiMTcuNjk1IixyOiIzIn1dXX0pO3ZhciBVRix0SGU9ZigoKT0+e1VGPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgV0YsYUhlPWYoKCk9PntXRj1bWyJwYXRoIix7ZDoibTEwLjkyOSAxNC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoiTTEwLjkyOSA4LjkyMyAxMC41NDYgOCJ9XSxbInBhdGgiLHtkOiJNMTMuMjI1IDguOTIzIDEzLjYwOCA4In1dLFsicGF0aCIse2Q6Im0xMy42MDcgMTUuMzkxLS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTQuODQ5IDEwLjU0Ny45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuODQ5IDEyLjg0My45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtOS4zMDUgMTAuNTQ3LS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS4zMDUgMTIuODQzLS45MjMuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjEyLjA3NyIsY3k6IjExLjY5NSIscjoiMyJ9XV19KTt2YXIgR0YsckhlPWYoKCk9PntHRj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXX0pO3ZhciBZRixzSGU9ZigoKT0+e1lGPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XV19KTt2YXIgS0YsaUhlPWYoKCk9PntLRj1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA1YTEgMSAwIDAgMC0xIDF2N2MwIDUgMy41IDcuNSA3LjY3IDguOTRhMSAxIDAgMCAwIC42Ny4wMWMyLjM1LS44MiA0LjQ4LTEuOTcgNS45LTMuNzEifV0sWyJwYXRoIix7ZDoiTTkuMzA5IDMuNjUyQTEyLjI1MiAxMi4yNTIgMCAwIDAgMTEuMjQgMi4yOGExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF2N2E5Ljc4NCA5Ljc4NCAwIDAgMS0uMDggMS4yNjQifV1dfSk7dmFyIFpGLG9IZT1mKCgpPT57WkY9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIFd1LG5IZT1mKCgpPT57V3U9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXX0pO3ZhciBYRixsSGU9ZigoKT0+e1hGPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dfSk7dmFyIEd1LGNIZT1mKCgpPT57R3U9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV19KTt2YXIgUUYsZEhlPWYoKCk9PntRRj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXX0pO3ZhciBKRix1SGU9ZigoKT0+e0pGPVtbInBhdGgiLHtkOiJNMTIgMTAuMTg5VjE0In1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYifV0sWyJwYXRoIix7ZDoiTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dXX0pO3ZhciBlQixwSGU9ZigoKT0+e2VCPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiAydjcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgNS01LjIzIDUuMjMifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC03LjUifV0sWyJwYXRoIix7ZDoibTE5IDE5LTUuMjMtNS4yMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTQuNVYyMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTMuNzcgNSAxOSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEwLjIzIDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyLjUifV1dfSk7dmFyIHRCLGZIZT1mKCgpPT57dEI9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV19KTt2YXIgYUIsaEhlPWYoKCk9PnthQj1bWyJwYXRoIix7ZDoiTTE2IDEwYTQgNCAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTMuMTAzIDYuMDM0aDE3Ljc5NCJ9XSxbInBhdGgiLHtkOiJNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6In1dXX0pO3ZhciByQixtSGU9ZigoKT0+e3JCPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dfSk7dmFyIHNCLGdIZT1mKCgpPT57c0I9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXX0pO3ZhciBpQixiSGU9ZigoKT0+e2lCPVtbInBhdGgiLHtkOiJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiJ9XSxbInBhdGgiLHtkOiJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiJ9XSxbInBhdGgiLHtkOiJtOSAxNSA3Ljg3OS03Ljg3OCJ9XV19KTt2YXIgb0IsdkhlPWYoKCk9PntvQj1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV19KTt2YXIgbkIseEhlPWYoKCk9PntuQj1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dfSk7dmFyIGxCLHlIZT1mKCgpPT57bEI9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXX0pO3ZhciBjQix3SGU9ZigoKT0+e2NCPVtbInBhdGgiLHtkOiJNMTEgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4In1dLFsicGF0aCIse2Q6Ik0xNCA4YTguNSA4LjUgMCAwIDEgMCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNmMyIDAgNC41LTQgNC02In1dXX0pO3ZhciBkQixNSGU9ZigoKT0+e2RCPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41In1dLFsicGF0aCIse2Q6Ik0xNC41IDE0LjUgMTIgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoifV1dfSk7dmFyIHVCLGtIZT1mKCgpPT57dUI9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dfSk7dmFyIHBCLFNIZT1mKCgpPT57cEI9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dfSk7dmFyIGZCLHpIZT1mKCgpPT57ZkI9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dfSk7dmFyIGhCLENIZT1mKCgpPT57aEI9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XV19KTt2YXIgbUIsX0hlPWYoKCk9PnttQj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV19KTt2YXIgZ0IsVEhlPWYoKCk9PntnQj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXX0pO3ZhciBiQixMSGU9ZigoKT0+e2JCPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY4In1dLFsicGF0aCIse2Q6Ik0yMiA0djE2In1dXX0pO3ZhciB2QiwkSGU9ZigoKT0+e3ZCPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV19KTt2YXIgeEIsREhlPWYoKCk9Pnt4Qj1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV19KTt2YXIgeUIsQUhlPWYoKCk9Pnt5Qj1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNMi4zNTQgMTAuMzU0YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMi4wNi0yLjA2QTIgMiAwIDAgMSA1LjgyOCA2aDEyLjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2bDIuMDYgMi4wNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4bC0yLjA2IDIuMDZhMiAyIDAgMCAxLTEuNDE0LjU4Nkg1LjgyOGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIHdCLFBIZT1mKCgpPT57d0I9W1sicGF0aCIse2Q6Ik03IDE4di02YTUgNSAwIDEgMSAxMCAwdjYifV0sWyJwYXRoIix7ZDoiTTUgMjFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTguNSA0LjUgMTggNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0xMiAydjEifV0sWyJwYXRoIix7ZDoibTQuOTI5IDQuOTI5LjcwNy43MDcifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV1dfSk7dmFyIE1CLEVIZT1mKCgpPT57TUI9W1sicGF0aCIse2Q6Ik0xNy45NzEgNC4yODVBMiAyIDAgMCAxIDIxIDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgMjBWNCJ9XV19KTt2YXIga0IsSUhlPWYoKCk9PntrQj1bWyJwYXRoIix7ZDoiTTIxIDR2MTYifV0sWyJwYXRoIix7ZDoiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XV19KTt2YXIgU0IsTkhlPWYoKCk9PntTQj1bWyJwYXRoIix7ZDoibTEyLjUgMTctLjUtMS0uNSAxaDF6In1dLFsicGF0aCIse2Q6Ik0xNSAyMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjB2MWExIDEgMCAwIDAgMSAxeiJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgekIsUkhlPWYoKCk9Pnt6Qj1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgQ0IsT0hlPWYoKCk9PntDQj1bWyJwYXRoIix7ZDoiTTEwIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y0In1dLFsicGF0aCIse2Q6Ik0xNiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMSAxMmgtOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLTUifV0sWyJwYXRoIix7ZDoiTTIxIDVoLTcifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNOCAxMkgzIn1dXX0pO3ZhciBfQixGSGU9ZigoKT0+e19CPVtbInBhdGgiLHtkOiJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQifV1dfSk7dmFyIFl1LEJIZT1mKCgpPT57WXU9W1sicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi05In1dLFsicGF0aCIse2Q6Ik0xMiA4VjMifV0sWyJwYXRoIix7ZDoiTTE3IDE2aDQifV0sWyJwYXRoIix7ZDoiTTE5IDEyVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi01In1dLFsicGF0aCIse2Q6Ik0zIDE0aDQifV0sWyJwYXRoIix7ZDoiTTUgMTBWMyJ9XSxbInBhdGgiLHtkOiJNNSAyMXYtNyJ9XV19KTt2YXIgVEIsSEhlPWYoKCk9PntUQj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyLjY2NyA4IDEwIDEyaDRsLTIuNjY3IDQifV1dfSk7dmFyIExCLHFIZT1mKCgpPT57TEI9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTMgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik0xNi40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XV19KTt2YXIgJEIsVkhlPWYoKCk9PnskQj1bWyJwYXRoIix7ZDoiTTIyIDExdjFhMTAgMTAgMCAxIDEtOS0xMCJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XV19KTt2YXIgREIsakhlPWYoKCk9PntEQj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XV19KTt2YXIgQUIsVUhlPWYoKCk9PntBQj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgUEIsV0hlPWYoKCk9PntQQj1bWyJwYXRoIix7ZDoiTTIgMTNhNiA2IDAgMSAwIDEyIDAgNCA0IDAgMSAwLTggMCAyIDIgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2In1dLFsicGF0aCIse2Q6Ik0xOCAzIDE5LjEgNS4yIn1dLFsicGF0aCIse2Q6Ik0yMiAzIDIwLjkgNS4yIn1dXX0pO3ZhciBFQixHSGU9ZigoKT0+e0VCPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNmgtNCJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNi41TDE0IDE1In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDQifV1dfSk7dmFyIElCLFlIZT1mKCgpPT57SUI9W1sicGF0aCIse2Q6Ik0xMC41IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMkg3YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5In1dLFsicGF0aCIse2Q6Ik05LjYwNyAyMUg2YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIDItMmg3VjdhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgTkIsS0hlPWYoKCk9PntOQj1bWyJwYXRoIix7ZDoiTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yIDE2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTQgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgNHY5In1dXX0pO3ZhciBSQixaSGU9ZigoKT0+e1JCPVtbInBhdGgiLHtkOiJNMTEgMmgyIn1dLFsicGF0aCIse2Q6Im0xNC4yOCAxNC00LjU2IDgifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuNTU4LTRINC41NTgifV0sWyJwYXRoIix7ZDoiTTMgMTB2MiJ9XSxbInBhdGgiLHtkOiJNNi4yNDUgMTUuMDRBMiAyIDAgMCAxIDggMTRoMTJhMSAxIDAgMCAxIC44NjQgMS41MDVsLTMuMTEgNS40NTdBMiAyIDAgMCAxIDE2IDIySDRhMSAxIDAgMCAxLS44NjMtMS41MDZ6In1dLFsicGF0aCIse2Q6Ik03IDJhNCA0IDAgMCAxLTQgNCJ9XSxbInBhdGgiLHtkOiJtOC42NiA3LjY2IDEuNDEgMS40MSJ9XV19KTt2YXIgT0IsWEhlPWYoKCk9PntPQj1bWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTkuNSAxMiAyMiA2In1dLFsicGF0aCIse2Q6Ik0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiJ9XSxbInBhdGgiLHtkOiJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiJ9XV19KTt2YXIgRkIsUUhlPWYoKCk9PntGQj1bWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciBCQixKSGU9ZigoKT0+e0JCPVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUifV1dfSk7dmFyIEhCLGVxZT1mKCgpPT57SEI9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV1dfSk7dmFyIEt1LHRxZT1mKCgpPT57S3U9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV0sWyJwYXRoIix7ZDoiTTIwIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjIgNGgtNCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIHFCLGFxZT1mKCgpPT57cUI9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XV19KTt2YXIgVkIscnFlPWYoKCk9PntWQj1bWyJwYXRoIix7ZDoiTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCJ9XSxbInBhdGgiLHtkOiJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMifV0sWyJwYXRoIix7ZDoiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSJ9XV19KTt2YXIgakIsc3FlPWYoKCk9PntqQj1bWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dfSk7dmFyIFVCLGlxZT1mKCgpPT57VUI9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDIxYzEuMSAwIDEuMS0xIDIuMy0xczEuMSAxIDIuMyAxYzEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIn1dXX0pO3ZhciBXQixvcWU9ZigoKT0+e1dCPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBHQixucWU9ZigoKT0+e0dCPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik01IDE3QTEyIDEyIDAgMCAxIDE3IDUifV1dfSk7dmFyIFlCLGxxZT1mKCgpPT57WUI9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNOCAzSDN2NSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XV19KTt2YXIgS0IsY3FlPWYoKCk9PntLQj1bWyJwYXRoIix7ZDoiTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYifV0sWyJwYXRoIix7ZDoibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4In1dXX0pO3ZhciBaQixkcWU9ZigoKT0+e1pCPVtbInBhdGgiLHtkOiJtMTUgMTAuNDIgNC44LTUuMDcifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDMifV0sWyJwYXRoIix7ZDoiTTkuNSAyMiAyMS40MTQgOS40MTVBMiAyIDAgMCAwIDIxLjIgNi40bC01LjYxLTQuMjA4QTEgMSAwIDAgMCAxNCAzdjJhMiAyIDAgMCAxLTEuMzk0IDEuOTA2TDguNjc3IDguMDUzQTEgMSAwIDAgMCA4IDljLS4xNTUgNi4zOTMtMi4wODIgOS00IDlhMiAyIDAgMCAwIDAgNGgxNCJ9XV19KTt2YXIgWEIsdXFlPWYoKCk9PntYQj1bWyJwYXRoIix7ZDoiTTMgM2guMDEifV0sWyJwYXRoIix7ZDoiTTcgNWguMDEifV0sWyJwYXRoIix7ZDoiTTExIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI0Iix4OiIxNSIseToiNSJ9XSxbInBhdGgiLHtkOiJtMTkgOSAyIDJ2MTBjMCAuNi0uNCAxLTEgMWgtNmMtLjYgMC0xLS40LTEtMVYxMWwyLTIifV0sWyJwYXRoIix7ZDoibTEzIDE0IDgtMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTkgOC0yIn1dXX0pO3ZhciBRQixwcWU9ZigoKT0+e1FCPVtbInBhdGgiLHtkOiJNMTQgOS41MzZWN2E0IDQgMCAwIDEgNC00aDEuNWEuNS41IDAgMCAxIC41LjVWNWE0IDQgMCAwIDEtNCA0IDQgNCAwIDAgMC00IDRjMCAyIDEgMyAxIDVhNSA1IDAgMCAxLTEgMyJ9XSxbInBhdGgiLHtkOiJNNCA5YTUgNSAwIDAgMSA4IDQgNSA1IDAgMCAxLTgtNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgSkIsZnFlPWYoKCk9PntKQj1bWyJwYXRoIix7ZDoiTTE1LjI5NSAxOS41NjIgMTYgMjIifV0sWyJwYXRoIix7ZDoibTE3IDE2IDMuNzU4IDIuMDk4In1dLFsicGF0aCIse2Q6Im0xOSAxMi41IDMuMDI2LS41OTgifV0sWyJwYXRoIix7ZDoiTTcuNjEgNi4zYTMgMyAwIDAgMC0zLjkyIDEuM2wtMS4zOCAyLjc5YTMgMyAwIDAgMCAxLjMgMy45MWw2Ljg5IDMuNTk3YTEgMSAwIDAgMCAxLjM0Mi0uNDQ3bDMuMTA2LTYuMjExYTEgMSAwIDAgMC0uNDQ3LTEuMzQxeiJ9XSxbInBhdGgiLHtkOiJNOCA5VjIifV1dfSk7dmFyIFp1LGhxZT1mKCgpPT57WnU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyJ9XV19KTt2YXIgWHUsbXFlPWYoKCk9PntYdT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgOC04IDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2SDhWOCJ9XV19KTt2YXIgUXUsZ3FlPWYoKCk9PntRdT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtOCA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMTYgOHY4SDgifV1dfSk7dmFyIEp1LGJxZT1mKCgpPT57SnU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXX0pO3ZhciBlcCx2cWU9ZigoKT0+e2VwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dfSk7dmFyIHRwLHhxZT1mKCgpPT57dHA9W1sicGF0aCIse2Q6Ik0xMyAyMWg2YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUgzdi02In1dXX0pO3ZhciBhcCx5cWU9ZigoKT0+e2FwPVtbInBhdGgiLHtkOiJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTIxIDIxLTktOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NmgtNiJ9XV19KTt2YXIgcnAsd3FlPWYoKCk9PntycD1bWyJwYXRoIix7ZDoiTTEzIDNoNmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi02In1dLFsicGF0aCIse2Q6Im0zIDMgOSA5In1dLFsicGF0aCIse2Q6Ik0zIDlWM2g2In1dXX0pO3ZhciBzcCxNcWU9ZigoKT0+e3NwPVtbInBhdGgiLHtkOiJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDkifV0sWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dXX0pO3ZhciBlSCxrcWU9ZigoKT0+e2VIPVtbInBhdGgiLHtkOiJtMTAgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMyA4VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zIn1dXX0pO3ZhciB0SCxTcWU9ZigoKT0+e3RIPVtbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoibTE3IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIxIDYuMzQ0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0xLjM0NCJ9XV19KTt2YXIgaXAsenFlPWYoKCk9PntpcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dXX0pO3ZhciBvcCxDcWU9ZigoKT0+e29wPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXX0pO3ZhciBucCxfcWU9ZigoKT0+e25wPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV19KTt2YXIgbHAsVHFlPWYoKCk9PntscD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgY3AsTHFlPWYoKCk9PntjcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXX0pO3ZhciBkcCwkcWU9ZigoKT0+e2RwPVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciB1cCxEcWU9ZigoKT0+e3VwPVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXX0pO3ZhciBwcCxBcWU9ZigoKT0+e3BwPVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBpYyxQcWU9ZigoKT0+e2ljPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDhoNyJ9XSxbInBhdGgiLHtkOiJNOCAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg1In1dXX0pO3ZhciBmcCxFcWU9ZigoKT0+e2ZwPVtbInBhdGgiLHtkOiJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQifV1dfSk7dmFyIGhwLElxZT1mKCgpPT57aHA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgbXAsTnFlPWYoKCk9PnttcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV19KTt2YXIgZ3AsUnFlPWYoKCk9PntncD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgYnAsT3FlPWYoKCk9PnticD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciB2cCxGcWU9ZigoKT0+e3ZwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIHhwLEJxZT1mKCgpPT57eHA9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgYUgsSHFlPWYoKCk9PnthSD1bWyJwYXRoIix7ZDoiTTEwIDkuNSA4IDEybDIgMi41In1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Im0xNCA5LjUgMiAyLjUtMiAyLjUifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV1dfSk7dmFyIHJILHFxZT1mKCgpPT57ckg9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXX0pO3ZhciB5cCxWcWU9ZigoKT0+e3lwPVtbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dXX0pO3ZhciB3cCxqcWU9ZigoKT0+e3dwPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dfSk7dmFyIG9jLFVxZT1mKCgpPT57b2M9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dXX0pO3ZhciBzSCxXcWU9ZigoKT0+e3NIPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV19KTt2YXIgTXAsR3FlPWYoKCk9PntNcD1bWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV1dfSk7dmFyIGtwLFlxZT1mKCgpPT57a3A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgU3AsS3FlPWYoKCk9PntTcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dfSk7dmFyIHpwLFpxZT1mKCgpPT57enA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIENwLFhxZT1mKCgpPT57Q3A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMyJ9XSxbInBhdGgiLHtkOiJNOSAxMS4yaDUuNyJ9XV19KTt2YXIgX3AsUXFlPWYoKCk9PntfcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMSA3djEwIn1dLFsicGF0aCIse2Q6Im0xNSA3IDIgMTAifV1dfSk7dmFyIFRwLEpxZT1mKCgpPT57VHA9W1sicGF0aCIse2Q6Ik04IDE2VjguNWEuNS41IDAgMCAxIC45LS4zbDIuNyAzLjU5OWEuNS41IDAgMCAwIC44IDBsMi43LTMuNmEuNS41IDAgMCAxIC45LjNWMTYifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgTHAsZVZlPWYoKCk9PntMcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dXX0pO3ZhciAkcCx0VmU9ZigoKT0+eyRwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDhoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTAifV1dfSk7dmFyIERwLGFWZT1mKCgpPT57RHA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgQXAsclZlPWYoKCk9PntBcD1bWyJwYXRoIix7ZDoiTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6In1dLFsicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XV19KTt2YXIgUHAsc1ZlPWYoKCk9PntQcD1bWyJwYXRoIix7ZDoiTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MSJ9XSxbInBhdGgiLHtkOiJNMyA4LjdWMTlhMiAyIDAgMCAwIDIgMmgxMC4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyIn1dLFsicGF0aCIse2Q6Ik05IDE3di0yLjMifV1dfSk7dmFyIEVwLGlWZT1mKCgpPT57RXA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV19KTt2YXIgQzEsb1ZlPWYoKCk9PntDMT1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTguMzc1IDIuNjI1YTEgMSAwIDAgMSAzIDNsLTkuMDEzIDkuMDE0YTIgMiAwIDAgMS0uODUzLjUwNWwtMi44NzMuODRhLjUuNSAwIDAgMS0uNjItLjYybC44NC0yLjg3M2EyIDIgMCAwIDEgLjUwNi0uODUyeiJ9XV19KTt2YXIgSXAsblZlPWYoKCk9PntJcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV19KTt2YXIgaUgsbFZlPWYoKCk9PntpSD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgTnAsY1ZlPWYoKCk9PntOcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aDEwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2EyIDIgMCAwIDEtMi0yVjcifV1dfSk7dmFyIFJwLGRWZT1mKCgpPT57UnA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEySDkuNWEyLjUgMi41IDAgMCAxIDAtNUgxNyJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTYgN3YxMCJ9XV19KTt2YXIgT3AsdVZlPWYoKCk9PntPcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dfSk7dmFyIEZwLHBWZT1mKCgpPT57RnA9W1sicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV1dfSk7dmFyIEJwLGZWZT1mKCgpPT57QnA9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgb0gsaFZlPWYoKCk9PntvSD1bWyJwYXRoIix7ZDoiTTcgMTJoMmwyIDUgMi0xMGg0In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIG5ILG1WZT1mKCgpPT57bkg9W1sicGF0aCIse2Q6Ik0yMSAxMWE4IDggMCAwIDAtOC04In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBIcCxnVmU9ZigoKT0+e0hwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4LjlWN0g4bDQgNS00IDVoOHYtMS45In1dXX0pO3ZhciBxcCxiVmU9ZigoKT0+e3FwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBWcCx2VmU9ZigoKT0+e1ZwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dfSk7dmFyIGpwLHhWZT1mKCgpPT57anA9W1sicGF0aCIse2Q6Ik04IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgNWgzYzEgMCAyIDEgMiAydjEwYzAgMS0xIDItMiAyaC0zIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNCIseTI6IjIwIn1dXX0pO3ZhciBVcCx5VmU9ZigoKT0+e1VwPVtbInBhdGgiLHtkOiJNNSA4VjVjMC0xIDEtMiAyLTJoMTBjMSAwIDIgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2M2MwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMnYtMyJ9XSxbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgbEgsd1ZlPWYoKCk9PntsSD1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgY0gsTVZlPWYoKCk9PntjSD1bWyJwYXRoIix7ZDoiTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNmMtMS4xIDAtMi0uOS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjE0Iix5OiIxNCIscng6IjIifV1dfSk7dmFyIGRILGtWZT1mKCgpPT57ZEg9W1sicGF0aCIse2Q6Ik0xMS4wMzUgNy42OWExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciB1SCxTVmU9ZigoKT0+e3VIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXX0pO3ZhciBXcCx6VmU9ZigoKT0+e1dwPVtbInBhdGgiLHtkOiJtNyAxMSAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMSAxM2g0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dXX0pO3ZhciBHcCxDVmU9ZigoKT0+e0dwPVtbInBhdGgiLHtkOiJNMTggMjFhNiA2IDAgMCAwLTEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBZcCxfVmU9ZigoKT0+e1lwPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIEtwLFRWZT1mKCgpPT57S3A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBwSCxMVmU9ZigoKT0+e3BIPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBmSCwkVmU9ZigoKT0+e2ZIPVtbInBhdGgiLHtkOiJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIn1dXX0pO3ZhciBoSCxEVmU9ZigoKT0+e2hIPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTQgMmEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmgtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMFY4In1dLFsicGF0aCIse2Q6Ik0yIDRhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMjAgOGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTggMmgyIn1dXX0pO3ZhciBtSCxBVmU9ZigoKT0+e21IPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV1dfSk7dmFyIGdILFBWZT1mKCgpPT57Z0g9W1sicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoifV1dfSk7dmFyIGJILEVWZT1mKCgpPT57Ykg9W1sicGF0aCIse2Q6Ik0xMy43NyAzLjA0M2EzNCAzNCAwIDAgMC0zLjU0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjc3MSAyMC45NTZhMzMgMzMgMCAwIDEtMy41NDEuMDAxIn1dLFsicGF0aCIse2Q6Ik0yMC4xOCAxNy43NGMtLjUxIDEuMTUtMS4yOSAxLjkzLTIuNDM5IDIuNDQifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDYuMjU5Yy0uNTEtMS4xNDgtMS4yOTEtMS45MjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNMjAuOTU3IDEwLjIzYTMzIDMzIDAgMCAxIDAgMy41NCJ9XSxbInBhdGgiLHtkOiJNMy4wNDMgMTAuMjNhMzQgMzQgMCAwIDAgLjAwMSAzLjU0MSJ9XSxbInBhdGgiLHtkOiJNNi4yNiAyMC4xNzljLTEuMTUtLjUwOC0xLjkzLTEuMjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNNi4yNiAzLjgyYy0xLjE0OS41MS0xLjkzIDEuMjkxLTIuNDQgMi40NCJ9XV19KTt2YXIgdkgsSVZlPWYoKCk9Pnt2SD1bWyJwYXRoIix7ZDoiTTEyIDNjNy4yIDAgOSAxLjggOSA5cy0xLjggOS05IDktOS0xLjgtOS05IDEuOC05IDktOSJ9XV19KTt2YXIgeEgsTlZlPWYoKCk9Pnt4SD1bWyJwYXRoIix7ZDoiTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCJ9XSxbInBhdGgiLHtkOiJNMTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAifV1dfSk7dmFyIHlILFJWZT1mKCgpPT57eUg9W1sicGF0aCIse2Q6Ik0xNCAxM1Y4LjVDMTQgNyAxNSA3IDE1IDVhMyAzIDAgMCAwLTYgMGMwIDIgMSAyIDEgMy41VjEzIn1dLFsicGF0aCIse2Q6Ik0yMCAxNS41YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMTFBMi41IDIuNSAwIDAgMCA0IDE1LjVWMTdhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNSAyMmgxNCJ9XV19KTt2YXIgd0gsT1ZlPWYoKCk9Pnt3SD1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dfSk7dmFyIE1ILEZWZT1mKCgpPT57TUg9W1sicGF0aCIse2Q6Im0xMC4zNDQgNC42ODggMS4xODEtMi4zOTNhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy4yMzcgMy4xNTIifV0sWyJwYXRoIix7ZDoibTE3Ljk0NSAxNy45NDUuNDMgMi41MDVhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIgMi4xMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhOCA4IDAgMCAwIC40LS4wOTkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIga0gsQlZlPWYoKCk9PntrSD1bWyJwYXRoIix7ZDoiTTExLjUyNSAyLjI5NWEuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyMyAyLjEyMyAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuNzM2IDMuNjM4YTIuMTIzIDIuMTIzIDAgMCAwLS42MTEgMS44NzhsLjg4MiA1LjE0YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyMiAyLjEyMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMjIgMi4xMjIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyMiAyLjEyMiAwIDAgMCAxLjU5Ny0xLjE2eiJ9XV19KTt2YXIgU0gsSFZlPWYoKCk9PntTSD1bWyJwYXRoIix7ZDoiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMjBWNCJ9XV19KTt2YXIgekgscVZlPWYoKCk9Pnt6SD1bWyJwYXRoIix7ZDoiTTEwLjAyOSA0LjI4NUEyIDIgMCAwIDAgNyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgNHYxNiJ9XV19KTt2YXIgQ0gsVlZlPWYoKCk9PntDSD1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEifV1dfSk7dmFyIF9ILGpWZT1mKCgpPT57X0g9W1sicGF0aCIse2Q6Ik0xMSAydjIifV0sWyJwYXRoIix7ZDoiTTUgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDNINGEyIDIgMCAwIDAtMiAydjRhNiA2IDAgMCAwIDEyIDBWNWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik04IDE1YTYgNiAwIDAgMCAxMiAwdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIFRILFVWZT1mKCgpPT57VEg9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dXX0pO3ZhciBMSCxXVmU9ZigoKT0+e0xIPVtbInBhdGgiLHtkOiJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCJ9XSxbInBhdGgiLHtkOiJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUifV1dfSk7dmFyICRILEdWZT1mKCgpPT57JEg9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiMTQiLHJ4OiIyIn1dXX0pO3ZhciBESCxZVmU9ZigoKT0+e0RIPVtbInBhdGgiLHtkOiJNMTEuMjY0IDIuMjA1QTQgNCAwIDAgMCA2LjQyIDQuMjExbC00IDhhNCA0IDAgMCAwIDEuMzU5IDUuMTE3bDYgNGE0IDQgMCAwIDAgNC40MzggMGw2LTRhNCA0IDAgMCAwIDEuNTc2LTQuNTkybC0yLTZhNCA0IDAgMCAwLTIuNTMtMi41M3oifV0sWyJwYXRoIix7ZDoiTTExLjk5IDIyIDE0IDEybDcuODIyIDMuMTg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMiA4LjQ3IDIuMzAyIn1dXX0pO3ZhciBBSCxLVmU9ZigoKT0+e0FIPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMjAiLHg6IjE0Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgUEgsWlZlPWYoKCk9PntQSD1bWyJwYXRoIix7ZDoiTTE2IDRIOWEzIDMgMCAwIDAtMi44MyA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmE0IDQgMCAwIDEgMCA4SDYifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIEVILFhWZT1mKCgpPT57RUg9W1sicGF0aCIse2Q6Im00IDUgOCA4In1dLFsicGF0aCIse2Q6Im0xMiA1LTggOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcifV1dfSk7dmFyIElILFFWZT1mKCgpPT57SUg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyA2LjM0M2guMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyA2LjM0M2guMDEifV1dfSk7dmFyIE5ILEpWZT1mKCgpPT57Tkg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDN2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgxIn1dLFsicGF0aCIse2Q6Im0xOC4zNjQgNS42MzYtLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTYuMzQzIDE3LjY1Ny0uNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtNS42MzYgNS42MzYuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtMTcuNjU3IDE3LjY1Ny43MDcuNzA3In1dXX0pO3ZhciBSSCxlamU9ZigoKT0+e1JIPVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNC44MzcgMTYuMzg1YTYgNiAwIDEgMS03LjIyMy03LjIyMmMuNjI0LS4xNDcuOTcuNjYuNzE1IDEuMjQ4YTQgNCAwIDAgMCA1LjI2IDUuMjU5Yy41ODktLjI1NSAxLjM5Ni4wOSAxLjI0OC43MTUifV0sWyJwYXRoIix7ZDoiTTE2IDEyYTQgNCAwIDAgMC00LTQifV0sWyJwYXRoIix7ZDoibTE5IDUtMS4yNTYgMS4yNTYifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV1dfSk7dmFyIE9ILHRqZT1mKCgpPT57T0g9W1sicGF0aCIse2Q6Ik0xMCAyMXYtMSJ9XSxbInBhdGgiLHtkOiJNMTAgNFYzIn1dLFsicGF0aCIse2Q6Ik0xMCA5YTMgMyAwIDAgMCAwIDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNiAxLjUtM0gyMiJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMSJ9XSxbInBhdGgiLHtkOiJtMjAgMTAtMS41IDIgMS41IDIifV0sWyJwYXRoIix7ZDoibTMuNjQgMTguMzYuNy0uNyJ9XSxbInBhdGgiLHtkOiJtNC4zNCA2LjM0LS43LS43In1dXX0pO3ZhciBGSCxhamU9ZigoKT0+e0ZIPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE3LjY2IDE3LjY2IDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV1dfSk7dmFyIEJILHJqZT1mKCgpPT57Qkg9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dfSk7dmFyIEhILHNqZT1mKCgpPT57SEg9W1sicGF0aCIse2Q6Ik0xMiAxMFYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDEwLjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyAxMC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThhNCA0IDAgMCAwLTggMCJ9XV19KTt2YXIgcUgsaWplPWYoKCk9PntxSD1bWyJwYXRoIix7ZDoibTQgMTkgOC04In1dLFsicGF0aCIse2Q6Im0xMiAxOS04LTgifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2In1dXX0pO3ZhciBWSCxvamU9ZigoKT0+e1ZIPVtbInBhdGgiLHtkOiJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0gNyAxN2guMDEifV0sWyJwYXRoIix7ZDoibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgifV1dfSk7dmFyIGpILG5qZT1mKCgpPT57akg9W1sicGF0aCIse2Q6Ik0xMCAyMVYzaDgifV0sWyJwYXRoIix7ZDoiTTYgMTZoOSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41aDcifV1dfSk7dmFyIFVILGxqZT1mKCgpPT57VUg9W1sicGF0aCIse2Q6Ik0xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUifV0sWyJwYXRoIix7ZDoiTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJtNiAyIDMgMy0zIDMifV1dfSk7dmFyIFdILGNqZT1mKCgpPT57V0g9W1sicGF0aCIse2Q6Im0xMSAxOS02LTYifV0sWyJwYXRoIix7ZDoibTUgMjEtMi0yIn1dLFsicGF0aCIse2Q6Im04IDE2LTQgNCJ9XSxbInBhdGgiLHtkOiJNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41In1dXX0pO3ZhciBHSCxkamU9ZigoKT0+e0dIPVtbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDE3LjUgMyA2IDMgMyA2IDMgMTcuNSAxNC41In1dLFsibGluZSIse3gxOiIxMyIseDI6IjE5Iix5MToiMTkiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMCIseTE6IjE2Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMjEiLHkxOiIyMSIseTI6IjE5In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjE0LjUgNi41IDE4IDMgMjEgMyAyMSA2IDE3LjUgOS41In1dLFsibGluZSIse3gxOiI1Iix4MjoiOSIseTE6IjE0Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjciLHgyOiI0Iix5MToiMTciLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjUiLHkxOiIxOSIseTI6IjIxIn1dXX0pO3ZhciBZSCx1amU9ZigoKT0+e1lIPVtbInBhdGgiLHtkOiJtMTggMiA0IDQifV0sWyJwYXRoIix7ZDoibTE3IDcgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSA0IDQifV0sWyJwYXRoIix7ZDoibTUgMTktMyAzIn1dLFsicGF0aCIse2Q6Im0xNCA0IDYgNiJ9XV19KTt2YXIgS0gscGplPWYoKCk9PntLSD1bWyJwYXRoIix7ZDoiTTkgM0g1YTIgMiAwIDAgMC0yIDJ2NG02LTZoMTBhMiAyIDAgMCAxIDIgMnY0TTkgM3YxOG0wIDBoMTBhMiAyIDAgMCAwIDItMlY5TTkgMjFINWEyIDIgMCAwIDEtMi0yVjltMCAwaDE4In1dXX0pO3ZhciBaSCxmamU9ZigoKT0+e1pIPVtbInBhdGgiLHtkOiJNMTIgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDlWMyJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIFhILGhqZT1mKCgpPT57WEg9W1sicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV19KTt2YXIgUUgsbWplPWYoKCk9PntRSD1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV19KTt2YXIgSkgsZ2plPWYoKCk9PntKSD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgNWguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLjAxIn1dXX0pO3ZhciBlcSxiamU9ZigoKT0+e2VxPVtbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE1SDMifV1dfSk7dmFyIHRxLHZqZT1mKCgpPT57dHE9W1sicGF0aCIse2Q6Ik0xNCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMTUgMnY0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEwaDIifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDIifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTkgMnY0In1dXX0pO3ZhciBhcSx4amU9ZigoKT0+e2FxPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dfSk7dmFyIHJxLHlqZT1mKCgpPT57cnE9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV19KTt2YXIgc3Esd2plPWYoKCk9PntzcT1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxOCIseTI6IjE4In1dXX0pO3ZhciBpcSxNamU9ZigoKT0+e2lxPVtbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiNSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxN2gxMCJ9XSxbInBhdGgiLHtkOiJtMy40NiAxMC41NCA3LjA4LTcuMDgifV1dfSk7dmFyIG9xLGtqZT1mKCgpPT57b3E9W1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBucSxTamU9ZigoKT0+e25xPVtbInBhdGgiLHtkOiJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjUiLGN5OiI2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dfSk7dmFyIGxxLHpqZT1mKCgpPT57bHE9W1sicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIGNxLENqZT1mKCgpPT57Y3E9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XV19KTt2YXIgZHEsX2plPWYoKCk9PntkcT1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dXX0pO3ZhciB1cSxUamU9ZigoKT0+e3VxPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV1dfSk7dmFyIHBxLExqZT1mKCgpPT57cHE9W1siY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTUuNTkgNS40MSA1LjQxIDE1LjU5In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJzLTQtOS0xLjUtMTEuNVMyMiAxMiAyMiAxMiJ9XV19KTt2YXIgZnEsJGplPWYoKCk9PntmcT1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0djE2In1dLFsicGF0aCIse2Q6Ik0yMiA2IDIgMTgifV1dfSk7dmFyIGhxLERqZT1mKCgpPT57aHE9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgbXEsQWplPWYoKCk9PnttcT1bWyJwYXRoIix7ZDoibTEwLjA2NSAxMi40OTMtNi4xOCAxLjMxOGEuOTM0LjkzNCAwIDAgMS0xLjEwOC0uNzAybC0uNTM3LTIuMTVhMS4wNyAxLjA3IDAgMCAxIC42OTEtMS4yNjVsMTMuNTA0LTQuNDQifV0sWyJwYXRoIix7ZDoibTEzLjU2IDExLjc0NyA0LjMzMi0uOTI0In1dLFsicGF0aCIse2Q6Im0xNiAyMS0zLjEwNS02LjIxIn1dLFsicGF0aCIse2Q6Ik0xNi40ODUgNS45NGEyIDIgMCAwIDEgMS40NTUtMi40MjVsMS4wOS0uMjcyYTEgMSAwIDAgMSAxLjIxMi43MjdsMS41MTUgNi4wNmExIDEgMCAwIDEtLjcyNyAxLjIxM2wtMS4wOS4yNzJhMiAyIDAgMCAxLTIuNDI1LTEuNDU1eiJ9XSxbInBhdGgiLHtkOiJtNi4xNTggOC42MzMgMS4xMTQgNC40NTYifV0sWyJwYXRoIix7ZDoibTggMjEgMy4xMDUtNi4yMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dXX0pO3ZhciBncSxQamU9ZigoKT0+e2dxPVtbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNEg3bC01IDhoMjBaIn1dLFsicGF0aCIse2Q6Ik04IDE0djgifV0sWyJwYXRoIix7ZDoibTkgMTQgNSA4In1dXX0pO3ZhciBicSxFamU9ZigoKT0+e2JxPVtbInBhdGgiLHtkOiJNMy41IDIxIDE0IDMifV0sWyJwYXRoIix7ZDoiTTIwLjUgMjEgMTAgMyJ9XSxbInBhdGgiLHtkOiJNMTUuNSAyMSAxMiAxNWwtMy41IDYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV1dfSk7dmFyIHZxLElqZT1mKCgpPT57dnE9W1sicGF0aCIse2Q6Ik0xMiAxOWg4In1dLFsicGF0aCIse2Q6Im00IDE3IDYtNi02LTYifV1dfSk7dmFyIFpwLE5qZT1mKCgpPT57WnA9W1sicGF0aCIse2Q6Ik0yMSA3IDYuODIgMjEuMThhMi44MyAyLjgzIDAgMCAxLTMuOTktLjAxYTIuODMgMi44MyAwIDAgMSAwLTRMMTcgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoiTTEyIDE2SDQifV1dfSk7dmFyIHhxLFJqZT1mKCgpPT57eHE9W1sicGF0aCIse2Q6Ik0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dLFsicGF0aCIse2Q6Ik0xNC41IDE2aC01In1dXX0pO3ZhciBYcCxPamU9ZigoKT0+e1hwPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNyAxMkg3In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1In1dXX0pO3ZhciB5cSxGamU9ZigoKT0+e3lxPVtbInBhdGgiLHtkOiJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNMyAyaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJoNyJ9XSxbInBhdGgiLHtkOiJNOSAxNkg0In1dLFsicGF0aCIse2Q6Ik0yMCAxNmgtNSJ9XV19KTt2YXIgUXAsQmplPWYoKCk9PntRcD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlINyJ9XV19KTt2YXIgSnAsSGplPWYoKCk9PntKcD1bWyJwYXRoIix7ZDoiTTMgNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XV19KTt2YXIgbmMscWplPWYoKCk9PntuYz1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTlIMyJ9XV19KTt2YXIgd3EsVmplPWYoKCk9Pnt3cT1bWyJwYXRoIix7ZDoiTTEyIDIwaC0xYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxLTIgMkg2In1dLFsicGF0aCIse2Q6Ik0xMyA4aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTcifV0sWyJwYXRoIix7ZDoiTTUgMTZINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNNiA0aDFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTkgNnYxMiJ9XV19KTt2YXIgTXEsamplPWYoKCk9PntNcT1bWyJwYXRoIix7ZDoiTTE3IDIyaC0xYTQgNCAwIDAgMS00LTRWNmE0IDQgMCAwIDEgNC00aDEifV0sWyJwYXRoIix7ZDoiTTcgMjJoMWE0IDQgMCAwIDAgNC00di0xIn1dLFsicGF0aCIse2Q6Ik03IDJoMWE0IDQgMCAwIDEgNCA0djEifV1dfSk7dmFyIGVmLFVqZT1mKCgpPT57ZWY9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV19KTt2YXIga3EsV2plPWYoKCk9PntrcT1bWyJwYXRoIix7ZDoiTTE3IDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIOCJ9XSxbInBhdGgiLHtkOiJNMyAxMnY3In1dXX0pO3ZhciBTcSxHamU9ZigoKT0+e1NxPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDE5LTEuOS0xLjkifV1dfSk7dmFyIHRmLFlqZT1mKCgpPT57dGY9W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dfSk7dmFyIHpxLEtqZT1mKCgpPT57enE9W1sicGF0aCIse2Q6Ik0yIDEwczMtMyAzLTgifV0sWyJwYXRoIix7ZDoiTTIyIDEwcy0zLTMtMy04In1dLFsicGF0aCIse2Q6Ik0xMCAyYzAgNC40LTMuNiA4LTggOCJ9XSxbInBhdGgiLHtkOiJNMTQgMmMwIDQuNCAzLjYgOCA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTBzMiAyIDIgNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTIgMi0yIDUifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dXX0pO3ZhciBDcSxaamU9ZigoKT0+e0NxPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoiTTEwLjU4NSAxNUgxMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDIifV1dfSk7dmFyIF9xLFhqZT1mKCgpPT57X3E9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDhhNCA0IDAgMCAwLTEuNjQ1IDcuNjQ3In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV1dfSk7dmFyIFRxLFFqZT1mKCgpPT57VHE9W1sicGF0aCIse2Q6Ik0xNCA0djEwLjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAwWiJ9XV19KTt2YXIgTHEsSmplPWYoKCk9PntMcT1bWyJwYXRoIix7ZDoiTTkgMTguMTIgMTAgMTRINC4xN2EyIDIgMCAwIDEtMS45Mi0yLjU2bDIuMzMtOEEyIDIgMCAwIDEgNi41IDJIMjBhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuNzZhMiAyIDAgMCAwLTEuNzkgMS4xMUwxMiAyMmEzLjEzIDMuMTMgMCAwIDEtMy0zLjg4WiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWMiJ9XV19KTt2YXIgJHEsZVVlPWYoKCk9PnskcT1bWyJwYXRoIix7ZDoiTTE1IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43OS0xLjExTDEyIDJhMy4xMyAzLjEzIDAgMCAxIDMgMy44OFoifV0sWyJwYXRoIix7ZDoiTTcgMTB2MTIifV1dfSk7dmFyIERxLHRVZT1mKCgpPT57RHE9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIEFxLGFVZT1mKCgpPT57QXE9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dfSk7dmFyIFBxLHJVZT1mKCgpPT57UHE9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBFcSxzVWU9ZigoKT0+e0VxPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIElxLGlVZT1mKCgpPT57SXE9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV1dfSk7dmFyIE5xLG9VZT1mKCgpPT57TnE9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSA5LjUgNSA1In1dXX0pO3ZhciBScSxuVWU9ZigoKT0+e1JxPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMgNXYyIn1dLFsicGF0aCIse2Q6Ik0xMyAxN3YyIn1dLFsicGF0aCIse2Q6Ik0xMyAxMXYyIn1dXX0pO3ZhciBPcSxsVWU9ZigoKT0+e09xPVtbInBhdGgiLHtkOiJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIn1dLFsicGF0aCIse2Q6Im0xMiAxMy41IDMuNzk0LjUwNiJ9XSxbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBGcSxjVWU9ZigoKT0+e0ZxPVtbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBCcSxkVWU9ZigoKT0+e0JxPVtbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTQgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik00IDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOS40MTQgMTMuNDE0YTIgMiAwIDAgMCAxLjQxNC41ODZIMTlhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xaC04LjE3MmEyIDIgMCAwIDAtMS40MTQuNTg2TDggMTJ6In1dLFsicGF0aCIse2Q6Ik05LjQxNCAyMS40MTRhMiAyIDAgMCAwIDEuNDE0LjU4NkgxOWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTguMTcyYTIgMiAwIDAgMC0xLjQxNC41ODZMOCAyMHoifV0sWyJwYXRoIix7ZDoiTTkuNDE0IDUuNDE0QTIgMiAwIDAgMCAxMC44MjggNkgxOWExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMWgtOC4xNzJhMiAyIDAgMCAwLTEuNDE0LjU4Nkw4IDR6In1dXX0pO3ZhciBIcSx1VWU9ZigoKT0+e0hxPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV19KTt2YXIgcXEscFVlPWYoKCk9PntxcT1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTQgMTNhOCA4IDAgMCAxIDgtNyA4IDggMCAxIDEtNS4zIDE0TDQgMTcuNiJ9XSxbInBhdGgiLHtkOiJNOSAxN0g0djUifV1dfSk7dmFyIFZxLGZVZT1mKCgpPT57VnE9W1sibGluZSIse3gxOiIxMCIseDI6IjE0Iix5MToiMiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTUiLHkxOiIxNCIseTI6IjExIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjgifV1dfSk7dmFyIGpxLGhVZT1mKCgpPT57anE9W1sicGF0aCIse2Q6Ik03IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4In1dLFsicGF0aCIse2Q6Ik04IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4In1dXX0pO3ZhciBVcSxtVWU9ZigoKT0+e1VxPVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiNyJ9XV19KTt2YXIgV3EsZ1VlPWYoKCk9PntXcT1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXX0pO3ZhciBHcSxiVWU9ZigoKT0+e0dxPVtbInBhdGgiLHtkOiJNMTAgMTVoNCJ9XSxbInBhdGgiLHtkOiJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyJ9XSxbInBhdGgiLHtkOiJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIn1dLFsicGF0aCIse2Q6Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgWXEsdlVlPWYoKCk9PntZcT1bWyJwYXRoIix7ZDoiTTE2IDEydjQifV0sWyJwYXRoIix7ZDoiTTE2IDZhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0IDRBMiAyIDAgMCAxIDIyIDEydjdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIC41ODYtMS40MTRsNC00QTIgMiAwIDAgMSA4IDZ6In1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTggMTJ2NCJ9XV19KTt2YXIgS3EseFVlPWYoKCk9PntLcT1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTEiLHJ4OiIzIixyeToiMiJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMi41IixyeDoiMTAiLHJ5OiI4LjUifV1dfSk7dmFyIFpxLHlVZT1mKCgpPT57WnE9W1sicGF0aCIse2Q6Ik0xMiAyMHYtNiJ9XSxbInBhdGgiLHtkOiJNMTkuNjU2IDE0SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDEyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTkuNjU2IDRIMjBhMiAyIDAgMCAxIDIgMnYxMC4zNDQifV1dfSk7dmFyIFhxLHdVZT1mKCgpPT57WHE9W1sicGF0aCIse2Q6Ik0yMSA0SDMifV0sWyJwYXRoIix7ZDoiTTE4IDhINiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLTYifV0sWyJwYXRoIix7ZDoiTTExIDIwSDkifV1dfSk7dmFyIFFxLE1VZT1mKCgpPT57UXE9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dXX0pO3ZhciBKcSxrVWU9ZigoKT0+e0pxPVtbInBhdGgiLHtkOiJNMjIgN2gtMiJ9XSxbInBhdGgiLHtkOiJNNi41IDNoMTFBMi41IDIuNSAwIDAgMSAyMCA1LjVWMjBhMSAxIDAgMCAxLTEgMWgtOWExIDEgMCAwIDEtMS0xVjUuNWExIDEgMCAwIDAtNSAwVjE3YTEgMSAwIDAgMCAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNOSA3SDIifV1dfSk7dmFyIGVWLFNVZT1mKCgpPT57ZVY9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXX0pO3ZhciB0Vix6VWU9ZigoKT0+e3RWPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBhVixDVWU9ZigoKT0+e2FWPVtbInBhdGgiLHtkOiJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC01In1dLFsicGF0aCIse2Q6Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMifV0sWyJwYXRoIix7ZDoiTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYifV0sWyJwYXRoIix7ZDoiTTQgMTFWNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTAuMVY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE1IixyOiI1In1dXX0pO3ZhciByVixfVWU9ZigoKT0+e3JWPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXX0pO3ZhciBzVixUVWU9ZigoKT0+e3NWPVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dfSk7dmFyIGlWLExVZT1mKCgpPT57aVY9W1sicGF0aCIse2Q6Ik04IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xIn1dLFsicGF0aCIse2Q6Im05IDE1LTEtMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgMS0xIn1dLFsicGF0aCIse2Q6Ik05IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaIn1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAzIn1dXX0pO3ZhciBvViwkVWU9ZigoKT0+e29WPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXX0pO3ZhciBhZixEVWU9ZigoKT0+e2FmPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDExaDE2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xOCAyMi0yLTMifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV1dfSk7dmFyIG5WLEFVZT1mKCgpPT57blY9W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgbFYsUFVlPWYoKCk9PntsVj1bWyJwYXRoIix7ZDoiTTEwIDExdjYifV0sWyJwYXRoIix7ZDoiTTE0IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBjVixFVWU9ZigoKT0+e2NWPVtbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIGRWLElVZT1mKCgpPT57ZFY9W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXX0pO3ZhciByZixOVWU9ZigoKT0+e3JmPVtbInBhdGgiLHtkOiJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1In1dLFsicGF0aCIse2Q6Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCJ9XV19KTt2YXIgdVYsUlVlPWYoKCk9Pnt1Vj1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXX0pO3ZhciBwVixPVWU9ZigoKT0+e3BWPVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXX0pO3ZhciBmVixGVWU9ZigoKT0+e2ZWPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXX0pO3ZhciBoVixCVWU9ZigoKT0+e2hWPVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXX0pO3ZhciBtVixIVWU9ZigoKT0+e21WPVtbInBhdGgiLHtkOiJNMTYgN2g2djYifV0sWyJwYXRoIix7ZDoibTIyIDctOC41IDguNS01LTVMMiAxNyJ9XV19KTt2YXIgc2YscVVlPWYoKCk9PntzZj1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgZ1YsVlVlPWYoKCk9PntnVj1bWyJwYXRoIix7ZDoiTTEwLjE3IDQuMTkzYTIgMiAwIDAgMSAzLjY2Ni4wMTMifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDIifV0sWyJwYXRoIix7ZDoibTE1Ljg3NCA3Ljc0MyAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Im0xOC44NDkgMTIuOTUyIDEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQifV0sWyJwYXRoIix7ZDoiTTQuMDI0IDIxYTIgMiAwIDAgMS0xLjgzOS0yLjgzOSJ9XSxbInBhdGgiLHtkOiJtNS4xMzYgMTIuOTUyLTEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTggMjFoMiJ9XSxbInBhdGgiLHtkOiJtOC4xMDIgNy43NDMtMSAxLjczMiJ9XV19KTt2YXIgYlYsalVlPWYoKCk9PntiVj1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXX0pO3ZhciB2VixVVWU9ZigoKT0+e3ZWPVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXX0pO3ZhciB4VixXVWU9ZigoKT0+e3hWPVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXX0pO3ZhciB5VixHVWU9ZigoKT0+e3lWPVtbInBhdGgiLHtkOiJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkifV0sWyJwYXRoIix7ZDoiTTE1IDE5SDkifV0sWyJwYXRoIix7ZDoiTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQifV0sWyJwYXRoIix7ZDoiTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIHdWLFlVZT1mKCgpPT57d1Y9W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBNVixLVWU9ZigoKT0+e01WPVtbInBhdGgiLHtkOiJNMTUgNCA1IDkifV0sWyJwYXRoIix7ZDoibTE1IDguNS0xMCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMifV1dfSk7dmFyIGtWLFpVZT1mKCgpPT57a1Y9W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgU1YsWFVlPWYoKCk9PntTVj1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV19KTt2YXIgelYsUVVlPWYoKCk9Pnt6Vj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIG9mLEpVZT1mKCgpPT57b2Y9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIENWLGVXZT1mKCgpPT57Q1Y9W1sicGF0aCIse2Q6Im0xNyAyLTUgNS01LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI3IixyeDoiMiJ9XV19KTt2YXIgX1YsdFdlPWYoKCk9PntfVj1bWyJwYXRoIix7ZDoiTTE0IDE2LjVhLjUuNSAwIDAgMCAuNS41aC41YTIgMiAwIDAgMSAwIDRIOWEyIDIgMCAwIDEgMC00aC41YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVWOGEyIDIgMCAwIDEtNCAwVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTQgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVaIn1dXX0pO3ZhciBUVixhV2U9ZigoKT0+e1RWPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgTFYscldlPWYoKCk9PntMVj1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dfSk7dmFyICRWLHNXZT1mKCgpPT57JFY9W1sicGF0aCIse2Q6Ik0xMiAxM3Y3YTIgMiAwIDAgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjAuOTkyIDEzYTEgMSAwIDAgMCAuOTctMS4yNzQgMTAuMjg0IDEwLjI4NCAwIDAgMC0xOS45MjMgMEExIDEgMCAwIDAgMyAxM3oifV1dfSk7dmFyIERWLGlXZT1mKCgpPT57RFY9W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciBBVixvV2U9ZigoKT0+e0FWPVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXX0pO3ZhciBQVixuV2U9ZigoKT0+e1BWPVtbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIn1dLFsicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV1dfSk7dmFyIEVWLGxXZT1mKCgpPT57RVY9W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXX0pO3ZhciBJVixjV2U9ZigoKT0+e0lWPVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dfSk7dmFyIE5WLGRXZT1mKCgpPT57TlY9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOFYyIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgNS0zLTMtMyAzIn1dXX0pO3ZhciBuZix1V2U9ZigoKT0+e25mPVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIFJWLHBXZT1mKCgpPT57UlY9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjExIix5OiIxNCIscng6IjEifV1dfSk7dmFyIE9WLGZXZT1mKCgpPT57T1Y9W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV19KTt2YXIgRlYsaFdlPWYoKCk9PntGVj1bWyJwYXRoIix7ZDoibTE5IDUgMy0zIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTEyIDYgNiA2IDIuMy0yLjNhMi40IDIuNCAwIDAgMCAwLTMuNGwtMi42LTIuNmEyLjQgMi40IDAgMCAwLTMuNCAwWiJ9XV19KTt2YXIgQlYsbVdlPWYoKCk9PntCVj1bWyJwYXRoIix7ZDoibTE4Ljg0IDEyLjI1IDEuNzItMS43MWgtLjAyYTUuMDA0IDUuMDA0IDAgMCAwLS4xMi03LjA3IDUuMDA2IDUuMDA2IDAgMCAwLTYuOTUgMGwtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Im01LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIyIix4MjoiNSIseTE6IjgiLHkyOiI4In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTkiLHkyOiIyMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIEhWLGdXZT1mKCgpPT57SFY9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im0xNyA4LTUtNS01IDUifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV1dfSk7dmFyIHFWLGJXZT1mKCgpPT57cVY9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV19KTt2YXIgVlYsdldlPWYoKCk9PntWVj1bWyJwYXRoIix7ZDoibTE2IDExIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIGpWLHhXZT1mKCgpPT57alY9W1sicGF0aCIse2Q6Ik0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE2LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTMuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDEyLjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNy43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxMi4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDE4LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxMy44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBVVix5V2U9ZigoKT0+e1VWPVtbInBhdGgiLHtkOiJNMjAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMyAyMXYtMmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDIuMDcyLjU3OCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgV1Ysd1dlPWYoKCk9PntXVj1bWyJwYXRoIix7ZDoiTTE5IDE2di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNOS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbInJlY3QiLHt4OiIxMyIseToiMTYiLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIuODk5In1dXX0pO3ZhciBHVixNV2U9ZigoKT0+e0dWPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIFlWLGtXZT1mKCgpPT57WVY9W1sicGF0aCIse2Q6Ik0xMS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBLVixTV2U9ZigoKT0+e0tWPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIxOSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIGxmLHpXZT1mKCgpPT57bGY9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dfSk7dmFyIGNmLENXZT1mKCgpPT57Y2Y9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgWlYsX1dlPWYoKCk9PntaVj1bWyJwYXRoIix7ZDoiTTE5IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDEzaDIifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgZGYsVFdlPWYoKCk9PntkZj1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTloLTYifV1dfSk7dmFyIFhWLExXZT1mKCgpPT57WFY9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODcifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV1dfSk7dmFyIHVmLCRXZT1mKCgpPT57dWY9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXX0pO3ZhciBRVixEV2U9ZigoKT0+e1FWPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuOS0xLjkifV1dfSk7dmFyIHBmLEFXZT1mKCgpPT57cGY9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMS44NzMtNyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTctNSA1In1dXX0pO3ZhciBmZixQV2U9ZigoKT0+e2ZmPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTggOCAwIDAgMC0xNiAwIn1dXX0pO3ZhciBKVixFV2U9ZigoKT0+e0pWPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XV19KTt2YXIgZWosSVdlPWYoKCk9Pntlaj1bWyJwYXRoIix7ZDoiTTE2LjA1MSAxMi42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJwYXRoIix7ZDoiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciB0aixOV2U9ZigoKT0+e3RqPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTciLHgyOiIyMiIseTE6IjgiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNyIseTE6IjgiLHkyOiIxMyJ9XV19KTt2YXIgYWosUldlPWYoKCk9Pnthaj1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBoZixPV2U9ZigoKT0+e2hmPVtbInBhdGgiLHtkOiJNMTggMjFhOCA4IDAgMCAwLTE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zIn1dXX0pO3ZhciByaixGV2U9ZigoKT0+e3JqPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQifV0sWyJwYXRoIix7ZDoiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIG1mLEJXZT1mKCgpPT57bWY9W1sicGF0aCIse2Q6Im0xNiAyLTIuMyAyLjNhMyAzIDAgMCAwIDAgNC4ybDEuOCAxLjhhMyAzIDAgMCAwIDQuMiAwTDIyIDgifV0sWyJwYXRoIix7ZDoiTTE1IDE1IDMuMyAzLjNhNC4yIDQuMiAwIDAgMCAwIDZsNy4zIDcuM2MuNy43IDIgLjcgMi44IDBMMTUgMTVabTAgMCA3IDcifV0sWyJwYXRoIix7ZDoibTIuMSAyMS44IDYuNC02LjMifV0sWyJwYXRoIix7ZDoibTE5IDUtNyA3In1dXX0pO3ZhciBnZixIV2U9ZigoKT0+e2dmPVtbInBhdGgiLHtkOiJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3In1dXX0pO3ZhciBzaixxV2U9ZigoKT0+e3NqPVtbInBhdGgiLHtkOiJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMiJ9XSxbInBhdGgiLHtkOiJNOSAxOGg1In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBpaixWV2U9ZigoKT0+e2lqPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik0zIDN2MiJ9XSxbInBhdGgiLHtkOiJNNyAzdjIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInBhdGgiLHtkOiJNMjEgM3YyIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNy03LTcifV1dfSk7dmFyIG9qLGpXZT1mKCgpPT57b2o9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgbmosVVdlPWYoKCk9Pntuaj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTcuOSA3LjkgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEwLjYgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgMTYuMSAyLjctMi43In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEzLjQgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBsaixXV2U9ZigoKT0+e2xqPVtbInBhdGgiLHtkOiJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAifV0sWyJwYXRoIix7ZDoiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIn1dLFsicGF0aCIse2Q6Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIn1dLFsicmVjdCIse3g6IjE3Iix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMTciLHk6IjIiLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgY2osR1dlPWYoKCk9Pntjaj1bWyJwYXRoIix7ZDoiTTE2IDhxNiAwIDYtNi02IDAtNiA2In1dLFsicGF0aCIse2Q6Ik0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCJ9XV19KTt2YXIgZGosWVdlPWYoKCk9Pntkaj1bWyJwYXRoIix7ZDoiTTE4IDExYy0xLjUgMC0yLjUuNS0zIDIifV0sWyJwYXRoIix7ZDoiTTQgNmEyIDIgMCAwIDAtMiAydjRhNSA1IDAgMCAwIDUgNSA4IDggMCAwIDEgNSAyIDggOCAwIDAgMSA1LTIgNSA1IDAgMCAwIDUtNVY4YTIgMiAwIDAgMC0yLTJoLTNhOCA4IDAgMCAwLTUgMiA4IDggMCAwIDAtNS0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMWMxLjUgMCAyLjUuNSAzIDIifV1dfSk7dmFyIHVqLEtXZT1mKCgpPT57dWo9W1sicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNyAyaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMi01LjQ2IDUuNDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNSJ9XV19KTt2YXIgcGosWldlPWYoKCk9Pntwaj1bWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjkiLHI6IjYifV1dfSk7dmFyIGZqLFhXZT1mKCgpPT57Zmo9W1sicGF0aCIse2Q6Im0yIDggMiAyLTIgMiAyIDItMiAyIn1dLFsicGF0aCIse2Q6Im0yMiA4LTIgMiAyIDItMiAyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4djEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxMC4zNFY2YzAtLjU1LS40NS0xLTEtMWgtNC4zNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBoaixRV2U9ZigoKT0+e2hqPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjUiLHJ4OiIxIn1dXX0pO3ZhciBtaixKV2U9ZigoKT0+e21qPVtbInBhdGgiLHtkOiJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGdqLGVHZT1mKCgpPT57Z2o9W1sicGF0aCIse2Q6Im0xNiAxMyA1LjIyMyAzLjQ4MmEuNS41IDAgMCAwIC43NzctLjQxNlY3Ljg3YS41LjUgMCAwIDAtLjc1Mi0uNDMyTDE2IDEwLjUifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE0IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgYmosdEdlPWYoKCk9Pntiaj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTQiLHI6IjIifV1dfSk7dmFyIHZqLGFHZT1mKCgpPT57dmo9W1sicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik0yMSA3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAifV1dfSk7dmFyIHhqLHJHZT1mKCgpPT57eGo9W1sicGF0aCIse2Q6Ik0xMS4xIDcuMWExNi41NSAxNi41NSAwIDAgMSAxMC45IDQifV0sWyJwYXRoIix7ZDoiTTEyIDEyYTEyLjYgMTIuNiAwIDAgMS04LjcgNSJ9XSxbInBhdGgiLHtkOiJNMTYuOCAxMy42YTE2LjU1IDE2LjU1IDAgMCAxLTkgNy41In1dLFsicGF0aCIse2Q6Ik0yMC43IDE3YTEyLjggMTIuOCAwIDAgMC04LjctNSAxMy4zIDEzLjMgMCAwIDEgMC0xMCJ9XSxbInBhdGgiLHtkOiJNNi4zIDMuOGExNi41NSAxNi41NSAwIDAgMCAxLjkgMTEuNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgeWosc0dlPWYoKCk9Pnt5aj1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjEyIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTIiLHI6IjQifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIxOCIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIHdqLGlHZT1mKCgpPT57d2o9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgMCA2In1dXX0pO3ZhciBNaixvR2U9ZigoKT0+e01qPVtbInBhdGgiLHtkOiJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoifV0sWyJwYXRoIix7ZDoiTTE2IDlhNSA1IDAgMCAxIDAgNiJ9XSxbInBhdGgiLHtkOiJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgifV1dfSk7dmFyIGtqLG5HZT1mKCgpPT57a2o9W1sicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCA1LjYzNmE5IDkgMCAwIDEgMS44ODkgOS45NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im03IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEifV0sWyJwYXRoIix7ZDoiTTkuODI4IDQuMTcyQS42ODYuNjg2IDAgMCAxIDExIDQuNjU3di42ODYifV1dfSk7dmFyIFNqLGxHZT1mKCgpPT57U2o9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgemosY0dlPWYoKCk9Pnt6aj1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dXX0pO3ZhciBDaixkR2U9ZigoKT0+e0NqPVtbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oifV0sWyJwYXRoIix7ZDoiTTIyIDE5SDIifV1dfSk7dmFyIF9qLHVHZT1mKCgpPT57X2o9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgMTFoM2MuOCAwIDEuNi4zIDIuMS45bDEuMS45YzEuNiAxLjYgNC4xIDEuNiA1LjcgMGwxLjEtLjljLjUtLjUgMS4zLS45IDIuMS0uOUgyMSJ9XV19KTt2YXIgYmYscEdlPWYoKCk9PntiZj1bWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA3aDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0In1dXX0pO3ZhciBUaixmR2U9ZigoKT0+e1RqPVtbInBhdGgiLHtkOiJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00In1dXX0pO3ZhciBMaixoR2U9ZigoKT0+e0xqPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Im05IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjkiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgdmYsbUdlPWYoKCk9Pnt2Zj1bWyJwYXRoIix7ZDoibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIn1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJNNSA2djQifV0sWyJwYXRoIix7ZDoiTTE5IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyA4SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC00In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkifV1dfSk7dmFyICRqLGdHZT1mKCgpPT57JGo9W1sicGF0aCIse2Q6Ik0xNSA0VjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2di0yIn1dLFsicGF0aCIse2Q6Ik04IDloMiJ9XSxbInBhdGgiLHtkOiJNMjAgOWgyIn1dLFsicGF0aCIse2Q6Ik0xNy44IDExLjggMTkgMTMifV0sWyJwYXRoIix7ZDoiTTE1IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy44IDYuMiAxOSA1In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNMTIuMiA2LjIgMTEgNSJ9XV19KTt2YXIgRGosYkdlPWYoKCk9PntEaj1bWyJwYXRoIix7ZDoiTTE4IDIxVjEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAxLjEzMi0xLjgwM2w3Ljk1LTMuOTc0YTIgMiAwIDAgMSAxLjgzNyAwbDcuOTQ4IDMuOTc0QTIgMiAwIDAgMSAyMiA4eiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV19KTt2YXIgQWosdkdlPWYoKCk9PntBaj1bWyJwYXRoIix7ZDoiTTEyIDEwdjIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJtMTYuMTMgNy42Ni0uODEtNC4wNWEyIDIgMCAwIDAtMi0xLjYxaC0yLjY4YTIgMiAwIDAgMC0yIDEuNjFsLS43OCA0LjA1In1dLFsicGF0aCIse2Q6Im03Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXX0pO3ZhciBQaix4R2U9ZigoKT0+e1BqPVtbInBhdGgiLHtkOiJNMyA2aDMifV0sWyJwYXRoIix7ZDoiTTE3IDZoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIyMCIseDoiMyIseToiMiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMThhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMSAwLTUifV1dfSk7dmFyIEVqLHlHZT1mKCgpPT57RWo9W1sicGF0aCIse2Q6Ik0xMiAxMEwxMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiA2TDEyIDEwTDggNiJ9XSxbInBhdGgiLHtkOiJNMiAxNUMyLjYgMTUuNSAzLjIgMTYgNC41IDE2QzcgMTYgNyAxNCA5LjUgMTRDMTIuMSAxNCAxMS45IDE2IDE0LjUgMTZDMTcgMTYgMTcgMTQgMTkuNSAxNEMyMC44IDE0IDIxLjQgMTQuNSAyMiAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMUMyLjYgMjEuNSAzLjIgMjIgNC41IDIyQzcgMjIgNyAyMCA5LjUgMjBDMTIuMSAyMCAxMS45IDIyIDE0LjUgMjJDMTcgMjIgMTcgMjAgMTkuNSAyMEMyMC44IDIwIDIxLjQgMjAuNSAyMiAyMSJ9XV19KTt2YXIgSWosd0dlPWYoKCk9PntJaj1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMiAxNWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXX0pO3ZhciB4ZixNR2U9ZigoKT0+e3hmPVtbInBhdGgiLHtkOiJNMiAxMnEyLjUgMiA1IDB0NSAwIDUgMCA1IDAifV0sWyJwYXRoIix7ZDoiTTIgMTlxMi41IDIgNSAwdDUgMCA1IDAgNSAwIn1dLFsicGF0aCIse2Q6Ik0yIDVxMi41IDIgNSAwdDUgMCA1IDAgNSAwIn1dXX0pO3ZhciBOaixrR2U9ZigoKT0+e05qPVtbInBhdGgiLHtkOiJNMTkgNWEyIDIgMCAwIDAtMiAydjExIn1dLFsicGF0aCIse2Q6Ik0yIDE4Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTcgMTNoMTAifV0sWyJwYXRoIix7ZDoiTTcgOWgxMCJ9XSxbInBhdGgiLHtkOiJNOSA1YTIgMiAwIDAgMC0yIDJ2MTEifV1dfSk7dmFyIFJqLFNHZT1mKCgpPT57Umo9W1sicGF0aCIse2Q6Ik0xMiAycTIgMi41IDAgNXQwIDUgMCA1IDAgNSJ9XSxbInBhdGgiLHtkOiJNMTkgMnEyIDIuNSAwIDV0MCA1IDAgNSAwIDUifV0sWyJwYXRoIix7ZDoiTTUgMnEyIDIuNSAwIDV0MCA1IDAgNSAwIDUifV1dfSk7dmFyIE9qLHpHZT1mKCgpPT57T2o9W1sicGF0aCIse2Q6Im0xMC41ODYgNS40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoibTE4LjU4NiAxMy40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTIiLHI6IjIifV1dfSk7dmFyIEZqLENHZT1mKCgpPT57Rmo9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV1dfSk7dmFyIEJqLF9HZT1mKCgpPT57Qmo9W1sicGF0aCIse2Q6Ik0xNyAxN2gtNWMtMS4wOS0uMDItMS45NC45Mi0yLjUgMS45QTMgMyAwIDEgMSAyLjU3IDE1In1dLFsicGF0aCIse2Q6Ik05IDMuNGE0IDQgMCAwIDEgNi41Mi42NiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEtNS44YTIuNSAyLjUgMCAwIDAgLjA1Ny0yLjA1In1dLFsicGF0aCIse2Q6Ik0yMC4zIDIwLjNhNCA0IDAgMCAxLTIuMy43In1dLFsicGF0aCIse2Q6Ik0xOC42IDEzYTQgNCAwIDAgMSAzLjM1NyAzLjQxNCJ9XSxbInBhdGgiLHtkOiJtMTIgNiAuNiAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEhqLFRHZT1mKCgpPT57SGo9W1sicGF0aCIse2Q6Ik0xOCAxNi45OGgtNS45OWMtMS4xIDAtMS45NS45NC0yLjQ4IDEuOUE0IDQgMCAwIDEgMiAxN2MuMDEtLjcuMi0xLjQuNTctMiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEzLTUuNzhjLjUzLS45Ny4xLTIuMTgtLjUtMy4xYTQgNCAwIDEgMSA2Ljg5LTQuMDYifV0sWyJwYXRoIix7ZDoibTEyIDYgMy4xMyA1LjczQzE1LjY2IDEyLjcgMTYuOSAxMyAxOCAxM2E0IDQgMCAwIDEgMCA4In1dXX0pO3ZhciBxaixMR2U9ZigoKT0+e3FqPVtbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6In1dLFsicGF0aCIse2Q6Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIFZqLCRHZT1mKCgpPT57Vmo9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA1IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDhaIn1dXX0pO3ZhciBqaixER2U9ZigoKT0+e2pqPVtbInBhdGgiLHtkOiJtMiAyMiAxMC0xMCJ9XSxbInBhdGgiLHtkOiJtMTYgOC0xLjE3IDEuMTcifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NyJ9XSxbInBhdGgiLHtkOiJNMTAuOTEgNS4yNmMuMTUtLjI2LjM0LS41MS41Ni0uNzNMMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAuMjggNC42MiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCJ9XSxbInBhdGgiLHtkOiJNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBVaixBR2U9ZigoKT0+e1VqPVtbInBhdGgiLHtkOiJNMiAyMiAxNiA4In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XV19KTt2YXIgV2osUEdlPWYoKCk9PntXaj1bWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMCA5djYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTQgN3Y4In1dLFsicGF0aCIse2Q6Ik0yMiAxN3YxYzAgLjUtLjUgMS0xIDFIM2MtLjUgMC0xLS41LTEtMXYtMSJ9XV19KTt2YXIgR2osRUdlPWYoKCk9PntHaj1bWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Ik0yIDcuODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsicGF0aCIse2Q6Ik01IDExLjg1OGExMCAxMCAwIDAgMSAxMS41LTEuNzg1In1dLFsicGF0aCIse2Q6Ik04LjUgMTUuNDI5YTUgNSAwIDAgMSAyLjQxMy0xLjMxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIFlqLElHZT1mKCgpPT57WWo9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgS2osTkdlPWYoKCk9PntLaj1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dXX0pO3ZhciBaaixSR2U9ZigoKT0+e1pqPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSJ9XSxbInBhdGgiLHtkOiJNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzIn1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMifV0sWyJwYXRoIix7ZDoiTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIFhqLE9HZT1mKCgpPT57WGo9W1sicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxMC41LTIuMjIyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2In1dXX0pO3ZhciBRaixGR2U9ZigoKT0+e1FqPVtbInBhdGgiLHtkOiJNMTEuOTY1IDEwLjEwNXY0TDEzLjUgMTIuNWE1IDUgMCAwIDEgOCAxLjUifV0sWyJwYXRoIix7ZDoiTTExLjk2NSAxNC4xMDVoNCJ9XSxbInBhdGgiLHtkOiJNMTcuOTY1IDE4LjEwNWg0TDIwLjQzIDE5LjcxYTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTIxLjk2NSAyMi4xMDV2LTQifV0sWyJwYXRoIix7ZDoiTTUgMTIuODZhMTAgMTAgMCAwIDEgMy0yLjAzMiJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWguMDEifV1dfSk7dmFyIEpqLEJHZT1mKCgpPT57Smo9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV1dfSk7dmFyIGVVLEhHZT1mKCgpPT57ZVU9W1sicGF0aCIse2Q6Ik0xMCAydjgifV0sWyJwYXRoIix7ZDoiTTEyLjggMjEuNkEyIDIgMCAxIDAgMTQgMThIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMGEyLjUgMi41IDAgMSAxIDIgNEgyIn1dLFsicGF0aCIse2Q6Im02IDYgNCA0IDQtNCJ9XV19KTt2YXIgdFUscUdlPWYoKCk9Pnt0VT1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgYVUsVkdlPWYoKCk9PnthVT1bWyJwYXRoIix7ZDoiTTEyLjggMTkuNkEyIDIgMCAxIDAgMTQgMTZIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSA4YTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoiTTkuOCA0LjRBMiAyIDAgMSAxIDExIDhIMiJ9XV19KTt2YXIgclUsakdlPWYoKCk9PntyVT1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgzbTcgMGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTcuMzA3IDcuMzA3QTEyLjMzIDEyLjMzIDAgMCAwIDcgMTBhNSA1IDAgMCAwIDcuMzkxIDQuMzkxTTguNjM4IDIuOTgxQzguNzUgMi42NjggOC44NzIgMi4zNCA5IDJoNmMxLjUgNCAyIDYgMiA4IDAgLjQwNy0uMDUuODA5LS4xNDUgMS4xOTgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgc1UsVUdlPWYoKCk9PntzVT1bWyJwYXRoIix7ZDoibTE5IDEyLTEuNSAzIn1dLFsicGF0aCIse2Q6Ik0xOS42MyAxOC44MSAyMiAyMCJ9XSxbInBhdGgiLHtkOiJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6In1dXX0pO3ZhciBpVSxXR2U9ZigoKT0+e2lVPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0YTIgMiAwIDAgMCAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIxMyIseToiMTMiLHJ4OiIyIn1dXX0pO3ZhciBvVSxHR2U9ZigoKT0+e29VPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIn1dXX0pO3ZhciBuVSxZR2U9ZigoKT0+e25VPVtbInBhdGgiLHtkOiJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6In1dXX0pO3ZhciBsVSxLR2U9ZigoKT0+e2xVPVtbInBhdGgiLHtkOiJNMTggNEg2In1dLFsicGF0aCIse2Q6Ik0xOCA4IDYgMjAifV0sWyJwYXRoIix7ZDoibTYgOCAxMiAxMiJ9XV19KTt2YXIgY1UsWkdlPWYoKCk9PntjVT1bWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIn1dXX0pO3ZhciBkVSxYR2U9ZigoKT0+e2RVPVtbInBhdGgiLHtkOiJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3In1dLFsicGF0aCIse2Q6Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIn1dLFsicGF0aCIse2Q6Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIHVVLFFHZT1mKCgpPT57dVU9W1sicGF0aCIse2Q6Ik00IDE0YTEgMSAwIDAgMS0uNzgtMS42M2w5LjktMTAuMmEuNS41IDAgMCAxIC44Ni40NmwtMS45MiA2LjAyQTEgMSAwIDAgMCAxMyAxMGg3YTEgMSAwIDAgMSAuNzggMS42M2wtOS45IDEwLjJhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTR6In1dXX0pO3ZhciBwVSxKR2U9ZigoKT0+e3BVPVtbInBhdGgiLHtkOiJtMiAxMCAyLjQ1Ni0zLjY4NGEuNy43IDAgMCAxIDEuMTA2LS4wMTNsMi4zOSAzLjQxM2EuNy43IDAgMCAwIDEuMDk2LS4wMDFsMi40MDItMy40MzJhLjcuNyAwIDAgMSAxLjA5OCAwbDIuNDAyIDMuNDMyYS43LjcgMCAwIDAgMS4wOTggMGwyLjM4OS0zLjQxM2EuNy43IDAgMCAxIDEuMTA2LjAxM0wyMiAxMCJ9XSxbInBhdGgiLHtkOiJtMiAxOC4wMDIgMi40NTYtMy42ODRhLjcuNyAwIDAgMSAxLjEwNi0uMDEzbDIuMzkgMy40MTNhLjcuNyAwIDAgMCAxLjA5NyAwbDIuNDAyLTMuNDMyYS43LjcgMCAwIDEgMS4wOTggMGwyLjQwMiAzLjQzMmEuNy43IDAgMCAwIDEuMDk4IDBsMi4zODktMy40MTNhLjcuNyAwIDAgMSAxLjEwNi4wMTNMMjIgMTguMDAyIn1dXX0pO3ZhciBmVSxlWWU9ZigoKT0+e2ZVPVtbInBhdGgiLHtkOiJNMTIgNy41YTQuNSA0LjUgMCAxIDEgNSA0LjUifV0sWyJwYXRoIix7ZDoiTTcgMTJhNC41IDQuNSAwIDEgMSA1LTQuNVYyMSJ9XV19KTt2YXIgaFUsdFllPWYoKCk9PntoVT1bWyJwYXRoIix7ZDoiTTIxIDE0LjVBOSA2LjUgMCAwIDEgNS41IDE5In1dLFsicGF0aCIse2Q6Ik0zIDkuNUE5IDYuNSAwIDAgMSAxOC41IDUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE0LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiI5LjUiLHI6IjMuNSJ9XV19KTt2YXIgbVUsYVllPWYoKCk9PnttVT1bWyJwYXRoIix7ZDoiTTExIDIxYTMgMyAwIDAgMCAzLTNWNi41YTEgMSAwIDAgMC03IDAifV0sWyJwYXRoIix7ZDoiTTcgMTlWNmEzIDMgMCAwIDAtMy0zaDAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgZ1UsclllPWYoKCk9PntnVT1bWyJwYXRoIix7ZDoiTTE2IDQuNTI1djE0Ljk0OCJ9XSxbInBhdGgiLHtkOiJNMjAgM0ExNyAxNyAwIDAgMSA0IDMifV0sWyJwYXRoIix7ZDoiTTQgMjFhMTcgMTcgMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNOCA0LjUyNXYxNC45NDgifV1dfSk7dmFyIGJVLHNZZT1mKCgpPT57YlU9W1sicGF0aCIse2Q6Ik0xMCAxNmMwLTQtMy00LjUtMy04YTUgNSAwIDAgMSAxMCAwYzAgMy40NjYtMyA2LjE5Ni0zIDEwYTMgMyAwIDAgMCA2IDAifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciB2VSxpWWU9ZigoKT0+e3ZVPVtbInBhdGgiLHtkOiJNMyAxNmg2Ljg1N2MuMTYyLS4wMTIuMTktLjMyMy4wMzgtLjM4YTYgNiAwIDEgMSA0LjIxMiAwYy0uMTUzLjA1Ny0uMTI1LjM2OC4wMzguMzhIMjEifV0sWyJwYXRoIix7ZDoiTTMgMjBoMTgifV1dfSk7dmFyIHhVLG9ZZT1mKCgpPT57eFU9W1sicGF0aCIse2Q6Ik0zIDEwQTYuMDYgNi4wNiAwIDAgMSAxMiAxMCBBNi4wNiA2LjA2IDAgMCAwIDIxIDEwIn1dLFsicGF0aCIse2Q6Ik02IDN2MTJhNiA2IDAgMCAwIDEyIDBWMyJ9XV19KTt2YXIgeVUsblllPWYoKCk9Pnt5VT1bWyJwYXRoIix7ZDoiTTE5IDIxYTE1IDE1IDAgMCAxIDAtMTgifV0sWyJwYXRoIix7ZDoiTTIwIDEySDQifV0sWyJwYXRoIix7ZDoiTTUgM2ExNSAxNSAwIDAgMSAwIDE4In1dXX0pO3ZhciB3VSxsWWU9ZigoKT0+e3dVPVtbInBhdGgiLHtkOiJNMTAgMTlWNS41YTEgMSAwIDAgMSA1IDBWMTdhMiAyIDAgMCAwIDIgMmg1bC0zLTMifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJNNSAxOVY1LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNSA1LjVBMi41IDIuNSAwIDAgMCAyLjUgMyJ9XV19KTt2YXIgTVUsY1llPWYoKCk9PntNVT1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAzIDMgMjEifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIGtVLGRZZT1mKCgpPT57a1U9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTUiLHI6IjYifV0sWyJwYXRoIix7ZDoiTTE4IDNBNiA2IDAgMCAxIDYgMyJ9XV19KTt2YXIgU1UsdVllPWYoKCk9PntTVT1bWyJwYXRoIix7ZDoiTTExIDUuNWExIDEgMCAwIDEgNSAwVjE2YTUgNSAwIDAgMCA1IDUifV0sWyJwYXRoIix7ZDoiTTE2IDExLjVhMSAxIDAgMCAxIDUgMFYxNmE1IDUgMCAwIDEtNSA1In1dLFsicGF0aCIse2Q6Ik02IDE5VjZhMyAzIDAgMCAwLTMtM2gwIn1dLFsicGF0aCIse2Q6Ik02IDUuNWExIDEgMCAwIDEgNSAwVjE5In1dXX0pO3ZhciB6VSxwWWU9ZigoKT0+e3pVPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiMTEiLHgyOiIxMSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV19KTt2YXIgQ1UsZlllPWYoKCk9PntDVT1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIHlmPXt9O2x0KHlmLHtBQXJyb3dEb3duOigpPT5ndixBQXJyb3dVcDooKT0+YnYsQUxhcmdlU21hbGw6KCk9PnZ2LEFjY2Vzc2liaWxpdHk6KCk9Pnh2LEFjdGl2aXR5OigpPT55dixBY3Rpdml0eVNxdWFyZTooKT0+WnUsQWlyVmVudDooKT0+d3YsQWlycGxheTooKT0+TXYsQWxhcm1DaGVjazooKT0+dWQsQWxhcm1DbG9jazooKT0+U3YsQWxhcm1DbG9ja0NoZWNrOigpPT51ZCxBbGFybUNsb2NrTWludXM6KCk9PnBkLEFsYXJtQ2xvY2tPZmY6KCk9Pmt2LEFsYXJtQ2xvY2tQbHVzOigpPT5mZCxBbGFybU1pbnVzOigpPT5wZCxBbGFybVBsdXM6KCk9PmZkLEFsYXJtU21va2U6KCk9Pnp2LEFsYnVtOigpPT5DdixBbGVydENpcmNsZTooKT0+SGQsQWxlcnRPY3RhZ29uOigpPT56dSxBbGVydFRyaWFuZ2xlOigpPT5zZixBbGlnbkNlbnRlcjooKT0+WHAsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5fdixBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5UdixBbGlnbkVuZEhvcml6b250YWw6KCk9Pkx2LEFsaWduRW5kVmVydGljYWw6KCk9PkR2LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PiR2LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PkF2LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+UHYsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+RXYsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+SXYsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5OdixBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+UnYsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5CdixBbGlnbkp1c3RpZnk6KCk9PkpwLEFsaWduTGVmdDooKT0+bmMsQWxpZ25SaWdodDooKT0+UXAsQWxpZ25TdGFydEhvcml6b250YWw6KCk9Pk92LEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+RnYsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Pkh2LEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5xdixBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5WdixBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+anYsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PlV2LEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9Pld2LEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+R3YsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+WXYsQW1idWxhbmNlOigpPT5LdixBbXBlcnNhbmQ6KCk9Plh2LEFtcGVyc2FuZHM6KCk9Plp2LEFtcGhvcmE6KCk9PlF2LEFuY2hvcjooKT0+SnYsQW5ncnk6KCk9PmV4LEFubm95ZWQ6KCk9PnR4LEFudGVubmE6KCk9PmF4LEFudmlsOigpPT5yeCxBcGVydHVyZTooKT0+c3gsQXBwV2luZG93OigpPT5veCxBcHBXaW5kb3dNYWM6KCk9Pml4LEFwcGxlOigpPT5seCxBcmNoaXZlOigpPT51eCxBcmNoaXZlUmVzdG9yZTooKT0+bngsQXJjaGl2ZVg6KCk9PmN4LEFyZWFDaGFydDooKT0+VGQsQXJtY2hhaXI6KCk9PmR4LEFycm93QmlnRG93bjooKT0+ZngsQXJyb3dCaWdEb3duRGFzaDooKT0+cHgsQXJyb3dCaWdMZWZ0OigpPT5oeCxBcnJvd0JpZ0xlZnREYXNoOigpPT5teCxBcnJvd0JpZ1JpZ2h0OigpPT5ieCxBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+Z3gsQXJyb3dCaWdVcDooKT0+eHgsQXJyb3dCaWdVcERhc2g6KCk9PnZ4LEFycm93RG93bjooKT0+THgsQXJyb3dEb3duMDE6KCk9Pnl4LEFycm93RG93bjEwOigpPT53eCxBcnJvd0Rvd25BWjooKT0+aGQsQXJyb3dEb3duQXo6KCk9PmhkLEFycm93RG93bkNpcmNsZTooKT0+cWQsQXJyb3dEb3duRnJvbUxpbmU6KCk9Pk14LEFycm93RG93bkxlZnQ6KCk9Pmt4LEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5qZCxBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+dHAsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+WHUsQXJyb3dEb3duTmFycm93V2lkZTooKT0+U3gsQXJyb3dEb3duUmlnaHQ6KCk9Pnp4LEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+VWQsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5hcCxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+UXUsQXJyb3dEb3duU3F1YXJlOigpPT5KdSxBcnJvd0Rvd25Ub0RvdDooKT0+Q3gsQXJyb3dEb3duVG9MaW5lOigpPT5UeCxBcnJvd0Rvd25VcDooKT0+X3gsQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+bWQsQXJyb3dEb3duWkE6KCk9PmdkLEFycm93RG93blphOigpPT5nZCxBcnJvd0xlZnQ6KCk9PkV4LEFycm93TGVmdENpcmNsZTooKT0+VmQsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PiR4LEFycm93TGVmdFJpZ2h0OigpPT5EeCxBcnJvd0xlZnRTcXVhcmU6KCk9PmVwLEFycm93TGVmdFRvTGluZTooKT0+QXgsQXJyb3dSaWdodDooKT0+UngsQXJyb3dSaWdodENpcmNsZTooKT0+WWQsQXJyb3dSaWdodEZyb21MaW5lOigpPT5QeCxBcnJvd1JpZ2h0TGVmdDooKT0+SXgsQXJyb3dSaWdodFNxdWFyZTooKT0+aXAsQXJyb3dSaWdodFRvTGluZTooKT0+TngsQXJyb3dVcDooKT0+R3gsQXJyb3dVcDAxOigpPT5GeCxBcnJvd1VwMTA6KCk9Pk94LEFycm93VXBBWjooKT0+YmQsQXJyb3dVcEF6OigpPT5iZCxBcnJvd1VwQ2lyY2xlOigpPT5LZCxBcnJvd1VwRG93bjooKT0+QngsQXJyb3dVcEZyb21Eb3Q6KCk9Pkh4LEFycm93VXBGcm9tTGluZTooKT0+cXgsQXJyb3dVcExlZnQ6KCk9PlZ4LEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+V2QsQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT5ycCxBcnJvd1VwTGVmdFNxdWFyZTooKT0+b3AsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PnZkLEFycm93VXBSaWdodDooKT0+angsQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+R2QsQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+c3AsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT5ucCxBcnJvd1VwU3F1YXJlOigpPT5scCxBcnJvd1VwVG9MaW5lOigpPT5XeCxBcnJvd1VwV2lkZU5hcnJvdzooKT0+VXgsQXJyb3dVcFpBOigpPT54ZCxBcnJvd1VwWmE6KCk9PnhkLEFycm93c1VwRnJvbUxpbmU6KCk9Pkt4LEFzdGVyaXNrOigpPT5ZeCxBc3Rlcmlza1NxdWFyZTooKT0+Y3AsQXN0cm9pZDooKT0+WngsQXRTaWduOigpPT5YeCxBdG9tOigpPT5ReCxBdWRpb0xpbmVzOigpPT5KeCxBdWRpb1dhdmVmb3JtOigpPT5leSxBd2FyZDooKT0+dHksQXhlOigpPT5heSxBeGlzM0Q6KCk9PnlkLEF4aXMzZDooKT0+eWQsQmFieTooKT0+cnksQmFja3BhY2s6KCk9PnN5LEJhZGdlOigpPT55eSxCYWRnZUFsZXJ0OigpPT5peSxCYWRnZUNlbnQ6KCk9Pm95LEJhZGdlQ2hlY2s6KCk9PndkLEJhZGdlRG9sbGFyU2lnbjooKT0+bnksQmFkZ2VFdXJvOigpPT5seSxCYWRnZUhlbHA6KCk9Pk1kLEJhZGdlSW5kaWFuUnVwZWU6KCk9PmN5LEJhZGdlSW5mbzooKT0+ZHksQmFkZ2VKYXBhbmVzZVllbjooKT0+dXksQmFkZ2VNaW51czooKT0+cHksQmFkZ2VQZXJjZW50OigpPT5meSxCYWRnZVBsdXM6KCk9Pmh5LEJhZGdlUG91bmRTdGVybGluZzooKT0+bXksQmFkZ2VRdWVzdGlvbk1hcms6KCk9Pk1kLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5ieSxCYWRnZVN3aXNzRnJhbmM6KCk9Pmd5LEJhZGdlVHVya2lzaExpcmE6KCk9PnZ5LEJhZGdlWDooKT0+eHksQmFnZ2FnZUNsYWltOigpPT53eSxCYWxsb29uOigpPT5reSxCYW46KCk9Pk15LEJhbmFuYTooKT0+U3ksQmFuZGFnZTooKT0+enksQmFua25vdGU6KCk9Pkx5LEJhbmtub3RlQXJyb3dEb3duOigpPT5feSxCYW5rbm90ZUFycm93VXA6KCk9PkN5LEJhbmtub3RlWDooKT0+VHksQmFyQ2hhcnQ6KCk9Pk5kLEJhckNoYXJ0MjooKT0+UmQsQmFyQ2hhcnQzOigpPT5FZCxCYXJDaGFydDQ6KCk9PlBkLEJhckNoYXJ0QmlnOigpPT5BZCxCYXJDaGFydEhvcml6b250YWw6KCk9PiRkLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+TGQsQmFyY29kZTooKT0+JHksQmFycmVsOigpPT5EeSxCYXNlbGluZTooKT0+QXksQmF0aDooKT0+UHksQmF0dGVyeTooKT0+QnksQmF0dGVyeUNoYXJnaW5nOigpPT5FeSxCYXR0ZXJ5RnVsbDooKT0+SXksQmF0dGVyeUxvdzooKT0+TnksQmF0dGVyeU1lZGl1bTooKT0+UnksQmF0dGVyeVBsdXM6KCk9Pk95LEJhdHRlcnlXYXJuaW5nOigpPT5GeSxCZWFrZXI6KCk9PnF5LEJlYW46KCk9Pmp5LEJlYW5PZmY6KCk9Pkh5LEJlZDooKT0+R3ksQmVkRG91YmxlOigpPT5WeSxCZWRTaW5nbGU6KCk9PlV5LEJlZWY6KCk9Pll5LEJlZWZPZmY6KCk9Pld5LEJlZXI6KCk9Plp5LEJlZXJPZmY6KCk9Pkt5LEJlbGw6KCk9PnN3LEJlbGxDaGVjazooKT0+WHksQmVsbERvdDooKT0+UXksQmVsbEVsZWN0cmljOigpPT5KeSxCZWxsTWludXM6KCk9PnR3LEJlbGxPZmY6KCk9PmV3LEJlbGxQbHVzOigpPT5hdyxCZWxsUmluZzooKT0+cncsQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+a2QsQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT5TZCxCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+a2QsQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+U2QsQmV0d2VlblZlcnRpY2FsRW5kOigpPT5pdyxCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+b3csQmljZXBzRmxleGVkOigpPT5udyxCaWtlOigpPT5sdyxCaW5hcnk6KCk9PmN3LEJpbm9jdWxhcnM6KCk9PmR3LEJpb2hhemFyZDooKT0+dXcsQmlyZDooKT0+cHcsQmlyZGhvdXNlOigpPT5mdyxCaXRjb2luOigpPT5odyxCbGVuZDooKT0+bXcsQmxpbmRzOigpPT5ndyxCbG9ja3M6KCk9PmJ3LEJsdWV0b290aDooKT0+eXcsQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT52dyxCbHVldG9vdGhPZmY6KCk9Pnh3LEJsdWV0b290aFNlYXJjaGluZzooKT0+d3csQm9sZDooKT0+TXcsQm9sdDooKT0+U3csQm9tYjooKT0+a3csQm9uZTooKT0+encsQm9vazooKT0+WncsQm9va0E6KCk9PkN3LEJvb2tBbGVydDooKT0+X3csQm9va0F1ZGlvOigpPT5UdyxCb29rQ2hlY2s6KCk9Pkx3LEJvb2tDb3B5OigpPT4kdyxCb29rRGFzaGVkOigpPT56ZCxCb29rRG93bjooKT0+RHcsQm9va0hlYWRwaG9uZXM6KCk9PkF3LEJvb2tIZWFydDooKT0+UHcsQm9va0ltYWdlOigpPT5FdyxCb29rS2V5OigpPT5JdyxCb29rTG9jazooKT0+UncsQm9va01hcmtlZDooKT0+TncsQm9va01pbnVzOigpPT5PdyxCb29rT3BlbjooKT0+cXcsQm9va09wZW5DaGVjazooKT0+RncsQm9va09wZW5UZXh0OigpPT5CdyxCb29rUGx1czooKT0+VncsQm9va1NlYXJjaDooKT0+SHcsQm9va1RlbXBsYXRlOigpPT56ZCxCb29rVGV4dDooKT0+ancsQm9va1R5cGU6KCk9Pkd3LEJvb2tVcDooKT0+V3csQm9va1VwMjooKT0+VXcsQm9va1VzZXI6KCk9Pll3LEJvb2tYOigpPT5LdyxCb29rbWFyazooKT0+YU0sQm9va21hcmtDaGVjazooKT0+WHcsQm9va21hcmtNaW51czooKT0+UXcsQm9va21hcmtPZmY6KCk9Pkp3LEJvb2ttYXJrUGx1czooKT0+ZU0sQm9va21hcmtYOigpPT50TSxCb29tQm94OigpPT5yTSxCb3Q6KCk9Pm9NLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnNNLEJvdE9mZjooKT0+aU0sQm90dGxlV2luZTooKT0+bE0sQm93QXJyb3c6KCk9Pm5NLEJveDooKT0+Y00sQm94U2VsZWN0OigpPT5NcCxCb3hlczooKT0+ZE0sQnJhY2VzOigpPT5DZCxCcmFja2V0czooKT0+dU0sQnJhaW46KCk9Pm1NLEJyYWluQ2lyY3VpdDooKT0+cE0sQnJhaW5Db2c6KCk9PmZNLEJyaWNrV2FsbDooKT0+Yk0sQnJpY2tXYWxsRmlyZTooKT0+aE0sQnJpY2tXYWxsU2hpZWxkOigpPT5nTSxCcmllZmNhc2U6KCk9PndNLEJyaWVmY2FzZUJ1c2luZXNzOigpPT52TSxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PnhNLEJyaWVmY2FzZU1lZGljYWw6KCk9PnlNLEJyaW5nVG9Gcm9udDooKT0+TU0sQnJ1c2g6KCk9PlNNLEJydXNoQ2xlYW5pbmc6KCk9PmtNLEJ1YmJsZXM6KCk9PkNNLEJ1ZzooKT0+VE0sQnVnT2ZmOigpPT56TSxCdWdQbGF5OigpPT5fTSxCdWlsZGluZzooKT0+TE0sQnVpbGRpbmcyOigpPT4kTSxCdXM6KCk9PkFNLEJ1c0Zyb250OigpPT5ETSxDYWJsZTooKT0+UE0sQ2FibGVDYXI6KCk9PkVNLENha2U6KCk9Pk5NLENha2VTbGljZTooKT0+SU0sQ2FsY3VsYXRvcjooKT0+T00sQ2FsZW5kYXI6KCk9PnNrLENhbGVuZGFyMTooKT0+Uk0sQ2FsZW5kYXJBcnJvd0Rvd246KCk9PkZNLENhbGVuZGFyQXJyb3dVcDooKT0+Qk0sQ2FsZW5kYXJDaGVjazooKT0+cU0sQ2FsZW5kYXJDaGVjazI6KCk9PkhNLENhbGVuZGFyQ2xvY2s6KCk9PlZNLENhbGVuZGFyQ29nOigpPT5qTSxDYWxlbmRhckRheXM6KCk9PlVNLENhbGVuZGFyRm9sZDooKT0+V00sQ2FsZW5kYXJIZWFydDooKT0+WU0sQ2FsZW5kYXJNaW51czooKT0+Wk0sQ2FsZW5kYXJNaW51czI6KCk9PkdNLENhbGVuZGFyT2ZmOigpPT5LTSxDYWxlbmRhclBsdXM6KCk9PkpNLENhbGVuZGFyUGx1czI6KCk9PlhNLENhbGVuZGFyUmFuZ2U6KCk9PlFNLENhbGVuZGFyU2VhcmNoOigpPT5layxDYWxlbmRhclN5bmM6KCk9PnRrLENhbGVuZGFyWDooKT0+cmssQ2FsZW5kYXJYMjooKT0+YWssQ2FsZW5kYXJzOigpPT5payxDYW1lcmE6KCk9Pm5rLENhbWVyYU9mZjooKT0+b2ssQ2FuZGxlc3RpY2tDaGFydDooKT0+RGQsQ2FuZHk6KCk9PmNrLENhbmR5Q2FuZTooKT0+bGssQ2FuZHlPZmY6KCk9PmRrLENhbm5hYmlzOigpPT5wayxDYW5uYWJpc09mZjooKT0+dWssQ2FwdGlvbnM6KCk9Pl9kLENhcHRpb25zT2ZmOigpPT5mayxDYXI6KCk9Pm1rLENhckZyb250OigpPT5oayxDYXJUYXhpRnJvbnQ6KCk9PmdrLENhcmF2YW46KCk9PmJrLENhcmRTaW06KCk9PnZrLENhcnJvdDooKT0+eGssQ2FzZUxvd2VyOigpPT55ayxDYXNlU2Vuc2l0aXZlOigpPT53ayxDYXNlVXBwZXI6KCk9Pk1rLENhc3NldHRlVGFwZTooKT0+a2ssQ2FzdDooKT0+U2ssQ2FzdGxlOigpPT56ayxDYXQ6KCk9PkNrLENjdHY6KCk9PlRrLENjdHZPZmY6KCk9Pl9rLENoYXJ0QXJlYTooKT0+VGQsQ2hhcnRCYXI6KCk9PiRkLENoYXJ0QmFyQmlnOigpPT5MZCxDaGFydEJhckRlY3JlYXNpbmc6KCk9PkxrLENoYXJ0QmFySW5jcmVhc2luZzooKT0+JGssQ2hhcnRCYXJTdGFja2VkOigpPT5EayxDaGFydENhbmRsZXN0aWNrOigpPT5EZCxDaGFydENvbHVtbjooKT0+RWQsQ2hhcnRDb2x1bW5CaWc6KCk9PkFkLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+QWssQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5QZCxDaGFydENvbHVtblN0YWNrZWQ6KCk9PlBrLENoYXJ0R2FudHQ6KCk9PkVrLENoYXJ0TGluZTooKT0+SWQsQ2hhcnROZXR3b3JrOigpPT5JayxDaGFydE5vQXhlc0NvbHVtbjooKT0+UmQsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5OayxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9Pk5kLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PlJrLENoYXJ0Tm9BeGVzR2FudHQ6KCk9Pk9kLENoYXJ0UGllOigpPT5GZCxDaGFydFNjYXR0ZXI6KCk9PkJkLENoYXJ0U3BsaW5lOigpPT5PayxDaGVjazooKT0+SGssQ2hlY2tDaGVjazooKT0+RmssQ2hlY2tDaXJjbGU6KCk9PlpkLENoZWNrQ2lyY2xlMjooKT0+WGQsQ2hlY2tMaW5lOigpPT5CayxDaGVja1NxdWFyZTooKT0+ZnAsQ2hlY2tTcXVhcmUyOigpPT5ocCxDaGVmSGF0OigpPT5xayxDaGVycnk6KCk9PlZrLENoZXNzQmlzaG9wOigpPT5VayxDaGVzc0tpbmc6KCk9PmprLENoZXNzS25pZ2h0OigpPT5XayxDaGVzc1Bhd246KCk9PkdrLENoZXNzUXVlZW46KCk9PlprLENoZXNzUm9vazooKT0+WWssQ2hldnJvbkRvd246KCk9PktrLENoZXZyb25Eb3duQ2lyY2xlOigpPT5KZCxDaGV2cm9uRG93blNxdWFyZTooKT0+bXAsQ2hldnJvbkZpcnN0OigpPT5YayxDaGV2cm9uTGFzdDooKT0+UWssQ2hldnJvbkxlZnQ6KCk9PkprLENoZXZyb25MZWZ0Q2lyY2xlOigpPT5RZCxDaGV2cm9uTGVmdFNxdWFyZTooKT0+Z3AsQ2hldnJvblJpZ2h0OigpPT5lUyxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmU2LENoZXZyb25SaWdodFNxdWFyZTooKT0+YnAsQ2hldnJvblVwOigpPT50UyxDaGV2cm9uVXBDaXJjbGU6KCk9PnQ2LENoZXZyb25VcFNxdWFyZTooKT0+dnAsQ2hldnJvbnNEb3duOigpPT5yUyxDaGV2cm9uc0Rvd25VcDooKT0+YVMsQ2hldnJvbnNMZWZ0OigpPT5vUyxDaGV2cm9uc0xlZnRSaWdodDooKT0+aVMsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+c1MsQ2hldnJvbnNSaWdodDooKT0+bFMsQ2hldnJvbnNSaWdodExlZnQ6KCk9Pm5TLENoZXZyb25zVXA6KCk9PmNTLENoZXZyb25zVXBEb3duOigpPT5kUyxDaHVyY2g6KCk9PnVTLENpZ2FyZXR0ZTooKT0+ZlMsQ2lnYXJldHRlT2ZmOigpPT5wUyxDaXJjbGU6KCk9PlRTLENpcmNsZUFsZXJ0OigpPT5IZCxDaXJjbGVBcnJvd0Rvd246KCk9PnFkLENpcmNsZUFycm93TGVmdDooKT0+VmQsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+amQsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PlVkLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5XZCxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PkdkLENpcmNsZUFycm93UmlnaHQ6KCk9PllkLENpcmNsZUFycm93VXA6KCk9PktkLENpcmNsZUNoZWNrOigpPT5YZCxDaXJjbGVDaGVja0JpZzooKT0+WmQsQ2lyY2xlQ2hldnJvbkRvd246KCk9PkpkLENpcmNsZUNoZXZyb25MZWZ0OigpPT5RZCxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmU2LENpcmNsZUNoZXZyb25VcDooKT0+dDYsQ2lyY2xlRGFzaGVkOigpPT5oUyxDaXJjbGVEaXZpZGU6KCk9PmE2LENpcmNsZURvbGxhclNpZ246KCk9Pm1TLENpcmNsZURvdDooKT0+dlMsQ2lyY2xlRG90RGFzaGVkOigpPT5nUyxDaXJjbGVFbGxpcHNpczooKT0+YlMsQ2lyY2xlRXF1YWw6KCk9PnhTLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PnlTLENpcmNsZUZhZGluZ1BsdXM6KCk9PndTLENpcmNsZUdhdWdlOigpPT5yNixDaXJjbGVIZWxwOigpPT5KbCxDaXJjbGVNaW51czooKT0+czYsQ2lyY2xlT2ZmOigpPT5NUyxDaXJjbGVQYXJraW5nOigpPT5vNixDaXJjbGVQYXJraW5nT2ZmOigpPT5pNixDaXJjbGVQYXVzZTooKT0+bjYsQ2lyY2xlUGVyY2VudDooKT0+bDYsQ2lyY2xlUGlsZTooKT0+a1MsQ2lyY2xlUGxheTooKT0+YzYsQ2lyY2xlUGx1czooKT0+ZDYsQ2lyY2xlUG91bmRTdGVybGluZzooKT0+U1MsQ2lyY2xlUG93ZXI6KCk9PnU2LENpcmNsZVF1ZXN0aW9uTWFyazooKT0+SmwsQ2lyY2xlU2xhc2g6KCk9PnpTLENpcmNsZVNsYXNoMjooKT0+cDYsQ2lyY2xlU2xhc2hlZDooKT0+cDYsQ2lyY2xlU21hbGw6KCk9PkNTLENpcmNsZVN0YXI6KCk9Pl9TLENpcmNsZVN0b3A6KCk9PmY2LENpcmNsZVVzZXI6KCk9Pm02LENpcmNsZVVzZXJSb3VuZDooKT0+aDYsQ2lyY2xlWDooKT0+ZzYsQ2lyY3VpdEJvYXJkOigpPT5MUyxDaXRydXM6KCk9PiRTLENsYXBwZXJib2FyZDooKT0+RFMsQ2xpcGJvYXJkOigpPT5xUyxDbGlwYm9hcmRDaGVjazooKT0+QVMsQ2xpcGJvYXJkQ2xvY2s6KCk9PlBTLENsaXBib2FyZENvcHk6KCk9PkVTLENsaXBib2FyZEVkaXQ6KCk9PnY2LENsaXBib2FyZExpc3Q6KCk9PklTLENsaXBib2FyZE1pbnVzOigpPT5OUyxDbGlwYm9hcmRQYXN0ZTooKT0+UlMsQ2xpcGJvYXJkUGVuOigpPT52NixDbGlwYm9hcmRQZW5MaW5lOigpPT5iNixDbGlwYm9hcmRQbHVzOigpPT5PUyxDbGlwYm9hcmRTaWduYXR1cmU6KCk9PmI2LENsaXBib2FyZFR5cGU6KCk9PkZTLENsaXBib2FyZFg6KCk9PkJTLENsb2NrOigpPT5veixDbG9jazE6KCk9PkhTLENsb2NrMTA6KCk9PlZTLENsb2NrMTE6KCk9PmpTLENsb2NrMTI6KCk9PlVTLENsb2NrMjooKT0+V1MsQ2xvY2szOigpPT5HUyxDbG9jazQ6KCk9PllTLENsb2NrNTooKT0+S1MsQ2xvY2s2OigpPT5aUyxDbG9jazc6KCk9PlFTLENsb2NrODooKT0+WFMsQ2xvY2s5OigpPT5KUyxDbG9ja0FsZXJ0OigpPT5leixDbG9ja0Fycm93RG93bjooKT0+dHosQ2xvY2tBcnJvd1VwOigpPT5heixDbG9ja0NoZWNrOigpPT5yeixDbG9ja0ZhZGluZzooKT0+c3osQ2xvY2tQbHVzOigpPT5peixDbG9zZWRDYXB0aW9uOigpPT5ueixDbG91ZDooKT0+enosQ2xvdWRBbGVydDooKT0+bHosQ2xvdWRCYWNrdXA6KCk9PmN6LENsb3VkQ2hlY2s6KCk9PmR6LENsb3VkQ29nOigpPT51eixDbG91ZERvd25sb2FkOigpPT54NixDbG91ZERyaXp6bGU6KCk9PnB6LENsb3VkRm9nOigpPT5oeixDbG91ZEhhaWw6KCk9PmZ6LENsb3VkTGlnaHRuaW5nOigpPT5teixDbG91ZE1vb246KCk9PmJ6LENsb3VkTW9vblJhaW46KCk9Pmd6LENsb3VkT2ZmOigpPT54eixDbG91ZFJhaW46KCk9Pnl6LENsb3VkUmFpbldpbmQ6KCk9PnZ6LENsb3VkU25vdzooKT0+d3osQ2xvdWRTdW46KCk9PlN6LENsb3VkU3VuUmFpbjooKT0+TXosQ2xvdWRTeW5jOigpPT5reixDbG91ZFVwbG9hZDooKT0+eTYsQ2xvdWR5OigpPT5DeixDbG92ZXI6KCk9Pl96LENsdWI6KCk9PlR6LENvZGU6KCk9Pkx6LENvZGUyOigpPT53NixDb2RlU3F1YXJlOigpPT54cCxDb2RlWG1sOigpPT53NixDb2ZmZWU6KCk9PiR6LENvZzooKT0+RHosQ29pbnM6KCk9PkF6LENvbHVtbnM6KCk9Pk02LENvbHVtbnMyOigpPT5NNixDb2x1bW5zMzooKT0+azYsQ29sdW1uczNDb2c6KCk9PmVjLENvbHVtbnM0OigpPT5QeixDb2x1bW5zU2V0dGluZ3M6KCk9PmVjLENvbWJpbmU6KCk9PkV6LENvbW1hbmQ6KCk9Pkl6LENvbXBhc3M6KCk9Pk56LENvbXBvbmVudDooKT0+UnosQ29tcHV0ZXI6KCk9Pk96LENvbmNpZXJnZUJlbGw6KCk9PkZ6LENvbmU6KCk9PkJ6LENvbnN0cnVjdGlvbjooKT0+SHosQ29udGFjdDooKT0+cXosQ29udGFjdDI6KCk9PlM2LENvbnRhY3RSb3VuZDooKT0+UzYsQ29udGFpbmVyOigpPT5WeixDb250cmFzdDooKT0+anosQ29va2llOigpPT5VeixDb29raW5nUG90OigpPT5XeixDb3B5OigpPT5ReixDb3B5Q2hlY2s6KCk9Pkd6LENvcHlNaW51czooKT0+WXosQ29weVBsdXM6KCk9Pkt6LENvcHlTbGFzaDooKT0+WnosQ29weVg6KCk9Plh6LENvcHlsZWZ0OigpPT5KeixDb3B5cmlnaHQ6KCk9PmVDLENvcm5lckRvd25MZWZ0OigpPT50QyxDb3JuZXJEb3duUmlnaHQ6KCk9PmFDLENvcm5lckxlZnREb3duOigpPT5yQyxDb3JuZXJMZWZ0VXA6KCk9PnNDLENvcm5lclJpZ2h0RG93bjooKT0+aUMsQ29ybmVyUmlnaHRVcDooKT0+b0MsQ29ybmVyVXBMZWZ0OigpPT5uQyxDb3JuZXJVcFJpZ2h0OigpPT5sQyxDcHU6KCk9PmNDLENyZWF0aXZlQ29tbW9uczooKT0+ZEMsQ3JlZGl0Q2FyZDooKT0+dUMsQ3JvaXNzYW50OigpPT5wQyxDcm9wOigpPT5mQyxDcm9zczooKT0+aEMsQ3Jvc3NoYWlyOigpPT5tQyxDcm93bjooKT0+Z0MsQ3Vib2lkOigpPT5iQyxDdXBTb2RhOigpPT52QyxDdXJseUJyYWNlczooKT0+Q2QsQ3VycmVuY3k6KCk9PnhDLEN5bGluZGVyOigpPT55QyxEYW06KCk9PndDLERhdGFiYXNlOigpPT56QyxEYXRhYmFzZUJhY2t1cDooKT0+TUMsRGF0YWJhc2VTZWFyY2g6KCk9PlNDLERhdGFiYXNlWmFwOigpPT5rQyxEZWNpbWFsc0Fycm93TGVmdDooKT0+Q0MsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5fQyxEZWxldGU6KCk9PlRDLERlc3NlcnQ6KCk9PkxDLERpYW1ldGVyOigpPT4kQyxEaWFtb25kOigpPT5QQyxEaWFtb25kTWludXM6KCk9PkRDLERpYW1vbmRQZXJjZW50OigpPT56NixEaWFtb25kUGx1czooKT0+QUMsRGljZTE6KCk9PkVDLERpY2UyOigpPT5JQyxEaWNlMzooKT0+TkMsRGljZTQ6KCk9PlJDLERpY2U1OigpPT5PQyxEaWNlNjooKT0+RkMsRGljZXM6KCk9PkhDLERpZmY6KCk9PkJDLERpc2M6KCk9PldDLERpc2MyOigpPT5xQyxEaXNjMzooKT0+VkMsRGlzY0FsYnVtOigpPT5qQyxEaXZpZGU6KCk9PlVDLERpdmlkZUNpcmNsZTooKT0+YTYsRGl2aWRlU3F1YXJlOigpPT5TcCxEbmE6KCk9PllDLERuYU9mZjooKT0+R0MsRG9jazooKT0+S0MsRG9nOigpPT5YQyxEb2xsYXJTaWduOigpPT5aQyxEb251dDooKT0+UUMsRG9vckNsb3NlZDooKT0+ZV8sRG9vckNsb3NlZExvY2tlZDooKT0+SkMsRG9vck9wZW46KCk9PnRfLERvdDooKT0+YV8sRG90U3F1YXJlOigpPT5rcCxEb3dubG9hZDooKT0+cl8sRG93bmxvYWRDbG91ZDooKT0+eDYsRHJhZnRpbmdDb21wYXNzOigpPT5zXyxEcmFtYTooKT0+b18sRHJpbGw6KCk9PmlfLERyb25lOigpPT5uXyxEcm9wbGV0OigpPT5sXyxEcm9wbGV0T2ZmOigpPT5jXyxEcm9wbGV0czooKT0+ZF8sRHJ1bTooKT0+dV8sRHJ1bXN0aWNrOigpPT5wXyxEdW1iYmVsbDooKT0+Zl8sRWFyOigpPT5tXyxFYXJPZmY6KCk9PmhfLEVhcnRoOigpPT5DNixFYXJ0aExvY2s6KCk9PmdfLEVjbGlwc2U6KCk9PmJfLEVkaXQ6KCk9PkMxLEVkaXQyOigpPT5PdSxFZGl0MzooKT0+UnUsRWdnOigpPT54XyxFZ2dGcmllZDooKT0+dl8sRWdnT2ZmOigpPT55XyxFbGxpcHNlOigpPT53XyxFbGxpcHNpczooKT0+VDYsRWxsaXBzaXNWZXJ0aWNhbDooKT0+XzYsRXF1YWw6KCk9PlNfLEVxdWFsQXBwcm94aW1hdGVseTooKT0+TV8sRXF1YWxOb3Q6KCk9PmtfLEVxdWFsU3F1YXJlOigpPT56cCxFcmFzZXI6KCk9PnpfLEV0aGVybmV0UG9ydDooKT0+Q18sRXVybzooKT0+X18sRXZDaGFyZ2VyOigpPT5UXyxFeHBhbmQ6KCk9PkxfLEV4dGVybmFsTGluazooKT0+JF8sRXllOigpPT5QXyxFeWVDbG9zZWQ6KCk9PkRfLEV5ZU9mZjooKT0+QV8sRmFjdG9yeTooKT0+RV8sRmFuOigpPT5JXyxGYXN0Rm9yd2FyZDooKT0+Tl8sRmVhdGhlcjooKT0+Ul8sRmVuY2U6KCk9PkZfLEZlcnJpc1doZWVsOigpPT5PXyxGaWxlOigpPT5oVCxGaWxlQXJjaGl2ZTooKT0+Ql8sRmlsZUF1ZGlvOigpPT50YyxGaWxlQXVkaW8yOigpPT50YyxGaWxlQXhpczNEOigpPT5MNixGaWxlQXhpczNkOigpPT5MNixGaWxlQmFkZ2U6KCk9PiQ2LEZpbGVCYWRnZTI6KCk9PiQ2LEZpbGVCYXJDaGFydDooKT0+QTYsRmlsZUJhckNoYXJ0MjooKT0+RTYsRmlsZUJveDooKT0+SF8sRmlsZUJyYWNlczooKT0+RDYsRmlsZUJyYWNlc0Nvcm5lcjooKT0+UDYsRmlsZUNoYXJ0Q29sdW1uOigpPT5FNixGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5BNixGaWxlQ2hhcnRMaW5lOigpPT5JNixGaWxlQ2hhcnRQaWU6KCk9Pk42LEZpbGVDaGVjazooKT0+cV8sRmlsZUNoZWNrMjooKT0+UjYsRmlsZUNoZWNrQ29ybmVyOigpPT5SNixGaWxlQ2xvY2s6KCk9PlZfLEZpbGVDb2RlOigpPT5qXyxGaWxlQ29kZTI6KCk9Pk82LEZpbGVDb2RlQ29ybmVyOigpPT5PNixGaWxlQ29nOigpPT5GNixGaWxlQ29nMjooKT0+RjYsRmlsZURpZmY6KCk9PlVfLEZpbGVEaWdpdDooKT0+V18sRmlsZURvd246KCk9PkdfLEZpbGVFZGl0OigpPT5XNixGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+QjYsRmlsZUhlYWRwaG9uZTooKT0+dGMsRmlsZUhlYXJ0OigpPT5ZXyxGaWxlSW1hZ2U6KCk9PktfLEZpbGVJbnB1dDooKT0+Wl8sRmlsZUpzb246KCk9PkQ2LEZpbGVKc29uMjooKT0+UDYsRmlsZUtleTooKT0+SDYsRmlsZUtleTI6KCk9Pkg2LEZpbGVMaW5lQ2hhcnQ6KCk9Pkk2LEZpbGVMb2NrOigpPT5xNixGaWxlTG9jazI6KCk9PnE2LEZpbGVNaW51czooKT0+WF8sRmlsZU1pbnVzMjooKT0+VjYsRmlsZU1pbnVzQ29ybmVyOigpPT5WNixGaWxlTXVzaWM6KCk9PlFfLEZpbGVPdXRwdXQ6KCk9PkpfLEZpbGVQZW46KCk9Plc2LEZpbGVQZW5MaW5lOigpPT5qNixGaWxlUGllQ2hhcnQ6KCk9Pk42LEZpbGVQbGF5OigpPT5VNixGaWxlUGx1czooKT0+ZVQsRmlsZVBsdXMyOigpPT5HNixGaWxlUGx1c0Nvcm5lcjooKT0+RzYsRmlsZVF1ZXN0aW9uOigpPT5ZNixGaWxlUXVlc3Rpb25NYXJrOigpPT5ZNixGaWxlU2NhbjooKT0+dFQsRmlsZVNlYXJjaDooKT0+YVQsRmlsZVNlYXJjaDI6KCk9Pks2LEZpbGVTZWFyY2hDb3JuZXI6KCk9Pks2LEZpbGVTaWduYWw6KCk9Plo2LEZpbGVTaWduYXR1cmU6KCk9Pmo2LEZpbGVTbGlkZXJzOigpPT5yVCxGaWxlU3ByZWFkc2hlZXQ6KCk9PnNULEZpbGVTdGFjazooKT0+b1QsRmlsZVN5bWxpbms6KCk9PmlULEZpbGVUZXJtaW5hbDooKT0+blQsRmlsZVRleHQ6KCk9PmxULEZpbGVUeXBlOigpPT5jVCxGaWxlVHlwZTI6KCk9Plg2LEZpbGVUeXBlQ29ybmVyOigpPT5YNixGaWxlVXA6KCk9PmRULEZpbGVVc2VyOigpPT51VCxGaWxlVmlkZW86KCk9PlU2LEZpbGVWaWRlbzI6KCk9PlE2LEZpbGVWaWRlb0NhbWVyYTooKT0+UTYsRmlsZVZvbHVtZTooKT0+cFQsRmlsZVZvbHVtZTI6KCk9Plo2LEZpbGVXYXJuaW5nOigpPT5CNixGaWxlWDooKT0+ZlQsRmlsZVgyOigpPT5KNixGaWxlWENvcm5lcjooKT0+SjYsRmlsZXM6KCk9PmdULEZpbG06KCk9Pm1ULEZpbHRlcjooKT0+c3UsRmlsdGVyWDooKT0+cnUsRmluZ2VycHJpbnQ6KCk9PmV1LEZpbmdlcnByaW50UGF0dGVybjooKT0+ZXUsRmlyZUV4dGluZ3Vpc2hlcjooKT0+YlQsRmlzaDooKT0+eVQsRmlzaE9mZjooKT0+eFQsRmlzaFN5bWJvbDooKT0+dlQsRmlzaGluZ0hvb2s6KCk9PndULEZpc2hpbmdSb2Q6KCk9PmtULEZsYWc6KCk9PkNULEZsYWdPZmY6KCk9Pk1ULEZsYWdUcmlhbmdsZUxlZnQ6KCk9PlNULEZsYWdUcmlhbmdsZVJpZ2h0OigpPT56VCxGbGFtZTooKT0+X1QsRmxhbWVLaW5kbGluZzooKT0+TFQsRmxhc2hsaWdodDooKT0+JFQsRmxhc2hsaWdodE9mZjooKT0+VFQsRmxhc2tDb25pY2FsOigpPT5BVCxGbGFza0NvbmljYWxPZmY6KCk9PkRULEZsYXNrUm91bmQ6KCk9PlBULEZsaXBIb3Jpem9udGFsOigpPT51cCxGbGlwSG9yaXpvbnRhbDI6KCk9PkVULEZsaXBWZXJ0aWNhbDooKT0+cHAsRmxpcFZlcnRpY2FsMjooKT0+SVQsRmxvd2VyOigpPT5GVCxGbG93ZXIyOigpPT5OVCxGb2N1czooKT0+UlQsRm9sZEhvcml6b250YWw6KCk9Pk9ULEZvbGRWZXJ0aWNhbDooKT0+cVQsRm9sZGVyOigpPT5tTCxGb2xkZXJBcmNoaXZlOigpPT5CVCxGb2xkZXJCb29rbWFyazooKT0+SFQsRm9sZGVyQ2hlY2s6KCk9PlZULEZvbGRlckNsb2NrOigpPT5XVCxGb2xkZXJDbG9zZWQ6KCk9PmpULEZvbGRlckNvZGU6KCk9PlVULEZvbGRlckNvZzooKT0+dHUsRm9sZGVyQ29nMjooKT0+dHUsRm9sZGVyRG90OigpPT5HVCxGb2xkZXJEb3duOigpPT5ZVCxGb2xkZXJFZGl0OigpPT5hdSxGb2xkZXJHaXQ6KCk9PlpULEZvbGRlckdpdDI6KCk9PktULEZvbGRlckhlYXJ0OigpPT5YVCxGb2xkZXJJbnB1dDooKT0+ZUwsRm9sZGVyS2FuYmFuOigpPT5RVCxGb2xkZXJLZXk6KCk9PkpULEZvbGRlckxvY2s6KCk9PnRMLEZvbGRlck1pbnVzOigpPT5zTCxGb2xkZXJPcGVuOigpPT5yTCxGb2xkZXJPcGVuRG90OigpPT5hTCxGb2xkZXJPdXRwdXQ6KCk9PmlMLEZvbGRlclBlbjooKT0+YXUsRm9sZGVyUGx1czooKT0+b0wsRm9sZGVyUm9vdDooKT0+bkwsRm9sZGVyU2VhcmNoOigpPT5jTCxGb2xkZXJTZWFyY2gyOigpPT5sTCxGb2xkZXJTeW1saW5rOigpPT5kTCxGb2xkZXJTeW5jOigpPT5wTCxGb2xkZXJUcmVlOigpPT51TCxGb2xkZXJVcDooKT0+ZkwsRm9sZGVyWDooKT0+aEwsRm9sZGVyczooKT0+Z0wsRm9vdHByaW50czooKT0+YkwsRm9ya0tuaWZlOigpPT5nZixGb3JrS25pZmVDcm9zc2VkOigpPT5tZixGb3JrbGlmdDooKT0+dkwsRm9ybTooKT0+eEwsRm9ybUlucHV0OigpPT5CdSxGb3J3YXJkOigpPT55TCxGcmFtZTooKT0+d0wsRnJvd246KCk9Pk1MLEZ1ZWw6KCk9PmtMLEZ1bGxzY3JlZW46KCk9PlNMLEZ1bmN0aW9uU3F1YXJlOigpPT5DcCxGdW5uZWw6KCk9PnN1LEZ1bm5lbFBsdXM6KCk9PnpMLEZ1bm5lbFg6KCk9PnJ1LEdhbGxlcnlIb3Jpem9udGFsOigpPT5fTCxHYWxsZXJ5SG9yaXpvbnRhbEVuZDooKT0+Q0wsR2FsbGVyeVRodW1ibmFpbHM6KCk9PlRMLEdhbGxlcnlWZXJ0aWNhbDooKT0+JEwsR2FsbGVyeVZlcnRpY2FsRW5kOigpPT5MTCxHYW1lcGFkOigpPT5QTCxHYW1lcGFkMjooKT0+REwsR2FtZXBhZERpcmVjdGlvbmFsOigpPT5BTCxHYW50dENoYXJ0OigpPT5PZCxHYW50dENoYXJ0U3F1YXJlOigpPT5pYyxHYXVnZTooKT0+RUwsR2F1Z2VDaXJjbGU6KCk9PnI2LEdhdmVsOigpPT5JTCxHZW06KCk9Pk5MLEdlb3JnaWFuTGFyaTooKT0+T0wsR2hvc3Q6KCk9PlJMLEdpZnQ6KCk9PkJMLEdpdEJyYW5jaDooKT0+cUwsR2l0QnJhbmNoTWludXM6KCk9PkZMLEdpdEJyYW5jaFBsdXM6KCk9PkhMLEdpdENvbW1pdDooKT0+aXUsR2l0Q29tbWl0SG9yaXpvbnRhbDooKT0+aXUsR2l0Q29tbWl0VmVydGljYWw6KCk9PlZMLEdpdENvbXBhcmU6KCk9PlVMLEdpdENvbXBhcmVBcnJvd3M6KCk9PmpMLEdpdEZvcms6KCk9PldMLEdpdEdyYXBoOigpPT5HTCxHaXRNZXJnZTooKT0+WUwsR2l0TWVyZ2VDb25mbGljdDooKT0+S0wsR2l0UHVsbFJlcXVlc3Q6KCk9PnQkLEdpdFB1bGxSZXF1ZXN0QXJyb3c6KCk9PlpMLEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOigpPT5YTCxHaXRQdWxsUmVxdWVzdENyZWF0ZTooKT0+SkwsR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzooKT0+UUwsR2l0UHVsbFJlcXVlc3REcmFmdDooKT0+ZSQsR2xhc3NXYXRlcjooKT0+YSQsR2xhc3NlczooKT0+ciQsR2xvYmU6KCk9Pm4kLEdsb2JlMjooKT0+QzYsR2xvYmVMb2NrOigpPT5zJCxHbG9iZU9mZjooKT0+byQsR2xvYmVYOigpPT5pJCxHb2FsOigpPT5sJCxHcHU6KCk9PmMkLEdyYWI6KCk9PmR1LEdyYWR1YXRpb25DYXA6KCk9PmQkLEdyYXBlOigpPT51JCxHcmlkOigpPT5hYyxHcmlkMlgyOigpPT5jdSxHcmlkMlgyQ2hlY2s6KCk9Pm91LEdyaWQyWDJQbHVzOigpPT5udSxHcmlkMlgyWDooKT0+bHUsR3JpZDJ4MjooKT0+Y3UsR3JpZDJ4MkNoZWNrOigpPT5vdSxHcmlkMngyUGx1czooKT0+bnUsR3JpZDJ4Mlg6KCk9Pmx1LEdyaWQzWDM6KCk9PmFjLEdyaWQzeDI6KCk9PnAkLEdyaWQzeDM6KCk9PmFjLEdyaXA6KCk9Pm0kLEdyaXBIb3Jpem9udGFsOigpPT5mJCxHcmlwVmVydGljYWw6KCk9PmgkLEdyb3VwOigpPT5nJCxHdWl0YXI6KCk9PmIkLEhhbTooKT0+diQsSGFtYnVyZ2VyOigpPT54JCxIYW1tZXI6KCk9PnkkLEhhbmQ6KCk9PkMkLEhhbmRDb2luczooKT0+dyQsSGFuZEZpc3Q6KCk9Pk0kLEhhbmRHcmFiOigpPT5kdSxIYW5kSGVhcnQ6KCk9PmskLEhhbmRIZWxwaW5nOigpPT51dSxIYW5kTWV0YWw6KCk9PlMkLEhhbmRQbGF0dGVyOigpPT56JCxIYW5kYmFnOigpPT5fJCxIYW5kc2hha2U6KCk9PlQkLEhhcmREcml2ZTooKT0+QSQsSGFyZERyaXZlRG93bmxvYWQ6KCk9PkwkLEhhcmREcml2ZVVwbG9hZDooKT0+JCQsSGFyZEhhdDooKT0+RCQsSGFzaDooKT0+UCQsSGF0R2xhc3NlczooKT0+RSQsSGF6ZTooKT0+SSQsSGQ6KCk9Pk4kLEhkbWlQb3J0OigpPT5SJCxIZWFkaW5nOigpPT5qJCxIZWFkaW5nMTooKT0+TyQsSGVhZGluZzI6KCk9PkYkLEhlYWRpbmczOigpPT5CJCxIZWFkaW5nNDooKT0+SCQsSGVhZGluZzU6KCk9PnEkLEhlYWRpbmc2OigpPT5WJCxIZWFkcGhvbmVPZmY6KCk9PlUkLEhlYWRwaG9uZXM6KCk9PkckLEhlYWRzZXQ6KCk9PlckLEhlYXJ0OigpPT50RCxIZWFydENyYWNrOigpPT5ZJCxIZWFydEhhbmRzaGFrZTooKT0+SyQsSGVhcnRNaW51czooKT0+WiQsSGVhcnRPZmY6KCk9PlgkLEhlYXJ0UGx1czooKT0+USQsSGVhcnRQdWxzZTooKT0+SiQsSGVhcnRYOigpPT5lRCxIZWF0ZXI6KCk9PmFELEhlbGljb3B0ZXI6KCk9PnJELEhlbHBDaXJjbGU6KCk9PkpsLEhlbHBpbmdIYW5kOigpPT51dSxIZXhhZ29uOigpPT5zRCxIaWdobGlnaHRlcjooKT0+aUQsSGlzdG9yeTooKT0+b0QsSG9tZTooKT0+cHUsSG9wOigpPT5uRCxIb3BPZmY6KCk9PmxELEhvc3BpdGFsOigpPT5jRCxIb3RlbDooKT0+ZEQsSG91cmdsYXNzOigpPT51RCxIb3VzZTooKT0+cHUsSG91c2VIZWFydDooKT0+cEQsSG91c2VQbHVnOigpPT5mRCxIb3VzZVBsdXM6KCk9Pm1ELEhvdXNlV2lmaTooKT0+aEQsSWNlQ3JlYW06KCk9Pmh1LEljZUNyZWFtMjooKT0+ZnUsSWNlQ3JlYW1Cb3dsOigpPT5mdSxJY2VDcmVhbUNvbmU6KCk9Pmh1LElkQ2FyZDooKT0+YkQsSWRDYXJkTGFueWFyZDooKT0+Z0QsSW1hZ2U6KCk9PnpELEltYWdlRG93bjooKT0+dkQsSW1hZ2VNaW51czooKT0+eEQsSW1hZ2VPZmY6KCk9PnlELEltYWdlUGxheTooKT0+d0QsSW1hZ2VQbHVzOigpPT5NRCxJbWFnZVVwOigpPT5rRCxJbWFnZVVwc2NhbGU6KCk9PlNELEltYWdlczooKT0+Q0QsSW1wb3J0OigpPT5fRCxJbmJveDooKT0+VEQsSW5kZW50OigpPT5zYyxJbmRlbnREZWNyZWFzZTooKT0+cmMsSW5kZW50SW5jcmVhc2U6KCk9PnNjLEluZGlhblJ1cGVlOigpPT5MRCxJbmZpbml0eTooKT0+JEQsSW5mbzooKT0+REQsSW5zcGVjdDooKT0+QXAsSW5zcGVjdGlvblBhbmVsOigpPT5BRCxJdGFsaWM6KCk9PlBELEl0ZXJhdGlvbkNjdzooKT0+RUQsSXRlcmF0aW9uQ3c6KCk9PklELEphcGFuZXNlWWVuOigpPT5ORCxKb3lzdGljazooKT0+UkQsS2FuYmFuOigpPT5PRCxLYW5iYW5TcXVhcmU6KCk9PkxwLEthbmJhblNxdWFyZURhc2hlZDooKT0+eXAsS2F5YWs6KCk9PkZELEtleTooKT0+cUQsS2V5Um91bmQ6KCk9PkhELEtleVNxdWFyZTooKT0+QkQsS2V5Ym9hcmQ6KCk9PlVELEtleWJvYXJkTXVzaWM6KCk9PlZELEtleWJvYXJkT2ZmOigpPT5qRCxMYW1wOigpPT5YRCxMYW1wQ2VpbGluZzooKT0+V0QsTGFtcERlc2s6KCk9PkdELExhbXBGbG9vcjooKT0+WUQsTGFtcFdhbGxEb3duOigpPT5LRCxMYW1wV2FsbFVwOigpPT5aRCxMYW5kUGxvdDooKT0+UUQsTGFuZG1hcms6KCk9PkpELExhbmd1YWdlczooKT0+ZUEsTGFwdG9wOigpPT5hQSxMYXB0b3AyOigpPT5tdSxMYXB0b3BNaW5pbWFsOigpPT5tdSxMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PnRBLExhc3NvOigpPT5pQSxMYXNzb1NlbGVjdDooKT0+ckEsTGF1Z2g6KCk9PnNBLExheWVyczooKT0+Z3UsTGF5ZXJzMjooKT0+b0EsTGF5ZXJzMzooKT0+Z3UsTGF5ZXJzTWludXM6KCk9Pm5BLExheWVyc1BsdXM6KCk9PmxBLExheW91dDooKT0+TnUsTGF5b3V0RGFzaGJvYXJkOigpPT5jQSxMYXlvdXRHcmlkOigpPT5kQSxMYXlvdXRMaXN0OigpPT51QSxMYXlvdXRQYW5lbExlZnQ6KCk9PnBBLExheW91dFBhbmVsVG9wOigpPT5oQSxMYXlvdXRUZW1wbGF0ZTooKT0+ZkEsTGVhZjooKT0+bUEsTGVhZnlHcmVlbjooKT0+Z0EsTGVjdGVybjooKT0+YkEsTGVuc0NvbmNhdmU6KCk9PnZBLExlbnNDb252ZXg6KCk9PnhBLExldHRlclRleHQ6KCk9PmVmLExpYnJhcnk6KCk9PndBLExpYnJhcnlCaWc6KCk9PnlBLExpYnJhcnlTcXVhcmU6KCk9Pl9wLExpZmVCdW95OigpPT5NQSxMaWdhdHVyZTooKT0+a0EsTGlnaHRidWxiOigpPT5TQSxMaWdodGJ1bGJPZmY6KCk9PnpBLExpbmVDaGFydDooKT0+SWQsTGluZURvdFJpZ2h0SG9yaXpvbnRhbDooKT0+Q0EsTGluZVNxdWlnZ2xlOigpPT5UQSxMaW5lU3R5bGU6KCk9Pl9BLExpbms6KCk9PkRBLExpbmsyOigpPT4kQSxMaW5rMk9mZjooKT0+TEEsTGlzdDooKT0+WkEsTGlzdENoZWNrOigpPT5BQSxMaXN0Q2hlY2tzOigpPT5QQSxMaXN0Q2hldnJvbnNEb3duVXA6KCk9PkVBLExpc3RDaGV2cm9uc1VwRG93bjooKT0+SUEsTGlzdENvbGxhcHNlOigpPT5OQSxMaXN0RW5kOigpPT5SQSxMaXN0RmlsdGVyOigpPT5GQSxMaXN0RmlsdGVyUGx1czooKT0+T0EsTGlzdEluZGVudERlY3JlYXNlOigpPT5yYyxMaXN0SW5kZW50SW5jcmVhc2U6KCk9PnNjLExpc3RNaW51czooKT0+QkEsTGlzdE11c2ljOigpPT5IQSxMaXN0T3JkZXJlZDooKT0+cUEsTGlzdFBsdXM6KCk9PlZBLExpc3RSZXN0YXJ0OigpPT5qQSxMaXN0U3RhcnQ6KCk9PlVBLExpc3RUb2RvOigpPT5XQSxMaXN0VHJlZTooKT0+R0EsTGlzdFZpZGVvOigpPT5ZQSxMaXN0WDooKT0+S0EsTG9hZGVyOigpPT5RQSxMb2FkZXIyOigpPT5idSxMb2FkZXJDaXJjbGU6KCk9PmJ1LExvYWRlclBpbndoZWVsOigpPT5YQSxMb2NhdGU6KCk9PnRQLExvY2F0ZUZpeGVkOigpPT5KQSxMb2NhdGVPZmY6KCk9PmVQLExvY2F0aW9uRWRpdDooKT0+d3UsTG9jazooKT0+clAsTG9ja0tleWhvbGU6KCk9PmFQLExvY2tLZXlob2xlT3BlbjooKT0+dnUsTG9ja09wZW46KCk9Pnh1LExvZ0luOigpPT5zUCxMb2dPdXQ6KCk9PmlQLExvZ3M6KCk9Pm9QLExvbGxpcG9wOigpPT5uUCxMdWdnYWdlOigpPT5sUCxNU3F1YXJlOigpPT5UcCxNYWduZXQ6KCk9PmRQLE1haWw6KCk9PnZQLE1haWxDaGVjazooKT0+Y1AsTWFpbE1pbnVzOigpPT51UCxNYWlsT3BlbjooKT0+cFAsTWFpbFBsdXM6KCk9PmZQLE1haWxRdWVzdGlvbjooKT0+eXUsTWFpbFF1ZXN0aW9uTWFyazooKT0+eXUsTWFpbFNlYXJjaDooKT0+aFAsTWFpbFdhcm5pbmc6KCk9Pm1QLE1haWxYOigpPT5nUCxNYWlsYm94OigpPT5iUCxNYWlsczooKT0+eFAsTWFwOigpPT5JUCxNYXBNaW51czooKT0+eVAsTWFwUGluOigpPT5BUCxNYXBQaW5DaGVjazooKT0+TVAsTWFwUGluQ2hlY2tJbnNpZGU6KCk9PndQLE1hcFBpbkhvdXNlOigpPT5rUCxNYXBQaW5NaW51czooKT0+elAsTWFwUGluTWludXNJbnNpZGU6KCk9PlNQLE1hcFBpbk9mZjooKT0+Q1AsTWFwUGluUGVuOigpPT53dSxNYXBQaW5QbHVzOigpPT5UUCxNYXBQaW5QbHVzSW5zaWRlOigpPT5fUCxNYXBQaW5TZWFyY2g6KCk9PkxQLE1hcFBpblg6KCk9PiRQLE1hcFBpblhJbnNpZGU6KCk9PkRQLE1hcFBpbm5lZDooKT0+UFAsTWFwUGx1czooKT0+RVAsTWFyczooKT0+UlAsTWFyc1N0cm9rZTooKT0+TlAsTWFydGluaTooKT0+T1AsTWF4aW1pemU6KCk9PkJQLE1heGltaXplMjooKT0+RlAsTWVkYWw6KCk9PkhQLE1lZ2FwaG9uZTooKT0+VlAsTWVnYXBob25lT2ZmOigpPT5xUCxNZWg6KCk9PmpQLE1lbW9yeVN0aWNrOigpPT5VUCxNZW51OigpPT5XUCxNZW51U3F1YXJlOigpPT4kcCxNZXJnZTooKT0+R1AsTWVzc2FnZUNpcmNsZTooKT0+c0UsTWVzc2FnZUNpcmNsZUNoZWNrOigpPT5ZUCxNZXNzYWdlQ2lyY2xlQ29kZTooKT0+S1AsTWVzc2FnZUNpcmNsZURhc2hlZDooKT0+WlAsTWVzc2FnZUNpcmNsZUhlYXJ0OigpPT5YUCxNZXNzYWdlQ2lyY2xlTW9yZTooKT0+UVAsTWVzc2FnZUNpcmNsZU9mZjooKT0+SlAsTWVzc2FnZUNpcmNsZVBsdXM6KCk9PmVFLE1lc3NhZ2VDaXJjbGVRdWVzdGlvbjooKT0+TXUsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazooKT0+TXUsTWVzc2FnZUNpcmNsZVJlcGx5OigpPT50RSxNZXNzYWdlQ2lyY2xlV2FybmluZzooKT0+YUUsTWVzc2FnZUNpcmNsZVg6KCk9PnJFLE1lc3NhZ2VTcXVhcmU6KCk9PndFLE1lc3NhZ2VTcXVhcmVDaGVjazooKT0+b0UsTWVzc2FnZVNxdWFyZUNvZGU6KCk9PmlFLE1lc3NhZ2VTcXVhcmVEYXNoZWQ6KCk9Pm5FLE1lc3NhZ2VTcXVhcmVEaWZmOigpPT5sRSxNZXNzYWdlU3F1YXJlRG90OigpPT5jRSxNZXNzYWdlU3F1YXJlSGVhcnQ6KCk9PmRFLE1lc3NhZ2VTcXVhcmVMb2NrOigpPT51RSxNZXNzYWdlU3F1YXJlTW9yZTooKT0+cEUsTWVzc2FnZVNxdWFyZU9mZjooKT0+ZkUsTWVzc2FnZVNxdWFyZVBsdXM6KCk9PmhFLE1lc3NhZ2VTcXVhcmVRdW90ZTooKT0+bUUsTWVzc2FnZVNxdWFyZVJlcGx5OigpPT5nRSxNZXNzYWdlU3F1YXJlU2hhcmU6KCk9PmJFLE1lc3NhZ2VTcXVhcmVUZXh0OigpPT52RSxNZXNzYWdlU3F1YXJlV2FybmluZzooKT0+eEUsTWVzc2FnZVNxdWFyZVg6KCk9PnlFLE1lc3NhZ2VzU3F1YXJlOigpPT5NRSxNZXRyb25vbWU6KCk9PmtFLE1pYzooKT0+ekUsTWljMjooKT0+a3UsTWljT2ZmOigpPT5TRSxNaWNWb2NhbDooKT0+a3UsTWljcm9jaGlwOigpPT5DRSxNaWNyb3Njb3BlOigpPT5fRSxNaWNyb3dhdmU6KCk9PlRFLE1pbGVzdG9uZTooKT0+TEUsTWlsazooKT0+REUsTWlsa09mZjooKT0+JEUsTWluaW1pemU6KCk9PlBFLE1pbmltaXplMjooKT0+QUUsTWludXM6KCk9PkVFLE1pbnVzQ2lyY2xlOigpPT5zNixNaW51c1NxdWFyZTooKT0+RHAsTWlycm9yUmVjdGFuZ3VsYXI6KCk9PklFLE1pcnJvclJvdW5kOigpPT5ORSxNb25pdG9yOigpPT5aRSxNb25pdG9yQ2hlY2s6KCk9PlJFLE1vbml0b3JDbG91ZDooKT0+T0UsTW9uaXRvckNvZzooKT0+RkUsTW9uaXRvckRvdDooKT0+QkUsTW9uaXRvckRvd246KCk9PnFFLE1vbml0b3JPZmY6KCk9PkhFLE1vbml0b3JQYXVzZTooKT0+VkUsTW9uaXRvclBsYXk6KCk9PmpFLE1vbml0b3JTbWFydHBob25lOigpPT5VRSxNb25pdG9yU3BlYWtlcjooKT0+V0UsTW9uaXRvclN0b3A6KCk9PllFLE1vbml0b3JVcDooKT0+R0UsTW9uaXRvclg6KCk9PktFLE1vb246KCk9PlFFLE1vb25TdGFyOigpPT5YRSxNb3JlSG9yaXpvbnRhbDooKT0+VDYsTW9yZVZlcnRpY2FsOigpPT5fNixNb3RvcmJpa2U6KCk9PkpFLE1vdW50YWluOigpPT50SSxNb3VudGFpblNub3c6KCk9PmVJLE1vdXNlOigpPT5kSSxNb3VzZUxlZnQ6KCk9PmFJLE1vdXNlT2ZmOigpPT5ySSxNb3VzZVBvaW50ZXI6KCk9PmxJLE1vdXNlUG9pbnRlcjI6KCk9PmlJLE1vdXNlUG9pbnRlcjJPZmY6KCk9PnNJLE1vdXNlUG9pbnRlckJhbjooKT0+b0ksTW91c2VQb2ludGVyQ2xpY2s6KCk9Pm5JLE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDooKT0+d3AsTW91c2VSaWdodDooKT0+Y0ksTW92ZTooKT0+a0ksTW92ZTNEOigpPT5TdSxNb3ZlM2Q6KCk9PlN1LE1vdmVEaWFnb25hbDooKT0+cEksTW92ZURpYWdvbmFsMjooKT0+dUksTW92ZURvd246KCk9Pm1JLE1vdmVEb3duTGVmdDooKT0+ZkksTW92ZURvd25SaWdodDooKT0+aEksTW92ZUhvcml6b250YWw6KCk9PmdJLE1vdmVMZWZ0OigpPT5iSSxNb3ZlUmlnaHQ6KCk9PnZJLE1vdmVVcDooKT0+d0ksTW92ZVVwTGVmdDooKT0+eEksTW92ZVVwUmlnaHQ6KCk9PnlJLE1vdmVWZXJ0aWNhbDooKT0+TUksTXVzaWM6KCk9Pl9JLE11c2ljMjooKT0+U0ksTXVzaWMzOigpPT5DSSxNdXNpYzQ6KCk9PnpJLE5hdmlnYXRpb246KCk9PkRJLE5hdmlnYXRpb24yOigpPT5MSSxOYXZpZ2F0aW9uMk9mZjooKT0+VEksTmF2aWdhdGlvbk9mZjooKT0+JEksTmV0d29yazooKT0+QUksTmV3c3BhcGVyOigpPT5QSSxOZmM6KCk9PkVJLE5vbkJpbmFyeTooKT0+SUksTm90ZWJvb2s6KCk9PkZJLE5vdGVib29rUGVuOigpPT5OSSxOb3RlYm9va1RhYnM6KCk9Pk9JLE5vdGVib29rVGV4dDooKT0+UkksTm90ZXBhZFRleHQ6KCk9PkhJLE5vdGVwYWRUZXh0RGFzaGVkOigpPT5CSSxOdXQ6KCk9PlZJLE51dE9mZjooKT0+cUksT2N0YWdvbjooKT0+VUksT2N0YWdvbkFsZXJ0OigpPT56dSxPY3RhZ29uTWludXM6KCk9PmpJLE9jdGFnb25QYXVzZTooKT0+Q3UsT2N0YWdvblg6KCk9Pl91LE9tZWdhOigpPT5XSSxPcHRpb246KCk9PkdJLE9yYml0OigpPT5ZSSxPcmlnYW1pOigpPT5LSSxPdXRkZW50OigpPT5yYyxQYWNrYWdlOigpPT5hTixQYWNrYWdlMjooKT0+WkksUGFja2FnZUNoZWNrOigpPT5YSSxQYWNrYWdlTWludXM6KCk9PlFJLFBhY2thZ2VPcGVuOigpPT5KSSxQYWNrYWdlUGx1czooKT0+ZU4sUGFja2FnZVNlYXJjaDooKT0+dE4sUGFja2FnZVg6KCk9PnJOLFBhaW50QnVja2V0OigpPT5zTixQYWludFJvbGxlcjooKT0+aU4sUGFpbnRicnVzaDooKT0+b04sUGFpbnRicnVzaDI6KCk9PlR1LFBhaW50YnJ1c2hWZXJ0aWNhbDooKT0+VHUsUGFsZXR0ZTooKT0+bk4sUGFsbXRyZWU6KCk9PnJmLFBhbmRhOigpPT5jTixQYW5lbEJvdHRvbTooKT0+dU4sUGFuZWxCb3R0b21DbG9zZTooKT0+bE4sUGFuZWxCb3R0b21EYXNoZWQ6KCk9Pkx1LFBhbmVsQm90dG9tSW5hY3RpdmU6KCk9Pkx1LFBhbmVsQm90dG9tT3BlbjooKT0+ZE4sUGFuZWxMZWZ0OigpPT5QdSxQYW5lbExlZnRDbG9zZTooKT0+JHUsUGFuZWxMZWZ0RGFzaGVkOigpPT5EdSxQYW5lbExlZnRJbmFjdGl2ZTooKT0+RHUsUGFuZWxMZWZ0T3BlbjooKT0+QXUsUGFuZWxMZWZ0UmlnaHREYXNoZWQ6KCk9PnBOLFBhbmVsUmlnaHQ6KCk9PmdOLFBhbmVsUmlnaHRDbG9zZTooKT0+Zk4sUGFuZWxSaWdodERhc2hlZDooKT0+RXUsUGFuZWxSaWdodEluYWN0aXZlOigpPT5FdSxQYW5lbFJpZ2h0T3BlbjooKT0+aE4sUGFuZWxUb3A6KCk9PnhOLFBhbmVsVG9wQm90dG9tRGFzaGVkOigpPT5tTixQYW5lbFRvcENsb3NlOigpPT5iTixQYW5lbFRvcERhc2hlZDooKT0+SXUsUGFuZWxUb3BJbmFjdGl2ZTooKT0+SXUsUGFuZWxUb3BPcGVuOigpPT52TixQYW5lbHNMZWZ0Qm90dG9tOigpPT55TixQYW5lbHNMZWZ0UmlnaHQ6KCk9Pms2LFBhbmVsc1JpZ2h0Qm90dG9tOigpPT53TixQYW5lbHNUb3BCb3R0b206KCk9PlZ1LFBhbmVsc1RvcExlZnQ6KCk9Pk51LFBhcGVyY2xpcDooKT0+TU4sUGFyZW50aGVzZXM6KCk9PmtOLFBhcmtpbmdDaXJjbGU6KCk9Pm82LFBhcmtpbmdDaXJjbGVPZmY6KCk9Pmk2LFBhcmtpbmdNZXRlcjooKT0+U04sUGFya2luZ1NxdWFyZTooKT0+RXAsUGFya2luZ1NxdWFyZU9mZjooKT0+UHAsUGFydHlQb3BwZXI6KCk9PkNOLFBhdXNlOigpPT56TixQYXVzZUNpcmNsZTooKT0+bjYsUGF1c2VPY3RhZ29uOigpPT5DdSxQYXdQcmludDooKT0+X04sUGNDYXNlOigpPT5UTixQZW46KCk9Pk91LFBlbkJveDooKT0+QzEsUGVuTGluZTooKT0+UnUsUGVuT2ZmOigpPT5MTixQZW5TcXVhcmU6KCk9PkMxLFBlblRvb2w6KCk9PiROLFBlbmNpbDooKT0+UE4sUGVuY2lsTGluZTooKT0+RE4sUGVuY2lsT2ZmOigpPT5BTixQZW5jaWxSdWxlcjooKT0+RU4sUGVudGFnb246KCk9PklOLFBlcmNlbnQ6KCk9Pk5OLFBlcmNlbnRDaXJjbGU6KCk9Pmw2LFBlcmNlbnREaWFtb25kOigpPT56NixQZXJjZW50U3F1YXJlOigpPT5JcCxQZXJzb25TdGFuZGluZzooKT0+Uk4sUGhpbGlwcGluZVBlc286KCk9Pk9OLFBob25lOigpPT5XTixQaG9uZUNhbGw6KCk9PkZOLFBob25lRm9yd2FyZGVkOigpPT5CTixQaG9uZUluY29taW5nOigpPT5ITixQaG9uZU1pc3NlZDooKT0+cU4sUGhvbmVPZmY6KCk9PlZOLFBob25lT3V0Z29pbmc6KCk9PmpOLFBpOigpPT5VTixQaVNxdWFyZTooKT0+TnAsUGlhbm86KCk9PkdOLFBpY2theGU6KCk9PllOLFBpY3R1cmVJblBpY3R1cmU6KCk9PlpOLFBpY3R1cmVJblBpY3R1cmUyOigpPT5LTixQaWVDaGFydDooKT0+RmQsUGlnZ3lCYW5rOigpPT5YTixQaWxjcm93OigpPT5lUixQaWxjcm93TGVmdDooKT0+UU4sUGlsY3Jvd1JpZ2h0OigpPT5KTixQaWxjcm93U3F1YXJlOigpPT5ScCxQaWxsOigpPT5yUixQaWxsQm90dGxlOigpPT50UixQaW46KCk9PnNSLFBpbk9mZjooKT0+YVIsUGlwZXR0ZTooKT0+aVIsUGl6emE6KCk9Pm9SLFBsYW5lOigpPT5jUixQbGFuZUxhbmRpbmc6KCk9Pm5SLFBsYW5lVGFrZW9mZjooKT0+bFIsUGxheTooKT0+ZFIsUGxheUNpcmNsZTooKT0+YzYsUGxheVNxdWFyZTooKT0+RnAsUGx1ZzooKT0+cFIsUGx1ZzI6KCk9PnVSLFBsdWdaYXA6KCk9PkZ1LFBsdWdaYXAyOigpPT5GdSxQbHVzOigpPT5mUixQbHVzQ2lyY2xlOigpPT5kNixQbHVzU3F1YXJlOigpPT5PcCxQb2NrZXRLbmlmZTooKT0+aFIsUG9kY2FzdDooKT0+bVIsUG9pbnRlcjooKT0+Z1IsUG9pbnRlck9mZjooKT0+YlIsUG9wY29ybjooKT0+dlIsUG9wc2ljbGU6KCk9PnhSLFBvdW5kU3Rlcmxpbmc6KCk9PnlSLFBvd2VyOigpPT5NUixQb3dlckNpcmNsZTooKT0+dTYsUG93ZXJPZmY6KCk9PndSLFBvd2VyU3F1YXJlOigpPT5CcCxQcmVzZW50YXRpb246KCk9PmtSLFByaW50ZXI6KCk9PkNSLFByaW50ZXJDaGVjazooKT0+elIsUHJpbnRlclg6KCk9PlNSLFByb2plY3RvcjooKT0+TFIsUHJvcG9ydGlvbnM6KCk9Pl9SLFB1enpsZTooKT0+VFIsUHlyYW1pZDooKT0+JFIsUXJDb2RlOigpPT5BUixRdW90ZTooKT0+RFIsUmFiYml0OigpPT5FUixSYWRhcjooKT0+UFIsUmFkaWF0aW9uOigpPT5JUixSYWRpY2FsOigpPT5OUixSYWRpbzooKT0+QlIsUmFkaW9PZmY6KCk9PlJSLFJhZGlvUmVjZWl2ZXI6KCk9Pk9SLFJhZGlvVG93ZXI6KCk9PkZSLFJhZGl1czooKT0+SFIsUmFpbmJvdzooKT0+cVIsUmF0OigpPT5WUixSYXRpbzooKT0+alIsUmVjZWlwdDooKT0+SlIsUmVjZWlwdENlbnQ6KCk9PlVSLFJlY2VpcHRFdXJvOigpPT5XUixSZWNlaXB0SW5kaWFuUnVwZWU6KCk9PkdSLFJlY2VpcHRKYXBhbmVzZVllbjooKT0+S1IsUmVjZWlwdFBvdW5kU3Rlcmxpbmc6KCk9PllSLFJlY2VpcHRSdXNzaWFuUnVibGU6KCk9PlpSLFJlY2VpcHRTd2lzc0ZyYW5jOigpPT5RUixSZWNlaXB0VGV4dDooKT0+WFIsUmVjZWlwdFR1cmtpc2hMaXJhOigpPT5lTyxSZWN0YW5nbGVDaXJjbGU6KCk9PnRPLFJlY3RhbmdsZUVsbGlwc2lzOigpPT5CdSxSZWN0YW5nbGVHb2dnbGVzOigpPT5hTyxSZWN0YW5nbGVIb3Jpem9udGFsOigpPT5yTyxSZWN0YW5nbGVWZXJ0aWNhbDooKT0+c08sUmVjeWNsZTooKT0+aU8sUmVkbzooKT0+bE8sUmVkbzI6KCk9Pm9PLFJlZG9Eb3Q6KCk9Pm5PLFJlZnJlc2hDY3c6KCk9PmRPLFJlZnJlc2hDY3dEb3Q6KCk9PmNPLFJlZnJlc2hDdzooKT0+cE8sUmVmcmVzaEN3T2ZmOigpPT51TyxSZWZyaWdlcmF0b3I6KCk9PmZPLFJlZ2V4OigpPT5oTyxSZW1vdmVGb3JtYXR0aW5nOigpPT5tTyxSZXBlYXQ6KCk9PnhPLFJlcGVhdDE6KCk9PmJPLFJlcGVhdDI6KCk9PmdPLFJlcGVhdE9mZjooKT0+dk8sUmVwbGFjZTooKT0+d08sUmVwbGFjZUFsbDooKT0+eU8sUmVwbHk6KCk9PmtPLFJlcGx5QWxsOigpPT5NTyxSZXdpbmQ6KCk9PnpPLFJpYmJvbjooKT0+U08sUm9hZDooKT0+Q08sUm9ja2V0OigpPT5fTyxSb2NraW5nQ2hhaXI6KCk9PlRPLFJvbGxlckNvYXN0ZXI6KCk9PkxPLFJvc2U6KCk9PiRPLFJvdGF0ZTNEOigpPT5IdSxSb3RhdGUzZDooKT0+SHUsUm90YXRlQ2N3OigpPT5QTyxSb3RhdGVDY3dLZXk6KCk9PkRPLFJvdGF0ZUNjd1NxdWFyZTooKT0+QU8sUm90YXRlQ3c6KCk9PklPLFJvdGF0ZUN3U3F1YXJlOigpPT5FTyxSb3V0ZTooKT0+Uk8sUm91dGVPZmY6KCk9Pk5PLFJvdXRlcjooKT0+T08sUm93czooKT0+cXUsUm93czI6KCk9PnF1LFJvd3MzOigpPT5WdSxSb3dzNDooKT0+Rk8sUnNzOigpPT5CTyxSdWxlcjooKT0+cU8sUnVsZXJEaW1lbnNpb25MaW5lOigpPT5ITyxSdXNzaWFuUnVibGU6KCk9PlZPLFNhaWxib2F0OigpPT5qTyxTYWxhZDooKT0+VU8sU2FuZHdpY2g6KCk9PldPLFNhdGVsbGl0ZTooKT0+R08sU2F0ZWxsaXRlRGlzaDooKT0+WU8sU2F1ZGlSaXlhbDooKT0+S08sU2F2ZTooKT0+UU8sU2F2ZUFsbDooKT0+WE8sU2F2ZU9mZjooKT0+Wk8sU2NhbGU6KCk9PkpPLFNjYWxlM0Q6KCk9Pmp1LFNjYWxlM2Q6KCk9Pmp1LFNjYWxpbmc6KCk9PnRGLFNjYW46KCk9PmNGLFNjYW5CYXJjb2RlOigpPT5lRixTY2FuRXllOigpPT5hRixTY2FuRmFjZTooKT0+ckYsU2NhbkhlYXJ0OigpPT5zRixTY2FuTGluZTooKT0+aUYsU2NhblFyQ29kZTooKT0+b0YsU2NhblNlYXJjaDooKT0+bkYsU2NhblRleHQ6KCk9PmxGLFNjYXR0ZXJDaGFydDooKT0+QmQsU2Nob29sOigpPT5kRixTY2hvb2wyOigpPT5uZixTY2lzc29yczooKT0+cEYsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT51RixTY2lzc29yc1NxdWFyZTooKT0+cXAsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PmRwLFNjb290ZXI6KCk9PmZGLFNjcmVlblNoYXJlOigpPT5tRixTY3JlZW5TaGFyZU9mZjooKT0+aEYsU2Nyb2xsOigpPT5iRixTY3JvbGxUZXh0OigpPT5nRixTZWFyY2g6KCk9PmtGLFNlYXJjaEFsZXJ0OigpPT52RixTZWFyY2hDaGVjazooKT0+eEYsU2VhcmNoQ29kZTooKT0+eUYsU2VhcmNoU2xhc2g6KCk9PndGLFNlYXJjaFg6KCk9Pk1GLFNlY3Rpb246KCk9PlNGLFNlbmQ6KCk9PkNGLFNlbmRIb3Jpem9uYWw6KCk9PlV1LFNlbmRIb3Jpem9udGFsOigpPT5VdSxTZW5kVG9CYWNrOigpPT56RixTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5fRixTZXBhcmF0b3JWZXJ0aWNhbDooKT0+VEYsU2VydmVyOigpPT5BRixTZXJ2ZXJDb2c6KCk9PkxGLFNlcnZlckNyYXNoOigpPT4kRixTZXJ2ZXJPZmY6KCk9PkRGLFNldHRpbmdzOigpPT5JRixTZXR0aW5nczI6KCk9PlBGLFNoYXBlczooKT0+RUYsU2hhcmU6KCk9PlJGLFNoYXJlMjooKT0+TkYsU2hlZXQ6KCk9PkZGLFNoZWxsOigpPT5PRixTaGVsdmluZ1VuaXQ6KCk9PkJGLFNoaWVsZDooKT0+UUYsU2hpZWxkQWxlcnQ6KCk9PkhGLFNoaWVsZEJhbjooKT0+cUYsU2hpZWxkQ2hlY2s6KCk9PlZGLFNoaWVsZENsb3NlOigpPT5HdSxTaGllbGRDb2c6KCk9PldGLFNoaWVsZENvZ0Nvcm5lcjooKT0+akYsU2hpZWxkRWxsaXBzaXM6KCk9PlVGLFNoaWVsZEhhbGY6KCk9PkdGLFNoaWVsZE1pbnVzOigpPT5ZRixTaGllbGRPZmY6KCk9PktGLFNoaWVsZFBsdXM6KCk9PlpGLFNoaWVsZFF1ZXN0aW9uOigpPT5XdSxTaGllbGRRdWVzdGlvbk1hcms6KCk9Pld1LFNoaWVsZFVzZXI6KCk9PlhGLFNoaWVsZFg6KCk9Pkd1LFNoaXA6KCk9PkpGLFNoaXBXaGVlbDooKT0+ZUIsU2hpcnQ6KCk9PnRCLFNob3BwaW5nQmFnOigpPT5hQixTaG9wcGluZ0Jhc2tldDooKT0+ckIsU2hvcHBpbmdDYXJ0OigpPT5zQixTaG92ZWw6KCk9PmlCLFNob3dlckhlYWQ6KCk9Pm9CLFNocmVkZGVyOigpPT5uQixTaHJpbXA6KCk9PmNCLFNocmluazooKT0+bEIsU2hydWI6KCk9PmRCLFNodWZmbGU6KCk9PnVCLFNpZGViYXI6KCk9PlB1LFNpZGViYXJDbG9zZTooKT0+JHUsU2lkZWJhck9wZW46KCk9PkF1LFNpZ21hOigpPT5wQixTaWdtYVNxdWFyZTooKT0+SHAsU2lnbmFsOigpPT5iQixTaWduYWxIaWdoOigpPT5mQixTaWduYWxMb3c6KCk9PmhCLFNpZ25hbE1lZGl1bTooKT0+bUIsU2lnbmFsWmVybzooKT0+Z0IsU2lnbmF0dXJlOigpPT52QixTaWducG9zdDooKT0+eUIsU2lnbnBvc3RCaWc6KCk9PnhCLFNpcmVuOigpPT53QixTa2lwQmFjazooKT0+TUIsU2tpcEZvcndhcmQ6KCk9PmtCLFNrdWxsOigpPT5TQixTbGFzaDooKT0+ekIsU2xhc2hTcXVhcmU6KCk9PlZwLFNsaWNlOigpPT5fQixTbGlkZXJzOigpPT5ZdSxTbGlkZXJzSG9yaXpvbnRhbDooKT0+Q0IsU2xpZGVyc1ZlcnRpY2FsOigpPT5ZdSxTbWFydHBob25lOigpPT5EQixTbWFydHBob25lQ2hhcmdpbmc6KCk9PlRCLFNtYXJ0cGhvbmVOZmM6KCk9PkxCLFNtaWxlOigpPT5BQixTbWlsZVBsdXM6KCk9PiRCLFNuYWlsOigpPT5QQixTbm93Zmxha2U6KCk9PkVCLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT5JQixTb2ZhOigpPT5OQixTb2xhclBhbmVsOigpPT5SQixTb3J0QXNjOigpPT52ZCxTb3J0RGVzYzooKT0+bWQsU291cDooKT0+T0IsU3BhY2U6KCk9PkZCLFNwYWRlOigpPT5CQixTcGFya2xlOigpPT5IQixTcGFya2xlczooKT0+S3UsU3BlYWtlcjooKT0+cUIsU3BlZWNoOigpPT5WQixTcGVsbENoZWNrOigpPT5qQixTcGVsbENoZWNrMjooKT0+VUIsU3BsaW5lOigpPT5HQixTcGxpbmVQb2ludGVyOigpPT5XQixTcGxpdDooKT0+WUIsU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5qcCxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5VcCxTcG9vbDooKT0+S0IsU3BvcnRTaG9lOigpPT5aQixTcG90bGlnaHQ6KCk9PkpCLFNwcmF5Q2FuOigpPT5YQixTcHJvdXQ6KCk9PlFCLFNxdWFyZTooKT0+cEgsU3F1YXJlQWN0aXZpdHk6KCk9Plp1LFNxdWFyZUFycm93RG93bjooKT0+SnUsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+WHUsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9PlF1LFNxdWFyZUFycm93TGVmdDooKT0+ZXAsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+dHAsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PmFwLFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT5ycCxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9PnNwLFNxdWFyZUFycm93UmlnaHQ6KCk9PmlwLFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+ZUgsU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PnRILFNxdWFyZUFycm93VXA6KCk9PmxwLFNxdWFyZUFycm93VXBMZWZ0OigpPT5vcCxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9Pm5wLFNxdWFyZUFzdGVyaXNrOigpPT5jcCxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+ZHAsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9PnVwLFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+cHAsU3F1YXJlQ2hhcnRHYW50dDooKT0+aWMsU3F1YXJlQ2hlY2s6KCk9PmhwLFNxdWFyZUNoZWNrQmlnOigpPT5mcCxTcXVhcmVDaGV2cm9uRG93bjooKT0+bXAsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9PmdwLFNxdWFyZUNoZXZyb25SaWdodDooKT0+YnAsU3F1YXJlQ2hldnJvblVwOigpPT52cCxTcXVhcmVDb2RlOigpPT54cCxTcXVhcmVEYXNoZWQ6KCk9Pk1wLFNxdWFyZURhc2hlZEJvdHRvbTooKT0+ckgsU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+YUgsU3F1YXJlRGFzaGVkS2FuYmFuOigpPT55cCxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9PndwLFNxdWFyZURhc2hlZFRleHQ6KCk9Pm9jLFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT5zSCxTcXVhcmVEaXZpZGU6KCk9PlNwLFNxdWFyZURvdDooKT0+a3AsU3F1YXJlRXF1YWw6KCk9PnpwLFNxdWFyZUZ1bmN0aW9uOigpPT5DcCxTcXVhcmVHYW50dENoYXJ0OigpPT5pYyxTcXVhcmVLYW5iYW46KCk9PkxwLFNxdWFyZUxpYnJhcnk6KCk9Pl9wLFNxdWFyZU06KCk9PlRwLFNxdWFyZU1lbnU6KCk9PiRwLFNxdWFyZU1pbnVzOigpPT5EcCxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9PkFwLFNxdWFyZVBhcmtpbmc6KCk9PkVwLFNxdWFyZVBhcmtpbmdPZmY6KCk9PlBwLFNxdWFyZVBhdXNlOigpPT5pSCxTcXVhcmVQZW46KCk9PkMxLFNxdWFyZVBlcmNlbnQ6KCk9PklwLFNxdWFyZVBpOigpPT5OcCxTcXVhcmVQaWxjcm93OigpPT5ScCxTcXVhcmVQbGF5OigpPT5GcCxTcXVhcmVQbHVzOigpPT5PcCxTcXVhcmVQb3dlcjooKT0+QnAsU3F1YXJlUmFkaWNhbDooKT0+b0gsU3F1YXJlUm91bmRDb3JuZXI6KCk9Pm5ILFNxdWFyZVNjaXNzb3JzOigpPT5xcCxTcXVhcmVTaWdtYTooKT0+SHAsU3F1YXJlU2xhc2g6KCk9PlZwLFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+anAsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+VXAsU3F1YXJlU3F1YXJlOigpPT5sSCxTcXVhcmVTdGFjazooKT0+Y0gsU3F1YXJlU3RhcjooKT0+ZEgsU3F1YXJlU3RvcDooKT0+dUgsU3F1YXJlVGVybWluYWw6KCk9PldwLFNxdWFyZVVzZXI6KCk9PktwLFNxdWFyZVVzZXJSb3VuZDooKT0+R3AsU3F1YXJlWDooKT0+WXAsU3F1YXJlc0V4Y2x1ZGU6KCk9PmZILFNxdWFyZXNJbnRlcnNlY3Q6KCk9PmhILFNxdWFyZXNTdWJ0cmFjdDooKT0+bUgsU3F1YXJlc1VuaXRlOigpPT5nSCxTcXVpcmNsZTooKT0+dkgsU3F1aXJjbGVEYXNoZWQ6KCk9PmJILFNxdWlycmVsOigpPT54SCxTdGFtcDooKT0+eUgsU3RhcjooKT0+a0gsU3RhckhhbGY6KCk9PndILFN0YXJPZmY6KCk9Pk1ILFN0YXJzOigpPT5LdSxTdGVwQmFjazooKT0+U0gsU3RlcEZvcndhcmQ6KCk9PnpILFN0ZXRob3Njb3BlOigpPT5fSCxTdGlja2VyOigpPT5DSCxTdGlja3lOb3RlOigpPT5USCxTdG9uZTooKT0+REgsU3RvcENpcmNsZTooKT0+ZjYsU3RvcmU6KCk9PkxILFN0cmV0Y2hIb3Jpem9udGFsOigpPT4kSCxTdHJldGNoVmVydGljYWw6KCk9PkFILFN0cmlrZXRocm91Z2g6KCk9PlBILFN1YnNjcmlwdDooKT0+RUgsU3VidGl0bGVzOigpPT5fZCxTdW46KCk9PkZILFN1bkRpbTooKT0+SUgsU3VuTWVkaXVtOigpPT5OSCxTdW5Nb29uOigpPT5SSCxTdW5Tbm93OigpPT5PSCxTdW5yaXNlOigpPT5CSCxTdW5zZXQ6KCk9PkhILFN1cGVyc2NyaXB0OigpPT5xSCxTd2F0Y2hCb29rOigpPT5WSCxTd2lzc0ZyYW5jOigpPT5qSCxTd2l0Y2hDYW1lcmE6KCk9PlVILFN3b3JkOigpPT5XSCxTd29yZHM6KCk9PkdILFN5cmluZ2U6KCk9PllILFRhYmxlOigpPT5ycSxUYWJsZTI6KCk9PktILFRhYmxlQ2VsbHNNZXJnZTooKT0+WkgsVGFibGVDZWxsc1NwbGl0OigpPT5YSCxUYWJsZUNvbHVtbnNTcGxpdDooKT0+UUgsVGFibGVDb25maWc6KCk9PmVjLFRhYmxlT2ZDb250ZW50czooKT0+SkgsVGFibGVQcm9wZXJ0aWVzOigpPT5lcSxUYWJsZVJvd3NTcGxpdDooKT0+dHEsVGFibGV0OigpPT5zcSxUYWJsZXRTbWFydHBob25lOigpPT5hcSxUYWJsZXRzOigpPT5pcSxUYWc6KCk9Pm9xLFRhZ3M6KCk9Pm5xLFRhbGx5MTooKT0+bHEsVGFsbHkyOigpPT5jcSxUYWxseTM6KCk9PmRxLFRhbGx5NDooKT0+dXEsVGFsbHk1OigpPT5mcSxUYW5nZW50OigpPT5wcSxUYXJnZXQ6KCk9PmhxLFRlbGVzY29wZTooKT0+bXEsVGVudDooKT0+YnEsVGVudFRyZWU6KCk9PmdxLFRlcm1pbmFsOigpPT52cSxUZXJtaW5hbFNxdWFyZTooKT0+V3AsVGVzdFR1YmU6KCk9PnhxLFRlc3RUdWJlMjooKT0+WnAsVGVzdFR1YmVEaWFnb25hbDooKT0+WnAsVGVzdFR1YmVzOigpPT55cSxUZXh0OigpPT5uYyxUZXh0QWxpZ25DZW50ZXI6KCk9PlhwLFRleHRBbGlnbkVuZDooKT0+UXAsVGV4dEFsaWduSnVzdGlmeTooKT0+SnAsVGV4dEFsaWduU3RhcnQ6KCk9Pm5jLFRleHRDdXJzb3I6KCk9Pk1xLFRleHRDdXJzb3JJbnB1dDooKT0+d3EsVGV4dEluaXRpYWw6KCk9PmVmLFRleHRRdW90ZTooKT0+a3EsVGV4dFNlYXJjaDooKT0+U3EsVGV4dFNlbGVjdDooKT0+b2MsVGV4dFNlbGVjdGlvbjooKT0+b2MsVGV4dFdyYXA6KCk9PnRmLFRoZWF0ZXI6KCk9PnpxLFRoZXJtb21ldGVyOigpPT5UcSxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+Q3EsVGhlcm1vbWV0ZXJTdW46KCk9Pl9xLFRodW1ic0Rvd246KCk9PkxxLFRodW1ic1VwOigpPT4kcSxUaWNrZXQ6KCk9PlJxLFRpY2tldENoZWNrOigpPT5EcSxUaWNrZXRNaW51czooKT0+QXEsVGlja2V0UGVyY2VudDooKT0+UHEsVGlja2V0UGx1czooKT0+RXEsVGlja2V0U2xhc2g6KCk9PklxLFRpY2tldFg6KCk9Pk5xLFRpY2tldHM6KCk9PkZxLFRpY2tldHNQbGFuZTooKT0+T3EsVGltZWxpbmU6KCk9PkJxLFRpbWVyOigpPT5WcSxUaW1lck9mZjooKT0+SHEsVGltZXJSZXNldDooKT0+cXEsVG9nZ2xlTGVmdDooKT0+VXEsVG9nZ2xlUmlnaHQ6KCk9PldxLFRvaWxldDooKT0+anEsVG9vbENhc2U6KCk9PkdxLFRvb2xib3g6KCk9PllxLFRvcm5hZG86KCk9PlhxLFRvcnVzOigpPT5LcSxUb3VjaHBhZDooKT0+UXEsVG91Y2hwYWRPZmY6KCk9PlpxLFRvd2VsUmFjazooKT0+SnEsVG93ZXJDb250cm9sOigpPT5lVixUb3lCcmljazooKT0+dFYsVHJhY3RvcjooKT0+YVYsVHJhZmZpY0NvbmU6KCk9PnJWLFRyYWluOigpPT5hZixUcmFpbkZyb250OigpPT5pVixUcmFpbkZyb250VHVubmVsOigpPT5zVixUcmFpblRyYWNrOigpPT5vVixUcmFtRnJvbnQ6KCk9PmFmLFRyYW5zZ2VuZGVyOigpPT5uVixUcmFzaDooKT0+Y1YsVHJhc2gyOigpPT5sVixUcmVlRGVjaWR1b3VzOigpPT5kVixUcmVlUGFsbTooKT0+cmYsVHJlZVBpbmU6KCk9PnVWLFRyZWVzOigpPT5wVixUcmVuZGluZ0Rvd246KCk9PmZWLFRyZW5kaW5nVXA6KCk9Pm1WLFRyZW5kaW5nVXBEb3duOigpPT5oVixUcmlhbmdsZTooKT0+dlYsVHJpYW5nbGVBbGVydDooKT0+c2YsVHJpYW5nbGVEYXNoZWQ6KCk9PmdWLFRyaWFuZ2xlUmlnaHQ6KCk9PmJWLFRyb3BoeTooKT0+eFYsVHJ1Y2s6KCk9PndWLFRydWNrRWxlY3RyaWM6KCk9PnlWLFR1cmtpc2hMaXJhOigpPT5NVixUdXJudGFibGU6KCk9PmtWLFR1cnRsZTooKT0+U1YsVHY6KCk9PkNWLFR2MjooKT0+b2YsVHZNaW5pbWFsOigpPT5vZixUdk1pbmltYWxQbGF5OigpPT56VixUeXBlOigpPT5UVixUeXBlT3V0bGluZTooKT0+X1YsVW1icmVsbGE6KCk9PiRWLFVtYnJlbGxhT2ZmOigpPT5MVixVbmRlcmxpbmU6KCk9PkRWLFVuZG86KCk9PkVWLFVuZG8yOigpPT5BVixVbmRvRG90OigpPT5QVixVbmZvbGRIb3Jpem9udGFsOigpPT5JVixVbmZvbGRWZXJ0aWNhbDooKT0+TlYsVW5ncm91cDooKT0+UlYsVW5pdmVyc2l0eTooKT0+bmYsVW5saW5rOigpPT5CVixVbmxpbmsyOigpPT5PVixVbmxvY2s6KCk9Pnh1LFVubG9ja0tleWhvbGU6KCk9PnZ1LFVucGx1ZzooKT0+RlYsVXBsb2FkOigpPT5IVixVcGxvYWRDbG91ZDooKT0+eTYsVXNiOigpPT5xVixVc2VyOigpPT5haixVc2VyMjooKT0+ZmYsVXNlckNoZWNrOigpPT5WVixVc2VyQ2hlY2syOigpPT5sZixVc2VyQ2lyY2xlOigpPT5tNixVc2VyQ2lyY2xlMjooKT0+aDYsVXNlckNvZzooKT0+alYsVXNlckNvZzI6KCk9PmNmLFVzZXJLZXk6KCk9PlVWLFVzZXJMb2NrOigpPT5XVixVc2VyTWludXM6KCk9PkdWLFVzZXJNaW51czI6KCk9PmRmLFVzZXJQZW46KCk9PllWLFVzZXJQbHVzOigpPT5LVixVc2VyUGx1czI6KCk9PnVmLFVzZXJSb3VuZDooKT0+ZmYsVXNlclJvdW5kQ2hlY2s6KCk9PmxmLFVzZXJSb3VuZENvZzooKT0+Y2YsVXNlclJvdW5kS2V5OigpPT5aVixVc2VyUm91bmRNaW51czooKT0+ZGYsVXNlclJvdW5kUGVuOigpPT5YVixVc2VyUm91bmRQbHVzOigpPT51ZixVc2VyUm91bmRTZWFyY2g6KCk9PlFWLFVzZXJSb3VuZFg6KCk9PnBmLFVzZXJTZWFyY2g6KCk9PkpWLFVzZXJTcXVhcmU6KCk9PktwLFVzZXJTcXVhcmUyOigpPT5HcCxVc2VyU3RhcjooKT0+ZWosVXNlclg6KCk9PnRqLFVzZXJYMjooKT0+cGYsVXNlcnM6KCk9PnJqLFVzZXJzMjooKT0+aGYsVXNlcnNSb3VuZDooKT0+aGYsVXRlbnNpbHM6KCk9PmdmLFV0ZW5zaWxzQ3Jvc3NlZDooKT0+bWYsVXRpbGl0eVBvbGU6KCk9PmlqLFZhbjooKT0+c2osVmFyaWFibGU6KCk9Pm9qLFZhdWx0OigpPT5uaixWZWN0b3JTcXVhcmU6KCk9PmxqLFZlZ2FuOigpPT5jaixWZW5ldGlhbk1hc2s6KCk9PmRqLFZlbnVzOigpPT5waixWZW51c0FuZE1hcnM6KCk9PnVqLFZlcmlmaWVkOigpPT53ZCxWaWJyYXRlOigpPT5oaixWaWJyYXRlT2ZmOigpPT5maixWaWRlbzooKT0+Z2osVmlkZW9PZmY6KCk9Pm1qLFZpZGVvdGFwZTooKT0+YmosVmlldzooKT0+dmosVm9pY2VtYWlsOigpPT55aixWb2xsZXliYWxsOigpPT54aixWb2x1bWU6KCk9PnpqLFZvbHVtZTE6KCk9PndqLFZvbHVtZTI6KCk9Pk1qLFZvbHVtZU9mZjooKT0+a2osVm9sdW1lWDooKT0+U2osVm90ZTooKT0+Q2osV2FsbGV0OigpPT5UaixXYWxsZXQyOigpPT5iZixXYWxsZXRDYXJkczooKT0+X2osV2FsbGV0TWluaW1hbDooKT0+YmYsV2FsbHBhcGVyOigpPT5MaixXYW5kOigpPT4kaixXYW5kMjooKT0+dmYsV2FuZFNwYXJrbGVzOigpPT52ZixXYXJlaG91c2U6KCk9PkRqLFdhc2hpbmdNYWNoaW5lOigpPT5QaixXYXRjaDooKT0+QWosV2F2ZXM6KCk9PnhmLFdhdmVzQXJyb3dEb3duOigpPT5FaixXYXZlc0Fycm93VXA6KCk9PklqLFdhdmVzSG9yaXpvbnRhbDooKT0+eGYsV2F2ZXNMYWRkZXI6KCk9Pk5qLFdhdmVzVmVydGljYWw6KCk9PlJqLFdheXBvaW50czooKT0+T2osV2ViY2FtOigpPT5GaixXZWJob29rOigpPT5IaixXZWJob29rT2ZmOigpPT5CaixXZWlnaHQ6KCk9PlZqLFdlaWdodFRpbGRlOigpPT5xaixXaGVhdDooKT0+VWosV2hlYXRPZmY6KCk9PmpqLFdob2xlV29yZDooKT0+V2osV2lmaTooKT0+dFUsV2lmaUNvZzooKT0+R2osV2lmaUhpZ2g6KCk9PllqLFdpZmlMb3c6KCk9PktqLFdpZmlPZmY6KCk9PlpqLFdpZmlQZW46KCk9PlhqLFdpZmlTeW5jOigpPT5RaixXaWZpWmVybzooKT0+SmosV2luZDooKT0+YVUsV2luZEFycm93RG93bjooKT0+ZVUsV2luZTooKT0+b1UsV2luZU9mZjooKT0+clUsV29ya2Zsb3c6KCk9PmlVLFdvcm06KCk9PnNVLFdyYXBUZXh0OigpPT50ZixXcmVuY2g6KCk9Pm5VLFg6KCk9PmNVLFhDaXJjbGU6KCk9Pmc2LFhMaW5lVG9wOigpPT5sVSxYT2N0YWdvbjooKT0+X3UsWFNxdWFyZTooKT0+WXAsWmFwOigpPT51VSxaYXBPZmY6KCk9PmRVLFpvZGlhY0FxdWFyaXVzOigpPT5wVSxab2RpYWNBcmllczooKT0+ZlUsWm9kaWFjQ2FuY2VyOigpPT5oVSxab2RpYWNDYXByaWNvcm46KCk9Pm1VLFpvZGlhY0dlbWluaTooKT0+Z1UsWm9kaWFjTGVvOigpPT5iVSxab2RpYWNMaWJyYTooKT0+dlUsWm9kaWFjT3BoaXVjaHVzOigpPT54VSxab2RpYWNQaXNjZXM6KCk9PnlVLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT5NVSxab2RpYWNTY29ycGlvOigpPT53VSxab2RpYWNUYXVydXM6KCk9PmtVLFpvZGlhY1ZpcmdvOigpPT5TVSxab29tSW46KCk9PnpVLFpvb21PdXQ6KCk9PkNVfSk7dmFyIHlyYT1mKCgpPT57RmdlKCk7QmdlKCk7SGdlKCk7cWdlKCk7VmdlKCk7amdlKCk7VWdlKCk7V2dlKCk7R2dlKCk7WWdlKCk7S2dlKCk7WmdlKCk7WGdlKCk7UWdlKCk7SmdlKCk7ZWJlKCk7dGJlKCk7YWJlKCk7cmJlKCk7c2JlKCk7aWJlKCk7b2JlKCk7bmJlKCk7bGJlKCk7Y2JlKCk7ZGJlKCk7dWJlKCk7cGJlKCk7ZmJlKCk7aGJlKCk7bWJlKCk7Z2JlKCk7YmJlKCk7dmJlKCk7eGJlKCk7eWJlKCk7d2JlKCk7TWJlKCk7a2JlKCk7U2JlKCk7emJlKCk7Q2JlKCk7X2JlKCk7VGJlKCk7TGJlKCk7JGJlKCk7RGJlKCk7QWJlKCk7UGJlKCk7RWJlKCk7SWJlKCk7TmJlKCk7UmJlKCk7T2JlKCk7RmJlKCk7QmJlKCk7SGJlKCk7cWJlKCk7VmJlKCk7amJlKCk7VWJlKCk7V2JlKCk7R2JlKCk7WWJlKCk7S2JlKCk7WmJlKCk7WGJlKCk7UWJlKCk7SmJlKCk7ZXZlKCk7dHZlKCk7YXZlKCk7cnZlKCk7c3ZlKCk7aXZlKCk7b3ZlKCk7bnZlKCk7bHZlKCk7Y3ZlKCk7ZHZlKCk7dXZlKCk7cHZlKCk7ZnZlKCk7aHZlKCk7bXZlKCk7Z3ZlKCk7YnZlKCk7dnZlKCk7eHZlKCk7eXZlKCk7d3ZlKCk7TXZlKCk7a3ZlKCk7U3ZlKCk7enZlKCk7Q3ZlKCk7X3ZlKCk7VHZlKCk7THZlKCk7JHZlKCk7RHZlKCk7QXZlKCk7UHZlKCk7RXZlKCk7SXZlKCk7TnZlKCk7UnZlKCk7T3ZlKCk7RnZlKCk7QnZlKCk7SHZlKCk7cXZlKCk7VnZlKCk7anZlKCk7VXZlKCk7V3ZlKCk7R3ZlKCk7WXZlKCk7S3ZlKCk7WnZlKCk7WHZlKCk7UXZlKCk7SnZlKCk7ZXhlKCk7dHhlKCk7YXhlKCk7cnhlKCk7c3hlKCk7aXhlKCk7b3hlKCk7bnhlKCk7bHhlKCk7Y3hlKCk7ZHhlKCk7dXhlKCk7cHhlKCk7ZnhlKCk7aHhlKCk7bXhlKCk7Z3hlKCk7YnhlKCk7dnhlKCk7eHhlKCk7eXhlKCk7d3hlKCk7TXhlKCk7a3hlKCk7U3hlKCk7enhlKCk7Q3hlKCk7X3hlKCk7VHhlKCk7THhlKCk7JHhlKCk7RHhlKCk7QXhlKCk7UHhlKCk7RXhlKCk7SXhlKCk7TnhlKCk7UnhlKCk7T3hlKCk7RnhlKCk7QnhlKCk7SHhlKCk7cXhlKCk7VnhlKCk7anhlKCk7VXhlKCk7V3hlKCk7R3hlKCk7WXhlKCk7S3hlKCk7WnhlKCk7WHhlKCk7UXhlKCk7SnhlKCk7ZXllKCk7dHllKCk7YXllKCk7cnllKCk7c3llKCk7aXllKCk7b3llKCk7bnllKCk7bHllKCk7Y3llKCk7ZHllKCk7dXllKCk7cHllKCk7ZnllKCk7aHllKCk7bXllKCk7Z3llKCk7YnllKCk7dnllKCk7eHllKCk7eXllKCk7d3llKCk7TXllKCk7a3llKCk7U3llKCk7enllKCk7Q3llKCk7X3llKCk7VHllKCk7THllKCk7JHllKCk7RHllKCk7QXllKCk7UHllKCk7RXllKCk7SXllKCk7TnllKCk7UnllKCk7T3llKCk7RnllKCk7QnllKCk7SHllKCk7cXllKCk7VnllKCk7anllKCk7VXllKCk7V3llKCk7R3llKCk7WXllKCk7S3llKCk7WnllKCk7WHllKCk7UXllKCk7SnllKCk7ZXdlKCk7dHdlKCk7YXdlKCk7cndlKCk7c3dlKCk7aXdlKCk7b3dlKCk7bndlKCk7bHdlKCk7Y3dlKCk7ZHdlKCk7dXdlKCk7cHdlKCk7ZndlKCk7aHdlKCk7bXdlKCk7Z3dlKCk7YndlKCk7dndlKCk7eHdlKCk7eXdlKCk7d3dlKCk7TXdlKCk7a3dlKCk7U3dlKCk7endlKCk7Q3dlKCk7X3dlKCk7VHdlKCk7THdlKCk7JHdlKCk7RHdlKCk7QXdlKCk7UHdlKCk7RXdlKCk7SXdlKCk7TndlKCk7UndlKCk7T3dlKCk7RndlKCk7QndlKCk7SHdlKCk7cXdlKCk7VndlKCk7andlKCk7VXdlKCk7V3dlKCk7R3dlKCk7WXdlKCk7S3dlKCk7WndlKCk7WHdlKCk7UXdlKCk7SndlKCk7ZU1lKCk7dE1lKCk7YU1lKCk7ck1lKCk7c01lKCk7aU1lKCk7b01lKCk7bk1lKCk7bE1lKCk7Y01lKCk7ZE1lKCk7dU1lKCk7cE1lKCk7Zk1lKCk7aE1lKCk7bU1lKCk7Z01lKCk7Yk1lKCk7dk1lKCk7eE1lKCk7eU1lKCk7d01lKCk7TU1lKCk7a01lKCk7U01lKCk7ek1lKCk7Q01lKCk7X01lKCk7VE1lKCk7TE1lKCk7JE1lKCk7RE1lKCk7QU1lKCk7UE1lKCk7RU1lKCk7SU1lKCk7Tk1lKCk7Uk1lKCk7T01lKCk7Rk1lKCk7Qk1lKCk7SE1lKCk7cU1lKCk7Vk1lKCk7ak1lKCk7VU1lKCk7V01lKCk7R01lKCk7WU1lKCk7S01lKCk7Wk1lKCk7WE1lKCk7UU1lKCk7Sk1lKCk7ZWtlKCk7dGtlKCk7YWtlKCk7cmtlKCk7c2tlKCk7aWtlKCk7b2tlKCk7bmtlKCk7bGtlKCk7Y2tlKCk7ZGtlKCk7dWtlKCk7cGtlKCk7ZmtlKCk7aGtlKCk7bWtlKCk7Z2tlKCk7YmtlKCk7dmtlKCk7eGtlKCk7eWtlKCk7d2tlKCk7TWtlKCk7a2tlKCk7U2tlKCk7emtlKCk7Q2tlKCk7X2tlKCk7VGtlKCk7TGtlKCk7JGtlKCk7RGtlKCk7QWtlKCk7UGtlKCk7RWtlKCk7SWtlKCk7TmtlKCk7UmtlKCk7T2tlKCk7RmtlKCk7QmtlKCk7SGtlKCk7cWtlKCk7VmtlKCk7amtlKCk7VWtlKCk7V2tlKCk7R2tlKCk7WWtlKCk7S2tlKCk7WmtlKCk7WGtlKCk7UWtlKCk7SmtlKCk7ZVNlKCk7dFNlKCk7YVNlKCk7clNlKCk7c1NlKCk7aVNlKCk7b1NlKCk7blNlKCk7bFNlKCk7Y1NlKCk7ZFNlKCk7dVNlKCk7cFNlKCk7ZlNlKCk7aFNlKCk7bVNlKCk7Z1NlKCk7YlNlKCk7dlNlKCk7eFNlKCk7eVNlKCk7d1NlKCk7TVNlKCk7a1NlKCk7U1NlKCk7elNlKCk7Q1NlKCk7X1NlKCk7VFNlKCk7TFNlKCk7JFNlKCk7RFNlKCk7QVNlKCk7UFNlKCk7RVNlKCk7SVNlKCk7TlNlKCk7UlNlKCk7T1NlKCk7RlNlKCk7QlNlKCk7SFNlKCk7cVNlKCk7VlNlKCk7alNlKCk7VVNlKCk7V1NlKCk7R1NlKCk7WVNlKCk7S1NlKCk7WlNlKCk7WFNlKCk7UVNlKCk7SlNlKCk7ZXplKCk7dHplKCk7YXplKCk7cnplKCk7c3plKCk7aXplKCk7b3plKCk7bnplKCk7bHplKCk7Y3plKCk7ZHplKCk7dXplKCk7cHplKCk7ZnplKCk7aHplKCk7bXplKCk7Z3plKCk7YnplKCk7dnplKCk7eHplKCk7eXplKCk7d3plKCk7TXplKCk7a3plKCk7U3plKCk7enplKCk7Q3plKCk7X3plKCk7VHplKCk7THplKCk7JHplKCk7RHplKCk7QXplKCk7UHplKCk7RXplKCk7SXplKCk7TnplKCk7UnplKCk7T3plKCk7RnplKCk7QnplKCk7SHplKCk7cXplKCk7VnplKCk7anplKCk7VXplKCk7V3plKCk7R3plKCk7WXplKCk7S3plKCk7WnplKCk7WHplKCk7UXplKCk7SnplKCk7ZUNlKCk7dENlKCk7YUNlKCk7ckNlKCk7c0NlKCk7aUNlKCk7b0NlKCk7bkNlKCk7bENlKCk7Y0NlKCk7ZENlKCk7dUNlKCk7cENlKCk7ZkNlKCk7aENlKCk7bUNlKCk7Z0NlKCk7YkNlKCk7dkNlKCk7eENlKCk7eUNlKCk7d0NlKCk7TUNlKCk7a0NlKCk7U0NlKCk7ekNlKCk7Q0NlKCk7X0NlKCk7VENlKCk7TENlKCk7JENlKCk7RENlKCk7QUNlKCk7UENlKCk7RUNlKCk7SUNlKCk7TkNlKCk7UkNlKCk7T0NlKCk7RkNlKCk7QkNlKCk7SENlKCk7cUNlKCk7VkNlKCk7akNlKCk7VUNlKCk7V0NlKCk7R0NlKCk7WUNlKCk7S0NlKCk7WkNlKCk7WENlKCk7UUNlKCk7SkNlKCk7ZV9lKCk7dF9lKCk7YV9lKCk7cl9lKCk7c19lKCk7aV9lKCk7b19lKCk7bl9lKCk7bF9lKCk7Y19lKCk7ZF9lKCk7dV9lKCk7cF9lKCk7Zl9lKCk7aF9lKCk7bV9lKCk7Z19lKCk7Yl9lKCk7dl9lKCk7eF9lKCk7eV9lKCk7d19lKCk7TV9lKCk7a19lKCk7U19lKCk7el9lKCk7Q19lKCk7X19lKCk7VF9lKCk7TF9lKCk7JF9lKCk7RF9lKCk7QV9lKCk7UF9lKCk7RV9lKCk7SV9lKCk7Tl9lKCk7Ul9lKCk7T19lKCk7Rl9lKCk7Ql9lKCk7SF9lKCk7cV9lKCk7Vl9lKCk7al9lKCk7VV9lKCk7V19lKCk7R19lKCk7WV9lKCk7S19lKCk7Wl9lKCk7WF9lKCk7UV9lKCk7Sl9lKCk7ZVRlKCk7dFRlKCk7YVRlKCk7clRlKCk7c1RlKCk7aVRlKCk7b1RlKCk7blRlKCk7bFRlKCk7Y1RlKCk7ZFRlKCk7dVRlKCk7cFRlKCk7ZlRlKCk7aFRlKCk7bVRlKCk7Z1RlKCk7YlRlKCk7dlRlKCk7eFRlKCk7eVRlKCk7d1RlKCk7TVRlKCk7a1RlKCk7U1RlKCk7elRlKCk7Q1RlKCk7X1RlKCk7VFRlKCk7TFRlKCk7JFRlKCk7RFRlKCk7QVRlKCk7UFRlKCk7RVRlKCk7SVRlKCk7TlRlKCk7UlRlKCk7T1RlKCk7RlRlKCk7QlRlKCk7SFRlKCk7cVRlKCk7VlRlKCk7alRlKCk7VVRlKCk7V1RlKCk7R1RlKCk7WVRlKCk7S1RlKCk7WlRlKCk7WFRlKCk7UVRlKCk7SlRlKCk7ZUxlKCk7dExlKCk7YUxlKCk7ckxlKCk7c0xlKCk7aUxlKCk7b0xlKCk7bkxlKCk7bExlKCk7Y0xlKCk7ZExlKCk7dUxlKCk7cExlKCk7ZkxlKCk7aExlKCk7bUxlKCk7Z0xlKCk7YkxlKCk7dkxlKCk7eExlKCk7eUxlKCk7d0xlKCk7TUxlKCk7a0xlKCk7U0xlKCk7ekxlKCk7Q0xlKCk7X0xlKCk7VExlKCk7TExlKCk7JExlKCk7RExlKCk7QUxlKCk7UExlKCk7RUxlKCk7SUxlKCk7TkxlKCk7UkxlKCk7T0xlKCk7RkxlKCk7QkxlKCk7SExlKCk7cUxlKCk7VkxlKCk7akxlKCk7VUxlKCk7V0xlKCk7R0xlKCk7WUxlKCk7S0xlKCk7WkxlKCk7WExlKCk7UUxlKCk7SkxlKCk7ZSRlKCk7dCRlKCk7YSRlKCk7ciRlKCk7cyRlKCk7aSRlKCk7byRlKCk7biRlKCk7bCRlKCk7YyRlKCk7ZCRlKCk7dSRlKCk7cCRlKCk7ZiRlKCk7aCRlKCk7bSRlKCk7ZyRlKCk7YiRlKCk7diRlKCk7eCRlKCk7eSRlKCk7dyRlKCk7TSRlKCk7ayRlKCk7UyRlKCk7eiRlKCk7QyRlKCk7XyRlKCk7VCRlKCk7TCRlKCk7JCRlKCk7RCRlKCk7QSRlKCk7UCRlKCk7RSRlKCk7SSRlKCk7TiRlKCk7UiRlKCk7TyRlKCk7RiRlKCk7QiRlKCk7SCRlKCk7cSRlKCk7ViRlKCk7aiRlKCk7VSRlKCk7VyRlKCk7RyRlKCk7WSRlKCk7SyRlKCk7WiRlKCk7WCRlKCk7USRlKCk7SiRlKCk7ZURlKCk7dERlKCk7YURlKCk7ckRlKCk7c0RlKCk7aURlKCk7b0RlKCk7bkRlKCk7bERlKCk7Y0RlKCk7ZERlKCk7dURlKCk7cERlKCk7ZkRlKCk7aERlKCk7bURlKCk7Z0RlKCk7YkRlKCk7dkRlKCk7eERlKCk7eURlKCk7d0RlKCk7TURlKCk7a0RlKCk7U0RlKCk7ekRlKCk7Q0RlKCk7X0RlKCk7VERlKCk7TERlKCk7JERlKCk7RERlKCk7QURlKCk7UERlKCk7RURlKCk7SURlKCk7TkRlKCk7UkRlKCk7T0RlKCk7RkRlKCk7QkRlKCk7SERlKCk7cURlKCk7VkRlKCk7akRlKCk7VURlKCk7V0RlKCk7R0RlKCk7WURlKCk7S0RlKCk7WkRlKCk7WERlKCk7UURlKCk7SkRlKCk7ZUFlKCk7dEFlKCk7YUFlKCk7ckFlKCk7c0FlKCk7aUFlKCk7b0FlKCk7bkFlKCk7bEFlKCk7Y0FlKCk7ZEFlKCk7dUFlKCk7cEFlKCk7ZkFlKCk7aEFlKCk7bUFlKCk7Z0FlKCk7YkFlKCk7dkFlKCk7eEFlKCk7eUFlKCk7d0FlKCk7TUFlKCk7a0FlKCk7U0FlKCk7ekFlKCk7Q0FlKCk7X0FlKCk7VEFlKCk7TEFlKCk7JEFlKCk7REFlKCk7QUFlKCk7UEFlKCk7RUFlKCk7SUFlKCk7TkFlKCk7UkFlKCk7T0FlKCk7RkFlKCk7QkFlKCk7SEFlKCk7cUFlKCk7VkFlKCk7akFlKCk7VUFlKCk7V0FlKCk7R0FlKCk7WUFlKCk7S0FlKCk7WkFlKCk7WEFlKCk7UUFlKCk7SkFlKCk7ZVBlKCk7dFBlKCk7YVBlKCk7clBlKCk7c1BlKCk7aVBlKCk7b1BlKCk7blBlKCk7bFBlKCk7Y1BlKCk7ZFBlKCk7dVBlKCk7cFBlKCk7ZlBlKCk7aFBlKCk7bVBlKCk7Z1BlKCk7YlBlKCk7dlBlKCk7eFBlKCk7eVBlKCk7d1BlKCk7TVBlKCk7a1BlKCk7U1BlKCk7elBlKCk7Q1BlKCk7X1BlKCk7VFBlKCk7TFBlKCk7JFBlKCk7RFBlKCk7QVBlKCk7UFBlKCk7RVBlKCk7SVBlKCk7TlBlKCk7UlBlKCk7T1BlKCk7RlBlKCk7QlBlKCk7SFBlKCk7cVBlKCk7VlBlKCk7alBlKCk7VVBlKCk7V1BlKCk7R1BlKCk7WVBlKCk7S1BlKCk7WlBlKCk7WFBlKCk7UVBlKCk7SlBlKCk7ZUVlKCk7dEVlKCk7YUVlKCk7ckVlKCk7c0VlKCk7aUVlKCk7b0VlKCk7bkVlKCk7bEVlKCk7Y0VlKCk7ZEVlKCk7dUVlKCk7cEVlKCk7ZkVlKCk7aEVlKCk7bUVlKCk7Z0VlKCk7YkVlKCk7dkVlKCk7eEVlKCk7eUVlKCk7d0VlKCk7TUVlKCk7a0VlKCk7U0VlKCk7ekVlKCk7Q0VlKCk7X0VlKCk7VEVlKCk7TEVlKCk7JEVlKCk7REVlKCk7QUVlKCk7UEVlKCk7RUVlKCk7SUVlKCk7TkVlKCk7UkVlKCk7T0VlKCk7RkVlKCk7QkVlKCk7SEVlKCk7cUVlKCk7VkVlKCk7akVlKCk7VUVlKCk7V0VlKCk7R0VlKCk7WUVlKCk7S0VlKCk7WkVlKCk7WEVlKCk7UUVlKCk7SkVlKCk7ZUllKCk7dEllKCk7YUllKCk7ckllKCk7c0llKCk7aUllKCk7b0llKCk7bkllKCk7bEllKCk7Y0llKCk7ZEllKCk7dUllKCk7cEllKCk7ZkllKCk7aEllKCk7bUllKCk7Z0llKCk7YkllKCk7dkllKCk7eEllKCk7eUllKCk7d0llKCk7TUllKCk7a0llKCk7U0llKCk7ekllKCk7Q0llKCk7X0llKCk7VEllKCk7TEllKCk7JEllKCk7REllKCk7QUllKCk7UEllKCk7RUllKCk7SUllKCk7TkllKCk7UkllKCk7T0llKCk7RkllKCk7QkllKCk7SEllKCk7cUllKCk7VkllKCk7akllKCk7VUllKCk7V0llKCk7R0llKCk7WUllKCk7S0llKCk7WkllKCk7WEllKCk7UUllKCk7SkllKCk7ZU5lKCk7dE5lKCk7YU5lKCk7ck5lKCk7c05lKCk7aU5lKCk7b05lKCk7bk5lKCk7bE5lKCk7Y05lKCk7ZE5lKCk7dU5lKCk7cE5lKCk7Zk5lKCk7aE5lKCk7bU5lKCk7Z05lKCk7Yk5lKCk7dk5lKCk7eE5lKCk7eU5lKCk7d05lKCk7TU5lKCk7a05lKCk7U05lKCk7ek5lKCk7Q05lKCk7X05lKCk7VE5lKCk7TE5lKCk7JE5lKCk7RE5lKCk7QU5lKCk7UE5lKCk7RU5lKCk7SU5lKCk7Tk5lKCk7Uk5lKCk7T05lKCk7Rk5lKCk7Qk5lKCk7SE5lKCk7cU5lKCk7Vk5lKCk7ak5lKCk7VU5lKCk7V05lKCk7R05lKCk7WU5lKCk7S05lKCk7Wk5lKCk7WE5lKCk7UU5lKCk7Sk5lKCk7ZVJlKCk7dFJlKCk7YVJlKCk7clJlKCk7c1JlKCk7aVJlKCk7b1JlKCk7blJlKCk7bFJlKCk7Y1JlKCk7ZFJlKCk7dVJlKCk7cFJlKCk7ZlJlKCk7aFJlKCk7bVJlKCk7Z1JlKCk7YlJlKCk7dlJlKCk7eFJlKCk7eVJlKCk7d1JlKCk7TVJlKCk7a1JlKCk7U1JlKCk7elJlKCk7Q1JlKCk7X1JlKCk7VFJlKCk7TFJlKCk7JFJlKCk7RFJlKCk7QVJlKCk7UFJlKCk7RVJlKCk7SVJlKCk7TlJlKCk7UlJlKCk7T1JlKCk7RlJlKCk7QlJlKCk7SFJlKCk7cVJlKCk7VlJlKCk7alJlKCk7VVJlKCk7V1JlKCk7R1JlKCk7WVJlKCk7S1JlKCk7WlJlKCk7WFJlKCk7UVJlKCk7SlJlKCk7ZU9lKCk7dE9lKCk7YU9lKCk7ck9lKCk7c09lKCk7aU9lKCk7b09lKCk7bk9lKCk7bE9lKCk7Y09lKCk7ZE9lKCk7dU9lKCk7cE9lKCk7Zk9lKCk7aE9lKCk7bU9lKCk7Z09lKCk7Yk9lKCk7dk9lKCk7eE9lKCk7eU9lKCk7d09lKCk7TU9lKCk7a09lKCk7U09lKCk7ek9lKCk7Q09lKCk7X09lKCk7VE9lKCk7TE9lKCk7JE9lKCk7RE9lKCk7QU9lKCk7UE9lKCk7RU9lKCk7SU9lKCk7Tk9lKCk7Uk9lKCk7T09lKCk7Rk9lKCk7Qk9lKCk7SE9lKCk7cU9lKCk7Vk9lKCk7ak9lKCk7VU9lKCk7V09lKCk7R09lKCk7WU9lKCk7S09lKCk7Wk9lKCk7WE9lKCk7UU9lKCk7Sk9lKCk7ZUZlKCk7dEZlKCk7YUZlKCk7ckZlKCk7c0ZlKCk7aUZlKCk7b0ZlKCk7bkZlKCk7bEZlKCk7Y0ZlKCk7ZEZlKCk7dUZlKCk7cEZlKCk7ZkZlKCk7aEZlKCk7bUZlKCk7Z0ZlKCk7YkZlKCk7dkZlKCk7eEZlKCk7eUZlKCk7d0ZlKCk7TUZlKCk7a0ZlKCk7U0ZlKCk7ekZlKCk7Q0ZlKCk7X0ZlKCk7VEZlKCk7TEZlKCk7JEZlKCk7REZlKCk7QUZlKCk7UEZlKCk7RUZlKCk7SUZlKCk7TkZlKCk7UkZlKCk7T0ZlKCk7RkZlKCk7QkZlKCk7SEZlKCk7cUZlKCk7VkZlKCk7akZlKCk7VUZlKCk7V0ZlKCk7R0ZlKCk7WUZlKCk7S0ZlKCk7WkZlKCk7WEZlKCk7UUZlKCk7SkZlKCk7ZUJlKCk7dEJlKCk7YUJlKCk7ckJlKCk7c0JlKCk7aUJlKCk7b0JlKCk7bkJlKCk7bEJlKCk7Y0JlKCk7ZEJlKCk7dUJlKCk7cEJlKCk7ZkJlKCk7aEJlKCk7bUJlKCk7Z0JlKCk7YkJlKCk7dkJlKCk7eEJlKCk7eUJlKCk7d0JlKCk7TUJlKCk7a0JlKCk7U0JlKCk7ekJlKCk7Q0JlKCk7X0JlKCk7VEJlKCk7TEJlKCk7JEJlKCk7REJlKCk7QUJlKCk7UEJlKCk7RUJlKCk7SUJlKCk7TkJlKCk7UkJlKCk7T0JlKCk7RkJlKCk7QkJlKCk7SEJlKCk7cUJlKCk7VkJlKCk7akJlKCk7VUJlKCk7V0JlKCk7R0JlKCk7WUJlKCk7S0JlKCk7WkJlKCk7WEJlKCk7UUJlKCk7SkJlKCk7ZUhlKCk7dEhlKCk7YUhlKCk7ckhlKCk7c0hlKCk7aUhlKCk7b0hlKCk7bkhlKCk7bEhlKCk7Y0hlKCk7ZEhlKCk7dUhlKCk7cEhlKCk7ZkhlKCk7aEhlKCk7bUhlKCk7Z0hlKCk7YkhlKCk7dkhlKCk7eEhlKCk7eUhlKCk7d0hlKCk7TUhlKCk7a0hlKCk7U0hlKCk7ekhlKCk7Q0hlKCk7X0hlKCk7VEhlKCk7TEhlKCk7JEhlKCk7REhlKCk7QUhlKCk7UEhlKCk7RUhlKCk7SUhlKCk7TkhlKCk7UkhlKCk7T0hlKCk7RkhlKCk7QkhlKCk7SEhlKCk7cUhlKCk7VkhlKCk7akhlKCk7VUhlKCk7V0hlKCk7R0hlKCk7WUhlKCk7S0hlKCk7WkhlKCk7WEhlKCk7UUhlKCk7SkhlKCk7ZXFlKCk7dHFlKCk7YXFlKCk7cnFlKCk7c3FlKCk7aXFlKCk7b3FlKCk7bnFlKCk7bHFlKCk7Y3FlKCk7ZHFlKCk7dXFlKCk7cHFlKCk7ZnFlKCk7aHFlKCk7bXFlKCk7Z3FlKCk7YnFlKCk7dnFlKCk7eHFlKCk7eXFlKCk7d3FlKCk7TXFlKCk7a3FlKCk7U3FlKCk7enFlKCk7Q3FlKCk7X3FlKCk7VHFlKCk7THFlKCk7JHFlKCk7RHFlKCk7QXFlKCk7UHFlKCk7RXFlKCk7SXFlKCk7TnFlKCk7UnFlKCk7T3FlKCk7RnFlKCk7QnFlKCk7SHFlKCk7cXFlKCk7VnFlKCk7anFlKCk7VXFlKCk7V3FlKCk7R3FlKCk7WXFlKCk7S3FlKCk7WnFlKCk7WHFlKCk7UXFlKCk7SnFlKCk7ZVZlKCk7dFZlKCk7YVZlKCk7clZlKCk7c1ZlKCk7aVZlKCk7b1ZlKCk7blZlKCk7bFZlKCk7Y1ZlKCk7ZFZlKCk7dVZlKCk7cFZlKCk7ZlZlKCk7aFZlKCk7bVZlKCk7Z1ZlKCk7YlZlKCk7dlZlKCk7eFZlKCk7eVZlKCk7d1ZlKCk7TVZlKCk7a1ZlKCk7U1ZlKCk7elZlKCk7Q1ZlKCk7X1ZlKCk7VFZlKCk7TFZlKCk7JFZlKCk7RFZlKCk7QVZlKCk7UFZlKCk7RVZlKCk7SVZlKCk7TlZlKCk7UlZlKCk7T1ZlKCk7RlZlKCk7QlZlKCk7SFZlKCk7cVZlKCk7VlZlKCk7alZlKCk7VVZlKCk7V1ZlKCk7R1ZlKCk7WVZlKCk7S1ZlKCk7WlZlKCk7WFZlKCk7UVZlKCk7SlZlKCk7ZWplKCk7dGplKCk7YWplKCk7cmplKCk7c2plKCk7aWplKCk7b2plKCk7bmplKCk7bGplKCk7Y2plKCk7ZGplKCk7dWplKCk7cGplKCk7ZmplKCk7aGplKCk7bWplKCk7Z2plKCk7YmplKCk7dmplKCk7eGplKCk7eWplKCk7d2plKCk7TWplKCk7a2plKCk7U2plKCk7emplKCk7Q2plKCk7X2plKCk7VGplKCk7TGplKCk7JGplKCk7RGplKCk7QWplKCk7UGplKCk7RWplKCk7SWplKCk7TmplKCk7UmplKCk7T2plKCk7RmplKCk7QmplKCk7SGplKCk7cWplKCk7VmplKCk7amplKCk7VWplKCk7V2plKCk7R2plKCk7WWplKCk7S2plKCk7WmplKCk7WGplKCk7UWplKCk7SmplKCk7ZVVlKCk7dFVlKCk7YVVlKCk7clVlKCk7c1VlKCk7aVVlKCk7b1VlKCk7blVlKCk7bFVlKCk7Y1VlKCk7ZFVlKCk7dVVlKCk7cFVlKCk7ZlVlKCk7aFVlKCk7bVVlKCk7Z1VlKCk7YlVlKCk7dlVlKCk7eFVlKCk7eVVlKCk7d1VlKCk7TVVlKCk7a1VlKCk7U1VlKCk7elVlKCk7Q1VlKCk7X1VlKCk7VFVlKCk7TFVlKCk7JFVlKCk7RFVlKCk7QVVlKCk7UFVlKCk7RVVlKCk7SVVlKCk7TlVlKCk7UlVlKCk7T1VlKCk7RlVlKCk7QlVlKCk7SFVlKCk7cVVlKCk7VlVlKCk7alVlKCk7VVVlKCk7V1VlKCk7R1VlKCk7WVVlKCk7S1VlKCk7WlVlKCk7WFVlKCk7UVVlKCk7SlVlKCk7ZVdlKCk7dFdlKCk7YVdlKCk7cldlKCk7c1dlKCk7aVdlKCk7b1dlKCk7bldlKCk7bFdlKCk7Y1dlKCk7ZFdlKCk7dVdlKCk7cFdlKCk7ZldlKCk7aFdlKCk7bVdlKCk7Z1dlKCk7YldlKCk7dldlKCk7eFdlKCk7eVdlKCk7d1dlKCk7TVdlKCk7a1dlKCk7U1dlKCk7eldlKCk7Q1dlKCk7X1dlKCk7VFdlKCk7TFdlKCk7JFdlKCk7RFdlKCk7QVdlKCk7UFdlKCk7RVdlKCk7SVdlKCk7TldlKCk7UldlKCk7T1dlKCk7RldlKCk7QldlKCk7SFdlKCk7cVdlKCk7VldlKCk7aldlKCk7VVdlKCk7V1dlKCk7R1dlKCk7WVdlKCk7S1dlKCk7WldlKCk7WFdlKCk7UVdlKCk7SldlKCk7ZUdlKCk7dEdlKCk7YUdlKCk7ckdlKCk7c0dlKCk7aUdlKCk7b0dlKCk7bkdlKCk7bEdlKCk7Y0dlKCk7ZEdlKCk7dUdlKCk7cEdlKCk7ZkdlKCk7aEdlKCk7bUdlKCk7Z0dlKCk7YkdlKCk7dkdlKCk7eEdlKCk7eUdlKCk7d0dlKCk7TUdlKCk7a0dlKCk7U0dlKCk7ekdlKCk7Q0dlKCk7X0dlKCk7VEdlKCk7TEdlKCk7JEdlKCk7REdlKCk7QUdlKCk7UEdlKCk7RUdlKCk7SUdlKCk7TkdlKCk7UkdlKCk7T0dlKCk7RkdlKCk7QkdlKCk7SEdlKCk7cUdlKCk7VkdlKCk7akdlKCk7VUdlKCk7V0dlKCk7R0dlKCk7WUdlKCk7S0dlKCk7WkdlKCk7WEdlKCk7UUdlKCk7SkdlKCk7ZVllKCk7dFllKCk7YVllKCk7clllKCk7c1llKCk7aVllKCk7b1llKCk7blllKCk7bFllKCk7Y1llKCk7ZFllKCk7dVllKCk7cFllKCk7ZlllKCk7fSk7dmFyIHEyPXt9O2x0KHEyLHtBQXJyb3dEb3duOigpPT5ndixBQXJyb3dVcDooKT0+YnYsQUxhcmdlU21hbGw6KCk9PnZ2LEFjY2Vzc2liaWxpdHk6KCk9Pnh2LEFjdGl2aXR5OigpPT55dixBY3Rpdml0eVNxdWFyZTooKT0+WnUsQWlyVmVudDooKT0+d3YsQWlycGxheTooKT0+TXYsQWxhcm1DaGVjazooKT0+dWQsQWxhcm1DbG9jazooKT0+U3YsQWxhcm1DbG9ja0NoZWNrOigpPT51ZCxBbGFybUNsb2NrTWludXM6KCk9PnBkLEFsYXJtQ2xvY2tPZmY6KCk9Pmt2LEFsYXJtQ2xvY2tQbHVzOigpPT5mZCxBbGFybU1pbnVzOigpPT5wZCxBbGFybVBsdXM6KCk9PmZkLEFsYXJtU21va2U6KCk9Pnp2LEFsYnVtOigpPT5DdixBbGVydENpcmNsZTooKT0+SGQsQWxlcnRPY3RhZ29uOigpPT56dSxBbGVydFRyaWFuZ2xlOigpPT5zZixBbGlnbkNlbnRlcjooKT0+WHAsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5fdixBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5UdixBbGlnbkVuZEhvcml6b250YWw6KCk9Pkx2LEFsaWduRW5kVmVydGljYWw6KCk9PkR2LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PiR2LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PkF2LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+UHYsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+RXYsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+SXYsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5OdixBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+UnYsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5CdixBbGlnbkp1c3RpZnk6KCk9PkpwLEFsaWduTGVmdDooKT0+bmMsQWxpZ25SaWdodDooKT0+UXAsQWxpZ25TdGFydEhvcml6b250YWw6KCk9Pk92LEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+RnYsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Pkh2LEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5xdixBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5WdixBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+anYsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PlV2LEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9Pld2LEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+R3YsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+WXYsQW1idWxhbmNlOigpPT5LdixBbXBlcnNhbmQ6KCk9Plh2LEFtcGVyc2FuZHM6KCk9Plp2LEFtcGhvcmE6KCk9PlF2LEFuY2hvcjooKT0+SnYsQW5ncnk6KCk9PmV4LEFubm95ZWQ6KCk9PnR4LEFudGVubmE6KCk9PmF4LEFudmlsOigpPT5yeCxBcGVydHVyZTooKT0+c3gsQXBwV2luZG93OigpPT5veCxBcHBXaW5kb3dNYWM6KCk9Pml4LEFwcGxlOigpPT5seCxBcmNoaXZlOigpPT51eCxBcmNoaXZlUmVzdG9yZTooKT0+bngsQXJjaGl2ZVg6KCk9PmN4LEFyZWFDaGFydDooKT0+VGQsQXJtY2hhaXI6KCk9PmR4LEFycm93QmlnRG93bjooKT0+ZngsQXJyb3dCaWdEb3duRGFzaDooKT0+cHgsQXJyb3dCaWdMZWZ0OigpPT5oeCxBcnJvd0JpZ0xlZnREYXNoOigpPT5teCxBcnJvd0JpZ1JpZ2h0OigpPT5ieCxBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+Z3gsQXJyb3dCaWdVcDooKT0+eHgsQXJyb3dCaWdVcERhc2g6KCk9PnZ4LEFycm93RG93bjooKT0+THgsQXJyb3dEb3duMDE6KCk9Pnl4LEFycm93RG93bjEwOigpPT53eCxBcnJvd0Rvd25BWjooKT0+aGQsQXJyb3dEb3duQXo6KCk9PmhkLEFycm93RG93bkNpcmNsZTooKT0+cWQsQXJyb3dEb3duRnJvbUxpbmU6KCk9Pk14LEFycm93RG93bkxlZnQ6KCk9Pmt4LEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5qZCxBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+dHAsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+WHUsQXJyb3dEb3duTmFycm93V2lkZTooKT0+U3gsQXJyb3dEb3duUmlnaHQ6KCk9Pnp4LEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+VWQsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5hcCxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+UXUsQXJyb3dEb3duU3F1YXJlOigpPT5KdSxBcnJvd0Rvd25Ub0RvdDooKT0+Q3gsQXJyb3dEb3duVG9MaW5lOigpPT5UeCxBcnJvd0Rvd25VcDooKT0+X3gsQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+bWQsQXJyb3dEb3duWkE6KCk9PmdkLEFycm93RG93blphOigpPT5nZCxBcnJvd0xlZnQ6KCk9PkV4LEFycm93TGVmdENpcmNsZTooKT0+VmQsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PiR4LEFycm93TGVmdFJpZ2h0OigpPT5EeCxBcnJvd0xlZnRTcXVhcmU6KCk9PmVwLEFycm93TGVmdFRvTGluZTooKT0+QXgsQXJyb3dSaWdodDooKT0+UngsQXJyb3dSaWdodENpcmNsZTooKT0+WWQsQXJyb3dSaWdodEZyb21MaW5lOigpPT5QeCxBcnJvd1JpZ2h0TGVmdDooKT0+SXgsQXJyb3dSaWdodFNxdWFyZTooKT0+aXAsQXJyb3dSaWdodFRvTGluZTooKT0+TngsQXJyb3dVcDooKT0+R3gsQXJyb3dVcDAxOigpPT5GeCxBcnJvd1VwMTA6KCk9Pk94LEFycm93VXBBWjooKT0+YmQsQXJyb3dVcEF6OigpPT5iZCxBcnJvd1VwQ2lyY2xlOigpPT5LZCxBcnJvd1VwRG93bjooKT0+QngsQXJyb3dVcEZyb21Eb3Q6KCk9Pkh4LEFycm93VXBGcm9tTGluZTooKT0+cXgsQXJyb3dVcExlZnQ6KCk9PlZ4LEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+V2QsQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT5ycCxBcnJvd1VwTGVmdFNxdWFyZTooKT0+b3AsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PnZkLEFycm93VXBSaWdodDooKT0+angsQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+R2QsQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+c3AsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT5ucCxBcnJvd1VwU3F1YXJlOigpPT5scCxBcnJvd1VwVG9MaW5lOigpPT5XeCxBcnJvd1VwV2lkZU5hcnJvdzooKT0+VXgsQXJyb3dVcFpBOigpPT54ZCxBcnJvd1VwWmE6KCk9PnhkLEFycm93c1VwRnJvbUxpbmU6KCk9Pkt4LEFzdGVyaXNrOigpPT5ZeCxBc3Rlcmlza1NxdWFyZTooKT0+Y3AsQXN0cm9pZDooKT0+WngsQXRTaWduOigpPT5YeCxBdG9tOigpPT5ReCxBdWRpb0xpbmVzOigpPT5KeCxBdWRpb1dhdmVmb3JtOigpPT5leSxBd2FyZDooKT0+dHksQXhlOigpPT5heSxBeGlzM0Q6KCk9PnlkLEF4aXMzZDooKT0+eWQsQmFieTooKT0+cnksQmFja3BhY2s6KCk9PnN5LEJhZGdlOigpPT55eSxCYWRnZUFsZXJ0OigpPT5peSxCYWRnZUNlbnQ6KCk9Pm95LEJhZGdlQ2hlY2s6KCk9PndkLEJhZGdlRG9sbGFyU2lnbjooKT0+bnksQmFkZ2VFdXJvOigpPT5seSxCYWRnZUhlbHA6KCk9Pk1kLEJhZGdlSW5kaWFuUnVwZWU6KCk9PmN5LEJhZGdlSW5mbzooKT0+ZHksQmFkZ2VKYXBhbmVzZVllbjooKT0+dXksQmFkZ2VNaW51czooKT0+cHksQmFkZ2VQZXJjZW50OigpPT5meSxCYWRnZVBsdXM6KCk9Pmh5LEJhZGdlUG91bmRTdGVybGluZzooKT0+bXksQmFkZ2VRdWVzdGlvbk1hcms6KCk9Pk1kLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5ieSxCYWRnZVN3aXNzRnJhbmM6KCk9Pmd5LEJhZGdlVHVya2lzaExpcmE6KCk9PnZ5LEJhZGdlWDooKT0+eHksQmFnZ2FnZUNsYWltOigpPT53eSxCYWxsb29uOigpPT5reSxCYW46KCk9Pk15LEJhbmFuYTooKT0+U3ksQmFuZGFnZTooKT0+enksQmFua25vdGU6KCk9Pkx5LEJhbmtub3RlQXJyb3dEb3duOigpPT5feSxCYW5rbm90ZUFycm93VXA6KCk9PkN5LEJhbmtub3RlWDooKT0+VHksQmFyQ2hhcnQ6KCk9Pk5kLEJhckNoYXJ0MjooKT0+UmQsQmFyQ2hhcnQzOigpPT5FZCxCYXJDaGFydDQ6KCk9PlBkLEJhckNoYXJ0QmlnOigpPT5BZCxCYXJDaGFydEhvcml6b250YWw6KCk9PiRkLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+TGQsQmFyY29kZTooKT0+JHksQmFycmVsOigpPT5EeSxCYXNlbGluZTooKT0+QXksQmF0aDooKT0+UHksQmF0dGVyeTooKT0+QnksQmF0dGVyeUNoYXJnaW5nOigpPT5FeSxCYXR0ZXJ5RnVsbDooKT0+SXksQmF0dGVyeUxvdzooKT0+TnksQmF0dGVyeU1lZGl1bTooKT0+UnksQmF0dGVyeVBsdXM6KCk9Pk95LEJhdHRlcnlXYXJuaW5nOigpPT5GeSxCZWFrZXI6KCk9PnF5LEJlYW46KCk9Pmp5LEJlYW5PZmY6KCk9Pkh5LEJlZDooKT0+R3ksQmVkRG91YmxlOigpPT5WeSxCZWRTaW5nbGU6KCk9PlV5LEJlZWY6KCk9Pll5LEJlZWZPZmY6KCk9Pld5LEJlZXI6KCk9Plp5LEJlZXJPZmY6KCk9Pkt5LEJlbGw6KCk9PnN3LEJlbGxDaGVjazooKT0+WHksQmVsbERvdDooKT0+UXksQmVsbEVsZWN0cmljOigpPT5KeSxCZWxsTWludXM6KCk9PnR3LEJlbGxPZmY6KCk9PmV3LEJlbGxQbHVzOigpPT5hdyxCZWxsUmluZzooKT0+cncsQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+a2QsQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT5TZCxCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+a2QsQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+U2QsQmV0d2VlblZlcnRpY2FsRW5kOigpPT5pdyxCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+b3csQmljZXBzRmxleGVkOigpPT5udyxCaWtlOigpPT5sdyxCaW5hcnk6KCk9PmN3LEJpbm9jdWxhcnM6KCk9PmR3LEJpb2hhemFyZDooKT0+dXcsQmlyZDooKT0+cHcsQmlyZGhvdXNlOigpPT5mdyxCaXRjb2luOigpPT5odyxCbGVuZDooKT0+bXcsQmxpbmRzOigpPT5ndyxCbG9ja3M6KCk9PmJ3LEJsdWV0b290aDooKT0+eXcsQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT52dyxCbHVldG9vdGhPZmY6KCk9Pnh3LEJsdWV0b290aFNlYXJjaGluZzooKT0+d3csQm9sZDooKT0+TXcsQm9sdDooKT0+U3csQm9tYjooKT0+a3csQm9uZTooKT0+encsQm9vazooKT0+WncsQm9va0E6KCk9PkN3LEJvb2tBbGVydDooKT0+X3csQm9va0F1ZGlvOigpPT5UdyxCb29rQ2hlY2s6KCk9Pkx3LEJvb2tDb3B5OigpPT4kdyxCb29rRGFzaGVkOigpPT56ZCxCb29rRG93bjooKT0+RHcsQm9va0hlYWRwaG9uZXM6KCk9PkF3LEJvb2tIZWFydDooKT0+UHcsQm9va0ltYWdlOigpPT5FdyxCb29rS2V5OigpPT5JdyxCb29rTG9jazooKT0+UncsQm9va01hcmtlZDooKT0+TncsQm9va01pbnVzOigpPT5PdyxCb29rT3BlbjooKT0+cXcsQm9va09wZW5DaGVjazooKT0+RncsQm9va09wZW5UZXh0OigpPT5CdyxCb29rUGx1czooKT0+VncsQm9va1NlYXJjaDooKT0+SHcsQm9va1RlbXBsYXRlOigpPT56ZCxCb29rVGV4dDooKT0+ancsQm9va1R5cGU6KCk9Pkd3LEJvb2tVcDooKT0+V3csQm9va1VwMjooKT0+VXcsQm9va1VzZXI6KCk9Pll3LEJvb2tYOigpPT5LdyxCb29rbWFyazooKT0+YU0sQm9va21hcmtDaGVjazooKT0+WHcsQm9va21hcmtNaW51czooKT0+UXcsQm9va21hcmtPZmY6KCk9Pkp3LEJvb2ttYXJrUGx1czooKT0+ZU0sQm9va21hcmtYOigpPT50TSxCb29tQm94OigpPT5yTSxCb3Q6KCk9Pm9NLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnNNLEJvdE9mZjooKT0+aU0sQm90dGxlV2luZTooKT0+bE0sQm93QXJyb3c6KCk9Pm5NLEJveDooKT0+Y00sQm94U2VsZWN0OigpPT5NcCxCb3hlczooKT0+ZE0sQnJhY2VzOigpPT5DZCxCcmFja2V0czooKT0+dU0sQnJhaW46KCk9Pm1NLEJyYWluQ2lyY3VpdDooKT0+cE0sQnJhaW5Db2c6KCk9PmZNLEJyaWNrV2FsbDooKT0+Yk0sQnJpY2tXYWxsRmlyZTooKT0+aE0sQnJpY2tXYWxsU2hpZWxkOigpPT5nTSxCcmllZmNhc2U6KCk9PndNLEJyaWVmY2FzZUJ1c2luZXNzOigpPT52TSxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PnhNLEJyaWVmY2FzZU1lZGljYWw6KCk9PnlNLEJyaW5nVG9Gcm9udDooKT0+TU0sQnJ1c2g6KCk9PlNNLEJydXNoQ2xlYW5pbmc6KCk9PmtNLEJ1YmJsZXM6KCk9PkNNLEJ1ZzooKT0+VE0sQnVnT2ZmOigpPT56TSxCdWdQbGF5OigpPT5fTSxCdWlsZGluZzooKT0+TE0sQnVpbGRpbmcyOigpPT4kTSxCdXM6KCk9PkFNLEJ1c0Zyb250OigpPT5ETSxDYWJsZTooKT0+UE0sQ2FibGVDYXI6KCk9PkVNLENha2U6KCk9Pk5NLENha2VTbGljZTooKT0+SU0sQ2FsY3VsYXRvcjooKT0+T00sQ2FsZW5kYXI6KCk9PnNrLENhbGVuZGFyMTooKT0+Uk0sQ2FsZW5kYXJBcnJvd0Rvd246KCk9PkZNLENhbGVuZGFyQXJyb3dVcDooKT0+Qk0sQ2FsZW5kYXJDaGVjazooKT0+cU0sQ2FsZW5kYXJDaGVjazI6KCk9PkhNLENhbGVuZGFyQ2xvY2s6KCk9PlZNLENhbGVuZGFyQ29nOigpPT5qTSxDYWxlbmRhckRheXM6KCk9PlVNLENhbGVuZGFyRm9sZDooKT0+V00sQ2FsZW5kYXJIZWFydDooKT0+WU0sQ2FsZW5kYXJNaW51czooKT0+Wk0sQ2FsZW5kYXJNaW51czI6KCk9PkdNLENhbGVuZGFyT2ZmOigpPT5LTSxDYWxlbmRhclBsdXM6KCk9PkpNLENhbGVuZGFyUGx1czI6KCk9PlhNLENhbGVuZGFyUmFuZ2U6KCk9PlFNLENhbGVuZGFyU2VhcmNoOigpPT5layxDYWxlbmRhclN5bmM6KCk9PnRrLENhbGVuZGFyWDooKT0+cmssQ2FsZW5kYXJYMjooKT0+YWssQ2FsZW5kYXJzOigpPT5payxDYW1lcmE6KCk9Pm5rLENhbWVyYU9mZjooKT0+b2ssQ2FuZGxlc3RpY2tDaGFydDooKT0+RGQsQ2FuZHk6KCk9PmNrLENhbmR5Q2FuZTooKT0+bGssQ2FuZHlPZmY6KCk9PmRrLENhbm5hYmlzOigpPT5wayxDYW5uYWJpc09mZjooKT0+dWssQ2FwdGlvbnM6KCk9Pl9kLENhcHRpb25zT2ZmOigpPT5mayxDYXI6KCk9Pm1rLENhckZyb250OigpPT5oayxDYXJUYXhpRnJvbnQ6KCk9PmdrLENhcmF2YW46KCk9PmJrLENhcmRTaW06KCk9PnZrLENhcnJvdDooKT0+eGssQ2FzZUxvd2VyOigpPT55ayxDYXNlU2Vuc2l0aXZlOigpPT53ayxDYXNlVXBwZXI6KCk9Pk1rLENhc3NldHRlVGFwZTooKT0+a2ssQ2FzdDooKT0+U2ssQ2FzdGxlOigpPT56ayxDYXQ6KCk9PkNrLENjdHY6KCk9PlRrLENjdHZPZmY6KCk9Pl9rLENoYXJ0QXJlYTooKT0+VGQsQ2hhcnRCYXI6KCk9PiRkLENoYXJ0QmFyQmlnOigpPT5MZCxDaGFydEJhckRlY3JlYXNpbmc6KCk9PkxrLENoYXJ0QmFySW5jcmVhc2luZzooKT0+JGssQ2hhcnRCYXJTdGFja2VkOigpPT5EayxDaGFydENhbmRsZXN0aWNrOigpPT5EZCxDaGFydENvbHVtbjooKT0+RWQsQ2hhcnRDb2x1bW5CaWc6KCk9PkFkLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+QWssQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5QZCxDaGFydENvbHVtblN0YWNrZWQ6KCk9PlBrLENoYXJ0R2FudHQ6KCk9PkVrLENoYXJ0TGluZTooKT0+SWQsQ2hhcnROZXR3b3JrOigpPT5JayxDaGFydE5vQXhlc0NvbHVtbjooKT0+UmQsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5OayxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9Pk5kLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PlJrLENoYXJ0Tm9BeGVzR2FudHQ6KCk9Pk9kLENoYXJ0UGllOigpPT5GZCxDaGFydFNjYXR0ZXI6KCk9PkJkLENoYXJ0U3BsaW5lOigpPT5PayxDaGVjazooKT0+SGssQ2hlY2tDaGVjazooKT0+RmssQ2hlY2tDaXJjbGU6KCk9PlpkLENoZWNrQ2lyY2xlMjooKT0+WGQsQ2hlY2tMaW5lOigpPT5CayxDaGVja1NxdWFyZTooKT0+ZnAsQ2hlY2tTcXVhcmUyOigpPT5ocCxDaGVmSGF0OigpPT5xayxDaGVycnk6KCk9PlZrLENoZXNzQmlzaG9wOigpPT5VayxDaGVzc0tpbmc6KCk9PmprLENoZXNzS25pZ2h0OigpPT5XayxDaGVzc1Bhd246KCk9PkdrLENoZXNzUXVlZW46KCk9PlprLENoZXNzUm9vazooKT0+WWssQ2hldnJvbkRvd246KCk9PktrLENoZXZyb25Eb3duQ2lyY2xlOigpPT5KZCxDaGV2cm9uRG93blNxdWFyZTooKT0+bXAsQ2hldnJvbkZpcnN0OigpPT5YayxDaGV2cm9uTGFzdDooKT0+UWssQ2hldnJvbkxlZnQ6KCk9PkprLENoZXZyb25MZWZ0Q2lyY2xlOigpPT5RZCxDaGV2cm9uTGVmdFNxdWFyZTooKT0+Z3AsQ2hldnJvblJpZ2h0OigpPT5lUyxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmU2LENoZXZyb25SaWdodFNxdWFyZTooKT0+YnAsQ2hldnJvblVwOigpPT50UyxDaGV2cm9uVXBDaXJjbGU6KCk9PnQ2LENoZXZyb25VcFNxdWFyZTooKT0+dnAsQ2hldnJvbnNEb3duOigpPT5yUyxDaGV2cm9uc0Rvd25VcDooKT0+YVMsQ2hldnJvbnNMZWZ0OigpPT5vUyxDaGV2cm9uc0xlZnRSaWdodDooKT0+aVMsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+c1MsQ2hldnJvbnNSaWdodDooKT0+bFMsQ2hldnJvbnNSaWdodExlZnQ6KCk9Pm5TLENoZXZyb25zVXA6KCk9PmNTLENoZXZyb25zVXBEb3duOigpPT5kUyxDaHVyY2g6KCk9PnVTLENpZ2FyZXR0ZTooKT0+ZlMsQ2lnYXJldHRlT2ZmOigpPT5wUyxDaXJjbGU6KCk9PlRTLENpcmNsZUFsZXJ0OigpPT5IZCxDaXJjbGVBcnJvd0Rvd246KCk9PnFkLENpcmNsZUFycm93TGVmdDooKT0+VmQsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+amQsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PlVkLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5XZCxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PkdkLENpcmNsZUFycm93UmlnaHQ6KCk9PllkLENpcmNsZUFycm93VXA6KCk9PktkLENpcmNsZUNoZWNrOigpPT5YZCxDaXJjbGVDaGVja0JpZzooKT0+WmQsQ2lyY2xlQ2hldnJvbkRvd246KCk9PkpkLENpcmNsZUNoZXZyb25MZWZ0OigpPT5RZCxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmU2LENpcmNsZUNoZXZyb25VcDooKT0+dDYsQ2lyY2xlRGFzaGVkOigpPT5oUyxDaXJjbGVEaXZpZGU6KCk9PmE2LENpcmNsZURvbGxhclNpZ246KCk9Pm1TLENpcmNsZURvdDooKT0+dlMsQ2lyY2xlRG90RGFzaGVkOigpPT5nUyxDaXJjbGVFbGxpcHNpczooKT0+YlMsQ2lyY2xlRXF1YWw6KCk9PnhTLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PnlTLENpcmNsZUZhZGluZ1BsdXM6KCk9PndTLENpcmNsZUdhdWdlOigpPT5yNixDaXJjbGVIZWxwOigpPT5KbCxDaXJjbGVNaW51czooKT0+czYsQ2lyY2xlT2ZmOigpPT5NUyxDaXJjbGVQYXJraW5nOigpPT5vNixDaXJjbGVQYXJraW5nT2ZmOigpPT5pNixDaXJjbGVQYXVzZTooKT0+bjYsQ2lyY2xlUGVyY2VudDooKT0+bDYsQ2lyY2xlUGlsZTooKT0+a1MsQ2lyY2xlUGxheTooKT0+YzYsQ2lyY2xlUGx1czooKT0+ZDYsQ2lyY2xlUG91bmRTdGVybGluZzooKT0+U1MsQ2lyY2xlUG93ZXI6KCk9PnU2LENpcmNsZVF1ZXN0aW9uTWFyazooKT0+SmwsQ2lyY2xlU2xhc2g6KCk9PnpTLENpcmNsZVNsYXNoMjooKT0+cDYsQ2lyY2xlU2xhc2hlZDooKT0+cDYsQ2lyY2xlU21hbGw6KCk9PkNTLENpcmNsZVN0YXI6KCk9Pl9TLENpcmNsZVN0b3A6KCk9PmY2LENpcmNsZVVzZXI6KCk9Pm02LENpcmNsZVVzZXJSb3VuZDooKT0+aDYsQ2lyY2xlWDooKT0+ZzYsQ2lyY3VpdEJvYXJkOigpPT5MUyxDaXRydXM6KCk9PiRTLENsYXBwZXJib2FyZDooKT0+RFMsQ2xpcGJvYXJkOigpPT5xUyxDbGlwYm9hcmRDaGVjazooKT0+QVMsQ2xpcGJvYXJkQ2xvY2s6KCk9PlBTLENsaXBib2FyZENvcHk6KCk9PkVTLENsaXBib2FyZEVkaXQ6KCk9PnY2LENsaXBib2FyZExpc3Q6KCk9PklTLENsaXBib2FyZE1pbnVzOigpPT5OUyxDbGlwYm9hcmRQYXN0ZTooKT0+UlMsQ2xpcGJvYXJkUGVuOigpPT52NixDbGlwYm9hcmRQZW5MaW5lOigpPT5iNixDbGlwYm9hcmRQbHVzOigpPT5PUyxDbGlwYm9hcmRTaWduYXR1cmU6KCk9PmI2LENsaXBib2FyZFR5cGU6KCk9PkZTLENsaXBib2FyZFg6KCk9PkJTLENsb2NrOigpPT5veixDbG9jazE6KCk9PkhTLENsb2NrMTA6KCk9PlZTLENsb2NrMTE6KCk9PmpTLENsb2NrMTI6KCk9PlVTLENsb2NrMjooKT0+V1MsQ2xvY2szOigpPT5HUyxDbG9jazQ6KCk9PllTLENsb2NrNTooKT0+S1MsQ2xvY2s2OigpPT5aUyxDbG9jazc6KCk9PlFTLENsb2NrODooKT0+WFMsQ2xvY2s5OigpPT5KUyxDbG9ja0FsZXJ0OigpPT5leixDbG9ja0Fycm93RG93bjooKT0+dHosQ2xvY2tBcnJvd1VwOigpPT5heixDbG9ja0NoZWNrOigpPT5yeixDbG9ja0ZhZGluZzooKT0+c3osQ2xvY2tQbHVzOigpPT5peixDbG9zZWRDYXB0aW9uOigpPT5ueixDbG91ZDooKT0+enosQ2xvdWRBbGVydDooKT0+bHosQ2xvdWRCYWNrdXA6KCk9PmN6LENsb3VkQ2hlY2s6KCk9PmR6LENsb3VkQ29nOigpPT51eixDbG91ZERvd25sb2FkOigpPT54NixDbG91ZERyaXp6bGU6KCk9PnB6LENsb3VkRm9nOigpPT5oeixDbG91ZEhhaWw6KCk9PmZ6LENsb3VkTGlnaHRuaW5nOigpPT5teixDbG91ZE1vb246KCk9PmJ6LENsb3VkTW9vblJhaW46KCk9Pmd6LENsb3VkT2ZmOigpPT54eixDbG91ZFJhaW46KCk9Pnl6LENsb3VkUmFpbldpbmQ6KCk9PnZ6LENsb3VkU25vdzooKT0+d3osQ2xvdWRTdW46KCk9PlN6LENsb3VkU3VuUmFpbjooKT0+TXosQ2xvdWRTeW5jOigpPT5reixDbG91ZFVwbG9hZDooKT0+eTYsQ2xvdWR5OigpPT5DeixDbG92ZXI6KCk9Pl96LENsdWI6KCk9PlR6LENvZGU6KCk9Pkx6LENvZGUyOigpPT53NixDb2RlU3F1YXJlOigpPT54cCxDb2RlWG1sOigpPT53NixDb2ZmZWU6KCk9PiR6LENvZzooKT0+RHosQ29pbnM6KCk9PkF6LENvbHVtbnM6KCk9Pk02LENvbHVtbnMyOigpPT5NNixDb2x1bW5zMzooKT0+azYsQ29sdW1uczNDb2c6KCk9PmVjLENvbHVtbnM0OigpPT5QeixDb2x1bW5zU2V0dGluZ3M6KCk9PmVjLENvbWJpbmU6KCk9PkV6LENvbW1hbmQ6KCk9Pkl6LENvbXBhc3M6KCk9Pk56LENvbXBvbmVudDooKT0+UnosQ29tcHV0ZXI6KCk9Pk96LENvbmNpZXJnZUJlbGw6KCk9PkZ6LENvbmU6KCk9PkJ6LENvbnN0cnVjdGlvbjooKT0+SHosQ29udGFjdDooKT0+cXosQ29udGFjdDI6KCk9PlM2LENvbnRhY3RSb3VuZDooKT0+UzYsQ29udGFpbmVyOigpPT5WeixDb250cmFzdDooKT0+anosQ29va2llOigpPT5VeixDb29raW5nUG90OigpPT5XeixDb3B5OigpPT5ReixDb3B5Q2hlY2s6KCk9Pkd6LENvcHlNaW51czooKT0+WXosQ29weVBsdXM6KCk9Pkt6LENvcHlTbGFzaDooKT0+WnosQ29weVg6KCk9Plh6LENvcHlsZWZ0OigpPT5KeixDb3B5cmlnaHQ6KCk9PmVDLENvcm5lckRvd25MZWZ0OigpPT50QyxDb3JuZXJEb3duUmlnaHQ6KCk9PmFDLENvcm5lckxlZnREb3duOigpPT5yQyxDb3JuZXJMZWZ0VXA6KCk9PnNDLENvcm5lclJpZ2h0RG93bjooKT0+aUMsQ29ybmVyUmlnaHRVcDooKT0+b0MsQ29ybmVyVXBMZWZ0OigpPT5uQyxDb3JuZXJVcFJpZ2h0OigpPT5sQyxDcHU6KCk9PmNDLENyZWF0aXZlQ29tbW9uczooKT0+ZEMsQ3JlZGl0Q2FyZDooKT0+dUMsQ3JvaXNzYW50OigpPT5wQyxDcm9wOigpPT5mQyxDcm9zczooKT0+aEMsQ3Jvc3NoYWlyOigpPT5tQyxDcm93bjooKT0+Z0MsQ3Vib2lkOigpPT5iQyxDdXBTb2RhOigpPT52QyxDdXJseUJyYWNlczooKT0+Q2QsQ3VycmVuY3k6KCk9PnhDLEN5bGluZGVyOigpPT55QyxEYW06KCk9PndDLERhdGFiYXNlOigpPT56QyxEYXRhYmFzZUJhY2t1cDooKT0+TUMsRGF0YWJhc2VTZWFyY2g6KCk9PlNDLERhdGFiYXNlWmFwOigpPT5rQyxEZWNpbWFsc0Fycm93TGVmdDooKT0+Q0MsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5fQyxEZWxldGU6KCk9PlRDLERlc3NlcnQ6KCk9PkxDLERpYW1ldGVyOigpPT4kQyxEaWFtb25kOigpPT5QQyxEaWFtb25kTWludXM6KCk9PkRDLERpYW1vbmRQZXJjZW50OigpPT56NixEaWFtb25kUGx1czooKT0+QUMsRGljZTE6KCk9PkVDLERpY2UyOigpPT5JQyxEaWNlMzooKT0+TkMsRGljZTQ6KCk9PlJDLERpY2U1OigpPT5PQyxEaWNlNjooKT0+RkMsRGljZXM6KCk9PkhDLERpZmY6KCk9PkJDLERpc2M6KCk9PldDLERpc2MyOigpPT5xQyxEaXNjMzooKT0+VkMsRGlzY0FsYnVtOigpPT5qQyxEaXZpZGU6KCk9PlVDLERpdmlkZUNpcmNsZTooKT0+YTYsRGl2aWRlU3F1YXJlOigpPT5TcCxEbmE6KCk9PllDLERuYU9mZjooKT0+R0MsRG9jazooKT0+S0MsRG9nOigpPT5YQyxEb2xsYXJTaWduOigpPT5aQyxEb251dDooKT0+UUMsRG9vckNsb3NlZDooKT0+ZV8sRG9vckNsb3NlZExvY2tlZDooKT0+SkMsRG9vck9wZW46KCk9PnRfLERvdDooKT0+YV8sRG90U3F1YXJlOigpPT5rcCxEb3dubG9hZDooKT0+cl8sRG93bmxvYWRDbG91ZDooKT0+eDYsRHJhZnRpbmdDb21wYXNzOigpPT5zXyxEcmFtYTooKT0+b18sRHJpbGw6KCk9PmlfLERyb25lOigpPT5uXyxEcm9wbGV0OigpPT5sXyxEcm9wbGV0T2ZmOigpPT5jXyxEcm9wbGV0czooKT0+ZF8sRHJ1bTooKT0+dV8sRHJ1bXN0aWNrOigpPT5wXyxEdW1iYmVsbDooKT0+Zl8sRWFyOigpPT5tXyxFYXJPZmY6KCk9PmhfLEVhcnRoOigpPT5DNixFYXJ0aExvY2s6KCk9PmdfLEVjbGlwc2U6KCk9PmJfLEVkaXQ6KCk9PkMxLEVkaXQyOigpPT5PdSxFZGl0MzooKT0+UnUsRWdnOigpPT54XyxFZ2dGcmllZDooKT0+dl8sRWdnT2ZmOigpPT55XyxFbGxpcHNlOigpPT53XyxFbGxpcHNpczooKT0+VDYsRWxsaXBzaXNWZXJ0aWNhbDooKT0+XzYsRXF1YWw6KCk9PlNfLEVxdWFsQXBwcm94aW1hdGVseTooKT0+TV8sRXF1YWxOb3Q6KCk9PmtfLEVxdWFsU3F1YXJlOigpPT56cCxFcmFzZXI6KCk9PnpfLEV0aGVybmV0UG9ydDooKT0+Q18sRXVybzooKT0+X18sRXZDaGFyZ2VyOigpPT5UXyxFeHBhbmQ6KCk9PkxfLEV4dGVybmFsTGluazooKT0+JF8sRXllOigpPT5QXyxFeWVDbG9zZWQ6KCk9PkRfLEV5ZU9mZjooKT0+QV8sRmFjdG9yeTooKT0+RV8sRmFuOigpPT5JXyxGYXN0Rm9yd2FyZDooKT0+Tl8sRmVhdGhlcjooKT0+Ul8sRmVuY2U6KCk9PkZfLEZlcnJpc1doZWVsOigpPT5PXyxGaWxlOigpPT5oVCxGaWxlQXJjaGl2ZTooKT0+Ql8sRmlsZUF1ZGlvOigpPT50YyxGaWxlQXVkaW8yOigpPT50YyxGaWxlQXhpczNEOigpPT5MNixGaWxlQXhpczNkOigpPT5MNixGaWxlQmFkZ2U6KCk9PiQ2LEZpbGVCYWRnZTI6KCk9PiQ2LEZpbGVCYXJDaGFydDooKT0+QTYsRmlsZUJhckNoYXJ0MjooKT0+RTYsRmlsZUJveDooKT0+SF8sRmlsZUJyYWNlczooKT0+RDYsRmlsZUJyYWNlc0Nvcm5lcjooKT0+UDYsRmlsZUNoYXJ0Q29sdW1uOigpPT5FNixGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5BNixGaWxlQ2hhcnRMaW5lOigpPT5JNixGaWxlQ2hhcnRQaWU6KCk9Pk42LEZpbGVDaGVjazooKT0+cV8sRmlsZUNoZWNrMjooKT0+UjYsRmlsZUNoZWNrQ29ybmVyOigpPT5SNixGaWxlQ2xvY2s6KCk9PlZfLEZpbGVDb2RlOigpPT5qXyxGaWxlQ29kZTI6KCk9Pk82LEZpbGVDb2RlQ29ybmVyOigpPT5PNixGaWxlQ29nOigpPT5GNixGaWxlQ29nMjooKT0+RjYsRmlsZURpZmY6KCk9PlVfLEZpbGVEaWdpdDooKT0+V18sRmlsZURvd246KCk9PkdfLEZpbGVFZGl0OigpPT5XNixGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+QjYsRmlsZUhlYWRwaG9uZTooKT0+dGMsRmlsZUhlYXJ0OigpPT5ZXyxGaWxlSW1hZ2U6KCk9PktfLEZpbGVJbnB1dDooKT0+Wl8sRmlsZUpzb246KCk9PkQ2LEZpbGVKc29uMjooKT0+UDYsRmlsZUtleTooKT0+SDYsRmlsZUtleTI6KCk9Pkg2LEZpbGVMaW5lQ2hhcnQ6KCk9Pkk2LEZpbGVMb2NrOigpPT5xNixGaWxlTG9jazI6KCk9PnE2LEZpbGVNaW51czooKT0+WF8sRmlsZU1pbnVzMjooKT0+VjYsRmlsZU1pbnVzQ29ybmVyOigpPT5WNixGaWxlTXVzaWM6KCk9PlFfLEZpbGVPdXRwdXQ6KCk9PkpfLEZpbGVQZW46KCk9Plc2LEZpbGVQZW5MaW5lOigpPT5qNixGaWxlUGllQ2hhcnQ6KCk9Pk42LEZpbGVQbGF5OigpPT5VNixGaWxlUGx1czooKT0+ZVQsRmlsZVBsdXMyOigpPT5HNixGaWxlUGx1c0Nvcm5lcjooKT0+RzYsRmlsZVF1ZXN0aW9uOigpPT5ZNixGaWxlUXVlc3Rpb25NYXJrOigpPT5ZNixGaWxlU2NhbjooKT0+dFQsRmlsZVNlYXJjaDooKT0+YVQsRmlsZVNlYXJjaDI6KCk9Pks2LEZpbGVTZWFyY2hDb3JuZXI6KCk9Pks2LEZpbGVTaWduYWw6KCk9Plo2LEZpbGVTaWduYXR1cmU6KCk9Pmo2LEZpbGVTbGlkZXJzOigpPT5yVCxGaWxlU3ByZWFkc2hlZXQ6KCk9PnNULEZpbGVTdGFjazooKT0+b1QsRmlsZVN5bWxpbms6KCk9PmlULEZpbGVUZXJtaW5hbDooKT0+blQsRmlsZVRleHQ6KCk9PmxULEZpbGVUeXBlOigpPT5jVCxGaWxlVHlwZTI6KCk9Plg2LEZpbGVUeXBlQ29ybmVyOigpPT5YNixGaWxlVXA6KCk9PmRULEZpbGVVc2VyOigpPT51VCxGaWxlVmlkZW86KCk9PlU2LEZpbGVWaWRlbzI6KCk9PlE2LEZpbGVWaWRlb0NhbWVyYTooKT0+UTYsRmlsZVZvbHVtZTooKT0+cFQsRmlsZVZvbHVtZTI6KCk9Plo2LEZpbGVXYXJuaW5nOigpPT5CNixGaWxlWDooKT0+ZlQsRmlsZVgyOigpPT5KNixGaWxlWENvcm5lcjooKT0+SjYsRmlsZXM6KCk9PmdULEZpbG06KCk9Pm1ULEZpbHRlcjooKT0+c3UsRmlsdGVyWDooKT0+cnUsRmluZ2VycHJpbnQ6KCk9PmV1LEZpbmdlcnByaW50UGF0dGVybjooKT0+ZXUsRmlyZUV4dGluZ3Vpc2hlcjooKT0+YlQsRmlzaDooKT0+eVQsRmlzaE9mZjooKT0+eFQsRmlzaFN5bWJvbDooKT0+dlQsRmlzaGluZ0hvb2s6KCk9PndULEZpc2hpbmdSb2Q6KCk9PmtULEZsYWc6KCk9PkNULEZsYWdPZmY6KCk9Pk1ULEZsYWdUcmlhbmdsZUxlZnQ6KCk9PlNULEZsYWdUcmlhbmdsZVJpZ2h0OigpPT56VCxGbGFtZTooKT0+X1QsRmxhbWVLaW5kbGluZzooKT0+TFQsRmxhc2hsaWdodDooKT0+JFQsRmxhc2hsaWdodE9mZjooKT0+VFQsRmxhc2tDb25pY2FsOigpPT5BVCxGbGFza0NvbmljYWxPZmY6KCk9PkRULEZsYXNrUm91bmQ6KCk9PlBULEZsaXBIb3Jpem9udGFsOigpPT51cCxGbGlwSG9yaXpvbnRhbDI6KCk9PkVULEZsaXBWZXJ0aWNhbDooKT0+cHAsRmxpcFZlcnRpY2FsMjooKT0+SVQsRmxvd2VyOigpPT5GVCxGbG93ZXIyOigpPT5OVCxGb2N1czooKT0+UlQsRm9sZEhvcml6b250YWw6KCk9Pk9ULEZvbGRWZXJ0aWNhbDooKT0+cVQsRm9sZGVyOigpPT5tTCxGb2xkZXJBcmNoaXZlOigpPT5CVCxGb2xkZXJCb29rbWFyazooKT0+SFQsRm9sZGVyQ2hlY2s6KCk9PlZULEZvbGRlckNsb2NrOigpPT5XVCxGb2xkZXJDbG9zZWQ6KCk9PmpULEZvbGRlckNvZGU6KCk9PlVULEZvbGRlckNvZzooKT0+dHUsRm9sZGVyQ29nMjooKT0+dHUsRm9sZGVyRG90OigpPT5HVCxGb2xkZXJEb3duOigpPT5ZVCxGb2xkZXJFZGl0OigpPT5hdSxGb2xkZXJHaXQ6KCk9PlpULEZvbGRlckdpdDI6KCk9PktULEZvbGRlckhlYXJ0OigpPT5YVCxGb2xkZXJJbnB1dDooKT0+ZUwsRm9sZGVyS2FuYmFuOigpPT5RVCxGb2xkZXJLZXk6KCk9PkpULEZvbGRlckxvY2s6KCk9PnRMLEZvbGRlck1pbnVzOigpPT5zTCxGb2xkZXJPcGVuOigpPT5yTCxGb2xkZXJPcGVuRG90OigpPT5hTCxGb2xkZXJPdXRwdXQ6KCk9PmlMLEZvbGRlclBlbjooKT0+YXUsRm9sZGVyUGx1czooKT0+b0wsRm9sZGVyUm9vdDooKT0+bkwsRm9sZGVyU2VhcmNoOigpPT5jTCxGb2xkZXJTZWFyY2gyOigpPT5sTCxGb2xkZXJTeW1saW5rOigpPT5kTCxGb2xkZXJTeW5jOigpPT5wTCxGb2xkZXJUcmVlOigpPT51TCxGb2xkZXJVcDooKT0+ZkwsRm9sZGVyWDooKT0+aEwsRm9sZGVyczooKT0+Z0wsRm9vdHByaW50czooKT0+YkwsRm9ya0tuaWZlOigpPT5nZixGb3JrS25pZmVDcm9zc2VkOigpPT5tZixGb3JrbGlmdDooKT0+dkwsRm9ybTooKT0+eEwsRm9ybUlucHV0OigpPT5CdSxGb3J3YXJkOigpPT55TCxGcmFtZTooKT0+d0wsRnJvd246KCk9Pk1MLEZ1ZWw6KCk9PmtMLEZ1bGxzY3JlZW46KCk9PlNMLEZ1bmN0aW9uU3F1YXJlOigpPT5DcCxGdW5uZWw6KCk9PnN1LEZ1bm5lbFBsdXM6KCk9PnpMLEZ1bm5lbFg6KCk9PnJ1LEdhbGxlcnlIb3Jpem9udGFsOigpPT5fTCxHYWxsZXJ5SG9yaXpvbnRhbEVuZDooKT0+Q0wsR2FsbGVyeVRodW1ibmFpbHM6KCk9PlRMLEdhbGxlcnlWZXJ0aWNhbDooKT0+JEwsR2FsbGVyeVZlcnRpY2FsRW5kOigpPT5MTCxHYW1lcGFkOigpPT5QTCxHYW1lcGFkMjooKT0+REwsR2FtZXBhZERpcmVjdGlvbmFsOigpPT5BTCxHYW50dENoYXJ0OigpPT5PZCxHYW50dENoYXJ0U3F1YXJlOigpPT5pYyxHYXVnZTooKT0+RUwsR2F1Z2VDaXJjbGU6KCk9PnI2LEdhdmVsOigpPT5JTCxHZW06KCk9Pk5MLEdlb3JnaWFuTGFyaTooKT0+T0wsR2hvc3Q6KCk9PlJMLEdpZnQ6KCk9PkJMLEdpdEJyYW5jaDooKT0+cUwsR2l0QnJhbmNoTWludXM6KCk9PkZMLEdpdEJyYW5jaFBsdXM6KCk9PkhMLEdpdENvbW1pdDooKT0+aXUsR2l0Q29tbWl0SG9yaXpvbnRhbDooKT0+aXUsR2l0Q29tbWl0VmVydGljYWw6KCk9PlZMLEdpdENvbXBhcmU6KCk9PlVMLEdpdENvbXBhcmVBcnJvd3M6KCk9PmpMLEdpdEZvcms6KCk9PldMLEdpdEdyYXBoOigpPT5HTCxHaXRNZXJnZTooKT0+WUwsR2l0TWVyZ2VDb25mbGljdDooKT0+S0wsR2l0UHVsbFJlcXVlc3Q6KCk9PnQkLEdpdFB1bGxSZXF1ZXN0QXJyb3c6KCk9PlpMLEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOigpPT5YTCxHaXRQdWxsUmVxdWVzdENyZWF0ZTooKT0+SkwsR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzooKT0+UUwsR2l0UHVsbFJlcXVlc3REcmFmdDooKT0+ZSQsR2xhc3NXYXRlcjooKT0+YSQsR2xhc3NlczooKT0+ciQsR2xvYmU6KCk9Pm4kLEdsb2JlMjooKT0+QzYsR2xvYmVMb2NrOigpPT5zJCxHbG9iZU9mZjooKT0+byQsR2xvYmVYOigpPT5pJCxHb2FsOigpPT5sJCxHcHU6KCk9PmMkLEdyYWI6KCk9PmR1LEdyYWR1YXRpb25DYXA6KCk9PmQkLEdyYXBlOigpPT51JCxHcmlkOigpPT5hYyxHcmlkMlgyOigpPT5jdSxHcmlkMlgyQ2hlY2s6KCk9Pm91LEdyaWQyWDJQbHVzOigpPT5udSxHcmlkMlgyWDooKT0+bHUsR3JpZDJ4MjooKT0+Y3UsR3JpZDJ4MkNoZWNrOigpPT5vdSxHcmlkMngyUGx1czooKT0+bnUsR3JpZDJ4Mlg6KCk9Pmx1LEdyaWQzWDM6KCk9PmFjLEdyaWQzeDI6KCk9PnAkLEdyaWQzeDM6KCk9PmFjLEdyaXA6KCk9Pm0kLEdyaXBIb3Jpem9udGFsOigpPT5mJCxHcmlwVmVydGljYWw6KCk9PmgkLEdyb3VwOigpPT5nJCxHdWl0YXI6KCk9PmIkLEhhbTooKT0+diQsSGFtYnVyZ2VyOigpPT54JCxIYW1tZXI6KCk9PnkkLEhhbmQ6KCk9PkMkLEhhbmRDb2luczooKT0+dyQsSGFuZEZpc3Q6KCk9Pk0kLEhhbmRHcmFiOigpPT5kdSxIYW5kSGVhcnQ6KCk9PmskLEhhbmRIZWxwaW5nOigpPT51dSxIYW5kTWV0YWw6KCk9PlMkLEhhbmRQbGF0dGVyOigpPT56JCxIYW5kYmFnOigpPT5fJCxIYW5kc2hha2U6KCk9PlQkLEhhcmREcml2ZTooKT0+QSQsSGFyZERyaXZlRG93bmxvYWQ6KCk9PkwkLEhhcmREcml2ZVVwbG9hZDooKT0+JCQsSGFyZEhhdDooKT0+RCQsSGFzaDooKT0+UCQsSGF0R2xhc3NlczooKT0+RSQsSGF6ZTooKT0+SSQsSGQ6KCk9Pk4kLEhkbWlQb3J0OigpPT5SJCxIZWFkaW5nOigpPT5qJCxIZWFkaW5nMTooKT0+TyQsSGVhZGluZzI6KCk9PkYkLEhlYWRpbmczOigpPT5CJCxIZWFkaW5nNDooKT0+SCQsSGVhZGluZzU6KCk9PnEkLEhlYWRpbmc2OigpPT5WJCxIZWFkcGhvbmVPZmY6KCk9PlUkLEhlYWRwaG9uZXM6KCk9PkckLEhlYWRzZXQ6KCk9PlckLEhlYXJ0OigpPT50RCxIZWFydENyYWNrOigpPT5ZJCxIZWFydEhhbmRzaGFrZTooKT0+SyQsSGVhcnRNaW51czooKT0+WiQsSGVhcnRPZmY6KCk9PlgkLEhlYXJ0UGx1czooKT0+USQsSGVhcnRQdWxzZTooKT0+SiQsSGVhcnRYOigpPT5lRCxIZWF0ZXI6KCk9PmFELEhlbGljb3B0ZXI6KCk9PnJELEhlbHBDaXJjbGU6KCk9PkpsLEhlbHBpbmdIYW5kOigpPT51dSxIZXhhZ29uOigpPT5zRCxIaWdobGlnaHRlcjooKT0+aUQsSGlzdG9yeTooKT0+b0QsSG9tZTooKT0+cHUsSG9wOigpPT5uRCxIb3BPZmY6KCk9PmxELEhvc3BpdGFsOigpPT5jRCxIb3RlbDooKT0+ZEQsSG91cmdsYXNzOigpPT51RCxIb3VzZTooKT0+cHUsSG91c2VIZWFydDooKT0+cEQsSG91c2VQbHVnOigpPT5mRCxIb3VzZVBsdXM6KCk9Pm1ELEhvdXNlV2lmaTooKT0+aEQsSWNlQ3JlYW06KCk9Pmh1LEljZUNyZWFtMjooKT0+ZnUsSWNlQ3JlYW1Cb3dsOigpPT5mdSxJY2VDcmVhbUNvbmU6KCk9Pmh1LElkQ2FyZDooKT0+YkQsSWRDYXJkTGFueWFyZDooKT0+Z0QsSW1hZ2U6KCk9PnpELEltYWdlRG93bjooKT0+dkQsSW1hZ2VNaW51czooKT0+eEQsSW1hZ2VPZmY6KCk9PnlELEltYWdlUGxheTooKT0+d0QsSW1hZ2VQbHVzOigpPT5NRCxJbWFnZVVwOigpPT5rRCxJbWFnZVVwc2NhbGU6KCk9PlNELEltYWdlczooKT0+Q0QsSW1wb3J0OigpPT5fRCxJbmJveDooKT0+VEQsSW5kZW50OigpPT5zYyxJbmRlbnREZWNyZWFzZTooKT0+cmMsSW5kZW50SW5jcmVhc2U6KCk9PnNjLEluZGlhblJ1cGVlOigpPT5MRCxJbmZpbml0eTooKT0+JEQsSW5mbzooKT0+REQsSW5zcGVjdDooKT0+QXAsSW5zcGVjdGlvblBhbmVsOigpPT5BRCxJdGFsaWM6KCk9PlBELEl0ZXJhdGlvbkNjdzooKT0+RUQsSXRlcmF0aW9uQ3c6KCk9PklELEphcGFuZXNlWWVuOigpPT5ORCxKb3lzdGljazooKT0+UkQsS2FuYmFuOigpPT5PRCxLYW5iYW5TcXVhcmU6KCk9PkxwLEthbmJhblNxdWFyZURhc2hlZDooKT0+eXAsS2F5YWs6KCk9PkZELEtleTooKT0+cUQsS2V5Um91bmQ6KCk9PkhELEtleVNxdWFyZTooKT0+QkQsS2V5Ym9hcmQ6KCk9PlVELEtleWJvYXJkTXVzaWM6KCk9PlZELEtleWJvYXJkT2ZmOigpPT5qRCxMYW1wOigpPT5YRCxMYW1wQ2VpbGluZzooKT0+V0QsTGFtcERlc2s6KCk9PkdELExhbXBGbG9vcjooKT0+WUQsTGFtcFdhbGxEb3duOigpPT5LRCxMYW1wV2FsbFVwOigpPT5aRCxMYW5kUGxvdDooKT0+UUQsTGFuZG1hcms6KCk9PkpELExhbmd1YWdlczooKT0+ZUEsTGFwdG9wOigpPT5hQSxMYXB0b3AyOigpPT5tdSxMYXB0b3BNaW5pbWFsOigpPT5tdSxMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PnRBLExhc3NvOigpPT5pQSxMYXNzb1NlbGVjdDooKT0+ckEsTGF1Z2g6KCk9PnNBLExheWVyczooKT0+Z3UsTGF5ZXJzMjooKT0+b0EsTGF5ZXJzMzooKT0+Z3UsTGF5ZXJzTWludXM6KCk9Pm5BLExheWVyc1BsdXM6KCk9PmxBLExheW91dDooKT0+TnUsTGF5b3V0RGFzaGJvYXJkOigpPT5jQSxMYXlvdXRHcmlkOigpPT5kQSxMYXlvdXRMaXN0OigpPT51QSxMYXlvdXRQYW5lbExlZnQ6KCk9PnBBLExheW91dFBhbmVsVG9wOigpPT5oQSxMYXlvdXRUZW1wbGF0ZTooKT0+ZkEsTGVhZjooKT0+bUEsTGVhZnlHcmVlbjooKT0+Z0EsTGVjdGVybjooKT0+YkEsTGVuc0NvbmNhdmU6KCk9PnZBLExlbnNDb252ZXg6KCk9PnhBLExldHRlclRleHQ6KCk9PmVmLExpYnJhcnk6KCk9PndBLExpYnJhcnlCaWc6KCk9PnlBLExpYnJhcnlTcXVhcmU6KCk9Pl9wLExpZmVCdW95OigpPT5NQSxMaWdhdHVyZTooKT0+a0EsTGlnaHRidWxiOigpPT5TQSxMaWdodGJ1bGJPZmY6KCk9PnpBLExpbmVDaGFydDooKT0+SWQsTGluZURvdFJpZ2h0SG9yaXpvbnRhbDooKT0+Q0EsTGluZVNxdWlnZ2xlOigpPT5UQSxMaW5lU3R5bGU6KCk9Pl9BLExpbms6KCk9PkRBLExpbmsyOigpPT4kQSxMaW5rMk9mZjooKT0+TEEsTGlzdDooKT0+WkEsTGlzdENoZWNrOigpPT5BQSxMaXN0Q2hlY2tzOigpPT5QQSxMaXN0Q2hldnJvbnNEb3duVXA6KCk9PkVBLExpc3RDaGV2cm9uc1VwRG93bjooKT0+SUEsTGlzdENvbGxhcHNlOigpPT5OQSxMaXN0RW5kOigpPT5SQSxMaXN0RmlsdGVyOigpPT5GQSxMaXN0RmlsdGVyUGx1czooKT0+T0EsTGlzdEluZGVudERlY3JlYXNlOigpPT5yYyxMaXN0SW5kZW50SW5jcmVhc2U6KCk9PnNjLExpc3RNaW51czooKT0+QkEsTGlzdE11c2ljOigpPT5IQSxMaXN0T3JkZXJlZDooKT0+cUEsTGlzdFBsdXM6KCk9PlZBLExpc3RSZXN0YXJ0OigpPT5qQSxMaXN0U3RhcnQ6KCk9PlVBLExpc3RUb2RvOigpPT5XQSxMaXN0VHJlZTooKT0+R0EsTGlzdFZpZGVvOigpPT5ZQSxMaXN0WDooKT0+S0EsTG9hZGVyOigpPT5RQSxMb2FkZXIyOigpPT5idSxMb2FkZXJDaXJjbGU6KCk9PmJ1LExvYWRlclBpbndoZWVsOigpPT5YQSxMb2NhdGU6KCk9PnRQLExvY2F0ZUZpeGVkOigpPT5KQSxMb2NhdGVPZmY6KCk9PmVQLExvY2F0aW9uRWRpdDooKT0+d3UsTG9jazooKT0+clAsTG9ja0tleWhvbGU6KCk9PmFQLExvY2tLZXlob2xlT3BlbjooKT0+dnUsTG9ja09wZW46KCk9Pnh1LExvZ0luOigpPT5zUCxMb2dPdXQ6KCk9PmlQLExvZ3M6KCk9Pm9QLExvbGxpcG9wOigpPT5uUCxMdWdnYWdlOigpPT5sUCxNU3F1YXJlOigpPT5UcCxNYWduZXQ6KCk9PmRQLE1haWw6KCk9PnZQLE1haWxDaGVjazooKT0+Y1AsTWFpbE1pbnVzOigpPT51UCxNYWlsT3BlbjooKT0+cFAsTWFpbFBsdXM6KCk9PmZQLE1haWxRdWVzdGlvbjooKT0+eXUsTWFpbFF1ZXN0aW9uTWFyazooKT0+eXUsTWFpbFNlYXJjaDooKT0+aFAsTWFpbFdhcm5pbmc6KCk9Pm1QLE1haWxYOigpPT5nUCxNYWlsYm94OigpPT5iUCxNYWlsczooKT0+eFAsTWFwOigpPT5JUCxNYXBNaW51czooKT0+eVAsTWFwUGluOigpPT5BUCxNYXBQaW5DaGVjazooKT0+TVAsTWFwUGluQ2hlY2tJbnNpZGU6KCk9PndQLE1hcFBpbkhvdXNlOigpPT5rUCxNYXBQaW5NaW51czooKT0+elAsTWFwUGluTWludXNJbnNpZGU6KCk9PlNQLE1hcFBpbk9mZjooKT0+Q1AsTWFwUGluUGVuOigpPT53dSxNYXBQaW5QbHVzOigpPT5UUCxNYXBQaW5QbHVzSW5zaWRlOigpPT5fUCxNYXBQaW5TZWFyY2g6KCk9PkxQLE1hcFBpblg6KCk9PiRQLE1hcFBpblhJbnNpZGU6KCk9PkRQLE1hcFBpbm5lZDooKT0+UFAsTWFwUGx1czooKT0+RVAsTWFyczooKT0+UlAsTWFyc1N0cm9rZTooKT0+TlAsTWFydGluaTooKT0+T1AsTWF4aW1pemU6KCk9PkJQLE1heGltaXplMjooKT0+RlAsTWVkYWw6KCk9PkhQLE1lZ2FwaG9uZTooKT0+VlAsTWVnYXBob25lT2ZmOigpPT5xUCxNZWg6KCk9PmpQLE1lbW9yeVN0aWNrOigpPT5VUCxNZW51OigpPT5XUCxNZW51U3F1YXJlOigpPT4kcCxNZXJnZTooKT0+R1AsTWVzc2FnZUNpcmNsZTooKT0+c0UsTWVzc2FnZUNpcmNsZUNoZWNrOigpPT5ZUCxNZXNzYWdlQ2lyY2xlQ29kZTooKT0+S1AsTWVzc2FnZUNpcmNsZURhc2hlZDooKT0+WlAsTWVzc2FnZUNpcmNsZUhlYXJ0OigpPT5YUCxNZXNzYWdlQ2lyY2xlTW9yZTooKT0+UVAsTWVzc2FnZUNpcmNsZU9mZjooKT0+SlAsTWVzc2FnZUNpcmNsZVBsdXM6KCk9PmVFLE1lc3NhZ2VDaXJjbGVRdWVzdGlvbjooKT0+TXUsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazooKT0+TXUsTWVzc2FnZUNpcmNsZVJlcGx5OigpPT50RSxNZXNzYWdlQ2lyY2xlV2FybmluZzooKT0+YUUsTWVzc2FnZUNpcmNsZVg6KCk9PnJFLE1lc3NhZ2VTcXVhcmU6KCk9PndFLE1lc3NhZ2VTcXVhcmVDaGVjazooKT0+b0UsTWVzc2FnZVNxdWFyZUNvZGU6KCk9PmlFLE1lc3NhZ2VTcXVhcmVEYXNoZWQ6KCk9Pm5FLE1lc3NhZ2VTcXVhcmVEaWZmOigpPT5sRSxNZXNzYWdlU3F1YXJlRG90OigpPT5jRSxNZXNzYWdlU3F1YXJlSGVhcnQ6KCk9PmRFLE1lc3NhZ2VTcXVhcmVMb2NrOigpPT51RSxNZXNzYWdlU3F1YXJlTW9yZTooKT0+cEUsTWVzc2FnZVNxdWFyZU9mZjooKT0+ZkUsTWVzc2FnZVNxdWFyZVBsdXM6KCk9PmhFLE1lc3NhZ2VTcXVhcmVRdW90ZTooKT0+bUUsTWVzc2FnZVNxdWFyZVJlcGx5OigpPT5nRSxNZXNzYWdlU3F1YXJlU2hhcmU6KCk9PmJFLE1lc3NhZ2VTcXVhcmVUZXh0OigpPT52RSxNZXNzYWdlU3F1YXJlV2FybmluZzooKT0+eEUsTWVzc2FnZVNxdWFyZVg6KCk9PnlFLE1lc3NhZ2VzU3F1YXJlOigpPT5NRSxNZXRyb25vbWU6KCk9PmtFLE1pYzooKT0+ekUsTWljMjooKT0+a3UsTWljT2ZmOigpPT5TRSxNaWNWb2NhbDooKT0+a3UsTWljcm9jaGlwOigpPT5DRSxNaWNyb3Njb3BlOigpPT5fRSxNaWNyb3dhdmU6KCk9PlRFLE1pbGVzdG9uZTooKT0+TEUsTWlsazooKT0+REUsTWlsa09mZjooKT0+JEUsTWluaW1pemU6KCk9PlBFLE1pbmltaXplMjooKT0+QUUsTWludXM6KCk9PkVFLE1pbnVzQ2lyY2xlOigpPT5zNixNaW51c1NxdWFyZTooKT0+RHAsTWlycm9yUmVjdGFuZ3VsYXI6KCk9PklFLE1pcnJvclJvdW5kOigpPT5ORSxNb25pdG9yOigpPT5aRSxNb25pdG9yQ2hlY2s6KCk9PlJFLE1vbml0b3JDbG91ZDooKT0+T0UsTW9uaXRvckNvZzooKT0+RkUsTW9uaXRvckRvdDooKT0+QkUsTW9uaXRvckRvd246KCk9PnFFLE1vbml0b3JPZmY6KCk9PkhFLE1vbml0b3JQYXVzZTooKT0+VkUsTW9uaXRvclBsYXk6KCk9PmpFLE1vbml0b3JTbWFydHBob25lOigpPT5VRSxNb25pdG9yU3BlYWtlcjooKT0+V0UsTW9uaXRvclN0b3A6KCk9PllFLE1vbml0b3JVcDooKT0+R0UsTW9uaXRvclg6KCk9PktFLE1vb246KCk9PlFFLE1vb25TdGFyOigpPT5YRSxNb3JlSG9yaXpvbnRhbDooKT0+VDYsTW9yZVZlcnRpY2FsOigpPT5fNixNb3RvcmJpa2U6KCk9PkpFLE1vdW50YWluOigpPT50SSxNb3VudGFpblNub3c6KCk9PmVJLE1vdXNlOigpPT5kSSxNb3VzZUxlZnQ6KCk9PmFJLE1vdXNlT2ZmOigpPT5ySSxNb3VzZVBvaW50ZXI6KCk9PmxJLE1vdXNlUG9pbnRlcjI6KCk9PmlJLE1vdXNlUG9pbnRlcjJPZmY6KCk9PnNJLE1vdXNlUG9pbnRlckJhbjooKT0+b0ksTW91c2VQb2ludGVyQ2xpY2s6KCk9Pm5JLE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDooKT0+d3AsTW91c2VSaWdodDooKT0+Y0ksTW92ZTooKT0+a0ksTW92ZTNEOigpPT5TdSxNb3ZlM2Q6KCk9PlN1LE1vdmVEaWFnb25hbDooKT0+cEksTW92ZURpYWdvbmFsMjooKT0+dUksTW92ZURvd246KCk9Pm1JLE1vdmVEb3duTGVmdDooKT0+ZkksTW92ZURvd25SaWdodDooKT0+aEksTW92ZUhvcml6b250YWw6KCk9PmdJLE1vdmVMZWZ0OigpPT5iSSxNb3ZlUmlnaHQ6KCk9PnZJLE1vdmVVcDooKT0+d0ksTW92ZVVwTGVmdDooKT0+eEksTW92ZVVwUmlnaHQ6KCk9PnlJLE1vdmVWZXJ0aWNhbDooKT0+TUksTXVzaWM6KCk9Pl9JLE11c2ljMjooKT0+U0ksTXVzaWMzOigpPT5DSSxNdXNpYzQ6KCk9PnpJLE5hdmlnYXRpb246KCk9PkRJLE5hdmlnYXRpb24yOigpPT5MSSxOYXZpZ2F0aW9uMk9mZjooKT0+VEksTmF2aWdhdGlvbk9mZjooKT0+JEksTmV0d29yazooKT0+QUksTmV3c3BhcGVyOigpPT5QSSxOZmM6KCk9PkVJLE5vbkJpbmFyeTooKT0+SUksTm90ZWJvb2s6KCk9PkZJLE5vdGVib29rUGVuOigpPT5OSSxOb3RlYm9va1RhYnM6KCk9Pk9JLE5vdGVib29rVGV4dDooKT0+UkksTm90ZXBhZFRleHQ6KCk9PkhJLE5vdGVwYWRUZXh0RGFzaGVkOigpPT5CSSxOdXQ6KCk9PlZJLE51dE9mZjooKT0+cUksT2N0YWdvbjooKT0+VUksT2N0YWdvbkFsZXJ0OigpPT56dSxPY3RhZ29uTWludXM6KCk9PmpJLE9jdGFnb25QYXVzZTooKT0+Q3UsT2N0YWdvblg6KCk9Pl91LE9tZWdhOigpPT5XSSxPcHRpb246KCk9PkdJLE9yYml0OigpPT5ZSSxPcmlnYW1pOigpPT5LSSxPdXRkZW50OigpPT5yYyxQYWNrYWdlOigpPT5hTixQYWNrYWdlMjooKT0+WkksUGFja2FnZUNoZWNrOigpPT5YSSxQYWNrYWdlTWludXM6KCk9PlFJLFBhY2thZ2VPcGVuOigpPT5KSSxQYWNrYWdlUGx1czooKT0+ZU4sUGFja2FnZVNlYXJjaDooKT0+dE4sUGFja2FnZVg6KCk9PnJOLFBhaW50QnVja2V0OigpPT5zTixQYWludFJvbGxlcjooKT0+aU4sUGFpbnRicnVzaDooKT0+b04sUGFpbnRicnVzaDI6KCk9PlR1LFBhaW50YnJ1c2hWZXJ0aWNhbDooKT0+VHUsUGFsZXR0ZTooKT0+bk4sUGFsbXRyZWU6KCk9PnJmLFBhbmRhOigpPT5jTixQYW5lbEJvdHRvbTooKT0+dU4sUGFuZWxCb3R0b21DbG9zZTooKT0+bE4sUGFuZWxCb3R0b21EYXNoZWQ6KCk9Pkx1LFBhbmVsQm90dG9tSW5hY3RpdmU6KCk9Pkx1LFBhbmVsQm90dG9tT3BlbjooKT0+ZE4sUGFuZWxMZWZ0OigpPT5QdSxQYW5lbExlZnRDbG9zZTooKT0+JHUsUGFuZWxMZWZ0RGFzaGVkOigpPT5EdSxQYW5lbExlZnRJbmFjdGl2ZTooKT0+RHUsUGFuZWxMZWZ0T3BlbjooKT0+QXUsUGFuZWxMZWZ0UmlnaHREYXNoZWQ6KCk9PnBOLFBhbmVsUmlnaHQ6KCk9PmdOLFBhbmVsUmlnaHRDbG9zZTooKT0+Zk4sUGFuZWxSaWdodERhc2hlZDooKT0+RXUsUGFuZWxSaWdodEluYWN0aXZlOigpPT5FdSxQYW5lbFJpZ2h0T3BlbjooKT0+aE4sUGFuZWxUb3A6KCk9PnhOLFBhbmVsVG9wQm90dG9tRGFzaGVkOigpPT5tTixQYW5lbFRvcENsb3NlOigpPT5iTixQYW5lbFRvcERhc2hlZDooKT0+SXUsUGFuZWxUb3BJbmFjdGl2ZTooKT0+SXUsUGFuZWxUb3BPcGVuOigpPT52TixQYW5lbHNMZWZ0Qm90dG9tOigpPT55TixQYW5lbHNMZWZ0UmlnaHQ6KCk9Pms2LFBhbmVsc1JpZ2h0Qm90dG9tOigpPT53TixQYW5lbHNUb3BCb3R0b206KCk9PlZ1LFBhbmVsc1RvcExlZnQ6KCk9Pk51LFBhcGVyY2xpcDooKT0+TU4sUGFyZW50aGVzZXM6KCk9PmtOLFBhcmtpbmdDaXJjbGU6KCk9Pm82LFBhcmtpbmdDaXJjbGVPZmY6KCk9Pmk2LFBhcmtpbmdNZXRlcjooKT0+U04sUGFya2luZ1NxdWFyZTooKT0+RXAsUGFya2luZ1NxdWFyZU9mZjooKT0+UHAsUGFydHlQb3BwZXI6KCk9PkNOLFBhdXNlOigpPT56TixQYXVzZUNpcmNsZTooKT0+bjYsUGF1c2VPY3RhZ29uOigpPT5DdSxQYXdQcmludDooKT0+X04sUGNDYXNlOigpPT5UTixQZW46KCk9Pk91LFBlbkJveDooKT0+QzEsUGVuTGluZTooKT0+UnUsUGVuT2ZmOigpPT5MTixQZW5TcXVhcmU6KCk9PkMxLFBlblRvb2w6KCk9PiROLFBlbmNpbDooKT0+UE4sUGVuY2lsTGluZTooKT0+RE4sUGVuY2lsT2ZmOigpPT5BTixQZW5jaWxSdWxlcjooKT0+RU4sUGVudGFnb246KCk9PklOLFBlcmNlbnQ6KCk9Pk5OLFBlcmNlbnRDaXJjbGU6KCk9Pmw2LFBlcmNlbnREaWFtb25kOigpPT56NixQZXJjZW50U3F1YXJlOigpPT5JcCxQZXJzb25TdGFuZGluZzooKT0+Uk4sUGhpbGlwcGluZVBlc286KCk9Pk9OLFBob25lOigpPT5XTixQaG9uZUNhbGw6KCk9PkZOLFBob25lRm9yd2FyZGVkOigpPT5CTixQaG9uZUluY29taW5nOigpPT5ITixQaG9uZU1pc3NlZDooKT0+cU4sUGhvbmVPZmY6KCk9PlZOLFBob25lT3V0Z29pbmc6KCk9PmpOLFBpOigpPT5VTixQaVNxdWFyZTooKT0+TnAsUGlhbm86KCk9PkdOLFBpY2theGU6KCk9PllOLFBpY3R1cmVJblBpY3R1cmU6KCk9PlpOLFBpY3R1cmVJblBpY3R1cmUyOigpPT5LTixQaWVDaGFydDooKT0+RmQsUGlnZ3lCYW5rOigpPT5YTixQaWxjcm93OigpPT5lUixQaWxjcm93TGVmdDooKT0+UU4sUGlsY3Jvd1JpZ2h0OigpPT5KTixQaWxjcm93U3F1YXJlOigpPT5ScCxQaWxsOigpPT5yUixQaWxsQm90dGxlOigpPT50UixQaW46KCk9PnNSLFBpbk9mZjooKT0+YVIsUGlwZXR0ZTooKT0+aVIsUGl6emE6KCk9Pm9SLFBsYW5lOigpPT5jUixQbGFuZUxhbmRpbmc6KCk9Pm5SLFBsYW5lVGFrZW9mZjooKT0+bFIsUGxheTooKT0+ZFIsUGxheUNpcmNsZTooKT0+YzYsUGxheVNxdWFyZTooKT0+RnAsUGx1ZzooKT0+cFIsUGx1ZzI6KCk9PnVSLFBsdWdaYXA6KCk9PkZ1LFBsdWdaYXAyOigpPT5GdSxQbHVzOigpPT5mUixQbHVzQ2lyY2xlOigpPT5kNixQbHVzU3F1YXJlOigpPT5PcCxQb2NrZXRLbmlmZTooKT0+aFIsUG9kY2FzdDooKT0+bVIsUG9pbnRlcjooKT0+Z1IsUG9pbnRlck9mZjooKT0+YlIsUG9wY29ybjooKT0+dlIsUG9wc2ljbGU6KCk9PnhSLFBvdW5kU3Rlcmxpbmc6KCk9PnlSLFBvd2VyOigpPT5NUixQb3dlckNpcmNsZTooKT0+dTYsUG93ZXJPZmY6KCk9PndSLFBvd2VyU3F1YXJlOigpPT5CcCxQcmVzZW50YXRpb246KCk9PmtSLFByaW50ZXI6KCk9PkNSLFByaW50ZXJDaGVjazooKT0+elIsUHJpbnRlclg6KCk9PlNSLFByb2plY3RvcjooKT0+TFIsUHJvcG9ydGlvbnM6KCk9Pl9SLFB1enpsZTooKT0+VFIsUHlyYW1pZDooKT0+JFIsUXJDb2RlOigpPT5BUixRdW90ZTooKT0+RFIsUmFiYml0OigpPT5FUixSYWRhcjooKT0+UFIsUmFkaWF0aW9uOigpPT5JUixSYWRpY2FsOigpPT5OUixSYWRpbzooKT0+QlIsUmFkaW9PZmY6KCk9PlJSLFJhZGlvUmVjZWl2ZXI6KCk9Pk9SLFJhZGlvVG93ZXI6KCk9PkZSLFJhZGl1czooKT0+SFIsUmFpbmJvdzooKT0+cVIsUmF0OigpPT5WUixSYXRpbzooKT0+alIsUmVjZWlwdDooKT0+SlIsUmVjZWlwdENlbnQ6KCk9PlVSLFJlY2VpcHRFdXJvOigpPT5XUixSZWNlaXB0SW5kaWFuUnVwZWU6KCk9PkdSLFJlY2VpcHRKYXBhbmVzZVllbjooKT0+S1IsUmVjZWlwdFBvdW5kU3Rlcmxpbmc6KCk9PllSLFJlY2VpcHRSdXNzaWFuUnVibGU6KCk9PlpSLFJlY2VpcHRTd2lzc0ZyYW5jOigpPT5RUixSZWNlaXB0VGV4dDooKT0+WFIsUmVjZWlwdFR1cmtpc2hMaXJhOigpPT5lTyxSZWN0YW5nbGVDaXJjbGU6KCk9PnRPLFJlY3RhbmdsZUVsbGlwc2lzOigpPT5CdSxSZWN0YW5nbGVHb2dnbGVzOigpPT5hTyxSZWN0YW5nbGVIb3Jpem9udGFsOigpPT5yTyxSZWN0YW5nbGVWZXJ0aWNhbDooKT0+c08sUmVjeWNsZTooKT0+aU8sUmVkbzooKT0+bE8sUmVkbzI6KCk9Pm9PLFJlZG9Eb3Q6KCk9Pm5PLFJlZnJlc2hDY3c6KCk9PmRPLFJlZnJlc2hDY3dEb3Q6KCk9PmNPLFJlZnJlc2hDdzooKT0+cE8sUmVmcmVzaEN3T2ZmOigpPT51TyxSZWZyaWdlcmF0b3I6KCk9PmZPLFJlZ2V4OigpPT5oTyxSZW1vdmVGb3JtYXR0aW5nOigpPT5tTyxSZXBlYXQ6KCk9PnhPLFJlcGVhdDE6KCk9PmJPLFJlcGVhdDI6KCk9PmdPLFJlcGVhdE9mZjooKT0+dk8sUmVwbGFjZTooKT0+d08sUmVwbGFjZUFsbDooKT0+eU8sUmVwbHk6KCk9PmtPLFJlcGx5QWxsOigpPT5NTyxSZXdpbmQ6KCk9PnpPLFJpYmJvbjooKT0+U08sUm9hZDooKT0+Q08sUm9ja2V0OigpPT5fTyxSb2NraW5nQ2hhaXI6KCk9PlRPLFJvbGxlckNvYXN0ZXI6KCk9PkxPLFJvc2U6KCk9PiRPLFJvdGF0ZTNEOigpPT5IdSxSb3RhdGUzZDooKT0+SHUsUm90YXRlQ2N3OigpPT5QTyxSb3RhdGVDY3dLZXk6KCk9PkRPLFJvdGF0ZUNjd1NxdWFyZTooKT0+QU8sUm90YXRlQ3c6KCk9PklPLFJvdGF0ZUN3U3F1YXJlOigpPT5FTyxSb3V0ZTooKT0+Uk8sUm91dGVPZmY6KCk9Pk5PLFJvdXRlcjooKT0+T08sUm93czooKT0+cXUsUm93czI6KCk9PnF1LFJvd3MzOigpPT5WdSxSb3dzNDooKT0+Rk8sUnNzOigpPT5CTyxSdWxlcjooKT0+cU8sUnVsZXJEaW1lbnNpb25MaW5lOigpPT5ITyxSdXNzaWFuUnVibGU6KCk9PlZPLFNhaWxib2F0OigpPT5qTyxTYWxhZDooKT0+VU8sU2FuZHdpY2g6KCk9PldPLFNhdGVsbGl0ZTooKT0+R08sU2F0ZWxsaXRlRGlzaDooKT0+WU8sU2F1ZGlSaXlhbDooKT0+S08sU2F2ZTooKT0+UU8sU2F2ZUFsbDooKT0+WE8sU2F2ZU9mZjooKT0+Wk8sU2NhbGU6KCk9PkpPLFNjYWxlM0Q6KCk9Pmp1LFNjYWxlM2Q6KCk9Pmp1LFNjYWxpbmc6KCk9PnRGLFNjYW46KCk9PmNGLFNjYW5CYXJjb2RlOigpPT5lRixTY2FuRXllOigpPT5hRixTY2FuRmFjZTooKT0+ckYsU2NhbkhlYXJ0OigpPT5zRixTY2FuTGluZTooKT0+aUYsU2NhblFyQ29kZTooKT0+b0YsU2NhblNlYXJjaDooKT0+bkYsU2NhblRleHQ6KCk9PmxGLFNjYXR0ZXJDaGFydDooKT0+QmQsU2Nob29sOigpPT5kRixTY2hvb2wyOigpPT5uZixTY2lzc29yczooKT0+cEYsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT51RixTY2lzc29yc1NxdWFyZTooKT0+cXAsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PmRwLFNjb290ZXI6KCk9PmZGLFNjcmVlblNoYXJlOigpPT5tRixTY3JlZW5TaGFyZU9mZjooKT0+aEYsU2Nyb2xsOigpPT5iRixTY3JvbGxUZXh0OigpPT5nRixTZWFyY2g6KCk9PmtGLFNlYXJjaEFsZXJ0OigpPT52RixTZWFyY2hDaGVjazooKT0+eEYsU2VhcmNoQ29kZTooKT0+eUYsU2VhcmNoU2xhc2g6KCk9PndGLFNlYXJjaFg6KCk9Pk1GLFNlY3Rpb246KCk9PlNGLFNlbmQ6KCk9PkNGLFNlbmRIb3Jpem9uYWw6KCk9PlV1LFNlbmRIb3Jpem9udGFsOigpPT5VdSxTZW5kVG9CYWNrOigpPT56RixTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5fRixTZXBhcmF0b3JWZXJ0aWNhbDooKT0+VEYsU2VydmVyOigpPT5BRixTZXJ2ZXJDb2c6KCk9PkxGLFNlcnZlckNyYXNoOigpPT4kRixTZXJ2ZXJPZmY6KCk9PkRGLFNldHRpbmdzOigpPT5JRixTZXR0aW5nczI6KCk9PlBGLFNoYXBlczooKT0+RUYsU2hhcmU6KCk9PlJGLFNoYXJlMjooKT0+TkYsU2hlZXQ6KCk9PkZGLFNoZWxsOigpPT5PRixTaGVsdmluZ1VuaXQ6KCk9PkJGLFNoaWVsZDooKT0+UUYsU2hpZWxkQWxlcnQ6KCk9PkhGLFNoaWVsZEJhbjooKT0+cUYsU2hpZWxkQ2hlY2s6KCk9PlZGLFNoaWVsZENsb3NlOigpPT5HdSxTaGllbGRDb2c6KCk9PldGLFNoaWVsZENvZ0Nvcm5lcjooKT0+akYsU2hpZWxkRWxsaXBzaXM6KCk9PlVGLFNoaWVsZEhhbGY6KCk9PkdGLFNoaWVsZE1pbnVzOigpPT5ZRixTaGllbGRPZmY6KCk9PktGLFNoaWVsZFBsdXM6KCk9PlpGLFNoaWVsZFF1ZXN0aW9uOigpPT5XdSxTaGllbGRRdWVzdGlvbk1hcms6KCk9Pld1LFNoaWVsZFVzZXI6KCk9PlhGLFNoaWVsZFg6KCk9Pkd1LFNoaXA6KCk9PkpGLFNoaXBXaGVlbDooKT0+ZUIsU2hpcnQ6KCk9PnRCLFNob3BwaW5nQmFnOigpPT5hQixTaG9wcGluZ0Jhc2tldDooKT0+ckIsU2hvcHBpbmdDYXJ0OigpPT5zQixTaG92ZWw6KCk9PmlCLFNob3dlckhlYWQ6KCk9Pm9CLFNocmVkZGVyOigpPT5uQixTaHJpbXA6KCk9PmNCLFNocmluazooKT0+bEIsU2hydWI6KCk9PmRCLFNodWZmbGU6KCk9PnVCLFNpZGViYXI6KCk9PlB1LFNpZGViYXJDbG9zZTooKT0+JHUsU2lkZWJhck9wZW46KCk9PkF1LFNpZ21hOigpPT5wQixTaWdtYVNxdWFyZTooKT0+SHAsU2lnbmFsOigpPT5iQixTaWduYWxIaWdoOigpPT5mQixTaWduYWxMb3c6KCk9PmhCLFNpZ25hbE1lZGl1bTooKT0+bUIsU2lnbmFsWmVybzooKT0+Z0IsU2lnbmF0dXJlOigpPT52QixTaWducG9zdDooKT0+eUIsU2lnbnBvc3RCaWc6KCk9PnhCLFNpcmVuOigpPT53QixTa2lwQmFjazooKT0+TUIsU2tpcEZvcndhcmQ6KCk9PmtCLFNrdWxsOigpPT5TQixTbGFzaDooKT0+ekIsU2xhc2hTcXVhcmU6KCk9PlZwLFNsaWNlOigpPT5fQixTbGlkZXJzOigpPT5ZdSxTbGlkZXJzSG9yaXpvbnRhbDooKT0+Q0IsU2xpZGVyc1ZlcnRpY2FsOigpPT5ZdSxTbWFydHBob25lOigpPT5EQixTbWFydHBob25lQ2hhcmdpbmc6KCk9PlRCLFNtYXJ0cGhvbmVOZmM6KCk9PkxCLFNtaWxlOigpPT5BQixTbWlsZVBsdXM6KCk9PiRCLFNuYWlsOigpPT5QQixTbm93Zmxha2U6KCk9PkVCLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT5JQixTb2ZhOigpPT5OQixTb2xhclBhbmVsOigpPT5SQixTb3J0QXNjOigpPT52ZCxTb3J0RGVzYzooKT0+bWQsU291cDooKT0+T0IsU3BhY2U6KCk9PkZCLFNwYWRlOigpPT5CQixTcGFya2xlOigpPT5IQixTcGFya2xlczooKT0+S3UsU3BlYWtlcjooKT0+cUIsU3BlZWNoOigpPT5WQixTcGVsbENoZWNrOigpPT5qQixTcGVsbENoZWNrMjooKT0+VUIsU3BsaW5lOigpPT5HQixTcGxpbmVQb2ludGVyOigpPT5XQixTcGxpdDooKT0+WUIsU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5qcCxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5VcCxTcG9vbDooKT0+S0IsU3BvcnRTaG9lOigpPT5aQixTcG90bGlnaHQ6KCk9PkpCLFNwcmF5Q2FuOigpPT5YQixTcHJvdXQ6KCk9PlFCLFNxdWFyZTooKT0+cEgsU3F1YXJlQWN0aXZpdHk6KCk9Plp1LFNxdWFyZUFycm93RG93bjooKT0+SnUsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+WHUsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9PlF1LFNxdWFyZUFycm93TGVmdDooKT0+ZXAsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+dHAsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PmFwLFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT5ycCxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9PnNwLFNxdWFyZUFycm93UmlnaHQ6KCk9PmlwLFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+ZUgsU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PnRILFNxdWFyZUFycm93VXA6KCk9PmxwLFNxdWFyZUFycm93VXBMZWZ0OigpPT5vcCxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9Pm5wLFNxdWFyZUFzdGVyaXNrOigpPT5jcCxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+ZHAsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9PnVwLFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+cHAsU3F1YXJlQ2hhcnRHYW50dDooKT0+aWMsU3F1YXJlQ2hlY2s6KCk9PmhwLFNxdWFyZUNoZWNrQmlnOigpPT5mcCxTcXVhcmVDaGV2cm9uRG93bjooKT0+bXAsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9PmdwLFNxdWFyZUNoZXZyb25SaWdodDooKT0+YnAsU3F1YXJlQ2hldnJvblVwOigpPT52cCxTcXVhcmVDb2RlOigpPT54cCxTcXVhcmVEYXNoZWQ6KCk9Pk1wLFNxdWFyZURhc2hlZEJvdHRvbTooKT0+ckgsU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+YUgsU3F1YXJlRGFzaGVkS2FuYmFuOigpPT55cCxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9PndwLFNxdWFyZURhc2hlZFRleHQ6KCk9Pm9jLFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT5zSCxTcXVhcmVEaXZpZGU6KCk9PlNwLFNxdWFyZURvdDooKT0+a3AsU3F1YXJlRXF1YWw6KCk9PnpwLFNxdWFyZUZ1bmN0aW9uOigpPT5DcCxTcXVhcmVHYW50dENoYXJ0OigpPT5pYyxTcXVhcmVLYW5iYW46KCk9PkxwLFNxdWFyZUxpYnJhcnk6KCk9Pl9wLFNxdWFyZU06KCk9PlRwLFNxdWFyZU1lbnU6KCk9PiRwLFNxdWFyZU1pbnVzOigpPT5EcCxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9PkFwLFNxdWFyZVBhcmtpbmc6KCk9PkVwLFNxdWFyZVBhcmtpbmdPZmY6KCk9PlBwLFNxdWFyZVBhdXNlOigpPT5pSCxTcXVhcmVQZW46KCk9PkMxLFNxdWFyZVBlcmNlbnQ6KCk9PklwLFNxdWFyZVBpOigpPT5OcCxTcXVhcmVQaWxjcm93OigpPT5ScCxTcXVhcmVQbGF5OigpPT5GcCxTcXVhcmVQbHVzOigpPT5PcCxTcXVhcmVQb3dlcjooKT0+QnAsU3F1YXJlUmFkaWNhbDooKT0+b0gsU3F1YXJlUm91bmRDb3JuZXI6KCk9Pm5ILFNxdWFyZVNjaXNzb3JzOigpPT5xcCxTcXVhcmVTaWdtYTooKT0+SHAsU3F1YXJlU2xhc2g6KCk9PlZwLFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+anAsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+VXAsU3F1YXJlU3F1YXJlOigpPT5sSCxTcXVhcmVTdGFjazooKT0+Y0gsU3F1YXJlU3RhcjooKT0+ZEgsU3F1YXJlU3RvcDooKT0+dUgsU3F1YXJlVGVybWluYWw6KCk9PldwLFNxdWFyZVVzZXI6KCk9PktwLFNxdWFyZVVzZXJSb3VuZDooKT0+R3AsU3F1YXJlWDooKT0+WXAsU3F1YXJlc0V4Y2x1ZGU6KCk9PmZILFNxdWFyZXNJbnRlcnNlY3Q6KCk9PmhILFNxdWFyZXNTdWJ0cmFjdDooKT0+bUgsU3F1YXJlc1VuaXRlOigpPT5nSCxTcXVpcmNsZTooKT0+dkgsU3F1aXJjbGVEYXNoZWQ6KCk9PmJILFNxdWlycmVsOigpPT54SCxTdGFtcDooKT0+eUgsU3RhcjooKT0+a0gsU3RhckhhbGY6KCk9PndILFN0YXJPZmY6KCk9Pk1ILFN0YXJzOigpPT5LdSxTdGVwQmFjazooKT0+U0gsU3RlcEZvcndhcmQ6KCk9PnpILFN0ZXRob3Njb3BlOigpPT5fSCxTdGlja2VyOigpPT5DSCxTdGlja3lOb3RlOigpPT5USCxTdG9uZTooKT0+REgsU3RvcENpcmNsZTooKT0+ZjYsU3RvcmU6KCk9PkxILFN0cmV0Y2hIb3Jpem9udGFsOigpPT4kSCxTdHJldGNoVmVydGljYWw6KCk9PkFILFN0cmlrZXRocm91Z2g6KCk9PlBILFN1YnNjcmlwdDooKT0+RUgsU3VidGl0bGVzOigpPT5fZCxTdW46KCk9PkZILFN1bkRpbTooKT0+SUgsU3VuTWVkaXVtOigpPT5OSCxTdW5Nb29uOigpPT5SSCxTdW5Tbm93OigpPT5PSCxTdW5yaXNlOigpPT5CSCxTdW5zZXQ6KCk9PkhILFN1cGVyc2NyaXB0OigpPT5xSCxTd2F0Y2hCb29rOigpPT5WSCxTd2lzc0ZyYW5jOigpPT5qSCxTd2l0Y2hDYW1lcmE6KCk9PlVILFN3b3JkOigpPT5XSCxTd29yZHM6KCk9PkdILFN5cmluZ2U6KCk9PllILFRhYmxlOigpPT5ycSxUYWJsZTI6KCk9PktILFRhYmxlQ2VsbHNNZXJnZTooKT0+WkgsVGFibGVDZWxsc1NwbGl0OigpPT5YSCxUYWJsZUNvbHVtbnNTcGxpdDooKT0+UUgsVGFibGVDb25maWc6KCk9PmVjLFRhYmxlT2ZDb250ZW50czooKT0+SkgsVGFibGVQcm9wZXJ0aWVzOigpPT5lcSxUYWJsZVJvd3NTcGxpdDooKT0+dHEsVGFibGV0OigpPT5zcSxUYWJsZXRTbWFydHBob25lOigpPT5hcSxUYWJsZXRzOigpPT5pcSxUYWc6KCk9Pm9xLFRhZ3M6KCk9Pm5xLFRhbGx5MTooKT0+bHEsVGFsbHkyOigpPT5jcSxUYWxseTM6KCk9PmRxLFRhbGx5NDooKT0+dXEsVGFsbHk1OigpPT5mcSxUYW5nZW50OigpPT5wcSxUYXJnZXQ6KCk9PmhxLFRlbGVzY29wZTooKT0+bXEsVGVudDooKT0+YnEsVGVudFRyZWU6KCk9PmdxLFRlcm1pbmFsOigpPT52cSxUZXJtaW5hbFNxdWFyZTooKT0+V3AsVGVzdFR1YmU6KCk9PnhxLFRlc3RUdWJlMjooKT0+WnAsVGVzdFR1YmVEaWFnb25hbDooKT0+WnAsVGVzdFR1YmVzOigpPT55cSxUZXh0OigpPT5uYyxUZXh0QWxpZ25DZW50ZXI6KCk9PlhwLFRleHRBbGlnbkVuZDooKT0+UXAsVGV4dEFsaWduSnVzdGlmeTooKT0+SnAsVGV4dEFsaWduU3RhcnQ6KCk9Pm5jLFRleHRDdXJzb3I6KCk9Pk1xLFRleHRDdXJzb3JJbnB1dDooKT0+d3EsVGV4dEluaXRpYWw6KCk9PmVmLFRleHRRdW90ZTooKT0+a3EsVGV4dFNlYXJjaDooKT0+U3EsVGV4dFNlbGVjdDooKT0+b2MsVGV4dFNlbGVjdGlvbjooKT0+b2MsVGV4dFdyYXA6KCk9PnRmLFRoZWF0ZXI6KCk9PnpxLFRoZXJtb21ldGVyOigpPT5UcSxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+Q3EsVGhlcm1vbWV0ZXJTdW46KCk9Pl9xLFRodW1ic0Rvd246KCk9PkxxLFRodW1ic1VwOigpPT4kcSxUaWNrZXQ6KCk9PlJxLFRpY2tldENoZWNrOigpPT5EcSxUaWNrZXRNaW51czooKT0+QXEsVGlja2V0UGVyY2VudDooKT0+UHEsVGlja2V0UGx1czooKT0+RXEsVGlja2V0U2xhc2g6KCk9PklxLFRpY2tldFg6KCk9Pk5xLFRpY2tldHM6KCk9PkZxLFRpY2tldHNQbGFuZTooKT0+T3EsVGltZWxpbmU6KCk9PkJxLFRpbWVyOigpPT5WcSxUaW1lck9mZjooKT0+SHEsVGltZXJSZXNldDooKT0+cXEsVG9nZ2xlTGVmdDooKT0+VXEsVG9nZ2xlUmlnaHQ6KCk9PldxLFRvaWxldDooKT0+anEsVG9vbENhc2U6KCk9PkdxLFRvb2xib3g6KCk9PllxLFRvcm5hZG86KCk9PlhxLFRvcnVzOigpPT5LcSxUb3VjaHBhZDooKT0+UXEsVG91Y2hwYWRPZmY6KCk9PlpxLFRvd2VsUmFjazooKT0+SnEsVG93ZXJDb250cm9sOigpPT5lVixUb3lCcmljazooKT0+dFYsVHJhY3RvcjooKT0+YVYsVHJhZmZpY0NvbmU6KCk9PnJWLFRyYWluOigpPT5hZixUcmFpbkZyb250OigpPT5pVixUcmFpbkZyb250VHVubmVsOigpPT5zVixUcmFpblRyYWNrOigpPT5vVixUcmFtRnJvbnQ6KCk9PmFmLFRyYW5zZ2VuZGVyOigpPT5uVixUcmFzaDooKT0+Y1YsVHJhc2gyOigpPT5sVixUcmVlRGVjaWR1b3VzOigpPT5kVixUcmVlUGFsbTooKT0+cmYsVHJlZVBpbmU6KCk9PnVWLFRyZWVzOigpPT5wVixUcmVuZGluZ0Rvd246KCk9PmZWLFRyZW5kaW5nVXA6KCk9Pm1WLFRyZW5kaW5nVXBEb3duOigpPT5oVixUcmlhbmdsZTooKT0+dlYsVHJpYW5nbGVBbGVydDooKT0+c2YsVHJpYW5nbGVEYXNoZWQ6KCk9PmdWLFRyaWFuZ2xlUmlnaHQ6KCk9PmJWLFRyb3BoeTooKT0+eFYsVHJ1Y2s6KCk9PndWLFRydWNrRWxlY3RyaWM6KCk9PnlWLFR1cmtpc2hMaXJhOigpPT5NVixUdXJudGFibGU6KCk9PmtWLFR1cnRsZTooKT0+U1YsVHY6KCk9PkNWLFR2MjooKT0+b2YsVHZNaW5pbWFsOigpPT5vZixUdk1pbmltYWxQbGF5OigpPT56VixUeXBlOigpPT5UVixUeXBlT3V0bGluZTooKT0+X1YsVW1icmVsbGE6KCk9PiRWLFVtYnJlbGxhT2ZmOigpPT5MVixVbmRlcmxpbmU6KCk9PkRWLFVuZG86KCk9PkVWLFVuZG8yOigpPT5BVixVbmRvRG90OigpPT5QVixVbmZvbGRIb3Jpem9udGFsOigpPT5JVixVbmZvbGRWZXJ0aWNhbDooKT0+TlYsVW5ncm91cDooKT0+UlYsVW5pdmVyc2l0eTooKT0+bmYsVW5saW5rOigpPT5CVixVbmxpbmsyOigpPT5PVixVbmxvY2s6KCk9Pnh1LFVubG9ja0tleWhvbGU6KCk9PnZ1LFVucGx1ZzooKT0+RlYsVXBsb2FkOigpPT5IVixVcGxvYWRDbG91ZDooKT0+eTYsVXNiOigpPT5xVixVc2VyOigpPT5haixVc2VyMjooKT0+ZmYsVXNlckNoZWNrOigpPT5WVixVc2VyQ2hlY2syOigpPT5sZixVc2VyQ2lyY2xlOigpPT5tNixVc2VyQ2lyY2xlMjooKT0+aDYsVXNlckNvZzooKT0+alYsVXNlckNvZzI6KCk9PmNmLFVzZXJLZXk6KCk9PlVWLFVzZXJMb2NrOigpPT5XVixVc2VyTWludXM6KCk9PkdWLFVzZXJNaW51czI6KCk9PmRmLFVzZXJQZW46KCk9PllWLFVzZXJQbHVzOigpPT5LVixVc2VyUGx1czI6KCk9PnVmLFVzZXJSb3VuZDooKT0+ZmYsVXNlclJvdW5kQ2hlY2s6KCk9PmxmLFVzZXJSb3VuZENvZzooKT0+Y2YsVXNlclJvdW5kS2V5OigpPT5aVixVc2VyUm91bmRNaW51czooKT0+ZGYsVXNlclJvdW5kUGVuOigpPT5YVixVc2VyUm91bmRQbHVzOigpPT51ZixVc2VyUm91bmRTZWFyY2g6KCk9PlFWLFVzZXJSb3VuZFg6KCk9PnBmLFVzZXJTZWFyY2g6KCk9PkpWLFVzZXJTcXVhcmU6KCk9PktwLFVzZXJTcXVhcmUyOigpPT5HcCxVc2VyU3RhcjooKT0+ZWosVXNlclg6KCk9PnRqLFVzZXJYMjooKT0+cGYsVXNlcnM6KCk9PnJqLFVzZXJzMjooKT0+aGYsVXNlcnNSb3VuZDooKT0+aGYsVXRlbnNpbHM6KCk9PmdmLFV0ZW5zaWxzQ3Jvc3NlZDooKT0+bWYsVXRpbGl0eVBvbGU6KCk9PmlqLFZhbjooKT0+c2osVmFyaWFibGU6KCk9Pm9qLFZhdWx0OigpPT5uaixWZWN0b3JTcXVhcmU6KCk9PmxqLFZlZ2FuOigpPT5jaixWZW5ldGlhbk1hc2s6KCk9PmRqLFZlbnVzOigpPT5waixWZW51c0FuZE1hcnM6KCk9PnVqLFZlcmlmaWVkOigpPT53ZCxWaWJyYXRlOigpPT5oaixWaWJyYXRlT2ZmOigpPT5maixWaWRlbzooKT0+Z2osVmlkZW9PZmY6KCk9Pm1qLFZpZGVvdGFwZTooKT0+YmosVmlldzooKT0+dmosVm9pY2VtYWlsOigpPT55aixWb2xsZXliYWxsOigpPT54aixWb2x1bWU6KCk9PnpqLFZvbHVtZTE6KCk9PndqLFZvbHVtZTI6KCk9Pk1qLFZvbHVtZU9mZjooKT0+a2osVm9sdW1lWDooKT0+U2osVm90ZTooKT0+Q2osV2FsbGV0OigpPT5UaixXYWxsZXQyOigpPT5iZixXYWxsZXRDYXJkczooKT0+X2osV2FsbGV0TWluaW1hbDooKT0+YmYsV2FsbHBhcGVyOigpPT5MaixXYW5kOigpPT4kaixXYW5kMjooKT0+dmYsV2FuZFNwYXJrbGVzOigpPT52ZixXYXJlaG91c2U6KCk9PkRqLFdhc2hpbmdNYWNoaW5lOigpPT5QaixXYXRjaDooKT0+QWosV2F2ZXM6KCk9PnhmLFdhdmVzQXJyb3dEb3duOigpPT5FaixXYXZlc0Fycm93VXA6KCk9PklqLFdhdmVzSG9yaXpvbnRhbDooKT0+eGYsV2F2ZXNMYWRkZXI6KCk9Pk5qLFdhdmVzVmVydGljYWw6KCk9PlJqLFdheXBvaW50czooKT0+T2osV2ViY2FtOigpPT5GaixXZWJob29rOigpPT5IaixXZWJob29rT2ZmOigpPT5CaixXZWlnaHQ6KCk9PlZqLFdlaWdodFRpbGRlOigpPT5xaixXaGVhdDooKT0+VWosV2hlYXRPZmY6KCk9PmpqLFdob2xlV29yZDooKT0+V2osV2lmaTooKT0+dFUsV2lmaUNvZzooKT0+R2osV2lmaUhpZ2g6KCk9PllqLFdpZmlMb3c6KCk9PktqLFdpZmlPZmY6KCk9PlpqLFdpZmlQZW46KCk9PlhqLFdpZmlTeW5jOigpPT5RaixXaWZpWmVybzooKT0+SmosV2luZDooKT0+YVUsV2luZEFycm93RG93bjooKT0+ZVUsV2luZTooKT0+b1UsV2luZU9mZjooKT0+clUsV29ya2Zsb3c6KCk9PmlVLFdvcm06KCk9PnNVLFdyYXBUZXh0OigpPT50ZixXcmVuY2g6KCk9Pm5VLFg6KCk9PmNVLFhDaXJjbGU6KCk9Pmc2LFhMaW5lVG9wOigpPT5sVSxYT2N0YWdvbjooKT0+X3UsWFNxdWFyZTooKT0+WXAsWmFwOigpPT51VSxaYXBPZmY6KCk9PmRVLFpvZGlhY0FxdWFyaXVzOigpPT5wVSxab2RpYWNBcmllczooKT0+ZlUsWm9kaWFjQ2FuY2VyOigpPT5oVSxab2RpYWNDYXByaWNvcm46KCk9Pm1VLFpvZGlhY0dlbWluaTooKT0+Z1UsWm9kaWFjTGVvOigpPT5iVSxab2RpYWNMaWJyYTooKT0+dlUsWm9kaWFjT3BoaXVjaHVzOigpPT54VSxab2RpYWNQaXNjZXM6KCk9PnlVLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT5NVSxab2RpYWNTY29ycGlvOigpPT53VSxab2RpYWNUYXVydXM6KCk9PmtVLFpvZGlhY1ZpcmdvOigpPT5TVSxab29tSW46KCk9PnpVLFpvb21PdXQ6KCk9PkNVLGNyZWF0ZUVsZW1lbnQ6KCk9PmE0LGNyZWF0ZUljb25zOigpPT5oWWUsaWNvbnM6KCk9PnlmfSk7dmFyIGhZZSxWdGU9ZigoKT0+e3hyYSgpO3lyYSgpO1BnZSgpO0ZnZSgpO0JnZSgpO0hnZSgpO3FnZSgpO1ZnZSgpO2pnZSgpO1VnZSgpO1dnZSgpO0dnZSgpO1lnZSgpO0tnZSgpO1pnZSgpO1hnZSgpO1FnZSgpO0pnZSgpO2ViZSgpO3RiZSgpO2FiZSgpO3JiZSgpO3NiZSgpO2liZSgpO29iZSgpO25iZSgpO2xiZSgpO2NiZSgpO2RiZSgpO3ViZSgpO3BiZSgpO2ZiZSgpO2hiZSgpO21iZSgpO2diZSgpO2JiZSgpO3ZiZSgpO3hiZSgpO3liZSgpO3diZSgpO01iZSgpO2tiZSgpO1NiZSgpO3piZSgpO0NiZSgpO19iZSgpO1RiZSgpO0xiZSgpOyRiZSgpO0RiZSgpO0FiZSgpO1BiZSgpO0ViZSgpO0liZSgpO05iZSgpO1JiZSgpO09iZSgpO0ZiZSgpO0JiZSgpO0hiZSgpO3FiZSgpO1ZiZSgpO2piZSgpO1ViZSgpO1diZSgpO0diZSgpO1liZSgpO0tiZSgpO1piZSgpO1hiZSgpO1FiZSgpO0piZSgpO2V2ZSgpO3R2ZSgpO2F2ZSgpO3J2ZSgpO3N2ZSgpO2l2ZSgpO292ZSgpO252ZSgpO2x2ZSgpO2N2ZSgpO2R2ZSgpO3V2ZSgpO3B2ZSgpO2Z2ZSgpO2h2ZSgpO212ZSgpO2d2ZSgpO2J2ZSgpO3Z2ZSgpO3h2ZSgpO3l2ZSgpO3d2ZSgpO012ZSgpO2t2ZSgpO1N2ZSgpO3p2ZSgpO0N2ZSgpO192ZSgpO1R2ZSgpO0x2ZSgpOyR2ZSgpO0R2ZSgpO0F2ZSgpO1B2ZSgpO0V2ZSgpO0l2ZSgpO052ZSgpO1J2ZSgpO092ZSgpO0Z2ZSgpO0J2ZSgpO0h2ZSgpO3F2ZSgpO1Z2ZSgpO2p2ZSgpO1V2ZSgpO1d2ZSgpO0d2ZSgpO1l2ZSgpO0t2ZSgpO1p2ZSgpO1h2ZSgpO1F2ZSgpO0p2ZSgpO2V4ZSgpO3R4ZSgpO2F4ZSgpO3J4ZSgpO3N4ZSgpO2l4ZSgpO294ZSgpO254ZSgpO2x4ZSgpO2N4ZSgpO2R4ZSgpO3V4ZSgpO3B4ZSgpO2Z4ZSgpO2h4ZSgpO214ZSgpO2d4ZSgpO2J4ZSgpO3Z4ZSgpO3h4ZSgpO3l4ZSgpO3d4ZSgpO014ZSgpO2t4ZSgpO1N4ZSgpO3p4ZSgpO0N4ZSgpO194ZSgpO1R4ZSgpO0x4ZSgpOyR4ZSgpO0R4ZSgpO0F4ZSgpO1B4ZSgpO0V4ZSgpO0l4ZSgpO054ZSgpO1J4ZSgpO094ZSgpO0Z4ZSgpO0J4ZSgpO0h4ZSgpO3F4ZSgpO1Z4ZSgpO2p4ZSgpO1V4ZSgpO1d4ZSgpO0d4ZSgpO1l4ZSgpO0t4ZSgpO1p4ZSgpO1h4ZSgpO1F4ZSgpO0p4ZSgpO2V5ZSgpO3R5ZSgpO2F5ZSgpO3J5ZSgpO3N5ZSgpO2l5ZSgpO295ZSgpO255ZSgpO2x5ZSgpO2N5ZSgpO2R5ZSgpO3V5ZSgpO3B5ZSgpO2Z5ZSgpO2h5ZSgpO215ZSgpO2d5ZSgpO2J5ZSgpO3Z5ZSgpO3h5ZSgpO3l5ZSgpO3d5ZSgpO015ZSgpO2t5ZSgpO1N5ZSgpO3p5ZSgpO0N5ZSgpO195ZSgpO1R5ZSgpO0x5ZSgpOyR5ZSgpO0R5ZSgpO0F5ZSgpO1B5ZSgpO0V5ZSgpO0l5ZSgpO055ZSgpO1J5ZSgpO095ZSgpO0Z5ZSgpO0J5ZSgpO0h5ZSgpO3F5ZSgpO1Z5ZSgpO2p5ZSgpO1V5ZSgpO1d5ZSgpO0d5ZSgpO1l5ZSgpO0t5ZSgpO1p5ZSgpO1h5ZSgpO1F5ZSgpO0p5ZSgpO2V3ZSgpO3R3ZSgpO2F3ZSgpO3J3ZSgpO3N3ZSgpO2l3ZSgpO293ZSgpO253ZSgpO2x3ZSgpO2N3ZSgpO2R3ZSgpO3V3ZSgpO3B3ZSgpO2Z3ZSgpO2h3ZSgpO213ZSgpO2d3ZSgpO2J3ZSgpO3Z3ZSgpO3h3ZSgpO3l3ZSgpO3d3ZSgpO013ZSgpO2t3ZSgpO1N3ZSgpO3p3ZSgpO0N3ZSgpO193ZSgpO1R3ZSgpO0x3ZSgpOyR3ZSgpO0R3ZSgpO0F3ZSgpO1B3ZSgpO0V3ZSgpO0l3ZSgpO053ZSgpO1J3ZSgpO093ZSgpO0Z3ZSgpO0J3ZSgpO0h3ZSgpO3F3ZSgpO1Z3ZSgpO2p3ZSgpO1V3ZSgpO1d3ZSgpO0d3ZSgpO1l3ZSgpO0t3ZSgpO1p3ZSgpO1h3ZSgpO1F3ZSgpO0p3ZSgpO2VNZSgpO3RNZSgpO2FNZSgpO3JNZSgpO3NNZSgpO2lNZSgpO29NZSgpO25NZSgpO2xNZSgpO2NNZSgpO2RNZSgpO3VNZSgpO3BNZSgpO2ZNZSgpO2hNZSgpO21NZSgpO2dNZSgpO2JNZSgpO3ZNZSgpO3hNZSgpO3lNZSgpO3dNZSgpO01NZSgpO2tNZSgpO1NNZSgpO3pNZSgpO0NNZSgpO19NZSgpO1RNZSgpO0xNZSgpOyRNZSgpO0RNZSgpO0FNZSgpO1BNZSgpO0VNZSgpO0lNZSgpO05NZSgpO1JNZSgpO09NZSgpO0ZNZSgpO0JNZSgpO0hNZSgpO3FNZSgpO1ZNZSgpO2pNZSgpO1VNZSgpO1dNZSgpO0dNZSgpO1lNZSgpO0tNZSgpO1pNZSgpO1hNZSgpO1FNZSgpO0pNZSgpO2VrZSgpO3RrZSgpO2FrZSgpO3JrZSgpO3NrZSgpO2lrZSgpO29rZSgpO25rZSgpO2xrZSgpO2NrZSgpO2RrZSgpO3VrZSgpO3BrZSgpO2ZrZSgpO2hrZSgpO21rZSgpO2drZSgpO2JrZSgpO3ZrZSgpO3hrZSgpO3lrZSgpO3drZSgpO01rZSgpO2trZSgpO1NrZSgpO3prZSgpO0NrZSgpO19rZSgpO1RrZSgpO0xrZSgpOyRrZSgpO0RrZSgpO0FrZSgpO1BrZSgpO0VrZSgpO0lrZSgpO05rZSgpO1JrZSgpO09rZSgpO0ZrZSgpO0JrZSgpO0hrZSgpO3FrZSgpO1ZrZSgpO2prZSgpO1VrZSgpO1drZSgpO0drZSgpO1lrZSgpO0trZSgpO1prZSgpO1hrZSgpO1FrZSgpO0prZSgpO2VTZSgpO3RTZSgpO2FTZSgpO3JTZSgpO3NTZSgpO2lTZSgpO29TZSgpO25TZSgpO2xTZSgpO2NTZSgpO2RTZSgpO3VTZSgpO3BTZSgpO2ZTZSgpO2hTZSgpO21TZSgpO2dTZSgpO2JTZSgpO3ZTZSgpO3hTZSgpO3lTZSgpO3dTZSgpO01TZSgpO2tTZSgpO1NTZSgpO3pTZSgpO0NTZSgpO19TZSgpO1RTZSgpO0xTZSgpOyRTZSgpO0RTZSgpO0FTZSgpO1BTZSgpO0VTZSgpO0lTZSgpO05TZSgpO1JTZSgpO09TZSgpO0ZTZSgpO0JTZSgpO0hTZSgpO3FTZSgpO1ZTZSgpO2pTZSgpO1VTZSgpO1dTZSgpO0dTZSgpO1lTZSgpO0tTZSgpO1pTZSgpO1hTZSgpO1FTZSgpO0pTZSgpO2V6ZSgpO3R6ZSgpO2F6ZSgpO3J6ZSgpO3N6ZSgpO2l6ZSgpO296ZSgpO256ZSgpO2x6ZSgpO2N6ZSgpO2R6ZSgpO3V6ZSgpO3B6ZSgpO2Z6ZSgpO2h6ZSgpO216ZSgpO2d6ZSgpO2J6ZSgpO3Z6ZSgpO3h6ZSgpO3l6ZSgpO3d6ZSgpO016ZSgpO2t6ZSgpO1N6ZSgpO3p6ZSgpO0N6ZSgpO196ZSgpO1R6ZSgpO0x6ZSgpOyR6ZSgpO0R6ZSgpO0F6ZSgpO1B6ZSgpO0V6ZSgpO0l6ZSgpO056ZSgpO1J6ZSgpO096ZSgpO0Z6ZSgpO0J6ZSgpO0h6ZSgpO3F6ZSgpO1Z6ZSgpO2p6ZSgpO1V6ZSgpO1d6ZSgpO0d6ZSgpO1l6ZSgpO0t6ZSgpO1p6ZSgpO1h6ZSgpO1F6ZSgpO0p6ZSgpO2VDZSgpO3RDZSgpO2FDZSgpO3JDZSgpO3NDZSgpO2lDZSgpO29DZSgpO25DZSgpO2xDZSgpO2NDZSgpO2RDZSgpO3VDZSgpO3BDZSgpO2ZDZSgpO2hDZSgpO21DZSgpO2dDZSgpO2JDZSgpO3ZDZSgpO3hDZSgpO3lDZSgpO3dDZSgpO01DZSgpO2tDZSgpO1NDZSgpO3pDZSgpO0NDZSgpO19DZSgpO1RDZSgpO0xDZSgpOyRDZSgpO0RDZSgpO0FDZSgpO1BDZSgpO0VDZSgpO0lDZSgpO05DZSgpO1JDZSgpO09DZSgpO0ZDZSgpO0JDZSgpO0hDZSgpO3FDZSgpO1ZDZSgpO2pDZSgpO1VDZSgpO1dDZSgpO0dDZSgpO1lDZSgpO0tDZSgpO1pDZSgpO1hDZSgpO1FDZSgpO0pDZSgpO2VfZSgpO3RfZSgpO2FfZSgpO3JfZSgpO3NfZSgpO2lfZSgpO29fZSgpO25fZSgpO2xfZSgpO2NfZSgpO2RfZSgpO3VfZSgpO3BfZSgpO2ZfZSgpO2hfZSgpO21fZSgpO2dfZSgpO2JfZSgpO3ZfZSgpO3hfZSgpO3lfZSgpO3dfZSgpO01fZSgpO2tfZSgpO1NfZSgpO3pfZSgpO0NfZSgpO19fZSgpO1RfZSgpO0xfZSgpOyRfZSgpO0RfZSgpO0FfZSgpO1BfZSgpO0VfZSgpO0lfZSgpO05fZSgpO1JfZSgpO09fZSgpO0ZfZSgpO0JfZSgpO0hfZSgpO3FfZSgpO1ZfZSgpO2pfZSgpO1VfZSgpO1dfZSgpO0dfZSgpO1lfZSgpO0tfZSgpO1pfZSgpO1hfZSgpO1FfZSgpO0pfZSgpO2VUZSgpO3RUZSgpO2FUZSgpO3JUZSgpO3NUZSgpO2lUZSgpO29UZSgpO25UZSgpO2xUZSgpO2NUZSgpO2RUZSgpO3VUZSgpO3BUZSgpO2ZUZSgpO2hUZSgpO21UZSgpO2dUZSgpO2JUZSgpO3ZUZSgpO3hUZSgpO3lUZSgpO3dUZSgpO01UZSgpO2tUZSgpO1NUZSgpO3pUZSgpO0NUZSgpO19UZSgpO1RUZSgpO0xUZSgpOyRUZSgpO0RUZSgpO0FUZSgpO1BUZSgpO0VUZSgpO0lUZSgpO05UZSgpO1JUZSgpO09UZSgpO0ZUZSgpO0JUZSgpO0hUZSgpO3FUZSgpO1ZUZSgpO2pUZSgpO1VUZSgpO1dUZSgpO0dUZSgpO1lUZSgpO0tUZSgpO1pUZSgpO1hUZSgpO1FUZSgpO0pUZSgpO2VMZSgpO3RMZSgpO2FMZSgpO3JMZSgpO3NMZSgpO2lMZSgpO29MZSgpO25MZSgpO2xMZSgpO2NMZSgpO2RMZSgpO3VMZSgpO3BMZSgpO2ZMZSgpO2hMZSgpO21MZSgpO2dMZSgpO2JMZSgpO3ZMZSgpO3hMZSgpO3lMZSgpO3dMZSgpO01MZSgpO2tMZSgpO1NMZSgpO3pMZSgpO0NMZSgpO19MZSgpO1RMZSgpO0xMZSgpOyRMZSgpO0RMZSgpO0FMZSgpO1BMZSgpO0VMZSgpO0lMZSgpO05MZSgpO1JMZSgpO09MZSgpO0ZMZSgpO0JMZSgpO0hMZSgpO3FMZSgpO1ZMZSgpO2pMZSgpO1VMZSgpO1dMZSgpO0dMZSgpO1lMZSgpO0tMZSgpO1pMZSgpO1hMZSgpO1FMZSgpO0pMZSgpO2UkZSgpO3QkZSgpO2EkZSgpO3IkZSgpO3MkZSgpO2kkZSgpO28kZSgpO24kZSgpO2wkZSgpO2MkZSgpO2QkZSgpO3UkZSgpO3AkZSgpO2YkZSgpO2gkZSgpO20kZSgpO2ckZSgpO2IkZSgpO3YkZSgpO3gkZSgpO3kkZSgpO3ckZSgpO00kZSgpO2skZSgpO1MkZSgpO3okZSgpO0MkZSgpO18kZSgpO1QkZSgpO0wkZSgpOyQkZSgpO0QkZSgpO0EkZSgpO1AkZSgpO0UkZSgpO0kkZSgpO04kZSgpO1IkZSgpO08kZSgpO0YkZSgpO0IkZSgpO0gkZSgpO3EkZSgpO1YkZSgpO2okZSgpO1UkZSgpO1ckZSgpO0ckZSgpO1kkZSgpO0skZSgpO1okZSgpO1gkZSgpO1EkZSgpO0okZSgpO2VEZSgpO3REZSgpO2FEZSgpO3JEZSgpO3NEZSgpO2lEZSgpO29EZSgpO25EZSgpO2xEZSgpO2NEZSgpO2REZSgpO3VEZSgpO3BEZSgpO2ZEZSgpO2hEZSgpO21EZSgpO2dEZSgpO2JEZSgpO3ZEZSgpO3hEZSgpO3lEZSgpO3dEZSgpO01EZSgpO2tEZSgpO1NEZSgpO3pEZSgpO0NEZSgpO19EZSgpO1REZSgpO0xEZSgpOyREZSgpO0REZSgpO0FEZSgpO1BEZSgpO0VEZSgpO0lEZSgpO05EZSgpO1JEZSgpO09EZSgpO0ZEZSgpO0JEZSgpO0hEZSgpO3FEZSgpO1ZEZSgpO2pEZSgpO1VEZSgpO1dEZSgpO0dEZSgpO1lEZSgpO0tEZSgpO1pEZSgpO1hEZSgpO1FEZSgpO0pEZSgpO2VBZSgpO3RBZSgpO2FBZSgpO3JBZSgpO3NBZSgpO2lBZSgpO29BZSgpO25BZSgpO2xBZSgpO2NBZSgpO2RBZSgpO3VBZSgpO3BBZSgpO2ZBZSgpO2hBZSgpO21BZSgpO2dBZSgpO2JBZSgpO3ZBZSgpO3hBZSgpO3lBZSgpO3dBZSgpO01BZSgpO2tBZSgpO1NBZSgpO3pBZSgpO0NBZSgpO19BZSgpO1RBZSgpO0xBZSgpOyRBZSgpO0RBZSgpO0FBZSgpO1BBZSgpO0VBZSgpO0lBZSgpO05BZSgpO1JBZSgpO09BZSgpO0ZBZSgpO0JBZSgpO0hBZSgpO3FBZSgpO1ZBZSgpO2pBZSgpO1VBZSgpO1dBZSgpO0dBZSgpO1lBZSgpO0tBZSgpO1pBZSgpO1hBZSgpO1FBZSgpO0pBZSgpO2VQZSgpO3RQZSgpO2FQZSgpO3JQZSgpO3NQZSgpO2lQZSgpO29QZSgpO25QZSgpO2xQZSgpO2NQZSgpO2RQZSgpO3VQZSgpO3BQZSgpO2ZQZSgpO2hQZSgpO21QZSgpO2dQZSgpO2JQZSgpO3ZQZSgpO3hQZSgpO3lQZSgpO3dQZSgpO01QZSgpO2tQZSgpO1NQZSgpO3pQZSgpO0NQZSgpO19QZSgpO1RQZSgpO0xQZSgpOyRQZSgpO0RQZSgpO0FQZSgpO1BQZSgpO0VQZSgpO0lQZSgpO05QZSgpO1JQZSgpO09QZSgpO0ZQZSgpO0JQZSgpO0hQZSgpO3FQZSgpO1ZQZSgpO2pQZSgpO1VQZSgpO1dQZSgpO0dQZSgpO1lQZSgpO0tQZSgpO1pQZSgpO1hQZSgpO1FQZSgpO0pQZSgpO2VFZSgpO3RFZSgpO2FFZSgpO3JFZSgpO3NFZSgpO2lFZSgpO29FZSgpO25FZSgpO2xFZSgpO2NFZSgpO2RFZSgpO3VFZSgpO3BFZSgpO2ZFZSgpO2hFZSgpO21FZSgpO2dFZSgpO2JFZSgpO3ZFZSgpO3hFZSgpO3lFZSgpO3dFZSgpO01FZSgpO2tFZSgpO1NFZSgpO3pFZSgpO0NFZSgpO19FZSgpO1RFZSgpO0xFZSgpOyRFZSgpO0RFZSgpO0FFZSgpO1BFZSgpO0VFZSgpO0lFZSgpO05FZSgpO1JFZSgpO09FZSgpO0ZFZSgpO0JFZSgpO0hFZSgpO3FFZSgpO1ZFZSgpO2pFZSgpO1VFZSgpO1dFZSgpO0dFZSgpO1lFZSgpO0tFZSgpO1pFZSgpO1hFZSgpO1FFZSgpO0pFZSgpO2VJZSgpO3RJZSgpO2FJZSgpO3JJZSgpO3NJZSgpO2lJZSgpO29JZSgpO25JZSgpO2xJZSgpO2NJZSgpO2RJZSgpO3VJZSgpO3BJZSgpO2ZJZSgpO2hJZSgpO21JZSgpO2dJZSgpO2JJZSgpO3ZJZSgpO3hJZSgpO3lJZSgpO3dJZSgpO01JZSgpO2tJZSgpO1NJZSgpO3pJZSgpO0NJZSgpO19JZSgpO1RJZSgpO0xJZSgpOyRJZSgpO0RJZSgpO0FJZSgpO1BJZSgpO0VJZSgpO0lJZSgpO05JZSgpO1JJZSgpO09JZSgpO0ZJZSgpO0JJZSgpO0hJZSgpO3FJZSgpO1ZJZSgpO2pJZSgpO1VJZSgpO1dJZSgpO0dJZSgpO1lJZSgpO0tJZSgpO1pJZSgpO1hJZSgpO1FJZSgpO0pJZSgpO2VOZSgpO3ROZSgpO2FOZSgpO3JOZSgpO3NOZSgpO2lOZSgpO29OZSgpO25OZSgpO2xOZSgpO2NOZSgpO2ROZSgpO3VOZSgpO3BOZSgpO2ZOZSgpO2hOZSgpO21OZSgpO2dOZSgpO2JOZSgpO3ZOZSgpO3hOZSgpO3lOZSgpO3dOZSgpO01OZSgpO2tOZSgpO1NOZSgpO3pOZSgpO0NOZSgpO19OZSgpO1ROZSgpO0xOZSgpOyROZSgpO0ROZSgpO0FOZSgpO1BOZSgpO0VOZSgpO0lOZSgpO05OZSgpO1JOZSgpO09OZSgpO0ZOZSgpO0JOZSgpO0hOZSgpO3FOZSgpO1ZOZSgpO2pOZSgpO1VOZSgpO1dOZSgpO0dOZSgpO1lOZSgpO0tOZSgpO1pOZSgpO1hOZSgpO1FOZSgpO0pOZSgpO2VSZSgpO3RSZSgpO2FSZSgpO3JSZSgpO3NSZSgpO2lSZSgpO29SZSgpO25SZSgpO2xSZSgpO2NSZSgpO2RSZSgpO3VSZSgpO3BSZSgpO2ZSZSgpO2hSZSgpO21SZSgpO2dSZSgpO2JSZSgpO3ZSZSgpO3hSZSgpO3lSZSgpO3dSZSgpO01SZSgpO2tSZSgpO1NSZSgpO3pSZSgpO0NSZSgpO19SZSgpO1RSZSgpO0xSZSgpOyRSZSgpO0RSZSgpO0FSZSgpO1BSZSgpO0VSZSgpO0lSZSgpO05SZSgpO1JSZSgpO09SZSgpO0ZSZSgpO0JSZSgpO0hSZSgpO3FSZSgpO1ZSZSgpO2pSZSgpO1VSZSgpO1dSZSgpO0dSZSgpO1lSZSgpO0tSZSgpO1pSZSgpO1hSZSgpO1FSZSgpO0pSZSgpO2VPZSgpO3RPZSgpO2FPZSgpO3JPZSgpO3NPZSgpO2lPZSgpO29PZSgpO25PZSgpO2xPZSgpO2NPZSgpO2RPZSgpO3VPZSgpO3BPZSgpO2ZPZSgpO2hPZSgpO21PZSgpO2dPZSgpO2JPZSgpO3ZPZSgpO3hPZSgpO3lPZSgpO3dPZSgpO01PZSgpO2tPZSgpO1NPZSgpO3pPZSgpO0NPZSgpO19PZSgpO1RPZSgpO0xPZSgpOyRPZSgpO0RPZSgpO0FPZSgpO1BPZSgpO0VPZSgpO0lPZSgpO05PZSgpO1JPZSgpO09PZSgpO0ZPZSgpO0JPZSgpO0hPZSgpO3FPZSgpO1ZPZSgpO2pPZSgpO1VPZSgpO1dPZSgpO0dPZSgpO1lPZSgpO0tPZSgpO1pPZSgpO1hPZSgpO1FPZSgpO0pPZSgpO2VGZSgpO3RGZSgpO2FGZSgpO3JGZSgpO3NGZSgpO2lGZSgpO29GZSgpO25GZSgpO2xGZSgpO2NGZSgpO2RGZSgpO3VGZSgpO3BGZSgpO2ZGZSgpO2hGZSgpO21GZSgpO2dGZSgpO2JGZSgpO3ZGZSgpO3hGZSgpO3lGZSgpO3dGZSgpO01GZSgpO2tGZSgpO1NGZSgpO3pGZSgpO0NGZSgpO19GZSgpO1RGZSgpO0xGZSgpOyRGZSgpO0RGZSgpO0FGZSgpO1BGZSgpO0VGZSgpO0lGZSgpO05GZSgpO1JGZSgpO09GZSgpO0ZGZSgpO0JGZSgpO0hGZSgpO3FGZSgpO1ZGZSgpO2pGZSgpO1VGZSgpO1dGZSgpO0dGZSgpO1lGZSgpO0tGZSgpO1pGZSgpO1hGZSgpO1FGZSgpO0pGZSgpO2VCZSgpO3RCZSgpO2FCZSgpO3JCZSgpO3NCZSgpO2lCZSgpO29CZSgpO25CZSgpO2xCZSgpO2NCZSgpO2RCZSgpO3VCZSgpO3BCZSgpO2ZCZSgpO2hCZSgpO21CZSgpO2dCZSgpO2JCZSgpO3ZCZSgpO3hCZSgpO3lCZSgpO3dCZSgpO01CZSgpO2tCZSgpO1NCZSgpO3pCZSgpO0NCZSgpO19CZSgpO1RCZSgpO0xCZSgpOyRCZSgpO0RCZSgpO0FCZSgpO1BCZSgpO0VCZSgpO0lCZSgpO05CZSgpO1JCZSgpO09CZSgpO0ZCZSgpO0JCZSgpO0hCZSgpO3FCZSgpO1ZCZSgpO2pCZSgpO1VCZSgpO1dCZSgpO0dCZSgpO1lCZSgpO0tCZSgpO1pCZSgpO1hCZSgpO1FCZSgpO0pCZSgpO2VIZSgpO3RIZSgpO2FIZSgpO3JIZSgpO3NIZSgpO2lIZSgpO29IZSgpO25IZSgpO2xIZSgpO2NIZSgpO2RIZSgpO3VIZSgpO3BIZSgpO2ZIZSgpO2hIZSgpO21IZSgpO2dIZSgpO2JIZSgpO3ZIZSgpO3hIZSgpO3lIZSgpO3dIZSgpO01IZSgpO2tIZSgpO1NIZSgpO3pIZSgpO0NIZSgpO19IZSgpO1RIZSgpO0xIZSgpOyRIZSgpO0RIZSgpO0FIZSgpO1BIZSgpO0VIZSgpO0lIZSgpO05IZSgpO1JIZSgpO09IZSgpO0ZIZSgpO0JIZSgpO0hIZSgpO3FIZSgpO1ZIZSgpO2pIZSgpO1VIZSgpO1dIZSgpO0dIZSgpO1lIZSgpO0tIZSgpO1pIZSgpO1hIZSgpO1FIZSgpO0pIZSgpO2VxZSgpO3RxZSgpO2FxZSgpO3JxZSgpO3NxZSgpO2lxZSgpO29xZSgpO25xZSgpO2xxZSgpO2NxZSgpO2RxZSgpO3VxZSgpO3BxZSgpO2ZxZSgpO2hxZSgpO21xZSgpO2dxZSgpO2JxZSgpO3ZxZSgpO3hxZSgpO3lxZSgpO3dxZSgpO01xZSgpO2txZSgpO1NxZSgpO3pxZSgpO0NxZSgpO19xZSgpO1RxZSgpO0xxZSgpOyRxZSgpO0RxZSgpO0FxZSgpO1BxZSgpO0VxZSgpO0lxZSgpO05xZSgpO1JxZSgpO09xZSgpO0ZxZSgpO0JxZSgpO0hxZSgpO3FxZSgpO1ZxZSgpO2pxZSgpO1VxZSgpO1dxZSgpO0dxZSgpO1lxZSgpO0txZSgpO1pxZSgpO1hxZSgpO1FxZSgpO0pxZSgpO2VWZSgpO3RWZSgpO2FWZSgpO3JWZSgpO3NWZSgpO2lWZSgpO29WZSgpO25WZSgpO2xWZSgpO2NWZSgpO2RWZSgpO3VWZSgpO3BWZSgpO2ZWZSgpO2hWZSgpO21WZSgpO2dWZSgpO2JWZSgpO3ZWZSgpO3hWZSgpO3lWZSgpO3dWZSgpO01WZSgpO2tWZSgpO1NWZSgpO3pWZSgpO0NWZSgpO19WZSgpO1RWZSgpO0xWZSgpOyRWZSgpO0RWZSgpO0FWZSgpO1BWZSgpO0VWZSgpO0lWZSgpO05WZSgpO1JWZSgpO09WZSgpO0ZWZSgpO0JWZSgpO0hWZSgpO3FWZSgpO1ZWZSgpO2pWZSgpO1VWZSgpO1dWZSgpO0dWZSgpO1lWZSgpO0tWZSgpO1pWZSgpO1hWZSgpO1FWZSgpO0pWZSgpO2VqZSgpO3RqZSgpO2FqZSgpO3JqZSgpO3NqZSgpO2lqZSgpO29qZSgpO25qZSgpO2xqZSgpO2NqZSgpO2RqZSgpO3VqZSgpO3BqZSgpO2ZqZSgpO2hqZSgpO21qZSgpO2dqZSgpO2JqZSgpO3ZqZSgpO3hqZSgpO3lqZSgpO3dqZSgpO01qZSgpO2tqZSgpO1NqZSgpO3pqZSgpO0NqZSgpO19qZSgpO1RqZSgpO0xqZSgpOyRqZSgpO0RqZSgpO0FqZSgpO1BqZSgpO0VqZSgpO0lqZSgpO05qZSgpO1JqZSgpO09qZSgpO0ZqZSgpO0JqZSgpO0hqZSgpO3FqZSgpO1ZqZSgpO2pqZSgpO1VqZSgpO1dqZSgpO0dqZSgpO1lqZSgpO0tqZSgpO1pqZSgpO1hqZSgpO1FqZSgpO0pqZSgpO2VVZSgpO3RVZSgpO2FVZSgpO3JVZSgpO3NVZSgpO2lVZSgpO29VZSgpO25VZSgpO2xVZSgpO2NVZSgpO2RVZSgpO3VVZSgpO3BVZSgpO2ZVZSgpO2hVZSgpO21VZSgpO2dVZSgpO2JVZSgpO3ZVZSgpO3hVZSgpO3lVZSgpO3dVZSgpO01VZSgpO2tVZSgpO1NVZSgpO3pVZSgpO0NVZSgpO19VZSgpO1RVZSgpO0xVZSgpOyRVZSgpO0RVZSgpO0FVZSgpO1BVZSgpO0VVZSgpO0lVZSgpO05VZSgpO1JVZSgpO09VZSgpO0ZVZSgpO0JVZSgpO0hVZSgpO3FVZSgpO1ZVZSgpO2pVZSgpO1VVZSgpO1dVZSgpO0dVZSgpO1lVZSgpO0tVZSgpO1pVZSgpO1hVZSgpO1FVZSgpO0pVZSgpO2VXZSgpO3RXZSgpO2FXZSgpO3JXZSgpO3NXZSgpO2lXZSgpO29XZSgpO25XZSgpO2xXZSgpO2NXZSgpO2RXZSgpO3VXZSgpO3BXZSgpO2ZXZSgpO2hXZSgpO21XZSgpO2dXZSgpO2JXZSgpO3ZXZSgpO3hXZSgpO3lXZSgpO3dXZSgpO01XZSgpO2tXZSgpO1NXZSgpO3pXZSgpO0NXZSgpO19XZSgpO1RXZSgpO0xXZSgpOyRXZSgpO0RXZSgpO0FXZSgpO1BXZSgpO0VXZSgpO0lXZSgpO05XZSgpO1JXZSgpO09XZSgpO0ZXZSgpO0JXZSgpO0hXZSgpO3FXZSgpO1ZXZSgpO2pXZSgpO1VXZSgpO1dXZSgpO0dXZSgpO1lXZSgpO0tXZSgpO1pXZSgpO1hXZSgpO1FXZSgpO0pXZSgpO2VHZSgpO3RHZSgpO2FHZSgpO3JHZSgpO3NHZSgpO2lHZSgpO29HZSgpO25HZSgpO2xHZSgpO2NHZSgpO2RHZSgpO3VHZSgpO3BHZSgpO2ZHZSgpO2hHZSgpO21HZSgpO2dHZSgpO2JHZSgpO3ZHZSgpO3hHZSgpO3lHZSgpO3dHZSgpO01HZSgpO2tHZSgpO1NHZSgpO3pHZSgpO0NHZSgpO19HZSgpO1RHZSgpO0xHZSgpOyRHZSgpO0RHZSgpO0FHZSgpO1BHZSgpO0VHZSgpO0lHZSgpO05HZSgpO1JHZSgpO09HZSgpO0ZHZSgpO0JHZSgpO0hHZSgpO3FHZSgpO1ZHZSgpO2pHZSgpO1VHZSgpO1dHZSgpO0dHZSgpO1lHZSgpO0tHZSgpO1pHZSgpO1hHZSgpO1FHZSgpO0pHZSgpO2VZZSgpO3RZZSgpO2FZZSgpO3JZZSgpO3NZZSgpO2lZZSgpO29ZZSgpO25ZZSgpO2xZZSgpO2NZZSgpO2RZZSgpO3VZZSgpO3BZZSgpO2ZZZSgpO2hZZT1zKCh7aWNvbnM6YT17fSxuYW1lQXR0cjplPSJkYXRhLWx1Y2lkZSIsYXR0cnM6dD17fSxyb290OnI9ZG9jdW1lbnQsaW5UZW1wbGF0ZXM6aX09e30pPT57aWYoIU9iamVjdC52YWx1ZXMoYSkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgUGxlYXNlIHByb3ZpZGUgYW4gaWNvbnMgb2JqZWN0LgpJZiB5b3Ugd2FudCB0byB1c2UgYWxsIHRoZSBpY29ucyB5b3UgY2FuIGltcG9ydCBpdCBsaWtlOgogXGBpbXBvcnQgeyBjcmVhdGVJY29ucywgaWNvbnMgfSBmcm9tICdsdWNpZGUnOwpsdWNpZGUuY3JlYXRlSWNvbnMoe2ljb25zfSk7XGBgKTtpZih0eXBlb2Ygcj4idSIpdGhyb3cgbmV3IEVycm9yKCJgY3JlYXRlSWNvbnMoKWAgb25seSB3b3JrcyBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIik7aWYoQXJyYXkuZnJvbShyLnF1ZXJ5U2VsZWN0b3JBbGwoYFske2V9XWApKS5mb3JFYWNoKG49PnF0ZShuLHtuYW1lQXR0cjplLGljb25zOmEsYXR0cnM6dH0pKSxpJiZBcnJheS5mcm9tKHIucXVlcnlTZWxlY3RvckFsbCgidGVtcGxhdGUiKSkuZm9yRWFjaChsPT5oWWUoe2ljb25zOmEsbmFtZUF0dHI6ZSxhdHRyczp0LHJvb3Q6bC5jb250ZW50LGluVGVtcGxhdGVzOml9KSksZT09PSJkYXRhLWx1Y2lkZSIpe2xldCBuPXIucXVlcnlTZWxlY3RvckFsbCgiW2ljb24tbmFtZV0iKTtuLmxlbmd0aD4wJiYoY29uc29sZS53YXJuKCJbTHVjaWRlXSBTb21lIGljb25zIHdlcmUgZm91bmQgd2l0aCB0aGUgbm93IGRlcHJlY2F0ZWQgaWNvbi1uYW1lIGF0dHJpYnV0ZS4gVGhlc2Ugd2lsbCBzdGlsbCBiZSByZXBsYWNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJ1dCB3aWxsIG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgaW4gdjEuMCBhbmQgeW91IHNob3VsZCBzd2l0Y2ggdG8gZGF0YS1sdWNpZGUiKSxBcnJheS5mcm9tKG4pLmZvckVhY2gobD0+cXRlKGwse25hbWVBdHRyOiJpY29uLW5hbWUiLGljb25zOmEsYXR0cnM6dH0pKSl9fSwiY3JlYXRlSWNvbnMiKX0pO3ZhciB3cmEsTXJhPWYoKCk9PntsZSgpO3ZhKCk7VnRlKCk7d3JhPXMoKCk9PntsZXQgYT1PYmplY3Qua2V5cyhqdGUuZmEpO2NvbnNvbGUubG9nKCJGaXJzdCBmZXcgTHVjaWRlIGtleXM6IixPYmplY3Qua2V5cyhxMikuc2xpY2UoMCw1KSk7bGV0IGU9T2JqZWN0LmtleXMocTIpLmZpbHRlcihvPT57bGV0IG49b1swXT09PW9bMF0udG9VcHBlckNhc2UoKSYmb1swXSE9PW9bMF0udG9Mb3dlckNhc2UoKSxsPXR5cGVvZiBxMltvXT09ImZ1bmN0aW9uIixkPSFbImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVJY29ucyIsImRlZmF1bHQiXS5pbmNsdWRlcyhvKTtyZXR1cm4gbCYmbiYmZH0pLm1hcChvPT5vLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK28uc2xpY2UoMSkpO2lmKGNvbnNvbGUubG9nKGBGb3VuZCAke2UubGVuZ3RofSBMdWNpZGUgaWNvbnNgKSxlLmxlbmd0aD09PTAmJihjb25zb2xlLmxvZygiVHJ5aW5nIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGZpbmQgTHVjaWRlIGljb25zIikseWYpKXtsZXQgbz15Znx8e307ZS5wdXNoKC4uLk9iamVjdC5rZXlzKG8pKSxjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gaWNvbnMgdmlhIGFsdGVybmF0aXZlIG1ldGhvZGApfWxldCB0PXMoKCk9PntsZXQgbz1hLm1hcChjPT5gZmE6JHtjfWApLG49ZS5tYXAoYz0+YGx1Y2lkZToke2N9YCksbD1bLi4ubywuLi5uXSxkPWwuam9pbihgCmApO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGQpLnRoZW4oKCk9PntsZXQgcD13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldCx1PXAudGV4dENvbnRlbnQ7cC50ZXh0Q29udGVudD1gXHUyNzEzIENvcGllZCAke2wubGVuZ3RofSBpY29uIG5hbWVzIWAsc2V0VGltZW91dCgoKT0+e3AudGV4dENvbnRlbnQ9dX0sMmUzKX0pfSwiY29weUFsbEljb25OYW1lcyIpLHI9cyhvPT57bGV0IG49by50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksbD1vLnRhcmdldC5jbG9zZXN0KCIuZGVtb0NvbnRhaW5lciIpO2wucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXIiKS5mb3JFYWNoKGM9PntsZXQgcD1jLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7bj09PSIifHxwJiZwLmluY2x1ZGVzKG4pP2MuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Yy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLGwucXVlcnlTZWxlY3RvckFsbCgiLnNlY3Rpb24tY29udGFpbmVyIikuZm9yRWFjaChjPT57bGV0IHA9Yy5xdWVyeVNlbGVjdG9yQWxsKCIuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbikiKS5sZW5ndGgsdT1jLnF1ZXJ5U2VsZWN0b3IoIi5pY29uLWNvdW50Iik7aWYodSl7bGV0IG09Yy5jbGFzc0xpc3QuY29udGFpbnMoImZhLXNlY3Rpb24iKT9hLmxlbmd0aDplLmxlbmd0aDt1LnRleHRDb250ZW50PXA9PT1tP2Ake219IGljb25zYDpgJHtwfSBvZiAke219IGljb25zYH19KX0sInNlYXJjaEljb25zIiksaT1zKChvLG4pPT57bGV0IGw9YCR7bn06JHtvfWA7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobCkudGhlbigoKT0+e2xldCBwPXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRvb2x0aXAiKTtwJiYocC50ZXh0Q29udGVudD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e3AudGV4dENvbnRlbnQ9IkNsaWNrIHRvIGNvcHkifSwyZTMpKX0pfSwiY29weUljb25OYW1lIik7cmV0dXJuIHdgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBiYWNrZ3JvdW5kOiAjMTExMTExOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuc2VhcmNoLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoIHsKICAgICAgZmxleDogMTsKICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIAogICAgI2ljb25TZWFyY2g6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7CiAgICB9CiAgICAKICAgIC5jb3B5LWFsbC1idXR0b24gewogICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogI2M0MDAxYjsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgZGVlcy1pY29uIHsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICB9CgogICAgLmljb25Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgICB9CgogICAgLmljb25OYW1lIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiAjY2NjOwogICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAuYXBpLW5vdGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjZTQwMDJiOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBwYWRkaW5nOiAxMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQwMDJiOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI4LCAwLCA0MywgMC4xKTsKICAgIH0KICAgIAogICAgLmljb24tY291bnQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjODg4OwogICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAgIAogICAgLmljb25zLWdyaWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIAogICAgLmNvcHktdG9vbHRpcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHRvcDogLTMwcHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIC5jb3B5LXRvb2x0aXAgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KICAgIAogICAgLmhpZGRlbiB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaWNvblNlYXJjaCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBpY29ucy4uLiIgQGlucHV0PSR7cn0+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYWxsLWJ1dHRvbiIgQGNsaWNrPSR7dH0+8J+TiyBDb3B5IEFsbCBJY29uIE5hbWVzPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iYXBpLW5vdGUiPgogICAgICBOZXcgQVBJOiBVc2UgPGNvZGU+aWNvbj0iZmE6aWNvbk5hbWUiPC9jb2RlPiBvciA8Y29kZT5pY29uPSJsdWNpZGU6aWNvbk5hbWUiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIAogICAgICBDbGljayBhbnkgaWNvbiB0byBjb3B5IGl0cyBuZXcgZm9ybWF0IHRvIGNsaXBib2FyZC4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBmYS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgRm9udEF3ZXNvbWUgSWNvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1jb3VudCI+JHthLmxlbmd0aH0gaWNvbnM8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpY29ucy1ncmlkIj4KICAgICAgICAke2EubWFwKG89PntsZXQgbj1gZmE6JHtvfWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBmYS1pY29uIiBkYXRhLW5hbWU9JHtvLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5pKG8sImZhIil9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke259IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uTmFtZSI+ZmE6JHtvfTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIGx1Y2lkZS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgTHVjaWRlIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7ZS5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHtlLm1hcChvPT57bGV0IG49YGx1Y2lkZToke299YDtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uQ29udGFpbmVyIGx1Y2lkZS1pY29uIiBkYXRhLW5hbWU9JHtvLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5pKG8sImx1Y2lkZSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtufSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmx1Y2lkZToke299PC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10b29sdGlwIj5DbGljayB0byBjb3B5PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgYH0sImRlbW9GdW5jIil9KTtmdW5jdGlvbiBDJGEoKXtKOC5zaXplPmtyYSYmQXJyYXkuZnJvbShKOC5rZXlzKCkpLnNsaWNlKDAsa3JhLzUpLmZvckVhY2goZT0+SjguZGVsZXRlKGUpKX12YXIgUTgsXzEseiRhLGp0ZSxKOCxrcmEsU3JhLHZhPWYoKCk9PntsZSgpO2VhKCk7UWUoKTtROXQoKTtyQ3QoKTtNTHQoKTtwcmEoKTtNcmEoKTtWdGUoKTtWdGUoKTtROD1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sXzE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHokYT17YXJyb3dSaWdodDpJdGUsYXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTp1dixiZWxsOmt0ZSxidWc6T3RlLGJ1aWxkaW5nOkF0ZSxjYXJldExlZnQ6Q3RlLGNhcmV0UmlnaHQ6TXRlLGNoZWNrOkV0ZSxjaXJjbGVJbmZvOmZ2LGNpcmNsZUNoZWNrOkliLGNpcmNsZUNoZWNrU29saWQ6bnYsY2lyY2xlWG1hcms6VTgsY2lyY2xlWG1hcmtTb2xpZDpaOCxjbG9ja1JvdGF0ZUxlZnQ6bHYsY29weTpTZWUsY29weVNvbGlkOkZ0ZSxkZXNrdG9wOnB2LGV5ZTp6dGUsZXllU2xhc2g6QnRlLGZpbGVJbnZvaWNlOk50ZSxmaWxlSW52b2ljZURvbGxlcjpSdGUsZ2VhcjppdixncmlwOlg4LG1hZ25pZnlpbmdHbGFzczphdixtZXNzYWdlOlBiLG1lc3NhZ2VTb2xpZDpldixtb25leUNoZWNrRG9sbGFyOmR2LG11Z0hvdDpIdGUsbWludXM6SmIsbmV0d29ya1dpcmVkOiR0ZSxwYXBlcmNsaXA6UHRlLHBhc3RlOkFiLHBhc3RlU29saWQ6UWIscGVuVG9TcXVhcmU6cnYscGx1czpjdixyZWNlaXB0Ol90ZSxyc3M6dHYsc2hhcmU6c3Ysc3VuOmtlZSxzdW5Tb2xpZDpMdGUsdGVybWluYWw6RHRlLHRyYXNoOmh2LHRyYXNoU29saWQ6aHYsdHJhc2hDYW46RWIsdHJhc2hDYW5Tb2xpZDpvdix1c2VyczpUdGUsd2FsbGV0OlN0ZSx4bWFyazp0NCxmYWNlYm9vazpkZWUsZ29vZ2xlOmxlZSxpbnN0YWdyYW06ZmVlLGxpbmtlZGluOmNlZSxtZWRpdW06TGIsc2xhY2s6dWVlLHRpa3RvazpwZWUsdHdpdHRlcjpoZWV9LGp0ZT17ZmE6eiRhfSxKOD1uZXcgTWFwLGtyYT01MDA7cyhDJGEsImxpbWl0Q2FjaGVTaXplIik7U3JhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1pY29uIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNJY29uIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOnMoej0+eiwiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOnMoej0+eiwidG9BdHRyaWJ1dGUiKX19KV0sZD1bJCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOnMoej0+eiwiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOnMoej0+eiwidG9BdHRyaWJ1dGUiKX19KV0sdT1bJCh7dHlwZTpOdW1iZXJ9KV0seD1bJCh7dHlwZTpTdHJpbmd9KV0seT1bJCh7dHlwZTpOdW1iZXJ9KV0sUTgodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uRkEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+Imljb25GQSJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56Lmljb25GQSwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6Lmljb25GQT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG4sbCksUTgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJpY29uImluIHosImhhcyIpLGdldDpzKHo9PnouaWNvbiwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6Lmljb249T30sInNldCIpfSxtZXRhZGF0YTpffSxjLHApLFE4KHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+Imljb25TaXplImluIHosImhhcyIpLGdldDpzKHo9PnouaWNvblNpemUsImdldCIpLHNldDpzKCh6LE8pPT57ei5pY29uU2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG0sdiksUTgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iY29sb3IiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5jb2xvciwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmNvbG9yPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxROCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cm9rZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzdHJva2VXaWR0aCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnN0cm9rZVdpZHRoLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouc3Ryb2tlV2lkdGg9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLEMpLFE4KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsdCksTj1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89d3JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPV8xKHRoaXMsbix2b2lkIDApO2dldCBpY29uRkEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaWNvbkZBKF8pe3RoaXMuI2U9X30jdD0oXzEodGhpcyxsKSxfMSh0aGlzLGMsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgaWNvbihfKXt0aGlzLiN0PV99I2E9KF8xKHRoaXMscCksXzEodGhpcyxtLHZvaWQgMCkpO2dldCBpY29uU2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBpY29uU2l6ZShfKXt0aGlzLiNhPV99I3I9KF8xKHRoaXMsdiksXzEodGhpcyxiLCJjdXJyZW50Q29sb3IiKSk7Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbG9yKF8pe3RoaXMuI3I9X30jcz0oXzEodGhpcyxnKSxfMSh0aGlzLGssMikpO2dldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCBzdHJva2VXaWR0aChfKXt0aGlzLiNzPV99bGFzdEljb249KF8xKHRoaXMsQyksbnVsbCk7bGFzdEljb25TaXplPW51bGw7bGFzdENvbG9yPW51bGw7bGFzdFN0cm9rZVdpZHRoPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRyLnNldHVwKCl9Z2V0RWZmZWN0aXZlSWNvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuaWNvbkZBP3RoaXMuaWNvbkZBLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT90aGlzLmljb25GQTpgZmE6JHt0aGlzLmljb25GQX1gOm51bGx9cGFyc2VJY29uU3RyaW5nKF8pe2xldCB6PV8udG9Mb3dlckNhc2UoKTtyZXR1cm4gei5zdGFydHNXaXRoKCJmYToiKT97dHlwZToiZmEiLG5hbWU6Xy5zdWJzdHJpbmcoMyl9Onouc3RhcnRzV2l0aCgibHVjaWRlOiIpP3t0eXBlOiJsdWNpZGUiLG5hbWU6Xy5zdWJzdHJpbmcoNyl9Ont0eXBlOiJsdWNpZGUiLG5hbWU6X319cmVuZGVyTHVjaWRlSWNvbihfKXtsZXQgej1gbHVjaWRlOiR7X306JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO2lmKEo4Lmhhcyh6KSlyZXR1cm4gSjguZ2V0KHopfHwiIjt0cnl7bGV0IE89Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpO2lmKCFxMltPXSlyZXR1cm4gY29uc29sZS53YXJuKGBMdWNpZGUgaWNvbiAnJHtPfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApLCIiO2xldCBUPWE0KHEyW09dLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoIVQpcmV0dXJuIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7T31gKSwiIjtsZXQgUD1ULm91dGVySFRNTDtyZXR1cm4gSjguc2V0KHosUCksQyRhKCksUH1jYXRjaChPKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uICR7X306YCxPKSxgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIke3RoaXMuaWNvblNpemV9IiBoZWlnaHQ9IiR7dGhpcy5pY29uU2l6ZX0iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIke3RoaXMuY29sb3J9IiBzdHJva2Utd2lkdGg9IiR7dGhpcy5zdHJva2VXaWR0aH0iIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtc2l6ZT0iNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgZmlsbD0iJHt0aGlzLmNvbG9yfSI+JHtffTwvdGV4dD4KICAgICAgPC9zdmc+YH19c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RyLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IF89dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PV8mJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249Xyx0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISghenx8IV8pKXRyeXtsZXR7dHlwZTpPLG5hbWU6VH09dGhpcy5wYXJzZUljb25TdHJpbmcoXyk7aWYoTz09PSJsdWNpZGUiKXt6LmlubmVySFRNTD0iIjt0cnl7bGV0IFA9VC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStULnNsaWNlKDEpO2lmKHEyW1BdKXtsZXQgQj1hNChxMltQXSx7Y29sb3I6dGhpcy5jb2xvcixzaXplOnRoaXMuaWNvblNpemUsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aH0pO2lmKEIpe3ouYXBwZW5kQ2hpbGQoQik7cmV0dXJufX10aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgZWxlbWVudCBmb3IgJHtQfWApfWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyBMdWNpZGUgaWNvbjoiLFApO2xldCBCPXRoaXMucmVuZGVyTHVjaWRlSWNvbihUKTtCJiYoei5pbm5lckhUTUw9Qil9fWVsc2V7bGV0IFA9anRlLmZhW1RdO2lmKFApe2xldCBCPXh1ZShQKS5odG1sWzBdO3ouaW5uZXJIVE1MPUJ9ZWxzZSBjb25zb2xlLndhcm4oYEZvbnRBd2Vzb21lIGljb24gbm90IGZvdW5kOiAke1R9YCl9fWNhdGNoKE8pe2NvbnNvbGUuZXJyb3IoYEVycm9yIHVwZGF0aW5nIGljb24gJHtffTpgLE8pfX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5sYXN0SWNvbj1udWxsLHRoaXMubGFzdEljb25TaXplPW51bGwsdGhpcy5sYXN0Q29sb3I9bnVsbCx0aGlzLmxhc3RTdHJva2VXaWR0aD1udWxsfXN0YXRpY3tfMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgenJhLG1ZZSx0YSxYcj1mKCgpPT57V3MoKTtiN3QoKTtsZSgpO2VhKCk7TTEoKTtHaSgpO3ZhKCk7UWUoKTt6cmE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LG1ZZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sdGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWNvbnRleHRtZW51IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNDb250ZXh0bWVudSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0senJhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHA9PiJtZW51SXRlbXMiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5tZW51SXRlbXMsImdldCIpLHNldDpzKChwLHUpPT57cC5tZW51SXRlbXM9dX0sInNldCIpfSxtZXRhZGF0YTpjfSxuLGwpLHpyYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLHQpLGQ9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPWc3dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMTtzdGF0aWMgYWNjdW11bGF0ZWRNZW51SXRlbXM9W107c3RhdGljIGluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixjPT57aWYodGhpcy5jb250ZXh0TWVudURlYWN0aXZhdGVkKXJldHVybjtjLnByZXZlbnREZWZhdWx0KCksZC5hY2N1bXVsYXRlZE1lbnVJdGVtcz1bXTtsZXQgcD1jLmNvbXBvc2VkUGF0aCgpO2ZvcihsZXQgdSBvZiBwKWlmKHUuZ2V0Q29udGV4dE1lbnVJdGVtcyl7bGV0IG09dS5nZXRDb250ZXh0TWVudUl0ZW1zKCk7bSYmbS5sZW5ndGg+MCYmKGQuYWNjdW11bGF0ZWRNZW51SXRlbXMubGVuZ3RoPjAmJmQuYWNjdW11bGF0ZWRNZW51SXRlbXMucHVzaCh7ZGl2aWRlcjohMH0pLGQuYWNjdW11bGF0ZWRNZW51SXRlbXMucHVzaCguLi5tKSl9ZC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhjLGQuYWNjdW11bGF0ZWRNZW51SXRlbXMpfSl9c3RhdGljIGFzeW5jIG9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGMscCl7aWYodGhpcy5jb250ZXh0TWVudURlYWN0aXZhdGVkKXJldHVybjtjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgdT1uZXcgZDt1LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdS5zdHlsZS56SW5kZXg9U3RyaW5nKFBzLm92ZXJsYXkuY29udGV4dE1lbnUpLHUuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpIix1Lm1lbnVJdGVtcz1wLHUud2luZG93TGF5ZXI9YXdhaXQgR3MuY3JlYXRlQW5kU2hvdygpLHUud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jIHk9Pnt5LnRhcmdldC5jbG9zZXN0KCJkZWVzLWNvbnRleHRtZW51Iil8fGF3YWl0IHUuZGVzdHJveSgpfSksZG9jdW1lbnQuYm9keS5hcHBlbmQodSksYXdhaXQgSHQuc21hcnRkZWxheS5kZWxheUZvcigwKTtsZXQgbT11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9d2luZG93LmlubmVyV2lkdGgseD13aW5kb3cuaW5uZXJIZWlnaHQsYj1jLmNsaWVudFksZz1jLmNsaWVudFg7ZyttLndpZHRoPnYmJihnPXYtbS53aWR0aC0xMCksYittLmhlaWdodD54JiYoYj14LW0uaGVpZ2h0LTEwKSxnPDEwJiYoZz0xMCksYjwxMCYmKGI9MTApLHUuc3R5bGUudG9wPWAke2J9cHhgLHUuc3R5bGUubGVmdD1gJHtnfXB4YCx1LnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0idG9wIGxlZnQiLGF3YWl0IEh0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdS5zdHlsZS5vcGFjaXR5PSIxIix1LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMSkgdHJhbnNsYXRlWSgwKSJ9I2U9bVllKHRoaXMsbixbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMoYyl7dGhpcy4jZT1jfXdpbmRvd0xheWVyPW1ZZSh0aGlzLGwpO3N1Ym1lbnU9bnVsbDtzdWJtZW51VGltZW91dD1udWxsO3BhcmVudE1lbnU9bnVsbDtpc0Rlc3Ryb3lpbmc9ITE7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudGFiSW5kZXg9MH1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyODBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNjY2MiKX07CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubWVudWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1lbnVpdGVtLmhhcy1zdWJtZW51OjphZnRlciB7CiAgICAgICAgY29udGVudDogJ+KAuic7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtOmFjdGl2ZTpub3QoLmhhcy1zdWJtZW51KSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudWl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudWl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtLXNob3J0Y3V0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoYz0+e2lmKCJkaXZpZGVyImluIGMmJmMuZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51LWRpdmlkZXIiPjwvZGl2PmA7bGV0IHA9Yyx1PXAuc3VibWVudSYmcC5zdWJtZW51Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJtZW51aXRlbSAke3AuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0gJHt1PyJoYXMtc3VibWVudSI6IiJ9IiAKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+IXAuZGlzYWJsZWQmJiF1JiZ0aGlzLmhhbmRsZUNsaWNrKHApfQogICAgICAgICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuaGFuZGxlTWVudUl0ZW1Ib3ZlcihwLHUpfQogICAgICAgICAgICAgIEBtb3VzZWxlYXZlPSR7KCk9PnRoaXMuaGFuZGxlTWVudUl0ZW1MZWF2ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHtwLmljb25OYW1lP3dgCiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3AuaWNvbk5hbWV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS10ZXh0Ij4ke3AubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgJHtwLnNob3J0Y3V0JiYhdT93YAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXNob3J0Y3V0Ij4ke3Auc2hvcnRjdXR9PC9zcGFuPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0pfQogICAgICAgICR7dGhpcy5tZW51SXRlbXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZW51aXRlbSIgQGNsaWNrPSR7KCk9PntkLmNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITAsdGhpcy5kZXN0cm95KCl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSJsdWNpZGU6eCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPkFsbG93IG5hdGl2ZSBjb250ZXh0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOndgYH0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuZm9jdXMoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5ZG93bil9aGFuZGxlS2V5ZG93bj1zKGM9PntsZXQgcD1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW06bm90KC5kaXNhYmxlZCkiKSksdT1wLmZpbmRJbmRleChtPT5tLm1hdGNoZXMoIjpob3ZlciIpKTtzd2l0Y2goYy5rZXkpe2Nhc2UiQXJyb3dEb3duIjpjLnByZXZlbnREZWZhdWx0KCk7bGV0IG09dSsxPHAubGVuZ3RoP3UrMTowO3BbbV0uZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgibW91c2VlbnRlciIpKTticmVhaztjYXNlIkFycm93VXAiOmMucHJldmVudERlZmF1bHQoKTtsZXQgdj11LTE+PTA/dS0xOnAubGVuZ3RoLTE7cFt2XS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiRW50ZXIiOmMucHJldmVudERlZmF1bHQoKSx1Pj0wJiZwW3VdLmNsaWNrKCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmMucHJldmVudERlZmF1bHQoKSx0aGlzLmRlc3Ryb3koKTticmVha319LCJoYW5kbGVLZXlkb3duIik7YXN5bmMgaGFuZGxlQ2xpY2soYyl7Yy5hY3Rpb24oKSxhd2FpdCB0aGlzLmRlc3Ryb3lBbGwoKX1hc3luYyBoYW5kbGVNZW51SXRlbUhvdmVyKGMscCl7dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpLHRoaXMuc3VibWVudSYmYXdhaXQgdGhpcy5oaWRlU3VibWVudSgpLHAmJmMuc3VibWVudSYmKHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Ym1lbnUoYyl9LDIwMCkpfWhhbmRsZU1lbnVJdGVtTGVhdmUoKXt0aGlzLnN1Ym1lbnVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zdWJtZW51JiYhdGhpcy5zdWJtZW51Lm1hdGNoZXMoIjpob3ZlciIpJiZ0aGlzLmhpZGVTdWJtZW51KCl9LDMwMCl9YXN5bmMgc2hvd1N1Ym1lbnUoYyl7aWYoIWMuc3VibWVudXx8Yy5zdWJtZW51Lmxlbmd0aD09PTApcmV0dXJuO2xldCB1PUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbSIpKS5maW5kKGs9PmsucXVlcnlTZWxlY3RvcigiLm1lbnVpdGVtLXRleHQiKT8udGV4dENvbnRlbnQ9PT1jLm5hbWUpO2lmKCF1KXJldHVybjt0aGlzLnN1Ym1lbnU9bmV3IGQsdGhpcy5zdWJtZW51Lm1lbnVJdGVtcz1jLnN1Ym1lbnUsdGhpcy5zdWJtZW51LnBhcmVudE1lbnU9dGhpcyx0aGlzLnN1Ym1lbnUuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN1Ym1lbnUuc3R5bGUuekluZGV4PVN0cmluZyhwYXJzZUludCh0aGlzLnN0eWxlLnpJbmRleCkrMSksdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3VibWVudS5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIixkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLnN1Ym1lbnUpLGF3YWl0IEh0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IG09dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseD10aGlzLnN1Ym1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYj13aW5kb3cuaW5uZXJXaWR0aCxnPXYucmlnaHQtNCx5PW0udG9wO2creC53aWR0aD5iLTEwJiYoZz12LmxlZnQteC53aWR0aCs0KSx5K3guaGVpZ2h0PndpbmRvdy5pbm5lckhlaWdodC0xMCYmKHk9d2luZG93LmlubmVySGVpZ2h0LXguaGVpZ2h0LTEwKSx0aGlzLnN1Ym1lbnUuc3R5bGUubGVmdD1gJHtnfXB4YCx0aGlzLnN1Ym1lbnUuc3R5bGUudG9wPWAke3l9cHhgLGF3YWl0IEh0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHk9IjEiLHRoaXMuc3VibWVudS5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIix0aGlzLnN1Ym1lbnUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsKCk9Pnt0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCl9KSx0aGlzLnN1Ym1lbnUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9Pnt0aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX0pfWFzeW5jIGhpZGVTdWJtZW51KCl7dGhpcy5zdWJtZW51JiYoYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKSx0aGlzLnN1Ym1lbnU9bnVsbCl9YXN5bmMgZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95aW5nfHwodGhpcy5pc0Rlc3Ryb3lpbmc9ITAsdGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpLHRoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpLHRoaXMud2luZG93TGF5ZXImJiF0aGlzLnBhcmVudE1lbnUmJnRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpIixhd2FpdCBIdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcykpfWFzeW5jIGRlc3Ryb3lBbGwoKXtsZXQgYz10aGlzO2Zvcig7Yy5wYXJlbnRNZW51OyljPWMucGFyZW50TWVudTthd2FpdCBjLmRlc3Ryb3koKX1zdGF0aWN7bVllKHIsdCl9fTtyZXR1cm4gZD1yfSkoKTt0YS5pbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKX0pO3ZhciBDcmEsZ1llLF8kYSxfcmE9ZigoKT0+e2xlKCk7Q3JhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxnWWU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LF8kYT0oKCk9PntsZXQgYT1baWUoImRlZXMtZGVtb3dyYXBwZXIiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0RlbW9XcmFwcGVyIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7YXR0cmlidXRlOiExfSldLENyYSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ1bkFmdGVyUmVuZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHA9PiJydW5BZnRlclJlbmRlciJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLnJ1bkFmdGVyUmVuZGVyLCJnZXQiKSxzZXQ6cygocCx1KT0+e3AucnVuQWZ0ZXJSZW5kZXI9dX0sInNldCIpfSxtZXRhZGF0YTpjfSxuLGwpLENyYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLHQpLGQ9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfSNlPWdZZSh0aGlzLG4sdm9pZCAwKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcnVuQWZ0ZXJSZW5kZXIoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W1hgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShjPT5zZXRUaW1lb3V0KGMsNTApKSx0aGlzLmNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLnJ1bkFmdGVyUmVuZGVyKXRyeXthd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHJ1bkFmdGVyUmVuZGVyOiIsYyl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxnWWUodGhpcyxsKX1zdGF0aWN7Z1llKHIsdCl9fTtyZXR1cm4gZD1yfSkoKX0pO3ZhciBOYT1mKCgpPT57X3JhKCl9KTt2YXIgVHJhLExyYT1mKCgpPT57bGUoKTtOYSgpO1RyYT1zKCgpPT57bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpO3JldHVybiBzZXRUaW1lb3V0KCgpPT57YS5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZTonY3JlYXRlZCBhIG5ldyBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9LHt0eXBlOiJsb2dvdXQiLHVzZXI6IkFsaWNlIEJyb3duIixtZXNzYWdlOiJsb2dnZWQgb3V0In0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToiY3JlYXRlZCBpbnZvaWNlICMxMjM0In1dKSxhLmVudHJpZXMkLnN1YnNjcmliZShlPT57Y29uc29sZS5sb2coIkFjdGl2aXR5IGxvZyB1cGRhdGVkOiIsZS5sZW5ndGgsImVudHJpZXMiKX0pfSwxMDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgJHthfQogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBVdGUsd2YsJHJhLGJZZT1mKCgpPT57bGUoKTtlYSgpO1hyKCk7dmEoKTtMcmEoKTtRZSgpO1V0ZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sd2Y9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LCRyYT0oKCk9PntsZXQgYT1baWUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0FwcHVpQWN0aXZpdHlsb2ciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtLKCldLGQ9W0soKV0sdT1bSygpXSxVdGUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJlbnRyaWVzImluIGcsImhhcyIpLGdldDpzKGc9PmcuZW50cmllcywiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmVudHJpZXM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLFV0ZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJzZWFyY2hRdWVyeSJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuc2VhcmNoUXVlcnk9eX0sInNldCIpfSxtZXRhZGF0YTpifSxjLHApLFV0ZSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlckNyaXRlcmlhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJmaWx0ZXJDcml0ZXJpYSJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLmZpbHRlckNyaXRlcmlhLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuZmlsdGVyQ3JpdGVyaWE9eX0sInNldCIpfSxtZXRhZGF0YTpifSxtLHYpLFV0ZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLHg9cj1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPVRyYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXdmKHRoaXMsbixbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyhiKXt0aGlzLiNlPWJ9I3Q9KHdmKHRoaXMsbCksd2YodGhpcyxjLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KGIpe3RoaXMuI3Q9Yn0jYT0od2YodGhpcyxwKSx3Zih0aGlzLG0se30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyQ3JpdGVyaWEoYil7dGhpcy4jYT1ifWVudHJpZXMkPSh3Zih0aGlzLHYpLG5ldyBIdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGFsaWduZWQgd2l0aCBzZWNvbmRhcnkgbWVudSAqLwogICAgICAgIC0tYWN0aXZpdHlsb2ctYmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnOiAke2guYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1tdXRlZDogJHtoLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlOiAke2guYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ib3JkZXI6ICR7aC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWhvdmVyOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1hY2NlbnQ6ICR7aC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKCiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgd2l0aCBzdHJlYW1pbmcgaW5kaWNhdG9yICovCiAgICAgIC50b3BiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRvcGJhciAuaGVhZGluZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgLmRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH0KICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0KICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgY29udGFpbmVyICovCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDhweDsKICAgICAgICBib3R0b206IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTNhM2EzIiwiIzUyNTI1MiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBEYXRlIHNlcGFyYXRvciAtIHdhcm0gdGF1cGUgc3R5bGluZyAqLwogICAgICAuZGF0ZS1zZXBhcmF0b3IgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWFjY2VudCk7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGVudHJ5IC0gbW9kZXJuIHN0YWNrZWQgbGF5b3V0ICovCiAgICAgIC5hY3Rpdml0eWVudHJ5IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFjdGl2aXR5ZW50cnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ2luIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wOCkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dvdXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNjgsIDg1LCAyNDcsIDAuMDgpIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkzMzNlYSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnVwZGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjUxLCAxNDYsIDYwLCAwLjA4KSIsInJnYmEoMjUxLCAxNDYsIDYwLCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5kZWxldGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4wOCkiLCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzQ3NTU2OSIsIiM5NGEzYjgiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXVzZXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogU2VhcmNoIGJveCAtIHJlZmluZWQgc3R5bGluZyAqLwogICAgICAuc2VhcmNoYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCAzNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGI9dGhpcy5nZXRGaWx0ZXJlZEVudHJpZXMoKSxnPXRoaXMuZ3JvdXBFbnRyaWVzQnlEYXRlKGIpO3JldHVybiB3YAogICAgICAke3RyLnN0eWxlc30KICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj5BY3Rpdml0eSBMb2c8L2Rpdj4KICAgICAgICAgICR7Yi5sZW5ndGg+MD93YDxkaXYgY2xhc3M9ImxpdmUtaW5kaWNhdG9yIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+TGl2ZTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHlDb250YWluZXIiPgogICAgICAgICAgJHtiLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gYWN0aXZpdHkgZW50cmllczwvZGl2PmA6Zy5tYXAoeT0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1zZXBhcmF0b3IiPiR7eS5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgICAgICAgJHt5LmVudHJpZXMubWFwKGs9PnRoaXMucmVuZGVyQWN0aXZpdHlFbnRyeShrKSl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJzZWFyY2gtaWNvbiIgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYWN0aXZpdGllcywgdXNlcnMuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVNlYXJjaElucHV0fQogICAgICAgICAgICAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpdml0eUVudHJ5KGIpe2xldCBnPWIudGltZXN0YW1wfHxuZXcgRGF0ZSx5PXRoaXMuZm9ybWF0VGltZShnKSxrPWIuaWNvbk5hbWV8fHRoaXMuZ2V0SWNvbkZvclR5cGUoYi50eXBlKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpdml0eWVudHJ5IgogICAgICAgIEBjb250ZXh0bWVudT0ke0M9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoQyxiKX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWljb24gJHtiLnR5cGV9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtrfT48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS11c2VyIj4ke2IudXNlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1zZXBhcmF0b3IiPsK3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZXN0YW1wIj4ke3l9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1tZXNzYWdlIj4ke2IubWVzc2FnZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZChiKXtsZXQgZz17Li4uYixpZDpiLmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6Yi50aW1lc3RhbXB8fG5ldyBEYXRlfTt0aGlzLmVudHJpZXM9W2csLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1hZGRNYW55KGIpe2xldCBnPWIubWFwKHk9Pih7Li4ueSxpZDp5LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6eS50aW1lc3RhbXB8fG5ldyBEYXRlfSkpO3RoaXMuZW50cmllcz1bLi4uZy5yZXZlcnNlKCksLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1jbGVhcigpe3RoaXMuZW50cmllcz1bXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1nZXRFbnRyaWVzKCl7cmV0dXJuWy4uLnRoaXMuZW50cmllc119ZmlsdGVyKGIpe3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKGc9PiEoYi51c2VyJiZnLnVzZXIhPT1iLnVzZXJ8fGIudHlwZSYmZy50eXBlIT09Yi50eXBlKSl9c2VhcmNoKGIpe2xldCBnPWIudG9Mb3dlckNhc2UoKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcih5PT55Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhnKXx8eS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZykpfWdlbmVyYXRlSWQoKXtyZXR1cm5gYWN0aXZpdHktJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9Z2V0RmlsdGVyZWRFbnRyaWVzKCl7bGV0IGI9dGhpcy5lbnRyaWVzO2lmKHRoaXMuc2VhcmNoUXVlcnkpe2xldCBnPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtiPWIuZmlsdGVyKHk9PnkubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGcpfHx5LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhnKSl9cmV0dXJuKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSYmKGI9Yi5maWx0ZXIoZz0+ISh0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXImJmcudXNlciE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlJiZnLnR5cGUhPT10aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpKSksYn1ncm91cEVudHJpZXNCeURhdGUoYil7bGV0IGc9bmV3IE1hcCx5PW5ldyBEYXRlLGs9bmV3IERhdGUoeSk7ay5zZXREYXRlKGsuZ2V0RGF0ZSgpLTEpO2ZvcihsZXQgQyBvZiBiKXtsZXQgTj1DLnRpbWVzdGFtcHx8bmV3IERhdGUsXzt0aGlzLmlzU2FtZURheShOLHkpP189IlRvZGF5Ijp0aGlzLmlzU2FtZURheShOLGspP189Illlc3RlcmRheSI6Xz1OLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHttb250aDoic2hvcnQiLGRheToibnVtZXJpYyIseWVhcjpOLmdldEZ1bGxZZWFyKCkhPT15LmdldEZ1bGxZZWFyKCk/Im51bWVyaWMiOnZvaWQgMH0pLGcuaGFzKF8pfHxnLnNldChfLFtdKSxnLmdldChfKS5wdXNoKEMpfXJldHVybiBBcnJheS5mcm9tKGcuZW50cmllcygpKS5tYXAoKFtDLE5dKT0+KHtsYWJlbDpDLGVudHJpZXM6Tn0pKX1pc1NhbWVEYXkoYixnKXtyZXR1cm4gYi5nZXRGdWxsWWVhcigpPT09Zy5nZXRGdWxsWWVhcigpJiZiLmdldE1vbnRoKCk9PT1nLmdldE1vbnRoKCkmJmIuZ2V0RGF0ZSgpPT09Zy5nZXREYXRlKCl9Zm9ybWF0VGltZShiKXtyZXR1cm4gYi50b0xvY2FsZVRpbWVTdHJpbmcoImVuLVVTIix7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITF9KX1nZXRJY29uRm9yVHlwZShiKXtsZXQgZz17bG9naW46Imx1Y2lkZTpsb2dJbiIsbG9nb3V0OiJsdWNpZGU6bG9nT3V0Iix2aWV3OiJsdWNpZGU6ZXllIixjcmVhdGU6Imx1Y2lkZTpwbHVzIix1cGRhdGU6Imx1Y2lkZTplZGl0IixkZWxldGU6Imx1Y2lkZTp0cmFzaDIiLGN1c3RvbToibHVjaWRlOmFjdGl2aXR5In07cmV0dXJuIGdbYl18fGcuY3VzdG9tfWhhbmRsZVNlYXJjaElucHV0KGIpe2xldCBnPWIudGFyZ2V0O3RoaXMuc2VhcmNoUXVlcnk9Zy52YWx1ZX1oYW5kbGVDb250ZXh0TWVudShiLGcpe2IucHJldmVudERlZmF1bHQoKSx0YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhiLFt7bmFtZToiQ29weSBhY3Rpdml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246cyhhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYCR7Zy51c2VyfSAke2cubWVzc2FnZX1gKX0sImFjdGlvbiIpfSx7bmFtZToiRmlsdGVyIGJ5IHVzZXIiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOnMoYXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3VzZXI6Zy51c2VyfX0sImFjdGlvbiIpfSx7bmFtZToiRmlsdGVyIGJ5IHR5cGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixhY3Rpb246cyhhc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17dHlwZTpnLnR5cGV9fSwiYWN0aW9uIil9LHtuYW1lOiJDbGVhciBmaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjpzKGFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt9LHRoaXMuc2VhcmNoUXVlcnk9IiJ9LCJhY3Rpb24iKX1dKX1zdGF0aWN7d2Yocix0KX19O3JldHVybiB4PXJ9KSgpfSk7dmFyIERyYT1mKCgpPT57YlllKCl9KTt2YXIgQXJhPWYoKCk9Pnt9KTt2YXIgUHJhPWYoKCk9PntXcygpfSk7dmFyIEVyYT1mKCgpPT57fSk7dmFyIElyYT1mKCgpPT57fSk7dmFyIE5yYT1mKCgpPT57fSk7dmFyIHI0PWYoKCk9PntBcmEoKTtQcmEoKTtFcmEoKTtJcmEoKTtOcmEoKX0pO3ZhciBScmEsT3JhPWYoKCk9PntsZSgpO05hKCk7dlllKCk7UnJhPXMoKCk9PntsZXQgYT1be25hbWU6IkZpbGUiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiTmV3IEZpbGUiLHNob3J0Y3V0OiJDbWQrTiIsaWNvbk5hbWU6ImZpbGUtcGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIiksImFjdGlvbiIpfSx7bmFtZToiT3Blbi4uLiIsc2hvcnRjdXQ6IkNtZCtPIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIiksImFjdGlvbiIpfSx7bmFtZToiT3BlbiBSZWNlbnQiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToicHJvamVjdC1hbHBoYS50cyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKSwiYWN0aW9uIil9LHtuYW1lOiJjb25maWcuanNvbiIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKSwiYWN0aW9uIil9LHtuYW1lOiJyZWFkbWUubWQiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFzLi4uIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1MiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksImFjdGlvbiIpLGRpc2FibGVkOiEwfSx7ZGl2aWRlcjohMH0se25hbWU6IkV4aXQiLHNob3J0Y3V0OiJDbWQrUSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKSwiYWN0aW9uIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiQ3V0IiksImFjdGlvbiIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsc2hvcnRjdXQ6IkNtZCtGIixpY29uTmFtZToic2VhcmNoIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIEZ1bGxzY3JlZW4iLHNob3J0Y3V0OiJGMTEiLGljb25OYW1lOiJleHBhbmQiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIiksImFjdGlvbiIpfSx7bmFtZToiWm9vbSBJbiIsc2hvcnRjdXQ6IkNtZCsrIixpY29uTmFtZToiem9vbS1pbiIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIE91dCIsc2hvcnRjdXQ6IkNtZCstIixpY29uTmFtZToiem9vbS1vdXQiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpLCJhY3Rpb24iKX0se25hbWU6IlJlc2V0IFpvb20iLHNob3J0Y3V0OiJDbWQrMCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIiksImFjdGlvbiIpfSx7bmFtZToiVG9nZ2xlIFRlcm1pbmFsIixzaG9ydGN1dDoiQ21kK0oiLGljb25OYW1lOiJ0ZXJtaW5hbCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiSGVscCIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWxlYXNlIE5vdGVzIixpY29uTmFtZToiZmlsZS10ZXh0IixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJSZXBvcnQgSXNzdWUiLGljb25OYW1lOiJidWciLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKSwiYWN0aW9uIil9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjYXBwYmFyIikscj1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGF0dXMtdG9nZ2xlIGRlZXMtYnV0dG9uIik7clswXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6Im9ubGluZSJ9fSksclsxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LnVzZXI9ey4uLnQudXNlcixzdGF0dXM6ImJ1c3kifX0pLHJbMl0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC51c2VyPXsuLi50LnVzZXIsc3RhdHVzOiJhd2F5In19KSxyWzNdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QudXNlcj17Li4udC51c2VyLHN0YXR1czoib2ZmbGluZSJ9fSksZS5xdWVyeVNlbGVjdG9yKCIud2luZG93LWNvbnRyb2xzLXRvZ2dsZSBkZWVzLWJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3Quc2hvd1dpbmRvd0NvbnRyb2xzPSF0LnNob3dXaW5kb3dDb250cm9sc30pO2xldCBvPWUucXVlcnlTZWxlY3RvckFsbCgiLmJyZWFkY3J1bWItdG9nZ2xlIGRlZXMtYnV0dG9uIik7b1swXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmJyZWFkY3J1bWJzPSJIb21lID4gRG9jdW1lbnRzID4gUHJvamVjdHMgPiBNeUFwcCA+IHNyYyA+IGluZGV4LnRzIn0pLG9bMV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5icmVhZGNydW1icz0iRGFzaGJvYXJkIn0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke1hgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCBsYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIGlkPSJhcHBiYXIiCiAgICAgICAgLm1lbnVJdGVtcz0ke2F9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7IlByb2plY3QgPiBzcmMgPiBjb21wb25lbnRzID4gQXBwQmFyLnRzIn0KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0keyIgPiAifQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHshMH0KICAgICAgICAuc2hvd1NlYXJjaD0keyEwfQogICAgICAgIC50aGVtZT0keyJkYXJrIn0KICAgICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHtlPT5jb25zb2xlLmxvZygiTWVudSBzZWxlY3RlZDoiLGUuZGV0YWlsLml0ZW0pfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7ZT0+Y29uc29sZS5sb2coIkJyZWFkY3J1bWIgY2xpY2tlZDoiLGUuZGV0YWlsKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PmNvbnNvbGUubG9nKCJTZWFyY2ggY2xpY2tlZCIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT5jb25zb2xlLmxvZygiVXNlciBtZW51IGNsaWNrZWQiKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8aDI+QXBwIEJhciBEZW1vPC9oMj4KICAgICAgICA8cD5UaGlzIGRlbW8gc2hvd3MgdmFyaW91cyBmZWF0dXJlcyBvZiB0aGUgYXBwIGJhciBjb21wb25lbnQ6PC9wPgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5EeW5hbWljIG1lbnUgaXRlbXMgd2l0aCBpY29ucywgc2hvcnRjdXRzLCBhbmQgc3VibWVudXM8L2xpPgogICAgICAgICAgPGxpPkJyZWFkY3J1bWIgbmF2aWdhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+VXNlciBhY2NvdW50IHNlY3Rpb24gd2l0aCBzdGF0dXMgaW5kaWNhdG9yPC9saT4KICAgICAgICAgIDxsaT5TZWFyY2ggaWNvbjwvbGk+CiAgICAgICAgICA8bGk+V2luZG93IGNvbnRyb2xzIChwbGF0Zm9ybS1zcGVjaWZpYyk8L2xpPgogICAgICAgICAgPGxpPkRhcmsvbGlnaHQgdGhlbWUgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+S2V5Ym9hcmQgbmF2aWdhdGlvbiAoVGFiLCBFbnRlciwgRXNjYXBlKTwvbGk+CiAgICAgICAgICA8bGk+Q3VzdG9tIGV2ZW50cyBmb3IgYWxsIGludGVyYWN0aW9uczwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VGhlbWU8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ0aGVtZS10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFyazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPlVzZXIgU3RhdHVzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0ic3RhdHVzLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PbmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QnVzeTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Bd2F5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9mZmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5XaW5kb3cgQ29udHJvbHM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ3aW5kb3ctY29udHJvbHMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPkJyZWFkY3J1bWJzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0iYnJlYWRjcnVtYi10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TG9uZyBQYXRoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNob3J0IFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBGcmEsQnJhPWYoKCk9PntsZSgpO0ZyYT1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciB0aGVtaW5nICovCiAgICAgICAgLS1hcHBiYXItaGVpZ2h0OiA0MHB4OwogICAgICAgIC0tYXBwYmFyLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hcHBiYXItaGVpZ2h0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLWFwcGJhci1mb250LXNpemUpOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvOwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogZHJhZzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogT3B0aW9uYWw6IFN0eWxlIGZvciBtZW51IGl0ZW1zIHdpdGggaWNvbnMgKG5vdCB0eXBpY2FsbHkgdXNlZCBmb3IgdG9wLWxldmVsIGl0ZW1zKSAqLwogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW1bZGlzYWJsZWRdIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmZvY3VzLXZpc2libGUgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICB9CgoKICAgICAgLyogRHJvcGRvd24gc3R5bGVzICovCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24ub3BlbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW06aG92ZXIsCiAgICAgIC5kcm9wZG93bi1pdGVtLmZvY3VzZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGxvZyB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5hY3Rpdml0eS10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwNjAiLCIjZmZmZmZmNjAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYxNSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGUuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDE1IiwiI2ZmZmZmZjIwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWJhZGdlIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjNTI1MjUyIiwiIzUyNTI1MiIpfTsKICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CiAgICBgXX0pO3ZhciBIcmEscXJhPWYoKCk9PntsZSgpO0hyYT1zKGE9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudXMiPgogICAgICAgICAgJHthLnNob3dXaW5kb3dDb250cm9scz93YDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gOiIifQogICAgICAgICAgJHthLnJlbmRlck1lbnVJdGVtcygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4KICAgICAgICAgICR7YS5yZW5kZXJCcmVhZGNydW1icygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjY291bnQiPgogICAgICAgICAgJHthLnJlbmRlckFjY291bnRTZWN0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlckFwcHVpQXBwYmFyIil9KTt2YXIgeFllLF9VLFZyYSx5WWU9ZigoKT0+e2xlKCk7UWUoKTt4WWU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LF9VPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxWcmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXdpbmRvd2NvbnRyb2xzIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNXaW5kb3dDb250cm9scyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3JlZmxlY3Q6ITB9KV0sZD1bJCh7cmVmbGVjdDohMH0pXSx4WWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJ0eXBlImluIHYsImhhcyIpLGdldDpzKHY9PnYudHlwZSwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LnR5cGU9eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLHhZZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJwb3NpdGlvbiJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LnBvc2l0aW9uLCJnZXQiKSxzZXQ6cygodix4KT0+e3YucG9zaXRpb249eH0sInNldCIpfSxtZXRhZGF0YTptfSxjLHApLHhZZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHU9cj1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPXMoKCk9PndgPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1fVSh0aGlzLG4sIm1hYyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUobSl7dGhpcy4jZT1tfSN0PShfVSh0aGlzLGwpLF9VKHRoaXMsYywibGVmdCIpKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24obSl7dGhpcy4jdD1tfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLF9VKHRoaXMscCl9c3RhdGlje19VKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBUVSxsYyxqcmEsd1llPWYoKCk9PntXcygpO0dpKCk7bGUoKTtRZSgpO1RVPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxsYz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sanJhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24iKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0FwcHVpUHJvZmlsZURyb3Bkb3duIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sZD1bJCh7dHlwZTpBcnJheX0pXSx1PVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx4PVskKHt0eXBlOlN0cmluZ30pXSxUVSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+InVzZXIiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy51c2VyLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MudXNlcj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG4sbCksVFUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+Im1lbnVJdGVtcyJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLm1lbnVJdGVtcywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLm1lbnVJdGVtcz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGMscCksVFUodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImlzT3BlbiJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLmlzT3BlbiwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmlzT3Blbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sdiksVFUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4icG9zaXRpb24iaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5wb3NpdGlvbiwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnBvc2l0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxUVShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLHk9cj1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgLnVzZXI9JHt7bmFtZToiSm9obiBEb2UiLGVtYWlsOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsYXZhdGFyOiJodHRwczovL3JhbmRvbXVzZXIubWUvYXBpL3BvcnRyYWl0cy9tZW4vMS5qcGciLHN0YXR1czoib25saW5lIn19CiAgICAgIC5tZW51SXRlbXM9JHtbe25hbWU6IlByb2ZpbGUgU2V0dGluZ3MiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFjY291bnQiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCAmIFN1cHBvcnQiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kK0siLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfQogICAgICAuaXNPcGVuPSR7ITB9CiAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1sYyh0aGlzLG4sdm9pZCAwKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNlfXNldCB1c2VyKGspe3RoaXMuI2U9a30jdD0obGModGhpcyxsKSxsYyh0aGlzLGMsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyhrKXt0aGlzLiN0PWt9I2E9KGxjKHRoaXMscCksbGModGhpcyxtLCExKSk7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLiNhfXNldCBpc09wZW4oayl7dGhpcy4jYT1rfSNyPShsYyh0aGlzLHYpLGxjKHRoaXMsYiwidG9wLXJpZ2h0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBwb3NpdGlvbihrKXt0aGlzLiNyPWt9c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHotaW5kZXg6ICR7UHMub3ZlcmxheS5kcm9wZG93bn07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuYmFja2Ryb3AgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFBvc2l0aW9uIHZhcmlhbnRzICovCiAgICAgIC5kcm9wZG93bi50b3AtcmlnaHQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi50b3AtbGVmdCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLXJpZ2h0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLWxlZnQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogVXNlciBzZWN0aW9uICovCiAgICAgIC51c2VyLXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC51c2VyLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudXNlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnVzZXItZW1haWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgc2VjdGlvbiAqLwogICAgICAubWVudS1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm1lbnUtc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIEJhY2tkcm9wIGZvciBtb2JpbGUgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmJhY2tkcm9wIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMDsKICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICByaWdodDogMDsKICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICAgIHotaW5kZXg6ICR7UHMuYmFja2Ryb3AuZHJvcGRvd259OwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmJhY2tkcm9wIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRyb3Bkb3duIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgcmlnaHQ6IGF1dG87CiAgICAgICAgICBib3R0b206IGF1dG87CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjk1KTsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpOwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJhY2tkcm9wIiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZSgpfT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24gJHt0aGlzLnBvc2l0aW9ufSI+CiAgICAgICAgJHt0aGlzLnVzZXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP3dgPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6dGhpcy5nZXRJbml0aWFscyh0aGlzLnVzZXIubmFtZSl9CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5zdGF0dXM/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZGV0YWlscyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLW5hbWUiPiR7dGhpcy51c2VyLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5lbWFpbD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWVtYWlsIj4ke3RoaXMudXNlci5lbWFpbH08L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LXNlY3Rpb24iPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoaz0+dGhpcy5yZW5kZXJNZW51SXRlbShrKSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNZW51SXRlbShrKXtpZigiZGl2aWRlciJpbiBrJiZrLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCBDPWs7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1lbnUtaXRlbSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlTWVudUNsaWNrKEMpfT4KICAgICAgICAke0MuaWNvbk5hbWU/d2AKICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke0MuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtaXRlbS10ZXh0Ij4ke0MubmFtZX08L3NwYW4+CiAgICAgICAgJHtDLnNob3J0Y3V0P3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1zaG9ydGN1dCI+JHtDLnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0SW5pdGlhbHMoayl7cmV0dXJuIGsuc3BsaXQoIiAiKS5tYXAoQz0+Q1swXSkuam9pbigiIikudG9VcHBlckNhc2UoKS5zbGljZSgwLDIpfWFzeW5jIGhhbmRsZU1lbnVDbGljayhrKXthd2FpdCBrLmFjdGlvbigpLHRoaXMuY2xvc2UoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTprfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfW9wZW4oKXt0aGlzLmlzT3Blbj0hMH1jbG9zZSgpe3RoaXMuaXNPcGVuPSExfXRvZ2dsZSgpe3RoaXMuaXNPcGVuPSF0aGlzLmlzT3Blbn1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2s9dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2suYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWhhbmRsZU91dHNpZGVDbGljayhrKXtpZih0aGlzLmlzT3BlbiYmIXRoaXMuY29udGFpbnMoay50YXJnZXQpKXtsZXQgQz10aGlzLnBhcmVudEVsZW1lbnQ7aWYoQyYmQy5jb250YWlucyhrLnRhcmdldCkpcmV0dXJuO3RoaXMuY2xvc2UoKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGxjKHRoaXMsZyl9c3RhdGlje2xjKHIsdCl9fTtyZXR1cm4geT1yfSkoKX0pO3ZhciBBaSxSYSxVcmEsdlllPWYoKCk9PntsZSgpO2VhKCk7cjQoKTtXcygpO09yYSgpO0JyYSgpO3FyYSgpO3ZhKCk7eVllKCk7d1llKCk7QWk9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LFJhPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxVcmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWFwcHVpLWFwcGJhciIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdLEIsTT1bXSxTPVtdLEUsQT1bXSxGPVtdLFcsaj1bXSxHPVtdLGhlLFI9W10sVT1bXSxtZSxJPVtdLHE9W10sY2UsdWU9W10sWT1bXSxRLEo9W10sWj1bXSxnZSxhZT1bXSxyZT1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNBcHB1aUJhciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBWPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpCb29sZWFufSldLHk9WyQoe3R5cGU6T2JqZWN0fSldLE49WyQoe3R5cGU6QXJyYXl9KV0sTz1bJCh7dHlwZTpCb29sZWFufSldLEI9WyQoe3R5cGU6Qm9vbGVhbn0pXSxFPVskKHt0eXBlOk51bWJlcn0pXSxXPVskKHt0eXBlOkJvb2xlYW59KV0saGU9W0soKV0sbWU9W0soKV0sY2U9W0soKV0sUT1bSygpXSxnZT1bSygpXSxBaSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ibWVudUl0ZW1zImluIEgsImhhcyIpLGdldDpzKEg9PkgubWVudUl0ZW1zLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILm1lbnVJdGVtcz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxuLGwpLEFpKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImJyZWFkY3J1bWJzImluIEgsImhhcyIpLGdldDpzKEg9PkguYnJlYWRjcnVtYnMsImdldCIpLHNldDpzKChILG9lKT0+e0guYnJlYWRjcnVtYnM9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sYyxwKSxBaSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJTZXBhcmF0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImJyZWFkY3J1bWJTZXBhcmF0b3IiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5icmVhZGNydW1iU2VwYXJhdG9yLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILmJyZWFkY3J1bWJTZXBhcmF0b3I9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbSx2KSxBaSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXaW5kb3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ic2hvd1dpbmRvd0NvbnRyb2xzImluIEgsImhhcyIpLGdldDpzKEg9Pkguc2hvd1dpbmRvd0NvbnRyb2xzLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILnNob3dXaW5kb3dDb250cm9scz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxiLGcpLEFpKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4idXNlciJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILnVzZXIsImdldCIpLHNldDpzKChILG9lKT0+e0gudXNlcj1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxrLEMpLEFpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZmlsZU1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4icHJvZmlsZU1lbnVJdGVtcyJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILnByb2ZpbGVNZW51SXRlbXMsImdldCIpLHNldDpzKChILG9lKT0+e0gucHJvZmlsZU1lbnVJdGVtcz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxfLHopLEFpKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NlYXJjaCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ic2hvd1NlYXJjaCJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILnNob3dTZWFyY2gsImdldCIpLHNldDpzKChILG9lKT0+e0guc2hvd1NlYXJjaD1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxULFApLEFpKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0FjdGl2aXR5TG9nVG9nZ2xlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJzaG93QWN0aXZpdHlMb2dUb2dnbGUiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5zaG93QWN0aXZpdHlMb2dUb2dnbGUsImdldCIpLHNldDpzKChILG9lKT0+e0guc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LE0sUyksQWkodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0NvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJhY3Rpdml0eUxvZ0NvdW50ImluIEgsImhhcyIpLGdldDpzKEg9PkguYWN0aXZpdHlMb2dDb3VudCwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5hY3Rpdml0eUxvZ0NvdW50PW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LEEsRiksQWkodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4iYWN0aXZpdHlMb2dBY3RpdmUiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5hY3Rpdml0eUxvZ0FjdGl2ZSwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5hY3Rpdml0eUxvZ0FjdGl2ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxqLEcpLEFpKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZU1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImFjdGl2ZU1lbnUiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5hY3RpdmVNZW51LCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILmFjdGl2ZU1lbnU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sUixVKSxBaSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuRHJvcGRvd25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJvcGVuRHJvcGRvd25zImluIEgsImhhcyIpLGdldDpzKEg9Pkgub3BlbkRyb3Bkb3ducywiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5vcGVuRHJvcGRvd25zPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LEkscSksQWkodGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImZvY3VzZWRJdGVtImluIEgsImhhcyIpLGdldDpzKEg9PkguZm9jdXNlZEl0ZW0sImdldCIpLHNldDpzKChILG9lKT0+e0guZm9jdXNlZEl0ZW09b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sdWUsWSksQWkodGhpcyxudWxsLFEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkRHJvcGRvd25JdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJmb2N1c2VkRHJvcGRvd25JdGVtImluIEgsImhhcyIpLGdldDpzKEg9PkguZm9jdXNlZERyb3Bkb3duSXRlbSwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5mb2N1c2VkRHJvcGRvd25JdGVtPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LEosWiksQWkodGhpcyxudWxsLGdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9maWxlRHJvcGRvd25PcGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJpc1Byb2ZpbGVEcm9wZG93bk9wZW4iaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5pc1Byb2ZpbGVEcm9wZG93bk9wZW4sImdldCIpLHNldDpzKChILG9lKT0+e0guaXNQcm9maWxlRHJvcGRvd25PcGVuPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGFlLHJlKSxBaShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpWfSxudWxsLHQpLHllPXI9ZS52YWx1ZSxWJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlZ9KX1zdGF0aWMgZGVtbz1ScmE7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1SYSh0aGlzLG4sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKFYpe3RoaXMuI2U9Vn0jdD0oUmEodGhpcyxsKSxSYSh0aGlzLGMsIiIpKTtnZXQgYnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnJlYWRjcnVtYnMoVil7dGhpcy4jdD1WfSNhPShSYSh0aGlzLHApLFJhKHRoaXMsbSwiID4gIikpO2dldCBicmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoVil7dGhpcy4jYT1WfSNyPShSYSh0aGlzLHYpLFJhKHRoaXMsYiwhMCkpO2dldCBzaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1dpbmRvd0NvbnRyb2xzKFYpe3RoaXMuI3I9Vn0jcz0oUmEodGhpcyxnKSxSYSh0aGlzLGssdm9pZCAwKSk7Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgdXNlcihWKXt0aGlzLiNzPVZ9I2k9KFJhKHRoaXMsQyksUmEodGhpcyxfLFtdKSk7Z2V0IHByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcHJvZmlsZU1lbnVJdGVtcyhWKXt0aGlzLiNpPVZ9I289KFJhKHRoaXMseiksUmEodGhpcyxULCExKSk7Z2V0IHNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd1NlYXJjaChWKXt0aGlzLiNvPVZ9I249KFJhKHRoaXMsUCksUmEodGhpcyxNLCExKSk7Z2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZSgpe3JldHVybiB0aGlzLiNufXNldCBzaG93QWN0aXZpdHlMb2dUb2dnbGUoVil7dGhpcy4jbj1WfSNsPShSYSh0aGlzLFMpLFJhKHRoaXMsQSwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgYWN0aXZpdHlMb2dDb3VudChWKXt0aGlzLiNsPVZ9I2M9KFJhKHRoaXMsRiksUmEodGhpcyxqLCExKSk7Z2V0IGFjdGl2aXR5TG9nQWN0aXZlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2aXR5TG9nQWN0aXZlKFYpe3RoaXMuI2M9Vn0jZD0oUmEodGhpcyxHKSxSYSh0aGlzLFIsbnVsbCkpO2dldCBhY3RpdmVNZW51KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGFjdGl2ZU1lbnUoVil7dGhpcy4jZD1WfSN1PShSYSh0aGlzLFUpLFJhKHRoaXMsSSxuZXcgU2V0KSk7Z2V0IG9wZW5Ecm9wZG93bnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgb3BlbkRyb3Bkb3ducyhWKXt0aGlzLiN1PVZ9I3A9KFJhKHRoaXMscSksUmEodGhpcyx1ZSxudWxsKSk7Z2V0IGZvY3VzZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGZvY3VzZWRJdGVtKFYpe3RoaXMuI3A9Vn0jZj0oUmEodGhpcyxZKSxSYSh0aGlzLEosLTEpKTtnZXQgZm9jdXNlZERyb3Bkb3duSXRlbSgpe3JldHVybiB0aGlzLiNmfXNldCBmb2N1c2VkRHJvcGRvd25JdGVtKFYpe3RoaXMuI2Y9Vn0jaD0oUmEodGhpcyxaKSxSYSh0aGlzLGFlLCExKSk7Z2V0IGlzUHJvZmlsZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNofXNldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oVil7dGhpcy4jaD1WfXN0YXRpYyBzdHlsZXM9RnJhO3JlbmRlcigpe3JldHVybiBIcmEodGhpcyl9cmVuZGVyTWVudUl0ZW1zKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKChWLEgpPT50aGlzLnJlbmRlck1lbnVJdGVtKFYsYG1lbnUtJHtIfWApKX0KICAgIGB9cmVuZGVyTWVudUl0ZW0oVixIKXtpZigiZGl2aWRlciJpbiBWJiZWLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgb2U9VixzZT10aGlzLmFjdGl2ZU1lbnU9PT1ILHRlPW9lLnN1Ym1lbnUmJm9lLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtzZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7b2UuZGlzYWJsZWR9CiAgICAgICAgdGFiaW5kZXg9IiR7b2UuZGlzYWJsZWQ/LTE6MH0iCiAgICAgICAgZGF0YS1pdGVtLWlkPSIke0h9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhvZSxIKX0KICAgICAgICBAa2V5ZG93bj0ke3plPT50aGlzLmhhbmRsZU1lbnVLZXlkb3duKHplLG9lLEgpfQogICAgICAgIHJvbGU9Im1lbnVpdGVtIgogICAgICAgIGFyaWEtaGFzcG9wdXA9IiR7dGV9IgogICAgICAgIGFyaWEtZXhwYW5kZWQ9IiR7c2V9IgogICAgICA+CiAgICAgICAgJHtvZS5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke29lLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICR7b2UubmFtZX0KICAgICAgICAke3RlP3RoaXMucmVuZGVyRHJvcGRvd24ob2Uuc3VibWVudSxILHNlKToiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRyb3Bkb3duKFYsSCxvZSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImRyb3Bkb3duICR7b2U/Im9wZW4iOiIifSIgCiAgICAgICAgQGNsaWNrPSR7c2U9PnNlLnN0b3BQcm9wYWdhdGlvbigpfQogICAgICAgIEBrZXlkb3duPSR7c2U9PnRoaXMuaGFuZGxlRHJvcGRvd25LZXlkb3duKHNlLFYsSCl9CiAgICAgICAgdGFiaW5kZXg9IiR7b2U/MDotMX0iCiAgICAgICAgcm9sZT0ibWVudSIKICAgICAgPgogICAgICAgICR7Vi5tYXAoKHNlLHRlKT0+dGhpcy5yZW5kZXJEcm9wZG93bkl0ZW0oc2UsYCR7SH0tJHt0ZX1gKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bkl0ZW0oVixIKXtpZigiZGl2aWRlciJpbiBWJiZWLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgb2U9VixzZT1wYXJzZUludChILnNwbGl0KCItIikucG9wKCl8fCIwIiksdGU9dGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPT09c2U7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSAke3RlPyJmb2N1c2VkIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7b2UuZGlzYWJsZWR9CiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2sob2UpfQogICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1zZX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICB0YWJpbmRleD0iJHtvZS5kaXNhYmxlZD8tMTowfSIKICAgICAgPgogICAgICAgICR7b2UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtvZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3Bhbj4ke29lLm5hbWV9PC9zcGFuPgogICAgICAgICR7b2Uuc2hvcnRjdXQ/d2A8c3BhbiBjbGFzcz0ic2hvcnRjdXQiPiR7b2Uuc2hvcnRjdXR9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJCcmVhZGNydW1icygpe2lmKCF0aGlzLmJyZWFkY3J1bWJzKXJldHVybiB3YGA7bGV0IFY9dGhpcy5icmVhZGNydW1icy5zcGxpdCh0aGlzLmJyZWFkY3J1bWJTZXBhcmF0b3IpO3JldHVybiB3YAogICAgICAke1YubWFwKChILG9lKT0+d2AKICAgICAgICAke29lPjA/d2A8c3BhbiBjbGFzcz0iYnJlYWRjcnVtYi1zZXBhcmF0b3IiPiR7dGhpcy5icmVhZGNydW1iU2VwYXJhdG9yfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIAogICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIgCiAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCcmVhZGNydW1iQ2xpY2soSCxvZSl9CiAgICAgICAgPgogICAgICAgICAgJHtIfQogICAgICAgIDwvc3Bhbj4KICAgICAgYCl9CiAgICBgfXJlbmRlckFjY291bnRTZWN0aW9uKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5zaG93U2VhcmNoP3dgCiAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgY2xhc3M9InNlYXJjaC1pY29uIgogICAgICAgICAgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9CiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlYXJjaENsaWNrfQogICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnVzZXI/d2AKICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVVc2VyQ2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP3dgPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6d2Ake3RoaXMudXNlci5uYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfWB9CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4+JHt0aGlzLnVzZXIubmFtZX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAgICAgICAudXNlcj0ke3RoaXMudXNlcn0KICAgICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMucHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAgICAgLmlzT3Blbj0ke3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVufQogICAgICAgICAgICAucG9zaXRpb249JHsidG9wLXJpZ2h0In0KICAgICAgICAgICAgQG1lbnUtc2VsZWN0PSR7Vj0+dGhpcy5oYW5kbGVQcm9maWxlTWVudVNlbGVjdChWKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAke3RoaXMuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlP3dgCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImFjdGl2aXR5LXRvZ2dsZSAke3RoaXMuYWN0aXZpdHlMb2dBY3RpdmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVBY3Rpdml0eVRvZ2dsZX0KICAgICAgICAgIHRpdGxlPSJBY3Rpdml0eSBMb2ciCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6YWN0aXZpdHkifT48L2RlZXMtaWNvbj4KICAgICAgICAgICR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50PjA/d2AKICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LWJhZGdlIj4ke3RoaXMuYWN0aXZpdHlMb2dDb3VudD45OT8iOTkrIjp0aGlzLmFjdGl2aXR5TG9nQ291bnR9PC9zcGFuPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9aGFuZGxlTWVudUNsaWNrKFYsSCl7Vi5kaXNhYmxlZHx8KFYuc3VibWVudSYmVi5zdWJtZW51Lmxlbmd0aD4wP3RoaXMuYWN0aXZlTWVudT09PUg/dGhpcy5hY3RpdmVNZW51PW51bGw6dGhpcy5hY3RpdmVNZW51PUg6KHRoaXMuYWN0aXZlTWVudT1udWxsLFYuYWN0aW9uJiZWLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOlZ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpKX1oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhWKXtWLmRpc2FibGVkfHwodGhpcy5hY3RpdmVNZW51PW51bGwsVi5hY3Rpb24mJlYuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06Vn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlTWVudUtleWRvd24oVixILG9lKXtzd2l0Y2goVi5rZXkpe2Nhc2UiRW50ZXIiOmNhc2UiICI6Vi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlTWVudUNsaWNrKEgsb2UpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjppZihILnN1Ym1lbnUmJnRoaXMuYWN0aXZlTWVudT09PW9lKXtWLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPTA7bGV0IHNlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oSC5zdWJtZW51LC0xLDEpO3NlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09c2Usc2V0VGltZW91dCgoKT0+e2xldCB0ZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLmRyb3Bkb3duLm9wZW4iKTt0ZSYmdGUuZm9jdXMoKX0sMCkpfWJyZWFrO2Nhc2UiRXNjYXBlIjp0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTE7YnJlYWs7Y2FzZSJUYWIiOnRoaXMuYWN0aXZlTWVudT09PW9lJiYodGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xKTticmVhaztjYXNlIkFycm93UmlnaHQiOlYucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKG9lLDEpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjpWLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShvZSwtMSk7YnJlYWt9fWhhbmRsZUJyZWFkY3J1bWJDbGljayhWLEgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6e2JyZWFkY3J1bWI6VixpbmRleDpIfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNsaWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBY3Rpdml0eVRvZ2dsZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGl2aXR5LXRvZ2dsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVXNlckNsaWNrKCl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49IXRoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVQcm9maWxlTWVudVNlbGVjdChWKXt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbj0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwcm9maWxlLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOlYuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlR2xvYmFsQ2xpY2spLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZURvY3VtZW50Q2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1oYW5kbGVHbG9iYWxDbGljaz0oUmEodGhpcyxyZSksVj0+e1Yuc3RvcFByb3BhZ2F0aW9uKCl9KTtoYW5kbGVEb2N1bWVudENsaWNrPXMoKCk9Pnt0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTF9LCJoYW5kbGVEb2N1bWVudENsaWNrIik7aGFuZGxlRHJvcGRvd25LZXlkb3duKFYsSCxvZSl7bGV0IHNlPUguZmlsdGVyKHRlPT4hKCJkaXZpZGVyImluIHRlJiZ0ZS5kaXZpZGVyKSk7c3dpdGNoKFYua2V5KXtjYXNlIkFycm93RG93biI6Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCB0ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLDEpO3RlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09dGUpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCB6ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLC0xKTt6ZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPXplKTticmVhaztjYXNlIkVudGVyIjppZihWLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtIT09LTEpe2xldCAkZT1zZVt0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW1dOyRlJiYiYWN0aW9uImluICRlJiYhJGUuZGlzYWJsZWQmJnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soJGUpfWJyZWFrO2Nhc2UiSG9tZSI6Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCBPZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsLTEsMSk7T2UhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1PZSk7YnJlYWs7Y2FzZSJFbmQiOlYucHJldmVudERlZmF1bHQoKTtsZXQgcWU9dGhpcy5maW5kTmV4dFZhbGlkSXRlbShILEgubGVuZ3RoLC0xKTtxZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPXFlKTticmVhaztjYXNlIkVzY2FwZSI6Vi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMTtsZXQgZHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5tZW51SXRlbS5hY3RpdmUiKTtkdCYmZHQuZm9jdXMoKTticmVha319ZmluZE5leHRWYWxpZEl0ZW0oVixILG9lKXtsZXQgc2U9SCtvZTtmb3IoO3NlPj0wJiZzZTxWLmxlbmd0aDspe2xldCB0ZT1WW3NlXTtpZighKCJkaXZpZGVyImluIHRlJiZ0ZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gdGUmJnRlLmRpc2FibGVkKSlyZXR1cm4gc2U7c2UrPW9lfXJldHVybi0xfWZvY3VzTmV4dE1lbnVJdGVtKFYsSCl7bGV0IG9lPUFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51SXRlbSIpKSxzZT1vZS5maW5kSW5kZXgoT2U9Pk9lLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1WKTtpZihzZT09PS0xKXJldHVybjtsZXQgdGU9c2UrSDt0ZTwwP3RlPW9lLmxlbmd0aC0xOnRlPj1vZS5sZW5ndGgmJih0ZT0wKTtsZXQgemU9MDtmb3IoO3plPG9lLmxlbmd0aDspe2xldCBPZT1vZVt0ZV07aWYoIU9lLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7T2UuZm9jdXMoKSx0aGlzLmFjdGl2ZU1lbnUmJih0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTEpO2JyZWFrfXRlPSh0ZStIK29lLmxlbmd0aCklb2UubGVuZ3RoLHplKyt9fXN0YXRpY3tSYShyLHQpfX07cmV0dXJuIHllPXJ9KSgpfSk7dmFyIE1ZZT1mKCgpPT57dlllKCl9KTt2YXIgV3JhLEdyYSxZcmE9ZigoKT0+e2xlKCk7TmEoKTtHcmE9cygoKT0+dyhXcmF8fChXcmE9UjUoW2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzczNzM3MzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ib3R0b21iYXItd3JhcHBlciB7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCAwJSAyMCUpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Qm90dG9tIGJhciB3aXRoIHN0YXR1cyB3aWRnZXRzIGFuZCBhY3Rpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWJvdHRvbWJhci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyCiAgICAgICAgICAgICAgaWQ9ImRlbW8tYm90dG9tYmFyIgogICAgICAgICAgICA+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Q29udHJvbHM8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRTdWNjZXNzV2lkZ2V0KCkiPkFkZCBTdWNjZXNzIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFdhcm5pbmdXaWRnZXQoKSI+QWRkIFdhcm5pbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkRXJyb3JXaWRnZXQoKSI+QWRkIEVycm9yIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZExvYWRpbmdXaWRnZXQoKSI+QWRkIExvYWRpbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkUmlnaHRXaWRnZXQoKSI+QWRkIFJpZ2h0IFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEFjdGlvbigpIj5BZGQgQWN0aW9uPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iY2xlYXJBbGwoKSI+Q2xlYXIgQWxsPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KICAgICAgICBjb25zdCBib3R0b21iYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVtby1ib3R0b21iYXInKTsKCiAgICAgICAgLy8gV2FpdCBmb3IgY29tcG9uZW50IHRvIGluaXRpYWxpemUKICAgICAgICBhd2FpdCBib3R0b21iYXIudXBkYXRlQ29tcGxldGU7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIHdpZGdldHMKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnc3RhdHVzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFjdGl2aXR5JywKICAgICAgICAgIGxhYmVsOiAnU3lzdGVtIE9ubGluZScsCiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgIHRvb2x0aXA6ICdBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnU3RhdHVzIGNsaWNrZWQnKSwKICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IFsKICAgICAgICAgICAgeyBuYW1lOiAnVmlldyBEZXRhaWxzJywgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1N5c3RlbSBkZXRhaWxzJykgfSwKICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgbmFtZTogJ1JlZnJlc2ggU3RhdHVzJywgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaEN3JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnUmVmcmVzaGluZy4uLicpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJywKICAgICAgICAgIGxhYmVsOiAnMyBub3RpZmljYXRpb25zJywKICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgdG9vbHRpcDogJ1lvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdOb3RpZmljYXRpb25zIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3ZlcnNpb24nLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJywKICAgICAgICAgIGxhYmVsOiAndjEuMi4zJywKICAgICAgICAgIHRvb2x0aXA6ICdDdXJyZW50IHZlcnNpb24nLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnVmVyc2lvbiBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIGFjdGlvbnMKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLAogICAgICAgICAgdG9vbHRpcDogJ1NldHRpbmdzJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ1NldHRpbmdzIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ2hlbHAnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsCiAgICAgICAgICB0b29sdGlwOiAnSGVscCcsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gRGVtbyBjb250cm9sIGZ1bmN0aW9ucwogICAgICAgIGxldCB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICBsZXQgYWN0aW9uQ291bnRlciA9IDA7CgogICAgICAgIHdpbmRvdy5hZGRTdWNjZXNzV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2tDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ1N1Y2Nlc3MgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICB0b29sdGlwOiAnU3VjY2VzcyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRXYXJuaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWxlcnRUcmlhbmdsZScsCiAgICAgICAgICAgIGxhYmVsOiAnV2FybmluZyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdXYXJuaW5nIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEVycm9yV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnZXJyb3ItJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnhDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ0Vycm9yICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsCiAgICAgICAgICAgIHRvb2x0aXA6ICdFcnJvciB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdlcnJvci0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkTG9hZGluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGNvbnN0IGlkID0gJ2xvYWRpbmctJyArIHdpZGdldENvdW50ZXI7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2FkZXIyJywKICAgICAgICAgICAgbGFiZWw6ICdMb2FkaW5nLi4uJywKICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJywKICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgICAgICAgdG9vbHRpcDogJ0xvYWRpbmcgaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgfSk7CgogICAgICAgICAgLy8gU2ltdWxhdGUgY29tcGxldGlvbiBhZnRlciAzIHNlY29uZHMKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICBib3R0b21iYXIudXBkYXRlV2lkZ2V0KGlkLCB7CiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2snLAogICAgICAgICAgICAgIGxhYmVsOiAnRG9uZSEnLAogICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIDMwMDApOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRSaWdodFdpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywKICAgICAgICAgICAgbGFiZWw6ICdSaWdodCAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRBY3Rpb24gPSAoKSA9PiB7CiAgICAgICAgICBhY3Rpb25Db3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgICAgaWQ6ICdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsCiAgICAgICAgICAgIHRvb2x0aXA6ICdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHsKICAgICAgICAgICAgICBhbGVydCgnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyICsgJyBjbGlja2VkJyk7CiAgICAgICAgICAgICAgYm90dG9tYmFyLnJlbW92ZUFjdGlvbignYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5jbGVhckFsbCA9ICgpID0+IHsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhcldpZGdldHMoKTsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhckFjdGlvbnMoKTsKICAgICAgICAgIHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgICAgYWN0aW9uQ291bnRlciA9IDA7CiAgICAgICAgfTsKICAgICAgPFwvc2NyaXB0PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkpLCJkZW1vRnVuYyIpfSk7dmFyIGtZZSxMVSxLcmEsU1llPWYoKCk9PntsZSgpO1FlKCk7dmEoKTtYcigpO1lyYSgpO2tZZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sTFU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LEtyYT0oKCk9PntsZXQgYT1baWUoImRlZXMtYXBwdWktYm90dG9tYmFyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNBcHB1aUJvdHRvbWJhciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0sZD1bSygpXSxrWWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJ3aWRnZXRzImluIHYsImhhcyIpLGdldDpzKHY9PnYud2lkZ2V0cywiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LndpZGdldHM9eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLGtZZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImFjdGlvbnMiaW4gdiwiaGFzIiksZ2V0OnModj0+di5hY3Rpb25zLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuYWN0aW9ucz14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksa1llKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89R3JhO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9TFUodGhpcyxuLFtdKTtnZXQgd2lkZ2V0cygpe3JldHVybiB0aGlzLiNlfXNldCB3aWRnZXRzKG0pe3RoaXMuI2U9bX0jdD0oTFUodGhpcyxsKSxMVSh0aGlzLGMsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiN0fXNldCBhY3Rpb25zKG0pe3RoaXMuI3Q9bX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBjb2xvcnMgbWF0Y2hpbmcgZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyICovCiAgICAgIC53aWRnZXQuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuc3VjY2VzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IG09dGhpcy53aWRnZXRzLmZpbHRlcihnPT5nLnBvc2l0aW9uIT09InJpZ2h0Iikuc29ydCgoZyx5KT0+KGcub3JkZXJ8fDApLSh5Lm9yZGVyfHwwKSksdj10aGlzLndpZGdldHMuZmlsdGVyKGc9PmcucG9zaXRpb249PT0icmlnaHQiKS5zb3J0KChnLHkpPT4oZy5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSx4PXRoaXMuYWN0aW9ucy5maWx0ZXIoZz0+Zy5wb3NpdGlvbj09PSJsZWZ0IiksYj10aGlzLmFjdGlvbnMuZmlsdGVyKGc9PmcucG9zaXRpb24hPT0ibGVmdCIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIExlZnQgYWN0aW9ucyAtLT4KICAgICAgICAke3gubWFwKGc9PnRoaXMucmVuZGVyQWN0aW9uKGcpKX0KCiAgICAgICAgPCEtLSBMZWZ0IHdpZGdldHMgLS0+CiAgICAgICAgJHttLm1hcCgoZyx5KT0+d2AKICAgICAgICAgICR7eT4wfHx4Lmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQoZyl9CiAgICAgICAgYCl9CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gUmlnaHQgd2lkZ2V0cyAtLT4KICAgICAgICAke3YubWFwKChnLHkpPT53YAogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChnKX0KICAgICAgICAgICR7eTx2Lmxlbmd0aC0xfHxiLmxlbmd0aD4wP3dgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICBgKX0KCiAgICAgICAgPCEtLSBSaWdodCBhY3Rpb25zIC0tPgogICAgICAgICR7Yi5tYXAoZz0+dGhpcy5yZW5kZXJBY3Rpb24oZykpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KG0pe2xldCB2PW0uc3RhdHVzJiZtLnN0YXR1cyE9PSJpZGxlIj9tLnN0YXR1czoiIix4PW0uaWNvbk5hbWU/bS5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/bS5pY29uTmFtZTpgbHVjaWRlOiR7bS5pY29uTmFtZX1gOiIiO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IndpZGdldCAke3Z9IgogICAgICAgIHRpdGxlPSIke20udG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT5tLm9uQ2xpY2s/LigpfQogICAgICAgIEBjb250ZXh0bWVudT0ke2I9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoYixtKX0KICAgICAgPgogICAgICAgICR7eD93YAogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3h9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7bS5sb2FkaW5nPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHttLmxhYmVsP3dgPHNwYW4+JHttLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uKG0pe2xldCB2PW0uaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP20uaWNvbk5hbWU6YGx1Y2lkZToke20uaWNvbk5hbWV9YDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7bS5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICB0aXRsZT0iJHttLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+IW0uZGlzYWJsZWQmJm0ub25DbGljaz8uKCl9CiAgICAgID4KICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAuaWNvbj0ke3Z9CiAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUobSx2KXtpZighdi5jb250ZXh0TWVudUl0ZW1zfHx2LmNvbnRleHRNZW51SXRlbXMubGVuZ3RoPT09MClyZXR1cm47bS5wcmV2ZW50RGVmYXVsdCgpO2xldCB4PVtdO2ZvcihsZXQgYiBvZiB2LmNvbnRleHRNZW51SXRlbXMpYi5kaXZpZGVyP3gucHVzaCh7ZGl2aWRlcjohMH0pOngucHVzaCh7bmFtZTpiLm5hbWUsaWNvbk5hbWU6Yi5pY29uTmFtZSxhY3Rpb246cyhhc3luYygpPT57YXdhaXQgYi5hY3Rpb24oKX0sImFjdGlvbiIpLGRpc2FibGVkOmIuZGlzYWJsZWR9KTthd2FpdCB0YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhtLHgpfWFkZFdpZGdldChtKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcih2PT52LmlkIT09bS5pZCksdGhpcy53aWRnZXRzPVsuLi50aGlzLndpZGdldHMsbV19dXBkYXRlV2lkZ2V0KG0sdil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoeD0+eC5pZD09PW0/ey4uLngsLi4udn06eCl9cmVtb3ZlV2lkZ2V0KG0pe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKHY9PnYuaWQhPT1tKX1nZXRXaWRnZXQobSl7cmV0dXJuIHRoaXMud2lkZ2V0cy5maW5kKHY9PnYuaWQ9PT1tKX1jbGVhcldpZGdldHMoKXt0aGlzLndpZGdldHM9W119YWRkQWN0aW9uKG0pe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKHY9PnYuaWQhPT1tLmlkKSx0aGlzLmFjdGlvbnM9Wy4uLnRoaXMuYWN0aW9ucyxtXX1yZW1vdmVBY3Rpb24obSl7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIodj0+di5pZCE9PW0pfWNsZWFyQWN0aW9ucygpe3RoaXMuYWN0aW9ucz1bXX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTFUodGhpcyxwKX1zdGF0aWN7TFUocix0KX19O3JldHVybiB1PXJ9KSgpfSk7dmFyIFpyYT1mKCgpPT57U1llKCl9KTt2YXIgWHJhLFFyYT1mKCgpPT57bGUoKTtYcmE9cygoKT0+d2AKICA8c3R5bGU+CiAgICAke1hgCiAgICAgIC5kZW1vLWJhY2tncm91bmQgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIG1hcmdpbjogMzJweCAwIDE2cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZTpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLTNjb2wgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjhweCkgewogICAgICAgIC5ncmlkLTNjb2wgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tYmFja2dyb3VuZCI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RGVmYXVsdCBQYW5lbHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBhbmVsIENvbXBvbmVudCJ9IC5zdWJ0aXRsZT0keyJUaGUgZGVmYXVsdCBwYW5lbCB2YXJpYW50IHdpdGggc2hhZGNuLWluc3BpcmVkIHN0eWxpbmcifT4KICAgICAgICA8cD5UaGUgcGFuZWwgY29tcG9uZW50IGF1dG9tYXRpY2FsbHkgZm9sbG93cyB0aGUgdGhlbWUgYW5kIHByb3ZpZGVzIGNvbnNpc3RlbnQgc3R5bGluZyBmb3IgZ3JvdXBlZCBjb250ZW50LjwvcD4KICAgICAgICA8cD5JdCdzIHBlcmZlY3QgZm9yIGNyZWF0aW5nIHNlY3Rpb25zIGluIHlvdXIgYXBwbGljYXRpb24gd2l0aCBwcm9wZXIgc3BhY2luZyBhbmQgYm9yZGVycy48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBPdmVydmlldyJ9IC5zdWJ0aXRsZT0keyJLZXkgY2FwYWJpbGl0aWVzIn0+CiAgICAgICAgICA8cD5HcmlkIGxheW91dHMgd29yayBncmVhdCB3aXRoIHBhbmVscyBmb3IgY3JlYXRpbmcgZGFzaGJvYXJkcyBhbmQgZmVhdHVyZSBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGVhcm4gTW9yZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJRdWljayBBY3Rpb25zIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiB0YXNrcyJ9PgogICAgICAgICAgPHA+RWFjaCBwYW5lbCBtYWludGFpbnMgY29uc2lzdGVudCBzcGFjaW5nIGFuZCBzdHlsaW5nIGFjcm9zcyB5b3VyIGFwcGxpY2F0aW9uLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5HZXQgU3RhcnRlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFuZWwgVmFyaWFudHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRlZmF1bHQgVmFyaWFudCJ9IC52YXJpYW50PSR7ImRlZmF1bHQifT4KICAgICAgICA8cD5UaGUgZGVmYXVsdCB2YXJpYW50IGhhcyBhIHdoaXRlIGJhY2tncm91bmQsIHN1YnRsZSBib3JkZXIsIGFuZCBtaW5pbWFsIHNoYWRvdy4gSXQncyB0aGUgc3RhbmRhcmQgY2hvaWNlIGZvciBtb3N0IGNvbnRlbnQuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJkZWZhdWx0IjwvY29kZT4gb3Igb21pdCB0aGUgdmFyaWFudCBwcm9wZXJ0eS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJPdXRsaW5lIFZhcmlhbnQifSAuc3VidGl0bGU9JHsiVHJhbnNwYXJlbnQgYmFja2dyb3VuZCB3aXRoIGJvcmRlciJ9IC52YXJpYW50PSR7Im91dGxpbmUifT4KICAgICAgICA8cD5UaGUgb3V0bGluZSB2YXJpYW50IHJlbW92ZXMgdGhlIGJhY2tncm91bmQgY29sb3IgYW5kIHNoYWRvdywga2VlcGluZyBvbmx5IHRoZSBib3JkZXIuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJvdXRsaW5lIjwvY29kZT4gZm9yIGEgbGlnaHRlciB2aXN1YWwgd2VpZ2h0LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikdob3N0IFZhcmlhbnQifSAuc3VidGl0bGU9JHsiTWluaW1hbCBzdHlsaW5nIGZvciBzdWJ0bGUgc2VjdGlvbnMifSAudmFyaWFudD0keyJnaG9zdCJ9PgogICAgICAgIDxwPlRoZSBnaG9zdCB2YXJpYW50IGhhcyBubyBib3JkZXIgb3IgYmFja2dyb3VuZCBieSBkZWZhdWx0LCBvbmx5IHNob3dpbmcgYSBzdWJ0bGUgYmFja2dyb3VuZCBvbiBob3Zlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Imdob3N0IjwvY29kZT4gZm9yIHRoZSBtb3N0IG1pbmltYWwgYXBwZWFyYW5jZS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFuZWwgU2l6ZXM8L2gyPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC0zY29sIj4KICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU21hbGwgUGFuZWwifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+Q29tcGFjdCBwYWRkaW5nIGZvciBkZW5zZSBsYXlvdXRzLjwvcD4KICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPSJzbSI8L2NvZGU+PC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTWVkaXVtIFBhbmVsIn0gLnNpemU9JHsibWQifT4KICAgICAgICAgIDxwPkRlZmF1bHQgc2l6ZSB3aXRoIGJhbGFuY2VkIHNwYWNpbmcuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9Im1kIjwvY29kZT4gb3Igb21pdC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJMYXJnZSBQYW5lbCJ9IC5zaXplPSR7ImxnIn0+CiAgICAgICAgICA8cD5HZW5lcm91cyBwYWRkaW5nIGZvciBwcm9taW5lbnQgc2VjdGlvbnMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9ImxnIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29tcGxleCBFeGFtcGxlczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlBhbmVscyB3b3JrIGdyZWF0IGZvciBvcmdhbml6aW5nIGZvcm0gc2VjdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRGVzY3JpcHRpb24ifSAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93biAKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3J5In0gCiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IldlYiBEZXZlbG9wbWVudCIsa2V5OiJ3ZWIifSx7b3B0aW9uOiJNb2JpbGUgQXBwIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgU29mdHdhcmUiLGtleToiZGVza3RvcCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgUHJvamVjdDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbHMifSAuc3VidGl0bGU9JHsiUGFuZWxzIGNhbiBiZSBuZXN0ZWQgZm9yIGhpZXJhcmNoaWNhbCBvcmdhbml6YXRpb24ifT4KICAgICAgICA8cD5Zb3UgY2FuIG5lc3QgcGFuZWxzIHRvIGNyZWF0ZSBtb3JlIGNvbXBsZXggbGF5b3V0czo8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbCAxIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGEgbmVzdGVkIHBhbmVsIHdpdGggb3V0bGluZSB2YXJpYW50IGFuZCBzbWFsbCBzaXplLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik5lc3RlZCBQYW5lbCAyIn0gLnZhcmlhbnQ9JHsiZ2hvc3QifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+VGhpcyBpcyBhbm90aGVyIG5lc3RlZCBwYW5lbCB3aXRoIGdob3N0IHZhcmlhbnQuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5VbnRpdGxlZCBQYW5lbHM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+UGFuZWxzIHdvcmsgZ3JlYXQgZXZlbiB3aXRob3V0IGEgdGl0bGUgZm9yIHNpbXBsZSBjb250ZW50IGdyb3VwaW5nLjwvcD4KICAgICAgICA8cD5UaGV5IHByb3ZpZGUgdmlzdWFsIHNlcGFyYXRpb24gYW5kIGNvbnNpc3RlbnQgcGFkZGluZyB0aHJvdWdob3V0IHlvdXIgaW50ZXJmYWNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC52YXJpYW50PSR7Im91dGxpbmUifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPkN1c3RvbSBDb250ZW50PC9oND4KICAgICAgICAgIDxwPllvdSBjYW4gYWRkIHlvdXIgb3duIGhlYWRpbmdzIGFuZCBzdHJ1Y3R1cmUgd2l0aGluIHVudGl0bGVkIHBhbmVscy48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij5NaW5pbWFsIFN0eWxlPC9oND4KICAgICAgICAgIDxwPkdob3N0IHBhbmVscyB3aXRob3V0IHRpdGxlcyBjcmVhdGUgdmVyeSBzdWJ0bGUgY29udGVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFQkYSxMJGEselllLFd0ZSxwYSxNZiwkJGEsRCRhLEpyYSxBJGEsUCRhLCRQaSxEUGksbXM9ZigoKT0+e2xlKCk7VCRhPSJHZWlzdCBTYW5zIixMJGE9IkludGVsIE9uZSBNb25vIix6WWU9YCcke1QkYX0nLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmYCxXdGU9YCcke0wkYX0nLCAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgJ0ZpcmEgTW9ubycsICdEcm9pZCBTYW5zIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2VgLHBhPW9hKHpZZSksTWY9b2EoV3RlKSwkJGE9IkNhbCBTYW5zIixEJGE9YCckeyQkYX0nLCAke3pZZX1gLEpyYT1vYShEJGEpLEEkYT0iUm9ib3RvIFNsYWIiLFAkYT1gJyR7QSRhfScsIEdlb3JnaWEsIHNlcmlmYCwkUGk9b2EoUCRhKSxEUGk9b2EoYAogIGZvbnQtZmFtaWx5OiAke3pZZX07CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdjdjExJywgJ3RudW0nLCAnY3YwNScgMTsKYCl9KTt2YXIgZW0sVDEsZXNhLFlzPWYoKCk9PntsZSgpO1FyYSgpO21zKCk7UWUoKTtlbT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sVDE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGVzYT0oKCk9PntsZXQgYT1baWUoImRlZXMtcGFuZWwiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1BhbmVsIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpTdHJpbmd9KV0seT1bJCh7YXR0cmlidXRlOiExfSldLGVtKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InRpdGxlImluIHosImhhcyIpLGdldDpzKHo9PnoudGl0bGUsImdldCIpLHNldDpzKCh6LE8pPT57ei50aXRsZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG4sbCksZW0odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4ic3VidGl0bGUiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5zdWJ0aXRsZSwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnN1YnRpdGxlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYyxwKSxlbSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhcmlhbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InZhcmlhbnQiaW4geiwiaGFzIiksZ2V0OnMoej0+ei52YXJpYW50LCJnZXQiKSxzZXQ6cygoeixPKT0+e3oudmFyaWFudD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG0sdiksZW0odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzaXplImluIHosImhhcyIpLGdldDpzKHo9Pnouc2l6ZSwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNpemU9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLGVtKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InJ1bkFmdGVyUmVuZGVyImluIHosImhhcyIpLGdldDpzKHo9PnoucnVuQWZ0ZXJSZW5kZXIsImdldCIpLHNldDpzKCh6LE8pPT57ei5ydW5BZnRlclJlbmRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssQyksZW0obnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6X30sbnVsbCx0KSxOPXI9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1YcmE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1UMSh0aGlzLG4sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShfKXt0aGlzLiNlPV99I3Q9KFQxKHRoaXMsbCksVDEodGhpcyxjLCIiKSk7Z2V0IHN1YnRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN1YnRpdGxlKF8pe3RoaXMuI3Q9X30jYT0oVDEodGhpcyxwKSxUMSh0aGlzLG0sImRlZmF1bHQiKSk7Z2V0IHZhcmlhbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFyaWFudChfKXt0aGlzLiNhPV99I3I9KFQxKHRoaXMsdiksVDEodGhpcyxiLCJtZCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBzaXplKF8pe3RoaXMuI3I9X30jcz0oVDEodGhpcyxnKSxUMSh0aGlzLGssdm9pZCAwKSk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHJ1bkFmdGVyUmVuZGVyKF8pe3RoaXMuI3M9X31zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke3BhfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT93YDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxUMSh0aGlzLEMpfXN0YXRpY3tUMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgdHNhLENZZSxhc2EscnNhPWYoKCk9PntsZSgpO05hKCk7WXMoKTtDWWU9cyhhPT5BcnJheS5mcm9tKHtsZW5ndGg6YX0sKGUsdCk9Pih7aWQ6dCx1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKSxsYWJlbDpgJHt0fWB9KSksImdlbmVyYXRlQ3B1Q29yZXMiKSxhc2E9cygoKT0+dyh0c2F8fCh0c2E9UjUoW2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgYCxgCiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImFjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiBgLCI7IGJvcmRlci1yYWRpdXM6IDZweDsgZm9udC1zaXplOiAxNHB4OyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogIixgOyI+CiAgICAgICAgICA8ZW0+Q2xpY2sgb24gdGlsZSBhY3Rpb25zIG9yIGdyaWQgYWN0aW9ucyB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5Db25maWd1cmF0aW9uIE9wdGlvbnM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICBFYWNoIHRpbGUgdHlwZSBzdXBwb3J0cyBkaWZmZXJlbnQgcHJvcGVydGllczoKICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TnVtYmVyOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkdhdWdlOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgZ2F1Z2VPcHRpb25zIChtaW4sIG1heCwgdGhyZXNob2xkcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+UGVyY2VudGFnZTo8L3N0cm9uZz4gdmFsdWUgKDAtMTAwKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRyZW5kOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgdHJlbmREYXRhIGFycmF5LCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UZXh0Ojwvc3Ryb25nPiB2YWx1ZSAoc3RyaW5nKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPkNvbXBhY3QgTGF5b3V0ICgxODBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDI0cHggMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPlNwYWNpb3VzIExheW91dCAoMzIwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICBpZD0iY3B1LWNvcmVzLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPmAsYDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPlBhcnRpdGlvbiBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS51c2VkOjwvc3Ryb25nPiBVc2VkIHNwYWNlIGluIGJ5dGVzIChhdXRvLWZvcm1hdHRlZCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS50b3RhbDo8L3N0cm9uZz4gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5maWxlc3lzdGVtOjwvc3Ryb25nPiBGaWxlc3lzdGVtIHR5cGUgKGV4dDQsIHhmcywgbnRmcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5tb3VudFBvaW50Ojwvc3Ryb25nPiBNb3VudCBwb2ludCBwYXRoIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgQ29sb3IgdGhyZXNob2xkczogTm9ybWFsICgmbHQ7NzUlKSwgV2FybmluZyAoNzUtOTAlKSwgQ3JpdGljYWwgKCZndDs5MCUpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+RGlzayBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuY2FwYWNpdHk6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLm1vZGVsOjwvc3Ryb25nPiBEaXNrIG1vZGVsIG5hbWUgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS50eXBlOjwvc3Ryb25nPiBEaXNrIHR5cGU6ICdzc2QnLCAnaGRkJywgb3IgJ252bWUnPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmlvcHM6PC9zdHJvbmc+IFJlYWQvd3JpdGUgSU9QUyAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmhlYWx0aDo8L3N0cm9uZz4gSGVhbHRoIHBlcmNlbnRhZ2UgMC0xMDAgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICBIZWFsdGggdGhyZXNob2xkczogR29vZCAoNzAtMTAwJSksIFdhcm5pbmcgKDMwLTcwJSksIENyaXRpY2FsICgmbHQ7MzAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAvLyBDbGVhbnVwIGxpdmUgdXBkYXRlcyBvbiBwYWdlIHVubG9hZAogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKCkgPT4gewogICAgICAgIGlmICgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpOwogICAgICAgIH0KICAgICAgfSk7CiAgICA8XC9zY3JpcHQ+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSksWGAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpbGUtY29uZmlnIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctc2VjdGlvbiB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29kZS1ibG9jayB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgICB9CiAgICAgIGAsIjEuIENvbXByZWhlbnNpdmUgRGFzaGJvYXJkIiwiRnVsbC1mZWF0dXJlZCBzdGF0cyBncmlkIHdpdGggdmFyaW91cyB0aWxlIHR5cGVzLCBhY3Rpb25zLCBhbmQgTHVjaWRlIGljb25zIixbe2lkOiJyZXZlbnVlIix0aXRsZToiVG90YWwgUmV2ZW51ZSIsdmFsdWU6MTI1NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIixkZXNjcmlwdGlvbjoiKzEyLjUlIGZyb20gbGFzdCBtb250aCIsYWN0aW9uczpbe25hbWU6IlZpZXcgRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTp0cmVuZGluZy11cCIsYWN0aW9uOnMoYXN5bmMoKT0+e2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7YSYmKGEudGV4dENvbnRlbnQ9IlZpZXdpbmcgcmV2ZW51ZSBkZXRhaWxzOiAkMTI1LDQyMCAoKzEyLjUlKSIpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQgRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOnMoYXN5bmMoKT0+e2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7YSYmKGEudGV4dENvbnRlbnQ9IkV4cG9ydGluZyByZXZlbnVlIGRhdGEgdG8gQ1NWLi4uIil9LCJhY3Rpb24iKX1dfSx7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZTozODQ3LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIixkZXNjcmlwdGlvbjoiMzI0IG5ldyB0aGlzIHdlZWsiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IFVzZXIgTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246cyhhc3luYygpPT57bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTthJiYoYS50ZXh0Q29udGVudD0iT3BlbmluZyB1c2VyIGxpc3QuLi4iKX0sImFjdGlvbiIpfV19LHtpZDoiY3B1Iix0aXRsZToiQ1BVIFVzYWdlIix2YWx1ZTo3Myx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoic3RvcmFnZSIsdGl0bGU6IlN0b3JhZ2UgVXNlZCIsdmFsdWU6NjUsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI2NTAgR0Igb2YgMSBUQiJ9LHtpZDoibGF0ZW5jeSIsdGl0bGU6IlJlc3BvbnNlIFRpbWUiLHZhbHVlOjE0Mix1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOlsxNTAsMTQ1LDE0OCwxNDIsMTM4LDE0MCwxMzUsMTQ1LDE0Ml0sZGVzY3JpcHRpb246IlA5NSJ9LHtpZDoidXB0aW1lIix0aXRsZToiU3lzdGVtIFVwdGltZSIsdmFsdWU6Ijk5Ljk1JSIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNoZWNrLWNpcmNsZSIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMifV0sW3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLGFjdGlvbjpzKGFzeW5jKCk9PntsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLXN0YXRzZ3JpZCIpO2EmJihhLnN0eWxlLm9wYWNpdHk9IjAuNSIsc2V0VGltZW91dCgoKT0+e2Euc3R5bGUub3BhY2l0eT0iMSJ9LDMwMCkpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQiLGljb25OYW1lOiJsdWNpZGU6c2hhcmUiLGFjdGlvbjpzKGFzeW5jKCk9PntsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO2EmJihhLnRleHRDb250ZW50PSJFeHBvcnRpbmcgZGFzaGJvYXJkIHJlcG9ydC4uLiIpfSwiYWN0aW9uIil9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOnMoYXN5bmMoKT0+e2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7YSYmKGEudGV4dENvbnRlbnQ9Ik9wZW5pbmcgZGFzaGJvYXJkIHNldHRpbmdzLi4uIil9LCJhY3Rpb24iKX1dLDI1MCwxNixoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIiksaC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpLCIyLiBUaWxlIFR5cGVzIiwiRGlmZmVyZW50IHZpc3VhbGl6YXRpb24gdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBzdGF0cyBncmlkIixbe2lkOiJudW1iZXItZXhhbXBsZSIsdGl0bGU6Ik51bWJlciBUaWxlIix2YWx1ZTo0MjE5NSx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpoYXNoIixkZXNjcmlwdGlvbjoiU2ltcGxlIG51bWVyaWMgZGlzcGxheSJ9LHtpZDoiZ2F1Z2UtZXhhbXBsZSIsdGl0bGU6IkdhdWdlIFRpbGUiLHZhbHVlOjY4LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Z2F1Z2UiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo1MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InBlcmNlbnRhZ2UtZXhhbXBsZSIsdGl0bGU6IlBlcmNlbnRhZ2UgVGlsZSIsdmFsdWU6NzgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnBlcmNlbnQiLGRlc2NyaXB0aW9uOiJQcm9ncmVzcyBiYXIgdmlzdWFsaXphdGlvbiJ9LHtpZDoidHJlbmQtZXhhbXBsZSIsdGl0bGU6IlRyZW5kIFRpbGUiLHZhbHVlOjg5Mix1bml0OiJvcHMvcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsdHJlbmREYXRhOls3MjAsNzUwLDc4MCw3OTUsODEwLDgzNSw4NTAsODY1LDg4MCw4OTJdLGRlc2NyaXB0aW9uOiJhdmcifSx7aWQ6InRleHQtZXhhbXBsZSIsdGl0bGU6IlRleHQgVGlsZSIsdmFsdWU6Ik9wZXJhdGlvbmFsIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6aW5mbyIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJTdGF0dXMgZGlzcGxheSJ9XSwyODAsMTYsIjMuIEdyaWQgQ29uZmlndXJhdGlvbnMiLCJEaWZmZXJlbnQgbGF5b3V0IG9wdGlvbnMgYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3IiLFt7aWQ6IjEiLHRpdGxlOiJPcmRlcnMiLHZhbHVlOjE1Nix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaG9wcGluZy1jYXJ0In0se2lkOiIyIix0aXRsZToiUmV2ZW51ZSIsdmFsdWU6ODQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiJ9LHtpZDoiMyIsdGl0bGU6IlVzZXJzIix2YWx1ZTo0MjMsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMifSx7aWQ6IjQiLHRpdGxlOiJHcm93dGgiLHZhbHVlOjEyLjUsdW5pdDoiJSIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn1dLDE4MCwxMixbe2lkOiJzcGFjaW91czEiLHRpdGxlOiJNb250aGx5IFJldmVudWUiLHZhbHVlOjE4NDUwMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjcmVkaXQtY2FyZCIsZGVzY3JpcHRpb246IlRvdGFsIHJldmVudWUgdGhpcyBtb250aCJ9LHtpZDoic3BhY2lvdXMyIix0aXRsZToiQ3VzdG9tZXIgU2F0aXNmYWN0aW9uIix2YWx1ZTo5NCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c21pbGUiLGRlc2NyaXB0aW9uOiJCYXNlZCBvbiAxLDIzNCByZXZpZXdzIn0se2lkOiJzcGFjaW91czMiLHRpdGxlOiJTZXJ2ZXIgUmVzcG9uc2UiLHZhbHVlOjk4LHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnNlcnZlciIsdHJlbmREYXRhOlsxMDUsMTAyLDEwMCw5OSw5OCw5OCw5Nyw5OF0sZGVzY3JpcHRpb246ImF2ZyByZXNwb25zZSB0aW1lIn1dLDMyMCwyMCwiNC4gQ1BVIENvcmVzIFZpc3VhbGl6YXRpb24iLCJWZXJ0aWNhbCBiYXIgdmlzdWFsaXphdGlvbiBmb3IgbXVsdGktY29yZSBDUFUgdXNhZ2Ugd2l0aCBjb2x1bW4gc3Bhbm5pbmciLFt7aWQ6ImNwdS1jb3Jlcy04Iix0aXRsZToiQ1BVIENvcmVzICg4LWNvcmUpIix2YWx1ZTowLHR5cGU6ImNwdUNvcmVzIixpY29uOiJsdWNpZGU6Y3B1Iixjb2x1bW5TcGFuOjIsY29yZXNEYXRhOkNZZSg4KSxkZXNjcmlwdGlvbjoiSW50ZWwgaTcgLSA4IGNvcmVzIn0se2lkOiJtZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjY4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSIsZGVzY3JpcHRpb246IjEzLjYgR0Igb2YgMjAgR0IifSx7aWQ6ImNwdS1jb3Jlcy0xNiIsdGl0bGU6IkNQVSBDb3JlcyAoMTYtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6Q1llKDE2KSxkZXNjcmlwdGlvbjoiQU1EIFJ5emVuIDkgLSAxNiBjb3JlcyJ9LHtpZDoibmV0d29yayIsdGl0bGU6Ik5ldHdvcmsgSS9PIix2YWx1ZToyNDUsdW5pdDoiTUIvcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTpuZXR3b3JrIix0cmVuZERhdGE6WzIwMCwyMjAsMjM1LDI0MCwyMzgsMjQ1XSxkZXNjcmlwdGlvbjoidGhyb3VnaHB1dCJ9LHtpZDoiY3B1LWNvcmVzLTMyIix0aXRsZToiU2VydmVyIENQVSAoMzItY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLGNvbHVtblNwYW46Myxjb3Jlc0RhdGE6Q1llKDMyKSxkZXNjcmlwdGlvbjoiQU1EIEVQWUMgLSAzMiBjb3JlcyJ9LHtpZDoiZGlzayIsdGl0bGU6IkRpc2sgVXNhZ2UiLHZhbHVlOjQyLHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkZXNjcmlwdGlvbjoiNDIwIEdCIG9mIDEgVEIifV0sW3tuYW1lOiJSYW5kb21pemUiLGljb25OYW1lOiJsdWNpZGU6c2h1ZmZsZSIsYWN0aW9uOnMoYXN5bmMoKT0+e2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjcHUtY29yZXMtZ3JpZCIpO2lmKCFhKXJldHVybjtsZXQgZT1hLnRpbGVzLm1hcCh0PT50LnR5cGU9PT0iY3B1Q29yZXMiJiZ0LmNvcmVzRGF0YT97Li4udCxjb3Jlc0RhdGE6dC5jb3Jlc0RhdGEubWFwKHI9Pih7Li4ucix1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKX0pKX06dCk7YS50aWxlcz1lfSwiYWN0aW9uIil9XSwyNTAsMTYsIjUuIEludGVyYWN0aXZlIEZlYXR1cmVzIiwiVGlsZXMgd2l0aCBhY3Rpb25zIGFuZCByZWFsLXRpbWUgdXBkYXRlcyIsW3tpZDoibGl2ZS1jcHUiLHRpdGxlOiJMaXZlIENQVSIsdmFsdWU6NDUsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpjcHUiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo2MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6ImxpdmUtcmVxdWVzdHMiLHRpdGxlOiJSZXF1ZXN0cy9zZWMiLHZhbHVlOjg5Mix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5Iix0cmVuZERhdGE6Wzg1MCw4NjAsODcwLDg4MCw4ODUsODkwLDg5Ml19LHtpZDoibGl2ZS1tZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjYyLHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSJ9LHtpZDoiY291bnRlciIsdGl0bGU6IkV2ZW50IENvdW50ZXIiLHZhbHVlOjAsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6emFwIixhY3Rpb25zOlt7bmFtZToiSW5jcmVtZW50IixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjpzKGFzeW5jKCk9PntsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFhKXJldHVybjtsZXQgZT1hLnRpbGVzLmZpbmQodD0+dC5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT10eXBlb2YgZS52YWx1ZT09Im51bWJlciI/ZS52YWx1ZSsxOjEsYS50aWxlcz1bLi4uYS50aWxlc119LCJhY3Rpb24iKX0se25hbWU6IlJlc2V0IixpY29uTmFtZToibHVjaWRlOnJvdGF0ZS1jY3ciLGFjdGlvbjpzKGFzeW5jKCk9PntsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFhKXJldHVybjtsZXQgZT1hLnRpbGVzLmZpbmQodD0+dC5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT0wLGEudGlsZXM9Wy4uLmEudGlsZXNdfSwiYWN0aW9uIil9XX1dLFt7bmFtZToiU3RhcnQgTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnBsYXkiLGFjdGlvbjpzKGFzeW5jIGZ1bmN0aW9uKCl7d2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD8oY2xlYXJJbnRlcnZhbCh3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsKSx3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPW51bGwsdGhpcy5uYW1lPSJTdGFydCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwbGF5Iik6KHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKGEpe2xldCBlPVsuLi5hLnRpbGVzXSx0PWUuZmluZChuPT5uLmlkPT09ImxpdmUtY3B1Iik7dC52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCx0LnZhbHVlKyhNYXRoLnJhbmRvbSgpKjIwLTEwKSkpO2xldCByPWUuZmluZChuPT5uLmlkPT09ImxpdmUtcmVxdWVzdHMiKSxpPXIudmFsdWUrTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjUwLTI1KTtyLnZhbHVlPU1hdGgubWF4KDgwMCxpKSxyLnRyZW5kRGF0YT1bLi4uci50cmVuZERhdGEuc2xpY2UoMSksci52YWx1ZV07bGV0IG89ZS5maW5kKG49Pm4uaWQ9PT0ibGl2ZS1tZW1vcnkiKTtvLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLG8udmFsdWUrKE1hdGgucmFuZG9tKCkqMTAtNSkpKSxhLnRpbGVzPWV9fSwxZTMpLHRoaXMubmFtZT0iU3RvcCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwYXVzZSIpfSwiYWN0aW9uIil9XSwyNTAsMTYsIjYuIENvZGUgRXhhbXBsZSIsIkhvdyB0byBpbXBsZW1lbnQgYSBzdGF0cyBncmlkIHdpdGggVHlwZVNjcmlwdCIsYGNvbnN0IHRpbGVzOiBJU3RhdHNUaWxlW10gPSBbCiAgewogICAgaWQ6ICdyZXZlbnVlJywKICAgIHRpdGxlOiAnVG90YWwgUmV2ZW51ZScsCiAgICB2YWx1ZTogMTI1NDIwLAogICAgdW5pdDogJyQnLAogICAgdHlwZTogJ251bWJlcicsCiAgICBpY29uOiAnbHVjaWRlOmRvbGxhci1zaWduJywKICAgIGRlc2NyaXB0aW9uOiAnKzEyLjUlIGZyb20gbGFzdCBtb250aCcsCiAgICBhY3Rpb25zOiBbCiAgICAgIHsKICAgICAgICBuYW1lOiAnVmlldyBEZXRhaWxzJywKICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp0cmVuZGluZy11cCcsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7CiAgICAgICAgICBjb25zb2xlLmxvZygnVmlldyByZXZlbnVlIGRldGFpbHMnKTsKICAgICAgICB9CiAgICAgIH0KICAgIF0KICB9LAogIHsKICAgIGlkOiAnY3B1JywKICAgIHRpdGxlOiAnQ1BVIFVzYWdlJywKICAgIHZhbHVlOiA3MywKICAgIHVuaXQ6ICclJywKICAgIHR5cGU6ICdnYXVnZScsCiAgICBpY29uOiAnbHVjaWRlOmNwdScsCiAgICBnYXVnZU9wdGlvbnM6IHsKICAgICAgbWluOiAwLAogICAgICBtYXg6IDEwMCwKICAgICAgdGhyZXNob2xkczogWwogICAgICAgIHsgdmFsdWU6IDAsIGNvbG9yOiAnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKScgfSwKICAgICAgICB7IHZhbHVlOiA2MCwgY29sb3I6ICdoc2woNDUuNCA5My40JSA0Ny41JSknIH0sCiAgICAgICAgeyB2YWx1ZTogODAsIGNvbG9yOiAnaHNsKDAgODQuMiUgNjAuMiUpJyB9CiAgICAgIF0KICAgIH0KICB9Cl07CgovLyBSZW5kZXIgdGhlIHN0YXRzIGdyaWQKaHRtbFxgCiAgPGRlZXMtc3RhdHNncmlkCiAgICAudGlsZXM9XCR7dGlsZXN9CiAgICAubWluVGlsZVdpZHRoPVwkezI1MH0KICAgIC5nYXA9XCR7MTZ9CiAgICAuZ3JpZEFjdGlvbnM9XCR7WwogICAgICB7CiAgICAgICAgbmFtZTogJ1JlZnJlc2gnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnJlZnJlc2gtY3cnLAogICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1JlZnJlc2gnKQogICAgICB9CiAgICBdfQogID48L2RlZXMtc3RhdHNncmlkPgpcYDtgLCI3LiBEaXNrICYgU3RvcmFnZSBUaWxlcyIsIlBhcnRpdGlvbiBhbmQgcGh5c2ljYWwgZGlzayB2aXN1YWxpemF0aW9uIHRpbGVzIixbe2lkOiJyb290LXBhcnRpdGlvbiIsdGl0bGU6IlJvb3QgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmZvbGRlci1yb290IixwYXJ0aXRpb25EYXRhOnt1c2VkOjY5ODM0MTQyNTE1Mix0b3RhbDoxMDczNzQxODI0ZTMsZmlsZXN5c3RlbToiZXh0NCIsbW91bnRQb2ludDoiLyJ9fSx7aWQ6ImhvbWUtcGFydGl0aW9uIix0aXRsZToiSG9tZSBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6aG9tZSIscGFydGl0aW9uRGF0YTp7dXNlZDoyMTQ3NDgzNjQ4MDAsdG90YWw6NTM2ODcwOTEyZTMsZmlsZXN5c3RlbToiZXh0NCIsbW91bnRQb2ludDoiL2hvbWUifX0se2lkOiJkYXRhLXBhcnRpdGlvbiIsdGl0bGU6IkRhdGEgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIixwYXJ0aXRpb25EYXRhOnt1c2VkOjE5MzI3MzUyODMyMDAsdG90YWw6MjE0NzQ4MzY0OGUzLGZpbGVzeXN0ZW06InhmcyIsbW91bnRQb2ludDoiL2RhdGEifX0se2lkOiJudm1lLXNzZCIsdGl0bGU6IlByaW1hcnkgTlZNZSIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsY29sdW1uU3BhbjoyLGRpc2tEYXRhOntjYXBhY2l0eToyZTEyLG1vZGVsOiJTYW1zdW5nIDk5MCBQcm8iLHR5cGU6Im52bWUiLGlvcHM6e3JlYWQ6NzQ1MCx3cml0ZTo2OTAwfSxoZWFsdGg6OTh9fSx7aWQ6InNhdGEtc3NkIix0aXRsZToiU2Vjb25kYXJ5IFNTRCIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGlza0RhdGE6e2NhcGFjaXR5OjFlMTIsbW9kZWw6IkNydWNpYWwgTVg1MDAiLHR5cGU6InNzZCIsaW9wczp7cmVhZDo1NjAsd3JpdGU6NTEwfSxoZWFsdGg6ODV9fSx7aWQ6ImhkZC1zdG9yYWdlIix0aXRsZToiQmFja3VwIEhERCIsdmFsdWU6MCx0eXBlOiJkaXNrIixpY29uOiJsdWNpZGU6YXJjaGl2ZSIsZGlza0RhdGE6e2NhcGFjaXR5OjhlMTIsbW9kZWw6IlNlYWdhdGUgSXJvbldvbGYiLHR5cGU6ImhkZCIsaW9wczp7cmVhZDoyMTAsd3JpdGU6MTk1fSxoZWFsdGg6NDJ9fV0sMjgwLDE2KSwiZGVtb0Z1bmMiKX0pO3ZhciBzNCxQaSxNdCxTcj1mKCgpPT57bGUoKTtlYSgpO3M0PWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxQaT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sTXQ9KCgpPT57bGV0IGE9cGUsZSx0PVtdLHI9W10saSxvPVtdLG49W10sbCxkPVtdLGM9W10scCx1PVtdLG09W10sdix4PVtdLGI9W10sZyx5PVtdLGs9W10sQyxOPVtdLF89W10seixPPVtdLFQ9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7cyh0aGlzLCJEZWVzSW5wdXRCYXNlIil9c3RhdGlje2xldCBCPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9WyQoe3R5cGU6U3RyaW5nfSldLGk9WyQoe3R5cGU6U3RyaW5nfSldLGw9WyQoe3R5cGU6U3RyaW5nfSldLHA9WyQoe3R5cGU6U3RyaW5nfSldLHY9WyQoe3R5cGU6Qm9vbGVhbn0pXSxnPVskKHt0eXBlOkJvb2xlYW59KV0sQz1bJCh7dHlwZTpTdHJpbmd9KV0sej1bJCh7dHlwZTpTdHJpbmd9KV0sczQodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXlvdXRNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKE09PiJsYXlvdXRNb2RlImluIE0sImhhcyIpLGdldDpzKE09Pk0ubGF5b3V0TW9kZSwiZ2V0Iiksc2V0OnMoKE0sUyk9PntNLmxheW91dE1vZGU9U30sInNldCIpfSxtZXRhZGF0YTpCfSx0LHIpLHM0KHRoaXMsbnVsbCxpLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWxQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhNPT4ibGFiZWxQb3NpdGlvbiJpbiBNLCJoYXMiKSxnZXQ6cyhNPT5NLmxhYmVsUG9zaXRpb24sImdldCIpLHNldDpzKChNLFMpPT57TS5sYWJlbFBvc2l0aW9uPVN9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sbyxuKSxzNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhNPT4ia2V5ImluIE0sImhhcyIpLGdldDpzKE09Pk0ua2V5LCJnZXQiKSxzZXQ6cygoTSxTKT0+e00ua2V5PVN9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sZCxjKSxzNCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKE09PiJsYWJlbCJpbiBNLCJoYXMiKSxnZXQ6cyhNPT5NLmxhYmVsLCJnZXQiKSxzZXQ6cygoTSxTKT0+e00ubGFiZWw9U30sInNldCIpfSxtZXRhZGF0YTpCfSx1LG0pLHM0KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTT0+InJlcXVpcmVkImluIE0sImhhcyIpLGdldDpzKE09Pk0ucmVxdWlyZWQsImdldCIpLHNldDpzKChNLFMpPT57TS5yZXF1aXJlZD1TfSwic2V0Iil9LG1ldGFkYXRhOkJ9LHgsYiksczQodGhpcyxudWxsLGcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhNPT4iZGlzYWJsZWQiaW4gTSwiaGFzIiksZ2V0OnMoTT0+TS5kaXNhYmxlZCwiZ2V0Iiksc2V0OnMoKE0sUyk9PntNLmRpc2FibGVkPVN9LCJzZXQiKX0sbWV0YWRhdGE6Qn0seSxrKSxzNCh0aGlzLG51bGwsQyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZm9UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKE09PiJpbmZvVGV4dCJpbiBNLCJoYXMiKSxnZXQ6cyhNPT5NLmluZm9UZXh0LCJnZXQiKSxzZXQ6cygoTSxTKT0+e00uaW5mb1RleHQ9U30sInNldCIpfSxtZXRhZGF0YTpCfSxOLF8pLHM0KHRoaXMsbnVsbCx6LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTT0+ImRlc2NyaXB0aW9uImluIE0sImhhcyIpLGdldDpzKE09Pk0uZGVzY3JpcHRpb24sImdldCIpLHNldDpzKChNLFMpPT57TS5kZXNjcmlwdGlvbj1TfSwic2V0Iil9LG1ldGFkYXRhOkJ9LE8sVCksQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9I2U9UGkodGhpcyx0LCJhdXRvIik7Z2V0IGxheW91dE1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGF5b3V0TW9kZShCKXt0aGlzLiNlPUJ9I3Q9KFBpKHRoaXMsciksUGkodGhpcyxvLCJ0b3AiKSk7Z2V0IGxhYmVsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFiZWxQb3NpdGlvbihCKXt0aGlzLiN0PUJ9I2E9KFBpKHRoaXMsbiksUGkodGhpcyxkLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQga2V5KEIpe3RoaXMuI2E9Qn0jcj0oUGkodGhpcyxjKSxQaSh0aGlzLHUsdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhYmVsKEIpe3RoaXMuI3I9Qn0jcz0oUGkodGhpcyxtKSxQaSh0aGlzLHgsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVxdWlyZWQoQil7dGhpcy4jcz1CfSNpPShQaSh0aGlzLGIpLFBpKHRoaXMseSwhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNpfXNldCBkaXNhYmxlZChCKXt0aGlzLiNpPUJ9I289KFBpKHRoaXMsayksUGkodGhpcyxOLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCBpbmZvVGV4dChCKXt0aGlzLiNvPUJ9I249KFBpKHRoaXMsXyksUGkodGhpcyxPLHZvaWQgMCkpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiNufXNldCBkZXNjcmlwdGlvbihCKXt0aGlzLiNuPUJ9c3RhdGljIGdldCBiYXNlU3R5bGVzKCl7cmV0dXJuW1hgCiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgY29uc2lzdGVudCBzcGFjaW5nICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdDogOHB4OwogICAgICAgICAgLS1kZWVzLWlucHV0LWxhYmVsLWdhcDogdmFyKC0tZGVlcy1pbnB1dC1zcGFjaW5nLXVuaXQpOyAvKiA4cHggKi8KICAgICAgICB9CgogICAgICAgIC8qIERlZmF1bHQgYmxvY2sgZGlzcGxheSB3aXRoIG5vIG1hcmdpbnMgLSBzcGFjaW5nIGlzIGNvbnRhaW5lci1kcml2ZW4gKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICB9CgogICAgICAgIC8qIEhvcml6b250YWwgbGF5b3V0IG1vZGUgLSBhY3RpdmF0ZWQgYnkgYXR0cmlidXRlICovCiAgICAgICAgOmhvc3QoW2xheW91dC1tb2RlPSJob3Jpem9udGFsIl0pIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB9CgogICAgICAgIC8qIExhYmVsIHBvc2l0aW9uIHZhcmlhdGlvbnMgKi8KICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InJpZ2h0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvOwogICAgICAgICAgZ2FwOiB2YXIoLS1kZWVzLWlucHV0LWxhYmVsLWdhcCk7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249Im5vbmUiXSkgZGVlcy1sYWJlbCB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLyogRGVzY3JpcHRpb24gdGV4dCBiZWxvdyBpbnB1dCAqLwogICAgICAgIC5kZXNjcmlwdGlvblRleHQgewogICAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIH0KICAgICAgYF19Y2hhbmdlU3ViamVjdD0oUGkodGhpcyxUKSxuZXcgSHQuc21hcnRyeC5yeGpzLlN1YmplY3QpO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRldGVjdExheW91dE1vZGUoKX1kZXRlY3RMYXlvdXRNb2RlKCl7aWYodGhpcy5sYXlvdXRNb2RlIT09ImF1dG8iKXt0aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLHRoaXMubGF5b3V0TW9kZSk7cmV0dXJufWxldCBCPXRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIik7QiYmQi5oYXNBdHRyaWJ1dGUoImhvcml6b250YWwtbGF5b3V0Iik/dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwiaG9yaXpvbnRhbCIpOnRoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsInZlcnRpY2FsIil9dXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLEIuaGFzKCJsYXlvdXRNb2RlIikmJnRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpLEIuaGFzKCJsYWJlbFBvc2l0aW9uIikmJnRoaXMuc2V0QXR0cmlidXRlKCJsYWJlbC1wb3NpdGlvbiIsdGhpcy5sYWJlbFBvc2l0aW9uKX1hc3luYyBmcmVlemUoKXt0aGlzLmRpc2FibGVkPSEwfWFzeW5jIHVuZnJlZXplKCl7dGhpcy5kaXNhYmxlZD0hMX1yZW5kZXJEZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLmRlc2NyaXB0aW9uP3dgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb25UZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn19fSkoKX0pO3ZhciBzc2EsaXNhPWYoKCk9PntsZSgpO05hKCk7WXMoKTtrZigpO3NzYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtY2hlY2tib3giKSx0PWEucXVlcnlTZWxlY3RvcigiI3NlbGVjdC1hbGwtYnRuIikscj1hLnF1ZXJ5U2VsZWN0b3IoIiNjbGVhci1hbGwtYnRuIik7dCYmciYmKHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKGk9PnshaS5kaXNhYmxlZCYmaS5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKGkudmFsdWU9ITApfSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZm9yRWFjaChpPT57IWkuZGlzYWJsZWQmJmkua2V5Py5zdGFydHNXaXRoKCJmZWF0dXJlIikmJihpLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7WGAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsidGVybXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJuZXdzbGV0dGVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIGVtYWlsIHVwZGF0ZXMgYWJvdXQgeW91ciBhY2NvdW50In0KICAgICAgICAgICAgLmtleT0keyJub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDaGVja2JveCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGNoZWNrYm94IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkNoZWNrZWQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIHVuY2hlY2tlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGNoZWNrZWQifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBjaGVja2JveCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7InJlcXVpcmVkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJDaGVja2JveGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWNoZWNrYm94ZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25BIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBCIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gRCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25EIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBTZWxlY3Rpb24gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdXNlIGNhc2UgZm9yIGZlYXR1cmUgdG9nZ2xlcyB3aXRoIGJhdGNoIG9wZXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJzZWxlY3QtYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5TZWxlY3QgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0iY2xlYXItYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5DbGVhciBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUgU3VwcG9ydCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiQVBJIEFjY2VzcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlNCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcml2YWN5IFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2hlY2tib3hlcyBpbiBhIHR5cGljYWwgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHJpdmFjeSBQcmVmZXJlbmNlczwvaDQ+CgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiU2hhcmUgYW5hbHl0aWNzIGRhdGEifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJQZXJzb25hbGl6ZWQgcmVjb21tZW5kYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiR2V0IHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHlvdXIgYWN0aXZpdHkifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwcm9tb3Rpb25hbCBlbWFpbHMgYW5kIHNwZWNpYWwgb2ZmZXJzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRoaXJkLXBhcnR5IGludGVncmF0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7YT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGVja2JveC1vdXRwdXQiKTtpZihlJiZhLmRldGFpbCl7bGV0IHQ9YS5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBGZWF0dXJlIGlzICR7dD8iZW5hYmxlZCI6ImRpc2FibGVkIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7YT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkZWJ1Zy1vdXRwdXQiKTtpZihlJiZhLmRldGFpbCl7bGV0IHQ9YS5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBEZWJ1ZyBtb2RlOiAke3Q/Ik9OIjoiT0ZGIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgX1llLCRVLEd0ZSxZdGU9ZigoKT0+e2xlKCk7U3IoKTtpc2EoKTttcygpO1FlKCk7X1llPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSwkVT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sR3RlPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1pbnB1dC1jaGVja2JveCIpXSxlLHQ9W10scixpPU10LG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdO3ZhciB1PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzSW5wdXRDaGVja2JveCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6Qm9vbGVhbn0pXSxkPVskKHt0eXBlOkJvb2xlYW59KV0sX1llKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InZhbHVlImluIHYsImhhcyIpLGdldDpzKHY9PnYudmFsdWUsImdldCIpLHNldDpzKCh2LHgpPT57di52YWx1ZT14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCksX1llKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iaW5kZXRlcm1pbmF0ZSJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LmluZGV0ZXJtaW5hdGUsImdldCIpLHNldDpzKCh2LHgpPT57di5pbmRldGVybWluYXRlPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxfWWUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1zc2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPSRVKHRoaXMsbiwhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKG0pe3RoaXMuI2U9bX0jdD0oJFUodGhpcyxsKSwkVSh0aGlzLGMsITEpKTtnZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbmRldGVybWluYXRlKG0pe3RoaXMuI3Q9bX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksJFUodGhpcyxwKSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtQZSwuLi5NdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgKiB7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7cGF9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3ggewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi8KICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCAuY2hlY2ttYXJrIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayBzdmcgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBzdHJva2U6IHdoaXRlOwogICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgIH0KCiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCAqLwogICAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDJweDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiBAY2xpY2s9IiR7dGhpcy50b2dnbGVTZWxlY3RlZH0iPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9ImNoZWNrYm94ICR7dGhpcy52YWx1ZT8ic2VsZWN0ZWQiOiIifSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIAogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIwIDZMOSAxN0w0IDEyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6dGhpcy5pbmRldGVybWluYXRlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZWNrbWFyayI+CiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTJIMTkiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9ImNoZWNrYm94LWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIHRvZ2dsZVNlbGVjdGVkKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWU9IXRoaXMudmFsdWUsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKG0pe3RoaXMudmFsdWU9bX1mb2N1cygpe2xldCBtPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hlY2tib3giKTttJiZtLmZvY3VzKCl9aGFuZGxlS2V5ZG93bihtKXsobS5rZXk9PT0iICJ8fG0ua2V5PT09IkVudGVyIikmJihtLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3RlZCgpKX1zdGF0aWN7JFUocix0KX19O3JldHVybiB1PXJ9KSgpfSk7dmFyIHRtPXt9O2x0KHRtLHticmlnaHQ6KCk9Pm80LGRhcms6KCk9Pmk0fSk7dmFyIGk0LG80LEwxPWYoKCk9PntpND17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDEyNDUyIix0ZXh0OiIjZmZmZmZmIn0sbzQ9e2JsdWU6IiMwMDUwYjkiLGJsdWVBY3RpdmU6IiMwMDY5ZjIiLGJsdWVNdXRlZDoiIzAwNjlmMiIsdGV4dDoiIzMzMzMzMyJ9fSk7dmFyIG9zYSxuc2E9ZigoKT0+e2xlKCk7Y2MoKTtvc2E9cygoKT0+d2AKICA8c3R5bGU+CiAgICAke1hgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOnMoYXN5bmMoKT0+e2F3YWl0IE1hLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkhlbHAiLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLHNob3dIZWxwQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHByb3ZpZGUgY29udGV4dC1zcGVjaWZpYyBoZWxwIGhlcmUuPC9wPgogICAgICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfV19KX0sIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOnMoKCk9PmFsZXJ0KCJIZWxwIGNsaWNrZWQhIiksIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e01hLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6Ik9LIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e01hLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e01hLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDpzKGFzeW5jKCk9PnthbGVydCgiSW4gYSByZWFsIGFwcCwgdGhpcyB3b3VsZCBzaG93IGVkaXRvciBkb2N1bWVudGF0aW9uIil9LCJvbkhlbHAiKSxjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e01hLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDpzKCgpPT5jb25zb2xlLmxvZygiSGVscCByZXF1ZXN0ZWQgZm9yIHJlc3BvbnNpdmUgbW9kYWwiKSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNjcm9sbGFibGUgQ29udGVudDwvaDM+CiAgICAgIDxwPldoZW4gY29udGVudCBleGNlZWRzIHRoZSBtb2RhbCdzIG1heC1oZWlnaHQgKDxjb2RlPmNhbGMoMTAwdmggLSA4MHB4KTwvY29kZT4pLCB0aGUgdGlsZSBjYXBzIGF0IHRoYXQgaGVpZ2h0IGFuZCB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgaW5zaWRlLiBUaGUgaGVhZGluZyBhbmQgYm90dG9tIGJ1dHRvbnMgc3RheSBwaW5uZWQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBBcnRpY2xlIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2g0PgogICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjQwfSwoYSxlKT0+d2AKICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICA8c3Ryb25nPsKnICR7ZSsxfS48L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGRvCiAgICAgICAgICAgICAgICAgIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0CiAgICAgICAgICAgICAgICAgIGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcwogICAgICAgICAgICAgICAgICBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvcgogICAgICAgICAgICAgICAgICBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0CiAgICAgICAgICAgICAgICAgIG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LAogICAgICAgICAgICAgICAgICBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJBY2NlcHQiLGFjdGlvbjpzKGFzeW5jIGE9PmEuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIEFydGljbGU8L2RlZXMtYnV0dG9uPgoKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIExpc3QiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNlbGVjdGVkIGl0ZW1zOjwvcD4KICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmctbGVmdDogMjBweDsgbWFyZ2luOiAwOyI+CiAgICAgICAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDo4MH0sKGEsZSk9PndgCiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0icGFkZGluZzogNHB4IDA7Ij5JdGVtICR7ZSsxfSDigJQgb3B0aW9uIGxhYmVsPC9saT4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMaXN0PC9kZWVzLWJ1dHRvbj4KCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiVGFsbCBGb3JtIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjI1fSwoYSxlKT0+d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHtgRmllbGQgJHtlKzF9YH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOnMoYXN5bmMgYT0+YS5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU3VibWl0IixhY3Rpb246cyhhc3luYyBhPT5hLmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGFsbCBGb3JtPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBsc2EsY3NhPWYoKCk9PntsZSgpO1FyKCk7bHNhPXMoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgICR7WGAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC50aWxlLWRlbW8tY29udGVudCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB9CiAgICAgICAgICAuZm9vdGVyLXN0YXRzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyAuc3RhdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyAuc3RhdCBzdHJvbmcgewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkZWVzLXRpbGUgaGVhZGluZz0iU2ltcGxlIFRpbGUiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q29udGVudCBhcmVhIHdpdGggcm91bmRlZCBjb3JuZXJzPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDxkZWVzLXRpbGUgaGVhZGluZz0iVGlsZSB3aXRoIEZvb3RlciIgc3R5bGU9ImhlaWdodDogMjAwcHg7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVtby1jb250ZW50Ij5Db250ZW50IGdvZXMgaGVyZTwvZGl2PgogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJmb290ZXItc3RhdHMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+bGF0ZXN0IDxzdHJvbmc+NDI8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5taW4gPHN0cm9uZz4xMjwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPm1heCA8c3Ryb25nPjg3PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+YXZnIDxzdHJvbmc+NDUuMzwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8ZGVlcy10aWxlIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7d2lkdGg6MTAwJTsiPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NTAwOyI+Q3VzdG9tIEhlYWRlcjwvc3Bhbj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2guLi4iIHN0eWxlPSJmbGV4OjE7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6MnB4IDhweDtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXItY29sb3I6aW5oZXJpdDsiPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q3VzdG9tIGhlYWRlciBzbG90IHdpdGggc2VhcmNoIGlucHV0PC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgS3RlLFNmLGRzYSxRcj1mKCgpPT57bGUoKTtjc2EoKTttcygpO1FlKCk7S3RlPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxTZj1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sZHNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy10aWxlIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNUaWxlIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx1PVtLKCldLEt0ZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+ImhlYWRpbmciaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5oZWFkaW5nLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuaGVhZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG4sbCksS3RlKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3ZlcnNjcm9sbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4ib3ZlcnNjcm9sbCJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLm92ZXJzY3JvbGwsImdldCIpLHNldDpzKChnLHkpPT57Zy5vdmVyc2Nyb2xsPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sYyxwKSxLdGUodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNGb290ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+Imhhc0Zvb3RlciJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLmhhc0Zvb3RlciwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmhhc0Zvb3Rlcj15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdiksS3RlKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89bHNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9U2YodGhpcyxuLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKGIpe3RoaXMuI2U9Yn0jdD0oU2YodGhpcyxsKSxTZih0aGlzLGMsImF1dG8iKSk7Z2V0IG92ZXJzY3JvbGwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3ZlcnNjcm9sbChiKXt0aGlzLiN0PWJ9I2E9KFNmKHRoaXMscCksU2YodGhpcyxtLCExKSk7Z2V0IGhhc0Zvb3Rlcigpe3JldHVybiB0aGlzLiNhfXNldCBoYXNGb290ZXIoYil7dGhpcy4jYT1ifXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZvbnQtZmFtaWx5OiAke3BhfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAvKiAtLS0gVGhlIGZyYW1lIC0tLSAqLwogICAgICAudGlsZS1vdXRlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLyogLS0tIEhlYWRlcjogYmFyZSBjb250YWluZXIsIG9ubHkgdGhlIGRlZmF1bHQgaGVhZGluZyBnZXRzIHN0eWxlZCAtLS0gKi8KICAgICAgLnRpbGUtaGVhZGVyIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBDb250ZW50OiB0aGUgcm91bmRlZCBpbnNldCAtLS0KICAgICAgICAgVXNlcyBvdmVyZmxvdy15OiBhdXRvIHNvIHRoYXQgd2hlbiBhIGNvbnN1bWVyIChlLmcuIGRlZXMtbW9kYWwpIGNhcHMKICAgICAgICAgdGhlIHRpbGUgd2l0aCBtYXgtaGVpZ2h0LCBsb25nIGNvbnRlbnQgc2Nyb2xscyBpbnNpZGUgdGhlIHRpbGUKICAgICAgICAgaW5zdGVhZCBvZiBiZWluZyBjbGlwcGVkLiBGb3IgY29uc3VtZXJzIHdpdGhvdXQgbWF4LWhlaWdodAogICAgICAgICAoZS5nLiBkZWVzLXN0ZXBwZXIpLCB0aGUgdGlsZSBncm93cyB3aXRoIGNvbnRlbnQgYW5kIHRoZSBzY3JvbGwKICAgICAgICAgbmV2ZXIgYWN0aXZhdGVzLiBIb3Jpem9udGFsIG92ZXJmbG93IHN0YXlzIGNsaXBwZWQgdG8gcHJlc2VydmUgdGhlCiAgICAgICAgIHJvdW5kZWQgY29ybmVycy4gKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgOmhvc3QoW292ZXJzY3JvbGw9ImNvbnRhaW4iXSkgLnRpbGUtY29udGVudCB7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGVudC5uby1mb290ZXIgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsKICAgICAgfQoKICAgICAgLyogLS0tIEZvb3RlcjogYmFyZSBjb250YWluZXIsIGNvbnN1bWVyIHN0eWxlcyB0aGUgc2xvdHRlZCBjb250ZW50IC0tLSAqLwogICAgICAudGlsZS1mb290ZXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS1mb290ZXIuaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdXRlciIgcGFydD0ib3V0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaGVhZGVyIiBwYXJ0PSJoZWFkZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgIDwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbnRlbnQgJHt0aGlzLmhhc0Zvb3Rlcj8iIjoibm8tZm9vdGVyIn0iIHBhcnQ9ImNvbnRlbnQiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZm9vdGVyICR7dGhpcy5oYXNGb290ZXI/IiI6ImhpZGRlbiJ9IiBwYXJ0PSJmb290ZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iZm9vdGVyIiBAc2xvdGNoYW5nZT0ke3RoaXMub25Gb290ZXJTbG90Q2hhbmdlfT48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1vbkZvb3RlclNsb3RDaGFuZ2UoYil7bGV0IGc9Yi50YXJnZXQ7dGhpcy5oYXNGb290ZXI9Zy5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkubGVuZ3RoPjB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFNmKHRoaXMsdil9c3RhdGlje1NmKHIsdCl9fTtyZXR1cm4geD1yfSkoKX0pO3ZhciB0bixmcixNYSxjYz1mKCgpPT57TDEoKTtXcygpO0dpKCk7bXMoKTtuc2EoKTtsZSgpO2VhKCk7TTEoKTt2YSgpO1FyKCk7UWUoKTt0bj1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sZnI9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LE1hPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1tb2RhbCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdLEIsTT1bXSxTPVtdLEUsQT1bXSxGPVtdLFcsaj1bXSxHPVtdLGhlLFI9W10sVT1bXSxtZSxJPVtdLHE9W107dmFyIGNlPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzTW9kYWwiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgdWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bSyh7fSldLHU9W0soe30pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOk51bWJlcn0pXSxOPVskKHt0eXBlOk51bWJlcn0pXSxPPVskKHt0eXBlOkJvb2xlYW59KV0sQj1bJCh7dHlwZTpCb29sZWFufSldLEU9WyQoe2F0dHJpYnV0ZTohMX0pXSxXPVskKHt0eXBlOkJvb2xlYW59KV0saGU9WyQoe3R5cGU6TnVtYmVyfSldLG1lPVtLKCldLHRuKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4iaGVhZGluZyJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLmhlYWRpbmcsImdldCIpLHNldDpzKChZLFEpPT57WS5oZWFkaW5nPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LG4sbCksdG4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJjb250ZW50ImluIFksImhhcyIpLGdldDpzKFk9PlkuY29udGVudCwiZ2V0Iiksc2V0OnMoKFksUSk9PntZLmNvbnRlbnQ9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sYyxwKSx0bih0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJtZW51T3B0aW9ucyJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLm1lbnVPcHRpb25zLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kubWVudU9wdGlvbnM9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sbSx2KSx0bih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJ3aWR0aCJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLndpZHRoLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kud2lkdGg9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sYixnKSx0bih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJtYXhXaWR0aCJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLm1heFdpZHRoLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kubWF4V2lkdGg9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sayxDKSx0bih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJtaW5XaWR0aCJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLm1pbldpZHRoLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kubWluV2lkdGg9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sXyx6KSx0bih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4ic2hvd0Nsb3NlQnV0dG9uImluIFksImhhcyIpLGdldDpzKFk9Plkuc2hvd0Nsb3NlQnV0dG9uLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kuc2hvd0Nsb3NlQnV0dG9uPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LFQsUCksdG4odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93SGVscEJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4ic2hvd0hlbHBCdXR0b24iaW4gWSwiaGFzIiksZ2V0OnMoWT0+WS5zaG93SGVscEJ1dHRvbiwiZ2V0Iiksc2V0OnMoKFksUSk9PntZLnNob3dIZWxwQnV0dG9uPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LE0sUyksdG4odGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkhlbHAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWT0+Im9uSGVscCJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLm9uSGVscCwiZ2V0Iiksc2V0OnMoKFksUSk9PntZLm9uSGVscD1RfSwic2V0Iil9LG1ldGFkYXRhOnVlfSxBLEYpLHRuKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4ibW9iaWxlRnVsbHNjcmVlbiJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLm1vYmlsZUZ1bGxzY3JlZW4sImdldCIpLHNldDpzKChZLFEpPT57WS5tb2JpbGVGdWxsc2NyZWVuPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LGosRyksdG4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFBhZGRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWT0+ImNvbnRlbnRQYWRkaW5nImluIFksImhhcyIpLGdldDpzKFk9PlkuY29udGVudFBhZGRpbmcsImdldCIpLHNldDpzKChZLFEpPT57WS5jb250ZW50UGFkZGluZz1RfSwic2V0Iil9LG1ldGFkYXRhOnVlfSxSLFUpLHRuKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGFsWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJtb2RhbFpJbmRleCJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLm1vZGFsWkluZGV4LCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kubW9kYWxaSW5kZXg9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sSSxxKSx0bihudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTp1ZX0sbnVsbCx0KSxjZT1yPWUudmFsdWUsdWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dWV9KX1zdGF0aWMgZGVtbz1vc2E7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3codWUpe2xldCBZPWRvY3VtZW50LmJvZHksUT1uZXcgY2U7cmV0dXJuIFEuaGVhZGluZz11ZS5oZWFkaW5nLFEuY29udGVudD11ZS5jb250ZW50LFEubWVudU9wdGlvbnM9dWUubWVudU9wdGlvbnMsdWUud2lkdGgmJihRLndpZHRoPXVlLndpZHRoKSx1ZS5tYXhXaWR0aCYmKFEubWF4V2lkdGg9dWUubWF4V2lkdGgpLHVlLm1pbldpZHRoJiYoUS5taW5XaWR0aD11ZS5taW5XaWR0aCksdWUuc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoUS5zaG93Q2xvc2VCdXR0b249dWUuc2hvd0Nsb3NlQnV0dG9uKSx1ZS5zaG93SGVscEJ1dHRvbiE9PXZvaWQgMCYmKFEuc2hvd0hlbHBCdXR0b249dWUuc2hvd0hlbHBCdXR0b24pLHVlLm9uSGVscCYmKFEub25IZWxwPXVlLm9uSGVscCksdWUubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKFEubW9iaWxlRnVsbHNjcmVlbj11ZS5tb2JpbGVGdWxsc2NyZWVuKSx1ZS5jb250ZW50UGFkZGluZyE9PXZvaWQgMCYmKFEuY29udGVudFBhZGRpbmc9dWUuY29udGVudFBhZGRpbmcpLFEud2luZG93TGF5ZXI9YXdhaXQgR3MuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLFEud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9Pnthd2FpdCBRLmRlc3Ryb3koKX0pLFkuYXBwZW5kKFEud2luZG93TGF5ZXIpLFkuYXBwZW5kKFEpLFEubW9kYWxaSW5kZXg9WHQuZ2V0TmV4dFpJbmRleCgpLFh0LnJlZ2lzdGVyKFEsUS5tb2RhbFpJbmRleCksUX0jZT1mcih0aGlzLG4sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcodWUpe3RoaXMuI2U9dWV9I3Q9KGZyKHRoaXMsbCksZnIodGhpcyxjLHZvaWQgMCkpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQodWUpe3RoaXMuI3Q9dWV9I2E9KGZyKHRoaXMscCksZnIodGhpcyxtLFtdKSk7Z2V0IG1lbnVPcHRpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1lbnVPcHRpb25zKHVlKXt0aGlzLiNhPXVlfSNyPShmcih0aGlzLHYpLGZyKHRoaXMsYiwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCB3aWR0aCh1ZSl7dGhpcy4jcj11ZX0jcz0oZnIodGhpcyxnKSxmcih0aGlzLGssdm9pZCAwKSk7Z2V0IG1heFdpZHRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1heFdpZHRoKHVlKXt0aGlzLiNzPXVlfSNpPShmcih0aGlzLEMpLGZyKHRoaXMsXyx2b2lkIDApKTtnZXQgbWluV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWluV2lkdGgodWUpe3RoaXMuI2k9dWV9I289KGZyKHRoaXMseiksZnIodGhpcyxULCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNvfXNldCBzaG93Q2xvc2VCdXR0b24odWUpe3RoaXMuI289dWV9I249KGZyKHRoaXMsUCksZnIodGhpcyxNLCExKSk7Z2V0IHNob3dIZWxwQnV0dG9uKCl7cmV0dXJuIHRoaXMuI259c2V0IHNob3dIZWxwQnV0dG9uKHVlKXt0aGlzLiNuPXVlfSNsPShmcih0aGlzLFMpLGZyKHRoaXMsQSx2b2lkIDApKTtnZXQgb25IZWxwKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG9uSGVscCh1ZSl7dGhpcy4jbD11ZX0jYz0oZnIodGhpcyxGKSxmcih0aGlzLGosITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKHVlKXt0aGlzLiNjPXVlfSNkPShmcih0aGlzLEcpLGZyKHRoaXMsUiwxNikpO2dldCBjb250ZW50UGFkZGluZygpe3JldHVybiB0aGlzLiNkfXNldCBjb250ZW50UGFkZGluZyh1ZSl7dGhpcy4jZD11ZX0jdT0oZnIodGhpcyxVKSxmcih0aGlzLEksMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI3V9c2V0IG1vZGFsWkluZGV4KHVlKXt0aGlzLiN1PXVlfWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke3BhfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CiAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICBkZWVzLXRpbGUgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLCBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICBtYXJnaW46IDQwcHg7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm94LXNoYWRvdzoKICAgICAgICAgIDAgMCAwIDFweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDEwMCUgLyAwLjAzKSIpfSwKICAgICAgICAgIDAgOHB4IDQwcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4xMikiLCJoc2woMCAwJSAwJSAvIDAuNSkiKX0sCiAgICAgICAgICAwIDJweCA4cHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAwJSAvIDAuMjUpIil9OwogICAgICB9CgogICAgICAvKiBXaWR0aCB2YXJpYXRpb25zICovCiAgICAgIGRlZXMtdGlsZS53aWR0aC1zbWFsbCB7CiAgICAgICAgd2lkdGg6IDM4MHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtbWVkaXVtIHsKICAgICAgICB3aWR0aDogNTYwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS53aWR0aC1sYXJnZSB7CiAgICAgICAgd2lkdGg6IDgwMHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtZnVsbHNjcmVlbiB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB9CgogICAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIH0KCiAgICAgICAgZGVlcy10aWxlIHsKICAgICAgICAgIG1hcmdpbjogMTBweDsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTsKICAgICAgICB9CgogICAgICAgIGRlZXMtdGlsZS5tb2JpbGUtZnVsbHNjcmVlbiB7CiAgICAgICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDsKICAgICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXRpbGUubW9iaWxlLWZ1bGxzY3JlZW46OnBhcnQob3V0ZXIpIHsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zaG93LnByZWRlc3Ryb3kgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgc2NhbGUoMC45OCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UtaW4sIG9wYWNpdHkgMC4xNXMgZWFzZS1pbjsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRpbmctdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEyKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMTIpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgdWU9dHlwZW9mIHRoaXMud2lkdGg9PSJzdHJpbmciP2B3aWR0aC0ke3RoaXMud2lkdGh9YDoiIixZPXR5cGVvZiB0aGlzLndpZHRoPT0ibnVtYmVyIj9gJHt0aGlzLndpZHRofXB4YDoiIixRPXRoaXMubWF4V2lkdGg/YCR7dGhpcy5tYXhXaWR0aH1weGA6IiIsSj10aGlzLm1pbldpZHRoP2Ake3RoaXMubWluV2lkdGh9cHhgOiIiLFo9dGhpcy5tb2JpbGVGdWxsc2NyZWVuPyJtb2JpbGUtZnVsbHNjcmVlbiI6IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAke1k/YGRlZXMtdGlsZSB7IHdpZHRoOiAke1l9OyB9YDoiIn0KICAgICAgICAke1E/YGRlZXMtdGlsZSB7IG1heC13aWR0aDogJHtRfTsgfWA6IiJ9CiAgICAgICAgJHtKP2BkZWVzLXRpbGUgeyBtaW4td2lkdGg6ICR7Sn07IH1gOiIifQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtb2RhbENvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2t9IHN0eWxlPSJ6LWluZGV4OiAke3RoaXMubW9kYWxaSW5kZXh9Ij4KICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSIke3VlfSAke1p9IiAub3ZlcnNjcm9sbD0keyJjb250YWluIn0+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImhlYWRpbmciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXRleHQiPiR7dGhpcy5oZWFkaW5nfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYnV0dG9ucyI+CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dIZWxwQnV0dG9uP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUhlbHB9IHRpdGxlPSJIZWxwIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6aGVscENpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAke3RoaXMuc2hvd0Nsb3NlQnV0dG9uP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5kZXN0cm95KCl9IHRpdGxlPSJDbG9zZSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50IiBzdHlsZT0icGFkZGluZzogJHt0aGlzLmNvbnRlbnRQYWRkaW5nfXB4OyI+JHt0aGlzLmNvbnRlbnR9PC9kaXY+CiAgICAgICAgICAke3RoaXMubWVudU9wdGlvbnMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAke3RoaXMubWVudU9wdGlvbnMubWFwKChnZSxhZSk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke2FlPT09dGhpcy5tZW51T3B0aW9ucy5sZW5ndGgtMT8icHJpbWFyeSI6IiJ9ICR7Z2UubmFtZT09PSJPSyI/Im9rIjoiIn0iIEBjbGljaz0keygpPT57Z2UuYWN0aW9uKHRoaXMpfX0+JHtnZS5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyPWZyKHRoaXMscSk7YXN5bmMgZmlyc3RVcGRhdGVkKHVlKXtzdXBlci5maXJzdFVwZGF0ZWQodWUpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy10aWxlIikuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhhbmRsZU91dHNpZGVDbGljayh1ZSl7dWUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFk9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbENvbnRhaW5lciIpO3VlLnRhcmdldD09PVkmJmF3YWl0IHRoaXMuZGVzdHJveSgpfWFzeW5jIGRlc3Ryb3koKXtsZXQgdWU9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtdGlsZSIpLmNsYXNzTGlzdC5hZGQoInByZWRlc3Ryb3kiKSxhd2FpdCB1ZS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDIwMCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzKSxhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSxYdC51bnJlZ2lzdGVyKHRoaXMpfWFzeW5jIGhhbmRsZUhlbHAoKXt0aGlzLm9uSGVscCYmYXdhaXQgdGhpcy5vbkhlbHAoKX1zdGF0aWN7ZnIocix0KX19O3JldHVybiBjZT1yfSkoKX0pO3ZhciB1c2EscHNhPWYoKCk9PntsZSgpO3VzYT1zKCgpPT53YAogIDxzdHlsZT4KICAgICR7WGAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gcCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxhYmVsLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sYWJlbC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxhYmVsLXJvdyAuYW5ub3RhdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjODg4IiwiIzY2NiIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CYXNpYyBMYWJlbDwvaDM+CiAgICAgIDxwPkEgc2ltcGxlIHRleHQgbGFiZWwgd2l0aCBubyBhZGRpdGlvbmFsIGluZGljYXRvcnMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSJVc2VybmFtZSI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5sYWJlbD0iRW1haWwgQWRkcmVzcyI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVxdWlyZWQgSW5kaWNhdG9yPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5yZXF1aXJlZDwvY29kZT4gaXMgc2V0LCBhIHJlZCBhc3RlcmlzayBhcHBlYXJzIGFmdGVyIHRoZSBsYWJlbCB0ZXh0LjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZD0keyJ7dHJ1ZX0ifTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQ9JHsie2ZhbHNlfSJ9IChkZWZhdWx0KTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJOaWNrbmFtZSJ9IC5yZXF1aXJlZD0keyExfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkluZm8gVGV4dCAoSW5mbyBJY29uKTwvaDM+CiAgICAgIDxwPldoZW4gPGNvZGU+aW5mb1RleHQ8L2NvZGU+IGlzIHNldCwgYW4gaW5mbyBpY29uIGFwcGVhcnMgbmV4dCB0byB0aGUgbGFiZWwuIEhvdmVyIG92ZXIgaXQgdG8gc2VlIHRoZSB0b29sdGlwLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5pbmZvVGV4dD0iLi4uIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJBUEkgS2V5In0gLmluZm9UZXh0PSR7IllvdXIgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIGRldmVsb3BlciBzZXR0aW5ncyBkYXNoYm9hcmQuIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+c2hvcnQgaW5mb1RleHQ8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiUmVnaW9uIn0gLmluZm9UZXh0PSR7IlNlbGVjdCB5b3VyIG5lYXJlc3QgZGF0YWNlbnRlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlJlcXVpcmVkICsgSW5mbyBUZXh0PC9oMz4KICAgICAgPHA+Qm90aCBpbmRpY2F0b3JzIGNhbiBiZSBjb21iaW5lZC4gVGhlIGFzdGVyaXNrIGFwcGVhcnMgZmlyc3QsIHRoZW4gdGhlIGluZm8gaWNvbi48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQgKyBpbmZvVGV4dDwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJQYXNzd29yZCJ9IC5yZXF1aXJlZD0keyEwfSAuaW5mb1RleHQ9JHsiTXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgd2l0aCBvbmUgdXBwZXJjYXNlIGxldHRlciBhbmQgb25lIG51bWJlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZCArIGluZm9UZXh0PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkVtYWlsIEFkZHJlc3MifSAucmVxdWlyZWQ9JHshMH0gLmluZm9UZXh0PSR7IldlIHdpbGwgc2VuZCBhIHZlcmlmaWNhdGlvbiBsaW5rIHRvIHRoaXMgYWRkcmVzcy4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVtcHR5IExhYmVsPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5sYWJlbDwvY29kZT4gaXMgZW1wdHkgb3Igbm90IHNldCwgbm90aGluZyBpcyByZW5kZXJlZC4gVGhlIGVsZW1lbnQgYmVsb3cgaGFzIG5vIGxhYmVsIHRleHQ6PC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSIiIChlbXB0eSk8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIFp0ZSx6Zixmc2EsYW09ZigoKT0+e1dzKCk7TDEoKTtsZSgpO3BzYSgpO1FlKCk7WnRlPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSx6Zj1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sZnNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1sYWJlbCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzTGFiZWwiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGQ9WyQoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sdT1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sWnRlKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+ImxhYmVsImluIGcsImhhcyIpLGdldDpzKGc9PmcubGFiZWwsImdldCIpLHNldDpzKChnLHkpPT57Zy5sYWJlbD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG4sbCksWnRlKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+ImluZm9UZXh0ImluIGcsImhhcyIpLGdldDpzKGc9PmcuaW5mb1RleHQsImdldCIpLHNldDpzKChnLHkpPT57Zy5pbmZvVGV4dD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCksWnRlKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InJlcXVpcmVkImluIGcsImhhcyIpLGdldDpzKGc9PmcucmVxdWlyZWQsImdldCIpLHNldDpzKChnLHkpPT57Zy5yZXF1aXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdiksWnRlKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89dXNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiSW5wdXQiXTsjZT16Zih0aGlzLG4sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChiKXt0aGlzLiNlPWJ9I3Q9KHpmKHRoaXMsbCksemYodGhpcyxjLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChiKXt0aGlzLiN0PWJ9I2E9KHpmKHRoaXMscCksemYodGhpcyxtLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJlcXVpcmVkKGIpe3RoaXMuI2E9Yn1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5yZXF1aXJlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIG1hcmdpbjogLTZweCAwIC02cHggMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24taWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyNSUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubGFiZWw/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPgogICAgICAgICAgICAgICR7dGhpcy5sYWJlbH0KICAgICAgICAgICAgICAke3RoaXMucmVxdWlyZWQ/d2A8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuaW5mb1RleHQ/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi1pY29uIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmluZm8ifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtc3BlZWNoYnViYmxlPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHpmKHRoaXMsdil9c3RhdGlje3pmKHIsdCl9fTtyZXR1cm4geD1yfSkoKX0pO3ZhciBYdGUsVFllPWYoKCk9PntYdGU9IjAuNTUuMSJ9KTt2YXIgcm0sJDEsaHNhLENmPWYoKCk9PntsZSgpO2VhKCk7VFllKCk7UWUoKTtybT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sJDE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGhzYT0oKCk9PntsZXQgYT1baWUoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzV29ya3NwYWNlTW9uYWNvIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpPYmplY3R9KV0seT1bJCh7dHlwZTpCb29sZWFufSldLHJtKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iY29udGVudCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LmNvbnRlbnQsImdldCIpLHNldDpzKCh6LE8pPT57ei5jb250ZW50PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbixsKSxybSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJsYW5ndWFnZSJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56Lmxhbmd1YWdlLCJnZXQiKSxzZXQ6cygoeixPKT0+e3oubGFuZ3VhZ2U9T30sInNldCIpfSxtZXRhZGF0YTpffSxjLHApLHJtKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImZpbGVQYXRoImluIHosImhhcyIpLGdldDpzKHo9PnouZmlsZVBhdGgsImdldCIpLHNldDpzKCh6LE8pPT57ei5maWxlUGF0aD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG0sdikscm0odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50U3ViamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iY29udGVudFN1YmplY3QiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5jb250ZW50U3ViamVjdCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmNvbnRlbnRTdWJqZWN0PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxybSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJ3b3JkV3JhcCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LndvcmRXcmFwLCJnZXQiKSxzZXQ6cygoeixPKT0+e3oud29yZFdyYXA9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLEMpLHJtKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsdCksTj1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89cygoKT0+d2A8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBtb25hY29EZWZlcnJlZDtlZGl0b3JEZWZlcnJlZD1IdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT0kMSh0aGlzLG4sYGZ1bmN0aW9uIGhlbGxvKCkgewoJYWxlcnQoJ0hlbGxvIHdvcmxkIScpOwp9YCk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29udGVudChfKXt0aGlzLiNlPV99I3Q9KCQxKHRoaXMsbCksJDEodGhpcyxjLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBsYW5ndWFnZShfKXt0aGlzLiN0PV99I2E9KCQxKHRoaXMscCksJDEodGhpcyxtLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbGVQYXRoKF8pe3RoaXMuI2E9X30jcj0oJDEodGhpcyx2KSwkMSh0aGlzLGIsbmV3IEh0LnNtYXJ0cngucnhqcy5TdWJqZWN0KSk7Z2V0IGNvbnRlbnRTdWJqZWN0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbnRlbnRTdWJqZWN0KF8pe3RoaXMuI3I9X30jcz0oJDEodGhpcyxnKSwkMSh0aGlzLGssIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jc31zZXQgd29yZFdyYXAoXyl7dGhpcy4jcz1ffW1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPSgkMSh0aGlzLEMpLG51bGwpO2lzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITE7Y29uc3RydWN0b3IoKXtzdXBlcigpLCRpLnNldHVwRG9tVG9vbHMoKX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAjY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChfKXtzdXBlci5maXJzdFVwZGF0ZWQoXyk7bGV0IHo9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKSxPPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtYdGV9YDtpZighTi5tb25hY29EZWZlcnJlZCl7Ti5tb25hY29EZWZlcnJlZD1IdC5zbWFydHByb21pc2UuZGVmZXIoKTtsZXQgTT1gJHtPfS9taW4vdnMvbG9hZGVyLmpzYCxTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1Muc3JjPU0sUy5vbmxvYWQ9KCk9PntOLm1vbmFjb0RlZmVycmVkLnJlc29sdmUoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChTKX1hd2FpdCBOLm1vbmFjb0RlZmVycmVkLnByb21pc2Usd2luZG93LnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6YCR7T30vbWluL3ZzYH19KSx3aW5kb3cucmVxdWlyZShbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdLGFzeW5jKCk9PntsZXQgTT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxFPU0udGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixBPXdpbmRvdy5tb25hY28sRj1udWxsO2lmKHRoaXMuZmlsZVBhdGgpe2xldCBqPUEuVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApO0Y9QS5lZGl0b3IuZ2V0TW9kZWwoaiksRj9GLnNldFZhbHVlKHRoaXMuY29udGVudCk6Rj1BLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxqKX1sZXQgVz1BLmVkaXRvci5jcmVhdGUoeix7bW9kZWw6Rnx8dm9pZCAwLHZhbHVlOkY/dm9pZCAwOnRoaXMuY29udGVudCxsYW5ndWFnZTpGP3ZvaWQgMDp0aGlzLmxhbmd1YWdlLHRoZW1lOkUsdXNlU2hhZG93RE9NOiEwLGZvbnRTaXplOjE2LGF1dG9tYXRpY0xheW91dDohMCx3b3JkV3JhcDp0aGlzLndvcmRXcmFwLGhvdmVyOntlbmFibGVkOiEwLGRlbGF5OjMwMCxzdGlja3k6ITAsYWJvdmU6ITF9fSk7dGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1NLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGo9PntsZXQgRz1qPyJ2cyI6InZzLWRhcmsiO1cudXBkYXRlT3B0aW9ucyh7dGhlbWU6R30pfSksdGhpcy5lZGl0b3JEZWZlcnJlZC5yZXNvbHZlKFcpfSk7bGV0IFQ9YXdhaXQoYXdhaXQgZmV0Y2goYCR7T30vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLFA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtQLnRleHRDb250ZW50PVQsdGhpcy5zaGFkb3dSb290LmFwcGVuZChQKTtsZXQgQj1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7Qi5vbkRpZENoYW5nZU1vZGVsQ29udGVudChhc3luYyBNPT57aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsKXJldHVybjtsZXQgUz1CLmdldFZhbHVlKCk7dGhpcy5jb250ZW50U3ViamVjdC5uZXh0KFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtY2hhbmdlIix7ZGV0YWlsOlMsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pLHRoaXMuY29udGVudFN1YmplY3QubmV4dChCLmdldFZhbHVlKCkpfWFzeW5jIHVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKTtsZXQgej13aW5kb3cubW9uYWNvO2lmKHope2lmKF8uaGFzKCJmaWxlUGF0aCIpJiZ0aGlzLmZpbGVQYXRoKXtsZXQgTz1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2UsVD16LlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKSxQPXouZWRpdG9yLmdldE1vZGVsKFQpO1A/UC5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLFAuc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpOlA9ei5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5jb250ZW50LHRoaXMubGFuZ3VhZ2UsVCksTy5nZXRNb2RlbCgpPy51cmkudG9TdHJpbmcoKSE9PVQudG9TdHJpbmcoKSYmTy5zZXRNb2RlbChQKTtyZXR1cm59aWYoXy5oYXMoImNvbnRlbnQiKSl7bGV0IE89YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO08uZ2V0VmFsdWUoKSE9PXRoaXMuY29udGVudCYmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxPLnNldFZhbHVlKHRoaXMuY29udGVudCksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExKX1pZihfLmhhcygibGFuZ3VhZ2UiKSl7bGV0IFQ9KGF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtUJiZ6LmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKFQsdGhpcy5sYW5ndWFnZSl9fX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpfWFzeW5jIHNldENvbnRlbnRFeHRlcm5hbChfLHo9ITApe2xldCBPPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtpZihPLmdldFZhbHVlKCk9PT1fKXJldHVybjtsZXQgUD16P08uZ2V0UG9zaXRpb24oKTpudWxsLEI9ej9PLmdldFNlbGVjdGlvbnMoKTpudWxsLE09ej9PLmdldFNjcm9sbFRvcCgpOjAsUz16P08uZ2V0U2Nyb2xsTGVmdCgpOjA7aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE8uc2V0VmFsdWUoXyksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExLHope2lmKFApe2xldCBFPU8uZ2V0TW9kZWwoKSxBPUU/LmdldExpbmVDb3VudCgpfHwxLEY9TWF0aC5taW4oUC5saW5lTnVtYmVyLEEpLFc9RT8uZ2V0TGluZU1heENvbHVtbihGKXx8MSxqPU1hdGgubWluKFAuY29sdW1uLFcpO08uc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6Rixjb2x1bW46an0pfWlmKEImJkIubGVuZ3RoPjApdHJ5e08uc2V0U2VsZWN0aW9ucyhCKX1jYXRjaHt9Ty5zZXRTY3JvbGxQb3NpdGlvbih7c2Nyb2xsVG9wOk0sc2Nyb2xsTGVmdDpTfSl9fXN0YXRpY3skMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgVjIsRXMsX2YsUXRlLExZZT1mKCgpPT57U3IoKTtsZSgpO1FlKCk7Y2MoKTt2YSgpO2FtKCk7UXIoKTtDZigpO0NmKCk7VjI9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEVzPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxfZj1be2tleToidHlwZXNjcmlwdCIsbGFiZWw6IlR5cGVTY3JpcHQifSx7a2V5OiJqYXZhc2NyaXB0IixsYWJlbDoiSmF2YVNjcmlwdCJ9LHtrZXk6Impzb24iLGxhYmVsOiJKU09OIn0se2tleToiaHRtbCIsbGFiZWw6IkhUTUwifSx7a2V5OiJjc3MiLGxhYmVsOiJDU1MifSx7a2V5OiJzY3NzIixsYWJlbDoiU0NTUyJ9LHtrZXk6Im1hcmtkb3duIixsYWJlbDoiTWFya2Rvd24ifSx7a2V5OiJ5YW1sIixsYWJlbDoiWUFNTCJ9LHtrZXk6InhtbCIsbGFiZWw6IlhNTCJ9LHtrZXk6InNxbCIsbGFiZWw6IlNRTCJ9LHtrZXk6InB5dGhvbiIsbGFiZWw6IlB5dGhvbiJ9LHtrZXk6ImphdmEiLGxhYmVsOiJKYXZhIn0se2tleToiY3NoYXJwIixsYWJlbDoiQyMifSx7a2V5OiJjcHAiLGxhYmVsOiJDKysifSx7a2V5OiJnbyIsbGFiZWw6IkdvIn0se2tleToicnVzdCIsbGFiZWw6IlJ1c3QifSx7a2V5OiJzaGVsbCIsbGFiZWw6IlNoZWxsIn0se2tleToicGxhaW50ZXh0IixsYWJlbDoiUGxhaW4gVGV4dCJ9XSxRdGU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LWNvZGUiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXTt2YXIgVz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0Q29kZSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBqPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6U3RyaW5nfSldLHg9WyQoe3R5cGU6U3RyaW5nfSldLHk9WyQoe3R5cGU6Qm9vbGVhbn0pXSxOPVtLKCldLE89W0soKV0sQj1bSygpXSxFPVtLKCldLFYyKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRz0+InZhbHVlImluIEcsImhhcyIpLGdldDpzKEc9PkcudmFsdWUsImdldCIpLHNldDpzKChHLGhlKT0+e0cudmFsdWU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6an0sbixsKSxWMih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEc9PiJsYW5ndWFnZSJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLmxhbmd1YWdlLCJnZXQiKSxzZXQ6cygoRyxoZSk9PntHLmxhbmd1YWdlPWhlfSwic2V0Iil9LG1ldGFkYXRhOmp9LGMscCksVjIodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRz0+ImhlaWdodCJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLmhlaWdodCwiZ2V0Iiksc2V0OnMoKEcsaGUpPT57Ry5oZWlnaHQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6an0sbSx2KSxWMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEc9PiJ3b3JkV3JhcCJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLndvcmRXcmFwLCJnZXQiKSxzZXQ6cygoRyxoZSk9PntHLndvcmRXcmFwPWhlfSwic2V0Iil9LG1ldGFkYXRhOmp9LGIsZyksVjIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGluZU51bWJlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRz0+InNob3dMaW5lTnVtYmVycyJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLnNob3dMaW5lTnVtYmVycywiZ2V0Iiksc2V0OnMoKEcsaGUpPT57Ry5zaG93TGluZU51bWJlcnM9aGV9LCJzZXQiKX0sbWV0YWRhdGE6an0sayxDKSxWMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRz0+ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iaW4gRywiaGFzIiksZ2V0OnMoRz0+Ry5pc0xhbmd1YWdlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6cygoRyxoZSk9PntHLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49aGV9LCJzZXQiKX0sbWV0YWRhdGE6an0sXyx6KSxWMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvcHlTdWNjZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEc9PiJjb3B5U3VjY2VzcyJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLmNvcHlTdWNjZXNzLCJnZXQiKSxzZXQ6cygoRyxoZSk9PntHLmNvcHlTdWNjZXNzPWhlfSwic2V0Iil9LG1ldGFkYXRhOmp9LFQsUCksVjIodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5lQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRz0+ImxpbmVDb3VudCJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLmxpbmVDb3VudCwiZ2V0Iiksc2V0OnMoKEcsaGUpPT57Ry5saW5lQ291bnQ9aGV9LCJzZXQiKX0sbWV0YWRhdGE6an0sTSxTKSxWMih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnNvclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEc9PiJjdXJzb3JQb3NpdGlvbiJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLmN1cnNvclBvc2l0aW9uLCJnZXQiKSxzZXQ6cygoRyxoZSk9PntHLmN1cnNvclBvc2l0aW9uPWhlfSwic2V0Iil9LG1ldGFkYXRhOmp9LEEsRiksVjIobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6an0sbnVsbCx0KSxXPXI9ZS52YWx1ZSxqJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmp9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9RXModGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoail7dGhpcy4jZT1qfSN0PShFcyh0aGlzLGwpLEVzKHRoaXMsYywidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2Uoail7dGhpcy4jdD1qfSNhPShFcyh0aGlzLHApLEVzKHRoaXMsbSwiMjAwcHgiKSk7Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLiNhfXNldCBoZWlnaHQoail7dGhpcy4jYT1qfSNyPShFcyh0aGlzLHYpLEVzKHRoaXMsYiwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNyfXNldCB3b3JkV3JhcChqKXt0aGlzLiNyPWp9I3M9KEVzKHRoaXMsZyksRXModGhpcyxrLCEwKSk7Z2V0IHNob3dMaW5lTnVtYmVycygpe3JldHVybiB0aGlzLiNzfXNldCBzaG93TGluZU51bWJlcnMoail7dGhpcy4jcz1qfSNpPShFcyh0aGlzLEMpLEVzKHRoaXMsXywhMSkpO2dldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oail7dGhpcy4jaT1qfSNvPShFcyh0aGlzLHopLEVzKHRoaXMsVCwhMSkpO2dldCBjb3B5U3VjY2Vzcygpe3JldHVybiB0aGlzLiNvfXNldCBjb3B5U3VjY2VzcyhqKXt0aGlzLiNvPWp9I249KEVzKHRoaXMsUCksRXModGhpcyxNLDApKTtnZXQgbGluZUNvdW50KCl7cmV0dXJuIHRoaXMuI259c2V0IGxpbmVDb3VudChqKXt0aGlzLiNuPWp9I2w9KEVzKHRoaXMsUyksRXModGhpcyxBLHtsaW5lOjEsY29sdW1uOjF9KSk7Z2V0IGN1cnNvclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGN1cnNvclBvc2l0aW9uKGope3RoaXMuI2w9an1lZGl0b3JFbGVtZW50PShFcyh0aGlzLEYpLG51bGwpO3N0YXRpYyBzdHlsZXM9W1BlLC4uLk10LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0idG9wIl0pIC5pbnB1dC13cmFwcGVyLAogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24gewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGNvbG9yOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAuZWRpdG9yLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIE1hdGNoIE1vbmFjbyBiYWNrZ3JvdW5kIHRvIHRpbGUgKi8KICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvOjpwYXJ0KGNvbnRhaW5lcikgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIEZvb3RlciAqLwogICAgICAuZWRpdG9yLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZm9vdGVyLWxlZnQsCiAgICAgIC5mb290ZXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXItc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBqPV9mLmZpbmQoRz0+Ry5rZXk9PT10aGlzLmxhbmd1YWdlKXx8X2ZbMF07cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5oZWlnaHR9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWxlZnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMYW5ndWFnZURyb3Bkb3dufQogICAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlTGFuZ3VhZ2VCbHVyfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke2oubGFiZWx9CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZXZyb25Eb3duIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgJHt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICR7X2YubWFwKEc9PndgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1vcHRpb24gJHtHLmtleT09PXRoaXMubGFuZ3VhZ2U/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHtoZT0+dGhpcy5zZWxlY3RMYW5ndWFnZShoZSxHLmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7Ry5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImVkaXRvci1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbGVmdCI+CiAgICAgICAgICAgICAgPHNwYW4+TG4gJHt0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmV9LCBDb2wgJHt0aGlzLmN1cnNvclBvc2l0aW9uLmNvbHVtbn08L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXNlcGFyYXRvciI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4+JHt0aGlzLmxpbmVDb3VudH0gbGluZSR7dGhpcy5saW5lQ291bnQhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItcmlnaHQiPgogICAgICAgICAgICAgIDxzcGFuPiR7KF9mLmZpbmQoRz0+Ry5rZXk9PT10aGlzLmxhbmd1YWdlKXx8X2ZbMF0pLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLHRoaXMuZWRpdG9yRWxlbWVudCl7dGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShVPT57dGhpcy52YWx1ZSE9PVUmJih0aGlzLnZhbHVlPVUsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfSk7bGV0IGo9YXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UsRz1qLmdldE1vZGVsKCk7RyYmKHRoaXMubGluZUNvdW50PUcuZ2V0TGluZUNvdW50KCksRy5vbkRpZENoYW5nZUNvbnRlbnQoKCk9Pnt0aGlzLmxpbmVDb3VudD1HLmdldExpbmVDb3VudCgpfSkpLGoub25EaWRDaGFuZ2VDdXJzb3JQb3NpdGlvbihVPT57dGhpcy5jdXJzb3JQb3NpdGlvbj17bGluZTpVLnBvc2l0aW9uLmxpbmVOdW1iZXIsY29sdW1uOlUucG9zaXRpb24uY29sdW1ufX0pO2xldCBoZT1hd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZG9tdG9vbHNQcm9taXNlLFI9cyhVPT57bGV0IG1lPVU/IiNmZmZmZmYiOiIjMGEwYTBhIjtqLnVwZGF0ZU9wdGlvbnMoe30pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1saWdodCIse2Jhc2U6InZzIixpbmhlcml0OiEwLHJ1bGVzOltdLGNvbG9yczp7ImVkaXRvci5iYWNrZ3JvdW5kIjptZX19KSx3aW5kb3cubW9uYWNvPy5lZGl0b3I/LmRlZmluZVRoZW1lPy4oImRlZXMtZGFyayIse2Jhc2U6InZzLWRhcmsiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOm1lfX0pLGoudXBkYXRlT3B0aW9ucyh7dGhlbWU6VT8iZGVlcy1saWdodCI6ImRlZXMtZGFyayJ9KX0sInVwZGF0ZUVkaXRvckJnIik7UihoZS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuKSxoZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShVPT57UihVKX0pfX10b2dnbGVMYW5ndWFnZURyb3Bkb3duKCl7dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSF0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW59aGFuZGxlTGFuZ3VhZ2VCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0hMX0sMTUwKX1hc3luYyBzZWxlY3RMYW5ndWFnZShqLEcpe2lmKGoucHJldmVudERlZmF1bHQoKSx0aGlzLmxhbmd1YWdlPUcsdGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExLHRoaXMuZWRpdG9yRWxlbWVudCl7dGhpcy5lZGl0b3JFbGVtZW50Lmxhbmd1YWdlPUc7bGV0IFI9KGF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO1ImJndpbmRvdy5tb25hY28uZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoUixHKX19dG9nZ2xlV29yZFdyYXAoKXt0aGlzLndvcmRXcmFwPXRoaXMud29yZFdyYXA9PT0ib24iPyJvZmYiOiJvbiIsdGhpcy51cGRhdGVFZGl0b3JPcHRpb24oIndvcmRXcmFwIix0aGlzLndvcmRXcmFwKX10b2dnbGVMaW5lTnVtYmVycygpe3RoaXMuc2hvd0xpbmVOdW1iZXJzPSF0aGlzLnNob3dMaW5lTnVtYmVycyx0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigibGluZU51bWJlcnMiLHRoaXMuc2hvd0xpbmVOdW1iZXJzPyJvbiI6Im9mZiIpfWFzeW5jIHVwZGF0ZUVkaXRvck9wdGlvbihqLEcpe3RoaXMuZWRpdG9yRWxlbWVudCYmKGF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHtbal06R30pfWFzeW5jIGNvcHlDb2RlKCl7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMudmFsdWUpLHRoaXMuY29weVN1Y2Nlc3M9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuY29weVN1Y2Nlc3M9ITF9LDJlMyl9Y2F0Y2goail7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHkgY29kZToiLGopfX1oYW5kbGVDb250ZW50Q2hhbmdlKGope2xldCBHPWouZGV0YWlsO3RoaXMudmFsdWUhPT1HJiYodGhpcy52YWx1ZT1HLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1hc3luYyBvcGVuRnVsbHNjcmVlbigpe2xldCBqPXRoaXMudmFsdWUsRz1udWxsLGhlPXRoaXMubGFuZ3VhZ2UsUj10aGlzLndvcmRXcmFwLFU9dGhpcy5zaG93TGluZU51bWJlcnMsbWU9ITEsST0hMSxxPXMoKCk9PntsZXQgYWU9X2YuZmluZChyZT0+cmUua2V5PT09aGUpO3JldHVybiBhZT9hZS5sYWJlbDoiVHlwZVNjcmlwdCJ9LCJnZXRMYW5ndWFnZUxhYmVsIiksY2U9cyhhZT0+e2xldCByZT1hZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwtdG9vbGJhciIpO2lmKCFyZSlyZXR1cm47bGV0IHllPXJlLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO3llJiYoeWUudGV4dENvbnRlbnQ9cSgpKTtsZXQgVj1yZS5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtWJiZWLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsUj09PSJvbiIpO2xldCBIPXJlLnF1ZXJ5U2VsZWN0b3IoIi5saW5lcy1idG4iKTtIJiZILmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsVSk7bGV0IG9lPXJlLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LWJ0biIpLHNlPW9lPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtvZSYmc2UmJihvZS5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixJKSxzZS5pY29uPUk/Imx1Y2lkZTpDaGVjayI6Imx1Y2lkZTpDb3B5Iik7bGV0IHRlPXJlLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO3RlJiYodGUuc3R5bGUuZGlzcGxheT1tZT8iYmxvY2siOiJub25lIil9LCJ1cGRhdGVUb29sYmFyVUkiKSx1ZT1zKGFlPT57bGV0IHJlPWFlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1mb290ZXIiKTtpZighcmUpcmV0dXJuO2xldCB5ZT1yZS5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyLWN1cnNvciIpLFY9cmUucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1saW5lcyIpLEg9cmUucXVlcnlTZWxlY3RvcigiLmZvb3Rlci1sYW5nIik7eWUmJih5ZS50ZXh0Q29udGVudD1gTG4gJHtZfSwgQ29sICR7UX1gKSxWJiYoVi50ZXh0Q29udGVudD1gJHtKfSBsaW5lJHtKIT09MT8icyI6IiJ9YCksSCYmKEgudGV4dENvbnRlbnQ9cSgpKX0sInVwZGF0ZUZvb3RlclVJIiksWT0xLFE9MSxKPWouc3BsaXQoYApgKS5sZW5ndGgsWj1hd2FpdCBNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOnRoaXMubGFiZWx8fCJDb2RlIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLGNvbnRlbnRQYWRkaW5nOjAsY29udGVudDp3YAogICAgICAgIDxzdHlsZT4KICAgICAgICAgIC5tb2RhbC10b29sYmFyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDIwMHB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1mb290ZXIgLmZvb3Rlci1sZWZ0LAogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLXJpZ2h0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWZvb3RlciAuZm9vdGVyLXNlcGFyYXRvciB7CiAgICAgICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtdG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWxlZnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIj4KICAgICAgICAgICAgICAgIDxzcGFuPiR7cSgpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZXZyb25Eb3duIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAke19mLm1hcChhZT0+d2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1vcHRpb24gJHthZS5rZXk9PT1oZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBkYXRhLWxhbmc9IiR7YWUua2V5fSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7YWUubGFiZWx9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24gd3JhcC1idG4gJHtSPT09Im9uIj8iYWN0aXZlIjoiIn0iIHRpdGxlPSJXb3JkIFdyYXAiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOldyYXBUZXh0In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIGxpbmVzLWJ0biAke1U/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iTGluZSBOdW1iZXJzIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpIYXNoIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIGNvcHktYnRuIiB0aXRsZT0iQ29weSBDb2RlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDb3B5In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1lZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5jb250ZW50PSR7an0KICAgICAgICAgICAgLmxhbmd1YWdlPSR7aGV9CiAgICAgICAgICAgIC53b3JkV3JhcD0ke1J9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1sZWZ0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1jdXJzb3IiPkxuICR7WX0sIENvbCAke1F9PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItc2VwYXJhdG9yIj48L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1saW5lcyI+JHtKfSBsaW5lJHtKIT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItcmlnaHQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxhbmciPiR7cSgpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246cyhhc3luYyBhZT0+e2F3YWl0IGFlLmRlc3Ryb3koKX0sImFjdGlvbiIpfSx7bmFtZToiU2F2ZSAmIENsb3NlIixhY3Rpb246cyhhc3luYyBhZT0+e2lmKEc9YWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksRyl7bGV0IHllPShhd2FpdCBHLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZSh5ZSl9YXdhaXQgYWUuZGVzdHJveSgpfSwiYWN0aW9uIil9XX0pO2lmKGF3YWl0IG5ldyBQcm9taXNlKGFlPT5zZXRUaW1lb3V0KGFlLDEwMCkpLEc9Wi5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxHKXtsZXQgYWU9YXdhaXQgRy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLHJlPWF3YWl0IEcuZG9tdG9vbHNQcm9taXNlLHllPXMoSD0+e2xldCBvZT1IPyIjZmZmZmZmIjoiIzBhMGEwYSI7d2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWxpZ2h0Iix7YmFzZToidnMiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOm9lfX0pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1kYXJrIix7YmFzZToidnMtZGFyayIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6b2V9fSksYWUudXBkYXRlT3B0aW9ucyh7dGhlbWU6SD8iZGVlcy1saWdodCI6ImRlZXMtZGFyayJ9KX0sImFwcGx5TW9kYWxUaGVtZSIpO3llKHJlLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4pLHJlLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEg9Pnt5ZShIKX0pLGFlLm9uRGlkQ2hhbmdlQ3Vyc29yUG9zaXRpb24oSD0+e1k9SC5wb3NpdGlvbi5saW5lTnVtYmVyLFE9SC5wb3NpdGlvbi5jb2x1bW4sdWUoWil9KTtsZXQgVj1hZS5nZXRNb2RlbCgpO1YmJihKPVYuZ2V0TGluZUNvdW50KCksdWUoWiksVi5vbkRpZENoYW5nZUNvbnRlbnQoKCk9PntKPVYuZ2V0TGluZUNvdW50KCksdWUoWil9KSl9bGV0IGdlPVouc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsLXRvb2xiYXIiKTtpZihnZSl7bGV0IGFlPWdlLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24iKTthZT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bWU9IW1lLGNlKFopfSk7bGV0IHJlPWdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5sYW5ndWFnZS1vcHRpb24iKTtyZS5mb3JFYWNoKG9lPT57b2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntsZXQgc2U9b2UuZGF0YXNldC5sYW5nO2lmKHNlJiZHKXtoZT1zZSxtZT0hMTtsZXQgemU9KGF3YWl0IEcuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTt6ZSYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZSh6ZSxzZSkscmUuZm9yRWFjaChPZT0+T2UuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKSksb2UuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKSxjZShaKSx1ZShaKX19KX0pLGdlLnF1ZXJ5U2VsZWN0b3IoIi53cmFwLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e1I9Uj09PSJvbiI/Im9mZiI6Im9uIixHJiYoYXdhaXQgRy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHt3b3JkV3JhcDpSfSksY2UoWil9KSxnZS5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57VT0hVSxHJiYoYXdhaXQgRy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS51cGRhdGVPcHRpb25zKHtsaW5lTnVtYmVyczpVPyJvbiI6Im9mZiJ9KSxjZShaKX0pLGdlLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2lmKEcpe2xldCBzZT0oYXdhaXQgRy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRWYWx1ZSgpO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChzZSksST0hMCxjZShaKSxzZXRUaW1lb3V0KCgpPT57ST0hMSxjZShaKX0sMmUzKX1jYXRjaCh0ZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHkgY29kZToiLHRlKX19fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG9lPT57bWUmJiFhZT8uY29udGFpbnMob2UudGFyZ2V0KSYmKG1lPSExLGNlKFopKX0se29uY2U6ITB9KX19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShqKXt0aGlzLnZhbHVlPWosdGhpcy5lZGl0b3JFbGVtZW50JiYodGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnQ9aix0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZS50aGVuKEc9PntHLmdldFZhbHVlKCkhPT1qJiZHLnNldFZhbHVlKGopfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXN0YXRpY3tFcyhyLHQpfX07cmV0dXJuIFc9cn0pKCl9KTt2YXIgbXNhLGdzYT1mKCgpPT57bGUoKTtOYSgpO1lzKCk7JFllKCk7bXNhPXMoKCk9PndgCiAgPHN0eWxlPgogICAgJHtYYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQogICAgICAKICAgICAgLmRhdGUtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwodD0+e2NvbnNvbGUubG9nKCJCYXNpYyBkYXRlIHNlbGVjdGVkOiIsdC50YXJnZXQudmFsdWUpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBEYXRlIFBpY2tlciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IlNlbGVjdCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNob29zZSBhIGRhdGUgZnJvbSB0aGUgY2FsZW5kYXIiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBlPWEucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFdmVudCBEYXRlICYgVGltZSJdJyksdD1hLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iQXBwb2ludG1lbnQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwocj0+e2xldCBpPXIudGFyZ2V0LnZhbHVlO2NvbnNvbGUubG9nKCIyNGggZm9ybWF0IGRhdGV0aW1lOiIsaSl9KSksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChyPT57bGV0IGk9ci50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjEyaCBmb3JtYXQgZGF0ZXRpbWU6IixpKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBhbmQgVGltZSBTZWxlY3Rpb24ifSAuc3VidGl0bGU9JHsiRGF0ZSBwaWNrZXJzIHdpdGggdGltZSBzZWxlY3Rpb24gaW4gZGlmZmVyZW50IGZvcm1hdHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGF0ZSAmIFRpbWUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGJvdGggZGF0ZSBhbmQgdGltZSAoMjQtaG91ciBmb3JtYXQpIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjI0aCIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkFwcG9pbnRtZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IkRhdGUgYW5kIHRpbWUgd2l0aCBBTS9QTSBzZWxlY3RvciAoMTUtbWludXRlIGluY3JlbWVudHMpIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIC5taW51dGVJbmNyZW1lbnQ9JHsxNX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHI9PntsZXQgaT1yLnRhcmdldDtjb25zb2xlLmxvZyhgJHtpLmxhYmVsfSB2YWx1ZTpgLGkudmFsdWUpO2xldCBvPWkuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtvJiZjb25zb2xlLmxvZyhgJHtpLmxhYmVsfSBmb3JtYXR0ZWQ6YCxvLnZhbHVlKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUaW1lem9uZSBTdXBwb3J0In0gLnN1YnRpdGxlPSR7IkRhdGUgYW5kIHRpbWUgc2VsZWN0aW9uIHdpdGggdGltZXpvbmUgYXdhcmVuZXNzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgVGltZSAod2l0aCBUaW1lem9uZSkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZS90aW1lIGFuZCB0aW1lem9uZSBmb3IgdGhlIG1lZXRpbmciCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgICB0aW1lem9uZT0iQW1lcmljYS9OZXdfWW9yayIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ikdsb2JhbCBFdmVudCBTY2hlZHVsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTY2hlZHVsZSBhbiBldmVudCBhY3Jvc3MgZGlmZmVyZW50IHRpbWV6b25lcyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIHRpbWV6b25lPSJFdXJvcGUvTG9uZG9uIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezMwfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwodD0+e2xldCByPXQudGFyZ2V0LnZhbHVlO2lmKHIpe2xldCBpPW5ldyBEYXRlKHIpLG89bmV3IERhdGUsbj1NYXRoLmZsb29yKChpLmdldFRpbWUoKS1vLmdldFRpbWUoKSkvKDFlMyo2MCo2MCoyNCkpO2NvbnNvbGUubG9nKGBTZWxlY3RlZCBkYXRlIGlzICR7bn0gZGF5cyBmcm9tIHRvZGF5YCl9fSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIFJhbmdlIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7IkxpbWl0IHNlbGVjdGFibGUgZGF0ZXMgd2l0aCBtaW4gYW5kIG1heCB2YWx1ZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRnV0dXJlIERhdGUgT25seSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDYW4gb25seSBzZWxlY3QgZGF0ZXMgZnJvbSB0b2RheSB0byA5MCBkYXlzIGluIHRoZSBmdXR1cmUiCiAgICAgICAgICAubWluRGF0ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgIC5tYXhEYXRlPSR7bmV3IERhdGUoRGF0ZS5ub3coKSsyMTYwKjYwKjYwKjFlMykudG9JU09TdHJpbmcoKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9eyJERC9NTS9ZWVlZIjoiRXVyb3BlYW4iLCJNTS9ERC9ZWVlZIjoiVVMiLCJZWVlZLU1NLUREIjoiSVNPIn07YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGk9PntsZXQgbz1pLnRhcmdldCxuPW8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgJHtvLmxhYmVsfSBmb3JtYXQ6YCxuLnZhbHVlKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIEZvcm1hdHMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGRhdGUgZGlzcGxheSBmb3JtYXRzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IkV1cm9wZWFuIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iREQvTU0vWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJVUyBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9Ik1NL0REL1lZWVkiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iSVNPIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iWVlZWS1NTS1ERCIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBlPWEucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntlLmdldFZhbHVlKCl8fGNvbnNvbGUubG9nKCJSZXF1aXJlZCBkYXRlIGZpZWxkIGlzIGVtcHR5Iil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiUmVxdWlyZWQgYW5kIGRpc2FibGVkIHN0YXRlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJCaXJ0aCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiCiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWxlY3QgeW91ciBiaXJ0aCBkYXRlIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRGlzYWJsZWQgRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IlVTIENhbGVuZGFyIl0nKSx0PWEucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFVSBDYWxlbmRhciJdJyk7ZSYmY29uc29sZS5sb2coIlVTIENhbGVuZGFyIHN0YXJ0cyBvbiBTdW5kYXkgKDApIiksdCYmY29uc29sZS5sb2coIkVVIENhbGVuZGFyIHN0YXJ0cyBvbiBNb25kYXkgKDEpIil9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNhbGVuZGFyIEN1c3RvbWl6YXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHdlZWsgc3RhcnQgZGF5cyBmb3IgdmFyaW91cyByZWdpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJVUyBDYWxlbmRhciIKICAgICAgICAgICAgZGVzY3JpcHRpb249IldlZWsgc3RhcnRzIG9uIFN1bmRheSIKICAgICAgICAgICAgLndlZWtTdGFydHNPbj0kezB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IkVVIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gTW9uZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1zKCgpPT57bGV0IHI9W10saT1uZXcgRGF0ZSxvPWkuZ2V0RnVsbFllYXIoKSxuPWkuZ2V0TW9udGgoKSxsPW5ldyBEYXRlKG8sbiwxKTtmb3IoO2wuZ2V0TW9udGgoKT09PW47KShsLmdldERheSgpPT09MHx8bC5nZXREYXkoKT09PTYpJiZyLnB1c2gobmV3IERhdGUobCkudG9JU09TdHJpbmcoKSksbC5zZXREYXRlKGwuZ2V0RGF0ZSgpKzEpO3JldHVybiByfSwiZ2VuZXJhdGVXZWVrZW5kcyIpLHQ9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTt0JiYodC5kaXNhYmxlZERhdGVzPWUoKSxjb25zb2xlLmxvZygiRGlzYWJsZWQgd2Vla2VuZCBkYXRlcyBmb3IgY3VycmVudCBtb250aCIpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGlzYWJsZWQgRGF0ZXMifSAuc3VidGl0bGU9JHsiQ2FsZW5kYXIgd2l0aCBzcGVjaWZpYyBkYXRlcyBkaXNhYmxlZCAod2Vla2VuZHMgaW4gY3VycmVudCBtb250aCkifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXZhaWxhYmlsaXR5IENhbGVuZGFyIgogICAgICAgICAgZGVzY3JpcHRpb249IldlZWtlbmRzIGFyZSBkaXNhYmxlZCBmb3IgdGhlIGN1cnJlbnQgbW9udGgiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBlPW5ldyBEYXRlLHQ9ZS5nZXRNb250aCgpLHI9ZS5nZXRGdWxsWWVhcigpLGk9W3tkYXRlOmAke3J9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVGVhbSBNZWV0aW5nIix0eXBlOiJpbmZvIixjb3VudDoyfSx7ZGF0ZTpgJHtyfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJQcm9qZWN0IERlYWRsaW5lIix0eXBlOiJ3YXJuaW5nIn0se2RhdGU6YCR7cn0tJHsodCsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUmVsZWFzZSBEYXkiLHR5cGU6InN1Y2Nlc3MifSx7ZGF0ZTpgJHtyfS0keyh0KzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs1KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJVcmdlbnQgRml4IFJlcXVpcmVkIix0eXBlOiJlcnJvciJ9LHtkYXRlOmAke3J9LSR7KHQrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzcpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6Ik11bHRpcGxlIEV2ZW50cyBUb2RheSIsdHlwZToiaW5mbyIsY291bnQ6NX0se2RhdGU6YCR7cn0tJHsodCsyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tMTVgLHRpdGxlOiJGdXR1cmUgUGxhbm5pbmcgU2Vzc2lvbiIsdHlwZToiaW5mbyJ9XSxvPWEucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7byYmKG8uZXZlbnRzPWksY29uc29sZS5sb2coIkNhbGVuZGFyIGV2ZW50cyBsb2FkZWQ6IixpKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggRXZlbnRzIn0gLnN1YnRpdGxlPSR7IlZpc3VhbCBmZWVkYmFjayBmb3Igc2NoZWR1bGVkIGV2ZW50cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJEYXlzIHdpdGggY29sb3JlZCBkb3RzIGhhdmUgZXZlbnRzLiBIb3ZlciB0byBzZWUgZGV0YWlscy4iCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPHN0cm9uZz5FdmVudCBMZWdlbmQ6PC9zdHJvbmc+PGJyPgogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjMDk2OWRhOyI+4pePIEluZm88L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICNkMjk5MjI7Ij7il48gV2FybmluZzwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzJlYTA0MzsiPuKXjyBTdWNjZXNzPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjY2YyMjJlOyI+4pePIEVycm9yPC9zcGFuPjxicj4KICAgICAgICAgIDxlbT5EYXlzIHdpdGggbW9yZSB0aGFuIDMgZXZlbnRzIHNob3cgYSBjb3VudCBiYWRnZTwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKSx0PWEucXVlcnlTZWxlY3RvcigiI2V2ZW50LW91dHB1dCIpO2UmJnQmJihlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHI9PntsZXQgaT1yLnRhcmdldCxvPWkudmFsdWU7aWYobyl7bGV0IG49bmV3IERhdGUobyksZD1pLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik/LnZhbHVlfHwiTi9BIjt0LmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPgogICAgICAgICAgICAgIElTTyBWYWx1ZTogJHtvfTxicj4KICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7ZH08YnI+CiAgICAgICAgICAgICAgRGF0ZSBvYmplY3Q6ICR7bi50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgICBgfWVsc2UgdC5pbm5lckhUTUw9IjxlbT5EYXRlIGNsZWFyZWQ8L2VtPiJ9KSksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJEYXRlcGlja2VyIGxvc3QgZm9jdXMiKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRXZlbnQgSGFuZGxpbmcifSAuc3VidGl0bGU9JHsiSW50ZXJhY3RpdmUgZGVtb25zdHJhdGlvbiBvZiBjaGFuZ2UgZXZlbnRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IERlbW8iCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZSB0byBzZWUgdGhlIGV2ZW50IGRldGFpbHMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImV2ZW50LW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIDxlbT5TZWxlY3QgYSBkYXRlIHRvIHNlZSBldmVudCBkZXRhaWxzLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGJzYSx2c2E9ZigoKT0+e2xlKCk7U3IoKTtic2E9Wy4uLk10LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmZvY3VzLAogICAgICAuZGF0ZS1pbnB1dC5vcGVuIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaWNvbi1jb250YWluZXIgPiAqIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CiAgICBgXX0pO3ZhciB4c2EseXNhPWYoKCk9PntsZSgpO3hzYT1zKGE9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHthLmxhYmVsfSAuaW5mb1RleHQ9JHthLmluZm9UZXh0fSAucmVxdWlyZWQ9JHthLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7YS5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke2EuZm9ybWF0RGF0ZShhLnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHthLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke2EuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7YS50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke2EuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHthLmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7YS5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7YS52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7YS52YWx1ZSYmIWEuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7YS5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke2EucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYCwicmVuZGVyRGF0ZXBpY2tlciIpfSk7dmFyIGdzLHNhLEp0ZSxEWWU9ZigoKT0+e2xlKCk7ZWEoKTtHaSgpO1FlKCk7TTEoKTt2YSgpO2dzPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxzYT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sSnRlPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyLXBvcHVwIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdLGdlLGFlPVtdLHJlPVtdLHllLFY9W10sSD1bXSxvZSxzZT1bXSx0ZT1bXSx6ZSxPZT1bXSxxZT1bXSxkdCwkZT1bXSxDZT1bXTt2YXIgTWU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNJbnB1dERhdGVwaWNrZXJQb3B1cCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBkZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHthdHRyaWJ1dGU6ITF9KV0sZD1bJCh7YXR0cmlidXRlOiExfSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOk51bWJlcn0pXSxOPVskKHt0eXBlOk51bWJlcn0pXSxPPVskKHt0eXBlOlN0cmluZ30pXSxCPVskKHt0eXBlOlN0cmluZ30pXSxFPVskKHt0eXBlOkFycmF5fSldLFc9WyQoe3R5cGU6Qm9vbGVhbn0pXSxoZT1bJCh7dHlwZTpTdHJpbmd9KV0sbWU9WyQoe3R5cGU6QXJyYXl9KV0sY2U9WyQoe3R5cGU6Qm9vbGVhbn0pXSxRPVtLKCldLGdlPVtLKCldLHllPVtLKCldLG9lPVtLKCldLHplPVtLKCldLGR0PVtLKCldLGdzKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJpZ2dlclJlY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModmU9PiJ0cmlnZ2VyUmVjdCJpbiB2ZSwiaGFzIiksZ2V0OnModmU9PnZlLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUudHJpZ2dlclJlY3Q9QWV9LCJzZXQiKX0sbWV0YWRhdGE6ZGV9LG4sbCksZ3ModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2ZT0+Im93bmVyQ29tcG9uZW50ImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUub3duZXJDb21wb25lbnQsImdldCIpLHNldDpzKCh2ZSxBZSk9Pnt2ZS5vd25lckNvbXBvbmVudD1BZX0sInNldCIpfSxtZXRhZGF0YTpkZX0sYyxwKSxncyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModmU9PiJlbmFibGVUaW1lImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUuZW5hYmxlVGltZSwiZ2V0Iiksc2V0OnMoKHZlLEFlKT0+e3ZlLmVuYWJsZVRpbWU9QWV9LCJzZXQiKX0sbWV0YWRhdGE6ZGV9LG0sdiksZ3ModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4idGltZUZvcm1hdCJpbiB2ZSwiaGFzIiksZ2V0OnModmU9PnZlLnRpbWVGb3JtYXQsImdldCIpLHNldDpzKCh2ZSxBZSk9Pnt2ZS50aW1lRm9ybWF0PUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxiLGcpLGdzKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWludXRlSW5jcmVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4ibWludXRlSW5jcmVtZW50ImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUubWludXRlSW5jcmVtZW50LCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUubWludXRlSW5jcmVtZW50PUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxrLEMpLGdzKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2Vla1N0YXJ0c09uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4id2Vla1N0YXJ0c09uImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUud2Vla1N0YXJ0c09uLCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUud2Vla1N0YXJ0c09uPUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxfLHopLGdzKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2ZT0+Im1pbkRhdGUiaW4gdmUsImhhcyIpLGdldDpzKHZlPT52ZS5taW5EYXRlLCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUubWluRGF0ZT1BZX0sInNldCIpfSxtZXRhZGF0YTpkZX0sVCxQKSxncyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModmU9PiJtYXhEYXRlImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUubWF4RGF0ZSwiZ2V0Iiksc2V0OnMoKHZlLEFlKT0+e3ZlLm1heERhdGU9QWV9LCJzZXQiKX0sbWV0YWRhdGE6ZGV9LE0sUyksZ3ModGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4iZGlzYWJsZWREYXRlcyJpbiB2ZSwiaGFzIiksZ2V0OnModmU9PnZlLmRpc2FibGVkRGF0ZXMsImdldCIpLHNldDpzKCh2ZSxBZSk9Pnt2ZS5kaXNhYmxlZERhdGVzPUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxBLEYpLGdzKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModmU9PiJlbmFibGVUaW1lem9uZSJpbiB2ZSwiaGFzIiksZ2V0OnModmU9PnZlLmVuYWJsZVRpbWV6b25lLCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUuZW5hYmxlVGltZXpvbmU9QWV9LCJzZXQiKX0sbWV0YWRhdGE6ZGV9LGosRyksZ3ModGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModmU9PiJ0aW1lem9uZSJpbiB2ZSwiaGFzIiksZ2V0OnModmU9PnZlLnRpbWV6b25lLCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUudGltZXpvbmU9QWV9LCJzZXQiKX0sbWV0YWRhdGE6ZGV9LFIsVSksZ3ModGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4iZXZlbnRzImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUuZXZlbnRzLCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUuZXZlbnRzPUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxJLHEpLGdzKHRoaXMsbnVsbCxjZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModmU9PiJvcGVuc1RvVG9wImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUub3BlbnNUb1RvcCwiZ2V0Iiksc2V0OnMoKHZlLEFlKT0+e3ZlLm9wZW5zVG9Ub3A9QWV9LCJzZXQiKX0sbWV0YWRhdGE6ZGV9LHVlLFkpLGdzKHRoaXMsbnVsbCxRLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4ic2VsZWN0ZWREYXRlImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUuc2VsZWN0ZWREYXRlLCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUuc2VsZWN0ZWREYXRlPUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxKLFopLGdzKHRoaXMsbnVsbCxnZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4idmlld0RhdGUiaW4gdmUsImhhcyIpLGdldDpzKHZlPT52ZS52aWV3RGF0ZSwiZ2V0Iiksc2V0OnMoKHZlLEFlKT0+e3ZlLnZpZXdEYXRlPUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxhZSxyZSksZ3ModGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4ic2VsZWN0ZWRIb3VyImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUuc2VsZWN0ZWRIb3VyLCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUuc2VsZWN0ZWRIb3VyPUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxWLEgpLGdzKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkTWludXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHZlPT4ic2VsZWN0ZWRNaW51dGUiaW4gdmUsImhhcyIpLGdldDpzKHZlPT52ZS5zZWxlY3RlZE1pbnV0ZSwiZ2V0Iiksc2V0OnMoKHZlLEFlKT0+e3ZlLnNlbGVjdGVkTWludXRlPUFlfSwic2V0Iil9LG1ldGFkYXRhOmRlfSxzZSx0ZSksZ3ModGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2ZT0+Im1lbnVaSW5kZXgiaW4gdmUsImhhcyIpLGdldDpzKHZlPT52ZS5tZW51WkluZGV4LCJnZXQiKSxzZXQ6cygodmUsQWUpPT57dmUubWVudVpJbmRleD1BZX0sInNldCIpfSxtZXRhZGF0YTpkZX0sT2UscWUpLGdzKHRoaXMsbnVsbCxkdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModmU9PiJ2aXNpYmxlImluIHZlLCJoYXMiKSxnZXQ6cyh2ZT0+dmUudmlzaWJsZSwiZ2V0Iiksc2V0OnMoKHZlLEFlKT0+e3ZlLnZpc2libGU9QWV9LCJzZXQiKX0sbWV0YWRhdGE6ZGV9LCRlLENlKSxncyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpkZX0sbnVsbCx0KSxNZT1yPWUudmFsdWUsZGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZGV9KX0jZT1zYSh0aGlzLG4sbnVsbCk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRyaWdnZXJSZWN0KGRlKXt0aGlzLiNlPWRlfSN0PShzYSh0aGlzLGwpLHNhKHRoaXMsYyxudWxsKSk7Z2V0IG93bmVyQ29tcG9uZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IG93bmVyQ29tcG9uZW50KGRlKXt0aGlzLiN0PWRlfSNhPShzYSh0aGlzLHApLHNhKHRoaXMsbSwhMSkpO2dldCBlbmFibGVUaW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVuYWJsZVRpbWUoZGUpe3RoaXMuI2E9ZGV9I3I9KHNhKHRoaXMsdiksc2EodGhpcyxiLCIyNGgiKSk7Z2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGltZUZvcm1hdChkZSl7dGhpcy4jcj1kZX0jcz0oc2EodGhpcyxnKSxzYSh0aGlzLGssMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWludXRlSW5jcmVtZW50KGRlKXt0aGlzLiNzPWRlfSNpPShzYSh0aGlzLEMpLHNhKHRoaXMsXywxKSk7Z2V0IHdlZWtTdGFydHNPbigpe3JldHVybiB0aGlzLiNpfXNldCB3ZWVrU3RhcnRzT24oZGUpe3RoaXMuI2k9ZGV9I289KHNhKHRoaXMseiksc2EodGhpcyxULCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWluRGF0ZShkZSl7dGhpcy4jbz1kZX0jbj0oc2EodGhpcyxQKSxzYSh0aGlzLE0sIiIpKTtnZXQgbWF4RGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhEYXRlKGRlKXt0aGlzLiNuPWRlfSNsPShzYSh0aGlzLFMpLHNhKHRoaXMsQSxbXSkpO2dldCBkaXNhYmxlZERhdGVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGRpc2FibGVkRGF0ZXMoZGUpe3RoaXMuI2w9ZGV9I2M9KHNhKHRoaXMsRiksc2EodGhpcyxqLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGVuYWJsZVRpbWV6b25lKGRlKXt0aGlzLiNjPWRlfSNkPShzYSh0aGlzLEcpLHNhKHRoaXMsUixJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUpKTtnZXQgdGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgdGltZXpvbmUoZGUpe3RoaXMuI2Q9ZGV9I3U9KHNhKHRoaXMsVSksc2EodGhpcyxJLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiN1fXNldCBldmVudHMoZGUpe3RoaXMuI3U9ZGV9I3A9KHNhKHRoaXMscSksc2EodGhpcyx1ZSwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG9wZW5zVG9Ub3AoZGUpe3RoaXMuI3A9ZGV9I2Y9KHNhKHRoaXMsWSksc2EodGhpcyxKLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNlbGVjdGVkRGF0ZShkZSl7dGhpcy4jZj1kZX0jaD0oc2EodGhpcyxaKSxzYSh0aGlzLGFlLG5ldyBEYXRlKSk7Z2V0IHZpZXdEYXRlKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHZpZXdEYXRlKGRlKXt0aGlzLiNoPWRlfSNtPShzYSh0aGlzLHJlKSxzYSh0aGlzLFYsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWRIb3VyKGRlKXt0aGlzLiNtPWRlfSNnPShzYSh0aGlzLEgpLHNhKHRoaXMsc2UsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZE1pbnV0ZShkZSl7dGhpcy4jZz1kZX0jYj0oc2EodGhpcyx0ZSksc2EodGhpcyxPZSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNifXNldCBtZW51WkluZGV4KGRlKXt0aGlzLiNiPWRlfSN2PShzYSh0aGlzLHFlKSxzYSh0aGlzLCRlLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgdmlzaWJsZShkZSl7dGhpcy4jdj1kZX13aW5kb3dMYXllcj0oc2EodGhpcyxDZSksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgNHB4IDZweCAtNHB4IGhzbCgwIDAlIDAlIC8gMC4xKSIsIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjIpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLnRvcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC5zaG93IHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogQ2FsZW5kYXIgSGVhZGVyICovCiAgICAgIC5jYWxlbmRhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLm1vbnRoLXllYXItZGlzcGxheSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLyogV2Vla2RheSBoZWFkZXJzICovCiAgICAgIC53ZWVrZGF5cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLndlZWtkYXkgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwYWRkaW5nOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIERheXMgZ3JpZCAqLwogICAgICAuZGF5cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5kYXkgewogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZGF5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF5Lm90aGVyLW1vbnRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kYXkudG9kYXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5kaXNhYmxlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC8qIEV2ZW50IGluZGljYXRvcnMgKi8KICAgICAgLmV2ZW50LWluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdCB7CiAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5pbmZvIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTEgNzAlIDUyJSkiLCJoc2woMjExIDcwJSA2MiUpIil9OyB9CiAgICAgIC5ldmVudC1kb3Qud2FybmluZyB7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTAlIDQ1JSkiLCJoc2woNDUgOTAlIDU1JSkiKX07IH0KICAgICAgLmV2ZW50LWRvdC5zdWNjZXNzIHsgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIgNjklIDQ1JSkiLCJoc2woMTQyIDY5JSA1NSUpIil9OyB9CiAgICAgIC5ldmVudC1kb3QuZXJyb3IgeyBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsgfQoKICAgICAgLmV2ZW50LWNvdW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgcmlnaHQ6IDJweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgNTElKSIsImhzbCgwIDcyJSA2MSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZXZlbnQtdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgOHB4KTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuZGF5Lmhhcy1ldmVudDpob3ZlciAuZXZlbnQtdG9vbHRpcCB7IG9wYWNpdHk6IDE7IH0KCiAgICAgIC8qIFRpbWUgc2VsZWN0b3IgKi8KICAgICAgLnRpbWUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXRzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0IHsKICAgICAgICB3aWR0aDogNjVweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VwYXJhdG9yIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLXNlbGVjdG9yIHsgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7IG1hcmdpbi1sZWZ0OiA4cHg7IH0KCiAgICAgIC5hbS1wbS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b246aG92ZXI6bm90KC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbWV6b25lIHNlbGVjdG9yICovCiAgICAgIC50aW1lem9uZS1zZWxlY3RvciB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAvKiBBY3Rpb24gYnV0dG9ucyAqLwogICAgICAuY2FsZW5kYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWFjdGlvbi1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDMwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQogICAgYF07c3RhdGljIE1PTlRIX05BTUVTPVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXTtzdGF0aWMgVElNRVpPTkVTPVt7dmFsdWU6IlVUQyIsbGFiZWw6IlVUQyAoQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUpIn0se3ZhbHVlOiJBbWVyaWNhL05ld19Zb3JrIixsYWJlbDoiRWFzdGVybiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvQ2hpY2FnbyIsbGFiZWw6IkNlbnRyYWwgVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0RlbnZlciIsbGFiZWw6Ik1vdW50YWluIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9Mb3NfQW5nZWxlcyIsbGFiZWw6IlBhY2lmaWMgVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJFdXJvcGUvTG9uZG9uIixsYWJlbDoiTG9uZG9uIn0se3ZhbHVlOiJFdXJvcGUvUGFyaXMiLGxhYmVsOiJQYXJpcyJ9LHt2YWx1ZToiRXVyb3BlL0JlcmxpbiIsbGFiZWw6IkJlcmxpbiJ9LHt2YWx1ZToiRXVyb3BlL01vc2NvdyIsbGFiZWw6Ik1vc2NvdyJ9LHt2YWx1ZToiQXNpYS9EdWJhaSIsbGFiZWw6IkR1YmFpIn0se3ZhbHVlOiJBc2lhL0tvbGthdGEiLGxhYmVsOiJJbmRpYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1NoYW5naGFpIixsYWJlbDoiQ2hpbmEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9Ub2t5byIsbGFiZWw6IlRva3lvIn0se3ZhbHVlOiJBdXN0cmFsaWEvU3lkbmV5IixsYWJlbDoiU3lkbmV5In0se3ZhbHVlOiJQYWNpZmljL0F1Y2tsYW5kIixsYWJlbDoiQXVja2xhbmQifV07cmVuZGVyKCl7aWYoIXRoaXMudHJpZ2dlclJlY3QpcmV0dXJuIHdgYDtsZXQgZGU9dGhpcy5jb21wdXRlUG9zaXRpb25TdHlsZSgpLHZlPXRoaXMud2Vla1N0YXJ0c09uPT09MT9bIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSIsIlN1Il06WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLEFlPXRoaXMuZ2V0RGF5c0luTW9udGgoKSxaZT10aGlzLnNlbGVjdGVkSG91cjwxMjtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJjYWxlbmRhci1wb3B1cCAke3RoaXMudmlzaWJsZT8ic2hvdyI6IiJ9ICR7dGhpcy5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSIKICAgICAgICBzdHlsZT0iJHtkZX07IHotaW5kZXg6ICR7dGhpcy5tZW51WkluZGV4fTsiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1oZWFkZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5wcmV2aW91c01vbnRofT4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvbkxlZnQiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1vbnRoLXllYXItZGlzcGxheSI+CiAgICAgICAgICAgICR7TWUuTU9OVEhfTkFNRVNbdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpXX0gJHt0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3RoaXMubmV4dE1vbnRofT4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvblJpZ2h0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IndlZWtkYXlzIj4KICAgICAgICAgICR7dmUubWFwKG50PT53YDxkaXYgY2xhc3M9IndlZWtkYXkiPiR7bnR9PC9kaXY+YCl9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRheXMtZ3JpZCI+CiAgICAgICAgICAke0FlLm1hcChudD0+e2xldCB6dD10aGlzLmlzVG9kYXkobnQpLFRlPXRoaXMuaXNTZWxlY3RlZChudCksd2U9bnQuZ2V0TW9udGgoKSE9PXRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSxSZT10aGlzLmlzRGF5RGlzYWJsZWQobnQpLGZlPXRoaXMuZ2V0RXZlbnRzRm9yRGF0ZShudCksYmU9ZmUubGVuZ3RoPjAsRWU9ZmUucmVkdWNlKChmdCxtdCk9PmZ0KyhtdC5jb3VudHx8MSksMCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImRheSAke3dlPyJvdGhlci1tb250aCI6IiJ9ICR7enQ/InRvZGF5IjoiIn0gJHtUZT8ic2VsZWN0ZWQiOiIifSAke1JlPyJkaXNhYmxlZCI6IiJ9ICR7YmU/Imhhcy1ldmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFSZSYmdGhpcy5oYW5kbGVTZWxlY3REYXRlKG50KX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke250LmdldERhdGUoKX0KICAgICAgICAgICAgICAgICR7YmU/d2AKICAgICAgICAgICAgICAgICAgJHtFZT4zP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtY291bnQiPiR7RWV9PC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgICAgICAgJHtmZS5zbGljZSgwLDMpLm1hcChmdD0+d2AKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtZG90ICR7ZnQudHlwZXx8ImluZm8ifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgJHtmZVswXS50aXRsZT93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LXRvb2x0aXAiPgogICAgICAgICAgICAgICAgICAgICAgJHtmZVswXS50aXRsZX0KICAgICAgICAgICAgICAgICAgICAgICR7RWU+MT93YCAoKyR7RWUtMX0gbW9yZSlgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuZW5hYmxlVGltZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3ItdGl0bGUiPlRpbWU8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1pbnB1dHMiPgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJ0aW1lLWlucHV0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/KHRoaXMuc2VsZWN0ZWRIb3VyPT09MD8xMjp0aGlzLnNlbGVjdGVkSG91cj4xMj90aGlzLnNlbGVjdGVkSG91ci0xMjp0aGlzLnNlbGVjdGVkSG91cikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIik6dGhpcy5zZWxlY3RlZEhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUhvdXJJbnB1dH0KICAgICAgICAgICAgICAgIG1pbj0iJHt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj8xOjB9IgogICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudGltZUZvcm1hdD09PSIxMmgiPzEyOjIzfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLXNlcGFyYXRvciI+Ojwvc3Bhbj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0idGltZS1pbnB1dCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VsZWN0ZWRNaW51dGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZU1pbnV0ZUlucHV0fQogICAgICAgICAgICAgICAgbWluPSIwIiBtYXg9IjU5IiBzdGVwPSIke3RoaXMubWludXRlSW5jcmVtZW50fHwxfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtLXBtLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYW0tcG0tYnV0dG9uICR7WmU/InNlbGVjdGVkIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnNldEFNUE0oImFtIil9PkFNPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFtLXBtLWJ1dHRvbiAke1plPyIiOiJzZWxlY3RlZCJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5zZXRBTVBNKCJwbSIpfT5QTTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZW5hYmxlVGltZXpvbmU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3ItdGl0bGUiPlRpbWV6b25lPC9kaXY+CiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9InRpbWV6b25lLXNlbGVjdCIgLnZhbHVlPSR7dGhpcy50aW1lem9uZX0gQGNoYW5nZT0ke3RoaXMuaGFuZGxlVGltZXpvbmVDaGFuZ2V9PgogICAgICAgICAgICAgICR7TWUuVElNRVpPTkVTLm1hcChudD0+d2AKICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiR7bnQudmFsdWV9IiA/c2VsZWN0ZWQ9JHtudC52YWx1ZT09PXRoaXMudGltZXpvbmV9PiR7bnQubGFiZWx9PC9vcHRpb24+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHRvZGF5LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWxlY3RUb2RheX0+VG9kYXk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gY2xlYXItYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhcn0+Q2xlYXI8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbXB1dGVQb3NpdGlvblN0eWxlKCl7bGV0IGRlPXRoaXMudHJpZ2dlclJlY3QsdmU9ZGUubGVmdDtpZih0aGlzLm9wZW5zVG9Ub3Ape2xldCBBZT13aW5kb3cuaW5uZXJIZWlnaHQtZGUudG9wKzQ7cmV0dXJuYGxlZnQ6ICR7dmV9cHg7IGJvdHRvbTogJHtBZX1weDsgdG9wOiBhdXRvYH1lbHNle2xldCBBZT1kZS5ib3R0b20rNDtyZXR1cm5gbGVmdDogJHt2ZX1weDsgdG9wOiAke0FlfXB4YH19Z2V0RGF5c0luTW9udGgoKXtsZXQgZGU9dGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLHZlPXRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSxBZT1uZXcgRGF0ZShkZSx2ZSwxKSxaZT1uZXcgRGF0ZShkZSx2ZSsxLDApLG50PVtdLHp0PXRoaXMud2Vla1N0YXJ0c09uPT09MT9BZS5nZXREYXkoKT09PTA/NjpBZS5nZXREYXkoKS0xOkFlLmdldERheSgpO2ZvcihsZXQgd2U9enQ7d2U+MDt3ZS0tKW50LnB1c2gobmV3IERhdGUoZGUsdmUsMS13ZSkpO2ZvcihsZXQgd2U9MTt3ZTw9WmUuZ2V0RGF0ZSgpO3dlKyspbnQucHVzaChuZXcgRGF0ZShkZSx2ZSx3ZSkpO2xldCBUZT00Mi1udC5sZW5ndGg7Zm9yKGxldCB3ZT0xO3dlPD1UZTt3ZSsrKW50LnB1c2gobmV3IERhdGUoZGUsdmUrMSx3ZSkpO3JldHVybiBudH1pc1RvZGF5KGRlKXtsZXQgdmU9bmV3IERhdGU7cmV0dXJuIGRlLmdldERhdGUoKT09PXZlLmdldERhdGUoKSYmZGUuZ2V0TW9udGgoKT09PXZlLmdldE1vbnRoKCkmJmRlLmdldEZ1bGxZZWFyKCk9PT12ZS5nZXRGdWxsWWVhcigpfWlzU2VsZWN0ZWQoZGUpe3JldHVybiB0aGlzLnNlbGVjdGVkRGF0ZT9kZS5nZXREYXRlKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkmJmRlLmdldE1vbnRoKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpJiZkZS5nZXRGdWxsWWVhcigpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKTohMX1pc0RheURpc2FibGVkKGRlKXtpZih0aGlzLm1pbkRhdGUpe2xldCB2ZT1uZXcgRGF0ZSh0aGlzLm1pbkRhdGUpO2lmKGRlPHZlKXJldHVybiEwfWlmKHRoaXMubWF4RGF0ZSl7bGV0IHZlPW5ldyBEYXRlKHRoaXMubWF4RGF0ZSk7aWYoZGU+dmUpcmV0dXJuITB9cmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcz8ubGVuZ3RoP3RoaXMuZGlzYWJsZWREYXRlcy5zb21lKHZlPT57dHJ5e2xldCBBZT1uZXcgRGF0ZSh2ZSk7cmV0dXJuIGRlLmdldERhdGUoKT09PUFlLmdldERhdGUoKSYmZGUuZ2V0TW9udGgoKT09PUFlLmdldE1vbnRoKCkmJmRlLmdldEZ1bGxZZWFyKCk9PT1BZS5nZXRGdWxsWWVhcigpfWNhdGNoe3JldHVybiExfX0pOiExfWdldEV2ZW50c0ZvckRhdGUoZGUpe2lmKCF0aGlzLmV2ZW50cz8ubGVuZ3RoKXJldHVybltdO2xldCB2ZT1gJHtkZS5nZXRGdWxsWWVhcigpfS0keyhkZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2RlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gO3JldHVybiB0aGlzLmV2ZW50cy5maWx0ZXIoQWU9PkFlLmRhdGU9PT12ZSl9cHJldmlvdXNNb250aCgpe3RoaXMudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLHRoaXMudmlld0RhdGUuZ2V0TW9udGgoKS0xLDEpfW5leHRNb250aCgpe3RoaXMudmlld0RhdGU9bmV3IERhdGUodGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLHRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSsxLDEpfWhhbmRsZVNlbGVjdERhdGUoZGUpe3RoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKGRlLmdldEZ1bGxZZWFyKCksZGUuZ2V0TW9udGgoKSxkZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSx0aGlzLmVuYWJsZVRpbWV8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9aGFuZGxlU2VsZWN0VG9kYXkoKXtsZXQgZGU9bmV3IERhdGU7dGhpcy5zZWxlY3RlZERhdGU9ZGUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShkZSksdGhpcy5zZWxlY3RlZEhvdXI9ZGUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPWRlLmdldE1pbnV0ZXMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLXNlbGVjdGVkIix7ZGV0YWlsOnRoaXMuc2VsZWN0ZWREYXRlfSkpLHRoaXMuZW5hYmxlVGltZXx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX1oYW5kbGVDbGVhcigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRhdGUtY2xlYXJlZCIpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfWhhbmRsZUhvdXJJbnB1dD1zKGRlPT57bGV0IHZlPWRlLnRhcmdldCxBZT1wYXJzZUludCh2ZS52YWx1ZSl8fDA7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/KEFlPU1hdGgubWF4KDEsTWF0aC5taW4oMTIsQWUpKSx0aGlzLnNlbGVjdGVkSG91cj49MTImJkFlIT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9QWUrMTI6dGhpcy5zZWxlY3RlZEhvdXI8MTImJkFlPT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9MDp0aGlzLnNlbGVjdGVkSG91cj1BZSk6dGhpcy5zZWxlY3RlZEhvdXI9TWF0aC5tYXgoMCxNYXRoLm1pbigyMyxBZSkpLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZUhvdXJJbnB1dCIpO2hhbmRsZU1pbnV0ZUlucHV0PXMoZGU9PntsZXQgdmU9ZGUudGFyZ2V0LEFlPXBhcnNlSW50KHZlLnZhbHVlKXx8MDtBZT1NYXRoLm1heCgwLE1hdGgubWluKDU5LEFlKSksdGhpcy5taW51dGVJbmNyZW1lbnQ+MSYmKEFlPU1hdGgucm91bmQoQWUvdGhpcy5taW51dGVJbmNyZW1lbnQpKnRoaXMubWludXRlSW5jcmVtZW50KSx0aGlzLnNlbGVjdGVkTWludXRlPUFlLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZU1pbnV0ZUlucHV0Iik7c2V0QU1QTShkZSl7ZGU9PT0iYW0iJiZ0aGlzLnNlbGVjdGVkSG91cj49MTI/dGhpcy5zZWxlY3RlZEhvdXItPTEyOmRlPT09InBtIiYmdGhpcy5zZWxlY3RlZEhvdXI8MTImJih0aGlzLnNlbGVjdGVkSG91cis9MTIpLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX1oYW5kbGVUaW1lem9uZUNoYW5nZT1zKGRlPT57dGhpcy50aW1lem9uZT1kZS50YXJnZXQudmFsdWUsdGhpcy5lbWl0VGltZVVwZGF0ZSgpfSwiaGFuZGxlVGltZXpvbmVDaGFuZ2UiKTtlbWl0VGltZVVwZGF0ZSgpe3RoaXMuc2VsZWN0ZWREYXRlJiYodGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpLHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLXNlbGVjdGVkIix7ZGV0YWlsOnRoaXMuc2VsZWN0ZWREYXRlfSkpKX1hc3luYyBzaG93KCl7dGhpcy53aW5kb3dMYXllcj1hd2FpdCBHcy5jcmVhdGVBbmRTaG93KCksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfSksdGhpcy5tZW51WkluZGV4PVh0LmdldE5leHRaSW5kZXgoKSxYdC5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzKSxhd2FpdCBIdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtwYXNzaXZlOiEwfSl9YXN5bmMgaGlkZSgpe3RoaXMuaXNEZXN0cm95aW5nfHwodGhpcy5pc0Rlc3Ryb3lpbmc9ITAsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMH0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUpLFh0LnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmKHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMud2luZG93TGF5ZXI9bnVsbCksdGhpcy52aXNpYmxlPSExLGF3YWl0IEh0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLmlzRGVzdHJveWluZz0hMSl9aGFuZGxlU2Nyb2xsT3JSZXNpemU9cygoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcG9zaXRpb24tcmVxdWVzdCIpKX0sImhhbmRsZVNjcm9sbE9yUmVzaXplIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSxYdC51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tzYShyLHQpfX07cmV0dXJuIE1lPXJ9KSgpfSk7dmFyIElzLHhhLGVhZSwkWWU9ZigoKT0+e2xlKCk7U3IoKTtnc2EoKTt2c2EoKTt5c2EoKTtEWWUoKTt2YSgpO2FtKCk7SXM9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHhhPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxlYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXSxXLGo9W10sRz1bXSxoZSxSPVtdLFU9W10sbWUsST1bXSxxPVtdLGNlLHVlPVtdLFk9W10sUSxKPVtdLFo9W10sZ2UsYWU9W10scmU9W10seWUsVj1bXSxIPVtdLG9lLHNlPVtdLHRlPVtdLHplLE9lPVtdLHFlPVtdO3ZhciBkdD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0RGF0ZXBpY2tlciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCAkZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOkJvb2xlYW59KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpOdW1iZXJ9KV0seT1bJCh7dHlwZTpTdHJpbmd9KV0sTj1bJCh7dHlwZTpTdHJpbmd9KV0sTz1bJCh7dHlwZTpTdHJpbmd9KV0sQj1bJCh7dHlwZTpBcnJheX0pXSxFPVskKHt0eXBlOk51bWJlcn0pXSxXPVskKHt0eXBlOlN0cmluZ30pXSxoZT1bJCh7dHlwZTpCb29sZWFufSldLG1lPVskKHt0eXBlOlN0cmluZ30pXSxjZT1bJCh7dHlwZTpBcnJheX0pXSxRPVtLKCldLGdlPVtLKCldLHllPVtLKCldLG9lPVtLKCldLHplPVtLKCldLElzKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJ2YWx1ZSJpbiBDZSwiaGFzIiksZ2V0OnMoQ2U9PkNlLnZhbHVlLCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2UudmFsdWU9TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LG4sbCksSXModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKENlPT4iZW5hYmxlVGltZSJpbiBDZSwiaGFzIiksZ2V0OnMoQ2U9PkNlLmVuYWJsZVRpbWUsImdldCIpLHNldDpzKChDZSxNZSk9PntDZS5lbmFibGVUaW1lPU1lfSwic2V0Iil9LG1ldGFkYXRhOiRlfSxjLHApLElzKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDZT0+InRpbWVGb3JtYXQiaW4gQ2UsImhhcyIpLGdldDpzKENlPT5DZS50aW1lRm9ybWF0LCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2UudGltZUZvcm1hdD1NZX0sInNldCIpfSxtZXRhZGF0YTokZX0sbSx2KSxJcyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbnV0ZUluY3JlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDZT0+Im1pbnV0ZUluY3JlbWVudCJpbiBDZSwiaGFzIiksZ2V0OnMoQ2U9PkNlLm1pbnV0ZUluY3JlbWVudCwiZ2V0Iiksc2V0OnMoKENlLE1lKT0+e0NlLm1pbnV0ZUluY3JlbWVudD1NZX0sInNldCIpfSxtZXRhZGF0YTokZX0sYixnKSxJcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJkYXRlRm9ybWF0ImluIENlLCJoYXMiKSxnZXQ6cyhDZT0+Q2UuZGF0ZUZvcm1hdCwiZ2V0Iiksc2V0OnMoKENlLE1lKT0+e0NlLmRhdGVGb3JtYXQ9TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LGssQyksSXModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5EYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKENlPT4ibWluRGF0ZSJpbiBDZSwiaGFzIiksZ2V0OnMoQ2U9PkNlLm1pbkRhdGUsImdldCIpLHNldDpzKChDZSxNZSk9PntDZS5taW5EYXRlPU1lfSwic2V0Iil9LG1ldGFkYXRhOiRlfSxfLHopLElzKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDZT0+Im1heERhdGUiaW4gQ2UsImhhcyIpLGdldDpzKENlPT5DZS5tYXhEYXRlLCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2UubWF4RGF0ZT1NZX0sInNldCIpfSxtZXRhZGF0YTokZX0sVCxQKSxJcyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkRGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJkaXNhYmxlZERhdGVzImluIENlLCJoYXMiKSxnZXQ6cyhDZT0+Q2UuZGlzYWJsZWREYXRlcywiZ2V0Iiksc2V0OnMoKENlLE1lKT0+e0NlLmRpc2FibGVkRGF0ZXM9TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LE0sUyksSXModGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3ZWVrU3RhcnRzT24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJ3ZWVrU3RhcnRzT24iaW4gQ2UsImhhcyIpLGdldDpzKENlPT5DZS53ZWVrU3RhcnRzT24sImdldCIpLHNldDpzKChDZSxNZSk9PntDZS53ZWVrU3RhcnRzT249TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LEEsRiksSXModGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDZT0+InBsYWNlaG9sZGVyImluIENlLCJoYXMiKSxnZXQ6cyhDZT0+Q2UucGxhY2Vob2xkZXIsImdldCIpLHNldDpzKChDZSxNZSk9PntDZS5wbGFjZWhvbGRlcj1NZX0sInNldCIpfSxtZXRhZGF0YTokZX0saixHKSxJcyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDZT0+ImVuYWJsZVRpbWV6b25lImluIENlLCJoYXMiKSxnZXQ6cyhDZT0+Q2UuZW5hYmxlVGltZXpvbmUsImdldCIpLHNldDpzKChDZSxNZSk9PntDZS5lbmFibGVUaW1lem9uZT1NZX0sInNldCIpfSxtZXRhZGF0YTokZX0sUixVKSxJcyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDZT0+InRpbWV6b25lImluIENlLCJoYXMiKSxnZXQ6cyhDZT0+Q2UudGltZXpvbmUsImdldCIpLHNldDpzKChDZSxNZSk9PntDZS50aW1lem9uZT1NZX0sInNldCIpfSxtZXRhZGF0YTokZX0sSSxxKSxJcyh0aGlzLG51bGwsY2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJldmVudHMiaW4gQ2UsImhhcyIpLGdldDpzKENlPT5DZS5ldmVudHMsImdldCIpLHNldDpzKChDZSxNZSk9PntDZS5ldmVudHM9TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LHVlLFkpLElzKHRoaXMsbnVsbCxRLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJpc09wZW5lZCJpbiBDZSwiaGFzIiksZ2V0OnMoQ2U9PkNlLmlzT3BlbmVkLCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2UuaXNPcGVuZWQ9TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LEosWiksSXModGhpcyxudWxsLGdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKENlPT4ic2VsZWN0ZWREYXRlImluIENlLCJoYXMiKSxnZXQ6cyhDZT0+Q2Uuc2VsZWN0ZWREYXRlLCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2Uuc2VsZWN0ZWREYXRlPU1lfSwic2V0Iil9LG1ldGFkYXRhOiRlfSxhZSxyZSksSXModGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld0RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJ2aWV3RGF0ZSJpbiBDZSwiaGFzIiksZ2V0OnMoQ2U9PkNlLnZpZXdEYXRlLCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2Uudmlld0RhdGU9TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LFYsSCksSXModGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKENlPT4ic2VsZWN0ZWRIb3VyImluIENlLCJoYXMiKSxnZXQ6cyhDZT0+Q2Uuc2VsZWN0ZWRIb3VyLCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2Uuc2VsZWN0ZWRIb3VyPU1lfSwic2V0Iil9LG1ldGFkYXRhOiRlfSxzZSx0ZSksSXModGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRNaW51dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQ2U9PiJzZWxlY3RlZE1pbnV0ZSJpbiBDZSwiaGFzIiksZ2V0OnMoQ2U9PkNlLnNlbGVjdGVkTWludXRlLCJnZXQiKSxzZXQ6cygoQ2UsTWUpPT57Q2Uuc2VsZWN0ZWRNaW51dGU9TWV9LCJzZXQiKX0sbWV0YWRhdGE6JGV9LE9lLHFlKSxJcyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTokZX0sbnVsbCx0KSxkdD1yPWUudmFsdWUsJGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JGV9KX1zdGF0aWMgZGVtbz1tc2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPXhhKHRoaXMsbiwiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCRlKXt0aGlzLiNlPSRlfSN0PSh4YSh0aGlzLGwpLHhhKHRoaXMsYywhMSkpO2dldCBlbmFibGVUaW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVuYWJsZVRpbWUoJGUpe3RoaXMuI3Q9JGV9I2E9KHhhKHRoaXMscCkseGEodGhpcyxtLCIyNGgiKSk7Z2V0IHRpbWVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGltZUZvcm1hdCgkZSl7dGhpcy4jYT0kZX0jcj0oeGEodGhpcyx2KSx4YSh0aGlzLGIsMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWludXRlSW5jcmVtZW50KCRlKXt0aGlzLiNyPSRlfSNzPSh4YSh0aGlzLGcpLHhhKHRoaXMsaywiWVlZWS1NTS1ERCIpKTtnZXQgZGF0ZUZvcm1hdCgpe3JldHVybiB0aGlzLiNzfXNldCBkYXRlRm9ybWF0KCRlKXt0aGlzLiNzPSRlfSNpPSh4YSh0aGlzLEMpLHhhKHRoaXMsXywiIikpO2dldCBtaW5EYXRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1pbkRhdGUoJGUpe3RoaXMuI2k9JGV9I289KHhhKHRoaXMseikseGEodGhpcyxULCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4RGF0ZSgkZSl7dGhpcy4jbz0kZX0jbj0oeGEodGhpcyxQKSx4YSh0aGlzLE0sW10pKTtnZXQgZGlzYWJsZWREYXRlcygpe3JldHVybiB0aGlzLiNufXNldCBkaXNhYmxlZERhdGVzKCRlKXt0aGlzLiNuPSRlfSNsPSh4YSh0aGlzLFMpLHhhKHRoaXMsQSwxKSk7Z2V0IHdlZWtTdGFydHNPbigpe3JldHVybiB0aGlzLiNsfXNldCB3ZWVrU3RhcnRzT24oJGUpe3RoaXMuI2w9JGV9I2M9KHhhKHRoaXMsRikseGEodGhpcyxqLCJZWVlZLU1NLUREIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNjfXNldCBwbGFjZWhvbGRlcigkZSl7dGhpcy4jYz0kZX0jZD0oeGEodGhpcyxHKSx4YSh0aGlzLFIsITEpKTtnZXQgZW5hYmxlVGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZW5hYmxlVGltZXpvbmUoJGUpe3RoaXMuI2Q9JGV9I3U9KHhhKHRoaXMsVSkseGEodGhpcyxJLEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiN1fXNldCB0aW1lem9uZSgkZSl7dGhpcy4jdT0kZX0jcD0oeGEodGhpcyxxKSx4YSh0aGlzLHVlLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiNwfXNldCBldmVudHMoJGUpe3RoaXMuI3A9JGV9I2Y9KHhhKHRoaXMsWSkseGEodGhpcyxKLCExKSk7Z2V0IGlzT3BlbmVkKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGlzT3BlbmVkKCRlKXt0aGlzLiNmPSRlfSNoPSh4YSh0aGlzLFopLHhhKHRoaXMsYWUsbnVsbCkpO2dldCBzZWxlY3RlZERhdGUoKXtyZXR1cm4gdGhpcy4jaH1zZXQgc2VsZWN0ZWREYXRlKCRlKXt0aGlzLiNoPSRlfSNtPSh4YSh0aGlzLHJlKSx4YSh0aGlzLFYsbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jbX1zZXQgdmlld0RhdGUoJGUpe3RoaXMuI209JGV9I2c9KHhhKHRoaXMsSCkseGEodGhpcyxzZSwwKSk7Z2V0IHNlbGVjdGVkSG91cigpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZEhvdXIoJGUpe3RoaXMuI2c9JGV9I2I9KHhhKHRoaXMsdGUpLHhhKHRoaXMsT2UsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNifXNldCBzZWxlY3RlZE1pbnV0ZSgkZSl7dGhpcy4jYj0kZX1wb3B1cEluc3RhbmNlPSh4YSh0aGlzLHFlKSxudWxsKTtzdGF0aWMgc3R5bGVzPWJzYTtyZW5kZXIoKXtyZXR1cm4geHNhKHRoaXMpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgJGU9bmV3IERhdGUodGhpcy52YWx1ZSk7aXNOYU4oJGUuZ2V0VGltZSgpKXx8KHRoaXMuc2VsZWN0ZWREYXRlPSRlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoJGUpLHRoaXMuc2VsZWN0ZWRIb3VyPSRlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT0kZS5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCAkZT1uZXcgRGF0ZTt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKCRlKSx0aGlzLnNlbGVjdGVkSG91cj0kZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZSgkZSl7aWYoISRlKXJldHVybiIiO3RyeXtsZXQgQ2U9bmV3IERhdGUoJGUpO2lmKGlzTmFOKENlLmdldFRpbWUoKSkpcmV0dXJuIiI7bGV0IE1lPXRoaXMuZGF0ZUZvcm1hdCxkZT1DZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksdmU9KENlLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksQWU9Q2UuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO2lmKE1lPU1lLnJlcGxhY2UoIllZWVkiLEFlKSxNZT1NZS5yZXBsYWNlKCJZWSIsQWUuc2xpY2UoLTIpKSxNZT1NZS5yZXBsYWNlKCJNTSIsdmUpLE1lPU1lLnJlcGxhY2UoIkREIixkZSksdGhpcy5lbmFibGVUaW1lKXtsZXQgWmU9Q2UuZ2V0SG91cnMoKSxudD1aZT09PTA/MTI6WmU+MTI/WmUtMTI6WmUsenQ9Q2UuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLFRlPVplPj0xMj8iUE0iOiJBTSI7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/TWUrPWAgJHtudH06JHt6dH0gJHtUZX1gOk1lKz1gICR7WmUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7enR9YH1pZih0aGlzLmVuYWJsZVRpbWV6b25lKXtsZXQgenQ9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmVOYW1lOiJzaG9ydCIsdGltZVpvbmU6dGhpcy50aW1lem9uZX0pLmZvcm1hdFRvUGFydHMoQ2UpLmZpbmQoVGU9PlRlLnR5cGU9PT0idGltZVpvbmVOYW1lIik7enQmJihNZSs9YCAke3p0LnZhbHVlfWApfXJldHVybiBNZX1jYXRjaHtyZXR1cm4iIn19YXN5bmMgdG9nZ2xlQ2FsZW5kYXIoKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtpZih0aGlzLmlzT3BlbmVkKXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59dGhpcy5pc09wZW5lZD0hMDtsZXQgQ2U9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb250YWluZXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxNZT13aW5kb3cuaW5uZXJIZWlnaHQtQ2UuYm90dG9tLGRlPUNlLnRvcCx2ZT1NZTw0MDAmJmRlPk1lO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgSnRlKSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9Q2UsdGhpcy5wb3B1cEluc3RhbmNlLm93bmVyQ29tcG9uZW50PXRoaXMsdGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9dmUsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWU9dGhpcy5lbmFibGVUaW1lLHRoaXMucG9wdXBJbnN0YW5jZS50aW1lRm9ybWF0PXRoaXMudGltZUZvcm1hdCx0aGlzLnBvcHVwSW5zdGFuY2UubWludXRlSW5jcmVtZW50PXRoaXMubWludXRlSW5jcmVtZW50LHRoaXMucG9wdXBJbnN0YW5jZS53ZWVrU3RhcnRzT249dGhpcy53ZWVrU3RhcnRzT24sdGhpcy5wb3B1cEluc3RhbmNlLm1pbkRhdGU9dGhpcy5taW5EYXRlLHRoaXMucG9wdXBJbnN0YW5jZS5tYXhEYXRlPXRoaXMubWF4RGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2UuZGlzYWJsZWREYXRlcz10aGlzLmRpc2FibGVkRGF0ZXMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWV6b25lPXRoaXMuZW5hYmxlVGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLnRpbWV6b25lPXRoaXMudGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLmV2ZW50cz10aGlzLmV2ZW50cyx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWREYXRlPXRoaXMuc2VsZWN0ZWREYXRlLHRoaXMucG9wdXBJbnN0YW5jZS52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlKSx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWRIb3VyPXRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMucG9wdXBJbnN0YW5jZS5zZWxlY3RlZE1pbnV0ZT10aGlzLnNlbGVjdGVkTWludXRlLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSxhd2FpdCB0aGlzLnBvcHVwSW5zdGFuY2Uuc2hvdygpfWNsb3NlUG9wdXAoKXt0aGlzLmlzT3BlbmVkPSExLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuaGlkZSgpKX1oYW5kbGVEYXRlU2VsZWN0ZWQ9cygkZT0+e2xldCBDZT0kZS5kZXRhaWw7dGhpcy5zZWxlY3RlZERhdGU9Q2UsdGhpcy5zZWxlY3RlZEhvdXI9Q2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPUNlLmdldE1pbnV0ZXMoKSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKENlKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoQ2UpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiaGFuZGxlRGF0ZVNlbGVjdGVkIik7aGFuZGxlRGF0ZUNsZWFyZWQ9cygoKT0+e3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImhhbmRsZURhdGVDbGVhcmVkIik7aGFuZGxlQ2xvc2VSZXF1ZXN0PXMoKCk9Pnt0aGlzLmNsb3NlUG9wdXAoKX0sImhhbmRsZUNsb3NlUmVxdWVzdCIpO2hhbmRsZVJlcG9zaXRpb25SZXF1ZXN0PXMoKCk9PntpZighdGhpcy5wb3B1cEluc3RhbmNlfHwhdGhpcy5pc09wZW5lZClyZXR1cm47bGV0ICRlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIik7aWYoISRlKXJldHVybjtsZXQgQ2U9JGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoQ2UuYm90dG9tPDB8fENlLnRvcD53aW5kb3cuaW5uZXJIZWlnaHQpe3RoaXMuY2xvc2VQb3B1cCgpO3JldHVybn1sZXQgTWU9d2luZG93LmlubmVySGVpZ2h0LUNlLmJvdHRvbSxkZT1DZS50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9TWU8NDAwJiZkZT5NZSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9Q2V9LCJoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCIpO2hhbmRsZUtleWRvd24oJGUpeyRlLmtleT09PSJFbnRlciJ8fCRlLmtleT09PSIgIj8oJGUucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOiRlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmlzT3BlbmVkJiYoJGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlUG9wdXAoKSl9Y2xlYXJWYWx1ZSgkZSl7JGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWhhbmRsZU1hbnVhbElucHV0KCRlKXtsZXQgTWU9JGUudGFyZ2V0LnZhbHVlLnRyaW0oKTtpZighTWUpe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbDtyZXR1cm59bGV0IGRlPXRoaXMucGFyc2VNYW51YWxEYXRlKE1lKTtkZSYmIWlzTmFOKGRlLmdldFRpbWUoKSkmJih0aGlzLnZhbHVlPWRlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9ZGUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShkZSksdGhpcy5zZWxlY3RlZEhvdXI9ZGUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPWRlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9aGFuZGxlSW5wdXRCbHVyKCRlKXtsZXQgQ2U9JGUudGFyZ2V0LE1lPUNlLnZhbHVlLnRyaW0oKTtpZighTWUpe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtyZXR1cm59bGV0IGRlPXRoaXMucGFyc2VNYW51YWxEYXRlKE1lKTtkZSYmIWlzTmFOKGRlLmdldFRpbWUoKSk/KHRoaXMudmFsdWU9ZGUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1kZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKGRlKSx0aGlzLnNlbGVjdGVkSG91cj1kZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9ZGUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLENlLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKSk6Q2UudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpfXBhcnNlTWFudWFsRGF0ZSgkZSl7aWYoISRlKXJldHVybiBudWxsO2xldCBDZT0kZS5zcGxpdCgiICIpLE1lPUNlWzBdLGRlPUNlWzFdfHwiIix2ZT1udWxsLEFlPU1lLm1hdGNoKC9eKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pJC8pO2lmKEFlKXtsZXRbWmUsbnQsenQsVGVdPUFlO3ZlPW5ldyBEYXRlKHBhcnNlSW50KG50KSxwYXJzZUludCh6dCktMSxwYXJzZUludChUZSkpfWlmKCF2ZSl7bGV0IFplPU1lLm1hdGNoKC9eKFxkezEsMn0pXC4oXGR7MSwyfSlcLihcZHs0fSkkLyk7aWYoWmUpe2xldFtudCx6dCxUZSx3ZV09WmU7dmU9bmV3IERhdGUocGFyc2VJbnQod2UpLHBhcnNlSW50KFRlKS0xLHBhcnNlSW50KHp0KSl9fWlmKCF2ZSl7bGV0IFplPU1lLm1hdGNoKC9eKFxkezEsMn0pXC8oXGR7MSwyfSlcLyhcZHs0fSkkLyk7aWYoWmUpe2xldFtudCx6dCxUZSx3ZV09WmU7dmU9bmV3IERhdGUocGFyc2VJbnQod2UpLHBhcnNlSW50KHp0KS0xLHBhcnNlSW50KFRlKSl9fWlmKCF2ZXx8aXNOYU4odmUuZ2V0VGltZSgpKSlyZXR1cm4gbnVsbDtpZihkZSl7bGV0IFplPWRlLm1hdGNoKC9eKFxkezEsMn0pOihcZHsyfSkkLyk7aWYoWmUpe2xldFtudCx6dCxUZV09WmU7dmUuc2V0SG91cnMocGFyc2VJbnQoenQpKSx2ZS5zZXRNaW51dGVzKHBhcnNlSW50KFRlKSl9fWVsc2UgaWYoIXRoaXMuZW5hYmxlVGltZSl7bGV0IFplPW5ldyBEYXRlO3ZlLnNldEhvdXJzKFplLmdldEhvdXJzKCkpLHZlLnNldE1pbnV0ZXMoWmUuZ2V0TWludXRlcygpKSx2ZS5zZXRTZWNvbmRzKDApLHZlLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gdmV9Zm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoJGUpe2lmKCF0aGlzLmVuYWJsZVRpbWV6b25lKXJldHVybiAkZS50b0lTT1N0cmluZygpO2xldCBNZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iixob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsaG91cjEyOiExLHRpbWVab25lOnRoaXMudGltZXpvbmUsdGltZVpvbmVOYW1lOiJzaG9ydCJ9KS5mb3JtYXRUb1BhcnRzKCRlKSxkZT17fTtNZS5mb3JFYWNoKFplPT57ZGVbWmUudHlwZV09WmUudmFsdWV9KTtsZXQgdmU9YCR7ZGUueWVhcn0tJHtkZS5tb250aH0tJHtkZS5kYXl9VCR7ZGUuaG91cn06JHtkZS5taW51dGV9OiR7ZGUuc2Vjb25kfWAsQWU9dGhpcy5nZXRUaW1lem9uZU9mZnNldCgkZSx0aGlzLnRpbWV6b25lKTtyZXR1cm5gJHt2ZX0ke0FlfWB9Z2V0VGltZXpvbmVPZmZzZXQoJGUsQ2Upe2xldCBNZT1uZXcgRGF0ZSgkZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZTpDZX0pKSxkZT1uZXcgRGF0ZSgkZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZToiVVRDIn0pKSx2ZT0oTWUuZ2V0VGltZSgpLWRlLmdldFRpbWUoKSkvKDFlMyo2MCksQWU9TWF0aC5mbG9vcihNYXRoLmFicyh2ZSkvNjApLFplPU1hdGguYWJzKHZlKSU2MDtyZXR1cm5gJHt2ZT49MD8iKyI6Ii0ifSR7QWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7WmUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKCRlKXtpZih0aGlzLnZhbHVlPSRlLCRlKXRyeXtsZXQgQ2U9bmV3IERhdGUoJGUpO2lzTmFOKENlLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1DZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKENlKSx0aGlzLnNlbGVjdGVkSG91cj1DZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9Q2UuZ2V0TWludXRlcygpKX1jYXRjaHt9fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje3hhKHIsdCl9fTtyZXR1cm4gZHQ9cn0pKCl9KTt2YXIgdGFlPWYoKCk9PnskWWUoKTtEWWUoKX0pO3ZhciB3c2EsTXNhPWYoKCk9PntsZSgpO05hKCk7WXMoKTt3c2E9cygoKT0+d2AKICA8c3R5bGU+CiAgICAke1hgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PnthLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsKGk9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7ci5sYWJlbH0iIGNoYW5nZWQgdG86YCxyLmdldFZhbHVlKCkpfSkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7ci5sYWJlbH0iIGxvc3QgZm9jdXNgKX0pfSksYS5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJwYXNzd29yZCJdJykmJmNvbnNvbGUubG9nKCJQYXNzd29yZCBpbnB1dCBpbmNsdWRlcyB2aXNpYmlsaXR5IHRvZ2dsZSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUZXh0IElucHV0cyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCB0ZXh0IGlucHV0cyB3aXRoIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlVzZXJuYW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5kb2UifQogICAgICAgICAgICAua2V5PSR7InVzZXJuYW1lIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IllvdXIgdXNlcm5hbWUgd2lsbCBiZSB2aXNpYmxlIHRvIG90aGVyIHVzZXJzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBBZGRyZXNzIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5AZXhhbXBsZS5jb20ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiV2Ugd2lsbCBuZXZlciBzaGFyZSB5b3VyIGVtYWlsIHdpdGggYW55b25lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNlY3JldDEyMyJ9CiAgICAgICAgICAgIC5rZXk9JHsicGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PnthLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goaT0+e2xldCBvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpO2NvbnNvbGUubG9nKGBIb3Jpem9udGFsIGlucHV0ICIke2kubGFiZWx9IiBkaXNwbGF5OmAsby5kaXNwbGF5KX0pO2xldCB0PWEucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0iZmlyc3ROYW1lIl0nKSxyPWEucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0ibGFzdE5hbWUiXScpO2lmKHQmJnIpe2xldCBpPXMoKCk9PntsZXQgbz10LmdldFZhbHVlKCksbj1yLmdldFZhbHVlKCk7Y29uc29sZS5sb2coYEZ1bGwgbmFtZTogJHtvfSAke259YCl9LCJ1cGRhdGVGdWxsTmFtZSIpO3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsaSksci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixpKX19fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgZm9ybXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IkpvaG4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsiZmlyc3ROYW1lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJMYXN0IE5hbWUifQogICAgICAgICAgICAgIC52YWx1ZT0keyJEb2UifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsibGFzdE5hbWUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFnZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjI4In0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7ImFnZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PnthLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2gocj0+e2xldCBpPXIubGFiZWxQb3NpdGlvbjtjb25zb2xlLmxvZyhgSW5wdXQgIiR7ci5sYWJlbH0iIGhhcyBsYWJlbCBwb3NpdGlvbjogJHtpfWApfSk7bGV0IHQ9YS5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXRleHRbbGFiZWxQb3NpdGlvbj0ibGVmdCJdJyk7dC5sZW5ndGg+MCYmY29uc29sZS5sb2coYCR7dC5sZW5ndGh9IGlucHV0cyBoYXZlIGxlZnQtYWxpZ25lZCBsYWJlbHMgZm9yIGlubGluZSBsYXlvdXRgKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFiZWwgUG9zaXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBsYWJlbCBwb3NpdGlvbmluZyBvcHRpb25zIGZvciB2YXJpb3VzIGxheW91dHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiTGFiZWwgb24gVG9wIChEZWZhdWx0KSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJTdGFuZGFyZCBsYXlvdXQifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJ0b3AifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIExlZnQifQogICAgICAgICAgICAudmFsdWU9JHsiSW5saW5lIGxhYmVsIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiQ2l0eSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJOZXcgWW9yayJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlpJUCBDb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjEwMDAxIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB2YWxpZGF0aW9uIHN0YXRlcyBhbmQgaW5wdXQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJyZXF1aXJlZEZpZWxkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBGaWVsZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJDYW5ub3QgZWRpdCB0aGlzIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgd2l0aCBWYWxpZGF0aW9uIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImludmFsaWRAIn0KICAgICAgICAgICAgLnZhbGlkYXRpb25GdW5jdGlvbj0ke2E9Pi9eW15cc0BdK0BbXlxzQF0rXC5bXlxzQF0rJC8udGVzdChhKT97dmFsaWQ6ITAsbWVzc2FnZToiRW1haWwgYWRkcmVzcyBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2EucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0W2lzUGFzc3dvcmRCb29sXSIpLmZvckVhY2godD0+e2xldCByPXQsaT1zKCgpPT57bGV0IG89ci5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO28mJmNvbnNvbGUubG9nKGBQYXNzd29yZCBmaWVsZCAiJHtyLmxhYmVsfSIgdHlwZTpgLG8udHlwZSl9LCJjaGVja1RvZ2dsZSIpO2lmKHIuc2hhZG93Um9vdCl7bGV0IG89bmV3IE11dGF0aW9uT2JzZXJ2ZXIoaSksbj1yLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtuJiZvLm9ic2VydmUobix7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJ0eXBlIl19KX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQWR2YW5jZWQgRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiUGFzc3dvcmQgdmlzaWJpbGl0eSB0b2dnbGUgYW5kIG90aGVyIGFkdmFuY2VkIGZlYXR1cmVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIHdpdGggVG9nZ2xlIn0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJteVNlY3VyZVBhc3N3b3JkMTIzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkNsaWNrIHRoZSBleWUgaWNvbiB0byBzaG93L2hpZGUgcGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkFQSSBLZXkifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNrLTEyMzQ1Njc4OTBhYmNkZWYifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiS2VlcCB0aGlzIGtleSBzZWN1cmUgYW5kIG5ldmVyIHNoYXJlIGl0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKSx0PWEucXVlcnlTZWxlY3RvcigiI3RleHQtaW5wdXQtb3V0cHV0Iik7ZSYmdCYmZS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3QudGV4dENvbnRlbnQ9YEN1cnJlbnQgdmFsdWU6ICIke2UuZ2V0VmFsdWUoKX0iYH0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRyeSB0eXBpbmcgaW4gdGhlIGlucHV0IHRvIHNlZSByZWFsLXRpbWUgdmFsdWUgY2hhbmdlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC5sYWJlbD0keyJEeW5hbWljIElucHV0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHNvbWV0aGluZyBoZXJlLi4uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0idGV4dC1pbnB1dC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCI+Q3VycmVudCB2YWx1ZTogIiI8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGRjLGFpLGFhZSxuND1mKCgpPT57TDEoKTtTcigpO01zYSgpO21zKCk7bGUoKTtRZSgpO1hyKCk7ZGM9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGFpPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxhYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LXRleHQiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0VGV4dCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBBPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZD1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sdT1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bJCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx5PVskKHtyZWZsZWN0OiEwfSldLE49WyQoe2F0dHJpYnV0ZTohMX0pXSxPPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxCPVskKHthdHRyaWJ1dGU6ITF9KV0sZGModGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4idmFsdWUiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri52YWx1ZSwiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLnZhbHVlPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sbixsKSxkYyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGFzc3dvcmRCb29sIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJpc1Bhc3N3b3JkQm9vbCJpbiBGLCJoYXMiKSxnZXQ6cyhGPT5GLmlzUGFzc3dvcmRCb29sLCJnZXQiKSxzZXQ6cygoRixXKT0+e0YuaXNQYXNzd29yZEJvb2w9V30sInNldCIpfSxtZXRhZGF0YTpBfSxjLHApLGRjKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4ic2hvd1Bhc3N3b3JkQm9vbCJpbiBGLCJoYXMiKSxnZXQ6cyhGPT5GLnNob3dQYXNzd29yZEJvb2wsImdldCIpLHNldDpzKChGLFcpPT57Ri5zaG93UGFzc3dvcmRCb29sPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sbSx2KSxkYyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4idmFsaWRhdGlvblN0YXRlImluIEYsImhhcyIpLGdldDpzKEY9PkYudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6cygoRixXKT0+e0YudmFsaWRhdGlvblN0YXRlPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sYixnKSxkYyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJ2YWxpZGF0aW9uVGV4dCJpbiBGLCJoYXMiKSxnZXQ6cyhGPT5GLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6cygoRixXKT0+e0YudmFsaWRhdGlvblRleHQ9V30sInNldCIpfSxtZXRhZGF0YTpBfSxrLEMpLGRjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvbkZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJ2YWxpZGF0aW9uRnVuY3Rpb24iaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri52YWxpZGF0aW9uRnVuY3Rpb24sImdldCIpLHNldDpzKChGLFcpPT57Ri52YWxpZGF0aW9uRnVuY3Rpb249V30sInNldCIpfSxtZXRhZGF0YTpBfSxfLHopLGRjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmludGVncmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+InZpbnRlZ3JhdGVkImluIEYsImhhcyIpLGdldDpzKEY9PkYudmludGVncmF0ZWQsImdldCIpLHNldDpzKChGLFcpPT57Ri52aW50ZWdyYXRlZD1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LFQsUCksZGModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZENvbmZpcm1lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4idmFsaWRDb25maXJtZWQiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri52YWxpZENvbmZpcm1lZCwiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLnZhbGlkQ29uZmlybWVkPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sTSxTKSxkYyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpBfSxudWxsLHQpLEU9cj1lLnZhbHVlLEEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6QX0pfXN0YXRpYyBkZW1vPXdzYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9YWkodGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoQSl7dGhpcy4jZT1BfSN0PShhaSh0aGlzLGwpLGFpKHRoaXMsYywhMSkpO2dldCBpc1Bhc3N3b3JkQm9vbCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1Bhc3N3b3JkQm9vbChBKXt0aGlzLiN0PUF9I2E9KGFpKHRoaXMscCksYWkodGhpcyxtLCExKSk7Z2V0IHNob3dQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1Bhc3N3b3JkQm9vbChBKXt0aGlzLiNhPUF9I3I9KGFpKHRoaXMsdiksYWkodGhpcyxiLHZvaWQgMCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFsaWRhdGlvblN0YXRlKEEpe3RoaXMuI3I9QX0jcz0oYWkodGhpcyxnKSxhaSh0aGlzLGssIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jc31zZXQgdmFsaWRhdGlvblRleHQoQSl7dGhpcy4jcz1BfSNpPShhaSh0aGlzLEMpLGFpKHRoaXMsXyx2b2lkIDApKTtnZXQgdmFsaWRhdGlvbkZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbGlkYXRpb25GdW5jdGlvbihBKXt0aGlzLiNpPUF9I289KGFpKHRoaXMseiksYWkodGhpcyxULCExKSk7Z2V0IHZpbnRlZ3JhdGVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHZpbnRlZ3JhdGVkKEEpe3RoaXMuI289QX0jbj0oYWkodGhpcyxQKSxhaSh0aGlzLE0sITEpKTtnZXQgdmFsaWRDb25maXJtZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdmFsaWRDb25maXJtZWQoQSl7dGhpcy4jbj1BfXZhbGlkVGltZW91dD1haSh0aGlzLFMpO3N0YXRpYyBzdHlsZXM9W1BlLC4uLk10LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogYXV0bzsKICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogUGFzc3dvcmQgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuc2hvd1Bhc3N3b3JkIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDFweDsKICAgICAgICB0b3A6IDIwcHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzhweDsKICAgICAgICBoZWlnaHQ6IDM4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwOwogICAgICB9CgogICAgICAuc2hvd1Bhc3N3b3JkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgY2hlY2ttYXJrIGljb24gKi8KICAgICAgLnZhbGlkSWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMHB4OwogICAgICAgIHRvcDogMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkSWNvbi5zaG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudmFsaWRJY29uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIuaW52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIud2FybiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4xKSIsImhzbCgyNSA5NSUgNjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAvKiBFcnJvciBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJpbnZhbGlkIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMDUpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogV2FybmluZyBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0id2FybiJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ3YXJuIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMDUpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9InZhbGlkIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0idmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4wNSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmlzdWFsbHkgaW50ZWdyYXRlZCBtb2RlOiBzaGVkIGNocm9tZSB0byBibGVuZCBpbnRvIGEgaG9zdCBjb21wb25lbnQKICAgICAgICAgKGUuZy4gYSBkZWVzLXRhYmxlIGNlbGwgaW4gZWRpdCBtb2RlKS4gKi8KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgZGVlcy1sYWJlbCwKICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dCB7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNob3dQYXNzd29yZCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICBpbnB1dCB7CiAgICAgICAgICBmb250LWZhbWlseTogJHt0aGlzLmlzUGFzc3dvcmRCb29sP01mOiJpbmhlcml0In07CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyIwLjVweCI6Im5vcm1hbCJ9OwogICAgICAgICAgcGFkZGluZy1yaWdodDogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyI0OHB4Ijp0aGlzLnZhbGlkQ29uZmlybWVkPyI0MHB4IjoiMTJweCJ9OwogICAgICAgIH0KICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQmJiF0aGlzLnZhbGlkQ29uZmlybWVkP1hgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGA6WGAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9IiR7dGhpcy5pc1Bhc3N3b3JkQm9vbCYmIXRoaXMuc2hvd1Bhc3N3b3JkQm9vbD8icGFzc3dvcmQiOiJ0ZXh0In0iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLnVwZGF0ZVZhbHVlfSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9IiR7dGhpcy5sYWJlbD8iIjoiRW50ZXIgdGV4dC4uLiJ9IgogICAgICAgICAgLz4KICAgICAgICAgICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvd1Bhc3N3b3JkIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBhc3N3b3JkVmlld30+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLnNob3dQYXNzd29yZEJvb2w/Imx1Y2lkZTpFeWUiOiJsdWNpZGU6RXllT2ZmIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkSWNvbiAke3RoaXMudmFsaWRDb25maXJtZWQ/InNob3ciOiIifSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbkNvbnRhaW5lciAke3RoaXMudmFsaWRhdGlvblN0YXRlfHwiaW52YWxpZCJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0fQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIiPjwvZGl2PmB9CiAgICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uJiZ0aGlzLnZhbHVlKXtsZXQgQT10aGlzLnZhbGlkYXRpb25GdW5jdGlvbih0aGlzLnZhbHVlKTt0aGlzLnZhbGlkYXRpb25TdGF0ZT1BLnZhbGlkPyJ2YWxpZCI6ImludmFsaWQiLHRoaXMudmFsaWRhdGlvblRleHQ9QS5tZXNzYWdlfHwiIixBLnZhbGlkJiYodGhpcy52YWxpZENvbmZpcm1lZD0hMSx0aGlzLnZhbGlkVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy52YWxpZENvbmZpcm1lZD0hMCx0aGlzLnZhbGlkYXRpb25TdGF0ZT12b2lkIDB9LDUwMCkpfX1hc3luYyB1cGRhdGVWYWx1ZShBKXtsZXQgRj1BLnRhcmdldDtpZih0aGlzLnZhbHVlPUYudmFsdWUsdGhpcy52YWxpZGF0aW9uRnVuY3Rpb24pe2xldCBXPXRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uKHRoaXMudmFsdWUpO3RoaXMudmFsaWRhdGlvblN0YXRlPVcudmFsaWQ/InZhbGlkIjoiaW52YWxpZCIsdGhpcy52YWxpZGF0aW9uVGV4dD1XLm1lc3NhZ2V8fCIiLFcudmFsaWQ/KHRoaXMudmFsaWRDb25maXJtZWQ9ITEsY2xlYXJUaW1lb3V0KHRoaXMudmFsaWRUaW1lb3V0KSx0aGlzLnZhbGlkVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy52YWxpZENvbmZpcm1lZD0hMCx0aGlzLnZhbGlkYXRpb25TdGF0ZT12b2lkIDB9LDUwMCkpOihjbGVhclRpbWVvdXQodGhpcy52YWxpZFRpbWVvdXQpLHRoaXMudmFsaWRDb25maXJtZWQ9ITEpfXRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgQT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKSxGPUEuc2VsZWN0aW9uU3RhcnQhPT1BLnNlbGVjdGlvbkVuZDtyZXR1cm5be25hbWU6IkN1dCIsaWNvbk5hbWU6Imx1Y2lkZTpTY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixkaXNhYmxlZDohRixhY3Rpb246cyhhc3luYygpPT57bGV0IFc9dGhpcy52YWx1ZS5zdWJzdHJpbmcoQS5zZWxlY3Rpb25TdGFydCxBLnNlbGVjdGlvbkVuZCk7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoVyk7bGV0IGo9QS5zZWxlY3Rpb25TdGFydDt0aGlzLnZhbHVlPXRoaXMudmFsdWUuc3Vic3RyaW5nKDAsaikrdGhpcy52YWx1ZS5zdWJzdHJpbmcoQS5zZWxlY3Rpb25FbmQpLEEudmFsdWU9dGhpcy52YWx1ZSxBLnNldFNlbGVjdGlvblJhbmdlKGosaiksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsc2hvcnRjdXQ6IkNtZCtDIixkaXNhYmxlZDohRixhY3Rpb246cyhhc3luYygpPT57bGV0IFc9dGhpcy52YWx1ZS5zdWJzdHJpbmcoQS5zZWxlY3Rpb25TdGFydCxBLnNlbGVjdGlvbkVuZCk7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoVyl9LCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixpY29uTmFtZToibHVjaWRlOkNsaXBib2FyZFBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGFjdGlvbjpzKGFzeW5jKCk9PntsZXQgVz1hd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWRUZXh0KCksaj1BLnNlbGVjdGlvblN0YXJ0LEc9QS5zZWxlY3Rpb25FbmQ7dGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLGopK1crdGhpcy52YWx1ZS5zdWJzdHJpbmcoRyksQS52YWx1ZT10aGlzLnZhbHVlLEEuc2V0U2VsZWN0aW9uUmFuZ2UoaitXLmxlbmd0aCxqK1cubGVuZ3RoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNlbGVjdCBBbGwiLGljb25OYW1lOiJsdWNpZGU6VGV4dEN1cnNvcklucHV0IixzaG9ydGN1dDoiQ21kK0EiLGFjdGlvbjpzKGFzeW5jKCk9PntBLnNlbGVjdCgpfSwiYWN0aW9uIil9XX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEEpe3RoaXMudmFsdWU9QX1hc3luYyB0b2dnbGVQYXNzd29yZFZpZXcoKXt0aGlzLnNob3dQYXNzd29yZEJvb2w9IXRoaXMuc2hvd1Bhc3N3b3JkQm9vbH1hc3luYyBmb2N1cygpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9YXN5bmMgYmx1cigpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmJsdXIoKX1zdGF0aWN7YWkocix0KX19O3JldHVybiBFPXJ9KSgpfSk7dmFyIGtzYSxTc2E9ZigoKT0+e2xlKCk7TmEoKTtZcygpO2tzYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1hgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9kdWN0LWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0ZWQtcHJvZHVjdHMgewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiU2ltcGxlIHByb2R1Y3QgZGlzcGxheSB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IldpcmVsZXNzIEJsdWV0b290aCBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJQcmVtaXVtIHNvdW5kIHF1YWxpdHkgd2l0aCBhY3RpdmUgbm9pc2UgY2FuY2VsbGF0aW9uIixwcmljZToxNDkuOTksb3JpZ2luYWxQcmljZToxOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTbWFydCBXYXRjaCBTZXJpZXMgNyIsY2F0ZWdvcnk6IldlYXJhYmxlcyIsZGVzY3JpcHRpb246IlRyYWNrIHlvdXIgZml0bmVzcyBhbmQgc3RheSBjb25uZWN0ZWQgb24gdGhlIGdvIixwcmljZTozOTksaWNvbk5hbWU6Imx1Y2lkZTp3YXRjaCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiVVNCLUMgSHViIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLHByaWNlOjQ5Ljk5LGljb25OYW1lOiJsdWNpZGU6dXNiIixpblN0b2NrOiExfX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7IlByb2R1Y3QgY2FyZHMgd2l0aCBkeW5hbWljIGNhcnQgY2FsY3VsYXRpb24ifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9W3tpZDoibGFwdG9wIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0se2lkOiJpcGFkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0se2lkOiJrZXlib2FyZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fV0sdD1zKCgpPT57bGV0IHI9MCxpPVtdO2UuZm9yRWFjaChuPT57bGV0IGw9YS5xdWVyeVNlbGVjdG9yKGAjJHtuLmlkfWApO2lmKGwmJmwucXVhbnRpdHk+MCl7bGV0IGQ9bi5kYXRhLnByaWNlKmwucXVhbnRpdHk7cis9ZCxpLnB1c2goYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JHtuLmRhdGEubmFtZX0gKCR7bC5xdWFudGl0eX0pPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj4kJHtkLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9fSk7bGV0IG89YS5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Iik7byYmKG8uaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke2kuam9pbigiIil9CiAgICAgICAgICAgICAgJHtpLmxlbmd0aD09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtyLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0sInVwZGF0ZUNhcnRTdW1tYXJ5Iik7c2V0VGltZW91dCh0LDEwMCksYS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIsdCl9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibGFwdG9wIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImlwYWQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+U2hvcHBpbmcgQ2FydDwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiPgogICAgICAgICAgICA8IS0tIER5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNlbGVjdGFibGUgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJDbGljayBjYXJkcyBvciBjaGVja2JveGVzIHRvIHNlbGVjdCBwcm9kdWN0cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBBbHBoYSA3IElWIixjYXRlZ29yeToiQ2FtZXJhcyIsZGVzY3JpcHRpb246IkZ1bGwtZnJhbWUgbWlycm9ybGVzcyBjYW1lcmEiLHByaWNlOjI0OTgsaWNvbk5hbWU6Imx1Y2lkZTpjYW1lcmEifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHthPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIikscj1bXTt0LmZvckVhY2goaT0+e2kuc2VsZWN0ZWQmJnIucHVzaChpLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1yLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtyLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJESkkgTWluaSAzIFBybyIsY2F0ZWdvcnk6IkRyb25lcyIsZGVzY3JpcHRpb246IkxpZ2h0d2VpZ2h0IGRyb25lIHdpdGggNEsgY2FtZXJhIixwcmljZTo3NTksaWNvbk5hbWU6Imx1Y2lkZTpwbGFuZSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke2E9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxyPVtdO3QuZm9yRWFjaChpPT57aS5zZWxlY3RlZCYmci5wdXNoKGkucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PXIubGVuZ3RoPjA/YFNlbGVjdGVkOiAke3Iuam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkdvUHJvIEhFUk8xMiIsY2F0ZWdvcnk6IkFjdGlvbiBDYW1lcmFzIixkZXNjcmlwdGlvbjoiNS4zSyB2aWRlbyB3aXRoIEh5cGVyU21vb3RoIDYuMCIscHJpY2U6Mzk5LG9yaWdpbmFsUHJpY2U6NDQ5LGljb25OYW1lOiJsdWNpZGU6dmlkZW8ifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHthPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIikscj1bXTt0LmZvckVhY2goaT0+e2kuc2VsZWN0ZWQmJnIucHVzaChpLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1yLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtyLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGVkLXByb2R1Y3RzIiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIE5vIHByb2R1Y3RzIHNlbGVjdGVkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9kdWN0IFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxpbWl0ZWQgRWRpdGlvbiBTbmVha2VycyIsY2F0ZWdvcnk6IkZvb3R3ZWFyIixkZXNjcmlwdGlvbjoiRXhjbHVzaXZlIGNvbG9yd2F5IC0gT25seSA1MDAgcGFpcnMiLHByaWNlOjI5OSxpY29uTmFtZToibHVjaWRlOmZvb3RwcmludHMiLGluU3RvY2s6ITEsc3RvY2tUZXh0OiJTb2xkIE91dCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWluaW1hbGlzdCBXYWxsZXQiLHByaWNlOjM5Ljk5LGljb25OYW1lOiJsdWNpZGU6d2FsbGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJQcmVtaXVtIENvZmZlZSBCZWFucyIsY2F0ZWdvcnk6IkZvb2QgJiBCZXZlcmFnZSIsZGVzY3JpcHRpb246IlNpbmdsZSBvcmlnaW4sIG1lZGl1bSByb2FzdCIscHJpY2U6MTguNSxpY29uTmFtZToibHVjaWRlOmNvZmZlZSIsY3VycmVuY3k6Ilx1MjBBQyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIHNtLEQxLHpzYSxBWWU9ZigoKT0+e2xlKCk7U3NhKCk7UWUoKTtRcigpO3NtPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxEMT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0senNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6T2JqZWN0fSldLGQ9WyQoe3R5cGU6TnVtYmVyfSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOkJvb2xlYW59KV0seT1bJCh7dHlwZTpCb29sZWFufSldLHNtKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InByb2R1Y3REYXRhImluIHosImhhcyIpLGdldDpzKHo9PnoucHJvZHVjdERhdGEsImdldCIpLHNldDpzKCh6LE8pPT57ei5wcm9kdWN0RGF0YT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG4sbCksc20odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4icXVhbnRpdHkiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5xdWFudGl0eSwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnF1YW50aXR5PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYyxwKSxzbSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzaG93UXVhbnRpdHlTZWxlY3RvciJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNob3dRdWFudGl0eVNlbGVjdG9yLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouc2hvd1F1YW50aXR5U2VsZWN0b3I9T30sInNldCIpfSxtZXRhZGF0YTpffSxtLHYpLHNtKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4ic2VsZWN0YWJsZSJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNlbGVjdGFibGUsImdldCIpLHNldDpzKCh6LE8pPT57ei5zZWxlY3RhYmxlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxzbSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzZWxlY3RlZCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNlbGVjdGVkLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouc2VsZWN0ZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLEMpLHNtKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsdCksTj1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89a3NhO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9RDEodGhpcyxuLHtuYW1lOiJQcm9kdWN0IE5hbWUiLHByaWNlOjB9KTtnZXQgcHJvZHVjdERhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZHVjdERhdGEoXyl7dGhpcy4jZT1ffSN0PShEMSh0aGlzLGwpLEQxKHRoaXMsYywwKSk7Z2V0IHF1YW50aXR5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHF1YW50aXR5KF8pe3RoaXMuI3Q9X30jYT0oRDEodGhpcyxwKSxEMSh0aGlzLG0sITApKTtnZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoXyl7dGhpcy4jYT1ffSNyPShEMSh0aGlzLHYpLEQxKHRoaXMsYiwhMSkpO2dldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGFibGUoXyl7dGhpcy4jcj1ffSNzPShEMSh0aGlzLGcpLEQxKHRoaXMsaywhMSkpO2dldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RlZChfKXt0aGlzLiNzPV99c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGFibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGVkOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWhlYWRlci1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucHJvZHVjdC1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJvZHVjdC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucHJvZHVjdC1wcmljZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucHJpY2UtY3VycmVudCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnByaWNlLW9yaWdpbmFsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5vdXQtb2Ytc3RvY2sgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXR7bmFtZTpfLGNhdGVnb3J5OnosZGVzY3JpcHRpb246TyxwcmljZTpULG9yaWdpbmFsUHJpY2U6UCxjdXJyZW5jeTpCPSIkIixpblN0b2NrOk09ITAsc3RvY2tUZXh0OlM9TT8iSW4gU3RvY2siOiJPdXQgb2YgU3RvY2siLGltYWdlVXJsOkUsaWNvbk5hbWU6QT0ibHVjaWRlOnBhY2thZ2UifT10aGlzLnByb2R1Y3REYXRhLEY9cyhXPT5gJHtCfSR7Vy50b0ZpeGVkKDIpfWAsImZvcm1hdFByaWNlIik7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUKICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGFibGU/InNlbGVjdGFibGUiOiIifSAke3RoaXMuc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDYXJkQ2xpY2t9CiAgICAgID4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InByb2R1Y3QtaGVhZGVyLWJhciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1uYW1lIj4ke199PC9zcGFuPgogICAgICAgICAgJHt6P3dgPHNwYW4gY2xhc3M9InByb2R1Y3QtY2F0ZWdvcnkiPiR7en08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1pbWFnZSI+CiAgICAgICAgICAgICR7RT93YAogICAgICAgICAgICAgIDxpbWcgc3JjPSIke0V9IiBhbHQ9IiR7X30iPgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke0F9PjwvZGVlcy1pY29uPgogICAgICAgICAgICBgfQogICAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZT93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJzZWxlY3Rpb24tY2hlY2tib3ggJHt0aGlzLnNlbGVjdGVkPyJjaGVja2VkIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHtXPT57Vy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnQiPgogICAgICAgICAgICAke08/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj4ke099PC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0b2NrLXN0YXR1cyAke00/ImluLXN0b2NrIjoib3V0LW9mLXN0b2NrIn0iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtNPyJsdWNpZGU6Y2hlY2stY2lyY2xlIjoibHVjaWRlOngtY2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgJHtTfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0icHJvZHVjdC1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1wcmljZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1jdXJyZW50Ij4ke0YoVCl9PC9zcGFuPgogICAgICAgICAgICAke1AmJlA+VD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1vcmlnaW5hbCI+JHtGKFApfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yP3dgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnF1YW50aXR5fQogICAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7Vz0+e3RoaXMucXVhbnRpdHk9Vy5kZXRhaWwuZ2V0VmFsdWUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJxdWFudGl0eUNoYW5nZSIse2RldGFpbDp7cXVhbnRpdHk6dGhpcy5xdWFudGl0eSxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWhhbmRsZUNhcmRDbGljaygpe3RoaXMuc2VsZWN0YWJsZSYmKHRoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpe3RoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEQxKHRoaXMsQyl9c3RhdGlje0QxKHIsdCl9fTtyZXR1cm4gTj1yfSkoKX0pO3ZhciBDc2EsX3NhPWYoKCk9PntsZSgpO0FZZSgpO0NzYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1hgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaG9wcGluZy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnktdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXRvdGFsIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFF1YW50aXR5IFNlbGVjdG9yIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBxdWFudGl0eSBpbnB1dCB3aXRoIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgdGhlIGRlc2lyZWQgcXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWluaW11bSBvcmRlciBxdWFudGl0eSBpcyAxIGl0ZW0ifQogICAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgLmxhYmVsPSR7Ikl0ZW1zIGluIENhcnQifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRqdXN0IHRoZSBxdWFudGl0eSBvZiBpdGVtcyJ9CiAgICAgICAgICAgIC52YWx1ZT0kezN9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7Ik1vZGVybiBlLWNvbW1lcmNlIHByb2R1Y3QgY2FyZHMgd2l0aCBpbnRlcmFjdGl2ZSBxdWFudGl0eSBzZWxlY3RvcnMifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9cygoKT0+e2xldCB0PWEucXVlcnlTZWxlY3RvcigiI2hlYWRwaG9uZXMtcXR5Iikscj1hLnF1ZXJ5U2VsZWN0b3IoIiNtb3VzZS1xdHkiKSxpPWEucXVlcnlTZWxlY3RvcigiI2tleWJvYXJkLXF0eSIpLG89dD8ucXVhbnRpdHl8fDAsbj1yPy5xdWFudGl0eXx8MCxsPWk/LnF1YW50aXR5fHwwLGQ9MzQ5Ljk5Km8sYz05OS45OSpuLHA9NzkuOTkqbCx1PWQrYytwLG09YS5xdWVyeVNlbGVjdG9yKCIjY2FydC1zdW1tYXJ5LWNvbnRlbnQiKTttJiYobS5pbm5lckhUTUw9YAogICAgICAgICAgICAgICR7bz4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+U29ueSBXSC0xMDAwWE01ICgke299KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2QudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke24+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyAoJHtufSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtjLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtsPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5LZXljaHJvbiBLMiAoJHtsfSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtwLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHt1PT09MD8nPGRpdiBjbGFzcz0iY2FydC1pdGVtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTsiPllvdXIgY2FydCBpcyBlbXB0eTwvZGl2Pic6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke3UudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfSwidXBkYXRlQ2FydFN1bW1hcnkiKTtzZXRUaW1lb3V0KGUsMTAwKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKS5mb3JFYWNoKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoInF1YW50aXR5Q2hhbmdlIixlKX0pfX0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcHBpbmctZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0iaGVhZHBob25lcy1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTb255IFdILTEwMDBYTTUgV2lyZWxlc3MgSGVhZHBob25lcyIsY2F0ZWdvcnk6IkF1ZGlvIixkZXNjcmlwdGlvbjoiSW5kdXN0cnktbGVhZGluZyBub2lzZSBjYW5jZWxpbmcgd2l0aCBBdXRvIE5DIE9wdGltaXplciIscHJpY2U6MzQ5Ljk5LG9yaWdpbmFsUHJpY2U6Mzk5Ljk5LGljb25OYW1lOiJsdWNpZGU6aGVhZHBob25lcyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9Im1vdXNlLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiUGVyZm9ybWFuY2Ugd2lyZWxlc3MgbW91c2Ugd2l0aCB1bHRyYS1mYXN0IHNjcm9sbGluZyIscHJpY2U6OTkuOTksaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiS2V5Y2hyb24gSzIgV2lyZWxlc3MgTWVjaGFuaWNhbCBLZXlib2FyZCIsY2F0ZWdvcnk6IktleWJvYXJkcyIsZGVzY3JpcHRpb246IkNvbXBhY3QgNzUlIGxheW91dCB3aXRoIGhvdC1zd2FwcGFibGUgc3dpdGNoZXMiLHByaWNlOjc5Ljk5LG9yaWdpbmFsUHJpY2U6OTQuOTksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgIDxoMyBjbGFzcz0iY2FydC1zdW1tYXJ5LXRpdGxlIj5PcmRlciBTdW1tYXJ5PC9oMz4KICAgICAgICAgIDxkaXYgaWQ9ImNhcnQtc3VtbWFyeS1jb250ZW50Ij4KICAgICAgICAgICAgPCEtLSBDb250ZW50IHdpbGwgYmUgZHluYW1pY2FsbHkgdXBkYXRlZCAtLT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUmVxdWlyZWQgJiBEaXNhYmxlZCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBmb3IgdmFsaWRhdGlvbiBhbmQgcmVzdHJpY3Rpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgLmxhYmVsPSR7Ik51bWJlciBvZiBMaWNlbnNlcyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTZWxlY3QgaG93IG1hbnkgbGljZW5zZXMgeW91IG5lZWQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJGaXhlZCBRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGlzIHF1YW50aXR5IGNhbm5vdCBiZSBjaGFuZ2VkIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezV9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJPcmRlciBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIG9yZGVyIGZvcm0gd2l0aCBxdWFudGl0eSBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ3VzdG9tZXIgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIFBsYW4iLCJQcm8gUGxhbiIsIkVudGVycHJpc2UgUGxhbiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFudGl0eSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJOdW1iZXIgb2YgbGljZW5zZXMifQogICAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiU3BlY2lhbCBJbnN0cnVjdGlvbnMifQogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIFRzYSxQWWUscmFlLEVZZT1mKCgpPT57bGUoKTtlYSgpO1NyKCk7X3NhKCk7UWUoKTtUc2E9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LFBZZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0scmFlPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yIildLGUsdD1bXSxyLGk9TXQsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNJbnB1dFF1YW50aXR5U2VsZWN0b3IiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk51bWJlcn0pXSxUc2EodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4idmFsdWUiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC52YWx1ZSwiZ2V0Iiksc2V0OnMoKHAsdSk9PntwLnZhbHVlPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxUc2EobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1Dc2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVBZZSh0aGlzLG4sMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtQZSwuLi5NdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IgewogICAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RvcjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IucGx1cyB7CiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHkgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIH0KCiAgICAgICAgLyogS2V5Ym9hcmQgbmF2aWdhdGlvbiBmb2N1cyBzdHlsZXMgKi8KICAgICAgICAuc2VsZWN0b3I6Zm9jdXMgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAvKiBNaW4gdmFsdWUgc3RhdGUgKi8KICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InF1YW50aXR5LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICBkYXRhLW1pbj0iJHt0aGlzLnZhbHVlPD0wfSIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2VsZWN0b3IgbWludXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmRlY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2M9PnsoYy5rZXk9PT0iRW50ZXIifHxjLmtleT09PSIgIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5kZWNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkRlY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPuKIkjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icXVhbnRpdHkiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWF0b21pYz0idHJ1ZSI+JHt0aGlzLnZhbHVlfTwvZGl2PgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIHBsdXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmluY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2M9PnsoYy5rZXk9PT0iRW50ZXIifHxjLmtleT09PSIgIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkluY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPis8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWluY3JlYXNlKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWUrKyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9ZGVjcmVhc2UoKXshdGhpcy5kaXNhYmxlZCYmdGhpcy52YWx1ZT4wJiYodGhpcy52YWx1ZS0tLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGMpe3RoaXMudmFsdWU9Y31jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUFllKHRoaXMsbCl9c3RhdGlje1BZZShyLHQpfX07cmV0dXJuIGQ9cn0pKCl9KTt2YXIgTHNhLCRzYT1mKCgpPT57bGUoKTtOYSgpO1lzKCk7THNhPXMoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7WGAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpcHRpb24gUGxhbiJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIC0gJDkvbW9udGgiLCJQcm8gLSAkMjkvbW9udGgiLCJFbnRlcnByaXNlIC0gJDk5L21vbnRoIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB5b3VyIHN1YnNjcmlwdGlvbiB0aWVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTWVkaXVtIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJSYWRpbyBncm91cHMgd2l0aCBob3Jpem9udGFsIGFycmFuZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcz8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWWVzIiwiTm8iLCJNYXliZSJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiWWVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJlZ2lubmVyIiwiSW50ZXJtZWRpYXRlIiwiRXhwZXJ0Il19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHlvdXIgZXhwZXJpZW5jZSBsZXZlbCB3aXRoIHdlYiBkZXZlbG9wbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBBZHZhbmNlZCBPcHRpb25zIn0gLnN1YnRpdGxlPSR7IlVzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2FkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIGlkPSJhZHZhbmNlZC1yYWRpbyIKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUmVnaW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMgKFVTIEVhc3QpIixrZXk6InVzLWVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoidXMtZWFzdC0xIixsYXRlbmN5OjIwfX0se29wdGlvbjoiRXVyb3BlIChGcmFua2Z1cnQpIixrZXk6ImV1LWNlbnRyYWwiLHBheWxvYWQ6e3JlZ2lvbjoiZXUtY2VudHJhbC0xIixsYXRlbmN5OjUwfX0se29wdGlvbjoiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpIixrZXk6ImFwLXNvdXRoZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJhcC1zb3V0aGVhc3QtMSIsbGF0ZW5jeToxMjB9fV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZXUtY2VudHJhbCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIHRoZSBjbG9zZXN0IHJlZ2lvbiBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSJ9CiAgICAgICAgICBAY2hhbmdlPSR7YT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWdpb24tcmVzdWx0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlNlbGVjdGVkOiAiK0pTT04uc3RyaW5naWZ5KGEuZGV0YWlsLnZhbHVlLG51bGwsMikpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPGRpdiBpZD0icmVnaW9uLXJlc3VsdCIgY2xhc3M9InJlc3VsdC1kaXNwbGF5Ij5TZWxlY3RlZDogeyAicmVnaW9uIjogImV1LWNlbnRyYWwtMSIsICJsYXRlbmN5IjogNTAgfTwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3VydmV5IEV4YW1wbGUifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJWZXJ5IFNhdGlzZmllZCIsIlNhdGlzZmllZCIsIk5ldXRyYWwiLCJEaXNzYXRpc2ZpZWQiLCJWZXJ5IERpc3NhdGlzZmllZCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJTYXRpc2ZpZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGVmaW5pdGVseSIsIlByb2JhYmx5IiwiTm90IFN1cmUiLCJQcm9iYWJseSBOb3QiLCJEZWZpbml0ZWx5IE5vdCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm9iYWJseSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gU3RhdGVzICYgVmFsaWRhdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCB2YWxpZGF0aW9uIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgU2VsZWN0aW9uIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGlzYWJsZWQgT3B0aW9uIDEiLCJEaXNhYmxlZCBPcHRpb24gMiIsIkRpc2FibGVkIE9wdGlvbiAzIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRpc2FibGVkIE9wdGlvbiAyIn0KICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBQcmVmZXJlbmNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQgVGhlbWUiLGtleToibGlnaHQiLHBheWxvYWQ6ImxpZ2h0In0se29wdGlvbjoiRGFyayBUaGVtZSIsa2V5OiJkYXJrIixwYXlsb2FkOiJkYXJrIn0se29wdGlvbjoiU3lzdGVtIERlZmF1bHQiLGtleToic3lzdGVtIixwYXlsb2FkOiJhdXRvIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZGFyayJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYXBwZWFyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb24gRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkFsbCBOb3RpZmljYXRpb25zIiwiSW1wb3J0YW50IE9ubHkiLCJOb25lIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbXBvcnRhbnQgT25seSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDb250cm9sIGhvdyBvZnRlbiB5b3UgcmVjZWl2ZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCIsIkphcGFuZXNlIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiV29ya3Mgc2VhbWxlc3NseSB3aXRoIGRlZXMtZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IE5hbWUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJwcm9kdWN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgQ2F0ZWdvcnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRWxlY3Ryb25pY3MiLCJDbG90aGluZyIsIkJvb2tzIiwiSG9tZSAmIEdhcmRlbiIsIlNwb3J0cyJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJjYXRlZ29yeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJOZXciLCJMaWtlIE5ldyIsIkdvb2QiLCJGYWlyIiwiUG9vciJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJOZXcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJTaGlwcGluZyBTcGVlZCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlN0YW5kYXJkICg1LTcgZGF5cykiLGtleToic3RhbmRhcmQiLHBheWxvYWQ6e2RheXM6NyxwcmljZTowfX0se29wdGlvbjoiRXhwcmVzcyAoMi0zIGRheXMpIixrZXk6ImV4cHJlc3MiLHBheWxvYWQ6e2RheXM6MyxwcmljZToxMH19LHtvcHRpb246Ik92ZXJuaWdodCIsa2V5OiJvdmVybmlnaHQiLHBheWxvYWQ6e2RheXM6MSxwcmljZToyNX19XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InN0YW5kYXJkIn0KICAgICAgICAgICAgLmtleT0keyJzaGlwcGluZyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBQcm9kdWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgRFUsdWMsc2FlLGlhZT1mKCgpPT57bGUoKTtTcigpOyRzYSgpO1FlKCk7RFU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHVjPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxzYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LXJhZGlvZ3JvdXAiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0UmFkaW9ncm91cCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bJCgpXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVskKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLERVKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4ib3B0aW9ucyJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLm9wdGlvbnMsImdldCIpLHNldDpzKChDLE4pPT57Qy5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbixsKSxEVSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJzZWxlY3RlZE9wdGlvbiJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0Muc2VsZWN0ZWRPcHRpb249Tn0sInNldCIpfSxtZXRhZGF0YTprfSxjLHApLERVKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJkaXJlY3Rpb24iaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5kaXJlY3Rpb24sImdldCIpLHNldDpzKChDLE4pPT57Qy5kaXJlY3Rpb249Tn0sInNldCIpfSxtZXRhZGF0YTprfSxtLHYpLERVKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy52YWxpZGF0aW9uU3RhdGUsImdldCIpLHNldDpzKChDLE4pPT57Qy52YWxpZGF0aW9uU3RhdGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLERVKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCkseT1yPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89THNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT11Yyh0aGlzLG4sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoayl7dGhpcy4jZT1rfSN0PSh1Yyh0aGlzLGwpLHVjKHRoaXMsYywiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZE9wdGlvbihrKXt0aGlzLiN0PWt9I2E9KHVjKHRoaXMscCksdWModGhpcyxtLCJ2ZXJ0aWNhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpcmVjdGlvbihrKXt0aGlzLiNhPWt9I3I9KHVjKHRoaXMsdiksdWModGhpcyxiLG51bGwpKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbGlkYXRpb25TdGF0ZShrKXt0aGlzLiNyPWt9Z2V0IHZhbHVlKCl7bGV0IGs9dGhpcy5nZXRPcHRpb25CeUtleSh0aGlzLnNlbGVjdGVkT3B0aW9uKTtyZXR1cm4gdHlwZW9mIGs9PSJvYmplY3QiJiZrLnBheWxvYWQhPT12b2lkIDA/ay5wYXlsb2FkOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKGspe2lmKHR5cGVvZiBrPT0ic3RyaW5nIil0aGlzLnNlbGVjdGVkT3B0aW9uPWs7ZWxzZXtsZXQgQz10aGlzLm9wdGlvbnMuZmluZChOPT50eXBlb2YgTj09Im9iamVjdCImJk4ucGF5bG9hZD09PWspO0MmJnR5cGVvZiBDPT0ib2JqZWN0IiYmKHRoaXMuc2VsZWN0ZWRPcHRpb249Qy5rZXkpfX1zdGF0aWMgc3R5bGVzPVtQZSwuLi5NdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmhvcml6b250YWwgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDIwcHggNnB4IDA7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tY2lyY2xlIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZTo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGU6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgMy45JSkiKX0sCiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNHB4ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICB9CgogICAgICAubGFiZWwtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdKSAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0idmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9Indhcm4iXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogT3ZlcnJpZGUgYmFzZSBncmlkIGxheW91dCBmb3IgcmFkaW9ncm91cCB0byBwcmV2ZW50IGxhcmdlIGdhcHMgKi8KICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJsYWJlbC10ZXh0Ij4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcChrPT57bGV0IEM9dGhpcy5nZXRPcHRpb25LZXkoayksTj10aGlzLmdldE9wdGlvbkxhYmVsKGspLF89dGhpcy5zZWxlY3RlZE9wdGlvbj09PUM7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1vcHRpb24gJHtfPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdE9wdGlvbihDKX0iCiAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt6PT50aGlzLmhhbmRsZUtleWRvd24oeixDKX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9InJhZGlvLWNpcmNsZSIgCiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICAgICAgICByb2xlPSJyYWRpbyIKICAgICAgICAgICAgICAgICAgYXJpYS1jaGVja2VkPSIke199IgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSIke059IgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaW8tbGFiZWwiPiR7Tn08L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0T3B0aW9uS2V5KGspe3JldHVybiB0eXBlb2Ygaz09InN0cmluZyI/azprLmtleX1nZXRPcHRpb25MYWJlbChrKXtyZXR1cm4gdHlwZW9mIGs9PSJzdHJpbmciP2s6ay5vcHRpb259Z2V0T3B0aW9uQnlLZXkoayl7cmV0dXJuIHRoaXMub3B0aW9ucy5maW5kKEM9PnRoaXMuZ2V0T3B0aW9uS2V5KEMpPT09ayl9c2VsZWN0T3B0aW9uKGspe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBDPXRoaXMuc2VsZWN0ZWRPcHRpb247dGhpcy5zZWxlY3RlZE9wdGlvbj1rLEMhPT1rJiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGspe3RoaXMudmFsdWU9a31hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYhdGhpcy5zZWxlY3RlZE9wdGlvbj8odGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExKToodGhpcy52YWxpZGF0aW9uU3RhdGU9InZhbGlkIiwhMCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoIXRoaXMuc2VsZWN0ZWRPcHRpb24mJnRoaXMub3B0aW9ucy5sZW5ndGg+MCYmIXRoaXMucmVxdWlyZWQpe2xldCBrPXRoaXMub3B0aW9uc1swXTt0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuZ2V0T3B0aW9uS2V5KGspfX1oYW5kbGVLZXlkb3duKGssQyl7dGhpcy5kaXNhYmxlZHx8KGsua2V5PT09IiAifHxrLmtleT09PSJFbnRlciI/KGsucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbGVjdE9wdGlvbihDKSk6ay5rZXk9PT0iQXJyb3dEb3duInx8ay5rZXk9PT0iQXJyb3dSaWdodCI/KGsucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE9wdGlvbigpKTooay5rZXk9PT0iQXJyb3dVcCJ8fGsua2V5PT09IkFycm93TGVmdCIpJiYoay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNQcmV2aW91c09wdGlvbigpKSl9Zm9jdXNOZXh0T3B0aW9uKCl7bGV0IGs9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSxOPShrLmZpbmRJbmRleChfPT5fPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpKzEpJWsubGVuZ3RoO2tbTl0uZm9jdXMoKX1mb2N1c1ByZXZpb3VzT3B0aW9uKCl7bGV0IGs9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSxDPWsuZmluZEluZGV4KF89Pl89PT10aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCksTj1DPD0wP2subGVuZ3RoLTE6Qy0xO2tbTl0uZm9jdXMoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdWModGhpcyxnKX1zdGF0aWN7dWMocix0KX19O3JldHVybiB5PXJ9KSgpfSk7dmFyIERzYSxBc2E9ZigoKT0+e2xlKCk7RHNhPXMoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAyNHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gaDMgewogICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogIzg4ODsKICAgIH0KICAgIC5kZW1vLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTJweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJhc2ljIFVzYWdlPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHRleHQ9IldpdGggVGV4dCBQcm9wZXJ0eSI+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5XaXRoIEljb25zIChpbmhlcml0ZWQgZnJvbSBEZWVzQnV0dG9uKTwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6c2VuZCI+U3VibWl0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzYXZlIiBpY29uUG9zaXRpb249ImxlZnQiPlNhdmUgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBpY29uPSJsdWNpZGU6YXJyb3ctcmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiPkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CdXR0b24gVHlwZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0iaGlnaGxpZ2h0ZWQiIGljb249Imx1Y2lkZTpzZW5kIj5IaWdobGlnaHRlZDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdHlwZT0iZGlzY3JlZXQiIGljb249Imx1Y2lkZTpzZW5kIj5EaXNjcmVldDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ic21hbGwiIGljb249Imx1Y2lkZTpzZW5kIj5TbWFsbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc2l6ZT0ibGFyZ2UiIGljb249Imx1Y2lkZTpzZW5kIj5MYXJnZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U3RhdGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0ibm9ybWFsIiBpY29uPSJsdWNpZGU6c2VuZCI+Tm9ybWFsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHN0YXR1cz0icGVuZGluZyIgaWNvbj0ibHVjaWRlOnNlbmQiPlBlbmRpbmc8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJzdWNjZXNzIiBpY29uPSJsdWNpZGU6Y2hlY2siPlN1Y2Nlc3M8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJlcnJvciIgaWNvbj0ibHVjaWRlOngiPkVycm9yPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGRpc2FibGVkIGljb249Imx1Y2lkZTpzZW5kIj5EaXNhYmxlZDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW4gYSBGb3JtIENvbnRleHQ8L2gzPgogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iRW1haWwiIGtleT0iZW1haWwiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIiB0eXBlPSJoaWdobGlnaHRlZCI+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgbDQsWWksb2FlLFRmPWYoKCk9PntBc2EoKTtsZSgpO1FlKCk7bDQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LFlpPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxvYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWZvcm0tc3VibWl0IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNGb3JtU3VibWl0Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx5PVskKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLE49WyQoe3R5cGU6U3RyaW5nfSldLE89WyQoe3R5cGU6U3RyaW5nfSldLGw0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImRpc2FibGVkImluIFMsImhhcyIpLGdldDpzKFM9PlMuZGlzYWJsZWQsImdldCIpLHNldDpzKChTLEUpPT57Uy5kaXNhYmxlZD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG4sbCksbDQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJ0ZXh0ImluIFMsImhhcyIpLGdldDpzKFM9PlMudGV4dCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnRleHQ9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxjLHApLGw0KHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJzdGF0dXMiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5zdGF0dXMsImdldCIpLHNldDpzKChTLEUpPT57Uy5zdGF0dXM9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxtLHYpLGw0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4idHlwZSJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnR5cGUsImdldCIpLHNldDpzKChTLEUpPT57Uy50eXBlPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSxsNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InNpemUiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5zaXplLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1Muc2l6ZT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGssQyksbDQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJpY29uImluIFMsImhhcyIpLGdldDpzKFM9PlMuaWNvbiwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmljb249RX0sInNldCIpfSxtZXRhZGF0YTpNfSxfLHopLGw0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJpY29uUG9zaXRpb24iaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5pY29uUG9zaXRpb24sImdldCIpLHNldDpzKChTLEUpPT57Uy5pY29uUG9zaXRpb249RX0sInNldCIpfSxtZXRhZGF0YTpNfSxULFApLGw0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCksQj1yPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89RHNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSIsIkJ1dHRvbiJdOyNlPVlpKHRoaXMsbiwhMSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRpc2FibGVkKE0pe3RoaXMuI2U9TX0jdD0oWWkodGhpcyxsKSxZaSh0aGlzLGMsdm9pZCAwKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChNKXt0aGlzLiN0PU19I2E9KFlpKHRoaXMscCksWWkodGhpcyxtLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXMoTSl7dGhpcy4jYT1NfSNyPShZaSh0aGlzLHYpLFlpKHRoaXMsYiwiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNyfXNldCB0eXBlKE0pe3RoaXMuI3I9TX0jcz0oWWkodGhpcyxnKSxZaSh0aGlzLGssImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2l6ZShNKXt0aGlzLiNzPU19I2k9KFlpKHRoaXMsQyksWWkodGhpcyxfLHZvaWQgMCkpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGljb24oTSl7dGhpcy4jaT1NfSNvPShZaSh0aGlzLHopLFlpKHRoaXMsVCwibGVmdCIpKTtnZXQgaWNvblBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI299c2V0IGljb25Qb3NpdGlvbihNKXt0aGlzLiNvPU19Y29uc3RydWN0b3IoKXtzdXBlcigpLFlpKHRoaXMsUCl9c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgZGVlcy1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgLnN0YXR1cz0ke3RoaXMuc3RhdHVzfQogICAgICAgIC50eXBlPSR7dGhpcy50eXBlfQogICAgICAgIC5zaXplPSR7dGhpcy5zaXplfQogICAgICAgIC5pY29uPSR7dGhpcy5pY29ufQogICAgICAgIC5pY29uUG9zaXRpb249JHt0aGlzLmljb25Qb3NpdGlvbn0KICAgICAgICAudGV4dD0ke3RoaXMudGV4dH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgIEBjbGlja2VkPSR7dGhpcy5zdWJtaXR9CiAgICAgID48L2RlZXMtYnV0dG9uPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZighdGhpcy50ZXh0KXtsZXQgTT10aGlzLnRleHRDb250ZW50Py50cmltKCk7TSYmKHRoaXMudGV4dD1NKX19YXN5bmMgc3VibWl0KCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IE09dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtNJiZNLmdhdGhlckFuZERpc3BhdGNoJiZNLmdhdGhlckFuZERpc3BhdGNoKCl9YXN5bmMgZm9jdXMoKXtsZXQgTT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmRpc2FibGVkfHwoYXdhaXQgTS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWl0KCkpfXN0YXRpY3tZaShyLHQpfX07cmV0dXJuIEI9cn0pKCl9KTt2YXIgUHNhLEVzYT1mKCgpPT57bGUoKTtOYSgpO1lzKCk7aW0oKTtUZigpO1BzYT1zKCgpPT53YAogIDxzdHlsZT4KICAgICR7WGAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3BhY2VyIHsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgQ291bnRyeSJdJyksdD1hLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBSb2xlIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwocj0+e2NvbnNvbGUubG9nKCJDb3VudHJ5IHNlbGVjdGVkOiIsci5kZXRhaWwpfSkpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChyPT57Y29uc29sZS5sb2coIlJvbGUgc2VsZWN0ZWQ6IixyLmRldGFpbCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIERyb3Bkb3ducyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCBkcm9wZG93biB3aXRoIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGFuZCB2YXJpb3VzIG9wdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBDb3VudHJ5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB0aGUgY291bnRyeSB3aGVyZSB5b3VyIGJ1c2luZXNzIGlzIHJlZ2lzdGVyZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn0se29wdGlvbjoiQXVzdHJhbGlhIixrZXk6ImF1In0se29wdGlvbjoiSmFwYW4iLGtleToianAifSx7b3B0aW9uOiJCcmF6aWwiLGtleToiYnIifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBSb2xlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQWRtaW5pc3RyYXRvciIsa2V5OiJhZG1pbiJ9LHtvcHRpb246IkVkaXRvciIsa2V5OiJlZGl0b3IifSx7b3B0aW9uOiJWaWV3ZXIiLGtleToidmlld2VyIn0se29wdGlvbjoiR3Vlc3QiLGtleToiZ3Vlc3QifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwodD0+e2NvbnNvbGUubG9nKGBQcmlvcml0eSBjaGFuZ2VkIHRvOiAke3QuZGV0YWlsLm9wdGlvbn1gKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gV2l0aG91dCBTZWFyY2gifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBkaXNhYmxlZCBmb3Igc2ltcGxlciBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkhpZ2giLGtleToiaGlnaCJ9LHtvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiJMb3ciLGtleToibG93In1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiTWVkaXVtIixrZXk6Im1lZGl1bSJ9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2EucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kcm9wZG93biIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChyPT57bGV0IGk9dC5nZXRBdHRyaWJ1dGUoImxhYmVsIik7Y29uc29sZS5sb2coYCR7aX06ICR7ci5kZXRhaWwub3B0aW9ufWApfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGRyb3Bkb3ducyBpbiBhIGhvcml6b250YWwgbGF5b3V0IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXBhcnRtZW50In0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdpbmVlcmluZyIsa2V5OiJlbmcifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiTWFya2V0aW5nIixrZXk6Im1hcmtldGluZyJ9LHtvcHRpb246IlNhbGVzIixrZXk6InNhbGVzIn1dfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBTaXplIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiMS01IixrZXk6InNtYWxsIn0se29wdGlvbjoiNi0yMCIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiIyMS01MCIsa2V5OiJsYXJnZSJ9LHtvcHRpb246IjUwKyIsa2V5OiJ4bGFyZ2UifV19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIC5sYWJlbD0keyJMb2NhdGlvbiJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVtb3RlIixrZXk6InJlbW90ZSJ9LHtvcHRpb246Ik9uLXNpdGUiLGtleToib25zaXRlIn0se29wdGlvbjoiSHlicmlkIixrZXk6Imh5YnJpZCJ9XX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd25bcmVxdWlyZWRdIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJSZXF1aXJlZCBkcm9wZG93biBsb3N0IGZvY3VzIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBGaWVsZCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJPcHRpb24gQSIsa2V5OiJhIn0se29wdGlvbjoiT3B0aW9uIEIiLGtleToiYiJ9LHtvcHRpb246Ik9wdGlvbiBDIixrZXk6ImMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBEcm9wZG93biJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkaXYgY2xhc3M9InNwYWNlciI+CiAgICAgIChTcGFjZXIgdG8gdGVzdCBkcm9wZG93biBwb3NpdGlvbmluZykKICAgIDwvZGl2PgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHQ9Pntjb25zb2xlLmxvZygiQm90dG9tIGRyb3Bkb3duIHNlbGVjdGVkOiIsdC5kZXRhaWwpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBCb3R0b20gUG9zaXRpb25pbmcifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gdGhhdCBvcGVucyB1cHdhcmQgd2hlbiBuZWFyIGJvdHRvbSBvZiB2aWV3cG9ydCJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiT3BlbnMgVXB3YXJkIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkZpcnN0IE9wdGlvbiIsa2V5OiJmaXJzdCJ9LHtvcHRpb246IlNlY29uZCBPcHRpb24iLGtleToic2Vjb25kIn0se29wdGlvbjoiVGhpcmQgT3B0aW9uIixrZXk6InRoaXJkIn0se29wdGlvbjoiRm91cnRoIE9wdGlvbiIsa2V5OiJmb3VydGgifSx7b3B0aW9uOiJGaWZ0aCBPcHRpb24iLGtleToiZmlmdGgifV19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKSx0PWEucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtlJiZ0JiYodC5pbm5lckhUTUw9IjxlbT5TZWxlY3QgYSBwcm9kdWN0IHRvIHNlZSBkZXRhaWxzLi4uPC9lbT4iLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwocj0+e3IuZGV0YWlsLnZhbHVlJiYodC5pbm5lckhUTUw9YAogICAgICAgICAgICAgIDxzdHJvbmc+U2VsZWN0ZWQ6PC9zdHJvbmc+ICR7ci5kZXRhaWwudmFsdWUub3B0aW9ufTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPktleTo8L3N0cm9uZz4gJHtyLmRldGFpbC52YWx1ZS5rZXl9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+UHJpY2U6PC9zdHJvbmc+ICQke3IuZGV0YWlsLnZhbHVlLnBheWxvYWQ/LnByaWNlfHwiTi9BIn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5GZWF0dXJlczo8L3N0cm9uZz4gJHtyLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5mZWF0dXJlcz8uam9pbigiLCAiKXx8Ik4vQSJ9CiAgICAgICAgICAgIGApfSkpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRXZlbnQgSGFuZGxpbmcgJiBQYXlsb2FkIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggcGF5bG9hZCBkYXRhIGFuZCBjaGFuZ2UgZXZlbnQgaGFuZGxpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBQcm9kdWN0In0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkJhc2ljIFBsYW4iLGtleToiYmFzaWMiLHBheWxvYWQ6e3ByaWNlOjkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiXX19LHtvcHRpb246IlBybyBQbGFuIixrZXk6InBybyIscGF5bG9hZDp7cHJpY2U6MTkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiXX19LHtvcHRpb246IkVudGVycHJpc2UgUGxhbiIsa2V5OiJlbnRlcnByaXNlIixwYXlsb2FkOntwcmljZTo0OS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSIsIkZlYXR1cmUgQiIsIkZlYXR1cmUgQyJdfX1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IHBhZGRpbmc6IDEycHg7IGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7IGJvcmRlci1yYWRpdXM6IDRweDsgZm9udC1zaXplOiAxNHB4OyI+PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PWEucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9InByb2plY3RUeXBlIl0nKSxyPWEucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9ImZyYW1ld29yayJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGk9Pntjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsaS5kZXRhaWwuZGF0YSl9KSksdCYmciYmdC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKGk9PntsZXQgbz1pLmRldGFpbC5rZXk7Y29uc29sZS5sb2coYFByb2plY3QgdHlwZSBjaGFuZ2VkIHRvOiAke299YCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd29ya2luZyB3aXRoaW4gYSBmb3JtIHdpdGggdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBUeXBlIn0KICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0VHlwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJXZWIgQXBwbGljYXRpb24iLGtleToid2ViIn0se29wdGlvbjoiTW9iaWxlIEFwcGxpY2F0aW9uIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgQXBwbGljYXRpb24iLGtleToiZGVza3RvcCJ9LHtvcHRpb246IkFQSSBTZXJ2aWNlIixrZXk6ImFwaSJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wbWVudCBGcmFtZXdvcmsifQogICAgICAgICAgICAua2V5PSR7ImZyYW1ld29yayJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJSZWFjdCIsa2V5OiJyZWFjdCIscGF5bG9hZDp7dHlwZToid2ViIn19LHtvcHRpb246IlZ1ZS5qcyIsa2V5OiJ2dWUiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJBbmd1bGFyIixrZXk6ImFuZ3VsYXIiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJSZWFjdCBOYXRpdmUiLGtleToicmVhY3QtbmF0aXZlIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRmx1dHRlciIsa2V5OiJmbHV0dGVyIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRWxlY3Ryb24iLGtleToiZWxlY3Ryb24iLHBheWxvYWQ6e3R5cGU6ImRlc2t0b3AifX1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiQ3JlYXRlIFByb2plY3QifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBBMSxKcixuYWUsSVllPWYoKCk9PntsZSgpO2VhKCk7R2koKTttcygpO1FlKCk7TTEoKTtBMT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sSnI9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LG5hZT0oKCk9PntsZXQgYT1baWUoImRlZXMtaW5wdXQtZHJvcGRvd24tcG9wdXAiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXSxXLGo9W10sRz1bXTt2YXIgaGU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNJbnB1dERyb3Bkb3duUG9wdXAiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgUj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6Qm9vbGVhbn0pXSx1PVskKHt0eXBlOkJvb2xlYW59KV0seD1bJCh7YXR0cmlidXRlOiExfSldLHk9WyQoe2F0dHJpYnV0ZTohMX0pXSxOPVtLKCldLE89W0soKV0sQj1bSygpXSxFPVtLKCldLFc9W0soKV0sQTEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJvcHRpb25zImluIFUsImhhcyIpLGdldDpzKFU9PlUub3B0aW9ucywiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5vcHRpb25zPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LG4sbCksQTEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+ImVuYWJsZVNlYXJjaCJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLmVuYWJsZVNlYXJjaCwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5lbmFibGVTZWFyY2g9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sYyxwKSxBMSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+Im9wZW5zVG9Ub3AiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5vcGVuc1RvVG9wLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLm9wZW5zVG9Ub3A9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbSx2KSxBMSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyaWdnZXJSZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJ0cmlnZ2VyUmVjdCJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnRyaWdnZXJSZWN0PW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGIsZyksQTEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4ib3duZXJDb21wb25lbnQiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5vd25lckNvbXBvbmVudCwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5vd25lckNvbXBvbmVudD1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxrLEMpLEExKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJmaWx0ZXJlZE9wdGlvbnMiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5maWx0ZXJlZE9wdGlvbnMsImdldCIpLHNldDpzKChVLG1lKT0+e1UuZmlsdGVyZWRPcHRpb25zPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LF8seiksQTEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJoaWdobGlnaHRlZEluZGV4ImluIFUsImhhcyIpLGdldDpzKFU9PlUuaGlnaGxpZ2h0ZWRJbmRleCwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5oaWdobGlnaHRlZEluZGV4PW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LFQsUCksQTEodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4ic2VhcmNoVmFsdWUiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5zZWFyY2hWYWx1ZSwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5zZWFyY2hWYWx1ZT1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxNLFMpLEExKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4ibWVudVpJbmRleCJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLm1lbnVaSW5kZXgsImdldCIpLHNldDpzKChVLG1lKT0+e1UubWVudVpJbmRleD1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxBLEYpLEExKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4idmlzaWJsZSJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLnZpc2libGUsImdldCIpLHNldDpzKChVLG1lKT0+e1UudmlzaWJsZT1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxqLEcpLEExKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlJ9LG51bGwsdCksaGU9cj1lLnZhbHVlLFImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Un0pfSNlPUpyKHRoaXMsbixbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhSKXt0aGlzLiNlPVJ9I3Q9KEpyKHRoaXMsbCksSnIodGhpcyxjLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVTZWFyY2goUil7dGhpcy4jdD1SfSNhPShKcih0aGlzLHApLEpyKHRoaXMsbSwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9wZW5zVG9Ub3AoUil7dGhpcy4jYT1SfSNyPShKcih0aGlzLHYpLEpyKHRoaXMsYixudWxsKSk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRyaWdnZXJSZWN0KFIpe3RoaXMuI3I9Un0jcz0oSnIodGhpcyxnKSxKcih0aGlzLGssbnVsbCkpO2dldCBvd25lckNvbXBvbmVudCgpe3JldHVybiB0aGlzLiNzfXNldCBvd25lckNvbXBvbmVudChSKXt0aGlzLiNzPVJ9I2k9KEpyKHRoaXMsQyksSnIodGhpcyxfLFtdKSk7Z2V0IGZpbHRlcmVkT3B0aW9ucygpe3JldHVybiB0aGlzLiNpfXNldCBmaWx0ZXJlZE9wdGlvbnMoUil7dGhpcy4jaT1SfSNvPShKcih0aGlzLHopLEpyKHRoaXMsVCwwKSk7Z2V0IGhpZ2hsaWdodGVkSW5kZXgoKXtyZXR1cm4gdGhpcy4jb31zZXQgaGlnaGxpZ2h0ZWRJbmRleChSKXt0aGlzLiNvPVJ9I249KEpyKHRoaXMsUCksSnIodGhpcyxNLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNlYXJjaFZhbHVlKFIpe3RoaXMuI249Un0jbD0oSnIodGhpcyxTKSxKcih0aGlzLEEsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWVudVpJbmRleChSKXt0aGlzLiNsPVJ9I2M9KEpyKHRoaXMsRiksSnIodGhpcyxqLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmlzaWJsZShSKXt0aGlzLiNjPVJ9d2luZG93TGF5ZXI9KEpyKHRoaXMsRyksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMC45OCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnRvcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3guc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5uby1vcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy50cmlnZ2VyUmVjdClyZXR1cm4gd2BgO2xldCBSPXRoaXMuY29tcHV0ZVBvc2l0aW9uU3R5bGUoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJzZWxlY3Rpb25Cb3ggJHt0aGlzLnZpc2libGU/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iCiAgICAgICAgc3R5bGU9IiR7Un07IHotaW5kZXg6ICR7dGhpcy5tZW51WkluZGV4fTsiCiAgICAgID4KICAgICAgICAke3RoaXMuZW5hYmxlU2VhcmNoP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIG9wdGlvbnMuLi4iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLnNlYXJjaFZhbHVlfSIKICAgICAgICAgICAgICAgICAgQGlucHV0PSIke3RoaXMuaGFuZGxlU2VhcmNofSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke1U9PlUuc3RvcFByb3BhZ2F0aW9uKCl9IgogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlYXJjaEtleWRvd259IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDpudWxsfQogICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9Im5vLW9wdGlvbnMiPk5vIG9wdGlvbnMgZm91bmQ8L2Rpdj5gOnRoaXMuZmlsdGVyZWRPcHRpb25zLm1hcCgoVSxtZSk9PntsZXQgST10aGlzLmhpZ2hsaWdodGVkSW5kZXg9PT1tZTtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcHRpb24gJHtJPyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oVSl9IgogICAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSIkeygpPT50aGlzLmhpZ2hsaWdodGVkSW5kZXg9bWV9IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtVLm9wdGlvbn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb21wdXRlUG9zaXRpb25TdHlsZSgpe2xldCBSPXRoaXMudHJpZ2dlclJlY3QsVT1SLmxlZnQsbWU9Ui53aWR0aDtpZih0aGlzLm9wZW5zVG9Ub3Ape2xldCBJPXdpbmRvdy5pbm5lckhlaWdodC1SLnRvcCs0O3JldHVybmBsZWZ0OiAke1V9cHg7IHdpZHRoOiAke21lfXB4OyBib3R0b206ICR7SX1weDsgdG9wOiBhdXRvYH1lbHNle2xldCBJPVIuYm90dG9tKzQ7cmV0dXJuYGxlZnQ6ICR7VX1weDsgd2lkdGg6ICR7bWV9cHg7IHRvcDogJHtJfXB4YH19YXN5bmMgc2hvdygpe3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgR3MuY3JlYXRlQW5kU2hvdygpLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX0pLHRoaXMubWVudVpJbmRleD1YdC5nZXROZXh0WkluZGV4KCksWHQucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcyksYXdhaXQgSHQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7cGFzc2l2ZTohMH0pfWFzeW5jIGhpZGUoKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSxYdC51bnJlZ2lzdGVyKHRoaXMpLHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wLHRoaXMud2luZG93TGF5ZXImJih0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyPW51bGwpLHRoaXMudmlzaWJsZT0hMSxhd2FpdCBIdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5pc0Rlc3Ryb3lpbmc9ITEpfWFzeW5jIGZvY3VzU2VhcmNoSW5wdXQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBSPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoIGlucHV0Iik7UiYmUi5mb2N1cygpfXVwZGF0ZU9wdGlvbnMoUil7aWYodGhpcy5vcHRpb25zPVIsdGhpcy5zZWFyY2hWYWx1ZSl7bGV0IFU9dGhpcy5zZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIobWU9Pm1lLm9wdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFUpKX1lbHNlIHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9uczt0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH1zZWxlY3RPcHRpb24oUil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib3B0aW9uLXNlbGVjdGVkIix7ZGV0YWlsOlJ9KSl9aGFuZGxlU2VhcmNoPXMoUj0+e2xldCBVPVIudGFyZ2V0LnZhbHVlO3RoaXMuc2VhcmNoVmFsdWU9VTtsZXQgbWU9VS50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIoST0+SS5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtZSkpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wfSwiaGFuZGxlU2VhcmNoIik7aGFuZGxlU2VhcmNoS2V5ZG93bj1zKFI9PntsZXQgVT1SLmtleSxtZT10aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgtMTtVPT09IkFycm93RG93biI/KFIucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4KzE+bWU/MDp0aGlzLmhpZ2hsaWdodGVkSW5kZXgrMSk6VT09PSJBcnJvd1VwIj8oUi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD10aGlzLmhpZ2hsaWdodGVkSW5kZXgtMTwwP21lOnRoaXMuaGlnaGxpZ2h0ZWRJbmRleC0xKTpVPT09IkVudGVyIj8oUi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0mJnRoaXMuc2VsZWN0T3B0aW9uKHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0pKTpVPT09IkVzY2FwZSImJihSLnByZXZlbnREZWZhdWx0KCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKSl9LCJoYW5kbGVTZWFyY2hLZXlkb3duIik7aGFuZGxlU2Nyb2xsT3JSZXNpemU9cygoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcG9zaXRpb24tcmVxdWVzdCIpKX0sImhhbmRsZVNjcm9sbE9yUmVzaXplIik7YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSxYdC51bnJlZ2lzdGVyKHRoaXMpfXN0YXRpY3tKcihyLHQpfX07cmV0dXJuIGhlPXJ9KSgpfSk7dmFyIG9tLFAxLGxhZSxjYWU9ZigoKT0+e2xlKCk7RXNhKCk7U3IoKTttcygpO1FlKCk7SVllKCk7b209ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LFAxPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxsYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LWRyb3Bkb3duIildLGUsdD1bXSxyLGk9TXQsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNJbnB1dERyb3Bkb3duIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxkPVskKCldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx5PVtLKCldLG9tKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4ib3B0aW9ucyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56Lm9wdGlvbnMsImdldCIpLHNldDpzKCh6LE8pPT57ei5vcHRpb25zPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbixsKSxvbSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzZWxlY3RlZE9wdGlvbiJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouc2VsZWN0ZWRPcHRpb249T30sInNldCIpfSxtZXRhZGF0YTpffSxjLHApLG9tKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlU2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJlbmFibGVTZWFyY2giaW4geiwiaGFzIiksZ2V0OnMoej0+ei5lbmFibGVTZWFyY2gsImdldCIpLHNldDpzKCh6LE8pPT57ei5lbmFibGVTZWFyY2g9T30sInNldCIpfSxtZXRhZGF0YTpffSxtLHYpLG9tKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmludGVncmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InZpbnRlZ3JhdGVkImluIHosImhhcyIpLGdldDpzKHo9PnoudmludGVncmF0ZWQsImdldCIpLHNldDpzKCh6LE8pPT57ei52aW50ZWdyYXRlZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksb20odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iaXNPcGVuZWQiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5pc09wZW5lZCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmlzT3BlbmVkPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxDKSxvbShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpffSxudWxsLHQpLE49cj1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPVBzYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9UDEodGhpcyxuLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKF8pe3RoaXMuI2U9X30jdD0oUDEodGhpcyxsKSxQMSh0aGlzLGMsbnVsbCkpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZE9wdGlvbihfKXt0aGlzLiN0PV99Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKF8pe3RoaXMuc2VsZWN0ZWRPcHRpb249X30jYT0oUDEodGhpcyxwKSxQMSh0aGlzLG0sITApKTtnZXQgZW5hYmxlU2VhcmNoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVuYWJsZVNlYXJjaChfKXt0aGlzLiNhPV99I3I9KFAxKHRoaXMsdiksUDEodGhpcyxiLCExKSk7Z2V0IHZpbnRlZ3JhdGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZpbnRlZ3JhdGVkKF8pe3RoaXMuI3I9X30jcz0oUDEodGhpcyxnKSxQMSh0aGlzLGssITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNPcGVuZWQoXyl7dGhpcy4jcz1ffXBvcHVwSW5zdGFuY2U9KFAxKHRoaXMsQyksbnVsbCk7c3RhdGljIHN0eWxlcz1bUGUsLi4uTXQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke3BhfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogRHJvcGRvd24gYXJyb3cgKi8KICAgICAgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94Lm9wZW46OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIFZpc3VhbGx5IGludGVncmF0ZWQgbW9kZTogc2hlZCBjaHJvbWUgdG8gYmxlbmQgaW50byBhIGhvc3QgY29tcG9uZW50CiAgICAgICAgIChlLmcuIGEgZGVlcy10YWJsZSBjZWxsIGluIGVkaXQgbW9kZSkuICovCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGRlZXMtbGFiZWwgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3ggewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDMycHggMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic2VsZWN0ZWRCb3ggJHt0aGlzLmlzT3BlbmVkPyJvcGVuIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpfSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkT3B0aW9uPy5vcHRpb258fCJTZWxlY3QgYW4gb3B0aW9uIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLnNlbGVjdGVkT3B0aW9ufHxudWxsfXVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygib3B0aW9ucyIpJiZ0aGlzLnBvcHVwSW5zdGFuY2UmJnRoaXMuaXNPcGVuZWQmJnRoaXMucG9wdXBJbnN0YW5jZS51cGRhdGVPcHRpb25zKHRoaXMub3B0aW9ucyl9YXN5bmMgdXBkYXRlU2VsZWN0aW9uKF8pe3RoaXMuc2VsZWN0ZWRPcHRpb249Xyx0aGlzLmNsb3NlUG9wdXAoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3RlZE9wdGlvbiIse2RldGFpbDpfLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9YXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCl7aWYodGhpcy5pc09wZW5lZCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufXRoaXMuaXNPcGVuZWQ9ITA7bGV0IHo9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE89d2luZG93LmlubmVySGVpZ2h0LXouYm90dG9tLFQ9ei50b3AsUD1PPDMwMCYmVD5PO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgbmFlKSx0aGlzLnBvcHVwSW5zdGFuY2Uub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVNlYXJjaD10aGlzLmVuYWJsZVNlYXJjaCx0aGlzLnBvcHVwSW5zdGFuY2Uub3BlbnNUb1RvcD1QLHRoaXMucG9wdXBJbnN0YW5jZS50cmlnZ2VyUmVjdD16LHRoaXMucG9wdXBJbnN0YW5jZS5vd25lckNvbXBvbmVudD10aGlzLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLnNob3coKSx0aGlzLmVuYWJsZVNlYXJjaCYmYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLmZvY3VzU2VhcmNoSW5wdXQoKX1jbG9zZVBvcHVwKCl7dGhpcy5pc09wZW5lZD0hMSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCkpfWhhbmRsZU9wdGlvblNlbGVjdGVkPXMoXz0+e2xldCB6PV8uZGV0YWlsO3RoaXMudXBkYXRlU2VsZWN0aW9uKHopfSwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQiKTtoYW5kbGVDbG9zZVJlcXVlc3Q9cygoKT0+e3RoaXMuY2xvc2VQb3B1cCgpfSwiaGFuZGxlQ2xvc2VSZXF1ZXN0Iik7aGFuZGxlUmVwb3NpdGlvblJlcXVlc3Q9cygoKT0+e2lmKCF0aGlzLnBvcHVwSW5zdGFuY2V8fCF0aGlzLmlzT3BlbmVkKXJldHVybjtsZXQgXz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkQm94Iik7aWYoIV8pcmV0dXJuO2xldCB6PV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoei5ib3R0b208MHx8ei50b3A+d2luZG93LmlubmVySGVpZ2h0KXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59bGV0IE89d2luZG93LmlubmVySGVpZ2h0LXouYm90dG9tLFQ9ei50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9TzwzMDAmJlQ+Tyx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9en0sImhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0Iik7aGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3duKF8pe3RoaXMuZGlzYWJsZWR8fChfLmtleT09PSJFbnRlciJ8fF8ua2V5PT09IiAiPyhfLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Xy5rZXk9PT0iQXJyb3dEb3duInx8Xy5rZXk9PT0iQXJyb3dVcCI/KF8ucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkfHx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpfLmtleT09PSJFc2NhcGUiJiYoXy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWQmJnRoaXMuY2xvc2VQb3B1cCgpKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShfKXt0aGlzLnNlbGVjdGVkT3B0aW9uPV99YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje1AxKHIsdCl9fTtyZXR1cm4gTj1yfSkoKX0pO3ZhciBJc2EsTnNhPWYoKCk9PntsZSgpO05ZZSgpO1lzKCk7SXNhPXMoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7WGAKICAgICAgICAuZGVtby1zaGVsbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDExNjBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7CiAgICAgICAgICAuZGVtby1ncmlkLS10d28gewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zdGFjayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMThweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDkwJSkiLCJoc2woMjE1IDIwJSAyNiUpIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTMgMTAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyNSUgMzIlKSIsImhzbCgyMTUgMjAlIDgyJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNDUlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zaGVsbCI+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ik1vZGVybiBmaWxlIHVwbG9hZGVyIn0KICAgICAgICAuc3VidGl0bGU9JHsiU2hhZGNuLWluc3BpcmVkIGxheW91dCB3aXRoIGRyYWcgJiBkcm9wLCBwcmV2aWV3cyBhbmQgdmFsaWRhdGlvbiJ9CiAgICAgID4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIGRlbW8tZ3JpZC0tdHdvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkF0dGFjaG1lbnRzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWQgc3VwcG9ydGluZyBkb2N1bWVudHMgZm9yIHlvdXIgcmVxdWVzdCJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWNjZXB0ZWQgZm9ybWF0czogaW1hZ2VzLCBQREYsIGFuZCBaSVAgYXJjaGl2ZXMgdXAgdG8gMTBNQiJ9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlLyosLnBkZiwuemlwIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTAqMTAyNCoxMDI0fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkJyYW5kIGFzc2V0cyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXJ5IChKUEcvUE5HKSJ9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlL2pwZWcsaW1hZ2UvcG5nIn0KICAgICAgICAgICAgICAgIC5tdWx0aXBsZT0keyExfQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5idXR0b25UZXh0PSR7IlNlbGVjdCBjb3ZlciBpbWFnZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJBdWRpbyB1cGxvYWRzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTaGFyZSBwb2RjYXN0IGRyYWZ0cyAoTVAzL1dBViwgbWF4IDI1TUIgZWFjaCkifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhdWRpby8qIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MjUqMTAyNCoxMDI0fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGV4YW1wbGUifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IlVwbG9hZGVyIGlzIGRpc2FibGVkIHdoaWxlIG1vZGVyYXRpb24gaXMgcGVuZGluZyJ9CiAgICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZvcm0gaW50ZWdyYXRpb24ifQogICAgICAgIC5zdWJ0aXRsZT0keyJDb21iaW5lIGZpbGUgdXBsb2FkcyB3aXRoIHRoZSByZXN0IG9mIHRoZSBERUVTIGZvcm0gZWNvc3lzdGVtIn0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IG5hbWUifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IkhvdyBzaG91bGQgd2UgcmVmZXIgdG8gdGhpcyBwcm9qZWN0IGludGVybmFsbHk/In0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0TmFtZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ29udGFjdCBlbWFpbCJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7ImVtYWlsIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJjb250YWN0RW1haWwifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IlN0YXRlbWVudCBvZiB3b3JrIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWQgYSBzaWduZWQgc3RhdGVtZW50IG9mIHdvcmsgKFBERiwgbWF4IDE1TUIpIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhcHBsaWNhdGlvbi9wZGYifQogICAgICAgICAgICAgICAgLm1heFNpemU9JHsxNSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5rZXk9JHsic293In0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJDcmVhdGl2ZSByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJPcHRpb25hbC4gVXBsb2FkIHVwIHRvIGZpdmUgdmlzdWFsIHJlZmVyZW5jZXMifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qIn0KICAgICAgICAgICAgICAgIC5tYXhGaWxlcz0kezV9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezgqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLmtleT0keyJyZWZlcmVuY2VzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIG9wdGlvbmFsIGNvbnRleHQgZm9yIHJldmlld2VycyJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU3VibWl0IGJyaWVmaW5nIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgICAgICAgPHN0cm9uZz5Hb29kIHRvIGtub3c6PC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+RHJhZyAmIGRyb3AgaGlnaGxpZ2h0cyB0aGUgZHJvcHpvbmUgYW5kIHN1cHBvcnRzIGtleWJvYXJkIGFjdGl2YXRpb24uPC9saT4KICAgICAgICAgICAgICA8bGk+QWNjZXB0ZWQgZmlsZSB0eXBlcyBhcmUgc3VtbWFyaXNlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIDxjb2RlPmFjY2VwdDwvY29kZT4gYXR0cmlidXRlLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkltYWdlIHVwbG9hZHMgc2hvdyBsaXZlIHByZXZpZXdzIGdlbmVyYXRlZCB2aWEgPGNvZGU+VVJMLmNyZWF0ZU9iamVjdFVSTDwvY29kZT4uPC9saT4KICAgICAgICAgICAgICA8bGk+RmlsZSBzaXplIGFuZCBmaWxlLWNvdW50IGxpbWl0cyBzdXJmYWNlIGlubGluZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRoZSBjb21wb25lbnQgc3RheXMgY29tcGF0aWJsZSB3aXRoIDxjb2RlPmRlZXMtZm9ybTwvY29kZT4gdmFsdWUgYWNjZXNzb3JzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIFJzYSxPc2E9ZigoKT0+e2xlKCk7U3IoKTtRZSgpO1JzYT1bUGUsLi4uTXQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsWGAKICAgIDpob3N0IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KCiAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAvKiDilIDilIAgVGlsZSBpbnRlZ3JhdGlvbiDilIDilIAgKi8KICAgIGRlZXMtdGlsZSB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIH0KCiAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgfQoKICAgIGRlZXMtdGlsZS5kcmFnb3Zlcjo6cGFydChvdXRlcikgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMTUpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xNSkiKX07CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgb3BhY2l0eTogMC42OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAvKiDilIDilIAgSGVhZGVyIHNsb3Q6IHNsZWVrIHRvb2xiYXIg4pSA4pSAICovCiAgICAuZHJvcHpvbmUtaGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgfQoKICAgIC5kcm9wem9uZS1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmRyb3B6b25lLWxvYWRlciB7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgxNSwgMjMsIDQyLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBhbmltYXRpb246IGxvYWRlci1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC5kcm9wem9uZS10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZSB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgcGFkZGluZzogMDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZTpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5kcm9wem9uZS1icm93c2U6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBvcGFjaXR5OiAwLjU7CiAgICB9CgogICAgLyog4pSA4pSAIENvbnRlbnQgc2xvdDogZmlsZSBsaXN0IGluIHJvdW5kZWQgaW5zZXQg4pSA4pSAICovCiAgICAuZmlsZS1saXN0LWVtcHR5IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4IDE2cHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICB9CgogICAgLmZpbGUtbGlzdC1lbXB0eSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgIH0KCiAgICAuZmlsZS1saXN0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIH0KCiAgICAuZmlsZS1saXN0LWhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmZpbGUtbGlzdC1jbGVhciB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXByaW1hcnkpOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgcGFkZGluZzogMDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICB9CgogICAgLmZpbGUtbGlzdC1jbGVhcjpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5maWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZGVlcy10cmFuc2l0aW9uLWZhc3QpIGVhc2U7CiAgICB9CgogICAgLmZpbGUtcm93OmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1yb3ctaG92ZXIpOwogICAgfQoKICAgIC5maWxlLXRodW1iIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtc20pOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC5maWxlLXRodW1iIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTZweDsKICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnRodW1iLWltYWdlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICB9CgogICAgLmZpbGUtbWV0YSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMnB4OwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmZpbGUtbmFtZSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB9CgogICAgLmZpbGUtZGV0YWlscyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLmZpbGUtc2l6ZSB7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmZpbGUtdHlwZSB7CiAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmb250LXNpemU6IDEwcHg7CiAgICB9CgogICAgLmZpbGUtYWN0aW9ucyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteHMpOwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWRlZXMtdHJhbnNpdGlvbi1mYXN0KSBlYXNlLAogICAgICAgICAgICAgICAgICBjb2xvciB2YXIoLS1kZWVzLXRyYW5zaXRpb24tZmFzdCkgZWFzZTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSAvIDAuMDgpIiwiaHNsKDAgNjIlIDMyJSAvIDAuMTUpIil9OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC8qIOKUgOKUgCBGb290ZXIgc2xvdDogbWV0YSBjaGlwcyDilIDilIAgKi8KICAgIC5kcm9wem9uZS1mb290ZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGdhcDogNnB4OwogICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KCiAgICAubWV0YS1jaGlwIHsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgfQoKICAgIC8qIOKUgOKUgCBWYWxpZGF0aW9uIOKUgOKUgCAqLwogICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LWVycm9yKTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIGxvYWRlci1zcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KICBgXX0pO3ZhciBqMixOcyxkYWUsTlllPWYoKCk9PntTcigpO05zYSgpO09zYSgpO3ZhKCk7YW0oKTtRcigpO2xlKCk7ajI9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LE5zPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxkYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LWZpbGV1cGxvYWQiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXTt2YXIgVz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0RmlsZXVwbG9hZCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBqPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe2F0dHJpYnV0ZTohMX0pXSxkPVtLKCldLHU9W0soKV0seD1bJCh7dHlwZTpTdHJpbmd9KV0seT1bJCh7dHlwZTpTdHJpbmd9KV0sTj1bJCh7dHlwZTpCb29sZWFufSldLE89WyQoe3R5cGU6TnVtYmVyfSldLEI9WyQoe3R5cGU6TnVtYmVyfSldLEU9WyQoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sajIodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhHPT4idmFsdWUiaW4gRywiaGFzIiksZ2V0OnMoRz0+Ry52YWx1ZSwiZ2V0Iiksc2V0OnMoKEcsaGUpPT57Ry52YWx1ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpqfSxuLGwpLGoyKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRz0+InN0YXRlImluIEcsImhhcyIpLGdldDpzKEc9Pkcuc3RhdGUsImdldCIpLHNldDpzKChHLGhlKT0+e0cuc3RhdGU9aGV9LCJzZXQiKX0sbWV0YWRhdGE6an0sYyxwKSxqMih0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhHPT4iaXNMb2FkaW5nImluIEcsImhhcyIpLGdldDpzKEc9PkcuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6cygoRyxoZSk9PntHLmlzTG9hZGluZz1oZX0sInNldCIpfSxtZXRhZGF0YTpqfSxtLHYpLGoyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnV0dG9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhHPT4iYnV0dG9uVGV4dCJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLmJ1dHRvblRleHQsImdldCIpLHNldDpzKChHLGhlKT0+e0cuYnV0dG9uVGV4dD1oZX0sInNldCIpfSxtZXRhZGF0YTpqfSxiLGcpLGoyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEc9PiJhY2NlcHQiaW4gRywiaGFzIiksZ2V0OnMoRz0+Ry5hY2NlcHQsImdldCIpLHNldDpzKChHLGhlKT0+e0cuYWNjZXB0PWhlfSwic2V0Iil9LG1ldGFkYXRhOmp9LGssQyksajIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtdWx0aXBsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhHPT4ibXVsdGlwbGUiaW4gRywiaGFzIiksZ2V0OnMoRz0+Ry5tdWx0aXBsZSwiZ2V0Iiksc2V0OnMoKEcsaGUpPT57Ry5tdWx0aXBsZT1oZX0sInNldCIpfSxtZXRhZGF0YTpqfSxfLHopLGoyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhHPT4ibWF4U2l6ZSJpbiBHLCJoYXMiKSxnZXQ6cyhHPT5HLm1heFNpemUsImdldCIpLHNldDpzKChHLGhlKT0+e0cubWF4U2l6ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpqfSxULFApLGoyKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRz0+Im1heEZpbGVzImluIEcsImhhcyIpLGdldDpzKEc9PkcubWF4RmlsZXMsImdldCIpLHNldDpzKChHLGhlKT0+e0cubWF4RmlsZXM9aGV9LCJzZXQiKX0sbWV0YWRhdGE6an0sTSxTKSxqMih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhHPT4idmFsaWRhdGlvblN0YXRlImluIEcsImhhcyIpLGdldDpzKEc9PkcudmFsaWRhdGlvblN0YXRlLCJnZXQiKSxzZXQ6cygoRyxoZSk9PntHLnZhbGlkYXRpb25TdGF0ZT1oZX0sInNldCIpfSxtZXRhZGF0YTpqfSxBLEYpLGoyKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmp9LG51bGwsdCksVz1yPWUudmFsdWUsaiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpqfSl9c3RhdGljIGRlbW89SXNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1Ocyh0aGlzLG4sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShqKXt0aGlzLiNlPWp9I3Q9KE5zKHRoaXMsbCksTnModGhpcyxjLCJpZGxlIikpO2dldCBzdGF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0ZShqKXt0aGlzLiN0PWp9I2E9KE5zKHRoaXMscCksTnModGhpcyxtLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0xvYWRpbmcoail7dGhpcy4jYT1qfSNyPShOcyh0aGlzLHYpLE5zKHRoaXMsYiwiU2VsZWN0IGZpbGVzIikpO2dldCBidXR0b25UZXh0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJ1dHRvblRleHQoail7dGhpcy4jcj1qfSNzPShOcyh0aGlzLGcpLE5zKHRoaXMsaywiIikpO2dldCBhY2NlcHQoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWNjZXB0KGope3RoaXMuI3M9an0jaT0oTnModGhpcyxDKSxOcyh0aGlzLF8sITApKTtnZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbXVsdGlwbGUoail7dGhpcy4jaT1qfSNvPShOcyh0aGlzLHopLE5zKHRoaXMsVCwwKSk7Z2V0IG1heFNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4U2l6ZShqKXt0aGlzLiNvPWp9I249KE5zKHRoaXMsUCksTnModGhpcyxNLDApKTtnZXQgbWF4RmlsZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWF4RmlsZXMoail7dGhpcy4jbj1qfSNsPShOcyh0aGlzLFMpLE5zKHRoaXMsQSxudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNsfXNldCB2YWxpZGF0aW9uU3RhdGUoail7dGhpcy4jbD1qfSNjPShOcyh0aGlzLEYpLCIiKTtnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmFsaWRhdGlvbk1lc3NhZ2Uoail7dGhpcy4jYz1qfXByZXZpZXdVcmxNYXA9bmV3IFdlYWtNYXA7ZHJvcEFyZWE9bnVsbDtzdGF0aWMgc3R5bGVzPVJzYTtyZW5kZXIoKXtsZXQgaj10aGlzLmdldEFjY2VwdGVkU3VtbWFyeSgpLEc9W3RoaXMubXVsdGlwbGU/Ik11bHRpcGxlIGZpbGVzIHN1cHBvcnRlZCI6IlNpbmdsZSBmaWxlIG9ubHkiLHRoaXMubWF4U2l6ZT4wP2BNYXggJHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMubWF4U2l6ZSl9YDoiTm8gc2l6ZSBsaW1pdCJdO3JldHVybiBqJiZHLnB1c2goYEFjY2VwdHMgJHtqfWApLHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsCiAgICAgICAgICAubGFiZWw9JHt0aGlzLmxhYmVsfQogICAgICAgICAgLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy10aWxlCiAgICAgICAgICBjbGFzcz0iJHt0aGlzLnN0YXRlPT09ImRyYWdPdmVyIj8iZHJhZ292ZXIiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlRHJvcHpvbmVDbGlja30KICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVEcm9wem9uZUtleWRvd259CiAgICAgICAgICB0YWJpbmRleD0ke3RoaXMuZGlzYWJsZWQ/LTE6MH0KICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgYXJpYS1sYWJlbD0ke2BTZWxlY3QgZmlsZXMke2o/YCAoJHtqfSlgOiIifWB9CiAgICAgICAgPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIGNsYXNzPSJmaWxlLWlucHV0IgogICAgICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBvcGFjaXR5OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHRvcDogMDsgbGVmdDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsiCiAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9CiAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0fHwiIn0KICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZUlucHV0Q2hhbmdlfQogICAgICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJkcm9wem9uZS1oZWFkZXIiPgogICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nP3dgPHNwYW4gY2xhc3M9ImRyb3B6b25lLWxvYWRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj5gOndgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VXBsb2FkIj48L2RlZXMtaWNvbj5gfQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcHpvbmUtdGl0bGUiPkRyb3AgZmlsZXMgaGVyZSBvcjwvc3Bhbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgICBjbGFzcz0iZHJvcHpvbmUtYnJvd3NlIgogICAgICAgICAgICAgIEBjbGljaz0ke2hlPT57aGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9fQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgID5icm93c2U8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnJlbmRlckZpbGVMaXN0KCl9CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImRyb3B6b25lLWZvb3RlciI+CiAgICAgICAgICAgICR7Ry5tYXAoaGU9PndgPHNwYW4gY2xhc3M9Im1ldGEtY2hpcCI+JHtoZX08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2U/d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiIGFyaWEtbGl2ZT0icG9saXRlIj4ke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2V9PC9kaXY+YDp3YGB9CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlTGlzdCgpe3JldHVybiB0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QtZW1wdHkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVN0YWNrIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIGZpbGVzIHNlbGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0LWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMudmFsdWUubGVuZ3RofSBmaWxlJHt0aGlzLnZhbHVlLmxlbmd0aD09PTE/IiI6InMifSBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZmlsZS1saXN0LWNsZWFyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsZWFyQWxsfT5DbGVhciAke3RoaXMudmFsdWUubGVuZ3RoPjE/ImFsbCI6IiJ9PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChqPT50aGlzLnJlbmRlckZpbGVSb3coaikpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZVJvdyhqKXtsZXQgRz10aGlzLmdldEZpbGVUeXBlKGopLGhlPXRoaXMuY2FuU2hvd1ByZXZpZXcoaik/dGhpcy5nZXRQcmV2aWV3VXJsKGopOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtcm93ICR7R30tZmlsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS10aHVtYiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgJHtoZT93YDxpbWcgY2xhc3M9InRodW1iLWltYWdlIiBzcmM9JHtoZX0gYWx0PSR7YFByZXZpZXcgb2YgJHtqLm5hbWV9YH0+YDp3YDxkZWVzLWljb24gaWNvbj0ke3RoaXMuZ2V0RmlsZUljb24oail9PjwvZGVlcy1pY29uPmB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1tZXRhIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSIgdGl0bGU9JHtqLm5hbWV9PiR7ai5uYW1lfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1kZXRhaWxzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKGouc2l6ZSl9PC9zcGFuPgogICAgICAgICAgICAke0chPT0iZmlsZSI/d2A8c3BhbiBjbGFzcz0iZmlsZS10eXBlIj4ke0d9PC9zcGFuPmA6d2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1hY3Rpb25zIj4KICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlRmlsZShqKX0KICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2BSZW1vdmUgJHtqLm5hbWV9YH0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6WCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUZpbGVJbnB1dENoYW5nZT1zKGFzeW5jIGo9Pnt0aGlzLmlzTG9hZGluZz0hMTtsZXQgRz1qLnRhcmdldCxoZT1BcnJheS5mcm9tKEcuZmlsZXM/P1tdKTtoZS5sZW5ndGg+MCYmYXdhaXQgdGhpcy5hZGRGaWxlcyhoZSksRy52YWx1ZT0iIn0sImhhbmRsZUZpbGVJbnB1dENoYW5nZSIpO2hhbmRsZURyb3B6b25lQ2xpY2s9cyhqPT57dGhpcy5kaXNhYmxlZHx8ai50YXJnZXQuY2xvc2VzdCgiLmZpbGUtbGlzdCwgLmRyb3B6b25lLWhlYWRlciwgLmRyb3B6b25lLWZvb3RlciIpfHx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKX0sImhhbmRsZURyb3B6b25lQ2xpY2siKTtoYW5kbGVEcm9wem9uZUtleWRvd249cyhqPT57dGhpcy5kaXNhYmxlZHx8KGoua2V5PT09IkVudGVyInx8ai5rZXk9PT0iICIpJiYoai5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpKX0sImhhbmRsZURyb3B6b25lS2V5ZG93biIpO2hhbmRsZUNsZWFyQWxsPXMoaj0+e2oucHJldmVudERlZmF1bHQoKSx0aGlzLmNsZWFyQWxsKCl9LCJoYW5kbGVDbGVhckFsbCIpO2hhbmRsZURyYWdFdmVudD1zKGFzeW5jIGo9PntpZihqLnByZXZlbnREZWZhdWx0KCksai5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCl7aWYoai50eXBlPT09ImRyYWdlbnRlciJ8fGoudHlwZT09PSJkcmFnb3ZlciIpe2ouZGF0YVRyYW5zZmVyJiYoai5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0iY29weSIpLHRoaXMuc3RhdGU9ImRyYWdPdmVyIjtyZXR1cm59aWYoai50eXBlPT09ImRyYWdsZWF2ZSIpe2lmKCF0aGlzLmRyb3BBcmVhKXt0aGlzLnN0YXRlPSJpZGxlIjtyZXR1cm59bGV0IEc9dGhpcy5kcm9wQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7Y2xpZW50WDpoZT0wLGNsaWVudFk6Uj0wfT1qOyhoZTw9Ry5sZWZ0fHxoZT49Ry5yaWdodHx8Ujw9Ry50b3B8fFI+PUcuYm90dG9tKSYmKHRoaXMuc3RhdGU9ImlkbGUiKTtyZXR1cm59aWYoai50eXBlPT09ImRyb3AiKXt0aGlzLnN0YXRlPSJpZGxlIjtsZXQgRz1BcnJheS5mcm9tKGouZGF0YVRyYW5zZmVyPy5maWxlcz8/W10pO0cubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoRyl9fX0sImhhbmRsZURyYWdFdmVudCIpO2F0dGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goaj0+e3RoaXMuZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcihqLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfWRldGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goaj0+e3RoaXMuZHJvcEFyZWEucmVtb3ZlRXZlbnRMaXN0ZW5lcihqLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfXJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKXtsZXQgaj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtdGlsZSIpO2ohPT10aGlzLmRyb3BBcmVhJiYodGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy5kcm9wQXJlYT1qLHRoaXMuYXR0YWNoRHJvcExpc3RlbmVycygpKX1mb3JtYXRGaWxlU2l6ZShqKXtsZXQgRz1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl07aWYoaj09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBoZT1NYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKGopL01hdGgubG9nKDEwMjQpKSxHLmxlbmd0aC0xKSxSPWovTWF0aC5wb3coMTAyNCxoZSk7cmV0dXJuYCR7TWF0aC5yb3VuZChSKjEwMCkvMTAwfSAke0dbaGVdfWB9Z2V0RmlsZVR5cGUoail7bGV0IEc9ai50eXBlLnRvTG93ZXJDYXNlKCk7cmV0dXJuIEcuc3RhcnRzV2l0aCgiaW1hZ2UvIik/ImltYWdlIjpHPT09ImFwcGxpY2F0aW9uL3BkZiI/InBkZiI6Ry5pbmNsdWRlcygid29yZCIpfHxHLmluY2x1ZGVzKCJkb2N1bWVudCIpPyJkb2MiOkcuaW5jbHVkZXMoInNoZWV0Iil8fEcuaW5jbHVkZXMoImV4Y2VsIik/InNwcmVhZHNoZWV0IjpHLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKXx8Ry5pbmNsdWRlcygicG93ZXJwb2ludCIpPyJwcmVzZW50YXRpb24iOkcuc3RhcnRzV2l0aCgidmlkZW8vIik/InZpZGVvIjpHLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJhdWRpbyI6Ry5pbmNsdWRlcygiemlwIil8fEcuaW5jbHVkZXMoImNvbXByZXNzZWQiKT8iYXJjaGl2ZSI6ImZpbGUifWdldEZpbGVJY29uKGope2xldCBHPXRoaXMuZ2V0RmlsZVR5cGUoaik7cmV0dXJue2ltYWdlOiJsdWNpZGU6RmlsZUltYWdlIixwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsZG9jOiJsdWNpZGU6RmlsZVRleHQiLHNwcmVhZHNoZWV0OiJsdWNpZGU6RmlsZVNwcmVhZHNoZWV0IixwcmVzZW50YXRpb246Imx1Y2lkZTpGaWxlQmFyQ2hhcnQiLHZpZGVvOiJsdWNpZGU6RmlsZVZpZGVvIixhdWRpbzoibHVjaWRlOkZpbGVBdWRpbyIsYXJjaGl2ZToibHVjaWRlOkZpbGVBcmNoaXZlIixmaWxlOiJsdWNpZGU6RmlsZSJ9W0ddPz8ibHVjaWRlOkZpbGUifWNhblNob3dQcmV2aWV3KGope3JldHVybiBqLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikmJmouc2l6ZTw1KjEwMjQqMTAyNH12YWxpZGF0ZUZpbGUoail7aWYodGhpcy5tYXhTaXplPjAmJmouc2l6ZT50aGlzLm1heFNpemUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgIiR7ai5uYW1lfSIgZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExO2lmKHRoaXMuYWNjZXB0KXtsZXQgRz10aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChoZT0+aGUudHJpbSgpKS5maWx0ZXIoaGU9PmhlLmxlbmd0aD4wKTtpZihHLmxlbmd0aD4wKXtsZXQgaGU9ITE7Zm9yKGxldCBSIG9mIEcpaWYoUi5zdGFydHNXaXRoKCIuIikpe2lmKGoubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKFIudG9Mb3dlckNhc2UoKSkpe2hlPSEwO2JyZWFrfX1lbHNlIGlmKFIuZW5kc1dpdGgoIi8qIikpe2xldCBVPVIuc2xpY2UoMCwtMik7aWYoai50eXBlLnN0YXJ0c1dpdGgoVSkpe2hlPSEwO2JyZWFrfX1lbHNlIGlmKGoudHlwZT09PVIpe2hlPSEwO2JyZWFrfWlmKCFoZSlyZXR1cm4gdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gRmlsZSB0eXBlIG5vdCBhY2NlcHRlZC4gQWxsb3dlZDogJHtHLmpvaW4oIiwgIil9YCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITF9fXJldHVybiEwfWdldFByZXZpZXdVcmwoail7bGV0IEc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChqKTtyZXR1cm4gR3x8KEc9VVJMLmNyZWF0ZU9iamVjdFVSTChqKSx0aGlzLnByZXZpZXdVcmxNYXAuc2V0KGosRykpLEd9cmVsZWFzZVByZXZpZXcoail7bGV0IEc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChqKTtHJiYoVVJMLnJldm9rZU9iamVjdFVSTChHKSx0aGlzLnByZXZpZXdVcmxNYXAuZGVsZXRlKGopKX1nZXRBY2NlcHRlZFN1bW1hcnkoKXtpZighdGhpcy5hY2NlcHQpcmV0dXJuIG51bGw7bGV0IGo9QXJyYXkuZnJvbShuZXcgU2V0KHRoaXMuYWNjZXB0LnNwbGl0KCIsIikubWFwKEc9PkcudHJpbSgpKS5maWx0ZXIoRz0+Ry5sZW5ndGg+MCkubWFwKEc9PnRoaXMuZm9ybWF0QWNjZXB0VG9rZW4oRykpKSkuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBqLmxlbmd0aD09PTA/bnVsbDpqLmxlbmd0aD09PTE/alswXTpqLmxlbmd0aD09PTI/YCR7alswXX0sICR7alsxXX1gOmAke2ouc2xpY2UoMCwyKS5qb2luKCIsICIpfVx1MjAyNmB9Zm9ybWF0QWNjZXB0VG9rZW4oail7aWYoaj09PSIqLyoiKXJldHVybiJBbGwgZmlsZXMiO2lmKGouZW5kc1dpdGgoIi8qIikpe2xldCBSPWouc3BsaXQoIi8iKVswXTtyZXR1cm4gUj9gJHtSLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7Ui5zbGljZSgxKX0gZmlsZXNgOiJBbGwgZmlsZXMifXJldHVybiBqLnN0YXJ0c1dpdGgoIi4iKT9qLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCk6ai5pbmNsdWRlcygicGRmIik/IlBERiI6ai5pbmNsdWRlcygiemlwIik/IlpJUCI6ai5pbmNsdWRlcygianNvbiIpPyJKU09OIjpqLmluY2x1ZGVzKCJtc3dvcmQiKT8iRE9DIjpqLmluY2x1ZGVzKCJ3b3JkcHJvY2Vzc2luZ21sIik/IkRPQ1giOmouaW5jbHVkZXMoImV4Y2VsIik/IlhMUyI6ai5pbmNsdWRlcygicHJlc2VudGF0aW9uIik/IlBQVCI6KGouc3BsaXQoIi8iKS5wb3AoKT8/aikudG9VcHBlckNhc2UoKX1hdHRhY2hMaWZlY3ljbGVMaXN0ZW5lcnMoKXt0aGlzLnJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKX1maXJzdFVwZGF0ZWQoail7c3VwZXIuZmlyc3RVcGRhdGVkKGopLHRoaXMuYXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl9dXBkYXRlZChqKXtzdXBlci51cGRhdGVkKGopLGouaGFzKCJ2YWx1ZSIpJiZ0aGlzLnZhbGlkYXRlKCksdGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmRldGFjaERyb3BMaXN0ZW5lcnMoKSx0aGlzLnZhbHVlLmZvckVhY2goaj0+dGhpcy5yZWxlYXNlUHJldmlldyhqKSksdGhpcy5wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgb3BlbkZpbGVTZWxlY3Rvcigpe2lmKHRoaXMuZGlzYWJsZWR8fHRoaXMuaXNMb2FkaW5nKXJldHVybjt0aGlzLmlzTG9hZGluZz0hMDtsZXQgaj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLWlucHV0Iik7aWYoIWope3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1sZXQgRz1zKCgpPT57c2V0VGltZW91dCgoKT0+eyghai5maWxlc3x8ai5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEcpfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEcpLGouY2xpY2soKX1yZW1vdmVGaWxlKGope2xldCBHPXRoaXMudmFsdWUuaW5kZXhPZihqKTtHPi0xJiYodGhpcy5yZWxlYXNlUHJldmlldyhqKSx0aGlzLnZhbHVlLnNwbGljZShHLDEpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWNsZWFyQWxsKCl7bGV0IGo9Wy4uLnRoaXMudmFsdWVdO3RoaXMudmFsdWU9W10sai5mb3JFYWNoKEc9PnRoaXMucmVsZWFzZVByZXZpZXcoRykpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHVwZGF0ZVZhbHVlKGope2xldCBHPWoudGFyZ2V0O3RoaXMudmFsdWU9QXJyYXkuZnJvbShHLmZpbGVzPz9bXSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9c2V0VmFsdWUoail7dGhpcy52YWx1ZS5mb3JFYWNoKEc9PnRoaXMucmVsZWFzZVByZXZpZXcoRykpLHRoaXMudmFsdWU9aixqLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMiLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1hc3luYyBhZGRGaWxlcyhqKXtsZXQgRz1bXTtmb3IobGV0IGhlIG9mIGopdGhpcy52YWxpZGF0ZUZpbGUoaGUpJiZHLnB1c2goaGUpO2lmKEcubGVuZ3RoPT09MCl7dGhpcy5pc0xvYWRpbmc9ITE7cmV0dXJufWlmKHRoaXMubWF4RmlsZXM+MCYmdGhpcy52YWx1ZS5sZW5ndGgrRy5sZW5ndGg+dGhpcy5tYXhGaWxlcyl7bGV0IFI9dGhpcy5tYXhGaWxlcy10aGlzLnZhbHVlLmxlbmd0aDtpZihSPD0wKXt0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBNYXhpbXVtICR7dGhpcy5tYXhGaWxlc30gZmlsZXMgYWxsb3dlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMuaXNMb2FkaW5nPSExO3JldHVybn1HLnNwbGljZShSKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBPbmx5ICR7Un0gbW9yZSBmaWxlKHMpIGNhbiBiZSBhZGRlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9Indhcm4ifSF0aGlzLm11bHRpcGxlJiZHLmxlbmd0aD4wPyh0aGlzLnZhbHVlLmZvckVhY2goaGU9PnRoaXMucmVsZWFzZVByZXZpZXcoaGUpKSx0aGlzLnZhbHVlPVtHWzBdXSk6dGhpcy52YWx1ZS5wdXNoKC4uLkcpLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IiIsdGhpcy52YWxpZGF0aW9uU3RhdGU9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksYXdhaXQgdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuaXNMb2FkaW5nPSExLHRoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy5idXR0b25UZXh0PXRoaXMubXVsdGlwbGU/IkFkZCBtb3JlIGZpbGVzIjoiUmVwbGFjZSBmaWxlIjp0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyJ9YXN5bmMgdmFsaWRhdGUoKXtpZih0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMucmVxdWlyZWQmJnRoaXMudmFsdWUubGVuZ3RoPT09MClyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IlBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIGZpbGUiLCExO2ZvcihsZXQgaiBvZiB0aGlzLnZhbHVlKWlmKCF0aGlzLnZhbGlkYXRlRmlsZShqKSlyZXR1cm4hMTtyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9dGhpcy52YWx1ZS5sZW5ndGg+MD8idmFsaWQiOm51bGwsITB9c3RhdGlje05zKHIsdCl9fTtyZXR1cm4gVz1yfSkoKX0pO3ZhciBSWWU9ZigoKT0+e05ZZSgpfSk7ZnVuY3Rpb24gcGFlKGEsZT17YWxsb3dRUklCQU46ITB9KXtpZihhPT1udWxsKXJldHVybiExO2xldCB0PW5ldyBSZWdFeHAoIl5bMC05XXsyfSQiLCIiKSxyPWEuc2xpY2UoMCwyKSxpPUVuW3JdO3JldHVybiBpPT09dm9pZCAwfHxpLmJiYW5fcmVnZXhwPT09dm9pZCAwfHxpLmJiYW5fcmVnZXhwPT09bnVsbHx8aS5jaGFycz09PXZvaWQgMD8hMTppLmNoYXJzPT09YS5sZW5ndGgmJnQudGVzdChhLnNsaWNlKDIsNCkpJiZFJGEoYS5zbGljZSg0KSxyKSYmQnNhKGEpJiYoZS5hbGxvd1FSSUJBTnx8IUZzYShhKSl9ZnVuY3Rpb24gUVJpKGEsZT17YWxsb3dRUklCQU46ITB9KXtsZXQgdD17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07aWYoYSE9bnVsbCYmYSE9PSIiKXtsZXQgcj1FblthLnNsaWNlKDAsMildO2lmKCFyfHwhKHIuYmJhbl9yZWdleHB8fHIuY2hhcnMpKXJldHVybiB0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKEUxLk5vSUJBTkNvdW50cnkpLHQ7ciYmci5jaGFycyYmci5jaGFycyE9PWEubGVuZ3RoJiYodC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChFMS5Xcm9uZ0JCQU5MZW5ndGgpKSxyJiZyLmJiYW5fcmVnZXhwJiYhT1llKGEuc2xpY2UoNCksci5iYmFuX3JlZ2V4cCkmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKEUxLldyb25nQkJBTkZvcm1hdCkpLHImJnIuYmJhbl92YWxpZGF0aW9uX2Z1bmMmJiFyLmJiYW5fdmFsaWRhdGlvbl9mdW5jKGEuc2xpY2UoNCkpJiYodC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChFMS5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0pKSxuZXcgUmVnRXhwKCJeWzAtOV17Mn0kIiwiIikudGVzdChhLnNsaWNlKDIsNCkpfHwodC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChFMS5DaGVja3N1bU5vdE51bWJlcikpLCh0LmVycm9yQ29kZXMuaW5kZXhPZihFMS5Xcm9uZ0JCQU5Gb3JtYXQpIT09LTF8fCFCc2EoYSkpJiYodC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChFMS5Xcm9uZ0lCQU5DaGVja3N1bSkpLCFlLmFsbG93UVJJQkFOJiZGc2EoYSkmJih0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKEUxLlFSSUJBTk5vdEFsbG93ZWQpKX1lbHNlIHQudmFsaWQ9ITEsdC5lcnJvckNvZGVzLnB1c2goRTEuTm9JQkFOUHJvdmlkZWQpO3JldHVybiB0fWZ1bmN0aW9uIEUkYShhLGUpe2lmKGE9PW51bGx8fGU9PT12b2lkIDB8fGU9PT1udWxsKXJldHVybiExO2xldCB0PUVuW2VdO3JldHVybiB0PT1udWxsfHx0LmJiYW5fcmVnZXhwPT09dm9pZCAwfHx0LmJiYW5fcmVnZXhwPT09bnVsbHx8dC5jaGFycz09PXZvaWQgMHx8dC5jaGFycz09PW51bGw/ITE6dC5jaGFycy00PT09YS5sZW5ndGgmJk9ZZShhLHQuYmJhbl9yZWdleHApP3QuYmJhbl92YWxpZGF0aW9uX2Z1bmM/dC5iYmFuX3ZhbGlkYXRpb25fZnVuYyhhLnJlcGxhY2UoL1tccy5dKy9nLCIiKSk6ITA6ITF9ZnVuY3Rpb24gSlJpKGEpe2lmKGEhPW51bGwpe2xldCBlPUVuW2FdO2lmKGUhPT12b2lkIDApcmV0dXJuIGUuU0VQQT9lLlNFUEE6ITF9cmV0dXJuITF9ZnVuY3Rpb24gRnNhKGEpe2lmKGE9PW51bGwpcmV0dXJuITE7bGV0IGU9YS5zbGljZSgwLDIpO3JldHVyblsiTEkiLCJDSCJdLmluY2x1ZGVzKGUpP25ldyBSZWdFeHAoIl4zWzAtMV17MX1bMC05XXszfSQiLCIiKS50ZXN0KGEuc2xpY2UoNCw5KSk6ITF9ZnVuY3Rpb24gZU9pKGEpe2xldCBlPUZZZShhLmJiYW4pfHwiIjtpZihhLmNvdW50cnlDb2RlPT09bnVsbHx8YS5jb3VudHJ5Q29kZT09PXZvaWQgMClyZXR1cm4gbnVsbDtsZXQgdD1FblthLmNvdW50cnlDb2RlXTtpZihlIT09IiImJnQhPT12b2lkIDAmJnQuY2hhcnMmJnQuY2hhcnMhPT1udWxsJiZ0LmNoYXJzPT09ZS5sZW5ndGgrNCYmdC5iYmFuX3JlZ2V4cCYmdC5iYmFuX3JlZ2V4cCE9PW51bGwmJk9ZZShlLHQuYmJhbl9yZWdleHApKXtsZXQgcj1JJGEoYS5jb3VudHJ5Q29kZSsiMDAiK2UpO3JldHVybiBhLmNvdW50cnlDb2RlKygiMCIrKDk4LXIpKS5zbGljZSgtMikrZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB0T2koYSl7bGV0IGU9e30sdD1GWWUoYSk7aWYoZS5pYmFuPXR8fGEsdCYmcGFlKHQpKXtlLmJiYW49dC5zbGljZSg0KSxlLmNvdW50cnlDb2RlPXQuc2xpY2UoMCwyKSxlLnZhbGlkPSEwO2xldCByPUVuW2UuY291bnRyeUNvZGVdO2lmKHIuYWNjb3VudF9pbmRlbnRpZmllcil7bGV0IGk9ci5hY2NvdW50X2luZGVudGlmaWVyLnNwbGl0KCItIiksbz1wYXJzZUludChpWzBdKSxuPXBhcnNlSW50KGlbMV0pO2UuYWNjb3VudE51bWJlcj1lLmliYW4uc2xpY2UobyxuKzEpfWlmKHIuYmFua19pZGVudGlmaWVyKXtsZXQgaT1yLmJhbmtfaWRlbnRpZmllci5zcGxpdCgiLSIpLG89cGFyc2VJbnQoaVswXSksbj1wYXJzZUludChpWzFdKTtlLmJhbmtJZGVudGlmaWVyPWUuYmJhbi5zbGljZShvLG4rMSl9aWYoci5icmFuY2hfaW5kZW50aWZpZXIpe2xldCBpPXIuYnJhbmNoX2luZGVudGlmaWVyLnNwbGl0KCItIiksbz1wYXJzZUludChpWzBdKSxuPXBhcnNlSW50KGlbMV0pO2UuYnJhbmNoSWRlbnRpZmllcj1lLmJiYW4uc2xpY2UobyxuKzEpfX1lbHNlIGUudmFsaWQ9ITE7cmV0dXJuIGV9ZnVuY3Rpb24gT1llKGEsZSl7cmV0dXJuIG5ldyBSZWdFeHAoZSwiIikudGVzdChhKX1mdW5jdGlvbiBGWWUoYSl7cmV0dXJuIHR5cGVvZiBhIT0ic3RyaW5nIj9udWxsOmEucmVwbGFjZSgvWy1cIF0vZywiIikudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBCWWUoYSxlKXtpZih0eXBlb2YgYSE9InN0cmluZyIpcmV0dXJuIG51bGw7ZT09bnVsbCYmKGU9IiAiKTtsZXQgdD1GWWUoYSk7cmV0dXJuIHQ9PT1udWxsP251bGw6dC5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrZSl9ZnVuY3Rpb24gQnNhKGEpe2xldCBlPWEuc2xpY2UoMCwyKSx0PXBhcnNlSW50KGEuc2xpY2UoMiw0KSwxMCkscj1hLnNsaWNlKDQpLGk9SHNhKGAke3J9JHtlfTAwYCk7cmV0dXJuIDk4LXVhZShpKT09PXR9ZnVuY3Rpb24gSHNhKGEpe3JldHVybiBhLnNwbGl0KCIiKS5tYXAoZT0+e2xldCB0PWUuY2hhckNvZGVBdCgwKTtyZXR1cm4gdD49NjU/KHQtNTUpLnRvU3RyaW5nKCk6ZX0pLmpvaW4oIiIpfWZ1bmN0aW9uIEkkYShhKXtyZXR1cm4gdWFlKEhzYShhLnNsaWNlKDQpK2Euc2xpY2UoMCw0KSkpfWZ1bmN0aW9uIGFPaSgpe2xldCBhPXt9O2ZvcihsZXQgZSBpbiBFbil7bGV0IHQ9RW5bZV07YVtlXT17Y2hhcnM6dC5jaGFyc3x8bnVsbCxiYmFuX3JlZ2V4cDp0LmJiYW5fcmVnZXhwfHxudWxsLElCQU5SZWdpc3RyeTp0LklCQU5SZWdpc3RyeXx8ITEsU0VQQTp0LlNFUEF8fCExfX1yZXR1cm4gYX1mdW5jdGlvbiBOJGEoYSl7aWYoIWEpcmV0dXJuITE7bGV0IGU9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKSx0PUVuW2EudG9VcHBlckNhc2UoKS5zbGljZSg0LDYpXTtyZXR1cm4gZS50ZXN0KGEpJiZ0IT09dm9pZCAwfWZ1bmN0aW9uIHJPaShhKXtsZXQgZT17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07cmV0dXJuIGEhPW51bGwmJmEhPT0iIj9FblthLnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV09PT12b2lkIDA/KGUudmFsaWQ9ITEsZS5lcnJvckNvZGVzLnB1c2goQVUuTm9CSUNDb3VudHJ5KSk6bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKS50ZXN0KGEpfHwoZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaChBVS5Xcm9uZ0JJQ0Zvcm1hdCkpOihlLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKEFVLk5vQklDUHJvdmlkZWQpKSxlfWZ1bmN0aW9uIHNPaShhKXtsZXQgZT17fSx0PWEudG9VcHBlckNhc2UoKTtyZXR1cm4gTiRhKHQpPyhlLmJhbmtDb2RlPXQuc2xpY2UoMCw0KSxlLmNvdW50cnlDb2RlPXQuc2xpY2UoNCw2KSxlLmxvY2F0aW9uQ29kZT10LnNsaWNlKDYsOCksZS50ZXN0QklDPWUubG9jYXRpb25Db2RlWzFdPT09IjAiLGUuYnJhbmNoQ29kZT10Lmxlbmd0aD44P3Quc2xpY2UoOCk6bnVsbCxlLnZhbGlkPSEwKTplLnZhbGlkPSExLGV9dmFyIEUxLEFVLFIkYSxPJGEsdWFlLG5tLEYkYSxCJGEscXNhLEgkYSxWc2EscSRhLGpzYSxWJGEsaU9pLEVuLFVzYT1mKCgpPT57InVzZSBzdHJpY3QiO3MocGFlLCJpc1ZhbGlkSUJBTiIpOyhmdW5jdGlvbihhKXthW2EuTm9JQkFOUHJvdmlkZWQ9MF09Ik5vSUJBTlByb3ZpZGVkIixhW2EuTm9JQkFOQ291bnRyeT0xXT0iTm9JQkFOQ291bnRyeSIsYVthLldyb25nQkJBTkxlbmd0aD0yXT0iV3JvbmdCQkFOTGVuZ3RoIixhW2EuV3JvbmdCQkFORm9ybWF0PTNdPSJXcm9uZ0JCQU5Gb3JtYXQiLGFbYS5DaGVja3N1bU5vdE51bWJlcj00XT0iQ2hlY2tzdW1Ob3ROdW1iZXIiLGFbYS5Xcm9uZ0lCQU5DaGVja3N1bT01XT0iV3JvbmdJQkFOQ2hlY2tzdW0iLGFbYS5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW09Nl09Ildyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSIsYVthLlFSSUJBTk5vdEFsbG93ZWQ9N109IlFSSUJBTk5vdEFsbG93ZWQifSkoRTF8fChFMT17fSkpO3MoUVJpLCJ2YWxpZGF0ZUlCQU4iKTtzKEUkYSwiaXNWYWxpZEJCQU4iKTtzKEpSaSwiaXNTRVBBQ291bnRyeSIpO3MoRnNhLCJpc1FSSUJBTiIpO3MoZU9pLCJjb21wb3NlSUJBTiIpO3ModE9pLCJleHRyYWN0SUJBTiIpO3MoT1llLCJjaGVja0Zvcm1hdEJCQU4iKTtzKEZZZSwiZWxlY3Ryb25pY0Zvcm1hdElCQU4iKTtzKEJZZSwiZnJpZW5kbHlGb3JtYXRJQkFOIik7cyhCc2EsImlzVmFsaWRJQkFOQ2hlY2tzdW0iKTtzKEhzYSwicmVwbGFjZUNoYXJhdGVyV2l0aENvZGUiKTtzKEkkYSwibW9kOTcxMEliYW4iKTtzKGFPaSwiZ2V0Q291bnRyeVNwZWNpZmljYXRpb25zIik7cyhOJGEsImlzVmFsaWRCSUMiKTsoZnVuY3Rpb24oYSl7YVthLk5vQklDUHJvdmlkZWQ9MF09Ik5vQklDUHJvdmlkZWQiLGFbYS5Ob0JJQ0NvdW50cnk9MV09Ik5vQklDQ291bnRyeSIsYVthLldyb25nQklDRm9ybWF0PTJdPSJXcm9uZ0JJQ0Zvcm1hdCJ9KShBVXx8KEFVPXt9KSk7cyhyT2ksInZhbGlkYXRlQklDIik7cyhzT2ksImV4dHJhY3RCSUMiKTtSJGE9cyhhPT57bGV0IGU9WzUsNCwzLDIsNyw2LDUsNCwzLDJdLHQ9YS5yZXBsYWNlKC9bXHMuXSsvZywiIikscj1wYXJzZUludCh0LmNoYXJBdCgxMCksMTApLGk9dC5zdWJzdHJpbmcoMCwxMCksbz0wO2ZvcihsZXQgbD0wO2w8MTA7bCsrKW8rPXBhcnNlSW50KGkuY2hhckF0KGwpLDEwKSplW2xdO2xldCBuPW8lMTE7cmV0dXJuIHI9PT0obj09PTA/MDoxMS1uKX0sImNoZWNrTm9yd2F5QkJBTiIpLE8kYT1zKGE9PntsZXQgZT1hLnJlcGxhY2UoL1tccy5dKy9nLCIiKSx0PXBhcnNlSW50KGUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMiksMTApLHI9cGFyc2VJbnQoZS5zdWJzdHJpbmcoZS5sZW5ndGgtMixlLmxlbmd0aCksMTApO3JldHVybih0JTk3PT09MD85Nzp0JTk3KT09PXJ9LCJjaGVja0JlbGdpYW5CQkFOIiksdWFlPXMoYT0+e2Zvcig7YS5sZW5ndGg+Mjspe2xldCBlPWEuc2xpY2UoMCw2KSx0PXBhcnNlSW50KGUsMTApO2lmKGlzTmFOKHQpKXJldHVybiBOYU47YT10JTk3K2Euc2xpY2UoZS5sZW5ndGgpfXJldHVybiBwYXJzZUludChhLDEwKSU5N30sIm1vZDk3MTAiKSxubT1zKGE9PntsZXQgZT1hLnJlcGxhY2UoL1tccy5dKy9nLCIiKTtyZXR1cm4gdWFlKGUpPT09MX0sImNoZWNrTW9kOTcxMEJCQU4iKSxGJGE9cyhhPT57bGV0IGU9WzMsOSw3LDEsMyw5LDddLHQ9cGFyc2VJbnQoYS5jaGFyQXQoNyksMTApLHI9YS5zdWJzdHJpbmcoMCw3KSxpPTA7Zm9yKGxldCBuPTA7bjw3O24rKylpKz1wYXJzZUludChyLmNoYXJBdChuKSwxMCkqZVtuXTtsZXQgbz1pJTEwO3JldHVybiB0PT09KG89PT0wPzA6MTAtbyl9LCJjaGVja1BvbGFuZEJCQU4iKSxCJGE9cyhhPT57bGV0IGU9WzQsOCw1LDEwLDksNywzLDZdLHQ9WzEsMiw0LDgsNSwxMCw5LDcsMyw2XSxyPXBhcnNlSW50KGEuY2hhckF0KDgpLDEwKSxpPXBhcnNlSW50KGEuY2hhckF0KDkpLDEwKSxvPWEuc3Vic3RyaW5nKDAsOCksbj1hLnN1YnN0cmluZygxMCwyMCksbD0wO2ZvcihsZXQgYz0wO2M8ODtjKyspbCs9cGFyc2VJbnQoby5jaGFyQXQoYyksMTApKmVbY107bGV0IGQ9bCUxMTtpZihyIT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKSlyZXR1cm4hMTtsPTA7Zm9yKGxldCBjPTA7YzwxMDtjKyspbCs9cGFyc2VJbnQobi5jaGFyQXQoYyksMTApKnRbY107cmV0dXJuIGQ9bCUxMSxpPT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKX0sImNoZWNrU3BhaW5CQkFOIikscXNhPXMoKGEsZSk9PntsZXQgdD0xMDtmb3IobGV0IHI9MDtyPGEubGVuZ3RoO3IrKyl0Kz1wYXJzZUludChhLmNoYXJBdChyKSwxMCksdCUxMCE9PTAmJih0PXQlMTApLHQ9dCoyLHQ9dCUxMTtyZXR1cm4gZT09PSgxMS10PT09MTA/MDoxMS10KX0sImNoZWNrTW9kMTExMCIpLEgkYT1zKGE9PntsZXQgZT1wYXJzZUludChhLmNoYXJBdCg2KSwxMCksdD1wYXJzZUludChhLmNoYXJBdCgxNiksMTApLHI9YS5zdWJzdHJpbmcoMCw2KSxpPWEuc3Vic3RyaW5nKDcsMTYpO3JldHVybiBxc2EocixlKSYmcXNhKGksdCl9LCJjaGVja0Nyb2F0aWFuQkJBTiIpLFZzYT1zKGE9PntsZXQgZT1bMTAsNSw4LDQsMiwxXSx0PVs2LDMsNyw5LDEwLDUsOCw0LDIsMV0scj1wYXJzZUludChhLmNoYXJBdCg5KSwxMCksaT1wYXJzZUludChhLmNoYXJBdCgxOSksMTApLG89YS5zdWJzdHJpbmcoNCw5KSxuPWEuc3Vic3RyaW5nKDEwLDE5KSxsPTA7Zm9yKGxldCBjPTA7YzxvLmxlbmd0aDtjKyspbCs9cGFyc2VJbnQoby5jaGFyQXQoYyksMTApKmVbY107bGV0IGQ9bCUxMTtpZihyIT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKSlyZXR1cm4hMTtsPTA7Zm9yKGxldCBjPTA7YzxuLmxlbmd0aDtjKyspbCs9cGFyc2VJbnQobi5jaGFyQXQoYyksMTApKnRbY107cmV0dXJuIGQ9bCUxMSxpPT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKX0sImNoZWNrQ3plY2hBbmRTbG92YWtCQkFOIikscSRhPXMoYT0+e2xldCBlPVs3LDEsMyw3LDEsMyw3LDEsMyw3LDEsMyw3XSx0PXBhcnNlSW50KGEuY2hhckF0KDE1KSwxMCkscj1hLnN1YnN0cmluZygyLDE1KSxpPTA7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspaSs9cGFyc2VJbnQoci5jaGFyQXQobiksMTApKmVbbl07bGV0IG89aSUxMDtyZXR1cm4gdD09PShvPT09MD8wOjEwLW8pfSwiY2hlY2tFc3RvbmlhbkJCQU4iKSxqc2E9cyhhPT57bGV0IGU9YS5yZXBsYWNlKC9bXHMuXSsvZywiIiksdD1BcnJheS5mcm9tKGUpO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtsZXQgbz10W2ldLmNoYXJDb2RlQXQoMCk7aWYobz49NjUpc3dpdGNoKG8pe2Nhc2UgNjU6Y2FzZSA3NDp0W2ldPSIxIjticmVhaztjYXNlIDY2OmNhc2UgNzU6Y2FzZSA4Mzp0W2ldPSIyIjticmVhaztjYXNlIDY3OmNhc2UgNzY6Y2FzZSA4NDp0W2ldPSIzIjticmVhaztjYXNlIDY4OmNhc2UgNzc6Y2FzZSA4NTp0W2ldPSI0IjticmVhaztjYXNlIDY5OmNhc2UgNzg6Y2FzZSA4Njp0W2ldPSI1IjticmVhaztjYXNlIDcwOmNhc2UgNzk6Y2FzZSA4Nzp0W2ldPSI2IjticmVhaztjYXNlIDcxOmNhc2UgODA6Y2FzZSA4ODp0W2ldPSI3IjticmVhaztjYXNlIDcyOmNhc2UgODE6Y2FzZSA4OTp0W2ldPSI4IjticmVhaztjYXNlIDczOmNhc2UgODI6Y2FzZSA5MDp0W2ldPSI5IjticmVha319cmV0dXJuIHVhZSh0LmpvaW4oIiIpKT09PTB9LCJjaGVja0ZyZW5jaEJCQU4iKSxWJGE9cyhhPT57bGV0IGU9WzksNywzLDEsOSw3LDMsMSw5LDcsMywxLDksNywzXSx0PXBhcnNlSW50KGEuY2hhckF0KDcpLDEwKSxyPWEuc3Vic3RyaW5nKDAsNyksaT0wO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKWkrPXBhcnNlSW50KHIuY2hhckF0KG4pLDEwKSplW25dO2xldCBvPWklMTA7aWYodCE9PShvPT09MD8wOjEwLW8pKXJldHVybiExO2lmKGk9MCxhLmVuZHNXaXRoKCIwMDAwMDAwMCIpKXtsZXQgbj1hLnN1YnN0cmluZyg4LDE1KSxsPXBhcnNlSW50KGEuY2hhckF0KDE1KSwxMCk7Zm9yKGxldCBjPTA7YzxuLmxlbmd0aDtjKyspaSs9cGFyc2VJbnQobi5jaGFyQXQoYyksMTApKmVbY107bGV0IGQ9aSUxMDtyZXR1cm4gbD09PShkPT09MD8wOjEwLWQpfWVsc2V7bGV0IG49YS5zdWJzdHJpbmcoOCwyMyksbD1wYXJzZUludChhLmNoYXJBdCgyMyksMTApO2ZvcihsZXQgYz0wO2M8bi5sZW5ndGg7YysrKWkrPXBhcnNlSW50KG4uY2hhckF0KGMpLDEwKSplW2NdO2xldCBkPWklMTA7cmV0dXJuIGw9PT0oZD09PTA/MDoxMC1kKX19LCJjaGVja0h1bmdhcmlhbkJCQU4iKSxpT2k9cygoYSxlKT0+dHlwZW9mIEVuW2FdPiJ1Ij8hMTooRW5bYV0uYmJhbl92YWxpZGF0aW9uX2Z1bmM9ZSwhMCksInNldENvdW50cnlCQkFOVmFsaWRhdGlvbiIpLEVuPXtBRDp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjMifSxBRTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMyJ9LEFGOnt9LEFHOnt9LEFJOnt9LEFMOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxBTTp7fSxBTzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQVE6e30sQVI6e30sQVM6e30sQVQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxBVTp7fSxBVzp7fSxBWDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITB9LEFaOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI4In0sQkE6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6bm0sSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LEJCOnt9LEJEOnt9LEJFOntjaGFyczoxNixiYmFuX3JlZ2V4cDoiXlswLTldezEyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOk8kYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0xNiJ9LEJGOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJHOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17Nn1bQS1aMC05XXs4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJIOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIyIn0sQkk6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LEJKOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJMOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCJ9LEJNOnt9LEJOOnt9LEJPOnt9LEJROnt9LEJSOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezIzfVtBLVpdezF9W0EtWjAtOV17MX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI4LTEyIixiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxCUzp7fSxCVDp7fSxCVjp7fSxCVzp7fSxCWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sQlo6e30sQ0E6e30sQ0M6e30sQ0Q6e30sQ0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENHOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDSDp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQ0k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsyM30kIn0sQ0s6e30sQ0w6e30sQ006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENOOnt9LENPOnt9LENSOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LENVOnt9LENWOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxDVzp7fSxDWDp7fSxDWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxDWjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpWc2EsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxERTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjIifSxESjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI3In0sREs6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxETTp7fSxETzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LERaOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxFQzp7fSxFRTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxJGEsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjAifSxFRzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyNX0iLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sRUg6e30sRVI6e30sRVM6e2NoYXJzOjI0LGJiYW5fdmFsaWRhdGlvbl9mdW5jOkIkYSxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxFVDp7fSxGSTp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0wIn0sRko6e30sRks6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsxMn0kIixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LEZNOnt9LEZPOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEZSOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6anNhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00IixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxHQTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR0I6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxHRDp7fSxHRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yMiJ9LEdGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHRzp7fSxHSDp7fSxHSTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIzIn0sR0w6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sR006e30sR046e30sR1A6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LEdROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxHUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXs3fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy02IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yNyJ9LEdTOnt9LEdUOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LEdVOnt9LEdXOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTl9JCJ9LEdZOnt9LEhLOnt9LEhNOnt9LEhOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCJ9LEhSOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezE3fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkgkYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNiJ9LEhUOnt9LEhVOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOlYkYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJRDp7fSxJRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC05IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LElMOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJTTp7fSxJTjp7fSxJTzp7fSxJUTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sSVI6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCJ9LElTOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yNSJ9LElUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTEwIixiYW5rX2lkZW50aWZpZXI6IjEtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNyJ9LEpFOnt9LEpNOnt9LEpPOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NH1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiNC03In0sSlA6e30sS0U6e30sS0c6e30sS0g6e30sS0k6e30sS006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEtOOnt9LEtQOnt9LEtSOnt9LEtXOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIyMC0zMCJ9LEtZOnt9LEtaOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTIwIn0sTEE6e30sTEI6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17NH1bQS1aMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI4In0sTEM6e2NoYXJzOjMyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMzIifSxMSTp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTEs6e30sTFI6e30sTFM6e30sTFQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxMVTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTFY6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMSJ9LExZOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEwLTI1In0sTUE6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCJ9LE1DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6anNhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LE1EOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTI0In0sTUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6bm0sSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIyIn0sTUY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1HOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxNSDp7fSxNSzp7Y2hhcnM6MTksYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6bm0sSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTUw6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sTU06e30sTU46e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sTU86e30sTVA6e30sTVE6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1SOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjYifSxNUzp7fSxNVDp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezV9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTgiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNS0zMSJ9LE1VOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTl9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIwLTMwIn0sTVY6e30sTVc6e30sTVg6e30sTVk6e30sTVo6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LE5BOnt9LE5DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxORTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxORjp7fSxORzp7fSxOSTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LE5MOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMTgifSxOTzp7Y2hhcnM6MTUsYmJhbl9yZWdleHA6Il5bMC05XXsxMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpSJGEsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTUifSxOUDp7fSxOUjp7fSxOVTp7fSxOWjp7fSxPTTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiExLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sUEE6e30sUEU6e30sUEY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBHOnt9LFBIOnt9LFBLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUEw6e2NoYXJzOjI4LGJiYW5fdmFsaWRhdGlvbl9mdW5jOkYkYSxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIyLTI4In0sUE06e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBOOnt9LFBSOnt9LFBTOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LFBUOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOm5tLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUFc6e30sUFk6e30sUUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjkifSxSRTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUk86e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yNCJ9LFJTOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOm5tLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFJVOntjaGFyczozMyxiYmFuX3JlZ2V4cDoiXlswLTldezE0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjktMTMiLGJhbmtfaWRlbnRpZmllcjoiMC04IixhY2NvdW50X2luZGVudGlmaWVyOiIxMy0zMyJ9LFJXOnt9LFNBOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yNCJ9LFNCOnt9LFNDOntjaGFyczozMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LFNEOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LFNFOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sU0c6e30sU0g6e30sU0k6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17MTV9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6bm0sSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI5LTE2In0sU0o6e30sU0s6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6VnNhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwfSxTTDp7fSxTTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCJ9LFNOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LFNPOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTEtMjMifSxTUjp7fSxTUzp7fSxTVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTcifSxTVjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sU1g6e30sU1k6e30sU1o6e30sVEM6e30sVEQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LFRGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxURzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxUSDp7fSxUSjp7fSxUSzp7fSxUTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMyJ9LFRNOnt9LFROOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNCJ9LFRPOnt9LFRSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTd9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxUVDp7fSxUVjp7fSxUVzp7fSxUWjp7fSxVQTp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXs2fVtBLVowLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiIxNS0yOSJ9LFVHOnt9LFVNOnt9LFVTOnt9LFVZOnt9LFVaOnt9LFZBOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMiJ9LFZDOnt9LFZFOnt9LFZHOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxWSTp7fSxWTjp7fSxWVTp7fSxXRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sV1M6e30sWEs6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIwIn0sWUU6e2NoYXJzOjMwLGJiYW5fcmVnZXhwOiJbQS1aXXs0fVswLTldezR9WzAtOUEtWl17MTh9IixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03In0sWVQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFpBOnt9LFpNOnt9LFpXOnt9fX0pO3ZhciBXc2EsR3NhPWYoKCk9PntsZSgpO1dzYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1hgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXltZW50LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIElCQU4gSW5wdXQifSAuc3VidGl0bGU9JHsiSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIHdpdGggYXV0b21hdGljIGZvcm1hdHRpbmcifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiQmFuayBBY2NvdW50IElCQU4ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW50ZXIgeW91ciBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBJQkFOIGNhbiBiZSBmb3VuZCBvbiB5b3VyIGJhbmsgc3RhdGVtZW50In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBoYXMgYmVlbiB2ZXJpZmllZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBheW1lbnQgSW5mb3JtYXRpb24ifSAuc3VidGl0bGU9JHsiSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgSG9sZGVyIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiSm9obiBEb2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgICAgLmxhYmVsPSR7IklCQU4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0keyJHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IlBheW1lbnQgQWNjb3VudCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJSZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBwYXltZW50cyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkxvY2tlZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJGUjE0MjAwNDEwMTAwNTA1MDAwMTNNMDI2MDYifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhbmsgVHJhbnNmZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIGV4YW1wbGUgd2l0aCBJQkFOIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUmVjaXBpZW50IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIC5sYWJlbD0keyJSZWNpcGllbnQgSUJBTiJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlRyYW5zZmVyIFJlZmVyZW5jZSJ9IC5pbmZvVGV4dD0keyJPcHRpb25hbCByZWZlcmVuY2UgZm9yIHRoZSB0cmFuc2ZlciJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQW1vdW50In0gLmlucHV0VHlwZT0keyJudW1iZXIifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBmYWUsTGYsaGFlLEhZZT1mKCgpPT57bGUoKTtlYSgpO1NyKCk7VXNhKCk7R3NhKCk7UWUoKTtmYWU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LExmPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxoYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LWliYW4iKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0SWJhbiIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0sZD1bSygpXSx1PVskKHt0eXBlOlN0cmluZ30pXSxmYWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkU3RyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJlbnRlcmVkU3RyaW5nImluIGcsImhhcyIpLGdldDpzKGc9PmcuZW50ZXJlZFN0cmluZywiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmVudGVyZWRTdHJpbmc9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLGZhZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRJYmFuSXNWYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4iZW50ZXJlZEliYW5Jc1ZhbGlkImluIGcsImhhcyIpLGdldDpzKGc9PmcuZW50ZXJlZEliYW5Jc1ZhbGlkLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuZW50ZXJlZEliYW5Jc1ZhbGlkPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sYyxwKSxmYWUodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4idmFsdWUiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy52YWx1ZSwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnZhbHVlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbSx2KSxmYWUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSx4PXI9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1Xc2E7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUxmKHRoaXMsbiwiIik7Z2V0IGVudGVyZWRTdHJpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50ZXJlZFN0cmluZyhiKXt0aGlzLiNlPWJ9I3Q9KExmKHRoaXMsbCksTGYodGhpcyxjLCExKSk7Z2V0IGVudGVyZWRJYmFuSXNWYWxpZCgpe3JldHVybiB0aGlzLiN0fXNldCBlbnRlcmVkSWJhbklzVmFsaWQoYil7dGhpcy4jdD1ifSNhPShMZih0aGlzLHApLExmKHRoaXMsbSwiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNhfXNldCB2YWx1ZShiKXt0aGlzLiNhPWJ9c3RhdGljIHN0eWxlcz1bUGUsLi4uTXQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHtiPT57bGV0IGc9Yi5yZXBsYWNlKC8gL2csIiIpO3JldHVybiBnLmxlbmd0aD09PTA/e3ZhbGlkOiEwLG1lc3NhZ2U6IiJ9OnBhZShnKT97dmFsaWQ6ITAsbWVzc2FnZToiSUJBTiBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBJQkFOIn19fQogICAgICAgICAgQGlucHV0PSR7Yj0+e3RoaXMudmFsaWRhdGVJYmFuKGIpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoYil7c3VwZXIuZmlyc3RVcGRhdGVkKGIpO2xldCBnPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtnJiZnLmNoYW5nZVN1YmplY3QmJmcuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWFzeW5jIHZhbGlkYXRlSWJhbihiKXtsZXQgZz1iLnRhcmdldCx5PWc/LnZhbHVlO3k9eXx8IiIsdGhpcy5lbnRlcmVkU3RyaW5nIT09eSYmKHRoaXMuZW50ZXJlZFN0cmluZz1CWWUoeSl8fCIiLGcmJihnLnZhbHVlPXRoaXMuZW50ZXJlZFN0cmluZyx0aGlzLnZhbHVlPXRoaXMuZW50ZXJlZFN0cmluZyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSkpLHRoaXMuZW50ZXJlZEliYW5Jc1ZhbGlkPXBhZSh0aGlzLmVudGVyZWRTdHJpbmcucmVwbGFjZSgvIC9nLCIiKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShiKXt0aGlzLnZhbHVlPWIsdGhpcy5lbnRlcmVkU3RyaW5nPUJZZShiKXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLExmKHRoaXMsdil9c3RhdGlje0xmKHIsdCl9fTtyZXR1cm4geD1yfSkoKX0pO3ZhciBZc2EsS3NhPWYoKCk9PntsZSgpO1lzYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1hgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2V0dGluZ3MtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NdWx0aS1PcHRpb24gVG9nZ2xlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2VsZWN0IGZyb20gbXVsdGlwbGUgb3B0aW9ucyB3aXRoIGEgc21vb3RoIHNsaWRpbmcgaW5kaWNhdG9yIGFuaW1hdGlvbi48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNwbGF5IE1vZGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQ2hvb3NlIGhvdyBjb250ZW50IGlzIGRpc3BsYXllZCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHNldHRpbmcgYWZmZWN0cyBob3cgaXRlbXMgYXBwZWFyIG9uIHlvdXIgZGFzaGJvYXJkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxpc3QgVmlldyIsIkdyaWQgVmlldyIsIkNvbXBhY3QiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkdyaWQgVmlldyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJULVNoaXJ0IFNpemUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IHlvdXIgcHJlZmVycmVkIHNpemUifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWFMiLCJTIiwiTSIsIkwiLCJYTCIsIlhYTCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkJvb2xlYW4gVG9nZ2xlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2ltcGxlIG9uL29mZiBzd2l0Y2hlcyB3aXRoIGN1c3RvbWl6YWJsZSBsYWJlbHMgZm9yIGNsZWFyZXIgY29udGV4dC48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVuYWJsZSBvciBkaXNhYmxlIHB1c2ggbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidHJ1ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBNb2RlIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlN3aXRjaCBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrIHRoZW1lIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRGFyayJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkxpZ2h0In0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRhcmsifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TZXR0aW5ncyBHcmlkPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29uZmlndXJhdGlvbiBvcHRpb25zIGFycmFuZ2VkIGluIGEgcmVzcG9uc2l2ZSBncmlkIGxheW91dC48L2Rpdj4KCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJBdXRvLVNhdmUifQogICAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiRGlzYWJsZWQifQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmFibGVkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJRdWFsaXR5In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siTG93IiwiTWVkaXVtIiwiSGlnaCIsIlVsdHJhIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkhpZ2gifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHJpdmFjeSJ9CiAgICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcml2YXRlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0YXRlcyAmIEZvcm0gSW50ZWdyYXRpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5FeGFtcGxlcyBvZiBkaXNhYmxlZCBzdGF0ZXMgYW5kIGludGVncmF0aW9uIHdpdGhpbiBmb3Jtcy48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgVHlwZSJ9CiAgICAgICAgICAuaW5mb1RleHQ9JHsiVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRnJlZSIsIlBybyIsIkVudGVycHJpc2UiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbnRlcnByaXNlIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlZpc2liaWxpdHkifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMaWNlbnNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk1JVCIsIkFwYWNoZSAyLjAiLCJHUEwgdjMiLCJQcm9wcmlldGFyeSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTUlUIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyICRmLGFuLG1hZSxxWWU9ZigoKT0+e2xlKCk7U3IoKTtMMSgpO0tzYSgpO1FlKCk7JGY9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGFuPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxtYWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LW11bHRpdG9nZ2xlIildLGUsdD1bXSxyLGk9TXQsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNJbnB1dE11bHRpdG9nZ2xlIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxkPVskKCldLHU9WyQoKV0seD1bJCh7dHlwZTpBcnJheX0pXSx5PVskKCldLE49WyQoe3R5cGU6Qm9vbGVhbn0pXSwkZih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InR5cGUiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC50eXBlLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AudHlwZT1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LG4sbCksJGYodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuVHJ1ZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+ImJvb2xlYW5UcnVlTmFtZSJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLmJvb2xlYW5UcnVlTmFtZSwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLmJvb2xlYW5UcnVlTmFtZT1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LGMscCksJGYodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuRmFsc2VOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJib29sZWFuRmFsc2VOYW1lImluIFAsImhhcyIpLGdldDpzKFA9PlAuYm9vbGVhbkZhbHNlTmFtZSwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLmJvb2xlYW5GYWxzZU5hbWU9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxtLHYpLCRmKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ib3B0aW9ucyJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLm9wdGlvbnMsImdldCIpLHNldDpzKChQLEIpPT57UC5vcHRpb25zPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSwkZih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJzZWxlY3RlZE9wdGlvbiJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnNlbGVjdGVkT3B0aW9uLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1Auc2VsZWN0ZWRPcHRpb249Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxrLEMpLCRmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJib29sVmFsdWUiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5ib29sVmFsdWUsImdldCIpLHNldDpzKChQLEIpPT57UC5ib29sVmFsdWU9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxfLHopLCRmKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlR9LG51bGwsdCksTz1yPWUudmFsdWUsVCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpUfSl9c3RhdGljIGRlbW89WXNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1hbih0aGlzLG4sIm11bHRpIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShUKXt0aGlzLiNlPVR9I3Q9KGFuKHRoaXMsbCksYW4odGhpcyxjLCJ0cnVlIikpO2dldCBib29sZWFuVHJ1ZU5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYm9vbGVhblRydWVOYW1lKFQpe3RoaXMuI3Q9VH0jYT0oYW4odGhpcyxwKSxhbih0aGlzLG0sImZhbHNlIikpO2dldCBib29sZWFuRmFsc2VOYW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJvb2xlYW5GYWxzZU5hbWUoVCl7dGhpcy4jYT1UfSNyPShhbih0aGlzLHYpLGFuKHRoaXMsYixbXSkpO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9wdGlvbnMoVCl7dGhpcy4jcj1UfSNzPShhbih0aGlzLGcpLGFuKHRoaXMsaywiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RlZE9wdGlvbihUKXt0aGlzLiNzPVR9I2k9KGFuKHRoaXMsQyksYW4odGhpcyxfLCExKSk7Z2V0IGJvb2xWYWx1ZSgpe3JldHVybiB0aGlzLiNpfXNldCBib29sVmFsdWUoVCl7dGhpcy4jaT1UfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKFQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mIFQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPVQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5ib29sZWFuRmFsc2VOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb249VCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWMgc3R5bGVzPVtQZSwuLi5NdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbnMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAub3B0aW9uIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNlNGU0ZTciKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5pbmRpY2F0b3IgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gOHB4KTsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnNlbGVjdGlvbnMgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAub3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuaW5kaWNhdG9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIsInJnYmEoMTEzLCAxMTMsIDEyMiwgMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3Rpb25zIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImluZGljYXRvciI+PC9kaXY+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoVD0+d2A8ZGl2IGNsYXNzPSJvcHRpb24gJHtUPT09dGhpcy5zZWxlY3RlZE9wdGlvbj8ic2VsZWN0ZWQiOiIifSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU2VsZWN0aW9uKFQpfT4KICAgICAgICAgICAgICAgICR7VH0KICAgICAgICAgICAgICA8L2Rpdj4gYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnRoaXMub3B0aW9ucy5sZW5ndGg9PT0wJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0sdGhpcy5zZWxlY3RlZE9wdGlvbnx8KHRoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiKSksIXRoaXMuc2VsZWN0ZWRPcHRpb24mJnRoaXMub3B0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5vcHRpb25zWzBdKX1hc3luYyBmaXJzdFVwZGF0ZWQoVCl7c3VwZXIuZmlyc3RVcGRhdGVkKFQpLHRoaXMudHlwZT09PSJib29sZWFuIiYmKHRoaXMub3B0aW9ucz1bdGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIix0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSJdKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxhd2FpdCBuZXcgUHJvbWlzZShQPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUCkpLHRoaXMuc2V0SW5kaWNhdG9yKCl9YXN5bmMgaGFuZGxlU2VsZWN0aW9uKFQpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnNlbGVjdGVkT3B0aW9uPVQsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnNldEluZGljYXRvcigpKX1pbmRpY2F0b3JJbml0aWFsaXplZD0oYW4odGhpcyx6KSwhMSk7YXN5bmMgc2V0SW5kaWNhdG9yKCl7bGV0IFQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbmRpY2F0b3IiKSxQPXRoaXMub3B0aW9ucy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRPcHRpb24pO2lmKFA9PT0tMXx8IVQpe1QmJihULnN0eWxlLm9wYWNpdHk9IjAiKTtyZXR1cm59bGV0IEI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYC5vcHRpb246bnRoLWNoaWxkKCR7UCsyfSlgKTtUJiZCJiYodGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZHx8KFQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITAsc2V0VGltZW91dCgoKT0+e1QuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSw1MCkpLFQuc3R5bGUud2lkdGg9YCR7Qi5jbGllbnRXaWR0aH1weGAsVC5zdHlsZS5sZWZ0PWAke0Iub2Zmc2V0TGVmdH1weGAsVC5zdHlsZS5vcGFjaXR5PSIxIil9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy50eXBlPT09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249PT10aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldFZhbHVlKFQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mIFQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPVQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIjp0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSI6dGhpcy5zZWxlY3RlZE9wdGlvbj1ULHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuaGFzVXBkYXRlZCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zZXRJbmRpY2F0b3IoKX0pfXN0YXRpY3thbihyLHQpfX07cmV0dXJuIE89cn0pKCl9KTt2YXIgWnNhLFhzYT1mKCgpPT57bGUoKTtac2E9cygoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtYYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVudGVyIHlvdXIgcGhvbmUgbnVtYmVyIHdpdGggY291bnRyeSBjb2RlIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkluY2x1ZGUgY291bnRyeSBjb2RlIGZvciBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik1vYmlsZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjQxNTU1NTEyMzQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgICAubGFiZWw9JHsiT2ZmaWNlIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDgwMCkgNTU1LTAwMDAifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkludGVybmF0aW9uYWwgQ29udGFjdCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBdXRvbWF0aWNhbGx5IGZvcm1hdHMgaW50ZXJuYXRpb25hbCBudW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjQ0MTIzNDU2Nzg5MCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWVyZ2VuY3kgQ29udGFjdCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI5MTEifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0IGFzIHBhcnQgb2YgYSBjb250YWN0IGZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRnVsbCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgLmxhYmVsPSR7IlBob25lIE51bWJlciJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJFbWFpbCJ9IC5pbnB1dFR5cGU9JHsiZW1haWwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGdhZSxEZixiYWUsVlllPWYoKCk9PntsZSgpO2VhKCk7U3IoKTtYc2EoKTtRZSgpO2dhZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sRGY9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGJhZT0oKCk9PntsZXQgYT1baWUoImRlZXMtaW5wdXQtcGhvbmUiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0UGhvbmUiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtLKCldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6U3RyaW5nfSldLGdhZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvcm1hdHRlZFBob25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJmb3JtYXR0ZWRQaG9uZSJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLmZvcm1hdHRlZFBob25lLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuZm9ybWF0dGVkUGhvbmU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLGdhZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJ2YWx1ZSJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLnZhbHVlLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cudmFsdWU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxjLHApLGdhZSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJwbGFjZWhvbGRlciJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cucGxhY2Vob2xkZXI9eX0sInNldCIpfSxtZXRhZGF0YTpifSxtLHYpLGdhZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLHg9cj1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPVpzYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9RGYodGhpcyxuLCIiKTtnZXQgZm9ybWF0dGVkUGhvbmUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZm9ybWF0dGVkUGhvbmUoYil7dGhpcy4jZT1ifSN0PShEZih0aGlzLGwpLERmKHRoaXMsYywiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCB2YWx1ZShiKXt0aGlzLiN0PWJ9I2E9KERmKHRoaXMscCksRGYodGhpcyxtLCIrMSAoNTU1KSAxMjMtNDU2NyIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGxhY2Vob2xkZXIoYil7dGhpcy4jYT1ifXN0YXRpYyBzdHlsZXM9W1BlLC4uLk10LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIFBob25lIGlucHV0IHNwZWNpZmljIHN0eWxlcyBjYW4gZ28gaGVyZSAqLwogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLmZvcm1hdHRlZFBob25lfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgQGlucHV0PSR7Yj0+dGhpcy5oYW5kbGVQaG9uZUlucHV0KGIpfQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZChiKXtzdXBlci5maXJzdFVwZGF0ZWQoYiksdGhpcy52YWx1ZSYmKHRoaXMuZm9ybWF0dGVkUGhvbmU9dGhpcy5mb3JtYXRQaG9uZU51bWJlcih0aGlzLnZhbHVlKSk7bGV0IGc9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO2cmJmcuY2hhbmdlU3ViamVjdCYmZy5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSl9aGFuZGxlUGhvbmVJbnB1dChiKXtsZXQgZz1iLnRhcmdldCx5PXRoaXMuY2xlYW5QaG9uZU51bWJlcihnLnZhbHVlKSxrPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIoeSk7aWYoZy52YWx1ZSE9PWspe2xldCBDPWcuc2VsZWN0aW9uU3RhcnR8fDA7Zy52YWx1ZT1rO2xldCBOPXRoaXMuY2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24oeSxrLEMpO2cuc2V0U2VsZWN0aW9uUmFuZ2UoTixOKX10aGlzLmZvcm1hdHRlZFBob25lPWssdGhpcy52YWx1ZT15LHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWNsZWFuUGhvbmVOdW1iZXIoYil7cmV0dXJuIGIucmVwbGFjZSgvXEQvZywiIil9Zm9ybWF0UGhvbmVOdW1iZXIoYil7bGV0IGc9dGhpcy5jbGVhblBob25lTnVtYmVyKGIpO3JldHVybiBnLmxlbmd0aD09PTA/IiI6Zy5sZW5ndGg8PTM/ZzpnLmxlbmd0aDw9Nj9gKCR7Zy5zbGljZSgwLDMpfSkgJHtnLnNsaWNlKDMpfWA6Zy5sZW5ndGg8PTEwP2AoJHtnLnNsaWNlKDAsMyl9KSAke2cuc2xpY2UoMyw2KX0tJHtnLnNsaWNlKDYpfWA6YCske2cuc2xpY2UoMCxnLmxlbmd0aC0xMCl9ICgke2cuc2xpY2UoLTEwLC03KX0pICR7Zy5zbGljZSgtNywtNCl9LSR7Zy5zbGljZSgtNCl9YH1jYWxjdWxhdGVDdXJzb3JQb3NpdGlvbihiLGcseSl7bGV0IGs9MDtmb3IobGV0IEM9MDtDPHkmJkM8Zy5sZW5ndGg7QysrKS9cZC8udGVzdChnW0NdKXx8aysrO3JldHVybiBNYXRoLm1pbih5K2ssZy5sZW5ndGgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoYil7dGhpcy52YWx1ZT1iLHRoaXMuZm9ybWF0dGVkUGhvbmU9dGhpcy5mb3JtYXRQaG9uZU51bWJlcihiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRGYodGhpcyx2KX1zdGF0aWN7RGYocix0KX19O3JldHVybiB4PXJ9KSgpfSk7dmFyIFFzYSxKc2E9ZigoKT0+e2xlKCk7TmEoKTtZcygpO1FzYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoIiN0b2dnbGUtYWxsLW9uIiksdD1hLnF1ZXJ5U2VsZWN0b3IoIiN0b2dnbGUtYWxsLW9mZiIpLHI9YS5xdWVyeVNlbGVjdG9yQWxsKCIuZmVhdHVyZS10b2dnbGVzIGRlZXMtaW5wdXQtdG9nZ2xlIik7ZSYmdCYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci5mb3JFYWNoKGk9PntsZXQgbz1pOyFvLmRpc2FibGVkJiYhby5yZXF1aXJlZCYmKG8udmFsdWU9ITApfSl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IuZm9yRWFjaChpPT57bGV0IG89aTshby5kaXNhYmxlZCYmIW8ucmVxdWlyZWQmJihvLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7WGAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvZ2dsZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CgogICAgICAgIC5ob3Jpem9udGFsLXRvZ2dsZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CgogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICB9CgogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlLXRvZ2dsZXMgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuZHJhZy1oaW50IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVG9nZ2xlIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBvbi9vZmYgdG9nZ2xlIHN3aXRjaCB3aXRoIGRyYWcgc3VwcG9ydCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBmZWF0dXJlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsiYmFzaWMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJBY3RpdmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiYWN0aXZlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiV2l0aCBkZXNjcmlwdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgaGFzIGFkZGl0aW9uYWwgaGVscGVyIHRleHQgZXhwbGFpbmluZyBpdHMgcHVycG9zZSJ9CiAgICAgICAgICAgIC5rZXk9JHsid2l0aERlc2MifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPHAgY2xhc3M9ImRyYWctaGludCI+VGlwOiBZb3UgY2FuIGRyYWcgdGhlIHRvZ2dsZSBrbm9iIHRvIHN3aXRjaCBzdGF0ZXM8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUb2dnbGUgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB0b2dnbGUgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvZmYpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCAoYWx3YXlzIG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgdG9nZ2xlIGNhbm5vdCBiZSB0dXJuZWQgb2ZmIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiVG9nZ2xlcyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgaW50ZXJmYWNlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLXRvZ2dsZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiV2lGaSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJsdWV0b290aCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkdQUyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik5GQyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgaW4gYSB0eXBpY2FsIHNldHRpbmdzIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oND4KCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb24geW91ciBkZXZpY2UifQogICAgICAgICAgICAgIC5rZXk9JHsicHVzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgaW1wb3J0YW50IHVwZGF0ZXMgdmlhIGVtYWlsIn0KICAgICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU291bmQifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJQbGF5IGEgc291bmQgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsic291bmQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJWaWJyYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJWaWJyYXRlIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InZpYnJhdGlvbiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFRvZ2dsZXMifSAuc3VidGl0bGU9JHsiQmF0Y2ggb3BlcmF0aW9ucyBvbiBtdWx0aXBsZSB0b2dnbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vbiIgdHlwZT0ic2Vjb25kYXJ5Ij5FbmFibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vZmYiIHR5cGU9InNlY29uZGFyeSI+RGlzYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLXRvZ2dsZXMiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJkYXJrTW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tc2F2ZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJhdXRvU2F2ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWxsIGNoZWNrIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7InNwZWxsQ2hlY2sifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wZXIgbW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJkZXZNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmV0YSBmZWF0dXJlcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJiZXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzIGluIHJlYWwtdGltZSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFpcnBsYW5lIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7YT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaXJwbGFuZS1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gQWlycGxhbmUgbW9kZTogJHthLmRldGFpbD8iT04iOiJPRkYifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRG8gbm90IGRpc3R1cmIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7YT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkbmQtb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9YERvIG5vdCBkaXN0dXJiOiAke2EuZGV0YWlsPyJFTkFCTEVEIjoiRElTQUJMRUQifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImFpcnBsYW5lLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5BaXJwbGFuZSBtb2RlOiBPRkY8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRuZC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRvIG5vdCBkaXN0dXJiOiBESVNBQkxFRDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgZWlhLGpZZSx2YWUsVVllPWYoKCk9PntsZSgpO2VhKCk7U3IoKTtKc2EoKTttcygpO1FlKCk7ZWlhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxqWWU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHZhZT0oKCk9PntsZXQgYT1baWUoImRlZXMtaW5wdXQtdG9nZ2xlIildLGUsdD1bXSxyLGk9TXQsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNJbnB1dFRvZ2dsZSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGVpYSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHA9PiJ2YWx1ZSJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLnZhbHVlLCJnZXQiKSxzZXQ6cygocCx1KT0+e3AudmFsdWU9dX0sInNldCIpfSxtZXRhZGF0YTpjfSxuLGwpLGVpYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLHQpLGQ9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPVFzYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9alllKHRoaXMsbiwhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGMpe3RoaXMuI2U9Y31jdXJyZW50WD0oalllKHRoaXMsbCksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bUGUsLi4uTXQuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7cGF9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2s6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IuZHJhZ2dpbmcgewogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogUmVxdWlyZWQgc3RhdGUgKGxvY2tlZCBvbikgKi8KICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbcmVxdWlyZWRdW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExhYmVsICovCiAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMuaGFuZGxlQ2xpY2t9Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS10cmFjayAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZUtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1rbm9iIgogICAgICAgICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucGFkZGluZyt0aGlzLmN1cnJlbnRYfXB4OyIKICAgICAgICAgICAgICBAcG9pbnRlcmRvd249IiR7dGhpcy5vblBvaW50ZXJEb3dufSIKICAgICAgICAgICAgICBAcG9pbnRlcm1vdmU9IiR7dGhpcy5vblBvaW50ZXJNb3ZlfSIKICAgICAgICAgICAgICBAcG9pbnRlcnVwPSIke3RoaXMub25Qb2ludGVyVXB9IgogICAgICAgICAgICAgIEBwb2ludGVyY2FuY2VsPSIke3RoaXMub25Qb2ludGVyVXB9IgogICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9InRvZ2dsZS1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoYyl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKGMpLHRoaXMucmVxdWlyZWQmJiF0aGlzLnZhbHVlJiYodGhpcy52YWx1ZT0hMCksdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXN5bmMgaGFuZGxlQ2xpY2soYyl7aWYodGhpcy5pc0RyYWdnaW5nfHx0aGlzLmhhc0RyYWdnZWQpe2Muc3RvcFByb3BhZ2F0aW9uKCksYy5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighdGhpcy5kaXNhYmxlZCl7aWYodGhpcy5yZXF1aXJlZCl7dGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbCx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCBuZXcgUHJvbWlzZShwPT5zZXRUaW1lb3V0KHAsMTApKSx0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLTMsdGhpcy5yZXF1ZXN0VXBkYXRlKCksYXdhaXQgSHQuc21hcnRkZWxheS5kZWxheUZvcigxNTApLHRoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCk7cmV0dXJufWMuc3RvcFByb3BhZ2F0aW9uKCksYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudmFsdWU9IXRoaXMudmFsdWUsdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLEh0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCkudGhlbigoKT0+e3RoaXMuaGFzRHJhZ2dlZD0hMX0pfX1vblBvaW50ZXJEb3duKGMpe3RoaXMucmVxdWlyZWR8fHRoaXMuZGlzYWJsZWR8fCh0aGlzLmlzRHJhZ2dpbmc9ITAsdGhpcy5zdGFydFg9Yy5jbGllbnRYLXRoaXMuY3VycmVudFgsYy50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoYy5wb2ludGVySWQpKX1vblBvaW50ZXJNb3ZlKGMpe2lmKCF0aGlzLmlzRHJhZ2dpbmcpcmV0dXJuO2xldCBwPWMuY2xpZW50WC10aGlzLnN0YXJ0WDt0aGlzLmhhc0RyYWdnZWQ9ITA7bGV0IHU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLWtub2IiKTt1JiZ1LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5jdXJyZW50WD1NYXRoLm1heCgwLE1hdGgubWluKHAsdGhpcy5tYXhUcmF2ZWwpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1vblBvaW50ZXJVcChjKXtpZighdGhpcy5pc0RyYWdnaW5nfHwoYy50YXJnZXQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKGMucG9pbnRlcklkKSx0aGlzLmlzRHJhZ2dpbmc9ITEsIXRoaXMuaGFzRHJhZ2dlZCkpcmV0dXJuO2xldCBwPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS1rbm9iIik7cCYmcC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpO2xldCB1PXRoaXMubWF4VHJhdmVsLzI7dGhpcy52YWx1ZT10aGlzLmN1cnJlbnRYPnUsdGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmV3VmFsdWUiLHtkZXRhaWw6dGhpcy52YWx1ZSxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLEh0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCkudGhlbigoKT0+e3RoaXMuaGFzRHJhZ2dlZD0hMX0pfXVwZGF0ZWQoYyl7c3VwZXIudXBkYXRlZChjKSxjLmhhcygidmFsdWUiKSYmIXRoaXMuaXNEcmFnZ2luZyYmIXRoaXMuaGFzRHJhZ2dlZCYmKHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVLZXlkb3duKGMpeyhjLmtleT09PSIgInx8Yy5rZXk9PT0iRW50ZXIiKSYmKGMucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZUNsaWNrKGMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGMpe3RoaXMudmFsdWU9Y31mb2N1cygpe2xldCBjPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS10cmFjayIpO2MmJmMuZm9jdXMoKX1zdGF0aWN7alllKHIsdCl9fTtyZXR1cm4gZD1yfSkoKX0pO3ZhciB0aWEsYWlhPWYoKCk9PntsZSgpO3RpYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1hgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UzZjJmZDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAjMTk3NmQyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWUzYTVmOwogICAgICAgICAgICBjb2xvcjogIzkwY2FmOTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUeXBlIExpc3QifSAuc3VidGl0bGU9JHsiQWRkIGFuZCByZW1vdmUgaXRlbXMgZnJvbSBhIGxpc3QifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIHRhZ3MgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlciJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUYWdzIGhlbHAgY2F0ZWdvcml6ZSBhbmQgZmlsdGVyIHlvdXIgY29udGVudCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siamF2YXNjcmlwdCIsInR5cGVzY3JpcHQiLCJ3ZWItY29tcG9uZW50cyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNraWxscyAmIEtleXdvcmRzIn0gLnN1YnRpdGxlPSR7Ik1hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJZb3VyIFNraWxscyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJMaXN0IHlvdXIgcHJvZmVzc2lvbmFsIHNraWxscyJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siSFRNTCIsIkNTUyIsIkphdmFTY3JpcHQiLCJOb2RlLmpzIiwiUmVhY3QiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3JpZXMifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0ke1siVGVjaG5vbG9neSIsIkRlc2lnbiIsIkJ1c2luZXNzIl19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJLZXl3b3JkcyJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJpbm5vdmF0aW9uIiwic3RhcnR1cCIsImdyb3d0aCJdfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgaW5wdXQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IERlcGVuZGVuY2llcyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJMaXN0IGFsbCByZXF1aXJlZCBucG0gcGFja2FnZXMifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7WyJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiLCJAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJUaGVzZSB0YWdzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0ifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7WyJzeXN0ZW0iLCJwcm90ZWN0ZWQiLCJyZWFkb25seSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkFydGljbGUgUHVibGlzaGluZyBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIGZvcm0gd2l0aCB0YWcgbWFuYWdlbWVudCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBcnRpY2xlIFRpdGxlIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IlN1bW1hcnkifSAKICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYXJ0aWNsZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgcmVsZXZhbnQgdGFncyBmb3IgYmV0dGVyIGRpc2NvdmVyYWJpbGl0eSJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1sidHV0b3JpYWwiLCJ3ZWItZGV2ZWxvcG1lbnQiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiQ28tQXV0aG9ycyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgZW1haWwgYWRkcmVzc2VzIG9mIGNvLWF1dGhvcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCI+CiAgICAgICAgICA8c3Ryb25nPlRpcDo8L3N0cm9uZz4gVHlwZSBhIHZhbHVlIGFuZCBwcmVzcyBFbnRlciB0byBhZGQgaXQgdG8gdGhlIGxpc3QuIENsaWNrIG9uIGFueSBpdGVtIHRvIHJlbW92ZSBpdC4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIFdZZSxQVSx4YWUsR1llPWYoKCk9PntsZSgpO2VhKCk7U3IoKTthaWEoKTtRZSgpO1dZZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sUFU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHhhZT0oKCk9PntsZXQgYT1baWUoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0VHlwZWxpc3QiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9W0soKV0sV1llKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InZhbHVlImluIHYsImhhcyIpLGdldDpzKHY9PnYudmFsdWUsImdldCIpLHNldDpzKCh2LHgpPT57di52YWx1ZT14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCksV1llKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iaW5wdXRWYWx1ZSJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LmlucHV0VmFsdWUsImdldCIpLHNldDpzKCh2LHgpPT57di5pbnB1dFZhbHVlPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxXWWUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz10aWE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVBVKHRoaXMsbixbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKG0pe3RoaXMuI2U9bX0jdD0oUFUodGhpcyxsKSxQVSh0aGlzLGMsIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbnB1dFZhbHVlKG0pe3RoaXMuI3Q9bX1zdGF0aWMgc3R5bGVzPVtQZSwuLi5NdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHtoLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHtoLmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChtPT53YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHttfQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7dj0+e3Yuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcobSl9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHttPT57dGhpcy5pbnB1dFZhbHVlPW0udGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHttPT57bS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYobS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKG0pe3RoaXMudmFsdWUuaW5jbHVkZXMobSl8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLG1dLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKG0pe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIodj0+diE9PW0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUobSl7dGhpcy52YWx1ZT1tfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxQVSh0aGlzLHApfXN0YXRpY3tQVShyLHQpfX07cmV0dXJuIHU9cn0pKCl9KTt2YXIgcmlhLHNpYSxpaWE9ZigoKT0+e2xlKCk7TmEoKTtZcygpO3NpYT1zKCgpPT53KHJpYXx8KHJpYT1SNShbYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICBgLGAKICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kaXNhYmxlZD1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAgIC5yZXF1aXJlZD1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLmlucHV0VHlwZT1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD1gLGA+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLXRhZ3MiCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICBAY2hhbmdlPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcHJldmlldyIgaWQ9InRhZ3MtcHJldmlldyI+CiAgICAgICAgICA8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0idGFncy1qc29uIj4KICAgICAgICAgIDxlbT5KU09OIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8c2NyaXB0PgogICAgICAgICAgLy8gVXBkYXRlIEpTT04gcHJldmlldwogICAgICAgICAgY29uc3QgdGFnc0lucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ludGVyYWN0aXZlLXRhZ3MnKTsKICAgICAgICAgIHRhZ3NJbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgICAgICAgY29uc3QganNvblByZXZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGFncy1qc29uJyk7CiAgICAgICAgICAgIGlmIChqc29uUHJldmlldykgewogICAgICAgICAgICAgIGpzb25QcmV2aWV3LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsIG51bGwsIDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICA8XC9zY3JpcHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYF0pKSxYYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmYWZiOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZjI5Mzc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UwZTdmZjsKICAgICAgICAgIGNvbG9yOiAjNDMzOGNhOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxOwogICAgICAgICAgICBjb2xvcjogI2M3ZDJmZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGAsIjEuIEJhc2ljIFRhZ3MgSW5wdXQiLCJTaW1wbGUgdGFnIGlucHV0IHdpdGggY29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyIsIlByb2dyYW1taW5nIExhbmd1YWdlcyIsIkFkZCBhIGxhbmd1YWdlLi4uIixbIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiR28iXSwiUHJlc3MgRW50ZXIgb3IgY29tbWEgdG8gYWRkIHRhZ3MiLCIyLiBUYWdzIHdpdGggU3VnZ2VzdGlvbnMiLCJBdXRvLWNvbXBsZXRlIHN1Z2dlc3Rpb25zIGZvciBmYXN0ZXIgaW5wdXQiLCJUZWNoIFN0YWNrIiwiVHlwZSB0byBzZWUgc3VnZ2VzdGlvbnMuLi4iLFsiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTGl0IiwiTmV4dC5qcyIsIk51eHQiLCJTdmVsdGVLaXQiLCJOb2RlLmpzIiwiRGVubyIsIkJ1biIsIkV4cHJlc3MiLCJGYXN0aWZ5IiwiTmVzdC5qcyIsIktvYSIsIk1vbmdvREIiLCJQb3N0Z3JlU1FMIiwiUmVkaXMiLCJNeVNRTCIsIlNRTGl0ZSIsIkNhc3NhbmRyYSIsIkRvY2tlciIsIkt1YmVybmV0ZXMiLCJBV1MiLCJBenVyZSIsIkdDUCIsIlZlcmNlbCIsIk5ldGxpZnkiXSxbIlJlYWN0IiwiTm9kZS5qcyIsIlBvc3RncmVTUUwiLCJEb2NrZXIiXSwiU3RhcnQgdHlwaW5nIHRvIHNlZSBzdWdnZXN0aW9ucyBmcm9tIHBvcHVsYXIgdGVjaG5vbG9naWVzIiwiMy4gTGltaXRlZCBUYWdzIiwiUmVzdHJpY3QgdGhlIG51bWJlciBvZiB0YWdzIHVzZXJzIGNhbiBhZGQiLCJUb3AgMyBTa2lsbHMiLCJBZGQgdXAgdG8gMyBza2lsbHMuLi4iLDMsWyJEZXNpZ24iLCJEZXZlbG9wbWVudCJdLCJNYXhpbXVtIDMgdGFncyBhbGxvd2VkIiwiQ2F0ZWdvcmllcyAoTWF4IDUpIiwiU2VsZWN0IGNhdGVnb3JpZXMuLi4iLDUsWyJCbG9nIiwiVHV0b3JpYWwiLCJOZXdzIiwiUmV2aWV3IiwiR3VpZGUiLCJDYXNlIFN0dWR5IiwiSW50ZXJ2aWV3Il0sWyJUdXRvcmlhbCIsIkd1aWRlIl0sIkNob29zZSB1cCB0byA1IGNhdGVnb3JpZXMiLCI0LiBSZXF1aXJlZCAmIFZhbGlkYXRpb24iLCJUYWdzIGlucHV0IHdpdGggdmFsaWRhdGlvbiByZXF1aXJlbWVudHMiLCJQcm9qZWN0IFRhZ3MiLCJBZGQgYXQgbGVhc3Qgb25lIHRhZy4uLiIsITAsIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgLSBhZGQgYXQgbGVhc3Qgb25lIHRhZyIsIjUuIERpc2FibGVkIFN0YXRlIiwiUmVhZC1vbmx5IHRhZ3MgZGlzcGxheSIsIlN5c3RlbSBUYWdzIixbIlN5c3RlbSIsIlByb3RlY3RlZCIsIlJlYWQtT25seSIsIkFyY2hpdmUiXSwhMCwiVGhlc2UgdGFncyBjYW5ub3QgYmUgbW9kaWZpZWQiLCI2LiBGb3JtIEludGVncmF0aW9uIiwiVGFncyBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCIsIlByb2plY3QgTmFtZSIsIk15IEF3ZXNvbWUgUHJvamVjdCIsITAsIm5hbWUiLCJUZWNobm9sb2dpZXMgVXNlZCIsIkFkZCB0ZWNobm9sb2dpZXMuLi4iLCEwLCJ0ZWNobm9sb2dpZXMiLFsiVHlwZVNjcmlwdCIsIkphdmFTY3JpcHQiLCJQeXRob24iLCJHbyIsIlJ1c3QiLCJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJOb2RlLmpzIiwiRGVubyIsIkV4cHJlc3MiLCJGYXN0QVBJIl0sIlByb2plY3QgVGFncyIsIkFkZCBkZXNjcmlwdGl2ZSB0YWdzLi4uIiwidGFncyIsMTAsWyJmcm9udGVuZCIsImJhY2tlbmQiLCJmdWxsc3RhY2siLCJtb2JpbGUiLCJkZXNrdG9wIiwid2ViIiwiYXBpIiwiZGF0YWJhc2UiLCJkZXZvcHMiLCJ1aS91eCIsIm9wZW5zb3VyY2UiLCJzYWFzIiwiZW50ZXJwcmlzZSIsInN0YXJ0dXAiXSwiRGVzY3JpcHRpb24iLCJ0ZXh0YXJlYSIsIkRlc2NyaWJlIHlvdXIgcHJvamVjdC4uLiIsImRlc2NyaXB0aW9uIiwiQ3JlYXRlIFByb2plY3QiLCI3LiBJbnRlcmFjdGl2ZSBEZW1vIiwiQWRkIHRhZ3MgYW5kIHNlZSB0aGVtIGNvbGxlY3RlZCBpbiByZWFsLXRpbWUiLCJZb3VyIEludGVyZXN0cyIsIlR5cGUgeW91ciBpbnRlcmVzdHMuLi4iLFsiTXVzaWMiLCJNb3ZpZXMiLCJCb29rcyIsIlRyYXZlbCIsIlBob3RvZ3JhcGh5IiwiQ29va2luZyIsIkdhbWluZyIsIlNwb3J0cyIsIkFydCIsIlRlY2hub2xvZ3kiLCJGYXNoaW9uIiwiRml0bmVzcyIsIk5hdHVyZSIsIlNjaWVuY2UiLCJIaXN0b3J5Il0sYT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0YWdzLXByZXZpZXciKSx0PWEuZGV0YWlsLnZhbHVlO2UmJih0Lmxlbmd0aD09PTA/ZS5pbm5lckhUTUw9JzxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+JzplLmlubmVySFRNTD10Lm1hcChyPT5gPHNwYW4gY2xhc3M9InRhZy1wcmV2aWV3LWl0ZW0iPiR7cn08L3NwYW4+YCkuam9pbigiIikpfSksImRlbW9GdW5jIil9KTt2YXIgcGMscmkseWFlLFlZZT1mKCgpPT57bGUoKTtTcigpO3ZhKCk7aWlhKCk7UWUoKTtwYz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0scmk9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHlhZT0oKCk9PntsZXQgYT1baWUoImRlZXMtaW5wdXQtdGFncyIpXSxlLHQ9W10scixpPU10LG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdLEIsTT1bXSxTPVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzSW5wdXRUYWdzIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEE9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpBcnJheX0pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOk51bWJlcn0pXSx4PVskKHt0eXBlOkFycmF5fSldLHk9W0soKV0sTj1bSygpXSxPPVtLKCldLEI9WyQoe3R5cGU6U3RyaW5nfSldLHBjKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+InZhbHVlImluIEYsImhhcyIpLGdldDpzKEY9PkYudmFsdWUsImdldCIpLHNldDpzKChGLFcpPT57Ri52YWx1ZT1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LG4sbCkscGModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4icGxhY2Vob2xkZXIiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLnBsYWNlaG9sZGVyPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sYyxwKSxwYyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFRhZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+Im1heFRhZ3MiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5tYXhUYWdzLCJnZXQiKSxzZXQ6cygoRixXKT0+e0YubWF4VGFncz1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LG0sdikscGModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4ic3VnZ2VzdGlvbnMiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5zdWdnZXN0aW9ucywiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLnN1Z2dlc3Rpb25zPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sYixnKSxwYyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlucHV0VmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+ImlucHV0VmFsdWUiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5pbnB1dFZhbHVlLCJnZXQiKSxzZXQ6cygoRixXKT0+e0YuaW5wdXRWYWx1ZT1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LGssQykscGModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+InNob3dTdWdnZXN0aW9ucyJpbiBGLCJoYXMiKSxnZXQ6cyhGPT5GLnNob3dTdWdnZXN0aW9ucywiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLnNob3dTdWdnZXN0aW9ucz1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LF8seikscGModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4iaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCwiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sVCxQKSxwYyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJ2YWxpZGF0aW9uVGV4dCJpbiBGLCJoYXMiKSxnZXQ6cyhGPT5GLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6cygoRixXKT0+e0YudmFsaWRhdGlvblRleHQ9V30sInNldCIpfSxtZXRhZGF0YTpBfSxNLFMpLHBjKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkF9LG51bGwsdCksRT1yPWUudmFsdWUsQSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpBfSl9c3RhdGljIGRlbW89c2lhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1yaSh0aGlzLG4sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShBKXt0aGlzLiNlPUF9I3Q9KHJpKHRoaXMsbCkscmkodGhpcyxjLCJBZGQgdGFncy4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoQSl7dGhpcy4jdD1BfSNhPShyaSh0aGlzLHApLHJpKHRoaXMsbSwwKSk7Z2V0IG1heFRhZ3MoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWF4VGFncyhBKXt0aGlzLiNhPUF9I3I9KHJpKHRoaXMsdikscmkodGhpcyxiLFtdKSk7Z2V0IHN1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN1Z2dlc3Rpb25zKEEpe3RoaXMuI3I9QX0jcz0ocmkodGhpcyxnKSxyaSh0aGlzLGssIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNzfXNldCBpbnB1dFZhbHVlKEEpe3RoaXMuI3M9QX0jaT0ocmkodGhpcyxDKSxyaSh0aGlzLF8sITEpKTtnZXQgc2hvd1N1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dTdWdnZXN0aW9ucyhBKXt0aGlzLiNpPUF9I289KHJpKHRoaXMseikscmkodGhpcyxULC0xKSk7Z2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KCl7cmV0dXJuIHRoaXMuI299c2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KEEpe3RoaXMuI289QX0jbj0ocmkodGhpcyxQKSxyaSh0aGlzLE0sIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdmFsaWRhdGlvblRleHQoQSl7dGhpcy4jbj1BfXN0YXRpYyBzdHlsZXM9W1BlLC4uLk10LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjIpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjMpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogdGFnQXBwZWFyIDAuMTVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgdGFnQXBwZWFyIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgNDYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDU0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAudGFnLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBTdWdnZXN0aW9ucyBkcm9wZG93biAqLwogICAgICAuc3VnZ2VzdGlvbnMtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBBPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKEY9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKEYpJiZGLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRhZ3MtY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb250YWluZXJDbGlja30KICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChGPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZyI+CiAgICAgICAgICAgICAgICA8c3Bhbj4ke0Z9PC9zcGFuPgogICAgICAgICAgICAgICAgJHt0aGlzLmRpc2FibGVkPyIiOndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZy1yZW1vdmUiIEBjbGljaz0ke1c9PnRoaXMucmVtb3ZlVGFnKFcsRil9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQmJighdGhpcy5tYXhUYWdzfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heFRhZ3MpP3dgCiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9InRhZy1pbnB1dCIKICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUtleURvd259CiAgICAgICAgICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLmhhbmRsZUJsdXJ9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMuc2hvd1N1Z2dlc3Rpb25zJiZBLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAke0EubWFwKChGLFcpPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0ic3VnZ2VzdGlvbiAke1c9PT10aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7aj0+e2oucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZFRhZyhGKX19CiAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9V30KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtGfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ29udGFpbmVyQ2xpY2soQSl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7RiYmQS50YXJnZXQhPT1GJiZGLmZvY3VzKCl9aGFuZGxlSW5wdXQoQSl7bGV0IEY9QS50YXJnZXQ7aWYodGhpcy5pbnB1dFZhbHVlPUYudmFsdWUsdGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCIsIil8fHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiOyIpKXtsZXQgVz10aGlzLmlucHV0VmFsdWUucmVwbGFjZSgvWyw7XS9nLCIiKS50cmltKCk7VyYmdGhpcy5hZGRUYWcoVyl9fWhhbmRsZUtleURvd24oQSl7bGV0IEY9QS50YXJnZXQ7aWYoQS5rZXk9PT0iRW50ZXIiKWlmKEEucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4Pj0wJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7bGV0IFc9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoaj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoaikmJmoudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpO1dbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0mJnRoaXMuYWRkVGFnKFdbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0pfWVsc2UgdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSYmdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlLnRyaW0oKSk7ZWxzZSBpZihBLmtleT09PSJCYWNrc3BhY2UiJiYhdGhpcy5pbnB1dFZhbHVlJiZ0aGlzLnZhbHVlLmxlbmd0aD4wKXRoaXMucmVtb3ZlVGFnKEEsdGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXSk7ZWxzZSBpZihBLmtleT09PSJBcnJvd0Rvd24iJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7QS5wcmV2ZW50RGVmYXVsdCgpO2xldCBXPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKGo9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKGopJiZqLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKS5sZW5ndGg7dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1NYXRoLm1pbih0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KzEsVy0xKX1lbHNlIEEua2V5PT09IkFycm93VXAiJiZ0aGlzLnNob3dTdWdnZXN0aW9ucz8oQS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5tYXgodGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleC0xLDApKTpBLmtleT09PSJFc2NhcGUiJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMSl9aGFuZGxlRm9jdXMoKXt0aGlzLnN1Z2dlc3Rpb25zLmxlbmd0aD4wJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITApfWhhbmRsZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMX0sMjAwKX1hZGRUYWcoQSl7aWYoIUF8fHRoaXMudmFsdWUuaW5jbHVkZXMoQSl8fHRoaXMubWF4VGFncyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4VGFncylyZXR1cm47dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxBXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMTtsZXQgRj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWctaW5wdXQiKTtGJiYoRi52YWx1ZT0iIiksdGhpcy5lbWl0Q2hhbmdlKCl9cmVtb3ZlVGFnKEEsRil7QS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKFc9PlchPT1GKSx0aGlzLmVtaXRDaGFuZ2UoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoQSl7dGhpcy52YWx1ZT1BfHxbXX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYoIXRoaXMudmFsdWV8fHRoaXMudmFsdWUubGVuZ3RoPT09MCk/KHRoaXMudmFsaWRhdGlvblRleHQ9IkF0IGxlYXN0IG9uZSB0YWcgaXMgcmVxdWlyZWQiLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHJpKHRoaXMsUyl9c3RhdGlje3JpKHIsdCl9fTtyZXR1cm4gRT1yfSkoKX0pO3ZhciBvaWEsbmlhPWYoKCk9PntsZSgpO05hKCk7WXMoKTtpbSgpO240KCk7VGYoKTtvaWE9cygoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtYYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmY2ZmY7CiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogIzFlNDBhZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIExpc3QgSW5wdXQifSAuc3VidGl0bGU9JHsiU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTaG9wcGluZyBMaXN0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJNaWxrIiwiQnJlYWQiLCJFZ2dzIiwiQ2hlZXNlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRG91YmxlLWNsaWNrIHRvIGVkaXQgaXRlbXMsIG9yIHVzZSB0aGUgZWRpdCBidXR0b24ifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg8J+SoSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gU29ydGFibGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJEcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiVGFzayBQcmlvcml0eSJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgdGFzay4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siUmV2aWV3IHB1bGwgcmVxdWVzdHMiLCJGaXggY3JpdGljYWwgYnVnIiwiVXBkYXRlIGRvY3VtZW50YXRpb24iLCJEZXBsb3kgdG8gcHJvZHVjdGlvbiIsIlRlYW0gc3RhbmR1cCBtZWV0aW5nIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRHJhZyBpdGVtcyB1c2luZyB0aGUgaGFuZGxlIHRvIHJlb3JkZXIgdGhlbSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5SEIERyYWcgdGhlIGdyaXAgaGFuZGxlIHRvIHJlb3JkZXIgdGFza3MgYnkgcHJpb3JpdHkKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gTWVtYmVycyAoTWluIDIsIE1heCA1KSJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB0ZWFtIG1lbWJlci4uLiJ9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgICAubWF4SXRlbXM9JHs1fQogICAgICAgICAgICAgIC52YWx1ZT0ke1siQWxpY2UiLCJCb2IiXX0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIDItNSB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlVuaXF1ZSBUYWdzIChObyBEdXBsaWNhdGVzKSJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB1bmlxdWUgdGFnLi4uIn0KICAgICAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJmcm9udGVuZCIsImJhY2tlbmQiLCJkYXRhYmFzZSJdfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBEZWxldGUgQ29uZmlybWF0aW9uIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmUgY29uZmlybWF0aW9uIGJlZm9yZSBkZWxldGluZyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJJbXBvcnRhbnQgRG9jdW1lbnRzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgZG9jdW1lbnQgbmFtZS4uLiJ9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJDb250cmFjdF8yMDI0LnBkZiIsIkZpbmFuY2lhbF9SZXBvcnRfUTMueGxzeCIsIlByb2plY3RfUHJvcG9zYWwuZG9jeCIsIk1lZXRpbmdfTm90ZXMudHh0Il19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRGVsZXRpb24gcmVxdWlyZXMgY29uZmlybWF0aW9uIGZvciBzYWZldHkifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIERpc2FibGVkIFN0YXRlIn0gLnN1YnRpdGxlPSR7IlJlYWQtb25seSBsaXN0IGRpc3BsYXkifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiU3lzdGVtIERlZmF1bHRzIn0KICAgICAgICAgIC52YWx1ZT0ke1siRGVmYXVsdCBTZXR0aW5nIDEiLCJEZWZhdWx0IFNldHRpbmcgMiIsIkRlZmF1bHQgU2V0dGluZyAzIl19CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGVzZSBpdGVtcyBjYW5ub3QgYmUgbW9kaWZpZWQifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiTGlzdCBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJSZWNpcGUgTmFtZSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJNeSBBbWF6aW5nIFJlY2lwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7Im5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiSW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaW5ncmVkaWVudC4uLiJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7M30KICAgICAgICAgICAgICAua2V5PSR7ImluZ3JlZGllbnRzIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIjIgY3VwcyBmbG91ciIsIjEgY3VwIHN1Z2FyIiwiMyBlZ2dzIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBhdCBsZWFzdCAzIGluZ3JlZGllbnRzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbnN0cnVjdGlvbnMifQogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaW5zdHJ1Y3Rpb24gc3RlcC4uLiJ9CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgICAua2V5PSR7Imluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJQcmVoZWF0IG92ZW4gdG8gMzUwXHhCMEYiLCJNaXggZHJ5IGluZ3JlZGllbnRzIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBjb29raW5nIGluc3RydWN0aW9ucyBpbiBvcmRlciJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQW55IHNwZWNpYWwgbm90ZXMgb3IgdGlwcy4uLiJ9CiAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTYXZlIFJlY2lwZSJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiQnVpbGQgeW91ciBvd24gZmVhdHVyZSBsaXN0IGFuZCBzZWUgdGhlIGRhdGEifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtbGlzdCIKICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IEZlYXR1cmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSBmZWF0dXJlLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLmNvbmZpcm1EZWxldGU9JHshMX0KICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgIC5tYXhJdGVtcz0kezEwfQogICAgICAgICAgQGNoYW5nZT0ke2E9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjbGlzdC1qc29uIik7aWYoZSl7bGV0IHQ9e2l0ZW1zOmEuZGV0YWlsLnZhbHVlLGNvdW50OmEuZGV0YWlsLnZhbHVlLmxlbmd0aCx0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfTtlLnRleHRDb250ZW50PUpTT04uc3RyaW5naWZ5KHQsbnVsbCwyKX19fQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9Imxpc3QtanNvbiI+CiAgICAgICAgICB7CiAgICAgICAgICAgICJpdGVtcyI6IFtdLAogICAgICAgICAgICAiY291bnQiOiAwLAogICAgICAgICAgICAidGltZXN0YW1wIjogIiR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSIKICAgICAgICAgIH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg4pyoIEFkZCwgZWRpdCwgcmVtb3ZlLCBhbmQgcmVvcmRlciBpdGVtcyB0byBzZWUgdGhlIEpTT04gb3V0cHV0IHVwZGF0ZSBpbiByZWFsLXRpbWUKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjguIEFkdmFuY2VkIENvbmZpZ3VyYXRpb24ifSAuc3VidGl0bGU9JHsiQ29tYmluZSBhbGwgZmVhdHVyZXMgZm9yIGNvbXBsZXggdXNlIGNhc2VzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgTWlsZXN0b25lcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIG1pbGVzdG9uZS4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIlByb2plY3QgS2lja29mZiAtIFdlZWsgMSIsIlJlcXVpcmVtZW50cyBHYXRoZXJpbmcgLSBXZWVrIDItMyIsIkRlc2lnbiBQaGFzZSAtIFdlZWsgNC02IiwiRGV2ZWxvcG1lbnQgU3ByaW50IDEgLSBXZWVrIDctOSIsIlRlc3RpbmcgJiBRQSAtIFdlZWsgMTAtMTEiLCJEZXBsb3ltZW50IC0gV2VlayAxMiJdfQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyEwfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1pbkl0ZW1zPSR7M30KICAgICAgICAgIC5tYXhJdGVtcz0kezEyfQogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWFuYWdlIHByb2plY3QgbWlsZXN0b25lcyAoMy0xMiBpdGVtcywgc29ydGFibGUsIG5vIGR1cGxpY2F0ZXMpIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBDYW5kaWRhdGVzIHdpdGggVGFiIENvbXBsZXRpb24ifSAuc3VidGl0bGU9JHsiVGVybWluYWwtc3R5bGUgYXV0b2NvbXBsZXRlIFx1MjAxNCBUYWIgYWNjZXB0cywgU2hpZnQrVGFiIGN5Y2xlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgaWQ9ImNhbmRpZGF0ZS1saXN0IgogICAgICAgICAgICAubGFiZWw9JHsiQXNzaWduIFRlYW0gTWVtYmVycyJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIGEgbmFtZS4uLiAoVGFiIHRvIGNvbXBsZXRlKSJ9CiAgICAgICAgICAgIC5jYW5kaWRhdGVzPSR7W3t2aWV3S2V5OiJBbGljZSBTbWl0aCIscGF5bG9hZDp7aWQ6MSxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiRnJvbnRlbmQifX0se3ZpZXdLZXk6IkJvYiBKb2huc29uIixwYXlsb2FkOntpZDoyLHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJVWCJ9fSx7dmlld0tleToiQ2Fyb2wgV2lsbGlhbXMiLHBheWxvYWQ6e2lkOjMscm9sZToiUHJvZHVjdCBNYW5hZ2VyIixkZXBhcnRtZW50OiJQcm9kdWN0In19LHt2aWV3S2V5OiJEYXZpZCBCcm93biIscGF5bG9hZDp7aWQ6NCxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiQmFja2VuZCJ9fSx7dmlld0tleToiRXZlIERhdmlzIixwYXlsb2FkOntpZDo1LHJvbGU6IlFBIEVuZ2luZWVyIixkZXBhcnRtZW50OiJRdWFsaXR5In19LHt2aWV3S2V5OiJGcmFuayBNaWxsZXIiLHBheWxvYWQ6e2lkOjYscm9sZToiRGV2T3BzIixkZXBhcnRtZW50OiJJbmZyYXN0cnVjdHVyZSJ9fSx7dmlld0tleToiR3JhY2UgV2lsc29uIixwYXlsb2FkOntpZDo3LHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJVWCJ9fSx7dmlld0tleToiSGVucnkgTW9vcmUiLHBheWxvYWQ6e2lkOjgscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IkZyb250ZW5kIn19XX0KICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSBTbWl0aCIsIkNhcm9sIFdpbGxpYW1zIl19CiAgICAgICAgICAgIC5tYXhJdGVtcz0kezV9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUeXBlIHRvIHNlZSBnaG9zdCBjb21wbGV0aW9uLiBUYWIgdG8gYWNjZXB0LCBTaGlmdCtUYWIgdG8gY3ljbGUsIEVudGVyIHRvIGFkZC4ifQogICAgICAgICAgICBAY2hhbmdlPSR7YT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjYW5kaWRhdGUtanNvbiIpO2lmKGUpe2xldCByPWEudGFyZ2V0LmdldEFkZGVkQ2FuZGlkYXRlcygpO2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkocixudWxsLDIpfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNTAwOyBtYXJnaW4tYm90dG9tOiA4cHg7IGNvbG9yOiBpbmhlcml0OyI+U2VsZWN0ZWQgQ2FuZGlkYXRlcyAod2l0aCBwYXlsb2Fkcyk8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJjYW5kaWRhdGUtanNvbiI+W108L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgICAgICBUcnkgdHlwaW5nICJEIiDigJQgZ2hvc3QgdGV4dCBzaG93cyAiYXZpZCBCcm93biIuIFByZXNzIFNoaWZ0K1RhYiB0byBjeWNsZSB0byBvdGhlciBELW1hdGNoZXMuIFRhYiBhY2NlcHRzLCBFbnRlciBhZGRzLgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTAuIFRlY2hub2xvZ3kgU3RhY2sifSAuc3VidGl0bGU9JHsiTGFyZ2VyIGNhbmRpZGF0ZSBwb29sIHdpdGggU2hpZnQrVGFiIGN5Y2xpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFRlY2hub2xvZ2llcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSB0byBhdXRvY29tcGxldGUuLi4ifQogICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6IlR5cGVTY3JpcHQiLHBheWxvYWQ6e2NhdGVnb3J5OiJsYW5ndWFnZSJ9fSx7dmlld0tleToiUmVhY3QiLHBheWxvYWQ6e2NhdGVnb3J5OiJmcmFtZXdvcmsifX0se3ZpZXdLZXk6IlZ1ZS5qcyIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiQW5ndWxhciIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiTm9kZS5qcyIscGF5bG9hZDp7Y2F0ZWdvcnk6InJ1bnRpbWUifX0se3ZpZXdLZXk6IkRlbm8iLHBheWxvYWQ6e2NhdGVnb3J5OiJydW50aW1lIn19LHt2aWV3S2V5OiJEb2NrZXIiLHBheWxvYWQ6e2NhdGVnb3J5OiJkZXZvcHMifX0se3ZpZXdLZXk6IlBvc3RncmVTUUwiLHBheWxvYWQ6e2NhdGVnb3J5OiJkYXRhYmFzZSJ9fSx7dmlld0tleToiTW9uZ29EQiIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJSZWRpcyIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJLdWJlcm5ldGVzIixwYXlsb2FkOntjYXRlZ29yeToiZGV2b3BzIn19XX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydUcnkgIkQiIFx1MjAxNCBjeWNsZXMgdGhyb3VnaCBEZW5vL0RvY2tlci4gIlIiIFx1MjAxNCBjeWNsZXMgdGhyb3VnaCBSZWFjdC9SZWRpcy4nfQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjExLiBGcmVlZm9ybSArIENhbmRpZGF0ZXMifSAuc3VidGl0bGU9JHsiQWxsb3cgYWRkaW5nIGl0ZW1zIG5vdCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgKHNob3duIHdpdGggYSBxdWVzdGlvbiBtYXJrKSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYWdzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIGEgdGFnLi4uIChmcmVlZm9ybSBhbGxvd2VkKSJ9CiAgICAgICAgICAuYWxsb3dGcmVlZm9ybT0keyEwfQogICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6ImJ1ZyIscGF5bG9hZDp7Y29sb3I6InJlZCJ9fSx7dmlld0tleToiZmVhdHVyZSIscGF5bG9hZDp7Y29sb3I6ImJsdWUifX0se3ZpZXdLZXk6ImRvY3MiLHBheWxvYWQ6e2NvbG9yOiJncmVlbiJ9fSx7dmlld0tleToicmVmYWN0b3IiLHBheWxvYWQ6e2NvbG9yOiJwdXJwbGUifX0se3ZpZXdLZXk6InBlcmZvcm1hbmNlIixwYXlsb2FkOntjb2xvcjoib3JhbmdlIn19LHt2aWV3S2V5OiJzZWN1cml0eSIscGF5bG9hZDp7Y29sb3I6InJlZCJ9fV19CiAgICAgICAgICAudmFsdWU9JHtbImJ1ZyIsIm15LWN1c3RvbS10YWciLCJmZWF0dXJlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiS25vd24gdGFncyBnZXQgYSBjaGVja21hcmssIGN1c3RvbSB0YWdzIGdldCBhIHF1ZXN0aW9uIG1hcmsuIFRhYiB0byBjb21wbGV0ZSwgRW50ZXIgdG8gYWRkIGZyZWVmb3JtLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTIuIEVtcHR5IFN0YXRlIn0gLnN1YnRpdGxlPSR7IkhvdyB0aGUgY29tcG9uZW50IGxvb2tzIHdpdGggbm8gaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBJZGVhcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU2hhcmUgeW91ciBpZGVhcy4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTdGFydCBhZGRpbmcgaXRlbXMgdG8gYnVpbGQgeW91ciBsaXN0In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBCcixZdCx3YWUsS1llPWYoKCk9PntsZSgpO1NyKCk7dmEoKTtRcigpO25pYSgpO1FlKCk7QnI9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LFl0PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSx3YWU9KCgpPT57bGV0IGE9W2llKCJkZWVzLWlucHV0LWxpc3QiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXSxXLGo9W10sRz1bXSxoZSxSPVtdLFU9W10sbWUsST1bXSxxPVtdLGNlLHVlPVtdLFk9W10sUSxKPVtdLFo9W10sZ2UsYWU9W10scmU9W10seWUsVj1bXSxIPVtdLG9lLHNlPVtdLHRlPVtdLHplLE9lPVtdLHFlPVtdLGR0LCRlPVtdLENlPVtdLE1lLGRlPVtdLHZlPVtdLEFlLFplPVtdLG50PVtdO3ZhciB6dD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0TGlzdCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBUZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6TnVtYmVyfSldLHg9WyQoe3R5cGU6TnVtYmVyfSldLHk9WyQoe3R5cGU6Qm9vbGVhbn0pXSxOPVskKHt0eXBlOkJvb2xlYW59KV0sTz1bJCh7dHlwZTpCb29sZWFufSldLEI9WyQoe3R5cGU6QXJyYXl9KV0sRT1bJCh7dHlwZTpCb29sZWFufSldLFc9WyQoe3R5cGU6U3RyaW5nfSldLGhlPVtLKCldLG1lPVtLKCldLGNlPVtLKCldLFE9W0soKV0sZ2U9W0soKV0seWU9W0soKV0sb2U9W0soKV0semU9W0soKV0sZHQ9W0soKV0sTWU9W0soKV0sQWU9W0soKV0sQnIodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+InZhbHVlImluIHdlLCJoYXMiKSxnZXQ6cyh3ZT0+d2UudmFsdWUsImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS52YWx1ZT1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sbixsKSxCcih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHdlPT4icGxhY2Vob2xkZXIiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OnMoKHdlLFJlKT0+e3dlLnBsYWNlaG9sZGVyPVJlfSwic2V0Iil9LG1ldGFkYXRhOlRlfSxjLHApLEJyKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJtYXhJdGVtcyJpbiB3ZSwiaGFzIiksZ2V0OnMod2U9PndlLm1heEl0ZW1zLCJnZXQiKSxzZXQ6cygod2UsUmUpPT57d2UubWF4SXRlbXM9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LG0sdiksQnIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5JdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+Im1pbkl0ZW1zImluIHdlLCJoYXMiKSxnZXQ6cyh3ZT0+d2UubWluSXRlbXMsImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS5taW5JdGVtcz1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sYixnKSxCcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RHVwbGljYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+ImFsbG93RHVwbGljYXRlcyJpbiB3ZSwiaGFzIiksZ2V0OnMod2U9PndlLmFsbG93RHVwbGljYXRlcywiZ2V0Iiksc2V0OnMoKHdlLFJlKT0+e3dlLmFsbG93RHVwbGljYXRlcz1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sayxDKSxCcih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHdlPT4ic29ydGFibGUiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5zb3J0YWJsZSwiZ2V0Iiksc2V0OnMoKHdlLFJlKT0+e3dlLnNvcnRhYmxlPVJlfSwic2V0Iil9LG1ldGFkYXRhOlRlfSxfLHopLEJyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29uZmlybURlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+ImNvbmZpcm1EZWxldGUiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5jb25maXJtRGVsZXRlLCJnZXQiKSxzZXQ6cygod2UsUmUpPT57d2UuY29uZmlybURlbGV0ZT1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sVCxQKSxCcih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhbmRpZGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJjYW5kaWRhdGVzImluIHdlLCJoYXMiKSxnZXQ6cyh3ZT0+d2UuY2FuZGlkYXRlcywiZ2V0Iiksc2V0OnMoKHdlLFJlKT0+e3dlLmNhbmRpZGF0ZXM9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LE0sUyksQnIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0ZyZWVmb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHdlPT4iYWxsb3dGcmVlZm9ybSJpbiB3ZSwiaGFzIiksZ2V0OnMod2U9PndlLmFsbG93RnJlZWZvcm0sImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS5hbGxvd0ZyZWVmb3JtPVJlfSwic2V0Iil9LG1ldGFkYXRhOlRlfSxBLEYpLEJyKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJ2YWxpZGF0aW9uVGV4dCJpbiB3ZSwiaGFzIiksZ2V0OnMod2U9PndlLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6cygod2UsUmUpPT57d2UudmFsaWRhdGlvblRleHQ9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LGosRyksQnIodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+ImlucHV0VmFsdWUiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5pbnB1dFZhbHVlLCJnZXQiKSxzZXQ6cygod2UsUmUpPT57d2UuaW5wdXRWYWx1ZT1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sUixVKSxCcih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnaG9zdFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJnaG9zdFRleHQiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5naG9zdFRleHQsImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS5naG9zdFRleHQ9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LEkscSksQnIodGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudENhbmRpZGF0ZUluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHdlPT4iY3VycmVudENhbmRpZGF0ZUluZGV4ImluIHdlLCJoYXMiKSxnZXQ6cyh3ZT0+d2UuY3VycmVudENhbmRpZGF0ZUluZGV4LCJnZXQiKSxzZXQ6cygod2UsUmUpPT57d2UuY3VycmVudENhbmRpZGF0ZUluZGV4PVJlfSwic2V0Iil9LG1ldGFkYXRhOlRlfSx1ZSxZKSxCcih0aGlzLG51bGwsUSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+ImVkaXRpbmdJbmRleCJpbiB3ZSwiaGFzIiksZ2V0OnMod2U9PndlLmVkaXRpbmdJbmRleCwiZ2V0Iiksc2V0OnMoKHdlLFJlKT0+e3dlLmVkaXRpbmdJbmRleD1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sSixaKSxCcih0aGlzLG51bGwsZ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0aW5nVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJlZGl0aW5nVmFsdWUiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5lZGl0aW5nVmFsdWUsImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS5lZGl0aW5nVmFsdWU9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LGFlLHJlKSxCcih0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJkcmFnZ2VkSW5kZXgiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5kcmFnZ2VkSW5kZXgsImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS5kcmFnZ2VkSW5kZXg9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LFYsSCksQnIodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+ImRyYWdPdmVySW5kZXgiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5kcmFnT3ZlckluZGV4LCJnZXQiKSxzZXQ6cygod2UsUmUpPT57d2UuZHJhZ092ZXJJbmRleD1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sc2UsdGUpLEJyKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJkcmFnU3RhcnRZImluIHdlLCJoYXMiKSxnZXQ6cyh3ZT0+d2UuZHJhZ1N0YXJ0WSwiZ2V0Iiksc2V0OnMoKHdlLFJlKT0+e3dlLmRyYWdTdGFydFk9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LE9lLHFlKSxCcih0aGlzLG51bGwsZHQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJkcmFnQ3VycmVudFkiaW4gd2UsImhhcyIpLGdldDpzKHdlPT53ZS5kcmFnQ3VycmVudFksImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS5kcmFnQ3VycmVudFk9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LCRlLENlKSxCcih0aGlzLG51bGwsTWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh3ZT0+InRhcmdldEluZGV4ImluIHdlLCJoYXMiKSxnZXQ6cyh3ZT0+d2UudGFyZ2V0SW5kZXgsImdldCIpLHNldDpzKCh3ZSxSZSk9Pnt3ZS50YXJnZXRJbmRleD1SZX0sInNldCIpfSxtZXRhZGF0YTpUZX0sZGUsdmUpLEJyKHRoaXMsbnVsbCxBZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMod2U9PiJpdGVtSGVpZ2h0ImluIHdlLCJoYXMiKSxnZXQ6cyh3ZT0+d2UuaXRlbUhlaWdodCwiZ2V0Iiksc2V0OnMoKHdlLFJlKT0+e3dlLml0ZW1IZWlnaHQ9UmV9LCJzZXQiKX0sbWV0YWRhdGE6VGV9LFplLG50KSxCcihudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpUZX0sbnVsbCx0KSx6dD1yPWUudmFsdWUsVGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VGV9KX1zdGF0aWMgZGVtbz1vaWE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVl0KHRoaXMsbixbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFRlKXt0aGlzLiNlPVRlfSN0PShZdCh0aGlzLGwpLFl0KHRoaXMsYywiQWRkIG5ldyBpdGVtLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihUZSl7dGhpcy4jdD1UZX0jYT0oWXQodGhpcyxwKSxZdCh0aGlzLG0sMCkpO2dldCBtYXhJdGVtcygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhJdGVtcyhUZSl7dGhpcy4jYT1UZX0jcj0oWXQodGhpcyx2KSxZdCh0aGlzLGIsMCkpO2dldCBtaW5JdGVtcygpe3JldHVybiB0aGlzLiNyfXNldCBtaW5JdGVtcyhUZSl7dGhpcy4jcj1UZX0jcz0oWXQodGhpcyxnKSxZdCh0aGlzLGssITEpKTtnZXQgYWxsb3dEdXBsaWNhdGVzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFsbG93RHVwbGljYXRlcyhUZSl7dGhpcy4jcz1UZX0jaT0oWXQodGhpcyxDKSxZdCh0aGlzLF8sITEpKTtnZXQgc29ydGFibGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc29ydGFibGUoVGUpe3RoaXMuI2k9VGV9I289KFl0KHRoaXMseiksWXQodGhpcyxULCExKSk7Z2V0IGNvbmZpcm1EZWxldGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgY29uZmlybURlbGV0ZShUZSl7dGhpcy4jbz1UZX0jbj0oWXQodGhpcyxQKSxZdCh0aGlzLE0sW10pKTtnZXQgY2FuZGlkYXRlcygpe3JldHVybiB0aGlzLiNufXNldCBjYW5kaWRhdGVzKFRlKXt0aGlzLiNuPVRlfSNsPShZdCh0aGlzLFMpLFl0KHRoaXMsQSwhMSkpO2dldCBhbGxvd0ZyZWVmb3JtKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGFsbG93RnJlZWZvcm0oVGUpe3RoaXMuI2w9VGV9I2M9KFl0KHRoaXMsRiksWXQodGhpcyxqLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25UZXh0KFRlKXt0aGlzLiNjPVRlfWFkZGVkQ2FuZGlkYXRlc01hcD0oWXQodGhpcyxHKSxuZXcgTWFwKTttYXRjaGluZ0NhbmRpZGF0ZXM9W107I2Q9WXQodGhpcyxSLCIiKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBpbnB1dFZhbHVlKFRlKXt0aGlzLiNkPVRlfSN1PShZdCh0aGlzLFUpLFl0KHRoaXMsSSwiIikpO2dldCBnaG9zdFRleHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZ2hvc3RUZXh0KFRlKXt0aGlzLiN1PVRlfSNwPShZdCh0aGlzLHEpLFl0KHRoaXMsdWUsLTEpKTtnZXQgY3VycmVudENhbmRpZGF0ZUluZGV4KCl7cmV0dXJuIHRoaXMuI3B9c2V0IGN1cnJlbnRDYW5kaWRhdGVJbmRleChUZSl7dGhpcy4jcD1UZX0jZj0oWXQodGhpcyxZKSxZdCh0aGlzLEosLTEpKTtnZXQgZWRpdGluZ0luZGV4KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGVkaXRpbmdJbmRleChUZSl7dGhpcy4jZj1UZX0jaD0oWXQodGhpcyxaKSxZdCh0aGlzLGFlLCIiKSk7Z2V0IGVkaXRpbmdWYWx1ZSgpe3JldHVybiB0aGlzLiNofXNldCBlZGl0aW5nVmFsdWUoVGUpe3RoaXMuI2g9VGV9I209KFl0KHRoaXMscmUpLFl0KHRoaXMsViwtMSkpO2dldCBkcmFnZ2VkSW5kZXgoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZHJhZ2dlZEluZGV4KFRlKXt0aGlzLiNtPVRlfSNnPShZdCh0aGlzLEgpLFl0KHRoaXMsc2UsLTEpKTtnZXQgZHJhZ092ZXJJbmRleCgpe3JldHVybiB0aGlzLiNnfXNldCBkcmFnT3ZlckluZGV4KFRlKXt0aGlzLiNnPVRlfSNiPShZdCh0aGlzLHRlKSxZdCh0aGlzLE9lLDApKTtnZXQgZHJhZ1N0YXJ0WSgpe3JldHVybiB0aGlzLiNifXNldCBkcmFnU3RhcnRZKFRlKXt0aGlzLiNiPVRlfSN2PShZdCh0aGlzLHFlKSxZdCh0aGlzLCRlLDApKTtnZXQgZHJhZ0N1cnJlbnRZKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IGRyYWdDdXJyZW50WShUZSl7dGhpcy4jdj1UZX0jeD0oWXQodGhpcyxDZSksWXQodGhpcyxkZSwtMSkpO2dldCB0YXJnZXRJbmRleCgpe3JldHVybiB0aGlzLiN4fXNldCB0YXJnZXRJbmRleChUZSl7dGhpcy4jeD1UZX0jeT0oWXQodGhpcyx2ZSksWXQodGhpcyxaZSwwKSk7Z2V0IGl0ZW1IZWlnaHQoKXtyZXR1cm4gdGhpcy4jeX1zZXQgaXRlbUhlaWdodChUZSl7dGhpcy4jeT1UZX1ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPShZdCh0aGlzLG50KSxudWxsKTtib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbDtvcmlnaW5hbEl0ZW1SZWN0cz1bXTtzdGF0aWMgc3R5bGVzPVtQZSwuLi5NdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6Zm9jdXMtd2l0aGluOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXMgewogICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbTpsYXN0LW9mLXR5cGUgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOm5vdCguaXMtZHJhZ2dpbmcpIC5saXN0LWl0ZW06aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itcm93LWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogRHJhZ2dpbmcgaXRlbSAtIGZvbGxvd3MgY3Vyc29yICovCiAgICAgIC5saXN0LWl0ZW0uZHJhZ2dpbmcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDEyJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMCwgMCwgMCwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIHVwIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLXVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSkpOwogICAgICB9CgogICAgICAvKiBJdGVtcyB0aGF0IG5lZWQgdG8gbW92ZSBkb3duIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLWRvd24gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1pdGVtLWhlaWdodCwgNDhweCkpOwogICAgICB9CgoKICAgICAgLmNhbmRpZGF0ZS1jaGVjayB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jYW5kaWRhdGUtdW5rbm93biB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA1OCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuaXRlbS1idWxsZXQgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGN1cnNvcjogbW92ZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5pdGVtLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLml0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5pdGVtLWVkaXQtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogM3B4IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pdGVtLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSA1MC42JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTNweDsKICAgICAgICBoZWlnaHQ6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5hZGQtaXRlbS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDI0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDM0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZSB0cmFuc2l0aW9ucyBkdXJpbmcgZHJvcCB0byBwcmV2ZW50IGZsYXNoICovCiAgICAgIC5saXN0LWl0ZW1zLmRyb3BwaW5nIC5saXN0LWl0ZW0gewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLyog4pSA4pSAIFRlcm1pbmFsLXN0eWxlIGlubGluZSBhdXRvY29tcGxldGUg4pSA4pSAICovCiAgICAgIC5hdXRvY29tcGxldGUtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5naG9zdC10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LXR5cGVkIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5naG9zdC1jb21wbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSIke3RoaXMudmFsdWUubGVuZ3RofSBpdGVtJHt0aGlzLnZhbHVlLmxlbmd0aCE9PTE/InMiOiIifSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0LWl0ZW1zIj4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMudmFsdWUubWFwKChUZSx3ZSk9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9Imxpc3QtaXRlbSAke3RoaXMuZHJhZ2dlZEluZGV4PT09d2U/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9IiR7dGhpcy5zb3J0YWJsZSYmIXRoaXMuZGlzYWJsZWR9IgogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke1JlPT50aGlzLmhhbmRsZURyYWdTdGFydChSZSx3ZSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke3RoaXMuaGFuZGxlRHJhZ0VuZH0KICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke1JlPT50aGlzLmhhbmRsZURyYWdPdmVyKFJlLHdlKX0KICAgICAgICAgICAgICAgIEBkcm9wPSR7UmU9PnRoaXMuaGFuZGxlRHJvcChSZSx3ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcmFnLWhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Z3JpcFZlcnRpY2FsIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgICAke3RoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICAke3RoaXMuY2FuZGlkYXRlcy5zb21lKFJlPT5SZS52aWV3S2V5PT09VGUpP3dgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FuZGlkYXRlLWNoZWNrIiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNhbmRpZGF0ZS11bmtub3duIiAuaWNvbj0keyJsdWNpZGU6aGVscENpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgYDohdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJpdGVtLWJ1bGxldCIgLmljb249JHsibHVjaWRlOmRvdCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZWRpdGluZ0luZGV4PT09d2U/d2AKICAgICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXRlbS1lZGl0LWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5lZGl0aW5nVmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtSZT0+dGhpcy5lZGl0aW5nVmFsdWU9UmUudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtSZT0+dGhpcy5oYW5kbGVFZGl0S2V5RG93bihSZSx3ZSl9CiAgICAgICAgICAgICAgICAgICAgICBAYmx1cj0keygpPT50aGlzLnNhdmVFZGl0KHdlKX0KICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS10ZXh0IiBAZGJsY2xpY2s9JHsoKT0+IXRoaXMuZGlzYWJsZWQmJnRoaXMuc3RhcnRFZGl0KHdlKX0+CiAgICAgICAgICAgICAgICAgICAgICAke1RlfQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT13ZT93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gc2F2ZSIgQGNsaWNrPSR7KCk9PnRoaXMuc2F2ZUVkaXQod2UpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBjYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNhbmNlbEVkaXQoKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlzYWJsZWQ/IiI6d2AKICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnN0YXJ0RWRpdCh3ZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwZW5jaWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUl0ZW0od2UpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJhc2gyIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgTm8gaXRlbXMgYWRkZWQgeWV0CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgJHshdGhpcy5kaXNhYmxlZCYmKCF0aGlzLm1heEl0ZW1zfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heEl0ZW1zKT93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImFkZC1pdGVtLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0b2NvbXBsZXRlLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLmdob3N0VGV4dD93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2hvc3QtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imdob3N0LXR5cGVkIj4ke3RoaXMuaW5wdXRWYWx1ZX08L3NwYW4+PHNwYW4gY2xhc3M9Imdob3N0LWNvbXBsZXRpb24iPiR7dGhpcy5naG9zdFRleHR9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtaW5wdXQiCiAgICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUFkZEtleURvd259CiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hZGRJdGVtfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuaW5wdXRWYWx1ZS50cmltKCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUlucHV0KFRlKXt0aGlzLmlucHV0VmFsdWU9VGUudGFyZ2V0LnZhbHVlLHRoaXMudXBkYXRlR2hvc3RUZXh0KCl9dXBkYXRlR2hvc3RUZXh0KCl7aWYodGhpcy5jYW5kaWRhdGVzLmxlbmd0aD09PTB8fCF0aGlzLmlucHV0VmFsdWUpe3RoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdO3JldHVybn1sZXQgVGU9dGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCk7dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9dGhpcy5jYW5kaWRhdGVzLmZpbHRlcih3ZT0+dGhpcy52YWx1ZS5pbmNsdWRlcyh3ZS52aWV3S2V5KT8hMTp3ZS52aWV3S2V5LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChUZSkpLnNvcnQoKHdlLFJlKT0+d2Uudmlld0tleS5sZW5ndGgtUmUudmlld0tleS5sZW5ndGgpLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wPyh0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0wLHRoaXMuZ2hvc3RUZXh0PXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzWzBdLnZpZXdLZXkuc2xpY2UodGhpcy5pbnB1dFZhbHVlLmxlbmd0aCkpOih0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLmdob3N0VGV4dD0iIil9aGFuZGxlQWRkS2V5RG93bihUZSl7aWYoVGUua2V5PT09IlRhYiImJnRoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MCYmdGhpcy5pbnB1dFZhbHVlKXtpZihUZS5wcmV2ZW50RGVmYXVsdCgpLFRlLnNoaWZ0S2V5JiZ0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcy5sZW5ndGg+MCl7dGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4KzEpJXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aDtsZXQgd2U9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXhdO3RoaXMuZ2hvc3RUZXh0PXdlLnZpZXdLZXkuc2xpY2UodGhpcy5pbnB1dFZhbHVlLmxlbmd0aCl9ZWxzZSBpZighVGUuc2hpZnRLZXkmJnRoaXMuZ2hvc3RUZXh0JiZ0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcy5sZW5ndGg+MCl7bGV0IHdlPXRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzW3RoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4XTt0aGlzLmlucHV0VmFsdWU9d2Uudmlld0tleSx0aGlzLmdob3N0VGV4dD0iIjtsZXQgUmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7UmUmJihSZS52YWx1ZT13ZS52aWV3S2V5KX1yZXR1cm59aWYoVGUua2V5PT09IkVzY2FwZSImJnRoaXMuZ2hvc3RUZXh0KXtUZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdO3JldHVybn1pZihUZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpKXtpZihUZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuZGlkYXRlcy5sZW5ndGg+MCl7bGV0IHdlPXRoaXMuY2FuZGlkYXRlcy5maW5kKFJlPT5SZS52aWV3S2V5LnRvTG93ZXJDYXNlKCk9PT10aGlzLmlucHV0VmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCkpO3dlP3RoaXMuc2VsZWN0Q2FuZGlkYXRlKHdlKTp0aGlzLmFsbG93RnJlZWZvcm0mJih0aGlzLmdob3N0VGV4dD0iIix0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz1bXSx0aGlzLmFkZEl0ZW0oKSk7cmV0dXJufXRoaXMuYWRkSXRlbSgpfX1oYW5kbGVFZGl0S2V5RG93bihUZSx3ZSl7VGUua2V5PT09IkVudGVyIj8oVGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVFZGl0KHdlKSk6VGUua2V5PT09IkVzY2FwZSImJihUZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsRWRpdCgpKX1zZWxlY3RDYW5kaWRhdGUoVGUpe2lmKHRoaXMubWF4SXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heEl0ZW1zKXt0aGlzLnZhbGlkYXRpb25UZXh0PWBNYXhpbXVtICR7dGhpcy5tYXhJdGVtc30gaXRlbXMgYWxsb3dlZGAsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRoaXMudmFsdWUuaW5jbHVkZXMoVGUudmlld0tleSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn10aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5zZXQoVGUudmlld0tleSxUZSksdGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxUZS52aWV3S2V5XSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W10sdGhpcy52YWxpZGF0aW9uVGV4dD0iIix0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgd2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7d2UmJih3ZS52YWx1ZT0iIix3ZS5mb2N1cygpKX0pfWdldENhbmRpZGF0ZUZvckl0ZW0oVGUpe3JldHVybiB0aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5nZXQoVGUpfWdldEFkZGVkQ2FuZGlkYXRlcygpe3JldHVybiB0aGlzLnZhbHVlLm1hcChUZT0+dGhpcy5hZGRlZENhbmRpZGF0ZXNNYXAuZ2V0KFRlKSkuZmlsdGVyKFRlPT5UZSE9PXZvaWQgMCl9YWRkSXRlbSgpe2xldCBUZT10aGlzLmlucHV0VmFsdWUudHJpbSgpO2lmKFRlKXtpZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRoaXMudmFsdWUuaW5jbHVkZXMoVGUpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsVGVdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCB3ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTt3ZSYmKHdlLnZhbHVlPSIiLHdlLmZvY3VzKCkpfSl9fXN0YXJ0RWRpdChUZSl7dGhpcy5lZGl0aW5nSW5kZXg9VGUsdGhpcy5lZGl0aW5nVmFsdWU9dGhpcy52YWx1ZVtUZV0sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IHdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLml0ZW0tZWRpdC1pbnB1dCIpO3dlJiYod2UuZm9jdXMoKSx3ZS5zZWxlY3QoKSl9KX1zYXZlRWRpdChUZSl7bGV0IHdlPXRoaXMuZWRpdGluZ1ZhbHVlLnRyaW0oKTtpZighd2Upe3RoaXMuY2FuY2VsRWRpdCgpO3JldHVybn1pZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJndlIT09dGhpcy52YWx1ZVtUZV0mJnRoaXMudmFsdWUuaW5jbHVkZXMod2UpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59bGV0IFJlPVsuLi50aGlzLnZhbHVlXTtSZVtUZV09d2UsdGhpcy52YWx1ZT1SZSx0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpfWNhbmNlbEVkaXQoKXt0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIn1hc3luYyByZW1vdmVJdGVtKFRlKXtpZih0aGlzLmNvbmZpcm1EZWxldGUmJiFhd2FpdCB0aGlzLnNob3dDb25maXJtRGlhbG9nKGBEZWxldGUgIiR7dGhpcy52YWx1ZVtUZV19Ij9gKSlyZXR1cm47bGV0IHdlPXRoaXMudmFsdWVbVGVdO3RoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLmRlbGV0ZSh3ZSksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcigoUmUsZmUpPT5mZSE9PVRlKSx0aGlzLmVtaXRDaGFuZ2UoKX1hc3luYyBzaG93Q29uZmlybURpYWxvZyhUZSl7cmV0dXJuIGNvbmZpcm0oVGUpfWhhbmRsZURyYWdTdGFydChUZSx3ZSl7aWYoIXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWQpcmV0dXJuO3RoaXMuZHJhZ2dlZEluZGV4PXdlLHRoaXMudGFyZ2V0SW5kZXg9d2UsVGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLFRlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIix3ZS50b1N0cmluZygpKTtsZXQgUmU9bmV3IEltYWdlO1JlLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsVGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShSZSwwLDApLHRoaXMuZHJhZ1N0YXJ0WT1UZS5jbGllbnRZLHRoaXMuZHJhZ0N1cnJlbnRZPVRlLmNsaWVudFk7bGV0IGZlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxiZT1BcnJheS5mcm9tKGZlPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIil8fFtdKTtiZVt3ZV0mJih0aGlzLml0ZW1IZWlnaHQ9YmVbd2VdLm9mZnNldEhlaWdodCksdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1iZS5tYXAoRWU9PkVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxmZT8uY2xhc3NMaXN0LmFkZCgiaXMtZHJhZ2dpbmciKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9dGhpcy5oYW5kbGVHbG9iYWxEcmFnT3Zlci5iaW5kKHRoaXMpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPXRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZC5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKX1oYW5kbGVHbG9iYWxEcmFnT3ZlcihUZSl7aWYoVGUucHJldmVudERlZmF1bHQoKSx0aGlzLmRyYWdnZWRJbmRleD09PS0xKXJldHVybjt0aGlzLmRyYWdDdXJyZW50WT1UZS5jbGllbnRZO2xldCB3ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7aWYoIXdlKXJldHVybjtsZXQgUmU9QXJyYXkuZnJvbSh3ZS5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIikpLGZlPVJlW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighZmUpcmV0dXJuO2xldCBiZT10aGlzLmRyYWdDdXJyZW50WS10aGlzLmRyYWdTdGFydFk7ZmUuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7YmV9cHgpYDtsZXQgRWU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF07aWYoIUVlKXJldHVybjtsZXQgZnQ9RWUudG9wK0VlLmhlaWdodC8yK2JlLG10PXRoaXMuZHJhZ2dlZEluZGV4O2ZvcihsZXQgSXQ9MDtJdDxSZS5sZW5ndGg7SXQrKyl7aWYoSXQ9PT10aGlzLmRyYWdnZWRJbmRleCljb250aW51ZTtsZXQgWGE9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1tJdF07aWYoIVhhKWNvbnRpbnVlO2xldCBKYT1YYS50b3ArWGEuaGVpZ2h0LzI7aWYoUmVbSXRdLmNsYXNzTGlzdC5jb250YWlucygibW92ZS11cCIpP0phLT10aGlzLml0ZW1IZWlnaHQ6UmVbSXRdLmNsYXNzTGlzdC5jb250YWlucygibW92ZS1kb3duIikmJihKYSs9dGhpcy5pdGVtSGVpZ2h0KSxmdDxKYSYmSXQ8dGhpcy5kcmFnZ2VkSW5kZXgpe210PUl0O2JyZWFrfWVsc2UgZnQ+SmEmJkl0PnRoaXMuZHJhZ2dlZEluZGV4JiYobXQ9SXQpfW10IT09dGhpcy50YXJnZXRJbmRleCYmKHRoaXMudGFyZ2V0SW5kZXg9bXQsdGhpcy51cGRhdGVJdGVtUG9zaXRpb25zKFJlKSl9dXBkYXRlSXRlbVBvc2l0aW9ucyhUZSl7bGV0IHdlPXRoaXMuZHJhZ2dlZEluZGV4LFJlPXRoaXMudGFyZ2V0SW5kZXgsZmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpO2ZlJiZmZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1pdGVtLWhlaWdodCIsYCR7dGhpcy5pdGVtSGVpZ2h0fXB4YCksVGUuZm9yRWFjaCgoYmUsRWUpPT57RWUhPT13ZSYmKGJlLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxiZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1pdGVtLWhlaWdodCIsYCR7dGhpcy5pdGVtSGVpZ2h0fXB4YCksd2U8UmU/RWU+d2UmJkVlPD1SZSYmYmUuY2xhc3NMaXN0LmFkZCgibW92ZS11cCIpOndlPlJlJiZFZT49UmUmJkVlPHdlJiZiZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLWRvd24iKSl9KX1oYW5kbGVHbG9iYWxEcmFnRW5kKCl7dGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPW51bGwpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGwpO2xldCBUZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIiksd2U9VGU/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSxSZT13ZT8uW3RoaXMuZHJhZ2dlZEluZGV4XTtpZih0aGlzLmRyYWdnZWRJbmRleD09PS0xfHx0aGlzLnRhcmdldEluZGV4PT09LTF8fHRoaXMuZHJhZ2dlZEluZGV4PT09dGhpcy50YXJnZXRJbmRleCl7aWYoUmUmJnRoaXMuZHJhZ2dlZEluZGV4IT09LTEpe1JlLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjE1cyBlYXNlIixSZS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMCkiO2xldCBJdD0hMSxYYT1zKCgpPT57SXR8fChJdD0hMCxSZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixYYSksdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKFRlLHdlKSl9LCJvblJldHVybiIpO1JlLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFhhLHtvbmNlOiEwfSksc2V0VGltZW91dChYYSwyMDApfWVsc2UgdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKFRlLHdlKTtyZXR1cm59bGV0IGZlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy5kcmFnZ2VkSW5kZXhdLGJlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy50YXJnZXRJbmRleF07aWYoIWZlfHwhYmV8fCFSZSl7dGhpcy5jbGVhbnVwRHJhZ1N0YXRlKFRlLHdlKTtyZXR1cm59bGV0IEVlO3RoaXMudGFyZ2V0SW5kZXg+dGhpcy5kcmFnZ2VkSW5kZXg/RWU9YmUuYm90dG9tLWZlLmJvdHRvbTpFZT1iZS50b3AtZmUudG9wLFJlLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjE1cyBlYXNlIixSZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtFZX1weClgO2xldCBmdD0hMSxtdD1zKCgpPT57aWYoZnQpcmV0dXJuO2Z0PSEwLFJlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLG10KSxUZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxUZT8ub2Zmc2V0SGVpZ2h0LHdlPy5mb3JFYWNoKEphPT57SmEuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksSmEuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLEphLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KTtsZXQgSXQ9Wy4uLnRoaXMudmFsdWVdLFtYYV09SXQuc3BsaWNlKHRoaXMuZHJhZ2dlZEluZGV4LDEpO0l0LnNwbGljZSh0aGlzLnRhcmdldEluZGV4LDAsWGEpLHRoaXMudmFsdWU9SXQsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5kcmFnZ2VkSW5kZXg9LTEsdGhpcy5kcmFnT3ZlckluZGV4PS0xLHRoaXMudGFyZ2V0SW5kZXg9LTEsdGhpcy5kcmFnU3RhcnRZPTAsdGhpcy5kcmFnQ3VycmVudFk9MCx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVtdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBKYT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKTtKYT8uZm9yRWFjaCh3cz0+e3dzLnN0eWxlLnRyYW5zaXRpb249Im5vbmUifSksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpPy5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57SmE/LmZvckVhY2god3M9Pnt3cy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSksVGU/LmNsYXNzTGlzdC5yZW1vdmUoImRyb3BwaW5nIiwiaXMtZHJhZ2dpbmciKX0pfSl9LCJvblRyYW5zaXRpb25FbmQiKTtSZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixtdCx7b25jZTohMH0pLHNldFRpbWVvdXQobXQsMjAwKX1jbGVhbnVwRHJhZ1N0YXRlKFRlLHdlKXtUZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxUZT8ub2Zmc2V0SGVpZ2h0LHdlPy5mb3JFYWNoKFJlPT57UmUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksUmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFJlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFJlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO1JlPy5mb3JFYWNoKGZlPT57ZmUuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntSZT8uZm9yRWFjaChmZT0+e2ZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxUZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX1oYW5kbGVEcmFnRW5kKCl7dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKCl9aGFuZGxlRHJhZ092ZXIoVGUsd2UpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHwoVGUucHJldmVudERlZmF1bHQoKSxUZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSIpfWhhbmRsZURyYWdMZWF2ZSgpe31oYW5kbGVEcm9wKFRlLHdlKXshdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZHx8VGUucHJldmVudERlZmF1bHQoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoVGUpe3RoaXMudmFsdWU9VGV8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIGl0ZW0gaXMgcmVxdWlyZWQiLCExKTp0aGlzLm1pbkl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1pbkl0ZW1zPyh0aGlzLnZhbGlkYXRpb25UZXh0PWBBdCBsZWFzdCAke3RoaXMubWluSXRlbXN9IGl0ZW1zIHJlcXVpcmVkYCwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfXN0YXRpY3tZdChyLHQpfX07cmV0dXJuIHp0PXJ9KSgpfSk7dmFyIFUkYSxXJGEsRyRhLFkkYSxLJGEsWiRhLFgkYSxsaWEsY2lhPWYoKCk9PntsZSgpO05hKCk7WXMoKTtVJGE9cygoKT0+e2xldCBhPURhdGUubm93KCk7cmV0dXJuW3tpZDpgdGl0bGUtJHthfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJTeXN0ZW0gUGVyZm9ybWFuY2UgUmVwb3J0In0se2lkOmBkYXRlLSR7YSsxfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OmBHZW5lcmF0ZWQgb246ICR7bmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpfWB9LHtpZDpgc3VtbWFyeS1oZWFkaW5nLSR7YSsyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJFeGVjdXRpdmUgU3VtbWFyeSJ9LHtpZDpgc3VtbWFyeS0ke2ErM31gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyByZXBvcnQgcHJvdmlkZXMgYW4gYW5hbHlzaXMgb2Ygc3lzdGVtIHBlcmZvcm1hbmNlIG1ldHJpY3Mgb3ZlciB0aGUgbGFzdCAzMCBkYXlzLiJ9LHtpZDpgbWV0cmljcy1oZWFkaW5nLSR7YSs0fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJLZXkgTWV0cmljcyJ9LHtpZDpgbWV0cmljcy1saXN0LSR7YSs1fWAsdHlwZToibGlzdCIsY29udGVudDpgQXZlcmFnZSByZXNwb25zZSB0aW1lOiAxMjRtcwpVcHRpbWU6IDk5Ljk3JQpDUFUgdXRpbGl6YXRpb246IDQ1JQpNZW1vcnkgdXNhZ2U6IDIuM0dCIC8gOEdCYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGFuYWx5c2lzLWhlYWRpbmctJHthKzZ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IlBlcmZvcm1hbmNlIEFuYWx5c2lzIn0se2lkOmBhbmFseXNpcy1xdW90ZS0ke2ErN31gLHR5cGU6InF1b3RlIixjb250ZW50OiJTeXN0ZW0gcGVyZm9ybWFuY2UgcmVtYWlucyB3aXRoaW4gYWNjZXB0YWJsZSBwYXJhbWV0ZXJzIHdpdGggcm9vbSBmb3Igb3B0aW1pemF0aW9uIGluIG1lbW9yeSBtYW5hZ2VtZW50LiJ9LHtpZDpgY29kZS1oZWFkaW5nLSR7YSs4fWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJTYW1wbGUgUXVlcnkgUGVyZm9ybWFuY2UifSx7aWQ6YGNvZGUtYmxvY2stJHthKzl9YCx0eXBlOiJjb2RlIixjb250ZW50OmBTRUxFQ1QgQVZHKHJlc3BvbnNlX3RpbWUpIGFzIGF2Z190aW1lLAogICAgICAgQ09VTlQoKikgYXMgdG90YWxfcmVxdWVzdHMsCiAgICAgICBEQVRFKGNyZWF0ZWRfYXQpIGFzIGRhdGUKRlJPTSBwZXJmb3JtYW5jZV9sb2dzCldIRVJFIGNyZWF0ZWRfYXQgPj0gTk9XKCkgLSBJTlRFUlZBTCAzMCBEQVkKR1JPVVAgQlkgREFURShjcmVhdGVkX2F0KQpPUkRFUiBCWSBkYXRlIERFU0M7YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6InNxbCJ9fSx7aWQ6YGRpdmlkZXItJHthKzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBmb290ZXItJHthKzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJSZXBvcnQgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgU3lzdGVtIE1vbml0b3IgdjIuNS4wIn1dfSwiZ2VuZXJhdGVSZXBvcnRCbG9ja3MiKSxXJGE9cygoKT0+e2xldCBhPURhdGUubm93KCk7cmV0dXJuW3tpZDpgcmVjaXBlLXRpdGxlLSR7YX1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiQ2xhc3NpYyBNYXJnaGVyaXRhIFBpenphIn0se2lkOmByZWNpcGUtaW50cm8tJHthKzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IkEgdHJhZGl0aW9uYWwgSXRhbGlhbiBwaXp6YSB3aXRoIGZyZXNoIGJhc2lsLCBtb3p6YXJlbGxhLCBhbmQgdG9tYXRvIHNhdWNlLiJ9LHtpZDpgaW5ncmVkaWVudHMtaGVhZGluZy0ke2ErMn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUYzNTV9IEluZ3JlZGllbnRzIn0se2lkOmBkb3VnaC1oZWFkaW5nLSR7YSszfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJGb3IgdGhlIERvdWdoOiJ9LHtpZDpgZG91Z2gtbGlzdC0ke2ErNH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YDUwMGcgdGlwbyAiMDAiIGZsb3VyCjMyNW1sIHdhcm0gd2F0ZXIKMTBnIHNhbHQKN2cgYWN0aXZlIGRyeSB5ZWFzdAoyIHRic3Agb2xpdmUgb2lsYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YHRvcHBpbmdzLWhlYWRpbmctJHthKzV9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgVG9wcGluZ3M6In0se2lkOmB0b3BwaW5ncy1saXN0LSR7YSs2fWAsdHlwZToibGlzdCIsY29udGVudDpgNDAwZyBjYW5uZWQgU2FuIE1hcnphbm8gdG9tYXRvZXMKMjUwZyBmcmVzaCBtb3p6YXJlbGxhCkZyZXNoIGJhc2lsIGxlYXZlcwpFeHRyYSB2aXJnaW4gb2xpdmUgb2lsClNhbHQgYW5kIHBlcHBlciB0byB0YXN0ZWAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmBpbnN0cnVjdGlvbnMtaGVhZGluZy0ke2ErN31gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUY0Njh9XHUyMDBEXHV7MUYzNzN9IEluc3RydWN0aW9ucyJ9LHtpZDpgc3RlcHMtbGlzdC0ke2ErOH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YERpc3NvbHZlIHllYXN0IGluIHdhcm0gd2F0ZXIgYW5kIGxldCBzdGFuZCBmb3IgNSBtaW51dGVzCk1peCBmbG91ciBhbmQgc2FsdCwgY3JlYXRlIGEgd2VsbCBpbiBjZW50ZXIKQWRkIHllYXN0IG1peHR1cmUgYW5kIG9saXZlIG9pbApLbmVhZCBmb3IgMTAgbWludXRlcyB1bnRpbCBzbW9vdGgKTGV0IHJpc2UgZm9yIDEtMiBob3VycyB1bnRpbCBkb3VibGVkClB1bmNoIGRvd24gYW5kIGRpdmlkZSBpbnRvIHBvcnRpb25zClJvbGwgb3V0IGVhY2ggcG9ydGlvbiB0byAxMi1pbmNoIGNpcmNsZXMKVG9wIHdpdGggY3J1c2hlZCB0b21hdG9lcywgbW96emFyZWxsYSwgYW5kIGJhc2lsCkJha2UgYXQgNDc1XHhCMEYgKDI0NVx4QjBDKSBmb3IgMTAtMTIgbWludXRlc2AsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDpgdGlwLSR7YSs5fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlBybyB0aXA6IEZvciBhbiBhdXRoZW50aWMgdGFzdGUsIHVzZSBhIHBpenphIHN0b25lIGFuZCBwcmVoZWF0IGl0IGluIHRoZSBvdmVuIGZvciBhdCBsZWFzdCAzMCBtaW51dGVzIGJlZm9yZSBiYWtpbmcuIn0se2lkOmBkaXZpZGVyLSR7YSsxMH1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDpgc2VydmluZ3MtJHthKzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJTZXJ2aW5nczogNCBwaXp6YXMgfCBQcmVwIHRpbWU6IDIgaG91cnMgfCBDb29rIHRpbWU6IDEyIG1pbnV0ZXMifV19LCJnZW5lcmF0ZVJlY2lwZUJsb2NrcyIpLEckYT1zKGE9PntsZXQgZT17fTtyZXR1cm4gZS5iYXNpYz1hLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYmFzaWMiKSxlLmFydGljbGU9YS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWFydGljbGUiKSxlLmRyYWdEcm9wPWEucXVlcnlTZWxlY3RvcigiI2VkaXRvci1kcmFnZHJvcCIpLGUudHV0b3JpYWw9YS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXR1dG9yaWFsIiksZS5tZWV0aW5nPWEucXVlcnlTZWxlY3RvcigiI2VkaXRvci1tZWV0aW5nIiksZS5yZWNpcGU9YS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXJlY2lwZSIpLGUudGVjaG5pY2FsPWEucXVlcnlTZWxlY3RvcigiI2VkaXRvci10ZWNobmljYWwiKSxlLmZvcm1JbnRlZ3JhdGlvbj1hLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIpLGUucHJvZ3JhbW1hdGljPWEucXVlcnlTZWxlY3RvcigiI2VkaXRvci1wcm9ncmFtbWF0aWMiKSxlLmV4cG9ydERlbW89YS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWV4cG9ydCIpLGV9LCJpbml0aWFsaXplRWRpdG9ycyIpLFkkYT1zKChhLGUpPT57bGV0IHQ9YS5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlcG9ydCIpLHI9YS5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlY2lwZSIpLGk9YS5xdWVyeVNlbGVjdG9yKCIjYnRuLWNsZWFyLWVkaXRvciIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoVSRhKCkpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhXJGEoKSl9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKFtdKX0pfSwic2V0dXBQcm9ncmFtbWF0aWNEZW1vIiksSyRhPXMoKGEsZSk9PntsZXQgdD1hLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWJsb2NrcyIpLHI9YS5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1odG1sIiksaT1hLnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LW1hcmtkb3duIiksbz1hLnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2F2ZS1zdGF0ZSIpLG49YS5xdWVyeVNlbGVjdG9yKCIjYnRuLXJlc3RvcmUtc3RhdGUiKSxsPW51bGw7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgZD1lLmV4cG9ydEJsb2NrcygpO2NvbnNvbGUubG9nKCJFeHBvcnRlZCBibG9ja3M6IixkKSxhbGVydChgRXhwb3J0ZWQgJHtkLmxlbmd0aH0gYmxvY2tzIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy5gKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGQ9ZS5leHBvcnRBc0h0bWwoKTtjb25zb2xlLmxvZygiSFRNTCBFeHBvcnQ6IixkKSxhbGVydCgiSFRNTCBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBkPWUuZXhwb3J0QXNNYXJrZG93bigpO2NvbnNvbGUubG9nKCJNYXJrZG93biBFeHBvcnQ6IixkKSxhbGVydCgiTWFya2Rvd24gZXhwb3J0ZWQgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLiIpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPWUuZXhwb3J0U3RhdGUoKSxjb25zb2xlLmxvZygiU2F2ZWQgc3RhdGU6IixsKSxhbGVydCgiRWRpdG9yIHN0YXRlIHNhdmVkISIpfSksbiYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPyhlLmltcG9ydFN0YXRlKGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgcmVzdG9yZWQhIikpOmFsZXJ0KCJObyBzYXZlZCBzdGF0ZSBmb3VuZC4gU2F2ZSBzdGF0ZSBmaXJzdCEiKX0pfSwic2V0dXBFeHBvcnREZW1vIiksWiRhPXMoKGEsZSx0KT0+e2xldCByPWEucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LWh0bWwtb3V0cHV0IiksaT1hLnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1odG1sIik7ciYmaSYmZSYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpLnRleHRDb250ZW50PWUuZ2V0VmFsdWUoKSxpLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pO2xldCBvPWEucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LW1hcmtkb3duLW91dHB1dCIpLG49YS5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXctbWFya2Rvd24iKTtvJiZuJiZ0JiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24udGV4dENvbnRlbnQ9dC5nZXRWYWx1ZSgpLG4uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSl9LCJzZXR1cE91dHB1dEZvcm1hdERlbW8iKSxYJGE9cyhhPT57YS5hcnRpY2xlJiZzZXRUaW1lb3V0KCgpPT57bGV0IGU9W3tpZDoiaW50cm8taGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJJbnRyb2R1Y3Rpb24gdG8gTW9kZXJuIFdlYiBEZXZlbG9wbWVudCJ9LHtpZDoiaW50cm8tcGFyYS0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJNb2Rlcm4gd2ViIGRldmVsb3BtZW50IGhhcyBldm9sdmVkIHNpZ25pZmljYW50bHkgb3ZlciB0aGUgcGFzdCBkZWNhZGUuIEluIHRoaXMgYXJ0aWNsZSwgd2UnbGwgZXhwbG9yZSB0aGUga2V5IHRlY2hub2xvZ2llcyBhbmQgYmVzdCBwcmFjdGljZXMgdGhhdCBkZWZpbmUgd2ViIGRldmVsb3BtZW50IGluIDIwMjQuIn0se2lkOiJ0ZWNoLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiS2V5IFRlY2hub2xvZ2llcyJ9LHtpZDoidGVjaC1saXN0LSIrRGF0ZS5ub3coKSx0eXBlOiJsaXN0Iixjb250ZW50OmBUeXBlU2NyaXB0IC0gVHlwZS1zYWZlIEphdmFTY3JpcHQgZGV2ZWxvcG1lbnQKV2ViIENvbXBvbmVudHMgLSBOYXRpdmUgY29tcG9uZW50IG1vZGVsCkVTIE1vZHVsZXMgLSBNb2Rlcm4gbW9kdWxlIHN5c3RlbQpXZWJBc3NlbWJseSAtIEhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJxdW90ZS0iK0RhdGUubm93KCksdHlwZToicXVvdGUiLGNvbnRlbnQ6IlRoZSBiZXN0IHdheSB0byBwcmVkaWN0IHRoZSBmdXR1cmUgaXMgdG8gaW52ZW50IGl0LiAtIEFsYW4gS2F5In0se2lkOiJleGFtcGxlLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiQ29kZSBFeGFtcGxlIn0se2lkOiJjb2RlLWV4YW1wbGUtIitEYXRlLm5vdygpLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YGNsYXNzIE1vZGVybldlYkFwcCBleHRlbmRzIEhUTUxFbGVtZW50IHsKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTsKICB9CiAgCiAgY29ubmVjdGVkQ2FsbGJhY2soKSB7CiAgICB0aGlzLnJlbmRlcigpOwogIH0KfWAsbWV0YWRhdGE6e2xhbmd1YWdlOiJqYXZhc2NyaXB0In19XTthLmFydGljbGUuaW1wb3J0QmxvY2tzKGUpfSw1MDApLGEuZHJhZ0Ryb3AmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJkcmFnLXRpdGxlLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IkRyYWcgJiBEcm9wIERlbW8ifSx7aWQ6ImRyYWctaW50cm8tIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyBlZGl0b3IgZGVtb25zdHJhdGVzIGRyYWcgYW5kIGRyb3AgZnVuY3Rpb25hbGl0eS4gVHJ5IGRyYWdnaW5nIHRoZXNlIGJsb2NrcyBhcm91bmQhIn0se2lkOiJkcmFnLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiSG93IEl0IFdvcmtzIn0se2lkOiJkcmFnLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YEhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHNlZSB0aGUgZHJhZyBoYW5kbGUKQ2xpY2sgYW5kIGhvbGQgdGhlIGhhbmRsZSB0byBzdGFydCBkcmFnZ2luZwpEcmFnIHRvIHJlb3JkZXIgYmxvY2tzClJlbGVhc2UgdG8gZHJvcCBpbiB0aGUgbmV3IHBvc2l0aW9uYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJkcmFnLXF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGRyYWcgYW5kIGRyb3AgZmVhdHVyZSBtYWtlcyBpdCBlYXN5IHRvIHJlb3JnYW5pemUgeW91ciBjb250ZW50IHdpdGhvdXQgY3V0dGluZyBhbmQgcGFzdGluZy4ifSx7aWQ6ImRyYWctZGl2aWRlci0iK0RhdGUubm93KCksdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOiJkcmFnLWZvb3Rlci0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJOb3RlOiBEaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZCwgYnV0IG90aGVyIGJsb2NrcyBjYW4gYmUgbW92ZWQgYXJvdW5kIHRoZW0uIn1dO2EuZHJhZ0Ryb3AuaW1wb3J0QmxvY2tzKGUpfSw2MDApfSwicG9wdWxhdGVJbml0aWFsQ29udGVudCIpLGxpYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9Pnthd2FpdCBuZXcgUHJvbWlzZSh0PT5zZXRUaW1lb3V0KHQsNTAwKSk7bGV0IGU9RyRhKGEpO2UucHJvZ3JhbW1hdGljJiZZJGEoYSxlLnByb2dyYW1tYXRpYyksZS5leHBvcnREZW1vJiZLJGEoYSxlLmV4cG9ydERlbW8pLFokYShhLGUubWVldGluZyxlLnJlY2lwZSksWCRhKGUpLGNvbnNvbGUubG9nKCJXWVNJV1lHIERlbW8gaW5pdGlhbGl6ZWQgd2l0aCBlZGl0b3JzOiIsT2JqZWN0LmtleXMoZSkpfX0+CiAgPHN0eWxlPgogICAgJHtYYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmVhdHVyZS1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2FhYTsKICAgICAgICB9CiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEwMiwgMjA0LCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYmJiOwogICAgICAgIH0KICAgICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1jYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3V0cHV0LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgIzBmMTcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW3RoZW1lPSdkYXJrJ10pIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjA2KTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgI2Y0ZjRmNSk7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldy52aXNpYmxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjhmZjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsKICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3MgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDM5LCAxNzYsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHN0cm9uZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3Mgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjNENBRjUwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjRkY5ODAwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjOUMyN0IwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBwIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIFx1ezFGNjgwfSBNb2Rlcm4gV1lTSVdZRyBFZGl0b3IifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQSBwb3dlcmZ1bCBibG9jay1iYXNlZCBlZGl0b3Igd2l0aCBzbGFzaCBjb21tYW5kcywga2V5Ym9hcmQgc2hvcnRjdXRzLCBhbmQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdHMuIAogICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5LZXlib2FyZCBzaG9ydGN1dHM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+QmxvY2stYmFzZWQgZWRpdGluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkhUTUwgJiBNYXJrZG93biBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RGFyayBtb2RlIHN1cHBvcnQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1iYXNpYyIKICAgICAgICAgIGxhYmVsPSJSaWNoIFRleHQgRWRpdG9yIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWJveCI+CiAgICAgICAgICA8aDQgY2xhc3M9InNob3J0Y3V0cy10aXRsZSI+4oyo77iPIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtZ3JpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jPC9zcGFuPiBIZWFkaW5nIDEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjPC9zcGFuPiBIZWFkaW5nIDIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjIzwvc3Bhbj4gSGVhZGluZyAzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4+PC9zcGFuPiBRdW90ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+XGBcYFxgPC9zcGFuPiBDb2RlIGJsb2NrCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tPC9zcGFuPiBCdWxsZXQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi0tLTwvc3Bhbj4gRGl2aWRlcgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gXHV7MUY0RER9IEJsb2cgUG9zdCBFeGFtcGxlIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFBlcmZlY3QgZm9yIGNyZWF0aW5nIHJpY2ggY29udGVudCB3aXRoIG11bHRpcGxlIGJsb2NrIHR5cGVzLiAKICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1hcnRpY2xlIgogICAgICAgICAgbGFiZWw9IkJsb2cgUG9zdCBDb250ZW50IiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgdXNpbmcgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gXHV7MUY1MDB9IERyYWcgJiBEcm9wIFJlb3JkZXJpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgRWFzaWx5IHJlYXJyYW5nZSB5b3VyIGNvbnRlbnQgYmxvY2tzIGJ5IGRyYWdnaW5nIHRoZW0uIAogICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1kcmFnZHJvcCIKICAgICAgICAgIGxhYmVsPSJEcmFnICYgRHJvcCBEZW1vIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgZHJhZ2dpbmcgYmxvY2tzIHRvIHJlb3JkZXIgdGhlbSAtIGhvdmVyIHRvIHNlZSBkcmFnIGhhbmRsZXMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpcHMtYm94Ij4KICAgICAgICAgIDxzdHJvbmc+8J+SoSBUaXBzOjwvc3Ryb25nPgogICAgICAgICAgPHVsIGNsYXNzPSJ0aXBzLWxpc3QiPgogICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAo4ouu4ouuKSBvbiB0aGUgbGVmdDwvbGk+CiAgICAgICAgICAgIDxsaT5DbGljayBhbmQgaG9sZCB0aGUgZHJhZyBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmc8L2xpPgogICAgICAgICAgICA8bGk+Qmx1ZSBpbmRpY2F0b3JzIHNob3cgd2hlcmUgdGhlIGJsb2NrIHdpbGwgYmUgZHJvcHBlZDwvbGk+CiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+CiAgICAgICAgICAgIDxsaT5UaGUgZWRpdG9yIG1haW50YWlucyBmb2N1cyBvbiB0aGUgbW92ZWQgYmxvY2sgYWZ0ZXIgZHJvcHBpbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFx1ezFGNERBfSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXByZWhlbnNpdmUgdHV0b3JpYWxzIGFuZCBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBleGFtcGxlcywgbGlzdHMsIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXR1dG9yaWFsIgogICAgICAgICAgbGFiZWw9IkdpdCBUdXRvcmlhbCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICB2YWx1ZT0iIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVycwoKR2l0IGlzIGEgZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0IGhlbHBzIHlvdSB0cmFjayBjaGFuZ2VzIGluIHlvdXIgY29kZSBvdmVyIHRpbWUuIFRoaXMgdHV0b3JpYWwgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgYmFzaWNzLgoKIyMgUHJlcmVxdWlzaXRlcwoKQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6CgotIEdpdCBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0KLSBBIHRleHQgZWRpdG9yIG9yIElERQotIEJhc2ljIGNvbW1hbmQgbGluZSBrbm93bGVkZ2UKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENvbmZpZ3VyZSBHaXQKCkZpcnN0LCBzZXQgdXAgeW91ciBpZGVudGl0eToKClxgXGBcYGJhc2gKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgJnF1b3Q7WW91ciBOYW1lJnF1b3Q7CmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAmcXVvdDt5b3VyLmVtYWlsQGV4YW1wbGUuY29tJnF1b3Q7ClxgXGBcYAoKIyMjIDIuIEluaXRpYWxpemUgYSBSZXBvc2l0b3J5CgpDcmVhdGUgYSBuZXcgR2l0IHJlcG9zaXRvcnk6CgpcYFxgXGBiYXNoCm1rZGlyIG15LXByb2plY3QKY2QgbXktcHJvamVjdApnaXQgaW5pdApcYFxgXGAKCiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3cKCiMjIyMgQWRkaW5nIEZpbGVzCgpDcmVhdGUgYSBmaWxlIGFuZCBhZGQgaXQgdG8gc3RhZ2luZzoKClxgXGBcYGJhc2gKZWNobyAmcXVvdDsjIE15IFByb2plY3QmcXVvdDsgPiBSRUFETUUubWQKZ2l0IGFkZCBSRUFETUUubWQKXGBcYFxgCgojIyMjIENvbW1pdHRpbmcgQ2hhbmdlcwoKXGBcYFxgYmFzaApnaXQgY29tbWl0IC1tICZxdW90O0luaXRpYWwgY29tbWl0JnF1b3Q7ClxgXGBcYAoKPiAqKkJlc3QgUHJhY3RpY2U6KiogV3JpdGUgY2xlYXIsIGRlc2NyaXB0aXZlIGNvbW1pdCBtZXNzYWdlcyB0aGF0IGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlcmUgbWFkZSBhbmQgd2h5LgoKIyMjIDQuIFdvcmtpbmcgd2l0aCBCcmFuY2hlcwoKQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseToKClxgXGBcYGJhc2gKIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2gKZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUtYnJhbmNoCgojIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0CmdpdCBhZGQgLgpnaXQgY29tbWl0IC1tICZxdW90O0FkZCBuZXcgZmVhdHVyZSZxdW90OwoKIyBTd2l0Y2ggYmFjayB0byBtYWluCmdpdCBjaGVja291dCBtYWluCgojIE1lcmdlIHRoZSBmZWF0dXJlCmdpdCBtZXJnZSBmZWF0dXJlLWJyYW5jaApcYFxgXGAKCi0tLQoKIyMgQ29tbW9uIENvbW1hbmRzIFJlZmVyZW5jZQoKfCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgXGBnaXQgc3RhdHVzXGAgfCBDaGVjayByZXBvc2l0b3J5IHN0YXR1cyB8CnwgXGBnaXQgbG9nXGAgfCBWaWV3IGNvbW1pdCBoaXN0b3J5IHwKfCBcYGdpdCBkaWZmXGAgfCBTaG93IGNoYW5nZXMgfAp8IFxgZ2l0IHB1bGxcYCB8IEZldGNoIGFuZCBtZXJnZSBjaGFuZ2VzIHwKfCBcYGdpdCBwdXNoXGAgfCBVcGxvYWQgY2hhbmdlcyB0byByZW1vdGUgfAoKIyMgTmV4dCBTdGVwcwoKMS4gTGVhcm4gYWJvdXQgcmVtb3RlIHJlcG9zaXRvcmllcwoyLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlcwozLiBQcmFjdGljZSB3aXRoIHJlYWwgcHJvamVjdHMKNC4gQ29udHJpYnV0ZSB0byBvcGVuIHNvdXJjZQoKKipIYXBweSBjb2RpbmchKiog8J+agCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBcdXsxRjUwNH0gT3V0cHV0IEZvcm1hdHMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIAogICAgICAgICAgUGVyZmVjdCBmb3Igc3RhdGljIHNpdGUgZ2VuZXJhdG9ycywgZG9jdW1lbnRhdGlvbiBzeXN0ZW1zLCBvciBhbnkgY29udGVudCBtYW5hZ2VtZW50IHdvcmtmbG93LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1tZWV0aW5nIgogICAgICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIE5vdGVzIiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgICAgICAgIHZhbHVlPSI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctaHRtbC1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBIVE1MIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctaHRtbCIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItcmVjaXBlIgogICAgICAgICAgICAgIGxhYmVsPSJSZWNpcGUgQmxvZyBQb3N0IiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRm9vZCBibG9nIHdpdGggbWl4ZWQgY29udGVudCIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgICAgIHZhbHVlPSIjIFVsdGltYXRlIENob2NvbGF0ZSBDaGlwIENvb2tpZXMKClRoZXJlJ3Mgbm90aGluZyBxdWl0ZSBsaWtlIHRoZSBzbWVsbCBvZiBmcmVzaGx5IGJha2VkIGNob2NvbGF0ZSBjaGlwIGNvb2tpZXMuIFRoaXMgcmVjaXBlIGhhcyBiZWVuIHBlcmZlY3RlZCBvdmVyIHllYXJzIG9mIHRlc3RpbmchCgojIyBJbmdyZWRpZW50cwoKLSAywrwgY3VwcyBhbGwtcHVycG9zZSBmbG91cgotIDEgdHNwIGJha2luZyBzb2RhCi0gMSB0c3Agc2FsdAotIDEgY3VwIGJ1dHRlciwgc29mdGVuZWQKLSDCviBjdXAgZ3JhbnVsYXRlZCBzdWdhcgotIMK+IGN1cCBwYWNrZWQgYnJvd24gc3VnYXIKLSAyIGxhcmdlIGVnZ3MKLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3QKLSAyIGN1cHMgY2hvY29sYXRlIGNoaXBzCgojIyBJbnN0cnVjdGlvbnMKCiMjIyBTdGVwIDE6IFByZXBhcmF0aW9uCgpQcmVoZWF0IHlvdXIgb3ZlbiB0byAqKjM3NcKwRiAoMTkwwrBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLgoKIyMjIFN0ZXAgMjogTWl4IERyeSBJbmdyZWRpZW50cwoKSW4gYSBtZWRpdW0gYm93bCwgd2hpc2sgdG9nZXRoZXI6CgoxLiBGbG91cgoyLiBCYWtpbmcgc29kYQozLiBTYWx0CgojIyMgU3RlcCAzOiBDcmVhbSBCdXR0ZXIgYW5kIFN1Z2FycwoKXGBcYFxgCkNyZWFtIGJ1dHRlciBhbmQgc3VnYXJzIGZvciAzLTQgbWludXRlcwp1bnRpbCBsaWdodCBhbmQgZmx1ZmZ5ClxgXGBcYAoKPiAqKlBybyB0aXA6KiogUm9vbSB0ZW1wZXJhdHVyZSBpbmdyZWRpZW50cyBtaXggYmV0dGVyIGFuZCBjcmVhdGUgYSBtb3JlIHVuaWZvcm0gZG91Z2guCgojIyMgU3RlcCA0OiBBZGQgV2V0IEluZ3JlZGllbnRzCgpCZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LgoKIyMjIFN0ZXAgNTogQ29tYmluZSBhbmQgQmFrZQoKR3JhZHVhbGx5IGJsZW5kIGluIGZsb3VyIG1peHR1cmUsIHRoZW4gc3RpciBpbiBjaG9jb2xhdGUgY2hpcHMuIERyb3Agcm91bmRlZCB0YWJsZXNwb29ucyBvbnRvIHVuZ3JlYXNlZCBjb29raWUgc2hlZXRzLgoKLS0tCgoqKkJha2luZyB0aW1lOioqIDktMTEgbWludXRlcyBvciB1bnRpbCBnb2xkZW4gYnJvd24KCioqWWllbGQ6KiogQWJvdXQgNSBkb3plbiBjb29raWVzIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBNYXJrZG93biBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LW1hcmtkb3duIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gXHV7MUYzQTh9IEFkdmFuY2VkIEVkaXRpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXBsZXggZG9jdW1lbnRzIHdpdGggbWl4ZWQgY29udGVudCB0eXBlcy4gVGhlIGVkaXRvciBoYW5kbGVzIGFsbCBmb3JtYXR0aW5nIHNlYW1sZXNzbHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXRlY2huaWNhbCIKICAgICAgICAgIGxhYmVsPSJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50IgogICAgICAgICAgdmFsdWU9IjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcCiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+ewogICZxdW90O25hbWUmcXVvdDs6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICZxdW90O2VtYWlsJnF1b3Q7OiAmcXVvdDtqb2huQGV4YW1wbGUuY29tJnF1b3Q7LAogICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDsKfTwvY29kZT48L3ByZT48aHI+PHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byBvdXIgY29tcGxldGUgZG9jdW1lbnRhdGlvbi48L3A+IgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFNlYW1sZXNzbHkgaW50ZWdyYXRlcyB3aXRoIGRlZXMtZm9ybSBmb3IgY29tcGxldGUgZm9ybSBzb2x1dGlvbnMuIAogICAgICAgICAgQWxsIHN0YW5kYXJkIGZvcm0gZmVhdHVyZXMgbGlrZSB2YWxpZGF0aW9uLCByZXF1aXJlZCBmaWVsZHMsIGFuZCBkYXRhIGJpbmRpbmcgd29yayBvdXQgb2YgdGhlIGJveC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIFRpdGxlIiAKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIHZhbHVlPSJIb3cgdG8gQnVpbGQgTW9kZXJuIFdlYiBBcHBsaWNhdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgIGlkPSJlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgQ29udGVudCIgCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgY29udGVudCBoZXJlIgogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICBsYWJlbD0iVGFncyIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkFkZCByZWxldmFudCB0YWdzIGZvciB5b3VyIGFydGljbGUiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBcdXsxRjlFOX0gUHJvZ3JhbW1hdGljIEJsb2NrIENyZWF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLXByb2dyYW1tYXRpYyIKICAgICAgICAgIGxhYmVsPSJQcm9ncmFtbWF0aWNhbGx5IEdlbmVyYXRlZCBDb250ZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgY29udGVudCB3YXMgY3JlYXRlZCB1c2luZyB0aGUgaW1wb3J0QmxvY2tzIEFQSSIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZXBvcnQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlcG9ydAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZWNpcGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlY2lwZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1lZGl0b3IiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIENsZWFyIEVkaXRvcgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBcdXsxRjRFNH0gRXhwb3J0L0ltcG9ydCBGZWF0dXJlcyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBibG9ja3MiPgogICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYW5kIGltcG9ydCByYXcgYmxvY2sgc3RydWN0dXJlIGZvciBwZXJmZWN0IHJvdW5kLXRyaXAgZWRpdGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBodG1sIj4KICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5HZXQgY2xlYW4sIHNlbWFudGljIEhUTUwgcmVnYXJkbGVzcyBvZiBvdXRwdXQgZm9ybWF0IHNldHRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgbWFya2Rvd24iPgogICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYXMgTWFya2Rvd24gZm9yIGRvY3MsIFJFQURNRXMsIGFuZCBzdGF0aWMgc2l0ZXM8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgc3RhdGUiPgogICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+U2F2ZSBhbmQgcmVzdG9yZSBjb21wbGV0ZSBlZGl0b3Igc3RhdGUgaW5jbHVkaW5nIHNldHRpbmdzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1leHBvcnQiCiAgICAgICAgICBsYWJlbD0iRXhwb3J0IERlbW8gRWRpdG9yIgogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSB0aGUgZXhwb3J0IGJ1dHRvbnMgYmVsb3cgdG8gc2VlIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cyIKICAgICAgICAgIHZhbHVlPSI8aDE+U29mdHdhcmUgUmVsZWFzZSBOb3RlczwvaDE+PHA+PHN0cm9uZz5WZXJzaW9uIDIuNS4wPC9zdHJvbmc+IC0gUmVsZWFzZWQgRGVjZW1iZXIgMTUsIDIwMjQ8L3A+PGgyPvCfjokgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj7wn5CbIEJ1ZyBGaXhlczwvaDI+PHVsPjxsaT5GaXhlZCBtZW1vcnkgbGVhayBpbiBkYXRhIHByb2Nlc3NpbmcgbW9kdWxlPC9saT48bGk+UmVzb2x2ZWQgYXV0aGVudGljYXRpb24gdGltZW91dCBpc3N1ZXM8L2xpPjxsaT5Db3JyZWN0ZWQgdGltZXpvbmUgaGFuZGxpbmcgaW4gc2NoZWR1bGVkIHRhc2tzPC9saT48L3VsPjxoMj7imqEgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzPC9oMj48YmxvY2txdW90ZT5QYWdlIGxvYWQgdGltZXMgcmVkdWNlZCBieSA0MCUgdGhyb3VnaCBsYXp5IGxvYWRpbmcgYW5kIGNvZGUgc3BsaXR0aW5nPC9ibG9ja3F1b3RlPjxoMj7wn5SnIFRlY2huaWNhbCBEZXRhaWxzPC9oMj48cHJlPjxjb2RlPi8vIE5ldyBBUEkgZW5kcG9pbnQgZm9yIGJhdGNoIG9wZXJhdGlvbnMKUE9TVCAvYXBpL3YyL2JhdGNoCnsKICAmcXVvdDtvcGVyYXRpb25zJnF1b3Q7OiBbCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7R0VUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvdXNlcnMvMTIzJnF1b3Q7IH0sCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH0KICBdCn08L2NvZGU+PC9wcmU+PGgyPvCfkqEgTWlncmF0aW9uIEd1aWRlPC9oMj48b2w+PGxpPlVwZGF0ZSB5b3VyIGRlcGVuZGVuY2llcyB0byB0aGUgbGF0ZXN0IHZlcnNpb25zPC9saT48bGk+UnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnM6IDxjb2RlPm5wbSBydW4gbWlncmF0ZTwvY29kZT48L2xpPjxsaT5DbGVhciBjYWNoZTogPGNvZGU+bnBtIHJ1biBjYWNoZTpjbGVhcjwvY29kZT48L2xpPjxsaT5SZXN0YXJ0IGFsbCBzZXJ2aWNlczwvbGk+PC9vbD48aHI+PHA+Rm9yIHF1ZXN0aW9ucyBvciBpc3N1ZXMsIHBsZWFzZSBjb250YWN0IHRoZSBkZXZlbG9wbWVudCB0ZWFtIG9yIGZpbGUgYSB0aWNrZXQgaW4gb3VyIGlzc3VlIHRyYWNrZXIuPC9wPiIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtYmxvY2tzIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgQmxvY2tzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1odG1sIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgSFRNTAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtbWFya2Rvd24iIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBNYXJrZG93bgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBTYXZlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc3RvcmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgSW89ZigoKT0+e30pO3ZhciBlcyxBZj1mKCgpPT57SW8oKTtlcz1jbGFzc3tzdGF0aWN7cyh0aGlzLCJXeXNpd3lnU2hvcnRjdXRzIil9c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46dCx0eXBlOnJ9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKHQudGVzdChlKSlyZXR1cm57dHlwZTpyfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQoZSl7Zm9yKGxldHtwYXR0ZXJuOnQsdHlwZTpyfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZih0LnRlc3QoZSkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOnJ9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdChlKX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyhlKX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBsbSxJMSxNYWUsWlllPWYoKCk9PntsZSgpO0dpKCk7dmEoKTtJbygpO0FmKCk7UWUoKTtsbT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sSTE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LE1hZT0oKCk9PntsZXQgYT1baWUoImRlZXMtc2xhc2gtbWVudSIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzU2xhc2hNZW51Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bSygpXSxkPVtLKCldLHU9W0soKV0seD1bSygpXSx5PVtLKCldLGxtKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4idmlzaWJsZSJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnZpc2libGUsImdldCIpLHNldDpzKCh6LE8pPT57ei52aXNpYmxlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbixsKSxsbSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJwb3NpdGlvbiJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnBvc2l0aW9uLCJnZXQiKSxzZXQ6cygoeixPKT0+e3oucG9zaXRpb249T30sInNldCIpfSxtZXRhZGF0YTpffSxjLHApLGxtKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJmaWx0ZXIiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5maWx0ZXIsImdldCIpLHNldDpzKCh6LE8pPT57ei5maWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpffSxtLHYpLGxtKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4ic2VsZWN0ZWRJbmRleCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNlbGVjdGVkSW5kZXgsImdldCIpLHNldDpzKCh6LE8pPT57ei5zZWxlY3RlZEluZGV4PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxsbSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+Im1lbnVaSW5kZXgiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5tZW51WkluZGV4LCJnZXQiKSxzZXQ6cygoeixPKT0+e3oubWVudVpJbmRleD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssQyksbG0obnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6X30sbnVsbCx0KSxOPXI9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIE4uaW5zdGFuY2V8fChOLmluc3RhbmNlPW5ldyBOLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTi5pbnN0YW5jZSkpLE4uaW5zdGFuY2V9I2U9STEodGhpcyxuLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKF8pe3RoaXMuI2U9X30jdD0oSTEodGhpcyxsKSxJMSh0aGlzLGMse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKF8pe3RoaXMuI3Q9X30jYT0oSTEodGhpcyxwKSxJMSh0aGlzLG0sIiIpKTtnZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbHRlcihfKXt0aGlzLiNhPV99I3I9KEkxKHRoaXMsdiksSTEodGhpcyxiLDApKTtnZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZEluZGV4KF8pe3RoaXMuI3I9X30jcz0oSTEodGhpcyxnKSxJMSh0aGlzLGssMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWVudVpJbmRleChfKXt0aGlzLiNzPV99Y2FsbGJhY2s9KEkxKHRoaXMsQyksbnVsbCk7c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc2xhc2gtbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy52aXNpYmxlKXJldHVybiB3YGA7dGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCk7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJzbGFzaC1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0ic2xhc2giCiAgICAgID4KICAgICAgICAke18ubWFwKCh6LE8pPT53YAogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUtaXRlbSAke089PT10aGlzLnNlbGVjdGVkSW5kZXg/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGRhdGEtaXRlbS10eXBlPSIke3oudHlwZX0iCiAgICAgICAgICAgIGRhdGEtaXRlbS1pbmRleD0iJHtPfSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaWNvbiIgLmljb249IiR7ei5pY29ufSIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+JHt6LmxhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RmlsdGVyZWRNZW51SXRlbXMoKXtyZXR1cm4gZXMuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIoej0+dGhpcy5maWx0ZXI9PT0iInx8ei5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCkpKX1zZWxlY3RJdGVtKF8pe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2soXyksdGhpcy5oaWRlKCl9c2hvdyhfLHope3RoaXMucG9zaXRpb249Xyx0aGlzLmNhbGxiYWNrPXosdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsdGhpcy5tZW51WkluZGV4PVh0LmdldE5leHRaSW5kZXgoKSxYdC5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLFh0LnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlRmlsdGVyKF8pe3RoaXMuZmlsdGVyPV8sdGhpcy5zZWxlY3RlZEluZGV4PTB9bmF2aWdhdGUoXyl7bGV0IHo9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO189PT0iZG93biI/dGhpcy5zZWxlY3RlZEluZGV4PSh0aGlzLnNlbGVjdGVkSW5kZXgrMSklei5sZW5ndGg6dGhpcy5zZWxlY3RlZEluZGV4PXRoaXMuc2VsZWN0ZWRJbmRleD09PTA/ei5sZW5ndGgtMTp0aGlzLnNlbGVjdGVkSW5kZXgtMX1zZWxlY3RDdXJyZW50KCl7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO19bdGhpcy5zZWxlY3RlZEluZGV4XSYmdGhpcy5zZWxlY3RJdGVtKF9bdGhpcy5zZWxlY3RlZEluZGV4XS50eXBlKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixfPT57bGV0IHo9XyxPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNsYXNoLW1lbnUiKTtPJiZPLmNvbnRhaW5zKHoudGFyZ2V0KSYmKHoucHJldmVudERlZmF1bHQoKSx6LnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsXz0+e2xldCB6PV8sVD16LnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoVCl7ei5wcmV2ZW50RGVmYXVsdCgpLHouc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFA9VC5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS10eXBlIik7UCYmdGhpcy5zZWxlY3RJdGVtKFApfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixfPT57bGV0IFQ9Xy50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKFQpe2xldCBQPXBhcnNlSW50KFQuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taW5kZXgiKXx8IjAiLDEwKTt0aGlzLnNlbGVjdGVkSW5kZXg9UH19LCEwKSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLF89PntsZXQgej1fLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO08mJk8uY29udGFpbnMoei50YXJnZXQpJiYoei5wcmV2ZW50RGVmYXVsdCgpLHouc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje0kxKHIsdCl9fTtyZXR1cm4gTj1yfSkoKX0pO3ZhciBydCxVMj1mKCgpPT57cnQ9Y2xhc3N7c3RhdGlje3ModGhpcywiV3lzaXd5Z1NlbGVjdGlvbiIpfXN0YXRpYyBnZXRTZWxlY3Rpb25JbmZvKC4uLmUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjb25zb2xlLmxvZygiV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvIC0gc2VsZWN0aW9uOiIsdCwicmFuZ2VDb3VudDoiLHQ/LnJhbmdlQ291bnQpLCF0KXJldHVybiBudWxsO2lmKCJnZXRDb21wb3NlZFJhbmdlcyJpbiB0JiZ0eXBlb2YgdC5nZXRDb21wb3NlZFJhbmdlcz09ImZ1bmN0aW9uIil7Y29uc29sZS5sb2coIlVzaW5nIGdldENvbXBvc2VkUmFuZ2VzIHdpdGgiLGUubGVuZ3RoLCJzaGFkb3cgcm9vdHMiKTt0cnl7bGV0IHI9dC5nZXRDb21wb3NlZFJhbmdlcyh7c2hhZG93Um9vdHM6ZX0pO2lmKGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyByZXR1cm5lZCIsci5sZW5ndGgsInJhbmdlcyIpLHIubGVuZ3RoPjApe2xldCBpPXJbMF07cmV0dXJue3N0YXJ0Q29udGFpbmVyOmkuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6aS5zdGFydE9mZnNldCxlbmRDb250YWluZXI6aS5lbmRDb250YWluZXIsZW5kT2Zmc2V0OmkuZW5kT2Zmc2V0LGNvbGxhcHNlZDppLmNvbGxhcHNlZH19fWNhdGNoKHIpe2NvbnNvbGUud2FybigiZ2V0Q29tcG9zZWRSYW5nZXMgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gZ2V0UmFuZ2VBdDoiLHIpfX1lbHNlIGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyBub3QgYXZhaWxhYmxlLCB1c2luZyBmYWxsYmFjayIpO2lmKHQucmFuZ2VDb3VudD4wKXtsZXQgcj10LmdldFJhbmdlQXQoMCk7cmV0dXJue3N0YXJ0Q29udGFpbmVyOnIuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6ci5zdGFydE9mZnNldCxlbmRDb250YWluZXI6ci5lbmRDb250YWluZXIsZW5kT2Zmc2V0OnIuZW5kT2Zmc2V0LGNvbGxhcHNlZDpyLmNvbGxhcHNlZH19cmV0dXJuIG51bGx9c3RhdGljIGlzU2VsZWN0aW9uSW5FbGVtZW50KGUsdCl7bGV0IHI9dD90aGlzLmdldFNlbGVjdGlvbkluZm8odCk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7cmV0dXJuIHI/ZS5jb250YWlucyhyLnN0YXJ0Q29udGFpbmVyKXx8ZS5jb250YWlucyhyLmVuZENvbnRhaW5lcik6ITF9c3RhdGljIGdldFNlbGVjdGVkVGV4dCgpe2xldCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gZT9lLnRvU3RyaW5nKCk6IiJ9c3RhdGljIGNyZWF0ZVJhbmdlRnJvbUluZm8oZSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdC5zZXRTdGFydChlLnN0YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQpLHQuc2V0RW5kKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSx0fXN0YXRpYyBzZXRTZWxlY3Rpb25Gcm9tUmFuZ2UoZSl7bGV0IHQ9d2luZG93LmdldFNlbGVjdGlvbigpO3QmJih0LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoZSkpfXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChlLC4uLnQpe2xldCByPXQubGVuZ3RoPjA/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKC4uLnQpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO2lmKCFyfHwhci5jb2xsYXBzZWQpcmV0dXJuIG51bGw7dHJ5e2xldCBpPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoaS5zZWxlY3ROb2RlQ29udGVudHMoZSksdGhpcy5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShlLHIuc3RhcnRDb250YWluZXIpKXJldHVybiBpLnNldEVuZChyLnN0YXJ0Q29udGFpbmVyLHIuc3RhcnRPZmZzZXQpLGkudG9TdHJpbmcoKS5sZW5ndGg7e2xldCBuPWUudGV4dENvbnRlbnR8fCIiLGw9ci5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudHx8IiI7cmV0dXJuIHIuc3RhcnRPZmZzZXQ9PT0wPzA6ci5zdGFydE9mZnNldD09PWwubGVuZ3RoP24ubGVuZ3RoOihjb25zb2xlLndhcm4oIlNlbGVjdGlvbiBjb250YWluZXIgbm90IHdpdGhpbiBlbGVtZW50LCB1c2luZyB0ZXh0IG1hdGNoaW5nIGZhbGxiYWNrIiksci5zdGFydE9mZnNldCl9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBnZXQgY3Vyc29yIHBvc2l0aW9uOiIsaSksbnVsbH19c3RhdGljIGdldEN1cnNvclBvc2l0aW9uRnJvbVBvaW50KGUsdCxyLC4uLmkpe2lmKCJjYXJldFBvc2l0aW9uRnJvbVBvaW50ImluIGRvY3VtZW50JiZkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXtsZXQgbz1udWxsO3RyeXtvPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSx0LC4uLmkpfWNhdGNoe289ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQpfWlmKG8mJnIuY29udGFpbnMoby5vZmZzZXROb2RlKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQoby5vZmZzZXROb2RlLG8ub2Zmc2V0LHIpfWlmKCJjYXJldFJhbmdlRnJvbVBvaW50ImluIGRvY3VtZW50KXtsZXQgbz1kb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KGUsdCk7aWYobyYmci5jb250YWlucyhvLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQoby5zdGFydENvbnRhaW5lcixvLnN0YXJ0T2Zmc2V0LHIpfXJldHVybiBudWxsfXN0YXRpYyBnZXRPZmZzZXRJbkVsZW1lbnQoZSx0LHIpe2xldCBpPTAsbz0hMSxuPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocixOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxsO2Zvcig7bD1uLm5leHROb2RlKCk7KWlmKGw9PT1lKXtpKz10LG89ITA7YnJlYWt9ZWxzZSBpKz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIG8/aTowfXN0YXRpYyBzZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCByPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxpPTAsbz1udWxsLG49MDtmb3IoO3IubmV4dE5vZGUoKTspe2xldCBsPXIuY3VycmVudE5vZGUsZD1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoaStkPj10KXtvPWwsbj10LWk7YnJlYWt9aSs9ZH1pZihvKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQobyxuKSxsLmNvbGxhcHNlKCEwKSx0aGlzLnNldFNlbGVjdGlvbkZyb21SYW5nZShsKX19c3RhdGljIGNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsdCl7aWYoIWV8fCF0KXJldHVybiExO2xldCByPXQ7Zm9yKDtyOyl7aWYocj09PWUpcmV0dXJuITA7aWYoci5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmci5ob3N0KXtsZXQgaT1yO2lmKGkuY29udGFpbnMoZSkpcmV0dXJuITE7cj1pLmhvc3R9ZWxzZSByPXIucGFyZW50Tm9kZX1yZXR1cm4hMX19fSk7dmFyIGZjLFhZZT1mKCgpPT57bGUoKTtVMigpO2ZjPWNsYXNze3N0YXRpY3tzKHRoaXMsIld5c2l3eWdGb3JtYXR0aW5nIil9c3RhdGljIGZvcm1hdEJ1dHRvbnM9W3tjb21tYW5kOiJib2xkIixpY29uOiJCIixsYWJlbDoiQm9sZCIsc2hvcnRjdXQ6Ilx1MjMxOEIifSx7Y29tbWFuZDoiaXRhbGljIixpY29uOiJJIixsYWJlbDoiSXRhbGljIixzaG9ydGN1dDoiXHUyMzE4SSJ9LHtjb21tYW5kOiJ1bmRlcmxpbmUiLGljb246IlUiLGxhYmVsOiJVbmRlcmxpbmUiLHNob3J0Y3V0OiJcdTIzMThVIn0se2NvbW1hbmQ6InN0cmlrZVRocm91Z2giLGljb246IlNcdTAzMzYiLGxhYmVsOiJTdHJpa2V0aHJvdWdoIn0se2NvbW1hbmQ6ImNvZGUiLGljb246InsgfSIsbGFiZWw6IklubGluZSBDb2RlIn0se2NvbW1hbmQ6ImxpbmsiLGljb246Ilx1ezFGNTE3fSIsbGFiZWw6IkxpbmsiLHNob3J0Y3V0OiJcdTIzMThLIn1dO3N0YXRpYyByZW5kZXJGb3JtYXR0aW5nTWVudShlLHQpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJ0b3A6ICR7ZS55fXB4OyBsZWZ0OiAke2UueH1weDsiCiAgICAgICAgQG1vdXNlZG93bj0iJHtyPT57ci5wcmV2ZW50RGVmYXVsdCgpLHIuc3RvcFByb3BhZ2F0aW9uKCl9fSIKICAgICAgICBAY2xpY2s9IiR7cj0+ci5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgID4KICAgICAgICAke3RoaXMuZm9ybWF0QnV0dG9ucy5tYXAocj0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7ci5jb21tYW5kfSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50KHIuY29tbWFuZCl9IgogICAgICAgICAgICB0aXRsZT0iJHtyLmxhYmVsfSR7ci5zaG9ydGN1dD9gICgke3Iuc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHtyLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke3IuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBhcHBseUZvcm1hdChlLHQscixpKXtsZXQgbztpZihyKW89cjtlbHNle2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighbnx8bi5yYW5nZUNvdW50PT09MClyZXR1cm4hMTtvPW4uZ2V0UmFuZ2VBdCgwKX1zd2l0Y2goZSl7Y2FzZSJib2xkIjp0aGlzLndyYXBTZWxlY3Rpb24obywic3Ryb25nIik7YnJlYWs7Y2FzZSJpdGFsaWMiOnRoaXMud3JhcFNlbGVjdGlvbihvLCJlbSIpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp0aGlzLndyYXBTZWxlY3Rpb24obywidSIpO2JyZWFrO2Nhc2Uic3RyaWtlVGhyb3VnaCI6dGhpcy53cmFwU2VsZWN0aW9uKG8sInMiKTticmVhaztjYXNlImNvZGUiOnRoaXMud3JhcFNlbGVjdGlvbihvLCJjb2RlIik7YnJlYWs7Y2FzZSJsaW5rIjppZighdClyZXR1cm4hMTt0aGlzLndyYXBTZWxlY3Rpb25XaXRoTGluayhvLHQpO2JyZWFrfWlmKGkmJmkubGVuZ3RoPjApcnQuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKG8pO2Vsc2V7bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO24mJihuLnJlbW92ZUFsbFJhbmdlcygpLG4uYWRkUmFuZ2UobykpfXJldHVybiEwfXN0YXRpYyB3cmFwU2VsZWN0aW9uKGUsdCl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFyKXJldHVybjtpZih0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsdCkpdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsdCk7ZWxzZXtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO3RyeXtsZXQgbj1lLmV4dHJhY3RDb250ZW50cygpO28uYXBwZW5kQ2hpbGQobiksZS5pbnNlcnROb2RlKG8pLGUuc2VsZWN0Tm9kZUNvbnRlbnRzKG8pLHIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShlKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gd3JhcCBzZWxlY3Rpb246IixuKX19fXN0YXRpYyBzZWxlY3Rpb25Db250YWluc1RhZyhlLHQpe2xldCByPWUuc3RhcnRDb250YWluZXI7Zm9yKDtyJiZyIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoci5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZyLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXQpcmV0dXJuITA7cj1yLnBhcmVudE5vZGV9Zm9yKHI9ZS5lbmRDb250YWluZXI7ciYmciE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKHIubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmci50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10KXJldHVybiEwO3I9ci5wYXJlbnROb2RlfWxldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG89ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIGkuYXBwZW5kQ2hpbGQobyksaS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KS5sZW5ndGg+MH1zdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLHQpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighcilyZXR1cm47bGV0IGk9ZS5jbG9uZVJhbmdlKCksbz1lLnN0YXJ0Q29udGFpbmVyLG49bnVsbDtmb3IoO28mJm8hPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihvLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dCl7bj1vO2JyZWFrfW89by5wYXJlbnROb2RlfWxldCBsPWUuZW5kQ29udGFpbmVyLGQ9bnVsbDtmb3IoO2wmJmwhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihsLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmwudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09dCl7ZD1sO2JyZWFrfWw9bC5wYXJlbnROb2RlfW4mJmkuc2V0U3RhcnRCZWZvcmUobiksZCYmaS5zZXRFbmRBZnRlcihkKTtsZXQgYz1pLmV4dHJhY3RDb250ZW50cygpLHA9dGhpcy5yZW1vdmVUYWdzRnJvbUZyYWdtZW50KGMsdCk7aS5pbnNlcnROb2RlKHApO2xldCB1PVtdLG09ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLHY7Zm9yKDt2PW0ubmV4dE5vZGUoKTspdS5wdXNoKHYpO2lmKHUubGVuZ3RoPjApe2xldCB4PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7eC5zZXRTdGFydCh1WzBdLDApLHguc2V0RW5kKHVbdS5sZW5ndGgtMV0sdVt1Lmxlbmd0aC0xXS50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoeCl9fXN0YXRpYyByZW1vdmVUYWdzRnJvbUZyYWdtZW50KGUsdCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5hcHBlbmRDaGlsZChlKTtsZXQgaT1yLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpO0FycmF5LmZyb20oaSkuZm9yRWFjaChsPT57bGV0IGQ9bC5wYXJlbnROb2RlO2lmKGQpe2Zvcig7bC5maXJzdENoaWxkOylkLmluc2VydEJlZm9yZShsLmZpcnN0Q2hpbGQsbCk7ZC5yZW1vdmVDaGlsZChsKX19KTtsZXQgbj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKDtyLmZpcnN0Q2hpbGQ7KW4uYXBwZW5kQ2hpbGQoci5maXJzdENoaWxkKTtyZXR1cm4gbn1zdGF0aWMgd3JhcFNlbGVjdGlvbldpdGhMaW5rKGUsdCl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFyKXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsImEiKSYmKHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLCJhIiksci5yYW5nZUNvdW50PjAmJihlPXIuZ2V0UmFuZ2VBdCgwKSkpO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtpLmhyZWY9dCxpLnRhcmdldD0iX2JsYW5rIixpLnJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI7dHJ5e2xldCBvPWUuZXh0cmFjdENvbnRlbnRzKCk7aS5hcHBlbmRDaGlsZChvKSxlLmluc2VydE5vZGUoaSksZS5zZWxlY3ROb2RlQ29udGVudHMoaSksci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKGUpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgbGluazoiLG8pfX1zdGF0aWMgZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uZSl7bGV0IHQ9cnQuZ2V0U2VsZWN0aW9uSW5mbyguLi5lKTtpZihjb25zb2xlLmxvZygiZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMgLSBzZWxlY3Rpb25JbmZvOiIsdCksIXQpcmV0dXJuIGNvbnNvbGUubG9nKCJObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUiKSxudWxsO2xldCBpPXJ0LmNyZWF0ZVJhbmdlRnJvbUluZm8odCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY29uc29sZS5sb2coIlJhbmdlIHJlY3Q6IixpKSxpLndpZHRoPT09MCYmaS5oZWlnaHQ9PT0wKXtpZihjb25zb2xlLmxvZygiUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoIiksImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihuJiZuLnJhbmdlQ291bnQ+MCl7bGV0IGw9bi5nZXRSYW5nZUF0KDApLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2QudGV4dENvbnRlbnQ9Ilx1MjAwQiIsbC5pbnNlcnROb2RlKGQpO2xldCBjPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoZC5yZW1vdmUoKSxjLndpZHRoPjB8fGMuaGVpZ2h0PjApe2xldCBwPXt4OmMubGVmdCx5Ok1hdGgubWF4KDQ1LGMudG9wLTQ1KX07cmV0dXJuIGNvbnNvbGUubG9nKCJVc2VkIHNwYW4gdHJpY2sgZm9yIGNvb3JkczoiLHApLHB9fX1yZXR1cm4gbnVsbH1sZXQgbz17eDppLmxlZnQraS53aWR0aC8yLHk6TWF0aC5tYXgoNDUsaS50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlJldHVybmluZyBjb29yZHM6IixvKSxvfX19KTt2YXIga2FlLFBmLFNhZSxRWWU9ZigoKT0+e2xlKCk7R2koKTtYWWUoKTtRZSgpO2thZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sUGY9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFNhZT0oKCk9PntsZXQgYT1baWUoImRlZXMtZm9ybWF0dGluZy1tZW51IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNGb3JtYXR0aW5nTWVudSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0sZD1bSygpXSx1PVtLKCldLGthZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InZpc2libGUiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy52aXNpYmxlLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cudmlzaWJsZT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG4sbCksa2FlKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InBvc2l0aW9uImluIGcsImhhcyIpLGdldDpzKGc9PmcucG9zaXRpb24sImdldCIpLHNldDpzKChnLHkpPT57Zy5wb3NpdGlvbj15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCksa2FlKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4ibWVudVpJbmRleCJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLm1lbnVaSW5kZXgsImdldCIpLHNldDpzKChnLHkpPT57Zy5tZW51WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbSx2KSxrYWUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSx4PXI9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHguaW5zdGFuY2V8fCh4Lmluc3RhbmNlPW5ldyB4LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoeC5pbnN0YW5jZSkpLHguaW5zdGFuY2V9I2U9UGYodGhpcyxuLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKGIpe3RoaXMuI2U9Yn0jdD0oUGYodGhpcyxsKSxQZih0aGlzLGMse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKGIpe3RoaXMuI3Q9Yn0jYT0oUGYodGhpcyxwKSxQZih0aGlzLG0sMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudVpJbmRleChiKXt0aGlzLiNhPWJ9Y2FsbGJhY2s9KFBmKHRoaXMsdiksbnVsbCk7c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZm9ybWF0dGluZy1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjYyNjI2Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSg1cHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMzMzMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy52aXNpYmxlPyh0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJmb3JtYXR0aW5nIgogICAgICA+CiAgICAgICAgJHtmYy5mb3JtYXRCdXR0b25zLm1hcChiPT53YAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHtiLmNvbW1hbmR9IgogICAgICAgICAgICBkYXRhLWNvbW1hbmQ9IiR7Yi5jb21tYW5kfSIKICAgICAgICAgICAgdGl0bGU9IiR7Yi5sYWJlbH0ke2Iuc2hvcnRjdXQ/YCAoJHtiLnNob3J0Y3V0fSlgOiIifSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9IiR7Yi5jb21tYW5kPT09ImNvZGUiPyJjb2RlLWljb24iOiIifSI+JHtiLmljb259PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYCk6d2BgfWFwcGx5Rm9ybWF0KGIpe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2soYiksYj09PSJsaW5rIiYmdGhpcy5oaWRlKCl9c2hvdyhiLGcpe2NvbnNvbGUubG9nKCJGb3JtYXR0aW5nTWVudS5zaG93IGNhbGxlZDoiLHtwb3NpdGlvbjpiLHZpc2libGU6dGhpcy52aXNpYmxlfSksdGhpcy5wb3NpdGlvbj1iLHRoaXMuY2FsbGJhY2s9Zyx0aGlzLm1lbnVaSW5kZXg9WHQuZ2V0TmV4dFpJbmRleCgpLFh0LnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwsWHQudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVQb3NpdGlvbihiKXt0aGlzLnBvc2l0aW9uPWJ9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsYj0+e2xldCBnPWIseT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTt5JiZ5LmNvbnRhaW5zKGcudGFyZ2V0KSYmKGcucHJldmVudERlZmF1bHQoKSxnLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYj0+e2xldCBnPWIsaz1nLnRhcmdldC5jbG9zZXN0KCIuZm9ybWF0LWJ1dHRvbiIpO2lmKGspe2cucHJldmVudERlZmF1bHQoKSxnLnN0b3BQcm9wYWdhdGlvbigpO2xldCBDPWsuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbW1hbmQiKTtDJiZ0aGlzLmFwcGx5Rm9ybWF0KEMpfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsYj0+e2xldCBnPWIseT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTt5JiZ5LmNvbnRhaW5zKGcudGFyZ2V0KSYmKGcucHJldmVudERlZmF1bHQoKSxnLnN0b3BQcm9wYWdhdGlvbigpKX0sITApfXN0YXRpY3tQZihyLHQpfX07cmV0dXJuIHg9cn0pKCl9KTt2YXIgY209ZigoKT0+e2xlKCk7SW8oKTtaWWUoKTtRWWUoKX0pO3ZhciBFVSx6YWU9ZigoKT0+e0VVPVsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJKYXZhIiwiQysrIiwiQyMiLCJHbyIsIlJ1c3QiLCJIVE1MIiwiQ1NTIiwiU1FMIiwiU2hlbGwiLCJKU09OIiwiWUFNTCIsIk1hcmtkb3duIiwiUGxhaW4gVGV4dCJdfSk7dmFyIEpZZSxkaWE9ZigoKT0+e2xlKCk7SlllPVhgCiAgOmhvc3QgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgbWluLWhlaWdodDogMjAwcHg7CiAgICBwYWRkaW5nOiAyNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiMzZjNmNDYiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9LCAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuNSkiKX07CiAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIFZpc3VhbCBoaW50IGZvciB0ZXh0IHNlbGVjdGlvbiAqLwogIC5lZGl0b3ItY29udGVudDpob3ZlciB7CiAgICBjdXJzb3I6IHRleHQ7CiAgfQoKICAuZWRpdG9yLWNvbnRlbnQgewogICAgb3V0bGluZTogbm9uZTsKICAgIG1pbi1oZWlnaHQ6IDE2MHB4OwogICAgbWFyZ2luOiAwIC04cHg7CiAgICBwYWRkaW5nOiAwIDhweDsKICB9CgogIC5ibG9jayB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiA0cHggMDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgbWluLWhlaWdodDogMS42ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLyogRmlyc3QgYW5kIGxhc3QgYmxvY2tzIGRvbid0IG5lZWQgZXh0cmEgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyOmZpcnN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgfQoKICAuYmxvY2std3JhcHBlcjpsYXN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBvdXRsaW5lOiAycHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgfQoKICAuYmxvY2tbY29udGVudGVkaXRhYmxlXSB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGg6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMSB7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0xOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTIgewogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMjplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDIiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0zIHsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTM6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAzIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLnF1b3RlIHsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICB9CgogIC5ibG9jay5xdW90ZTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJRdW90ZSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBtYXJnaW46IDIwcHggMDsKICB9CgogIC5jb2RlLWxhbmd1YWdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogMCA0cHggMCA0cHg7CiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOwogICAgei1pbmRleDogMTsKICB9CgogIC5ibG9jay5jb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHBhZGRpbmc6IDE2cHg7CiAgICBwYWRkaW5nLXRvcDogMzJweDsgLyogTWFrZSByb29tIGZvciBsYW5ndWFnZSBpbmRpY2F0b3IgKi8KICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBvdmVyZmxvdy14OiBhdXRvOwogIH0KCiAgLmJsb2NrLmNvZGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiLy8gQ29kZSBibG9jayI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmxpc3QgewogICAgcGFkZGluZy1sZWZ0OiAwOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwsCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMCAwIDAgMjRweDsKICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7CiAgfQoKICAuYmxvY2subGlzdCB1bCB7CiAgICBsaXN0LXN0eWxlOiBkaXNjOwogIH0KCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbGlzdC1zdHlsZTogZGVjaW1hbDsKICB9CgogIC5ibG9jay5saXN0IGxpIHsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQoKICAuYmxvY2suZGl2aWRlciB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyMHB4IDA7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CgogIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBtYXJnaW46IDA7CiAgfQoKICAuc2xhc2gtbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gewogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCAuaWNvbiB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLnRvb2xiYXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAtNDBweDsKICAgIGxlZnQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBnYXA6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgfQoKICAudG9vbGJhci52aXNpYmxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQoKICAudG9vbGJhci1idXR0b24gewogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIERyYWcgYW5kIERyb3AgU3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgfQoKICAvKiBFbnN1cmUgcHJvcGVyIHNwYWNpbmcgY29udGV4dCBmb3IgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMTZweDsKICB9CgogIC8qIE92ZXJyaWRlIGZvciBoZWFkaW5ncyBmb2xsb3dpbmcgb3RoZXIgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0xLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMiwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTMgewogICAgbWFyZ2luLXRvcDogMjRweDsKICB9CgogIC8qIENvZGUgYW5kIHF1b3RlIGJsb2NrcyBuZWVkIGNvbnNpc3RlbnQgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmNvZGUsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sucXVvdGUgewogICAgbWFyZ2luLXRvcDogMjBweDsKICB9CgogIC5kcmFnLWhhbmRsZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAtMjhweDsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBjdXJzb3I6IGdyYWI7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC5kcmFnLWhhbmRsZTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICLii67ii64iOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGV0dGVyLXNwYWNpbmc6IC0ycHg7CiAgfQoKICAuYmxvY2std3JhcHBlcjpob3ZlciAuZHJhZy1oYW5kbGUgewogICAgb3BhY2l0eTogMTsKICB9CgogIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogIH0KCiAgLmRyYWctaGFuZGxlOmFjdGl2ZSB7CiAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLmJsb2NrLXdyYXBwZXIuZHJhZ2dpbmcgewogICAgb3BhY2l0eTogMC44OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiAyMDAxOwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KCgogIC8qIEJsb2NrcyB0aGF0IHNob3VsZCBtb3ZlIG91dCBvZiB0aGUgd2F5ICovCiAgLmJsb2NrLXdyYXBwZXIubW92ZS1kb3duIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSk7CiAgfQoKICAuYmxvY2std3JhcHBlci5tb3ZlLXVwIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpKTsKICB9CgogIC8qIERyb3AgaW5kaWNhdG9yICovCiAgLmRyb3AtaW5kaWNhdG9yIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgZWFzZSwgaGVpZ2h0IDAuMnMgZWFzZTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMTk5OTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICAvKiBSZW1vdmUgb2xkIGRyYWctb3ZlciBzdHlsZXMgKi8KICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYmVmb3JlLAogIC5ibG9jay13cmFwcGVyLmRyYWctb3Zlci1hZnRlciB7CiAgICAvKiBObyBsb25nZXIgbmVlZGVkLCB1c2luZyBkcm9wIGluZGljYXRvciBpbnN0ZWFkICovCiAgfQoKICAuZWRpdG9yLWNvbnRlbnQuZHJhZ2dpbmcgKiB7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC8qIEJsb2NrIFNldHRpbmdzIEJ1dHRvbiAtIFJlbW92ZWQgaW4gZmF2b3Igb2YgY29udGV4dCBtZW51ICovCgogIC8qIFRleHQgU2VsZWN0aW9uIFN0eWxlcyAqLwogIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgIGNvbG9yOiBpbmhlcml0OwogIH0KCiAgLyogRm9ybWF0dGluZyBNZW51ICovCiAgLmZvcm1hdHRpbmctbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDJweDsKICAgIHotaW5kZXg6IDEwMDE7CiAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogIH0KCiAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICBmcm9tIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKDJweCk7CiAgICB9CiAgICB0byB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgIH0KICB9CgogIC5mb3JtYXQtYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICB9CgogIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxMnB4OwogIH0KCiAgLyogQXBwbGllZCBmb3JtYXQgc3R5bGVzIGluIGNvbnRlbnQgKi8KICAuYmxvY2sgc3Ryb25nLAogIC5ibG9jayBiIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGVtLAogIC5ibG9jayBpIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5ibG9jayB1IHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmJsb2NrIHN0cmlrZSwKICAuYmxvY2sgcyB7CiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgIG9wYWNpdHk6IDAuNzsKICB9CgogIC5ibG9jayBjb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGEgewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogIH0KCiAgLmJsb2NrIGE6aG92ZXIgewogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KYH0pO3ZhciBJbixlS2U9ZigoKT0+e0lvKCk7SW49Y2xhc3N7c3RhdGlje3ModGhpcywiV3lzaXd5Z0NvbnZlcnRlcnMiKX1zdGF0aWMgZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfXN0YXRpYyBmb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHQ9MTAyNCxyPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxpPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2codCkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KHQsaSkpLnRvRml4ZWQoMikpKyIgIityW2ldfXN0YXRpYyBnZXRIdG1sT3V0cHV0KGUpe3JldHVybiBlLm1hcCh0PT57bGV0IHI9dC5jb250ZW50LmluY2x1ZGVzKCI8IikmJnQuY29udGVudC5pbmNsdWRlcygiPiIpP3QuY29udGVudDp0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KTtzd2l0Y2godC50eXBlKXtjYXNlInBhcmFncmFwaCI6cmV0dXJuIHQuY29udGVudD9gPHA+JHtyfTwvcD5gOiIiO2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gPGgxPiR7cn08L2gxPmA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmA8aDI+JHtyfTwvaDI+YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYDxoMz4ke3J9PC9oMz5gO2Nhc2UicXVvdGUiOnJldHVybmA8YmxvY2txdW90ZT4ke3J9PC9ibG9ja3F1b3RlPmA7Y2FzZSJjb2RlIjpyZXR1cm5gPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbCh0LmNvbnRlbnQpfTwvY29kZT48L3ByZT5gO2Nhc2UibGlzdCI6bGV0IGk9dC5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGQ9PmQudHJpbSgpKTtpZihpLmxlbmd0aD4wKXtsZXQgZD10Lm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke2R9PiR7aS5tYXAoYz0+YDxsaT4ke2N9PC9saT5gKS5qb2luKCIiKX08LyR7ZH0+YH1yZXR1cm4iIjtjYXNlImRpdmlkZXIiOnJldHVybiI8aHI+IjtjYXNlImltYWdlIjpsZXQgbz10Lm1ldGFkYXRhPy51cmw7aWYobyl7bGV0IGQ9dGhpcy5lc2NhcGVIdG1sKHQuY29udGVudHx8IkltYWdlIik7cmV0dXJuYDxpbWcgc3JjPSIke299IiBhbHQ9IiR7ZH0iIC8+YH1yZXR1cm4iIjtjYXNlInlvdXR1YmUiOmxldCBuPXQubWV0YWRhdGE/LnZpZGVvSWQ7cmV0dXJuIG4/YDxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtufSIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm5gPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+JHt0aGlzLmVzY2FwZUh0bWwodC5jb250ZW50KX08L2Rpdj5gO2Nhc2UiaHRtbCI6cmV0dXJuIHQuY29udGVudDtjYXNlImF0dGFjaG1lbnQiOmxldCBsPXQubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gbC5sZW5ndGg+MD9gPGRpdiBjbGFzcz0iYXR0YWNobWVudHMiPiR7bC5tYXAoZD0+YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke2QuaWR9Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7ZC5kYXRhfSIgZG93bmxvYWQ9IiR7ZC5uYW1lfSI+JHt0aGlzLmVzY2FwZUh0bWwoZC5uYW1lKX08L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKGQuc2l6ZSl9KTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gKS5qb2luKCIiKX08L2Rpdj5gOiIiO2RlZmF1bHQ6cmV0dXJuYDxwPiR7cn08L3A+YH19KS5maWx0ZXIodD0+dCE9PSIiKS5qb2luKGAKYCl9c3RhdGljIGdldE1hcmtkb3duT3V0cHV0KGUpe3JldHVybiBlLm1hcCh0PT57c3dpdGNoKHQudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJoZWFkaW5nLTEiOnJldHVybmAjICR7dC5jb250ZW50fWA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmAjIyAke3QuY29udGVudH1gO2Nhc2UiaGVhZGluZy0zIjpyZXR1cm5gIyMjICR7dC5jb250ZW50fWA7Y2FzZSJxdW90ZSI6cmV0dXJuYD4gJHt0LmNvbnRlbnR9YDtjYXNlImNvZGUiOnJldHVybmBcYFxgXGAKJHt0LmNvbnRlbnR9ClxgXGBcYGA7Y2FzZSJsaXN0IjpsZXQgcj10LmNvbnRlbnQuc3BsaXQoYApgKS5maWx0ZXIoYz0+Yy50cmltKCkpO3JldHVybiB0Lm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj9yLm1hcCgoYyxwKT0+YCR7cCsxfS4gJHtjfWApLmpvaW4oYApgKTpyLm1hcChjPT5gLSAke2N9YCkuam9pbihgCmApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIi0tLSI7Y2FzZSJpbWFnZSI6bGV0IGk9dC5tZXRhZGF0YT8udXJsLG89dC5jb250ZW50fHwiSW1hZ2UiO3JldHVybiBpP2AhWyR7b31dKCR7aX0pYDoiIjtjYXNlInlvdXR1YmUiOmxldCBuPXQubWV0YWRhdGE/LnZpZGVvSWQsbD10Lm1ldGFkYXRhPy51cmx8fChuP2BodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9JHtufWA6IiIpO3JldHVybiBsP2BbWW91VHViZSBWaWRlb10oJHtsfSlgOiIiO2Nhc2UibWFya2Rvd24iOnJldHVybiB0LmNvbnRlbnQ7Y2FzZSJodG1sIjpyZXR1cm5gPCEtLSBIVE1MIEJsb2NrCiR7dC5jb250ZW50fQotLT5gO2Nhc2UiYXR0YWNobWVudCI6bGV0IGQ9dC5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybiBkLmxlbmd0aD4wP2QubWFwKGM9PmAtIFske2MubmFtZX1dKCR7Yy5kYXRhfSlgKS5qb2luKGAKYCk6IiI7ZGVmYXVsdDpyZXR1cm4gdC5jb250ZW50fX0pLmZpbHRlcih0PT50IT09IiIpLmpvaW4oYAoKYCl9c3RhdGljIHBhcnNlSHRtbFRvQmxvY2tzKGUpe2xldCByPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC9odG1sIiksaT1bXSxvPXMobj0+e2lmKG4ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmbi50ZXh0Q29udGVudD8udHJpbSgpKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpuLnRleHRDb250ZW50LnRyaW0oKX0pO2Vsc2UgaWYobi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXtsZXQgbD1uLGQ9bC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7c3dpdGNoKGQpe2Nhc2UicCI6aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDEiOmkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgyIjppLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMyI6aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiYmxvY2txdW90ZSI6aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJwcmUiOmNhc2UiY29kZSI6aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLnRleHRDb250ZW50fHwiIn0pO2JyZWFrO2Nhc2UidWwiOmNhc2Uib2wiOmxldCBwPUFycmF5LmZyb20obC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpKS5tYXAobT0+bS5pbm5lckhUTUx8fCIiKS5qb2luKGAKYCk7aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToibGlzdCIsY29udGVudDpwLG1ldGFkYXRhOntsaXN0VHlwZTpkPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9fSk7YnJlYWs7Y2FzZSJociI6aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTticmVhaztjYXNlImltZyI6bGV0IHU9bDtpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDp1LmFsdHx8IiIsbWV0YWRhdGE6e3VybDp1LnNyY319KTticmVhaztkZWZhdWx0OmwuY2hpbGROb2Rlcy5mb3JFYWNoKG09Pm8obSkpfX19LCJwcm9jZXNzTm9kZSIpO3JldHVybiByLmJvZHkuY2hpbGROb2Rlcy5mb3JFYWNoKG49Pm8obikpLGl9c3RhdGljIHBhcnNlTWFya2Rvd25Ub0Jsb2NrcyhlKXtsZXQgdD1lLnNwbGl0KGAKYCkscj1bXSxpPVtdO2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtsZXQgbj10W29dO2lmKG4uc3RhcnRzV2l0aCgiIyAiKSlyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6bi5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG4uc3RhcnRzV2l0aCgiIyMgIikpci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50Om4uc3Vic3RyaW5nKDMpfSk7ZWxzZSBpZihuLnN0YXJ0c1dpdGgoIiMjIyAiKSlyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6bi5zdWJzdHJpbmcoNCl9KTtlbHNlIGlmKG4uc3RhcnRzV2l0aCgiPiAiKSlyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJxdW90ZSIsY29udGVudDpuLnN1YnN0cmluZygyKX0pO2Vsc2UgaWYobi5zdGFydHNXaXRoKCJgYGAiKSl7bGV0IGw9W107Zm9yKG8rKztvPHQubGVuZ3RoJiYhdFtvXS5zdGFydHNXaXRoKCJgYGAiKTspbC5wdXNoKHRbb10pLG8rKztyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJjb2RlIixjb250ZW50Omwuam9pbihgCmApfSl9ZWxzZSBpZihuLm1hdGNoKC9eKFwqfC0pIC8pKWkucHVzaChuLnN1YnN0cmluZygyKSksKG89PT10Lmxlbmd0aC0xfHwhdFtvKzFdLm1hdGNoKC9eKFwqfC0pIC8pKSYmKHIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6aS5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0pLGk9W10pO2Vsc2UgaWYobi5tYXRjaCgvXlxkK1wuIC8pKWkucHVzaChuLnJlcGxhY2UoL15cZCtcLiAvLCIiKSksKG89PT10Lmxlbmd0aC0xfHwhdFtvKzFdLm1hdGNoKC9eXGQrXC4gLykpJiYoci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToibGlzdCIsY29udGVudDppLmpvaW4oYApgKSxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0pLGk9W10pO2Vsc2UgaWYobj09PSItLS0ifHxuPT09IioqKiJ8fG49PT0iX19fIilyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIgIn0pO2Vsc2UgaWYobi5tYXRjaCgvXiFcWyhbXlxdXSopXF1cKChbXlwpXSspXCkkLykpe2xldCBsPW4ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pO2wmJnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImltYWdlIixjb250ZW50OmxbMV18fCIiLG1ldGFkYXRhOnt1cmw6bFsyXX19KX1lbHNlIG4udHJpbSgpJiZyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6bn0pfXJldHVybiByfX19KTt2YXIgc2ksaGM9ZigoKT0+e2xlKCk7SW8oKTtlS2UoKTtzaT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJXeXNpd3lnQmxvY2tzIil9c3RhdGljIHJlbmRlckxpc3RDb250ZW50KGUsdCl7bGV0IHI9ZS5zcGxpdChgCmApLmZpbHRlcihvPT5vLnRyaW0oKSk7aWYoci5sZW5ndGg9PT0wKXJldHVybiIiO2xldCBpPXQ/Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtyZXR1cm5gPCR7aX0+JHtyLm1hcChvPT5gPGxpPiR7b308L2xpPmApLmpvaW4oIiIpfTwvJHtpfT5gfXN0YXRpYyByZW5kZXJCbG9jayhlLHQscil7aWYoZS50eXBlPT09ImRpdmlkZXIiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBkaXZpZGVyIgogICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICA+CiAgICAgICAgICA8aHI+CiAgICAgICAgPC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09Imxpc3QiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBsaXN0ICR7dD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICBAaW5wdXQ9IiR7ci5vbklucHV0fSIKICAgICAgICAgIEBrZXlkb3duPSIke3Iub25LZXlEb3dufSIKICAgICAgICAgIEBmb2N1cz0iJHtyLm9uRm9jdXN9IgogICAgICAgICAgQGJsdXI9IiR7ci5vbkJsdXJ9IgogICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7ci5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke3Iub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgICBAbW91c2V1cD0iJHtvPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxyLm9uTW91c2VVcCYmci5vbk1vdXNlVXAobyl9fSIKICAgICAgICAgIC5pbm5lckhUTUw9IiR7dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSl9IgogICAgICAgID48L2Rpdj4KICAgICAgYDtpZihlLnR5cGU9PT0iY29kZSIpe2xldCBvPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwicGxhaW4gdGV4dCI7cmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1sYW5ndWFnZSI+JHtvfTwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgJHtlLnR5cGV9ICR7dD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICBAaW5wdXQ9IiR7ci5vbklucHV0fSIKICAgICAgICAgICAgQGtleWRvd249IiR7ci5vbktleURvd259IgogICAgICAgICAgICBAZm9jdXM9IiR7ci5vbkZvY3VzfSIKICAgICAgICAgICAgQGJsdXI9IiR7ci5vbkJsdXJ9IgogICAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHtyLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtyLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxyLm9uTW91c2VVcCYmci5vbk1vdXNlVXAobil9fSIKICAgICAgICAgICAgLnRleHRDb250ZW50PSIke2UuY29udGVudHx8IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke3Q/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIEBpbnB1dD0iJHtyLm9uSW5wdXR9IgogICAgICAgIEBrZXlkb3duPSIke3Iub25LZXlEb3dufSIKICAgICAgICBAZm9jdXM9IiR7ci5vbkZvY3VzfSIKICAgICAgICBAYmx1cj0iJHtyLm9uQmx1cn0iCiAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7ci5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtyLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgIEBtb3VzZXVwPSIke289Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLHIub25Nb3VzZVVwJiZyLm9uTW91c2VVcChvKX19IgogICAgICAgIC5pbm5lckhUTUw9IiR7ZS5jb250ZW50fHwiIn0iCiAgICAgID48L2Rpdj4KICAgIGB9c3RhdGljIHNldEN1cnNvclRvRW5kKGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighdClyZXR1cm47bGV0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihlLmNoaWxkTm9kZXMubGVuZ3RoPT09MCl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpO2UuYXBwZW5kQ2hpbGQoaSksci5zZXRTdGFydChpLDEpLHIuY29sbGFwc2UoITApfWVsc2V7bGV0IGk9dGhpcy5nZXRMYXN0Tm9kZShlKTtpLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/ci5zZXRTdGFydChpLGkudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCk6ci5zZXRTdGFydEFmdGVyKGkpLHIuY29sbGFwc2UoITApfXQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShyKSxlLnRleHRDb250ZW50PT09Ilx1MjAwQiImJihlLnRleHRDb250ZW50PSIiKX1zdGF0aWMgc2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXQpcmV0dXJuO2xldCByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApci5zZXRTdGFydChlLDApLHIuY29sbGFwc2UoITApO2Vsc2V7bGV0IGk9dGhpcy5nZXRGaXJzdE5vZGUoZSk7aS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP3Iuc2V0U3RhcnQoaSwwKTpyLnNldFN0YXJ0QmVmb3JlKGkpLHIuY29sbGFwc2UoITApfXQucmVtb3ZlQWxsUmFuZ2VzKCksdC5hZGRSYW5nZShyKX1zdGF0aWMgZ2V0TGFzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IHQ9ZS5jaGlsZE5vZGVzW2UuY2hpbGROb2Rlcy5sZW5ndGgtMV07cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERXx8dC5jaGlsZE5vZGVzLmxlbmd0aD09PTA/dDp0aGlzLmdldExhc3ROb2RlKHQpfXN0YXRpYyBnZXRGaXJzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IHQ9ZS5jaGlsZE5vZGVzWzBdO3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHQuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3Q6dGhpcy5nZXRGaXJzdE5vZGUodCl9c3RhdGljIGZvY3VzTGlzdEl0ZW0oZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKHQpe3QuZm9jdXMoKTtsZXQgcj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGk9d2luZG93LmdldFNlbGVjdGlvbigpO3Iuc2VsZWN0Tm9kZUNvbnRlbnRzKHQpLHIuY29sbGFwc2UoITApLGkucmVtb3ZlQWxsUmFuZ2VzKCksaS5hZGRSYW5nZShyKX19fX0pO3ZhciBJVSx0S2U9ZigoKT0+e0lvKCk7Y20oKTtBZigpO2hjKCk7SVU9Y2xhc3N7c3RhdGlje3ModGhpcywiV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyIpfWNvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIsdD0iIixyKXtyZXR1cm57aWQ6ZXMuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6dCwuLi5yJiZ7bWV0YWRhdGE6cn19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSx0LHI9ITApe2xldCBpPXRoaXMuY29tcG9uZW50LmJsb2NrcyxvPWkuZmluZEluZGV4KG49Pm4uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLmkuc2xpY2UoMCxvKzEpLHQsLi4uaS5zbGljZShvKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihuKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQodCk7bi5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxyJiZ0LnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShuPT5zZXRUaW1lb3V0KG4sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayh0LmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcih0PT50LmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IHQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7dCYmdC5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQodD0+dC5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgodD0+dC5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSx0PSJzdGFydCIpe2xldCByPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKHIpe2xldCBpPXIucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aSYmKGF3YWl0IG5ldyBQcm9taXNlKG89PnJlcXVlc3RBbmltYXRpb25GcmFtZShvKSksaS5mb2N1c1dpdGhDdXJzb3IodCkpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSx0KXtsZXQgcj10aGlzLmZpbmRCbG9jayhlKTtyJiYoci5jb250ZW50PXQsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSx0LHIpe2xldCBpPXRoaXMuZmluZEJsb2NrKGUpO2kmJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxpLnR5cGU9dCxpLmNvbnRlbnQ9IiIsciYmKGkubWV0YWRhdGE9ciksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLHQpe2xldCByPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLGk9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKGk9PT0tMXx8dDwwfHx0Pj1yLmxlbmd0aClyZXR1cm47bGV0W29dPXIuc3BsaWNlKGksMSk7ci5zcGxpY2UodCwwLG8pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1yLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ+MD90aGlzLmNvbXBvbmVudC5ibG9ja3NbdC0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgdD10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHQ8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1t0KzFdOm51bGx9fX0pO3ZhciBocixybj1mKCgpPT57aHI9Y2xhc3N7c3RhdGlje3ModGhpcywiQmFzZUJsb2NrSGFuZGxlciIpfXNldHVwKGUsdCxyKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciBqYSx1aWE9ZigoKT0+e2phPWNsYXNze3N0YXRpY3tzKHRoaXMsIkJsb2NrUmVnaXN0cnkiKX1zdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSx0KXt0aGlzLmhhbmRsZXJzLnNldChlLHQpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciBwaWE9ZigoKT0+e30pO3ZhciBOVSxmaWE9ZigoKT0+e3JuKCk7bGUoKTtoYygpO1UyKCk7TlU9Y2xhc3MgZXh0ZW5kcyBocntzdGF0aWN7cyh0aGlzLCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIiKX10eXBlPSJwYXJhZ3JhcGgiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IHI9dD8iIHNlbGVjdGVkIjoiIixpPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcGFyYWdyYXBoJHtyfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtpfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighaSl7Y29uc29sZS5lcnJvcigiUGFyYWdyYXBoQmxvY2tIYW5kbGVyLnNldHVwOiBObyBwYXJhZ3JhcGggYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn10LmNvbnRlbnQmJiFpLmlubmVySFRNTCYmKGkuaW5uZXJIVE1MPXQuY29udGVudCksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbz0+e3Iub25JbnB1dChvKTtsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pLHIub25LZXlEb3duKG8pfSksaS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntyLm9uRm9jdXMoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntyLm9uQmx1cigpfSksaS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e3Iub25Db21wb3NpdGlvblN0YXJ0KCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e3Iub25Db21wb3NpdGlvbkVuZCgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixvPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249biksci5vbk1vdXNlVXA/LihvKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntzZXRUaW1lb3V0KCgpPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9LDApfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxpLHQpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHQscil7bGV0IGk9cygoKT0+e2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighbnx8bi5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9bi50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6ci5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBkPXQuZ2V0Um9vdE5vZGUoKS5ob3N0LHA9ZD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsdT1kPy5zaGFkb3dSb290LG09W107cCYmbS5wdXNoKHApLHUmJm0ucHVzaCh1KTtsZXQgdj1ydC5nZXRTZWxlY3Rpb25JbmZvKC4uLm0pO2lmKCF2KXJldHVybjtsZXQgeD1ydC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuc3RhcnRDb250YWluZXIpLGI9cnQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCx2LmVuZENvbnRhaW5lcik7aWYoeHx8Yil7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IGc9cnQuY3JlYXRlUmFuZ2VGcm9tSW5mbyh2KSx5PWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDpyLmlkLHJhbmdlOmcscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOnIuaWQsaGFzU2VsZWN0aW9uOiExfSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGkpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1pO2xldCBvPWUuY2xvc2VzdCgiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYobyl7bGV0IG49by5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7by5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbiYmYXdhaXQgbi5jYWxsKG8pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCByPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQocil9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBQYXJhZ3JhcGggc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5wYXJhZ3JhcGggewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIn1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCByPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYocilyZXR1cm4gcn1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybiBudWxsO2xldCBuPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLGwmJmQucHVzaChsKTtsZXQgYz1ydC5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhcnQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgcD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBwLnNlbGVjdE5vZGVDb250ZW50cyhyKSxwLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHAudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO3JldHVybiByJiZyLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWkpcmV0dXJuO2xldCBvPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pO2kuaW5uZXJIVE1MPXQsbyYmaS5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtyJiZzaS5zZXRDdXJzb3JUb1N0YXJ0KHIpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7ciYmc2kuc2V0Q3Vyc29yVG9FbmQocil9Zm9jdXMoZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtyJiYoci5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxyLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHIuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09ciYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3IuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFpKXJldHVybjtpZihpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZpLnRleHRDb250ZW50JiZpLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobil7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxkPXRoaXMuZ2V0TGFzdFRleHROb2RlKGkpfHxpO2Qubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChkLGQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQoZCxkLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMoZCksbC5jb2xsYXBzZSghMSkpLG4ucmVtb3ZlQWxsUmFuZ2VzKCksbi5hZGRSYW5nZShsKX19aS5mb2N1cygpO2xldCBvPXMoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxyKTp0PT09ImVuZCImJighaS50ZXh0Q29udGVudHx8aS50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUscik6dHlwZW9mIHQ9PSJudW1iZXIiJiZydC5zZXRDdXJzb3JQb3NpdGlvbihpLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWk/bygpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aT9vKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aSkmJm8oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IG49dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbCYmZC5wdXNoKGwpO2xldCBjPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWMpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1yLnRleHRDb250ZW50fHwiIixDPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxDKSxhZnRlcjprLnN1YnN0cmluZyhDKX19cmV0dXJuIG51bGx9aWYoIXJ0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsYy5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1yLnRleHRDb250ZW50fHwiIixDPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxDKSxhZnRlcjprLnN1YnN0cmluZyhDKX19cmV0dXJuIG51bGx9bGV0IHA9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHA9PT1udWxsfHxwPT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOnIuaW5uZXJIVE1MfTtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLG09ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt1LnNldFN0YXJ0KHIsMCksdS5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxtLnNldFN0YXJ0KGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksbS5zZXRFbmQocixyLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj11LmNsb25lQ29udGVudHMoKSx4PW0uY2xvbmVDb250ZW50cygpLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5hcHBlbmRDaGlsZCh2KTtsZXQgZz1iLmlubmVySFRNTDtiLmlubmVySFRNTD0iIixiLmFwcGVuZENoaWxkKHgpO2xldCB5PWIuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZyxhZnRlcjp5fX19fSk7dmFyIEVmLGhpYT1mKCgpPT57cm4oKTtsZSgpO2hjKCk7VTIoKTtFZj1jbGFzcyBleHRlbmRzIGhye3N0YXRpY3tzKHRoaXMsIkhlYWRpbmdCbG9ja0hhbmRsZXIiKX10eXBlO2xldmVsO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLmxldmVsPXBhcnNlSW50KGUuc3BsaXQoIi0iKVsxXSl9cmVuZGVyKGUsdCl7bGV0IHI9dD8iIHNlbGVjdGVkIjoiIixpPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgaGVhZGluZy0ke3RoaXMubGV2ZWx9JHtyfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtpfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighaSl7Y29uc29sZS5lcnJvcigiSGVhZGluZ0Jsb2NrSGFuZGxlci5zZXR1cDogTm8gaGVhZGluZyBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIWkuaW5uZXJIVE1MJiYoaS5pbm5lckhUTUw9dC5jb250ZW50KSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixvPT57ci5vbklucHV0KG8pO2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249biksci5vbktleURvd24obyl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3Iub25Gb2N1cygpfSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3Iub25CbHVyKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57ci5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57ci5vbkNvbXBvc2l0aW9uRW5kKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG89PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxyLm9uTW91c2VVcD8uKG8pfSksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e3NldFRpbWVvdXQoKCk9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0sMCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixvPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLGksdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxyKXtsZXQgaT1zKCgpPT57bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1uLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDpyLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGQ9dC5nZXRSb290Tm9kZSgpLmhvc3QscD1kPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCx1PWQ/LnNoYWRvd1Jvb3QsbT1bXTtwJiZtLnB1c2gocCksdSYmbS5wdXNoKHUpO2xldCB2PXJ0LmdldFNlbGVjdGlvbkluZm8oLi4ubSk7aWYoIXYpcmV0dXJuO2xldCB4PXJ0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksYj1ydC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxiKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZz1ydC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOnIuaWQscmFuZ2U6ZyxyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6ci5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsaSksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPWk7bGV0IG89dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobyl7bGV0IG49by5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7by5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbiYmYXdhaXQgbi5jYWxsKG8pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCByPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQocil9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suaGVhZGluZy0xIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMjRweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW46IDE2cHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UgMTpyZXR1cm4iSGVhZGluZyAxIjtjYXNlIDI6cmV0dXJuIkhlYWRpbmcgMiI7Y2FzZSAzOnJldHVybiJIZWFkaW5nIDMiO2RlZmF1bHQ6cmV0dXJuIkhlYWRpbmcifX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCByPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYocilyZXR1cm4gcn1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXJldHVybiBudWxsO2xldCBuPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLGwmJmQucHVzaChsKTtsZXQgYz1ydC5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhcnQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgcD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBwLnNlbGVjdE5vZGVDb250ZW50cyhyKSxwLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHAudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3JldHVybiByJiZyLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHQscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWkpcmV0dXJuO2xldCBvPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pO2kuaW5uZXJIVE1MPXQsbyYmaS5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtyJiZzaS5zZXRDdXJzb3JUb1N0YXJ0KHIpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7ciYmc2kuc2V0Q3Vyc29yVG9FbmQocil9Zm9jdXMoZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtyJiYoci5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxyLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHIuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09ciYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3IuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFpKXJldHVybjtpZihpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdD09PSJlbmQiJiZpLnRleHRDb250ZW50JiZpLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobil7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxkPXRoaXMuZ2V0TGFzdFRleHROb2RlKGkpfHxpO2Qubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8obC5zZXRTdGFydChkLGQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksbC5zZXRFbmQoZCxkLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToobC5zZWxlY3ROb2RlQ29udGVudHMoZCksbC5jb2xsYXBzZSghMSkpLG4ucmVtb3ZlQWxsUmFuZ2VzKCksbi5hZGRSYW5nZShsKX19aS5mb2N1cygpO2xldCBvPXMoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxyKTp0PT09ImVuZCImJighaS50ZXh0Q29udGVudHx8aS50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUscik6dHlwZW9mIHQ9PSJudW1iZXIiJiZydC5zZXRDdXJzb3JQb3NpdGlvbihpLHQpfSwic2V0Q3Vyc29yIik7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWk/bygpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aT9vKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aSkmJm8oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXIpcmV0dXJuIG51bGw7bGV0IG49dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbCYmZC5wdXNoKGwpO2xldCBjPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWMpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1yLnRleHRDb250ZW50fHwiIixDPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxDKSxhZnRlcjprLnN1YnN0cmluZyhDKX19cmV0dXJuIG51bGx9aWYoIXJ0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsYy5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1yLnRleHRDb250ZW50fHwiIixDPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxDKSxhZnRlcjprLnN1YnN0cmluZyhDKX19cmV0dXJuIG51bGx9bGV0IHA9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHQpO2lmKHA9PT1udWxsfHxwPT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOnIuaW5uZXJIVE1MfTtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLG09ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt1LnNldFN0YXJ0KHIsMCksdS5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxtLnNldFN0YXJ0KGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksbS5zZXRFbmQocixyLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgdj11LmNsb25lQ29udGVudHMoKSx4PW0uY2xvbmVDb250ZW50cygpLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5hcHBlbmRDaGlsZCh2KTtsZXQgZz1iLmlubmVySFRNTDtiLmlubmVySFRNTD0iIixiLmFwcGVuZENoaWxkKHgpO2xldCB5PWIuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZyxhZnRlcjp5fX19fSk7dmFyIFJVLG1pYT1mKCgpPT57cm4oKTtsZSgpO2hjKCk7VTIoKTtSVT1jbGFzcyBleHRlbmRzIGhye3N0YXRpY3tzKHRoaXMsIlF1b3RlQmxvY2tIYW5kbGVyIil9dHlwZT0icXVvdGUiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IHI9dD8iIHNlbGVjdGVkIjoiIixpPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcXVvdGUke3J9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke2l9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSx0LHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIWkpe2NvbnNvbGUuZXJyb3IoIlF1b3RlQmxvY2tIYW5kbGVyLnNldHVwOiBObyBxdW90ZSBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXQuY29udGVudCYmIWkuaW5uZXJIVE1MJiYoaS5pbm5lckhUTUw9dC5jb250ZW50KSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixvPT57ci5vbklucHV0KG8pO2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249biksci5vbktleURvd24obyl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3Iub25Gb2N1cygpfSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3Iub25CbHVyKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57ci5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57ci5vbkNvbXBvc2l0aW9uRW5kKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG89PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxyLm9uTW91c2VVcD8uKG8pfSksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e3NldFRpbWVvdXQoKCk9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0sMCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixvPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLGksdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxyKXtsZXQgaT1zKCgpPT57bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1uLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDpyLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGQ9dC5nZXRSb290Tm9kZSgpLmhvc3QscD1kPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCx1PWQ/LnNoYWRvd1Jvb3QsbT1bXTtwJiZtLnB1c2gocCksdSYmbS5wdXNoKHUpO2xldCB2PXJ0LmdldFNlbGVjdGlvbkluZm8oLi4ubSk7aWYoIXYpcmV0dXJuO2xldCB4PXJ0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksYj1ydC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxiKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZz1ydC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOnIuaWQscmFuZ2U6ZyxyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6ci5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsaSksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPWk7bGV0IG89dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobyl7bGV0IG49by5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7by5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbiYmYXdhaXQgbi5jYWxsKG8pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCByPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQocil9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybiBudWxsO2xldCBuPXQ/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD10Py5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLGwmJmQucHVzaChsKTtsZXQgYz1ydC5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhcnQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgcD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBwLnNlbGVjdE5vZGVDb250ZW50cyhyKSxwLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHAudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIHImJnIuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXJldHVybjtsZXQgbz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aTtpLmlubmVySFRNTD10LG8mJmkuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtyJiZzaS5zZXRDdXJzb3JUb1N0YXJ0KHIpfXNldEN1cnNvclRvRW5kKGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtyJiZzaS5zZXRDdXJzb3JUb0VuZChyKX1mb2N1cyhlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7ciYmKHIuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PXImJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntyLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXJldHVybjtpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpO2xldCBvPXMoKCk9Pnt0PT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxyKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlLHIpOnR5cGVvZiB0PT0ibnVtYmVyIiYmcnQuc2V0Q3Vyc29yUG9zaXRpb24oaSx0KX0sInNldEN1cnNvciIpO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pP28oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pKSYmbygpfSl9Z2V0U3BsaXRDb250ZW50KGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcilyZXR1cm4gbnVsbDtsZXQgbj10Py5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9dD8uc2hhZG93Um9vdCxkPVtdO24mJmQucHVzaChuKSxsJiZkLnB1c2gobCk7bGV0IGM9cnQuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighYyl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPXIudGV4dENvbnRlbnR8fCIiLEM9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLEMpLGFmdGVyOmsuc3Vic3RyaW5nKEMpfX1yZXR1cm4gbnVsbH1pZighcnQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixjLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPXIudGV4dENvbnRlbnR8fCIiLEM9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLEMpLGFmdGVyOmsuc3Vic3RyaW5nKEMpfX1yZXR1cm4gbnVsbH1sZXQgcD10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUsdCk7aWYocD09PW51bGx8fHA9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6ci5pbm5lckhUTUx9O2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Uuc2V0U3RhcnQociwwKSx1LnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLG0uc2V0U3RhcnQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxtLnNldEVuZChyLHIuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCB2PXUuY2xvbmVDb250ZW50cygpLHg9bS5jbG9uZUNvbnRlbnRzKCksYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmFwcGVuZENoaWxkKHYpO2xldCBnPWIuaW5uZXJIVE1MO2IuaW5uZXJIVE1MPSIiLGIuYXBwZW5kQ2hpbGQoeCk7bGV0IHk9Yi5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpnLGFmdGVyOnl9fX19KTtmdW5jdGlvbiBFaShhKXt0aGlzLmNvbnRlbnQ9YX12YXIgYUtlLGdpYT1mKCgpPT57cyhFaSwiT3JkZXJlZE1hcCIpLEVpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RWksZmluZDpzKGZ1bmN0aW9uKGEpe2Zvcih2YXIgZT0wO2U8dGhpcy5jb250ZW50Lmxlbmd0aDtlKz0yKWlmKHRoaXMuY29udGVudFtlXT09PWEpcmV0dXJuIGU7cmV0dXJuLTF9LCJmaW5kIiksZ2V0OnMoZnVuY3Rpb24oYSl7dmFyIGU9dGhpcy5maW5kKGEpO3JldHVybiBlPT0tMT92b2lkIDA6dGhpcy5jb250ZW50W2UrMV19LCJnZXQiKSx1cGRhdGU6cyhmdW5jdGlvbihhLGUsdCl7dmFyIHI9dCYmdCE9YT90aGlzLnJlbW92ZSh0KTp0aGlzLGk9ci5maW5kKGEpLG89ci5jb250ZW50LnNsaWNlKCk7cmV0dXJuIGk9PS0xP28ucHVzaCh0fHxhLGUpOihvW2krMV09ZSx0JiYob1tpXT10KSksbmV3IEVpKG8pfSwidXBkYXRlIikscmVtb3ZlOnMoZnVuY3Rpb24oYSl7dmFyIGU9dGhpcy5maW5kKGEpO2lmKGU9PS0xKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuY29udGVudC5zbGljZSgpO3JldHVybiB0LnNwbGljZShlLDIpLG5ldyBFaSh0KX0sInJlbW92ZSIpLGFkZFRvU3RhcnQ6cyhmdW5jdGlvbihhLGUpe3JldHVybiBuZXcgRWkoW2EsZV0uY29uY2F0KHRoaXMucmVtb3ZlKGEpLmNvbnRlbnQpKX0sImFkZFRvU3RhcnQiKSxhZGRUb0VuZDpzKGZ1bmN0aW9uKGEsZSl7dmFyIHQ9dGhpcy5yZW1vdmUoYSkuY29udGVudC5zbGljZSgpO3JldHVybiB0LnB1c2goYSxlKSxuZXcgRWkodCl9LCJhZGRUb0VuZCIpLGFkZEJlZm9yZTpzKGZ1bmN0aW9uKGEsZSx0KXt2YXIgcj10aGlzLnJlbW92ZShlKSxpPXIuY29udGVudC5zbGljZSgpLG89ci5maW5kKGEpO3JldHVybiBpLnNwbGljZShvPT0tMT9pLmxlbmd0aDpvLDAsZSx0KSxuZXcgRWkoaSl9LCJhZGRCZWZvcmUiKSxmb3JFYWNoOnMoZnVuY3Rpb24oYSl7Zm9yKHZhciBlPTA7ZTx0aGlzLmNvbnRlbnQubGVuZ3RoO2UrPTIpYSh0aGlzLmNvbnRlbnRbZV0sdGhpcy5jb250ZW50W2UrMV0pfSwiZm9yRWFjaCIpLHByZXBlbmQ6cyhmdW5jdGlvbihhKXtyZXR1cm4gYT1FaS5mcm9tKGEpLGEuc2l6ZT9uZXcgRWkoYS5jb250ZW50LmNvbmNhdCh0aGlzLnN1YnRyYWN0KGEpLmNvbnRlbnQpKTp0aGlzfSwicHJlcGVuZCIpLGFwcGVuZDpzKGZ1bmN0aW9uKGEpe3JldHVybiBhPUVpLmZyb20oYSksYS5zaXplP25ldyBFaSh0aGlzLnN1YnRyYWN0KGEpLmNvbnRlbnQuY29uY2F0KGEuY29udGVudCkpOnRoaXN9LCJhcHBlbmQiKSxzdWJ0cmFjdDpzKGZ1bmN0aW9uKGEpe3ZhciBlPXRoaXM7YT1FaS5mcm9tKGEpO2Zvcih2YXIgdD0wO3Q8YS5jb250ZW50Lmxlbmd0aDt0Kz0yKWU9ZS5yZW1vdmUoYS5jb250ZW50W3RdKTtyZXR1cm4gZX0sInN1YnRyYWN0IiksdG9PYmplY3Q6cyhmdW5jdGlvbigpe3ZhciBhPXt9O3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSx0KXthW2VdPXR9KSxhfSwidG9PYmplY3QiKSxnZXQgc2l6ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoPj4xfX0sRWkuZnJvbT1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgRWkpcmV0dXJuIGE7dmFyIGU9W107aWYoYSlmb3IodmFyIHQgaW4gYSllLnB1c2godCxhW3RdKTtyZXR1cm4gbmV3IEVpKGUpfTthS2U9RWl9KTtmdW5jdGlvbiBiaWEoYSxlLHQpe2ZvcihsZXQgcj0wOztyKyspe2lmKHI9PWEuY2hpbGRDb3VudHx8cj09ZS5jaGlsZENvdW50KXJldHVybiBhLmNoaWxkQ291bnQ9PWUuY2hpbGRDb3VudD9udWxsOnQ7bGV0IGk9YS5jaGlsZChyKSxvPWUuY2hpbGQocik7aWYoaT09byl7dCs9aS5ub2RlU2l6ZTtjb250aW51ZX1pZighaS5zYW1lTWFya3VwKG8pKXJldHVybiB0O2lmKGkuaXNUZXh0JiZpLnRleHQhPW8udGV4dCl7Zm9yKGxldCBuPTA7aS50ZXh0W25dPT1vLnRleHRbbl07bisrKXQrKztyZXR1cm4gdH1pZihpLmNvbnRlbnQuc2l6ZXx8by5jb250ZW50LnNpemUpe2xldCBuPWJpYShpLmNvbnRlbnQsby5jb250ZW50LHQrMSk7aWYobiE9bnVsbClyZXR1cm4gbn10Kz1pLm5vZGVTaXplfX1mdW5jdGlvbiB2aWEoYSxlLHQscil7Zm9yKGxldCBpPWEuY2hpbGRDb3VudCxvPWUuY2hpbGRDb3VudDs7KXtpZihpPT0wfHxvPT0wKXJldHVybiBpPT1vP251bGw6e2E6dCxiOnJ9O2xldCBuPWEuY2hpbGQoLS1pKSxsPWUuY2hpbGQoLS1vKSxkPW4ubm9kZVNpemU7aWYobj09bCl7dC09ZCxyLT1kO2NvbnRpbnVlfWlmKCFuLnNhbWVNYXJrdXAobCkpcmV0dXJue2E6dCxiOnJ9O2lmKG4uaXNUZXh0JiZuLnRleHQhPWwudGV4dCl7bGV0IGM9MCxwPU1hdGgubWluKG4udGV4dC5sZW5ndGgsbC50ZXh0Lmxlbmd0aCk7Zm9yKDtjPHAmJm4udGV4dFtuLnRleHQubGVuZ3RoLWMtMV09PWwudGV4dFtsLnRleHQubGVuZ3RoLWMtMV07KWMrKyx0LS0sci0tO3JldHVybnthOnQsYjpyfX1pZihuLmNvbnRlbnQuc2l6ZXx8bC5jb250ZW50LnNpemUpe2xldCBjPXZpYShuLmNvbnRlbnQsbC5jb250ZW50LHQtMSxyLTEpO2lmKGMpcmV0dXJuIGN9dC09ZCxyLT1kfX1mdW5jdGlvbiBDYWUoYSxlKXtyZXR1cm4gcktlLmluZGV4PWEscktlLm9mZnNldD1lLHJLZX1mdW5jdGlvbiBfYWUoYSxlKXtpZihhPT09ZSlyZXR1cm4hMDtpZighKGEmJnR5cGVvZiBhPT0ib2JqZWN0Iil8fCEoZSYmdHlwZW9mIGU9PSJvYmplY3QiKSlyZXR1cm4hMTtsZXQgdD1BcnJheS5pc0FycmF5KGEpO2lmKEFycmF5LmlzQXJyYXkoZSkhPXQpcmV0dXJuITE7aWYodCl7aWYoYS5sZW5ndGghPWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGg7cisrKWlmKCFfYWUoYVtyXSxlW3JdKSlyZXR1cm4hMX1lbHNle2ZvcihsZXQgciBpbiBhKWlmKCEociBpbiBlKXx8IV9hZShhW3JdLGVbcl0pKXJldHVybiExO2ZvcihsZXQgciBpbiBlKWlmKCEociBpbiBhKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB4aWEoYSxlLHQpe2xldHtpbmRleDpyLG9mZnNldDppfT1hLmZpbmRJbmRleChlKSxvPWEubWF5YmVDaGlsZChyKSx7aW5kZXg6bixvZmZzZXQ6bH09YS5maW5kSW5kZXgodCk7aWYoaT09ZXx8by5pc1RleHQpe2lmKGwhPXQmJiFhLmNoaWxkKG4pLmlzVGV4dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVtb3Zpbmcgbm9uLWZsYXQgcmFuZ2UiKTtyZXR1cm4gYS5jdXQoMCxlKS5hcHBlbmQoYS5jdXQodCkpfWlmKHIhPW4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlJlbW92aW5nIG5vbi1mbGF0IHJhbmdlIik7cmV0dXJuIGEucmVwbGFjZUNoaWxkKHIsby5jb3B5KHhpYShvLmNvbnRlbnQsZS1pLTEsdC1pLTEpKSl9ZnVuY3Rpb24geWlhKGEsZSx0LHIpe2xldHtpbmRleDppLG9mZnNldDpvfT1hLmZpbmRJbmRleChlKSxuPWEubWF5YmVDaGlsZChpKTtpZihvPT1lfHxuLmlzVGV4dClyZXR1cm4gciYmIXIuY2FuUmVwbGFjZShpLGksdCk/bnVsbDphLmN1dCgwLGUpLmFwcGVuZCh0KS5hcHBlbmQoYS5jdXQoZSkpO2xldCBsPXlpYShuLmNvbnRlbnQsZS1vLTEsdCxuKTtyZXR1cm4gbCYmYS5yZXBsYWNlQ2hpbGQoaSxuLmNvcHkobCkpfWZ1bmN0aW9uIFEkYShhLGUsdCl7aWYodC5vcGVuU3RhcnQ+YS5kZXB0aCl0aHJvdyBuZXcgZDQoIkluc2VydGVkIGNvbnRlbnQgZGVlcGVyIHRoYW4gaW5zZXJ0aW9uIHBvc2l0aW9uIik7aWYoYS5kZXB0aC10Lm9wZW5TdGFydCE9ZS5kZXB0aC10Lm9wZW5FbmQpdGhyb3cgbmV3IGQ0KCJJbmNvbnNpc3RlbnQgb3BlbiBkZXB0aHMiKTtyZXR1cm4gd2lhKGEsZSx0LDApfWZ1bmN0aW9uIHdpYShhLGUsdCxyKXtsZXQgaT1hLmluZGV4KHIpLG89YS5ub2RlKHIpO2lmKGk9PWUuaW5kZXgocikmJnI8YS5kZXB0aC10Lm9wZW5TdGFydCl7bGV0IG49d2lhKGEsZSx0LHIrMSk7cmV0dXJuIG8uY29weShvLmNvbnRlbnQucmVwbGFjZUNoaWxkKGksbikpfWVsc2UgaWYodC5jb250ZW50LnNpemUpaWYoIXQub3BlblN0YXJ0JiYhdC5vcGVuRW5kJiZhLmRlcHRoPT1yJiZlLmRlcHRoPT1yKXtsZXQgbj1hLnBhcmVudCxsPW4uY29udGVudDtyZXR1cm4gTmYobixsLmN1dCgwLGEucGFyZW50T2Zmc2V0KS5hcHBlbmQodC5jb250ZW50KS5hcHBlbmQobC5jdXQoZS5wYXJlbnRPZmZzZXQpKSl9ZWxzZXtsZXR7c3RhcnQ6bixlbmQ6bH09SiRhKHQsYSk7cmV0dXJuIE5mKG8sa2lhKGEsbixsLGUscikpfWVsc2UgcmV0dXJuIE5mKG8sVGFlKGEsZSxyKSl9ZnVuY3Rpb24gTWlhKGEsZSl7aWYoIWUudHlwZS5jb21wYXRpYmxlQ29udGVudChhLnR5cGUpKXRocm93IG5ldyBkNCgiQ2Fubm90IGpvaW4gIitlLnR5cGUubmFtZSsiIG9udG8gIithLnR5cGUubmFtZSl9ZnVuY3Rpb24gc0tlKGEsZSx0KXtsZXQgcj1hLm5vZGUodCk7cmV0dXJuIE1pYShyLGUubm9kZSh0KSkscn1mdW5jdGlvbiBJZihhLGUpe2xldCB0PWUubGVuZ3RoLTE7dD49MCYmYS5pc1RleHQmJmEuc2FtZU1hcmt1cChlW3RdKT9lW3RdPWEud2l0aFRleHQoZVt0XS50ZXh0K2EudGV4dCk6ZS5wdXNoKGEpfWZ1bmN0aW9uIE9VKGEsZSx0LHIpe2xldCBpPShlfHxhKS5ub2RlKHQpLG89MCxuPWU/ZS5pbmRleCh0KTppLmNoaWxkQ291bnQ7YSYmKG89YS5pbmRleCh0KSxhLmRlcHRoPnQ/bysrOmEudGV4dE9mZnNldCYmKElmKGEubm9kZUFmdGVyLHIpLG8rKykpO2ZvcihsZXQgbD1vO2w8bjtsKyspSWYoaS5jaGlsZChsKSxyKTtlJiZlLmRlcHRoPT10JiZlLnRleHRPZmZzZXQmJklmKGUubm9kZUJlZm9yZSxyKX1mdW5jdGlvbiBOZihhLGUpe3JldHVybiBhLnR5cGUuY2hlY2tDb250ZW50KGUpLGEuY29weShlKX1mdW5jdGlvbiBraWEoYSxlLHQscixpKXtsZXQgbz1hLmRlcHRoPmkmJnNLZShhLGUsaSsxKSxuPXIuZGVwdGg+aSYmc0tlKHQscixpKzEpLGw9W107cmV0dXJuIE9VKG51bGwsYSxpLGwpLG8mJm4mJmUuaW5kZXgoaSk9PXQuaW5kZXgoaSk/KE1pYShvLG4pLElmKE5mKG8sa2lhKGEsZSx0LHIsaSsxKSksbCkpOihvJiZJZihOZihvLFRhZShhLGUsaSsxKSksbCksT1UoZSx0LGksbCksbiYmSWYoTmYobixUYWUodCxyLGkrMSkpLGwpKSxPVShyLG51bGwsaSxsKSxuZXcgamUobCl9ZnVuY3Rpb24gVGFlKGEsZSx0KXtsZXQgcj1bXTtpZihPVShudWxsLGEsdCxyKSxhLmRlcHRoPnQpe2xldCBpPXNLZShhLGUsdCsxKTtJZihOZihpLFRhZShhLGUsdCsxKSkscil9cmV0dXJuIE9VKGUsbnVsbCx0LHIpLG5ldyBqZShyKX1mdW5jdGlvbiBKJGEoYSxlKXtsZXQgdD1lLmRlcHRoLWEub3BlblN0YXJ0LGk9ZS5ub2RlKHQpLmNvcHkoYS5jb250ZW50KTtmb3IobGV0IG89dC0xO28+PTA7by0tKWk9ZS5ub2RlKG8pLmNvcHkoamUuZnJvbShpKSk7cmV0dXJue3N0YXJ0OmkucmVzb2x2ZU5vQ2FjaGUoYS5vcGVuU3RhcnQrdCksZW5kOmkucmVzb2x2ZU5vQ2FjaGUoaS5jb250ZW50LnNpemUtYS5vcGVuRW5kLXQpfX1mdW5jdGlvbiB6aWEoYSxlKXtmb3IobGV0IHQ9YS5sZW5ndGgtMTt0Pj0wO3QtLSllPWFbdF0udHlwZS5uYW1lKyIoIitlKyIpIjtyZXR1cm4gZX1mdW5jdGlvbiBDaWEoYSl7bGV0IGU9W107ZG8gZS5wdXNoKGFEYShhKSk7d2hpbGUoYS5lYXQoInwiKSk7cmV0dXJuIGUubGVuZ3RoPT0xP2VbMF06e3R5cGU6ImNob2ljZSIsZXhwcnM6ZX19ZnVuY3Rpb24gYURhKGEpe2xldCBlPVtdO2RvIGUucHVzaChyRGEoYSkpO3doaWxlKGEubmV4dCYmYS5uZXh0IT0iKSImJmEubmV4dCE9InwiKTtyZXR1cm4gZS5sZW5ndGg9PTE/ZVswXTp7dHlwZToic2VxIixleHByczplfX1mdW5jdGlvbiByRGEoYSl7bGV0IGU9b0RhKGEpO2Zvcig7OylpZihhLmVhdCgiKyIpKWU9e3R5cGU6InBsdXMiLGV4cHI6ZX07ZWxzZSBpZihhLmVhdCgiKiIpKWU9e3R5cGU6InN0YXIiLGV4cHI6ZX07ZWxzZSBpZihhLmVhdCgiPyIpKWU9e3R5cGU6Im9wdCIsZXhwcjplfTtlbHNlIGlmKGEuZWF0KCJ7IikpZT1zRGEoYSxlKTtlbHNlIGJyZWFrO3JldHVybiBlfWZ1bmN0aW9uIF9pYShhKXsvXEQvLnRlc3QoYS5uZXh0KSYmYS5lcnIoIkV4cGVjdGVkIG51bWJlciwgZ290ICciK2EubmV4dCsiJyIpO2xldCBlPU51bWJlcihhLm5leHQpO3JldHVybiBhLnBvcysrLGV9ZnVuY3Rpb24gc0RhKGEsZSl7bGV0IHQ9X2lhKGEpLHI9dDtyZXR1cm4gYS5lYXQoIiwiKSYmKGEubmV4dCE9In0iP3I9X2lhKGEpOnI9LTEpLGEuZWF0KCJ9Iil8fGEuZXJyKCJVbmNsb3NlZCBicmFjZWQgcmFuZ2UiKSx7dHlwZToicmFuZ2UiLG1pbjp0LG1heDpyLGV4cHI6ZX19ZnVuY3Rpb24gaURhKGEsZSl7bGV0IHQ9YS5ub2RlVHlwZXMscj10W2VdO2lmKHIpcmV0dXJuW3JdO2xldCBpPVtdO2ZvcihsZXQgbyBpbiB0KXtsZXQgbj10W29dO24uaXNJbkdyb3VwKGUpJiZpLnB1c2gobil9cmV0dXJuIGkubGVuZ3RoPT0wJiZhLmVycigiTm8gbm9kZSB0eXBlIG9yIGdyb3VwICciK2UrIicgZm91bmQiKSxpfWZ1bmN0aW9uIG9EYShhKXtpZihhLmVhdCgiKCIpKXtsZXQgZT1DaWEoYSk7cmV0dXJuIGEuZWF0KCIpIil8fGEuZXJyKCJNaXNzaW5nIGNsb3NpbmcgcGFyZW4iKSxlfWVsc2UgaWYoL1xXLy50ZXN0KGEubmV4dCkpYS5lcnIoIlVuZXhwZWN0ZWQgdG9rZW4gJyIrYS5uZXh0KyInIik7ZWxzZXtsZXQgZT1pRGEoYSxhLm5leHQpLm1hcCh0PT4oYS5pbmxpbmU9PW51bGw/YS5pbmxpbmU9dC5pc0lubGluZTphLmlubGluZSE9dC5pc0lubGluZSYmYS5lcnIoIk1peGluZyBpbmxpbmUgYW5kIGJsb2NrIGNvbnRlbnQiKSx7dHlwZToibmFtZSIsdmFsdWU6dH0pKTtyZXR1cm4gYS5wb3MrKyxlLmxlbmd0aD09MT9lWzBdOnt0eXBlOiJjaG9pY2UiLGV4cHJzOmV9fX1mdW5jdGlvbiBuRGEoYSl7bGV0IGU9W1tdXTtyZXR1cm4gaShvKGEsMCksdCgpKSxlO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZS5wdXNoKFtdKS0xfXModCwibm9kZSIpO2Z1bmN0aW9uIHIobixsLGQpe2xldCBjPXt0ZXJtOmQsdG86bH07cmV0dXJuIGVbbl0ucHVzaChjKSxjfXMociwiZWRnZSIpO2Z1bmN0aW9uIGkobixsKXtuLmZvckVhY2goZD0+ZC50bz1sKX1zKGksImNvbm5lY3QiKTtmdW5jdGlvbiBvKG4sbCl7aWYobi50eXBlPT0iY2hvaWNlIilyZXR1cm4gbi5leHBycy5yZWR1Y2UoKGQsYyk9PmQuY29uY2F0KG8oYyxsKSksW10pO2lmKG4udHlwZT09InNlcSIpZm9yKGxldCBkPTA7O2QrKyl7bGV0IGM9byhuLmV4cHJzW2RdLGwpO2lmKGQ9PW4uZXhwcnMubGVuZ3RoLTEpcmV0dXJuIGM7aShjLGw9dCgpKX1lbHNlIGlmKG4udHlwZT09InN0YXIiKXtsZXQgZD10KCk7cmV0dXJuIHIobCxkKSxpKG8obi5leHByLGQpLGQpLFtyKGQpXX1lbHNlIGlmKG4udHlwZT09InBsdXMiKXtsZXQgZD10KCk7cmV0dXJuIGkobyhuLmV4cHIsbCksZCksaShvKG4uZXhwcixkKSxkKSxbcihkKV19ZWxzZXtpZihuLnR5cGU9PSJvcHQiKXJldHVybltyKGwpXS5jb25jYXQobyhuLmV4cHIsbCkpO2lmKG4udHlwZT09InJhbmdlIil7bGV0IGQ9bDtmb3IobGV0IGM9MDtjPG4ubWluO2MrKyl7bGV0IHA9dCgpO2kobyhuLmV4cHIsZCkscCksZD1wfWlmKG4ubWF4PT0tMSlpKG8obi5leHByLGQpLGQpO2Vsc2UgZm9yKGxldCBjPW4ubWluO2M8bi5tYXg7YysrKXtsZXQgcD10KCk7cihkLHApLGkobyhuLmV4cHIsZCkscCksZD1wfXJldHVybltyKGQpXX1lbHNle2lmKG4udHlwZT09Im5hbWUiKXJldHVybltyKGwsdm9pZCAwLG4udmFsdWUpXTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZXhwciB0eXBlIil9fX1zKG8sImNvbXBpbGUiKX1mdW5jdGlvbiBUaWEoYSxlKXtyZXR1cm4gZS1hfWZ1bmN0aW9uIExpYShhLGUpe2xldCB0PVtdO3JldHVybiByKGUpLHQuc29ydChUaWEpO2Z1bmN0aW9uIHIoaSl7bGV0IG89YVtpXTtpZihvLmxlbmd0aD09MSYmIW9bMF0udGVybSlyZXR1cm4gcihvWzBdLnRvKTt0LnB1c2goaSk7Zm9yKGxldCBuPTA7bjxvLmxlbmd0aDtuKyspe2xldHt0ZXJtOmwsdG86ZH09b1tuXTshbCYmdC5pbmRleE9mKGQpPT0tMSYmcihkKX19cyhyLCJzY2FuIil9ZnVuY3Rpb24gbERhKGEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHQoTGlhKGEsMCkpO2Z1bmN0aW9uIHQocil7bGV0IGk9W107ci5mb3JFYWNoKG49PnthW25dLmZvckVhY2goKHt0ZXJtOmwsdG86ZH0pPT57aWYoIWwpcmV0dXJuO2xldCBjO2ZvcihsZXQgcD0wO3A8aS5sZW5ndGg7cCsrKWlbcF1bMF09PWwmJihjPWlbcF1bMV0pO0xpYShhLGQpLmZvckVhY2gocD0+e2N8fGkucHVzaChbbCxjPVtdXSksYy5pbmRleE9mKHApPT0tMSYmYy5wdXNoKHApfSl9KX0pO2xldCBvPWVbci5qb2luKCIsIildPW5ldyBjNChyLmluZGV4T2YoYS5sZW5ndGgtMSk+LTEpO2ZvcihsZXQgbj0wO248aS5sZW5ndGg7bisrKXtsZXQgbD1pW25dWzFdLnNvcnQoVGlhKTtvLm5leHQucHVzaCh7dHlwZTppW25dWzBdLG5leHQ6ZVtsLmpvaW4oIiwiKV18fHQobCl9KX1yZXR1cm4gb319ZnVuY3Rpb24gY0RhKGEsZSl7Zm9yKGxldCB0PTAscj1bYV07dDxyLmxlbmd0aDt0Kyspe2xldCBpPXJbdF0sbz0haS52YWxpZEVuZCxuPVtdO2ZvcihsZXQgbD0wO2w8aS5uZXh0Lmxlbmd0aDtsKyspe2xldHt0eXBlOmQsbmV4dDpjfT1pLm5leHRbbF07bi5wdXNoKGQubmFtZSksbyYmIShkLmlzVGV4dHx8ZC5oYXNSZXF1aXJlZEF0dHJzKCkpJiYobz0hMSksci5pbmRleE9mKGMpPT0tMSYmci5wdXNoKGMpfW8mJmUuZXJyKCJPbmx5IG5vbi1nZW5lcmF0YWJsZSBub2RlcyAoIituLmpvaW4oIiwgIikrIikgaW4gYSByZXF1aXJlZCBwb3NpdGlvbiAoc2VlIGh0dHBzOi8vcHJvc2VtaXJyb3IubmV0L2RvY3MvZ3VpZGUvI2dlbmVyYXRhYmxlKSIpfX1mdW5jdGlvbiAkaWEoYSl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHQgaW4gYSl7bGV0IHI9YVt0XTtpZighci5oYXNEZWZhdWx0KXJldHVybiBudWxsO2VbdF09ci5kZWZhdWx0fXJldHVybiBlfWZ1bmN0aW9uIERpYShhLGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCByIGluIGEpe2xldCBpPWUmJmVbcl07aWYoaT09PXZvaWQgMCl7bGV0IG89YVtyXTtpZihvLmhhc0RlZmF1bHQpaT1vLmRlZmF1bHQ7ZWxzZSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm8gdmFsdWUgc3VwcGxpZWQgZm9yIGF0dHJpYnV0ZSAiK3IpfXRbcl09aX1yZXR1cm4gdH1mdW5jdGlvbiBBaWEoYSxlLHQscil7Zm9yKGxldCBpIGluIGUpaWYoIShpIGluIGEpKXRocm93IG5ldyBSYW5nZUVycm9yKGBVbnN1cHBvcnRlZCBhdHRyaWJ1dGUgJHtpfSBmb3IgJHt0fSBvZiB0eXBlICR7aX1gKTtmb3IobGV0IGkgaW4gYSl7bGV0IG89YVtpXTtvLnZhbGlkYXRlJiZvLnZhbGlkYXRlKGVbaV0pfX1mdW5jdGlvbiBQaWEoYSxlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGUpZm9yKGxldCByIGluIGUpdFtyXT1uZXcgbEtlKGEscixlW3JdKTtyZXR1cm4gdH1mdW5jdGlvbiBkRGEoYSxlLHQpe2xldCByPXQuc3BsaXQoInwiKTtyZXR1cm4gaT0+e2xldCBvPWk9PT1udWxsPyJudWxsIjp0eXBlb2YgaTtpZihyLmluZGV4T2Yobyk8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgRXhwZWN0ZWQgdmFsdWUgb2YgdHlwZSAke3J9IGZvciBhdHRyaWJ1dGUgJHtlfSBvbiB0eXBlICR7YX0sIGdvdCAke299YCl9fWZ1bmN0aW9uIEVpYShhLGUpe2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgaT1lW3JdLG89YS5tYXJrc1tpXSxuPW87aWYobyl0LnB1c2gobyk7ZWxzZSBmb3IobGV0IGwgaW4gYS5tYXJrcyl7bGV0IGQ9YS5tYXJrc1tsXTsoaT09Il8ifHxkLnNwZWMuZ3JvdXAmJmQuc3BlYy5ncm91cC5zcGxpdCgiICIpLmluZGV4T2YoaSk+LTEpJiZ0LnB1c2gobj1kKX1pZighbil0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlVua25vd24gbWFyayB0eXBlOiAnIitlW3JdKyInIil9cmV0dXJuIHR9ZnVuY3Rpb24gdURhKGEpe3JldHVybiBhLnRhZyE9bnVsbH1mdW5jdGlvbiBwRGEoYSl7cmV0dXJuIGEuc3R5bGUhPW51bGx9ZnVuY3Rpb24gUmlhKGEsZSx0KXtyZXR1cm4gZSE9bnVsbD8oZT9IVTowKXwoZT09PSJmdWxsIj9jS2U6MCk6YSYmYS53aGl0ZXNwYWNlPT0icHJlIj9IVXxjS2U6dCZ+cVV9ZnVuY3Rpb24gaERhKGEpe2ZvcihsZXQgZT1hLmZpcnN0Q2hpbGQsdD1udWxsO2U7ZT1lLm5leHRTaWJsaW5nKXtsZXQgcj1lLm5vZGVUeXBlPT0xP2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKTpudWxsO3ImJk5pYS5oYXNPd25Qcm9wZXJ0eShyKSYmdD8odC5hcHBlbmRDaGlsZChlKSxlPXQpOnI9PSJsaSI/dD1lOnImJih0PW51bGwpfX1mdW5jdGlvbiBtRGEoYSxlKXtyZXR1cm4oYS5tYXRjaGVzfHxhLm1zTWF0Y2hlc1NlbGVjdG9yfHxhLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8YS5tb3pNYXRjaGVzU2VsZWN0b3IpLmNhbGwoYSxlKX1mdW5jdGlvbiBPaWEoYSl7bGV0IGU9e307Zm9yKGxldCB0IGluIGEpZVt0XT1hW3RdO3JldHVybiBlfWZ1bmN0aW9uIEZpYShhLGUpe2xldCB0PWUuc2NoZW1hLm5vZGVzO2ZvcihsZXQgciBpbiB0KXtsZXQgaT10W3JdO2lmKCFpLmFsbG93c01hcmtUeXBlKGEpKWNvbnRpbnVlO2xldCBvPVtdLG49cyhsPT57by5wdXNoKGwpO2ZvcihsZXQgZD0wO2Q8bC5lZGdlQ291bnQ7ZCsrKXtsZXR7dHlwZTpjLG5leHQ6cH09bC5lZGdlKGQpO2lmKGM9PWV8fG8uaW5kZXhPZihwKTwwJiZuKHApKXJldHVybiEwfX0sInNjYW4iKTtpZihuKGkuY29udGVudE1hdGNoKSlyZXR1cm4hMH19ZnVuY3Rpb24gQmlhKGEpe2xldCBlPXt9O2ZvcihsZXQgdCBpbiBhKXtsZXQgcj1hW3RdLnNwZWMudG9ET007ciYmKGVbdF09cil9cmV0dXJuIGV9ZnVuY3Rpb24gZEtlKGEpe3JldHVybiBhLmRvY3VtZW50fHx3aW5kb3cuZG9jdW1lbnR9ZnVuY3Rpb24gZ0RhKGEpe2xldCBlPUhpYS5nZXQoYSk7cmV0dXJuIGU9PT12b2lkIDAmJkhpYS5zZXQoYSxlPWJEYShhKSksZX1mdW5jdGlvbiBiRGEoYSl7bGV0IGU9bnVsbDtmdW5jdGlvbiB0KHIpe2lmKHImJnR5cGVvZiByPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KHIpKWlmKHR5cGVvZiByWzBdPT0ic3RyaW5nIillfHwoZT1bXSksZS5wdXNoKHIpO2Vsc2UgZm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspdChyW2ldKTtlbHNlIGZvcihsZXQgaSBpbiByKXQocltpXSl9cmV0dXJuIHModCwic2NhbiIpLHQoYSksZX1mdW5jdGlvbiAkYWUoYSxlLHQscil7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybntkb206YS5jcmVhdGVUZXh0Tm9kZShlKX07aWYoZS5ub2RlVHlwZSE9bnVsbClyZXR1cm57ZG9tOmV9O2lmKGUuZG9tJiZlLmRvbS5ub2RlVHlwZSE9bnVsbClyZXR1cm4gZTtsZXQgaT1lWzBdLG87aWYodHlwZW9mIGkhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGFycmF5IHBhc3NlZCB0byByZW5kZXJTcGVjIik7aWYociYmKG89Z0RhKHIpKSYmby5pbmRleE9mKGUpPi0xKXRocm93IG5ldyBSYW5nZUVycm9yKCJVc2luZyBhbiBhcnJheSBmcm9tIGFuIGF0dHJpYnV0ZSBvYmplY3QgYXMgYSBET00gc3BlYy4gVGhpcyBtYXkgYmUgYW4gYXR0ZW1wdGVkIGNyb3NzIHNpdGUgc2NyaXB0aW5nIGF0dGFjay4iKTtsZXQgbj1pLmluZGV4T2YoIiAiKTtuPjAmJih0PWkuc2xpY2UoMCxuKSxpPWkuc2xpY2UobisxKSk7bGV0IGwsZD10P2EuY3JlYXRlRWxlbWVudE5TKHQsaSk6YS5jcmVhdGVFbGVtZW50KGkpLGM9ZVsxXSxwPTE7aWYoYyYmdHlwZW9mIGM9PSJvYmplY3QiJiZjLm5vZGVUeXBlPT1udWxsJiYhQXJyYXkuaXNBcnJheShjKSl7cD0yO2ZvcihsZXQgdSBpbiBjKWlmKGNbdV0hPW51bGwpe2xldCBtPXUuaW5kZXhPZigiICIpO20+MD9kLnNldEF0dHJpYnV0ZU5TKHUuc2xpY2UoMCxtKSx1LnNsaWNlKG0rMSksY1t1XSk6dT09InN0eWxlIiYmZC5zdHlsZT9kLnN0eWxlLmNzc1RleHQ9Y1t1XTpkLnNldEF0dHJpYnV0ZSh1LGNbdV0pfX1mb3IobGV0IHU9cDt1PGUubGVuZ3RoO3UrKyl7bGV0IG09ZVt1XTtpZihtPT09MCl7aWYodTxlLmxlbmd0aC0xfHx1PnApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNvbnRlbnQgaG9sZSBtdXN0IGJlIHRoZSBvbmx5IGNoaWxkIG9mIGl0cyBwYXJlbnQgbm9kZSIpO3JldHVybntkb206ZCxjb250ZW50RE9NOmR9fWVsc2V7bGV0e2RvbTp2LGNvbnRlbnRET006eH09JGFlKGEsbSx0LHIpO2lmKGQuYXBwZW5kQ2hpbGQodikseCl7aWYobCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTXVsdGlwbGUgY29udGVudCBob2xlcyIpO2w9eH19fXJldHVybntkb206ZCxjb250ZW50RE9NOmx9fXZhciBqZSxyS2UsRGEsZDQsc3QsRlUsaUtlLGVEYSxTaWEsdTQsdERhLEtpLG9LZSxjNCxuS2UsQlUsbEtlLHVtLHBtLE4xLElpYSxmRGEsTmlhLEhVLGNLZSxxVSxkbSxMYWUsVzIsSGlhLHA0PWYoKCk9PntnaWEoKTtzKGJpYSwiZmluZERpZmZTdGFydCIpO3ModmlhLCJmaW5kRGlmZkVuZCIpO2plPWNsYXNzIGF7c3RhdGlje3ModGhpcywiRnJhZ21lbnQiKX1jb25zdHJ1Y3RvcihlLHQpe2lmKHRoaXMuY29udGVudD1lLHRoaXMuc2l6ZT10fHwwLHQ9PW51bGwpZm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdGhpcy5zaXplKz1lW3JdLm5vZGVTaXplfW5vZGVzQmV0d2VlbihlLHQscixpPTAsbyl7Zm9yKGxldCBuPTAsbD0wO2w8dDtuKyspe2xldCBkPXRoaXMuY29udGVudFtuXSxjPWwrZC5ub2RlU2l6ZTtpZihjPmUmJnIoZCxpK2wsb3x8bnVsbCxuKSE9PSExJiZkLmNvbnRlbnQuc2l6ZSl7bGV0IHA9bCsxO2Qubm9kZXNCZXR3ZWVuKE1hdGgubWF4KDAsZS1wKSxNYXRoLm1pbihkLmNvbnRlbnQuc2l6ZSx0LXApLHIsaStwKX1sPWN9fWRlc2NlbmRhbnRzKGUpe3RoaXMubm9kZXNCZXR3ZWVuKDAsdGhpcy5zaXplLGUpfXRleHRCZXR3ZWVuKGUsdCxyLGkpe2xldCBvPSIiLG49ITA7cmV0dXJuIHRoaXMubm9kZXNCZXR3ZWVuKGUsdCwobCxkKT0+e2xldCBjPWwuaXNUZXh0P2wudGV4dC5zbGljZShNYXRoLm1heChlLGQpLWQsdC1kKTpsLmlzTGVhZj9pP3R5cGVvZiBpPT0iZnVuY3Rpb24iP2kobCk6aTpsLnR5cGUuc3BlYy5sZWFmVGV4dD9sLnR5cGUuc3BlYy5sZWFmVGV4dChsKToiIjoiIjtsLmlzQmxvY2smJihsLmlzTGVhZiYmY3x8bC5pc1RleHRibG9jaykmJnImJihuP249ITE6bys9ciksbys9Y30sMCksb31hcHBlbmQoZSl7aWYoIWUuc2l6ZSlyZXR1cm4gdGhpcztpZighdGhpcy5zaXplKXJldHVybiBlO2xldCB0PXRoaXMubGFzdENoaWxkLHI9ZS5maXJzdENoaWxkLGk9dGhpcy5jb250ZW50LnNsaWNlKCksbz0wO2Zvcih0LmlzVGV4dCYmdC5zYW1lTWFya3VwKHIpJiYoaVtpLmxlbmd0aC0xXT10LndpdGhUZXh0KHQudGV4dCtyLnRleHQpLG89MSk7bzxlLmNvbnRlbnQubGVuZ3RoO28rKylpLnB1c2goZS5jb250ZW50W29dKTtyZXR1cm4gbmV3IGEoaSx0aGlzLnNpemUrZS5zaXplKX1jdXQoZSx0PXRoaXMuc2l6ZSl7aWYoZT09MCYmdD09dGhpcy5zaXplKXJldHVybiB0aGlzO2xldCByPVtdLGk9MDtpZih0PmUpZm9yKGxldCBvPTAsbj0wO248dDtvKyspe2xldCBsPXRoaXMuY29udGVudFtvXSxkPW4rbC5ub2RlU2l6ZTtkPmUmJigobjxlfHxkPnQpJiYobC5pc1RleHQ/bD1sLmN1dChNYXRoLm1heCgwLGUtbiksTWF0aC5taW4obC50ZXh0Lmxlbmd0aCx0LW4pKTpsPWwuY3V0KE1hdGgubWF4KDAsZS1uLTEpLE1hdGgubWluKGwuY29udGVudC5zaXplLHQtbi0xKSkpLHIucHVzaChsKSxpKz1sLm5vZGVTaXplKSxuPWR9cmV0dXJuIG5ldyBhKHIsaSl9Y3V0QnlJbmRleChlLHQpe3JldHVybiBlPT10P2EuZW1wdHk6ZT09MCYmdD09dGhpcy5jb250ZW50Lmxlbmd0aD90aGlzOm5ldyBhKHRoaXMuY29udGVudC5zbGljZShlLHQpKX1yZXBsYWNlQ2hpbGQoZSx0KXtsZXQgcj10aGlzLmNvbnRlbnRbZV07aWYocj09dClyZXR1cm4gdGhpcztsZXQgaT10aGlzLmNvbnRlbnQuc2xpY2UoKSxvPXRoaXMuc2l6ZSt0Lm5vZGVTaXplLXIubm9kZVNpemU7cmV0dXJuIGlbZV09dCxuZXcgYShpLG8pfWFkZFRvU3RhcnQoZSl7cmV0dXJuIG5ldyBhKFtlXS5jb25jYXQodGhpcy5jb250ZW50KSx0aGlzLnNpemUrZS5ub2RlU2l6ZSl9YWRkVG9FbmQoZSl7cmV0dXJuIG5ldyBhKHRoaXMuY29udGVudC5jb25jYXQoZSksdGhpcy5zaXplK2Uubm9kZVNpemUpfWVxKGUpe2lmKHRoaXMuY29udGVudC5sZW5ndGghPWUuY29udGVudC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB0PTA7dDx0aGlzLmNvbnRlbnQubGVuZ3RoO3QrKylpZighdGhpcy5jb250ZW50W3RdLmVxKGUuY29udGVudFt0XSkpcmV0dXJuITE7cmV0dXJuITB9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aD90aGlzLmNvbnRlbnRbMF06bnVsbH1nZXQgbGFzdENoaWxkKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGgtMV06bnVsbH1nZXQgY2hpbGRDb3VudCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RofWNoaWxkKGUpe2xldCB0PXRoaXMuY29udGVudFtlXTtpZighdCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggIitlKyIgb3V0IG9mIHJhbmdlIGZvciAiK3RoaXMpO3JldHVybiB0fW1heWJlQ2hpbGQoZSl7cmV0dXJuIHRoaXMuY29udGVudFtlXXx8bnVsbH1mb3JFYWNoKGUpe2ZvcihsZXQgdD0wLHI9MDt0PHRoaXMuY29udGVudC5sZW5ndGg7dCsrKXtsZXQgaT10aGlzLmNvbnRlbnRbdF07ZShpLHIsdCkscis9aS5ub2RlU2l6ZX19ZmluZERpZmZTdGFydChlLHQ9MCl7cmV0dXJuIGJpYSh0aGlzLGUsdCl9ZmluZERpZmZFbmQoZSx0PXRoaXMuc2l6ZSxyPWUuc2l6ZSl7cmV0dXJuIHZpYSh0aGlzLGUsdCxyKX1maW5kSW5kZXgoZSl7aWYoZT09MClyZXR1cm4gQ2FlKDAsZSk7aWYoZT09dGhpcy5zaXplKXJldHVybiBDYWUodGhpcy5jb250ZW50Lmxlbmd0aCxlKTtpZihlPnRoaXMuc2l6ZXx8ZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKGBQb3NpdGlvbiAke2V9IG91dHNpZGUgb2YgZnJhZ21lbnQgKCR7dGhpc30pYCk7Zm9yKGxldCB0PTAscj0wOzt0Kyspe2xldCBpPXRoaXMuY2hpbGQodCksbz1yK2kubm9kZVNpemU7aWYobz49ZSlyZXR1cm4gbz09ZT9DYWUodCsxLG8pOkNhZSh0LHIpO3I9b319dG9TdHJpbmcoKXtyZXR1cm4iPCIrdGhpcy50b1N0cmluZ0lubmVyKCkrIj4ifXRvU3RyaW5nSW5uZXIoKXtyZXR1cm4gdGhpcy5jb250ZW50LmpvaW4oIiwgIil9dG9KU09OKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50Lm1hcChlPT5lLnRvSlNPTigpKTpudWxsfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXJldHVybiBhLmVtcHR5O2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBGcmFnbWVudC5mcm9tSlNPTiIpO3JldHVybiBuZXcgYSh0Lm1hcChlLm5vZGVGcm9tSlNPTikpfXN0YXRpYyBmcm9tQXJyYXkoZSl7aWYoIWUubGVuZ3RoKXJldHVybiBhLmVtcHR5O2xldCB0LHI9MDtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7bGV0IG89ZVtpXTtyKz1vLm5vZGVTaXplLGkmJm8uaXNUZXh0JiZlW2ktMV0uc2FtZU1hcmt1cChvKT8odHx8KHQ9ZS5zbGljZSgwLGkpKSx0W3QubGVuZ3RoLTFdPW8ud2l0aFRleHQodFt0Lmxlbmd0aC0xXS50ZXh0K28udGV4dCkpOnQmJnQucHVzaChvKX1yZXR1cm4gbmV3IGEodHx8ZSxyKX1zdGF0aWMgZnJvbShlKXtpZighZSlyZXR1cm4gYS5lbXB0eTtpZihlIGluc3RhbmNlb2YgYSlyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB0aGlzLmZyb21BcnJheShlKTtpZihlLmF0dHJzKXJldHVybiBuZXcgYShbZV0sZS5ub2RlU2l6ZSk7dGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNhbiBub3QgY29udmVydCAiK2UrIiB0byBhIEZyYWdtZW50IisoZS5ub2Rlc0JldHdlZW4/IiAobG9va3MgbGlrZSBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBwcm9zZW1pcnJvci1tb2RlbCB3ZXJlIGxvYWRlZCkiOiIiKSl9fTtqZS5lbXB0eT1uZXcgamUoW10sMCk7cktlPXtpbmRleDowLG9mZnNldDowfTtzKENhZSwicmV0SW5kZXgiKTtzKF9hZSwiY29tcGFyZURlZXAiKTtEYT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIk1hcmsiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudHlwZT1lLHRoaXMuYXR0cnM9dH1hZGRUb1NldChlKXtsZXQgdCxyPSExO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtsZXQgbz1lW2ldO2lmKHRoaXMuZXEobykpcmV0dXJuIGU7aWYodGhpcy50eXBlLmV4Y2x1ZGVzKG8udHlwZSkpdHx8KHQ9ZS5zbGljZSgwLGkpKTtlbHNle2lmKG8udHlwZS5leGNsdWRlcyh0aGlzLnR5cGUpKXJldHVybiBlOyFyJiZvLnR5cGUucmFuaz50aGlzLnR5cGUucmFuayYmKHR8fCh0PWUuc2xpY2UoMCxpKSksdC5wdXNoKHRoaXMpLHI9ITApLHQmJnQucHVzaChvKX19cmV0dXJuIHR8fCh0PWUuc2xpY2UoKSkscnx8dC5wdXNoKHRoaXMpLHR9cmVtb3ZlRnJvbVNldChlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZih0aGlzLmVxKGVbdF0pKXJldHVybiBlLnNsaWNlKDAsdCkuY29uY2F0KGUuc2xpY2UodCsxKSk7cmV0dXJuIGV9aXNJblNldChlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZih0aGlzLmVxKGVbdF0pKXJldHVybiEwO3JldHVybiExfWVxKGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLnR5cGU9PWUudHlwZSYmX2FlKHRoaXMuYXR0cnMsZS5hdHRycyl9dG9KU09OKCl7bGV0IGU9e3R5cGU6dGhpcy50eXBlLm5hbWV9O2ZvcihsZXQgdCBpbiB0aGlzLmF0dHJzKXtlLmF0dHJzPXRoaXMuYXR0cnM7YnJlYWt9cmV0dXJuIGV9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE1hcmsuZnJvbUpTT04iKTtsZXQgcj1lLm1hcmtzW3QudHlwZV07aWYoIXIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSAke3QudHlwZX0gaW4gdGhpcyBzY2hlbWFgKTtsZXQgaT1yLmNyZWF0ZSh0LmF0dHJzKTtyZXR1cm4gci5jaGVja0F0dHJzKGkuYXR0cnMpLGl9c3RhdGljIHNhbWVTZXQoZSx0KXtpZihlPT10KXJldHVybiEwO2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKylpZighZVtyXS5lcSh0W3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1zdGF0aWMgc2V0RnJvbShlKXtpZighZXx8QXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg9PTApcmV0dXJuIGEubm9uZTtpZihlIGluc3RhbmNlb2YgYSlyZXR1cm5bZV07bGV0IHQ9ZS5zbGljZSgpO3JldHVybiB0LnNvcnQoKHIsaSk9PnIudHlwZS5yYW5rLWkudHlwZS5yYW5rKSx0fX07RGEubm9uZT1bXTtkND1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tzKHRoaXMsIlJlcGxhY2VFcnJvciIpfX0sc3Q9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJTbGljZSIpfWNvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmNvbnRlbnQ9ZSx0aGlzLm9wZW5TdGFydD10LHRoaXMub3BlbkVuZD1yfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuY29udGVudC5zaXplLXRoaXMub3BlblN0YXJ0LXRoaXMub3BlbkVuZH1pbnNlcnRBdChlLHQpe2xldCByPXlpYSh0aGlzLmNvbnRlbnQsZSt0aGlzLm9wZW5TdGFydCx0KTtyZXR1cm4gciYmbmV3IGEocix0aGlzLm9wZW5TdGFydCx0aGlzLm9wZW5FbmQpfXJlbW92ZUJldHdlZW4oZSx0KXtyZXR1cm4gbmV3IGEoeGlhKHRoaXMuY29udGVudCxlK3RoaXMub3BlblN0YXJ0LHQrdGhpcy5vcGVuU3RhcnQpLHRoaXMub3BlblN0YXJ0LHRoaXMub3BlbkVuZCl9ZXEoZSl7cmV0dXJuIHRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpJiZ0aGlzLm9wZW5TdGFydD09ZS5vcGVuU3RhcnQmJnRoaXMub3BlbkVuZD09ZS5vcGVuRW5kfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29udGVudCsiKCIrdGhpcy5vcGVuU3RhcnQrIiwiK3RoaXMub3BlbkVuZCsiKSJ9dG9KU09OKCl7aWYoIXRoaXMuY29udGVudC5zaXplKXJldHVybiBudWxsO2xldCBlPXtjb250ZW50OnRoaXMuY29udGVudC50b0pTT04oKX07cmV0dXJuIHRoaXMub3BlblN0YXJ0PjAmJihlLm9wZW5TdGFydD10aGlzLm9wZW5TdGFydCksdGhpcy5vcGVuRW5kPjAmJihlLm9wZW5FbmQ9dGhpcy5vcGVuRW5kKSxlfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXJldHVybiBhLmVtcHR5O2xldCByPXQub3BlblN0YXJ0fHwwLGk9dC5vcGVuRW5kfHwwO2lmKHR5cGVvZiByIT0ibnVtYmVyInx8dHlwZW9mIGkhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTbGljZS5mcm9tSlNPTiIpO3JldHVybiBuZXcgYShqZS5mcm9tSlNPTihlLHQuY29udGVudCkscixpKX1zdGF0aWMgbWF4T3BlbihlLHQ9ITApe2xldCByPTAsaT0wO2ZvcihsZXQgbz1lLmZpcnN0Q2hpbGQ7byYmIW8uaXNMZWFmJiYodHx8IW8udHlwZS5zcGVjLmlzb2xhdGluZyk7bz1vLmZpcnN0Q2hpbGQpcisrO2ZvcihsZXQgbz1lLmxhc3RDaGlsZDtvJiYhby5pc0xlYWYmJih0fHwhby50eXBlLnNwZWMuaXNvbGF0aW5nKTtvPW8ubGFzdENoaWxkKWkrKztyZXR1cm4gbmV3IGEoZSxyLGkpfX07c3QuZW1wdHk9bmV3IHN0KGplLmVtcHR5LDAsMCk7cyh4aWEsInJlbW92ZVJhbmdlIik7cyh5aWEsImluc2VydEludG8iKTtzKFEkYSwicmVwbGFjZSIpO3Mod2lhLCJyZXBsYWNlT3V0ZXIiKTtzKE1pYSwiY2hlY2tKb2luIik7cyhzS2UsImpvaW5hYmxlIik7cyhJZiwiYWRkTm9kZSIpO3MoT1UsImFkZFJhbmdlIik7cyhOZiwiY2xvc2UiKTtzKGtpYSwicmVwbGFjZVRocmVlV2F5Iik7cyhUYWUsInJlcGxhY2VUd29XYXkiKTtzKEokYSwicHJlcGFyZVNsaWNlRm9yUmVwbGFjZSIpO0ZVPWNsYXNzIGF7c3RhdGlje3ModGhpcywiUmVzb2x2ZWRQb3MiKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy5wb3M9ZSx0aGlzLnBhdGg9dCx0aGlzLnBhcmVudE9mZnNldD1yLHRoaXMuZGVwdGg9dC5sZW5ndGgvMy0xfXJlc29sdmVEZXB0aChlKXtyZXR1cm4gZT09bnVsbD90aGlzLmRlcHRoOmU8MD90aGlzLmRlcHRoK2U6ZX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLmRlcHRoKX1nZXQgZG9jKCl7cmV0dXJuIHRoaXMubm9kZSgwKX1ub2RlKGUpe3JldHVybiB0aGlzLnBhdGhbdGhpcy5yZXNvbHZlRGVwdGgoZSkqM119aW5kZXgoZSl7cmV0dXJuIHRoaXMucGF0aFt0aGlzLnJlc29sdmVEZXB0aChlKSozKzFdfWluZGV4QWZ0ZXIoZSl7cmV0dXJuIGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksdGhpcy5pbmRleChlKSsoZT09dGhpcy5kZXB0aCYmIXRoaXMudGV4dE9mZnNldD8wOjEpfXN0YXJ0KGUpe3JldHVybiBlPXRoaXMucmVzb2x2ZURlcHRoKGUpLGU9PTA/MDp0aGlzLnBhdGhbZSozLTFdKzF9ZW5kKGUpe3JldHVybiBlPXRoaXMucmVzb2x2ZURlcHRoKGUpLHRoaXMuc3RhcnQoZSkrdGhpcy5ub2RlKGUpLmNvbnRlbnQuc2l6ZX1iZWZvcmUoZSl7aWYoZT10aGlzLnJlc29sdmVEZXB0aChlKSwhZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlcmUgaXMgbm8gcG9zaXRpb24gYmVmb3JlIHRoZSB0b3AtbGV2ZWwgbm9kZSIpO3JldHVybiBlPT10aGlzLmRlcHRoKzE/dGhpcy5wb3M6dGhpcy5wYXRoW2UqMy0xXX1hZnRlcihlKXtpZihlPXRoaXMucmVzb2x2ZURlcHRoKGUpLCFlKXRocm93IG5ldyBSYW5nZUVycm9yKCJUaGVyZSBpcyBubyBwb3NpdGlvbiBhZnRlciB0aGUgdG9wLWxldmVsIG5vZGUiKTtyZXR1cm4gZT09dGhpcy5kZXB0aCsxP3RoaXMucG9zOnRoaXMucGF0aFtlKjMtMV0rdGhpcy5wYXRoW2UqM10ubm9kZVNpemV9Z2V0IHRleHRPZmZzZXQoKXtyZXR1cm4gdGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV19Z2V0IG5vZGVBZnRlcigpe2xldCBlPXRoaXMucGFyZW50LHQ9dGhpcy5pbmRleCh0aGlzLmRlcHRoKTtpZih0PT1lLmNoaWxkQ291bnQpcmV0dXJuIG51bGw7bGV0IHI9dGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV0saT1lLmNoaWxkKHQpO3JldHVybiByP2UuY2hpbGQodCkuY3V0KHIpOml9Z2V0IG5vZGVCZWZvcmUoKXtsZXQgZT10aGlzLmluZGV4KHRoaXMuZGVwdGgpLHQ9dGhpcy5wb3MtdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV07cmV0dXJuIHQ/dGhpcy5wYXJlbnQuY2hpbGQoZSkuY3V0KDAsdCk6ZT09MD9udWxsOnRoaXMucGFyZW50LmNoaWxkKGUtMSl9cG9zQXRJbmRleChlLHQpe3Q9dGhpcy5yZXNvbHZlRGVwdGgodCk7bGV0IHI9dGhpcy5wYXRoW3QqM10saT10PT0wPzA6dGhpcy5wYXRoW3QqMy0xXSsxO2ZvcihsZXQgbz0wO288ZTtvKyspaSs9ci5jaGlsZChvKS5ub2RlU2l6ZTtyZXR1cm4gaX1tYXJrcygpe2xldCBlPXRoaXMucGFyZW50LHQ9dGhpcy5pbmRleCgpO2lmKGUuY29udGVudC5zaXplPT0wKXJldHVybiBEYS5ub25lO2lmKHRoaXMudGV4dE9mZnNldClyZXR1cm4gZS5jaGlsZCh0KS5tYXJrcztsZXQgcj1lLm1heWJlQ2hpbGQodC0xKSxpPWUubWF5YmVDaGlsZCh0KTtpZighcil7bGV0IGw9cjtyPWksaT1sfWxldCBvPXIubWFya3M7Zm9yKHZhciBuPTA7bjxvLmxlbmd0aDtuKyspb1tuXS50eXBlLnNwZWMuaW5jbHVzaXZlPT09ITEmJighaXx8IW9bbl0uaXNJblNldChpLm1hcmtzKSkmJihvPW9bbi0tXS5yZW1vdmVGcm9tU2V0KG8pKTtyZXR1cm4gb31tYXJrc0Fjcm9zcyhlKXtsZXQgdD10aGlzLnBhcmVudC5tYXliZUNoaWxkKHRoaXMuaW5kZXgoKSk7aWYoIXR8fCF0LmlzSW5saW5lKXJldHVybiBudWxsO2xldCByPXQubWFya3MsaT1lLnBhcmVudC5tYXliZUNoaWxkKGUuaW5kZXgoKSk7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcltvXS50eXBlLnNwZWMuaW5jbHVzaXZlPT09ITEmJighaXx8IXJbb10uaXNJblNldChpLm1hcmtzKSkmJihyPXJbby0tXS5yZW1vdmVGcm9tU2V0KHIpKTtyZXR1cm4gcn1zaGFyZWREZXB0aChlKXtmb3IobGV0IHQ9dGhpcy5kZXB0aDt0PjA7dC0tKWlmKHRoaXMuc3RhcnQodCk8PWUmJnRoaXMuZW5kKHQpPj1lKXJldHVybiB0O3JldHVybiAwfWJsb2NrUmFuZ2UoZT10aGlzLHQpe2lmKGUucG9zPHRoaXMucG9zKXJldHVybiBlLmJsb2NrUmFuZ2UodGhpcyk7Zm9yKGxldCByPXRoaXMuZGVwdGgtKHRoaXMucGFyZW50LmlubGluZUNvbnRlbnR8fHRoaXMucG9zPT1lLnBvcz8xOjApO3I+PTA7ci0tKWlmKGUucG9zPD10aGlzLmVuZChyKSYmKCF0fHx0KHRoaXMubm9kZShyKSkpKXJldHVybiBuZXcgdTQodGhpcyxlLHIpO3JldHVybiBudWxsfXNhbWVQYXJlbnQoZSl7cmV0dXJuIHRoaXMucG9zLXRoaXMucGFyZW50T2Zmc2V0PT1lLnBvcy1lLnBhcmVudE9mZnNldH1tYXgoZSl7cmV0dXJuIGUucG9zPnRoaXMucG9zP2U6dGhpc31taW4oZSl7cmV0dXJuIGUucG9zPHRoaXMucG9zP2U6dGhpc310b1N0cmluZygpe2xldCBlPSIiO2ZvcihsZXQgdD0xO3Q8PXRoaXMuZGVwdGg7dCsrKWUrPShlPyIvIjoiIikrdGhpcy5ub2RlKHQpLnR5cGUubmFtZSsiXyIrdGhpcy5pbmRleCh0LTEpO3JldHVybiBlKyI6Iit0aGlzLnBhcmVudE9mZnNldH1zdGF0aWMgcmVzb2x2ZShlLHQpe2lmKCEodD49MCYmdDw9ZS5jb250ZW50LnNpemUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJQb3NpdGlvbiAiK3QrIiBvdXQgb2YgcmFuZ2UiKTtsZXQgcj1bXSxpPTAsbz10O2ZvcihsZXQgbj1lOzspe2xldHtpbmRleDpsLG9mZnNldDpkfT1uLmNvbnRlbnQuZmluZEluZGV4KG8pLGM9by1kO2lmKHIucHVzaChuLGwsaStkKSwhY3x8KG49bi5jaGlsZChsKSxuLmlzVGV4dCkpYnJlYWs7bz1jLTEsaSs9ZCsxfXJldHVybiBuZXcgYSh0LHIsbyl9c3RhdGljIHJlc29sdmVDYWNoZWQoZSx0KXtsZXQgcj1TaWEuZ2V0KGUpO2lmKHIpZm9yKGxldCBvPTA7bzxyLmVsdHMubGVuZ3RoO28rKyl7bGV0IG49ci5lbHRzW29dO2lmKG4ucG9zPT10KXJldHVybiBufWVsc2UgU2lhLnNldChlLHI9bmV3IGlLZSk7bGV0IGk9ci5lbHRzW3IuaV09YS5yZXNvbHZlKGUsdCk7cmV0dXJuIHIuaT0oci5pKzEpJWVEYSxpfX0saUtlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlJlc29sdmVDYWNoZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5lbHRzPVtdLHRoaXMuaT0wfX0sZURhPTEyLFNpYT1uZXcgV2Vha01hcCx1ND1jbGFzc3tzdGF0aWN7cyh0aGlzLCJOb2RlUmFuZ2UiKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXQsdGhpcy5kZXB0aD1yfWdldCBzdGFydCgpe3JldHVybiB0aGlzLiRmcm9tLmJlZm9yZSh0aGlzLmRlcHRoKzEpfWdldCBlbmQoKXtyZXR1cm4gdGhpcy4kdG8uYWZ0ZXIodGhpcy5kZXB0aCsxKX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuJGZyb20ubm9kZSh0aGlzLmRlcHRoKX1nZXQgc3RhcnRJbmRleCgpe3JldHVybiB0aGlzLiRmcm9tLmluZGV4KHRoaXMuZGVwdGgpfWdldCBlbmRJbmRleCgpe3JldHVybiB0aGlzLiR0by5pbmRleEFmdGVyKHRoaXMuZGVwdGgpfX0sdERhPU9iamVjdC5jcmVhdGUobnVsbCksS2k9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJOb2RlIil9Y29uc3RydWN0b3IoZSx0LHIsaT1EYS5ub25lKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXQsdGhpcy5tYXJrcz1pLHRoaXMuY29udGVudD1yfHxqZS5lbXB0eX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5jb250ZW50LmNvbnRlbnR9Z2V0IG5vZGVTaXplKCl7cmV0dXJuIHRoaXMuaXNMZWFmPzE6Mit0aGlzLmNvbnRlbnQuc2l6ZX1nZXQgY2hpbGRDb3VudCgpe3JldHVybiB0aGlzLmNvbnRlbnQuY2hpbGRDb3VudH1jaGlsZChlKXtyZXR1cm4gdGhpcy5jb250ZW50LmNoaWxkKGUpfW1heWJlQ2hpbGQoZSl7cmV0dXJuIHRoaXMuY29udGVudC5tYXliZUNoaWxkKGUpfWZvckVhY2goZSl7dGhpcy5jb250ZW50LmZvckVhY2goZSl9bm9kZXNCZXR3ZWVuKGUsdCxyLGk9MCl7dGhpcy5jb250ZW50Lm5vZGVzQmV0d2VlbihlLHQscixpLHRoaXMpfWRlc2NlbmRhbnRzKGUpe3RoaXMubm9kZXNCZXR3ZWVuKDAsdGhpcy5jb250ZW50LnNpemUsZSl9Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuaXNMZWFmJiZ0aGlzLnR5cGUuc3BlYy5sZWFmVGV4dD90aGlzLnR5cGUuc3BlYy5sZWFmVGV4dCh0aGlzKTp0aGlzLnRleHRCZXR3ZWVuKDAsdGhpcy5jb250ZW50LnNpemUsIiIpfXRleHRCZXR3ZWVuKGUsdCxyLGkpe3JldHVybiB0aGlzLmNvbnRlbnQudGV4dEJldHdlZW4oZSx0LHIsaSl9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jb250ZW50LmZpcnN0Q2hpbGR9Z2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGFzdENoaWxkfWVxKGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLnNhbWVNYXJrdXAoZSkmJnRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpfXNhbWVNYXJrdXAoZSl7cmV0dXJuIHRoaXMuaGFzTWFya3VwKGUudHlwZSxlLmF0dHJzLGUubWFya3MpfWhhc01hcmt1cChlLHQscil7cmV0dXJuIHRoaXMudHlwZT09ZSYmX2FlKHRoaXMuYXR0cnMsdHx8ZS5kZWZhdWx0QXR0cnN8fHREYSkmJkRhLnNhbWVTZXQodGhpcy5tYXJrcyxyfHxEYS5ub25lKX1jb3B5KGU9bnVsbCl7cmV0dXJuIGU9PXRoaXMuY29udGVudD90aGlzOm5ldyBhKHRoaXMudHlwZSx0aGlzLmF0dHJzLGUsdGhpcy5tYXJrcyl9bWFyayhlKXtyZXR1cm4gZT09dGhpcy5tYXJrcz90aGlzOm5ldyBhKHRoaXMudHlwZSx0aGlzLmF0dHJzLHRoaXMuY29udGVudCxlKX1jdXQoZSx0PXRoaXMuY29udGVudC5zaXplKXtyZXR1cm4gZT09MCYmdD09dGhpcy5jb250ZW50LnNpemU/dGhpczp0aGlzLmNvcHkodGhpcy5jb250ZW50LmN1dChlLHQpKX1zbGljZShlLHQ9dGhpcy5jb250ZW50LnNpemUscj0hMSl7aWYoZT09dClyZXR1cm4gc3QuZW1wdHk7bGV0IGk9dGhpcy5yZXNvbHZlKGUpLG89dGhpcy5yZXNvbHZlKHQpLG49cj8wOmkuc2hhcmVkRGVwdGgodCksbD1pLnN0YXJ0KG4pLGM9aS5ub2RlKG4pLmNvbnRlbnQuY3V0KGkucG9zLWwsby5wb3MtbCk7cmV0dXJuIG5ldyBzdChjLGkuZGVwdGgtbixvLmRlcHRoLW4pfXJlcGxhY2UoZSx0LHIpe3JldHVybiBRJGEodGhpcy5yZXNvbHZlKGUpLHRoaXMucmVzb2x2ZSh0KSxyKX1ub2RlQXQoZSl7Zm9yKGxldCB0PXRoaXM7Oyl7bGV0e2luZGV4OnIsb2Zmc2V0Oml9PXQuY29udGVudC5maW5kSW5kZXgoZSk7aWYodD10Lm1heWJlQ2hpbGQociksIXQpcmV0dXJuIG51bGw7aWYoaT09ZXx8dC5pc1RleHQpcmV0dXJuIHQ7ZS09aSsxfX1jaGlsZEFmdGVyKGUpe2xldHtpbmRleDp0LG9mZnNldDpyfT10aGlzLmNvbnRlbnQuZmluZEluZGV4KGUpO3JldHVybntub2RlOnRoaXMuY29udGVudC5tYXliZUNoaWxkKHQpLGluZGV4OnQsb2Zmc2V0OnJ9fWNoaWxkQmVmb3JlKGUpe2lmKGU9PTApcmV0dXJue25vZGU6bnVsbCxpbmRleDowLG9mZnNldDowfTtsZXR7aW5kZXg6dCxvZmZzZXQ6cn09dGhpcy5jb250ZW50LmZpbmRJbmRleChlKTtpZihyPGUpcmV0dXJue25vZGU6dGhpcy5jb250ZW50LmNoaWxkKHQpLGluZGV4OnQsb2Zmc2V0OnJ9O2xldCBpPXRoaXMuY29udGVudC5jaGlsZCh0LTEpO3JldHVybntub2RlOmksaW5kZXg6dC0xLG9mZnNldDpyLWkubm9kZVNpemV9fXJlc29sdmUoZSl7cmV0dXJuIEZVLnJlc29sdmVDYWNoZWQodGhpcyxlKX1yZXNvbHZlTm9DYWNoZShlKXtyZXR1cm4gRlUucmVzb2x2ZSh0aGlzLGUpfXJhbmdlSGFzTWFyayhlLHQscil7bGV0IGk9ITE7cmV0dXJuIHQ+ZSYmdGhpcy5ub2Rlc0JldHdlZW4oZSx0LG89PihyLmlzSW5TZXQoby5tYXJrcykmJihpPSEwKSwhaSkpLGl9Z2V0IGlzQmxvY2soKXtyZXR1cm4gdGhpcy50eXBlLmlzQmxvY2t9Z2V0IGlzVGV4dGJsb2NrKCl7cmV0dXJuIHRoaXMudHlwZS5pc1RleHRibG9ja31nZXQgaW5saW5lQ29udGVudCgpe3JldHVybiB0aGlzLnR5cGUuaW5saW5lQ29udGVudH1nZXQgaXNJbmxpbmUoKXtyZXR1cm4gdGhpcy50eXBlLmlzSW5saW5lfWdldCBpc1RleHQoKXtyZXR1cm4gdGhpcy50eXBlLmlzVGV4dH1nZXQgaXNMZWFmKCl7cmV0dXJuIHRoaXMudHlwZS5pc0xlYWZ9Z2V0IGlzQXRvbSgpe3JldHVybiB0aGlzLnR5cGUuaXNBdG9tfXRvU3RyaW5nKCl7aWYodGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZylyZXR1cm4gdGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZyh0aGlzKTtsZXQgZT10aGlzLnR5cGUubmFtZTtyZXR1cm4gdGhpcy5jb250ZW50LnNpemUmJihlKz0iKCIrdGhpcy5jb250ZW50LnRvU3RyaW5nSW5uZXIoKSsiKSIpLHppYSh0aGlzLm1hcmtzLGUpfWNvbnRlbnRNYXRjaEF0KGUpe2xldCB0PXRoaXMudHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQsMCxlKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCBjb250ZW50TWF0Y2hBdCBvbiBhIG5vZGUgd2l0aCBpbnZhbGlkIGNvbnRlbnQiKTtyZXR1cm4gdH1jYW5SZXBsYWNlKGUsdCxyPWplLmVtcHR5LGk9MCxvPXIuY2hpbGRDb3VudCl7bGV0IG49dGhpcy5jb250ZW50TWF0Y2hBdChlKS5tYXRjaEZyYWdtZW50KHIsaSxvKSxsPW4mJm4ubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQsdCk7aWYoIWx8fCFsLnZhbGlkRW5kKXJldHVybiExO2ZvcihsZXQgZD1pO2Q8bztkKyspaWYoIXRoaXMudHlwZS5hbGxvd3NNYXJrcyhyLmNoaWxkKGQpLm1hcmtzKSlyZXR1cm4hMTtyZXR1cm4hMH1jYW5SZXBsYWNlV2l0aChlLHQscixpKXtpZihpJiYhdGhpcy50eXBlLmFsbG93c01hcmtzKGkpKXJldHVybiExO2xldCBvPXRoaXMuY29udGVudE1hdGNoQXQoZSkubWF0Y2hUeXBlKHIpLG49byYmby5tYXRjaEZyYWdtZW50KHRoaXMuY29udGVudCx0KTtyZXR1cm4gbj9uLnZhbGlkRW5kOiExfWNhbkFwcGVuZChlKXtyZXR1cm4gZS5jb250ZW50LnNpemU/dGhpcy5jYW5SZXBsYWNlKHRoaXMuY2hpbGRDb3VudCx0aGlzLmNoaWxkQ291bnQsZS5jb250ZW50KTp0aGlzLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQoZS50eXBlKX1jaGVjaygpe3RoaXMudHlwZS5jaGVja0NvbnRlbnQodGhpcy5jb250ZW50KSx0aGlzLnR5cGUuY2hlY2tBdHRycyh0aGlzLmF0dHJzKTtsZXQgZT1EYS5ub25lO2ZvcihsZXQgdD0wO3Q8dGhpcy5tYXJrcy5sZW5ndGg7dCsrKXtsZXQgcj10aGlzLm1hcmtzW3RdO3IudHlwZS5jaGVja0F0dHJzKHIuYXR0cnMpLGU9ci5hZGRUb1NldChlKX1pZighRGEuc2FtZVNldChlLHRoaXMubWFya3MpKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIGNvbGxlY3Rpb24gb2YgbWFya3MgZm9yIG5vZGUgJHt0aGlzLnR5cGUubmFtZX06ICR7dGhpcy5tYXJrcy5tYXAodD0+dC50eXBlLm5hbWUpfWApO3RoaXMuY29udGVudC5mb3JFYWNoKHQ9PnQuY2hlY2soKSl9dG9KU09OKCl7bGV0IGU9e3R5cGU6dGhpcy50eXBlLm5hbWV9O2ZvcihsZXQgdCBpbiB0aGlzLmF0dHJzKXtlLmF0dHJzPXRoaXMuYXR0cnM7YnJlYWt9cmV0dXJuIHRoaXMuY29udGVudC5zaXplJiYoZS5jb250ZW50PXRoaXMuY29udGVudC50b0pTT04oKSksdGhpcy5tYXJrcy5sZW5ndGgmJihlLm1hcmtzPXRoaXMubWFya3MubWFwKHQ9PnQudG9KU09OKCkpKSxlfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBOb2RlLmZyb21KU09OIik7bGV0IHI7aWYodC5tYXJrcyl7aWYoIUFycmF5LmlzQXJyYXkodC5tYXJrcykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgbWFyayBkYXRhIGZvciBOb2RlLmZyb21KU09OIik7cj10Lm1hcmtzLm1hcChlLm1hcmtGcm9tSlNPTil9aWYodC50eXBlPT0idGV4dCIpe2lmKHR5cGVvZiB0LnRleHQhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRleHQgbm9kZSBpbiBKU09OIik7cmV0dXJuIGUudGV4dCh0LnRleHQscil9bGV0IGk9amUuZnJvbUpTT04oZSx0LmNvbnRlbnQpLG89ZS5ub2RlVHlwZSh0LnR5cGUpLmNyZWF0ZSh0LmF0dHJzLGkscik7cmV0dXJuIG8udHlwZS5jaGVja0F0dHJzKG8uYXR0cnMpLG99fTtLaS5wcm90b3R5cGUudGV4dD12b2lkIDA7b0tlPWNsYXNzIGEgZXh0ZW5kcyBLaXtzdGF0aWN7cyh0aGlzLCJUZXh0Tm9kZSIpfWNvbnN0cnVjdG9yKGUsdCxyLGkpe2lmKHN1cGVyKGUsdCxudWxsLGkpLCFyKXRocm93IG5ldyBSYW5nZUVycm9yKCJFbXB0eSB0ZXh0IG5vZGVzIGFyZSBub3QgYWxsb3dlZCIpO3RoaXMudGV4dD1yfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmc/dGhpcy50eXBlLnNwZWMudG9EZWJ1Z1N0cmluZyh0aGlzKTp6aWEodGhpcy5tYXJrcyxKU09OLnN0cmluZ2lmeSh0aGlzLnRleHQpKX1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy50ZXh0fXRleHRCZXR3ZWVuKGUsdCl7cmV0dXJuIHRoaXMudGV4dC5zbGljZShlLHQpfWdldCBub2RlU2l6ZSgpe3JldHVybiB0aGlzLnRleHQubGVuZ3RofW1hcmsoZSl7cmV0dXJuIGU9PXRoaXMubWFya3M/dGhpczpuZXcgYSh0aGlzLnR5cGUsdGhpcy5hdHRycyx0aGlzLnRleHQsZSl9d2l0aFRleHQoZSl7cmV0dXJuIGU9PXRoaXMudGV4dD90aGlzOm5ldyBhKHRoaXMudHlwZSx0aGlzLmF0dHJzLGUsdGhpcy5tYXJrcyl9Y3V0KGU9MCx0PXRoaXMudGV4dC5sZW5ndGgpe3JldHVybiBlPT0wJiZ0PT10aGlzLnRleHQubGVuZ3RoP3RoaXM6dGhpcy53aXRoVGV4dCh0aGlzLnRleHQuc2xpY2UoZSx0KSl9ZXEoZSl7cmV0dXJuIHRoaXMuc2FtZU1hcmt1cChlKSYmdGhpcy50ZXh0PT1lLnRleHR9dG9KU09OKCl7bGV0IGU9c3VwZXIudG9KU09OKCk7cmV0dXJuIGUudGV4dD10aGlzLnRleHQsZX19O3MoemlhLCJ3cmFwTWFya3MiKTtjND1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIkNvbnRlbnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMudmFsaWRFbmQ9ZSx0aGlzLm5leHQ9W10sdGhpcy53cmFwQ2FjaGU9W119c3RhdGljIHBhcnNlKGUsdCl7bGV0IHI9bmV3IG5LZShlLHQpO2lmKHIubmV4dD09bnVsbClyZXR1cm4gYS5lbXB0eTtsZXQgaT1DaWEocik7ci5uZXh0JiZyLmVycigiVW5leHBlY3RlZCB0cmFpbGluZyB0ZXh0Iik7bGV0IG89bERhKG5EYShpKSk7cmV0dXJuIGNEYShvLHIpLG99bWF0Y2hUeXBlKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5uZXh0Lmxlbmd0aDt0KyspaWYodGhpcy5uZXh0W3RdLnR5cGU9PWUpcmV0dXJuIHRoaXMubmV4dFt0XS5uZXh0O3JldHVybiBudWxsfW1hdGNoRnJhZ21lbnQoZSx0PTAscj1lLmNoaWxkQ291bnQpe2xldCBpPXRoaXM7Zm9yKGxldCBvPXQ7aSYmbzxyO28rKylpPWkubWF0Y2hUeXBlKGUuY2hpbGQobykudHlwZSk7cmV0dXJuIGl9Z2V0IGlubGluZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5uZXh0Lmxlbmd0aCE9MCYmdGhpcy5uZXh0WzBdLnR5cGUuaXNJbmxpbmV9Z2V0IGRlZmF1bHRUeXBlKCl7Zm9yKGxldCBlPTA7ZTx0aGlzLm5leHQubGVuZ3RoO2UrKyl7bGV0e3R5cGU6dH09dGhpcy5uZXh0W2VdO2lmKCEodC5pc1RleHR8fHQuaGFzUmVxdWlyZWRBdHRycygpKSlyZXR1cm4gdH1yZXR1cm4gbnVsbH1jb21wYXRpYmxlKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5uZXh0Lmxlbmd0aDt0KyspZm9yKGxldCByPTA7cjxlLm5leHQubGVuZ3RoO3IrKylpZih0aGlzLm5leHRbdF0udHlwZT09ZS5uZXh0W3JdLnR5cGUpcmV0dXJuITA7cmV0dXJuITF9ZmlsbEJlZm9yZShlLHQ9ITEscj0wKXtsZXQgaT1bdGhpc107ZnVuY3Rpb24gbyhuLGwpe2xldCBkPW4ubWF0Y2hGcmFnbWVudChlLHIpO2lmKGQmJighdHx8ZC52YWxpZEVuZCkpcmV0dXJuIGplLmZyb20obC5tYXAoYz0+Yy5jcmVhdGVBbmRGaWxsKCkpKTtmb3IobGV0IGM9MDtjPG4ubmV4dC5sZW5ndGg7YysrKXtsZXR7dHlwZTpwLG5leHQ6dX09bi5uZXh0W2NdO2lmKCEocC5pc1RleHR8fHAuaGFzUmVxdWlyZWRBdHRycygpKSYmaS5pbmRleE9mKHUpPT0tMSl7aS5wdXNoKHUpO2xldCBtPW8odSxsLmNvbmNhdChwKSk7aWYobSlyZXR1cm4gbX19cmV0dXJuIG51bGx9cmV0dXJuIHMobywic2VhcmNoIiksbyh0aGlzLFtdKX1maW5kV3JhcHBpbmcoZSl7Zm9yKGxldCByPTA7cjx0aGlzLndyYXBDYWNoZS5sZW5ndGg7cis9MilpZih0aGlzLndyYXBDYWNoZVtyXT09ZSlyZXR1cm4gdGhpcy53cmFwQ2FjaGVbcisxXTtsZXQgdD10aGlzLmNvbXB1dGVXcmFwcGluZyhlKTtyZXR1cm4gdGhpcy53cmFwQ2FjaGUucHVzaChlLHQpLHR9Y29tcHV0ZVdyYXBwaW5nKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCkscj1be21hdGNoOnRoaXMsdHlwZTpudWxsLHZpYTpudWxsfV07Zm9yKDtyLmxlbmd0aDspe2xldCBpPXIuc2hpZnQoKSxvPWkubWF0Y2g7aWYoby5tYXRjaFR5cGUoZSkpe2xldCBuPVtdO2ZvcihsZXQgbD1pO2wudHlwZTtsPWwudmlhKW4ucHVzaChsLnR5cGUpO3JldHVybiBuLnJldmVyc2UoKX1mb3IobGV0IG49MDtuPG8ubmV4dC5sZW5ndGg7bisrKXtsZXR7dHlwZTpsLG5leHQ6ZH09by5uZXh0W25dOyFsLmlzTGVhZiYmIWwuaGFzUmVxdWlyZWRBdHRycygpJiYhKGwubmFtZSBpbiB0KSYmKCFpLnR5cGV8fGQudmFsaWRFbmQpJiYoci5wdXNoKHttYXRjaDpsLmNvbnRlbnRNYXRjaCx0eXBlOmwsdmlhOml9KSx0W2wubmFtZV09ITApfX1yZXR1cm4gbnVsbH1nZXQgZWRnZUNvdW50KCl7cmV0dXJuIHRoaXMubmV4dC5sZW5ndGh9ZWRnZShlKXtpZihlPj10aGlzLm5leHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSdzIG5vICR7ZX10aCBlZGdlIGluIHRoaXMgY29udGVudCBtYXRjaGApO3JldHVybiB0aGlzLm5leHRbZV19dG9TdHJpbmcoKXtsZXQgZT1bXTtmdW5jdGlvbiB0KHIpe2UucHVzaChyKTtmb3IobGV0IGk9MDtpPHIubmV4dC5sZW5ndGg7aSsrKWUuaW5kZXhPZihyLm5leHRbaV0ubmV4dCk9PS0xJiZ0KHIubmV4dFtpXS5uZXh0KX1yZXR1cm4gcyh0LCJzY2FuIiksdCh0aGlzKSxlLm1hcCgocixpKT0+e2xldCBvPWkrKHIudmFsaWRFbmQ/IioiOiIgIikrIiAiO2ZvcihsZXQgbj0wO248ci5uZXh0Lmxlbmd0aDtuKyspbys9KG4/IiwgIjoiIikrci5uZXh0W25dLnR5cGUubmFtZSsiLT4iK2UuaW5kZXhPZihyLm5leHRbbl0ubmV4dCk7cmV0dXJuIG99KS5qb2luKGAKYCl9fTtjNC5lbXB0eT1uZXcgYzQoITApO25LZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJUb2tlblN0cmVhbSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJpbmc9ZSx0aGlzLm5vZGVUeXBlcz10LHRoaXMuaW5saW5lPW51bGwsdGhpcy5wb3M9MCx0aGlzLnRva2Vucz1lLnNwbGl0KC9ccyooPz1cYnxcV3wkKS8pLHRoaXMudG9rZW5zW3RoaXMudG9rZW5zLmxlbmd0aC0xXT09IiImJnRoaXMudG9rZW5zLnBvcCgpLHRoaXMudG9rZW5zWzBdPT0iIiYmdGhpcy50b2tlbnMuc2hpZnQoKX1nZXQgbmV4dCgpe3JldHVybiB0aGlzLnRva2Vuc1t0aGlzLnBvc119ZWF0KGUpe3JldHVybiB0aGlzLm5leHQ9PWUmJih0aGlzLnBvcysrfHwhMCl9ZXJyKGUpe3Rocm93IG5ldyBTeW50YXhFcnJvcihlKyIgKGluIGNvbnRlbnQgZXhwcmVzc2lvbiAnIit0aGlzLnN0cmluZysiJykiKX19O3MoQ2lhLCJwYXJzZUV4cHIiKTtzKGFEYSwicGFyc2VFeHByU2VxIik7cyhyRGEsInBhcnNlRXhwclN1YnNjcmlwdCIpO3MoX2lhLCJwYXJzZU51bSIpO3Moc0RhLCJwYXJzZUV4cHJSYW5nZSIpO3MoaURhLCJyZXNvbHZlTmFtZSIpO3Mob0RhLCJwYXJzZUV4cHJBdG9tIik7cyhuRGEsIm5mYSIpO3MoVGlhLCJjbXAiKTtzKExpYSwibnVsbEZyb20iKTtzKGxEYSwiZGZhIik7cyhjRGEsImNoZWNrRm9yRGVhZEVuZHMiKTtzKCRpYSwiZGVmYXVsdEF0dHJzIik7cyhEaWEsImNvbXB1dGVBdHRycyIpO3MoQWlhLCJjaGVja0F0dHJzIik7cyhQaWEsImluaXRBdHRycyIpO0JVPWNsYXNzIGF7c3RhdGlje3ModGhpcywiTm9kZVR5cGUiKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy5uYW1lPWUsdGhpcy5zY2hlbWE9dCx0aGlzLnNwZWM9cix0aGlzLm1hcmtTZXQ9bnVsbCx0aGlzLmdyb3Vwcz1yLmdyb3VwP3IuZ3JvdXAuc3BsaXQoIiAiKTpbXSx0aGlzLmF0dHJzPVBpYShlLHIuYXR0cnMpLHRoaXMuZGVmYXVsdEF0dHJzPSRpYSh0aGlzLmF0dHJzKSx0aGlzLmNvbnRlbnRNYXRjaD1udWxsLHRoaXMuaW5saW5lQ29udGVudD1udWxsLHRoaXMuaXNCbG9jaz0hKHIuaW5saW5lfHxlPT0idGV4dCIpLHRoaXMuaXNUZXh0PWU9PSJ0ZXh0In1nZXQgaXNJbmxpbmUoKXtyZXR1cm4hdGhpcy5pc0Jsb2NrfWdldCBpc1RleHRibG9jaygpe3JldHVybiB0aGlzLmlzQmxvY2smJnRoaXMuaW5saW5lQ29udGVudH1nZXQgaXNMZWFmKCl7cmV0dXJuIHRoaXMuY29udGVudE1hdGNoPT1jNC5lbXB0eX1nZXQgaXNBdG9tKCl7cmV0dXJuIHRoaXMuaXNMZWFmfHwhIXRoaXMuc3BlYy5hdG9tfWlzSW5Hcm91cChlKXtyZXR1cm4gdGhpcy5ncm91cHMuaW5kZXhPZihlKT4tMX1nZXQgd2hpdGVzcGFjZSgpe3JldHVybiB0aGlzLnNwZWMud2hpdGVzcGFjZXx8KHRoaXMuc3BlYy5jb2RlPyJwcmUiOiJub3JtYWwiKX1oYXNSZXF1aXJlZEF0dHJzKCl7Zm9yKGxldCBlIGluIHRoaXMuYXR0cnMpaWYodGhpcy5hdHRyc1tlXS5pc1JlcXVpcmVkKXJldHVybiEwO3JldHVybiExfWNvbXBhdGlibGVDb250ZW50KGUpe3JldHVybiB0aGlzPT1lfHx0aGlzLmNvbnRlbnRNYXRjaC5jb21wYXRpYmxlKGUuY29udGVudE1hdGNoKX1jb21wdXRlQXR0cnMoZSl7cmV0dXJuIWUmJnRoaXMuZGVmYXVsdEF0dHJzP3RoaXMuZGVmYXVsdEF0dHJzOkRpYSh0aGlzLmF0dHJzLGUpfWNyZWF0ZShlPW51bGwsdCxyKXtpZih0aGlzLmlzVGV4dCl0aHJvdyBuZXcgRXJyb3IoIk5vZGVUeXBlLmNyZWF0ZSBjYW4ndCBjb25zdHJ1Y3QgdGV4dCBub2RlcyIpO3JldHVybiBuZXcgS2kodGhpcyx0aGlzLmNvbXB1dGVBdHRycyhlKSxqZS5mcm9tKHQpLERhLnNldEZyb20ocikpfWNyZWF0ZUNoZWNrZWQoZT1udWxsLHQscil7cmV0dXJuIHQ9amUuZnJvbSh0KSx0aGlzLmNoZWNrQ29udGVudCh0KSxuZXcgS2kodGhpcyx0aGlzLmNvbXB1dGVBdHRycyhlKSx0LERhLnNldEZyb20ocikpfWNyZWF0ZUFuZEZpbGwoZT1udWxsLHQscil7aWYoZT10aGlzLmNvbXB1dGVBdHRycyhlKSx0PWplLmZyb20odCksdC5zaXplKXtsZXQgbj10aGlzLmNvbnRlbnRNYXRjaC5maWxsQmVmb3JlKHQpO2lmKCFuKXJldHVybiBudWxsO3Q9bi5hcHBlbmQodCl9bGV0IGk9dGhpcy5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudCh0KSxvPWkmJmkuZmlsbEJlZm9yZShqZS5lbXB0eSwhMCk7cmV0dXJuIG8/bmV3IEtpKHRoaXMsZSx0LmFwcGVuZChvKSxEYS5zZXRGcm9tKHIpKTpudWxsfXZhbGlkQ29udGVudChlKXtsZXQgdD10aGlzLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KGUpO2lmKCF0fHwhdC52YWxpZEVuZClyZXR1cm4hMTtmb3IobGV0IHI9MDtyPGUuY2hpbGRDb3VudDtyKyspaWYoIXRoaXMuYWxsb3dzTWFya3MoZS5jaGlsZChyKS5tYXJrcykpcmV0dXJuITE7cmV0dXJuITB9Y2hlY2tDb250ZW50KGUpe2lmKCF0aGlzLnZhbGlkQ29udGVudChlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBjb250ZW50IGZvciBub2RlICR7dGhpcy5uYW1lfTogJHtlLnRvU3RyaW5nKCkuc2xpY2UoMCw1MCl9YCl9Y2hlY2tBdHRycyhlKXtBaWEodGhpcy5hdHRycyxlLCJub2RlIix0aGlzLm5hbWUpfWFsbG93c01hcmtUeXBlKGUpe3JldHVybiB0aGlzLm1hcmtTZXQ9PW51bGx8fHRoaXMubWFya1NldC5pbmRleE9mKGUpPi0xfWFsbG93c01hcmtzKGUpe2lmKHRoaXMubWFya1NldD09bnVsbClyZXR1cm4hMDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZighdGhpcy5hbGxvd3NNYXJrVHlwZShlW3RdLnR5cGUpKXJldHVybiExO3JldHVybiEwfWFsbG93ZWRNYXJrcyhlKXtpZih0aGlzLm1hcmtTZXQ9PW51bGwpcmV0dXJuIGU7bGV0IHQ7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdGhpcy5hbGxvd3NNYXJrVHlwZShlW3JdLnR5cGUpP3QmJnQucHVzaChlW3JdKTp0fHwodD1lLnNsaWNlKDAscikpO3JldHVybiB0P3QubGVuZ3RoP3Q6RGEubm9uZTplfXN0YXRpYyBjb21waWxlKGUsdCl7bGV0IHI9T2JqZWN0LmNyZWF0ZShudWxsKTtlLmZvckVhY2goKG8sbik9PnJbb109bmV3IGEobyx0LG4pKTtsZXQgaT10LnNwZWMudG9wTm9kZXx8ImRvYyI7aWYoIXJbaV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNjaGVtYSBpcyBtaXNzaW5nIGl0cyB0b3Agbm9kZSB0eXBlICgnIitpKyInKSIpO2lmKCFyLnRleHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkV2ZXJ5IHNjaGVtYSBuZWVkcyBhICd0ZXh0JyB0eXBlIik7Zm9yKGxldCBvIGluIHIudGV4dC5hdHRycyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlIHRleHQgbm9kZSB0eXBlIHNob3VsZCBub3QgaGF2ZSBhdHRyaWJ1dGVzIik7cmV0dXJuIHJ9fTtzKGREYSwidmFsaWRhdGVUeXBlIik7bEtlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkF0dHJpYnV0ZSIpfWNvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmhhc0RlZmF1bHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsImRlZmF1bHQiKSx0aGlzLmRlZmF1bHQ9ci5kZWZhdWx0LHRoaXMudmFsaWRhdGU9dHlwZW9mIHIudmFsaWRhdGU9PSJzdHJpbmciP2REYShlLHQsci52YWxpZGF0ZSk6ci52YWxpZGF0ZX1nZXQgaXNSZXF1aXJlZCgpe3JldHVybiF0aGlzLmhhc0RlZmF1bHR9fSx1bT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIk1hcmtUeXBlIil9Y29uc3RydWN0b3IoZSx0LHIsaSl7dGhpcy5uYW1lPWUsdGhpcy5yYW5rPXQsdGhpcy5zY2hlbWE9cix0aGlzLnNwZWM9aSx0aGlzLmF0dHJzPVBpYShlLGkuYXR0cnMpLHRoaXMuZXhjbHVkZWQ9bnVsbDtsZXQgbz0kaWEodGhpcy5hdHRycyk7dGhpcy5pbnN0YW5jZT1vP25ldyBEYSh0aGlzLG8pOm51bGx9Y3JlYXRlKGU9bnVsbCl7cmV0dXJuIWUmJnRoaXMuaW5zdGFuY2U/dGhpcy5pbnN0YW5jZTpuZXcgRGEodGhpcyxEaWEodGhpcy5hdHRycyxlKSl9c3RhdGljIGNvbXBpbGUoZSx0KXtsZXQgcj1PYmplY3QuY3JlYXRlKG51bGwpLGk9MDtyZXR1cm4gZS5mb3JFYWNoKChvLG4pPT5yW29dPW5ldyBhKG8saSsrLHQsbikpLHJ9cmVtb3ZlRnJvbVNldChlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLnR5cGU9PXRoaXMmJihlPWUuc2xpY2UoMCx0KS5jb25jYXQoZS5zbGljZSh0KzEpKSx0LS0pO3JldHVybiBlfWlzSW5TZXQoZSl7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS50eXBlPT10aGlzKXJldHVybiBlW3RdfWNoZWNrQXR0cnMoZSl7QWlhKHRoaXMuYXR0cnMsZSwibWFyayIsdGhpcy5uYW1lKX1leGNsdWRlcyhlKXtyZXR1cm4gdGhpcy5leGNsdWRlZC5pbmRleE9mKGUpPi0xfX0scG09Y2xhc3N7c3RhdGlje3ModGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3IoZSl7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1udWxsLHRoaXMuY2FjaGVkPU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IHQ9dGhpcy5zcGVjPXt9O2ZvcihsZXQgaSBpbiBlKXRbaV09ZVtpXTt0Lm5vZGVzPWFLZS5mcm9tKGUubm9kZXMpLHQubWFya3M9YUtlLmZyb20oZS5tYXJrc3x8e30pLHRoaXMubm9kZXM9QlUuY29tcGlsZSh0aGlzLnNwZWMubm9kZXMsdGhpcyksdGhpcy5tYXJrcz11bS5jb21waWxlKHRoaXMuc3BlYy5tYXJrcyx0aGlzKTtsZXQgcj1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgaSBpbiB0aGlzLm5vZGVzKXtpZihpIGluIHRoaXMubWFya3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoaSsiIGNhbiBub3QgYmUgYm90aCBhIG5vZGUgYW5kIGEgbWFyayIpO2xldCBvPXRoaXMubm9kZXNbaV0sbj1vLnNwZWMuY29udGVudHx8IiIsbD1vLnNwZWMubWFya3M7aWYoby5jb250ZW50TWF0Y2g9cltuXXx8KHJbbl09YzQucGFyc2Uobix0aGlzLm5vZGVzKSksby5pbmxpbmVDb250ZW50PW8uY29udGVudE1hdGNoLmlubGluZUNvbnRlbnQsby5zcGVjLmxpbmVicmVha1JlcGxhY2VtZW50KXtpZih0aGlzLmxpbmVicmVha1JlcGxhY2VtZW50KXRocm93IG5ldyBSYW5nZUVycm9yKCJNdWx0aXBsZSBsaW5lYnJlYWsgbm9kZXMgZGVmaW5lZCIpO2lmKCFvLmlzSW5saW5lfHwhby5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkxpbmVicmVhayByZXBsYWNlbWVudCBub2RlcyBtdXN0IGJlIGlubGluZSBsZWFmIG5vZGVzIik7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1vfW8ubWFya1NldD1sPT0iXyI/bnVsbDpsP0VpYSh0aGlzLGwuc3BsaXQoIiAiKSk6bD09IiJ8fCFvLmlubGluZUNvbnRlbnQ/W106bnVsbH1mb3IobGV0IGkgaW4gdGhpcy5tYXJrcyl7bGV0IG89dGhpcy5tYXJrc1tpXSxuPW8uc3BlYy5leGNsdWRlcztvLmV4Y2x1ZGVkPW49PW51bGw/W29dOm49PSIiP1tdOkVpYSh0aGlzLG4uc3BsaXQoIiAiKSl9dGhpcy5ub2RlRnJvbUpTT049aT0+S2kuZnJvbUpTT04odGhpcyxpKSx0aGlzLm1hcmtGcm9tSlNPTj1pPT5EYS5mcm9tSlNPTih0aGlzLGkpLHRoaXMudG9wTm9kZVR5cGU9dGhpcy5ub2Rlc1t0aGlzLnNwZWMudG9wTm9kZXx8ImRvYyJdLHRoaXMuY2FjaGVkLndyYXBwaW5ncz1PYmplY3QuY3JlYXRlKG51bGwpfW5vZGUoZSx0PW51bGwscixpKXtpZih0eXBlb2YgZT09InN0cmluZyIpZT10aGlzLm5vZGVUeXBlKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEJVKXtpZihlLnNjaGVtYSE9dGhpcyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm9kZSB0eXBlIGZyb20gZGlmZmVyZW50IHNjaGVtYSB1c2VkICgiK2UubmFtZSsiKSIpfWVsc2UgdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgbm9kZSB0eXBlOiAiK2UpO3JldHVybiBlLmNyZWF0ZUNoZWNrZWQodCxyLGkpfXRleHQoZSx0KXtsZXQgcj10aGlzLm5vZGVzLnRleHQ7cmV0dXJuIG5ldyBvS2UocixyLmRlZmF1bHRBdHRycyxlLERhLnNldEZyb20odCkpfW1hcmsoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciJiYoZT10aGlzLm1hcmtzW2VdKSxlLmNyZWF0ZSh0KX1ub2RlVHlwZShlKXtsZXQgdD10aGlzLm5vZGVzW2VdO2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJVbmtub3duIG5vZGUgdHlwZTogIitlKTtyZXR1cm4gdH19O3MoRWlhLCJnYXRoZXJNYXJrcyIpO3ModURhLCJpc1RhZ1J1bGUiKTtzKHBEYSwiaXNTdHlsZVJ1bGUiKTtOMT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIkRPTVBhcnNlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zY2hlbWE9ZSx0aGlzLnJ1bGVzPXQsdGhpcy50YWdzPVtdLHRoaXMuc3R5bGVzPVtdO2xldCByPXRoaXMubWF0Y2hlZFN0eWxlcz1bXTt0LmZvckVhY2goaT0+e2lmKHVEYShpKSl0aGlzLnRhZ3MucHVzaChpKTtlbHNlIGlmKHBEYShpKSl7bGV0IG89L1tePV0qLy5leGVjKGkuc3R5bGUpWzBdO3IuaW5kZXhPZihvKTwwJiZyLnB1c2gobyksdGhpcy5zdHlsZXMucHVzaChpKX19KSx0aGlzLm5vcm1hbGl6ZUxpc3RzPSF0aGlzLnRhZ3Muc29tZShpPT57aWYoIS9eKHVsfG9sKVxiLy50ZXN0KGkudGFnKXx8IWkubm9kZSlyZXR1cm4hMTtsZXQgbz1lLm5vZGVzW2kubm9kZV07cmV0dXJuIG8uY29udGVudE1hdGNoLm1hdGNoVHlwZShvKX0pfXBhcnNlKGUsdD17fSl7bGV0IHI9bmV3IExhZSh0aGlzLHQsITEpO3JldHVybiByLmFkZEFsbChlLERhLm5vbmUsdC5mcm9tLHQudG8pLHIuZmluaXNoKCl9cGFyc2VTbGljZShlLHQ9e30pe2xldCByPW5ldyBMYWUodGhpcyx0LCEwKTtyZXR1cm4gci5hZGRBbGwoZSxEYS5ub25lLHQuZnJvbSx0LnRvKSxzdC5tYXhPcGVuKHIuZmluaXNoKCkpfW1hdGNoVGFnKGUsdCxyKXtmb3IobGV0IGk9cj90aGlzLnRhZ3MuaW5kZXhPZihyKSsxOjA7aTx0aGlzLnRhZ3MubGVuZ3RoO2krKyl7bGV0IG89dGhpcy50YWdzW2ldO2lmKG1EYShlLG8udGFnKSYmKG8ubmFtZXNwYWNlPT09dm9pZCAwfHxlLm5hbWVzcGFjZVVSST09by5uYW1lc3BhY2UpJiYoIW8uY29udGV4dHx8dC5tYXRjaGVzQ29udGV4dChvLmNvbnRleHQpKSl7aWYoby5nZXRBdHRycyl7bGV0IG49by5nZXRBdHRycyhlKTtpZihuPT09ITEpY29udGludWU7by5hdHRycz1ufHx2b2lkIDB9cmV0dXJuIG99fX1tYXRjaFN0eWxlKGUsdCxyLGkpe2ZvcihsZXQgbz1pP3RoaXMuc3R5bGVzLmluZGV4T2YoaSkrMTowO288dGhpcy5zdHlsZXMubGVuZ3RoO28rKyl7bGV0IG49dGhpcy5zdHlsZXNbb10sbD1uLnN0eWxlO2lmKCEobC5pbmRleE9mKGUpIT0wfHxuLmNvbnRleHQmJiFyLm1hdGNoZXNDb250ZXh0KG4uY29udGV4dCl8fGwubGVuZ3RoPmUubGVuZ3RoJiYobC5jaGFyQ29kZUF0KGUubGVuZ3RoKSE9NjF8fGwuc2xpY2UoZS5sZW5ndGgrMSkhPXQpKSl7aWYobi5nZXRBdHRycyl7bGV0IGQ9bi5nZXRBdHRycyh0KTtpZihkPT09ITEpY29udGludWU7bi5hdHRycz1kfHx2b2lkIDB9cmV0dXJuIG59fX1zdGF0aWMgc2NoZW1hUnVsZXMoZSl7bGV0IHQ9W107ZnVuY3Rpb24gcihpKXtsZXQgbz1pLnByaW9yaXR5PT1udWxsPzUwOmkucHJpb3JpdHksbj0wO2Zvcig7bjx0Lmxlbmd0aDtuKyspe2xldCBsPXRbbl07aWYoKGwucHJpb3JpdHk9PW51bGw/NTA6bC5wcmlvcml0eSk8bylicmVha310LnNwbGljZShuLDAsaSl9cyhyLCJpbnNlcnQiKTtmb3IobGV0IGkgaW4gZS5tYXJrcyl7bGV0IG89ZS5tYXJrc1tpXS5zcGVjLnBhcnNlRE9NO28mJm8uZm9yRWFjaChuPT57cihuPU9pYShuKSksbi5tYXJrfHxuLmlnbm9yZXx8bi5jbGVhck1hcmt8fChuLm1hcms9aSl9KX1mb3IobGV0IGkgaW4gZS5ub2Rlcyl7bGV0IG89ZS5ub2Rlc1tpXS5zcGVjLnBhcnNlRE9NO28mJm8uZm9yRWFjaChuPT57cihuPU9pYShuKSksbi5ub2RlfHxuLmlnbm9yZXx8bi5tYXJrfHwobi5ub2RlPWkpfSl9cmV0dXJuIHR9c3RhdGljIGZyb21TY2hlbWEoZSl7cmV0dXJuIGUuY2FjaGVkLmRvbVBhcnNlcnx8KGUuY2FjaGVkLmRvbVBhcnNlcj1uZXcgYShlLGEuc2NoZW1hUnVsZXMoZSkpKX19LElpYT17YWRkcmVzczohMCxhcnRpY2xlOiEwLGFzaWRlOiEwLGJsb2NrcXVvdGU6ITAsY2FudmFzOiEwLGRkOiEwLGRpdjohMCxkbDohMCxmaWVsZHNldDohMCxmaWdjYXB0aW9uOiEwLGZpZ3VyZTohMCxmb290ZXI6ITAsZm9ybTohMCxoMTohMCxoMjohMCxoMzohMCxoNDohMCxoNTohMCxoNjohMCxoZWFkZXI6ITAsaGdyb3VwOiEwLGhyOiEwLGxpOiEwLG5vc2NyaXB0OiEwLG9sOiEwLG91dHB1dDohMCxwOiEwLHByZTohMCxzZWN0aW9uOiEwLHRhYmxlOiEwLHRmb290OiEwLHVsOiEwfSxmRGE9e2hlYWQ6ITAsbm9zY3JpcHQ6ITAsb2JqZWN0OiEwLHNjcmlwdDohMCxzdHlsZTohMCx0aXRsZTohMH0sTmlhPXtvbDohMCx1bDohMH0sSFU9MSxjS2U9MixxVT00O3MoUmlhLCJ3c09wdGlvbnNGb3IiKTtkbT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJOb2RlQ29udGV4dCIpfWNvbnN0cnVjdG9yKGUsdCxyLGksbyxuKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXQsdGhpcy5tYXJrcz1yLHRoaXMuc29saWQ9aSx0aGlzLm9wdGlvbnM9bix0aGlzLmNvbnRlbnQ9W10sdGhpcy5hY3RpdmVNYXJrcz1EYS5ub25lLHRoaXMubWF0Y2g9b3x8KG4mcVU/bnVsbDplLmNvbnRlbnRNYXRjaCl9ZmluZFdyYXBwaW5nKGUpe2lmKCF0aGlzLm1hdGNoKXtpZighdGhpcy50eXBlKXJldHVybltdO2xldCB0PXRoaXMudHlwZS5jb250ZW50TWF0Y2guZmlsbEJlZm9yZShqZS5mcm9tKGUpKTtpZih0KXRoaXMubWF0Y2g9dGhpcy50eXBlLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KHQpO2Vsc2V7bGV0IHI9dGhpcy50eXBlLmNvbnRlbnRNYXRjaCxpO3JldHVybihpPXIuZmluZFdyYXBwaW5nKGUudHlwZSkpPyh0aGlzLm1hdGNoPXIsaSk6bnVsbH19cmV0dXJuIHRoaXMubWF0Y2guZmluZFdyYXBwaW5nKGUudHlwZSl9ZmluaXNoKGUpe2lmKCEodGhpcy5vcHRpb25zJkhVKSl7bGV0IHI9dGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGgtMV0saTtpZihyJiZyLmlzVGV4dCYmKGk9L1sgXHRcclxuXHUwMDBjXSskLy5leGVjKHIudGV4dCkpKXtsZXQgbz1yO3IudGV4dC5sZW5ndGg9PWlbMF0ubGVuZ3RoP3RoaXMuY29udGVudC5wb3AoKTp0aGlzLmNvbnRlbnRbdGhpcy5jb250ZW50Lmxlbmd0aC0xXT1vLndpdGhUZXh0KG8udGV4dC5zbGljZSgwLG8udGV4dC5sZW5ndGgtaVswXS5sZW5ndGgpKX19bGV0IHQ9amUuZnJvbSh0aGlzLmNvbnRlbnQpO3JldHVybiFlJiZ0aGlzLm1hdGNoJiYodD10LmFwcGVuZCh0aGlzLm1hdGNoLmZpbGxCZWZvcmUoamUuZW1wdHksITApKSksdGhpcy50eXBlP3RoaXMudHlwZS5jcmVhdGUodGhpcy5hdHRycyx0LHRoaXMubWFya3MpOnR9aW5saW5lQ29udGV4dChlKXtyZXR1cm4gdGhpcy50eXBlP3RoaXMudHlwZS5pbmxpbmVDb250ZW50OnRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50WzBdLmlzSW5saW5lOmUucGFyZW50Tm9kZSYmIUlpYS5oYXNPd25Qcm9wZXJ0eShlLnBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl9fSxMYWU9Y2xhc3N7c3RhdGlje3ModGhpcywiUGFyc2VDb250ZXh0Iil9Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMucGFyc2VyPWUsdGhpcy5vcHRpb25zPXQsdGhpcy5pc09wZW49cix0aGlzLm9wZW49MCx0aGlzLmxvY2FsUHJlc2VydmVXUz0hMTtsZXQgaT10LnRvcE5vZGUsbyxuPVJpYShudWxsLHQucHJlc2VydmVXaGl0ZXNwYWNlLDApfChyP3FVOjApO2k/bz1uZXcgZG0oaS50eXBlLGkuYXR0cnMsRGEubm9uZSwhMCx0LnRvcE1hdGNofHxpLnR5cGUuY29udGVudE1hdGNoLG4pOnI/bz1uZXcgZG0obnVsbCxudWxsLERhLm5vbmUsITAsbnVsbCxuKTpvPW5ldyBkbShlLnNjaGVtYS50b3BOb2RlVHlwZSxudWxsLERhLm5vbmUsITAsbnVsbCxuKSx0aGlzLm5vZGVzPVtvXSx0aGlzLmZpbmQ9dC5maW5kUG9zaXRpb25zLHRoaXMubmVlZHNCbG9jaz0hMX1nZXQgdG9wKCl7cmV0dXJuIHRoaXMubm9kZXNbdGhpcy5vcGVuXX1hZGRET00oZSx0KXtlLm5vZGVUeXBlPT0zP3RoaXMuYWRkVGV4dE5vZGUoZSx0KTplLm5vZGVUeXBlPT0xJiZ0aGlzLmFkZEVsZW1lbnQoZSx0KX1hZGRUZXh0Tm9kZShlLHQpe2xldCByPWUubm9kZVZhbHVlLGk9dGhpcy50b3Asbz1pLm9wdGlvbnMmY0tlPyJmdWxsIjp0aGlzLmxvY2FsUHJlc2VydmVXU3x8KGkub3B0aW9ucyZIVSk+MCx7c2NoZW1hOm59PXRoaXMucGFyc2VyO2lmKG89PT0iZnVsbCJ8fGkuaW5saW5lQ29udGV4dChlKXx8L1teIFx0XHJcblx1MDAwY10vLnRlc3Qocikpe2lmKG8paWYobz09PSJmdWxsIilyPXIucmVwbGFjZSgvXHJcbj8vZyxgCmApO2Vsc2UgaWYobi5saW5lYnJlYWtSZXBsYWNlbWVudCYmL1tcclxuXS8udGVzdChyKSYmdGhpcy50b3AuZmluZFdyYXBwaW5nKG4ubGluZWJyZWFrUmVwbGFjZW1lbnQuY3JlYXRlKCkpKXtsZXQgbD1yLnNwbGl0KC9ccj9cbnxcci8pO2ZvcihsZXQgZD0wO2Q8bC5sZW5ndGg7ZCsrKWQmJnRoaXMuaW5zZXJ0Tm9kZShuLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpLHQsITApLGxbZF0mJnRoaXMuaW5zZXJ0Tm9kZShuLnRleHQobFtkXSksdCwhL1xTLy50ZXN0KGxbZF0pKTtyPSIifWVsc2Ugcj1yLnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKTtlbHNlIGlmKHI9ci5yZXBsYWNlKC9bIFx0XHJcblx1MDAwY10rL2csIiAiKSwvXlsgXHRcclxuXHUwMDBjXS8udGVzdChyKSYmdGhpcy5vcGVuPT10aGlzLm5vZGVzLmxlbmd0aC0xKXtsZXQgbD1pLmNvbnRlbnRbaS5jb250ZW50Lmxlbmd0aC0xXSxkPWUucHJldmlvdXNTaWJsaW5nOyghbHx8ZCYmZC5ub2RlTmFtZT09IkJSInx8bC5pc1RleHQmJi9bIFx0XHJcblx1MDAwY10kLy50ZXN0KGwudGV4dCkpJiYocj1yLnNsaWNlKDEpKX1yJiZ0aGlzLmluc2VydE5vZGUobi50ZXh0KHIpLHQsIS9cUy8udGVzdChyKSksdGhpcy5maW5kSW5UZXh0KGUpfWVsc2UgdGhpcy5maW5kSW5zaWRlKGUpfWFkZEVsZW1lbnQoZSx0LHIpe2xldCBpPXRoaXMubG9jYWxQcmVzZXJ2ZVdTLG89dGhpcy50b3A7KGUudGFnTmFtZT09IlBSRSJ8fC9wcmUvLnRlc3QoZS5zdHlsZSYmZS5zdHlsZS53aGl0ZVNwYWNlKSkmJih0aGlzLmxvY2FsUHJlc2VydmVXUz0hMCk7bGV0IG49ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGw7TmlhLmhhc093blByb3BlcnR5KG4pJiZ0aGlzLnBhcnNlci5ub3JtYWxpemVMaXN0cyYmaERhKGUpO2xldCBkPXRoaXMub3B0aW9ucy5ydWxlRnJvbU5vZGUmJnRoaXMub3B0aW9ucy5ydWxlRnJvbU5vZGUoZSl8fChsPXRoaXMucGFyc2VyLm1hdGNoVGFnKGUsdGhpcyxyKSk7ZTppZihkP2QuaWdub3JlOmZEYS5oYXNPd25Qcm9wZXJ0eShuKSl0aGlzLmZpbmRJbnNpZGUoZSksdGhpcy5pZ25vcmVGYWxsYmFjayhlLHQpO2Vsc2UgaWYoIWR8fGQuc2tpcHx8ZC5jbG9zZVBhcmVudCl7ZCYmZC5jbG9zZVBhcmVudD90aGlzLm9wZW49TWF0aC5tYXgoMCx0aGlzLm9wZW4tMSk6ZCYmZC5za2lwLm5vZGVUeXBlJiYoZT1kLnNraXApO2xldCBjLHA9dGhpcy5uZWVkc0Jsb2NrO2lmKElpYS5oYXNPd25Qcm9wZXJ0eShuKSlvLmNvbnRlbnQubGVuZ3RoJiZvLmNvbnRlbnRbMF0uaXNJbmxpbmUmJnRoaXMub3BlbiYmKHRoaXMub3Blbi0tLG89dGhpcy50b3ApLGM9ITAsby50eXBlfHwodGhpcy5uZWVkc0Jsb2NrPSEwKTtlbHNlIGlmKCFlLmZpcnN0Q2hpbGQpe3RoaXMubGVhZkZhbGxiYWNrKGUsdCk7YnJlYWsgZX1sZXQgdT1kJiZkLnNraXA/dDp0aGlzLnJlYWRTdHlsZXMoZSx0KTt1JiZ0aGlzLmFkZEFsbChlLHUpLGMmJnRoaXMuc3luYyhvKSx0aGlzLm5lZWRzQmxvY2s9cH1lbHNle2xldCBjPXRoaXMucmVhZFN0eWxlcyhlLHQpO2MmJnRoaXMuYWRkRWxlbWVudEJ5UnVsZShlLGQsYyxkLmNvbnN1bWluZz09PSExP2w6dm9pZCAwKX10aGlzLmxvY2FsUHJlc2VydmVXUz1pfWxlYWZGYWxsYmFjayhlLHQpe2Uubm9kZU5hbWU9PSJCUiImJnRoaXMudG9wLnR5cGUmJnRoaXMudG9wLnR5cGUuaW5saW5lQ29udGVudCYmdGhpcy5hZGRUZXh0Tm9kZShlLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYApgKSx0KX1pZ25vcmVGYWxsYmFjayhlLHQpe2Uubm9kZU5hbWU9PSJCUiImJighdGhpcy50b3AudHlwZXx8IXRoaXMudG9wLnR5cGUuaW5saW5lQ29udGVudCkmJnRoaXMuZmluZFBsYWNlKHRoaXMucGFyc2VyLnNjaGVtYS50ZXh0KCItIiksdCwhMCl9cmVhZFN0eWxlcyhlLHQpe2xldCByPWUuc3R5bGU7aWYociYmci5sZW5ndGgpZm9yKGxldCBpPTA7aTx0aGlzLnBhcnNlci5tYXRjaGVkU3R5bGVzLmxlbmd0aDtpKyspe2xldCBvPXRoaXMucGFyc2VyLm1hdGNoZWRTdHlsZXNbaV0sbj1yLmdldFByb3BlcnR5VmFsdWUobyk7aWYobilmb3IobGV0IGw9dm9pZCAwOzspe2xldCBkPXRoaXMucGFyc2VyLm1hdGNoU3R5bGUobyxuLHRoaXMsbCk7aWYoIWQpYnJlYWs7aWYoZC5pZ25vcmUpcmV0dXJuIG51bGw7aWYoZC5jbGVhck1hcms/dD10LmZpbHRlcihjPT4hZC5jbGVhck1hcmsoYykpOnQ9dC5jb25jYXQodGhpcy5wYXJzZXIuc2NoZW1hLm1hcmtzW2QubWFya10uY3JlYXRlKGQuYXR0cnMpKSxkLmNvbnN1bWluZz09PSExKWw9ZDtlbHNlIGJyZWFrfX1yZXR1cm4gdH1hZGRFbGVtZW50QnlSdWxlKGUsdCxyLGkpe2xldCBvLG47aWYodC5ub2RlKWlmKG49dGhpcy5wYXJzZXIuc2NoZW1hLm5vZGVzW3Qubm9kZV0sbi5pc0xlYWYpdGhpcy5pbnNlcnROb2RlKG4uY3JlYXRlKHQuYXR0cnMpLHIsZS5ub2RlTmFtZT09IkJSIil8fHRoaXMubGVhZkZhbGxiYWNrKGUscik7ZWxzZXtsZXQgZD10aGlzLmVudGVyKG4sdC5hdHRyc3x8bnVsbCxyLHQucHJlc2VydmVXaGl0ZXNwYWNlKTtkJiYobz0hMCxyPWQpfWVsc2V7bGV0IGQ9dGhpcy5wYXJzZXIuc2NoZW1hLm1hcmtzW3QubWFya107cj1yLmNvbmNhdChkLmNyZWF0ZSh0LmF0dHJzKSl9bGV0IGw9dGhpcy50b3A7aWYobiYmbi5pc0xlYWYpdGhpcy5maW5kSW5zaWRlKGUpO2Vsc2UgaWYoaSl0aGlzLmFkZEVsZW1lbnQoZSxyLGkpO2Vsc2UgaWYodC5nZXRDb250ZW50KXRoaXMuZmluZEluc2lkZShlKSx0LmdldENvbnRlbnQoZSx0aGlzLnBhcnNlci5zY2hlbWEpLmZvckVhY2goZD0+dGhpcy5pbnNlcnROb2RlKGQsciwhMSkpO2Vsc2V7bGV0IGQ9ZTt0eXBlb2YgdC5jb250ZW50RWxlbWVudD09InN0cmluZyI/ZD1lLnF1ZXJ5U2VsZWN0b3IodC5jb250ZW50RWxlbWVudCk6dHlwZW9mIHQuY29udGVudEVsZW1lbnQ9PSJmdW5jdGlvbiI/ZD10LmNvbnRlbnRFbGVtZW50KGUpOnQuY29udGVudEVsZW1lbnQmJihkPXQuY29udGVudEVsZW1lbnQpLHRoaXMuZmluZEFyb3VuZChlLGQsITApLHRoaXMuYWRkQWxsKGQsciksdGhpcy5maW5kQXJvdW5kKGUsZCwhMSl9byYmdGhpcy5zeW5jKGwpJiZ0aGlzLm9wZW4tLX1hZGRBbGwoZSx0LHIsaSl7bGV0IG89cnx8MDtmb3IobGV0IG49cj9lLmNoaWxkTm9kZXNbcl06ZS5maXJzdENoaWxkLGw9aT09bnVsbD9udWxsOmUuY2hpbGROb2Rlc1tpXTtuIT1sO249bi5uZXh0U2libGluZywrK28pdGhpcy5maW5kQXRQb2ludChlLG8pLHRoaXMuYWRkRE9NKG4sdCk7dGhpcy5maW5kQXRQb2ludChlLG8pfWZpbmRQbGFjZShlLHQscil7bGV0IGksbztmb3IobGV0IG49dGhpcy5vcGVuLGw9MDtuPj0wO24tLSl7bGV0IGQ9dGhpcy5ub2Rlc1tuXSxjPWQuZmluZFdyYXBwaW5nKGUpO2lmKGMmJighaXx8aS5sZW5ndGg+Yy5sZW5ndGgrbCkmJihpPWMsbz1kLCFjLmxlbmd0aCkpYnJlYWs7aWYoZC5zb2xpZCl7aWYocilicmVhaztsKz0yfX1pZighaSlyZXR1cm4gbnVsbDt0aGlzLnN5bmMobyk7Zm9yKGxldCBuPTA7bjxpLmxlbmd0aDtuKyspdD10aGlzLmVudGVySW5uZXIoaVtuXSxudWxsLHQsITEpO3JldHVybiB0fWluc2VydE5vZGUoZSx0LHIpe2lmKGUuaXNJbmxpbmUmJnRoaXMubmVlZHNCbG9jayYmIXRoaXMudG9wLnR5cGUpe2xldCBvPXRoaXMudGV4dGJsb2NrRnJvbUNvbnRleHQoKTtvJiYodD10aGlzLmVudGVySW5uZXIobyxudWxsLHQpKX1sZXQgaT10aGlzLmZpbmRQbGFjZShlLHQscik7aWYoaSl7dGhpcy5jbG9zZUV4dHJhKCk7bGV0IG89dGhpcy50b3A7by5tYXRjaCYmKG8ubWF0Y2g9by5tYXRjaC5tYXRjaFR5cGUoZS50eXBlKSk7bGV0IG49RGEubm9uZTtmb3IobGV0IGwgb2YgaS5jb25jYXQoZS5tYXJrcykpKG8udHlwZT9vLnR5cGUuYWxsb3dzTWFya1R5cGUobC50eXBlKTpGaWEobC50eXBlLGUudHlwZSkpJiYobj1sLmFkZFRvU2V0KG4pKTtyZXR1cm4gby5jb250ZW50LnB1c2goZS5tYXJrKG4pKSwhMH1yZXR1cm4hMX1lbnRlcihlLHQscixpKXtsZXQgbz10aGlzLmZpbmRQbGFjZShlLmNyZWF0ZSh0KSxyLCExKTtyZXR1cm4gbyYmKG89dGhpcy5lbnRlcklubmVyKGUsdCxyLCEwLGkpKSxvfWVudGVySW5uZXIoZSx0LHIsaT0hMSxvKXt0aGlzLmNsb3NlRXh0cmEoKTtsZXQgbj10aGlzLnRvcDtuLm1hdGNoPW4ubWF0Y2gmJm4ubWF0Y2gubWF0Y2hUeXBlKGUpO2xldCBsPVJpYShlLG8sbi5vcHRpb25zKTtuLm9wdGlvbnMmcVUmJm4uY29udGVudC5sZW5ndGg9PTAmJihsfD1xVSk7bGV0IGQ9RGEubm9uZTtyZXR1cm4gcj1yLmZpbHRlcihjPT4obi50eXBlP24udHlwZS5hbGxvd3NNYXJrVHlwZShjLnR5cGUpOkZpYShjLnR5cGUsZSkpPyhkPWMuYWRkVG9TZXQoZCksITEpOiEwKSx0aGlzLm5vZGVzLnB1c2gobmV3IGRtKGUsdCxkLGksbnVsbCxsKSksdGhpcy5vcGVuKysscn1jbG9zZUV4dHJhKGU9ITEpe2xldCB0PXRoaXMubm9kZXMubGVuZ3RoLTE7aWYodD50aGlzLm9wZW4pe2Zvcig7dD50aGlzLm9wZW47dC0tKXRoaXMubm9kZXNbdC0xXS5jb250ZW50LnB1c2godGhpcy5ub2Rlc1t0XS5maW5pc2goZSkpO3RoaXMubm9kZXMubGVuZ3RoPXRoaXMub3BlbisxfX1maW5pc2goKXtyZXR1cm4gdGhpcy5vcGVuPTAsdGhpcy5jbG9zZUV4dHJhKHRoaXMuaXNPcGVuKSx0aGlzLm5vZGVzWzBdLmZpbmlzaCghISh0aGlzLmlzT3Blbnx8dGhpcy5vcHRpb25zLnRvcE9wZW4pKX1zeW5jKGUpe2ZvcihsZXQgdD10aGlzLm9wZW47dD49MDt0LS0pe2lmKHRoaXMubm9kZXNbdF09PWUpcmV0dXJuIHRoaXMub3Blbj10LCEwO3RoaXMubG9jYWxQcmVzZXJ2ZVdTJiYodGhpcy5ub2Rlc1t0XS5vcHRpb25zfD1IVSl9cmV0dXJuITF9Z2V0IGN1cnJlbnRQb3MoKXt0aGlzLmNsb3NlRXh0cmEoKTtsZXQgZT0wO2ZvcihsZXQgdD10aGlzLm9wZW47dD49MDt0LS0pe2xldCByPXRoaXMubm9kZXNbdF0uY29udGVudDtmb3IobGV0IGk9ci5sZW5ndGgtMTtpPj0wO2ktLSllKz1yW2ldLm5vZGVTaXplO3QmJmUrK31yZXR1cm4gZX1maW5kQXRQb2ludChlLHQpe2lmKHRoaXMuZmluZClmb3IobGV0IHI9MDtyPHRoaXMuZmluZC5sZW5ndGg7cisrKXRoaXMuZmluZFtyXS5ub2RlPT1lJiZ0aGlzLmZpbmRbcl0ub2Zmc2V0PT10JiYodGhpcy5maW5kW3JdLnBvcz10aGlzLmN1cnJlbnRQb3MpfWZpbmRJbnNpZGUoZSl7aWYodGhpcy5maW5kKWZvcihsZXQgdD0wO3Q8dGhpcy5maW5kLmxlbmd0aDt0KyspdGhpcy5maW5kW3RdLnBvcz09bnVsbCYmZS5ub2RlVHlwZT09MSYmZS5jb250YWlucyh0aGlzLmZpbmRbdF0ubm9kZSkmJih0aGlzLmZpbmRbdF0ucG9zPXRoaXMuY3VycmVudFBvcyl9ZmluZEFyb3VuZChlLHQscil7aWYoZSE9dCYmdGhpcy5maW5kKWZvcihsZXQgaT0wO2k8dGhpcy5maW5kLmxlbmd0aDtpKyspdGhpcy5maW5kW2ldLnBvcz09bnVsbCYmZS5ub2RlVHlwZT09MSYmZS5jb250YWlucyh0aGlzLmZpbmRbaV0ubm9kZSkmJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcy5maW5kW2ldLm5vZGUpJihyPzI6NCkmJih0aGlzLmZpbmRbaV0ucG9zPXRoaXMuY3VycmVudFBvcyl9ZmluZEluVGV4dChlKXtpZih0aGlzLmZpbmQpZm9yKGxldCB0PTA7dDx0aGlzLmZpbmQubGVuZ3RoO3QrKyl0aGlzLmZpbmRbdF0ubm9kZT09ZSYmKHRoaXMuZmluZFt0XS5wb3M9dGhpcy5jdXJyZW50UG9zLShlLm5vZGVWYWx1ZS5sZW5ndGgtdGhpcy5maW5kW3RdLm9mZnNldCkpfW1hdGNoZXNDb250ZXh0KGUpe2lmKGUuaW5kZXhPZigifCIpPi0xKXJldHVybiBlLnNwbGl0KC9ccypcfFxzKi8pLnNvbWUodGhpcy5tYXRjaGVzQ29udGV4dCx0aGlzKTtsZXQgdD1lLnNwbGl0KCIvIikscj10aGlzLm9wdGlvbnMuY29udGV4dCxpPSF0aGlzLmlzT3BlbiYmKCFyfHxyLnBhcmVudC50eXBlPT10aGlzLm5vZGVzWzBdLnR5cGUpLG89LShyP3IuZGVwdGgrMTowKSsoaT8wOjEpLG49cygobCxkKT0+e2Zvcig7bD49MDtsLS0pe2xldCBjPXRbbF07aWYoYz09IiIpe2lmKGw9PXQubGVuZ3RoLTF8fGw9PTApY29udGludWU7Zm9yKDtkPj1vO2QtLSlpZihuKGwtMSxkKSlyZXR1cm4hMDtyZXR1cm4hMX1lbHNle2xldCBwPWQ+MHx8ZD09MCYmaT90aGlzLm5vZGVzW2RdLnR5cGU6ciYmZD49bz9yLm5vZGUoZC1vKS50eXBlOm51bGw7aWYoIXB8fHAubmFtZSE9YyYmIXAuaXNJbkdyb3VwKGMpKXJldHVybiExO2QtLX19cmV0dXJuITB9LCJtYXRjaCIpO3JldHVybiBuKHQubGVuZ3RoLTEsdGhpcy5vcGVuKX10ZXh0YmxvY2tGcm9tQ29udGV4dCgpe2xldCBlPXRoaXMub3B0aW9ucy5jb250ZXh0O2lmKGUpZm9yKGxldCB0PWUuZGVwdGg7dD49MDt0LS0pe2xldCByPWUubm9kZSh0KS5jb250ZW50TWF0Y2hBdChlLmluZGV4QWZ0ZXIodCkpLmRlZmF1bHRUeXBlO2lmKHImJnIuaXNUZXh0YmxvY2smJnIuZGVmYXVsdEF0dHJzKXJldHVybiByfWZvcihsZXQgdCBpbiB0aGlzLnBhcnNlci5zY2hlbWEubm9kZXMpe2xldCByPXRoaXMucGFyc2VyLnNjaGVtYS5ub2Rlc1t0XTtpZihyLmlzVGV4dGJsb2NrJiZyLmRlZmF1bHRBdHRycylyZXR1cm4gcn19fTtzKGhEYSwibm9ybWFsaXplTGlzdCIpO3MobURhLCJtYXRjaGVzIik7cyhPaWEsImNvcHkiKTtzKEZpYSwibWFya01heUFwcGx5Iik7VzI9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJET01TZXJpYWxpemVyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLm5vZGVzPWUsdGhpcy5tYXJrcz10fXNlcmlhbGl6ZUZyYWdtZW50KGUsdD17fSxyKXtyfHwocj1kS2UodCkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKTtsZXQgaT1yLG89W107cmV0dXJuIGUuZm9yRWFjaChuPT57aWYoby5sZW5ndGh8fG4ubWFya3MubGVuZ3RoKXtsZXQgbD0wLGQ9MDtmb3IoO2w8by5sZW5ndGgmJmQ8bi5tYXJrcy5sZW5ndGg7KXtsZXQgYz1uLm1hcmtzW2RdO2lmKCF0aGlzLm1hcmtzW2MudHlwZS5uYW1lXSl7ZCsrO2NvbnRpbnVlfWlmKCFjLmVxKG9bbF1bMF0pfHxjLnR5cGUuc3BlYy5zcGFubmluZz09PSExKWJyZWFrO2wrKyxkKyt9Zm9yKDtsPG8ubGVuZ3RoOylpPW8ucG9wKClbMV07Zm9yKDtkPG4ubWFya3MubGVuZ3RoOyl7bGV0IGM9bi5tYXJrc1tkKytdLHA9dGhpcy5zZXJpYWxpemVNYXJrKGMsbi5pc0lubGluZSx0KTtwJiYoby5wdXNoKFtjLGldKSxpLmFwcGVuZENoaWxkKHAuZG9tKSxpPXAuY29udGVudERPTXx8cC5kb20pfX1pLmFwcGVuZENoaWxkKHRoaXMuc2VyaWFsaXplTm9kZUlubmVyKG4sdCkpfSkscn1zZXJpYWxpemVOb2RlSW5uZXIoZSx0KXtsZXR7ZG9tOnIsY29udGVudERPTTppfT0kYWUoZEtlKHQpLHRoaXMubm9kZXNbZS50eXBlLm5hbWVdKGUpLG51bGwsZS5hdHRycyk7aWYoaSl7aWYoZS5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNvbnRlbnQgaG9sZSBub3QgYWxsb3dlZCBpbiBhIGxlYWYgbm9kZSBzcGVjIik7dGhpcy5zZXJpYWxpemVGcmFnbWVudChlLmNvbnRlbnQsdCxpKX1yZXR1cm4gcn1zZXJpYWxpemVOb2RlKGUsdD17fSl7bGV0IHI9dGhpcy5zZXJpYWxpemVOb2RlSW5uZXIoZSx0KTtmb3IobGV0IGk9ZS5tYXJrcy5sZW5ndGgtMTtpPj0wO2ktLSl7bGV0IG89dGhpcy5zZXJpYWxpemVNYXJrKGUubWFya3NbaV0sZS5pc0lubGluZSx0KTtvJiYoKG8uY29udGVudERPTXx8by5kb20pLmFwcGVuZENoaWxkKHIpLHI9by5kb20pfXJldHVybiByfXNlcmlhbGl6ZU1hcmsoZSx0LHI9e30pe2xldCBpPXRoaXMubWFya3NbZS50eXBlLm5hbWVdO3JldHVybiBpJiYkYWUoZEtlKHIpLGkoZSx0KSxudWxsLGUuYXR0cnMpfXN0YXRpYyByZW5kZXJTcGVjKGUsdCxyPW51bGwsaSl7cmV0dXJuICRhZShlLHQscixpKX1zdGF0aWMgZnJvbVNjaGVtYShlKXtyZXR1cm4gZS5jYWNoZWQuZG9tU2VyaWFsaXplcnx8KGUuY2FjaGVkLmRvbVNlcmlhbGl6ZXI9bmV3IGEodGhpcy5ub2Rlc0Zyb21TY2hlbWEoZSksdGhpcy5tYXJrc0Zyb21TY2hlbWEoZSkpKX1zdGF0aWMgbm9kZXNGcm9tU2NoZW1hKGUpe2xldCB0PUJpYShlLm5vZGVzKTtyZXR1cm4gdC50ZXh0fHwodC50ZXh0PXI9PnIudGV4dCksdH1zdGF0aWMgbWFya3NGcm9tU2NoZW1hKGUpe3JldHVybiBCaWEoZS5tYXJrcyl9fTtzKEJpYSwiZ2F0aGVyVG9ET00iKTtzKGRLZSwiZG9jIik7SGlhPW5ldyBXZWFrTWFwO3MoZ0RhLCJzdXNwaWNpb3VzQXR0cmlidXRlcyIpO3MoYkRhLCJzdXNwaWNpb3VzQXR0cmlidXRlc0lubmVyIik7cygkYWUsInJlbmRlclNwZWMiKX0pO2Z1bmN0aW9uIHZEYShhLGUpe3JldHVybiBhK2UqVmlhfWZ1bmN0aW9uIGppYShhKXtyZXR1cm4gYSZxaWF9ZnVuY3Rpb24geERhKGEpe3JldHVybihhLShhJnFpYSkpL1ZpYX1mdW5jdGlvbiBwS2UoYSxlLHQpe2xldCByPVtdO2ZvcihsZXQgaT0wO2k8YS5jaGlsZENvdW50O2krKyl7bGV0IG89YS5jaGlsZChpKTtvLmNvbnRlbnQuc2l6ZSYmKG89by5jb3B5KHBLZShvLmNvbnRlbnQsZSxvKSkpLG8uaXNJbmxpbmUmJihvPWUobyx0LGkpKSxyLnB1c2gobyl9cmV0dXJuIGplLmZyb21BcnJheShyKX1mdW5jdGlvbiBmS2UoYSxlLHQpe2xldCByPWEucmVzb2x2ZShlKSxpPXQtZSxvPXIuZGVwdGg7Zm9yKDtpPjAmJm8+MCYmci5pbmRleEFmdGVyKG8pPT1yLm5vZGUobykuY2hpbGRDb3VudDspby0tLGktLTtpZihpPjApe2xldCBuPXIubm9kZShvKS5tYXliZUNoaWxkKHIuaW5kZXhBZnRlcihvKSk7Zm9yKDtpPjA7KXtpZighbnx8bi5pc0xlYWYpcmV0dXJuITA7bj1uLmZpcnN0Q2hpbGQsaS0tfX1yZXR1cm4hMX1mdW5jdGlvbiB5RGEoYSxlLHQscil7bGV0IGk9W10sbz1bXSxuLGw7YS5kb2Mubm9kZXNCZXR3ZWVuKGUsdCwoZCxjLHApPT57aWYoIWQuaXNJbmxpbmUpcmV0dXJuO2xldCB1PWQubWFya3M7aWYoIXIuaXNJblNldCh1KSYmcC50eXBlLmFsbG93c01hcmtUeXBlKHIudHlwZSkpe2xldCBtPU1hdGgubWF4KGMsZSksdj1NYXRoLm1pbihjK2Qubm9kZVNpemUsdCkseD1yLmFkZFRvU2V0KHUpO2ZvcihsZXQgYj0wO2I8dS5sZW5ndGg7YisrKXVbYl0uaXNJblNldCh4KXx8KG4mJm4udG89PW0mJm4ubWFyay5lcSh1W2JdKT9uLnRvPXY6aS5wdXNoKG49bmV3IGY0KG0sdix1W2JdKSkpO2wmJmwudG89PW0/bC50bz12Om8ucHVzaChsPW5ldyBobShtLHYscikpfX0pLGkuZm9yRWFjaChkPT5hLnN0ZXAoZCkpLG8uZm9yRWFjaChkPT5hLnN0ZXAoZCkpfWZ1bmN0aW9uIHdEYShhLGUsdCxyKXtsZXQgaT1bXSxvPTA7YS5kb2Mubm9kZXNCZXR3ZWVuKGUsdCwobixsKT0+e2lmKCFuLmlzSW5saW5lKXJldHVybjtvKys7bGV0IGQ9bnVsbDtpZihyIGluc3RhbmNlb2YgdW0pe2xldCBjPW4ubWFya3MscDtmb3IoO3A9ci5pc0luU2V0KGMpOykoZHx8KGQ9W10pKS5wdXNoKHApLGM9cC5yZW1vdmVGcm9tU2V0KGMpfWVsc2Ugcj9yLmlzSW5TZXQobi5tYXJrcykmJihkPVtyXSk6ZD1uLm1hcmtzO2lmKGQmJmQubGVuZ3RoKXtsZXQgYz1NYXRoLm1pbihsK24ubm9kZVNpemUsdCk7Zm9yKGxldCBwPTA7cDxkLmxlbmd0aDtwKyspe2xldCB1PWRbcF0sbTtmb3IobGV0IHY9MDt2PGkubGVuZ3RoO3YrKyl7bGV0IHg9aVt2XTt4LnN0ZXA9PW8tMSYmdS5lcShpW3ZdLnN0eWxlKSYmKG09eCl9bT8obS50bz1jLG0uc3RlcD1vKTppLnB1c2goe3N0eWxlOnUsZnJvbTpNYXRoLm1heChsLGUpLHRvOmMsc3RlcDpvfSl9fX0pLGkuZm9yRWFjaChuPT5hLnN0ZXAobmV3IGY0KG4uZnJvbSxuLnRvLG4uc3R5bGUpKSl9ZnVuY3Rpb24gaEtlKGEsZSx0LHI9dC5jb250ZW50TWF0Y2gsaT0hMCl7bGV0IG89YS5kb2Mubm9kZUF0KGUpLG49W10sbD1lKzE7Zm9yKGxldCBkPTA7ZDxvLmNoaWxkQ291bnQ7ZCsrKXtsZXQgYz1vLmNoaWxkKGQpLHA9bCtjLm5vZGVTaXplLHU9ci5tYXRjaFR5cGUoYy50eXBlKTtpZighdSluLnB1c2gobmV3IFpzKGwscCxzdC5lbXB0eSkpO2Vsc2V7cj11O2ZvcihsZXQgbT0wO208Yy5tYXJrcy5sZW5ndGg7bSsrKXQuYWxsb3dzTWFya1R5cGUoYy5tYXJrc1ttXS50eXBlKXx8YS5zdGVwKG5ldyBmNChsLHAsYy5tYXJrc1ttXSkpO2lmKGkmJmMuaXNUZXh0JiZ0LndoaXRlc3BhY2UhPSJwcmUiKXtsZXQgbSx2PS9ccj9cbnxcci9nLHg7Zm9yKDttPXYuZXhlYyhjLnRleHQpOyl4fHwoeD1uZXcgc3QoamUuZnJvbSh0LnNjaGVtYS50ZXh0KCIgIix0LmFsbG93ZWRNYXJrcyhjLm1hcmtzKSkpLDAsMCkpLG4ucHVzaChuZXcgWnMobCttLmluZGV4LGwrbS5pbmRleCttWzBdLmxlbmd0aCx4KSl9fWw9cH1pZighci52YWxpZEVuZCl7bGV0IGQ9ci5maWxsQmVmb3JlKGplLmVtcHR5LCEwKTthLnJlcGxhY2UobCxsLG5ldyBzdChkLDAsMCkpfWZvcihsZXQgZD1uLmxlbmd0aC0xO2Q+PTA7ZC0tKWEuc3RlcChuW2RdKX1mdW5jdGlvbiBNRGEoYSxlLHQpe3JldHVybihlPT0wfHxhLmNhblJlcGxhY2UoZSxhLmNoaWxkQ291bnQpKSYmKHQ9PWEuY2hpbGRDb3VudHx8YS5jYW5SZXBsYWNlKDAsdCkpfWZ1bmN0aW9uIFkyKGEpe2xldCB0PWEucGFyZW50LmNvbnRlbnQuY3V0QnlJbmRleChhLnN0YXJ0SW5kZXgsYS5lbmRJbmRleCk7Zm9yKGxldCByPWEuZGVwdGgsaT0wLG89MDs7LS1yKXtsZXQgbj1hLiRmcm9tLm5vZGUociksbD1hLiRmcm9tLmluZGV4KHIpK2ksZD1hLiR0by5pbmRleEFmdGVyKHIpLW87aWYocjxhLmRlcHRoJiZuLmNhblJlcGxhY2UobCxkLHQpKXJldHVybiByO2lmKHI9PTB8fG4udHlwZS5zcGVjLmlzb2xhdGluZ3x8IU1EYShuLGwsZCkpYnJlYWs7bCYmKGk9MSksZDxuLmNoaWxkQ291bnQmJihvPTEpfXJldHVybiBudWxsfWZ1bmN0aW9uIGtEYShhLGUsdCl7bGV0eyRmcm9tOnIsJHRvOmksZGVwdGg6b309ZSxuPXIuYmVmb3JlKG8rMSksbD1pLmFmdGVyKG8rMSksZD1uLGM9bCxwPWplLmVtcHR5LHU9MDtmb3IobGV0IHg9byxiPSExO3g+dDt4LS0pYnx8ci5pbmRleCh4KT4wPyhiPSEwLHA9amUuZnJvbShyLm5vZGUoeCkuY29weShwKSksdSsrKTpkLS07bGV0IG09amUuZW1wdHksdj0wO2ZvcihsZXQgeD1vLGI9ITE7eD50O3gtLSlifHxpLmFmdGVyKHgrMSk8aS5lbmQoeCk/KGI9ITAsbT1qZS5mcm9tKGkubm9kZSh4KS5jb3B5KG0pKSx2KyspOmMrKzthLnN0ZXAobmV3IHRzKGQsYyxuLGwsbmV3IHN0KHAuYXBwZW5kKG0pLHUsdikscC5zaXplLXUsITApKX1mdW5jdGlvbiBCZihhLGUsdD1udWxsLHI9YSl7bGV0IGk9U0RhKGEsZSksbz1pJiZ6RGEocixlKTtyZXR1cm4gbz9pLm1hcChZaWEpLmNvbmNhdCh7dHlwZTplLGF0dHJzOnR9KS5jb25jYXQoby5tYXAoWWlhKSk6bnVsbH1mdW5jdGlvbiBZaWEoYSl7cmV0dXJue3R5cGU6YSxhdHRyczpudWxsfX1mdW5jdGlvbiBTRGEoYSxlKXtsZXR7cGFyZW50OnQsc3RhcnRJbmRleDpyLGVuZEluZGV4Oml9PWEsbz10LmNvbnRlbnRNYXRjaEF0KHIpLmZpbmRXcmFwcGluZyhlKTtpZighbylyZXR1cm4gbnVsbDtsZXQgbj1vLmxlbmd0aD9vWzBdOmU7cmV0dXJuIHQuY2FuUmVwbGFjZVdpdGgocixpLG4pP286bnVsbH1mdW5jdGlvbiB6RGEoYSxlKXtsZXR7cGFyZW50OnQsc3RhcnRJbmRleDpyLGVuZEluZGV4Oml9PWEsbz10LmNoaWxkKHIpLG49ZS5jb250ZW50TWF0Y2guZmluZFdyYXBwaW5nKG8udHlwZSk7aWYoIW4pcmV0dXJuIG51bGw7bGV0IGQ9KG4ubGVuZ3RoP25bbi5sZW5ndGgtMV06ZSkuY29udGVudE1hdGNoO2ZvcihsZXQgYz1yO2QmJmM8aTtjKyspZD1kLm1hdGNoVHlwZSh0LmNoaWxkKGMpLnR5cGUpO3JldHVybiFkfHwhZC52YWxpZEVuZD9udWxsOm59ZnVuY3Rpb24gQ0RhKGEsZSx0KXtsZXQgcj1qZS5lbXB0eTtmb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wO24tLSl7aWYoci5zaXplKXtsZXQgbD10W25dLnR5cGUuY29udGVudE1hdGNoLm1hdGNoRnJhZ21lbnQocik7aWYoIWx8fCFsLnZhbGlkRW5kKXRocm93IG5ldyBSYW5nZUVycm9yKCJXcmFwcGVyIHR5cGUgZ2l2ZW4gdG8gVHJhbnNmb3JtLndyYXAgZG9lcyBub3QgZm9ybSB2YWxpZCBjb250ZW50IG9mIGl0cyBwYXJlbnQgd3JhcHBlciIpfXI9amUuZnJvbSh0W25dLnR5cGUuY3JlYXRlKHRbbl0uYXR0cnMscikpfWxldCBpPWUuc3RhcnQsbz1lLmVuZDthLnN0ZXAobmV3IHRzKGksbyxpLG8sbmV3IHN0KHIsMCwwKSx0Lmxlbmd0aCwhMCkpfWZ1bmN0aW9uIF9EYShhLGUsdCxyLGkpe2lmKCFyLmlzVGV4dGJsb2NrKXRocm93IG5ldyBSYW5nZUVycm9yKCJUeXBlIGdpdmVuIHRvIHNldEJsb2NrVHlwZSBzaG91bGQgYmUgYSB0ZXh0YmxvY2siKTtsZXQgbz1hLnN0ZXBzLmxlbmd0aDthLmRvYy5ub2Rlc0JldHdlZW4oZSx0LChuLGwpPT57bGV0IGQ9dHlwZW9mIGk9PSJmdW5jdGlvbiI/aShuKTppO2lmKG4uaXNUZXh0YmxvY2smJiFuLmhhc01hcmt1cChyLGQpJiZURGEoYS5kb2MsYS5tYXBwaW5nLnNsaWNlKG8pLm1hcChsKSxyKSl7bGV0IGM9bnVsbDtpZihyLnNjaGVtYS5saW5lYnJlYWtSZXBsYWNlbWVudCl7bGV0IHY9ci53aGl0ZXNwYWNlPT0icHJlIix4PSEhci5jb250ZW50TWF0Y2gubWF0Y2hUeXBlKHIuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50KTt2JiYheD9jPSExOiF2JiZ4JiYoYz0hMCl9Yz09PSExJiZaaWEoYSxuLGwsbyksaEtlKGEsYS5tYXBwaW5nLnNsaWNlKG8pLm1hcChsLDEpLHIsdm9pZCAwLGM9PT1udWxsKTtsZXQgcD1hLm1hcHBpbmcuc2xpY2UobyksdT1wLm1hcChsLDEpLG09cC5tYXAobCtuLm5vZGVTaXplLDEpO3JldHVybiBhLnN0ZXAobmV3IHRzKHUsbSx1KzEsbS0xLG5ldyBzdChqZS5mcm9tKHIuY3JlYXRlKGQsbnVsbCxuLm1hcmtzKSksMCwwKSwxLCEwKSksYz09PSEwJiZLaWEoYSxuLGwsbyksITF9fSl9ZnVuY3Rpb24gS2lhKGEsZSx0LHIpe2UuZm9yRWFjaCgoaSxvKT0+e2lmKGkuaXNUZXh0KXtsZXQgbixsPS9ccj9cbnxcci9nO2Zvcig7bj1sLmV4ZWMoaS50ZXh0KTspe2xldCBkPWEubWFwcGluZy5zbGljZShyKS5tYXAodCsxK28rbi5pbmRleCk7YS5yZXBsYWNlV2l0aChkLGQrMSxlLnR5cGUuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpKX19fSl9ZnVuY3Rpb24gWmlhKGEsZSx0LHIpe2UuZm9yRWFjaCgoaSxvKT0+e2lmKGkudHlwZT09aS50eXBlLnNjaGVtYS5saW5lYnJlYWtSZXBsYWNlbWVudCl7bGV0IG49YS5tYXBwaW5nLnNsaWNlKHIpLm1hcCh0KzErbyk7YS5yZXBsYWNlV2l0aChuLG4rMSxlLnR5cGUuc2NoZW1hLnRleHQoYApgKSl9fSl9ZnVuY3Rpb24gVERhKGEsZSx0KXtsZXQgcj1hLnJlc29sdmUoZSksaT1yLmluZGV4KCk7cmV0dXJuIHIucGFyZW50LmNhblJlcGxhY2VXaXRoKGksaSsxLHQpfWZ1bmN0aW9uIExEYShhLGUsdCxyLGkpe2xldCBvPWEuZG9jLm5vZGVBdChlKTtpZighbyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTm8gbm9kZSBhdCBnaXZlbiBwb3NpdGlvbiIpO3R8fCh0PW8udHlwZSk7bGV0IG49dC5jcmVhdGUocixudWxsLGl8fG8ubWFya3MpO2lmKG8uaXNMZWFmKXJldHVybiBhLnJlcGxhY2VXaXRoKGUsZStvLm5vZGVTaXplLG4pO2lmKCF0LnZhbGlkQ29udGVudChvLmNvbnRlbnQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGNvbnRlbnQgZm9yIG5vZGUgdHlwZSAiK3QubmFtZSk7YS5zdGVwKG5ldyB0cyhlLGUrby5ub2RlU2l6ZSxlKzEsZStvLm5vZGVTaXplLTEsbmV3IHN0KGplLmZyb20obiksMCwwKSwxLCEwKSl9ZnVuY3Rpb24gTm8oYSxlLHQ9MSxyKXtsZXQgaT1hLnJlc29sdmUoZSksbz1pLmRlcHRoLXQsbj1yJiZyW3IubGVuZ3RoLTFdfHxpLnBhcmVudDtpZihvPDB8fGkucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmd8fCFpLnBhcmVudC5jYW5SZXBsYWNlKGkuaW5kZXgoKSxpLnBhcmVudC5jaGlsZENvdW50KXx8IW4udHlwZS52YWxpZENvbnRlbnQoaS5wYXJlbnQuY29udGVudC5jdXRCeUluZGV4KGkuaW5kZXgoKSxpLnBhcmVudC5jaGlsZENvdW50KSkpcmV0dXJuITE7Zm9yKGxldCBjPWkuZGVwdGgtMSxwPXQtMjtjPm87Yy0tLHAtLSl7bGV0IHU9aS5ub2RlKGMpLG09aS5pbmRleChjKTtpZih1LnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0IHY9dS5jb250ZW50LmN1dEJ5SW5kZXgobSx1LmNoaWxkQ291bnQpLHg9ciYmcltwKzFdO3gmJih2PXYucmVwbGFjZUNoaWxkKDAseC50eXBlLmNyZWF0ZSh4LmF0dHJzKSkpO2xldCBiPXImJnJbcF18fHU7aWYoIXUuY2FuUmVwbGFjZShtKzEsdS5jaGlsZENvdW50KXx8IWIudHlwZS52YWxpZENvbnRlbnQodikpcmV0dXJuITF9bGV0IGw9aS5pbmRleEFmdGVyKG8pLGQ9ciYmclswXTtyZXR1cm4gaS5ub2RlKG8pLmNhblJlcGxhY2VXaXRoKGwsbCxkP2QudHlwZTppLm5vZGUobysxKS50eXBlKX1mdW5jdGlvbiAkRGEoYSxlLHQ9MSxyKXtsZXQgaT1hLmRvYy5yZXNvbHZlKGUpLG89amUuZW1wdHksbj1qZS5lbXB0eTtmb3IobGV0IGw9aS5kZXB0aCxkPWkuZGVwdGgtdCxjPXQtMTtsPmQ7bC0tLGMtLSl7bz1qZS5mcm9tKGkubm9kZShsKS5jb3B5KG8pKTtsZXQgcD1yJiZyW2NdO249amUuZnJvbShwP3AudHlwZS5jcmVhdGUocC5hdHRycyxuKTppLm5vZGUobCkuY29weShuKSl9YS5zdGVwKG5ldyBacyhlLGUsbmV3IHN0KG8uYXBwZW5kKG4pLHQsdCksITApKX1mdW5jdGlvbiBzbihhLGUpe2xldCB0PWEucmVzb2x2ZShlKSxyPXQuaW5kZXgoKTtyZXR1cm4gWGlhKHQubm9kZUJlZm9yZSx0Lm5vZGVBZnRlcikmJnQucGFyZW50LmNhblJlcGxhY2UocixyKzEpfWZ1bmN0aW9uIEREYShhLGUpe2UuY29udGVudC5zaXplfHxhLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQoZS50eXBlKTtsZXQgdD1hLmNvbnRlbnRNYXRjaEF0KGEuY2hpbGRDb3VudCkse2xpbmVicmVha1JlcGxhY2VtZW50OnJ9PWEudHlwZS5zY2hlbWE7Zm9yKGxldCBpPTA7aTxlLmNoaWxkQ291bnQ7aSsrKXtsZXQgbz1lLmNoaWxkKGkpLG49by50eXBlPT1yP2EudHlwZS5zY2hlbWEubm9kZXMudGV4dDpvLnR5cGU7aWYodD10Lm1hdGNoVHlwZShuKSwhdHx8IWEudHlwZS5hbGxvd3NNYXJrcyhvLm1hcmtzKSlyZXR1cm4hMX1yZXR1cm4gdC52YWxpZEVuZH1mdW5jdGlvbiBYaWEoYSxlKXtyZXR1cm4hIShhJiZlJiYhYS5pc0xlYWYmJkREYShhLGUpKX1mdW5jdGlvbiBIZihhLGUsdD0tMSl7bGV0IHI9YS5yZXNvbHZlKGUpO2ZvcihsZXQgaT1yLmRlcHRoOztpLS0pe2xldCBvLG4sbD1yLmluZGV4KGkpO2lmKGk9PXIuZGVwdGg/KG89ci5ub2RlQmVmb3JlLG49ci5ub2RlQWZ0ZXIpOnQ+MD8obz1yLm5vZGUoaSsxKSxsKyssbj1yLm5vZGUoaSkubWF5YmVDaGlsZChsKSk6KG89ci5ub2RlKGkpLm1heWJlQ2hpbGQobC0xKSxuPXIubm9kZShpKzEpKSxvJiYhby5pc1RleHRibG9jayYmWGlhKG8sbikmJnIubm9kZShpKS5jYW5SZXBsYWNlKGwsbCsxKSlyZXR1cm4gZTtpZihpPT0wKWJyZWFrO2U9dDwwP3IuYmVmb3JlKGkpOnIuYWZ0ZXIoaSl9fWZ1bmN0aW9uIEFEYShhLGUsdCl7bGV0IHI9bnVsbCx7bGluZWJyZWFrUmVwbGFjZW1lbnQ6aX09YS5kb2MudHlwZS5zY2hlbWEsbz1hLmRvYy5yZXNvbHZlKGUtdCksbj1vLm5vZGUoKS50eXBlO2lmKGkmJm4uaW5saW5lQ29udGVudCl7bGV0IHA9bi53aGl0ZXNwYWNlPT0icHJlIix1PSEhbi5jb250ZW50TWF0Y2gubWF0Y2hUeXBlKGkpO3AmJiF1P3I9ITE6IXAmJnUmJihyPSEwKX1sZXQgbD1hLnN0ZXBzLmxlbmd0aDtpZihyPT09ITEpe2xldCBwPWEuZG9jLnJlc29sdmUoZSt0KTtaaWEoYSxwLm5vZGUoKSxwLmJlZm9yZSgpLGwpfW4uaW5saW5lQ29udGVudCYmaEtlKGEsZSt0LTEsbixvLm5vZGUoKS5jb250ZW50TWF0Y2hBdChvLmluZGV4KCkpLHI9PW51bGwpO2xldCBkPWEubWFwcGluZy5zbGljZShsKSxjPWQubWFwKGUtdCk7aWYoYS5zdGVwKG5ldyBacyhjLGQubWFwKGUrdCwtMSksc3QuZW1wdHksITApKSxyPT09ITApe2xldCBwPWEuZG9jLnJlc29sdmUoYyk7S2lhKGEscC5ub2RlKCkscC5iZWZvcmUoKSxhLnN0ZXBzLmxlbmd0aCl9cmV0dXJuIGF9ZnVuY3Rpb24gUWlhKGEsZSx0KXtsZXQgcj1hLnJlc29sdmUoZSk7aWYoci5wYXJlbnQuY2FuUmVwbGFjZVdpdGgoci5pbmRleCgpLHIuaW5kZXgoKSx0KSlyZXR1cm4gZTtpZihyLnBhcmVudE9mZnNldD09MClmb3IobGV0IGk9ci5kZXB0aC0xO2k+PTA7aS0tKXtsZXQgbz1yLmluZGV4KGkpO2lmKHIubm9kZShpKS5jYW5SZXBsYWNlV2l0aChvLG8sdCkpcmV0dXJuIHIuYmVmb3JlKGkrMSk7aWYobz4wKXJldHVybiBudWxsfWlmKHIucGFyZW50T2Zmc2V0PT1yLnBhcmVudC5jb250ZW50LnNpemUpZm9yKGxldCBpPXIuZGVwdGgtMTtpPj0wO2ktLSl7bGV0IG89ci5pbmRleEFmdGVyKGkpO2lmKHIubm9kZShpKS5jYW5SZXBsYWNlV2l0aChvLG8sdCkpcmV0dXJuIHIuYWZ0ZXIoaSsxKTtpZihvPHIubm9kZShpKS5jaGlsZENvdW50KXJldHVybiBudWxsfXJldHVybiBudWxsfWZ1bmN0aW9uIEdVKGEsZSx0KXtsZXQgcj1hLnJlc29sdmUoZSk7aWYoIXQuY29udGVudC5zaXplKXJldHVybiBlO2xldCBpPXQuY29udGVudDtmb3IobGV0IG89MDtvPHQub3BlblN0YXJ0O28rKylpPWkuZmlyc3RDaGlsZC5jb250ZW50O2ZvcihsZXQgbz0xO288PSh0Lm9wZW5TdGFydD09MCYmdC5zaXplPzI6MSk7bysrKWZvcihsZXQgbj1yLmRlcHRoO24+PTA7bi0tKXtsZXQgbD1uPT1yLmRlcHRoPzA6ci5wb3M8PShyLnN0YXJ0KG4rMSkrci5lbmQobisxKSkvMj8tMToxLGQ9ci5pbmRleChuKSsobD4wPzE6MCksYz1yLm5vZGUobikscD0hMTtpZihvPT0xKXA9Yy5jYW5SZXBsYWNlKGQsZCxpKTtlbHNle2xldCB1PWMuY29udGVudE1hdGNoQXQoZCkuZmluZFdyYXBwaW5nKGkuZmlyc3RDaGlsZC50eXBlKTtwPXUmJmMuY2FuUmVwbGFjZVdpdGgoZCxkLHVbMF0pfWlmKHApcmV0dXJuIGw9PTA/ci5wb3M6bDwwP3IuYmVmb3JlKG4rMSk6ci5hZnRlcihuKzEpfXJldHVybiBudWxsfWZ1bmN0aW9uIGJtKGEsZSx0PWUscj1zdC5lbXB0eSl7aWYoZT09dCYmIXIuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgaT1hLnJlc29sdmUoZSksbz1hLnJlc29sdmUodCk7cmV0dXJuIEppYShpLG8scik/bmV3IFpzKGUsdCxyKTpuZXcgbUtlKGksbyxyKS5maXQoKX1mdW5jdGlvbiBKaWEoYSxlLHQpe3JldHVybiF0Lm9wZW5TdGFydCYmIXQub3BlbkVuZCYmYS5zdGFydCgpPT1lLnN0YXJ0KCkmJmEucGFyZW50LmNhblJlcGxhY2UoYS5pbmRleCgpLGUuaW5kZXgoKSx0LmNvbnRlbnQpfWZ1bmN0aW9uIFZVKGEsZSx0KXtyZXR1cm4gZT09MD9hLmN1dEJ5SW5kZXgodCxhLmNoaWxkQ291bnQpOmEucmVwbGFjZUNoaWxkKDAsYS5maXJzdENoaWxkLmNvcHkoVlUoYS5maXJzdENoaWxkLmNvbnRlbnQsZS0xLHQpKSl9ZnVuY3Rpb24galUoYSxlLHQpe3JldHVybiBlPT0wP2EuYXBwZW5kKHQpOmEucmVwbGFjZUNoaWxkKGEuY2hpbGRDb3VudC0xLGEubGFzdENoaWxkLmNvcHkoalUoYS5sYXN0Q2hpbGQuY29udGVudCxlLTEsdCkpKX1mdW5jdGlvbiBnS2UoYSxlKXtmb3IobGV0IHQ9MDt0PGU7dCsrKWE9YS5maXJzdENoaWxkLmNvbnRlbnQ7cmV0dXJuIGF9ZnVuY3Rpb24gZW9hKGEsZSx0KXtpZihlPD0wKXJldHVybiBhO2xldCByPWEuY29udGVudDtyZXR1cm4gZT4xJiYocj1yLnJlcGxhY2VDaGlsZCgwLGVvYShyLmZpcnN0Q2hpbGQsZS0xLHIuY2hpbGRDb3VudD09MT90LTE6MCkpKSxlPjAmJihyPWEudHlwZS5jb250ZW50TWF0Y2guZmlsbEJlZm9yZShyKS5hcHBlbmQociksdDw9MCYmKHI9ci5hcHBlbmQoYS50eXBlLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KHIpLmZpbGxCZWZvcmUoamUuZW1wdHksITApKSkpLGEuY29weShyKX1mdW5jdGlvbiBiS2UoYSxlLHQscixpKXtsZXQgbz1hLm5vZGUoZSksbj1pP2EuaW5kZXhBZnRlcihlKTphLmluZGV4KGUpO2lmKG49PW8uY2hpbGRDb3VudCYmIXQuY29tcGF0aWJsZUNvbnRlbnQoby50eXBlKSlyZXR1cm4gbnVsbDtsZXQgbD1yLmZpbGxCZWZvcmUoby5jb250ZW50LCEwLG4pO3JldHVybiBsJiYhUERhKHQsby5jb250ZW50LG4pP2w6bnVsbH1mdW5jdGlvbiBQRGEoYSxlLHQpe2ZvcihsZXQgcj10O3I8ZS5jaGlsZENvdW50O3IrKylpZighYS5hbGxvd3NNYXJrcyhlLmNoaWxkKHIpLm1hcmtzKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBFRGEoYSl7cmV0dXJuIGEuc3BlYy5kZWZpbmluZ3x8YS5zcGVjLmRlZmluaW5nRm9yQ29udGVudH1mdW5jdGlvbiBJRGEoYSxlLHQscil7aWYoIXIuc2l6ZSlyZXR1cm4gYS5kZWxldGVSYW5nZShlLHQpO2xldCBpPWEuZG9jLnJlc29sdmUoZSksbz1hLmRvYy5yZXNvbHZlKHQpO2lmKEppYShpLG8scikpcmV0dXJuIGEuc3RlcChuZXcgWnMoZSx0LHIpKTtsZXQgbj1hb2EoaSxvKTtuW24ubGVuZ3RoLTFdPT0wJiZuLnBvcCgpO2xldCBsPS0oaS5kZXB0aCsxKTtuLnVuc2hpZnQobCk7Zm9yKGxldCBtPWkuZGVwdGgsdj1pLnBvcy0xO20+MDttLS0sdi0tKXtsZXQgeD1pLm5vZGUobSkudHlwZS5zcGVjO2lmKHguZGVmaW5pbmd8fHguZGVmaW5pbmdBc0NvbnRleHR8fHguaXNvbGF0aW5nKWJyZWFrO24uaW5kZXhPZihtKT4tMT9sPW06aS5iZWZvcmUobSk9PXYmJm4uc3BsaWNlKDEsMCwtbSl9bGV0IGQ9bi5pbmRleE9mKGwpLGM9W10scD1yLm9wZW5TdGFydDtmb3IobGV0IG09ci5jb250ZW50LHY9MDs7disrKXtsZXQgeD1tLmZpcnN0Q2hpbGQ7aWYoYy5wdXNoKHgpLHY9PXIub3BlblN0YXJ0KWJyZWFrO209eC5jb250ZW50fWZvcihsZXQgbT1wLTE7bT49MDttLS0pe2xldCB2PWNbbV0seD1FRGEodi50eXBlKTtpZih4JiYhdi5zYW1lTWFya3VwKGkubm9kZShNYXRoLmFicyhsKS0xKSkpcD1tO2Vsc2UgaWYoeHx8IXYudHlwZS5pc1RleHRibG9jaylicmVha31mb3IobGV0IG09ci5vcGVuU3RhcnQ7bT49MDttLS0pe2xldCB2PShtK3ArMSklKHIub3BlblN0YXJ0KzEpLHg9Y1t2XTtpZih4KWZvcihsZXQgYj0wO2I8bi5sZW5ndGg7YisrKXtsZXQgZz1uWyhiK2QpJW4ubGVuZ3RoXSx5PSEwO2c8MCYmKHk9ITEsZz0tZyk7bGV0IGs9aS5ub2RlKGctMSksQz1pLmluZGV4KGctMSk7aWYoay5jYW5SZXBsYWNlV2l0aChDLEMseC50eXBlLHgubWFya3MpKXJldHVybiBhLnJlcGxhY2UoaS5iZWZvcmUoZykseT9vLmFmdGVyKGcpOnQsbmV3IHN0KHRvYShyLmNvbnRlbnQsMCxyLm9wZW5TdGFydCx2KSx2LHIub3BlbkVuZCkpfX1sZXQgdT1hLnN0ZXBzLmxlbmd0aDtmb3IobGV0IG09bi5sZW5ndGgtMTttPj0wJiYoYS5yZXBsYWNlKGUsdCxyKSwhKGEuc3RlcHMubGVuZ3RoPnUpKTttLS0pe2xldCB2PW5bbV07djwwfHwoZT1pLmJlZm9yZSh2KSx0PW8uYWZ0ZXIodikpfX1mdW5jdGlvbiB0b2EoYSxlLHQscixpKXtpZihlPHQpe2xldCBvPWEuZmlyc3RDaGlsZDthPWEucmVwbGFjZUNoaWxkKDAsby5jb3B5KHRvYShvLmNvbnRlbnQsZSsxLHQscixvKSkpfWlmKGU+cil7bGV0IG89aS5jb250ZW50TWF0Y2hBdCgwKSxuPW8uZmlsbEJlZm9yZShhKS5hcHBlbmQoYSk7YT1uLmFwcGVuZChvLm1hdGNoRnJhZ21lbnQobikuZmlsbEJlZm9yZShqZS5lbXB0eSwhMCkpfXJldHVybiBhfWZ1bmN0aW9uIE5EYShhLGUsdCxyKXtpZighci5pc0lubGluZSYmZT09dCYmYS5kb2MucmVzb2x2ZShlKS5wYXJlbnQuY29udGVudC5zaXplKXtsZXQgaT1RaWEoYS5kb2MsZSxyLnR5cGUpO2khPW51bGwmJihlPXQ9aSl9YS5yZXBsYWNlUmFuZ2UoZSx0LG5ldyBzdChqZS5mcm9tKHIpLDAsMCkpfWZ1bmN0aW9uIFJEYShhLGUsdCl7bGV0IHI9YS5kb2MucmVzb2x2ZShlKSxpPWEuZG9jLnJlc29sdmUodCk7aWYoci5wYXJlbnQuaXNUZXh0YmxvY2smJmkucGFyZW50LmlzVGV4dGJsb2NrJiZyLnN0YXJ0KCkhPWkuc3RhcnQoKSYmci5wYXJlbnRPZmZzZXQ9PTAmJmkucGFyZW50T2Zmc2V0PT0wKXtsZXQgbj1yLnNoYXJlZERlcHRoKHQpLGw9ITE7Zm9yKGxldCBkPXIuZGVwdGg7ZD5uO2QtLSlyLm5vZGUoZCkudHlwZS5zcGVjLmlzb2xhdGluZyYmKGw9ITApO2ZvcihsZXQgZD1pLmRlcHRoO2Q+bjtkLS0paS5ub2RlKGQpLnR5cGUuc3BlYy5pc29sYXRpbmcmJihsPSEwKTtpZighbCl7Zm9yKGxldCBkPXIuZGVwdGg7ZD4wJiZlPT1yLnN0YXJ0KGQpO2QtLSllPXIuYmVmb3JlKGQpO2ZvcihsZXQgZD1pLmRlcHRoO2Q+MCYmdD09aS5zdGFydChkKTtkLS0pdD1pLmJlZm9yZShkKTtyPWEuZG9jLnJlc29sdmUoZSksaT1hLmRvYy5yZXNvbHZlKHQpfX1sZXQgbz1hb2EocixpKTtmb3IobGV0IG49MDtuPG8ubGVuZ3RoO24rKyl7bGV0IGw9b1tuXSxkPW49PW8ubGVuZ3RoLTE7aWYoZCYmbD09MHx8ci5ub2RlKGwpLnR5cGUuY29udGVudE1hdGNoLnZhbGlkRW5kKXJldHVybiBhLmRlbGV0ZShyLnN0YXJ0KGwpLGkuZW5kKGwpKTtpZihsPjAmJihkfHxyLm5vZGUobC0xKS5jYW5SZXBsYWNlKHIuaW5kZXgobC0xKSxpLmluZGV4QWZ0ZXIobC0xKSkpKXJldHVybiBhLmRlbGV0ZShyLmJlZm9yZShsKSxpLmFmdGVyKGwpKX1mb3IobGV0IG49MTtuPD1yLmRlcHRoJiZuPD1pLmRlcHRoO24rKylpZihlLXIuc3RhcnQobik9PXIuZGVwdGgtbiYmdD5yLmVuZChuKSYmaS5lbmQobiktdCE9aS5kZXB0aC1uJiZyLnN0YXJ0KG4tMSk9PWkuc3RhcnQobi0xKSYmci5ub2RlKG4tMSkuY2FuUmVwbGFjZShyLmluZGV4KG4tMSksaS5pbmRleChuLTEpKSlyZXR1cm4gYS5kZWxldGUoci5iZWZvcmUobiksdCk7YS5kZWxldGUoZSx0KX1mdW5jdGlvbiBhb2EoYSxlKXtsZXQgdD1bXSxyPU1hdGgubWluKGEuZGVwdGgsZS5kZXB0aCk7Zm9yKGxldCBpPXI7aT49MDtpLS0pe2xldCBvPWEuc3RhcnQoaSk7aWYobzxhLnBvcy0oYS5kZXB0aC1pKXx8ZS5lbmQoaSk+ZS5wb3MrKGUuZGVwdGgtaSl8fGEubm9kZShpKS50eXBlLnNwZWMuaXNvbGF0aW5nfHxlLm5vZGUoaSkudHlwZS5zcGVjLmlzb2xhdGluZylicmVhazsobz09ZS5zdGFydChpKXx8aT09YS5kZXB0aCYmaT09ZS5kZXB0aCYmYS5wYXJlbnQuaW5saW5lQ29udGVudCYmZS5wYXJlbnQuaW5saW5lQ29udGVudCYmaSYmZS5zdGFydChpLTEpPT1vLTEpJiZ0LnB1c2goaSl9cmV0dXJuIHR9dmFyIHFpYSxWaWEsVWlhLFdpYSxEYWUsR2lhLGZtLEcyLGdtLHVLZSxScyxLcyxobSxmNCxtbSxSZixacyx0cyxtS2UsVVUsV1UsT2YsRmYsaDQ9ZigoKT0+e3A0KCk7cWlhPTY1NTM1LFZpYT1NYXRoLnBvdygyLDE2KTtzKHZEYSwibWFrZVJlY292ZXIiKTtzKGppYSwicmVjb3ZlckluZGV4Iik7cyh4RGEsInJlY292ZXJPZmZzZXQiKTtVaWE9MSxXaWE9MixEYWU9NCxHaWE9OCxmbT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJNYXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy5wb3M9ZSx0aGlzLmRlbEluZm89dCx0aGlzLnJlY292ZXI9cn1nZXQgZGVsZXRlZCgpe3JldHVybih0aGlzLmRlbEluZm8mR2lhKT4wfWdldCBkZWxldGVkQmVmb3JlKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyYoVWlhfERhZSkpPjB9Z2V0IGRlbGV0ZWRBZnRlcigpe3JldHVybih0aGlzLmRlbEluZm8mKFdpYXxEYWUpKT4wfWdldCBkZWxldGVkQWNyb3NzKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyZEYWUpPjB9fSxHMj1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIlN0ZXBNYXAiKX1jb25zdHJ1Y3RvcihlLHQ9ITEpe2lmKHRoaXMucmFuZ2VzPWUsdGhpcy5pbnZlcnRlZD10LCFlLmxlbmd0aCYmYS5lbXB0eSlyZXR1cm4gYS5lbXB0eX1yZWNvdmVyKGUpe2xldCB0PTAscj1qaWEoZSk7aWYoIXRoaXMuaW52ZXJ0ZWQpZm9yKGxldCBpPTA7aTxyO2krKyl0Kz10aGlzLnJhbmdlc1tpKjMrMl0tdGhpcy5yYW5nZXNbaSozKzFdO3JldHVybiB0aGlzLnJhbmdlc1tyKjNdK3QreERhKGUpfW1hcFJlc3VsdChlLHQ9MSl7cmV0dXJuIHRoaXMuX21hcChlLHQsITEpfW1hcChlLHQ9MSl7cmV0dXJuIHRoaXMuX21hcChlLHQsITApfV9tYXAoZSx0LHIpe2xldCBpPTAsbz10aGlzLmludmVydGVkPzI6MSxuPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBkPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP2k6MCk7aWYoZD5lKWJyZWFrO2xldCBjPXRoaXMucmFuZ2VzW2wrb10scD10aGlzLnJhbmdlc1tsK25dLHU9ZCtjO2lmKGU8PXUpe2xldCBtPWM/ZT09ZD8tMTplPT11PzE6dDp0LHY9ZCtpKyhtPDA/MDpwKTtpZihyKXJldHVybiB2O2xldCB4PWU9PSh0PDA/ZDp1KT9udWxsOnZEYShsLzMsZS1kKSxiPWU9PWQ/V2lhOmU9PXU/VWlhOkRhZTtyZXR1cm4odDwwP2UhPWQ6ZSE9dSkmJihifD1HaWEpLG5ldyBmbSh2LGIseCl9aSs9cC1jfXJldHVybiByP2UraTpuZXcgZm0oZStpLDAsbnVsbCl9dG91Y2hlcyhlLHQpe2xldCByPTAsaT1qaWEodCksbz10aGlzLmludmVydGVkPzI6MSxuPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBkPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP3I6MCk7aWYoZD5lKWJyZWFrO2xldCBjPXRoaXMucmFuZ2VzW2wrb10scD1kK2M7aWYoZTw9cCYmbD09aSozKXJldHVybiEwO3IrPXRoaXMucmFuZ2VzW2wrbl0tY31yZXR1cm4hMX1mb3JFYWNoKGUpe2xldCB0PXRoaXMuaW52ZXJ0ZWQ/MjoxLHI9dGhpcy5pbnZlcnRlZD8xOjI7Zm9yKGxldCBpPTAsbz0wO2k8dGhpcy5yYW5nZXMubGVuZ3RoO2krPTMpe2xldCBuPXRoaXMucmFuZ2VzW2ldLGw9bi0odGhpcy5pbnZlcnRlZD9vOjApLGQ9bisodGhpcy5pbnZlcnRlZD8wOm8pLGM9dGhpcy5yYW5nZXNbaSt0XSxwPXRoaXMucmFuZ2VzW2krcl07ZShsLGwrYyxkLGQrcCksbys9cC1jfX1pbnZlcnQoKXtyZXR1cm4gbmV3IGEodGhpcy5yYW5nZXMsIXRoaXMuaW52ZXJ0ZWQpfXRvU3RyaW5nKCl7cmV0dXJuKHRoaXMuaW52ZXJ0ZWQ/Ii0iOiIiKStKU09OLnN0cmluZ2lmeSh0aGlzLnJhbmdlcyl9c3RhdGljIG9mZnNldChlKXtyZXR1cm4gZT09MD9hLmVtcHR5Om5ldyBhKGU8MD9bMCwtZSwwXTpbMCwwLGVdKX19O0cyLmVtcHR5PW5ldyBHMihbXSk7Z209Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJNYXBwaW5nIil9Y29uc3RydWN0b3IoZSx0LHI9MCxpPWU/ZS5sZW5ndGg6MCl7dGhpcy5taXJyb3I9dCx0aGlzLmZyb209cix0aGlzLnRvPWksdGhpcy5fbWFwcz1lfHxbXSx0aGlzLm93bkRhdGE9IShlfHx0KX1nZXQgbWFwcygpe3JldHVybiB0aGlzLl9tYXBzfXNsaWNlKGU9MCx0PXRoaXMubWFwcy5sZW5ndGgpe3JldHVybiBuZXcgYSh0aGlzLl9tYXBzLHRoaXMubWlycm9yLGUsdCl9YXBwZW5kTWFwKGUsdCl7dGhpcy5vd25EYXRhfHwodGhpcy5fbWFwcz10aGlzLl9tYXBzLnNsaWNlKCksdGhpcy5taXJyb3I9dGhpcy5taXJyb3ImJnRoaXMubWlycm9yLnNsaWNlKCksdGhpcy5vd25EYXRhPSEwKSx0aGlzLnRvPXRoaXMuX21hcHMucHVzaChlKSx0IT1udWxsJiZ0aGlzLnNldE1pcnJvcih0aGlzLl9tYXBzLmxlbmd0aC0xLHQpfWFwcGVuZE1hcHBpbmcoZSl7Zm9yKGxldCB0PTAscj10aGlzLl9tYXBzLmxlbmd0aDt0PGUuX21hcHMubGVuZ3RoO3QrKyl7bGV0IGk9ZS5nZXRNaXJyb3IodCk7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1t0XSxpIT1udWxsJiZpPHQ/citpOnZvaWQgMCl9fWdldE1pcnJvcihlKXtpZih0aGlzLm1pcnJvcil7Zm9yKGxldCB0PTA7dDx0aGlzLm1pcnJvci5sZW5ndGg7dCsrKWlmKHRoaXMubWlycm9yW3RdPT1lKXJldHVybiB0aGlzLm1pcnJvclt0Kyh0JTI/LTE6MSldfX1zZXRNaXJyb3IoZSx0KXt0aGlzLm1pcnJvcnx8KHRoaXMubWlycm9yPVtdKSx0aGlzLm1pcnJvci5wdXNoKGUsdCl9YXBwZW5kTWFwcGluZ0ludmVydGVkKGUpe2ZvcihsZXQgdD1lLm1hcHMubGVuZ3RoLTEscj10aGlzLl9tYXBzLmxlbmd0aCtlLl9tYXBzLmxlbmd0aDt0Pj0wO3QtLSl7bGV0IGk9ZS5nZXRNaXJyb3IodCk7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1t0XS5pbnZlcnQoKSxpIT1udWxsJiZpPnQ/ci1pLTE6dm9pZCAwKX19aW52ZXJ0KCl7bGV0IGU9bmV3IGE7cmV0dXJuIGUuYXBwZW5kTWFwcGluZ0ludmVydGVkKHRoaXMpLGV9bWFwKGUsdD0xKXtpZih0aGlzLm1pcnJvcilyZXR1cm4gdGhpcy5fbWFwKGUsdCwhMCk7Zm9yKGxldCByPXRoaXMuZnJvbTtyPHRoaXMudG87cisrKWU9dGhpcy5fbWFwc1tyXS5tYXAoZSx0KTtyZXR1cm4gZX1tYXBSZXN1bHQoZSx0PTEpe3JldHVybiB0aGlzLl9tYXAoZSx0LCExKX1fbWFwKGUsdCxyKXtsZXQgaT0wO2ZvcihsZXQgbz10aGlzLmZyb207bzx0aGlzLnRvO28rKyl7bGV0IG49dGhpcy5fbWFwc1tvXSxsPW4ubWFwUmVzdWx0KGUsdCk7aWYobC5yZWNvdmVyIT1udWxsKXtsZXQgZD10aGlzLmdldE1pcnJvcihvKTtpZihkIT1udWxsJiZkPm8mJmQ8dGhpcy50byl7bz1kLGU9dGhpcy5fbWFwc1tkXS5yZWNvdmVyKGwucmVjb3Zlcik7Y29udGludWV9fWl8PWwuZGVsSW5mbyxlPWwucG9zfXJldHVybiByP2U6bmV3IGZtKGUsaSxudWxsKX19LHVLZT1PYmplY3QuY3JlYXRlKG51bGwpLFJzPWNsYXNze3N0YXRpY3tzKHRoaXMsIlN0ZXAiKX1nZXRNYXAoKXtyZXR1cm4gRzIuZW1wdHl9bWVyZ2UoZSl7cmV0dXJuIG51bGx9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXR8fCF0LnN0ZXBUeXBlKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTdGVwLmZyb21KU09OIik7bGV0IHI9dUtlW3Quc3RlcFR5cGVdO2lmKCFyKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzdGVwIHR5cGUgJHt0LnN0ZXBUeXBlfSBkZWZpbmVkYCk7cmV0dXJuIHIuZnJvbUpTT04oZSx0KX1zdGF0aWMganNvbklEKGUsdCl7aWYoZSBpbiB1S2UpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkR1cGxpY2F0ZSB1c2Ugb2Ygc3RlcCBKU09OIElEICIrZSk7cmV0dXJuIHVLZVtlXT10LHQucHJvdG90eXBlLmpzb25JRD1lLHR9fSxLcz1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIlN0ZXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuZG9jPWUsdGhpcy5mYWlsZWQ9dH1zdGF0aWMgb2soZSl7cmV0dXJuIG5ldyBhKGUsbnVsbCl9c3RhdGljIGZhaWwoZSl7cmV0dXJuIG5ldyBhKG51bGwsZSl9c3RhdGljIGZyb21SZXBsYWNlKGUsdCxyLGkpe3RyeXtyZXR1cm4gYS5vayhlLnJlcGxhY2UodCxyLGkpKX1jYXRjaChvKXtpZihvIGluc3RhbmNlb2YgZDQpcmV0dXJuIGEuZmFpbChvLm1lc3NhZ2UpO3Rocm93IG99fX07cyhwS2UsIm1hcEZyYWdtZW50Iik7aG09Y2xhc3MgYSBleHRlbmRzIFJze3N0YXRpY3tzKHRoaXMsIkFkZE1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKCksdGhpcy5mcm9tPWUsdGhpcy50bz10LHRoaXMubWFyaz1yfWFwcGx5KGUpe2xldCB0PWUuc2xpY2UodGhpcy5mcm9tLHRoaXMudG8pLHI9ZS5yZXNvbHZlKHRoaXMuZnJvbSksaT1yLm5vZGUoci5zaGFyZWREZXB0aCh0aGlzLnRvKSksbz1uZXcgc3QocEtlKHQuY29udGVudCwobixsKT0+IW4uaXNBdG9tfHwhbC50eXBlLmFsbG93c01hcmtUeXBlKHRoaXMubWFyay50eXBlKT9uOm4ubWFyayh0aGlzLm1hcmsuYWRkVG9TZXQobi5tYXJrcykpLGkpLHQub3BlblN0YXJ0LHQub3BlbkVuZCk7cmV0dXJuIEtzLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sbyl9aW52ZXJ0KCl7cmV0dXJuIG5ldyBmNCh0aGlzLmZyb20sdGhpcy50byx0aGlzLm1hcmspfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSkscj1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKTtyZXR1cm4gdC5kZWxldGVkJiZyLmRlbGV0ZWR8fHQucG9zPj1yLnBvcz9udWxsOm5ldyBhKHQucG9zLHIucG9zLHRoaXMubWFyayl9bWVyZ2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBhJiZlLm1hcmsuZXEodGhpcy5tYXJrKSYmdGhpcy5mcm9tPD1lLnRvJiZ0aGlzLnRvPj1lLmZyb20/bmV3IGEoTWF0aC5taW4odGhpcy5mcm9tLGUuZnJvbSksTWF0aC5tYXgodGhpcy50byxlLnRvKSx0aGlzLm1hcmspOm51bGx9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhZGRNYXJrIixtYXJrOnRoaXMubWFyay50b0pTT04oKSxmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQudG8hPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBBZGRNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgYSh0LmZyb20sdC50byxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1JzLmpzb25JRCgiYWRkTWFyayIsaG0pO2Y0PWNsYXNzIGEgZXh0ZW5kcyBSc3tzdGF0aWN7cyh0aGlzLCJSZW1vdmVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLm1hcms9cn1hcHBseShlKXtsZXQgdD1lLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKSxyPW5ldyBzdChwS2UodC5jb250ZW50LGk9PmkubWFyayh0aGlzLm1hcmsucmVtb3ZlRnJvbVNldChpLm1hcmtzKSksZSksdC5vcGVuU3RhcnQsdC5vcGVuRW5kKTtyZXR1cm4gS3MuZnJvbVJlcGxhY2UoZSx0aGlzLmZyb20sdGhpcy50byxyKX1pbnZlcnQoKXtyZXR1cm4gbmV3IGhtKHRoaXMuZnJvbSx0aGlzLnRvLHRoaXMubWFyayl9bWFwKGUpe2xldCB0PWUubWFwUmVzdWx0KHRoaXMuZnJvbSwxKSxyPWUubWFwUmVzdWx0KHRoaXMudG8sLTEpO3JldHVybiB0LmRlbGV0ZWQmJnIuZGVsZXRlZHx8dC5wb3M+PXIucG9zP251bGw6bmV3IGEodC5wb3Msci5wb3MsdGhpcy5tYXJrKX1tZXJnZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGEmJmUubWFyay5lcSh0aGlzLm1hcmspJiZ0aGlzLmZyb208PWUudG8mJnRoaXMudG8+PWUuZnJvbT9uZXcgYShNYXRoLm1pbih0aGlzLmZyb20sZS5mcm9tKSxNYXRoLm1heCh0aGlzLnRvLGUudG8pLHRoaXMubWFyayk6bnVsbH10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU1hcmsiLG1hcms6dGhpcy5tYXJrLnRvSlNPTigpLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LmZyb20hPSJudW1iZXIifHx0eXBlb2YgdC50byE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU1hcmtTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBhKHQuZnJvbSx0LnRvLGUubWFya0Zyb21KU09OKHQubWFyaykpfX07UnMuanNvbklEKCJyZW1vdmVNYXJrIixmNCk7bW09Y2xhc3MgYSBleHRlbmRzIFJze3N0YXRpY3tzKHRoaXMsIkFkZE5vZGVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMubWFyaz10fWFwcGx5KGUpe2xldCB0PWUubm9kZUF0KHRoaXMucG9zKTtpZighdClyZXR1cm4gS3MuZmFpbCgiTm8gbm9kZSBhdCBtYXJrIHN0ZXAncyBwb3NpdGlvbiIpO2xldCByPXQudHlwZS5jcmVhdGUodC5hdHRycyxudWxsLHRoaXMubWFyay5hZGRUb1NldCh0Lm1hcmtzKSk7cmV0dXJuIEtzLmZyb21SZXBsYWNlKGUsdGhpcy5wb3MsdGhpcy5wb3MrMSxuZXcgc3QoamUuZnJvbShyKSwwLHQuaXNMZWFmPzA6MSkpfWludmVydChlKXtsZXQgdD1lLm5vZGVBdCh0aGlzLnBvcyk7aWYodCl7bGV0IHI9dGhpcy5tYXJrLmFkZFRvU2V0KHQubWFya3MpO2lmKHIubGVuZ3RoPT10Lm1hcmtzLmxlbmd0aCl7Zm9yKGxldCBpPTA7aTx0Lm1hcmtzLmxlbmd0aDtpKyspaWYoIXQubWFya3NbaV0uaXNJblNldChyKSlyZXR1cm4gbmV3IGEodGhpcy5wb3MsdC5tYXJrc1tpXSk7cmV0dXJuIG5ldyBhKHRoaXMucG9zLHRoaXMubWFyayl9fXJldHVybiBuZXcgUmYodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHQ9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHQuZGVsZXRlZEFmdGVyP251bGw6bmV3IGEodC5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImFkZE5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEFkZE5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgYSh0LnBvcyxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1JzLmpzb25JRCgiYWRkTm9kZU1hcmsiLG1tKTtSZj1jbGFzcyBhIGV4dGVuZHMgUnN7c3RhdGlje3ModGhpcywiUmVtb3ZlTm9kZU1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMucG9zPWUsdGhpcy5tYXJrPXR9YXBwbHkoZSl7bGV0IHQ9ZS5ub2RlQXQodGhpcy5wb3MpO2lmKCF0KXJldHVybiBLcy5mYWlsKCJObyBub2RlIGF0IG1hcmsgc3RlcCdzIHBvc2l0aW9uIik7bGV0IHI9dC50eXBlLmNyZWF0ZSh0LmF0dHJzLG51bGwsdGhpcy5tYXJrLnJlbW92ZUZyb21TZXQodC5tYXJrcykpO3JldHVybiBLcy5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IHN0KGplLmZyb20ociksMCx0LmlzTGVhZj8wOjEpKX1pbnZlcnQoZSl7bGV0IHQ9ZS5ub2RlQXQodGhpcy5wb3MpO3JldHVybiF0fHwhdGhpcy5tYXJrLmlzSW5TZXQodC5tYXJrcyk/dGhpczpuZXcgbW0odGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHQ9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHQuZGVsZXRlZEFmdGVyP251bGw6bmV3IGEodC5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgYSh0LnBvcyxlLm1hcmtGcm9tSlNPTih0Lm1hcmspKX19O1JzLmpzb25JRCgicmVtb3ZlTm9kZU1hcmsiLFJmKTtacz1jbGFzcyBhIGV4dGVuZHMgUnN7c3RhdGlje3ModGhpcywiUmVwbGFjZVN0ZXAiKX1jb25zdHJ1Y3RvcihlLHQscixpPSExKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLnNsaWNlPXIsdGhpcy5zdHJ1Y3R1cmU9aX1hcHBseShlKXtyZXR1cm4gdGhpcy5zdHJ1Y3R1cmUmJmZLZShlLHRoaXMuZnJvbSx0aGlzLnRvKT9Lcy5mYWlsKCJTdHJ1Y3R1cmUgcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpOktzLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sdGhpcy5zbGljZSl9Z2V0TWFwKCl7cmV0dXJuIG5ldyBHMihbdGhpcy5mcm9tLHRoaXMudG8tdGhpcy5mcm9tLHRoaXMuc2xpY2Uuc2l6ZV0pfWludmVydChlKXtyZXR1cm4gbmV3IGEodGhpcy5mcm9tLHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemUsZS5zbGljZSh0aGlzLmZyb20sdGhpcy50bykpfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKSxyPXRoaXMuZnJvbT09dGhpcy50byYmYS5NQVBfQklBUzwwP3Q6ZS5tYXBSZXN1bHQodGhpcy5mcm9tLDEpO3JldHVybiByLmRlbGV0ZWRBY3Jvc3MmJnQuZGVsZXRlZEFjcm9zcz9udWxsOm5ldyBhKHIucG9zLE1hdGgubWF4KHIucG9zLHQucG9zKSx0aGlzLnNsaWNlLHRoaXMuc3RydWN0dXJlKX1tZXJnZShlKXtpZighKGUgaW5zdGFuY2VvZiBhKXx8ZS5zdHJ1Y3R1cmV8fHRoaXMuc3RydWN0dXJlKXJldHVybiBudWxsO2lmKHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemU9PWUuZnJvbSYmIXRoaXMuc2xpY2Uub3BlbkVuZCYmIWUuc2xpY2Uub3BlblN0YXJ0KXtsZXQgdD10aGlzLnNsaWNlLnNpemUrZS5zbGljZS5zaXplPT0wP3N0LmVtcHR5Om5ldyBzdCh0aGlzLnNsaWNlLmNvbnRlbnQuYXBwZW5kKGUuc2xpY2UuY29udGVudCksdGhpcy5zbGljZS5vcGVuU3RhcnQsZS5zbGljZS5vcGVuRW5kKTtyZXR1cm4gbmV3IGEodGhpcy5mcm9tLHRoaXMudG8rKGUudG8tZS5mcm9tKSx0LHRoaXMuc3RydWN0dXJlKX1lbHNlIGlmKGUudG89PXRoaXMuZnJvbSYmIXRoaXMuc2xpY2Uub3BlblN0YXJ0JiYhZS5zbGljZS5vcGVuRW5kKXtsZXQgdD10aGlzLnNsaWNlLnNpemUrZS5zbGljZS5zaXplPT0wP3N0LmVtcHR5Om5ldyBzdChlLnNsaWNlLmNvbnRlbnQuYXBwZW5kKHRoaXMuc2xpY2UuY29udGVudCksZS5zbGljZS5vcGVuU3RhcnQsdGhpcy5zbGljZS5vcGVuRW5kKTtyZXR1cm4gbmV3IGEoZS5mcm9tLHRoaXMudG8sdCx0aGlzLnN0cnVjdHVyZSl9ZWxzZSByZXR1cm4gbnVsbH10b0pTT04oKXtsZXQgZT17c3RlcFR5cGU6InJlcGxhY2UiLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99O3JldHVybiB0aGlzLnNsaWNlLnNpemUmJihlLnNsaWNlPXRoaXMuc2xpY2UudG9KU09OKCkpLHRoaXMuc3RydWN0dXJlJiYoZS5zdHJ1Y3R1cmU9ITApLGV9c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuZnJvbSE9Im51bWJlciJ8fHR5cGVvZiB0LnRvIT0ibnVtYmVyIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgUmVwbGFjZVN0ZXAuZnJvbUpTT04iKTtyZXR1cm4gbmV3IGEodC5mcm9tLHQudG8sc3QuZnJvbUpTT04oZSx0LnNsaWNlKSwhIXQuc3RydWN0dXJlKX19O1pzLk1BUF9CSUFTPTEsUnMuanNvbklEKCJyZXBsYWNlIixacyk7dHM9Y2xhc3MgYSBleHRlbmRzIFJze3N0YXRpY3tzKHRoaXMsIlJlcGxhY2VBcm91bmRTdGVwIil9Y29uc3RydWN0b3IoZSx0LHIsaSxvLG4sbD0hMSl7c3VwZXIoKSx0aGlzLmZyb209ZSx0aGlzLnRvPXQsdGhpcy5nYXBGcm9tPXIsdGhpcy5nYXBUbz1pLHRoaXMuc2xpY2U9byx0aGlzLmluc2VydD1uLHRoaXMuc3RydWN0dXJlPWx9YXBwbHkoZSl7aWYodGhpcy5zdHJ1Y3R1cmUmJihmS2UoZSx0aGlzLmZyb20sdGhpcy5nYXBGcm9tKXx8ZktlKGUsdGhpcy5nYXBUbyx0aGlzLnRvKSkpcmV0dXJuIEtzLmZhaWwoIlN0cnVjdHVyZSBnYXAtcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpO2xldCB0PWUuc2xpY2UodGhpcy5nYXBGcm9tLHRoaXMuZ2FwVG8pO2lmKHQub3BlblN0YXJ0fHx0Lm9wZW5FbmQpcmV0dXJuIEtzLmZhaWwoIkdhcCBpcyBub3QgYSBmbGF0IHJhbmdlIik7bGV0IHI9dGhpcy5zbGljZS5pbnNlcnRBdCh0aGlzLmluc2VydCx0LmNvbnRlbnQpO3JldHVybiByP0tzLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8scik6S3MuZmFpbCgiQ29udGVudCBkb2VzIG5vdCBmaXQgaW4gZ2FwIil9Z2V0TWFwKCl7cmV0dXJuIG5ldyBHMihbdGhpcy5mcm9tLHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5pbnNlcnQsdGhpcy5nYXBUbyx0aGlzLnRvLXRoaXMuZ2FwVG8sdGhpcy5zbGljZS5zaXplLXRoaXMuaW5zZXJ0XSl9aW52ZXJ0KGUpe2xldCB0PXRoaXMuZ2FwVG8tdGhpcy5nYXBGcm9tO3JldHVybiBuZXcgYSh0aGlzLmZyb20sdGhpcy5mcm9tK3RoaXMuc2xpY2Uuc2l6ZSt0LHRoaXMuZnJvbSt0aGlzLmluc2VydCx0aGlzLmZyb20rdGhpcy5pbnNlcnQrdCxlLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKS5yZW1vdmVCZXR3ZWVuKHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5nYXBUby10aGlzLmZyb20pLHRoaXMuZ2FwRnJvbS10aGlzLmZyb20sdGhpcy5zdHJ1Y3R1cmUpfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSkscj1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKSxpPXRoaXMuZnJvbT09dGhpcy5nYXBGcm9tP3QucG9zOmUubWFwKHRoaXMuZ2FwRnJvbSwtMSksbz10aGlzLnRvPT10aGlzLmdhcFRvP3IucG9zOmUubWFwKHRoaXMuZ2FwVG8sMSk7cmV0dXJuIHQuZGVsZXRlZEFjcm9zcyYmci5kZWxldGVkQWNyb3NzfHxpPHQucG9zfHxvPnIucG9zP251bGw6bmV3IGEodC5wb3Msci5wb3MsaSxvLHRoaXMuc2xpY2UsdGhpcy5pbnNlcnQsdGhpcy5zdHJ1Y3R1cmUpfXRvSlNPTigpe2xldCBlPXtzdGVwVHlwZToicmVwbGFjZUFyb3VuZCIsZnJvbTp0aGlzLmZyb20sdG86dGhpcy50byxnYXBGcm9tOnRoaXMuZ2FwRnJvbSxnYXBUbzp0aGlzLmdhcFRvLGluc2VydDp0aGlzLmluc2VydH07cmV0dXJuIHRoaXMuc2xpY2Uuc2l6ZSYmKGUuc2xpY2U9dGhpcy5zbGljZS50b0pTT04oKSksdGhpcy5zdHJ1Y3R1cmUmJihlLnN0cnVjdHVyZT0hMCksZX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQudG8hPSJudW1iZXIifHx0eXBlb2YgdC5nYXBGcm9tIT0ibnVtYmVyInx8dHlwZW9mIHQuZ2FwVG8hPSJudW1iZXIifHx0eXBlb2YgdC5pbnNlcnQhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBSZXBsYWNlQXJvdW5kU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgYSh0LmZyb20sdC50byx0LmdhcEZyb20sdC5nYXBUbyxzdC5mcm9tSlNPTihlLHQuc2xpY2UpLHQuaW5zZXJ0LCEhdC5zdHJ1Y3R1cmUpfX07UnMuanNvbklEKCJyZXBsYWNlQXJvdW5kIix0cyk7cyhmS2UsImNvbnRlbnRCZXR3ZWVuIik7cyh5RGEsImFkZE1hcmsiKTtzKHdEYSwicmVtb3ZlTWFyayIpO3MoaEtlLCJjbGVhckluY29tcGF0aWJsZSIpO3MoTURhLCJjYW5DdXQiKTtzKFkyLCJsaWZ0VGFyZ2V0Iik7cyhrRGEsImxpZnQiKTtzKEJmLCJmaW5kV3JhcHBpbmciKTtzKFlpYSwid2l0aEF0dHJzIik7cyhTRGEsImZpbmRXcmFwcGluZ091dHNpZGUiKTtzKHpEYSwiZmluZFdyYXBwaW5nSW5zaWRlIik7cyhDRGEsIndyYXAiKTtzKF9EYSwic2V0QmxvY2tUeXBlIik7cyhLaWEsInJlcGxhY2VOZXdsaW5lcyIpO3MoWmlhLCJyZXBsYWNlTGluZWJyZWFrcyIpO3MoVERhLCJjYW5DaGFuZ2VUeXBlIik7cyhMRGEsInNldE5vZGVNYXJrdXAiKTtzKE5vLCJjYW5TcGxpdCIpO3MoJERhLCJzcGxpdCIpO3Moc24sImNhbkpvaW4iKTtzKEREYSwiY2FuQXBwZW5kV2l0aFN1YnN0aXR1dGVkTGluZWJyZWFrcyIpO3MoWGlhLCJqb2luYWJsZSIpO3MoSGYsImpvaW5Qb2ludCIpO3MoQURhLCJqb2luIik7cyhRaWEsImluc2VydFBvaW50Iik7cyhHVSwiZHJvcFBvaW50Iik7cyhibSwicmVwbGFjZVN0ZXAiKTtzKEppYSwiZml0c1RyaXZpYWxseSIpO21LZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJGaXR0ZXIiKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXQsdGhpcy51bnBsYWNlZD1yLHRoaXMuZnJvbnRpZXI9W10sdGhpcy5wbGFjZWQ9amUuZW1wdHk7Zm9yKGxldCBpPTA7aTw9ZS5kZXB0aDtpKyspe2xldCBvPWUubm9kZShpKTt0aGlzLmZyb250aWVyLnB1c2goe3R5cGU6by50eXBlLG1hdGNoOm8uY29udGVudE1hdGNoQXQoZS5pbmRleEFmdGVyKGkpKX0pfWZvcihsZXQgaT1lLmRlcHRoO2k+MDtpLS0pdGhpcy5wbGFjZWQ9amUuZnJvbShlLm5vZGUoaSkuY29weSh0aGlzLnBsYWNlZCkpfWdldCBkZXB0aCgpe3JldHVybiB0aGlzLmZyb250aWVyLmxlbmd0aC0xfWZpdCgpe2Zvcig7dGhpcy51bnBsYWNlZC5zaXplOyl7bGV0IGM9dGhpcy5maW5kRml0dGFibGUoKTtjP3RoaXMucGxhY2VOb2RlcyhjKTp0aGlzLm9wZW5Nb3JlKCl8fHRoaXMuZHJvcE5vZGUoKX1sZXQgZT10aGlzLm11c3RNb3ZlSW5saW5lKCksdD10aGlzLnBsYWNlZC5zaXplLXRoaXMuZGVwdGgtdGhpcy4kZnJvbS5kZXB0aCxyPXRoaXMuJGZyb20saT10aGlzLmNsb3NlKGU8MD90aGlzLiR0bzpyLmRvYy5yZXNvbHZlKGUpKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbz10aGlzLnBsYWNlZCxuPXIuZGVwdGgsbD1pLmRlcHRoO2Zvcig7biYmbCYmby5jaGlsZENvdW50PT0xOylvPW8uZmlyc3RDaGlsZC5jb250ZW50LG4tLSxsLS07bGV0IGQ9bmV3IHN0KG8sbixsKTtyZXR1cm4gZT4tMT9uZXcgdHMoci5wb3MsZSx0aGlzLiR0by5wb3MsdGhpcy4kdG8uZW5kKCksZCx0KTpkLnNpemV8fHIucG9zIT10aGlzLiR0by5wb3M/bmV3IFpzKHIucG9zLGkucG9zLGQpOm51bGx9ZmluZEZpdHRhYmxlKCl7bGV0IGU9dGhpcy51bnBsYWNlZC5vcGVuU3RhcnQ7Zm9yKGxldCB0PXRoaXMudW5wbGFjZWQuY29udGVudCxyPTAsaT10aGlzLnVucGxhY2VkLm9wZW5FbmQ7cjxlO3IrKyl7bGV0IG89dC5maXJzdENoaWxkO2lmKHQuY2hpbGRDb3VudD4xJiYoaT0wKSxvLnR5cGUuc3BlYy5pc29sYXRpbmcmJmk8PXIpe2U9cjticmVha310PW8uY29udGVudH1mb3IobGV0IHQ9MTt0PD0yO3QrKylmb3IobGV0IHI9dD09MT9lOnRoaXMudW5wbGFjZWQub3BlblN0YXJ0O3I+PTA7ci0tKXtsZXQgaSxvPW51bGw7cj8obz1nS2UodGhpcy51bnBsYWNlZC5jb250ZW50LHItMSkuZmlyc3RDaGlsZCxpPW8uY29udGVudCk6aT10aGlzLnVucGxhY2VkLmNvbnRlbnQ7bGV0IG49aS5maXJzdENoaWxkO2ZvcihsZXQgbD10aGlzLmRlcHRoO2w+PTA7bC0tKXtsZXR7dHlwZTpkLG1hdGNoOmN9PXRoaXMuZnJvbnRpZXJbbF0scCx1PW51bGw7aWYodD09MSYmKG4/Yy5tYXRjaFR5cGUobi50eXBlKXx8KHU9Yy5maWxsQmVmb3JlKGplLmZyb20obiksITEpKTpvJiZkLmNvbXBhdGlibGVDb250ZW50KG8udHlwZSkpKXJldHVybntzbGljZURlcHRoOnIsZnJvbnRpZXJEZXB0aDpsLHBhcmVudDpvLGluamVjdDp1fTtpZih0PT0yJiZuJiYocD1jLmZpbmRXcmFwcGluZyhuLnR5cGUpKSlyZXR1cm57c2xpY2VEZXB0aDpyLGZyb250aWVyRGVwdGg6bCxwYXJlbnQ6byx3cmFwOnB9O2lmKG8mJmMubWF0Y2hUeXBlKG8udHlwZSkpYnJlYWt9fX1vcGVuTW9yZSgpe2xldHtjb250ZW50OmUsb3BlblN0YXJ0OnQsb3BlbkVuZDpyfT10aGlzLnVucGxhY2VkLGk9Z0tlKGUsdCk7cmV0dXJuIWkuY2hpbGRDb3VudHx8aS5maXJzdENoaWxkLmlzTGVhZj8hMToodGhpcy51bnBsYWNlZD1uZXcgc3QoZSx0KzEsTWF0aC5tYXgocixpLnNpemUrdD49ZS5zaXplLXI/dCsxOjApKSwhMCl9ZHJvcE5vZGUoKXtsZXR7Y29udGVudDplLG9wZW5TdGFydDp0LG9wZW5FbmQ6cn09dGhpcy51bnBsYWNlZCxpPWdLZShlLHQpO2lmKGkuY2hpbGRDb3VudDw9MSYmdD4wKXtsZXQgbz1lLnNpemUtdDw9dCtpLnNpemU7dGhpcy51bnBsYWNlZD1uZXcgc3QoVlUoZSx0LTEsMSksdC0xLG8/dC0xOnIpfWVsc2UgdGhpcy51bnBsYWNlZD1uZXcgc3QoVlUoZSx0LDEpLHQscil9cGxhY2VOb2Rlcyh7c2xpY2VEZXB0aDplLGZyb250aWVyRGVwdGg6dCxwYXJlbnQ6cixpbmplY3Q6aSx3cmFwOm99KXtmb3IoO3RoaXMuZGVwdGg+dDspdGhpcy5jbG9zZUZyb250aWVyTm9kZSgpO2lmKG8pZm9yKGxldCBiPTA7YjxvLmxlbmd0aDtiKyspdGhpcy5vcGVuRnJvbnRpZXJOb2RlKG9bYl0pO2xldCBuPXRoaXMudW5wbGFjZWQsbD1yP3IuY29udGVudDpuLmNvbnRlbnQsZD1uLm9wZW5TdGFydC1lLGM9MCxwPVtdLHttYXRjaDp1LHR5cGU6bX09dGhpcy5mcm9udGllclt0XTtpZihpKXtmb3IobGV0IGI9MDtiPGkuY2hpbGRDb3VudDtiKyspcC5wdXNoKGkuY2hpbGQoYikpO3U9dS5tYXRjaEZyYWdtZW50KGkpfWxldCB2PWwuc2l6ZStlLShuLmNvbnRlbnQuc2l6ZS1uLm9wZW5FbmQpO2Zvcig7YzxsLmNoaWxkQ291bnQ7KXtsZXQgYj1sLmNoaWxkKGMpLGc9dS5tYXRjaFR5cGUoYi50eXBlKTtpZighZylicmVhaztjKyssKGM+MXx8ZD09MHx8Yi5jb250ZW50LnNpemUpJiYodT1nLHAucHVzaChlb2EoYi5tYXJrKG0uYWxsb3dlZE1hcmtzKGIubWFya3MpKSxjPT0xP2Q6MCxjPT1sLmNoaWxkQ291bnQ/djotMSkpKX1sZXQgeD1jPT1sLmNoaWxkQ291bnQ7eHx8KHY9LTEpLHRoaXMucGxhY2VkPWpVKHRoaXMucGxhY2VkLHQsamUuZnJvbShwKSksdGhpcy5mcm9udGllclt0XS5tYXRjaD11LHgmJnY8MCYmciYmci50eXBlPT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLnR5cGUmJnRoaXMuZnJvbnRpZXIubGVuZ3RoPjEmJnRoaXMuY2xvc2VGcm9udGllck5vZGUoKTtmb3IobGV0IGI9MCxnPWw7Yjx2O2IrKyl7bGV0IHk9Zy5sYXN0Q2hpbGQ7dGhpcy5mcm9udGllci5wdXNoKHt0eXBlOnkudHlwZSxtYXRjaDp5LmNvbnRlbnRNYXRjaEF0KHkuY2hpbGRDb3VudCl9KSxnPXkuY29udGVudH10aGlzLnVucGxhY2VkPXg/ZT09MD9zdC5lbXB0eTpuZXcgc3QoVlUobi5jb250ZW50LGUtMSwxKSxlLTEsdjwwP24ub3BlbkVuZDplLTEpOm5ldyBzdChWVShuLmNvbnRlbnQsZSxjKSxuLm9wZW5TdGFydCxuLm9wZW5FbmQpfW11c3RNb3ZlSW5saW5lKCl7aWYoIXRoaXMuJHRvLnBhcmVudC5pc1RleHRibG9jaylyZXR1cm4tMTtsZXQgZT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLHQ7aWYoIWUudHlwZS5pc1RleHRibG9ja3x8IWJLZSh0aGlzLiR0byx0aGlzLiR0by5kZXB0aCxlLnR5cGUsZS5tYXRjaCwhMSl8fHRoaXMuJHRvLmRlcHRoPT10aGlzLmRlcHRoJiYodD10aGlzLmZpbmRDbG9zZUxldmVsKHRoaXMuJHRvKSkmJnQuZGVwdGg9PXRoaXMuZGVwdGgpcmV0dXJuLTE7bGV0e2RlcHRoOnJ9PXRoaXMuJHRvLGk9dGhpcy4kdG8uYWZ0ZXIocik7Zm9yKDtyPjEmJmk9PXRoaXMuJHRvLmVuZCgtLXIpOykrK2k7cmV0dXJuIGl9ZmluZENsb3NlTGV2ZWwoZSl7ZTpmb3IobGV0IHQ9TWF0aC5taW4odGhpcy5kZXB0aCxlLmRlcHRoKTt0Pj0wO3QtLSl7bGV0e21hdGNoOnIsdHlwZTppfT10aGlzLmZyb250aWVyW3RdLG89dDxlLmRlcHRoJiZlLmVuZCh0KzEpPT1lLnBvcysoZS5kZXB0aC0odCsxKSksbj1iS2UoZSx0LGkscixvKTtpZihuKXtmb3IobGV0IGw9dC0xO2w+PTA7bC0tKXtsZXR7bWF0Y2g6ZCx0eXBlOmN9PXRoaXMuZnJvbnRpZXJbbF0scD1iS2UoZSxsLGMsZCwhMCk7aWYoIXB8fHAuY2hpbGRDb3VudCljb250aW51ZSBlfXJldHVybntkZXB0aDp0LGZpdDpuLG1vdmU6bz9lLmRvYy5yZXNvbHZlKGUuYWZ0ZXIodCsxKSk6ZX19fX1jbG9zZShlKXtsZXQgdD10aGlzLmZpbmRDbG9zZUxldmVsKGUpO2lmKCF0KXJldHVybiBudWxsO2Zvcig7dGhpcy5kZXB0aD50LmRlcHRoOyl0aGlzLmNsb3NlRnJvbnRpZXJOb2RlKCk7dC5maXQuY2hpbGRDb3VudCYmKHRoaXMucGxhY2VkPWpVKHRoaXMucGxhY2VkLHQuZGVwdGgsdC5maXQpKSxlPXQubW92ZTtmb3IobGV0IHI9dC5kZXB0aCsxO3I8PWUuZGVwdGg7cisrKXtsZXQgaT1lLm5vZGUociksbz1pLnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUoaS5jb250ZW50LCEwLGUuaW5kZXgocikpO3RoaXMub3BlbkZyb250aWVyTm9kZShpLnR5cGUsaS5hdHRycyxvKX1yZXR1cm4gZX1vcGVuRnJvbnRpZXJOb2RlKGUsdD1udWxsLHIpe2xldCBpPXRoaXMuZnJvbnRpZXJbdGhpcy5kZXB0aF07aS5tYXRjaD1pLm1hdGNoLm1hdGNoVHlwZShlKSx0aGlzLnBsYWNlZD1qVSh0aGlzLnBsYWNlZCx0aGlzLmRlcHRoLGplLmZyb20oZS5jcmVhdGUodCxyKSkpLHRoaXMuZnJvbnRpZXIucHVzaCh7dHlwZTplLG1hdGNoOmUuY29udGVudE1hdGNofSl9Y2xvc2VGcm9udGllck5vZGUoKXtsZXQgdD10aGlzLmZyb250aWVyLnBvcCgpLm1hdGNoLmZpbGxCZWZvcmUoamUuZW1wdHksITApO3QuY2hpbGRDb3VudCYmKHRoaXMucGxhY2VkPWpVKHRoaXMucGxhY2VkLHRoaXMuZnJvbnRpZXIubGVuZ3RoLHQpKX19O3MoVlUsImRyb3BGcm9tRnJhZ21lbnQiKTtzKGpVLCJhZGRUb0ZyYWdtZW50Iik7cyhnS2UsImNvbnRlbnRBdCIpO3MoZW9hLCJjbG9zZU5vZGVTdGFydCIpO3MoYktlLCJjb250ZW50QWZ0ZXJGaXRzIik7cyhQRGEsImludmFsaWRNYXJrcyIpO3MoRURhLCJkZWZpbmVzQ29udGVudCIpO3MoSURhLCJyZXBsYWNlUmFuZ2UiKTtzKHRvYSwiY2xvc2VGcmFnbWVudCIpO3MoTkRhLCJyZXBsYWNlUmFuZ2VXaXRoIik7cyhSRGEsImRlbGV0ZVJhbmdlIik7cyhhb2EsImNvdmVyZWREZXB0aHMiKTtVVT1jbGFzcyBhIGV4dGVuZHMgUnN7c3RhdGlje3ModGhpcywiQXR0clN0ZXAiKX1jb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMuYXR0cj10LHRoaXMudmFsdWU9cn1hcHBseShlKXtsZXQgdD1lLm5vZGVBdCh0aGlzLnBvcyk7aWYoIXQpcmV0dXJuIEtzLmZhaWwoIk5vIG5vZGUgYXQgYXR0cmlidXRlIHN0ZXAncyBwb3NpdGlvbiIpO2xldCByPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBvIGluIHQuYXR0cnMpcltvXT10LmF0dHJzW29dO3JbdGhpcy5hdHRyXT10aGlzLnZhbHVlO2xldCBpPXQudHlwZS5jcmVhdGUocixudWxsLHQubWFya3MpO3JldHVybiBLcy5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IHN0KGplLmZyb20oaSksMCx0LmlzTGVhZj8wOjEpKX1nZXRNYXAoKXtyZXR1cm4gRzIuZW1wdHl9aW52ZXJ0KGUpe3JldHVybiBuZXcgYSh0aGlzLnBvcyx0aGlzLmF0dHIsZS5ub2RlQXQodGhpcy5wb3MpLmF0dHJzW3RoaXMuYXR0cl0pfW1hcChlKXtsZXQgdD1lLm1hcFJlc3VsdCh0aGlzLnBvcywxKTtyZXR1cm4gdC5kZWxldGVkQWZ0ZXI/bnVsbDpuZXcgYSh0LnBvcyx0aGlzLmF0dHIsdGhpcy52YWx1ZSl9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhdHRyIixwb3M6dGhpcy5wb3MsYXR0cjp0aGlzLmF0dHIsdmFsdWU6dGhpcy52YWx1ZX19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQucG9zIT0ibnVtYmVyInx8dHlwZW9mIHQuYXR0ciE9InN0cmluZyIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEF0dHJTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBhKHQucG9zLHQuYXR0cix0LnZhbHVlKX19O1JzLmpzb25JRCgiYXR0ciIsVVUpO1dVPWNsYXNzIGEgZXh0ZW5kcyBSc3tzdGF0aWN7cyh0aGlzLCJEb2NBdHRyU3RlcCIpfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLmF0dHI9ZSx0aGlzLnZhbHVlPXR9YXBwbHkoZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGkgaW4gZS5hdHRycyl0W2ldPWUuYXR0cnNbaV07dFt0aGlzLmF0dHJdPXRoaXMudmFsdWU7bGV0IHI9ZS50eXBlLmNyZWF0ZSh0LGUuY29udGVudCxlLm1hcmtzKTtyZXR1cm4gS3Mub2socil9Z2V0TWFwKCl7cmV0dXJuIEcyLmVtcHR5fWludmVydChlKXtyZXR1cm4gbmV3IGEodGhpcy5hdHRyLGUuYXR0cnNbdGhpcy5hdHRyXSl9bWFwKGUpe3JldHVybiB0aGlzfXRvSlNPTigpe3JldHVybntzdGVwVHlwZToiZG9jQXR0ciIsYXR0cjp0aGlzLmF0dHIsdmFsdWU6dGhpcy52YWx1ZX19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuYXR0ciE9InN0cmluZyIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIERvY0F0dHJTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyBhKHQuYXR0cix0LnZhbHVlKX19O1JzLmpzb25JRCgiZG9jQXR0ciIsV1UpO09mPWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje3ModGhpcywiVHJhbnNmb3JtRXJyb3IiKX19O09mPXMoZnVuY3Rpb24gYShlKXtsZXQgdD1FcnJvci5jYWxsKHRoaXMsZSk7cmV0dXJuIHQuX19wcm90b19fPWEucHJvdG90eXBlLHR9LCJUcmFuc2Zvcm1FcnJvciIpLE9mLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksT2YucHJvdG90eXBlLmNvbnN0cnVjdG9yPU9mLE9mLnByb3RvdHlwZS5uYW1lPSJUcmFuc2Zvcm1FcnJvciI7RmY9Y2xhc3N7c3RhdGlje3ModGhpcywiVHJhbnNmb3JtIil9Y29uc3RydWN0b3IoZSl7dGhpcy5kb2M9ZSx0aGlzLnN0ZXBzPVtdLHRoaXMuZG9jcz1bXSx0aGlzLm1hcHBpbmc9bmV3IGdtfWdldCBiZWZvcmUoKXtyZXR1cm4gdGhpcy5kb2NzLmxlbmd0aD90aGlzLmRvY3NbMF06dGhpcy5kb2N9c3RlcChlKXtsZXQgdD10aGlzLm1heWJlU3RlcChlKTtpZih0LmZhaWxlZCl0aHJvdyBuZXcgT2YodC5mYWlsZWQpO3JldHVybiB0aGlzfW1heWJlU3RlcChlKXtsZXQgdD1lLmFwcGx5KHRoaXMuZG9jKTtyZXR1cm4gdC5mYWlsZWR8fHRoaXMuYWRkU3RlcChlLHQuZG9jKSx0fWdldCBkb2NDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuc3RlcHMubGVuZ3RoPjB9Y2hhbmdlZFJhbmdlKCl7bGV0IGU9MWU5LHQ9LTFlOTtmb3IobGV0IHI9MDtyPHRoaXMubWFwcGluZy5tYXBzLmxlbmd0aDtyKyspe2xldCBpPXRoaXMubWFwcGluZy5tYXBzW3JdO3ImJihlPWkubWFwKGUsMSksdD1pLm1hcCh0LC0xKSksaS5mb3JFYWNoKChvLG4sbCxkKT0+e2U9TWF0aC5taW4oZSxsKSx0PU1hdGgubWF4KHQsZCl9KX1yZXR1cm4gZT09MWU5P251bGw6e2Zyb206ZSx0bzp0fX1hZGRTdGVwKGUsdCl7dGhpcy5kb2NzLnB1c2godGhpcy5kb2MpLHRoaXMuc3RlcHMucHVzaChlKSx0aGlzLm1hcHBpbmcuYXBwZW5kTWFwKGUuZ2V0TWFwKCkpLHRoaXMuZG9jPXR9cmVwbGFjZShlLHQ9ZSxyPXN0LmVtcHR5KXtsZXQgaT1ibSh0aGlzLmRvYyxlLHQscik7cmV0dXJuIGkmJnRoaXMuc3RlcChpKSx0aGlzfXJlcGxhY2VXaXRoKGUsdCxyKXtyZXR1cm4gdGhpcy5yZXBsYWNlKGUsdCxuZXcgc3QoamUuZnJvbShyKSwwLDApKX1kZWxldGUoZSx0KXtyZXR1cm4gdGhpcy5yZXBsYWNlKGUsdCxzdC5lbXB0eSl9aW5zZXJ0KGUsdCl7cmV0dXJuIHRoaXMucmVwbGFjZVdpdGgoZSxlLHQpfXJlcGxhY2VSYW5nZShlLHQscil7cmV0dXJuIElEYSh0aGlzLGUsdCxyKSx0aGlzfXJlcGxhY2VSYW5nZVdpdGgoZSx0LHIpe3JldHVybiBORGEodGhpcyxlLHQsciksdGhpc31kZWxldGVSYW5nZShlLHQpe3JldHVybiBSRGEodGhpcyxlLHQpLHRoaXN9bGlmdChlLHQpe3JldHVybiBrRGEodGhpcyxlLHQpLHRoaXN9am9pbihlLHQ9MSl7cmV0dXJuIEFEYSh0aGlzLGUsdCksdGhpc313cmFwKGUsdCl7cmV0dXJuIENEYSh0aGlzLGUsdCksdGhpc31zZXRCbG9ja1R5cGUoZSx0PWUscixpPW51bGwpe3JldHVybiBfRGEodGhpcyxlLHQscixpKSx0aGlzfXNldE5vZGVNYXJrdXAoZSx0LHI9bnVsbCxpKXtyZXR1cm4gTERhKHRoaXMsZSx0LHIsaSksdGhpc31zZXROb2RlQXR0cmlidXRlKGUsdCxyKXtyZXR1cm4gdGhpcy5zdGVwKG5ldyBVVShlLHQscikpLHRoaXN9c2V0RG9jQXR0cmlidXRlKGUsdCl7cmV0dXJuIHRoaXMuc3RlcChuZXcgV1UoZSx0KSksdGhpc31hZGROb2RlTWFyayhlLHQpe3JldHVybiB0aGlzLnN0ZXAobmV3IG1tKGUsdCkpLHRoaXN9cmVtb3ZlTm9kZU1hcmsoZSx0KXtsZXQgcj10aGlzLmRvYy5ub2RlQXQoZSk7aWYoIXIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIG5vZGUgYXQgcG9zaXRpb24gIitlKTtpZih0IGluc3RhbmNlb2YgRGEpdC5pc0luU2V0KHIubWFya3MpJiZ0aGlzLnN0ZXAobmV3IFJmKGUsdCkpO2Vsc2V7bGV0IGk9ci5tYXJrcyxvLG49W107Zm9yKDtvPXQuaXNJblNldChpKTspbi5wdXNoKG5ldyBSZihlLG8pKSxpPW8ucmVtb3ZlRnJvbVNldChpKTtmb3IobGV0IGw9bi5sZW5ndGgtMTtsPj0wO2wtLSl0aGlzLnN0ZXAobltsXSl9cmV0dXJuIHRoaXN9c3BsaXQoZSx0PTEscil7cmV0dXJuICREYSh0aGlzLGUsdCxyKSx0aGlzfWFkZE1hcmsoZSx0LHIpe3JldHVybiB5RGEodGhpcyxlLHQsciksdGhpc31yZW1vdmVNYXJrKGUsdCxyKXtyZXR1cm4gd0RhKHRoaXMsZSx0LHIpLHRoaXN9Y2xlYXJJbmNvbXBhdGlibGUoZSx0LHIpe3JldHVybiBoS2UodGhpcyxlLHQsciksdGhpc319fSk7ZnVuY3Rpb24gc29hKGEpeyFyb2EmJiFhLnBhcmVudC5pbmxpbmVDb250ZW50JiYocm9hPSEwLGNvbnNvbGUud2FybigiVGV4dFNlbGVjdGlvbiBlbmRwb2ludCBub3QgcG9pbnRpbmcgaW50byBhIG5vZGUgd2l0aCBpbmxpbmUgY29udGVudCAoIithLnBhcmVudC50eXBlLm5hbWUrIikiKSl9ZnVuY3Rpb24gdm0oYSxlLHQscixpLG89ITEpe2lmKGUuaW5saW5lQ29udGVudClyZXR1cm4gTnQuY3JlYXRlKGEsdCk7Zm9yKGxldCBuPXItKGk+MD8wOjEpO2k+MD9uPGUuY2hpbGRDb3VudDpuPj0wO24rPWkpe2xldCBsPWUuY2hpbGQobik7aWYobC5pc0F0b20pe2lmKCFvJiZrdC5pc1NlbGVjdGFibGUobCkpcmV0dXJuIGt0LmNyZWF0ZShhLHQtKGk8MD9sLm5vZGVTaXplOjApKX1lbHNle2xldCBkPXZtKGEsbCx0K2ksaTwwP2wuY2hpbGRDb3VudDowLGksbyk7aWYoZClyZXR1cm4gZH10Kz1sLm5vZGVTaXplKml9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaW9hKGEsZSx0KXtsZXQgcj1hLnN0ZXBzLmxlbmd0aC0xO2lmKHI8ZSlyZXR1cm47bGV0IGk9YS5zdGVwc1tyXTtpZighKGkgaW5zdGFuY2VvZiBac3x8aSBpbnN0YW5jZW9mIHRzKSlyZXR1cm47bGV0IG89YS5tYXBwaW5nLm1hcHNbcl0sbjtvLmZvckVhY2goKGwsZCxjLHApPT57bj09bnVsbCYmKG49cCl9KSxhLnNldFNlbGVjdGlvbihFdC5uZWFyKGEuZG9jLnJlc29sdmUobiksdCkpfWZ1bmN0aW9uIGxvYShhLGUpe3JldHVybiFlfHwhYT9hOmEuYmluZChlKX1mdW5jdGlvbiBjb2EoYSxlLHQpe2ZvcihsZXQgciBpbiBhKXtsZXQgaT1hW3JdO2kgaW5zdGFuY2VvZiBGdW5jdGlvbj9pPWkuYmluZChlKTpyPT0iaGFuZGxlRE9NRXZlbnRzIiYmKGk9Y29hKGksZSx7fSkpLHRbcl09aX1yZXR1cm4gdH1mdW5jdGlvbiBkb2EoYSl7cmV0dXJuIGEgaW4geUtlP2ErIiQiKyArK3lLZVthXTooeUtlW2FdPTAsYSsiJCIpfXZhciB2S2UsRXQsVmYscm9hLE50LEFhZSxrdCx4S2UsSWksT0RhLG9vYSxQYWUsbm9hLEVhZSxxZixGRGEsWVUsS1UsYXIseUtlLGJzLG1jPWYoKCk9PntwNCgpO2g0KCk7dktlPU9iamVjdC5jcmVhdGUobnVsbCksRXQ9Y2xhc3N7c3RhdGlje3ModGhpcywiU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMuJGFuY2hvcj1lLHRoaXMuJGhlYWQ9dCx0aGlzLnJhbmdlcz1yfHxbbmV3IFZmKGUubWluKHQpLGUubWF4KHQpKV19Z2V0IGFuY2hvcigpe3JldHVybiB0aGlzLiRhbmNob3IucG9zfWdldCBoZWFkKCl7cmV0dXJuIHRoaXMuJGhlYWQucG9zfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuJGZyb20ucG9zfWdldCB0bygpe3JldHVybiB0aGlzLiR0by5wb3N9Z2V0ICRmcm9tKCl7cmV0dXJuIHRoaXMucmFuZ2VzWzBdLiRmcm9tfWdldCAkdG8oKXtyZXR1cm4gdGhpcy5yYW5nZXNbMF0uJHRvfWdldCBlbXB0eSgpe2xldCBlPXRoaXMucmFuZ2VzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKGVbdF0uJGZyb20ucG9zIT1lW3RdLiR0by5wb3MpcmV0dXJuITE7cmV0dXJuITB9Y29udGVudCgpe3JldHVybiB0aGlzLiRmcm9tLmRvYy5zbGljZSh0aGlzLmZyb20sdGhpcy50bywhMCl9cmVwbGFjZShlLHQ9c3QuZW1wdHkpe2xldCByPXQuY29udGVudC5sYXN0Q2hpbGQsaT1udWxsO2ZvcihsZXQgbD0wO2w8dC5vcGVuRW5kO2wrKylpPXIscj1yLmxhc3RDaGlsZDtsZXQgbz1lLnN0ZXBzLmxlbmd0aCxuPXRoaXMucmFuZ2VzO2ZvcihsZXQgbD0wO2w8bi5sZW5ndGg7bCsrKXtsZXR7JGZyb206ZCwkdG86Y309bltsXSxwPWUubWFwcGluZy5zbGljZShvKTtlLnJlcGxhY2VSYW5nZShwLm1hcChkLnBvcykscC5tYXAoYy5wb3MpLGw/c3QuZW1wdHk6dCksbD09MCYmaW9hKGUsbywocj9yLmlzSW5saW5lOmkmJmkuaXNUZXh0YmxvY2spPy0xOjEpfX1yZXBsYWNlV2l0aChlLHQpe2xldCByPWUuc3RlcHMubGVuZ3RoLGk9dGhpcy5yYW5nZXM7Zm9yKGxldCBvPTA7bzxpLmxlbmd0aDtvKyspe2xldHskZnJvbTpuLCR0bzpsfT1pW29dLGQ9ZS5tYXBwaW5nLnNsaWNlKHIpLGM9ZC5tYXAobi5wb3MpLHA9ZC5tYXAobC5wb3MpO28/ZS5kZWxldGVSYW5nZShjLHApOihlLnJlcGxhY2VSYW5nZVdpdGgoYyxwLHQpLGlvYShlLHIsdC5pc0lubGluZT8tMToxKSl9fXN0YXRpYyBmaW5kRnJvbShlLHQscj0hMSl7bGV0IGk9ZS5wYXJlbnQuaW5saW5lQ29udGVudD9uZXcgTnQoZSk6dm0oZS5ub2RlKDApLGUucGFyZW50LGUucG9zLGUuaW5kZXgoKSx0LHIpO2lmKGkpcmV0dXJuIGk7Zm9yKGxldCBvPWUuZGVwdGgtMTtvPj0wO28tLSl7bGV0IG49dDwwP3ZtKGUubm9kZSgwKSxlLm5vZGUobyksZS5iZWZvcmUobysxKSxlLmluZGV4KG8pLHQscik6dm0oZS5ub2RlKDApLGUubm9kZShvKSxlLmFmdGVyKG8rMSksZS5pbmRleChvKSsxLHQscik7aWYobilyZXR1cm4gbn1yZXR1cm4gbnVsbH1zdGF0aWMgbmVhcihlLHQ9MSl7cmV0dXJuIHRoaXMuZmluZEZyb20oZSx0KXx8dGhpcy5maW5kRnJvbShlLC10KXx8bmV3IElpKGUubm9kZSgwKSl9c3RhdGljIGF0U3RhcnQoZSl7cmV0dXJuIHZtKGUsZSwwLDAsMSl8fG5ldyBJaShlKX1zdGF0aWMgYXRFbmQoZSl7cmV0dXJuIHZtKGUsZSxlLmNvbnRlbnQuc2l6ZSxlLmNoaWxkQ291bnQsLTEpfHxuZXcgSWkoZSl9c3RhdGljIGZyb21KU09OKGUsdCl7aWYoIXR8fCF0LnR5cGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFNlbGVjdGlvbi5mcm9tSlNPTiIpO2xldCByPXZLZVt0LnR5cGVdO2lmKCFyKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzZWxlY3Rpb24gdHlwZSAke3QudHlwZX0gZGVmaW5lZGApO3JldHVybiByLmZyb21KU09OKGUsdCl9c3RhdGljIGpzb25JRChlLHQpe2lmKGUgaW4gdktlKXRocm93IG5ldyBSYW5nZUVycm9yKCJEdXBsaWNhdGUgdXNlIG9mIHNlbGVjdGlvbiBKU09OIElEICIrZSk7cmV0dXJuIHZLZVtlXT10LHQucHJvdG90eXBlLmpzb25JRD1lLHR9Z2V0Qm9va21hcmsoKXtyZXR1cm4gTnQuYmV0d2Vlbih0aGlzLiRhbmNob3IsdGhpcy4kaGVhZCkuZ2V0Qm9va21hcmsoKX19O0V0LnByb3RvdHlwZS52aXNpYmxlPSEwO1ZmPWNsYXNze3N0YXRpY3tzKHRoaXMsIlNlbGVjdGlvblJhbmdlIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLiRmcm9tPWUsdGhpcy4kdG89dH19LHJvYT0hMTtzKHNvYSwiY2hlY2tUZXh0U2VsZWN0aW9uIik7TnQ9Y2xhc3MgYSBleHRlbmRzIEV0e3N0YXRpY3tzKHRoaXMsIlRleHRTZWxlY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHQ9ZSl7c29hKGUpLHNvYSh0KSxzdXBlcihlLHQpfWdldCAkY3Vyc29yKCl7cmV0dXJuIHRoaXMuJGFuY2hvci5wb3M9PXRoaXMuJGhlYWQucG9zP3RoaXMuJGhlYWQ6bnVsbH1tYXAoZSx0KXtsZXQgcj1lLnJlc29sdmUodC5tYXAodGhpcy5oZWFkKSk7aWYoIXIucGFyZW50LmlubGluZUNvbnRlbnQpcmV0dXJuIEV0Lm5lYXIocik7bGV0IGk9ZS5yZXNvbHZlKHQubWFwKHRoaXMuYW5jaG9yKSk7cmV0dXJuIG5ldyBhKGkucGFyZW50LmlubGluZUNvbnRlbnQ/aTpyLHIpfXJlcGxhY2UoZSx0PXN0LmVtcHR5KXtpZihzdXBlci5yZXBsYWNlKGUsdCksdD09c3QuZW1wdHkpe2xldCByPXRoaXMuJGZyb20ubWFya3NBY3Jvc3ModGhpcy4kdG8pO3ImJmUuZW5zdXJlTWFya3Mocil9fWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgYSYmZS5hbmNob3I9PXRoaXMuYW5jaG9yJiZlLmhlYWQ9PXRoaXMuaGVhZH1nZXRCb29rbWFyaygpe3JldHVybiBuZXcgQWFlKHRoaXMuYW5jaG9yLHRoaXMuaGVhZCl9dG9KU09OKCl7cmV0dXJue3R5cGU6InRleHQiLGFuY2hvcjp0aGlzLmFuY2hvcixoZWFkOnRoaXMuaGVhZH19c3RhdGljIGZyb21KU09OKGUsdCl7aWYodHlwZW9mIHQuYW5jaG9yIT0ibnVtYmVyInx8dHlwZW9mIHQuaGVhZCE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFRleHRTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IGEoZS5yZXNvbHZlKHQuYW5jaG9yKSxlLnJlc29sdmUodC5oZWFkKSl9c3RhdGljIGNyZWF0ZShlLHQscj10KXtsZXQgaT1lLnJlc29sdmUodCk7cmV0dXJuIG5ldyB0aGlzKGkscj09dD9pOmUucmVzb2x2ZShyKSl9c3RhdGljIGJldHdlZW4oZSx0LHIpe2xldCBpPWUucG9zLXQucG9zO2lmKCghcnx8aSkmJihyPWk+PTA/MTotMSksIXQucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBvPUV0LmZpbmRGcm9tKHQsciwhMCl8fEV0LmZpbmRGcm9tKHQsLXIsITApO2lmKG8pdD1vLiRoZWFkO2Vsc2UgcmV0dXJuIEV0Lm5lYXIodCxyKX1yZXR1cm4gZS5wYXJlbnQuaW5saW5lQ29udGVudHx8KGk9PTA/ZT10OihlPShFdC5maW5kRnJvbShlLC1yLCEwKXx8RXQuZmluZEZyb20oZSxyLCEwKSkuJGFuY2hvcixlLnBvczx0LnBvcyE9aTwwJiYoZT10KSkpLG5ldyBhKGUsdCl9fTtFdC5qc29uSUQoInRleHQiLE50KTtBYWU9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJUZXh0Qm9va21hcmsiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuYW5jaG9yPWUsdGhpcy5oZWFkPXR9bWFwKGUpe3JldHVybiBuZXcgYShlLm1hcCh0aGlzLmFuY2hvciksZS5tYXAodGhpcy5oZWFkKSl9cmVzb2x2ZShlKXtyZXR1cm4gTnQuYmV0d2VlbihlLnJlc29sdmUodGhpcy5hbmNob3IpLGUucmVzb2x2ZSh0aGlzLmhlYWQpKX19LGt0PWNsYXNzIGEgZXh0ZW5kcyBFdHtzdGF0aWN7cyh0aGlzLCJOb2RlU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7bGV0IHQ9ZS5ub2RlQWZ0ZXIscj1lLm5vZGUoMCkucmVzb2x2ZShlLnBvcyt0Lm5vZGVTaXplKTtzdXBlcihlLHIpLHRoaXMubm9kZT10fW1hcChlLHQpe2xldHtkZWxldGVkOnIscG9zOml9PXQubWFwUmVzdWx0KHRoaXMuYW5jaG9yKSxvPWUucmVzb2x2ZShpKTtyZXR1cm4gcj9FdC5uZWFyKG8pOm5ldyBhKG8pfWNvbnRlbnQoKXtyZXR1cm4gbmV3IHN0KGplLmZyb20odGhpcy5ub2RlKSwwLDApfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgYSYmZS5hbmNob3I9PXRoaXMuYW5jaG9yfXRvSlNPTigpe3JldHVybnt0eXBlOiJub2RlIixhbmNob3I6dGhpcy5hbmNob3J9fWdldEJvb2ttYXJrKCl7cmV0dXJuIG5ldyB4S2UodGhpcy5hbmNob3IpfXN0YXRpYyBmcm9tSlNPTihlLHQpe2lmKHR5cGVvZiB0LmFuY2hvciE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE5vZGVTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IGEoZS5yZXNvbHZlKHQuYW5jaG9yKSl9c3RhdGljIGNyZWF0ZShlLHQpe3JldHVybiBuZXcgYShlLnJlc29sdmUodCkpfXN0YXRpYyBpc1NlbGVjdGFibGUoZSl7cmV0dXJuIWUuaXNUZXh0JiZlLnR5cGUuc3BlYy5zZWxlY3RhYmxlIT09ITF9fTtrdC5wcm90b3R5cGUudmlzaWJsZT0hMSxFdC5qc29uSUQoIm5vZGUiLGt0KTt4S2U9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJOb2RlQm9va21hcmsiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmFuY2hvcj1lfW1hcChlKXtsZXR7ZGVsZXRlZDp0LHBvczpyfT1lLm1hcFJlc3VsdCh0aGlzLmFuY2hvcik7cmV0dXJuIHQ/bmV3IEFhZShyLHIpOm5ldyBhKHIpfXJlc29sdmUoZSl7bGV0IHQ9ZS5yZXNvbHZlKHRoaXMuYW5jaG9yKSxyPXQubm9kZUFmdGVyO3JldHVybiByJiZrdC5pc1NlbGVjdGFibGUocik/bmV3IGt0KHQpOkV0Lm5lYXIodCl9fSxJaT1jbGFzcyBhIGV4dGVuZHMgRXR7c3RhdGlje3ModGhpcywiQWxsU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5yZXNvbHZlKDApLGUucmVzb2x2ZShlLmNvbnRlbnQuc2l6ZSkpfXJlcGxhY2UoZSx0PXN0LmVtcHR5KXtpZih0PT1zdC5lbXB0eSl7ZS5kZWxldGUoMCxlLmRvYy5jb250ZW50LnNpemUpO2xldCByPUV0LmF0U3RhcnQoZS5kb2MpO3IuZXEoZS5zZWxlY3Rpb24pfHxlLnNldFNlbGVjdGlvbihyKX1lbHNlIHN1cGVyLnJlcGxhY2UoZSx0KX10b0pTT04oKXtyZXR1cm57dHlwZToiYWxsIn19c3RhdGljIGZyb21KU09OKGUpe3JldHVybiBuZXcgYShlKX1tYXAoZSl7cmV0dXJuIG5ldyBhKGUpfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgYX1nZXRCb29rbWFyaygpe3JldHVybiBPRGF9fTtFdC5qc29uSUQoImFsbCIsSWkpO09EYT17bWFwKCl7cmV0dXJuIHRoaXN9LHJlc29sdmUoYSl7cmV0dXJuIG5ldyBJaShhKX19O3Modm0sImZpbmRTZWxlY3Rpb25JbiIpO3MoaW9hLCJzZWxlY3Rpb25Ub0luc2VydGlvbkVuZCIpO29vYT0xLFBhZT0yLG5vYT00LEVhZT1jbGFzcyBleHRlbmRzIEZme3N0YXRpY3tzKHRoaXMsIlRyYW5zYWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5kb2MpLHRoaXMuY3VyU2VsZWN0aW9uRm9yPTAsdGhpcy51cGRhdGVkPTAsdGhpcy5tZXRhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy50aW1lPURhdGUubm93KCksdGhpcy5jdXJTZWxlY3Rpb249ZS5zZWxlY3Rpb24sdGhpcy5zdG9yZWRNYXJrcz1lLnN0b3JlZE1hcmtzfWdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb25Gb3I8dGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLmN1clNlbGVjdGlvbj10aGlzLmN1clNlbGVjdGlvbi5tYXAodGhpcy5kb2MsdGhpcy5tYXBwaW5nLnNsaWNlKHRoaXMuY3VyU2VsZWN0aW9uRm9yKSksdGhpcy5jdXJTZWxlY3Rpb25Gb3I9dGhpcy5zdGVwcy5sZW5ndGgpLHRoaXMuY3VyU2VsZWN0aW9ufXNldFNlbGVjdGlvbihlKXtpZihlLiRmcm9tLmRvYyE9dGhpcy5kb2MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNlbGVjdGlvbiBwYXNzZWQgdG8gc2V0U2VsZWN0aW9uIG11c3QgcG9pbnQgYXQgdGhlIGN1cnJlbnQgZG9jdW1lbnQiKTtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb249ZSx0aGlzLmN1clNlbGVjdGlvbkZvcj10aGlzLnN0ZXBzLmxlbmd0aCx0aGlzLnVwZGF0ZWQ9KHRoaXMudXBkYXRlZHxvb2EpJn5QYWUsdGhpcy5zdG9yZWRNYXJrcz1udWxsLHRoaXN9Z2V0IHNlbGVjdGlvblNldCgpe3JldHVybih0aGlzLnVwZGF0ZWQmb29hKT4wfXNldFN0b3JlZE1hcmtzKGUpe3JldHVybiB0aGlzLnN0b3JlZE1hcmtzPWUsdGhpcy51cGRhdGVkfD1QYWUsdGhpc31lbnN1cmVNYXJrcyhlKXtyZXR1cm4gRGEuc2FtZVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpLGUpfHx0aGlzLnNldFN0b3JlZE1hcmtzKGUpLHRoaXN9YWRkU3RvcmVkTWFyayhlKXtyZXR1cm4gdGhpcy5lbnN1cmVNYXJrcyhlLmFkZFRvU2V0KHRoaXMuc3RvcmVkTWFya3N8fHRoaXMuc2VsZWN0aW9uLiRoZWFkLm1hcmtzKCkpKX1yZW1vdmVTdG9yZWRNYXJrKGUpe3JldHVybiB0aGlzLmVuc3VyZU1hcmtzKGUucmVtb3ZlRnJvbVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kaGVhZC5tYXJrcygpKSl9Z2V0IHN0b3JlZE1hcmtzU2V0KCl7cmV0dXJuKHRoaXMudXBkYXRlZCZQYWUpPjB9YWRkU3RlcChlLHQpe3N1cGVyLmFkZFN0ZXAoZSx0KSx0aGlzLnVwZGF0ZWQ9dGhpcy51cGRhdGVkJn5QYWUsdGhpcy5zdG9yZWRNYXJrcz1udWxsfXNldFRpbWUoZSl7cmV0dXJuIHRoaXMudGltZT1lLHRoaXN9cmVwbGFjZVNlbGVjdGlvbihlKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzLGUpLHRoaXN9cmVwbGFjZVNlbGVjdGlvbldpdGgoZSx0PSEwKXtsZXQgcj10aGlzLnNlbGVjdGlvbjtyZXR1cm4gdCYmKGU9ZS5tYXJrKHRoaXMuc3RvcmVkTWFya3N8fChyLmVtcHR5P3IuJGZyb20ubWFya3MoKTpyLiRmcm9tLm1hcmtzQWNyb3NzKHIuJHRvKXx8RGEubm9uZSkpKSxyLnJlcGxhY2VXaXRoKHRoaXMsZSksdGhpc31kZWxldGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzKSx0aGlzfWluc2VydFRleHQoZSx0LHIpe2xldCBpPXRoaXMuZG9jLnR5cGUuc2NoZW1hO2lmKHQ9PW51bGwpcmV0dXJuIGU/dGhpcy5yZXBsYWNlU2VsZWN0aW9uV2l0aChpLnRleHQoZSksITApOnRoaXMuZGVsZXRlU2VsZWN0aW9uKCk7e2lmKHI9PW51bGwmJihyPXQpLCFlKXJldHVybiB0aGlzLmRlbGV0ZVJhbmdlKHQscik7bGV0IG89dGhpcy5zdG9yZWRNYXJrcztpZighbyl7bGV0IG49dGhpcy5kb2MucmVzb2x2ZSh0KTtvPXI9PXQ/bi5tYXJrcygpOm4ubWFya3NBY3Jvc3ModGhpcy5kb2MucmVzb2x2ZShyKSl9cmV0dXJuIHRoaXMucmVwbGFjZVJhbmdlV2l0aCh0LHIsaS50ZXh0KGUsbykpLCF0aGlzLnNlbGVjdGlvbi5lbXB0eSYmdGhpcy5zZWxlY3Rpb24udG89PXQrZS5sZW5ndGgmJnRoaXMuc2V0U2VsZWN0aW9uKEV0Lm5lYXIodGhpcy5zZWxlY3Rpb24uJHRvKSksdGhpc319c2V0TWV0YShlLHQpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldPXQsdGhpc31nZXRNZXRhKGUpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldfWdldCBpc0dlbmVyaWMoKXtmb3IobGV0IGUgaW4gdGhpcy5tZXRhKXJldHVybiExO3JldHVybiEwfXNjcm9sbEludG9WaWV3KCl7cmV0dXJuIHRoaXMudXBkYXRlZHw9bm9hLHRoaXN9Z2V0IHNjcm9sbGVkSW50b1ZpZXcoKXtyZXR1cm4odGhpcy51cGRhdGVkJm5vYSk+MH19O3MobG9hLCJiaW5kIik7cWY9Y2xhc3N7c3RhdGlje3ModGhpcywiRmllbGREZXNjIil9Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMubmFtZT1lLHRoaXMuaW5pdD1sb2EodC5pbml0LHIpLHRoaXMuYXBwbHk9bG9hKHQuYXBwbHkscil9fSxGRGE9W25ldyBxZigiZG9jIix7aW5pdChhKXtyZXR1cm4gYS5kb2N8fGEuc2NoZW1hLnRvcE5vZGVUeXBlLmNyZWF0ZUFuZEZpbGwoKX0sYXBwbHkoYSl7cmV0dXJuIGEuZG9jfX0pLG5ldyBxZigic2VsZWN0aW9uIix7aW5pdChhLGUpe3JldHVybiBhLnNlbGVjdGlvbnx8RXQuYXRTdGFydChlLmRvYyl9LGFwcGx5KGEpe3JldHVybiBhLnNlbGVjdGlvbn19KSxuZXcgcWYoInN0b3JlZE1hcmtzIix7aW5pdChhKXtyZXR1cm4gYS5zdG9yZWRNYXJrc3x8bnVsbH0sYXBwbHkoYSxlLHQscil7cmV0dXJuIHIuc2VsZWN0aW9uLiRjdXJzb3I/YS5zdG9yZWRNYXJrczpudWxsfX0pLG5ldyBxZigic2Nyb2xsVG9TZWxlY3Rpb24iLHtpbml0KCl7cmV0dXJuIDB9LGFwcGx5KGEsZSl7cmV0dXJuIGEuc2Nyb2xsZWRJbnRvVmlldz9lKzE6ZX19KV0sWVU9Y2xhc3N7c3RhdGlje3ModGhpcywiQ29uZmlndXJhdGlvbiIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zY2hlbWE9ZSx0aGlzLnBsdWdpbnM9W10sdGhpcy5wbHVnaW5zQnlLZXk9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmZpZWxkcz1GRGEuc2xpY2UoKSx0JiZ0LmZvckVhY2gocj0+e2lmKHRoaXMucGx1Z2luc0J5S2V5W3Iua2V5XSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQWRkaW5nIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgYSBrZXllZCBwbHVnaW4gKCIrci5rZXkrIikiKTt0aGlzLnBsdWdpbnMucHVzaChyKSx0aGlzLnBsdWdpbnNCeUtleVtyLmtleV09cixyLnNwZWMuc3RhdGUmJnRoaXMuZmllbGRzLnB1c2gobmV3IHFmKHIua2V5LHIuc3BlYy5zdGF0ZSxyKSl9KX19LEtVPWNsYXNzIGF7c3RhdGlje3ModGhpcywiRWRpdG9yU3RhdGUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmNvbmZpZz1lfWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5jb25maWcuc2NoZW1hfWdldCBwbHVnaW5zKCl7cmV0dXJuIHRoaXMuY29uZmlnLnBsdWdpbnN9YXBwbHkoZSl7cmV0dXJuIHRoaXMuYXBwbHlUcmFuc2FjdGlvbihlKS5zdGF0ZX1maWx0ZXJUcmFuc2FjdGlvbihlLHQ9LTEpe2ZvcihsZXQgcj0wO3I8dGhpcy5jb25maWcucGx1Z2lucy5sZW5ndGg7cisrKWlmKHIhPXQpe2xldCBpPXRoaXMuY29uZmlnLnBsdWdpbnNbcl07aWYoaS5zcGVjLmZpbHRlclRyYW5zYWN0aW9uJiYhaS5zcGVjLmZpbHRlclRyYW5zYWN0aW9uLmNhbGwoaSxlLHRoaXMpKXJldHVybiExfXJldHVybiEwfWFwcGx5VHJhbnNhY3Rpb24oZSl7aWYoIXRoaXMuZmlsdGVyVHJhbnNhY3Rpb24oZSkpcmV0dXJue3N0YXRlOnRoaXMsdHJhbnNhY3Rpb25zOltdfTtsZXQgdD1bZV0scj10aGlzLmFwcGx5SW5uZXIoZSksaT1udWxsO2Zvcig7Oyl7bGV0IG89ITE7Zm9yKGxldCBuPTA7bjx0aGlzLmNvbmZpZy5wbHVnaW5zLmxlbmd0aDtuKyspe2xldCBsPXRoaXMuY29uZmlnLnBsdWdpbnNbbl07aWYobC5zcGVjLmFwcGVuZFRyYW5zYWN0aW9uKXtsZXQgZD1pP2lbbl0ubjowLGM9aT9pW25dLnN0YXRlOnRoaXMscD1kPHQubGVuZ3RoJiZsLnNwZWMuYXBwZW5kVHJhbnNhY3Rpb24uY2FsbChsLGQ/dC5zbGljZShkKTp0LGMscik7aWYocCYmci5maWx0ZXJUcmFuc2FjdGlvbihwLG4pKXtpZihwLnNldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iLGUpLCFpKXtpPVtdO2ZvcihsZXQgdT0wO3U8dGhpcy5jb25maWcucGx1Z2lucy5sZW5ndGg7dSsrKWkucHVzaCh1PG4/e3N0YXRlOnIsbjp0Lmxlbmd0aH06e3N0YXRlOnRoaXMsbjowfSl9dC5wdXNoKHApLHI9ci5hcHBseUlubmVyKHApLG89ITB9aSYmKGlbbl09e3N0YXRlOnIsbjp0Lmxlbmd0aH0pfX1pZighbylyZXR1cm57c3RhdGU6cix0cmFuc2FjdGlvbnM6dH19fWFwcGx5SW5uZXIoZSl7aWYoIWUuYmVmb3JlLmVxKHRoaXMuZG9jKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXBwbHlpbmcgYSBtaXNtYXRjaGVkIHRyYW5zYWN0aW9uIik7bGV0IHQ9bmV3IGEodGhpcy5jb25maWcpLHI9dGhpcy5jb25maWcuZmllbGRzO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGg7aSsrKXtsZXQgbz1yW2ldO3Rbby5uYW1lXT1vLmFwcGx5KGUsdGhpc1tvLm5hbWVdLHRoaXMsdCl9cmV0dXJuIHR9Z2V0IHRyKCl7cmV0dXJuIG5ldyBFYWUodGhpcyl9c3RhdGljIGNyZWF0ZShlKXtsZXQgdD1uZXcgWVUoZS5kb2M/ZS5kb2MudHlwZS5zY2hlbWE6ZS5zY2hlbWEsZS5wbHVnaW5zKSxyPW5ldyBhKHQpO2ZvcihsZXQgaT0wO2k8dC5maWVsZHMubGVuZ3RoO2krKylyW3QuZmllbGRzW2ldLm5hbWVdPXQuZmllbGRzW2ldLmluaXQoZSxyKTtyZXR1cm4gcn1yZWNvbmZpZ3VyZShlKXtsZXQgdD1uZXcgWVUodGhpcy5zY2hlbWEsZS5wbHVnaW5zKSxyPXQuZmllbGRzLGk9bmV3IGEodCk7Zm9yKGxldCBvPTA7bzxyLmxlbmd0aDtvKyspe2xldCBuPXJbb10ubmFtZTtpW25dPXRoaXMuaGFzT3duUHJvcGVydHkobik/dGhpc1tuXTpyW29dLmluaXQoZSxpKX1yZXR1cm4gaX10b0pTT04oZSl7bGV0IHQ9e2RvYzp0aGlzLmRvYy50b0pTT04oKSxzZWxlY3Rpb246dGhpcy5zZWxlY3Rpb24udG9KU09OKCl9O2lmKHRoaXMuc3RvcmVkTWFya3MmJih0LnN0b3JlZE1hcmtzPXRoaXMuc3RvcmVkTWFya3MubWFwKHI9PnIudG9KU09OKCkpKSxlJiZ0eXBlb2YgZT09Im9iamVjdCIpZm9yKGxldCByIGluIGUpe2lmKHI9PSJkb2MifHxyPT0ic2VsZWN0aW9uIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVGhlIEpTT04gZmllbGRzIGBkb2NgIGFuZCBgc2VsZWN0aW9uYCBhcmUgcmVzZXJ2ZWQiKTtsZXQgaT1lW3JdLG89aS5zcGVjLnN0YXRlO28mJm8udG9KU09OJiYodFtyXT1vLnRvSlNPTi5jYWxsKGksdGhpc1tpLmtleV0pKX1yZXR1cm4gdH1zdGF0aWMgZnJvbUpTT04oZSx0LHIpe2lmKCF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBFZGl0b3JTdGF0ZS5mcm9tSlNPTiIpO2lmKCFlLnNjaGVtYSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVxdWlyZWQgY29uZmlnIGZpZWxkICdzY2hlbWEnIG1pc3NpbmciKTtsZXQgaT1uZXcgWVUoZS5zY2hlbWEsZS5wbHVnaW5zKSxvPW5ldyBhKGkpO3JldHVybiBpLmZpZWxkcy5mb3JFYWNoKG49PntpZihuLm5hbWU9PSJkb2MiKW8uZG9jPUtpLmZyb21KU09OKGUuc2NoZW1hLHQuZG9jKTtlbHNlIGlmKG4ubmFtZT09InNlbGVjdGlvbiIpby5zZWxlY3Rpb249RXQuZnJvbUpTT04oby5kb2MsdC5zZWxlY3Rpb24pO2Vsc2UgaWYobi5uYW1lPT0ic3RvcmVkTWFya3MiKXQuc3RvcmVkTWFya3MmJihvLnN0b3JlZE1hcmtzPXQuc3RvcmVkTWFya3MubWFwKGUuc2NoZW1hLm1hcmtGcm9tSlNPTikpO2Vsc2V7aWYocilmb3IobGV0IGwgaW4gcil7bGV0IGQ9cltsXSxjPWQuc3BlYy5zdGF0ZTtpZihkLmtleT09bi5uYW1lJiZjJiZjLmZyb21KU09OJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxsKSl7b1tuLm5hbWVdPWMuZnJvbUpTT04uY2FsbChkLGUsdFtsXSxvKTtyZXR1cm59fW9bbi5uYW1lXT1uLmluaXQoZSxvKX19KSxvfX07cyhjb2EsImJpbmRQcm9wcyIpO2FyPWNsYXNze3N0YXRpY3tzKHRoaXMsIlBsdWdpbiIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3BlYz1lLHRoaXMucHJvcHM9e30sZS5wcm9wcyYmY29hKGUucHJvcHMsdGhpcyx0aGlzLnByb3BzKSx0aGlzLmtleT1lLmtleT9lLmtleS5rZXk6ZG9hKCJwbHVnaW4iKX1nZXRTdGF0ZShlKXtyZXR1cm4gZVt0aGlzLmtleV19fSx5S2U9T2JqZWN0LmNyZWF0ZShudWxsKTtzKGRvYSwiY3JlYXRlS2V5Iik7YnM9Y2xhc3N7c3RhdGlje3ModGhpcywiUGx1Z2luS2V5Iil9Y29uc3RydWN0b3IoZT0ia2V5Iil7dGhpcy5rZXk9ZG9hKGUpfWdldChlKXtyZXR1cm4gZS5jb25maWcucGx1Z2luc0J5S2V5W3RoaXMua2V5XX1nZXRTdGF0ZShlKXtyZXR1cm4gZVt0aGlzLmtleV19fX0pO3ZhciBaVT1mKCgpPT57bWMoKX0pO2Z1bmN0aW9uIHVvYShhLGUsdCxyLGkpe2Zvcih2YXIgbzs7KXtpZihhPT10JiZlPT1yKXJldHVybiEwO2lmKGU9PShpPDA/MDpObihhKSkpe2xldCBuPWEucGFyZW50Tm9kZTtpZighbnx8bi5ub2RlVHlwZSE9MXx8WFUoYSl8fEhEYS50ZXN0KGEubm9kZU5hbWUpfHxhLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4hMTtlPWlpKGEpKyhpPDA/MDoxKSxhPW59ZWxzZSBpZihhLm5vZGVUeXBlPT0xKXtsZXQgbj1hLmNoaWxkTm9kZXNbZSsoaTwwPy0xOjApXTtpZihuLm5vZGVUeXBlPT0xJiZuLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilpZighKChvPW4ucG1WaWV3RGVzYyk9PT1udWxsfHxvPT09dm9pZCAwKSYmby5pZ25vcmVGb3JTZWxlY3Rpb24pZSs9aTtlbHNlIHJldHVybiExO2Vsc2UgYT1uLGU9aTwwP05uKGEpOjB9ZWxzZSByZXR1cm4hMX19ZnVuY3Rpb24gTm4oYSl7cmV0dXJuIGEubm9kZVR5cGU9PTM/YS5ub2RlVmFsdWUubGVuZ3RoOmEuY2hpbGROb2Rlcy5sZW5ndGh9ZnVuY3Rpb24gcURhKGEsZSl7Zm9yKDs7KXtpZihhLm5vZGVUeXBlPT0zJiZlKXJldHVybiBhO2lmKGEubm9kZVR5cGU9PTEmJmU+MCl7aWYoYS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuIG51bGw7YT1hLmNoaWxkTm9kZXNbZS0xXSxlPU5uKGEpfWVsc2UgaWYoYS5wYXJlbnROb2RlJiYhWFUoYSkpZT1paShhKSxhPWEucGFyZW50Tm9kZTtlbHNlIHJldHVybiBudWxsfX1mdW5jdGlvbiBWRGEoYSxlKXtmb3IoOzspe2lmKGEubm9kZVR5cGU9PTMmJmU8YS5ub2RlVmFsdWUubGVuZ3RoKXJldHVybiBhO2lmKGEubm9kZVR5cGU9PTEmJmU8YS5jaGlsZE5vZGVzLmxlbmd0aCl7aWYoYS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuIG51bGw7YT1hLmNoaWxkTm9kZXNbZV0sZT0wfWVsc2UgaWYoYS5wYXJlbnROb2RlJiYhWFUoYSkpZT1paShhKSsxLGE9YS5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGx9fWZ1bmN0aW9uIGpEYShhLGUsdCl7Zm9yKGxldCByPWU9PTAsaT1lPT1ObihhKTtyfHxpOyl7aWYoYT09dClyZXR1cm4hMDtsZXQgbz1paShhKTtpZihhPWEucGFyZW50Tm9kZSwhYSlyZXR1cm4hMTtyPXImJm89PTAsaT1pJiZvPT1ObihhKX19ZnVuY3Rpb24gWFUoYSl7bGV0IGU7Zm9yKGxldCB0PWE7dCYmIShlPXQucG1WaWV3RGVzYyk7dD10LnBhcmVudE5vZGUpO3JldHVybiBlJiZlLm5vZGUmJmUubm9kZS5pc0Jsb2NrJiYoZS5kb209PWF8fGUuY29udGVudERPTT09YSl9ZnVuY3Rpb24gVWYoYSxlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoImtleWRvd24iLCEwLCEwKSx0LmtleUNvZGU9YSx0LmtleT10LmNvZGU9ZSx0fWZ1bmN0aW9uIFVEYShhKXtsZXQgZT1hLmFjdGl2ZUVsZW1lbnQ7Zm9yKDtlJiZlLnNoYWRvd1Jvb3Q7KWU9ZS5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIGV9ZnVuY3Rpb24gV0RhKGEsZSx0KXtpZihhLmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpdHJ5e2xldCByPWEuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHQpO2lmKHIpcmV0dXJue25vZGU6ci5vZmZzZXROb2RlLG9mZnNldDpNYXRoLm1pbihObihyLm9mZnNldE5vZGUpLHIub2Zmc2V0KX19Y2F0Y2h7fWlmKGEuY2FyZXRSYW5nZUZyb21Qb2ludCl7bGV0IHI9YS5jYXJldFJhbmdlRnJvbVBvaW50KGUsdCk7aWYocilyZXR1cm57bm9kZTpyLnN0YXJ0Q29udGFpbmVyLG9mZnNldDpNYXRoLm1pbihObihyLnN0YXJ0Q29udGFpbmVyKSxyLnN0YXJ0T2Zmc2V0KX19fWZ1bmN0aW9uIFlEYShhKXtsZXQgZT1hLmRlZmF1bHRWaWV3JiZhLmRlZmF1bHRWaWV3LnZpc3VhbFZpZXdwb3J0O3JldHVybiBlP3tsZWZ0OjAscmlnaHQ6ZS53aWR0aCx0b3A6MCxib3R0b206ZS5oZWlnaHR9OntsZWZ0OjAscmlnaHQ6YS5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsdG9wOjAsYm90dG9tOmEuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodH19ZnVuY3Rpb24gdmMoYSxlKXtyZXR1cm4gdHlwZW9mIGE9PSJudW1iZXIiP2E6YVtlXX1mdW5jdGlvbiBLRGEoYSl7bGV0IGU9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PWUud2lkdGgvYS5vZmZzZXRXaWR0aHx8MSxyPWUuaGVpZ2h0L2Eub2Zmc2V0SGVpZ2h0fHwxO3JldHVybntsZWZ0OmUubGVmdCxyaWdodDplLmxlZnQrYS5jbGllbnRXaWR0aCp0LHRvcDplLnRvcCxib3R0b206ZS50b3ArYS5jbGllbnRIZWlnaHQqcn19ZnVuY3Rpb24gZ29hKGEsZSx0KXtsZXQgcj1hLnNvbWVQcm9wKCJzY3JvbGxUaHJlc2hvbGQiKXx8MCxpPWEuc29tZVByb3AoInNjcm9sbE1hcmdpbiIpfHw1LG89YS5kb20ub3duZXJEb2N1bWVudDtmb3IobGV0IG49dHx8YS5kb207bjspe2lmKG4ubm9kZVR5cGUhPTEpe249eG0obik7Y29udGludWV9bGV0IGw9bixkPWw9PW8uYm9keSxjPWQ/WURhKG8pOktEYShsKSxwPTAsdT0wO2lmKGUudG9wPGMudG9wK3ZjKHIsInRvcCIpP3U9LShjLnRvcC1lLnRvcCt2YyhpLCJ0b3AiKSk6ZS5ib3R0b20+Yy5ib3R0b20tdmMociwiYm90dG9tIikmJih1PWUuYm90dG9tLWUudG9wPmMuYm90dG9tLWMudG9wP2UudG9wK3ZjKGksInRvcCIpLWMudG9wOmUuYm90dG9tLWMuYm90dG9tK3ZjKGksImJvdHRvbSIpKSxlLmxlZnQ8Yy5sZWZ0K3ZjKHIsImxlZnQiKT9wPS0oYy5sZWZ0LWUubGVmdCt2YyhpLCJsZWZ0IikpOmUucmlnaHQ+Yy5yaWdodC12YyhyLCJyaWdodCIpJiYocD1lLnJpZ2h0LWMucmlnaHQrdmMoaSwicmlnaHQiKSkscHx8dSlpZihkKW8uZGVmYXVsdFZpZXcuc2Nyb2xsQnkocCx1KTtlbHNle2xldCB2PWwuc2Nyb2xsTGVmdCx4PWwuc2Nyb2xsVG9wO3UmJihsLnNjcm9sbFRvcCs9dSkscCYmKGwuc2Nyb2xsTGVmdCs9cCk7bGV0IGI9bC5zY3JvbGxMZWZ0LXYsZz1sLnNjcm9sbFRvcC14O2U9e2xlZnQ6ZS5sZWZ0LWIsdG9wOmUudG9wLWcscmlnaHQ6ZS5yaWdodC1iLGJvdHRvbTplLmJvdHRvbS1nfX1sZXQgbT1kPyJmaXhlZCI6Z2V0Q29tcHV0ZWRTdHlsZShuKS5wb3NpdGlvbjtpZigvXihmaXhlZHxzdGlja3kpJC8udGVzdChtKSlicmVhaztuPW09PSJhYnNvbHV0ZSI/bi5vZmZzZXRQYXJlbnQ6eG0obil9fWZ1bmN0aW9uIFpEYShhKXtsZXQgZT1hLmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PU1hdGgubWF4KDAsZS50b3ApLHIsaTtmb3IobGV0IG89KGUubGVmdCtlLnJpZ2h0KS8yLG49dCsxO248TWF0aC5taW4oaW5uZXJIZWlnaHQsZS5ib3R0b20pO24rPTUpe2xldCBsPWEucm9vdC5lbGVtZW50RnJvbVBvaW50KG8sbik7aWYoIWx8fGw9PWEuZG9tfHwhYS5kb20uY29udGFpbnMobCkpY29udGludWU7bGV0IGQ9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihkLnRvcD49dC0yMCl7cj1sLGk9ZC50b3A7YnJlYWt9fXJldHVybntyZWZET006cixyZWZUb3A6aSxzdGFjazpib2EoYS5kb20pfX1mdW5jdGlvbiBib2EoYSl7bGV0IGU9W10sdD1hLm93bmVyRG9jdW1lbnQ7Zm9yKGxldCByPWE7ciYmKGUucHVzaCh7ZG9tOnIsdG9wOnIuc2Nyb2xsVG9wLGxlZnQ6ci5zY3JvbGxMZWZ0fSksYSE9dCk7cj14bShyKSk7cmV0dXJuIGV9ZnVuY3Rpb24gWERhKHtyZWZET006YSxyZWZUb3A6ZSxzdGFjazp0fSl7bGV0IHI9YT9hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDowO3ZvYSh0LHI9PTA/MDpyLWUpfWZ1bmN0aW9uIHZvYShhLGUpe2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCsrKXtsZXR7ZG9tOnIsdG9wOmksbGVmdDpvfT1hW3RdO3Iuc2Nyb2xsVG9wIT1pK2UmJihyLnNjcm9sbFRvcD1pK2UpLHIuc2Nyb2xsTGVmdCE9byYmKHIuc2Nyb2xsTGVmdD1vKX19ZnVuY3Rpb24gUURhKGEpe2lmKGEuc2V0QWN0aXZlKXJldHVybiBhLnNldEFjdGl2ZSgpO2lmKHdtKXJldHVybiBhLmZvY3VzKHdtKTtsZXQgZT1ib2EoYSk7YS5mb2N1cyh3bT09bnVsbD97Z2V0IHByZXZlbnRTY3JvbGwoKXtyZXR1cm4gd209e3ByZXZlbnRTY3JvbGw6ITB9LCEwfX06dm9pZCAwKSx3bXx8KHdtPSExLHZvYShlLDApKX1mdW5jdGlvbiB4b2EoYSxlKXtsZXQgdCxyPTJlOCxpLG89MCxuPWUudG9wLGw9ZS50b3AsZCxjO2ZvcihsZXQgcD1hLmZpcnN0Q2hpbGQsdT0wO3A7cD1wLm5leHRTaWJsaW5nLHUrKyl7bGV0IG07aWYocC5ub2RlVHlwZT09MSltPXAuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKHAubm9kZVR5cGU9PTMpbT1nYyhwKS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCB2PTA7djxtLmxlbmd0aDt2Kyspe2xldCB4PW1bdl07aWYoeC50b3A8PW4mJnguYm90dG9tPj1sKXtuPU1hdGgubWF4KHguYm90dG9tLG4pLGw9TWF0aC5taW4oeC50b3AsbCk7bGV0IGI9eC5sZWZ0PmUubGVmdD94LmxlZnQtZS5sZWZ0OngucmlnaHQ8ZS5sZWZ0P2UubGVmdC14LnJpZ2h0OjA7aWYoYjxyKXt0PXAscj1iLGk9YiYmdC5ub2RlVHlwZT09Mz97bGVmdDp4LnJpZ2h0PGUubGVmdD94LnJpZ2h0OngubGVmdCx0b3A6ZS50b3B9OmUscC5ub2RlVHlwZT09MSYmYiYmKG89dSsoZS5sZWZ0Pj0oeC5sZWZ0K3gucmlnaHQpLzI/MTowKSk7Y29udGludWV9fWVsc2UgeC50b3A+ZS50b3AmJiFkJiZ4LmxlZnQ8PWUubGVmdCYmeC5yaWdodD49ZS5sZWZ0JiYoZD1wLGM9e2xlZnQ6TWF0aC5tYXgoeC5sZWZ0LE1hdGgubWluKHgucmlnaHQsZS5sZWZ0KSksdG9wOngudG9wfSk7IXQmJihlLmxlZnQ+PXgucmlnaHQmJmUudG9wPj14LnRvcHx8ZS5sZWZ0Pj14LmxlZnQmJmUudG9wPj14LmJvdHRvbSkmJihvPXUrMSl9fXJldHVybiF0JiZkJiYodD1kLGk9YyxyPTApLHQmJnQubm9kZVR5cGU9PTM/SkRhKHQsaSk6IXR8fHImJnQubm9kZVR5cGU9PTE/e25vZGU6YSxvZmZzZXQ6b306eG9hKHQsaSl9ZnVuY3Rpb24gSkRhKGEsZSl7bGV0IHQ9YS5ub2RlVmFsdWUubGVuZ3RoLHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxpO2ZvcihsZXQgbz0wO288dDtvKyspe3Iuc2V0RW5kKGEsbysxKSxyLnNldFN0YXJ0KGEsbyk7bGV0IG49YjQociwxKTtpZihuLnRvcCE9bi5ib3R0b20mJnpLZShlLG4pKXtpPXtub2RlOmEsb2Zmc2V0Om8rKGUubGVmdD49KG4ubGVmdCtuLnJpZ2h0KS8yPzE6MCl9O2JyZWFrfX1yZXR1cm4gci5kZXRhY2goKSxpfHx7bm9kZTphLG9mZnNldDowfX1mdW5jdGlvbiB6S2UoYSxlKXtyZXR1cm4gYS5sZWZ0Pj1lLmxlZnQtMSYmYS5sZWZ0PD1lLnJpZ2h0KzEmJmEudG9wPj1lLnRvcC0xJiZhLnRvcDw9ZS5ib3R0b20rMX1mdW5jdGlvbiBlQWEoYSxlKXtsZXQgdD1hLnBhcmVudE5vZGU7cmV0dXJuIHQmJi9ebGkkL2kudGVzdCh0Lm5vZGVOYW1lKSYmZS5sZWZ0PGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdD90OmF9ZnVuY3Rpb24gdEFhKGEsZSx0KXtsZXR7bm9kZTpyLG9mZnNldDppfT14b2EoZSx0KSxvPS0xO2lmKHIubm9kZVR5cGU9PTEmJiFyLmZpcnN0Q2hpbGQpe2xldCBuPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bz1uLmxlZnQhPW4ucmlnaHQmJnQubGVmdD4obi5sZWZ0K24ucmlnaHQpLzI/MTotMX1yZXR1cm4gYS5kb2NWaWV3LnBvc0Zyb21ET00ocixpLG8pfWZ1bmN0aW9uIGFBYShhLGUsdCxyKXtsZXQgaT0tMTtmb3IobGV0IG89ZSxuPSExO28hPWEuZG9tOyl7bGV0IGw9YS5kb2NWaWV3Lm5lYXJlc3REZXNjKG8sITApLGQ7aWYoIWwpcmV0dXJuIG51bGw7aWYobC5kb20ubm9kZVR5cGU9PTEmJihsLm5vZGUuaXNCbG9jayYmbC5wYXJlbnR8fCFsLmNvbnRlbnRET00pJiYoKGQ9bC5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLndpZHRofHxkLmhlaWdodCkmJihsLm5vZGUuaXNCbG9jayYmbC5wYXJlbnQmJiEvXlQoUnxCT0RZfEhFQUR8Rk9PVCkkLy50ZXN0KGwuZG9tLm5vZGVOYW1lKSYmKCFuJiZkLmxlZnQ+ci5sZWZ0fHxkLnRvcD5yLnRvcD9pPWwucG9zQmVmb3JlOighbiYmZC5yaWdodDxyLmxlZnR8fGQuYm90dG9tPHIudG9wKSYmKGk9bC5wb3NBZnRlciksbj0hMCksIWwuY29udGVudERPTSYmaTwwJiYhbC5ub2RlLmlzVGV4dCkpcmV0dXJuKGwubm9kZS5pc0Jsb2NrP3IudG9wPChkLnRvcCtkLmJvdHRvbSkvMjpyLmxlZnQ8KGQubGVmdCtkLnJpZ2h0KS8yKT9sLnBvc0JlZm9yZTpsLnBvc0FmdGVyO289bC5kb20ucGFyZW50Tm9kZX1yZXR1cm4gaT4tMT9pOmEuZG9jVmlldy5wb3NGcm9tRE9NKGUsdCwtMSl9ZnVuY3Rpb24geW9hKGEsZSx0KXtsZXQgcj1hLmNoaWxkTm9kZXMubGVuZ3RoO2lmKHImJnQudG9wPHQuYm90dG9tKWZvcihsZXQgaT1NYXRoLm1heCgwLE1hdGgubWluKHItMSxNYXRoLmZsb29yKHIqKGUudG9wLXQudG9wKS8odC5ib3R0b20tdC50b3ApKS0yKSksbz1pOzspe2xldCBuPWEuY2hpbGROb2Rlc1tvXTtpZihuLm5vZGVUeXBlPT0xKXtsZXQgbD1uLmdldENsaWVudFJlY3RzKCk7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspe2xldCBjPWxbZF07aWYoektlKGUsYykpcmV0dXJuIHlvYShuLGUsYyl9fWlmKChvPShvKzEpJXIpPT1pKWJyZWFrfXJldHVybiBhfWZ1bmN0aW9uIHJBYShhLGUpe2xldCB0PWEuZG9tLm93bmVyRG9jdW1lbnQscixpPTAsbz1XRGEodCxlLmxlZnQsZS50b3ApO28mJih7bm9kZTpyLG9mZnNldDppfT1vKTtsZXQgbj0oYS5yb290LmVsZW1lbnRGcm9tUG9pbnQ/YS5yb290OnQpLmVsZW1lbnRGcm9tUG9pbnQoZS5sZWZ0LGUudG9wKSxsO2lmKCFufHwhYS5kb20uY29udGFpbnMobi5ub2RlVHlwZSE9MT9uLnBhcmVudE5vZGU6bikpe2xldCBjPWEuZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCF6S2UoZSxjKXx8KG49eW9hKGEuZG9tLGUsYyksIW4pKXJldHVybiBudWxsfWlmKE5pKWZvcihsZXQgYz1uO3ImJmM7Yz14bShjKSljLmRyYWdnYWJsZSYmKHI9dm9pZCAwKTtpZihuPWVBYShuLGUpLHIpe2lmKFJuJiZyLm5vZGVUeXBlPT0xJiYoaT1NYXRoLm1pbihpLHIuY2hpbGROb2Rlcy5sZW5ndGgpLGk8ci5jaGlsZE5vZGVzLmxlbmd0aCkpe2xldCBwPXIuY2hpbGROb2Rlc1tpXSx1O3Aubm9kZU5hbWU9PSJJTUciJiYodT1wLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS5yaWdodDw9ZS5sZWZ0JiZ1LmJvdHRvbT5lLnRvcCYmaSsrfWxldCBjO1FVJiZpJiZyLm5vZGVUeXBlPT0xJiYoYz1yLmNoaWxkTm9kZXNbaS0xXSkubm9kZVR5cGU9PTEmJmMuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiJiZjLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcD49ZS50b3AmJmktLSxyPT1hLmRvbSYmaT09ci5jaGlsZE5vZGVzLmxlbmd0aC0xJiZyLmxhc3RDaGlsZC5ub2RlVHlwZT09MSYmZS50b3A+ci5sYXN0Q2hpbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tP2w9YS5zdGF0ZS5kb2MuY29udGVudC5zaXplOihpPT0wfHxyLm5vZGVUeXBlIT0xfHxyLmNoaWxkTm9kZXNbaS0xXS5ub2RlTmFtZSE9IkJSIikmJihsPWFBYShhLHIsaSxlKSl9bD09bnVsbCYmKGw9dEFhKGEsbixlKSk7bGV0IGQ9YS5kb2NWaWV3Lm5lYXJlc3REZXNjKG4sITApO3JldHVybntwb3M6bCxpbnNpZGU6ZD9kLnBvc0F0U3RhcnQtZC5ib3JkZXI6LTF9fWZ1bmN0aW9uIHdvYShhKXtyZXR1cm4gYS50b3A8YS5ib3R0b218fGEubGVmdDxhLnJpZ2h0fWZ1bmN0aW9uIGI0KGEsZSl7bGV0IHQ9YS5nZXRDbGllbnRSZWN0cygpO2lmKHQubGVuZ3RoKXtsZXQgcj10W2U8MD8wOnQubGVuZ3RoLTFdO2lmKHdvYShyKSlyZXR1cm4gcn1yZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbmQuY2FsbCh0LHdvYSl8fGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gTW9hKGEsZSx0KXtsZXR7bm9kZTpyLG9mZnNldDppLGF0b206b309YS5kb2NWaWV3LmRvbUZyb21Qb3MoZSx0PDA/LTE6MSksbj1RVXx8Um47aWYoci5ub2RlVHlwZT09MylpZihuJiYoc0FhLnRlc3Qoci5ub2RlVmFsdWUpfHwodDwwPyFpOmk9PXIubm9kZVZhbHVlLmxlbmd0aCkpKXtsZXQgZD1iNChnYyhyLGksaSksdCk7aWYoUm4mJmkmJi9ccy8udGVzdChyLm5vZGVWYWx1ZVtpLTFdKSYmaTxyLm5vZGVWYWx1ZS5sZW5ndGgpe2xldCBjPWI0KGdjKHIsaS0xLGktMSksLTEpO2lmKGMudG9wPT1kLnRvcCl7bGV0IHA9YjQoZ2MocixpLGkrMSksLTEpO2lmKHAudG9wIT1kLnRvcClyZXR1cm4gSlUocCxwLmxlZnQ8Yy5sZWZ0KX19cmV0dXJuIGR9ZWxzZXtsZXQgZD1pLGM9aSxwPXQ8MD8xOi0xO3JldHVybiB0PDAmJiFpPyhjKysscD0tMSk6dD49MCYmaT09ci5ub2RlVmFsdWUubGVuZ3RoPyhkLS0scD0xKTp0PDA/ZC0tOmMrKyxKVShiNChnYyhyLGQsYykscCkscDwwKX1pZighYS5zdGF0ZS5kb2MucmVzb2x2ZShlLShvfHwwKSkucGFyZW50LmlubGluZUNvbnRlbnQpe2lmKG89PW51bGwmJmkmJih0PDB8fGk9PU5uKHIpKSl7bGV0IGQ9ci5jaGlsZE5vZGVzW2ktMV07aWYoZC5ub2RlVHlwZT09MSlyZXR1cm4gQ0tlKGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksITEpfWlmKG89PW51bGwmJmk8Tm4ocikpe2xldCBkPXIuY2hpbGROb2Rlc1tpXTtpZihkLm5vZGVUeXBlPT0xKXJldHVybiBDS2UoZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwhMCl9cmV0dXJuIENLZShyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ+PTApfWlmKG89PW51bGwmJmkmJih0PDB8fGk9PU5uKHIpKSl7bGV0IGQ9ci5jaGlsZE5vZGVzW2ktMV0sYz1kLm5vZGVUeXBlPT0zP2djKGQsTm4oZCktKG4/MDoxKSk6ZC5ub2RlVHlwZT09MSYmKGQubm9kZU5hbWUhPSJCUiJ8fCFkLm5leHRTaWJsaW5nKT9kOm51bGw7aWYoYylyZXR1cm4gSlUoYjQoYywxKSwhMSl9aWYobz09bnVsbCYmaTxObihyKSl7bGV0IGQ9ci5jaGlsZE5vZGVzW2ldO2Zvcig7ZC5wbVZpZXdEZXNjJiZkLnBtVmlld0Rlc2MuaWdub3JlRm9yQ29vcmRzOylkPWQubmV4dFNpYmxpbmc7bGV0IGM9ZD9kLm5vZGVUeXBlPT0zP2djKGQsMCxuPzA6MSk6ZC5ub2RlVHlwZT09MT9kOm51bGw6bnVsbDtpZihjKXJldHVybiBKVShiNChjLC0xKSwhMCl9cmV0dXJuIEpVKGI0KHIubm9kZVR5cGU9PTM/Z2Mocik6ciwtdCksdD49MCl9ZnVuY3Rpb24gSlUoYSxlKXtpZihhLndpZHRoPT0wKXJldHVybiBhO2xldCB0PWU/YS5sZWZ0OmEucmlnaHQ7cmV0dXJue3RvcDphLnRvcCxib3R0b206YS5ib3R0b20sbGVmdDp0LHJpZ2h0OnR9fWZ1bmN0aW9uIENLZShhLGUpe2lmKGEuaGVpZ2h0PT0wKXJldHVybiBhO2xldCB0PWU/YS50b3A6YS5ib3R0b207cmV0dXJue3RvcDp0LGJvdHRvbTp0LGxlZnQ6YS5sZWZ0LHJpZ2h0OmEucmlnaHR9fWZ1bmN0aW9uIGtvYShhLGUsdCl7bGV0IHI9YS5zdGF0ZSxpPWEucm9vdC5hY3RpdmVFbGVtZW50O3IhPWUmJmEudXBkYXRlU3RhdGUoZSksaSE9YS5kb20mJmEuZm9jdXMoKTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e3IhPWUmJmEudXBkYXRlU3RhdGUociksaSE9YS5kb20mJmkmJmkuZm9jdXMoKX19ZnVuY3Rpb24gaUFhKGEsZSx0KXtsZXQgcj1lLnNlbGVjdGlvbixpPXQ9PSJ1cCI/ci4kZnJvbTpyLiR0bztyZXR1cm4ga29hKGEsZSwoKT0+e2xldHtub2RlOm99PWEuZG9jVmlldy5kb21Gcm9tUG9zKGkucG9zLHQ9PSJ1cCI/LTE6MSk7Zm9yKDs7KXtsZXQgbD1hLmRvY1ZpZXcubmVhcmVzdERlc2MobywhMCk7aWYoIWwpYnJlYWs7aWYobC5ub2RlLmlzQmxvY2spe289bC5jb250ZW50RE9NfHxsLmRvbTticmVha31vPWwuZG9tLnBhcmVudE5vZGV9bGV0IG49TW9hKGEsaS5wb3MsMSk7Zm9yKGxldCBsPW8uZmlyc3RDaGlsZDtsO2w9bC5uZXh0U2libGluZyl7bGV0IGQ7aWYobC5ub2RlVHlwZT09MSlkPWwuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKGwubm9kZVR5cGU9PTMpZD1nYyhsLDAsbC5ub2RlVmFsdWUubGVuZ3RoKS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCBjPTA7YzxkLmxlbmd0aDtjKyspe2xldCBwPWRbY107aWYocC5ib3R0b20+cC50b3ArMSYmKHQ9PSJ1cCI/bi50b3AtcC50b3A+KHAuYm90dG9tLW4udG9wKSoyOnAuYm90dG9tLW4uYm90dG9tPihuLmJvdHRvbS1wLnRvcCkqMikpcmV0dXJuITF9fXJldHVybiEwfSl9ZnVuY3Rpb24gbkFhKGEsZSx0KXtsZXR7JGhlYWQ6cn09ZS5zZWxlY3Rpb247aWYoIXIucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybiExO2xldCBpPXIucGFyZW50T2Zmc2V0LG89IWksbj1pPT1yLnBhcmVudC5jb250ZW50LnNpemUsbD1hLmRvbVNlbGVjdGlvbigpO3JldHVybiBsPyFvQWEudGVzdChyLnBhcmVudC50ZXh0Q29udGVudCl8fCFsLm1vZGlmeT90PT0ibGVmdCJ8fHQ9PSJiYWNrd2FyZCI/bzpuOmtvYShhLGUsKCk9PntsZXR7Zm9jdXNOb2RlOmQsZm9jdXNPZmZzZXQ6YyxhbmNob3JOb2RlOnAsYW5jaG9yT2Zmc2V0OnV9PWEuZG9tU2VsZWN0aW9uUmFuZ2UoKSxtPWwuY2FyZXRCaWRpTGV2ZWw7bC5tb2RpZnkoIm1vdmUiLHQsImNoYXJhY3RlciIpO2xldCB2PXIuZGVwdGg/YS5kb2NWaWV3LmRvbUFmdGVyUG9zKHIuYmVmb3JlKCkpOmEuZG9tLHtmb2N1c05vZGU6eCxmb2N1c09mZnNldDpifT1hLmRvbVNlbGVjdGlvblJhbmdlKCksZz14JiYhdi5jb250YWlucyh4Lm5vZGVUeXBlPT0xP3g6eC5wYXJlbnROb2RlKXx8ZD09eCYmYz09Yjt0cnl7bC5jb2xsYXBzZShwLHUpLGQmJihkIT1wfHxjIT11KSYmbC5leHRlbmQmJmwuZXh0ZW5kKGQsYyl9Y2F0Y2h7fXJldHVybiBtIT1udWxsJiYobC5jYXJldEJpZGlMZXZlbD1tKSxnfSk6ci5wb3M9PXIuc3RhcnQoKXx8ci5wb3M9PXIuZW5kKCl9ZnVuY3Rpb24gbEFhKGEsZSx0KXtyZXR1cm4gU29hPT1lJiZ6b2E9PXQ/Q29hOihTb2E9ZSx6b2E9dCxDb2E9dD09InVwInx8dD09ImRvd24iP2lBYShhLGUsdCk6bkFhKGEsZSx0KSl9ZnVuY3Rpb24gVG9hKGEsZSx0LHIsaSl7RG9hKHIsZSxhKTtsZXQgbz1uZXcgdjQodm9pZCAwLGEsZSx0LHIscixyLGksMCk7cmV0dXJuIG8uY29udGVudERPTSYmby51cGRhdGVDaGlsZHJlbihpLDApLG99ZnVuY3Rpb24gTG9hKGEsZSx0KXtsZXQgcj1hLmZpcnN0Q2hpbGQsaT0hMTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7bGV0IG49ZVtvXSxsPW4uZG9tO2lmKGwucGFyZW50Tm9kZT09YSl7Zm9yKDtsIT1yOylyPUFvYShyKSxpPSEwO3I9ci5uZXh0U2libGluZ31lbHNlIGk9ITAsYS5pbnNlcnRCZWZvcmUobCxyKTtpZihuIGluc3RhbmNlb2YgTW0pe2xldCBkPXI/ci5wcmV2aW91c1NpYmxpbmc6YS5sYXN0Q2hpbGQ7TG9hKG4uY29udGVudERPTSxuLmNoaWxkcmVuLHQpLHI9ZD9kLm5leHRTaWJsaW5nOmEuZmlyc3RDaGlsZH19Zm9yKDtyOylyPUFvYShyKSxpPSEwO2kmJnQudHJhY2tXcml0ZXM9PWEmJih0LnRyYWNrV3JpdGVzPW51bGwpfWZ1bmN0aW9uIExLZShhLGUsdCl7aWYoYS5sZW5ndGg9PTApcmV0dXJuIFlmO2xldCByPXQ/WWZbMF06bmV3IGVXLGk9W3JdO2ZvcihsZXQgbz0wO288YS5sZW5ndGg7bysrKXtsZXQgbj1hW29dLnR5cGUuYXR0cnM7aWYobil7bi5ub2RlTmFtZSYmaS5wdXNoKHI9bmV3IGVXKG4ubm9kZU5hbWUpKTtmb3IobGV0IGwgaW4gbil7bGV0IGQ9bltsXTtkIT1udWxsJiYodCYmaS5sZW5ndGg9PTEmJmkucHVzaChyPW5ldyBlVyhlLmlzSW5saW5lPyJzcGFuIjoiZGl2IikpLGw9PSJjbGFzcyI/ci5jbGFzcz0oci5jbGFzcz9yLmNsYXNzKyIgIjoiIikrZDpsPT0ic3R5bGUiP3Iuc3R5bGU9KHIuc3R5bGU/ci5zdHlsZSsiOyI6IiIpK2Q6bCE9Im5vZGVOYW1lIiYmKHJbbF09ZCkpfX19cmV0dXJuIGl9ZnVuY3Rpb24gJG9hKGEsZSx0LHIpe2lmKHQ9PVlmJiZyPT1ZZilyZXR1cm4gZTtsZXQgaT1lO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXQgbj1yW29dLGw9dFtvXTtpZihvKXtsZXQgZDtsJiZsLm5vZGVOYW1lPT1uLm5vZGVOYW1lJiZpIT1hJiYoZD1pLnBhcmVudE5vZGUpJiZkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PW4ubm9kZU5hbWV8fChkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobi5ub2RlTmFtZSksZC5wbUlzRGVjbz0hMCxkLmFwcGVuZENoaWxkKGkpLGw9WWZbMF0pLGk9ZH1jQWEoaSxsfHxZZlswXSxuKX1yZXR1cm4gaX1mdW5jdGlvbiBjQWEoYSxlLHQpe2ZvcihsZXQgciBpbiBlKXIhPSJjbGFzcyImJnIhPSJzdHlsZSImJnIhPSJub2RlTmFtZSImJiEociBpbiB0KSYmYS5yZW1vdmVBdHRyaWJ1dGUocik7Zm9yKGxldCByIGluIHQpciE9ImNsYXNzIiYmciE9InN0eWxlIiYmciE9Im5vZGVOYW1lIiYmdFtyXSE9ZVtyXSYmYS5zZXRBdHRyaWJ1dGUocix0W3JdKTtpZihlLmNsYXNzIT10LmNsYXNzKXtsZXQgcj1lLmNsYXNzP2UuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W10saT10LmNsYXNzP3QuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W107Zm9yKGxldCBvPTA7bzxyLmxlbmd0aDtvKyspaS5pbmRleE9mKHJbb10pPT0tMSYmYS5jbGFzc0xpc3QucmVtb3ZlKHJbb10pO2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKXIuaW5kZXhPZihpW29dKT09LTEmJmEuY2xhc3NMaXN0LmFkZChpW29dKTthLmNsYXNzTGlzdC5sZW5ndGg9PTAmJmEucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfWlmKGUuc3R5bGUhPXQuc3R5bGUpe2lmKGUuc3R5bGUpe2xldCByPS9ccyooW1x3XC1ceGExLVx1ZmZmZl0rKVxzKjooPzoiKD86XFwufFteIl0pKiJ8Jyg/OlxcLnxbXiddKSonfFwoLio/XCl8W147XSkqL2csaTtmb3IoO2k9ci5leGVjKGUuc3R5bGUpOylhLnN0eWxlLnJlbW92ZVByb3BlcnR5KGlbMV0pfXQuc3R5bGUmJihhLnN0eWxlLmNzc1RleHQrPXQuc3R5bGUpfX1mdW5jdGlvbiBEb2EoYSxlLHQpe3JldHVybiAkb2EoYSxhLFlmLExLZShlLHQsYS5ub2RlVHlwZSE9MSkpfWZ1bmN0aW9uIEZhZShhLGUpe2lmKGEubGVuZ3RoIT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrKylpZighYVt0XS50eXBlLmVxKGVbdF0udHlwZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQW9hKGEpe2xldCBlPWEubmV4dFNpYmxpbmc7cmV0dXJuIGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKSxlfWZ1bmN0aW9uIGRBYShhLGUpe2xldCB0PWUscj10LmNoaWxkcmVuLmxlbmd0aCxpPWEuY2hpbGRDb3VudCxvPW5ldyBNYXAsbj1bXTtlOmZvcig7aT4wOyl7bGV0IGw7Zm9yKDs7KWlmKHIpe2xldCBjPXQuY2hpbGRyZW5bci0xXTtpZihjIGluc3RhbmNlb2YgTW0pdD1jLHI9Yy5jaGlsZHJlbi5sZW5ndGg7ZWxzZXtsPWMsci0tO2JyZWFrfX1lbHNle2lmKHQ9PWUpYnJlYWsgZTtyPXQucGFyZW50LmNoaWxkcmVuLmluZGV4T2YodCksdD10LnBhcmVudH1sZXQgZD1sLm5vZGU7aWYoZCl7aWYoZCE9YS5jaGlsZChpLTEpKWJyZWFrOy0taSxvLnNldChsLGkpLG4ucHVzaChsKX19cmV0dXJue2luZGV4OmksbWF0Y2hlZDpvLG1hdGNoZXM6bi5yZXZlcnNlKCl9fWZ1bmN0aW9uIHVBYShhLGUpe3JldHVybiBhLnR5cGUuc2lkZS1lLnR5cGUuc2lkZX1mdW5jdGlvbiBwQWEoYSxlLHQscil7bGV0IGk9ZS5sb2NhbHMoYSksbz0wO2lmKGkubGVuZ3RoPT0wKXtmb3IobGV0IGM9MDtjPGEuY2hpbGRDb3VudDtjKyspe2xldCBwPWEuY2hpbGQoYyk7cihwLGksZS5mb3JDaGlsZChvLHApLGMpLG8rPXAubm9kZVNpemV9cmV0dXJufWxldCBuPTAsbD1bXSxkPW51bGw7Zm9yKGxldCBjPTA7Oyl7bGV0IHAsdTtmb3IoO248aS5sZW5ndGgmJmlbbl0udG89PW87KXtsZXQgZz1pW24rK107Zy53aWRnZXQmJihwPyh1fHwodT1bcF0pKS5wdXNoKGcpOnA9Zyl9aWYocClpZih1KXt1LnNvcnQodUFhKTtmb3IobGV0IGc9MDtnPHUubGVuZ3RoO2crKyl0KHVbZ10sYywhIWQpfWVsc2UgdChwLGMsISFkKTtsZXQgbSx2O2lmKGQpdj0tMSxtPWQsZD1udWxsO2Vsc2UgaWYoYzxhLmNoaWxkQ291bnQpdj1jLG09YS5jaGlsZChjKyspO2Vsc2UgYnJlYWs7Zm9yKGxldCBnPTA7ZzxsLmxlbmd0aDtnKyspbFtnXS50bzw9byYmbC5zcGxpY2UoZy0tLDEpO2Zvcig7bjxpLmxlbmd0aCYmaVtuXS5mcm9tPD1vJiZpW25dLnRvPm87KWwucHVzaChpW24rK10pO2xldCB4PW8rbS5ub2RlU2l6ZTtpZihtLmlzVGV4dCl7bGV0IGc9eDtuPGkubGVuZ3RoJiZpW25dLmZyb208ZyYmKGc9aVtuXS5mcm9tKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krKylsW3ldLnRvPGcmJihnPWxbeV0udG8pO2c8eCYmKGQ9bS5jdXQoZy1vKSxtPW0uY3V0KDAsZy1vKSx4PWcsdj0tMSl9ZWxzZSBmb3IoO248aS5sZW5ndGgmJmlbbl0udG88eDspbisrO2xldCBiPW0uaXNJbmxpbmUmJiFtLmlzTGVhZj9sLmZpbHRlcihnPT4hZy5pbmxpbmUpOmwuc2xpY2UoKTtyKG0sYixlLmZvckNoaWxkKG8sbSksdiksbz14fX1mdW5jdGlvbiBmQWEoYSl7aWYoYS5ub2RlTmFtZT09IlVMInx8YS5ub2RlTmFtZT09Ik9MIil7bGV0IGU9YS5zdHlsZS5jc3NUZXh0O2Euc3R5bGUuY3NzVGV4dD1lKyI7IGxpc3Qtc3R5bGU6IHNxdWFyZSAhaW1wb3J0YW50Iix3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhKS5saXN0U3R5bGUsYS5zdHlsZS5jc3NUZXh0PWV9fWZ1bmN0aW9uIGhBYShhLGUsdCxyKXtmb3IobGV0IGk9MCxvPTA7aTxhLmNoaWxkQ291bnQmJm88PXI7KXtsZXQgbj1hLmNoaWxkKGkrKyksbD1vO2lmKG8rPW4ubm9kZVNpemUsIW4uaXNUZXh0KWNvbnRpbnVlO2xldCBkPW4udGV4dDtmb3IoO2k8YS5jaGlsZENvdW50Oyl7bGV0IGM9YS5jaGlsZChpKyspO2lmKG8rPWMubm9kZVNpemUsIWMuaXNUZXh0KWJyZWFrO2QrPWMudGV4dH1pZihvPj10KXtpZihvPj1yJiZkLnNsaWNlKHItZS5sZW5ndGgtbCxyLWwpPT1lKXJldHVybiByLWUubGVuZ3RoO2xldCBjPWw8cj9kLmxhc3RJbmRleE9mKGUsci1sLTEpOi0xO2lmKGM+PTAmJmMrZS5sZW5ndGgrbD49dClyZXR1cm4gbCtjO2lmKHQ9PXImJmQubGVuZ3RoPj1yK2UubGVuZ3RoLWwmJmQuc2xpY2Uoci1sLHItbCtlLmxlbmd0aCk9PWUpcmV0dXJuIHJ9fXJldHVybi0xfWZ1bmN0aW9uIERLZShhLGUsdCxyLGkpe2xldCBvPVtdO2ZvcihsZXQgbj0wLGw9MDtuPGEubGVuZ3RoO24rKyl7bGV0IGQ9YVtuXSxjPWwscD1sKz1kLnNpemU7Yz49dHx8cDw9ZT9vLnB1c2goZCk6KGM8ZSYmby5wdXNoKGQuc2xpY2UoMCxlLWMscikpLGkmJihvLnB1c2goaSksaT12b2lkIDApLHA+dCYmby5wdXNoKGQuc2xpY2UodC1jLGQuc2l6ZSxyKSkpfXJldHVybiBvfWZ1bmN0aW9uIEFLZShhLGU9bnVsbCl7bGV0IHQ9YS5kb21TZWxlY3Rpb25SYW5nZSgpLHI9YS5zdGF0ZS5kb2M7aWYoIXQuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCBpPWEuZG9jVmlldy5uZWFyZXN0RGVzYyh0LmZvY3VzTm9kZSksbz1pJiZpLnNpemU9PTAsbj1hLmRvY1ZpZXcucG9zRnJvbURPTSh0LmZvY3VzTm9kZSx0LmZvY3VzT2Zmc2V0LDEpO2lmKG48MClyZXR1cm4gbnVsbDtsZXQgbD1yLnJlc29sdmUobiksZCxjO2lmKElhZSh0KSl7Zm9yKGQ9bjtpJiYhaS5ub2RlOylpPWkucGFyZW50O2xldCB1PWkubm9kZTtpZihpJiZ1LmlzQXRvbSYma3QuaXNTZWxlY3RhYmxlKHUpJiZpLnBhcmVudCYmISh1LmlzSW5saW5lJiZqRGEodC5mb2N1c05vZGUsdC5mb2N1c09mZnNldCxpLmRvbSkpKXtsZXQgbT1pLnBvc0JlZm9yZTtjPW5ldyBrdChuPT1tP2w6ci5yZXNvbHZlKG0pKX19ZWxzZXtpZih0IGluc3RhbmNlb2YgYS5kb20ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5TZWxlY3Rpb24mJnQucmFuZ2VDb3VudD4xKXtsZXQgdT1uLG09bjtmb3IobGV0IHY9MDt2PHQucmFuZ2VDb3VudDt2Kyspe2xldCB4PXQuZ2V0UmFuZ2VBdCh2KTt1PU1hdGgubWluKHUsYS5kb2NWaWV3LnBvc0Zyb21ET00oeC5zdGFydENvbnRhaW5lcix4LnN0YXJ0T2Zmc2V0LDEpKSxtPU1hdGgubWF4KG0sYS5kb2NWaWV3LnBvc0Zyb21ET00oeC5lbmRDb250YWluZXIseC5lbmRPZmZzZXQsLTEpKX1pZih1PDApcmV0dXJuIG51bGw7W2Qsbl09bT09YS5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yP1ttLHVdOlt1LG1dLGw9ci5yZXNvbHZlKG4pfWVsc2UgZD1hLmRvY1ZpZXcucG9zRnJvbURPTSh0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQsMSk7aWYoZDwwKXJldHVybiBudWxsfWxldCBwPXIucmVzb2x2ZShkKTtpZighYyl7bGV0IHU9ZT09InBvaW50ZXIifHxhLnN0YXRlLnNlbGVjdGlvbi5oZWFkPGwucG9zJiYhbz8xOi0xO2M9RUtlKGEscCxsLHUpfXJldHVybiBjfWZ1bmN0aW9uIFBvYShhKXtyZXR1cm4gYS5lZGl0YWJsZT9hLmhhc0ZvY3VzKCk6Qm9hKGEpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNvbnRhaW5zKGEuZG9tKX1mdW5jdGlvbiB4YyhhLGU9ITEpe2xldCB0PWEuc3RhdGUuc2VsZWN0aW9uO2lmKFJvYShhLHQpLCEhUG9hKGEpKXtpZighZSYmYS5pbnB1dC5tb3VzZURvd24mJmEuaW5wdXQubW91c2VEb3duLmFsbG93RGVmYXVsdCYmb2kpe2xldCByPWEuZG9tU2VsZWN0aW9uUmFuZ2UoKSxpPWEuZG9tT2JzZXJ2ZXIuY3VycmVudFNlbGVjdGlvbjtpZihyLmFuY2hvck5vZGUmJmkuYW5jaG9yTm9kZSYmamYoci5hbmNob3JOb2RlLHIuYW5jaG9yT2Zmc2V0LGkuYW5jaG9yTm9kZSxpLmFuY2hvck9mZnNldCkpe2EuaW5wdXQubW91c2VEb3duLmRlbGF5ZWRTZWxlY3Rpb25TeW5jPSEwLGEuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCk7cmV0dXJufX1pZihhLmRvbU9ic2VydmVyLmRpc2Nvbm5lY3RTZWxlY3Rpb24oKSxhLmN1cnNvcldyYXBwZXIpZ0FhKGEpO2Vsc2V7bGV0e2FuY2hvcjpyLGhlYWQ6aX09dCxvLG47RW9hJiYhKHQgaW5zdGFuY2VvZiBOdCkmJih0LiRmcm9tLnBhcmVudC5pbmxpbmVDb250ZW50fHwobz1Jb2EoYSx0LmZyb20pKSwhdC5lbXB0eSYmIXQuJGZyb20ucGFyZW50LmlubGluZUNvbnRlbnQmJihuPUlvYShhLHQudG8pKSksYS5kb2NWaWV3LnNldFNlbGVjdGlvbihyLGksYSxlKSxFb2EmJihvJiZOb2EobyksbiYmTm9hKG4pKSx0LnZpc2libGU/YS5kb20uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3ItaGlkZXNlbGVjdGlvbiIpOihhLmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIiksIm9uc2VsZWN0aW9uY2hhbmdlImluIGRvY3VtZW50JiZtQWEoYSkpfWEuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCksYS5kb21PYnNlcnZlci5jb25uZWN0U2VsZWN0aW9uKCl9fWZ1bmN0aW9uIElvYShhLGUpe2xldHtub2RlOnQsb2Zmc2V0OnJ9PWEuZG9jVmlldy5kb21Gcm9tUG9zKGUsMCksaT1yPHQuY2hpbGROb2Rlcy5sZW5ndGg/dC5jaGlsZE5vZGVzW3JdOm51bGwsbz1yP3QuY2hpbGROb2Rlc1tyLTFdOm51bGw7aWYoTmkmJmkmJmkuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiBQS2UoaSk7aWYoKCFpfHxpLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIikmJighb3x8by5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpKXtpZihpKXJldHVybiBQS2UoaSk7aWYobylyZXR1cm4gUEtlKG8pfX1mdW5jdGlvbiBQS2UoYSl7cmV0dXJuIGEuY29udGVudEVkaXRhYmxlPSJ0cnVlIixOaSYmYS5kcmFnZ2FibGUmJihhLmRyYWdnYWJsZT0hMSxhLndhc0RyYWdnYWJsZT0hMCksYX1mdW5jdGlvbiBOb2EoYSl7YS5jb250ZW50RWRpdGFibGU9ImZhbHNlIixhLndhc0RyYWdnYWJsZSYmKGEuZHJhZ2dhYmxlPSEwLGEud2FzRHJhZ2dhYmxlPW51bGwpfWZ1bmN0aW9uIG1BYShhKXtsZXQgZT1hLmRvbS5vd25lckRvY3VtZW50O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixhLmlucHV0LmhpZGVTZWxlY3Rpb25HdWFyZCk7bGV0IHQ9YS5kb21TZWxlY3Rpb25SYW5nZSgpLHI9dC5hbmNob3JOb2RlLGk9dC5hbmNob3JPZmZzZXQ7ZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGEuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkPSgpPT57KHQuYW5jaG9yTm9kZSE9cnx8dC5hbmNob3JPZmZzZXQhPWkpJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGEuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkKSxzZXRUaW1lb3V0KCgpPT57KCFQb2EoYSl8fGEuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUpJiZhLmRvbS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIil9LDIwKSl9KX1mdW5jdGlvbiBnQWEoYSl7bGV0IGU9YS5kb21TZWxlY3Rpb24oKTtpZighZSlyZXR1cm47bGV0IHQ9YS5jdXJzb3JXcmFwcGVyLmRvbSxyPXQubm9kZU5hbWU9PSJJTUciO3I/ZS5jb2xsYXBzZSh0LnBhcmVudE5vZGUsaWkodCkrMSk6ZS5jb2xsYXBzZSh0LDApLCFyJiYhYS5zdGF0ZS5zZWxlY3Rpb24udmlzaWJsZSYmUm8mJmc0PD0xMSYmKHQuZGlzYWJsZWQ9ITAsdC5kaXNhYmxlZD0hMSl9ZnVuY3Rpb24gUm9hKGEsZSl7aWYoZSBpbnN0YW5jZW9mIGt0KXtsZXQgdD1hLmRvY1ZpZXcuZGVzY0F0KGUuZnJvbSk7dCE9YS5sYXN0U2VsZWN0ZWRWaWV3RGVzYyYmKE9vYShhKSx0JiZ0LnNlbGVjdE5vZGUoKSxhLmxhc3RTZWxlY3RlZFZpZXdEZXNjPXQpfWVsc2UgT29hKGEpfWZ1bmN0aW9uIE9vYShhKXthLmxhc3RTZWxlY3RlZFZpZXdEZXNjJiYoYS5sYXN0U2VsZWN0ZWRWaWV3RGVzYy5wYXJlbnQmJmEubGFzdFNlbGVjdGVkVmlld0Rlc2MuZGVzZWxlY3ROb2RlKCksYS5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDApfWZ1bmN0aW9uIEVLZShhLGUsdCxyKXtyZXR1cm4gYS5zb21lUHJvcCgiY3JlYXRlU2VsZWN0aW9uQmV0d2VlbiIsaT0+aShhLGUsdCkpfHxOdC5iZXR3ZWVuKGUsdCxyKX1mdW5jdGlvbiBGb2EoYSl7cmV0dXJuIGEuZWRpdGFibGUmJiFhLmhhc0ZvY3VzKCk/ITE6Qm9hKGEpfWZ1bmN0aW9uIEJvYShhKXtsZXQgZT1hLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuYW5jaG9yTm9kZSlyZXR1cm4hMTt0cnl7cmV0dXJuIGEuZG9tLmNvbnRhaW5zKGUuYW5jaG9yTm9kZS5ub2RlVHlwZT09Mz9lLmFuY2hvck5vZGUucGFyZW50Tm9kZTplLmFuY2hvck5vZGUpJiYoYS5lZGl0YWJsZXx8YS5kb20uY29udGFpbnMoZS5mb2N1c05vZGUubm9kZVR5cGU9PTM/ZS5mb2N1c05vZGUucGFyZW50Tm9kZTplLmZvY3VzTm9kZSkpfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBiQWEoYSl7bGV0IGU9YS5kb2NWaWV3LmRvbUZyb21Qb3MoYS5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yLDApLHQ9YS5kb21TZWxlY3Rpb25SYW5nZSgpO3JldHVybiBqZihlLm5vZGUsZS5vZmZzZXQsdC5hbmNob3JOb2RlLHQuYW5jaG9yT2Zmc2V0KX1mdW5jdGlvbiBJS2UoYSxlKXtsZXR7JGFuY2hvcjp0LCRoZWFkOnJ9PWEuc2VsZWN0aW9uLGk9ZT4wP3QubWF4KHIpOnQubWluKHIpLG89aS5wYXJlbnQuaW5saW5lQ29udGVudD9pLmRlcHRoP2EuZG9jLnJlc29sdmUoZT4wP2kuYWZ0ZXIoKTppLmJlZm9yZSgpKTpudWxsOmk7cmV0dXJuIG8mJkV0LmZpbmRGcm9tKG8sZSl9ZnVuY3Rpb24geDQoYSxlKXtyZXR1cm4gYS5kaXNwYXRjaChhLnN0YXRlLnRyLnNldFNlbGVjdGlvbihlKS5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiBIb2EoYSxlLHQpe2xldCByPWEuc3RhdGUuc2VsZWN0aW9uO2lmKHIgaW5zdGFuY2VvZiBOdClpZih0LmluZGV4T2YoInMiKT4tMSl7bGV0eyRoZWFkOml9PXIsbz1pLnRleHRPZmZzZXQ/bnVsbDplPDA/aS5ub2RlQmVmb3JlOmkubm9kZUFmdGVyO2lmKCFvfHxvLmlzVGV4dHx8IW8uaXNMZWFmKXJldHVybiExO2xldCBuPWEuc3RhdGUuZG9jLnJlc29sdmUoaS5wb3Mrby5ub2RlU2l6ZSooZTwwPy0xOjEpKTtyZXR1cm4geDQoYSxuZXcgTnQoci4kYW5jaG9yLG4pKX1lbHNlIGlmKHIuZW1wdHkpe2lmKGEuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSl7bGV0IGk9SUtlKGEuc3RhdGUsZSk7cmV0dXJuIGkmJmkgaW5zdGFuY2VvZiBrdD94NChhLGkpOiExfWVsc2UgaWYoIShPbiYmdC5pbmRleE9mKCJtIik+LTEpKXtsZXQgaT1yLiRoZWFkLG89aS50ZXh0T2Zmc2V0P251bGw6ZTwwP2kubm9kZUJlZm9yZTppLm5vZGVBZnRlcixuO2lmKCFvfHxvLmlzVGV4dClyZXR1cm4hMTtsZXQgbD1lPDA/aS5wb3Mtby5ub2RlU2l6ZTppLnBvcztyZXR1cm4gby5pc0F0b218fChuPWEuZG9jVmlldy5kZXNjQXQobCkpJiYhbi5jb250ZW50RE9NP2t0LmlzU2VsZWN0YWJsZShvKT94NChhLG5ldyBrdChlPDA/YS5zdGF0ZS5kb2MucmVzb2x2ZShpLnBvcy1vLm5vZGVTaXplKTppKSk6UVU/eDQoYSxuZXcgTnQoYS5zdGF0ZS5kb2MucmVzb2x2ZShlPDA/bDpsK28ubm9kZVNpemUpKSk6ITE6ITF9fWVsc2UgcmV0dXJuITE7ZWxzZXtpZihyIGluc3RhbmNlb2Yga3QmJnIubm9kZS5pc0lubGluZSlyZXR1cm4geDQoYSxuZXcgTnQoZT4wP3IuJHRvOnIuJGZyb20pKTt7bGV0IGk9SUtlKGEuc3RhdGUsZSk7cmV0dXJuIGk/eDQoYSxpKTohMX19fWZ1bmN0aW9uIEJhZShhKXtyZXR1cm4gYS5ub2RlVHlwZT09Mz9hLm5vZGVWYWx1ZS5sZW5ndGg6YS5jaGlsZE5vZGVzLmxlbmd0aH1mdW5jdGlvbiB0VyhhLGUpe2xldCB0PWEucG1WaWV3RGVzYztyZXR1cm4gdCYmdC5zaXplPT0wJiYoZTwwfHxhLm5leHRTaWJsaW5nfHxhLm5vZGVOYW1lIT0iQlIiKX1mdW5jdGlvbiBrbShhLGUpe3JldHVybiBlPDA/dkFhKGEpOnhBYShhKX1mdW5jdGlvbiB2QWEoYSl7bGV0IGU9YS5kb21TZWxlY3Rpb25SYW5nZSgpLHQ9ZS5mb2N1c05vZGUscj1lLmZvY3VzT2Zmc2V0O2lmKCF0KXJldHVybjtsZXQgaSxvLG49ITE7Zm9yKFJuJiZ0Lm5vZGVUeXBlPT0xJiZyPEJhZSh0KSYmdFcodC5jaGlsZE5vZGVzW3JdLC0xKSYmKG49ITApOzspaWYocj4wKXtpZih0Lm5vZGVUeXBlIT0xKWJyZWFrO3tsZXQgbD10LmNoaWxkTm9kZXNbci0xXTtpZih0VyhsLC0xKSlpPXQsbz0tLXI7ZWxzZSBpZihsLm5vZGVUeXBlPT0zKXQ9bCxyPXQubm9kZVZhbHVlLmxlbmd0aDtlbHNlIGJyZWFrfX1lbHNle2lmKHFvYSh0KSlicmVhazt7bGV0IGw9dC5wcmV2aW91c1NpYmxpbmc7Zm9yKDtsJiZ0VyhsLC0xKTspaT10LnBhcmVudE5vZGUsbz1paShsKSxsPWwucHJldmlvdXNTaWJsaW5nO2lmKGwpdD1sLHI9QmFlKHQpO2Vsc2V7aWYodD10LnBhcmVudE5vZGUsdD09YS5kb20pYnJlYWs7cj0wfX19bj9OS2UoYSx0LHIpOmkmJk5LZShhLGksbyl9ZnVuY3Rpb24geEFhKGEpe2xldCBlPWEuZG9tU2VsZWN0aW9uUmFuZ2UoKSx0PWUuZm9jdXNOb2RlLHI9ZS5mb2N1c09mZnNldDtpZighdClyZXR1cm47bGV0IGk9QmFlKHQpLG8sbjtmb3IoOzspaWYocjxpKXtpZih0Lm5vZGVUeXBlIT0xKWJyZWFrO2xldCBsPXQuY2hpbGROb2Rlc1tyXTtpZih0VyhsLDEpKW89dCxuPSsrcjtlbHNlIGJyZWFrfWVsc2V7aWYocW9hKHQpKWJyZWFrO3tsZXQgbD10Lm5leHRTaWJsaW5nO2Zvcig7bCYmdFcobCwxKTspbz1sLnBhcmVudE5vZGUsbj1paShsKSsxLGw9bC5uZXh0U2libGluZztpZihsKXQ9bCxyPTAsaT1CYWUodCk7ZWxzZXtpZih0PXQucGFyZW50Tm9kZSx0PT1hLmRvbSlicmVhaztyPWk9MH19fW8mJk5LZShhLG8sbil9ZnVuY3Rpb24gcW9hKGEpe2xldCBlPWEucG1WaWV3RGVzYztyZXR1cm4gZSYmZS5ub2RlJiZlLm5vZGUuaXNCbG9ja31mdW5jdGlvbiB5QWEoYSxlKXtmb3IoO2EmJmU9PWEuY2hpbGROb2Rlcy5sZW5ndGgmJiFYVShhKTspZT1paShhKSsxLGE9YS5wYXJlbnROb2RlO2Zvcig7YSYmZTxhLmNoaWxkTm9kZXMubGVuZ3RoOyl7bGV0IHQ9YS5jaGlsZE5vZGVzW2VdO2lmKHQubm9kZVR5cGU9PTMpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmdC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7YT10LGU9MH19ZnVuY3Rpb24gd0FhKGEsZSl7Zm9yKDthJiYhZSYmIVhVKGEpOyllPWlpKGEpLGE9YS5wYXJlbnROb2RlO2Zvcig7YSYmZTspe2xldCB0PWEuY2hpbGROb2Rlc1tlLTFdO2lmKHQubm9kZVR5cGU9PTMpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmdC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7YT10LGU9YS5jaGlsZE5vZGVzLmxlbmd0aH19ZnVuY3Rpb24gTktlKGEsZSx0KXtpZihlLm5vZGVUeXBlIT0zKXtsZXQgbyxuOyhuPXlBYShlLHQpKT8oZT1uLHQ9MCk6KG89d0FhKGUsdCkpJiYoZT1vLHQ9by5ub2RlVmFsdWUubGVuZ3RoKX1sZXQgcj1hLmRvbVNlbGVjdGlvbigpO2lmKCFyKXJldHVybjtpZihJYWUocikpe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7by5zZXRFbmQoZSx0KSxvLnNldFN0YXJ0KGUsdCksci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKG8pfWVsc2Ugci5leHRlbmQmJnIuZXh0ZW5kKGUsdCk7YS5kb21PYnNlcnZlci5zZXRDdXJTZWxlY3Rpb24oKTtsZXR7c3RhdGU6aX09YTtzZXRUaW1lb3V0KCgpPT57YS5zdGF0ZT09aSYmeGMoYSl9LDUwKX1mdW5jdGlvbiBWb2EoYSxlKXtsZXQgdD1hLnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCEob2l8fG1vYSkmJnQucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBpPWEuY29vcmRzQXRQb3MoZSk7aWYoZT50LnN0YXJ0KCkpe2xldCBvPWEuY29vcmRzQXRQb3MoZS0xKSxuPShvLnRvcCtvLmJvdHRvbSkvMjtpZihuPmkudG9wJiZuPGkuYm90dG9tJiZNYXRoLmFicyhvLmxlZnQtaS5sZWZ0KT4xKXJldHVybiBvLmxlZnQ8aS5sZWZ0PyJsdHIiOiJydGwifWlmKGU8dC5lbmQoKSl7bGV0IG89YS5jb29yZHNBdFBvcyhlKzEpLG49KG8udG9wK28uYm90dG9tKS8yO2lmKG4+aS50b3AmJm48aS5ib3R0b20mJk1hdGguYWJzKG8ubGVmdC1pLmxlZnQpPjEpcmV0dXJuIG8ubGVmdD5pLmxlZnQ/Imx0ciI6InJ0bCJ9fXJldHVybiBnZXRDb21wdXRlZFN0eWxlKGEuZG9tKS5kaXJlY3Rpb249PSJydGwiPyJydGwiOiJsdHIifWZ1bmN0aW9uIGpvYShhLGUsdCl7bGV0IHI9YS5zdGF0ZS5zZWxlY3Rpb247aWYociBpbnN0YW5jZW9mIE50JiYhci5lbXB0eXx8dC5pbmRleE9mKCJzIik+LTF8fE9uJiZ0LmluZGV4T2YoIm0iKT4tMSlyZXR1cm4hMTtsZXR7JGZyb206aSwkdG86b309cjtpZighaS5wYXJlbnQuaW5saW5lQ29udGVudHx8YS5lbmRPZlRleHRibG9jayhlPDA/InVwIjoiZG93biIpKXtsZXQgbj1JS2UoYS5zdGF0ZSxlKTtpZihuJiZuIGluc3RhbmNlb2Yga3QpcmV0dXJuIHg0KGEsbil9aWYoIWkucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBuPWU8MD9pOm8sbD1yIGluc3RhbmNlb2YgSWk/RXQubmVhcihuLGUpOkV0LmZpbmRGcm9tKG4sZSk7cmV0dXJuIGw/eDQoYSxsKTohMX1yZXR1cm4hMX1mdW5jdGlvbiBVb2EoYSxlKXtpZighKGEuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgTnQpKXJldHVybiEwO2xldHskaGVhZDp0LCRhbmNob3I6cixlbXB0eTppfT1hLnN0YXRlLnNlbGVjdGlvbjtpZighdC5zYW1lUGFyZW50KHIpKXJldHVybiEwO2lmKCFpKXJldHVybiExO2lmKGEuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSlyZXR1cm4hMDtsZXQgbz0hdC50ZXh0T2Zmc2V0JiYoZTwwP3Qubm9kZUJlZm9yZTp0Lm5vZGVBZnRlcik7aWYobyYmIW8uaXNUZXh0KXtsZXQgbj1hLnN0YXRlLnRyO3JldHVybiBlPDA/bi5kZWxldGUodC5wb3Mtby5ub2RlU2l6ZSx0LnBvcyk6bi5kZWxldGUodC5wb3MsdC5wb3Mrby5ub2RlU2l6ZSksYS5kaXNwYXRjaChuKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBXb2EoYSxlLHQpe2EuZG9tT2JzZXJ2ZXIuc3RvcCgpLGUuY29udGVudEVkaXRhYmxlPXQsYS5kb21PYnNlcnZlci5zdGFydCgpfWZ1bmN0aW9uIE1BYShhKXtpZighTml8fGEuc3RhdGUuc2VsZWN0aW9uLiRoZWFkLnBhcmVudE9mZnNldD4wKXJldHVybiExO2xldHtmb2N1c05vZGU6ZSxmb2N1c09mZnNldDp0fT1hLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoZSYmZS5ub2RlVHlwZT09MSYmdD09MCYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXtsZXQgcj1lLmZpcnN0Q2hpbGQ7V29hKGEsciwidHJ1ZSIpLHNldFRpbWVvdXQoKCk9PldvYShhLHIsImZhbHNlIiksMjApfXJldHVybiExfWZ1bmN0aW9uIGtBYShhKXtsZXQgZT0iIjtyZXR1cm4gYS5jdHJsS2V5JiYoZSs9ImMiKSxhLm1ldGFLZXkmJihlKz0ibSIpLGEuYWx0S2V5JiYoZSs9ImEiKSxhLnNoaWZ0S2V5JiYoZSs9InMiKSxlfWZ1bmN0aW9uIFNBYShhLGUpe2xldCB0PWUua2V5Q29kZSxyPWtBYShlKTtpZih0PT04fHxPbiYmdD09NzImJnI9PSJjIilyZXR1cm4gVW9hKGEsLTEpfHxrbShhLC0xKTtpZih0PT00NiYmIWUuc2hpZnRLZXl8fE9uJiZ0PT02OCYmcj09ImMiKXJldHVybiBVb2EoYSwxKXx8a20oYSwxKTtpZih0PT0xM3x8dD09MjcpcmV0dXJuITA7aWYodD09Mzd8fE9uJiZ0PT02NiYmcj09ImMiKXtsZXQgaT10PT0zNz9Wb2EoYSxhLnN0YXRlLnNlbGVjdGlvbi5mcm9tKT09Imx0ciI/LTE6MTotMTtyZXR1cm4gSG9hKGEsaSxyKXx8a20oYSxpKX1lbHNlIGlmKHQ9PTM5fHxPbiYmdD09NzAmJnI9PSJjIil7bGV0IGk9dD09Mzk/Vm9hKGEsYS5zdGF0ZS5zZWxlY3Rpb24uZnJvbSk9PSJsdHIiPzE6LTE6MTtyZXR1cm4gSG9hKGEsaSxyKXx8a20oYSxpKX1lbHNle2lmKHQ9PTM4fHxPbiYmdD09ODAmJnI9PSJjIilyZXR1cm4gam9hKGEsLTEscil8fGttKGEsLTEpO2lmKHQ9PTQwfHxPbiYmdD09NzgmJnI9PSJjIilyZXR1cm4gTUFhKGEpfHxqb2EoYSwxLHIpfHxrbShhLDEpO2lmKHI9PShPbj8ibSI6ImMiKSYmKHQ9PTY2fHx0PT03M3x8dD09ODl8fHQ9PTkwKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBSS2UoYSxlKXthLnNvbWVQcm9wKCJ0cmFuc2Zvcm1Db3BpZWQiLHY9PntlPXYoZSxhKX0pO2xldCB0PVtdLHtjb250ZW50OnIsb3BlblN0YXJ0Omksb3BlbkVuZDpvfT1lO2Zvcig7aT4xJiZvPjEmJnIuY2hpbGRDb3VudD09MSYmci5maXJzdENoaWxkLmNoaWxkQ291bnQ9PTE7KXtpLS0sby0tO2xldCB2PXIuZmlyc3RDaGlsZDt0LnB1c2godi50eXBlLm5hbWUsdi5hdHRycyE9di50eXBlLmRlZmF1bHRBdHRycz92LmF0dHJzOm51bGwpLHI9di5jb250ZW50fWxldCBuPWEuc29tZVByb3AoImNsaXBib2FyZFNlcmlhbGl6ZXIiKXx8VzIuZnJvbVNjaGVtYShhLnN0YXRlLnNjaGVtYSksbD1Kb2EoKSxkPWwuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5hcHBlbmRDaGlsZChuLnNlcmlhbGl6ZUZyYWdtZW50KHIse2RvY3VtZW50Omx9KSk7bGV0IGM9ZC5maXJzdENoaWxkLHAsdT0wO2Zvcig7YyYmYy5ub2RlVHlwZT09MSYmKHA9WG9hW2Mubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pOyl7Zm9yKGxldCB2PXAubGVuZ3RoLTE7dj49MDt2LS0pe2xldCB4PWwuY3JlYXRlRWxlbWVudChwW3ZdKTtmb3IoO2QuZmlyc3RDaGlsZDspeC5hcHBlbmRDaGlsZChkLmZpcnN0Q2hpbGQpO2QuYXBwZW5kQ2hpbGQoeCksdSsrfWM9ZC5maXJzdENoaWxkfWMmJmMubm9kZVR5cGU9PTEmJmMuc2V0QXR0cmlidXRlKCJkYXRhLXBtLXNsaWNlIixgJHtpfSAke299JHt1P2AgLSR7dX1gOiIifSAke0pTT04uc3RyaW5naWZ5KHQpfWApO2xldCBtPWEuc29tZVByb3AoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIix2PT52KGUsYSkpfHxlLmNvbnRlbnQudGV4dEJldHdlZW4oMCxlLmNvbnRlbnQuc2l6ZSxgCgpgKTtyZXR1cm57ZG9tOmQsdGV4dDptLHNsaWNlOmV9fWZ1bmN0aW9uIE9LZShhLGUsdCxyLGkpe2xldCBvPWkucGFyZW50LnR5cGUuc3BlYy5jb2RlLG4sbDtpZighdCYmIWUpcmV0dXJuIG51bGw7bGV0IGQ9ISFlJiYocnx8b3x8IXQpO2lmKGQpe2lmKGEuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZFRleHQiLG09PntlPW0oZSxvfHxyLGEpfSksbylyZXR1cm4gbD1uZXcgc3QoamUuZnJvbShhLnN0YXRlLnNjaGVtYS50ZXh0KGUucmVwbGFjZSgvXHJcbj8vZyxgCmApKSksMCwwKSxhLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLG09PntsPW0obCxhLCEwKX0pLGw7bGV0IHU9YS5zb21lUHJvcCgiY2xpcGJvYXJkVGV4dFBhcnNlciIsbT0+bShlLGkscixhKSk7aWYodSlsPXU7ZWxzZXtsZXQgbT1pLm1hcmtzKCkse3NjaGVtYTp2fT1hLnN0YXRlLHg9VzIuZnJvbVNjaGVtYSh2KTtuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3BsaXQoLyg/OlxyXG4/fFxuKSsvKS5mb3JFYWNoKGI9PntsZXQgZz1uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSk7YiYmZy5hcHBlbmRDaGlsZCh4LnNlcmlhbGl6ZU5vZGUodi50ZXh0KGIsbSkpKX0pfX1lbHNlIGEuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZEhUTUwiLHU9Pnt0PXUodCxhKX0pLG49VEFhKHQpLFFVJiZMQWEobik7bGV0IGM9biYmbi5xdWVyeVNlbGVjdG9yKCJbZGF0YS1wbS1zbGljZV0iKSxwPWMmJi9eKFxkKykgKFxkKykoPzogLShcZCspKT8gKC4qKS8uZXhlYyhjLmdldEF0dHJpYnV0ZSgiZGF0YS1wbS1zbGljZSIpfHwiIik7aWYocCYmcFszXSlmb3IobGV0IHU9K3BbM107dT4wO3UtLSl7bGV0IG09bi5maXJzdENoaWxkO2Zvcig7bSYmbS5ub2RlVHlwZSE9MTspbT1tLm5leHRTaWJsaW5nO2lmKCFtKWJyZWFrO249bX1pZihsfHwobD0oYS5zb21lUHJvcCgiY2xpcGJvYXJkUGFyc2VyIil8fGEuc29tZVByb3AoImRvbVBhcnNlciIpfHxOMS5mcm9tU2NoZW1hKGEuc3RhdGUuc2NoZW1hKSkucGFyc2VTbGljZShuLHtwcmVzZXJ2ZVdoaXRlc3BhY2U6ISEoZHx8cCksY29udGV4dDppLHJ1bGVGcm9tTm9kZShtKXtyZXR1cm4gbS5ub2RlTmFtZT09IkJSIiYmIW0ubmV4dFNpYmxpbmcmJm0ucGFyZW50Tm9kZSYmIXpBYS50ZXN0KG0ucGFyZW50Tm9kZS5ub2RlTmFtZSk/e2lnbm9yZTohMH06bnVsbH19KSkscClsPSRBYShab2EobCwrcFsxXSwrcFsyXSkscFs0XSk7ZWxzZSBpZihsPXN0Lm1heE9wZW4oQ0FhKGwuY29udGVudCxpKSwhMCksbC5vcGVuU3RhcnR8fGwub3BlbkVuZCl7bGV0IHU9MCxtPTA7Zm9yKGxldCB2PWwuY29udGVudC5maXJzdENoaWxkO3U8bC5vcGVuU3RhcnQmJiF2LnR5cGUuc3BlYy5pc29sYXRpbmc7dSsrLHY9di5maXJzdENoaWxkKTtmb3IobGV0IHY9bC5jb250ZW50Lmxhc3RDaGlsZDttPGwub3BlbkVuZCYmIXYudHlwZS5zcGVjLmlzb2xhdGluZzttKyssdj12Lmxhc3RDaGlsZCk7bD1ab2EobCx1LG0pfXJldHVybiBhLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLHU9PntsPXUobCxhLGQpfSksbH1mdW5jdGlvbiBDQWEoYSxlKXtpZihhLmNoaWxkQ291bnQ8MilyZXR1cm4gYTtmb3IobGV0IHQ9ZS5kZXB0aDt0Pj0wO3QtLSl7bGV0IGk9ZS5ub2RlKHQpLmNvbnRlbnRNYXRjaEF0KGUuaW5kZXgodCkpLG8sbj1bXTtpZihhLmZvckVhY2gobD0+e2lmKCFuKXJldHVybjtsZXQgZD1pLmZpbmRXcmFwcGluZyhsLnR5cGUpLGM7aWYoIWQpcmV0dXJuIG49bnVsbDtpZihjPW4ubGVuZ3RoJiZvLmxlbmd0aCYmWW9hKGQsbyxsLG5bbi5sZW5ndGgtMV0sMCkpbltuLmxlbmd0aC0xXT1jO2Vsc2V7bi5sZW5ndGgmJihuW24ubGVuZ3RoLTFdPUtvYShuW24ubGVuZ3RoLTFdLG8ubGVuZ3RoKSk7bGV0IHA9R29hKGwsZCk7bi5wdXNoKHApLGk9aS5tYXRjaFR5cGUocC50eXBlKSxvPWR9fSksbilyZXR1cm4gamUuZnJvbShuKX1yZXR1cm4gYX1mdW5jdGlvbiBHb2EoYSxlLHQ9MCl7Zm9yKGxldCByPWUubGVuZ3RoLTE7cj49dDtyLS0pYT1lW3JdLmNyZWF0ZShudWxsLGplLmZyb20oYSkpO3JldHVybiBhfWZ1bmN0aW9uIFlvYShhLGUsdCxyLGkpe2lmKGk8YS5sZW5ndGgmJmk8ZS5sZW5ndGgmJmFbaV09PWVbaV0pe2xldCBvPVlvYShhLGUsdCxyLmxhc3RDaGlsZCxpKzEpO2lmKG8pcmV0dXJuIHIuY29weShyLmNvbnRlbnQucmVwbGFjZUNoaWxkKHIuY2hpbGRDb3VudC0xLG8pKTtpZihyLmNvbnRlbnRNYXRjaEF0KHIuY2hpbGRDb3VudCkubWF0Y2hUeXBlKGk9PWEubGVuZ3RoLTE/dC50eXBlOmFbaSsxXSkpcmV0dXJuIHIuY29weShyLmNvbnRlbnQuYXBwZW5kKGplLmZyb20oR29hKHQsYSxpKzEpKSkpfX1mdW5jdGlvbiBLb2EoYSxlKXtpZihlPT0wKXJldHVybiBhO2xldCB0PWEuY29udGVudC5yZXBsYWNlQ2hpbGQoYS5jaGlsZENvdW50LTEsS29hKGEubGFzdENoaWxkLGUtMSkpLHI9YS5jb250ZW50TWF0Y2hBdChhLmNoaWxkQ291bnQpLmZpbGxCZWZvcmUoamUuZW1wdHksITApO3JldHVybiBhLmNvcHkodC5hcHBlbmQocikpfWZ1bmN0aW9uIEZLZShhLGUsdCxyLGksbyl7bGV0IG49ZTwwP2EuZmlyc3RDaGlsZDphLmxhc3RDaGlsZCxsPW4uY29udGVudDtyZXR1cm4gYS5jaGlsZENvdW50PjEmJihvPTApLGk8ci0xJiYobD1GS2UobCxlLHQscixpKzEsbykpLGk+PXQmJihsPWU8MD9uLmNvbnRlbnRNYXRjaEF0KDApLmZpbGxCZWZvcmUobCxvPD1pKS5hcHBlbmQobCk6bC5hcHBlbmQobi5jb250ZW50TWF0Y2hBdChuLmNoaWxkQ291bnQpLmZpbGxCZWZvcmUoamUuZW1wdHksITApKSksYS5yZXBsYWNlQ2hpbGQoZTwwPzA6YS5jaGlsZENvdW50LTEsbi5jb3B5KGwpKX1mdW5jdGlvbiBab2EoYSxlLHQpe3JldHVybiBlPGEub3BlblN0YXJ0JiYoYT1uZXcgc3QoRktlKGEuY29udGVudCwtMSxlLGEub3BlblN0YXJ0LDAsYS5vcGVuRW5kKSxlLGEub3BlbkVuZCkpLHQ8YS5vcGVuRW5kJiYoYT1uZXcgc3QoRktlKGEuY29udGVudCwxLHQsYS5vcGVuRW5kLDAsMCksYS5vcGVuU3RhcnQsdCkpLGF9ZnVuY3Rpb24gSm9hKCl7cmV0dXJuIFFvYXx8KFFvYT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInRpdGxlIikpfWZ1bmN0aW9uIF9BYShhKXtsZXQgZT13aW5kb3cudHJ1c3RlZFR5cGVzO3JldHVybiBlPyhCS2V8fChCS2U9ZS5kZWZhdWx0UG9saWN5fHxlLmNyZWF0ZVBvbGljeSgiUHJvc2VNaXJyb3JDbGlwYm9hcmQiLHtjcmVhdGVIVE1MOnModD0+dCwiY3JlYXRlSFRNTCIpfSkpLEJLZS5jcmVhdGVIVE1MKGEpKTphfWZ1bmN0aW9uIFRBYShhKXtsZXQgZT0vXihccyo8bWV0YSBbXj5dKj4pKi8uZXhlYyhhKTtlJiYoYT1hLnNsaWNlKGVbMF0ubGVuZ3RoKSk7bGV0IHQ9Sm9hKCkuY3JlYXRlRWxlbWVudCgiZGl2Iikscj0vPChbYS16XVtePlxzXSspL2kuZXhlYyhhKSxpO2lmKChpPXImJlhvYVtyWzFdLnRvTG93ZXJDYXNlKCldKSYmKGE9aS5tYXAobz0+IjwiK28rIj4iKS5qb2luKCIiKSthK2kubWFwKG89PiI8LyIrbysiPiIpLnJldmVyc2UoKS5qb2luKCIiKSksdC5pbm5lckhUTUw9X0FhKGEpLGkpZm9yKGxldCBvPTA7bzxpLmxlbmd0aDtvKyspdD10LnF1ZXJ5U2VsZWN0b3IoaVtvXSl8fHQ7cmV0dXJuIHR9ZnVuY3Rpb24gTEFhKGEpe2xldCBlPWEucXVlcnlTZWxlY3RvckFsbChvaT8ic3Bhbjpub3QoW2NsYXNzXSk6bm90KFtzdHlsZV0pIjoic3Bhbi5BcHBsZS1jb252ZXJ0ZWQtc3BhY2UiKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IHI9ZVt0XTtyLmNoaWxkTm9kZXMubGVuZ3RoPT0xJiZyLnRleHRDb250ZW50PT0iXHhBMCImJnIucGFyZW50Tm9kZSYmci5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSxyKX19ZnVuY3Rpb24gJEFhKGEsZSl7aWYoIWEuc2l6ZSlyZXR1cm4gYTtsZXQgdD1hLmNvbnRlbnQuZmlyc3RDaGlsZC50eXBlLnNjaGVtYSxyO3RyeXtyPUpTT04ucGFyc2UoZSl9Y2F0Y2h7cmV0dXJuIGF9bGV0e2NvbnRlbnQ6aSxvcGVuU3RhcnQ6byxvcGVuRW5kOm59PWE7Zm9yKGxldCBsPXIubGVuZ3RoLTI7bD49MDtsLT0yKXtsZXQgZD10Lm5vZGVzW3JbbF1dO2lmKCFkfHxkLmhhc1JlcXVpcmVkQXR0cnMoKSlicmVhaztpPWplLmZyb20oZC5jcmVhdGUocltsKzFdLGkpKSxvKyssbisrfXJldHVybiBuZXcgc3QoaSxvLG4pfWZ1bmN0aW9uIEFBYShhKXtmb3IobGV0IGUgaW4gWmkpe2xldCB0PVppW2VdO2EuZG9tLmFkZEV2ZW50TGlzdGVuZXIoZSxhLmlucHV0LmV2ZW50SGFuZGxlcnNbZV09cj0+e0VBYShhLHIpJiYhVktlKGEscikmJihhLmVkaXRhYmxlfHwhKHIudHlwZSBpbiBYaSkpJiZ0KGEscil9LERBYVtlXT97cGFzc2l2ZTohMH06dm9pZCAwKX1OaSYmYS5kb20uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT5udWxsKSxxS2UoYSl9ZnVuY3Rpb24geTQoYSxlKXthLmlucHV0Lmxhc3RTZWxlY3Rpb25PcmlnaW49ZSxhLmlucHV0Lmxhc3RTZWxlY3Rpb25UaW1lPURhdGUubm93KCl9ZnVuY3Rpb24gUEFhKGEpe2EuZG9tT2JzZXJ2ZXIuc3RvcCgpO2ZvcihsZXQgZSBpbiBhLmlucHV0LmV2ZW50SGFuZGxlcnMpYS5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGEuaW5wdXQuZXZlbnRIYW5kbGVyc1tlXSk7Y2xlYXJUaW1lb3V0KGEuaW5wdXQuY29tcG9zaW5nVGltZW91dCksY2xlYXJUaW1lb3V0KGEuaW5wdXQubGFzdElPU0VudGVyRmFsbGJhY2tUaW1lb3V0KX1mdW5jdGlvbiBxS2UoYSl7YS5zb21lUHJvcCgiaGFuZGxlRE9NRXZlbnRzIixlPT57Zm9yKGxldCB0IGluIGUpYS5pbnB1dC5ldmVudEhhbmRsZXJzW3RdfHxhLmRvbS5hZGRFdmVudExpc3RlbmVyKHQsYS5pbnB1dC5ldmVudEhhbmRsZXJzW3RdPXI9PlZLZShhLHIpKX0pfWZ1bmN0aW9uIFZLZShhLGUpe3JldHVybiBhLnNvbWVQcm9wKCJoYW5kbGVET01FdmVudHMiLHQ9PntsZXQgcj10W2UudHlwZV07cmV0dXJuIHI/cihhLGUpfHxlLmRlZmF1bHRQcmV2ZW50ZWQ6ITF9KX1mdW5jdGlvbiBFQWEoYSxlKXtpZighZS5idWJibGVzKXJldHVybiEwO2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm4hMTtmb3IobGV0IHQ9ZS50YXJnZXQ7dCE9YS5kb207dD10LnBhcmVudE5vZGUpaWYoIXR8fHQubm9kZVR5cGU9PTExfHx0LnBtVmlld0Rlc2MmJnQucG1WaWV3RGVzYy5zdG9wRXZlbnQoZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gSUFhKGEsZSl7IVZLZShhLGUpJiZaaVtlLnR5cGVdJiYoYS5lZGl0YWJsZXx8IShlLnR5cGUgaW4gWGkpKSYmWmlbZS50eXBlXShhLGUpfWZ1bmN0aW9uIEhhZShhKXtyZXR1cm57bGVmdDphLmNsaWVudFgsdG9wOmEuY2xpZW50WX19ZnVuY3Rpb24gTkFhKGEsZSl7bGV0IHQ9ZS54LWEuY2xpZW50WCxyPWUueS1hLmNsaWVudFk7cmV0dXJuIHQqdCtyKnI8MTAwfWZ1bmN0aW9uIGpLZShhLGUsdCxyLGkpe2lmKHI9PS0xKXJldHVybiExO2xldCBvPWEuc3RhdGUuZG9jLnJlc29sdmUocik7Zm9yKGxldCBuPW8uZGVwdGgrMTtuPjA7bi0tKWlmKGEuc29tZVByb3AoZSxsPT5uPm8uZGVwdGg/bChhLHQsby5ub2RlQWZ0ZXIsby5iZWZvcmUobiksaSwhMCk6bChhLHQsby5ub2RlKG4pLG8uYmVmb3JlKG4pLGksITEpKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBTbShhLGUsdCl7aWYoYS5mb2N1c2VkfHxhLmZvY3VzKCksYS5zdGF0ZS5zZWxlY3Rpb24uZXEoZSkpcmV0dXJuO2xldCByPWEuc3RhdGUudHIuc2V0U2VsZWN0aW9uKGUpO3Q9PSJwb2ludGVyIiYmci5zZXRNZXRhKCJwb2ludGVyIiwhMCksYS5kaXNwYXRjaChyKX1mdW5jdGlvbiBSQWEoYSxlKXtpZihlPT0tMSlyZXR1cm4hMTtsZXQgdD1hLnN0YXRlLmRvYy5yZXNvbHZlKGUpLHI9dC5ub2RlQWZ0ZXI7cmV0dXJuIHImJnIuaXNBdG9tJiZrdC5pc1NlbGVjdGFibGUocik/KFNtKGEsbmV3IGt0KHQpLCJwb2ludGVyIiksITApOiExfWZ1bmN0aW9uIE9BYShhLGUpe2lmKGU9PS0xKXJldHVybiExO2xldCB0PWEuc3RhdGUuc2VsZWN0aW9uLHIsaTt0IGluc3RhbmNlb2Yga3QmJihyPXQubm9kZSk7bGV0IG89YS5zdGF0ZS5kb2MucmVzb2x2ZShlKTtmb3IobGV0IG49by5kZXB0aCsxO24+MDtuLS0pe2xldCBsPW4+by5kZXB0aD9vLm5vZGVBZnRlcjpvLm5vZGUobik7aWYoa3QuaXNTZWxlY3RhYmxlKGwpKXtyJiZ0LiRmcm9tLmRlcHRoPjAmJm4+PXQuJGZyb20uZGVwdGgmJm8uYmVmb3JlKHQuJGZyb20uZGVwdGgrMSk9PXQuJGZyb20ucG9zP2k9by5iZWZvcmUodC4kZnJvbS5kZXB0aCk6aT1vLmJlZm9yZShuKTticmVha319cmV0dXJuIGkhPW51bGw/KFNtKGEsa3QuY3JlYXRlKGEuc3RhdGUuZG9jLGkpLCJwb2ludGVyIiksITApOiExfWZ1bmN0aW9uIEZBYShhLGUsdCxyLGkpe3JldHVybiBqS2UoYSwiaGFuZGxlQ2xpY2tPbiIsZSx0LHIpfHxhLnNvbWVQcm9wKCJoYW5kbGVDbGljayIsbz0+byhhLGUscikpfHwoaT9PQWEoYSx0KTpSQWEoYSx0KSl9ZnVuY3Rpb24gQkFhKGEsZSx0LHIpe3JldHVybiBqS2UoYSwiaGFuZGxlRG91YmxlQ2xpY2tPbiIsZSx0LHIpfHxhLnNvbWVQcm9wKCJoYW5kbGVEb3VibGVDbGljayIsaT0+aShhLGUscikpfWZ1bmN0aW9uIEhBYShhLGUsdCxyKXtyZXR1cm4gaktlKGEsImhhbmRsZVRyaXBsZUNsaWNrT24iLGUsdCxyKXx8YS5zb21lUHJvcCgiaGFuZGxlVHJpcGxlQ2xpY2siLGk9PmkoYSxlLHIpKXx8cUFhKGEsdCxyKX1mdW5jdGlvbiBxQWEoYSxlLHQpe2lmKHQuYnV0dG9uIT0wKXJldHVybiExO2xldCByPWEuc3RhdGUuZG9jO2lmKGU9PS0xKXJldHVybiByLmlubGluZUNvbnRlbnQ/KFNtKGEsTnQuY3JlYXRlKHIsMCxyLmNvbnRlbnQuc2l6ZSksInBvaW50ZXIiKSwhMCk6ITE7bGV0IGk9ci5yZXNvbHZlKGUpO2ZvcihsZXQgbz1pLmRlcHRoKzE7bz4wO28tLSl7bGV0IG49bz5pLmRlcHRoP2kubm9kZUFmdGVyOmkubm9kZShvKSxsPWkuYmVmb3JlKG8pO2lmKG4uaW5saW5lQ29udGVudClTbShhLE50LmNyZWF0ZShyLGwrMSxsKzErbi5jb250ZW50LnNpemUpLCJwb2ludGVyIik7ZWxzZSBpZihrdC5pc1NlbGVjdGFibGUobikpU20oYSxrdC5jcmVhdGUocixsKSwicG9pbnRlciIpO2Vsc2UgY29udGludWU7cmV0dXJuITB9fWZ1bmN0aW9uIFVLZShhKXtyZXR1cm4gYVcoYSl9ZnVuY3Rpb24gdG5hKGEsZSl7cmV0dXJuIGEuY29tcG9zaW5nPyEwOk5pJiZNYXRoLmFicyhlLnRpbWVTdGFtcC1hLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdCk8NTAwPyhhLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LCEwKTohMX1mdW5jdGlvbiBqQWEoYSl7bGV0e2ZvY3VzTm9kZTplLGZvY3VzT2Zmc2V0OnR9PWEuZG9tU2VsZWN0aW9uUmFuZ2UoKTtpZighZXx8ZS5ub2RlVHlwZSE9MXx8dD49ZS5jaGlsZE5vZGVzLmxlbmd0aClyZXR1cm4hMTtsZXQgcj1lLmNoaWxkTm9kZXNbdF07cmV0dXJuIHIubm9kZVR5cGU9PTEmJnIuY29udGVudEVkaXRhYmxlPT0iZmFsc2UifWZ1bmN0aW9uIGFuYShhLGUpe2NsZWFyVGltZW91dChhLmlucHV0LmNvbXBvc2luZ1RpbWVvdXQpLGU+LTEmJihhLmlucHV0LmNvbXBvc2luZ1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+YVcoYSksZSkpfWZ1bmN0aW9uIHJuYShhKXtmb3IoYS5jb21wb3NpbmcmJihhLmlucHV0LmNvbXBvc2luZz0hMSxhLmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD1XQWEoKSk7YS5pbnB1dC5jb21wb3NpdGlvbk5vZGVzLmxlbmd0aD4wOylhLmlucHV0LmNvbXBvc2l0aW9uTm9kZXMucG9wKCkubWFya1BhcmVudHNEaXJ0eSgpfWZ1bmN0aW9uIFVBYShhKXtsZXQgZT1hLmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCB0PXFEYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KSxyPVZEYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KTtpZih0JiZyJiZ0IT1yKXtsZXQgaT1yLnBtVmlld0Rlc2Msbz1hLmRvbU9ic2VydmVyLmxhc3RDaGFuZ2VkVGV4dE5vZGU7aWYodD09b3x8cj09bylyZXR1cm4gbztpZighaXx8IWkuaXNUZXh0KHIubm9kZVZhbHVlKSlyZXR1cm4gcjtpZihhLmlucHV0LmNvbXBvc2l0aW9uTm9kZT09cil7bGV0IG49dC5wbVZpZXdEZXNjO2lmKCEoIW58fCFuLmlzVGV4dCh0Lm5vZGVWYWx1ZSkpKXJldHVybiByfX1yZXR1cm4gdHx8cn1mdW5jdGlvbiBXQWEoKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gYS5pbml0RXZlbnQoImV2ZW50IiwhMCwhMCksYS50aW1lU3RhbXB9ZnVuY3Rpb24gYVcoYSxlPSExKXtpZighKGJjJiZhLmRvbU9ic2VydmVyLmZsdXNoaW5nU29vbj49MCkpe2lmKGEuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLHJuYShhKSxlfHxhLmRvY1ZpZXcmJmEuZG9jVmlldy5kaXJ0eSl7bGV0IHQ9QUtlKGEpLHI9YS5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIHQmJiF0LmVxKHIpP2EuZGlzcGF0Y2goYS5zdGF0ZS50ci5zZXRTZWxlY3Rpb24odCkpOihhLm1hcmtDdXJzb3J8fGUpJiYhci4kZnJvbS5ub2RlKHIuJGZyb20uc2hhcmVkRGVwdGgoci50bykpLmlubGluZUNvbnRlbnQ/YS5kaXNwYXRjaChhLnN0YXRlLnRyLmRlbGV0ZVNlbGVjdGlvbigpKTphLnVwZGF0ZVN0YXRlKGEuc3RhdGUpLCEwfXJldHVybiExfX1mdW5jdGlvbiBHQWEoYSxlKXtpZighYS5kb20ucGFyZW50Tm9kZSlyZXR1cm47bGV0IHQ9YS5kb20ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7dC5hcHBlbmRDaGlsZChlKSx0LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogLTEwMDAwcHg7IHRvcDogMTBweCI7bGV0IHI9Z2V0U2VsZWN0aW9uKCksaT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2kuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpLGEuZG9tLmJsdXIoKSxyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoaSksc2V0VGltZW91dCgoKT0+e3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLGEuZm9jdXMoKX0sNTApfWZ1bmN0aW9uIFlBYShhKXtyZXR1cm4gYS5vcGVuU3RhcnQ9PTAmJmEub3BlbkVuZD09MCYmYS5jb250ZW50LmNoaWxkQ291bnQ9PTE/YS5jb250ZW50LmZpcnN0Q2hpbGQ6bnVsbH1mdW5jdGlvbiBLQWEoYSxlKXtpZighYS5kb20ucGFyZW50Tm9kZSlyZXR1cm47bGV0IHQ9YS5pbnB1dC5zaGlmdEtleXx8YS5zdGF0ZS5zZWxlY3Rpb24uJGZyb20ucGFyZW50LnR5cGUuc3BlYy5jb2RlLHI9YS5kb20ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KHQ/InRleHRhcmVhIjoiZGl2IikpO3R8fChyLmNvbnRlbnRFZGl0YWJsZT0idHJ1ZSIpLHIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGZpeGVkOyBsZWZ0OiAtMTAwMDBweDsgdG9wOiAxMHB4IixyLmZvY3VzKCk7bGV0IGk9YS5pbnB1dC5zaGlmdEtleSYmYS5pbnB1dC5sYXN0S2V5Q29kZSE9NDU7c2V0VGltZW91dCgoKT0+e2EuZm9jdXMoKSxyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSx0P3NXKGEsci52YWx1ZSxudWxsLGksZSk6c1coYSxyLnRleHRDb250ZW50LHIuaW5uZXJIVE1MLGksZSl9LDUwKX1mdW5jdGlvbiBzVyhhLGUsdCxyLGkpe2xldCBvPU9LZShhLGUsdCxyLGEuc3RhdGUuc2VsZWN0aW9uLiRmcm9tKTtpZihhLnNvbWVQcm9wKCJoYW5kbGVQYXN0ZSIsZD0+ZChhLGksb3x8c3QuZW1wdHkpKSlyZXR1cm4hMDtpZighbylyZXR1cm4hMTtsZXQgbj1ZQWEobyksbD1uP2Euc3RhdGUudHIucmVwbGFjZVNlbGVjdGlvbldpdGgobixyKTphLnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb24obyk7cmV0dXJuIGEuZGlzcGF0Y2gobC5zY3JvbGxJbnRvVmlldygpLnNldE1ldGEoInBhc3RlIiwhMCkuc2V0TWV0YSgidWlFdmVudCIsInBhc3RlIikpLCEwfWZ1bmN0aW9uIHNuYShhKXtsZXQgZT1hLmdldERhdGEoInRleHQvcGxhaW4iKXx8YS5nZXREYXRhKCJUZXh0Iik7aWYoZSlyZXR1cm4gZTtsZXQgdD1hLmdldERhdGEoInRleHQvdXJpLWxpc3QiKTtyZXR1cm4gdD90LnJlcGxhY2UoL1xyP1xuL2csIiAiKToiIn1mdW5jdGlvbiBpbmEoYSxlKXtsZXQgdDtyZXR1cm4gYS5zb21lUHJvcCgiZHJhZ0NvcGllcyIscj0+e3Q9dHx8cihlKX0pLHQhPW51bGw/IXQ6IWVbWkFhXX1mdW5jdGlvbiBYQWEoYSxlLHQpe2lmKCFlLmRhdGFUcmFuc2ZlcilyZXR1cm47bGV0IHI9YS5wb3NBdENvb3JkcyhIYWUoZSkpO2lmKCFyKXJldHVybjtsZXQgaT1hLnN0YXRlLmRvYy5yZXNvbHZlKHIucG9zKSxvPXQmJnQuc2xpY2U7bz9hLnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLHY9PntvPXYobyxhLCExKX0pOm89T0tlKGEsc25hKGUuZGF0YVRyYW5zZmVyKSxyVz9udWxsOmUuZGF0YVRyYW5zZmVyLmdldERhdGEoInRleHQvaHRtbCIpLCExLGkpO2xldCBuPSEhKHQmJmluYShhLGUpKTtpZihhLnNvbWVQcm9wKCJoYW5kbGVEcm9wIix2PT52KGEsZSxvfHxzdC5lbXB0eSxuKSkpe2UucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIW8pcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtsZXQgbD1vP0dVKGEuc3RhdGUuZG9jLGkucG9zLG8pOmkucG9zO2w9PW51bGwmJihsPWkucG9zKTtsZXQgZD1hLnN0YXRlLnRyO2lmKG4pe2xldHtub2RlOnZ9PXQ7dj92LnJlcGxhY2UoZCk6ZC5kZWxldGVTZWxlY3Rpb24oKX1sZXQgYz1kLm1hcHBpbmcubWFwKGwpLHA9by5vcGVuU3RhcnQ9PTAmJm8ub3BlbkVuZD09MCYmby5jb250ZW50LmNoaWxkQ291bnQ9PTEsdT1kLmRvYztpZihwP2QucmVwbGFjZVJhbmdlV2l0aChjLGMsby5jb250ZW50LmZpcnN0Q2hpbGQpOmQucmVwbGFjZVJhbmdlKGMsYyxvKSxkLmRvYy5lcSh1KSlyZXR1cm47bGV0IG09ZC5kb2MucmVzb2x2ZShjKTtpZihwJiZrdC5pc1NlbGVjdGFibGUoby5jb250ZW50LmZpcnN0Q2hpbGQpJiZtLm5vZGVBZnRlciYmbS5ub2RlQWZ0ZXIuc2FtZU1hcmt1cChvLmNvbnRlbnQuZmlyc3RDaGlsZCkpZC5zZXRTZWxlY3Rpb24obmV3IGt0KG0pKTtlbHNle2xldCB2PWQubWFwcGluZy5tYXAobCk7ZC5tYXBwaW5nLm1hcHNbZC5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLmZvckVhY2goKHgsYixnLHkpPT52PXkpLGQuc2V0U2VsZWN0aW9uKEVLZShhLG0sZC5kb2MucmVzb2x2ZSh2KSkpfWEuZm9jdXMoKSxhLmRpc3BhdGNoKGQuc2V0TWV0YSgidWlFdmVudCIsImRyb3AiKSl9ZnVuY3Rpb24gaVcoYSxlKXtpZihhPT1lKXJldHVybiEwO2ZvcihsZXQgdCBpbiBhKWlmKGFbdF0hPT1lW3RdKXJldHVybiExO2ZvcihsZXQgdCBpbiBlKWlmKCEodCBpbiBhKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRQWEoYSxlLHQscixpLG8sbil7bGV0IGw9YS5zbGljZSgpO2ZvcihsZXQgYz0wLHA9bztjPHQubWFwcy5sZW5ndGg7YysrKXtsZXQgdT0wO3QubWFwc1tjXS5mb3JFYWNoKChtLHYseCxiKT0+e2xldCBnPWIteC0odi1tKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krPTMpe2xldCBrPWxbeSsxXTtpZihrPDB8fG0+aytwLXUpY29udGludWU7bGV0IEM9bFt5XStwLXU7dj49Qz9sW3krMV09bTw9Qz8tMjotMTptPj1wJiZnJiYobFt5XSs9ZyxsW3krMV0rPWcpfXUrPWd9KSxwPXQubWFwc1tjXS5tYXAocCwtMSl9bGV0IGQ9ITE7Zm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKz0zKWlmKGxbYysxXTwwKXtpZihsW2MrMV09PS0yKXtkPSEwLGxbYysxXT0tMTtjb250aW51ZX1sZXQgcD10Lm1hcChhW2NdK28pLHU9cC1pO2lmKHU8MHx8dT49ci5jb250ZW50LnNpemUpe2Q9ITA7Y29udGludWV9bGV0IG09dC5tYXAoYVtjKzFdK28sLTEpLHY9bS1pLHtpbmRleDp4LG9mZnNldDpifT1yLmNvbnRlbnQuZmluZEluZGV4KHUpLGc9ci5tYXliZUNoaWxkKHgpO2lmKGcmJmI9PXUmJmIrZy5ub2RlU2l6ZT09dil7bGV0IHk9bFtjKzJdLm1hcElubmVyKHQsZyxwKzEsYVtjXStvKzEsbik7eSE9Umk/KGxbY109dSxsW2MrMV09dixsW2MrMl09eSk6KGxbYysxXT0tMixkPSEwKX1lbHNlIGQ9ITB9aWYoZCl7bGV0IGM9SkFhKGwsYSxlLHQsaSxvLG4pLHA9VWFlKGMsciwwLG4pO2U9cC5sb2NhbDtmb3IobGV0IHU9MDt1PGwubGVuZ3RoO3UrPTMpbFt1KzFdPDAmJihsLnNwbGljZSh1LDMpLHUtPTMpO2ZvcihsZXQgdT0wLG09MDt1PHAuY2hpbGRyZW4ubGVuZ3RoO3UrPTMpe2xldCB2PXAuY2hpbGRyZW5bdV07Zm9yKDttPGwubGVuZ3RoJiZsW21dPHY7KW0rPTM7bC5zcGxpY2UobSwwLHAuY2hpbGRyZW5bdV0scC5jaGlsZHJlblt1KzFdLHAuY2hpbGRyZW5bdSsyXSl9fXJldHVybiBuZXcgUWkoZS5zb3J0KFhmKSxsKX1mdW5jdGlvbiBvbmEoYSxlKXtpZighZXx8IWEubGVuZ3RoKXJldHVybiBhO2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGg7cisrKXtsZXQgaT1hW3JdO3QucHVzaChuZXcgUjEoaS5mcm9tK2UsaS50bytlLGkudHlwZSkpfXJldHVybiB0fWZ1bmN0aW9uIEpBYShhLGUsdCxyLGksbyxuKXtmdW5jdGlvbiBsKGQsYyl7Zm9yKGxldCBwPTA7cDxkLmxvY2FsLmxlbmd0aDtwKyspe2xldCB1PWQubG9jYWxbcF0ubWFwKHIsaSxjKTt1P3QucHVzaCh1KTpuLm9uUmVtb3ZlJiZuLm9uUmVtb3ZlKGQubG9jYWxbcF0uc3BlYyl9Zm9yKGxldCBwPTA7cDxkLmNoaWxkcmVuLmxlbmd0aDtwKz0zKWwoZC5jaGlsZHJlbltwKzJdLGQuY2hpbGRyZW5bcF0rYysxKX1zKGwsImdhdGhlciIpO2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCs9MylhW2QrMV09PS0xJiZsKGFbZCsyXSxlW2RdK28rMSk7cmV0dXJuIHR9ZnVuY3Rpb24gbm5hKGEsZSx0KXtpZihlLmlzTGVhZilyZXR1cm4gbnVsbDtsZXQgcj10K2Uubm9kZVNpemUsaT1udWxsO2ZvcihsZXQgbz0wLG47bzxhLmxlbmd0aDtvKyspKG49YVtvXSkmJm4uZnJvbT50JiZuLnRvPHImJigoaXx8KGk9W10pKS5wdXNoKG4pLGFbb109bnVsbCk7cmV0dXJuIGl9ZnVuY3Rpb24gbG5hKGEpe2xldCBlPVtdO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCsrKWFbdF0hPW51bGwmJmUucHVzaChhW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiBVYWUoYSxlLHQscil7bGV0IGk9W10sbz0hMTtlLmZvckVhY2goKGwsZCk9PntsZXQgYz1ubmEoYSxsLGQrdCk7aWYoYyl7bz0hMDtsZXQgcD1VYWUoYyxsLHQrZCsxLHIpO3AhPVJpJiZpLnB1c2goZCxkK2wubm9kZVNpemUscCl9fSk7bGV0IG49b25hKG8/bG5hKGEpOmEsLXQpLnNvcnQoWGYpO2ZvcihsZXQgbD0wO2w8bi5sZW5ndGg7bCsrKW5bbF0udHlwZS52YWxpZChlLG5bbF0pfHwoci5vblJlbW92ZSYmci5vblJlbW92ZShuW2xdLnNwZWMpLG4uc3BsaWNlKGwtLSwxKSk7cmV0dXJuIG4ubGVuZ3RofHxpLmxlbmd0aD9uZXcgUWkobixpKTpSaX1mdW5jdGlvbiBYZihhLGUpe3JldHVybiBhLmZyb20tZS5mcm9tfHxhLnRvLWUudG99ZnVuY3Rpb24gWUtlKGEpe2xldCBlPWE7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aC0xO3QrKyl7bGV0IHI9ZVt0XTtpZihyLmZyb20hPXIudG8pZm9yKGxldCBpPXQrMTtpPGUubGVuZ3RoO2krKyl7bGV0IG89ZVtpXTtpZihvLmZyb209PXIuZnJvbSl7by50byE9ci50byYmKGU9PWEmJihlPWEuc2xpY2UoKSksZVtpXT1vLmNvcHkoby5mcm9tLHIudG8pLGNuYShlLGkrMSxvLmNvcHkoci50byxvLnRvKSkpO2NvbnRpbnVlfWVsc2V7by5mcm9tPHIudG8mJihlPT1hJiYoZT1hLnNsaWNlKCkpLGVbdF09ci5jb3B5KHIuZnJvbSxvLmZyb20pLGNuYShlLGksci5jb3B5KG8uZnJvbSxyLnRvKSkpO2JyZWFrfX19cmV0dXJuIGV9ZnVuY3Rpb24gY25hKGEsZSx0KXtmb3IoO2U8YS5sZW5ndGgmJlhmKHQsYVtlXSk+MDspZSsrO2Euc3BsaWNlKGUsMCx0KX1mdW5jdGlvbiBLS2UoYSl7bGV0IGU9W107cmV0dXJuIGEuc29tZVByb3AoImRlY29yYXRpb25zIix0PT57bGV0IHI9dChhLnN0YXRlKTtyJiZyIT1SaSYmZS5wdXNoKHIpfSksYS5jdXJzb3JXcmFwcGVyJiZlLnB1c2goUWkuY3JlYXRlKGEuc3RhdGUuZG9jLFthLmN1cnNvcldyYXBwZXIuZGVjb10pKSxqYWUuZnJvbShlKX1mdW5jdGlvbiBhUGEoYSl7aWYoIWRuYS5oYXMoYSkmJihkbmEuc2V0KGEsbnVsbCksWyJub3JtYWwiLCJub3dyYXAiLCJwcmUtbGluZSJdLmluZGV4T2YoZ2V0Q29tcHV0ZWRTdHlsZShhLmRvbSkud2hpdGVTcGFjZSkhPT0tMSkpe2lmKGEucmVxdWlyZXNHZWNrb0hhY2tOb2RlPVJuLHVuYSlyZXR1cm47Y29uc29sZS53YXJuKCJQcm9zZU1pcnJvciBleHBlY3RzIHRoZSBDU1Mgd2hpdGUtc3BhY2UgcHJvcGVydHkgdG8gYmUgc2V0LCBwcmVmZXJhYmx5IHRvICdwcmUtd3JhcCcuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGxvYWQgc3R5bGUvcHJvc2VtaXJyb3IuY3NzIGZyb20gdGhlIHByb3NlbWlycm9yLXZpZXcgcGFja2FnZS4iKSx1bmE9ITB9fWZ1bmN0aW9uIHBuYShhLGUpe2xldCB0PWUuc3RhcnRDb250YWluZXIscj1lLnN0YXJ0T2Zmc2V0LGk9ZS5lbmRDb250YWluZXIsbz1lLmVuZE9mZnNldCxuPWEuZG9tQXRQb3MoYS5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yKTtyZXR1cm4gamYobi5ub2RlLG4ub2Zmc2V0LGksbykmJihbdCxyLGksb109W2ksbyx0LHJdKSx7YW5jaG9yTm9kZTp0LGFuY2hvck9mZnNldDpyLGZvY3VzTm9kZTppLGZvY3VzT2Zmc2V0Om99fWZ1bmN0aW9uIHJQYShhLGUpe2lmKGUuZ2V0Q29tcG9zZWRSYW5nZXMpe2xldCBpPWUuZ2V0Q29tcG9zZWRSYW5nZXMoYS5yb290KVswXTtpZihpKXJldHVybiBwbmEoYSxpKX1sZXQgdDtmdW5jdGlvbiByKGkpe2kucHJldmVudERlZmF1bHQoKSxpLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHQ9aS5nZXRUYXJnZXRSYW5nZXMoKVswXX1yZXR1cm4gcyhyLCJyZWFkIiksYS5kb20uYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlaW5wdXQiLHIsITApLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbmRlbnQiKSxhLmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmVpbnB1dCIsciwhMCksdD9wbmEoYSx0KTpudWxsfWZ1bmN0aW9uIHNQYShhLGUpe2ZvcihsZXQgdD1lLnBhcmVudE5vZGU7dCYmdCE9YS5kb207dD10LnBhcmVudE5vZGUpe2xldCByPWEuZG9jVmlldy5uZWFyZXN0RGVzYyh0LCEwKTtpZihyJiZyLm5vZGUuaXNCbG9jaylyZXR1cm4gdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBpUGEoYSxlKXt2YXIgdDtsZXR7Zm9jdXNOb2RlOnIsZm9jdXNPZmZzZXQ6aX09YS5kb21TZWxlY3Rpb25SYW5nZSgpO2ZvcihsZXQgbyBvZiBlKWlmKCgodD1vLnBhcmVudE5vZGUpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5ub2RlTmFtZSk9PSJUUiIpe2xldCBuPW8ubmV4dFNpYmxpbmc7Zm9yKDtuJiZuLm5vZGVOYW1lIT0iVEQiJiZuLm5vZGVOYW1lIT0iVEgiOyluPW4ubmV4dFNpYmxpbmc7aWYobil7bGV0IGw9bjtmb3IoOzspe2xldCBkPWwuZmlyc3RDaGlsZDtpZighZHx8ZC5ub2RlVHlwZSE9MXx8ZC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSJ8fC9eKEJSfElNRykkLy50ZXN0KGQubm9kZU5hbWUpKWJyZWFrO2w9ZH1sLmluc2VydEJlZm9yZShvLGwuZmlyc3RDaGlsZCkscj09byYmYS5kb21TZWxlY3Rpb24oKS5jb2xsYXBzZShvLGkpfWVsc2Ugby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfX1mdW5jdGlvbiBvUGEoYSxlLHQpe2xldHtub2RlOnIsZnJvbU9mZnNldDppLHRvT2Zmc2V0Om8sZnJvbTpuLHRvOmx9PWEuZG9jVmlldy5wYXJzZVJhbmdlKGUsdCksZD1hLmRvbVNlbGVjdGlvblJhbmdlKCksYyxwPWQuYW5jaG9yTm9kZTtpZihwJiZhLmRvbS5jb250YWlucyhwLm5vZGVUeXBlPT0xP3A6cC5wYXJlbnROb2RlKSYmKGM9W3tub2RlOnAsb2Zmc2V0OmQuYW5jaG9yT2Zmc2V0fV0sSWFlKGQpfHxjLnB1c2goe25vZGU6ZC5mb2N1c05vZGUsb2Zmc2V0OmQuZm9jdXNPZmZzZXR9KSksb2kmJmEuaW5wdXQubGFzdEtleUNvZGU9PT04KWZvcihsZXQgZz1vO2c+aTtnLS0pe2xldCB5PXIuY2hpbGROb2Rlc1tnLTFdLGs9eS5wbVZpZXdEZXNjO2lmKHkubm9kZU5hbWU9PSJCUiImJiFrKXtvPWc7YnJlYWt9aWYoIWt8fGsuc2l6ZSlicmVha31sZXQgdT1hLnN0YXRlLmRvYyxtPWEuc29tZVByb3AoImRvbVBhcnNlciIpfHxOMS5mcm9tU2NoZW1hKGEuc3RhdGUuc2NoZW1hKSx2PXUucmVzb2x2ZShuKSx4PW51bGwsYj1tLnBhcnNlKHIse3RvcE5vZGU6di5wYXJlbnQsdG9wTWF0Y2g6di5wYXJlbnQuY29udGVudE1hdGNoQXQodi5pbmRleCgpKSx0b3BPcGVuOiEwLGZyb206aSx0bzpvLHByZXNlcnZlV2hpdGVzcGFjZTp2LnBhcmVudC50eXBlLndoaXRlc3BhY2U9PSJwcmUiPyJmdWxsIjohMCxmaW5kUG9zaXRpb25zOmMscnVsZUZyb21Ob2RlOm5QYSxjb250ZXh0OnZ9KTtpZihjJiZjWzBdLnBvcyE9bnVsbCl7bGV0IGc9Y1swXS5wb3MseT1jWzFdJiZjWzFdLnBvczt5PT1udWxsJiYoeT1nKSx4PXthbmNob3I6ZytuLGhlYWQ6eStufX1yZXR1cm57ZG9jOmIsc2VsOngsZnJvbTpuLHRvOmx9fWZ1bmN0aW9uIG5QYShhKXtsZXQgZT1hLnBtVmlld0Rlc2M7aWYoZSlyZXR1cm4gZS5wYXJzZVJ1bGUoKTtpZihhLm5vZGVOYW1lPT0iQlIiJiZhLnBhcmVudE5vZGUpe2lmKE5pJiYvXih1bHxvbCkkL2kudGVzdChhLnBhcmVudE5vZGUubm9kZU5hbWUpKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpKSx7c2tpcDp0fX1lbHNlIGlmKGEucGFyZW50Tm9kZS5sYXN0Q2hpbGQ9PWF8fE5pJiYvXih0cnx0YWJsZSkkL2kudGVzdChhLnBhcmVudE5vZGUubm9kZU5hbWUpKXJldHVybntpZ25vcmU6ITB9fWVsc2UgaWYoYS5ub2RlTmFtZT09IklNRyImJmEuZ2V0QXR0cmlidXRlKCJtYXJrLXBsYWNlaG9sZGVyIikpcmV0dXJue2lnbm9yZTohMH07cmV0dXJuIG51bGx9ZnVuY3Rpb24gY1BhKGEsZSx0LHIsaSl7bGV0IG89YS5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzfHwoYS5jb21wb3Npbmc/YS5pbnB1dC5jb21wb3NpdGlvbklEOjApO2lmKGEuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlcz0wLGU8MCl7bGV0IE89YS5pbnB1dC5sYXN0U2VsZWN0aW9uVGltZT5EYXRlLm5vdygpLTUwP2EuaW5wdXQubGFzdFNlbGVjdGlvbk9yaWdpbjpudWxsLFQ9QUtlKGEsTyk7aWYoVCYmIWEuc3RhdGUuc2VsZWN0aW9uLmVxKFQpKXtpZihvaSYmYmMmJmEuaW5wdXQubGFzdEtleUNvZGU9PT0xMyYmRGF0ZS5ub3coKS0xMDA8YS5pbnB1dC5sYXN0S2V5Q29kZVRpbWUmJmEuc29tZVByb3AoImhhbmRsZUtleURvd24iLEI9PkIoYSxVZigxMywiRW50ZXIiKSkpKXJldHVybjtsZXQgUD1hLnN0YXRlLnRyLnNldFNlbGVjdGlvbihUKTtPPT0icG9pbnRlciI/UC5zZXRNZXRhKCJwb2ludGVyIiwhMCk6Tz09ImtleSImJlAuc2Nyb2xsSW50b1ZpZXcoKSxvJiZQLnNldE1ldGEoImNvbXBvc2l0aW9uIixvKSxhLmRpc3BhdGNoKFApfXJldHVybn1sZXQgbj1hLnN0YXRlLmRvYy5yZXNvbHZlKGUpLGw9bi5zaGFyZWREZXB0aCh0KTtlPW4uYmVmb3JlKGwrMSksdD1hLnN0YXRlLmRvYy5yZXNvbHZlKHQpLmFmdGVyKGwrMSk7bGV0IGQ9YS5zdGF0ZS5zZWxlY3Rpb24sYz1vUGEoYSxlLHQpLHA9YS5zdGF0ZS5kb2MsdT1wLnNsaWNlKGMuZnJvbSxjLnRvKSxtLHY7YS5pbnB1dC5sYXN0S2V5Q29kZT09PTgmJkRhdGUubm93KCktMTAwPGEuaW5wdXQubGFzdEtleUNvZGVUaW1lPyhtPWEuc3RhdGUuc2VsZWN0aW9uLnRvLHY9ImVuZCIpOihtPWEuc3RhdGUuc2VsZWN0aW9uLmZyb20sdj0ic3RhcnQiKSxhLmlucHV0Lmxhc3RLZXlDb2RlPW51bGw7bGV0IHg9cFBhKHUuY29udGVudCxjLmRvYy5jb250ZW50LGMuZnJvbSxtLHYpO2lmKHgmJmEuaW5wdXQuZG9tQ2hhbmdlQ291bnQrKywoeW0mJmEuaW5wdXQubGFzdElPU0VudGVyPkRhdGUubm93KCktMjI1fHxiYykmJmkuc29tZShPPT5PLm5vZGVUeXBlPT0xJiYhbFBhLnRlc3QoTy5ub2RlTmFtZSkpJiYoIXh8fHguZW5kQT49eC5lbmRCKSYmYS5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsTz0+TyhhLFVmKDEzLCJFbnRlciIpKSkpe2EuaW5wdXQubGFzdElPU0VudGVyPTA7cmV0dXJufWlmKCF4KWlmKHImJmQgaW5zdGFuY2VvZiBOdCYmIWQuZW1wdHkmJmQuJGhlYWQuc2FtZVBhcmVudChkLiRhbmNob3IpJiYhYS5jb21wb3NpbmcmJiEoYy5zZWwmJmMuc2VsLmFuY2hvciE9Yy5zZWwuaGVhZCkpeD17c3RhcnQ6ZC5mcm9tLGVuZEE6ZC50byxlbmRCOmQudG99O2Vsc2V7aWYoYy5zZWwpe2xldCBPPWZuYShhLGEuc3RhdGUuZG9jLGMuc2VsKTtpZihPJiYhTy5lcShhLnN0YXRlLnNlbGVjdGlvbikpe2xldCBUPWEuc3RhdGUudHIuc2V0U2VsZWN0aW9uKE8pO28mJlQuc2V0TWV0YSgiY29tcG9zaXRpb24iLG8pLGEuZGlzcGF0Y2goVCl9fXJldHVybn1hLnN0YXRlLnNlbGVjdGlvbi5mcm9tPGEuc3RhdGUuc2VsZWN0aW9uLnRvJiZ4LnN0YXJ0PT14LmVuZEImJmEuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgTnQmJih4LnN0YXJ0PmEuc3RhdGUuc2VsZWN0aW9uLmZyb20mJnguc3RhcnQ8PWEuc3RhdGUuc2VsZWN0aW9uLmZyb20rMiYmYS5zdGF0ZS5zZWxlY3Rpb24uZnJvbT49Yy5mcm9tP3guc3RhcnQ9YS5zdGF0ZS5zZWxlY3Rpb24uZnJvbTp4LmVuZEE8YS5zdGF0ZS5zZWxlY3Rpb24udG8mJnguZW5kQT49YS5zdGF0ZS5zZWxlY3Rpb24udG8tMiYmYS5zdGF0ZS5zZWxlY3Rpb24udG88PWMudG8mJih4LmVuZEIrPWEuc3RhdGUuc2VsZWN0aW9uLnRvLXguZW5kQSx4LmVuZEE9YS5zdGF0ZS5zZWxlY3Rpb24udG8pKSxSbyYmZzQ8PTExJiZ4LmVuZEI9PXguc3RhcnQrMSYmeC5lbmRBPT14LnN0YXJ0JiZ4LnN0YXJ0PmMuZnJvbSYmYy5kb2MudGV4dEJldHdlZW4oeC5zdGFydC1jLmZyb20tMSx4LnN0YXJ0LWMuZnJvbSsxKT09IiBceEEwIiYmKHguc3RhcnQtLSx4LmVuZEEtLSx4LmVuZEItLSk7bGV0IGI9Yy5kb2MucmVzb2x2ZU5vQ2FjaGUoeC5zdGFydC1jLmZyb20pLGc9Yy5kb2MucmVzb2x2ZU5vQ2FjaGUoeC5lbmRCLWMuZnJvbSkseT1wLnJlc29sdmUoeC5zdGFydCksaz1iLnNhbWVQYXJlbnQoZykmJmIucGFyZW50LmlubGluZUNvbnRlbnQmJnkuZW5kKCk+PXguZW5kQTtpZigoeW0mJmEuaW5wdXQubGFzdElPU0VudGVyPkRhdGUubm93KCktMjI1JiYoIWt8fGkuc29tZShPPT5PLm5vZGVOYW1lPT0iRElWInx8Ty5ub2RlTmFtZT09IlAiKSl8fCFrJiZiLnBvczxjLmRvYy5jb250ZW50LnNpemUmJighYi5zYW1lUGFyZW50KGcpfHwhYi5wYXJlbnQuaW5saW5lQ29udGVudCkmJmIucG9zPGcucG9zJiYhL1xTLy50ZXN0KGMuZG9jLnRleHRCZXR3ZWVuKGIucG9zLGcucG9zLCIiLCIiKSkpJiZhLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixPPT5PKGEsVWYoMTMsIkVudGVyIikpKSl7YS5pbnB1dC5sYXN0SU9TRW50ZXI9MDtyZXR1cm59aWYoYS5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yPnguc3RhcnQmJnVQYShwLHguc3RhcnQseC5lbmRBLGIsZykmJmEuc29tZVByb3AoImhhbmRsZUtleURvd24iLE89Pk8oYSxVZig4LCJCYWNrc3BhY2UiKSkpKXtiYyYmb2kmJmEuZG9tT2JzZXJ2ZXIuc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCk7cmV0dXJufW9pJiZ4LmVuZEI9PXguc3RhcnQmJihhLmlucHV0Lmxhc3RDaHJvbWVEZWxldGU9RGF0ZS5ub3coKSksYmMmJiFrJiZiLnN0YXJ0KCkhPWcuc3RhcnQoKSYmZy5wYXJlbnRPZmZzZXQ9PTAmJmIuZGVwdGg9PWcuZGVwdGgmJmMuc2VsJiZjLnNlbC5hbmNob3I9PWMuc2VsLmhlYWQmJmMuc2VsLmhlYWQ9PXguZW5kQSYmKHguZW5kQi09MixnPWMuZG9jLnJlc29sdmVOb0NhY2hlKHguZW5kQi1jLmZyb20pLHNldFRpbWVvdXQoKCk9PnthLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixmdW5jdGlvbihPKXtyZXR1cm4gTyhhLFVmKDEzLCJFbnRlciIpKX0pfSwyMCkpO2xldCBDPXguc3RhcnQsTj14LmVuZEEsXz1zKE89PntsZXQgVD1PfHxhLnN0YXRlLnRyLnJlcGxhY2UoQyxOLGMuZG9jLnNsaWNlKHguc3RhcnQtYy5mcm9tLHguZW5kQi1jLmZyb20pKTtpZihjLnNlbCl7bGV0IFA9Zm5hKGEsVC5kb2MsYy5zZWwpO1AmJiEob2kmJmEuY29tcG9zaW5nJiZQLmVtcHR5JiYoeC5zdGFydCE9eC5lbmRCfHxhLmlucHV0Lmxhc3RDaHJvbWVEZWxldGU8RGF0ZS5ub3coKS0xMDApJiYoUC5oZWFkPT1DfHxQLmhlYWQ9PVQubWFwcGluZy5tYXAoTiktMSl8fFJvJiZQLmVtcHR5JiZQLmhlYWQ9PUMpJiZULnNldFNlbGVjdGlvbihQKX1yZXR1cm4gbyYmVC5zZXRNZXRhKCJjb21wb3NpdGlvbiIsbyksVC5zY3JvbGxJbnRvVmlldygpfSwibWtUciIpLHo7aWYoaylpZihiLnBvcz09Zy5wb3Mpe1JvJiZnNDw9MTEmJmIucGFyZW50T2Zmc2V0PT0wJiYoYS5kb21PYnNlcnZlci5zdXBwcmVzc1NlbGVjdGlvblVwZGF0ZXMoKSxzZXRUaW1lb3V0KCgpPT54YyhhKSwyMCkpO2xldCBPPV8oYS5zdGF0ZS50ci5kZWxldGUoQyxOKSksVD1wLnJlc29sdmUoeC5zdGFydCkubWFya3NBY3Jvc3MocC5yZXNvbHZlKHguZW5kQSkpO1QmJk8uZW5zdXJlTWFya3MoVCksYS5kaXNwYXRjaChPKX1lbHNlIGlmKHguZW5kQT09eC5lbmRCJiYoej1kUGEoYi5wYXJlbnQuY29udGVudC5jdXQoYi5wYXJlbnRPZmZzZXQsZy5wYXJlbnRPZmZzZXQpLHkucGFyZW50LmNvbnRlbnQuY3V0KHkucGFyZW50T2Zmc2V0LHguZW5kQS15LnN0YXJ0KCkpKSkpe2xldCBPPV8oYS5zdGF0ZS50cik7ei50eXBlPT0iYWRkIj9PLmFkZE1hcmsoQyxOLHoubWFyayk6Ty5yZW1vdmVNYXJrKEMsTix6Lm1hcmspLGEuZGlzcGF0Y2goTyl9ZWxzZSBpZihiLnBhcmVudC5jaGlsZChiLmluZGV4KCkpLmlzVGV4dCYmYi5pbmRleCgpPT1nLmluZGV4KCktKGcudGV4dE9mZnNldD8wOjEpKXtsZXQgTz1iLnBhcmVudC50ZXh0QmV0d2VlbihiLnBhcmVudE9mZnNldCxnLnBhcmVudE9mZnNldCksVD1zKCgpPT5fKGEuc3RhdGUudHIuaW5zZXJ0VGV4dChPLEMsTikpLCJkZWZsdCIpO2Euc29tZVByb3AoImhhbmRsZVRleHRJbnB1dCIsUD0+UChhLEMsTixPLFQpKXx8YS5kaXNwYXRjaChUKCkpfWVsc2UgYS5kaXNwYXRjaChfKCkpO2Vsc2UgYS5kaXNwYXRjaChfKCkpfWZ1bmN0aW9uIGZuYShhLGUsdCl7cmV0dXJuIE1hdGgubWF4KHQuYW5jaG9yLHQuaGVhZCk+ZS5jb250ZW50LnNpemU/bnVsbDpFS2UoYSxlLnJlc29sdmUodC5hbmNob3IpLGUucmVzb2x2ZSh0LmhlYWQpKX1mdW5jdGlvbiBkUGEoYSxlKXtsZXQgdD1hLmZpcnN0Q2hpbGQubWFya3Mscj1lLmZpcnN0Q2hpbGQubWFya3MsaT10LG89cixuLGwsZDtmb3IobGV0IHA9MDtwPHIubGVuZ3RoO3ArKylpPXJbcF0ucmVtb3ZlRnJvbVNldChpKTtmb3IobGV0IHA9MDtwPHQubGVuZ3RoO3ArKylvPXRbcF0ucmVtb3ZlRnJvbVNldChvKTtpZihpLmxlbmd0aD09MSYmby5sZW5ndGg9PTApbD1pWzBdLG49ImFkZCIsZD1zKHA9PnAubWFyayhsLmFkZFRvU2V0KHAubWFya3MpKSwidXBkYXRlIik7ZWxzZSBpZihpLmxlbmd0aD09MCYmby5sZW5ndGg9PTEpbD1vWzBdLG49InJlbW92ZSIsZD1zKHA9PnAubWFyayhsLnJlbW92ZUZyb21TZXQocC5tYXJrcykpLCJ1cGRhdGUiKTtlbHNlIHJldHVybiBudWxsO2xldCBjPVtdO2ZvcihsZXQgcD0wO3A8ZS5jaGlsZENvdW50O3ArKyljLnB1c2goZChlLmNoaWxkKHApKSk7aWYoamUuZnJvbShjKS5lcShhKSlyZXR1cm57bWFyazpsLHR5cGU6bn19ZnVuY3Rpb24gdVBhKGEsZSx0LHIsaSl7aWYodC1lPD1pLnBvcy1yLnBvc3x8UUtlKHIsITAsITEpPGkucG9zKXJldHVybiExO2xldCBvPWEucmVzb2x2ZShlKTtpZighci5wYXJlbnQuaXNUZXh0YmxvY2spe2xldCBsPW8ubm9kZUFmdGVyO3JldHVybiBsIT1udWxsJiZ0PT1lK2wubm9kZVNpemV9aWYoby5wYXJlbnRPZmZzZXQ8by5wYXJlbnQuY29udGVudC5zaXplfHwhby5wYXJlbnQuaXNUZXh0YmxvY2spcmV0dXJuITE7bGV0IG49YS5yZXNvbHZlKFFLZShvLCEwLCEwKSk7cmV0dXJuIW4ucGFyZW50LmlzVGV4dGJsb2NrfHxuLnBvcz50fHxRS2UobiwhMCwhMSk8dD8hMTpyLnBhcmVudC5jb250ZW50LmN1dChyLnBhcmVudE9mZnNldCkuZXEobi5wYXJlbnQuY29udGVudCl9ZnVuY3Rpb24gUUtlKGEsZSx0KXtsZXQgcj1hLmRlcHRoLGk9ZT9hLmVuZCgpOmEucG9zO2Zvcig7cj4wJiYoZXx8YS5pbmRleEFmdGVyKHIpPT1hLm5vZGUocikuY2hpbGRDb3VudCk7KXItLSxpKyssZT0hMTtpZih0KXtsZXQgbz1hLm5vZGUocikubWF5YmVDaGlsZChhLmluZGV4QWZ0ZXIocikpO2Zvcig7byYmIW8uaXNMZWFmOylvPW8uZmlyc3RDaGlsZCxpKyt9cmV0dXJuIGl9ZnVuY3Rpb24gcFBhKGEsZSx0LHIsaSl7bGV0IG89YS5maW5kRGlmZlN0YXJ0KGUsdCk7aWYobz09bnVsbClyZXR1cm4gbnVsbDtsZXR7YTpuLGI6bH09YS5maW5kRGlmZkVuZChlLHQrYS5zaXplLHQrZS5zaXplKTtpZihpPT0iZW5kIil7bGV0IGQ9TWF0aC5tYXgoMCxvLU1hdGgubWluKG4sbCkpO3ItPW4rZC1vfWlmKG48byYmYS5zaXplPGUuc2l6ZSl7bGV0IGQ9cjw9byYmcj49bj9vLXI6MDtvLT1kLG8mJm88ZS5zaXplJiZobmEoZS50ZXh0QmV0d2VlbihvLTEsbysxKSkmJihvKz1kPzE6LTEpLGw9bysobC1uKSxuPW99ZWxzZSBpZihsPG8pe2xldCBkPXI8PW8mJnI+PWw/by1yOjA7by09ZCxvJiZvPGEuc2l6ZSYmaG5hKGEudGV4dEJldHdlZW4oby0xLG8rMSkpJiYobys9ZD8xOi0xKSxuPW8rKG4tbCksbD1vfXJldHVybntzdGFydDpvLGVuZEE6bixlbmRCOmx9fWZ1bmN0aW9uIGhuYShhKXtpZihhLmxlbmd0aCE9MilyZXR1cm4hMTtsZXQgZT1hLmNoYXJDb2RlQXQoMCksdD1hLmNoYXJDb2RlQXQoMSk7cmV0dXJuIGU+PTU2MzIwJiZlPD01NzM0MyYmdD49NTUyOTYmJnQ8PTU2MzE5fWZ1bmN0aW9uIG1uYShhKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBlLmNsYXNzPSJQcm9zZU1pcnJvciIsZS5jb250ZW50ZWRpdGFibGU9U3RyaW5nKGEuZWRpdGFibGUpLGEuc29tZVByb3AoImF0dHJpYnV0ZXMiLHQ9PntpZih0eXBlb2YgdD09ImZ1bmN0aW9uIiYmKHQ9dChhLnN0YXRlKSksdClmb3IobGV0IHIgaW4gdClyPT0iY2xhc3MiP2UuY2xhc3MrPSIgIit0W3JdOnI9PSJzdHlsZSI/ZS5zdHlsZT0oZS5zdHlsZT9lLnN0eWxlKyI7IjoiIikrdFtyXTohZVtyXSYmciE9ImNvbnRlbnRlZGl0YWJsZSImJnIhPSJub2RlTmFtZSImJihlW3JdPVN0cmluZyh0W3JdKSl9KSxlLnRyYW5zbGF0ZXx8KGUudHJhbnNsYXRlPSJubyIpLFtSMS5ub2RlKDAsYS5zdGF0ZS5kb2MuY29udGVudC5zaXplLGUpXX1mdW5jdGlvbiBnbmEoYSl7aWYoYS5tYXJrQ3Vyc29yKXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtlLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3Itc2VwYXJhdG9yIixlLnNldEF0dHJpYnV0ZSgibWFyay1wbGFjZWhvbGRlciIsInRydWUiKSxlLnNldEF0dHJpYnV0ZSgiYWx0IiwiIiksYS5jdXJzb3JXcmFwcGVyPXtkb206ZSxkZWNvOlIxLndpZGdldChhLnN0YXRlLnNlbGVjdGlvbi5mcm9tLGUse3JhdzohMCxtYXJrczphLm1hcmtDdXJzb3J9KX19ZWxzZSBhLmN1cnNvcldyYXBwZXI9bnVsbH1mdW5jdGlvbiBibmEoYSl7cmV0dXJuIWEuc29tZVByb3AoImVkaXRhYmxlIixlPT5lKGEuc3RhdGUpPT09ITEpfWZ1bmN0aW9uIG1QYShhLGUpe2xldCB0PU1hdGgubWluKGEuJGFuY2hvci5zaGFyZWREZXB0aChhLmhlYWQpLGUuJGFuY2hvci5zaGFyZWREZXB0aChlLmhlYWQpKTtyZXR1cm4gYS4kYW5jaG9yLnN0YXJ0KHQpIT1lLiRhbmNob3Iuc3RhcnQodCl9ZnVuY3Rpb24gdm5hKGEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gdChyKXtmb3IobGV0IGkgaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKXx8KGVbaV09cltpXSl9cmV0dXJuIHModCwiYWRkIiksYS5zb21lUHJvcCgibm9kZVZpZXdzIix0KSxhLnNvbWVQcm9wKCJtYXJrVmlld3MiLHQpLGV9ZnVuY3Rpb24gZ1BhKGEsZSl7bGV0IHQ9MCxyPTA7Zm9yKGxldCBpIGluIGEpe2lmKGFbaV0hPWVbaV0pcmV0dXJuITA7dCsrfWZvcihsZXQgaSBpbiBlKXIrKztyZXR1cm4gdCE9cn1mdW5jdGlvbiB4bmEoYSl7aWYoYS5zcGVjLnN0YXRlfHxhLnNwZWMuZmlsdGVyVHJhbnNhY3Rpb258fGEuc3BlYy5hcHBlbmRUcmFuc2FjdGlvbil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUGx1Z2lucyBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIHZpZXcgbXVzdCBub3QgaGF2ZSBhIHN0YXRlIGNvbXBvbmVudCIpfXZhciBpaSx4bSx3S2UsZ2MsQkRhLGpmLEhEYSxJYWUsSzIscG9hLG00LE1LZSxmb2Esa0tlLFJvLGc0LFJuLFNLZSxvaSxob2EsTmkseW0sT24sbW9hLGJjLFFVLEdEYSx3bSxzQWEsb0FhLFNvYSx6b2EsQ29hLEZuLF9vYSxXZixaMixHZixOYWUsX0tlLE1tLHY0LFJhZSxPYWUsVEtlLGVXLFlmLCRLZSxFb2EsekFhLFhvYSxRb2EsQktlLFppLFhpLERBYSxIS2UsZW5hLFdLZSxWQWEsclcscWFlLFpBYSxWYWUsS2YsR0tlLFIxLHptLFpmLFFpLFJpLGphZSxlUGEsdFBhLFpLZSxYS2UsZG5hLHVuYSxsUGEsZlBhLGhQYSxDbSxKS2U9ZigoKT0+e21jKCk7cDQoKTtoNCgpO2lpPXMoZnVuY3Rpb24oYSl7Zm9yKHZhciBlPTA7O2UrKylpZihhPWEucHJldmlvdXNTaWJsaW5nLCFhKXJldHVybiBlfSwiZG9tSW5kZXgiKSx4bT1zKGZ1bmN0aW9uKGEpe2xldCBlPWEuYXNzaWduZWRTbG90fHxhLnBhcmVudE5vZGU7cmV0dXJuIGUmJmUubm9kZVR5cGU9PTExP2UuaG9zdDplfSwicGFyZW50Tm9kZSIpLHdLZT1udWxsLGdjPXMoZnVuY3Rpb24oYSxlLHQpe2xldCByPXdLZXx8KHdLZT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpKTtyZXR1cm4gci5zZXRFbmQoYSx0Pz9hLm5vZGVWYWx1ZS5sZW5ndGgpLHIuc2V0U3RhcnQoYSxlfHwwKSxyfSwidGV4dFJhbmdlIiksQkRhPXMoZnVuY3Rpb24oKXt3S2U9bnVsbH0sImNsZWFyUmV1c2VkUmFuZ2UiKSxqZj1zKGZ1bmN0aW9uKGEsZSx0LHIpe3JldHVybiB0JiYodW9hKGEsZSx0LHIsLTEpfHx1b2EoYSxlLHQsciwxKSl9LCJpc0VxdWl2YWxlbnRQb3NpdGlvbiIpLEhEYT0vXihpbWd8YnJ8aW5wdXR8dGV4dGFyZWF8aHIpJC9pO3ModW9hLCJzY2FuRm9yIik7cyhObiwibm9kZVNpemUiKTtzKHFEYSwidGV4dE5vZGVCZWZvcmUkMSIpO3MoVkRhLCJ0ZXh0Tm9kZUFmdGVyJDEiKTtzKGpEYSwiaXNPbkVkZ2UiKTtzKFhVLCJoYXNCbG9ja0Rlc2MiKTtJYWU9cyhmdW5jdGlvbihhKXtyZXR1cm4gYS5mb2N1c05vZGUmJmpmKGEuZm9jdXNOb2RlLGEuZm9jdXNPZmZzZXQsYS5hbmNob3JOb2RlLGEuYW5jaG9yT2Zmc2V0KX0sInNlbGVjdGlvbkNvbGxhcHNlZCIpO3MoVWYsImtleUV2ZW50Iik7cyhVRGEsImRlZXBBY3RpdmVFbGVtZW50Iik7cyhXRGEsImNhcmV0RnJvbVBvaW50Iik7SzI9dHlwZW9mIG5hdmlnYXRvcjwidSI/bmF2aWdhdG9yOm51bGwscG9hPXR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6bnVsbCxtND1LMiYmSzIudXNlckFnZW50fHwiIixNS2U9L0VkZ2VcLyhcZCspLy5leGVjKG00KSxmb2E9L01TSUUgXGQvLmV4ZWMobTQpLGtLZT0vVHJpZGVudFwvKD86WzctOV18XGR7Mix9KVwuLipydjooXGQrKS8uZXhlYyhtNCksUm89ISEoZm9hfHxrS2V8fE1LZSksZzQ9Zm9hP2RvY3VtZW50LmRvY3VtZW50TW9kZTprS2U/K2tLZVsxXTpNS2U/K01LZVsxXTowLFJuPSFSbyYmL2dlY2tvXC8oXGQrKS9pLnRlc3QobTQpO1JuJiYrKC9GaXJlZm94XC8oXGQrKS8uZXhlYyhtNCl8fFswLDBdKVsxXTtTS2U9IVJvJiYvQ2hyb21lXC8oXGQrKS8uZXhlYyhtNCksb2k9ISFTS2UsaG9hPVNLZT8rU0tlWzFdOjAsTmk9IVJvJiYhIUsyJiYvQXBwbGUgQ29tcHV0ZXIvLnRlc3QoSzIudmVuZG9yKSx5bT1OaSYmKC9Nb2JpbGVcL1x3Ky8udGVzdChtNCl8fCEhSzImJksyLm1heFRvdWNoUG9pbnRzPjIpLE9uPXltfHwoSzI/L01hYy8udGVzdChLMi5wbGF0Zm9ybSk6ITEpLG1vYT1LMj8vV2luLy50ZXN0KEsyLnBsYXRmb3JtKTohMSxiYz0vQW5kcm9pZCBcZC8udGVzdChtNCksUVU9ISFwb2EmJiJ3ZWJraXRGb250U21vb3RoaW5nImluIHBvYS5kb2N1bWVudEVsZW1lbnQuc3R5bGUsR0RhPVFVPysoL1xiQXBwbGVXZWJLaXRcLyhcZCspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpfHxbMCwwXSlbMV06MDtzKFlEYSwid2luZG93UmVjdCIpO3ModmMsImdldFNpZGUiKTtzKEtEYSwiY2xpZW50UmVjdCIpO3MoZ29hLCJzY3JvbGxSZWN0SW50b1ZpZXciKTtzKFpEYSwic3RvcmVTY3JvbGxQb3MiKTtzKGJvYSwic2Nyb2xsU3RhY2siKTtzKFhEYSwicmVzZXRTY3JvbGxQb3MiKTtzKHZvYSwicmVzdG9yZVNjcm9sbFN0YWNrIik7d209bnVsbDtzKFFEYSwiZm9jdXNQcmV2ZW50U2Nyb2xsIik7cyh4b2EsImZpbmRPZmZzZXRJbk5vZGUiKTtzKEpEYSwiZmluZE9mZnNldEluVGV4dCIpO3MoektlLCJpblJlY3QiKTtzKGVBYSwidGFyZ2V0S2x1ZGdlIik7cyh0QWEsInBvc0Zyb21FbGVtZW50Iik7cyhhQWEsInBvc0Zyb21DYXJldCIpO3MoeW9hLCJlbGVtZW50RnJvbVBvaW50Iik7cyhyQWEsInBvc0F0Q29vcmRzIik7cyh3b2EsIm5vblplcm8iKTtzKGI0LCJzaW5nbGVSZWN0Iik7c0FhPS9bXHUwNTkwLVx1MDVmNFx1MDYwMC1cdTA2ZmZcdTA3MDAtXHUwOGFjXS87cyhNb2EsImNvb3Jkc0F0UG9zIik7cyhKVSwiZmxhdHRlblYiKTtzKENLZSwiZmxhdHRlbkgiKTtzKGtvYSwid2l0aEZsdXNoZWRTdGF0ZSIpO3MoaUFhLCJlbmRPZlRleHRibG9ja1ZlcnRpY2FsIik7b0FhPS9bXHUwNTkwLVx1MDhhY10vO3MobkFhLCJlbmRPZlRleHRibG9ja0hvcml6b250YWwiKTtTb2E9bnVsbCx6b2E9bnVsbCxDb2E9ITE7cyhsQWEsImVuZE9mVGV4dGJsb2NrIik7Rm49MCxfb2E9MSxXZj0yLFoyPTMsR2Y9Y2xhc3N7c3RhdGlje3ModGhpcywiVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQscixpKXt0aGlzLnBhcmVudD1lLHRoaXMuY2hpbGRyZW49dCx0aGlzLmRvbT1yLHRoaXMuY29udGVudERPTT1pLHRoaXMuZGlydHk9Rm4sci5wbVZpZXdEZXNjPXRoaXN9bWF0Y2hlc1dpZGdldChlKXtyZXR1cm4hMX1tYXRjaGVzTWFyayhlKXtyZXR1cm4hMX1tYXRjaGVzTm9kZShlLHQscil7cmV0dXJuITF9bWF0Y2hlc0hhY2soZSl7cmV0dXJuITF9cGFyc2VSdWxlKCl7cmV0dXJuIG51bGx9c3RvcEV2ZW50KGUpe3JldHVybiExfWdldCBzaXplKCl7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrKyllKz10aGlzLmNoaWxkcmVuW3RdLnNpemU7cmV0dXJuIGV9Z2V0IGJvcmRlcigpe3JldHVybiAwfWRlc3Ryb3koKXt0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5kb20ucG1WaWV3RGVzYz09dGhpcyYmKHRoaXMuZG9tLnBtVmlld0Rlc2M9dm9pZCAwKTtmb3IobGV0IGU9MDtlPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2UrKyl0aGlzLmNoaWxkcmVuW2VdLmRlc3Ryb3koKX1wb3NCZWZvcmVDaGlsZChlKXtmb3IobGV0IHQ9MCxyPXRoaXMucG9zQXRTdGFydDs7dCsrKXtsZXQgaT10aGlzLmNoaWxkcmVuW3RdO2lmKGk9PWUpcmV0dXJuIHI7cis9aS5zaXplfX1nZXQgcG9zQmVmb3JlKCl7cmV0dXJuIHRoaXMucGFyZW50LnBvc0JlZm9yZUNoaWxkKHRoaXMpfWdldCBwb3NBdFN0YXJ0KCl7cmV0dXJuIHRoaXMucGFyZW50P3RoaXMucGFyZW50LnBvc0JlZm9yZUNoaWxkKHRoaXMpK3RoaXMuYm9yZGVyOjB9Z2V0IHBvc0FmdGVyKCl7cmV0dXJuIHRoaXMucG9zQmVmb3JlK3RoaXMuc2l6ZX1nZXQgcG9zQXRFbmQoKXtyZXR1cm4gdGhpcy5wb3NBdFN0YXJ0K3RoaXMuc2l6ZS0yKnRoaXMuYm9yZGVyfWxvY2FsUG9zRnJvbURPTShlLHQscil7aWYodGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSkpaWYocjwwKXtsZXQgbyxuO2lmKGU9PXRoaXMuY29udGVudERPTSlvPWUuY2hpbGROb2Rlc1t0LTFdO2Vsc2V7Zm9yKDtlLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTspZT1lLnBhcmVudE5vZGU7bz1lLnByZXZpb3VzU2libGluZ31mb3IoO28mJiEoKG49by5wbVZpZXdEZXNjKSYmbi5wYXJlbnQ9PXRoaXMpOylvPW8ucHJldmlvdXNTaWJsaW5nO3JldHVybiBvP3RoaXMucG9zQmVmb3JlQ2hpbGQobikrbi5zaXplOnRoaXMucG9zQXRTdGFydH1lbHNle2xldCBvLG47aWYoZT09dGhpcy5jb250ZW50RE9NKW89ZS5jaGlsZE5vZGVzW3RdO2Vsc2V7Zm9yKDtlLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTspZT1lLnBhcmVudE5vZGU7bz1lLm5leHRTaWJsaW5nfWZvcig7byYmISgobj1vLnBtVmlld0Rlc2MpJiZuLnBhcmVudD09dGhpcyk7KW89by5uZXh0U2libGluZztyZXR1cm4gbz90aGlzLnBvc0JlZm9yZUNoaWxkKG4pOnRoaXMucG9zQXRFbmR9bGV0IGk7aWYoZT09dGhpcy5kb20mJnRoaXMuY29udGVudERPTSlpPXQ+aWkodGhpcy5jb250ZW50RE9NKTtlbHNlIGlmKHRoaXMuY29udGVudERPTSYmdGhpcy5jb250ZW50RE9NIT10aGlzLmRvbSYmdGhpcy5kb20uY29udGFpbnModGhpcy5jb250ZW50RE9NKSlpPWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcy5jb250ZW50RE9NKSYyO2Vsc2UgaWYodGhpcy5kb20uZmlyc3RDaGlsZCl7aWYodD09MClmb3IobGV0IG89ZTs7bz1vLnBhcmVudE5vZGUpe2lmKG89PXRoaXMuZG9tKXtpPSExO2JyZWFrfWlmKG8ucHJldmlvdXNTaWJsaW5nKWJyZWFrfWlmKGk9PW51bGwmJnQ9PWUuY2hpbGROb2Rlcy5sZW5ndGgpZm9yKGxldCBvPWU7O289by5wYXJlbnROb2RlKXtpZihvPT10aGlzLmRvbSl7aT0hMDticmVha31pZihvLm5leHRTaWJsaW5nKWJyZWFrfX1yZXR1cm4gaT8/cj4wP3RoaXMucG9zQXRFbmQ6dGhpcy5wb3NBdFN0YXJ0fW5lYXJlc3REZXNjKGUsdD0hMSl7Zm9yKGxldCByPSEwLGk9ZTtpO2k9aS5wYXJlbnROb2RlKXtsZXQgbz10aGlzLmdldERlc2MoaSksbjtpZihvJiYoIXR8fG8ubm9kZSkpaWYociYmKG49by5ub2RlRE9NKSYmIShuLm5vZGVUeXBlPT0xP24uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSk6bj09ZSkpcj0hMTtlbHNlIHJldHVybiBvfX1nZXREZXNjKGUpe2xldCB0PWUucG1WaWV3RGVzYztmb3IobGV0IHI9dDtyO3I9ci5wYXJlbnQpaWYocj09dGhpcylyZXR1cm4gdH1wb3NGcm9tRE9NKGUsdCxyKXtmb3IobGV0IGk9ZTtpO2k9aS5wYXJlbnROb2RlKXtsZXQgbz10aGlzLmdldERlc2MoaSk7aWYobylyZXR1cm4gby5sb2NhbFBvc0Zyb21ET00oZSx0LHIpfXJldHVybi0xfWRlc2NBdChlKXtmb3IobGV0IHQ9MCxyPTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2xldCBpPXRoaXMuY2hpbGRyZW5bdF0sbz1yK2kuc2l6ZTtpZihyPT1lJiZvIT1yKXtmb3IoOyFpLmJvcmRlciYmaS5jaGlsZHJlbi5sZW5ndGg7KWZvcihsZXQgbj0wO248aS5jaGlsZHJlbi5sZW5ndGg7bisrKXtsZXQgbD1pLmNoaWxkcmVuW25dO2lmKGwuc2l6ZSl7aT1sO2JyZWFrfX1yZXR1cm4gaX1pZihlPG8pcmV0dXJuIGkuZGVzY0F0KGUtci1pLmJvcmRlcik7cj1vfX1kb21Gcm9tUG9zKGUsdCl7aWYoIXRoaXMuY29udGVudERPTSlyZXR1cm57bm9kZTp0aGlzLmRvbSxvZmZzZXQ6MCxhdG9tOmUrMX07bGV0IHI9MCxpPTA7Zm9yKGxldCBvPTA7cjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtyKyspe2xldCBuPXRoaXMuY2hpbGRyZW5bcl0sbD1vK24uc2l6ZTtpZihsPmV8fG4gaW5zdGFuY2VvZiBPYWUpe2k9ZS1vO2JyZWFrfW89bH1pZihpKXJldHVybiB0aGlzLmNoaWxkcmVuW3JdLmRvbUZyb21Qb3MoaS10aGlzLmNoaWxkcmVuW3JdLmJvcmRlcix0KTtmb3IobGV0IG87ciYmIShvPXRoaXMuY2hpbGRyZW5bci0xXSkuc2l6ZSYmbyBpbnN0YW5jZW9mIE5hZSYmby5zaWRlPj0wO3ItLSk7aWYodDw9MCl7bGV0IG8sbj0hMDtmb3IoO289cj90aGlzLmNoaWxkcmVuW3ItMV06bnVsbCwhKCFvfHxvLmRvbS5wYXJlbnROb2RlPT10aGlzLmNvbnRlbnRET00pO3ItLSxuPSExKTtyZXR1cm4gbyYmdCYmbiYmIW8uYm9yZGVyJiYhby5kb21BdG9tP28uZG9tRnJvbVBvcyhvLnNpemUsdCk6e25vZGU6dGhpcy5jb250ZW50RE9NLG9mZnNldDpvP2lpKG8uZG9tKSsxOjB9fWVsc2V7bGV0IG8sbj0hMDtmb3IoO289cjx0aGlzLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNoaWxkcmVuW3JdOm51bGwsISghb3x8by5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NKTtyKyssbj0hMSk7cmV0dXJuIG8mJm4mJiFvLmJvcmRlciYmIW8uZG9tQXRvbT9vLmRvbUZyb21Qb3MoMCx0KTp7bm9kZTp0aGlzLmNvbnRlbnRET00sb2Zmc2V0Om8/aWkoby5kb20pOnRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aH19fXBhcnNlUmFuZ2UoZSx0LHI9MCl7aWYodGhpcy5jaGlsZHJlbi5sZW5ndGg9PTApcmV0dXJue25vZGU6dGhpcy5jb250ZW50RE9NLGZyb206ZSx0bzp0LGZyb21PZmZzZXQ6MCx0b09mZnNldDp0aGlzLmNvbnRlbnRET00uY2hpbGROb2Rlcy5sZW5ndGh9O2xldCBpPS0xLG89LTE7Zm9yKGxldCBuPXIsbD0wOztsKyspe2xldCBkPXRoaXMuY2hpbGRyZW5bbF0sYz1uK2Quc2l6ZTtpZihpPT0tMSYmZTw9Yyl7bGV0IHA9bitkLmJvcmRlcjtpZihlPj1wJiZ0PD1jLWQuYm9yZGVyJiZkLm5vZGUmJmQuY29udGVudERPTSYmdGhpcy5jb250ZW50RE9NLmNvbnRhaW5zKGQuY29udGVudERPTSkpcmV0dXJuIGQucGFyc2VSYW5nZShlLHQscCk7ZT1uO2ZvcihsZXQgdT1sO3U+MDt1LS0pe2xldCBtPXRoaXMuY2hpbGRyZW5bdS0xXTtpZihtLnNpemUmJm0uZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSYmIW0uZW1wdHlDaGlsZEF0KDEpKXtpPWlpKG0uZG9tKSsxO2JyZWFrfWUtPW0uc2l6ZX1pPT0tMSYmKGk9MCl9aWYoaT4tMSYmKGM+dHx8bD09dGhpcy5jaGlsZHJlbi5sZW5ndGgtMSkpe3Q9Yztmb3IobGV0IHA9bCsxO3A8dGhpcy5jaGlsZHJlbi5sZW5ndGg7cCsrKXtsZXQgdT10aGlzLmNoaWxkcmVuW3BdO2lmKHUuc2l6ZSYmdS5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NJiYhdS5lbXB0eUNoaWxkQXQoLTEpKXtvPWlpKHUuZG9tKTticmVha310Kz11LnNpemV9bz09LTEmJihvPXRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aCk7YnJlYWt9bj1jfXJldHVybntub2RlOnRoaXMuY29udGVudERPTSxmcm9tOmUsdG86dCxmcm9tT2Zmc2V0OmksdG9PZmZzZXQ6b319ZW1wdHlDaGlsZEF0KGUpe2lmKHRoaXMuYm9yZGVyfHwhdGhpcy5jb250ZW50RE9NfHwhdGhpcy5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuITE7bGV0IHQ9dGhpcy5jaGlsZHJlbltlPDA/MDp0aGlzLmNoaWxkcmVuLmxlbmd0aC0xXTtyZXR1cm4gdC5zaXplPT0wfHx0LmVtcHR5Q2hpbGRBdChlKX1kb21BZnRlclBvcyhlKXtsZXR7bm9kZTp0LG9mZnNldDpyfT10aGlzLmRvbUZyb21Qb3MoZSwwKTtpZih0Lm5vZGVUeXBlIT0xfHxyPT10LmNoaWxkTm9kZXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBub2RlIGFmdGVyIHBvcyAiK2UpO3JldHVybiB0LmNoaWxkTm9kZXNbcl19c2V0U2VsZWN0aW9uKGUsdCxyLGk9ITEpe2xldCBvPU1hdGgubWluKGUsdCksbj1NYXRoLm1heChlLHQpO2ZvcihsZXQgdj0wLHg9MDt2PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3YrKyl7bGV0IGI9dGhpcy5jaGlsZHJlblt2XSxnPXgrYi5zaXplO2lmKG8+eCYmbjxnKXJldHVybiBiLnNldFNlbGVjdGlvbihlLXgtYi5ib3JkZXIsdC14LWIuYm9yZGVyLHIsaSk7eD1nfWxldCBsPXRoaXMuZG9tRnJvbVBvcyhlLGU/LTE6MSksZD10PT1lP2w6dGhpcy5kb21Gcm9tUG9zKHQsdD8tMToxKSxjPXIucm9vdC5nZXRTZWxlY3Rpb24oKSxwPXIuZG9tU2VsZWN0aW9uUmFuZ2UoKSx1PSExO2lmKChSbnx8TmkpJiZlPT10KXtsZXR7bm9kZTp2LG9mZnNldDp4fT1sO2lmKHYubm9kZVR5cGU9PTMpe2lmKHU9ISEoeCYmdi5ub2RlVmFsdWVbeC0xXT09YApgKSx1JiZ4PT12Lm5vZGVWYWx1ZS5sZW5ndGgpZm9yKGxldCBiPXYsZztiO2I9Yi5wYXJlbnROb2RlKXtpZihnPWIubmV4dFNpYmxpbmcpe2cubm9kZU5hbWU9PSJCUiImJihsPWQ9e25vZGU6Zy5wYXJlbnROb2RlLG9mZnNldDppaShnKSsxfSk7YnJlYWt9bGV0IHk9Yi5wbVZpZXdEZXNjO2lmKHkmJnkubm9kZSYmeS5ub2RlLmlzQmxvY2spYnJlYWt9fWVsc2V7bGV0IGI9di5jaGlsZE5vZGVzW3gtMV07dT1iJiYoYi5ub2RlTmFtZT09IkJSInx8Yi5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpfX1pZihSbiYmcC5mb2N1c05vZGUmJnAuZm9jdXNOb2RlIT1kLm5vZGUmJnAuZm9jdXNOb2RlLm5vZGVUeXBlPT0xKXtsZXQgdj1wLmZvY3VzTm9kZS5jaGlsZE5vZGVzW3AuZm9jdXNPZmZzZXRdO3YmJnYuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiJiYoaT0hMCl9aWYoIShpfHx1JiZOaSkmJmpmKGwubm9kZSxsLm9mZnNldCxwLmFuY2hvck5vZGUscC5hbmNob3JPZmZzZXQpJiZqZihkLm5vZGUsZC5vZmZzZXQscC5mb2N1c05vZGUscC5mb2N1c09mZnNldCkpcmV0dXJuO2xldCBtPSExO2lmKChjLmV4dGVuZHx8ZT09dCkmJiEodSYmUm4pKXtjLmNvbGxhcHNlKGwubm9kZSxsLm9mZnNldCk7dHJ5e2UhPXQmJmMuZXh0ZW5kKGQubm9kZSxkLm9mZnNldCksbT0hMH1jYXRjaHt9fWlmKCFtKXtpZihlPnQpe2xldCB4PWw7bD1kLGQ9eH1sZXQgdj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Yuc2V0RW5kKGQubm9kZSxkLm9mZnNldCksdi5zZXRTdGFydChsLm5vZGUsbC5vZmZzZXQpLGMucmVtb3ZlQWxsUmFuZ2VzKCksYy5hZGRSYW5nZSh2KX19aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIXRoaXMuY29udGVudERPTSYmZS50eXBlIT0ic2VsZWN0aW9uIn1nZXQgY29udGVudExvc3QoKXtyZXR1cm4gdGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00hPXRoaXMuZG9tJiYhdGhpcy5kb20uY29udGFpbnModGhpcy5jb250ZW50RE9NKX1tYXJrRGlydHkoZSx0KXtmb3IobGV0IHI9MCxpPTA7aTx0aGlzLmNoaWxkcmVuLmxlbmd0aDtpKyspe2xldCBvPXRoaXMuY2hpbGRyZW5baV0sbj1yK28uc2l6ZTtpZihyPT1uP2U8PW4mJnQ+PXI6ZTxuJiZ0PnIpe2xldCBsPXIrby5ib3JkZXIsZD1uLW8uYm9yZGVyO2lmKGU+PWwmJnQ8PWQpe3RoaXMuZGlydHk9ZT09cnx8dD09bj9XZjpfb2EsZT09bCYmdD09ZCYmKG8uY29udGVudExvc3R8fG8uZG9tLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTSk/by5kaXJ0eT1aMjpvLm1hcmtEaXJ0eShlLWwsdC1sKTtyZXR1cm59ZWxzZSBvLmRpcnR5PW8uZG9tPT1vLmNvbnRlbnRET00mJm8uZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSYmIW8uY2hpbGRyZW4ubGVuZ3RoP1dmOloyfXI9bn10aGlzLmRpcnR5PVdmfW1hcmtQYXJlbnRzRGlydHkoKXtsZXQgZT0xO2ZvcihsZXQgdD10aGlzLnBhcmVudDt0O3Q9dC5wYXJlbnQsZSsrKXtsZXQgcj1lPT0xP1dmOl9vYTt0LmRpcnR5PHImJih0LmRpcnR5PXIpfX1nZXQgZG9tQXRvbSgpe3JldHVybiExfWdldCBpZ25vcmVGb3JDb29yZHMoKXtyZXR1cm4hMX1nZXQgaWdub3JlRm9yU2VsZWN0aW9uKCl7cmV0dXJuITF9aXNUZXh0KGUpe3JldHVybiExfX0sTmFlPWNsYXNzIGV4dGVuZHMgR2Z7c3RhdGlje3ModGhpcywiV2lkZ2V0Vmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQscixpKXtsZXQgbyxuPXQudHlwZS50b0RPTTtpZih0eXBlb2Ygbj09ImZ1bmN0aW9uIiYmKG49bihyLCgpPT57aWYoIW8pcmV0dXJuIGk7aWYoby5wYXJlbnQpcmV0dXJuIG8ucGFyZW50LnBvc0JlZm9yZUNoaWxkKG8pfSkpLCF0LnR5cGUuc3BlYy5yYXcpe2lmKG4ubm9kZVR5cGUhPTEpe2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtsLmFwcGVuZENoaWxkKG4pLG49bH1uLmNvbnRlbnRFZGl0YWJsZT0iZmFsc2UiLG4uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3Itd2lkZ2V0Iil9c3VwZXIoZSxbXSxuLG51bGwpLHRoaXMud2lkZ2V0PXQsdGhpcy53aWRnZXQ9dCxvPXRoaXN9bWF0Y2hlc1dpZGdldChlKXtyZXR1cm4gdGhpcy5kaXJ0eT09Rm4mJmUudHlwZS5lcSh0aGlzLndpZGdldC50eXBlKX1wYXJzZVJ1bGUoKXtyZXR1cm57aWdub3JlOiEwfX1zdG9wRXZlbnQoZSl7bGV0IHQ9dGhpcy53aWRnZXQuc3BlYy5zdG9wRXZlbnQ7cmV0dXJuIHQ/dChlKTohMX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gZS50eXBlIT0ic2VsZWN0aW9uInx8dGhpcy53aWRnZXQuc3BlYy5pZ25vcmVTZWxlY3Rpb259ZGVzdHJveSgpe3RoaXMud2lkZ2V0LnR5cGUuZGVzdHJveSh0aGlzLmRvbSksc3VwZXIuZGVzdHJveSgpfWdldCBkb21BdG9tKCl7cmV0dXJuITB9Z2V0IGlnbm9yZUZvclNlbGVjdGlvbigpe3JldHVybiEhdGhpcy53aWRnZXQudHlwZS5zcGVjLnJlbGF4ZWRTaWRlfWdldCBzaWRlKCl7cmV0dXJuIHRoaXMud2lkZ2V0LnR5cGUuc2lkZX19LF9LZT1jbGFzcyBleHRlbmRzIEdme3N0YXRpY3tzKHRoaXMsIkNvbXBvc2l0aW9uVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQscixpKXtzdXBlcihlLFtdLHQsbnVsbCksdGhpcy50ZXh0RE9NPXIsdGhpcy50ZXh0PWl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH1sb2NhbFBvc0Zyb21ET00oZSx0KXtyZXR1cm4gZSE9dGhpcy50ZXh0RE9NP3RoaXMucG9zQXRTdGFydCsodD90aGlzLnNpemU6MCk6dGhpcy5wb3NBdFN0YXJ0K3R9ZG9tRnJvbVBvcyhlKXtyZXR1cm57bm9kZTp0aGlzLnRleHRET00sb2Zmc2V0OmV9fWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0iY2hhcmFjdGVyRGF0YSImJmUudGFyZ2V0Lm5vZGVWYWx1ZT09ZS5vbGRWYWx1ZX19LE1tPWNsYXNzIGEgZXh0ZW5kcyBHZntzdGF0aWN7cyh0aGlzLCJNYXJrVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHQscixpLG8pe3N1cGVyKGUsW10scixpKSx0aGlzLm1hcms9dCx0aGlzLnNwZWM9b31zdGF0aWMgY3JlYXRlKGUsdCxyLGkpe2xldCBvPWkubm9kZVZpZXdzW3QudHlwZS5uYW1lXSxuPW8mJm8odCxpLHIpO3JldHVybighbnx8IW4uZG9tKSYmKG49VzIucmVuZGVyU3BlYyhkb2N1bWVudCx0LnR5cGUuc3BlYy50b0RPTSh0LHIpLG51bGwsdC5hdHRycykpLG5ldyBhKGUsdCxuLmRvbSxuLmNvbnRlbnRET018fG4uZG9tLG4pfXBhcnNlUnVsZSgpe3JldHVybiB0aGlzLmRpcnR5JloyfHx0aGlzLm1hcmsudHlwZS5zcGVjLnJlcGFyc2VJblZpZXc/bnVsbDp7bWFyazp0aGlzLm1hcmsudHlwZS5uYW1lLGF0dHJzOnRoaXMubWFyay5hdHRycyxjb250ZW50RWxlbWVudDp0aGlzLmNvbnRlbnRET019fW1hdGNoZXNNYXJrKGUpe3JldHVybiB0aGlzLmRpcnR5IT1aMiYmdGhpcy5tYXJrLmVxKGUpfW1hcmtEaXJ0eShlLHQpe2lmKHN1cGVyLm1hcmtEaXJ0eShlLHQpLHRoaXMuZGlydHkhPUZuKXtsZXQgcj10aGlzLnBhcmVudDtmb3IoOyFyLm5vZGU7KXI9ci5wYXJlbnQ7ci5kaXJ0eTx0aGlzLmRpcnR5JiYoci5kaXJ0eT10aGlzLmRpcnR5KSx0aGlzLmRpcnR5PUZufX1zbGljZShlLHQscil7bGV0IGk9YS5jcmVhdGUodGhpcy5wYXJlbnQsdGhpcy5tYXJrLCEwLHIpLG89dGhpcy5jaGlsZHJlbixuPXRoaXMuc2l6ZTt0PG4mJihvPURLZShvLHQsbixyKSksZT4wJiYobz1ES2UobywwLGUscikpO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKW9bbF0ucGFyZW50PWk7cmV0dXJuIGkuY2hpbGRyZW49byxpfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiB0aGlzLnNwZWMuaWdub3JlTXV0YXRpb24/dGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uKGUpOnN1cGVyLmlnbm9yZU11dGF0aW9uKGUpfWRlc3Ryb3koKXt0aGlzLnNwZWMuZGVzdHJveSYmdGhpcy5zcGVjLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fSx2ND1jbGFzcyBhIGV4dGVuZHMgR2Z7c3RhdGlje3ModGhpcywiTm9kZVZpZXdEZXNjIil9Y29uc3RydWN0b3IoZSx0LHIsaSxvLG4sbCxkLGMpe3N1cGVyKGUsW10sbyxuKSx0aGlzLm5vZGU9dCx0aGlzLm91dGVyRGVjbz1yLHRoaXMuaW5uZXJEZWNvPWksdGhpcy5ub2RlRE9NPWx9c3RhdGljIGNyZWF0ZShlLHQscixpLG8sbil7bGV0IGw9by5ub2RlVmlld3NbdC50eXBlLm5hbWVdLGQsYz1sJiZsKHQsbywoKT0+e2lmKCFkKXJldHVybiBuO2lmKGQucGFyZW50KXJldHVybiBkLnBhcmVudC5wb3NCZWZvcmVDaGlsZChkKX0scixpKSxwPWMmJmMuZG9tLHU9YyYmYy5jb250ZW50RE9NO2lmKHQuaXNUZXh0KXtpZighcClwPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQudGV4dCk7ZWxzZSBpZihwLm5vZGVUeXBlIT0zKXRocm93IG5ldyBSYW5nZUVycm9yKCJUZXh0IG11c3QgYmUgcmVuZGVyZWQgYXMgYSBET00gdGV4dCBub2RlIil9ZWxzZSBwfHwoe2RvbTpwLGNvbnRlbnRET006dX09VzIucmVuZGVyU3BlYyhkb2N1bWVudCx0LnR5cGUuc3BlYy50b0RPTSh0KSxudWxsLHQuYXR0cnMpKTshdSYmIXQuaXNUZXh0JiZwLm5vZGVOYW1lIT0iQlIiJiYocC5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHwocC5jb250ZW50RWRpdGFibGU9ImZhbHNlIiksdC50eXBlLnNwZWMuZHJhZ2dhYmxlJiYocC5kcmFnZ2FibGU9ITApKTtsZXQgbT1wO3JldHVybiBwPURvYShwLHIsdCksYz9kPW5ldyBUS2UoZSx0LHIsaSxwLHV8fG51bGwsbSxjLG8sbisxKTp0LmlzVGV4dD9uZXcgUmFlKGUsdCxyLGkscCxtLG8pOm5ldyBhKGUsdCxyLGkscCx1fHxudWxsLG0sbyxuKzEpfXBhcnNlUnVsZSgpe2lmKHRoaXMubm9kZS50eXBlLnNwZWMucmVwYXJzZUluVmlldylyZXR1cm4gbnVsbDtsZXQgZT17bm9kZTp0aGlzLm5vZGUudHlwZS5uYW1lLGF0dHJzOnRoaXMubm9kZS5hdHRyc307aWYodGhpcy5ub2RlLnR5cGUud2hpdGVzcGFjZT09InByZSImJihlLnByZXNlcnZlV2hpdGVzcGFjZT0iZnVsbCIpLCF0aGlzLmNvbnRlbnRET00pZS5nZXRDb250ZW50PSgpPT50aGlzLm5vZGUuY29udGVudDtlbHNlIGlmKCF0aGlzLmNvbnRlbnRMb3N0KWUuY29udGVudEVsZW1lbnQ9dGhpcy5jb250ZW50RE9NO2Vsc2V7Zm9yKGxldCB0PXRoaXMuY2hpbGRyZW4ubGVuZ3RoLTE7dD49MDt0LS0pe2xldCByPXRoaXMuY2hpbGRyZW5bdF07aWYodGhpcy5kb20uY29udGFpbnMoci5kb20ucGFyZW50Tm9kZSkpe2UuY29udGVudEVsZW1lbnQ9ci5kb20ucGFyZW50Tm9kZTticmVha319ZS5jb250ZW50RWxlbWVudHx8KGUuZ2V0Q29udGVudD0oKT0+amUuZW1wdHkpfXJldHVybiBlfW1hdGNoZXNOb2RlKGUsdCxyKXtyZXR1cm4gdGhpcy5kaXJ0eT09Rm4mJmUuZXEodGhpcy5ub2RlKSYmRmFlKHQsdGhpcy5vdXRlckRlY28pJiZyLmVxKHRoaXMuaW5uZXJEZWNvKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLm5vZGUubm9kZVNpemV9Z2V0IGJvcmRlcigpe3JldHVybiB0aGlzLm5vZGUuaXNMZWFmPzA6MX11cGRhdGVDaGlsZHJlbihlLHQpe2xldCByPXRoaXMubm9kZS5pbmxpbmVDb250ZW50LGk9dCxvPWUuY29tcG9zaW5nP3RoaXMubG9jYWxDb21wb3NpdGlvbkluZm8oZSx0KTpudWxsLG49byYmby5wb3M+LTE/bzpudWxsLGw9byYmby5wb3M8MCxkPW5ldyAkS2UodGhpcyxuJiZuLm5vZGUsZSk7cEFhKHRoaXMubm9kZSx0aGlzLmlubmVyRGVjbywoYyxwLHUpPT57Yy5zcGVjLm1hcmtzP2Quc3luY1RvTWFya3MoYy5zcGVjLm1hcmtzLHIsZSxwKTpjLnR5cGUuc2lkZT49MCYmIXUmJmQuc3luY1RvTWFya3MocD09dGhpcy5ub2RlLmNoaWxkQ291bnQ/RGEubm9uZTp0aGlzLm5vZGUuY2hpbGQocCkubWFya3MscixlLHApLGQucGxhY2VXaWRnZXQoYyxlLGkpfSwoYyxwLHUsbSk9PntkLnN5bmNUb01hcmtzKGMubWFya3MscixlLG0pO2xldCB2O2QuZmluZE5vZGVNYXRjaChjLHAsdSxtKXx8bCYmZS5zdGF0ZS5zZWxlY3Rpb24uZnJvbT5pJiZlLnN0YXRlLnNlbGVjdGlvbi50bzxpK2Mubm9kZVNpemUmJih2PWQuZmluZEluZGV4V2l0aENoaWxkKG8ubm9kZSkpPi0xJiZkLnVwZGF0ZU5vZGVBdChjLHAsdSx2LGUpfHxkLnVwZGF0ZU5leHROb2RlKGMscCx1LGUsbSxpKXx8ZC5hZGROb2RlKGMscCx1LGUsaSksaSs9Yy5ub2RlU2l6ZX0pLGQuc3luY1RvTWFya3MoW10scixlLDApLHRoaXMubm9kZS5pc1RleHRibG9jayYmZC5hZGRUZXh0YmxvY2tIYWNrcygpLGQuZGVzdHJveVJlc3QoKSwoZC5jaGFuZ2VkfHx0aGlzLmRpcnR5PT1XZikmJihuJiZ0aGlzLnByb3RlY3RMb2NhbENvbXBvc2l0aW9uKGUsbiksTG9hKHRoaXMuY29udGVudERPTSx0aGlzLmNoaWxkcmVuLGUpLHltJiZmQWEodGhpcy5kb20pKX1sb2NhbENvbXBvc2l0aW9uSW5mbyhlLHQpe2xldHtmcm9tOnIsdG86aX09ZS5zdGF0ZS5zZWxlY3Rpb247aWYoIShlLnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIE50KXx8cjx0fHxpPnQrdGhpcy5ub2RlLmNvbnRlbnQuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgbz1lLmlucHV0LmNvbXBvc2l0aW9uTm9kZTtpZighb3x8IXRoaXMuZG9tLmNvbnRhaW5zKG8ucGFyZW50Tm9kZSkpcmV0dXJuIG51bGw7aWYodGhpcy5ub2RlLmlubGluZUNvbnRlbnQpe2xldCBuPW8ubm9kZVZhbHVlLGw9aEFhKHRoaXMubm9kZS5jb250ZW50LG4sci10LGktdCk7cmV0dXJuIGw8MD9udWxsOntub2RlOm8scG9zOmwsdGV4dDpufX1lbHNlIHJldHVybntub2RlOm8scG9zOi0xLHRleHQ6IiJ9fXByb3RlY3RMb2NhbENvbXBvc2l0aW9uKGUse25vZGU6dCxwb3M6cix0ZXh0Oml9KXtpZih0aGlzLmdldERlc2ModCkpcmV0dXJuO2xldCBvPXQ7Zm9yKDtvLnBhcmVudE5vZGUhPXRoaXMuY29udGVudERPTTtvPW8ucGFyZW50Tm9kZSl7Zm9yKDtvLnByZXZpb3VzU2libGluZzspby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8ucHJldmlvdXNTaWJsaW5nKTtmb3IoO28ubmV4dFNpYmxpbmc7KW8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvLm5leHRTaWJsaW5nKTtvLnBtVmlld0Rlc2MmJihvLnBtVmlld0Rlc2M9dm9pZCAwKX1sZXQgbj1uZXcgX0tlKHRoaXMsbyx0LGkpO2UuaW5wdXQuY29tcG9zaXRpb25Ob2Rlcy5wdXNoKG4pLHRoaXMuY2hpbGRyZW49REtlKHRoaXMuY2hpbGRyZW4scixyK2kubGVuZ3RoLGUsbil9dXBkYXRlKGUsdCxyLGkpe3JldHVybiB0aGlzLmRpcnR5PT1aMnx8IWUuc2FtZU1hcmt1cCh0aGlzLm5vZGUpPyExOih0aGlzLnVwZGF0ZUlubmVyKGUsdCxyLGkpLCEwKX11cGRhdGVJbm5lcihlLHQscixpKXt0aGlzLnVwZGF0ZU91dGVyRGVjbyh0KSx0aGlzLm5vZGU9ZSx0aGlzLmlubmVyRGVjbz1yLHRoaXMuY29udGVudERPTSYmdGhpcy51cGRhdGVDaGlsZHJlbihpLHRoaXMucG9zQXRTdGFydCksdGhpcy5kaXJ0eT1Gbn11cGRhdGVPdXRlckRlY28oZSl7aWYoRmFlKGUsdGhpcy5vdXRlckRlY28pKXJldHVybjtsZXQgdD10aGlzLm5vZGVET00ubm9kZVR5cGUhPTEscj10aGlzLmRvbTt0aGlzLmRvbT0kb2EodGhpcy5kb20sdGhpcy5ub2RlRE9NLExLZSh0aGlzLm91dGVyRGVjbyx0aGlzLm5vZGUsdCksTEtlKGUsdGhpcy5ub2RlLHQpKSx0aGlzLmRvbSE9ciYmKHIucG1WaWV3RGVzYz12b2lkIDAsdGhpcy5kb20ucG1WaWV3RGVzYz10aGlzKSx0aGlzLm91dGVyRGVjbz1lfXNlbGVjdE5vZGUoKXt0aGlzLm5vZGVET00ubm9kZVR5cGU9PTEmJih0aGlzLm5vZGVET00uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3Itc2VsZWN0ZWRub2RlIiksKHRoaXMuY29udGVudERPTXx8IXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlKSYmKHRoaXMubm9kZURPTS5kcmFnZ2FibGU9ITApKX1kZXNlbGVjdE5vZGUoKXt0aGlzLm5vZGVET00ubm9kZVR5cGU9PTEmJih0aGlzLm5vZGVET00uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3Itc2VsZWN0ZWRub2RlIiksKHRoaXMuY29udGVudERPTXx8IXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlKSYmdGhpcy5ub2RlRE9NLnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ2dhYmxlIikpfWdldCBkb21BdG9tKCl7cmV0dXJuIHRoaXMubm9kZS5pc0F0b219fTtzKFRvYSwiZG9jVmlld0Rlc2MiKTtSYWU9Y2xhc3MgYSBleHRlbmRzIHY0e3N0YXRpY3tzKHRoaXMsIlRleHRWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUsdCxyLGksbyxuLGwpe3N1cGVyKGUsdCxyLGksbyxudWxsLG4sbCwwKX1wYXJzZVJ1bGUoKXtsZXQgZT10aGlzLm5vZGVET00ucGFyZW50Tm9kZTtmb3IoO2UmJmUhPXRoaXMuZG9tJiYhZS5wbUlzRGVjbzspZT1lLnBhcmVudE5vZGU7cmV0dXJue3NraXA6ZXx8ITB9fXVwZGF0ZShlLHQscixpKXtyZXR1cm4gdGhpcy5kaXJ0eT09WjJ8fHRoaXMuZGlydHkhPUZuJiYhdGhpcy5pblBhcmVudCgpfHwhZS5zYW1lTWFya3VwKHRoaXMubm9kZSk/ITE6KHRoaXMudXBkYXRlT3V0ZXJEZWNvKHQpLCh0aGlzLmRpcnR5IT1Gbnx8ZS50ZXh0IT10aGlzLm5vZGUudGV4dCkmJmUudGV4dCE9dGhpcy5ub2RlRE9NLm5vZGVWYWx1ZSYmKHRoaXMubm9kZURPTS5ub2RlVmFsdWU9ZS50ZXh0LGkudHJhY2tXcml0ZXM9PXRoaXMubm9kZURPTSYmKGkudHJhY2tXcml0ZXM9bnVsbCkpLHRoaXMubm9kZT1lLHRoaXMuZGlydHk9Rm4sITApfWluUGFyZW50KCl7bGV0IGU9dGhpcy5wYXJlbnQuY29udGVudERPTTtmb3IobGV0IHQ9dGhpcy5ub2RlRE9NO3Q7dD10LnBhcmVudE5vZGUpaWYodD09ZSlyZXR1cm4hMDtyZXR1cm4hMX1kb21Gcm9tUG9zKGUpe3JldHVybntub2RlOnRoaXMubm9kZURPTSxvZmZzZXQ6ZX19bG9jYWxQb3NGcm9tRE9NKGUsdCxyKXtyZXR1cm4gZT09dGhpcy5ub2RlRE9NP3RoaXMucG9zQXRTdGFydCtNYXRoLm1pbih0LHRoaXMubm9kZS50ZXh0Lmxlbmd0aCk6c3VwZXIubG9jYWxQb3NGcm9tRE9NKGUsdCxyKX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gZS50eXBlIT0iY2hhcmFjdGVyRGF0YSImJmUudHlwZSE9InNlbGVjdGlvbiJ9c2xpY2UoZSx0LHIpe2xldCBpPXRoaXMubm9kZS5jdXQoZSx0KSxvPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGkudGV4dCk7cmV0dXJuIG5ldyBhKHRoaXMucGFyZW50LGksdGhpcy5vdXRlckRlY28sdGhpcy5pbm5lckRlY28sbyxvLHIpfW1hcmtEaXJ0eShlLHQpe3N1cGVyLm1hcmtEaXJ0eShlLHQpLHRoaXMuZG9tIT10aGlzLm5vZGVET00mJihlPT0wfHx0PT10aGlzLm5vZGVET00ubm9kZVZhbHVlLmxlbmd0aCkmJih0aGlzLmRpcnR5PVoyKX1nZXQgZG9tQXRvbSgpe3JldHVybiExfWlzVGV4dChlKXtyZXR1cm4gdGhpcy5ub2RlLnRleHQ9PWV9fSxPYWU9Y2xhc3MgZXh0ZW5kcyBHZntzdGF0aWN7cyh0aGlzLCJUcmFpbGluZ0hhY2tWaWV3RGVzYyIpfXBhcnNlUnVsZSgpe3JldHVybntpZ25vcmU6ITB9fW1hdGNoZXNIYWNrKGUpe3JldHVybiB0aGlzLmRpcnR5PT1GbiYmdGhpcy5kb20ubm9kZU5hbWU9PWV9Z2V0IGRvbUF0b20oKXtyZXR1cm4hMH1nZXQgaWdub3JlRm9yQ29vcmRzKCl7cmV0dXJuIHRoaXMuZG9tLm5vZGVOYW1lPT0iSU1HIn19LFRLZT1jbGFzcyBleHRlbmRzIHY0e3N0YXRpY3tzKHRoaXMsIkN1c3RvbU5vZGVWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUsdCxyLGksbyxuLGwsZCxjLHApe3N1cGVyKGUsdCxyLGksbyxuLGwsYyxwKSx0aGlzLnNwZWM9ZH11cGRhdGUoZSx0LHIsaSl7aWYodGhpcy5kaXJ0eT09WjIpcmV0dXJuITE7aWYodGhpcy5zcGVjLnVwZGF0ZSYmKHRoaXMubm9kZS50eXBlPT1lLnR5cGV8fHRoaXMuc3BlYy5tdWx0aVR5cGUpKXtsZXQgbz10aGlzLnNwZWMudXBkYXRlKGUsdCxyKTtyZXR1cm4gbyYmdGhpcy51cGRhdGVJbm5lcihlLHQscixpKSxvfWVsc2UgcmV0dXJuIXRoaXMuY29udGVudERPTSYmIWUuaXNMZWFmPyExOnN1cGVyLnVwZGF0ZShlLHQscixpKX1zZWxlY3ROb2RlKCl7dGhpcy5zcGVjLnNlbGVjdE5vZGU/dGhpcy5zcGVjLnNlbGVjdE5vZGUoKTpzdXBlci5zZWxlY3ROb2RlKCl9ZGVzZWxlY3ROb2RlKCl7dGhpcy5zcGVjLmRlc2VsZWN0Tm9kZT90aGlzLnNwZWMuZGVzZWxlY3ROb2RlKCk6c3VwZXIuZGVzZWxlY3ROb2RlKCl9c2V0U2VsZWN0aW9uKGUsdCxyLGkpe3RoaXMuc3BlYy5zZXRTZWxlY3Rpb24/dGhpcy5zcGVjLnNldFNlbGVjdGlvbihlLHQsci5yb290KTpzdXBlci5zZXRTZWxlY3Rpb24oZSx0LHIsaSl9ZGVzdHJveSgpe3RoaXMuc3BlYy5kZXN0cm95JiZ0aGlzLnNwZWMuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1zdG9wRXZlbnQoZSl7cmV0dXJuIHRoaXMuc3BlYy5zdG9wRXZlbnQ/dGhpcy5zcGVjLnN0b3BFdmVudChlKTohMX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4gdGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uP3RoaXMuc3BlYy5pZ25vcmVNdXRhdGlvbihlKTpzdXBlci5pZ25vcmVNdXRhdGlvbihlKX19O3MoTG9hLCJyZW5kZXJEZXNjcyIpO2VXPXMoZnVuY3Rpb24oYSl7YSYmKHRoaXMubm9kZU5hbWU9YSl9LCJPdXRlckRlY29MZXZlbCIpO2VXLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG51bGwpO1lmPVtuZXcgZVddO3MoTEtlLCJjb21wdXRlT3V0ZXJEZWNvIik7cygkb2EsInBhdGNoT3V0ZXJEZWNvIik7cyhjQWEsInBhdGNoQXR0cmlidXRlcyIpO3MoRG9hLCJhcHBseU91dGVyRGVjbyIpO3MoRmFlLCJzYW1lT3V0ZXJEZWNvIik7cyhBb2EsInJtIik7JEtlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlZpZXdUcmVlVXBkYXRlciIpfWNvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmxvY2s9dCx0aGlzLnZpZXc9cix0aGlzLmluZGV4PTAsdGhpcy5zdGFjaz1bXSx0aGlzLmNoYW5nZWQ9ITEsdGhpcy50b3A9ZSx0aGlzLnByZU1hdGNoPWRBYShlLm5vZGUuY29udGVudCxlKX1kZXN0cm95QmV0d2VlbihlLHQpe2lmKGUhPXQpe2ZvcihsZXQgcj1lO3I8dDtyKyspdGhpcy50b3AuY2hpbGRyZW5bcl0uZGVzdHJveSgpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZShlLHQtZSksdGhpcy5jaGFuZ2VkPSEwfX1kZXN0cm95UmVzdCgpe3RoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCx0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGgpfXN5bmNUb01hcmtzKGUsdCxyLGkpe2xldCBvPTAsbj10aGlzLnN0YWNrLmxlbmd0aD4+MSxsPU1hdGgubWluKG4sZS5sZW5ndGgpO2Zvcig7bzxsJiYobz09bi0xP3RoaXMudG9wOnRoaXMuc3RhY2tbbysxPDwxXSkubWF0Y2hlc01hcmsoZVtvXSkmJmVbb10udHlwZS5zcGVjLnNwYW5uaW5nIT09ITE7KW8rKztmb3IoO288bjspdGhpcy5kZXN0cm95UmVzdCgpLHRoaXMudG9wLmRpcnR5PUZuLHRoaXMuaW5kZXg9dGhpcy5zdGFjay5wb3AoKSx0aGlzLnRvcD10aGlzLnN0YWNrLnBvcCgpLG4tLTtmb3IoO248ZS5sZW5ndGg7KXt0aGlzLnN0YWNrLnB1c2godGhpcy50b3AsdGhpcy5pbmRleCsxKTtsZXQgZD0tMSxjPXRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aDtpPHRoaXMucHJlTWF0Y2guaW5kZXgmJihjPU1hdGgubWluKHRoaXMuaW5kZXgrMyxjKSk7Zm9yKGxldCBwPXRoaXMuaW5kZXg7cDxjO3ArKyl7bGV0IHU9dGhpcy50b3AuY2hpbGRyZW5bcF07aWYodS5tYXRjaGVzTWFyayhlW25dKSYmIXRoaXMuaXNMb2NrZWQodS5kb20pKXtkPXA7YnJlYWt9fWlmKGQ+LTEpZD50aGlzLmluZGV4JiYodGhpcy5jaGFuZ2VkPSEwLHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxkKSksdGhpcy50b3A9dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleF07ZWxzZXtsZXQgcD1NbS5jcmVhdGUodGhpcy50b3AsZVtuXSx0LHIpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4LDAscCksdGhpcy50b3A9cCx0aGlzLmNoYW5nZWQ9ITB9dGhpcy5pbmRleD0wLG4rK319ZmluZE5vZGVNYXRjaChlLHQscixpKXtsZXQgbz0tMSxuO2lmKGk+PXRoaXMucHJlTWF0Y2guaW5kZXgmJihuPXRoaXMucHJlTWF0Y2gubWF0Y2hlc1tpLXRoaXMucHJlTWF0Y2guaW5kZXhdKS5wYXJlbnQ9PXRoaXMudG9wJiZuLm1hdGNoZXNOb2RlKGUsdCxyKSlvPXRoaXMudG9wLmNoaWxkcmVuLmluZGV4T2Yobix0aGlzLmluZGV4KTtlbHNlIGZvcihsZXQgbD10aGlzLmluZGV4LGQ9TWF0aC5taW4odGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoLGwrNSk7bDxkO2wrKyl7bGV0IGM9dGhpcy50b3AuY2hpbGRyZW5bbF07aWYoYy5tYXRjaGVzTm9kZShlLHQscikmJiF0aGlzLnByZU1hdGNoLm1hdGNoZWQuaGFzKGMpKXtvPWw7YnJlYWt9fXJldHVybiBvPDA/ITE6KHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxvKSx0aGlzLmluZGV4KyssITApfXVwZGF0ZU5vZGVBdChlLHQscixpLG8pe2xldCBuPXRoaXMudG9wLmNoaWxkcmVuW2ldO3JldHVybiBuLmRpcnR5PT1aMiYmbi5kb209PW4uY29udGVudERPTSYmKG4uZGlydHk9V2YpLG4udXBkYXRlKGUsdCxyLG8pPyh0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsaSksdGhpcy5pbmRleCsrLCEwKTohMX1maW5kSW5kZXhXaXRoQ2hpbGQoZSl7Zm9yKDs7KXtsZXQgdD1lLnBhcmVudE5vZGU7aWYoIXQpcmV0dXJuLTE7aWYodD09dGhpcy50b3AuY29udGVudERPTSl7bGV0IHI9ZS5wbVZpZXdEZXNjO2lmKHIpe2ZvcihsZXQgaT10aGlzLmluZGV4O2k8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoO2krKylpZih0aGlzLnRvcC5jaGlsZHJlbltpXT09cilyZXR1cm4gaX1yZXR1cm4tMX1lPXR9fXVwZGF0ZU5leHROb2RlKGUsdCxyLGksbyxuKXtmb3IobGV0IGw9dGhpcy5pbmRleDtsPHRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aDtsKyspe2xldCBkPXRoaXMudG9wLmNoaWxkcmVuW2xdO2lmKGQgaW5zdGFuY2VvZiB2NCl7bGV0IGM9dGhpcy5wcmVNYXRjaC5tYXRjaGVkLmdldChkKTtpZihjIT1udWxsJiZjIT1vKXJldHVybiExO2xldCBwPWQuZG9tLHUsbT10aGlzLmlzTG9ja2VkKHApJiYhKGUuaXNUZXh0JiZkLm5vZGUmJmQubm9kZS5pc1RleHQmJmQubm9kZURPTS5ub2RlVmFsdWU9PWUudGV4dCYmZC5kaXJ0eSE9WjImJkZhZSh0LGQub3V0ZXJEZWNvKSk7aWYoIW0mJmQudXBkYXRlKGUsdCxyLGkpKXJldHVybiB0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsbCksZC5kb20hPXAmJih0aGlzLmNoYW5nZWQ9ITApLHRoaXMuaW5kZXgrKywhMDtpZighbSYmKHU9dGhpcy5yZWNyZWF0ZVdyYXBwZXIoZCxlLHQscixpLG4pKSlyZXR1cm4gdGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LGwpLHRoaXMudG9wLmNoaWxkcmVuW3RoaXMuaW5kZXhdPXUsdS5jb250ZW50RE9NJiYodS5kaXJ0eT1XZix1LnVwZGF0ZUNoaWxkcmVuKGksbisxKSx1LmRpcnR5PUZuKSx0aGlzLmNoYW5nZWQ9ITAsdGhpcy5pbmRleCsrLCEwO2JyZWFrfX1yZXR1cm4hMX1yZWNyZWF0ZVdyYXBwZXIoZSx0LHIsaSxvLG4pe2lmKGUuZGlydHl8fHQuaXNBdG9tfHwhZS5jaGlsZHJlbi5sZW5ndGh8fCFlLm5vZGUuY29udGVudC5lcSh0LmNvbnRlbnQpfHwhRmFlKHIsZS5vdXRlckRlY28pfHwhaS5lcShlLmlubmVyRGVjbykpcmV0dXJuIG51bGw7bGV0IGw9djQuY3JlYXRlKHRoaXMudG9wLHQscixpLG8sbik7aWYobC5jb250ZW50RE9NKXtsLmNoaWxkcmVuPWUuY2hpbGRyZW4sZS5jaGlsZHJlbj1bXTtmb3IobGV0IGQgb2YgbC5jaGlsZHJlbilkLnBhcmVudD1sfXJldHVybiBlLmRlc3Ryb3koKSxsfWFkZE5vZGUoZSx0LHIsaSxvKXtsZXQgbj12NC5jcmVhdGUodGhpcy50b3AsZSx0LHIsaSxvKTtuLmNvbnRlbnRET00mJm4udXBkYXRlQ2hpbGRyZW4oaSxvKzEpLHRoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxuKSx0aGlzLmNoYW5nZWQ9ITB9cGxhY2VXaWRnZXQoZSx0LHIpe2xldCBpPXRoaXMuaW5kZXg8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoP3RoaXMudG9wLmNoaWxkcmVuW3RoaXMuaW5kZXhdOm51bGw7aWYoaSYmaS5tYXRjaGVzV2lkZ2V0KGUpJiYoZT09aS53aWRnZXR8fCFpLndpZGdldC50eXBlLnRvRE9NLnBhcmVudE5vZGUpKXRoaXMuaW5kZXgrKztlbHNle2xldCBvPW5ldyBOYWUodGhpcy50b3AsZSx0LHIpO3RoaXMudG9wLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxvKSx0aGlzLmNoYW5nZWQ9ITB9fWFkZFRleHRibG9ja0hhY2tzKCl7bGV0IGU9dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleC0xXSx0PXRoaXMudG9wO2Zvcig7ZSBpbnN0YW5jZW9mIE1tOyl0PWUsZT10LmNoaWxkcmVuW3QuY2hpbGRyZW4ubGVuZ3RoLTFdOyghZXx8IShlIGluc3RhbmNlb2YgUmFlKXx8L1xuJC8udGVzdChlLm5vZGUudGV4dCl8fHRoaXMudmlldy5yZXF1aXJlc0dlY2tvSGFja05vZGUmJi9ccyQvLnRlc3QoZS5ub2RlLnRleHQpKSYmKChOaXx8b2kpJiZlJiZlLmRvbS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSImJnRoaXMuYWRkSGFja05vZGUoIklNRyIsdCksdGhpcy5hZGRIYWNrTm9kZSgiQlIiLHRoaXMudG9wKSl9YWRkSGFja05vZGUoZSx0KXtpZih0PT10aGlzLnRvcCYmdGhpcy5pbmRleDx0LmNoaWxkcmVuLmxlbmd0aCYmdC5jaGlsZHJlblt0aGlzLmluZGV4XS5tYXRjaGVzSGFjayhlKSl0aGlzLmluZGV4Kys7ZWxzZXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO2U9PSJJTUciJiYoci5jbGFzc05hbWU9IlByb3NlTWlycm9yLXNlcGFyYXRvciIsci5hbHQ9IiIpLGU9PSJCUiImJihyLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3ItdHJhaWxpbmdCcmVhayIpO2xldCBpPW5ldyBPYWUodGhpcy50b3AsW10scixudWxsKTt0IT10aGlzLnRvcD90LmNoaWxkcmVuLnB1c2goaSk6dC5jaGlsZHJlbi5zcGxpY2UodGhpcy5pbmRleCsrLDAsaSksdGhpcy5jaGFuZ2VkPSEwfX1pc0xvY2tlZChlKXtyZXR1cm4gdGhpcy5sb2NrJiYoZT09dGhpcy5sb2NrfHxlLm5vZGVUeXBlPT0xJiZlLmNvbnRhaW5zKHRoaXMubG9jay5wYXJlbnROb2RlKSl9fTtzKGRBYSwicHJlTWF0Y2giKTtzKHVBYSwiY29tcGFyZVNpZGUiKTtzKHBBYSwiaXRlckRlY28iKTtzKGZBYSwiaW9zSGFja3MiKTtzKGhBYSwiZmluZFRleHRJbkZyYWdtZW50Iik7cyhES2UsInJlcGxhY2VOb2RlcyIpO3MoQUtlLCJzZWxlY3Rpb25Gcm9tRE9NIik7cyhQb2EsImVkaXRvck93bnNTZWxlY3Rpb24iKTtzKHhjLCJzZWxlY3Rpb25Ub0RPTSIpO0VvYT1OaXx8b2kmJmhvYTw2MztzKElvYSwidGVtcG9yYXJpbHlFZGl0YWJsZU5lYXIiKTtzKFBLZSwic2V0RWRpdGFibGUiKTtzKE5vYSwicmVzZXRFZGl0YWJsZSIpO3MobUFhLCJyZW1vdmVDbGFzc09uU2VsZWN0aW9uQ2hhbmdlIik7cyhnQWEsInNlbGVjdEN1cnNvcldyYXBwZXIiKTtzKFJvYSwic3luY05vZGVTZWxlY3Rpb24iKTtzKE9vYSwiY2xlYXJOb2RlU2VsZWN0aW9uIik7cyhFS2UsInNlbGVjdGlvbkJldHdlZW4iKTtzKEZvYSwiaGFzRm9jdXNBbmRTZWxlY3Rpb24iKTtzKEJvYSwiaGFzU2VsZWN0aW9uIik7cyhiQWEsImFuY2hvckluUmlnaHRQbGFjZSIpO3MoSUtlLCJtb3ZlU2VsZWN0aW9uQmxvY2siKTtzKHg0LCJhcHBseSIpO3MoSG9hLCJzZWxlY3RIb3Jpem9udGFsbHkiKTtzKEJhZSwibm9kZUxlbiIpO3ModFcsImlzSWdub3JhYmxlIik7cyhrbSwic2tpcElnbm9yZWROb2RlcyIpO3ModkFhLCJza2lwSWdub3JlZE5vZGVzQmVmb3JlIik7cyh4QWEsInNraXBJZ25vcmVkTm9kZXNBZnRlciIpO3MocW9hLCJpc0Jsb2NrTm9kZSIpO3MoeUFhLCJ0ZXh0Tm9kZUFmdGVyIik7cyh3QWEsInRleHROb2RlQmVmb3JlIik7cyhOS2UsInNldFNlbEZvY3VzIik7cyhWb2EsImZpbmREaXJlY3Rpb24iKTtzKGpvYSwic2VsZWN0VmVydGljYWxseSIpO3MoVW9hLCJzdG9wTmF0aXZlSG9yaXpvbnRhbERlbGV0ZSIpO3MoV29hLCJzd2l0Y2hFZGl0YWJsZSIpO3MoTUFhLCJzYWZhcmlEb3duQXJyb3dCdWciKTtzKGtBYSwiZ2V0TW9kcyIpO3MoU0FhLCJjYXB0dXJlS2V5RG93biIpO3MoUktlLCJzZXJpYWxpemVGb3JDbGlwYm9hcmQiKTtzKE9LZSwicGFyc2VGcm9tQ2xpcGJvYXJkIik7ekFhPS9eKGF8YWJicnxhY3JvbnltfGJ8Y2l0ZXxjb2RlfGRlbHxlbXxpfGluc3xrYmR8bGFiZWx8b3V0cHV0fHF8cnVieXxzfHNhbXB8c3BhbnxzdHJvbmd8c3VifHN1cHx0aW1lfHV8dHR8dmFyKSQvaTtzKENBYSwibm9ybWFsaXplU2libGluZ3MiKTtzKEdvYSwid2l0aFdyYXBwZXJzIik7cyhZb2EsImFkZFRvU2libGluZyIpO3MoS29hLCJjbG9zZVJpZ2h0Iik7cyhGS2UsImNsb3NlUmFuZ2UiKTtzKFpvYSwiY2xvc2VTbGljZSIpO1hvYT17dGhlYWQ6WyJ0YWJsZSJdLHRib2R5OlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sY2FwdGlvbjpbInRhYmxlIl0sY29sZ3JvdXA6WyJ0YWJsZSJdLGNvbDpbInRhYmxlIiwiY29sZ3JvdXAiXSx0cjpbInRhYmxlIiwidGJvZHkiXSx0ZDpbInRhYmxlIiwidGJvZHkiLCJ0ciJdLHRoOlsidGFibGUiLCJ0Ym9keSIsInRyIl19LFFvYT1udWxsO3MoSm9hLCJkZXRhY2hlZERvYyIpO0JLZT1udWxsO3MoX0FhLCJtYXliZVdyYXBUcnVzdGVkIik7cyhUQWEsInJlYWRIVE1MIik7cyhMQWEsInJlc3RvcmVSZXBsYWNlZFNwYWNlcyIpO3MoJEFhLCJhZGRDb250ZXh0Iik7Wmk9e30sWGk9e30sREFhPXt0b3VjaHN0YXJ0OiEwLHRvdWNobW92ZTohMH0sSEtlPWNsYXNze3N0YXRpY3tzKHRoaXMsIklucHV0U3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc2hpZnRLZXk9ITEsdGhpcy5tb3VzZURvd249bnVsbCx0aGlzLmxhc3RLZXlDb2RlPW51bGwsdGhpcy5sYXN0S2V5Q29kZVRpbWU9MCx0aGlzLmxhc3RDbGljaz17dGltZTowLHg6MCx5OjAsdHlwZToiIixidXR0b246MH0sdGhpcy5sYXN0U2VsZWN0aW9uT3JpZ2luPW51bGwsdGhpcy5sYXN0U2VsZWN0aW9uVGltZT0wLHRoaXMubGFzdElPU0VudGVyPTAsdGhpcy5sYXN0SU9TRW50ZXJGYWxsYmFja1RpbWVvdXQ9LTEsdGhpcy5sYXN0Rm9jdXM9MCx0aGlzLmxhc3RUb3VjaD0wLHRoaXMubGFzdENocm9tZURlbGV0ZT0wLHRoaXMuY29tcG9zaW5nPSExLHRoaXMuY29tcG9zaXRpb25Ob2RlPW51bGwsdGhpcy5jb21wb3NpbmdUaW1lb3V0PS0xLHRoaXMuY29tcG9zaXRpb25Ob2Rlcz1bXSx0aGlzLmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LHRoaXMuY29tcG9zaXRpb25JRD0xLHRoaXMuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsdGhpcy5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPTAsdGhpcy5kb21DaGFuZ2VDb3VudD0wLHRoaXMuZXZlbnRIYW5kbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuaGlkZVNlbGVjdGlvbkd1YXJkPW51bGx9fTtzKEFBYSwiaW5pdElucHV0Iik7cyh5NCwic2V0U2VsZWN0aW9uT3JpZ2luIik7cyhQQWEsImRlc3Ryb3lJbnB1dCIpO3MocUtlLCJlbnN1cmVMaXN0ZW5lcnMiKTtzKFZLZSwicnVuQ3VzdG9tSGFuZGxlciIpO3MoRUFhLCJldmVudEJlbG9uZ3NUb1ZpZXciKTtzKElBYSwiZGlzcGF0Y2hFdmVudCIpLFhpLmtleWRvd249KGEsZSk9PntsZXQgdD1lO2lmKGEuaW5wdXQuc2hpZnRLZXk9dC5rZXlDb2RlPT0xNnx8dC5zaGlmdEtleSwhdG5hKGEsdCkmJihhLmlucHV0Lmxhc3RLZXlDb2RlPXQua2V5Q29kZSxhLmlucHV0Lmxhc3RLZXlDb2RlVGltZT1EYXRlLm5vdygpLCEoYmMmJm9pJiZ0LmtleUNvZGU9PTEzKSkpaWYodC5rZXlDb2RlIT0yMjkmJmEuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLHltJiZ0LmtleUNvZGU9PTEzJiYhdC5jdHJsS2V5JiYhdC5hbHRLZXkmJiF0Lm1ldGFLZXkpe2xldCByPURhdGUubm93KCk7YS5pbnB1dC5sYXN0SU9TRW50ZXI9cixhLmlucHV0Lmxhc3RJT1NFbnRlckZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgpPT57YS5pbnB1dC5sYXN0SU9TRW50ZXI9PXImJihhLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixpPT5pKGEsVWYoMTMsIkVudGVyIikpKSxhLmlucHV0Lmxhc3RJT1NFbnRlcj0wKX0sMjAwKX1lbHNlIGEuc29tZVByb3AoImhhbmRsZUtleURvd24iLHI9PnIoYSx0KSl8fFNBYShhLHQpP3QucHJldmVudERlZmF1bHQoKTp5NChhLCJrZXkiKX0sWGkua2V5dXA9KGEsZSk9PntlLmtleUNvZGU9PTE2JiYoYS5pbnB1dC5zaGlmdEtleT0hMSl9LFhpLmtleXByZXNzPShhLGUpPT57bGV0IHQ9ZTtpZih0bmEoYSx0KXx8IXQuY2hhckNvZGV8fHQuY3RybEtleSYmIXQuYWx0S2V5fHxPbiYmdC5tZXRhS2V5KXJldHVybjtpZihhLnNvbWVQcm9wKCJoYW5kbGVLZXlQcmVzcyIsaT0+aShhLHQpKSl7dC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1sZXQgcj1hLnN0YXRlLnNlbGVjdGlvbjtpZighKHIgaW5zdGFuY2VvZiBOdCl8fCFyLiRmcm9tLnNhbWVQYXJlbnQoci4kdG8pKXtsZXQgaT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGUpLG89cygoKT0+YS5zdGF0ZS50ci5pbnNlcnRUZXh0KGkpLnNjcm9sbEludG9WaWV3KCksImRlZmx0Iik7IS9bXHJcbl0vLnRlc3QoaSkmJiFhLnNvbWVQcm9wKCJoYW5kbGVUZXh0SW5wdXQiLG49Pm4oYSxyLiRmcm9tLnBvcyxyLiR0by5wb3MsaSxvKSkmJmEuZGlzcGF0Y2gobygpKSx0LnByZXZlbnREZWZhdWx0KCl9fTtzKEhhZSwiZXZlbnRDb29yZHMiKTtzKE5BYSwiaXNOZWFyIik7cyhqS2UsInJ1bkhhbmRsZXJPbkNvbnRleHQiKTtzKFNtLCJ1cGRhdGVTZWxlY3Rpb24iKTtzKFJBYSwic2VsZWN0Q2xpY2tlZExlYWYiKTtzKE9BYSwic2VsZWN0Q2xpY2tlZE5vZGUiKTtzKEZBYSwiaGFuZGxlU2luZ2xlQ2xpY2siKTtzKEJBYSwiaGFuZGxlRG91YmxlQ2xpY2siKTtzKEhBYSwiaGFuZGxlVHJpcGxlQ2xpY2siKTtzKHFBYSwiZGVmYXVsdFRyaXBsZUNsaWNrIik7cyhVS2UsImZvcmNlRE9NRmx1c2giKTtlbmE9T24/Im1ldGFLZXkiOiJjdHJsS2V5IjtaaS5tb3VzZWRvd249KGEsZSk9PntsZXQgdD1lO2EuaW5wdXQuc2hpZnRLZXk9dC5zaGlmdEtleTtsZXQgcj1VS2UoYSksaT1EYXRlLm5vdygpLG89InNpbmdsZUNsaWNrIjtpLWEuaW5wdXQubGFzdENsaWNrLnRpbWU8NTAwJiZOQWEodCxhLmlucHV0Lmxhc3RDbGljaykmJiF0W2VuYV0mJmEuaW5wdXQubGFzdENsaWNrLmJ1dHRvbj09dC5idXR0b24mJihhLmlucHV0Lmxhc3RDbGljay50eXBlPT0ic2luZ2xlQ2xpY2siP289ImRvdWJsZUNsaWNrIjphLmlucHV0Lmxhc3RDbGljay50eXBlPT0iZG91YmxlQ2xpY2siJiYobz0idHJpcGxlQ2xpY2siKSksYS5pbnB1dC5sYXN0Q2xpY2s9e3RpbWU6aSx4OnQuY2xpZW50WCx5OnQuY2xpZW50WSx0eXBlOm8sYnV0dG9uOnQuYnV0dG9ufTtsZXQgbj1hLnBvc0F0Q29vcmRzKEhhZSh0KSk7biYmKG89PSJzaW5nbGVDbGljayI/KGEuaW5wdXQubW91c2VEb3duJiZhLmlucHV0Lm1vdXNlRG93bi5kb25lKCksYS5pbnB1dC5tb3VzZURvd249bmV3IFdLZShhLG4sdCwhIXIpKToobz09ImRvdWJsZUNsaWNrIj9CQWE6SEFhKShhLG4ucG9zLG4uaW5zaWRlLHQpP3QucHJldmVudERlZmF1bHQoKTp5NChhLCJwb2ludGVyIikpfTtXS2U9Y2xhc3N7c3RhdGlje3ModGhpcywiTW91c2VEb3duIil9Y29uc3RydWN0b3IoZSx0LHIsaSl7dGhpcy52aWV3PWUsdGhpcy5wb3M9dCx0aGlzLmV2ZW50PXIsdGhpcy5mbHVzaGVkPWksdGhpcy5kZWxheWVkU2VsZWN0aW9uU3luYz0hMSx0aGlzLm1pZ2h0RHJhZz1udWxsLHRoaXMuc3RhcnREb2M9ZS5zdGF0ZS5kb2MsdGhpcy5zZWxlY3ROb2RlPSEhcltlbmFdLHRoaXMuYWxsb3dEZWZhdWx0PXIuc2hpZnRLZXk7bGV0IG8sbjtpZih0Lmluc2lkZT4tMSlvPWUuc3RhdGUuZG9jLm5vZGVBdCh0Lmluc2lkZSksbj10Lmluc2lkZTtlbHNle2xldCBwPWUuc3RhdGUuZG9jLnJlc29sdmUodC5wb3MpO289cC5wYXJlbnQsbj1wLmRlcHRoP3AuYmVmb3JlKCk6MH1sZXQgbD1pP251bGw6ci50YXJnZXQsZD1sP2UuZG9jVmlldy5uZWFyZXN0RGVzYyhsLCEwKTpudWxsO3RoaXMudGFyZ2V0PWQmJmQubm9kZURPTS5ub2RlVHlwZT09MT9kLm5vZGVET006bnVsbDtsZXR7c2VsZWN0aW9uOmN9PWUuc3RhdGU7ci5idXR0b249PTAmJihvLnR5cGUuc3BlYy5kcmFnZ2FibGUmJm8udHlwZS5zcGVjLnNlbGVjdGFibGUhPT0hMXx8YyBpbnN0YW5jZW9mIGt0JiZjLmZyb208PW4mJmMudG8+bikmJih0aGlzLm1pZ2h0RHJhZz17bm9kZTpvLHBvczpuLGFkZEF0dHI6ISEodGhpcy50YXJnZXQmJiF0aGlzLnRhcmdldC5kcmFnZ2FibGUpLHNldFVuZWRpdGFibGU6ISEodGhpcy50YXJnZXQmJlJuJiYhdGhpcy50YXJnZXQuaGFzQXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSl9KSx0aGlzLnRhcmdldCYmdGhpcy5taWdodERyYWcmJih0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyfHx0aGlzLm1pZ2h0RHJhZy5zZXRVbmVkaXRhYmxlKSYmKHRoaXMudmlldy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5taWdodERyYWcuYWRkQXR0ciYmKHRoaXMudGFyZ2V0LmRyYWdnYWJsZT0hMCksdGhpcy5taWdodERyYWcuc2V0VW5lZGl0YWJsZSYmc2V0VGltZW91dCgoKT0+e3RoaXMudmlldy5pbnB1dC5tb3VzZURvd249PXRoaXMmJnRoaXMudGFyZ2V0LnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwiZmFsc2UiKX0sMjApLHRoaXMudmlldy5kb21PYnNlcnZlci5zdGFydCgpKSxlLnJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy51cD10aGlzLnVwLmJpbmQodGhpcykpLGUucm9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZT10aGlzLm1vdmUuYmluZCh0aGlzKSkseTQoZSwicG9pbnRlciIpfWRvbmUoKXt0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnVwKSx0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZSksdGhpcy5taWdodERyYWcmJnRoaXMudGFyZ2V0JiYodGhpcy52aWV3LmRvbU9ic2VydmVyLnN0b3AoKSx0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyJiZ0aGlzLnRhcmdldC5yZW1vdmVBdHRyaWJ1dGUoImRyYWdnYWJsZSIpLHRoaXMubWlnaHREcmFnLnNldFVuZWRpdGFibGUmJnRoaXMudGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiksdGhpcy52aWV3LmRvbU9ic2VydmVyLnN0YXJ0KCkpLHRoaXMuZGVsYXllZFNlbGVjdGlvblN5bmMmJnNldFRpbWVvdXQoKCk9PnhjKHRoaXMudmlldykpLHRoaXMudmlldy5pbnB1dC5tb3VzZURvd249bnVsbH11cChlKXtpZih0aGlzLmRvbmUoKSwhdGhpcy52aWV3LmRvbS5jb250YWlucyhlLnRhcmdldCkpcmV0dXJuO2xldCB0PXRoaXMucG9zO3RoaXMudmlldy5zdGF0ZS5kb2MhPXRoaXMuc3RhcnREb2MmJih0PXRoaXMudmlldy5wb3NBdENvb3JkcyhIYWUoZSkpKSx0aGlzLnVwZGF0ZUFsbG93RGVmYXVsdChlKSx0aGlzLmFsbG93RGVmYXVsdHx8IXQ/eTQodGhpcy52aWV3LCJwb2ludGVyIik6RkFhKHRoaXMudmlldyx0LnBvcyx0Lmluc2lkZSxlLHRoaXMuc2VsZWN0Tm9kZSk/ZS5wcmV2ZW50RGVmYXVsdCgpOmUuYnV0dG9uPT0wJiYodGhpcy5mbHVzaGVkfHxOaSYmdGhpcy5taWdodERyYWcmJiF0aGlzLm1pZ2h0RHJhZy5ub2RlLmlzQXRvbXx8b2kmJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUmJk1hdGgubWluKE1hdGguYWJzKHQucG9zLXRoaXMudmlldy5zdGF0ZS5zZWxlY3Rpb24uZnJvbSksTWF0aC5hYnModC5wb3MtdGhpcy52aWV3LnN0YXRlLnNlbGVjdGlvbi50bykpPD0yKT8oU20odGhpcy52aWV3LEV0Lm5lYXIodGhpcy52aWV3LnN0YXRlLmRvYy5yZXNvbHZlKHQucG9zKSksInBvaW50ZXIiKSxlLnByZXZlbnREZWZhdWx0KCkpOnk0KHRoaXMudmlldywicG9pbnRlciIpfW1vdmUoZSl7dGhpcy51cGRhdGVBbGxvd0RlZmF1bHQoZSkseTQodGhpcy52aWV3LCJwb2ludGVyIiksZS5idXR0b25zPT0wJiZ0aGlzLmRvbmUoKX11cGRhdGVBbGxvd0RlZmF1bHQoZSl7IXRoaXMuYWxsb3dEZWZhdWx0JiYoTWF0aC5hYnModGhpcy5ldmVudC54LWUuY2xpZW50WCk+NHx8TWF0aC5hYnModGhpcy5ldmVudC55LWUuY2xpZW50WSk+NCkmJih0aGlzLmFsbG93RGVmYXVsdD0hMCl9fTtaaS50b3VjaHN0YXJ0PWE9PnthLmlucHV0Lmxhc3RUb3VjaD1EYXRlLm5vdygpLFVLZShhKSx5NChhLCJwb2ludGVyIil9LFppLnRvdWNobW92ZT1hPT57YS5pbnB1dC5sYXN0VG91Y2g9RGF0ZS5ub3coKSx5NChhLCJwb2ludGVyIil9LFppLmNvbnRleHRtZW51PWE9PlVLZShhKTtzKHRuYSwiaW5Pck5lYXJDb21wb3NpdGlvbiIpO1ZBYT1iYz81ZTM6LTE7WGkuY29tcG9zaXRpb25zdGFydD1YaS5jb21wb3NpdGlvbnVwZGF0ZT1hPT57aWYoIWEuY29tcG9zaW5nKXthLmRvbU9ic2VydmVyLmZsdXNoKCk7bGV0e3N0YXRlOmV9PWEsdD1lLnNlbGVjdGlvbi4kdG87aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBOdCYmKGUuc3RvcmVkTWFya3N8fCF0LnRleHRPZmZzZXQmJnQucGFyZW50T2Zmc2V0JiZ0Lm5vZGVCZWZvcmUubWFya3Muc29tZShyPT5yLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSl8fG9pJiZtb2EmJmpBYShhKSkpYS5tYXJrQ3Vyc29yPWEuc3RhdGUuc3RvcmVkTWFya3N8fHQubWFya3MoKSxhVyhhLCEwKSxhLm1hcmtDdXJzb3I9bnVsbDtlbHNlIGlmKGFXKGEsIWUuc2VsZWN0aW9uLmVtcHR5KSxSbiYmZS5zZWxlY3Rpb24uZW1wdHkmJnQucGFyZW50T2Zmc2V0JiYhdC50ZXh0T2Zmc2V0JiZ0Lm5vZGVCZWZvcmUubWFya3MubGVuZ3RoKXtsZXQgcj1hLmRvbVNlbGVjdGlvblJhbmdlKCk7Zm9yKGxldCBpPXIuZm9jdXNOb2RlLG89ci5mb2N1c09mZnNldDtpJiZpLm5vZGVUeXBlPT0xJiZvIT0wOyl7bGV0IG49bzwwP2kubGFzdENoaWxkOmkuY2hpbGROb2Rlc1tvLTFdO2lmKCFuKWJyZWFrO2lmKG4ubm9kZVR5cGU9PTMpe2xldCBsPWEuZG9tU2VsZWN0aW9uKCk7bCYmbC5jb2xsYXBzZShuLG4ubm9kZVZhbHVlLmxlbmd0aCk7YnJlYWt9ZWxzZSBpPW4sbz0tMX19YS5pbnB1dC5jb21wb3Npbmc9ITB9YW5hKGEsVkFhKX07cyhqQWEsInNlbGVjdGlvbkJlZm9yZVVuZWRpdGFibGUiKSxYaS5jb21wb3NpdGlvbmVuZD0oYSxlKT0+e2EuY29tcG9zaW5nJiYoYS5pbnB1dC5jb21wb3Npbmc9ITEsYS5pbnB1dC5jb21wb3NpdGlvbkVuZGVkQXQ9ZS50aW1lU3RhbXAsYS5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPWEuZG9tT2JzZXJ2ZXIucGVuZGluZ1JlY29yZHMoKS5sZW5ndGg/YS5pbnB1dC5jb21wb3NpdGlvbklEOjAsYS5pbnB1dC5jb21wb3NpdGlvbk5vZGU9bnVsbCxhLmlucHV0LmJhZFNhZmFyaUNvbXBvc2l0aW9uP2EuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpOmEuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlcyYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+YS5kb21PYnNlcnZlci5mbHVzaCgpKSxhLmlucHV0LmNvbXBvc2l0aW9uSUQrKyxhbmEoYSwyMCkpfTtzKGFuYSwic2NoZWR1bGVDb21wb3NlRW5kIik7cyhybmEsImNsZWFyQ29tcG9zaXRpb24iKTtzKFVBYSwiZmluZENvbXBvc2l0aW9uTm9kZSIpO3MoV0FhLCJ0aW1lc3RhbXBGcm9tQ3VzdG9tRXZlbnQiKTtzKGFXLCJlbmRDb21wb3NpdGlvbiIpO3MoR0FhLCJjYXB0dXJlQ29weSIpO3JXPVJvJiZnNDwxNXx8eW0mJkdEYTw2MDQ7WmkuY29weT1YaS5jdXQ9KGEsZSk9PntsZXQgdD1lLHI9YS5zdGF0ZS5zZWxlY3Rpb24saT10LnR5cGU9PSJjdXQiO2lmKHIuZW1wdHkpcmV0dXJuO2xldCBvPXJXP251bGw6dC5jbGlwYm9hcmREYXRhLG49ci5jb250ZW50KCkse2RvbTpsLHRleHQ6ZH09UktlKGEsbik7bz8odC5wcmV2ZW50RGVmYXVsdCgpLG8uY2xlYXJEYXRhKCksby5zZXREYXRhKCJ0ZXh0L2h0bWwiLGwuaW5uZXJIVE1MKSxvLnNldERhdGEoInRleHQvcGxhaW4iLGQpKTpHQWEoYSxsKSxpJiZhLmRpc3BhdGNoKGEuc3RhdGUudHIuZGVsZXRlU2VsZWN0aW9uKCkuc2Nyb2xsSW50b1ZpZXcoKS5zZXRNZXRhKCJ1aUV2ZW50IiwiY3V0IikpfTtzKFlBYSwic2xpY2VTaW5nbGVOb2RlIik7cyhLQWEsImNhcHR1cmVQYXN0ZSIpO3Moc1csImRvUGFzdGUiKTtzKHNuYSwiZ2V0VGV4dCIpLFhpLnBhc3RlPShhLGUpPT57bGV0IHQ9ZTtpZihhLmNvbXBvc2luZyYmIWJjKXJldHVybjtsZXQgcj1yVz9udWxsOnQuY2xpcGJvYXJkRGF0YSxpPWEuaW5wdXQuc2hpZnRLZXkmJmEuaW5wdXQubGFzdEtleUNvZGUhPTQ1O3ImJnNXKGEsc25hKHIpLHIuZ2V0RGF0YSgidGV4dC9odG1sIiksaSx0KT90LnByZXZlbnREZWZhdWx0KCk6S0FhKGEsdCl9O3FhZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJEcmFnZ2luZyIpfWNvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLnNsaWNlPWUsdGhpcy5tb3ZlPXQsdGhpcy5ub2RlPXJ9fSxaQWE9T24/ImFsdEtleSI6ImN0cmxLZXkiO3MoaW5hLCJkcmFnTW92ZXMiKSxaaS5kcmFnc3RhcnQ9KGEsZSk9PntsZXQgdD1lLHI9YS5pbnB1dC5tb3VzZURvd247aWYociYmci5kb25lKCksIXQuZGF0YVRyYW5zZmVyKXJldHVybjtsZXQgaT1hLnN0YXRlLnNlbGVjdGlvbixvPWkuZW1wdHk/bnVsbDphLnBvc0F0Q29vcmRzKEhhZSh0KSksbjtpZighKG8mJm8ucG9zPj1pLmZyb20mJm8ucG9zPD0oaSBpbnN0YW5jZW9mIGt0P2kudG8tMTppLnRvKSkpe2lmKHImJnIubWlnaHREcmFnKW49a3QuY3JlYXRlKGEuc3RhdGUuZG9jLHIubWlnaHREcmFnLnBvcyk7ZWxzZSBpZih0LnRhcmdldCYmdC50YXJnZXQubm9kZVR5cGU9PTEpe2xldCB1PWEuZG9jVmlldy5uZWFyZXN0RGVzYyh0LnRhcmdldCwhMCk7dSYmdS5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUmJnUhPWEuZG9jVmlldyYmKG49a3QuY3JlYXRlKGEuc3RhdGUuZG9jLHUucG9zQmVmb3JlKSl9fWxldCBsPShufHxhLnN0YXRlLnNlbGVjdGlvbikuY29udGVudCgpLHtkb206ZCx0ZXh0OmMsc2xpY2U6cH09UktlKGEsbCk7KCF0LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGh8fCFvaXx8aG9hPjEyMCkmJnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpLHQuZGF0YVRyYW5zZmVyLnNldERhdGEoclc/IlRleHQiOiJ0ZXh0L2h0bWwiLGQuaW5uZXJIVE1MKSx0LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJjb3B5TW92ZSIscld8fHQuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLGMpLGEuZHJhZ2dpbmc9bmV3IHFhZShwLGluYShhLHQpLG4pfSxaaS5kcmFnZW5kPWE9PntsZXQgZT1hLmRyYWdnaW5nO3dpbmRvdy5zZXRUaW1lb3V0KCgpPT57YS5kcmFnZ2luZz09ZSYmKGEuZHJhZ2dpbmc9bnVsbCl9LDUwKX0sWGkuZHJhZ292ZXI9WGkuZHJhZ2VudGVyPShhLGUpPT5lLnByZXZlbnREZWZhdWx0KCksWGkuZHJvcD0oYSxlKT0+e3RyeXtYQWEoYSxlLGEuZHJhZ2dpbmcpfWZpbmFsbHl7YS5kcmFnZ2luZz1udWxsfX07cyhYQWEsImhhbmRsZURyb3AiKSxaaS5mb2N1cz1hPT57YS5pbnB1dC5sYXN0Rm9jdXM9RGF0ZS5ub3coKSxhLmZvY3VzZWR8fChhLmRvbU9ic2VydmVyLnN0b3AoKSxhLmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1mb2N1c2VkIiksYS5kb21PYnNlcnZlci5zdGFydCgpLGEuZm9jdXNlZD0hMCxzZXRUaW1lb3V0KCgpPT57YS5kb2NWaWV3JiZhLmhhc0ZvY3VzKCkmJiFhLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uZXEoYS5kb21TZWxlY3Rpb25SYW5nZSgpKSYmeGMoYSl9LDIwKSl9LFppLmJsdXI9KGEsZSk9PntsZXQgdD1lO2EuZm9jdXNlZCYmKGEuZG9tT2JzZXJ2ZXIuc3RvcCgpLGEuZG9tLmNsYXNzTGlzdC5yZW1vdmUoIlByb3NlTWlycm9yLWZvY3VzZWQiKSxhLmRvbU9ic2VydmVyLnN0YXJ0KCksdC5yZWxhdGVkVGFyZ2V0JiZhLmRvbS5jb250YWlucyh0LnJlbGF0ZWRUYXJnZXQpJiZhLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uY2xlYXIoKSxhLmZvY3VzZWQ9ITEpfSxaaS5iZWZvcmVpbnB1dD0oYSxlKT0+e2lmKG9pJiZiYyYmZS5pbnB1dFR5cGU9PSJkZWxldGVDb250ZW50QmFja3dhcmQiKXthLmRvbU9ic2VydmVyLmZsdXNoU29vbigpO2xldHtkb21DaGFuZ2VDb3VudDpyfT1hLmlucHV0O3NldFRpbWVvdXQoKCk9PntpZihhLmlucHV0LmRvbUNoYW5nZUNvdW50IT1yfHwoYS5kb20uYmx1cigpLGEuZm9jdXMoKSxhLnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixvPT5vKGEsVWYoOCwiQmFja3NwYWNlIikpKSkpcmV0dXJuO2xldHskY3Vyc29yOml9PWEuc3RhdGUuc2VsZWN0aW9uO2kmJmkucG9zPjAmJmEuZGlzcGF0Y2goYS5zdGF0ZS50ci5kZWxldGUoaS5wb3MtMSxpLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSl9LDUwKX19O2ZvcihsZXQgYSBpbiBYaSlaaVthXT1YaVthXTtzKGlXLCJjb21wYXJlT2JqcyIpO1ZhZT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIldpZGdldFR5cGUiKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudG9ET009ZSx0aGlzLnNwZWM9dHx8WmYsdGhpcy5zaWRlPXRoaXMuc3BlYy5zaWRlfHwwfW1hcChlLHQscixpKXtsZXR7cG9zOm8sZGVsZXRlZDpufT1lLm1hcFJlc3VsdCh0LmZyb20raSx0aGlzLnNpZGU8MD8tMToxKTtyZXR1cm4gbj9udWxsOm5ldyBSMShvLXIsby1yLHRoaXMpfXZhbGlkKCl7cmV0dXJuITB9ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fGUgaW5zdGFuY2VvZiBhJiYodGhpcy5zcGVjLmtleSYmdGhpcy5zcGVjLmtleT09ZS5zcGVjLmtleXx8dGhpcy50b0RPTT09ZS50b0RPTSYmaVcodGhpcy5zcGVjLGUuc3BlYykpfWRlc3Ryb3koZSl7dGhpcy5zcGVjLmRlc3Ryb3kmJnRoaXMuc3BlYy5kZXN0cm95KGUpfX0sS2Y9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJJbmxpbmVUeXBlIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmF0dHJzPWUsdGhpcy5zcGVjPXR8fFpmfW1hcChlLHQscixpKXtsZXQgbz1lLm1hcCh0LmZyb20raSx0aGlzLnNwZWMuaW5jbHVzaXZlU3RhcnQ/LTE6MSktcixuPWUubWFwKHQudG8raSx0aGlzLnNwZWMuaW5jbHVzaXZlRW5kPzE6LTEpLXI7cmV0dXJuIG8+PW4/bnVsbDpuZXcgUjEobyxuLHRoaXMpfXZhbGlkKGUsdCl7cmV0dXJuIHQuZnJvbTx0LnRvfWVxKGUpe3JldHVybiB0aGlzPT1lfHxlIGluc3RhbmNlb2YgYSYmaVcodGhpcy5hdHRycyxlLmF0dHJzKSYmaVcodGhpcy5zcGVjLGUuc3BlYyl9c3RhdGljIGlzKGUpe3JldHVybiBlLnR5cGUgaW5zdGFuY2VvZiBhfWRlc3Ryb3koKXt9fSxHS2U9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJOb2RlVHlwZSIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5hdHRycz1lLHRoaXMuc3BlYz10fHxaZn1tYXAoZSx0LHIsaSl7bGV0IG89ZS5tYXBSZXN1bHQodC5mcm9tK2ksMSk7aWYoby5kZWxldGVkKXJldHVybiBudWxsO2xldCBuPWUubWFwUmVzdWx0KHQudG8raSwtMSk7cmV0dXJuIG4uZGVsZXRlZHx8bi5wb3M8PW8ucG9zP251bGw6bmV3IFIxKG8ucG9zLXIsbi5wb3Mtcix0aGlzKX12YWxpZChlLHQpe2xldHtpbmRleDpyLG9mZnNldDppfT1lLmNvbnRlbnQuZmluZEluZGV4KHQuZnJvbSksbztyZXR1cm4gaT09dC5mcm9tJiYhKG89ZS5jaGlsZChyKSkuaXNUZXh0JiZpK28ubm9kZVNpemU9PXQudG99ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fGUgaW5zdGFuY2VvZiBhJiZpVyh0aGlzLmF0dHJzLGUuYXR0cnMpJiZpVyh0aGlzLnNwZWMsZS5zcGVjKX1kZXN0cm95KCl7fX0sUjE9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJEZWNvcmF0aW9uIil9Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMuZnJvbT1lLHRoaXMudG89dCx0aGlzLnR5cGU9cn1jb3B5KGUsdCl7cmV0dXJuIG5ldyBhKGUsdCx0aGlzLnR5cGUpfWVxKGUsdD0wKXtyZXR1cm4gdGhpcy50eXBlLmVxKGUudHlwZSkmJnRoaXMuZnJvbSt0PT1lLmZyb20mJnRoaXMudG8rdD09ZS50b31tYXAoZSx0LHIpe3JldHVybiB0aGlzLnR5cGUubWFwKGUsdGhpcyx0LHIpfXN0YXRpYyB3aWRnZXQoZSx0LHIpe3JldHVybiBuZXcgYShlLGUsbmV3IFZhZSh0LHIpKX1zdGF0aWMgaW5saW5lKGUsdCxyLGkpe3JldHVybiBuZXcgYShlLHQsbmV3IEtmKHIsaSkpfXN0YXRpYyBub2RlKGUsdCxyLGkpe3JldHVybiBuZXcgYShlLHQsbmV3IEdLZShyLGkpKX1nZXQgc3BlYygpe3JldHVybiB0aGlzLnR5cGUuc3BlY31nZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMudHlwZSBpbnN0YW5jZW9mIEtmfWdldCB3aWRnZXQoKXtyZXR1cm4gdGhpcy50eXBlIGluc3RhbmNlb2YgVmFlfX0sem09W10sWmY9e30sUWk9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJEZWNvcmF0aW9uU2V0Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLmxvY2FsPWUubGVuZ3RoP2U6em0sdGhpcy5jaGlsZHJlbj10Lmxlbmd0aD90OnptfXN0YXRpYyBjcmVhdGUoZSx0KXtyZXR1cm4gdC5sZW5ndGg/VWFlKHQsZSwwLFpmKTpSaX1maW5kKGUsdCxyKXtsZXQgaT1bXTtyZXR1cm4gdGhpcy5maW5kSW5uZXIoZT8/MCx0Pz8xZTksaSwwLHIpLGl9ZmluZElubmVyKGUsdCxyLGksbyl7Zm9yKGxldCBuPTA7bjx0aGlzLmxvY2FsLmxlbmd0aDtuKyspe2xldCBsPXRoaXMubG9jYWxbbl07bC5mcm9tPD10JiZsLnRvPj1lJiYoIW98fG8obC5zcGVjKSkmJnIucHVzaChsLmNvcHkobC5mcm9tK2ksbC50bytpKSl9Zm9yKGxldCBuPTA7bjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtuKz0zKWlmKHRoaXMuY2hpbGRyZW5bbl08dCYmdGhpcy5jaGlsZHJlbltuKzFdPmUpe2xldCBsPXRoaXMuY2hpbGRyZW5bbl0rMTt0aGlzLmNoaWxkcmVuW24rMl0uZmluZElubmVyKGUtbCx0LWwscixpK2wsbyl9fW1hcChlLHQscil7cmV0dXJuIHRoaXM9PVJpfHxlLm1hcHMubGVuZ3RoPT0wP3RoaXM6dGhpcy5tYXBJbm5lcihlLHQsMCwwLHJ8fFpmKX1tYXBJbm5lcihlLHQscixpLG8pe2xldCBuO2ZvcihsZXQgbD0wO2w8dGhpcy5sb2NhbC5sZW5ndGg7bCsrKXtsZXQgZD10aGlzLmxvY2FsW2xdLm1hcChlLHIsaSk7ZCYmZC50eXBlLnZhbGlkKHQsZCk/KG58fChuPVtdKSkucHVzaChkKTpvLm9uUmVtb3ZlJiZvLm9uUmVtb3ZlKHRoaXMubG9jYWxbbF0uc3BlYyl9cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoP1FBYSh0aGlzLmNoaWxkcmVuLG58fFtdLGUsdCxyLGksbyk6bj9uZXcgYShuLnNvcnQoWGYpLHptKTpSaX1hZGQoZSx0KXtyZXR1cm4gdC5sZW5ndGg/dGhpcz09Umk/YS5jcmVhdGUoZSx0KTp0aGlzLmFkZElubmVyKGUsdCwwKTp0aGlzfWFkZElubmVyKGUsdCxyKXtsZXQgaSxvPTA7ZS5mb3JFYWNoKChsLGQpPT57bGV0IGM9ZCtyLHA7aWYocD1ubmEodCxsLGMpKXtmb3IoaXx8KGk9dGhpcy5jaGlsZHJlbi5zbGljZSgpKTtvPGkubGVuZ3RoJiZpW29dPGQ7KW8rPTM7aVtvXT09ZD9pW28rMl09aVtvKzJdLmFkZElubmVyKGwscCxjKzEpOmkuc3BsaWNlKG8sMCxkLGQrbC5ub2RlU2l6ZSxVYWUocCxsLGMrMSxaZikpLG8rPTN9fSk7bGV0IG49b25hKG8/bG5hKHQpOnQsLXIpO2ZvcihsZXQgbD0wO2w8bi5sZW5ndGg7bCsrKW5bbF0udHlwZS52YWxpZChlLG5bbF0pfHxuLnNwbGljZShsLS0sMSk7cmV0dXJuIG5ldyBhKG4ubGVuZ3RoP3RoaXMubG9jYWwuY29uY2F0KG4pLnNvcnQoWGYpOnRoaXMubG9jYWwsaXx8dGhpcy5jaGlsZHJlbil9cmVtb3ZlKGUpe3JldHVybiBlLmxlbmd0aD09MHx8dGhpcz09Umk/dGhpczp0aGlzLnJlbW92ZUlubmVyKGUsMCl9cmVtb3ZlSW5uZXIoZSx0KXtsZXQgcj10aGlzLmNoaWxkcmVuLGk9dGhpcy5sb2NhbDtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rPTMpe2xldCBuLGw9cltvXSt0LGQ9cltvKzFdK3Q7Zm9yKGxldCBwPTAsdTtwPGUubGVuZ3RoO3ArKykodT1lW3BdKSYmdS5mcm9tPmwmJnUudG88ZCYmKGVbcF09bnVsbCwobnx8KG49W10pKS5wdXNoKHUpKTtpZighbiljb250aW51ZTtyPT10aGlzLmNoaWxkcmVuJiYocj10aGlzLmNoaWxkcmVuLnNsaWNlKCkpO2xldCBjPXJbbysyXS5yZW1vdmVJbm5lcihuLGwrMSk7YyE9Umk/cltvKzJdPWM6KHIuc3BsaWNlKG8sMyksby09Myl9aWYoaS5sZW5ndGgpe2ZvcihsZXQgbz0wLG47bzxlLmxlbmd0aDtvKyspaWYobj1lW29dKWZvcihsZXQgbD0wO2w8aS5sZW5ndGg7bCsrKWlbbF0uZXEobix0KSYmKGk9PXRoaXMubG9jYWwmJihpPXRoaXMubG9jYWwuc2xpY2UoKSksaS5zcGxpY2UobC0tLDEpKX1yZXR1cm4gcj09dGhpcy5jaGlsZHJlbiYmaT09dGhpcy5sb2NhbD90aGlzOmkubGVuZ3RofHxyLmxlbmd0aD9uZXcgYShpLHIpOlJpfWZvckNoaWxkKGUsdCl7aWYodGhpcz09UmkpcmV0dXJuIHRoaXM7aWYodC5pc0xlYWYpcmV0dXJuIGEuZW1wdHk7bGV0IHIsaTtmb3IobGV0IGw9MDtsPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2wrPTMpaWYodGhpcy5jaGlsZHJlbltsXT49ZSl7dGhpcy5jaGlsZHJlbltsXT09ZSYmKHI9dGhpcy5jaGlsZHJlbltsKzJdKTticmVha31sZXQgbz1lKzEsbj1vK3QuY29udGVudC5zaXplO2ZvcihsZXQgbD0wO2w8dGhpcy5sb2NhbC5sZW5ndGg7bCsrKXtsZXQgZD10aGlzLmxvY2FsW2xdO2lmKGQuZnJvbTxuJiZkLnRvPm8mJmQudHlwZSBpbnN0YW5jZW9mIEtmKXtsZXQgYz1NYXRoLm1heChvLGQuZnJvbSktbyxwPU1hdGgubWluKG4sZC50byktbztjPHAmJihpfHwoaT1bXSkpLnB1c2goZC5jb3B5KGMscCkpfX1pZihpKXtsZXQgbD1uZXcgYShpLnNvcnQoWGYpLHptKTtyZXR1cm4gcj9uZXcgamFlKFtsLHJdKTpsfXJldHVybiByfHxSaX1lcShlKXtpZih0aGlzPT1lKXJldHVybiEwO2lmKCEoZSBpbnN0YW5jZW9mIGEpfHx0aGlzLmxvY2FsLmxlbmd0aCE9ZS5sb2NhbC5sZW5ndGh8fHRoaXMuY2hpbGRyZW4ubGVuZ3RoIT1lLmNoaWxkcmVuLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMubG9jYWwubGVuZ3RoO3QrKylpZighdGhpcy5sb2NhbFt0XS5lcShlLmxvY2FsW3RdKSlyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3QrPTMpaWYodGhpcy5jaGlsZHJlblt0XSE9ZS5jaGlsZHJlblt0XXx8dGhpcy5jaGlsZHJlblt0KzFdIT1lLmNoaWxkcmVuW3QrMV18fCF0aGlzLmNoaWxkcmVuW3QrMl0uZXEoZS5jaGlsZHJlblt0KzJdKSlyZXR1cm4hMTtyZXR1cm4hMH1sb2NhbHMoZSl7cmV0dXJuIFlLZSh0aGlzLmxvY2Fsc0lubmVyKGUpKX1sb2NhbHNJbm5lcihlKXtpZih0aGlzPT1SaSlyZXR1cm4gem07aWYoZS5pbmxpbmVDb250ZW50fHwhdGhpcy5sb2NhbC5zb21lKEtmLmlzKSlyZXR1cm4gdGhpcy5sb2NhbDtsZXQgdD1bXTtmb3IobGV0IHI9MDtyPHRoaXMubG9jYWwubGVuZ3RoO3IrKyl0aGlzLmxvY2FsW3JdLnR5cGUgaW5zdGFuY2VvZiBLZnx8dC5wdXNoKHRoaXMubG9jYWxbcl0pO3JldHVybiB0fWZvckVhY2hTZXQoZSl7ZSh0aGlzKX19O1FpLmVtcHR5PW5ldyBRaShbXSxbXSksUWkucmVtb3ZlT3ZlcmxhcD1ZS2U7Umk9UWkuZW1wdHksamFlPWNsYXNzIGF7c3RhdGlje3ModGhpcywiRGVjb3JhdGlvbkdyb3VwIil9Y29uc3RydWN0b3IoZSl7dGhpcy5tZW1iZXJzPWV9bWFwKGUsdCl7bGV0IHI9dGhpcy5tZW1iZXJzLm1hcChpPT5pLm1hcChlLHQsWmYpKTtyZXR1cm4gYS5mcm9tKHIpfWZvckNoaWxkKGUsdCl7aWYodC5pc0xlYWYpcmV0dXJuIFFpLmVtcHR5O2xldCByPVtdO2ZvcihsZXQgaT0wO2k8dGhpcy5tZW1iZXJzLmxlbmd0aDtpKyspe2xldCBvPXRoaXMubWVtYmVyc1tpXS5mb3JDaGlsZChlLHQpO28hPVJpJiYobyBpbnN0YW5jZW9mIGE/cj1yLmNvbmNhdChvLm1lbWJlcnMpOnIucHVzaChvKSl9cmV0dXJuIGEuZnJvbShyKX1lcShlKXtpZighKGUgaW5zdGFuY2VvZiBhKXx8ZS5tZW1iZXJzLmxlbmd0aCE9dGhpcy5tZW1iZXJzLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PHRoaXMubWVtYmVycy5sZW5ndGg7dCsrKWlmKCF0aGlzLm1lbWJlcnNbdF0uZXEoZS5tZW1iZXJzW3RdKSlyZXR1cm4hMTtyZXR1cm4hMH1sb2NhbHMoZSl7bGV0IHQscj0hMDtmb3IobGV0IGk9MDtpPHRoaXMubWVtYmVycy5sZW5ndGg7aSsrKXtsZXQgbz10aGlzLm1lbWJlcnNbaV0ubG9jYWxzSW5uZXIoZSk7aWYoby5sZW5ndGgpaWYoIXQpdD1vO2Vsc2V7ciYmKHQ9dC5zbGljZSgpLHI9ITEpO2ZvcihsZXQgbj0wO248by5sZW5ndGg7bisrKXQucHVzaChvW25dKX19cmV0dXJuIHQ/WUtlKHI/dDp0LnNvcnQoWGYpKTp6bX1zdGF0aWMgZnJvbShlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gUmk7Y2FzZSAxOnJldHVybiBlWzBdO2RlZmF1bHQ6cmV0dXJuIG5ldyBhKGUuZXZlcnkodD0+dCBpbnN0YW5jZW9mIFFpKT9lOmUucmVkdWNlKCh0LHIpPT50LmNvbmNhdChyIGluc3RhbmNlb2YgUWk/cjpyLm1lbWJlcnMpLFtdKSl9fWZvckVhY2hTZXQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLm1lbWJlcnMubGVuZ3RoO3QrKyl0aGlzLm1lbWJlcnNbdF0uZm9yRWFjaFNldChlKX19O3MoUUFhLCJtYXBDaGlsZHJlbiIpO3Mob25hLCJtb3ZlU3BhbnMiKTtzKEpBYSwibWFwQW5kR2F0aGVyUmVtYWluaW5nRGVjb3JhdGlvbnMiKTtzKG5uYSwidGFrZVNwYW5zRm9yTm9kZSIpO3MobG5hLCJ3aXRob3V0TnVsbHMiKTtzKFVhZSwiYnVpbGRUcmVlIik7cyhYZiwiYnlQb3MiKTtzKFlLZSwicmVtb3ZlT3ZlcmxhcCIpO3MoY25hLCJpbnNlcnRBaGVhZCIpO3MoS0tlLCJ2aWV3RGVjb3JhdGlvbnMiKTtlUGE9e2NoaWxkTGlzdDohMCxjaGFyYWN0ZXJEYXRhOiEwLGNoYXJhY3RlckRhdGFPbGRWYWx1ZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZU9sZFZhbHVlOiEwLHN1YnRyZWU6ITB9LHRQYT1SbyYmZzQ8PTExLFpLZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJTZWxlY3Rpb25TdGF0ZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hbmNob3JOb2RlPW51bGwsdGhpcy5hbmNob3JPZmZzZXQ9MCx0aGlzLmZvY3VzTm9kZT1udWxsLHRoaXMuZm9jdXNPZmZzZXQ9MH1zZXQoZSl7dGhpcy5hbmNob3JOb2RlPWUuYW5jaG9yTm9kZSx0aGlzLmFuY2hvck9mZnNldD1lLmFuY2hvck9mZnNldCx0aGlzLmZvY3VzTm9kZT1lLmZvY3VzTm9kZSx0aGlzLmZvY3VzT2Zmc2V0PWUuZm9jdXNPZmZzZXR9Y2xlYXIoKXt0aGlzLmFuY2hvck5vZGU9dGhpcy5mb2N1c05vZGU9bnVsbH1lcShlKXtyZXR1cm4gZS5hbmNob3JOb2RlPT10aGlzLmFuY2hvck5vZGUmJmUuYW5jaG9yT2Zmc2V0PT10aGlzLmFuY2hvck9mZnNldCYmZS5mb2N1c05vZGU9PXRoaXMuZm9jdXNOb2RlJiZlLmZvY3VzT2Zmc2V0PT10aGlzLmZvY3VzT2Zmc2V0fX0sWEtlPWNsYXNze3N0YXRpY3tzKHRoaXMsIkRPTU9ic2VydmVyIil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnZpZXc9ZSx0aGlzLmhhbmRsZURPTUNoYW5nZT10LHRoaXMucXVldWU9W10sdGhpcy5mbHVzaGluZ1Nvb249LTEsdGhpcy5vYnNlcnZlcj1udWxsLHRoaXMuY3VycmVudFNlbGVjdGlvbj1uZXcgWktlLHRoaXMub25DaGFyRGF0YT1udWxsLHRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzPSExLHRoaXMubGFzdENoYW5nZWRUZXh0Tm9kZT1udWxsLHRoaXMub2JzZXJ2ZXI9d2luZG93Lk11dGF0aW9uT2JzZXJ2ZXImJm5ldyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlcihyPT57Zm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspdGhpcy5xdWV1ZS5wdXNoKHJbaV0pO1JvJiZnNDw9MTEmJnIuc29tZShpPT5pLnR5cGU9PSJjaGlsZExpc3QiJiZpLnJlbW92ZWROb2Rlcy5sZW5ndGh8fGkudHlwZT09ImNoYXJhY3RlckRhdGEiJiZpLm9sZFZhbHVlLmxlbmd0aD5pLnRhcmdldC5ub2RlVmFsdWUubGVuZ3RoKT90aGlzLmZsdXNoU29vbigpOk5pJiZlLmNvbXBvc2luZyYmci5zb21lKGk9PmkudHlwZT09ImNoaWxkTGlzdCImJmkudGFyZ2V0Lm5vZGVOYW1lPT0iVFIiKT8oZS5pbnB1dC5iYWRTYWZhcmlDb21wb3NpdGlvbj0hMCx0aGlzLmZsdXNoU29vbigpKTp0aGlzLmZsdXNoKCl9KSx0UGEmJih0aGlzLm9uQ2hhckRhdGE9cj0+e3RoaXMucXVldWUucHVzaCh7dGFyZ2V0OnIudGFyZ2V0LHR5cGU6ImNoYXJhY3RlckRhdGEiLG9sZFZhbHVlOnIucHJldlZhbHVlfSksdGhpcy5mbHVzaFNvb24oKX0pLHRoaXMub25TZWxlY3Rpb25DaGFuZ2U9dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpfWZsdXNoU29vbigpe3RoaXMuZmx1c2hpbmdTb29uPDAmJih0aGlzLmZsdXNoaW5nU29vbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3RoaXMuZmx1c2hpbmdTb29uPS0xLHRoaXMuZmx1c2goKX0sMjApKX1mb3JjZUZsdXNoKCl7dGhpcy5mbHVzaGluZ1Nvb24+LTEmJih3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuZmx1c2hpbmdTb29uKSx0aGlzLmZsdXNoaW5nU29vbj0tMSx0aGlzLmZsdXNoKCkpfXN0YXJ0KCl7dGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIudGFrZVJlY29yZHMoKSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3LmRvbSxlUGEpKSx0aGlzLm9uQ2hhckRhdGEmJnRoaXMudmlldy5kb20uYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIix0aGlzLm9uQ2hhckRhdGEpLHRoaXMuY29ubmVjdFNlbGVjdGlvbigpfXN0b3AoKXtpZih0aGlzLm9ic2VydmVyKXtsZXQgZT10aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCk7aWYoZS5sZW5ndGgpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMucXVldWUucHVzaChlW3RdKTt3aW5kb3cuc2V0VGltZW91dCgoKT0+dGhpcy5mbHVzaCgpLDIwKX10aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKX10aGlzLm9uQ2hhckRhdGEmJnRoaXMudmlldy5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIix0aGlzLm9uQ2hhckRhdGEpLHRoaXMuZGlzY29ubmVjdFNlbGVjdGlvbigpfWNvbm5lY3RTZWxlY3Rpb24oKXt0aGlzLnZpZXcuZG9tLm93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlKX1kaXNjb25uZWN0U2VsZWN0aW9uKCl7dGhpcy52aWV3LmRvbS5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5vblNlbGVjdGlvbkNoYW5nZSl9c3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCl7dGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXM9ITAsc2V0VGltZW91dCgoKT0+dGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXM9ITEsNTApfW9uU2VsZWN0aW9uQ2hhbmdlKCl7aWYoRm9hKHRoaXMudmlldykpe2lmKHRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzKXJldHVybiB4Yyh0aGlzLnZpZXcpO2lmKFJvJiZnNDw9MTEmJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLmVtcHR5KXtsZXQgZT10aGlzLnZpZXcuZG9tU2VsZWN0aW9uUmFuZ2UoKTtpZihlLmZvY3VzTm9kZSYmamYoZS5mb2N1c05vZGUsZS5mb2N1c09mZnNldCxlLmFuY2hvck5vZGUsZS5hbmNob3JPZmZzZXQpKXJldHVybiB0aGlzLmZsdXNoU29vbigpfXRoaXMuZmx1c2goKX19c2V0Q3VyU2VsZWN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uLnNldCh0aGlzLnZpZXcuZG9tU2VsZWN0aW9uUmFuZ2UoKSl9aWdub3JlU2VsZWN0aW9uQ2hhbmdlKGUpe2lmKCFlLmZvY3VzTm9kZSlyZXR1cm4hMDtsZXQgdD1uZXcgU2V0LHI7Zm9yKGxldCBvPWUuZm9jdXNOb2RlO287bz14bShvKSl0LmFkZChvKTtmb3IobGV0IG89ZS5hbmNob3JOb2RlO287bz14bShvKSlpZih0LmhhcyhvKSl7cj1vO2JyZWFrfWxldCBpPXImJnRoaXMudmlldy5kb2NWaWV3Lm5lYXJlc3REZXNjKHIpO2lmKGkmJmkuaWdub3JlTXV0YXRpb24oe3R5cGU6InNlbGVjdGlvbiIsdGFyZ2V0OnIubm9kZVR5cGU9PTM/ci5wYXJlbnROb2RlOnJ9KSlyZXR1cm4gdGhpcy5zZXRDdXJTZWxlY3Rpb24oKSwhMH1wZW5kaW5nUmVjb3Jkcygpe2lmKHRoaXMub2JzZXJ2ZXIpZm9yKGxldCBlIG9mIHRoaXMub2JzZXJ2ZXIudGFrZVJlY29yZHMoKSl0aGlzLnF1ZXVlLnB1c2goZSk7cmV0dXJuIHRoaXMucXVldWV9Zmx1c2goKXtsZXR7dmlldzplfT10aGlzO2lmKCFlLmRvY1ZpZXd8fHRoaXMuZmx1c2hpbmdTb29uPi0xKXJldHVybjtsZXQgdD10aGlzLnBlbmRpbmdSZWNvcmRzKCk7dC5sZW5ndGgmJih0aGlzLnF1ZXVlPVtdKTtsZXQgcj1lLmRvbVNlbGVjdGlvblJhbmdlKCksaT0hdGhpcy5zdXBwcmVzc2luZ1NlbGVjdGlvblVwZGF0ZXMmJiF0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZXEocikmJkZvYShlKSYmIXRoaXMuaWdub3JlU2VsZWN0aW9uQ2hhbmdlKHIpLG89LTEsbj0tMSxsPSExLGQ9W107aWYoZS5lZGl0YWJsZSlmb3IobGV0IHA9MDtwPHQubGVuZ3RoO3ArKyl7bGV0IHU9dGhpcy5yZWdpc3Rlck11dGF0aW9uKHRbcF0sZCk7dSYmKG89bzwwP3UuZnJvbTpNYXRoLm1pbih1LmZyb20sbyksbj1uPDA/dS50bzpNYXRoLm1heCh1LnRvLG4pLHUudHlwZU92ZXImJihsPSEwKSl9aWYoZC5zb21lKHA9PnAubm9kZU5hbWU9PSJCUiIpJiYoZS5pbnB1dC5sYXN0S2V5Q29kZT09OHx8ZS5pbnB1dC5sYXN0S2V5Q29kZT09NDYpKXtmb3IobGV0IHAgb2YgZClpZihwLm5vZGVOYW1lPT0iQlIiJiZwLnBhcmVudE5vZGUpe2xldCB1PXAubmV4dFNpYmxpbmc7Zm9yKDt1JiZ1Lm5vZGVUeXBlPT0xOyl7aWYodS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpe3AucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKTticmVha311PXUuZmlyc3RDaGlsZH19fWVsc2UgaWYoUm4mJmQubGVuZ3RoKXtsZXQgcD1kLmZpbHRlcih1PT51Lm5vZGVOYW1lPT0iQlIiKTtpZihwLmxlbmd0aD09Mil7bGV0W3UsbV09cDt1LnBhcmVudE5vZGUmJnUucGFyZW50Tm9kZS5wYXJlbnROb2RlPT1tLnBhcmVudE5vZGU/bS5yZW1vdmUoKTp1LnJlbW92ZSgpfWVsc2V7bGV0e2ZvY3VzTm9kZTp1fT10aGlzLmN1cnJlbnRTZWxlY3Rpb247Zm9yKGxldCBtIG9mIHApe2xldCB2PW0ucGFyZW50Tm9kZTt2JiZ2Lm5vZGVOYW1lPT0iTEkiJiYoIXV8fHNQYShlLHUpIT12KSYmbS5yZW1vdmUoKX19fWxldCBjPW51bGw7bzwwJiZpJiZlLmlucHV0Lmxhc3RGb2N1cz5EYXRlLm5vdygpLTIwMCYmTWF0aC5tYXgoZS5pbnB1dC5sYXN0VG91Y2gsZS5pbnB1dC5sYXN0Q2xpY2sudGltZSk8RGF0ZS5ub3coKS0zMDAmJklhZShyKSYmKGM9QUtlKGUpKSYmYy5lcShFdC5uZWFyKGUuc3RhdGUuZG9jLnJlc29sdmUoMCksMSkpPyhlLmlucHV0Lmxhc3RGb2N1cz0wLHhjKGUpLHRoaXMuY3VycmVudFNlbGVjdGlvbi5zZXQociksZS5zY3JvbGxUb1NlbGVjdGlvbigpKToobz4tMXx8aSkmJihvPi0xJiYoZS5kb2NWaWV3Lm1hcmtEaXJ0eShvLG4pLGFQYShlKSksZS5pbnB1dC5iYWRTYWZhcmlDb21wb3NpdGlvbiYmKGUuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsaVBhKGUsZCkpLHRoaXMuaGFuZGxlRE9NQ2hhbmdlKG8sbixsLGQpLGUuZG9jVmlldyYmZS5kb2NWaWV3LmRpcnR5P2UudXBkYXRlU3RhdGUoZS5zdGF0ZSk6dGhpcy5jdXJyZW50U2VsZWN0aW9uLmVxKHIpfHx4YyhlKSx0aGlzLmN1cnJlbnRTZWxlY3Rpb24uc2V0KHIpKX1yZWdpc3Rlck11dGF0aW9uKGUsdCl7aWYodC5pbmRleE9mKGUudGFyZ2V0KT4tMSlyZXR1cm4gbnVsbDtsZXQgcj10aGlzLnZpZXcuZG9jVmlldy5uZWFyZXN0RGVzYyhlLnRhcmdldCk7aWYoZS50eXBlPT0iYXR0cmlidXRlcyImJihyPT10aGlzLnZpZXcuZG9jVmlld3x8ZS5hdHRyaWJ1dGVOYW1lPT0iY29udGVudGVkaXRhYmxlInx8ZS5hdHRyaWJ1dGVOYW1lPT0ic3R5bGUiJiYhZS5vbGRWYWx1ZSYmIWUudGFyZ2V0LmdldEF0dHJpYnV0ZSgic3R5bGUiKSl8fCFyfHxyLmlnbm9yZU11dGF0aW9uKGUpKXJldHVybiBudWxsO2lmKGUudHlwZT09ImNoaWxkTGlzdCIpe2ZvcihsZXQgcD0wO3A8ZS5hZGRlZE5vZGVzLmxlbmd0aDtwKyspe2xldCB1PWUuYWRkZWROb2Rlc1twXTt0LnB1c2godSksdS5ub2RlVHlwZT09MyYmKHRoaXMubGFzdENoYW5nZWRUZXh0Tm9kZT11KX1pZihyLmNvbnRlbnRET00mJnIuY29udGVudERPTSE9ci5kb20mJiFyLmNvbnRlbnRET00uY29udGFpbnMoZS50YXJnZXQpKXJldHVybntmcm9tOnIucG9zQmVmb3JlLHRvOnIucG9zQWZ0ZXJ9O2xldCBpPWUucHJldmlvdXNTaWJsaW5nLG89ZS5uZXh0U2libGluZztpZihSbyYmZzQ8PTExJiZlLmFkZGVkTm9kZXMubGVuZ3RoKWZvcihsZXQgcD0wO3A8ZS5hZGRlZE5vZGVzLmxlbmd0aDtwKyspe2xldHtwcmV2aW91c1NpYmxpbmc6dSxuZXh0U2libGluZzptfT1lLmFkZGVkTm9kZXNbcF07KCF1fHxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUuYWRkZWROb2Rlcyx1KTwwKSYmKGk9dSksKCFtfHxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUuYWRkZWROb2RlcyxtKTwwKSYmKG89bSl9bGV0IG49aSYmaS5wYXJlbnROb2RlPT1lLnRhcmdldD9paShpKSsxOjAsbD1yLmxvY2FsUG9zRnJvbURPTShlLnRhcmdldCxuLC0xKSxkPW8mJm8ucGFyZW50Tm9kZT09ZS50YXJnZXQ/aWkobyk6ZS50YXJnZXQuY2hpbGROb2Rlcy5sZW5ndGgsYz1yLmxvY2FsUG9zRnJvbURPTShlLnRhcmdldCxkLDEpO3JldHVybntmcm9tOmwsdG86Y319ZWxzZSByZXR1cm4gZS50eXBlPT0iYXR0cmlidXRlcyI/e2Zyb206ci5wb3NBdFN0YXJ0LXIuYm9yZGVyLHRvOnIucG9zQXRFbmQrci5ib3JkZXJ9Oih0aGlzLmxhc3RDaGFuZ2VkVGV4dE5vZGU9ZS50YXJnZXQse2Zyb206ci5wb3NBdFN0YXJ0LHRvOnIucG9zQXRFbmQsdHlwZU92ZXI6ZS50YXJnZXQubm9kZVZhbHVlPT1lLm9sZFZhbHVlfSl9fSxkbmE9bmV3IFdlYWtNYXAsdW5hPSExO3MoYVBhLCJjaGVja0NTUyIpO3MocG5hLCJyYW5nZVRvU2VsZWN0aW9uUmFuZ2UiKTtzKHJQYSwic2FmYXJpU2hhZG93U2VsZWN0aW9uUmFuZ2UiKTtzKHNQYSwiYmxvY2tQYXJlbnQiKTtzKGlQYSwiZml4VXBCYWRTYWZhcmlDb21wb3NpdGlvbiIpO3Mob1BhLCJwYXJzZUJldHdlZW4iKTtzKG5QYSwicnVsZUZyb21Ob2RlIik7bFBhPS9eKGF8YWJicnxhY3JvbnltfGJ8YmRbaW9dfGJpZ3xicnxidXR0b258Y2l0ZXxjb2RlfGRhdGEobGlzdCk/fGRlbHxkZm58ZW18aXxpbWd8aW5zfGtiZHxsYWJlbHxtYXB8bWFya3xtZXRlcnxvdXRwdXR8cXxydWJ5fHN8c2FtcHxzbWFsbHxzcGFufHN0cm9uZ3xzdVticF18dGltZXx1fHR0fHZhcikkL2k7cyhjUGEsInJlYWRET01DaGFuZ2UiKTtzKGZuYSwicmVzb2x2ZVNlbGVjdGlvbiIpO3MoZFBhLCJpc01hcmtDaGFuZ2UiKTtzKHVQYSwibG9va3NMaWtlQmFja3NwYWNlIik7cyhRS2UsInNraXBDbG9zaW5nQW5kT3BlbmluZyIpO3MocFBhLCJmaW5kRGlmZiIpO3MoaG5hLCJpc1N1cnJvZ2F0ZVBhaXIiKTtmUGE9T0tlLGhQYT1hVyxDbT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJFZGl0b3JWaWV3Iil9Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yb290PW51bGwsdGhpcy5mb2N1c2VkPSExLHRoaXMudHJhY2tXcml0ZXM9bnVsbCx0aGlzLm1vdW50ZWQ9ITEsdGhpcy5tYXJrQ3Vyc29yPW51bGwsdGhpcy5jdXJzb3JXcmFwcGVyPW51bGwsdGhpcy5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDAsdGhpcy5pbnB1dD1uZXcgSEtlLHRoaXMucHJldkRpcmVjdFBsdWdpbnM9W10sdGhpcy5wbHVnaW5WaWV3cz1bXSx0aGlzLnJlcXVpcmVzR2Vja29IYWNrTm9kZT0hMSx0aGlzLmRyYWdnaW5nPW51bGwsdGhpcy5fcHJvcHM9dCx0aGlzLnN0YXRlPXQuc3RhdGUsdGhpcy5kaXJlY3RQbHVnaW5zPXQucGx1Z2luc3x8W10sdGhpcy5kaXJlY3RQbHVnaW5zLmZvckVhY2goeG5hKSx0aGlzLmRpc3BhdGNoPXRoaXMuZGlzcGF0Y2guYmluZCh0aGlzKSx0aGlzLmRvbT1lJiZlLm1vdW50fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlJiYoZS5hcHBlbmRDaGlsZD9lLmFwcGVuZENoaWxkKHRoaXMuZG9tKTp0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHRoaXMuZG9tKTplLm1vdW50JiYodGhpcy5tb3VudGVkPSEwKSksdGhpcy5lZGl0YWJsZT1ibmEodGhpcyksZ25hKHRoaXMpLHRoaXMubm9kZVZpZXdzPXZuYSh0aGlzKSx0aGlzLmRvY1ZpZXc9VG9hKHRoaXMuc3RhdGUuZG9jLG1uYSh0aGlzKSxLS2UodGhpcyksdGhpcy5kb20sdGhpcyksdGhpcy5kb21PYnNlcnZlcj1uZXcgWEtlKHRoaXMsKHIsaSxvLG4pPT5jUGEodGhpcyxyLGksbyxuKSksdGhpcy5kb21PYnNlcnZlci5zdGFydCgpLEFBYSh0aGlzKSx0aGlzLnVwZGF0ZVBsdWdpblZpZXdzKCl9Z2V0IGNvbXBvc2luZygpe3JldHVybiB0aGlzLmlucHV0LmNvbXBvc2luZ31nZXQgcHJvcHMoKXtpZih0aGlzLl9wcm9wcy5zdGF0ZSE9dGhpcy5zdGF0ZSl7bGV0IGU9dGhpcy5fcHJvcHM7dGhpcy5fcHJvcHM9e307Zm9yKGxldCB0IGluIGUpdGhpcy5fcHJvcHNbdF09ZVt0XTt0aGlzLl9wcm9wcy5zdGF0ZT10aGlzLnN0YXRlfXJldHVybiB0aGlzLl9wcm9wc311cGRhdGUoZSl7ZS5oYW5kbGVET01FdmVudHMhPXRoaXMuX3Byb3BzLmhhbmRsZURPTUV2ZW50cyYmcUtlKHRoaXMpO2xldCB0PXRoaXMuX3Byb3BzO3RoaXMuX3Byb3BzPWUsZS5wbHVnaW5zJiYoZS5wbHVnaW5zLmZvckVhY2goeG5hKSx0aGlzLmRpcmVjdFBsdWdpbnM9ZS5wbHVnaW5zKSx0aGlzLnVwZGF0ZVN0YXRlSW5uZXIoZS5zdGF0ZSx0KX1zZXRQcm9wcyhlKXtsZXQgdD17fTtmb3IobGV0IHIgaW4gdGhpcy5fcHJvcHMpdFtyXT10aGlzLl9wcm9wc1tyXTt0LnN0YXRlPXRoaXMuc3RhdGU7Zm9yKGxldCByIGluIGUpdFtyXT1lW3JdO3RoaXMudXBkYXRlKHQpfXVwZGF0ZVN0YXRlKGUpe3RoaXMudXBkYXRlU3RhdGVJbm5lcihlLHRoaXMuX3Byb3BzKX11cGRhdGVTdGF0ZUlubmVyKGUsdCl7dmFyIHI7bGV0IGk9dGhpcy5zdGF0ZSxvPSExLG49ITE7ZS5zdG9yZWRNYXJrcyYmdGhpcy5jb21wb3NpbmcmJihybmEodGhpcyksbj0hMCksdGhpcy5zdGF0ZT1lO2xldCBsPWkucGx1Z2lucyE9ZS5wbHVnaW5zfHx0aGlzLl9wcm9wcy5wbHVnaW5zIT10LnBsdWdpbnM7aWYobHx8dGhpcy5fcHJvcHMucGx1Z2lucyE9dC5wbHVnaW5zfHx0aGlzLl9wcm9wcy5ub2RlVmlld3MhPXQubm9kZVZpZXdzKXtsZXQgdj12bmEodGhpcyk7Z1BhKHYsdGhpcy5ub2RlVmlld3MpJiYodGhpcy5ub2RlVmlld3M9dixvPSEwKX0obHx8dC5oYW5kbGVET01FdmVudHMhPXRoaXMuX3Byb3BzLmhhbmRsZURPTUV2ZW50cykmJnFLZSh0aGlzKSx0aGlzLmVkaXRhYmxlPWJuYSh0aGlzKSxnbmEodGhpcyk7bGV0IGQ9S0tlKHRoaXMpLGM9bW5hKHRoaXMpLHA9aS5wbHVnaW5zIT1lLnBsdWdpbnMmJiFpLmRvYy5lcShlLmRvYyk/InJlc2V0IjplLnNjcm9sbFRvU2VsZWN0aW9uPmkuc2Nyb2xsVG9TZWxlY3Rpb24/InRvIHNlbGVjdGlvbiI6InByZXNlcnZlIix1PW98fCF0aGlzLmRvY1ZpZXcubWF0Y2hlc05vZGUoZS5kb2MsYyxkKTsodXx8IWUuc2VsZWN0aW9uLmVxKGkuc2VsZWN0aW9uKSkmJihuPSEwKTtsZXQgbT1wPT0icHJlc2VydmUiJiZuJiZ0aGlzLmRvbS5zdHlsZS5vdmVyZmxvd0FuY2hvcj09bnVsbCYmWkRhKHRoaXMpO2lmKG4pe3RoaXMuZG9tT2JzZXJ2ZXIuc3RvcCgpO2xldCB2PXUmJihSb3x8b2kpJiYhdGhpcy5jb21wb3NpbmcmJiFpLnNlbGVjdGlvbi5lbXB0eSYmIWUuc2VsZWN0aW9uLmVtcHR5JiZtUGEoaS5zZWxlY3Rpb24sZS5zZWxlY3Rpb24pO2lmKHUpe2xldCB4PW9pP3RoaXMudHJhY2tXcml0ZXM9dGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpLmZvY3VzTm9kZTpudWxsO3RoaXMuY29tcG9zaW5nJiYodGhpcy5pbnB1dC5jb21wb3NpdGlvbk5vZGU9VUFhKHRoaXMpKSwob3x8IXRoaXMuZG9jVmlldy51cGRhdGUoZS5kb2MsYyxkLHRoaXMpKSYmKHRoaXMuZG9jVmlldy51cGRhdGVPdXRlckRlY28oYyksdGhpcy5kb2NWaWV3LmRlc3Ryb3koKSx0aGlzLmRvY1ZpZXc9VG9hKGUuZG9jLGMsZCx0aGlzLmRvbSx0aGlzKSkseCYmKCF0aGlzLnRyYWNrV3JpdGVzfHwhdGhpcy5kb20uY29udGFpbnModGhpcy50cmFja1dyaXRlcykpJiYodj0hMCl9dnx8ISh0aGlzLmlucHV0Lm1vdXNlRG93biYmdGhpcy5kb21PYnNlcnZlci5jdXJyZW50U2VsZWN0aW9uLmVxKHRoaXMuZG9tU2VsZWN0aW9uUmFuZ2UoKSkmJmJBYSh0aGlzKSk/eGModGhpcyx2KTooUm9hKHRoaXMsZS5zZWxlY3Rpb24pLHRoaXMuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCkpLHRoaXMuZG9tT2JzZXJ2ZXIuc3RhcnQoKX10aGlzLnVwZGF0ZVBsdWdpblZpZXdzKGkpLCEoKHI9dGhpcy5kcmFnZ2luZyk9PT1udWxsfHxyPT09dm9pZCAwKSYmci5ub2RlJiYhaS5kb2MuZXEoZS5kb2MpJiZ0aGlzLnVwZGF0ZURyYWdnZWROb2RlKHRoaXMuZHJhZ2dpbmcsaSkscD09InJlc2V0Ij90aGlzLmRvbS5zY3JvbGxUb3A9MDpwPT0idG8gc2VsZWN0aW9uIj90aGlzLnNjcm9sbFRvU2VsZWN0aW9uKCk6bSYmWERhKG0pfXNjcm9sbFRvU2VsZWN0aW9uKCl7bGV0IGU9dGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpLmZvY3VzTm9kZTtpZighKCFlfHwhdGhpcy5kb20uY29udGFpbnMoZS5ub2RlVHlwZT09MT9lOmUucGFyZW50Tm9kZSkpKXtpZighdGhpcy5zb21lUHJvcCgiaGFuZGxlU2Nyb2xsVG9TZWxlY3Rpb24iLHQ9PnQodGhpcykpKWlmKHRoaXMuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2Yga3Qpe2xldCB0PXRoaXMuZG9jVmlldy5kb21BZnRlclBvcyh0aGlzLnN0YXRlLnNlbGVjdGlvbi5mcm9tKTt0Lm5vZGVUeXBlPT0xJiZnb2EodGhpcyx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGUpfWVsc2UgZ29hKHRoaXMsdGhpcy5jb29yZHNBdFBvcyh0aGlzLnN0YXRlLnNlbGVjdGlvbi5oZWFkLDEpLGUpfX1kZXN0cm95UGx1Z2luVmlld3MoKXtsZXQgZTtmb3IoO2U9dGhpcy5wbHVnaW5WaWV3cy5wb3AoKTspZS5kZXN0cm95JiZlLmRlc3Ryb3koKX11cGRhdGVQbHVnaW5WaWV3cyhlKXtpZighZXx8ZS5wbHVnaW5zIT10aGlzLnN0YXRlLnBsdWdpbnN8fHRoaXMuZGlyZWN0UGx1Z2lucyE9dGhpcy5wcmV2RGlyZWN0UGx1Z2lucyl7dGhpcy5wcmV2RGlyZWN0UGx1Z2lucz10aGlzLmRpcmVjdFBsdWdpbnMsdGhpcy5kZXN0cm95UGx1Z2luVmlld3MoKTtmb3IobGV0IHQ9MDt0PHRoaXMuZGlyZWN0UGx1Z2lucy5sZW5ndGg7dCsrKXtsZXQgcj10aGlzLmRpcmVjdFBsdWdpbnNbdF07ci5zcGVjLnZpZXcmJnRoaXMucGx1Z2luVmlld3MucHVzaChyLnNwZWMudmlldyh0aGlzKSl9Zm9yKGxldCB0PTA7dDx0aGlzLnN0YXRlLnBsdWdpbnMubGVuZ3RoO3QrKyl7bGV0IHI9dGhpcy5zdGF0ZS5wbHVnaW5zW3RdO3Iuc3BlYy52aWV3JiZ0aGlzLnBsdWdpblZpZXdzLnB1c2goci5zcGVjLnZpZXcodGhpcykpfX1lbHNlIGZvcihsZXQgdD0wO3Q8dGhpcy5wbHVnaW5WaWV3cy5sZW5ndGg7dCsrKXtsZXQgcj10aGlzLnBsdWdpblZpZXdzW3RdO3IudXBkYXRlJiZyLnVwZGF0ZSh0aGlzLGUpfX11cGRhdGVEcmFnZ2VkTm9kZShlLHQpe2xldCByPWUubm9kZSxpPS0xO2lmKHIuZnJvbTx0aGlzLnN0YXRlLmRvYy5jb250ZW50LnNpemUmJnRoaXMuc3RhdGUuZG9jLm5vZGVBdChyLmZyb20pPT1yLm5vZGUpaT1yLmZyb207ZWxzZXtsZXQgbz1yLmZyb20rKHRoaXMuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZS10LmRvYy5jb250ZW50LnNpemUpOyhvPjAmJm88dGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplJiZ0aGlzLnN0YXRlLmRvYy5ub2RlQXQobykpPT1yLm5vZGUmJihpPW8pfXRoaXMuZHJhZ2dpbmc9bmV3IHFhZShlLnNsaWNlLGUubW92ZSxpPDA/dm9pZCAwOmt0LmNyZWF0ZSh0aGlzLnN0YXRlLmRvYyxpKSl9c29tZVByb3AoZSx0KXtsZXQgcj10aGlzLl9wcm9wcyYmdGhpcy5fcHJvcHNbZV0saTtpZihyIT1udWxsJiYoaT10P3Qocik6cikpcmV0dXJuIGk7Zm9yKGxldCBuPTA7bjx0aGlzLmRpcmVjdFBsdWdpbnMubGVuZ3RoO24rKyl7bGV0IGw9dGhpcy5kaXJlY3RQbHVnaW5zW25dLnByb3BzW2VdO2lmKGwhPW51bGwmJihpPXQ/dChsKTpsKSlyZXR1cm4gaX1sZXQgbz10aGlzLnN0YXRlLnBsdWdpbnM7aWYobylmb3IobGV0IG49MDtuPG8ubGVuZ3RoO24rKyl7bGV0IGw9b1tuXS5wcm9wc1tlXTtpZihsIT1udWxsJiYoaT10P3QobCk6bCkpcmV0dXJuIGl9fWhhc0ZvY3VzKCl7aWYoUm8pe2xldCBlPXRoaXMucm9vdC5hY3RpdmVFbGVtZW50O2lmKGU9PXRoaXMuZG9tKXJldHVybiEwO2lmKCFlfHwhdGhpcy5kb20uY29udGFpbnMoZSkpcmV0dXJuITE7Zm9yKDtlJiZ0aGlzLmRvbSE9ZSYmdGhpcy5kb20uY29udGFpbnMoZSk7KXtpZihlLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4hMTtlPWUucGFyZW50RWxlbWVudH1yZXR1cm4hMH1yZXR1cm4gdGhpcy5yb290LmFjdGl2ZUVsZW1lbnQ9PXRoaXMuZG9tfWZvY3VzKCl7dGhpcy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5lZGl0YWJsZSYmUURhKHRoaXMuZG9tKSx4Yyh0aGlzKSx0aGlzLmRvbU9ic2VydmVyLnN0YXJ0KCl9Z2V0IHJvb3QoKXtsZXQgZT10aGlzLl9yb290O2lmKGU9PW51bGwpe2ZvcihsZXQgdD10aGlzLmRvbS5wYXJlbnROb2RlO3Q7dD10LnBhcmVudE5vZGUpaWYodC5ub2RlVHlwZT09OXx8dC5ub2RlVHlwZT09MTEmJnQuaG9zdClyZXR1cm4gdC5nZXRTZWxlY3Rpb258fChPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkuZ2V0U2VsZWN0aW9uPSgpPT50Lm93bmVyRG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkpLHRoaXMuX3Jvb3Q9dH1yZXR1cm4gZXx8ZG9jdW1lbnR9dXBkYXRlUm9vdCgpe3RoaXMuX3Jvb3Q9bnVsbH1wb3NBdENvb3JkcyhlKXtyZXR1cm4gckFhKHRoaXMsZSl9Y29vcmRzQXRQb3MoZSx0PTEpe3JldHVybiBNb2EodGhpcyxlLHQpfWRvbUF0UG9zKGUsdD0wKXtyZXR1cm4gdGhpcy5kb2NWaWV3LmRvbUZyb21Qb3MoZSx0KX1ub2RlRE9NKGUpe2xldCB0PXRoaXMuZG9jVmlldy5kZXNjQXQoZSk7cmV0dXJuIHQ/dC5ub2RlRE9NOm51bGx9cG9zQXRET00oZSx0LHI9LTEpe2xldCBpPXRoaXMuZG9jVmlldy5wb3NGcm9tRE9NKGUsdCxyKTtpZihpPT1udWxsKXRocm93IG5ldyBSYW5nZUVycm9yKCJET00gcG9zaXRpb24gbm90IGluc2lkZSB0aGUgZWRpdG9yIik7cmV0dXJuIGl9ZW5kT2ZUZXh0YmxvY2soZSx0KXtyZXR1cm4gbEFhKHRoaXMsdHx8dGhpcy5zdGF0ZSxlKX1wYXN0ZUhUTUwoZSx0KXtyZXR1cm4gc1codGhpcywiIixlLCExLHR8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9cGFzdGVUZXh0KGUsdCl7cmV0dXJuIHNXKHRoaXMsZSxudWxsLCEwLHR8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9c2VyaWFsaXplRm9yQ2xpcGJvYXJkKGUpe3JldHVybiBSS2UodGhpcyxlKX1kZXN0cm95KCl7dGhpcy5kb2NWaWV3JiYoUEFhKHRoaXMpLHRoaXMuZGVzdHJveVBsdWdpblZpZXdzKCksdGhpcy5tb3VudGVkPyh0aGlzLmRvY1ZpZXcudXBkYXRlKHRoaXMuc3RhdGUuZG9jLFtdLEtLZSh0aGlzKSx0aGlzKSx0aGlzLmRvbS50ZXh0Q29udGVudD0iIik6dGhpcy5kb20ucGFyZW50Tm9kZSYmdGhpcy5kb20ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmRvbSksdGhpcy5kb2NWaWV3LmRlc3Ryb3koKSx0aGlzLmRvY1ZpZXc9bnVsbCxCRGEoKSl9Z2V0IGlzRGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuZG9jVmlldz09bnVsbH1kaXNwYXRjaEV2ZW50KGUpe3JldHVybiBJQWEodGhpcyxlKX1kb21TZWxlY3Rpb25SYW5nZSgpe2xldCBlPXRoaXMuZG9tU2VsZWN0aW9uKCk7cmV0dXJuIGU/TmkmJnRoaXMucm9vdC5ub2RlVHlwZT09PTExJiZVRGEodGhpcy5kb20ub3duZXJEb2N1bWVudCk9PXRoaXMuZG9tJiZyUGEodGhpcyxlKXx8ZTp7Zm9jdXNOb2RlOm51bGwsZm9jdXNPZmZzZXQ6MCxhbmNob3JOb2RlOm51bGwsYW5jaG9yT2Zmc2V0OjB9fWRvbVNlbGVjdGlvbigpe3JldHVybiB0aGlzLnJvb3QuZ2V0U2VsZWN0aW9uKCl9fTtDbS5wcm90b3R5cGUuZGlzcGF0Y2g9ZnVuY3Rpb24oYSl7bGV0IGU9dGhpcy5fcHJvcHMuZGlzcGF0Y2hUcmFuc2FjdGlvbjtlP2UuY2FsbCh0aGlzLGEpOnRoaXMudXBkYXRlU3RhdGUodGhpcy5zdGF0ZS5hcHBseShhKSl9O3MobW5hLCJjb21wdXRlRG9jRGVjbyIpO3MoZ25hLCJ1cGRhdGVDdXJzb3JXcmFwcGVyIik7cyhibmEsImdldEVkaXRhYmxlIik7cyhtUGEsInNlbGVjdGlvbkNvbnRleHRDaGFuZ2VkIik7cyh2bmEsImJ1aWxkTm9kZVZpZXdzIik7cyhnUGEsImNoYW5nZWROb2RlVmlld3MiKTtzKHhuYSwiY2hlY2tTdGF0ZUNvbXBvbmVudCIpfSk7dmFyIHluYT1mKCgpPT57SktlKCl9KTtmdW5jdGlvbiB3bmEoYSl7dmFyIGU9YlBhJiZhLm1ldGFLZXkmJmEuc2hpZnRLZXkmJiFhLmN0cmxLZXkmJiFhLmFsdEtleXx8dlBhJiZhLnNoaWZ0S2V5JiZhLmtleSYmYS5rZXkubGVuZ3RoPT0xfHxhLmtleT09IlVuaWRlbnRpZmllZCIsdD0hZSYmYS5rZXl8fChhLnNoaWZ0S2V5P1dhZTp5YylbYS5rZXlDb2RlXXx8YS5rZXl8fCJVbmlkZW50aWZpZWQiO3JldHVybiB0PT0iRXNjIiYmKHQ9IkVzY2FwZSIpLHQ9PSJEZWwiJiYodD0iRGVsZXRlIiksdD09IkxlZnQiJiYodD0iQXJyb3dMZWZ0IiksdD09IlVwIiYmKHQ9IkFycm93VXAiKSx0PT0iUmlnaHQiJiYodD0iQXJyb3dSaWdodCIpLHQ9PSJEb3duIiYmKHQ9IkFycm93RG93biIpLHR9dmFyIHljLFdhZSxiUGEsdlBhLHZzLEdhZSxNbmE9ZigoKT0+e3ljPXs4OiJCYWNrc3BhY2UiLDk6IlRhYiIsMTA6IkVudGVyIiwxMjoiTnVtTG9jayIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ0OiJQcmludFNjcmVlbiIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsNTk6IjsiLDYxOiI9Iiw5MToiTWV0YSIsOTI6Ik1ldGEiLDEwNjoiKiIsMTA3OiIrIiwxMDg6IiwiLDEwOToiLSIsMTEwOiIuIiwxMTE6Ii8iLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwxNjA6IlNoaWZ0IiwxNjE6IlNoaWZ0IiwxNjI6IkNvbnRyb2wiLDE2MzoiQ29udHJvbCIsMTY0OiJBbHQiLDE2NToiQWx0IiwxNzM6Ii0iLDE4NjoiOyIsMTg3OiI9IiwxODg6IiwiLDE4OToiLSIsMTkwOiIuIiwxOTE6Ii8iLDE5MjoiYCIsMjE5OiJbIiwyMjA6IlxcIiwyMjE6Il0iLDIyMjoiJyJ9LFdhZT17NDg6IikiLDQ5OiIhIiw1MDoiQCIsNTE6IiMiLDUyOiIkIiw1MzoiJSIsNTQ6Il4iLDU1OiImIiw1NjoiKiIsNTc6IigiLDU5OiI6Iiw2MToiKyIsMTczOiJfIiwxODY6IjoiLDE4NzoiKyIsMTg4OiI8IiwxODk6Il8iLDE5MDoiPiIsMTkxOiI/IiwxOTI6In4iLDIxOToieyIsMjIwOiJ8IiwyMjE6In0iLDIyMjonIid9LGJQYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLHZQYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01TSUUgXGR8VHJpZGVudFwvKD86WzctOV18XGR7Mix9KVwuLipydjooXGQrKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KTtmb3IodnM9MDt2czwxMDt2cysrKXljWzQ4K3ZzXT15Y1s5Nit2c109U3RyaW5nKHZzKTtmb3IodnM9MTt2czw9MjQ7dnMrKyl5Y1t2cysxMTFdPSJGIit2cztmb3IodnM9NjU7dnM8PTkwO3ZzKyspeWNbdnNdPVN0cmluZy5mcm9tQ2hhckNvZGUodnMrMzIpLFdhZVt2c109U3RyaW5nLmZyb21DaGFyQ29kZSh2cyk7Zm9yKEdhZSBpbiB5YylXYWUuaGFzT3duUHJvcGVydHkoR2FlKXx8KFdhZVtHYWVdPXljW0dhZV0pO3Mod25hLCJrZXlOYW1lIil9KTtmdW5jdGlvbiB3UGEoYSl7bGV0IGU9YS5zcGxpdCgvLSg/ISQpLyksdD1lW2UubGVuZ3RoLTFdO3Q9PSJTcGFjZSImJih0PSIgIik7bGV0IHIsaSxvLG47Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrKyl7bGV0IGQ9ZVtsXTtpZigvXihjbWR8bWV0YXxtKSQvaS50ZXN0KGQpKW49ITA7ZWxzZSBpZigvXmEobHQpPyQvaS50ZXN0KGQpKXI9ITA7ZWxzZSBpZigvXihjfGN0cmx8Y29udHJvbCkkL2kudGVzdChkKSlpPSEwO2Vsc2UgaWYoL15zKGhpZnQpPyQvaS50ZXN0KGQpKW89ITA7ZWxzZSBpZigvXm1vZCQvaS50ZXN0KGQpKXhQYT9uPSEwOmk9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAiK2QpfXJldHVybiByJiYodD0iQWx0LSIrdCksaSYmKHQ9IkN0cmwtIit0KSxuJiYodD0iTWV0YS0iK3QpLG8mJih0PSJTaGlmdC0iK3QpLHR9ZnVuY3Rpb24gTVBhKGEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCB0IGluIGEpZVt3UGEodCldPWFbdF07cmV0dXJuIGV9ZnVuY3Rpb24gZVplKGEsZSx0PSEwKXtyZXR1cm4gZS5hbHRLZXkmJihhPSJBbHQtIithKSxlLmN0cmxLZXkmJihhPSJDdHJsLSIrYSksZS5tZXRhS2V5JiYoYT0iTWV0YS0iK2EpLHQmJmUuc2hpZnRLZXkmJihhPSJTaGlmdC0iK2EpLGF9ZnVuY3Rpb24gdFplKGEpe3JldHVybiBuZXcgYXIoe3Byb3BzOntoYW5kbGVLZXlEb3duOllhZShhKX19KX1mdW5jdGlvbiBZYWUoYSl7bGV0IGU9TVBhKGEpO3JldHVybiBmdW5jdGlvbih0LHIpe2xldCBpPXduYShyKSxvLG49ZVtlWmUoaSxyKV07aWYobiYmbih0LnN0YXRlLHQuZGlzcGF0Y2gsdCkpcmV0dXJuITA7aWYoaS5sZW5ndGg9PTEmJmkhPSIgIil7aWYoci5zaGlmdEtleSl7bGV0IGw9ZVtlWmUoaSxyLCExKV07aWYobCYmbCh0LnN0YXRlLHQuZGlzcGF0Y2gsdCkpcmV0dXJuITB9aWYoKHIuYWx0S2V5fHxyLm1ldGFLZXl8fHIuY3RybEtleSkmJiEoeVBhJiZyLmN0cmxLZXkmJnIuYWx0S2V5KSYmKG89eWNbci5rZXlDb2RlXSkmJm8hPWkpe2xldCBsPWVbZVplKG8scildO2lmKGwmJmwodC5zdGF0ZSx0LmRpc3BhdGNoLHQpKXJldHVybiEwfX1yZXR1cm4hMX19dmFyIHhQYSx5UGEsYVplPWYoKCk9PntNbmEoKTttYygpO3hQYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL01hY3xpUChob25lfFtvYV1kKS8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLHlQYT10eXBlb2YgbmF2aWdhdG9yPCJ1IiYmL1dpbi8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO3Mod1BhLCJub3JtYWxpemVLZXlOYW1lIik7cyhNUGEsIm5vcm1hbGl6ZSIpO3MoZVplLCJtb2RpZmllcnMiKTtzKHRaZSwia2V5bWFwIik7cyhZYWUsImtleWRvd25IYW5kbGVyIil9KTt2YXIga25hPWYoKCk9PnthWmUoKX0pO3ZhciBTbmE9ZigoKT0+e3A0KCl9KTt2YXIgem5hPWYoKCk9PntoNCgpfSk7ZnVuY3Rpb24gQ25hKGEsZSl7bGV0eyRjdXJzb3I6dH09YS5zZWxlY3Rpb247cmV0dXJuIXR8fChlPyFlLmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIsYSk6dC5wYXJlbnRPZmZzZXQ+MCk/bnVsbDp0fWZ1bmN0aW9uIF9uYShhLGUsdCl7bGV0IHI9ZS5ub2RlQmVmb3JlLGk9cixvPWUucG9zLTE7Zm9yKDshaS5pc1RleHRibG9jaztvLS0pe2lmKGkudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMTtsZXQgcD1pLmxhc3RDaGlsZDtpZighcClyZXR1cm4hMTtpPXB9bGV0IG49ZS5ub2RlQWZ0ZXIsbD1uLGQ9ZS5wb3MrMTtmb3IoOyFsLmlzVGV4dGJsb2NrO2QrKyl7aWYobC50eXBlLnNwZWMuaXNvbGF0aW5nKXJldHVybiExO2xldCBwPWwuZmlyc3RDaGlsZDtpZighcClyZXR1cm4hMTtsPXB9bGV0IGM9Ym0oYS5kb2MsbyxkLHN0LmVtcHR5KTtpZighY3x8Yy5mcm9tIT1vfHxjIGluc3RhbmNlb2YgWnMmJmMuc2xpY2Uuc2l6ZT49ZC1vKXJldHVybiExO2lmKHQpe2xldCBwPWEudHIuc3RlcChjKTtwLnNldFNlbGVjdGlvbihOdC5jcmVhdGUocC5kb2MsbykpLHQocC5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH1mdW5jdGlvbiBfbShhLGUsdD0hMSl7Zm9yKGxldCByPWE7cjtyPWU9PSJzdGFydCI/ci5maXJzdENoaWxkOnIubGFzdENoaWxkKXtpZihyLmlzVGV4dGJsb2NrKXJldHVybiEwO2lmKHQmJnIuY2hpbGRDb3VudCE9MSlyZXR1cm4hMX1yZXR1cm4hMX1mdW5jdGlvbiByWmUoYSl7aWYoIWEucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpZm9yKGxldCBlPWEuZGVwdGgtMTtlPj0wO2UtLSl7aWYoYS5pbmRleChlKT4wKXJldHVybiBhLmRvYy5yZXNvbHZlKGEuYmVmb3JlKGUrMSkpO2lmKGEubm9kZShlKS50eXBlLnNwZWMuaXNvbGF0aW5nKWJyZWFrfXJldHVybiBudWxsfWZ1bmN0aW9uIFRuYShhLGUpe2xldHskY3Vyc29yOnR9PWEuc2VsZWN0aW9uO3JldHVybiF0fHwoZT8hZS5lbmRPZlRleHRibG9jaygiZm9yd2FyZCIsYSk6dC5wYXJlbnRPZmZzZXQ8dC5wYXJlbnQuY29udGVudC5zaXplKT9udWxsOnR9ZnVuY3Rpb24gc1plKGEpe2lmKCFhLnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nKWZvcihsZXQgZT1hLmRlcHRoLTE7ZT49MDtlLS0pe2xldCB0PWEubm9kZShlKTtpZihhLmluZGV4KGUpKzE8dC5jaGlsZENvdW50KXJldHVybiBhLmRvYy5yZXNvbHZlKGEuYWZ0ZXIoZSsxKSk7aWYodC50eXBlLnNwZWMuaXNvbGF0aW5nKWJyZWFrfXJldHVybiBudWxsfWZ1bmN0aW9uIGlaZShhKXtmb3IobGV0IGU9MDtlPGEuZWRnZUNvdW50O2UrKyl7bGV0e3R5cGU6dH09YS5lZGdlKGUpO2lmKHQuaXNUZXh0YmxvY2smJiF0Lmhhc1JlcXVpcmVkQXR0cnMoKSlyZXR1cm4gdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBMbmEoYSl7cmV0dXJuKGUsdCk9PntsZXR7JGZyb206ciwkdG86aX09ZS5zZWxlY3Rpb247aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBrdCYmZS5zZWxlY3Rpb24ubm9kZS5pc0Jsb2NrKXJldHVybiFyLnBhcmVudE9mZnNldHx8IU5vKGUuZG9jLHIucG9zKT8hMToodCYmdChlLnRyLnNwbGl0KHIucG9zKS5zY3JvbGxJbnRvVmlldygpKSwhMCk7aWYoIXIuZGVwdGgpcmV0dXJuITE7bGV0IG89W10sbixsLGQ9ITEsYz0hMTtmb3IobGV0IHY9ci5kZXB0aDs7di0tKWlmKHIubm9kZSh2KS5pc0Jsb2NrKXtkPXIuZW5kKHYpPT1yLnBvcysoci5kZXB0aC12KSxjPXIuc3RhcnQodik9PXIucG9zLShyLmRlcHRoLXYpLGw9aVplKHIubm9kZSh2LTEpLmNvbnRlbnRNYXRjaEF0KHIuaW5kZXhBZnRlcih2LTEpKSk7bGV0IGI9YSYmYShpLnBhcmVudCxkLHIpO28udW5zaGlmdChifHwoZCYmbD97dHlwZTpsfTpudWxsKSksbj12O2JyZWFrfWVsc2V7aWYodj09MSlyZXR1cm4hMTtvLnVuc2hpZnQobnVsbCl9bGV0IHA9ZS50cjsoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBOdHx8ZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBJaSkmJnAuZGVsZXRlU2VsZWN0aW9uKCk7bGV0IHU9cC5tYXBwaW5nLm1hcChyLnBvcyksbT1ObyhwLmRvYyx1LG8ubGVuZ3RoLG8pO2lmKG18fChvWzBdPWw/e3R5cGU6bH06bnVsbCxtPU5vKHAuZG9jLHUsby5sZW5ndGgsbykpLCFtKXJldHVybiExO2lmKHAuc3BsaXQodSxvLmxlbmd0aCxvKSwhZCYmYyYmci5ub2RlKG4pLnR5cGUhPWwpe2xldCB2PXAubWFwcGluZy5tYXAoci5iZWZvcmUobikpLHg9cC5kb2MucmVzb2x2ZSh2KTtsJiZyLm5vZGUobi0xKS5jYW5SZXBsYWNlV2l0aCh4LmluZGV4KCkseC5pbmRleCgpKzEsbCkmJnAuc2V0Tm9kZU1hcmt1cChwLm1hcHBpbmcubWFwKHIuYmVmb3JlKG4pKSxsKX1yZXR1cm4gdCYmdChwLnNjcm9sbEludG9WaWV3KCkpLCEwfX1mdW5jdGlvbiBTUGEoYSxlLHQpe2xldCByPWUubm9kZUJlZm9yZSxpPWUubm9kZUFmdGVyLG89ZS5pbmRleCgpO3JldHVybiFyfHwhaXx8IXIudHlwZS5jb21wYXRpYmxlQ29udGVudChpLnR5cGUpPyExOiFyLmNvbnRlbnQuc2l6ZSYmZS5wYXJlbnQuY2FuUmVwbGFjZShvLTEsbyk/KHQmJnQoYS50ci5kZWxldGUoZS5wb3Mtci5ub2RlU2l6ZSxlLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApOiFlLnBhcmVudC5jYW5SZXBsYWNlKG8sbysxKXx8IShpLmlzVGV4dGJsb2NrfHxzbihhLmRvYyxlLnBvcykpPyExOih0JiZ0KGEudHIuam9pbihlLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApfWZ1bmN0aW9uIERuYShhLGUsdCxyKXtsZXQgaT1lLm5vZGVCZWZvcmUsbz1lLm5vZGVBZnRlcixuLGwsZD1pLnR5cGUuc3BlYy5pc29sYXRpbmd8fG8udHlwZS5zcGVjLmlzb2xhdGluZztpZighZCYmU1BhKGEsZSx0KSlyZXR1cm4hMDtsZXQgYz0hZCYmZS5wYXJlbnQuY2FuUmVwbGFjZShlLmluZGV4KCksZS5pbmRleCgpKzEpO2lmKGMmJihuPShsPWkuY29udGVudE1hdGNoQXQoaS5jaGlsZENvdW50KSkuZmluZFdyYXBwaW5nKG8udHlwZSkpJiZsLm1hdGNoVHlwZShuWzBdfHxvLnR5cGUpLnZhbGlkRW5kKXtpZih0KXtsZXQgdj1lLnBvcytvLm5vZGVTaXplLHg9amUuZW1wdHk7Zm9yKGxldCB5PW4ubGVuZ3RoLTE7eT49MDt5LS0peD1qZS5mcm9tKG5beV0uY3JlYXRlKG51bGwseCkpO3g9amUuZnJvbShpLmNvcHkoeCkpO2xldCBiPWEudHIuc3RlcChuZXcgdHMoZS5wb3MtMSx2LGUucG9zLHYsbmV3IHN0KHgsMSwwKSxuLmxlbmd0aCwhMCkpLGc9Yi5kb2MucmVzb2x2ZSh2KzIqbi5sZW5ndGgpO2cubm9kZUFmdGVyJiZnLm5vZGVBZnRlci50eXBlPT1pLnR5cGUmJnNuKGIuZG9jLGcucG9zKSYmYi5qb2luKGcucG9zKSx0KGIuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9bGV0IHA9by50eXBlLnNwZWMuaXNvbGF0aW5nfHxyPjAmJmQ/bnVsbDpFdC5maW5kRnJvbShlLDEpLHU9cCYmcC4kZnJvbS5ibG9ja1JhbmdlKHAuJHRvKSxtPXUmJlkyKHUpO2lmKG0hPW51bGwmJm0+PWUuZGVwdGgpcmV0dXJuIHQmJnQoYS50ci5saWZ0KHUsbSkuc2Nyb2xsSW50b1ZpZXcoKSksITA7aWYoYyYmX20obywic3RhcnQiLCEwKSYmX20oaSwiZW5kIikpe2xldCB2PWkseD1bXTtmb3IoO3gucHVzaCh2KSwhdi5pc1RleHRibG9jazspdj12Lmxhc3RDaGlsZDtsZXQgYj1vLGc9MTtmb3IoOyFiLmlzVGV4dGJsb2NrO2I9Yi5maXJzdENoaWxkKWcrKztpZih2LmNhblJlcGxhY2Uodi5jaGlsZENvdW50LHYuY2hpbGRDb3VudCxiLmNvbnRlbnQpKXtpZih0KXtsZXQgeT1qZS5lbXB0eTtmb3IobGV0IEM9eC5sZW5ndGgtMTtDPj0wO0MtLSl5PWplLmZyb20oeFtDXS5jb3B5KHkpKTtsZXQgaz1hLnRyLnN0ZXAobmV3IHRzKGUucG9zLXgubGVuZ3RoLGUucG9zK28ubm9kZVNpemUsZS5wb3MrZyxlLnBvcytvLm5vZGVTaXplLWcsbmV3IHN0KHkseC5sZW5ndGgsMCksMCwhMCkpO3Qoay5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gQW5hKGEpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldCByPWUuc2VsZWN0aW9uLGk9YTwwP3IuJGZyb206ci4kdG8sbz1pLmRlcHRoO2Zvcig7aS5ub2RlKG8pLmlzSW5saW5lOyl7aWYoIW8pcmV0dXJuITE7by0tfXJldHVybiBpLm5vZGUobykuaXNUZXh0YmxvY2s/KHQmJnQoZS50ci5zZXRTZWxlY3Rpb24oTnQuY3JlYXRlKGUuZG9jLGE8MD9pLnN0YXJ0KG8pOmkuZW5kKG8pKSkpLCEwKTohMX19ZnVuY3Rpb24gbVplKGEsZT1udWxsKXtyZXR1cm4gZnVuY3Rpb24odCxyKXtsZXR7JGZyb206aSwkdG86b309dC5zZWxlY3Rpb24sbj1pLmJsb2NrUmFuZ2UobyksbD1uJiZCZihuLGEsZSk7cmV0dXJuIGw/KHImJnIodC50ci53cmFwKG4sbCkuc2Nyb2xsSW50b1ZpZXcoKSksITApOiExfX1mdW5jdGlvbiBvcmUoYSxlPW51bGwpe3JldHVybiBmdW5jdGlvbih0LHIpe2xldCBpPSExO2ZvcihsZXQgbz0wO288dC5zZWxlY3Rpb24ucmFuZ2VzLmxlbmd0aCYmIWk7bysrKXtsZXR7JGZyb206e3BvczpufSwkdG86e3BvczpsfX09dC5zZWxlY3Rpb24ucmFuZ2VzW29dO3QuZG9jLm5vZGVzQmV0d2VlbihuLGwsKGQsYyk9PntpZihpKXJldHVybiExO2lmKCEoIWQuaXNUZXh0YmxvY2t8fGQuaGFzTWFya3VwKGEsZSkpKWlmKGQudHlwZT09YSlpPSEwO2Vsc2V7bGV0IHA9dC5kb2MucmVzb2x2ZShjKSx1PXAuaW5kZXgoKTtpPXAucGFyZW50LmNhblJlcGxhY2VXaXRoKHUsdSsxLGEpfX0pfWlmKCFpKXJldHVybiExO2lmKHIpe2xldCBvPXQudHI7Zm9yKGxldCBuPTA7bjx0LnNlbGVjdGlvbi5yYW5nZXMubGVuZ3RoO24rKyl7bGV0eyRmcm9tOntwb3M6bH0sJHRvOntwb3M6ZH19PXQuc2VsZWN0aW9uLnJhbmdlc1tuXTtvLnNldEJsb2NrVHlwZShsLGQsYSxlKX1yKG8uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9fWZ1bmN0aW9uIHpQYShhLGUsdCxyKXtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7bGV0eyRmcm9tOm8sJHRvOm59PWVbaV0sbD1vLmRlcHRoPT0wP2EuaW5saW5lQ29udGVudCYmYS50eXBlLmFsbG93c01hcmtUeXBlKHQpOiExO2lmKGEubm9kZXNCZXR3ZWVuKG8ucG9zLG4ucG9zLChkLGMpPT57aWYobHx8IXImJmQuaXNBdG9tJiZkLmlzSW5saW5lJiZjPj1vLnBvcyYmYytkLm5vZGVTaXplPD1uLnBvcylyZXR1cm4hMTtsPWQuaW5saW5lQ29udGVudCYmZC50eXBlLmFsbG93c01hcmtUeXBlKHQpfSksbClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBDUGEoYSl7bGV0IGU9W107Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspe2xldHskZnJvbTpyLCR0bzppfT1hW3RdO3IuZG9jLm5vZGVzQmV0d2VlbihyLnBvcyxpLnBvcywobyxuKT0+e2lmKG8uaXNBdG9tJiZvLmNvbnRlbnQuc2l6ZSYmby5pc0lubGluZSYmbj49ci5wb3MmJm4rby5ub2RlU2l6ZTw9aS5wb3MpcmV0dXJuIG4rMT5yLnBvcyYmZS5wdXNoKG5ldyBWZihyLHIuZG9jLnJlc29sdmUobisxKSkpLHI9ci5kb2MucmVzb2x2ZShuKzErby5jb250ZW50LnNpemUpLCExfSksci5wb3M8aS5wb3MmJmUucHVzaChuZXcgVmYocixpKSl9cmV0dXJuIGV9ZnVuY3Rpb24gX1BhKGEsZT1udWxsLHQpe2xldCByPSh0JiZ0LnJlbW92ZVdoZW5QcmVzZW50KSE9PSExLGk9KHQmJnQuZW50ZXJJbmxpbmVBdG9tcykhPT0hMSxvPSEodCYmdC5pbmNsdWRlV2hpdGVzcGFjZSk7cmV0dXJuIGZ1bmN0aW9uKG4sbCl7bGV0e2VtcHR5OmQsJGN1cnNvcjpjLHJhbmdlczpwfT1uLnNlbGVjdGlvbjtpZihkJiYhY3x8IXpQYShuLmRvYyxwLGEsaSkpcmV0dXJuITE7aWYobClpZihjKWEuaXNJblNldChuLnN0b3JlZE1hcmtzfHxjLm1hcmtzKCkpP2wobi50ci5yZW1vdmVTdG9yZWRNYXJrKGEpKTpsKG4udHIuYWRkU3RvcmVkTWFyayhhLmNyZWF0ZShlKSkpO2Vsc2V7bGV0IHUsbT1uLnRyO2l8fChwPUNQYShwKSkscj91PSFwLnNvbWUodj0+bi5kb2MucmFuZ2VIYXNNYXJrKHYuJGZyb20ucG9zLHYuJHRvLnBvcyxhKSk6dT0hcC5ldmVyeSh2PT57bGV0IHg9ITE7cmV0dXJuIG0uZG9jLm5vZGVzQmV0d2Vlbih2LiRmcm9tLnBvcyx2LiR0by5wb3MsKGIsZyx5KT0+e2lmKHgpcmV0dXJuITE7eD0hYS5pc0luU2V0KGIubWFya3MpJiYhIXkmJnkudHlwZS5hbGxvd3NNYXJrVHlwZShhKSYmIShiLmlzVGV4dCYmL15ccyokLy50ZXN0KGIudGV4dEJldHdlZW4oTWF0aC5tYXgoMCx2LiRmcm9tLnBvcy1nKSxNYXRoLm1pbihiLm5vZGVTaXplLHYuJHRvLnBvcy1nKSkpKX0pLCF4fSk7Zm9yKGxldCB2PTA7djxwLmxlbmd0aDt2Kyspe2xldHskZnJvbTp4LCR0bzpifT1wW3ZdO2lmKCF1KW0ucmVtb3ZlTWFyayh4LnBvcyxiLnBvcyxhKTtlbHNle2xldCBnPXgucG9zLHk9Yi5wb3Msaz14Lm5vZGVBZnRlcixDPWIubm9kZUJlZm9yZSxOPW8mJmsmJmsuaXNUZXh0Py9eXHMqLy5leGVjKGsudGV4dClbMF0ubGVuZ3RoOjAsXz1vJiZDJiZDLmlzVGV4dD8vXHMqJC8uZXhlYyhDLnRleHQpWzBdLmxlbmd0aDowO2crTjx5JiYoZys9Tix5LT1fKSxtLmFkZE1hcmsoZyx5LGEuY3JlYXRlKGUpKX19bChtLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1mdW5jdGlvbiBUUGEoYSxlKXtyZXR1cm4gdD0+e2lmKCF0LmlzR2VuZXJpYylyZXR1cm4gYSh0KTtsZXQgcj1bXTtmb3IobGV0IG89MDtvPHQubWFwcGluZy5tYXBzLmxlbmd0aDtvKyspe2xldCBuPXQubWFwcGluZy5tYXBzW29dO2ZvcihsZXQgbD0wO2w8ci5sZW5ndGg7bCsrKXJbbF09bi5tYXAocltsXSk7bi5mb3JFYWNoKChsLGQsYyxwKT0+ci5wdXNoKGMscCkpfWxldCBpPVtdO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bys9Mil7bGV0IG49cltvXSxsPXJbbysxXSxkPXQuZG9jLnJlc29sdmUobiksYz1kLnNoYXJlZERlcHRoKGwpLHA9ZC5ub2RlKGMpO2ZvcihsZXQgdT1kLmluZGV4QWZ0ZXIoYyksbT1kLmFmdGVyKGMrMSk7bTw9bDsrK3Upe2xldCB2PXAubWF5YmVDaGlsZCh1KTtpZighdilicmVhaztpZih1JiZpLmluZGV4T2YobSk9PS0xKXtsZXQgeD1wLmNoaWxkKHUtMSk7eC50eXBlPT12LnR5cGUmJmUoeCx2KSYmaS5wdXNoKG0pfW0rPXYubm9kZVNpemV9fWkuc29ydCgobyxuKT0+by1uKTtmb3IobGV0IG89aS5sZW5ndGgtMTtvPj0wO28tLSlzbih0LmRvYyxpW29dKSYmdC5qb2luKGlbb10pO2EodCl9fWZ1bmN0aW9uIExQYShhLGUpe2xldCB0PUFycmF5LmlzQXJyYXkoZSk/cj0+ZS5pbmRleE9mKHIudHlwZS5uYW1lKT4tMTplO3JldHVybihyLGksbyk9PmEocixpJiZUUGEoaSx0KSxvKX1mdW5jdGlvbiBLYWUoLi4uYSl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKylpZihhW2ldKGUsdCxyKSlyZXR1cm4hMDtyZXR1cm4hMX19dmFyIG9XLFphZSxjWmUsZFplLFhhZSxRYWUsSmFlLHVaZSxwWmUsZlplLGVyZSx0cmUsYXJlLHJyZSxvWmUsa1BhLGhaZSwkbmEsc3JlLGlyZSxuWmUsUG5hLFgyLGxaZSwkUGEsRFBhLEVuYT1mKCgpPT57aDQoKTtwNCgpO21jKCk7b1c9cygoYSxlKT0+YS5zZWxlY3Rpb24uZW1wdHk/ITE6KGUmJmUoYS50ci5kZWxldGVTZWxlY3Rpb24oKS5zY3JvbGxJbnRvVmlldygpKSwhMCksImRlbGV0ZVNlbGVjdGlvbiIpO3MoQ25hLCJhdEJsb2NrU3RhcnQiKTtaYWU9cygoYSxlLHQpPT57bGV0IHI9Q25hKGEsdCk7aWYoIXIpcmV0dXJuITE7bGV0IGk9clplKHIpO2lmKCFpKXtsZXQgbj1yLmJsb2NrUmFuZ2UoKSxsPW4mJlkyKG4pO3JldHVybiBsPT1udWxsPyExOihlJiZlKGEudHIubGlmdChuLGwpLnNjcm9sbEludG9WaWV3KCkpLCEwKX1sZXQgbz1pLm5vZGVCZWZvcmU7aWYoRG5hKGEsaSxlLC0xKSlyZXR1cm4hMDtpZihyLnBhcmVudC5jb250ZW50LnNpemU9PTAmJihfbShvLCJlbmQiKXx8a3QuaXNTZWxlY3RhYmxlKG8pKSlmb3IobGV0IG49ci5kZXB0aDs7bi0tKXtsZXQgbD1ibShhLmRvYyxyLmJlZm9yZShuKSxyLmFmdGVyKG4pLHN0LmVtcHR5KTtpZihsJiZsLnNsaWNlLnNpemU8bC50by1sLmZyb20pe2lmKGUpe2xldCBkPWEudHIuc3RlcChsKTtkLnNldFNlbGVjdGlvbihfbShvLCJlbmQiKT9FdC5maW5kRnJvbShkLmRvYy5yZXNvbHZlKGQubWFwcGluZy5tYXAoaS5wb3MsLTEpKSwtMSk6a3QuY3JlYXRlKGQuZG9jLGkucG9zLW8ubm9kZVNpemUpKSxlKGQuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9aWYobj09MXx8ci5ub2RlKG4tMSkuY2hpbGRDb3VudD4xKWJyZWFrfXJldHVybiBvLmlzQXRvbSYmaS5kZXB0aD09ci5kZXB0aC0xPyhlJiZlKGEudHIuZGVsZXRlKGkucG9zLW8ubm9kZVNpemUsaS5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX0sImpvaW5CYWNrd2FyZCIpLGNaZT1zKChhLGUsdCk9PntsZXQgcj1DbmEoYSx0KTtpZighcilyZXR1cm4hMTtsZXQgaT1yWmUocik7cmV0dXJuIGk/X25hKGEsaSxlKTohMX0sImpvaW5UZXh0YmxvY2tCYWNrd2FyZCIpLGRaZT1zKChhLGUsdCk9PntsZXQgcj1UbmEoYSx0KTtpZighcilyZXR1cm4hMTtsZXQgaT1zWmUocik7cmV0dXJuIGk/X25hKGEsaSxlKTohMX0sImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7cyhfbmEsImpvaW5UZXh0YmxvY2tzQXJvdW5kIik7cyhfbSwidGV4dGJsb2NrQXQiKTtYYWU9cygoYSxlLHQpPT57bGV0eyRoZWFkOnIsZW1wdHk6aX09YS5zZWxlY3Rpb24sbz1yO2lmKCFpKXJldHVybiExO2lmKHIucGFyZW50LmlzVGV4dGJsb2NrKXtpZih0PyF0LmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIsYSk6ci5wYXJlbnRPZmZzZXQ+MClyZXR1cm4hMTtvPXJaZShyKX1sZXQgbj1vJiZvLm5vZGVCZWZvcmU7cmV0dXJuIW58fCFrdC5pc1NlbGVjdGFibGUobik/ITE6KGUmJmUoYS50ci5zZXRTZWxlY3Rpb24oa3QuY3JlYXRlKGEuZG9jLG8ucG9zLW4ubm9kZVNpemUpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlQmFja3dhcmQiKTtzKHJaZSwiZmluZEN1dEJlZm9yZSIpO3MoVG5hLCJhdEJsb2NrRW5kIik7UWFlPXMoKGEsZSx0KT0+e2xldCByPVRuYShhLHQpO2lmKCFyKXJldHVybiExO2xldCBpPXNaZShyKTtpZighaSlyZXR1cm4hMTtsZXQgbz1pLm5vZGVBZnRlcjtpZihEbmEoYSxpLGUsMSkpcmV0dXJuITA7aWYoci5wYXJlbnQuY29udGVudC5zaXplPT0wJiYoX20obywic3RhcnQiKXx8a3QuaXNTZWxlY3RhYmxlKG8pKSl7bGV0IG49Ym0oYS5kb2Msci5iZWZvcmUoKSxyLmFmdGVyKCksc3QuZW1wdHkpO2lmKG4mJm4uc2xpY2Uuc2l6ZTxuLnRvLW4uZnJvbSl7aWYoZSl7bGV0IGw9YS50ci5zdGVwKG4pO2wuc2V0U2VsZWN0aW9uKF9tKG8sInN0YXJ0Iik/RXQuZmluZEZyb20obC5kb2MucmVzb2x2ZShsLm1hcHBpbmcubWFwKGkucG9zKSksMSk6a3QuY3JlYXRlKGwuZG9jLGwubWFwcGluZy5tYXAoaS5wb3MpKSksZShsLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1yZXR1cm4gby5pc0F0b20mJmkuZGVwdGg9PXIuZGVwdGgtMT8oZSYmZShhLnRyLmRlbGV0ZShpLnBvcyxpLnBvcytvLm5vZGVTaXplKS5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9LCJqb2luRm9yd2FyZCIpLEphZT1zKChhLGUsdCk9PntsZXR7JGhlYWQ6cixlbXB0eTppfT1hLnNlbGVjdGlvbixvPXI7aWYoIWkpcmV0dXJuITE7aWYoci5wYXJlbnQuaXNUZXh0YmxvY2spe2lmKHQ/IXQuZW5kT2ZUZXh0YmxvY2soImZvcndhcmQiLGEpOnIucGFyZW50T2Zmc2V0PHIucGFyZW50LmNvbnRlbnQuc2l6ZSlyZXR1cm4hMTtvPXNaZShyKX1sZXQgbj1vJiZvLm5vZGVBZnRlcjtyZXR1cm4hbnx8IWt0LmlzU2VsZWN0YWJsZShuKT8hMTooZSYmZShhLnRyLnNldFNlbGVjdGlvbihrdC5jcmVhdGUoYS5kb2Msby5wb3MpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlRm9yd2FyZCIpO3Moc1plLCJmaW5kQ3V0QWZ0ZXIiKTt1WmU9cygoYSxlKT0+e2xldCB0PWEuc2VsZWN0aW9uLHI9dCBpbnN0YW5jZW9mIGt0LGk7aWYocil7aWYodC5ub2RlLmlzVGV4dGJsb2NrfHwhc24oYS5kb2MsdC5mcm9tKSlyZXR1cm4hMTtpPXQuZnJvbX1lbHNlIGlmKGk9SGYoYS5kb2MsdC5mcm9tLC0xKSxpPT1udWxsKXJldHVybiExO2lmKGUpe2xldCBvPWEudHIuam9pbihpKTtyJiZvLnNldFNlbGVjdGlvbihrdC5jcmVhdGUoby5kb2MsaS1hLmRvYy5yZXNvbHZlKGkpLm5vZGVCZWZvcmUubm9kZVNpemUpKSxlKG8uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJqb2luVXAiKSxwWmU9cygoYSxlKT0+e2xldCB0PWEuc2VsZWN0aW9uLHI7aWYodCBpbnN0YW5jZW9mIGt0KXtpZih0Lm5vZGUuaXNUZXh0YmxvY2t8fCFzbihhLmRvYyx0LnRvKSlyZXR1cm4hMTtyPXQudG99ZWxzZSBpZihyPUhmKGEuZG9jLHQudG8sMSkscj09bnVsbClyZXR1cm4hMTtyZXR1cm4gZSYmZShhLnRyLmpvaW4ocikuc2Nyb2xsSW50b1ZpZXcoKSksITB9LCJqb2luRG93biIpLGZaZT1zKChhLGUpPT57bGV0eyRmcm9tOnQsJHRvOnJ9PWEuc2VsZWN0aW9uLGk9dC5ibG9ja1JhbmdlKHIpLG89aSYmWTIoaSk7cmV0dXJuIG89PW51bGw/ITE6KGUmJmUoYS50ci5saWZ0KGksbykuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibGlmdCIpLGVyZT1zKChhLGUpPT57bGV0eyRoZWFkOnQsJGFuY2hvcjpyfT1hLnNlbGVjdGlvbjtyZXR1cm4hdC5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCF0LnNhbWVQYXJlbnQocik/ITE6KGUmJmUoYS50ci5pbnNlcnRUZXh0KGAKYCkuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibmV3bGluZUluQ29kZSIpO3MoaVplLCJkZWZhdWx0QmxvY2tBdCIpO3RyZT1zKChhLGUpPT57bGV0eyRoZWFkOnQsJGFuY2hvcjpyfT1hLnNlbGVjdGlvbjtpZighdC5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCF0LnNhbWVQYXJlbnQocikpcmV0dXJuITE7bGV0IGk9dC5ub2RlKC0xKSxvPXQuaW5kZXhBZnRlcigtMSksbj1pWmUoaS5jb250ZW50TWF0Y2hBdChvKSk7aWYoIW58fCFpLmNhblJlcGxhY2VXaXRoKG8sbyxuKSlyZXR1cm4hMTtpZihlKXtsZXQgbD10LmFmdGVyKCksZD1hLnRyLnJlcGxhY2VXaXRoKGwsbCxuLmNyZWF0ZUFuZEZpbGwoKSk7ZC5zZXRTZWxlY3Rpb24oRXQubmVhcihkLmRvYy5yZXNvbHZlKGwpLDEpKSxlKGQuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJleGl0Q29kZSIpLGFyZT1zKChhLGUpPT57bGV0IHQ9YS5zZWxlY3Rpb24seyRmcm9tOnIsJHRvOml9PXQ7aWYodCBpbnN0YW5jZW9mIElpfHxyLnBhcmVudC5pbmxpbmVDb250ZW50fHxpLnBhcmVudC5pbmxpbmVDb250ZW50KXJldHVybiExO2xldCBvPWlaZShpLnBhcmVudC5jb250ZW50TWF0Y2hBdChpLmluZGV4QWZ0ZXIoKSkpO2lmKCFvfHwhby5pc1RleHRibG9jaylyZXR1cm4hMTtpZihlKXtsZXQgbj0oIXIucGFyZW50T2Zmc2V0JiZpLmluZGV4KCk8aS5wYXJlbnQuY2hpbGRDb3VudD9yOmkpLnBvcyxsPWEudHIuaW5zZXJ0KG4sby5jcmVhdGVBbmRGaWxsKCkpO2wuc2V0U2VsZWN0aW9uKE50LmNyZWF0ZShsLmRvYyxuKzEpKSxlKGwuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJjcmVhdGVQYXJhZ3JhcGhOZWFyIikscnJlPXMoKGEsZSk9PntsZXR7JGN1cnNvcjp0fT1hLnNlbGVjdGlvbjtpZighdHx8dC5wYXJlbnQuY29udGVudC5zaXplKXJldHVybiExO2lmKHQuZGVwdGg+MSYmdC5hZnRlcigpIT10LmVuZCgtMSkpe2xldCBvPXQuYmVmb3JlKCk7aWYoTm8oYS5kb2MsbykpcmV0dXJuIGUmJmUoYS50ci5zcGxpdChvKS5zY3JvbGxJbnRvVmlldygpKSwhMH1sZXQgcj10LmJsb2NrUmFuZ2UoKSxpPXImJlkyKHIpO3JldHVybiBpPT1udWxsPyExOihlJiZlKGEudHIubGlmdChyLGkpLnNjcm9sbEludG9WaWV3KCkpLCEwKX0sImxpZnRFbXB0eUJsb2NrIik7cyhMbmEsInNwbGl0QmxvY2tBcyIpO29aZT1MbmEoKSxrUGE9cygoYSxlKT0+b1plKGEsZSYmKHQ9PntsZXQgcj1hLnN0b3JlZE1hcmtzfHxhLnNlbGVjdGlvbi4kdG8ucGFyZW50T2Zmc2V0JiZhLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpO3ImJnQuZW5zdXJlTWFya3MociksZSh0KX0pKSwic3BsaXRCbG9ja0tlZXBNYXJrcyIpLGhaZT1zKChhLGUpPT57bGV0eyRmcm9tOnQsdG86cn09YS5zZWxlY3Rpb24saSxvPXQuc2hhcmVkRGVwdGgocik7cmV0dXJuIG89PTA/ITE6KGk9dC5iZWZvcmUobyksZSYmZShhLnRyLnNldFNlbGVjdGlvbihrdC5jcmVhdGUoYS5kb2MsaSkpKSwhMCl9LCJzZWxlY3RQYXJlbnROb2RlIiksJG5hPXMoKGEsZSk9PihlJiZlKGEudHIuc2V0U2VsZWN0aW9uKG5ldyBJaShhLmRvYykpKSwhMCksInNlbGVjdEFsbCIpO3MoU1BhLCJqb2luTWF5YmVDbGVhciIpO3MoRG5hLCJkZWxldGVCYXJyaWVyIik7cyhBbmEsInNlbGVjdFRleHRibG9ja1NpZGUiKTtzcmU9QW5hKC0xKSxpcmU9QW5hKDEpO3MobVplLCJ3cmFwSW4iKTtzKG9yZSwic2V0QmxvY2tUeXBlIik7cyh6UGEsIm1hcmtBcHBsaWVzIik7cyhDUGEsInJlbW92ZUlubGluZUF0b21zIik7cyhfUGEsInRvZ2dsZU1hcmsiKTtzKFRQYSwid3JhcERpc3BhdGNoRm9ySm9pbiIpO3MoTFBhLCJhdXRvSm9pbiIpO3MoS2FlLCJjaGFpbkNvbW1hbmRzIik7blplPUthZShvVyxaYWUsWGFlKSxQbmE9S2FlKG9XLFFhZSxKYWUpLFgyPXtFbnRlcjpLYWUoZXJlLGFyZSxycmUsb1plKSwiTW9kLUVudGVyIjp0cmUsQmFja3NwYWNlOm5aZSwiTW9kLUJhY2tzcGFjZSI6blplLCJTaGlmdC1CYWNrc3BhY2UiOm5aZSxEZWxldGU6UG5hLCJNb2QtRGVsZXRlIjpQbmEsIk1vZC1hIjokbmF9LGxaZT17IkN0cmwtaCI6WDIuQmFja3NwYWNlLCJBbHQtQmFja3NwYWNlIjpYMlsiTW9kLUJhY2tzcGFjZSJdLCJDdHJsLWQiOlgyLkRlbGV0ZSwiQ3RybC1BbHQtQmFja3NwYWNlIjpYMlsiTW9kLURlbGV0ZSJdLCJBbHQtRGVsZXRlIjpYMlsiTW9kLURlbGV0ZSJdLCJBbHQtZCI6WDJbIk1vZC1EZWxldGUiXSwiQ3RybC1hIjpzcmUsIkN0cmwtZSI6aXJlfTtmb3IobGV0IGEgaW4gWDIpbFplW2FdPVgyW2FdOyRQYT10eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vTWFjfGlQKGhvbmV8W29hXWQpLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk6dHlwZW9mIG9zPCJ1IiYmb3MucGxhdGZvcm0/b3MucGxhdGZvcm0oKT09ImRhcndpbiI6ITEsRFBhPSRQYT9sWmU6WDJ9KTt2YXIgSW5hPWYoKCk9PntFbmEoKX0pO2Z1bmN0aW9uIGdaZShhLGUpe2xldCB0PXt9O2ZvcihsZXQgciBpbiBhKXRbcl09YVtyXTtmb3IobGV0IHIgaW4gZSl0W3JdPWVbcl07cmV0dXJuIHR9ZnVuY3Rpb24gSVBhKGEsZSx0KXtyZXR1cm4gYS5hcHBlbmQoe29yZGVyZWRfbGlzdDpnWmUoTm5hLHtjb250ZW50OiJsaXN0X2l0ZW0rIixncm91cDp0fSksYnVsbGV0X2xpc3Q6Z1plKFJuYSx7Y29udGVudDoibGlzdF9pdGVtKyIsZ3JvdXA6dH0pLGxpc3RfaXRlbTpnWmUoT25hLHtjb250ZW50OmV9KX0pfWZ1bmN0aW9uIGJaZShhLGU9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uKHQscil7bGV0eyRmcm9tOmksJHRvOm99PXQuc2VsZWN0aW9uLG49aS5ibG9ja1JhbmdlKG8pO2lmKCFuKXJldHVybiExO2xldCBsPXI/dC50cjpudWxsO3JldHVybiBGbmEobCxuLGEsZSk/KHImJnIobC5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9fWZ1bmN0aW9uIEZuYShhLGUsdCxyPW51bGwpe2xldCBpPSExLG89ZSxuPWUuJGZyb20uZG9jO2lmKGUuZGVwdGg+PTImJmUuJGZyb20ubm9kZShlLmRlcHRoLTEpLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQodCkmJmUuc3RhcnRJbmRleD09MCl7aWYoZS4kZnJvbS5pbmRleChlLmRlcHRoLTEpPT0wKXJldHVybiExO2xldCBkPW4ucmVzb2x2ZShlLnN0YXJ0LTIpO289bmV3IHU0KGQsZCxlLmRlcHRoKSxlLmVuZEluZGV4PGUucGFyZW50LmNoaWxkQ291bnQmJihlPW5ldyB1NChlLiRmcm9tLG4ucmVzb2x2ZShlLiR0by5lbmQoZS5kZXB0aCkpLGUuZGVwdGgpKSxpPSEwfWxldCBsPUJmKG8sdCxyLGUpO3JldHVybiBsPyhhJiZOUGEoYSxlLGwsaSx0KSwhMCk6ITF9ZnVuY3Rpb24gTlBhKGEsZSx0LHIsaSl7bGV0IG89amUuZW1wdHk7Zm9yKGxldCBwPXQubGVuZ3RoLTE7cD49MDtwLS0pbz1qZS5mcm9tKHRbcF0udHlwZS5jcmVhdGUodFtwXS5hdHRycyxvKSk7YS5zdGVwKG5ldyB0cyhlLnN0YXJ0LShyPzI6MCksZS5lbmQsZS5zdGFydCxlLmVuZCxuZXcgc3QobywwLDApLHQubGVuZ3RoLCEwKSk7bGV0IG49MDtmb3IobGV0IHA9MDtwPHQubGVuZ3RoO3ArKyl0W3BdLnR5cGU9PWkmJihuPXArMSk7bGV0IGw9dC5sZW5ndGgtbixkPWUuc3RhcnQrdC5sZW5ndGgtKHI/MjowKSxjPWUucGFyZW50O2ZvcihsZXQgcD1lLnN0YXJ0SW5kZXgsdT1lLmVuZEluZGV4LG09ITA7cDx1O3ArKyxtPSExKSFtJiZObyhhLmRvYyxkLGwpJiYoYS5zcGxpdChkLGwpLGQrPTIqbCksZCs9Yy5jaGlsZChwKS5ub2RlU2l6ZTtyZXR1cm4gYX1mdW5jdGlvbiBCbmEoYSxlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXtsZXR7JGZyb206aSwkdG86byxub2RlOm59PXQuc2VsZWN0aW9uO2lmKG4mJm4uaXNCbG9ja3x8aS5kZXB0aDwyfHwhaS5zYW1lUGFyZW50KG8pKXJldHVybiExO2xldCBsPWkubm9kZSgtMSk7aWYobC50eXBlIT1hKXJldHVybiExO2lmKGkucGFyZW50LmNvbnRlbnQuc2l6ZT09MCYmaS5ub2RlKC0xKS5jaGlsZENvdW50PT1pLmluZGV4QWZ0ZXIoLTEpKXtpZihpLmRlcHRoPT0zfHxpLm5vZGUoLTMpLnR5cGUhPWF8fGkuaW5kZXgoLTIpIT1pLm5vZGUoLTIpLmNoaWxkQ291bnQtMSlyZXR1cm4hMTtpZihyKXtsZXQgdT1qZS5lbXB0eSxtPWkuaW5kZXgoLTEpPzE6aS5pbmRleCgtMik/MjozO2ZvcihsZXQgeT1pLmRlcHRoLW07eT49aS5kZXB0aC0zO3ktLSl1PWplLmZyb20oaS5ub2RlKHkpLmNvcHkodSkpO2xldCB2PWkuaW5kZXhBZnRlcigtMSk8aS5ub2RlKC0yKS5jaGlsZENvdW50PzE6aS5pbmRleEFmdGVyKC0yKTxpLm5vZGUoLTMpLmNoaWxkQ291bnQ/MjozO3U9dS5hcHBlbmQoamUuZnJvbShhLmNyZWF0ZUFuZEZpbGwoKSkpO2xldCB4PWkuYmVmb3JlKGkuZGVwdGgtKG0tMSkpLGI9dC50ci5yZXBsYWNlKHgsaS5hZnRlcigtdiksbmV3IHN0KHUsNC1tLDApKSxnPS0xO2IuZG9jLm5vZGVzQmV0d2Vlbih4LGIuZG9jLmNvbnRlbnQuc2l6ZSwoeSxrKT0+e2lmKGc+LTEpcmV0dXJuITE7eS5pc1RleHRibG9jayYmeS5jb250ZW50LnNpemU9PTAmJihnPWsrMSl9KSxnPi0xJiZiLnNldFNlbGVjdGlvbihFdC5uZWFyKGIuZG9jLnJlc29sdmUoZykpKSxyKGIuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9bGV0IGQ9by5wb3M9PWkuZW5kKCk/bC5jb250ZW50TWF0Y2hBdCgwKS5kZWZhdWx0VHlwZTpudWxsLGM9dC50ci5kZWxldGUoaS5wb3Msby5wb3MpLHA9ZD9bZT97dHlwZTphLGF0dHJzOmV9Om51bGwse3R5cGU6ZH1dOnZvaWQgMDtyZXR1cm4gTm8oYy5kb2MsaS5wb3MsMixwKT8ociYmcihjLnNwbGl0KGkucG9zLDIscCkuc2Nyb2xsSW50b1ZpZXcoKSksITApOiExfX1mdW5jdGlvbiBSUGEoYSxlKXtsZXQgdD1CbmEoYSxlKTtyZXR1cm4ocixpKT0+dChyLGkmJihvPT57bGV0IG49ci5zdG9yZWRNYXJrc3x8ci5zZWxlY3Rpb24uJHRvLnBhcmVudE9mZnNldCYmci5zZWxlY3Rpb24uJGZyb20ubWFya3MoKTtuJiZvLmVuc3VyZU1hcmtzKG4pLGkobyl9KSl9ZnVuY3Rpb24gdlplKGEpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldHskZnJvbTpyLCR0bzppfT1lLnNlbGVjdGlvbixvPXIuYmxvY2tSYW5nZShpLG49Pm4uY2hpbGRDb3VudD4wJiZuLmZpcnN0Q2hpbGQudHlwZT09YSk7cmV0dXJuIG8/dD9yLm5vZGUoby5kZXB0aC0xKS50eXBlPT1hP09QYShlLHQsYSxvKTpGUGEoZSx0LG8pOiEwOiExfX1mdW5jdGlvbiBPUGEoYSxlLHQscil7bGV0IGk9YS50cixvPXIuZW5kLG49ci4kdG8uZW5kKHIuZGVwdGgpO288biYmKGkuc3RlcChuZXcgdHMoby0xLG4sbyxuLG5ldyBzdChqZS5mcm9tKHQuY3JlYXRlKG51bGwsci5wYXJlbnQuY29weSgpKSksMSwwKSwxLCEwKSkscj1uZXcgdTQoaS5kb2MucmVzb2x2ZShyLiRmcm9tLnBvcyksaS5kb2MucmVzb2x2ZShuKSxyLmRlcHRoKSk7bGV0IGw9WTIocik7aWYobD09bnVsbClyZXR1cm4hMTtpLmxpZnQocixsKTtsZXQgZD1pLmRvYy5yZXNvbHZlKGkubWFwcGluZy5tYXAobywtMSktMSk7cmV0dXJuIHNuKGkuZG9jLGQucG9zKSYmZC5ub2RlQmVmb3JlLnR5cGU9PWQubm9kZUFmdGVyLnR5cGUmJmkuam9pbihkLnBvcyksZShpLnNjcm9sbEludG9WaWV3KCkpLCEwfWZ1bmN0aW9uIEZQYShhLGUsdCl7bGV0IHI9YS50cixpPXQucGFyZW50O2ZvcihsZXQgdj10LmVuZCx4PXQuZW5kSW5kZXgtMSxiPXQuc3RhcnRJbmRleDt4PmI7eC0tKXYtPWkuY2hpbGQoeCkubm9kZVNpemUsci5kZWxldGUodi0xLHYrMSk7bGV0IG89ci5kb2MucmVzb2x2ZSh0LnN0YXJ0KSxuPW8ubm9kZUFmdGVyO2lmKHIubWFwcGluZy5tYXAodC5lbmQpIT10LnN0YXJ0K28ubm9kZUFmdGVyLm5vZGVTaXplKXJldHVybiExO2xldCBsPXQuc3RhcnRJbmRleD09MCxkPXQuZW5kSW5kZXg9PWkuY2hpbGRDb3VudCxjPW8ubm9kZSgtMSkscD1vLmluZGV4KC0xKTtpZighYy5jYW5SZXBsYWNlKHArKGw/MDoxKSxwKzEsbi5jb250ZW50LmFwcGVuZChkP2plLmVtcHR5OmplLmZyb20oaSkpKSlyZXR1cm4hMTtsZXQgdT1vLnBvcyxtPXUrbi5ub2RlU2l6ZTtyZXR1cm4gci5zdGVwKG5ldyB0cyh1LShsPzE6MCksbSsoZD8xOjApLHUrMSxtLTEsbmV3IHN0KChsP2plLmVtcHR5OmplLmZyb20oaS5jb3B5KGplLmVtcHR5KSkpLmFwcGVuZChkP2plLmVtcHR5OmplLmZyb20oaS5jb3B5KGplLmVtcHR5KSkpLGw/MDoxLGQ/MDoxKSxsPzA6MSkpLGUoci5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiB4WmUoYSl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7bGV0eyRmcm9tOnIsJHRvOml9PWUuc2VsZWN0aW9uLG89ci5ibG9ja1JhbmdlKGksYz0+Yy5jaGlsZENvdW50PjAmJmMuZmlyc3RDaGlsZC50eXBlPT1hKTtpZighbylyZXR1cm4hMTtsZXQgbj1vLnN0YXJ0SW5kZXg7aWYobj09MClyZXR1cm4hMTtsZXQgbD1vLnBhcmVudCxkPWwuY2hpbGQobi0xKTtpZihkLnR5cGUhPWEpcmV0dXJuITE7aWYodCl7bGV0IGM9ZC5sYXN0Q2hpbGQmJmQubGFzdENoaWxkLnR5cGU9PWwudHlwZSxwPWplLmZyb20oYz9hLmNyZWF0ZSgpOm51bGwpLHU9bmV3IHN0KGplLmZyb20oYS5jcmVhdGUobnVsbCxqZS5mcm9tKGwudHlwZS5jcmVhdGUobnVsbCxwKSkpKSxjPzM6MSwwKSxtPW8uc3RhcnQsdj1vLmVuZDt0KGUudHIuc3RlcChuZXcgdHMobS0oYz8zOjEpLHYsbSx2LHUsMSwhMCkpLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX12YXIgQVBhLFBQYSxFUGEsTm5hLFJuYSxPbmEsSG5hPWYoKCk9PntoNCgpO3A0KCk7bWMoKTtBUGE9WyJvbCIsMF0sUFBhPVsidWwiLDBdLEVQYT1bImxpIiwwXSxObmE9e2F0dHJzOntvcmRlcjp7ZGVmYXVsdDoxLHZhbGlkYXRlOiJudW1iZXIifX0scGFyc2VET006W3t0YWc6Im9sIixnZXRBdHRycyhhKXtyZXR1cm57b3JkZXI6YS5oYXNBdHRyaWJ1dGUoInN0YXJ0Iik/K2EuZ2V0QXR0cmlidXRlKCJzdGFydCIpOjF9fX1dLHRvRE9NKGEpe3JldHVybiBhLmF0dHJzLm9yZGVyPT0xP0FQYTpbIm9sIix7c3RhcnQ6YS5hdHRycy5vcmRlcn0sMF19fSxSbmE9e3BhcnNlRE9NOlt7dGFnOiJ1bCJ9XSx0b0RPTSgpe3JldHVybiBQUGF9fSxPbmE9e3BhcnNlRE9NOlt7dGFnOiJsaSJ9XSx0b0RPTSgpe3JldHVybiBFUGF9LGRlZmluaW5nOiEwfTtzKGdaZSwiYWRkIik7cyhJUGEsImFkZExpc3ROb2RlcyIpO3MoYlplLCJ3cmFwSW5MaXN0Iik7cyhGbmEsIndyYXBSYW5nZUluTGlzdCIpO3MoTlBhLCJkb1dyYXBJbkxpc3QiKTtzKEJuYSwic3BsaXRMaXN0SXRlbSIpO3MoUlBhLCJzcGxpdExpc3RJdGVtS2VlcE1hcmtzIik7cyh2WmUsImxpZnRMaXN0SXRlbSIpO3MoT1BhLCJsaWZ0VG9PdXRlckxpc3QiKTtzKEZQYSwibGlmdE91dE9mTGlzdCIpO3MoeFplLCJzaW5rTGlzdEl0ZW0iKX0pO3ZhciBxbmE9ZigoKT0+e0huYSgpfSk7dmFyIHYxYT17fTtsdCh2MWEse0NvbW1hbmRNYW5hZ2VyOigpPT53NCxFZGl0b3I6KCk9PmtyZSxFeHRlbnNpb246KCk9PndyLElucHV0UnVsZTooKT0+d2MsTWFyazooKT0+bmksTm9kZTooKT0+b3IsTm9kZVBvczooKT0+Z1csTm9kZVZpZXc6KCk9PlNyZSxQYXN0ZVJ1bGU6KCk9PlFmLFRyYWNrZXI6KCk9PnpyZSxjYWxsT3JSZXR1cm46KCk9Pmp0LGNhbkluc2VydE5vZGU6KCk9PkRyZSxjb21iaW5lVHJhbnNhY3Rpb25TdGVwczooKT0+Q3JlLGNyZWF0ZUNoYWluYWJsZVN0YXRlOigpPT5UbSxjcmVhdGVEb2N1bWVudDooKT0+cFcsY3JlYXRlTm9kZUZyb21Db250ZW50OigpPT50NSxjcmVhdGVTdHlsZVRhZzooKT0+RlplLGRlZmF1bHRCbG9ja0F0OigpPT5QWmUsZGVsZXRlUHJvcHM6KCk9PnhyZSxlbGVtZW50RnJvbVN0cmluZzooKT0+ZTUsZXNjYXBlRm9yUmVnRXg6KCk9PmgxYSxleHRlbnNpb25zOigpPT5mMWEsZmluZENoaWxkcmVuOigpPT5zMWEsZmluZENoaWxkcmVuSW5SYW5nZTooKT0+X3JlLGZpbmREdXBsaWNhdGVzOigpPT4kWmUsZmluZFBhcmVudE5vZGU6KCk9PkltLGZpbmRQYXJlbnROb2RlQ2xvc2VzdFRvUG9zOigpPT5FWmUsZnJvbVN0cmluZzooKT0+elplLGdlbmVyYXRlSFRNTDooKT0+aTFhLGdlbmVyYXRlSlNPTjooKT0+bzFhLGdlbmVyYXRlVGV4dDooKT0+bjFhLGdldEF0dHJpYnV0ZXM6KCk9PmJXLGdldEF0dHJpYnV0ZXNGcm9tRXh0ZW5zaW9uczooKT0+ZHJlLGdldENoYW5nZWRSYW5nZXM6KCk9PlRyZSxnZXREZWJ1Z0pTT046KCk9PlJaZSxnZXRFeHRlbnNpb25GaWVsZDooKT0+cHQsZ2V0SFRNTEZyb21GcmFnbWVudDooKT0+JG0sZ2V0TWFya0F0dHJpYnV0ZXM6KCk9PnlyZSxnZXRNYXJrUmFuZ2U6KCk9PnVXLGdldE1hcmtUeXBlOigpPT5RMixnZXRNYXJrc0JldHdlZW46KCk9PlJtLGdldE5vZGVBdFBvc2l0aW9uOigpPT5sMWEsZ2V0Tm9kZUF0dHJpYnV0ZXM6KCk9PklaZSxnZXROb2RlVHlwZTooKT0+eHMsZ2V0UmVuZGVyZWRBdHRyaWJ1dGVzOigpPT5uVyxnZXRTY2hlbWE6KCk9PmZXLGdldFNjaGVtYUJ5UmVzb2x2ZWRFeHRlbnNpb25zOigpPT5mcmUsZ2V0U2NoZW1hVHlwZUJ5TmFtZTooKT0+bFcsZ2V0U2NoZW1hVHlwZU5hbWVCeU5hbWU6KCk9PkVtLGdldFNwbGl0dGVkQXR0cmlidXRlczooKT0+Tm0sZ2V0VGV4dDooKT0+d3JlLGdldFRleHRCZXR3ZWVuOigpPT5tcmUsZ2V0VGV4dENvbnRlbnRGcm9tTm9kZXM6KCk9PkNaZSxnZXRUZXh0U2VyaWFsaXplcnNGcm9tU2NoZW1hOigpPT5kVyxpbmplY3RFeHRlbnNpb25BdHRyaWJ1dGVzVG9QYXJzZVJ1bGU6KCk9PnByZSxpbnB1dFJ1bGVzUGx1Z2luOigpPT5fWmUsaXNBY3RpdmU6KCk9Pk9aZSxpc0F0RW5kT2ZOb2RlOigpPT5jMWEsaXNBdFN0YXJ0T2ZOb2RlOigpPT5kMWEsaXNFbXB0eU9iamVjdDooKT0+U1plLGlzRXh0ZW5zaW9uUnVsZXNFbmFibGVkOigpPT5ocmUsaXNGdW5jdGlvbjooKT0+dXJlLGlzTGlzdDooKT0+TXJlLGlzTWFjT1M6KCk9PnZyZSxpc01hcmtBY3RpdmU6KCk9PmhXLGlzTm9kZUFjdGl2ZTooKT0+YTUsaXNOb2RlRW1wdHk6KCk9Pm1XLGlzTm9kZVNlbGVjdGlvbjooKT0+THJlLGlzTnVtYmVyOigpPT5UWmUsaXNQbGFpbk9iamVjdDooKT0+RG0saXNSZWdFeHA6KCk9PmNXLGlzU2FmYXJpOigpPT5EWmUsaXNTdHJpbmc6KCk9Pm0xYSxpc1RleHRTZWxlY3Rpb246KCk9PmdyZSxpc2lPUzooKT0+SmYsbWFya0lucHV0UnVsZTooKT0+Qm4sbWFya1Bhc3RlUnVsZTooKT0+T28sbWVyZ2VBdHRyaWJ1dGVzOigpPT56YSxtZXJnZURlZXA6KCk9PkFtLG1pbk1heDooKT0+TzEsbm9kZUlucHV0UnVsZTooKT0+JHJlLG5vZGVQYXN0ZVJ1bGU6KCk9PmcxYSxvYmplY3RJbmNsdWRlczooKT0+UG0scGFzdGVSdWxlc1BsdWdpbjooKT0+TFplLHBvc1RvRE9NUmVjdDooKT0+dTFhLHJlbW92ZUR1cGxpY2F0ZXM6KCk9Pk5aZSxyZXNvbHZlRm9jdXNQb3NpdGlvbjooKT0+YnJlLHJld3JpdGVVbmtub3duQ29udGVudDooKT0+cDFhLHNlbGVjdGlvblRvSW5zZXJ0aW9uRW5kOigpPT5BWmUsc3BsaXRFeHRlbnNpb25zOigpPT5MbSx0ZXh0SW5wdXRSdWxlOigpPT5tcix0ZXh0UGFzdGVSdWxlOigpPT5iMWEsdGV4dGJsb2NrVHlwZUlucHV0UnVsZTooKT0+cjUsd3JhcHBpbmdJbnB1dFJ1bGU6KCk9PkoyfSk7ZnVuY3Rpb24gVG0oYSl7bGV0e3N0YXRlOmUsdHJhbnNhY3Rpb246dH09YSx7c2VsZWN0aW9uOnJ9PXQse2RvYzppfT10LHtzdG9yZWRNYXJrczpvfT10O3JldHVybnsuLi5lLGFwcGx5OmUuYXBwbHkuYmluZChlKSxhcHBseVRyYW5zYWN0aW9uOmUuYXBwbHlUcmFuc2FjdGlvbi5iaW5kKGUpLHBsdWdpbnM6ZS5wbHVnaW5zLHNjaGVtYTplLnNjaGVtYSxyZWNvbmZpZ3VyZTplLnJlY29uZmlndXJlLmJpbmQoZSksdG9KU09OOmUudG9KU09OLmJpbmQoZSksZ2V0IHN0b3JlZE1hcmtzKCl7cmV0dXJuIG99LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gcn0sZ2V0IGRvYygpe3JldHVybiBpfSxnZXQgdHIoKXtyZXR1cm4gcj10LnNlbGVjdGlvbixpPXQuZG9jLG89dC5zdG9yZWRNYXJrcyx0fX19ZnVuY3Rpb24gcHQoYSxlLHQpe3JldHVybiBhLmNvbmZpZ1tlXT09PXZvaWQgMCYmYS5wYXJlbnQ/cHQoYS5wYXJlbnQsZSx0KTp0eXBlb2YgYS5jb25maWdbZV09PSJmdW5jdGlvbiI/YS5jb25maWdbZV0uYmluZCh7Li4udCxwYXJlbnQ6YS5wYXJlbnQ/cHQoYS5wYXJlbnQsZSx0KTpudWxsfSk6YS5jb25maWdbZV19ZnVuY3Rpb24gTG0oYSl7bGV0IGU9YS5maWx0ZXIoaT0+aS50eXBlPT09ImV4dGVuc2lvbiIpLHQ9YS5maWx0ZXIoaT0+aS50eXBlPT09Im5vZGUiKSxyPWEuZmlsdGVyKGk9PmkudHlwZT09PSJtYXJrIik7cmV0dXJue2Jhc2VFeHRlbnNpb25zOmUsbm9kZUV4dGVuc2lvbnM6dCxtYXJrRXh0ZW5zaW9uczpyfX1mdW5jdGlvbiBkcmUoYSl7bGV0IGU9W10se25vZGVFeHRlbnNpb25zOnQsbWFya0V4dGVuc2lvbnM6cn09TG0oYSksaT1bLi4udCwuLi5yXSxvPXtkZWZhdWx0Om51bGwscmVuZGVyZWQ6ITAscmVuZGVySFRNTDpudWxsLHBhcnNlSFRNTDpudWxsLGtlZXBPblNwbGl0OiEwLGlzUmVxdWlyZWQ6ITF9O3JldHVybiBhLmZvckVhY2gobj0+e2xldCBsPXtuYW1lOm4ubmFtZSxvcHRpb25zOm4ub3B0aW9ucyxzdG9yYWdlOm4uc3RvcmFnZSxleHRlbnNpb25zOml9LGQ9cHQobiwiYWRkR2xvYmFsQXR0cmlidXRlcyIsbCk7aWYoIWQpcmV0dXJuO2QoKS5mb3JFYWNoKHA9PntwLnR5cGVzLmZvckVhY2godT0+e09iamVjdC5lbnRyaWVzKHAuYXR0cmlidXRlcykuZm9yRWFjaCgoW20sdl0pPT57ZS5wdXNoKHt0eXBlOnUsbmFtZTptLGF0dHJpYnV0ZTp7Li4ubywuLi52fX0pfSl9KX0pfSksaS5mb3JFYWNoKG49PntsZXQgbD17bmFtZTpuLm5hbWUsb3B0aW9uczpuLm9wdGlvbnMsc3RvcmFnZTpuLnN0b3JhZ2V9LGQ9cHQobiwiYWRkQXR0cmlidXRlcyIsbCk7aWYoIWQpcmV0dXJuO2xldCBjPWQoKTtPYmplY3QuZW50cmllcyhjKS5mb3JFYWNoKChbcCx1XSk9PntsZXQgbT17Li4ubywuLi51fTt0eXBlb2YgbT8uZGVmYXVsdD09ImZ1bmN0aW9uIiYmKG0uZGVmYXVsdD1tLmRlZmF1bHQoKSksbT8uaXNSZXF1aXJlZCYmbT8uZGVmYXVsdD09PXZvaWQgMCYmZGVsZXRlIG0uZGVmYXVsdCxlLnB1c2goe3R5cGU6bi5uYW1lLG5hbWU6cCxhdHRyaWJ1dGU6bX0pfSl9KSxlfWZ1bmN0aW9uIHhzKGEsZSl7aWYodHlwZW9mIGE9PSJzdHJpbmciKXtpZighZS5ub2Rlc1thXSl0aHJvdyBFcnJvcihgVGhlcmUgaXMgbm8gbm9kZSB0eXBlIG5hbWVkICcke2F9Jy4gTWF5YmUgeW91IGZvcmdvdCB0byBhZGQgdGhlIGV4dGVuc2lvbj9gKTtyZXR1cm4gZS5ub2Rlc1thXX1yZXR1cm4gYX1mdW5jdGlvbiB6YSguLi5hKXtyZXR1cm4gYS5maWx0ZXIoZT0+ISFlKS5yZWR1Y2UoKGUsdCk9PntsZXQgcj17Li4uZX07cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKFtpLG9dKT0+e2lmKCFyW2ldKXtyW2ldPW87cmV0dXJufWlmKGk9PT0iY2xhc3MiKXtsZXQgbD1vP1N0cmluZyhvKS5zcGxpdCgiICIpOltdLGQ9cltpXT9yW2ldLnNwbGl0KCIgIik6W10sYz1sLmZpbHRlcihwPT4hZC5pbmNsdWRlcyhwKSk7cltpXT1bLi4uZCwuLi5jXS5qb2luKCIgIil9ZWxzZSBpZihpPT09InN0eWxlIil7bGV0IGw9bz9vLnNwbGl0KCI7IikubWFwKHA9PnAudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W10sZD1yW2ldP3JbaV0uc3BsaXQoIjsiKS5tYXAocD0+cC50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXSxjPW5ldyBNYXA7ZC5mb3JFYWNoKHA9PntsZXRbdSxtXT1wLnNwbGl0KCI6IikubWFwKHY9PnYudHJpbSgpKTtjLnNldCh1LG0pfSksbC5mb3JFYWNoKHA9PntsZXRbdSxtXT1wLnNwbGl0KCI6IikubWFwKHY9PnYudHJpbSgpKTtjLnNldCh1LG0pfSkscltpXT1BcnJheS5mcm9tKGMuZW50cmllcygpKS5tYXAoKFtwLHVdKT0+YCR7cH06ICR7dX1gKS5qb2luKCI7ICIpfWVsc2UgcltpXT1vfSkscn0se30pfWZ1bmN0aW9uIG5XKGEsZSl7cmV0dXJuIGUuZmlsdGVyKHQ9PnQudHlwZT09PWEudHlwZS5uYW1lKS5maWx0ZXIodD0+dC5hdHRyaWJ1dGUucmVuZGVyZWQpLm1hcCh0PT50LmF0dHJpYnV0ZS5yZW5kZXJIVE1MP3QuYXR0cmlidXRlLnJlbmRlckhUTUwoYS5hdHRycyl8fHt9OntbdC5uYW1lXTphLmF0dHJzW3QubmFtZV19KS5yZWR1Y2UoKHQscik9PnphKHQscikse30pfWZ1bmN0aW9uIHVyZShhKXtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24ganQoYSxlPXZvaWQgMCwuLi50KXtyZXR1cm4gdXJlKGEpP2U/YS5iaW5kKGUpKC4uLnQpOmEoLi4udCk6YX1mdW5jdGlvbiBTWmUoYT17fSl7cmV0dXJuIE9iamVjdC5rZXlzKGEpLmxlbmd0aD09PTAmJmEuY29uc3RydWN0b3I9PT1PYmplY3R9ZnVuY3Rpb24gelplKGEpe3JldHVybiB0eXBlb2YgYSE9InN0cmluZyI/YTphLm1hdGNoKC9eWystXT8oPzpcZCpcLik/XGQrJC8pP051bWJlcihhKTphPT09InRydWUiPyEwOmE9PT0iZmFsc2UiPyExOmF9ZnVuY3Rpb24gcHJlKGEsZSl7cmV0dXJuInN0eWxlImluIGE/YTp7Li4uYSxnZXRBdHRyczpzKHQ9PntsZXQgcj1hLmdldEF0dHJzP2EuZ2V0QXR0cnModCk6YS5hdHRycztpZihyPT09ITEpcmV0dXJuITE7bGV0IGk9ZS5yZWR1Y2UoKG8sbik9PntsZXQgbD1uLmF0dHJpYnV0ZS5wYXJzZUhUTUw/bi5hdHRyaWJ1dGUucGFyc2VIVE1MKHQpOnpaZSh0LmdldEF0dHJpYnV0ZShuLm5hbWUpKTtyZXR1cm4gbD09bnVsbD9vOnsuLi5vLFtuLm5hbWVdOmx9fSx7fSk7cmV0dXJuey4uLnIsLi4uaX19LCJnZXRBdHRycyIpfX1mdW5jdGlvbiBWbmEoYSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhKS5maWx0ZXIoKFtlLHRdKT0+ZT09PSJhdHRycyImJlNaZSh0KT8hMTp0IT1udWxsKSl9ZnVuY3Rpb24gZnJlKGEsZSl7dmFyIHQ7bGV0IHI9ZHJlKGEpLHtub2RlRXh0ZW5zaW9uczppLG1hcmtFeHRlbnNpb25zOm99PUxtKGEpLG49KHQ9aS5maW5kKGM9PnB0KGMsInRvcE5vZGUiKSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5uYW1lLGw9T2JqZWN0LmZyb21FbnRyaWVzKGkubWFwKGM9PntsZXQgcD1yLmZpbHRlcih5PT55LnR5cGU9PT1jLm5hbWUpLHU9e25hbWU6Yy5uYW1lLG9wdGlvbnM6Yy5vcHRpb25zLHN0b3JhZ2U6Yy5zdG9yYWdlLGVkaXRvcjplfSxtPWEucmVkdWNlKCh5LGspPT57bGV0IEM9cHQoaywiZXh0ZW5kTm9kZVNjaGVtYSIsdSk7cmV0dXJuey4uLnksLi4uQz9DKGMpOnt9fX0se30pLHY9Vm5hKHsuLi5tLGNvbnRlbnQ6anQocHQoYywiY29udGVudCIsdSkpLG1hcmtzOmp0KHB0KGMsIm1hcmtzIix1KSksZ3JvdXA6anQocHQoYywiZ3JvdXAiLHUpKSxpbmxpbmU6anQocHQoYywiaW5saW5lIix1KSksYXRvbTpqdChwdChjLCJhdG9tIix1KSksc2VsZWN0YWJsZTpqdChwdChjLCJzZWxlY3RhYmxlIix1KSksZHJhZ2dhYmxlOmp0KHB0KGMsImRyYWdnYWJsZSIsdSkpLGNvZGU6anQocHQoYywiY29kZSIsdSkpLHdoaXRlc3BhY2U6anQocHQoYywid2hpdGVzcGFjZSIsdSkpLGxpbmVicmVha1JlcGxhY2VtZW50Omp0KHB0KGMsImxpbmVicmVha1JlcGxhY2VtZW50Iix1KSksZGVmaW5pbmc6anQocHQoYywiZGVmaW5pbmciLHUpKSxpc29sYXRpbmc6anQocHQoYywiaXNvbGF0aW5nIix1KSksYXR0cnM6T2JqZWN0LmZyb21FbnRyaWVzKHAubWFwKHk9Pnt2YXIgaztyZXR1cm5beS5uYW1lLHtkZWZhdWx0OihrPXk/LmF0dHJpYnV0ZSk9PT1udWxsfHxrPT09dm9pZCAwP3ZvaWQgMDprLmRlZmF1bHR9XX0pKX0pLHg9anQocHQoYywicGFyc2VIVE1MIix1KSk7eCYmKHYucGFyc2VET009eC5tYXAoeT0+cHJlKHkscCkpKTtsZXQgYj1wdChjLCJyZW5kZXJIVE1MIix1KTtiJiYodi50b0RPTT15PT5iKHtub2RlOnksSFRNTEF0dHJpYnV0ZXM6blcoeSxwKX0pKTtsZXQgZz1wdChjLCJyZW5kZXJUZXh0Iix1KTtyZXR1cm4gZyYmKHYudG9UZXh0PWcpLFtjLm5hbWUsdl19KSksZD1PYmplY3QuZnJvbUVudHJpZXMoby5tYXAoYz0+e2xldCBwPXIuZmlsdGVyKGc9PmcudHlwZT09PWMubmFtZSksdT17bmFtZTpjLm5hbWUsb3B0aW9uczpjLm9wdGlvbnMsc3RvcmFnZTpjLnN0b3JhZ2UsZWRpdG9yOmV9LG09YS5yZWR1Y2UoKGcseSk9PntsZXQgaz1wdCh5LCJleHRlbmRNYXJrU2NoZW1hIix1KTtyZXR1cm57Li4uZywuLi5rP2soYyk6e319fSx7fSksdj1WbmEoey4uLm0saW5jbHVzaXZlOmp0KHB0KGMsImluY2x1c2l2ZSIsdSkpLGV4Y2x1ZGVzOmp0KHB0KGMsImV4Y2x1ZGVzIix1KSksZ3JvdXA6anQocHQoYywiZ3JvdXAiLHUpKSxzcGFubmluZzpqdChwdChjLCJzcGFubmluZyIsdSkpLGNvZGU6anQocHQoYywiY29kZSIsdSkpLGF0dHJzOk9iamVjdC5mcm9tRW50cmllcyhwLm1hcChnPT57dmFyIHk7cmV0dXJuW2cubmFtZSx7ZGVmYXVsdDooeT1nPy5hdHRyaWJ1dGUpPT09bnVsbHx8eT09PXZvaWQgMD92b2lkIDA6eS5kZWZhdWx0fV19KSl9KSx4PWp0KHB0KGMsInBhcnNlSFRNTCIsdSkpO3gmJih2LnBhcnNlRE9NPXgubWFwKGc9PnByZShnLHApKSk7bGV0IGI9cHQoYywicmVuZGVySFRNTCIsdSk7cmV0dXJuIGImJih2LnRvRE9NPWc9PmIoe21hcms6ZyxIVE1MQXR0cmlidXRlczpuVyhnLHApfSkpLFtjLm5hbWUsdl19KSk7cmV0dXJuIG5ldyBwbSh7dG9wTm9kZTpuLG5vZGVzOmwsbWFya3M6ZH0pfWZ1bmN0aW9uIGxXKGEsZSl7cmV0dXJuIGUubm9kZXNbYV18fGUubWFya3NbYV18fG51bGx9ZnVuY3Rpb24gaHJlKGEsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5zb21lKHQ9Pih0eXBlb2YgdD09InN0cmluZyI/dDp0Lm5hbWUpPT09YS5uYW1lKTplfWZ1bmN0aW9uICRtKGEsZSl7bGV0IHQ9VzIuZnJvbVNjaGVtYShlKS5zZXJpYWxpemVGcmFnbWVudChhKSxpPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBpLmFwcGVuZENoaWxkKHQpLGkuaW5uZXJIVE1MfWZ1bmN0aW9uIGNXKGEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PT0iW29iamVjdCBSZWdFeHBdIn1mdW5jdGlvbiBucmUoYSl7dmFyIGU7bGV0e2VkaXRvcjp0LGZyb206cix0bzppLHRleHQ6byxydWxlczpuLHBsdWdpbjpsfT1hLHt2aWV3OmR9PXQ7aWYoZC5jb21wb3NpbmcpcmV0dXJuITE7bGV0IGM9ZC5zdGF0ZS5kb2MucmVzb2x2ZShyKTtpZihjLnBhcmVudC50eXBlLnNwZWMuY29kZXx8ISgoZT1jLm5vZGVCZWZvcmV8fGMubm9kZUFmdGVyKT09PW51bGx8fGU9PT12b2lkIDApJiZlLm1hcmtzLmZpbmQobT0+bS50eXBlLnNwZWMuY29kZSkpcmV0dXJuITE7bGV0IHA9ITEsdT1DWmUoYykrbztyZXR1cm4gbi5mb3JFYWNoKG09PntpZihwKXJldHVybjtsZXQgdj1CUGEodSxtLmZpbmQpO2lmKCF2KXJldHVybjtsZXQgeD1kLnN0YXRlLnRyLGI9VG0oe3N0YXRlOmQuc3RhdGUsdHJhbnNhY3Rpb246eH0pLGc9e2Zyb206ci0odlswXS5sZW5ndGgtby5sZW5ndGgpLHRvOml9LHtjb21tYW5kczp5LGNoYWluOmssY2FuOkN9PW5ldyB3NCh7ZWRpdG9yOnQsc3RhdGU6Yn0pO20uaGFuZGxlcih7c3RhdGU6YixyYW5nZTpnLG1hdGNoOnYsY29tbWFuZHM6eSxjaGFpbjprLGNhbjpDfSk9PT1udWxsfHwheC5zdGVwcy5sZW5ndGh8fCh4LnNldE1ldGEobCx7dHJhbnNmb3JtOngsZnJvbTpyLHRvOmksdGV4dDpvfSksZC5kaXNwYXRjaCh4KSxwPSEwKX0pLHB9ZnVuY3Rpb24gX1plKGEpe2xldHtlZGl0b3I6ZSxydWxlczp0fT1hLHI9bmV3IGFyKHtzdGF0ZTp7aW5pdCgpe3JldHVybiBudWxsfSxhcHBseShpLG8sbil7bGV0IGw9aS5nZXRNZXRhKHIpO2lmKGwpcmV0dXJuIGw7bGV0IGQ9aS5nZXRNZXRhKCJhcHBseUlucHV0UnVsZXMiKTtyZXR1cm4gZCYmc2V0VGltZW91dCgoKT0+e2xldHt0ZXh0OnB9PWQ7dHlwZW9mIHA9PSJzdHJpbmciP3A9cDpwPSRtKGplLmZyb20ocCksbi5zY2hlbWEpO2xldHtmcm9tOnV9PWQsbT11K3AubGVuZ3RoO25yZSh7ZWRpdG9yOmUsZnJvbTp1LHRvOm0sdGV4dDpwLHJ1bGVzOnQscGx1Z2luOnJ9KX0pLGkuc2VsZWN0aW9uU2V0fHxpLmRvY0NoYW5nZWQ/bnVsbDpvfX0scHJvcHM6e2hhbmRsZVRleHRJbnB1dChpLG8sbixsKXtyZXR1cm4gbnJlKHtlZGl0b3I6ZSxmcm9tOm8sdG86bix0ZXh0OmwscnVsZXM6dCxwbHVnaW46cn0pfSxoYW5kbGVET01FdmVudHM6e2NvbXBvc2l0aW9uZW5kOnMoaT0+KHNldFRpbWVvdXQoKCk9PntsZXR7JGN1cnNvcjpvfT1pLnN0YXRlLnNlbGVjdGlvbjtvJiZucmUoe2VkaXRvcjplLGZyb206by5wb3MsdG86by5wb3MsdGV4dDoiIixydWxlczp0LHBsdWdpbjpyfSl9KSwhMSksImNvbXBvc2l0aW9uZW5kIil9LGhhbmRsZUtleURvd24oaSxvKXtpZihvLmtleSE9PSJFbnRlciIpcmV0dXJuITE7bGV0eyRjdXJzb3I6bn09aS5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIG4/bnJlKHtlZGl0b3I6ZSxmcm9tOm4ucG9zLHRvOm4ucG9zLHRleHQ6YApgLHJ1bGVzOnQscGx1Z2luOnJ9KTohMX19LGlzSW5wdXRSdWxlczohMH0pO3JldHVybiByfWZ1bmN0aW9uIEhQYShhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIERtKGEpe3JldHVybiBIUGEoYSkhPT0iT2JqZWN0Ij8hMTphLmNvbnN0cnVjdG9yPT09T2JqZWN0JiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoYSk9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIEFtKGEsZSl7bGV0IHQ9ey4uLmF9O3JldHVybiBEbShhKSYmRG0oZSkmJk9iamVjdC5rZXlzKGUpLmZvckVhY2gocj0+e0RtKGVbcl0pJiZEbShhW3JdKT90W3JdPUFtKGFbcl0sZVtyXSk6dFtyXT1lW3JdfSksdH1mdW5jdGlvbiBUWmUoYSl7cmV0dXJuIHR5cGVvZiBhPT0ibnVtYmVyIn1mdW5jdGlvbiBWUGEoYSl7bGV0e2VkaXRvcjplLHN0YXRlOnQsZnJvbTpyLHRvOmkscnVsZTpvLHBhc3RlRXZlbnQ6bixkcm9wRXZlbnQ6bH09YSx7Y29tbWFuZHM6ZCxjaGFpbjpjLGNhbjpwfT1uZXcgdzQoe2VkaXRvcjplLHN0YXRlOnR9KSx1PVtdO3JldHVybiB0LmRvYy5ub2Rlc0JldHdlZW4ocixpLCh2LHgpPT57aWYoIXYuaXNUZXh0YmxvY2t8fHYudHlwZS5zcGVjLmNvZGUpcmV0dXJuO2xldCBiPU1hdGgubWF4KHIseCksZz1NYXRoLm1pbihpLHgrdi5jb250ZW50LnNpemUpLHk9di50ZXh0QmV0d2VlbihiLXgsZy14LHZvaWQgMCwiXHVGRkZDIik7cVBhKHksby5maW5kLG4pLmZvckVhY2goQz0+e2lmKEMuaW5kZXg9PT12b2lkIDApcmV0dXJuO2xldCBOPWIrQy5pbmRleCsxLF89TitDWzBdLmxlbmd0aCx6PXtmcm9tOnQudHIubWFwcGluZy5tYXAoTiksdG86dC50ci5tYXBwaW5nLm1hcChfKX0sTz1vLmhhbmRsZXIoe3N0YXRlOnQscmFuZ2U6eixtYXRjaDpDLGNvbW1hbmRzOmQsY2hhaW46YyxjYW46cCxwYXN0ZUV2ZW50Om4sZHJvcEV2ZW50Omx9KTt1LnB1c2goTyl9KX0pLHUuZXZlcnkodj0+diE9PW51bGwpfWZ1bmN0aW9uIExaZShhKXtsZXR7ZWRpdG9yOmUscnVsZXM6dH09YSxyPW51bGwsaT0hMSxvPSExLG49dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxsO3RyeXtsPXR5cGVvZiBEcmFnRXZlbnQ8InUiP25ldyBEcmFnRXZlbnQoImRyb3AiKTpudWxsfWNhdGNoe2w9bnVsbH1sZXQgZD1zKCh7c3RhdGU6cCxmcm9tOnUsdG86bSxydWxlOnYscGFzdGVFdnQ6eH0pPT57bGV0IGI9cC50cixnPVRtKHtzdGF0ZTpwLHRyYW5zYWN0aW9uOmJ9KTtpZighKCFWUGEoe2VkaXRvcjplLHN0YXRlOmcsZnJvbTpNYXRoLm1heCh1LTEsMCksdG86bS5iLTEscnVsZTp2LHBhc3RlRXZlbnQ6eCxkcm9wRXZlbnQ6bH0pfHwhYi5zdGVwcy5sZW5ndGgpKXt0cnl7bD10eXBlb2YgRHJhZ0V2ZW50PCJ1Ij9uZXcgRHJhZ0V2ZW50KCJkcm9wIik6bnVsbH1jYXRjaHtsPW51bGx9cmV0dXJuIG49dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxifX0sInByb2Nlc3NFdmVudCIpO3JldHVybiB0Lm1hcChwPT5uZXcgYXIoe3ZpZXcodSl7bGV0IG09cyh4PT57dmFyIGI7cj0hKChiPXUuZG9tLnBhcmVudEVsZW1lbnQpPT09bnVsbHx8Yj09PXZvaWQgMCkmJmIuY29udGFpbnMoeC50YXJnZXQpP3UuZG9tLnBhcmVudEVsZW1lbnQ6bnVsbCxyJiYobHJlPWUpfSwiaGFuZGxlRHJhZ3N0YXJ0Iiksdj1zKCgpPT57bHJlJiYobHJlPW51bGwpfSwiaGFuZGxlRHJhZ2VuZCIpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixtKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdikse2Rlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixtKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdil9fX0scHJvcHM6e2hhbmRsZURPTUV2ZW50czp7ZHJvcDpzKCh1LG0pPT57aWYobz1yPT09dS5kb20ucGFyZW50RWxlbWVudCxsPW0sIW8pe2xldCB2PWxyZTt2Py5pc0VkaXRhYmxlJiZzZXRUaW1lb3V0KCgpPT57bGV0IHg9di5zdGF0ZS5zZWxlY3Rpb247eCYmdi5jb21tYW5kcy5kZWxldGVSYW5nZSh7ZnJvbTp4LmZyb20sdG86eC50b30pfSwxMCl9cmV0dXJuITF9LCJkcm9wIikscGFzdGU6cygodSxtKT0+e3ZhciB2O2xldCB4PSh2PW0uY2xpcGJvYXJkRGF0YSk9PT1udWxsfHx2PT09dm9pZCAwP3ZvaWQgMDp2LmdldERhdGEoInRleHQvaHRtbCIpO3JldHVybiBuPW0saT0hIXg/LmluY2x1ZGVzKCJkYXRhLXBtLXNsaWNlIiksITF9LCJwYXN0ZSIpfX0sYXBwZW5kVHJhbnNhY3Rpb246cygodSxtLHYpPT57bGV0IHg9dVswXSxiPXguZ2V0TWV0YSgidWlFdmVudCIpPT09InBhc3RlIiYmIWksZz14LmdldE1ldGEoInVpRXZlbnQiKT09PSJkcm9wIiYmIW8seT14LmdldE1ldGEoImFwcGx5UGFzdGVSdWxlcyIpLGs9ISF5O2lmKCFiJiYhZyYmIWspcmV0dXJuO2lmKGspe2xldHt0ZXh0Ol99PXk7dHlwZW9mIF89PSJzdHJpbmciP189XzpfPSRtKGplLmZyb20oXyksdi5zY2hlbWEpO2xldHtmcm9tOnp9PXksTz16K18ubGVuZ3RoLFQ9alBhKF8pO3JldHVybiBkKHtydWxlOnAsc3RhdGU6dixmcm9tOnosdG86e2I6T30scGFzdGVFdnQ6VH0pfWxldCBDPW0uZG9jLmNvbnRlbnQuZmluZERpZmZTdGFydCh2LmRvYy5jb250ZW50KSxOPW0uZG9jLmNvbnRlbnQuZmluZERpZmZFbmQodi5kb2MuY29udGVudCk7aWYoISghVFplKEMpfHwhTnx8Qz09PU4uYikpcmV0dXJuIGQoe3J1bGU6cCxzdGF0ZTp2LGZyb206Qyx0bzpOLHBhc3RlRXZ0Om59KX0sImFwcGVuZFRyYW5zYWN0aW9uIil9KSl9ZnVuY3Rpb24gJFplKGEpe2xldCBlPWEuZmlsdGVyKCh0LHIpPT5hLmluZGV4T2YodCkhPT1yKTtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGUpKX1mdW5jdGlvbiBtcmUoYSxlLHQpe2xldHtmcm9tOnIsdG86aX09ZSx7YmxvY2tTZXBhcmF0b3I6bz1gCgpgLHRleHRTZXJpYWxpemVyczpuPXt9fT10fHx7fSxsPSIiO3JldHVybiBhLm5vZGVzQmV0d2VlbihyLGksKGQsYyxwLHUpPT57dmFyIG07ZC5pc0Jsb2NrJiZjPnImJihsKz1vKTtsZXQgdj1uPy5bZC50eXBlLm5hbWVdO2lmKHYpcmV0dXJuIHAmJihsKz12KHtub2RlOmQscG9zOmMscGFyZW50OnAsaW5kZXg6dSxyYW5nZTplfSkpLCExO2QuaXNUZXh0JiYobCs9KG09ZD8udGV4dCk9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLnNsaWNlKE1hdGgubWF4KHIsYyktYyxpLWMpKX0pLGx9ZnVuY3Rpb24gZFcoYSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhLm5vZGVzKS5maWx0ZXIoKFssZV0pPT5lLnNwZWMudG9UZXh0KS5tYXAoKFtlLHRdKT0+W2UsdC5zcGVjLnRvVGV4dF0pKX1mdW5jdGlvbiBQbShhLGUsdD17c3RyaWN0OiEwfSl7bGV0IHI9T2JqZWN0LmtleXMoZSk7cmV0dXJuIHIubGVuZ3RoP3IuZXZlcnkoaT0+dC5zdHJpY3Q/ZVtpXT09PWFbaV06Y1coZVtpXSk/ZVtpXS50ZXN0KGFbaV0pOmVbaV09PT1hW2ldKTohMH1mdW5jdGlvbiBVbmEoYSxlLHQ9e30pe3JldHVybiBhLmZpbmQocj0+ci50eXBlPT09ZSYmUG0oT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5rZXlzKHQpLm1hcChpPT5baSxyLmF0dHJzW2ldXSkpLHQpKX1mdW5jdGlvbiBXbmEoYSxlLHQ9e30pe3JldHVybiEhVW5hKGEsZSx0KX1mdW5jdGlvbiB1VyhhLGUsdCl7dmFyIHI7aWYoIWF8fCFlKXJldHVybjtsZXQgaT1hLnBhcmVudC5jaGlsZEFmdGVyKGEucGFyZW50T2Zmc2V0KTtpZigoIWkubm9kZXx8IWkubm9kZS5tYXJrcy5zb21lKHA9PnAudHlwZT09PWUpKSYmKGk9YS5wYXJlbnQuY2hpbGRCZWZvcmUoYS5wYXJlbnRPZmZzZXQpKSwhaS5ub2RlfHwhaS5ub2RlLm1hcmtzLnNvbWUocD0+cC50eXBlPT09ZSl8fCh0PXR8fCgocj1pLm5vZGUubWFya3NbMF0pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5hdHRycyksIVVuYShbLi4uaS5ub2RlLm1hcmtzXSxlLHQpKSlyZXR1cm47bGV0IG49aS5pbmRleCxsPWEuc3RhcnQoKStpLm9mZnNldCxkPW4rMSxjPWwraS5ub2RlLm5vZGVTaXplO2Zvcig7bj4wJiZXbmEoWy4uLmEucGFyZW50LmNoaWxkKG4tMSkubWFya3NdLGUsdCk7KW4tPTEsbC09YS5wYXJlbnQuY2hpbGQobikubm9kZVNpemU7Zm9yKDtkPGEucGFyZW50LmNoaWxkQ291bnQmJlduYShbLi4uYS5wYXJlbnQuY2hpbGQoZCkubWFya3NdLGUsdCk7KWMrPWEucGFyZW50LmNoaWxkKGQpLm5vZGVTaXplLGQrPTE7cmV0dXJue2Zyb206bCx0bzpjfX1mdW5jdGlvbiBRMihhLGUpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7aWYoIWUubWFya3NbYV0pdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSBuYW1lZCAnJHthfScuIE1heWJlIHlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBleHRlbnNpb24/YCk7cmV0dXJuIGUubWFya3NbYV19cmV0dXJuIGF9ZnVuY3Rpb24gZ3JlKGEpe3JldHVybiBhIGluc3RhbmNlb2YgTnR9ZnVuY3Rpb24gTzEoYT0wLGU9MCx0PTApe3JldHVybiBNYXRoLm1pbihNYXRoLm1heChhLGUpLHQpfWZ1bmN0aW9uIGJyZShhLGU9bnVsbCl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9RXQuYXRTdGFydChhKSxyPUV0LmF0RW5kKGEpO2lmKGU9PT0ic3RhcnQifHxlPT09ITApcmV0dXJuIHQ7aWYoZT09PSJlbmQiKXJldHVybiByO2xldCBpPXQuZnJvbSxvPXIudG87cmV0dXJuIGU9PT0iYWxsIj9OdC5jcmVhdGUoYSxPMSgwLGksbyksTzEoYS5jb250ZW50LnNpemUsaSxvKSk6TnQuY3JlYXRlKGEsTzEoZSxpLG8pLE8xKGUsaSxvKSl9ZnVuY3Rpb24gd1plKCl7cmV0dXJuIG5hdmlnYXRvci5wbGF0Zm9ybT09PSJBbmRyb2lkInx8L2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIEpmKCl7cmV0dXJuWyJpUGFkIFNpbXVsYXRvciIsImlQaG9uZSBTaW11bGF0b3IiLCJpUG9kIFNpbXVsYXRvciIsImlQYWQiLCJpUGhvbmUiLCJpUG9kIl0uaW5jbHVkZXMobmF2aWdhdG9yLnBsYXRmb3JtKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiTWFjIikmJiJvbnRvdWNoZW5kImluIGRvY3VtZW50fWZ1bmN0aW9uIERaZSgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOiExfWZ1bmN0aW9uIGU1KGEpe2xldCBlPWA8Ym9keT4ke2F9PC9ib2R5PmAsdD1uZXcgd2luZG93LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBHbmEodCl9ZnVuY3Rpb24gdDUoYSxlLHQpe2lmKGEgaW5zdGFuY2VvZiBLaXx8YSBpbnN0YW5jZW9mIGplKXJldHVybiBhO3Q9e3NsaWNlOiEwLHBhcnNlT3B0aW9uczp7fSwuLi50fTtsZXQgcj10eXBlb2YgYT09Im9iamVjdCImJmEhPT1udWxsLGk9dHlwZW9mIGE9PSJzdHJpbmciO2lmKHIpdHJ5e2lmKEFycmF5LmlzQXJyYXkoYSkmJmEubGVuZ3RoPjApcmV0dXJuIGplLmZyb21BcnJheShhLm1hcChsPT5lLm5vZGVGcm9tSlNPTihsKSkpO2xldCBuPWUubm9kZUZyb21KU09OKGEpO3JldHVybiB0LmVycm9yT25JbnZhbGlkQ29udGVudCYmbi5jaGVjaygpLG59Y2F0Y2gobyl7aWYodC5lcnJvck9uSW52YWxpZENvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBKU09OIGNvbnRlbnQiLHtjYXVzZTpvfSk7cmV0dXJuIGNvbnNvbGUud2FybigiW3RpcHRhcCB3YXJuXTogSW52YWxpZCBjb250ZW50LiIsIlBhc3NlZCB2YWx1ZToiLGEsIkVycm9yOiIsbyksdDUoIiIsZSx0KX1pZihpKXtpZih0LmVycm9yT25JbnZhbGlkQ29udGVudCl7bGV0IG49ITEsbD0iIixkPW5ldyBwbSh7dG9wTm9kZTplLnNwZWMudG9wTm9kZSxtYXJrczplLnNwZWMubWFya3Msbm9kZXM6ZS5zcGVjLm5vZGVzLmFwcGVuZCh7X190aXB0YXBfX3ByaXZhdGVfX3Vua25vd25fX2NhdGNoX19hbGxfX25vZGU6e2NvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIscGFyc2VET006W3t0YWc6IioiLGdldEF0dHJzOnMoYz0+KG49ITAsbD10eXBlb2YgYz09InN0cmluZyI/YzpjLm91dGVySFRNTCxudWxsKSwiZ2V0QXR0cnMiKX1dfX0pfSk7aWYodC5zbGljZT9OMS5mcm9tU2NoZW1hKGQpLnBhcnNlU2xpY2UoZTUoYSksdC5wYXJzZU9wdGlvbnMpOk4xLmZyb21TY2hlbWEoZCkucGFyc2UoZTUoYSksdC5wYXJzZU9wdGlvbnMpLHQuZXJyb3JPbkludmFsaWRDb250ZW50JiZuKXRocm93IG5ldyBFcnJvcigiW3RpcHRhcCBlcnJvcl06IEludmFsaWQgSFRNTCBjb250ZW50Iix7Y2F1c2U6bmV3IEVycm9yKGBJbnZhbGlkIGVsZW1lbnQgZm91bmQ6ICR7bH1gKX0pfWxldCBvPU4xLmZyb21TY2hlbWEoZSk7cmV0dXJuIHQuc2xpY2U/by5wYXJzZVNsaWNlKGU1KGEpLHQucGFyc2VPcHRpb25zKS5jb250ZW50Om8ucGFyc2UoZTUoYSksdC5wYXJzZU9wdGlvbnMpfXJldHVybiB0NSgiIixlLHQpfWZ1bmN0aW9uIEFaZShhLGUsdCl7bGV0IHI9YS5zdGVwcy5sZW5ndGgtMTtpZihyPGUpcmV0dXJuO2xldCBpPWEuc3RlcHNbcl07aWYoIShpIGluc3RhbmNlb2YgWnN8fGkgaW5zdGFuY2VvZiB0cykpcmV0dXJuO2xldCBvPWEubWFwcGluZy5tYXBzW3JdLG49MDtvLmZvckVhY2goKGwsZCxjLHApPT57bj09PTAmJihuPXApfSksYS5zZXRTZWxlY3Rpb24oRXQubmVhcihhLmRvYy5yZXNvbHZlKG4pLHQpKX1mdW5jdGlvbiB2cmUoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSI/L01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOiExfWZ1bmN0aW9uIHZFYShhKXtsZXQgZT1hLnNwbGl0KC8tKD8hJCkvKSx0PWVbZS5sZW5ndGgtMV07dD09PSJTcGFjZSImJih0PSIgIik7bGV0IHIsaSxvLG47Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrPTEpe2xldCBkPWVbbF07aWYoL14oY21kfG1ldGF8bSkkL2kudGVzdChkKSluPSEwO2Vsc2UgaWYoL15hKGx0KT8kL2kudGVzdChkKSlyPSEwO2Vsc2UgaWYoL14oY3xjdHJsfGNvbnRyb2wpJC9pLnRlc3QoZCkpaT0hMDtlbHNlIGlmKC9ecyhoaWZ0KT8kL2kudGVzdChkKSlvPSEwO2Vsc2UgaWYoL15tb2QkL2kudGVzdChkKSlKZigpfHx2cmUoKT9uPSEwOmk9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAke2R9YCl9cmV0dXJuIHImJih0PWBBbHQtJHt0fWApLGkmJih0PWBDdHJsLSR7dH1gKSxuJiYodD1gTWV0YS0ke3R9YCksbyYmKHQ9YFNoaWZ0LSR7dH1gKSx0fWZ1bmN0aW9uIGE1KGEsZSx0PXt9KXtsZXR7ZnJvbTpyLHRvOmksZW1wdHk6b309YS5zZWxlY3Rpb24sbj1lP3hzKGUsYS5zY2hlbWEpOm51bGwsbD1bXTthLmRvYy5ub2Rlc0JldHdlZW4ocixpLCh1LG0pPT57aWYodS5pc1RleHQpcmV0dXJuO2xldCB2PU1hdGgubWF4KHIsbSkseD1NYXRoLm1pbihpLG0rdS5ub2RlU2l6ZSk7bC5wdXNoKHtub2RlOnUsZnJvbTp2LHRvOnh9KX0pO2xldCBkPWktcixjPWwuZmlsdGVyKHU9Pm4/bi5uYW1lPT09dS5ub2RlLnR5cGUubmFtZTohMCkuZmlsdGVyKHU9PlBtKHUubm9kZS5hdHRycyx0LHtzdHJpY3Q6ITF9KSk7cmV0dXJuIG8/ISFjLmxlbmd0aDpjLnJlZHVjZSgodSxtKT0+dSttLnRvLW0uZnJvbSwwKT49ZH1mdW5jdGlvbiBFbShhLGUpe3JldHVybiBlLm5vZGVzW2FdPyJub2RlIjplLm1hcmtzW2FdPyJtYXJrIjpudWxsfWZ1bmN0aW9uIHhyZShhLGUpe2xldCB0PXR5cGVvZiBlPT0ic3RyaW5nIj9bZV06ZTtyZXR1cm4gT2JqZWN0LmtleXMoYSkucmVkdWNlKChyLGkpPT4odC5pbmNsdWRlcyhpKXx8KHJbaV09YVtpXSkscikse30pfWZ1bmN0aW9uIHBXKGEsZSx0PXt9LHI9e30pe3JldHVybiB0NShhLGUse3NsaWNlOiExLHBhcnNlT3B0aW9uczp0LGVycm9yT25JbnZhbGlkQ29udGVudDpyLmVycm9yT25JbnZhbGlkQ29udGVudH0pfWZ1bmN0aW9uIHlyZShhLGUpe2xldCB0PVEyKGUsYS5zY2hlbWEpLHtmcm9tOnIsdG86aSxlbXB0eTpvfT1hLnNlbGVjdGlvbixuPVtdO28/KGEuc3RvcmVkTWFya3MmJm4ucHVzaCguLi5hLnN0b3JlZE1hcmtzKSxuLnB1c2goLi4uYS5zZWxlY3Rpb24uJGhlYWQubWFya3MoKSkpOmEuZG9jLm5vZGVzQmV0d2VlbihyLGksZD0+e24ucHVzaCguLi5kLm1hcmtzKX0pO2xldCBsPW4uZmluZChkPT5kLnR5cGUubmFtZT09PXQubmFtZSk7cmV0dXJuIGw/ey4uLmwuYXR0cnN9Ont9fWZ1bmN0aW9uIENyZShhLGUpe2xldCB0PW5ldyBGZihhKTtyZXR1cm4gZS5mb3JFYWNoKHI9PntyLnN0ZXBzLmZvckVhY2goaT0+e3Quc3RlcChpKX0pfSksdH1mdW5jdGlvbiBQWmUoYSl7Zm9yKGxldCBlPTA7ZTxhLmVkZ2VDb3VudDtlKz0xKXtsZXR7dHlwZTp0fT1hLmVkZ2UoZSk7aWYodC5pc1RleHRibG9jayYmIXQuaGFzUmVxdWlyZWRBdHRycygpKXJldHVybiB0fXJldHVybiBudWxsfWZ1bmN0aW9uIHMxYShhLGUpe2xldCB0PVtdO3JldHVybiBhLmRlc2NlbmRhbnRzKChyLGkpPT57ZShyKSYmdC5wdXNoKHtub2RlOnIscG9zOml9KX0pLHR9ZnVuY3Rpb24gX3JlKGEsZSx0KXtsZXQgcj1bXTtyZXR1cm4gYS5ub2Rlc0JldHdlZW4oZS5mcm9tLGUudG8sKGksbyk9Pnt0KGkpJiZyLnB1c2goe25vZGU6aSxwb3M6b30pfSkscn1mdW5jdGlvbiBFWmUoYSxlKXtmb3IobGV0IHQ9YS5kZXB0aDt0PjA7dC09MSl7bGV0IHI9YS5ub2RlKHQpO2lmKGUocikpcmV0dXJue3Bvczp0PjA/YS5iZWZvcmUodCk6MCxzdGFydDphLnN0YXJ0KHQpLGRlcHRoOnQsbm9kZTpyfX19ZnVuY3Rpb24gSW0oYSl7cmV0dXJuIGU9PkVaZShlLiRmcm9tLGEpfWZ1bmN0aW9uIGZXKGEsZSl7bGV0IHQ9Y3JlLnJlc29sdmUoYSk7cmV0dXJuIGZyZSh0LGUpfWZ1bmN0aW9uIGkxYShhLGUpe2xldCB0PWZXKGUpLHI9S2kuZnJvbUpTT04odCxhKTtyZXR1cm4gJG0oci5jb250ZW50LHQpfWZ1bmN0aW9uIG8xYShhLGUpe2xldCB0PWZXKGUpLHI9ZTUoYSk7cmV0dXJuIE4xLmZyb21TY2hlbWEodCkucGFyc2UocikudG9KU09OKCl9ZnVuY3Rpb24gd3JlKGEsZSl7bGV0IHQ9e2Zyb206MCx0bzphLmNvbnRlbnQuc2l6ZX07cmV0dXJuIG1yZShhLHQsZSl9ZnVuY3Rpb24gbjFhKGEsZSx0KXtsZXR7YmxvY2tTZXBhcmF0b3I6cj1gCgpgLHRleHRTZXJpYWxpemVyczppPXt9fT10fHx7fSxvPWZXKGUpLG49S2kuZnJvbUpTT04obyxhKTtyZXR1cm4gd3JlKG4se2Jsb2NrU2VwYXJhdG9yOnIsdGV4dFNlcmlhbGl6ZXJzOnsuLi5kVyhvKSwuLi5pfX0pfWZ1bmN0aW9uIElaZShhLGUpe2xldCB0PXhzKGUsYS5zY2hlbWEpLHtmcm9tOnIsdG86aX09YS5zZWxlY3Rpb24sbz1bXTthLmRvYy5ub2Rlc0JldHdlZW4ocixpLGw9PntvLnB1c2gobCl9KTtsZXQgbj1vLnJldmVyc2UoKS5maW5kKGw9PmwudHlwZS5uYW1lPT09dC5uYW1lKTtyZXR1cm4gbj97Li4ubi5hdHRyc306e319ZnVuY3Rpb24gYlcoYSxlKXtsZXQgdD1FbSh0eXBlb2YgZT09InN0cmluZyI/ZTplLm5hbWUsYS5zY2hlbWEpO3JldHVybiB0PT09Im5vZGUiP0laZShhLGUpOnQ9PT0ibWFyayI/eXJlKGEsZSk6e319ZnVuY3Rpb24gTlplKGEsZT1KU09OLnN0cmluZ2lmeSl7bGV0IHQ9e307cmV0dXJuIGEuZmlsdGVyKHI9PntsZXQgaT1lKHIpO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKT8hMTp0W2ldPSEwfSl9ZnVuY3Rpb24gUEVhKGEpe2xldCBlPU5aZShhKTtyZXR1cm4gZS5sZW5ndGg9PT0xP2U6ZS5maWx0ZXIoKHQscik9PiFlLmZpbHRlcigobyxuKT0+biE9PXIpLnNvbWUobz0+dC5vbGRSYW5nZS5mcm9tPj1vLm9sZFJhbmdlLmZyb20mJnQub2xkUmFuZ2UudG88PW8ub2xkUmFuZ2UudG8mJnQubmV3UmFuZ2UuZnJvbT49by5uZXdSYW5nZS5mcm9tJiZ0Lm5ld1JhbmdlLnRvPD1vLm5ld1JhbmdlLnRvKSl9ZnVuY3Rpb24gVHJlKGEpe2xldHttYXBwaW5nOmUsc3RlcHM6dH09YSxyPVtdO3JldHVybiBlLm1hcHMuZm9yRWFjaCgoaSxvKT0+e2xldCBuPVtdO2lmKGkucmFuZ2VzLmxlbmd0aClpLmZvckVhY2goKGwsZCk9PntuLnB1c2goe2Zyb206bCx0bzpkfSl9KTtlbHNle2xldHtmcm9tOmwsdG86ZH09dFtvXTtpZihsPT09dm9pZCAwfHxkPT09dm9pZCAwKXJldHVybjtuLnB1c2goe2Zyb206bCx0bzpkfSl9bi5mb3JFYWNoKCh7ZnJvbTpsLHRvOmR9KT0+e2xldCBjPWUuc2xpY2UobykubWFwKGwsLTEpLHA9ZS5zbGljZShvKS5tYXAoZCksdT1lLmludmVydCgpLm1hcChjLC0xKSxtPWUuaW52ZXJ0KCkubWFwKHApO3IucHVzaCh7b2xkUmFuZ2U6e2Zyb206dSx0bzptfSxuZXdSYW5nZTp7ZnJvbTpjLHRvOnB9fSl9KX0pLFBFYShyKX1mdW5jdGlvbiBSWmUoYSxlPTApe2xldCByPWEudHlwZT09PWEudHlwZS5zY2hlbWEudG9wTm9kZVR5cGU/MDoxLGk9ZSxvPWkrYS5ub2RlU2l6ZSxuPWEubWFya3MubWFwKGM9PntsZXQgcD17dHlwZTpjLnR5cGUubmFtZX07cmV0dXJuIE9iamVjdC5rZXlzKGMuYXR0cnMpLmxlbmd0aCYmKHAuYXR0cnM9ey4uLmMuYXR0cnN9KSxwfSksbD17Li4uYS5hdHRyc30sZD17dHlwZTphLnR5cGUubmFtZSxmcm9tOmksdG86b307cmV0dXJuIE9iamVjdC5rZXlzKGwpLmxlbmd0aCYmKGQuYXR0cnM9bCksbi5sZW5ndGgmJihkLm1hcmtzPW4pLGEuY29udGVudC5jaGlsZENvdW50JiYoZC5jb250ZW50PVtdLGEuZm9yRWFjaCgoYyxwKT0+e3ZhciB1Oyh1PWQuY29udGVudCk9PT1udWxsfHx1PT09dm9pZCAwfHx1LnB1c2goUlplKGMsZStwK3IpKX0pKSxhLnRleHQmJihkLnRleHQ9YS50ZXh0KSxkfWZ1bmN0aW9uIFJtKGEsZSx0KXtsZXQgcj1bXTtyZXR1cm4gYT09PWU/dC5yZXNvbHZlKGEpLm1hcmtzKCkuZm9yRWFjaChpPT57bGV0IG89dC5yZXNvbHZlKGEpLG49dVcobyxpLnR5cGUpO24mJnIucHVzaCh7bWFyazppLC4uLm59KX0pOnQubm9kZXNCZXR3ZWVuKGEsZSwoaSxvKT0+eyFpfHxpPy5ub2RlU2l6ZT09PXZvaWQgMHx8ci5wdXNoKC4uLmkubWFya3MubWFwKG49Pih7ZnJvbTpvLHRvOm8raS5ub2RlU2l6ZSxtYXJrOm59KSkpfSkscn1mdW5jdGlvbiBObShhLGUsdCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5maWx0ZXIoKFtyXSk9PntsZXQgaT1hLmZpbmQobz0+by50eXBlPT09ZSYmby5uYW1lPT09cik7cmV0dXJuIGk/aS5hdHRyaWJ1dGUua2VlcE9uU3BsaXQ6ITF9KSl9ZnVuY3Rpb24gaFcoYSxlLHQ9e30pe2xldHtlbXB0eTpyLHJhbmdlczppfT1hLnNlbGVjdGlvbixvPWU/UTIoZSxhLnNjaGVtYSk6bnVsbDtpZihyKXJldHVybiEhKGEuc3RvcmVkTWFya3N8fGEuc2VsZWN0aW9uLiRmcm9tLm1hcmtzKCkpLmZpbHRlcih1PT5vP28ubmFtZT09PXUudHlwZS5uYW1lOiEwKS5maW5kKHU9PlBtKHUuYXR0cnMsdCx7c3RyaWN0OiExfSkpO2xldCBuPTAsbD1bXTtpZihpLmZvckVhY2goKHskZnJvbTp1LCR0bzptfSk9PntsZXQgdj11LnBvcyx4PW0ucG9zO2EuZG9jLm5vZGVzQmV0d2Vlbih2LHgsKGIsZyk9PntpZighYi5pc1RleHQmJiFiLm1hcmtzLmxlbmd0aClyZXR1cm47bGV0IHk9TWF0aC5tYXgodixnKSxrPU1hdGgubWluKHgsZytiLm5vZGVTaXplKSxDPWsteTtuKz1DLGwucHVzaCguLi5iLm1hcmtzLm1hcChOPT4oe21hcms6Tixmcm9tOnksdG86a30pKSl9KX0pLG49PT0wKXJldHVybiExO2xldCBkPWwuZmlsdGVyKHU9Pm8/by5uYW1lPT09dS5tYXJrLnR5cGUubmFtZTohMCkuZmlsdGVyKHU9PlBtKHUubWFyay5hdHRycyx0LHtzdHJpY3Q6ITF9KSkucmVkdWNlKCh1LG0pPT51K20udG8tbS5mcm9tLDApLGM9bC5maWx0ZXIodT0+bz91Lm1hcmsudHlwZSE9PW8mJnUubWFyay50eXBlLmV4Y2x1ZGVzKG8pOiEwKS5yZWR1Y2UoKHUsbSk9PnUrbS50by1tLmZyb20sMCk7cmV0dXJuKGQ+MD9kK2M6ZCk+PW59ZnVuY3Rpb24gT1plKGEsZSx0PXt9KXtpZighZSlyZXR1cm4gYTUoYSxudWxsLHQpfHxoVyhhLG51bGwsdCk7bGV0IHI9RW0oZSxhLnNjaGVtYSk7cmV0dXJuIHI9PT0ibm9kZSI/YTUoYSxlLHQpOnI9PT0ibWFyayI/aFcoYSxlLHQpOiExfWZ1bmN0aW9uIE1yZShhLGUpe2xldHtub2RlRXh0ZW5zaW9uczp0fT1MbShlKSxyPXQuZmluZChuPT5uLm5hbWU9PT1hKTtpZighcilyZXR1cm4hMTtsZXQgaT17bmFtZTpyLm5hbWUsb3B0aW9uczpyLm9wdGlvbnMsc3RvcmFnZTpyLnN0b3JhZ2V9LG89anQocHQociwiZ3JvdXAiLGkpKTtyZXR1cm4gdHlwZW9mIG8hPSJzdHJpbmciPyExOm8uc3BsaXQoIiAiKS5pbmNsdWRlcygibGlzdCIpfWZ1bmN0aW9uIG1XKGEse2NoZWNrQ2hpbGRyZW46ZT0hMCxpZ25vcmVXaGl0ZXNwYWNlOnQ9ITF9PXt9KXt2YXIgcjtpZih0KXtpZihhLnR5cGUubmFtZT09PSJoYXJkQnJlYWsiKXJldHVybiEwO2lmKGEuaXNUZXh0KXJldHVybi9eXHMqJC9tLnRlc3QoKHI9YS50ZXh0KSE9PW51bGwmJnIhPT12b2lkIDA/cjoiIil9aWYoYS5pc1RleHQpcmV0dXJuIWEudGV4dDtpZihhLmlzQXRvbXx8YS5pc0xlYWYpcmV0dXJuITE7aWYoYS5jb250ZW50LmNoaWxkQ291bnQ9PT0wKXJldHVybiEwO2lmKGUpe2xldCBpPSEwO3JldHVybiBhLmNvbnRlbnQuZm9yRWFjaChvPT57aSE9PSExJiYobVcobyx7aWdub3JlV2hpdGVzcGFjZTp0LGNoZWNrQ2hpbGRyZW46ZX0pfHwoaT0hMSkpfSksaX1yZXR1cm4hMX1mdW5jdGlvbiBMcmUoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBrdH1mdW5jdGlvbiB1MWEoYSxlLHQpe2xldCBpPWEuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSxvPU8xKGUsMCxpKSxuPU8xKHQsMCxpKSxsPWEuY29vcmRzQXRQb3MobyksZD1hLmNvb3Jkc0F0UG9zKG4sLTEpLGM9TWF0aC5taW4obC50b3AsZC50b3ApLHA9TWF0aC5tYXgobC5ib3R0b20sZC5ib3R0b20pLHU9TWF0aC5taW4obC5sZWZ0LGQubGVmdCksbT1NYXRoLm1heChsLnJpZ2h0LGQucmlnaHQpLHY9bS11LHg9cC1jLHk9e3RvcDpjLGJvdHRvbTpwLGxlZnQ6dSxyaWdodDptLHdpZHRoOnYsaGVpZ2h0OngseDp1LHk6Y307cmV0dXJuey4uLnksdG9KU09OOnMoKCk9PnksInRvSlNPTiIpfX1mdW5jdGlvbiBZbmEoe2pzb246YSx2YWxpZE1hcmtzOmUsdmFsaWROb2Rlczp0LG9wdGlvbnM6cixyZXdyaXR0ZW5Db250ZW50Omk9W119KXtyZXR1cm4gYS5tYXJrcyYmQXJyYXkuaXNBcnJheShhLm1hcmtzKSYmKGEubWFya3M9YS5tYXJrcy5maWx0ZXIobz0+e2xldCBuPXR5cGVvZiBvPT0ic3RyaW5nIj9vOm8udHlwZTtyZXR1cm4gZS5oYXMobik/ITA6KGkucHVzaCh7b3JpZ2luYWw6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvKSksdW5zdXBwb3J0ZWQ6bn0pLCExKX0pKSxhLmNvbnRlbnQmJkFycmF5LmlzQXJyYXkoYS5jb250ZW50KSYmKGEuY29udGVudD1hLmNvbnRlbnQubWFwKG89PlluYSh7anNvbjpvLHZhbGlkTWFya3M6ZSx2YWxpZE5vZGVzOnQsb3B0aW9uczpyLHJld3JpdHRlbkNvbnRlbnQ6aX0pLmpzb24pLmZpbHRlcihvPT5vIT1udWxsKSksYS50eXBlJiYhdC5oYXMoYS50eXBlKT8oaS5wdXNoKHtvcmlnaW5hbDpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGEpKSx1bnN1cHBvcnRlZDphLnR5cGV9KSxhLmNvbnRlbnQmJkFycmF5LmlzQXJyYXkoYS5jb250ZW50KSYmcj8uZmFsbGJhY2tUb1BhcmFncmFwaCE9PSExPyhhLnR5cGU9InBhcmFncmFwaCIse2pzb246YSxyZXdyaXR0ZW5Db250ZW50Oml9KTp7anNvbjpudWxsLHJld3JpdHRlbkNvbnRlbnQ6aX0pOntqc29uOmEscmV3cml0dGVuQ29udGVudDppfX1mdW5jdGlvbiBwMWEoYSxlLHQpe3JldHVybiBZbmEoe2pzb246YSx2YWxpZE5vZGVzOm5ldyBTZXQoT2JqZWN0LmtleXMoZS5ub2RlcykpLHZhbGlkTWFya3M6bmV3IFNldChPYmplY3Qua2V5cyhlLm1hcmtzKSksb3B0aW9uczp0fSl9ZnVuY3Rpb24gRUVhKGEsZSx0KXt2YXIgcjtsZXR7c2VsZWN0aW9uOml9PWUsbz1udWxsO2lmKGdyZShpKSYmKG89aS4kY3Vyc29yKSxvKXtsZXQgbD0ocj1hLnN0b3JlZE1hcmtzKSE9PW51bGwmJnIhPT12b2lkIDA/cjpvLm1hcmtzKCk7cmV0dXJuISF0LmlzSW5TZXQobCl8fCFsLnNvbWUoZD0+ZC50eXBlLmV4Y2x1ZGVzKHQpKX1sZXR7cmFuZ2VzOm59PWk7cmV0dXJuIG4uc29tZSgoeyRmcm9tOmwsJHRvOmR9KT0+e2xldCBjPWwuZGVwdGg9PT0wP2EuZG9jLmlubGluZUNvbnRlbnQmJmEuZG9jLnR5cGUuYWxsb3dzTWFya1R5cGUodCk6ITE7cmV0dXJuIGEuZG9jLm5vZGVzQmV0d2VlbihsLnBvcyxkLnBvcywocCx1LG0pPT57aWYoYylyZXR1cm4hMTtpZihwLmlzSW5saW5lKXtsZXQgdj0hbXx8bS50eXBlLmFsbG93c01hcmtUeXBlKHQpLHg9ISF0LmlzSW5TZXQocC5tYXJrcyl8fCFwLm1hcmtzLnNvbWUoYj0+Yi50eXBlLmV4Y2x1ZGVzKHQpKTtjPXYmJnh9cmV0dXJuIWN9KSxjfSl9ZnVuY3Rpb24gS25hKGEsZSl7bGV0IHQ9YS5zdG9yZWRNYXJrc3x8YS5zZWxlY3Rpb24uJHRvLnBhcmVudE9mZnNldCYmYS5zZWxlY3Rpb24uJGZyb20ubWFya3MoKTtpZih0KXtsZXQgcj10LmZpbHRlcihpPT5lPy5pbmNsdWRlcyhpLnR5cGUubmFtZSkpO2EudHIuZW5zdXJlTWFya3Mocil9fWZ1bmN0aW9uIEZaZShhLGUsdCl7bGV0IHI9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc3R5bGVbZGF0YS10aXB0YXAtc3R5bGUke3Q/YC0ke3R9YDoiIn1dYCk7aWYociE9PW51bGwpcmV0dXJuIHI7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gZSYmaS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixlKSxpLnNldEF0dHJpYnV0ZShgZGF0YS10aXB0YXAtc3R5bGUke3Q/YC0ke3R9YDoiIn1gLCIiKSxpLmlubmVySFRNTD1hLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoaSksaX1mdW5jdGlvbiBCbihhKXtyZXR1cm4gbmV3IHdjKHtmaW5kOmEuZmluZCxoYW5kbGVyOnMoKHtzdGF0ZTplLHJhbmdlOnQsbWF0Y2g6cn0pPT57bGV0IGk9anQoYS5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxyKTtpZihpPT09ITF8fGk9PT1udWxsKXJldHVybiBudWxsO2xldHt0cjpvfT1lLG49cltyLmxlbmd0aC0xXSxsPXJbMF07aWYobil7bGV0IGQ9bC5zZWFyY2goL1xTLyksYz10LmZyb20rbC5pbmRleE9mKG4pLHA9YytuLmxlbmd0aDtpZihSbSh0LmZyb20sdC50byxlLmRvYykuZmlsdGVyKHY9PnYubWFyay50eXBlLmV4Y2x1ZGVkLmZpbmQoYj0+Yj09PWEudHlwZSYmYiE9PXYubWFyay50eXBlKSkuZmlsdGVyKHY9PnYudG8+YykubGVuZ3RoKXJldHVybiBudWxsO3A8dC50byYmby5kZWxldGUocCx0LnRvKSxjPnQuZnJvbSYmby5kZWxldGUodC5mcm9tK2QsYyk7bGV0IG09dC5mcm9tK2Qrbi5sZW5ndGg7by5hZGRNYXJrKHQuZnJvbStkLG0sYS50eXBlLmNyZWF0ZShpfHx7fSkpLG8ucmVtb3ZlU3RvcmVkTWFyayhhLnR5cGUpfX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uICRyZShhKXtyZXR1cm4gbmV3IHdjKHtmaW5kOmEuZmluZCxoYW5kbGVyOnMoKHtzdGF0ZTplLHJhbmdlOnQsbWF0Y2g6cn0pPT57bGV0IGk9anQoYS5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxyKXx8e30se3RyOm99PWUsbj10LmZyb20sbD10LnRvLGQ9YS50eXBlLmNyZWF0ZShpKTtpZihyWzFdKXtsZXQgYz1yWzBdLmxhc3RJbmRleE9mKHJbMV0pLHA9bitjO3A+bD9wPWw6bD1wK3JbMV0ubGVuZ3RoO2xldCB1PXJbMF1bclswXS5sZW5ndGgtMV07by5pbnNlcnRUZXh0KHUsbityWzBdLmxlbmd0aC0xKSxvLnJlcGxhY2VXaXRoKHAsbCxkKX1lbHNlIGlmKHJbMF0pe2xldCBjPWEudHlwZS5pc0lubGluZT9uOm4tMTtvLmluc2VydChjLGEudHlwZS5jcmVhdGUoaSkpLmRlbGV0ZShvLm1hcHBpbmcubWFwKG4pLG8ubWFwcGluZy5tYXAobCkpfW8uc2Nyb2xsSW50b1ZpZXcoKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIHI1KGEpe3JldHVybiBuZXcgd2Moe2ZpbmQ6YS5maW5kLGhhbmRsZXI6cygoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDpyfSk9PntsZXQgaT1lLmRvYy5yZXNvbHZlKHQuZnJvbSksbz1qdChhLmdldEF0dHJpYnV0ZXMsdm9pZCAwLHIpfHx7fTtpZighaS5ub2RlKC0xKS5jYW5SZXBsYWNlV2l0aChpLmluZGV4KC0xKSxpLmluZGV4QWZ0ZXIoLTEpLGEudHlwZSkpcmV0dXJuIG51bGw7ZS50ci5kZWxldGUodC5mcm9tLHQudG8pLnNldEJsb2NrVHlwZSh0LmZyb20sdC5mcm9tLGEudHlwZSxvKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIG1yKGEpe3JldHVybiBuZXcgd2Moe2ZpbmQ6YS5maW5kLGhhbmRsZXI6cygoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDpyfSk9PntsZXQgaT1hLnJlcGxhY2Usbz10LmZyb20sbj10LnRvO2lmKHJbMV0pe2xldCBsPXJbMF0ubGFzdEluZGV4T2YoclsxXSk7aSs9clswXS5zbGljZShsK3JbMV0ubGVuZ3RoKSxvKz1sO2xldCBkPW8tbjtkPjAmJihpPXJbMF0uc2xpY2UobC1kLGwpK2ksbz1uKX1lLnRyLmluc2VydFRleHQoaSxvLG4pfSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gSjIoYSl7cmV0dXJuIG5ldyB3Yyh7ZmluZDphLmZpbmQsaGFuZGxlcjpzKCh7c3RhdGU6ZSxyYW5nZTp0LG1hdGNoOnIsY2hhaW46aX0pPT57bGV0IG89anQoYS5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxyKXx8e30sbj1lLnRyLmRlbGV0ZSh0LmZyb20sdC50byksZD1uLmRvYy5yZXNvbHZlKHQuZnJvbSkuYmxvY2tSYW5nZSgpLGM9ZCYmQmYoZCxhLnR5cGUsbyk7aWYoIWMpcmV0dXJuIG51bGw7aWYobi53cmFwKGQsYyksYS5rZWVwTWFya3MmJmEuZWRpdG9yKXtsZXR7c2VsZWN0aW9uOnUsc3RvcmVkTWFya3M6bX09ZSx7c3BsaXR0YWJsZU1hcmtzOnZ9PWEuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIseD1tfHx1LiR0by5wYXJlbnRPZmZzZXQmJnUuJGZyb20ubWFya3MoKTtpZih4KXtsZXQgYj14LmZpbHRlcihnPT52LmluY2x1ZGVzKGcudHlwZS5uYW1lKSk7bi5lbnN1cmVNYXJrcyhiKX19aWYoYS5rZWVwQXR0cmlidXRlcyl7bGV0IHU9YS50eXBlLm5hbWU9PT0iYnVsbGV0TGlzdCJ8fGEudHlwZS5uYW1lPT09Im9yZGVyZWRMaXN0Ij8ibGlzdEl0ZW0iOiJ0YXNrTGlzdCI7aSgpLnVwZGF0ZUF0dHJpYnV0ZXModSxvKS5ydW4oKX1sZXQgcD1uLmRvYy5yZXNvbHZlKHQuZnJvbS0xKS5ub2RlQmVmb3JlO3AmJnAudHlwZT09PWEudHlwZSYmc24obi5kb2MsdC5mcm9tLTEpJiYoIWEuam9pblByZWRpY2F0ZXx8YS5qb2luUHJlZGljYXRlKHIscCkpJiZuLmpvaW4odC5mcm9tLTEpfSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gT28oYSl7cmV0dXJuIG5ldyBRZih7ZmluZDphLmZpbmQsaGFuZGxlcjpzKCh7c3RhdGU6ZSxyYW5nZTp0LG1hdGNoOnIscGFzdGVFdmVudDppfSk9PntsZXQgbz1qdChhLmdldEF0dHJpYnV0ZXMsdm9pZCAwLHIsaSk7aWYobz09PSExfHxvPT09bnVsbClyZXR1cm4gbnVsbDtsZXR7dHI6bn09ZSxsPXJbci5sZW5ndGgtMV0sZD1yWzBdLGM9dC50bztpZihsKXtsZXQgcD1kLnNlYXJjaCgvXFMvKSx1PXQuZnJvbStkLmluZGV4T2YobCksbT11K2wubGVuZ3RoO2lmKFJtKHQuZnJvbSx0LnRvLGUuZG9jKS5maWx0ZXIoeD0+eC5tYXJrLnR5cGUuZXhjbHVkZWQuZmluZChnPT5nPT09YS50eXBlJiZnIT09eC5tYXJrLnR5cGUpKS5maWx0ZXIoeD0+eC50bz51KS5sZW5ndGgpcmV0dXJuIG51bGw7bTx0LnRvJiZuLmRlbGV0ZShtLHQudG8pLHU+dC5mcm9tJiZuLmRlbGV0ZSh0LmZyb20rcCx1KSxjPXQuZnJvbStwK2wubGVuZ3RoLG4uYWRkTWFyayh0LmZyb20rcCxjLGEudHlwZS5jcmVhdGUob3x8e30pKSxuLnJlbW92ZVN0b3JlZE1hcmsoYS50eXBlKX19LCJoYW5kbGVyIil9KX1mdW5jdGlvbiBEcmUoYSxlKXtsZXR7c2VsZWN0aW9uOnR9PWEseyRmcm9tOnJ9PXQ7aWYodCBpbnN0YW5jZW9mIGt0KXtsZXQgbz1yLmluZGV4KCk7cmV0dXJuIHIucGFyZW50LmNhblJlcGxhY2VXaXRoKG8sbysxLGUpfWxldCBpPXIuZGVwdGg7Zm9yKDtpPj0wOyl7bGV0IG89ci5pbmRleChpKTtpZihyLm5vZGUoaSkuY29udGVudE1hdGNoQXQobykubWF0Y2hUeXBlKGUpKXJldHVybiEwO2ktPTF9cmV0dXJuITF9ZnVuY3Rpb24gaDFhKGEpe3JldHVybiBhLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKX1mdW5jdGlvbiBtMWEoYSl7cmV0dXJuIHR5cGVvZiBhPT0ic3RyaW5nIn1mdW5jdGlvbiBnMWEoYSl7cmV0dXJuIG5ldyBRZih7ZmluZDphLmZpbmQsaGFuZGxlcih7bWF0Y2g6ZSxjaGFpbjp0LHJhbmdlOnIscGFzdGVFdmVudDppfSl7bGV0IG89anQoYS5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxlLGkpLG49anQoYS5nZXRDb250ZW50LHZvaWQgMCxvKTtpZihvPT09ITF8fG89PT1udWxsKXJldHVybiBudWxsO2xldCBsPXt0eXBlOmEudHlwZS5uYW1lLGF0dHJzOm99O24mJihsLmNvbnRlbnQ9biksZS5pbnB1dCYmdCgpLmRlbGV0ZVJhbmdlKHIpLmluc2VydENvbnRlbnRBdChyLmZyb20sbCl9fSl9ZnVuY3Rpb24gYjFhKGEpe3JldHVybiBuZXcgUWYoe2ZpbmQ6YS5maW5kLGhhbmRsZXI6cygoe3N0YXRlOmUscmFuZ2U6dCxtYXRjaDpyfSk9PntsZXQgaT1hLnJlcGxhY2Usbz10LmZyb20sbj10LnRvO2lmKHJbMV0pe2xldCBsPXJbMF0ubGFzdEluZGV4T2YoclsxXSk7aSs9clswXS5zbGljZShsK3JbMV0ubGVuZ3RoKSxvKz1sO2xldCBkPW8tbjtkPjAmJihpPXJbMF0uc2xpY2UobC1kLGwpK2ksbz1uKX1lLnRyLmluc2VydFRleHQoaSxvLG4pfSwiaGFuZGxlciIpfSl9dmFyIHc0LHlaZSxDWmUsd2MsQlBhLG5pLFFmLHFQYSxscmUsalBhLGNyZSx3cixqbmEsVVBhLFdQYSxHUGEsWVBhLEtQYSxaUGEsWFBhLFFQYSxKUGEsZUVhLHRFYSxhRWEsckVhLHNFYSxpRWEsb0VhLG5FYSxHbmEsbEVhLGNFYSxkRWEsdUVhLHBFYSxmRWEsaEVhLG1FYSxnRWEsYkVhLHhFYSx5RWEsd0VhLE1FYSxrRWEsU0VhLHpFYSxDRWEsX0VhLFRFYSxMRWEsJEVhLERFYSxBRWEsbDFhLGMxYSxkMWEsSUVhLE5FYSxSRWEsT0VhLEZFYSxCRWEsSEVhLHFFYSxNWmUsa1plLFZFYSxqRWEsVUVhLFdFYSxHRWEsWUVhLEtFYSxaRWEsWEVhLFFFYSxKRWEsWm5hLFhuYSxRbmEsSm5hLGUxYSx0MWEsYTFhLHIxYSxmMWEsZ1csZUlhLGtyZSxvcixTcmUsenJlLGdyPWYoKCk9PntaVSgpO3luYSgpO2tuYSgpO1NuYSgpO3puYSgpO0luYSgpO3FuYSgpO3MoVG0sImNyZWF0ZUNoYWluYWJsZVN0YXRlIik7dzQ9Y2xhc3N7c3RhdGlje3ModGhpcywiQ29tbWFuZE1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmVkaXRvcj1lLmVkaXRvcix0aGlzLnJhd0NvbW1hbmRzPXRoaXMuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIuY29tbWFuZHMsdGhpcy5jdXN0b21TdGF0ZT1lLnN0YXRlfWdldCBoYXNDdXN0b21TdGF0ZSgpe3JldHVybiEhdGhpcy5jdXN0b21TdGF0ZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5jdXN0b21TdGF0ZXx8dGhpcy5lZGl0b3Iuc3RhdGV9Z2V0IGNvbW1hbmRzKCl7bGV0e3Jhd0NvbW1hbmRzOmUsZWRpdG9yOnQsc3RhdGU6cn09dGhpcyx7dmlldzppfT10LHt0cjpvfT1yLG49dGhpcy5idWlsZFByb3BzKG8pO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkubWFwKChbbCxkXSk9PltsLHMoKC4uLnApPT57bGV0IHU9ZCguLi5wKShuKTtyZXR1cm4hby5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJmkuZGlzcGF0Y2gobyksdX0sIm1ldGhvZCIpXSkpfWdldCBjaGFpbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNoYWluKCl9Z2V0IGNhbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNhbigpfWNyZWF0ZUNoYWluKGUsdD0hMCl7bGV0e3Jhd0NvbW1hbmRzOnIsZWRpdG9yOmksc3RhdGU6b309dGhpcyx7dmlldzpufT1pLGw9W10sZD0hIWUsYz1lfHxvLnRyLHA9cygoKT0+KCFkJiZ0JiYhYy5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJm4uZGlzcGF0Y2goYyksbC5ldmVyeShtPT5tPT09ITApKSwicnVuIiksdT17Li4uT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW20sdl0pPT5bbSxzKCguLi5iKT0+e2xldCBnPXRoaXMuYnVpbGRQcm9wcyhjLHQpLHk9diguLi5iKShnKTtyZXR1cm4gbC5wdXNoKHkpLHV9LCJjaGFpbmVkQ29tbWFuZCIpXSkpLHJ1bjpwfTtyZXR1cm4gdX1jcmVhdGVDYW4oZSl7bGV0e3Jhd0NvbW1hbmRzOnQsc3RhdGU6cn09dGhpcyxpPSExLG89ZXx8ci50cixuPXRoaXMuYnVpbGRQcm9wcyhvLGkpO3JldHVybnsuLi5PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKChbZCxjXSk9PltkLCguLi5wKT0+YyguLi5wKSh7Li4ubixkaXNwYXRjaDp2b2lkIDB9KV0pKSxjaGFpbjpzKCgpPT50aGlzLmNyZWF0ZUNoYWluKG8saSksImNoYWluIil9fWJ1aWxkUHJvcHMoZSx0PSEwKXtsZXR7cmF3Q29tbWFuZHM6cixlZGl0b3I6aSxzdGF0ZTpvfT10aGlzLHt2aWV3Om59PWksbD17dHI6ZSxlZGl0b3I6aSx2aWV3Om4sc3RhdGU6VG0oe3N0YXRlOm8sdHJhbnNhY3Rpb246ZX0pLGRpc3BhdGNoOnQ/KCk9Pnt9OnZvaWQgMCxjaGFpbjpzKCgpPT50aGlzLmNyZWF0ZUNoYWluKGUsdCksImNoYWluIiksY2FuOnMoKCk9PnRoaXMuY3JlYXRlQ2FuKGUpLCJjYW4iKSxnZXQgY29tbWFuZHMoKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW2QsY10pPT5bZCwoLi4ucCk9PmMoLi4ucCkobCldKSl9fTtyZXR1cm4gbH19LHlaZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJFdmVudEVtaXR0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuY2FsbGJhY2tzPXt9fW9uKGUsdCl7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2VdfHwodGhpcy5jYWxsYmFja3NbZV09W10pLHRoaXMuY2FsbGJhY2tzW2VdLnB1c2godCksdGhpc31lbWl0KGUsLi4udCl7bGV0IHI9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIHImJnIuZm9yRWFjaChpPT5pLmFwcGx5KHRoaXMsdCkpLHRoaXN9b2ZmKGUsdCl7bGV0IHI9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIHImJih0P3RoaXMuY2FsbGJhY2tzW2VdPXIuZmlsdGVyKGk9PmkhPT10KTpkZWxldGUgdGhpcy5jYWxsYmFja3NbZV0pLHRoaXN9b25jZShlLHQpe2xldCByPXMoKC4uLmkpPT57dGhpcy5vZmYoZSxyKSx0LmFwcGx5KHRoaXMsaSl9LCJvbmNlRm4iKTtyZXR1cm4gdGhpcy5vbihlLHIpfXJlbW92ZUFsbExpc3RlbmVycygpe3RoaXMuY2FsbGJhY2tzPXt9fX07cyhwdCwiZ2V0RXh0ZW5zaW9uRmllbGQiKTtzKExtLCJzcGxpdEV4dGVuc2lvbnMiKTtzKGRyZSwiZ2V0QXR0cmlidXRlc0Zyb21FeHRlbnNpb25zIik7cyh4cywiZ2V0Tm9kZVR5cGUiKTtzKHphLCJtZXJnZUF0dHJpYnV0ZXMiKTtzKG5XLCJnZXRSZW5kZXJlZEF0dHJpYnV0ZXMiKTtzKHVyZSwiaXNGdW5jdGlvbiIpO3MoanQsImNhbGxPclJldHVybiIpO3MoU1plLCJpc0VtcHR5T2JqZWN0Iik7cyh6WmUsImZyb21TdHJpbmciKTtzKHByZSwiaW5qZWN0RXh0ZW5zaW9uQXR0cmlidXRlc1RvUGFyc2VSdWxlIik7cyhWbmEsImNsZWFuVXBTY2hlbWFJdGVtIik7cyhmcmUsImdldFNjaGVtYUJ5UmVzb2x2ZWRFeHRlbnNpb25zIik7cyhsVywiZ2V0U2NoZW1hVHlwZUJ5TmFtZSIpO3MoaHJlLCJpc0V4dGVuc2lvblJ1bGVzRW5hYmxlZCIpO3MoJG0sImdldEhUTUxGcm9tRnJhZ21lbnQiKTtDWmU9cygoYSxlPTUwMCk9PntsZXQgdD0iIixyPWEucGFyZW50T2Zmc2V0O3JldHVybiBhLnBhcmVudC5ub2Rlc0JldHdlZW4oTWF0aC5tYXgoMCxyLWUpLHIsKGksbyxuLGwpPT57dmFyIGQsYztsZXQgcD0oKGM9KGQ9aS50eXBlLnNwZWMpLnRvVGV4dCk9PT1udWxsfHxjPT09dm9pZCAwP3ZvaWQgMDpjLmNhbGwoZCx7bm9kZTppLHBvczpvLHBhcmVudDpuLGluZGV4Omx9KSl8fGkudGV4dENvbnRlbnR8fCIlbGVhZiUiO3QrPWkuaXNBdG9tJiYhaS5pc1RleHQ/cDpwLnNsaWNlKDAsTWF0aC5tYXgoMCxyLW8pKX0pLHR9LCJnZXRUZXh0Q29udGVudEZyb21Ob2RlcyIpO3MoY1csImlzUmVnRXhwIik7d2M9Y2xhc3N7c3RhdGlje3ModGhpcywiSW5wdXRSdWxlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5maW5kPWUuZmluZCx0aGlzLmhhbmRsZXI9ZS5oYW5kbGVyfX0sQlBhPXMoKGEsZSk9PntpZihjVyhlKSlyZXR1cm4gZS5leGVjKGEpO2xldCB0PWUoYSk7aWYoIXQpcmV0dXJuIG51bGw7bGV0IHI9W3QudGV4dF07cmV0dXJuIHIuaW5kZXg9dC5pbmRleCxyLmlucHV0PWEsci5kYXRhPXQuZGF0YSx0LnJlcGxhY2VXaXRoJiYodC50ZXh0LmluY2x1ZGVzKHQucmVwbGFjZVdpdGgpfHxjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06ICJpbnB1dFJ1bGVNYXRjaC5yZXBsYWNlV2l0aCIgbXVzdCBiZSBwYXJ0IG9mICJpbnB1dFJ1bGVNYXRjaC50ZXh0Ii4nKSxyLnB1c2godC5yZXBsYWNlV2l0aCkpLHJ9LCJpbnB1dFJ1bGVNYXRjaGVySGFuZGxlciIpO3MobnJlLCJydW4kMSIpO3MoX1plLCJpbnB1dFJ1bGVzUGx1Z2luIik7cyhIUGEsImdldFR5cGUiKTtzKERtLCJpc1BsYWluT2JqZWN0Iik7cyhBbSwibWVyZ2VEZWVwIik7bmk9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJNYXJrIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy50eXBlPSJtYXJrIix0aGlzLm5hbWU9Im1hcmsiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZD1udWxsLHRoaXMuY29uZmlnPXtuYW1lOnRoaXMubmFtZSxkZWZhdWx0T3B0aW9uczp7fX0sdGhpcy5jb25maWc9ey4uLnRoaXMuY29uZmlnLC4uLmV9LHRoaXMubmFtZT10aGlzLmNvbmZpZy5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3RoaXMubmFtZX0iLmApLHRoaXMub3B0aW9ucz10aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucyx0aGlzLmNvbmZpZy5hZGRPcHRpb25zJiYodGhpcy5vcHRpb25zPWp0KHB0KHRoaXMsImFkZE9wdGlvbnMiLHtuYW1lOnRoaXMubmFtZX0pKSksdGhpcy5zdG9yYWdlPWp0KHB0KHRoaXMsImFkZFN0b3JhZ2UiLHtuYW1lOnRoaXMubmFtZSxvcHRpb25zOnRoaXMub3B0aW9uc30pKXx8e319c3RhdGljIGNyZWF0ZShlPXt9KXtyZXR1cm4gbmV3IGEoZSl9Y29uZmlndXJlKGU9e30pe2xldCB0PXRoaXMuZXh0ZW5kKHsuLi50aGlzLmNvbmZpZyxhZGRPcHRpb25zOnMoKCk9PkFtKHRoaXMub3B0aW9ucyxlKSwiYWRkT3B0aW9ucyIpfSk7cmV0dXJuIHQubmFtZT10aGlzLm5hbWUsdC5wYXJlbnQ9dGhpcy5wYXJlbnQsdH1leHRlbmQoZT17fSl7bGV0IHQ9bmV3IGEoZSk7cmV0dXJuIHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZD10LHQubmFtZT1lLm5hbWU/ZS5uYW1lOnQucGFyZW50Lm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dC5uYW1lfSIuYCksdC5vcHRpb25zPWp0KHB0KHQsImFkZE9wdGlvbnMiLHtuYW1lOnQubmFtZX0pKSx0LnN0b3JhZ2U9anQocHQodCwiYWRkU3RvcmFnZSIse25hbWU6dC5uYW1lLG9wdGlvbnM6dC5vcHRpb25zfSkpLHR9c3RhdGljIGhhbmRsZUV4aXQoe2VkaXRvcjplLG1hcms6dH0pe2xldHt0cjpyfT1lLnN0YXRlLGk9ZS5zdGF0ZS5zZWxlY3Rpb24uJGZyb207aWYoaS5wb3M9PT1pLmVuZCgpKXtsZXQgbj1pLm1hcmtzKCk7aWYoISEhbi5maW5kKGM9PmM/LnR5cGUubmFtZT09PXQubmFtZSkpcmV0dXJuITE7bGV0IGQ9bi5maW5kKGM9PmM/LnR5cGUubmFtZT09PXQubmFtZSk7cmV0dXJuIGQmJnIucmVtb3ZlU3RvcmVkTWFyayhkKSxyLmluc2VydFRleHQoIiAiLGkucG9zKSxlLnZpZXcuZGlzcGF0Y2gociksITB9cmV0dXJuITF9fTtzKFRaZSwiaXNOdW1iZXIiKTtRZj1jbGFzc3tzdGF0aWN7cyh0aGlzLCJQYXN0ZVJ1bGUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmZpbmQ9ZS5maW5kLHRoaXMuaGFuZGxlcj1lLmhhbmRsZXJ9fSxxUGE9cygoYSxlLHQpPT57aWYoY1coZSkpcmV0dXJuWy4uLmEubWF0Y2hBbGwoZSldO2xldCByPWUoYSx0KTtyZXR1cm4gcj9yLm1hcChpPT57bGV0IG89W2kudGV4dF07cmV0dXJuIG8uaW5kZXg9aS5pbmRleCxvLmlucHV0PWEsby5kYXRhPWkuZGF0YSxpLnJlcGxhY2VXaXRoJiYoaS50ZXh0LmluY2x1ZGVzKGkucmVwbGFjZVdpdGgpfHxjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06ICJwYXN0ZVJ1bGVNYXRjaC5yZXBsYWNlV2l0aCIgbXVzdCBiZSBwYXJ0IG9mICJwYXN0ZVJ1bGVNYXRjaC50ZXh0Ii4nKSxvLnB1c2goaS5yZXBsYWNlV2l0aCkpLG99KTpbXX0sInBhc3RlUnVsZU1hdGNoZXJIYW5kbGVyIik7cyhWUGEsInJ1biIpO2xyZT1udWxsLGpQYT1zKGE9Pnt2YXIgZTtsZXQgdD1uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIix7Y2xpcGJvYXJkRGF0YTpuZXcgRGF0YVRyYW5zZmVyfSk7cmV0dXJuKGU9dC5jbGlwYm9hcmREYXRhKT09PW51bGx8fGU9PT12b2lkIDB8fGUuc2V0RGF0YSgidGV4dC9odG1sIixhKSx0fSwiY3JlYXRlQ2xpcGJvYXJkUGFzdGVFdmVudCIpO3MoTFplLCJwYXN0ZVJ1bGVzUGx1Z2luIik7cygkWmUsImZpbmREdXBsaWNhdGVzIik7Y3JlPWNsYXNzIGF7c3RhdGlje3ModGhpcywiRXh0ZW5zaW9uTWFuYWdlciIpfWNvbnN0cnVjdG9yKGUsdCl7dGhpcy5zcGxpdHRhYmxlTWFya3M9W10sdGhpcy5lZGl0b3I9dCx0aGlzLmV4dGVuc2lvbnM9YS5yZXNvbHZlKGUpLHRoaXMuc2NoZW1hPWZyZSh0aGlzLmV4dGVuc2lvbnMsdCksdGhpcy5zZXR1cEV4dGVuc2lvbnMoKX1zdGF0aWMgcmVzb2x2ZShlKXtsZXQgdD1hLnNvcnQoYS5mbGF0dGVuKGUpKSxyPSRaZSh0Lm1hcChpPT5pLm5hbWUpKTtyZXR1cm4gci5sZW5ndGgmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogRHVwbGljYXRlIGV4dGVuc2lvbiBuYW1lcyBmb3VuZDogWyR7ci5tYXAoaT0+YCcke2l9J2ApLmpvaW4oIiwgIil9XS4gVGhpcyBjYW4gbGVhZCB0byBpc3N1ZXMuYCksdH1zdGF0aWMgZmxhdHRlbihlKXtyZXR1cm4gZS5tYXAodD0+e2xldCByPXtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9ucyxzdG9yYWdlOnQuc3RvcmFnZX0saT1wdCh0LCJhZGRFeHRlbnNpb25zIixyKTtyZXR1cm4gaT9bdCwuLi50aGlzLmZsYXR0ZW4oaSgpKV06dH0pLmZsYXQoMTApfXN0YXRpYyBzb3J0KGUpe3JldHVybiBlLnNvcnQoKHIsaSk9PntsZXQgbz1wdChyLCJwcmlvcml0eSIpfHwxMDAsbj1wdChpLCJwcmlvcml0eSIpfHwxMDA7cmV0dXJuIG8+bj8tMTpvPG4/MTowfSl9Z2V0IGNvbW1hbmRzKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5yZWR1Y2UoKGUsdCk9PntsZXQgcj17bmFtZTp0Lm5hbWUsb3B0aW9uczp0Lm9wdGlvbnMsc3RvcmFnZTp0LnN0b3JhZ2UsZWRpdG9yOnRoaXMuZWRpdG9yLHR5cGU6bFcodC5uYW1lLHRoaXMuc2NoZW1hKX0saT1wdCh0LCJhZGRDb21tYW5kcyIscik7cmV0dXJuIGk/ey4uLmUsLi4uaSgpfTplfSx7fSl9Z2V0IHBsdWdpbnMoKXtsZXR7ZWRpdG9yOmV9PXRoaXMsdD1hLnNvcnQoWy4uLnRoaXMuZXh0ZW5zaW9uc10ucmV2ZXJzZSgpKSxyPVtdLGk9W10sbz10Lm1hcChuPT57bGV0IGw9e25hbWU6bi5uYW1lLG9wdGlvbnM6bi5vcHRpb25zLHN0b3JhZ2U6bi5zdG9yYWdlLGVkaXRvcjplLHR5cGU6bFcobi5uYW1lLHRoaXMuc2NoZW1hKX0sZD1bXSxjPXB0KG4sImFkZEtleWJvYXJkU2hvcnRjdXRzIixsKSxwPXt9O2lmKG4udHlwZT09PSJtYXJrIiYmcHQobiwiZXhpdGFibGUiLGwpJiYocC5BcnJvd1JpZ2h0PSgpPT5uaS5oYW5kbGVFeGl0KHtlZGl0b3I6ZSxtYXJrOm59KSksYyl7bGV0IGI9T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGMoKSkubWFwKChbZyx5XSk9PltnLCgpPT55KHtlZGl0b3I6ZX0pXSkpO3A9ey4uLnAsLi4uYn19bGV0IHU9dFplKHApO2QucHVzaCh1KTtsZXQgbT1wdChuLCJhZGRJbnB1dFJ1bGVzIixsKTtocmUobixlLm9wdGlvbnMuZW5hYmxlSW5wdXRSdWxlcykmJm0mJnIucHVzaCguLi5tKCkpO2xldCB2PXB0KG4sImFkZFBhc3RlUnVsZXMiLGwpO2hyZShuLGUub3B0aW9ucy5lbmFibGVQYXN0ZVJ1bGVzKSYmdiYmaS5wdXNoKC4uLnYoKSk7bGV0IHg9cHQobiwiYWRkUHJvc2VNaXJyb3JQbHVnaW5zIixsKTtpZih4KXtsZXQgYj14KCk7ZC5wdXNoKC4uLmIpfXJldHVybiBkfSkuZmxhdCgpO3JldHVybltfWmUoe2VkaXRvcjplLHJ1bGVzOnJ9KSwuLi5MWmUoe2VkaXRvcjplLHJ1bGVzOml9KSwuLi5vXX1nZXQgYXR0cmlidXRlcygpe3JldHVybiBkcmUodGhpcy5leHRlbnNpb25zKX1nZXQgbm9kZVZpZXdzKCl7bGV0e2VkaXRvcjplfT10aGlzLHtub2RlRXh0ZW5zaW9uczp0fT1MbSh0aGlzLmV4dGVuc2lvbnMpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXModC5maWx0ZXIocj0+ISFwdChyLCJhZGROb2RlVmlldyIpKS5tYXAocj0+e2xldCBpPXRoaXMuYXR0cmlidXRlcy5maWx0ZXIoZD0+ZC50eXBlPT09ci5uYW1lKSxvPXtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9ucyxzdG9yYWdlOnIuc3RvcmFnZSxlZGl0b3I6ZSx0eXBlOnhzKHIubmFtZSx0aGlzLnNjaGVtYSl9LG49cHQociwiYWRkTm9kZVZpZXciLG8pO2lmKCFuKXJldHVybltdO2xldCBsPXMoKGQsYyxwLHUsbSk9PntsZXQgdj1uVyhkLGkpO3JldHVybiBuKCkoe25vZGU6ZCx2aWV3OmMsZ2V0UG9zOnAsZGVjb3JhdGlvbnM6dSxpbm5lckRlY29yYXRpb25zOm0sZWRpdG9yOmUsZXh0ZW5zaW9uOnIsSFRNTEF0dHJpYnV0ZXM6dn0pfSwibm9kZXZpZXciKTtyZXR1cm5bci5uYW1lLGxdfSkpfXNldHVwRXh0ZW5zaW9ucygpe3RoaXMuZXh0ZW5zaW9ucy5mb3JFYWNoKGU9Pnt2YXIgdDt0aGlzLmVkaXRvci5leHRlbnNpb25TdG9yYWdlW2UubmFtZV09ZS5zdG9yYWdlO2xldCByPXtuYW1lOmUubmFtZSxvcHRpb25zOmUub3B0aW9ucyxzdG9yYWdlOmUuc3RvcmFnZSxlZGl0b3I6dGhpcy5lZGl0b3IsdHlwZTpsVyhlLm5hbWUsdGhpcy5zY2hlbWEpfTtlLnR5cGU9PT0ibWFyayImJighKCh0PWp0KHB0KGUsImtlZXBPblNwbGl0IixyKSkpIT09bnVsbCYmdCE9PXZvaWQgMCl8fHQpJiZ0aGlzLnNwbGl0dGFibGVNYXJrcy5wdXNoKGUubmFtZSk7bGV0IGk9cHQoZSwib25CZWZvcmVDcmVhdGUiLHIpLG89cHQoZSwib25DcmVhdGUiLHIpLG49cHQoZSwib25VcGRhdGUiLHIpLGw9cHQoZSwib25TZWxlY3Rpb25VcGRhdGUiLHIpLGQ9cHQoZSwib25UcmFuc2FjdGlvbiIsciksYz1wdChlLCJvbkZvY3VzIixyKSxwPXB0KGUsIm9uQmx1ciIsciksdT1wdChlLCJvbkRlc3Ryb3kiLHIpO2kmJnRoaXMuZWRpdG9yLm9uKCJiZWZvcmVDcmVhdGUiLGkpLG8mJnRoaXMuZWRpdG9yLm9uKCJjcmVhdGUiLG8pLG4mJnRoaXMuZWRpdG9yLm9uKCJ1cGRhdGUiLG4pLGwmJnRoaXMuZWRpdG9yLm9uKCJzZWxlY3Rpb25VcGRhdGUiLGwpLGQmJnRoaXMuZWRpdG9yLm9uKCJ0cmFuc2FjdGlvbiIsZCksYyYmdGhpcy5lZGl0b3Iub24oImZvY3VzIixjKSxwJiZ0aGlzLmVkaXRvci5vbigiYmx1ciIscCksdSYmdGhpcy5lZGl0b3Iub24oImRlc3Ryb3kiLHUpfSl9fSx3cj1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIkV4dGVuc2lvbiIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0iZXh0ZW5zaW9uIix0aGlzLm5hbWU9ImV4dGVuc2lvbiIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkPW51bGwsdGhpcy5jb25maWc9e25hbWU6dGhpcy5uYW1lLGRlZmF1bHRPcHRpb25zOnt9fSx0aGlzLmNvbmZpZz17Li4udGhpcy5jb25maWcsLi4uZX0sdGhpcy5uYW1lPXRoaXMuY29uZmlnLm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dGhpcy5uYW1lfSIuYCksdGhpcy5vcHRpb25zPXRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLHRoaXMuY29uZmlnLmFkZE9wdGlvbnMmJih0aGlzLm9wdGlvbnM9anQocHQodGhpcywiYWRkT3B0aW9ucyIse25hbWU6dGhpcy5uYW1lfSkpKSx0aGlzLnN0b3JhZ2U9anQocHQodGhpcywiYWRkU3RvcmFnZSIse25hbWU6dGhpcy5uYW1lLG9wdGlvbnM6dGhpcy5vcHRpb25zfSkpfHx7fX1zdGF0aWMgY3JlYXRlKGU9e30pe3JldHVybiBuZXcgYShlKX1jb25maWd1cmUoZT17fSl7bGV0IHQ9dGhpcy5leHRlbmQoey4uLnRoaXMuY29uZmlnLGFkZE9wdGlvbnM6cygoKT0+QW0odGhpcy5vcHRpb25zLGUpLCJhZGRPcHRpb25zIil9KTtyZXR1cm4gdC5uYW1lPXRoaXMubmFtZSx0LnBhcmVudD10aGlzLnBhcmVudCx0fWV4dGVuZChlPXt9KXtsZXQgdD1uZXcgYSh7Li4udGhpcy5jb25maWcsLi4uZX0pO3JldHVybiB0LnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9dCx0Lm5hbWU9ZS5uYW1lP2UubmFtZTp0LnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3QubmFtZX0iLmApLHQub3B0aW9ucz1qdChwdCh0LCJhZGRPcHRpb25zIix7bmFtZTp0Lm5hbWV9KSksdC5zdG9yYWdlPWp0KHB0KHQsImFkZFN0b3JhZ2UiLHtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9uc30pKSx0fX07cyhtcmUsImdldFRleHRCZXR3ZWVuIik7cyhkVywiZ2V0VGV4dFNlcmlhbGl6ZXJzRnJvbVNjaGVtYSIpO2puYT13ci5jcmVhdGUoe25hbWU6ImNsaXBib2FyZFRleHRTZXJpYWxpemVyIixhZGRPcHRpb25zKCl7cmV0dXJue2Jsb2NrU2VwYXJhdG9yOnZvaWQgMH19LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgYXIoe2tleTpuZXcgYnMoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIikscHJvcHM6e2NsaXBib2FyZFRleHRTZXJpYWxpemVyOnMoKCk9PntsZXR7ZWRpdG9yOmF9PXRoaXMse3N0YXRlOmUsc2NoZW1hOnR9PWEse2RvYzpyLHNlbGVjdGlvbjppfT1lLHtyYW5nZXM6b309aSxuPU1hdGgubWluKC4uLm8ubWFwKHA9PnAuJGZyb20ucG9zKSksbD1NYXRoLm1heCguLi5vLm1hcChwPT5wLiR0by5wb3MpKSxkPWRXKHQpO3JldHVybiBtcmUocix7ZnJvbTpuLHRvOmx9LHsuLi50aGlzLm9wdGlvbnMuYmxvY2tTZXBhcmF0b3IhPT12b2lkIDA/e2Jsb2NrU2VwYXJhdG9yOnRoaXMub3B0aW9ucy5ibG9ja1NlcGFyYXRvcn06e30sdGV4dFNlcmlhbGl6ZXJzOmR9KX0sImNsaXBib2FyZFRleHRTZXJpYWxpemVyIil9fSldfX0pLFVQYT1zKCgpPT4oe2VkaXRvcjphLHZpZXc6ZX0pPT4ocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dmFyIHQ7YS5pc0Rlc3Ryb3llZHx8KGUuZG9tLmJsdXIoKSwodD13aW5kb3c/LmdldFNlbGVjdGlvbigpKT09PW51bGx8fHQ9PT12b2lkIDB8fHQucmVtb3ZlQWxsUmFuZ2VzKCkpfSksITApLCJibHVyIiksV1BhPXMoKGE9ITEpPT4oe2NvbW1hbmRzOmV9KT0+ZS5zZXRDb250ZW50KCIiLGEpLCJjbGVhckNvbnRlbnQiKSxHUGE9cygoKT0+KHtzdGF0ZTphLHRyOmUsZGlzcGF0Y2g6dH0pPT57bGV0e3NlbGVjdGlvbjpyfT1lLHtyYW5nZXM6aX09cjtyZXR1cm4gdCYmaS5mb3JFYWNoKCh7JGZyb206bywkdG86bn0pPT57YS5kb2Mubm9kZXNCZXR3ZWVuKG8ucG9zLG4ucG9zLChsLGQpPT57aWYobC50eXBlLmlzVGV4dClyZXR1cm47bGV0e2RvYzpjLG1hcHBpbmc6cH09ZSx1PWMucmVzb2x2ZShwLm1hcChkKSksbT1jLnJlc29sdmUocC5tYXAoZCtsLm5vZGVTaXplKSksdj11LmJsb2NrUmFuZ2UobSk7aWYoIXYpcmV0dXJuO2xldCB4PVkyKHYpO2lmKGwudHlwZS5pc1RleHRibG9jayl7bGV0e2RlZmF1bHRUeXBlOmJ9PXUucGFyZW50LmNvbnRlbnRNYXRjaEF0KHUuaW5kZXgoKSk7ZS5zZXROb2RlTWFya3VwKHYuc3RhcnQsYil9KHh8fHg9PT0wKSYmZS5saWZ0KHYseCl9KX0pLCEwfSwiY2xlYXJOb2RlcyIpLFlQYT1zKGE9PmU9PmEoZSksImNvbW1hbmQiKSxLUGE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmV9KT0+YXJlKGEsZSksImNyZWF0ZVBhcmFncmFwaE5lYXIiKSxaUGE9cygoYSxlKT0+KHtlZGl0b3I6dCx0cjpyfSk9PntsZXR7c3RhdGU6aX09dCxvPWkuZG9jLnNsaWNlKGEuZnJvbSxhLnRvKTtyLmRlbGV0ZVJhbmdlKGEuZnJvbSxhLnRvKTtsZXQgbj1yLm1hcHBpbmcubWFwKGUpO3JldHVybiByLmluc2VydChuLG8uY29udGVudCksci5zZXRTZWxlY3Rpb24obmV3IE50KHIuZG9jLnJlc29sdmUoTWF0aC5tYXgobi0xLDApKSkpLCEwfSwiY3V0IiksWFBhPXMoKCk9Pih7dHI6YSxkaXNwYXRjaDplfSk9PntsZXR7c2VsZWN0aW9uOnR9PWEscj10LiRhbmNob3Iubm9kZSgpO2lmKHIuY29udGVudC5zaXplPjApcmV0dXJuITE7bGV0IGk9YS5zZWxlY3Rpb24uJGFuY2hvcjtmb3IobGV0IG89aS5kZXB0aDtvPjA7by09MSlpZihpLm5vZGUobykudHlwZT09PXIudHlwZSl7aWYoZSl7bGV0IGw9aS5iZWZvcmUobyksZD1pLmFmdGVyKG8pO2EuZGVsZXRlKGwsZCkuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1yZXR1cm4hMX0sImRlbGV0ZUN1cnJlbnROb2RlIiksUVBhPXMoYT0+KHt0cjplLHN0YXRlOnQsZGlzcGF0Y2g6cn0pPT57bGV0IGk9eHMoYSx0LnNjaGVtYSksbz1lLnNlbGVjdGlvbi4kYW5jaG9yO2ZvcihsZXQgbj1vLmRlcHRoO24+MDtuLT0xKWlmKG8ubm9kZShuKS50eXBlPT09aSl7aWYocil7bGV0IGQ9by5iZWZvcmUobiksYz1vLmFmdGVyKG4pO2UuZGVsZXRlKGQsYykuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1yZXR1cm4hMX0sImRlbGV0ZU5vZGUiKSxKUGE9cyhhPT4oe3RyOmUsZGlzcGF0Y2g6dH0pPT57bGV0e2Zyb206cix0bzppfT1hO3JldHVybiB0JiZlLmRlbGV0ZShyLGkpLCEwfSwiZGVsZXRlUmFuZ2UiKSxlRWE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmV9KT0+b1coYSxlKSwiZGVsZXRlU2VsZWN0aW9uIiksdEVhPXMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLmtleWJvYXJkU2hvcnRjdXQoIkVudGVyIiksImVudGVyIiksYUVhPXMoKCk9Pih7c3RhdGU6YSxkaXNwYXRjaDplfSk9PnRyZShhLGUpLCJleGl0Q29kZSIpO3MoUG0sIm9iamVjdEluY2x1ZGVzIik7cyhVbmEsImZpbmRNYXJrSW5TZXQiKTtzKFduYSwiaXNNYXJrSW5TZXQiKTtzKHVXLCJnZXRNYXJrUmFuZ2UiKTtzKFEyLCJnZXRNYXJrVHlwZSIpO3JFYT1zKChhLGU9e30pPT4oe3RyOnQsc3RhdGU6cixkaXNwYXRjaDppfSk9PntsZXQgbz1RMihhLHIuc2NoZW1hKSx7ZG9jOm4sc2VsZWN0aW9uOmx9PXQseyRmcm9tOmQsZnJvbTpjLHRvOnB9PWw7aWYoaSl7bGV0IHU9dVcoZCxvLGUpO2lmKHUmJnUuZnJvbTw9YyYmdS50bz49cCl7bGV0IG09TnQuY3JlYXRlKG4sdS5mcm9tLHUudG8pO3Quc2V0U2VsZWN0aW9uKG0pfX1yZXR1cm4hMH0sImV4dGVuZE1hcmtSYW5nZSIpLHNFYT1zKGE9PmU9PntsZXQgdD10eXBlb2YgYT09ImZ1bmN0aW9uIj9hKGUpOmE7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKz0xKWlmKHRbcl0oZSkpcmV0dXJuITA7cmV0dXJuITF9LCJmaXJzdCIpO3MoZ3JlLCJpc1RleHRTZWxlY3Rpb24iKTtzKE8xLCJtaW5NYXgiKTtzKGJyZSwicmVzb2x2ZUZvY3VzUG9zaXRpb24iKTtzKHdaZSwiaXNBbmRyb2lkIik7cyhKZiwiaXNpT1MiKTtzKERaZSwiaXNTYWZhcmkiKTtpRWE9cygoYT1udWxsLGU9e30pPT4oe2VkaXRvcjp0LHZpZXc6cix0cjppLGRpc3BhdGNoOm99KT0+e2U9e3Njcm9sbEludG9WaWV3OiEwLC4uLmV9O2xldCBuPXMoKCk9PnsoSmYoKXx8d1plKCkpJiZyLmRvbS5mb2N1cygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3QuaXNEZXN0cm95ZWR8fChyLmZvY3VzKCksRFplKCkmJiFKZigpJiYhd1plKCkmJnIuZG9tLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpfSl9LCJkZWxheWVkRm9jdXMiKTtpZihyLmhhc0ZvY3VzKCkmJmE9PT1udWxsfHxhPT09ITEpcmV0dXJuITA7aWYobyYmYT09PW51bGwmJiFncmUodC5zdGF0ZS5zZWxlY3Rpb24pKXJldHVybiBuKCksITA7bGV0IGw9YnJlKGkuZG9jLGEpfHx0LnN0YXRlLnNlbGVjdGlvbixkPXQuc3RhdGUuc2VsZWN0aW9uLmVxKGwpO3JldHVybiBvJiYoZHx8aS5zZXRTZWxlY3Rpb24obCksZCYmaS5zdG9yZWRNYXJrcyYmaS5zZXRTdG9yZWRNYXJrcyhpLnN0b3JlZE1hcmtzKSxuKCkpLCEwfSwiZm9jdXMiKSxvRWE9cygoYSxlKT0+dD0+YS5ldmVyeSgocixpKT0+ZShyLHsuLi50LGluZGV4Oml9KSksImZvckVhY2giKSxuRWE9cygoYSxlKT0+KHt0cjp0LGNvbW1hbmRzOnJ9KT0+ci5pbnNlcnRDb250ZW50QXQoe2Zyb206dC5zZWxlY3Rpb24uZnJvbSx0bzp0LnNlbGVjdGlvbi50b30sYSxlKSwiaW5zZXJ0Q29udGVudCIpLEduYT1zKGE9PntsZXQgZT1hLmNoaWxkTm9kZXM7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LT0xKXtsZXQgcj1lW3RdO3Iubm9kZVR5cGU9PT0zJiZyLm5vZGVWYWx1ZSYmL14oXG5cc1xzfFxuKSQvLnRlc3Qoci5ub2RlVmFsdWUpP2EucmVtb3ZlQ2hpbGQocik6ci5ub2RlVHlwZT09PTEmJkduYShyKX1yZXR1cm4gYX0sInJlbW92ZVdoaXRlc3BhY2VzIik7cyhlNSwiZWxlbWVudEZyb21TdHJpbmciKTtzKHQ1LCJjcmVhdGVOb2RlRnJvbUNvbnRlbnQiKTtzKEFaZSwic2VsZWN0aW9uVG9JbnNlcnRpb25FbmQiKTtsRWE9cyhhPT4hKCJ0eXBlImluIGEpLCJpc0ZyYWdtZW50IiksY0VhPXMoKGEsZSx0KT0+KHt0cjpyLGRpc3BhdGNoOmksZWRpdG9yOm99KT0+e3ZhciBuO2lmKGkpe3Q9e3BhcnNlT3B0aW9uczpvLm9wdGlvbnMucGFyc2VPcHRpb25zLHVwZGF0ZVNlbGVjdGlvbjohMCxhcHBseUlucHV0UnVsZXM6ITEsYXBwbHlQYXN0ZVJ1bGVzOiExLC4uLnR9O2xldCBsLGQ9cyhnPT57by5lbWl0KCJjb250ZW50RXJyb3IiLHtlZGl0b3I6byxlcnJvcjpnLGRpc2FibGVDb2xsYWJvcmF0aW9uOnMoKCk9PntvLnN0b3JhZ2UuY29sbGFib3JhdGlvbiYmKG8uc3RvcmFnZS5jb2xsYWJvcmF0aW9uLmlzRGlzYWJsZWQ9ITApfSwiZGlzYWJsZUNvbGxhYm9yYXRpb24iKX0pfSwiZW1pdENvbnRlbnRFcnJvciIpLGM9e3ByZXNlcnZlV2hpdGVzcGFjZToiZnVsbCIsLi4udC5wYXJzZU9wdGlvbnN9O2lmKCF0LmVycm9yT25JbnZhbGlkQ29udGVudCYmIW8ub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2smJm8ub3B0aW9ucy5lbWl0Q29udGVudEVycm9yKXRyeXt0NShlLG8uc2NoZW1hLHtwYXJzZU9wdGlvbnM6YyxlcnJvck9uSW52YWxpZENvbnRlbnQ6ITB9KX1jYXRjaChnKXtkKGcpfXRyeXtsPXQ1KGUsby5zY2hlbWEse3BhcnNlT3B0aW9uczpjLGVycm9yT25JbnZhbGlkQ29udGVudDoobj10LmVycm9yT25JbnZhbGlkQ29udGVudCkhPT1udWxsJiZuIT09dm9pZCAwP246by5vcHRpb25zLmVuYWJsZUNvbnRlbnRDaGVja30pfWNhdGNoKGcpe3JldHVybiBkKGcpLCExfWxldHtmcm9tOnAsdG86dX09dHlwZW9mIGE9PSJudW1iZXIiP3tmcm9tOmEsdG86YX06e2Zyb206YS5mcm9tLHRvOmEudG99LG09ITAsdj0hMDtpZigobEVhKGwpP2w6W2xdKS5mb3JFYWNoKGc9PntnLmNoZWNrKCksbT1tP2cuaXNUZXh0JiZnLm1hcmtzLmxlbmd0aD09PTA6ITEsdj12P2cuaXNCbG9jazohMX0pLHA9PT11JiZ2KXtsZXR7cGFyZW50Omd9PXIuZG9jLnJlc29sdmUocCk7Zy5pc1RleHRibG9jayYmIWcudHlwZS5zcGVjLmNvZGUmJiFnLmNoaWxkQ291bnQmJihwLT0xLHUrPTEpfWxldCBiO2lmKG0pe2lmKEFycmF5LmlzQXJyYXkoZSkpYj1lLm1hcChnPT5nLnRleHR8fCIiKS5qb2luKCIiKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBqZSl7bGV0IGc9IiI7ZS5mb3JFYWNoKHk9Pnt5LnRleHQmJihnKz15LnRleHQpfSksYj1nfWVsc2UgdHlwZW9mIGU9PSJvYmplY3QiJiZlJiZlLnRleHQ/Yj1lLnRleHQ6Yj1lO3IuaW5zZXJ0VGV4dChiLHAsdSl9ZWxzZSBiPWwsci5yZXBsYWNlV2l0aChwLHUsYik7dC51cGRhdGVTZWxlY3Rpb24mJkFaZShyLHIuc3RlcHMubGVuZ3RoLTEsLTEpLHQuYXBwbHlJbnB1dFJ1bGVzJiZyLnNldE1ldGEoImFwcGx5SW5wdXRSdWxlcyIse2Zyb206cCx0ZXh0OmJ9KSx0LmFwcGx5UGFzdGVSdWxlcyYmci5zZXRNZXRhKCJhcHBseVBhc3RlUnVsZXMiLHtmcm9tOnAsdGV4dDpifSl9cmV0dXJuITB9LCJpbnNlcnRDb250ZW50QXQiKSxkRWE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmV9KT0+dVplKGEsZSksImpvaW5VcCIpLHVFYT1zKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT5wWmUoYSxlKSwiam9pbkRvd24iKSxwRWE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmV9KT0+WmFlKGEsZSksImpvaW5CYWNrd2FyZCIpLGZFYT1zKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT5RYWUoYSxlKSwiam9pbkZvcndhcmQiKSxoRWE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmUsdHI6dH0pPT57dHJ5e2xldCByPUhmKGEuZG9jLGEuc2VsZWN0aW9uLiRmcm9tLnBvcywtMSk7cmV0dXJuIHI9PW51bGw/ITE6KHQuam9pbihyLDIpLGUmJmUodCksITApfWNhdGNoe3JldHVybiExfX0sImpvaW5JdGVtQmFja3dhcmQiKSxtRWE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmUsdHI6dH0pPT57dHJ5e2xldCByPUhmKGEuZG9jLGEuc2VsZWN0aW9uLiRmcm9tLnBvcywxKTtyZXR1cm4gcj09bnVsbD8hMToodC5qb2luKHIsMiksZSYmZSh0KSwhMCl9Y2F0Y2h7cmV0dXJuITF9fSwiam9pbkl0ZW1Gb3J3YXJkIiksZ0VhPXMoKCk9Pih7c3RhdGU6YSxkaXNwYXRjaDplfSk9PmNaZShhLGUpLCJqb2luVGV4dGJsb2NrQmFja3dhcmQiKSxiRWE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmV9KT0+ZFplKGEsZSksImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7cyh2cmUsImlzTWFjT1MiKTtzKHZFYSwibm9ybWFsaXplS2V5TmFtZSIpO3hFYT1zKGE9Pih7ZWRpdG9yOmUsdmlldzp0LHRyOnIsZGlzcGF0Y2g6aX0pPT57bGV0IG89dkVhKGEpLnNwbGl0KC8tKD8hJCkvKSxuPW8uZmluZChjPT4hWyJBbHQiLCJDdHJsIiwiTWV0YSIsIlNoaWZ0Il0uaW5jbHVkZXMoYykpLGw9bmV3IEtleWJvYXJkRXZlbnQoImtleWRvd24iLHtrZXk6bj09PSJTcGFjZSI/IiAiOm4sYWx0S2V5Om8uaW5jbHVkZXMoIkFsdCIpLGN0cmxLZXk6by5pbmNsdWRlcygiQ3RybCIpLG1ldGFLZXk6by5pbmNsdWRlcygiTWV0YSIpLHNoaWZ0S2V5Om8uaW5jbHVkZXMoIlNoaWZ0IiksYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSksZD1lLmNhcHR1cmVUcmFuc2FjdGlvbigoKT0+e3Quc29tZVByb3AoImhhbmRsZUtleURvd24iLGM9PmModCxsKSl9KTtyZXR1cm4gZD8uc3RlcHMuZm9yRWFjaChjPT57bGV0IHA9Yy5tYXAoci5tYXBwaW5nKTtwJiZpJiZyLm1heWJlU3RlcChwKX0pLCEwfSwia2V5Ym9hcmRTaG9ydGN1dCIpO3MoYTUsImlzTm9kZUFjdGl2ZSIpO3lFYT1zKChhLGU9e30pPT4oe3N0YXRlOnQsZGlzcGF0Y2g6cn0pPT57bGV0IGk9eHMoYSx0LnNjaGVtYSk7cmV0dXJuIGE1KHQsaSxlKT9mWmUodCxyKTohMX0sImxpZnQiKSx3RWE9cygoKT0+KHtzdGF0ZTphLGRpc3BhdGNoOmV9KT0+cnJlKGEsZSksImxpZnRFbXB0eUJsb2NrIiksTUVhPXMoYT0+KHtzdGF0ZTplLGRpc3BhdGNoOnR9KT0+e2xldCByPXhzKGEsZS5zY2hlbWEpO3JldHVybiB2WmUocikoZSx0KX0sImxpZnRMaXN0SXRlbSIpLGtFYT1zKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT5lcmUoYSxlKSwibmV3bGluZUluQ29kZSIpO3MoRW0sImdldFNjaGVtYVR5cGVOYW1lQnlOYW1lIik7cyh4cmUsImRlbGV0ZVByb3BzIik7U0VhPXMoKGEsZSk9Pih7dHI6dCxzdGF0ZTpyLGRpc3BhdGNoOml9KT0+e2xldCBvPW51bGwsbj1udWxsLGw9RW0odHlwZW9mIGE9PSJzdHJpbmciP2E6YS5uYW1lLHIuc2NoZW1hKTtyZXR1cm4gbD8obD09PSJub2RlIiYmKG89eHMoYSxyLnNjaGVtYSkpLGw9PT0ibWFyayImJihuPVEyKGEsci5zY2hlbWEpKSxpJiZ0LnNlbGVjdGlvbi5yYW5nZXMuZm9yRWFjaChkPT57ci5kb2Mubm9kZXNCZXR3ZWVuKGQuJGZyb20ucG9zLGQuJHRvLnBvcywoYyxwKT0+e28mJm89PT1jLnR5cGUmJnQuc2V0Tm9kZU1hcmt1cChwLHZvaWQgMCx4cmUoYy5hdHRycyxlKSksbiYmYy5tYXJrcy5sZW5ndGgmJmMubWFya3MuZm9yRWFjaCh1PT57bj09PXUudHlwZSYmdC5hZGRNYXJrKHAscCtjLm5vZGVTaXplLG4uY3JlYXRlKHhyZSh1LmF0dHJzLGUpKSl9KX0pfSksITApOiExfSwicmVzZXRBdHRyaWJ1dGVzIiksekVhPXMoKCk9Pih7dHI6YSxkaXNwYXRjaDplfSk9PihlJiZhLnNjcm9sbEludG9WaWV3KCksITApLCJzY3JvbGxJbnRvVmlldyIpLENFYT1zKCgpPT4oe3RyOmEsZGlzcGF0Y2g6ZX0pPT57aWYoZSl7bGV0IHQ9bmV3IElpKGEuZG9jKTthLnNldFNlbGVjdGlvbih0KX1yZXR1cm4hMH0sInNlbGVjdEFsbCIpLF9FYT1zKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT5YYWUoYSxlKSwic2VsZWN0Tm9kZUJhY2t3YXJkIiksVEVhPXMoKCk9Pih7c3RhdGU6YSxkaXNwYXRjaDplfSk9PkphZShhLGUpLCJzZWxlY3ROb2RlRm9yd2FyZCIpLExFYT1zKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT5oWmUoYSxlKSwic2VsZWN0UGFyZW50Tm9kZSIpLCRFYT1zKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT5pcmUoYSxlKSwic2VsZWN0VGV4dGJsb2NrRW5kIiksREVhPXMoKCk9Pih7c3RhdGU6YSxkaXNwYXRjaDplfSk9PnNyZShhLGUpLCJzZWxlY3RUZXh0YmxvY2tTdGFydCIpO3MocFcsImNyZWF0ZURvY3VtZW50Iik7QUVhPXMoKGEsZT0hMSx0PXt9LHI9e30pPT4oe2VkaXRvcjppLHRyOm8sZGlzcGF0Y2g6bixjb21tYW5kczpsfSk9Pnt2YXIgZCxjO2xldHtkb2M6cH09bztpZih0LnByZXNlcnZlV2hpdGVzcGFjZSE9PSJmdWxsIil7bGV0IHU9cFcoYSxpLnNjaGVtYSx0LHtlcnJvck9uSW52YWxpZENvbnRlbnQ6KGQ9ci5lcnJvck9uSW52YWxpZENvbnRlbnQpIT09bnVsbCYmZCE9PXZvaWQgMD9kOmkub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2t9KTtyZXR1cm4gbiYmby5yZXBsYWNlV2l0aCgwLHAuY29udGVudC5zaXplLHUpLnNldE1ldGEoInByZXZlbnRVcGRhdGUiLCFlKSwhMH1yZXR1cm4gbiYmby5zZXRNZXRhKCJwcmV2ZW50VXBkYXRlIiwhZSksbC5pbnNlcnRDb250ZW50QXQoe2Zyb206MCx0bzpwLmNvbnRlbnQuc2l6ZX0sYSx7cGFyc2VPcHRpb25zOnQsZXJyb3JPbkludmFsaWRDb250ZW50OihjPXIuZXJyb3JPbkludmFsaWRDb250ZW50KSE9PW51bGwmJmMhPT12b2lkIDA/YzppLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSl9LCJzZXRDb250ZW50Iik7cyh5cmUsImdldE1hcmtBdHRyaWJ1dGVzIik7cyhDcmUsImNvbWJpbmVUcmFuc2FjdGlvblN0ZXBzIik7cyhQWmUsImRlZmF1bHRCbG9ja0F0Iik7cyhzMWEsImZpbmRDaGlsZHJlbiIpO3MoX3JlLCJmaW5kQ2hpbGRyZW5JblJhbmdlIik7cyhFWmUsImZpbmRQYXJlbnROb2RlQ2xvc2VzdFRvUG9zIik7cyhJbSwiZmluZFBhcmVudE5vZGUiKTtzKGZXLCJnZXRTY2hlbWEiKTtzKGkxYSwiZ2VuZXJhdGVIVE1MIik7cyhvMWEsImdlbmVyYXRlSlNPTiIpO3Mod3JlLCJnZXRUZXh0Iik7cyhuMWEsImdlbmVyYXRlVGV4dCIpO3MoSVplLCJnZXROb2RlQXR0cmlidXRlcyIpO3MoYlcsImdldEF0dHJpYnV0ZXMiKTtzKE5aZSwicmVtb3ZlRHVwbGljYXRlcyIpO3MoUEVhLCJzaW1wbGlmeUNoYW5nZWRSYW5nZXMiKTtzKFRyZSwiZ2V0Q2hhbmdlZFJhbmdlcyIpO3MoUlplLCJnZXREZWJ1Z0pTT04iKTtzKFJtLCJnZXRNYXJrc0JldHdlZW4iKTtsMWE9cygoYSxlLHQscj0yMCk9PntsZXQgaT1hLmRvYy5yZXNvbHZlKHQpLG89cixuPW51bGw7Zm9yKDtvPjAmJm49PT1udWxsOyl7bGV0IGw9aS5ub2RlKG8pO2w/LnR5cGUubmFtZT09PWU/bj1sOm8tPTF9cmV0dXJuW24sb119LCJnZXROb2RlQXRQb3NpdGlvbiIpO3MoTm0sImdldFNwbGl0dGVkQXR0cmlidXRlcyIpO3MoaFcsImlzTWFya0FjdGl2ZSIpO3MoT1plLCJpc0FjdGl2ZSIpO2MxYT1zKChhLGUpPT57bGV0eyRmcm9tOnQsJHRvOnIsJGFuY2hvcjppfT1hLnNlbGVjdGlvbjtpZihlKXtsZXQgbz1JbShsPT5sLnR5cGUubmFtZT09PWUpKGEuc2VsZWN0aW9uKTtpZighbylyZXR1cm4hMTtsZXQgbj1hLmRvYy5yZXNvbHZlKG8ucG9zKzEpO3JldHVybiBpLnBvcysxPT09bi5lbmQoKX1yZXR1cm4hKHIucGFyZW50T2Zmc2V0PHIucGFyZW50Lm5vZGVTaXplLTJ8fHQucG9zIT09ci5wb3MpfSwiaXNBdEVuZE9mTm9kZSIpLGQxYT1zKGE9PntsZXR7JGZyb206ZSwkdG86dH09YS5zZWxlY3Rpb247cmV0dXJuIShlLnBhcmVudE9mZnNldD4wfHxlLnBvcyE9PXQucG9zKX0sImlzQXRTdGFydE9mTm9kZSIpO3MoTXJlLCJpc0xpc3QiKTtzKG1XLCJpc05vZGVFbXB0eSIpO3MoTHJlLCJpc05vZGVTZWxlY3Rpb24iKTtzKHUxYSwicG9zVG9ET01SZWN0Iik7cyhZbmEsInJld3JpdGVVbmtub3duQ29udGVudElubmVyIik7cyhwMWEsInJld3JpdGVVbmtub3duQ29udGVudCIpO3MoRUVhLCJjYW5TZXRNYXJrIik7SUVhPXMoKGEsZT17fSk9Pih7dHI6dCxzdGF0ZTpyLGRpc3BhdGNoOml9KT0+e2xldHtzZWxlY3Rpb246b309dCx7ZW1wdHk6bixyYW5nZXM6bH09byxkPVEyKGEsci5zY2hlbWEpO2lmKGkpaWYobil7bGV0IGM9eXJlKHIsZCk7dC5hZGRTdG9yZWRNYXJrKGQuY3JlYXRlKHsuLi5jLC4uLmV9KSl9ZWxzZSBsLmZvckVhY2goYz0+e2xldCBwPWMuJGZyb20ucG9zLHU9Yy4kdG8ucG9zO3IuZG9jLm5vZGVzQmV0d2VlbihwLHUsKG0sdik9PntsZXQgeD1NYXRoLm1heCh2LHApLGI9TWF0aC5taW4odittLm5vZGVTaXplLHUpO20ubWFya3MuZmluZCh5PT55LnR5cGU9PT1kKT9tLm1hcmtzLmZvckVhY2goeT0+e2Q9PT15LnR5cGUmJnQuYWRkTWFyayh4LGIsZC5jcmVhdGUoey4uLnkuYXR0cnMsLi4uZX0pKX0pOnQuYWRkTWFyayh4LGIsZC5jcmVhdGUoZSkpfSl9KTtyZXR1cm4gRUVhKHIsdCxkKX0sInNldE1hcmsiKSxORWE9cygoYSxlKT0+KHt0cjp0fSk9Pih0LnNldE1ldGEoYSxlKSwhMCksInNldE1ldGEiKSxSRWE9cygoYSxlPXt9KT0+KHtzdGF0ZTp0LGRpc3BhdGNoOnIsY2hhaW46aX0pPT57bGV0IG89eHMoYSx0LnNjaGVtYSksbjtyZXR1cm4gdC5zZWxlY3Rpb24uJGFuY2hvci5zYW1lUGFyZW50KHQuc2VsZWN0aW9uLiRoZWFkKSYmKG49dC5zZWxlY3Rpb24uJGFuY2hvci5wYXJlbnQuYXR0cnMpLG8uaXNUZXh0YmxvY2s/aSgpLmNvbW1hbmQoKHtjb21tYW5kczpsfSk9Pm9yZShvLHsuLi5uLC4uLmV9KSh0KT8hMDpsLmNsZWFyTm9kZXMoKSkuY29tbWFuZCgoe3N0YXRlOmx9KT0+b3JlKG8sey4uLm4sLi4uZX0pKGwscikpLnJ1bigpOihjb25zb2xlLndhcm4oJ1t0aXB0YXAgd2Fybl06IEN1cnJlbnRseSAic2V0Tm9kZSgpIiBvbmx5IHN1cHBvcnRzIHRleHQgYmxvY2sgbm9kZXMuJyksITEpfSwic2V0Tm9kZSIpLE9FYT1zKGE9Pih7dHI6ZSxkaXNwYXRjaDp0fSk9PntpZih0KXtsZXR7ZG9jOnJ9PWUsaT1PMShhLDAsci5jb250ZW50LnNpemUpLG89a3QuY3JlYXRlKHIsaSk7ZS5zZXRTZWxlY3Rpb24obyl9cmV0dXJuITB9LCJzZXROb2RlU2VsZWN0aW9uIiksRkVhPXMoYT0+KHt0cjplLGRpc3BhdGNoOnR9KT0+e2lmKHQpe2xldHtkb2M6cn09ZSx7ZnJvbTppLHRvOm99PXR5cGVvZiBhPT0ibnVtYmVyIj97ZnJvbTphLHRvOmF9OmEsbj1OdC5hdFN0YXJ0KHIpLmZyb20sbD1OdC5hdEVuZChyKS50byxkPU8xKGksbixsKSxjPU8xKG8sbixsKSxwPU50LmNyZWF0ZShyLGQsYyk7ZS5zZXRTZWxlY3Rpb24ocCl9cmV0dXJuITB9LCJzZXRUZXh0U2VsZWN0aW9uIiksQkVhPXMoYT0+KHtzdGF0ZTplLGRpc3BhdGNoOnR9KT0+e2xldCByPXhzKGEsZS5zY2hlbWEpO3JldHVybiB4WmUocikoZSx0KX0sInNpbmtMaXN0SXRlbSIpO3MoS25hLCJlbnN1cmVNYXJrcyIpO0hFYT1zKCh7a2VlcE1hcmtzOmE9ITB9PXt9KT0+KHt0cjplLHN0YXRlOnQsZGlzcGF0Y2g6cixlZGl0b3I6aX0pPT57bGV0e3NlbGVjdGlvbjpvLGRvYzpufT1lLHskZnJvbTpsLCR0bzpkfT1vLGM9aS5leHRlbnNpb25NYW5hZ2VyLmF0dHJpYnV0ZXMscD1ObShjLGwubm9kZSgpLnR5cGUubmFtZSxsLm5vZGUoKS5hdHRycyk7aWYobyBpbnN0YW5jZW9mIGt0JiZvLm5vZGUuaXNCbG9jaylyZXR1cm4hbC5wYXJlbnRPZmZzZXR8fCFObyhuLGwucG9zKT8hMToociYmKGEmJktuYSh0LGkuZXh0ZW5zaW9uTWFuYWdlci5zcGxpdHRhYmxlTWFya3MpLGUuc3BsaXQobC5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTtpZighbC5wYXJlbnQuaXNCbG9jaylyZXR1cm4hMTtsZXQgdT1kLnBhcmVudE9mZnNldD09PWQucGFyZW50LmNvbnRlbnQuc2l6ZSxtPWwuZGVwdGg9PT0wP3ZvaWQgMDpQWmUobC5ub2RlKC0xKS5jb250ZW50TWF0Y2hBdChsLmluZGV4QWZ0ZXIoLTEpKSksdj11JiZtP1t7dHlwZTptLGF0dHJzOnB9XTp2b2lkIDAseD1ObyhlLmRvYyxlLm1hcHBpbmcubWFwKGwucG9zKSwxLHYpO2lmKCF2JiYheCYmTm8oZS5kb2MsZS5tYXBwaW5nLm1hcChsLnBvcyksMSxtP1t7dHlwZTptfV06dm9pZCAwKSYmKHg9ITAsdj1tP1t7dHlwZTptLGF0dHJzOnB9XTp2b2lkIDApLHIpe2lmKHgmJihvIGluc3RhbmNlb2YgTnQmJmUuZGVsZXRlU2VsZWN0aW9uKCksZS5zcGxpdChlLm1hcHBpbmcubWFwKGwucG9zKSwxLHYpLG0mJiF1JiYhbC5wYXJlbnRPZmZzZXQmJmwucGFyZW50LnR5cGUhPT1tKSl7bGV0IGI9ZS5tYXBwaW5nLm1hcChsLmJlZm9yZSgpKSxnPWUuZG9jLnJlc29sdmUoYik7bC5ub2RlKC0xKS5jYW5SZXBsYWNlV2l0aChnLmluZGV4KCksZy5pbmRleCgpKzEsbSkmJmUuc2V0Tm9kZU1hcmt1cChlLm1hcHBpbmcubWFwKGwuYmVmb3JlKCkpLG0pfWEmJktuYSh0LGkuZXh0ZW5zaW9uTWFuYWdlci5zcGxpdHRhYmxlTWFya3MpLGUuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4geH0sInNwbGl0QmxvY2siKSxxRWE9cygoYSxlPXt9KT0+KHt0cjp0LHN0YXRlOnIsZGlzcGF0Y2g6aSxlZGl0b3I6b30pPT57dmFyIG47bGV0IGw9eHMoYSxyLnNjaGVtYSkseyRmcm9tOmQsJHRvOmN9PXIuc2VsZWN0aW9uLHA9ci5zZWxlY3Rpb24ubm9kZTtpZihwJiZwLmlzQmxvY2t8fGQuZGVwdGg8Mnx8IWQuc2FtZVBhcmVudChjKSlyZXR1cm4hMTtsZXQgdT1kLm5vZGUoLTEpO2lmKHUudHlwZSE9PWwpcmV0dXJuITE7bGV0IG09by5leHRlbnNpb25NYW5hZ2VyLmF0dHJpYnV0ZXM7aWYoZC5wYXJlbnQuY29udGVudC5zaXplPT09MCYmZC5ub2RlKC0xKS5jaGlsZENvdW50PT09ZC5pbmRleEFmdGVyKC0xKSl7aWYoZC5kZXB0aD09PTJ8fGQubm9kZSgtMykudHlwZSE9PWx8fGQuaW5kZXgoLTIpIT09ZC5ub2RlKC0yKS5jaGlsZENvdW50LTEpcmV0dXJuITE7aWYoaSl7bGV0IHk9amUuZW1wdHksaz1kLmluZGV4KC0xKT8xOmQuaW5kZXgoLTIpPzI6Mztmb3IobGV0IFQ9ZC5kZXB0aC1rO1Q+PWQuZGVwdGgtMztULT0xKXk9amUuZnJvbShkLm5vZGUoVCkuY29weSh5KSk7bGV0IEM9ZC5pbmRleEFmdGVyKC0xKTxkLm5vZGUoLTIpLmNoaWxkQ291bnQ/MTpkLmluZGV4QWZ0ZXIoLTIpPGQubm9kZSgtMykuY2hpbGRDb3VudD8yOjMsTj17Li4uTm0obSxkLm5vZGUoKS50eXBlLm5hbWUsZC5ub2RlKCkuYXR0cnMpLC4uLmV9LF89KChuPWwuY29udGVudE1hdGNoLmRlZmF1bHRUeXBlKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uY3JlYXRlQW5kRmlsbChOKSl8fHZvaWQgMDt5PXkuYXBwZW5kKGplLmZyb20obC5jcmVhdGVBbmRGaWxsKG51bGwsXyl8fHZvaWQgMCkpO2xldCB6PWQuYmVmb3JlKGQuZGVwdGgtKGstMSkpO3QucmVwbGFjZSh6LGQuYWZ0ZXIoLUMpLG5ldyBzdCh5LDQtaywwKSk7bGV0IE89LTE7dC5kb2Mubm9kZXNCZXR3ZWVuKHosdC5kb2MuY29udGVudC5zaXplLChULFApPT57aWYoTz4tMSlyZXR1cm4hMTtULmlzVGV4dGJsb2NrJiZULmNvbnRlbnQuc2l6ZT09PTAmJihPPVArMSl9KSxPPi0xJiZ0LnNldFNlbGVjdGlvbihOdC5uZWFyKHQuZG9jLnJlc29sdmUoTykpKSx0LnNjcm9sbEludG9WaWV3KCl9cmV0dXJuITB9bGV0IHY9Yy5wb3M9PT1kLmVuZCgpP3UuY29udGVudE1hdGNoQXQoMCkuZGVmYXVsdFR5cGU6bnVsbCx4PXsuLi5ObShtLHUudHlwZS5uYW1lLHUuYXR0cnMpLC4uLmV9LGI9ey4uLk5tKG0sZC5ub2RlKCkudHlwZS5uYW1lLGQubm9kZSgpLmF0dHJzKSwuLi5lfTt0LmRlbGV0ZShkLnBvcyxjLnBvcyk7bGV0IGc9dj9be3R5cGU6bCxhdHRyczp4fSx7dHlwZTp2LGF0dHJzOmJ9XTpbe3R5cGU6bCxhdHRyczp4fV07aWYoIU5vKHQuZG9jLGQucG9zLDIpKXJldHVybiExO2lmKGkpe2xldHtzZWxlY3Rpb246eSxzdG9yZWRNYXJrczprfT1yLHtzcGxpdHRhYmxlTWFya3M6Q309by5leHRlbnNpb25NYW5hZ2VyLE49a3x8eS4kdG8ucGFyZW50T2Zmc2V0JiZ5LiRmcm9tLm1hcmtzKCk7aWYodC5zcGxpdChkLnBvcywyLGcpLnNjcm9sbEludG9WaWV3KCksIU58fCFpKXJldHVybiEwO2xldCBfPU4uZmlsdGVyKHo9PkMuaW5jbHVkZXMoei50eXBlLm5hbWUpKTt0LmVuc3VyZU1hcmtzKF8pfXJldHVybiEwfSwic3BsaXRMaXN0SXRlbSIpLE1aZT1zKChhLGUpPT57bGV0IHQ9SW0obj0+bi50eXBlPT09ZSkoYS5zZWxlY3Rpb24pO2lmKCF0KXJldHVybiEwO2xldCByPWEuZG9jLnJlc29sdmUoTWF0aC5tYXgoMCx0LnBvcy0xKSkuYmVmb3JlKHQuZGVwdGgpO2lmKHI9PT12b2lkIDApcmV0dXJuITA7bGV0IGk9YS5kb2Mubm9kZUF0KHIpO3JldHVybiB0Lm5vZGUudHlwZT09PWk/LnR5cGUmJnNuKGEuZG9jLHQucG9zKSYmYS5qb2luKHQucG9zKSwhMH0sImpvaW5MaXN0QmFja3dhcmRzIiksa1plPXMoKGEsZSk9PntsZXQgdD1JbShuPT5uLnR5cGU9PT1lKShhLnNlbGVjdGlvbik7aWYoIXQpcmV0dXJuITA7bGV0IHI9YS5kb2MucmVzb2x2ZSh0LnN0YXJ0KS5hZnRlcih0LmRlcHRoKTtpZihyPT09dm9pZCAwKXJldHVybiEwO2xldCBpPWEuZG9jLm5vZGVBdChyKTtyZXR1cm4gdC5ub2RlLnR5cGU9PT1pPy50eXBlJiZzbihhLmRvYyxyKSYmYS5qb2luKHIpLCEwfSwiam9pbkxpc3RGb3J3YXJkcyIpLFZFYT1zKChhLGUsdCxyPXt9KT0+KHtlZGl0b3I6aSx0cjpvLHN0YXRlOm4sZGlzcGF0Y2g6bCxjaGFpbjpkLGNvbW1hbmRzOmMsY2FuOnB9KT0+e2xldHtleHRlbnNpb25zOnUsc3BsaXR0YWJsZU1hcmtzOm19PWkuZXh0ZW5zaW9uTWFuYWdlcix2PXhzKGEsbi5zY2hlbWEpLHg9eHMoZSxuLnNjaGVtYSkse3NlbGVjdGlvbjpiLHN0b3JlZE1hcmtzOmd9PW4seyRmcm9tOnksJHRvOmt9PWIsQz15LmJsb2NrUmFuZ2UoayksTj1nfHxiLiR0by5wYXJlbnRPZmZzZXQmJmIuJGZyb20ubWFya3MoKTtpZighQylyZXR1cm4hMTtsZXQgXz1JbSh6PT5NcmUoei50eXBlLm5hbWUsdSkpKGIpO2lmKEMuZGVwdGg+PTEmJl8mJkMuZGVwdGgtXy5kZXB0aDw9MSl7aWYoXy5ub2RlLnR5cGU9PT12KXJldHVybiBjLmxpZnRMaXN0SXRlbSh4KTtpZihNcmUoXy5ub2RlLnR5cGUubmFtZSx1KSYmdi52YWxpZENvbnRlbnQoXy5ub2RlLmNvbnRlbnQpJiZsKXJldHVybiBkKCkuY29tbWFuZCgoKT0+KG8uc2V0Tm9kZU1hcmt1cChfLnBvcyx2KSwhMCkpLmNvbW1hbmQoKCk9Pk1aZShvLHYpKS5jb21tYW5kKCgpPT5rWmUobyx2KSkucnVuKCl9cmV0dXJuIXR8fCFOfHwhbD9kKCkuY29tbWFuZCgoKT0+cCgpLndyYXBJbkxpc3QodixyKT8hMDpjLmNsZWFyTm9kZXMoKSkud3JhcEluTGlzdCh2LHIpLmNvbW1hbmQoKCk9Pk1aZShvLHYpKS5jb21tYW5kKCgpPT5rWmUobyx2KSkucnVuKCk6ZCgpLmNvbW1hbmQoKCk9PntsZXQgej1wKCkud3JhcEluTGlzdCh2LHIpLE89Ti5maWx0ZXIoVD0+bS5pbmNsdWRlcyhULnR5cGUubmFtZSkpO3JldHVybiBvLmVuc3VyZU1hcmtzKE8pLHo/ITA6Yy5jbGVhck5vZGVzKCl9KS53cmFwSW5MaXN0KHYscikuY29tbWFuZCgoKT0+TVplKG8sdikpLmNvbW1hbmQoKCk9PmtaZShvLHYpKS5ydW4oKX0sInRvZ2dsZUxpc3QiKSxqRWE9cygoYSxlPXt9LHQ9e30pPT4oe3N0YXRlOnIsY29tbWFuZHM6aX0pPT57bGV0e2V4dGVuZEVtcHR5TWFya1JhbmdlOm89ITF9PXQsbj1RMihhLHIuc2NoZW1hKTtyZXR1cm4gaFcocixuLGUpP2kudW5zZXRNYXJrKG4se2V4dGVuZEVtcHR5TWFya1JhbmdlOm99KTppLnNldE1hcmsobixlKX0sInRvZ2dsZU1hcmsiKSxVRWE9cygoYSxlLHQ9e30pPT4oe3N0YXRlOnIsY29tbWFuZHM6aX0pPT57bGV0IG89eHMoYSxyLnNjaGVtYSksbj14cyhlLHIuc2NoZW1hKSxsPWE1KHIsbyx0KSxkO3JldHVybiByLnNlbGVjdGlvbi4kYW5jaG9yLnNhbWVQYXJlbnQoci5zZWxlY3Rpb24uJGhlYWQpJiYoZD1yLnNlbGVjdGlvbi4kYW5jaG9yLnBhcmVudC5hdHRycyksbD9pLnNldE5vZGUobixkKTppLnNldE5vZGUobyx7Li4uZCwuLi50fSl9LCJ0b2dnbGVOb2RlIiksV0VhPXMoKGEsZT17fSk9Pih7c3RhdGU6dCxjb21tYW5kczpyfSk9PntsZXQgaT14cyhhLHQuc2NoZW1hKTtyZXR1cm4gYTUodCxpLGUpP3IubGlmdChpKTpyLndyYXBJbihpLGUpfSwidG9nZ2xlV3JhcCIpLEdFYT1zKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT57bGV0IHQ9YS5wbHVnaW5zO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cis9MSl7bGV0IGk9dFtyXSxvO2lmKGkuc3BlYy5pc0lucHV0UnVsZXMmJihvPWkuZ2V0U3RhdGUoYSkpKXtpZihlKXtsZXQgbj1hLnRyLGw9by50cmFuc2Zvcm07Zm9yKGxldCBkPWwuc3RlcHMubGVuZ3RoLTE7ZD49MDtkLT0xKW4uc3RlcChsLnN0ZXBzW2RdLmludmVydChsLmRvY3NbZF0pKTtpZihvLnRleHQpe2xldCBkPW4uZG9jLnJlc29sdmUoby5mcm9tKS5tYXJrcygpO24ucmVwbGFjZVdpdGgoby5mcm9tLG8udG8sYS5zY2hlbWEudGV4dChvLnRleHQsZCkpfWVsc2Ugbi5kZWxldGUoby5mcm9tLG8udG8pfXJldHVybiEwfX1yZXR1cm4hMX0sInVuZG9JbnB1dFJ1bGUiKSxZRWE9cygoKT0+KHt0cjphLGRpc3BhdGNoOmV9KT0+e2xldHtzZWxlY3Rpb246dH09YSx7ZW1wdHk6cixyYW5nZXM6aX09dDtyZXR1cm4gcnx8ZSYmaS5mb3JFYWNoKG89PnthLnJlbW92ZU1hcmsoby4kZnJvbS5wb3Msby4kdG8ucG9zKX0pLCEwfSwidW5zZXRBbGxNYXJrcyIpLEtFYT1zKChhLGU9e30pPT4oe3RyOnQsc3RhdGU6cixkaXNwYXRjaDppfSk9Pnt2YXIgbztsZXR7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6bj0hMX09ZSx7c2VsZWN0aW9uOmx9PXQsZD1RMihhLHIuc2NoZW1hKSx7JGZyb206YyxlbXB0eTpwLHJhbmdlczp1fT1sO2lmKCFpKXJldHVybiEwO2lmKHAmJm4pe2xldHtmcm9tOm0sdG86dn09bCx4PShvPWMubWFya3MoKS5maW5kKGc9PmcudHlwZT09PWQpKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uYXR0cnMsYj11VyhjLGQseCk7YiYmKG09Yi5mcm9tLHY9Yi50byksdC5yZW1vdmVNYXJrKG0sdixkKX1lbHNlIHUuZm9yRWFjaChtPT57dC5yZW1vdmVNYXJrKG0uJGZyb20ucG9zLG0uJHRvLnBvcyxkKX0pO3JldHVybiB0LnJlbW92ZVN0b3JlZE1hcmsoZCksITB9LCJ1bnNldE1hcmsiKSxaRWE9cygoYSxlPXt9KT0+KHt0cjp0LHN0YXRlOnIsZGlzcGF0Y2g6aX0pPT57bGV0IG89bnVsbCxuPW51bGwsbD1FbSh0eXBlb2YgYT09InN0cmluZyI/YTphLm5hbWUsci5zY2hlbWEpO3JldHVybiBsPyhsPT09Im5vZGUiJiYobz14cyhhLHIuc2NoZW1hKSksbD09PSJtYXJrIiYmKG49UTIoYSxyLnNjaGVtYSkpLGkmJnQuc2VsZWN0aW9uLnJhbmdlcy5mb3JFYWNoKGQ9PntsZXQgYz1kLiRmcm9tLnBvcyxwPWQuJHRvLnBvcyx1LG0sdix4O3Quc2VsZWN0aW9uLmVtcHR5P3IuZG9jLm5vZGVzQmV0d2VlbihjLHAsKGIsZyk9PntvJiZvPT09Yi50eXBlJiYodj1NYXRoLm1heChnLGMpLHg9TWF0aC5taW4oZytiLm5vZGVTaXplLHApLHU9ZyxtPWIpfSk6ci5kb2Mubm9kZXNCZXR3ZWVuKGMscCwoYixnKT0+e2c8YyYmbyYmbz09PWIudHlwZSYmKHY9TWF0aC5tYXgoZyxjKSx4PU1hdGgubWluKGcrYi5ub2RlU2l6ZSxwKSx1PWcsbT1iKSxnPj1jJiZnPD1wJiYobyYmbz09PWIudHlwZSYmdC5zZXROb2RlTWFya3VwKGcsdm9pZCAwLHsuLi5iLmF0dHJzLC4uLmV9KSxuJiZiLm1hcmtzLmxlbmd0aCYmYi5tYXJrcy5mb3JFYWNoKHk9PntpZihuPT09eS50eXBlKXtsZXQgaz1NYXRoLm1heChnLGMpLEM9TWF0aC5taW4oZytiLm5vZGVTaXplLHApO3QuYWRkTWFyayhrLEMsbi5jcmVhdGUoey4uLnkuYXR0cnMsLi4uZX0pKX19KSl9KSxtJiYodSE9PXZvaWQgMCYmdC5zZXROb2RlTWFya3VwKHUsdm9pZCAwLHsuLi5tLmF0dHJzLC4uLmV9KSxuJiZtLm1hcmtzLmxlbmd0aCYmbS5tYXJrcy5mb3JFYWNoKGI9PntuPT09Yi50eXBlJiZ0LmFkZE1hcmsodix4LG4uY3JlYXRlKHsuLi5iLmF0dHJzLC4uLmV9KSl9KSl9KSwhMCk6ITF9LCJ1cGRhdGVBdHRyaWJ1dGVzIiksWEVhPXMoKGEsZT17fSk9Pih7c3RhdGU6dCxkaXNwYXRjaDpyfSk9PntsZXQgaT14cyhhLHQuc2NoZW1hKTtyZXR1cm4gbVplKGksZSkodCxyKX0sIndyYXBJbiIpLFFFYT1zKChhLGU9e30pPT4oe3N0YXRlOnQsZGlzcGF0Y2g6cn0pPT57bGV0IGk9eHMoYSx0LnNjaGVtYSk7cmV0dXJuIGJaZShpLGUpKHQscil9LCJ3cmFwSW5MaXN0IiksSkVhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGJsdXI6VVBhLGNsZWFyQ29udGVudDpXUGEsY2xlYXJOb2RlczpHUGEsY29tbWFuZDpZUGEsY3JlYXRlUGFyYWdyYXBoTmVhcjpLUGEsY3V0OlpQYSxkZWxldGVDdXJyZW50Tm9kZTpYUGEsZGVsZXRlTm9kZTpRUGEsZGVsZXRlUmFuZ2U6SlBhLGRlbGV0ZVNlbGVjdGlvbjplRWEsZW50ZXI6dEVhLGV4aXRDb2RlOmFFYSxleHRlbmRNYXJrUmFuZ2U6ckVhLGZpcnN0OnNFYSxmb2N1czppRWEsZm9yRWFjaDpvRWEsaW5zZXJ0Q29udGVudDpuRWEsaW5zZXJ0Q29udGVudEF0OmNFYSxqb2luQmFja3dhcmQ6cEVhLGpvaW5Eb3duOnVFYSxqb2luRm9yd2FyZDpmRWEsam9pbkl0ZW1CYWNrd2FyZDpoRWEsam9pbkl0ZW1Gb3J3YXJkOm1FYSxqb2luVGV4dGJsb2NrQmFja3dhcmQ6Z0VhLGpvaW5UZXh0YmxvY2tGb3J3YXJkOmJFYSxqb2luVXA6ZEVhLGtleWJvYXJkU2hvcnRjdXQ6eEVhLGxpZnQ6eUVhLGxpZnRFbXB0eUJsb2NrOndFYSxsaWZ0TGlzdEl0ZW06TUVhLG5ld2xpbmVJbkNvZGU6a0VhLHJlc2V0QXR0cmlidXRlczpTRWEsc2Nyb2xsSW50b1ZpZXc6ekVhLHNlbGVjdEFsbDpDRWEsc2VsZWN0Tm9kZUJhY2t3YXJkOl9FYSxzZWxlY3ROb2RlRm9yd2FyZDpURWEsc2VsZWN0UGFyZW50Tm9kZTpMRWEsc2VsZWN0VGV4dGJsb2NrRW5kOiRFYSxzZWxlY3RUZXh0YmxvY2tTdGFydDpERWEsc2V0Q29udGVudDpBRWEsc2V0TWFyazpJRWEsc2V0TWV0YTpORWEsc2V0Tm9kZTpSRWEsc2V0Tm9kZVNlbGVjdGlvbjpPRWEsc2V0VGV4dFNlbGVjdGlvbjpGRWEsc2lua0xpc3RJdGVtOkJFYSxzcGxpdEJsb2NrOkhFYSxzcGxpdExpc3RJdGVtOnFFYSx0b2dnbGVMaXN0OlZFYSx0b2dnbGVNYXJrOmpFYSx0b2dnbGVOb2RlOlVFYSx0b2dnbGVXcmFwOldFYSx1bmRvSW5wdXRSdWxlOkdFYSx1bnNldEFsbE1hcmtzOllFYSx1bnNldE1hcms6S0VhLHVwZGF0ZUF0dHJpYnV0ZXM6WkVhLHdyYXBJbjpYRWEsd3JhcEluTGlzdDpRRWF9KSxabmE9d3IuY3JlYXRlKHtuYW1lOiJjb21tYW5kcyIsYWRkQ29tbWFuZHMoKXtyZXR1cm57Li4uSkVhfX19KSxYbmE9d3IuY3JlYXRlKHtuYW1lOiJkcm9wIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IGFyKHtrZXk6bmV3IGJzKCJ0aXB0YXBEcm9wIikscHJvcHM6e2hhbmRsZURyb3A6cygoYSxlLHQscik9Pnt0aGlzLmVkaXRvci5lbWl0KCJkcm9wIix7ZWRpdG9yOnRoaXMuZWRpdG9yLGV2ZW50OmUsc2xpY2U6dCxtb3ZlZDpyfSl9LCJoYW5kbGVEcm9wIil9fSldfX0pLFFuYT13ci5jcmVhdGUoe25hbWU6ImVkaXRhYmxlIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IGFyKHtrZXk6bmV3IGJzKCJlZGl0YWJsZSIpLHByb3BzOntlZGl0YWJsZTpzKCgpPT50aGlzLmVkaXRvci5vcHRpb25zLmVkaXRhYmxlLCJlZGl0YWJsZSIpfX0pXX19KSxKbmE9bmV3IGJzKCJmb2N1c0V2ZW50cyIpLGUxYT13ci5jcmVhdGUoe25hbWU6ImZvY3VzRXZlbnRzIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtsZXR7ZWRpdG9yOmF9PXRoaXM7cmV0dXJuW25ldyBhcih7a2V5OkpuYSxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntmb2N1czpzKChlLHQpPT57YS5pc0ZvY3VzZWQ9ITA7bGV0IHI9YS5zdGF0ZS50ci5zZXRNZXRhKCJmb2N1cyIse2V2ZW50OnR9KS5zZXRNZXRhKCJhZGRUb0hpc3RvcnkiLCExKTtyZXR1cm4gZS5kaXNwYXRjaChyKSwhMX0sImZvY3VzIiksYmx1cjpzKChlLHQpPT57YS5pc0ZvY3VzZWQ9ITE7bGV0IHI9YS5zdGF0ZS50ci5zZXRNZXRhKCJibHVyIix7ZXZlbnQ6dH0pLnNldE1ldGEoImFkZFRvSGlzdG9yeSIsITEpO3JldHVybiBlLmRpc3BhdGNoKHIpLCExfSwiYmx1ciIpfX19KV19fSksdDFhPXdyLmNyZWF0ZSh7bmFtZToia2V5bWFwIixhZGRLZXlib2FyZFNob3J0Y3V0cygpe2xldCBhPXMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmZpcnN0KCh7Y29tbWFuZHM6bn0pPT5bKCk9Pm4udW5kb0lucHV0UnVsZSgpLCgpPT5uLmNvbW1hbmQoKHt0cjpsfSk9PntsZXR7c2VsZWN0aW9uOmQsZG9jOmN9PWwse2VtcHR5OnAsJGFuY2hvcjp1fT1kLHtwb3M6bSxwYXJlbnQ6dn09dSx4PXUucGFyZW50LmlzVGV4dGJsb2NrJiZtPjA/bC5kb2MucmVzb2x2ZShtLTEpOnUsYj14LnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nLGc9dS5wb3MtdS5wYXJlbnRPZmZzZXQseT1iJiZ4LnBhcmVudC5jaGlsZENvdW50PT09MT9nPT09dS5wb3M6RXQuYXRTdGFydChjKS5mcm9tPT09bTtyZXR1cm4hcHx8IXYudHlwZS5pc1RleHRibG9ja3x8di50ZXh0Q29udGVudC5sZW5ndGh8fCF5fHx5JiZ1LnBhcmVudC50eXBlLm5hbWU9PT0icGFyYWdyYXBoIj8hMTpuLmNsZWFyTm9kZXMoKX0pLCgpPT5uLmRlbGV0ZVNlbGVjdGlvbigpLCgpPT5uLmpvaW5CYWNrd2FyZCgpLCgpPT5uLnNlbGVjdE5vZGVCYWNrd2FyZCgpXSksImhhbmRsZUJhY2tzcGFjZSIpLGU9cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuZmlyc3QoKHtjb21tYW5kczpufSk9PlsoKT0+bi5kZWxldGVTZWxlY3Rpb24oKSwoKT0+bi5kZWxldGVDdXJyZW50Tm9kZSgpLCgpPT5uLmpvaW5Gb3J3YXJkKCksKCk9Pm4uc2VsZWN0Tm9kZUZvcndhcmQoKV0pLCJoYW5kbGVEZWxldGUiKSxyPXtFbnRlcjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5maXJzdCgoe2NvbW1hbmRzOm59KT0+WygpPT5uLm5ld2xpbmVJbkNvZGUoKSwoKT0+bi5jcmVhdGVQYXJhZ3JhcGhOZWFyKCksKCk9Pm4ubGlmdEVtcHR5QmxvY2soKSwoKT0+bi5zcGxpdEJsb2NrKCldKSwiaGFuZGxlRW50ZXIiKSwiTW9kLUVudGVyIjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5leGl0Q29kZSgpLCJNb2QtRW50ZXIiKSxCYWNrc3BhY2U6YSwiTW9kLUJhY2tzcGFjZSI6YSwiU2hpZnQtQmFja3NwYWNlIjphLERlbGV0ZTplLCJNb2QtRGVsZXRlIjplLCJNb2QtYSI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2VsZWN0QWxsKCksIk1vZC1hIil9LGk9ey4uLnJ9LG89ey4uLnIsIkN0cmwtaCI6YSwiQWx0LUJhY2tzcGFjZSI6YSwiQ3RybC1kIjplLCJDdHJsLUFsdC1CYWNrc3BhY2UiOmUsIkFsdC1EZWxldGUiOmUsIkFsdC1kIjplLCJDdHJsLWEiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdFRleHRibG9ja1N0YXJ0KCksIkN0cmwtYSIpLCJDdHJsLWUiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdFRleHRibG9ja0VuZCgpLCJDdHJsLWUiKX07cmV0dXJuIEpmKCl8fHZyZSgpP286aX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW25ldyBhcih7a2V5Om5ldyBicygiY2xlYXJEb2N1bWVudCIpLGFwcGVuZFRyYW5zYWN0aW9uOnMoKGEsZSx0KT0+e2lmKGEuc29tZShiPT5iLmdldE1ldGEoImNvbXBvc2l0aW9uIikpKXJldHVybjtsZXQgcj1hLnNvbWUoYj0+Yi5kb2NDaGFuZ2VkKSYmIWUuZG9jLmVxKHQuZG9jKSxpPWEuc29tZShiPT5iLmdldE1ldGEoInByZXZlbnRDbGVhckRvY3VtZW50IikpO2lmKCFyfHxpKXJldHVybjtsZXR7ZW1wdHk6byxmcm9tOm4sdG86bH09ZS5zZWxlY3Rpb24sZD1FdC5hdFN0YXJ0KGUuZG9jKS5mcm9tLGM9RXQuYXRFbmQoZS5kb2MpLnRvO2lmKG98fCEobj09PWQmJmw9PT1jKXx8IW1XKHQuZG9jKSlyZXR1cm47bGV0IG09dC50cix2PVRtKHtzdGF0ZTp0LHRyYW5zYWN0aW9uOm19KSx7Y29tbWFuZHM6eH09bmV3IHc0KHtlZGl0b3I6dGhpcy5lZGl0b3Isc3RhdGU6dn0pO2lmKHguY2xlYXJOb2RlcygpLCEhbS5zdGVwcy5sZW5ndGgpcmV0dXJuIG19LCJhcHBlbmRUcmFuc2FjdGlvbiIpfSldfX0pLGExYT13ci5jcmVhdGUoe25hbWU6InBhc3RlIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IGFyKHtrZXk6bmV3IGJzKCJ0aXB0YXBQYXN0ZSIpLHByb3BzOntoYW5kbGVQYXN0ZTpzKChhLGUsdCk9Pnt0aGlzLmVkaXRvci5lbWl0KCJwYXN0ZSIse2VkaXRvcjp0aGlzLmVkaXRvcixldmVudDplLHNsaWNlOnR9KX0sImhhbmRsZVBhc3RlIil9fSldfX0pLHIxYT13ci5jcmVhdGUoe25hbWU6InRhYmluZGV4IixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IGFyKHtrZXk6bmV3IGJzKCJ0YWJpbmRleCIpLHByb3BzOnthdHRyaWJ1dGVzOnMoKCk9PnRoaXMuZWRpdG9yLmlzRWRpdGFibGU/e3RhYmluZGV4OiIwIn06e30sImF0dHJpYnV0ZXMiKX19KV19fSksZjFhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLENsaXBib2FyZFRleHRTZXJpYWxpemVyOmpuYSxDb21tYW5kczpabmEsRHJvcDpYbmEsRWRpdGFibGU6UW5hLEZvY3VzRXZlbnRzOmUxYSxLZXltYXA6dDFhLFBhc3RlOmExYSxUYWJpbmRleDpyMWEsZm9jdXNFdmVudHNQbHVnaW5LZXk6Sm5hfSksZ1c9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJOb2RlUG9zIil9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5ub2RlLnR5cGUubmFtZX1jb25zdHJ1Y3RvcihlLHQscj0hMSxpPW51bGwpe3RoaXMuY3VycmVudE5vZGU9bnVsbCx0aGlzLmFjdHVhbERlcHRoPW51bGwsdGhpcy5pc0Jsb2NrPXIsdGhpcy5yZXNvbHZlZFBvcz1lLHRoaXMuZWRpdG9yPXQsdGhpcy5jdXJyZW50Tm9kZT1pfWdldCBub2RlKCl7cmV0dXJuIHRoaXMuY3VycmVudE5vZGV8fHRoaXMucmVzb2x2ZWRQb3Mubm9kZSgpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuZWRpdG9yLnZpZXcuZG9tQXRQb3ModGhpcy5wb3MpLm5vZGV9Z2V0IGRlcHRoKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5hY3R1YWxEZXB0aCkhPT1udWxsJiZlIT09dm9pZCAwP2U6dGhpcy5yZXNvbHZlZFBvcy5kZXB0aH1nZXQgcG9zKCl7cmV0dXJuIHRoaXMucmVzb2x2ZWRQb3MucG9zfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMubm9kZS5jb250ZW50fXNldCBjb250ZW50KGUpe2xldCB0PXRoaXMuZnJvbSxyPXRoaXMudG87aWYodGhpcy5pc0Jsb2NrKXtpZih0aGlzLmNvbnRlbnQuc2l6ZT09PTApe2NvbnNvbGUuZXJyb3IoYFlvdSBjYW5cdTIwMTl0IHNldCBjb250ZW50IG9uIGEgYmxvY2sgbm9kZS4gVHJpZWQgdG8gc2V0IGNvbnRlbnQgb24gJHt0aGlzLm5hbWV9IGF0ICR7dGhpcy5wb3N9YCk7cmV0dXJufXQ9dGhpcy5mcm9tKzEscj10aGlzLnRvLTF9dGhpcy5lZGl0b3IuY29tbWFuZHMuaW5zZXJ0Q29udGVudEF0KHtmcm9tOnQsdG86cn0sZSl9Z2V0IGF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5ub2RlLmF0dHJzfWdldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLm5vZGUudGV4dENvbnRlbnR9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5ub2RlLm5vZGVTaXplfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuaXNCbG9jaz90aGlzLnBvczp0aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgpfWdldCByYW5nZSgpe3JldHVybntmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1nZXQgdG8oKXtyZXR1cm4gdGhpcy5pc0Jsb2NrP3RoaXMucG9zK3RoaXMuc2l6ZTp0aGlzLnJlc29sdmVkUG9zLmVuZCh0aGlzLnJlc29sdmVkUG9zLmRlcHRoKSsodGhpcy5ub2RlLmlzVGV4dD8wOjEpfWdldCBwYXJlbnQoKXtpZih0aGlzLmRlcHRoPT09MClyZXR1cm4gbnVsbDtsZXQgZT10aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgtMSksdD10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgYSh0LHRoaXMuZWRpdG9yKX1nZXQgYmVmb3JlKCl7bGV0IGU9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZSh0aGlzLmZyb20tKHRoaXMuaXNCbG9jaz8xOjIpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy5mcm9tLTMpKSxuZXcgYShlLHRoaXMuZWRpdG9yKX1nZXQgYWZ0ZXIoKXtsZXQgZT10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKHRoaXMudG8rKHRoaXMuaXNCbG9jaz8yOjEpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy50byszKSksbmV3IGEoZSx0aGlzLmVkaXRvcil9Z2V0IGNoaWxkcmVuKCl7bGV0IGU9W107cmV0dXJuIHRoaXMubm9kZS5jb250ZW50LmZvckVhY2goKHQscik9PntsZXQgaT10LmlzQmxvY2smJiF0LmlzVGV4dGJsb2NrLG89dC5pc0F0b20mJiF0LmlzVGV4dCxuPXRoaXMucG9zK3IrKG8/MDoxKTtpZihuPDB8fG4+dGhpcy5yZXNvbHZlZFBvcy5kb2Mubm9kZVNpemUtMilyZXR1cm47bGV0IGw9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZShuKTtpZighaSYmbC5kZXB0aDw9dGhpcy5kZXB0aClyZXR1cm47bGV0IGQ9bmV3IGEobCx0aGlzLmVkaXRvcixpLGk/dDpudWxsKTtpJiYoZC5hY3R1YWxEZXB0aD10aGlzLmRlcHRoKzEpLGUucHVzaChuZXcgYShsLHRoaXMuZWRpdG9yLGksaT90Om51bGwpKX0pLGV9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlblswXXx8bnVsbH1nZXQgbGFzdENoaWxkKCl7bGV0IGU9dGhpcy5jaGlsZHJlbjtyZXR1cm4gZVtlLmxlbmd0aC0xXXx8bnVsbH1jbG9zZXN0KGUsdD17fSl7bGV0IHI9bnVsbCxpPXRoaXMucGFyZW50O2Zvcig7aSYmIXI7KXtpZihpLm5vZGUudHlwZS5uYW1lPT09ZSlpZihPYmplY3Qua2V5cyh0KS5sZW5ndGg+MCl7bGV0IG89aS5ub2RlLmF0dHJzLG49T2JqZWN0LmtleXModCk7Zm9yKGxldCBsPTA7bDxuLmxlbmd0aDtsKz0xKXtsZXQgZD1uW2xdO2lmKG9bZF0hPT10W2RdKWJyZWFrfX1lbHNlIHI9aTtpPWkucGFyZW50fXJldHVybiByfXF1ZXJ5U2VsZWN0b3IoZSx0PXt9KXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUsdCwhMClbMF18fG51bGx9cXVlcnlTZWxlY3RvckFsbChlLHQ9e30scj0hMSl7bGV0IGk9W107aWYoIXRoaXMuY2hpbGRyZW58fHRoaXMuY2hpbGRyZW4ubGVuZ3RoPT09MClyZXR1cm4gaTtsZXQgbz1PYmplY3Qua2V5cyh0KTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5mb3JFYWNoKG49PntyJiZpLmxlbmd0aD4wfHwobi5ub2RlLnR5cGUubmFtZT09PWUmJm8uZXZlcnkoZD0+dFtkXT09PW4ubm9kZS5hdHRyc1tkXSkmJmkucHVzaChuKSwhKHImJmkubGVuZ3RoPjApJiYoaT1pLmNvbmNhdChuLnF1ZXJ5U2VsZWN0b3JBbGwoZSx0LHIpKSkpfSksaX1zZXRBdHRyaWJ1dGUoZSl7bGV0e3RyOnR9PXRoaXMuZWRpdG9yLnN0YXRlO3Quc2V0Tm9kZU1hcmt1cCh0aGlzLmZyb20sdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLHRoaXMuZWRpdG9yLnZpZXcuZGlzcGF0Y2godCl9fSxlSWE9YC5Qcm9zZU1pcnJvciB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouUHJvc2VNaXJyb3IgewogIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vbmU7CiAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiAwOyAvKiB0aGUgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHdvcmsgaW4gRWRnZSAqLwp9CgouUHJvc2VNaXJyb3IgW2NvbnRlbnRlZGl0YWJsZT0iZmFsc2UiXSB7CiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfQoKLlByb3NlTWlycm9yIFtjb250ZW50ZWRpdGFibGU9ImZhbHNlIl0gW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdIHsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KCi5Qcm9zZU1pcnJvciBwcmUgewogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKfQoKaW1nLlByb3NlTWlycm9yLXNlcGFyYXRvciB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDAgIWltcG9ydGFudDsKICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKfQoKLlByb3NlTWlycm9yLWdhcGN1cnNvciB7CiAgZGlzcGxheTogbm9uZTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbWFyZ2luOiAwOwp9CgouUHJvc2VNaXJyb3ItZ2FwY3Vyc29yOmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiBibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAtMnB4OwogIHdpZHRoOiAyMHB4OwogIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsKICBhbmltYXRpb246IFByb3NlTWlycm9yLWN1cnNvci1ibGluayAxLjFzIHN0ZXBzKDIsIHN0YXJ0KSBpbmZpbml0ZTsKfQoKQGtleWZyYW1lcyBQcm9zZU1pcnJvci1jdXJzb3ItYmxpbmsgewogIHRvIHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICB9Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6OnNlbGVjdGlvbiB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6Oi1tb3otc2VsZWN0aW9uIHsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoKLlByb3NlTWlycm9yLWhpZGVzZWxlY3Rpb24gKiB7CiAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50Owp9CgouUHJvc2VNaXJyb3ItZm9jdXNlZCAuUHJvc2VNaXJyb3ItZ2FwY3Vyc29yIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLnRpcHB5LWJveFtkYXRhLWFuaW1hdGlvbj1mYWRlXVtkYXRhLXN0YXRlPWhpZGRlbl0gewogIG9wYWNpdHk6IDAKfWA7cyhGWmUsImNyZWF0ZVN0eWxlVGFnIik7a3JlPWNsYXNzIGV4dGVuZHMgeVple3N0YXRpY3tzKHRoaXMsIkVkaXRvciIpfWNvbnN0cnVjdG9yKGU9e30pe3N1cGVyKCksdGhpcy5pc0ZvY3VzZWQ9ITEsdGhpcy5pc0luaXRpYWxpemVkPSExLHRoaXMuZXh0ZW5zaW9uU3RvcmFnZT17fSx0aGlzLm9wdGlvbnM9e2VsZW1lbnQ6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksY29udGVudDoiIixpbmplY3RDU1M6ITAsaW5qZWN0Tm9uY2U6dm9pZCAwLGV4dGVuc2lvbnM6W10sYXV0b2ZvY3VzOiExLGVkaXRhYmxlOiEwLGVkaXRvclByb3BzOnt9LHBhcnNlT3B0aW9uczp7fSxjb3JlRXh0ZW5zaW9uT3B0aW9uczp7fSxlbmFibGVJbnB1dFJ1bGVzOiEwLGVuYWJsZVBhc3RlUnVsZXM6ITAsZW5hYmxlQ29yZUV4dGVuc2lvbnM6ITAsZW5hYmxlQ29udGVudENoZWNrOiExLGVtaXRDb250ZW50RXJyb3I6ITEsb25CZWZvcmVDcmVhdGU6cygoKT0+bnVsbCwib25CZWZvcmVDcmVhdGUiKSxvbkNyZWF0ZTpzKCgpPT5udWxsLCJvbkNyZWF0ZSIpLG9uVXBkYXRlOnMoKCk9Pm51bGwsIm9uVXBkYXRlIiksb25TZWxlY3Rpb25VcGRhdGU6cygoKT0+bnVsbCwib25TZWxlY3Rpb25VcGRhdGUiKSxvblRyYW5zYWN0aW9uOnMoKCk9Pm51bGwsIm9uVHJhbnNhY3Rpb24iKSxvbkZvY3VzOnMoKCk9Pm51bGwsIm9uRm9jdXMiKSxvbkJsdXI6cygoKT0+bnVsbCwib25CbHVyIiksb25EZXN0cm95OnMoKCk9Pm51bGwsIm9uRGVzdHJveSIpLG9uQ29udGVudEVycm9yOnMoKHtlcnJvcjp0fSk9Pnt0aHJvdyB0fSwib25Db250ZW50RXJyb3IiKSxvblBhc3RlOnMoKCk9Pm51bGwsIm9uUGFzdGUiKSxvbkRyb3A6cygoKT0+bnVsbCwib25Ecm9wIil9LHRoaXMuaXNDYXB0dXJpbmdUcmFuc2FjdGlvbj0hMSx0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0aGlzLnNldE9wdGlvbnMoZSksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCksdGhpcy5jcmVhdGVDb21tYW5kTWFuYWdlcigpLHRoaXMuY3JlYXRlU2NoZW1hKCksdGhpcy5vbigiYmVmb3JlQ3JlYXRlIix0aGlzLm9wdGlvbnMub25CZWZvcmVDcmVhdGUpLHRoaXMuZW1pdCgiYmVmb3JlQ3JlYXRlIix7ZWRpdG9yOnRoaXN9KSx0aGlzLm9uKCJjb250ZW50RXJyb3IiLHRoaXMub3B0aW9ucy5vbkNvbnRlbnRFcnJvciksdGhpcy5jcmVhdGVWaWV3KCksdGhpcy5pbmplY3RDU1MoKSx0aGlzLm9uKCJjcmVhdGUiLHRoaXMub3B0aW9ucy5vbkNyZWF0ZSksdGhpcy5vbigidXBkYXRlIix0aGlzLm9wdGlvbnMub25VcGRhdGUpLHRoaXMub24oInNlbGVjdGlvblVwZGF0ZSIsdGhpcy5vcHRpb25zLm9uU2VsZWN0aW9uVXBkYXRlKSx0aGlzLm9uKCJ0cmFuc2FjdGlvbiIsdGhpcy5vcHRpb25zLm9uVHJhbnNhY3Rpb24pLHRoaXMub24oImZvY3VzIix0aGlzLm9wdGlvbnMub25Gb2N1cyksdGhpcy5vbigiYmx1ciIsdGhpcy5vcHRpb25zLm9uQmx1ciksdGhpcy5vbigiZGVzdHJveSIsdGhpcy5vcHRpb25zLm9uRGVzdHJveSksdGhpcy5vbigiZHJvcCIsKHtldmVudDp0LHNsaWNlOnIsbW92ZWQ6aX0pPT50aGlzLm9wdGlvbnMub25Ecm9wKHQscixpKSksdGhpcy5vbigicGFzdGUiLCh7ZXZlbnQ6dCxzbGljZTpyfSk9PnRoaXMub3B0aW9ucy5vblBhc3RlKHQscikpLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuY29tbWFuZHMuZm9jdXModGhpcy5vcHRpb25zLmF1dG9mb2N1cyksdGhpcy5lbWl0KCJjcmVhdGUiLHtlZGl0b3I6dGhpc30pLHRoaXMuaXNJbml0aWFsaXplZD0hMCl9LDApfWdldCBzdG9yYWdlKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9uU3RvcmFnZX1nZXQgY29tbWFuZHMoKXtyZXR1cm4gdGhpcy5jb21tYW5kTWFuYWdlci5jb21tYW5kc31jaGFpbigpe3JldHVybiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNoYWluKCl9Y2FuKCl7cmV0dXJuIHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuKCl9aW5qZWN0Q1NTKCl7dGhpcy5vcHRpb25zLmluamVjdENTUyYmZG9jdW1lbnQmJih0aGlzLmNzcz1GWmUoZUlhLHRoaXMub3B0aW9ucy5pbmplY3ROb25jZSkpfXNldE9wdGlvbnMoZT17fSl7dGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4uZX0sISghdGhpcy52aWV3fHwhdGhpcy5zdGF0ZXx8dGhpcy5pc0Rlc3Ryb3llZCkmJih0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMmJnRoaXMudmlldy5zZXRQcm9wcyh0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMpLHRoaXMudmlldy51cGRhdGVTdGF0ZSh0aGlzLnN0YXRlKSl9c2V0RWRpdGFibGUoZSx0PSEwKXt0aGlzLnNldE9wdGlvbnMoe2VkaXRhYmxlOmV9KSx0JiZ0aGlzLmVtaXQoInVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOnRoaXMuc3RhdGUudHJ9KX1nZXQgaXNFZGl0YWJsZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuZWRpdGFibGUmJnRoaXMudmlldyYmdGhpcy52aWV3LmVkaXRhYmxlfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLnZpZXcuc3RhdGV9cmVnaXN0ZXJQbHVnaW4oZSx0KXtsZXQgcj11cmUodCk/dChlLFsuLi50aGlzLnN0YXRlLnBsdWdpbnNdKTpbLi4udGhpcy5zdGF0ZS5wbHVnaW5zLGVdLGk9dGhpcy5zdGF0ZS5yZWNvbmZpZ3VyZSh7cGx1Z2luczpyfSk7cmV0dXJuIHRoaXMudmlldy51cGRhdGVTdGF0ZShpKSxpfXVucmVnaXN0ZXJQbHVnaW4oZSl7aWYodGhpcy5pc0Rlc3Ryb3llZClyZXR1cm47bGV0IHQ9dGhpcy5zdGF0ZS5wbHVnaW5zLHI9dDtpZihbXS5jb25jYXQoZSkuZm9yRWFjaChvPT57bGV0IG49dHlwZW9mIG89PSJzdHJpbmciP2Ake299JGA6by5rZXk7cj1yLmZpbHRlcihsPT4hbC5rZXkuc3RhcnRzV2l0aChuKSl9KSx0Lmxlbmd0aD09PXIubGVuZ3RoKXJldHVybjtsZXQgaT10aGlzLnN0YXRlLnJlY29uZmlndXJlKHtwbHVnaW5zOnJ9KTtyZXR1cm4gdGhpcy52aWV3LnVwZGF0ZVN0YXRlKGkpLGl9Y3JlYXRlRXh0ZW5zaW9uTWFuYWdlcigpe3ZhciBlLHQ7bGV0IGk9Wy4uLnRoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9ucz9bUW5hLGpuYS5jb25maWd1cmUoe2Jsb2NrU2VwYXJhdG9yOih0PShlPXRoaXMub3B0aW9ucy5jb3JlRXh0ZW5zaW9uT3B0aW9ucyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNsaXBib2FyZFRleHRTZXJpYWxpemVyKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuYmxvY2tTZXBhcmF0b3J9KSxabmEsZTFhLHQxYSxyMWEsWG5hLGExYV0uZmlsdGVyKG89PnR5cGVvZiB0aGlzLm9wdGlvbnMuZW5hYmxlQ29yZUV4dGVuc2lvbnM9PSJvYmplY3QiP3RoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9uc1tvLm5hbWVdIT09ITE6ITApOltdLC4uLnRoaXMub3B0aW9ucy5leHRlbnNpb25zXS5maWx0ZXIobz0+WyJleHRlbnNpb24iLCJub2RlIiwibWFyayJdLmluY2x1ZGVzKG8/LnR5cGUpKTt0aGlzLmV4dGVuc2lvbk1hbmFnZXI9bmV3IGNyZShpLHRoaXMpfWNyZWF0ZUNvbW1hbmRNYW5hZ2VyKCl7dGhpcy5jb21tYW5kTWFuYWdlcj1uZXcgdzQoe2VkaXRvcjp0aGlzfSl9Y3JlYXRlU2NoZW1hKCl7dGhpcy5zY2hlbWE9dGhpcy5leHRlbnNpb25NYW5hZ2VyLnNjaGVtYX1jcmVhdGVWaWV3KCl7dmFyIGU7bGV0IHQ7dHJ5e3Q9cFcodGhpcy5vcHRpb25zLmNvbnRlbnQsdGhpcy5zY2hlbWEsdGhpcy5vcHRpb25zLnBhcnNlT3B0aW9ucyx7ZXJyb3JPbkludmFsaWRDb250ZW50OnRoaXMub3B0aW9ucy5lbmFibGVDb250ZW50Q2hlY2t9KX1jYXRjaChuKXtpZighKG4gaW5zdGFuY2VvZiBFcnJvcil8fCFbIlt0aXB0YXAgZXJyb3JdOiBJbnZhbGlkIEpTT04gY29udGVudCIsIlt0aXB0YXAgZXJyb3JdOiBJbnZhbGlkIEhUTUwgY29udGVudCJdLmluY2x1ZGVzKG4ubWVzc2FnZSkpdGhyb3cgbjt0aGlzLmVtaXQoImNvbnRlbnRFcnJvciIse2VkaXRvcjp0aGlzLGVycm9yOm4sZGlzYWJsZUNvbGxhYm9yYXRpb246cygoKT0+e3RoaXMuc3RvcmFnZS5jb2xsYWJvcmF0aW9uJiYodGhpcy5zdG9yYWdlLmNvbGxhYm9yYXRpb24uaXNEaXNhYmxlZD0hMCksdGhpcy5vcHRpb25zLmV4dGVuc2lvbnM9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuZmlsdGVyKGw9PmwubmFtZSE9PSJjb2xsYWJvcmF0aW9uIiksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCl9LCJkaXNhYmxlQ29sbGFib3JhdGlvbiIpfSksdD1wVyh0aGlzLm9wdGlvbnMuY29udGVudCx0aGlzLnNjaGVtYSx0aGlzLm9wdGlvbnMucGFyc2VPcHRpb25zLHtlcnJvck9uSW52YWxpZENvbnRlbnQ6ITF9KX1sZXQgcj1icmUodCx0aGlzLm9wdGlvbnMuYXV0b2ZvY3VzKTt0aGlzLnZpZXc9bmV3IENtKHRoaXMub3B0aW9ucy5lbGVtZW50LHsuLi50aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMsYXR0cmlidXRlczp7cm9sZToidGV4dGJveCIsLi4uKGU9dGhpcy5vcHRpb25zLmVkaXRvclByb3BzKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuYXR0cmlidXRlc30sZGlzcGF0Y2hUcmFuc2FjdGlvbjp0aGlzLmRpc3BhdGNoVHJhbnNhY3Rpb24uYmluZCh0aGlzKSxzdGF0ZTpLVS5jcmVhdGUoe2RvYzp0LHNlbGVjdGlvbjpyfHx2b2lkIDB9KX0pO2xldCBpPXRoaXMuc3RhdGUucmVjb25maWd1cmUoe3BsdWdpbnM6dGhpcy5leHRlbnNpb25NYW5hZ2VyLnBsdWdpbnN9KTt0aGlzLnZpZXcudXBkYXRlU3RhdGUoaSksdGhpcy5jcmVhdGVOb2RlVmlld3MoKSx0aGlzLnByZXBlbmRDbGFzcygpO2xldCBvPXRoaXMudmlldy5kb207by5lZGl0b3I9dGhpc31jcmVhdGVOb2RlVmlld3MoKXt0aGlzLnZpZXcuaXNEZXN0cm95ZWR8fHRoaXMudmlldy5zZXRQcm9wcyh7bm9kZVZpZXdzOnRoaXMuZXh0ZW5zaW9uTWFuYWdlci5ub2RlVmlld3N9KX1wcmVwZW5kQ2xhc3MoKXt0aGlzLnZpZXcuZG9tLmNsYXNzTmFtZT1gdGlwdGFwICR7dGhpcy52aWV3LmRvbS5jbGFzc05hbWV9YH1jYXB0dXJlVHJhbnNhY3Rpb24oZSl7dGhpcy5pc0NhcHR1cmluZ1RyYW5zYWN0aW9uPSEwLGUoKSx0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb249ITE7bGV0IHQ9dGhpcy5jYXB0dXJlZFRyYW5zYWN0aW9uO3JldHVybiB0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0fWRpc3BhdGNoVHJhbnNhY3Rpb24oZSl7aWYodGhpcy52aWV3LmlzRGVzdHJveWVkKXJldHVybjtpZih0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb24pe2lmKCF0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb24pe3RoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbj1lO3JldHVybn1lLnN0ZXBzLmZvckVhY2gobj0+e3ZhciBsO3JldHVybihsPXRoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbik9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLnN0ZXAobil9KTtyZXR1cm59bGV0IHQ9dGhpcy5zdGF0ZS5hcHBseShlKSxyPSF0aGlzLnN0YXRlLnNlbGVjdGlvbi5lcSh0LnNlbGVjdGlvbik7dGhpcy5lbWl0KCJiZWZvcmVUcmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmUsbmV4dFN0YXRlOnR9KSx0aGlzLnZpZXcudXBkYXRlU3RhdGUodCksdGhpcy5lbWl0KCJ0cmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KSxyJiZ0aGlzLmVtaXQoInNlbGVjdGlvblVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KTtsZXQgaT1lLmdldE1ldGEoImZvY3VzIiksbz1lLmdldE1ldGEoImJsdXIiKTtpJiZ0aGlzLmVtaXQoImZvY3VzIix7ZWRpdG9yOnRoaXMsZXZlbnQ6aS5ldmVudCx0cmFuc2FjdGlvbjplfSksbyYmdGhpcy5lbWl0KCJibHVyIix7ZWRpdG9yOnRoaXMsZXZlbnQ6by5ldmVudCx0cmFuc2FjdGlvbjplfSksISghZS5kb2NDaGFuZ2VkfHxlLmdldE1ldGEoInByZXZlbnRVcGRhdGUiKSkmJnRoaXMuZW1pdCgidXBkYXRlIix7ZWRpdG9yOnRoaXMsdHJhbnNhY3Rpb246ZX0pfWdldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIGJXKHRoaXMuc3RhdGUsZSl9aXNBY3RpdmUoZSx0KXtsZXQgcj10eXBlb2YgZT09InN0cmluZyI/ZTpudWxsLGk9dHlwZW9mIGU9PSJzdHJpbmciP3Q6ZTtyZXR1cm4gT1plKHRoaXMuc3RhdGUscixpKX1nZXRKU09OKCl7cmV0dXJuIHRoaXMuc3RhdGUuZG9jLnRvSlNPTigpfWdldEhUTUwoKXtyZXR1cm4gJG0odGhpcy5zdGF0ZS5kb2MuY29udGVudCx0aGlzLnNjaGVtYSl9Z2V0VGV4dChlKXtsZXR7YmxvY2tTZXBhcmF0b3I6dD1gCgpgLHRleHRTZXJpYWxpemVyczpyPXt9fT1lfHx7fTtyZXR1cm4gd3JlKHRoaXMuc3RhdGUuZG9jLHtibG9ja1NlcGFyYXRvcjp0LHRleHRTZXJpYWxpemVyczp7Li4uZFcodGhpcy5zY2hlbWEpLC4uLnJ9fSl9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gbVcodGhpcy5zdGF0ZS5kb2MpfWdldENoYXJhY3RlckNvdW50KCl7cmV0dXJuIGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogImVkaXRvci5nZXRDaGFyYWN0ZXJDb3VudCgpIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJlZGl0b3Iuc3RvcmFnZS5jaGFyYWN0ZXJDb3VudC5jaGFyYWN0ZXJzKCkiIGluc3RlYWQuJyksdGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplLTJ9ZGVzdHJveSgpe2lmKHRoaXMuZW1pdCgiZGVzdHJveSIpLHRoaXMudmlldyl7bGV0IGU9dGhpcy52aWV3LmRvbTtlJiZlLmVkaXRvciYmZGVsZXRlIGUuZWRpdG9yLHRoaXMudmlldy5kZXN0cm95KCl9dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKX1nZXQgaXNEZXN0cm95ZWQoKXt2YXIgZTtyZXR1cm4hKCEoKGU9dGhpcy52aWV3KT09PW51bGx8fGU9PT12b2lkIDApJiZlLmRvY1ZpZXcpfSRub2RlKGUsdCl7dmFyIHI7cmV0dXJuKChyPXRoaXMuJGRvYyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnF1ZXJ5U2VsZWN0b3IoZSx0KSl8fG51bGx9JG5vZGVzKGUsdCl7dmFyIHI7cmV0dXJuKChyPXRoaXMuJGRvYyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnF1ZXJ5U2VsZWN0b3JBbGwoZSx0KSl8fG51bGx9JHBvcyhlKXtsZXQgdD10aGlzLnN0YXRlLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgZ1codCx0aGlzKX1nZXQgJGRvYygpe3JldHVybiB0aGlzLiRwb3MoMCl9fTtzKEJuLCJtYXJrSW5wdXRSdWxlIik7cygkcmUsIm5vZGVJbnB1dFJ1bGUiKTtzKHI1LCJ0ZXh0YmxvY2tUeXBlSW5wdXRSdWxlIik7cyhtciwidGV4dElucHV0UnVsZSIpO3MoSjIsIndyYXBwaW5nSW5wdXRSdWxlIik7b3I9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJOb2RlIil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy50eXBlPSJub2RlIix0aGlzLm5hbWU9Im5vZGUiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZD1udWxsLHRoaXMuY29uZmlnPXtuYW1lOnRoaXMubmFtZSxkZWZhdWx0T3B0aW9uczp7fX0sdGhpcy5jb25maWc9ey4uLnRoaXMuY29uZmlnLC4uLmV9LHRoaXMubmFtZT10aGlzLmNvbmZpZy5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3RoaXMubmFtZX0iLmApLHRoaXMub3B0aW9ucz10aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucyx0aGlzLmNvbmZpZy5hZGRPcHRpb25zJiYodGhpcy5vcHRpb25zPWp0KHB0KHRoaXMsImFkZE9wdGlvbnMiLHtuYW1lOnRoaXMubmFtZX0pKSksdGhpcy5zdG9yYWdlPWp0KHB0KHRoaXMsImFkZFN0b3JhZ2UiLHtuYW1lOnRoaXMubmFtZSxvcHRpb25zOnRoaXMub3B0aW9uc30pKXx8e319c3RhdGljIGNyZWF0ZShlPXt9KXtyZXR1cm4gbmV3IGEoZSl9Y29uZmlndXJlKGU9e30pe2xldCB0PXRoaXMuZXh0ZW5kKHsuLi50aGlzLmNvbmZpZyxhZGRPcHRpb25zOnMoKCk9PkFtKHRoaXMub3B0aW9ucyxlKSwiYWRkT3B0aW9ucyIpfSk7cmV0dXJuIHQubmFtZT10aGlzLm5hbWUsdC5wYXJlbnQ9dGhpcy5wYXJlbnQsdH1leHRlbmQoZT17fSl7bGV0IHQ9bmV3IGEoZSk7cmV0dXJuIHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZD10LHQubmFtZT1lLm5hbWU/ZS5uYW1lOnQucGFyZW50Lm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dC5uYW1lfSIuYCksdC5vcHRpb25zPWp0KHB0KHQsImFkZE9wdGlvbnMiLHtuYW1lOnQubmFtZX0pKSx0LnN0b3JhZ2U9anQocHQodCwiYWRkU3RvcmFnZSIse25hbWU6dC5uYW1lLG9wdGlvbnM6dC5vcHRpb25zfSkpLHR9fSxTcmU9Y2xhc3N7c3RhdGlje3ModGhpcywiTm9kZVZpZXciKX1jb25zdHJ1Y3RvcihlLHQscil7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuY29tcG9uZW50PWUsdGhpcy5lZGl0b3I9dC5lZGl0b3IsdGhpcy5vcHRpb25zPXtzdG9wRXZlbnQ6bnVsbCxpZ25vcmVNdXRhdGlvbjpudWxsLC4uLnJ9LHRoaXMuZXh0ZW5zaW9uPXQuZXh0ZW5zaW9uLHRoaXMubm9kZT10Lm5vZGUsdGhpcy5kZWNvcmF0aW9ucz10LmRlY29yYXRpb25zLHRoaXMuaW5uZXJEZWNvcmF0aW9ucz10LmlubmVyRGVjb3JhdGlvbnMsdGhpcy52aWV3PXQudmlldyx0aGlzLkhUTUxBdHRyaWJ1dGVzPXQuSFRNTEF0dHJpYnV0ZXMsdGhpcy5nZXRQb3M9dC5nZXRQb3MsdGhpcy5tb3VudCgpfW1vdW50KCl7fWdldCBkb20oKXtyZXR1cm4gdGhpcy5lZGl0b3Iudmlldy5kb219Z2V0IGNvbnRlbnRET00oKXtyZXR1cm4gbnVsbH1vbkRyYWdTdGFydChlKXt2YXIgdCxyLGksbyxuLGwsZDtsZXR7dmlldzpjfT10aGlzLmVkaXRvcixwPWUudGFyZ2V0LHU9cC5ub2RlVHlwZT09PTM/KHQ9cC5wYXJlbnRFbGVtZW50KT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuY2xvc2VzdCgiW2RhdGEtZHJhZy1oYW5kbGVdIik6cC5jbG9zZXN0KCJbZGF0YS1kcmFnLWhhbmRsZV0iKTtpZighdGhpcy5kb218fCEoKHI9dGhpcy5jb250ZW50RE9NKT09PW51bGx8fHI9PT12b2lkIDApJiZyLmNvbnRhaW5zKHApfHwhdSlyZXR1cm47bGV0IG09MCx2PTA7aWYodGhpcy5kb20hPT11KXtsZXQgaz10aGlzLmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxDPXUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTj0oaT1lLm9mZnNldFgpIT09bnVsbCYmaSE9PXZvaWQgMD9pOihvPWUubmF0aXZlRXZlbnQpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5vZmZzZXRYLF89KG49ZS5vZmZzZXRZKSE9PW51bGwmJm4hPT12b2lkIDA/bjoobD1lLm5hdGl2ZUV2ZW50KT09PW51bGx8fGw9PT12b2lkIDA/dm9pZCAwOmwub2Zmc2V0WTttPUMueC1rLngrTix2PUMueS1rLnkrX31sZXQgeD10aGlzLmRvbS5jbG9uZU5vZGUoITApOyhkPWUuZGF0YVRyYW5zZmVyKT09PW51bGx8fGQ9PT12b2lkIDB8fGQuc2V0RHJhZ0ltYWdlKHgsbSx2KTtsZXQgYj10aGlzLmdldFBvcygpO2lmKHR5cGVvZiBiIT0ibnVtYmVyIilyZXR1cm47bGV0IGc9a3QuY3JlYXRlKGMuc3RhdGUuZG9jLGIpLHk9Yy5zdGF0ZS50ci5zZXRTZWxlY3Rpb24oZyk7Yy5kaXNwYXRjaCh5KX1zdG9wRXZlbnQoZSl7dmFyIHQ7aWYoIXRoaXMuZG9tKXJldHVybiExO2lmKHR5cGVvZiB0aGlzLm9wdGlvbnMuc3RvcEV2ZW50PT0iZnVuY3Rpb24iKXJldHVybiB0aGlzLm9wdGlvbnMuc3RvcEV2ZW50KHtldmVudDplfSk7bGV0IHI9ZS50YXJnZXQ7aWYoISh0aGlzLmRvbS5jb250YWlucyhyKSYmISghKCh0PXRoaXMuY29udGVudERPTSk9PT1udWxsfHx0PT09dm9pZCAwKSYmdC5jb250YWlucyhyKSkpKXJldHVybiExO2xldCBvPWUudHlwZS5zdGFydHNXaXRoKCJkcmFnIiksbj1lLnR5cGU9PT0iZHJvcCI7aWYoKFsiSU5QVVQiLCJCVVRUT04iLCJTRUxFQ1QiLCJURVhUQVJFQSJdLmluY2x1ZGVzKHIudGFnTmFtZSl8fHIuaXNDb250ZW50RWRpdGFibGUpJiYhbiYmIW8pcmV0dXJuITA7bGV0e2lzRWRpdGFibGU6ZH09dGhpcy5lZGl0b3Ise2lzRHJhZ2dpbmc6Y309dGhpcyxwPSEhdGhpcy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUsdT1rdC5pc1NlbGVjdGFibGUodGhpcy5ub2RlKSxtPWUudHlwZT09PSJjb3B5Iix2PWUudHlwZT09PSJwYXN0ZSIseD1lLnR5cGU9PT0iY3V0IixiPWUudHlwZT09PSJtb3VzZWRvd24iO2lmKCFwJiZ1JiZvJiZlLnRhcmdldD09PXRoaXMuZG9tJiZlLnByZXZlbnREZWZhdWx0KCkscCYmbyYmIWMmJmUudGFyZ2V0PT09dGhpcy5kb20pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSwhMTtpZihwJiZkJiYhYyYmYil7bGV0IGc9ci5jbG9zZXN0KCJbZGF0YS1kcmFnLWhhbmRsZV0iKTtnJiYodGhpcy5kb209PT1nfHx0aGlzLmRvbS5jb250YWlucyhnKSkmJih0aGlzLmlzRHJhZ2dpbmc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsKCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITF9LHtvbmNlOiEwfSkpfXJldHVybiEoY3x8bnx8bXx8dnx8eHx8YiYmdSl9aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIXRoaXMuZG9tfHwhdGhpcy5jb250ZW50RE9NPyEwOnR5cGVvZiB0aGlzLm9wdGlvbnMuaWdub3JlTXV0YXRpb249PSJmdW5jdGlvbiI/dGhpcy5vcHRpb25zLmlnbm9yZU11dGF0aW9uKHttdXRhdGlvbjplfSk6dGhpcy5ub2RlLmlzTGVhZnx8dGhpcy5ub2RlLmlzQXRvbT8hMDplLnR5cGU9PT0ic2VsZWN0aW9uInx8dGhpcy5kb20uY29udGFpbnMoZS50YXJnZXQpJiZlLnR5cGU9PT0iY2hpbGRMaXN0IiYmKEpmKCl8fHdaZSgpKSYmdGhpcy5lZGl0b3IuaXNGb2N1c2VkJiZbLi4uQXJyYXkuZnJvbShlLmFkZGVkTm9kZXMpLC4uLkFycmF5LmZyb20oZS5yZW1vdmVkTm9kZXMpXS5ldmVyeShyPT5yLmlzQ29udGVudEVkaXRhYmxlKT8hMTp0aGlzLmNvbnRlbnRET009PT1lLnRhcmdldCYmZS50eXBlPT09ImF0dHJpYnV0ZXMiPyEwOiF0aGlzLmNvbnRlbnRET00uY29udGFpbnMoZS50YXJnZXQpfXVwZGF0ZUF0dHJpYnV0ZXMoZSl7dGhpcy5lZGl0b3IuY29tbWFuZHMuY29tbWFuZCgoe3RyOnR9KT0+e2xldCByPXRoaXMuZ2V0UG9zKCk7cmV0dXJuIHR5cGVvZiByIT0ibnVtYmVyIj8hMToodC5zZXROb2RlTWFya3VwKHIsdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLCEwKX0pfWRlbGV0ZU5vZGUoKXtsZXQgZT10aGlzLmdldFBvcygpO2lmKHR5cGVvZiBlIT0ibnVtYmVyIilyZXR1cm47bGV0IHQ9ZSt0aGlzLm5vZGUubm9kZVNpemU7dGhpcy5lZGl0b3IuY29tbWFuZHMuZGVsZXRlUmFuZ2Uoe2Zyb206ZSx0bzp0fSl9fTtzKE9vLCJtYXJrUGFzdGVSdWxlIik7cyhEcmUsImNhbkluc2VydE5vZGUiKTtzKGgxYSwiZXNjYXBlRm9yUmVnRXgiKTtzKG0xYSwiaXNTdHJpbmciKTtzKGcxYSwibm9kZVBhc3RlUnVsZSIpO3MoYjFhLCJ0ZXh0UGFzdGVSdWxlIik7enJlPWNsYXNze3N0YXRpY3tzKHRoaXMsIlRyYWNrZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRyYW5zYWN0aW9uPWUsdGhpcy5jdXJyZW50U3RlcD10aGlzLnRyYW5zYWN0aW9uLnN0ZXBzLmxlbmd0aH1tYXAoZSl7bGV0IHQ9ITE7cmV0dXJue3Bvc2l0aW9uOnRoaXMudHJhbnNhY3Rpb24uc3RlcHMuc2xpY2UodGhpcy5jdXJyZW50U3RlcCkucmVkdWNlKChpLG8pPT57bGV0IG49by5nZXRNYXAoKS5tYXBSZXN1bHQoaSk7cmV0dXJuIG4uZGVsZXRlZCYmKHQ9ITApLG4ucG9zfSxlKSxkZWxldGVkOnR9fX19KTt2YXIgeDFhLEFyZSx5MWE9ZigoKT0+e2dyKCk7eDFhPS9eXHMqPlxzJC8sQXJlPW9yLmNyZWF0ZSh7bmFtZToiYmxvY2txdW90ZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImJsb2NrKyIsZ3JvdXA6ImJsb2NrIixkZWZpbmluZzohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiYmxvY2txdW90ZSJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6YX0pe3JldHVyblsiYmxvY2txdW90ZSIsemEodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGEpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRCbG9ja3F1b3RlOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLndyYXBJbih0aGlzLm5hbWUpLCJzZXRCbG9ja3F1b3RlIiksdG9nZ2xlQmxvY2txdW90ZTpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+YS50b2dnbGVXcmFwKHRoaXMubmFtZSksInRvZ2dsZUJsb2NrcXVvdGUiKSx1bnNldEJsb2NrcXVvdGU6cygoKT0+KHtjb21tYW5kczphfSk9PmEubGlmdCh0aGlzLm5hbWUpLCJ1bnNldEJsb2NrcXVvdGUiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtYiI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQmxvY2txdW90ZSgpLCJNb2QtU2hpZnQtYiIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltKMih7ZmluZDp4MWEsdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgdzFhLE0xYSxrMWEsUzFhLFByZSx6MWE9ZigoKT0+e2dyKCk7dzFhPS8oPzpefFxzKShcKlwqKD8hXHMrXCpcKikoKD86W14qXSspKVwqXCooPyFccytcKlwqKSkkLyxNMWE9Lyg/Ol58XHMpKFwqXCooPyFccytcKlwqKSgoPzpbXipdKykpXCpcKig/IVxzK1wqXCopKS9nLGsxYT0vKD86XnxccykoX18oPyFccytfXykoKD86W15fXSspKV9fKD8hXHMrX18pKSQvLFMxYT0vKD86XnxccykoX18oPyFccytfXykoKD86W15fXSspKV9fKD8hXHMrX18pKS9nLFByZT1uaS5jcmVhdGUoe25hbWU6ImJvbGQiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoic3Ryb25nIn0se3RhZzoiYiIsZ2V0QXR0cnM6cyhhPT5hLnN0eWxlLmZvbnRXZWlnaHQhPT0ibm9ybWFsIiYmbnVsbCwiZ2V0QXR0cnMiKX0se3N0eWxlOiJmb250LXdlaWdodD00MDAiLGNsZWFyTWFyazpzKGE9PmEudHlwZS5uYW1lPT09dGhpcy5uYW1lLCJjbGVhck1hcmsiKX0se3N0eWxlOiJmb250LXdlaWdodCIsZ2V0QXR0cnM6cyhhPT4vXihib2xkKGVyKT98WzUtOV1cZHsyLH0pJC8udGVzdChhKSYmbnVsbCwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczphfSl7cmV0dXJuWyJzdHJvbmciLHphKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxhKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0Qm9sZDpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+YS5zZXRNYXJrKHRoaXMubmFtZSksInNldEJvbGQiKSx0b2dnbGVCb2xkOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlQm9sZCIpLHVuc2V0Qm9sZDpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+YS51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRCb2xkIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLWIiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJvbGQoKSwiTW9kLWIiKSwiTW9kLUIiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJvbGQoKSwiTW9kLUIiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bQm4oe2ZpbmQ6dzFhLHR5cGU6dGhpcy50eXBlfSksQm4oe2ZpbmQ6azFhLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW09vKHtmaW5kOk0xYSx0eXBlOnRoaXMudHlwZX0pLE9vKHtmaW5kOlMxYSx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciB0SWEsQzFhLEJaZSxFcmUsXzFhPWYoKCk9PntncigpO3RJYT0ibGlzdEl0ZW0iLEMxYT0idGV4dFN0eWxlIixCWmU9L15ccyooWy0rKl0pXHMkLyxFcmU9b3IuY3JlYXRlKHtuYW1lOiJidWxsZXRMaXN0IixhZGRPcHRpb25zKCl7cmV0dXJue2l0ZW1UeXBlTmFtZToibGlzdEl0ZW0iLEhUTUxBdHRyaWJ1dGVzOnt9LGtlZXBNYXJrczohMSxrZWVwQXR0cmlidXRlczohMX19LGdyb3VwOiJibG9jayBsaXN0Iixjb250ZW50KCl7cmV0dXJuYCR7dGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZX0rYH0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InVsIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczphfSl7cmV0dXJuWyJ1bCIsemEodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGEpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybnt0b2dnbGVCdWxsZXRMaXN0OnMoKCk9Pih7Y29tbWFuZHM6YSxjaGFpbjplfSk9PnRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcz9lKCkudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKS51cGRhdGVBdHRyaWJ1dGVzKHRJYSx0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKEMxYSkpLnJ1bigpOmEudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKSwidG9nZ2xlQnVsbGV0TGlzdCIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1TaGlmdC04IjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVCdWxsZXRMaXN0KCksIk1vZC1TaGlmdC04Iil9fSxhZGRJbnB1dFJ1bGVzKCl7bGV0IGE9SjIoe2ZpbmQ6QlplLHR5cGU6dGhpcy50eXBlfSk7cmV0dXJuKHRoaXMub3B0aW9ucy5rZWVwTWFya3N8fHRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcykmJihhPUoyKHtmaW5kOkJaZSx0eXBlOnRoaXMudHlwZSxrZWVwTWFya3M6dGhpcy5vcHRpb25zLmtlZXBNYXJrcyxrZWVwQXR0cmlidXRlczp0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMsZ2V0QXR0cmlidXRlczpzKCgpPT50aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKEMxYSksImdldEF0dHJpYnV0ZXMiKSxlZGl0b3I6dGhpcy5lZGl0b3J9KSksW2FdfX0pfSk7dmFyIFQxYSxMMWEsSXJlLCQxYT1mKCgpPT57Z3IoKTtUMWE9LyhefFteYF0pYChbXmBdKylgKD8hYCkvLEwxYT0vKF58W15gXSlgKFteYF0rKWAoPyFgKS9nLElyZT1uaS5jcmVhdGUoe25hbWU6ImNvZGUiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxleGNsdWRlczoiXyIsY29kZTohMCxleGl0YWJsZTohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiY29kZSJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6YX0pe3JldHVyblsiY29kZSIsemEodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGEpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRDb2RlOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnNldE1hcmsodGhpcy5uYW1lKSwic2V0Q29kZSIpLHRvZ2dsZUNvZGU6cygoKT0+KHtjb21tYW5kczphfSk9PmEudG9nZ2xlTWFyayh0aGlzLm5hbWUpLCJ0b2dnbGVDb2RlIiksdW5zZXRDb2RlOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldENvZGUiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtZSI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQ29kZSgpLCJNb2QtZSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltCbih7ZmluZDpUMWEsdHlwZTp0aGlzLnR5cGV9KV19LGFkZFBhc3RlUnVsZXMoKXtyZXR1cm5bT28oe2ZpbmQ6TDFhLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIEQxYSxBMWEsTnJlLFAxYT1mKCgpPT57Z3IoKTtaVSgpO0QxYT0vXmBgYChbYS16XSspP1tcc1xuXSQvLEExYT0vXn5+fihbYS16XSspP1tcc1xuXSQvLE5yZT1vci5jcmVhdGUoe25hbWU6ImNvZGVCbG9jayIsYWRkT3B0aW9ucygpe3JldHVybntsYW5ndWFnZUNsYXNzUHJlZml4OiJsYW5ndWFnZS0iLGV4aXRPblRyaXBsZUVudGVyOiEwLGV4aXRPbkFycm93RG93bjohMCxkZWZhdWx0TGFuZ3VhZ2U6bnVsbCxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6InRleHQqIixtYXJrczoiIixncm91cDoiYmxvY2siLGNvZGU6ITAsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsYW5ndWFnZTp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuZGVmYXVsdExhbmd1YWdlLHBhcnNlSFRNTDpzKGE9Pnt2YXIgZTtsZXR7bGFuZ3VhZ2VDbGFzc1ByZWZpeDp0fT10aGlzLm9wdGlvbnMsbz1bLi4uKChlPWEuZmlyc3RFbGVtZW50Q2hpbGQpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5jbGFzc0xpc3QpfHxbXV0uZmlsdGVyKG49Pm4uc3RhcnRzV2l0aCh0KSkubWFwKG49Pm4ucmVwbGFjZSh0LCIiKSlbMF07cmV0dXJuIG98fG51bGx9LCJwYXJzZUhUTUwiKSxyZW5kZXJlZDohMX19fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoicHJlIixwcmVzZXJ2ZVdoaXRlc3BhY2U6ImZ1bGwifV19LHJlbmRlckhUTUwoe25vZGU6YSxIVE1MQXR0cmlidXRlczplfSl7cmV0dXJuWyJwcmUiLHphKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxlKSxbImNvZGUiLHtjbGFzczphLmF0dHJzLmxhbmd1YWdlP3RoaXMub3B0aW9ucy5sYW5ndWFnZUNsYXNzUHJlZml4K2EuYXR0cnMubGFuZ3VhZ2U6bnVsbH0sMF1dfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRDb2RlQmxvY2s6cyhhPT4oe2NvbW1hbmRzOmV9KT0+ZS5zZXROb2RlKHRoaXMubmFtZSxhKSwic2V0Q29kZUJsb2NrIiksdG9nZ2xlQ29kZUJsb2NrOnMoYT0+KHtjb21tYW5kczplfSk9PmUudG9nZ2xlTm9kZSh0aGlzLm5hbWUsInBhcmFncmFwaCIsYSksInRvZ2dsZUNvZGVCbG9jayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1BbHQtYyI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQ29kZUJsb2NrKCksIk1vZC1BbHQtYyIpLEJhY2tzcGFjZTpzKCgpPT57bGV0e2VtcHR5OmEsJGFuY2hvcjplfT10aGlzLmVkaXRvci5zdGF0ZS5zZWxlY3Rpb24sdD1lLnBvcz09PTE7cmV0dXJuIWF8fGUucGFyZW50LnR5cGUubmFtZSE9PXRoaXMubmFtZT8hMTp0fHwhZS5wYXJlbnQudGV4dENvbnRlbnQubGVuZ3RoP3RoaXMuZWRpdG9yLmNvbW1hbmRzLmNsZWFyTm9kZXMoKTohMX0sIkJhY2tzcGFjZSIpLEVudGVyOnMoKHtlZGl0b3I6YX0pPT57aWYoIXRoaXMub3B0aW9ucy5leGl0T25UcmlwbGVFbnRlcilyZXR1cm4hMTtsZXR7c3RhdGU6ZX09YSx7c2VsZWN0aW9uOnR9PWUseyRmcm9tOnIsZW1wdHk6aX09dDtpZighaXx8ci5wYXJlbnQudHlwZSE9PXRoaXMudHlwZSlyZXR1cm4hMTtsZXQgbz1yLnBhcmVudE9mZnNldD09PXIucGFyZW50Lm5vZGVTaXplLTIsbj1yLnBhcmVudC50ZXh0Q29udGVudC5lbmRzV2l0aChgCgpgKTtyZXR1cm4hb3x8IW4/ITE6YS5jaGFpbigpLmNvbW1hbmQoKHt0cjpsfSk9PihsLmRlbGV0ZShyLnBvcy0yLHIucG9zKSwhMCkpLmV4aXRDb2RlKCkucnVuKCl9LCJFbnRlciIpLEFycm93RG93bjpzKCh7ZWRpdG9yOmF9KT0+e2lmKCF0aGlzLm9wdGlvbnMuZXhpdE9uQXJyb3dEb3duKXJldHVybiExO2xldHtzdGF0ZTplfT1hLHtzZWxlY3Rpb246dCxkb2M6cn09ZSx7JGZyb206aSxlbXB0eTpvfT10O2lmKCFvfHxpLnBhcmVudC50eXBlIT09dGhpcy50eXBlfHwhKGkucGFyZW50T2Zmc2V0PT09aS5wYXJlbnQubm9kZVNpemUtMikpcmV0dXJuITE7bGV0IGw9aS5hZnRlcigpO3JldHVybiBsPT09dm9pZCAwPyExOnIubm9kZUF0KGwpP2EuY29tbWFuZHMuY29tbWFuZCgoe3RyOmN9KT0+KGMuc2V0U2VsZWN0aW9uKEV0Lm5lYXIoci5yZXNvbHZlKGwpKSksITApKTphLmNvbW1hbmRzLmV4aXRDb2RlKCl9LCJBcnJvd0Rvd24iKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bcjUoe2ZpbmQ6RDFhLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6cyhhPT4oe2xhbmd1YWdlOmFbMV19KSwiZ2V0QXR0cmlidXRlcyIpfSkscjUoe2ZpbmQ6QTFhLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6cyhhPT4oe2xhbmd1YWdlOmFbMV19KSwiZ2V0QXR0cmlidXRlcyIpfSldfSxhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IGFyKHtrZXk6bmV3IGJzKCJjb2RlQmxvY2tWU0NvZGVIYW5kbGVyIikscHJvcHM6e2hhbmRsZVBhc3RlOnMoKGEsZSk9PntpZighZS5jbGlwYm9hcmREYXRhfHx0aGlzLmVkaXRvci5pc0FjdGl2ZSh0aGlzLnR5cGUubmFtZSkpcmV0dXJuITE7bGV0IHQ9ZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvcGxhaW4iKSxyPWUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ2c2NvZGUtZWRpdG9yLWRhdGEiKSxpPXI/SlNPTi5wYXJzZShyKTp2b2lkIDAsbz1pPy5tb2RlO2lmKCF0fHwhbylyZXR1cm4hMTtsZXR7dHI6bixzY2hlbWE6bH09YS5zdGF0ZSxkPWwudGV4dCh0LnJlcGxhY2UoL1xyXG4/L2csYApgKSk7cmV0dXJuIG4ucmVwbGFjZVNlbGVjdGlvbldpdGgodGhpcy50eXBlLmNyZWF0ZSh7bGFuZ3VhZ2U6b30sZCkpLG4uc2VsZWN0aW9uLiRmcm9tLnBhcmVudC50eXBlIT09dGhpcy50eXBlJiZuLnNldFNlbGVjdGlvbihOdC5uZWFyKG4uZG9jLnJlc29sdmUoTWF0aC5tYXgoMCxuLnNlbGVjdGlvbi5mcm9tLTIpKSkpLG4uc2V0TWV0YSgicGFzdGUiLCEwKSxhLmRpc3BhdGNoKG4pLCEwfSwiaGFuZGxlUGFzdGUiKX19KV19fSl9KTt2YXIgUnJlLEUxYT1mKCgpPT57Z3IoKTtScmU9b3IuY3JlYXRlKHtuYW1lOiJkb2MiLHRvcE5vZGU6ITAsY29udGVudDoiYmxvY2srIn0pfSk7ZnVuY3Rpb24gcVplKGE9e30pe3JldHVybiBuZXcgYXIoe3ZpZXcoZSl7cmV0dXJuIG5ldyBIWmUoZSxhKX19KX12YXIgSFplLEkxYT1mKCgpPT57bWMoKTtoNCgpO3MocVplLCJkcm9wQ3Vyc29yIik7SFplPWNsYXNze3N0YXRpY3tzKHRoaXMsIkRyb3BDdXJzb3JWaWV3Iil9Y29uc3RydWN0b3IoZSx0KXt2YXIgcjt0aGlzLmVkaXRvclZpZXc9ZSx0aGlzLmN1cnNvclBvcz1udWxsLHRoaXMuZWxlbWVudD1udWxsLHRoaXMudGltZW91dD0tMSx0aGlzLndpZHRoPShyPXQud2lkdGgpIT09bnVsbCYmciE9PXZvaWQgMD9yOjEsdGhpcy5jb2xvcj10LmNvbG9yPT09ITE/dm9pZCAwOnQuY29sb3J8fCJibGFjayIsdGhpcy5jbGFzcz10LmNsYXNzLHRoaXMuaGFuZGxlcnM9WyJkcmFnb3ZlciIsImRyYWdlbmQiLCJkcm9wIiwiZHJhZ2xlYXZlIl0ubWFwKGk9PntsZXQgbz1zKG49Pnt0aGlzW2ldKG4pfSwiaGFuZGxlciIpO3JldHVybiBlLmRvbS5hZGRFdmVudExpc3RlbmVyKGksbykse25hbWU6aSxoYW5kbGVyOm99fSl9ZGVzdHJveSgpe3RoaXMuaGFuZGxlcnMuZm9yRWFjaCgoe25hbWU6ZSxoYW5kbGVyOnR9KT0+dGhpcy5lZGl0b3JWaWV3LmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKGUsdCkpfXVwZGF0ZShlLHQpe3RoaXMuY3Vyc29yUG9zIT1udWxsJiZ0LmRvYyE9ZS5zdGF0ZS5kb2MmJih0aGlzLmN1cnNvclBvcz5lLnN0YXRlLmRvYy5jb250ZW50LnNpemU/dGhpcy5zZXRDdXJzb3IobnVsbCk6dGhpcy51cGRhdGVPdmVybGF5KCkpfXNldEN1cnNvcihlKXtlIT10aGlzLmN1cnNvclBvcyYmKHRoaXMuY3Vyc29yUG9zPWUsZT09bnVsbD8odGhpcy5lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KSx0aGlzLmVsZW1lbnQ9bnVsbCk6dGhpcy51cGRhdGVPdmVybGF5KCkpfXVwZGF0ZU92ZXJsYXkoKXtsZXQgZT10aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLnJlc29sdmUodGhpcy5jdXJzb3JQb3MpLHQ9IWUucGFyZW50LmlubGluZUNvbnRlbnQscixpPXRoaXMuZWRpdG9yVmlldy5kb20sbz1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49by53aWR0aC9pLm9mZnNldFdpZHRoLGw9by5oZWlnaHQvaS5vZmZzZXRIZWlnaHQ7aWYodCl7bGV0IHU9ZS5ub2RlQmVmb3JlLG09ZS5ub2RlQWZ0ZXI7aWYodXx8bSl7bGV0IHY9dGhpcy5lZGl0b3JWaWV3Lm5vZGVET00odGhpcy5jdXJzb3JQb3MtKHU/dS5ub2RlU2l6ZTowKSk7aWYodil7bGV0IHg9di5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPXU/eC5ib3R0b206eC50b3A7dSYmbSYmKGI9KGIrdGhpcy5lZGl0b3JWaWV3Lm5vZGVET00odGhpcy5jdXJzb3JQb3MpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkvMik7bGV0IGc9dGhpcy53aWR0aC8yKmw7cj17bGVmdDp4LmxlZnQscmlnaHQ6eC5yaWdodCx0b3A6Yi1nLGJvdHRvbTpiK2d9fX19aWYoIXIpe2xldCB1PXRoaXMuZWRpdG9yVmlldy5jb29yZHNBdFBvcyh0aGlzLmN1cnNvclBvcyksbT10aGlzLndpZHRoLzIqbjtyPXtsZWZ0OnUubGVmdC1tLHJpZ2h0OnUubGVmdCttLHRvcDp1LnRvcCxib3R0b206dS5ib3R0b219fWxldCBkPXRoaXMuZWRpdG9yVmlldy5kb20ub2Zmc2V0UGFyZW50O3RoaXMuZWxlbWVudHx8KHRoaXMuZWxlbWVudD1kLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSx0aGlzLmNsYXNzJiYodGhpcy5lbGVtZW50LmNsYXNzTmFtZT10aGlzLmNsYXNzKSx0aGlzLmVsZW1lbnQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiA1MDsgcG9pbnRlci1ldmVudHM6IG5vbmU7Iix0aGlzLmNvbG9yJiYodGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLmNvbG9yKSksdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInByb3NlbWlycm9yLWRyb3BjdXJzb3ItYmxvY2siLHQpLHRoaXMuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJwcm9zZW1pcnJvci1kcm9wY3Vyc29yLWlubGluZSIsIXQpO2xldCBjLHA7aWYoIWR8fGQ9PWRvY3VtZW50LmJvZHkmJmdldENvbXB1dGVkU3R5bGUoZCkucG9zaXRpb249PSJzdGF0aWMiKWM9LXBhZ2VYT2Zmc2V0LHA9LXBhZ2VZT2Zmc2V0O2Vsc2V7bGV0IHU9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXUud2lkdGgvZC5vZmZzZXRXaWR0aCx2PXUuaGVpZ2h0L2Qub2Zmc2V0SGVpZ2h0O2M9dS5sZWZ0LWQuc2Nyb2xsTGVmdCptLHA9dS50b3AtZC5zY3JvbGxUb3Aqdn10aGlzLmVsZW1lbnQuc3R5bGUubGVmdD0oci5sZWZ0LWMpL24rInB4Iix0aGlzLmVsZW1lbnQuc3R5bGUudG9wPShyLnRvcC1wKS9sKyJweCIsdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoPShyLnJpZ2h0LXIubGVmdCkvbisicHgiLHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQ9KHIuYm90dG9tLXIudG9wKS9sKyJweCJ9c2NoZWR1bGVSZW1vdmFsKGUpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMudGltZW91dD1zZXRUaW1lb3V0KCgpPT50aGlzLnNldEN1cnNvcihudWxsKSxlKX1kcmFnb3ZlcihlKXtpZighdGhpcy5lZGl0b3JWaWV3LmVkaXRhYmxlKXJldHVybjtsZXQgdD10aGlzLmVkaXRvclZpZXcucG9zQXRDb29yZHMoe2xlZnQ6ZS5jbGllbnRYLHRvcDplLmNsaWVudFl9KSxyPXQmJnQuaW5zaWRlPj0wJiZ0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLm5vZGVBdCh0Lmluc2lkZSksaT1yJiZyLnR5cGUuc3BlYy5kaXNhYmxlRHJvcEN1cnNvcixvPXR5cGVvZiBpPT0iZnVuY3Rpb24iP2kodGhpcy5lZGl0b3JWaWV3LHQsZSk6aTtpZih0JiYhbyl7bGV0IG49dC5wb3M7aWYodGhpcy5lZGl0b3JWaWV3LmRyYWdnaW5nJiZ0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2Upe2xldCBsPUdVKHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2Msbix0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2UpO2whPW51bGwmJihuPWwpfXRoaXMuc2V0Q3Vyc29yKG4pLHRoaXMuc2NoZWR1bGVSZW1vdmFsKDVlMyl9fWRyYWdlbmQoKXt0aGlzLnNjaGVkdWxlUmVtb3ZhbCgyMCl9ZHJvcCgpe3RoaXMuc2NoZWR1bGVSZW1vdmFsKDIwKX1kcmFnbGVhdmUoZSl7dGhpcy5lZGl0b3JWaWV3LmRvbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHx0aGlzLnNldEN1cnNvcihudWxsKX19fSk7dmFyIE4xYT1mKCgpPT57STFhKCl9KTt2YXIgT3JlLFIxYT1mKCgpPT57Z3IoKTtOMWEoKTtPcmU9d3IuY3JlYXRlKHtuYW1lOiJkcm9wQ3Vyc29yIixhZGRPcHRpb25zKCl7cmV0dXJue2NvbG9yOiJjdXJyZW50Q29sb3IiLHdpZHRoOjEsY2xhc3M6dm9pZCAwfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW3FaZSh0aGlzLm9wdGlvbnMpXX19KX0pO2Z1bmN0aW9uIE8xYShhKXtyZXR1cm4gYS5pc0F0b218fGEuc3BlYy5pc29sYXRpbmd8fGEuc3BlYy5jcmVhdGVHYXBDdXJzb3J9ZnVuY3Rpb24gYUlhKGEpe2ZvcihsZXQgZT1hLmRlcHRoO2U+PTA7ZS0tKXtsZXQgdD1hLmluZGV4KGUpLHI9YS5ub2RlKGUpO2lmKHQ9PTApe2lmKHIudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMDtjb250aW51ZX1mb3IobGV0IGk9ci5jaGlsZCh0LTEpOztpPWkubGFzdENoaWxkKXtpZihpLmNoaWxkQ291bnQ9PTAmJiFpLmlubGluZUNvbnRlbnR8fE8xYShpLnR5cGUpKXJldHVybiEwO2lmKGkuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gcklhKGEpe2ZvcihsZXQgZT1hLmRlcHRoO2U+PTA7ZS0tKXtsZXQgdD1hLmluZGV4QWZ0ZXIoZSkscj1hLm5vZGUoZSk7aWYodD09ci5jaGlsZENvdW50KXtpZihyLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITA7Y29udGludWV9Zm9yKGxldCBpPXIuY2hpbGQodCk7O2k9aS5maXJzdENoaWxkKXtpZihpLmNoaWxkQ291bnQ9PTAmJiFpLmlubGluZUNvbnRlbnR8fE8xYShpLnR5cGUpKXJldHVybiEwO2lmKGkuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24galplKCl7cmV0dXJuIG5ldyBhcih7cHJvcHM6e2RlY29yYXRpb25zOm5JYSxjcmVhdGVTZWxlY3Rpb25CZXR3ZWVuKGEsZSx0KXtyZXR1cm4gZS5wb3M9PXQucG9zJiZsaS52YWxpZCh0KT9uZXcgbGkodCk6bnVsbH0saGFuZGxlQ2xpY2s6aUlhLGhhbmRsZUtleURvd246c0lhLGhhbmRsZURPTUV2ZW50czp7YmVmb3JlaW5wdXQ6b0lhfX19KX1mdW5jdGlvbiBGcmUoYSxlKXtsZXQgdD1hPT0idmVydCI/ZT4wPyJkb3duIjoidXAiOmU+MD8icmlnaHQiOiJsZWZ0IjtyZXR1cm4gZnVuY3Rpb24ocixpLG8pe2xldCBuPXIuc2VsZWN0aW9uLGw9ZT4wP24uJHRvOm4uJGZyb20sZD1uLmVtcHR5O2lmKG4gaW5zdGFuY2VvZiBOdCl7aWYoIW8uZW5kT2ZUZXh0YmxvY2sodCl8fGwuZGVwdGg9PTApcmV0dXJuITE7ZD0hMSxsPXIuZG9jLnJlc29sdmUoZT4wP2wuYWZ0ZXIoKTpsLmJlZm9yZSgpKX1sZXQgYz1saS5maW5kR2FwQ3Vyc29yRnJvbShsLGUsZCk7cmV0dXJuIGM/KGkmJmkoci50ci5zZXRTZWxlY3Rpb24obmV3IGxpKGMpKSksITApOiExfX1mdW5jdGlvbiBpSWEoYSxlLHQpe2lmKCFhfHwhYS5lZGl0YWJsZSlyZXR1cm4hMTtsZXQgcj1hLnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCFsaS52YWxpZChyKSlyZXR1cm4hMTtsZXQgaT1hLnBvc0F0Q29vcmRzKHtsZWZ0OnQuY2xpZW50WCx0b3A6dC5jbGllbnRZfSk7cmV0dXJuIGkmJmkuaW5zaWRlPi0xJiZrdC5pc1NlbGVjdGFibGUoYS5zdGF0ZS5kb2Mubm9kZUF0KGkuaW5zaWRlKSk/ITE6KGEuZGlzcGF0Y2goYS5zdGF0ZS50ci5zZXRTZWxlY3Rpb24obmV3IGxpKHIpKSksITApfWZ1bmN0aW9uIG9JYShhLGUpe2lmKGUuaW5wdXRUeXBlIT0iaW5zZXJ0Q29tcG9zaXRpb25UZXh0Inx8IShhLnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIGxpKSlyZXR1cm4hMTtsZXR7JGZyb206dH09YS5zdGF0ZS5zZWxlY3Rpb24scj10LnBhcmVudC5jb250ZW50TWF0Y2hBdCh0LmluZGV4KCkpLmZpbmRXcmFwcGluZyhhLnN0YXRlLnNjaGVtYS5ub2Rlcy50ZXh0KTtpZighcilyZXR1cm4hMTtsZXQgaT1qZS5lbXB0eTtmb3IobGV0IG49ci5sZW5ndGgtMTtuPj0wO24tLSlpPWplLmZyb20ocltuXS5jcmVhdGVBbmRGaWxsKG51bGwsaSkpO2xldCBvPWEuc3RhdGUudHIucmVwbGFjZSh0LnBvcyx0LnBvcyxuZXcgc3QoaSwwLDApKTtyZXR1cm4gby5zZXRTZWxlY3Rpb24oTnQubmVhcihvLmRvYy5yZXNvbHZlKHQucG9zKzEpKSksYS5kaXNwYXRjaChvKSwhMX1mdW5jdGlvbiBuSWEoYSl7aWYoIShhLnNlbGVjdGlvbiBpbnN0YW5jZW9mIGxpKSlyZXR1cm4gbnVsbDtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9IlByb3NlTWlycm9yLWdhcGN1cnNvciIsUWkuY3JlYXRlKGEuZG9jLFtSMS53aWRnZXQoYS5zZWxlY3Rpb24uaGVhZCxlLHtrZXk6ImdhcGN1cnNvciJ9KV0pfXZhciBsaSxWWmUsc0lhLEYxYT1mKCgpPT57YVplKCk7bWMoKTtwNCgpO0pLZSgpO2xpPWNsYXNzIGEgZXh0ZW5kcyBFdHtzdGF0aWN7cyh0aGlzLCJHYXBDdXJzb3IiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlLGUpfW1hcChlLHQpe2xldCByPWUucmVzb2x2ZSh0Lm1hcCh0aGlzLmhlYWQpKTtyZXR1cm4gYS52YWxpZChyKT9uZXcgYShyKTpFdC5uZWFyKHIpfWNvbnRlbnQoKXtyZXR1cm4gc3QuZW1wdHl9ZXEoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBhJiZlLmhlYWQ9PXRoaXMuaGVhZH10b0pTT04oKXtyZXR1cm57dHlwZToiZ2FwY3Vyc29yIixwb3M6dGhpcy5oZWFkfX1zdGF0aWMgZnJvbUpTT04oZSx0KXtpZih0eXBlb2YgdC5wb3MhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBHYXBDdXJzb3IuZnJvbUpTT04iKTtyZXR1cm4gbmV3IGEoZS5yZXNvbHZlKHQucG9zKSl9Z2V0Qm9va21hcmsoKXtyZXR1cm4gbmV3IFZaZSh0aGlzLmFuY2hvcil9c3RhdGljIHZhbGlkKGUpe2xldCB0PWUucGFyZW50O2lmKHQuaW5saW5lQ29udGVudHx8IWFJYShlKXx8IXJJYShlKSlyZXR1cm4hMTtsZXQgcj10LnR5cGUuc3BlYy5hbGxvd0dhcEN1cnNvcjtpZihyIT1udWxsKXJldHVybiByO2xldCBpPXQuY29udGVudE1hdGNoQXQoZS5pbmRleCgpKS5kZWZhdWx0VHlwZTtyZXR1cm4gaSYmaS5pc1RleHRibG9ja31zdGF0aWMgZmluZEdhcEN1cnNvckZyb20oZSx0LHI9ITEpe2U6Zm9yKDs7KXtpZighciYmYS52YWxpZChlKSlyZXR1cm4gZTtsZXQgaT1lLnBvcyxvPW51bGw7Zm9yKGxldCBuPWUuZGVwdGg7O24tLSl7bGV0IGw9ZS5ub2RlKG4pO2lmKHQ+MD9lLmluZGV4QWZ0ZXIobik8bC5jaGlsZENvdW50OmUuaW5kZXgobik+MCl7bz1sLmNoaWxkKHQ+MD9lLmluZGV4QWZ0ZXIobik6ZS5pbmRleChuKS0xKTticmVha31lbHNlIGlmKG49PTApcmV0dXJuIG51bGw7aSs9dDtsZXQgZD1lLmRvYy5yZXNvbHZlKGkpO2lmKGEudmFsaWQoZCkpcmV0dXJuIGR9Zm9yKDs7KXtsZXQgbj10PjA/by5maXJzdENoaWxkOm8ubGFzdENoaWxkO2lmKCFuKXtpZihvLmlzQXRvbSYmIW8uaXNUZXh0JiYha3QuaXNTZWxlY3RhYmxlKG8pKXtlPWUuZG9jLnJlc29sdmUoaStvLm5vZGVTaXplKnQpLHI9ITE7Y29udGludWUgZX1icmVha31vPW4saSs9dDtsZXQgbD1lLmRvYy5yZXNvbHZlKGkpO2lmKGEudmFsaWQobCkpcmV0dXJuIGx9cmV0dXJuIG51bGx9fX07bGkucHJvdG90eXBlLnZpc2libGU9ITEsbGkuZmluZEZyb209bGkuZmluZEdhcEN1cnNvckZyb20sRXQuanNvbklEKCJnYXBjdXJzb3IiLGxpKTtWWmU9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJHYXBCb29rbWFyayIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucG9zPWV9bWFwKGUpe3JldHVybiBuZXcgYShlLm1hcCh0aGlzLnBvcykpfXJlc29sdmUoZSl7bGV0IHQ9ZS5yZXNvbHZlKHRoaXMucG9zKTtyZXR1cm4gbGkudmFsaWQodCk/bmV3IGxpKHQpOkV0Lm5lYXIodCl9fTtzKE8xYSwibmVlZHNHYXAiKTtzKGFJYSwiY2xvc2VkQmVmb3JlIik7cyhySWEsImNsb3NlZEFmdGVyIik7cyhqWmUsImdhcEN1cnNvciIpO3NJYT1ZYWUoe0Fycm93TGVmdDpGcmUoImhvcml6IiwtMSksQXJyb3dSaWdodDpGcmUoImhvcml6IiwxKSxBcnJvd1VwOkZyZSgidmVydCIsLTEpLEFycm93RG93bjpGcmUoInZlcnQiLDEpfSk7cyhGcmUsImFycm93Iik7cyhpSWEsImhhbmRsZUNsaWNrIik7cyhvSWEsImJlZm9yZWlucHV0Iik7cyhuSWEsImRyYXdHYXBDdXJzb3IiKX0pO3ZhciBCMWE9ZigoKT0+e0YxYSgpfSk7dmFyIEJyZSxIMWE9ZigoKT0+e2dyKCk7QjFhKCk7QnJlPXdyLmNyZWF0ZSh7bmFtZToiZ2FwQ3Vyc29yIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5balplKCldfSxleHRlbmROb2RlU2NoZW1hKGEpe3ZhciBlO2xldCB0PXtuYW1lOmEubmFtZSxvcHRpb25zOmEub3B0aW9ucyxzdG9yYWdlOmEuc3RvcmFnZX07cmV0dXJue2FsbG93R2FwQ3Vyc29yOihlPWp0KHB0KGEsImFsbG93R2FwQ3Vyc29yIix0KSkpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm51bGx9fX0pfSk7dmFyIEhyZSxxMWE9ZigoKT0+e2dyKCk7SHJlPW9yLmNyZWF0ZSh7bmFtZToiaGFyZEJyZWFrIixhZGRPcHRpb25zKCl7cmV0dXJue2tlZXBNYXJrczohMCxIVE1MQXR0cmlidXRlczp7fX19LGlubGluZTohMCxncm91cDoiaW5saW5lIixzZWxlY3RhYmxlOiExLGxpbmVicmVha1JlcGxhY2VtZW50OiEwLHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJiciJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6YX0pe3JldHVyblsiYnIiLHphKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxhKV19LHJlbmRlclRleHQoKXtyZXR1cm5gCmB9LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEhhcmRCcmVhazpzKCgpPT4oe2NvbW1hbmRzOmEsY2hhaW46ZSxzdGF0ZTp0LGVkaXRvcjpyfSk9PmEuZmlyc3QoWygpPT5hLmV4aXRDb2RlKCksKCk9PmEuY29tbWFuZCgoKT0+e2xldHtzZWxlY3Rpb246aSxzdG9yZWRNYXJrczpvfT10O2lmKGkuJGZyb20ucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0e2tlZXBNYXJrczpufT10aGlzLm9wdGlvbnMse3NwbGl0dGFibGVNYXJrczpsfT1yLmV4dGVuc2lvbk1hbmFnZXIsZD1vfHxpLiR0by5wYXJlbnRPZmZzZXQmJmkuJGZyb20ubWFya3MoKTtyZXR1cm4gZSgpLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSkuY29tbWFuZCgoe3RyOmMsZGlzcGF0Y2g6cH0pPT57aWYocCYmZCYmbil7bGV0IHU9ZC5maWx0ZXIobT0+bC5pbmNsdWRlcyhtLnR5cGUubmFtZSkpO2MuZW5zdXJlTWFya3ModSl9cmV0dXJuITB9KS5ydW4oKX0pXSksInNldEhhcmRCcmVhayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1FbnRlciI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIk1vZC1FbnRlciIpLCJTaGlmdC1FbnRlciI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIlNoaWZ0LUVudGVyIil9fX0pfSk7dmFyIHFyZSxWMWE9ZigoKT0+e2dyKCk7cXJlPW9yLmNyZWF0ZSh7bmFtZToiaGVhZGluZyIsYWRkT3B0aW9ucygpe3JldHVybntsZXZlbHM6WzEsMiwzLDQsNSw2XSxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsZXZlbDp7ZGVmYXVsdDoxLHJlbmRlcmVkOiExfX19LHBhcnNlSFRNTCgpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcChhPT4oe3RhZzpgaCR7YX1gLGF0dHJzOntsZXZlbDphfX0pKX0scmVuZGVySFRNTCh7bm9kZTphLEhUTUxBdHRyaWJ1dGVzOmV9KXtyZXR1cm5bYGgke3RoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXMoYS5hdHRycy5sZXZlbCk/YS5hdHRycy5sZXZlbDp0aGlzLm9wdGlvbnMubGV2ZWxzWzBdfWAsemEodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGUpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIZWFkaW5nOnMoYT0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXMoYS5sZXZlbCk/ZS5zZXROb2RlKHRoaXMubmFtZSxhKTohMSwic2V0SGVhZGluZyIpLHRvZ2dsZUhlYWRpbmc6cyhhPT4oe2NvbW1hbmRzOmV9KT0+dGhpcy5vcHRpb25zLmxldmVscy5pbmNsdWRlcyhhLmxldmVsKT9lLnRvZ2dsZU5vZGUodGhpcy5uYW1lLCJwYXJhZ3JhcGgiLGEpOiExLCJ0b2dnbGVIZWFkaW5nIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLnJlZHVjZSgoYSxlKT0+KHsuLi5hLFtgTW9kLUFsdC0ke2V9YF06KCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUhlYWRpbmcoe2xldmVsOmV9KX0pLHt9KX0sYWRkSW5wdXRSdWxlcygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcChhPT5yNSh7ZmluZDpuZXcgUmVnRXhwKGBeKCN7JHtNYXRoLm1pbiguLi50aGlzLm9wdGlvbnMubGV2ZWxzKX0sJHthfX0pXFxzJGApLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6e2xldmVsOmF9fSkpfX0pfSk7dmFyIFZyZSxjaSxqMWEsbElhLFVaZSxVMWE9ZigoKT0+e1ZyZT0yMDAsY2k9cyhmdW5jdGlvbigpe30sIlJvcGVTZXF1ZW5jZSIpO2NpLnByb3RvdHlwZS5hcHBlbmQ9cyhmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg/KGU9Y2kuZnJvbShlKSwhdGhpcy5sZW5ndGgmJmV8fGUubGVuZ3RoPFZyZSYmdGhpcy5sZWFmQXBwZW5kKGUpfHx0aGlzLmxlbmd0aDxWcmUmJmUubGVhZlByZXBlbmQodGhpcyl8fHRoaXMuYXBwZW5kSW5uZXIoZSkpOnRoaXN9LCJhcHBlbmQiKSxjaS5wcm90b3R5cGUucHJlcGVuZD1zKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD9jaS5mcm9tKGUpLmFwcGVuZCh0aGlzKTp0aGlzfSwicHJlcGVuZCIpLGNpLnByb3RvdHlwZS5hcHBlbmRJbm5lcj1zKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgbElhKHRoaXMsZSl9LCJhcHBlbmRJbm5lciIpLGNpLnByb3RvdHlwZS5zbGljZT1zKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLHQ9PT12b2lkIDAmJih0PXRoaXMubGVuZ3RoKSxlPj10P2NpLmVtcHR5OnRoaXMuc2xpY2VJbm5lcihNYXRoLm1heCgwLGUpLE1hdGgubWluKHRoaXMubGVuZ3RoLHQpKX0sInNsaWNlIiksY2kucHJvdG90eXBlLmdldD1zKGZ1bmN0aW9uKGUpe2lmKCEoZTwwfHxlPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZ2V0SW5uZXIoZSl9LCJnZXQiKSxjaS5wcm90b3R5cGUuZm9yRWFjaD1zKGZ1bmN0aW9uKGUsdCxyKXt0PT09dm9pZCAwJiYodD0wKSxyPT09dm9pZCAwJiYocj10aGlzLmxlbmd0aCksdDw9cj90aGlzLmZvckVhY2hJbm5lcihlLHQsciwwKTp0aGlzLmZvckVhY2hJbnZlcnRlZElubmVyKGUsdCxyLDApfSwiZm9yRWFjaCIpLGNpLnByb3RvdHlwZS5tYXA9cyhmdW5jdGlvbihlLHQscil7dD09PXZvaWQgMCYmKHQ9MCkscj09PXZvaWQgMCYmKHI9dGhpcy5sZW5ndGgpO3ZhciBpPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24obyxuKXtyZXR1cm4gaS5wdXNoKGUobyxuKSl9LHQsciksaX0sIm1hcCIpLGNpLmZyb209cyhmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGNpP2U6ZSYmZS5sZW5ndGg/bmV3IGoxYShlKTpjaS5lbXB0eX0sImZyb20iKTtqMWE9KGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGUocil7YS5jYWxsKHRoaXMpLHRoaXMudmFsdWVzPXJ9cyhlLCJMZWFmIiksYSYmKGUuX19wcm90b19fPWEpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYSYmYS5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHQ9e2xlbmd0aDp7Y29uZmlndXJhYmxlOiEwfSxkZXB0aDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIGUucHJvdG90eXBlLmZsYXR0ZW49cyhmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlc30sImZsYXR0ZW4iKSxlLnByb3RvdHlwZS5zbGljZUlubmVyPXMoZnVuY3Rpb24oaSxvKXtyZXR1cm4gaT09MCYmbz09dGhpcy5sZW5ndGg/dGhpczpuZXcgZSh0aGlzLnZhbHVlcy5zbGljZShpLG8pKX0sInNsaWNlSW5uZXIiKSxlLnByb3RvdHlwZS5nZXRJbm5lcj1zKGZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLnZhbHVlc1tpXX0sImdldElubmVyIiksZS5wcm90b3R5cGUuZm9yRWFjaElubmVyPXMoZnVuY3Rpb24oaSxvLG4sbCl7Zm9yKHZhciBkPW87ZDxuO2QrKylpZihpKHRoaXMudmFsdWVzW2RdLGwrZCk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbnZlcnRlZElubmVyPXMoZnVuY3Rpb24oaSxvLG4sbCl7Zm9yKHZhciBkPW8tMTtkPj1uO2QtLSlpZihpKHRoaXMudmFsdWVzW2RdLGwrZCk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbnZlcnRlZElubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1zKGZ1bmN0aW9uKGkpe2lmKHRoaXMubGVuZ3RoK2kubGVuZ3RoPD1WcmUpcmV0dXJuIG5ldyBlKHRoaXMudmFsdWVzLmNvbmNhdChpLmZsYXR0ZW4oKSkpfSwibGVhZkFwcGVuZCIpLGUucHJvdG90eXBlLmxlYWZQcmVwZW5kPXMoZnVuY3Rpb24oaSl7aWYodGhpcy5sZW5ndGgraS5sZW5ndGg8PVZyZSlyZXR1cm4gbmV3IGUoaS5mbGF0dGVuKCkuY29uY2F0KHRoaXMudmFsdWVzKSl9LCJsZWFmUHJlcGVuZCIpLHQubGVuZ3RoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9LHQuZGVwdGguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDB9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHQpLGV9KShjaSk7Y2kuZW1wdHk9bmV3IGoxYShbXSk7bElhPShmdW5jdGlvbihhKXtmdW5jdGlvbiBlKHQscil7YS5jYWxsKHRoaXMpLHRoaXMubGVmdD10LHRoaXMucmlnaHQ9cix0aGlzLmxlbmd0aD10Lmxlbmd0aCtyLmxlbmd0aCx0aGlzLmRlcHRoPU1hdGgubWF4KHQuZGVwdGgsci5kZXB0aCkrMX1yZXR1cm4gcyhlLCJBcHBlbmQiKSxhJiYoZS5fX3Byb3RvX189YSksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhJiZhLnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5mbGF0dGVuPXMoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZWZ0LmZsYXR0ZW4oKS5jb25jYXQodGhpcy5yaWdodC5mbGF0dGVuKCkpfSwiZmxhdHRlbiIpLGUucHJvdG90eXBlLmdldElubmVyPXMoZnVuY3Rpb24ocil7cmV0dXJuIHI8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuZ2V0KHIpOnRoaXMucmlnaHQuZ2V0KHItdGhpcy5sZWZ0Lmxlbmd0aCl9LCJnZXRJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbm5lcj1zKGZ1bmN0aW9uKHIsaSxvLG4pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYoaTxsJiZ0aGlzLmxlZnQuZm9yRWFjaElubmVyKHIsaSxNYXRoLm1pbihvLGwpLG4pPT09ITF8fG8+bCYmdGhpcy5yaWdodC5mb3JFYWNoSW5uZXIocixNYXRoLm1heChpLWwsMCksTWF0aC5taW4odGhpcy5sZW5ndGgsbyktbCxuK2wpPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW5uZXIiKSxlLnByb3RvdHlwZS5mb3JFYWNoSW52ZXJ0ZWRJbm5lcj1zKGZ1bmN0aW9uKHIsaSxvLG4pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYoaT5sJiZ0aGlzLnJpZ2h0LmZvckVhY2hJbnZlcnRlZElubmVyKHIsaS1sLE1hdGgubWF4KG8sbCktbCxuK2wpPT09ITF8fG88bCYmdGhpcy5sZWZ0LmZvckVhY2hJbnZlcnRlZElubmVyKHIsTWF0aC5taW4oaSxsKSxvLG4pPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW52ZXJ0ZWRJbm5lciIpLGUucHJvdG90eXBlLnNsaWNlSW5uZXI9cyhmdW5jdGlvbihyLGkpe2lmKHI9PTAmJmk9PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBvPXRoaXMubGVmdC5sZW5ndGg7cmV0dXJuIGk8PW8/dGhpcy5sZWZ0LnNsaWNlKHIsaSk6cj49bz90aGlzLnJpZ2h0LnNsaWNlKHItbyxpLW8pOnRoaXMubGVmdC5zbGljZShyLG8pLmFwcGVuZCh0aGlzLnJpZ2h0LnNsaWNlKDAsaS1vKSl9LCJzbGljZUlubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1zKGZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMucmlnaHQubGVhZkFwcGVuZChyKTtpZihpKXJldHVybiBuZXcgZSh0aGlzLmxlZnQsaSl9LCJsZWFmQXBwZW5kIiksZS5wcm90b3R5cGUubGVhZlByZXBlbmQ9cyhmdW5jdGlvbihyKXt2YXIgaT10aGlzLmxlZnQubGVhZlByZXBlbmQocik7aWYoaSlyZXR1cm4gbmV3IGUoaSx0aGlzLnJpZ2h0KX0sImxlYWZQcmVwZW5kIiksZS5wcm90b3R5cGUuYXBwZW5kSW5uZXI9cyhmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5sZWZ0LmRlcHRoPj1NYXRoLm1heCh0aGlzLnJpZ2h0LmRlcHRoLHIuZGVwdGgpKzE/bmV3IGUodGhpcy5sZWZ0LG5ldyBlKHRoaXMucmlnaHQscikpOm5ldyBlKHRoaXMscil9LCJhcHBlbmRJbm5lciIpLGV9KShjaSksVVplPWNpfSk7ZnVuY3Rpb24gZElhKGEsZSl7bGV0IHQ7cmV0dXJuIGEuZm9yRWFjaCgocixpKT0+e2lmKHIuc2VsZWN0aW9uJiZlLS09PTApcmV0dXJuIHQ9aSwhMX0pLGEuc2xpY2UodCl9ZnVuY3Rpb24gcElhKGEsZSx0LHIpe2xldCBpPXQuZ2V0TWV0YShhbCksbztpZihpKXJldHVybiBpLmhpc3RvcnlTdGF0ZTt0LmdldE1ldGEoWTFhKSYmKGE9bmV3IHRsKGEuZG9uZSxhLnVuZG9uZSxudWxsLDAsLTEpKTtsZXQgbj10LmdldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iKTtpZih0LnN0ZXBzLmxlbmd0aD09MClyZXR1cm4gYTtpZihuJiZuLmdldE1ldGEoYWwpKXJldHVybiBuLmdldE1ldGEoYWwpLnJlZG8/bmV3IHRsKGEuZG9uZS5hZGRUcmFuc2Zvcm0odCx2b2lkIDAscixqcmUoZSkpLGEudW5kb25lLFcxYSh0Lm1hcHBpbmcubWFwcyksYS5wcmV2VGltZSxhLnByZXZDb21wb3NpdGlvbik6bmV3IHRsKGEuZG9uZSxhLnVuZG9uZS5hZGRUcmFuc2Zvcm0odCx2b2lkIDAscixqcmUoZSkpLG51bGwsYS5wcmV2VGltZSxhLnByZXZDb21wb3NpdGlvbik7aWYodC5nZXRNZXRhKCJhZGRUb0hpc3RvcnkiKSE9PSExJiYhKG4mJm4uZ2V0TWV0YSgiYWRkVG9IaXN0b3J5Iik9PT0hMSkpe2xldCBsPXQuZ2V0TWV0YSgiY29tcG9zaXRpb24iKSxkPWEucHJldlRpbWU9PTB8fCFuJiZhLnByZXZDb21wb3NpdGlvbiE9bCYmKGEucHJldlRpbWU8KHQudGltZXx8MCktci5uZXdHcm91cERlbGF5fHwhZklhKHQsYS5wcmV2UmFuZ2VzKSksYz1uP1daZShhLnByZXZSYW5nZXMsdC5tYXBwaW5nKTpXMWEodC5tYXBwaW5nLm1hcHMpO3JldHVybiBuZXcgdGwoYS5kb25lLmFkZFRyYW5zZm9ybSh0LGQ/ZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKTp2b2lkIDAscixqcmUoZSkpLHM1LmVtcHR5LGMsdC50aW1lLGw/P2EucHJldkNvbXBvc2l0aW9uKX1lbHNlIHJldHVybihvPXQuZ2V0TWV0YSgicmViYXNlZCIpKT9uZXcgdGwoYS5kb25lLnJlYmFzZWQodCxvKSxhLnVuZG9uZS5yZWJhc2VkKHQsbyksV1plKGEucHJldlJhbmdlcyx0Lm1hcHBpbmcpLGEucHJldlRpbWUsYS5wcmV2Q29tcG9zaXRpb24pOm5ldyB0bChhLmRvbmUuYWRkTWFwcyh0Lm1hcHBpbmcubWFwcyksYS51bmRvbmUuYWRkTWFwcyh0Lm1hcHBpbmcubWFwcyksV1plKGEucHJldlJhbmdlcyx0Lm1hcHBpbmcpLGEucHJldlRpbWUsYS5wcmV2Q29tcG9zaXRpb24pfWZ1bmN0aW9uIGZJYShhLGUpe2lmKCFlKXJldHVybiExO2lmKCFhLmRvY0NoYW5nZWQpcmV0dXJuITA7bGV0IHQ9ITE7cmV0dXJuIGEubWFwcGluZy5tYXBzWzBdLmZvckVhY2goKHIsaSk9Pntmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rPTIpcjw9ZVtvKzFdJiZpPj1lW29dJiYodD0hMCl9KSx0fWZ1bmN0aW9uIFcxYShhKXtsZXQgZT1bXTtmb3IobGV0IHQ9YS5sZW5ndGgtMTt0Pj0wJiZlLmxlbmd0aD09MDt0LS0pYVt0XS5mb3JFYWNoKChyLGksbyxuKT0+ZS5wdXNoKG8sbikpO3JldHVybiBlfWZ1bmN0aW9uIFdaZShhLGUpe2lmKCFhKXJldHVybiBudWxsO2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGg7cis9Mil7bGV0IGk9ZS5tYXAoYVtyXSwxKSxvPWUubWFwKGFbcisxXSwtMSk7aTw9byYmdC5wdXNoKGksbyl9cmV0dXJuIHR9ZnVuY3Rpb24gaElhKGEsZSx0KXtsZXQgcj1qcmUoZSksaT1hbC5nZXQoZSkuc3BlYy5jb25maWcsbz0odD9hLnVuZG9uZTphLmRvbmUpLnBvcEV2ZW50KGUscik7aWYoIW8pcmV0dXJuIG51bGw7bGV0IG49by5zZWxlY3Rpb24ucmVzb2x2ZShvLnRyYW5zZm9ybS5kb2MpLGw9KHQ/YS5kb25lOmEudW5kb25lKS5hZGRUcmFuc2Zvcm0oby50cmFuc2Zvcm0sZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKSxpLHIpLGQ9bmV3IHRsKHQ/bDpvLnJlbWFpbmluZyx0P28ucmVtYWluaW5nOmwsbnVsbCwwLC0xKTtyZXR1cm4gby50cmFuc2Zvcm0uc2V0U2VsZWN0aW9uKG4pLnNldE1ldGEoYWwse3JlZG86dCxoaXN0b3J5U3RhdGU6ZH0pfWZ1bmN0aW9uIGpyZShhKXtsZXQgZT1hLnBsdWdpbnM7aWYoRzFhIT1lKXtHWmU9ITEsRzFhPWU7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS5zcGVjLmhpc3RvcnlQcmVzZXJ2ZUl0ZW1zKXtHWmU9ITA7YnJlYWt9fXJldHVybiBHWmV9ZnVuY3Rpb24gbUlhKGEpe3JldHVybiBhLnNldE1ldGEoWTFhLCEwKX1mdW5jdGlvbiBZWmUoYT17fSl7cmV0dXJuIGE9e2RlcHRoOmEuZGVwdGh8fDEwMCxuZXdHcm91cERlbGF5OmEubmV3R3JvdXBEZWxheXx8NTAwfSxuZXcgYXIoe2tleTphbCxzdGF0ZTp7aW5pdCgpe3JldHVybiBuZXcgdGwoczUuZW1wdHksczUuZW1wdHksbnVsbCwwLC0xKX0sYXBwbHkoZSx0LHIpe3JldHVybiBwSWEodCxyLGUsYSl9fSxjb25maWc6YSxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntiZWZvcmVpbnB1dChlLHQpe2xldCByPXQuaW5wdXRUeXBlLGk9cj09Imhpc3RvcnlVbmRvIj9XcmU6cj09Imhpc3RvcnlSZWRvIj9HcmU6bnVsbDtyZXR1cm4haXx8IWUuZWRpdGFibGU/ITE6KHQucHJldmVudERlZmF1bHQoKSxpKGUuc3RhdGUsZS5kaXNwYXRjaCkpfX19fSl9ZnVuY3Rpb24gVXJlKGEsZSl7cmV0dXJuKHQscik9PntsZXQgaT1hbC5nZXRTdGF0ZSh0KTtpZighaXx8KGE/aS51bmRvbmU6aS5kb25lKS5ldmVudENvdW50PT0wKXJldHVybiExO2lmKHIpe2xldCBvPWhJYShpLHQsYSk7byYmcihlP28uc2Nyb2xsSW50b1ZpZXcoKTpvKX1yZXR1cm4hMH19ZnVuY3Rpb24gdklhKGEpe2xldCBlPWFsLmdldFN0YXRlKGEpO3JldHVybiBlP2UuZG9uZS5ldmVudENvdW50OjB9ZnVuY3Rpb24geElhKGEpe2xldCBlPWFsLmdldFN0YXRlKGEpO3JldHVybiBlP2UudW5kb25lLmV2ZW50Q291bnQ6MH1mdW5jdGlvbiB5SWEoYSl7cmV0dXJuIGEuZ2V0TWV0YShhbCkhPW51bGx9dmFyIGNJYSxzNSxlbCx0bCx1SWEsR1plLEcxYSxhbCxZMWEsV3JlLEdyZSxnSWEsYklhLEsxYT1mKCgpPT57VTFhKCk7aDQoKTttYygpO2NJYT01MDAsczU9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJCcmFuY2giKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuaXRlbXM9ZSx0aGlzLmV2ZW50Q291bnQ9dH1wb3BFdmVudChlLHQpe2lmKHRoaXMuZXZlbnRDb3VudD09MClyZXR1cm4gbnVsbDtsZXQgcj10aGlzLml0ZW1zLmxlbmd0aDtmb3IoOztyLS0paWYodGhpcy5pdGVtcy5nZXQoci0xKS5zZWxlY3Rpb24pey0tcjticmVha31sZXQgaSxvO3QmJihpPXRoaXMucmVtYXBwaW5nKHIsdGhpcy5pdGVtcy5sZW5ndGgpLG89aS5tYXBzLmxlbmd0aCk7bGV0IG49ZS50cixsLGQsYz1bXSxwPVtdO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKHUsbSk9PntpZighdS5zdGVwKXtpfHwoaT10aGlzLnJlbWFwcGluZyhyLG0rMSksbz1pLm1hcHMubGVuZ3RoKSxvLS0scC5wdXNoKHUpO3JldHVybn1pZihpKXtwLnB1c2gobmV3IGVsKHUubWFwKSk7bGV0IHY9dS5zdGVwLm1hcChpLnNsaWNlKG8pKSx4O3YmJm4ubWF5YmVTdGVwKHYpLmRvYyYmKHg9bi5tYXBwaW5nLm1hcHNbbi5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLGMucHVzaChuZXcgZWwoeCx2b2lkIDAsdm9pZCAwLGMubGVuZ3RoK3AubGVuZ3RoKSkpLG8tLSx4JiZpLmFwcGVuZE1hcCh4LG8pfWVsc2Ugbi5tYXliZVN0ZXAodS5zdGVwKTtpZih1LnNlbGVjdGlvbilyZXR1cm4gbD1pP3Uuc2VsZWN0aW9uLm1hcChpLnNsaWNlKG8pKTp1LnNlbGVjdGlvbixkPW5ldyBhKHRoaXMuaXRlbXMuc2xpY2UoMCxyKS5hcHBlbmQocC5yZXZlcnNlKCkuY29uY2F0KGMpKSx0aGlzLmV2ZW50Q291bnQtMSksITF9LHRoaXMuaXRlbXMubGVuZ3RoLDApLHtyZW1haW5pbmc6ZCx0cmFuc2Zvcm06bixzZWxlY3Rpb246bH19YWRkVHJhbnNmb3JtKGUsdCxyLGkpe2xldCBvPVtdLG49dGhpcy5ldmVudENvdW50LGw9dGhpcy5pdGVtcyxkPSFpJiZsLmxlbmd0aD9sLmdldChsLmxlbmd0aC0xKTpudWxsO2ZvcihsZXQgcD0wO3A8ZS5zdGVwcy5sZW5ndGg7cCsrKXtsZXQgdT1lLnN0ZXBzW3BdLmludmVydChlLmRvY3NbcF0pLG09bmV3IGVsKGUubWFwcGluZy5tYXBzW3BdLHUsdCksdjsodj1kJiZkLm1lcmdlKG0pKSYmKG09dixwP28ucG9wKCk6bD1sLnNsaWNlKDAsbC5sZW5ndGgtMSkpLG8ucHVzaChtKSx0JiYobisrLHQ9dm9pZCAwKSxpfHwoZD1tKX1sZXQgYz1uLXIuZGVwdGg7cmV0dXJuIGM+dUlhJiYobD1kSWEobCxjKSxuLT1jKSxuZXcgYShsLmFwcGVuZChvKSxuKX1yZW1hcHBpbmcoZSx0KXtsZXQgcj1uZXcgZ207cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCgoaSxvKT0+e2xldCBuPWkubWlycm9yT2Zmc2V0IT1udWxsJiZvLWkubWlycm9yT2Zmc2V0Pj1lP3IubWFwcy5sZW5ndGgtaS5taXJyb3JPZmZzZXQ6dm9pZCAwO3IuYXBwZW5kTWFwKGkubWFwLG4pfSxlLHQpLHJ9YWRkTWFwcyhlKXtyZXR1cm4gdGhpcy5ldmVudENvdW50PT0wP3RoaXM6bmV3IGEodGhpcy5pdGVtcy5hcHBlbmQoZS5tYXAodD0+bmV3IGVsKHQpKSksdGhpcy5ldmVudENvdW50KX1yZWJhc2VkKGUsdCl7aWYoIXRoaXMuZXZlbnRDb3VudClyZXR1cm4gdGhpcztsZXQgcj1bXSxpPU1hdGgubWF4KDAsdGhpcy5pdGVtcy5sZW5ndGgtdCksbz1lLm1hcHBpbmcsbj1lLnN0ZXBzLmxlbmd0aCxsPXRoaXMuZXZlbnRDb3VudDt0aGlzLml0ZW1zLmZvckVhY2gobT0+e20uc2VsZWN0aW9uJiZsLS19LGkpO2xldCBkPXQ7dGhpcy5pdGVtcy5mb3JFYWNoKG09PntsZXQgdj1vLmdldE1pcnJvcigtLWQpO2lmKHY9PW51bGwpcmV0dXJuO249TWF0aC5taW4obix2KTtsZXQgeD1vLm1hcHNbdl07aWYobS5zdGVwKXtsZXQgYj1lLnN0ZXBzW3ZdLmludmVydChlLmRvY3Nbdl0pLGc9bS5zZWxlY3Rpb24mJm0uc2VsZWN0aW9uLm1hcChvLnNsaWNlKGQrMSx2KSk7ZyYmbCsrLHIucHVzaChuZXcgZWwoeCxiLGcpKX1lbHNlIHIucHVzaChuZXcgZWwoeCkpfSxpKTtsZXQgYz1bXTtmb3IobGV0IG09dDttPG47bSsrKWMucHVzaChuZXcgZWwoby5tYXBzW21dKSk7bGV0IHA9dGhpcy5pdGVtcy5zbGljZSgwLGkpLmFwcGVuZChjKS5hcHBlbmQociksdT1uZXcgYShwLGwpO3JldHVybiB1LmVtcHR5SXRlbUNvdW50KCk+Y0lhJiYodT11LmNvbXByZXNzKHRoaXMuaXRlbXMubGVuZ3RoLXIubGVuZ3RoKSksdX1lbXB0eUl0ZW1Db3VudCgpe2xldCBlPTA7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCh0PT57dC5zdGVwfHxlKyt9KSxlfWNvbXByZXNzKGU9dGhpcy5pdGVtcy5sZW5ndGgpe2xldCB0PXRoaXMucmVtYXBwaW5nKDAsZSkscj10Lm1hcHMubGVuZ3RoLGk9W10sbz0wO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKG4sbCk9PntpZihsPj1lKWkucHVzaChuKSxuLnNlbGVjdGlvbiYmbysrO2Vsc2UgaWYobi5zdGVwKXtsZXQgZD1uLnN0ZXAubWFwKHQuc2xpY2UocikpLGM9ZCYmZC5nZXRNYXAoKTtpZihyLS0sYyYmdC5hcHBlbmRNYXAoYyxyKSxkKXtsZXQgcD1uLnNlbGVjdGlvbiYmbi5zZWxlY3Rpb24ubWFwKHQuc2xpY2UocikpO3AmJm8rKztsZXQgdT1uZXcgZWwoYy5pbnZlcnQoKSxkLHApLG0sdj1pLmxlbmd0aC0xOyhtPWkubGVuZ3RoJiZpW3ZdLm1lcmdlKHUpKT9pW3ZdPW06aS5wdXNoKHUpfX1lbHNlIG4ubWFwJiZyLS19LHRoaXMuaXRlbXMubGVuZ3RoLDApLG5ldyBhKFVaZS5mcm9tKGkucmV2ZXJzZSgpKSxvKX19O3M1LmVtcHR5PW5ldyBzNShVWmUuZW1wdHksMCk7cyhkSWEsImN1dE9mZkV2ZW50cyIpO2VsPWNsYXNzIGF7c3RhdGlje3ModGhpcywiSXRlbSIpfWNvbnN0cnVjdG9yKGUsdCxyLGkpe3RoaXMubWFwPWUsdGhpcy5zdGVwPXQsdGhpcy5zZWxlY3Rpb249cix0aGlzLm1pcnJvck9mZnNldD1pfW1lcmdlKGUpe2lmKHRoaXMuc3RlcCYmZS5zdGVwJiYhZS5zZWxlY3Rpb24pe2xldCB0PWUuc3RlcC5tZXJnZSh0aGlzLnN0ZXApO2lmKHQpcmV0dXJuIG5ldyBhKHQuZ2V0TWFwKCkuaW52ZXJ0KCksdCx0aGlzLnNlbGVjdGlvbil9fX0sdGw9Y2xhc3N7c3RhdGlje3ModGhpcywiSGlzdG9yeVN0YXRlIil9Y29uc3RydWN0b3IoZSx0LHIsaSxvKXt0aGlzLmRvbmU9ZSx0aGlzLnVuZG9uZT10LHRoaXMucHJldlJhbmdlcz1yLHRoaXMucHJldlRpbWU9aSx0aGlzLnByZXZDb21wb3NpdGlvbj1vfX0sdUlhPTIwO3MocElhLCJhcHBseVRyYW5zYWN0aW9uIik7cyhmSWEsImlzQWRqYWNlbnRUbyIpO3MoVzFhLCJyYW5nZXNGb3IiKTtzKFdaZSwibWFwUmFuZ2VzIik7cyhoSWEsImhpc3RUcmFuc2FjdGlvbiIpO0daZT0hMSxHMWE9bnVsbDtzKGpyZSwibXVzdFByZXNlcnZlSXRlbXMiKTtzKG1JYSwiY2xvc2VIaXN0b3J5Iik7YWw9bmV3IGJzKCJoaXN0b3J5IiksWTFhPW5ldyBicygiY2xvc2VIaXN0b3J5Iik7cyhZWmUsImhpc3RvcnkiKTtzKFVyZSwiYnVpbGRDb21tYW5kIik7V3JlPVVyZSghMSwhMCksR3JlPVVyZSghMCwhMCksZ0lhPVVyZSghMSwhMSksYklhPVVyZSghMCwhMSk7cyh2SWEsInVuZG9EZXB0aCIpO3MoeElhLCJyZWRvRGVwdGgiKTtzKHlJYSwiaXNIaXN0b3J5VHJhbnNhY3Rpb24iKX0pO3ZhciBaMWE9ZigoKT0+e0sxYSgpfSk7dmFyIFlyZSxYMWE9ZigoKT0+e2dyKCk7WjFhKCk7WXJlPXdyLmNyZWF0ZSh7bmFtZToiaGlzdG9yeSIsYWRkT3B0aW9ucygpe3JldHVybntkZXB0aDoxMDAsbmV3R3JvdXBEZWxheTo1MDB9fSxhZGRDb21tYW5kcygpe3JldHVybnt1bmRvOnMoKCk9Pih7c3RhdGU6YSxkaXNwYXRjaDplfSk9PldyZShhLGUpLCJ1bmRvIikscmVkbzpzKCgpPT4oe3N0YXRlOmEsZGlzcGF0Y2g6ZX0pPT5HcmUoYSxlKSwicmVkbyIpfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW1laZSh0aGlzLm9wdGlvbnMpXX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC16IjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy51bmRvKCksIk1vZC16IiksIlNoaWZ0LU1vZC16IjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC16IiksIk1vZC15IjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIk1vZC15IiksIk1vZC1cdTA0NEYiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnVuZG8oKSwiTW9kLVx1MDQ0RiIpLCJTaGlmdC1Nb2QtXHUwNDRGIjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC1cdTA0NEYiKX19fSl9KTt2YXIgS3JlLFExYT1mKCgpPT57Z3IoKTtaVSgpO0tyZT1vci5jcmVhdGUoe25hbWU6Imhvcml6b250YWxSdWxlIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0sZ3JvdXA6ImJsb2NrIixwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoiaHIifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOmF9KXtyZXR1cm5bImhyIix6YSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsYSldfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIb3Jpem9udGFsUnVsZTpzKCgpPT4oe2NoYWluOmEsc3RhdGU6ZX0pPT57aWYoIURyZShlLGUuc2NoZW1hLm5vZGVzW3RoaXMubmFtZV0pKXJldHVybiExO2xldHtzZWxlY3Rpb246dH09ZSx7JGZyb206ciwkdG86aX09dCxvPWEoKTtyZXR1cm4gci5wYXJlbnRPZmZzZXQ9PT0wP28uaW5zZXJ0Q29udGVudEF0KHtmcm9tOk1hdGgubWF4KHIucG9zLTEsMCksdG86aS5wb3N9LHt0eXBlOnRoaXMubmFtZX0pOkxyZSh0KT9vLmluc2VydENvbnRlbnRBdChpLnBvcyx7dHlwZTp0aGlzLm5hbWV9KTpvLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSksby5jb21tYW5kKCh7dHI6bixkaXNwYXRjaDpsfSk9Pnt2YXIgZDtpZihsKXtsZXR7JHRvOmN9PW4uc2VsZWN0aW9uLHA9Yy5lbmQoKTtpZihjLm5vZGVBZnRlciljLm5vZGVBZnRlci5pc1RleHRibG9jaz9uLnNldFNlbGVjdGlvbihOdC5jcmVhdGUobi5kb2MsYy5wb3MrMSkpOmMubm9kZUFmdGVyLmlzQmxvY2s/bi5zZXRTZWxlY3Rpb24oa3QuY3JlYXRlKG4uZG9jLGMucG9zKSk6bi5zZXRTZWxlY3Rpb24oTnQuY3JlYXRlKG4uZG9jLGMucG9zKSk7ZWxzZXtsZXQgdT0oZD1jLnBhcmVudC50eXBlLmNvbnRlbnRNYXRjaC5kZWZhdWx0VHlwZSk9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLmNyZWF0ZSgpO3UmJihuLmluc2VydChwLHUpLG4uc2V0U2VsZWN0aW9uKE50LmNyZWF0ZShuLmRvYyxwKzEpKSl9bi5zY3JvbGxJbnRvVmlldygpfXJldHVybiEwfSkucnVuKCl9LCJzZXRIb3Jpem9udGFsUnVsZSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVyblskcmUoe2ZpbmQ6L14oPzotLS184oCULXxfX19cc3xcKlwqXCpccykkLyx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBKMWEsZTJhLHQyYSxhMmEsWnJlLHIyYT1mKCgpPT57Z3IoKTtKMWE9Lyg/Ol58XHMpKFwqKD8hXHMrXCopKCg/OlteKl0rKSlcKig/IVxzK1wqKSkkLyxlMmE9Lyg/Ol58XHMpKFwqKD8hXHMrXCopKCg/OlteKl0rKSlcKig/IVxzK1wqKSkvZyx0MmE9Lyg/Ol58XHMpKF8oPyFccytfKSgoPzpbXl9dKykpXyg/IVxzK18pKSQvLGEyYT0vKD86XnxccykoXyg/IVxzK18pKCg/OlteX10rKSlfKD8hXHMrXykpL2csWnJlPW5pLmNyZWF0ZSh7bmFtZToiaXRhbGljIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImVtIn0se3RhZzoiaSIsZ2V0QXR0cnM6cyhhPT5hLnN0eWxlLmZvbnRTdHlsZSE9PSJub3JtYWwiJiZudWxsLCJnZXRBdHRycyIpfSx7c3R5bGU6ImZvbnQtc3R5bGU9bm9ybWFsIixjbGVhck1hcms6cyhhPT5hLnR5cGUubmFtZT09PXRoaXMubmFtZSwiY2xlYXJNYXJrIil9LHtzdHlsZToiZm9udC1zdHlsZT1pdGFsaWMifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOmF9KXtyZXR1cm5bImVtIix6YSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsYSksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEl0YWxpYzpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+YS5zZXRNYXJrKHRoaXMubmFtZSksInNldEl0YWxpYyIpLHRvZ2dsZUl0YWxpYzpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+YS50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZUl0YWxpYyIpLHVuc2V0SXRhbGljOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldEl0YWxpYyIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1pIjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVJdGFsaWMoKSwiTW9kLWkiKSwiTW9kLUkiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUl0YWxpYygpLCJNb2QtSSIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltCbih7ZmluZDpKMWEsdHlwZTp0aGlzLnR5cGV9KSxCbih7ZmluZDp0MmEsdHlwZTp0aGlzLnR5cGV9KV19LGFkZFBhc3RlUnVsZXMoKXtyZXR1cm5bT28oe2ZpbmQ6ZTJhLHR5cGU6dGhpcy50eXBlfSksT28oe2ZpbmQ6YTJhLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIFhyZSxzMmE9ZigoKT0+e2dyKCk7WHJlPW9yLmNyZWF0ZSh7bmFtZToibGlzdEl0ZW0iLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e30sYnVsbGV0TGlzdFR5cGVOYW1lOiJidWxsZXRMaXN0IixvcmRlcmVkTGlzdFR5cGVOYW1lOiJvcmRlcmVkTGlzdCJ9fSxjb250ZW50OiJwYXJhZ3JhcGggYmxvY2sqIixkZWZpbmluZzohMCxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoibGkifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOmF9KXtyZXR1cm5bImxpIix6YSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsYSksMF19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJue0VudGVyOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNwbGl0TGlzdEl0ZW0odGhpcy5uYW1lKSwiRW50ZXIiKSxUYWI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2lua0xpc3RJdGVtKHRoaXMubmFtZSksIlRhYiIpLCJTaGlmdC1UYWIiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmxpZnRMaXN0SXRlbSh0aGlzLm5hbWUpLCJTaGlmdC1UYWIiKX19fSl9KTt2YXIgd0lhLGkyYSxLWmUsUXJlLG8yYT1mKCgpPT57Z3IoKTt3SWE9Imxpc3RJdGVtIixpMmE9InRleHRTdHlsZSIsS1plPS9eKFxkKylcLlxzJC8sUXJlPW9yLmNyZWF0ZSh7bmFtZToib3JkZXJlZExpc3QiLGFkZE9wdGlvbnMoKXtyZXR1cm57aXRlbVR5cGVOYW1lOiJsaXN0SXRlbSIsSFRNTEF0dHJpYnV0ZXM6e30sa2VlcE1hcmtzOiExLGtlZXBBdHRyaWJ1dGVzOiExfX0sZ3JvdXA6ImJsb2NrIGxpc3QiLGNvbnRlbnQoKXtyZXR1cm5gJHt0aGlzLm9wdGlvbnMuaXRlbVR5cGVOYW1lfStgfSxhZGRBdHRyaWJ1dGVzKCl7cmV0dXJue3N0YXJ0OntkZWZhdWx0OjEscGFyc2VIVE1MOnMoYT0+YS5oYXNBdHRyaWJ1dGUoInN0YXJ0Iik/cGFyc2VJbnQoYS5nZXRBdHRyaWJ1dGUoInN0YXJ0Iil8fCIiLDEwKToxLCJwYXJzZUhUTUwiKX0sdHlwZTp7ZGVmYXVsdDpudWxsLHBhcnNlSFRNTDpzKGE9PmEuZ2V0QXR0cmlidXRlKCJ0eXBlIiksInBhcnNlSFRNTCIpfX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJvbCJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6YX0pe2xldHtzdGFydDplLC4uLnR9PWE7cmV0dXJuIGU9PT0xP1sib2wiLHphKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXTpbIm9sIix6YSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsYSksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3RvZ2dsZU9yZGVyZWRMaXN0OnMoKCk9Pih7Y29tbWFuZHM6YSxjaGFpbjplfSk9PnRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcz9lKCkudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKS51cGRhdGVBdHRyaWJ1dGVzKHdJYSx0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKGkyYSkpLnJ1bigpOmEudG9nZ2xlTGlzdCh0aGlzLm5hbWUsdGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZSx0aGlzLm9wdGlvbnMua2VlcE1hcmtzKSwidG9nZ2xlT3JkZXJlZExpc3QiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtNyI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlT3JkZXJlZExpc3QoKSwiTW9kLVNoaWZ0LTciKX19LGFkZElucHV0UnVsZXMoKXtsZXQgYT1KMih7ZmluZDpLWmUsdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczpzKGU9Pih7c3RhcnQ6K2VbMV19KSwiZ2V0QXR0cmlidXRlcyIpLGpvaW5QcmVkaWNhdGU6cygoZSx0KT0+dC5jaGlsZENvdW50K3QuYXR0cnMuc3RhcnQ9PT0rZVsxXSwiam9pblByZWRpY2F0ZSIpfSk7cmV0dXJuKHRoaXMub3B0aW9ucy5rZWVwTWFya3N8fHRoaXMub3B0aW9ucy5rZWVwQXR0cmlidXRlcykmJihhPUoyKHtmaW5kOktaZSx0eXBlOnRoaXMudHlwZSxrZWVwTWFya3M6dGhpcy5vcHRpb25zLmtlZXBNYXJrcyxrZWVwQXR0cmlidXRlczp0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMsZ2V0QXR0cmlidXRlczpzKGU9Pih7c3RhcnQ6K2VbMV0sLi4udGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhpMmEpfSksImdldEF0dHJpYnV0ZXMiKSxqb2luUHJlZGljYXRlOnMoKGUsdCk9PnQuY2hpbGRDb3VudCt0LmF0dHJzLnN0YXJ0PT09K2VbMV0sImpvaW5QcmVkaWNhdGUiKSxlZGl0b3I6dGhpcy5lZGl0b3J9KSksW2FdfX0pfSk7dmFyIEpyZSxuMmE9ZigoKT0+e2dyKCk7SnJlPW9yLmNyZWF0ZSh7bmFtZToicGFyYWdyYXBoIixwcmlvcml0eToxZTMsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGdyb3VwOiJibG9jayIsY29udGVudDoiaW5saW5lKiIscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InAifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOmF9KXtyZXR1cm5bInAiLHphKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxhKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0UGFyYWdyYXBoOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnNldE5vZGUodGhpcy5uYW1lKSwic2V0UGFyYWdyYXBoIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLUFsdC0wIjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZXRQYXJhZ3JhcGgoKSwiTW9kLUFsdC0wIil9fX0pfSk7dmFyIGwyYSxjMmEsZXNlLGQyYT1mKCgpPT57Z3IoKTtsMmE9Lyg/Ol58XHMpKH5+KD8hXHMrfn4pKCg/Oltefl0rKSl+fig/IVxzK35+KSkkLyxjMmE9Lyg/Ol58XHMpKH5+KD8hXHMrfn4pKCg/Oltefl0rKSl+fig/IVxzK35+KSkvZyxlc2U9bmkuY3JlYXRlKHtuYW1lOiJzdHJpa2UiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoicyJ9LHt0YWc6ImRlbCJ9LHt0YWc6InN0cmlrZSJ9LHtzdHlsZToidGV4dC1kZWNvcmF0aW9uIixjb25zdW1pbmc6ITEsZ2V0QXR0cnM6cyhhPT5hLmluY2x1ZGVzKCJsaW5lLXRocm91Z2giKT97fTohMSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczphfSl7cmV0dXJuWyJzIix6YSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsYSksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFN0cmlrZTpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+YS5zZXRNYXJrKHRoaXMubmFtZSksInNldFN0cmlrZSIpLHRvZ2dsZVN0cmlrZTpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+YS50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZVN0cmlrZSIpLHVuc2V0U3RyaWtlOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldFN0cmlrZSIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1TaGlmdC1zIjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVTdHJpa2UoKSwiTW9kLVNoaWZ0LXMiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bQm4oe2ZpbmQ6bDJhLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW09vKHtmaW5kOmMyYSx0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciB0c2UsdTJhPWYoKCk9PntncigpO3RzZT1vci5jcmVhdGUoe25hbWU6InRleHQiLGdyb3VwOiJpbmxpbmUifSl9KTt2YXIgcDJhPXt9O2x0KHAyYSx7U3RhcnRlcktpdDooKT0+WlplLGRlZmF1bHQ6KCk9PlpaZX0pO3ZhciBaWmUsZjJhPWYoKCk9PntncigpO3kxYSgpO3oxYSgpO18xYSgpOyQxYSgpO1AxYSgpO0UxYSgpO1IxYSgpO0gxYSgpO3ExYSgpO1YxYSgpO1gxYSgpO1ExYSgpO3IyYSgpO3MyYSgpO28yYSgpO24yYSgpO2QyYSgpO3UyYSgpO1paZT13ci5jcmVhdGUoe25hbWU6InN0YXJ0ZXJLaXQiLGFkZEV4dGVuc2lvbnMoKXtsZXQgYT1bXTtyZXR1cm4gdGhpcy5vcHRpb25zLmJvbGQhPT0hMSYmYS5wdXNoKFByZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmJvbGQpKSx0aGlzLm9wdGlvbnMuYmxvY2txdW90ZSE9PSExJiZhLnB1c2goQXJlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuYmxvY2txdW90ZSkpLHRoaXMub3B0aW9ucy5idWxsZXRMaXN0IT09ITEmJmEucHVzaChFcmUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5idWxsZXRMaXN0KSksdGhpcy5vcHRpb25zLmNvZGUhPT0hMSYmYS5wdXNoKElyZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmNvZGUpKSx0aGlzLm9wdGlvbnMuY29kZUJsb2NrIT09ITEmJmEucHVzaChOcmUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5jb2RlQmxvY2spKSx0aGlzLm9wdGlvbnMuZG9jdW1lbnQhPT0hMSYmYS5wdXNoKFJyZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmRvY3VtZW50KSksdGhpcy5vcHRpb25zLmRyb3BjdXJzb3IhPT0hMSYmYS5wdXNoKE9yZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmRyb3BjdXJzb3IpKSx0aGlzLm9wdGlvbnMuZ2FwY3Vyc29yIT09ITEmJmEucHVzaChCcmUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5nYXBjdXJzb3IpKSx0aGlzLm9wdGlvbnMuaGFyZEJyZWFrIT09ITEmJmEucHVzaChIcmUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5oYXJkQnJlYWspKSx0aGlzLm9wdGlvbnMuaGVhZGluZyE9PSExJiZhLnB1c2gocXJlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaGVhZGluZykpLHRoaXMub3B0aW9ucy5oaXN0b3J5IT09ITEmJmEucHVzaChZcmUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5oaXN0b3J5KSksdGhpcy5vcHRpb25zLmhvcml6b250YWxSdWxlIT09ITEmJmEucHVzaChLcmUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5ob3Jpem9udGFsUnVsZSkpLHRoaXMub3B0aW9ucy5pdGFsaWMhPT0hMSYmYS5wdXNoKFpyZS5jb25maWd1cmUodGhpcy5vcHRpb25zLml0YWxpYykpLHRoaXMub3B0aW9ucy5saXN0SXRlbSE9PSExJiZhLnB1c2goWHJlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMubGlzdEl0ZW0pKSx0aGlzLm9wdGlvbnMub3JkZXJlZExpc3QhPT0hMSYmYS5wdXNoKFFyZS5jb25maWd1cmUodGhpcy5vcHRpb25zLm9yZGVyZWRMaXN0KSksdGhpcy5vcHRpb25zLnBhcmFncmFwaCE9PSExJiZhLnB1c2goSnJlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMucGFyYWdyYXBoKSksdGhpcy5vcHRpb25zLnN0cmlrZSE9PSExJiZhLnB1c2goZXNlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuc3RyaWtlKSksdGhpcy5vcHRpb25zLnRleHQhPT0hMSYmYS5wdXNoKHRzZS5jb25maWd1cmUodGhpcy5vcHRpb25zLnRleHQpKSxhfX0pfSk7dmFyIGgyYT17fTtsdChoMmEse1VuZGVybGluZTooKT0+WFplLGRlZmF1bHQ6KCk9PlhaZX0pO3ZhciBYWmUsbTJhPWYoKCk9PntncigpO1haZT1uaS5jcmVhdGUoe25hbWU6InVuZGVybGluZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJ1In0se3N0eWxlOiJ0ZXh0LWRlY29yYXRpb24iLGNvbnN1bWluZzohMSxnZXRBdHRyczpzKGE9PmEuaW5jbHVkZXMoInVuZGVybGluZSIpP3t9OiExLCJnZXRBdHRycyIpfV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOmF9KXtyZXR1cm5bInUiLHphKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyxhKSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0VW5kZXJsaW5lOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnNldE1hcmsodGhpcy5uYW1lKSwic2V0VW5kZXJsaW5lIiksdG9nZ2xlVW5kZXJsaW5lOnMoKCk9Pih7Y29tbWFuZHM6YX0pPT5hLnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlVW5kZXJsaW5lIiksdW5zZXRVbmRlcmxpbmU6cygoKT0+KHtjb21tYW5kczphfSk9PmEudW5zZXRNYXJrKHRoaXMubmFtZSksInVuc2V0VW5kZXJsaW5lIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLXUiOnMoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZVVuZGVybGluZSgpLCJNb2QtdSIpLCJNb2QtVSI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlVW5kZXJsaW5lKCksIk1vZC1VIil9fX0pfSk7dmFyIGcyYT17fTtsdChnMmEse1RleHRBbGlnbjooKT0+UVplLGRlZmF1bHQ6KCk9PlFaZX0pO3ZhciBRWmUsYjJhPWYoKCk9PntncigpO1FaZT13ci5jcmVhdGUoe25hbWU6InRleHRBbGlnbiIsYWRkT3B0aW9ucygpe3JldHVybnt0eXBlczpbXSxhbGlnbm1lbnRzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0IiwianVzdGlmeSJdLGRlZmF1bHRBbGlnbm1lbnQ6bnVsbH19LGFkZEdsb2JhbEF0dHJpYnV0ZXMoKXtyZXR1cm5be3R5cGVzOnRoaXMub3B0aW9ucy50eXBlcyxhdHRyaWJ1dGVzOnt0ZXh0QWxpZ246e2RlZmF1bHQ6dGhpcy5vcHRpb25zLmRlZmF1bHRBbGlnbm1lbnQscGFyc2VIVE1MOnMoYT0+e2xldCBlPWEuc3R5bGUudGV4dEFsaWduO3JldHVybiB0aGlzLm9wdGlvbnMuYWxpZ25tZW50cy5pbmNsdWRlcyhlKT9lOnRoaXMub3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50fSwicGFyc2VIVE1MIikscmVuZGVySFRNTDpzKGE9PmEudGV4dEFsaWduP3tzdHlsZTpgdGV4dC1hbGlnbjogJHthLnRleHRBbGlnbn1gfTp7fSwicmVuZGVySFRNTCIpfX19XX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0VGV4dEFsaWduOnMoYT0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5hbGlnbm1lbnRzLmluY2x1ZGVzKGEpP3RoaXMub3B0aW9ucy50eXBlcy5tYXAodD0+ZS51cGRhdGVBdHRyaWJ1dGVzKHQse3RleHRBbGlnbjphfSkpLmV2ZXJ5KHQ9PnQpOiExLCJzZXRUZXh0QWxpZ24iKSx1bnNldFRleHRBbGlnbjpzKCgpPT4oe2NvbW1hbmRzOmF9KT0+dGhpcy5vcHRpb25zLnR5cGVzLm1hcChlPT5hLnJlc2V0QXR0cmlidXRlcyhlLCJ0ZXh0QWxpZ24iKSkuZXZlcnkoZT0+ZSksInVuc2V0VGV4dEFsaWduIiksdG9nZ2xlVGV4dEFsaWduOnMoYT0+KHtlZGl0b3I6ZSxjb21tYW5kczp0fSk9PnRoaXMub3B0aW9ucy5hbGlnbm1lbnRzLmluY2x1ZGVzKGEpP2UuaXNBY3RpdmUoe3RleHRBbGlnbjphfSk/dC51bnNldFRleHRBbGlnbigpOnQuc2V0VGV4dEFsaWduKGEpOiExLCJ0b2dnbGVUZXh0QWxpZ24iKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtbCI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJsZWZ0IiksIk1vZC1TaGlmdC1sIiksIk1vZC1TaGlmdC1lIjpzKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZXRUZXh0QWxpZ24oImNlbnRlciIpLCJNb2QtU2hpZnQtZSIpLCJNb2QtU2hpZnQtciI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJyaWdodCIpLCJNb2QtU2hpZnQtciIpLCJNb2QtU2hpZnQtaiI6cygoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJqdXN0aWZ5IiksIk1vZC1TaGlmdC1qIil9fX0pfSk7ZnVuY3Rpb24gQ0lhKGEsZSl7cmV0dXJuIGEgaW4gZXx8KGVbYV09W10pLGVbYV19ZnVuY3Rpb24gaTUoYSxlLHQpe2VbSlplXSYmKGVbdlddPSEwLGVbeFddPSEwKSxlW2VYZV0mJihlW3ZXXT0hMCxlW3RYZV09ITApLGVbdlddJiYoZVt4V109ITApLGVbdFhlXSYmKGVbeFddPSEwKSxlW3hXXSYmKGVbYVhlXT0hMCksZVt2MmFdJiYoZVthWGVdPSEwKTtmb3IobGV0IHIgaW4gZSl7bGV0IGk9Q0lhKHIsdCk7aS5pbmRleE9mKGEpPDAmJmkucHVzaChhKX19ZnVuY3Rpb24gX0lhKGEsZSl7bGV0IHQ9e307Zm9yKGxldCByIGluIGUpZVtyXS5pbmRleE9mKGEpPj0wJiYodFtyXT0hMCk7cmV0dXJuIHR9ZnVuY3Rpb24gSmkoYT1udWxsKXt0aGlzLmo9e30sdGhpcy5qcj1bXSx0aGlzLmpkPW51bGwsdGhpcy50PWF9ZnVuY3Rpb24gQUlhKGE9W10pe2xldCBlPXt9O0ppLmdyb3Vwcz1lO2xldCB0PW5ldyBKaTtBc2U9PW51bGwmJihBc2U9VDJhKE1JYSkpLFBzZT09bnVsbCYmKFBzZT1UMmEoa0lhKSksS2UodCwiJyIsdnNlKSxLZSh0LCJ7Iix3VyksS2UodCwifSIsTVcpLEtlKHQsIlsiLHJzZSksS2UodCwiXSIsc3NlKSxLZSh0LCIoIixpc2UpLEtlKHQsIikiLG9zZSksS2UodCwiPCIsbnNlKSxLZSh0LCI+Iixsc2UpLEtlKHQsIlx1RkYwOCIsY3NlKSxLZSh0LCJcdUZGMDkiLGRzZSksS2UodCwiXHUzMDBDIix1c2UpLEtlKHQsIlx1MzAwRCIscHNlKSxLZSh0LCJcdTMwMEUiLGZzZSksS2UodCwiXHUzMDBGIixoc2UpLEtlKHQsIlx1RkYxQyIsbXNlKSxLZSh0LCJcdUZGMUUiLGdzZSksS2UodCwiJiIsYnNlKSxLZSh0LCIqIix4c2UpLEtlKHQsIkAiLE00KSxLZSh0LCJgIix3c2UpLEtlKHQsIl4iLE1zZSksS2UodCwiOiIsazQpLEtlKHQsIiwiLGRYZSksS2UodCwiJCIsa3NlKSxLZSh0LCIuIixybCksS2UodCwiPSIsU3NlKSxLZSh0LCIhIix1WGUpLEtlKHQsIi0iLEhuKSxLZSh0LCIlIixrVyksS2UodCwifCIsenNlKSxLZSh0LCIrIixDc2UpLEtlKHQsIiMiLF9zZSksS2UodCwiPyIsU1cpLEtlKHQsJyInLHBYZSksS2UodCwiLyIsc2wpLEtlKHQsIjsiLGZYZSksS2UodCwifiIselcpLEtlKHQsIl8iLFRzZSksS2UodCwiXFwiLHlzZSksS2UodCwiXHUzMEZCIixNMmEpO2xldCByPUhyKHQsb2wsblhlLHtbSlplXTohMH0pO0hyKHIsb2wscik7bGV0IGk9SHIocixpbCx5MmEse1t2V106ITB9KSxvPUhyKHIsRm0sdzJhLHtbeFddOiEwfSksbj1Icih0LGlsLE1jLHtbZVhlXTohMH0pO0hyKG4sb2wsaSksSHIobixpbCxuKSxIcihpLG9sLGkpLEhyKGksaWwsaSk7bGV0IGw9SHIodCxGbSxzWGUse1t0WGVdOiEwfSk7SHIobCxpbCksSHIobCxvbCxvKSxIcihsLEZtLGwpLEhyKG8sb2wsbyksSHIobyxpbCksSHIobyxGbSxvKTtsZXQgZD1LZSh0LGhYZSxjWGUse1tyWGVdOiEwfSksYz1LZSh0LHoyYSxsWGUse1tyWGVdOiEwfSkscD1Icih0LERzZSxsWGUse1tyWGVdOiEwfSk7S2UodCxtWGUscCksS2UoYyxoWGUsZCksS2UoYyxtWGUscCksSHIoYyxEc2UscCksS2UocCx6MmEpLEtlKHAsaFhlKSxIcihwLERzZSxwKSxLZShwLG1YZSxwKTtsZXQgdT1Icih0LCRzZSxrMmEse1t2MmFdOiEwfSk7S2UodSwiIyIpLEhyKHUsJHNlLHUpLEtlKHUsJElhLHUpO2xldCBtPUtlKHUsRElhKTtLZShtLCIjIiksSHIobSwkc2UsdSk7bGV0IHY9W1tpbCxuXSxbb2wsaV1dLHg9W1tpbCxudWxsXSxbRm0sbF0sW29sLG9dXTtmb3IobGV0IGI9MDtiPEFzZS5sZW5ndGg7YisrKVM0KHQsQXNlW2JdLGlYZSxNYyx2KTtmb3IobGV0IGI9MDtiPFBzZS5sZW5ndGg7YisrKVM0KHQsUHNlW2JdLG9YZSxzWGUseCk7aTUoaVhlLHt0bGQ6ITAsYXNjaWk6ITB9LGUpLGk1KG9YZSx7dXRsZDohMCxhbHBoYTohMH0sZSksUzQodCwiZmlsZSIsYXNlLE1jLHYpLFM0KHQsIm1haWx0byIsYXNlLE1jLHYpLFM0KHQsImh0dHAiLE9tLE1jLHYpLFM0KHQsImh0dHBzIixPbSxNYyx2KSxTNCh0LCJmdHAiLE9tLE1jLHYpLFM0KHQsImZ0cHMiLE9tLE1jLHYpLGk1KGFzZSx7c2NoZW1lOiEwLGFzY2lpOiEwfSxlKSxpNShPbSx7c2xhc2hzY2hlbWU6ITAsYXNjaWk6ITB9LGUpLGE9YS5zb3J0KChiLGcpPT5iWzBdPmdbMF0/MTotMSk7Zm9yKGxldCBiPTA7YjxhLmxlbmd0aDtiKyspe2xldCBnPWFbYl1bMF0saz1hW2JdWzFdP3tbU0lhXTohMH06e1t6SWFdOiEwfTtnLmluZGV4T2YoIi0iKT49MD9rW2FYZV09ITA6aWwudGVzdChnKT9vbC50ZXN0KGcpP2tbdlddPSEwOmtbZVhlXT0hMDprW0paZV09ITAseDJhKHQsZyxnLGspfXJldHVybiB4MmEodCwibG9jYWxob3N0Iix5Vyx7YXNjaWk6ITB9KSx0LmpkPW5ldyBKaShMc2UpLHtzdGFydDp0LHRva2VuczpPYmplY3QuYXNzaWduKHtncm91cHM6ZX0sUzJhKX19ZnVuY3Rpb24gQzJhKGEsZSl7bGV0IHQ9XzJhKGUucmVwbGFjZSgvW0EtWl0vZyxsPT5sLnRvTG93ZXJDYXNlKCkpKSxyPXQubGVuZ3RoLGk9W10sbz0wLG49MDtmb3IoO248cjspe2xldCBsPWEsZD1udWxsLGM9MCxwPW51bGwsdT0tMSxtPS0xO2Zvcig7bjxyJiYoZD1sLmdvKHRbbl0pKTspbD1kLGwuYWNjZXB0cygpPyh1PTAsbT0wLHA9bCk6dT49MCYmKHUrPXRbbl0ubGVuZ3RoLG0rKyksYys9dFtuXS5sZW5ndGgsbys9dFtuXS5sZW5ndGgsbisrO28tPXUsbi09bSxjLT11LGkucHVzaCh7dDpwLnQsdjplLnNsaWNlKG8tYyxvKSxzOm8tYyxlOm99KX1yZXR1cm4gaX1mdW5jdGlvbiBfMmEoYSl7bGV0IGU9W10sdD1hLmxlbmd0aCxyPTA7Zm9yKDtyPHQ7KXtsZXQgaT1hLmNoYXJDb2RlQXQociksbyxuPWk8NTUyOTZ8fGk+NTYzMTl8fHIrMT09PXR8fChvPWEuY2hhckNvZGVBdChyKzEpKTw1NjMyMHx8bz41NzM0Mz9hW3JdOmEuc2xpY2UocixyKzIpO2UucHVzaChuKSxyKz1uLmxlbmd0aH1yZXR1cm4gZX1mdW5jdGlvbiBTNChhLGUsdCxyLGkpe2xldCBvLG49ZS5sZW5ndGg7Zm9yKGxldCBsPTA7bDxuLTE7bCsrKXtsZXQgZD1lW2xdO2EualtkXT9vPWEualtkXToobz1uZXcgSmkociksby5qcj1pLnNsaWNlKCksYS5qW2RdPW8pLGE9b31yZXR1cm4gbz1uZXcgSmkodCksby5qcj1pLnNsaWNlKCksYS5qW2Vbbi0xXV09byxvfWZ1bmN0aW9uIFQyYShhKXtsZXQgZT1bXSx0PVtdLHI9MCxpPSIwMTIzNDU2Nzg5Ijtmb3IoO3I8YS5sZW5ndGg7KXtsZXQgbz0wO2Zvcig7aS5pbmRleE9mKGFbcitvXSk+PTA7KW8rKztpZihvPjApe2UucHVzaCh0LmpvaW4oIiIpKTtmb3IobGV0IG49cGFyc2VJbnQoYS5zdWJzdHJpbmcocixyK28pLDEwKTtuPjA7bi0tKXQucG9wKCk7cis9b31lbHNlIHQucHVzaChhW3JdKSxyKyt9cmV0dXJuIGV9ZnVuY3Rpb24gQ1coYSxlPW51bGwpe2xldCB0PU9iamVjdC5hc3NpZ24oe30sQm0pO2EmJih0PU9iamVjdC5hc3NpZ24odCxhIGluc3RhbmNlb2YgQ1c/YS5vOmEpKTtsZXQgcj10Lmlnbm9yZVRhZ3MsaT1bXTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKylpLnB1c2gocltvXS50b1VwcGVyQ2FzZSgpKTt0aGlzLm89dCxlJiYodGhpcy5kZWZhdWx0UmVuZGVyPWUpLHRoaXMuaWdub3JlVGFncz1pfWZ1bmN0aW9uIEwyYShhKXtyZXR1cm4gYX1mdW5jdGlvbiBfVyhhLGUpe3RoaXMudD0idG9rZW4iLHRoaXMudj1hLHRoaXMudGs9ZX1mdW5jdGlvbiBIbShhLGUpe2NsYXNzIHQgZXh0ZW5kcyBfV3tzdGF0aWN7cyh0aGlzLCJUb2tlbiIpfWNvbnN0cnVjdG9yKGksbyl7c3VwZXIoaSxvKSx0aGlzLnQ9YX19Zm9yKGxldCByIGluIGUpdC5wcm90b3R5cGVbcl09ZVtyXTtyZXR1cm4gdC50PWEsdH1mdW5jdGlvbiBFSWEoe2dyb3VwczphfSl7bGV0IGU9YS5kb21haW4uY29uY2F0KFtic2UseHNlLE00LHlzZSx3c2UsTXNlLGtzZSxTc2UsSG4sblhlLGtXLHpzZSxDc2UsX3NlLHNsLExzZSx6VyxUc2VdKSx0PVt2c2UsazQsZFhlLHJsLHVYZSxrVyxTVyxwWGUsZlhlLG5zZSxsc2Usd1csTVcsc3NlLHJzZSxpc2Usb3NlLGNzZSxkc2UsdXNlLHBzZSxmc2UsaHNlLG1zZSxnc2VdLHI9W2JzZSx2c2UseHNlLHlzZSx3c2UsTXNlLGtzZSxTc2UsSG4sd1csTVcsa1csenNlLENzZSxfc2UsU1csc2wsTHNlLHpXLFRzZV0saT1xbigpLG89S2UoaSx6Vyk7YWEobyxyLG8pLGFhKG8sYS5kb21haW4sbyk7bGV0IG49cW4oKSxsPXFuKCksZD1xbigpO2FhKGksYS5kb21haW4sbiksYWEoaSxhLnNjaGVtZSxsKSxhYShpLGEuc2xhc2hzY2hlbWUsZCksYWEobixyLG8pLGFhKG4sYS5kb21haW4sbik7bGV0IGM9S2UobixNNCk7S2UobyxNNCxjKSxLZShsLE00LGMpLEtlKGQsTTQsYyk7bGV0IHA9S2UobyxybCk7YWEocCxyLG8pLGFhKHAsYS5kb21haW4sbyk7bGV0IHU9cW4oKTthYShjLGEuZG9tYWluLHUpLGFhKHUsYS5kb21haW4sdSk7bGV0IG09S2UodSxybCk7YWEobSxhLmRvbWFpbix1KTtsZXQgdj1xbihnWGUpO2FhKG0sYS50bGQsdiksYWEobSxhLnV0bGQsdiksS2UoYyx5Vyx2KTtsZXQgeD1LZSh1LEhuKTtLZSh4LEhuLHgpLGFhKHgsYS5kb21haW4sdSksYWEodixhLmRvbWFpbix1KSxLZSh2LHJsLG0pLEtlKHYsSG4seCk7bGV0IGI9S2UodixrNCk7YWEoYixhLm51bWVyaWMsZ1hlKTtsZXQgZz1LZShuLEhuKSx5PUtlKG4scmwpO0tlKGcsSG4sZyksYWEoZyxhLmRvbWFpbixuKSxhYSh5LHIsbyksYWEoeSxhLmRvbWFpbixuKTtsZXQgaz1xbihUVyk7YWEoeSxhLnRsZCxrKSxhYSh5LGEudXRsZCxrKSxhYShrLGEuZG9tYWluLG4pLGFhKGsscixvKSxLZShrLHJsLHkpLEtlKGssSG4sZyksS2UoayxNNCxjKTtsZXQgQz1LZShrLGs0KSxOPXFuKFRXKTthYShDLGEubnVtZXJpYyxOKTtsZXQgXz1xbihUVyksej1xbigpO2FhKF8sZSxfKSxhYShfLHQseiksYWEoeixlLF8pLGFhKHosdCx6KSxLZShrLHNsLF8pLEtlKE4sc2wsXyk7bGV0IE89S2UobCxrNCksVD1LZShkLGs0KSxQPUtlKFQsc2wpLEI9S2UoUCxzbCk7YWEobCxhLmRvbWFpbixuKSxLZShsLHJsLHkpLEtlKGwsSG4sZyksYWEoZCxhLmRvbWFpbixuKSxLZShkLHJsLHkpLEtlKGQsSG4sZyksYWEoTyxhLmRvbWFpbixfKSxLZShPLHNsLF8pLEtlKE8sU1csXyksYWEoQixhLmRvbWFpbixfKSxhYShCLGUsXyksS2UoQixzbCxfKTtsZXQgTT1bW3dXLE1XXSxbcnNlLHNzZV0sW2lzZSxvc2VdLFtuc2UsbHNlXSxbY3NlLGRzZV0sW3VzZSxwc2VdLFtmc2UsaHNlXSxbbXNlLGdzZV1dO2ZvcihsZXQgUz0wO1M8TS5sZW5ndGg7UysrKXtsZXRbRSxBXT1NW1NdLEY9S2UoXyxFKTtLZSh6LEUsRiksS2UoRixBLF8pO2xldCBXPXFuKFRXKTthYShGLGUsVyk7bGV0IGo9cW4oKTthYShGLHQpLGFhKFcsZSxXKSxhYShXLHQsaiksYWEoaixlLFcpLGFhKGosdCxqKSxLZShXLEEsXyksS2UoaixBLF8pfXJldHVybiBLZShpLHlXLGspLEtlKGksY1hlLCQyYSkse3N0YXJ0OmksdG9rZW5zOlMyYX19ZnVuY3Rpb24gSUlhKGEsZSx0KXtsZXQgcj10Lmxlbmd0aCxpPTAsbz1bXSxuPVtdO2Zvcig7aTxyOyl7bGV0IGw9YSxkPW51bGwsYz1udWxsLHA9MCx1PW51bGwsbT0tMTtmb3IoO2k8ciYmIShkPWwuZ28odFtpXS50KSk7KW4ucHVzaCh0W2krK10pO2Zvcig7aTxyJiYoYz1kfHxsLmdvKHRbaV0udCkpOylkPW51bGwsbD1jLGwuYWNjZXB0cygpPyhtPTAsdT1sKTptPj0wJiZtKyssaSsrLHArKztpZihtPDApaS09cCxpPHImJihuLnB1c2godFtpXSksaSsrKTtlbHNle24ubGVuZ3RoPjAmJihvLnB1c2godlhlKGJYZSxlLG4pKSxuPVtdKSxpLT1tLHAtPW07bGV0IHY9dS50LHg9dC5zbGljZShpLXAsaSk7by5wdXNoKHZYZSh2LGUseCkpfX1yZXR1cm4gbi5sZW5ndGg+MCYmby5wdXNoKHZYZShiWGUsZSxuKSksb31mdW5jdGlvbiB2WGUoYSxlLHQpe2xldCByPXRbMF0ucyxpPXRbdC5sZW5ndGgtMV0uZSxvPWUuc2xpY2UocixpKTtyZXR1cm4gbmV3IGEobyx0KX1mdW5jdGlvbiB5WGUoKXtyZXR1cm4gSmkuZ3JvdXBzPXt9LENhLnNjYW5uZXI9bnVsbCxDYS5wYXJzZXI9bnVsbCxDYS50b2tlblF1ZXVlPVtdLENhLnBsdWdpblF1ZXVlPVtdLENhLmN1c3RvbVNjaGVtZXM9W10sQ2EuaW5pdGlhbGl6ZWQ9ITEsQ2F9ZnVuY3Rpb24gTklhKGEsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgdG9rZW4gcGx1Z2luICR7ZX0gKGV4cGVjdHMgZnVuY3Rpb24pYCk7Zm9yKGxldCB0PTA7dDxDYS50b2tlblF1ZXVlLmxlbmd0aDt0KyspaWYoYT09PUNhLnRva2VuUXVldWVbdF1bMF0pe0xXKGBsaW5raWZ5anM6IHRva2VuIHBsdWdpbiAiJHthfSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLENhLnRva2VuUXVldWVbdF09W2EsZV07cmV0dXJufUNhLnRva2VuUXVldWUucHVzaChbYSxlXSksQ2EuaW5pdGlhbGl6ZWQmJkxXKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciB0b2tlbiBwbHVnaW4gIiR7YX0iICR7eFhlfWApfWZ1bmN0aW9uIFJJYShhLGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcihgbGlua2lmeWpzOiBJbnZhbGlkIHBsdWdpbiAke2V9IChleHBlY3RzIGZ1bmN0aW9uKWApO2ZvcihsZXQgdD0wO3Q8Q2EucGx1Z2luUXVldWUubGVuZ3RoO3QrKylpZihhPT09Q2EucGx1Z2luUXVldWVbdF1bMF0pe0xXKGBsaW5raWZ5anM6IHBsdWdpbiAiJHthfSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLENhLnBsdWdpblF1ZXVlW3RdPVthLGVdO3JldHVybn1DYS5wbHVnaW5RdWV1ZS5wdXNoKFthLGVdKSxDYS5pbml0aWFsaXplZCYmTFcoYGxpbmtpZnlqczogYWxyZWFkeSBpbml0aWFsaXplZCAtIHdpbGwgbm90IHJlZ2lzdGVyIHBsdWdpbiAiJHthfSIgJHt4WGV9YCl9ZnVuY3Rpb24gRXNlKGEsZT0hMSl7aWYoQ2EuaW5pdGlhbGl6ZWQmJkxXKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciBjdXN0b20gc2NoZW1lICIke2F9IiAke3hYZX1gKSwhL15bMC05YS16XSsoLVswLTlhLXpdKykqJC8udGVzdChhKSl0aHJvdyBuZXcgRXJyb3IoYGxpbmtpZnlqczogaW5jb3JyZWN0IHNjaGVtZSBmb3JtYXQuCjEuIE11c3Qgb25seSBjb250YWluIGRpZ2l0cywgbG93ZXJjYXNlIEFTQ0lJIGxldHRlcnMgb3IgIi0iCjIuIENhbm5vdCBzdGFydCBvciBlbmQgd2l0aCAiLSIKMy4gIi0iIGNhbm5vdCByZXBlYXRgKTtDYS5jdXN0b21TY2hlbWVzLnB1c2goW2EsZV0pfWZ1bmN0aW9uIEEyYSgpe0NhLnNjYW5uZXI9QUlhKENhLmN1c3RvbVNjaGVtZXMpO2ZvcihsZXQgYT0wO2E8Q2EudG9rZW5RdWV1ZS5sZW5ndGg7YSsrKUNhLnRva2VuUXVldWVbYV1bMV0oe3NjYW5uZXI6Q2Euc2Nhbm5lcn0pO0NhLnBhcnNlcj1FSWEoQ2Euc2Nhbm5lci50b2tlbnMpO2ZvcihsZXQgYT0wO2E8Q2EucGx1Z2luUXVldWUubGVuZ3RoO2ErKylDYS5wbHVnaW5RdWV1ZVthXVsxXSh7c2Nhbm5lcjpDYS5zY2FubmVyLHBhcnNlcjpDYS5wYXJzZXJ9KTtyZXR1cm4gQ2EuaW5pdGlhbGl6ZWQ9ITAsQ2F9ZnVuY3Rpb24gcW0oYSl7cmV0dXJuIENhLmluaXRpYWxpemVkfHxBMmEoKSxJSWEoQ2EucGFyc2VyLnN0YXJ0LGEsQzJhKENhLnNjYW5uZXIuc3RhcnQsYSkpfWZ1bmN0aW9uIElzZShhLGU9bnVsbCx0PW51bGwpe2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYodCl0aHJvdyBFcnJvcihgbGlua2lmeWpzOiBJbnZhbGlkIGxpbmsgdHlwZSAke2V9OyBtdXN0IGJlIGEgc3RyaW5nYCk7dD1lLGU9bnVsbH1sZXQgcj1uZXcgQ1codCksaT1xbShhKSxvPVtdO2ZvcihsZXQgbj0wO248aS5sZW5ndGg7bisrKXtsZXQgbD1pW25dO2wuaXNMaW5rJiYoIWV8fGwudD09PWUpJiZyLmNoZWNrKGwpJiZvLnB1c2gobC50b0Zvcm1hdHRlZE9iamVjdChyKSl9cmV0dXJuIG99ZnVuY3Rpb24gT0lhKGEsZT1udWxsKXtsZXQgdD1xbShhKTtyZXR1cm4gdC5sZW5ndGg9PT0xJiZ0WzBdLmlzTGluayYmKCFlfHx0WzBdLnQ9PT1lKX12YXIgTUlhLGtJYSxKWmUsZVhlLHRYZSx2Vyx4VyxhWGUsdjJhLFNJYSx6SWEsclhlLGFhLEhyLHgyYSxLZSxNYyxzWGUseTJhLHcyYSx5VyxpWGUsb1hlLGFzZSxPbSxuWGUsbFhlLGNYZSx3VyxNVyxyc2Usc3NlLGlzZSxvc2UsbnNlLGxzZSxjc2UsZHNlLHVzZSxwc2UsZnNlLGhzZSxtc2UsZ3NlLGJzZSx2c2UseHNlLE00LHlzZSx3c2UsTXNlLGs0LGRYZSxrc2UscmwsU3NlLHVYZSxIbixrVyx6c2UsQ3NlLF9zZSxTVyxwWGUsTTJhLGZYZSxzbCx6VyxUc2UsazJhLExzZSxTMmEsaWwsRm0sJHNlLFRJYSxvbCxEc2UsTElhLHoyYSxoWGUsJElhLERJYSxtWGUsQXNlLFBzZSxCbSxQSWEsZ1hlLGJYZSwkMmEsVFcsRDJhLHFuLExXLHhYZSxDYSxQMmE9ZigoKT0+e01JYT0iYWFhMXJwM2JiMG90dDN2aWU0YzFsZTJvZ2FkbzV1ZGhhYmk3YzBhZGVteTVjZW50dXJlNm91bnRhbnQwczlvMXRvcjRkMHMxdWx0NGUwZzFybzJ0bmE0ZjBsMXJpY2E1ZzBha2hhbjVlbmN5NWkwZzFyYnVzM2ZvcmNlNXRlbDVrZG4zbDBpYmFiYTRwYXk0bGZpbmFuejZzdGF0ZTV5MnNhY2UzdG9tNW0wYXpvbjRlcmljYW5leHByZXNzN2ZhbWlseTExeDJmYW0zaWNhM3N0ZXJkYW04bmFseXRpY3M3ZHJvaWQ1cXVhbjR6Mm8wbDJwYXJ0bWVudHM4cDBsZTRxMHVhcmVsbGU4cjBhYjFtY280Y2hpM215MnBhMnQwZTNzMGRhMmlhMnNvY2lhdGVzOXQwaGxldGE1dG9ybmV5N3UwY3Rpb241ZGkwYmxlM28zc3Bvc3Q1dGhvcjNvMHM0dzBzMngwYTJ6MHVyZTViYTBieTJpZHUzbmFtZXg0ZDFrMnIwY2Vsb25hNWxheWNhcmQ0czVlZm9vdDVnYWluczZzZWJhbGw1a2V0YmFsbDh1aGF1czV5ZXJuNWIwYzF0MXZhM2NnMW4yZDFlMGF0czJ1dHk0ZXIycmxpbjRzdDBidXk1dDJmMWcxaDBhcnRpNWkwYmxlM2Qxa2UybmcwbzNvMXoyajFsYWNrMGZyaWRheTlvY2tidXN0ZXI4ZzFvbWJlcmc3dWUzbTBzMXcybjBwcGFyaWJhczlvMGF0czNlaHJpbmdlcjhmYTJtMW5kMm8wazBpbmc1c2NoMnRpazJvbjR0MXV0aXF1ZTZ4MnIwYWRlc2NvNmlkZ2VzdG9uZTlvYWR3YXk1a2VyM3RoZXI1dXNzZWxzN3MxdDF1aWxkMGVyczZzaW5lc3M2eTF6ejN2MXcxeTF6MGgzY2EwYjFmZTJsMGwxdmlua2xlaW45bTBlcmEzcDJub24zcGV0b3duNWl0YWwwb25lOHIwYXZhbjRkczJlMGVyMHM0czJzYTFlMWgxaW5vNHQwZXJpbmc1aG9saWM3YmExbjFyZTNjMWQxZW50ZXI0bzFybjNmMGExZDJnMWgwYW5lbDJuZWw0cml0eTRzZTJ0MmVhcDNpbnRhaTVyaXN0bWFzNm9tZTR1cmNoNWkwcHJpYW5pNnJjbGU0c2NvM3RhZGVsNGkwYzJ5M2sxbDBhaW1zNGVhbmluZzZpY2sybmljMXF1ZTZvdGhpbmc1dWQzdWIwbWVkNm0xbjFvMGFjaDNkZXMzZmZlZTRsbGVnZTRvZ25lNW0wbWJhbms0dW5pdHk2cGFueTJyZTN1dGVyNXNlYzRuZG9zM3N0cnVjdGlvbjh1bHRpbmc3dGFjdDNyYWN0b3JzOW9raW5nNGwxcDJyc2ljYTV1bnRyeTRwb24wczRyc2VzNnBhMnIwZWRpdDBjYXJkNHVuaW9uOWlja2V0NW93bjNzMXVpc2UwczZ1MGlzaW5lbGxhOXYxdzF4MXkwbXJ1M291M3oyZGFkMW5jZTN0YTFlMWluZzNzdW40eTJjbGszZHMyZTBhbDBlcjJzM2dyZWU0bGl2ZXJ5NWwxb2l0dGU1dGEzbW9jcmF0Nm50YWwyaXN0NXNpMGduNHYyaGwyaWFtb25kczZldDJnaXRhbDVyZWN0MG9yeTdzY291bnQzdmVyNWgyeTJqMWsxbTFucDJvMGNzMXRvcjRnMW1haW5zNXQxd25sb2FkN3JpdmU0dHYydWJhaTNubG9wNHBvbnQ0cmJhbjV2YWcycjJ6MmVhcnRoM3QyYzBvMmRla2EzdTBjYXRpb244ZTFnMW1haWwzZXJjazVuZXJneTRnaW5lZXIwaW5nOXRlcnByaXNlczEwcHNvbjRxdWlwbWVudDhyMGljc3NvbjZuaTNzMHExdGF0ZTV0MXUwcm92aXNpb244czJ2ZW50czV4Y2hhbmdlNnBlcnQzb3NlZDRyZXNzNXRyYXNwYWNlMTBmYWdlMmlsMXJ3aW5kczZ0aDNtaWx5NG4wczJybTBlcnM1c2hpb240dDNlZGV4M2VkYmFjazZycmFyaTNlcm82aTBkZWxpdHk1bzJsbTJuYWwxbmNlMWlhbDdyZTBzdG9uZTZtZGFsZTZzaDBpbmc1dDBuZXNzNmoxazFsaWNrcjNnaHRzNHIyb3Jpc3Q0d2VyczV5Mm0xbzBvMGQxdGJhbGw2cmQxZXgyc2FsZTR1bTN1bmRhdGlvbjh4MnIwZWUxc2VuaXVzN2wxb2dhbnM0bnRpZXI3dHIydWppdHN1NW4wZDJybml0dXJlN3Rib2w1eWkzZ2EwbDBsZXJ5M28xdXA0bWUwczNwMXJkZW40eTJiMGl6M2QwbjJlMGExbnQwaW5nNW9yZ2U1ZjFnMGVlM2gxaTBmdDBzM3ZlczJpbmc1bDBhc3MzZTFvYmFsMm80bTBhaWwzYmgybzF4Mm4xb2RhZGR5NWxkMHBvaW50NmYybzBkeWVhcjVnMGxlNHAxdDF2MnAxcTFyMGFpbmdlcjVwaGljczV0aXM0ZWVuM2lwZTNvY2VyeTR1cDRzMXQxdTBjY2kzZ2UyaWRlMnRhcnM1cnUzdzF5MmhhaXIybWJ1cmc1bmdvdXQ1dXMzYm8yZGZjMGJhbms3ZWFsdGgwY2FyZThscDFzaW5raTZyZTFtZXM1aXBob3A0c2FtaXRzdTd0YWNoaTV2MmswdDJtMW4xb2NrZXk0bGRpbmdzNWlkYXk1bWVkZXBvdDVnb29kczVzMGVuc2U3bmRhM3JzZTNzcGl0YWw1dDBpbmc1dDBlbHMzbWFpbDV1c2UzdzJyMXNiYzN0MXUwZ2hlczV5YXR0M3VuZGFpN2libTJjYmMyZTF1MmQxZTBlZTNmbTJrYW5vNGwxbTBhbWF0NGRiMm1vMGJpbGllbjluMGMxZHVzdHJpZXM4ZmluaXRpNW8yZzFrMXN0aXR1dGU2dXJhbmNlNGU0dDBlcm5hdGlvbmFsMTB1aXQ0dmVzdG1lbnRzMTBvMXBpcmFuZ2E3cTFyMGlzaDRzMG1haWxpNXQwYW5idWw3dDBhdTJ2M2phZ3VhcjR2YTNjYjJlMGVwMnR6dDN3ZWxyeTZpbzJsbDJtMHAybmoybzBiczF1cmc0dDF5MnAwbW9yZ2FuNnJzM3VlZ29zNG5pcGVyN2thdWZlbjVkZGkzZTBycnlob3RlbHM2cHJvcGVydGllczE0ZmgyZzFoMWkwYTFkczJtMW5kbGU0dGNoZW41d2kzbTFuMW9lbG4zbWF0c3U1c2hlcjVwMG1nMm4ycjBkMWVkM3Vva2dyb3VwOHcxeTBvdG80ejJsYTBjYWl4YTVtYm9yZ2hpbmk4ZXIzbmQwcm92ZXI2eGVzczVzYWxsZTV0MGlubzNyb2JlNXcweWVyNWIxYzFkczJlYXNlM2NsZXJjNWZyYWs0Z2FsMm8yeHVzNGdidDNpMGRsMmZlMGluc3VyYW5jZTlzdHlsZTdnaHRpbmc2a2UybGx5M21pdGVkNG8ybmNvbG40azJ2ZTFpbmc1azFsYzFwMm9hbjBzM2NrZXIzdXMzbDFuZG9uNHR0ZTFvM3ZlM3BsMGZpbmFuY2lhbDExcjFzMXQwZDBhM3UwbmRiZWNrNnhlMXVyeTV2MXkybWEwZHJpZDRpZjFzb240a2V1cDRuMGFnZW1lbnQ3Z28zcDFya2V0MGluZzNzNHJpb3R0NXNoYWxsczd0dGVsNWJhMmMwa2luc2V5N2QxZTBkMGlhM2V0Mmxib3VybmU3bWUxb3JpYWw2bjB1MnJja21zZDdnMWgxaWFtaTNjcm9zb2Z0N2wxbmkxdDJ0MHN1YmlzaGk5azFsMGIxczJtMGEybjFvMGJpMGxlNGRhMmUxaTFtMW5hc2gzZXkyc3RlcjVybW9uM3RnYWdlNnNjb3c0dG8wcmN5Y2xlczl2MGllNHAxcTFyMXMwZDJ0MG4xcjJ1MHNldW0zaWM0djF3MXgxeTF6Mm5hMGIxZ295YTRtZTJ2eTNiYTJjMWUwYzF0MGJhbms0ZmxpeDR3b3JrNXVzdGFyNXcwczJ4dDBkaXJlY3Q3dXM0ZjBsMmcwbzJoazJpMGNvMmtlMW9uM25qYTNzc2FuMXk1bDFvMGtpYTNydG9uNHcwcnV6M3R2NHAxcjBhMXcydHQydTF5YzJ6Mm9iaTFzZXJ2ZXI3ZmZpY2U1a2luYXdhNmxheWFuMGdyb3VwOWxvM20wZWdhNG5lMWcxbDBpbmU1b28ycGVuM3JhY2xlM25nZTRnMGFuaWM1aWdpbnM2c2FrYTR0c3VrYTR0MnZoM3BhMGdlMm5hc29uaWM3cmlzMnMxdG5lcnM0czF5M3kyY2N3M2UwdDJmMGl6ZXI1ZzFoMGFybWFjeTZkMWlsaXBzNW9uZTJ0bzBncmFwaHk2czR5c2lvNWljczF0ZXQydXJlczZkMW4wZzFrMm9uZWVyNXp6YTRrMWwwYWNlMnkwc3RhdGlvbjl1bWJpbmc1czNtMW4wYzJvaGwya2VyM2xpdGllNXJuMnN0M3IwYXhpM2VzczNpbWUzbzBkMHVjdGlvbnM4ZjFncmVzc2l2ZThtbzJwZXJ0aWVzM3k1dGVjdGlvbjh1MGRlbnRpYWw5czF0MXViMncwYzJ5MnFhMXBvbjN1ZWJlYzNzdDVyYWNpbmc0ZGlvNGUwYWQxbGVzdGF0ZTZ0b3IyeTRjaXBlczVkMHN0b25lNXVtYnJlbGxhOWhhYjNpc2UwbjN0MmxpYW5jZTZuMHQwYWxzNXBhaXIzb3J0M3VibGljYW44c3QwYXVyYW50OHZpZXcwczV4cm90aDZpY2gwYXJkbGk2b2gzbDFvMXAybzBja3MzZGVvM2dlcnM0b20zczB2cDN1MGdieTNocjJuMncwZTJ5dWt5dTZzYTBhcmxhbmQ2ZmUwdHk0a3VyYTRsZTFvbjNtc2NsdWI0dW5nNW5kdmlrMGNvcm9tYW50MTJvZmk0cDFybDJzMXZlMnhvM2IwaTFzMmMwYjFoYWVmZmxlcjdtaWR0NG9sYXJzaGlwczhvbDN1bGUzd2FyejVpZW5jZTVvdDNkMWUwYXJjaDN0MmN1cmUxaXR5NmVrMmxlY3Q0bmVyM3J2aWNlczZ2ZW4zdzF4MHkzZnIyZzFoMGFuZ3JpbGE2cnAzZWxsM2lhMWtzaGE1b2VzMnAwcGluZzV1amkzdzNpMGxrMm5hMWdsZXM1dGUzajFrMGkwbjJ5MHBlNGwwaW5nNG0wYXJ0M2lsZTRuMGNmM28wY2NlcjNpYWw0ZnRiYW5rNHdhcmU2aHUybGFyMnV0aW9uczduZzF5MnkycGEwY2Uzb3J0MnQzcjBsMnMxdDBhZGEycGxlczRyMXRlYmFuazRmYXJtN2MwZ3JvdXA2b2NraG9sbTZyYWdlM2UzcmVhbTR1ZGlvMnkzeWxlNHUwY2tzM3BwbGllczN5Mm9ydDVyZjFnZXJ5NXp1a2k1djF3YXRjaDRpc3M0eDF5MGRuZXk0c3RlbXM2ejJ0YWIxaXBlaTRsazJvYmFvNHJnZXQ0dGFtb3RvcnM2cjJ0b280eDBpM2MwaTJkMGsyZWFtMmNoMG5vbG9neThsMW1hc2VrNW5uaXM0dmEzZjFnMWgwZDFlYXRlcjJyZTZpYWEyY2tldHM1ZW5kYTRwczJyZXMyb2w0ajBtYXh4NHgyazBtYXh4NWwxbTBhbGw0bjFvMGRheTNreW8zb2xzM3AxcmF5M3NoaWJhNXRhbDN1cnMzd24yeW90YTNzM3IwYWRlMWluZzRpbmluZzV2ZWwwZXJzMGluc3VyYW5jZTE2dXN0M3YydDF1YmUyaTFuZXMzc2h1NHYwczJ3MXoydWExYmFuazNzMmcxazFuaWNvbTN2ZXJzaXR5OG8yb2wycHMyczF5MXoydmEwY2F0aW9uczduYTFndWFyZDdjMWUwZ2FzM250dXJlczZyaXNpZ241bVx4RjZnZW5zYmVyYXRlcjJ1bmcxNHNpY2hlcnVuZzEwdDJnMWkwYWplczRkZW8zZzFraW5nNGxsYXM0bjFwMXJnaW40c2ExaW9uNHZhMW8zbGFhbmRlcmVuOW4xb2RrYTNsdm8zdGUxaW5nM28yeWFnZTV1MndhbGVzMm1hcnQ0dGVyNG5nMGdvdTV0Y2gwZXM2ZWF0aGVyMGNoYW5uZWwxMmJjYW0zZXIyc2l0ZTVkMGRpbmc1aWJvMnIzZjFob3N3aG82aWVuMmtpMmxsaWFtaGlsbDluMGRvd3M0ZTFuZXJzNm1lMm9sdGVyc2tsdXdlcjExb2RzaWRlNnJrMHMybGQzdzJzMXRjMWYzeGJveDNlcm94NGlodWFuNG4yeHgyeXozeWFjaHRzNGhvbzNtYXh1bjVuZGV4NWUxb2RvYmFzaGk3Z2Eya29oYW1hNnUwdHViZTZ0MXVuM3phMHBwb3M0cmEzZXJvM2lwMm0xb25lM3VlcmljaDZ3MiIsa0lhPSJcdTAzQjVcdTAzQkIxXHUwM0M1Mlx1MDQzMVx1MDQzMzFcdTA0MzVcdTA0M0IzXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDM4NFx1MDQzNVx1MDQ0RTJcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0M0JcdTA0MzhcdTA0M0E2XHUwNDNFXHUwNDNDM1x1MDQzQ1x1MDQzQVx1MDQzNDJcdTA0M0VcdTA0M0QxXHUwNDQxXHUwNDNBXHUwNDMyXHUwNDMwNlx1MDQzRVx1MDQzRFx1MDQzQlx1MDQzMFx1MDQzOVx1MDQzRDVcdTA0NDBcdTA0MzMzXHUwNDQwXHUwNDQzXHUwNDQxMlx1MDQ0NDJcdTA0NDFcdTA0MzBcdTA0MzlcdTA0NDIzXHUwNDQwXHUwNDMxM1x1MDQ0M1x1MDQzQVx1MDQ0MDNcdTA0OUJcdTA0MzBcdTA0MzczXHUwNTcwXHUwNTYxXHUwNTc1M1x1MDVEOVx1MDVFOVx1MDVFOFx1MDVEMFx1MDVEQzVcdTA1RTdcdTA1RDVcdTA1REQzXHUwNjI3XHUwNjI4XHUwNjQ4XHUwNjM4XHUwNjI4XHUwNjRBNVx1MDYzMVx1MDYyN1x1MDY0NVx1MDY0M1x1MDY0ODVcdTA2NDRcdTA2MjdcdTA2MzFcdTA2MkZcdTA2NDY0XHUwNjI4XHUwNjJEXHUwNjMxXHUwNjRBXHUwNjQ2NVx1MDYyQ1x1MDYzMlx1MDYyN1x1MDYyNlx1MDYzMTVcdTA2MzNcdTA2MzlcdTA2NDhcdTA2MkZcdTA2NEFcdTA2Mjk2XHUwNjM5XHUwNjQ0XHUwNjRBXHUwNjI3XHUwNjQ2NVx1MDY0NVx1MDYzQVx1MDYzMVx1MDYyODVcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MjdcdTA2MkE1XHUwNkNDXHUwNjMxXHUwNjI3XHUwNjQ2NVx1MDYyOFx1MDYyN1x1MDYzMVx1MDYyQTJcdTA2MzJcdTA2MjdcdTA2MzE0XHUwNjRBXHUwNjJBXHUwNjQzM1x1MDZCRVx1MDYyN1x1MDYzMVx1MDYyQTVcdTA2MkFcdTA2NDhcdTA2NDZcdTA2MzM0XHUwNjMzXHUwNjQ4XHUwNjJGXHUwNjI3XHUwNjQ2M1x1MDYzMVx1MDY0QVx1MDYyOTVcdTA2MzRcdTA2MjhcdTA2NDNcdTA2Mjk0XHUwNjM5XHUwNjMxXHUwNjI3XHUwNjQyMlx1MDYyODJcdTA2NDVcdTA2MjdcdTA2NDY0XHUwNjQxXHUwNjQ0XHUwNjMzXHUwNjM3XHUwNjRBXHUwNjQ2Nlx1MDY0Mlx1MDYzN1x1MDYzMTNcdTA2NDNcdTA2MjdcdTA2MkJcdTA2NDhcdTA2NDRcdTA2NEFcdTA2NDM2XHUwNjQ4XHUwNjQ1M1x1MDY0NVx1MDYzNVx1MDYzMTJcdTA2NDRcdTA2NEFcdTA2MzNcdTA2NEFcdTA2Mjc1XHUwNjQ4XHUwNjMxXHUwNjRBXHUwNjJBXHUwNjI3XHUwNjQ2XHUwNjRBXHUwNjI3N1x1MDY0Mlx1MDYzOTRcdTA2NDdcdTA2NDVcdTA2MzFcdTA2MjdcdTA2NDc1XHUwNjdFXHUwNjI3XHUwNkE5XHUwNjMzXHUwNjJBXHUwNjI3XHUwNjQ2N1x1MDY4MFx1MDYyN1x1MDYzMVx1MDYyQTRcdTA5MTVcdTA5NDlcdTA5MkUzXHUwOTI4XHUwOTQ3XHUwOTFGM1x1MDkyRFx1MDkzRVx1MDkzMFx1MDkyNDBcdTA5MkVcdTA5NEQzXHUwOTRCXHUwOTI0NVx1MDkzOFx1MDkwMlx1MDkxN1x1MDkyMFx1MDkyODVcdTA5QUNcdTA5QkVcdTA5ODJcdTA5QjJcdTA5QkU1XHUwOUFEXHUwOUJFXHUwOUIwXHUwOUE0Mlx1MDlGMFx1MDlBNDRcdTBBMkRcdTBBM0VcdTBBMzBcdTBBMjQ0XHUwQUFEXHUwQUJFXHUwQUIwXHUwQUE0NFx1MEIyRFx1MEIzRVx1MEIzMFx1MEIyNDRcdTBCODdcdTBCQThcdTBCQ0RcdTBCQTRcdTBCQkZcdTBCQUZcdTBCQkU2XHUwQkIyXHUwQjk5XHUwQkNEXHUwQjk1XHUwQkM4Nlx1MEI5QVx1MEJCRlx1MEI5OVx1MEJDRFx1MEI5NVx1MEJBQVx1MEJDRFx1MEJBQVx1MEJDMlx1MEJCMFx1MEJDRDExXHUwQzJEXHUwQzNFXHUwQzMwXHUwQzI0XHUwQzRENVx1MENBRFx1MENCRVx1MENCMFx1MENBNDRcdTBEMkRcdTBEM0VcdTBEMzBcdTBEMjRcdTBEMDI1XHUwREJEXHUwRDgyXHUwRDlBXHUwRENGNFx1MEUwNFx1MEUyRFx1MEUyMTNcdTBFNDRcdTBFMTdcdTBFMjIzXHUwRUE1XHUwRUIyXHUwRUE3M1x1MTBEMlx1MTBENDJcdTMwN0ZcdTMwOTNcdTMwNkEzXHUzMEEyXHUzMERFXHUzMEJFXHUzMEYzNFx1MzBBRlx1MzBFOVx1MzBBNlx1MzBDOTRcdTMwQjBcdTMwRkNcdTMwQjBcdTMwRUI0XHUzMEIzXHUzMEUwMlx1MzBCOVx1MzBDOFx1MzBBMjNcdTMwQkJcdTMwRkNcdTMwRUIzXHUzMEQ1XHUzMEExXHUzMEMzXHUzMEI3XHUzMEU3XHUzMEYzNlx1MzBERFx1MzBBNFx1MzBGM1x1MzBDODRcdTRFMTZcdTc1NEMyXHU0RTJEXHU0RkUxMVx1NTZGRDFcdTU3MEIxXHU2NTg3XHU3RjUxM1x1NEU5QVx1OUE2Q1x1OTAwQTNcdTRGMDFcdTRFMUEyXHU0RjVCXHU1QzcxMlx1NEZFMVx1NjA2RjJcdTUwNjVcdTVFQjcyXHU1MTZCXHU1MzY2Mlx1NTE2Q1x1NTNGODFcdTc2Q0EyXHU1M0YwXHU2RTdFMVx1NzA2MzJcdTU1NDZcdTU3Q0UxXHU1RTk3MVx1NjgwNzJcdTU2MDlcdTkxQ0MwXHU1OTI3XHU5MTUyXHU1RTk3NVx1NTcyOFx1N0VCRjJcdTU5MjdcdTYyRkYyXHU1OTI5XHU0RTNCXHU2NTU5M1x1NUEzMVx1NEU1MDJcdTVCQjZcdTk2RkIyXHU1RTdGXHU0RTFDMlx1NUZBRVx1NTM1QTJcdTYxNDhcdTU1ODQyXHU2MjExXHU3MjMxXHU0RjYwM1x1NjI0Qlx1NjczQTJcdTYyREJcdTgwNTgyXHU2NTNGXHU1MkExMVx1NUU5QzJcdTY1QjBcdTUyQTBcdTU3NjEyXHU5NUZCMlx1NjVGNlx1NUMxQTJcdTY2RjhcdTdDNEQyXHU2NzNBXHU2Nzg0Mlx1NkRFMVx1OUE2Q1x1OTUyMTNcdTZFMzhcdTYyMEYyXHU2RkIzXHU5NTgwMlx1NzBCOVx1NzcwQjJcdTc5RkJcdTUyQTgyXHU3RUM0XHU3RUM3XHU2NzNBXHU2Nzg0NFx1N0Y1MVx1NTc0MDFcdTVFOTcxXHU3QUQ5MVx1N0VEQzJcdTgwNTRcdTkwMUEyXHU4QzM3XHU2QjRDMlx1OEQyRFx1NzI2OTJcdTkwMUFcdThDQTkyXHU5NkM2XHU1NkUyMlx1OTZGQlx1OEEwQVx1NzZDOFx1NzlEMTRcdTk4REVcdTUyMjlcdTZENjYzXHU5OERGXHU1NEMxMlx1OTkxMFx1NTM4NTJcdTk5OTlcdTY4M0NcdTkxQ0NcdTYyQzkzXHU2RTJGMlx1QjJGN1x1QjEzNzFcdUNFRjQyXHVDMEJDXHVDMTMxMlx1RDU1Q1x1QUQ2RDIiLEpaZT0ibnVtZXJpYyIsZVhlPSJhc2NpaSIsdFhlPSJhbHBoYSIsdlc9ImFzY2lpbnVtZXJpYyIseFc9ImFscGhhbnVtZXJpYyIsYVhlPSJkb21haW4iLHYyYT0iZW1vamkiLFNJYT0ic2NoZW1lIix6SWE9InNsYXNoc2NoZW1lIixyWGU9IndoaXRlc3BhY2UiO3MoQ0lhLCJyZWdpc3Rlckdyb3VwIik7cyhpNSwiYWRkVG9Hcm91cHMiKTtzKF9JYSwiZmxhZ3NGb3JUb2tlbiIpO3MoSmksIlN0YXRlIiksSmkuZ3JvdXBzPXt9LEppLnByb3RvdHlwZT17YWNjZXB0cygpe3JldHVybiEhdGhpcy50fSxnbyhhKXtsZXQgZT10aGlzLHQ9ZS5qW2FdO2lmKHQpcmV0dXJuIHQ7Zm9yKGxldCByPTA7cjxlLmpyLmxlbmd0aDtyKyspe2xldCBpPWUuanJbcl1bMF0sbz1lLmpyW3JdWzFdO2lmKG8mJmkudGVzdChhKSlyZXR1cm4gb31yZXR1cm4gZS5qZH0saGFzKGEsZT0hMSl7cmV0dXJuIGU/YSBpbiB0aGlzLmo6ISF0aGlzLmdvKGEpfSx0YShhLGUsdCxyKXtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKyl0aGlzLnR0KGFbaV0sZSx0LHIpfSx0cihhLGUsdCxyKXtyPXJ8fEppLmdyb3VwcztsZXQgaTtyZXR1cm4gZSYmZS5qP2k9ZTooaT1uZXcgSmkoZSksdCYmciYmaTUoZSx0LHIpKSx0aGlzLmpyLnB1c2goW2EsaV0pLGl9LHRzKGEsZSx0LHIpe2xldCBpPXRoaXMsbz1hLmxlbmd0aDtpZighbylyZXR1cm4gaTtmb3IobGV0IG49MDtuPG8tMTtuKyspaT1pLnR0KGFbbl0pO3JldHVybiBpLnR0KGFbby0xXSxlLHQscil9LHR0KGEsZSx0LHIpe3I9cnx8SmkuZ3JvdXBzO2xldCBpPXRoaXM7aWYoZSYmZS5qKXJldHVybiBpLmpbYV09ZSxlO2xldCBvPWUsbixsPWkuZ28oYSk7aWYobD8obj1uZXcgSmksT2JqZWN0LmFzc2lnbihuLmosbC5qKSxuLmpyLnB1c2guYXBwbHkobi5qcixsLmpyKSxuLmpkPWwuamQsbi50PWwudCk6bj1uZXcgSmksbyl7aWYocilpZihuLnQmJnR5cGVvZiBuLnQ9PSJzdHJpbmciKXtsZXQgZD1PYmplY3QuYXNzaWduKF9JYShuLnQsciksdCk7aTUobyxkLHIpfWVsc2UgdCYmaTUobyx0LHIpO24udD1vfXJldHVybiBpLmpbYV09bixufX07YWE9cygoYSxlLHQscixpKT0+YS50YShlLHQscixpKSwidGEiKSxIcj1zKChhLGUsdCxyLGkpPT5hLnRyKGUsdCxyLGkpLCJ0ciIpLHgyYT1zKChhLGUsdCxyLGkpPT5hLnRzKGUsdCxyLGkpLCJ0cyIpLEtlPXMoKGEsZSx0LHIsaSk9PmEudHQoZSx0LHIsaSksInR0IiksTWM9IldPUkQiLHNYZT0iVVdPUkQiLHkyYT0iQVNDSUlOVU1FUklDQUwiLHcyYT0iQUxQSEFOVU1FUklDQUwiLHlXPSJMT0NBTEhPU1QiLGlYZT0iVExEIixvWGU9IlVUTEQiLGFzZT0iU0NIRU1FIixPbT0iU0xBU0hfU0NIRU1FIixuWGU9Ik5VTSIsbFhlPSJXUyIsY1hlPSJOTCIsd1c9Ik9QRU5CUkFDRSIsTVc9IkNMT1NFQlJBQ0UiLHJzZT0iT1BFTkJSQUNLRVQiLHNzZT0iQ0xPU0VCUkFDS0VUIixpc2U9Ik9QRU5QQVJFTiIsb3NlPSJDTE9TRVBBUkVOIixuc2U9Ik9QRU5BTkdMRUJSQUNLRVQiLGxzZT0iQ0xPU0VBTkdMRUJSQUNLRVQiLGNzZT0iRlVMTFdJRFRITEVGVFBBUkVOIixkc2U9IkZVTExXSURUSFJJR0hUUEFSRU4iLHVzZT0iTEVGVENPUk5FUkJSQUNLRVQiLHBzZT0iUklHSFRDT1JORVJCUkFDS0VUIixmc2U9IkxFRlRXSElURUNPUk5FUkJSQUNLRVQiLGhzZT0iUklHSFRXSElURUNPUk5FUkJSQUNLRVQiLG1zZT0iRlVMTFdJRFRITEVTU1RIQU4iLGdzZT0iRlVMTFdJRFRIR1JFQVRFUlRIQU4iLGJzZT0iQU1QRVJTQU5EIix2c2U9IkFQT1NUUk9QSEUiLHhzZT0iQVNURVJJU0siLE00PSJBVCIseXNlPSJCQUNLU0xBU0giLHdzZT0iQkFDS1RJQ0siLE1zZT0iQ0FSRVQiLGs0PSJDT0xPTiIsZFhlPSJDT01NQSIsa3NlPSJET0xMQVIiLHJsPSJET1QiLFNzZT0iRVFVQUxTIix1WGU9IkVYQ0xBTUFUSU9OIixIbj0iSFlQSEVOIixrVz0iUEVSQ0VOVCIsenNlPSJQSVBFIixDc2U9IlBMVVMiLF9zZT0iUE9VTkQiLFNXPSJRVUVSWSIscFhlPSJRVU9URSIsTTJhPSJGVUxMV0lEVEhNSURETEVET1QiLGZYZT0iU0VNSSIsc2w9IlNMQVNIIix6Vz0iVElMREUiLFRzZT0iVU5ERVJTQ09SRSIsazJhPSJFTU9KSSIsTHNlPSJTWU0iLFMyYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBTFBIQU5VTUVSSUNBTDp3MmEsQU1QRVJTQU5EOmJzZSxBUE9TVFJPUEhFOnZzZSxBU0NJSU5VTUVSSUNBTDp5MmEsQVNURVJJU0s6eHNlLEFUOk00LEJBQ0tTTEFTSDp5c2UsQkFDS1RJQ0s6d3NlLENBUkVUOk1zZSxDTE9TRUFOR0xFQlJBQ0tFVDpsc2UsQ0xPU0VCUkFDRTpNVyxDTE9TRUJSQUNLRVQ6c3NlLENMT1NFUEFSRU46b3NlLENPTE9OOms0LENPTU1BOmRYZSxET0xMQVI6a3NlLERPVDpybCxFTU9KSTprMmEsRVFVQUxTOlNzZSxFWENMQU1BVElPTjp1WGUsRlVMTFdJRFRIR1JFQVRFUlRIQU46Z3NlLEZVTExXSURUSExFRlRQQVJFTjpjc2UsRlVMTFdJRFRITEVTU1RIQU46bXNlLEZVTExXSURUSE1JRERMRURPVDpNMmEsRlVMTFdJRFRIUklHSFRQQVJFTjpkc2UsSFlQSEVOOkhuLExFRlRDT1JORVJCUkFDS0VUOnVzZSxMRUZUV0hJVEVDT1JORVJCUkFDS0VUOmZzZSxMT0NBTEhPU1Q6eVcsTkw6Y1hlLE5VTTpuWGUsT1BFTkFOR0xFQlJBQ0tFVDpuc2UsT1BFTkJSQUNFOndXLE9QRU5CUkFDS0VUOnJzZSxPUEVOUEFSRU46aXNlLFBFUkNFTlQ6a1csUElQRTp6c2UsUExVUzpDc2UsUE9VTkQ6X3NlLFFVRVJZOlNXLFFVT1RFOnBYZSxSSUdIVENPUk5FUkJSQUNLRVQ6cHNlLFJJR0hUV0hJVEVDT1JORVJCUkFDS0VUOmhzZSxTQ0hFTUU6YXNlLFNFTUk6ZlhlLFNMQVNIOnNsLFNMQVNIX1NDSEVNRTpPbSxTWU06THNlLFRJTERFOnpXLFRMRDppWGUsVU5ERVJTQ09SRTpUc2UsVVRMRDpvWGUsVVdPUkQ6c1hlLFdPUkQ6TWMsV1M6bFhlfSksaWw9L1thLXpdLyxGbT0vXHB7TH0vdSwkc2U9L1xwe0Vtb2ppfS91LFRJYT0vXHVmZTBmLyxvbD0vXGQvLERzZT0vXHMvLExJYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBU0NJSV9MRVRURVI6aWwsRElHSVQ6b2wsRU1PSkk6JHNlLEVNT0pJX1ZBUklBVElPTjpUSWEsTEVUVEVSOkZtLFNQQUNFOkRzZX0pLHoyYT0iXHIiLGhYZT1gCmAsJElhPSJcdUZFMEYiLERJYT0iXHUyMDBEIixtWGU9Ilx1RkZGQyIsQXNlPW51bGwsUHNlPW51bGw7cyhBSWEsImluaXQkMiIpO3MoQzJhLCJydW4kMSIpO3MoXzJhLCJzdHJpbmdUb0FycmF5Iik7cyhTNCwiZmFzdHRzIik7cyhUMmEsImRlY29kZVRsZHMiKTtCbT17ZGVmYXVsdFByb3RvY29sOiJodHRwIixldmVudHM6bnVsbCxmb3JtYXQ6TDJhLGZvcm1hdEhyZWY6TDJhLG5sMmJyOiExLHRhZ05hbWU6ImEiLHRhcmdldDpudWxsLHJlbDpudWxsLHZhbGlkYXRlOiEwLHRydW5jYXRlOjEvMCxjbGFzc05hbWU6bnVsbCxhdHRyaWJ1dGVzOm51bGwsaWdub3JlVGFnczpbXSxyZW5kZXI6bnVsbH07cyhDVywiT3B0aW9ucyIpLENXLnByb3RvdHlwZT17bzpCbSxpZ25vcmVUYWdzOltdLGRlZmF1bHRSZW5kZXIoYSl7cmV0dXJuIGF9LGNoZWNrKGEpe3JldHVybiB0aGlzLmdldCgidmFsaWRhdGUiLGEudG9TdHJpbmcoKSxhKX0sZ2V0KGEsZSx0KXtsZXQgcj1lIT1udWxsLGk9dGhpcy5vW2FdO3JldHVybiBpJiYodHlwZW9mIGk9PSJvYmplY3QiPyhpPXQudCBpbiBpP2lbdC50XTpCbVthXSx0eXBlb2YgaT09ImZ1bmN0aW9uIiYmciYmKGk9aShlLHQpKSk6dHlwZW9mIGk9PSJmdW5jdGlvbiImJnImJihpPWkoZSx0LnQsdCkpLGkpfSxnZXRPYmooYSxlLHQpe2xldCByPXRoaXMub1thXTtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiImJmUhPW51bGwmJihyPXIoZSx0LnQsdCkpLHJ9LHJlbmRlcihhKXtsZXQgZT1hLnJlbmRlcih0aGlzKTtyZXR1cm4odGhpcy5nZXQoInJlbmRlciIsbnVsbCxhKXx8dGhpcy5kZWZhdWx0UmVuZGVyKShlLGEudCxhKX19O3MoTDJhLCJub29wIik7UElhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLE9wdGlvbnM6Q1csZGVmYXVsdHM6Qm19KTtzKF9XLCJNdWx0aVRva2VuIiksX1cucHJvdG90eXBlPXtpc0xpbms6ITEsdG9TdHJpbmcoKXtyZXR1cm4gdGhpcy52fSx0b0hyZWYoYSl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdG9Gb3JtYXR0ZWRTdHJpbmcoYSl7bGV0IGU9dGhpcy50b1N0cmluZygpLHQ9YS5nZXQoInRydW5jYXRlIixlLHRoaXMpLHI9YS5nZXQoImZvcm1hdCIsZSx0aGlzKTtyZXR1cm4gdCYmci5sZW5ndGg+dD9yLnN1YnN0cmluZygwLHQpKyJcdTIwMjYiOnJ9LHRvRm9ybWF0dGVkSHJlZihhKXtyZXR1cm4gYS5nZXQoImZvcm1hdEhyZWYiLHRoaXMudG9IcmVmKGEuZ2V0KCJkZWZhdWx0UHJvdG9jb2wiKSksdGhpcyl9LHN0YXJ0SW5kZXgoKXtyZXR1cm4gdGhpcy50a1swXS5zfSxlbmRJbmRleCgpe3JldHVybiB0aGlzLnRrW3RoaXMudGsubGVuZ3RoLTFdLmV9LHRvT2JqZWN0KGE9Qm0uZGVmYXVsdFByb3RvY29sKXtyZXR1cm57dHlwZTp0aGlzLnQsdmFsdWU6dGhpcy50b1N0cmluZygpLGlzTGluazp0aGlzLmlzTGluayxocmVmOnRoaXMudG9IcmVmKGEpLHN0YXJ0OnRoaXMuc3RhcnRJbmRleCgpLGVuZDp0aGlzLmVuZEluZGV4KCl9fSx0b0Zvcm1hdHRlZE9iamVjdChhKXtyZXR1cm57dHlwZTp0aGlzLnQsdmFsdWU6dGhpcy50b0Zvcm1hdHRlZFN0cmluZyhhKSxpc0xpbms6dGhpcy5pc0xpbmssaHJlZjp0aGlzLnRvRm9ybWF0dGVkSHJlZihhKSxzdGFydDp0aGlzLnN0YXJ0SW5kZXgoKSxlbmQ6dGhpcy5lbmRJbmRleCgpfX0sdmFsaWRhdGUoYSl7cmV0dXJuIGEuZ2V0KCJ2YWxpZGF0ZSIsdGhpcy50b1N0cmluZygpLHRoaXMpfSxyZW5kZXIoYSl7bGV0IGU9dGhpcyx0PXRoaXMudG9IcmVmKGEuZ2V0KCJkZWZhdWx0UHJvdG9jb2wiKSkscj1hLmdldCgiZm9ybWF0SHJlZiIsdCx0aGlzKSxpPWEuZ2V0KCJ0YWdOYW1lIix0LGUpLG89dGhpcy50b0Zvcm1hdHRlZFN0cmluZyhhKSxuPXt9LGw9YS5nZXQoImNsYXNzTmFtZSIsdCxlKSxkPWEuZ2V0KCJ0YXJnZXQiLHQsZSksYz1hLmdldCgicmVsIix0LGUpLHA9YS5nZXRPYmooImF0dHJpYnV0ZXMiLHQsZSksdT1hLmdldE9iaigiZXZlbnRzIix0LGUpO3JldHVybiBuLmhyZWY9cixsJiYobi5jbGFzcz1sKSxkJiYobi50YXJnZXQ9ZCksYyYmKG4ucmVsPWMpLHAmJk9iamVjdC5hc3NpZ24obixwKSx7dGFnTmFtZTppLGF0dHJpYnV0ZXM6bixjb250ZW50Om8sZXZlbnRMaXN0ZW5lcnM6dX19fTtzKEhtLCJjcmVhdGVUb2tlbkNsYXNzIik7Z1hlPUhtKCJlbWFpbCIse2lzTGluazohMCx0b0hyZWYoKXtyZXR1cm4ibWFpbHRvOiIrdGhpcy50b1N0cmluZygpfX0pLGJYZT1IbSgidGV4dCIpLCQyYT1IbSgibmwiKSxUVz1IbSgidXJsIix7aXNMaW5rOiEwLHRvSHJlZihhPUJtLmRlZmF1bHRQcm90b2NvbCl7cmV0dXJuIHRoaXMuaGFzUHJvdG9jb2woKT90aGlzLnY6YCR7YX06Ly8ke3RoaXMudn1gfSxoYXNQcm90b2NvbCgpe2xldCBhPXRoaXMudGs7cmV0dXJuIGEubGVuZ3RoPj0yJiZhWzBdLnQhPT15VyYmYVsxXS50PT09azR9fSksRDJhPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEJhc2U6X1csRW1haWw6Z1hlLE11bHRpVG9rZW46X1csTmw6JDJhLFRleHQ6YlhlLFVybDpUVyxjcmVhdGVUb2tlbkNsYXNzOkhtfSkscW49cyhhPT5uZXcgSmkoYSksIm1ha2VTdGF0ZSIpO3MoRUlhLCJpbml0JDEiKTtzKElJYSwicnVuIik7cyh2WGUsImluaXRNdWx0aVRva2VuIik7TFc9dHlwZW9mIGNvbnNvbGU8InUiJiZjb25zb2xlJiZjb25zb2xlLndhcm58fCgoKT0+e30pLHhYZT0idW50aWwgbWFudWFsIGNhbGwgb2YgbGlua2lmeS5pbml0KCkuIFJlZ2lzdGVyIGFsbCBzY2hlbWVzIGFuZCBwbHVnaW5zIGJlZm9yZSBpbnZva2luZyBsaW5raWZ5IHRoZSBmaXJzdCB0aW1lLiIsQ2E9e3NjYW5uZXI6bnVsbCxwYXJzZXI6bnVsbCx0b2tlblF1ZXVlOltdLHBsdWdpblF1ZXVlOltdLGN1c3RvbVNjaGVtZXM6W10saW5pdGlhbGl6ZWQ6ITF9O3MoeVhlLCJyZXNldCIpO3MoTklhLCJyZWdpc3RlclRva2VuUGx1Z2luIik7cyhSSWEsInJlZ2lzdGVyUGx1Z2luIik7cyhFc2UsInJlZ2lzdGVyQ3VzdG9tUHJvdG9jb2wiKTtzKEEyYSwiaW5pdCIpO3MocW0sInRva2VuaXplIikscW0uc2Nhbj1DMmE7cyhJc2UsImZpbmQiKTtzKE9JYSwidGVzdCIpfSk7dmFyIEkyYT17fTtsdChJMmEse0xpbms6KCk9Pk1YZSxkZWZhdWx0OigpPT5NWGUsaXNBbGxvd2VkVXJpOigpPT5rYyxwYXN0ZVJlZ2V4OigpPT5FMmF9KTtmdW5jdGlvbiBxSWEoYSl7cmV0dXJuIGEubGVuZ3RoPT09MT9hWzBdLmlzTGluazphLmxlbmd0aD09PTMmJmFbMV0uaXNMaW5rP1siKCkiLCJbXSJdLmluY2x1ZGVzKGFbMF0udmFsdWUrYVsyXS52YWx1ZSk6ITF9ZnVuY3Rpb24gVklhKGEpe3JldHVybiBuZXcgYXIoe2tleTpuZXcgYnMoImF1dG9saW5rIiksYXBwZW5kVHJhbnNhY3Rpb246cygoZSx0LHIpPT57bGV0IGk9ZS5zb21lKGM9PmMuZG9jQ2hhbmdlZCkmJiF0LmRvYy5lcShyLmRvYyksbz1lLnNvbWUoYz0+Yy5nZXRNZXRhKCJwcmV2ZW50QXV0b2xpbmsiKSk7aWYoIWl8fG8pcmV0dXJuO2xldHt0cjpufT1yLGw9Q3JlKHQuZG9jLFsuLi5lXSk7aWYoVHJlKGwpLmZvckVhY2goKHtuZXdSYW5nZTpjfSk9PntsZXQgcD1fcmUoci5kb2MsYyx2PT52LmlzVGV4dGJsb2NrKSx1LG07aWYocC5sZW5ndGg+MSl1PXBbMF0sbT1yLmRvYy50ZXh0QmV0d2Vlbih1LnBvcyx1LnBvcyt1Lm5vZGUubm9kZVNpemUsdm9pZCAwLCIgIik7ZWxzZSBpZihwLmxlbmd0aCl7bGV0IHY9ci5kb2MudGV4dEJldHdlZW4oYy5mcm9tLGMudG8sIiAiLCIgIik7aWYoIUJJYS50ZXN0KHYpKXJldHVybjt1PXBbMF0sbT1yLmRvYy50ZXh0QmV0d2Vlbih1LnBvcyxjLnRvLHZvaWQgMCwiICIpfWlmKHUmJm0pe2xldCB2PW0uc3BsaXQoRklhKS5maWx0ZXIoQm9vbGVhbik7aWYodi5sZW5ndGg8PTApcmV0dXJuITE7bGV0IHg9dlt2Lmxlbmd0aC0xXSxiPXUucG9zK20ubGFzdEluZGV4T2YoeCk7aWYoIXgpcmV0dXJuITE7bGV0IGc9cW0oeCkubWFwKHk9PnkudG9PYmplY3QoYS5kZWZhdWx0UHJvdG9jb2wpKTtpZighcUlhKGcpKXJldHVybiExO2cuZmlsdGVyKHk9PnkuaXNMaW5rKS5tYXAoeT0+KHsuLi55LGZyb206Yit5LnN0YXJ0KzEsdG86Yit5LmVuZCsxfSkpLmZpbHRlcih5PT5yLnNjaGVtYS5tYXJrcy5jb2RlPyFyLmRvYy5yYW5nZUhhc01hcmsoeS5mcm9tLHkudG8sci5zY2hlbWEubWFya3MuY29kZSk6ITApLmZpbHRlcih5PT5hLnZhbGlkYXRlKHkudmFsdWUpKS5maWx0ZXIoeT0+YS5zaG91bGRBdXRvTGluayh5LnZhbHVlKSkuZm9yRWFjaCh5PT57Um0oeS5mcm9tLHkudG8sci5kb2MpLnNvbWUoaz0+ay5tYXJrLnR5cGU9PT1hLnR5cGUpfHxuLmFkZE1hcmsoeS5mcm9tLHkudG8sYS50eXBlLmNyZWF0ZSh7aHJlZjp5LmhyZWZ9KSl9KX19KSwhIW4uc3RlcHMubGVuZ3RoKXJldHVybiBufSwiYXBwZW5kVHJhbnNhY3Rpb24iKX0pfWZ1bmN0aW9uIGpJYShhKXtyZXR1cm4gbmV3IGFyKHtrZXk6bmV3IGJzKCJoYW5kbGVDbGlja0xpbmsiKSxwcm9wczp7aGFuZGxlQ2xpY2s6cygoZSx0LHIpPT57dmFyIGksbztpZihyLmJ1dHRvbiE9PTB8fCFlLmVkaXRhYmxlKXJldHVybiExO2xldCBuPXIudGFyZ2V0LGw9W107Zm9yKDtuLm5vZGVOYW1lIT09IkRJViI7KWwucHVzaChuKSxuPW4ucGFyZW50Tm9kZTtpZighbC5maW5kKG09Pm0ubm9kZU5hbWU9PT0iQSIpKXJldHVybiExO2xldCBkPWJXKGUuc3RhdGUsYS50eXBlLm5hbWUpLGM9ci50YXJnZXQscD0oaT1jPy5ocmVmKSE9PW51bGwmJmkhPT12b2lkIDA/aTpkLmhyZWYsdT0obz1jPy50YXJnZXQpIT09bnVsbCYmbyE9PXZvaWQgMD9vOmQudGFyZ2V0O3JldHVybiBjJiZwPyh3aW5kb3cub3BlbihwLHUpLCEwKTohMX0sImhhbmRsZUNsaWNrIil9fSl9ZnVuY3Rpb24gVUlhKGEpe3JldHVybiBuZXcgYXIoe2tleTpuZXcgYnMoImhhbmRsZVBhc3RlTGluayIpLHByb3BzOntoYW5kbGVQYXN0ZTpzKChlLHQscik9PntsZXR7c3RhdGU6aX09ZSx7c2VsZWN0aW9uOm99PWkse2VtcHR5Om59PW87aWYobilyZXR1cm4hMTtsZXQgbD0iIjtyLmNvbnRlbnQuZm9yRWFjaChjPT57bCs9Yy50ZXh0Q29udGVudH0pO2xldCBkPUlzZShsLHtkZWZhdWx0UHJvdG9jb2w6YS5kZWZhdWx0UHJvdG9jb2x9KS5maW5kKGM9PmMuaXNMaW5rJiZjLnZhbHVlPT09bCk7cmV0dXJuIWx8fCFkPyExOmEuZWRpdG9yLmNvbW1hbmRzLnNldE1hcmsoYS50eXBlLHtocmVmOmQuaHJlZn0pfSwiaGFuZGxlUGFzdGUiKX19KX1mdW5jdGlvbiBrYyhhLGUpe2xldCB0PVsiaHR0cCIsImh0dHBzIiwiZnRwIiwiZnRwcyIsIm1haWx0byIsInRlbCIsImNhbGx0byIsInNtcyIsImNpZCIsInhtcHAiXTtyZXR1cm4gZSYmZS5mb3JFYWNoKHI9PntsZXQgaT10eXBlb2Ygcj09InN0cmluZyI/cjpyLnNjaGVtZTtpJiZ0LnB1c2goaSl9KSwhYXx8YS5yZXBsYWNlKEhJYSwiIikubWF0Y2gobmV3IFJlZ0V4cChgXig/Oig/OiR7dC5qb2luKCJ8Iil9KTp8W15hLXpdfFthLXowLTkrLi1dKyg/OlteYS16Ky4tOl18JCkpYCwiaSIpKX12YXIgd1hlLEZJYSxCSWEsSElhLEUyYSxNWGUsTjJhPWYoKCk9PntncigpO1AyYSgpO1pVKCk7d1hlPSJbXDAtIFx4QTBcdTE2ODBcdTE4MEVcdTIwMDAtXHUyMDI5XHUyMDVGXHUzMDAwXSIsRklhPW5ldyBSZWdFeHAod1hlKSxCSWE9bmV3IFJlZ0V4cChgJHt3WGV9JGApLEhJYT1uZXcgUmVnRXhwKHdYZSwiZyIpO3MocUlhLCJpc1ZhbGlkTGlua1N0cnVjdHVyZSIpO3MoVklhLCJhdXRvbGluayIpO3MoaklhLCJjbGlja0hhbmRsZXIiKTtzKFVJYSwicGFzdGVIYW5kbGVyIik7RTJhPS9odHRwcz86XC9cLyg/Ond3d1wuKT9bLWEtekEtWjAtOUA6JS5fK34jPV17MSwyNTZ9XC5bYS16QS1aXXsyLH1cYig/OlstYS16QS1aMC05QDolLl8rfiM9PyEmL10qKSg/OlstYS16QS1aMC05QDolLl8rfiM9PyEmL10qKS9naTtzKGtjLCJpc0FsbG93ZWRVcmkiKTtNWGU9bmkuY3JlYXRlKHtuYW1lOiJsaW5rIixwcmlvcml0eToxZTMsa2VlcE9uU3BsaXQ6ITEsZXhpdGFibGU6ITAsb25DcmVhdGUoKXt0aGlzLm9wdGlvbnMudmFsaWRhdGUmJiF0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbmsmJih0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbms9dGhpcy5vcHRpb25zLnZhbGlkYXRlLGNvbnNvbGUud2FybigiVGhlIGB2YWxpZGF0ZWAgb3B0aW9uIGlzIGRlcHJlY2F0ZWQuIFJlbmFtZSB0byB0aGUgYHNob3VsZEF1dG9MaW5rYCBvcHRpb24gaW5zdGVhZC4iKSksdGhpcy5vcHRpb25zLnByb3RvY29scy5mb3JFYWNoKGE9PntpZih0eXBlb2YgYT09InN0cmluZyIpe0VzZShhKTtyZXR1cm59RXNlKGEuc2NoZW1lLGEub3B0aW9uYWxTbGFzaGVzKX0pfSxvbkRlc3Ryb3koKXt5WGUoKX0saW5jbHVzaXZlKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvbGlua30sYWRkT3B0aW9ucygpe3JldHVybntvcGVuT25DbGljazohMCxsaW5rT25QYXN0ZTohMCxhdXRvbGluazohMCxwcm90b2NvbHM6W10sZGVmYXVsdFByb3RvY29sOiJodHRwIixIVE1MQXR0cmlidXRlczp7dGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvdyIsY2xhc3M6bnVsbH0saXNBbGxvd2VkVXJpOnMoKGEsZSk9PiEha2MoYSxlLnByb3RvY29scyksImlzQWxsb3dlZFVyaSIpLHZhbGlkYXRlOnMoYT0+ISFhLCJ2YWxpZGF0ZSIpLHNob3VsZEF1dG9MaW5rOnMoYT0+ISFhLCJzaG91bGRBdXRvTGluayIpfX0sYWRkQXR0cmlidXRlcygpe3JldHVybntocmVmOntkZWZhdWx0Om51bGwscGFyc2VIVE1MKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0sdGFyZ2V0OntkZWZhdWx0OnRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcy50YXJnZXR9LHJlbDp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMucmVsfSxjbGFzczp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMuY2xhc3N9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImFbaHJlZl0iLGdldEF0dHJzOnMoYT0+e2xldCBlPWEuZ2V0QXR0cmlidXRlKCJocmVmIik7cmV0dXJuIWV8fCF0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKGUse2RlZmF1bHRWYWxpZGF0ZTpzKHQ9PiEha2ModCx0aGlzLm9wdGlvbnMucHJvdG9jb2xzKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOnRoaXMub3B0aW9ucy5wcm90b2NvbHMsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2x9KT8hMTpudWxsfSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczphfSl7cmV0dXJuIHRoaXMub3B0aW9ucy5pc0FsbG93ZWRVcmkoYS5ocmVmLHtkZWZhdWx0VmFsaWRhdGU6cyhlPT4hIWtjKGUsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/WyJhIix6YSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsYSksMF06WyJhIix6YSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsey4uLmEsaHJlZjoiIn0pLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRMaW5rOnMoYT0+KHtjaGFpbjplfSk9PntsZXR7aHJlZjp0fT1hO3JldHVybiB0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKHQse2RlZmF1bHRWYWxpZGF0ZTpzKHI9PiEha2Mocix0aGlzLm9wdGlvbnMucHJvdG9jb2xzKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOnRoaXMub3B0aW9ucy5wcm90b2NvbHMsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2x9KT9lKCkuc2V0TWFyayh0aGlzLm5hbWUsYSkuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCk6ITF9LCJzZXRMaW5rIiksdG9nZ2xlTGluazpzKGE9Pih7Y2hhaW46ZX0pPT57bGV0e2hyZWY6dH09YTtyZXR1cm4gdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaSh0LHtkZWZhdWx0VmFsaWRhdGU6cyhyPT4hIWtjKHIsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/ZSgpLnRvZ2dsZU1hcmsodGhpcy5uYW1lLGEse2V4dGVuZEVtcHR5TWFya1JhbmdlOiEwfSkuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCk6ITF9LCJ0b2dnbGVMaW5rIiksdW5zZXRMaW5rOnMoKCk9Pih7Y2hhaW46YX0pPT5hKCkudW5zZXRNYXJrKHRoaXMubmFtZSx7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6ITB9KS5zZXRNZXRhKCJwcmV2ZW50QXV0b2xpbmsiLCEwKS5ydW4oKSwidW5zZXRMaW5rIil9fSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW09vKHtmaW5kOnMoYT0+e2xldCBlPVtdO2lmKGEpe2xldHtwcm90b2NvbHM6dCxkZWZhdWx0UHJvdG9jb2w6cn09dGhpcy5vcHRpb25zLGk9SXNlKGEpLmZpbHRlcihvPT5vLmlzTGluayYmdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShvLnZhbHVlLHtkZWZhdWx0VmFsaWRhdGU6cyhuPT4hIWtjKG4sdCksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0LGRlZmF1bHRQcm90b2NvbDpyfSkpO2kubGVuZ3RoJiZpLmZvckVhY2gobz0+ZS5wdXNoKHt0ZXh0Om8udmFsdWUsZGF0YTp7aHJlZjpvLmhyZWZ9LGluZGV4Om8uc3RhcnR9KSl9cmV0dXJuIGV9LCJmaW5kIiksdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczpzKGE9Pnt2YXIgZTtyZXR1cm57aHJlZjooZT1hLmRhdGEpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5ocmVmfX0sImdldEF0dHJpYnV0ZXMiKX0pXX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7bGV0IGE9W10se3Byb3RvY29sczplLGRlZmF1bHRQcm90b2NvbDp0fT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvbGluayYmYS5wdXNoKFZJYSh7dHlwZTp0aGlzLnR5cGUsZGVmYXVsdFByb3RvY29sOnRoaXMub3B0aW9ucy5kZWZhdWx0UHJvdG9jb2wsdmFsaWRhdGU6cyhyPT50aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKHIse2RlZmF1bHRWYWxpZGF0ZTpzKGk9PiEha2MoaSxlKSwiZGVmYXVsdFZhbGlkYXRlIikscHJvdG9jb2xzOmUsZGVmYXVsdFByb3RvY29sOnR9KSwidmFsaWRhdGUiKSxzaG91bGRBdXRvTGluazp0aGlzLm9wdGlvbnMuc2hvdWxkQXV0b0xpbmt9KSksdGhpcy5vcHRpb25zLm9wZW5PbkNsaWNrPT09ITAmJmEucHVzaChqSWEoe3R5cGU6dGhpcy50eXBlfSkpLHRoaXMub3B0aW9ucy5saW5rT25QYXN0ZSYmYS5wdXNoKFVJYSh7ZWRpdG9yOnRoaXMuZWRpdG9yLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sLHR5cGU6dGhpcy50eXBlfSkpLGF9fSl9KTt2YXIgUjJhPXt9O2x0KFIyYSx7VHlwb2dyYXBoeTooKT0+VVhlLGNsb3NlRG91YmxlUXVvdGU6KCk9PkNYZSxjbG9zZVNpbmdsZVF1b3RlOigpPT5UWGUsY29weXJpZ2h0OigpPT5EWGUsZGVmYXVsdDooKT0+VVhlLGVsbGlwc2lzOigpPT5TWGUsZW1EYXNoOigpPT5rWGUsbGFxdW86KCk9Pk9YZSxsZWZ0QXJyb3c6KCk9PkxYZSxtdWx0aXBsaWNhdGlvbjooKT0+QlhlLG5vdEVxdWFsOigpPT5SWGUsb25lSGFsZjooKT0+SVhlLG9uZVF1YXJ0ZXI6KCk9PlZYZSxvcGVuRG91YmxlUXVvdGU6KCk9PnpYZSxvcGVuU2luZ2xlUXVvdGU6KCk9Pl9YZSxwbHVzTWludXM6KCk9Pk5YZSxyYXF1bzooKT0+RlhlLHJlZ2lzdGVyZWRUcmFkZW1hcms6KCk9PkVYZSxyaWdodEFycm93OigpPT4kWGUsc2VydmljZW1hcms6KCk9PlBYZSxzdXBlcnNjcmlwdFRocmVlOigpPT5xWGUsc3VwZXJzY3JpcHRUd286KCk9PkhYZSx0aHJlZVF1YXJ0ZXJzOigpPT5qWGUsdHJhZGVtYXJrOigpPT5BWGV9KTt2YXIga1hlLFNYZSx6WGUsQ1hlLF9YZSxUWGUsTFhlLCRYZSxEWGUsQVhlLFBYZSxFWGUsSVhlLE5YZSxSWGUsT1hlLEZYZSxCWGUsSFhlLHFYZSxWWGUsalhlLFVYZSxPMmE9ZigoKT0+e2dyKCk7a1hlPXMoYT0+bXIoe2ZpbmQ6Ly0tJC8scmVwbGFjZTphPz8iXHUyMDE0In0pLCJlbURhc2giKSxTWGU9cyhhPT5tcih7ZmluZDovXC5cLlwuJC8scmVwbGFjZTphPz8iXHUyMDI2In0pLCJlbGxpcHNpcyIpLHpYZT1zKGE9Pm1yKHtmaW5kOi8oPzpefFtcc3tbKDwnIlx1MjAxOFx1MjAxQ10pKCIpJC8scmVwbGFjZTphPz8iXHUyMDFDIn0pLCJvcGVuRG91YmxlUXVvdGUiKSxDWGU9cyhhPT5tcih7ZmluZDovIiQvLHJlcGxhY2U6YT8/Ilx1MjAxRCJ9KSwiY2xvc2VEb3VibGVRdW90ZSIpLF9YZT1zKGE9Pm1yKHtmaW5kOi8oPzpefFtcc3tbKDwnIlx1MjAxOFx1MjAxQ10pKCcpJC8scmVwbGFjZTphPz8iXHUyMDE4In0pLCJvcGVuU2luZ2xlUXVvdGUiKSxUWGU9cyhhPT5tcih7ZmluZDovJyQvLHJlcGxhY2U6YT8/Ilx1MjAxOSJ9KSwiY2xvc2VTaW5nbGVRdW90ZSIpLExYZT1zKGE9Pm1yKHtmaW5kOi88LSQvLHJlcGxhY2U6YT8/Ilx1MjE5MCJ9KSwibGVmdEFycm93IiksJFhlPXMoYT0+bXIoe2ZpbmQ6Ly0+JC8scmVwbGFjZTphPz8iXHUyMTkyIn0pLCJyaWdodEFycm93IiksRFhlPXMoYT0+bXIoe2ZpbmQ6L1woY1wpJC8scmVwbGFjZTphPz8iXHhBOSJ9KSwiY29weXJpZ2h0IiksQVhlPXMoYT0+bXIoe2ZpbmQ6L1wodG1cKSQvLHJlcGxhY2U6YT8/Ilx1MjEyMiJ9KSwidHJhZGVtYXJrIiksUFhlPXMoYT0+bXIoe2ZpbmQ6L1woc21cKSQvLHJlcGxhY2U6YT8/Ilx1MjEyMCJ9KSwic2VydmljZW1hcmsiKSxFWGU9cyhhPT5tcih7ZmluZDovXChyXCkkLyxyZXBsYWNlOmE/PyJceEFFIn0pLCJyZWdpc3RlcmVkVHJhZGVtYXJrIiksSVhlPXMoYT0+bXIoe2ZpbmQ6Lyg/Ol58XHMpKDFcLzIpXHMkLyxyZXBsYWNlOmE/PyJceEJEIn0pLCJvbmVIYWxmIiksTlhlPXMoYT0+bXIoe2ZpbmQ6L1wrXC8tJC8scmVwbGFjZTphPz8iXHhCMSJ9KSwicGx1c01pbnVzIiksUlhlPXMoYT0+bXIoe2ZpbmQ6LyE9JC8scmVwbGFjZTphPz8iXHUyMjYwIn0pLCJub3RFcXVhbCIpLE9YZT1zKGE9Pm1yKHtmaW5kOi88PCQvLHJlcGxhY2U6YT8/Ilx4QUIifSksImxhcXVvIiksRlhlPXMoYT0+bXIoe2ZpbmQ6Lz4+JC8scmVwbGFjZTphPz8iXHhCQiJ9KSwicmFxdW8iKSxCWGU9cyhhPT5tcih7ZmluZDovXGQrXHM/KFsqeF0pXHM/XGQrJC8scmVwbGFjZTphPz8iXHhENyJ9KSwibXVsdGlwbGljYXRpb24iKSxIWGU9cyhhPT5tcih7ZmluZDovXF4yJC8scmVwbGFjZTphPz8iXHhCMiJ9KSwic3VwZXJzY3JpcHRUd28iKSxxWGU9cyhhPT5tcih7ZmluZDovXF4zJC8scmVwbGFjZTphPz8iXHhCMyJ9KSwic3VwZXJzY3JpcHRUaHJlZSIpLFZYZT1zKGE9Pm1yKHtmaW5kOi8oPzpefFxzKSgxXC80KVxzJC8scmVwbGFjZTphPz8iXHhCQyJ9KSwib25lUXVhcnRlciIpLGpYZT1zKGE9Pm1yKHtmaW5kOi8oPzpefFxzKSgzXC80KVxzJC8scmVwbGFjZTphPz8iXHhCRSJ9KSwidGhyZWVRdWFydGVycyIpLFVYZT13ci5jcmVhdGUoe25hbWU6InR5cG9ncmFwaHkiLGFkZE9wdGlvbnMoKXtyZXR1cm57Y2xvc2VEb3VibGVRdW90ZToiXHUyMDFEIixjbG9zZVNpbmdsZVF1b3RlOiJcdTIwMTkiLGNvcHlyaWdodDoiXHhBOSIsZWxsaXBzaXM6Ilx1MjAyNiIsZW1EYXNoOiJcdTIwMTQiLGxhcXVvOiJceEFCIixsZWZ0QXJyb3c6Ilx1MjE5MCIsbXVsdGlwbGljYXRpb246Ilx4RDciLG5vdEVxdWFsOiJcdTIyNjAiLG9uZUhhbGY6Ilx4QkQiLG9uZVF1YXJ0ZXI6Ilx4QkMiLG9wZW5Eb3VibGVRdW90ZToiXHUyMDFDIixvcGVuU2luZ2xlUXVvdGU6Ilx1MjAxOCIscGx1c01pbnVzOiJceEIxIixyYXF1bzoiXHhCQiIscmVnaXN0ZXJlZFRyYWRlbWFyazoiXHhBRSIscmlnaHRBcnJvdzoiXHUyMTkyIixzZXJ2aWNlbWFyazoiXHUyMTIwIixzdXBlcnNjcmlwdFRocmVlOiJceEIzIixzdXBlcnNjcmlwdFR3bzoiXHhCMiIsdGhyZWVRdWFydGVyczoiXHhCRSIsdHJhZGVtYXJrOiJcdTIxMjIifX0sYWRkSW5wdXRSdWxlcygpe2xldCBhPVtdO3JldHVybiB0aGlzLm9wdGlvbnMuZW1EYXNoIT09ITEmJmEucHVzaChrWGUodGhpcy5vcHRpb25zLmVtRGFzaCkpLHRoaXMub3B0aW9ucy5lbGxpcHNpcyE9PSExJiZhLnB1c2goU1hlKHRoaXMub3B0aW9ucy5lbGxpcHNpcykpLHRoaXMub3B0aW9ucy5vcGVuRG91YmxlUXVvdGUhPT0hMSYmYS5wdXNoKHpYZSh0aGlzLm9wdGlvbnMub3BlbkRvdWJsZVF1b3RlKSksdGhpcy5vcHRpb25zLmNsb3NlRG91YmxlUXVvdGUhPT0hMSYmYS5wdXNoKENYZSh0aGlzLm9wdGlvbnMuY2xvc2VEb3VibGVRdW90ZSkpLHRoaXMub3B0aW9ucy5vcGVuU2luZ2xlUXVvdGUhPT0hMSYmYS5wdXNoKF9YZSh0aGlzLm9wdGlvbnMub3BlblNpbmdsZVF1b3RlKSksdGhpcy5vcHRpb25zLmNsb3NlU2luZ2xlUXVvdGUhPT0hMSYmYS5wdXNoKFRYZSh0aGlzLm9wdGlvbnMuY2xvc2VTaW5nbGVRdW90ZSkpLHRoaXMub3B0aW9ucy5sZWZ0QXJyb3chPT0hMSYmYS5wdXNoKExYZSh0aGlzLm9wdGlvbnMubGVmdEFycm93KSksdGhpcy5vcHRpb25zLnJpZ2h0QXJyb3chPT0hMSYmYS5wdXNoKCRYZSh0aGlzLm9wdGlvbnMucmlnaHRBcnJvdykpLHRoaXMub3B0aW9ucy5jb3B5cmlnaHQhPT0hMSYmYS5wdXNoKERYZSh0aGlzLm9wdGlvbnMuY29weXJpZ2h0KSksdGhpcy5vcHRpb25zLnRyYWRlbWFyayE9PSExJiZhLnB1c2goQVhlKHRoaXMub3B0aW9ucy50cmFkZW1hcmspKSx0aGlzLm9wdGlvbnMuc2VydmljZW1hcmshPT0hMSYmYS5wdXNoKFBYZSh0aGlzLm9wdGlvbnMuc2VydmljZW1hcmspKSx0aGlzLm9wdGlvbnMucmVnaXN0ZXJlZFRyYWRlbWFyayE9PSExJiZhLnB1c2goRVhlKHRoaXMub3B0aW9ucy5yZWdpc3RlcmVkVHJhZGVtYXJrKSksdGhpcy5vcHRpb25zLm9uZUhhbGYhPT0hMSYmYS5wdXNoKElYZSh0aGlzLm9wdGlvbnMub25lSGFsZikpLHRoaXMub3B0aW9ucy5wbHVzTWludXMhPT0hMSYmYS5wdXNoKE5YZSh0aGlzLm9wdGlvbnMucGx1c01pbnVzKSksdGhpcy5vcHRpb25zLm5vdEVxdWFsIT09ITEmJmEucHVzaChSWGUodGhpcy5vcHRpb25zLm5vdEVxdWFsKSksdGhpcy5vcHRpb25zLmxhcXVvIT09ITEmJmEucHVzaChPWGUodGhpcy5vcHRpb25zLmxhcXVvKSksdGhpcy5vcHRpb25zLnJhcXVvIT09ITEmJmEucHVzaChGWGUodGhpcy5vcHRpb25zLnJhcXVvKSksdGhpcy5vcHRpb25zLm11bHRpcGxpY2F0aW9uIT09ITEmJmEucHVzaChCWGUodGhpcy5vcHRpb25zLm11bHRpcGxpY2F0aW9uKSksdGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VHdvIT09ITEmJmEucHVzaChIWGUodGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VHdvKSksdGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VGhyZWUhPT0hMSYmYS5wdXNoKHFYZSh0aGlzLm9wdGlvbnMuc3VwZXJzY3JpcHRUaHJlZSkpLHRoaXMub3B0aW9ucy5vbmVRdWFydGVyIT09ITEmJmEucHVzaChWWGUodGhpcy5vcHRpb25zLm9uZVF1YXJ0ZXIpKSx0aGlzLm9wdGlvbnMudGhyZWVRdWFydGVycyE9PSExJiZhLnB1c2goalhlKHRoaXMub3B0aW9ucy50aHJlZVF1YXJ0ZXJzKSksYX19KX0pO3ZhciBGMSxCMSxXWGU9ZigoKT0+e0YxPXt4dGVybToiNS4zLjAiLHh0ZXJtQWRkb25GaXQ6IjAuOC4wIix4dGVybUFkZG9uU2VhcmNoOiIwLjEzLjAiLGhpZ2hsaWdodEpzOiIxMS4xMS4xIixlY2hhcnRzOiI1LjYuMCIsbGlnaHR3ZWlnaHRDaGFydHM6IjUuMS4wIix0aXB0YXA6IjIuMjcuMiIsZm9udGF3ZXNvbWU6IjcuMi4wIn0sQjE9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0ifSk7dmFyIE9zLEYyYT1mKCgpPT57V1hlKCk7T3M9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJEZWVzU2VydmljZUxpYkxvYWRlciIpfXN0YXRpYyBpbnN0YW5jZTt4dGVybUxpYj1udWxsO3h0ZXJtRml0QWRkb25MaWI9bnVsbDt4dGVybVNlYXJjaEFkZG9uTGliPW51bGw7aGlnaGxpZ2h0SnNMaWI9bnVsbDtsaWdodHdlaWdodENoYXJ0c0xpYj1udWxsO2VjaGFydHNMaWI9bnVsbDt0aXB0YXBMaWI9bnVsbDt4dGVybUxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7aGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZT1udWxsO2xpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDtlY2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDt0aXB0YXBMb2FkaW5nUHJvbWlzZT1udWxsO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBhLmluc3RhbmNlfHwoYS5pbnN0YW5jZT1uZXcgYSksYS5pbnN0YW5jZX1hc3luYyBsb2FkWHRlcm0oKXtyZXR1cm4gdGhpcy54dGVybUxpYj90aGlzLnh0ZXJtTGliOnRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHtCMX0veHRlcm1AJHtGMS54dGVybX0vK2VzbWApO3JldHVybiBhd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzKCksdGhpcy54dGVybUxpYj17VGVybWluYWw6dC5UZXJtaW5hbH0sdGhpcy54dGVybUxpYn0pKCksdGhpcy54dGVybUxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1GaXRBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI/dGhpcy54dGVybUZpdEFkZG9uTGliOnRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCB0PWF3YWl0IGltcG9ydChgJHtCMX0veHRlcm0tYWRkb24tZml0QCR7RjEueHRlcm1BZGRvbkZpdH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI9e0ZpdEFkZG9uOnQuRml0QWRkb259LHRoaXMueHRlcm1GaXRBZGRvbkxpYn0pKCksdGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRYdGVybVNlYXJjaEFkZG9uKCl7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj90aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI6dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9YXdhaXQgaW1wb3J0KGAke0IxfS94dGVybS1hZGRvbi1zZWFyY2hAJHtGMS54dGVybUFkZG9uU2VhcmNofS8rZXNtYCk7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj17U2VhcmNoQWRkb246dC5TZWFyY2hBZGRvbn0sdGhpcy54dGVybVNlYXJjaEFkZG9uTGlifSkoKSx0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXMoKXtsZXQgZT0ieHRlcm0tY2RuLXN0eWxlcyI7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkpcmV0dXJuO2xldCB0PWAke0IxfS94dGVybUAke0YxLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxpPWF3YWl0KGF3YWl0IGZldGNoKHQpKS50ZXh0KCksbz1gCi8qIEZpeCB4dGVybS5qcyBXaWR0aENhY2hlIG1lYXN1cmVtZW50IGNvbnRhaW5lciBjYXVzaW5nIGhvcml6b250YWwgc2Nyb2xsYmFyICovCi8qIHh0ZXJtIGNyZWF0ZXMgdGhpcyBvbiBkb2N1bWVudC5ib2R5IC0gbW92ZSBpdCBvZmYtc2NyZWVuIGhvcml6b250YWxseSB0b28gKi8KYm9keSA+IGRpdltzdHlsZSo9InRvcDogLTUwMDAwcHgiXVtzdHlsZSo9IndpZHRoOiA1MDAwMHB4Il0gewogIGxlZnQ6IC01MDAwMHB4ICFpbXBvcnRhbnQ7Cn0KYCxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7bi5pZD1lLG4udGV4dENvbnRlbnQ9aStvLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9YXN5bmMgbG9hZEhpZ2hsaWdodEpzKCl7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI/dGhpcy5oaWdobGlnaHRKc0xpYjp0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U/dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlOih0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7QjF9L2hpZ2hsaWdodC5qc0Ake0YxLmhpZ2hsaWdodEpzfS8rZXNtYCk7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI9dC5kZWZhdWx0LHRoaXMuaGlnaGxpZ2h0SnNMaWJ9KSgpLHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCl7cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI/dGhpcy5saWdodHdlaWdodENoYXJ0c0xpYjp0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlOih0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7QjF9L2xpZ2h0d2VpZ2h0LWNoYXJ0c0Ake0YxLmxpZ2h0d2VpZ2h0Q2hhcnRzfS8rZXNtYCk7cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI9e2NyZWF0ZUNoYXJ0OnQuY3JlYXRlQ2hhcnQsQXJlYVNlcmllczp0LkFyZWFTZXJpZXMsTGluZVNlcmllczp0LkxpbmVTZXJpZXMsQ29sb3JUeXBlOnQuQ29sb3JUeXBlLExpbmVUeXBlOnQuTGluZVR5cGUsQ3Jvc3NoYWlyTW9kZTp0LkNyb3NzaGFpck1vZGV9LHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWJ9KSgpLHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZEVjaGFydHMoKXtyZXR1cm4gdGhpcy5lY2hhcnRzTGliP3RoaXMuZWNoYXJ0c0xpYjp0aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZT90aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgdD1hd2FpdCBpbXBvcnQoYCR7QjF9L2VjaGFydHNAJHtGMS5lY2hhcnRzfS9kaXN0L2VjaGFydHMuZXNtLm1pbi5qc2ApO3JldHVybiB0aGlzLmVjaGFydHNMaWI9e2luaXQ6dC5pbml0LGRpc3Bvc2U6dC5kaXNwb3NlLGdldEluc3RhbmNlQnlEb206dC5nZXRJbnN0YW5jZUJ5RG9tfSx0aGlzLmVjaGFydHNMaWJ9KSgpLHRoaXMuZWNoYXJ0c0xvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkVGlwdGFwKCl7cmV0dXJuIHRoaXMudGlwdGFwTGliP3RoaXMudGlwdGFwTGliOnRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U/dGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZToodGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldFtlLHQscixpLG8sbl09YXdhaXQgUHJvbWlzZS5hbGwoW1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihncigpLHYxYSkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihmMmEoKSxwMmEpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4obTJhKCksaDJhKSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGIyYSgpLGcyYSkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihOMmEoKSxJMmEpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oTzJhKCksUjJhKSldKTtyZXR1cm4gdGhpcy50aXB0YXBMaWI9e0VkaXRvcjplLkVkaXRvcixTdGFydGVyS2l0OnQuZGVmYXVsdHx8dC5TdGFydGVyS2l0LFVuZGVybGluZTpyLmRlZmF1bHR8fHIuVW5kZXJsaW5lLFRleHRBbGlnbjppLmRlZmF1bHR8fGkuVGV4dEFsaWduLExpbms6by5kZWZhdWx0fHxvLkxpbmssVHlwb2dyYXBoeTpuLmRlZmF1bHR8fG4uVHlwb2dyYXBoeX0sdGhpcy50aXB0YXBMaWJ9KSgpLHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2UpfWFzeW5jIHByZWxvYWRBbGwoKXthd2FpdCBQcm9taXNlLmFsbChbdGhpcy5sb2FkWHRlcm0oKSx0aGlzLmxvYWRYdGVybUZpdEFkZG9uKCksdGhpcy5sb2FkWHRlcm1TZWFyY2hBZGRvbigpLHRoaXMubG9hZEhpZ2hsaWdodEpzKCksdGhpcy5sb2FkTGlnaHR3ZWlnaHRDaGFydHMoKSx0aGlzLmxvYWRFY2hhcnRzKCksdGhpcy5sb2FkVGlwdGFwKCldKX1pc0xvYWRlZChlKXtzd2l0Y2goZSl7Y2FzZSJ4dGVybSI6cmV0dXJuIHRoaXMueHRlcm1MaWIhPT1udWxsO2Nhc2UieHRlcm1GaXRBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYiE9PW51bGw7Y2FzZSJ4dGVybVNlYXJjaEFkZG9uIjpyZXR1cm4gdGhpcy54dGVybVNlYXJjaEFkZG9uTGliIT09bnVsbDtjYXNlImhpZ2hsaWdodEpzIjpyZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xpYiE9PW51bGw7Y2FzZSJsaWdodHdlaWdodENoYXJ0cyI6cmV0dXJuIHRoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWIhPT1udWxsO2Nhc2UiZWNoYXJ0cyI6cmV0dXJuIHRoaXMuZWNoYXJ0c0xpYiE9PW51bGw7Y2FzZSJ0aXB0YXAiOnJldHVybiB0aGlzLnRpcHRhcExpYiE9PW51bGw7ZGVmYXVsdDpyZXR1cm4hMX19fX0pO3ZhciBTYz1mKCgpPT57RjJhKCk7V1hlKCl9KTt2YXIgJFcsQjJhPWYoKCk9PntybigpO2xlKCk7VTIoKTttcygpO3phZSgpO1NjKCk7JFc9Y2xhc3MgZXh0ZW5kcyBocntzdGF0aWN7cyh0aGlzLCJDb2RlQmxvY2tIYW5kbGVyIil9dHlwZT0iY29kZSI7aGlnaGxpZ2h0VGltZXI9bnVsbDtoaWdobGlnaHRKcz1udWxsO3JlbmRlcihlLHQpe2xldCByPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCIsaT1lLmNvbnRlbnR8fCIiLG89aS5zcGxpdChgCmApLmxlbmd0aCxuPSIiO2ZvcihsZXQgZD0xO2Q8PW87ZCsrKW4rPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtkfTwvZGl2PmA7bGV0IGw9RVUubWFwKGQ9PntsZXQgYz1kLnRvTG93ZXJDYXNlKCk7cmV0dXJuYDxvcHRpb24gdmFsdWU9IiR7Y30iICR7Yz09PXI/InNlbGVjdGVkIjoiIn0+JHtkfTwvb3B0aW9uPmB9KS5qb2luKCIiKTtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyJHt0PyIgc2VsZWN0ZWQiOiIifSIgZGF0YS1sYW5ndWFnZT0iJHtyfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1oZWFkZXIiPgogICAgICAgICAgPHNlbGVjdCBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iPgogICAgICAgICAgICAke2x9CiAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiB0aXRsZT0iQ29weSBjb2RlIj4KICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY29weS1pY29uIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMCA2Ljc1QzAgNS43ODQuNzg0IDUgMS43NSA1aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTEuNWEuNzUuNzUgMCAwMTEuNSAwdjEuNUExLjc1IDEuNzUgMCAwMTkuMjUgMTZoLTcuNUExLjc1IDEuNzUgMCAwMTAgMTQuMjV2LTcuNXoiPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxLjc1QzUgLjc4NCA1Ljc4NCAwIDYuNzUgMGg3LjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djcuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDExaC03LjVBMS43NSAxLjc1IDAgMDE1IDkuMjV2LTcuNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10ZXh0Ij5Db3B5PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ib2R5Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVycyI+JHtufTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250ZW50Ij4KICAgICAgICAgICAgPHByZSBjbGFzcz0iY29kZS1wcmUiPjxjb2RlIGNsYXNzPSJjb2RlLWVkaXRvciIgCiAgICAgICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGkpfTwvY29kZT48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idXR0b24iKSxsPWUucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLXNlbGVjdG9yIik7aWYoIWl8fCFvKXJldHVybjtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYz0+e2xldCBwPWMudGFyZ2V0LnZhbHVlO3QubWV0YWRhdGE9ey4uLnQubWV0YWRhdGEsbGFuZ3VhZ2U6cH0sby5zZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiLHApLHQuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkmJnRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSx0KSxyLm9uSW5wdXQmJnIub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSl9KSxuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IGM9aS50ZXh0Q29udGVudHx8IiI7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGMpO2xldCBwPW4ucXVlcnlTZWxlY3RvcigiLmNvcHktdGV4dCIpLHU9cC50ZXh0Q29udGVudDtwLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoKCk9PntwLnRleHRDb250ZW50PXUsbi5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX1jYXRjaChwKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLHApO2xldCB1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7dS52YWx1ZT1jLHUuc3R5bGUucG9zaXRpb249ImZpeGVkIix1LnN0eWxlLm9wYWNpdHk9IjAiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSksdS5zZWxlY3QoKTt0cnl7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtsZXQgbT1uLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSx2PW0udGV4dENvbnRlbnQ7bS50ZXh0Q29udGVudD0iQ29waWVkISIsbi5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57bS50ZXh0Q29udGVudD12LG4uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2gobSl7Y29uc29sZS5lcnJvcigiRmFsbGJhY2sgY29weSBmYWlsZWQ6IixtKX1kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHUpfX0pO2xldCBkPSExO2kuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57ZD0hMCxvLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKTtsZXQgYz1pLnRleHRDb250ZW50fHwiIjtpLnRleHRDb250ZW50PWMscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57bGV0IHA9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSx1PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpLmZpcnN0Q2hpbGQmJihwLnNldFN0YXJ0KGkuZmlyc3RDaGlsZCwwKSxwLmNvbGxhcHNlKCEwKSx1Py5yZW1vdmVBbGxSYW5nZXMoKSx1Py5hZGRSYW5nZShwKSl9KSxyLm9uRm9jdXMoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntkPSExLG8uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLHRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSx0KSxyLm9uQmx1cigpfSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsYz0+e3Iub25JbnB1dChjKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpLGNsZWFyVGltZW91dCh0aGlzLmhpZ2hsaWdodFRpbWVyKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2lmKGMua2V5PT09IlRhYiIpe2MucHJldmVudERlZmF1bHQoKTtsZXQgcD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYocCYmcC5yYW5nZUNvdW50PjApe2xldCB1PXAuZ2V0UmFuZ2VBdCgwKSxtPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgICIpO3UuaW5zZXJ0Tm9kZShtKSx1LnNldFN0YXJ0QWZ0ZXIobSksdS5zZXRFbmRBZnRlcihtKSxwLnJlbW92ZUFsbFJhbmdlcygpLHAuYWRkUmFuZ2UodSksci5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpfXJldHVybn1pZihbIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIl0uaW5jbHVkZXMoYy5rZXkpKXtsZXQgcD10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpLHU9aS50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKGMua2V5PT09IkFycm93TGVmdCImJnA9PT0wfHxjLmtleT09PSJBcnJvd1JpZ2h0IiYmcD09PXUpe3Iub25LZXlEb3duKGMpO3JldHVybn1pZihjLmtleT09PSJBcnJvd1VwInx8Yy5rZXk9PT0iQXJyb3dEb3duIil7bGV0IG09KGkudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLHY9dGhpcy5nZXRDdXJyZW50TGluZUluZGV4KGkpO2lmKGMua2V5PT09IkFycm93VXAiJiZ2PT09MHx8Yy5rZXk9PT0iQXJyb3dEb3duIiYmdj09PW0ubGVuZ3RoLTEpe3Iub25LZXlEb3duKGMpO3JldHVybn19fXIub25LZXlEb3duKGMpfSksaS5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsYz0+e2MucHJldmVudERlZmF1bHQoKTtsZXQgcD1jLmNsaXBib2FyZERhdGE/LmdldERhdGEoInRleHQvcGxhaW4iKTtpZihwKXtsZXQgdT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYodSYmdS5yYW5nZUNvdW50PjApe2xldCBtPXUuZ2V0UmFuZ2VBdCgwKTttLmRlbGV0ZUNvbnRlbnRzKCk7bGV0IHY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocCk7bS5pbnNlcnROb2RlKHYpLG0uc2V0U3RhcnRBZnRlcih2KSxtLnNldEVuZEFmdGVyKHYpLHUucmVtb3ZlQWxsUmFuZ2VzKCksdS5hZGRSYW5nZShtKSxyLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSl9fX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PnIub25Db21wb3NpdGlvblN0YXJ0KCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT5yLm9uQ29tcG9zaXRpb25FbmQoKSksdC5jb250ZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHQpfSl9dXBkYXRlTGluZU51bWJlcnMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKSxyPWUucXVlcnlTZWxlY3RvcigiLmxpbmUtbnVtYmVycyIpO2lmKCF0fHwhcilyZXR1cm47bGV0IG49KHQudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLmxlbmd0aHx8MSxsPSIiO2ZvcihsZXQgZD0xO2Q8PW47ZCsrKWwrPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtkfTwvZGl2PmA7ci5pbm5lckhUTUw9bH1nZXRDdXJyZW50TGluZUluZGV4KGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighdHx8dC5yYW5nZUNvdW50PT09MClyZXR1cm4gMDtsZXQgcj10LmdldFJhbmdlQXQoMCksaT1yLmNsb25lUmFuZ2UoKTtyZXR1cm4gaS5zZWxlY3ROb2RlQ29udGVudHMoZSksaS5zZXRFbmQoci5zdGFydENvbnRhaW5lcixyLnN0YXJ0T2Zmc2V0KSxpLnRvU3RyaW5nKCkuc3BsaXQoYApgKS5sZW5ndGgtMX1hc3luYyBhcHBseUhpZ2hsaWdodGluZyhlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoIXIpcmV0dXJuO3RoaXMuaGlnaGxpZ2h0SnN8fCh0aGlzLmhpZ2hsaWdodEpzPWF3YWl0IE9zLmdldEluc3RhbmNlKCkubG9hZEhpZ2hsaWdodEpzKCkpO2xldCBpPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSksbz1yLnRleHRDb250ZW50fHwiIixuPXQubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCI7dHJ5e2xldCBsPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KG8se2xhbmd1YWdlOm4saWdub3JlSWxsZWdhbHM6ITB9KTtsLnZhbHVlJiYoci5pbm5lckhUTUw9bC52YWx1ZSxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ciYmaSE9PW51bGwmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3J0LnNldEN1cnNvclBvc2l0aW9uKHIsaSl9KSl9Y2F0Y2gobCl7Y29uc29sZS53YXJuKCJTeW50YXggaGlnaGxpZ2h0aW5nIGZhaWxlZDoiLGwpfX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKT8udGV4dENvbnRlbnR8fCIifXNldENvbnRlbnQoZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKHImJihyLnRleHRDb250ZW50PXQsdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09cikpe2xldCBpPXtpZDpyLmRhdGFzZXQuYmxvY2tJZHx8IiIsdHlwZToiY29kZSIsY29udGVudDp0LG1ldGFkYXRhOntsYW5ndWFnZTplLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiKXx8InR5cGVzY3JpcHQifX07dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLGkpfX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCF0KXJldHVybiBudWxsO2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighcnx8ci5yYW5nZUNvdW50PT09MClyZXR1cm4gbnVsbDtsZXQgaT1yLmdldFJhbmdlQXQoMCk7aWYoIXQuY29udGFpbnMoaS5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gby5zZWxlY3ROb2RlQ29udGVudHModCksby5zZXRFbmQoaS5zdGFydENvbnRhaW5lcixpLnN0YXJ0T2Zmc2V0KSxvLnRvU3RyaW5nKCkubGVuZ3RofXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTt0JiZydC5zZXRDdXJzb3JQb3NpdGlvbih0LDApfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYodCl7bGV0IHI9dC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3J0LnNldEN1cnNvclBvc2l0aW9uKHQscil9fWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIil7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtyJiYoci5mb2N1cygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgdD09Im51bWJlciImJnJ0LnNldEN1cnNvclBvc2l0aW9uKHIsdCl9KSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYodD09PW51bGwpcmV0dXJuIG51bGw7bGV0IHI9dGhpcy5nZXRDb250ZW50KGUpO3JldHVybntiZWZvcmU6ci5zdWJzdHJpbmcoMCx0KSxhZnRlcjpyLnN1YnN0cmluZyh0KX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBDb2RlIEJsb2NrIENvbnRhaW5lciAtIE1pbmltYWxpc3Qgc2hhZGNuIHN0eWxlICovCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyIC0gU2ltcGxpZmllZCAqLwogICAgICAuY29kZS1oZWFkZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvcHkgQnV0dG9uIC0gTWluaW1hbCAqLwogICAgICAuY29weS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbi5jb3BpZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmhvdmVyIC5jb3B5LWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LXRleHQgewogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQm9keSAqLwogICAgICAuY29kZS1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExpbmUgTnVtYmVycyAtIFN1YnRsZSAqLwogICAgICAubGluZS1udW1iZXJzIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtNZn07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogQ29kZSBDb250ZW50ICovCiAgICAgIC5jb2RlLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXByZSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LWZhbWlseTogJHtNZn07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuY29kZS1lZGl0b3I6ZW1wdHk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogIi8vIFR5cGUgb3IgcGFzdGUgY29kZSBoZXJlLi4uIjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBXaGVuIGVkaXRpbmcgKGZvY3VzZWQpLCBzaG93IGdyZXkgdGV4dCB3aXRob3V0IGhpZ2hsaWdodGluZyAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyAuY29kZS1lZGl0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX0gIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yICogewogICAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFN5bnRheCBIaWdobGlnaHRpbmcgLSBNdXRlZCBjb2xvcnMgKi8KICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWtleXdvcmQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXN0cmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLW51bWJlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWZ1bmN0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY29tbWVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy12YXJpYWJsZSwKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWF0dHIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jbGFzcywKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRpdGxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1wYXJhbXMgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWxpdGVyYWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1tZXRhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcHVuY3R1YXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNkMWQ1ZGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10YWcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyaWJ1dGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci10YWcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1jbGFzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWlkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTZWxlY3Rpb24gKi8KICAgICAgLmNvZGUtZWRpdG9yOjpzZWxlY3Rpb24sCiAgICAgIC5jb2RlLWVkaXRvciAqOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4yKSIsInJnYmEoOTksIDEwMiwgMjQxLCAwLjMpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAtIE1pbmltYWwgKi8KICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgRFcsSDJhPWYoKCk9PntybigpO2xlKCk7aGMoKTtVMigpO0RXPWNsYXNzIGV4dGVuZHMgaHJ7c3RhdGlje3ModGhpcywiTGlzdEJsb2NrSGFuZGxlciIpfXR5cGU9Imxpc3QiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsdCl7bGV0IHI9dD8iIHNlbGVjdGVkIjoiIixvPShlLm1ldGFkYXRhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixuPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBsaXN0JHtyfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgPiR7bn08L2Rpdj4KICAgIGB9cmVuZGVyTGlzdENvbnRlbnQoZSx0KXtpZighZSlyZXR1cm4iPHVsPjxsaT48L2xpPjwvdWw+IjtsZXQgaT0odD8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbz1lLnNwbGl0KGAKYCkuZmlsdGVyKGw9PmwudHJpbSgpKTtpZihvLmxlbmd0aD09PTApcmV0dXJuYDwke2l9PjxsaT48L2xpPjwvJHtpfT5gO2xldCBuPW8ubWFwKGw9PmA8bGk+JHtsfTwvbGk+YCkuam9pbigiIik7cmV0dXJuYDwke2l9PiR7bn08LyR7aX0+YH1zZXR1cChlLHQscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXtjb25zb2xlLmVycm9yKCJMaXN0QmxvY2tIYW5kbGVyLnNldHVwOiBObyBsaXN0IGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59dC5jb250ZW50JiYhaS5pbm5lckhUTUwmJihpLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHQuY29udGVudCx0Lm1ldGFkYXRhKSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbz0+e3Iub25JbnB1dChvKTtsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYobiE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pLG8ua2V5PT09IkVudGVyIiYmIW8uc2hpZnRLZXkpe2xldCBsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihsJiZsLnJhbmdlQ291bnQ+MCl7bGV0IGM9bC5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYoYyYmYy50ZXh0Q29udGVudD09PSIiKXtvLnByZXZlbnREZWZhdWx0KCksci5vbktleURvd24obyk7cmV0dXJufX19ci5vbktleURvd24obyl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3Iub25Gb2N1cygpfSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3Iub25CbHVyKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57ci5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57ci5vbkNvbXBvc2l0aW9uRW5kKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG89PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxyLm9uTW91c2VVcD8uKG8pfSksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e3NldFRpbWVvdXQoKCk9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0sMCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixvPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLGksdCl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsdCxyKXtsZXQgaT1zKCgpPT57bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1uLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDpyLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGQ9dC5nZXRSb290Tm9kZSgpLmhvc3QscD1kPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCx1PWQ/LnNoYWRvd1Jvb3QsbT1bXTtwJiZtLnB1c2gocCksdSYmbS5wdXNoKHUpO2xldCB2PXJ0LmdldFNlbGVjdGlvbkluZm8oLi4ubSk7aWYoIXYpcmV0dXJuO2xldCB4PXJ0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHQsdi5zdGFydENvbnRhaW5lciksYj1ydC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHYuZW5kQ29udGFpbmVyKTtpZih4fHxiKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZz1ydC5jcmVhdGVSYW5nZUZyb21JbmZvKHYpLHk9Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOnIuaWQscmFuZ2U6ZyxyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6ci5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsaSksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPWk7bGV0IG89dC5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobyl7bGV0IG49by5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7by5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbiYmYXdhaXQgbi5jYWxsKG8pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHQpe2xldCByPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp0LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQocil9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBMaXN0IHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2subGlzdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgdWwsCiAgICAgIC5ibG9jay5saXN0IG9sIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IG49dD8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXQ/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbCYmZC5wdXNoKGwpO2xldCBjPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWN8fCFydC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLGMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBwPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHAuc2VsZWN0Tm9kZUNvbnRlbnRzKHIpLHAuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCkscC50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFyKXJldHVybiIiO2xldCBpPXIucXVlcnlTZWxlY3RvckFsbCgibGkiKTtyZXR1cm4gQXJyYXkuZnJvbShpKS5tYXAobj0+bi50ZXh0Q29udGVudHx8IiIpLmpvaW4oYApgKX1zZXRDb250ZW50KGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuO2xldCBvPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pLGw9aS5xdWVyeVNlbGVjdG9yKCJ1bCwgb2wiKT8udGFnTmFtZT09PSJPTCI7aS5pbm5lckhUTUw9dGhpcy5yZW5kZXJMaXN0Q29udGVudCh0LHtsaXN0VHlwZTpsPyJvcmRlcmVkIjoidW5vcmRlcmVkIn0pLG8mJmkuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsdCl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFyKXJldHVybjtsZXQgaT1yLnF1ZXJ5U2VsZWN0b3IoImxpIik7aWYoaSl7bGV0IG89dGhpcy5nZXRGaXJzdFRleHROb2RlKGkpO2lmKG8pe2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7bi5zZXRTdGFydChvLDApLG4uc2V0RW5kKG8sMCksbD8ucmVtb3ZlQWxsUmFuZ2VzKCksbD8uYWRkUmFuZ2Uobil9fX1zZXRDdXJzb3JUb0VuZChlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcilyZXR1cm47bGV0IGk9ci5xdWVyeVNlbGVjdG9yKCJsaTpsYXN0LWNoaWxkIik7aWYoaSl7bGV0IG89dGhpcy5nZXRMYXN0VGV4dE5vZGUoaSk7aWYobyl7bGV0IG49ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSxkPW8udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtuLnNldFN0YXJ0KG8sZCksbi5zZXRFbmQobyxkKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShuKX19fWdldEZpcnN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD0wO3Q8ZS5jaGlsZE5vZGVzLmxlbmd0aDt0Kyspe2xldCByPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IHQ9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3Q+PTA7dC0tKXtsZXQgcj10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbdF0pO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9Zm9jdXMoZSx0KXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7ciYmKHIuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PXImJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntyLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsdD0iZW5kIixyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuO2kuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8aS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxpLmZvY3VzKCk7bGV0IG89cygoKT0+e3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLHIpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUscik6dHlwZW9mIHQ9PSJudW1iZXIiJiZ0aGlzLnNldEN1cnNvclRvRW5kKGUscil9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aT9vKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aSkmJm8oKX0pfWdldFNwbGl0Q29udGVudChlLHQpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0IiksbnVsbH19fSk7dmFyIEFXLHEyYT1mKCgpPT57cm4oKTtsZSgpO0FXPWNsYXNzIGV4dGVuZHMgaHJ7c3RhdGlje3ModGhpcywiSW1hZ2VCbG9ja0hhbmRsZXIiKX10eXBlPSJpbWFnZSI7cmVuZGVyKGUsdCl7bGV0IHI9ZS5tZXRhZGF0YT8udXJsLGk9ZS5jb250ZW50fHwiSW1hZ2UiLG89ZS5tZXRhZGF0YT8ubG9hZGluZztyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtaW1hZ2U9IiR7ISFyfSIKICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgJHtvP3RoaXMucmVuZGVyTG9hZGluZygpOnI/dGhpcy5yZW5kZXJJbWFnZShyLGkpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJpbWFnZS1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgYWNjZXB0PSJpbWFnZS8qIiAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiPgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1pY29uIiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIi8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41Ii8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIxIDE1IDE2IDEwIDUgMjEiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC10ZXh0IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5DbGljayB0byB1cGxvYWQgYW4gaW1hZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtaGludCIgc3R5bGU9InBvaW50ZXItZXZlbnRzOiBub25lOyI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVySW1hZ2UoZSx0KXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWNvbnRhaW5lciI+CiAgICAgICAgPGltZyBzcmM9IiR7ZX0iIGFsdD0iJHt0aGlzLmVzY2FwZUh0bWwodCl9IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTG9hZGluZygpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtbG9hZGluZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPlVwbG9hZGluZyBpbWFnZS4uLjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSx0LHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtZmlsZS1pbnB1dCIpO2lmKCFpKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgY29udGFpbmVyIik7cmV0dXJufWlmKCFvKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgZmlsZSBpbnB1dCIpO3JldHVybn1sZXQgbj1pLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIiKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBQbGFjZWhvbGRlciBjbGlja2VkLCBvcGVuaW5nIGZpbGUgc2VsZWN0b3IiKSxvLmNsaWNrKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3Iub25Gb2N1cygpfSksby5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGw9PntsZXQgYz1sLnRhcmdldC5maWxlcz8uWzBdO2MmJihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IEZpbGUgc2VsZWN0ZWQ6IixjLm5hbWUpLGF3YWl0IHRoaXMuaGFuZGxlRmlsZVVwbG9hZChjLHQscikpfSksaS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLHQubWV0YWRhdGE/LnVybHx8aS5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksaS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IGQ9bC5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO2QmJmQudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmIXQubWV0YWRhdGE/LnVybCYmYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGQsdCxyKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5yLm9uRm9jdXMoKSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+ci5vbkJsdXIoKSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57aWYoKGwua2V5PT09IkRlbGV0ZSJ8fGwua2V5PT09IkJhY2tzcGFjZSIpJiZ0Lm1ldGFkYXRhPy51cmwpe3QubWV0YWRhdGEudXJsPXZvaWQgMCx0Lm1ldGFkYXRhLmxvYWRpbmc9ITEsdC5jb250ZW50PSIiLHIub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSk7cmV0dXJufXIub25LZXlEb3duKGwpfSl9YXN5bmMgaGFuZGxlRmlsZVVwbG9hZChlLHQscil7aWYoY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTdGFydGluZyBmaWxlIHVwbG9hZCIse2ZpbGVOYW1lOmUubmFtZSxmaWxlU2l6ZTplLnNpemUsYmxvY2tJZDp0LmlkfSksIWUudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6IixlLnR5cGUpO3JldHVybn1sZXQgaT0xMCoxMDI0KjEwMjQ7aWYoZS5zaXplPmkpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlLiBNYXhpbXVtIHNpemUgaXMgMTBNQiIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5sb2FkaW5nPSEwLHQubWV0YWRhdGEuZmlsZU5hbWU9ZS5uYW1lLHQubWV0YWRhdGEuZmlsZVNpemU9ZS5zaXplLHQubWV0YWRhdGEubWltZVR5cGU9ZS50eXBlLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogU2V0IGxvYWRpbmcgc3RhdGUsIHJlcXVlc3RpbmcgdXBkYXRlIiksci5vblJlcXVlc3RVcGRhdGU/LigpO3RyeXtsZXQgbz1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwoZSk7dC5tZXRhZGF0YS51cmw9byx0Lm1ldGFkYXRhLmxvYWRpbmc9ITE7bGV0IG49ZS5uYW1lLnJlcGxhY2UoL1wuW14vLl0rJC8sIiIpO3QuY29udGVudD1uLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogVXBsb2FkIGNvbXBsZXRlLCByZXF1ZXN0aW5nIHVwZGF0ZSIse2hhc1VybDohIXQubWV0YWRhdGEudXJsLHVybExlbmd0aDpvLmxlbmd0aCxhbHRUZXh0OnQuY29udGVudH0pLHIub25SZXF1ZXN0VXBkYXRlPy4oKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBsb2FkIGltYWdlOiIsbyksdC5tZXRhZGF0YS5sb2FkaW5nPSExLHIub25SZXF1ZXN0VXBkYXRlPy4oKX19ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQscik9PntsZXQgaT1uZXcgRmlsZVJlYWRlcjtpLm9ubG9hZD1vPT57bGV0IG49by50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbj09InN0cmluZyI/dChuKTpyKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0saS5vbmVycm9yPXIsaS5yZWFkQXNEYXRhVVJMKGUpfSl9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCByPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTtyJiYoci5jb250ZW50PXQpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiByP3tpZDpyLHR5cGU6ImltYWdlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSW1hZ2UgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogVXBsb2FkIFBsYWNlaG9sZGVyICovCiAgICAgIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXI6aG92ZXIgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsIiMxZTFiNGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaWNvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBJbWFnZSBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBMb2FkaW5nIFN0YXRlICovCiAgICAgIC5pbWFnZS1sb2FkaW5nIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIGlucHV0IGhpZGRlbiAqLwogICAgICAuaW1hZ2UtZmlsZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgfX19KTt2YXIgUFcsVjJhPWYoKCk9PntybigpO2xlKCk7UFc9Y2xhc3MgZXh0ZW5kcyBocntzdGF0aWN7cyh0aGlzLCJZb3VUdWJlQmxvY2tIYW5kbGVyIil9dHlwZT0ieW91dHViZSI7cmVuZGVyKGUsdCl7bGV0IHI9ZS5tZXRhZGF0YT8udmlkZW9JZCxpPWUubWV0YWRhdGE/LnVybHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWJsb2NrLWNvbnRhaW5lciR7dD8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtdmlkZW89IiR7ISFyfSI+CiAgICAgICAgJHtyP3RoaXMucmVuZGVyVmlkZW8ocik6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihpKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaWNvbiI+CiAgICAgICAgICA8c3ZnIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTkuNjE1IDMuMTg0Yy0zLjYwNC0uMjQ2LTExLjYzMS0uMjQ1LTE1LjIzIDAtMy44OTcuMjY2LTQuMzU2IDIuNjItNC4zODUgOC44MTYuMDI5IDYuMTg1LjQ4NCA4LjU0OSA0LjM4NSA4LjgxNiAzLjYuMjQ1IDExLjYyNi4yNDYgMTUuMjMgMCAzLjg5Ny0uMjY2IDQuMzU2LTIuNjIgNC4zODUtOC44MTYtLjAyOS02LjE4NS0uNDg0LTguNTQ5LTQuMzg1LTguODE2em0tMTAuNjE1IDEyLjgxNnYtOGw4IDMuOTkzLTggNC4wMDd6Ii8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5FbnRlciBZb3VUdWJlIFVSTDwvZGl2PgogICAgICAgIDxpbnB1dCB0eXBlPSJ1cmwiIAogICAgICAgICAgICAgICBjbGFzcz0ieW91dHViZS11cmwtaW5wdXQiIAogICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PS4uLiIgCiAgICAgICAgICAgICAgIHZhbHVlPSIke3RoaXMuZXNjYXBlSHRtbChlKX0iIC8+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0ieW91dHViZS1lbWJlZC1idG4iPkVtYmVkIFZpZGVvPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJWaWRlbyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtY29udGFpbmVyIj4KICAgICAgICA8aWZyYW1lIAogICAgICAgICAgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2V9IgogICAgICAgICAgZnJhbWVib3JkZXI9IjAiCiAgICAgICAgICBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIKICAgICAgICAgIGFsbG93ZnVsbHNjcmVlbgogICAgICAgID48L2lmcmFtZT4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpO2lmKCFpKXJldHVybjtpZih0Lm1ldGFkYXRhPy52aWRlb0lkKXtpLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksaS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnIub25Gb2N1cygpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5yLm9uQmx1cigpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PnsobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJmwucHJldmVudERlZmF1bHQoKSxyLm9uS2V5RG93bihsKX0pO3JldHVybn1sZXQgbz1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpLG49ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1lbWJlZC1idG4iKTshb3x8IW58fChvLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+ci5vbkZvY3VzKCkpLG8uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnIub25CbHVyKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5lbWJlZFZpZGVvKG8udmFsdWUsdCxyKX0pLG8uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbD0+e2wua2V5PT09IkVudGVyIj8obC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZW1iZWRWaWRlbyhvLnZhbHVlLHQscikpOmwua2V5PT09IkVzY2FwZSImJihsLnByZXZlbnREZWZhdWx0KCksby5ibHVyKCkpfSksby5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsbD0+e3NldFRpbWVvdXQoKCk9PntsZXQgZD1vLnZhbHVlO3RoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGQpJiZ0aGlzLmVtYmVkVmlkZW8oZCx0LHIpfSwwKX0pLG8uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEudXJsPW8udmFsdWV9KSl9ZW1iZWRWaWRlbyhlLHQscil7bGV0IGk9dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQoZSk7aWYoIWkpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgWW91VHViZSBVUkwiKTtyZXR1cm59dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEudmlkZW9JZD1pLHQubWV0YWRhdGEudXJsPWUsdC5jb250ZW50PWBZb3VUdWJlIFZpZGVvOiAke2l9YCxyLm9uUmVxdWVzdFVwZGF0ZT8uKCl9ZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpe2xldCB0PVsvKD86eW91dHViZVwuY29tXC8oPzpbXlwvXStcLy4rXC98KD86dnxlKD86bWJlZCk/KVwvfC4qWz8mXXY9KXx5b3V0dVwuYmVcLykoW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL2VtYmVkXC8oW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL3dhdGNoXD92PShbXiImP1wvIF17MTF9KS8sL3lvdXR1XC5iZVwvKFteIiY/XC8gXXsxMX0pL107Zm9yKGxldCByIG9mIHQpe2xldCBpPWUubWF0Y2gocik7aWYoaSlyZXR1cm4gaVsxXX1yZXR1cm4gbnVsbH1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsdCl7bGV0IHI9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO3ImJihyLmNvbnRlbnQ9dCl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gcj97aWQ6cix0eXBlOiJ5b3V0dWJlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIikscj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpO3I/ci5mb2N1cygpOnQmJnQuZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXt0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtyZXR1cm4gbnVsbH1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFlvdVR1YmUgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBQbGFjZWhvbGRlciAqLwogICAgICAueW91dHViZS1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMzJweCAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0biB7CiAgICAgICAgcGFkZGluZzogNnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5IGFzcGVjdCByYXRpbyAqLwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtY29udGFpbmVyIGlmcmFtZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CiAgICBgfX19KTt2YXIgRVcsajJhPWYoKCk9PntybigpO2xlKCk7RVc9Y2xhc3MgZXh0ZW5kcyBocntzdGF0aWN7cyh0aGlzLCJBdHRhY2htZW50QmxvY2tIYW5kbGVyIil9dHlwZT0iYXR0YWNobWVudCI7cmVuZGVyKGUsdCl7bGV0IHI9ZS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWljb24iPlx1ezFGNENFfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+RmlsZSBBdHRhY2htZW50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtbGlzdCI+CiAgICAgICAgICAke3IubGVuZ3RoPjA/dGhpcy5yZW5kZXJGaWxlcyhyKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iYXR0YWNobWVudC1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgbXVsdGlwbGUgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgICAke3IubGVuZ3RoPjA/JzxidXR0b24gY2xhc3M9ImFkZC1tb3JlLWZpbGVzIj5BZGQgTW9yZSBGaWxlczwvYnV0dG9uPic6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaGludCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZXMoZSl7cmV0dXJuIGUubWFwKHQ9PmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBkYXRhLWZpbGUtaWQ9IiR7dC5pZH0iPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaWNvbiI+JHt0aGlzLmdldEZpbGVJY29uKHQudHlwZSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSI+JHt0aGlzLmVzY2FwZUh0bWwodC5uYW1lKX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKHQuc2l6ZSl9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWZpbGUiIGRhdGEtZmlsZS1pZD0iJHt0LmlkfSI+XHhENzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGApLmpvaW4oIiIpfXNldHVwKGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1maWxlLWlucHV0Iik7aWYoIWl8fCFvKXtjb25zb2xlLmVycm9yKCJBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn10Lm1ldGFkYXRhfHwodC5tZXRhZGF0YT17fSksdC5tZXRhZGF0YS5maWxlc3x8KHQubWV0YWRhdGEuZmlsZXM9W10pO2xldCBuPWkucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCksby5jbGljaygpfSk7bGV0IGw9aS5xdWVyeVNlbGVjdG9yKCIuYWRkLW1vcmUtZmlsZXMiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCksby5jbGljaygpfSksby5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGQ9PntsZXQgYz1kLnRhcmdldCxwPWMuZmlsZXM7cCYmcC5sZW5ndGg+MCYmKGF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKHAsdCxyKSxjLnZhbHVlPSIiKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGQ9PntsZXQgYz1kLnRhcmdldDtpZihjLmNsYXNzTGlzdC5jb250YWlucygicmVtb3ZlLWZpbGUiKSl7ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHA9Yy5nZXRBdHRyaWJ1dGUoImRhdGEtZmlsZS1pZCIpO3AmJnRoaXMucmVtb3ZlRmlsZShwLHQscil9fSksaS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZD0+e2QucHJldmVudERlZmF1bHQoKSxkLnN0b3BQcm9wYWdhdGlvbigpLGkuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZD0+e2QucHJldmVudERlZmF1bHQoKSxkLnN0b3BQcm9wYWdhdGlvbigpLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIGQ9PntkLnByZXZlbnREZWZhdWx0KCksZC5zdG9wUHJvcGFnYXRpb24oKSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBjPWQuZGF0YVRyYW5zZmVyPy5maWxlcztjJiZjLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhjLHQscil9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+ci5vbkZvY3VzKCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnIub25CbHVyKCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZD0+e2lmKChkLmtleT09PSJEZWxldGUifHxkLmtleT09PSJCYWNrc3BhY2UiKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWkmJnQubWV0YWRhdGE/LmZpbGVzPy5sZW5ndGg+MCl7ZC5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuZmlsZXM9W10sci5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1yLm9uS2V5RG93bihkKX0pfWFzeW5jIGhhbmRsZUZpbGVBdHRhY2htZW50cyhlLHQscil7dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEuZmlsZXN8fCh0Lm1ldGFkYXRhLmZpbGVzPVtdKTtmb3IobGV0IGkgb2YgQXJyYXkuZnJvbShlKSl0cnl7bGV0IG89YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKGkpLG49e2lkOnRoaXMuZ2VuZXJhdGVJZCgpLG5hbWU6aS5uYW1lLHNpemU6aS5zaXplLHR5cGU6aS50eXBlLGRhdGE6b307dC5tZXRhZGF0YS5maWxlcy5wdXNoKG4pfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBhdHRhY2ggZmlsZToiLGkubmFtZSxvKX10LmNvbnRlbnQ9YCR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke3QubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYCxyLm9uUmVxdWVzdFVwZGF0ZT8uKCl9cmVtb3ZlRmlsZShlLHQscil7dC5tZXRhZGF0YT8uZmlsZXMmJih0Lm1ldGFkYXRhLmZpbGVzPXQubWV0YWRhdGEuZmlsZXMuZmlsdGVyKGk9PmkuaWQhPT1lKSx0LmNvbnRlbnQ9dC5tZXRhZGF0YS5maWxlcy5sZW5ndGg+MD9gJHt0Lm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7dC5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgOiIiLHIub25SZXF1ZXN0VXBkYXRlPy4oKSl9ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQscik9PntsZXQgaT1uZXcgRmlsZVJlYWRlcjtpLm9ubG9hZD1vPT57bGV0IG49by50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbj09InN0cmluZyI/dChuKTpyKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0saS5vbmVycm9yPXIsaS5yZWFkQXNEYXRhVVJMKGUpfSl9Z2V0RmlsZUljb24oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiaW1hZ2UvIik/Ilx1ezFGNUJDfVx1RkUwRiI6ZS5zdGFydHNXaXRoKCJ2aWRlby8iKT8iXHV7MUYzQTV9IjplLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJcdXsxRjNCNX0iOmUuaW5jbHVkZXMoInBkZiIpPyJcdXsxRjRDNH0iOmUuaW5jbHVkZXMoInppcCIpfHxlLmluY2x1ZGVzKCJyYXIiKXx8ZS5pbmNsdWRlcygidGFyIik/Ilx1ezFGNUM0fVx1RkUwRiI6ZS5pbmNsdWRlcygic2hlZXQiKT8iXHV7MUY0Q0F9IjplLmluY2x1ZGVzKCJkb2N1bWVudCIpfHxlLmluY2x1ZGVzKCJtc3dvcmQiKT8iXHV7MUY0RER9IjplLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iXHV7MUY0Q0J9IjplLmluY2x1ZGVzKCJ0ZXh0Iik/Ilx1ezFGNEMzfSI6Ilx1ezFGNEMxfSJ9Zm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCB0PTEwMjQscj1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0saT1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHQpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyh0LGkpKS50b0ZpeGVkKDIpKSsiICIrcltpXX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGZpbGUtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHQpe2xldCByPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTtyJiYoci5jb250ZW50PXQpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIHI/e2lkOnIsdHlwZToiYXR0YWNobWVudCIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHQ9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuYXR0YWNobWVudC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIExpc3QgKi8KICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBJdGVtcyAqLwogICAgICAuYXR0YWNobWVudC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1zaXplIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCIjOTkxYjFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmY2E1YTUiLCIjZGMyNjI2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmY2E1YTUiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqLwogICAgICAuYWRkLW1vcmUtZmlsZXMgewogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgIH0KICAgICAgCiAgICAgIC5hZGQtbW9yZS1maWxlczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIaWRkZW4gZmlsZSBpbnB1dCAqLwogICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBJVyxVMmE9ZigoKT0+e3JuKCk7bGUoKTtJVz1jbGFzcyBleHRlbmRzIGhye3N0YXRpY3tzKHRoaXMsIkRpdmlkZXJCbG9ja0hhbmRsZXIiKX10eXBlPSJkaXZpZGVyIjtyZW5kZXIoZSx0KXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIGRpdmlkZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IiBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIgdGFiaW5kZXg9IjAiPgogICAgICAgIDxocj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5kaXZpZGVyIik7aSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntvLnN0b3BQcm9wYWdhdGlvbigpLGkuZm9jdXMoKSxyLm9uRm9jdXM/LigpfSksaS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntyLm9uRm9jdXM/LigpfSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3Iub25CbHVyPy4oKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+eyhvLmtleT09PSJCYWNrc3BhY2UifHxvLmtleT09PSJEZWxldGUiKSYmby5wcmV2ZW50RGVmYXVsdCgpLHIub25LZXlEb3duPy4obyl9KSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suZGl2aWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlci5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4yKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlciBociB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgfX19KTt2YXIgTlcsVzJhPWYoKCk9PntybigpO2xlKCk7Tlc9Y2xhc3MgZXh0ZW5kcyBocntzdGF0aWN7cyh0aGlzLCJNYXJrZG93bkJsb2NrSGFuZGxlciIpfXR5cGU9Im1hcmtkb3duIjtyZW5kZXIoZSx0KXtsZXQgcj1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxpPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke3J9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taWNvbiI+TVx1MjE5MzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tdGl0bGUiPk1hcmtkb3duPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXJrZG93bi10b2dnbGUtbW9kZSIgdGl0bGU9IiR7cj8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7cj8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPgogICAgICAgICAgJHtyP3RoaXMucmVuZGVyRWRpdG9yKGkpOnRoaXMucmVuZGVyUHJldmlldyhpKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckVkaXRvcihlKXtyZXR1cm5gCiAgICAgIDx0ZXh0YXJlYSBjbGFzcz0ibWFya2Rvd24tZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBtYXJrZG93biBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1wcmV2aWV3Ij4KICAgICAgICAke3RoaXMucGFyc2VNYXJrZG93bihlKXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi10b2dnbGUtbW9kZSIpO2lmKCFpfHwhbyl7Y29uc29sZS5lcnJvcigiTWFya2Rvd25CbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJih0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntpZihuLnByZXZlbnREZWZhdWx0KCksbi5zdG9wUHJvcGFnYXRpb24oKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPWkucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2wmJih0LmNvbnRlbnQ9bC52YWx1ZSl9dC5tZXRhZGF0YS5pc0VkaXRNb2RlPSF0Lm1ldGFkYXRhLmlzRWRpdE1vZGUsci5vblJlcXVlc3RVcGRhdGU/LigpfSksdC5tZXRhZGF0YS5pc0VkaXRNb2RlP3RoaXMuc2V0dXBFZGl0b3IoZSx0LHIpOnRoaXMuc2V0dXBQcmV2aWV3KGUsdCxyKX1zZXR1cEVkaXRvcihlLHQscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5yLm9uRm9jdXMoKSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+ci5vbkJsdXIoKSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0LmNvbnRlbnQ9aS52YWx1ZX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2lmKG8ua2V5PT09IlRhYiIpe28ucHJldmVudERlZmF1bHQoKTtsZXQgbj1pLnNlbGVjdGlvblN0YXJ0LGw9aS5zZWxlY3Rpb25FbmQsZD1pLnZhbHVlO2lmKG8uc2hpZnRLZXkpe2xldCB1PWQuc3Vic3RyaW5nKDAsbikubGFzdEluZGV4T2YoYApgKSsxLG09ZC5zdWJzdHJpbmcodSxuKTttLnN0YXJ0c1dpdGgoIiAgIikmJihpLnZhbHVlPWQuc3Vic3RyaW5nKDAsdSkrbS5zdWJzdHJpbmcoMikrZC5zdWJzdHJpbmcobiksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1uLTIpfWVsc2UgaS52YWx1ZT1kLnN1YnN0cmluZygwLG4pKyIgICIrZC5zdWJzdHJpbmcobCksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1uKzI7dC5jb250ZW50PWkudmFsdWU7cmV0dXJufWlmKChvLmN0cmxLZXl8fG8ubWV0YUtleSkmJm8ua2V5PT09ImIiKXtvLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKGksIioqIiwiKioiKSx0LmNvbnRlbnQ9aS52YWx1ZTtyZXR1cm59aWYoKG8uY3RybEtleXx8by5tZXRhS2V5KSYmby5rZXk9PT0iaSIpe28ucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24oaSwiXyIsIl8iKSx0LmNvbnRlbnQ9aS52YWx1ZTtyZXR1cm59aWYoKG8uY3RybEtleXx8by5tZXRhS2V5KSYmby5rZXk9PT0iayIpe28ucHJldmVudERlZmF1bHQoKSx0aGlzLmluc2VydExpbmsoaSksdC5jb250ZW50PWkudmFsdWU7cmV0dXJufXIub25LZXlEb3duKG8pfSksdGhpcy5hdXRvUmVzaXplKGkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUoaSkpKX1zZXR1cFByZXZpZXcoZSx0LHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpOyFpfHwhb3x8KG8uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxvLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+ci5vbkZvY3VzKCkpLG8uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnIub25CbHVyKCkpLG8uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2lmKG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe24ucHJldmVudERlZmF1bHQoKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITAsci5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1yLm9uS2V5RG93bihuKX0pKX13cmFwU2VsZWN0aW9uKGUsdCxyKXtsZXQgaT1lLnNlbGVjdGlvblN0YXJ0LG89ZS5zZWxlY3Rpb25FbmQsbj1lLnZhbHVlLnN1YnN0cmluZyhpLG8pLGw9dCsobnx8InRleHQiKStyO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCxpKStsK2UudmFsdWUuc3Vic3RyaW5nKG8pLG4/KGUuc2VsZWN0aW9uU3RhcnQ9aSxlLnNlbGVjdGlvbkVuZD1pK2wubGVuZ3RoKTooZS5zZWxlY3Rpb25TdGFydD1pK3QubGVuZ3RoLGUuc2VsZWN0aW9uRW5kPWkrdC5sZW5ndGgrNCksZS5mb2N1cygpfWluc2VydExpbmsoZSl7bGV0IHQ9ZS5zZWxlY3Rpb25TdGFydCxyPWUuc2VsZWN0aW9uRW5kLG89ZS52YWx1ZS5zdWJzdHJpbmcodCxyKXx8ImxpbmsgdGV4dCIsbj1gWyR7b31dKHVybClgO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCx0KStuK2UudmFsdWUuc3Vic3RyaW5nKHIpLGUuc2VsZWN0aW9uU3RhcnQ9dCtvLmxlbmd0aCszLGUuc2VsZWN0aW9uRW5kPXQrby5sZW5ndGgrNixlLmZvY3VzKCl9YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In1wYXJzZU1hcmtkb3duKGUpe2xldCB0PXRoaXMuZXNjYXBlSHRtbChlKTtyZXR1cm4gdD10LnJlcGxhY2UoL14jIyMgKC4rKSQvZ20sIjxoMz4kMTwvaDM+IiksdD10LnJlcGxhY2UoL14jIyAoLispJC9nbSwiPGgyPiQxPC9oMj4iKSx0PXQucmVwbGFjZSgvXiMgKC4rKSQvZ20sIjxoMT4kMTwvaDE+IiksdD10LnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9fXyguKz8pX18vZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSx0PXQucmVwbGFjZSgvXyguKz8pXy9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC9gYGAoW1xzXFNdKj8pYGBgL2csIjxwcmU+PGNvZGU+JDE8L2NvZGU+PC9wcmU+IiksdD10LnJlcGxhY2UoL2AoLis/KWAvZywiPGNvZGU+JDE8L2NvZGU+IiksdD10LnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIj4kMTwvYT4nKSx0PXQucmVwbGFjZSgvXlwqICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC9eLSAoLispJC9nbSwiPGxpPiQxPC9saT4iKSx0PXQucmVwbGFjZSgvXlxkK1wuICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZyxyPT4iPHVsPiIrcisiPC91bD4iKSx0PXQucmVwbGFjZSgvXG5cbi9nLCI8L3A+PHA+IiksdD0iPHA+Iit0KyI8L3A+Iix0PXQucmVwbGFjZSgvPHA+PFwvcD4vZywiIiksdD10LnJlcGxhY2UoLzxwPig8aFsxLTNdPikvZywiJDEiKSx0PXQucmVwbGFjZSgvKDxcL2hbMS0zXT4pPFwvcD4vZywiJDEiKSx0PXQucmVwbGFjZSgvPHA+KDx1bD4pL2csIiQxIiksdD10LnJlcGxhY2UoLyg8XC91bD4pPFwvcD4vZywiJDEiKSx0PXQucmVwbGFjZSgvPHA+KDxwcmU+KS9nLCIkMSIpLHQ9dC5yZXBsYWNlKC8oPFwvcHJlPik8XC9wPi9nLCIkMSIpLHR9ZXNjYXBlSHRtbChlKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHQuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYodClyZXR1cm4gdC52YWx1ZTtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3ImJihyLnZhbHVlPXQsdGhpcy5hdXRvUmVzaXplKHIpKX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyZXR1cm4gdD90LnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTt0Pyh0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPTAsdC5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKHQpe2xldCByPXQudmFsdWUubGVuZ3RoO3Quc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9cix0LmZvY3VzKCl9ZWxzZSB0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3Q/dC5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyP3Q9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTp0PT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgdD09Im51bWJlciImJihyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPXQsci5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZighdClyZXR1cm4gbnVsbDtsZXQgcj10LnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6dC52YWx1ZS5zdWJzdHJpbmcoMCxyKSxhZnRlcjp0LnZhbHVlLnN1YnN0cmluZyhyKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBNYXJrZG93biBCbG9jayBDb250YWluZXIgKi8KICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLm1hcmtkb3duLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvbnRlbnQgKi8KICAgICAgLm1hcmtkb3duLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5tYXJrZG93bi1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWVkaXRvcjo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFByZXZpZXcgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogTWFya2Rvd24gcHJldmlldyBzdHlsZXMgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTZweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgyIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE0cHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxMnB4IDAgNHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgdWwsCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IG9sIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBzdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgZW0gewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgUlcsRzJhPWYoKCk9PntybigpO2xlKCk7Ulc9Y2xhc3MgZXh0ZW5kcyBocntzdGF0aWN7cyh0aGlzLCJIdG1sQmxvY2tIYW5kbGVyIil9dHlwZT0iaHRtbCI7cmVuZGVyKGUsdCl7bGV0IHI9ZS5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAsaT1lLmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1ibG9jay1jb250YWluZXIke3Q/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke3J9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWljb24iPiZsdDsvJmd0OzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC10aXRsZSI+SFRNTDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaHRtbC10b2dnbGUtbW9kZSIgdGl0bGU9IiR7cj8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7cj8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtY29udGVudCI+CiAgICAgICAgICAke3I/dGhpcy5yZW5kZXJFZGl0b3IoaSk6dGhpcy5yZW5kZXJQcmV2aWV3KGkpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJodG1sLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgSFRNTCBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLXByZXZpZXciPgogICAgICAgICR7ZXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHQscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxvPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtdG9nZ2xlLW1vZGUiKTtpZighaXx8IW8pe2NvbnNvbGUuZXJyb3IoIkh0bWxCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXQubWV0YWRhdGF8fCh0Lm1ldGFkYXRhPXt9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJih0Lm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntpZihuLnByZXZlbnREZWZhdWx0KCksbi5zdG9wUHJvcGFnYXRpb24oKSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPWkucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7bCYmKHQuY29udGVudD1sLnZhbHVlKX10Lm1ldGFkYXRhLmlzRWRpdE1vZGU9IXQubWV0YWRhdGEuaXNFZGl0TW9kZSxyLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSx0Lm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLHQscik6dGhpcy5zZXR1cFByZXZpZXcoZSx0LHIpfXNldHVwRWRpdG9yKGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2kmJihpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+ci5vbkZvY3VzKCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnIub25CbHVyKCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dC5jb250ZW50PWkudmFsdWUsdGhpcy52YWxpZGF0ZUh0bWwoaS52YWx1ZSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZihvLmtleT09PSJUYWIiKXtvLnByZXZlbnREZWZhdWx0KCk7bGV0IG49aS5zZWxlY3Rpb25TdGFydCxsPWkuc2VsZWN0aW9uRW5kLGQ9aS52YWx1ZTtpZihvLnNoaWZ0S2V5KXtsZXQgdT1kLnN1YnN0cmluZygwLG4pLmxhc3RJbmRleE9mKGAKYCkrMSxtPWQuc3Vic3RyaW5nKHUsbik7bS5zdGFydHNXaXRoKCIgICIpJiYoaS52YWx1ZT1kLnN1YnN0cmluZygwLHUpK20uc3Vic3RyaW5nKDIpK2Quc3Vic3RyaW5nKG4pLGkuc2VsZWN0aW9uU3RhcnQ9aS5zZWxlY3Rpb25FbmQ9bi0yKX1lbHNlIGkudmFsdWU9ZC5zdWJzdHJpbmcoMCxuKSsiICAiK2Quc3Vic3RyaW5nKGwpLGkuc2VsZWN0aW9uU3RhcnQ9aS5zZWxlY3Rpb25FbmQ9bisyO3QuY29udGVudD1pLnZhbHVlO3JldHVybn1pZigoby5jdHJsS2V5fHxvLm1ldGFLZXkpJiZvLmtleT09PSIvIil7by5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXV0b0Nsb3NlVGFnKGkpLHQuY29udGVudD1pLnZhbHVlO3JldHVybn1yLm9uS2V5RG93bihvKX0pLHRoaXMuYXV0b1Jlc2l6ZShpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKGkpKSl9c2V0dXBQcmV2aWV3KGUsdCxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik7IWl8fCFvfHwoby5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG8uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5yLm9uRm9jdXMoKSksby5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+ci5vbkJsdXIoKSksby5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57aWYobi5rZXk9PT0iRW50ZXIiJiYhbi5zaGlmdEtleSl7bi5wcmV2ZW50RGVmYXVsdCgpLHQubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxyLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufXIub25LZXlEb3duKG4pfSksdGhpcy5zYW5kYm94Q29udGVudChvKSl9YXV0b0Nsb3NlVGFnKGUpe2xldCB0PWUuc2VsZWN0aW9uU3RhcnQscj1lLnZhbHVlLGk9dDtmb3IoO2k+MCYmcltpLTFdIT09IjwiOylpLS07aWYoaT4wKXtsZXQgbj1yLnN1YnN0cmluZyhpLHQpLm1hdGNoKC9eKFx3KykvKTtpZihuKXtsZXQgZD1gPC8ke25bMV19PmA7ZS52YWx1ZT1yLnN1YnN0cmluZygwLHQpKyI+IitkK3Iuc3Vic3RyaW5nKHQpLGUuc2VsZWN0aW9uU3RhcnQ9ZS5zZWxlY3Rpb25FbmQ9dCsxfX19YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In12YWxpZGF0ZUh0bWwoZSl7bGV0IHQ9W10scj0vPFwvPyhbYS16QS1aXVthLXpBLVowLTldKilcYltePl0qPi9nLGk7Zm9yKDsoaT1yLmV4ZWMoZSkpIT09bnVsbDspe2xldCBvPWlbMF0uc3RhcnRzV2l0aCgiPC8iKSxuPWlbMV0udG9Mb3dlckNhc2UoKTtpZihvKXtpZih0Lmxlbmd0aD09PTB8fHRbdC5sZW5ndGgtMV0hPT1uKXJldHVybiBjb25zb2xlLndhcm4oYE1pc21hdGNoZWQgY2xvc2luZyB0YWc6ICR7bn1gKSwhMTt0LnBvcCgpfWVsc2UgaVswXS5lbmRzV2l0aCgiLz4iKXx8dC5wdXNoKG4pfXJldHVybiB0Lmxlbmd0aD4wPyhjb25zb2xlLndhcm4oYFVuY2xvc2VkIHRhZ3M6ICR7dC5qb2luKCIsICIpfWApLCExKTohMH1zYW5kYm94Q29udGVudChlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpLmZvckVhY2gobz0+by5yZW1vdmUoKSksZS5xdWVyeVNlbGVjdG9yQWxsKCIqIikuZm9yRWFjaChvPT57QXJyYXkuZnJvbShvLmF0dHJpYnV0ZXMpLmZvckVhY2gobj0+e24ubmFtZS5zdGFydHNXaXRoKCJvbiIpJiZvLnJlbW92ZUF0dHJpYnV0ZShuLm5hbWUpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKS5mb3JFYWNoKG89PntvLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsbj0+e24ucHJldmVudERlZmF1bHQoKSxuLnN0b3BQcm9wYWdhdGlvbigpfSl9KX1lc2NhcGVIdG1sKGUpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnRleHRDb250ZW50PWUsdC5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKHQpcmV0dXJuIHQudmFsdWU7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHQpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7ciYmKHIudmFsdWU9dCx0aGlzLmF1dG9SZXNpemUocikpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cmV0dXJuIHQ/dC5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTt0Pyh0LnNlbGVjdGlvblN0YXJ0PXQuc2VsZWN0aW9uRW5kPTAsdC5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYodCl7bGV0IHI9dC52YWx1ZS5sZW5ndGg7dC5zZWxlY3Rpb25TdGFydD10LnNlbGVjdGlvbkVuZD1yLHQuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTt0P3QuZm9jdXMoKTplLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSx0PSJlbmQiKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3I/dD09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnQ9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiB0PT0ibnVtYmVyIiYmKHIuc2VsZWN0aW9uU3RhcnQ9ci5zZWxlY3Rpb25FbmQ9dCxyLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCB0PWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoIXQpcmV0dXJuIG51bGw7bGV0IHI9dC5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnQudmFsdWUuc3Vic3RyaW5nKDAsciksYWZ0ZXI6dC52YWx1ZS5zdWJzdHJpbmcocil9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSFRNTCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5odG1sLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAuaHRtbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAuaHRtbC1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAuaHRtbC1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNhbmRib3hlZCBIVE1MIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5odG1sLXByZXZpZXcgKiB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGltZyB7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGgsCiAgICAgIC5odG1sLXByZXZpZXcgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgfX19KTt2YXIgR1hlPWYoKCk9PntybigpO3VpYSgpO3BpYSgpO2ZpYSgpO2hpYSgpO21pYSgpO0IyYSgpO0gyYSgpO3EyYSgpO1YyYSgpO2oyYSgpO1UyYSgpO1cyYSgpO0cyYSgpfSk7ZnVuY3Rpb24gWTJhKCl7amEucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyBJVyksamEucmVnaXN0ZXIoInBhcmFncmFwaCIsbmV3IE5VKSxqYS5yZWdpc3RlcigiaGVhZGluZy0xIixuZXcgRWYoImhlYWRpbmctMSIpKSxqYS5yZWdpc3RlcigiaGVhZGluZy0yIixuZXcgRWYoImhlYWRpbmctMiIpKSxqYS5yZWdpc3RlcigiaGVhZGluZy0zIixuZXcgRWYoImhlYWRpbmctMyIpKSxqYS5yZWdpc3RlcigicXVvdGUiLG5ldyBSVSksamEucmVnaXN0ZXIoImNvZGUiLG5ldyAkVyksamEucmVnaXN0ZXIoImxpc3QiLG5ldyBEVyksamEucmVnaXN0ZXIoImltYWdlIixuZXcgQVcpLGphLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgUFcpLGphLnJlZ2lzdGVyKCJhdHRhY2htZW50IixuZXcgRVcpLGphLnJlZ2lzdGVyKCJtYXJrZG93biIsbmV3IE5XKSxqYS5yZWdpc3RlcigiaHRtbCIsbmV3IFJXKX12YXIgWVhlPWYoKCk9PntHWGUoKTtzKFkyYSwicmVnaXN0ZXJBbGxCbG9ja0hhbmRsZXJzIiksWTJhKCl9KTt2YXIgT1csS1hlPWYoKCk9PntsZSgpO2NjKCk7SW8oKTtBZigpO3phZSgpO09XPWNsYXNze3N0YXRpY3tzKHRoaXMsIld5c2l3eWdNb2RhbE1hbmFnZXIiKX1zdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2xldCB0PW51bGw7TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OndgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChyPT53YAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke3Q9PT1yLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0PXIudG9Mb3dlckNhc2UoKTtsZXQgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7aSYmdHlwZW9mIGkuZGVzdHJveT09ImZ1bmN0aW9uIiYmaS5kZXN0cm95KCksZSh0KX19Ij4KICAgICAgICAgICAgICAgICAgJHtyfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOnMoYXN5bmMgcj0+e3IuZGVzdHJveSgpLGUobnVsbCl9LCJhY3Rpb24iKX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbChlLHQpe2xldCByPXdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKGUsdCl9CiAgICAgICAgJHtlLnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyhlLHQpOiIifQogICAgICA8L2Rpdj4KICAgIGA7TWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6cixtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjpzKGFzeW5jIGk9PntpLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSx0KXtsZXQgcj1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAoaT0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7cj09PWkudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57ZS5tZXRhZGF0YXx8KGUubWV0YWRhdGE9e30pLGUubWV0YWRhdGEubGFuZ3VhZ2U9aS50b0xvd2VyQ2FzZSgpLHQoZSk7bGV0IG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO28mJnR5cGVvZiBvLmRlc3Ryb3k9PSJmdW5jdGlvbiImJm8uZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke2l9IgogICAgICAgICAgICA+JHtpfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLkVVXX1zdGF0aWMgZ2V0QmxvY2tUeXBlU2VsZWN0b3IoZSx0KXtsZXQgcj1lcy5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihpPT5pLnR5cGUhPT0iZGl2aWRlciIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+QmxvY2sgVHlwZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrLXR5cGUtZ3JpZCI+CiAgICAgICAgICAke3IubWFwKGk9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9ImJsb2NrLXR5cGUtYnV0dG9uICR7ZS50eXBlPT09aS50eXBlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0iJHthc3luYyBvPT57bGV0IG49by5jdXJyZW50VGFyZ2V0LGw9ZS50eXBlO2lmKGUudHlwZT1pLnR5cGUsbD09PSJjb2RlIiYmZS50eXBlIT09ImNvZGUiKWRlbGV0ZSBlLm1ldGFkYXRhPy5sYW5ndWFnZTtlbHNlIGlmKGw9PT0ibGlzdCImJmUudHlwZSE9PSJsaXN0IilkZWxldGUgZS5tZXRhZGF0YT8ubGlzdFR5cGU7ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCImJiFlLm1ldGFkYXRhPy5saXN0VHlwZSllLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In07ZWxzZSBpZihlLnR5cGU9PT0iY29kZSImJiFlLm1ldGFkYXRhPy5sYW5ndWFnZSl7bGV0IGM9YXdhaXQgdGhpcy5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO2lmKGMpZS5tZXRhZGF0YT17bGFuZ3VhZ2U6Y307ZWxzZXtlLnR5cGU9bDtyZXR1cm59fXQoZSk7bGV0IGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO2QmJnR5cGVvZiBkLmRlc3Ryb3k9PSJmdW5jdGlvbiImJmQuZGVzdHJveSgpfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmxvY2stdHlwZS1pY29uIj4ke2kuaWNvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+JHtpLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX19KTt2YXIgRlcsSzJhPWYoKCk9PntJbygpO2NtKCk7QWYoKTtoYygpO3RLZSgpO0tYZSgpO0ZXPWNsYXNze3N0YXRpY3tzKHRoaXMsIld5c2l3eWdJbnB1dEhhbmRsZXIiKX1jb21wb25lbnQ7c2F2ZVRpbWVvdXQ9bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWhhbmRsZUJsb2NrSW5wdXQoZSx0KXtpZih0aGlzLmNvbXBvbmVudC5pc0NvbXBvc2luZylyZXR1cm47bGV0IHI9ZS50YXJnZXQsaT1yLnRleHRDb250ZW50fHwiIixvPXRoaXMuZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGkpO2lmKG8mJm8udHlwZSE9PXQudHlwZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbih0LG8scik7cmV0dXJufXRoaXMuaGFuZGxlU2xhc2hDb21tYW5kKGksciksdGhpcy5zY2hlZHVsZUF1dG9TYXZlKCl9dXBkYXRlQmxvY2tDb250ZW50KGUsdCl7bGV0IGk9dC5jbG9zZXN0KCIuYmxvY2std3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihpKXtsZXQgbz1pLmdldENvbnRlbnQoKTtpZihlLmNvbnRlbnQhPT1vJiYoZS5jb250ZW50PW8pLGUudHlwZT09PSJsaXN0Iil7bGV0IG49dC5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtuJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6bi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfX1lbHNlIGlmKGUudHlwZT09PSJsaXN0Iil7bGV0IG89dC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO2UuY29udGVudD1BcnJheS5mcm9tKG8pLm1hcChsPT5sLmlubmVySFRNTHx8IiIpLmpvaW4oYApgKTtsZXQgbj10LnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO24mJihlLm1ldGFkYXRhPXtsaXN0VHlwZTpuLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9ZWxzZSBlLnR5cGU9PT0iY29kZSI/ZS5jb250ZW50PXQudGV4dENvbnRlbnR8fCIiOmUuY29udGVudD10LmlubmVySFRNTHx8IiJ9ZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGUpe2xldCB0PWVzLmNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IHI9ZXMuY2hlY2tMaXN0U2hvcnRjdXQoZSk7cmV0dXJuIHJ8fChlcy5jaGVja1F1b3RlU2hvcnRjdXQoZSk/e3R5cGU6InF1b3RlIn06ZXMuY2hlY2tDb2RlU2hvcnRjdXQoZSk/e3R5cGU6ImNvZGUifTplcy5jaGVja0RpdmlkZXJTaG9ydGN1dChlKT97dHlwZToiZGl2aWRlciJ9Om51bGwpfWFzeW5jIGhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oZSx0LHIpe2xldCBpPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZih0LnR5cGU9PT0ibGlzdCIpe2UudHlwZT0ibGlzdCIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xpc3RUeXBlOnQubGlzdFR5cGV9O2xldCBvPXQubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO3IuaW5uZXJIVE1MPWA8JHtvfT48bGk+PC9saT48LyR7b30+YCx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KCgpPT57c2kuZm9jdXNMaXN0SXRlbShyKX0sMCl9ZWxzZSBpZih0LnR5cGU9PT0iZGl2aWRlciIpe2UudHlwZT0iZGl2aWRlciIsZS5jb250ZW50PSIgIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCk7bGV0IG89aS5jcmVhdGVCbG9jaygpO2kuaW5zZXJ0QmxvY2tBZnRlcihlLG8pLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZSBpZih0LnR5cGU9PT0iY29kZSIpe2xldCBvPWF3YWl0IE9XLnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7byYmKGUudHlwZT0iY29kZSIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xhbmd1YWdlOm99LHIudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgaS5mb2N1c0Jsb2NrKGUuaWQsInN0YXJ0Iil9LDUwKSl9ZWxzZSBlLnR5cGU9dC50eXBlLGUuY29udGVudD0iIixyLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IGkuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCl9aGFuZGxlU2xhc2hDb21tYW5kKGUsdCl7bGV0IHI9dGhpcy5jb21wb25lbnQuc2xhc2hNZW51LGk9ciYmci52aXNpYmxlO2lmKGU9PT0iLyJ8fGUuc3RhcnRzV2l0aCgiLyIpJiZpKXtpZighaSYmZT09PSIvIil7bGV0IG89dGhpcy5nZXRDYXJldENvb3JkaW5hdGVzKHQpO3Iuc2hvdyh7eDpvLmxlZnQseTpvLmJvdHRvbSs0fSxuPT57dGhpcy5jb21wb25lbnQuaW5zZXJ0QmxvY2sobil9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmdC5mb2N1cygpfSl9ciYmci51cGRhdGVGaWx0ZXIoZS5zbGljZSgxKSl9ZWxzZSBlLnN0YXJ0c1dpdGgoIi8iKXx8dGhpcy5jb21wb25lbnQuY2xvc2VTbGFzaE1lbnUoKX1nZXRDYXJldENvb3JkaW5hdGVzKGUpe2xldCB0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZih0JiZ0LnJhbmdlQ291bnQ+MCl7bGV0IGk9dC5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGkud2lkdGg+MHx8aS5oZWlnaHQ+MClyZXR1cm4gaX1yZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1zY2hlZHVsZUF1dG9TYXZlKCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpLCEodGhpcy5jb21wb25lbnQuc2xhc2hNZW51JiZ0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSkmJih0aGlzLnNhdmVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN5bmNBbGxCbG9ja0NvbnRlbnQoKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfSwyZTMpKX1zeW5jQWxsQmxvY2tDb250ZW50KCl7dGhpcy5jb21wb25lbnQuYmxvY2tzLmZvckVhY2goZT0+e2xldCByPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYociYmci5nZXRDb250ZW50KXtsZXQgaT1yLmdldENvbnRlbnQoKTtlLmNvbnRlbnQhPT1pJiYoZS5jb250ZW50PWkpfX0pfWRlc3Ryb3koKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCl9fX0pO3ZhciBCVyxaMmE9ZigoKT0+e0lvKCk7Y20oKTtVMigpO0JXPWNsYXNze3N0YXRpY3tzKHRoaXMsIld5c2l3eWdLZXlib2FyZEhhbmRsZXIiKX1jb21wb25lbnQ7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1hc3luYyBoYW5kbGVCbG9ja0tleURvd24oZSx0KXtpZih0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5pc1NsYXNoTWVudUtleShlLmtleSkpe3RoaXMuY29tcG9uZW50LmhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGUpO3JldHVybn1pZighdGhpcy5oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpKXN3aXRjaChlLmtleSl7Y2FzZSJUYWIiOnRoaXMuaGFuZGxlVGFiKGUsdCk7YnJlYWs7Y2FzZSJFbnRlciI6YXdhaXQgdGhpcy5oYW5kbGVFbnRlcihlLHQpO2JyZWFrO2Nhc2UiQmFja3NwYWNlIjphd2FpdCB0aGlzLmhhbmRsZUJhY2tzcGFjZShlLHQpO2JyZWFrO2Nhc2UiRGVsZXRlIjphd2FpdCB0aGlzLmhhbmRsZURlbGV0ZShlLHQpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1VwKGUsdCk7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dEb3duKGUsdCk7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dMZWZ0KGUsdCk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93UmlnaHQoZSx0KTticmVha319aXNTbGFzaE1lbnVLZXkoZSl7cmV0dXJuWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiRW50ZXIiLCJFc2NhcGUiXS5pbmNsdWRlcyhlKX1oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpe2lmKCEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpKXJldHVybiExO3N3aXRjaChlLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlImIiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImJvbGQiKSksITA7Y2FzZSJpIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJpdGFsaWMiKSksITA7Y2FzZSJ1IjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJ1bmRlcmxpbmUiKSksITA7Y2FzZSJrIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJsaW5rIikpLCEwfXJldHVybiExfWhhbmRsZVRhYihlLHQpe3QudHlwZSE9PSJjb2RlIiYmdC50eXBlPT09Imxpc3QiJiZlLnByZXZlbnREZWZhdWx0KCl9YXN5bmMgaGFuZGxlRW50ZXIoZSx0KXtsZXQgcj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbz1yLmNyZWF0ZUJsb2NrKCk7YXdhaXQgci5pbnNlcnRCbG9ja0FmdGVyKHQsbyk7cmV0dXJufWlmKHQudHlwZT09PSJjb2RlIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXIuY3JlYXRlQmxvY2soKTthd2FpdCByLmluc2VydEJsb2NrQWZ0ZXIodCxvKX1yZXR1cm59aWYoIWUuc2hpZnRLZXkpaWYodC50eXBlPT09Imxpc3QiKWF3YWl0IHRoaXMuaGFuZGxlRW50ZXJJbkxpc3QoZSx0KTtlbHNle2UucHJldmVudERlZmF1bHQoKTtsZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG4mJm4uZ2V0U3BsaXRDb250ZW50KXtsZXQgbD1uLmdldFNwbGl0Q29udGVudCgpO2lmKGwpe24uc2V0Q29udGVudChsLmJlZm9yZSksdC5jb250ZW50PWwuYmVmb3JlO2xldCBkPXIuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsbC5hZnRlcik7YXdhaXQgci5pbnNlcnRCbG9ja0FmdGVyKHQsZCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNle2xldCBkPXIuY3JlYXRlQmxvY2soKTthd2FpdCByLmluc2VydEJsb2NrQWZ0ZXIodCxkKX19ZWxzZXtsZXQgbD1yLmNyZWF0ZUJsb2NrKCk7YXdhaXQgci5pbnNlcnRCbG9ja0FmdGVyKHQsbCl9fX1hc3luYyBoYW5kbGVFbnRlckluTGlzdChlLHQpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihyJiZyLnJhbmdlQ291bnQ+MCl7bGV0IG89ci5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYobyYmby50ZXh0Q29udGVudD09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG49dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9bi5jcmVhdGVCbG9jaygpO2F3YWl0IG4uaW5zZXJ0QmxvY2tBZnRlcih0LGwpfX19YXN5bmMgaGFuZGxlQmFja3NwYWNlKGUsdCl7bGV0IHI9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0LnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLHIucmVtb3ZlQmxvY2sodC5pZCk7bGV0IHg9ci5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt4XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgci5mb2N1c0Jsb2NrKHguaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IG09ci5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpLHY9ci5nZXROZXh0QmxvY2sodC5pZCk7ci5yZW1vdmVCbG9jayh0LmlkKSxtJiZtLnR5cGUhPT0iZGl2aWRlciImJm0udHlwZSE9PSJpbWFnZSI/YXdhaXQgci5mb2N1c0Jsb2NrKG0uaWQsImVuZCIpOnYmJnYudHlwZSE9PSJkaXZpZGVyIiYmdi50eXBlIT09ImltYWdlIj9hd2FpdCByLmZvY3VzQmxvY2sodi5pZCwic3RhcnQiKTptP2F3YWl0IHIuZm9jdXNCbG9jayhtLmlkKTp2JiZhd2FpdCByLmZvY3VzQmxvY2sodi5pZCk7cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBsPXQudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFsKXJldHVybjtsZXQgZD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGM9W107ZD8uc2hhZG93Um9vdCYmYy5wdXNoKGQuc2hhZG93Um9vdCksYy5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IHA9cnQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobCwuLi5jKSx1PW4uZ2V0Q29udGVudD9uLmdldENvbnRlbnQoKTpsLnRleHRDb250ZW50O2lmKHA9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG09ci5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2lmKG0pe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhtLnR5cGUpKXthd2FpdCByLmZvY3VzQmxvY2sobS5pZCk7cmV0dXJufWlmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLG0udHlwZT09PSJjb2RlIiYmdC50eXBlIT09ImNvZGUiKXt0LmNvbnRlbnQ9PT0iIiYmKHIucmVtb3ZlQmxvY2sodC5pZCksYXdhaXQgci5mb2N1c0Jsb2NrKG0uaWQsImVuZCIpKTtyZXR1cm59aWYodC50eXBlPT09ImNvZGUiJiZtLnR5cGUhPT0iY29kZSIpe2xldCBOPW4uZ2V0Q29udGVudD9uLmdldENvbnRlbnQoKTp0LmNvbnRlbnQ7KE49PT0iInx8Ti50cmltKCk9PT0iIikmJihyLnJlbW92ZUJsb2NrKHQuaWQpLGF3YWl0IHIuZm9jdXNCbG9jayhtLmlkLCJlbmQiKSk7cmV0dXJufWxldCBiPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke20uaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIiksZz1iPy5nZXRDb250ZW50KCl8fG0uY29udGVudHx8IiIseT1uLmdldENvbnRlbnQoKXx8dC5jb250ZW50fHwiIixrPSIiO20udHlwZT09PSJjb2RlIiYmdC50eXBlPT09ImNvZGUifHxtLnR5cGU9PT0ibGlzdCImJnQudHlwZT09PSJsaXN0Ij9rPWcrKGcmJnk/YApgOiIiKSt5Oms9ZysoZyYmeT8iICI6IiIpK3k7bGV0IEM9Zy5sZW5ndGg7ci51cGRhdGVCbG9ja0NvbnRlbnQobS5pZCxrKSxiJiZiLnNldENvbnRlbnQoayksci5yZW1vdmVCbG9jayh0LmlkKSxhd2FpdCByLmZvY3VzQmxvY2sobS5pZCxDKX19ZWxzZSBpZih0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPjEpe2xldCBtPW4uZ2V0Q29udGVudD9uLmdldENvbnRlbnQoKTp0LmNvbnRlbnQ7aWYobT09PSIifHxtLnRyaW0oKT09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9ci5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO3YmJihyLnJlbW92ZUJsb2NrKHQuaWQpLHYudHlwZSE9PSJkaXZpZGVyIiYmYXdhaXQgci5mb2N1c0Jsb2NrKHYuaWQsImVuZCIpKX19fWFzeW5jIGhhbmRsZURlbGV0ZShlLHQpe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxyLnJlbW92ZUJsb2NrKHQuaWQpO2xldCBiPXIuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1bYl0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IHIuZm9jdXNCbG9jayhiLmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBtPXIuZ2V0UHJldmlvdXNCbG9jayh0LmlkKSx2PXIuZ2V0TmV4dEJsb2NrKHQuaWQpO3IucmVtb3ZlQmxvY2sodC5pZCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO3YmJiF4LmluY2x1ZGVzKHYudHlwZSk/YXdhaXQgci5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0Iik6bSYmIXguaW5jbHVkZXMobS50eXBlKT9hd2FpdCByLmZvY3VzQmxvY2sobS5pZCwiZW5kIik6dj9hd2FpdCByLmZvY3VzQmxvY2sodi5pZCk6bSYmYXdhaXQgci5mb2N1c0Jsb2NrKG0uaWQpO3JldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbD10LnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbClyZXR1cm47bGV0IGQ9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2Q/LnNoYWRvd1Jvb3QmJmMucHVzaChkLnNoYWRvd1Jvb3QpLGMucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBwPXJ0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGwsLi4uYyksdT1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYocD09PXUpe2xldCBtPXIuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKG0mJlsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhtLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCksYXdhaXQgci5mb2N1c0Jsb2NrKG0uaWQpO3JldHVybn19fWFzeW5jIGhhbmRsZUFycm93VXAoZSx0KXtsZXQgcj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07aWYoci5pbmNsdWRlcyh0LnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHA9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHU9cC5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO3UmJmF3YWl0IHAuZm9jdXNCbG9jayh1LmlkLHIuaW5jbHVkZXModS50eXBlKT92b2lkIDA6ImVuZCIpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbj10LnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbilyZXR1cm47bGV0IGw9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO2w/LnNoYWRvd1Jvb3QmJmQucHVzaChsLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCBjPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoISghY3x8IWMuY29sbGFwc2VkKSYmdGhpcy5pc09uRmlyc3RMaW5lKGMsbiwuLi5kKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBwPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyx1PXAuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZih1KXtsZXQgbT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgcC5mb2N1c0Jsb2NrKHUuaWQsbS5pbmNsdWRlcyh1LnR5cGUpP3ZvaWQgMDoiZW5kIil9fX1hc3luYyBoYW5kbGVBcnJvd0Rvd24oZSx0KXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBwPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyx1PXAuZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKHUpe2xldCBtPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBwLmZvY3VzQmxvY2sodS5pZCxtLmluY2x1ZGVzKHUudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbj10LnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbilyZXR1cm47bGV0IGw9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO2w/LnNoYWRvd1Jvb3QmJmQucHVzaChsLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCBjPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoISghY3x8IWMuY29sbGFwc2VkKSYmdGhpcy5pc09uTGFzdExpbmUoYyxuLC4uLmQpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHA9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHU9cC5nZXROZXh0QmxvY2sodC5pZCk7aWYodSl7bGV0IG09WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHAuZm9jdXNCbG9jayh1LmlkLG0uaW5jbHVkZXModS50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgdD1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7dD49MDt0LS0pe2xldCByPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1t0XSk7aWYocilyZXR1cm4gcn1yZXR1cm4gbnVsbH1hc3luYyBoYW5kbGVBcnJvd0xlZnQoZSx0KXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModC50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxtPXUuZ2V0UHJldmlvdXNCbG9jayh0LmlkKTtpZihtKXtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKG0uaWQsdi5pbmNsdWRlcyhtLnR5cGUpP3ZvaWQgMDoiZW5kIil9cmV0dXJufWxldCBvPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3QuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW98fCFvLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBuPXQudHlwZT09PSJjb2RlIj9vLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFuKXJldHVybjtsZXQgbD1vLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107bD8uc2hhZG93Um9vdCYmZC5wdXNoKGwuc2hhZG93Um9vdCksZC5wdXNoKG8uc2hhZG93Um9vdCk7bGV0IGM9cnQuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighY3x8IWMuY29sbGFwc2VkKXJldHVybjtpZihydC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChuLC4uLmQpPT09MCl7bGV0IHU9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLG09dS5nZXRQcmV2aW91c0Jsb2NrKHQuaWQpO2lmKG0pe2UucHJldmVudERlZmF1bHQoKTtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMobS50eXBlKT92b2lkIDA6ImVuZCI7YXdhaXQgdS5mb2N1c0Jsb2NrKG0uaWQseCl9fX1hc3luYyBoYW5kbGVBcnJvd1JpZ2h0KGUsdCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHQudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsdj1tLmdldE5leHRCbG9jayh0LmlkKTtpZih2KXtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgbS5mb2N1c0Jsb2NrKHYuaWQseC5pbmNsdWRlcyh2LnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighb3x8IW8uc2hhZG93Um9vdClyZXR1cm47bGV0IG49dC50eXBlPT09ImNvZGUiP28uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpvLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW4pcmV0dXJuO2xldCBsPW8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksZD1bXTtsPy5zaGFkb3dSb290JiZkLnB1c2gobC5zaGFkb3dSb290KSxkLnB1c2goby5zaGFkb3dSb290KTtsZXQgYz1ydC5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhYy5jb2xsYXBzZWQpcmV0dXJuO2xldCBwPXJ0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG4sLi4uZCksdT1uLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYocD09PXUpe2xldCBtPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyx2PW0uZ2V0TmV4dEJsb2NrKHQuaWQpO2lmKHYpe2UucHJldmVudERlZmF1bHQoKTtsZXQgeD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgbS5mb2N1c0Jsb2NrKHYuaWQseC5pbmNsdWRlcyh2LnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWlzT25GaXJzdExpbmUoZSx0LC4uLnIpe3RyeXtsZXQgaT1ydC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG89aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWkuY29tbW9uQW5jZXN0b3JDb250YWluZXI7bi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobj1uLnBhcmVudEVsZW1lbnQpO2xldCBsPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZD1vLnRvcC1sLnRvcDw1O3JldHVybiBuLnRleHRDb250ZW50JiYhbi50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApP3J0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG4sLi4ucik9PT0wOmR9Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgZmlyc3QgbGluZToiLGkpLGUuc3RhcnRPZmZzZXQ9PT0wfX1pc09uTGFzdExpbmUoZSx0LC4uLnIpe3RyeXtsZXQgaT1ydC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG89aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWkuY29tbW9uQW5jZXN0b3JDb250YWluZXI7bi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobj1uLnBhcmVudEVsZW1lbnQpO2xldCBkPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLW8uYm90dG9tPDU7aWYobi50ZXh0Q29udGVudCYmIW4udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKSl7bGV0IGM9dC50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBydC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudCh0LC4uLnIpPT09Y31yZXR1cm4gZH1jYXRjaChpKXtjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGxhc3QgbGluZToiLGkpO2xldCBvPXQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gcnQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodCwuLi5yKT09PW99fX19KTt2YXIgSFcsWDJhPWYoKCk9PntJbygpO2NtKCk7SFc9Y2xhc3N7c3RhdGlje3ModGhpcywiV3lzaXd5Z0RyYWdEcm9wSGFuZGxlciIpfWNvbXBvbmVudDtkcmFnZ2VkQmxvY2tJZD1udWxsO2RyYWdPdmVyQmxvY2tJZD1udWxsO2RyYWdPdmVyUG9zaXRpb249bnVsbDtkcm9wSW5kaWNhdG9yPW51bGw7aW5pdGlhbE1vdXNlWT0wO2luaXRpYWxCbG9ja1k9MDtkcmFnZ2VkQmxvY2tFbGVtZW50PW51bGw7ZHJhZ2dlZEJsb2NrSGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wO2RyYWdnZWRCbG9ja01hcmdpblRvcD0wO2xhc3RVcGRhdGVUaW1lPTA7dXBkYXRlVGhyb3R0bGU9ODA7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1nZXQgZHJhZ1N0YXRlKCl7cmV0dXJue2RyYWdnZWRCbG9ja0lkOnRoaXMuZHJhZ2dlZEJsb2NrSWQsZHJhZ092ZXJCbG9ja0lkOnRoaXMuZHJhZ092ZXJCbG9ja0lkLGRyYWdPdmVyUG9zaXRpb246dGhpcy5kcmFnT3ZlclBvc2l0aW9ufX1oYW5kbGVEcmFnU3RhcnQoZSx0KXtpZighZS5kYXRhVHJhbnNmZXIpcmV0dXJuO3RoaXMuZHJhZ2dlZEJsb2NrSWQ9dC5pZCxlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIixlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIix0LmlkKTtsZXQgcj1uZXcgSW1hZ2U7aWYoci5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShyLDAsMCksdGhpcy5pbml0aWFsTW91c2VZPWUuY2xpZW50WSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0LmlkfSJdYCksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgaT10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbml0aWFsQmxvY2tZPWkudG9wO2xldCBvPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihvKXtsZXQgbj1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9d2luZG93LmdldENvbXB1dGVkU3R5bGUobyk7dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9cGFyc2VJbnQobC5tYXJnaW5Ub3ApfHwwLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD1uLmhlaWdodH10aGlzLmRyYWdnZWRCbG9ja0hlaWdodD1pLmhlaWdodCxjb25zb2xlLmxvZygiRHJhZyBtZWFzdXJlbWVudHM6Iix7d3JhcHBlckhlaWdodDppLmhlaWdodCxtYXJnaW5Ub3A6dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AsZHJvcEluZGljYXRvckhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxjb250ZW50SGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxibG9ja0lkOnQuaWR9KSx0aGlzLmNyZWF0ZURyb3BJbmRpY2F0b3IoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKX10aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD10aGlzLmRyYWdnZWRCbG9ja0lkLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQmJnRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sMTApfWhhbmRsZURyYWdFbmQoKXt0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaCh0PT57dC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIsIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSx0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IiksdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIil9KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD0wLHRoaXMuaW5pdGlhbEJsb2NrWT0wLHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyYWdPdmVyKGUsdCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCFlLmRhdGFUcmFuc2Zlcnx8IXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT10LmlkKXJldHVybjtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIjtsZXQgcj1lLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1yLnRvcCtyLmhlaWdodC8yO3RoaXMuZHJhZ092ZXJCbG9ja0lkPXQuaWQsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPWUuY2xpZW50WTxpPyJiZWZvcmUiOiJhZnRlciIsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPXRoaXMuZHJhZ092ZXJCbG9ja0lkLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249dGhpcy5kcmFnT3ZlclBvc2l0aW9ufWhhbmRsZURyYWdMZWF2ZShlKXt0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWUuaWQmJih0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbCl9aGFuZGxlRHJvcChlLHQpe2UucHJldmVudERlZmF1bHQoKSwhKCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09dC5pZCkmJnRoaXMuY29tcG9uZW50LmhhbmRsZURyb3AoZSx0KX1pc0RyYWdnaW5nKGUpe3JldHVybiB0aGlzLmRyYWdnZWRCbG9ja0lkPT09ZX1pc0RyYWdPdmVyKGUpe3JldHVybiB0aGlzLmRyYWdPdmVyQmxvY2tJZD09PWV9Z2V0RHJhZ092ZXJDbGFzc2VzKGUpe3JldHVybiB0aGlzLmlzRHJhZ092ZXIoZSk/dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImJlZm9yZSI/ImRyYWctb3Zlci1iZWZvcmUiOiJkcmFnLW92ZXItYWZ0ZXIiOiIifWNyZWF0ZURyb3BJbmRpY2F0b3IoKXt0aGlzLmRyb3BJbmRpY2F0b3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5kcm9wSW5kaWNhdG9yLmNsYXNzTmFtZT0iZHJvcC1pbmRpY2F0b3IiLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcil9aGFuZGxlR2xvYmFsRHJhZ092ZXI9cyhlPT57aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO2xldCB0PWUuY2xpZW50WS10aGlzLmluaXRpYWxNb3VzZVk7dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3R9cHgpYDtsZXQgcj1EYXRlLm5vdygpO3ItdGhpcy5sYXN0VXBkYXRlVGltZTx0aGlzLnVwZGF0ZVRocm90dGxlfHwodGhpcy5sYXN0VXBkYXRlVGltZT1yLHRoaXMudXBkYXRlQmxvY2tQb3NpdGlvbnMoZS5jbGllbnRZKSl9LCJoYW5kbGVHbG9iYWxEcmFnT3ZlciIpO3VwZGF0ZUJsb2NrUG9zaXRpb25zKGUpe2xldCB0PUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKSxyPXQuZmluZEluZGV4KG89Pm8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihyPT09LTEpcmV0dXJuO3QuZm9yRWFjaChvPT57by5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSE9PXRoaXMuZHJhZ2dlZEJsb2NrSWQmJihvLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxvLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IikpfSk7bGV0IGk9dC5sZW5ndGg7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2lmKG89PT1yKWNvbnRpbnVlO2xldCBsPXRbb10uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZD1sLnRvcDtpZihlPGQrbC5oZWlnaHQqLjUpe2k9bzticmVha319Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2lmKG89PT1yKWNvbnRpbnVlO2xldCBuPXRbb107cjxpP28+ciYmbzxpJiYobi5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSk6cj5pJiZvPj1pJiZvPHImJihuLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpfXRoaXMudXBkYXRlRHJvcEluZGljYXRvcih0LGkscil9dXBkYXRlRHJvcEluZGljYXRvcihlLHQscil7aWYoIXRoaXMuZHJvcEluZGljYXRvcnx8IXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgaT10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89MCxuPVtdO2ZvcihsZXQgYz0wO2M8ZS5sZW5ndGg7YysrKXtpZihjPT09ciljb250aW51ZTtsZXQgcD1lW2NdLHU9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXUudG9wLWkudG9wLHY9dS5ib3R0b20taS50b3AseD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwKS50cmFuc2Zvcm07aWYoeCYmeCE9PSJub25lIil7bGV0IGc9bmV3IERPTU1hdHJpeCh4KS5tNDI7bSs9Zyx2Kz1nfW4ucHVzaCh7aW5kZXg6Yyx0b3A6bSxib3R0b206dn0pfW4uc29ydCgoYyxwKT0+Yy50b3AtcC50b3ApO2xldCBsPXQ7dD5yJiZsLS07bGV0IGQ9MTY7aWYodGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgYz10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZChwPT5wLmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoYyl7bGV0IHA9Yy50eXBlO3A9PT0iaGVhZGluZy0xInx8cD09PSJoZWFkaW5nLTIifHxwPT09ImhlYWRpbmctMyI/ZD0yNDoocD09PSJjb2RlInx8cD09PSJxdW90ZSIpJiYoZD0yMCl9fWlmKGw9PT0wKW89MDtlbHNlIGlmKGw+PW4ubGVuZ3RoKXtsZXQgYz1uW24ubGVuZ3RoLTFdO2MmJihvPWMuYm90dG9tLG8rPWQpfWVsc2V7bGV0IGM9bltsLTFdO2MmJihvPWMuYm90dG9tLG8rPWQpfXRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5oZWlnaHQ9YCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS50b3A9YCR7TWF0aC5tYXgoMCxvKX1weGAsY29uc29sZS5sb2coIkRyb3AgaW5kaWNhdG9yIHVwZGF0ZToiLHt0YXJnZXRJbmRleDp0LGFkanVzdGVkVGFyZ2V0SW5kZXg6bCxkcmFnZ2VkSW5kZXg6cix0b3BQb3NpdGlvbjpvLGhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxibG9ja01hcmdpbjpkLHZpc3VhbEJsb2NrczpuLm1hcChjPT4oe2luZGV4OmMuaW5kZXgsdG9wOmMudG9wLGJvdHRvbTpjLmJvdHRvbX0pKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQ9cygoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuZHJvcEluZGljYXRvciYmKHRoaXMuZHJvcEluZGljYXRvci5yZW1vdmUoKSx0aGlzLmRyb3BJbmRpY2F0b3I9bnVsbCksdGhpcy5kcmFnZ2VkQmxvY2tJZD9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnBlcmZvcm1Ecm9wKCksdGhpcy5oYW5kbGVEcmFnRW5kKCl9KTp0aGlzLmhhbmRsZURyYWdFbmQoKX0sImhhbmRsZUdsb2JhbERyYWdFbmQiKTtwZXJmb3JtRHJvcCgpe2lmKCF0aGlzLmRyYWdnZWRCbG9ja0lkKXJldHVybjtsZXQgZT1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSk7aWYoIWUuZmluZChwPT5wLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCkpcmV0dXJuO2xldCByPWUubWFwKHA9PntsZXQgdT1wLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpLG09cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PW0udG9wK20uaGVpZ2h0LzI7cmV0dXJue2lkOnUsY2VudGVyWTp2LGVsZW1lbnQ6cH19KTtyLnNvcnQoKHAsdSk9PnAuY2VudGVyWS11LmNlbnRlclkpO2xldCBpPXIubWFwKHA9PnAuaWQpLmZpbHRlcihwPT5wIT09bnVsbCksbz1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxuPW8uZmluZChwPT5wLmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoIW4pcmV0dXJuO2xldCBsPW8ubWFwKHA9PnAuaWQpO2lmKCEhaS5ldmVyeSgocCx1KT0+cD09PWxbdV0pKXJldHVybjtsZXQgYz1pLm1hcChwPT5vLmZpbmQodT0+dS5pZD09PXApKS5maWx0ZXIoQm9vbGVhbik7dGhpcy5jb21wb25lbnQuYmxvY2tzPWMsdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksc2V0VGltZW91dCgoKT0+e24udHlwZSE9PSJkaXZpZGVyIiYmdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2sobi5pZCl9LDEwMCl9fX0pO3ZhciBxVyxRMmE9ZigoKT0+e0lvKCk7cVc9Y2xhc3N7c3RhdGlje3ModGhpcywiV3lzaXd5Z0hpc3RvcnkiKX1oaXN0b3J5PVtdO2N1cnJlbnRJbmRleD0tMTttYXhIaXN0b3J5U2l6ZT01MDtsYXN0U2F2ZVRpbWU9MDtzYXZlRGVib3VuY2VNcz01MDA7Y29uc3RydWN0b3IoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTF9c2F2ZVN0YXRlKGUsdCxyKXtsZXQgaT1EYXRlLm5vdygpO2lmKGktdGhpcy5sYXN0U2F2ZVRpbWU8dGhpcy5zYXZlRGVib3VuY2VNcyYmdGhpcy5jdXJyZW50SW5kZXg+PTApe3RoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF09e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDp0LGN1cnNvclBvc2l0aW9uOnI/ey4uLnJ9OnZvaWQgMCx0aW1lc3RhbXA6aX07cmV0dXJufXRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMSYmKHRoaXMuaGlzdG9yeT10aGlzLmhpc3Rvcnkuc2xpY2UoMCx0aGlzLmN1cnJlbnRJbmRleCsxKSk7bGV0IG89e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDp0LGN1cnNvclBvc2l0aW9uOnI/ey4uLnJ9OnZvaWQgMCx0aW1lc3RhbXA6aX07dGhpcy5oaXN0b3J5LnB1c2gobyksdGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmhpc3RvcnkubGVuZ3RoPnRoaXMubWF4SGlzdG9yeVNpemUmJih0aGlzLmhpc3Rvcnkuc2hpZnQoKSx0aGlzLmN1cnJlbnRJbmRleC0tKSx0aGlzLmxhc3RTYXZlVGltZT1pfXNhdmVDaGVja3BvaW50KGUsdCxyKXt0aGlzLmxhc3RTYXZlVGltZT0wLHRoaXMuc2F2ZVN0YXRlKGUsdCxyKX11bmRvKCl7cmV0dXJuIHRoaXMuY2FuVW5kbygpPyh0aGlzLmN1cnJlbnRJbmRleC0tLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1yZWRvKCl7cmV0dXJuIHRoaXMuY2FuUmVkbygpPyh0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1jYW5VbmRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PjB9Y2FuUmVkbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTF9Z2V0Q3VycmVudFN0YXRlKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4Pj0wJiZ0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoP3RoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTpudWxsfWNsZWFyKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xLHRoaXMubGFzdFNhdmVUaW1lPTB9Y2xvbmVCbG9ja3MoZSl7cmV0dXJuIGUubWFwKHQ9Pih7Li4udCxtZXRhZGF0YTp0Lm1ldGFkYXRhP3suLi50Lm1ldGFkYXRhfTp2b2lkIDB9KSl9Y2xvbmVTdGF0ZShlKXtyZXR1cm57YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZS5ibG9ja3MpLHNlbGVjdGVkQmxvY2tJZDplLnNlbGVjdGVkQmxvY2tJZCxjdXJzb3JQb3NpdGlvbjplLmN1cnNvclBvc2l0aW9uP3suLi5lLmN1cnNvclBvc2l0aW9ufTp2b2lkIDAsdGltZXN0YW1wOmUudGltZXN0YW1wfX1nZXRIaXN0b3J5SW5mbygpe3JldHVybntzaXplOnRoaXMuaGlzdG9yeS5sZW5ndGgsY3VycmVudEluZGV4OnRoaXMuY3VycmVudEluZGV4LGNhblVuZG86dGhpcy5jYW5VbmRvKCksY2FuUmVkbzp0aGlzLmNhblJlZG8oKX19fX0pO3ZhciBWVyx6YyxKMmEsZWxhPWYoKCk9PntsZSgpO0lvKCk7aGMoKTtVMigpO0dYZSgpO1lYZSgpO0FmKCk7WHIoKTtRZSgpO1ZXPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSx6Yz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sSjJhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy13eXNpd3lnLWJsb2NrIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNXeXNpd3lnQmxvY2siKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOkJvb2xlYW59KV0sdT1bJCh7dHlwZTpPYmplY3R9KV0seD1bJCh7dHlwZTpPYmplY3R9KV0sVlcodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9jayIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iYmxvY2siaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5ibG9jaywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmJsb2NrPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbixsKSxWVyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzU2VsZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImlzU2VsZWN0ZWQiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5pc1NlbGVjdGVkLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MuaXNTZWxlY3RlZD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGMscCksVlcodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYW5kbGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iaGFuZGxlcnMiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5oYW5kbGVycywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmhhbmRsZXJzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbSx2KSxWVyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Ind5c2l3eWdDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+Ind5c2l3eWdDb21wb25lbnQiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy53eXNpd3lnQ29tcG9uZW50LCJnZXQiKSxzZXQ6cygoQyxOKT0+e0Mud3lzaXd5Z0NvbXBvbmVudD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksVlcobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSx5PXI9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fc2VsZWN0aW9uSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLl9zZWxlY3Rpb25IYW5kbGVyKX0jZT16Yyh0aGlzLG4sdm9pZCAwKTtnZXQgYmxvY2soKXtyZXR1cm4gdGhpcy4jZX1zZXQgYmxvY2soayl7dGhpcy4jZT1rfSN0PSh6Yyh0aGlzLGwpLHpjKHRoaXMsYywhMSkpO2dldCBpc1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlzU2VsZWN0ZWQoayl7dGhpcy4jdD1rfSNhPSh6Yyh0aGlzLHApLHpjKHRoaXMsbSx2b2lkIDApKTtnZXQgaGFuZGxlcnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGFuZGxlcnMoayl7dGhpcy4jYT1rfSNyPSh6Yyh0aGlzLHYpLHpjKHRoaXMsYix2b2lkIDApKTtnZXQgd3lzaXd5Z0NvbXBvbmVudCgpe3JldHVybiB0aGlzLiNyfXNldCB3eXNpd3lnQ29tcG9uZW50KGspe3RoaXMuI3I9a31ibG9ja0VsZW1lbnQ9KHpjKHRoaXMsZyksbnVsbCk7Y29udGVudEluaXRpYWxpemVkPSExO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtoYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITE7c3RhdGljIE5PTl9FRElUQUJMRV9UWVBFUz1bImltYWdlIiwiZGl2aWRlciIsInlvdXR1YmUiXTtpbmplY3RIYW5kbGVyU3R5bGVzKCl7aWYodGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQpcmV0dXJuO3RoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkPSEwO2xldCBrPSIiLEM9amEuZ2V0QWxsVHlwZXMoKTtmb3IobGV0IE4gb2YgQyl7bGV0IF89amEuZ2V0SGFuZGxlcihOKTtfJiYoays9Xy5nZXRTdHlsZXMoKSl9aWYoayl7bGV0IE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtOLnRleHRDb250ZW50PWssdGhpcy5zaGFkb3dSb290Py5hcHBlbmRDaGlsZChOKX19c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmJsb2NrIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrOmVtcHR5Om5vdCg6Zm9jdXMpOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrLXNwZWNpZmljIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVycyAqLwoKCiAgICAgIC8qIEZvcm1hdHRpbmcgc3R5bGVzICovCiAgICAgIC5ibG9jayA6aXMoYiwgc3Ryb25nKSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2sgOmlzKGksIGVtKSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuYmxvY2sgdSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jayBzIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgfQoKICAgICAgLmJsb2NrIGNvZGUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDE0IiwiI2ZmNmI2YiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5ibG9jayBhOmhvdmVyIHsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2sgY29udGFpbmVyIGFuZCBsYW5ndWFnZSBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlciAqLwoKICAgICAgLyogU2VsZWN0aW9uIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjMpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMykiKX07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCgogICAgICAvKiBTdHJpa2UgdGhyb3VnaCAqLwogICAgICAuYmxvY2sgOmlzKHMsIHN0cmlrZSkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKCiAgICAgIC8qIEJsb2NrIG1hcmdpbiBhZGp1c3RtZW50cyBiYXNlZCBvbiB0eXBlICovCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogU2VsZWN0ZWQgc3RhdGUgKi8KICAgICAgLmJsb2NrLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgIH0KCgoKCiAgICBgXTtzaG91bGRVcGRhdGUoayl7aWYoay5oYXMoImlzU2VsZWN0ZWQiKSYmdGhpcy5ibG9jayl7bGV0IEM9bnVsbCxfPWAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YDtyZXR1cm4gQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXyksQyYmKHRoaXMuaXNTZWxlY3RlZD9DLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik6Qy5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSwhMX1pZihrLmhhcygiYmxvY2siKSYmdGhpcy5ibG9jayl7bGV0IEM9ay5nZXQoImJsb2NrIik7aWYoQyYmQy5pZCYmQy50eXBlJiZDLmlkPT09dGhpcy5ibG9jay5pZCYmQy50eXBlPT09dGhpcy5ibG9jay50eXBlKXJldHVybiExfXJldHVybiF0aGlzLmJsb2NrRWxlbWVudHx8dGhpcy5ibG9jaz8udHlwZSE9PXRoaXMuYmxvY2tFbGVtZW50LmRhdGFzZXQuYmxvY2tUeXBlfWZpcnN0VXBkYXRlZCgpe3RoaXMuY29udGVudEluaXRpYWxpemVkPSEwLHRoaXMuaW5qZWN0SGFuZGxlclN0eWxlcygpO2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7aWYoayYmdGhpcy5ibG9jayYmKGsuaW5uZXJIVE1MPXRoaXMucmVuZGVyQmxvY2tDb250ZW50KCkpLHRoaXMuYmxvY2spe2xldCBOPWphLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihOKXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO18mJk4uc2V0dXAoXyx0aGlzLmJsb2NrLHRoaXMuaGFuZGxlcnMpO3JldHVybn19bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihDKXtDLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsdGhpcy5ibG9jay5pZCksQy5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2stdHlwZSIsdGhpcy5ibG9jay50eXBlKSxDLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixfPT57dGhpcy5oYW5kbGVycz8ub25JbnB1dD8uKF8pO2xldCB6PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oQyk7eiE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXopfSksQy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixfPT57bGV0IHo9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihDKTt6IT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249eiksdGhpcy5oYW5kbGVycz8ub25LZXlEb3duPy4oXyl9KSxDLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpfSksQy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQmx1cj8uKCl9KSxDLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvblN0YXJ0Py4oKX0pLEMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvbkVuZD8uKCl9KSxDLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF89PntsZXQgej10aGlzLmdldEN1cnNvclBvc2l0aW9uKEMpO3ohPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj16KSx0aGlzLmhhbmRsZXJzPy5vbk1vdXNlVXA/LihfKX0pLEMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c2V0VGltZW91dCgoKT0+e2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oQyk7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pfSwwKX0pO2xldCBOPXMoKCk9PntsZXQgXz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIV98fF8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCB6PV8udG9TdHJpbmcoKTtpZih6Lmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpO3JldHVybn1sZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFPKXJldHVybjtsZXQgUD10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LEI9W107UCYmQi5wdXNoKFApLHRoaXMuc2hhZG93Um9vdCYmQi5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IE09cnQuZ2V0U2VsZWN0aW9uSW5mbyguLi5CKTtpZighTSlyZXR1cm47bGV0IFM9cnQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTyxNLnN0YXJ0Q29udGFpbmVyKSxFPXJ0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE8sTS5lbmRDb250YWluZXIpO2lmKFN8fEUpe2lmKHohPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD16O2xldCBBPXJ0LmNyZWF0ZVJhbmdlRnJvbUluZm8oTSksRj1BLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6ei50cmltKCksYmxvY2tJZDp0aGlzLmJsb2NrLmlkLHJhbmdlOkEscmVjdDpGLGhhc1NlbGVjdGlvbjohMH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixOKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyPU4sQy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKCk9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKEMpO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKX0pLHRoaXMuYmxvY2suY29udGVudCYmKEMuaW5uZXJIVE1MPXRoaXMuYmxvY2suY29udGVudCl9dGhpcy5ibG9ja0VsZW1lbnQ9Q31yZW5kZXIoKXtyZXR1cm4gdGhpcy5ibG9jaz9XbGA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWJsb2NrLWNvbnRhaW5lciI+PC9kaXY+YDpXbGBgfXJlbmRlckJsb2NrQ29udGVudCgpe2lmKCF0aGlzLmJsb2NrKXJldHVybiIiO2xldCBrPWphLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrKXJldHVybiBrLnJlbmRlcih0aGlzLmJsb2NrLHRoaXMuaXNTZWxlY3RlZCk7bGV0IEM9dGhpcy5pc1NlbGVjdGVkPyIgc2VsZWN0ZWQiOiIiO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke3RoaXMuYmxvY2sudHlwZX0ke0N9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgPjwvZGl2PgogICAgYH1mb2N1cygpe2xldCBrPWphLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmZvY3VzKXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLF89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5mb2N1cyhOLF8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWApO04mJk4uZm9jdXMoKTtyZXR1cm59bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtDJiYoQy5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxDLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLEMuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09QyYmdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09QyYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e0MuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3Ioaz0iZW5kIil7bGV0IEM9amEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKEMmJkMuZm9jdXNXaXRoQ3Vyc29yKXtsZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLE89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gQy5mb2N1c1dpdGhDdXJzb3IoeixrLE8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe3RoaXMuZm9jdXMoKTtyZXR1cm59bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47Ti5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxOLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE4uZm9jdXMoKTtsZXQgXz1zKCgpPT57az09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk6az09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoKTp0eXBlb2Ygaz09Im51bWJlciImJnJ0LnNldEN1cnNvclBvc2l0aW9uKE4sayl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09Tj9fKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09TikmJl8oKX0pfWdldEN1cnNvclBvc2l0aW9uKGspe2xldCBDPWphLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihDJiZDLmdldEN1cnNvclBvc2l0aW9uKXtsZXQgQj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBDLmdldEN1cnNvclBvc2l0aW9uKGssQil9bGV0IF89dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCx6PVtdO18mJnoucHVzaChfKSx0aGlzLnNoYWRvd1Jvb3QmJnoucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4ueik7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TyxzaGFkb3dSb290c0NvdW50OnoubGVuZ3RofSksIU8pcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogTm8gc2VsZWN0aW9uIGZvdW5kIiksbnVsbDtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIGluZm86Iix7c3RhcnRDb250YWluZXI6Ty5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpPLnN0YXJ0T2Zmc2V0LGNvbGxhcHNlZDpPLmNvbGxhcHNlZCxzdGFydENvbnRhaW5lclRleHQ6Ty5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudH0pLCFrLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIG5vdCBpbiBlbGVtZW50IiksbnVsbDtsZXQgVD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO1Quc2VsZWN0Tm9kZUNvbnRlbnRzKGspLFQuc2V0RW5kKE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCk7bGV0IFA9VC50b1N0cmluZygpLmxlbmd0aDtyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBDYWxjdWxhdGVkIHBvc2l0aW9uOiIse3Bvc2l0aW9uOlAscHJlQ2FyZXRUZXh0OlQudG9TdHJpbmcoKSxlbGVtZW50VGV4dDprLnRleHRDb250ZW50LGVsZW1lbnRUZXh0TGVuZ3RoOmsudGV4dENvbnRlbnQ/Lmxlbmd0aH0pLFB9Z2V0Q29udGVudCgpe2xldCBrPWphLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmdldENvbnRlbnQpe2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksej17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldENvbnRlbnQoXyx6KX1sZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFDKXJldHVybiIiO2xldCBOPUMuaW5uZXJIVE1MfHwiIjtyZXR1cm4gY29uc29sZS5sb2coIkdldHRpbmcgY29udGVudCBmcm9tIGJsb2NrOiIsTiksTn1zZXRDb250ZW50KGspe2xldCBDPWphLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihDJiZDLnNldENvbnRlbnQpe2xldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBDLnNldENvbnRlbnQoeixrLE8pfWxldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU4pcmV0dXJuO2xldCBfPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OO04uaW5uZXJIVE1MPWssXyYmTi5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoKXtsZXQgaz1qYS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoayYmay5zZXRDdXJzb3JUb1N0YXJ0KXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLF89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5zZXRDdXJzb3JUb1N0YXJ0KE4sXyl9bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtDJiZzaS5zZXRDdXJzb3JUb1N0YXJ0KEMpfXNldEN1cnNvclRvRW5kKCl7bGV0IGs9amEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKGsmJmsuc2V0Q3Vyc29yVG9FbmQpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksXz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLnNldEN1cnNvclRvRW5kKE4sXyl9bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtDJiZzaS5zZXRDdXJzb3JUb0VuZChDKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7aWYoIXRoaXMuYmxvY2t8fHRoaXMuYmxvY2sudHlwZT09PSJkaXZpZGVyIilyZXR1cm5bXTtsZXQgaz1lcy5nZXRTbGFzaE1lbnVJdGVtcygpLEM9dGhpcy5ibG9jay50eXBlLE49dGhpcy53eXNpd3lnQ29tcG9uZW50LF89dGhpcy5ibG9jay5pZCxPPVt7bmFtZToiQ2hhbmdlIFR5cGUiLGljb25OYW1lOiJ0eXBlIixzdWJtZW51OmsuZmlsdGVyKFQ9PlQudHlwZSE9PUMmJlQudHlwZSE9PSJkaXZpZGVyIikubWFwKFQ9Pih7bmFtZTpULmxhYmVsLGljb25OYW1lOlQuaWNvbi5yZXBsYWNlKCJsdWNpZGU6IiwiIiksYWN0aW9uOnMoYXN5bmMoKT0+e2lmKE4mJk4uYmxvY2tPcGVyYXRpb25zKXtsZXQgUD1OLmJsb2Nrcy5maW5kKEI9PkIuaWQ9PT1fKTtQJiYoUC50eXBlPVQudHlwZSxQLmNvbnRlbnQ9UC5jb250ZW50fHwiIixULnR5cGU9PT0iY29kZSI/UC5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifTpULnR5cGU9PT0ibGlzdCI/UC5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9OlQudHlwZT09PSJpbWFnZSI/KFAuY29udGVudD0iIixQLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOlQudHlwZT09PSJ5b3V0dWJlIj8oUC5jb250ZW50PSIiLFAubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6VC50eXBlPT09Im1hcmtkb3duIj9QLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06VC50eXBlPT09Imh0bWwiP1AubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpULnR5cGU9PT0iYXR0YWNobWVudCImJihQLmNvbnRlbnQ9IiIsUC5tZXRhZGF0YT17ZmlsZXM6W119KSxOLnVwZGF0ZUJsb2NrRWxlbWVudChfKSxOLnVwZGF0ZVZhbHVlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhfKX0pKX19LCJhY3Rpb24iKX0pKX1dO3JldHVyblsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpfHxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246cyhhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImN1dCIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsc2hvcnRjdXQ6IkNtZCtDIixhY3Rpb246cyhhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX0sImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOnMoYXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJwYXN0ZSIpfSwiYWN0aW9uIil9KSxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgQmxvY2siLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjpzKGFzeW5jKCk9PntOJiZOLmJsb2NrT3BlcmF0aW9ucyYmTi5ibG9ja09wZXJhdGlvbnMuZGVsZXRlQmxvY2soXyl9LCJhY3Rpb24iKX0pLE99Z2V0U3BsaXRDb250ZW50KCl7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3RhcnRpbmcuLi4iKTtsZXQgaz1qYS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ2hlY2tpbmcgZm9yIGhhbmRsZXIiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGhhc0hhbmRsZXI6ISFrLGhhc1NwbGl0TWV0aG9kOiEhKGsmJmsuZ2V0U3BsaXRDb250ZW50KX0pLGsmJmsuZ2V0U3BsaXRDb250ZW50KXtsZXQgVz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZvdW5kIGNvbnRhaW5lciIse2NvbnRhaW5lcjohIVcsY29udGFpbmVySFRNTDpXPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLDEwMCl9KTtsZXQgaj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldFNwbGl0Q29udGVudChXLGopfWxldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIUMpcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIGVkaXRhYmxlIGVsZW1lbnQgZm91bmQiKSxudWxsO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEVsZW1lbnQgaW5mbzoiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGlubmVySFRNTDpDLmlubmVySFRNTCx0ZXh0Q29udGVudDpDLnRleHRDb250ZW50LHRleHRMZW5ndGg6Qy50ZXh0Q29udGVudD8ubGVuZ3RofSk7bGV0IF89dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCx6PVtdO18mJnoucHVzaChfKSx0aGlzLnNoYWRvd1Jvb3QmJnoucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4ueik7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOk8sc2hhZG93Um9vdHNDb3VudDp6Lmxlbmd0aH0pLCFPKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBzZWxlY3Rpb24sIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IFc9Qy50ZXh0Q29udGVudHx8IiIsaj1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLFcubGVuZ3RoKTtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3BsaXR0aW5nIHdpdGggbGFzdCBrbm93biBwb3NpdGlvbjoiLHtwb3M6aixmdWxsVGV4dExlbmd0aDpXLmxlbmd0aCxiZWZvcmU6Vy5zdWJzdHJpbmcoMCxqKSxhZnRlcjpXLnN1YnN0cmluZyhqKX0pLHtiZWZvcmU6Vy5zdWJzdHJpbmcoMCxqKSxhZnRlcjpXLnN1YnN0cmluZyhqKX19cmV0dXJuIG51bGx9aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOiIse3N0YXJ0Q29udGFpbmVyOk8uc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ty5zdGFydE9mZnNldCxzdGFydENvbnRhaW5lckluRWxlbWVudDpDLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpfSksIXJ0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKEMsTy5zdGFydENvbnRhaW5lcikpe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBub3QgaW4gdGhpcyBibG9jaywgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgVz1DLnRleHRDb250ZW50fHwiIixqPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sVy5sZW5ndGgpO3JldHVybntiZWZvcmU6Vy5zdWJzdHJpbmcoMCxqKSxhZnRlcjpXLnN1YnN0cmluZyhqKX19cmV0dXJuIG51bGx9bGV0IFQ9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihDKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgcG9zaXRpb24gZm9yIEhUTUwgc3BsaXQ6IixUKSxUPT09bnVsbHx8VD09PTApcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQiKSx7YmVmb3JlOiIiLGFmdGVyOkMuaW5uZXJIVE1MfTtsZXQgUD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLEI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtQLnNldFN0YXJ0KEMsMCksUC5zZXRFbmQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KSxCLnNldFN0YXJ0KE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCksQi5zZXRFbmQoQyxDLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgTT1QLmNsb25lQ29udGVudHMoKSxTPUIuY2xvbmVDb250ZW50cygpLEU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7RS5hcHBlbmRDaGlsZChNKTtsZXQgQT1FLmlubmVySFRNTDtFLmlubmVySFRNTD0iIixFLmFwcGVuZENoaWxkKFMpO2xldCBGPUUuaW5uZXJIVE1MO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGaW5hbCBzcGxpdCByZXN1bHQ6Iix7Y3Vyc29yUG9zOlQsYmVmb3JlSHRtbDpBLGJlZm9yZUxlbmd0aDpBLmxlbmd0aCxiZWZvcmVIdG1sUHJldmlldzpBLnN1YnN0cmluZygwLDEwMCkrKEEubGVuZ3RoPjEwMD8iLi4uIjoiIiksYWZ0ZXJIdG1sOkYsYWZ0ZXJMZW5ndGg6Ri5sZW5ndGgsYWZ0ZXJIdG1sUHJldmlldzpGLnN1YnN0cmluZygwLDEwMCkrKEYubGVuZ3RoPjEwMD8iLi4uIjoiIil9KSx7YmVmb3JlOkEsYWZ0ZXI6Rn19c3RhdGlje3pjKHIsdCl9fTtyZXR1cm4geT1yfSkoKX0pO3ZhciBaWGU9ZigoKT0+e05zZSgpO0lvKCk7Y20oKTt6YWUoKTtkaWEoKTtlS2UoKTtBZigpO1hZZSgpO1UyKCk7aGMoKTt0S2UoKTtZWGUoKTtLMmEoKTtaMmEoKTtYMmEoKTtLWGUoKTtRMmEoKTtaWWUoKTtRWWUoKTtlbGEoKX0pO3ZhciB6NCxlbyxqVyxOc2U9ZigoKT0+e1NyKCk7Y2lhKCk7Y2MoKTtsZSgpO1pYZSgpO1FlKCk7ejQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGVvPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxqVz0oKCk9PntsZXQgYT1baWUoImRlZXMtaW5wdXQtd3lzaXd5ZyIpXSxlLHQ9W10scixpPU10LG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdO3ZhciBCPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzSW5wdXRXeXNpd3lnIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bSygpXSx4PVtLKCldLHk9W0soKV0sTj1bSygpXSxPPVtLKCldLHo0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InZhbHVlImluIFMsImhhcyIpLGdldDpzKFM9PlMudmFsdWUsImdldCIpLHNldDpzKChTLEUpPT57Uy52YWx1ZT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG4sbCksejQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+Im91dHB1dEZvcm1hdCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLm91dHB1dEZvcm1hdCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLm91dHB1dEZvcm1hdD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGMscCksejQodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9ja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImJsb2NrcyJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmJsb2NrcywiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmJsb2Nrcz1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sdiksejQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iZHJhZ2dlZEJsb2NrSWQiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5kcmFnZ2VkQmxvY2tJZCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmRyYWdnZWRCbG9ja0lkPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSx6NCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iZHJhZ092ZXJCbG9ja0lkImluIFMsImhhcyIpLGdldDpzKFM9PlMuZHJhZ092ZXJCbG9ja0lkLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuZHJhZ092ZXJCbG9ja0lkPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sayxDKSx6NCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImRyYWdPdmVyUG9zaXRpb24iaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5kcmFnT3ZlclBvc2l0aW9uLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuZHJhZ092ZXJQb3NpdGlvbj1FfSwic2V0Iil9LG1ldGFkYXRhOk19LF8seiksejQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InNlbGVjdGVkVGV4dCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnNlbGVjdGVkVGV4dCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnNlbGVjdGVkVGV4dD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LFQsUCksejQobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSxCPXI9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1saWE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCIsIldvcmtzcGFjZSJdOyNlPWVvKHRoaXMsbiwiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKE0pe3RoaXMuI2U9TX0jdD0oZW8odGhpcyxsKSxlbyh0aGlzLGMsImh0bWwiKSk7Z2V0IG91dHB1dEZvcm1hdCgpe3JldHVybiB0aGlzLiN0fXNldCBvdXRwdXRGb3JtYXQoTSl7dGhpcy4jdD1NfSNhPShlbyh0aGlzLHApLGVvKHRoaXMsbSxbe2lkOmVzLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiIn1dKSk7Z2V0IGJsb2Nrcygpe3JldHVybiB0aGlzLiNhfXNldCBibG9ja3MoTSl7dGhpcy4jYT1NfXNlbGVjdGVkQmxvY2tJZD0oZW8odGhpcyx2KSxudWxsKTtzbGFzaE1lbnU9TWFlLmdldEluc3RhbmNlKCk7I3I9ZW8odGhpcyxiLG51bGwpO2dldCBkcmFnZ2VkQmxvY2tJZCgpe3JldHVybiB0aGlzLiNyfXNldCBkcmFnZ2VkQmxvY2tJZChNKXt0aGlzLiNyPU19I3M9KGVvKHRoaXMsZyksZW8odGhpcyxrLG51bGwpKTtnZXQgZHJhZ092ZXJCbG9ja0lkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGRyYWdPdmVyQmxvY2tJZChNKXt0aGlzLiNzPU19I2k9KGVvKHRoaXMsQyksZW8odGhpcyxfLG51bGwpKTtnZXQgZHJhZ092ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBkcmFnT3ZlclBvc2l0aW9uKE0pe3RoaXMuI2k9TX1mb3JtYXR0aW5nTWVudT0oZW8odGhpcyx6KSxTYWUuZ2V0SW5zdGFuY2UoKSk7I289ZW8odGhpcyxULCIiKTtnZXQgc2VsZWN0ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI299c2V0IHNlbGVjdGVkVGV4dChNKXt0aGlzLiNvPU19ZWRpdG9yQ29udGVudFJlZj1lbyh0aGlzLFApO2lzQ29tcG9zaW5nPSExO2Jsb2NrT3BlcmF0aW9ucztpbnB1dEhhbmRsZXI7a2V5Ym9hcmRIYW5kbGVyO2RyYWdEcm9wSGFuZGxlcjtoaXN0b3J5O3N0YXRpYyBzdHlsZXM9W1BlLC4uLk10LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLEpZZV07Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYmxvY2tPcGVyYXRpb25zPW5ldyBJVSh0aGlzKSx0aGlzLmlucHV0SGFuZGxlcj1uZXcgRlcodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IEJXKHRoaXMpLHRoaXMuZHJhZ0Ryb3BIYW5kbGVyPW5ldyBIVyh0aGlzKSx0aGlzLmhpc3Rvcnk9bmV3IHFXfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBNPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP0luLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOkluLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtNLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9TSl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLE09PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soTSkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsKE09PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmTS5kZXRhaWwuaGFzU2VsZWN0aW9uJiZNLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9TS5kZXRhaWwudGV4dCxNLmRldGFpbC5yZWN0KSl7bGV0IFM9e3g6TS5kZXRhaWwucmVjdC5sZWZ0K00uZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LE0uZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KFMsYXN5bmMgRT0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChFKSl9fSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsTT0+e2xldCBTPXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKFMmJlMuY29udGFpbnMoTS50YXJnZXQpKXJldHVybjtsZXQgRT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7RSYmRS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixNPT57bGV0IFM9TS50YXJnZXQ7IXRoaXMuY29udGFpbnMoUykmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKFMpfHwoKE0ubWV0YUtleXx8TS5jdHJsS2V5KSYmIU0uc2hpZnRLZXkmJk0ua2V5PT09InoiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihNLm1ldGFLZXl8fE0uY3RybEtleSkmJk0uc2hpZnRLZXkmJk0ua2V5PT09InoiJiYoTS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKE09PntsZXQgUz10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChNKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoUyl9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KE0pe2xldCBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKFMuY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIixTLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsTS5pZCksTS50eXBlIT09ImRpdmlkZXIiKXtsZXQgQT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtBLmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLEEuZHJhZ2dhYmxlPSEwLEEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixGPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoRixNKSksUy5hcHBlbmRDaGlsZChBKX1sZXQgRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gRS5ibG9jaz1NLEUuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PU0uaWQsRS53eXNpd3lnQ29tcG9uZW50PXRoaXMsRS5oYW5kbGVycz17b25JbnB1dDpzKEE9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoQSxNKSwib25JbnB1dCIpLG9uS2V5RG93bjpzKEE9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bihBLE0pLCJvbktleURvd24iKSxvbkZvY3VzOnMoKCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhNKSwib25Gb2N1cyIpLG9uQmx1cjpzKCgpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihNKSwib25CbHVyIiksb25Db21wb3NpdGlvblN0YXJ0OnMoKCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsIm9uQ29tcG9zaXRpb25TdGFydCIpLG9uQ29tcG9zaXRpb25FbmQ6cygoKT0+dGhpcy5pc0NvbXBvc2luZz0hMSwib25Db21wb3NpdGlvbkVuZCIpLG9uTW91c2VVcDpzKEE9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihBKSwib25Nb3VzZVVwIiksb25SZXF1ZXN0VXBkYXRlOnMoKCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KE0uaWQpLCJvblJlcXVlc3RVcGRhdGUiKX0sUy5hcHBlbmRDaGlsZChFKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixBPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcihBLE0pKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLEE9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoQSxNKSksUy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoTSkpLFN9dXBkYXRlQmxvY2tFbGVtZW50KE0pe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoRj0+Ri5pZD09PU0pO2lmKCFTKXJldHVybjtsZXQgRT10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7TX0iXWApO2lmKCFFKXJldHVybjtsZXQgQT10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChTKTtFLnJlcGxhY2VXaXRoKEEpfXJlbmRlcigpe3JldHVybiBXbGAKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmluZm9UZXh0PSIke3RoaXMuaW5mb1RleHR9IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKE0pe3N3aXRjaChNLmtleSl7Y2FzZSJBcnJvd0Rvd24iOk0ucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6TS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOk0ucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOk0ucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoTT0hMSl7aWYoTSYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoRT0+RS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZihTKXtsZXQgQT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihBKXtsZXQgRj1BLmdldENvbnRlbnQoKTtpZihGLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFc9Ri5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7QS5zZXRDb250ZW50KFcpLFMuY29udGVudD1XLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0EuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoTSl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCBTPXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPU0uaWQsUyE9PU0uaWQpe2lmKFMpe2xldCBXPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7U30iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtXJiYoVy5pc1NlbGVjdGVkPSExKX1sZXQgQT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke00uaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7QSYmKEEuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKE0pe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgRT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke00uaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoRSYmRS5nZXRDb250ZW50KXtsZXQgQT1FLmdldENvbnRlbnQoKTtNLmNvbnRlbnQhPT1BJiYoTS5jb250ZW50PUEpfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soTSl7bGV0IFM9TS50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksUy5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBFPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEUuaWQsRS50eXBlPT09ImRpdmlkZXIifHxFLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKE09InBhcmFncmFwaCIsUz0iIixFKXtyZXR1cm57aWQ6ZXMuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTpNLGNvbnRlbnQ6UywuLi5FJiZ7bWV0YWRhdGE6RX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoTSxTLEU9ITApe2xldCBBPXRoaXMuYmxvY2tzLmZpbmRJbmRleChXPT5XLmlkPT09TS5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsQSsxKSxTLC4uLnRoaXMuYmxvY2tzLnNsaWNlKEErMSldO2xldCBGPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtNLmlkfSJdYCk7aWYoRil7bGV0IFc9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoUyk7Ri5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixXKX10aGlzLnVwZGF0ZVZhbHVlKCksRSYmUy50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoVz0+c2V0VGltZW91dChXLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKFMuaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKE0pe2xldCBTPXRoaXMuYmxvY2tzLmZpbmQoRj0+Ri5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZighUyl7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgQT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihBKXtsZXQgRj1BLmdldENvbnRlbnQoKTtpZihGLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFc9Ri5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7QS5zZXRDb250ZW50KFcpLFMuY29udGVudD1XfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxNPT09ImNvZGUiJiYoUy5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksUy50eXBlPU0sUy5jb250ZW50PVMuY29udGVudHx8IiIsTT09PSJkaXZpZGVyIil7Uy5jb250ZW50PSIgIjtsZXQgRj10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKFMsRil9ZWxzZSBNPT09Imxpc3QiPyhTLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sUy5jb250ZW50PSIiKTpNPT09ImltYWdlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6TT09PSJ5b3V0dWJlIj8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6TT09PSJtYXJrZG93biI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Ok09PT0iaHRtbCI/Uy5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9Ok09PT0iYXR0YWNobWVudCI/KFMuY29udGVudD0iIixTLm1ldGFkYXRhPXtmaWxlczpbXX0pOlMuY29udGVudD1TLmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KFMuaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZShGPT5zZXRUaW1lb3V0KEYsMCkpLE09PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgVz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke1MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7VyYmVy5mb2N1c0xpc3RJdGVtKCl9KSk6TSE9PSJkaXZpZGVyIiYmTSE9PSJpbWFnZSImJk0hPT0ieW91dHViZSImJk0hPT0ibWFya2Rvd24iJiZNIT09Imh0bWwiJiZNIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKTooTT09PSJpbWFnZSJ8fE09PT0ieW91dHViZSJ8fE09PT0ibWFya2Rvd24ifHxNPT09Imh0bWwifHxNPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9SW4uZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT1Jbi5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKE0pe3RoaXMudmFsdWU9TSx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz1Jbi5wYXJzZUh0bWxUb0Jsb2NrcyhNKTp0aGlzLmJsb2Nrcz1Jbi5wYXJzZU1hcmtkb3duVG9CbG9ja3MoTSksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6ZXMuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3MoTSl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShNKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIEluLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4gSW4uZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoTSl7TS5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1NLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3MoTS5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgUz10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO1MmJlMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKFM9PntTLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoTSxTKXtpZihNLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1TLmlkKXJldHVybjtsZXQgRT10aGlzLmJsb2Nrcy5maW5kSW5kZXgoaj0+ai5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLEE9dGhpcy5ibG9ja3MuZmluZEluZGV4KGo9PmouaWQ9PT1TLmlkKTtpZihFPT09LTF8fEE9PT0tMSlyZXR1cm47bGV0W0ZdPXRoaXMuYmxvY2tzLnNwbGljZShFLDEpLFc9QTt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP1c9RTxBP0E6QSsxOlc9RTxBP0EtMTpBLHRoaXMuYmxvY2tzLnNwbGljZShXLDAsRiksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgaj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Ri5pZH0iXSAuYmxvY2tgKTtqJiZGLnR5cGUhPT0iZGl2aWRlciImJmouZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKE0pe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBNPVtdO3RoaXMuc2hhZG93Um9vdCYmTS5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKEE9PntsZXQgRj1BLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0Y/LnNoYWRvd1Jvb3QmJk0ucHVzaChGLnNoYWRvd1Jvb3QpfSk7bGV0IEU9ZmMuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uTSk7RSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkUueCx5OkUueX0sYXN5bmMgQT0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChBKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoTSl7bGV0IFM9W107dGhpcy5zaGFkb3dSb290JiZTLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2goaGU9PntsZXQgUj1oZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtSPy5zaGFkb3dSb290JiZTLnB1c2goUi5zaGFkb3dSb290KX0pO2xldCBBPXJ0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoIUEpcmV0dXJuO2xldCBGLFcsaj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IGhlPTA7aGU8ai5sZW5ndGg7aGUrKyl7bGV0IFI9altoZV0sVT1SLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFU/LnNoYWRvd1Jvb3Qpe2xldCBtZT1VLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYobWUmJihtZS5jb250YWlucyhBLnN0YXJ0Q29udGFpbmVyKXx8bWUuY29udGFpbnMoQS5lbmRDb250YWluZXIpKSl7bGV0IEk9Ui5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtGPXRoaXMuYmxvY2tzLmZpbmQocT0+cS5pZD09PUkpLFc9VTticmVha319fWlmKCFGfHwhVylyZXR1cm47bGV0IEc9cnQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhBKTtpZihNPT09ImxpbmsiKXtsZXQgaGU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFoZSl7Vy5mb2N1cygpO3JldHVybn1mYy5hcHBseUZvcm1hdChNLGhlLEcsUyl9ZWxzZSBmYy5hcHBseUZvcm1hdChNLHZvaWQgMCxHLFMpO2F3YWl0IG5ldyBQcm9taXNlKGhlPT5zZXRUaW1lb3V0KGhlLDEwKSksRi5jb250ZW50PVcuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxXLmZvY3VzKCksTT09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKE09PntsZXQgUz1udWxsO01hLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50OldsYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0U9PntpZihFLmtleT09PSJFbnRlciIpe2xldCBBPUUudGFyZ2V0O1M9QS52YWx1ZTtsZXQgRj1BLmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZihGKXtsZXQgVz1GLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO1cmJlcuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtFPT57Uz1FLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246cyhhc3luYyBFPT57RS5kZXN0cm95KCksTShudWxsKX0sImFjdGlvbiIpfSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjpzKGFzeW5jIEU9PntFLmRlc3Ryb3koKSxNKFMpfSwiYWN0aW9uIil9XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgRT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7RSYmRS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBNPXRoaXMuaGlzdG9yeS51bmRvKCk7TSYmdGhpcy5yZXN0b3JlU3RhdGUoTSl9cmVkbygpe2xldCBNPXRoaXMuaGlzdG9yeS5yZWRvKCk7TSYmdGhpcy5yZXN0b3JlU3RhdGUoTSl9cmVzdG9yZVN0YXRlKE0pe3RoaXMuYmxvY2tzPU0uYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPU0uc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLE0uY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7TS5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0UmJkUuZm9jdXNXaXRoQ3Vyc29yKE0uY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOk0uc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhNLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShNPSEwKXtsZXQgUztpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IEE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihBJiZ0eXBlb2YgQS5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0IEY9QS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihGKXtsZXQgVz1BLmdldEN1cnNvclBvc2l0aW9uKEYpO1chPT1udWxsJiYoUz17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6V30pfX19TT90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFMpOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCxTKX1zdGF0aWN7ZW8ocix0KX19O3JldHVybiBCPXJ9KSgpfSk7dmFyIHRsYSxhbGE9ZigoKT0+e2xlKCk7TmEoKTtSc2UoKTtZcygpO3RsYT1zKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1hgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJpY2ggVGV4dCBFZGl0b3IifSAuc3VidGl0bGU9JHsiQSBmdWxsLWZlYXR1cmVkIHJpY2ggdGV4dCBlZGl0b3Igd2l0aCBmb3JtYXR0aW5nIHRvb2xiYXIifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBcnRpY2xlIENvbnRlbnQifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDE+V2VsY29tZSB0byB0aGUgUmljaCBUZXh0IEVkaXRvciE8L2gxPjxwPlRoaXMgaXMgYSBmZWF0dXJlLXJpY2ggZWRpdG9yIGJ1aWx0IHdpdGggVGlwVGFwLiBZb3UgY2FuOjwvcD48dWw+PGxpPjxzdHJvbmc+Rm9ybWF0IHRleHQ8L3N0cm9uZz4gd2l0aCA8ZW0+dmFyaW91czwvZW0+IDx1PnN0eWxlczwvdT48L2xpPjxsaT5DcmVhdGUgZGlmZmVyZW50IGhlYWRpbmcgbGV2ZWxzPC9saT48bGk+QWRkIDxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS5jb20iPmxpbmtzPC9hPiB0byBleHRlcm5hbCByZXNvdXJjZXM8L2xpPjxsaT5Xcml0ZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4gb3IgY29kZSBibG9ja3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+PHA+VXNlIHRoZSB0b29sYmFyIGFib3ZlIHRvIGV4cGxvcmUgYWxsIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnMgYXZhaWxhYmxlITwvcD48L2Jsb2NrcXVvdGU+PHA+U3RhcnQgdHlwaW5nIHRvIHNlZSB0aGUgbWFnaWMgaGFwcGVuLi4uPC9wPid9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXNlIHRoZSB0b29sYmFyIHRvIGZvcm1hdCB5b3VyIGNvbnRlbnQgd2l0aCBoZWFkaW5ncywgbGlzdHMsIGxpbmtzLCBhbmQgbW9yZSJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRoIFBsYWNlaG9sZGVyIn0gLnN1YnRpdGxlPSR7IkVtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJCbG9nIFBvc3QifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gRGlmZmVyZW50IEhlaWdodHMifSAuc3VidGl0bGU9JHsiRWRpdG9ycyB3aXRoIGRpZmZlcmVudCBtaW5pbXVtIGhlaWdodHMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTaG9ydCBOb3RlIn0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHsxNTB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJRdWljayBub3RlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRXh0ZW5kZWQgQ29udGVudCJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MzAwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIENvZGUgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiRWRpdG9yIHByZS1maWxsZWQgd2l0aCBjb2RlIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiVGVjaG5pY2FsIERvY3VtZW50YXRpb24ifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+SW5zdGFsbGF0aW9uIEd1aWRlPC9oMj48cD5UbyBpbnN0YWxsIHRoZSBwYWNrYWdlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD48cHJlPjxjb2RlPm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT48cD5UaGVuIGltcG9ydCB0aGUgY29tcG9uZW50IGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlOjwvcD48cHJlPjxjb2RlPmltcG9ydCB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIjs8L2NvZGU+PC9wcmU+PHA+WW91IGNhbiBub3cgdXNlIHRoZSA8Y29kZT4mbHQ7ZGVlcy1pbnB1dC1yaWNodGV4dCZndDs8L2NvZGU+IGVsZW1lbnQgaW4geW91ciB0ZW1wbGF0ZXMuPC9wPid9CiAgICAgICAgICAubWluSGVpZ2h0PSR7MjUwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUHVibGlzaGVkIEFydGljbGUgKFJlYWQgT25seSkifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+IlRoZSBmdXR1cmUgb2Ygd2ViIGRldmVsb3BtZW50IGxpZXMgaW4gcmV1c2FibGUsIGVuY2Fwc3VsYXRlZCBjb21wb25lbnRzLiI8L3A+PC9ibG9ja3F1b3RlPid9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZWRpdG9yIgogICAgICAgICAgLmxhYmVsPSR7IlRyeSBpdCB5b3Vyc2VsZiJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgIEBjaGFuZ2U9JHthPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3Iik7ZSYmKGUudGV4dENvbnRlbnQ9YS5kZXRhaWwudmFsdWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ib3V0cHV0LXByZXZpZXciPgogICAgICAgICAgPGVtPkhUTUwgb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgcmxhLHNsYT1mKCgpPT57bGUoKTtTcigpO1FlKCk7cmxhPVtQZSwuLi5NdC5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZvY3VzZWQ6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHAgewogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHVsLAogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIG9sIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtOwogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBsaSB7CiAgICAgICAgbWFyZ2luOiAwLjI1ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTsKICAgICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0ZpcmEgQ29kZScsICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsICdSb2JvdG8gTW9ubycsIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMWVtOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNDEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDY5LjglKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLndvcmQtY291bnQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIGRlZXMtdGlsZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b29sYmFyLWJ1dHRvbiwKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF19KTt2YXIgaWxhLG9sYT1mKCgpPT57bGUoKTtpbGE9cyhhPT53YAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgJHthLmxhYmVsP3dgPGxhYmVsIGNsYXNzPSJsYWJlbCI+JHthLmxhYmVsfTwvbGFiZWw+YDoiIn0KICAgICAgICAgIDxkZWVzLXRpbGUgY2xhc3M9IiR7YS5lZGl0b3I/LmlzRm9jdXNlZD8iZm9jdXNlZCI6IiJ9IiBzdHlsZT0iLS1taW4taGVpZ2h0OiAke2EubWluSGVpZ2h0fXB4Ij4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJlZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICAgICAgJHthLnJlbmRlclRvb2xiYXIoKX0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0ICR7YS5zaG93TGlua0lucHV0PyJzaG93IjoiIn0iPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InVybCIgcGxhY2Vob2xkZXI9IkVudGVyIFVSTC4uLiIgQGtleWRvd249JHthLmhhbmRsZUxpbmtJbnB1dEtleWRvd259IC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmltYXJ5IiBAY2xpY2s9JHthLnNhdmVMaW5rfT5TYXZlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7YS5yZW1vdmVMaW5rfT5SZW1vdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHthLmhpZGVMaW5rSW5wdXR9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+PC9kaXY+CiAgICAgICAgICAgICR7YS5zaG93V29yZENvdW50P3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7YS53b3JkQ291bnR9IHdvcmQke2Eud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAgICR7YS5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgIDwvZGl2PgogICAgICBgLCJyZW5kZXJSaWNodGV4dCIpfSk7dmFyIG81LG9uLE9zZSxSc2U9ZigoKT0+e1NyKCk7YWxhKCk7c2xhKCk7b2xhKCk7dmEoKTtsZSgpO1NjKCk7UXIoKTtvNT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sb249ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LE9zZT0oKCk9PntsZXQgYT1baWUoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sZSx0PVtdLHIsaT1NdCxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0UmljaHRleHQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOk51bWJlcn0pXSx5PVtLKCldLE49W0soKV0sbzUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4idmFsdWUiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC52YWx1ZSwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLnZhbHVlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sbixsKSxvNSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJwbGFjZWhvbGRlciJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AucGxhY2Vob2xkZXI9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxjLHApLG81KHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ic2hvd1dvcmRDb3VudCJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnNob3dXb3JkQ291bnQsImdldCIpLHNldDpzKChQLEIpPT57UC5zaG93V29yZENvdW50PUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sbSx2KSxvNSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ibWluSGVpZ2h0ImluIFAsImhhcyIpLGdldDpzKFA9PlAubWluSGVpZ2h0LCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AubWluSGVpZ2h0PUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSxvNSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InNob3dMaW5rSW5wdXQiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5zaG93TGlua0lucHV0LCJnZXQiKSxzZXQ6cygoUCxCKT0+e1Auc2hvd0xpbmtJbnB1dD1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LGssQyksbzUodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+IndvcmRDb3VudCJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLndvcmRDb3VudCwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLndvcmRDb3VudD1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LF8seiksbzUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6VH0sbnVsbCx0KSxPPXI9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz10bGE7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPW9uKHRoaXMsbiwiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFQpe3RoaXMuI2U9VH0jdD0ob24odGhpcyxsKSxvbih0aGlzLGMsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoVCl7dGhpcy4jdD1UfSNhPShvbih0aGlzLHApLG9uKHRoaXMsbSwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dXb3JkQ291bnQoVCl7dGhpcy4jYT1UfSNyPShvbih0aGlzLHYpLG9uKHRoaXMsYiwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1pbkhlaWdodChUKXt0aGlzLiNyPVR9I3M9KG9uKHRoaXMsZyksb24odGhpcyxrLCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd0xpbmtJbnB1dChUKXt0aGlzLiNzPVR9I2k9KG9uKHRoaXMsQyksb24odGhpcyxfLDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHdvcmRDb3VudChUKXt0aGlzLiNpPVR9ZWRpdG9yRWxlbWVudD1vbih0aGlzLHopO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9cmxhO3JlbmRlcigpe3JldHVybiBpbGEodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCBUPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gd2AKICAgICAgJHtULm1hcChQPT5QLmlzRGl2aWRlcj93YDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtQLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke1AuYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke1AudGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke1AuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjpzKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQm9sZCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTpzKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYm9sZCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiaXRhbGljIixpY29uOiJsdWNpZGU6aXRhbGljIix0aXRsZToiSXRhbGljIChDdHJsK0kpIixhY3Rpb246cygoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUl0YWxpYygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTpzKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaXRhbGljIiksImlzQWN0aXZlIil9LHtuYW1lOiJ1bmRlcmxpbmUiLGljb246Imx1Y2lkZTp1bmRlcmxpbmUiLHRpdGxlOiJVbmRlcmxpbmUgKEN0cmwrVSkiLGFjdGlvbjpzKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOnMoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKSwiaXNBY3RpdmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246cygoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTpzKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgic3RyaWtlIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMSIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToiaDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSIsdGl0bGU6IkhlYWRpbmcgMSIsYWN0aW9uOnMoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoxfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOnMoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6MX0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiIsdGl0bGU6IkhlYWRpbmcgMiIsYWN0aW9uOnMoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOnMoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOnMoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDozfSkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOnMoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6M30pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjIiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImJ1bGxldExpc3QiLGljb246Imx1Y2lkZTpsaXN0Iix0aXRsZToiQnVsbGV0IExpc3QiLGFjdGlvbjpzKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQnVsbGV0TGlzdCgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTpzKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYnVsbGV0TGlzdCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToib3JkZXJlZExpc3QiLGljb246Imx1Y2lkZTpsaXN0T3JkZXJlZCIsdGl0bGU6Ik51bWJlcmVkIExpc3QiLGFjdGlvbjpzKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6cygoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0IiksImlzQWN0aXZlIil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOnMoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCbG9ja3F1b3RlKCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOnMoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJibG9ja3F1b3RlIiksImlzQWN0aXZlIil9LHtuYW1lOiJjb2RlIixpY29uOiJsdWNpZGU6Y29kZSIsdGl0bGU6IkNvZGUiLGFjdGlvbjpzKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQ29kZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTpzKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiY29kZUJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUiLHRpdGxlOiJDb2RlIEJsb2NrIixhY3Rpb246cygoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTpzKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIiksImlzQWN0aXZlIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOnMoKCk9PnRoaXMudG9nZ2xlTGluaygpLCJhY3Rpb24iKSxpc0FjdGl2ZTpzKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25MZWZ0IixpY29uOiJsdWNpZGU6YWxpZ25MZWZ0Iix0aXRsZToiQWxpZ24gTGVmdCIsYWN0aW9uOnMoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oImxlZnQiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6cygoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoibGVmdCJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduQ2VudGVyIixpY29uOiJsdWNpZGU6YWxpZ25DZW50ZXIiLHRpdGxlOiJBbGlnbiBDZW50ZXIiLGFjdGlvbjpzKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6cygoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOnMoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oInJpZ2h0IikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOnMoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246InJpZ2h0In0pLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjQiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6InVuZG8iLGljb246Imx1Y2lkZTp1bmRvIix0aXRsZToiVW5kbyAoQ3RybCtaKSIsYWN0aW9uOnMoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bmRvKCkucnVuKCksImFjdGlvbiIpfSx7bmFtZToicmVkbyIsaWNvbjoibHVjaWRlOnJlZG8iLHRpdGxlOiJSZWRvIChDdHJsK1kpIixhY3Rpb246cygoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJlZG8oKS5ydW4oKSwiYWN0aW9uIil9XTpbXX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMudGlwdGFwQnVuZGxlPWF3YWl0IE9zLmdldEluc3RhbmNlKCkubG9hZFRpcHRhcCgpLHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5saW5rSW5wdXRFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubGluay1pbnB1dCBpbnB1dCIpLHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWluaXRpYWxpemVFZGl0b3IoKXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy50aXB0YXBCdW5kbGUpcmV0dXJuO2xldHtFZGl0b3I6VCxTdGFydGVyS2l0OlAsVW5kZXJsaW5lOkIsVGV4dEFsaWduOk0sTGluazpTLFR5cG9ncmFwaHk6RX09dGhpcy50aXB0YXBCdW5kbGU7dGhpcy5lZGl0b3I9bmV3IFQoe2VsZW1lbnQ6dGhpcy5lZGl0b3JFbGVtZW50LGV4dGVuc2lvbnM6W1AuY29uZmlndXJlKHtoZWFkaW5nOntsZXZlbHM6WzEsMiwzXX19KSxCLmNvbmZpZ3VyZSh7fSksTS5jb25maWd1cmUoe3R5cGVzOlsiaGVhZGluZyIsInBhcmFncmFwaCJdfSksUy5jb25maWd1cmUoe29wZW5PbkNsaWNrOiExLEhUTUxBdHRyaWJ1dGVzOntjbGFzczoiZWRpdG9yLWxpbmsifX0pLEUuY29uZmlndXJlKHt9KV0sY29udGVudDp0aGlzLnZhbHVlfHwodGhpcy5wbGFjZWhvbGRlcj9gPHA+JHt0aGlzLnBsYWNlaG9sZGVyfTwvcD5gOiIiKSxvblVwZGF0ZTpzKCh7ZWRpdG9yOkF9KT0+e3RoaXMudmFsdWU9QS5nZXRIVE1MKCksdGhpcy51cGRhdGVXb3JkQ291bnQoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJvblVwZGF0ZSIpLG9uU2VsZWN0aW9uVXBkYXRlOnMoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uU2VsZWN0aW9uVXBkYXRlIiksb25Gb2N1czpzKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvbkZvY3VzIiksb25CbHVyOnMoKCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sIm9uQmx1ciIpfSksdGhpcy51cGRhdGVXb3JkQ291bnQoKX11cGRhdGVXb3JkQ291bnQoKXtpZighdGhpcy5lZGl0b3IpcmV0dXJuO2xldCBUPXRoaXMuZWRpdG9yLmdldFRleHQoKTt0aGlzLndvcmRDb3VudD1ULnRyaW0oKT9ULnRyaW0oKS5zcGxpdCgvXHMrLykubGVuZ3RoOjB9dG9nZ2xlTGluaygpe2lmKHRoaXMuZWRpdG9yKWlmKHRoaXMuZWRpdG9yLmlzQWN0aXZlKCJsaW5rIikpe2xldCBUPXRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoImxpbmsiKS5ocmVmO3RoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9VHx8IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCksdGhpcy5saW5rSW5wdXRFbGVtZW50LnNlbGVjdCgpKX0pfWVsc2UgdGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT0iIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSl9KX1zYXZlTGluaygpe2lmKCF0aGlzLmVkaXRvcnx8IXRoaXMubGlua0lucHV0RWxlbWVudClyZXR1cm47bGV0IFQ9dGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlO1QmJnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRMaW5rKHtocmVmOlR9KS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKX1yZW1vdmVMaW5rKCl7dGhpcy5lZGl0b3ImJih0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5zZXRMaW5rKCkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCkpfWhpZGVMaW5rSW5wdXQoKXt0aGlzLnNob3dMaW5rSW5wdXQ9ITEsdGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9aGFuZGxlTGlua0lucHV0S2V5ZG93bihUKXtULmtleT09PSJFbnRlciI/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVMaW5rKCkpOlQua2V5PT09IkVzY2FwZSImJihULnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlTGlua0lucHV0KCkpfXNldFZhbHVlKFQpe3RoaXMudmFsdWU9VCx0aGlzLmVkaXRvciYmVCE9PXRoaXMuZWRpdG9yLmdldEhUTUwoKSYmdGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0Q29udGVudChUKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfWNsZWFyKCl7dGhpcy5zZXRWYWx1ZSgiIil9Zm9jdXMoKXt0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmRlc3Ryb3koKX1zdGF0aWN7b24ocix0KX19O3JldHVybiBPPXJ9KSgpfSk7dmFyIG5sYSxsbGE9ZigoKT0+e1hYZSgpO1dzKCk7bGUoKTtOYSgpO25sYT1zKCgpPT53YAogIDxzdHlsZT4KICAgICR7WGAKICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGljaz0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImRhcmsiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIFRhYmxlIHdpdGggQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgc3RhbmRhcmQgdGFibGUgd2l0aCByb3cgYWN0aW9ucywgZWRpdGFibGUgY2VsbHMsIGFuZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4gRG91YmxlLWNsaWNrIGFueSBjZWxsIHRvIGVkaXQuIFRhYiBtb3ZlcyB0byB0aGUgbmV4dCBlZGl0YWJsZSBjZWxsLCBFbnRlciB0byB0aGUgcm93IGJlbG93LCBFc2MgY2FuY2Vscy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJkYXRlIixoZWFkZXI6IkRhdGUiLHNvcnRhYmxlOiEwLGVkaXRhYmxlOiEwLGVkaXRvcjoiZGF0ZSJ9LHtrZXk6ImFtb3VudCIsaGVhZGVyOiJBbW91bnQiLGVkaXRhYmxlOiEwLGVkaXRvcjoidGV4dCJ9LHtrZXk6ImNhdGVnb3J5IixoZWFkZXI6IkNhdGVnb3J5IixlZGl0YWJsZTohMCxlZGl0b3I6ImRyb3Bkb3duIixlZGl0b3JPcHRpb25zOntvcHRpb25zOlt7b3B0aW9uOiJPZmZpY2UgU3VwcGxpZXMiLGtleToib2ZmaWNlIn0se29wdGlvbjoiSGFyZHdhcmUiLGtleToiaGFyZHdhcmUifSx7b3B0aW9uOiJTb2Z0d2FyZSIsa2V5OiJzb2Z0d2FyZSJ9LHtvcHRpb246IlRyYXZlbCIsa2V5OiJ0cmF2ZWwifV19fSx7a2V5OiJkZXNjcmlwdGlvbiIsaGVhZGVyOiJEZXNjcmlwdGlvbiIsZWRpdGFibGU6ITB9LHtrZXk6InJlY29uY2lsZWQiLGhlYWRlcjoiT0siLGVkaXRhYmxlOiEwLGVkaXRvcjoiY2hlY2tib3gifV19CiAgICAgICAgICBAY2VsbEVkaXQ9JHthPT5jb25zb2xlLmxvZygiY2VsbEVkaXQiLGEuZGV0YWlsKX0KICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixjYXRlZ29yeToib2ZmaWNlIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDIiLGFtb3VudDoiMTY1LjY1IFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTG9naXRlY2ggTW91c2UgLSBsb2dpLmNvbSBPbmxpbmVTaG9wIixyZWNvbmNpbGVkOiExfSx7ZGF0ZToiMjAyMS0wNC0wMyIsYW1vdW50OiIyOTk5LDAwIFx1MjBBQyIsY2F0ZWdvcnk6ImhhcmR3YXJlIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIC0gQXBwbGUuZGUgT25saW5lU2hvcCIscmVjb25jaWxlZDohMX0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiIscmVjb25jaWxlZDohMH1dfQogICAgICAgICAgZGF0YU5hbWU9InRyYW5zYWN0aW9ucyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6InVwbG9hZCIsaWNvbk5hbWU6ImJlbGwiLHVzZVRhYmxlQmVoYXZpb3VyOiJ1cGxvYWQiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6cyhhc3luYyBhPT57YWxlcnQoYS5pdGVtLmFtb3VudCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJ2aXNpYmlsaXR5IixpY29uTmFtZToiY29weSIsdHlwZTpbImluUm93Il0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6cyhhc3luYyBhPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOnMoYXN5bmMgYT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6InRvIGdhbGxlcnkiLGljb25OYW1lOiJtZXNzYWdlIix0eXBlOlsiZm9vdGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6cyhhc3luYyBhPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiY29weSIsaWNvbk5hbWU6ImNvcHlTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51IiwiaW5Sb3ciXSxhY3Rpb246cyhhc3luYygpPT5udWxsLCJhY3Rpb24iKX0se25hbWU6ImVkaXQgKGZyb20gZGVtbykiLGljb25OYW1lOiJwZW5Ub1NxdWFyZSIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOnMoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9LHtuYW1lOiJwYXN0ZSIsaWNvbk5hbWU6InBhc3RlU29saWQiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjpzKGFzeW5jKCk9Pm51bGwsImFjdGlvbiIpfSx7bmFtZToicHJldmlldyIsdHlwZTpbImRvdWJsZUNsaWNrIiwiY29udGV4dG1lbnUiXSxpY29uTmFtZToiZXllIixhY3Rpb25GdW5jOnMoYXN5bmMgYT0+KGFsZXJ0KGEuaXRlbS5hbW91bnQpLG51bGwpLCJhY3Rpb25GdW5jIil9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOnMoYXN5bmMgYT0+e2NvbnNvbGUubG9nKCJDb25uZWN0aW5nIHRvOiIsYS5pdGVtLnNlcnZlcil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6ZmlsZS10ZXh0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6cyhhc3luYyBhPT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6IixhLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IlJlc3RhcnQgU2VydmVyIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6cyhhc3luYyBhPT57Y29uc29sZS5sb2coIlJlc3RhcnRpbmc6IixhLml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7YT0+KHtQcm9kdWN0OmEucHJvZHVjdCwiVW5pdHMgU29sZCI6YS51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK2EucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDooYS5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK2EuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjpzKGE9PndgPGRlZXMtYmFkZ2U+JHthfTwvZGVlcy1iYWRnZT5gLCJyZW5kZXJlciIpfSx7a2V5OiJqb2luZWRBdCIsaGVhZGVyOiJKb2luZWQiLHJlbmRlcmVyOnMoYT0+bmV3IERhdGUoYSkudG9Mb2NhbGVEYXRlU3RyaW5nKCksInJlbmRlcmVyIil9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSIsZW1haWw6ImFsaWNlQGV4YW1wbGUuY29tIixqb2luZWRBdDoiMjAyMi0wOC0wMSJ9LHtuYW1lOiJCb2IiLGVtYWlsOiJib2JAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIxLTEyLTExIn0se25hbWU6IkNhcm9sIixlbWFpbDoiY2Fyb2xAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIzLTAzLTIyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudCkiCiAgICAgICAgICBoZWFkaW5nMj0iTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7bmFtZTphLm5hbWUsZW1haWw6YS5lbWFpbCxyb2xlOmEucm9sZX0pfQogICAgICAgICAgLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiRXJpbiIsZW1haWw6ImVyaW5AZXhhbXBsZS5jb20iLHJvbGU6IkFkbWluIn0se25hbWU6IkZpbm4iLGVtYWlsOiJmaW5uQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn0se25hbWU6IkdpbmEiLGVtYWlsOiJnaW5hQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIiAKICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7YT0+e2NvbnNvbGUubG9nKCJTZWxlY3Rpb24gY2hhbmdlZCIsYS5kZXRhaWwpfX0KICAgICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHthPT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dChhLmRldGFpbC52YWx1ZSl9fQogICAgICAgICAgIEBzZWFyY2gtc3VibWl0PSR7YT0+e2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZUZpbHRlclNlbGVjdERlbW8iKTtlJiZlLnNldEZpbHRlclRleHQoYS5kZXRhaWwudmFsdWUpfX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPgogICAgICAgIDxkZWVzLXNlYXJjaGJhcj48L2RlZXMtc2VhcmNoYmFyPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTJweCI+PC9kaXY+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJ0YWJsZUZpbHRlclNlbGVjdERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iSW52ZW50b3J5IChGaWx0ZXIgKyBTZWxlY3QpIgogICAgICAgICAgaGVhZGluZzI9IlRyeSB0eXBpbmcgdG8gZmlsdGVyIGFuZCBzZWxlY3RpbmcgbXVsdGlwbGUgcm93cyIKICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7Im11bHRpIn0KICAgICAgICAgIC5yb3dLZXk9JHsic2t1In0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InNrdSIsaGVhZGVyOiJTS1UiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJzdG9jayIsaGVhZGVyOiJTdG9jayIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tza3U6IkEtMTAwIixuYW1lOiJVU0ItQyBDYWJsZSIsc3RvY2s6MTIwfSx7c2t1OiJBLTEwMSIsbmFtZToiV2lyZWxlc3MgTW91c2UiLHN0b2NrOjU1fSx7c2t1OiJBLTEwMiIsbmFtZToiTGFwdG9wIFN0YW5kIixzdG9jazoxOH0se3NrdToiQi0yMDAiLG5hbWU6IktleWJvYXJkIChJU08pIixzdG9jazo4OX0se3NrdToiQi0yMDEiLG5hbWU6IkhETUkgQWRhcHRlciIsc3RvY2s6MH0se3NrdToiQy0zMDAiLG5hbWU6IldlYmNhbSAxMDgwcCIsc3RvY2s6NDJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Db2x1bW4gRmlsdGVycyArIFN0aWNreSBIZWFkZXIgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5QZXItY29sdW1uIHF1aWNrIGZpbHRlcnMgYW5kIHN0aWNreSBoZWFkZXIgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRyeSBmaWx0ZXJpbmcgdGhlIE5hbWUgY29sdW1uLiBVc2VzIC0tdGFibGUtbWF4LWhlaWdodCB2YXIuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgIGRlZXMtdGFibGVbZml4ZWQtaGVpZ2h0XSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLmZpeGVkSGVpZ2h0PSR7ITB9CiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSBKb2huc29uIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkJvYiBTbWl0aCIsZW1haWw6ImJvYkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiQ2hhcmxpZSBEYXZpcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkhSIn0se25hbWU6IkRpYW5hIE1hcnRpbmV6IixlbWFpbDoiZGlhbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkV0aGFuIEJyb3duIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiRmlvbmEgQ2xhcmsiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU2FsZXMifSx7bmFtZToiR3JhY2UgTGVlIixlbWFpbDoiZ3JhY2VAY29ycC5jb20iLGRlcGFydG1lbnQ6IkVuZ2luZWVyaW5nIn0se25hbWU6IkhlbnJ5IFdpbHNvbiIsZW1haWw6ImhlbnJ5QGNvcnAuY29tIixkZXBhcnRtZW50OiJNYXJrZXRpbmcifSx7bmFtZToiSXJlbmUgV2Fsa2VyIixlbWFpbDoiaXJlbmVAY29ycC5jb20iLGRlcGFydG1lbnQ6IkZpbmFuY2UifSx7bmFtZToiSmFjayBUdXJuZXIiLGVtYWlsOiJqYWNrQGNvcnAuY29tIixkZXBhcnRtZW50OiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9ImVtcGxveWVlcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiIKICAgICAgICBAc2VhcmNoUmVxdWVzdD0ke2FzeW5jIGE9PntsZXR7cXVlcnk6ZX09YS5kZXRhaWx8fHtxdWVyeToiIn0sdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VydmVyU2VhcmNoRGVtbyIpLHI9W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV07YXdhaXQgbmV3IFByb21pc2Uobj0+c2V0VGltZW91dChuLDMwMCkpO2xldCBpPVN0cmluZyhlfHwiIikudG9Mb3dlckNhc2UoKSxvPWk/ci5maWx0ZXIobj0+T2JqZWN0LnZhbHVlcyhuKS5zb21lKGw9PlN0cmluZyhsKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGkpKSk6cjt0LmRhdGE9b319CiAgICAgID4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNlcnZlciBTZWFyY2ggKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5TZWxlY3QgU2VydmVyIG1vZGUsIHR5cGUgYSBxdWVyeSwgYW5kIHdhdGNoIHRoZSB0YWJsZSBmZXRjaCBzaW11bGF0ZWQgcmVzdWx0cy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzZXJ2ZXJTZWFyY2hEZW1vIgogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSAoU2VydmVyIFNlYXJjaCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ2xpY2sgU2VhcmNoLCBjaG9vc2UgU2VydmVyIG1vZGUsIGFuZCB0eXBlIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIn0se2tleToiY2l0eSIsaGVhZGVyOiJDaXR5In0se2tleToidGl0bGUiLGhlYWRlcjoiVGl0bGUifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dfQogICAgICAgICAgZGF0YU5hbWU9InBlb3BsZSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aS1Db2x1bW4gU29ydDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2xpY2sgYW55IGNvbHVtbiBoZWFkZXIgZm9yIGEgc2luZ2xlLWNvbHVtbiBzb3J0LiBIb2xkIFNoaWZ0IHdoaWxlIGNsaWNraW5nIHRvIGFkZCB0aGUKICAgICAgICAgIGNvbHVtbiB0byBhIG11bHRpLXNvcnQgY2FzY2FkZSAob3IgY3ljbGUgaXRzIGRpcmVjdGlvbikuIFJpZ2h0LWNsaWNrIGFueSBzb3J0YWJsZSBoZWFkZXIKICAgICAgICAgIHRvIG9wZW4gYSBtZW51IHdoZXJlIHlvdSBjYW4gcGluIGEgY29sdW1uIHRvIGEgc3BlY2lmaWMgcHJpb3JpdHkgc2xvdCwgcmVtb3ZlIGl0LCBvcgogICAgICAgICAgY2xlYXIgdGhlIGNhc2NhZGUuCiAgICAgICAgPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJQcmUtc2VlZGVkIHdpdGggZGVwYXJ0bWVudCDilrIgMSwgbmFtZSDilrIgMiIKICAgICAgICAgIC5zb3J0Qnk9JHtbe2tleToiZGVwYXJ0bWVudCIsZGlyOiJhc2MifSx7a2V5OiJuYW1lIixkaXI6ImFzYyJ9XX0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe2RlcGFydG1lbnQ6IlImRCIsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJNYXJrIExlZSIscm9sZToiRW5naW5lZXIiLGNyZWF0ZWRBdDoiMjAyNC0wMy0wNCIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiRGVzaWduIixuYW1lOiJTYXJhIEtpbSIscm9sZToiRGVzaWduZXIiLGNyZWF0ZWRBdDoiMjAyMS0wOC0xOSIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIn0se2RlcGFydG1lbnQ6Ik9wcyIsbmFtZToiSGVsZW5hIFZvc3MiLHJvbGU6IlNSRSIsY3JlYXRlZEF0OiIyMDIzLTA3LTIyIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJRQSIsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IlFBIixuYW1lOiJUb21ceEUxcyBSaXZlcmEiLHJvbGU6IlFBIixjcmVhdGVkQXQ6IjIwMjQtMDEtMDkiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IkNTIixuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSJ9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5XaWRlIFByb3BlcnRpZXMgKyBNYW55IEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHRhYmxlIHdpdGggbWFueSBjb2x1bW5zIGFuZCByaWNoIGFjdGlvbnMgdG8gc3RyZXNzIHRlc3QgbGF5b3V0IGFuZCBzdGlja3kgQWN0aW9ucy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IgogICAgICAgICAgaGVhZGluZzI9Ik1hbnkgcHJvcGVydGllcyBhbmQgYWN0aW9ucyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke1t7aWQ6MSxuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUiZEIixlbWFpbDoiYWxpY2VAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTEiLGxvY2F0aW9uOiJCZXJsaW4iLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjMtMDEtMTIiLHVwZGF0ZWRBdDoiMjAyNC0wNS0wMyIsbGFzdExvZ2luOiIyMDI0LTEwLTAxIixwcm9qZWN0czo1LHRhZ3M6InR5cGVzY3JpcHQsIHVpIixub3RlczoiTWVudG9yIn0se2lkOjIsbmFtZToiQm9iIFNtaXRoIixyb2xlOiJEZXNpZ25lciIsZGVwYXJ0bWVudDoiRGVzaWduIixlbWFpbDoiYm9iQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEyIixsb2NhdGlvbjoiUGFyaXMiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMTEtMDUiLHVwZGF0ZWRBdDoiMjAyNC0wNC0xMCIsbGFzdExvZ2luOiIyMDI0LTA5LTI4Iixwcm9qZWN0czo4LHRhZ3M6ImZpZ21hLCBicmFuZCIsbm90ZXM6IlBhcnQtdGltZSJ9LHtpZDozLG5hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6Ik1hbmFnZXIiLGRlcGFydG1lbnQ6Ik9wcyIsZW1haWw6ImNoYXJsaWVAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTMiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiT24gTGVhdmUiLGNyZWF0ZWRBdDoiMjAyMS0wNC0yMSIsdXBkYXRlZEF0OiIyMDI0LTAyLTE1IixsYXN0TG9naW46IjIwMjQtMDgtMTIiLHByb2plY3RzOjMsdGFnczoic3JlLCBsZWFkZXJzaGlwIixub3RlczoiIn0se2lkOjQsbmFtZToiRGlhbmEgTWFydGluZXoiLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJQbGF0Zm9ybSIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE0Iixsb2NhdGlvbjoiTWFkcmlkIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIwLTA2LTMwIix1cGRhdGVkQXQ6IjIwMjQtMDYtMjUiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMiIscHJvamVjdHM6Nix0YWdzOiJub2RlLCBhcGkiLG5vdGVzOiJPbi1jYWxsIn0se2lkOjUsbmFtZToiRXRoYW4gQnJvd24iLHJvbGU6IlN1cHBvcnQiLGRlcGFydG1lbnQ6IkNTIixlbWFpbDoiZXRoYW5AY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTUiLGxvY2F0aW9uOiJSb21lIixzdGF0dXM6IkluYWN0aXZlIixjcmVhdGVkQXQ6IjIwMTktMDktMTgiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wOSIsbGFzdExvZ2luOiIyMDI0LTA2LTE5Iixwcm9qZWN0czoyLHRhZ3M6InplbmRlc2siLG5vdGVzOiJSZWhpcmUifSx7aWQ6NixuYW1lOiJGaW9uYSBDbGFyayIscm9sZToiUUEiLGRlcGFydG1lbnQ6IlFBIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTYiLGxvY2F0aW9uOiJWaWVubmEiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjItMDMtMTQiLHVwZGF0ZWRBdDoiMjAyNC0wMy0wMSIsbGFzdExvZ2luOiIyMDI0LTA5LTA3Iixwcm9qZWN0czo3LHRhZ3M6InBsYXl3cmlnaHQiLG5vdGVzOiIifV19CiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6cyhhc3luYyh7aXRlbTphfSk9Pntjb25zb2xlLmxvZygidmlldyIsYSl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzpzKGFzeW5jKHtpdGVtOmF9KT0+e2NvbnNvbGUubG9nKCJlZGl0IixhKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOnMoYXN5bmMoe2l0ZW06YX0pPT57Y29uc29sZS5sb2coImRlbGV0ZSIsYSl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNZXNzYWdlIixpY29uTmFtZToibHVjaWRlOm1lc3NhZ2Utc3F1YXJlIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOnMoYXN5bmMoe2l0ZW06YX0pPT57Y29uc29sZS5sb2coIm1lc3NhZ2UiLGEpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzpzKGFzeW5jKHtpdGVtOmF9KT0+e2NvbnNvbGUubG9nKCJoaXN0b3J5IixhKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkFkZCBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6cyhhc3luYyh7dGFibGU6YX0pPT57Y29uc29sZS5sb2coImFkZCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRXhwb3J0IENTViIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6cyhhc3luYyh7dGFibGU6YX0pPT57Y29uc29sZS5sb2coImV4cG9ydCIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6cyhhc3luYyh7dGFibGU6YX0pPT57Y29uc29sZS5sb2coImJ1bGsgZGVsZXRlIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY3JvbGxhYmxlIFNtYWxsIEhlaWdodDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIG1hbnkgaXRlbXMgYW5kIGEgc21hbGwgZml4ZWQgaGVpZ2h0IHRvIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGluZyBpbnNpZGUgdGhlIHRhYmxlLiBBY3Rpb25zIHJlbWFpbiB2aXNpYmxlIG9uIHRoZSByaWdodDsgaG9yaXpvbnRhbCBzY3JvbGwgYXBwZWFycyBpZiBuZWVkZWQuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICNzY3JvbGxTbWFsbEhlaWdodCB7IC0tdGFibGUtbWF4LWhlaWdodDogMjQwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2Nyb2xsU21hbGxIZWlnaHQiCiAgICAgICAgICAuZml4ZWRIZWlnaHQ9JHshMH0KICAgICAgICAgIC52aXJ0dWFsaXplZD0keyEwfQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkgKFNjcm9sbGFibGUsIFZpcnR1YWxpemVkKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LChhLGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzpzKGFzeW5jKHtpdGVtOmF9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzpzKGFzeW5jKHtpdGVtOmF9KT0+e30sImFjdGlvbkZ1bmMiKX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzpzKGFzeW5jKHtpdGVtOmF9KT0+e30sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBlPWEucXVlcnlTZWxlY3RvcigiI2RlbW9MaXZlRmxhc2giKTtpZighZSlyZXR1cm47ZS5fX2xpdmVGbGFzaFRpbWVySWQmJndpbmRvdy5jbGVhckludGVydmFsKGUuX19saXZlRmxhc2hUaW1lcklkKTtsZXQgdD1zKCgpPT57aWYoIUFycmF5LmlzQXJyYXkoZS5kYXRhKXx8ZS5kYXRhLmxlbmd0aD09PTApcmV0dXJuO2xldCByPWUuZGF0YS5tYXAobz0+KHsuLi5vfSkpLGk9MStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyk7Zm9yKGxldCBvPTA7bzxpO28rKyl7bGV0IG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnIubGVuZ3RoKSxsPSsoKE1hdGgucmFuZG9tKCkqMi0xKSozKS50b0ZpeGVkKDIpLGQ9TWF0aC5tYXgoMSwrKHJbbl0ucHJpY2UrbCkudG9GaXhlZCgyKSk7cltuXT17Li4ucltuXSxwcmljZTpkLGNoYW5nZTpsLHVwZGF0ZWRBdDpuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfX1lLmRhdGE9cn0sInRpY2siKTtlLl9fbGl2ZUZsYXNoVGltZXJJZD13aW5kb3cuc2V0SW50ZXJ2YWwodCwxNTAwKX19PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxpdmUgVXBkYXRlcyB3aXRoIEZsYXNoIEhpZ2hsaWdodGluZzwvaDI+CiAgICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgIE9wdC1pbiBjZWxsLWZsYXNoIHZpYSA8Y29kZT5oaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giPC9jb2RlPi4gVGhlIHRpY2tlciBiZWxvdyBtdXRhdGVzCiAgICAgICAgICAgIHJhbmRvbSByb3dzIGV2ZXJ5IDEuNXMgYW5kIHJlYXNzaWducyA8Y29kZT4uZGF0YTwvY29kZT4uIFVwZGF0ZWQgY2VsbHMgYnJpZWZseSBmbGFzaAogICAgICAgICAgICBhbWJlciBhbmQgZmFkZSBvdXQuIFJlcXVpcmVzIDxjb2RlPnJvd0tleTwvY29kZT4gKGhlcmUgPGNvZGU+InN5bWJvbCI8L2NvZGU+KS4gSG9ub3JzCiAgICAgICAgICAgIDxjb2RlPnByZWZlcnMtcmVkdWNlZC1tb3Rpb248L2NvZGU+LiBSb3cgc2VsZWN0aW9uIHBlcnNpc3RzIGFjcm9zcyB1cGRhdGVzIOKAlCBjbGljayBhCiAgICAgICAgICAgIHJvdywgdGhlbiB3YXRjaCBpdCBzdGF5IHNlbGVjdGVkIGFzIHRoZSBkYXRhIGNodXJucy4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgIGlkPSJkZW1vTGl2ZUZsYXNoIgogICAgICAgICAgICAucm93S2V5PSR7InN5bWJvbCJ9CiAgICAgICAgICAgIGhpZ2hsaWdodC11cGRhdGVzPSJmbGFzaCIKICAgICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgICBoZWFkaW5nMT0iTGl2ZSBNYXJrZXQgRmVlZCIKICAgICAgICAgICAgaGVhZGluZzI9IkZsYXNoaW5nIGNlbGxzIGluZGljYXRlIHVwZGF0ZWQgdmFsdWVzIgogICAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJzeW1ib2wiLGhlYWRlcjoiU3ltYm9sIixzb3J0YWJsZTohMH0se2tleToicHJpY2UiLGhlYWRlcjoiUHJpY2UiLHNvcnRhYmxlOiEwfSx7a2V5OiJjaGFuZ2UiLGhlYWRlcjoiXHUwMzk0Iixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQifV19CiAgICAgICAgICAgIC5kYXRhPSR7W3tzeW1ib2w6IkFBUEwiLHByaWNlOjE4Mi41MixjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6Ik1TRlQiLHByaWNlOjQxNC4xOCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkdPT0ciLHByaWNlOjE2OC43NCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IkFNWk4iLHByaWNlOjE4Ni4xMyxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IlRTTEEiLHByaWNlOjI0OC41LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTlZEQSIscHJpY2U6ODc3LjM1LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTUVUQSIscHJpY2U6NDkyLjk2LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTkZMWCIscHJpY2U6NjA1Ljg4LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiQU1EIixwcmljZToxNjUuMjQsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJJTlRDIixwcmljZTo0Mi4xNSxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9XX0KICAgICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGNsYSxkbGE9ZigoKT0+e2xlKCk7bXMoKTtRZSgpO2NsYT1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtZmFtaWx5OiAke3BhfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBtb2RlIChNb2RlIEIsIHBhZ2Ugc3RpY2t5KTogaG9yaXpvbnRhbCBzY3JvbGwgbGl2ZXMgb24KICAgICAgICAgLnRhYmxlU2Nyb2xsIChzbyB3aWRlIHRhYmxlcyBkb24ndCBnZXQgY2xpcHBlZCBieSBhbiBhbmNlc3RvcgogICAgICAgICBvdmVyZmxvdzpoaWRkZW4gc3VjaCBhcyBkZWVzLXRpbGUpLiBWZXJ0aWNhbCBzdGlja3kgaXMgaGFuZGxlZCBieQogICAgICAgICBhIEpTLW1hbmFnZWQgZmxvYXRpbmcgaGVhZGVyICguZmxvYXRpbmdIZWFkZXIsIHBvc2l0aW9uOmZpeGVkKSwKICAgICAgICAgd2hpY2ggaXMgdW5hZmZlY3RlZCBieSBhbmNlc3RvciBvdmVyZmxvdy4gKi8KICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOwogICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgICAgfQogICAgICAvKiBNb2RlIEEsIGludGVybmFsIHNjcm9sbDogb3B0LWluIHZpYSBmaXhlZC1oZWlnaHQgYXR0cmlidXRlLgogICAgICAgICBUaGUgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIG93biBib3ggYW5kIHRoZSBoZWFkZXIgc3RpY2tzIHZpYSBwbGFpbiBDU1Mgc3RpY2t5LiAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGhlYWRlciBvdmVybGF5IChNb2RlIEIpLiBQb3NpdGlvbiBpcyBtYW5hZ2VkIGJ5IEpTIHNvIGl0CiAgICAgICAgIGVzY2FwZXMgYW55IGFuY2VzdG9yIG92ZXJmbG93OmhpZGRlbiAocG9zaXRpb246Zml4ZWQgaXMgbm90IGNsaXBwZWQKICAgICAgICAgYnkgb3ZlcmZsb3cgYW5jZXN0b3JzKS4gKi8KICAgICAgLmZsb2F0aW5nSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIC5mbG9hdGluZ0hlYWRlci5hY3RpdmUgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRhYmxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRoIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KICAgICAgLyogdGggbmVlZHMgaXRzIG93biBiYWNrZ3JvdW5kIHNvIHN0aWNreSBjZWxscyBwYWludCBvdmVyIHNjcm9sbGVkIHJvd3MKICAgICAgICAgKGJyb3dzZXJzIGRvbid0IHBhaW50IHRoZSA8dGhlYWQ+IGJveCBiZWhpbmQgYSBzdGlja3kgPHRoPikuICovCiAgICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CiAgICAgIC8qIE1vZGUgQSDigJQgaW50ZXJuYWwgc2Nyb2xsIHN0aWNreSAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHRvcDogMzZweDsgLyogbWF0Y2hlcyB0aCB7IGhlaWdodDogMzZweCB9IGJlbG93ICovCiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogRnVsbCBob3Jpem9udGFsIGxpbmVzIHdoZW4gZW5hYmxlZCAqLwogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNCkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA1KSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBlZGdlIGJvcmRlcnMgdGhhdCB3b3VsZCBkb3VibGUgd2l0aCB0aWxlIGZyYW1lICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICB0aFtyb2xlPSdjb2x1bW5oZWFkZXInXTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgdGggLnNvcnRBcnJvdyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICB0aCAuc29ydEJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDMwJSkiLCJoc2woMjE3LjIgOTEuMiUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIAogICAgICB0aDpmaXJzdC1jaGlsZCwKICAgICAgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgdGg6bGFzdC1jaGlsZCwKICAgICAgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBib3R0b20gYm9yZGVyIG9uIGxhc3Qgcm93IHJlbW92ZWQg4oCUIHRpbGUgZnJhbWUgaGFuZGxlcyBpdCAqLwogICAgICA6aG9zdCg6bm90KFtzaG93LWhvcml6b250YWwtbGluZXNdKSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLS0gQ2VsbCBmbGFzaCBoaWdobGlnaHRpbmcgKG9wdC1pbiB2aWEgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIikgLS0tLQogICAgICAgICBCbG9vbWJlcmcvVHJhZGluZ1ZpZXctc3R5bGU6IHRoZSB0ZXh0IGl0c2VsZiBicmllZmx5IHRha2VzIGFuIGFjY2VudAogICAgICAgICBjb2xvciB0aGVuIGZhZGVzIGJhY2sgdG8gdGhlIGRlZmF1bHQuIE5vIGJhY2tncm91bmQgdGludCwgbm8gbGF5b3V0CiAgICAgICAgIHNoaWZ0LCBubyB3ZWlnaHQgY2hhbmdlLiBSZWFkYWJsZSwgbW9kZXJuLCBzdWJ0bGUuCiAgICAgICAgIENvbnN1bWVycyBjYW4gb3ZlcnJpZGUgcGVyIGluc3RhbmNlOgogICAgICAgICAgIGRlZXMtdGFibGUjbXlUYWJsZSB7IC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcjogaHNsKDE0MiA3NiUgNDAlKTsgfQogICAgICAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDMyIDk1JSA0NCUpIiwiaHNsKDQ1IDkzJSA2MiUpIil9OwogICAgICAgIC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmc6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsKICAgICAgfQoKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBkZWVzLXRhYmxlLWNlbGwtZmxhc2gKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICB9CgogICAgICAvKiBIb2xkIHRoZSBhY2NlbnQgY29sb3IgYnJpZWZseSwgdGhlbiBmYWRlIGJhY2sgdG8gdGhlIHRoZW1lJ3MgZGVmYXVsdAogICAgICAgICB0ZXh0IGNvbG9yLiBJbmhlcml0cyB0byBjaGlsZCB0ZXh0IGFuZCB0byBTVkcgaWNvbnMgdGhhdCB1c2UKICAgICAgICAgY3VycmVudENvbG9yLiBDZWxscyB3aXRoIGV4cGxpY2l0IGNvbG9yIG92ZXJyaWRlcyBpbiByZW5kZXJlcnMgYXJlCiAgICAgICAgIGludGVudGlvbmFsbHkgdW5hZmZlY3RlZC4gKi8KICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2ggewogICAgICAgIDAlLAogICAgICAgIDM1JSB7IGNvbG9yOiB2YXIoLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yKTsgfQogICAgICAgIDEwMCUgeyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyB9CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci9iYWNrZ3JvdW5kIGZsYXNoIHZhcmlhbnQgZm9yIGNlbGxzIHdpdGggc3R5bGVkIGNvbnRlbnQKICAgICAgICAgKGJhZGdlcywgaWNvbnMsIGN1c3RvbSBjb21wb25lbnRzKSB3aGVyZSBhIHRleHQtY29sb3IgYW5pbWF0aW9uCiAgICAgICAgIHdvdWxkIGJlIGludmlzaWJsZS4gQWN0aXZhdGVkIHZpYSBmbGFzaEJvcmRlciBvbiBDb2x1bW4uICovCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICBhbmltYXRpb246IGRlZXMtdGFibGUtY2VsbC1mbGFzaC1ib3JkZXIKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2gtYm9yZGVyIHsKICAgICAgICAwJSwKICAgICAgICAzNSUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA2MiUgLyAwLjEwKSIsImhzbCg0NSA5MyUgNjIlIC8gMC4wOCkiKX07CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdHJhbnNwYXJlbnQ7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgfQogICAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWRlZXMtdGFibGUtZmxhc2gtY29sb3IpOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNjIlIC8gMC4xMCkiLCJoc2woNDUgOTMlIDYyJSAvIDAuMDgpIil9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogRGV2LXRpbWUgd2FybmluZyBiYW5uZXIgc2hvd24gd2hlbiBoaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giIGJ1dAogICAgICAgICByb3dLZXkgaXMgbWlzc2luZy4gQ29uc3VtZXJzIHNob3VsZCBuZXZlciBzaGlwIHRoaXMgdG8gcHJvZHVjdGlvbi4gKi8KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHggMDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woNDggOTYlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0OCA5NiUgODklIC8gMC42KSIsImhzbCg0OCA5NiUgMzAlIC8gMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzIgODElIDI5JSkiLCJoc2woNDggOTYlIDgwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIC5mbGFzaENvbmZpZ1dhcm5pbmcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAxcHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuNikiLCJoc2woMCAwJSAwJSAvIDAuMykiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7cGF9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogRWRpdGFibGUgY2VsbCBhZmZvcmRhbmNlcyAqLwogICAgICB0ZC5lZGl0YWJsZSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CiAgICAgIHRkLmZvY3VzZWQgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC42KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuNikiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC42KSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQogICAgICB0ZC5lZGl0aW5nQ2VsbCAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsCiAgICAgIHRkLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIGZpbHRlciByb3cgKi8KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggMTJweCAxMnB4OwogICAgICB9CiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggaW5wdXRbdHlwZT0ndGV4dCddIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAuYWN0aW9uc0NvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDExLjglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGFibGVTdGF0aXN0aWNzIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICBgXX0pO3ZhciBRWGU9ZigoKT0+e240KCl9KTt2YXIgSlhlPWYoKCk9PntZdGUoKX0pO3ZhciBlUWU9ZigoKT0+e2NhZSgpO0lZZSgpfSk7dmFyIHRRZT1mKCgpPT57WVllKCl9KTtmdW5jdGlvbiBhUWUoYSxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCB0PWEoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcChpPT4oe2tleTppLGhlYWRlcjppLHZhbHVlOnMobz0+YShvKVtpXSwidmFsdWUiKX0pKX1mdW5jdGlvbiB1bGEoYSxlLHQscil7bGV0IGk9KGF8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiBpO2xldCBvPWFRZSh0LHIpLG49bmV3IFNldChpLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG8pbi5oYXMoU3RyaW5nKGwua2V5KSl8fGkucHVzaChsKTtyZXR1cm4gaX1mdW5jdGlvbiBDNChhLGUsdCl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZShhKTphW2Uua2V5XX1mdW5jdGlvbiBXSWEoYSxlKXtpZihhPT1udWxsJiZlPT1udWxsKXJldHVybiAwO2lmKGE9PW51bGwpcmV0dXJuLTE7aWYoZT09bnVsbClyZXR1cm4gMTtpZih0eXBlb2YgYT09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIilyZXR1cm4gYTxlPy0xOmE+ZT8xOjA7bGV0IHQ9U3RyaW5nKGEpLnRvTG93ZXJDYXNlKCkscj1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gdDxyPy0xOnQ+cj8xOjB9ZnVuY3Rpb24gcGxhKGEsZSx0LHIsaSxvPSJ0YWJsZSIsbil7bGV0IGw9YS5zbGljZSgpLGQ9KHJ8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxjPWl8fHt9LHA9T2JqZWN0LmtleXMoYykuZmlsdGVyKG09PihjW21dPz8iIikudHJpbSgpLmxlbmd0aD4wKTtpZigoZHx8cC5sZW5ndGg+MCkmJihsPWwuZmlsdGVyKG09Pntmb3IobGV0IHYgb2YgcClpZihvPT09ImRhdGEiKXtsZXQgeD1tW3ZdLGI9U3RyaW5nKHg/PyIiKS50b0xvd2VyQ2FzZSgpLGc9U3RyaW5nKGNbdl0pLnRvTG93ZXJDYXNlKCk7aWYoIWIuaW5jbHVkZXMoZykpcmV0dXJuITF9ZWxzZXtsZXQgeD1lLmZpbmQoaz0+U3RyaW5nKGsua2V5KT09PXYpO2lmKCF4fHx4LmhpZGRlbnx8eC5maWx0ZXJhYmxlPT09ITEpY29udGludWU7bGV0IGI9QzQobSx4KSxnPVN0cmluZyhiPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyhjW3ZdKS50b0xvd2VyQ2FzZSgpO2lmKCFnLmluY2x1ZGVzKHkpKXJldHVybiExfWlmKGQpe2lmKG4pcmV0dXJuISFuKG0pO2xldCB2PSExO2lmKG89PT0iZGF0YSIpe2ZvcihsZXQgeCBvZiBPYmplY3QudmFsdWVzKG0pKWlmKFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhkKSl7dj0hMDticmVha319ZWxzZSBmb3IobGV0IHggb2YgZSl7aWYoeC5oaWRkZW4pY29udGludWU7bGV0IGI9QzQobSx4KTtpZihTdHJpbmcoYj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZCkpe3Y9ITA7YnJlYWt9fWlmKCF2KXJldHVybiExfXJldHVybiEwfSkpLCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIGw7bGV0IHU9dC5tYXAobT0+KHtkZXNjOm0sY29sOmUuZmluZCh2PT5TdHJpbmcodi5rZXkpPT09bS5rZXkpfSkpLmZpbHRlcihtPT4hIW0uY29sKTtyZXR1cm4gdS5sZW5ndGg9PT0wfHxsLnNvcnQoKG0sdik9Pntmb3IobGV0e2Rlc2M6eCxjb2w6Yn1vZiB1KXtsZXQgZz1XSWEoQzQobSxiKSxDNCh2LGIpKTtpZihnIT09MClyZXR1cm4geC5kaXI9PT0iYXNjIj9nOi1nfXJldHVybiAwfSksbH12YXIgZmxhPWYoKCk9PntzKGFRZSwiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIik7cyh1bGEsImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIik7cyhDNCwiZ2V0Q2VsbFZhbHVlIik7cyhXSWEsImNvbXBhcmVDZWxsVmFsdWVzIik7cyhwbGEsImdldFZpZXdEYXRhIil9KTtmdW5jdGlvbiBGc2UoYSl7cmV0dXJuIGEuc3RhcnRzV2l0aCgnIicpJiZhLmVuZHNXaXRoKCciJyl8fGEuc3RhcnRzV2l0aCgiJyIpJiZhLmVuZHNXaXRoKCInIik/YS5zbGljZSgxLC0xKTphfWZ1bmN0aW9uIEdJYShhKXtyZXR1cm4gYS5zcGxpdCgvXHMrT1JccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gWUlhKGEpe3JldHVybiBhLnNwbGl0KC9ccytBTkRccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gS0lhKGEpe2lmKCFhKXJldHVybiBudWxsO2xldCBlPSExLHQ9YS5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTt0JiYoZT0hMCxhPXRbMl0pO2xldCByPWEubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYocilyZXR1cm57ZmllbGQ6clsxXSxuZWdhdGU6ZSxyYW5nZTp7bG93ZXI6RnNlKHJbMl0pLnRvTG93ZXJDYXNlKCksdXBwZXI6RnNlKHJbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IGk9YS5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gaT97ZmllbGQ6aVsxXSx2YWx1ZTpGc2UoaVsyXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6ZX06YS5sZW5ndGg+MD97dmFsdWU6RnNlKGEpLnRvTG93ZXJDYXNlKCksbmVnYXRlOmV9Om51bGx9ZnVuY3Rpb24gWklhKGEpe2lmKCFhKXJldHVybiBudWxsO2xldCBlPUdJYShhKS5tYXAodD0+KHt0ZXJtczpZSWEodCkubWFwKEtJYSkuZmlsdGVyKGk9PiEhaSYmISFpLnZhbHVlKX0pKS5maWx0ZXIodD0+dC50ZXJtcy5sZW5ndGg+MCk7cmV0dXJuIGUubGVuZ3RoPT09MD9udWxsOntjbGF1c2VzOmV9fWZ1bmN0aW9uIGhsYShhLGUsdCl7bGV0IHI9WklhKGEpO2lmKCFyKXJldHVybiBudWxsO2xldCBpPW5ldyBNYXAodC5tYXAoZD0+W1N0cmluZyhkLmtleSksZF0pKSxvPXMoKGQsYyk9PmQ8Yz8tMTpkPmM/MTowLCJjbXAiKSxuPXMoZD0+e2xldCBjPVN0cmluZyhkPz8iIikudG9Mb3dlckNhc2UoKSxwPU51bWJlcihjKSx1PURhdGUucGFyc2UoYyk7cmV0dXJuIU51bWJlci5pc05hTihwKSYmYy50cmltKCkhPT0iIj97dDoibiIsdjpwfTpOdW1iZXIuaXNOYU4odSk/e3Q6InMiLHY6Y306e3Q6ImQiLHY6dX19LCJjb2VyY2UiKSxsPXMoKGQsYyxwKT0+e2xldCB1PW4oZCksbT1uKGMpLHY9bihwKTtpZih1LnQ9PT0icyImJm0udD09PSJzIiYmdi50PT09InMiKXtsZXQgYj11LnY7cmV0dXJuIG8oYixtLnYpPj0wJiZvKGIsdi52KTw9MH1pZih1LnQ9PT0ibiImJm0udD09PSJuIiYmdi50PT09Im4iKXtsZXQgYj11LnY7cmV0dXJuIGI+PW0udiYmYjw9di52fWlmKHUudD09PSJkIiYmbS50PT09ImQiJiZ2LnQ9PT0iZCIpe2xldCBiPXUudjtyZXR1cm4gYj49bS52JiZiPD12LnZ9bGV0IHg9U3RyaW5nKGQ/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBvKHgsYyk+PTAmJm8oeCxwKTw9MH0sImluUmFuZ2UiKTtyZXR1cm4gZD0+e2ZvcihsZXQgYyBvZiByLmNsYXVzZXMpe2xldCBwPSEwO2ZvcihsZXQgdSBvZiBjLnRlcm1zKXtsZXQgbT0hMTtpZih1LnJhbmdlJiZ1LmZpZWxkKWlmKGU9PT0iZGF0YSIpbT1sKGRbdS5maWVsZF0sdS5yYW5nZS5sb3dlcix1LnJhbmdlLnVwcGVyKTtlbHNle2xldCB2PWkuZ2V0KHUuZmllbGQpO2lmKCF2fHx2LmhpZGRlbiltPSExO2Vsc2V7bGV0IHg9di52YWx1ZT92LnZhbHVlKGQpOmRbdi5rZXldO209bCh4LHUucmFuZ2UubG93ZXIsdS5yYW5nZS51cHBlcil9fWVsc2UgaWYodS5maWVsZCYmdS52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKW09U3RyaW5nKGRbdS5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHUudmFsdWUpO2Vsc2V7bGV0IHY9aS5nZXQodS5maWVsZCk7aWYoIXZ8fHYuaGlkZGVuPT09ITApbT0hMTtlbHNle2xldCB4PXYudmFsdWU/di52YWx1ZShkKTpkW3Yua2V5XTttPVN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh1LnZhbHVlKX19ZWxzZSB1LnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9tPU9iamVjdC52YWx1ZXMoZCkuc29tZSh2PT5TdHJpbmcodj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModS52YWx1ZSkpOm09dC5zb21lKHY9PntpZih2LmhpZGRlbilyZXR1cm4hMTtsZXQgeD12LnZhbHVlP3YudmFsdWUoZCk6ZFt2LmtleV07cmV0dXJuIFN0cmluZyh4Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh1LnZhbHVlKX0pKTtpZih1Lm5lZ2F0ZSYmKG09IW0pLCFtKXtwPSExO2JyZWFrfX1pZihwKXJldHVybiEwfXJldHVybiExfX12YXIgbWxhPWYoKCk9PntzKEZzZSwic3RyaXBRdW90ZXMiKTtzKEdJYSwic3BsaXRCeU9yIik7cyhZSWEsInNwbGl0QnlBbmQiKTtzKEtJYSwicGFyc2VUZXJtIik7cyhaSWEsInBhcnNlTHVjZW5lIik7cyhobGEsImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiKX0pO2Z1bmN0aW9uIFhJYShhKXtsZXQgZT1bInRoIiwic3QiLCJuZCIsInJkIl0sdD1hJTEwMDtyZXR1cm4gYSsoZVsodC0yMCklMTBdfHxlW3RdfHxlWzBdKX12YXIgZmEsaXQsQnNlLFhYZT1mKCgpPT57V3MoKTtsbGEoKTtsZSgpO1hyKCk7Y2MoKTtlYSgpO3ZhKCk7ZGxhKCk7UVhlKCk7SlhlKCk7ZVFlKCk7dGFlKCk7dFFlKCk7ZmxhKCk7bWxhKCk7UWUoKTtRcigpO2ZhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxpdD1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH07cyhYSWEsIm9yZGluYWxMYWJlbCIpO0JzZT0oKCk9PntsZXQgYT1baWUoImRlZXMtdGFibGUiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXSxXLGo9W10sRz1bXSxoZSxSPVtdLFU9W10sbWUsST1bXSxxPVtdLGNlLHVlPVtdLFk9W10sUSxKPVtdLFo9W10sZ2UsYWU9W10scmU9W10seWUsVj1bXSxIPVtdLG9lLHNlPVtdLHRlPVtdLHplLE9lPVtdLHFlPVtdLGR0LCRlPVtdLENlPVtdLE1lLGRlPVtdLHZlPVtdLEFlLFplPVtdLG50PVtdLHp0LFRlPVtdLHdlPVtdLFJlLGZlPVtdLGJlPVtdLEVlLGZ0PVtdLG10PVtdLEl0LFhhPVtdLEphPVtdLHdzLFVlPVtdLHV0PVtdLFFhLE1yPVtdLCRyPVtdLFZyLERyPVtdLHhvPVtdLHlvLExlPVtdLFNlPVtdLEJlLGlhPVtdLE1zPVtdLGhsLHhlPVtdLG5lPVtdLF9lLFdlPVtdLFN0PVtdLGtzLGpyPVtdLEhpPVtdLFFuLHMyPVtdLG1sPVtdLEpuLFk0PVtdLHg3PVtdLHk3LHc3PVtdLE03PVtdLGs3LFM3PVtdLHo3PVtdO3ZhciBDNz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1RhYmxlIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpBcnJheX0pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOlN0cmluZ30pXSxOPVskKHt0eXBlOkJvb2xlYW59KV0sTz1bJCh7dHlwZTpCb29sZWFufSldLEI9WyQoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sRT1bJCh7dHlwZTpCb29sZWFufSldLFc9WyQoe3R5cGU6QXJyYXl9KV0saGU9WyQoe2F0dHJpYnV0ZTohMX0pXSxtZT1bJCh7YXR0cmlidXRlOiExfSldLGNlPVskKHt0eXBlOkJvb2xlYW59KV0sUT1bJCh7YXR0cmlidXRlOiExfSldLGdlPVskKHthdHRyaWJ1dGU6ITF9KV0seWU9WyQoe3R5cGU6T2JqZWN0fSldLG9lPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctdmVydGljYWwtbGluZXMifSldLHplPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctaG9yaXpvbnRhbC1saW5lcyJ9KV0sZHQ9WyQoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ncmlkIn0pXSxNZT1bJCh7YXR0cmlidXRlOiExfSldLEFlPVskKHt0eXBlOlN0cmluZ30pXSx6dD1bJCh7YXR0cmlidXRlOiExfSldLFJlPVskKHt0eXBlOkJvb2xlYW4sYXR0cmlidXRlOiJzaG93LWNvbHVtbi1maWx0ZXJzIn0pXSxFZT1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LXNlbGVjdGlvbi1jaGVja2JveCJ9KV0sSXQ9WyQoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToidmlydHVhbGl6ZWQifSldLHdzPVskKHt0eXBlOk51bWJlcixhdHRyaWJ1dGU6InZpcnR1YWwtb3ZlcnNjYW4ifSldLFFhPVskKHt0eXBlOlN0cmluZyxhdHRyaWJ1dGU6ImhpZ2hsaWdodC11cGRhdGVzIn0pXSxWcj1bJCh7dHlwZTpOdW1iZXIsYXR0cmlidXRlOiJoaWdobGlnaHQtZHVyYXRpb24ifSldLHlvPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6ImZpeGVkLWhlaWdodCJ9KV0sQmU9WyQoe3R5cGU6U3RyaW5nfSldLGhsPVskKHt0eXBlOlN0cmluZ30pXSxfZT1bJCh7YXR0cmlidXRlOiExfSldLGtzPVtLKCldLFFuPVtLKCldLEpuPVtLKCldLHk3PVtLKCldLGs3PVtLKCldLGZhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+ImhlYWRpbmcxImluIEwsImhhcyIpLGdldDpzKEw9PkwuaGVhZGluZzEsImdldCIpLHNldDpzKChMLGVlKT0+e0wuaGVhZGluZzE9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbixsKSxmYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJoZWFkaW5nMiJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmhlYWRpbmcyLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLmhlYWRpbmcyPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGMscCksZmEodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJkYXRhImluIEwsImhhcyIpLGdldDpzKEw9PkwuZGF0YSwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5kYXRhPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LG0sdiksZmEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+ImtleSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmtleSwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5rZXk9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sYixnKSxmYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJsYWJlbCJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmxhYmVsLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLmxhYmVsPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGssQyksZmEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iZGlzYWJsZWQiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5kaXNhYmxlZCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5kaXNhYmxlZD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxfLHopLGZhKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+InJlcXVpcmVkImluIEwsImhhcyIpLGdldDpzKEw9PkwucmVxdWlyZWQsImdldCIpLHNldDpzKChMLGVlKT0+e0wucmVxdWlyZWQ9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVCxQKSxmYSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJkYXRhTmFtZSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmRhdGFOYW1lLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLmRhdGFOYW1lPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LE0sUyksZmEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJzZWFyY2hhYmxlImluIEwsImhhcyIpLGdldDpzKEw9Pkwuc2VhcmNoYWJsZSwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5zZWFyY2hhYmxlPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEEsRiksZmEodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhQWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iZGF0YUFjdGlvbnMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5kYXRhQWN0aW9ucywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5kYXRhQWN0aW9ucz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxqLEcpLGZhKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+ImNvbHVtbnMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5jb2x1bW5zLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLmNvbHVtbnM9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUixVKSxmYSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3dLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+InJvd0tleSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLnJvd0tleSwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5yb3dLZXk9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sSSxxKSxmYSh0aGlzLG51bGwsY2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24iaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSx1ZSxZKSxmYSh0aGlzLG51bGwsUSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iZGlzcGxheUZ1bmN0aW9uImluIEwsImhhcyIpLGdldDpzKEw9PkwuZGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLmRpc3BsYXlGdW5jdGlvbj1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxKLFopLGZhKHRoaXMsbnVsbCxnZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnJldmVyc2VEaXNwbGF5RnVuY3Rpb249ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sYWUscmUpLGZhKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0YVJvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ic2VsZWN0ZWREYXRhUm93ImluIEwsImhhcyIpLGdldDpzKEw9Pkwuc2VsZWN0ZWREYXRhUm93LCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnNlbGVjdGVkRGF0YVJvdz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxWLEgpLGZhKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dWZXJ0aWNhbExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJzaG93VmVydGljYWxMaW5lcyJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLnNob3dWZXJ0aWNhbExpbmVzLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnNob3dWZXJ0aWNhbExpbmVzPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LHNlLHRlKSxmYSh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93SG9yaXpvbnRhbExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJzaG93SG9yaXpvbnRhbExpbmVzImluIEwsImhhcyIpLGdldDpzKEw9Pkwuc2hvd0hvcml6b250YWxMaW5lcywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5zaG93SG9yaXpvbnRhbExpbmVzPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LE9lLHFlKSxmYSh0aGlzLG51bGwsZHQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ic2hvd0dyaWQiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zaG93R3JpZCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5zaG93R3JpZD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSwkZSxDZSksZmEodGhpcyxudWxsLE1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydEJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJzb3J0QnkiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zb3J0QnksImdldCIpLHNldDpzKChMLGVlKT0+e0wuc29ydEJ5PWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGRlLHZlKSxmYSh0aGlzLG51bGwsQWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJmaWx0ZXJUZXh0ImluIEwsImhhcyIpLGdldDpzKEw9PkwuZmlsdGVyVGV4dCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5maWx0ZXJUZXh0PWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFplLG50KSxmYSh0aGlzLG51bGwsenQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJjb2x1bW5GaWx0ZXJzImluIEwsImhhcyIpLGdldDpzKEw9PkwuY29sdW1uRmlsdGVycywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5jb2x1bW5GaWx0ZXJzPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFRlLHdlKSxmYSh0aGlzLG51bGwsUmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ic2hvd0NvbHVtbkZpbHRlcnMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zaG93Q29sdW1uRmlsdGVycywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5zaG93Q29sdW1uRmlsdGVycz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxmZSxiZSksZmEodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NlbGVjdGlvbkNoZWNrYm94IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJzaG93U2VsZWN0aW9uQ2hlY2tib3giaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zaG93U2VsZWN0aW9uQ2hlY2tib3gsImdldCIpLHNldDpzKChMLGVlKT0+e0wuc2hvd1NlbGVjdGlvbkNoZWNrYm94PWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZ0LG10KSxmYSh0aGlzLG51bGwsSXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXJ0dWFsaXplZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4idmlydHVhbGl6ZWQiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC52aXJ0dWFsaXplZCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC52aXJ0dWFsaXplZD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxYYSxKYSksZmEodGhpcyxudWxsLHdzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlydHVhbE92ZXJzY2FuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJ2aXJ0dWFsT3ZlcnNjYW4iaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC52aXJ0dWFsT3ZlcnNjYW4sImdldCIpLHNldDpzKChMLGVlKT0+e0wudmlydHVhbE92ZXJzY2FuPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFVlLHV0KSxmYSh0aGlzLG51bGwsUWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRVcGRhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJoaWdobGlnaHRVcGRhdGVzImluIEwsImhhcyIpLGdldDpzKEw9PkwuaGlnaGxpZ2h0VXBkYXRlcywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5oaWdobGlnaHRVcGRhdGVzPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LE1yLCRyKSxmYSh0aGlzLG51bGwsVnIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHREdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iaGlnaGxpZ2h0RHVyYXRpb24iaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5oaWdobGlnaHREdXJhdGlvbiwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5oaWdobGlnaHREdXJhdGlvbj1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxEcix4byksZmEodGhpcyxudWxsLHlvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZml4ZWRIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+ImZpeGVkSGVpZ2h0ImluIEwsImhhcyIpLGdldDpzKEw9PkwuZml4ZWRIZWlnaHQsImdldCIpLHNldDpzKChMLGVlKT0+e0wuZml4ZWRIZWlnaHQ9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTGUsU2UpLGZhKHRoaXMsbnVsbCxCZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaE1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+InNlYXJjaE1vZGUiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zZWFyY2hNb2RlLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnNlYXJjaE1vZGU9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0saWEsTXMpLGZhKHRoaXMsbnVsbCxobCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+InNlbGVjdGlvbk1vZGUiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zZWxlY3Rpb25Nb2RlLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnNlbGVjdGlvbk1vZGU9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0seGUsbmUpLGZhKHRoaXMsbnVsbCxfZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSWRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJzZWxlY3RlZElkcyJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLnNlbGVjdGVkSWRzLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnNlbGVjdGVkSWRzPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFdlLFN0KSxmYSh0aGlzLG51bGwsa3Mse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2ZvY3VzZWRDZWxsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJfX2ZvY3VzZWRDZWxsImluIEwsImhhcyIpLGdldDpzKEw9PkwuX19mb2N1c2VkQ2VsbCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5fX2ZvY3VzZWRDZWxsPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGpyLEhpKSxmYSh0aGlzLG51bGwsUW4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2VkaXRpbmdDZWxsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJfX2VkaXRpbmdDZWxsImluIEwsImhhcyIpLGdldDpzKEw9PkwuX19lZGl0aW5nQ2VsbCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5fX2VkaXRpbmdDZWxsPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LHMyLG1sKSxmYSh0aGlzLG51bGwsSm4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2Zsb2F0aW5nQWN0aXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJfX2Zsb2F0aW5nQWN0aXZlImluIEwsImhhcyIpLGdldDpzKEw9PkwuX19mbG9hdGluZ0FjdGl2ZSwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5fX2Zsb2F0aW5nQWN0aXZlPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFk0LHg3KSxmYSh0aGlzLG51bGwseTcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX2ZsYXNoaW5nQ2VsbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+Il9fZmxhc2hpbmdDZWxscyJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLl9fZmxhc2hpbmdDZWxscywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5fX2ZsYXNoaW5nQ2VsbHM9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdzcsTTcpLGZhKHRoaXMsbnVsbCxrNyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9fdmlydHVhbFJhbmdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJfX3ZpcnR1YWxSYW5nZSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLl9fdmlydHVhbFJhbmdlLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLl9fdmlydHVhbFJhbmdlPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFM3LHo3KSxmYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpEfSxudWxsLHQpLEM3PXI9ZS52YWx1ZSxEJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkR9KX1zdGF0aWMgZGVtbz1ubGE7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1pdCh0aGlzLG4sImhlYWRpbmcgMSIpO2dldCBoZWFkaW5nMSgpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nMShEKXt0aGlzLiNlPUR9I3Q9KGl0KHRoaXMsbCksaXQodGhpcyxjLCJoZWFkaW5nIDIiKSk7Z2V0IGhlYWRpbmcyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGhlYWRpbmcyKEQpe3RoaXMuI3Q9RH0jYT0oaXQodGhpcyxwKSxpdCh0aGlzLG0sW10pKTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNhfXNldCBkYXRhKEQpe3RoaXMuI2E9RH0jcj0oaXQodGhpcyx2KSxpdCh0aGlzLGIsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNyfXNldCBrZXkoRCl7dGhpcy4jcj1EfSNzPShpdCh0aGlzLGcpLGl0KHRoaXMsayx2b2lkIDApKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbGFiZWwoRCl7dGhpcy4jcz1EfSNpPShpdCh0aGlzLEMpLGl0KHRoaXMsXywhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNpfXNldCBkaXNhYmxlZChEKXt0aGlzLiNpPUR9I289KGl0KHRoaXMseiksaXQodGhpcyxULCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHJlcXVpcmVkKEQpe3RoaXMuI289RH1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5kYXRhfXNldCB2YWx1ZShEKXt9Y2hhbmdlU3ViamVjdD0oaXQodGhpcyxQKSxuZXcgSHQuc21hcnRyeC5yeGpzLlN1YmplY3QpOyNuPWl0KHRoaXMsTSx2b2lkIDApO2dldCBkYXRhTmFtZSgpe3JldHVybiB0aGlzLiNufXNldCBkYXRhTmFtZShEKXt0aGlzLiNuPUR9I2w9KGl0KHRoaXMsUyksaXQodGhpcyxBLCEwKSk7Z2V0IHNlYXJjaGFibGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2VhcmNoYWJsZShEKXt0aGlzLiNsPUR9I2M9KGl0KHRoaXMsRiksaXQodGhpcyxqLFtdKSk7Z2V0IGRhdGFBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGRhdGFBY3Rpb25zKEQpe3RoaXMuI2M9RH0jZD0oaXQodGhpcyxHKSxpdCh0aGlzLFIsW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNkfXNldCBjb2x1bW5zKEQpe3RoaXMuI2Q9RH0jdT0oaXQodGhpcyxVKSxpdCh0aGlzLEksdm9pZCAwKSk7Z2V0IHJvd0tleSgpe3JldHVybiB0aGlzLiN1fXNldCByb3dLZXkoRCl7dGhpcy4jdT1EfSNwPShpdCh0aGlzLHEpLGl0KHRoaXMsdWUsITEpKTtnZXQgYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4jcH1zZXQgYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24oRCl7dGhpcy4jcD1EfSNmPShpdCh0aGlzLFkpLGl0KHRoaXMsSixEPT5EKSk7Z2V0IGRpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNmfXNldCBkaXNwbGF5RnVuY3Rpb24oRCl7dGhpcy4jZj1EfSNoPShpdCh0aGlzLFopLGl0KHRoaXMsYWUsRD0+RCkpO2dldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oRCl7dGhpcy4jaD1EfSNtPShpdCh0aGlzLHJlKSxpdCh0aGlzLFYsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkRGF0YVJvdygpe3JldHVybiB0aGlzLiNtfXNldCBzZWxlY3RlZERhdGFSb3coRCl7dGhpcy4jbT1EfSNnPShpdCh0aGlzLEgpLGl0KHRoaXMsc2UsITEpKTtnZXQgc2hvd1ZlcnRpY2FsTGluZXMoKXtyZXR1cm4gdGhpcy4jZ31zZXQgc2hvd1ZlcnRpY2FsTGluZXMoRCl7dGhpcy4jZz1EfSNiPShpdCh0aGlzLHRlKSxpdCh0aGlzLE9lLCExKSk7Z2V0IHNob3dIb3Jpem9udGFsTGluZXMoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2hvd0hvcml6b250YWxMaW5lcyhEKXt0aGlzLiNiPUR9I3Y9KGl0KHRoaXMscWUpLGl0KHRoaXMsJGUsITApKTtnZXQgc2hvd0dyaWQoKXtyZXR1cm4gdGhpcy4jdn1zZXQgc2hvd0dyaWQoRCl7dGhpcy4jdj1EfWZpbGVzPShpdCh0aGlzLENlKSxbXSk7ZmlsZVdlYWtNYXA9bmV3IFdlYWtNYXA7ZGF0YUNoYW5nZVN1YmplY3Q9bmV3IEh0LnNtYXJ0cngucnhqcy5TdWJqZWN0OyN4PWl0KHRoaXMsZGUsW10pO2dldCBzb3J0QnkoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc29ydEJ5KEQpe3RoaXMuI3g9RH0jeT0oaXQodGhpcyx2ZSksaXQodGhpcyxaZSwiIikpO2dldCBmaWx0ZXJUZXh0KCl7cmV0dXJuIHRoaXMuI3l9c2V0IGZpbHRlclRleHQoRCl7dGhpcy4jeT1EfSN3PShpdCh0aGlzLG50KSxpdCh0aGlzLFRlLHt9KSk7Z2V0IGNvbHVtbkZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jd31zZXQgY29sdW1uRmlsdGVycyhEKXt0aGlzLiN3PUR9I009KGl0KHRoaXMsd2UpLGl0KHRoaXMsZmUsITEpKTtnZXQgc2hvd0NvbHVtbkZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jTX1zZXQgc2hvd0NvbHVtbkZpbHRlcnMoRCl7dGhpcy4jTT1EfSNrPShpdCh0aGlzLGJlKSxpdCh0aGlzLGZ0LCExKSk7Z2V0IHNob3dTZWxlY3Rpb25DaGVja2JveCgpe3JldHVybiB0aGlzLiNrfXNldCBzaG93U2VsZWN0aW9uQ2hlY2tib3goRCl7dGhpcy4jaz1EfSNTPShpdCh0aGlzLG10KSxpdCh0aGlzLFhhLCExKSk7Z2V0IHZpcnR1YWxpemVkKCl7cmV0dXJuIHRoaXMuI1N9c2V0IHZpcnR1YWxpemVkKEQpe3RoaXMuI1M9RH0jej0oaXQodGhpcyxKYSksaXQodGhpcyxVZSw4KSk7Z2V0IHZpcnR1YWxPdmVyc2Nhbigpe3JldHVybiB0aGlzLiN6fXNldCB2aXJ0dWFsT3ZlcnNjYW4oRCl7dGhpcy4jej1EfSNDPShpdCh0aGlzLHV0KSxpdCh0aGlzLE1yLCJub25lIikpO2dldCBoaWdobGlnaHRVcGRhdGVzKCl7cmV0dXJuIHRoaXMuI0N9c2V0IGhpZ2hsaWdodFVwZGF0ZXMoRCl7dGhpcy4jQz1EfSNfPShpdCh0aGlzLCRyKSxpdCh0aGlzLERyLDkwMCkpO2dldCBoaWdobGlnaHREdXJhdGlvbigpe3JldHVybiB0aGlzLiNffXNldCBoaWdobGlnaHREdXJhdGlvbihEKXt0aGlzLiNfPUR9I1Q9KGl0KHRoaXMseG8pLGl0KHRoaXMsTGUsITEpKTtnZXQgZml4ZWRIZWlnaHQoKXtyZXR1cm4gdGhpcy4jVH1zZXQgZml4ZWRIZWlnaHQoRCl7dGhpcy4jVD1EfSNMPShpdCh0aGlzLFNlKSxpdCh0aGlzLGlhLCJ0YWJsZSIpKTtnZXQgc2VhcmNoTW9kZSgpe3JldHVybiB0aGlzLiNMfXNldCBzZWFyY2hNb2RlKEQpe3RoaXMuI0w9RH1fX3NlYXJjaFRleHRTdWI9aXQodGhpcyxNcyk7X19zZWFyY2hNb2RlU3ViOyMkPWl0KHRoaXMseGUsIm5vbmUiKTtnZXQgc2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLiMkfXNldCBzZWxlY3Rpb25Nb2RlKEQpe3RoaXMuIyQ9RH0jRD0oaXQodGhpcyxuZSksaXQodGhpcyxXZSxuZXcgU2V0KSk7Z2V0IHNlbGVjdGVkSWRzKCl7cmV0dXJuIHRoaXMuI0R9c2V0IHNlbGVjdGVkSWRzKEQpe3RoaXMuI0Q9RH1fcm93SWRNYXA9KGl0KHRoaXMsU3QpLG5ldyBXZWFrTWFwKTtfcm93SWRDb3VudGVyPTA7X19zZWxlY3Rpb25BbmNob3JJZDsjQT1pdCh0aGlzLGpyLHZvaWQgMCk7Z2V0IF9fZm9jdXNlZENlbGwoKXtyZXR1cm4gdGhpcy4jQX1zZXQgX19mb2N1c2VkQ2VsbChEKXt0aGlzLiNBPUR9I1A9KGl0KHRoaXMsSGkpLGl0KHRoaXMsczIsdm9pZCAwKSk7Z2V0IF9fZWRpdGluZ0NlbGwoKXtyZXR1cm4gdGhpcy4jUH1zZXQgX19lZGl0aW5nQ2VsbChEKXt0aGlzLiNQPUR9I0U9KGl0KHRoaXMsbWwpLGl0KHRoaXMsWTQsITEpKTtnZXQgX19mbG9hdGluZ0FjdGl2ZSgpe3JldHVybiB0aGlzLiNFfXNldCBfX2Zsb2F0aW5nQWN0aXZlKEQpe3RoaXMuI0U9RH0jST0oaXQodGhpcyx4NyksaXQodGhpcyx3NyxuZXcgTWFwKSk7Z2V0IF9fZmxhc2hpbmdDZWxscygpe3JldHVybiB0aGlzLiNJfXNldCBfX2ZsYXNoaW5nQ2VsbHMoRCl7dGhpcy4jST1EfV9fcHJldlNuYXBzaG90PWl0KHRoaXMsTTcpO19fZmxhc2hDbGVhclRpbWVyO19fZmxhc2hUaWNrPTA7X19mbGFzaFdhcm5lZE5vUm93S2V5PSExO19fbWVtb0VmZmVjdGl2ZUNvbHM7X19tZW1vVmlld0RhdGE7X19jb2x1bW5zU2l6ZWRGb3I7X19yb3dIZWlnaHQ9MzY7X19yb3dIZWlnaHRNZWFzdXJlZD0hMTsjTj1pdCh0aGlzLFM3LHtzdGFydDowLGVuZDowfSk7Z2V0IF9fdmlydHVhbFJhbmdlKCl7cmV0dXJuIHRoaXMuI059c2V0IF9fdmlydHVhbFJhbmdlKEQpe3RoaXMuI049RH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5oYXNBdHRyaWJ1dGUoInRhYmluZGV4Iil8fHRoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX19oYW5kbGVIb3N0S2V5ZG93bil9X19oYW5kbGVIb3N0S2V5ZG93bj0oaXQodGhpcyx6NyksRD0+e2xldCBMPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sZWU9ITE7Zm9yKGxldCBJZSBvZiBMKXtsZXQgR2U9SWU/LnRhZ05hbWU7aWYoR2U9PT0iSU5QVVQifHxHZT09PSJURVhUQVJFQSJ8fEllPy5pc0NvbnRlbnRFZGl0YWJsZSl7ZWU9ITA7YnJlYWt9fWlmKChELm1ldGFLZXl8fEQuY3RybEtleSkmJihELmtleT09PSJjInx8RC5rZXk9PT0iQyIpKXtpZihlZSlyZXR1cm47bGV0IEllPVtdO2lmKHRoaXMuc2VsZWN0ZWRJZHMuc2l6ZT4wKWZvcihsZXQgR2Ugb2YgdGhpcy5kYXRhKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoR2UpKSYmSWUucHVzaChHZSk7ZWxzZSB0aGlzLnNlbGVjdGVkRGF0YVJvdyYmSWUucHVzaCh0aGlzLnNlbGVjdGVkRGF0YVJvdyk7aWYoSWUubGVuZ3RoPT09MClyZXR1cm47RC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX193cml0ZVJvd3NBc0pzb24oSWUpO3JldHVybn1pZighKGVlfHx0aGlzLl9fZWRpdGluZ0NlbGwpKXN3aXRjaChELmtleSl7Y2FzZSJBcnJvd0xlZnQiOkQucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgtMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1JpZ2h0IjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMSwwLCExKTtyZXR1cm47Y2FzZSJBcnJvd1VwIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwtMSwhMSk7cmV0dXJuO2Nhc2UiQXJyb3dEb3duIjpELnByZXZlbnREZWZhdWx0KCksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwxLCExKTtyZXR1cm47Y2FzZSJFbnRlciI6Y2FzZSJGMiI6e2lmKCF0aGlzLl9fZm9jdXNlZENlbGwpcmV0dXJuO2xldCBHZT0odGhpcy5fbGFzdFZpZXdEYXRhPz9bXSkuZmluZCh4dD0+dGhpcy5nZXRSb3dJZCh4dCk9PT10aGlzLl9fZm9jdXNlZENlbGwucm93SWQpO2lmKCFHZSlyZXR1cm47bGV0IGF0PXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZCh4dD0+U3RyaW5nKHh0LmtleSk9PT10aGlzLl9fZm9jdXNlZENlbGwuY29sS2V5KTtpZighYXR8fCF0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShhdCkpcmV0dXJuO0QucHJldmVudERlZmF1bHQoKSx0aGlzLnN0YXJ0RWRpdGluZyhHZSxhdCk7cmV0dXJufWNhc2UiRXNjYXBlIjp0aGlzLl9fZm9jdXNlZENlbGwmJih0aGlzLl9fZm9jdXNlZENlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtyZXR1cm47ZGVmYXVsdDpyZXR1cm59fSk7Y29weVNlbGVjdGlvbkFzSnNvbihEKXtsZXQgTD1bXTtpZih0aGlzLnNlbGVjdGVkSWRzLnNpemU+MClmb3IobGV0IGVlIG9mIHRoaXMuZGF0YSl0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKGVlKSkmJkwucHVzaChlZSk7ZWxzZSBEP0wucHVzaChEKTp0aGlzLnNlbGVjdGVkRGF0YVJvdyYmTC5wdXNoKHRoaXMuc2VsZWN0ZWREYXRhUm93KTtMLmxlbmd0aCE9PTAmJnRoaXMuX193cml0ZVJvd3NBc0pzb24oTCl9X193cml0ZVJvd3NBc0pzb24oRCl7dHJ5e2xldCBMPUpTT04uc3RyaW5naWZ5KEQsbnVsbCwyKTtuYXZpZ2F0b3IuY2xpcGJvYXJkPy53cml0ZVRleHQoTCl9Y2F0Y2h7fX1zdGF0aWMgc3R5bGVzPWNsYTtfX2dldERpc3BsYXlGdW5jdGlvblNoYXBlS2V5KCl7aWYoIXRoaXMuZGF0YXx8dGhpcy5kYXRhLmxlbmd0aD09PTApcmV0dXJuIiI7bGV0IEQ9dGhpcy5kaXNwbGF5RnVuY3Rpb24odGhpcy5kYXRhWzBdKT8/e307cmV0dXJuIE9iamVjdC5rZXlzKEQpLmpvaW4oIlwwIil9X19nZXRFZmZlY3RpdmVDb2x1bW5zKCl7bGV0IEQ9QXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPjAsTD0hRHx8dGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj90aGlzLl9fZ2V0RGlzcGxheUZ1bmN0aW9uU2hhcGVLZXkoKToiIixlZT10aGlzLl9fbWVtb0VmZmVjdGl2ZUNvbHM7aWYoZWUmJmVlLmNvbHVtbnM9PT10aGlzLmNvbHVtbnMmJmVlLmF1Z21lbnQ9PT10aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uJiZlZS5kaXNwbGF5RnVuY3Rpb249PT10aGlzLmRpc3BsYXlGdW5jdGlvbiYmZWUuZGlzcGxheVNoYXBlS2V5PT09TClyZXR1cm4gZWUub3V0O2xldCBEZT1EP3VsYSh0aGlzLmNvbHVtbnMsdGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbix0aGlzLmRpc3BsYXlGdW5jdGlvbix0aGlzLmRhdGEpOmFRZSh0aGlzLmRpc3BsYXlGdW5jdGlvbix0aGlzLmRhdGEpO3JldHVybiB0aGlzLl9fbWVtb0VmZmVjdGl2ZUNvbHM9e2NvbHVtbnM6dGhpcy5jb2x1bW5zLGF1Z21lbnQ6dGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbixkaXNwbGF5RnVuY3Rpb246dGhpcy5kaXNwbGF5RnVuY3Rpb24sZGlzcGxheVNoYXBlS2V5Okwsb3V0OkRlfSxEZX1fX2dldFZpZXdEYXRhKEQpe2xldCBMPXRoaXMuc2VhcmNoTW9kZT09PSJkYXRhIj8iZGF0YSI6InRhYmxlIixlZT10aGlzLl9fbWVtb1ZpZXdEYXRhO2lmKGVlJiZlZS5kYXRhPT09dGhpcy5kYXRhJiZlZS5zb3J0Qnk9PT10aGlzLnNvcnRCeSYmZWUuZmlsdGVyVGV4dD09PXRoaXMuZmlsdGVyVGV4dCYmZWUuY29sdW1uRmlsdGVycz09PXRoaXMuY29sdW1uRmlsdGVycyYmZWUuc2VhcmNoTW9kZT09PUwmJmVlLmVmZmVjdGl2ZUNvbHVtbnM9PT1EKXJldHVybiBlZS5vdXQ7bGV0IERlPWhsYSh0aGlzLmZpbHRlclRleHQsTCxEKSxJZT1wbGEodGhpcy5kYXRhLEQsdGhpcy5zb3J0QnksdGhpcy5maWx0ZXJUZXh0LHRoaXMuY29sdW1uRmlsdGVycyxMLERlfHx2b2lkIDApO3JldHVybiB0aGlzLl9fbWVtb1ZpZXdEYXRhPXtkYXRhOnRoaXMuZGF0YSxzb3J0Qnk6dGhpcy5zb3J0QnksZmlsdGVyVGV4dDp0aGlzLmZpbHRlclRleHQsY29sdW1uRmlsdGVyczp0aGlzLmNvbHVtbkZpbHRlcnMsc2VhcmNoTW9kZTpMLGVmZmVjdGl2ZUNvbHVtbnM6RCxvdXQ6SWV9LEllfXJlbmRlcigpe2xldCBEPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksTD10aGlzLl9fZ2V0Vmlld0RhdGEoRCksZWU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaGVhZGVyIiksRGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiZm9vdGVyIiksSWU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKTt0aGlzLl9sYXN0Vmlld0RhdGE9TDtsZXQgR2U9dGhpcy52aXJ0dWFsaXplZCYmTC5sZW5ndGg+MCx0dD1MLGF0PTAseHQ9MCxnYT0wO2lmKEdlKXtsZXQgd3Q9dGhpcy5fX3ZpcnR1YWxSYW5nZSxucz1NYXRoLm1heCgwLHd0LnN0YXJ0KSx3bz1NYXRoLm1pbihMLmxlbmd0aCx3dC5lbmR8fDApLFVyPXdvPjA/d286TWF0aC5taW4oTC5sZW5ndGgsdGhpcy52aXJ0dWFsT3ZlcnNjYW4qMisxNik7YXQ9bnMsdHQ9TC5zbGljZShucyxVcikseHQ9bnMqdGhpcy5fX3Jvd0hlaWdodCxnYT1NYXRoLm1heCgwLEwubGVuZ3RoLVVyKSp0aGlzLl9fcm93SGVpZ2h0fXJldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdDb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIGhlYWRpbmcxIj4ke3RoaXMubGFiZWx8fHRoaXMuaGVhZGluZzF9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzIiPiR7dGhpcy5oZWFkaW5nMn08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyQWN0aW9ucyI+CiAgICAgICAgICAgICR7ZWUubWFwKHd0PT53YDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJoZWFkZXJBY3Rpb24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3d0LmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3d0Lmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHt3dC5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAke3d0Lm5hbWV9YDp3dC5uYW1lfQogICAgICAgICAgICAgIDwvZGl2PmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ1NlcGFyYXRpb24iPjwvZGl2PgogICAgICAgICR7dGhpcy5oaWdobGlnaHRVcGRhdGVzPT09ImZsYXNoIiYmIXRoaXMucm93S2V5P3dgPGRpdiBjbGFzcz0iZmxhc2hDb25maWdXYXJuaW5nIiByb2xlPSJhbGVydCI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGNvZGU+aGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIjwvY29kZT4gcmVxdWlyZXMKICAgICAgICAgICAgICAgIDxjb2RlPnJvd0tleTwvY29kZT4gdG8gYmUgc2V0LiBGbGFzaCBpcyBkaXNhYmxlZC4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmA6d2BgfQogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEdyaWQgaGlkZGVuIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Imx1Y2VuZSBzeW50YXggc2VhcmNoIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7YAogICAgICAgICAgICAgIFlvdSBjYW4gdXNlIHRoZSBsdWNlbmUgc3ludGF4IHRvIHNlYXJjaCBmb3IgZGF0YSwgZS5nLjoKCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7InNlYXJjaCBtb2RlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbInRhYmxlIiwiZGF0YSIsInNlcnZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidGFibGUifQogICAgICAgICAgICAuaW5mb1RleHQ9JHtgCiAgICAgICAgICAgICAgVGhlcmUgYXJlIHRocmVlIGJhc2ljIG1vZGVzOgoKICAgICAgICAgICAgICAqIHRhYmxlOiBvbmx5IHNlYXJjaGVzIGRhdGEgYWxyZWFkeSBpbiB0aGUgdGFibGUKICAgICAgICAgICAgICAqIGRhdGE6IHNlYXJjaGVzIG9yaWdpbmFsIGRhdGEsIGlnbm9yaW5nIHRhYmxlIHRyYW5zZm9ybXMKICAgICAgICAgICAgICAqIHNlcnZlcjogc2VhcmNoZXMgZGF0YSBvbiB0aGUgc2VydmVyCgogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckhlYWRlclJvd3MoRCl9CiAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgPHRib2R5CiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuX19vblRib2R5Q2xpY2t9CiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0ke3RoaXMuX19vblRib2R5RGJsY2xpY2t9CiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLl9fb25UYm9keU1vdXNlZG93bn0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7dGhpcy5fX29uVGJvZHlDb250ZXh0bWVudX0KICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke3RoaXMuX19vblRib2R5RHJhZ2VudGVyfQogICAgICAgICAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fX29uVGJvZHlEcmFnbGVhdmV9CiAgICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuX19vblRib2R5RHJhZ292ZXJ9CiAgICAgICAgICAgICAgICAgIEBkcm9wPSR7dGhpcy5fX29uVGJvZHlEcm9wfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0dlJiZ4dD4wP3dgPHRyIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iaGVpZ2h0OiR7eHR9cHgiPjx0ZD48L3RkPjwvdHI+YDp3YGB9CiAgICAgICAgICAgICAgICAgICR7Sm8ucmVwZWF0KHR0LHd0PT50aGlzLmdldFJvd0lkKHd0KSwod3QsbnMpPT57bGV0IHdvPWF0K25zLFVyPXRoaXMuZ2V0Um93SWQod3QpLEhvPXRoaXMuX19mbGFzaGluZ0NlbGxzLmdldChVcik7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb3ctaWR4PSR7d299CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSIke3d0PT09dGhpcy5zZWxlY3RlZERhdGFSb3d8fHRoaXMuaXNSb3dTZWxlY3RlZCh3dCk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKHd0KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtRdD0+e1F0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQod3QsUXQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDp3YGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7RC5maWx0ZXIoUXQ9PiFRdC5oaWRkZW4pLm1hcCgoUXQsaTIpPT57bGV0IHFpPUM0KHd0LFF0LHRoaXMuZGlzcGxheUZ1bmN0aW9uKSxnaT1RdC5yZW5kZXJlcj9RdC5yZW5kZXJlcihxaSx3dCx7cm93SW5kZXg6d28sY29sSW5kZXg6aTIsY29sdW1uOlF0fSk6cWksZTE9U3RyaW5nKFF0LmtleSksR2hhPSEhKFF0LmVkaXRhYmxlfHxRdC5lZGl0b3IpLFloYT10aGlzLl9fZm9jdXNlZENlbGw/LnJvd0lkPT09VXImJnRoaXMuX19mb2N1c2VkQ2VsbD8uY29sS2V5PT09ZTEsSGllPXRoaXMuX19lZGl0aW5nQ2VsbD8ucm93SWQ9PT1VciYmdGhpcy5fX2VkaXRpbmdDZWxsPy5jb2xLZXk9PT1lMSxXdHQ9SG8/LmdldChlMSkscWllPVd0dCE9PXZvaWQgMCxLaGE9cWllJiYhIVF0LmZsYXNoQm9yZGVyLFpoYT1bR2hhPyJlZGl0YWJsZSI6IiIsWWhhJiYhSGllPyJmb2N1c2VkIjoiIixIaWU/ImVkaXRpbmdDZWxsIjoiIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKSxHdHQ9d2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7cWllP0toYT8iaW5uZXJDZWxsQ29udGFpbmVyIGZsYXNoaW5nLWJvcmRlciI6ImlubmVyQ2VsbENvbnRhaW5lciBmbGFzaGluZyI6ImlubmVyQ2VsbENvbnRhaW5lciJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7SGllP3RoaXMucmVuZGVyQ2VsbEVkaXRvcih3dCxRdCk6Z2l9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ke1poYX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWNvbC1rZXk9JHtlMX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7cWllP0pvLmtleWVkKGAke1VyfToke2UxfToke1d0dH1gLEd0dCk6R3R0fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICAgICAgICAgICAgICAkeygoKT0+e2lmKEllLmxlbmd0aD4wKXJldHVybiB3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImFjdGlvbnNDb2wiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnNDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtJZS5tYXAoUXQ9PndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImFjdGlvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT5RdC5hY3Rpb25GdW5jKHtpdGVtOnd0LHRhYmxlOnRoaXN9KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke1F0Lmljb25OYW1lP3dgIDxkZWVzLWljb24gLmljb249JHtRdC5pY29uTmFtZX0+PC9kZWVzLWljb24+IGA6UXQubmFtZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfSkoKX0KICAgICAgICAgICAgICAgICAgICAgIDwvdHI+YH0pfQogICAgICAgICAgICAgICAgICAke0dlJiZnYT4wP3dgPHRyIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iaGVpZ2h0OiR7Z2F9cHgiPjx0ZD48L3RkPjwvdHI+YDp3YGB9CiAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxvYXRpbmdIZWFkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICAgICAgICR7dGhpcy5fX2Zsb2F0aW5nQWN0aXZlP3dgPHRhYmxlPgogICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVySGVhZGVyUm93cyhEKX0KICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5gOndgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YCA8ZGl2IGNsYXNzPSJub0RhdGFTZXQiPk5vIGRhdGEgc2V0ITwvZGl2PiBgfQogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlU3RhdGlzdGljcyI+CiAgICAgICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aH0gJHt0aGlzLmRhdGFOYW1lfHwiZGF0YSByb3dzIn0gKHRvdGFsKSB8CiAgICAgICAgICAgICR7dGhpcy5zZWxlY3RlZERhdGFSb3c/YCMgJHt0aGlzLmRhdGEuaW5kZXhPZih0aGlzLnNlbGVjdGVkRGF0YVJvdykrMX1gOiJObyJ9CiAgICAgICAgICAgIHNlbGVjdGVkCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckFjdGlvbnMiPgogICAgICAgICAgICAke0RlLm1hcCh3dD0+d2A8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iZm9vdGVyQWN0aW9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt3dC5hY3Rpb25GdW5jKHtpdGVtOnRoaXMuc2VsZWN0ZWREYXRhUm93LHRhYmxlOnRoaXN9KX19CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHt3dC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb25TaXplPSR7MTR9IC5pY29uPSR7d3QuaWNvbk5hbWV9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgJHt3dC5uYW1lfWA6d3QubmFtZX0KICAgICAgICAgICAgICA8L2Rpdj5gKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVySGVhZGVyUm93cyhEKXtyZXR1cm4gd2AKICAgICAgPHRyPgogICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2AKICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSI/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuYXJlQWxsVmlzaWJsZVNlbGVjdGVkKCl9CiAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRldGVybWluYXRlPSR7dGhpcy5pc1Zpc2libGVTZWxlY3Rpb25JbmRldGVybWluYXRlKCl9CiAgICAgICAgICAgICAgICAgICAgICAgIEBuZXdWYWx1ZT0ke0w9PntMLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0U2VsZWN0VmlzaWJsZShMLmRldGFpbD09PSEwKX19CiAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgIGA6d2BgfQogICAgICAgICR7RC5maWx0ZXIoTD0+IUwuaGlkZGVuKS5tYXAoTD0+e2xldCBlZT1MLnNvcnRhYmxlIT09ITEsRGU9dGhpcy5nZXRBcmlhU29ydChMKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8dGgKICAgICAgICAgICAgICAgIHJvbGU9ImNvbHVtbmhlYWRlciIKICAgICAgICAgICAgICAgIGFyaWEtc29ydD0ke0RlfQogICAgICAgICAgICAgICAgc3R5bGU9IiR7ZWU/ImN1cnNvcjogcG9pbnRlcjsiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke0llPT5lZT90aGlzLmhhbmRsZUhlYWRlckNsaWNrKEllLEwsRCk6bnVsbH0KICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke0llPT5lZT90aGlzLm9wZW5IZWFkZXJDb250ZXh0TWVudShJZSxMLEQpOm51bGx9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtMLmhlYWRlcj8/TC5rZXl9CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihMKX0KICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAke3RoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjA/d2A8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPmA6d2BgfQogICAgICA8L3RyPgogICAgICAke3RoaXMuc2hvd0NvbHVtbkZpbHRlcnM/d2A8dHIgY2xhc3M9ImZpbHRlcnNSb3ciPgogICAgICAgICAgICAke3RoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94P3dgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyI+PC90aD5gOndgYH0KICAgICAgICAgICAgJHtELmZpbHRlcihMPT4hTC5oaWRkZW4pLm1hcChMPT57bGV0IGVlPVN0cmluZyhMLmtleSk7cmV0dXJuIEwuZmlsdGVyYWJsZT09PSExP3dgPHRoPjwvdGg+YDp3YDx0aD4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJGaWx0ZXIuLi4iIGRhdGEtY29sLWtleT0ke2VlfSAudmFsdWU9JHt0aGlzLmNvbHVtbkZpbHRlcnNbZWVdfHwiIn0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtEZT0+dGhpcy5zZXRDb2x1bW5GaWx0ZXIoZWUsRGUudGFyZ2V0LnZhbHVlKX0gLz4KICAgICAgICAgICAgICAgIDwvdGg+YH0pfQogICAgICAgICAgICAke3RoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjA/d2A8dGg+PC90aD5gOndgYH0KICAgICAgICAgIDwvdHI+YDp3YGB9CiAgICBgfV9fZmxvYXRpbmdSZXNpemVPYnNlcnZlcjtfX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcjtfX3Njcm9sbEFuY2VzdG9ycz1bXTtnZXQgX19mbG9hdGluZ0hlYWRlckVsKCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZsb2F0aW5nSGVhZGVyIik/P251bGx9Z2V0IF9fcmVhbFRhYmxlRWwoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFibGVTY3JvbGwgPiB0YWJsZSIpPz9udWxsfWdldCBfX2Zsb2F0aW5nVGFibGVFbCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mbG9hdGluZ0hlYWRlciA+IHRhYmxlIik/P251bGx9X19jb2xsZWN0U2Nyb2xsQW5jZXN0b3JzKCl7bGV0IEQ9W10sTD10aGlzLGVlPXMoRGU9PkRlPT09ImF1dG8ifHxEZT09PSJzY3JvbGwifHxEZT09PSJvdmVybGF5Iiwic2Nyb2xsaXNoIik7Zm9yKDtMOyl7aWYoTCBpbnN0YW5jZW9mIEVsZW1lbnQpe2xldCBJZT1nZXRDb21wdXRlZFN0eWxlKEwpLEdlPWVlKEllLm92ZXJmbG93WSksdHQ9ZWUoSWUub3ZlcmZsb3dYKTsoR2V8fHR0KSYmRC5wdXNoKHt0YXJnZXQ6TCxzY3JvbGxzWTpHZSxzY3JvbGxzWDp0dH0pfWxldCBEZT1MLmFzc2lnbmVkU2xvdD9MLmFzc2lnbmVkU2xvdDpMLnBhcmVudE5vZGU7RGU/TD1EZTpMLmhvc3Q/TD1MLmhvc3Q6TD1udWxsfXJldHVybiBELnB1c2goe3RhcmdldDp3aW5kb3csc2Nyb2xsc1k6ITAsc2Nyb2xsc1g6ITB9KSxEfV9fZ2V0U3RpY2tDb250ZXh0KCl7bGV0IEQ9MCxMPTAsZWU9d2luZG93LmlubmVyV2lkdGg7Zm9yKGxldCBEZSBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKXtpZihEZS50YXJnZXQ9PT13aW5kb3cpY29udGludWU7bGV0IEllPURlLnRhcmdldCxHZT1JZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0dD1nZXRDb21wdXRlZFN0eWxlKEllKTtpZihEZS5zY3JvbGxzWSl7bGV0IGF0PXBhcnNlRmxvYXQodHQuYm9yZGVyVG9wV2lkdGgpfHwwO0Q9TWF0aC5tYXgoRCxHZS50b3ArYXQpfWlmKERlLnNjcm9sbHNYKXtsZXQgYXQ9cGFyc2VGbG9hdCh0dC5ib3JkZXJMZWZ0V2lkdGgpfHwwLHh0PXBhcnNlRmxvYXQodHQuYm9yZGVyUmlnaHRXaWR0aCl8fDA7TD1NYXRoLm1heChMLEdlLmxlZnQrYXQpLGVlPU1hdGgubWluKGVlLEdlLnJpZ2h0LXh0KX19cmV0dXJue3RvcDpELGxlZnQ6TCxyaWdodDplZX19c2V0dXBGbG9hdGluZ0hlYWRlcigpe2lmKHRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpLHRoaXMuZml4ZWRIZWlnaHQmJiF0aGlzLnZpcnR1YWxpemVkKXJldHVybjtsZXQgRD10aGlzLl9fcmVhbFRhYmxlRWw7aWYoIUQpcmV0dXJuO3RoaXMuX19zY3JvbGxBbmNlc3RvcnM9dGhpcy5fX2NvbGxlY3RTY3JvbGxBbmNlc3RvcnMoKTtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCIpO0wmJnRoaXMuX19zY3JvbGxBbmNlc3RvcnMudW5zaGlmdCh7dGFyZ2V0Okwsc2Nyb2xsc1k6dGhpcy5maXhlZEhlaWdodCxzY3JvbGxzWDohMH0pLHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuZml4ZWRIZWlnaHR8fHRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnZpcnR1YWxpemVkJiZ0aGlzLl9fY29tcHV0ZVZpcnR1YWxSYW5nZSgpfSksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShEKSx0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyPSgpPT57dGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9O2ZvcihsZXQgZWUgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyllZS50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcix7cGFzc2l2ZTohMH0pLHRoaXMuZml4ZWRIZWlnaHR8fHRoaXMuX19zeW5jRmxvYXRpbmdIZWFkZXIoKSx0aGlzLnZpcnR1YWxpemVkJiZ0aGlzLl9fY29tcHV0ZVZpcnR1YWxSYW5nZSgpfXRlYXJkb3duRmxvYXRpbmdIZWFkZXIoKXtpZih0aGlzLl9fZmxvYXRpbmdSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPXZvaWQgMCx0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyKXtmb3IobGV0IEwgb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycylMLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXI9dm9pZCAwfXRoaXMuX19zY3JvbGxBbmNlc3RvcnM9W10sdGhpcy5fX2Zsb2F0aW5nQWN0aXZlPSExO2xldCBEPXRoaXMuX19mbG9hdGluZ0hlYWRlckVsO0QmJkQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIil9X190cmFuc2ZlckZvY3VzVG9SZWFsSGVhZGVyKCl7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7aWYoIUQpcmV0dXJuO2xldCBMPXRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudDtpZighTHx8IUQuY29udGFpbnMoTCkpcmV0dXJuO2xldCBlZT1MLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2wta2V5Iik7aWYoIWVlKXJldHVybjtsZXQgRGU9TCxJZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50YWJsZVNjcm9sbCA+IHRhYmxlID4gdGhlYWQgaW5wdXRbZGF0YS1jb2wta2V5PSIke0NTUy5lc2NhcGUoZWUpfSJdYCk7aWYoIUllfHxJZT09PURlKXJldHVybjtsZXQgR2U9RGUuc2VsZWN0aW9uU3RhcnQsdHQ9RGUuc2VsZWN0aW9uRW5kLGF0PURlLnNlbGVjdGlvbkRpcmVjdGlvbjtJZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pO3RyeXtHZSE9bnVsbCYmdHQhPW51bGwmJkllLnNldFNlbGVjdGlvblJhbmdlKEdlLHR0LGF0fHx2b2lkIDApfWNhdGNoe319X190cmFuc2ZlckZvY3VzVG9GbG9hdGluZ0hlYWRlcigpe2xldCBEPXRoaXMuX19mbG9hdGluZ0hlYWRlckVsO2lmKCFEfHwhdGhpcy5fX2Zsb2F0aW5nQWN0aXZlKXJldHVybjtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ7aWYoIUwpcmV0dXJuO2xldCBlZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCA+IHRhYmxlID4gdGhlYWQiKTtpZighZWV8fCFlZS5jb250YWlucyhMKSlyZXR1cm47bGV0IERlPUwuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbC1rZXkiKTtpZighRGUpcmV0dXJuO2xldCBJZT1MLEdlPUQucXVlcnlTZWxlY3RvcihgaW5wdXRbZGF0YS1jb2wta2V5PSIke0NTUy5lc2NhcGUoRGUpfSJdYCk7aWYoIUdlfHxHZT09PUllKXJldHVybjtsZXQgdHQ9SWUuc2VsZWN0aW9uU3RhcnQsYXQ9SWUuc2VsZWN0aW9uRW5kLHh0PUllLnNlbGVjdGlvbkRpcmVjdGlvbjtHZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pO3RyeXt0dCE9bnVsbCYmYXQhPW51bGwmJkdlLnNldFNlbGVjdGlvblJhbmdlKHR0LGF0LHh0fHx2b2lkIDApfWNhdGNoe319X19jb21wdXRlVmlydHVhbFJhbmdlKCl7aWYoIXRoaXMudmlydHVhbGl6ZWQpcmV0dXJuO2xldCBMPSh0aGlzLl9sYXN0Vmlld0RhdGE/P1tdKS5sZW5ndGg7aWYoTD09PTApeyh0aGlzLl9fdmlydHVhbFJhbmdlLnN0YXJ0IT09MHx8dGhpcy5fX3ZpcnR1YWxSYW5nZS5lbmQhPT0wKSYmKHRoaXMuX192aXJ0dWFsUmFuZ2U9e3N0YXJ0OjAsZW5kOjB9KTtyZXR1cm59bGV0IGVlPXRoaXMuX19yZWFsVGFibGVFbDtpZighZWUpcmV0dXJuO2xldCBEZT1lZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJZT0wLEdlPXdpbmRvdy5pbm5lckhlaWdodDtmb3IobGV0IFF0IG9mIHRoaXMuX19zY3JvbGxBbmNlc3RvcnMpe2lmKFF0LnRhcmdldD09PXdpbmRvd3x8IVF0LnNjcm9sbHNZKWNvbnRpbnVlO2xldCBpMj1RdC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscWk9Z2V0Q29tcHV0ZWRTdHlsZShRdC50YXJnZXQpLGdpPXBhcnNlRmxvYXQocWkuYm9yZGVyVG9wV2lkdGgpfHwwLGUxPXBhcnNlRmxvYXQocWkuYm9yZGVyQm90dG9tV2lkdGgpfHwwO0llPU1hdGgubWF4KEllLGkyLnRvcCtnaSksR2U9TWF0aC5taW4oR2UsaTIuYm90dG9tLWUxKX1sZXQgdHQ9TWF0aC5tYXgoMSx0aGlzLl9fcm93SGVpZ2h0KSxhdD1lZS50SGVhZD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0Pz8wLHh0PURlLnRvcCthdCxnYT1NYXRoLm1heCgwLEllLXh0KSx3dD1NYXRoLm1heCgwLEdlLU1hdGgubWF4KEllLHh0KSksbnM9TWF0aC5mbG9vcihnYS90dCksd289TWF0aC5jZWlsKHd0L3R0KSsxLFVyPU1hdGgubWF4KDAsbnMtdGhpcy52aXJ0dWFsT3ZlcnNjYW4pLEhvPU1hdGgubWluKEwsbnMrd28rdGhpcy52aXJ0dWFsT3ZlcnNjYW4pOyhVciE9PXRoaXMuX192aXJ0dWFsUmFuZ2Uuc3RhcnR8fEhvIT09dGhpcy5fX3ZpcnR1YWxSYW5nZS5lbmQpJiYodGhpcy5fX3ZpcnR1YWxSYW5nZT17c3RhcnQ6VXIsZW5kOkhvfSl9X19tZWFzdXJlUm93SGVpZ2h0KCl7aWYoIXRoaXMudmlydHVhbGl6ZWR8fHRoaXMuX19yb3dIZWlnaHRNZWFzdXJlZClyZXR1cm47bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJ0Ym9keSIpO2lmKCFEKXJldHVybjtsZXQgTD1BcnJheS5mcm9tKEQucm93cykuZmluZChEZT0+RGUuaGFzQXR0cmlidXRlKCJkYXRhLXJvdy1pZHgiKSk7aWYoIUwpcmV0dXJuO2xldCBlZT1MLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtlZT4wJiYodGhpcy5fX3Jvd0hlaWdodD1lZSx0aGlzLl9fcm93SGVpZ2h0TWVhc3VyZWQ9ITApfV9fc3luY0Zsb2F0aW5nSGVhZGVyKCl7bGV0IEQ9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWwsTD10aGlzLl9fcmVhbFRhYmxlRWw7aWYoIUR8fCFMKXJldHVybjtsZXQgZWU9TC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxEZT10aGlzLl9fZ2V0U3RpY2tDb250ZXh0KCksSWU9TC50SGVhZD8ucm93cyxHZT0wO2lmKEllKWZvcihsZXQgUXQ9MDtRdDxJZS5sZW5ndGg7UXQrKylHZSs9SWVbUXRdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtsZXQgdHQ9ZWUuYm90dG9tLURlLnRvcCxhdD1lZS50b3A8RGUudG9wJiZ0dD4wO2lmKGF0IT09dGhpcy5fX2Zsb2F0aW5nQWN0aXZlKXtpZihhdHx8dGhpcy5fX3RyYW5zZmVyRm9jdXNUb1JlYWxIZWFkZXIoKSx0aGlzLl9fZmxvYXRpbmdBY3RpdmU9YXQsRC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLGF0KSwhYXQpe0Quc3R5bGUuaGVpZ2h0PSIiO2xldCBRdD10aGlzLl9fZmxvYXRpbmdUYWJsZUVsO1F0JiYoUXQuc3R5bGUudHJhbnNmb3JtPSIiKX1pZihhdCl7dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMuX190cmFuc2ZlckZvY3VzVG9GbG9hdGluZ0hlYWRlcigpfSk7cmV0dXJufX1pZighYXQpcmV0dXJuO2xldCB4dD10aGlzLl9fZmxvYXRpbmdUYWJsZUVsO2lmKCF4dClyZXR1cm47eHQuc3R5bGUudGFibGVMYXlvdXQ9TC5zdHlsZS50YWJsZUxheW91dHx8ImF1dG8iO2xldCBnYT14dC50SGVhZD8ucm93cztpZihJZSYmZ2EpZm9yKGxldCBRdD0wO1F0PEllLmxlbmd0aCYmUXQ8Z2EubGVuZ3RoO1F0Kyspe2xldCBpMj1JZVtRdF0uY2VsbHMscWk9Z2FbUXRdLmNlbGxzO2ZvcihsZXQgZ2k9MDtnaTxpMi5sZW5ndGgmJmdpPHFpLmxlbmd0aDtnaSsrKXtsZXQgZTE9aTJbZ2ldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO3FpW2dpXS5zdHlsZS53aWR0aD1gJHtlMX1weGAscWlbZ2ldLnN0eWxlLm1pbldpZHRoPWAke2UxfXB4YCxxaVtnaV0uc3R5bGUubWF4V2lkdGg9YCR7ZTF9cHhgfX1sZXQgd3Q9TWF0aC5tYXgoZWUubGVmdCxEZS5sZWZ0KSxucz1NYXRoLm1pbihlZS5yaWdodCxEZS5yaWdodCksd289TWF0aC5tYXgoMCxucy13dCk7RC5zdHlsZS50b3A9YCR7RGUudG9wfXB4YCxELnN0eWxlLmxlZnQ9YCR7d3R9cHhgLEQuc3R5bGUud2lkdGg9YCR7d299cHhgO2xldCBVcj1NYXRoLm1pbihHZSx0dCksSG89R2UtVXI7RC5zdHlsZS5oZWlnaHQ9YCR7VXJ9cHhgLHh0LnN0eWxlLndpZHRoPWAke2VlLndpZHRofXB4YCx4dC5zdHlsZS5tYXJnaW5MZWZ0PWAke2VlLmxlZnQtd3R9cHhgLHh0LnN0eWxlLnRyYW5zZm9ybT1Ibz4wP2B0cmFuc2xhdGVZKC0ke0hvfXB4KWA6IiJ9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudGVhcmRvd25GbG9hdGluZ0hlYWRlcigpLHRoaXMuX19mbGFzaENsZWFyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj12b2lkIDApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe313aWxsVXBkYXRlKEQpe2lmKEQuaGFzKCJkYXRhIikmJnRoaXMuc2VsZWN0ZWREYXRhUm93JiZ0aGlzLnJvd0tleSl7bGV0IGdhPXRoaXMuZ2V0Um93SWQodGhpcy5zZWxlY3RlZERhdGFSb3cpLHd0O2ZvcihsZXQgbnMgb2YgdGhpcy5kYXRhKWlmKHRoaXMuZ2V0Um93SWQobnMpPT09Z2Epe3d0PW5zO2JyZWFrfXd0P3d0IT09dGhpcy5zZWxlY3RlZERhdGFSb3cmJih0aGlzLnNlbGVjdGVkRGF0YVJvdz13dCk6dGhpcy5zZWxlY3RlZERhdGFSb3c9dm9pZCAwfWlmKHRoaXMuaGlnaGxpZ2h0VXBkYXRlcyE9PSJmbGFzaCIpeyh0aGlzLl9fcHJldlNuYXBzaG90fHx0aGlzLl9fZmxhc2hpbmdDZWxscy5zaXplPjApJiYodGhpcy5fX3ByZXZTbmFwc2hvdD12b2lkIDAsdGhpcy5fX2ZsYXNoaW5nQ2VsbHMuc2l6ZT4wJiYodGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMCkpO3JldHVybn1pZighdGhpcy5yb3dLZXkpe3RoaXMuX19mbGFzaFdhcm5lZE5vUm93S2V5fHwodGhpcy5fX2ZsYXNoV2FybmVkTm9Sb3dLZXk9ITAsY29uc29sZS53YXJuKCdbZGVlcy10YWJsZV0gaGlnaGxpZ2h0VXBkYXRlcz0iZmxhc2giIHJlcXVpcmVzIGByb3dLZXlgIHRvIGJlIHNldC4gRmxhc2ggaXMgZGlzYWJsZWQuIFNldCB0aGUgcm93S2V5IHByb3BlcnR5L2F0dHJpYnV0ZSB0byBhIHN0YWJsZSBpZGVudGlmaWVyIG9uIHlvdXIgcm93IGRhdGEgKGUuZy4gYHJvd0tleT0iaWQiYCkuJykpO3JldHVybn1pZighRC5oYXMoImRhdGEiKSlyZXR1cm47bGV0IGVlPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmlsdGVyKGdhPT4hZ2EuaGlkZGVuKSxEZT1uZXcgTWFwKGVlLm1hcChnYT0+W1N0cmluZyhnYS5rZXkpLGdhXSkpLEllPW5ldyBNYXAsR2U9bmV3IE1hcDtmb3IobGV0IGdhIG9mIHRoaXMuZGF0YSl7bGV0IHd0PXRoaXMuZ2V0Um93SWQoZ2EpLG5zPW5ldyBNYXA7Zm9yKGxldCBVciBvZiBlZSlucy5zZXQoU3RyaW5nKFVyLmtleSksQzQoZ2EsVXIsdGhpcy5kaXNwbGF5RnVuY3Rpb24pKTtJZS5zZXQod3QsbnMpO2xldCB3bz10aGlzLl9fcHJldlNuYXBzaG90Py5nZXQod3QpO2lmKHdvKWZvcihsZXRbVXIsSG9db2YgbnMpe2xldCBRdD13by5nZXQoVXIpLGkyPURlLmdldChVcikscWk7aWYoaTI/LmZsYXNoQ29tcGFyZT9xaT1pMi5mbGFzaENvbXBhcmUoUXQsSG8pOkhvIT1udWxsJiZ0eXBlb2YgSG89PSJvYmplY3QiP3FpPSExOnFpPVF0IT09SG8scWkpe2lmKHRoaXMuX19lZGl0aW5nQ2VsbCYmdGhpcy5fX2VkaXRpbmdDZWxsLnJvd0lkPT09d3QmJnRoaXMuX19lZGl0aW5nQ2VsbC5jb2xLZXk9PT1Vciljb250aW51ZTtsZXQgZ2k9R2UuZ2V0KHd0KTtnaXx8KGdpPW5ldyBTZXQsR2Uuc2V0KHd0LGdpKSksZ2kuYWRkKFVyKX19fWxldCB0dD0hIXRoaXMuX19wcmV2U25hcHNob3Q7aWYodGhpcy5fX3ByZXZTbmFwc2hvdD1JZSwhdHR8fEdlLnNpemU9PT0wKXJldHVybjtsZXQgYXQ9Kyt0aGlzLl9fZmxhc2hUaWNrLHh0PW5ldyBNYXAodGhpcy5fX2ZsYXNoaW5nQ2VsbHMpO2ZvcihsZXRbZ2Esd3Rdb2YgR2Upe2xldCBucz1uZXcgTWFwKHh0LmdldChnYSk/P1tdKTtmb3IobGV0IHdvIG9mIHd0KW5zLnNldCh3byxhdCk7eHQuc2V0KGdhLG5zKX10aGlzLl9fZmxhc2hpbmdDZWxscz14dCx0aGlzLl9fZmxhc2hDbGVhclRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5fX2ZsYXNoaW5nQ2VsbHM9bmV3IE1hcCx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMH0sTWF0aC5tYXgoMCx0aGlzLmhpZ2hsaWdodER1cmF0aW9uKSl9YXN5bmMgdXBkYXRlZChEKXtzdXBlci51cGRhdGVkKEQpO2xldCBMPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksZWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJ0YWJsZSIpPz9udWxsLERlPXRoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93IikubGVuZ3RoO0QuaGFzKCJoaWdobGlnaHREdXJhdGlvbiIpJiZ0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24iLGAke3RoaXMuaGlnaGxpZ2h0RHVyYXRpb259bXNgKTtsZXQgSWU9ISFlZSYmKCF0aGlzLl9fY29sdW1uc1NpemVkRm9yfHx0aGlzLl9fY29sdW1uc1NpemVkRm9yLmVmZmVjdGl2ZUNvbHVtbnMhPT1MfHx0aGlzLl9fY29sdW1uc1NpemVkRm9yLnNob3dTZWxlY3Rpb25DaGVja2JveCE9PXRoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94fHx0aGlzLl9fY29sdW1uc1NpemVkRm9yLmluUm93QWN0aW9uQ291bnQhPT1EZXx8dGhpcy5fX2NvbHVtbnNTaXplZEZvci50YWJsZSE9PWVlKTtlZSYmSWUmJih0aGlzLl9fY29sdW1uc1NpemVkRm9yPXtlZmZlY3RpdmVDb2x1bW5zOkwsc2hvd1NlbGVjdGlvbkNoZWNrYm94OnRoaXMuc2hvd1NlbGVjdGlvbkNoZWNrYm94LGluUm93QWN0aW9uQ291bnQ6RGUsdGFibGU6ZWV9LHRoaXMuZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCksdGhpcy5fX3Jvd0hlaWdodE1lYXN1cmVkPSExKSx0aGlzLnZpcnR1YWxpemVkJiYodGhpcy5fX21lYXN1cmVSb3dIZWlnaHQoKSx0aGlzLl9fY29tcHV0ZVZpcnR1YWxSYW5nZSgpKSwoRC5oYXMoImZpeGVkSGVpZ2h0Iil8fEQuaGFzKCJ2aXJ0dWFsaXplZCIpfHxELmhhcygiZGF0YSIpfHxELmhhcygiY29sdW1ucyIpfHwhdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcikmJigoIXRoaXMuZml4ZWRIZWlnaHR8fHRoaXMudmlydHVhbGl6ZWQpJiZ0aGlzLmRhdGEubGVuZ3RoPjA/dGhpcy5zZXR1cEZsb2F0aW5nSGVhZGVyKCk6dGhpcy50ZWFyZG93bkZsb2F0aW5nSGVhZGVyKCkpLCF0aGlzLmZpeGVkSGVpZ2h0JiZ0aGlzLmRhdGEubGVuZ3RoPjAmJih0aGlzLl9fZmxvYXRpbmdBY3RpdmV8fEllKSYmdGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMuc2VhcmNoYWJsZSYmKHRoaXMuZGF0YUFjdGlvbnMuZmluZCh0dD0+dHQudHlwZT8uaW5jbHVkZXMoImhlYWRlciIpJiZ0dC5uYW1lPT09IlNlYXJjaCIpfHwodGhpcy5kYXRhQWN0aW9ucy51bnNoaWZ0KHtuYW1lOiJTZWFyY2giLGljb25OYW1lOiJsdWNpZGU6U2VhcmNoIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzpzKGFzeW5jKCk9Pntjb25zb2xlLmxvZygib3BlbiBzZWFyY2giKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQiKS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iKX0sImFjdGlvbkZ1bmMiKX0pLGNvbnNvbGUubG9nKHRoaXMuZGF0YUFjdGlvbnMpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKSx0aGlzLndpcmVTZWFyY2hJbnB1dHMoKSl9X19kZWJvdW5jZVRpbWVyO2RlYm91bmNlUnVuKEQsTD0yMDApe3RoaXMuX19kZWJvdW5jZVRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2RlYm91bmNlVGltZXIpLHRoaXMuX19kZWJvdW5jZVRpbWVyPXNldFRpbWVvdXQoRCxMKX13aXJlU2VhcmNoSW5wdXRzKCl7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCBkZWVzLWlucHV0LXRleHQiKSxMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSIpO0QmJiF0aGlzLl9fc2VhcmNoVGV4dFN1YiYmKHRoaXMuX19zZWFyY2hUZXh0U3ViPUQuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoZWU9PntsZXQgRGU9ZWU/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6RGUsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoRGUpfSl9KSksTCYmIXRoaXMuX19zZWFyY2hNb2RlU3ViJiYodGhpcy5fX3NlYXJjaE1vZGVTdWI9TC5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShlZT0+e2xldCBEZT1lZT8uc2VsZWN0ZWRPcHRpb258fGVlPy52YWx1ZXx8InRhYmxlIjtpZihEZT09PSJ0YWJsZSJ8fERlPT09ImRhdGEifHxEZT09PSJzZXJ2ZXIiKXt0aGlzLnNlYXJjaE1vZGU9RGU7bGV0IEllPUQ/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6SWUsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoSWUpfSl9fSkpfWFzeW5jIGRldGVybWluZUNvbHVtbldpZHRocygpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBMPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJ0YWJsZSIpO2lmKCFMKXJldHVybjtsZXQgZWU9TC5yb3dzWzBdLmNlbGxzLERlPXMoYXN5bmMoSWUsR2U9ITEpPT57bGV0IHR0PWN0LmRlZmVyKCksYXQ9ZWVbSWVdLHh0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGF0KS53aWR0aDtpZihhdC50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpKXtsZXQgZ2E9dGhpcy5kYXRhQWN0aW9ucy5maWx0ZXIod3Q9Pnd0LnR5cGU/LmluY2x1ZGVzKCJpblJvdyIpKS5sZW5ndGgqMzY7YXQuc3R5bGUud2lkdGg9YCR7TWF0aC5tYXgoZ2EsNjgpfXB4YH1lbHNlIGF0LnN0eWxlLndpZHRoPXh0O0dlJiYocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dHQucmVzb2x2ZSgpfSksYXdhaXQgdHQucHJvbWlzZSl9LCJoYW5kbGVDb2x1bW5CeUluZGV4Iik7ZWVbZWUubGVuZ3RoLTFdLnRleHRDb250ZW50LmluY2x1ZGVzKCJBY3Rpb25zIikmJmF3YWl0IERlKGVlLmxlbmd0aC0xLCEwKTtmb3IobGV0IEllPTA7SWU8ZWUubGVuZ3RoO0llKyspZWVbSWVdLnRleHRDb250ZW50LmluY2x1ZGVzKCJBY3Rpb25zIil8fGF3YWl0IERlKEllKTtMLnN0eWxlLnRhYmxlTGF5b3V0PSJmaXhlZCJ9Z2V0U29ydERlc2NyaXB0b3IoRCl7cmV0dXJuIHRoaXMuc29ydEJ5LmZpbmQoTD0+TC5rZXk9PT1EKX1nZXRTb3J0UHJpb3JpdHkoRCl7cmV0dXJuIHRoaXMuc29ydEJ5LmZpbmRJbmRleChMPT5MLmtleT09PUQpfXNldFNvcnQoRCxMKXt0aGlzLnNvcnRCeT1be2tleTpELGRpcjpMfV0sdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFkZFNvcnRBdChELEwsZWUpe2xldCBEZT10aGlzLnNvcnRCeS5maWx0ZXIoR2U9PkdlLmtleSE9PUQpLEllPU1hdGgubWF4KDAsTWF0aC5taW4oTCxEZS5sZW5ndGgpKTtEZS5zcGxpY2UoSWUsMCx7a2V5OkQsZGlyOmVlfSksdGhpcy5zb3J0Qnk9RGUsdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFwcGVuZFNvcnQoRCxMKXtsZXQgZWU9dGhpcy5zb3J0QnkuZmlsdGVyKERlPT5EZS5rZXkhPT1EKTtlZS5wdXNoKHtrZXk6RCxkaXI6TH0pLHRoaXMuc29ydEJ5PWVlLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1yZW1vdmVTb3J0KEQpe3RoaXMuc29ydEJ5LnNvbWUoTD0+TC5rZXk9PT1EKSYmKHRoaXMuc29ydEJ5PXRoaXMuc29ydEJ5LmZpbHRlcihMPT5MLmtleSE9PUQpLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9Y2xlYXJTb3J0cygpe3RoaXMuc29ydEJ5Lmxlbmd0aCE9PTAmJih0aGlzLnNvcnRCeT1bXSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWVtaXRTb3J0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic29ydENoYW5nZSIse2RldGFpbDp7c29ydEJ5OnRoaXMuc29ydEJ5Lm1hcChEPT4oey4uLkR9KSl9LGJ1YmJsZXM6ITB9KSl9YXN5bmMgaGFuZGxlSGVhZGVyQ2xpY2soRCxMLGVlKXtpZihELnNoaWZ0S2V5KXt0aGlzLmhhbmRsZUhlYWRlclNoaWZ0Q2xpY2soTCk7cmV0dXJufWF3YWl0IHRoaXMuY29uZmlybVJlcGxhY2VDYXNjYWRlKEwpJiZ0aGlzLmN5Y2xlU2luZ2xlU29ydChMKX1jeWNsZVNpbmdsZVNvcnQoRCl7bGV0IEw9U3RyaW5nKEQua2V5KSxlZT10aGlzLnNvcnRCeS5sZW5ndGg9PT0xJiZ0aGlzLnNvcnRCeVswXS5rZXk9PT1MP3RoaXMuc29ydEJ5WzBdLmRpcjpudWxsO2VlPT09ImFzYyI/dGhpcy5zZXRTb3J0KEwsImRlc2MiKTplZT09PSJkZXNjIj90aGlzLmNsZWFyU29ydHMoKTp0aGlzLnNldFNvcnQoTCwiYXNjIil9aGFuZGxlSGVhZGVyU2hpZnRDbGljayhEKXtsZXQgTD1TdHJpbmcoRC5rZXkpLGVlPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IoTCk7ZWU/ZWUuZGlyPT09ImFzYyI/KHRoaXMuc29ydEJ5PXRoaXMuc29ydEJ5Lm1hcChEZT0+RGUua2V5PT09TD97a2V5OkwsZGlyOiJkZXNjIn06RGUpLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSk6dGhpcy5yZW1vdmVTb3J0KEwpOnRoaXMuYXBwZW5kU29ydChMLCJhc2MiKX1jb25maXJtUmVwbGFjZUNhc2NhZGUoRCl7cmV0dXJuIHRoaXMuc29ydEJ5Lmxlbmd0aDw9MT9Qcm9taXNlLnJlc29sdmUoITApOm5ldyBQcm9taXNlKEw9PntsZXQgZWU9ITEsRGU9cyhHZT0+e2VlfHwoZWU9ITAsTChHZSkpfSwic2V0dGxlIiksSWU9dGhpcy5zb3J0QnkubWFwKChHZSx0dCk9PntsZXQgeHQ9dGhpcy5fbG9va3VwQ29sdW1uQnlLZXk/LihHZS5rZXkpPy5oZWFkZXI/P0dlLmtleTtyZXR1cm4gd2A8bGk+JHt0dCsxfS4gJHt4dH0gJHtHZS5kaXI9PT0iYXNjIj8iXHUyNUIyIjoiXHUyNUJDIn08L2xpPmB9KTtNYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXBsYWNlIG11bHRpLWNvbHVtbiBzb3J0PyIsd2lkdGg6InNtYWxsIixzaG93Q2xvc2VCdXR0b246ITAsY29udGVudDp3YAogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjEzcHg7IGxpbmUtaGVpZ2h0OjEuNTU7Ij4KICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjowIDAgOHB4OyI+CiAgICAgICAgICAgICAgWW91IGN1cnJlbnRseSBoYXZlIGEgJHt0aGlzLnNvcnRCeS5sZW5ndGh9LWNvbHVtbiBzb3J0IGFjdGl2ZToKICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsgcGFkZGluZy1sZWZ0OjE4cHg7Ij4ke0llfTwvdWw+CiAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46MDsiPgogICAgICAgICAgICAgIENvbnRpbnVpbmcgd2lsbCBkaXNjYXJkIHRoZSBjYXNjYWRlIGFuZCByZXBsYWNlIGl0IHdpdGggYSBzaW5nbGUgc29ydCBvbgogICAgICAgICAgICAgIDxzdHJvbmc+JHtELmhlYWRlcj8/U3RyaW5nKEQua2V5KX08L3N0cm9uZz4uCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGljb25OYW1lOiJsdWNpZGU6eCIsYWN0aW9uOnMoYXN5bmMgR2U9PihEZSghMSksYXdhaXQgR2UuZGVzdHJveSgpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlJlcGxhY2UiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2siLGFjdGlvbjpzKGFzeW5jIEdlPT4oRGUoITApLGF3YWl0IEdlLmRlc3Ryb3koKSxudWxsKSwiYWN0aW9uIil9XX0pfSl9X2xvb2t1cENvbHVtbkJ5S2V5KEQpe3JldHVybiB0aGlzLl9fZ2V0RWZmZWN0aXZlQ29sdW1ucygpLmZpbmQoZWU9PlN0cmluZyhlZS5rZXkpPT09RCl9b3BlbkhlYWRlckNvbnRleHRNZW51KEQsTCxlZSl7bGV0IERlPXRoaXMuYnVpbGRIZWFkZXJNZW51SXRlbXMoTCxlZSk7dGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCxEZSl9YnVpbGRIZWFkZXJNZW51SXRlbXMoRCxMKXtsZXQgZWU9U3RyaW5nKEQua2V5KSxEZT10aGlzLmdldFNvcnREZXNjcmlwdG9yKGVlKSxJZT10aGlzLnNvcnRCeS5sZW5ndGgsR2U9TC5maWx0ZXIoeHQ9Pnh0LnNvcnRhYmxlIT09ITEpLmxlbmd0aCx0dD1NYXRoLm1pbihNYXRoLm1heChJZSsoRGU/MDoxKSwxKSxNYXRoLm1heChHZSwxKSksYXQ9W107YXQucHVzaCh7bmFtZToiU29ydCBBc2NlbmRpbmciLGljb25OYW1lOkllPT09MSYmRGU/LmRpcj09PSJhc2MiPyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6YXJyb3dVcCIsYWN0aW9uOnMoYXN5bmMoKT0+KGF3YWl0IHRoaXMuY29uZmlybVJlcGxhY2VDYXNjYWRlKEQpJiZ0aGlzLnNldFNvcnQoZWUsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0pLGF0LnB1c2goe25hbWU6IlNvcnQgRGVzY2VuZGluZyIsaWNvbk5hbWU6SWU9PT0xJiZEZT8uZGlyPT09ImRlc2MiPyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246cyhhc3luYygpPT4oYXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoRCkmJnRoaXMuc2V0U29ydChlZSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX0pLGF0LnB1c2goe2RpdmlkZXI6ITB9KTtmb3IobGV0IHh0PTE7eHQ8PXR0O3h0Kyspe2xldCBnYT1YSWEoeHQpLHd0PURlJiZ0aGlzLmdldFNvcnRQcmlvcml0eShlZSk9PT14dC0xO2F0LnB1c2goe25hbWU6YFNldCBhcyAke2dhfSBzb3J0YCxpY29uTmFtZTp3dD8ibHVjaWRlOmNoZWNrIjoibHVjaWRlOmxpc3RPcmRlcmVkIixzdWJtZW51Olt7bmFtZToiQXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93VXAiLGFjdGlvbjpzKGFzeW5jKCk9Pih0aGlzLmFkZFNvcnRBdChlZSx4dC0xLCJhc2MiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJEZXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93RG93biIsYWN0aW9uOnMoYXN5bmMoKT0+KHRoaXMuYWRkU29ydEF0KGVlLHh0LTEsImRlc2MiKSxudWxsKSwiYWN0aW9uIil9XX0pfXJldHVybiBhdC5wdXNoKHtkaXZpZGVyOiEwfSksYXQucHVzaCh7bmFtZToiQXBwZW5kIHRvIHNvcnQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsc3VibWVudTpbe25hbWU6IkFzY2VuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd1VwIixhY3Rpb246cyhhc3luYygpPT4odGhpcy5hcHBlbmRTb3J0KGVlLCJhc2MiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJEZXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93RG93biIsYWN0aW9uOnMoYXN5bmMoKT0+KHRoaXMuYXBwZW5kU29ydChlZSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSksRGUmJihhdC5wdXNoKHtkaXZpZGVyOiEwfSksYXQucHVzaCh7bmFtZToiUmVtb3ZlIGZyb20gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTptaW51cyIsYWN0aW9uOnMoYXN5bmMoKT0+KHRoaXMucmVtb3ZlU29ydChlZSksbnVsbCksImFjdGlvbiIpfSkpLEllPjAmJihEZXx8YXQucHVzaCh7ZGl2aWRlcjohMH0pLGF0LnB1c2goe25hbWU6IkNsZWFyIGFsbCBzb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsYWN0aW9uOnMoYXN5bmMoKT0+KHRoaXMuY2xlYXJTb3J0cygpLG51bGwpLCJhY3Rpb24iKX0pKSxhdC5wdXNoKHtkaXZpZGVyOiEwfSksYXQucHVzaCh7bmFtZTp0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPyJIaWRlIGNvbHVtbiBmaWx0ZXJzIjoiU2hvdyBjb2x1bW4gZmlsdGVycyIsaWNvbk5hbWU6dGhpcy5zaG93Q29sdW1uRmlsdGVycz8ibHVjaWRlOmZpbHRlclgiOiJsdWNpZGU6ZmlsdGVyIixhY3Rpb246cyhhc3luYygpPT4odGhpcy5zaG93Q29sdW1uRmlsdGVycz0hdGhpcy5zaG93Q29sdW1uRmlsdGVycyx0aGlzLnJlcXVlc3RVcGRhdGUoKSxudWxsKSwiYWN0aW9uIil9KSxhdH1nZXRBcmlhU29ydChEKXtsZXQgTD10aGlzLnNvcnRCeVswXTtyZXR1cm4hTHx8TC5rZXkhPT1TdHJpbmcoRC5rZXkpPyJub25lIjpMLmRpcj09PSJhc2MiPyJhc2NlbmRpbmciOiJkZXNjZW5kaW5nIn1yZW5kZXJTb3J0SW5kaWNhdG9yKEQpe2xldCBMPXRoaXMuZ2V0U29ydFByaW9yaXR5KFN0cmluZyhELmtleSkpO2lmKEw8MClyZXR1cm4gd2BgO2xldCBEZT10aGlzLnNvcnRCeVtMXS5kaXI9PT0iYXNjIj8iXHUyNUIyIjoiXHUyNUJDIjtyZXR1cm4gdGhpcy5zb3J0QnkubGVuZ3RoPT09MT93YDxzcGFuIGNsYXNzPSJzb3J0QXJyb3ciPiR7RGV9PC9zcGFuPmA6d2A8c3BhbiBjbGFzcz0ic29ydEFycm93Ij4ke0RlfTwvc3Bhbj48c3BhbiBjbGFzcz0ic29ydEJhZGdlIj4ke0wrMX08L3NwYW4+YH1zZXRGaWx0ZXJUZXh0KEQpe2xldCBMPXRoaXMuZmlsdGVyVGV4dDt0aGlzLmZpbHRlclRleHQ9RD8/IiIsTCE9PXRoaXMuZmlsdGVyVGV4dCYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlckNoYW5nZSIse2RldGFpbDp7dGV4dDp0aGlzLmZpbHRlclRleHQsY29sdW1uczp7Li4udGhpcy5jb2x1bW5GaWx0ZXJzfX0sYnViYmxlczohMH0pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9c2V0Q29sdW1uRmlsdGVyKEQsTCl7dGhpcy5jb2x1bW5GaWx0ZXJzPXsuLi50aGlzLmNvbHVtbkZpbHRlcnMsW0RdOkx9LHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlckNoYW5nZSIse2RldGFpbDp7dGV4dDp0aGlzLmZpbHRlclRleHQsY29sdW1uczp7Li4udGhpcy5jb2x1bW5GaWx0ZXJzfX0sYnViYmxlczohMH0pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1nZXRSb3dJZChEKXtpZih0aGlzLnJvd0tleSlyZXR1cm4gdHlwZW9mIHRoaXMucm93S2V5PT0iZnVuY3Rpb24iP3RoaXMucm93S2V5KEQpOlN0cmluZyhEW3RoaXMucm93S2V5XSk7bGV0IEw9RDtyZXR1cm4gdGhpcy5fcm93SWRNYXAuaGFzKEwpfHx0aGlzLl9yb3dJZE1hcC5zZXQoTCxTdHJpbmcoKyt0aGlzLl9yb3dJZENvdW50ZXIpKSx0aGlzLl9yb3dJZE1hcC5nZXQoTCl9aXNSb3dTZWxlY3RlZChEKXtyZXR1cm4gdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChEKSl9dG9nZ2xlUm93U2VsZWN0ZWQoRCl7bGV0IEw9dGhpcy5nZXRSb3dJZChEKTt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj8odGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKEwpKTp0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiJiYodGhpcy5zZWxlY3RlZElkcy5oYXMoTCk/dGhpcy5zZWxlY3RlZElkcy5kZWxldGUoTCk6dGhpcy5zZWxlY3RlZElkcy5hZGQoTCkpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfV9fcmVzb2x2ZVJvdyhEKXtsZXQgTD1ELmNvbXBvc2VkUGF0aD8uKCl8fFtdLGVlPW51bGw7Zm9yKGxldCB0dCBvZiBMKXtsZXQgYXQ9dHQ7aWYoYXQ/LnRhZ05hbWU9PT0iVFIiJiZhdC5oYXNBdHRyaWJ1dGUoImRhdGEtcm93LWlkeCIpKXtlZT1hdDticmVha319aWYoIWVlKXJldHVybiBudWxsO2xldCBEZT1OdW1iZXIoZWUuZ2V0QXR0cmlidXRlKCJkYXRhLXJvdy1pZHgiKSksR2U9KHRoaXMuX2xhc3RWaWV3RGF0YT8/W10pW0RlXTtyZXR1cm4gR2U/e2l0ZW06R2Uscm93SWR4OkRlfTpudWxsfV9fcmVzb2x2ZUNlbGwoRCl7bGV0IEw9dGhpcy5fX3Jlc29sdmVSb3coRCk7aWYoIUwpcmV0dXJuIG51bGw7bGV0IGVlPUQuY29tcG9zZWRQYXRoPy4oKXx8W10sRGU9bnVsbDtmb3IobGV0IGF0IG9mIGVlKXtsZXQgeHQ9YXQ7aWYoeHQ/LnRhZ05hbWU9PT0iVEQiJiZ4dC5oYXNBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpKXtEZT14dDticmVha319aWYoIURlKXJldHVybiBudWxsO2xldCBJZT1EZS5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpLHR0PXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZChhdD0+U3RyaW5nKGF0LmtleSk9PT1JZSk7cmV0dXJuIHR0P3tpdGVtOkwuaXRlbSxyb3dJZHg6TC5yb3dJZHgsY29sOnR0fTpudWxsfV9faXNJbkFjdGlvbnNDb2woRCl7bGV0IEw9RC5jb21wb3NlZFBhdGg/LigpfHxbXTtmb3IobGV0IGVlIG9mIEwpaWYoZWU/LmNsYXNzTGlzdD8uY29udGFpbnMoImFjdGlvbnNDb2wiKSlyZXR1cm4hMDtyZXR1cm4hMX1fX2lzSW5FZGl0b3IoRCl7bGV0IEw9RC5jb21wb3NlZFBhdGg/LigpfHxbXTtmb3IobGV0IGVlIG9mIEwpe2xldCBEZT1lZSxJZT1EZT8udGFnTmFtZTtpZihJZT09PSJJTlBVVCJ8fEllPT09IlRFWFRBUkVBInx8RGU/LmlzQ29udGVudEVkaXRhYmxlfHxJZSYmSWUuc3RhcnRzV2l0aCgiREVFUy1JTlBVVC0iKSlyZXR1cm4hMH1yZXR1cm4hMX1fX29uVGJvZHlDbGljaz1zKEQ9PntpZih0aGlzLl9faXNJbkVkaXRvcihEKXx8dGhpcy5fX2lzSW5BY3Rpb25zQ29sKEQpKXJldHVybjtsZXQgTD10aGlzLl9fcmVzb2x2ZUNlbGwoRCk7aWYoIUwpcmV0dXJuO2xldCBlZT10aGlzLl9sYXN0Vmlld0RhdGE/P1tdOyhMLmNvbC5lZGl0YWJsZXx8TC5jb2wuZWRpdG9yKSYmKHRoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZChMLml0ZW0pLGNvbEtleTpTdHJpbmcoTC5jb2wua2V5KX0pLHRoaXMuaGFuZGxlUm93Q2xpY2soRCxMLml0ZW0sTC5yb3dJZHgsZWUpfSwiX19vblRib2R5Q2xpY2siKTtfX29uVGJvZHlEYmxjbGljaz1zKEQ9PntpZih0aGlzLl9faXNJbkVkaXRvcihEKXx8dGhpcy5fX2lzSW5BY3Rpb25zQ29sKEQpKXJldHVybjtsZXQgTD10aGlzLl9fcmVzb2x2ZUNlbGwoRCk7aWYoIUwpcmV0dXJuO2lmKCEhKEwuY29sLmVkaXRhYmxlfHxMLmNvbC5lZGl0b3IpKXtELnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc3RhcnRFZGl0aW5nKEwuaXRlbSxMLmNvbCk7cmV0dXJufWxldCBEZT10aGlzLmRhdGFBY3Rpb25zLmZpbmQoSWU9PkllLnR5cGU/LmluY2x1ZGVzKCJkb3VibGVDbGljayIpKTtEZSYmRGUuYWN0aW9uRnVuYyh7aXRlbTpMLml0ZW0sdGFibGU6dGhpc30pfSwiX19vblRib2R5RGJsY2xpY2siKTtfX29uVGJvZHlNb3VzZWRvd249cyhEPT57RC5zaGlmdEtleSYmdGhpcy5zZWxlY3Rpb25Nb2RlIT09InNpbmdsZSImJkQucHJldmVudERlZmF1bHQoKX0sIl9fb25UYm9keU1vdXNlZG93biIpO19fb25UYm9keUNvbnRleHRtZW51PXMoRD0+e2lmKHRoaXMuX19pc0luQWN0aW9uc0NvbChEKSlyZXR1cm47bGV0IEw9dGhpcy5fX3Jlc29sdmVSb3coRCk7aWYoIUwpcmV0dXJuO2xldCBlZT1MLml0ZW07dGhpcy5pc1Jvd1NlbGVjdGVkKGVlKXx8KHRoaXMuc2VsZWN0ZWREYXRhUm93PWVlLHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKGVlKSksdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPXRoaXMuZ2V0Um93SWQoZWUpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtsZXQgRGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoR2U9Pih7bmFtZTpHZS5uYW1lLGljb25OYW1lOkdlLmljb25OYW1lLGFjdGlvbjpzKGFzeW5jKCk9Pihhd2FpdCBHZS5hY3Rpb25GdW5jKHtpdGVtOmVlLHRhYmxlOnRoaXN9KSxudWxsKSwiYWN0aW9uIil9KSksSWU9W3tuYW1lOnRoaXMuc2VsZWN0ZWRJZHMuc2l6ZT4xP2BDb3B5ICR7dGhpcy5zZWxlY3RlZElkcy5zaXplfSByb3dzIGFzIEpTT05gOiJDb3B5IHJvdyBhcyBKU09OIixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjpzKGFzeW5jKCk9Pih0aGlzLmNvcHlTZWxlY3Rpb25Bc0pzb24oZWUpLG51bGwpLCJhY3Rpb24iKX1dO3RhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEQsWy4uLkRlLC4uLkllXSl9LCJfX29uVGJvZHlDb250ZXh0bWVudSIpO19fb25UYm9keURyYWdlbnRlcj1zKEQ9PntpZihELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5fX3Jlc29sdmVSb3coRCkpcmV0dXJuO2xldCBlZT0oRC5jb21wb3NlZFBhdGg/LigpfHxbXSkuZmluZChEZT0+RGU/LnRhZ05hbWU9PT0iVFIiKTtlZSYmc2V0VGltZW91dCgoKT0+ZWUuY2xhc3NMaXN0LmFkZCgiaGFzQXR0YWNobWVudCIpLDApfSwiX19vblRib2R5RHJhZ2VudGVyIik7X19vblRib2R5RHJhZ2xlYXZlPXMoRD0+e0QucHJldmVudERlZmF1bHQoKSxELnN0b3BQcm9wYWdhdGlvbigpO2xldCBMPShELmNvbXBvc2VkUGF0aD8uKCl8fFtdKS5maW5kKGVlPT5lZT8udGFnTmFtZT09PSJUUiIpO0wmJkwuY2xhc3NMaXN0LnJlbW92ZSgiaGFzQXR0YWNobWVudCIpfSwiX19vblRib2R5RHJhZ2xlYXZlIik7X19vblRib2R5RHJhZ292ZXI9cyhEPT57RC5wcmV2ZW50RGVmYXVsdCgpfSwiX19vblRib2R5RHJhZ292ZXIiKTtfX29uVGJvZHlEcm9wPXMoYXN5bmMgRD0+e0QucHJldmVudERlZmF1bHQoKTtsZXQgTD10aGlzLl9fcmVzb2x2ZVJvdyhEKTtpZighTClyZXR1cm47bGV0IGVlPUwuaXRlbSxEZT1bXTtmb3IobGV0IEdlIG9mIEFycmF5LmZyb20oRC5kYXRhVHJhbnNmZXIuZmlsZXMpKXRoaXMuZmlsZXMucHVzaChHZSksRGUucHVzaChHZSksdGhpcy5yZXF1ZXN0VXBkYXRlKCk7bGV0IEllPXRoaXMuZmlsZVdlYWtNYXAuZ2V0KGVlKTtJZT9JZS5wdXNoKC4uLkRlKTp0aGlzLmZpbGVXZWFrTWFwLnNldChlZSxEZSl9LCJfX29uVGJvZHlEcm9wIik7aGFuZGxlUm93Q2xpY2soRCxMLGVlLERlKXtsZXQgSWU9dGhpcy5nZXRSb3dJZChMKTtpZih0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIil7dGhpcy5zZWxlY3RlZERhdGFSb3c9TCx0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoSWUpLHRoaXMuX19zZWxlY3Rpb25BbmNob3JJZD1JZSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtyZXR1cm59bGV0IEdlPUQubWV0YUtleXx8RC5jdHJsS2V5O2lmKEQuc2hpZnRLZXkmJnRoaXMuX19zZWxlY3Rpb25BbmNob3JJZCE9PXZvaWQgMCl7d2luZG93LmdldFNlbGVjdGlvbj8uKCk/LnJlbW92ZUFsbFJhbmdlcygpO2xldCBhdD1EZS5maW5kSW5kZXgoeHQ9PnRoaXMuZ2V0Um93SWQoeHQpPT09dGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkKTtpZihhdD49MCl7bGV0W3h0LGdhXT1hdDw9ZWU/W2F0LGVlXTpbZWUsYXRdO3RoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKTtmb3IobGV0IHd0PXh0O3d0PD1nYTt3dCsrKXRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRGVbd3RdKSl9ZWxzZSB0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoSWUpLHRoaXMuX19zZWxlY3Rpb25BbmNob3JJZD1JZTt0aGlzLnNlbGVjdGVkRGF0YVJvdz1MfWVsc2UgaWYoR2Upe2lmKHRoaXMuc2VsZWN0ZWRJZHMuaGFzKEllKSl7aWYodGhpcy5zZWxlY3RlZElkcy5kZWxldGUoSWUpLHRoaXMuc2VsZWN0ZWREYXRhUm93PT09TCl7bGV0IHh0PURlLmZpbmQoZ2E9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoZ2EpKSk7dGhpcy5zZWxlY3RlZERhdGFSb3c9eHR9fWVsc2UgdGhpcy5zZWxlY3RlZElkcy5hZGQoSWUpLHRoaXMuc2VsZWN0ZWREYXRhUm93PUw7dGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPUllfWVsc2UgdGhpcy5zZWxlY3RlZERhdGFSb3c9TCx0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoSWUpLHRoaXMuX19zZWxlY3Rpb25BbmNob3JJZD1JZTt0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zZXRSb3dTZWxlY3RlZChELEwpe2xldCBlZT10aGlzLmdldFJvd0lkKEQpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksTCYmdGhpcy5zZWxlY3RlZElkcy5hZGQoZWUpKTp0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiJiYoTD90aGlzLnNlbGVjdGVkSWRzLmFkZChlZSk6dGhpcy5zZWxlY3RlZElkcy5kZWxldGUoZWUpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKXtsZXQgRD10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKEQubGVuZ3RoPT09MClyZXR1cm4hMTtmb3IobGV0IEwgb2YgRClpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChMKSkpcmV0dXJuITE7cmV0dXJuITB9aXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpe2xldCBEPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoRC5sZW5ndGg9PT0wKXJldHVybiExO2xldCBMPTA7Zm9yKGxldCBlZSBvZiBEKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoZWUpKSYmTCsrO3JldHVybiBMPjAmJkw8RC5sZW5ndGh9c2V0U2VsZWN0VmlzaWJsZShEKXtsZXQgTD10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKEQpZm9yKGxldCBlZSBvZiBMKXRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoZWUpKTtlbHNlIGZvcihsZXQgZWUgb2YgTCl0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZSh0aGlzLmdldFJvd0lkKGVlKSk7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9ZW1pdFNlbGVjdGlvbkNoYW5nZSgpe2xldCBEPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcyksTD10aGlzLmRhdGEuZmlsdGVyKGVlPT50aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKGVlKSkpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWRJZHM6RCxzZWxlY3RlZFJvd3M6TH0sYnViYmxlczohMH0pKX1nZXRBY3Rpb25zRm9yVHlwZShEKXtsZXQgTD1bXTtmb3IobGV0IGVlIG9mIHRoaXMuZGF0YUFjdGlvbnMpZWUudHlwZT8uaW5jbHVkZXMoRCkmJkwucHVzaChlZSk7cmV0dXJuIEx9X19pc0NvbHVtbkVkaXRhYmxlKEQpe3JldHVybiEhKEQuZWRpdGFibGV8fEQuZWRpdG9yKX1fX2VkaXRhYmxlQ29sdW1ucyhEKXtyZXR1cm4gRC5maWx0ZXIoTD0+IUwuaGlkZGVuJiZ0aGlzLl9faXNDb2x1bW5FZGl0YWJsZShMKSl9c3RhcnRFZGl0aW5nKEQsTCl7aWYoIXRoaXMuX19pc0NvbHVtbkVkaXRhYmxlKEwpKXJldHVybjtsZXQgZWU9dGhpcy5nZXRSb3dJZChEKSxEZT1TdHJpbmcoTC5rZXkpO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6ZWUsY29sS2V5OkRlfSx0aGlzLl9fZWRpdGluZ0NlbGw9e3Jvd0lkOmVlLGNvbEtleTpEZX0sdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IEllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGV4dCwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtY2hlY2tib3gsIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC1kYXRlcGlja2VyLCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10YWdzIik7SWU/LmZvY3VzPy4oKSxJZT8udGFnTmFtZT09PSJERUVTLUlOUFVULURST1BET1dOIiYmSWUudXBkYXRlQ29tcGxldGU/LnRoZW4oKCk9PkllLnRvZ2dsZVNlbGVjdGlvbkJveD8uKCkpfSl9Y2FuY2VsQ2VsbEVkaXQoKXt0aGlzLl9fZWRpdGluZ0NlbGw9dm9pZCAwLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWNvbW1pdENlbGxFZGl0KEQsTCxlZSl7bGV0IERlPVN0cmluZyhMLmtleSksSWU9RFtMLmtleV0sR2U9TC5wYXJzZT9MLnBhcnNlKGVlLEQpOmVlO2lmKEwudmFsaWRhdGUpe2xldCB0dD1MLnZhbGlkYXRlKEdlLEQpO2lmKHR5cGVvZiB0dD09InN0cmluZyIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGxFZGl0RXJyb3IiLHtkZXRhaWw6e3JvdzpELGtleTpEZSx2YWx1ZTpHZSxtZXNzYWdlOnR0fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpO3JldHVybn19R2UhPT1JZSYmKERbTC5rZXldPUdlLHRoaXMuX19yZWNvcmRDZWxsSW5TbmFwc2hvdChELEwpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGxFZGl0Iix7ZGV0YWlsOntyb3c6RCxrZXk6RGUsb2xkVmFsdWU6SWUsbmV3VmFsdWU6R2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpLHRoaXMuX19lZGl0aW5nQ2VsbD12b2lkIDAsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9X19yZWNvcmRDZWxsSW5TbmFwc2hvdChELEwpe2lmKHRoaXMuaGlnaGxpZ2h0VXBkYXRlcyE9PSJmbGFzaCJ8fCF0aGlzLl9fcHJldlNuYXBzaG90fHwhdGhpcy5yb3dLZXkpcmV0dXJuO2xldCBlZT10aGlzLmdldFJvd0lkKEQpLERlPXRoaXMuX19wcmV2U25hcHNob3QuZ2V0KGVlKTtEZXx8KERlPW5ldyBNYXAsdGhpcy5fX3ByZXZTbmFwc2hvdC5zZXQoZWUsRGUpKSxEZS5zZXQoU3RyaW5nKEwua2V5KSxDNChELEwsdGhpcy5kaXNwbGF5RnVuY3Rpb24pKX1yZW5kZXJDZWxsRWRpdG9yKEQsTCl7bGV0IGVlPURbTC5rZXldLERlPUwuZm9ybWF0P0wuZm9ybWF0KGVlLEQpOmVlLEllPUwuZWRpdG9yPz8idGV4dCIsR2U9cyh0dD0+dGhpcy5jb21taXRDZWxsRWRpdChELEwsdHQudmFsdWUpLCJvblRleHRDb21taXQiKTtzd2l0Y2goSWUpe2Nhc2UiY2hlY2tib3giOnJldHVybiB3YDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAudmFsdWU9JHshIURlfQogICAgICAgICAgQG5ld1ZhbHVlPSR7dHQ9Pnt0dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNvbW1pdENlbGxFZGl0KEQsTCx0dC5kZXRhaWwpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PmA7Y2FzZSJkcm9wZG93biI6e2xldCB0dD1MLmVkaXRvck9wdGlvbnM/Lm9wdGlvbnM/P1tdLGF0PXR0LmZpbmQoeHQ9Pnh0PT1udWxsPyExOnR5cGVvZiB4dD09InN0cmluZyI/eHQ9PT1lZTp4dC5rZXk9PT1lZXx8eHQub3B0aW9uPT09ZWUpPz9udWxsO3JldHVybiB3YDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAudmludGVncmF0ZWQ9JHshMH0KICAgICAgICAgIC5vcHRpb25zPSR7dHR9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthdH0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3h0PT57eHQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGdhPXh0LmRldGFpbCx3dD1nYT8ub3B0aW9uPz9nYT8ua2V5Pz9nYTt0aGlzLmNvbW1pdENlbGxFZGl0KEQsTCx3dCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+YH1jYXNlImRhdGUiOnJldHVybiB3YDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIC52YWx1ZT0ke0RlfQogICAgICAgICAgQGZvY3Vzb3V0PSR7dHQ9PkdlKHR0LnRhcmdldCl9CiAgICAgICAgICBAa2V5ZG93bj0ke3R0PT50aGlzLl9faGFuZGxlRWRpdG9yS2V5KHR0LEQsTCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPmA7Y2FzZSJ0YWdzIjpyZXR1cm4gd2A8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAudmFsdWU9JHtEZT8/W119CiAgICAgICAgICBAZm9jdXNvdXQ9JHt0dD0+R2UodHQudGFyZ2V0KX0KICAgICAgICAgIEBrZXlkb3duPSR7dHQ9PnRoaXMuX19oYW5kbGVFZGl0b3JLZXkodHQsRCxMKX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+YDtkZWZhdWx0OnJldHVybiB3YDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC52aW50ZWdyYXRlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7RGU9PW51bGw/IiI6U3RyaW5nKERlKX0KICAgICAgICAgIEBmb2N1c291dD0ke3R0PT5HZSh0dC50YXJnZXQpfQogICAgICAgICAgQGtleWRvd249JHt0dD0+dGhpcy5fX2hhbmRsZUVkaXRvcktleSh0dCxELEwpfQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5gfX1fX2hhbmRsZUVkaXRvcktleShELEwsZWUpe2lmKEQua2V5PT09IkVzY2FwZSIpRC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jYW5jZWxDZWxsRWRpdCgpLHRoaXMuZm9jdXMoKTtlbHNlIGlmKEQua2V5PT09IkVudGVyIil7RC5wcmV2ZW50RGVmYXVsdCgpLEQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IERlPUQudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoTCxlZSxEZS52YWx1ZSksdGhpcy5tb3ZlRm9jdXNlZENlbGwoMCwxLCEwKX1lbHNlIGlmKEQua2V5PT09IlRhYiIpe0QucHJldmVudERlZmF1bHQoKSxELnN0b3BQcm9wYWdhdGlvbigpO2xldCBEZT1ELnRhcmdldDt0aGlzLmNvbW1pdENlbGxFZGl0KEwsZWUsRGUudmFsdWUpLHRoaXMubW92ZUZvY3VzZWRDZWxsKEQuc2hpZnRLZXk/LTE6MSwwLCEwKX19bW92ZUZvY3VzZWRDZWxsKEQsTCxlZSl7bGV0IERlPXRoaXMuX2xhc3RWaWV3RGF0YT8/W107aWYoRGUubGVuZ3RoPT09MClyZXR1cm47bGV0IEllPXRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCksR2U9dGhpcy5fX2VkaXRhYmxlQ29sdW1ucyhJZSk7aWYoR2UubGVuZ3RoPT09MClyZXR1cm47bGV0IHR0PTAsYXQ9MDtpZih0aGlzLl9fZm9jdXNlZENlbGwmJih0dD1EZS5maW5kSW5kZXgod3Q9PnRoaXMuZ2V0Um93SWQod3QpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLnJvd0lkKSxhdD1HZS5maW5kSW5kZXgod3Q9PlN0cmluZyh3dC5rZXkpPT09dGhpcy5fX2ZvY3VzZWRDZWxsLmNvbEtleSksdHQ8MCYmKHR0PTApLGF0PDAmJihhdD0wKSksRCE9PTApe2ZvcihhdCs9RDthdD49R2UubGVuZ3RoOylhdC09R2UubGVuZ3RoLHR0Kz0xO2Zvcig7YXQ8MDspYXQrPUdlLmxlbmd0aCx0dC09MX1pZihMIT09MCYmKHR0Kz1MKSx0dDwwfHx0dD49RGUubGVuZ3RoKXt0aGlzLmNhbmNlbENlbGxFZGl0KCk7cmV0dXJufWxldCB4dD1EZVt0dF0sZ2E9R2VbYXRdO3RoaXMuX19mb2N1c2VkQ2VsbD17cm93SWQ6dGhpcy5nZXRSb3dJZCh4dCksY29sS2V5OlN0cmluZyhnYS5rZXkpfSxlZT90aGlzLnN0YXJ0RWRpdGluZyh4dCxnYSk6dGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje2l0KHIsdCl9fTtyZXR1cm4gQzc9cn0pKCl9KTt2YXIgclFlPWYoKCk9PntYWGUoKX0pO3ZhciBnbGEsYmxhPWYoKCk9PntsZSgpO05hKCk7Z2xhPXMoKCk9PndgCiAgPHN0eWxlPgogICAgJHtYYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZm9ybS1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnN0YXR1cy1tZXNzYWdlIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgICAKICAgICAgLnN0YXR1cy1tZXNzYWdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSAzNS4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNjUuMyUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA0MC42JSkiLCJoc2woMCA3Mi4yJSA2MC42JSkiKX07CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PWEucXVlcnlTZWxlY3RvcigiLmZvcm0tb3V0cHV0Iik7ZSYmdCYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChhc3luYyBpPT57bGV0IG89aS5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsbyksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJQcm9jZXNzaW5nIHlvdXIgcmVnaXN0cmF0aW9uLi4uIiksdC5pbm5lckhUTUw9YDxzdHJvbmc+U3VibWl0dGVkIERhdGE6PC9zdHJvbmc+CiR7SlNPTi5zdHJpbmdpZnkobyxudWxsLDIpfWAsYXdhaXQgQXQucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS5zZXRTdGF0dXMoInN1Y2Nlc3MiLCJSZWdpc3RyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKSxhd2FpdCBBdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnJlc2V0KCksdC5pbm5lckhUTUw9IjxlbT5Gb3JtIGhhcyBiZWVuIHJlc2V0PC9lbT4ifSkpLGUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duLCBkZWVzLWlucHV0LWNoZWNrYm94IikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IiwoKT0+e2NvbnNvbGUubG9nKCJGaWVsZCBjaGFuZ2VkOiIsaS5nZXRBdHRyaWJ1dGUoImtleSIpKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJDb21wbGV0ZSBGb3JtIEV4YW1wbGUiIC5kZXNjcmlwdGlvbj0iQSBjb21wcmVoZW5zaXZlIGZvcm0gd2l0aCB2YXJpb3VzIGlucHV0IHR5cGVzLCB2YWxpZGF0aW9uLCBhbmQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsaW5nIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImZpcnN0TmFtZSIgCiAgICAgICAgICAgIGxhYmVsPSJGaXJzdCBOYW1lIgogICAgICAgICAgICAuaW5mb1RleHQ9JHsiWW91ciBnaXZlbiBuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9Imxhc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImVtYWlsIiAKICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJXZSB3aWxsIHVzZSB0aGlzIHRvIGNvbnRhY3QgeW91In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIGtleT0iY291bnRyeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNvdW50cnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJwYXNzd29yZCIKICAgICAgICAgICAgbGFiZWw9IlBhc3N3b3JkIgogICAgICAgICAgICBpc1Bhc3N3b3JkQm9vbAogICAgICAgICAgICAuaW5mb1RleHQ9JHsiTWluaW11bSA4IGNoYXJhY3RlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJ0ZXJtcyIKICAgICAgICAgICAgbGFiZWw9IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJuZXdzbGV0dGVyIgogICAgICAgICAgICBsYWJlbD0iU2VuZCBtZSBwcm9tb3Rpb25hbCBlbWFpbHMiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIEFjY291bnQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1vdXRwdXQiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGNvbGxlY3RlZCBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtlJiYoY29uc29sZS5sb2coIkhvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlIiksZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKHI9PntsZXQgaT1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJGaWx0ZXIgYXBwbGllZDoiLGkpO2xldCBvPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMDApKzE7Y29uc29sZS5sb2coYEZvdW5kICR7b30gcmVzdWx0cyB3aXRoIGZpbHRlcnM6YCxpKX0pKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltrZXldIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0Iixhc3luYygpPT57bGV0IGk9YXdhaXQgZS5jb2xsZWN0Rm9ybURhdGEoKTtjb25zb2xlLmxvZygiTGl2ZSBmaWx0ZXIgdXBkYXRlOiIsaSl9KX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAuaGVhZGluZz0iSG9yaXpvbnRhbCBGb3JtIExheW91dCIgLmRlc2NyaXB0aW9uPSJDb21wYWN0IGZvcm0gd2l0aCBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IC0gcGVyZmVjdCBmb3IgZmlsdGVycyBhbmQgcXVpY2sgZm9ybXMiPgogICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICBrZXk9InNlYXJjaCIgCiAgICAgICAgICAgIGxhYmVsPSJTZWFyY2giCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBrZXl3b3Jkcy4uLiIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJjYXRlZ29yeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3J5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJBbGwiLGtleToiYWxsIn0se29wdGlvbjoiUHJvZHVjdHMiLGtleToicHJvZHVjdHMifSx7b3B0aW9uOiJTZXJ2aWNlcyIsa2V5OiJzZXJ2aWNlcyJ9LHtvcHRpb246IlN1cHBvcnQiLGtleToic3VwcG9ydCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0ic29ydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNvcnQgQnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246Ik5ld2VzdCIsa2V5OiJuZXdlc3QifSx7b3B0aW9uOiJQb3B1bGFyIixrZXk6InBvcHVsYXIifSx7b3B0aW9uOiJQcmljZTogTG93IHRvIEhpZ2giLGtleToicHJpY2VfYXNjIn0se29wdGlvbjoiUHJpY2U6IEhpZ2ggdG8gTG93IixrZXk6InByaWNlX2Rlc2MifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9ImluU3RvY2siCiAgICAgICAgICAgIGxhYmVsPSJJbiBTdG9jayBPbmx5IgogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBlPWEucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIiksdD1hLnF1ZXJ5U2VsZWN0b3IoIiNzdGF0dXMtZGlzcGxheSIpO2lmKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChhc3luYyBpPT57bGV0IG89aS5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiQWR2YW5jZWQgZm9ybSBkYXRhOiIsbyksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4iKSxhd2FpdCBBdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwMCksby5pYmFuJiZvLmliYW4ubGVuZ3RoPjE1PyhlLnNldFN0YXR1cygic3VjY2VzcyIsIkFwcGxpY2F0aW9uIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhIiksdCYmKHQuY2xhc3NOYW1lPSJzdGF0dXMtbWVzc2FnZSBzdWNjZXNzIix0LnRleHRDb250ZW50PSJcdTI3MTMgWW91ciBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQuIFdlIHdpbGwgY29udGFjdCB5b3Ugc29vbi4iKSk6KGUuc2V0U3RhdHVzKCJlcnJvciIsIlBsZWFzZSBjaGVjayB5b3VyIElCQU4iKSx0JiYodC5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIGVycm9yIix0LnRleHRDb250ZW50PSJcdTI3MTcgSW52YWxpZCBJQkFOIGZvcm1hdC4gUGxlYXNlIGNoZWNrIGFuZCB0cnkgYWdhaW4uIikpLGNvbnNvbGUubG9nKCJGb3JtIGRhdGEgbG9nZ2VkOiIsbyl9KSk7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWZpbGV1cGxvYWQiKTtyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaT0+e2xldCBvPWkuZGV0YWlsPy5maWxlc3x8W107Y29uc29sZS5sb2coYCR7by5sZW5ndGh9IGZpbGUocykgc2VsZWN0ZWQgZm9yIHVwbG9hZGApfSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJBZHZhbmNlZCBGb3JtIEZlYXR1cmVzIiAuZGVzY3JpcHRpb249IkZvcm0gd2l0aCBzcGVjaWFsaXplZCBpbnB1dCB0eXBlcyBhbmQgY29tcGxleCB2YWxpZGF0aW9uIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAKICAgICAgICAgICAga2V5PSJpYmFuIgogICAgICAgICAgICBsYWJlbD0iSUJBTiIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIGtleT0icGhvbmUiCiAgICAgICAgICAgIGxhYmVsPSJQaG9uZSBOdW1iZXIiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAga2V5PSJwcmVmZXJlbmNlcyIKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGlmaWNhdGlvbiBQcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbWFpbCIsIlNNUyIsIlB1c2giLCJJbi1BcHAiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVtYWlsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpc2VsZWN0CiAgICAgICAgICAgIGtleT0iaW50ZXJlc3RzIgogICAgICAgICAgICAubGFiZWw9JHsiQXJlYXMgb2YgSW50ZXJlc3QifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJUZWNobm9sb2d5IixrZXk6InRlY2gifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiQnVzaW5lc3MiLGtleToiYnVzaW5lc3MifSx7b3B0aW9uOiJNYXJrZXRpbmciLGtleToibWFya2V0aW5nIn0se29wdGlvbjoiU2FsZXMiLGtleToic2FsZXMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpc2VsZWN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgIGtleT0iZG9jdW1lbnRzIgogICAgICAgICAgICAubGFiZWw9JHsiVXBsb2FkIERvY3VtZW50cyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJQREYsIERPQywgb3IgRE9DWCBmaWxlcyB1cCB0byAxME1CIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEFwcGxpY2F0aW9uPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InN0YXR1cy1kaXNwbGF5Ij48L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIHZsYSxzUWUseGxhLHlsYSxpbT1mKCgpPT57bGUoKTtlYSgpO1l0ZSgpO0xZZSgpO3RhZSgpO240KCk7RVllKCk7aWFlKCk7Y2FlKCk7UlllKCk7SFllKCk7cVllKCk7VlllKCk7VVllKCk7R1llKCk7WVllKCk7S1llKCk7TnNlKCk7UnNlKCk7VGYoKTtyUWUoKTtibGEoKTt2bGE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHNRZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0seGxhPVtHdGUsUXRlLGVhZSxsYWUsZGFlLGhhZSxtYWUsYmFlLHJhZSxzYWUsYWFlLHZhZSx4YWUseWFlLHdhZSxqVyxPc2UsQnNlXSx5bGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWZvcm0iKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0Zvcm0iKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6Imhvcml6b250YWwtbGF5b3V0In0pXSx2bGEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJob3Jpem9udGFsTGF5b3V0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHA9PiJob3Jpem9udGFsTGF5b3V0ImluIHAsImhhcyIpLGdldDpzKHA9PnAuaG9yaXpvbnRhbExheW91dCwiZ2V0Iiksc2V0OnMoKHAsdSk9PntwLmhvcml6b250YWxMYXlvdXQ9dX0sInNldCIpfSxtZXRhZGF0YTpjfSxuLGwpLHZsYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLHQpLGQ9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPWdsYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZvcm0iXTtuYW1lPSJteWZvcm0iO2NoYW5nZVN1YmplY3Q9bmV3IEh0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3JlYWR5RGVmZXJyZWQ9SHQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9c1FlKHRoaXMsbiwhMSk7Z2V0IGhvcml6b250YWxMYXlvdXQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaG9yaXpvbnRhbExheW91dChjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtob3Jpem9udGFsLWxheW91dF0pIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpLHRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCk7Zm9yKGxldCBwIG9mIGMpcC5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShhc3luYygpPT57bGV0IHU9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh1KSxjb25zb2xlLmxvZyh1KSx0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl9KTthd2FpdCB0aGlzLmFkZEJlaGF2aW91cnMoKSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWdldEZvcm1FbGVtZW50cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoYz0+eGxhLmluY2x1ZGVzKGMuY29uc3RydWN0b3IpKX1nZXRTdWJtaXRCdXR0b24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkuZmluZChjPT5jIGluc3RhbmNlb2Ygb2FlKX1hc3luYyB1cGRhdGVSZXF1aXJlZFN0YXR1cygpe2NvbnNvbGUubG9nKCJjaGVja2luZyB0aGUgcmVxdWlyZWQgc3RhdHVzLiIpO2xldCBjPSEwO2ZvcihsZXQgdSBvZiB0aGlzLmdldEZvcm1FbGVtZW50cygpKXUucmVxdWlyZWQmJiF1LnZhbHVlJiYoYz0hMSk7bGV0IHA9dGhpcy5nZXRTdWJtaXRCdXR0b24oKTtwJiYocC5kaXNhYmxlZD0hYyl9YXN5bmMgY29sbGVjdEZvcm1EYXRhKCl7bGV0IGM9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxwPXt9O2ZvcihsZXQgdSBvZiBjKXtpZighdS5rZXkpe2NvbnNvbGUubG9nKGBmb3JtIGVsZW1lbnQgd2l0aCBsYWJlbCAiJHt1LmxhYmVsfSIgaGFzIG5vIGtleS4gc2tpcHBpbmcuYCk7Y29udGludWV9cFt1LmtleV09dS52YWx1ZX1yZXR1cm4gcH1hc3luYyBnYXRoZXJBbmREaXNwYXRjaCgpe2xldCBjPWF3YWl0IHRoaXMuY29sbGVjdEZvcm1EYXRhKCkscD1uZXcgQ3VzdG9tRXZlbnQoImZvcm1EYXRhIix7ZGV0YWlsOntkYXRhOmN9LGJ1YmJsZXM6ITB9KTt0aGlzLmRpc3BhdGNoRXZlbnQocCksY29uc29sZS5sb2coImRpc3BhdGNoZWQgZGF0YToiKSxjb25zb2xlLmxvZyhjKX1zZXRTdGF0dXMoYyxwKXtsZXQgdT10aGlzLmdldEZvcm1FbGVtZW50cygpLG09dGhpcy5nZXRTdWJtaXRCdXR0b24oKTtpZihtKXtzd2l0Y2goYyl7Y2FzZSJub3JtYWwiOm0uZGlzYWJsZWQ9ITEsbS5zdGF0dXM9Im5vcm1hbCI7Zm9yKGxldCB2IG9mIHUpdi5kaXNhYmxlZD0hMTticmVhaztjYXNlInBlbmRpbmciOm0uZGlzYWJsZWQ9ITAsbS5zdGF0dXM9InBlbmRpbmciO2ZvcihsZXQgdiBvZiB1KXYuZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJzdWNjZXNzIjptLmRpc2FibGVkPSEwLG0uc3RhdHVzPSJzdWNjZXNzIjtmb3IobGV0IHYgb2YgdSl2LmRpc2FibGVkPSEwO2JyZWFrO2Nhc2UiZXJyb3IiOm0uZGlzYWJsZWQ9ITAsbS5zdGF0dXM9ImVycm9yIjtmb3IobGV0IHYgb2YgdSl2LmRpc2FibGVkPSEwO2JyZWFrfW0udGV4dD1wfX1yZXNldCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCBwIG9mIGMpcC52YWx1ZT1udWxsO3RoaXMuc2V0U3RhdHVzKCJub3JtYWwiLCJTdWJtaXQiKX1hc3luYyBhZGRCZWhhdmlvdXJzKCl7dGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixjPT57bGV0IHA9Yy50YXJnZXQ7aWYoeGxhLmluY2x1ZGVzKHAuY29uc3RydWN0b3IpJiZjLmtleT09PSJFbnRlciIpe2xldCB1PXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksbT11LmluZGV4T2YocCk7bTx1Lmxlbmd0aC0xP3VbbSsxXS5mb2N1cygpOihwLmJsdXIoKSx0aGlzLmdldFN1Ym1pdEJ1dHRvbigpPy5mb2N1cygpKX19KX11cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpO2ZvcihsZXQgcCBvZiBjKSJsYXlvdXRNb2RlImluIHAmJihwLmxheW91dE1vZGU9ImF1dG8iKX11cGRhdGVkKGMpe3N1cGVyLnVwZGF0ZWQoYyksYy5oYXMoImhvcml6b250YWxMYXlvdXQiKSYmdGhpcy51cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksc1FlKHRoaXMsbCl9c3RhdGlje3NRZShyLHQpfX07cmV0dXJuIGQ9cn0pKCl9KTt2YXIgd2xhLE1sYT1mKCgpPT57bGUoKTtOYSgpO1lzKCk7aW0oKTtUZigpO240KCk7dmEoKTt3bGE9cygoKT0+d2AKICA8c3R5bGU+CiAgICAke1hgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgcj10LmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7cn1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PnthLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCByPXQuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7cn1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PnthLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh0PT57dC5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCByPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYocil7bGV0IGk9ci5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7aX1gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgcj10LmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIsaT10LmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHtyfSwgcG9zaXRpb249JHtpfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLHQ9YS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLHI9YS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTtlJiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0IiksdD1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxyPWEucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxpPWEucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO3QmJmUmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLHImJmUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsbz0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke28uZGV0YWlsLmRhdGF9YH0pLGkmJmUmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e2UudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IEF0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSx0PWEucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7ZSYmdCYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsbz0+e3QuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShvLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJyksaT1hLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTtyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSksaSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2EucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHQ9PntsZXQgcj10LmdldEF0dHJpYnV0ZSgidHlwZSIpO3ImJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHtyfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBlPWEucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0sdD1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO2UmJmUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChpLG8pPT57aS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBuPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtvXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke259IGNsaWNrZWRgKX0pfSksdCYmdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKGksbyk9PntpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG49WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtvXTtvIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke259IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgSDEsYXMsa2xhLGtmPWYoKCk9PntsZSgpO2VhKCk7TWxhKCk7UWUoKTtIMT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sYXM9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGtsYT0oKCk9PntsZXQgYT1baWUoImRlZXMtYnV0dG9uIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzQnV0dG9uIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLGQ9WyQoKV0sdT1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bJCh7dHlwZTpCb29sZWFufSldLHk9WyQoe3R5cGU6U3RyaW5nfSldLE49WyQoe3R5cGU6U3RyaW5nfSldLE89WyQoe3R5cGU6U3RyaW5nfSldLEI9WyQoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEU9WyQoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sVz1bJCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxIMSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+InRleHQiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS50ZXh0LCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnRleHQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbixsKSxIMSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4iZXZlbnREZXRhaWxEYXRhImluIFUsImhhcyIpLGdldDpzKFU9PlUuZXZlbnREZXRhaWxEYXRhLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLmV2ZW50RGV0YWlsRGF0YT1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxjLHApLEgxKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+ImRpc2FibGVkImluIFUsImhhcyIpLGdldDpzKFU9PlUuZGlzYWJsZWQsImdldCIpLHNldDpzKChVLG1lKT0+e1UuZGlzYWJsZWQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbSx2KSxIMSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJpc0hpZGRlbiJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLmlzSGlkZGVuLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLmlzSGlkZGVuPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGIsZyksSDEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJ0eXBlImluIFUsImhhcyIpLGdldDpzKFU9PlUudHlwZSwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS50eXBlPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGssQyksSDEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJzaXplImluIFUsImhhcyIpLGdldDpzKFU9PlUuc2l6ZSwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5zaXplPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LF8seiksSDEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+InN0YXR1cyJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLnN0YXR1cywiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5zdGF0dXM9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sVCxQKSxIMSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+Imluc2lkZUZvcm0iaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5pbnNpZGVGb3JtLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLmluc2lkZUZvcm09bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sTSxTKSxIMSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+Imljb24iaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5pY29uLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLmljb249bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sQSxGKSxIMSh0aGlzLG51bGwsVyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4iaWNvblBvc2l0aW9uImluIFUsImhhcyIpLGdldDpzKFU9PlUuaWNvblBvc2l0aW9uLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLmljb25Qb3NpdGlvbj1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxqLEcpLEgxKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlJ9LG51bGwsdCksaGU9cj1lLnZhbHVlLFImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Un0pfXN0YXRpYyBkZW1vPXdsYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPWFzKHRoaXMsbix2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoUil7dGhpcy4jZT1SfSN0PShhcyh0aGlzLGwpLGFzKHRoaXMsYyx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShSKXt0aGlzLiN0PVJ9I2E9KGFzKHRoaXMscCksYXModGhpcyxtLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpc2FibGVkKFIpe3RoaXMuI2E9Un0jcj0oYXModGhpcyx2KSxhcyh0aGlzLGIsITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNIaWRkZW4oUil7dGhpcy4jcj1SfSNzPShhcyh0aGlzLGcpLGFzKHRoaXMsaywiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNzfXNldCB0eXBlKFIpe3RoaXMuI3M9Un0jaT0oYXModGhpcyxDKSxhcyh0aGlzLF8sImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2l6ZShSKXt0aGlzLiNpPVJ9I289KGFzKHRoaXMseiksYXModGhpcyxULCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNvfXNldCBzdGF0dXMoUil7dGhpcy4jbz1SfSNuPShhcyh0aGlzLFApLGFzKHRoaXMsTSwhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI259c2V0IGluc2lkZUZvcm0oUil7dGhpcy4jbj1SfSNsPShhcyh0aGlzLFMpLGFzKHRoaXMsQSx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKFIpe3RoaXMuI2w9Un0jYz0oYXModGhpcyxGKSxhcyh0aGlzLGosImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oUil7dGhpcy4jYz1SfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxhcyh0aGlzLEcpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogRm9ybSBzcGFjaW5nIHN0eWxlcyAqLwogICAgICA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXTpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1yaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLWZvcm1baG9yaXpvbnRhbC1sYXlvdXRdIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgICAgfQoKICAgICAgLmJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogU2l6ZSB2YXJpYW50cyAqLwogICAgICAuYnV0dG9uLnNpemUtZGVmYXVsdCB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1zbSB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1sZyB7CiAgICAgICAgaGVpZ2h0OiA0NHB4OwogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1pY29uIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgICB9CgogICAgICAuYnV0dG9uLmRlZmF1bHQ6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDEwLjIlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGVzdHJ1Y3RpdmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDk4JSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDU2LjIlKTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDUyLjIlKTsKICAgICAgfQoKICAgICAgLyogT3V0bGluZSB2YXJpYW50ICovCiAgICAgIC5idXR0b24ub3V0bGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjYuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBTZWNvbmRhcnkgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICB9CgogICAgICAvKiBHaG9zdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZ2hvc3QgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5naG9zdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExpbmsgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmxpbmsgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24ubGluazpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBzdGF0ZXMgKi8KICAgICAgLmJ1dHRvbi5wZW5kaW5nLAogICAgICAuYnV0dG9uLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uZXJyb3IgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmctbGVmdDogMzZweDsgLyogU3BhY2UgZm9yIHNwaW5uZXIgKi8KICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1zbS5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtc20uZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1sZy5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtbGcuZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNjIuOCUgNzAuNiUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCA2Mi44JSA3MC42JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBIaWRkZW4gc3RhdGUgKi8KICAgICAgLmJ1dHRvbi5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlICovCiAgICAgIC5idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgICB9CgogICAgICAvKiBMb2FkaW5nIHNwaW5uZXIgKi8KICAgICAgZGVlcy1zcGlubmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTBweDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbSBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDE0cHg7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBJY29uIHNpemluZyB3aXRoaW4gYnV0dG9ucyAqLwogICAgICAuYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQoKICAgICAgLyogVGV4dCBhbGlnbm1lbnQgKi8KICAgICAgLnRleHRib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgIGBdO2V4dHJhY3RMaWdodERvbSgpe2xldCBSPXRoaXMucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIiksVT1BcnJheS5mcm9tKHRoaXMuY2hpbGROb2RlcykuZmlsdGVyKG1lPT5tZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKS5tYXAobWU9Pm1lLnRleHRDb250ZW50Py50cmltKCkpLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIik7aWYoVSYmIXRoaXMudGV4dCYmKHRoaXMudGV4dD1VKSxSKXtsZXQgbWU9Ui5pY29ufHxSLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwoUi5pY29uRkE/YGZhOiR7Ui5pY29uRkF9YDpudWxsKTtpZihtZSl7bGV0IEk9QXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMpLHE9SS5pbmRleE9mKFIpLGNlPUkuZmlsdGVyKHVlPT51ZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZ1ZS50ZXh0Q29udGVudD8udHJpbSgpKTtpZihjZS5sZW5ndGg+MCl7bGV0IHVlPUkuaW5kZXhPZihjZVswXSk7dGhpcy5pY29uUG9zaXRpb249cTx1ZT8ibGVmdCI6InJpZ2h0In10aGlzLmljb249bWV9Ui5yZW1vdmUoKX10aGlzLmlubmVySFRNTD0iIn1yZW5kZXIoKXtsZXQgVT17bm9ybWFsOiJkZWZhdWx0IixoaWdobGlnaHRlZDoiZGVzdHJ1Y3RpdmUiLGRpc2NyZWV0OiJvdXRsaW5lIixiaWc6ImRlZmF1bHQifVt0aGlzLnR5cGVdfHx0aGlzLnR5cGUsbWU9dGhpcy50eXBlPT09ImJpZyI/ImxnIjp0aGlzLnNpemUsST10aGlzLmljb25Qb3NpdGlvbj09PSJsZWZ0IiYmdGhpcy5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIixxPXRoaXMuaWNvblBvc2l0aW9uPT09InJpZ2h0IiYmdGhpcy5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIixjZT1tZT09PSJpY29uIiYmdGhpcy5pY29uO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJ1dHRvbiAke3RoaXMuaXNIaWRkZW4/ImhpZGRlbiI6IiJ9ICR7VX0gc2l6ZS0ke21lfSAke3RoaXMuc3RhdHVzfSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIke3RoaXMuZGlzcGF0Y2hDbGlja30iCiAgICAgID4KICAgICAgICAke3RoaXMuc3RhdHVzPT09Im5vcm1hbCI/d2BgOndgCiAgICAgICAgICA8ZGVlcy1zcGlubmVyCiAgICAgICAgICAgIC5ibnc9JHshMH0KICAgICAgICAgICAgc3RhdHVzPSIke3RoaXMuc3RhdHVzfSIKICAgICAgICAgICAgc2l6ZT0iJHttZT09PSJzbSI/MTQ6bWU9PT0ibGciPzE4OjE2fSIKICAgICAgICAgID48L2RlZXMtc3Bpbm5lcj4KICAgICAgICBgfQogICAgICAgICR7SX0KICAgICAgICAke2NlPyIiOndgPGRpdiBjbGFzcz0idGV4dGJveCI+JHt0aGlzLnRleHR8fCJCdXR0b24ifTwvZGl2PmB9CiAgICAgICAgJHtxfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZGlzcGF0Y2hDbGljaygpe3RoaXMuZGlzYWJsZWR8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrZWQiLHtkZXRhaWw6e2RhdGE6dGhpcy5ldmVudERldGFpbERhdGF9LGJ1YmJsZXM6ITB9KSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5leHRyYWN0TGlnaHREb20oKX1zdGF0aWN7YXMocix0KX19O3JldHVybiBoZT1yfSkoKX0pO3ZhciBfNCx0byxTbGEsSHNlPWYoKCk9Pntyc2EoKTtXcygpO21zKCk7bGUoKTt2YSgpO1hyKCk7a2YoKTtRZSgpO1FyKCk7XzQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHRvPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxTbGE9KCgpPT57bGV0IGE9W0hKKCksaWUoImRlZXMtc3RhdHNncmlkIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNTdGF0c0dyaWQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6TnVtYmVyfSldLHU9WyQoe3R5cGU6TnVtYmVyfSldLHg9WyQoe3R5cGU6QXJyYXl9KV0seT1bSygpXSxOPVtLKCldLE89W0soKV0sXzQodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4idGlsZXMiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy50aWxlcywiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnRpbGVzPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sbixsKSxfNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblRpbGVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4ibWluVGlsZVdpZHRoImluIFMsImhhcyIpLGdldDpzKFM9PlMubWluVGlsZVdpZHRoLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MubWluVGlsZVdpZHRoPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYyxwKSxfNCh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iZ2FwImluIFMsImhhcyIpLGdldDpzKFM9PlMuZ2FwLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuZ2FwPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSx2KSxfNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdyaWRBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJncmlkQWN0aW9ucyJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmdyaWRBY3Rpb25zLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuZ3JpZEFjdGlvbnM9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxiLGcpLF80KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJjb250ZXh0TWVudVZpc2libGUiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5jb250ZXh0TWVudVZpc2libGUsImdldCIpLHNldDpzKChTLEUpPT57Uy5jb250ZXh0TWVudVZpc2libGU9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxrLEMpLF80KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iY29udGV4dE1lbnVQb3NpdGlvbiJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmNvbnRleHRNZW51UG9zaXRpb24sImdldCIpLHNldDpzKChTLEUpPT57Uy5jb250ZXh0TWVudVBvc2l0aW9uPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sXyx6KSxfNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRleHRNZW51QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iY29udGV4dE1lbnVBY3Rpb25zImluIFMsImhhcyIpLGdldDpzKFM9PlMuY29udGV4dE1lbnVBY3Rpb25zLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuY29udGV4dE1lbnVBY3Rpb25zPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sVCxQKSxfNChudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLEI9cj1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPWFzYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPXRvKHRoaXMsbixbXSk7Z2V0IHRpbGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpbGVzKE0pe3RoaXMuI2U9TX0jdD0odG8odGhpcyxsKSx0byh0aGlzLGMsMjUwKSk7Z2V0IG1pblRpbGVXaWR0aCgpe3JldHVybiB0aGlzLiN0fXNldCBtaW5UaWxlV2lkdGgoTSl7dGhpcy4jdD1NfSNhPSh0byh0aGlzLHApLHRvKHRoaXMsbSwxNikpO2dldCBnYXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZ2FwKE0pe3RoaXMuI2E9TX0jcj0odG8odGhpcyx2KSx0byh0aGlzLGIsW10pKTtnZXQgZ3JpZEFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZ3JpZEFjdGlvbnMoTSl7dGhpcy4jcj1NfSNzPSh0byh0aGlzLGcpLHRvKHRoaXMsaywhMSkpO2dldCBjb250ZXh0TWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29udGV4dE1lbnVWaXNpYmxlKE0pe3RoaXMuI3M9TX0jaT0odG8odGhpcyxDKSx0byh0aGlzLF8se3g6MCx5OjB9KSk7Z2V0IGNvbnRleHRNZW51UG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29udGV4dE1lbnVQb3NpdGlvbihNKXt0aGlzLiNpPU19I289KHRvKHRoaXMseiksdG8odGhpcyxULFtdKSk7Z2V0IGNvbnRleHRNZW51QWN0aW9ucygpe3JldHVybiB0aGlzLiNvfXNldCBjb250ZXh0TWVudUFjdGlvbnMoTSl7dGhpcy4jbz1NfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7cGF9OwogICAgICB9CgogICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHNpemluZyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1ncmlkLWdhcDogMTJweDsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTZweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiAxMnB4OwogICAgICAgIC0tY29udGVudC1taW4taGVpZ2h0OiA0MHB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyNnB4OwogICAgICAgIC0tdW5pdC1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1sYWJlbC1mb250LXNpemU6IDEycHg7CiAgICAgICAgLS10aXRsZS1mb250LXNpemU6IDEzcHg7CiAgICAgICAgLS1kZXNjcmlwdGlvbi1zcGFjaW5nOiA4cHg7CiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgfQoKICAgICAgLyogR3JpZCBMYXlvdXQgKi8KICAgICAgLmdyaWQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ3JpZC1nYXApICogMS41KTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JpZC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICB9CgogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7b2EoMjUwKX1weCwgMWZyKSk7CiAgICAgICAgZ2FwOiAke29hKDE2KX1weDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogVGlsZSBCYXNlIFN0eWxlcyDigJQgZnJhbWUgcHJvdmlkZWQgYnkgZGVlcy10aWxlLCBob3ZlciB2aWEgOjpwYXJ0ICovCiAgICAgIC5zdGF0cy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAzKSIsInJnYmEoMCwwLDAsMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgSGVhZGVyIOKAlCBzbG90dGVkIGludG8gZGVlcy10aWxlIGhlYWRlciAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGl0bGUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAudGlsZS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUaWxlIENvbnRlbnQg4oCUIHNsb3R0ZWQgaW50byBkZWVzLXRpbGUgY29udGVudCBhcmVhICovCiAgICAgIC50aWxlLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7CiAgICAgIH0KCiAgICAgIC50aWxlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudGlsZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudGlsZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIEdhdWdlIFN0eWxlcyAqLwogICAgICAuZ2F1Z2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZ2F1Z2UtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTIwcHg7CiAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4OwogICAgICB9CgogICAgICAuZ2F1Z2Utc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1iYWNrZ3JvdW5kIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICB9CgogICAgICAuZ2F1Z2UtZmlsbCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdhdWdlLXRleHQgewogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbmNob3I6IG1pZGRsZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5nYXVnZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmaWxsOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7cGF9OwogICAgICB9CgogICAgICAvKiBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAucGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBNdWx0aSBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAubXVsdGktcGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogQ1BVIENvcmVzIFN0eWxlcyAqLwogICAgICAuY3B1LWNvcmVzLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGdhcDogM3B4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1iYXJzLmNlbnRlcmVkIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiA2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci13cmFwcGVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubG93IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZyk7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5oaWdoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogUGFydGl0aW9uIFN0eWxlcyAqLwogICAgICAucGFydGl0aW9uLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tcGVyY2VudGFnZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXdhcm5pbmcpOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1maWxlc3lzdGVtIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbW91bnRwb2ludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNrIFN0eWxlcyAqLwogICAgICAuZGlzay13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpc2stY2FwYWNpdHkgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5kaXNrLW1vZGVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZGlzay10eXBlLWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmRpc2stbWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5nb29kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAvKiBUcmVuZCBTdHlsZXMgKi8KICAgICAgLnRyZW5kLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50cmVuZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudHJlbmQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudHJlbmQtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtZ3JhcGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudHJlbmQtbGluZSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIH0KCiAgICAgIC50cmVuZC1hcmVhIHsKICAgICAgICBmaWxsOiAke2guYmRUaGVtZSgicmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KSIsInJnYmEoMTAwLCAxMDAsIDEwMCwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRleHQgVmFsdWUgU3R5bGVzICovCiAgICAgIC50ZXh0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAvKiBDb250ZXh0IE1lbnUgKi8KICAgICAgZGVlcy1jb250ZXh0bWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGAsaC5jc3NGb3JUYWJsZXQoWGAKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICAgIH0KICAgIGAsciksaC5jc3NGb3JQaGFibGV0KFhgCiAgICAgIDpob3N0IHsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTJweDsKICAgICAgICAtLXZhbHVlLWZvbnQtc2l6ZTogMjJweDsKICAgICAgICAtLXRpdGxlLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAtLWdyaWQtZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy10aWxlIHsKICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGAsciksaC5jc3NGb3JQaG9uZShYYAogICAgICA6aG9zdCB7CiAgICAgICAgLS10aWxlLXBhZGRpbmc6IDEwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDIwcHg7CiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQogICAgYCxyKV07Y29uc3RydWN0b3IoKXtzdXBlcigpLHRvKHRoaXMsUCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtdGl0bGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1hY3Rpb25zIj4KICAgICAgICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLm1hcChNPT53YAogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiAKICAgICAgICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuaGFuZGxlR3JpZEFjdGlvbihNKX0KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBzaXplPSJzbSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke00uaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSR7TS5pY29uTmFtZX0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke00ubmFtZX0KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDsiPgogICAgICAgICR7dGhpcy50aWxlcy5tYXAoTT0+dGhpcy5yZW5kZXJUaWxlKE0pKX0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY29udGV4dE1lbnVWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtY29udGV4dG1lbnUKICAgICAgICAgIC54PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnh9CiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fQogICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuY29udGV4dE1lbnVBY3Rpb25zfQogICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITF9CiAgICAgICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyVGlsZShNKXtsZXQgUz1NLmFjdGlvbnMmJk0uYWN0aW9ucy5sZW5ndGg+MCxFPVMmJk0uYWN0aW9ucy5sZW5ndGg9PT0xLEE9TS5jb2x1bW5TcGFuJiZNLmNvbHVtblNwYW4+MT9NLmNvbHVtblNwYW46dm9pZCAwO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlCiAgICAgICAgY2xhc3M9InN0YXRzLXRpbGUgJHtFPyJjbGlja2FibGUiOiIifSIKICAgICAgICBzdHlsZT0iJHtBP2BncmlkLWNvbHVtbjogc3BhbiAke0F9YDoiIn0iCiAgICAgICAgQGNsaWNrPSR7RT8oKT0+dGhpcy5oYW5kbGVUaWxlQWN0aW9uKE0uYWN0aW9uc1swXSxNKTp2b2lkIDB9CiAgICAgICAgQGNvbnRleHRtZW51PSR7Uz9GPT50aGlzLnNob3dDb250ZXh0TWVudShGLE0pOnZvaWQgMH0KICAgICAgPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGlsZS1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJ0aWxlLXRpdGxlIj4ke00udGl0bGV9PC9oMz4KICAgICAgICAgICR7TS5pY29uP3dgCiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InRpbGUtaWNvbiIgLmljb249JHtNLmljb259IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoTSl9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7TS5kZXNjcmlwdGlvbiYmTS50eXBlIT09InRyZW5kIj93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJ0aWxlLWRlc2NyaXB0aW9uIj4ke00uZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlclRpbGVDb250ZW50KE0pe3N3aXRjaChNLnR5cGUpe2Nhc2UibnVtYmVyIjpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiIHN0eWxlPSIke00uY29sb3I/YGNvbG9yOiAke00uY29sb3J9YDoiIn0iPgogICAgICAgICAgICA8c3Bhbj4ke00udmFsdWV9PC9zcGFuPgogICAgICAgICAgICAke00udW5pdD93YDxzcGFuIGNsYXNzPSJ0aWxlLXVuaXQiPiR7TS51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImdhdWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJHYXVnZShNKTtjYXNlInBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlclBlcmNlbnRhZ2UoTSk7Y2FzZSJ0cmVuZCI6cmV0dXJuIHRoaXMucmVuZGVyVHJlbmQoTSk7Y2FzZSJtdWx0aVBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlck11bHRpUGVyY2VudGFnZShNKTtjYXNlImNwdUNvcmVzIjpyZXR1cm4gdGhpcy5yZW5kZXJDcHVDb3JlcyhNKTtjYXNlInBhcnRpdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyUGFydGl0aW9uKE0pO2Nhc2UiZGlzayI6cmV0dXJuIHRoaXMucmVuZGVyRGlzayhNKTtjYXNlInRleHQiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC12YWx1ZSIgc3R5bGU9IiR7TS5jb2xvcj9gY29sb3I6ICR7TS5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgICR7TS52YWx1ZX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke00udmFsdWV9PC9kaXY+YH19cmVuZGVyR2F1Z2UoTSl7bGV0IFM9dHlwZW9mIE0udmFsdWU9PSJudW1iZXIiP00udmFsdWU6cGFyc2VGbG9hdChNLnZhbHVlKSxFPU0uZ2F1Z2VPcHRpb25zfHx7bWluOjAsbWF4OjEwMH0sQT0oUy1FLm1pbikvKEUubWF4LUUubWluKSoxMDAsRj0xMjAsVz03MCxHPTYvMisyLGhlPTQwLFI9Ri8yLFU9Vy1HLG1lPVItaGUsST1VLHE9UitoZSx1ZT1gTSAke21lfSAke0l9IEEgJHtoZX0gJHtoZX0gMCAwIDEgJHtxfSAke1V9YCxZPU1hdGguUEkqaGUsUT1ZLVkqQS8xMDAsSj1NLmNvbG9yfHxoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjguOCUpIiwiaHNsKDIxMCA0MCUgNzglKSIpO2lmKEUudGhyZXNob2xkcyl7bGV0IFo9Wy4uLkUudGhyZXNob2xkc10uc29ydCgoZ2UsYWUpPT5hZS52YWx1ZS1nZS52YWx1ZSk7Zm9yKGxldCBnZSBvZiBaKWlmKFM+PWdlLnZhbHVlKXtKPWdlLmNvbG9yO2JyZWFrfX1yZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2UtY29udGFpbmVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9ImdhdWdlLXN2ZyIgdmlld0JveD0iMCAwICR7Rn0gJHtXfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgICAgICAgICAgIDwhLS0gQmFja2dyb3VuZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWJhY2tncm91bmQiCiAgICAgICAgICAgICAgZD0iJHt1ZX0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gRmlsbGVkIGFyYyAtLT4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICBjbGFzcz0iZ2F1Z2UtZmlsbCIKICAgICAgICAgICAgICBkPSIke3VlfSIKICAgICAgICAgICAgICBzdHJva2U9IiR7Sn0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT0iJHtZfSIKICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldD0iJHtRfSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPCEtLSBWYWx1ZSB0ZXh0IC0tPgogICAgICAgICAgICA8dGV4dCBjbGFzcz0iZ2F1Z2UtdGV4dCIgeD0iJHtSfSIgeT0iJHtVLTh9IiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIj4KICAgICAgICAgICAgICA8dHNwYW4+JHtTfTwvdHNwYW4+JHtNLnVuaXQ/d2A8dHNwYW4gY2xhc3M9ImdhdWdlLXVuaXQiIGR4PSIyIiBkeT0iMCI+JHtNLnVuaXR9PC90c3Bhbj5gOiIifQogICAgICAgICAgICA8L3RleHQ+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBlcmNlbnRhZ2UoTSl7bGV0IFM9dHlwZW9mIE0udmFsdWU9PSJudW1iZXIiP00udmFsdWU6cGFyc2VGbG9hdChNLnZhbHVlKSxFPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLFMpKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLXZhbHVlIj4ke0V9JTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2UtYmFyIj4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJwZXJjZW50YWdlLWZpbGwiIAogICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7RX0lOyAke00uY29sb3I/YGJhY2tncm91bmQ6ICR7TS5jb2xvcn1gOiIifSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRyZW5kKE0pe2lmKCFNLnRyZW5kRGF0YXx8TS50cmVuZERhdGEubGVuZ3RoPDIpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtNLnZhbHVlfTwvZGl2PmA7bGV0IFM9TS50cmVuZERhdGEsRT1NYXRoLm1heCguLi5TKSxBPU1hdGgubWluKC4uLlMpLEY9RS1BfHwxLFc9MzAwLGo9MzIsRz0yLGhlPVMubWFwKChVLG1lKT0+e2xldCBJPW1lLyhTLmxlbmd0aC0xKSpXLHE9Rysoai0yKkcpLShVLUEpL0YqKGotMipHKTtyZXR1cm5gJHtJfSwke3F9YH0pLmpvaW4oIiAiKSxSPWAwLCR7an0gJHtoZX0gJHtXfSwke2p9YDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idHJlbmQtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRyZW5kLXZhbHVlIj4ke00udmFsdWV9PC9zcGFuPgogICAgICAgICAgJHtNLnVuaXQ/d2A8c3BhbiBjbGFzcz0idHJlbmQtdW5pdCI+JHtNLnVuaXR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAke00uZGVzY3JpcHRpb24/d2A8c3BhbiBjbGFzcz0idHJlbmQtbGFiZWwiPiR7TS5kZXNjcmlwdGlvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1ncmFwaCI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJ0cmVuZC1zdmciIHZpZXdCb3g9IjAgMCAke1d9ICR7an0iIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgogICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0idHJlbmQtYXJlYSIgcG9pbnRzPSIke1J9IiAvPgogICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9InRyZW5kLWxpbmUiIHBvaW50cz0iJHtoZX0iIC8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck11bHRpUGVyY2VudGFnZShNKXtpZighTS5wZXJjZW50YWdlc3x8TS5wZXJjZW50YWdlcy5sZW5ndGg9PT0wKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7TS52YWx1ZX08L2Rpdj5gO2xldCBTPU0ucGVyY2VudGFnZXMuc2xpY2UoMCwzKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW1zIj4KICAgICAgICAgICR7Uy5tYXAoRT0+e2xldCBBPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLEUudmFsdWUpKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1sYWJlbCI+JHtFLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtdmFsdWUiPiR7QX0lPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWJhciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1maWxsIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtBfSU7ICR7RS5jb2xvcj9gYmFja2dyb3VuZDogJHtFLmNvbG9yfWA6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ3B1Q29yZXMoTSl7aWYoIU0uY29yZXNEYXRhfHxNLmNvcmVzRGF0YS5sZW5ndGg9PT0wKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7TS52YWx1ZX08L2Rpdj5gO2xldCBTPU0uY29yZXNEYXRhLEU9TWF0aC5yb3VuZChTLnJlZHVjZSgoaGUsUik9PmhlK1IudXNhZ2UsMCkvUy5sZW5ndGgpLEE9cyhoZT0+aGU8NTA/ImxvdyI6aGU8ODA/Im1lZGl1bSI6ImhpZ2giLCJnZXRDb2xvckNsYXNzIiksRj1TLmxlbmd0aCoyNCsoUy5sZW5ndGgtMSkqMyxXPU0uY29sdW1uU3Bhbnx8MSxqPXRoaXMubWluVGlsZVdpZHRoKlcrKFctMSkqdGhpcy5nYXAtMzIsRz1GPGoqLjY2NjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy12YWx1ZSI+JHtFfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtdW5pdCI+JTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtbGFiZWwiPiR7Uy5sZW5ndGh9IGNvcmVzPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy1iYXJzICR7Rz8iY2VudGVyZWQiOiIifSI+CiAgICAgICAgICAke1MubWFwKGhlPT57bGV0IFI9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsaGUudXNhZ2UpKSxVPUEoUik7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLWNvbnRhaW5lciIgdGl0bGU9IkNvcmUgJHtoZS5sYWJlbHx8aGUuaWR9OiAke1J9JSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZS1iYXItd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY3B1LWNvcmUtYmFyLWZpbGwgJHtVfSIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iaGVpZ2h0OiAke1J9JSIKICAgICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke1MubGVuZ3RoPD0xNj93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmUtbGFiZWwiPiR7aGUubGFiZWx8fGhlLmlkfTwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWZvcm1hdEJ5dGVzKE0pe2lmKE09PT0wKXJldHVybiIwIEIiO2xldCBTPTEwMjQsRT1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiIsIlBCIl0sQT1NYXRoLmZsb29yKE1hdGgubG9nKE0pL01hdGgubG9nKFMpKTtyZXR1cm4gcGFyc2VGbG9hdCgoTS9NYXRoLnBvdyhTLEEpKS50b0ZpeGVkKDEpKSsiICIrRVtBXX1yZW5kZXJQYXJ0aXRpb24oTSl7aWYoIU0ucGFydGl0aW9uRGF0YSlyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke00udmFsdWV9PC9kaXY+YDtsZXR7dXNlZDpTLHRvdGFsOkUsZmlsZXN5c3RlbTpBLG1vdW50UG9pbnQ6Rn09TS5wYXJ0aXRpb25EYXRhLFc9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsUy9FKjEwMCkpLGo9RS1TLEc9cygoKT0+Vz49OTA/ImNyaXRpY2FsIjpXPj03NT8id2FybmluZyI6IiIsImdldENvbG9yQ2xhc3MiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1wZXJjZW50YWdlIj4ke01hdGgucm91bmQoVyl9JTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tYmFyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InBhcnRpdGlvbi1iYXItZmlsbCAke0coKX0iCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtXfSUiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXRzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5Vc2VkPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyhTKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5GcmVlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyhqKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tbWV0YSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLWZpbGVzeXN0ZW0iPiR7QX08L3NwYW4+CiAgICAgICAgICAke0Y/d2A8c3BhbiBjbGFzcz0icGFydGl0aW9uLW1vdW50cG9pbnQiPiR7Rn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRpc2soTSl7aWYoIU0uZGlza0RhdGEpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtNLnZhbHVlfTwvZGl2PmA7bGV0e2NhcGFjaXR5OlMsbW9kZWw6RSx0eXBlOkEsaW9wczpGLGhlYWx0aDpXfT1NLmRpc2tEYXRhLGo9cyhHPT5HPj03MD8iZ29vZCI6Rz49MzA/Indhcm5pbmciOiJjcml0aWNhbCIsImdldEhlYWx0aENsYXNzIik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpc2std3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1jYXBhY2l0eSI+JHt0aGlzLmZvcm1hdEJ5dGVzKFMpfTwvZGl2PgogICAgICAgICR7RXx8QT93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tb2RlbCI+CiAgICAgICAgICAgICR7RT93YDxzcGFuPiR7RX08L3NwYW4+YDoiIn0KICAgICAgICAgICAgJHtBP3dgPHNwYW4gY2xhc3M9ImRpc2stdHlwZS1iYWRnZSI+JHtBfTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLW1ldHJpY3MiPgogICAgICAgICAgJHtGP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1pb3BzLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy1sYWJlbCI+UmVhZDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7Ri5yZWFkLnRvTG9jYWxlU3RyaW5nKCl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPldyaXRlPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy12YWx1ZSI+JHtGLndyaXRlLnRvTG9jYWxlU3RyaW5nKCl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke1chPT12b2lkIDA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1oZWFsdGgiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtbGFiZWwiPkhlYWx0aDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWhlYWx0aC12YWx1ZSI+JHtXfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1oZWFsdGgtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRpc2staGVhbHRoLWZpbGwgJHtqKFcpfSIKICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke1d9JSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlR3JpZEFjdGlvbihNKXtNLmFjdGlvbiYmYXdhaXQgTS5hY3Rpb24oKX1hc3luYyBoYW5kbGVUaWxlQWN0aW9uKE0sUyl7TS5hY3Rpb24mJmF3YWl0IE0uYWN0aW9uKCl9c2hvd0NvbnRleHRNZW51KE0sUyl7aWYoIVMuYWN0aW9uc3x8Uy5hY3Rpb25zLmxlbmd0aD09PTApcmV0dXJuO00ucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbnRleHRNZW51UG9zaXRpb249e3g6TS5jbGllbnRYLHk6TS5jbGllbnRZfSx0aGlzLmNvbnRleHRNZW51QWN0aW9ucz1TLmFjdGlvbnMsdGhpcy5jb250ZXh0TWVudVZpc2libGU9ITA7bGV0IEU9cygoKT0+e3RoaXMuY29udGV4dE1lbnVWaXNpYmxlPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixFKX0sImNsb3NlSGFuZGxlciIpO3NldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsRSl9LDEwMCl9c3RhdGlje3RvKHIsdCl9fTtyZXR1cm4gQj1yfSkoKX0pO3ZhciBuNSxubCxoS2ksbUtpLGdLaSxiS2ksemxhLENsYT1mKCgpPT57bGUoKTtOYSgpO0hzZSgpO241PWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxubD1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0saEtpPSgoKT0+e2xldCBhPVtpZSgiZGVtby1kYXNoYm9hcmQtdmlldyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZW1vRGFzaGJvYXJkVmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0sbjUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+ImFjdGl2YXRlZCJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLmFjdGl2YXRlZCwiZ2V0Iiksc2V0OnMoKHAsdSk9PntwLmFjdGl2YXRlZD11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksbjUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KSxubChyLHQpfSNlPW5sKHRoaXMsbiwhMSk7Z2V0IGFjdGl2YXRlZCgpe3JldHVybiB0aGlzLiNlfXNldCBhY3RpdmF0ZWQoYyl7dGhpcy4jZT1jfWN0eD1ubCh0aGlzLGwpO3N0YXRzVGlsZXM9W3tpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjEyMzQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiJPbmxpbmUgbm93Iixjb2xvcjoiIzIyYzU1ZSJ9LHtpZDoiYXBpLWNhbGxzIix0aXRsZToiQVBJIENhbGxzIix2YWx1ZTo0NTIwMCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5IixkZXNjcmlwdGlvbjoiKzEyJSBmcm9tIGxhc3QgaG91ciIsY29sb3I6IiMzYjgyZjYiLHRyZW5kRGF0YTpbMzJlMywzNWUzLDM4ZTMsNDFlMywzOWUzLDQyZTMsNDUyMDBdfSx7aWQ6ImhlYWx0aCIsdGl0bGU6IlN5c3RlbSBIZWFsdGgiLHZhbHVlOjk5LjksdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpoZWFydC1wdWxzZSIsZGVzY3JpcHRpb246IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixjb2xvcjoiIzEwYjk4MSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTo4MCxjb2xvcjoiI2VmNDQ0NCJ9LHt2YWx1ZTo5NSxjb2xvcjoiI2Y1OWUwYiJ9LHt2YWx1ZToxMDAsY29sb3I6IiMxMGI5ODEifV19fSx7aWQ6InJlc3BvbnNlIix0aXRsZToiQXZnIFJlc3BvbnNlIix2YWx1ZToxMjcsdW5pdDoibXMiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRpbWVyIixkZXNjcmlwdGlvbjoiLTE1bXMgZnJvbSB5ZXN0ZXJkYXkiLGNvbG9yOiIjOGI1Y2Y2In0se2lkOiJyZXNvdXJjZXMiLHRpdGxlOiJSZXNvdXJjZSBVc2FnZSIsdmFsdWU6IiIsdHlwZToibXVsdGlQZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c2VydmVyIixwZXJjZW50YWdlczpbe2xhYmVsOiJDUFUiLHZhbHVlOjY3LGNvbG9yOiIjM2I4MmY2In0se2xhYmVsOiJNZW1vcnkiLHZhbHVlOjg0LGNvbG9yOiIjOGI1Y2Y2In0se2xhYmVsOiJEaXNrIix2YWx1ZTo0NSxjb2xvcjoiIzEwYjk4MSJ9XX0se2lkOiJyZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6MTg1MCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnphcCIsZGVzY3JpcHRpb246IkN1cnJlbnQgdGhyb3VnaHB1dCIsY29sb3I6IiMwNmI2ZDQiLHRyZW5kRGF0YTpbMTIwMCwxNDAwLDEzNTAsMTYwMCwxNzUwLDE2ODAsMTg1MF19XTtvbkFjdGl2YXRlKGMpe3RoaXMuY3R4PWMsdGhpcy5hY3RpdmF0ZWQ9ITAsY29uc29sZS5sb2coIkRhc2hib2FyZCBhY3RpdmF0ZWQgd2l0aCBjb250ZXh0OiIsYyksYy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJEYXNoYm9hcmQiLGdyb3Vwczpbe25hbWU6IlF1aWNrIEFjY2VzcyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6ImxheW91dERhc2hib2FyZCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyIpLCJhY3Rpb24iKX0se2tleToiUmVjZW50IixpY29uTmFtZToiY2xvY2siLGJhZGdlOjUsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJSZWNlbnQiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIERhdGEiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaEN3IixhY3Rpb246cygoKT0+YWxlcnQoIlJlZnJlc2hpbmcgZGFzaGJvYXJkIGRhdGEuLi4iKSwiYWN0aW9uIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlRpbWUgUmFuZ2UifSx7dHlwZToiZmlsdGVyIixrZXk6IkxpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyYWRpbyIsYWN0aXZlOiEwLG9uVG9nZ2xlOnMocD0+Y29uc29sZS5sb2coIkxpdmUgdXBkYXRlczoiLHApLCJvblRvZ2dsZSIpfSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQXJjaGl2ZWQiLGljb25OYW1lOiJsdWNpZGU6YXJjaGl2ZSIsYWN0aXZlOiExLG9uVG9nZ2xlOnMocD0+Y29uc29sZS5sb2coIlNob3cgYXJjaGl2ZWQ6IixwKSwib25Ub2dnbGUiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibXVsdGlGaWx0ZXIiLGtleToiRGF0YSBTb3VyY2VzIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIixvcHRpb25zOlt7a2V5OiJhcGkiLGxhYmVsOiJBUEkgU2VydmVyIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6c2VydmVyIn0se2tleToid2ViIixsYWJlbDoiV2ViIFRyYWZmaWMiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpnbG9iZSJ9LHtrZXk6Im1vYmlsZSIsbGFiZWw6Ik1vYmlsZSBBcHAiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpzbWFydHBob25lIn1dLG9uQ2hhbmdlOnMocD0+Y29uc29sZS5sb2coIkRhdGEgc291cmNlczoiLHApLCJvbkNoYW5nZSIpfV19LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixpdGVtczpbe2tleToiTWV0cmljcyIsaWNvbk5hbWU6ImFjdGl2aXR5IixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIk1ldHJpY3MiKSwiYWN0aW9uIil9LHtrZXk6IlJlcG9ydHMiLGljb25OYW1lOiJmaWxlVGV4dCIsYmFkZ2U6Im5ldyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiQW5hbHl0aWNzIERvY3MiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vYW5hbHl0aWNzIn1dfV19KSxjLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXcgdGFiIiksImFjdGlvbiIpfSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIHRhYiIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIHRhYiIpLCJhY3Rpb24iKX1dKX1vbkRlYWN0aXZhdGUoKXt0aGlzLmFjdGl2YXRlZD0hMSxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGRlYWN0aXZhdGVkIil9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAzMnB4OyB9CiAgICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5jdHgtYWN0aW9ucyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMik7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWFjdGlvbnMgaDIgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4gewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG46aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXI6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2VzcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLnN1Y2Nlc3M6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMTk3LCA5NCwgMC41KTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIGJhY2shIEhlcmUncyBhbiBvdmVydmlldyBvZiB5b3VyIHN5c3RlbS48L3A+CiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMuc3RhdHNUaWxlc30KICAgICAgICBAdGlsZS1hY3Rpb249JHtjPT5jb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixjLmRldGFpbCl9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgPGRpdiBjbGFzcz0iY3R4LWFjdGlvbnMiPgogICAgICAgIDxoMj5Db250ZXh0IEFjdGlvbnMgKGN0eC5hcHB1aSk8L2gyPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVWaXNpYmxlKCExKX0+SGlkZSBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITApfT5TaG93IE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMSl9PkhpZGUgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMCl9PlNob3cgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNWaXNpYmxlKCExKX0+SGlkZSBDb250ZW50IFRhYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITApfT5TaG93IENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZCghMCl9PkNvbGxhcHNlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCExKX0+RXhwYW5kIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRCcmVhZGNydW1icyhbIkRhc2hib2FyZCIsIk92ZXJ2aWV3IiwiU3RhdHMiXSl9PlNldCBCcmVhZGNydW1iczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygicHJvamVjdHMiKX0+R28gdG8gUHJvamVjdHM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoInNldHRpbmdzIix7c2VjdGlvbjoic2VjdXJpdHkifSl9PkdvIHRvIFNldHRpbmdzL1NlY3VyaXR5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmFjdGl2aXR5TG9nLmFkZCh7dHlwZToiY3VzdG9tIix1c2VyOiJEZW1vIFVzZXIiLG1lc3NhZ2U6IkJ1dHRvbiBjbGlja2VkIGZyb20gY3R4ISIsaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyLWNsaWNrIn0pfT5BZGQgQWN0aXZpdHkgRW50cnk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDk5KX0+U2V0IFRhc2tzIEJhZGdlIHRvIDk5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5jbGVhck1haW5NZW51QmFkZ2UoInRhc2tzIil9PkNsZWFyIFRhc2tzIEJhZGdlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzQXV0b0hpZGUoITAsMSl9PkF1dG8taGlkZSBUYWJzICjiiaQxKTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMSl9PkRpc2FibGUgQXV0by1oaWRlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmFkZENsb3NlYWJsZVRhYigpfT5BZGQgQ2xvc2VhYmxlIFRhYjwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9dGFiQ291bnRlcj0wO2FkZENsb3NlYWJsZVRhYigpe2lmKCF0aGlzLmN0eClyZXR1cm47dGhpcy50YWJDb3VudGVyKys7bGV0IGM9YFRhYiAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMuY3R4LmFwcHVpLmFkZENvbnRlbnRUYWIoe2tleTpjLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKGBTZWxlY3RlZCAke2N9YCksImFjdGlvbiIpLGNsb3NlYWJsZTohMCxvbkNsb3NlOnMoKCk9Pnt0aGlzLmN0eD8uYXBwdWkucmVtb3ZlQ29udGVudFRhYihjKX0sIm9uQ2xvc2UiKX0pfX07cmV0dXJuIGQ9cn0pKCksbUtpPSgoKT0+e2xldCBhPVtpZSgiZGVtby1zZXR0aW5ncy12aWV3IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlbW9TZXR0aW5nc1ZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtLKCldLGQ9W0soKV0sbjUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJzZWN0aW9uImluIHYsImhhcyIpLGdldDpzKHY9PnYuc2VjdGlvbiwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LnNlY3Rpb249eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLG41KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iaGFzQ2hhbmdlcyJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52Lmhhc0NoYW5nZXMsImdldCIpLHNldDpzKCh2LHgpPT57di5oYXNDaGFuZ2VzPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxuNShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHU9cj1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pLG5sKHIsdCl9I2U9bmwodGhpcyxuLCJnZW5lcmFsIik7Z2V0IHNlY3Rpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VjdGlvbihtKXt0aGlzLiNlPW19I3Q9KG5sKHRoaXMsbCksbmwodGhpcyxjLCExKSk7Z2V0IGhhc0NoYW5nZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaGFzQ2hhbmdlcyhtKXt0aGlzLiN0PW19YXBwdWk9bmwodGhpcyxwKTtvbkFjdGl2YXRlKG0pe3RoaXMuYXBwdWk9bS5hcHB1aSxjb25zb2xlLmxvZygiU2V0dGluZ3MgYWN0aXZhdGVkIHdpdGggcGFyYW1zOiIsbS5wYXJhbXMpLG0ucGFyYW1zPy5zZWN0aW9uJiYodGhpcy5zZWN0aW9uPW0ucGFyYW1zLnNlY3Rpb24pLG0uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2V0dGluZ3MiLGdyb3Vwczpbe25hbWU6IkFjY291bnQiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsaXRlbXM6W3trZXk6ImdlbmVyYWwiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOnMoKCk9PnRoaXMuc2hvd1NlY3Rpb24oImdlbmVyYWwiKSwiYWN0aW9uIil9LHtrZXk6InByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246cygoKT0+dGhpcy5zaG93U2VjdGlvbigicHJvZmlsZSIpLCJhY3Rpb24iKX0se2tleToic2VjdXJpdHkiLGljb25OYW1lOiJzaGllbGQiLGFjdGlvbjpzKCgpPT50aGlzLnNob3dTZWN0aW9uKCJzZWN1cml0eSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJsdWNpZGU6c2xpZGVycyIsaXRlbXM6W3trZXk6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJiZWxsIixiYWRnZTozLGFjdGlvbjpzKCgpPT50aGlzLnNob3dTZWN0aW9uKCJub3RpZmljYXRpb25zIiksImFjdGlvbiIpfSx7a2V5OiJhcHBlYXJhbmNlIixpY29uTmFtZToicGFsZXR0ZSIsYWN0aW9uOnMoKCk9PnRoaXMuc2hvd1NlY3Rpb24oImFwcGVhcmFuY2UiKSwiYWN0aW9uIil9XX1dfSksbS5hcHB1aS5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKHRoaXMuc2VjdGlvbiksbS5hcHB1aS5zZXRDb250ZW50VGFicyhbXSl9b25EZWFjdGl2YXRlKCl7Y29uc29sZS5sb2coIlNldHRpbmdzIGRlYWN0aXZhdGVkIiksdGhpcy5oYXNDaGFuZ2VzPSExfWNhbkRlYWN0aXZhdGUoKXtyZXR1cm4gdGhpcy5oYXNDaGFuZ2VzPyJZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIExlYXZlIGFueXdheT8iOiEwfXNob3dTZWN0aW9uKG0pe3RoaXMuc2VjdGlvbj1tLHRoaXMuYXBwdWk/LnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24obSl9c2ltdWxhdGVDaGFuZ2UoKXt0aGlzLmhhc0NoYW5nZXM9ITB9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnNlY3Rpb24tbmFtZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgLmFjdGlvbnMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzYjgyZjY7CiAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7CiAgICAgICAgfQogICAgICAgIC53YXJuaW5nIHsKICAgICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5TZXR0aW5nczwvaDE+CiAgICAgIDxwPk1hbmFnZSB5b3VyIGFjY291bnQgYW5kIGFwcGxpY2F0aW9uIHByZWZlcmVuY2VzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1uYW1lIj4KICAgICAgICBDdXJyZW50IHNlY3Rpb246IDxzdHJvbmc+JHt0aGlzLnNlY3Rpb259PC9zdHJvbmc+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNpbXVsYXRlQ2hhbmdlKCl9Pk1ha2UgQ2hhbmdlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/d2A8cCBjbGFzcz0id2FybmluZyI+WW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBOYXZpZ2F0aW9uIHdpbGwgcHJvbXB0IGZvciBjb25maXJtYXRpb24uPC9wPmA6IiJ9CiAgICBgfX07cmV0dXJuIHU9cn0pKCksZ0tpPSgoKT0+e2xldCBhPVtpZSgiZGVtby1wcm9qZWN0cy12aWV3IildLGUsdD1bXSxyLGk9cGU7dmFyIG89Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlbW9Qcm9qZWN0c1ZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuNShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpufSxudWxsLHQpLG89cj1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pLG5sKHIsdCl9b25BY3RpdmF0ZShuKXtuLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlByb2plY3RzIixncm91cHM6W3tuYW1lOiJNeSBQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGl0ZW1zOlt7a2V5OiJBY3RpdmUiLGljb25OYW1lOiJmb2xkZXIiLGJhZGdlOjMsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJBY3RpdmUiKSwiYWN0aW9uIil9LHtrZXk6IkFyY2hpdmVkIixpY29uTmFtZToiYXJjaGl2ZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCIpLCJhY3Rpb24iKX0se2tleToiU2hhcmVkIixpY29uTmFtZToidXNlcnMiLGJhZGdlOjIsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlNoYXJlZCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiUXVpY2sgQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjpzKCgpPT5hbGVydCgiQ3JlYXRlIG5ldyBwcm9qZWN0IiksImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOnMoKCk9PmFsZXJ0KCJJbXBvcnQgcHJvamVjdCIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJUZW1wbGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0VGVtcGxhdGUiLGhyZWY6Imh0dHBzOi8vdGVtcGxhdGVzLmV4YW1wbGUuY29tIn1dfV19KSxuLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJHcmlkIixpY29uTmFtZToibHVjaWRlOmdyaWQiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiR3JpZCB2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiTGlzdCB2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJCb2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTprYW5iYW4iLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiQm9hcmQgdmlldyIpLCJhY3Rpb24iKX1dKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnByb2plY3RzIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAucHJvamVjdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yczsKICAgICAgICB9CiAgICAgICAgLnByb2plY3Q6aG92ZXIgewogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0IGgzIHsgY29sb3I6ICNmYWZhZmE7IG1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE2cHg7IH0KICAgICAgICAucHJvamVjdCBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxM3B4OyB9CiAgICAgICAgLmJhZGdlIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxNDUzMmQ7CiAgICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlByb2plY3RzPC9oMT4KICAgICAgPGRpdiBjbGFzcz0icHJvamVjdHMiPgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPkZyb250ZW5kIEFwcCA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+UmVhY3QtYmFzZWQgZGFzaGJvYXJkIGFwcGxpY2F0aW9uPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPkFQSSBTZXJ2ZXIgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPk5vZGUuanMgUkVTVCBBUEkgYmFja2VuZDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Nb2JpbGUgQXBwIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5SZWFjdCBOYXRpdmUgaU9TL0FuZHJvaWQgYXBwPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPkRvY3VtZW50YXRpb248L2gzPgogICAgICAgICAgPHA+VGVjaG5pY2FsIGRvY3VtZW50YXRpb24gc2l0ZTwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX07cmV0dXJuIG89cn0pKCksYktpPSgoKT0+e2xldCBhPVtpZSgiZGVtby10YXNrcy12aWV3IildLGUsdD1bXSxyLGk9cGU7dmFyIG89Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlbW9UYXNrc1ZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuNShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpufSxudWxsLHQpLG89cj1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pLG5sKHIsdCl9b25BY3RpdmF0ZShuKXtuLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlRhc2tzIixncm91cHM6W3tuYW1lOiJWaWV3cyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGl0ZW1zOlt7a2V5OiJBbGwgVGFza3MiLGljb25OYW1lOiJsaXN0IixiYWRnZToxMixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIkFsbCIpLCJhY3Rpb24iKX0se2tleToiVG9kYXkiLGljb25OYW1lOiJjYWxlbmRhciIsYmFkZ2U6MyxhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlRvZGF5IiksImFjdGlvbiIpfSx7a2V5OiJVcGNvbWluZyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlVwY29taW5nIiksImFjdGlvbiIpfSx7a2V5OiJDb21wbGV0ZWQiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJDb21wbGV0ZWQiKSwiYWN0aW9uIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlByaW9yaXR5In0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IlByaW9yaXR5IixpY29uTmFtZToibHVjaWRlOmZsYWciLG9wdGlvbnM6W3trZXk6ImhpZ2giLGxhYmVsOiJIaWdoIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6YWxlcnRDaXJjbGUifSx7a2V5OiJtZWRpdW0iLGxhYmVsOiJNZWRpdW0iLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptaW51c0NpcmNsZSJ9LHtrZXk6ImxvdyIsbGFiZWw6IkxvdyIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOmNpcmNsZSJ9XSxvbkNoYW5nZTpzKGw9PmNvbnNvbGUubG9nKCJQcmlvcml0eSBmaWx0ZXI6IixsKSwib25DaGFuZ2UiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiT3B0aW9ucyJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBTdWJ0YXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0VHJlZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOnMobD0+Y29uc29sZS5sb2coIlNob3cgc3VidGFza3M6IixsKSwib25Ub2dnbGUiKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IENvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aXZlOiExLG9uVG9nZ2xlOnMobD0+Y29uc29sZS5sb2coIlNob3cgY29tcGxldGVkOiIsbCksIm9uVG9nZ2xlIil9XX0se25hbWU6IkFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgVGFzayIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246cygoKT0+YWxlcnQoIkFkZCBuZXcgdGFzayIpLCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgVGFza3MiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246cygoKT0+YWxlcnQoIkltcG9ydCB0YXNrcyIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IkNsZWFyIENvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkRlbGV0ZSBhbGwgY29tcGxldGVkIHRhc2tzPyIsYWN0aW9uOnMoKCk9PmFsZXJ0KCJDbGVhcmVkIGNvbXBsZXRlZCB0YXNrcyIpLCJhY3Rpb24iKX1dfV19KSxuLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiTGlzdCIpLCJhY3Rpb24iKX0se2tleToiQ2FsZW5kYXIiLGljb25OYW1lOiJsdWNpZGU6Y2FsZW5kYXIiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiQ2FsZW5kYXIiKSwiYWN0aW9uIil9XSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC50YXNrLWxpc3QgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLnRhc2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICB9CiAgICAgICAgLmNoZWNrYm94IHsKICAgICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzUyNTI1MjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CiAgICAgICAgLnRhc2stdGV4dCB7IGNvbG9yOiAjZmFmYWZhOyBmbGV4OiAxOyB9CiAgICAgICAgLmR1ZS1kYXRlIHsgY29sb3I6ICM3MzczNzM7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAgIC5wcmlvcml0eSB7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIH0KICAgICAgICAucHJpb3JpdHkuaGlnaCB7IGJhY2tncm91bmQ6ICM0NTBhMGE7IGNvbG9yOiAjZjg3MTcxOyB9CiAgICAgICAgLnByaW9yaXR5Lm1lZGl1bSB7IGJhY2tncm91bmQ6ICM0NTFhMDM7IGNvbG9yOiAjZmJiZjI0OyB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5UYXNrczwvaDE+CiAgICAgIDxkaXYgY2xhc3M9InRhc2stbGlzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5SZXZpZXcgcHVsbCByZXF1ZXN0ICM0Mjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9kYXk8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgaGlnaCI+SGlnaDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YXNrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij48L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXNrLXRleHQiPlVwZGF0ZSBkb2N1bWVudGF0aW9uPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5Ub21vcnJvdzwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmlvcml0eSBtZWRpdW0iPk1lZGl1bTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YXNrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij48L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXNrLXRleHQiPldyaXRlIHVuaXQgdGVzdHM8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPkRlYyAyMDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX07cmV0dXJuIG89cn0pKCksemxhPXMoKCk9PntsZXQgYT17YnJhbmRpbmc6e2xvZ29JY29uOiJsdWNpZGU6Ym94Iixsb2dvVGV4dDoiQWNtZSBBcHAifSxhcHBCYXI6e21lbnVJdGVtczpbe25hbWU6IkZpbGUiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiTmV3IFByb2plY3QiLHNob3J0Y3V0OiJDbWQrTiIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IiksImFjdGlvbiIpfSx7bmFtZToiT3Blbi4uLiIsc2hvcnRjdXQ6IkNtZCtPIixpY29uTmFtZToiZm9sZGVyT3BlbiIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWNlbnQgUHJvamVjdHMiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToibXktYXBwIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBteS1hcHAiKSwiYWN0aW9uIil9LHtuYW1lOiJjb21wb25lbnQtbGliIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBjb21wb25lbnQtbGliIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSBBbGwiLHNob3J0Y3V0OiJDbWQrUyIsaWNvbk5hbWU6InNhdmUiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIiksImFjdGlvbiIpfV19LHtuYW1lOiJFZGl0IixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlVuZG8iLHNob3J0Y3V0OiJDbWQrWiIsaWNvbk5hbWU6InVuZG8iLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRvIiksImFjdGlvbiIpfSx7bmFtZToiUmVkbyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtaIixpY29uTmFtZToicmVkbyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlZG8iKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ3V0IixzaG9ydGN1dDoiQ21kK1giLGljb25OYW1lOiJzY2lzc29ycyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpLCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsaWNvbk5hbWU6ImNvcHkiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5IiksImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLHNob3J0Y3V0OiJDbWQrViIsaWNvbk5hbWU6ImNsaXBib2FyZCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIiksImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRvZ2dsZSBTaWRlYmFyIixzaG9ydGN1dDoiQ21kK0IiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgc2lkZWJhciIpLCJhY3Rpb24iKX0se25hbWU6IlRvZ2dsZSBBY3Rpdml0eSBMb2ciLHNob3J0Y3V0OiJDbWQrU2hpZnQrQSIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBhY3Rpdml0eSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiSGVscCIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3MiKSwiYWN0aW9uIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsc2hvcnRjdXQ6IkNtZCsvIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0IiksImFjdGlvbiIpfV19XSxicmVhZGNydW1iczoiRGFzaGJvYXJkIixzaG93V2luZG93Q29udHJvbHM6ITAsc2hvd1NlYXJjaDohMCx1c2VyOntuYW1lOiJKYW5lIFNtaXRoIixlbWFpbDoiamFuZS5zbWl0aEBleGFtcGxlLmNvbSIsc3RhdHVzOiJvbmxpbmUifSxwcm9maWxlTWVudUl0ZW1zOlt7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjpzKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIiksImFjdGlvbiIpfSx7bmFtZToiQWNjb3VudCBTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCAmIFN1cHBvcnQiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246cyhhc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6ImxvZ091dCIsYWN0aW9uOnMoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0IiksImFjdGlvbiIpfV19LHZpZXdzOlt7aWQ6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGNvbnRlbnQ6ImRlbW8tZGFzaGJvYXJkLXZpZXciLHJvdXRlOiJkYXNoYm9hcmQifSx7aWQ6InByb2plY3RzIixuYW1lOiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGNvbnRlbnQ6ImRlbW8tcHJvamVjdHMtdmlldyIscm91dGU6InByb2plY3RzIixiYWRnZTozfSx7aWQ6InRhc2tzIixuYW1lOiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsY29udGVudDoiZGVtby10YXNrcy12aWV3Iixyb3V0ZToidGFza3MiLGJhZGdlOjEyfSx7aWQ6InNldHRpbmdzIixuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsY29udGVudDoiZGVtby1zZXR0aW5ncy12aWV3Iixyb3V0ZToic2V0dGluZ3MvOnNlY3Rpb24/In1dLG1haW5NZW51OntzZWN0aW9uczpbe25hbWU6Ik1haW4iLHZpZXdzOlsiZGFzaGJvYXJkIl19LHtuYW1lOiJXb3Jrc3BhY2UiLHZpZXdzOlsicHJvamVjdHMiLCJ0YXNrcyJdfV0sYm90dG9tSXRlbXM6WyJzZXR0aW5ncyJdfSxkZWZhdWx0VmlldzoiZGFzaGJvYXJkIixib3R0b21CYXI6e3Zpc2libGU6ITAsd2lkZ2V0czpbe2lkOiJzdGF0dXMiLGljb25OYW1lOiJsdWNpZGU6YWN0aXZpdHkiLGxhYmVsOiJTeXN0ZW0gT25saW5lIixzdGF0dXM6InN1Y2Nlc3MiLHRvb2x0aXA6IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixvbkNsaWNrOnMoKCk9PmNvbnNvbGUubG9nKCJTdGF0dXMgY2xpY2tlZCIpLCJvbkNsaWNrIil9LHtpZDoibm90aWZpY2F0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTpiZWxsIixsYWJlbDoiMyBub3RpZmljYXRpb25zIixzdGF0dXM6Indhcm5pbmciLHRvb2x0aXA6IllvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zIixvbkNsaWNrOnMoKCk9PmNvbnNvbGUubG9nKCJOb3RpZmljYXRpb25zIGNsaWNrZWQiKSwib25DbGljayIpfSx7aWQ6InZlcnNpb24iLGljb25OYW1lOiJsdWNpZGU6Z2l0QnJhbmNoIixsYWJlbDoidjEuMi4zIixwb3NpdGlvbjoicmlnaHQiLHRvb2x0aXA6IkN1cnJlbnQgdmVyc2lvbiJ9XSxhY3Rpb25zOlt7aWQ6InRlcm1pbmFsIixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0b29sdGlwOiJPcGVuIFRlcm1pbmFsIixwb3NpdGlvbjoicmlnaHQiLG9uQ2xpY2s6cygoKT0+Y29uc29sZS5sb2coIlRlcm1pbmFsIGNsaWNrZWQiKSwib25DbGljayIpfV19LG9uVmlld0NoYW5nZTpzKChyLGkpPT57Y29uc29sZS5sb2coYFZpZXcgY2hhbmdlZCB0bzogJHtyfSAoJHtpLm5hbWV9KWApfSwib25WaWV3Q2hhbmdlIiksb25TZWFyY2g6cyhyPT57Y29uc29sZS5sb2coIlNlYXJjaCBxdWVyeToiLHIpfSwib25TZWFyY2giKX0sZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTmFtZT0iZGVtby1jb250YWluZXIiLGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpIik7cmV0dXJuIGUuYXBwZW5kQ2hpbGQodCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgdC51cGRhdGVDb21wbGV0ZSx0LmNvbmZpZ3VyZShhKSxzZXRUaW1lb3V0KCgpPT57dC5hY3Rpdml0eUxvZy5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6J2NyZWF0ZWQgcHJvamVjdCAiRnJvbnRlbmQgQXBwIid9LHt0eXBlOiJ1cGRhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6InZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzIn0se3R5cGU6ImRlbGV0ZSIsdXNlcjoiQWRtaW4iLG1lc3NhZ2U6InJlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCJ9LHt0eXBlOiJjdXN0b20iLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToic2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UifV0pfSw1MDApLHQudmlld0NoYW5nZWQkLnN1YnNjcmliZShyPT57Y29uc29sZS5sb2coIlZpZXcgY2hhbmdlZCBldmVudDoiLHIpLHQuc2V0QnJlYWRjcnVtYnMoci52aWV3Lm5hbWUpfSksdC52aWV3TGlmZWN5Y2xlJC5zdWJzY3JpYmUocj0+e2NvbnNvbGUubG9nKCJMaWZlY3ljbGUgZXZlbnQ6IixyLnR5cGUsci52aWV3SWQpfSksc2V0VGltZW91dCgoKT0+e3Quc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDE1KSx0LmFjdGl2aXR5TG9nLmFkZCh7dHlwZToidXBkYXRlIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6Im5ldyB0YXNrcyBhZGRlZCJ9KX0sNWUzKX0sMCksd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICAke2V9CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgVVcsaVFlPWYoKCk9PntsZSgpO1VXPWNsYXNze3N0YXRpY3tzKHRoaXMsIlZpZXdSZWdpc3RyeSIpfXZpZXdzPW5ldyBNYXA7aW5zdGFuY2VzPW5ldyBNYXA7Y3VycmVudFZpZXdJZD1udWxsO2FwcHVpPW51bGw7c2V0QXBwdWlSZWYoZSl7dGhpcy5hcHB1aT1lfXJlZ2lzdGVyKGUpe3RoaXMudmlld3MuaGFzKGUuaWQpJiZjb25zb2xlLndhcm4oYFZpZXcgd2l0aCBpZCAiJHtlLmlkfSIgYWxyZWFkeSByZWdpc3RlcmVkLiBPdmVyd3JpdGluZy5gKSx0aGlzLnZpZXdzLnNldChlLmlkLGUpfXJlZ2lzdGVyQWxsKGUpe2UuZm9yRWFjaCh0PT50aGlzLnJlZ2lzdGVyKHQpKX1nZXQoZSl7cmV0dXJuIHRoaXMudmlld3MuZ2V0KGUpfWdldFZpZXdJZHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZpZXdzLmtleXMoKSl9Z2V0QWxsKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy52YWx1ZXMoKSl9Z2V0Um91dGUoZSl7bGV0IHQ9dGhpcy52aWV3cy5nZXQoZSk7cmV0dXJuIHQ/LnJvdXRlfHx0Py5pZHx8IiJ9ZmluZEJ5Um91dGUoZSl7Zm9yKGxldCB0IG9mIHRoaXMudmlld3MudmFsdWVzKCkpe2xldCByPXQucm91dGV8fHQuaWQsaT10aGlzLm1hdGNoUm91dGUocixlKTtpZihpIT09bnVsbClyZXR1cm57dmlldzp0LHBhcmFtczppfX19bWF0Y2hSb3V0ZShlLHQpe2xldCByPWUuc3BsaXQoIi8iKSxpPXQuc3BsaXQoIi8iKTtpZihyLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdLmVuZHNXaXRoKCI/Iikpe2lmKGkubGVuZ3RoPHIubGVuZ3RoLTF8fGkubGVuZ3RoPnIubGVuZ3RoKXJldHVybiBudWxsfWVsc2UgaWYoci5sZW5ndGghPT1pLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgbj17fTtmb3IobGV0IGw9MDtsPHIubGVuZ3RoO2wrKyl7bGV0IGQ9cltsXSxjPWQuZW5kc1dpdGgoIj8iKTtpZihjJiYoZD1kLnNsaWNlKDAsLTEpKSxkLnN0YXJ0c1dpdGgoIjoiKSl7bGV0IHA9ZC5zbGljZSgxKTtpZihpW2xdIT09dm9pZCAwKW5bcF09aVtsXTtlbHNlIGlmKCFjKXJldHVybiBudWxsfWVsc2UgaWYoaVtsXSE9PWQpcmV0dXJuIG51bGx9cmV0dXJuIG59YXN5bmMgY2FuTGVhdmVDdXJyZW50Vmlldygpe2lmKCF0aGlzLmN1cnJlbnRWaWV3SWQpcmV0dXJuITA7bGV0IGU9dGhpcy5pbnN0YW5jZXMuZ2V0KHRoaXMuY3VycmVudFZpZXdJZCk7aWYoIWUpcmV0dXJuITA7bGV0IHQ9ZTtyZXR1cm4gdHlwZW9mIHQuY2FuRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIj9hd2FpdCB0LmNhbkRlYWN0aXZhdGUoKTohMH1hc3luYyBhY3RpdmF0ZVZpZXcoZSx0LHIpe2xldCBpPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFpKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO2xldCBvPWkuY2FjaGUhPT0hMTt0aGlzLmN1cnJlbnRWaWV3SWQmJnRoaXMuY3VycmVudFZpZXdJZCE9PWUmJmF3YWl0IHRoaXMuZGVhY3RpdmF0ZVZpZXcodGhpcy5jdXJyZW50Vmlld0lkKTtsZXQgbj1vP3RoaXMuaW5zdGFuY2VzLmdldChlKTp2b2lkIDA7aWYobiluLnN0eWxlLmRpc3BsYXk9IiI7ZWxzZXtpZihuPWF3YWl0IHRoaXMuY3JlYXRlVmlld0VsZW1lbnQoaSksIW4pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZWxlbWVudCBmb3IgdmlldyAiJHtlfSJgKSxudWxsO3QuYXBwZW5kQ2hpbGQobiksbyYmdGhpcy5pbnN0YW5jZXMuc2V0KGUsbil9cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZD1lLGF3YWl0IHRoaXMuY2FsbE9uQWN0aXZhdGUobixlLHIpLG59YXN5bmMgZGVhY3RpdmF0ZVZpZXcoZSl7bGV0IHQ9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO2lmKCF0KXJldHVybjtsZXQgcj10O3R5cGVvZiByLm9uRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIiYmYXdhaXQgci5vbkRlYWN0aXZhdGUoKSx0LnN0eWxlLmRpc3BsYXk9Im5vbmUifWFzeW5jIGNyZWF0ZVZpZXdFbGVtZW50KGUpe2xldCB0PWUuY29udGVudDtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIiYmISh0LnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSYmdC5jb25zdHJ1Y3Rvci5uYW1lPT09IkFzeW5jRnVuY3Rpb24iKXRyeXt0PWF3YWl0IHQoKX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgYXN5bmMgY29udGVudCBmb3IgdmlldyAiJHtlLmlkfSI6YCxpKSxudWxsfWxldCByO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7ZWxzZSBpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilpZih0LnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXI9bmV3IHQ7ZWxzZXtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLGkuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbz10KCk7WmMobyxpKSxyPWl9ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZS5pZH0iYCksbnVsbDtyZXR1cm4gci5kYXRhc2V0LnZpZXdJZD1lLmlkLHJ9YXN5bmMgY2FsbE9uQWN0aXZhdGUoZSx0LHIpe2xldCBpPWU7aWYodHlwZW9mIGkub25BY3RpdmF0ZT09ImZ1bmN0aW9uIil7bGV0IG89e2FwcHVpOnRoaXMuYXBwdWksdmlld0lkOnQscGFyYW1zOnJ9O2F3YWl0IGkub25BY3RpdmF0ZShvKX19cmVuZGVyVmlldyhlLHQpe2xldCByPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFyKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO3QuaW5uZXJIVE1MPSIiO2xldCBpLG89ci5jb250ZW50O2lmKHR5cGVvZiBvPT0ic3RyaW5nIilpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobyk7ZWxzZSBpZih0eXBlb2Ygbz09ImZ1bmN0aW9uIilpZihvLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWk9bmV3IG87ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLG4uc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbD1vKCk7WmMobCxuKSxpPW59ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDtyZXR1cm4gdC5hcHBlbmRDaGlsZChpKSx0aGlzLmluc3RhbmNlcy5zZXQoZSxpKSx0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxpfWdldEN1cnJlbnRWaWV3SWQoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0lkfWdldEluc3RhbmNlKGUpe3JldHVybiB0aGlzLmluc3RhbmNlcy5nZXQoZSl9Y2xlYXJJbnN0YW5jZShlKXtsZXQgdD10aGlzLmluc3RhbmNlcy5nZXQoZSk7dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksdGhpcy5pbnN0YW5jZXMuZGVsZXRlKGUpLHRoaXMuY3VycmVudFZpZXdJZD09PWUmJih0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbCl9Y2xlYXJJbnN0YW5jZXMoKXtmb3IobGV0W2UsdF1vZiB0aGlzLmluc3RhbmNlcyl0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KTt0aGlzLmluc3RhbmNlcy5jbGVhcigpLHRoaXMuY3VycmVudFZpZXdJZD1udWxsfXVucmVnaXN0ZXIoZSl7cmV0dXJuIHRoaXMuY2xlYXJJbnN0YW5jZShlKSx0aGlzLnZpZXdzLmRlbGV0ZShlKX1jbGVhcigpe3RoaXMudmlld3MuY2xlYXIoKSx0aGlzLmNsZWFySW5zdGFuY2VzKCl9aGFzKGUpe3JldHVybiB0aGlzLnZpZXdzLmhhcyhlKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnZpZXdzLnNpemV9fX0pO3ZhciBfbGEsVGxhPWYoKCk9PntsZSgpO19sYT1zKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tbWFpbm1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1tYWlubWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktbWFpbm1lbnUKICAgICAgLmxvZ29JY29uPSR7Imx1Y2lkZTpib3gifQogICAgICAubG9nb1RleHQ9JHsiQWNtZSBBcHAifQogICAgICAubWVudUdyb3Vwcz0ke1t7dGFiczpbe2tleToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIiksImFjdGlvbiIpfSx7a2V5OiJJbmJveCIsaWNvbk5hbWU6Imx1Y2lkZTppbmJveCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJJbmJveCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiV29ya3NwYWNlIix0YWJzOlt7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMiKSwiYWN0aW9uIil9LHtrZXk6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlRhc2tzIiksImFjdGlvbiIpfSx7a2V5OiJEb2N1bWVudHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRzIiksImFjdGlvbiIpfV19LHtuYW1lOiJBbmFseXRpY3MiLHRhYnM6W3trZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMiKSwiYWN0aW9uIil9LHtrZXk6Ikluc2lnaHRzIixpY29uTmFtZToibHVjaWRlOmxpZ2h0YnVsYiIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJJbnNpZ2h0cyIpLCJhY3Rpb24iKX1dfV19CiAgICAgIC5ib3R0b21UYWJzPSR7W3trZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX1dfQogICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT4KICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgVDQsYW8sTGxhLG9RZT1mKCgpPT57V3MoKTtyNCgpO0dpKCk7bGUoKTtYcigpO1RsYSgpO1FlKCk7VDQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGFvPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxMbGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWFwcHVpLW1haW5tZW51IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNBcHB1aU1haW5tZW51Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpBcnJheX0pXSx4PVskKHt0eXBlOkFycmF5fSldLHk9WyQoe3R5cGU6QXJyYXl9KV0sTj1bJCgpXSxPPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxUNCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJsb2dvSWNvbiJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmxvZ29JY29uLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MubG9nb0ljb249RX0sInNldCIpfSxtZXRhZGF0YTpNfSxuLGwpLFQ0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImxvZ29UZXh0ImluIFMsImhhcyIpLGdldDpzKFM9PlMubG9nb1RleHQsImdldCIpLHNldDpzKChTLEUpPT57Uy5sb2dvVGV4dD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGMscCksVDQodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJtZW51R3JvdXBzImluIFMsImhhcyIpLGdldDpzKFM9PlMubWVudUdyb3VwcywiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLm1lbnVHcm91cHM9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxtLHYpLFQ0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iYm90dG9tVGFicyJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmJvdHRvbVRhYnMsImdldCIpLHNldDpzKChTLEUpPT57Uy5ib3R0b21UYWJzPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSxUNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InRhYnMiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy50YWJzLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MudGFicz1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGssQyksVDQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4ic2VsZWN0ZWRUYWIiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnNlbGVjdGVkVGFiPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sXyx6KSxUNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iY29sbGFwc2VkImluIFMsImhhcyIpLGdldDpzKFM9PlMuY29sbGFwc2VkLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuY29sbGFwc2VkPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sVCxQKSxUNChudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLEI9cj1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPV9sYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWFvKHRoaXMsbiwiIik7Z2V0IGxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxvZ29JY29uKE0pe3RoaXMuI2U9TX0jdD0oYW8odGhpcyxsKSxhbyh0aGlzLGMsIiIpKTtnZXQgbG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9nb1RleHQoTSl7dGhpcy4jdD1NfSNhPShhbyh0aGlzLHApLGFvKHRoaXMsbSxbXSkpO2dldCBtZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1lbnVHcm91cHMoTSl7dGhpcy4jYT1NfSNyPShhbyh0aGlzLHYpLGFvKHRoaXMsYixbXSkpO2dldCBib3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJvdHRvbVRhYnMoTSl7dGhpcy4jcj1NfSNzPShhbyh0aGlzLGcpLGFvKHRoaXMsayxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRhYnMoTSl7dGhpcy4jcz1NfSNpPShhbyh0aGlzLEMpLGFvKHRoaXMsXyx2b2lkIDApKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRUYWIoTSl7dGhpcy4jaT1NfSNvPShhbyh0aGlzLHopLGFvKHRoaXMsVCwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgY29sbGFwc2VkKE0pe3RoaXMuI289TX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIC0tbWVudS13aWR0aC1leHBhbmRlZDogMjAwcHg7CiAgICAgICAgLS1tZW51LXdpZHRoLWNvbGxhcHNlZDogNTZweDsKICAgICAgICAtLXRvb2x0aXAtYmc6IHZhcigtLWRlZXMtY29sb3ItdG9vbHRpcC1iZyk7CiAgICAgICAgLS10b29sdGlwLWZnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtZmcpOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluQ29udGFpbmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgei1pbmRleDogJHtQcy5maXhlZC5hcHBCYXJ9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtZXhwYW5kZWQpOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tYWluQ29udGFpbmVyIHsKICAgICAgICB3aWR0aDogdmFyKC0tbWVudS13aWR0aC1jb2xsYXBzZWQpOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogTG9nbyBTZWN0aW9uICovCiAgICAgIC5sb2dvU2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5sb2dvU2VjdGlvbiAubG9nb0ljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmxvZ29TZWN0aW9uIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiAubG9nb1RleHQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIE1pZGRsZSBTZWN0aW9uIChzY3JvbGxhYmxlKSAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tZW51R3JvdXA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBtYXgtaGVpZ2h0IDAuMjVzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEhlYWRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuZ3JvdXBUYWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLyogVGFiIEl0ZW0gKi8KICAgICAgLnRhYiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNjI2MjYiLCIjZTVlNWU1Iil9OwogICAgICB9CgogICAgICAudGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG9wYWNpdHk6IDAuODU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIENvbGxhcHNlZCB0YWIgc3R5bGVzICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIgLnRhYkxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC50YWItdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwMCU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZnKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAudGFiLXRvb2x0aXA6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiOmhvdmVyIC50YWItdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxczsKICAgICAgfQoKICAgICAgLyogQmFkZ2Ugc3R5bGVzICovCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1mZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJvdHRvbSBTZWN0aW9uICovCiAgICAgIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJvdHRvbVNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBNPXRoaXMuZ2V0QWxsVGFicygpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluQ29udGFpbmVyIiBAY29udGV4dG1lbnU9JHtTPT57dGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoUyxbe25hbWU6ImFwcCBzZXR0aW5ncyIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLGljb25OYW1lOiJnZWFyIn1dKX19PgogICAgICAgICR7dGhpcy5sb2dvSWNvbnx8dGhpcy5sb2dvVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0ibG9nb1NlY3Rpb24iPgogICAgICAgICAgICAke3RoaXMubG9nb0ljb24/d2A8ZGVlcy1pY29uIGNsYXNzPSJsb2dvSWNvbiIgLmljb249IiR7dGhpcy5sb2dvSWNvbn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5sb2dvVGV4dD93YDxzcGFuIGNsYXNzPSJsb2dvVGV4dCI+JHt0aGlzLmxvZ29UZXh0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudVNlY3Rpb24iPgogICAgICAgICAgJHt0aGlzLm1lbnVHcm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJNZW51R3JvdXBzKCk6dGhpcy5yZW5kZXJMZWdhY3lUYWJzKCl9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5ib3R0b21UYWJzLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmJvdHRvbVRhYnMubWFwKFM9PnRoaXMucmVuZGVyVGFiKFMpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb2xsYXBzZS10b2dnbGUiIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVDb2xsYXBzZSgpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmNvbGxhcHNlZD8ibHVjaWRlOmNoZXZyb25SaWdodCI6Imx1Y2lkZTpjaGV2cm9uTGVmdCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgPC9idXR0b24+CiAgICBgfXJlbmRlck1lbnVHcm91cHMoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLm1lbnVHcm91cHMubWFwKE09PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgICR7TS5uYW1lP3dgPGRpdiBjbGFzcz0iZ3JvdXBIZWFkZXIiPiR7TS5uYW1lfTwvZGl2PmA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgICAke00uaXRlbXMubWFwKFM9PnRoaXMucmVuZGVyVGFiKFMpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgKX0KICAgIGB9cmVuZGVyTGVnYWN5VGFicygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtZW51R3JvdXAiPgogICAgICAgIDxkaXYgY2xhc3M9Imdyb3VwVGFicyI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoTT0+dGhpcy5yZW5kZXJUYWIoTSkpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGFiKE0pe3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRhYiAke009PT10aGlzLnNlbGVjdGVkVGFiPyJzZWxlY3RlZFRhYiI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+e3RoaXMudXBkYXRlVGFiKE0pfX0iCiAgICAgID4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke00uaWNvbk5hbWV8fCIifSI+PC9kZWVzLWljb24+CiAgICAgICAgPHNwYW4gY2xhc3M9InRhYkxhYmVsIj4ke00ua2V5fTwvc3Bhbj4KICAgICAgICAke00uYmFkZ2UhPT12b2lkIDA/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke00uYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke00uYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9InRhYi10b29sdGlwIj4ke00ua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfWdldEFsbFRhYnMoKXtyZXR1cm4gdGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP1suLi50aGlzLm1lbnVHcm91cHMuZmxhdE1hcChTPT5TLml0ZW1zKSwuLi50aGlzLmJvdHRvbVRhYnNdOlsuLi50aGlzLnRhYnMsLi4udGhpcy5ib3R0b21UYWJzXX11cGRhdGVUYWIoTSl7dGhpcy5zZWxlY3RlZFRhYj1NLHRoaXMuc2VsZWN0ZWRUYWIuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOk19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7bGV0IE09dGhpcy5nZXRBbGxUYWJzKCk7TS5sZW5ndGg+MCYmdGhpcy51cGRhdGVUYWIoTVswXSl9dG9nZ2xlQ29sbGFwc2UoKXt0aGlzLmNvbGxhcHNlZD0hdGhpcy5jb2xsYXBzZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOntjb2xsYXBzZWQ6dGhpcy5jb2xsYXBzZWR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGFvKHRoaXMsUCl9c3RhdGlje2FvKHIsdCl9fTtyZXR1cm4gQj1yfSkoKX0pO3ZhciAkbGEsRGxhPWYoKCk9PntsZSgpOyRsYT1zKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBiYWNrZ3JvdW5kOiAjMWExYTFhOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIGgzIHsKICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICAgIG1hcmdpbi10b3A6IDA7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIGNvZGUgewogICAgICBiYWNrZ3JvdW5kOiAjMjcyNzJhOwogICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgdWwgewogICAgICBsaW5lLWhlaWdodDogMS44OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciI+CiAgICA8ZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51CiAgICAgIC5oZWFkaW5nPSR7IlByb2plY3RzIn0KICAgICAgLmdyb3Vwcz0ke1t7bmFtZToiTmF2aWdhdGlvbiIsaWNvbk5hbWU6Imx1Y2lkZTpjb21wYXNzIixpdGVtczpbe2tleToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJEYXNoYm9hcmQgY2xpY2tlZCIpLCJhY3Rpb24iKSxiYWRnZTozLGJhZGdlVmFyaWFudDoid2FybmluZyJ9LHtrZXk6IlByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJQcm9qZWN0cyBjbGlja2VkIiksImFjdGlvbiIpLGJhZGdlOiJuZXciLGJhZGdlVmFyaWFudDoic3VjY2VzcyJ9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDIiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKSwiYWN0aW9uIil9XX0se25hbWU6IkFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJDcmVhdGUgTmV3IixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjpzKCgpPT5hbGVydCgiQ3JlYXRlIE5ldyBjbGlja2VkISIpLCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTp1cGxvYWQiLGFjdGlvbjpzKCgpPT5hbGVydCgiSW1wb3J0IERhdGEgY2xpY2tlZCEiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJEZWxldGUgQWxsIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsdmFyaWFudDoiZGFuZ2VyIixjb25maXJtTWVzc2FnZToiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhbGwgaXRlbXM/IixhY3Rpb246cygoKT0+YWxlcnQoIkRlbGV0ZWQhIiksImFjdGlvbiIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdGF0dXMifSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQWN0aXZlIixpY29uTmFtZToibHVjaWRlOmNoZWNrQ2lyY2xlIixhY3RpdmU6ITAsb25Ub2dnbGU6cyhhPT5jb25zb2xlLmxvZygiU2hvdyBBY3RpdmU6IixhKSwib25Ub2dnbGUiKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTpzKGE9PmNvbnNvbGUubG9nKCJTaG93IEFyY2hpdmVkOiIsYSksIm9uVG9nZ2xlIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IkNhdGVnb3JpZXMiLGljb25OYW1lOiJsdWNpZGU6dGFnIixjb2xsYXBzZWQ6ITEsb3B0aW9uczpbe2tleToiZnJvbnRlbmQiLGxhYmVsOiJGcm9udGVuZCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOm1vbml0b3IifSx7a2V5OiJiYWNrZW5kIixsYWJlbDoiQmFja2VuZCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOnNlcnZlciJ9LHtrZXk6ImRldm9wcyIsbGFiZWw6IkRldk9wcyIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOmNsb3VkIn0se2tleToiZGVzaWduIixsYWJlbDoiRGVzaWduIixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6cGFsZXR0ZSJ9XSxvbkNoYW5nZTpzKGE9PmNvbnNvbGUubG9nKCJTZWxlY3RlZCBjYXRlZ29yaWVzOiIsYSksIm9uQ2hhbmdlIil9XX0se25hbWU6IlJlc291cmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpib29rT3BlbiIsY29sbGFwc2VkOiEwLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiRG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJsaW5rIixrZXk6IkFQSSBSZWZlcmVuY2UiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGhyZWY6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2RvY3MifSx7dHlwZToibGluayIsa2V5OiJVc2VyIEd1aWRlIixpY29uTmFtZToibHVjaWRlOmJvb2siLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9ndWlkZSJ9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6IlN1cHBvcnQifSx7dHlwZToibGluayIsa2V5OiJIZWxwIENlbnRlciIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixocmVmOiIvaGVscCIsZXh0ZXJuYWw6ITF9LHt0eXBlOiJsaW5rIixrZXk6IkdpdEh1YiBJc3N1ZXMiLGljb25OYW1lOiJsdWNpZGU6Z2l0aHViIixocmVmOiJodHRwczovL2dpdGh1Yi5jb20vZXhhbXBsZS9pc3N1ZXMifV19XX0KICAgICAgQGl0ZW0tc2VsZWN0PSR7YT0+Y29uc29sZS5sb2coIlRhYiBzZWxlY3RlZDoiLGEuZGV0YWlsKX0KICAgICAgQGFjdGlvbi1jbGljaz0ke2E9PmNvbnNvbGUubG9nKCJBY3Rpb24gY2xpY2tlZDoiLGEuZGV0YWlsKX0KICAgICAgQGZpbHRlci10b2dnbGU9JHthPT5jb25zb2xlLmxvZygiRmlsdGVyIHRvZ2dsZWQ6IixhLmRldGFpbCl9CiAgICAgIEBtdWx0aWZpbHRlci1jaGFuZ2U9JHthPT5jb25zb2xlLmxvZygiTXVsdGktZmlsdGVyIGNoYW5nZWQ6IixhLmRldGFpbCl9CiAgICAgIEBsaW5rLWNsaWNrPSR7YT0+Y29uc29sZS5sb2coIkxpbmsgY2xpY2tlZDoiLGEuZGV0YWlsKX0KICAgID48L2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudT4KICAgIDxkaXYgY2xhc3M9InNwYWNlciI+CiAgICAgIDxoMz5TZWNvbmRhcnkgTWVudSBEZW1vPC9oMz4KICAgICAgPHA+VGhpcyBkZW1vIHNob3djYXNlcyBhbGwgOCBpdGVtIHR5cGVzOjwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT48Y29kZT50YWI8L2NvZGU+IC0gU2VsZWN0YWJsZSBpdGVtcyAoTmF2aWdhdGlvbiBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IC0gQmx1ZSBhY3Rpb25zIChBY3Rpb25zIGdyb3VwKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmFjdGlvbjwvY29kZT4gd2l0aCA8Y29kZT52YXJpYW50OiAnZGFuZ2VyJzwvY29kZT4gLSBSZWQgZGFuZ2VyIGFjdGlvbjwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmZpbHRlcjwvY29kZT4gLSBDaGVja2JveCB0b2dnbGVzIChGaWx0ZXJzIGdyb3VwKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPm11bHRpRmlsdGVyPC9jb2RlPiAtIENvbGxhcHNpYmxlIG11bHRpLXNlbGVjdCAoQ2F0ZWdvcmllcyk8L2xpPgogICAgICAgIDxsaT48Y29kZT5kaXZpZGVyPC9jb2RlPiAtIFZpc3VhbCBzZXBhcmF0b3JzPC9saT4KICAgICAgICA8bGk+PGNvZGU+aGVhZGVyPC9jb2RlPiAtIFNlY3Rpb24gbGFiZWxzPC9saT4KICAgICAgICA8bGk+PGNvZGU+bGluazwvY29kZT4gLSBFeHRlcm5hbC9pbnRlcm5hbCBsaW5rcyAoUmVzb3VyY2VzIGdyb3VwKTwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDxwPlRyeSB0aGUgY29sbGFwc2UgdG9nZ2xlIG9uIHRoZSBsZWZ0IGVkZ2UhPC9wPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQ2MsZGksQWxhLG5RZT1mKCgpPT57V3MoKTtyNCgpO1hyKCk7dmEoKTtsZSgpO0RsYSgpO1FlKCk7Q2M9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGRpPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxBbGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0FwcHVpU2Vjb25kYXJ5bWVudSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBBPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6QXJyYXl9KV0sdT1bJCh7dHlwZTpBcnJheX0pXSx4PVskKHt0eXBlOk9iamVjdH0pXSx5PVtLKCldLE49W0soKV0sTz1bSygpXSxCPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxDYyh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+ImhlYWRpbmciaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5oZWFkaW5nLCJnZXQiKSxzZXQ6cygoRixXKT0+e0YuaGVhZGluZz1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LG4sbCksQ2ModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJncm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+Imdyb3VwcyJpbiBGLCJoYXMiKSxnZXQ6cyhGPT5GLmdyb3VwcywiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLmdyb3Vwcz1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LGMscCksQ2ModGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25PcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJzZWxlY3Rpb25PcHRpb25zImluIEYsImhhcyIpLGdldDpzKEY9PkYuc2VsZWN0aW9uT3B0aW9ucywiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLnNlbGVjdGlvbk9wdGlvbnM9V30sInNldCIpfSxtZXRhZGF0YTpBfSxtLHYpLENjKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJzZWxlY3RlZEl0ZW0iaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5zZWxlY3RlZEl0ZW0sImdldCIpLHNldDpzKChGLFcpPT57Ri5zZWxlY3RlZEl0ZW09V30sInNldCIpfSxtZXRhZGF0YTpBfSxiLGcpLENjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2VkR3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJjb2xsYXBzZWRHcm91cHMiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5jb2xsYXBzZWRHcm91cHMsImdldCIpLHNldDpzKChGLFcpPT57Ri5jb2xsYXBzZWRHcm91cHM9V30sInNldCIpfSxtZXRhZGF0YTpBfSxrLEMpLENjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2VkTXVsdGlGaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5jb2xsYXBzZWRNdWx0aUZpbHRlcnMsImdldCIpLHNldDpzKChGLFcpPT57Ri5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9V30sInNldCIpfSxtZXRhZGF0YTpBfSxfLHopLENjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuZGVyQ291bnRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4icmVuZGVyQ291bnRlciJpbiBGLCJoYXMiKSxnZXQ6cyhGPT5GLnJlbmRlckNvdW50ZXIsImdldCIpLHNldDpzKChGLFcpPT57Ri5yZW5kZXJDb3VudGVyPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sVCxQKSxDYyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4iY29sbGFwc2VkImluIEYsImhhcyIpLGdldDpzKEY9PkYuY29sbGFwc2VkLCJnZXQiKSxzZXQ6cygoRixXKT0+e0YuY29sbGFwc2VkPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sTSxTKSxDYyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpBfSxudWxsLHQpLEU9cj1lLnZhbHVlLEEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6QX0pfXN0YXRpYyBkZW1vPSRsYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWRpKHRoaXMsbiwiTWVudSIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoQSl7dGhpcy4jZT1BfSN0PShkaSh0aGlzLGwpLGRpKHRoaXMsYyxbXSkpO2dldCBncm91cHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZ3JvdXBzKEEpe3RoaXMuI3Q9QX0jYT0oZGkodGhpcyxwKSxkaSh0aGlzLG0sW10pKTtnZXQgc2VsZWN0aW9uT3B0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBzZWxlY3Rpb25PcHRpb25zKEEpe3RoaXMuI2E9QX0jcj0oZGkodGhpcyx2KSxkaSh0aGlzLGIsbnVsbCkpO2dldCBzZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRJdGVtKEEpe3RoaXMuI3I9QX0jcz0oZGkodGhpcyxnKSxkaSh0aGlzLGssbmV3IFNldCkpO2dldCBjb2xsYXBzZWRHcm91cHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29sbGFwc2VkR3JvdXBzKEEpe3RoaXMuI3M9QX0jaT0oZGkodGhpcyxDKSxkaSh0aGlzLF8sbmV3IFNldCkpO2dldCBjb2xsYXBzZWRNdWx0aUZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKEEpe3RoaXMuI2k9QX0jbz0oZGkodGhpcyx6KSxkaSh0aGlzLFQsMCkpO2dldCByZW5kZXJDb3VudGVyKCl7cmV0dXJuIHRoaXMuI299c2V0IHJlbmRlckNvdW50ZXIoQSl7dGhpcy4jbz1BfSNuPShkaSh0aGlzLFApLGRpKHRoaXMsTSwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29sbGFwc2VkKEEpe3RoaXMuI249QX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIC0tc2lkZWJhci13aWR0aC1leHBhbmRlZDogMjQwcHg7CiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZDogNTZweDsKICAgICAgICAtLXNpZGViYXItYmc6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICAtLXNpZGViYXItZmc6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIC0tc2lkZWJhci1mZy1tdXRlZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICAtLXNpZGViYXItZmctYWN0aXZlOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgLS1zaWRlYmFyLWJvcmRlcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICAtLXNpZGViYXItaG92ZXI6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIC0tc2lkZWJhci1hY3RpdmU6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICAtLXNpZGViYXItYWNjZW50OiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgLS10b29sdGlwLWJnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmcpOwogICAgICAgIC0tdG9vbHRpcC1mZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWZnKTsKCiAgICAgICAgLyogQmFkZ2UgY29sb3JzICovCiAgICAgICAgLS1iYWRnZS1kZWZhdWx0LWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1kZWZhdWx0LWZnKTsKICAgICAgICAtLWJhZGdlLXN1Y2Nlc3MtYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWJnKTsKICAgICAgICAtLWJhZGdlLXdhcm5pbmctZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgICAgLS1iYWRnZS1lcnJvci1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgLS1iYWRnZS1lcnJvci1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1mZyk7CgogICAgICAgIC8qIEFjdGlvbiBjb2xvcnMgKi8KICAgICAgICAtLWFjdGlvbi1wcmltYXJ5OiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMzYjgyZjYiKX07CiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeS1ob3ZlcjogJHtoLmJkVGhlbWUoIiMxZDRlZDgiLCIjNjBhNWZhIil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlci1ob3ZlcjogJHtoLmJkVGhlbWUoIiNiOTFjMWMiLCIjZjg3MTcxIil9OwoKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJnKTsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGNvbGxhcHNlIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMTJweDsKICAgICAgICB0b3A6IDI0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgOmhvc3QoOmhvdmVyKSAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgU2VjdGlvbiAqLwogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIC5oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuaGVhZGVyIC5oZWFkaW5nIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGFibGUgTWVudSBTZWN0aW9uICovCiAgICAgIC5tZW51U2VjdGlvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXIpOwogICAgICB9CgogICAgICAvKiBNZW51IEdyb3VwICovCiAgICAgIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXgtaGVpZ2h0IDAuMjVzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyOmhvdmVyIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgcGFkZGluZzogN3B4IDExcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpub3QoLmNvbGxhcHNlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDE0MCwgMTIwLCAxMDAsIDAuMDYpIiwicmdiYSgxODAsIDE2MCwgMTQwLCAwLjA4KSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuZ3JvdXBUaXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtd2FybSk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC13YXJtKTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXdhcm0pOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAvKiBIaWRlIGdyb3VwIGhlYWRlcnMgd2hlbiBob3Jpem9udGFsbHkgY29sbGFwc2VkICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogR3JvdXAgSXRlbXMgQ29udGFpbmVyICovCiAgICAgIC5ncm91cEl0ZW1zIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UsIG1hcmdpbiAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDEwMDBweDsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEl0ZW1zLmNvbGxhcHNlZCB7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEFsd2F5cyBzaG93IGl0ZW1zIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAocmVnYXJkbGVzcyBvZiBncm91cCBjb2xsYXBzZSBzdGF0ZSkgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEl0ZW1zIHsKICAgICAgICBtYXgtaGVpZ2h0OiBub25lOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgSXRlbSBCYXNlICovCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSAuaXRlbUxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1wcmltYXJ5OmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLXByaW1hcnktaG92ZXIpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDM3LCA5OSwgMjM1LCAwLjA4KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1wcmltYXJ5IGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1kYW5nZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tZGFuZ2VyKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1kYW5nZXI6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tZGFuZ2VyLWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMjAsIDM4LCAzOCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1kYW5nZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBGaWx0ZXIgSXRlbSBTdHlsZXMgKi8KICAgICAgLm1lbnVJdGVtLmZpbHRlciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3ggewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkNCIsIiM1MjUyNTIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94LmNoZWNrZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlci5hY3RpdmUgewogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC8qIE11bHRpLUZpbHRlciBDb250YWluZXIgKi8KICAgICAgLm11bHRpRmlsdGVyIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikiKX07CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLXRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItY291bnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLmNoZXZyb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlci5jb2xsYXBzZWQgLmNoZXZyb24gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb25zIHsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIGRlZXMtaWNvbi5vcHRpb24taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLyogRGl2aWRlciAqLwogICAgICAubWVudURpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBtYXJnaW46IDhweCAxMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVEaXZpZGVyIHsKICAgICAgICBtYXJnaW46IDhweCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlci9MYWJlbCAqLwogICAgICAubWVudUhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxMnB4IDRweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMaW5rIEl0ZW0gKi8KICAgICAgLm1lbnVJdGVtLmxpbmsgLmV4dGVybmFsLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC8qIENvbGxhcHNlZCBtZW51IGl0ZW0gc3R5bGVzICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0uc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZmlsdGVyLWNoZWNrYm94LAogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm11bHRpRmlsdGVyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBUb29sdGlwIGZvciBjb2xsYXBzZWQgc3RhdGUgKi8KICAgICAgLml0ZW0tdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwMCU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZnKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAuaXRlbS10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtOmhvdmVyIC5pdGVtLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIFN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZGVmYXVsdC1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS13YXJuaW5nLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZXJyb3ItYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1lcnJvci1mZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExlZ2FjeSBvcHRpb25zIGNvbnRhaW5lciAqLwogICAgICAubGVnYWN5T3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKGxlZ2FjeSkgKi8KICAgICAgLmRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBtYXJnaW46IDhweCAxMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudVNlY3Rpb24iPgogICAgICAgICAgJHt0aGlzLmdyb3Vwcy5sZW5ndGg+MD90aGlzLnJlbmRlckdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5T3B0aW9ucygpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJHcm91cHMoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmdyb3Vwcy5tYXAoQT0+d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51R3JvdXAiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iZ3JvdXBIZWFkZXIgJHt0aGlzLmNvbGxhcHNlZEdyb3Vwcy5oYXMoQS5uYW1lKT8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVHcm91cChBLm5hbWUpfSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imdyb3VwVGl0bGUiPgogICAgICAgICAgICAgICR7QS5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKEEuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAke0EubmFtZX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjaGV2cm9uIiAuaWNvbj0iJHsibHVjaWRlOmNoZXZyb25Eb3duIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncm91cEl0ZW1zICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKEEubmFtZSk/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICAgJHtBLml0ZW1zLm1hcChGPT50aGlzLnJlbmRlckl0ZW0oRixBKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckl0ZW0oQSxGKXtpZigiaGlkZGVuImluIEEmJkEuaGlkZGVuKXJldHVybiB3YGA7c3dpdGNoKCJ0eXBlImluIEE/QS50eXBlOiJ0YWIiKXtjYXNlImFjdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyQWN0aW9uSXRlbShBKTtjYXNlImZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyRmlsdGVySXRlbShBKTtjYXNlIm11bHRpRmlsdGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJNdWx0aUZpbHRlckl0ZW0oQSk7Y2FzZSJkaXZpZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJEaXZpZGVyKCk7Y2FzZSJoZWFkZXIiOnJldHVybiB0aGlzLnJlbmRlckhlYWRlcihBKTtjYXNlImxpbmsiOnJldHVybiB0aGlzLnJlbmRlckxpbmtJdGVtKEEpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyVGFiSXRlbShBLEYpfX1yZW5kZXJUYWJJdGVtKEEsRil7bGV0IFc9dGhpcy5zZWxlY3RlZEl0ZW0/LmtleT09PUEua2V5LGo9QS5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7Vz8ic2VsZWN0ZWQiOiIifSAke2o/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4haiYmdGhpcy5zZWxlY3RUYWJJdGVtKEEsRil9IgogICAgICAgIEBjb250ZXh0bWVudT0iJHtHPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KEcsQSl9IgogICAgICA+CiAgICAgICAgJHtBLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oQS5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7QS5rZXl9PC9zcGFuPgogICAgICAgICR7QS5iYWRnZSE9PXZvaWQgMD93YAogICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7QS5iYWRnZVZhcmlhbnR8fCJkZWZhdWx0In0iPiR7QS5iYWRnZX08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke0Eua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbkl0ZW0oQSl7bGV0IEY9QS52YXJpYW50fHwicHJpbWFyeSIsVz1BLmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gYWN0aW9uLSR7Rn0gJHtXPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IVcmJnRoaXMuaGFuZGxlQWN0aW9uQ2xpY2soQSl9IgogICAgICA+CiAgICAgICAgJHtBLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oQS5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7QS5rZXl9PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7QS5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsdGVySXRlbShBKXtsZXQgRj1BLmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gZmlsdGVyICR7QS5hY3RpdmU/ImFjdGl2ZSI6IiJ9ICR7Rj8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFGJiZ0aGlzLmhhbmRsZUZpbHRlclRvZ2dsZShBKX0iCiAgICAgID4KICAgICAgICAke0EuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihBLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHtBLmtleX08L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWNoZWNrYm94ICR7QS5hY3RpdmU/ImNoZWNrZWQiOiIifSI+CiAgICAgICAgICAke0EuYWN0aXZlP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmNoZWNrIn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtBLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNdWx0aUZpbHRlckl0ZW0oQSl7bGV0IEY9dGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnMuaGFzKEEua2V5KSxXPUEub3B0aW9ucy5maWx0ZXIoaj0+ai5jaGVja2VkKS5sZW5ndGg7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im11bHRpRmlsdGVyIj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0ibXVsdGlGaWx0ZXItaGVhZGVyICR7Rj8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlTXVsdGlGaWx0ZXIoQS5rZXkpfSIKICAgICAgICA+CiAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItdGl0bGUiPgogICAgICAgICAgICAke0EuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihBLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICR7QS5rZXl9CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAke1c+MD93YDxzcGFuIGNsYXNzPSJtdWx0aUZpbHRlci1jb3VudCI+JHtXfTwvc3Bhbj5gOiIifQogICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlci1vcHRpb25zICR7Rj8iY29sbGFwc2VkIjoiIn0iPgogICAgICAgICAgJHtBLm9wdGlvbnMubWFwKGo9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9uIgogICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShBLGoua2V5KX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb24tY2hlY2tib3ggJHtqLmNoZWNrZWQ/ImNoZWNrZWQiOiIifSI+CiAgICAgICAgICAgICAgICAke2ouY2hlY2tlZD93YDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICR7ai5pY29uTmFtZT93YDxkZWVzLWljb24gY2xhc3M9Im9wdGlvbi1pY29uIiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oai5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgIDxzcGFuPiR7ai5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEaXZpZGVyKCl7cmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudURpdmlkZXIiPjwvZGl2PmB9cmVuZGVySGVhZGVyKEEpe3JldHVybiB3YDxkaXYgY2xhc3M9Im1lbnVIZWFkZXIiPiR7QS5sYWJlbH08L2Rpdj5gfXJlbmRlckxpbmtJdGVtKEEpe2xldCBGPUEuZXh0ZXJuYWw/P0EuaHJlZi5zdGFydHNXaXRoKCJodHRwIiksVz1BLmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gbGluayAke1c/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hVyYmdGhpcy5oYW5kbGVMaW5rQ2xpY2soQSl9IgogICAgICA+CiAgICAgICAgJHtBLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oQS5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7QS5rZXl9PC9zcGFuPgogICAgICAgICR7Rj93YDxkZWVzLWljb24gY2xhc3M9ImV4dGVybmFsLWljb24iIC5pY29uPSIkeyJsdWNpZGU6ZXh0ZXJuYWxMaW5rIn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtBLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMZWdhY3lPcHRpb25zKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImxlZ2FjeU9wdGlvbnMiPgogICAgICAgICR7dGhpcy5zZWxlY3Rpb25PcHRpb25zLm1hcChBPT57aWYoImRpdmlkZXIiaW4gQSYmQS5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRpdmlkZXIiPjwvZGl2PmA7bGV0IEY9QSxXPXtrZXk6Ri5rZXksaWNvbk5hbWU6Ri5pY29uTmFtZSxhY3Rpb246Ri5hY3Rpb24sYmFkZ2U6Ri5iYWRnZSxiYWRnZVZhcmlhbnQ6Ri5iYWRnZVZhcmlhbnR9O3JldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oVyl9KX0KICAgICAgPC9kaXY+CiAgICBgfW5vcm1hbGl6ZUljb24oQSl7cmV0dXJuIEEuc3RhcnRzV2l0aCgibHVjaWRlOiIpP0E6YGx1Y2lkZToke0F9YH10b2dnbGVHcm91cChBKXtsZXQgRj1uZXcgU2V0KHRoaXMuY29sbGFwc2VkR3JvdXBzKTtGLmhhcyhBKT9GLmRlbGV0ZShBKTpGLmFkZChBKSx0aGlzLmNvbGxhcHNlZEdyb3Vwcz1GfXRvZ2dsZU11bHRpRmlsdGVyKEEpe2xldCBGPW5ldyBTZXQodGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnMpO0YuaGFzKEEpP0YuZGVsZXRlKEEpOkYuYWRkKEEpLHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPUZ9dG9nZ2xlQ29sbGFwc2UoKXt0aGlzLmNvbGxhcHNlZD0hdGhpcy5jb2xsYXBzZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOntjb2xsYXBzZWQ6dGhpcy5jb2xsYXBzZWR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c2VsZWN0VGFiSXRlbShBLEYpe3RoaXMuc2VsZWN0ZWRJdGVtPUEsQS5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXNlbGVjdCIse2RldGFpbDp7aXRlbTpBLGdyb3VwOkZ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgaGFuZGxlQWN0aW9uQ2xpY2soQSl7QS5jb25maXJtTWVzc2FnZSYmIXdpbmRvdy5jb25maXJtKEEuY29uZmlybU1lc3NhZ2UpfHwoYXdhaXQgQS5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6e2l0ZW06QX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlRmlsdGVyVG9nZ2xlKEEpe2xldCBGPSFBLmFjdGl2ZTtBLmFjdGl2ZT1GLEEub25Ub2dnbGUoRiksdGhpcy5yZW5kZXJDb3VudGVyKyssdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyLXRvZ2dsZSIse2RldGFpbDp7aXRlbTpBLGFjdGl2ZTpGfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU11bHRpRmlsdGVyT3B0aW9uVG9nZ2xlKEEsRil7bGV0IFc9QS5vcHRpb25zLmZpbmQoRz0+Ry5rZXk9PT1GKTtXJiYoVy5jaGVja2VkPSFXLmNoZWNrZWQpO2xldCBqPUEub3B0aW9ucy5maWx0ZXIoRz0+Ry5jaGVja2VkKS5tYXAoRz0+Ry5rZXkpO0Eub25DaGFuZ2UoaiksdGhpcy5yZW5kZXJDb3VudGVyKyssdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibXVsdGlmaWx0ZXItY2hhbmdlIix7ZGV0YWlsOntpdGVtOkEsc2VsZWN0ZWRLZXlzOmp9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTGlua0NsaWNrKEEpe0EuZXh0ZXJuYWw/P0EuaHJlZi5zdGFydHNXaXRoKCJodHRwIik/d2luZG93Lm9wZW4oQS5ocmVmLCJfYmxhbmsiLCJub29wZW5lcixub3JlZmVycmVyIik6d2luZG93LmxvY2F0aW9uLmhyZWY9QS5ocmVmLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxpbmstY2xpY2siLHtkZXRhaWw6e2l0ZW06QX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZXh0TWVudShBLEYpe3RhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEEsW3tuYW1lOiJWaWV3IGRldGFpbHMiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToibHVjaWRlOmV5ZSJ9LHtuYW1lOiJFZGl0IixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwifV0pfWFzeW5jIGZpcnN0VXBkYXRlZChBKXtpZihhd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoQSksdGhpcy5ncm91cHMubGVuZ3RoPjApe2xldCBGPW5ldyBTZXQsVz1uZXcgU2V0O2lmKHRoaXMuZ3JvdXBzLmZvckVhY2goaj0+e2ouY29sbGFwc2VkJiZGLmFkZChqLm5hbWUpLGouaXRlbXMuZm9yRWFjaChHPT57aWYoInR5cGUiaW4gRyYmRy50eXBlPT09Im11bHRpRmlsdGVyIil7bGV0IGhlPUc7aGUuY29sbGFwc2VkJiZXLmFkZChoZS5rZXkpfX0pfSksdGhpcy5jb2xsYXBzZWRHcm91cHM9Rix0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1XLCF0aGlzLnNlbGVjdGVkSXRlbSlmb3IobGV0IGogb2YgdGhpcy5ncm91cHMpZm9yKGxldCBHIG9mIGouaXRlbXMpe2xldCBoZT0idHlwZSJpbiBHP0cudHlwZToidGFiIjtpZihoZT09PSJ0YWIifHxoZT09PXZvaWQgMCl7bGV0IFI9RztpZighUi5kaXNhYmxlZCl7dGhpcy5zZWxlY3RUYWJJdGVtKFIsaik7cmV0dXJufX19fWVsc2UgaWYodGhpcy5zZWxlY3Rpb25PcHRpb25zLmxlbmd0aD4wKXtsZXQgRj10aGlzLnNlbGVjdGlvbk9wdGlvbnMuZmluZChXPT4hKCJkaXZpZGVyImluIFcpKTtpZihGJiYhdGhpcy5zZWxlY3RlZEl0ZW0pe2xldCBXPXtrZXk6Ri5rZXksaWNvbk5hbWU6Ri5pY29uTmFtZSxhY3Rpb246Ri5hY3Rpb259O3RoaXMuc2VsZWN0VGFiSXRlbShXKX19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxkaSh0aGlzLFMpfXN0YXRpY3tkaShyLHQpfX07cmV0dXJuIEU9cn0pKCl9KTt2YXIgbDUsVm4sYVppLHJaaSxQbGEsRWxhPWYoKCk9PntsZSgpO3I0KCk7bDU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LFZuPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxhWmk9KCgpPT57bGV0IGE9W2llKCJkZW1vLWNsb3NlYWJsZS10YWJzIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlbW9DbG9zZWFibGVUYWJzIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bSygpXSxkPVtLKCldLGw1KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4idGFicyJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LnRhYnMsImdldCIpLHNldDpzKCh2LHgpPT57di50YWJzPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbixsKSxsNSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYkNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InRhYkNvdW50ZXIiaW4gdiwiaGFzIiksZ2V0OnModj0+di50YWJDb3VudGVyLCJnZXQiKSxzZXQ6cygodix4KT0+e3YudGFiQ291bnRlcj14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksbDUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX0jZT1Wbih0aGlzLG4sW3trZXk6Ik1haW4iLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJNYWluIGNsaWNrZWQiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhtKXt0aGlzLiNlPW19I3Q9KFZuKHRoaXMsbCksVm4odGhpcyxjLDApKTtnZXQgdGFiQ291bnRlcigpe3JldHVybiB0aGlzLiN0fXNldCB0YWJDb3VudGVyKG0pe3RoaXMuI3Q9bX1zdGF0aWMgc3R5bGVzPVtYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrO2xldCBtPWBEb2N1bWVudCAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6bSxpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZyhgJHttfSBjbGlja2VkYCksImFjdGlvbiIpLGNsb3NlYWJsZTohMCxvbkNsb3NlOnMoKCk9PnRoaXMucmVtb3ZlVGFiKG0pLCJvbkNsb3NlIil9XX1yZW1vdmVUYWIobSl7dGhpcy50YWJzPXRoaXMudGFicy5maWx0ZXIodj0+di5rZXkhPT1tKX1jbGVhckFsbCgpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLXRhYnMiKT8uY2xlYXIoKSx0aGlzLnRhYnM9W10sdGhpcy50YWJDb3VudGVyPTB9cmVuZGVyKCl7bGV0IG09W3tpZDoiYWRkIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjpzKCgpPT50aGlzLmFkZFRhYigpLCJhY3Rpb24iKSx0b29sdGlwOiJOZXcgVGFiIn0se2lkOiJjbGVhciIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjpzKCgpPT50aGlzLmNsZWFyQWxsKCksImFjdGlvbiIpLHRvb2x0aXA6IkNsZWFyIEFsbCBUYWJzIn1dO3JldHVybiB3YAogICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgLmFjdGlvbnNSaWdodD0ke219CiAgICAgICAgQHRhYi1jbG9zZT0ke3Y9PnRoaXMucmVtb3ZlVGFiKHYuZGV0YWlsLnRhYi5rZXkpfQogICAgICA+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIENsaWNrIHRoZSBYIGJ1dHRvbiBvbiB0YWJzIHRvIGNsb3NlIHRoZW0uIFVzZSB0aGUgKyBidXR0b24gdG8gYWRkIHRhYnMgYW5kIHRoZSB0cmFzaCBidXR0b24gdG8gY2xlYXIgYWxsLgogICAgICAgIDxicj5DdXJyZW50IHRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxWbih0aGlzLHApfXN0YXRpY3tWbihyLHQpfX07cmV0dXJuIHU9cn0pKCksclppPSgoKT0+e2xldCBhPVtpZSgiZGVtby1hdXRvaGlkZS10YWJzIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlbW9BdXRvSGlkZVRhYnMiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtLKCldLGQ9W0soKV0sdT1bSygpXSxsNSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InRhYnMiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy50YWJzLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cudGFicz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG4sbCksbDUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4iYXV0b0hpZGUiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5hdXRvSGlkZSwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmF1dG9IaWRlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sYyxwKSxsNSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4idGhyZXNob2xkImluIGcsImhhcyIpLGdldDpzKGc9PmcudGhyZXNob2xkLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cudGhyZXNob2xkPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbSx2KSxsNShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLHg9cj1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfSNlPVZuKHRoaXMsbixbe2tleToiVGFiIDEiLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJUYWIgMSIpLCJhY3Rpb24iKX0se2tleToiVGFiIDIiLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJUYWIgMiIpLCJhY3Rpb24iKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKGIpe3RoaXMuI2U9Yn0jdD0oVm4odGhpcyxsKSxWbih0aGlzLGMsITApKTtnZXQgYXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYXV0b0hpZGUoYil7dGhpcy4jdD1ifSNhPShWbih0aGlzLHApLFZuKHRoaXMsbSwxKSk7Z2V0IHRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNhfXNldCB0aHJlc2hvbGQoYil7dGhpcy4jYT1ifXN0YXRpYyBzdHlsZXM9W1hgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC50YWJzLWNvbnRhaW5lciBkZWVzLWFwcHVpLXRhYnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3RhYkNvdW50ZXI9KFZuKHRoaXMsdiksMik7YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKyssdGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpgVGFiICR7dGhpcy50YWJDb3VudGVyfWAsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coYFRhYiAke3RoaXMudGFiQ291bnRlcn1gKSwiYWN0aW9uIil9XX1yZW1vdmVMYXN0VGFiKCl7dGhpcy50YWJzLmxlbmd0aD4wJiYodGhpcy50YWJzPXRoaXMudGFicy5zbGljZSgwLC0xKSl9Y2xlYXJUYWJzKCl7dGhpcy50YWJzPVtdfXJlbmRlcigpe2xldCBiPXRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMudGhyZXNob2xkO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgJHtiP3dgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyIj5UYWJzIGhpZGRlbiAoJHt0aGlzLnRhYnMubGVuZ3RofSB0YWJzIOKJpCB0aHJlc2hvbGQgJHt0aGlzLnRocmVzaG9sZH0pPC9zcGFuPmA6d2A8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy5hdXRvSGlkZX0KICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH0KICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPmB9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVMYXN0VGFiKCl9Pi0gUmVtb3ZlIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY2xlYXJUYWJzKCl9PkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0wfX0+VGhyZXNob2xkOiAwPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTF9fT5UaHJlc2hvbGQ6IDE8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9Mn19PlRocmVzaG9sZDogMjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGU/Ik9OIjoiT0ZGIn0gfCBUaHJlc2hvbGQ6ICR7dGhpcy50aHJlc2hvbGR9IHwgVGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICAgIDxicj5UYWJzIHdpbGwgaGlkZSB3aGVuIGNvdW50IOKJpCB0aHJlc2hvbGQuCiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7Vm4ocix0KX19O3JldHVybiB4PXJ9KSgpLFBsYT1zKCgpPT57bGV0IGE9W3trZXk6IkhvbWUiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJIb21lIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkFuYWx5dGljcyBEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiVXNlciBTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiSGVscCBjbGlja2VkIiksImFjdGlvbiIpfV0sZT1be2tleToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlByb2ZpbGUgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiU2VjdXJpdHkiLGljb25OYW1lOiJsdWNpZGU6c2hpZWxkIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIlNlY3VyaXR5IGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6Ik5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJOb3RpZmljYXRpb25zIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkludGVncmF0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5rIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIkludGVncmF0aW9ucyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBZHZhbmNlZCIsaWNvbk5hbWU6Imx1Y2lkZTpjb2RlIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIkFkdmFuY2VkIGNsaWNrZWQiKSwiYWN0aW9uIil9XSx0PVt7a2V5OiJBbGwiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiQWxsIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkFjdGl2ZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJBY3RpdmUgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQ29tcGxldGVkIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBcmNoaXZlZCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCBjbGlja2VkIiksImFjdGlvbiIpfV0scj1be2lkOiJiYWNrIixpY29uTmFtZToibHVjaWRlOmFycm93TGVmdCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJCYWNrIiksImFjdGlvbiIpLHRvb2x0aXA6IkdvIEJhY2sifV0saT1be2lkOiJhZGQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJBZGQgdGFiIiksImFjdGlvbiIpLHRvb2x0aXA6Ik5ldyBUYWIifSx7aWQ6InNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpzZWFyY2giLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiU2VhcmNoIiksImFjdGlvbiIpLHRvb2x0aXA6IlNlYXJjaCBUYWJzIn0se2lkOiJkaXNhYmxlZCIsaWNvbk5hbWU6Imx1Y2lkZTpsb2NrIixhY3Rpb246cygoKT0+e30sImFjdGlvbiIpLHRvb2x0aXA6IkRpc2FibGVkIEFjdGlvbiIsZGlzYWJsZWQ6ITB9XSxvPXMobj0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07Ij4KICAgICAgJHtufQogICAgPC9kaXY+CiAgYCwiZGVtb0NvbnRlbnQiKTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudHdvLWNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ib3Jpem9udGFsIFRhYnMgd2l0aCBBbmltYXRlZCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJzPSR7YX0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtvKCJTZWxlY3QgYSB0YWIgdG8gc2VlIHRoZSBzbW9vdGggc2xpZGluZyBhbmltYXRpb24gb2YgdGhlIGluZGljYXRvci4gVGhlIGluZGljYXRvciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgaXRzIHdpZHRoIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCB3aXRoIG1pbmltYWwgcGFkZGluZy4iKX0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UYWJzIHdpdGggQWN0aW9uIEJ1dHRvbnM8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAudGFicz0ke2F9CiAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHtyfQogICAgICAgICAgLmFjdGlvbnNSaWdodD0ke2l9CiAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7bygiQWN0aW9uIGJ1dHRvbnMgY2FuIGJlIHBsYWNlZCBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgdGFiIGJhci4gVGhleSByZW1haW4gZml4ZWQgd2hpbGUgdGFicyBzY3JvbGwuIFRoZSBsb2NrIGljb24gc2hvd3MgYSBkaXNhYmxlZCBhY3Rpb24uIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2xvc2VhYmxlIFRhYnMgd2l0aCBBY3Rpb25zPC9kaXY+CiAgICAgICAgPGRlbW8tY2xvc2VhYmxlLXRhYnM+PC9kZW1vLWNsb3NlYWJsZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG8taGlkZSBUYWJzPC9kaXY+CiAgICAgICAgPGRlbW8tYXV0b2hpZGUtdGFicz48L2RlbW8tYXV0b2hpZGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WZXJ0aWNhbCBUYWJzIExheW91dDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InR3by1jb2x1bW4iPgogICAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFiU3R5bGU9JHsidmVydGljYWwifSAudGFicz0ke2V9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICAgJHtvKCJWZXJ0aWNhbCB0YWJzIHdvcmsgZ3JlYXQgZm9yIHNldHRpbmdzIHBhZ2VzIGFuZCBuYXZpZ2F0aW9uIG1lbnVzLiBUaGUgYW5pbWF0ZWQgaW5kaWNhdG9yIHNtb290aGx5IHRyYW5zaXRpb25zIGJldHdlZW4gc2VsZWN0aW9ucy4iKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5XaXRob3V0IEluZGljYXRvcjwvZGl2PgogICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnNob3dUYWJJbmRpY2F0b3I9JHshMX0gLnRhYnM9JHt0fT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke28oIlRhYnMgY2FuIGFsc28gYmUgdXNlZCB3aXRob3V0IHRoZSBhbmltYXRlZCBpbmRpY2F0b3IgYnkgc2V0dGluZyBzaG93VGFiSW5kaWNhdG9yIHRvIGZhbHNlLiIpfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHExLHJzLElsYSxsUWU9ZigoKT0+e3I0KCk7bGUoKTtlYSgpO0VsYSgpO1FlKCk7cTE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHJzPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxJbGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWFwcHVpLXRhYnMiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXSxXLGo9W10sRz1bXTt2YXIgaGU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNBcHB1aVRhYnMiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgUj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6T2JqZWN0fSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOkJvb2xlYW59KV0sTj1bJCh7dHlwZTpOdW1iZXJ9KV0sTz1bJCh7dHlwZTpBcnJheX0pXSxCPVskKHt0eXBlOkFycmF5fSldLEU9W0soKV0sVz1bSygpXSxxMSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+InRhYnMiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS50YWJzLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnRhYnM9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbixsKSxxMSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJzZWxlY3RlZFRhYiJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLnNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnNlbGVjdGVkVGFiPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGMscCkscTEodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFiSW5kaWNhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJzaG93VGFiSW5kaWNhdG9yImluIFUsImhhcyIpLGdldDpzKFU9PlUuc2hvd1RhYkluZGljYXRvciwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5zaG93VGFiSW5kaWNhdG9yPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LG0sdikscTEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJTdHlsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4idGFiU3R5bGUiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS50YWJTdHlsZSwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS50YWJTdHlsZT1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxiLGcpLHExKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+ImF1dG9IaWRlImluIFUsImhhcyIpLGdldDpzKFU9PlUuYXV0b0hpZGUsImdldCIpLHNldDpzKChVLG1lKT0+e1UuYXV0b0hpZGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sayxDKSxxMSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJhdXRvSGlkZVRocmVzaG9sZCJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLmF1dG9IaWRlVGhyZXNob2xkLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLmF1dG9IaWRlVGhyZXNob2xkPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LF8seikscTEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4iYWN0aW9uc0xlZnQiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5hY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5hY3Rpb25zTGVmdD1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxULFApLHExKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uc1JpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJhY3Rpb25zUmlnaHQiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5hY3Rpb25zUmlnaHQsImdldCIpLHNldDpzKChVLG1lKT0+e1UuYWN0aW9uc1JpZ2h0PW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LE0sUykscTEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5TY3JvbGxMZWZ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJjYW5TY3JvbGxMZWZ0ImluIFUsImhhcyIpLGdldDpzKFU9PlUuY2FuU2Nyb2xsTGVmdCwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5jYW5TY3JvbGxMZWZ0PW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEEsRikscTEodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5TY3JvbGxSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4iY2FuU2Nyb2xsUmlnaHQiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5jYW5TY3JvbGxSaWdodCwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5jYW5TY3JvbGxSaWdodD1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxqLEcpLHExKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlJ9LG51bGwsdCksaGU9cj1lLnZhbHVlLFImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Un0pfXN0YXRpYyBkZW1vPVBsYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXJzKHRoaXMsbixbXSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhSKXt0aGlzLiNlPVJ9I3Q9KHJzKHRoaXMsbCkscnModGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoUil7dGhpcy4jdD1SfSNhPShycyh0aGlzLHApLHJzKHRoaXMsbSwhMCkpO2dldCBzaG93VGFiSW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUYWJJbmRpY2F0b3IoUil7dGhpcy4jYT1SfSNyPShycyh0aGlzLHYpLHJzKHRoaXMsYiwiaG9yaXpvbnRhbCIpKTtnZXQgdGFiU3R5bGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGFiU3R5bGUoUil7dGhpcy4jcj1SfSNzPShycyh0aGlzLGcpLHJzKHRoaXMsaywhMSkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiNzfXNldCBhdXRvSGlkZShSKXt0aGlzLiNzPVJ9I2k9KHJzKHRoaXMsQykscnModGhpcyxfLDApKTtnZXQgYXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b0hpZGVUaHJlc2hvbGQoUil7dGhpcy4jaT1SfSNvPShycyh0aGlzLHopLHJzKHRoaXMsVCxbXSkpO2dldCBhY3Rpb25zTGVmdCgpe3JldHVybiB0aGlzLiNvfXNldCBhY3Rpb25zTGVmdChSKXt0aGlzLiNvPVJ9I249KHJzKHRoaXMsUCkscnModGhpcyxNLFtdKSk7Z2V0IGFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNufXNldCBhY3Rpb25zUmlnaHQoUil7dGhpcy4jbj1SfSNsPShycyh0aGlzLFMpLHJzKHRoaXMsQSwhMSkpO2dldCBjYW5TY3JvbGxMZWZ0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGNhblNjcm9sbExlZnQoUil7dGhpcy4jbD1SfSNjPShycyh0aGlzLEYpLHJzKHRoaXMsaiwhMSkpO2dldCBjYW5TY3JvbGxSaWdodCgpe3JldHVybiB0aGlzLiNjfXNldCBjYW5TY3JvbGxSaWdodChSKXt0aGlzLiNjPVJ9cmVzaXplT2JzZXJ2ZXI9KHJzKHRoaXMsRyksbnVsbCk7c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIuaG9yaXpvbnRhbC13cmFwcGVyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAvKiBTY3JvbGwgZmFkZSBpbmRpY2F0b3JzICovCiAgICAgIC5zY3JvbGwtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDFweDsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtbGVmdCB7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsCiAgICAgICAgICAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke2guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1yaWdodCB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsCiAgICAgICAgICAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke2guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc2Nyb2xsLWFyZWEgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBhY3Rpb24gYnV0dG9ucyAqLwogICAgICAudGFiLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb25zLmxlZnQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9ucy5yaWdodCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTJweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItcHJlc3NlZCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBTaG93IHNjcm9sbGJhciBvbiBob3ZlciAqLwogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWwsCiAgICAgIC5zY3JvbGwtYXJlYTpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXI6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsCiAgICAgIC5zY3JvbGwtYXJlYTpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4zNSkiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpIil9OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci52ZXJ0aWNhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIgLnRhYi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyOjphZnRlciwKICAgICAgLmhvcml6b250YWwgLnRhYjpob3ZlciArIC50YWI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjQ0LCAyNDQsIDI0NSwgMC41KSIsInJnYmEoMzksIDM5LCA0MiwgMC41KSIpfTsKICAgICAgfQoKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWJJbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC50YWJJbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlciAudGFiSW5kaWNhdG9yIHsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKICAgICAgfQoKICAgICAgLyogQ2xvc2UgYnV0dG9uICovCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXByZXNzZWQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5hdXRvSGlkZSYmdGhpcy50YWJzLmxlbmd0aDw9dGhpcy5hdXRvSGlkZVRocmVzaG9sZD93YGA6d2AKICAgICAgJHt0aGlzLnJlbmRlclRhYnNXcmFwcGVyKCl9CiAgICBgfXJlbmRlclRhYnNXcmFwcGVyKCl7bGV0IFI9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIixVPVI/InRhYnMtd3JhcHBlciBob3Jpem9udGFsLXdyYXBwZXIiOiJ2ZXJ0aWNhbC13cmFwcGVyIixtZT1gdGFic0NvbnRhaW5lciAke3RoaXMudGFiU3R5bGV9YDtpZihSKXtsZXQgST10aGlzLmFjdGlvbnNMZWZ0JiZ0aGlzLmFjdGlvbnNMZWZ0Lmxlbmd0aD4wLHE9dGhpcy5hY3Rpb25zUmlnaHQmJnRoaXMuYWN0aW9uc1JpZ2h0Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9IiR7VX0iPgogICAgICAgICAgJHtJP3RoaXMucmVuZGVyQWN0aW9ucyh0aGlzLmFjdGlvbnNMZWZ0LCJsZWZ0Iik6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtYXJlYSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1mYWRlIHNjcm9sbC1mYWRlLWxlZnQgJHt0aGlzLmNhblNjcm9sbExlZnQ/InZpc2libGUiOiIifSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IiR7bWV9IiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChjZT0+dGhpcy5yZW5kZXJUYWIoY2UsUikpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtcmlnaHQgJHt0aGlzLmNhblNjcm9sbFJpZ2h0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3E/dGhpcy5yZW5kZXJBY3Rpb25zKHRoaXMuYWN0aW9uc1JpZ2h0LCJyaWdodCIpOiIifQogICAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9IiR7VX0iPgogICAgICAgIDxkaXYgY2xhc3M9IiR7bWV9Ij4KICAgICAgICAgICR7dGhpcy50YWJzLm1hcChJPT50aGlzLnJlbmRlclRhYihJLFIpKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2hvd1RhYkluZGljYXRvcj93YDxkaXYgY2xhc3M9InRhYkluZGljYXRvciI+PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbnMoUixVKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFiLWFjdGlvbnMgJHtVfSI+CiAgICAgICAgJHtSLm1hcChtZT0+d2AKICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRhYi1hY3Rpb24tYnV0dG9uICR7bWUuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIHRpdGxlPSIke21lLnRvb2x0aXB8fG1lLmlkfSIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFtZS5kaXNhYmxlZCYmbWUuYWN0aW9uKCl9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHttZS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihSLFUpe2xldCBJPWB0YWIgJHtSPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifWAscT1SLmNsb3NlYWJsZT93YAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNsb3NlIiBAY2xpY2s9IiR7dWU9PnRoaXMuY2xvc2VUYWIodWUsUil9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPjwvZGVlcy1pY29uPgogICAgICA8L3NwYW4+CiAgICBgOiIiLGNlPVU/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jb250ZW50Ij4KICAgICAgICAke3RoaXMucmVuZGVyVGFiSWNvbihSKX0KICAgICAgICAke1Iua2V5fQogICAgICA8L3NwYW4+CiAgICAgICR7cX0KICAgIGA6d2AKICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oUil9CiAgICAgICR7Ui5rZXl9CiAgICAgICR7cX0KICAgIGA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iJHtJfSIKICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0VGFiKFIpfSIKICAgICAgPgogICAgICAgICR7Y2V9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWJJY29uKFIpe3JldHVybiBSLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0ke1IuaWNvbk5hbWV9PjwvZGVlcy1pY29uPmA6IiJ9c2VsZWN0VGFiKFIpe3RoaXMuc2VsZWN0ZWRUYWI9UixSLmFjdGlvbigpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2Nyb2xsVGFiSW50b1ZpZXcoUil9KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc2VsZWN0Iix7ZGV0YWlsOnt0YWI6Un0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbGVhcigpe3RoaXMudGFicz1bXSx0aGlzLnNlbGVjdGVkVGFiPW51bGx9Y2xvc2VUYWIoUixVKXtSLnN0b3BQcm9wYWdhdGlvbigpLFUub25DbG9zZSYmVS5vbkNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlIix7ZGV0YWlsOnt0YWI6VX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCl9c2V0dXBSZXNpemVPYnNlcnZlcigpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO3RoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSk7bGV0IFI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7UiYmdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFIpfWhhbmRsZVNjcm9sbD1zKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSwiaGFuZGxlU2Nyb2xsIik7dXBkYXRlU2Nyb2xsU3RhdGUoKXtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJzQ29udGFpbmVyLmhvcml6b250YWwiKTtpZighUilyZXR1cm47bGV0IFU9Ui5zY3JvbGxMZWZ0LG1lPVIuc2Nyb2xsV2lkdGgsST1SLmNsaWVudFdpZHRoLHE9Mjt0aGlzLmNhblNjcm9sbExlZnQ9VT5xLHRoaXMuY2FuU2Nyb2xsUmlnaHQ9VTxtZS1JLXF9c2Nyb2xsVGFiSW50b1ZpZXcoUil7aWYodGhpcy50YWJTdHlsZSE9PSJob3Jpem9udGFsIilyZXR1cm47bGV0IFU9dGhpcy50YWJzLmluZGV4T2YoUik7aWYoVT09PS0xKXJldHVybjtsZXQgbWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIiksST1tZT8ucXVlcnlTZWxlY3RvcihgLnRhYjpudGgtY2hpbGQoJHtVKzF9KWApO2lmKEkmJm1lKXtsZXQgcT1tZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjZT1JLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NlLmxlZnQ+PXEubGVmdCYmY2UucmlnaHQ8PXEucmlnaHR8fEkuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifSl9fWFzeW5jIHVwZGF0ZWQoUil7c3VwZXIudXBkYXRlZChSKSxSLmhhcygidGFicyIpJiYoIXRoaXMudGFic3x8dGhpcy50YWJzLmxlbmd0aD09PTA/dGhpcy5zZWxlY3RlZFRhYiE9PW51bGwmJih0aGlzLnNlbGVjdGVkVGFiPW51bGwsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOm51bGx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpOnRoaXMuc2VsZWN0ZWRUYWImJiF0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYik/dGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKTp0aGlzLnNlbGVjdGVkVGFifHx0aGlzLnNlbGVjdFRhYih0aGlzLnRhYnNbMF0pKSwoUi5oYXMoInNlbGVjdGVkVGFiIil8fFIuaGFzKCJ0YWJzIikpJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSwhdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZCYmZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMudXBkYXRlVGFiSW5kaWNhdG9yKCksdGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSkpfWluZGljYXRvckluaXRpYWxpemVkPSExO3VwZGF0ZVRhYkluZGljYXRvcigpe2lmKCF0aGlzLnNob3VsZFNob3dJbmRpY2F0b3IoKSlyZXR1cm47bGV0IFI9dGhpcy5nZXRTZWxlY3RlZFRhYkVsZW1lbnQoKTtpZighUilyZXR1cm47bGV0IFU9dGhpcy5nZXRJbmRpY2F0b3JFbGVtZW50KCk7VSYmKHRoaXMuaGFuZGxlSW5pdGlhbFRyYW5zaXRpb24oVSksdGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj90aGlzLnVwZGF0ZUhvcml6b250YWxJbmRpY2F0b3IoVSxSKTp0aGlzLnVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKFUsUiksVS5zdHlsZS5vcGFjaXR5PSIxIil9c2hvdWxkU2hvd0luZGljYXRvcigpe3JldHVybiEhdGhpcy5zZWxlY3RlZFRhYiYmdGhpcy5zaG93VGFiSW5kaWNhdG9yJiZ0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYil9Z2V0U2VsZWN0ZWRUYWJFbGVtZW50KCl7bGV0IFI9dGhpcy50YWJzLmluZGV4T2YodGhpcy5zZWxlY3RlZFRhYiksbWU9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj9gLnRhYnMtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke1IrMX0pYDpgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtSKzF9KWA7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKG1lKX1nZXRJbmRpY2F0b3JFbGVtZW50KCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudGFiSW5kaWNhdG9yIil9aGFuZGxlSW5pdGlhbFRyYW5zaXRpb24oUil7dGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZHx8KFIuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITAsc2V0VGltZW91dCgoKT0+e1IuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSw1MCkpfXVwZGF0ZUhvcml6b250YWxJbmRpY2F0b3IoUixVKXtsZXQgbWU9VS5xdWVyeVNlbGVjdG9yKCIudGFiLWNvbnRlbnQiKTtpZighbWUpcmV0dXJuO2xldCBJPVIucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxxPW1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGNlPXEubGVmdC1JLmxlZnQsdWU9cS53aWR0aCs4LFk9Y2UtNDtSLnN0eWxlLndpZHRoPWAke3VlfXB4YCxSLnN0eWxlLmxlZnQ9YCR7WX1weGB9dXBkYXRlVmVydGljYWxJbmRpY2F0b3IoUixVKXtsZXQgbWU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIik7bWUmJihSLnN0eWxlLnRvcD1gJHtVLm9mZnNldFRvcCttZS5vZmZzZXRUb3B9cHhgLFIuc3R5bGUuaGVpZ2h0PWAke1UuY2xpZW50SGVpZ2h0fXB4YCl9c3RhdGlje3JzKHIsdCl9fTtyZXR1cm4gaGU9cn0pKCl9KTt2YXIgTDQscm8sTmxhLGNRZT1mKCgpPT57cjQoKTtsZSgpO2VhKCk7bFFlKCk7UWUoKTtMND1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0scm89ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LE5sYT0oKCk9PntsZXQgYT1baWUoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0FwcHVpTWFpbmNvbnRlbnQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6T2JqZWN0fSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOkJvb2xlYW59KV0seT1bJCh7dHlwZTpOdW1iZXJ9KV0sTj1bJCh7dHlwZTpBcnJheX0pXSxPPVskKHt0eXBlOkFycmF5fSldLEw0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4idGFicyJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnRhYnMsImdldCIpLHNldDpzKChTLEUpPT57Uy50YWJzPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sbixsKSxMNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJzZWxlY3RlZFRhYiJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1Muc2VsZWN0ZWRUYWI9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxjLHApLEw0KHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InNob3dUYWJzImluIFMsImhhcyIpLGdldDpzKFM9PlMuc2hvd1RhYnMsImdldCIpLHNldDpzKChTLEUpPT57Uy5zaG93VGFicz1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sdiksTDQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InRhYnNBdXRvSGlkZSJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnRhYnNBdXRvSGlkZSwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnRhYnNBdXRvSGlkZT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGIsZyksTDQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InRhYnNBdXRvSGlkZVRocmVzaG9sZCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnRhYnNBdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnRhYnNBdXRvSGlkZVRocmVzaG9sZD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGssQyksTDQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJBY3Rpb25zTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4idGFiQWN0aW9uc0xlZnQiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy50YWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnRhYkFjdGlvbnNMZWZ0PUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sXyx6KSxMNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYkFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4idGFiQWN0aW9uc1JpZ2h0ImluIFMsImhhcyIpLGdldDpzKFM9PlMudGFiQWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MudGFiQWN0aW9uc1JpZ2h0PUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sVCxQKSxMNChudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLEI9cj1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAudGFicz0ke1t7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246cygoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJEZXRhaWxzIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiRGV0YWlscyIpLCJhY3Rpb24iKX0se2tleToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKSwiYWN0aW9uIil9XX0KICAgID4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBzdHlsZT0icGFkZGluZzogNDBweDsgY29sb3I6ICNjY2M7Ij4KICAgICAgICA8aDE+TWFpbiBDb250ZW50IEFyZWE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgd2hlcmUgeW91ciBhcHBsaWNhdGlvbiBjb250ZW50IGdvZXMuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1hcHB1aS1tYWluY29udGVudD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1ybyh0aGlzLG4sW3trZXk6Ilx1MjZBMFx1RkUwRiBQbGVhc2Ugc2V0IHRhYnMiLGFjdGlvbjpzKCgpPT5jb25zb2xlLndhcm4oIk5vIHRhYnMgY29uZmlndXJlZCBmb3IgbWFpbmNvbnRlbnQiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhNKXt0aGlzLiNlPU19I3Q9KHJvKHRoaXMsbCkscm8odGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoTSl7dGhpcy4jdD1NfSNhPShybyh0aGlzLHApLHJvKHRoaXMsbSwhMCkpO2dldCBzaG93VGFicygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFicyhNKXt0aGlzLiNhPU19I3I9KHJvKHRoaXMsdikscm8odGhpcyxiLCExKSk7Z2V0IHRhYnNBdXRvSGlkZSgpe3JldHVybiB0aGlzLiNyfXNldCB0YWJzQXV0b0hpZGUoTSl7dGhpcy4jcj1NfSNzPShybyh0aGlzLGcpLHJvKHRoaXMsaywwKSk7Z2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNzfXNldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoTSl7dGhpcy4jcz1NfSNpPShybyh0aGlzLEMpLHJvKHRoaXMsXyxbXSkpO2dldCB0YWJBY3Rpb25zTGVmdCgpe3JldHVybiB0aGlzLiNpfXNldCB0YWJBY3Rpb25zTGVmdChNKXt0aGlzLiNpPU19I289KHJvKHRoaXMseikscm8odGhpcyxULFtdKSk7Z2V0IHRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNvfXNldCB0YWJBY3Rpb25zUmlnaHQoTSl7dGhpcy4jbz1NfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC50b3BiYXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAudG9wYmFyID4gKiB7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICA6aG9zdChbbm90YWJzXSkgLnRvcGJhciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BiYXIiPgogICAgICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgICAudGFicz0ke3RoaXMudGFic30KICAgICAgICAgICAgLnNlbGVjdGVkVGFiPSR7dGhpcy5zZWxlY3RlZFRhYn0KICAgICAgICAgICAgLnNob3dUYWJJbmRpY2F0b3I9JHshMH0KICAgICAgICAgICAgLnRhYlN0eWxlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuYXV0b0hpZGU9JHt0aGlzLnRhYnNBdXRvSGlkZX0KICAgICAgICAgICAgLmF1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy50YWJzQXV0b0hpZGVUaHJlc2hvbGR9CiAgICAgICAgICAgIC5hY3Rpb25zTGVmdD0ke3RoaXMudGFiQWN0aW9uc0xlZnR9CiAgICAgICAgICAgIC5hY3Rpb25zUmlnaHQ9JHt0aGlzLnRhYkFjdGlvbnNSaWdodH0KICAgICAgICAgICAgQHRhYi1zZWxlY3Q9JHtNPT50aGlzLmhhbmRsZVRhYlNlbGVjdChNKX0KICAgICAgICAgICAgQHRhYi1jbG9zZT0ke009PnRoaXMuaGFuZGxlVGFiQ2xvc2UoTSl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICAgIDxzbG90IG5hbWU9ImNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVRhYlNlbGVjdChNKXt0aGlzLnNlbGVjdGVkVGFiPU0uZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc2VsZWN0Iix7ZGV0YWlsOk0uZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVGFiQ2xvc2UoTSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlIix7ZGV0YWlsOk0uZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dXBkYXRlZChNKXtzdXBlci51cGRhdGVkKE0pLE0uaGFzKCJzaG93VGFicyIpJiYodGhpcy5zaG93VGFicz90aGlzLnJlbW92ZUF0dHJpYnV0ZSgibm90YWJzIik6dGhpcy5zZXRBdHRyaWJ1dGUoIm5vdGFicyIsIiIpKX1hc3luYyBmaXJzdFVwZGF0ZWQoTSl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKE0pLHRoaXMuc2hvd1RhYnN8fHRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKTtsZXQgUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS10YWJzIik7UyYmYXdhaXQgUy51cGRhdGVDb21wbGV0ZX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscm8odGhpcyxQKX1zdGF0aWN7cm8ocix0KX19O3JldHVybiBCPXJ9KSgpfSk7dmFyIGhhLG90LFJsYSxPbGE9ZigoKT0+e2xlKCk7ZWEoKTtyNCgpO0NsYSgpO1FlKCk7aVFlKCk7TVllKCk7U1llKCk7b1FlKCk7blFlKCk7Y1FlKCk7YlllKCk7aGE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LG90PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxSbGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWFwcHVpIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdLGdlLGFlPVtdLHJlPVtdLHllLFY9W10sSD1bXSxvZSxzZT1bXSx0ZT1bXSx6ZSxPZT1bXSxxZT1bXSxkdCwkZT1bXSxDZT1bXSxNZSxkZT1bXSx2ZT1bXSxBZSxaZT1bXSxudD1bXSx6dCxUZT1bXSx3ZT1bXSxSZSxmZT1bXSxiZT1bXSxFZSxmdD1bXSxtdD1bXSxJdCxYYT1bXSxKYT1bXSx3cyxVZT1bXSx1dD1bXSxRYSxNcj1bXSwkcj1bXSxWcixEcj1bXSx4bz1bXSx5byxMZT1bXSxTZT1bXSxCZSxpYT1bXSxNcz1bXSxobCx4ZT1bXSxuZT1bXSxfZSxXZT1bXSxTdD1bXSxrcyxqcj1bXSxIaT1bXSxRbixzMj1bXSxtbD1bXSxKbixZND1bXSx4Nz1bXSx5Nyx3Nz1bXSxNNz1bXSxrNyxTNz1bXSx6Nz1bXTt2YXIgQzc9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNBcHB1aSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBEPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpCb29sZWFufSldLHk9WyQoe3R5cGU6T2JqZWN0fSldLE49WyQoe3R5cGU6QXJyYXl9KV0sTz1bJCh7dHlwZTpCb29sZWFufSldLEI9WyQoe3R5cGU6U3RyaW5nfSldLEU9WyQoe3R5cGU6U3RyaW5nfSldLFc9WyQoe3R5cGU6QXJyYXl9KV0saGU9WyQoe3R5cGU6QXJyYXl9KV0sbWU9WyQoe3R5cGU6QXJyYXl9KV0sY2U9WyQoe3R5cGU6T2JqZWN0fSldLFE9WyQoe3R5cGU6U3RyaW5nfSldLGdlPVskKHt0eXBlOkFycmF5fSldLHllPVskKHt0eXBlOk9iamVjdH0pXSxvZT1bJCh7dHlwZTpCb29sZWFufSldLHplPVskKHt0eXBlOkJvb2xlYW59KV0sZHQ9WyQoe3R5cGU6Qm9vbGVhbn0pXSxNZT1bJCh7dHlwZTpCb29sZWFufSldLEFlPVskKHt0eXBlOkJvb2xlYW59KV0senQ9WyQoe3R5cGU6Qm9vbGVhbn0pXSxSZT1bJCh7dHlwZTpOdW1iZXJ9KV0sRWU9W0soKV0sSXQ9W0soKV0sd3M9WyQoe3R5cGU6QXJyYXl9KV0sUWE9WyQoe3R5cGU6T2JqZWN0fSldLFZyPVskKHt0eXBlOkFycmF5fSldLHlvPVskKHt0eXBlOkFycmF5fSldLEJlPVtLKCldLGhsPVtLKCldLF9lPVtLKCldLGtzPVtLKCldLFFuPVtLKCldLEpuPVtLKCldLHk3PVtLKCldLGs3PVtLKCldLGhhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhcHBiYXJNZW51SXRlbXMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5hcHBiYXJNZW51SXRlbXMsImdldCIpLHNldDpzKChMLGVlKT0+e0wuYXBwYmFyTWVudUl0ZW1zPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LG4sbCksaGEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iYXBwYmFyQnJlYWRjcnVtYnMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5hcHBiYXJCcmVhZGNydW1icywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5hcHBiYXJCcmVhZGNydW1icz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxjLHApLGhhKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IsImdldCIpLHNldDpzKChMLGVlKT0+e0wuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxtLHYpLGhhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5hcHBiYXJTaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDpzKChMLGVlKT0+e0wuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGIsZyksaGEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhcHBiYXJVc2VyImluIEwsImhhcyIpLGdldDpzKEw9PkwuYXBwYmFyVXNlciwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5hcHBiYXJVc2VyPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGssQyksaGEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJQcm9maWxlTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhcHBiYXJQcm9maWxlTWVudUl0ZW1zImluIEwsImhhcyIpLGdldDpzKEw9PkwuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LF8seiksaGEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhcHBiYXJTaG93U2VhcmNoImluIEwsImhhcyIpLGdldDpzKEw9PkwuYXBwYmFyU2hvd1NlYXJjaCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5hcHBiYXJTaG93U2VhcmNoPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFQsUCksaGEodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJtYWlubWVudUxvZ29JY29uImluIEwsImhhcyIpLGdldDpzKEw9PkwubWFpbm1lbnVMb2dvSWNvbiwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5tYWlubWVudUxvZ29JY29uPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LE0sUyksaGEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJtYWlubWVudUxvZ29UZXh0ImluIEwsImhhcyIpLGdldDpzKEw9PkwubWFpbm1lbnVMb2dvVGV4dCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5tYWlubWVudUxvZ29UZXh0PWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEEsRiksaGEodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ibWFpbm1lbnVHcm91cHMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5tYWlubWVudUdyb3VwcywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5tYWlubWVudUdyb3Vwcz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxqLEcpLGhhKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Qm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ibWFpbm1lbnVCb3R0b21UYWJzImluIEwsImhhcyIpLGdldDpzKEw9PkwubWFpbm1lbnVCb3R0b21UYWJzLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLm1haW5tZW51Qm90dG9tVGFicz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxSLFUpLGhhKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ibWFpbm1lbnVUYWJzImluIEwsImhhcyIpLGdldDpzKEw9PkwubWFpbm1lbnVUYWJzLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLm1haW5tZW51VGFicz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxJLHEpLGhhKHRoaXMsbnVsbCxjZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5tYWlubWVudVNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLm1haW5tZW51U2VsZWN0ZWRUYWI9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sdWUsWSksaGEodGhpcyxudWxsLFEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51SGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ic2Vjb25kYXJ5bWVudUhlYWRpbmciaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zZWNvbmRhcnltZW51SGVhZGluZywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5zZWNvbmRhcnltZW51SGVhZGluZz1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxKLFopLGhhKHRoaXMsbnVsbCxnZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+InNlY29uZGFyeW1lbnVHcm91cHMiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zZWNvbmRhcnltZW51R3JvdXBzLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnNlY29uZGFyeW1lbnVHcm91cHM9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sYWUscmUpLGhhKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+InNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0iaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVixIKSxoYSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ibWFpbm1lbnVDb2xsYXBzZWQiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5tYWlubWVudUNvbGxhcHNlZCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5tYWlubWVudUNvbGxhcHNlZD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxzZSx0ZSksaGEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQsImdldCIpLHNldDpzKChMLGVlKT0+e0wuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxPZSxxZSksaGEodGhpcyxudWxsLGR0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJtYWlubWVudVZpc2libGUiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5tYWlubWVudVZpc2libGUsImdldCIpLHNldDpzKChMLGVlKT0+e0wubWFpbm1lbnVWaXNpYmxlPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LCRlLENlKSxoYSh0aGlzLG51bGwsTWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ic2Vjb25kYXJ5bWVudVZpc2libGUiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5zZWNvbmRhcnltZW51VmlzaWJsZSwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5zZWNvbmRhcnltZW51VmlzaWJsZT1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxkZSx2ZSksaGEodGhpcyxudWxsLEFlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLm1haW5jb250ZW50VGFic1Zpc2libGUsImdldCIpLHNldDpzKChMLGVlKT0+e0wubWFpbmNvbnRlbnRUYWJzVmlzaWJsZT1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxaZSxudCksaGEodGhpcyxudWxsLHp0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFRhYnNBdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iY29udGVudFRhYnNBdXRvSGlkZSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmNvbnRlbnRUYWJzQXV0b0hpZGUsImdldCIpLHNldDpzKChMLGVlKT0+e0wuY29udGVudFRhYnNBdXRvSGlkZT1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxUZSx3ZSksaGEodGhpcyxudWxsLFJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQsImdldCIpLHNldDpzKChMLGVlKT0+e0wuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxmZSxiZSksaGEodGhpcyxudWxsLEVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhY3Rpdml0eUxvZ1Zpc2libGUiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5hY3Rpdml0eUxvZ1Zpc2libGUsImdldCIpLHNldDpzKChMLGVlKT0+e0wuYWN0aXZpdHlMb2dWaXNpYmxlPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGZ0LG10KSxoYSh0aGlzLG51bGwsSXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0NvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhY3Rpdml0eUxvZ0NvdW50ImluIEwsImhhcyIpLGdldDpzKEw9PkwuYWN0aXZpdHlMb2dDb3VudCwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5hY3Rpdml0eUxvZ0NvdW50PWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LFhhLEphKSxoYSh0aGlzLG51bGwsd3Mse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+Im1haW5jb250ZW50VGFicyJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLm1haW5jb250ZW50VGFicywiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5tYWluY29udGVudFRhYnM9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sVWUsdXQpLGhhKHRoaXMsbnVsbCxRYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5tYWluY29udGVudFNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTXIsJHIpLGhhKHRoaXMsbnVsbCxWcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJBY3Rpb25zTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iY29udGVudFRhYkFjdGlvbnNMZWZ0ImluIEwsImhhcyIpLGdldDpzKEw9PkwuY29udGVudFRhYkFjdGlvbnNMZWZ0LCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLmNvbnRlbnRUYWJBY3Rpb25zTGVmdD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxEcix4byksaGEodGhpcyxudWxsLHlvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFRhYkFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iY29udGVudFRhYkFjdGlvbnNSaWdodCJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQsImdldCIpLHNldDpzKChMLGVlKT0+e0wuY29udGVudFRhYkFjdGlvbnNSaWdodD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxMZSxTZSksaGEodGhpcyxudWxsLEJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEw9PiJhcHBiYXIiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5hcHBiYXIsImdldCIpLHNldDpzKChMLGVlKT0+e0wuYXBwYmFyPWVlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGlhLE1zKSxoYSh0aGlzLG51bGwsaGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ibWFpbm1lbnUiaW4gTCwiaGFzIiksZ2V0OnMoTD0+TC5tYWlubWVudSwiZ2V0Iiksc2V0OnMoKEwsZWUpPT57TC5tYWlubWVudT1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSx4ZSxuZSksaGEodGhpcyxudWxsLF9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4ic2Vjb25kYXJ5bWVudSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLnNlY29uZGFyeW1lbnUsImdldCIpLHNldDpzKChMLGVlKT0+e0wuc2Vjb25kYXJ5bWVudT1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxXZSxTdCksaGEodGhpcyxudWxsLGtzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+Im1haW5jb250ZW50ImluIEwsImhhcyIpLGdldDpzKEw9PkwubWFpbmNvbnRlbnQsImdldCIpLHNldDpzKChMLGVlKT0+e0wubWFpbmNvbnRlbnQ9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sanIsSGkpLGhhKHRoaXMsbnVsbCxRbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5bG9nRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iYWN0aXZpdHlsb2dFbGVtZW50ImluIEwsImhhcyIpLGdldDpzKEw9PkwuYWN0aXZpdHlsb2dFbGVtZW50LCJnZXQiKSxzZXQ6cygoTCxlZSk9PntMLmFjdGl2aXR5bG9nRWxlbWVudD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxzMixtbCksaGEodGhpcyxudWxsLEpuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iYm90dG9tYmFyRWxlbWVudCJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmJvdHRvbWJhckVsZW1lbnQsImdldCIpLHNldDpzKChMLGVlKT0+e0wuYm90dG9tYmFyRWxlbWVudD1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSxZNCx4NyksaGEodGhpcyxudWxsLHk3LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhMPT4iYm90dG9tYmFyVmlzaWJsZSJpbiBMLCJoYXMiKSxnZXQ6cyhMPT5MLmJvdHRvbWJhclZpc2libGUsImdldCIpLHNldDpzKChMLGVlKT0+e0wuYm90dG9tYmFyVmlzaWJsZT1lZX0sInNldCIpfSxtZXRhZGF0YTpEfSx3NyxNNyksaGEodGhpcyxudWxsLGs3LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoTD0+ImN1cnJlbnRWaWV3ImluIEwsImhhcyIpLGdldDpzKEw9PkwuY3VycmVudFZpZXcsImdldCIpLHNldDpzKChMLGVlKT0+e0wuY3VycmVudFZpZXc9ZWV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sUzcsejcpLGhhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkR9LG51bGwsdCksQzc9cj1lLnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPXpsYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3ZpZXdMaWZlY3ljbGUkPW5ldyBIdC5zbWFydHJ4LnJ4anMuU3ViamVjdDt2aWV3Q2hhbmdlZCQ9bmV3IEh0LnNtYXJ0cngucnhqcy5TdWJqZWN0OyNlPW90KHRoaXMsbixbXSk7Z2V0IGFwcGJhck1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBhcHBiYXJNZW51SXRlbXMoRCl7dGhpcy4jZT1EfSN0PShvdCh0aGlzLGwpLG90KHRoaXMsYywiIikpO2dldCBhcHBiYXJCcmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBhcHBiYXJCcmVhZGNydW1icyhEKXt0aGlzLiN0PUR9I2E9KG90KHRoaXMscCksb3QodGhpcyxtLCIgPiAiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcihEKXt0aGlzLiNhPUR9I3I9KG90KHRoaXMsdiksb3QodGhpcyxiLCEwKSk7Z2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNyfXNldCBhcHBiYXJTaG93V2luZG93Q29udHJvbHMoRCl7dGhpcy4jcj1EfSNzPShvdCh0aGlzLGcpLG90KHRoaXMsayx2b2lkIDApKTtnZXQgYXBwYmFyVXNlcigpe3JldHVybiB0aGlzLiNzfXNldCBhcHBiYXJVc2VyKEQpe3RoaXMuI3M9RH0jaT0ob3QodGhpcyxDKSxvdCh0aGlzLF8sW10pKTtnZXQgYXBwYmFyUHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNpfXNldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKEQpe3RoaXMuI2k9RH0jbz0ob3QodGhpcyx6KSxvdCh0aGlzLFQsITEpKTtnZXQgYXBwYmFyU2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNvfXNldCBhcHBiYXJTaG93U2VhcmNoKEQpe3RoaXMuI289RH0jbj0ob3QodGhpcyxQKSxvdCh0aGlzLE0sIiIpKTtnZXQgbWFpbm1lbnVMb2dvSWNvbigpe3JldHVybiB0aGlzLiNufXNldCBtYWlubWVudUxvZ29JY29uKEQpe3RoaXMuI249RH0jbD0ob3QodGhpcyxTKSxvdCh0aGlzLEEsIiIpKTtnZXQgbWFpbm1lbnVMb2dvVGV4dCgpe3JldHVybiB0aGlzLiNsfXNldCBtYWlubWVudUxvZ29UZXh0KEQpe3RoaXMuI2w9RH0jYz0ob3QodGhpcyxGKSxvdCh0aGlzLGosW10pKTtnZXQgbWFpbm1lbnVHcm91cHMoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWFpbm1lbnVHcm91cHMoRCl7dGhpcy4jYz1EfSNkPShvdCh0aGlzLEcpLG90KHRoaXMsUixbXSkpO2dldCBtYWlubWVudUJvdHRvbVRhYnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgbWFpbm1lbnVCb3R0b21UYWJzKEQpe3RoaXMuI2Q9RH0jdT0ob3QodGhpcyxVKSxvdCh0aGlzLEksW10pKTtnZXQgbWFpbm1lbnVUYWJzKCl7cmV0dXJuIHRoaXMuI3V9c2V0IG1haW5tZW51VGFicyhEKXt0aGlzLiN1PUR9I3A9KG90KHRoaXMscSksb3QodGhpcyx1ZSx2b2lkIDApKTtnZXQgbWFpbm1lbnVTZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiNwfXNldCBtYWlubWVudVNlbGVjdGVkVGFiKEQpe3RoaXMuI3A9RH0jZj0ob3QodGhpcyxZKSxvdCh0aGlzLEosIiIpKTtnZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZn1zZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoRCl7dGhpcy4jZj1EfSNoPShvdCh0aGlzLFopLG90KHRoaXMsYWUsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNofXNldCBzZWNvbmRhcnltZW51R3JvdXBzKEQpe3RoaXMuI2g9RH0jbT0ob3QodGhpcyxyZSksb3QodGhpcyxWLHZvaWQgMCkpO2dldCBzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oRCl7dGhpcy4jbT1EfSNnPShvdCh0aGlzLEgpLG90KHRoaXMsc2UsITEpKTtnZXQgbWFpbm1lbnVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jZ31zZXQgbWFpbm1lbnVDb2xsYXBzZWQoRCl7dGhpcy4jZz1EfSNiPShvdCh0aGlzLHRlKSxvdCh0aGlzLE9lLCExKSk7Z2V0IHNlY29uZGFyeW1lbnVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZChEKXt0aGlzLiNiPUR9I3Y9KG90KHRoaXMscWUpLG90KHRoaXMsJGUsITApKTtnZXQgbWFpbm1lbnVWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IG1haW5tZW51VmlzaWJsZShEKXt0aGlzLiN2PUR9I3g9KG90KHRoaXMsQ2UpLG90KHRoaXMsZGUsITApKTtnZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoRCl7dGhpcy4jeD1EfSN5PShvdCh0aGlzLHZlKSxvdCh0aGlzLFplLCEwKSk7Z2V0IG1haW5jb250ZW50VGFic1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jeX1zZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZShEKXt0aGlzLiN5PUR9I3c9KG90KHRoaXMsbnQpLG90KHRoaXMsVGUsITEpKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZSgpe3JldHVybiB0aGlzLiN3fXNldCBjb250ZW50VGFic0F1dG9IaWRlKEQpe3RoaXMuI3c9RH0jTT0ob3QodGhpcyx3ZSksb3QodGhpcyxmZSwwKSk7Z2V0IGNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZChEKXt0aGlzLiNNPUR9I2s9KG90KHRoaXMsYmUpLG90KHRoaXMsZnQsITEpKTtnZXQgYWN0aXZpdHlMb2dWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI2t9c2V0IGFjdGl2aXR5TG9nVmlzaWJsZShEKXt0aGlzLiNrPUR9I1M9KG90KHRoaXMsbXQpLG90KHRoaXMsWGEsMCkpO2dldCBhY3Rpdml0eUxvZ0NvdW50KCl7cmV0dXJuIHRoaXMuI1N9c2V0IGFjdGl2aXR5TG9nQ291bnQoRCl7dGhpcy4jUz1EfSN6PShvdCh0aGlzLEphKSxvdCh0aGlzLFVlLFtdKSk7Z2V0IG1haW5jb250ZW50VGFicygpe3JldHVybiB0aGlzLiN6fXNldCBtYWluY29udGVudFRhYnMoRCl7dGhpcy4jej1EfSNDPShvdCh0aGlzLHV0KSxvdCh0aGlzLE1yLHZvaWQgMCkpO2dldCBtYWluY29udGVudFNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI0N9c2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoRCl7dGhpcy4jQz1EfSNfPShvdCh0aGlzLCRyKSxvdCh0aGlzLERyLFtdKSk7Z2V0IGNvbnRlbnRUYWJBY3Rpb25zTGVmdCgpe3JldHVybiB0aGlzLiNffXNldCBjb250ZW50VGFiQWN0aW9uc0xlZnQoRCl7dGhpcy4jXz1EfSNUPShvdCh0aGlzLHhvKSxvdCh0aGlzLExlLFtdKSk7Z2V0IGNvbnRlbnRUYWJBY3Rpb25zUmlnaHQoKXtyZXR1cm4gdGhpcy4jVH1zZXQgY29udGVudFRhYkFjdGlvbnNSaWdodChEKXt0aGlzLiNUPUR9I0w9KG90KHRoaXMsU2UpLG90KHRoaXMsaWEsdm9pZCAwKSk7Z2V0IGFwcGJhcigpe3JldHVybiB0aGlzLiNMfXNldCBhcHBiYXIoRCl7dGhpcy4jTD1EfSMkPShvdCh0aGlzLE1zKSxvdCh0aGlzLHhlLHZvaWQgMCkpO2dldCBtYWlubWVudSgpe3JldHVybiB0aGlzLiMkfXNldCBtYWlubWVudShEKXt0aGlzLiMkPUR9I0Q9KG90KHRoaXMsbmUpLG90KHRoaXMsV2Usdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnUoKXtyZXR1cm4gdGhpcy4jRH1zZXQgc2Vjb25kYXJ5bWVudShEKXt0aGlzLiNEPUR9I0E9KG90KHRoaXMsU3QpLG90KHRoaXMsanIsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50KCl7cmV0dXJuIHRoaXMuI0F9c2V0IG1haW5jb250ZW50KEQpe3RoaXMuI0E9RH0jUD0ob3QodGhpcyxIaSksb3QodGhpcyxzMix2b2lkIDApKTtnZXQgYWN0aXZpdHlsb2dFbGVtZW50KCl7cmV0dXJuIHRoaXMuI1B9c2V0IGFjdGl2aXR5bG9nRWxlbWVudChEKXt0aGlzLiNQPUR9I0U9KG90KHRoaXMsbWwpLG90KHRoaXMsWTQsdm9pZCAwKSk7Z2V0IGJvdHRvbWJhckVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgYm90dG9tYmFyRWxlbWVudChEKXt0aGlzLiNFPUR9I0k9KG90KHRoaXMseDcpLG90KHRoaXMsdzcsITApKTtnZXQgYm90dG9tYmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLiNJfXNldCBib3R0b21iYXJWaXNpYmxlKEQpe3RoaXMuI0k9RH0jTj0ob3QodGhpcyxNNyksb3QodGhpcyxTNyx2b2lkIDApKTtnZXQgY3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy4jTn1zZXQgY3VycmVudFZpZXcoRCl7dGhpcy4jTj1EfXZpZXdSZWdpc3RyeT0ob3QodGhpcyx6NyksbmV3IFVXKTtyb3V0ZXJDbGVhbnVwPW51bGw7c2VhcmNoQ2FsbGJhY2s9bnVsbDtzdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgIH0KICAgICAgLm1haW5ncmlkIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0MHB4OwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgLyogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHNldCBkeW5hbWljYWxseSBpbiB0ZW1wbGF0ZSAqLwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtY29sdW1ucyAwLjNzIGVhc2UsIGhlaWdodCAwLjNzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2JvdHRvbWJhci1oaWRkZW5dKSAubWFpbmdyaWQgewogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIGRlZXMtYXBwdWktYm90dG9tYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogNDsKICAgICAgfQoKICAgICAgLyogWi1pbmRleCBsYXllcmluZyBmb3IgcHJvcGVyIHN0YWNraW5nICovCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktbWFpbm1lbnUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAzOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5oaWRkZW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CgogICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovCiAgICAgIC52aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC52aWV3LWNvbnRhaW5lcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc30KICAgICAgICAuYnJlYWRjcnVtYnM9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJzfQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yfQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc30KICAgICAgICAudXNlcj0ke3RoaXMuYXBwYmFyVXNlcn0KICAgICAgICAucHJvZmlsZU1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH0KICAgICAgICAuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPSR7ITB9CiAgICAgICAgLmFjdGl2aXR5TG9nQ291bnQ9JHt0aGlzLmFjdGl2aXR5TG9nQ291bnR9CiAgICAgICAgLmFjdGl2aXR5TG9nQWN0aXZlPSR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9CiAgICAgICAgQG1lbnUtc2VsZWN0PSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEQpfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7RD0+dGhpcy5oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoRCl9CiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl9CiAgICAgICAgQHNlYXJjaC1xdWVyeT0ke0Q9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRCl9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl9CiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KEQpfQogICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKT0+dGhpcy50b2dnbGVBY3Rpdml0eUxvZygpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnIgJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8iMjgwcHgiOiIwcHgifTsiPgogICAgICAgICR7dGhpcy5tYWlubWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgICAgICAgIC5sb2dvSWNvbj0ke3RoaXMubWFpbm1lbnVMb2dvSWNvbn0KICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fQogICAgICAgICAgICAubWVudUdyb3Vwcz0ke3RoaXMubWFpbm1lbnVHcm91cHN9CiAgICAgICAgICAgIC5ib3R0b21UYWJzPSR7dGhpcy5tYWlubWVudUJvdHRvbVRhYnN9CiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYn0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMubWFpbm1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7RD0+dGhpcy5oYW5kbGVNYWlubWVudVRhYlNlbGVjdChEKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke0Q9PnRoaXMuaGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShEKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgICAgICAgLmhlYWRpbmc9JHt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nfQogICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfQogICAgICAgICAgICAuc2VsZWN0ZWRJdGVtPSR7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtfQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEQpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7RD0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoRCl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic30KICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn0KICAgICAgICAgIC5zaG93VGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGU9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgLnRhYkFjdGlvbnNMZWZ0PSR7dGhpcy5jb250ZW50VGFiQWN0aW9uc0xlZnR9CiAgICAgICAgICAudGFiQWN0aW9uc1JpZ2h0PSR7dGhpcy5jb250ZW50VGFiQWN0aW9uc1JpZ2h0fQogICAgICAgICAgQHRhYi1zZWxlY3Q9JHtEPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoRCl9CiAgICAgICAgICBAdGFiLWNsb3NlPSR7RD0+dGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UoRCl9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgPHNsb3QgbmFtZT0ibWFpbmNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2cKICAgICAgICAgIGNsYXNzPSIke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyJ2aXNpYmxlIjoiaGlkZGVuIn0iCiAgICAgICAgPjwvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZz4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5ib3R0b21iYXJWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgIGA6IiJ9CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuYXBwYmFyPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFwcGJhciIpLHRoaXMubWFpbm1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbm1lbnUiKSx0aGlzLnNlY29uZGFyeW1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpLHRoaXMubWFpbmNvbnRlbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpLHRoaXMuYm90dG9tYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1ib3R0b21iYXIiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCYmdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZW50cmllcyQuc3Vic2NyaWJlKEQ9Pnt0aGlzLmFjdGl2aXR5TG9nQ291bnQ9RC5sZW5ndGh9KSx0aGlzLnZpZXdSZWdpc3RyeS5zZXRBcHB1aVJlZih0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yb3V0ZXJDbGVhbnVwJiYodGhpcy5yb3V0ZXJDbGVhbnVwKCksdGhpcy5yb3V0ZXJDbGVhbnVwPW51bGwpLHRoaXMudmlld0xpZmVjeWNsZSQuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2VkJC5jb21wbGV0ZSgpfXNldEFwcEJhck1lbnVzKEQpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPVsuLi5EXX11cGRhdGVBcHBCYXJNZW51KEQsTCl7dGhpcy5hcHBiYXJNZW51SXRlbXM9dGhpcy5hcHBiYXJNZW51SXRlbXMubWFwKGVlPT4ibmFtZSJpbiBlZSYmZWUubmFtZT09PUQ/ey4uLmVlLC4uLkx9OmVlKX1zZXRCcmVhZGNydW1icyhEKXtBcnJheS5pc0FycmF5KEQpP3RoaXMuYXBwYmFyQnJlYWRjcnVtYnM9RC5qb2luKHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcik6dGhpcy5hcHBiYXJCcmVhZGNydW1icz1EfXNldFVzZXIoRCl7dGhpcy5hcHBiYXJVc2VyPUR9c2V0UHJvZmlsZU1lbnVJdGVtcyhEKXt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9Wy4uLkRdfXNldFNlYXJjaFZpc2libGUoRCl7dGhpcy5hcHBiYXJTaG93U2VhcmNoPUR9c2V0V2luZG93Q29udHJvbHNWaXNpYmxlKEQpe3RoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUR9b25TZWFyY2goRCl7dGhpcy5zZWFyY2hDYWxsYmFjaz1EfXNldE1haW5NZW51KEQpe0QubG9nb0ljb24hPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb0ljb249RC5sb2dvSWNvbiksRC5sb2dvVGV4dCE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVMb2dvVGV4dD1ELmxvZ29UZXh0KSxELmdyb3VwcyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVHcm91cHM9Wy4uLkQuZ3JvdXBzXSksRC5ib3R0b21UYWJzIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9Wy4uLkQuYm90dG9tVGFic10pfXVwZGF0ZU1haW5NZW51R3JvdXAoRCxMKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKGVlPT5lZS5uYW1lPT09RD97Li4uZWUsLi4uTH06ZWUpfWFkZE1haW5NZW51SXRlbShELEwpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoZWU9PmVlLm5hbWU9PT1EP3suLi5lZSxpdGVtczpbLi4uZWUuaXRlbXN8fFtdLExdfTplZSl9cmVtb3ZlTWFpbk1lbnVJdGVtKEQsTCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChlZT0+ZWUubmFtZT09PUQ/ey4uLmVlLGl0ZW1zOihlZS5pdGVtc3x8W10pLmZpbHRlcihEZT0+RGUua2V5IT09TCl9OmVlKX1zZXRNYWluTWVudVNlbGVjdGlvbihEKXtmb3IobGV0IGVlIG9mIHRoaXMubWFpbm1lbnVHcm91cHMpe2xldCBEZT1lZS5pdGVtcz8uZmluZChJZT0+SWUua2V5PT09RCk7aWYoRGUpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1EZTtyZXR1cm59fWxldCBMPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLmZpbmQoZWU9PmVlLmtleT09PUQpO0wmJih0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9TCl9c2V0TWFpbk1lbnVDb2xsYXBzZWQoRCl7dGhpcy5tYWlubWVudUNvbGxhcHNlZD1EfXNldE1haW5NZW51VmlzaWJsZShEKXt0aGlzLm1haW5tZW51VmlzaWJsZT1EfXNldFNlY29uZGFyeU1lbnVDb2xsYXBzZWQoRCl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUR9c2V0U2Vjb25kYXJ5TWVudVZpc2libGUoRCl7dGhpcy5zZWNvbmRhcnltZW51VmlzaWJsZT1EfXNldENvbnRlbnRUYWJzVmlzaWJsZShEKXt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGU9RH1zZXRDb250ZW50VGFic0F1dG9IaWRlKEQsTD0wKXt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGU9RCx0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9TH1zZXRNYWluTWVudUJhZGdlKEQsTCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChlZT0+KHsuLi5lZSxpdGVtczooZWUuaXRlbXN8fFtdKS5tYXAoRGU9PkRlLmtleT09PUQ/ey4uLkRlLGJhZGdlOkx9OkRlKX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoZWU9PmVlLmtleT09PUQ/ey4uLmVlLGJhZGdlOkx9OmVlKX1jbGVhck1haW5NZW51QmFkZ2UoRCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChMPT4oey4uLkwsaXRlbXM6KEwuaXRlbXN8fFtdKS5tYXAoZWU9PntpZihlZS5rZXk9PT1EKXtsZXR7YmFkZ2U6RGUsLi4uSWV9PWVlO3JldHVybiBJZX1yZXR1cm4gZWV9KX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoTD0+e2lmKEwua2V5PT09RCl7bGV0e2JhZGdlOmVlLC4uLkRlfT1MO3JldHVybiBEZX1yZXR1cm4gTH0pfXNldFNlY29uZGFyeU1lbnUoRCl7RC5oZWFkaW5nIT09dm9pZCAwJiYodGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1ELmhlYWRpbmcpLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bLi4uRC5ncm91cHNdfXVwZGF0ZVNlY29uZGFyeU1lbnVHcm91cChELEwpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKGVlPT5lZS5uYW1lPT09RD97Li4uZWUsLi4uTH06ZWUpfWFkZFNlY29uZGFyeU1lbnVJdGVtKEQsTCl7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPXRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcy5tYXAoZWU9PmVlLm5hbWU9PT1EP3suLi5lZSxpdGVtczpbLi4uZWUuaXRlbXMsTF19OmVlKX1zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKEQpe2ZvcihsZXQgTCBvZiB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMpe2xldCBlZT1MLml0ZW1zLmZpbmQoRGU9PiJrZXkiaW4gRGUmJkRlLmtleT09PUQpO2lmKGVlJiYoISgidHlwZSJpbiBlZSl8fGVlLnR5cGU9PT0idGFiInx8ZWUudHlwZT09PXZvaWQgMCkpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1lZTtyZXR1cm59fX1jbGVhclNlY29uZGFyeU1lbnUoKXt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nPSIiLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bXSx0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09dm9pZCAwfXNldENvbnRlbnRUYWJzKEQpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi5EXSxELmxlbmd0aD4wJiYhdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPURbMF0pfWFkZENvbnRlbnRUYWIoRCl7dGhpcy5tYWluY29udGVudFRhYnM9Wy4uLnRoaXMubWFpbmNvbnRlbnRUYWJzLERdfXJlbW92ZUNvbnRlbnRUYWIoRCl7dGhpcy5tYWluY29udGVudFRhYnM9dGhpcy5tYWluY29udGVudFRhYnMuZmlsdGVyKEw9Pkwua2V5IT09RCksdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPy5rZXk9PT1EJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPXRoaXMubWFpbmNvbnRlbnRUYWJzWzBdKX1zZWxlY3RDb250ZW50VGFiKEQpe2xldCBMPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbmQoZWU9PmVlLmtleT09PUQpO0wmJih0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9TCl9Z2V0U2VsZWN0ZWRDb250ZW50VGFiKCl7cmV0dXJuIHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn1zZXRDb250ZW50VGFiQWN0aW9uc0xlZnQoRCl7dGhpcy5jb250ZW50VGFiQWN0aW9uc0xlZnQ9Wy4uLkRdfXNldENvbnRlbnRUYWJBY3Rpb25zUmlnaHQoRCl7dGhpcy5jb250ZW50VGFiQWN0aW9uc1JpZ2h0PVsuLi5EXX1nZXQgYWN0aXZpdHlMb2coKXtyZXR1cm4gdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/e2FkZDpzKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmFkZChEKSwiYWRkIiksYWRkTWFueTpzKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmFkZE1hbnkoRCksImFkZE1hbnkiKSxjbGVhcjpzKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5jbGVhcigpLCJjbGVhciIpLGdldEVudHJpZXM6cygoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZ2V0RW50cmllcygpLCJnZXRFbnRyaWVzIiksZmlsdGVyOnMoRD0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZmlsdGVyKEQpLCJmaWx0ZXIiKSxzZWFyY2g6cyhEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5zZWFyY2goRCksInNlYXJjaCIpfTp7YWRkOnMoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmFkZChEKSl9LCJhZGQiKSxhZGRNYW55OnMoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmFkZE1hbnkoRCkpfSwiYWRkTWFueSIpLGNsZWFyOnMoKCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5jbGVhcigpKX0sImNsZWFyIiksZ2V0RW50cmllczpzKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uZ2V0RW50cmllcygpfHxbXSwiZ2V0RW50cmllcyIpLGZpbHRlcjpzKEQ9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5maWx0ZXIoRCl8fFtdLCJmaWx0ZXIiKSxzZWFyY2g6cyhEPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uc2VhcmNoKEQpfHxbXSwic2VhcmNoIil9fXNldEFjdGl2aXR5TG9nVmlzaWJsZShEKXt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT1EfXRvZ2dsZUFjdGl2aXR5TG9nKCl7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU9IXRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfWdldEFjdGl2aXR5TG9nVmlzaWJsZSgpe3JldHVybiB0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1nZXQgYm90dG9tQmFyKCl7cmV0dXJuIHRoaXMuYm90dG9tYmFyRWxlbWVudD97YWRkV2lkZ2V0OnMoRD0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmFkZFdpZGdldChEKSwiYWRkV2lkZ2V0IiksdXBkYXRlV2lkZ2V0OnMoKEQsTCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudC51cGRhdGVXaWRnZXQoRCxMKSwidXBkYXRlV2lkZ2V0IikscmVtb3ZlV2lkZ2V0OnMoRD0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnJlbW92ZVdpZGdldChEKSwicmVtb3ZlV2lkZ2V0IiksZ2V0V2lkZ2V0OnMoRD0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmdldFdpZGdldChEKSwiZ2V0V2lkZ2V0IiksY2xlYXJXaWRnZXRzOnMoKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5jbGVhcldpZGdldHMoKSwiY2xlYXJXaWRnZXRzIiksYWRkQWN0aW9uOnMoRD0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmFkZEFjdGlvbihEKSwiYWRkQWN0aW9uIikscmVtb3ZlQWN0aW9uOnMoRD0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnJlbW92ZUFjdGlvbihEKSwicmVtb3ZlQWN0aW9uIiksY2xlYXJBY3Rpb25zOnMoKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5jbGVhckFjdGlvbnMoKSwiY2xlYXJBY3Rpb25zIil9OnthZGRXaWRnZXQ6cyhEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmFkZFdpZGdldChEKSl9LCJhZGRXaWRnZXQiKSx1cGRhdGVXaWRnZXQ6cygoRCxMKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py51cGRhdGVXaWRnZXQoRCxMKSl9LCJ1cGRhdGVXaWRnZXQiKSxyZW1vdmVXaWRnZXQ6cyhEPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnJlbW92ZVdpZGdldChEKSl9LCJyZW1vdmVXaWRnZXQiKSxnZXRXaWRnZXQ6cyhEPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmdldFdpZGdldChEKSwiZ2V0V2lkZ2V0IiksY2xlYXJXaWRnZXRzOnMoKCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uY2xlYXJXaWRnZXRzKCkpfSwiY2xlYXJXaWRnZXRzIiksYWRkQWN0aW9uOnMoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5hZGRBY3Rpb24oRCkpfSwiYWRkQWN0aW9uIikscmVtb3ZlQWN0aW9uOnMoRD0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVBY3Rpb24oRCkpfSwicmVtb3ZlQWN0aW9uIiksY2xlYXJBY3Rpb25zOnMoKCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uY2xlYXJBY3Rpb25zKCkpfSwiY2xlYXJBY3Rpb25zIil9fXNldEJvdHRvbUJhclZpc2libGUoRCl7dGhpcy5ib3R0b21iYXJWaXNpYmxlPUQsRD90aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIpOnRoaXMuc2V0QXR0cmlidXRlKCJib3R0b21iYXItaGlkZGVuIiwiIil9Z2V0Qm90dG9tQmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLmJvdHRvbWJhclZpc2libGV9YXN5bmMgbmF2aWdhdGVUb1ZpZXcoRCxMKXtsZXQgZWU9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KEQpO2lmKCFlZSlyZXR1cm4gY29uc29sZS53YXJuKGBDYW5ub3QgbmF2aWdhdGUgdG8gdW5rbm93biB2aWV3OiAke0R9YCksITE7bGV0IERlPWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmNhbkxlYXZlQ3VycmVudFZpZXcoKTtpZihEZSE9PSEwKWlmKHR5cGVvZiBEZT09InN0cmluZyIpe2lmKCF3aW5kb3cuY29uZmlybShEZSkpcmV0dXJuITF9ZWxzZSByZXR1cm4hMTt0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImxvYWRpbmciLHZpZXdJZDpEfSk7dHJ5e2F3YWl0IHRoaXMubG9hZFZpZXcoZWUsTCk7bGV0IEllPWVlLnJvdXRlfHxEO2lmKEwpZm9yKGxldFt0dCxhdF1vZiBPYmplY3QuZW50cmllcyhMKSlJZT1JZS5yZXBsYWNlKGA6JHt0dH1gLGF0KTtsZXQgR2U9YCMke0llfWA7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoIT09R2UmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7dmlld0lkOkR9LCIiLEdlKSwhMH1jYXRjaChJZSl7cmV0dXJuIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZEVycm9yIix2aWV3SWQ6RCxlcnJvcjpJZX0pLCExfX1nZXRDdXJyZW50Vmlldygpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3fWdldFZpZXdSZWdpc3RyeSgpe3JldHVybiB0aGlzLnZpZXdSZWdpc3RyeX1jb25maWd1cmUoRCl7RC52aWV3cyYmKHRoaXMudmlld1JlZ2lzdHJ5LmNsZWFyKCksdGhpcy52aWV3UmVnaXN0cnkucmVnaXN0ZXJBbGwoRC52aWV3cykpLEQuYnJhbmRpbmcmJih0aGlzLm1haW5tZW51TG9nb0ljb249RC5icmFuZGluZy5sb2dvSWNvbnx8IiIsdGhpcy5tYWlubWVudUxvZ29UZXh0PUQuYnJhbmRpbmcubG9nb1RleHR8fCIiKSxELmFwcEJhciYmKHRoaXMuYXBwYmFyTWVudUl0ZW1zPUQuYXBwQmFyLm1lbnVJdGVtc3x8W10sdGhpcy5hcHBiYXJCcmVhZGNydW1icz1ELmFwcEJhci5icmVhZGNydW1ic3x8IiIsdGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPUQuYXBwQmFyLmJyZWFkY3J1bWJTZXBhcmF0b3J8fCIgPiAiLHRoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUQuYXBwQmFyLnNob3dXaW5kb3dDb250cm9scz8/ITAsdGhpcy5hcHBiYXJTaG93U2VhcmNoPUQuYXBwQmFyLnNob3dTZWFyY2g/PyExLHRoaXMuYXBwYmFyVXNlcj1ELmFwcEJhci51c2VyLHRoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1ELmFwcEJhci5wcm9maWxlTWVudUl0ZW1zfHxbXSksRC5tYWluTWVudSYmKEQubWFpbk1lbnUuc2VjdGlvbnM/dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLmJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoRCk6RC5tYWluTWVudS5ncm91cHMmJih0aGlzLm1haW5tZW51R3JvdXBzPUQubWFpbk1lbnUuZ3JvdXBzKSxELm1haW5NZW51LmxvZ29JY29uJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUQubWFpbk1lbnUubG9nb0ljb24pLEQubWFpbk1lbnUubG9nb1RleHQmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9RC5tYWluTWVudS5sb2dvVGV4dCksRC5tYWluTWVudS5ib3R0b21UYWJzP3RoaXMubWFpbm1lbnVCb3R0b21UYWJzPUQubWFpbk1lbnUuYm90dG9tVGFiczpELm1haW5NZW51LmJvdHRvbUl0ZW1zJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoRC5tYWluTWVudS5ib3R0b21JdGVtcykpKSxELmJvdHRvbUJhciYmKHRoaXMuc2V0Qm90dG9tQmFyVmlzaWJsZShELmJvdHRvbUJhci52aXNpYmxlPz8hMCksRC5ib3R0b21CYXIud2lkZ2V0cyYmRC5ib3R0b21CYXIud2lkZ2V0cy5mb3JFYWNoKEw9Pnt0aGlzLmJvdHRvbUJhci5hZGRXaWRnZXQoTCl9KSxELmJvdHRvbUJhci5hY3Rpb25zJiZELmJvdHRvbUJhci5hY3Rpb25zLmZvckVhY2goTD0+e3RoaXMuYm90dG9tQmFyLmFkZEFjdGlvbihMKX0pKSx0aGlzLnNldHVwUm91dGVySW50ZWdyYXRpb24oRCksRC5vblZpZXdDaGFuZ2UmJnRoaXMudmlld0NoYW5nZWQkLnN1YnNjcmliZShMPT57RC5vblZpZXdDaGFuZ2UoTC52aWV3SWQsTC52aWV3KX0pLEQub25TZWFyY2gmJih0aGlzLnNlYXJjaENhbGxiYWNrPUQub25TZWFyY2gpLEQuZGVmYXVsdFZpZXcmJnRoaXMubmF2aWdhdGVUb1ZpZXcoRC5kZWZhdWx0Vmlldyl9c2V0dXBSb3V0ZXJJbnRlZ3JhdGlvbihEKXtsZXQgTD1zKCgpPT57bGV0IERlPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKCFEZSlyZXR1cm47bGV0IEllPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKERlKTtJZSYmdGhpcy5uYXZpZ2F0ZVRvVmlldyhJZS52aWV3LmlkLEllLnBhcmFtcyl9LCJoYW5kbGVIYXNoQ2hhbmdlIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLEwpLHRoaXMucm91dGVyQ2xlYW51cD0oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixMKX07bGV0IGVlPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKGVlKXtsZXQgRGU9dGhpcy52aWV3UmVnaXN0cnkuZmluZEJ5Um91dGUoZWUpO0RlJiZzZXRUaW1lb3V0KCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KERlLnZpZXcuaWQsRGUucGFyYW1zKSwwKX19YnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhEKXtyZXR1cm4gRC5tYWluTWVudT8uc2VjdGlvbnM/RC5tYWluTWVudS5zZWN0aW9ucy5tYXAoTD0+KHtuYW1lOkwubmFtZXx8IiIsaXRlbXM6TC52aWV3cy5tYXAoZWU9PntsZXQgRGU9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KGVlKTtyZXR1cm4gRGU/e2tleTpEZS5pZCxpY29uTmFtZTpEZS5pY29uTmFtZSxhY3Rpb246cygoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhlZSksImFjdGlvbiIpLGJhZGdlOkRlLmJhZGdlfTooY29uc29sZS53YXJuKGBWaWV3ICIke2VlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbCl9KS5maWx0ZXIoQm9vbGVhbil9KSk6W119YnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKEQpe3JldHVybiBELm1hcChMPT57bGV0IGVlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChMKTtyZXR1cm4gZWU/e2tleTplZS5pZCxpY29uTmFtZTplZS5pY29uTmFtZSxhY3Rpb246cygoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhMKSwiYWN0aW9uIil9Oihjb25zb2xlLndhcm4oYFZpZXcgIiR7TH0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfWFzeW5jIGxvYWRWaWV3KEQsTCl7bGV0IGVlPXRoaXMuY3VycmVudFZpZXc7dGhpcy5jdXJyZW50Vmlldz1EO2xldCBEZT10aGlzLm1haW5jb250ZW50Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKXx8dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKTtpZihEZSl7bGV0IEdlPWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmFjdGl2YXRlVmlldyhELmlkLERlLEwpO0dlJiZ0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImFjdGl2YXRlZCIsdmlld0lkOkQuaWQsZWxlbWVudDpHZSxwYXJhbXM6TH0pfUQuc2Vjb25kYXJ5TWVudSYmKHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1ELnNlY29uZGFyeU1lbnUsdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1ELm5hbWUpLEQuY29udGVudFRhYnMmJih0aGlzLm1haW5jb250ZW50VGFicz1ELmNvbnRlbnRUYWJzKSx0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKEQuaWQpO2xldCBJZT17dmlld0lkOkQuaWQsdmlldzpELHByZXZpb3VzVmlldzplZSxwYXJhbXM6TH07dGhpcy52aWV3Q2hhbmdlZCQubmV4dChJZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1jaGFuZ2UiLHtkZXRhaWw6SWUsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1tZW51LXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItYnJlYWRjcnVtYi1uYXZpZ2F0ZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRCl7dGhpcy5zZWFyY2hDYWxsYmFjayYmdGhpcy5zZWFyY2hDYWxsYmFjayhELmRldGFpbC5xdWVyeSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLXF1ZXJ5Iix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItcHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU1haW5tZW51VGFiU2VsZWN0KEQpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1ELmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFpbm1lbnUtdGFiLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEQpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1ELmRldGFpbC5pdGVtLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtaXRlbS1zZWxlY3QiLHtkZXRhaWw6RC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKEQpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9RC5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShEKXt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9RC5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOkQuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGVudFRhYlNlbGVjdChEKXt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9RC5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtdGFiLXNlbGVjdCIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJDbG9zZShEKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1jbG9zZSIse2RldGFpbDpELmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXN0YXRpY3tvdChyLHQpfX07cmV0dXJuIEM3PXJ9KSgpfSk7dmFyIEZsYT1mKCgpPT57T2xhKCk7aVFlKCl9KTt2YXIgQmxhPWYoKCk9PntjUWUoKX0pO3ZhciBIbGE9ZigoKT0+e29RZSgpfSk7dmFyIHFsYT1mKCgpPT57blFlKCl9KTt2YXIgVmxhPWYoKCk9Pnt3WWUoKX0pO3ZhciBqbGE9ZigoKT0+e2xRZSgpfSk7dmFyIHFzZSxjNSxVbGEsV2xhPWYoKCk9PntXcygpO0dpKCk7bXMoKTtsZSgpO00xKCk7dmEoKTtRZSgpO3FzZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sYzU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFVsYT0oKCk9PntsZXQgYT1baWUoImRlZXMtbW9iaWxlbmF2aWdhdGlvbiIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzTW9iaWxlbmF2aWdhdGlvbiIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6QXJyYXl9KV0sdT1bSygpXSxxc2UodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJoZWFkaW5nImluIGcsImhhcyIpLGdldDpzKGc9PmcuaGVhZGluZywiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmhlYWRpbmc9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLHFzZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4ibWVudUl0ZW1zImluIGcsImhhcyIpLGdldDpzKGc9PmcubWVudUl0ZW1zLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cubWVudUl0ZW1zPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sYyxwKSxxc2UodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVOYXZaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+Im1vYmlsZU5hdlpJbmRleCJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLm1vYmlsZU5hdlpJbmRleCwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLm1vYmlsZU5hdlpJbmRleD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdikscXNlKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTtzdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57eC5jcmVhdGVBbmRTaG93KFt7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dC1kYXNoYm9hcmQiLGFjdGlvbjpzKGFzeW5jIGI9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gZGFzaGJvYXJkIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246cyhhc3luYyBiPT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHByb2ZpbGUiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOnMoYXN5bmMgYj0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBzZXR0aW5ncyIpLG51bGwpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHAtY2lyY2xlIixhY3Rpb246cyhhc3luYyBiPT4oY29uc29sZS5sb2coIlNob3cgaGVscCIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOmxvZy1vdXQiLGFjdGlvbjpzKGFzeW5jIGI9Pihjb25zb2xlLmxvZygiU2lnbiBvdXQiKSxudWxsKSwiYWN0aW9uIil9XSl9fT5PcGVuIE1vYmlsZSBOYXZpZ2F0aW9uPC9kZWVzLWJ1dHRvbj4KICBgLCJkZW1vIik7c3RhdGljIHNpbmdsZXRvblJlZjtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhiKXtyZXR1cm4gdGhpcy5zaW5nbGV0b25SZWZ8fCh0aGlzLnNpbmdsZXRvblJlZj1uZXcgeCxkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLnNpbmdsZXRvblJlZiksYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYuaW5pdCgpKSx0aGlzLnNpbmdsZXRvblJlZi5tZW51SXRlbXM9Yixhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5yZWFkeURlZmVycmVkLnByb21pc2UsdGhpcy5zaW5nbGV0b25SZWYuc2hvdygpLHRoaXMuc2luZ2xldG9uUmVmfSNlPWM1KHRoaXMsbiwiTWVudSIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoYil7dGhpcy4jZT1ifSN0PShjNSh0aGlzLGwpLGM1KHRoaXMsYyxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKGIpe3RoaXMuI3Q9Yn0jYT0oYzUodGhpcyxwKSxjNSh0aGlzLG0sMWUzKSk7Z2V0IG1vYmlsZU5hdlpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBtb2JpbGVOYXZaSW5kZXgoYil7dGhpcy4jYT1ifXJlYWR5RGVmZXJyZWQ9KGM1KHRoaXMsdiksQXQucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKSk7Y29uc3RydWN0b3IoKXtzdXBlcigpfWFzeW5jIGluaXQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgIH0KCiAgICAgIC5tYWluIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5tYWluLnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luOiA4cHggMTZweDsKICAgICAgfQoKICAgICAgLyogTW9iaWxlIHJlc3BvbnNpdmVuZXNzICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkgewogICAgICAgIC5tYWluIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7CiAgICAgICAgICB3aWR0aDogODV2dzsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIEFuaW1hdGlvbiBmb3IgbWVudSBpdGVtcyAqLwogICAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4uc2hvdyAubWVudUl0ZW0gewogICAgICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWl0ZW0taW5kZXgsIDApICogMC4wNXMpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW4gewogICAgICAgICAgLS16LWluZGV4OiAke3RoaXMubW9iaWxlTmF2WkluZGV4fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8aDIgY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoKGIsZyk9PiJkaXZpZGVyImluIGImJmIuZGl2aWRlcj93YDxkaXYgY2xhc3M9Im1lbnVJdGVtLWRpdmlkZXIiPjwvZGl2PmA6d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibWVudUl0ZW0iCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1pdGVtLWluZGV4OiAke2d9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5oaWRlKCksYi5hY3Rpb24odGhpcyl9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2IuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke2IuaWNvbk5hbWV9IHNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudUl0ZW0tdGV4dCI+JHtiLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyO2FzeW5jIHNob3coKXtsZXQgYj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxnPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbiIpO3RoaXMud2luZG93TGF5ZXI/KGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMud2luZG93TGF5ZXIpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuc2hvdygpKToodGhpcy53aW5kb3dMYXllcj1hd2FpdCBHcy5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmhpZGUoKX0pKSx0aGlzLm1vYmlsZU5hdlpJbmRleD1YdC5nZXROZXh0WkluZGV4KCksWHQucmVnaXN0ZXIodGhpcyx0aGlzLm1vYmlsZU5hdlpJbmRleCksYXdhaXQgYi5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwKSxnLmNsYXNzTGlzdC5hZGQoInNob3ciKX1hc3luYyBoaWRlKCl7bGV0IGI9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIikuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLFh0LnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLFh0LnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje2M1KHIsdCl9fTtyZXR1cm4geD1yfSkoKX0pO3ZhciBHbGE9ZigoKT0+e1dsYSgpfSk7dmFyIFlsYT1mKCgpPT57RHJhKCk7TVllKCk7WnJhKCk7RmxhKCk7QmxhKCk7SGxhKCk7cWxhKCk7VmxhKCk7amxhKCk7R2xhKCl9KTt2YXIgS2xhPWYoKCk9PntrZigpfSk7dmFyIFpsYSxkUWUsWGxhLFFsYT1mKCgpPT57bGUoKTtabGE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGRRZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sWGxhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1idXR0b24tZXhpdCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzQnV0dG9uRXhpdCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6TnVtYmVyfSldLFpsYSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+InNpemUiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5zaXplLCJnZXQiKSxzZXQ6cygocCx1KT0+e3Auc2l6ZT11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksWmxhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkZWVzLWJ1dHRvbi1leGl0PjwvZGVlcy1idXR0b24tZXhpdD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1kUWUodGhpcyxuLDI0KTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGMpe3RoaXMuI2U9Y31zdHlsZXM9KGRRZSh0aGlzLGwpLFtoLmRlZmF1bHRTdHlsZXMsWGAKCiAgICBgXSk7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RMaW5lIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmRMaW5lIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tkUWUocix0KX19O3JldHVybiBkPXJ9KSgpfSk7dmFyIEpsYT1mKCgpPT57UWxhKCl9KTt2YXIgZWNhLHRjYT1mKCgpPT57bGUoKTtlY2E9cygoKT0+d2AKICAgIDxzdHlsZT4KICAgICAgJHtYYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGhvdXQgbGFiZWxzIGZvciBzaW1wbGUgZ3JvdXBpbmc8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAxPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxhYmVsZWQgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCBkZXNjcmlwdGl2ZSBsYWJlbHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJWaWV3IE1vZGU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+R3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGlzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2FyZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPk11bHRpcGxlIGJ1dHRvbiBncm91cHMgdXNlZCB0b2dldGhlcjwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcms8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJUaW1lIFJhbmdlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4xSDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+MjRIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjdEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjMwRDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RXhwb3J0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlZlcnRpY2FsIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggdmVydGljYWwgbGF5b3V0PC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMjRweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiIGxhYmVsPSJOYXZpZ2F0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXNoYm9hcmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkFuYWx5dGljczwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXBvcnRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkVkaXQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EZWxldGUgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NaXhlZCBCdXR0b24gVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EaWZmZXJlbnQgYnV0dG9uIHR5cGVzIHdpdGhpbiBncm91cHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJTdGF0dXM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzdWNjZXNzIj5BY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlBlbmRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRhbmdlciI+SW5hY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciB1UWUsV1csYWNhLHJjYT1mKCgpPT57bGUoKTtlYSgpO3RjYSgpO1FlKCk7dVFlPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxXVz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sYWNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1idXR0b24tZ3JvdXAiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0J1dHRvbkdyb3VwIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxkPVskKCldLHVRZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJsYWJlbCJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LmxhYmVsLCJnZXQiKSxzZXQ6cygodix4KT0+e3YubGFiZWw9eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLHVRZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iZGlyZWN0aW9uImluIHYsImhhcyIpLGdldDpzKHY9PnYuZGlyZWN0aW9uLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuZGlyZWN0aW9uPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSx1UWUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1lY2E7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1XVyh0aGlzLG4sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChtKXt0aGlzLiNlPW19I3Q9KFdXKHRoaXMsbCksV1codGhpcyxjLCJob3Jpem9udGFsIikpO2dldCBkaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGlyZWN0aW9uKG0pe3RoaXMuI3Q9bX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksV1codGhpcyxwKSx0ci5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwLnZlcnRpY2FsIC5sYWJlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKCopIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImxhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1dXKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBzY2E9ZigoKT0+e3JjYSgpfSk7dmFyIGljYT1mKCgpPT57S2xhKCk7SmxhKCk7c2NhKCl9KTt2YXIgb2NhLG5jYT1mKCgpPT57bGUoKTtOYSgpO3BRZSgpO29jYT1zKCgpPT57bGV0IGE9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseToyNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6MzB9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjI4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTozNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTozMn0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6Mzh9XX0se25hbWU6Ik1lbW9yeSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseTo0NX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6NDh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjQ2fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTo1Mn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTo1MH0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6NTV9XX1dfX0sZT17c3lzdGVtOnModD0+YCR7dH0lYCwic3lzdGVtIil9O3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCByPXQucXVlcnlTZWxlY3RvcigiI21haW4tY2hhcnQiKSxpPXQucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3Rpb25zLWNoYXJ0IiksbyxuLGw9InN5c3RlbSIsZD17c3lzdGVtOnMoQj0+YCR7Qn0lYCwic3lzdGVtIiksbmV0d29yazpzKEI9PmAke0J9IE1icHNgLCJuZXR3b3JrIiksc2FsZXM6cyhCPT5gJCR7Qi50b0xvY2FsZVN0cmluZygpfWAsInNhbGVzIil9LGM9MTIwKjFlMyxwPTFlMyx1PTVlMyxtPXtjcHU6MzAsbWVtb3J5OjUwLGRvd25sb2FkOjE1MCx1cGxvYWQ6MzAsY29ubmVjdGlvbnM6MTUwfSx2PXMoKEIsTSxTPXUpPT57bGV0IEU9W10sQT1EYXRlLm5vdygpLEY9TWF0aC5mbG9vcihjL1MpO2ZvcihsZXQgVz1GO1c+PTA7Vy0tKXtsZXQgaj1uZXcgRGF0ZShBLVcqUykudG9JU09TdHJpbmcoKSxHPUIrKE1hdGgucmFuZG9tKCktLjUpKk07RS5wdXNoKHt4OmoseTpNYXRoLnJvdW5kKEcpfSl9cmV0dXJuIEV9LCJnZW5lcmF0ZUluaXRpYWxEYXRhIikseD17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOnYobS5jcHUsMTApfSx7bmFtZToiTWVtb3J5IixkYXRhOnYobS5tZW1vcnksOCl9XX0sbmV0d29yazp7bGFiZWw6Ik5ldHdvcmsgVHJhZmZpYyAoTWJwcykiLHNlcmllczpbe25hbWU6IkRvd25sb2FkIixkYXRhOnYobS5kb3dubG9hZCwzMCl9LHtuYW1lOiJVcGxvYWQiLGRhdGE6dihtLnVwbG9hZCwxMCl9XX0sc2FsZXM6e2xhYmVsOiJTYWxlcyBBbmFseXRpY3MiLHNlcmllczpbe25hbWU6IlJldmVudWUiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjQ1ZTN9LHt4OiIyMDI1LTAxLTAyIix5OjUyZTN9LHt4OiIyMDI1LTAxLTAzIix5OjQ4ZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjYxZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjU4ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjY1ZTN9XX0se25hbWU6IlByb2ZpdCIsZGF0YTpbe3g6IjIwMjUtMDEtMDEiLHk6MTJlM30se3g6IjIwMjUtMDEtMDIiLHk6MTRlM30se3g6IjIwMjUtMDEtMDMiLHk6MTFlM30se3g6IjIwMjUtMDEtMDQiLHk6MThlM30se3g6IjIwMjUtMDEtMDUiLHk6MTZlM30se3g6IjIwMjUtMDEtMDYiLHk6MmU0fV19XX19LGI9cygoQixNLFMsRT01KT0+e2xldCBBPShNYXRoLnJhbmRvbSgpLS41KSpFKjIsRj1CK0Esaj0oKE0rUykvMi1GKSouMTtyZXR1cm4gRis9aixGPU1hdGgubWF4KE0sTWF0aC5taW4oUyxGKSksTWF0aC5yb3VuZChGKX0sImdldE5leHRWYWx1ZSIpLGc9RGF0ZS5ub3coKSx5PURhdGUubm93KCksaz1zKCgpPT57aWYoIXIpcmV0dXJuO2xldCBCPURhdGUubm93KCk7aWYoQi1nPj11KXtnPUI7bGV0IFM9bmV3IERhdGUoQikudG9JU09TdHJpbmcoKTtpZihsPT09InN5c3RlbSIpe20uY3B1PWIobS5jcHUsMjAsNTAsMyksbS5tZW1vcnk9YihtLm1lbW9yeSw0MCw3MCwyKTtsZXQgRT1yLmNoYXJ0U2VyaWVzLm1hcCgoQSxGKT0+KHtuYW1lOkEubmFtZSxkYXRhOlsuLi5BLmRhdGEsRj09PTA/e3g6Uyx5Om0uY3B1fTp7eDpTLHk6bS5tZW1vcnl9XX0pKTtyLnVwZGF0ZVNlcmllcyhFLCExKX1lbHNlIGlmKGw9PT0ibmV0d29yayIpe20uZG93bmxvYWQ9YihtLmRvd25sb2FkLDEwMCwyMDAsMTApLG0udXBsb2FkPWIobS51cGxvYWQsMjAsNTAsNSk7bGV0IEU9ci5jaGFydFNlcmllcy5tYXAoKEEsRik9Pih7bmFtZTpBLm5hbWUsZGF0YTpbLi4uQS5kYXRhLEY9PT0wP3t4OlMseTptLmRvd25sb2FkfTp7eDpTLHk6bS51cGxvYWR9XX0pKTtyLnVwZGF0ZVNlcmllcyhFLCExKX19fSwiYWRkUmVhbHRpbWVEYXRhIiksQz1zKCgpPT57aWYoIWkpcmV0dXJuO2xldCBCPURhdGUubm93KCksTT1uZXcgRGF0ZShCKS50b0lTT1N0cmluZygpLFM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIxKS0xMDttLmNvbm5lY3Rpb25zPU1hdGgubWF4KDUwLE1hdGgubWluKDMwMCxtLmNvbm5lY3Rpb25zK1MpKTtsZXQgRT1pLmNoYXJ0U2VyaWVzLEE9W3tuYW1lOkVbMF0/Lm5hbWV8fCJDb25uZWN0aW9ucyIsZGF0YTpbLi4uRVswXT8uZGF0YXx8W10se3g6TSx5Om0uY29ubmVjdGlvbnN9XX1dO2kudXBkYXRlU2VyaWVzKEEsITEpfSwidXBkYXRlQ29ubmVjdGlvbnMiKSxOPXMoQj0+e2w9QjtsZXQgTT14W0JdO3IubGFiZWw9TS5sYWJlbCxyLnNlcmllcz1NLnNlcmllcyxyLnlBeGlzRm9ybWF0dGVyPWRbQl0sQj09PSJzeXN0ZW0iPyhyLnlBeGlzU2NhbGluZz0icGVyY2VudGFnZSIsci55QXhpc01heD0xMDApOnIueUF4aXNTY2FsaW5nPSJkeW5hbWljIixnPURhdGUubm93KCktdX0sInN3aXRjaERhdGFzZXQiKSxfPXMoKCk9PnshbyYmKGw9PT0ic3lzdGVtInx8bD09PSJuZXR3b3JrIikmJihyLnJlYWx0aW1lTW9kZT0hMCxvPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+aygpLHUpKSxufHwoaS5yZWFsdGltZU1vZGU9ITAsbj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PkMoKSxwKSl9LCJzdGFydFJlYWx0aW1lIiksej1zKCgpPT57byYmKHdpbmRvdy5jbGVhckludGVydmFsKG8pLG89bnVsbCxyLnJlYWx0aW1lTW9kZT0hMSksbiYmKHdpbmRvdy5jbGVhckludGVydmFsKG4pLG49bnVsbCxpLnJlYWx0aW1lTW9kZT0hMSl9LCJzdG9wUmVhbHRpbWUiKSxPPXMoKCk9PntsPT09InN5c3RlbSI/KG0uY3B1PU1hdGgucmFuZG9tKCk+LjU/ODU6MjUsbS5tZW1vcnk9TWF0aC5yYW5kb20oKT4uNT84MDo0NSk6bD09PSJuZXR3b3JrIiYmKG0uZG93bmxvYWQ9TWF0aC5yYW5kb20oKT4uNT8yNTA6MTAwLG0udXBsb2FkPU1hdGgucmFuZG9tKCk+LjU/ODA6MjApLG0uY29ubmVjdGlvbnM9TWF0aC5yYW5kb20oKT4uNT8yODA6ODAsZz0wLHk9MH0sInJhbmRvbWl6ZURhdGEiKSxUPXMoKCk9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChNPT57bGV0IFM9TS50ZXh0Py50cmltKCk7Uz09PSJTeXN0ZW0gVXNhZ2UiP00udHlwZT1sPT09InN5c3RlbSI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpTPT09Ik5ldHdvcmsgVHJhZmZpYyI/TS50eXBlPWw9PT0ibmV0d29yayI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpTPT09IlNhbGVzIERhdGEiJiYoTS50eXBlPWw9PT0ic2FsZXMiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCIpfSl9LCJ1cGRhdGVCdXR0b25TdGF0ZXMiKTtpZih0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChCPT57bGV0IE09Qi50ZXh0Py50cmltKCk7TT09PSJTeXN0ZW0gVXNhZ2UiP0IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57Tigic3lzdGVtIiksVCgpfSk6TT09PSJOZXR3b3JrIFRyYWZmaWMiP0IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57TigibmV0d29yayIpLFQoKX0pOk09PT0iU2FsZXMgRGF0YSI/Qi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntOKCJzYWxlcyIpLFQoKX0pOk09PT0iU3RhcnQgTGl2ZSI/Qi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pl8oKSk6TT09PSJTdG9wIExpdmUiP0IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT56KCkpOk09PT0iU3Bpa2UgVmFsdWVzIiYmQi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oKSl9KSxyLnJvbGxpbmdXaW5kb3c9YyxyLnJlYWx0aW1lTW9kZT0hMSxyLnlBeGlzU2NhbGluZz0icGVyY2VudGFnZSIsci55QXhpc01heD0xMDAsci5hdXRvU2Nyb2xsSW50ZXJ2YWw9MWUzLHNldFRpbWVvdXQoKCk9PntyLnVwZGF0ZVRpbWVXaW5kb3coKX0sMTAwKSxpKXtsZXQgQj12KG0uY29ubmVjdGlvbnMsMzAscCk7aS5zZXJpZXM9W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpCfV0saS5yb2xsaW5nV2luZG93PWMsaS5yZWFsdGltZU1vZGU9ITEsaS55QXhpc1NjYWxpbmc9ImZpeGVkIixpLnlBeGlzTWF4PTM1MCxpLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2kudXBkYXRlVGltZVdpbmRvdygpfSwxMDApfX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtYYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGF0YXNldDoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW0gVXNhZ2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcmsgVHJhZmZpYzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXMgRGF0YTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlJlYWwtdGltZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IExpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TcGlrZSBWYWx1ZXM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0ibWFpbi1jaGFydCIKICAgICAgICAgIC5sYWJlbD0ke2Euc3lzdGVtLmxhYmVsfQogICAgICAgICAgLnNlcmllcz0ke2Euc3lzdGVtLnNlcmllc30KICAgICAgICAgIC55QXhpc0Zvcm1hdHRlcj0ke2Uuc3lzdGVtfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiIHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+CiAgICAgICAgPGRlZXMtY2hhcnQtYXJlYQogICAgICAgICAgaWQ9ImNvbm5lY3Rpb25zLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSBDb25uZWN0aW9ucyJ9CiAgICAgICAgICAuc2VyaWVzPSR7W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpbXX1dfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7dD0+YCR7dH1gfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBSZWFsLXRpbWUgbW9uaXRvcmluZyB3aXRoIDItbWludXRlIHJvbGxpbmcgd2luZG93IOKAoiAKICAgICAgICBVcGRhdGVzIGV2ZXJ5IHNlY29uZCB3aXRoIHNtb290aCB2YWx1ZSB0cmFuc2l0aW9ucyDigKIgCiAgICAgICAgQ2xpY2sgJ1NwaWtlIFZhbHVlcycgdG8gc2ltdWxhdGUgbG9hZCBzcGlrZXMKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBsY2EsY2NhPWYoKCk9PntsZSgpO1FlKCk7bGNhPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmNoYXJ0SGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgfQogICAgICAuY2hhcnRMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KICAgICAgLmV4cGFuZEJ0biB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIC5leHBhbmRCdG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMCAwIDRweCAwOwogICAgICB9CiAgICAgIC5zdGF0c0JhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzICsgLnN0YXRzU2VyaWVzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAuc3RhdHNDb2xvciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgLnN0YXRzTmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICB9CiAgICAgIC5zdGF0c0l0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAuc3RhdHNJdGVtIHN0cm9uZyB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAubHctdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KICAgIGBdfSk7dmFyIGRjYSx1Y2E9ZigoKT0+e2xlKCk7dmEoKTtkY2E9cyhhPT53YAogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7YS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImV4cGFuZEJ0biIgQGNsaWNrPSR7KCk9PmEudG9nZ2xlRnVsbFBhZ2UoKX0gdGl0bGU9IiR7YS5pc0Z1bGxQYWdlPyJFeGl0IGZ1bGwgcGFnZSI6IkZ1bGwgcGFnZSJ9Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7YS5pc0Z1bGxQYWdlPyJsdWNpZGU6TWluaW1pemUyIjoibHVjaWRlOk1heGltaXplMiJ9IC5pY29uU2l6ZT0kezE0fT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICR7YS5zZXJpZXNTdGF0cy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InN0YXRzQmFyIj4KICAgICAgICAgICAgICAke2Euc2VyaWVzU3RhdHMubWFwKGU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0c1NlcmllcyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0NvbG9yIiBzdHlsZT0iYmFja2dyb3VuZDoke2UuY29sb3J9Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c05hbWUiPiR7ZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+bGF0ZXN0IDxzdHJvbmc+JHthLnlBeGlzRm9ybWF0dGVyKGUubGF0ZXN0KX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0l0ZW0iPm1pbiA8c3Ryb25nPiR7YS55QXhpc0Zvcm1hdHRlcihlLm1pbil9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5tYXggPHN0cm9uZz4ke2EueUF4aXNGb3JtYXR0ZXIoZS5tYXgpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+YXZnIDxzdHJvbmc+JHthLnlBeGlzRm9ybWF0dGVyKGUuYXZnKX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICBgLCJyZW5kZXJDaGFydEFyZWEiKX0pO3ZhciBqbix6cixwY2EscFFlPWYoKCk9PntsZSgpO2VhKCk7bmNhKCk7Y2NhKCk7dWNhKCk7U2MoKTtRcigpO2puPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSx6cj1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0scGNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1jaGFydC1hcmVhIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdO3ZhciBtZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0NoYXJ0QXJlYSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBJPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0sZD1bSygpXSx1PVtLKCldLHg9WyQoKV0seT1bJCh7dHlwZTpBcnJheX0pXSxOPVskKHthdHRyaWJ1dGU6ITF9KV0sTz1bJCh7dHlwZTpOdW1iZXJ9KV0sQj1bJCh7dHlwZTpCb29sZWFufSldLEU9WyQoe3R5cGU6U3RyaW5nfSldLFc9WyQoe3R5cGU6TnVtYmVyfSldLGhlPVskKHt0eXBlOk51bWJlcn0pXSxqbih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYXJ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJjaGFydCJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmNoYXJ0LCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmNoYXJ0PWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LG4sbCksam4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXNTdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4ic2VyaWVzU3RhdHMiaW4gcSwiaGFzIiksZ2V0OnMocT0+cS5zZXJpZXNTdGF0cywiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5zZXJpZXNTdGF0cz1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxjLHApLGpuKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4iaXNGdWxsUGFnZSJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmlzRnVsbFBhZ2UsImdldCIpLHNldDpzKChxLGNlKT0+e3EuaXNGdWxsUGFnZT1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxtLHYpLGpuKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+ImxhYmVsImluIHEsImhhcyIpLGdldDpzKHE9PnEubGFiZWwsImdldCIpLHNldDpzKChxLGNlKT0+e3EubGFiZWw9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sYixnKSxqbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4ic2VyaWVzImluIHEsImhhcyIpLGdldDpzKHE9PnEuc2VyaWVzLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLnNlcmllcz1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxrLEMpLGpuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+InlBeGlzRm9ybWF0dGVyImluIHEsImhhcyIpLGdldDpzKHE9PnEueUF4aXNGb3JtYXR0ZXIsImdldCIpLHNldDpzKChxLGNlKT0+e3EueUF4aXNGb3JtYXR0ZXI9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sXyx6KSxqbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvbGxpbmdXaW5kb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+InJvbGxpbmdXaW5kb3ciaW4gcSwiaGFzIiksZ2V0OnMocT0+cS5yb2xsaW5nV2luZG93LCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLnJvbGxpbmdXaW5kb3c9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sVCxQKSxqbih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlYWx0aW1lTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4icmVhbHRpbWVNb2RlImluIHEsImhhcyIpLGdldDpzKHE9PnEucmVhbHRpbWVNb2RlLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLnJlYWx0aW1lTW9kZT1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxNLFMpLGpuKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNTY2FsaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJ5QXhpc1NjYWxpbmciaW4gcSwiaGFzIiksZ2V0OnMocT0+cS55QXhpc1NjYWxpbmcsImdldCIpLHNldDpzKChxLGNlKT0+e3EueUF4aXNTY2FsaW5nPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LEEsRiksam4odGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc01heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4ieUF4aXNNYXgiaW4gcSwiaGFzIiksZ2V0OnMocT0+cS55QXhpc01heCwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS55QXhpc01heD1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxqLEcpLGpuKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGxJbnRlcnZhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4iYXV0b1Njcm9sbEludGVydmFsImluIHEsImhhcyIpLGdldDpzKHE9PnEuYXV0b1Njcm9sbEludGVydmFsLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmF1dG9TY3JvbGxJbnRlcnZhbD1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxSLFUpLGpuKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkl9LG51bGwsdCksbWU9cj1lLnZhbHVlLEkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6SX0pfXN0YXRpYyBkZW1vPW9jYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9enIodGhpcyxuLG51bGwpO2dldCBjaGFydCgpe3JldHVybiB0aGlzLiNlfXNldCBjaGFydChJKXt0aGlzLiNlPUl9I3Q9KHpyKHRoaXMsbCksenIodGhpcyxjLFtdKSk7Z2V0IHNlcmllc1N0YXRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllc1N0YXRzKEkpe3RoaXMuI3Q9SX0jYT0oenIodGhpcyxwKSx6cih0aGlzLG0sITEpKTtnZXQgaXNGdWxsUGFnZSgpe3JldHVybiB0aGlzLiNhfXNldCBpc0Z1bGxQYWdlKEkpe3RoaXMuI2E9SX0jcj0oenIodGhpcyx2KSx6cih0aGlzLGIsIlVudGl0bGVkIENoYXJ0IikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNyfXNldCBsYWJlbChJKXt0aGlzLiNyPUl9I3M9KHpyKHRoaXMsZyksenIodGhpcyxrLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiNzfXNldCBzZXJpZXMoSSl7dGhpcy4jcz1JfWdldCBjaGFydFNlcmllcygpe3JldHVybiB0aGlzLmludGVybmFsQ2hhcnREYXRhLmxlbmd0aD4wP3RoaXMuaW50ZXJuYWxDaGFydERhdGE6dGhpcy5zZXJpZXN9I2k9KHpyKHRoaXMsQyksenIodGhpcyxfLEk9PmAke0l9IE1icHNgKSk7Z2V0IHlBeGlzRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHlBeGlzRm9ybWF0dGVyKEkpe3RoaXMuI2k9SX0jbz0oenIodGhpcyx6KSx6cih0aGlzLFQsMCkpO2dldCByb2xsaW5nV2luZG93KCl7cmV0dXJuIHRoaXMuI299c2V0IHJvbGxpbmdXaW5kb3coSSl7dGhpcy4jbz1JfSNuPSh6cih0aGlzLFApLHpyKHRoaXMsTSwhMSkpO2dldCByZWFsdGltZU1vZGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcmVhbHRpbWVNb2RlKEkpe3RoaXMuI249SX0jbD0oenIodGhpcyxTKSx6cih0aGlzLEEsImR5bmFtaWMiKSk7Z2V0IHlBeGlzU2NhbGluZygpe3JldHVybiB0aGlzLiNsfXNldCB5QXhpc1NjYWxpbmcoSSl7dGhpcy4jbD1JfSNjPSh6cih0aGlzLEYpLHpyKHRoaXMsaiwxMDApKTtnZXQgeUF4aXNNYXgoKXtyZXR1cm4gdGhpcy4jY31zZXQgeUF4aXNNYXgoSSl7dGhpcy4jYz1JfSNkPSh6cih0aGlzLEcpLHpyKHRoaXMsUiwxZTMpKTtnZXQgYXV0b1Njcm9sbEludGVydmFsKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGF1dG9TY3JvbGxJbnRlcnZhbChJKXt0aGlzLiNkPUl9aW50ZXJuYWxDaGFydERhdGE9KHpyKHRoaXMsVSksW10pO2F1dG9TY3JvbGxUaW1lcj1udWxsO2xjQnVuZGxlPW51bGw7c2VyaWVzQXBpcz1uZXcgTWFwO3ByaWNlTGluZXM9bmV3IE1hcDt0b29sdGlwRWw9bnVsbDtDSEFSVF9DT0xPUlM9e2Rhcms6WyJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDE3My40IDgwLjQlIDQwJSkiLCJoc2woMjgwLjMgODcuNCUgNjYuNyUpIiwiaHNsKDI0LjYgOTUlIDUzLjElKSJdLGxpZ2h0OlsiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMjgwLjMgNDcuNyUgNTAuMiUpIiwiaHNsKDIwLjUgOTAuMiUgNDguMiUpIl19O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0ci5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLmNoYXJ0KXRyeXt0aGlzLmNoYXJ0LnJlbW92ZSgpLHRoaXMuY2hhcnQ9bnVsbCx0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKX1jYXRjaChJKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIGNoYXJ0OiIsSSl9fSl9c3RhdGljIHN0eWxlcz1sY2E7cmVuZGVyKCl7cmV0dXJuIGRjYSh0aGlzKX1jb252ZXJ0RGF0YVRvTEMoSSl7cmV0dXJuIEkubWFwKHE9PntsZXQgY2U9dHlwZW9mIHEueD09Im51bWJlciI/cS54Om5ldyBEYXRlKHEueCkuZ2V0VGltZSgpO3JldHVybnt0aW1lOk1hdGguZmxvb3IoY2UvMWUzKSx2YWx1ZTpxLnl9fSkuc29ydCgocSxjZSk9PnEudGltZS1jZS50aW1lKX1oc2xUb1JnYmEoSSxxKXtsZXQgY2U9SS5tYXRjaCgvaHNsXCgoW14pXSspXCkvKTtpZighY2UpcmV0dXJuIEk7bGV0IHVlPWNlWzFdLnRyaW0oKS5zcGxpdCgvXHMrLyk7aWYodWUubGVuZ3RoPDMpcmV0dXJuIEk7bGV0IFk9cGFyc2VGbG9hdCh1ZVswXSkvMzYwLFE9cGFyc2VGbG9hdCh1ZVsxXSkvMTAwLEo9cGFyc2VGbG9hdCh1ZVsyXSkvMTAwLFosZ2UsYWU7aWYoUT09PTApWj1nZT1hZT1KO2Vsc2V7bGV0IHJlPXMoKEgsb2Usc2UpPT4oc2U8MCYmKHNlKz0xKSxzZT4xJiYoc2UtPTEpLHNlPC4xNjY2NjY2NjY2NjY2NjY2Nj9IKyhvZS1IKSo2KnNlOnNlPC41P29lOnNlPC42NjY2NjY2NjY2NjY2NjY2P0grKG9lLUgpKiguNjY2NjY2NjY2NjY2NjY2Ni1zZSkqNjpIKSwiaHVlMnJnYiIpLHllPUo8LjU/SiooMStRKTpKK1EtSipRLFY9MipKLXllO1o9cmUoVix5ZSxZKzEvMyksZ2U9cmUoVix5ZSxZKSxhZT1yZShWLHllLFktMS8zKX1yZXR1cm5gcmdiYSgke01hdGgucm91bmQoWioyNTUpfSwgJHtNYXRoLnJvdW5kKGdlKjI1NSl9LCAke01hdGgucm91bmQoYWUqMjU1KX0sICR7cX0pYH1nZXRTZXJpZXNDb2xvcnMoSSl7cmV0dXJuIEk/dGhpcy5DSEFSVF9DT0xPUlMuZGFyazp0aGlzLkNIQVJUX0NPTE9SUy5saWdodH1hcHBseVRoZW1lKCl7aWYoIXRoaXMuY2hhcnR8fCF0aGlzLmxjQnVuZGxlKXJldHVybjtsZXQgST0hdGhpcy5nb0JyaWdodCxxPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKEkpO3RoaXMuY2hhcnQuYXBwbHlPcHRpb25zKHtsYXlvdXQ6e2JhY2tncm91bmQ6e3R5cGU6dGhpcy5sY0J1bmRsZS5Db2xvclR5cGUuU29saWQsY29sb3I6InRyYW5zcGFyZW50In0sdGV4dENvbG9yOkk/ImhzbCgwIDAlIDYzLjklKSI6ImhzbCgwIDAlIDIwJSkiLGF0dHJpYnV0aW9uTG9nbzohMX0sZ3JpZDp7dmVydExpbmVzOntjb2xvcjpJPyJoc2woMCAwJSA4LjUlKSI6ImhzbCgwIDAlIDk1LjUlKSJ9LGhvcnpMaW5lczp7Y29sb3I6ST8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifX19KTtsZXQgY2U9MDtmb3IobGV0Wyx1ZV1vZiB0aGlzLnNlcmllc0FwaXMpe2xldCBZPXFbY2UlcS5sZW5ndGhdO3VlLmFwcGx5T3B0aW9ucyh7dG9wQ29sb3I6dGhpcy5oc2xUb1JnYmEoWSxJPy40Oi41KSxib3R0b21Db2xvcjp0aGlzLmhzbFRvUmdiYShZLDApLGxpbmVDb2xvcjpZfSksY2UrK319cmVjcmVhdGVTZXJpZXMoSSl7aWYoIXRoaXMuY2hhcnR8fCF0aGlzLmxjQnVuZGxlKXJldHVybjtsZXQgcT0hdGhpcy5nb0JyaWdodCxjZT10aGlzLmdldFNlcmllc0NvbG9ycyhxKTtmb3IobGV0Wyx1ZV1vZiB0aGlzLnNlcmllc0FwaXMpdGhpcy5jaGFydC5yZW1vdmVTZXJpZXModWUpO3RoaXMuc2VyaWVzQXBpcy5jbGVhcigpLHRoaXMucHJpY2VMaW5lcy5jbGVhcigpLEkuZm9yRWFjaCgodWUsWSk9PntsZXQgUT1jZVtZJWNlLmxlbmd0aF0sSj10aGlzLmNoYXJ0LmFkZFNlcmllcyh0aGlzLmxjQnVuZGxlLkFyZWFTZXJpZXMse3RvcENvbG9yOnRoaXMuaHNsVG9SZ2JhKFEscT8uNDouNSksYm90dG9tQ29sb3I6dGhpcy5oc2xUb1JnYmEoUSwwKSxsaW5lQ29sb3I6USxsaW5lV2lkdGg6MixsaW5lVHlwZTp0aGlzLmxjQnVuZGxlLkxpbmVUeXBlLkN1cnZlZCxsYXN0VmFsdWVWaXNpYmxlOiExLHByaWNlTGluZVZpc2libGU6ITEsY3Jvc3NoYWlyTWFya2VyVmlzaWJsZTohMCxjcm9zc2hhaXJNYXJrZXJSYWRpdXM6NH0pO0ouc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyh1ZS5kYXRhKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKHVlLm5hbWV8fGBzZXJpZXMtJHtZfWAsSix1ZS5kYXRhLFEpLHRoaXMueUF4aXNTY2FsaW5nIT09ImR5bmFtaWMiJiZKLmFwcGx5T3B0aW9ucyh7YXV0b3NjYWxlSW5mb1Byb3ZpZGVyOnMoKCk9Pih7cHJpY2VSYW5nZTp7bWluVmFsdWU6MCxtYXhWYWx1ZTp0aGlzLnlBeGlzTWF4fX0pLCJhdXRvc2NhbGVJbmZvUHJvdmlkZXIiKX0pLHRoaXMuc2VyaWVzQXBpcy5zZXQodWUubmFtZXx8YHNlcmllcy0ke1l9YCxKKX0pLHRoaXMuY29tcHV0ZVN0YXRzKEkpfWNvbXB1dGVTdGF0cyhJKXtsZXQgcT0hdGhpcy5nb0JyaWdodCxjZT10aGlzLmdldFNlcmllc0NvbG9ycyhxKTt0aGlzLnNlcmllc1N0YXRzPUkubWFwKCh1ZSxZKT0+e2xldCBRPXVlLmRhdGEubWFwKHJlPT5yZS55KTtpZihRLmxlbmd0aD09PTApcmV0dXJue25hbWU6dWUubmFtZXx8YHNlcmllcy0ke1l9YCxsYXRlc3Q6MCxtaW46MCxtYXg6MCxhdmc6MCxjb2xvcjpjZVtZJWNlLmxlbmd0aF19O2xldCBKPVFbUS5sZW5ndGgtMV0sWj1NYXRoLm1pbiguLi5RKSxnZT1NYXRoLm1heCguLi5RKSxhZT1NYXRoLnJvdW5kKFEucmVkdWNlKChyZSx5ZSk9PnJlK3llLDApL1EubGVuZ3RoKjEwMCkvMTAwO3JldHVybntuYW1lOnVlLm5hbWV8fGBzZXJpZXMtJHtZfWAsbGF0ZXN0OkosbWluOlosbWF4OmdlLGF2ZzphZSxjb2xvcjpjZVtZJWNlLmxlbmd0aF19fSl9dXBkYXRlUHJpY2VMaW5lcyhJLHEsY2UsdWUpe2xldCBZPXRoaXMucHJpY2VMaW5lcy5nZXQoSSk7aWYoWSlmb3IobGV0IGFlIG9mIFkpcS5yZW1vdmVQcmljZUxpbmUoYWUpO2lmKGNlLmxlbmd0aD09PTApe3RoaXMucHJpY2VMaW5lcy5zZXQoSSxbXSk7cmV0dXJufWxldCBRPWNlLm1hcChhZT0+YWUueSksSj1RLnJlZHVjZSgoYWUscmUpPT5hZStyZSwwKS9RLmxlbmd0aCxaPU1hdGgubWF4KC4uLlEpLGdlPVtdO2dlLnB1c2gocS5jcmVhdGVQcmljZUxpbmUoe3ByaWNlOk1hdGgucm91bmQoSioxMDApLzEwMCxjb2xvcjp0aGlzLmhzbFRvUmdiYSh1ZSwuNSksbGluZVdpZHRoOjEsbGluZVN0eWxlOjIsYXhpc0xhYmVsVmlzaWJsZTohMCx0aXRsZToiYXZnIn0pKSxKPjAmJihaLUopL0o+LjEmJmdlLnB1c2gocS5jcmVhdGVQcmljZUxpbmUoe3ByaWNlOlosY29sb3I6dGhpcy5oc2xUb1JnYmEodWUsLjgpLGxpbmVXaWR0aDoxLGxpbmVTdHlsZToxLGF4aXNMYWJlbFZpc2libGU6ITAsdGl0bGU6Im1heCJ9KSksdGhpcy5wcmljZUxpbmVzLnNldChJLGdlKX1zZXR1cFRvb2x0aXAoKXt0aGlzLmNoYXJ0JiYodGhpcy50b29sdGlwRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy50b29sdGlwRWwuY2xhc3NOYW1lPSJsdy10b29sdGlwIix0aGlzLnRvb2x0aXBFbC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik/LmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsKSx0aGlzLmNoYXJ0LnN1YnNjcmliZUNyb3NzaGFpck1vdmUoST0+e2lmKCF0aGlzLnRvb2x0aXBFbClyZXR1cm47aWYoIUkucG9pbnR8fCFJLnRpbWV8fEkucG9pbnQueDwwfHxJLnBvaW50Lnk8MCl7dGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJufWxldCBxPSF0aGlzLmdvQnJpZ2h0LGNlPXE/ImhzbCgwIDAlIDklKSI6ImhzbCgwIDAlIDEwMCUpIix1ZT1xPyJoc2woMCAwJSA5NSUpIjoiaHNsKDAgMCUgOSUpIixZPXE/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDg5LjglKSIsUT10aGlzLmdldFNlcmllc0NvbG9ycyhxKSxKPSIiLFo9MCxnZT0hMTtmb3IobGV0W3llLFZdb2YgdGhpcy5zZXJpZXNBcGlzKXtsZXQgSD1JLnNlcmllc0RhdGEuZ2V0KFYpO2lmKEgmJiJ2YWx1ZSJpbiBIJiZILnZhbHVlIT09dm9pZCAwKXtnZT0hMDtsZXQgb2U9UVtaJVEubGVuZ3RoXSxzZT10aGlzLnlBeGlzRm9ybWF0dGVyKEgudmFsdWUpO0orPWA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWFyZ2luOiR7Wj4wPyI2cHgiOiIwIn0gMDsiPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kOiR7b2V9O2JvcmRlci1yYWRpdXM6MnB4OyI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NTAwOyI+JHt5ZX06PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0bztmb250LXdlaWdodDo2MDA7Ij4ke3NlfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PmB9WisrfWlmKCFnZSl7dGhpcy50b29sdGlwRWwuc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJufXRoaXMudG9vbHRpcEVsLmlubmVySFRNTD1KLE9iamVjdC5hc3NpZ24odGhpcy50b29sdGlwRWwuc3R5bGUse2Rpc3BsYXk6ImJsb2NrIixiYWNrZ3JvdW5kOmNlLGNvbG9yOnVlLGJvcmRlckNvbG9yOll9KTtsZXQgYWU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpLmNsaWVudFdpZHRoLHJlPUkucG9pbnQueCsxNjtyZSsyMDA+YWUmJihyZT1JLnBvaW50LngtMjE2KSx0aGlzLnRvb2x0aXBFbC5zdHlsZS5sZWZ0PWAke3JlfXB4YCx0aGlzLnRvb2x0aXBFbC5zdHlsZS50b3A9YCR7SS5wb2ludC55LTE2fXB4YH0pKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx0aGlzLmxjQnVuZGxlPWF3YWl0IE9zLmdldEluc3RhbmNlKCkubG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCksYXdhaXQgbmV3IFByb21pc2UoY2U9PnJlcXVlc3RBbmltYXRpb25GcmFtZShjZSkpO2xldCBJPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKTtpZighSSlyZXR1cm47bGV0IHE9IXRoaXMuZ29CcmlnaHQ7dHJ5e3RoaXMuY2hhcnQ9dGhpcy5sY0J1bmRsZS5jcmVhdGVDaGFydChJLHthdXRvU2l6ZTohMCxsYXlvdXQ6e2JhY2tncm91bmQ6e3R5cGU6dGhpcy5sY0J1bmRsZS5Db2xvclR5cGUuU29saWQsY29sb3I6InRyYW5zcGFyZW50In0sdGV4dENvbG9yOnE/ImhzbCgwIDAlIDYzLjklKSI6ImhzbCgwIDAlIDIwJSkiLGZvbnRGYW1pbHk6Jy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZicsZm9udFNpemU6MTIsYXR0cmlidXRpb25Mb2dvOiExfSxncmlkOnt2ZXJ0TGluZXM6e2NvbG9yOnE/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn0saG9yekxpbmVzOntjb2xvcjpxPyJoc2woMCAwJSA4LjUlKSI6ImhzbCgwIDAlIDk1LjUlKSJ9fSxyaWdodFByaWNlU2NhbGU6e2JvcmRlclZpc2libGU6ITEsc2NhbGVNYXJnaW5zOnt0b3A6LjEsYm90dG9tOi4xfX0sdGltZVNjYWxlOntib3JkZXJWaXNpYmxlOiExLHRpbWVWaXNpYmxlOiEwLHNlY29uZHNWaXNpYmxlOiEwfSxjcm9zc2hhaXI6e21vZGU6dGhpcy5sY0J1bmRsZS5Dcm9zc2hhaXJNb2RlLk1hZ25ldH0saGFuZGxlU2Nyb2xsOiExLGhhbmRsZVNjYWxlOiExfSk7bGV0IGNlPXRoaXMuc2VyaWVzLmxlbmd0aD4wP3RoaXMuc2VyaWVzOlt7bmFtZToiY3B1IixkYXRhOlt7eDoiMjAyNS0wMS0xNVQwMzowMDowMCIseToyNX0se3g6IjIwMjUtMDEtMTVUMDc6MDA6MDAiLHk6MzB9LHt4OiIyMDI1LTAxLTE1VDExOjAwOjAwIix5OjIwfSx7eDoiMjAyNS0wMS0xNVQxNTowMDowMCIseTozNX0se3g6IjIwMjUtMDEtMTVUMTk6MDA6MDAiLHk6MjV9XX0se25hbWU6Im1lbW9yeSIsZGF0YTpbe3g6IjIwMjUtMDEtMTVUMDM6MDA6MDAiLHk6MTB9LHt4OiIyMDI1LTAxLTE1VDA3OjAwOjAwIix5OjEyfSx7eDoiMjAyNS0wMS0xNVQxMTowMDowMCIseToxMH0se3g6IjIwMjUtMDEtMTVUMTU6MDA6MDAiLHk6MzB9LHt4OiIyMDI1LTAxLTE1VDE5OjAwOjAwIix5OjQwfV19XTt0aGlzLmludGVybmFsQ2hhcnREYXRhPWNlLHRoaXMucmVjcmVhdGVTZXJpZXMoY2UpLHRoaXMuc2V0dXBUb29sdGlwKCl9Y2F0Y2goY2Upe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIGNoYXJ0OiIsY2UpfX1hc3luYyB1cGRhdGVkKEkpe2lmKHN1cGVyLnVwZGF0ZWQoSSksSS5oYXMoImdvQnJpZ2h0IikmJnRoaXMuY2hhcnQmJnRoaXMuYXBwbHlUaGVtZSgpLEkuaGFzKCJzZXJpZXMiKSYmdGhpcy5jaGFydCYmdGhpcy5zZXJpZXMubGVuZ3RoPjAmJmF3YWl0IHRoaXMudXBkYXRlU2VyaWVzKHRoaXMuc2VyaWVzKSxJLmhhcygieUF4aXNGb3JtYXR0ZXIiKSYmdGhpcy5jaGFydCxJLmhhcygicmVhbHRpbWVNb2RlIikmJnRoaXMuY2hhcnQmJih0aGlzLnJlYWx0aW1lTW9kZSYmdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMuYXV0b1Njcm9sbEludGVydmFsPjA/dGhpcy5zdGFydEF1dG9TY3JvbGwoKTp0aGlzLnN0b3BBdXRvU2Nyb2xsKCkpLEkuaGFzKCJhdXRvU2Nyb2xsSW50ZXJ2YWwiKSYmdGhpcy5jaGFydCYmKHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLnJlYWx0aW1lTW9kZSYmdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMuYXV0b1Njcm9sbEludGVydmFsPjAmJnRoaXMuc3RhcnRBdXRvU2Nyb2xsKCkpLChJLmhhcygieUF4aXNTY2FsaW5nIil8fEkuaGFzKCJ5QXhpc01heCIpKSYmdGhpcy5jaGFydClmb3IobGV0WyxxXW9mIHRoaXMuc2VyaWVzQXBpcyl0aGlzLnlBeGlzU2NhbGluZz09PSJkeW5hbWljIj9xLmFwcGx5T3B0aW9ucyh7YXV0b3NjYWxlSW5mb1Byb3ZpZGVyOnZvaWQgMH0pOnEuYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6cygoKT0+KHtwcmljZVJhbmdlOnttaW5WYWx1ZTowLG1heFZhbHVlOnRoaXMueUF4aXNNYXh9fSksImF1dG9zY2FsZUluZm9Qcm92aWRlciIpfSl9YXN5bmMgdXBkYXRlU2VyaWVzKEkscT0hMCl7aWYodGhpcy5jaGFydCl0cnl7aWYodGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1JLHRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLnJlYWx0aW1lTW9kZSl7bGV0IGNlPURhdGUubm93KCksdWU9Y2UtdGhpcy5yb2xsaW5nV2luZG93O2lmKEkubGVuZ3RoIT09dGhpcy5zZXJpZXNBcGlzLnNpemUpdGhpcy5yZWNyZWF0ZVNlcmllcyhJKTtlbHNle2xldCBZPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKCF0aGlzLmdvQnJpZ2h0KTtJLmZvckVhY2goKFEsSik9PntsZXQgWj1RLm5hbWV8fGBzZXJpZXMtJHtKfWAsZ2U9dGhpcy5zZXJpZXNBcGlzLmdldChaKTtpZighZ2UpcmV0dXJuO2xldCBhZT1RLmRhdGEuZmlsdGVyKHJlPT4odHlwZW9mIHJlLng9PSJudW1iZXIiP3JlLng6bmV3IERhdGUocmUueCkuZ2V0VGltZSgpKT51ZSk7Z2Uuc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyhhZSkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhaLGdlLGFlLFlbSiVZLmxlbmd0aF0pfSksdGhpcy5jb21wdXRlU3RhdHMoSSl9dHJ5e3RoaXMuY2hhcnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOk1hdGguZmxvb3IodWUvMWUzKSx0bzpNYXRoLmZsb29yKGNlLzFlMyl9KX1jYXRjaHt9aWYodGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyIpe2xldCBZPUkuZmxhdE1hcChRPT5RLmRhdGEuZmlsdGVyKEo9Pih0eXBlb2YgSi54PT0ibnVtYmVyIj9KLng6bmV3IERhdGUoSi54KS5nZXRUaW1lKCkpPnVlKS5tYXAoSj0+Si55KSk7aWYoWS5sZW5ndGg+MCl7bGV0IFE9TWF0aC5jZWlsKE1hdGgubWF4KC4uLlkpKjEuMSk7Zm9yKGxldFssSl1vZiB0aGlzLnNlcmllc0FwaXMpSi5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjpzKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6UX19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KX19fWVsc2UgaWYoSS5sZW5ndGghPT10aGlzLnNlcmllc0FwaXMuc2l6ZSl0aGlzLnJlY3JlYXRlU2VyaWVzKEkpO2Vsc2V7bGV0IGNlPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKCF0aGlzLmdvQnJpZ2h0KTtJLmZvckVhY2goKHVlLFkpPT57bGV0IFE9dWUubmFtZXx8YHNlcmllcy0ke1l9YCxKPXRoaXMuc2VyaWVzQXBpcy5nZXQoUSk7SiYmKEouc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyh1ZS5kYXRhKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKFEsSix1ZS5kYXRhLGNlW1klY2UubGVuZ3RoXSkpfSksdGhpcy5jb21wdXRlU3RhdHMoSSl9fWNhdGNoKGNlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBkYXRlIGNoYXJ0IHNlcmllczoiLGNlKX19YXN5bmMgdXBkYXRlVGltZVdpbmRvdygpe2lmKCF0aGlzLmNoYXJ0fHx0aGlzLnJvbGxpbmdXaW5kb3c8PTApcmV0dXJuO2xldCBJPURhdGUubm93KCkscT1JLXRoaXMucm9sbGluZ1dpbmRvdzt0cnl7dGhpcy5jaGFydC50aW1lU2NhbGUoKS5zZXRWaXNpYmxlUmFuZ2Uoe2Zyb206TWF0aC5mbG9vcihxLzFlMyksdG86TWF0aC5mbG9vcihJLzFlMyl9KX1jYXRjaHt9fWFzeW5jIGFwcGVuZERhdGEoSSl7dGhpcy5jaGFydCYmSS5mb3JFYWNoKChxLGNlKT0+e2xldCB1ZT1xLm5hbWV8fGBzZXJpZXMtJHtjZX1gLFk9dGhpcy5zZXJpZXNBcGlzLmdldCh1ZSk7aWYoISghWXx8cS5kYXRhLmxlbmd0aD09PTApKWZvcihsZXQgUSBvZiBxLmRhdGEpe2xldCBKPXRoaXMuY29udmVydERhdGFUb0xDKFtRXSk7Si5sZW5ndGg+MCYmWS51cGRhdGUoSlswXSl9fSl9YXN5bmMgdXBkYXRlT3B0aW9ucyhJKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LmFwcGx5T3B0aW9ucyhJKX1hc3luYyByZXNpemVDaGFydCgpe3RoaXMuY2hhcnQmJnRoaXMuY2hhcnQudGltZVNjYWxlKCkuZml0Q29udGVudCgpfWFzeW5jIGZvcmNlUmVzaXplKCl7YXdhaXQgdGhpcy5yZXNpemVDaGFydCgpfXRvZ2dsZUZ1bGxQYWdlKCl7dGhpcy5pc0Z1bGxQYWdlPSF0aGlzLmlzRnVsbFBhZ2UsdGhpcy5pc0Z1bGxQYWdlPyh0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS5pbnNldD0iMCIsdGhpcy5zdHlsZS56SW5kZXg9IjEwMDAwIix0aGlzLnN0eWxlLmhlaWdodD0iMTAwdmgiLHRoaXMuc3R5bGUucGFkZGluZz0iMCIsZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik6KHRoaXMuc3R5bGUucG9zaXRpb249IiIsdGhpcy5zdHlsZS5pbnNldD0iIix0aGlzLnN0eWxlLnpJbmRleD0iIix0aGlzLnN0eWxlLmhlaWdodD0iIix0aGlzLnN0eWxlLnBhZGRpbmc9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jaGFydD8udGltZVNjYWxlKCkuZml0Q29udGVudCgpfSl9c3RhcnRBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsVGltZXJ8fCh0aGlzLmF1dG9TY3JvbGxUaW1lcj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnVwZGF0ZVRpbWVXaW5kb3coKX0sdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWwpKX1zdG9wQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2Nyb2xsVGltZXIpLHRoaXMuYXV0b1Njcm9sbFRpbWVyPW51bGwpfXN0YXRpY3t6cihyLHQpfX07cmV0dXJuIG1lPXJ9KSgpfSk7dmFyIGZjYT1mKCgpPT57cFFlKCl9KTtmdW5jdGlvbiAkNChhKXtyZXR1cm4gYT9nY2EubGlnaHQ6Z2NhLmRhcmt9ZnVuY3Rpb24gRDQoYSxlKXtsZXQgdD1wYXJzZUludChhLnNsaWNlKDEsMyksMTYpLHI9cGFyc2VJbnQoYS5zbGljZSgzLDUpLDE2KSxpPXBhcnNlSW50KGEuc2xpY2UoNSw3KSwxNik7cmV0dXJuYHJnYmEoJHt0fSwgJHtyfSwgJHtpfSwgJHtlfSlgfWZ1bmN0aW9uIGJjYShhKXtsZXQgZT1hP2hjYTptY2E7cmV0dXJue2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLHRleHRTdHlsZTp7Y29sb3I6ZS50ZXh0U2Vjb25kYXJ5LGZvbnRGYW1pbHk6Jy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZicsZm9udFNpemU6MTJ9LHRvb2x0aXA6e2JhY2tncm91bmRDb2xvcjplLmJnUHJpbWFyeSxib3JkZXJDb2xvcjplLmJvcmRlckRlZmF1bHQsdGV4dFN0eWxlOntjb2xvcjplLnRleHRQcmltYXJ5LGZvbnRTaXplOjEyfSxjb25maW5lOiEwfSxsZWdlbmQ6e3RleHRTdHlsZTp7Y29sb3I6ZS50ZXh0U2Vjb25kYXJ5LGZvbnRTaXplOjEyfX19fWZ1bmN0aW9uIEE0KGEpe3JldHVybiBhP2hjYTptY2F9dmFyIGhjYSxtY2EsZ2NhLFZtPWYoKCk9PntRZSgpO2hjYT1lbi5jb2xvcnMubGlnaHQsbWNhPWVuLmNvbG9ycy5kYXJrLGdjYT17ZGFyazpbIiM2MGE1ZmEiLCIjMmRkNGJmIiwiI2E3OGJmYSIsIiNmYmJmMjQiLCIjMzRkMzk5IiwiI2ZiNzE4NSJdLGxpZ2h0OlsiIzNiODJmNiIsIiMxNGI4YTYiLCIjOGI1Y2Y2IiwiI2Y1OWUwYiIsIiMxMGI5ODEiLCIjZjQzZjVlIl19O3MoJDQsImdldEVjaGFydHNTZXJpZXNDb2xvcnMiKTtzKEQ0LCJoZXhUb1JnYmEiKTtzKGJjYSwiZ2V0RWNoYXJ0c1RoZW1lT3B0aW9ucyIpO3MoQTQsImdldFRoZW1lQ29sb3JzIil9KTt2YXIgUUlhLHZjYSxfYyxHVz1mKCgpPT57bGUoKTtlYSgpO1NjKCk7Vm0oKTtRcigpO1FJYT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sdmNhPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxfYz0oKCk9PntsZXQgYT1wZSxlLHQ9W10scj1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tzKHRoaXMsIkRlZXNDaGFydEVjaGFydHNCYXNlIil9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9WyQoKV0sUUlhKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobj0+ImxhYmVsImluIG4sImhhcyIpLGdldDpzKG49Pm4ubGFiZWwsImdldCIpLHNldDpzKChuLGwpPT57bi5sYWJlbD1sfSwic2V0Iil9LG1ldGFkYXRhOm99LHQsciksbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9I2U9dmNhKHRoaXMsdCwiVW50aXRsZWQgQ2hhcnQiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwobyl7dGhpcy4jZT1vfWNoYXJ0SW5zdGFuY2U9KHZjYSh0aGlzLHIpLG51bGwpO2VjaGFydHNCdW5kbGU9bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0ci5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMuY2hhcnRJbnN0YW5jZSl0cnl7dGhpcy5jaGFydEluc3RhbmNlLmRpc3Bvc2UoKSx0aGlzLmNoYXJ0SW5zdGFuY2U9bnVsbH1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJFcnJvciBkaXNwb3NpbmcgRUNoYXJ0cyBpbnN0YW5jZToiLG8pfX0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsdGhpcy5lY2hhcnRzQnVuZGxlPWF3YWl0IE9zLmdldEluc3RhbmNlKCkubG9hZEVjaGFydHMoKSxhd2FpdCBuZXcgUHJvbWlzZShuPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobikpO2xldCBvPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKTtpZihvKXRyeXt0aGlzLmNoYXJ0SW5zdGFuY2U9dGhpcy5lY2hhcnRzQnVuZGxlLmluaXQobyxudWxsLHtyZW5kZXJlcjoic3ZnIn0pLHRoaXMudXBkYXRlQ2hhcnQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuY2hhcnRJbnN0YW5jZT8ucmVzaXplKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUobyl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgRUNoYXJ0czoiLG4pfX1hc3luYyB1cGRhdGVkKG8pe3N1cGVyLnVwZGF0ZWQobyksby5oYXMoImdvQnJpZ2h0IikmJnRoaXMuY2hhcnRJbnN0YW5jZSYmdGhpcy5hcHBseVRoZW1lKCl9dXBkYXRlQ2hhcnQoKXtpZighdGhpcy5jaGFydEluc3RhbmNlKXJldHVybjtsZXQgbz1iY2EodGhpcy5nb0JyaWdodCksbj10aGlzLmJ1aWxkT3B0aW9uKCksbD17Li4ubywuLi5uLHRleHRTdHlsZTp7Li4uby50ZXh0U3R5bGUsLi4ubi50ZXh0U3R5bGV8fHt9fSx0b29sdGlwOnsuLi5vLnRvb2x0aXAsLi4ubi50b29sdGlwfHx7fX0sbGVnZW5kOnsuLi5vLmxlZ2VuZCwuLi5uLmxlZ2VuZHx8e30sdGV4dFN0eWxlOnsuLi5vLmxlZ2VuZD8udGV4dFN0eWxlfHx7fSwuLi5uLmxlZ2VuZD8udGV4dFN0eWxlfHx7fX19fTt0aGlzLmNoYXJ0SW5zdGFuY2Uuc2V0T3B0aW9uKGwsITApfWFwcGx5VGhlbWUoKXt0aGlzLnVwZGF0ZUNoYXJ0KCl9YXN5bmMgZm9yY2VSZXNpemUoKXt0aGlzLmNoYXJ0SW5zdGFuY2U/LnJlc2l6ZSgpfX19KSgpfSk7dmFyIHhjYSx5Y2E9ZigoKT0+e2xlKCk7TmEoKTtmUWUoKTt4Y2E9cygoKT0+e2xldCBhPVsiL2FwaS91c2VycyIsIi9hcGkvb3JkZXJzIiwiL2FwaS9wcm9kdWN0cyIsIi9hcGkvYXV0aCIsIi9hcGkvc2VhcmNoIl0sZT1be25hbWU6IkdFVCIsZGF0YTpbMTI0MCw4OTAsNzIwLDIxMDAsNTYwXX0se25hbWU6IlBPU1QiLGRhdGE6WzMyMCw0NTAsMTgwLDg5MCw0MF19LHtuYW1lOiJQVVQiLGRhdGE6WzkwLDIxMCwxNTAsMzAsMTBdfV0sdD1bIlVTLUVhc3QiLCJVUy1XZXN0IiwiRVUiLCJBc2lhIiwiT3RoZXIiXSxyPVt7bmFtZToiUmVxdWVzdHMiLGRhdGE6WzQ1MDAsMzIwMCwyODAwLDE5MDAsNjAwXX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgaT0+e2xldCBvPWkucXVlcnlTZWxlY3RvcigiI3ZlcnQtY2hhcnQiKSxuPWkucXVlcnlTZWxlY3RvcigiI2hvcml6LWNoYXJ0IiksbD1pLnF1ZXJ5U2VsZWN0b3IoIiNzdGFjay1jaGFydCIpO2kucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGM9PntjLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e28uc2VyaWVzPWUubWFwKHU9Pih7Li4udSxkYXRhOnUuZGF0YS5tYXAobT0+TWF0aC5yb3VuZChtKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpLG4uc2VyaWVzPXIubWFwKHU9Pih7Li4udSxkYXRhOnUuZGF0YS5tYXAobT0+TWF0aC5yb3VuZChtKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpLGwuc2VyaWVzPWUubWFwKHU9Pih7Li4udSxkYXRhOnUuZGF0YS5tYXAobT0+TWF0aC5yb3VuZChtKiguNStNYXRoLnJhbmRvbSgpKSkpfSkpfSl9KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtYYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY2hhcnRSb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmFuZG9taXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Um93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0idmVydC1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVlc3RzIGJ5IEVuZHBvaW50In0KICAgICAgICAgICAgLmNhdGVnb3JpZXM9JHthfQogICAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7aT0+YCR7aX0gcmVxYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0iaG9yaXotY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJUcmFmZmljIGJ5IFJlZ2lvbiJ9CiAgICAgICAgICAgIC5jYXRlZ29yaWVzPSR7dH0KICAgICAgICAgICAgLnNlcmllcz0ke3J9CiAgICAgICAgICAgIC5ob3Jpem9udGFsPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2k9PmAkeyhpLzFlMykudG9GaXhlZCgxKX1rYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgIGlkPSJzdGFjay1jaGFydCIKICAgICAgICAgIC5sYWJlbD0keyJTdGFja2VkOiBSZXF1ZXN0cyBieSBFbmRwb2ludCJ9CiAgICAgICAgICAuY2F0ZWdvcmllcz0ke2F9CiAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgIC5zdGFja2VkPSR7ITB9CiAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHtpPT5gJHtpfSByZXFgfQogICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIEJhciBjaGFydCB3aXRoIHZlcnRpY2FsLCBob3Jpem9udGFsLCBhbmQgc3RhY2tlZCBtb2RlcyDigKIKICAgICAgICAgIENsaWNrICdSYW5kb21pemUnIHRvIHVwZGF0ZSBkYXRhIHdpdGggYW5pbWF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIFA0LFlXPWYoKCk9PntsZSgpO1FlKCk7UDQ9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAgIGRlZXMtdGlsZSB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KICAgIC5jaGFydEhlYWRlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgfQogICAgLmNoYXJ0TGFiZWwgewogICAgICBmbGV4OiAxOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICB9CiAgICAuY2hhcnRDb250YWluZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgfQogIGBdfSk7dmFyIHdjYSxNY2E9ZigoKT0+e2xlKCk7WVcoKTt3Y2E9Wy4uLlA0LFhgYF19KTt2YXIga2NhLFNjYT1mKCgpPT57bGUoKTtrY2E9cyhhPT53YAogICAgPGRlZXMtdGlsZT4KICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7YS5sYWJlbH08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICA8L2RlZXMtdGlsZT4KICBgLCJyZW5kZXJDaGFydEJhciIpfSk7dmFyIGQ1LG5uLHpjYSxmUWU9ZigoKT0+e2xlKCk7R1coKTt5Y2EoKTtNY2EoKTtTY2EoKTtWbSgpO2Q1PWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxubj1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0semNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1jaGFydC1iYXIiKV0sZSx0PVtdLHIsaT1fYyxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0NoYXJ0QmFyIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpBcnJheX0pXSxkPVskKHt0eXBlOkFycmF5fSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOkJvb2xlYW59KV0seT1bJCh7dHlwZTpCb29sZWFufSldLE49WyQoe2F0dHJpYnV0ZTohMX0pXSxkNSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhdGVnb3JpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+ImNhdGVnb3JpZXMiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5jYXRlZ29yaWVzLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AuY2F0ZWdvcmllcz1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LG4sbCksZDUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InNlcmllcyJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnNlcmllcywiZ2V0Iiksc2V0OnMoKFAsQik9PntQLnNlcmllcz1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LGMscCksZDUodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJob3Jpem9udGFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJob3Jpem9udGFsImluIFAsImhhcyIpLGdldDpzKFA9PlAuaG9yaXpvbnRhbCwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLmhvcml6b250YWw9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxtLHYpLGQ1KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhY2tlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ic3RhY2tlZCJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnN0YWNrZWQsImdldCIpLHNldDpzKChQLEIpPT57UC5zdGFja2VkPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSxkNSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InNob3dMZWdlbmQiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1Auc2hvd0xlZ2VuZD1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LGssQyksZDUodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZUZvcm1hdHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4idmFsdWVGb3JtYXR0ZXIiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC52YWx1ZUZvcm1hdHRlciwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLnZhbHVlRm9ybWF0dGVyPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyx6KSxkNShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpUfSxudWxsLHQpLE89cj1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPXhjYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9bm4odGhpcyxuLFtdKTtnZXQgY2F0ZWdvcmllcygpe3JldHVybiB0aGlzLiNlfXNldCBjYXRlZ29yaWVzKFQpe3RoaXMuI2U9VH0jdD0obm4odGhpcyxsKSxubih0aGlzLGMsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcyhUKXt0aGlzLiN0PVR9I2E9KG5uKHRoaXMscCksbm4odGhpcyxtLCExKSk7Z2V0IGhvcml6b250YWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaG9yaXpvbnRhbChUKXt0aGlzLiNhPVR9I3I9KG5uKHRoaXMsdiksbm4odGhpcyxiLCExKSk7Z2V0IHN0YWNrZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3RhY2tlZChUKXt0aGlzLiNyPVR9I3M9KG5uKHRoaXMsZyksbm4odGhpcyxrLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd0xlZ2VuZChUKXt0aGlzLiNzPVR9I2k9KG5uKHRoaXMsQyksbm4odGhpcyxfLFQ9PmAke1R9YCkpO2dldCB2YWx1ZUZvcm1hdHRlcigpe3JldHVybiB0aGlzLiNpfXNldCB2YWx1ZUZvcm1hdHRlcihUKXt0aGlzLiNpPVR9c3RhdGljIHN0eWxlcz13Y2E7cmVuZGVyKCl7cmV0dXJuIGtjYSh0aGlzKX1hc3luYyB1cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksdGhpcy5jaGFydEluc3RhbmNlJiYoVC5oYXMoImNhdGVnb3JpZXMiKXx8VC5oYXMoInNlcmllcyIpfHxULmhhcygiaG9yaXpvbnRhbCIpfHxULmhhcygic3RhY2tlZCIpfHxULmhhcygic2hvd0xlZ2VuZCIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0IFQ9QTQodGhpcy5nb0JyaWdodCksUD0kNCh0aGlzLmdvQnJpZ2h0KSxCPXRoaXMudmFsdWVGb3JtYXR0ZXIsTT17dHlwZToiY2F0ZWdvcnkiLGRhdGE6dGhpcy5jYXRlZ29yaWVzLGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOlQuYm9yZGVyU3Ryb25nfX0sYXhpc0xhYmVsOntjb2xvcjpULnRleHRNdXRlZH19LFM9e3R5cGU6InZhbHVlIixheGlzTGluZTp7c2hvdzohMX0sYXhpc0xhYmVsOntjb2xvcjpULnRleHRNdXRlZCxmb3JtYXR0ZXI6cyhHPT5CKEcpLCJmb3JtYXR0ZXIiKX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOlQuYm9yZGVyU3VidGxlfX19LEU9dGhpcy5nb0JyaWdodD8uMTU6LjI1LEE9dGhpcy5ob3Jpem9udGFsP1swLDQsNCwwXTpbNCw0LDAsMF0sRj1bMCwwLDAsMF0sVz1bXSxqPXRoaXMuc2VyaWVzLm1hcCgoRyxoZSk9PntsZXQgUj1HLmNvbG9yfHxQW2hlJVAubGVuZ3RoXTtyZXR1cm4gVy5wdXNoKHtuYW1lOkcubmFtZSxpdGVtU3R5bGU6e2NvbG9yOlJ9fSkse25hbWU6Ry5uYW1lLHR5cGU6ImJhciIsZGF0YTpHLmRhdGEsc3RhY2s6dGhpcy5zdGFja2VkPyJ0b3RhbCI6dm9pZCAwLGl0ZW1TdHlsZTp7Y29sb3I6RDQoUixFKSxib3JkZXJDb2xvcjpSLGJvcmRlcldpZHRoOjEsYm9yZGVyUmFkaXVzOnRoaXMuc3RhY2tlZD9GOkF9LGJhck1heFdpZHRoOjQwLGJhckdhcDoiMjAlIixlbXBoYXNpczp7aXRlbVN0eWxlOntjb2xvcjpENChSLEUrLjE1KSxib3JkZXJDb2xvcjpSLGJvcmRlcldpZHRoOjEuNX19fX0pO2lmKHRoaXMuc3RhY2tlZCYmai5sZW5ndGg+MCl7bGV0IEc9altqLmxlbmd0aC0xXTtHLml0ZW1TdHlsZS5ib3JkZXJSYWRpdXM9QX1yZXR1cm57dG9vbHRpcDp7dHJpZ2dlcjoiYXhpcyIsYXhpc1BvaW50ZXI6e3R5cGU6InNoYWRvdyJ9LGZvcm1hdHRlcjpzKEc9PntsZXQgaGU9QXJyYXkuaXNBcnJheShHKT9HOltHXSxSPWA8c3Ryb25nPiR7aGVbMF0uYXhpc1ZhbHVlTGFiZWx9PC9zdHJvbmc+PGJyLz5gO2ZvcihsZXQgVSBvZiBoZSl7bGV0IEk9YDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MTBweDt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6JHtVLmJvcmRlckNvbG9yfHxVLmNvbG9yfTsiPjwvc3Bhbj5gO1IrPWAke0l9JHtVLnNlcmllc05hbWV9OiA8c3Ryb25nPiR7QihVLnZhbHVlKX08L3N0cm9uZz48YnIvPmB9cmV0dXJuIFJ9LCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGRhdGE6V306e3Nob3c6ITF9LGdyaWQ6e2xlZnQ6MTYscmlnaHQ6MTYsdG9wOjE2LGJvdHRvbTp0aGlzLnNob3dMZWdlbmQmJnRoaXMuc2VyaWVzLmxlbmd0aD4xPzQwOjE2LGNvbnRhaW5MYWJlbDohMH0seEF4aXM6dGhpcy5ob3Jpem9udGFsP1M6TSx5QXhpczp0aGlzLmhvcml6b250YWw/TTpTLHNlcmllczpqfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbm4odGhpcyx6KX1zdGF0aWN7bm4ocix0KX19O3JldHVybiBPPXJ9KSgpfSk7dmFyIENjYT1mKCgpPT57ZlFlKCl9KTt2YXIgX2NhLFRjYT1mKCgpPT57bGUoKTtOYSgpO2hRZSgpO19jYT1zKCgpPT57bGV0IGE9W3tuYW1lOiJEb2N1bWVudHMiLHZhbHVlOjQyfSx7bmFtZToiTWVkaWEiLHZhbHVlOjI4fSx7bmFtZToiQXBwbGljYXRpb25zIix2YWx1ZToxNX0se25hbWU6IlN5c3RlbSIsdmFsdWU6MTB9LHtuYW1lOiJPdGhlciIsdmFsdWU6NX1dLGU9W3tuYW1lOiJIZWFsdGh5Iix2YWx1ZToxNTZ9LHtuYW1lOiJXYXJuaW5nIix2YWx1ZToyM30se25hbWU6IkNyaXRpY2FsIix2YWx1ZTo4fSx7bmFtZToiVW5rbm93biIsdmFsdWU6M31dLHQ9W3tuYW1lOiJBUEkiLHZhbHVlOjQ1MjAwfSx7bmFtZToiU3RhdGljIEFzc2V0cyIsdmFsdWU6MjMxMDB9LHtuYW1lOiJXZWJTb2NrZXQiLHZhbHVlOjEyODAwfSx7bmFtZToiR3JhcGhRTCIsdmFsdWU6ODkwMH1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcj0+e2xldCBpPXIucXVlcnlTZWxlY3RvcigiI2Rpc2stY2hhcnQiKSxvPXIucXVlcnlTZWxlY3RvcigiI3N0YXR1cy1jaGFydCIpLG49ci5xdWVyeVNlbGVjdG9yKCIjdHJhZmZpYy1jaGFydCIpO3IucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGQ9PntkLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kuZGF0YT1hLm1hcChwPT4oey4uLnAsdmFsdWU6TWF0aC5yb3VuZChwLnZhbHVlKiguNStNYXRoLnJhbmRvbSgpKSl9KSksby5kYXRhPWUubWFwKHA9Pih7Li4ucCx2YWx1ZTpNYXRoLnJvdW5kKHAudmFsdWUqKC4zK01hdGgucmFuZG9tKCkqMS40KSl9KSksbi5kYXRhPXQubWFwKHA9Pih7Li4ucCx2YWx1ZTpNYXRoLnJvdW5kKHAudmFsdWUqKC41K01hdGgucmFuZG9tKCkpKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7WGAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0iZGlzay1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2sgVXNhZ2UgKEdCKSJ9CiAgICAgICAgICAgIC5kYXRhPSR7YX0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cj0+YCR7cn0gR0JgfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0ic3RhdHVzLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBTdGF0dXMifQogICAgICAgICAgICAuZGF0YT0ke2V9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke3I9PmAke3J9IHNlcnZpY2VzYH0KICAgICAgICAgICAgLmlubmVyUmFkaXVzUGVyY2VudD0keyIwJSJ9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgaWQ9InRyYWZmaWMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiVHJhZmZpYyBEaXN0cmlidXRpb24ifQogICAgICAgICAgLmRhdGE9JHt0fQogICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cj0+YCR7KHIvMWUzKS50b0ZpeGVkKDEpfWsgcmVxYH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIERvbnV0IGNoYXJ0IHdpdGggY29uZmlndXJhYmxlIGlubmVyIHJhZGl1cyAoc2V0IHRvIDAlIGZvciBmdWxsIHBpZSkg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YSB3aXRoIGFuaW1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBMY2EsJGNhPWYoKCk9PntsZSgpO1lXKCk7TGNhPVsuLi5QNCxYYAogICAgOmhvc3QgewogICAgICBoZWlnaHQ6IDM2MHB4OwogICAgfQogICAgLmNoYXJ0Q29udGFpbmVyIHsKICAgICAgaW5zZXQ6IDEycHggMDsKICAgIH0KICBgXX0pO3ZhciBEY2EsQWNhPWYoKCk9PntsZSgpO0RjYT1zKGE9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHthLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0RG9udXQiKX0pO3ZhciBqbSxWMSxQY2EsaFFlPWYoKCk9PntsZSgpO0dXKCk7VGNhKCk7JGNhKCk7QWNhKCk7Vm0oKTtqbT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sVjE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFBjYT0oKCk9PntsZXQgYT1baWUoImRlZXMtY2hhcnQtZG9udXQiKV0sZSx0PVtdLHIsaT1fYyxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0NoYXJ0RG9udXQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6Qm9vbGVhbn0pXSx1PVskKHt0eXBlOkJvb2xlYW59KV0seD1bJCh7dHlwZTpTdHJpbmd9KV0seT1bJCh7YXR0cmlidXRlOiExfSldLGptKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iZGF0YSJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LmRhdGEsImdldCIpLHNldDpzKCh6LE8pPT57ei5kYXRhPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbixsKSxqbSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InNob3dMZWdlbmQiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouc2hvd0xlZ2VuZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGMscCksam0odGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGFiZWxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzaG93TGFiZWxzImluIHosImhhcyIpLGdldDpzKHo9Pnouc2hvd0xhYmVscywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNob3dMYWJlbHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxtLHYpLGptKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5uZXJSYWRpdXNQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJpbm5lclJhZGl1c1BlcmNlbnQiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5pbm5lclJhZGl1c1BlcmNlbnQsImdldCIpLHNldDpzKCh6LE8pPT57ei5pbm5lclJhZGl1c1BlcmNlbnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLGptKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWVGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InZhbHVlRm9ybWF0dGVyImluIHosImhhcyIpLGdldDpzKHo9PnoudmFsdWVGb3JtYXR0ZXIsImdldCIpLHNldDpzKCh6LE8pPT57ei52YWx1ZUZvcm1hdHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssQyksam0obnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6X30sbnVsbCx0KSxOPXI9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1fY2E7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPVYxKHRoaXMsbixbXSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShfKXt0aGlzLiNlPV99I3Q9KFYxKHRoaXMsbCksVjEodGhpcyxjLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0xlZ2VuZChfKXt0aGlzLiN0PV99I2E9KFYxKHRoaXMscCksVjEodGhpcyxtLCEwKSk7Z2V0IHNob3dMYWJlbHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xhYmVscyhfKXt0aGlzLiNhPV99I3I9KFYxKHRoaXMsdiksVjEodGhpcyxiLCI1NSUiKSk7Z2V0IGlubmVyUmFkaXVzUGVyY2VudCgpe3JldHVybiB0aGlzLiNyfXNldCBpbm5lclJhZGl1c1BlcmNlbnQoXyl7dGhpcy4jcj1ffSNzPShWMSh0aGlzLGcpLFYxKHRoaXMsayxfPT5gJHtffWApKTtnZXQgdmFsdWVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgdmFsdWVGb3JtYXR0ZXIoXyl7dGhpcy4jcz1ffXN0YXRpYyBzdHlsZXM9TGNhO3JlbmRlcigpe3JldHVybiBEY2EodGhpcyl9YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pLHRoaXMuY2hhcnRJbnN0YW5jZSYmKF8uaGFzKCJkYXRhIil8fF8uaGFzKCJzaG93TGVnZW5kIil8fF8uaGFzKCJzaG93TGFiZWxzIil8fF8uaGFzKCJpbm5lclJhZGl1c1BlcmNlbnQiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBfPUE0KHRoaXMuZ29CcmlnaHQpLHo9JDQodGhpcy5nb0JyaWdodCksTz10aGlzLmdvQnJpZ2h0Py4xNTouMixUPVtdLFA9dGhpcy5kYXRhLm1hcCgoTSxTKT0+e2xldCBFPU0uY29sb3J8fHpbUyV6Lmxlbmd0aF07cmV0dXJuIFQucHVzaCh7bmFtZTpNLm5hbWUsaXRlbVN0eWxlOntjb2xvcjpFfX0pLHtuYW1lOk0ubmFtZSx2YWx1ZTpNLnZhbHVlLGl0ZW1TdHlsZTp7Y29sb3I6RDQoRSxPKSxib3JkZXJDb2xvcjpFLGJvcmRlcldpZHRoOjF9LGVtcGhhc2lzOntpdGVtU3R5bGU6e2NvbG9yOkQ0KEUsTysuMTUpLGJvcmRlckNvbG9yOkUsYm9yZGVyV2lkdGg6MS41fX19fSksQj10aGlzLnZhbHVlRm9ybWF0dGVyO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIixmb3JtYXR0ZXI6cyhNPT5gJHtgPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjoke00uZGF0YT8uaXRlbVN0eWxlPy5ib3JkZXJDb2xvcnx8TS5jb2xvcn07Ij48L3NwYW4+YH0ke00ubmFtZX06IDxzdHJvbmc+JHtCKE0udmFsdWUpfTwvc3Ryb25nPiAoJHtNLnBlcmNlbnR9JSlgLCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZD97b3JpZW50OiJ2ZXJ0aWNhbCIscmlnaHQ6MTYsdG9wOiJjZW50ZXIiLGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGl0ZW1HYXA6MTIsZGF0YTpULGZvcm1hdHRlcjpzKE09PntsZXQgUz10aGlzLmRhdGEuZmluZChFPT5FLm5hbWU9PT1NKTtyZXR1cm4gUz9gJHtNfSAgJHtCKFMudmFsdWUpfWA6TX0sImZvcm1hdHRlciIpfTp7c2hvdzohMX0sc2VyaWVzOlt7dHlwZToicGllIixyYWRpdXM6W3RoaXMuaW5uZXJSYWRpdXNQZXJjZW50LCI4NSUiXSxjZW50ZXI6dGhpcy5zaG93TGVnZW5kP1siMzUlIiwiNTAlIl06WyI1MCUiLCI1MCUiXSxhdm9pZExhYmVsT3ZlcmxhcDohMCxwYWRBbmdsZToyLGl0ZW1TdHlsZTp7Ym9yZGVyUmFkaXVzOjR9LGxhYmVsOnRoaXMuc2hvd0xhYmVscz97c2hvdzohMCxmb3JtYXR0ZXI6IntifToge2R9JSIsZm9udFNpemU6MTEsY29sb3I6Xy50ZXh0U2Vjb25kYXJ5LHRleHRCb3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifTp7c2hvdzohMX0sZGF0YTpQfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxWMSh0aGlzLEMpfXN0YXRpY3tWMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgRWNhPWYoKCk9PntoUWUoKX0pO3ZhciBJY2EsTmNhPWYoKCk9PntsZSgpO05hKCk7bVFlKCk7SWNhPXMoKCk9PntsZXQgYT1be3ZhbHVlOjYwLGNvbG9yOiJoc2woMTQyIDc2JSAzNiUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMzggOTIlIDUwJSkifSx7dmFsdWU6MTAwLGNvbG9yOiJoc2woMCA3MiUgNTAlKSJ9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjcHUtZ2F1Z2UiKSxyPWUucXVlcnlTZWxlY3RvcigiI21lbS1nYXVnZSIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIjc2xhLWdhdWdlIiksbz1udWxsO2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGw9PntsZXQgZD1sLnRleHQ/LnRyaW0oKTtkPT09IkFuaW1hdGUiP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57b3x8KG89d2luZG93LnNldEludGVydmFsKCgpPT57dC52YWx1ZT1NYXRoLnJvdW5kKDMwK01hdGgucmFuZG9tKCkqNjApLHIudmFsdWU9TWF0aC5yb3VuZCg0MCtNYXRoLnJhbmRvbSgpKjUwKSxpLnZhbHVlPU1hdGgucm91bmQoKDk1K01hdGgucmFuZG9tKCkqNSkqMTAwKS8xMDB9LDJlMykpfSk6ZD09PSJTdG9wIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e28mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChvKSxvPW51bGwpfSk6ZD09PSJTcGlrZSImJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC52YWx1ZT05NSxyLnZhbHVlPTg4LGkudmFsdWU9OTYuNX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7WGAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmdhdWdlUm93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BbmltYXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3A8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U3Bpa2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2VSb3ciPgogICAgICAgICAgPGRlZXMtY2hhcnQtZ2F1Z2UKICAgICAgICAgICAgaWQ9ImNwdS1nYXVnZSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNQVSBVc2FnZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezQyfQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnRocmVzaG9sZHM9JHthfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1nYXVnZQogICAgICAgICAgICBpZD0ibWVtLWdhdWdlIgogICAgICAgICAgICAubGFiZWw9JHsiTWVtb3J5IFVzYWdlIn0KICAgICAgICAgICAgLnZhbHVlPSR7Njd9CiAgICAgICAgICAgIC51bml0PSR7IiUifQogICAgICAgICAgICAudGhyZXNob2xkcz0ke2F9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWdhdWdlPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWdhdWdlCiAgICAgICAgICAgIGlkPSJzbGEtZ2F1Z2UiCiAgICAgICAgICAgIC5sYWJlbD0keyJTTEEgVXB0aW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7OTkuOH0KICAgICAgICAgICAgLm1pbj0kezk1fQogICAgICAgICAgICAubWF4PSR7MTAwfQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnNob3dUaWNrcz0keyEwfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBHYXVnZSBjaGFydCB3aXRoIGFuaW1hdGVkIHZhbHVlIHRyYW5zaXRpb25zIGFuZCB0aHJlc2hvbGQgY29sb3Jpbmcg4oCiCiAgICAgICAgICBDbGljayAnQW5pbWF0ZScgZm9yIGxpdmUgdXBkYXRlcywgJ1NwaWtlJyB0byBzaW11bGF0ZSBoaWdoIGxvYWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgUmNhLE9jYT1mKCgpPT57bGUoKTtZVygpO1JjYT1bLi4uUDQsWGAKICAgIDpob3N0IHsKICAgICAgaGVpZ2h0OiAzMjBweDsKICAgIH0KICBgXX0pO3ZhciBGY2EsQmNhPWYoKCk9PntsZSgpO0ZjYT1zKGE9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHthLmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0R2F1Z2UiKX0pO3ZhciB1NSxsbixIY2EsbVFlPWYoKCk9PntsZSgpO0dXKCk7TmNhKCk7T2NhKCk7QmNhKCk7Vm0oKTt1NT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sbG49ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LEhjYT0oKCk9PntsZXQgYT1baWUoImRlZXMtY2hhcnQtZ2F1Z2UiKV0sZSx0PVtdLHIsaT1fYyxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0NoYXJ0R2F1Z2UiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk51bWJlcn0pXSxkPVskKHt0eXBlOk51bWJlcn0pXSx1PVskKHt0eXBlOk51bWJlcn0pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOkFycmF5fSldLE49WyQoe3R5cGU6Qm9vbGVhbn0pXSx1NSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJ2YWx1ZSJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnZhbHVlLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AudmFsdWU9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxuLGwpLHU1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJtaW4iaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5taW4sImdldCIpLHNldDpzKChQLEIpPT57UC5taW49Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxjLHApLHU1KHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJtYXgiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5tYXgsImdldCIpLHNldDpzKChQLEIpPT57UC5tYXg9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxtLHYpLHU1KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidW5pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4idW5pdCJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnVuaXQsImdldCIpLHNldDpzKChQLEIpPT57UC51bml0PUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSx1NSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRocmVzaG9sZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InRocmVzaG9sZHMiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC50aHJlc2hvbGRzLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AudGhyZXNob2xkcz1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LGssQyksdTUodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGlja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InNob3dUaWNrcyJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnNob3dUaWNrcywiZ2V0Iiksc2V0OnMoKFAsQik9PntQLnNob3dUaWNrcz1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LF8seiksdTUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6VH0sbnVsbCx0KSxPPXI9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1JY2E7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPWxuKHRoaXMsbiwwKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVCl7dGhpcy4jZT1UfSN0PShsbih0aGlzLGwpLGxuKHRoaXMsYywwKSk7Z2V0IG1pbigpe3JldHVybiB0aGlzLiN0fXNldCBtaW4oVCl7dGhpcy4jdD1UfSNhPShsbih0aGlzLHApLGxuKHRoaXMsbSwxMDApKTtnZXQgbWF4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1heChUKXt0aGlzLiNhPVR9I3I9KGxuKHRoaXMsdiksbG4odGhpcyxiLCIlIikpO2dldCB1bml0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHVuaXQoVCl7dGhpcy4jcj1UfSNzPShsbih0aGlzLGcpLGxuKHRoaXMsayxbXSkpO2dldCB0aHJlc2hvbGRzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRocmVzaG9sZHMoVCl7dGhpcy4jcz1UfSNpPShsbih0aGlzLEMpLGxuKHRoaXMsXywhMCkpO2dldCBzaG93VGlja3MoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1RpY2tzKFQpe3RoaXMuI2k9VH1zdGF0aWMgc3R5bGVzPVJjYTtyZW5kZXIoKXtyZXR1cm4gRmNhKHRoaXMpfWFzeW5jIHVwZGF0ZWQoVCl7c3VwZXIudXBkYXRlZChUKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihULmhhcygidmFsdWUiKXx8VC5oYXMoIm1pbiIpfHxULmhhcygibWF4Iil8fFQuaGFzKCJ1bml0Iil8fFQuaGFzKCJ0aHJlc2hvbGRzIil8fFQuaGFzKCJzaG93VGlja3MiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBUPUE0KHRoaXMuZ29CcmlnaHQpLEI9JDQodGhpcy5nb0JyaWdodClbMF0sTTtpZih0aGlzLnRocmVzaG9sZHMubGVuZ3RoPjApe2xldCBTPVsuLi50aGlzLnRocmVzaG9sZHNdLnNvcnQoKEUsQSk9PkUudmFsdWUtQS52YWx1ZSk7TT1TLm1hcChFPT5bKEUudmFsdWUtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksRS5jb2xvcl0pLE1bTS5sZW5ndGgtMV1bMF08MSYmTS5wdXNoKFsxLFNbUy5sZW5ndGgtMV0uY29sb3JdKX1lbHNlIE09W1sxLEJdXTtyZXR1cm57c2VyaWVzOlt7dHlwZToiZ2F1Z2UiLG1pbjp0aGlzLm1pbixtYXg6dGhpcy5tYXgsc3RhcnRBbmdsZToyMjAsZW5kQW5nbGU6LTQwLHByb2dyZXNzOntzaG93OiEwLHdpZHRoOjE0LHJvdW5kQ2FwOiEwfSxwb2ludGVyOntzaG93OiEwLGxlbmd0aDoiNjAlIix3aWR0aDo1LGl0ZW1TdHlsZTp7Y29sb3I6ImF1dG8ifX0sYXhpc0xpbmU6e2xpbmVTdHlsZTp7d2lkdGg6MTQsY29sb3I6TSxvcGFjaXR5Oi4zfX0sYXhpc1RpY2s6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6LTIwLGxlbmd0aDo2LGxpbmVTdHlsZTp7Y29sb3I6VC5ib3JkZXJTdHJvbmcsd2lkdGg6MX19LHNwbGl0TGluZTp7c2hvdzp0aGlzLnNob3dUaWNrcyxkaXN0YW5jZTotMjQsbGVuZ3RoOjEwLGxpbmVTdHlsZTp7Y29sb3I6VC50ZXh0TXV0ZWQsd2lkdGg6Mn19LGF4aXNMYWJlbDp7c2hvdzp0aGlzLnNob3dUaWNrcyxkaXN0YW5jZTozMCxjb2xvcjpULnRleHRNdXRlZCxmb250U2l6ZToxMX0sZGV0YWlsOnt2YWx1ZUFuaW1hdGlvbjohMCxmb250U2l6ZToyOCxmb250V2VpZ2h0OjYwMCxvZmZzZXRDZW50ZXI6WzAsIjY1JSJdLGNvbG9yOlQudGV4dFByaW1hcnksZm9ybWF0dGVyOmB7dmFsdWV9JHt0aGlzLnVuaXR9YH0sdGl0bGU6e3Nob3c6ITF9LGRhdGE6W3t2YWx1ZTp0aGlzLnZhbHVlfV19XX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGxuKHRoaXMseil9c3RhdGlje2xuKHIsdCl9fTtyZXR1cm4gTz1yfSkoKX0pO3ZhciBxY2E9ZigoKT0+e21RZSgpfSk7dmFyIFZjYSxqY2E9ZigoKT0+e2xlKCk7TmEoKTtWY2E9cygoKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoIiNzdHJ1Y3R1cmVkLWxvZyIpLHQ9YS5xdWVyeVNlbGVjdG9yKCIjcmF3LWxvZyIpLHIsaSxvPVsiU2VydmVyIiwiRGF0YWJhc2UiLCJBUEkiLCJBdXRoIiwiQ2FjaGUiLCJRdWV1ZSIsIldlYlNvY2tldCIsIlNjaGVkdWxlciJdLG49e2RlYnVnOlsiTG9hZGluZyBtb2R1bGU6IHt7bW9kdWxlfX0iLCJDYWNoZSBoaXQgZm9yIGtleToge3trZXl9fSIsIlNRTCBxdWVyeSBleGVjdXRlZCBpbiB7e3RpbWV9fW1zIiwiUmVxdWVzdCBoZWFkZXJzOiB7e2hlYWRlcnN9fSIsIkVudmlyb25tZW50IHZhcmlhYmxlIGxvYWRlZDoge3t2YXJ9fSJdLGluZm86WyJSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19IiwiVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5IiwiUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUiLCdTY2hlZHVsZWQgdGFzayAie3t0YXNrfX0iIHN0YXJ0ZWQnLCJXZWJTb2NrZXQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmcm9tIHt7aXB9fSJdLHdhcm46WyJTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpIiwiTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JSIsIlJhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fSIsIkRlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19IiwiQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzIl0sZXJyb3I6WyJEYXRhYmFzZSBjb25uZWN0aW9uIGxvc3Q6IHt7ZXJyb3J9fSIsIkZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6IHt7ZXJyb3J9fSIsIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciB7e3VzZXJ9fSIsIkZpbGUgbm90IGZvdW5kOiB7e3BhdGh9fSIsIlNlcnZpY2UgdW5hdmFpbGFibGU6IHt7c2VydmljZX19Il0sc3VjY2VzczpbIlNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0IHt7cG9ydH19IiwiRGF0YWJhc2UgbWlncmF0aW9uIGNvbXBsZXRlZCIsIkJhY2t1cCBjb21wbGV0ZWQ6IHt7c2l6ZX19IE1CIiwiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQiLCJIZWFsdGggY2hlY2sgcGFzc2VkOiBhbGwgc3lzdGVtcyBvcGVyYXRpb25hbCJdfSxsPVsiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ1LjEyM1pceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtuZ2lueF0gR0VUIC9hcGkvaGVhbHRoIDIwMCAtIDJtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS40NTZaXHgxQlswbSBceDFCWzMzbVdBUk5ceDFCWzBtICBbcmVkaXNdIENvbm5lY3Rpb24gcG9vbCBydW5uaW5nIGxvdzogMy8xMCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS43ODlaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbbW9uZ29kYl0gUXVlcnkgdGltZW91dCBhZnRlciAzMDAwMG1zIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjAxMlpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFthcHBdIFByb2Nlc3NpbmcgYmF0Y2ggam9iICN7e2pvYklkfX0iLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuMzQ1Wlx4MUJbMG0gXHgxQlszMm1PS1x4MUJbMG0gICAgW2hlYWx0aF0gQWxsIHNlcnZpY2VzIGhlYWx0aHkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuNjc4Wlx4MUJbMG0gXHgxQlszNm1JTkZPXHgxQlswbSAgW2thZmthXSBNZXNzYWdlIGNvbnN1bWVkIGZyb20gdG9waWM6IGV2ZW50cyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4wMDFaXHgxQlswbSBceDFCWzM1bURFQlVHXHgxQlswbSBbZ3JwY10gUmVxdWVzdCByZWNlaXZlZDogR2V0VXNlcihpZD17e3VzZXJJZH19KSIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4yMzRaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbYXV0aF0gVG9rZW4gdmFsaWRhdGlvbiBmYWlsZWQ6IGV4cGlyZWQiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuNTY3Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JhdGUtbGltaXRdIElQIHt7aXB9fSBhcHByb2FjaGluZyByYXRlIGxpbWl0IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3Ljg5MFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFt3ZWJzb2NrZXRdIENsaWVudCBjb25uZWN0ZWQ6IHNlc3Npb249e3tzZXNzaW9ufX0iLGBceDFCWzMxbUVycm9yOiBDb25uZWN0aW9uIHJlZnVzZWRceDFCWzBtCiAgICBhdCBUY3BDb25uZWN0aW9uLmNvbm5lY3QgKC9hcHAvbm9kZV9tb2R1bGVzL3BnL2xpYi9jb25uZWN0aW9uLmpzOjEyOjE1KQogICAgYXQgUG9vbC5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvcG9vbC5qczo0NToyMykKICAgIGF0IGFzeW5jIERhdGFiYXNlU2VydmljZS5xdWVyeSAoL2FwcC9zcmMvZGIvc2VydmljZS50czo4OToxMilgXSxkPXMoKCk9PntsZXQgYj1bImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsInN1Y2Nlc3MiXSxnPVsuMiwuNSwuMTUsLjEsLjA1XSx5PU1hdGgucmFuZG9tKCksaz0wLEM9ImluZm8iO2ZvcihsZXQgVD0wO1Q8Zy5sZW5ndGg7VCsrKWlmKGsrPWdbVF0seTxrKXtDPWJbVF07YnJlYWt9bGV0IE49b1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqby5sZW5ndGgpXSxfPW5bQ10sTz1fW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpfLmxlbmd0aCldLnJlcGxhY2UoInt7bW9kdWxlfX0iLFsiZXhwcmVzcyIsIm1vbmdvb3NlIiwicmVkaXMiLCJzb2NrZXQuaW8iXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e2tleX19IiwidXNlcjoiK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3RpbWV9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo1MDApKzUwKSkucmVwbGFjZSgie3toZWFkZXJzfX0iLCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24sIEF1dGhvcml6YXRpb246IEJlYXJlciAuLi4iKS5yZXBsYWNlKCJ7e3Zhcn19IixbIk5PREVfRU5WIiwiREFUQUJBU0VfVVJMIiwiQVBJX0tFWSIsIlBPUlQiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e21ldGhvZH19IixbIkdFVCIsIlBPU1QiLCJQVVQiLCJERUxFVEUiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e3BhdGh9fSIsWyIvYXBpL3VzZXJzIiwiL2FwaS9hdXRoL2xvZ2luIiwiL2FwaS9wcm9kdWN0cyIsIi9oZWFsdGgiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e3VzZXJJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e2pvYklkfX0iLCJqb2JfIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwxMSkpLnJlcGxhY2UoInt7dGFza319IixbImNsZWFudXAiLCJiYWNrdXAiLCJyZXBvcnQtZ2VuZXJhdGlvbiIsImNhY2hlLXJlZnJlc2giXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNCldKS5yZXBsYWNlKCJ7e2lwfX0iLGAxOTIuMTY4LjEuJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU1KX1gKS5yZXBsYWNlKCJ7e3F1ZXJ5fX0iLCJTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIC4uLiIpLnJlcGxhY2UoInt7cGVyY2VudH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSs3MCkpLnJlcGxhY2UoInt7ZW5kcG9pbnR9fSIsIi9hcGkvdjEvbGVnYWN5IikucmVwbGFjZSgie3tkYXlzfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMzApKzEpKS5yZXBsYWNlKCJ7e2Vycm9yfX0iLFsiRUNPTk5SRUZVU0VEIiwiRVRJTUVET1VUIiwiRU5PVEZPVU5EIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3t1c2VyfX0iLCJ1c2VyXyIrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMykpLnJlcGxhY2UoInt7c2VydmljZX19IixbIlJlZGlzIiwiTW9uZ29EQiIsIkVsYXN0aWNTZWFyY2giXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyldKS5yZXBsYWNlKCJ7e3BvcnR9fSIsU3RyaW5nKDNlMytNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTApKSkucmVwbGFjZSgie3tzaXplfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSsxMDApKTtlLmFkZExvZyhDLE8sTil9LCJnZW5lcmF0ZVJhbmRvbUxvZyIpLGM9cygoKT0+e2xldCBiPWxbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmwubGVuZ3RoKV0sZz1uZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseT1iLnJlcGxhY2UoLzIwMjQtMDEtMTVUMTA6MjM6XGR7Mn1cLlxkezN9Wi9nLGcpLnJlcGxhY2UoInt7am9iSWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3tzZXNzaW9ufX0iLE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDExKSk7dC53cml0ZWxuUmF3KHkpfSwiZ2VuZXJhdGVEb2NrZXJMb2ciKSxwPXMoKCk9PntpZighcil7bGV0IGI9cygoKT0+e2QoKTtsZXQgZz1NYXRoLnJhbmRvbSgpKjJlMys1MDA7cj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3ImJmIoKX0sZyl9LCJzY2hlZHVsZU5leHQiKTtiKCl9fSwic3RhcnRTdHJ1Y3R1cmVkU2ltdWxhdGlvbiIpLHU9cygoKT0+e3ImJih3aW5kb3cuY2xlYXJUaW1lb3V0KHIpLHI9bnVsbCl9LCJzdG9wU3RydWN0dXJlZFNpbXVsYXRpb24iKSxtPXMoKCk9PntpZighaSl7bGV0IGI9cygoKT0+e2MoKTtsZXQgZz1NYXRoLnJhbmRvbSgpKjFlMysyMDA7aT13aW5kb3cuc2V0VGltZW91dCgoKT0+e2kmJmIoKX0sZyl9LCJzY2hlZHVsZU5leHQiKTtiKCl9fSwic3RhcnRSYXdTaW11bGF0aW9uIiksdj1zKCgpPT57aSYmKHdpbmRvdy5jbGVhclRpbWVvdXQoaSksaT1udWxsKX0sInN0b3BSYXdTaW11bGF0aW9uIik7YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYj0+e3N3aXRjaChiLnRleHQ/LnRyaW0oKSl7Y2FzZSJBZGQgU3RydWN0dXJlZCBMb2ciOmIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5kKCkpO2JyZWFrO2Nhc2UiU3RhcnQgU3RydWN0dXJlZCI6Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnAoKSk7YnJlYWs7Y2FzZSJTdG9wIFN0cnVjdHVyZWQiOmIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT51KCkpO2JyZWFrO2Nhc2UiQWRkIERvY2tlciBMb2ciOmIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5jKCkpO2JyZWFrO2Nhc2UiU3RhcnQgRG9ja2VyIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+bSgpKTticmVhaztjYXNlIlN0b3AgRG9ja2VyIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+digpKTticmVha319KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtYYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDwhLS0gU3RydWN0dXJlZCBMb2dzIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0cnVjdHVyZWQgTG9ncyAoSUxvZ0VudHJ5KTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgU3RydWN0dXJlZCBsb2cgZW50cmllcyB3aXRoIGxldmVsLCBtZXNzYWdlLCBhbmQgc291cmNlLiBTdXBwb3J0cyBzZWFyY2ggYW5kIGtleXdvcmQgaGlnaGxpZ2h0aW5nLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgU3RydWN0dXJlZCBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgU3RydWN0dXJlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICBpZD0ic3RydWN0dXJlZC1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdGlvbiBTZXJ2ZXIgTG9ncyJ9CiAgICAgICAgICAuaGlnaGxpZ2h0S2V5d29yZHM9JHtbImVycm9yIiwiZmFpbGVkIiwidGltZW91dCJdfQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBSYXcgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5SYXcgTG9ncyAoRG9ja2VyL0NvbnRhaW5lciBTdHlsZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFJhdyBsb2cgb3V0cHV0IHdpdGggQU5TSSBlc2NhcGUgc2VxdWVuY2VzIGZvciByZWFsIERvY2tlci9jb250YWluZXIgbG9ncy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIERvY2tlciBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IERvY2tlcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InJhdy1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiRG9ja2VyIENvbnRhaW5lciBMb2dzIn0KICAgICAgICAgIC5tb2RlPSR7InJhdyJ9CiAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMX0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIFVuLENyLFVjYSxXY2E9ZigoKT0+e2xlKCk7ZWEoKTtqY2EoKTtRZSgpO1NjKCk7UXIoKTtVbj1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sQ3I9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFVjYT0oKCk9PntsZXQgYT1baWUoImRlZXMtY2hhcnQtbG9nIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdO3ZhciBtZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0NoYXJ0TG9nIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOkFycmF5fSldLHg9WyQoe3R5cGU6Qm9vbGVhbn0pXSx5PVskKHt0eXBlOk51bWJlcn0pXSxOPVskKHt0eXBlOkFycmF5fSldLE89WyQoe3R5cGU6Qm9vbGVhbn0pXSxCPVtLKCldLEU9W0soKV0sVz1bSygpXSxoZT1bSygpXSxVbih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJsYWJlbCJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmxhYmVsLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmxhYmVsPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LG4sbCksVW4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJtb2RlImluIHEsImhhcyIpLGdldDpzKHE9PnEubW9kZSwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5tb2RlPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LGMscCksVW4odGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJsb2dFbnRyaWVzImluIHEsImhhcyIpLGdldDpzKHE9PnEubG9nRW50cmllcywiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5sb2dFbnRyaWVzPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LG0sdiksVW4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJhdXRvU2Nyb2xsImluIHEsImhhcyIpLGdldDpzKHE9PnEuYXV0b1Njcm9sbCwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5hdXRvU2Nyb2xsPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LGIsZyksVW4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJtYXhFbnRyaWVzImluIHEsImhhcyIpLGdldDpzKHE9PnEubWF4RW50cmllcywiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5tYXhFbnRyaWVzPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LGssQyksVW4odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRLZXl3b3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4iaGlnaGxpZ2h0S2V5d29yZHMiaW4gcSwiaGFzIiksZ2V0OnMocT0+cS5oaWdobGlnaHRLZXl3b3JkcywiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5oaWdobGlnaHRLZXl3b3Jkcz1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxfLHopLFVuKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+InNob3dNZXRyaWNzImluIHEsImhhcyIpLGdldDpzKHE9PnEuc2hvd01ldHJpY3MsImdldCIpLHNldDpzKChxLGNlKT0+e3Euc2hvd01ldHJpY3M9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sVCxQKSxVbih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJzZWFyY2hRdWVyeSJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLnNlYXJjaFF1ZXJ5PWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LE0sUyksVW4odGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJmaWx0ZXJNb2RlImluIHEsImhhcyIpLGdldDpzKHE9PnEuZmlsdGVyTW9kZSwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5maWx0ZXJNb2RlPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LEEsRiksVW4odGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJtZXRyaWNzImluIHEsImhhcyIpLGdldDpzKHE9PnEubWV0cmljcywiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5tZXRyaWNzPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LGosRyksVW4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxSZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4idGVybWluYWxSZWFkeSJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLnRlcm1pbmFsUmVhZHksImdldCIpLHNldDpzKChxLGNlKT0+e3EudGVybWluYWxSZWFkeT1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxSLFUpLFVuKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkl9LG51bGwsdCksbWU9cj1lLnZhbHVlLEkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6SX0pfXN0YXRpYyBkZW1vPVZjYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0IiwiV29ya3NwYWNlIl07I2U9Q3IodGhpcyxuLCJTZXJ2ZXIgTG9ncyIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChJKXt0aGlzLiNlPUl9I3Q9KENyKHRoaXMsbCksQ3IodGhpcyxjLCJzdHJ1Y3R1cmVkIikpO2dldCBtb2RlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGUoSSl7dGhpcy4jdD1JfSNhPShDcih0aGlzLHApLENyKHRoaXMsbSxbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxvZ0VudHJpZXMoSSl7dGhpcy4jYT1JfSNyPShDcih0aGlzLHYpLENyKHRoaXMsYiwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGF1dG9TY3JvbGwoSSl7dGhpcy4jcj1JfSNzPShDcih0aGlzLGcpLENyKHRoaXMsaywxZTQpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNzfXNldCBtYXhFbnRyaWVzKEkpe3RoaXMuI3M9SX0jaT0oQ3IodGhpcyxDKSxDcih0aGlzLF8sW10pKTtnZXQgaGlnaGxpZ2h0S2V5d29yZHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaGlnaGxpZ2h0S2V5d29yZHMoSSl7dGhpcy4jaT1JfSNvPShDcih0aGlzLHopLENyKHRoaXMsVCwhMCkpO2dldCBzaG93TWV0cmljcygpe3JldHVybiB0aGlzLiNvfXNldCBzaG93TWV0cmljcyhJKXt0aGlzLiNvPUl9I249KENyKHRoaXMsUCksQ3IodGhpcyxNLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI259c2V0IHNlYXJjaFF1ZXJ5KEkpe3RoaXMuI249SX0jbD0oQ3IodGhpcyxTKSxDcih0aGlzLEEsITEpKTtnZXQgZmlsdGVyTW9kZSgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJNb2RlKEkpe3RoaXMuI2w9SX0jYz0oQ3IodGhpcyxGKSxDcih0aGlzLGose2RlYnVnOjAsaW5mbzowLHdhcm46MCxlcnJvcjowLHN1Y2Nlc3M6MCx0b3RhbDowLHJhdGU6MH0pKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNjfXNldCBtZXRyaWNzKEkpe3RoaXMuI2M9SX0jZD0oQ3IodGhpcyxHKSxDcih0aGlzLFIsITEpKTtnZXQgdGVybWluYWxSZWFkeSgpe3JldHVybiB0aGlzLiNkfXNldCB0ZXJtaW5hbFJlYWR5KEkpe3RoaXMuI2Q9SX1sb2dCdWZmZXI9KENyKHRoaXMsVSksW10pO3RyYWlsaW5nSGlkZGVuQ291bnQ9MDt0ZXJtaW5hbD1udWxsO2ZpdEFkZG9uPW51bGw7c2VhcmNoQWRkb249bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtkb210b29sc0luc3RhbmNlPW51bGw7cmF0ZUJ1ZmZlcj1bXTtyYXRlSW50ZXJ2YWw9bnVsbDtzdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAxNTBweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmZpbHRlci10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MyUgNDclKSIsImhzbCg0NSA5MyUgNDclKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDklKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2xzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciAueHRlcm0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubWV0cmljOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAubWV0cmljLmVycm9yOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy53YXJuOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyNSA5NSUgNTMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5pbmZvOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyMjIuMiA0Ny40JSA1MS4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuc3VjY2Vzczo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAubWV0cmljLmRlYnVnOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDYzLjklKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlOjpiZWZvcmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0ci5zZXR1cCgpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlIC5oZWFkaW5nPSR7dGhpcy5sYWJlbH0+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggbG9ncy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke0k9PnRoaXMuaGFuZGxlU2VhcmNoSW5wdXQoSSl9CiAgICAgICAgICAgICAgQGtleWRvd249JHtJPT50aGlzLmhhbmRsZVNlYXJjaEtleWRvd24oSSl9CiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1uYXYiPgogICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2VhcmNoUHJldmlvdXMoKX0gdGl0bGU9IlByZXZpb3VzIG1hdGNoIj7ihpE8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaE5leHQoKX0gdGl0bGU9Ik5leHQgbWF0Y2giPuKGkzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItdG9nZ2xlICR7dGhpcy5maWx0ZXJNb2RlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVGaWx0ZXJNb2RlKCl9CiAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5maWx0ZXJNb2RlPyJTd2l0Y2ggdG8gaGlnaGxpZ2h0IG1vZGUiOiJTd2l0Y2ggdG8gZmlsdGVyIG1vZGUifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJNb2RlPyJGaWx0ZXIiOiJIaWdobGlnaHQifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wtYnV0dG9uICR7dGhpcy5hdXRvU2Nyb2xsPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVBdXRvU2Nyb2xsKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBBdXRvIFNjcm9sbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29udHJvbC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNsZWFyTG9ncygpfT4KICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnRlcm1pbmFsUmVhZHk/IiI6d2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nIHRlcm1pbmFsLi4uPC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnNob3dNZXRyaWNzP3dgCiAgICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJtZXRyaWNzLWJhciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIGVycm9yIj5lcnJvcnM6ICR7dGhpcy5tZXRyaWNzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgd2FybiI+d2FybnM6ICR7dGhpcy5tZXRyaWNzLndhcm59PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBpbmZvIj5pbmZvOiAke3RoaXMubWV0cmljcy5pbmZvfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgc3VjY2VzcyI+c3VjY2VzczogJHt0aGlzLm1ldHJpY3Muc3VjY2Vzc308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIGRlYnVnIj5kZWJ1ZzogJHt0aGlzLm1ldHJpY3MuZGVidWd9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyByYXRlIj4ke3RoaXMubWV0cmljcy5yYXRlLnRvRml4ZWQoMSl9IGxvZ3Mvc2VjPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5kb210b29sc0luc3RhbmNlPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVRlcm1pbmFsKCksdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg9PT0wKXt0aGlzLmxvZ0J1ZmZlcj1bLi4udGhpcy5sb2dFbnRyaWVzXTtmb3IobGV0IEkgb2YgdGhpcy5sb2dFbnRyaWVzKXRoaXMudXBkYXRlTWV0cmljcyhJLmxldmVsKSx0aGlzLndyaXRlTG9nRW50cnkoSSl9ZWxzZSBpZih0aGlzLmxvZ0VudHJpZXMubGVuZ3RoPjAmJnRoaXMubG9nQnVmZmVyLmxlbmd0aD4wKXtsZXQgST1uZXcgU2V0KHRoaXMubG9nQnVmZmVyLm1hcChxPT5gJHtxLnRpbWVzdGFtcH18JHtxLm1lc3NhZ2V9YCkpO2ZvcihsZXQgcSBvZiB0aGlzLmxvZ0VudHJpZXMpSS5oYXMoYCR7cS50aW1lc3RhbXB9fCR7cS5tZXNzYWdlfWApfHwodGhpcy5sb2dCdWZmZXIucHVzaChxKSx0aGlzLnVwZGF0ZU1ldHJpY3MocS5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KHEpKX19YXN5bmMgaW5pdGlhbGl6ZVRlcm1pbmFsKCl7bGV0IEk9T3MuZ2V0SW5zdGFuY2UoKSxbcSxjZSx1ZV09YXdhaXQgUHJvbWlzZS5hbGwoW0kubG9hZFh0ZXJtKCksSS5sb2FkWHRlcm1GaXRBZGRvbigpLEkubG9hZFh0ZXJtU2VhcmNoQWRkb24oKV0pO2F3YWl0IHRoaXMuaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCksdGhpcy50ZXJtaW5hbD1uZXcgcS5UZXJtaW5hbCh7Y3Vyc29yQmxpbms6ITEsZGlzYWJsZVN0ZGluOiEwLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6IidTRiBNb25vJywgJ01vbmFjbycsICdDb25zb2xhcycsICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2UiLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZSgpLHNjcm9sbGJhY2s6dGhpcy5tYXhFbnRyaWVzLGNvbnZlcnRFb2w6ITB9KSx0aGlzLmZpdEFkZG9uPW5ldyBjZS5GaXRBZGRvbix0aGlzLnNlYXJjaEFkZG9uPW5ldyB1ZS5TZWFyY2hBZGRvbix0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmZpdEFkZG9uKSx0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLnNlYXJjaEFkZG9uKTtsZXQgWT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRlcm1pbmFsLWNvbnRhaW5lciIpO3RoaXMudGVybWluYWwub3BlbihZKSxhd2FpdCBuZXcgUHJvbWlzZShRPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUSkpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uPy5maXQoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShZKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249dGhpcy5kb210b29sc0luc3RhbmNlLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKCgpPT57dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUoKSl9KSx0aGlzLnJhdGVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+dGhpcy5jYWxjdWxhdGVSYXRlKCksMWUzKSx0aGlzLnRlcm1pbmFsUmVhZHk9ITA7Zm9yKGxldCBRIG9mIHRoaXMubG9nQnVmZmVyKXRoaXMud3JpdGVMb2dFbnRyeShRKX11cGRhdGVkKEkpe2lmKHN1cGVyLnVwZGF0ZWQoSSksSS5oYXMoImdvQnJpZ2h0IikmJnRoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCkpLEkuaGFzKCJsb2dFbnRyaWVzIikmJnRoaXMudGVybWluYWxSZWFkeSYmdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wKXtsZXQgcT1JLmdldCgibG9nRW50cmllcyIpfHxbXSxjZT10aGlzLmxvZ0VudHJpZXM7aWYocS5sZW5ndGg9PT1jZS5sZW5ndGgmJnEubGVuZ3RoPjAmJnFbcS5sZW5ndGgtMV0udGltZXN0YW1wPT09Y2VbY2UubGVuZ3RoLTFdLnRpbWVzdGFtcCYmcVtxLmxlbmd0aC0xXS5tZXNzYWdlPT09Y2VbY2UubGVuZ3RoLTFdLm1lc3NhZ2UpcmV0dXJuO2lmKGNlLmxlbmd0aD5xLmxlbmd0aCYmcS5sZW5ndGg+MCYmcVtxLmxlbmd0aC0xXS50aW1lc3RhbXA9PT1jZVtxLmxlbmd0aC0xXS50aW1lc3RhbXAmJnFbcS5sZW5ndGgtMV0ubWVzc2FnZT09PWNlW3EubGVuZ3RoLTFdLm1lc3NhZ2Upe2xldCB1ZT1jZS5zbGljZShxLmxlbmd0aCk7Zm9yKGxldCBZIG9mIHVlKXRoaXMubG9nQnVmZmVyLnB1c2goWSksdGhpcy51cGRhdGVNZXRyaWNzKFkubGV2ZWwpLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksKCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5fHx0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihZKSkmJnRoaXMud3JpdGVMb2dFbnRyeShZKTtyZXR1cm59dGhpcy5sb2dCdWZmZXI9Wy4uLmNlXSx0aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCl9fWdldFRlcm1pbmFsVGhlbWUoKXtyZXR1cm4hdGhpcy5nb0JyaWdodD97YmFja2dyb3VuZDoiIzBhMGEwYSIsZm9yZWdyb3VuZDoiI2UwZTBlMCIsY3Vyc29yOiIjZTBlMGUwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiIjNDA0MDQwIixibGFjazoiIzAwMDAwMCIscmVkOiIjZmY1NTU1IixncmVlbjoiIzUwZmE3YiIseWVsbG93OiIjZjFmYThjIixibHVlOiIjNjI3MmE0IixtYWdlbnRhOiIjZmY3OWM2IixjeWFuOiIjOGJlOWZkIix3aGl0ZToiI2Y4ZjhmMiIsYnJpZ2h0QmxhY2s6IiM2MjcyYTQiLGJyaWdodFJlZDoiI2ZmNmU2ZSIsYnJpZ2h0R3JlZW46IiM2OWZmOTQiLGJyaWdodFllbGxvdzoiI2ZmZmZhNSIsYnJpZ2h0Qmx1ZToiI2Q2YWNmZiIsYnJpZ2h0TWFnZW50YToiI2ZmOTJkZiIsYnJpZ2h0Q3lhbjoiI2E0ZmZmZiIsYnJpZ2h0V2hpdGU6IiNmZmZmZmYifTp7YmFja2dyb3VuZDoiI2ZmZmZmZiIsZm9yZWdyb3VuZDoiIzMzMzMzMyIsY3Vyc29yOiIjMzMzMzMzIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiIjYWRkNmZmIixibGFjazoiIzAwMDAwMCIscmVkOiIjY2QzMTMxIixncmVlbjoiIzAwYmMwMCIseWVsbG93OiIjOTQ5ODAwIixibHVlOiIjMDQ1MWE1IixtYWdlbnRhOiIjYmMwNWJjIixjeWFuOiIjMDU5OGJjIix3aGl0ZToiIzU1NTU1NSIsYnJpZ2h0QmxhY2s6IiM2NjY2NjYiLGJyaWdodFJlZDoiI2NkMzEzMSIsYnJpZ2h0R3JlZW46IiMxNGNlMTQiLGJyaWdodFllbGxvdzoiI2I1YmEwMCIsYnJpZ2h0Qmx1ZToiIzA0NTFhNSIsYnJpZ2h0TWFnZW50YToiI2JjMDViYyIsYnJpZ2h0Q3lhbjoiIzA1OThiYyIsYnJpZ2h0V2hpdGU6IiNhNWE1YTUifX1hc3luYyBpbmplY3RYdGVybVN0eWxlc0ludG9TaGFkb3coKXtsZXQgST0ieHRlcm0tc2hhZG93LXN0eWxlcyI7aWYodGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKEkpKXJldHVybjtsZXQgcT1gJHtCMX0veHRlcm1AJHtGMS54dGVybX0vY3NzL3h0ZXJtLmNzc2AsdWU9YXdhaXQoYXdhaXQgZmV0Y2gocSkpLnRleHQoKSxZPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7WS5pZD1JLFkudGV4dENvbnRlbnQ9dWUsdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKFkpfWFkZExvZyhJLHEsY2Upe2xldCB1ZT17dGltZXN0YW1wOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxsZXZlbDpJLG1lc3NhZ2U6cSxzb3VyY2U6Y2V9O3RoaXMubG9nQnVmZmVyLnB1c2godWUpLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnk/dGhpcy53cml0ZUxvZ0VudHJ5KHVlKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcih1ZSk/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeSh1ZSkpOnRoaXMudXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpLHRoaXMudXBkYXRlTWV0cmljcyh1ZS5sZXZlbCl9dXBkYXRlTG9nKEkpe2lmKEkpZm9yKGxldCBxIG9mIEkpdGhpcy5sb2dCdWZmZXIucHVzaChxKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShxKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihxKT8odGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsdGhpcy53cml0ZUxvZ0VudHJ5KHEpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MocS5sZXZlbCl9dXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpe3RoaXMudGVybWluYWwmJih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ+MCYmdGhpcy50ZXJtaW5hbC53cml0ZSgiXHgxQlsxQVx4MUJbMktcciIpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudCsrLHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1lbnRyeU1hdGNoZXNGaWx0ZXIoSSl7aWYoIXRoaXMuc2VhcmNoUXVlcnkpcmV0dXJuITA7bGV0IHE9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiBJLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKXx8SS5sZXZlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpfHwoSS5zb3VyY2U/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSk/PyExKX13cml0ZUxvZ0VudHJ5KEkpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgcT10aGlzLmZvcm1hdExvZ0VudHJ5KEkpO3RoaXMudGVybWluYWwud3JpdGVsbihxKSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX1mb3JtYXRMb2dFbnRyeShJKXtsZXQgcT10aGlzLmZvcm1hdFRpbWVzdGFtcChJLnRpbWVzdGFtcCksY2U9e2RlYnVnOiJceDFCWzkwbSIsaW5mbzoiXHgxQlszNm0iLHdhcm46Ilx4MUJbMzNtIixlcnJvcjoiXHgxQlszMW0iLHN1Y2Nlc3M6Ilx4MUJbMzJtIn0sdWU9Ilx4MUJbMG0iLFk9Ilx4MUJbMm0iLFE9YCR7Y2VbSS5sZXZlbF19WyR7SS5sZXZlbC50b1VwcGVyQ2FzZSgpLnBhZEVuZCg3KX1dJHt1ZX1gLEo9SS5zb3VyY2U/YCR7WX1bJHtJLnNvdXJjZX1dJHt1ZX0gYDoiIixaPXRoaXMuYXBwbHlIaWdobGlnaHRzKEkubWVzc2FnZSk7cmV0dXJuYCR7WX0ke3F9JHt1ZX0gJHtRfSAke0p9JHtafWB9Zm9ybWF0VGltZXN0YW1wKEkpe3JldHVybiBuZXcgRGF0ZShJKS50b0xvY2FsZVRpbWVTdHJpbmcoImVuLVVTIix7aG91cjEyOiExLGhvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsc2Vjb25kOiIyLWRpZ2l0IixmcmFjdGlvbmFsU2Vjb25kRGlnaXRzOjN9KX1hcHBseUhpZ2hsaWdodHMoSSl7bGV0IHE9Wy4uLnRoaXMuaGlnaGxpZ2h0S2V5d29yZHNdO2lmKHRoaXMuZmlsdGVyTW9kZSYmdGhpcy5zZWFyY2hRdWVyeSYmcS5wdXNoKHRoaXMuc2VhcmNoUXVlcnkpLHEubGVuZ3RoPT09MClyZXR1cm4gSTtsZXQgY2U9STtmb3IobGV0IHVlIG9mIHEpe2xldCBZPXVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksUT1uZXcgUmVnRXhwKGAoJHtZfSlgLCJnaSIpO2NlPWNlLnJlcGxhY2UoUSwiXHgxQls0M21ceDFCWzMwbSQxXHgxQlswbSIpfXJldHVybiBjZX13cml0ZVJhdyhJKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC53cml0ZShJKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfXdyaXRlbG5SYXcoSSl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGVsbihJKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWhhbmRsZVNlYXJjaElucHV0KEkpe2xldCBjZT1JLnRhcmdldC52YWx1ZSx1ZT10aGlzLnNlYXJjaFF1ZXJ5IT09Y2U7dGhpcy5zZWFyY2hRdWVyeT1jZSx0aGlzLmZpbHRlck1vZGUmJnVlP3RoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKTp0aGlzLnNlYXJjaFF1ZXJ5JiZ0aGlzLnNlYXJjaEFkZG9uPy5maW5kTmV4dCh0aGlzLnNlYXJjaFF1ZXJ5KX1oYW5kbGVTZWFyY2hLZXlkb3duKEkpe0kua2V5PT09IkVudGVyIj9JLnNoaWZ0S2V5P3RoaXMuc2VhcmNoUHJldmlvdXMoKTp0aGlzLnNlYXJjaE5leHQoKTpJLmtleT09PSJFc2NhcGUiJiYodGhpcy5zZWFyY2hRdWVyeT0iIixJLnRhcmdldC52YWx1ZT0iIil9c2VhcmNoKEkpe3RoaXMuc2VhcmNoUXVlcnk9SSx0aGlzLnNlYXJjaEFkZG9uPy5maW5kTmV4dChJKX1zZWFyY2hOZXh0KCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9c2VhcmNoUHJldmlvdXMoKXt0aGlzLnNlYXJjaFF1ZXJ5JiZ0aGlzLnNlYXJjaEFkZG9uPy5maW5kUHJldmlvdXModGhpcy5zZWFyY2hRdWVyeSl9dG9nZ2xlQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbD0hdGhpcy5hdXRvU2Nyb2xsLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfXRvZ2dsZUZpbHRlck1vZGUoKXt0aGlzLmZpbHRlck1vZGU9IXRoaXMuZmlsdGVyTW9kZSx0aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCl9cmVSZW5kZXJGaWx0ZXJlZExvZ3MoKXtpZih0aGlzLnRlcm1pbmFsKXtpZih0aGlzLnRlcm1pbmFsLmNsZWFyKCksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnkpZm9yKGxldCBJIG9mIHRoaXMubG9nQnVmZmVyKXtsZXQgcT10aGlzLmZvcm1hdExvZ0VudHJ5KEkpO3RoaXMudGVybWluYWwud3JpdGVsbihxKX1lbHNle2xldCBJPTA7Zm9yKGxldCBxIG9mIHRoaXMubG9nQnVmZmVyKWlmKHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKHEpKXtJPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoSSksST0wKTtsZXQgY2U9dGhpcy5mb3JtYXRMb2dFbnRyeShxKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oY2UpfWVsc2UgSSsrO0k+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihJKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9SSl9dGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9fXdyaXRlSGlkZGVuUGxhY2Vob2xkZXIoSSl7bGV0IHE9Ilx4MUJbMm0iLGNlPSJceDFCWzBtIix1ZT1JPT09MT8iWzEgbG9nIGxpbmUgaGlkZGVuIGJ5IGZpbHRlciAuLi5dIjpgWyR7SX0gbG9nIGxpbmVzIGhpZGRlbiBieSBmaWx0ZXIgLi4uXWA7dGhpcy50ZXJtaW5hbD8ud3JpdGVsbihgJHtxfSR7dWV9JHtjZX1gKX1jbGVhckxvZ3MoKXt0aGlzLnRlcm1pbmFsPy5jbGVhcigpLHRoaXMubG9nQnVmZmVyPVtdLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMucmVzZXRNZXRyaWNzKCl9c2Nyb2xsVG9Cb3R0b20oKXt0aGlzLnRlcm1pbmFsPy5zY3JvbGxUb0JvdHRvbSgpfXVwZGF0ZU1ldHJpY3MoSSl7dGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MsW0ldOnRoaXMubWV0cmljc1tJXSsxLHRvdGFsOnRoaXMubWV0cmljcy50b3RhbCsxfSx0aGlzLnJlY29yZExvZ0V2ZW50KCl9cmVjb3JkTG9nRXZlbnQoKXt0aGlzLnJhdGVCdWZmZXIucHVzaChEYXRlLm5vdygpKX1jYWxjdWxhdGVSYXRlKCl7bGV0IEk9RGF0ZS5ub3coKTt0aGlzLnJhdGVCdWZmZXI9dGhpcy5yYXRlQnVmZmVyLmZpbHRlcihjZT0+SS1jZTwxZTQpO2xldCBxPXRoaXMucmF0ZUJ1ZmZlci5sZW5ndGgvMTA7cSE9PXRoaXMubWV0cmljcy5yYXRlJiYodGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MscmF0ZTpxfSl9cmVzZXRNZXRyaWNzKCl7dGhpcy5tZXRyaWNzPXtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9LHRoaXMucmF0ZUJ1ZmZlcj1bXX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiZ0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnJhdGVJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnJhdGVJbnRlcnZhbCksdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5kaXNwb3NlKCl9c3RhdGlje0NyKHIsdCl9fTtyZXR1cm4gbWU9cn0pKCl9KTt2YXIgR2NhPWYoKCk9PntXY2EoKX0pO3ZhciBZY2EsS2NhPWYoKCk9PntsZSgpO05hKCk7Z1FlKCk7WWNhPXMoKCk9PntsZXQgYT1be25hbWU6IkxhdGVuY3kiLG1heDoxMDB9LHtuYW1lOiJUaHJvdWdocHV0IixtYXg6MTAwfSx7bmFtZToiQXZhaWxhYmlsaXR5IixtYXg6MTAwfSx7bmFtZToiRXJyb3IgUmF0ZSIsbWF4OjEwMH0se25hbWU6IlNhdHVyYXRpb24iLG1heDoxMDB9LHtuYW1lOiJTZWN1cml0eSIsbWF4OjEwMH1dLGU9W3tuYW1lOiJTZXJ2aWNlIEEiLHZhbHVlczpbODUsOTAsOTksMTIsNDUsNzhdfSx7bmFtZToiU2VydmljZSBCIix2YWx1ZXM6WzcwLDY1LDk1LDI4LDYwLDkwXX1dLHQ9W3tuYW1lOiJTcGVlZCIsbWF4OjEwfSx7bmFtZToiUmVsaWFiaWxpdHkiLG1heDoxMH0se25hbWU6IkNvbWZvcnQiLG1heDoxMH0se25hbWU6IlNhZmV0eSIsbWF4OjEwfSx7bmFtZToiQ29zdCIsbWF4OjEwfV0scj1be25hbWU6IlJhdGluZyIsdmFsdWVzOls4LjUsOS4yLDcsOS41LDZdfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBpPT57bGV0IG89aS5xdWVyeVNlbGVjdG9yKCIjY29tcGFyaXNvbi1jaGFydCIpLG49aS5xdWVyeVNlbGVjdG9yKCIjc2luZ2xlLWNoYXJ0Iik7aS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goZD0+e2QudGV4dD8udHJpbSgpPT09IlJhbmRvbWl6ZSImJmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57by5zZXJpZXM9ZS5tYXAocD0+KHsuLi5wLHZhbHVlczpwLnZhbHVlcy5tYXAoKCk9Pk1hdGgucm91bmQoMjArTWF0aC5yYW5kb20oKSo4MCkpfSkpLG4uc2VyaWVzPXIubWFwKHA9Pih7Li4ucCx2YWx1ZXM6cC52YWx1ZXMubWFwKCgpPT5NYXRoLnJvdW5kKCgyK01hdGgucmFuZG9tKCkqOCkqMTApLzEwKX0pKX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7WGAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1yYWRhcgogICAgICAgICAgICBpZD0iY29tcGFyaXNvbi1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgSGVhbHRoIENvbXBhcmlzb24ifQogICAgICAgICAgICAuaW5kaWNhdG9ycz0ke2F9CiAgICAgICAgICAgIC5zZXJpZXM9JHtlfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1yYWRhcj4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1yYWRhcgogICAgICAgICAgICBpZD0ic2luZ2xlLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBSYXRpbmcifQogICAgICAgICAgICAuaW5kaWNhdG9ycz0ke3R9CiAgICAgICAgICAgIC5zZXJpZXM9JHtyfQogICAgICAgICAgICAuZmlsbEFyZWE9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtcmFkYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgUmFkYXIgY2hhcnQgZm9yIG11bHRpLWRpbWVuc2lvbmFsIGNvbXBhcmlzb24g4oCiCiAgICAgICAgICBTdXBwb3J0cyBtdWx0aXBsZSBvdmVybGF5IHNlcmllcyBhbmQgY29uZmlndXJhYmxlIGZpbGwg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBaY2EsWGNhPWYoKCk9PntsZSgpO1lXKCk7WmNhPVsuLi5QNCxYYGBdfSk7dmFyIFFjYSxKY2E9ZigoKT0+e2xlKCk7UWNhPXMoYT0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke2EubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnRSYWRhciIpfSk7dmFyIEtXLFRjLGUwYSxnUWU9ZigoKT0+e2xlKCk7R1coKTtLY2EoKTtYY2EoKTtKY2EoKTtWbSgpO0tXPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxUYz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sZTBhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1jaGFydC1yYWRhciIpXSxlLHQ9W10scixpPV9jLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzQ2hhcnRSYWRhciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bJCh7dHlwZTpBcnJheX0pXSx1PVskKHt0eXBlOkJvb2xlYW59KV0seD1bJCh7dHlwZTpCb29sZWFufSldLEtXKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kaWNhdG9ycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iaW5kaWNhdG9ycyJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLmluZGljYXRvcnMsImdldCIpLHNldDpzKChDLE4pPT57Qy5pbmRpY2F0b3JzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbixsKSxLVyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4ic2VyaWVzImluIEMsImhhcyIpLGdldDpzKEM9PkMuc2VyaWVzLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0Muc2VyaWVzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYyxwKSxLVyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+InNob3dMZWdlbmQiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0Muc2hvd0xlZ2VuZD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sdiksS1codGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxsQXJlYSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iZmlsbEFyZWEiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5maWxsQXJlYSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmZpbGxBcmVhPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxLVyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLHk9cj1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPVljYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9VGModGhpcyxuLFtdKTtnZXQgaW5kaWNhdG9ycygpe3JldHVybiB0aGlzLiNlfXNldCBpbmRpY2F0b3JzKGspe3RoaXMuI2U9a30jdD0oVGModGhpcyxsKSxUYyh0aGlzLGMsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcyhrKXt0aGlzLiN0PWt9I2E9KFRjKHRoaXMscCksVGModGhpcyxtLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xlZ2VuZChrKXt0aGlzLiNhPWt9I3I9KFRjKHRoaXMsdiksVGModGhpcyxiLCEwKSk7Z2V0IGZpbGxBcmVhKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGZpbGxBcmVhKGspe3RoaXMuI3I9a31zdGF0aWMgc3R5bGVzPVpjYTtyZW5kZXIoKXtyZXR1cm4gUWNhKHRoaXMpfWFzeW5jIHVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihrLmhhcygiaW5kaWNhdG9ycyIpfHxrLmhhcygic2VyaWVzIil8fGsuaGFzKCJzaG93TGVnZW5kIil8fGsuaGFzKCJmaWxsQXJlYSIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0IGs9QTQodGhpcy5nb0JyaWdodCksQz0kNCh0aGlzLmdvQnJpZ2h0KSxOPXRoaXMuZ29CcmlnaHQ/LjE6LjE1LF89dGhpcy5zZXJpZXMubWFwKCh6LE8pPT57bGV0IFQ9ei5jb2xvcnx8Q1tPJUMubGVuZ3RoXTtyZXR1cm57bmFtZTp6Lm5hbWUsdmFsdWU6ei52YWx1ZXMsaXRlbVN0eWxlOntjb2xvcjpULGJvcmRlckNvbG9yOlQsYm9yZGVyV2lkdGg6MX0sbGluZVN0eWxlOntjb2xvcjpULHdpZHRoOjEuNX0sYXJlYVN0eWxlOnRoaXMuZmlsbEFyZWE/e2NvbG9yOkQ0KFQsTil9OnZvaWQgMCxzeW1ib2w6ImNpcmNsZSIsc3ltYm9sU2l6ZTo1fX0pO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIn0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwfTp7c2hvdzohMX0scmFkYXI6e2luZGljYXRvcjp0aGlzLmluZGljYXRvcnMubWFwKHo9Pih7bmFtZTp6Lm5hbWUsbWF4OnoubWF4fSkpLHNoYXBlOiJwb2x5Z29uIixzcGxpdE51bWJlcjo0LGF4aXNOYW1lOntjb2xvcjprLnRleHRTZWNvbmRhcnksZm9udFNpemU6MTF9LHNwbGl0QXJlYTp7YXJlYVN0eWxlOntjb2xvcjpbay5iZ1RlcnRpYXJ5LGsuYmdTZWNvbmRhcnldfX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOmsuYm9yZGVyRGVmYXVsdH19LGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOmsuYm9yZGVyRGVmYXVsdH19fSxzZXJpZXM6W3t0eXBlOiJyYWRhciIsZGF0YTpfLGVtcGhhc2lzOntsaW5lU3R5bGU6e3dpZHRoOjN9fX1dfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVGModGhpcyxnKX1zdGF0aWN7VGMocix0KX19O3JldHVybiB5PXJ9KSgpfSk7dmFyIHQwYT1mKCgpPT57Z1FlKCl9KTt2YXIgYTBhPWYoKCk9PntmY2EoKTtDY2EoKTtFY2EoKTtxY2EoKTtHY2EoKTt0MGEoKX0pO3ZhciByMGEsczBhPWYoKCk9PntsZSgpO3IwYT1zKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBiUWUsWlcsaTBhLHZRZT1mKCgpPT57czBhKCk7bGUoKTttcygpO1FlKCk7UmgoKTtlYSgpO1hyKCk7U2MoKTtRcigpO2JRZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sWlc9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGkwYT0oKCk9PntsZXQgYT1baWUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdO3ZhciB1PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzRGF0YXZpZXdDb2RlYm94Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxkPVskKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGJRZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJwcm9nTGFuZyJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LnByb2dMYW5nLCJnZXQiKSxzZXQ6cygodix4KT0+e3YucHJvZ0xhbmc9eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLGJRZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvZGVUb0Rpc3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImNvZGVUb0Rpc3BsYXkiaW4gdiwiaGFzIiksZ2V0OnModj0+di5jb2RlVG9EaXNwbGF5LCJnZXQiKSxzZXQ6cygodix4KT0+e3YuY29kZVRvRGlzcGxheT14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksYlFlKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89cjBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3IiwiV29ya3NwYWNlIl07I2U9WlcodGhpcyxuLCJ0eXBlc2NyaXB0Iik7Z2V0IHByb2dMYW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2dMYW5nKG0pe3RoaXMuI2U9bX0jdD0oWlcodGhpcyxsKSxaVyh0aGlzLGMsIiIpKTtnZXQgY29kZVRvRGlzcGxheSgpe3JldHVybiB0aGlzLiN0fXNldCBjb2RlVG9EaXNwbGF5KG0pe3RoaXMuI3Q9bX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXNdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0ci5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuYXBwYmFyIC5maWxlTmFtZSB7CiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuYm90dG9tQmFyIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VzTGFiZWwgewogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubGFuZ3VhZ2VMYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmhsanMta2V5d29yZCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmNvZGVncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bzsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVDb3VudGVyOmxhc3QtY2hpbGQgewogICAgICAgICAgb3BhY2l0eTogNTAlOwogICAgICAgIH0KCiAgICAgICAgcHJlIHsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMjRweDsKICAgICAgICB9CgogICAgICAgIGNvZGUgewogICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIH0KCiAgICAgICAgY29kZSwKICAgICAgICBjb2RlICosCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7CiAgICAgICAgICBmb250LWZhbWlseTogJHtNZn07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1zdHJpbmcgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtcGFyYW1zIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1jb21tZW50IHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1udW1iZXIgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWxpdGVyYWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWF0dHIgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOGI1Y2Y2IiwiI2E3OGJmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXZhcmlhYmxlIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGVlcy10aWxlCiAgICAgICAgQGNvbnRleHRtZW51PSIke209Pnt0YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhtLFt7bmFtZToiQWJvdXQiLGljb25OYW1lOiJjaXJjbGVJbmZvIixhY3Rpb246cyhhc3luYygpPT5udWxsLCJhY3Rpb24iKX1dKX19IgogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWUiPmluZGV4LnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZU51bWJlcnMiPgogICAgICAgICAgICAkeygoKT0+e2xldCBtPTA7cmV0dXJuIHRoaXMuY29kZVRvRGlzcGxheS5zcGxpdChgCmApLm1hcCh2PT4obSsrLHdgPGRpdiBjbGFzcz0ibGluZUNvdW50ZXIiPiR7bX08L2Rpdj5gKSl9KSgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cHJlPjxjb2RlPjwvY29kZT48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KFpXKHRoaXMscCksIiIpO2hpZ2hsaWdodEpzPW51bGw7YXN5bmMgdXBkYXRlZChtKXtzdXBlci51cGRhdGVkKG0pLGNvbnNvbGUubG9nKCJoaWdobGlnaHRpbmcgbm93IiksY29uc29sZS5sb2codGhpcy5jaGlsZE5vZGVzKTtsZXQgdj1bXTt0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaChnPT57Zy5ub2RlTmFtZT09PSIjdGV4dCImJnYucHVzaChnKX0pLHRoaXMuY29kZVRvRGlzcGxheSYmdGhpcy5jb2RlVG9EaXNwbGF5IT09dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1NMy5ub3JtYWxpemUodGhpcy5jb2RlVG9EaXNwbGF5KS50cmltU3RhcnQoKSksdlswXSYmdlswXS53aG9sZVRleHQmJiF0aGlzLmNvZGVUb0Rpc3BsYXkmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1NMy5ub3JtYWxpemUodlswXS53aG9sZVRleHQpLnRyaW1TdGFydCgpLHRoaXMuY29kZVRvRGlzcGxheT10aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSksYXdhaXQgSHQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBPcy5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgeD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiY29kZSIpLGI9dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUse2xhbmd1YWdlOnRoaXMucHJvZ0xhbmcsaWdub3JlSWxsZWdhbHM6ITB9KTt4LmlubmVySFRNTD1iLnZhbHVlfXN0YXRpY3taVyhyLHQpfX07cmV0dXJuIHU9cn0pKCl9KTt2YXIgbzBhPWYoKCk9Pnt2UWUoKX0pO3ZhciBuMGEsbDBhPWYoKCk9PntsZSgpOyRuKCk7bjBhPXMoKCk9PndgIDxzdHlsZT4KICAgIC5kZW1vIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICB9CiAgICAKICAgIC5kZW1vLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBnYXA6IDI0cHg7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxNnB4OwogICAgfQogICAgCiAgICAuZGVtby10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLmRlbW8tbm90ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtbyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLW5vdGUiPgogICAgICBSaWdodC1jbGljayBvbiBhbnkgZGV0YWlsIHJvdyB0byBjb3B5IHRoZSB2YWx1ZSwga2V5LCBvciBrZXk6dmFsdWUgY29tYmluYXRpb24KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5TZXJ2aWNlIEhlYWx0aCBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjEiLG5hbWU6IkFQSSBHYXRld2F5IFNlcnZpY2UiLGxhc3RVcGRhdGVkOkRhdGUubm93KCksY29tYmluZWRTdGF0dXM6Im9rIixjb21iaW5lZFN0YXR1c1RleHQ6IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixkZXRhaWxzOlt7bmFtZToiUmVzcG9uc2UgVGltZSIsdmFsdWU6IjQ1bXMgKGF2ZykiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IldpdGhpbiBub3JtYWwgcmFuZ2UifSx7bmFtZToiVXB0aW1lIix2YWx1ZToiOTkuOTklICgzMCBkYXlzKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiRXhjZWxsZW50IHVwdGltZSJ9LHtuYW1lOiJBY3RpdmUgQ29ubmVjdGlvbnMiLHZhbHVlOiIxLDIzNCAvIDEwLDAwMCIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiTm9ybWFsIGxvYWQifSx7bmFtZToiU1NMIENlcnRpZmljYXRlIix2YWx1ZToiVmFsaWQgdW50aWwgMjAyNC0xMi0zMSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiQ2VydGlmaWNhdGUgdmFsaWQifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+RGF0YWJhc2UgQ2x1c3RlciBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjIiLG5hbWU6IlBvc3RncmVTUUwgQ2x1c3RlciIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKS0zNmU1LGNvbWJpbmVkU3RhdHVzOiJwYXJ0bHlfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiTWlub3IgaXNzdWVzIGRldGVjdGVkIixkZXRhaWxzOlt7bmFtZToiUHJpbWFyeSBOb2RlIix2YWx1ZToiZGItcHJpbWFyeS0wMSAoaGVhbHRoeSkiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik9wZXJhdGluZyBub3JtYWxseSJ9LHtuYW1lOiJSZXBsaWNhIExhZyIsdmFsdWU6IjIuNSBzZWNvbmRzIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiU2xpZ2h0bHkgZWxldmF0ZWQifSx7bmFtZToiRGlzayBVc2FnZSIsdmFsdWU6Ijc4JSAoMzEyR0IgLyA0MDBHQikiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJBcHByb2FjaGluZyB0aHJlc2hvbGQifSx7bmFtZToiQ29ubmVjdGlvbiBQb29sIix2YWx1ZToiODkgLyAxMDAgY29ubmVjdGlvbnMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IldpdGhpbiBsaW1pdHMifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+QnVpbGQgUGlwZWxpbmUgU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIzIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKS04NjRlNSxjb21iaW5lZFN0YXR1czoibm90X29rIixjb21iaW5lZFN0YXR1c1RleHQ6IkJ1aWxkIGZhaWx1cmUiLGRldGFpbHM6W3tuYW1lOiJMYXN0IEJ1aWxkIix2YWx1ZToiQnVpbGQgIzEyMzQgLSBGYWlsZWQiLHN0YXR1czoibm90X29rIixzdGF0dXNUZXh0OiJUZXN0IGZhaWx1cmVzIn0se25hbWU6IkZhaWxlZCBUZXN0cyIsdmFsdWU6IjMgdGVzdHMgZmFpbGVkOiBhdXRoLnNwZWMudHMsIHVzZXIuc3BlYy50cywgYXBpLnNwZWMudHMiLHN0YXR1czoibm90X29rIixzdGF0dXNUZXh0OiJVbml0IHRlc3QgZmFpbHVyZXMifSx7bmFtZToiQ29kZSBDb3ZlcmFnZSIsdmFsdWU6IjgyLjUlICh0YXJnZXQ6IDg1JSkiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJCZWxvdyB0YXJnZXQifSx7bmFtZToiQnVpbGQgRHVyYXRpb24iLHZhbHVlOiIxMm0gMzRzIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgZHVyYXRpb24ifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PmAsImRlbW9GdW5jIil9KTt2YXIgYzBhLHhRZSxkMGEsdTBhPWYoKCk9PntMMSgpO1dzKCk7bDBhKCk7bGUoKTskbigpO1hyKCk7UWUoKTtRcigpO2MwYT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0seFFlPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxkMGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzRGF0YXZpZXdTdGF0dXNvYmplY3QiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxjMGEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXNPYmplY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+InN0YXR1c09iamVjdCJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLnN0YXR1c09iamVjdCwiZ2V0Iiksc2V0OnMoKHAsdSk9PntwLnN0YXR1c09iamVjdD11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksYzBhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89bjBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9eFFlKHRoaXMsbix2b2lkIDApO2dldCBzdGF0dXNPYmplY3QoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RhdHVzT2JqZWN0KGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdCB7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklIC8gMC4yKSIsImhzbCgwIDAlIDQ1LjElIC8gMC4yKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3Qub2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMikiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm5vdF9vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4yKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5wYXJ0bHlfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMikiLCJoc2woMjUgOTUlIDYzJSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMDQpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLnN0YXR1c2RvdCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC5sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYm90dG9tQmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQmFyIC5zdGF0dXNMYWJlbCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke3RoaXMuc3RhdHVzT2JqZWN0Py5jb21iaW5lZFN0YXR1c30iPjwvZGl2PgogICAgICAgICAgPGgxPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lm5hbWV8fCJObyBzdGF0dXMgb2JqZWN0IGFzc2lnbmVkIn08L2gxPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29weU1haW4iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weUFzSnNvbn0+Q29weSBKU09OPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnN0YXR1c09iamVjdD8uZGV0YWlscz8ubWFwKGM9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke3A9PntwLnByZXZlbnREZWZhdWx0KCksdGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMocCxbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOnMoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGMudmFsdWUsIlZhbHVlIil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOnMoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGMubmFtZSwiS2V5Iil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGAke2MubmFtZX06ICR7Yy52YWx1ZX1gLCJLZXk6VmFsdWUiKX0sImFjdGlvbiIpfV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Muc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbHNUZXh0Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+JHtjLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2MudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNMYWJlbCI+JHt0aGlzLnN0YXR1c09iamVjdD8ubGFzdFVwZGF0ZWQ/YExhc3QgdXBkYXRlZDogJHtuZXcgRGF0ZSh0aGlzLnN0YXR1c09iamVjdC5sYXN0VXBkYXRlZCkudG9Mb2NhbGVTdHJpbmcoKX1gOiIifTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIGNvcHlUb0NsaXBib2FyZChjLHA9IlRleHQiKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYyksY29uc29sZS5sb2coYCR7cH0gY29waWVkIHRvIGNsaXBib2FyZGApfWNhdGNoKHUpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5ICR7cH06YCx1KX19YXN5bmMgaGFuZGxlQ29weUFzSnNvbigpe2lmKHRoaXMuc3RhdHVzT2JqZWN0KXRyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXR1c09iamVjdCxudWxsLDIpKTtsZXQgYz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvcHlNYWluIikscD1jLnRleHRDb250ZW50O2MudGV4dENvbnRlbnQ9IkNvcGllZCEiO2xldCB1PSF0aGlzLmdvQnJpZ2h0O2Muc3R5bGUuYmFja2dyb3VuZD11PyJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsYy5zdHlsZS5ib3JkZXJDb2xvcj11PyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsYy5zdHlsZS5jb2xvcj11PyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsc2V0VGltZW91dCgoKT0+e2MudGV4dENvbnRlbnQ9cCxjLnN0eWxlLmJhY2tncm91bmQ9IiIsYy5zdHlsZS5ib3JkZXJDb2xvcj0iIixjLnN0eWxlLmNvbG9yPSIifSwxNTAwKX1jYXRjaChjKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLGMpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykseFFlKHRoaXMsbCl9c3RhdGlje3hRZShyLHQpfX07cmV0dXJuIGQ9cn0pKCl9KTt2YXIgcDBhPWYoKCk9Pnt1MGEoKX0pO3ZhciBmMGE9ZigoKT0+e0hzZSgpfSk7dmFyIHlRZSxoMGEsbTBhPWYoKCk9PntsZSgpO3dRZSgpO3lRZT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJNb2NrU3RvcmFnZURhdGFQcm92aWRlciIpfW9iamVjdHM9bmV3IE1hcDtjb25zdHJ1Y3Rvcigpe2xldCBlPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTt0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvcmVhZG1lLm1kIix7Y29udGVudDpidG9hKGAjIFdlbGNvbWUKClRoaXMgaXMgYSBkZW1vIFN0b3JhZ2UgYnJvd3Nlci4KYCksY29udGVudFR5cGU6InRleHQvbWFya2Rvd24iLHNpemU6NDIsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvY29uZmlnLmpzb24iLHtjb250ZW50OmJ0b2EoYHsKICAibmFtZSI6ICJkZW1vIiwKICAidmVyc2lvbiI6ICIxLjAuMCIKfWApLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixzaXplOjQ4LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL25vdGVzL3RvZG8udHh0Iix7Y29udGVudDpidG9hKGBCdXkgbWlsawpGaXggYnVnICM0MgpEZXBsb3kgdG8gcHJvZHVjdGlvbmApLGNvbnRlbnRUeXBlOiJ0ZXh0L3BsYWluIixzaXplOjQ1LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiaW1hZ2VzL2xvZ28ucG5nIix7Y29udGVudDpidG9hKCJmYWtlLXBuZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL3BuZyIsc2l6ZToyNDUwMCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImltYWdlcy9iYW5uZXIuanBnIix7Y29udGVudDpidG9hKCJmYWtlLWpwZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL2pwZWciLHNpemU6MTU2ZTMsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJzY3JpcHRzL2RlcGxveS5zaCIse2NvbnRlbnQ6YnRvYShgIyEvYmluL2Jhc2gKZWNobyAiRGVwbG95aW5nLi4uIgpgKSxjb250ZW50VHlwZToidGV4dC9wbGFpbiIsc2l6ZTozNCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImluZGV4Lmh0bWwiLHtjb250ZW50OmJ0b2EoYDwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPGJvZHk+CiAgPGgxPkhlbGxvIFdvcmxkPC9oMT4KPC9ib2R5Pgo8L2h0bWw+YCksY29udGVudFR5cGU6InRleHQvaHRtbCIsc2l6ZTo3MixsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoInN0eWxlcy5jc3MiLHtjb250ZW50OmJ0b2EoImJvZHkgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyB9IiksY29udGVudFR5cGU6InRleHQvY3NzIixzaXplOjQ0LGxhc3RNb2RpZmllZDplfSl9YXN5bmMgbGlzdE9iamVjdHMoZSx0LHIpe2xldCBpPXR8fCIiLG89W10sbj1uZXcgU2V0O2ZvcihsZXRbbCxkXW9mIHRoaXMub2JqZWN0cyl7aWYoIWwuc3RhcnRzV2l0aChpKSljb250aW51ZTtsZXQgYz1sLnNsaWNlKGkubGVuZ3RoKTtpZihyKXtsZXQgcD1jLmluZGV4T2Yocik7cD49MD9uLmFkZChpK2Muc2xpY2UoMCxwKzEpKTpvLnB1c2goe2tleTpsLHNpemU6ZC5zaXplLGxhc3RNb2RpZmllZDpkLmxhc3RNb2RpZmllZH0pfWVsc2Ugby5wdXNoKHtrZXk6bCxzaXplOmQuc2l6ZSxsYXN0TW9kaWZpZWQ6ZC5sYXN0TW9kaWZpZWR9KX1yZXR1cm57b2JqZWN0czpvLHByZWZpeGVzOkFycmF5LmZyb20obikuc29ydCgpfX1hc3luYyBnZXRPYmplY3QoZSx0KXtsZXQgcj10aGlzLm9iamVjdHMuZ2V0KHQpO2lmKCFyKXRocm93IG5ldyBFcnJvcigiTm90IGZvdW5kIik7cmV0dXJuey4uLnJ9fWFzeW5jIHB1dE9iamVjdChlLHQscixpKXtyZXR1cm4gdGhpcy5vYmplY3RzLnNldCh0LHtjb250ZW50OnIsY29udGVudFR5cGU6aSxzaXplOmF0b2IocikubGVuZ3RoLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSwhMH1hc3luYyBkZWxldGVPYmplY3QoZSx0KXtyZXR1cm4gdGhpcy5vYmplY3RzLmRlbGV0ZSh0KX1hc3luYyBkZWxldGVQcmVmaXgoZSx0KXtmb3IobGV0IHIgb2YgdGhpcy5vYmplY3RzLmtleXMoKSlyLnN0YXJ0c1dpdGgodCkmJnRoaXMub2JqZWN0cy5kZWxldGUocik7cmV0dXJuITB9YXN5bmMgZ2V0T2JqZWN0VXJsKGUsdCl7bGV0IHI9dGhpcy5vYmplY3RzLmdldCh0KTtpZighcilyZXR1cm4iIjtsZXQgaT1uZXcgQmxvYihbVWludDhBcnJheS5mcm9tKGF0b2Ioci5jb250ZW50KSxvPT5vLmNoYXJDb2RlQXQoMCkpXSx7dHlwZTpyLmNvbnRlbnRUeXBlfSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwoaSl9YXN5bmMgbW92ZU9iamVjdChlLHQscil7bGV0IGk9dGhpcy5vYmplY3RzLmdldCh0KTtyZXR1cm4gaT8odGhpcy5vYmplY3RzLnNldChyLHsuLi5pLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSx0aGlzLm9iamVjdHMuZGVsZXRlKHQpLHtzdWNjZXNzOiEwfSk6e3N1Y2Nlc3M6ITEsZXJyb3I6IlNvdXJjZSBub3QgZm91bmQifX1hc3luYyBtb3ZlUHJlZml4KGUsdCxyKXtsZXQgaT0wLG89QXJyYXkuZnJvbSh0aGlzLm9iamVjdHMuZW50cmllcygpKS5maWx0ZXIoKFtuXSk9Pm4uc3RhcnRzV2l0aCh0KSk7Zm9yKGxldFtuLGxdb2Ygbyl7bGV0IGQ9cituLnNsaWNlKHQubGVuZ3RoKTt0aGlzLm9iamVjdHMuc2V0KGQsey4uLmwsbGFzdE1vZGlmaWVkOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0pLHRoaXMub2JqZWN0cy5kZWxldGUobiksaSsrfXJldHVybntzdWNjZXNzOiEwLG1vdmVkQ291bnQ6aX19fSxoMGE9cygoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc3RvcmFnZS1icm93c2VyCiAgICAgIC5kYXRhUHJvdmlkZXI9JHtuZXcgeVFlfQogICAgICAuYnVja2V0TmFtZT0keyJkZW1vLWJ1Y2tldCJ9CiAgICA+PC9kZWVzLXN0b3JhZ2UtYnJvd3Nlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO2Z1bmN0aW9uIFVtKGEpe2lmKGE9PW51bGwpcmV0dXJuIi0iO2lmKGE9PT0wKXJldHVybiIwIEIiO2xldCBlPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIl0sdD1hLHI9MDtmb3IoO3Q+PTEwMjQmJnI8ZS5sZW5ndGgtMTspdC89MTAyNCxyKys7cmV0dXJuYCR7dC50b0ZpeGVkKHI+MD8xOjApfSAke2Vbcl19YH1mdW5jdGlvbiBnMGEoYSl7cmV0dXJuIGE9PW51bGw/IiI6YT49MWU2P2AkeyhhLzFlNikudG9GaXhlZCgxKX1NYDphPj0xZTM/YCR7KGEvMWUzKS50b0ZpeGVkKDEpfUtgOmEudG9TdHJpbmcoKX1mdW5jdGlvbiBtYShhKXtsZXQgZT1hLnJlcGxhY2UoL1wvJC8sIiIpLnNwbGl0KCIvIik7cmV0dXJuIGVbZS5sZW5ndGgtMV18fGF9ZnVuY3Rpb24gV20oYSxlKXtyZXR1cm4gYS5lbmRzV2l0aCgiLyIpJiZlLnN0YXJ0c1dpdGgoYSk/e3ZhbGlkOiExLGVycm9yOiJDYW5ub3QgbW92ZSBhIGZvbGRlciBpbnRvIGl0c2VsZiJ9OmoxKGEpPT09ZT97dmFsaWQ6ITEsZXJyb3I6Ikl0ZW0gaXMgYWxyZWFkeSBpbiB0aGlzIGxvY2F0aW9uIn06e3ZhbGlkOiEwfX1mdW5jdGlvbiBqMShhKXtsZXQgZT1hLmVuZHNXaXRoKCIvIik/YS5zbGljZSgwLC0xKTphLHQ9ZS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiB0Pj0wP2Uuc3Vic3RyaW5nKDAsdCsxKToiIn1mdW5jdGlvbiBFNChhKXtyZXR1cm57anNvbjoiYXBwbGljYXRpb24vanNvbiIsdHh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLGNzczoidGV4dC9jc3MiLGpzOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iix0czoidGV4dC90eXBlc2NyaXB0IixtZDoidGV4dC9tYXJrZG93biIseG1sOiJhcHBsaWNhdGlvbi94bWwiLHlhbWw6InRleHQveWFtbCIseW1sOiJ0ZXh0L3lhbWwiLGNzdjoidGV4dC9jc3YifVthXXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9ZnVuY3Rpb24gR20oYSl7cmV0dXJue2pzb246YHsKICAKfWAsaHRtbDpgPCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAKPC9ib2R5Pgo8L2h0bWw+YCxtZDpgIyBUaXRsZQoKYCx0eHQ6IiJ9W2FdfHwiIn1mdW5jdGlvbiBwNShhKXtpZighYSlyZXR1cm5bXTtsZXQgZT1hLnNwbGl0KCIvIikuZmlsdGVyKGk9PmkpLHQ9W10scj0iIjtmb3IobGV0IGkgb2YgZSlyKz1pKyIvIix0LnB1c2gocik7cmV0dXJuIHR9dmFyIFhXPWYoKCk9PntzKFVtLCJmb3JtYXRTaXplIik7cyhnMGEsImZvcm1hdENvdW50Iik7cyhtYSwiZ2V0RmlsZU5hbWUiKTtzKFdtLCJ2YWxpZGF0ZU1vdmUiKTtzKGoxLCJnZXRQYXJlbnRQcmVmaXgiKTtzKEU0LCJnZXRDb250ZW50VHlwZSIpO3MoR20sImdldERlZmF1bHRDb250ZW50Iik7cyhwNSwiZ2V0UGF0aFNlZ21lbnRzIil9KTt2YXIgT2EsdnQsYjBhLE1RZT1mKCgpPT57bGUoKTtYcigpO1FlKCk7WFcoKTtPYT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sdnQ9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGIwYT0oKCk9PntsZXQgYT1baWUoImRlZXMtc3RvcmFnZS1jb2x1bW5zIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdLGdlLGFlPVtdLHJlPVtdLHllLFY9W10sSD1bXSxvZSxzZT1bXSx0ZT1bXSx6ZSxPZT1bXSxxZT1bXSxkdCwkZT1bXSxDZT1bXSxNZSxkZT1bXSx2ZT1bXSxBZSxaZT1bXSxudD1bXSx6dCxUZT1bXSx3ZT1bXSxSZSxmZT1bXSxiZT1bXSxFZSxmdD1bXSxtdD1bXSxJdCxYYT1bXSxKYT1bXSx3cyxVZT1bXSx1dD1bXSxRYSxNcj1bXSwkcj1bXSxWcixEcj1bXSx4bz1bXSx5byxMZT1bXSxTZT1bXSxCZSxpYT1bXSxNcz1bXTt2YXIgaGw9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNTdG9yYWdlQ29sdW1ucyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCB4ZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVskKHt0eXBlOk51bWJlcn0pXSx5PVtLKCldLE49W0soKV0sTz1bSygpXSxCPVtLKCldLEU9W0soKV0sVz1bSygpXSxoZT1bSygpXSxtZT1bSygpXSxjZT1bSygpXSxRPVtLKCldLGdlPVtLKCldLHllPVtLKCldLG9lPVtLKCldLHplPVtLKCldLGR0PVtLKCldLE1lPVtLKCldLEFlPVtLKCldLHp0PVtLKCldLFJlPVtLKCldLEVlPVtLKCldLEl0PVtLKCldLHdzPVtLKCldLFFhPVtLKCldLFZyPVtLKCldLHlvPVtLKCldLEJlPVtLKCldLE9hKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4iZGF0YVByb3ZpZGVyImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuZGF0YVByb3ZpZGVyPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxuLGwpLE9hKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+ImJ1Y2tldE5hbWUiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5idWNrZXROYW1lLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuYnVja2V0TmFtZT1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sYyxwKSxPYSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJjdXJyZW50UHJlZml4ImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUuY3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLmN1cnJlbnRQcmVmaXg9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LG0sdiksT2EodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZyZXNoS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4icmVmcmVzaEtleSJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLnJlZnJlc2hLZXksImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5yZWZyZXNoS2V5PV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxiLGcpLE9hKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+ImNvbHVtbnMiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5jb2x1bW5zLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuY29sdW1ucz1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sayxDKSxPYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJsb2FkaW5nImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUubG9hZGluZywiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLmxvYWRpbmc9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LF8seiksT2EodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q3JlYXRlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4ic2hvd0NyZWF0ZURpYWxvZyJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLnNob3dDcmVhdGVEaWFsb2csImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5zaG93Q3JlYXRlRGlhbG9nPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxULFApLE9hKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+ImNyZWF0ZURpYWxvZ1R5cGUiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5jcmVhdGVEaWFsb2dUeXBlLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuY3JlYXRlRGlhbG9nVHlwZT1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sTSxTKSxPYSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1ByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+ImNyZWF0ZURpYWxvZ1ByZWZpeCJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLmNyZWF0ZURpYWxvZ1ByZWZpeCwiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLmNyZWF0ZURpYWxvZ1ByZWZpeD1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sQSxGKSxPYSh0aGlzLG51bGwsVyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ05hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJjcmVhdGVEaWFsb2dOYW1lImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUuY3JlYXRlRGlhbG9nTmFtZSwiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLmNyZWF0ZURpYWxvZ05hbWU9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LGosRyksT2EodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJDb2x1bW5JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+ImRyYWdPdmVyQ29sdW1uSW5kZXgiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5kcmFnT3ZlckNvbHVtbkluZGV4LCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuZHJhZ092ZXJDb2x1bW5JbmRleD1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sUixVKSxPYSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckZvbGRlclByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+ImRyYWdPdmVyRm9sZGVyUHJlZml4ImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUuZHJhZ092ZXJGb2xkZXJQcmVmaXgsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5kcmFnT3ZlckZvbGRlclByZWZpeD1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sSSxxKSxPYSh0aGlzLG51bGwsY2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cGxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJ1cGxvYWRpbmciaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS51cGxvYWRpbmcsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS51cGxvYWRpbmc9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LHVlLFkpLE9hKHRoaXMsbnVsbCxRLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBsb2FkUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJ1cGxvYWRQcm9ncmVzcyJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLnVwbG9hZFByb2dyZXNzLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUudXBsb2FkUHJvZ3Jlc3M9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LEosWiksT2EodGhpcyxudWxsLGdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJzaG93TW92ZURpYWxvZyJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLnNob3dNb3ZlRGlhbG9nLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuc2hvd01vdmVEaWFsb2c9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LGFlLHJlKSxPYSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4ibW92ZVNvdXJjZSJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLm1vdmVTb3VyY2UsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5tb3ZlU291cmNlPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxWLEgpLE9hKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLm1vdmVEZXN0aW5hdGlvbj1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sc2UsdGUpLE9hKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4ibW92ZUluUHJvZ3Jlc3MiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5tb3ZlSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLm1vdmVJblByb2dyZXNzPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxPZSxxZSksT2EodGhpcyxudWxsLGR0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4ibW92ZUVycm9yImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUubW92ZUVycm9yLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUubW92ZUVycm9yPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSwkZSxDZSksT2EodGhpcyxudWxsLE1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVQaWNrZXJEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJzaG93TW92ZVBpY2tlckRpYWxvZyJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLnNob3dNb3ZlUGlja2VyRGlhbG9nLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuc2hvd01vdmVQaWNrZXJEaWFsb2c9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LGRlLHZlKSxPYSh0aGlzLG51bGwsQWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4ibW92ZVBpY2tlclNvdXJjZSJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLm1vdmVQaWNrZXJTb3VyY2UsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5tb3ZlUGlja2VyU291cmNlPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxaZSxudCksT2EodGhpcyxudWxsLHp0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LFRlLHdlKSxPYSh0aGlzLG51bGwsUmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyUHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJtb3ZlUGlja2VyUHJlZml4ZXMiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5tb3ZlUGlja2VyUHJlZml4ZXMsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5tb3ZlUGlja2VyUHJlZml4ZXM9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LGZlLGJlKSxPYSh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+Im1vdmVQaWNrZXJMb2FkaW5nImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUubW92ZVBpY2tlckxvYWRpbmcsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5tb3ZlUGlja2VyTG9hZGluZz1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sZnQsbXQpLE9hKHRoaXMsbnVsbCxJdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dSZW5hbWVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJzaG93UmVuYW1lRGlhbG9nImluIG5lLCJoYXMiKSxnZXQ6cyhuZT0+bmUuc2hvd1JlbmFtZURpYWxvZywiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLnNob3dSZW5hbWVEaWFsb2c9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LFhhLEphKSxPYSh0aGlzLG51bGwsd3Mse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJyZW5hbWVTb3VyY2UiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5yZW5hbWVTb3VyY2UsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5yZW5hbWVTb3VyY2U9X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LFVlLHV0KSxPYSh0aGlzLG51bGwsUWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4icmVuYW1lTmFtZSJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLnJlbmFtZU5hbWUsImdldCIpLHNldDpzKChuZSxfZSk9PntuZS5yZW5hbWVOYW1lPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxNciwkciksT2EodGhpcyxudWxsLFZyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhuZT0+InJlbmFtZUluUHJvZ3Jlc3MiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5yZW5hbWVJblByb2dyZXNzLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUucmVuYW1lSW5Qcm9ncmVzcz1fZX0sInNldCIpfSxtZXRhZGF0YTp4ZX0sRHIseG8pLE9hKHRoaXMsbnVsbCx5byx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKG5lPT4icmVuYW1lRXJyb3IiaW4gbmUsImhhcyIpLGdldDpzKG5lPT5uZS5yZW5hbWVFcnJvciwiZ2V0Iiksc2V0OnMoKG5lLF9lKT0+e25lLnJlbmFtZUVycm9yPV9lfSwic2V0Iil9LG1ldGFkYXRhOnhlfSxMZSxTZSksT2EodGhpcyxudWxsLEJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMobmU9PiJkcmFnZ2VkSXRlbSJpbiBuZSwiaGFzIiksZ2V0OnMobmU9Pm5lLmRyYWdnZWRJdGVtLCJnZXQiKSxzZXQ6cygobmUsX2UpPT57bmUuZHJhZ2dlZEl0ZW09X2V9LCJzZXQiKX0sbWV0YWRhdGE6eGV9LGlhLE1zKSxPYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTp4ZX0sbnVsbCx0KSxobD1yPWUudmFsdWUseGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eGV9KX0jZT12dCh0aGlzLG4sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoeGUpe3RoaXMuI2U9eGV9I3Q9KHZ0KHRoaXMsbCksdnQodGhpcyxjLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZSh4ZSl7dGhpcy4jdD14ZX0jYT0odnQodGhpcyxwKSx2dCh0aGlzLG0sIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50UHJlZml4KHhlKXt0aGlzLiNhPXhlfSNyPSh2dCh0aGlzLHYpLHZ0KHRoaXMsYiwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcmVmcmVzaEtleSh4ZSl7dGhpcy4jcj14ZX0jcz0odnQodGhpcyxnKSx2dCh0aGlzLGssW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNzfXNldCBjb2x1bW5zKHhlKXt0aGlzLiNzPXhlfSNpPSh2dCh0aGlzLEMpLHZ0KHRoaXMsXywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxvYWRpbmcoeGUpe3RoaXMuI2k9eGV9I289KHZ0KHRoaXMseiksdnQodGhpcyxULCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd0NyZWF0ZURpYWxvZyh4ZSl7dGhpcy4jbz14ZX0jbj0odnQodGhpcyxQKSx2dCh0aGlzLE0sImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNufXNldCBjcmVhdGVEaWFsb2dUeXBlKHhlKXt0aGlzLiNuPXhlfSNsPSh2dCh0aGlzLFMpLHZ0KHRoaXMsQSwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KHhlKXt0aGlzLiNsPXhlfSNjPSh2dCh0aGlzLEYpLHZ0KHRoaXMsaiwiIikpO2dldCBjcmVhdGVEaWFsb2dOYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNyZWF0ZURpYWxvZ05hbWUoeGUpe3RoaXMuI2M9eGV9I2Q9KHZ0KHRoaXMsRyksdnQodGhpcyxSLC0xKSk7Z2V0IGRyYWdPdmVyQ29sdW1uSW5kZXgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZHJhZ092ZXJDb2x1bW5JbmRleCh4ZSl7dGhpcy4jZD14ZX0jdT0odnQodGhpcyxVKSx2dCh0aGlzLEksbnVsbCkpO2dldCBkcmFnT3ZlckZvbGRlclByZWZpeCgpe3JldHVybiB0aGlzLiN1fXNldCBkcmFnT3ZlckZvbGRlclByZWZpeCh4ZSl7dGhpcy4jdT14ZX0jcD0odnQodGhpcyxxKSx2dCh0aGlzLHVlLCExKSk7Z2V0IHVwbG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCB1cGxvYWRpbmcoeGUpe3RoaXMuI3A9eGV9I2Y9KHZ0KHRoaXMsWSksdnQodGhpcyxKLG51bGwpKTtnZXQgdXBsb2FkUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jZn1zZXQgdXBsb2FkUHJvZ3Jlc3MoeGUpe3RoaXMuI2Y9eGV9I2g9KHZ0KHRoaXMsWiksdnQodGhpcyxhZSwhMSkpO2dldCBzaG93TW92ZURpYWxvZygpe3JldHVybiB0aGlzLiNofXNldCBzaG93TW92ZURpYWxvZyh4ZSl7dGhpcy4jaD14ZX0jbT0odnQodGhpcyxyZSksdnQodGhpcyxWLG51bGwpKTtnZXQgbW92ZVNvdXJjZSgpe3JldHVybiB0aGlzLiNtfXNldCBtb3ZlU291cmNlKHhlKXt0aGlzLiNtPXhlfSNnPSh2dCh0aGlzLEgpLHZ0KHRoaXMsc2UsIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVEZXN0aW5hdGlvbih4ZSl7dGhpcy4jZz14ZX0jYj0odnQodGhpcyx0ZSksdnQodGhpcyxPZSwhMSkpO2dldCBtb3ZlSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNifXNldCBtb3ZlSW5Qcm9ncmVzcyh4ZSl7dGhpcy4jYj14ZX0jdj0odnQodGhpcyxxZSksdnQodGhpcywkZSxudWxsKSk7Z2V0IG1vdmVFcnJvcigpe3JldHVybiB0aGlzLiN2fXNldCBtb3ZlRXJyb3IoeGUpe3RoaXMuI3Y9eGV9I3g9KHZ0KHRoaXMsQ2UpLHZ0KHRoaXMsZGUsITEpKTtnZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2hvd01vdmVQaWNrZXJEaWFsb2coeGUpe3RoaXMuI3g9eGV9I3k9KHZ0KHRoaXMsdmUpLHZ0KHRoaXMsWmUsbnVsbCkpO2dldCBtb3ZlUGlja2VyU291cmNlKCl7cmV0dXJuIHRoaXMuI3l9c2V0IG1vdmVQaWNrZXJTb3VyY2UoeGUpe3RoaXMuI3k9eGV9I3c9KHZ0KHRoaXMsbnQpLHZ0KHRoaXMsVGUsIiIpKTtnZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlckN1cnJlbnRQcmVmaXgoeGUpe3RoaXMuI3c9eGV9I009KHZ0KHRoaXMsd2UpLHZ0KHRoaXMsZmUsW10pKTtnZXQgbW92ZVBpY2tlclByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI019c2V0IG1vdmVQaWNrZXJQcmVmaXhlcyh4ZSl7dGhpcy4jTT14ZX0jaz0odnQodGhpcyxiZSksdnQodGhpcyxmdCwhMSkpO2dldCBtb3ZlUGlja2VyTG9hZGluZygpe3JldHVybiB0aGlzLiNrfXNldCBtb3ZlUGlja2VyTG9hZGluZyh4ZSl7dGhpcy4jaz14ZX0jUz0odnQodGhpcyxtdCksdnQodGhpcyxYYSwhMSkpO2dldCBzaG93UmVuYW1lRGlhbG9nKCl7cmV0dXJuIHRoaXMuI1N9c2V0IHNob3dSZW5hbWVEaWFsb2coeGUpe3RoaXMuI1M9eGV9I3o9KHZ0KHRoaXMsSmEpLHZ0KHRoaXMsVWUsbnVsbCkpO2dldCByZW5hbWVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jen1zZXQgcmVuYW1lU291cmNlKHhlKXt0aGlzLiN6PXhlfSNDPSh2dCh0aGlzLHV0KSx2dCh0aGlzLE1yLCIiKSk7Z2V0IHJlbmFtZU5hbWUoKXtyZXR1cm4gdGhpcy4jQ31zZXQgcmVuYW1lTmFtZSh4ZSl7dGhpcy4jQz14ZX0jXz0odnQodGhpcywkciksdnQodGhpcyxEciwhMSkpO2dldCByZW5hbWVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI199c2V0IHJlbmFtZUluUHJvZ3Jlc3MoeGUpe3RoaXMuI189eGV9I1Q9KHZ0KHRoaXMseG8pLHZ0KHRoaXMsTGUsbnVsbCkpO2dldCByZW5hbWVFcnJvcigpe3JldHVybiB0aGlzLiNUfXNldCByZW5hbWVFcnJvcih4ZSl7dGhpcy4jVD14ZX0jTD0odnQodGhpcyxTZSksdnQodGhpcyxpYSxudWxsKSk7Z2V0IGRyYWdnZWRJdGVtKCl7cmV0dXJuIHRoaXMuI0x9c2V0IGRyYWdnZWRJdGVtKHhlKXt0aGlzLiNMPXhlfXJlc2l6aW5nPSh2dCh0aGlzLE1zKSxudWxsKTtERUZBVUxUX0NPTFVNTl9XSURUSD0yNTA7TUlOX0NPTFVNTl9XSURUSD0xNTA7TUFYX0NPTFVNTl9XSURUSD01MDA7ZHJhZ0NvdW50ZXJzPW5ldyBNYXA7Zm9sZGVySG92ZXJUaW1lcj1udWxsO2ZpbGVJbnB1dEVsZW1lbnQ9bnVsbDtmb2xkZXJJbnB1dEVsZW1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsUGUsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmNvbHVtbnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IG1heC1jb250ZW50OwogICAgICB9CgogICAgICAuY29sdW1uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuY29sdW1uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDVweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUuYWN0aXZlOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNDA0MDQwIil9OwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgbGVmdDogMXB4OwogICAgICB9CgogICAgICAuY29sdW1uLXdyYXBwZXI6bGFzdC1jaGlsZCAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM2NjYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbXMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFkNGVkOCIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5mb2xkZXIgewogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gLmljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIC5jaGV2cm9uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxvYWRpbmcgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC5jb2x1bW4uZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCk7CiAgICAgICAgb3V0bGluZTogMnB4IGRhc2hlZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmZvbGRlci5kcmFnLXRhcmdldCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMikgIWltcG9ydGFudDsKICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAudXBsb2FkLW92ZXJsYXkgLnVwbG9hZC10ZXh0IHsKICAgICAgICBjb2xvcjogI2UwZTBlMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSAudXBsb2FkLXByb2dyZXNzIHsKICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhpbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjkpOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLmRpYWxvZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMWUxZTFlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtaW4td2lkdGg6IDQwMHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgfQoKICAgICAgLmRpYWxvZy10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWxvY2F0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxNDE0MTQiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1oaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGlhbG9nLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTA1MDUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBNb3ZlIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtc3VtbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm1vdmUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICB9CgogICAgICAubW92ZS1wYXRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLm1vdmUtZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLyogTW92ZSBwaWNrZXIgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1waWNrZXItZGlhbG9nIHsKICAgICAgICBtaW4td2lkdGg6IDQ1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyYWdnaW5nIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbS5kcm9wLXRhcmdldCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpICFpbXBvcnRhbnQ7CiAgICAgICAgb3V0bGluZTogMXB4IGRhc2hlZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyb3AtaW52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLmxvYWRJbml0aWFsQ29sdW1uKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5maWxlSW5wdXRFbGVtZW50JiYodGhpcy5maWxlSW5wdXRFbGVtZW50LnJlbW92ZSgpLHRoaXMuZmlsZUlucHV0RWxlbWVudD1udWxsKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudCYmKHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnJlbW92ZSgpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50PW51bGwpfXVwZGF0ZWQoeGUpe3hlLmhhcygiYnVja2V0TmFtZSIpfHx4ZS5oYXMoImN1cnJlbnRQcmVmaXgiKT90aGlzLmxvYWRJbml0aWFsQ29sdW1uKCk6eGUuaGFzKCJyZWZyZXNoS2V5IikmJnRoaXMucmVmcmVzaEFsbENvbHVtbnMoKX1hc3luYyBsb2FkSW5pdGlhbENvbHVtbigpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCB4ZT1wNSh0aGlzLmN1cnJlbnRQcmVmaXgpLG5lPVsiIiwuLi54ZV0sX2U9YXdhaXQgUHJvbWlzZS5hbGwobmUubWFwKFdlPT50aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsV2UsIi8iKSkpO3RoaXMuY29sdW1ucz1fZS5tYXAoKFdlLFN0KT0+e2xldCBrcz1uZVtTdF0sanI9U3Q8eGUubGVuZ3RoP3hlW1N0XTpudWxsO3JldHVybntwcmVmaXg6a3Msb2JqZWN0czpXZS5vYmplY3RzLHByZWZpeGVzOldlLnByZWZpeGVzLHNlbGVjdGVkSXRlbTpqcix3aWR0aDp0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIfX0pLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5zY3JvbGxUb0VuZCgpKX1jYXRjaCh4ZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3RzOiIseGUpLHRoaXMuY29sdW1ucz1bXX10aGlzLmxvYWRpbmc9ITF9fWFzeW5jIHJlZnJlc2hBbGxDb2x1bW5zKCl7aWYoIXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgeGU9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5jb2x1bW5zLm1hcChhc3luYyBuZT0+e3RyeXtsZXQgX2U9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLG5lLnByZWZpeCwiLyIpO3JldHVybnsuLi5uZSxvYmplY3RzOl9lLm9iamVjdHMscHJlZml4ZXM6X2UucHJlZml4ZXN9fWNhdGNoe3JldHVybiBuZX19KSk7dGhpcy5jb2x1bW5zPXhlfWFzeW5jIHNlbGVjdEZvbGRlcih4ZSxuZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChfZSxXZSk9PldlPT09eGU/ey4uLl9lLHNlbGVjdGVkSXRlbTpuZX06X2UpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuc2xpY2UoMCx4ZSsxKTt0cnl7bGV0IF9lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxuZSwiLyIpO3RoaXMuY29sdW1ucz1bLi4udGhpcy5jb2x1bW5zLHtwcmVmaXg6bmUsb2JqZWN0czpfZS5vYmplY3RzLHByZWZpeGVzOl9lLnByZWZpeGVzLHNlbGVjdGVkSXRlbTpudWxsLHdpZHRoOnRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEh9XSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuc2Nyb2xsVG9FbmQoKSl9Y2F0Y2goX2Upe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgZm9sZGVyOiIsX2UpfX19c2Nyb2xsVG9FbmQoKXt0aGlzLnNjcm9sbExlZnQ9dGhpcy5zY3JvbGxXaWR0aC10aGlzLmNsaWVudFdpZHRofXN0YXJ0UmVzaXplKHhlLG5lKXt4ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVzaXppbmc9e2NvbHVtbkluZGV4Om5lLHN0YXJ0WDp4ZS5jbGllbnRYLHN0YXJ0V2lkdGg6dGhpcy5jb2x1bW5zW25lXS53aWR0aH0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5zdG9wUmVzaXplKSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iY29sLXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIn1oYW5kbGVSZXNpemU9cyh4ZT0+e2lmKCF0aGlzLnJlc2l6aW5nKXJldHVybjtsZXQgbmU9eGUuY2xpZW50WC10aGlzLnJlc2l6aW5nLnN0YXJ0WCxfZT1NYXRoLm1pbih0aGlzLk1BWF9DT0xVTU5fV0lEVEgsTWF0aC5tYXgodGhpcy5NSU5fQ09MVU1OX1dJRFRILHRoaXMucmVzaXppbmcuc3RhcnRXaWR0aCtuZSkpO3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChXZSxTdCk9PlN0PT09dGhpcy5yZXNpemluZy5jb2x1bW5JbmRleD97Li4uV2Usd2lkdGg6X2V9OldlKX0sImhhbmRsZVJlc2l6ZSIpO3N0b3BSZXNpemU9cygoKT0+e3RoaXMucmVzaXppbmc9bnVsbCxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUmVzaXplKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnN0b3BSZXNpemUpLGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0iIn0sInN0b3BSZXNpemUiKTtzZWxlY3RGaWxlKHhlLG5lKXt0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoX2UsV2UpPT5XZT09PXhlP3suLi5fZSxzZWxlY3RlZEl0ZW06bmV9Ol9lKSx0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAseGUrMSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5LXNlbGVjdGVkIix7ZGV0YWlsOntrZXk6bmV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0RmlsZUljb24oeGUpe2xldCBuZT14ZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm57anNvbjoiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIsdHh0OiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Iixwbmc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixqcGc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixqcGVnOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIsZ2lmOiJNNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIscGRmOiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6In1bbmVdfHwiTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiJ9aGFuZGxlRm9sZGVyQ29udGV4dE1lbnUoeGUsbmUsX2Upe3RoaXMuZGF0YVByb3ZpZGVyJiYoeGUucHJldmVudERlZmF1bHQoKSx0YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh4ZSxbe25hbWU6Ik9wZW4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyT3BlbiIsYWN0aW9uOnMoYXN5bmMoKT0+e3RoaXMuc2VsZWN0Rm9sZGVyKG5lLF9lKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjpzKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChfZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhfZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coX2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJOZXcgRm9sZGVyIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246cyhhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIsX2UpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIixfZSksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZpbGVzLi4uIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoX2UsImZpbGVzIiksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZvbGRlci4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJVcCIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZChfZSwiZm9sZGVyIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246cyhhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZvbGRlciAiJHttYShfZSl9IiBhbmQgYWxsIGl0cyBjb250ZW50cz9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlUHJlZml4KHRoaXMuYnVja2V0TmFtZSxfZSkmJih0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLnNsaWNlKDAsbmUrMSksdGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKFN0LGtzKT0+a3M9PT1uZT97Li4uU3Qsc2VsZWN0ZWRJdGVtOm51bGx9OlN0KSxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNvbHVtbnNbbmVdLnByZWZpeCkpfSwiYWN0aW9uIil9XSkpfWhhbmRsZUZpbGVDb250ZXh0TWVudSh4ZSxuZSxfZSl7dGhpcy5kYXRhUHJvdmlkZXImJih4ZS5wcmV2ZW50RGVmYXVsdCgpLHRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHhlLFt7bmFtZToiUHJldmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGFjdGlvbjpzKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEZpbGUobmUsX2UpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOnMoYXN5bmMoKT0+e2xldCBXZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3RVcmwodGhpcy5idWNrZXROYW1lLF9lKSxTdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7U3QuaHJlZj1XZSxTdC5kb3dubG9hZD1tYShfZSksU3QuY2xpY2soKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjpzKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChfZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhfZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coX2UsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246cyhhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZpbGUgIiR7bWEoX2UpfSI/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsX2UpJiZhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeCh0aGlzLmNvbHVtbnNbbmVdLnByZWZpeCl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KHhlLG5lKXtpZih4ZS50YXJnZXQhPT14ZS5jdXJyZW50VGFyZ2V0KXJldHVybjt4ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBfZT10aGlzLmNvbHVtbnNbbmVdLnByZWZpeDt0YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh4ZSxbe25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLF9lKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIixfZSksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZpbGVzLi4uIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMudHJpZ2dlckZpbGVVcGxvYWQoX2UsImZpbGVzIiksImFjdGlvbiIpfSx7bmFtZToiVXBsb2FkIEZvbGRlci4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJVcCIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZChfZSwiZm9sZGVyIiksImFjdGlvbiIpfV0pfW9wZW5DcmVhdGVEaWFsb2coeGUsbmUpe3RoaXMuY3JlYXRlRGlhbG9nVHlwZT14ZSx0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeD1uZSx0aGlzLmNyZWF0ZURpYWxvZ05hbWU9IiIsdGhpcy5zaG93Q3JlYXRlRGlhbG9nPSEwfWVuc3VyZUZpbGVJbnB1dHMoKXt0aGlzLmZpbGVJbnB1dEVsZW1lbnR8fCh0aGlzLmZpbGVJbnB1dEVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLmZpbGVJbnB1dEVsZW1lbnQudHlwZT0iZmlsZSIsdGhpcy5maWxlSW5wdXRFbGVtZW50Lm11bHRpcGxlPSEwLHRoaXMuZmlsZUlucHV0RWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5maWxlSW5wdXRFbGVtZW50KSksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnR8fCh0aGlzLmZvbGRlcklucHV0RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnR5cGU9ImZpbGUiLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50Lm11bHRpcGxlPSEwLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LndlYmtpdGRpcmVjdG9yeT0hMCx0aGlzLmZvbGRlcklucHV0RWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQpKX10cmlnZ2VyRmlsZVVwbG9hZCh4ZSxuZSl7dGhpcy5lbnN1cmVGaWxlSW5wdXRzKCk7bGV0IF9lPW5lPT09ImZvbGRlciI/dGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQ6dGhpcy5maWxlSW5wdXRFbGVtZW50O19lLnZhbHVlPSIiO2xldCBXZT1zKGFzeW5jKCk9PntfZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLFdlKSxfZS5maWxlcyYmX2UuZmlsZXMubGVuZ3RoPjAmJmF3YWl0IHRoaXMudXBsb2FkRmlsZXMoQXJyYXkuZnJvbShfZS5maWxlcykseGUpfSwiaGFuZGxlciIpO19lLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsV2UpLF9lLmNsaWNrKCl9YXN5bmMgdXBsb2FkRmlsZXMoeGUsbmUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLnVwbG9hZGluZz0hMCx0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OjAsdG90YWw6eGUubGVuZ3RofTtmb3IobGV0IF9lPTA7X2U8eGUubGVuZ3RoO19lKyspe2xldCBXZT14ZVtfZV07dGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDpfZSsxLHRvdGFsOnhlLmxlbmd0aH07dHJ5e2xldCBTdD1hd2FpdCB0aGlzLnJlYWRGaWxlQXNCYXNlNjQoV2UpLGtzPVdlLndlYmtpdFJlbGF0aXZlUGF0aHx8V2UubmFtZSxqcj1uZStrcyxIaT1XZS50eXBlfHxFNChXZS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiKTthd2FpdCB0aGlzLmRhdGFQcm92aWRlci5wdXRPYmplY3QodGhpcy5idWNrZXROYW1lLGpyLFN0LEhpKX1jYXRjaChTdCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHVwbG9hZCAke1dlLm5hbWV9OmAsU3QpfX10aGlzLnVwbG9hZGluZz0hMSx0aGlzLnVwbG9hZFByb2dyZXNzPW51bGwsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgobmUpfX1hc3luYyB1cGxvYWRGaWxlc1dpdGhQYXRocyh4ZSxuZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMudXBsb2FkaW5nPSEwLHRoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6MCx0b3RhbDp4ZS5sZW5ndGh9O2ZvcihsZXQgX2U9MDtfZTx4ZS5sZW5ndGg7X2UrKyl7bGV0e2ZpbGU6V2UscmVsYXRpdmVQYXRoOlN0fT14ZVtfZV07dGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDpfZSsxLHRvdGFsOnhlLmxlbmd0aH07dHJ5e2xldCBrcz1hd2FpdCB0aGlzLnJlYWRGaWxlQXNCYXNlNjQoV2UpLGpyPW5lK1N0LEhpPVdlLnR5cGV8fEU0KFdlLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsanIsa3MsSGkpfWNhdGNoKGtzKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gdXBsb2FkICR7U3R9OmAsa3MpfX10aGlzLnVwbG9hZGluZz0hMSx0aGlzLnVwbG9hZFByb2dyZXNzPW51bGwsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgobmUpfX1yZWFkRmlsZUFzQmFzZTY0KHhlKXtyZXR1cm4gbmV3IFByb21pc2UoKG5lLF9lKT0+e2xldCBXZT1uZXcgRmlsZVJlYWRlcjtXZS5vbmxvYWQ9KCk9PntsZXQgU3Q9V2UucmVzdWx0O25lKFN0LnNwbGl0KCIsIilbMV18fCIiKX0sV2Uub25lcnJvcj0oKT0+X2UoV2UuZXJyb3IpLFdlLnJlYWRBc0RhdGFVUkwoeGUpfSl9YXN5bmMgcmVmcmVzaENvbHVtbkJ5UHJlZml4KHhlKXtpZighdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBuZT10aGlzLmNvbHVtbnMuZmluZEluZGV4KF9lPT5fZS5wcmVmaXg9PT14ZSk7aWYobmU9PT0tMSl7YXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpO3JldHVybn10cnl7bGV0IF9lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSx4ZSwiLyIpO3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKChXZSxTdCk9PlN0PT09bmU/ey4uLldlLG9iamVjdHM6X2Uub2JqZWN0cyxwcmVmaXhlczpfZS5wcmVmaXhlc306V2UpfWNhdGNoe2F3YWl0IHRoaXMucmVmcmVzaEFsbENvbHVtbnMoKX19aGFuZGxlQ29sdW1uRHJhZ0VudGVyKHhlLG5lKXt4ZS5wcmV2ZW50RGVmYXVsdCgpLHhlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBfZT0odGhpcy5kcmFnQ291bnRlcnMuZ2V0KG5lKXx8MCkrMTt0aGlzLmRyYWdDb3VudGVycy5zZXQobmUsX2UpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD1uZX1oYW5kbGVDb2x1bW5EcmFnT3Zlcih4ZSl7eGUucHJldmVudERlZmF1bHQoKSx4ZS5zdG9wUHJvcGFnYXRpb24oKSx4ZS5kYXRhVHJhbnNmZXImJih4ZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD10aGlzLmRyYWdnZWRJdGVtPyJtb3ZlIjoiY29weSIpfWhhbmRsZUNvbHVtbkRyYWdMZWF2ZSh4ZSxuZSl7eGUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IF9lPSh0aGlzLmRyYWdDb3VudGVycy5nZXQobmUpfHwxKS0xO3RoaXMuZHJhZ0NvdW50ZXJzLnNldChuZSxfZSksX2U8PTAmJih0aGlzLmRyYWdDb3VudGVycy5kZWxldGUobmUpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD09PW5lJiYodGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xKSx0aGlzLmNsZWFyRm9sZGVySG92ZXIoKSl9YXN5bmMgaGFuZGxlQ29sdW1uRHJvcCh4ZSxuZSl7eGUucHJldmVudERlZmF1bHQoKSx4ZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgX2U9dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD8/dGhpcy5jb2x1bW5zW25lXS5wcmVmaXg7aWYodGhpcy5kcmFnZ2VkSXRlbSl7dGhpcy5pbml0aWF0ZU1vdmUodGhpcy5kcmFnZ2VkSXRlbS5rZXksdGhpcy5kcmFnZ2VkSXRlbS5pc0ZvbGRlcixfZSksdGhpcy5kcmFnZ2VkSXRlbT1udWxsLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xO3JldHVybn10aGlzLmRyYWdDb3VudGVycy5jbGVhcigpLHRoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD0tMTtsZXQgV2U9eGUuZGF0YVRyYW5zZmVyPy5pdGVtcztpZighV2V8fFdlLmxlbmd0aD09PTApcmV0dXJuO3RoaXMuY2xlYXJGb2xkZXJIb3ZlcigpO2xldCBTdD1bXSxrcz1zKGFzeW5jKGpyLEhpKT0+e2lmKGpyLmlzRmlsZSl7bGV0IFFuPWpyLHMyPWF3YWl0IG5ldyBQcm9taXNlKChtbCxKbik9PntRbi5maWxlKG1sLEpuKX0pO1N0LnB1c2goe2ZpbGU6czIscmVsYXRpdmVQYXRoOkhpK3MyLm5hbWV9KX1lbHNlIGlmKGpyLmlzRGlyZWN0b3J5KXtsZXQgczI9anIuY3JlYXRlUmVhZGVyKCksbWw9YXdhaXQgbmV3IFByb21pc2UoKEpuLFk0KT0+e3MyLnJlYWRFbnRyaWVzKEpuLFk0KX0pO2ZvcihsZXQgSm4gb2YgbWwpYXdhaXQga3MoSm4sSGkranIubmFtZSsiLyIpfX0sInByb2Nlc3NFbnRyeSIpO2ZvcihsZXQganI9MDtqcjxXZS5sZW5ndGg7anIrKyl7bGV0IEhpPVdlW2pyXTtpZihIaS5raW5kPT09ImZpbGUiKXtsZXQgUW49SGkud2Via2l0R2V0QXNFbnRyeSgpO1FuJiZhd2FpdCBrcyhRbiwiIil9fVN0Lmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwbG9hZEZpbGVzV2l0aFBhdGhzKFN0LF9lKX1oYW5kbGVGb2xkZXJEcmFnRW50ZXIoeGUsbmUpe3hlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpLHRoaXMuZm9sZGVySG92ZXJUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1uZX0sNTAwKX1oYW5kbGVGb2xkZXJEcmFnTGVhdmUoeGUsbmUpe3hlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBfZT14ZS5jdXJyZW50VGFyZ2V0LFdlPXhlLnJlbGF0ZWRUYXJnZXQ7V2UmJl9lLmNvbnRhaW5zKFdlKXx8KHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9PT1uZSYmKHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9bnVsbCksdGhpcy5mb2xkZXJIb3ZlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuZm9sZGVySG92ZXJUaW1lciksdGhpcy5mb2xkZXJIb3ZlclRpbWVyPW51bGwpKX1oYW5kbGVGb2xkZXJEcmFnT3Zlcih4ZSl7eGUucHJldmVudERlZmF1bHQoKSx4ZS5zdG9wUHJvcGFnYXRpb24oKSx4ZS5kYXRhVHJhbnNmZXImJih4ZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD10aGlzLmRyYWdnZWRJdGVtPyJtb3ZlIjoiY29weSIpfWNsZWFyRm9sZGVySG92ZXIoKXt0aGlzLmZvbGRlckhvdmVyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5mb2xkZXJIb3ZlclRpbWVyKSx0aGlzLmZvbGRlckhvdmVyVGltZXI9bnVsbCksdGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1udWxsfWhhbmRsZUl0ZW1EcmFnU3RhcnQoeGUsbmUsX2Upe3RoaXMuZHJhZ2dlZEl0ZW09e2tleTpuZSxpc0ZvbGRlcjpfZX0seGUuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCJ0ZXh0L3BsYWluIixuZSkseGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9ImNvcHlNb3ZlIix4ZS50YXJnZXQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX1oYW5kbGVJdGVtRHJhZ0VuZCh4ZSl7dGhpcy5kcmFnZ2VkSXRlbT1udWxsLHhlLnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpfWFzeW5jIG9wZW5Nb3ZlUGlja2VyRGlhbG9nKHhlLG5lKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2U9e2tleTp4ZSxpc0ZvbGRlcjpuZX0sdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSEwLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcygiIil9YXN5bmMgbmF2aWdhdGVNb3ZlUGlja2VyKHhlKXt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PXhlLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcyh4ZSl9YXN5bmMgbG9hZE1vdmVQaWNrZXJQcmVmaXhlcyh4ZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubW92ZVBpY2tlckxvYWRpbmc9ITA7dHJ5e2xldCBuZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUseGUsIi8iKTt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1uZS5wcmVmaXhlc31jYXRjaHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX10aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSExfX1zZWxlY3RNb3ZlRGVzdGluYXRpb24oeGUpe3RoaXMubW92ZVBpY2tlclNvdXJjZSYmKHRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCksdGhpcy5pbml0aWF0ZU1vdmUodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSx0aGlzLm1vdmVQaWNrZXJTb3VyY2UuaXNGb2xkZXIseGUpKX1jbG9zZU1vdmVQaWNrZXJEaWFsb2coKXt0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSExLHRoaXMubW92ZVBpY2tlclNvdXJjZT1udWxsLHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119aW5pdGlhdGVNb3ZlKHhlLG5lLF9lKXtsZXQgV2U9V20oeGUsX2UpO2lmKCFXZS52YWxpZCl7dGhpcy5tb3ZlU291cmNlPXtrZXk6eGUsaXNGb2xkZXI6bmV9LHRoaXMubW92ZURlc3RpbmF0aW9uPV9lLHRoaXMubW92ZUVycm9yPVdlLmVycm9yLHRoaXMuc2hvd01vdmVEaWFsb2c9ITA7cmV0dXJufXRoaXMubW92ZVNvdXJjZT17a2V5OnhlLGlzRm9sZGVyOm5lfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1fZSx0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMuc2hvd01vdmVEaWFsb2c9ITB9YXN5bmMgZXhlY3V0ZU1vdmUoKXtpZighKCF0aGlzLm1vdmVTb3VyY2V8fCF0aGlzLmRhdGFQcm92aWRlcikpe3RoaXMubW92ZUluUHJvZ3Jlc3M9ITA7dHJ5e2xldCB4ZT1tYSh0aGlzLm1vdmVTb3VyY2Uua2V5KSxuZT10aGlzLm1vdmVEZXN0aW5hdGlvbit4ZSsodGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyIvIjoiIiksX2U7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyP19lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXksbmUpOl9lPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXksbmUpLF9lLnN1Y2Nlc3M/KHRoaXMuY2xvc2VNb3ZlRGlhbG9nKCksYXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpKTp0aGlzLm1vdmVFcnJvcj1fZS5lcnJvcnx8Ik1vdmUgb3BlcmF0aW9uIGZhaWxlZCJ9Y2F0Y2goeGUpe3RoaXMubW92ZUVycm9yPWBFcnJvcjogJHt4ZX1gfXRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9fWNsb3NlTW92ZURpYWxvZygpe3RoaXMuc2hvd01vdmVEaWFsb2c9ITEsdGhpcy5tb3ZlU291cmNlPW51bGwsdGhpcy5tb3ZlRGVzdGluYXRpb249IiIsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLm1vdmVJblByb2dyZXNzPSExfW9wZW5SZW5hbWVEaWFsb2coeGUsbmUpe3RoaXMucmVuYW1lU291cmNlPXtrZXk6eGUsaXNGb2xkZXI6bmV9LHRoaXMucmVuYW1lTmFtZT1tYSh4ZSksdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMuc2hvd1JlbmFtZURpYWxvZz0hMCx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgX2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucmVuYW1lLWRpYWxvZy1pbnB1dCIpO2lmKF9lKWlmKF9lLmZvY3VzKCksbmUpX2Uuc2VsZWN0KCk7ZWxzZXtsZXQgV2U9dGhpcy5yZW5hbWVOYW1lLmxhc3RJbmRleE9mKCIuIik7V2U+MD9fZS5zZXRTZWxlY3Rpb25SYW5nZSgwLFdlKTpfZS5zZWxlY3QoKX19KX1hc3luYyBleGVjdXRlUmVuYW1lKCl7aWYoIXRoaXMucmVuYW1lU291cmNlfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgeGU9dGhpcy5yZW5hbWVOYW1lLnRyaW0oKSxuZT1tYSh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpO2lmKHhlPT09bmUpe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudCI7cmV0dXJufWlmKCF4ZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBjYW5ub3QgYmUgZW1wdHkiO3JldHVybn1pZih4ZS5pbmNsdWRlcygiLyIpKXt0aGlzLnJlbmFtZUVycm9yPSdOYW1lIGNhbm5vdCBjb250YWluICIvIic7cmV0dXJufXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMCx0aGlzLnJlbmFtZUVycm9yPW51bGw7dHJ5e2xldCBXZT1qMSh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpK3hlKyh0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLFN0O3RoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyP1N0PWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSxXZSk6U3Q9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LFdlKSxTdC5zdWNjZXNzPyh0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCksYXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpKTp0aGlzLnJlbmFtZUVycm9yPVN0LmVycm9yfHwiUmVuYW1lIGZhaWxlZCJ9Y2F0Y2goX2Upe3RoaXMucmVuYW1lRXJyb3I9YEVycm9yOiAke19lfWB9dGhpcy5yZW5hbWVJblByb2dyZXNzPSExfWNsb3NlUmVuYW1lRGlhbG9nKCl7dGhpcy5zaG93UmVuYW1lRGlhbG9nPSExLHRoaXMucmVuYW1lU291cmNlPW51bGwsdGhpcy5yZW5hbWVOYW1lPSIiLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9cmVuZGVyUmVuYW1lRGlhbG9nKCl7aWYoIXRoaXMuc2hvd1JlbmFtZURpYWxvZ3x8IXRoaXMucmVuYW1lU291cmNlKXJldHVybiIiO2xldCB4ZT10aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7X2U9Pl9lLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHt4ZT8iUmVuYW1lIEZvbGRlciI6IlJlbmFtZSBGaWxlIn08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHtqMSh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuYW1lRXJyb3I/d2A8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMucmVuYW1lRXJyb3J9PC9kaXY+YDoiIn0KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IHJlbmFtZS1kaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7eGU/ImZvbGRlci1uYW1lIjoiZmlsZW5hbWUuZXh0In0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZW5hbWVOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtfZT0+e3RoaXMucmVuYW1lTmFtZT1fZS50YXJnZXQudmFsdWUsdGhpcy5yZW5hbWVFcnJvcj1udWxsfX0KICAgICAgICAgICAgQGtleWRvd249JHtfZT0+e19lLmtleT09PSJFbnRlciImJnRoaXMuZXhlY3V0ZVJlbmFtZSgpLF9lLmtleT09PSJFc2NhcGUiJiZ0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc30+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZVJlbmFtZSgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc3x8IXRoaXMucmVuYW1lTmFtZS50cmltKCl9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5hbWVJblByb2dyZXNzPyJSZW5hbWluZy4uLiI6IlJlbmFtZSJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVEaWFsb2d8fCF0aGlzLm1vdmVTb3VyY2UpcmV0dXJuIiI7bGV0IHhlPW1hKHRoaXMubW92ZVNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7bmU9Pm5lLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAke3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iRm9sZGVyIjoiRmlsZSJ9PC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMubW92ZUVycm9yfTwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLXN1bW1hcnkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+RnJvbTo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZVNvdXJjZS5rZXl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+VG86PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVEZXN0aW5hdGlvbn0ke3hlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/IiI6d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZU1vdmUoKX0KICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgICAgJHt0aGlzLm1vdmVJblByb2dyZXNzPyJNb3ZpbmcuLi4iOiJNb3ZlIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZVBpY2tlckRpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nfHwhdGhpcy5tb3ZlUGlja2VyU291cmNlKXJldHVybiIiO2xldCB4ZT1tYSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KSxuZT1qMSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2cgbW92ZS1waWNrZXItZGlhbG9nIiBAY2xpY2s9JHtfZT0+X2Uuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICIke3hlfSIgdG8uLi48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcigiIil9PgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7cDUodGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCkubWFwKF9lPT53YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihfZSl9PgogICAgICAgICAgICAgICAgJHttYShfZSl9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nP3dgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5Mb2FkaW5nLi4uPC9kaXY+YDoiIn0KICAgICAgICAgICAgJHshdGhpcy5tb3ZlUGlja2VyTG9hZGluZyYmdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKF9lPT5fZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPk5vIHN1YmZvbGRlcnM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoX2U9Pl9lIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubWFwKF9lPT53YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihfZSl9CiAgICAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbihfZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHttYShfZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9PT1uZX0+CiAgICAgICAgICAgICAgTW92ZSBIZXJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVDcmVhdGUoKXtpZighdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgeGU9dGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKSxuZTt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIj9uZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCt4ZSsiLy5rZWVwIjpuZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCt4ZTtsZXQgX2U9eGUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIsV2U9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP0U0KF9lKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixTdD10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/R20oX2UpOiIiO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsbmUsYnRvYShTdCksV2UpJiYodGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHRoaXMuY3JlYXRlRGlhbG9nUHJlZml4KSl9cmVuZGVyQ3JlYXRlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd0NyZWF0ZURpYWxvZylyZXR1cm4iIjtsZXQgeGU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciIsbmU9eGU/IkNyZWF0ZSBOZXcgRm9sZGVyIjoiQ3JlYXRlIE5ldyBGaWxlIixfZT14ZT8iZm9sZGVyLW5hbWUgb3IgcGF0aC90by9mb2xkZXIiOiJmaWxlbmFtZS50eHQgb3IgcGF0aC90by9maWxlLnR4dCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke1dlPT5XZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7bmV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXh9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke19lfQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNyZWF0ZURpYWxvZ05hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke1dlPT50aGlzLmNyZWF0ZURpYWxvZ05hbWU9V2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICBAa2V5ZG93bj0ke1dlPT5XZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1oaW50Ij4KICAgICAgICAgICAgVXNlICIvIiB0byBjcmVhdGUgbmVzdGVkICR7eGU/ImZvbGRlcnMiOiJwYXRoIn0gKGUuZy4sICR7eGU/InBhcmVudC9jaGlsZCI6ImZvbGRlci9maWxlLnR4dCJ9KQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfQogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ3JlYXRlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5sb2FkaW5nJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImxvYWRpbmciPkxvYWRpbmcuLi48L2Rpdj5gOndgCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbnMtY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuY29sdW1ucy5tYXAoKHhlLG5lKT0+dGhpcy5yZW5kZXJDb2x1bW5XcmFwcGVyKHhlLG5lKSl9CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMucmVuZGVyQ3JlYXRlRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJNb3ZlRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl9CiAgICAgICR7dGhpcy5yZW5kZXJSZW5hbWVEaWFsb2coKX0KICAgIGB9cmVuZGVyQ29sdW1uV3JhcHBlcih4ZSxuZSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi13cmFwcGVyIj4KICAgICAgICAke3RoaXMucmVuZGVyQ29sdW1uKHhlLG5lKX0KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSAke3RoaXMucmVzaXppbmc/LmNvbHVtbkluZGV4PT09bmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke19lPT50aGlzLnN0YXJ0UmVzaXplKF9lLG5lKX0KICAgICAgICA+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDb2x1bW4oeGUsbmUpe2xldCBfZT14ZS5wcmVmaXg/bWEoeGUucHJlZml4KTp0aGlzLmJ1Y2tldE5hbWU7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iY29sdW1uICR7dGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PT09bmU/ImRyYWctb3ZlciI6IiJ9IgogICAgICAgIHN0eWxlPSJ3aWR0aDogJHt4ZS53aWR0aH1weCIKICAgICAgICBAZHJhZ2VudGVyPSR7V2U9PnRoaXMuaGFuZGxlQ29sdW1uRHJhZ0VudGVyKFdlLG5lKX0KICAgICAgICBAZHJhZ292ZXI9JHtXZT0+dGhpcy5oYW5kbGVDb2x1bW5EcmFnT3ZlcihXZSl9CiAgICAgICAgQGRyYWdsZWF2ZT0ke1dlPT50aGlzLmhhbmRsZUNvbHVtbkRyYWdMZWF2ZShXZSxuZSl9CiAgICAgICAgQGRyb3A9JHtXZT0+dGhpcy5oYW5kbGVDb2x1bW5Ecm9wKFdlLG5lKX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi1oZWFkZXIiIHRpdGxlPSR7eGUucHJlZml4fHx0aGlzLmJ1Y2tldE5hbWV9PgogICAgICAgICAgJHtfZX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4taXRlbXMiIEBjb250ZXh0bWVudT0ke1dlPT50aGlzLmhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudShXZSxuZSl9PgogICAgICAgICAgJHt4ZS5wcmVmaXhlcy5sZW5ndGg9PT0wJiZ4ZS5vYmplY3RzLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+RW1wdHkgZm9sZGVyPC9kaXY+YDoiIn0KICAgICAgICAgICR7eGUucHJlZml4ZXMubWFwKFdlPT53YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJjb2x1bW4taXRlbSBmb2xkZXIgJHt4ZS5zZWxlY3RlZEl0ZW09PT1XZT8ic2VsZWN0ZWQiOiIifSAke3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg9PT1XZT8iZHJhZy10YXJnZXQiOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEZvbGRlcihuZSxXZSl9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtTdD0+dGhpcy5oYW5kbGVGb2xkZXJDb250ZXh0TWVudShTdCxuZSxXZSl9CiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7U3Q9PnRoaXMuaGFuZGxlSXRlbURyYWdTdGFydChTdCxXZSwhMCl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke1N0PT50aGlzLmhhbmRsZUl0ZW1EcmFnRW5kKFN0KX0KICAgICAgICAgICAgICAgIEBkcmFnZW50ZXI9JHtTdD0+dGhpcy5oYW5kbGVGb2xkZXJEcmFnRW50ZXIoU3QsV2UpfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7U3Q9PnRoaXMuaGFuZGxlRm9sZGVyRHJhZ092ZXIoU3QpfQogICAgICAgICAgICAgICAgQGRyYWdsZWF2ZT0ke1N0PT50aGlzLmhhbmRsZUZvbGRlckRyYWdMZWF2ZShTdCxXZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiIC8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke21hKFdlKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJjaGV2cm9uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI5IDE4IDE1IDEyIDkgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgICR7eGUub2JqZWN0cy5tYXAoV2U9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImNvbHVtbi1pdGVtICR7eGUuc2VsZWN0ZWRJdGVtPT09V2Uua2V5PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0RmlsZShuZSxXZS5rZXkpfQogICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7U3Q9PnRoaXMuaGFuZGxlRmlsZUNvbnRleHRNZW51KFN0LG5lLFdlLmtleSl9CiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7U3Q9PnRoaXMuaGFuZGxlSXRlbURyYWdTdGFydChTdCxXZS5rZXksITEpfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHtTdD0+dGhpcy5oYW5kbGVJdGVtRHJhZ0VuZChTdCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBhdGggZD0iJHt0aGlzLmdldEZpbGVJY29uKFdlLmtleSl9IiAvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHttYShXZS5rZXkpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9PT1uZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZHJhZy1oaW50Ij4KICAgICAgICAgICAgJHt0aGlzLmRyYWdnZWRJdGVtP3RoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/YE1vdmUgdG8gJHttYSh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4KX1gOiJNb3ZlIGhlcmUiOnRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXg/YERyb3AgdG8gdXBsb2FkIGludG8gJHttYSh0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4KX1gOiJEcm9wIHRvIHVwbG9hZCBoZXJlIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgJHt0aGlzLnVwbG9hZGluZz93YAogICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtdGV4dCI+VXBsb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy51cGxvYWRQcm9ncmVzcz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1wcm9ncmVzcyI+JHt0aGlzLnVwbG9hZFByb2dyZXNzLmN1cnJlbnR9IC8gJHt0aGlzLnVwbG9hZFByb2dyZXNzLnRvdGFsfSBmaWxlczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3t2dChyLHQpfX07cmV0dXJuIGhsPXJ9KSgpfSk7dmFyIFlhLF90LHYwYSxrUWU9ZigoKT0+e2xlKCk7WHIoKTtRZSgpO1hXKCk7WWE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LF90PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSx2MGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXN0b3JhZ2Uta2V5cyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdLEIsTT1bXSxTPVtdLEUsQT1bXSxGPVtdLFcsaj1bXSxHPVtdLGhlLFI9W10sVT1bXSxtZSxJPVtdLHE9W10sY2UsdWU9W10sWT1bXSxRLEo9W10sWj1bXSxnZSxhZT1bXSxyZT1bXSx5ZSxWPVtdLEg9W10sb2Usc2U9W10sdGU9W10semUsT2U9W10scWU9W10sZHQsJGU9W10sQ2U9W10sTWUsZGU9W10sdmU9W10sQWUsWmU9W10sbnQ9W10senQsVGU9W10sd2U9W10sUmUsZmU9W10sYmU9W10sRWUsZnQ9W10sbXQ9W10sSXQsWGE9W10sSmE9W10sd3MsVWU9W10sdXQ9W10sUWEsTXI9W10sJHI9W10sVnIsRHI9W10seG89W107dmFyIHlvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzU3RvcmFnZUtleXMiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgTGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpOdW1iZXJ9KV0seT1bSygpXSxOPVtLKCldLE89W0soKV0sQj1bSygpXSxFPVtLKCldLFc9W0soKV0saGU9W0soKV0sbWU9W0soKV0sY2U9W0soKV0sUT1bSygpXSxnZT1bSygpXSx5ZT1bSygpXSxvZT1bSygpXSx6ZT1bSygpXSxkdD1bSygpXSxNZT1bSygpXSxBZT1bSygpXSx6dD1bSygpXSxSZT1bSygpXSxFZT1bSygpXSxJdD1bSygpXSx3cz1bSygpXSxRYT1bSygpXSxWcj1bSygpXSxZYSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFQcm92aWRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+ImRhdGFQcm92aWRlciJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLmRhdGFQcm92aWRlciwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLmRhdGFQcm92aWRlcj1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sbixsKSxZYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1Y2tldE5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJidWNrZXROYW1lImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UuYnVja2V0TmFtZSwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLmJ1Y2tldE5hbWU9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LGMscCksWWEodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4iY3VycmVudFByZWZpeCJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLmN1cnJlbnRQcmVmaXgsImdldCIpLHNldDpzKChTZSxCZSk9PntTZS5jdXJyZW50UHJlZml4PUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxtLHYpLFlhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmcmVzaEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+InJlZnJlc2hLZXkiaW4gU2UsImhhcyIpLGdldDpzKFNlPT5TZS5yZWZyZXNoS2V5LCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UucmVmcmVzaEtleT1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sYixnKSxZYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbEtleXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJhbGxLZXlzImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UuYWxsS2V5cywiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLmFsbEtleXM9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LGssQyksWWEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmVmaXhlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+InByZWZpeGVzImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UucHJlZml4ZXMsImdldCIpLHNldDpzKChTZSxCZSk9PntTZS5wcmVmaXhlcz1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sXyx6KSxZYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJsb2FkaW5nImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UubG9hZGluZywiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLmxvYWRpbmc9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LFQsUCksWWEodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+InNlbGVjdGVkS2V5ImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2Uuc2VsZWN0ZWRLZXksImdldCIpLHNldDpzKChTZSxCZSk9PntTZS5zZWxlY3RlZEtleT1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sTSxTKSxZYSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJmaWx0ZXJUZXh0ImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UuZmlsdGVyVGV4dCwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLmZpbHRlclRleHQ9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LEEsRiksWWEodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q3JlYXRlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4ic2hvd0NyZWF0ZURpYWxvZyJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLnNob3dDcmVhdGVEaWFsb2csImdldCIpLHNldDpzKChTZSxCZSk9PntTZS5zaG93Q3JlYXRlRGlhbG9nPUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxqLEcpLFlhKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1R5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJjcmVhdGVEaWFsb2dUeXBlImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UuY3JlYXRlRGlhbG9nVHlwZSwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLmNyZWF0ZURpYWxvZ1R5cGU9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LFIsVSksWWEodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4iY3JlYXRlRGlhbG9nUHJlZml4ImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UuY3JlYXRlRGlhbG9nUHJlZml4LCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UuY3JlYXRlRGlhbG9nUHJlZml4PUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxJLHEpLFlhKHRoaXMsbnVsbCxjZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ05hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJjcmVhdGVEaWFsb2dOYW1lImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UuY3JlYXRlRGlhbG9nTmFtZSwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLmNyZWF0ZURpYWxvZ05hbWU9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LHVlLFkpLFlhKHRoaXMsbnVsbCxRLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJzaG93TW92ZURpYWxvZyJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLnNob3dNb3ZlRGlhbG9nLCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2Uuc2hvd01vdmVEaWFsb2c9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LEosWiksWWEodGhpcyxudWxsLGdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+Im1vdmVTb3VyY2UiaW4gU2UsImhhcyIpLGdldDpzKFNlPT5TZS5tb3ZlU291cmNlLCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UubW92ZVNvdXJjZT1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sYWUscmUpLFlhKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLm1vdmVEZXN0aW5hdGlvbj1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sVixIKSxZYSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+Im1vdmVJblByb2dyZXNzImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UubW92ZUluUHJvZ3Jlc3MsImdldCIpLHNldDpzKChTZSxCZSk9PntTZS5tb3ZlSW5Qcm9ncmVzcz1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sc2UsdGUpLFlhKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+Im1vdmVFcnJvciJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLm1vdmVFcnJvciwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLm1vdmVFcnJvcj1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sT2UscWUpLFlhKHRoaXMsbnVsbCxkdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlUGlja2VyRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4ic2hvd01vdmVQaWNrZXJEaWFsb2ciaW4gU2UsImhhcyIpLGdldDpzKFNlPT5TZS5zaG93TW92ZVBpY2tlckRpYWxvZywiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLnNob3dNb3ZlUGlja2VyRGlhbG9nPUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSwkZSxDZSksWWEodGhpcyxudWxsLE1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclNvdXJjZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+Im1vdmVQaWNrZXJTb3VyY2UiaW4gU2UsImhhcyIpLGdldDpzKFNlPT5TZS5tb3ZlUGlja2VyU291cmNlLCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UubW92ZVBpY2tlclNvdXJjZT1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sZGUsdmUpLFlhKHRoaXMsbnVsbCxBZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVQaWNrZXJDdXJyZW50UHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4ibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiaW4gU2UsImhhcyIpLGdldDpzKFNlPT5TZS5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCwiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxaZSxudCksWWEodGhpcyxudWxsLHp0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlclByZWZpeGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4ibW92ZVBpY2tlclByZWZpeGVzImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UubW92ZVBpY2tlclByZWZpeGVzLCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UubW92ZVBpY2tlclByZWZpeGVzPUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxUZSx3ZSksWWEodGhpcyxudWxsLFJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJtb3ZlUGlja2VyTG9hZGluZyJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLm1vdmVQaWNrZXJMb2FkaW5nLCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UubW92ZVBpY2tlckxvYWRpbmc9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LGZlLGJlKSxZYSh0aGlzLG51bGwsRWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UmVuYW1lRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4ic2hvd1JlbmFtZURpYWxvZyJpbiBTZSwiaGFzIiksZ2V0OnMoU2U9PlNlLnNob3dSZW5hbWVEaWFsb2csImdldCIpLHNldDpzKChTZSxCZSk9PntTZS5zaG93UmVuYW1lRGlhbG9nPUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxmdCxtdCksWWEodGhpcyxudWxsLEl0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFNlPT4icmVuYW1lU291cmNlImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UucmVuYW1lU291cmNlLCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UucmVuYW1lU291cmNlPUJlfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxYYSxKYSksWWEodGhpcyxudWxsLHdzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+InJlbmFtZU5hbWUiaW4gU2UsImhhcyIpLGdldDpzKFNlPT5TZS5yZW5hbWVOYW1lLCJnZXQiKSxzZXQ6cygoU2UsQmUpPT57U2UucmVuYW1lTmFtZT1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sVWUsdXQpLFlhKHRoaXMsbnVsbCxRYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUluUHJvZ3Jlc3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoU2U9PiJyZW5hbWVJblByb2dyZXNzImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UucmVuYW1lSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OnMoKFNlLEJlKT0+e1NlLnJlbmFtZUluUHJvZ3Jlc3M9QmV9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LE1yLCRyKSxZYSh0aGlzLG51bGwsVnIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVFcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTZT0+InJlbmFtZUVycm9yImluIFNlLCJoYXMiKSxnZXQ6cyhTZT0+U2UucmVuYW1lRXJyb3IsImdldCIpLHNldDpzKChTZSxCZSk9PntTZS5yZW5hbWVFcnJvcj1CZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sRHIseG8pLFlhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkxlfSxudWxsLHQpLHlvPXI9ZS52YWx1ZSxMZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMZX0pfSNlPV90KHRoaXMsbixudWxsKTtnZXQgZGF0YVByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGFQcm92aWRlcihMZSl7dGhpcy4jZT1MZX0jdD0oX3QodGhpcyxsKSxfdCh0aGlzLGMsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKExlKXt0aGlzLiN0PUxlfSNhPShfdCh0aGlzLHApLF90KHRoaXMsbSwiIikpO2dldCBjdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRQcmVmaXgoTGUpe3RoaXMuI2E9TGV9I3I9KF90KHRoaXMsdiksX3QodGhpcyxiLDApKTtnZXQgcmVmcmVzaEtleSgpe3JldHVybiB0aGlzLiNyfXNldCByZWZyZXNoS2V5KExlKXt0aGlzLiNyPUxlfSNzPShfdCh0aGlzLGcpLF90KHRoaXMsayxbXSkpO2dldCBhbGxLZXlzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFsbEtleXMoTGUpe3RoaXMuI3M9TGV9I2k9KF90KHRoaXMsQyksX3QodGhpcyxfLFtdKSk7Z2V0IHByZWZpeGVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHByZWZpeGVzKExlKXt0aGlzLiNpPUxlfSNvPShfdCh0aGlzLHopLF90KHRoaXMsVCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGxvYWRpbmcoTGUpe3RoaXMuI289TGV9I249KF90KHRoaXMsUCksX3QodGhpcyxNLCIiKSk7Z2V0IHNlbGVjdGVkS2V5KCl7cmV0dXJuIHRoaXMuI259c2V0IHNlbGVjdGVkS2V5KExlKXt0aGlzLiNuPUxlfSNsPShfdCh0aGlzLFMpLF90KHRoaXMsQSwiIikpO2dldCBmaWx0ZXJUZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGZpbHRlclRleHQoTGUpe3RoaXMuI2w9TGV9I2M9KF90KHRoaXMsRiksX3QodGhpcyxqLCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0NyZWF0ZURpYWxvZyhMZSl7dGhpcy4jYz1MZX0jZD0oX3QodGhpcyxHKSxfdCh0aGlzLFIsImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNkfXNldCBjcmVhdGVEaWFsb2dUeXBlKExlKXt0aGlzLiNkPUxlfSN1PShfdCh0aGlzLFUpLF90KHRoaXMsSSwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KExlKXt0aGlzLiN1PUxlfSNwPShfdCh0aGlzLHEpLF90KHRoaXMsdWUsIiIpKTtnZXQgY3JlYXRlRGlhbG9nTmFtZSgpe3JldHVybiB0aGlzLiNwfXNldCBjcmVhdGVEaWFsb2dOYW1lKExlKXt0aGlzLiNwPUxlfSNmPShfdCh0aGlzLFkpLF90KHRoaXMsSiwhMSkpO2dldCBzaG93TW92ZURpYWxvZygpe3JldHVybiB0aGlzLiNmfXNldCBzaG93TW92ZURpYWxvZyhMZSl7dGhpcy4jZj1MZX0jaD0oX3QodGhpcyxaKSxfdCh0aGlzLGFlLG51bGwpKTtnZXQgbW92ZVNvdXJjZSgpe3JldHVybiB0aGlzLiNofXNldCBtb3ZlU291cmNlKExlKXt0aGlzLiNoPUxlfSNtPShfdCh0aGlzLHJlKSxfdCh0aGlzLFYsIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI219c2V0IG1vdmVEZXN0aW5hdGlvbihMZSl7dGhpcy4jbT1MZX0jZz0oX3QodGhpcyxIKSxfdCh0aGlzLHNlLCExKSk7Z2V0IG1vdmVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVJblByb2dyZXNzKExlKXt0aGlzLiNnPUxlfSNiPShfdCh0aGlzLHRlKSxfdCh0aGlzLE9lLG51bGwpKTtnZXQgbW92ZUVycm9yKCl7cmV0dXJuIHRoaXMuI2J9c2V0IG1vdmVFcnJvcihMZSl7dGhpcy4jYj1MZX0jdj0oX3QodGhpcyxxZSksX3QodGhpcywkZSwhMSkpO2dldCBzaG93TW92ZVBpY2tlckRpYWxvZygpe3JldHVybiB0aGlzLiN2fXNldCBzaG93TW92ZVBpY2tlckRpYWxvZyhMZSl7dGhpcy4jdj1MZX0jeD0oX3QodGhpcyxDZSksX3QodGhpcyxkZSxudWxsKSk7Z2V0IG1vdmVQaWNrZXJTb3VyY2UoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbW92ZVBpY2tlclNvdXJjZShMZSl7dGhpcy4jeD1MZX0jeT0oX3QodGhpcyx2ZSksX3QodGhpcyxaZSwiIikpO2dldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeChMZSl7dGhpcy4jeT1MZX0jdz0oX3QodGhpcyxudCksX3QodGhpcyxUZSxbXSkpO2dldCBtb3ZlUGlja2VyUHJlZml4ZXMoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlclByZWZpeGVzKExlKXt0aGlzLiN3PUxlfSNNPShfdCh0aGlzLHdlKSxfdCh0aGlzLGZlLCExKSk7Z2V0IG1vdmVQaWNrZXJMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI019c2V0IG1vdmVQaWNrZXJMb2FkaW5nKExlKXt0aGlzLiNNPUxlfSNrPShfdCh0aGlzLGJlKSxfdCh0aGlzLGZ0LCExKSk7Z2V0IHNob3dSZW5hbWVEaWFsb2coKXtyZXR1cm4gdGhpcy4ja31zZXQgc2hvd1JlbmFtZURpYWxvZyhMZSl7dGhpcy4jaz1MZX0jUz0oX3QodGhpcyxtdCksX3QodGhpcyxYYSxudWxsKSk7Z2V0IHJlbmFtZVNvdXJjZSgpe3JldHVybiB0aGlzLiNTfXNldCByZW5hbWVTb3VyY2UoTGUpe3RoaXMuI1M9TGV9I3o9KF90KHRoaXMsSmEpLF90KHRoaXMsVWUsIiIpKTtnZXQgcmVuYW1lTmFtZSgpe3JldHVybiB0aGlzLiN6fXNldCByZW5hbWVOYW1lKExlKXt0aGlzLiN6PUxlfSNDPShfdCh0aGlzLHV0KSxfdCh0aGlzLE1yLCExKSk7Z2V0IHJlbmFtZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jQ31zZXQgcmVuYW1lSW5Qcm9ncmVzcyhMZSl7dGhpcy4jQz1MZX0jXz0oX3QodGhpcywkciksX3QodGhpcyxEcixudWxsKSk7Z2V0IHJlbmFtZUVycm9yKCl7cmV0dXJuIHRoaXMuI199c2V0IHJlbmFtZUVycm9yKExlKXt0aGlzLiNfPUxlfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxQZSxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5rZXlzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmZpbHRlci1iYXIgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzQwNDA0MCIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC5rZXlzLWxpc3QgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgIH0KCiAgICAgIHRoZWFkIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM2NjYiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICB9CgogICAgICB0ZCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyYTJhM2UiKX07CiAgICAgIH0KCiAgICAgIHRyOmhvdmVyIHRkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykiKX07CiAgICAgIH0KCiAgICAgIHRyLnNlbGVjdGVkIHRkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLmtleS1jZWxsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAua2V5LWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZvbGRlci1pY29uIHsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLmtleS1uYW1lIHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zaXplLWNlbGwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAuZGlhbG9nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuZGlhbG9nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZTFlMWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1pbi13aWR0aDogNDAwcHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgICB9CgogICAgICAuZGlhbG9nLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctbG9jYXRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE0MTQxNCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlhbG9nLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWwgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYWFhIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1MDUwNTAiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIE1vdmUgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1zdW1tYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubW92ZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAubW92ZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLXBhdGggewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNmM2Y0NiIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAubW92ZS1lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAvKiBNb3ZlIHBpY2tlciBkaWFsb2cgc3R5bGVzICovCiAgICAgIC5tb3ZlLXBpY2tlci1kaWFsb2cgewogICAgICAgIG1pbi13aWR0aDogNDUwcHg7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItYnJlYWRjcnVtYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAucGlja2VyLXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAubmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItZW1wdHkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpfXVwZGF0ZWQoTGUpeyhMZS5oYXMoImJ1Y2tldE5hbWUiKXx8TGUuaGFzKCJjdXJyZW50UHJlZml4Iil8fExlLmhhcygicmVmcmVzaEtleSIpKSYmdGhpcy5sb2FkT2JqZWN0cygpfWFzeW5jIGxvYWRPYmplY3RzKCl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IExlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSx0aGlzLmN1cnJlbnRQcmVmaXgsIi8iKTt0aGlzLmFsbEtleXM9TGUub2JqZWN0cyx0aGlzLnByZWZpeGVzPUxlLnByZWZpeGVzfWNhdGNoKExlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIG9iamVjdHM6IixMZSksdGhpcy5hbGxLZXlzPVtdLHRoaXMucHJlZml4ZXM9W119dGhpcy5sb2FkaW5nPSExfX1oYW5kbGVGaWx0ZXJJbnB1dChMZSl7dGhpcy5maWx0ZXJUZXh0PUxlLnRhcmdldC52YWx1ZX1zZWxlY3RLZXkoTGUsU2Upe3RoaXMuc2VsZWN0ZWRLZXk9TGUsU2U/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmF2aWdhdGUiLHtkZXRhaWw6e3ByZWZpeDpMZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKTp0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXktc2VsZWN0ZWQiLHtkZXRhaWw6e2tleTpMZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXQgZmlsdGVyZWRJdGVtcygpe2xldCBMZT10aGlzLmZpbHRlclRleHQudG9Mb3dlckNhc2UoKSxTZT10aGlzLnByZWZpeGVzLmZpbHRlcihpYT0+IUxlfHxtYShpYSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhMZSkpLm1hcChpYT0+KHtrZXk6aWEsaXNGb2xkZXI6ITAsc2l6ZTp2b2lkIDB9KSksQmU9dGhpcy5hbGxLZXlzLmZpbHRlcihpYT0+IUxlfHxtYShpYS5rZXkpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoTGUpKS5tYXAoaWE9Pih7a2V5OmlhLmtleSxpc0ZvbGRlcjohMSxzaXplOmlhLnNpemV9KSk7cmV0dXJuWy4uLlNlLC4uLkJlXX1oYW5kbGVJdGVtQ29udGV4dE1lbnUoTGUsU2UsQmUpe3RoaXMuZGF0YVByb3ZpZGVyJiYoTGUucHJldmVudERlZmF1bHQoKSxCZT90YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhMZSxbe25hbWU6Ik9wZW4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyT3BlbiIsYWN0aW9uOnMoYXN5bmMoKT0+e3RoaXMuc2VsZWN0S2V5KFNlLCEwKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjpzKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChTZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhTZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coU2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJOZXcgRm9sZGVyIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246cyhhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIsU2UpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIEluc2lkZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlUGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmaWxlIixTZSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246cyhhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZvbGRlciAiJHttYShTZSl9IiBhbmQgYWxsIGl0cyBjb250ZW50cz9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlUHJlZml4KHRoaXMuYnVja2V0TmFtZSxTZSkmJmF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX0sImFjdGlvbiIpfV0pOnRhLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKExlLFt7bmFtZToiUHJldmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGFjdGlvbjpzKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEtleShTZSwhMSl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246cyhhc3luYygpPT57bGV0IGlhPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmdldE9iamVjdFVybCh0aGlzLmJ1Y2tldE5hbWUsU2UpLE1zPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtNcy5ocmVmPWlhLE1zLmRvd25sb2FkPW1hKFNlKSxNcy5jbGljaygpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IFBhdGgiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOnMoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KFNlKX0sImFjdGlvbiIpfSx7bmFtZToiUmVuYW1lIixpY29uTmFtZToibHVjaWRlOnBlbmNpbCIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5vcGVuUmVuYW1lRGlhbG9nKFNlLCExKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTW92ZSB0by4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJJbnB1dCIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5vcGVuTW92ZVBpY2tlckRpYWxvZyhTZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjpzKGFzeW5jKCk9Pntjb25maXJtKGBEZWxldGUgZmlsZSAiJHttYShTZSl9Ij9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSxTZSkmJmF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX0sImFjdGlvbiIpfV0pKX1oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoTGUpe0xlLnRhcmdldC5jbG9zZXN0KCJ0ciIpfHwoTGUucHJldmVudERlZmF1bHQoKSx0YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhMZSxbe25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLHRoaXMuY3VycmVudFByZWZpeCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsdGhpcy5jdXJyZW50UHJlZml4KSwiYWN0aW9uIil9XSkpfW9wZW5DcmVhdGVEaWFsb2coTGUsU2Upe3RoaXMuY3JlYXRlRGlhbG9nVHlwZT1MZSx0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeD1TZSx0aGlzLmNyZWF0ZURpYWxvZ05hbWU9IiIsdGhpcy5zaG93Q3JlYXRlRGlhbG9nPSEwfWFzeW5jIGhhbmRsZUNyZWF0ZSgpe2lmKCF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBMZT10aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpLFNlO3RoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmb2xkZXIiP1NlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K0xlKyIvLmtlZXAiOlNlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K0xlO2xldCBCZT1MZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIixpYT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/RTQoQmUpOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLE1zPXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmaWxlIj9HbShCZSk6IiI7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSxTZSxidG9hKE1zKSxpYSkmJih0aGlzLnNob3dDcmVhdGVEaWFsb2c9ITEsYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKX1yZW5kZXJDcmVhdGVEaWFsb2coKXtpZighdGhpcy5zaG93Q3JlYXRlRGlhbG9nKXJldHVybiIiO2xldCBMZT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIixTZT1MZT8iQ3JlYXRlIE5ldyBGb2xkZXIiOiJDcmVhdGUgTmV3IEZpbGUiLEJlPUxlPyJmb2xkZXItbmFtZSBvciBwYXRoL3RvL2ZvbGRlciI6ImZpbGVuYW1lLnR4dCBvciBwYXRoL3RvL2ZpbGUudHh0IjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7aWE9PmlhLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHtTZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHt0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7QmV9CiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuY3JlYXRlRGlhbG9nTmFtZX0KICAgICAgICAgICAgQGlucHV0PSR7aWE9PnRoaXMuY3JlYXRlRGlhbG9nTmFtZT1pYS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgIEBrZXlkb3duPSR7aWE9PmlhLmtleT09PSJFbnRlciImJnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWhpbnQiPgogICAgICAgICAgICBVc2UgIi8iIHRvIGNyZWF0ZSBuZXN0ZWQgJHtMZT8iZm9sZGVycyI6InBhdGgifSAoZS5nLiwgJHtMZT8icGFyZW50L2NoaWxkIjoiZm9sZGVyL2ZpbGUudHh0In0pCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCl9CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBDcmVhdGUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIG9wZW5Nb3ZlUGlja2VyRGlhbG9nKExlLFNlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2U9e2tleTpMZSxpc0ZvbGRlcjpTZX0sdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSEwLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcygiIil9YXN5bmMgbmF2aWdhdGVNb3ZlUGlja2VyKExlKXt0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PUxlLGF3YWl0IHRoaXMubG9hZE1vdmVQaWNrZXJQcmVmaXhlcyhMZSl9YXN5bmMgbG9hZE1vdmVQaWNrZXJQcmVmaXhlcyhMZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubW92ZVBpY2tlckxvYWRpbmc9ITA7dHJ5e2xldCBTZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsTGUsIi8iKTt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1TZS5wcmVmaXhlc31jYXRjaHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX10aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSExfX1zZWxlY3RNb3ZlRGVzdGluYXRpb24oTGUpe3RoaXMubW92ZVBpY2tlclNvdXJjZSYmKHRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCksdGhpcy5pbml0aWF0ZU1vdmUodGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSx0aGlzLm1vdmVQaWNrZXJTb3VyY2UuaXNGb2xkZXIsTGUpKX1jbG9zZU1vdmVQaWNrZXJEaWFsb2coKXt0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nPSExLHRoaXMubW92ZVBpY2tlclNvdXJjZT1udWxsLHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119aW5pdGlhdGVNb3ZlKExlLFNlLEJlKXtsZXQgaWE9V20oTGUsQmUpO2lmKCFpYS52YWxpZCl7dGhpcy5tb3ZlU291cmNlPXtrZXk6TGUsaXNGb2xkZXI6U2V9LHRoaXMubW92ZURlc3RpbmF0aW9uPUJlLHRoaXMubW92ZUVycm9yPWlhLmVycm9yLHRoaXMuc2hvd01vdmVEaWFsb2c9ITA7cmV0dXJufXRoaXMubW92ZVNvdXJjZT17a2V5OkxlLGlzRm9sZGVyOlNlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1CZSx0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMuc2hvd01vdmVEaWFsb2c9ITB9YXN5bmMgZXhlY3V0ZU1vdmUoKXtpZighKCF0aGlzLm1vdmVTb3VyY2V8fCF0aGlzLmRhdGFQcm92aWRlcikpe3RoaXMubW92ZUluUHJvZ3Jlc3M9ITA7dHJ5e2xldCBMZT1tYSh0aGlzLm1vdmVTb3VyY2Uua2V5KSxTZT10aGlzLm1vdmVEZXN0aW5hdGlvbitMZSxCZTt0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/QmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSxTZSk6QmU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSxTZSksQmUuc3VjY2Vzcz8odGhpcy5jbG9zZU1vdmVEaWFsb2coKSxhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCkpOnRoaXMubW92ZUVycm9yPUJlLmVycm9yfHwiTW92ZSBvcGVyYXRpb24gZmFpbGVkIn1jYXRjaChMZSl7dGhpcy5tb3ZlRXJyb3I9YEVycm9yOiAke0xlfWB9dGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMX19Y2xvc2VNb3ZlRGlhbG9nKCl7dGhpcy5zaG93TW92ZURpYWxvZz0hMSx0aGlzLm1vdmVTb3VyY2U9bnVsbCx0aGlzLm1vdmVEZXN0aW5hdGlvbj0iIix0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9b3BlblJlbmFtZURpYWxvZyhMZSxTZSl7dGhpcy5yZW5hbWVTb3VyY2U9e2tleTpMZSxpc0ZvbGRlcjpTZX0sdGhpcy5yZW5hbWVOYW1lPW1hKExlKSx0aGlzLnJlbmFtZUVycm9yPW51bGwsdGhpcy5zaG93UmVuYW1lRGlhbG9nPSEwLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBCZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5yZW5hbWUtZGlhbG9nLWlucHV0Iik7aWYoQmUpaWYoQmUuZm9jdXMoKSxTZSlCZS5zZWxlY3QoKTtlbHNle2xldCBpYT10aGlzLnJlbmFtZU5hbWUubGFzdEluZGV4T2YoIi4iKTtpYT4wP0JlLnNldFNlbGVjdGlvblJhbmdlKDAsaWEpOkJlLnNlbGVjdCgpfX0pfWFzeW5jIGV4ZWN1dGVSZW5hbWUoKXtpZighdGhpcy5yZW5hbWVTb3VyY2V8fCF0aGlzLnJlbmFtZU5hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBMZT10aGlzLnJlbmFtZU5hbWUudHJpbSgpLFNlPW1hKHRoaXMucmVuYW1lU291cmNlLmtleSk7aWYoTGU9PT1TZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBpcyB0aGUgc2FtZSBhcyBjdXJyZW50IjtyZXR1cm59aWYoIUxlKXt0aGlzLnJlbmFtZUVycm9yPSJOYW1lIGNhbm5vdCBiZSBlbXB0eSI7cmV0dXJufWlmKExlLmluY2x1ZGVzKCIvIikpe3RoaXMucmVuYW1lRXJyb3I9J05hbWUgY2Fubm90IGNvbnRhaW4gIi8iJztyZXR1cm59dGhpcy5yZW5hbWVJblByb2dyZXNzPSEwLHRoaXMucmVuYW1lRXJyb3I9bnVsbDt0cnl7bGV0IGlhPWoxKHRoaXMucmVuYW1lU291cmNlLmtleSkrTGUrKHRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyPyIvIjoiIiksTXM7dGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI/TXM9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LGlhKTpNcz1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLnJlbmFtZVNvdXJjZS5rZXksaWEpLE1zLnN1Y2Nlc3M/KHRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKSxhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCkpOnRoaXMucmVuYW1lRXJyb3I9TXMuZXJyb3J8fCJSZW5hbWUgZmFpbGVkIn1jYXRjaChCZSl7dGhpcy5yZW5hbWVFcnJvcj1gRXJyb3I6ICR7QmV9YH10aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9Y2xvc2VSZW5hbWVEaWFsb2coKXt0aGlzLnNob3dSZW5hbWVEaWFsb2c9ITEsdGhpcy5yZW5hbWVTb3VyY2U9bnVsbCx0aGlzLnJlbmFtZU5hbWU9IiIsdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMX1yZW5kZXJSZW5hbWVEaWFsb2coKXtpZighdGhpcy5zaG93UmVuYW1lRGlhbG9nfHwhdGhpcy5yZW5hbWVTb3VyY2UpcmV0dXJuIiI7bGV0IExlPXRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtCZT0+QmUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj4ke0xlPyJSZW5hbWUgRm9sZGVyIjoiUmVuYW1lIEZpbGUifTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWxvY2F0aW9uIj4KICAgICAgICAgICAgTG9jYXRpb246ICR7dGhpcy5idWNrZXROYW1lfS8ke2oxKHRoaXMucmVuYW1lU291cmNlLmtleSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5hbWVFcnJvcj93YDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5yZW5hbWVFcnJvcn08L2Rpdj5gOiIifQogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQgcmVuYW1lLWRpYWxvZy1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtMZT8iZm9sZGVyLW5hbWUiOiJmaWxlbmFtZS5leHQifQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnJlbmFtZU5hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke0JlPT57dGhpcy5yZW5hbWVOYW1lPUJlLnRhcmdldC52YWx1ZSx0aGlzLnJlbmFtZUVycm9yPW51bGx9fQogICAgICAgICAgICBAa2V5ZG93bj0ke0JlPT57QmUua2V5PT09IkVudGVyIiYmdGhpcy5leGVjdXRlUmVuYW1lKCksQmUua2V5PT09IkVzY2FwZSImJnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX19CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlUmVuYW1lKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKX0+CiAgICAgICAgICAgICAgJHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3M/IlJlbmFtaW5nLi4uIjoiUmVuYW1lIn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1vdmVEaWFsb2coKXtpZighdGhpcy5zaG93TW92ZURpYWxvZ3x8IXRoaXMubW92ZVNvdXJjZSlyZXR1cm4iIjtsZXQgTGU9bWEodGhpcy5tb3ZlU291cmNlLmtleSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtTZT0+U2Uuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICR7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyJGb2xkZXIiOiJGaWxlIn08L2Rpdj4KCiAgICAgICAgICAke3RoaXMubW92ZUVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5tb3ZlRXJyb3J9PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtc3VtbWFyeSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Gcm9tOjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLXBhdGgiPiR7dGhpcy5tb3ZlU291cmNlLmtleX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Ubzo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZURlc3RpbmF0aW9ufSR7TGV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj8iIjp3YAogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlTW92ZSgpfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlSW5Qcm9ncmVzc30+CiAgICAgICAgICAgICAgICAke3RoaXMubW92ZUluUHJvZ3Jlc3M/Ik1vdmluZy4uLiI6Ik1vdmUifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2d8fCF0aGlzLm1vdmVQaWNrZXJTb3VyY2UpcmV0dXJuIiI7bGV0IExlPW1hKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLFNlPWoxKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyBtb3ZlLXBpY2tlci1kaWFsb2ciIEBjbGljaz0ke0JlPT5CZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPk1vdmUgIiR7TGV9IiB0by4uLjwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1icmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCIiKX0+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHtwNSh0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4KS5tYXAoQmU9PndgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKEJlKX0+CiAgICAgICAgICAgICAgICAke21hKEJlKX0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWxpc3QiPgogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlckxvYWRpbmc/d2A8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPkxvYWRpbmcuLi48L2Rpdj5gOiIifQogICAgICAgICAgICAkeyF0aGlzLm1vdmVQaWNrZXJMb2FkaW5nJiZ0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoQmU9PkJlIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1lbXB0eSI+Tm8gc3ViZm9sZGVyczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlclByZWZpeGVzLmZpbHRlcihCZT0+QmUhPT10aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KS5tYXAoQmU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItaXRlbSIKICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKEJlKX0KICAgICAgICAgICAgICAgICAgICAgQGRibGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKEJlKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke21hKEJlKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RNb3ZlRGVzdGluYXRpb24odGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD09PVNlfT4KICAgICAgICAgICAgICBNb3ZlIEhlcmUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJrZXlzLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWJhciI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgY2xhc3M9ImZpbHRlci1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkZpbHRlciBmaWxlcy4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5maWx0ZXJUZXh0fQogICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUZpbHRlcklucHV0fQogICAgICAgICAgLz4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ia2V5cy1saXN0IiBAY29udGV4dG1lbnU9JHtMZT0+dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoTGUpfT4KICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPkxvYWRpbmcuLi48L2Rpdj5gOnRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIG9iamVjdHMgZm91bmQ8L2Rpdj5gOndgCiAgICAgICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDogMTAwcHg7Ij5TaXplPC90aD4KICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyZWRJdGVtcy5tYXAoTGU9PndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGVkS2V5PT09TGUua2V5PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0S2V5KExlLmtleSxMZS5pc0ZvbGRlcil9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtTZT0+dGhpcy5oYW5kbGVJdGVtQ29udGV4dE1lbnUoU2UsTGUua2V5LExlLmlzRm9sZGVyKX0KICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtleS1jZWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke0xlLmlzRm9sZGVyP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ia2V5LWljb24gZm9sZGVyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImtleS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2V5LW5hbWUiPiR7bWEoTGUua2V5KX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ic2l6ZS1jZWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtMZS5pc0ZvbGRlcj8iLSI6VW0oTGUuc2l6ZSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckNyZWF0ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZURpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyTW92ZVBpY2tlckRpYWxvZygpfQogICAgICAke3RoaXMucmVuZGVyUmVuYW1lRGlhbG9nKCl9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxfdCh0aGlzLHhvKX1zdGF0aWN7X3Qocix0KX19O3JldHVybiB5bz1yfSkoKX0pO3ZhciBGbyxycix4MGEsU1FlPWYoKCk9PntsZSgpO1FlKCk7WFcoKTtGbz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0scnI9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHgwYT0oKCk9PntsZXQgYT1baWUoImRlZXMtc3RvcmFnZS1wcmV2aWV3IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdO3ZhciBRPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzU3RvcmFnZVByZXZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgSj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVtLKCldLHk9W0soKV0sTj1bSygpXSxPPVtLKCldLEI9W0soKV0sRT1bSygpXSxXPVtLKCldLGhlPVtLKCldLG1lPVtLKCldLGNlPVtLKCldLEZvKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFo9PiJkYXRhUHJvdmlkZXIiaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5kYXRhUHJvdmlkZXIsImdldCIpLHNldDpzKChaLGdlKT0+e1ouZGF0YVByb3ZpZGVyPWdlfSwic2V0Iil9LG1ldGFkYXRhOkp9LG4sbCksRm8odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFo9PiJidWNrZXROYW1lImluIFosImhhcyIpLGdldDpzKFo9PlouYnVja2V0TmFtZSwiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi5idWNrZXROYW1lPWdlfSwic2V0Iil9LG1ldGFkYXRhOkp9LGMscCksRm8odGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvYmplY3RLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+Im9iamVjdEtleSJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLm9iamVjdEtleSwiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi5vYmplY3RLZXk9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sbSx2KSxGbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+ImxvYWRpbmciaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5sb2FkaW5nLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLmxvYWRpbmc9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sYixnKSxGbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNhdmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4ic2F2aW5nImluIFosImhhcyIpLGdldDpzKFo9Plouc2F2aW5nLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLnNhdmluZz1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxrLEMpLEZvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4iY29udGVudCJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLmNvbnRlbnQsImdldCIpLHNldDpzKChaLGdlKT0+e1ouY29udGVudD1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxfLHopLEZvKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3JpZ2luYWxUZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4ib3JpZ2luYWxUZXh0Q29udGVudCJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLm9yaWdpbmFsVGV4dENvbnRlbnQsImdldCIpLHNldDpzKChaLGdlKT0+e1oub3JpZ2luYWxUZXh0Q29udGVudD1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxULFApLEZvKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4iaGFzQ2hhbmdlcyJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLmhhc0NoYW5nZXMsImdldCIpLHNldDpzKChaLGdlKT0+e1ouaGFzQ2hhbmdlcz1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxNLFMpLEZvKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4iZWRpdGluZyJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLmVkaXRpbmcsImdldCIpLHNldDpzKChaLGdlKT0+e1ouZWRpdGluZz1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxBLEYpLEZvKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+ImNvbnRlbnRUeXBlImluIFosImhhcyIpLGdldDpzKFo9PlouY29udGVudFR5cGUsImdldCIpLHNldDpzKChaLGdlKT0+e1ouY29udGVudFR5cGU9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0saixHKSxGbyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4iZmlsZVNpemUiaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5maWxlU2l6ZSwiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi5maWxlU2l6ZT1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxSLFUpLEZvKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhc3RNb2RpZmllZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4ibGFzdE1vZGlmaWVkImluIFosImhhcyIpLGdldDpzKFo9PloubGFzdE1vZGlmaWVkLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLmxhc3RNb2RpZmllZD1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxJLHEpLEZvKHRoaXMsbnVsbCxjZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFo9PiJlcnJvciJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLmVycm9yLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLmVycm9yPWdlfSwic2V0Iil9LG1ldGFkYXRhOkp9LHVlLFkpLEZvKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkp9LG51bGwsdCksUT1yPWUudmFsdWUsSiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpKfSl9I2U9cnIodGhpcyxuLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKEope3RoaXMuI2U9Sn0jdD0ocnIodGhpcyxsKSxycih0aGlzLGMsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKEope3RoaXMuI3Q9Sn0jYT0ocnIodGhpcyxwKSxycih0aGlzLG0sIiIpKTtnZXQgb2JqZWN0S2V5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9iamVjdEtleShKKXt0aGlzLiNhPUp9I3I9KHJyKHRoaXMsdikscnIodGhpcyxiLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbG9hZGluZyhKKXt0aGlzLiNyPUp9I3M9KHJyKHRoaXMsZykscnIodGhpcyxrLCExKSk7Z2V0IHNhdmluZygpe3JldHVybiB0aGlzLiNzfXNldCBzYXZpbmcoSil7dGhpcy4jcz1KfSNpPShycih0aGlzLEMpLHJyKHRoaXMsXywiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRlbnQoSil7dGhpcy4jaT1KfSNvPShycih0aGlzLHopLHJyKHRoaXMsVCwiIikpO2dldCBvcmlnaW5hbFRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI299c2V0IG9yaWdpbmFsVGV4dENvbnRlbnQoSil7dGhpcy4jbz1KfSNuPShycih0aGlzLFApLHJyKHRoaXMsTSwhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI259c2V0IGhhc0NoYW5nZXMoSil7dGhpcy4jbj1KfSNsPShycih0aGlzLFMpLHJyKHRoaXMsQSwhMSkpO2dldCBlZGl0aW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGVkaXRpbmcoSil7dGhpcy4jbD1KfSNjPShycih0aGlzLEYpLHJyKHRoaXMsaiwiIikpO2dldCBjb250ZW50VHlwZSgpe3JldHVybiB0aGlzLiNjfXNldCBjb250ZW50VHlwZShKKXt0aGlzLiNjPUp9I2Q9KHJyKHRoaXMsRykscnIodGhpcyxSLDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZmlsZVNpemUoSil7dGhpcy4jZD1KfSN1PShycih0aGlzLFUpLHJyKHRoaXMsSSwiIikpO2dldCBsYXN0TW9kaWZpZWQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbGFzdE1vZGlmaWVkKEope3RoaXMuI3U9Sn0jcD0ocnIodGhpcyxxKSxycih0aGlzLHVlLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGVycm9yKEope3RoaXMuI3A9Sn1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsUGUsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJldmlldy1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLm1ldGEtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQgZGVlcy1wcmV2aWV3IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQuY29kZS1lZGl0b3IgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGVudC5jb2RlLWVkaXRvciBkZWVzLWlucHV0LWNvZGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctYWN0aW9ucyB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQwNDA0MCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgIGJvcmRlci1jb2xvcjogI2VmNDQ0NDsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICBib3JkZXItY29sb3I6ICMzYjgyZjY7CiAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5OmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAudW5zYXZlZC1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MSwgMTkxLCAzNiwgMC4xKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1MSwgMTkxLCAzNiwgMC4zKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAudW5zYXZlZC1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBzdmcgewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLmVycm9yLXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQogICAgYF07dXBkYXRlZChKKXsoSi5oYXMoIm9iamVjdEtleSIpfHxKLmhhcygiYnVja2V0TmFtZSIpKSYmKHRoaXMub2JqZWN0S2V5P3RoaXMubG9hZE9iamVjdCgpOih0aGlzLmNvbnRlbnQ9IiIsdGhpcy5jb250ZW50VHlwZT0iIix0aGlzLmVycm9yPSIiLHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD0iIix0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExKSl9YXN5bmMgbG9hZE9iamVjdCgpe2lmKCEoIXRoaXMub2JqZWN0S2V5fHwhdGhpcy5idWNrZXROYW1lfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0iIix0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExO3RyeXtsZXQgSj1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMub2JqZWN0S2V5KTtpZighSil7dGhpcy5lcnJvcj0iT2JqZWN0IG5vdCBmb3VuZCIsdGhpcy5sb2FkaW5nPSExO3JldHVybn10aGlzLmNvbnRlbnQ9Si5jb250ZW50fHwiIix0aGlzLmNvbnRlbnRUeXBlPUouY29udGVudFR5cGV8fCIiLHRoaXMuZmlsZVNpemU9Si5zaXplfHwwLHRoaXMubGFzdE1vZGlmaWVkPUoubGFzdE1vZGlmaWVkfHwiIix0aGlzLmlzVGV4dCgpJiYodGhpcy5vcmlnaW5hbFRleHRDb250ZW50PXRoaXMuZ2V0VGV4dENvbnRlbnQoKSl9Y2F0Y2goSil7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3Q6IixKKSx0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBvYmplY3QifXRoaXMubG9hZGluZz0hMX19Zm9ybWF0RGF0ZShKKXtyZXR1cm4gSj9uZXcgRGF0ZShKKS50b0xvY2FsZVN0cmluZygpOiItIn1pc0ltYWdlKCl7cmV0dXJuIHRoaXMuY29udGVudFR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIil9aXNUZXh0KCl7cmV0dXJuIHRoaXMuY29udGVudFR5cGUuc3RhcnRzV2l0aCgidGV4dC8iKXx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi9qc29uInx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94bWwifHx0aGlzLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifWdldFRleHRDb250ZW50KCl7dHJ5e2xldCBKPWF0b2IodGhpcy5jb250ZW50KSxaPW5ldyBVaW50OEFycmF5KEoubGVuZ3RoKTtmb3IobGV0IGdlPTA7Z2U8Si5sZW5ndGg7Z2UrKylaW2dlXT1KLmNoYXJDb2RlQXQoZ2UpO3JldHVybiBuZXcgVGV4dERlY29kZXIoInV0Zi04IikuZGVjb2RlKFopfWNhdGNoe3JldHVybiJVbmFibGUgdG8gZGVjb2RlIGNvbnRlbnQifX1hc3luYyBoYW5kbGVEb3dubG9hZCgpe3RyeXtsZXQgSj1uZXcgQmxvYihbVWludDhBcnJheS5mcm9tKGF0b2IodGhpcy5jb250ZW50KSxhZT0+YWUuY2hhckNvZGVBdCgwKSldLHt0eXBlOnRoaXMuY29udGVudFR5cGV9KSxaPVVSTC5jcmVhdGVPYmplY3RVUkwoSiksZ2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2dlLmhyZWY9WixnZS5kb3dubG9hZD1tYSh0aGlzLm9iamVjdEtleSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChnZSksZ2UuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGdlKSxVUkwucmV2b2tlT2JqZWN0VVJMKFopfWNhdGNoKEope2NvbnNvbGUuZXJyb3IoIkVycm9yIGRvd25sb2FkaW5nOiIsSil9fWFzeW5jIGhhbmRsZURlbGV0ZSgpe2lmKHRoaXMuZGF0YVByb3ZpZGVyJiZjb25maXJtKGBEZWxldGUgIiR7bWEodGhpcy5vYmplY3RLZXkpfSI/YCkpdHJ5e2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9iamVjdC1kZWxldGVkIix7ZGV0YWlsOntrZXk6dGhpcy5vYmplY3RLZXl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goSil7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVsZXRpbmcgb2JqZWN0OiIsSil9fWdldExhbmd1YWdlKCl7bGV0IEo9dGhpcy5vYmplY3RLZXkuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiI7cmV0dXJue3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLG1qczoiamF2YXNjcmlwdCIsY2pzOiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixodG06Imh0bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixzYXNzOiJzY3NzIixsZXNzOiJsZXNzIixtZDoibWFya2Rvd24iLG1hcmtkb3duOiJtYXJrZG93biIseG1sOiJ4bWwiLHlhbWw6InlhbWwiLHltbDoieWFtbCIscHk6InB5dGhvbiIscmI6InJ1YnkiLGdvOiJnbyIscnM6InJ1c3QiLGphdmE6ImphdmEiLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIsY3M6ImNzaGFycCIscGhwOiJwaHAiLHNoOiJzaGVsbCIsYmFzaDoic2hlbGwiLHpzaDoic2hlbGwiLHNxbDoic3FsIixncmFwaHFsOiJncmFwaHFsIixncWw6ImdyYXBocWwiLGRvY2tlcmZpbGU6ImRvY2tlcmZpbGUiLHR4dDoicGxhaW50ZXh0In1bSl18fCJwbGFpbnRleHQifWhhbmRsZUNvbnRlbnRDaGFuZ2UoSil7bGV0IFo9Si5kZXRhaWw7dGhpcy5oYXNDaGFuZ2VzPVohPT10aGlzLm9yaWdpbmFsVGV4dENvbnRlbnR9aGFuZGxlRWRpdCgpe3RoaXMuZWRpdGluZz0hMH1oYW5kbGVEaXNjYXJkKCl7bGV0IEo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWNvZGUiKTtKJiYoSi52YWx1ZT10aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQpLHRoaXMuaGFzQ2hhbmdlcz0hMSx0aGlzLmVkaXRpbmc9ITF9YXN5bmMgaGFuZGxlU2F2ZSgpe2lmKCEoIXRoaXMuaGFzQ2hhbmdlc3x8dGhpcy5zYXZpbmd8fCF0aGlzLmRhdGFQcm92aWRlcikpe3RoaXMuc2F2aW5nPSEwO3RyeXtsZXQgWj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtY29kZSIpPy52YWx1ZT8/IiIsYWU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKFopLHJlPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5hZSkpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5vYmplY3RLZXkscmUsdGhpcy5jb250ZW50VHlwZSkmJih0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQ9Wix0aGlzLmhhc0NoYW5nZXM9ITEsdGhpcy5lZGl0aW5nPSExLHRoaXMuY29udGVudD1yZSl9Y2F0Y2goSil7Y29uc29sZS5lcnJvcigiRXJyb3Igc2F2aW5nIG9iamVjdDoiLEopfXRoaXMuc2F2aW5nPSExfX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5vYmplY3RLZXk/dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOnRoaXMuZXJyb3I/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1zdGF0ZSI+JHt0aGlzLmVycm9yfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXRpdGxlIj4ke21hKHRoaXMub2JqZWN0S2V5KX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbWV0YSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7dGhpcy5jb250ZW50VHlwZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7VW0odGhpcy5maWxlU2l6ZSl9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS1pdGVtIj4ke3RoaXMuZm9ybWF0RGF0ZSh0aGlzLmxhc3RNb2RpZmllZCl9PC9zcGFuPgogICAgICAgICAgICAke3RoaXMuaGFzQ2hhbmdlcz93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1bnNhdmVkLWluZGljYXRvciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idW5zYXZlZC1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIFVuc2F2ZWQgY2hhbmdlcwogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRlbnQgJHt0aGlzLmVkaXRpbmc/ImNvZGUtZWRpdG9yIjoiIn0iPgogICAgICAgICAgJHt0aGlzLmVkaXRpbmc/d2AKICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNvZGUKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7Sj0+dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlKEopfQogICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogICAgICAgICAgICAgIGA6dGhpcy5pc1RleHQoKT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLnRleHRDb250ZW50PSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5maWxlbmFtZT0ke21hKHRoaXMub2JqZWN0S2V5KX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7ITB9CiAgICAgICAgICAgICAgICAgICAgLnNob3dGaWxlbmFtZT0keyExfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuYmFzZTY0PSR7dGhpcy5jb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5taW1lVHlwZT0ke3RoaXMuY29udGVudFR5cGV9CiAgICAgICAgICAgICAgICAgICAgLmZpbGVuYW1lPSR7bWEodGhpcy5vYmplY3RLZXkpfQogICAgICAgICAgICAgICAgICAgIC5zaG93VG9vbGJhcj0keyEwfQogICAgICAgICAgICAgICAgICAgIC5zaG93RmlsZW5hbWU9JHshMX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5lZGl0aW5nP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIHNlY29uZGFyeSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEaXNjYXJkfT4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/IkRpc2NhcmQiOiJDYW5jZWwifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24tYnRuIHByaW1hcnkiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2F2ZX0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5zYXZpbmd8fCF0aGlzLmhhc0NoYW5nZXN9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zYXZpbmc/IlNhdmluZy4uLiI6IlNhdmUifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgJHt0aGlzLmlzVGV4dCgpP3dgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biIgQGNsaWNrPSR7dGhpcy5oYW5kbGVFZGl0fT5FZGl0PC9idXR0b24+YDoiIn0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idG4iIEBjbGljaz0ke3RoaXMuaGFuZGxlRG93bmxvYWR9PkRvd25sb2FkPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIGRhbmdlciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEZWxldGV9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8cD5TZWxlY3QgYSBmaWxlIHRvIHByZXZpZXc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscnIodGhpcyxZKX1zdGF0aWN7cnIocix0KX19O3JldHVybiBRPXJ9KSgpfSk7dmFyIFduLF9yLHkwYSx3UWU9ZigoKT0+e2xlKCk7UWUoKTttMGEoKTtNUWUoKTtrUWUoKTtTUWUoKTtXbj1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sX3I9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHkwYT0oKCk9PntsZXQgYT1baWUoImRlZXMtc3RvcmFnZS1icm93c2VyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdO3ZhciBtZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1N0b3JhZ2VCcm93c2VyIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpPYmplY3R9KV0seD1bSygpXSx5PVtLKCldLE49W0soKV0sTz1bSygpXSxCPVtLKCldLEU9W0soKV0sVz1bSygpXSxoZT1bSygpXSxXbih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFQcm92aWRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4iZGF0YVByb3ZpZGVyImluIHEsImhhcyIpLGdldDpzKHE9PnEuZGF0YVByb3ZpZGVyLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmRhdGFQcm92aWRlcj1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxuLGwpLFduKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnVja2V0TmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4iYnVja2V0TmFtZSJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmJ1Y2tldE5hbWUsImdldCIpLHNldDpzKChxLGNlKT0+e3EuYnVja2V0TmFtZT1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxjLHApLFduKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib25DaGFuZ2VFdmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4ib25DaGFuZ2VFdmVudCJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLm9uQ2hhbmdlRXZlbnQsImdldCIpLHNldDpzKChxLGNlKT0+e3Eub25DaGFuZ2VFdmVudD1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxtLHYpLFduKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld1R5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+InZpZXdUeXBlImluIHEsImhhcyIpLGdldDpzKHE9PnEudmlld1R5cGUsImdldCIpLHNldDpzKChxLGNlKT0+e3Eudmlld1R5cGU9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sYixnKSxXbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+ImN1cnJlbnRQcmVmaXgiaW4gcSwiaGFzIiksZ2V0OnMocT0+cS5jdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmN1cnJlbnRQcmVmaXg9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sayxDKSxXbih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJzZWxlY3RlZEtleSJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLnNlbGVjdGVkS2V5LCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLnNlbGVjdGVkS2V5PWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LF8seiksV24odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZyZXNoS2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJyZWZyZXNoS2V5ImluIHEsImhhcyIpLGdldDpzKHE9PnEucmVmcmVzaEtleSwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5yZWZyZXNoS2V5PWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LFQsUCksV24odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmV2aWV3V2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+InByZXZpZXdXaWR0aCJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLnByZXZpZXdXaWR0aCwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5wcmV2aWV3V2lkdGg9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sTSxTKSxXbih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUmVzaXppbmdQcmV2aWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJpc1Jlc2l6aW5nUHJldmlldyJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmlzUmVzaXppbmdQcmV2aWV3LCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmlzUmVzaXppbmdQcmV2aWV3PWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LEEsRiksV24odGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWNlbnRDaGFuZ2VDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4icmVjZW50Q2hhbmdlQ291bnQiaW4gcSwiaGFzIiksZ2V0OnMocT0+cS5yZWNlbnRDaGFuZ2VDb3VudCwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5yZWNlbnRDaGFuZ2VDb3VudD1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxqLEcpLFduKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzU3RyZWFtQ29ubmVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJpc1N0cmVhbUNvbm5lY3RlZCJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmlzU3RyZWFtQ29ubmVjdGVkLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmlzU3RyZWFtQ29ubmVjdGVkPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LFIsVSksV24obnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6SX0sbnVsbCx0KSxtZT1yPWUudmFsdWUsSSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpJfSl9c3RhdGljIGRlbW89aDBhO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9X3IodGhpcyxuLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKEkpe3RoaXMuI2U9SX0jdD0oX3IodGhpcyxsKSxfcih0aGlzLGMsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKEkpe3RoaXMuI3Q9SX0jYT0oX3IodGhpcyxwKSxfcih0aGlzLG0sbnVsbCkpO2dldCBvbkNoYW5nZUV2ZW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9uQ2hhbmdlRXZlbnQoSSl7dGhpcy4jYT1JfSNyPShfcih0aGlzLHYpLF9yKHRoaXMsYiwiY29sdW1ucyIpKTtnZXQgdmlld1R5cGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmlld1R5cGUoSSl7dGhpcy4jcj1JfSNzPShfcih0aGlzLGcpLF9yKHRoaXMsaywiIikpO2dldCBjdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGN1cnJlbnRQcmVmaXgoSSl7dGhpcy4jcz1JfSNpPShfcih0aGlzLEMpLF9yKHRoaXMsXywiIikpO2dldCBzZWxlY3RlZEtleSgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZEtleShJKXt0aGlzLiNpPUl9I289KF9yKHRoaXMseiksX3IodGhpcyxULDApKTtnZXQgcmVmcmVzaEtleSgpe3JldHVybiB0aGlzLiNvfXNldCByZWZyZXNoS2V5KEkpe3RoaXMuI289SX0jbj0oX3IodGhpcyxQKSxfcih0aGlzLE0sNzAwKSk7Z2V0IHByZXZpZXdXaWR0aCgpe3JldHVybiB0aGlzLiNufXNldCBwcmV2aWV3V2lkdGgoSSl7dGhpcy4jbj1JfSNsPShfcih0aGlzLFMpLF9yKHRoaXMsQSwhMSkpO2dldCBpc1Jlc2l6aW5nUHJldmlldygpe3JldHVybiB0aGlzLiNsfXNldCBpc1Jlc2l6aW5nUHJldmlldyhJKXt0aGlzLiNsPUl9I2M9KF9yKHRoaXMsRiksX3IodGhpcyxqLDApKTtnZXQgcmVjZW50Q2hhbmdlQ291bnQoKXtyZXR1cm4gdGhpcy4jY31zZXQgcmVjZW50Q2hhbmdlQ291bnQoSSl7dGhpcy4jYz1JfSNkPShfcih0aGlzLEcpLF9yKHRoaXMsUiwhMSkpO2dldCBpc1N0cmVhbUNvbm5lY3RlZCgpe3JldHVybiB0aGlzLiNkfXNldCBpc1N0cmVhbUNvbm5lY3RlZChJKXt0aGlzLiNkPUl9Y2hhbmdlVW5zdWJzY3JpYmU9KF9yKHRoaXMsVSksbnVsbCk7c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFBlLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5icm93c2VyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjOTk5Iil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAudmlldy10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0biB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAudmlldy1idG46aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNmM2Y0NiIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0bi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNDA0MDQwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jb250ZW50Lmhhcy1wcmV2aWV3IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0cHggdmFyKC0tcHJldmlldy13aWR0aCwgNzAwcHgpOwogICAgICB9CgogICAgICAucmVzaXplLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1kaXZpZGVyOmhvdmVyLAogICAgICAucmVzaXplLWRpdmlkZXIuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAubWFpbi12aWV3IHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXBhbmVsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkgewogICAgICAgIC5jb250ZW50LAogICAgICAgIC5jb250ZW50Lmhhcy1wcmV2aWV3IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KCiAgICAgICAgLnByZXZpZXctcGFuZWwsCiAgICAgICAgLnJlc2l6ZS1kaXZpZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc3RyZWFtLXN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLnN0cmVhbS1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLnN0cmVhbS1kb3QuY29ubmVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjJjNTVlOwogICAgICB9CgogICAgICAuY2hhbmdlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC5jaGFuZ2UtaW5kaWNhdG9yLnB1bHNlIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlLW9yYW5nZSAxcyBlYXNlLWluLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwdWxzZS1vcmFuZ2UgewogICAgICAgIDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuNCk7IH0KICAgICAgICAxMDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMik7IH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpfXJlZnJlc2goKXt0aGlzLnJlZnJlc2hLZXkrK31zZXRWaWV3VHlwZShJKXt0aGlzLnZpZXdUeXBlPUl9bmF2aWdhdGVUb1ByZWZpeChJKXt0aGlzLmN1cnJlbnRQcmVmaXg9SSx0aGlzLnNlbGVjdGVkS2V5PSIifWhhbmRsZUtleVNlbGVjdGVkKEkpe3RoaXMuc2VsZWN0ZWRLZXk9SS5kZXRhaWwua2V5fWhhbmRsZU5hdmlnYXRlKEkpe3RoaXMubmF2aWdhdGVUb1ByZWZpeChJLmRldGFpbC5wcmVmaXgpfWhhbmRsZU9iamVjdERlbGV0ZWQoSSl7dGhpcy5zZWxlY3RlZEtleT0iIix0aGlzLnJlZnJlc2hLZXkrK311cGRhdGVkKEkpe0kuaGFzKCJidWNrZXROYW1lIikmJih0aGlzLnNlbGVjdGVkS2V5PSIiLHRoaXMuY3VycmVudFByZWZpeD0iIix0aGlzLnJlY2VudENoYW5nZUNvdW50PTAsdGhpcy51bnN1YnNjcmliZUZyb21DaGFuZ2VzKCksdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKSksSS5oYXMoIm9uQ2hhbmdlRXZlbnQiKSYmKHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCkpfXN1YnNjcmliZVRvQ2hhbmdlcygpe2lmKCF0aGlzLm9uQ2hhbmdlRXZlbnQpe3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITE7cmV0dXJufXRyeXt0aGlzLmNoYW5nZVVuc3Vic2NyaWJlPXRoaXMub25DaGFuZ2VFdmVudChJPT57dGhpcy5oYW5kbGVDaGFuZ2UoSSl9KSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSEwfWNhdGNoKEkpe2NvbnNvbGUud2FybigiW1N0b3JhZ2VCcm93c2VyXSBGYWlsZWQgdG8gc3Vic2NyaWJlIHRvIGNoYW5nZXM6IixJKSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSExfX11bnN1YnNjcmliZUZyb21DaGFuZ2VzKCl7dGhpcy5jaGFuZ2VVbnN1YnNjcmliZSYmKHRoaXMuY2hhbmdlVW5zdWJzY3JpYmUoKSx0aGlzLmNoYW5nZVVuc3Vic2NyaWJlPW51bGwpLHRoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITF9aGFuZGxlQ2hhbmdlKEkpe3RoaXMucmVjZW50Q2hhbmdlQ291bnQrKyx0aGlzLnJlZnJlc2hLZXkrK31zdGFydFByZXZpZXdSZXNpemU9cyhJPT57SS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNSZXNpemluZ1ByZXZpZXc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVByZXZpZXdSZXNpemUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuZW5kUHJldmlld1Jlc2l6ZSl9LCJzdGFydFByZXZpZXdSZXNpemUiKTtoYW5kbGVQcmV2aWV3UmVzaXplPXMoST0+e2lmKCF0aGlzLmlzUmVzaXppbmdQcmV2aWV3KXJldHVybjtsZXQgcT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5jb250ZW50Iik7aWYoIXEpcmV0dXJuO2xldCBjZT1xLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHVlPU1hdGgubWluKE1hdGgubWF4KGNlLnJpZ2h0LUkuY2xpZW50WCwyNTApLDFlMyk7dGhpcy5wcmV2aWV3V2lkdGg9dWV9LCJoYW5kbGVQcmV2aWV3UmVzaXplIik7ZW5kUHJldmlld1Jlc2l6ZT1zKCgpPT57dGhpcy5pc1Jlc2l6aW5nUHJldmlldz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUHJldmlld1Jlc2l6ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5lbmRQcmV2aWV3UmVzaXplKX0sImVuZFByZXZpZXdSZXNpemUiKTtyZW5kZXIoKXtsZXQgST10aGlzLmN1cnJlbnRQcmVmaXg/dGhpcy5jdXJyZW50UHJlZml4LnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pOltdO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJicmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9QcmVmaXgoIiIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHtJLm1hcCgocSxjZSk9PntsZXQgdWU9SS5zbGljZSgwLGNlKzEpLmpvaW4oIi8iKSsiLyI7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnJlYWRjcnVtYi1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbgogICAgICAgICAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUHJlZml4KHVlKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtxfQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIGB9KX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5vbkNoYW5nZUV2ZW50P3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmVhbS1zdGF0dXMiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdHJlYW0tZG90ICR7dGhpcy5pc1N0cmVhbUNvbm5lY3RlZD8iY29ubmVjdGVkIjoiIn0iPjwvc3Bhbj4KICAgICAgICAgICAgICAke3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ/IkxpdmUiOiJPZmZsaW5lIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLnJlY2VudENoYW5nZUNvdW50PjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYW5nZS1pbmRpY2F0b3IgcHVsc2UiPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVjZW50Q2hhbmdlQ291bnR9IGNoYW5nZSR7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudD4xPyJzIjoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRvZ2dsZSI+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idmlldy1idG4gJHt0aGlzLnZpZXdUeXBlPT09ImNvbHVtbnMiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZXRWaWV3VHlwZSgiY29sdW1ucyIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ29sdW1ucwogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ2aWV3LWJ0biAke3RoaXMudmlld1R5cGU9PT0ia2V5cyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNldFZpZXdUeXBlKCJrZXlzIil9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBMaXN0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQgJHt0aGlzLnNlbGVjdGVkS2V5PyJoYXMtcHJldmlldyI6IiJ9IiBzdHlsZT0iLS1wcmV2aWV3LXdpZHRoOiAke3RoaXMucHJldmlld1dpZHRofXB4Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tdmlldyI+CiAgICAgICAgICAgICR7dGhpcy52aWV3VHlwZT09PSJjb2x1bW5zIj93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLWNvbHVtbnMKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLmN1cnJlbnRQcmVmaXg9JHt0aGlzLmN1cnJlbnRQcmVmaXh9CiAgICAgICAgICAgICAgICAgICAgLnJlZnJlc2hLZXk9JHt0aGlzLnJlZnJlc2hLZXl9CiAgICAgICAgICAgICAgICAgICAgQGtleS1zZWxlY3RlZD0ke3RoaXMuaGFuZGxlS2V5U2VsZWN0ZWR9CiAgICAgICAgICAgICAgICAgICAgQG5hdmlnYXRlPSR7dGhpcy5oYW5kbGVOYXZpZ2F0ZX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1zdG9yYWdlLWNvbHVtbnM+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXN0b3JhZ2Uta2V5cwogICAgICAgICAgICAgICAgICAgIC5kYXRhUHJvdmlkZXI9JHt0aGlzLmRhdGFQcm92aWRlcn0KICAgICAgICAgICAgICAgICAgICAuYnVja2V0TmFtZT0ke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgICAgICAgICAuY3VycmVudFByZWZpeD0ke3RoaXMuY3VycmVudFByZWZpeH0KICAgICAgICAgICAgICAgICAgICAucmVmcmVzaEtleT0ke3RoaXMucmVmcmVzaEtleX0KICAgICAgICAgICAgICAgICAgICBAa2V5LXNlbGVjdGVkPSR7dGhpcy5oYW5kbGVLZXlTZWxlY3RlZH0KICAgICAgICAgICAgICAgICAgICBAbmF2aWdhdGU9JHt0aGlzLmhhbmRsZU5hdmlnYXRlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2Uta2V5cz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMuc2VsZWN0ZWRLZXk/d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1kaXZpZGVyICR7dGhpcy5pc1Jlc2l6aW5nUHJldmlldz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLnN0YXJ0UHJldmlld1Jlc2l6ZX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcGFuZWwiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLm9iamVjdEtleT0ke3RoaXMuc2VsZWN0ZWRLZXl9CiAgICAgICAgICAgICAgICAgICAgQG9iamVjdC1kZWxldGVkPSR7dGhpcy5oYW5kbGVPYmplY3REZWxldGVkfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2UtcHJldmlldz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7X3Iocix0KX19O3JldHVybiBtZT1yfSkoKX0pO3ZhciB3MGE9ZigoKT0+e30pO3ZhciBNMGE9ZigoKT0+e3dRZSgpO01RZSgpO2tRZSgpO1NRZSgpO3cwYSgpO1hXKCl9KTt2YXIgazBhPWYoKCk9PntvMGEoKTtwMGEoKTtyUWUoKTtmMGEoKTtNMGEoKX0pO3ZhciBRVyxMYyxTMGEsVnNlPWYoKCk9PntsZSgpO1FlKCk7dmEoKTtRVz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sTGM9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFMwYT0oKCk9PntsZXQgYT1baWUoImRlZXMtYWN0aW9uYmFyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNBY3Rpb25iYXIiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtLKCldLGQ9W0soKV0sdT1bSygpXSx4PVtLKCldLFFXKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iY3VycmVudEJhciJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLmN1cnJlbnRCYXIsImdldCIpLHNldDpzKChDLE4pPT57Qy5jdXJyZW50QmFyPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbixsKSxRVyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVSZW1haW5pbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+InRpbWVSZW1haW5pbmciaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy50aW1lUmVtYWluaW5nLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MudGltZVJlbWFpbmluZz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGMscCksUVcodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9ncmVzc1BlcmNlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+InByb2dyZXNzUGVyY2VudCJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLnByb2dyZXNzUGVyY2VudCwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnByb2dyZXNzUGVyY2VudD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sdiksUVcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImlzVmlzaWJsZSJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLmlzVmlzaWJsZSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmlzVmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksUVcobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSx5PXI9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIiwiT3ZlcmxheSJdO3N0YXRpYyBkZW1vPXMoKCk9PntsZXQgaz1zKHo9PnouY3VycmVudFRhcmdldC5jbG9zZXN0KCIuZGVtby1jb250YWluZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSwiZ2V0QWN0aW9uYmFyIik7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5kZW1vLWNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRlbnQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke3MoYXN5bmMgej0+e2xldCBPPWsoeik7aWYoIU8pcmV0dXJuO2xldCBUPWF3YWl0IE8uc2hvdyh7bWVzc2FnZToiRmlsZSBjaGFuZ2VkIGV4dGVybmFsbHkuIFJlbG9hZD8iLHR5cGU6Indhcm5pbmciLGljb246Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6InJlbG9hZCIsbGFiZWw6IlJlbG9hZCIscHJpbWFyeTohMH0se2lkOiJpZ25vcmUiLGxhYmVsOiJJZ25vcmUifV0sdGltZW91dDp7ZHVyYXRpb246NWUzLGRlZmF1bHRBY3Rpb25JZDoicmVsb2FkIn0sZGlzbWlzc2libGU6ITB9KTtjb25zb2xlLmxvZygiQWN0aW9uIGJhciByZXN1bHQ6IixUKX0sInNob3dBY3Rpb25CYXIiKX0+V2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7cyhhc3luYyB6PT57bGV0IE89ayh6KTtpZighTylyZXR1cm47bGV0IFQ9YXdhaXQgTy5zaG93KHttZXNzYWdlOiJQcm9jZXNzIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxIix0eXBlOiJlcnJvciIsaWNvbjoibHVjaWRlOnhDaXJjbGUiLGFjdGlvbnM6W3tpZDoicmV0cnkiLGxhYmVsOiJSZXRyeSIscHJpbWFyeTohMH0se2lkOiJkaXNtaXNzIixsYWJlbDoiRGlzbWlzcyJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJkaXNtaXNzIn19KTtjb25zb2xlLmxvZygiRXJyb3IgYmFyIHJlc3VsdDoiLFQpfSwic2hvd0Vycm9yQmFyIil9PkVycm9yPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtzKGFzeW5jIHo9PntsZXQgTz1rKHopO2lmKCFPKXJldHVybjtsZXQgVD1hd2FpdCBPLnNob3coe21lc3NhZ2U6IlNhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZz8iLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6aGVscENpcmNsZSIsYWN0aW9uczpbe2lkOiJzYXZlIixsYWJlbDoiU2F2ZSIscHJpbWFyeTohMH0se2lkOiJkaXNjYXJkIixsYWJlbDoiRGlzY2FyZCJ9LHtpZDoiY2FuY2VsIixsYWJlbDoiQ2FuY2VsIn1dfSk7Y29uc29sZS5sb2coIlF1ZXN0aW9uIGJhciByZXN1bHQ6IixUKX0sInNob3dRdWVzdGlvbkJhciIpfT5RdWVzdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgIDwvZGl2PgogICAgYH0sImRlbW8iKTtxdWV1ZT1bXTsjZT1MYyh0aGlzLG4sbnVsbCk7Z2V0IGN1cnJlbnRCYXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudEJhcihrKXt0aGlzLiNlPWt9I3Q9KExjKHRoaXMsbCksTGModGhpcyxjLDApKTtnZXQgdGltZVJlbWFpbmluZygpe3JldHVybiB0aGlzLiN0fXNldCB0aW1lUmVtYWluaW5nKGspe3RoaXMuI3Q9a30jYT0oTGModGhpcyxwKSxMYyh0aGlzLG0sMTAwKSk7Z2V0IHByb2dyZXNzUGVyY2VudCgpe3JldHVybiB0aGlzLiNhfXNldCBwcm9ncmVzc1BlcmNlbnQoayl7dGhpcy4jYT1rfSNyPShMYyh0aGlzLHYpLExjKHRoaXMsYiwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNWaXNpYmxlKGspe3RoaXMuI3I9a310aW1lb3V0SW50ZXJ2YWw9KExjKHRoaXMsZyksbnVsbCk7Y3VycmVudFJlc29sdmU9bnVsbDtzdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuMnMgZWFzZS1vdXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItY29udGVudCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNTAlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5pbmZvIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5xdWVzdGlvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYWN0aW9ucy1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNTUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDAlKSIsImhzbCgzOCA5MiUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNDUlKSIsImhzbCgwIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkucXVlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA0NSUpIiwiaHNsKDI3MCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmNvdW50ZG93biB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMjIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz10aGlzLmN1cnJlbnRCYXIsQz1rPy50eXBlfHwiaW5mbyIsTj1rPy50aW1lb3V0JiZ0aGlzLnRpbWVSZW1haW5pbmc+MDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uYmFyLWl0ZW0iPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1jb250ZW50Ij4KICAgICAgICAgICR7az93YAogICAgICAgICAgICAke04/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZ3Jlc3MtYmFyLWZpbGwgJHtDfSIKICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke3RoaXMucHJvZ3Jlc3NQZXJjZW50fSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2Utc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAke2suaWNvbj93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2UtaWNvbiAke0N9IgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ay5pY29ufQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNiIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXNzYWdlLXRleHQiPiR7ay5tZXNzYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHtrLmFjdGlvbnMubWFwKF89PnRoaXMucmVuZGVyQWN0aW9uQnV0dG9uKF8sayxOKSl9CiAgICAgICAgICAgICAgICAke2suZGlzbWlzc2libGU/d2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNtaXNzLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEaXNtaXNzKCl9CiAgICAgICAgICAgICAgICAgICAgdGl0bGU9IkRpc21pc3MiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25CdXR0b24oayxDLE4pe2xldCBfPWsucHJpbWFyeSx6PUMudHlwZXx8ImluZm8iLE89Qy50aW1lb3V0Py5kZWZhdWx0QWN0aW9uSWQ9PT1rLmlkLFQ9TiYmTyxQPU1hdGguY2VpbCh0aGlzLnRpbWVSZW1haW5pbmcvMWUzKTtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7Xz9gcHJpbWFyeSAke3p9YDoic2Vjb25kYXJ5In0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGsuaWQsITEpfQogICAgICA+CiAgICAgICAgJHtrLmljb24/d2AKICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtrLmljb259IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3Bhbj4ke2subGFiZWx9PC9zcGFuPgogICAgICAgICR7VD93YAogICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50ZG93biI+KCR7UH1zKTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2J1dHRvbj4KICAgIGB9YXN5bmMgc2hvdyhrKXtyZXR1cm4gbmV3IFByb21pc2UoQz0+e3RoaXMucXVldWUucHVzaCh7b3B0aW9uczprLHJlc29sdmU6Q30pLHRoaXMuY3VycmVudEJhcnx8dGhpcy5wcm9jZXNzUXVldWUoKX0pfWRpc21pc3MoKXt0aGlzLmhhbmRsZURpc21pc3MoKX1jbGVhclF1ZXVlKCl7Zm9yKGxldCBrIG9mIHRoaXMucXVldWUpay5yZXNvbHZlKHthY3Rpb25JZDoiZGlzbWlzc2VkIix0aW1lZE91dDohMX0pO3RoaXMucXVldWU9W119YXN5bmMgaGlkZUN1cnJlbnRCYXIoKXt0aGlzLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSx0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZShrPT5zZXRUaW1lb3V0KGssMjIwKSksdGhpcy5jdXJyZW50QmFyPW51bGwsdGhpcy5jdXJyZW50UmVzb2x2ZT1udWxsfWFzeW5jIHByb2Nlc3NRdWV1ZSgpe2lmKHRoaXMucXVldWUubGVuZ3RoPT09MCl7dGhpcy5oaWRlQ3VycmVudEJhcigpO3JldHVybn1sZXQgaz10aGlzLnF1ZXVlLnNoaWZ0KCk7dGhpcy5jdXJyZW50QmFyPWsub3B0aW9ucyx0aGlzLmN1cnJlbnRSZXNvbHZlPWsucmVzb2x2ZSx0aGlzLmlzVmlzaWJsZT0hMCxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSksay5vcHRpb25zLnRpbWVvdXQmJnRoaXMuc3RhcnRUaW1lb3V0KGsub3B0aW9ucy50aW1lb3V0LmR1cmF0aW9uLGsub3B0aW9ucy50aW1lb3V0LmRlZmF1bHRBY3Rpb25JZCl9c3RhcnRUaW1lb3V0KGssQyl7dGhpcy50aW1lUmVtYWluaW5nPWssdGhpcy5wcm9ncmVzc1BlcmNlbnQ9MTAwO2xldCBOPURhdGUubm93KCksXz01MDt0aGlzLnRpbWVvdXRJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCB6PURhdGUubm93KCktTjt0aGlzLnRpbWVSZW1haW5pbmc9TWF0aC5tYXgoMCxrLXopLHRoaXMucHJvZ3Jlc3NQZXJjZW50PXRoaXMudGltZVJlbWFpbmluZy9rKjEwMCx0aGlzLnRpbWVSZW1haW5pbmc8PTAmJih0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCksdGhpcy5oYW5kbGVBY3Rpb24oQywhMCkpfSxfKX1jbGVhclRpbWVvdXRJbnRlcnZhbCgpe3RoaXMudGltZW91dEludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVvdXRJbnRlcnZhbCksdGhpcy50aW1lb3V0SW50ZXJ2YWw9bnVsbCl9aGFuZGxlQWN0aW9uKGssQyl7dGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuY3VycmVudFJlc29sdmUmJnRoaXMuY3VycmVudFJlc29sdmUoe2FjdGlvbklkOmssdGltZWRPdXQ6Q30pLHRoaXMucHJvY2Vzc1F1ZXVlKCl9aGFuZGxlRGlzbWlzcygpe3RoaXMuaGFuZGxlQWN0aW9uKCJkaXNtaXNzZWQiLCExKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpfXN0YXRpY3tMYyhyLHQpfX07cmV0dXJuIHk9cn0pKCl9KTt2YXIgejBhPWYoKCk9Pnt9KTt2YXIgQzBhPWYoKCk9PntWc2UoKTt6MGEoKX0pO3ZhciBfMGEsVDBhPWYoKCk9PntsZSgpO18wYT1zKCgpPT53YAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgICA8ZGVlcy1iYWRnZSAudGV4dD0keyJEZWZhdWx0In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsicHJpbWFyeSJ9IC50ZXh0PSR7IlByaW1hcnkifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJzdWNjZXNzIn0gLnRleHQ9JHsiU3VjY2VzcyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7Indhcm5pbmcifSAudGV4dD0keyJXYXJuaW5nIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsiZXJyb3IifSAudGV4dD0keyJFcnJvciJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAucm91bmRlZD0keyEwfSAudGV4dD0keyJSb3VuZGVkIn0+PC9kZWVzLWJhZGdlPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGpzZSxmNSxMMGEsJDBhPWYoKCk9PntsZSgpO2VhKCk7VDBhKCk7UWUoKTtqc2U9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGY1PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxMMGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLWJhZGdlIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNCYWRnZSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSxqc2UodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJ0eXBlImluIGcsImhhcyIpLGdldDpzKGc9PmcudHlwZSwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnR5cGU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLGpzZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InRleHQiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy50ZXh0LCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cudGV4dD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCksanNlKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm91bmRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4icm91bmRlZCJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLnJvdW5kZWQsImdldCIpLHNldDpzKChnLHkpPT57Zy5yb3VuZGVkPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbSx2KSxqc2UobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSx4PXI9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1fMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdOyNlPWY1KHRoaXMsbiwiZGVmYXVsdCIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoYil7dGhpcy4jZT1ifSN0PShmNSh0aGlzLGwpLGY1KHRoaXMsYywiIikpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQoYil7dGhpcy4jdD1ifSNhPShmNSh0aGlzLHApLGY1KHRoaXMsbSwhMSkpO2dldCByb3VuZGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJvdW5kZWQoYil7dGhpcy4jYT1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxmNSh0aGlzLHYpLHRyLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5yb3VuZGVkIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMzMzIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiNjY2MiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDA1MGI5OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogIzJlN2QzMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICNlZDZjMDI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U0MDAyYjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJhZGdlICR7dGhpcy50eXBlfSAke3RoaXMucm91bmRlZD8icm91bmRlZCI6IiJ9Ij4KICAgICAgICAke3RoaXMudGV4dH0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tmNShyLHQpfX07cmV0dXJuIHg9cn0pKCl9KTt2YXIgRDBhPWYoKCk9PnskMGEoKX0pO3ZhciBBMGEsUDBhPWYoKCk9PntsZSgpO0EwYT1zKCgpPT53YAogIDxkZWVzLWhpbnQ+PC9kZWVzLWhpbnQ+CmAsImRlbW9GdW5jIil9KTt2YXIgRTBhLHpRZSxJMGEsTjBhPWYoKCk9PntsZSgpO2VhKCk7UDBhKCk7UWUoKTtFMGE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHpRZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sSTBhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1oaW50IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNIaW50Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sRTBhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4idHlwZSJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLnR5cGUsImdldCIpLHNldDpzKChwLHUpPT57cC50eXBlPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxFMGEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1BMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdOyNlPXpRZSh0aGlzLG4sImluZm8iKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKGMpe3RoaXMuI2U9Y31jb25zdHJ1Y3Rvcigpe3N1cGVyKCkselFlKHRoaXMsbCksdHIuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YCA8ZGl2IGNsYXNzPSJtYWluYm94Ij48L2Rpdj4gYH1zdGF0aWN7elFlKHIsdCl9fTtyZXR1cm4gZD1yfSkoKX0pO3ZhciBSMGE9ZigoKT0+e04wYSgpfSk7dmFyIE8wYSxGMGE9ZigoKT0+e2xlKCk7TmEoKTtPMGE9cygoKT0+e2xldCBhPVtbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6Il0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiLCJWZXJpZnlpbmcgY2hlY2tzdW0iLCJFeHRyYWN0aW5nIHJlbGVhc2UgYnVuZGxlIl0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSIsIkV4dHJhY3RpbmcgcmVsZWFzZSBidW5kbGUiLCJSZXN0YXJ0aW5nIGFwcGxpY2F0aW9uIl1dLGU9cyh0PT50Pj0xMDA/IlVwbG9hZCBjb21wbGV0ZS4gRmluYWxpemluZyBwYWNrYWdlIG1hbmlmZXN0Li4uIjp0Pj04Mj8iVmVyaWZ5aW5nIGNoZWNrc3VtcyBiZWZvcmUgaGFuZG9mZi4uLiI6dD49NTU/IlVwbG9hZGluZyB0aHVtYm5haWxzIHRvIGVkZ2UgY2FjaGUuLi4iOnQ+PTI1PyJTdHJlYW1pbmcgc291cmNlIGZpbGVzIHRvIHRoZSByZW1vdGUgd29ya2VyLi4uIjoiUHJlcGFyaW5nIGFyY2hpdmUgYW5kIGRlcGVuZGVuY3kgZ3JhcGguLi4iLCJnZXRVcGxvYWRTdGF0dXMiKTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIiNsaXZlLXByb2dyZXNzIiksaT10LnF1ZXJ5U2VsZWN0b3IoIiN0ZXJtaW5hbC1wcm9ncmVzcyIpLG89dDtpZighcnx8IWkpcmV0dXJuO28uX19wcm9ncmVzc2JhckRlbW9JbnRlcnZhbElkJiZ3aW5kb3cuY2xlYXJJbnRlcnZhbChvLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZCk7bGV0IG49MTIsbD0wLGQ9cygoKT0+e3IucGVyY2VudGFnZT1uLHIuc3RhdHVzVGV4dD1lKG4pLGkudGVybWluYWxMaW5lcz1bLi4uYVtsXV0saS5wZXJjZW50YWdlPU1hdGgubWluKDEwMCwobCsxKSoyMCksaS5pbmRldGVybWluYXRlPWw8YS5sZW5ndGgtMSxuPW4+PTEwMD8xMjpNYXRoLm1pbigxMDAsbisxMSksbD1sPj1hLmxlbmd0aC0xPzA6bCsxfSwidXBkYXRlRGVtbyIpO2QoKSxvLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZD13aW5kb3cuc2V0SW50ZXJ2YWwoZCwxNDAwKX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtYYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW9JbnRybyB7CiAgICAgICAgICAgIG1heC13aWR0aDogNzIwcHg7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMCUgMzAlKSIsImhzbCgyMTUgMTglIDc2JSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICAgIH0KCiAgICAgICAgICAuc2hvd2Nhc2VHcmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyODBweCwgMWZyKSk7CiAgICAgICAgICAgIGdhcDogMThweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuc2hvd2Nhc2VDYXJkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMC43OCkiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMDQpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxMCAyMiUgODYlKSIsImhzbCgyMTAgMTAlIDE4JSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZC53aWRlIHsKICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjsKICAgICAgICAgIH0KCiAgICAgICAgICAuc2hvd2Nhc2VDYXJkIGgzIHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCBwIHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTQlIDQwJSkiLCJoc2woMjE1IDEwJSA2NiUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU1OwogICAgICAgICAgfQoKICAgICAgICAgIC5wcm9ncmVzc1N0YWNrIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAxNHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5jb2RlTGFiZWwgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTQlIDQ0JSkiLCJoc2woMjE1IDEwJSA3MCUpIil9OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgfQoKICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkgewogICAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLnNob3djYXNlQ2FyZC53aWRlIHsKICAgICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAxOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtb0ludHJvIj4KICAgICAgICAgIDxjb2RlPmRlZXMtcHJvZ3Jlc3NiYXI8L2NvZGU+IGNhbiBub3cgcGFpciBhIGNsYXNzaWMgcHJvZ3Jlc3MgYmFyIHdpdGggYSBmaXhlZC1oZWlnaHQgc3RhdHVzIGFyZWEuIFVzZSBzaW1wbGUgc3RhdHVzIHRleHQgZm9yIGNsZWFyIHVzZXItZmFjaW5nIHVwZGF0ZXMgb3Igc3dpdGNoIHRvIHRlcm1pbmFsLWxpa2UgbGluZXMgd2hlbiB5b3Ugd2FudCByZWNlbnQgc3RlcHMgdG8gc3RheSB2aXNpYmxlIHdpdGhvdXQgY2F1c2luZyBsYXlvdXQganVtcHMuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hvd2Nhc2VHcmlkIj4KICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkRldGVybWluYXRlPC9kaXY+CiAgICAgICAgICAgIDxoMz5QZXJjZW50YWdlIHBsdXMgY3VycmVudCB0YXNrPC9oMz4KICAgICAgICAgICAgPHA+VXNlIGEgbGFiZWwsIGEgcGVyY2VudGFnZSwgYW5kIG9uZSBzaG9ydCBzdGF0dXMgbGluZSB3aGVuIHRoZSB3b3JrIGlzIG1lYXN1cmFibGUuPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1N0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9Ik1lZGlhIHVwbG9hZCIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7Njh9CiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJVcGxvYWRpbmcgdGh1bWJuYWlscyB0byBlZGdlIGNhY2hlLi4uIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJBc3NldCBzeW5jIgogICAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHsxMDB9CiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJBbGwgZmlsZXMgYXJlIHN5bmNlZCBhbmQgYXZhaWxhYmxlLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5JbmRldGVybWluYXRlPC9kaXY+CiAgICAgICAgICAgIDxoMz5TcGlubmVyLXN0eWxlIHRleHQgaW5kaWNhdG9yPC9oMz4KICAgICAgICAgICAgPHA+V2hlbiB0aGVyZSBpcyBubyB0cnVzdHdvcnRoeSBwZXJjZW50YWdlIHlldCwga2VlcCB0aGUgYmFyIG1vdmluZyBhbmQgbGV0IHRoZSB0ZXh0IGV4cGxhaW4gd2hhdCBpcyBoYXBwZW5pbmcuPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1N0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgICAgbGFiZWw9IkRlcGVuZGVuY3kgaW5zdGFsbCIKICAgICAgICAgICAgICAgIC5pbmRldGVybWluYXRlPSR7ITB9CiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJEb3dubG9hZGluZyBwYWNrYWdlIG1ldGFkYXRhLi4uIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJRdWV1ZWQgam9iIgogICAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHszMn0KICAgICAgICAgICAgICAgIC5zaG93UGVyY2VudGFnZT0keyExfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iV2FpdGluZyBmb3IgYSB3b3JrZXIgc2xvdCB0byBiZWNvbWUgYXZhaWxhYmxlLi4uIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQgd2lkZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+VGVybWluYWwgTGluZXM8L2Rpdj4KICAgICAgICAgICAgPGgzPkZpeGVkLWhlaWdodCB0ZXJtaW5hbC1zdHlsZSBzdGF0dXMgb3V0cHV0PC9oMz4KICAgICAgICAgICAgPHA+VGhlIHBhbmVsIHN0YXlzIHRoZSBzYW1lIGhlaWdodCB3aGlsZSB0aGUgbGF0ZXN0IHN0ZXAgc3RheXMgdmlzaWJsZS4gVGhpcyBpcyB1c2VmdWwgZm9yIHVwZGF0ZSBmbG93cywgZG93bmxvYWRzLCBhbmQgc3RhZ2VkIGJhY2tncm91bmQgd29yay48L3A+CiAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgaWQ9InRlcm1pbmFsLXByb2dyZXNzIgogICAgICAgICAgICAgIGxhYmVsPSJSZWxlYXNlIGJ1bmRsZSIKICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezIwfQogICAgICAgICAgICAgIC5pbmRldGVybWluYXRlPSR7ITB9CiAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHs0fQogICAgICAgICAgICAgIC50ZXJtaW5hbExpbmVzPSR7YVswXX0KICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5MaXZlIERlbW88L2Rpdj4KICAgICAgICAgICAgPGgzPlVwZGF0aW5nIHBlcmNlbnRhZ2UgYW5kIHRleHQgdG9nZXRoZXI8L2gzPgogICAgICAgICAgICA8cD5BIHNpbmdsZSBjb21wb25lbnQgY2FuIGV4cHJlc3MgYm90aCBob3cgZmFyIHRoZSBqb2IgaXMgYW5kIHdoaWNoIHBoYXNlIGlzIGN1cnJlbnRseSBhY3RpdmUuPC9wPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgIGlkPSJsaXZlLXByb2dyZXNzIgogICAgICAgICAgICAgIGxhYmVsPSJDdXN0b21lciBleHBvcnQiCiAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHsxMn0KICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJQcmVwYXJpbmcgYXJjaGl2ZSBhbmQgZGVwZW5kZW5jeSBncmFwaC4uLiIKICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+Q29tcGF0aWJpbGl0eTwvZGl2PgogICAgICAgICAgICA8aDM+TGVnYWN5IDxjb2RlPnZhbHVlPC9jb2RlPiBhbmQgPGNvZGU+cHJvZ3Jlc3M8L2NvZGU+IGlucHV0czwvaDM+CiAgICAgICAgICAgIDxwPkV4aXN0aW5nIHVzYWdlcyBjYW4ga2VlcCBwYXNzaW5nIHBlcmNlbnRhZ2VzIGRpcmVjdGx5IG9yIG5vcm1hbGl6ZWQgcHJvZ3Jlc3MgdmFsdWVzIGZyb20gMCB0byAxLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJGcm9tIHZhbHVlIgogICAgICAgICAgICAgICAgLnZhbHVlPSR7NzV9CiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJNaWdyYXRpbmcgZXhpc3RpbmcgcmVhZG1lLXN0eWxlIHVzYWdlLi4uIgogICAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJGcm9tIHByb2dyZXNzIgogICAgICAgICAgICAgICAgLnByb2dyZXNzPSR7LjQyfQogICAgICAgICAgICAgICAgLnNob3dQZXJjZW50YWdlPSR7ITF9CiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0PSJSZW5kZXJpbmcgbm9ybWFsaXplZCBwcm9ncmVzcyBpbnB1dC4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgVTEsc3MsQjBhLENRZT1mKCgpPT57TDEoKTtGMGEoKTtsZSgpO1FlKCk7VTE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHNzPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxCMGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXByb2dyZXNzYmFyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W107dmFyIGhlPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzUHJvZ3Jlc3NiYXIiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgUj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk51bWJlcn0pXSxkPVskKHt0eXBlOk51bWJlcn0pXSx1PVskKHt0eXBlOk51bWJlcn0pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOlN0cmluZ30pXSxOPVskKHt0eXBlOkFycmF5fSldLE89WyQoe3R5cGU6TnVtYmVyfSldLEI9WyQoe3R5cGU6Qm9vbGVhbn0pXSxFPVskKHt0eXBlOkJvb2xlYW59KV0sVz1bSygpXSxVMSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBlcmNlbnRhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+InBlcmNlbnRhZ2UiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5wZXJjZW50YWdlLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnBlcmNlbnRhZ2U9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbixsKSxVMSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJ2YWx1ZSJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLnZhbHVlLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnZhbHVlPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGMscCksVTEodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhVPT4icHJvZ3Jlc3MiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5wcm9ncmVzcywiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5wcm9ncmVzcz1tZX0sInNldCIpfSxtZXRhZGF0YTpSfSxtLHYpLFUxKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+ImxhYmVsImluIFUsImhhcyIpLGdldDpzKFU9PlUubGFiZWwsImdldCIpLHNldDpzKChVLG1lKT0+e1UubGFiZWw9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sYixnKSxVMSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+InN0YXR1c1RleHQiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5zdGF0dXNUZXh0LCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnN0YXR1c1RleHQ9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sayxDKSxVMSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+InRlcm1pbmFsTGluZXMiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS50ZXJtaW5hbExpbmVzLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnRlcm1pbmFsTGluZXM9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sXyx6KSxVMSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c1Jvd3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+InN0YXR1c1Jvd3MiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5zdGF0dXNSb3dzLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnN0YXR1c1Jvd3M9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sVCxQKSxVMSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZGV0ZXJtaW5hdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+ImluZGV0ZXJtaW5hdGUiaW4gVSwiaGFzIiksZ2V0OnMoVT0+VS5pbmRldGVybWluYXRlLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLmluZGV0ZXJtaW5hdGU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sTSxTKSxVMSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQZXJjZW50YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFU9PiJzaG93UGVyY2VudGFnZSJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLnNob3dQZXJjZW50YWdlLCJnZXQiKSxzZXQ6cygoVSxtZSk9PntVLnNob3dQZXJjZW50YWdlPW1lfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEEsRiksVTEodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVTcGlubmVyRnJhbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoVT0+ImFjdGl2ZVNwaW5uZXJGcmFtZSJpbiBVLCJoYXMiKSxnZXQ6cyhVPT5VLmFjdGl2ZVNwaW5uZXJGcmFtZSwiZ2V0Iiksc2V0OnMoKFUsbWUpPT57VS5hY3RpdmVTcGlubmVyRnJhbWU9bWV9LCJzZXQiKX0sbWV0YWRhdGE6Un0saixHKSxVMShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpSfSxudWxsLHQpLGhlPXI9ZS52YWx1ZSxSJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlJ9KX1zdGF0aWMgZGVtbz1PMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdOyNlPXNzKHRoaXMsbiwwKTtnZXQgcGVyY2VudGFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBwZXJjZW50YWdlKFIpe3RoaXMuI2U9Un0jdD0oc3ModGhpcyxsKSxzcyh0aGlzLGMsbnVsbCkpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCB2YWx1ZShSKXt0aGlzLiN0PVJ9I2E9KHNzKHRoaXMscCksc3ModGhpcyxtLG51bGwpKTtnZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcHJvZ3Jlc3MoUil7dGhpcy4jYT1SfSNyPShzcyh0aGlzLHYpLHNzKHRoaXMsYiwiIikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNyfXNldCBsYWJlbChSKXt0aGlzLiNyPVJ9I3M9KHNzKHRoaXMsZyksc3ModGhpcyxrLCIiKSk7Z2V0IHN0YXR1c1RleHQoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3RhdHVzVGV4dChSKXt0aGlzLiNzPVJ9I2k9KHNzKHRoaXMsQyksc3ModGhpcyxfLFtdKSk7Z2V0IHRlcm1pbmFsTGluZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGVybWluYWxMaW5lcyhSKXt0aGlzLiNpPVJ9I289KHNzKHRoaXMseiksc3ModGhpcyxULDMpKTtnZXQgc3RhdHVzUm93cygpe3JldHVybiB0aGlzLiNvfXNldCBzdGF0dXNSb3dzKFIpe3RoaXMuI289Un0jbj0oc3ModGhpcyxQKSxzcyh0aGlzLE0sITEpKTtnZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBpbmRldGVybWluYXRlKFIpe3RoaXMuI249Un0jbD0oc3ModGhpcyxTKSxzcyh0aGlzLEEsITApKTtnZXQgc2hvd1BlcmNlbnRhZ2UoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2hvd1BlcmNlbnRhZ2UoUil7dGhpcy4jbD1SfSNjPShzcyh0aGlzLEYpLHNzKHRoaXMsaiwwKSk7Z2V0IGFjdGl2ZVNwaW5uZXJGcmFtZSgpe3JldHVybiB0aGlzLiNjfXNldCBhY3RpdmVTcGlubmVyRnJhbWUoUil7dGhpcy4jYz1SfXNwaW5uZXJJbnRlcnZhbElkPShzcyh0aGlzLEcpLG51bGwpO3NwaW5uZXJGcmFtZXM9WyJ8IiwiLyIsIi0iLCJcXCJdO3N0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKG80LnRleHQsaTQudGV4dCl9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJDb250YWluZXIgewogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0hlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0xhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NWYWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE1JSA0MCUpIiwiaHNsKDIxNSAxNSUgNzAlKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiM0NDQiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMC41cHggc29saWQgJHtoLmJkVGhlbWUoInRyYW5zcGFyZW50IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyRmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoaTQuYmx1ZUFjdGl2ZSxvNC5ibHVlQWN0aXZlKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJGaWxsLmluZGV0ZXJtaW5hdGUgewogICAgICAgIHdpZHRoOiAzNCU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGVTbGlkZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICAuc3RhdHVzUGFuZWwgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXN0YXR1cy1yb3dzLCAzKSAqIDEuMzVlbSArIDE2cHgpOwogICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc3RhdHVzLXJvd3MsIDMpICogMS4zNWVtICsgMTZweCk7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDg2JSkiLCJoc2woMjEwIDEwJSAyNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDMzJSA5OCUpIiwiaHNsKDIyMCAyMCUgMTAlKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0YXR1c1RleHRSb3csCiAgICAgIC50ZXJtaW5hbExpbmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLWhlaWdodDogMS4zNWVtOwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTglIDc4JSkiLCJoc2woMjE1IDEwJSAzNCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubGluZVByZWZpeCB7CiAgICAgICAgd2lkdGg6IDFjaDsKICAgICAgICBmbGV4OiAwIDAgMWNoOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZShpNC5ibHVlQWN0aXZlLG80LmJsdWVBY3RpdmUpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5saW5lVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDE1JSAyNSUpIiwiaHNsKDIxMCAxNSUgODYlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsTGluZTpub3QoLmN1cnJlbnQpIC5saW5lVGV4dCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDEyJSA0MiUpIiwiaHNsKDIxNSAxMiUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBpbmRldGVybWluYXRlU2xpZGUgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTIwJSk7CiAgICAgICAgfQoKICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMjAlKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnN5bmNTcGlubmVyU3RhdGUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuc3RvcFNwaW5uZXIoKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfXVwZGF0ZWQoUil7c3VwZXIudXBkYXRlZChSKSx0aGlzLnN5bmNTcGlubmVyU3RhdGUoKSxSLmhhcygidGVybWluYWxMaW5lcyIpJiZ0aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoPjAmJnRoaXMuc2Nyb2xsVGVybWluYWxUb0JvdHRvbSgpfXJlbmRlcigpe2xldCBSPXRoaXMuZ2V0RWZmZWN0aXZlUGVyY2VudGFnZSgpLFU9ISF0aGlzLmxhYmVsfHx0aGlzLnNob3dQZXJjZW50YWdlJiYhdGhpcy5pbmRldGVybWluYXRlLG1lPXRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCxJPW1lfHx0aGlzLnN0YXR1c1RleHQudHJpbSgpLmxlbmd0aD4wLHE9dGhpcy5nZXRSZW5kZXJlZFN0YXR1c1Jvd3MoKSxjZT10aGlzLnNwaW5uZXJGcmFtZXNbdGhpcy5hY3RpdmVTcGlubmVyRnJhbWVdPz90aGlzLnNwaW5uZXJGcmFtZXNbMF07cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyQ29udGFpbmVyIj4KICAgICAgICAke1U/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzSGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NMYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PgogICAgICAgICAgICAke3RoaXMuc2hvd1BlcmNlbnRhZ2UmJiF0aGlzLmluZGV0ZXJtaW5hdGU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1ZhbHVlIj4ke3RoaXMuZm9ybWF0UGVyY2VudGFnZShSKX0lPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzQmFyRmlsbCAke3RoaXMuaW5kZXRlcm1pbmF0ZT8iaW5kZXRlcm1pbmF0ZSI6IiJ9IgogICAgICAgICAgICBzdHlsZT0iJHt0aGlzLmluZGV0ZXJtaW5hdGU/IiI6YHdpZHRoOiAke1J9JTtgfSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke0k/d2AKICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InN0YXR1c1BhbmVsIgogICAgICAgICAgICBzdHlsZT0iLS1zdGF0dXMtcm93czogJHtxfTsiCiAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICBhcmlhLWF0b21pYz0idHJ1ZSIKICAgICAgICAgID4KICAgICAgICAgICAgJHttZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsU2Nyb2xsZXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLnRlcm1pbmFsTGluZXMubWFwKCh1ZSxZKT0+e2xldCBRPVk9PT10aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoLTEsSj10aGlzLmluZGV0ZXJtaW5hdGUmJlE/Y2U6Ij4iO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsTGluZSAke1E/ImN1cnJlbnQiOiIifSI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVByZWZpeCI+JHtKfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lVGV4dCI+JHt1ZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c1RleHRSb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmVQcmVmaXgiPiR7dGhpcy5pbmRldGVybWluYXRlP2NlOiI+In08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVRleHQiPiR7dGhpcy5zdGF0dXNUZXh0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRFZmZlY3RpdmVQZXJjZW50YWdlKCl7aWYodHlwZW9mIHRoaXMudmFsdWU9PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodGhpcy52YWx1ZSkpcmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKHRoaXMudmFsdWUpO2lmKHR5cGVvZiB0aGlzLnByb2dyZXNzPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHRoaXMucHJvZ3Jlc3MpKXtsZXQgUj10aGlzLnByb2dyZXNzPj0wJiZ0aGlzLnByb2dyZXNzPD0xP3RoaXMucHJvZ3Jlc3MqMTAwOnRoaXMucHJvZ3Jlc3M7cmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKFIpfXJldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZSh0aGlzLnBlcmNlbnRhZ2UpfWdldFJlbmRlcmVkU3RhdHVzUm93cygpe2xldCBSPU51bWJlci5pc0Zpbml0ZSh0aGlzLnN0YXR1c1Jvd3MpP01hdGguZmxvb3IodGhpcy5zdGF0dXNSb3dzKTozO3JldHVybiBNYXRoLm1heCgxLFIpfWNsYW1wUGVyY2VudGFnZShSKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsUikpfWZvcm1hdFBlcmNlbnRhZ2UoUil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoUik/YCR7Un1gOlIudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIil9c3luY1NwaW5uZXJTdGF0ZSgpe2xldCBSPXRoaXMuaW5kZXRlcm1pbmF0ZSYmKHRoaXMuc3RhdHVzVGV4dC50cmltKCkubGVuZ3RoPjB8fHRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCk7aWYoUiYmdGhpcy5zcGlubmVySW50ZXJ2YWxJZD09PW51bGwpe3RoaXMuc3Bpbm5lckludGVydmFsSWQ9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy5hY3RpdmVTcGlubmVyRnJhbWU9KHRoaXMuYWN0aXZlU3Bpbm5lckZyYW1lKzEpJXRoaXMuc3Bpbm5lckZyYW1lcy5sZW5ndGh9LDEyMCk7cmV0dXJufVJ8fHRoaXMuc3RvcFNwaW5uZXIoKX1zdG9wU3Bpbm5lcigpe3RoaXMuc3Bpbm5lckludGVydmFsSWQhPT1udWxsJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5zcGlubmVySW50ZXJ2YWxJZCksdGhpcy5zcGlubmVySW50ZXJ2YWxJZD1udWxsKSx0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZT0wfXNjcm9sbFRlcm1pbmFsVG9Cb3R0b20oKXtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbFNjcm9sbGVyIik7UiYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1Iuc2Nyb2xsVG9wPVIuc2Nyb2xsSGVpZ2h0fSl9c3RhdGlje3NzKHIsdCl9fTtyZXR1cm4gaGU9cn0pKCl9KTt2YXIgSDBhPWYoKCk9PntDUWUoKX0pO3ZhciBVc2UsaDUscTBhLFYwYT1mKCgpPT57bGUoKTtlYSgpO1FlKCk7VXNlPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxoNT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0scTBhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1zcGlubmVyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNTcGlubmVyIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpOdW1iZXJ9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCgpXSxVc2UodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJzaXplImluIGcsImhhcyIpLGdldDpzKGc9Pmcuc2l6ZSwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnNpemU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLFVzZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJudyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4iYm53ImluIGcsImhhcyIpLGdldDpzKGc9PmcuYm53LCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuYm53PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sYyxwKSxVc2UodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InN0YXR1cyJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLnN0YXR1cywiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnN0YXR1cz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdiksVXNlKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdO3N0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGVlcy1zcGlubmVyPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc2l6ZT0kezY0fSBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezY0fSBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICBgLCJkZW1vIik7I2U9aDUodGhpcyxuLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGIpe3RoaXMuI2U9Yn0jdD0oaDUodGhpcyxsKSxoNSh0aGlzLGMsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyhiKXt0aGlzLiN0PWJ9I2E9KGg1KHRoaXMscCksaDUodGhpcyxtLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXMoYil7dGhpcy4jYT1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxoNSh0aGlzLHYpfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAjOGJjMzRhMDA7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgI2xvYWRpbmcuc3VjY2VzcyB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgI2xvYWRpbmcgewogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgICAgI2xvYWRpbmcuc3VjY2VzcyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUodGhpcy5ibnc/IiMzMzMiOiIjOGJjMzRhIix0aGlzLmJudz8iI2ZmZiI6IiM4YmMzNGEiKX07CiAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgI2xvYWRpbmcuZXJyb3IgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiI2U2NGExOSIsdGhpcy5ibnc/IiNmZmYiOiIjZTY0YTE5Iil9OwogICAgICAgIH0KICAgICAgICBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9IiR7dGhpcy5zdGF0dXN9IiBpZD0ibG9hZGluZyI+CiAgICAgICAgJHsoKCk9PntpZih0aGlzLnN0YXR1cz09PSJzdWNjZXNzIilyZXR1cm4gd2A8ZGVlcy1pY29uIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMSUpIHRyYW5zbGF0ZVkoMyUpOyIgLmljb249JHsiZmE6Y2lyY2xlLWNoZWNrIn0+PC9kZWVzLWljb24+YDtpZih0aGlzLnN0YXR1cz09PSJlcnJvciIpcmV0dXJuIHdgPGRlZXMtaWNvbiAuaWNvbj0keyJmYTpjaXJjbGUteG1hcmsifT48L2RlZXMtaWNvbj5gfSkoKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3toNShyLHQpfX07cmV0dXJuIHg9cn0pKCl9KTt2YXIgajBhPWYoKCk9PntWMGEoKX0pO3ZhciBVMGEsVzBhPWYoKCk9PntsZSgpO19RZSgpO2tmKCk7VTBhPXMoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIH0KCiAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiI2FhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KCiAgICAgIC50aGVtZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDE2cHg7CiAgICAgICAgcmlnaHQ6IDE2cHg7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYnV0dG9uIGNsYXNzPSJ0aGVtZS10b2dnbGUiIEBjbGlja2VkPSR7KCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImJyaWdodCIpfX0+VG9nZ2xlIFRoZW1lPC9kZWVzLWJ1dHRvbj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Ub2FzdCBUeXBlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgRGlmZmVyZW50IHRvYXN0IHR5cGVzIGZvciB2YXJpb3VzIG5vdGlmaWNhdGlvbiBzY2VuYXJpb3MuIENsaWNrIGFueSBidXR0b24gdG8gc2hvdyBhIHRvYXN0LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0FhLmluZm8oIlRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBtZXNzYWdlIil9fT5JbmZvIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIiBAY2xpY2tlZD0keygpPT57QWEuc3VjY2VzcygiT3BlcmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhIil9fT5TdWNjZXNzIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntBYS53YXJuaW5nKCJQbGVhc2UgcmV2aWV3IGJlZm9yZSBwcm9jZWVkaW5nIil9fT5XYXJuaW5nIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntBYS5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyIpfX0+RXJyb3IgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Ub2FzdCBQb3NpdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFRvYXN0cyBjYW4gYXBwZWFyIGluIGRpZmZlcmVudCBwb3NpdGlvbnMgb24gdGhlIHNjcmVlbi4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntBYS5zaG93KHttZXNzYWdlOiJUb3AgUmlnaHQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtcmlnaHQifSl9fT5Ub3AgUmlnaHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0FhLnNob3coe21lc3NhZ2U6IlRvcCBMZWZ0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWxlZnQifSl9fT5Ub3AgTGVmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QWEuc2hvdyh7bWVzc2FnZToiQm90dG9tIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLXJpZ2h0In0pfX0+Qm90dG9tIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntBYS5zaG93KHttZXNzYWdlOiJCb3R0b20gTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1sZWZ0In0pfX0+Qm90dG9tIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0FhLnNob3coe21lc3NhZ2U6IlRvcCBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtY2VudGVyIn0pfX0+VG9wIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QWEuc2hvdyh7bWVzc2FnZToiQm90dG9tIENlbnRlciBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1jZW50ZXIifSl9fT5Cb3R0b20gQ2VudGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RHVyYXRpb24gT3B0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ29udHJvbCBob3cgbG9uZyB0b2FzdHMgc3RheSB2aXNpYmxlLiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QWEuc2hvdyh7bWVzc2FnZToiUXVpY2sgdG9hc3QgKDEgc2Vjb25kKSIsdHlwZToiaW5mbyIsZHVyYXRpb246MWUzfSl9fT4xIFNlY29uZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QWEuc2hvdyh7bWVzc2FnZToiU3RhbmRhcmQgdG9hc3QgKDMgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjNlM30pfX0+MyBTZWNvbmRzIChEZWZhdWx0KTwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QWEuc2hvdyh7bWVzc2FnZToiTG9uZyB0b2FzdCAoNSBzZWNvbmRzKSIsdHlwZToiaW5mbyIsZHVyYXRpb246NWUzfSl9fT41IFNlY29uZHM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0FhLnNob3coe21lc3NhZ2U6Ik1hbnVhbCBkaXNtaXNzIG9ubHkgKGNsaWNrIHRvIGNsb3NlKSIsdHlwZToid2FybmluZyIsZHVyYXRpb246MH0pfX0+Tm8gQXV0by1EaXNtaXNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TXVsdGlwbGUgVG9hc3RzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBNdWx0aXBsZSB0b2FzdHMgc3RhY2sgYXV0b21hdGljYWxseS4gVGhleSBtYWludGFpbiB0aGVpciBvcmRlciBhbmQgYW5pbWF0ZSBzbW9vdGhseS4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntBYS5pbmZvKCJGaXJzdCBub3RpZmljYXRpb24iKSxzZXRUaW1lb3V0KCgpPT5BYS5zdWNjZXNzKCJTZWNvbmQgbm90aWZpY2F0aW9uIiksMjAwKSxzZXRUaW1lb3V0KCgpPT5BYS53YXJuaW5nKCJUaGlyZCBub3RpZmljYXRpb24iKSw0MDApLHNldFRpbWVvdXQoKCk9PkFhLmVycm9yKCJGb3VydGggbm90aWZpY2F0aW9uIiksNjAwKX19PlNob3cgTXVsdGlwbGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2ZvcihsZXQgYT0xO2E8PTU7YSsrKXNldFRpbWVvdXQoKCk9PntBYS5zaG93KHttZXNzYWdlOmBOb3RpZmljYXRpb24gIyR7YX1gLHR5cGU6YSUyPT09MD8ic3VjY2VzcyI6ImluZm8iLGR1cmF0aW9uOjJlMythKjUwMH0pfSxhKjEwMCl9fT5SYXBpZCBGaXJlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UmVhbC1Xb3JsZCBFeGFtcGxlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ29tbW9uIHVzZSBjYXNlcyBmb3IgdG9hc3Qgbm90aWZpY2F0aW9ucyBpbiBhcHBsaWNhdGlvbnMuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0ke2FzeW5jKCk9PntsZXQgYT1hd2FpdCBBYS5zaG93KHttZXNzYWdlOiJTYXZpbmcgY2hhbmdlcy4uLiIsdHlwZToiaW5mbyIsZHVyYXRpb246MH0pO3NldFRpbWVvdXQoKCk9PnthLmRpc21pc3MoKSxBYS5zdWNjZXNzKCJDaGFuZ2VzIHNhdmVkIHN1Y2Nlc3NmdWxseSEiKX0sMmUzKX19PlNhdmUgT3BlcmF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntBYS5lcnJvcigiRmFpbGVkIHRvIGNvbm5lY3QgdG8gc2VydmVyLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uLiIpfX0+TmV0d29yayBFcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QWEud2FybmluZygiWW91ciBzZXNzaW9uIHdpbGwgZXhwaXJlIGluIDUgbWludXRlcyIpfX0+U2Vzc2lvbiBXYXJuaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntBYS5zdWNjZXNzKCJGaWxlIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSEiKX19PlVwbG9hZCBDb21wbGV0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlByb2dyYW1tYXRpYyBDb250cm9sPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBBZHZhbmNlZCBjb250cm9sIG92ZXIgdG9hc3QgYmVoYXZpb3IuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0ke2FzeW5jKCk9PntsZXQgYT1hd2FpdCBBYS5zaG93KHttZXNzYWdlOiJUaGlzIHRvYXN0IGNhbiBiZSBkaXNtaXNzZWQgcHJvZ3JhbW1hdGljYWxseSIsdHlwZToiaW5mbyIsZHVyYXRpb246MH0pO3NldFRpbWVvdXQoKCk9PnthLmRpc21pc3MoKSxBYS5zdWNjZXNzKCJUb2FzdCBkaXNtaXNzZWQgYWZ0ZXIgMiBzZWNvbmRzIil9LDJlMyl9fT5Qcm9ncmFtbWF0aWMgRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QWEuaW5mbygiSW5mbyBtZXNzYWdlIiwyZTMpLHNldFRpbWVvdXQoKCk9PkFhLnN1Y2Nlc3MoIlN1Y2Nlc3MgbWVzc2FnZSIsMmUzKSw1MDApLHNldFRpbWVvdXQoKCk9PkFhLndhcm5pbmcoIldhcm5pbmcgbWVzc2FnZSIsMmUzKSwxZTMpLHNldFRpbWVvdXQoKCk9PkFhLmVycm9yKCJFcnJvciBtZXNzYWdlIiwyZTMpLDE1MDApfX0+Q29udmVuaWVuY2UgTWV0aG9kczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBKVywkYyxBYSxfUWU9ZigoKT0+e2xlKCk7ZWEoKTtHaSgpO1cwYSgpO21zKCk7UWUoKTtKVz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sJGM9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LEFhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy10b2FzdCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzVG9hc3QiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOk51bWJlcn0pXSx4PVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxKVyh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+Im1lc3NhZ2UiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5tZXNzYWdlLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MubWVzc2FnZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG4sbCksSlcodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJ0eXBlImluIEMsImhhcyIpLGdldDpzKEM9PkMudHlwZSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnR5cGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxjLHApLEpXKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImR1cmF0aW9uImluIEMsImhhcyIpLGdldDpzKEM9PkMuZHVyYXRpb24sImdldCIpLHNldDpzKChDLE4pPT57Qy5kdXJhdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sdiksSlcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImlzVmlzaWJsZSJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLmlzVmlzaWJsZSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmlzVmlzaWJsZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksSlcobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSx5PXI9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1VMGE7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgdG9hc3RDb250YWluZXJzPW5ldyBNYXA7c3RhdGljIGdldE9yQ3JlYXRlQ29udGFpbmVyKGspe2lmKCF0aGlzLnRvYXN0Q29udGFpbmVycy5oYXMoaykpe2xldCBDPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3N3aXRjaChDLmNsYXNzTmFtZT1gdG9hc3QtY29udGFpbmVyIHRvYXN0LWNvbnRhaW5lci0ke2t9YCxDLnN0eWxlLmNzc1RleHQ9YAogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB6LWluZGV4OiAke1BzLm92ZXJsYXkudG9hc3R9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICBgLGspe2Nhc2UidG9wLXJpZ2h0IjpDLnN0eWxlLnRvcD0iMCIsQy5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6Qy5zdHlsZS50b3A9IjAiLEMuc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tcmlnaHQiOkMuc3R5bGUuYm90dG9tPSIwIixDLnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlImJvdHRvbS1sZWZ0IjpDLnN0eWxlLmJvdHRvbT0iMCIsQy5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlInRvcC1jZW50ZXIiOkMuc3R5bGUudG9wPSIwIixDLnN0eWxlLmxlZnQ9IjUwJSIsQy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrO2Nhc2UiYm90dG9tLWNlbnRlciI6Qy5zdHlsZS5ib3R0b209IjAiLEMuc3R5bGUubGVmdD0iNTAlIixDLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWt9ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChDKSx0aGlzLnRvYXN0Q29udGFpbmVycy5zZXQoayxDKX1yZXR1cm4gdGhpcy50b2FzdENvbnRhaW5lcnMuZ2V0KGspfXN0YXRpYyBhc3luYyBzaG93KGspe2xldCBDPXR5cGVvZiBrPT0ic3RyaW5nIj97bWVzc2FnZTprfTprLE49bmV3IHk7cmV0dXJuIE4ubWVzc2FnZT1DLm1lc3NhZ2UsTi50eXBlPUMudHlwZXx8ImluZm8iLE4uZHVyYXRpb249Qy5kdXJhdGlvbnx8M2UzLHRoaXMuZ2V0T3JDcmVhdGVDb250YWluZXIoQy5wb3NpdGlvbnx8InRvcC1yaWdodCIpLmFwcGVuZENoaWxkKE4pLGF3YWl0IE4udXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5pc1Zpc2libGU9ITB9KSxOLmR1cmF0aW9uPjAmJnNldFRpbWVvdXQoKCk9PntOLmRpc21pc3MoKX0sTi5kdXJhdGlvbiksTn1zdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhrKXtyZXR1cm4gdGhpcy5zaG93KGspfXN0YXRpYyBpbmZvKGssQyl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTprLHR5cGU6ImluZm8iLGR1cmF0aW9uOkN9KX1zdGF0aWMgc3VjY2VzcyhrLEMpe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6ayx0eXBlOiJzdWNjZXNzIixkdXJhdGlvbjpDfSl9c3RhdGljIHdhcm5pbmcoayxDKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOmssdHlwZToid2FybmluZyIsZHVyYXRpb246Q30pfXN0YXRpYyBlcnJvcihrLEMpe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6ayx0eXBlOiJlcnJvciIsZHVyYXRpb246Q30pfSNlPSRjKHRoaXMsbiwiIik7Z2V0IG1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVzc2FnZShrKXt0aGlzLiNlPWt9I3Q9KCRjKHRoaXMsbCksJGModGhpcyxjLCJpbmZvIikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHR5cGUoayl7dGhpcy4jdD1rfSNhPSgkYyh0aGlzLHApLCRjKHRoaXMsbSwzZTMpKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHVyYXRpb24oayl7dGhpcy4jYT1rfSNyPSgkYyh0aGlzLHYpLCRjKHRoaXMsYiwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNWaXNpYmxlKGspe3RoaXMuI3I9a31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksJGModGhpcyxnKSx0ci5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7cGF9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICA6aG9zdChbaXN2aXNpYmxlXSkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CgogICAgICAudG9hc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZiIsIiMyMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMCwwLDAsMC4zKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudG9hc3Q6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNsb3NlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogVHlwZS1zcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3R5cGU9ImluZm8iXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMDA4NGZmOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0ic3VjY2VzcyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJ3YXJuaW5nIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9ImVycm9yIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2VmNDQ0NDsKICAgICAgfQoKICAgICAgLyogUHJvZ3Jlc3MgYmFyICovCiAgICAgIC5wcm9ncmVzcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsKICAgICAgICBhbmltYXRpb246IHByb2dyZXNzIGxpbmVhciBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz17aW5mbzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTFhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY3eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsc3VjY2Vzczp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTkuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTAuNTg2IDcuNzA3IDkuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsNC00eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsd2FybmluZzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguMjU3IDMuMDk5Yy43NjUtMS4zNiAyLjcyMi0xLjM2IDMuNDg2IDBsNS41OCA5LjkyYy43NSAxLjMzNC0uMjEzIDIuOTgtMS43NDIgMi45OEg0LjQyYy0xLjUzIDAtMi40OTMtMS42NDYtMS43NDMtMi45OGw1LjU4LTkuOTJ6TTExIDEzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOGExIDEgMCAwMC0xIDF2M2ExIDEgMCAwMDIgMFY2YTEgMSAwIDAwLTEtMXoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLGVycm9yOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOC43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRMOC41ODYgMTBsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTEuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTEuNDE0IDEwbDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDguNTg2IDguNzA3IDcuMjkzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmB9O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0b2FzdCIgQGNsaWNrPSR7dGhpcy5kaXNtaXNzfT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uIj4KICAgICAgICAgICR7a1t0aGlzLnR5cGVdfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPiR7dGhpcy5tZXNzYWdlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIiBzdHlsZT0iYW5pbWF0aW9uLWR1cmF0aW9uOiAke3RoaXMuZHVyYXRpb259bXMiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc21pc3MoKXt0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZShDPT5zZXRUaW1lb3V0KEMsMzAwKSksdGhpcy5yZW1vdmUoKTtsZXQgaz10aGlzLnBhcmVudEVsZW1lbnQ7aWYoayYmay5jaGlsZHJlbi5sZW5ndGg9PT0wKXtrLnJlbW92ZSgpO2ZvcihsZXRbQyxOXW9mIHkudG9hc3RDb250YWluZXJzLmVudHJpZXMoKSlpZihOPT09ayl7eS50b2FzdENvbnRhaW5lcnMuZGVsZXRlKEMpO2JyZWFrfX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInR5cGUiLHRoaXMudHlwZSl9c3RhdGljeyRjKHIsdCl9fTtyZXR1cm4geT1yfSkoKX0pO3ZhciBHMGE9ZigoKT0+e19RZSgpfSk7dmFyIFkwYT1mKCgpPT57QzBhKCk7RDBhKCk7UjBhKCk7SDBhKCk7ajBhKCk7RzBhKCl9KTt2YXIgSzBhPWYoKCk9PntpbSgpfSk7dmFyIFowYT1mKCgpPT57VGYoKX0pO3ZhciBYMGE9ZigoKT0+e0swYSgpO1owYSgpfSk7dmFyIFEwYT1mKCgpPT57U3IoKX0pO3ZhciBKMGE9ZigoKT0+e0xZZSgpfSk7dmFyIGU0YT1mKCgpPT57SFllKCl9KTt2YXIgdDRhPWYoKCk9PntLWWUoKX0pO3ZhciBhNGE9ZigoKT0+e3FZZSgpfSk7dmFyIHI0YT1mKCgpPT57VlllKCl9KTt2YXIgczRhPWYoKCk9PntFWWUoKX0pO3ZhciBpNGE9ZigoKT0+e2lhZSgpfSk7dmFyIG80YT1mKCgpPT57UnNlKCl9KTt2YXIgbjRhPWYoKCk9Pnt9KTt2YXIgbDRhPWYoKCk9PntuNGEoKX0pO3ZhciBjNGE9ZigoKT0+e1VZZSgpfSk7dmFyIGQ0YT1mKCgpPT57R1llKCl9KTt2YXIgdTRhPWYoKCk9PntOc2UoKTtaWGUoKX0pO3ZhciBXc2UscDRhPWYoKCk9PntXc2U9Y2xhc3N7c3RhdGlje3ModGhpcywiSW1hZ2VDcm9wcGVyIil9b3B0aW9ucztjYW52YXM7Y3R4O2ltZztvdmVybGF5Q2FudmFzO292ZXJsYXlDdHg7Y3JvcFg9MDtjcm9wWT0wO2Nyb3BTaXplPTIwMDttaW5Dcm9wU2l6ZT01MDtpc0RyYWdnaW5nPSExO2lzUmVzaXppbmc9ITE7ZHJhZ1N0YXJ0WD0wO2RyYWdTdGFydFk9MDtyZXNpemVIYW5kbGU9IiI7aW1hZ2VTY2FsZT0xO2ltYWdlT2Zmc2V0WD0wO2ltYWdlT2Zmc2V0WT0wO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17bWluU2l6ZTo1MCxvdXRwdXRTaXplOjgwMCxvdXRwdXRRdWFsaXR5Oi45NSwuLi5lfSx0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMub3ZlcmxheUNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLm92ZXJsYXlDdHg9dGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5pbWc9bmV3IEltYWdlfWFzeW5jIGluaXRpYWxpemUoKXthd2FpdCB0aGlzLmxvYWRJbWFnZSgpLHRoaXMuc2V0dXBDYW52YXNlcygpLHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpLHRoaXMucmVuZGVyKCl9YXN5bmMgbG9hZEltYWdlKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5pbWcub25sb2FkPSgpPT5lKCksdGhpcy5pbWcub25lcnJvcj10LHRoaXMuaW1nLnNyYz10aGlzLm9wdGlvbnMuaW1hZ2V9KX1zZXR1cENhbnZhc2VzKCl7bGV0IGU9dGhpcy5vcHRpb25zLmNvbnRhaW5lcix0PU1hdGgubWluKGUuY2xpZW50V2lkdGgsZS5jbGllbnRIZWlnaHQpO3RoaXMuY2FudmFzLndpZHRoPXQsdGhpcy5jYW52YXMuaGVpZ2h0PXQsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMuY2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aD10LHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQ9dCx0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIixlLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzKSxlLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7bGV0IHI9TWF0aC5taW4odC90aGlzLmltZy53aWR0aCx0L3RoaXMuaW1nLmhlaWdodCk7dGhpcy5pbWFnZVNjYWxlPXIsdGhpcy5pbWFnZU9mZnNldFg9KHQtdGhpcy5pbWcud2lkdGgqcikvMix0aGlzLmltYWdlT2Zmc2V0WT0odC10aGlzLmltZy5oZWlnaHQqcikvMjtsZXQgaT10aGlzLmltZy53aWR0aCpyLG89dGhpcy5pbWcuaGVpZ2h0KnIsbj1NYXRoLm1pbihpLG8sdCouOCk7dGhpcy5jcm9wU2l6ZT1uKi44LHRoaXMuY3JvcFg9KHQtdGhpcy5jcm9wU2l6ZSkvMix0aGlzLmNyb3BZPSh0LXRoaXMuY3JvcFNpemUpLzJ9c2V0dXBFdmVudExpc3RlbmVycygpe3RoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuaGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKX1oYW5kbGVNb3VzZURvd24oZSl7bGV0IHQ9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9KGUuY2xpZW50WC10LmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvdC53aWR0aCksaT0oZS5jbGllbnRZLXQudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC90LmhlaWdodCksbz10aGlzLmdldFJlc2l6ZUhhbmRsZShyLGkpO28/KHRoaXMuaXNSZXNpemluZz0hMCx0aGlzLnJlc2l6ZUhhbmRsZT1vKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEocixpKSYmKHRoaXMuaXNEcmFnZ2luZz0hMCksdGhpcy5kcmFnU3RhcnRYPXIsdGhpcy5kcmFnU3RhcnRZPWl9aGFuZGxlTW91c2VNb3ZlKGUpe2xldCB0PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPShlLmNsaWVudFgtdC5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Qud2lkdGgpLGk9KGUuY2xpZW50WS10LnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvdC5oZWlnaHQpLG89dGhpcy5nZXRSZXNpemVIYW5kbGUocixpKTtpZihvP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9dGhpcy5nZXRSZXNpemVDdXJzb3Iobyk6dGhpcy5pc0luc2lkZUNyb3BBcmVhKHIsaSk/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSI6dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5pc0RyYWdnaW5nKXtsZXQgbj1yLXRoaXMuZHJhZ1N0YXJ0WCxsPWktdGhpcy5kcmFnU3RhcnRZLGQ9dGhpcy5pbWFnZU9mZnNldFgsYz10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZSxwPXRoaXMuaW1hZ2VPZmZzZXRZLHU9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplO3RoaXMuY3JvcFg9TWF0aC5tYXgoZCxNYXRoLm1pbihjLHRoaXMuY3JvcFgrbikpLHRoaXMuY3JvcFk9TWF0aC5tYXgocCxNYXRoLm1pbih1LHRoaXMuY3JvcFkrbCkpLHRoaXMuZHJhZ1N0YXJ0WD1yLHRoaXMuZHJhZ1N0YXJ0WT1pLHRoaXMucmVuZGVyKCl9dGhpcy5pc1Jlc2l6aW5nJiYodGhpcy5oYW5kbGVSZXNpemUocixpKSx0aGlzLmRyYWdTdGFydFg9cix0aGlzLmRyYWdTdGFydFk9aSx0aGlzLnJlbmRlcigpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuaXNSZXNpemluZz0hMSx0aGlzLnJlc2l6ZUhhbmRsZT0iIn1oYW5kbGVUb3VjaFN0YXJ0KGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdD1lLnRvdWNoZXNbMF0scj1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7Y2xpZW50WDp0LmNsaWVudFgsY2xpZW50WTp0LmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlRG93bihyKX1oYW5kbGVUb3VjaE1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB0PWUudG91Y2hlc1swXSxyPW5ldyBNb3VzZUV2ZW50KCJtb3VzZW1vdmUiLHtjbGllbnRYOnQuY2xpZW50WCxjbGllbnRZOnQuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VNb3ZlKHIpfWhhbmRsZVRvdWNoRW5kKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1vdXNlVXAoKX1nZXRSZXNpemVIYW5kbGUoZSx0KXtsZXQgaT17bnc6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LG5lOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHN3Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHNlOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX19O2ZvcihsZXRbbyxuXW9mIE9iamVjdC5lbnRyaWVzKGkpKWlmKE1hdGguYWJzKGUtbi54KTwyMCYmTWF0aC5hYnModC1uLnkpPDIwKXJldHVybiBvO3JldHVybiIifWdldFJlc2l6ZUN1cnNvcihlKXtyZXR1cm57bnc6Im53LXJlc2l6ZSIsbmU6Im5lLXJlc2l6ZSIsc3c6InN3LXJlc2l6ZSIsc2U6InNlLXJlc2l6ZSJ9W2VdfHwiZGVmYXVsdCJ9aXNJbnNpZGVDcm9wQXJlYShlLHQpe3JldHVybiBlPj10aGlzLmNyb3BYJiZlPD10aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUmJnQ+PXRoaXMuY3JvcFkmJnQ8PXRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1oYW5kbGVSZXNpemUoZSx0KXtsZXQgcj1lLXRoaXMuZHJhZ1N0YXJ0WCxpPXQtdGhpcy5kcmFnU3RhcnRZLG89dGhpcy5pbWFnZU9mZnNldFgsbj10aGlzLmltYWdlT2Zmc2V0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSxkPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGU7c3dpdGNoKHRoaXMucmVzaXplSGFuZGxlKXtjYXNlInNlIjp0aGlzLmNyb3BTaXplPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsTWF0aC5taW4odGhpcy5jcm9wU2l6ZStNYXRoLm1heChyLGkpLE1hdGgubWluKGwtdGhpcy5jcm9wWCxkLXRoaXMuY3JvcFkpKSk7YnJlYWs7Y2FzZSJudyI6bGV0IGM9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplLU1hdGgubWF4KHIsaSkpLHA9dGhpcy5jcm9wU2l6ZS1jLHU9dGhpcy5jcm9wWCtwLG09dGhpcy5jcm9wWStwO3U+PW8mJm0+PW4mJih0aGlzLmNyb3BYPXUsdGhpcy5jcm9wWT1tLHRoaXMuY3JvcFNpemU9Yyk7YnJlYWs7Y2FzZSJuZSI6bGV0IHY9TWF0aC5tYXgociwtaSkseD1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrdiksYj14LXRoaXMuY3JvcFNpemUsZz10aGlzLmNyb3BZLWI7Zz49biYmdGhpcy5jcm9wWCt4PD1sJiYodGhpcy5jcm9wWT1nLHRoaXMuY3JvcFNpemU9eCk7YnJlYWs7Y2FzZSJzdyI6bGV0IHk9TWF0aC5tYXgoLXIsaSksaz1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUreSksQz1rLXRoaXMuY3JvcFNpemUsTj10aGlzLmNyb3BYLUM7Tj49byYmdGhpcy5jcm9wWStrPD1kJiYodGhpcy5jcm9wWD1OLHRoaXMuY3JvcFNpemU9ayk7YnJlYWt9fXJlbmRlcigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5jdHguZmlsbFN0eWxlPSIjMDAwMDAwIix0aGlzLmN0eC5maWxsUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWcsdGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMCwgMC41KSIsdGhpcy5vdmVybGF5Q3R4LmZpbGxSZWN0KHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguc2F2ZSgpLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSk6KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHgucmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LnJlc3RvcmUoKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlU3R5bGU9IndoaXRlIix0aGlzLm92ZXJsYXlDdHgubGluZVdpZHRoPTIsdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlKCkpOnRoaXMub3ZlcmxheUN0eC5zdHJva2VSZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMuZHJhd1Jlc2l6ZUhhbmRsZXMoKX1kcmF3UmVzaXplSGFuZGxlcygpe2xldCB0PVt7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfV07dGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0id2hpdGUiLHQuZm9yRWFjaChyPT57dGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmMoci54LHIueSw4LDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguZmlsbCgpfSl9YXN5bmMgZ2V0Q3JvcHBlZEltYWdlKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdD1lLmdldENvbnRleHQoIjJkIikscj0xL3RoaXMuaW1hZ2VTY2FsZSxpPXRoaXMuY3JvcFNpemUqcixvPXRoaXMub3B0aW9ucy5vdXRwdXRTaXplO28+aSYmY29uc29sZS5pbmZvKGBQcm9maWxlIHBpY3R1cmU6IFVwc2NhbGluZyBmcm9tICR7TWF0aC5yb3VuZChpKX1weCB0byAke299cHhgKSxlLndpZHRoPW8sZS5oZWlnaHQ9bztsZXQgbj0odGhpcy5jcm9wWC10aGlzLmltYWdlT2Zmc2V0WCkqcixsPSh0aGlzLmNyb3BZLXRoaXMuaW1hZ2VPZmZzZXRZKSpyLGQ9dGhpcy5jcm9wU2l6ZSpyO3RoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCImJih0LmJlZ2luUGF0aCgpLHQuYXJjKG8vMixvLzIsby8yLDAsTWF0aC5QSSoyKSx0LmNsaXAoKSksdC5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsdC5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLHQuZHJhd0ltYWdlKHRoaXMuaW1nLG4sbCxkLGQsMCwwLG8sbyk7bGV0IHA9dGhpcy5vcHRpb25zLmltYWdlLmluY2x1ZGVzKCJpbWFnZS9wbmciKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyI7cmV0dXJuIGUudG9EYXRhVVJMKHAsdGhpcy5vcHRpb25zLm91dHB1dFF1YWxpdHkpfWRlc3Ryb3koKXt0aGlzLmNhbnZhcy5yZW1vdmUoKSx0aGlzLm92ZXJsYXlDYW52YXMucmVtb3ZlKCl9fX0pO3ZhciBJNCxzbyxUUWUsZjRhPWYoKCk9PntsZSgpO0wxKCk7bXMoKTtHaSgpO3ZhKCk7a2YoKTtNMSgpO00xKCk7cDRhKCk7UWUoKTtJND1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sc289ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFRRZT0oKCk9PntsZXQgYT1baWUoImRlZXMtcHJvZmlsZXBpY3R1cmUtbW9kYWwiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiUHJvZmlsZVBpY3R1cmVNb2RhbCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6TnVtYmVyfSldLHg9WyQoe3R5cGU6TnVtYmVyfSldLHk9W0soKV0sTj1bSygpXSxPPVtLKCldLEk0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJpbml0aWFsSW1hZ2UiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5pbml0aWFsSW1hZ2UsImdldCIpLHNldDpzKChTLEUpPT57Uy5pbml0aWFsSW1hZ2U9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxuLGwpLEk0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InNoYXBlImluIFMsImhhcyIpLGdldDpzKFM9PlMuc2hhcGUsImdldCIpLHNldDpzKChTLEUpPT57Uy5zaGFwZT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGMscCksSTQodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJvdXRwdXRTaXplImluIFMsImhhcyIpLGdldDpzKFM9PlMub3V0cHV0U2l6ZSwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLm91dHB1dFNpemU9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxtLHYpLEk0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4ib3V0cHV0UXVhbGl0eSJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLm91dHB1dFF1YWxpdHksImdldCIpLHNldDpzKChTLEUpPT57Uy5vdXRwdXRRdWFsaXR5PUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSxJNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJjdXJyZW50U3RlcCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmN1cnJlbnRTdGVwLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuY3VycmVudFN0ZXA9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxrLEMpLEk0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JvcHBlZEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJjcm9wcGVkSW1hZ2UiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5jcm9wcGVkSW1hZ2UsImdldCIpLHNldDpzKChTLEUpPT57Uy5jcm9wcGVkSW1hZ2U9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxfLHopLEk0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9jZXNzaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJpc1Byb2Nlc3NpbmciaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5pc1Byb2Nlc3NpbmcsImdldCIpLHNldDpzKChTLEUpPT57Uy5pc1Byb2Nlc3Npbmc9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxULFApLEk0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCksQj1yPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9I2U9c28odGhpcyxuLCIiKTtnZXQgaW5pdGlhbEltYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGluaXRpYWxJbWFnZShNKXt0aGlzLiNlPU19I3Q9KHNvKHRoaXMsbCksc28odGhpcyxjLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoTSl7dGhpcy4jdD1NfSNhPShzbyh0aGlzLHApLHNvKHRoaXMsbSw4MDApKTtnZXQgb3V0cHV0U2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBvdXRwdXRTaXplKE0pe3RoaXMuI2E9TX0jcj0oc28odGhpcyx2KSxzbyh0aGlzLGIsLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgb3V0cHV0UXVhbGl0eShNKXt0aGlzLiNyPU19I3M9KHNvKHRoaXMsZyksc28odGhpcyxrLCJjcm9wIikpO2dldCBjdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLiNzfXNldCBjdXJyZW50U3RlcChNKXt0aGlzLiNzPU19I2k9KHNvKHRoaXMsQyksc28odGhpcyxfLCIiKSk7Z2V0IGNyb3BwZWRJbWFnZSgpe3JldHVybiB0aGlzLiNpfXNldCBjcm9wcGVkSW1hZ2UoTSl7dGhpcy4jaT1NfSNvPShzbyh0aGlzLHopLHNvKHRoaXMsVCwhMSkpO2dldCBpc1Byb2Nlc3NpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQcm9jZXNzaW5nKE0pe3RoaXMuI289TX1jcm9wcGVyPShzbyh0aGlzLFApLG51bGwpO3dpbmRvd0xheWVyO3pJbmRleD0wO3N0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7cGF9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogdmFyKC0tei1pbmRleCk7CiAgICAgIH0KCiAgICAgIC5tb2RhbC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICB3aWR0aDogNDgwcHg7CiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlKDAuOTgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYW5pbWF0aW9uOiBtb2RhbFNob3cgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBtb2RhbFNob3cgewogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogNTJweDsKICAgICAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubW9kYWwtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTBweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsLWJvZHkgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLmNyb3BwZXItY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OwogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNikiLCJpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2UgewogICAgICAgIHdpZHRoOiAxODBweDsKICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSkiLCIwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5zcXVhcmUgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zdWNjZXNzLW1lc3NhZ2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTBiOTgxIiwiIzEwYjk4MSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYW5pbWF0aW9uOiBzdWNjZXNzUHVsc2UgMC40cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzdWNjZXNzUHVsc2UgewogICAgICAgIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgfQogICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDIwcHggMjRweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5pbnN0cnVjdGlvbnMgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIG1heC13aWR0aDogMzIwcHg7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXJnaW46IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy53aW5kb3dMYXllcj1hd2FpdCBHcy5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuY2xvc2UoKSksdGhpcy56SW5kZXg9WHQuZ2V0TmV4dFpJbmRleCgpLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tei1pbmRleCIsdGhpcy56SW5kZXgudG9TdHJpbmcoKSksWHQucmVnaXN0ZXIodGhpcyx0aGlzLnpJbmRleCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY3JvcHBlciYmdGhpcy5jcm9wcGVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSxYdC51bnJlZ2lzdGVyKHRoaXMpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250YWluZXIiIEBjbGljaz0ke009Pk0uc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9Im1vZGFsLXRpdGxlIj4KICAgICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiPyJBZGp1c3QgSW1hZ2UiOiJTdWNjZXNzIn0KICAgICAgICAgIDwvaDM+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbG9zZS1idXR0b24iIEBjbGljaz0ke3RoaXMuY2xvc2V9IHRpdGxlPSJDbG9zZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOngiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPgogICAgICAgICAgICAgIFBvc2l0aW9uIGFuZCByZXNpemUgdGhlIHNxdWFyZSB0byBzZWxlY3QgeW91ciBwcm9maWxlIGFyZWEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyb3BwZXItY29udGFpbmVyIiBpZD0iY3JvcHBlckNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgICAgICAke3RoaXMuaXNQcm9jZXNzaW5nP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5TYXZpbmcuLi48L2Rpdj4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8aW1nIAogICAgICAgICAgICAgICAgICBjbGFzcz0icHJldmlldy1pbWFnZSAke3RoaXMuc2hhcGV9IiAKICAgICAgICAgICAgICAgICAgc3JjPSIke3RoaXMuY3JvcHBlZEltYWdlfSIgCiAgICAgICAgICAgICAgICAgIGFsdD0iQ3JvcHBlZCBwcmV2aWV3IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Y2Nlc3MtbWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZWNrIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3Bhbj5Mb29raW5nIGdvb2QhPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5jbG9zZX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDcm9wfT4KICAgICAgICAgICAgICBTYXZlCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIiYmYXdhaXQgdGhpcy5pbml0aWFsaXplQ3JvcHBlcigpfWFzeW5jIGluaXRpYWxpemVDcm9wcGVyKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgTT10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNyb3BwZXJDb250YWluZXIiKTtNJiYodGhpcy5jcm9wcGVyPW5ldyBXc2Uoe2NvbnRhaW5lcjpNLGltYWdlOnRoaXMuaW5pdGlhbEltYWdlLHNoYXBlOnRoaXMuc2hhcGUsYXNwZWN0UmF0aW86MSxvdXRwdXRTaXplOnRoaXMub3V0cHV0U2l6ZSxvdXRwdXRRdWFsaXR5OnRoaXMub3V0cHV0UXVhbGl0eX0pLGF3YWl0IHRoaXMuY3JvcHBlci5pbml0aWFsaXplKCkpfWFzeW5jIGhhbmRsZUNyb3AoKXtpZih0aGlzLmNyb3BwZXIpdHJ5e3RoaXMuaXNQcm9jZXNzaW5nPSEwLHRoaXMuY3VycmVudFN0ZXA9InByZXZpZXciLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IE09YXdhaXQgdGhpcy5jcm9wcGVyLmdldENyb3BwZWRJbWFnZSgpO3RoaXMuY3JvcHBlZEltYWdlPU0sYXdhaXQgbmV3IFByb21pc2UoUz0+c2V0VGltZW91dChTLDgwMCkpLHRoaXMuaXNQcm9jZXNzaW5nPSExLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNhdmUiLHtkZXRhaWw6e2Nyb3BwZWRJbWFnZTp0aGlzLmNyb3BwZWRJbWFnZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5jbG9zZSgpfSwxNTAwKX1jYXRjaChNKXtjb25zb2xlLmVycm9yKCJFcnJvciBjcm9wcGluZyBpbWFnZToiLE0pLHRoaXMuaXNQcm9jZXNzaW5nPSExfX1jbG9zZSgpe3RoaXMucmVtb3ZlKCl9c3RhdGlje3NvKHIsdCl9fTtyZXR1cm4gQj1yfSkoKX0pO3ZhciBoNGEsbTRhPWYoKCk9PntsZSgpO05hKCk7WXMoKTtMUWUoKTtoNGE9cygoKT0+d2AKICA8c3R5bGU+CiAgICAke1hgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0OHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT1hLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVbc2hhcGU9InJvdW5kIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9PntsZXQgcj10LnRhcmdldDtjb25zb2xlLmxvZygiUm91bmQgcHJvZmlsZSBwaWN0dXJlIGNoYW5nZWQ6IixyLnZhbHVlPy5zdWJzdHJpbmcoMCw1MCkrIi4uLiIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9maWxlIFBpY3R1cmUgSW5wdXQifSAuc3VidGl0bGU9JHsiQmFzaWMgdXNhZ2Ugd2l0aCByb3VuZCBhbmQgc3F1YXJlIHNoYXBlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJQcm9maWxlIFBpY3R1cmUgKFJvdW5kKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRvIHVwbG9hZCBvciBkcmFnICYgZHJvcCBhbiBpbWFnZSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChTcXVhcmUpIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3VwcG9ydHMgSlBFRywgUE5HLCBhbmQgV2ViUCBmb3JtYXRzIgogICAgICAgICAgICBzaGFwZT0ic3F1YXJlIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2EucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpLmZvckVhY2godD0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwocj0+e2xldCBpPXIudGFyZ2V0O2NvbnNvbGUubG9nKGBQcm9maWxlIChzaXplICR7aS5zaXplfSkgY2hhbmdlZGApfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNpemUgVmFyaWF0aW9ucyJ9IC5zdWJ0aXRsZT0keyJQcm9maWxlIHBpY3R1cmVzIGluIGRpZmZlcmVudCBzaXplcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJTbWFsbCAoODBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iODAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTWVkaXVtICgxMjBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IkxhcmdlICgxNjBweCkiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTYwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9PntsZXQgZT0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajRLSUNBOFpHVm1jejRLSUNBZ0lEeHNhVzVsWVhKSGNtRmthV1Z1ZENCcFpEMGlaM0poWkdsbGJuUWlJSGd4UFNJd0pTSWdlVEU5SWpBbElpQjRNajBpTVRBd0pTSWdlVEk5SWpFd01DVWlQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpBbElpQnpkRzl3TFdOdmJHOXlQU0lqTmpZM1pXVmhJaUF2UGdvZ0lDQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTTNOalJpWVRJaUlDOCtDaUFnSUNBOEwyeHBibVZoY2tkeVlXUnBaVzUwUGdvZ0lEd3ZaR1ZtY3o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnWm1sc2JEMGlkWEpzS0NObmNtRmthV1Z1ZENraUlDOCtDaUFnUEhSbGVIUWdlRDBpTlRBbElpQjVQU0kxTUNVaUlHUnZiV2x1WVc1MExXSmhjMlZzYVc1bFBTSnRhV1JrYkdVaUlIUmxlSFF0WVc1amFHOXlQU0p0YVdSa2JHVWlJR1p2Ym5RdFptRnRhV3g1UFNKQmNtbGhiQ0lnWm05dWRDMXphWHBsUFNJNE1DSWdabWxzYkQwaWQyaHBkR1VpUGtwRVBDOTBaWGgwUGdvOEwzTjJaejQ9Iix0PWEucXVlcnlTZWxlY3RvcigiI3ByZWZpbGxlZC1wcm9maWxlIik7dCYmKHQudmFsdWU9ZSx0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHI9PntsZXQgaT1yLnRhcmdldCxvPWEucXVlcnlTZWxlY3RvcigiI3ByZWZpbGxlZC1vdXRwdXQiKTtvJiYoby50ZXh0Q29udGVudD1pLnZhbHVlP2BJbWFnZSBkYXRhOiAke2kudmFsdWUuc3Vic3RyaW5nKDAsODApfS4uLmA6Ik5vIGltYWdlIHNlbGVjdGVkIil9KSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcmUtZmlsbGVkIGFuZCBWYWx1ZSBCaW5kaW5nIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZSB3aXRoIGluaXRpYWwgdmFsdWUgYW5kIGNoYW5nZSB0cmFja2luZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICBpZD0icHJlZmlsbGVkLXByb2ZpbGUiCiAgICAgICAgICBsYWJlbD0iRWRpdCBFeGlzdGluZyBQcm9maWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRoZSBlZGl0IGJ1dHRvbiB0byBjaGFuZ2Ugb3IgZGVsZXRlIHRvIHJlbW92ZSIKICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgIHNpemU9IjE1MCIKICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InByZWZpbGxlZC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICBJbWFnZSBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBjaGFuZ2VkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGU9YS5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZWQtcHJvZmlsZSIpO2UmJihlLnZhbHVlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0iKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUmVxdWlyZWQgRmllbGQiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgaWQ9ImRpc2FibGVkLXByb2ZpbGUiCiAgICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBTdGF0ZSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlVwbG9hZCBPbmx5IgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iRGVsZXRlIG5vdCBhbGxvd2VkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZmVhdHVyZSBzZXQgb2YgdGhlIHByb2ZpbGUgcGljdHVyZSBpbnB1dCJ9PgogICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIFVwbG9hZDo8L3N0cm9uZz4gQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGltYWdlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2hhcGUgU3VwcG9ydDo8L3N0cm9uZz4gUm91bmQgb3Igc3F1YXJlIHByb2ZpbGUgcGljdHVyZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2l6ZSBDdXN0b21pemF0aW9uOjwvc3Ryb25nPiBBZGp1c3RhYmxlIGRpbWVuc2lvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5GaWxlIFZhbGlkYXRpb246PC9zdHJvbmc+IEZvcm1hdCBhbmQgc2l6ZSByZXN0cmljdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBEZXNpZ246PC9zdHJvbmc+IFdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZSBkZXZpY2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5Ojwvc3Ryb25nPiBLZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBzY3JlZW4gcmVhZGVyIHN1cHBvcnQ8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Wi1JbmRleCBNYW5hZ2VtZW50Ojwvc3Ryb25nPiBQcm9wZXIgbW9kYWwgc3RhY2tpbmcgd2l0aCByZWdpc3RyeTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8c3Ryb25nPlN1cHBvcnRlZCBGb3JtYXRzOjwvc3Ryb25nPiBKUEVHLCBQTkcsIFdlYlA8YnI+CiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj4KICAgICAgICAgIDxzdHJvbmc+T3V0cHV0IEZvcm1hdDo8L3N0cm9uZz4gQmFzZTY0IGVuY29kZWQgSlBFRwogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQm8sc3IsZzRhLExRZT1mKCgpPT57bGUoKTtTcigpO3ZhKCk7YW0oKTtmNGEoKTttNGEoKTtRZSgpO0JvPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxzcj1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sZzRhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpXSxlLHQ9W10scixpPU10LG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdLEIsTT1bXSxTPVtdLEUsQT1bXSxGPVtdLFcsaj1bXSxHPVtdLGhlLFI9W10sVT1bXSxtZSxJPVtdLHE9W10sY2UsdWU9W10sWT1bXTt2YXIgUT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0lucHV0UHJvZmlsZVBpY3R1cmUiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgSj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOk51bWJlcn0pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOkJvb2xlYW59KV0sTj1bJCh7dHlwZTpCb29sZWFufSldLE89WyQoe3R5cGU6TnVtYmVyfSldLEI9WyQoe3R5cGU6QXJyYXl9KV0sRT1bJCh7dHlwZTpOdW1iZXJ9KV0sVz1bJCh7dHlwZTpOdW1iZXJ9KV0saGU9W0soKV0sbWU9W0soKV0sY2U9W0soKV0sQm8odGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4idmFsdWUiaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi52YWx1ZSwiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi52YWx1ZT1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxuLGwpLEJvKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+InNoYXBlImluIFosImhhcyIpLGdldDpzKFo9Plouc2hhcGUsImdldCIpLHNldDpzKChaLGdlKT0+e1ouc2hhcGU9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sYyxwKSxCbyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+InNpemUiaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5zaXplLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLnNpemU9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sbSx2KSxCbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFo9PiJwbGFjZWhvbGRlciJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLnBsYWNlaG9sZGVyPWdlfSwic2V0Iil9LG1ldGFkYXRhOkp9LGIsZyksQm8odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd1VwbG9hZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhaPT4iYWxsb3dVcGxvYWQiaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5hbGxvd1VwbG9hZCwiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi5hbGxvd1VwbG9hZD1nZX0sInNldCIpfSxtZXRhZGF0YTpKfSxrLEMpLEJvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEZWxldGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+ImFsbG93RGVsZXRlImluIFosImhhcyIpLGdldDpzKFo9PlouYWxsb3dEZWxldGUsImdldCIpLHNldDpzKChaLGdlKT0+e1ouYWxsb3dEZWxldGU9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sXyx6KSxCbyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFo9PiJtYXhGaWxlU2l6ZSJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLm1heEZpbGVTaXplLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLm1heEZpbGVTaXplPWdlfSwic2V0Iil9LG1ldGFkYXRhOkp9LFQsUCksQm8odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY2NlcHRlZEZvcm1hdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+ImFjY2VwdGVkRm9ybWF0cyJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLmFjY2VwdGVkRm9ybWF0cywiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi5hY2NlcHRlZEZvcm1hdHM9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sTSxTKSxCbyh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+Im91dHB1dFNpemUiaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5vdXRwdXRTaXplLCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLm91dHB1dFNpemU9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sQSxGKSxCbyh0aGlzLG51bGwsVyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+Im91dHB1dFF1YWxpdHkiaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5vdXRwdXRRdWFsaXR5LCJnZXQiKSxzZXQ6cygoWixnZSk9PntaLm91dHB1dFF1YWxpdHk9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0saixHKSxCbyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWj0+ImlzSG92ZXJlZCJpbiBaLCJoYXMiKSxnZXQ6cyhaPT5aLmlzSG92ZXJlZCwiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi5pc0hvdmVyZWQ9Z2V9LCJzZXQiKX0sbWV0YWRhdGE6Sn0sUixVKSxCbyh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFo9PiJpc0RyYWdnaW5nImluIFosImhhcyIpLGdldDpzKFo9PlouaXNEcmFnZ2luZywiZ2V0Iiksc2V0OnMoKFosZ2UpPT57Wi5pc0RyYWdnaW5nPWdlfSwic2V0Iil9LG1ldGFkYXRhOkp9LEkscSksQm8odGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFo9PiJpc0xvYWRpbmciaW4gWiwiaGFzIiksZ2V0OnMoWj0+Wi5pc0xvYWRpbmcsImdldCIpLHNldDpzKChaLGdlKT0+e1ouaXNMb2FkaW5nPWdlfSwic2V0Iil9LG1ldGFkYXRhOkp9LHVlLFkpLEJvKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkp9LG51bGwsdCksUT1yPWUudmFsdWUsSiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpKfSl9c3RhdGljIGRlbW89aDRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1zcih0aGlzLG4sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShKKXt0aGlzLiNlPUp9I3Q9KHNyKHRoaXMsbCksc3IodGhpcyxjLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoSil7dGhpcy4jdD1KfSNhPShzcih0aGlzLHApLHNyKHRoaXMsbSwxMjApKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBzaXplKEope3RoaXMuI2E9Sn0jcj0oc3IodGhpcyx2KSxzcih0aGlzLGIsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcGxhY2Vob2xkZXIoSil7dGhpcy4jcj1KfSNzPShzcih0aGlzLGcpLHNyKHRoaXMsaywhMCkpO2dldCBhbGxvd1VwbG9hZCgpe3JldHVybiB0aGlzLiNzfXNldCBhbGxvd1VwbG9hZChKKXt0aGlzLiNzPUp9I2k9KHNyKHRoaXMsQyksc3IodGhpcyxfLCEwKSk7Z2V0IGFsbG93RGVsZXRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbG93RGVsZXRlKEope3RoaXMuI2k9Sn0jbz0oc3IodGhpcyx6KSxzcih0aGlzLFQsNSoxMDI0KjEwMjQpKTtnZXQgbWF4RmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4RmlsZVNpemUoSil7dGhpcy4jbz1KfSNuPShzcih0aGlzLFApLHNyKHRoaXMsTSxbImltYWdlL2pwZWciLCJpbWFnZS9wbmciLCJpbWFnZS93ZWJwIl0pKTtnZXQgYWNjZXB0ZWRGb3JtYXRzKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjY2VwdGVkRm9ybWF0cyhKKXt0aGlzLiNuPUp9I2w9KHNyKHRoaXMsUyksc3IodGhpcyxBLDgwMCkpO2dldCBvdXRwdXRTaXplKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG91dHB1dFNpemUoSil7dGhpcy4jbD1KfSNjPShzcih0aGlzLEYpLHNyKHRoaXMsaiwuOTUpKTtnZXQgb3V0cHV0UXVhbGl0eSgpe3JldHVybiB0aGlzLiNjfXNldCBvdXRwdXRRdWFsaXR5KEope3RoaXMuI2M9Sn0jZD0oc3IodGhpcyxHKSxzcih0aGlzLFIsITEpKTtnZXQgaXNIb3ZlcmVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSG92ZXJlZChKKXt0aGlzLiNkPUp9I3U9KHNyKHRoaXMsVSksc3IodGhpcyxJLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaXNEcmFnZ2luZyhKKXt0aGlzLiN1PUp9I3A9KHNyKHRoaXMscSksc3IodGhpcyx1ZSwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNMb2FkaW5nKEope3RoaXMuI3A9Sn1tb2RhbEluc3RhbmNlPShzcih0aGlzLFkpLG51bGwpO3N0YXRpYyBzdHlsZXM9W1BlLC4uLk10LmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmRyYWdnaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgLm92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuOTUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC45KSIsInJnYmEoMjIwLCAzOCwgMzgsIDAuOSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2RjMjYyNiIpfTsKICAgICAgfQoKICAgICAgLmRyb3Atem9uZS10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmhpZGRlbi1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBhbmltYXRpb24gKi8KICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuY2xpY2tpbmcgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICAKICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30KICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuaGFuZGxlRHJhZ092ZXJ9CiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9CiAgICAgICAgICBAZHJvcD0ke3RoaXMuaGFuZGxlRHJvcH0KICAgICAgICAgIHN0eWxlPSItLXNpemU6ICR7dGhpcy5zaXplfXB4IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcGljdHVyZSAke3RoaXMuc2hhcGV9ICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9ICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlPyJjbGlja2luZyI6IiJ9Ij4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGltZyBjbGFzcz0icHJvZmlsZS1pbWFnZSIgc3JjPSIke3RoaXMudmFsdWV9IiBhbHQ9IlByb2ZpbGUgcGljdHVyZSIgLz4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InBsYWNlaG9sZGVyLWljb24iIGljb249Imx1Y2lkZTp1c2VyIiBpY29uU2l6ZT0iJHt0aGlzLnNpemUqLjV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0RyYWdnaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgc3R5bGU9Im9wYWNpdHk6IDEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcC16b25lLXRleHQiPgogICAgICAgICAgICAgICAgICBEcm9wIGltYWdlIGhlcmUKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLnZhbHVlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93VXBsb2FkP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24iIEBjbGljaz0ke0o9PntKLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1vZGFsKCl9fSB0aXRsZT0iQ2hhbmdlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6cGVuY2lsIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGU/d2AKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdmVybGF5LWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke0o9PntKLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGVsZXRlUGljdHVyZSgpfX0gdGl0bGU9IkRlbGV0ZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnRyYXNoMiIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZyYmIXRoaXMudmFsdWU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkgc2hvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGlucHV0CiAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgY2xhc3M9ImhpZGRlbi1pbnB1dCIKICAgICAgICAgIGFjY2VwdD0iJHt0aGlzLmFjY2VwdGVkRm9ybWF0cy5qb2luKCIsIil9IgogICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH0KICAgICAgICAvPgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ2xpY2soKXtpZighKHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKSYmIXRoaXMudmFsdWUpe3RoaXMuaXNMb2FkaW5nPSEwO2xldCBKPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IiksWj1zKCgpPT57c2V0VGltZW91dCgoKT0+eyghSi5maWxlc3x8Si5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFopfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFopLEouY2xpY2soKX19aGFuZGxlRmlsZVNlbGVjdChKKXtsZXQgWj1KLnRhcmdldCxnZT1aLmZpbGVzPy5bMF07dGhpcy5pc0xvYWRpbmc9ITEsZ2UmJnRoaXMucHJvY2Vzc0ZpbGUoZ2UpLFoudmFsdWU9IiJ9aGFuZGxlRHJhZ092ZXIoSil7Si5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRpc2FibGVkJiZ0aGlzLmFsbG93VXBsb2FkJiYodGhpcy5pc0RyYWdnaW5nPSEwKX1oYW5kbGVEcmFnTGVhdmUoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRHJvcChKKXtpZihKLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKXJldHVybjtsZXQgWj1KLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07WiYmdGhpcy5wcm9jZXNzRmlsZShaKX1hc3luYyBwcm9jZXNzRmlsZShKKXtpZighdGhpcy5hY2NlcHRlZEZvcm1hdHMuaW5jbHVkZXMoSi50eXBlKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6IixKLnR5cGUpO3JldHVybn1pZihKLnNpemU+dGhpcy5tYXhGaWxlU2l6ZSl7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2U6IixKLnNpemUpO3JldHVybn1sZXQgWj1uZXcgRmlsZVJlYWRlcjtaLm9ubG9hZD1hc3luYyBnZT0+e2xldCBhZT1nZS50YXJnZXQ/LnJlc3VsdDthd2FpdCB0aGlzLm9wZW5Nb2RhbChhZSl9LFoucmVhZEFzRGF0YVVSTChKKX1hc3luYyBvcGVuTW9kYWwoSil7bGV0IFo9Snx8dGhpcy52YWx1ZTtpZighWil7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5oaWRkZW4taW5wdXQiKS5jbGljaygpO3JldHVybn10aGlzLm1vZGFsSW5zdGFuY2U9bmV3IFRRZSx0aGlzLm1vZGFsSW5zdGFuY2Uuc2hhcGU9dGhpcy5zaGFwZSx0aGlzLm1vZGFsSW5zdGFuY2UuaW5pdGlhbEltYWdlPVosdGhpcy5tb2RhbEluc3RhbmNlLm91dHB1dFNpemU9dGhpcy5vdXRwdXRTaXplLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRRdWFsaXR5PXRoaXMub3V0cHV0UXVhbGl0eSx0aGlzLm1vZGFsSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigic2F2ZSIsKGdlPT57dGhpcy52YWx1ZT1nZS5kZXRhaWwuY3JvcHBlZEltYWdlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5tb2RhbEluc3RhbmNlKX1kZWxldGVQaWN0dXJlKCl7dGhpcy52YWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEope3RoaXMudmFsdWU9Sn1zdGF0aWN7c3Iocix0KX19O3JldHVybiBRPXJ9KSgpfSk7dmFyIGI0YT1mKCgpPT57UTBhKCk7SlhlKCk7SjBhKCk7dGFlKCk7ZVFlKCk7UlllKCk7ZTRhKCk7dDRhKCk7YTRhKCk7cjRhKCk7czRhKCk7aTRhKCk7bzRhKCk7bDRhKCk7dFFlKCk7UVhlKCk7YzRhKCk7ZDRhKCk7dTRhKCk7TFFlKCl9KTt2YXIgdjRhLHg0YT1mKCgpPT57bGUoKTt2NGE9cygoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtb0NvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob24tU2VsZWN0YWJsZSBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5CYXNpYyBjaGlwcyB3aXRob3V0IHNlbGVjdGlvbiBjYXBhYmlsaXR5LiBVc2UgZm9yIGRpc3BsYXktb25seSB0YWdzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im5vbmUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJzdGF0dXMiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJ0aWVyIix2YWx1ZToiUHJlbWl1bSJ9LHtrZXk6InJlZ2lvbiIsdmFsdWU6IkVVLVdlc3QifSx7a2V5OiJ0eXBlIix2YWx1ZToiRW50ZXJwcmlzZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2luZ2xlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DbGljayB0byBzZWxlY3Qgb25lIGNoaXAgYXQgYSB0aW1lLiBVc2VmdWwgZm9yIGZpbHRlcnMgYW5kIG9wdGlvbnMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiYWxsIix2YWx1ZToiQWxsIFByb2plY3RzIn0se2tleToiYWN0aXZlIix2YWx1ZToiQWN0aXZlIn0se2tleToiYXJjaGl2ZWQiLHZhbHVlOiJBcmNoaXZlZCJ9LHtrZXk6ImRyYWZ0cyIsdmFsdWU6IkRyYWZ0cyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGlwbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBtdWx0aXBsZSBjaGlwcyBzaW11bHRhbmVvdXNseS4gR3JlYXQgZm9yIHRhZyBzZWxlY3Rpb24uPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJqcyIsdmFsdWU6IkphdmFTY3JpcHQifSx7a2V5OiJ0cyIsdmFsdWU6IlR5cGVTY3JpcHQifSx7a2V5OiJyZWFjdCIsdmFsdWU6IlJlYWN0In0se2tleToidnVlIix2YWx1ZToiVnVlIn0se2tleToiYW5ndWxhciIsdmFsdWU6IkFuZ3VsYXIifSx7a2V5OiJub2RlIix2YWx1ZToiTm9kZS5qcyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmVtb3ZhYmxlIENoaXBzIHdpdGggS2V5czwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DaGlwcyB3aXRoIHJlbW92ZSBidXR0b25zIGFuZCBrZXktdmFsdWUgcGFpcnMuIFBlcmZlY3QgZm9yIGR5bmFtaWMgbGlzdHMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJlbnYiLHZhbHVlOiJQcm9kdWN0aW9uIn0se2tleToidmVyc2lvbiIsdmFsdWU6IjIuNC4xIn0se2tleToiYnJhbmNoIix2YWx1ZToibWFpbiJ9LHtrZXk6ImF1dGhvciIsdmFsdWU6IkpvaG4gRG9lIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaXhlZCBDb250ZW50IEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29tYmluaW5nIGRpZmZlcmVudCBjaGlwIHR5cGVzIGZvciBjb21wbGV4IFVJcy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToicHJpb3JpdHkiLHZhbHVlOiJIaWdoIn0se2tleToic3RhdHVzIix2YWx1ZToiSW4gUHJvZ3Jlc3MifSx7a2V5OiJidWciLHZhbHVlOiJCdWcifSx7a2V5OiJmZWF0dXJlIix2YWx1ZToiRmVhdHVyZSJ9LHtrZXk6InNwcmludCIsdmFsdWU6IlNwcmludCAyMyJ9LHtrZXk6ImFzc2lnbmVlIix2YWx1ZToiQWxpY2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBZbSxXMSx5NGEsdzRhPWYoKCk9PntsZSgpO2VhKCk7eDRhKCk7UWUoKTtZbT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sVzE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHk0YT0oKCk9PntsZXQgYT1baWUoImRlZXMtY2hpcHMiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0NoaXBzIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxkPVskKHt0eXBlOkJvb2xlYW59KV0sdT1bJCh7dHlwZTpBcnJheX0pXSx4PVskKCldLHk9WyQoe3R5cGU6QXJyYXl9KV0sWW0odGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzZWxlY3Rpb25Nb2RlImluIHosImhhcyIpLGdldDpzKHo9Pnouc2VsZWN0aW9uTW9kZSwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNlbGVjdGlvbk1vZGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxuLGwpLFltKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hpcHNBcmVSZW1vdmFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImNoaXBzQXJlUmVtb3ZhYmxlImluIHosImhhcyIpLGdldDpzKHo9PnouY2hpcHNBcmVSZW1vdmFibGUsImdldCIpLHNldDpzKCh6LE8pPT57ei5jaGlwc0FyZVJlbW92YWJsZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGMscCksWW0odGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RhYmxlQ2hpcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InNlbGVjdGFibGVDaGlwcyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNlbGVjdGFibGVDaGlwcywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNlbGVjdGFibGVDaGlwcz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG0sdiksWW0odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InNlbGVjdGVkQ2hpcCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNlbGVjdGVkQ2hpcCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNlbGVjdGVkQ2hpcD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksWW0odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzZWxlY3RlZENoaXBzImluIHosImhhcyIpLGdldDpzKHo9Pnouc2VsZWN0ZWRDaGlwcywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNlbGVjdGVkQ2hpcHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLEMpLFltKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsdCksTj1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89djRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9VzEodGhpcyxuLCJzaW5nbGUiKTtnZXQgc2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZWxlY3Rpb25Nb2RlKF8pe3RoaXMuI2U9X30jdD0oVzEodGhpcyxsKSxXMSh0aGlzLGMsITEpKTtnZXQgY2hpcHNBcmVSZW1vdmFibGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2hpcHNBcmVSZW1vdmFibGUoXyl7dGhpcy4jdD1ffSNhPShXMSh0aGlzLHApLFcxKHRoaXMsbSxbXSkpO2dldCBzZWxlY3RhYmxlQ2hpcHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0YWJsZUNoaXBzKF8pe3RoaXMuI2E9X30jcj0oVzEodGhpcyx2KSxXMSh0aGlzLGIsbnVsbCkpO2dldCBzZWxlY3RlZENoaXAoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRDaGlwKF8pe3RoaXMuI3I9X30jcz0oVzEodGhpcyxnKSxXMSh0aGlzLGssW10pKTtnZXQgc2VsZWN0ZWRDaGlwcygpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RlZENoaXBzKF8pe3RoaXMuI3M9X31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksVzEodGhpcyxDKX1zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAuY2hpcDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY2hpcDphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgICAgICBwYWRkaW5nOiAwcHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICB9CgogICAgICBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMuc2VsZWN0YWJsZUNoaXBzLm1hcChfPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0Q2hpcChfKX0KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuaXNTZWxlY3RlZChfKT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7Xy5rZXk/d2A8ZGl2IGNsYXNzPSJjaGlwS2V5Ij4ke18ua2V5fTwvZGl2PmA6d2BgfSAke18udmFsdWV9CiAgICAgICAgICAgICAgJHt0aGlzLmNoaXBzQXJlUmVtb3ZhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7ej0+e3ouc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVDaGlwKF8pfX0KICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ImZhOnhtYXJrIn0KICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWlzU2VsZWN0ZWQoXyl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuc2VsZWN0ZWRDaGlwP3RoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCxfKTohMTp0aGlzLnNlbGVjdGVkQ2hpcHMuc29tZSh6PT50aGlzLmlzU2FtZUNoaXAoeixfKSl9aXNTYW1lQ2hpcChfLHope3JldHVybihfLmtleSYmei5rZXl8fF8udmFsdWU9PT16LnZhbHVlKSYmXy5rZXk9PT16LmtleX1hc3luYyBzZWxlY3RDaGlwKF8pe3RoaXMuc2VsZWN0aW9uTW9kZSE9PSJub25lIiYmKHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuaXNTZWxlY3RlZChfKT8odGhpcy5zZWxlY3RlZENoaXA9bnVsbCx0aGlzLnNlbGVjdGVkQ2hpcHM9W10pOih0aGlzLnNlbGVjdGVkQ2hpcD1fLHRoaXMuc2VsZWN0ZWRDaGlwcz1bX10pOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aXBsZSImJih0aGlzLmlzU2VsZWN0ZWQoXyk/dGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoej0+IXRoaXMuaXNTYW1lQ2hpcCh6LF8pKTp0aGlzLnNlbGVjdGVkQ2hpcHM9Wy4uLnRoaXMuc2VsZWN0ZWRDaGlwcyxfXSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksY29uc29sZS5sb2codGhpcy5zZWxlY3RlZENoaXBzKSl9cmVtb3ZlQ2hpcChfKXt0aGlzLnNlbGVjdGFibGVDaGlwcz10aGlzLnNlbGVjdGFibGVDaGlwcy5maWx0ZXIoej0+IXRoaXMuaXNTYW1lQ2hpcCh6LF8pKSx0aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcih6PT4hdGhpcy5pc1NhbWVDaGlwKHosXykpLHRoaXMuc2VsZWN0ZWRDaGlwJiZ0aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsXykmJih0aGlzLnNlbGVjdGVkQ2hpcD1udWxsKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7VzEocix0KX19O3JldHVybiBOPXJ9KSgpfSk7dmFyIE00YT1mKCgpPT57dzRhKCl9KTt2YXIgazRhLFM0YT1mKCgpPT57bGUoKTtOYSgpO2s0YT1zKCgpPT53YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBlPWEucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZEdyaWQiKSx0PVt7aWQ6Im1ldHJpY3MxIix4OjAseTowLHc6MyxoOjIsdGl0bGU6IlJldmVudWUiLGljb246Imx1Y2lkZTpkb2xsYXJTaWduIixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4kMTI0LDU2MzwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjMjJjNTVlOyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSAxMi41JSBmcm9tIGxhc3QgbW9udGg8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6Im1ldHJpY3MyIix4OjMseTowLHc6MyxoOjIsdGl0bGU6IlVzZXJzIixpY29uOiJsdWNpZGU6dXNlcnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPjgsMjM0PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMzYjgyZjY7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDUuMiUgZnJvbSBsYXN0IHdlZWs8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6ImNoYXJ0MSIseDo2LHk6MCx3OjYsaDo0LHRpdGxlOiJBbmFseXRpY3MiLGljb246Imx1Y2lkZTpsaW5lQ2hhcnQiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxpbmVDaGFydCJ9IHN0eWxlPSJmb250LXNpemU6IDQ4cHg7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXY+Q2hhcnQgdmlzdWFsaXphdGlvbiBhcmVhPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH1dO2Uud2lkZ2V0cz10Lm1hcCh5PT4oey4uLnl9KSksZS5jZWxsSGVpZ2h0PTgwLGUubWFyZ2luPXt0b3A6MTAscmlnaHQ6MTAsYm90dG9tOjEwLGxlZnQ6MTB9LGUuZW5hYmxlQW5pbWF0aW9uPSEwLGUuc2hvd0dyaWRMaW5lcz0hMTtsZXQgcj1lLmdldExheW91dCgpLm1hcCh5PT4oey4uLnl9KSksaT1lLndpZGdldHMubWFwKCh5LGspPT4oe2lkOnkuaWQseDowLHk6az09PTA/MDplLndpZGdldHMuc2xpY2UoMCxrKS5yZWR1Y2UoKEMsTik9PkMrTi5oLDApLHc6ZS5jb2x1bW5zLGg6eS5ofSkpO2UubGF5b3V0cz17YmFzZTpyLG1vYmlsZTppfTtsZXQgbz1hLnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRMYXlvdXRTdGF0dXMiKSxuPXMoKCk9PntsZXQgeT1lLmdldExheW91dCgpO28udGV4dENvbnRlbnQ9YEFjdGl2ZSBicmVha3BvaW50OiAke2UuYWN0aXZlQnJlYWtwb2ludH0gXHUyMDIyIFRpbGVzOiAke3kubGVuZ3RofWB9LCJ1cGRhdGVTdGF0dXMiKSxsPXdpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3NjhweCkiKSxkPXMoKCk9PntsZXQgeT1sLm1hdGNoZXM/Im1vYmlsZSI6ImJhc2UiO2UuYXBwbHlCcmVha3BvaW50TGF5b3V0KHkpLG4oKX0sImhhbmRsZUJyZWFrcG9pbnQiKTt0eXBlb2YgbC5hZGRFdmVudExpc3RlbmVyPT0iZnVuY3Rpb24iP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixkKTpsLmFkZExpc3RlbmVyPy4oZCksZCgpO2xldCBjPTQ7YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goeT0+e3N3aXRjaCh5LnRleHQ/LnRyaW0oKSl7Y2FzZSJUb2dnbGUgQW5pbWF0aW9uIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZW5hYmxlQW5pbWF0aW9uPSFlLmVuYWJsZUFuaW1hdGlvbn0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEdyaWQgTGluZXMiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5zaG93R3JpZExpbmVzPSFlLnNob3dHcmlkTGluZXN9KTticmVhaztjYXNlIkFkZCBXaWRnZXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IEM9e2lkOmB3aWRnZXQke2MrK31gLHg6MCx5OjAsdzozLGg6MixhdXRvUG9zaXRpb246ITAsdGl0bGU6YFdpZGdldCAke2MtMX1gLGljb246Imx1Y2lkZTpwYWNrYWdlIixjb250ZW50OndgCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjNzE3MTdhOyI+TmV3IHdpZGdldCBjb250ZW50PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyBmb250LXNpemU6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpfTwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9O2UuYWRkV2lkZ2V0KEMsITApfSk7YnJlYWs7Y2FzZSJDb21wYWN0IEdyaWQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5jb21wYWN0KCl9KTticmVhaztjYXNlIlRvZ2dsZSBFZGl0IE1vZGUiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5lZGl0YWJsZT0hZS5lZGl0YWJsZSx5LnRleHQ9ZS5lZGl0YWJsZT8iTG9jayBHcmlkIjoiVW5sb2NrIEdyaWQifSk7YnJlYWs7Y2FzZSJSZXNldCBMYXlvdXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQoZS5hY3RpdmVCcmVha3BvaW50KX0pO2JyZWFrO2RlZmF1bHQ6YnJlYWt9fSk7bGV0IHU9bnVsbCxtPTAsdj1zKCh5LGspPT57bGV0IEM9ZS5nZXRMYXlvdXQoKTtjb25zb2xlLmdyb3VwKGBcdXsxRjUwNH0gJHt5fSBbRXZlbnQgIyR7KyttfV1gKSxjb25zb2xlLmxvZygiVGltZXN0YW1wOiIsbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxjb25zb2xlLmxvZygiR3JpZCBDb25maWd1cmF0aW9uOiIse2NvbHVtbnM6ZS5jb2x1bW5zLGNlbGxIZWlnaHQ6ZS5jZWxsSGVpZ2h0LG1hcmdpbjplLm1hcmdpbixlZGl0YWJsZTplLmVkaXRhYmxlLGFjdGl2ZUJyZWFrcG9pbnQ6ZS5hY3RpdmVCcmVha3BvaW50fSksY29uc29sZS5sb2coIkN1cnJlbnQgTGF5b3V0OiIsQyksY29uc29sZS5sb2coIldpZGdldCBDb3VudDoiLEMubGVuZ3RoKSxjb25zb2xlLmxvZygiR3JpZCBCb3VuZHM6Iix7dG90YWxXaWRnZXRzOmUud2lkZ2V0cy5sZW5ndGgsbWF4WTpNYXRoLm1heCguLi5DLm1hcChOPT5OLnkrTi5oKSksb2NjdXBpZWQ6Qy5tYXAoTj0+YCR7Ti5pZH06ICgke04ueH0sJHtOLnl9KSAke04ud314JHtOLmh9YCkuam9pbigiLCAiKX0pLGsmJmNvbnNvbGUubG9nKCJFdmVudCBEZXRhaWxzOiIsayksY29uc29sZS5ncm91cEVuZCgpfSwibG9nR3JpZFN0YXRlIikseD1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e2xldCB5PWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnBsYWNlaG9sZGVyIik7aWYoeSl7bGV0IGs9e2xlZnQ6eS5zdHlsZS5sZWZ0LHRvcDp5LnN0eWxlLnRvcCx3aWR0aDp5LnN0eWxlLndpZHRoLGhlaWdodDp5LnN0eWxlLmhlaWdodH07aWYoSlNPTi5zdHJpbmdpZnkoaykhPT1KU09OLnN0cmluZ2lmeSh1KSl7Y29uc29sZS5ncm91cCgiXHV7MUY0Q0R9IFBsYWNlaG9sZGVyIFBvc2l0aW9uIENoYW5nZWQiKSxjb25zb2xlLmxvZygiUHJldmlvdXM6Iix1KSxjb25zb2xlLmxvZygiQ3VycmVudDoiLGspO2xldCBDPWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmdyaWQtY29udGFpbmVyIik7QyYmY29uc29sZS5sb2coIkdyaWQgQ29udGFpbmVyIERpbWVuc2lvbnM6Iix7d2lkdGg6Qy5jbGllbnRXaWR0aCxoZWlnaHQ6Qy5jbGllbnRIZWlnaHR9KSxjb25zb2xlLmdyb3VwRW5kKCksdT1rfX19KTtlLnNoYWRvd1Jvb3QmJngub2JzZXJ2ZShlLnNoYWRvd1Jvb3Qse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsic3R5bGUiXX0pLHYoIkluaXRpYWwgR3JpZCBTdGF0ZSIpLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LW1vdmUiLHk9PntsZXQgaz15LmRldGFpbDt2KCJXaWRnZXQgTW92ZSIse3dpZGdldDprLndpZGdldCxkaXNwbGFjZWQ6ay5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6ay5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVzaXplIix5PT57bGV0IGs9eS5kZXRhaWw7digiV2lkZ2V0IFJlc2l6ZSIse3dpZGdldDprLndpZGdldCxkaXNwbGFjZWQ6ay5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6ay5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVtb3ZlIix5PT57bGV0IGs9eS5kZXRhaWw7digiV2lkZ2V0IFJlbW92ZSIse3JlbW92ZWRXaWRnZXQ6ay53aWRnZXR9KSxuKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImxheW91dC1jaGFuZ2UiLCgpPT57digiTGF5b3V0IENoYW5nZSIpLG4oKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHk9PntsZXQgaz15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0LWhlYWRlciIpLEM9eS50YXJnZXQuY2xvc2VzdCgiLnJlc2l6ZS1oYW5kbGUiKTtpZihrfHxDKXtjb25zb2xlLmdyb3VwKGBcdXsxRjNBRn0gSW50ZXJhY3Rpb24gU3RhcnRlZDogJHtrPyJEcmFnIjoiUmVzaXplIn1gKSxjb25zb2xlLmxvZygiVGFyZ2V0IFdpZGdldDoiLHkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpKSxjb25zb2xlLmxvZygiUG9pbnRlciBQb3NpdGlvbjoiLHt4OnkuY2xpZW50WCx5OnkuY2xpZW50WX0pLGNvbnNvbGUuZ3JvdXBFbmQoKTtsZXQgTj1zKHo9PntsZXQgTz15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik7TyYmY29uc29sZS5sb2coIlx1MjE5NFx1RkUwRiBQb2ludGVyIE1vdmU6Iix7d2lkZ2V0SWQ6Ty5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikscG9zaXRpb246e3g6ei5jbGllbnRYLHk6ei5jbGllbnRZfSxkZWx0YTp7eDp6LmNsaWVudFgteS5jbGllbnRYLHk6ei5jbGllbnRZLXkuY2xpZW50WX19KX0sImhhbmRsZVBvaW50ZXJNb3ZlIiksXz1zKCgpPT57Y29uc29sZS5ncm91cCgiXHV7MUYzQzF9IEludGVyYWN0aW9uIEVuZGVkIiksdigiRmluYWwgU3RhdGUgQWZ0ZXIgSW50ZXJhY3Rpb24iKSxjb25zb2xlLmdyb3VwRW5kKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLE4pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsXyl9LCJoYW5kbGVQb2ludGVyVXAiKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTiksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixfKX19KTtsZXQgYj1lLmFkZFdpZGdldC5iaW5kKGUpO2UuYWRkV2lkZ2V0PSh5LGspPT57Y29uc29sZS5ncm91cCgiXHUyNzk1IEFkZGluZyBXaWRnZXQiKSxjb25zb2xlLmxvZygiTmV3IFdpZGdldDoiLHkpLGNvbnNvbGUubG9nKCJBdXRvIFBvc2l0aW9uOiIsayk7bGV0IEM9Yih5LGspO3JldHVybiB2KCJBZnRlciBXaWRnZXQgQWRkZWQiKSxjb25zb2xlLmdyb3VwRW5kKCksQ307bGV0IGc9ZS5jb21wYWN0LmJpbmQoZSk7ZS5jb21wYWN0PXk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjVEQ31cdUZFMEYgQ29tcGFjdGluZyBHcmlkIiksY29uc29sZS5sb2coIkRpcmVjdGlvbjoiLHl8fCJ2ZXJ0aWNhbCIpLHYoIkJlZm9yZSBDb21wYWN0Iik7bGV0IGs9Zyh5KTtyZXR1cm4gdigiQWZ0ZXIgQ29tcGFjdCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxrfSxuKCl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7WGAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIGRlZXMtYnV0dG9uIHsKICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICB9CgogICAgICAgICAgLmdyaWQtY29udGFpbmVyLXdyYXBwZXIgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQoKICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQoKICAgICAgICAgICNkYXNoYm9hcmRMYXlvdXRTdGF0dXMgewogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBbmltYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBBbmltYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRpc3BsYXk6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBHcmlkIExpbmVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgV2lkZ2V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNvbXBhY3QgR3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXNldCBMYXlvdXQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9Ik1vZGU6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBFZGl0IE1vZGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jb250YWluZXItd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1kYXNoYm9hcmRncmlkIGlkPSJkYXNoYm9hcmRHcmlkIj48L2RlZXMtZGFzaGJvYXJkZ3JpZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICA8ZGl2PkRyYWcgdG8gcmVwb3NpdGlvbiwgcmVzaXplIGZyb20gaGFuZGxlcywgb3IgcmlnaHQtY2xpY2sgYSBoZWFkZXIgdG8gZGVsZXRlIGEgdGlsZS48L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRhc2hib2FyZExheW91dFN0YXR1cyI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgejRhLEM0YT1mKCgpPT57bGUoKTt6NGE9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmdyaWQtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtlbmFibGVhbmltYXRpb25dKSAuZ3JpZC13aWRnZXQgewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyB7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC13aWRnZXQucGxhY2Vob2xkZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5yZXNpemluZyB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSIsIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldDpob3ZlciAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC40KSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LmRyYWdnaW5nIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC4yNSkiLCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNikiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgICBjdXJzb3I6IGdyYWI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyOmFjdGl2ZSB7CiAgICAgICAgY3Vyc29yOiBncmFiYmluZzsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIubG9ja2VkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWJvZHkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5Lmhhcy1oZWFkZXIgewogICAgICAgIHRvcDogNDVweDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWUgewogICAgICAgIGN1cnNvcjogZXctcmVzaXplOwogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIHJpZ2h0OiAtNnB4OwogICAgICAgIHRvcDogMTAlOwogICAgICAgIGhlaWdodDogODAlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zIHsKICAgICAgICBjdXJzb3I6IG5zLXJlc2l6ZTsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBib3R0b206IC02cHg7CiAgICAgICAgbGVmdDogMTAlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zZSB7CiAgICAgICAgY3Vyc29yOiBzZS1yZXNpemU7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIGJvdHRvbTogLTJweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAucmVzaXplLWhhbmRsZS1zZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogNHB4OwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldDpob3ZlciAucmVzaXplLWhhbmRsZS1zZSB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAucmVzaXplLWhhbmRsZS1zZTpob3Zlcjo6YWZ0ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuZ3JpZC1wbGFjZWhvbGRlciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBvcGFjaXR5OiAwLjE7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogLTE7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtdmVydGljYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZS1ob3Jpem9udGFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgYF19KTt2YXIgTWlvLCRRZSxMNGEsJDRhLF80YSxlRyxUNGEsSklhLGVOYSxEUWUsTjQsRDRhLEE0YSxQNGE9ZigoKT0+e01pbz0xMCwkUWU9cyhhPT57aWYodHlwZW9mIGE9PSJudW1iZXIiKXJldHVybntob3Jpem9udGFsOmEsdmVydGljYWw6YSx0b3A6YSxyaWdodDphLGJvdHRvbTphLGxlZnQ6YX07bGV0IGU9e3RvcDphLnRvcD8/MTAscmlnaHQ6YS5yaWdodD8/MTAsYm90dG9tOmEuYm90dG9tPz8xMCxsZWZ0OmEubGVmdD8/MTB9O3JldHVybnsuLi5lLGhvcml6b250YWw6KGUubGVmdCtlLnJpZ2h0KS8yLHZlcnRpY2FsOihlLnRvcCtlLmJvdHRvbSkvMn19LCJyZXNvbHZlTWFyZ2lucyIpLEw0YT1zKChhLGUsdCxyLGkpPT57bGV0IG89dC5ob3Jpem9udGFsKihlKzEpLG49TWF0aC5tYXgoYS1vLDApLGw9ZT4wP24vZTowLGQ9aT09PSJhdXRvIj9sOnI7cmV0dXJue2NvbnRhaW5lcldpZHRoOmEsY2VsbFdpZHRoUHg6bCxtYXJnaW5Ib3Jpem9udGFsUHg6dC5ob3Jpem9udGFsLGNlbGxIZWlnaHRQeDpkLG1hcmdpblZlcnRpY2FsUHg6dC52ZXJ0aWNhbH19LCJjYWxjdWxhdGVDZWxsTWV0cmljcyIpLCQ0YT1zKChhLGUsdCk9PntpZihhLmxlbmd0aD09PTApcmV0dXJuIDA7bGV0IHI9TWF0aC5tYXgoLi4uYS5tYXAoaT0+aS55K2kuaCksMCk7cmV0dXJuIHIqdCsocisxKSplLnZlcnRpY2FsfSwiY2FsY3VsYXRlR3JpZEhlaWdodCIpLF80YT1zKChhLGUsdCxyLGkpPT5lPGEueCthLncmJmUrcj5hLngmJnQ8YS55K2EuaCYmdCtpPmEueSwib3ZlcmxhcHMiKSxlRz1zKChhLGUsdCxyLGk9ZS53LG89ZS5oKT0+YS5maWx0ZXIobj0+bi5pZD09PWUuaWQ/ITE6XzRhKG4sdCxyLGksbykpLCJjb2xsZWN0Q29sbGlzaW9ucyIpLFQ0YT1zKChhLGUsdCxyKT0+ZUcoYSxlLHQscikubGVuZ3RoPjAsImNoZWNrQ29sbGlzaW9uIiksSklhPXMoYT0+KHsuLi5hfSksImNsb25lV2lkZ2V0IiksZU5hPXMoYT0+YS5tYXAoSklhKSwiY2xvbmVXaWRnZXRzIiksRFFlPXMoKGEsZSx0LHIpPT57Zm9yKGxldCBvPTA7bzwyMDA7bysrKWZvcihsZXQgbj0wO248PXItZTtuKyspaWYoIWEuc29tZShkPT5fNGEoZCxuLG8sZSx0KSkpcmV0dXJue3g6bix5Om99O3JldHVybnt4OjAseTphLnJlZHVjZSgobyxuKT0+TWF0aC5tYXgobyxuLnkrbi5oKSwwKX19LCJmaW5kQXZhaWxhYmxlUG9zaXRpb24iKSxOND1zKChhLGUsdCxyLGkpPT57bGV0IG89ZU5hKGEpLG49by5maW5kKG09Pm0uaWQ9PT1lKSxsPWEuZmluZChtPT5tLmlkPT09ZSk7aWYoIW58fCFsKXJldHVybiBudWxsO2xldCBkPXt4OnQueCx5OnQueSx3OnQudz8/bi53LGg6dC5oPz9uLmh9O24ueD1kLngsbi55PWQueSxuLnc9ZC53LG4uaD1kLmg7bGV0IGM9ZUcobyxuLGQueCxkLnksZC53LGQuaCk7aWYoYy5sZW5ndGg9PT0wKXJldHVybnt3aWRnZXRzOm8sbW92ZWRXaWRnZXRzOltuLmlkXX07aWYoYy5sZW5ndGg9PT0xKXtsZXQgbT1jWzBdO2lmKCFtLmxvY2tlZCYmIW0ubm9Nb3ZlJiZtLnc9PT1uLncmJm0uaD09PW4uaCl7bGV0IHY9by5maW5kKHg9PnguaWQ9PT1tLmlkKTtpZih2KXtsZXQgeD1sLGI9e3g6di54LHk6di55fTtpZih2Lng9eC54LHYueT14LnksZUcobyxuLG4ueCxuLnksbi53LG4uaCkubGVuZ3RoPT09MCYmZUcobyx2LHYueCx2Lnksdi53LHYuaCkubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpvLG1vdmVkV2lkZ2V0czpbbi5pZCx2LmlkXSxzd2FwcGVkV2l0aDp2LmlkfTt2Lng9Yi54LHYueT1iLnl9fX1sZXQgcD1uZXcgU2V0KFtuLmlkXSk7Zm9yKGxldCBtIG9mIGMpe2lmKG0ubG9ja2VkfHxtLm5vTW92ZSlyZXR1cm4gbnVsbDtsZXQgdj1vLmZpbmQoZz0+Zy5pZD09PW0uaWQpO2lmKCF2KWNvbnRpbnVlO2xldCB4PW8uZmlsdGVyKGc9PmcuaWQhPT1tLmlkKSxiPURRZSh4LHYudyx2Lmgscik7di54PWIueCx2Lnk9Yi55LHAuYWRkKHYuaWQpfXJldHVybiBlRyhvLG4sbi54LG4ueSxuLncsbi5oKS5sZW5ndGg+MD9udWxsOnt3aWRnZXRzOm8sbW92ZWRXaWRnZXRzOkFycmF5LmZyb20ocCl9fSwicmVzb2x2ZVdpZGdldFBsYWNlbWVudCIpLEQ0YT1zKChhLGU9InZlcnRpY2FsIik9PntsZXQgdD1bLi4uYV0uc29ydCgocixpKT0+ZT09PSJ2ZXJ0aWNhbCI/ci55IT09aS55P3IueS1pLnk6ci54LWkueDpyLnghPT1pLng/ci54LWkueDpyLnktaS55KTtmb3IobGV0IHIgb2YgdClpZighKHIubG9ja2VkfHxyLm5vTW92ZSkpaWYoZT09PSJ2ZXJ0aWNhbCIpZm9yKDtyLnk+MCYmIVQ0YShhLHIsci54LHIueS0xKTspci55LT0xO2Vsc2UgZm9yKDtyLng+MCYmIVQ0YShhLHIsci54LTEsci55KTspci54LT0xfSwiY29tcGFjdExheW91dCIpLEE0YT1zKChhLGUpPT5hLm1hcCh0PT57bGV0IHI9ZS5maW5kKGk9PmkuaWQ9PT10LmlkKTtyZXR1cm4gcj97Li4udCwuLi5yfTp0fSksImFwcGx5TGF5b3V0Iil9KTt2YXIgRTRhLEk0YSxONGE9ZigoKT0+e0U0YT1zKCh7cG9pbnRlcjphLGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOnQsY29sdW1uczpyLHdpZGdldDppLHJ0bDpvLGRyYWdPZmZzZXRYOm49MCxkcmFnT2Zmc2V0WTpsPTB9KT0+e2xldCBkPWEuY2xpZW50WC1lLmxlZnQtbixjPWEuY2xpZW50WS1lLnRvcC1sLHA9dC5tYXJnaW5Ib3Jpem9udGFsUHgsdT10Lm1hcmdpblZlcnRpY2FsUHgsbT10LmNlbGxXaWR0aFB4LHY9dC5jZWxsSGVpZ2h0UHgseD1zKChfLHosTyk9Pk1hdGgubWF4KHosTWF0aC5taW4oTyxfKSksImNsYW1wIiksYj14KGQtcCwwLGUud2lkdGgtcCksZz14KGMtdSwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkseT1tK3Asaz12K3UsQz1NYXRoLnJvdW5kKGIveSk7byYmKEM9ci1pLnctQyksQz14KEMsMCxyLWkudyk7bGV0IE49eChNYXRoLnJvdW5kKGcvayksMCxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7cmV0dXJue3g6Qyx5Ok59fSwiY29tcHV0ZUdyaWRDb29yZGluYXRlcyIpLEk0YT1zKCh7cG9pbnRlcjphLGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOnQsc3RhcnRXaWR0aDpyLHN0YXJ0SGVpZ2h0Omksc3RhcnRQb2ludGVyOm8saGFuZGxlcjpuLHdpZGdldDpsLGNvbHVtbnM6ZH0pPT57bGV0IGM9YS5jbGllbnRYLW8uY2xpZW50WCxwPWEuY2xpZW50WS1vLmNsaWVudFksdT1yLG09aSx2PXQuY2VsbFdpZHRoUHgrdC5tYXJnaW5Ib3Jpem9udGFsUHgseD10LmNlbGxIZWlnaHRQeCt0Lm1hcmdpblZlcnRpY2FsUHg7aWYobi5pbmNsdWRlcygiZSIpKXtsZXQgeT1NYXRoLnJvdW5kKGMvdik7dT1yK3l9aWYobi5pbmNsdWRlcygicyIpKXtsZXQgeT1NYXRoLnJvdW5kKHAveCk7bT1pK3l9bGV0IGI9TWF0aC5tYXgobC5taW5XfHwxLE1hdGgubWluKHUsbC5tYXhXfHxkLWwueCkpLGc9TWF0aC5tYXgobC5taW5IfHwxLE1hdGgubWluKG0sbC5tYXhIfHxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpO3JldHVybnt3aWR0aDpiLGhlaWdodDpnfX0sImNvbXB1dGVSZXNpemVEaW1lbnNpb25zIil9KTt2YXIgUjRhLE80YT1mKCgpPT57WHIoKTtXcygpO1I0YT1zKCh7d2lkZ2V0OmEsaG9zdDplLGV2ZW50OnR9KT0+e2xldCByPVt7bmFtZToiRGVsZXRlIHRpbGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246cyhhc3luYygpPT4oZS5yZW1vdmVXaWRnZXQoYS5pZCksbnVsbCksImFjdGlvbiIpfV07dGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxyKX0sIm9wZW5XaWRnZXRDb250ZXh0TWVudSIpfSk7dmFyIE9pLEZhLEY0YSxCNGE9ZigoKT0+e2xlKCk7dmEoKTtYcigpO1M0YSgpO0M0YSgpO1A0YSgpO040YSgpO080YSgpO09pPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxGYT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sRjRhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1kYXNoYm9hcmRncmlkIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdLGdlLGFlPVtdLHJlPVtdO3ZhciB5ZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0Rhc2hib2FyZGdyaWQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgVj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6TnVtYmVyfSldLHU9WyQoe3R5cGU6T2JqZWN0fSldLHg9WyQoe3R5cGU6TnVtYmVyfSldLHk9WyQoe3R5cGU6Qm9vbGVhbn0pXSxOPVskKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxPPVskKHt0eXBlOlN0cmluZ30pXSxCPVskKHt0eXBlOkJvb2xlYW59KV0sRT1bJCh7dHlwZTpCb29sZWFufSldLFc9WyQoe2F0dHJpYnV0ZTohMX0pXSxoZT1bJCh7dHlwZTpTdHJpbmd9KV0sbWU9W0soKV0sY2U9W0soKV0sUT1bSygpXSxnZT1bSygpXSxPaSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+IndpZGdldHMiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC53aWRnZXRzLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILndpZGdldHM9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sbixsKSxPaSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImNlbGxIZWlnaHQiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5jZWxsSGVpZ2h0LCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILmNlbGxIZWlnaHQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sYyxwKSxPaSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hcmdpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ibWFyZ2luImluIEgsImhhcyIpLGdldDpzKEg9PkgubWFyZ2luLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILm1hcmdpbj1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxtLHYpLE9pKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4iY29sdW1ucyJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILmNvbHVtbnMsImdldCIpLHNldDpzKChILG9lKT0+e0guY29sdW1ucz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxiLGcpLE9pKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImVkaXRhYmxlImluIEgsImhhcyIpLGdldDpzKEg9PkguZWRpdGFibGUsImdldCIpLHNldDpzKChILG9lKT0+e0guZWRpdGFibGU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sayxDKSxPaSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUFuaW1hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4iZW5hYmxlQW5pbWF0aW9uImluIEgsImhhcyIpLGdldDpzKEg9PkguZW5hYmxlQW5pbWF0aW9uLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILmVuYWJsZUFuaW1hdGlvbj1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxfLHopLE9pKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodFVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImNlbGxIZWlnaHRVbml0ImluIEgsImhhcyIpLGdldDpzKEg9PkguY2VsbEhlaWdodFVuaXQsImdldCIpLHNldDpzKChILG9lKT0+e0guY2VsbEhlaWdodFVuaXQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sVCxQKSxPaSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ0bCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4icnRsImluIEgsImhhcyIpLGdldDpzKEg9PkgucnRsLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILnJ0bD1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxNLFMpLE9pKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWRMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ic2hvd0dyaWRMaW5lcyJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILnNob3dHcmlkTGluZXMsImdldCIpLHNldDpzKChILG9lKT0+e0guc2hvd0dyaWRMaW5lcz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxBLEYpLE9pKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ibGF5b3V0cyJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILmxheW91dHMsImdldCIpLHNldDpzKChILG9lKT0+e0gubGF5b3V0cz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxqLEcpLE9pKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJyZWFrcG9pbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImFjdGl2ZUJyZWFrcG9pbnQiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5hY3RpdmVCcmVha3BvaW50LCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILmFjdGl2ZUJyZWFrcG9pbnQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sUixVKSxPaSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJwbGFjZWhvbGRlclBvc2l0aW9uImluIEgsImhhcyIpLGdldDpzKEg9PkgucGxhY2Vob2xkZXJQb3NpdGlvbiwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5wbGFjZWhvbGRlclBvc2l0aW9uPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LEkscSksT2kodGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ibWV0cmljcyJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILm1ldHJpY3MsImdldCIpLHNldDpzKChILG9lKT0+e0gubWV0cmljcz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSx1ZSxZKSxPaSh0aGlzLG51bGwsUSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTWFyZ2lucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4icmVzb2x2ZWRNYXJnaW5zImluIEgsImhhcyIpLGdldDpzKEg9PkgucmVzb2x2ZWRNYXJnaW5zLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILnJlc29sdmVkTWFyZ2lucz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxKLFopLE9pKHRoaXMsbnVsbCxnZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJwcmV2aWV3V2lkZ2V0cyJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILnByZXZpZXdXaWRnZXRzLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILnByZXZpZXdXaWRnZXRzPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGFlLHJlKSxPaShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpWfSxudWxsLHQpLHllPXI9ZS52YWx1ZSxWJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlZ9KX1zdGF0aWMgZGVtbz1rNGE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTtzdGF0aWMgc3R5bGVzPXo0YTsjZT1GYSh0aGlzLG4sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoVil7dGhpcy4jZT1WfSN0PShGYSh0aGlzLGwpLEZhKHRoaXMsYyw4MCkpO2dldCBjZWxsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlbGxIZWlnaHQoVil7dGhpcy4jdD1WfSNhPShGYSh0aGlzLHApLEZhKHRoaXMsbSwxMCkpO2dldCBtYXJnaW4oKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWFyZ2luKFYpe3RoaXMuI2E9Vn0jcj0oRmEodGhpcyx2KSxGYSh0aGlzLGIsMTIpKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNyfXNldCBjb2x1bW5zKFYpe3RoaXMuI3I9Vn0jcz0oRmEodGhpcyxnKSxGYSh0aGlzLGssITApKTtnZXQgZWRpdGFibGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgZWRpdGFibGUoVil7dGhpcy4jcz1WfSNpPShGYSh0aGlzLEMpLEZhKHRoaXMsXywhMCkpO2dldCBlbmFibGVBbmltYXRpb24oKXtyZXR1cm4gdGhpcy4jaX1zZXQgZW5hYmxlQW5pbWF0aW9uKFYpe3RoaXMuI2k9Vn0jbz0oRmEodGhpcyx6KSxGYSh0aGlzLFQsInB4IikpO2dldCBjZWxsSGVpZ2h0VW5pdCgpe3JldHVybiB0aGlzLiNvfXNldCBjZWxsSGVpZ2h0VW5pdChWKXt0aGlzLiNvPVZ9I249KEZhKHRoaXMsUCksRmEodGhpcyxNLCExKSk7Z2V0IHJ0bCgpe3JldHVybiB0aGlzLiNufXNldCBydGwoVil7dGhpcy4jbj1WfSNsPShGYSh0aGlzLFMpLEZhKHRoaXMsQSwhMSkpO2dldCBzaG93R3JpZExpbmVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dHcmlkTGluZXMoVil7dGhpcy4jbD1WfSNjPShGYSh0aGlzLEYpLEZhKHRoaXMsaix2b2lkIDApKTtnZXQgbGF5b3V0cygpe3JldHVybiB0aGlzLiNjfXNldCBsYXlvdXRzKFYpe3RoaXMuI2M9Vn0jZD0oRmEodGhpcyxHKSxGYSh0aGlzLFIsImJhc2UiKSk7Z2V0IGFjdGl2ZUJyZWFrcG9pbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlQnJlYWtwb2ludChWKXt0aGlzLiNkPVZ9I3U9KEZhKHRoaXMsVSksRmEodGhpcyxJLG51bGwpKTtnZXQgcGxhY2Vob2xkZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiN1fXNldCBwbGFjZWhvbGRlclBvc2l0aW9uKFYpe3RoaXMuI3U9Vn0jcD0oRmEodGhpcyxxKSxGYSh0aGlzLHVlLG51bGwpKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNwfXNldCBtZXRyaWNzKFYpe3RoaXMuI3A9Vn0jZj0oRmEodGhpcyxZKSxGYSh0aGlzLEosbnVsbCkpO2dldCByZXNvbHZlZE1hcmdpbnMoKXtyZXR1cm4gdGhpcy4jZn1zZXQgcmVzb2x2ZWRNYXJnaW5zKFYpe3RoaXMuI2Y9Vn0jaD0oRmEodGhpcyxaKSxGYSh0aGlzLGFlLG51bGwpKTtnZXQgcHJldmlld1dpZGdldHMoKXtyZXR1cm4gdGhpcy4jaH1zZXQgcHJldmlld1dpZGdldHMoVil7dGhpcy4jaD1WfWNvbnRhaW5lckJvdW5kcz0oRmEodGhpcyxyZSksbnVsbCk7ZHJhZ1N0YXRlPW51bGw7cmVzaXplU3RhdGU9bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcmFjdGlvbkFjdGl2ZT0hMTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb21wdXRlTWV0cmljcygpLHRoaXMub2JzZXJ2ZVJlc2l6ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX11cGRhdGVkKFYpeyhWLmhhcygibWFyZ2luIil8fFYuaGFzKCJjb2x1bW5zIil8fFYuaGFzKCJjZWxsSGVpZ2h0Iil8fFYuaGFzKCJjZWxsSGVpZ2h0VW5pdCIpKSYmdGhpcy5jb21wdXRlTWV0cmljcygpLFYuaGFzKCJ3aWRnZXRzIikmJiF0aGlzLmludGVyYWN0aW9uQWN0aXZlJiZ0aGlzLm5vdGlmeUxheW91dENoYW5nZSgpfXJlbmRlcigpe2xldCBWPXRoaXMud2lkZ2V0cztpZihWLmxlbmd0aD09PTApcmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGF5b3V0R3JpZCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+QWRkIHdpZGdldHMgdG8gcG9wdWxhdGUgdGhlIGRhc2hib2FyZDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgO2xldCBIPXRoaXMuZW5zdXJlTWV0cmljcygpLG9lPXRoaXMucmVzb2x2ZWRNYXJnaW5zPz8kUWUodGhpcy5tYXJnaW4pLHNlPUguY2VsbEhlaWdodFB4LHRlPXRoaXMucHJldmlld1dpZGdldHM/P3RoaXMud2lkZ2V0cyx6ZT0kNGEodGUsb2Usc2UpLE9lPXRoaXMucHJldmlld1dpZGdldHM/bmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcChxZT0+W3FlLmlkLHFlXSkpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAke3plfXB4OyI+CiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXM/dGhpcy5yZW5kZXJHcmlkTGluZXMoSCx6ZSk6bnVsbH0KICAgICAgICAke1YubWFwKHFlPT50aGlzLnJlbmRlcldpZGdldChxZSxILG9lLE9lKSl9CiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihILG9lKTpudWxsfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR3JpZExpbmVzKFYsSCl7bGV0IG9lPVtdLHNlPVtdLHRlPVYuY2VsbFdpZHRoUHgrVi5tYXJnaW5Ib3Jpem9udGFsUHgsemU9Vi5jZWxsSGVpZ2h0UHgrVi5tYXJnaW5WZXJ0aWNhbFB4O2ZvcihsZXQgcWU9MDtxZTw9dGhpcy5jb2x1bW5zO3FlKyspe2xldCBkdD1xZSp0ZStWLm1hcmdpbkhvcml6b250YWxQeCwkZT10aGlzLnB4VG9QZXJjZW50KGR0LFYuY29udGFpbmVyV2lkdGgpO29lLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtdmVydGljYWwiIHN0eWxlPSJsZWZ0OiAkeyRlfSU7Ij48L2Rpdj5gKX1sZXQgT2U9TWF0aC5jZWlsKEgvemUpO2ZvcihsZXQgcWU9MDtxZTw9T2U7cWUrKyl7bGV0IGR0PXFlKnplO3NlLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtaG9yaXpvbnRhbCIgc3R5bGU9InRvcDogJHtkdH1weDsiPjwvZGl2PmApfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxpbmVzIj4KICAgICAgICAke29lfQogICAgICAgICR7c2V9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoVixILG9lLHNlKXtsZXQgdGU9dGhpcy5kcmFnU3RhdGU/LndpZGdldElkPT09Vi5pZCx6ZT10aGlzLnJlc2l6ZVN0YXRlPy53aWRnZXRJZD09PVYuaWQsT2U9Vi5sb2NrZWR8fCF0aGlzLmVkaXRhYmxlLHFlPXNlPy5nZXQoVi5pZCk/P251bGwsZHQ9dGU/VjpxZT8/ViwkZT10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KGR0LEgsb2UpLENlPXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLE1lPXRoaXMucHhUb1BlcmNlbnQoJGUubGVmdCxILmNvbnRhaW5lcldpZHRoKSxkZT10aGlzLnB4VG9QZXJjZW50KCRlLndpZHRoLEguY29udGFpbmVyV2lkdGgpLHZlPSIiO2lmKHRlJiZ0aGlzLmRyYWdTdGF0ZT8uY3VycmVudFBvaW50ZXIpe2xldCBBZT10aGlzLmRyYWdTdGF0ZS5jdXJyZW50UG9pbnRlcixaZT10aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxudD1BZS5jbGllbnRYLVplLmxlZnQtdGhpcy5kcmFnU3RhdGUub2Zmc2V0WC0kZS5sZWZ0LHp0PUFlLmNsaWVudFktWmUudG9wLXRoaXMuZHJhZ1N0YXRlLm9mZnNldFktJGUudG9wO3ZlPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke250fXB4LCAke3p0fXB4KTtgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7dGU/ImRyYWdnaW5nIjoiIn0gJHt6ZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke0NlfTogJHtNZX0lOwogICAgICAgICAgdG9wOiAkeyRlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke2RlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7JGUuaGVpZ2h0fXB4OwogICAgICAgICAgJHt2ZX0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtWLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtWLnRpdGxlP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7T2U/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshT2UmJiFWLm5vTW92ZT9BZT0+dGhpcy5zdGFydERyYWcoQWUsVik6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7QWU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoQWUsVil9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IU9lJiYhVi5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtBZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKEFlLFYpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1YuaWNvbj93YDxkZWVzLWljb24gLmljb249JHtWLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtWLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtWLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke1YuY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshT2UmJiFWLm5vUmVzaXplP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7QWU9PnRoaXMuc3RhcnRSZXNpemUoQWUsViwiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke0FlPT50aGlzLnN0YXJ0UmVzaXplKEFlLFYsInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7QWU9PnRoaXMuc3RhcnRSZXNpemUoQWUsViwic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihWLEgpe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIHdgYDtsZXQgb2U9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24sVixIKSxzZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0Iix0ZT10aGlzLnB4VG9QZXJjZW50KG9lLmxlZnQsVi5jb250YWluZXJXaWR0aCksemU9dGhpcy5weFRvUGVyY2VudChvZS53aWR0aCxWLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke3NlfTogJHt0ZX0lOwogICAgICAgICAgdG9wOiAke29lLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke3plfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7b2UuaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhWLEgpe2lmKCF0aGlzLmVkaXRhYmxlfHxILm5vTW92ZXx8SC5sb2NrZWQpcmV0dXJuO1YucHJldmVudERlZmF1bHQoKSxWLnN0b3BQcm9wYWdhdGlvbigpO2xldCBvZT1WLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIW9lKXJldHVybjtsZXQgc2U9b2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6SC5pZCxwb2ludGVySWQ6Vi5wb2ludGVySWQsb2Zmc2V0WDpWLmNsaWVudFgtc2UubGVmdCxvZmZzZXRZOlYuY2xpZW50WS1zZS50b3Asc3RhcnQ6e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LHByZXZpb3VzUG9zaXRpb246e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOlYuY2xpZW50WCxjbGllbnRZOlYuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLFYuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShWLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9fWhhbmRsZURyYWdNb3ZlPXMoVj0+e2lmKCF0aGlzLmRyYWdTdGF0ZSlyZXR1cm47bGV0IEg9dGhpcy5lbnN1cmVNZXRyaWNzKCksb2U9dGhpcy53aWRnZXRzLHNlPW9lLmZpbmQocWU9PnFlLmlkPT09dGhpcy5kcmFnU3RhdGUud2lkZ2V0SWQpO2lmKCFzZSlyZXR1cm47Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCB0ZT10aGlzLmRyYWdTdGF0ZS5wcmV2aW91c1Bvc2l0aW9uLHplPUU0YSh7cG9pbnRlcjp7Y2xpZW50WDpWLmNsaWVudFgsY2xpZW50WTpWLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpILGNvbHVtbnM6dGhpcy5jb2x1bW5zLHdpZGdldDpzZSxydGw6dGhpcy5ydGwsZHJhZ09mZnNldFg6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WCxkcmFnT2Zmc2V0WTp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRZfSksT2U9TjQob2Usc2UuaWQse3g6emUueCx5OnplLnl9LHRoaXMuY29sdW1ucyx0ZSk7aWYoT2Upe2xldCBxZT1PZS53aWRnZXRzLmZpbmQoJGU9PiRlLmlkPT09c2UuaWQpO3RoaXMuZHJhZ1N0YXRlPXsuLi50aGlzLmRyYWdTdGF0ZSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpWLmNsaWVudFgsY2xpZW50WTpWLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6T2UscHJldmlvdXNQb3NpdGlvbjpxZT97aWQ6cWUuaWQseDpxZS54LHk6cWUueSx3OnFlLncsaDpxZS5ofTp7aWQ6c2UuaWQseDp6ZS54LHk6emUueSx3OnNlLncsaDpzZS5ofX0sdGhpcy5wcmV2aWV3V2lkZ2V0cz1PZS53aWRnZXRzO2xldCBkdD1PZS53aWRnZXRzLmZpbmQoJGU9PiRlLmlkPT09c2UuaWQpO2R0P3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6ZHQuaWQseDpkdC54LHk6ZHQueSx3OmR0LncsaDpkdC5ofTp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOnNlLmlkLHg6emUueCx5OnplLnksdzpzZS53LGg6c2UuaH19ZWxzZSB0aGlzLnByZXZpZXdXaWRnZXRzPW51bGwsdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGw7dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJoYW5kbGVEcmFnTW92ZSIpO2hhbmRsZURyYWdFbmQ9cyhWPT57bGV0IEg9dGhpcy5kcmFnU3RhdGU7aWYoIUh8fFYucG9pbnRlcklkIT09SC5wb2ludGVySWQpcmV0dXJuO2xldCBvZT10aGlzLndpZGdldHM7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsO2xldCBzZT10aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/P0guc3RhcnQsdGU9TjQob2UsSC53aWRnZXRJZCx7eDpzZS54LHk6c2UueX0sdGhpcy5jb2x1bW5zLEgucHJldmlvdXNQb3NpdGlvbik7aWYodGUpe2xldCB6ZT10ZS53aWRnZXRzLmZpbmQoT2U9Pk9lLmlkPT09SC53aWRnZXRJZCk7emUmJih0ZS53aWRnZXRzLnNvbWUocWU9PnFlLmlkPT09SC53aWRnZXRJZD8hMTp6ZS54PHFlLngrcWUudyYmemUueCt6ZS53PnFlLngmJnplLnk8cWUueStxZS5oJiZ6ZS55K3plLmg+cWUueSk/dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAocWU9PnFlLmlkPT09SC53aWRnZXRJZD97Li4ucWUseDpILnN0YXJ0LngseTpILnN0YXJ0Lnl9OnFlKTp0aGlzLmNvbW1pdFBsYWNlbWVudCh0ZSxILndpZGdldElkLCJ3aWRnZXQtbW92ZSIpKX1lbHNlIHRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHplPT56ZS5pZD09PUgud2lkZ2V0SWQ/ey4uLnplLHg6SC5zdGFydC54LHk6SC5zdGFydC55fTp6ZSk7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX0sImhhbmRsZURyYWdFbmQiKTtzdGFydFJlc2l6ZShWLEgsb2UpeyF0aGlzLmVkaXRhYmxlfHxILm5vUmVzaXplfHxILmxvY2tlZHx8KFYucHJldmVudERlZmF1bHQoKSxWLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOkguaWQscG9pbnRlcklkOlYucG9pbnRlcklkLGhhbmRsZXI6b2Usc3RhcnRQb2ludGVyOntjbGllbnRYOlYuY2xpZW50WCxjbGllbnRZOlYuY2xpZW50WX0sc3RhcnQ6e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LHN0YXJ0V2lkdGg6SC53LHN0YXJ0SGVpZ2h0OkguaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAsVi5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKFYucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9KX1oYW5kbGVSZXNpemVNb3ZlPXMoVj0+e2lmKCF0aGlzLnJlc2l6ZVN0YXRlKXJldHVybjtsZXQgSD10aGlzLmVuc3VyZU1ldHJpY3MoKSxvZT10aGlzLndpZGdldHMsc2U9b2UuZmluZChPZT0+T2UuaWQ9PT10aGlzLnJlc2l6ZVN0YXRlLndpZGdldElkKTtpZighc2UpcmV0dXJuO1YucHJldmVudERlZmF1bHQoKTtsZXQgdGU9STRhKHtwb2ludGVyOntjbGllbnRYOlYuY2xpZW50WCxjbGllbnRZOlYuY2xpZW50WX0sY29udGFpbmVyUmVjdDp0aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtZXRyaWNzOkgsc3RhcnRXaWR0aDp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0V2lkdGgsc3RhcnRIZWlnaHQ6dGhpcy5yZXNpemVTdGF0ZS5zdGFydEhlaWdodCxzdGFydFBvaW50ZXI6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFBvaW50ZXIsaGFuZGxlcjp0aGlzLnJlc2l6ZVN0YXRlLmhhbmRsZXIsd2lkZ2V0OnNlLGNvbHVtbnM6dGhpcy5jb2x1bW5zfSksemU9TjQob2Usc2UuaWQse3g6c2UueCx5OnNlLnksdzp0ZS53aWR0aCxoOnRlLmhlaWdodH0sdGhpcy5jb2x1bW5zLHRoaXMucmVzaXplU3RhdGUuc3RhcnQpO2lmKHplKXt0aGlzLnJlc2l6ZVN0YXRlPXsuLi50aGlzLnJlc2l6ZVN0YXRlLGxhc3RQbGFjZW1lbnQ6emV9LHRoaXMucHJldmlld1dpZGdldHM9emUud2lkZ2V0cztsZXQgT2U9emUud2lkZ2V0cy5maW5kKHFlPT5xZS5pZD09PXNlLmlkKTtPZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOk9lLmlkLHg6T2UueCx5Ok9lLnksdzpPZS53LGg6T2UuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpzZS5pZCx4OnNlLngseTpzZS55LHc6dGUud2lkdGgsaDp0ZS5oZWlnaHR9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwiaGFuZGxlUmVzaXplTW92ZSIpO2hhbmRsZVJlc2l6ZUVuZD1zKFY9PntsZXQgSD10aGlzLnJlc2l6ZVN0YXRlO2lmKCFIfHxWLnBvaW50ZXJJZCE9PUgucG9pbnRlcklkKXJldHVybjtsZXQgb2U9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgc2U9SC5sYXN0UGxhY2VtZW50Pz9ONChvZSxILndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/SC5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9ILnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P0guc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/SC5zdGFydC5ofSx0aGlzLmNvbHVtbnMsSC5zdGFydCk7c2U/dGhpcy5jb21taXRQbGFjZW1lbnQoc2UsSC53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHRlPT50ZS5pZD09PUgud2lkZ2V0SWQ/ey4uLnRlLHc6SC5zdGFydC53LGg6SC5zdGFydC5ofTp0ZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfSwiaGFuZGxlUmVzaXplRW5kIik7aGFuZGxlSGVhZGVyS2V5ZG93bihWLEgpe2lmKCF0aGlzLmVkaXRhYmxlfHxILm5vTW92ZXx8SC5sb2NrZWQpcmV0dXJuO2xldCBvZT1WLmtleSxzZT1WLnNoaWZ0S2V5LHRlPW51bGw7aWYoc2UmJlsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhvZSkpe1YucHJldmVudERlZmF1bHQoKTtsZXQgJGU9b2U9PT0iQXJyb3dSaWdodCJ8fG9lPT09IkFycm93RG93biI/MTotMTtpZihvZT09PSJBcnJvd0xlZnQifHxvZT09PSJBcnJvd1JpZ2h0Iil7bGV0IENlPUgubWF4Vz8/dGhpcy5jb2x1bW5zLUgueCxNZT1NYXRoLm1heChILm1pblc/PzEsTWF0aC5taW4oQ2UsSC53KyRlKSk7dGU9TjQodGhpcy53aWRnZXRzLEguaWQse3g6SC54LHk6SC55LHc6TWUsaDpILmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgQ2U9SC5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksTWU9TWF0aC5tYXgoSC5taW5IPz8xLE1hdGgubWluKENlLEguaCskZSkpO3RlPU40KHRoaXMud2lkZ2V0cyxILmlkLHt4OkgueCx5OkgueSx3OkgudyxoOk1lfSx0aGlzLmNvbHVtbnMpfXRlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudCh0ZSxILmlkLCJ3aWRnZXQtcmVzaXplIik7cmV0dXJufWxldCBPZT17QXJyb3dMZWZ0OntkeDotMSxkeTowfSxBcnJvd1JpZ2h0OntkeDoxLGR5OjB9LEFycm93VXA6e2R4OjAsZHk6LTF9LEFycm93RG93bjp7ZHg6MCxkeToxfX1bb2VdO2lmKCFPZSlyZXR1cm47Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCBxZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuY29sdW1ucy1ILncsSC54K09lLmR4KSksZHQ9TWF0aC5tYXgoMCxILnkrT2UuZHkpO3RlPU40KHRoaXMud2lkZ2V0cyxILmlkLHt4OnFlLHk6ZHR9LHRoaXMuY29sdW1ucyksdGUmJnRoaXMuY29tbWl0UGxhY2VtZW50KHRlLEguaWQsIndpZGdldC1tb3ZlIil9aGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoVixIKXtWLnByZXZlbnREZWZhdWx0KCksVi5zdG9wUHJvcGFnYXRpb24oKSxSNGEoe3dpZGdldDpILGhvc3Q6dGhpcyxldmVudDpWfSl9Y29tbWl0UGxhY2VtZW50KFYsSCxvZSl7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMud2lkZ2V0cz1WLndpZGdldHM7bGV0IHNlPXRoaXMud2lkZ2V0cy5maW5kKHRlPT50ZS5pZD09PUgpO3NlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KG9lLHtkZXRhaWw6e3dpZGdldDpzZSxkaXNwbGFjZWQ6Vi5tb3ZlZFdpZGdldHMuZmlsdGVyKHRlPT50ZSE9PUgpLHN3YXBwZWRXaXRoOlYuc3dhcHBlZFdpdGh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVtb3ZlV2lkZ2V0KFYpe2xldCBIPXRoaXMud2lkZ2V0cy5maW5kKG9lPT5vZS5pZD09PVYpO0gmJih0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihvZT0+b2UuaWQhPT1WKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ3aWRnZXQtcmVtb3ZlIix7ZGV0YWlsOnt3aWRnZXQ6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9dXBkYXRlV2lkZ2V0KFYsSCl7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAob2U9Pm9lLmlkPT09Vj97Li4ub2UsLi4uSH06b2UpfWdldExheW91dCgpe3JldHVybiB0aGlzLndpZGdldHMubWFwKCh7aWQ6Vix4OkgseTpvZSx3OnNlLGg6dGV9KT0+KHtpZDpWLHg6SCx5Om9lLHc6c2UsaDp0ZX0pKX1zZXRMYXlvdXQoVil7dGhpcy53aWRnZXRzPUE0YSh0aGlzLndpZGdldHMsVil9bG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSExfXVubG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSEwfWFkZFdpZGdldChWLEg9ITEpe2xldCBvZT17Li4uVn07aWYoSHx8b2UuYXV0b1Bvc2l0aW9uKXtsZXQgc2U9RFFlKHRoaXMud2lkZ2V0cyxvZS53LG9lLmgsdGhpcy5jb2x1bW5zKTtvZS54PXNlLngsb2UueT1zZS55fXRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLG9lXX1jb21wYWN0KFY9InZlcnRpY2FsIil7bGV0IEg9dGhpcy53aWRnZXRzLm1hcChvZT0+KHsuLi5vZX0pKTtENGEoSCxWKSx0aGlzLndpZGdldHM9SH1hcHBseUJyZWFrcG9pbnRMYXlvdXQoVil7dGhpcy5hY3RpdmVCcmVha3BvaW50PVY7bGV0IEg9dGhpcy5sYXlvdXRzPy5bVl07SCYmdGhpcy5zZXRMYXlvdXQoSCl9bm90aWZ5TGF5b3V0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGF5b3V0LWNoYW5nZSIse2RldGFpbDp7bGF5b3V0OnRoaXMuZ2V0TGF5b3V0KCl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9ZW5zdXJlTWV0cmljcygpe3JldHVybiB0aGlzLm1ldHJpY3N8fHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm1ldHJpY3N9Y29tcHV0ZU1ldHJpY3MoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm47bGV0IFY9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmNvbnRhaW5lckJvdW5kcz1WO2xldCBIPSRRZSh0aGlzLm1hcmdpbik7dGhpcy5yZXNvbHZlZE1hcmdpbnM9SCx0aGlzLm1ldHJpY3M9TDRhKFYud2lkdGgsdGhpcy5jb2x1bW5zLEgsdGhpcy5jZWxsSGVpZ2h0LHRoaXMuY2VsbEhlaWdodFVuaXQpfW9ic2VydmVSZXNpemUoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNvbXB1dGVNZXRyaWNzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1yZWxlYXNlUG9pbnRlckV2ZW50cygpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCl9cHhUb1BlcmNlbnQoVixIKXtyZXR1cm4gSD9OdW1iZXIoKFYvSCoxMDApLnRvRml4ZWQoNCkpOjB9Y29tcHV0ZVdpZGdldFJlY3QoVixILG9lKXtsZXQgc2U9SC5jZWxsV2lkdGhQeCx0ZT1ILmNlbGxIZWlnaHRQeCx6ZT1WLngqKHNlK29lLmhvcml6b250YWwpK29lLmhvcml6b250YWwsT2U9Vi55Kih0ZStvZS52ZXJ0aWNhbCkrb2UudmVydGljYWwscWU9Vi53KnNlK01hdGgubWF4KDAsVi53LTEpKm9lLmhvcml6b250YWwsZHQ9Vi5oKnRlK01hdGgubWF4KDAsVi5oLTEpKm9lLnZlcnRpY2FsO3JldHVybntsZWZ0OnplLHRvcDpPZSx3aWR0aDpxZSxoZWlnaHQ6ZHR9fXN0YXRpY3tGYShyLHQpfX07cmV0dXJuIHllPXJ9KSgpfSk7dmFyIEg0YT1mKCgpPT57QjRhKCl9KTtmdW5jdGlvbiBxNGEoKXtyZXR1cm4gd2AKICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjEiPlRoaXMgaXMgYSBIMSBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIyIj5UaGlzIGlzIGEgSDIgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMyI+VGhpcyBpcyBhIEgzIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjQiPlRoaXMgaXMgYSBINCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI1Ij5UaGlzIGlzIGEgSDUgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNiI+VGhpcyBpcyBhIEg2IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyIj5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSJociIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI3Ij5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSI3Iik8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyLXNtYWxsIj5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSJoci1zbWFsbCIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI4Ij5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSI4Iik8L2RlZXMtaGVhZGluZz4KICBgfXZhciBWNGE9ZigoKT0+e2xlKCk7cyhxNGEsImRlbW9GdW5jIil9KTt2YXIgajRhLEFRZSxVNGEsVzRhPWYoKCk9PntsZSgpO1Y0YSgpO21zKCk7UWUoKTtqNGE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEFRZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sVTRhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1oZWFkaW5nIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNIZWFkaW5nIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxqNGEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsZXZlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4ibGV2ZWwiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5sZXZlbCwiZ2V0Iiksc2V0OnMoKHAsdSk9PntwLmxldmVsPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxqNGEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1xNGE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1BUWUodGhpcyxuLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAvKiBIZWFkaW5nIHN0eWxlcy4KICAgICAgICogQ29sb3IgaGllcmFyY2h5OiBoMS1oMiBzdGF5IHByb21pbmVudCB3aXRoIHRleHQtcHJpbWFyeTsgaDMtaDYgc3RlcAogICAgICAgKiBkb3duIHRvIHRleHQtc2Vjb25kYXJ5IHNvIHRoZXkgcmVhZCBhcyBzdWJoZWFkaW5ncyBpbnN0ZWFkIG9mCiAgICAgICAqIG1pbmktaDFzLiBLZWVwcyB0aGUgdmlzdWFsIGxvdWRuZXNzIG91dCBvZiBzbWFsbGVyIGhlYWRpbmdzLiAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIGgxLCBoMiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAvKiBQZXItbGV2ZWwgdHlwb2dyYXBoeSArIHNwYWNpbmcuCiAgICAgICAqIE1hcmdpbiBzY2FsZXMgd2l0aCBpbXBvcnRhbmNlOiBoMSBnZXRzIHRoZSBtb3N0IGJyZWF0aGluZyByb29tLAogICAgICAgKiBoNiB0aGUgbGVhc3QuIFRvcCBtYXJnaW4gPiBib3R0b20gbWFyZ2luIHNvIGhlYWRpbmdzIGdyb3VwIHdpdGgKICAgICAgICogdGhlIGNvbnRlbnQgdGhhdCBmb2xsb3dzIHRoZW0uICovCiAgICAgIGgxIHsKICAgICAgICAvKiBoMSB1c2VzIHdlaWdodCA1MDAsIG5vdCA2MDA6IHRoZSBDYWwgU2FucyBkaXNwbGF5IGZvbnQgaXMKICAgICAgICAgKiBhbHJlYWR5IHN0eWxpemVkIGVub3VnaCB0aGF0IGJvbGQgKyBtYXggY29udHJhc3QgKyAzMnB4IHN0YWNrcwogICAgICAgICAqIHRvbyBtdWNoIGVtcGhhc2lzLiA1MDAga2VlcHMgdGhlIHR5cG9ncmFwaGljIGltcGFjdCB3aXRob3V0CiAgICAgICAgICogc2hvdXRpbmcuICovCiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnJhfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMjVlbTsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsKICAgICAgfQogICAgICBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKSAwIHZhcigtLWRlZXMtc3BhY2luZy1tZCk7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy14bCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOwogICAgICB9CiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgICBoNSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKSAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1tZCkgMCB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOwogICAgICB9CgogICAgICAvKiBIb3Jpem9udGFsIHJ1bGUgc3R5bGUgaGVhZGluZyAqLwogICAgICAuaGVhZGluZy1ociB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1sZykgMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAvKiBGYWRlIGxpbmVzIHRvd2FyZCBhbmQgYXdheSBmcm9tIHRleHQgZm9yIGhyIHN0eWxlICovCiAgICAgIC5oZWFkaW5nLWhyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKSk7CiAgICAgICAgbWFyZ2luOiAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgLmhlYWRpbmctaHI6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKSwgdHJhbnNwYXJlbnQpOwogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIC8qIFNtYWxsIGhyIHZhcmlhbnQgd2l0aCByZWR1Y2VkIG1hcmdpbnMgKi8KICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbCB7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctc20pIDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmJlZm9yZSwKICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbDo6YWZ0ZXIgewogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSIxIjpyZXR1cm4gd2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YDtjYXNlIjIiOnJldHVybiB3YDxoMj48c2xvdD48L3Nsb3Q+PC9oMj5gO2Nhc2UiMyI6cmV0dXJuIHdgPGgzPjxzbG90Pjwvc2xvdD48L2gzPmA7Y2FzZSI0IjpyZXR1cm4gd2A8aDQ+PHNsb3Q+PC9zbG90PjwvaDQ+YDtjYXNlIjUiOnJldHVybiB3YDxoNT48c2xvdD48L3Nsb3Q+PC9oNT5gO2Nhc2UiNiI6cmV0dXJuIHdgPGg2PjxzbG90Pjwvc2xvdD48L2g2PmA7Y2FzZSI3IjpjYXNlImhyIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtjYXNlIjgiOmNhc2UiaHItc21hbGwiOnJldHVybiB3YDxkaXYgY2xhc3M9ImhlYWRpbmctaHIgaGVhZGluZy1oci1zbWFsbCI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7ZGVmYXVsdDpyZXR1cm4gd2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YH19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEFRZSh0aGlzLGwpfXN0YXRpY3tBUWUocix0KX19O3JldHVybiBkPXJ9KSgpfSk7dmFyIEc0YT1mKCgpPT57VzRhKCl9KTt2YXIgWTRhPWYoKCk9PnthbSgpfSk7dmFyIEs0YSxaNGE9ZigoKT0+e2xlKCk7SzRhPXMoKCk9PndgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyI+CiAgICA8IS0tIFNtYWxsIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjUgcGFnZXMsIHN0YXJ0aW5nIGF0IDE6PC9zcGFuPgogICAgICA8ZGVlcy1wYWdpbmF0aW9uCiAgICAgICAgLnRvdGFsPSR7NX0KICAgICAgICAucGFnZT0kezF9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7YT0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsYS5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTGFyZ2VyIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjE1IHBhZ2VzLCBzdGFydGluZyBhdCA4Ojwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezE1fQogICAgICAgIC5wYWdlPSR7OH0KICAgICAgICBAcGFnZS1jaGFuZ2U9JHthPT5jb25zb2xlLmxvZygiUGFnZSBjaGFuZ2VkIHRvIixhLmRldGFpbC5wYWdlKX0KICAgICAgPjwvZGVlcy1wYWdpbmF0aW9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgUFFlLHRHLFg0YSxRNGE9ZigoKT0+e2xlKCk7WjRhKCk7UWUoKTtQUWU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHRHPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxYNGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXBhZ2luYXRpb24iKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1BhZ2luYXRpb24iKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLGQ9WyQoe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sUFFlKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4icGFnZSJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LnBhZ2UsImdldCIpLHNldDpzKCh2LHgpPT57di5wYWdlPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbixsKSxQUWUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0b3RhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4idG90YWwiaW4gdiwiaGFzIiksZ2V0OnModj0+di50b3RhbCwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LnRvdGFsPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxQUWUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1LNGE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT10Ryh0aGlzLG4sMSk7Z2V0IHBhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGFnZShtKXt0aGlzLiNlPW19I3Q9KHRHKHRoaXMsbCksdEcodGhpcyxjLDEpKTtnZXQgdG90YWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdG90YWwobSl7dGhpcy4jdD1tfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG1hcmdpbjogMCAycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZSIsIiM0NDQiKX07CiAgICAgIH0KICAgICAgYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYWFhIiwiIzY2NiIpfTsKICAgICAgfQogICAgICBidXR0b24uY3VycmVudCB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgc3Bhbi5lbGxpcHNpcyB7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICBgXTtnZXQgcGFnZXMoKXtsZXQgbT1bXSx2PXRoaXMudG90YWwseD10aGlzLnBhZ2U7aWYodjw9Nylmb3IobGV0IGI9MTtiPD12O2IrKyltLnB1c2goYik7ZWxzZXttLnB1c2goMSkseD40JiZtLnB1c2goIi4uLiIpO2xldCBiPU1hdGgubWF4KDIseC0yKSxnPU1hdGgubWluKHYtMSx4KzIpO2ZvcihsZXQgeT1iO3k8PWc7eSsrKW0ucHVzaCh5KTt4PHYtMyYmbS5wdXNoKCIuLi4iKSxtLnB1c2godil9cmV0dXJuIG19cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZS0xKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U8PTF9CiAgICAgICAgYXJpYS1sYWJlbD0iUHJldmlvdXMgcGFnZSIKICAgICAgPgogICAgICAgIOKAuQogICAgICA8L2J1dHRvbj4KICAgICAgJHt0aGlzLnBhZ2VzLm1hcChtPT5tPT09Ii4uLiI/d2A8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPuKApjwvc3Bhbj5gOndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IiR7bT09PXRoaXMucGFnZT8iY3VycmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZShtKX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke209PT10aGlzLnBhZ2V9CiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJQYWdlICR7bX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHttfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UodGhpcy5wYWdlKzEpfQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMucGFnZT49dGhpcy50b3RhbH0KICAgICAgICBhcmlhLWxhYmVsPSJOZXh0IHBhZ2UiCiAgICAgID4KICAgICAgICDigLoKICAgICAgPC9idXR0b24+CiAgICBgfWNoYW5nZVBhZ2UobSl7bTwxfHxtPnRoaXMudG90YWx8fG09PT10aGlzLnBhZ2V8fCh0aGlzLnBhZ2U9bSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwYWdlLWNoYW5nZSIse2RldGFpbDp7cGFnZTp0aGlzLnBhZ2V9LGJ1YmJsZXM6ITB9KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0Ryh0aGlzLHApfXN0YXRpY3t0RyhyLHQpfX07cmV0dXJuIHU9cn0pKCl9KTt2YXIgSjRhPWYoKCk9PntRNGEoKX0pO3ZhciBlM2E9ZigoKT0+e1lzKCl9KTt2YXIgdDNhLGEzYT1mKCgpPT57bGUoKTtFUWUoKTt0M2E9cygoKT0+e2xldCBhPVt7a2V5OiJlbWFpbCIsbGFiZWw6IkFjY291bnQgZW1haWwiLHZhbHVlOiJhZG1pbkBleGFtcGxlLmNvbSJ9LHtrZXk6InN0YXR1cyIsbGFiZWw6IlN0YXR1cyIsdmFsdWU6ImVuYWJsZWQifSx7a2V5OiJtb2RlIixsYWJlbDoiTW9kZSIsdmFsdWU6InByb2R1Y3Rpb24ifSx7a2V5OiJhdXRvUmVuZXciLGxhYmVsOiJBdXRvLXJlbmV3Iix2YWx1ZToib24ifSx7a2V5OiJ0aHJlc2hvbGQiLGxhYmVsOiJSZW5ld2FsIHRocmVzaG9sZCIsdmFsdWU6IjMwIGRheXMifV0sZT1be25hbWU6IkVkaXQiLGFjdGlvbjpzKCgpPT5jb25zb2xlLmxvZygiRWRpdCBjbGlja2VkIiksImFjdGlvbiIpfV0sdD1be25hbWU6IkNvbmZpZ3VyZSIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJDb25maWd1cmUgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLHI9W3tuYW1lOiJSZXNldCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJSZXNldCBjbGlja2VkIiksImFjdGlvbiIpfSx7bmFtZToiRWRpdCIsYWN0aW9uOnMoKCk9PmNvbnNvbGUubG9nKCJFZGl0IGNsaWNrZWQiKSwiYWN0aW9uIil9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgJHtYYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJBQ01FIFNldHRpbmdzIn0KICAgICAgICAgIC5zZXR0aW5nc0ZpZWxkcz0ke2F9CiAgICAgICAgICAuYWN0aW9ucz0ke2V9CiAgICAgICAgPjwvZGVlcy1zZXR0aW5ncz4KCiAgICAgICAgPGRlZXMtc2V0dGluZ3MKICAgICAgICAgIC5oZWFkaW5nPSR7IkFDTUUgU2V0dGluZ3MifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik5vIEFDTUUgY29uZmlndXJhdGlvbiB5ZXQuIENsaWNrIENvbmZpZ3VyZSB0byBzZXQgdXAgYXV0b21hdGVkIFRMUyBjZXJ0aWZpY2F0ZSBpc3N1YW5jZS4ifQogICAgICAgICAgLmFjdGlvbnM9JHt0fQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJTZXJ2ZXIgQ29uZmlnIn0KICAgICAgICAgIC5zZXR0aW5nc0ZpZWxkcz0ke1t7a2V5OiJob3N0IixsYWJlbDoiSG9zdG5hbWUiLHZhbHVlOiJwcm94eS5leGFtcGxlLmNvbSJ9LHtrZXk6InBvcnQiLGxhYmVsOiJQb3J0Iix2YWx1ZToiNDQzIn1dfQogICAgICAgICAgLmFjdGlvbnM9JHtyfQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIGFHLERjLHIzYSxFUWU9ZigoKT0+e2xlKCk7YTNhKCk7bXMoKTtRZSgpO1FyKCk7YUc9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LERjPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxyM2E9KCgpPT57bGV0IGE9W2llKCJkZWVzLXNldHRpbmdzIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNTZXR0aW5ncyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe2F0dHJpYnV0ZTohMX0pXSx4PVskKHthdHRyaWJ1dGU6ITF9KV0sYUcodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJoZWFkaW5nImluIEMsImhhcyIpLGdldDpzKEM9PkMuaGVhZGluZywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmhlYWRpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxuLGwpLGFHKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImRlc2NyaXB0aW9uImluIEMsImhhcyIpLGdldDpzKEM9PkMuZGVzY3JpcHRpb24sImdldCIpLHNldDpzKChDLE4pPT57Qy5kZXNjcmlwdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGMscCksYUcodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR0aW5nc0ZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4ic2V0dGluZ3NGaWVsZHMiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5zZXR0aW5nc0ZpZWxkcywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnNldHRpbmdzRmllbGRzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbSx2KSxhRyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImFjdGlvbnMiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5hY3Rpb25zLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MuYWN0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksYUcobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSx5PXI9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz10M2E7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1EYyh0aGlzLG4sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoayl7dGhpcy4jZT1rfSN0PShEYyh0aGlzLGwpLERjKHRoaXMsYywiIikpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkZXNjcmlwdGlvbihrKXt0aGlzLiN0PWt9I2E9KERjKHRoaXMscCksRGModGhpcyxtLFtdKSk7Z2V0IHNldHRpbmdzRmllbGRzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNldHRpbmdzRmllbGRzKGspe3RoaXMuI2E9a30jcj0oRGModGhpcyx2KSxEYyh0aGlzLGIsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNyfXNldCBhY3Rpb25zKGspe3RoaXMuI3I9a31zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke3BhfTsKICAgICAgfQoKICAgICAgLnNldHRpbmdzR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDEycHggMjRweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuc2V0dGluZ3NGaWVsZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZmllbGRMYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmZpZWxkVmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc2V0dGluZ3NEZXNjcmlwdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuc2V0dGluZ3NGaWVsZHMubGVuZ3RoPjAsQz10aGlzLmFjdGlvbnMubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHt0aGlzLmhlYWRpbmd9PgogICAgICAgICR7az93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzR3JpZCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2V0dGluZ3NGaWVsZHMubWFwKE49PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3NGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGRMYWJlbCI+JHtOLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZFZhbHVlIj4ke04udmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzRGVzY3JpcHRpb24iPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAke0M/d2AKICAgICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKChOLF8pPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24gJHtfPT09dGhpcy5hY3Rpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+Ti5hY3Rpb24oKX0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAke04ubmFtZX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRGModGhpcyxnKX1zdGF0aWN7RGMocix0KX19O3JldHVybiB5PXJ9KSgpfSk7dmFyIHMzYT1mKCgpPT57RVFlKCl9KTt2YXIgaTNhLHJHLG8zYSxuM2EsbDNhPWYoKCk9PntsZSgpO0dzZSgpO2kzYT1zKGFzeW5jKGEsZSk9Pm5ldyBQcm9taXNlKHQ9PntsZXQgcj0hMSxpPXMobD0+e3J8fChyPSEwLGUmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pLHQobCkpfSwiZmluaXNoIiksbz1zKCgpPT57d2luZG93LmNsZWFyVGltZW91dChuKSxpKCExKX0sImhhbmRsZUFib3J0Iiksbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e2koITApfSxhKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvLHtvbmNlOiEwfSl9KSwid2FpdEZvclByb2dyZXNzVGljayIpLHJHPXMoKGE9IkNvbnRpbnVlIik9Plt7bmFtZTphLGFjdGlvbjpzKGFzeW5jIGU9PmU/LmdvTmV4dCgpLCJhY3Rpb24iKX1dLCJjcmVhdGVDb250aW51ZU1lbnVPcHRpb25zIiksbzNhPXMoKCk9Plt7dGl0bGU6IkFjY291bnQgU2V0dXAiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iZW1haWwiIGxhYmVsPSJXb3JrIEVtYWlsIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0icGFzc3dvcmQiIGxhYmVsPSJDcmVhdGUgUGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICBgLG1lbnVPcHRpb25zOnJHKCl9LHt0aXRsZToiUHJvZmlsZSBEZXRhaWxzIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJsYXN0TmFtZSIgbGFiZWw9Ikxhc3QgTmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczpyRygpfSx7dGl0bGU6IkNvbnRhY3QgSW5mb3JtYXRpb24iLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtZm9ybT4KICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBrZXk9InBob25lIiBsYWJlbD0iTW9iaWxlIE51bWJlciIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJjb21wYW55IiBsYWJlbD0iQ29tcGFueSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczpyRygpfSx7dGl0bGU6IlByb3Zpc2lvbiBXb3Jrc3BhY2UiLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+CiAgICAgICAgICBXZSBhcmUgY3JlYXRpbmcgeW91ciBzdGFydGVyIHdvcmtzcGFjZSwgYXBwbHlpbmcgeW91ciBvbmJvYXJkaW5nIGNob2ljZXMsCiAgICAgICAgICBhbmQgcHJlcGFyaW5nIGEgbGl2ZSBwcmV2aWV3LiBUaGlzIHN0ZXAgbW92ZXMgZm9yd2FyZCBhdXRvbWF0aWNhbGx5IHdoZW4KICAgICAgICAgIHRoZSBlbnZpcm9ubWVudCBpcyByZWFkeS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIGAscHJvZ3Jlc3NTdGVwOntsYWJlbDoiV29ya3NwYWNlIHNldHVwIixwZXJjZW50YWdlOjgsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNSb3dzOjQsc3RhdHVzVGV4dDoiQWxsb2NhdGluZyBhIGNsZWFuIHdvcmtzcGFjZS4uLiIsdGVybWluYWxMaW5lczpbIkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UiXX0sdmFsaWRhdGlvbkZ1bmM6cyhhc3luYyhhLGUsdCk9PntsZXQgcj1be2xpbmU6IkFsbG9jYXRpbmcgYSBjbGVhbiB3b3Jrc3BhY2UiLHBlcmNlbnRhZ2U6OCxkZWxheTo1MDB9LHtsaW5lOiJTeW5jaW5nIGFjY291bnQgcHJlZmVyZW5jZXMiLHBlcmNlbnRhZ2U6MjQsZGVsYXk6NjUwfSx7bGluZToiSW5zdGFsbGluZyBzZWxlY3RlZCBpbnRlZ3JhdGlvbnMiLHBlcmNlbnRhZ2U6NDcsZGVsYXk6NzAwfSx7bGluZToiR2VuZXJhdGluZyBzdGFydGVyIHByb2plY3QgZmlsZXMiLHBlcmNlbnRhZ2U6NzEsZGVsYXk6NjUwfSx7bGluZToiQm9vdGluZyB0aGUgbGl2ZSBwcmV2aWV3IGVudmlyb25tZW50IixwZXJjZW50YWdlOjkyLGRlbGF5OjcwMH1dO2EucmVzZXRQcm9ncmVzc1N0ZXAoKTtmb3IobGV0W2ksb11vZiByLmVudHJpZXMoKSlpZih0Py5hYm9ydGVkfHwoaT09PTA/YS51cGRhdGVQcm9ncmVzc1N0ZXAoe3BlcmNlbnRhZ2U6by5wZXJjZW50YWdlLGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDpgJHtvLmxpbmV9Li4uYCx0ZXJtaW5hbExpbmVzOltvLmxpbmVdfSk6KGEuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShvLmxpbmUpLGEudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOm8ucGVyY2VudGFnZSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6YCR7by5saW5lfS4uLmB9KSksIWF3YWl0IGkzYShvLmRlbGF5LHQpKSlyZXR1cm47YS5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKCJXb3Jrc3BhY2UgcmVhZHkiKSxhLnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OiJXb3Jrc3BhY2UgcmVhZHkuIn0pLGF3YWl0IGkzYSgzNTAsdCl9LCJ2YWxpZGF0aW9uRnVuYyIpfSx7dGl0bGU6IlRlYW0gU2l6ZSIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICBrZXk9InRlYW1TaXplIgogICAgICAgICAgbGFiZWw9IkhvdyBiaWcgaXMgeW91ciB0ZWFtPyIKICAgICAgICAgIC5vcHRpb25zPSR7W3tsYWJlbDoiMS01Iix2YWx1ZToiMS01In0se2xhYmVsOiI2LTIwIix2YWx1ZToiNi0yMCJ9LHtsYWJlbDoiMjEtNTAiLHZhbHVlOiIyMS01MCJ9LHtsYWJlbDoiNTErIix2YWx1ZToiNTErIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6ckcoKX0se3RpdGxlOiJHb2FscyIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICBrZXk9ImdvYWwiCiAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6Ik9uYm9hcmRpbmciLHZhbHVlOiJvbmJvYXJkaW5nIn0se2xhYmVsOiJBbmFseXRpY3MiLHZhbHVlOiJhbmFseXRpY3MifSx7bGFiZWw6IkF1dG9tYXRpb24iLHZhbHVlOiJhdXRvbWF0aW9uIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6ckcoKX0se3RpdGxlOiJSZXZpZXcgJiBMYXVuY2giLGNvbnRlbnQ6d2AKICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgPHA+CiAgICAgICAgICBZb3VyIHdvcmtzcGFjZSBpcyByZWFkeS4gUmV2aWV3IHRoZSBjb2xsZWN0ZWQgZGV0YWlscyBhbmQgbGF1bmNoIHdoZW4KICAgICAgICAgIHlvdSBhcmUgcmVhZHkgdG8gc3RhcnQuCiAgICAgICAgPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiTGF1bmNoIixhY3Rpb246cyhhc3luYyBhPT57YT8ub3ZlcmxheSYmYXdhaXQgYS5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfV0sImNyZWF0ZURlbW9TdGVwcyIpLG4zYT1zKCgpPT53YAogIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7Ij4KICAgIDxkaXYKICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgei1pbmRleDogMTA7IgogICAgPgogICAgICA8ZGVlcy1idXR0b24KICAgICAgICBAY2xpY2s9JHthc3luYygpPT57YXdhaXQgS20uY3JlYXRlQW5kU2hvdyh7c3RlcHM6bzNhKCl9KX19CiAgICAgID5PcGVuIHN0ZXBwZXIgYXMgb3ZlcmxheTwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkZWVzLXN0ZXBwZXIgLnN0ZXBzPSR7bzNhKCl9PjwvZGVlcy1zdGVwcGVyPgogIDwvZGl2PgpgLCJzdGVwcGVyRGVtbyIpfSk7dmFyIFI0LGlvLEttLEdzZT1mKCgpPT57V3MoKTtsZSgpO2VhKCk7bDNhKCk7UWUoKTttcygpO0dpKCk7TTEoKTtjYygpO0NRZSgpO1FyKCk7UjQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGlvPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxLbT0oKCk9PntsZXQgYT1baWUoImRlZXMtc3RlcHBlciIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdO3ZhciBCPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzU3RlcHBlciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bJCh7dHlwZTpPYmplY3R9KV0sdT1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1bJCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1bJCh7dHlwZTpOdW1iZXIsYXR0cmlidXRlOiExfSldLE49WyQoe3R5cGU6T2JqZWN0LGF0dHJpYnV0ZTohMX0pXSxPPVskKHt0eXBlOkJvb2xlYW4sYXR0cmlidXRlOiExfSldLFI0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RlcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InN0ZXBzImluIFMsImhhcyIpLGdldDpzKFM9PlMuc3RlcHMsImdldCIpLHNldDpzKChTLEUpPT57Uy5zdGVwcz1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG4sbCksUjQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFN0ZXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InNlbGVjdGVkU3RlcCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnNlbGVjdGVkU3RlcCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnNlbGVjdGVkU3RlcD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGMscCksUjQodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdmVybGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJvdmVybGF5ImluIFMsImhhcyIpLGdldDpzKFM9PlMub3ZlcmxheSwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLm92ZXJsYXk9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxtLHYpLFI0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuY2VsYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iY2FuY2VsYWJsZSJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmNhbmNlbGFibGUsImdldCIpLHNldDpzKChTLEUpPT57Uy5jYW5jZWxhYmxlPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSxSNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBwZXJaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InN0ZXBwZXJaSW5kZXgiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5zdGVwcGVyWkluZGV4LCJnZXQiKSxzZXQ6cygoUyxFKT0+e1Muc3RlcHBlclpJbmRleD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGssQyksUjQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJhY3RpdmVGb3JtImluIFMsImhhcyIpLGdldDpzKFM9PlMuYWN0aXZlRm9ybSwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmFjdGl2ZUZvcm09RX0sInNldCIpfSxtZXRhZGF0YTpNfSxfLHopLFI0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRm9ybVZhbGlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJhY3RpdmVGb3JtVmFsaWQiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5hY3RpdmVGb3JtVmFsaWQsImdldCIpLHNldDpzKChTLEUpPT57Uy5hY3RpdmVGb3JtVmFsaWQ9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxULFApLFI0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCksQj1yPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89bjNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiRm9ybSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KE0pe2xldCBTPWRvY3VtZW50LmJvZHksRT1uZXcgQjtyZXR1cm4gRS5zdGVwcz1NLnN0ZXBzLEUub3ZlcmxheT0hMCxNLmNhbmNlbGFibGUhPT12b2lkIDAmJihFLmNhbmNlbGFibGU9TS5jYW5jZWxhYmxlKSxFLndpbmRvd0xheWVyPWF3YWl0IEdzLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSxTLmFwcGVuZChFLndpbmRvd0xheWVyKSxTLmFwcGVuZChFKSxFLnN0ZXBwZXJaSW5kZXg9WHQuZ2V0TmV4dFpJbmRleCgpLFh0LnJlZ2lzdGVyKEUsRS5zdGVwcGVyWkluZGV4KSxFfSNlPWlvKHRoaXMsbixbXSk7Z2V0IHN0ZXBzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0ZXBzKE0pe3RoaXMuI2U9TX0jdD0oaW8odGhpcyxsKSxpbyh0aGlzLGMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkU3RlcCgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFN0ZXAoTSl7dGhpcy4jdD1NfSNhPShpbyh0aGlzLHApLGlvKHRoaXMsbSwhMSkpO2dldCBvdmVybGF5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG92ZXJsYXkoTSl7dGhpcy4jYT1NfSNyPShpbyh0aGlzLHYpLGlvKHRoaXMsYiwhMCkpO2dldCBjYW5jZWxhYmxlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNhbmNlbGFibGUoTSl7dGhpcy4jcj1NfSNzPShpbyh0aGlzLGcpLGlvKHRoaXMsaywxZTMpKTtnZXQgc3RlcHBlclpJbmRleCgpe3JldHVybiB0aGlzLiNzfXNldCBzdGVwcGVyWkluZGV4KE0pe3RoaXMuI3M9TX0jaT0oaW8odGhpcyxDKSxpbyh0aGlzLF8sbnVsbCkpO2dldCBhY3RpdmVGb3JtKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFjdGl2ZUZvcm0oTSl7dGhpcy4jaT1NfSNvPShpbyh0aGlzLHopLGlvKHRoaXMsVCwhMCkpO2dldCBhY3RpdmVGb3JtVmFsaWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aXZlRm9ybVZhbGlkKE0pe3RoaXMuI289TX1hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPWlvKHRoaXMsUCk7d2luZG93TGF5ZXI7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJHtwYX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogSW4gb3ZlcmxheSBtb2RlIHRoZSBob3N0IGlzICJ0cmFuc3BhcmVudCIgdG8gbGF5b3V0IOKAlCB0aGUgaW5uZXIKICAgICAgICogLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSBpcyB3aGF0IHBpbnMgdG8gdGhlIHZpZXdwb3J0IGFuZCBjYXJyaWVzIHRoZQogICAgICAgKiB6LWluZGV4LiBLZWVwaW5nIDpob3N0IHVucG9zaXRpb25lZCBhdm9pZHMgbmVzdGluZyB0aGUgc3RhY2tpbmcgY29udGV4dAogICAgICAgKiB1bmRlciBhbiBhdXRvLXotaW5kZXggcGFyZW50ICh3aGljaCB3YXMgdHJhcHBpbmcgLnN0ZXBwZXJDb250YWluZXIKICAgICAgICogYmVsb3cgRGVlc1dpbmRvd0xheWVyJ3Mgc2libGluZyBsYXllcnMpLiBUaGlzIG1pcnJvcnMgaG93IGRlZXMtbW9kYWwKICAgICAgICoga2VlcHMgaXRzIG93biA6aG9zdCB1bnBvc2l0aW9uZWQgYW5kIGxldHMgLm1vZGFsQ29udGFpbmVyIGRyaXZlIGxheW91dC4KICAgICAgICovCiAgICAgIDpob3N0KFtvdmVybGF5XSkgewogICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lci5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH0KCiAgICAgIC8qIEV4aXQgYW5pbWF0aW9uIOKAlCByZXZlcnNlIG9mIHRoZSBlbnRyeS4gVGlsZXMgc2xpZGUgRE9XTiArIGZhZGUgb3V0LAogICAgICAgICBtaXJyb3JpbmcgdGhlIC5lbnRyYW5jZSBzbGlkZS11cC4gVGhlIHRyYW5zaXRpb24gb3ZlcnJpZGUgaXMgbmVlZGVkCiAgICAgICAgIGJlY2F1c2UgZGVlcy10aWxlLnN0ZXAgaGFzIGl0cyBvd24gMC43cyB0cmFuc2l0aW9uIGZvciBzdGVwIHNlbGVjdGlvbgogICAgICAgICB3aGljaCB3b3VsZCBvdGhlcndpc2UgbWFrZSB0aGUgZXhpdCBzbHVnZ2lzaC4gKi8KICAgICAgLnN0ZXBwZXJDb250YWluZXIucHJlZGVzdHJveSBkZWVzLXRpbGUuc3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMsIGZpbHRlciAwLjJzOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDAuNTUpIHNhdHVyYXRlKDAuODUpOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5zZWxlY3RlZCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMSkgc2F0dXJhdGUoMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLmhpZGRlblN0ZXAgewogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuZW50cmFuY2UgewogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLCBmaWx0ZXIgMC4zNXMgZWFzZTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuZW50cmFuY2UuaGlkZGVuU3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDB2aDsKICAgICAgfQoKICAgICAgLnN0ZXBwZXJDb250YWluZXIub3ZlcmxheSBkZWVzLXRpbGUuc3RlcDo6cGFydChvdXRlcikgewogICAgICAgIGJveC1zaGFkb3c6CiAgICAgICAgICAwIDAgMCAxcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAxMDAlIC8gMC4wMykiKX0sCiAgICAgICAgICAwIDhweCA0MHB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTIpIiwiaHNsKDAgMCUgMCUgLyAwLjUpIil9LAogICAgICAgICAgMCAycHggOHB4ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMCUgLyAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDEycHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZ29CYWNrLXNwYWNlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2sgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjayBzcGFuIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6aG92ZXIgc3BhbiB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLnN0ZXBDb3VudGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgLnN0ZXAtYm9keSAudGl0bGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nLXRvcDogMzJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC5jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC5jb250ZW50LndpdGhQcm9ncmVzc1N0ZXAgewogICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NTdGVwIHsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBGb290ZXI6IG1vZGFsLXN0eWxlIGJvdHRvbSBidXR0b25zIC0tLSAqLwogICAgICAuYm90dG9tQnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci1sZWZ0IHNlcGFyYXRvciBvbiBldmVyeSBidXR0b24gRVhDRVBUIHRoZSBmaXJzdCBvbmUuCiAgICAgICAgIFVzZXMgZ2VuZXJhbCBzaWJsaW5nIHNvIHRoZSBzdGVwSGludCAoaWYgcmVuZGVyZWQgb24gdGhlIGxlZnQpIGRvZXMKICAgICAgICAgbm90IHNoaWZ0IHdoaWNoIGJ1dHRvbiBjb3VudHMgYXMgImZpcnN0IiBhbmQgY3JlYXRlIGEgcGhhbnRvbSBib3JkZXIuICovCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gfiAuYm90dG9tQnV0dG9uIHsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTIpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24uZGlzYWJsZWQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLmRpc2FibGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLyogSGludCBzaG93biBvbiB0aGUgbGVmdCBvZiB0aGUgZm9vdGVyIHdoZW4gdGhlIGFjdGl2ZSBzdGVwJ3MgZm9ybSBoYXMKICAgICAgICAgdW5maWxsZWQgcmVxdWlyZWQgZmllbGRzLiBVc2VzIG1hcmdpbi1yaWdodDogYXV0byB0byBwdXNoIHJpZ2h0LWFsaWduZWQKICAgICAgICAgYnV0dG9ucyB0byB0aGUgcmlnaHQgd2hpbGUga2VlcGluZyB0aGUgaGludCBmbHVzaC1sZWZ0LiAqLwogICAgICAuYm90dG9tQnV0dG9ucyAuc3RlcEhpbnQgewogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic3RlcHBlckNvbnRhaW5lciAke3RoaXMub3ZlcmxheT8ib3ZlcmxheSI6IiJ9IgogICAgICAgIHN0eWxlPSR7dGhpcy5vdmVybGF5P2B6LWluZGV4OiAke3RoaXMuc3RlcHBlclpJbmRleH07YDoiIn0KICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZU91dHNpZGVDbGlja30KICAgICAgPgogICAgICAgICR7dGhpcy5zdGVwcy5tYXAoKE0sUyk9PntsZXQgRT1NPT09dGhpcy5zZWxlY3RlZFN0ZXAsQT10aGlzLmdldEluZGV4T2ZTdGVwKE0pPnRoaXMuZ2V0SW5kZXhPZlN0ZXAodGhpcy5zZWxlY3RlZFN0ZXApLEY9Uz09PTAsVz1NLnByb2dyZXNzU3RlcD90aGlzLmdldFByb2dyZXNzU3RlcFN0YXRlKE0pOm51bGw7cmV0dXJuIHdgPGRlZXMtdGlsZQogICAgICAgICAgICBjbGFzcz0ic3RlcCAke0U/InNlbGVjdGVkIjoiIn0gJHtBPyJoaWRkZW5TdGVwIjoiIn0gJHtGPyJlbnRyYW5jZSI6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InN0ZXAtaGVhZGVyIj4KICAgICAgICAgICAgICAke0Y/d2A8ZGl2IGNsYXNzPSJnb0JhY2stc3BhY2VyIj48L2Rpdj5gOndgPGRpdiBjbGFzcz0iZ29CYWNrIiBAY2xpY2s9JHt0aGlzLmdvQmFja30+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBJbnRlciI+PC08L3NwYW4+IGdvIHRvIHByZXZpb3VzIHN0ZXAKICAgICAgICAgICAgICAgICAgPC9kaXY+YH0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwQ291bnRlciI+CiAgICAgICAgICAgICAgICBTdGVwICR7UysxfSBvZiAke3RoaXMuc3RlcHMubGVuZ3RofQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcC1ib2R5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHtNLnRpdGxlfTwvZGl2PgogICAgICAgICAgICAgICR7TS5wcm9ncmVzc1N0ZXAmJlc/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RlcCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICAgICAgLmxhYmVsPSR7Vy5sYWJlbD8/TS50aXRsZX0KICAgICAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0ke1cucGVyY2VudGFnZT8/MH0KICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke1cuaW5kZXRlcm1pbmF0ZT8/ITF9CiAgICAgICAgICAgICAgICAgICAgLnNob3dQZXJjZW50YWdlPSR7Vy5zaG93UGVyY2VudGFnZT8/ITB9CiAgICAgICAgICAgICAgICAgICAgLnN0YXR1c1RleHQ9JHtXLnN0YXR1c1RleHQ/PyIifQogICAgICAgICAgICAgICAgICAgIC50ZXJtaW5hbExpbmVzPSR7Vy50ZXJtaW5hbExpbmVzPz9bXX0KICAgICAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0ke1cuc3RhdHVzUm93cz8/M30KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCAke00ucHJvZ3Jlc3NTdGVwPyJ3aXRoUHJvZ3Jlc3NTdGVwIjoiIn0iPiR7TS5jb250ZW50fTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAke0UmJnRoaXMuYWN0aXZlRm9ybSE9PW51bGwmJiF0aGlzLmFjdGl2ZUZvcm1WYWxpZD93YDxkaXYgY2xhc3M9InN0ZXBIaW50Ij5Db21wbGV0ZSBmb3JtIHRvIGNvbnRpbnVlPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuY2FuY2VsYWJsZT93YDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYm90dG9tQnV0dG9uIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNhbmNlbFJlcXVlc3QoKX0KICAgICAgICAgICAgICAgICAgPkNhbmNlbDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtNLm1lbnVPcHRpb25zPy5tYXAoKGosRyk9PntsZXQgaGU9Rz09PU0ubWVudU9wdGlvbnMubGVuZ3RoLTEsUj1oZSYmdGhpcy5hY3RpdmVGb3JtIT09bnVsbCYmIXRoaXMuYWN0aXZlRm9ybVZhbGlkO3JldHVybiB3YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke2hlPyJwcmltYXJ5IjoiIn0gJHtSPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVPcHRpb25DbGljayhqLGhlKX0KICAgICAgICAgICAgICAgICAgPiR7ai5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYH0pPz8iIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT5gfSl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbmRleE9mU3RlcD1zKE09PnRoaXMuc3RlcHMuZmluZEluZGV4KFM9Pk09PT1TKSwiZ2V0SW5kZXhPZlN0ZXAiKTthc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbih0aGlzLnN0ZXBzWzBdKSx0aGlzLnNlbGVjdGVkU3RlcD10aGlzLnN0ZXBzWzBdLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgdGhpcy5zZXRTY3JvbGxTdGF0dXMoKSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzUwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAuZW50cmFuY2UiKT8uY2xhc3NMaXN0LnJlbW92ZSgiZW50cmFuY2UiKSl9YXN5bmMgdXBkYXRlZChNKXshTS5oYXMoInNlbGVjdGVkU3RlcCIpJiYhTS5oYXMoInN0ZXBzIil8fGF3YWl0IHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCl9c2Nyb2xsZXI7YXN5bmMgc2V0U2Nyb2xsU3RhdHVzKCl7bGV0IE09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIiksUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIik7aWYoIVMpcmV0dXJuO3RoaXMuc2NhbkFjdGl2ZUZvcm0oUyksTS5zdHlsZS5wYWRkaW5nVG9wfHwoTS5zdHlsZS5wYWRkaW5nVG9wPWAke00ub2Zmc2V0SGVpZ2h0LzItUy5vZmZzZXRIZWlnaHQvMn1weGApO2xldCBFPVMub2Zmc2V0VG9wLU0ub2Zmc2V0SGVpZ2h0LzIrUy5vZmZzZXRIZWlnaHQvMjthd2FpdCAkaS5zZXR1cERvbVRvb2xzKCksdGhpcy5zY3JvbGxlcnx8KHRoaXMuc2Nyb2xsZXI9bmV3IEh0LlN3ZWV0U2Nyb2xsKHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGVhc2luZzoiZWFzZUluT3V0RXhwbyIsZHVyYXRpb246NzAwfSxNKSksIXRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkJiZ0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyYmKHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSEwLHRoaXMucnVuU3RlcFZhbGlkYXRpb24odGhpcy5zZWxlY3RlZFN0ZXAsUyx0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsKSksdGhpcy5zY3JvbGxlci50byhFKX1hc3luYyBnb0JhY2soKXtsZXQgTT10aGlzLnN0ZXBzLmZpbmRJbmRleChBPT5BPT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKE08PTApcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IFM9dGhpcy5zdGVwc1tNXTtTLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCBFPXRoaXMuc3RlcHNbTS0xXTtFLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMucHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKEUpLHRoaXMuc2VsZWN0ZWRTdGVwPUUsYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5zZWxlY3RlZFN0ZXAub25SZXR1cm5Ub1N0ZXBGdW5jPy4odGhpcyx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIikpfWdvTmV4dCgpe2xldCBNPXRoaXMuc3RlcHMuZmluZEluZGV4KEE9PkE9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoTTwwfHxNPj10aGlzLnN0ZXBzLmxlbmd0aC0xKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBTPXRoaXMuc3RlcHNbTV07Uy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgRT10aGlzLnN0ZXBzW00rMV07RS52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbihFKSx0aGlzLnNlbGVjdGVkU3RlcD1FfXJlc2V0UHJvZ3Jlc3NTdGVwKE09dGhpcy5zZWxlY3RlZFN0ZXApe00/LnByb2dyZXNzU3RlcCYmKE0ucHJvZ3Jlc3NTdGVwU3RhdGU9dGhpcy5jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoTSksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfXVwZGF0ZVByb2dyZXNzU3RlcChNLFM9dGhpcy5zZWxlY3RlZFN0ZXApe2lmKCFTPy5wcm9ncmVzc1N0ZXApcmV0dXJuO2xldCBFPXRoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoUyk7Uy5wcm9ncmVzc1N0ZXBTdGF0ZT17Li4uRSwuLi5NLHRlcm1pbmFsTGluZXM6TS50ZXJtaW5hbExpbmVzP1suLi5NLnRlcm1pbmFsTGluZXNdOlsuLi5FLnRlcm1pbmFsTGluZXM/P1tdXX0sdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShNLFM9dGhpcy5zZWxlY3RlZFN0ZXApe2lmKCFTPy5wcm9ncmVzc1N0ZXApcmV0dXJuO2xldCBFPXRoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoUyk7dGhpcy51cGRhdGVQcm9ncmVzc1N0ZXAoe3Rlcm1pbmFsTGluZXM6Wy4uLkUudGVybWluYWxMaW5lcz8/W10sTV19LFMpfXNjYW5BY3RpdmVGb3JtKE0pe2xldCBTPU0ucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7aWYoUz09PXRoaXMuYWN0aXZlRm9ybSl7dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKTtyZXR1cm59aWYodGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj12b2lkIDAsdGhpcy5hY3RpdmVGb3JtPVMsIVMpe3RoaXMuYWN0aXZlRm9ybVZhbGlkPSEwO3JldHVybn10aGlzLnJlY29tcHV0ZUZvcm1WYWxpZCgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj1TLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5yZWNvbXB1dGVGb3JtVmFsaWQoKX0pfXJlY29tcHV0ZUZvcm1WYWxpZCgpe2xldCBNPXRoaXMuYWN0aXZlRm9ybTtpZighTSl7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9ITA7cmV0dXJufWxldCBTPU0uZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9Uy5ldmVyeShFPT4hRS5yZXF1aXJlZHx8RS52YWx1ZSE9PW51bGwmJkUudmFsdWUhPT12b2lkIDAmJkUudmFsdWUhPT0iIil9YXN5bmMgaGFuZGxlTWVudU9wdGlvbkNsaWNrKE0sUyl7bGV0IEU9dGhpcy5hY3RpdmVGb3JtO2lmKFMmJkUpe2lmKCF0aGlzLmFjdGl2ZUZvcm1WYWxpZClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoQT0+e0UuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5BKCkse29uY2U6ITB9KSxFLmdhdGhlckFuZERpc3BhdGNoKCl9KX1hd2FpdCBNLmFjdGlvbih0aGlzKX1nZXRQcm9ncmVzc1N0ZXBTdGF0ZShNKXtyZXR1cm4gTS5wcm9ncmVzc1N0ZXA/KE0ucHJvZ3Jlc3NTdGVwU3RhdGV8fChNLnByb2dyZXNzU3RlcFN0YXRlPXRoaXMuY3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKE0pKSxNLnByb2dyZXNzU3RlcFN0YXRlKTp7fX1jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoTSl7cmV0dXJue2xhYmVsOk0ucHJvZ3Jlc3NTdGVwPy5sYWJlbD8/TS50aXRsZSxwZXJjZW50YWdlOk0ucHJvZ3Jlc3NTdGVwPy5wZXJjZW50YWdlPz8wLGluZGV0ZXJtaW5hdGU6TS5wcm9ncmVzc1N0ZXA/LmluZGV0ZXJtaW5hdGU/PyExLHNob3dQZXJjZW50YWdlOk0ucHJvZ3Jlc3NTdGVwPy5zaG93UGVyY2VudGFnZT8/ITAsc3RhdHVzVGV4dDpNLnByb2dyZXNzU3RlcD8uc3RhdHVzVGV4dD8/IiIsdGVybWluYWxMaW5lczpbLi4uTS5wcm9ncmVzc1N0ZXA/LnRlcm1pbmFsTGluZXM/P1tdXSxzdGF0dXNSb3dzOk0ucHJvZ3Jlc3NTdGVwPy5zdGF0dXNSb3dzPz8zfX1wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24oTSl7TT8ucHJvZ3Jlc3NTdGVwJiYoTS5wcm9ncmVzc1N0ZXBTdGF0ZT10aGlzLmNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShNKSl9YXN5bmMgcnVuU3RlcFZhbGlkYXRpb24oTSxTLEUpe3RyeXtpZihhd2FpdCBNLnZhbGlkYXRpb25GdW5jPy4odGhpcyxTLEUpLEUuYWJvcnRlZClyZXR1cm47TS5wcm9ncmVzc1N0ZXAmJk0ucHJvZ3Jlc3NTdGVwLmF1dG9BZHZhbmNlIT09ITEmJnRoaXMuc2VsZWN0ZWRTdGVwPT09TSYmdGhpcy5nb05leHQoKX1jYXRjaChBKXtpZihFLmFib3J0ZWQpcmV0dXJuO2lmKE0ucHJvZ3Jlc3NTdGVwKXtsZXQgRj1BIGluc3RhbmNlb2YgRXJyb3I/QS5tZXNzYWdlOiJVbmV4cGVjdGVkIGVycm9yIjt0aGlzLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoYEVycm9yOiAke0Z9YCxNKSx0aGlzLnVwZGF0ZVByb2dyZXNzU3RlcCh7aW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OkZ9LE0pfWNvbnNvbGUuZXJyb3IoQSl9fWNhbmNlbENvbmZpcm1Nb2RhbDtoYW5kbGVPdXRzaWRlQ2xpY2soTSl7aWYoIXRoaXMub3ZlcmxheXx8IXRoaXMuY2FuY2VsYWJsZSlyZXR1cm47TS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKTtNLnRhcmdldD09PVMmJnRoaXMuaGFuZGxlQ2FuY2VsUmVxdWVzdCgpfWFzeW5jIGhhbmRsZUNhbmNlbFJlcXVlc3QoKXt0aGlzLmNhbmNlbGFibGUmJih0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbCYmdGhpcy5jYW5jZWxDb25maXJtTW9kYWwuaXNDb25uZWN0ZWR8fCh0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD12b2lkIDAsdGhpcy5jYW5jZWxDb25maXJtTW9kYWw9YXdhaXQgTWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2FuY2VsIHNldHVwPyIsd2lkdGg6InNtYWxsIixjb250ZW50OndgCiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMDsiPgogICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNhbmNlbD8gQW55IHByb2dyZXNzIG9uIHRoZSBjdXJyZW50IHN0ZXAgd2lsbCBiZSBsb3N0LgogICAgICAgIDwvcD4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNvbnRpbnVlIHNldHVwIixhY3Rpb246cyhhc3luYyBNPT57dGhpcy5jYW5jZWxDb25maXJtTW9kYWw9dm9pZCAwLGF3YWl0IE0uZGVzdHJveSgpfSwiYWN0aW9uIil9LHtuYW1lOiJZZXMsIGNhbmNlbCIsYWN0aW9uOnMoYXN5bmMgTT0+e3RoaXMuY2FuY2VsQ29uZmlybU1vZGFsPXZvaWQgMCxNLmRlc3Ryb3koKSxhd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMDApLGF3YWl0IHRoaXMuZGVzdHJveSgpfSwiYWN0aW9uIil9XX0pKSl9YXN5bmMgZGVzdHJveSgpe2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIik7dGhpcy5zZWxlY3RlZFN0ZXA/LmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCksUz8uY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyNTApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb249dm9pZCAwLHRoaXMuYWN0aXZlRm9ybT1udWxsLFh0LnVucmVnaXN0ZXIodGhpcyl9c3RhdGlje2lvKHIsdCl9fTtyZXR1cm4gQj1yfSkoKX0pO3ZhciBjM2E9ZigoKT0+e0dzZSgpfSk7dmFyIGQzYT1mKCgpPT57UXIoKX0pO3ZhciB1M2E9ZigoKT0+e000YSgpO0g0YSgpO0c0YSgpO1k0YSgpO0o0YSgpO2UzYSgpO3MzYSgpO2MzYSgpO2QzYSgpfSk7dmFyIHAzYSxmM2E9ZigoKT0+e2xlKCk7cDNhPXMoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWltYWdlLXZpZXdlciB7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5jb21wYWN0IHsKICAgICAgaGVpZ2h0OiAyNTBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlBFRyBJbWFnZSB3aXRoIFRvb2xiYXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSBsYW5kc2NhcGUgcGhvdG8gd2l0aCB6b29tLCBwYW4sIGZpdCwgYW5kIGRvd25sb2FkIGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA2NzQ0MDM4MTM2LTQ2MjczODM0YjNmYj93PTEyMDAiCiAgICAgICAgYWx0PSJNb3VudGFpbiBsYW5kc2NhcGUiCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBORyB3aXRoIFRyYW5zcGFyZW5jeTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5UcmFuc3BhcmVudCBQTkcgZGlzcGxheWVkIG9uIGEgY2hlY2tlcmJvYXJkIGJhY2tncm91bmQuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy80LzQ3L1BOR190cmFuc3BhcmVuY3lfZGVtb25zdHJhdGlvbl8xLnBuZyIKICAgICAgICBhbHQ9IlBORyB0cmFuc3BhcmVuY3kgZGVtbyIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U1ZHIEltYWdlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNjYWxhYmxlIHZlY3RvciBncmFwaGljLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvMC8wMi9TVkdfbG9nby5zdmciCiAgICAgICAgYWx0PSJTVkcgbG9nbyIKICAgICAgICBmaXQ9ImNvbnRhaW4iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5vIFRvb2xiYXIgVmFyaWFudDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5JbWFnZSB2aWV3ZXIgd2l0aCB0aGUgdG9vbGJhciBoaWRkZW4uPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIGNsYXNzPSJjb21wYWN0IgogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0Njk0NzQ5NjgwMjgtNTY2MjNmMDJlNDJlP3c9ODAwIgogICAgICAgIGFsdD0iTmF0dXJlIHNjZW5lIgogICAgICAgIC5zaG93VG9vbGJhcj0keyExfQogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgY24sYnIsaDNhLElRZT1mKCgpPT57bGUoKTt2YSgpO2YzYSgpO2NuPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxicj1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0saDNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1pbWFnZS12aWV3ZXIiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXSxFLEE9W10sRj1bXSxXLGo9W10sRz1bXSxoZSxSPVtdLFU9W10sbWUsST1bXSxxPVtdO3ZhciBjZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc0ltYWdlVmlld2VyIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHVlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoKV0sZD1bJCgpXSx1PVskKCldLHg9WyQoe3R5cGU6Qm9vbGVhbn0pXSx5PVtLKCldLE49W0soKV0sTz1bSygpXSxCPVtLKCldLEU9W0soKV0sVz1bSygpXSxoZT1bSygpXSxtZT1bSygpXSxjbih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4ic3JjImluIFksImhhcyIpLGdldDpzKFk9Plkuc3JjLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kuc3JjPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LG4sbCksY24odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWT0+ImFsdCJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLmFsdCwiZ2V0Iiksc2V0OnMoKFksUSk9PntZLmFsdD1RfSwic2V0Iil9LG1ldGFkYXRhOnVlfSxjLHApLGNuKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZml0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJmaXQiaW4gWSwiaGFzIiksZ2V0OnMoWT0+WS5maXQsImdldCIpLHNldDpzKChZLFEpPT57WS5maXQ9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sbSx2KSxjbih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJzaG93VG9vbGJhciJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kuc2hvd1Rvb2xiYXI9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sYixnKSxjbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Inpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWT0+Inpvb20iaW4gWSwiaGFzIiksZ2V0OnMoWT0+WS56b29tLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kuem9vbT1RfSwic2V0Iil9LG1ldGFkYXRhOnVlfSxrLEMpLGNuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFuWCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4icGFuWCJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLnBhblgsImdldCIpLHNldDpzKChZLFEpPT57WS5wYW5YPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LF8seiksY24odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5ZIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFk9PiJwYW5ZImluIFksImhhcyIpLGdldDpzKFk9PlkucGFuWSwiZ2V0Iiksc2V0OnMoKFksUSk9PntZLnBhblk9UX0sInNldCIpfSxtZXRhZGF0YTp1ZX0sVCxQKSxjbih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWT0+ImlzRHJhZ2dpbmciaW4gWSwiaGFzIiksZ2V0OnMoWT0+WS5pc0RyYWdnaW5nLCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kuaXNEcmFnZ2luZz1RfSwic2V0Iil9LG1ldGFkYXRhOnVlfSxNLFMpLGNuKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4ibG9hZGluZyJpbiBZLCJoYXMiKSxnZXQ6cyhZPT5ZLmxvYWRpbmcsImdldCIpLHNldDpzKChZLFEpPT57WS5sb2FkaW5nPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LEEsRiksY24odGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4iZXJyb3IiaW4gWSwiaGFzIiksZ2V0OnMoWT0+WS5lcnJvciwiZ2V0Iiksc2V0OnMoKFksUSk9PntZLmVycm9yPVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LGosRyksY24odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoWT0+ImltYWdlTmF0dXJhbFdpZHRoImluIFksImhhcyIpLGdldDpzKFk9PlkuaW1hZ2VOYXR1cmFsV2lkdGgsImdldCIpLHNldDpzKChZLFEpPT57WS5pbWFnZU5hdHVyYWxXaWR0aD1RfSwic2V0Iil9LG1ldGFkYXRhOnVlfSxSLFUpLGNuKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTmF0dXJhbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhZPT4iaW1hZ2VOYXR1cmFsSGVpZ2h0ImluIFksImhhcyIpLGdldDpzKFk9PlkuaW1hZ2VOYXR1cmFsSGVpZ2h0LCJnZXQiKSxzZXQ6cygoWSxRKT0+e1kuaW1hZ2VOYXR1cmFsSGVpZ2h0PVF9LCJzZXQiKX0sbWV0YWRhdGE6dWV9LEkscSksY24obnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6dWV9LG51bGwsdCksY2U9cj1lLnZhbHVlLHVlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnVlfSl9c3RhdGljIGRlbW89cDNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1icih0aGlzLG4sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKHVlKXt0aGlzLiNlPXVlfSN0PShicih0aGlzLGwpLGJyKHRoaXMsYywiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KHVlKXt0aGlzLiN0PXVlfSNhPShicih0aGlzLHApLGJyKHRoaXMsbSwiY29udGFpbiIpKTtnZXQgZml0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpdCh1ZSl7dGhpcy4jYT11ZX0jcj0oYnIodGhpcyx2KSxicih0aGlzLGIsITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1Rvb2xiYXIodWUpe3RoaXMuI3I9dWV9I3M9KGJyKHRoaXMsZyksYnIodGhpcyxrLDEpKTtnZXQgem9vbSgpe3JldHVybiB0aGlzLiNzfXNldCB6b29tKHVlKXt0aGlzLiNzPXVlfSNpPShicih0aGlzLEMpLGJyKHRoaXMsXywwKSk7Z2V0IHBhblgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcGFuWCh1ZSl7dGhpcy4jaT11ZX0jbz0oYnIodGhpcyx6KSxicih0aGlzLFQsMCkpO2dldCBwYW5ZKCl7cmV0dXJuIHRoaXMuI299c2V0IHBhblkodWUpe3RoaXMuI289dWV9I249KGJyKHRoaXMsUCksYnIodGhpcyxNLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNEcmFnZ2luZyh1ZSl7dGhpcy4jbj11ZX0jbD0oYnIodGhpcyxTKSxicih0aGlzLEEsITApKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNsfXNldCBsb2FkaW5nKHVlKXt0aGlzLiNsPXVlfSNjPShicih0aGlzLEYpLGJyKHRoaXMsaiwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNjfXNldCBlcnJvcih1ZSl7dGhpcy4jYz11ZX0jZD0oYnIodGhpcyxHKSxicih0aGlzLFIsMCkpO2dldCBpbWFnZU5hdHVyYWxXaWR0aCgpe3JldHVybiB0aGlzLiNkfXNldCBpbWFnZU5hdHVyYWxXaWR0aCh1ZSl7dGhpcy4jZD11ZX0jdT0oYnIodGhpcyxVKSxicih0aGlzLEksMCkpO2dldCBpbWFnZU5hdHVyYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KHVlKXt0aGlzLiN1PXVlfWRyYWdTdGFydFg9KGJyKHRoaXMscSksMCk7ZHJhZ1N0YXJ0WT0wO2RyYWdTdGFydFBhblg9MDtkcmFnU3RhcnRQYW5ZPTA7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgfQoKICAgICAgICAuem9vbS1sZXZlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbWluLXdpZHRoOiA0OHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgY3Vyc29yOiAke3RoaXMuem9vbT4xP3RoaXMuaXNEcmFnZ2luZz8iZ3JhYmJpbmciOiJncmFiIjoiZGVmYXVsdCJ9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrZXJib2FyZCB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6CiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB0cmFuc3BhcmVudCA3NSUsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSA3NSUpLAogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFuc3BhcmVudCA3NSUsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSA3NSUpOwogICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDAgOHB4LCA4cHggLThweCwgLThweCAwcHg7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke3RoaXMucGFuWH1weCwgJHt0aGlzLnBhbll9cHgpIHNjYWxlKCR7dGhpcy56b29tfSk7CiAgICAgICAgICB0cmFuc2l0aW9uOiAke3RoaXMuaXNEcmFnZ2luZz8ibm9uZSI6InRyYW5zZm9ybSAwLjJzIGVhc2UifTsKICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcgewogICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICAgIG9iamVjdC1maXQ6ICR7dGhpcy5maXR9OwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS13cmFwcGVyIGltZy5hY3R1YWwgewogICAgICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICAgIG9iamVjdC1maXQ6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDAuOCkiLCJyZ2JhKDAsMCwwLDAuNikiKX07CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IC5lcnJvci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtaW5mbyB7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dUb29sYmFyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuem9vbU91dH0gdGl0bGU9Ilpvb20gb3V0Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnJlc2V0Wm9vbX0+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iem9vbS1sZXZlbCI+JHtNYXRoLnJvdW5kKHRoaXMuem9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuem9vbUlufSB0aXRsZT0iWm9vbSBpbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tSW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuZml0VG9TY3JlZW59IHRpdGxlPSJGaXQgdG8gc2NyZWVuIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOk1heGltaXplIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5hY3R1YWxTaXplfSB0aXRsZT0iQWN0dWFsIHNpemUgKDEwMCUpIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNjYW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuZG93bmxvYWR9IHRpdGxlPSJEb3dubG9hZCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGg+MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlLWluZm8iPiR7dGhpcy5pbWFnZU5hdHVyYWxXaWR0aH0geCAke3RoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJpbWFnZS1hcmVhIgogICAgICAgICAgQHdoZWVsPSR7dGhpcy5oYW5kbGVXaGVlbH0KICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZU1vdXNlRG93bn0KICAgICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLmhhbmRsZU1vdXNlTW92ZX0KICAgICAgICAgIEBtb3VzZXVwPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLmhhbmRsZU1vdXNlVXB9CiAgICAgICAgICBAZGJsY2xpY2s9JHt0aGlzLmhhbmRsZURvdWJsZUNsaWNrfQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrZXJib2FyZCI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIj4KICAgICAgICAgICAgJHt0aGlzLnNyYz93YAogICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuZml0PT09ImFjdHVhbCI/ImFjdHVhbCI6IiJ9IgogICAgICAgICAgICAgICAgc3JjPSIke3RoaXMuc3JjfSIKICAgICAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgICAgICBAbG9hZD0ke3RoaXMuaGFuZGxlSW1hZ2VMb2FkfQogICAgICAgICAgICAgICAgQGVycm9yPSR7dGhpcy5oYW5kbGVJbWFnZUVycm9yfQogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMubG9hZGluZyYmdGhpcy5zcmM/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0ibHVjaWRlOkltYWdlT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9em9vbUluKCl7dGhpcy56b29tPU1hdGgubWluKDEwLHRoaXMuem9vbSoxLjI1KX16b29tT3V0KCl7dGhpcy56b29tPU1hdGgubWF4KC4xLHRoaXMuem9vbS8xLjI1KSx0aGlzLnpvb208PTEmJih0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9cmVzZXRab29tKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTB9Zml0VG9TY3JlZW4oKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iY29udGFpbiJ9YWN0dWFsU2l6ZSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wLHRoaXMuZml0PSJhY3R1YWwifWRvd25sb2FkKCl7aWYoIXRoaXMuc3JjKXJldHVybjtsZXQgdWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3VlLmhyZWY9dGhpcy5zcmMsdWUuZG93bmxvYWQ9dGhpcy5zcmMuc3BsaXQoIi8iKS5wb3AoKXx8ImltYWdlIix1ZS5jbGljaygpfWhhbmRsZUltYWdlTG9hZCh1ZSl7bGV0IFk9dWUudGFyZ2V0O3RoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSIiLHRoaXMuaW1hZ2VOYXR1cmFsV2lkdGg9WS5uYXR1cmFsV2lkdGgsdGhpcy5pbWFnZU5hdHVyYWxIZWlnaHQ9WS5uYXR1cmFsSGVpZ2h0fWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgaW1hZ2UifWhhbmRsZVdoZWVsKHVlKXt1ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBZPXVlLmRlbHRhWT4wPy45OjEuMSxRPU1hdGgubWluKDEwLE1hdGgubWF4KC4xLHRoaXMuem9vbSpZKSk7dGhpcy56b29tPVEsdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfWhhbmRsZU1vdXNlRG93bih1ZSl7dGhpcy56b29tPD0xfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuZHJhZ1N0YXJ0WD11ZS5jbGllbnRYLHRoaXMuZHJhZ1N0YXJ0WT11ZS5jbGllbnRZLHRoaXMuZHJhZ1N0YXJ0UGFuWD10aGlzLnBhblgsdGhpcy5kcmFnU3RhcnRQYW5ZPXRoaXMucGFuWSl9aGFuZGxlTW91c2VNb3ZlKHVlKXt0aGlzLmlzRHJhZ2dpbmcmJih0aGlzLnBhblg9dGhpcy5kcmFnU3RhcnRQYW5YKyh1ZS5jbGllbnRYLXRoaXMuZHJhZ1N0YXJ0WCksdGhpcy5wYW5ZPXRoaXMuZHJhZ1N0YXJ0UGFuWSsodWUuY2xpZW50WS10aGlzLmRyYWdTdGFydFkpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExfWhhbmRsZURvdWJsZUNsaWNrKCl7dGhpcy56b29tPT09MT90aGlzLnpvb209MjoodGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXVwZGF0ZWQodWUpe3N1cGVyLnVwZGF0ZWQodWUpLHVlLmhhcygic3JjIikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0iIix0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmltYWdlTmF0dXJhbFdpZHRoPTAsdGhpcy5pbWFnZU5hdHVyYWxIZWlnaHQ9MCl9c3RhdGlje2JyKHIsdCl9fTtyZXR1cm4gY2U9cn0pKCl9KTt2YXIgbTNhPWYoKCk9PntJUWUoKX0pO3ZhciBnM2EsYjNhPWYoKCk9PntsZSgpO2czYT1zKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1hdWRpby12aWV3ZXIgewogICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gd2l0aCBXYXZlZm9ybTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBwbGF5ZXIgd2l0aCB3YXZlZm9ybSB2aXN1YWxpemF0aW9uIGFuZCBmdWxsIHRyYW5zcG9ydCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gd2l0aG91dCBXYXZlZm9ybTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TaW1wbGUgYXVkaW8gcGxheWVyIHdpdGggYSBzZWVrYmFyIGluc3RlYWQgb2YgYSB3YXZlZm9ybS48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMiIKICAgICAgICAuc2hvd1dhdmVmb3JtPSR7ITF9CiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk1pbmltYWwgQXVkaW8gUGxheWVyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk5vIHRpdGxlIG9yIGFydGlzdCBtZXRhZGF0YSDigJQganVzdCB0aGUgcGxheWVyLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMy5tcDMiCiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBGaSxCYSx2M2EsTlFlPWYoKCk9PntsZSgpO3ZhKCk7YjNhKCk7Rmk9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEJhPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSx2M2E9KCgpPT57bGV0IGE9W2llKCJkZWVzLWF1ZGlvLXZpZXdlciIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdLEIsTT1bXSxTPVtdLEUsQT1bXSxGPVtdLFcsaj1bXSxHPVtdLGhlLFI9W10sVT1bXSxtZSxJPVtdLHE9W10sY2UsdWU9W10sWT1bXSxRLEo9W10sWj1bXSxnZSxhZT1bXSxyZT1bXTt2YXIgeWU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNBdWRpb1ZpZXdlciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBWPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoKV0sZD1bJCgpXSx1PVskKCldLHg9WyQoe3R5cGU6Qm9vbGVhbn0pXSx5PVskKHt0eXBlOkJvb2xlYW59KV0sTj1bJCh7dHlwZTpCb29sZWFufSldLE89W0soKV0sQj1bSygpXSxFPVtLKCldLFc9W0soKV0saGU9W0soKV0sbWU9W0soKV0sY2U9W0soKV0sUT1bSygpXSxnZT1bSygpXSxGaSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ic3JjImluIEgsImhhcyIpLGdldDpzKEg9Pkguc3JjLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILnNyYz1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxuLGwpLEZpKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+InRpdGxlImluIEgsImhhcyIpLGdldDpzKEg9PkgudGl0bGUsImdldCIpLHNldDpzKChILG9lKT0+e0gudGl0bGU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sYyxwKSxGaSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFydGlzdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4iYXJ0aXN0ImluIEgsImhhcyIpLGdldDpzKEg9PkguYXJ0aXN0LCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILmFydGlzdD1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxtLHYpLEZpKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dhdmVmb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJzaG93V2F2ZWZvcm0iaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5zaG93V2F2ZWZvcm0sImdldCIpLHNldDpzKChILG9lKT0+e0guc2hvd1dhdmVmb3JtPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGIsZyksRmkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4iYXV0b3BsYXkiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5hdXRvcGxheSwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5hdXRvcGxheT1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxrLEMpLEZpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4ibG9vcCJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILmxvb3AsImdldCIpLHNldDpzKChILG9lKT0+e0gubG9vcD1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxfLHopLEZpKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJpc1BsYXlpbmciaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5pc1BsYXlpbmcsImdldCIpLHNldDpzKChILG9lKT0+e0guaXNQbGF5aW5nPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LFQsUCksRmkodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4iY3VycmVudFRpbWUiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5jdXJyZW50VGltZSwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5jdXJyZW50VGltZT1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxNLFMpLEZpKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImR1cmF0aW9uImluIEgsImhhcyIpLGdldDpzKEg9PkguZHVyYXRpb24sImdldCIpLHNldDpzKChILG9lKT0+e0guZHVyYXRpb249b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sQSxGKSxGaSh0aGlzLG51bGwsVyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZvbHVtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhIPT4idm9sdW1lImluIEgsImhhcyIpLGdldDpzKEg9Pkgudm9sdW1lLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILnZvbHVtZT1vZX0sInNldCIpfSxtZXRhZGF0YTpWfSxqLEcpLEZpKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImlzTXV0ZWQiaW4gSCwiaGFzIiksZ2V0OnMoSD0+SC5pc011dGVkLCJnZXQiKSxzZXQ6cygoSCxvZSk9PntILmlzTXV0ZWQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sUixVKSxGaSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJsb2FkaW5nImluIEgsImhhcyIpLGdldDpzKEg9PkgubG9hZGluZywiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC5sb2FkaW5nPW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LEkscSksRmkodGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+ImVycm9yImluIEgsImhhcyIpLGdldDpzKEg9PkguZXJyb3IsImdldCIpLHNldDpzKChILG9lKT0+e0guZXJyb3I9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sdWUsWSksRmkodGhpcyxudWxsLFEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoSD0+IndhdmVmb3JtRGF0YSJpbiBILCJoYXMiKSxnZXQ6cyhIPT5ILndhdmVmb3JtRGF0YSwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC53YXZlZm9ybURhdGE9b2V9LCJzZXQiKX0sbWV0YWRhdGE6Vn0sSixaKSxGaSh0aGlzLG51bGwsZ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEg9PiJ3YXZlZm9ybVJlYWR5ImluIEgsImhhcyIpLGdldDpzKEg9Pkgud2F2ZWZvcm1SZWFkeSwiZ2V0Iiksc2V0OnMoKEgsb2UpPT57SC53YXZlZm9ybVJlYWR5PW9lfSwic2V0Iil9LG1ldGFkYXRhOlZ9LGFlLHJlKSxGaShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpWfSxudWxsLHQpLHllPXI9ZS52YWx1ZSxWJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlZ9KX1zdGF0aWMgZGVtbz1nM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPUJhKHRoaXMsbiwiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoVil7dGhpcy4jZT1WfSN0PShCYSh0aGlzLGwpLEJhKHRoaXMsYywiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShWKXt0aGlzLiN0PVZ9I2E9KEJhKHRoaXMscCksQmEodGhpcyxtLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNhfXNldCBhcnRpc3QoVil7dGhpcy4jYT1WfSNyPShCYSh0aGlzLHYpLEJhKHRoaXMsYiwhMCkpO2dldCBzaG93V2F2ZWZvcm0oKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1dhdmVmb3JtKFYpe3RoaXMuI3I9Vn0jcz0oQmEodGhpcyxnKSxCYSh0aGlzLGssITEpKTtnZXQgYXV0b3BsYXkoKXtyZXR1cm4gdGhpcy4jc31zZXQgYXV0b3BsYXkoVil7dGhpcy4jcz1WfSNpPShCYSh0aGlzLEMpLEJhKHRoaXMsXywhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxvb3AoVil7dGhpcy4jaT1WfSNvPShCYSh0aGlzLHopLEJhKHRoaXMsVCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKFYpe3RoaXMuI289Vn0jbj0oQmEodGhpcyxQKSxCYSh0aGlzLE0sMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50VGltZShWKXt0aGlzLiNuPVZ9I2w9KEJhKHRoaXMsUyksQmEodGhpcyxBLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oVil7dGhpcy4jbD1WfSNjPShCYSh0aGlzLEYpLEJhKHRoaXMsaiwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoVil7dGhpcy4jYz1WfSNkPShCYSh0aGlzLEcpLEJhKHRoaXMsUiwhMSkpO2dldCBpc011dGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzTXV0ZWQoVil7dGhpcy4jZD1WfSN1PShCYSh0aGlzLFUpLEJhKHRoaXMsSSwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGxvYWRpbmcoVil7dGhpcy4jdT1WfSNwPShCYSh0aGlzLHEpLEJhKHRoaXMsdWUsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IoVil7dGhpcy4jcD1WfSNmPShCYSh0aGlzLFkpLEJhKHRoaXMsSixbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jZn1zZXQgd2F2ZWZvcm1EYXRhKFYpe3RoaXMuI2Y9Vn0jaD0oQmEodGhpcyxaKSxCYSh0aGlzLGFlLCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jaH1zZXQgd2F2ZWZvcm1SZWFkeShWKXt0aGlzLiNoPVZ9YXVkaW9FbGVtZW50PShCYSh0aGlzLHJlKSxudWxsKTtjYW52YXNFbGVtZW50PW51bGw7YW5pbUZyYW1lSWQ9MDt2b2x1bWVCZWZvcmVNdXRlPTE7cmVuZGVyKCl7bGV0IFY9dGhpcy50aXRsZSYmdGhpcy5hcnRpc3Q/YCR7dGhpcy50aXRsZX0gXHUyMDE0ICR7dGhpcy5hcnRpc3R9YDp0aGlzLnRpdGxlfHx0aGlzLmFydGlzdHx8IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAtLWVuZCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgbWluLXdpZHRoOiA5MHB4OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlciB7CiAgICAgICAgICB3aWR0aDogNzBweDsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYiB7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItZmlsbCB7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuY3VycmVudFRpbWUpfSAvICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke1Y/d2AKICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPiR7Vn08L3NwYW4+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAtLWVuZCI+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmxvb3A/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTG9vcH0KICAgICAgICAgICAgICB0aXRsZT0iTG9vcCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlJlcGVhdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVNdXRlfSB0aXRsZT0iJHt0aGlzLmlzTXV0ZWQ/IlVubXV0ZSI6Ik11dGUifSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNNdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpNdXNpY09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5zaG93V2F2ZWZvcm0/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0id2F2ZWZvcm0tY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZVdhdmVmb3JtQ2xpY2t9PgogICAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrYmFyQ2xpY2t9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItZmlsbCIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zcmMmJnRoaXMuaW5pdEF1ZGlvKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYW51cCgpfWFzeW5jIHVwZGF0ZWQoVil7c3VwZXIudXBkYXRlZChWKSxWLmhhcygic3JjIikmJnRoaXMuc3JjJiYodGhpcy5jbGVhbnVwKCksdGhpcy5pbml0QXVkaW8oKSksKFYuaGFzKCJ3YXZlZm9ybURhdGEiKXx8Vi5oYXMoImN1cnJlbnRUaW1lIikpJiZ0aGlzLmRyYXdXYXZlZm9ybSgpfXBsYXkoKXt0aGlzLmF1ZGlvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKFYpe3RoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWU9Vil9c2V0Vm9sdW1lKFYpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxWKSksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpLHRoaXMudm9sdW1lPjAmJih0aGlzLmlzTXV0ZWQ9ITEpfXRvZ2dsZU11dGUoKXt0aGlzLmlzTXV0ZWQ/KHRoaXMuaXNNdXRlZD0hMSx0aGlzLnZvbHVtZT10aGlzLnZvbHVtZUJlZm9yZU11dGV8fC41LHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSk6KHRoaXMudm9sdW1lQmVmb3JlTXV0ZT10aGlzLnZvbHVtZSx0aGlzLmlzTXV0ZWQ9ITAsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9MCkpfXRvZ2dsZUxvb3AoKXt0aGlzLmxvb3A9IXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50Lmxvb3A9dGhpcy5sb29wKX1pbml0QXVkaW8oKXt0aGlzLmF1ZGlvRWxlbWVudD1uZXcgQXVkaW8sdGhpcy5hdWRpb0VsZW1lbnQuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdGhpcy5hdWRpb0VsZW1lbnQuc3JjPXRoaXMuc3JjLHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSx0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPXRoaXMuYXVkaW9FbGVtZW50LmR1cmF0aW9uLHRoaXMubG9hZGluZz0hMX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zdGFydFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVuZGVkIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGF1ZGlvIix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0aW1ldXBkYXRlIiwoKT0+e3RoaXMuY3VycmVudFRpbWU9dGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWV9KSx0aGlzLmF1dG9wbGF5JiZ0aGlzLmF1ZGlvRWxlbWVudC5wbGF5KCkuY2F0Y2goKCk9Pnt9KSx0aGlzLnNob3dXYXZlZm9ybSYmdGhpcy5sb2FkV2F2ZWZvcm0oKX1hc3luYyBsb2FkV2F2ZWZvcm0oKXt0cnl7dGhpcy5sb2FkaW5nPSEwO2xldCBIPWF3YWl0KGF3YWl0IGZldGNoKHRoaXMuc3JjKSkuYXJyYXlCdWZmZXIoKSxvZT1uZXcgQXVkaW9Db250ZXh0LHRlPShhd2FpdCBvZS5kZWNvZGVBdWRpb0RhdGEoSCkpLmdldENoYW5uZWxEYXRhKDApLHplPTIwMCxPZT1NYXRoLmZsb29yKHRlLmxlbmd0aC96ZSkscWU9W107Zm9yKGxldCAkZT0wOyRlPHplOyRlKyspe2xldCBDZT0wO2ZvcihsZXQgTWU9MDtNZTxPZTtNZSsrKUNlKz1NYXRoLmFicyh0ZVskZSpPZStNZV0pO3FlLnB1c2goQ2UvT2UpfWxldCBkdD1NYXRoLm1heCguLi5xZSk7dGhpcy53YXZlZm9ybURhdGE9cWUubWFwKCRlPT5kdD4wPyRlL2R0OjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgb2UuY2xvc2UoKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5sb2FkaW5nPSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy5zaG93V2F2ZWZvcm18fCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiY2FudmFzIik7aWYoIVYpcmV0dXJuO3RoaXMuY2FudmFzRWxlbWVudD1WO2xldCBIPVYucGFyZW50RWxlbWVudCxvZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxzZT1ILmNsaWVudFdpZHRoLHRlPUguY2xpZW50SGVpZ2h0O1Yud2lkdGg9c2Uqb2UsVi5oZWlnaHQ9dGUqb2U7bGV0IHplPVYuZ2V0Q29udGV4dCgiMmQiKTtpZighemUpcmV0dXJuO3plLnNjYWxlKG9lLG9lKSx6ZS5jbGVhclJlY3QoMCwwLHNlLHRlKTtsZXQgT2U9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKE9lPT09MClyZXR1cm47bGV0IHFlPXNlL09lLGR0PXRoaXMuZHVyYXRpb24+MD90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb246MCwkZT1NYXRoLmZsb29yKGR0Kk9lKSxDZT1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXMsTWU9Q2U/ImhzbCgyMTMgOTMlIDY4JSkiOiJoc2woMjE3IDkxJSA2MCUpIixkZT1DZT8iaHNsKDIxNyAyNSUgMjIlKSI6ImhzbCgyMTQgMzElIDg2JSkiO2ZvcihsZXQgdmU9MDt2ZTxPZTt2ZSsrKXtsZXQgQWU9dGhpcy53YXZlZm9ybURhdGFbdmVdLFplPU1hdGgubWF4KDIsQWUqKHRlLTQpKSxudD12ZSpxZSx6dD0odGUtWmUpLzI7emUuZmlsbFN0eWxlPXZlPCRlP01lOmRlLHplLmZpbGxSZWN0KG50Ky41LHp0LHFlLTEsWmUpfX1oYW5kbGVXYXZlZm9ybUNsaWNrKFYpe2xldCBIPVYuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT0oVi5jbGllbnRYLUgubGVmdCkvSC53aWR0aDt0aGlzLnNlZWsob2UqdGhpcy5kdXJhdGlvbil9aGFuZGxlU2Vla2JhckNsaWNrKFYpe2xldCBIPVYuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT0oVi5jbGllbnRYLUgubGVmdCkvSC53aWR0aDt0aGlzLnNlZWsob2UqdGhpcy5kdXJhdGlvbil9aGFuZGxlVm9sdW1lQ2hhbmdlKFYpe2xldCBIPXBhcnNlRmxvYXQoVi50YXJnZXQudmFsdWUpO3RoaXMuc2V0Vm9sdW1lKEgpfXN0YXJ0VGltZVVwZGF0ZSgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKTtsZXQgVj1zKCgpPT57dGhpcy5hdWRpb0VsZW1lbnQmJnRoaXMuaXNQbGF5aW5nJiYodGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZSx0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShWKSl9LCJ1cGRhdGUiKTt0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShWKX1zdG9wVGltZVVwZGF0ZSgpe3RoaXMuYW5pbUZyYW1lSWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1GcmFtZUlkKSx0aGlzLmFuaW1GcmFtZUlkPTApfWZvcm1hdFRpbWUoVil7aWYoIWlzRmluaXRlKFYpfHxWPDApcmV0dXJuIjA6MDAiO2xldCBIPU1hdGguZmxvb3IoVi82MCksb2U9TWF0aC5mbG9vcihWJTYwKTtyZXR1cm5gJHtIfToke29lLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9Y2xlYW51cCgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmR1cmF0aW9uPTAsdGhpcy53YXZlZm9ybURhdGE9W10sdGhpcy53YXZlZm9ybVJlYWR5PSExfXN0YXRpY3tCYShyLHQpfX07cmV0dXJuIHllPXJ9KSgpfSk7dmFyIHgzYT1mKCgpPT57TlFlKCl9KTt2YXIgeTNhLHczYT1mKCgpPT57bGUoKTt5M2E9cygoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyB3aXRoIEN1c3RvbSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIHZpZGVvIHBsYXllciB3aXRoIG92ZXJsYXkgY29udHJvbHMsIHNlZWtpbmcsIGFuZCB2b2x1bWUgYWRqdXN0bWVudC48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0JpZ0J1Y2tCdW5ueS5qcGciCiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG9wbGF5IE11dGVkPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHRoYXQgYXV0b3BsYXlzIG11dGVkLCBjb21tb25seSB1c2VkIGZvciBwcmV2aWV3cy48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9FbGVwaGFudHNEcmVhbS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvRWxlcGhhbnRzRHJlYW0uanBnIgogICAgICAgIC5hdXRvcGxheT0keyEwfQogICAgICAgIC5tdXRlZD0keyEwfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OYXRpdmUgQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdXNpbmcgYnJvd3Nlci1uYXRpdmUgY29udHJvbHMgaW5zdGVhZCBvZiBjdXN0b20gb3ZlcmxheS48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9Gb3JCaWdnZXJCbGF6ZXMubXA0IgogICAgICAgIC5zaG93Q29udHJvbHM9JHshMX0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIG9vLEthLE0zYSxSUWU9ZigoKT0+e2xlKCk7dmEoKTt3M2EoKTtvbz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sS2E9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LE0zYT0oKCk9PntsZXQgYT1baWUoImRlZXMtdmlkZW8tdmlld2VyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdO3ZhciBnZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1ZpZGVvVmlld2VyIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGFlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoKV0sZD1bJCgpXSx1PVskKHt0eXBlOkJvb2xlYW59KV0seD1bJCh7dHlwZTpCb29sZWFufSldLHk9WyQoe3R5cGU6Qm9vbGVhbn0pXSxOPVskKHt0eXBlOkJvb2xlYW59KV0sTz1bSygpXSxCPVtLKCldLEU9W0soKV0sVz1bSygpXSxoZT1bSygpXSxtZT1bSygpXSxjZT1bSygpXSxRPVtLKCldLG9vKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4ic3JjImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUuc3JjLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUuc3JjPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxuLGwpLG9vKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4icG9zdGVyImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUucG9zdGVyLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUucG9zdGVyPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxjLHApLG9vKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4ic2hvd0NvbnRyb2xzImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUuc2hvd0NvbnRyb2xzLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUuc2hvd0NvbnRyb2xzPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxtLHYpLG9vKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJhdXRvcGxheSJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLmF1dG9wbGF5LCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUuYXV0b3BsYXk9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LGIsZyksb28odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb29wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4ibG9vcCJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLmxvb3AsImdldCIpLHNldDpzKChyZSx5ZSk9PntyZS5sb29wPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxrLEMpLG9vKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJtdXRlZCJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLm11dGVkLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUubXV0ZWQ9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LF8seiksb28odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJpc1BsYXlpbmciaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS5pc1BsYXlpbmcsImdldCIpLHNldDpzKChyZSx5ZSk9PntyZS5pc1BsYXlpbmc9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LFQsUCksb28odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhyZT0+ImN1cnJlbnRUaW1lImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUuY3VycmVudFRpbWUsImdldCIpLHNldDpzKChyZSx5ZSk9PntyZS5jdXJyZW50VGltZT15ZX0sInNldCIpfSxtZXRhZGF0YTphZX0sTSxTKSxvbyh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4iZHVyYXRpb24iaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS5kdXJhdGlvbiwiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLmR1cmF0aW9uPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxBLEYpLG9vKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4idm9sdW1lImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUudm9sdW1lLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUudm9sdW1lPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxqLEcpLG9vKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJsb2FkaW5nImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUubG9hZGluZywiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLmxvYWRpbmc9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LFIsVSksb28odGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJlcnJvciJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLmVycm9yLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUuZXJyb3I9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LEkscSksb28odGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsc2NyZWVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4iaXNGdWxsc2NyZWVuImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUuaXNGdWxsc2NyZWVuLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUuaXNGdWxsc2NyZWVuPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSx1ZSxZKSxvbyh0aGlzLG51bGwsUSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRyb2xzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhyZT0+ImNvbnRyb2xzVmlzaWJsZSJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLmNvbnRyb2xzVmlzaWJsZSwiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLmNvbnRyb2xzVmlzaWJsZT15ZX0sInNldCIpfSxtZXRhZGF0YTphZX0sSixaKSxvbyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTphZX0sbnVsbCx0KSxnZT1yPWUudmFsdWUsYWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YWV9KX1zdGF0aWMgZGVtbz15M2E7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPUthKHRoaXMsbiwiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoYWUpe3RoaXMuI2U9YWV9I3Q9KEthKHRoaXMsbCksS2EodGhpcyxjLCIiKSk7Z2V0IHBvc3Rlcigpe3JldHVybiB0aGlzLiN0fXNldCBwb3N0ZXIoYWUpe3RoaXMuI3Q9YWV9I2E9KEthKHRoaXMscCksS2EodGhpcyxtLCEwKSk7Z2V0IHNob3dDb250cm9scygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93Q29udHJvbHMoYWUpe3RoaXMuI2E9YWV9I3I9KEthKHRoaXMsdiksS2EodGhpcyxiLCExKSk7Z2V0IGF1dG9wbGF5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGF1dG9wbGF5KGFlKXt0aGlzLiNyPWFlfSNzPShLYSh0aGlzLGcpLEthKHRoaXMsaywhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvb3AoYWUpe3RoaXMuI3M9YWV9I2k9KEthKHRoaXMsQyksS2EodGhpcyxfLCExKSk7Z2V0IG11dGVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG11dGVkKGFlKXt0aGlzLiNpPWFlfSNvPShLYSh0aGlzLHopLEthKHRoaXMsVCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKGFlKXt0aGlzLiNvPWFlfSNuPShLYSh0aGlzLFApLEthKHRoaXMsTSwwKSk7Z2V0IGN1cnJlbnRUaW1lKCl7cmV0dXJuIHRoaXMuI259c2V0IGN1cnJlbnRUaW1lKGFlKXt0aGlzLiNuPWFlfSNsPShLYSh0aGlzLFMpLEthKHRoaXMsQSwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGR1cmF0aW9uKGFlKXt0aGlzLiNsPWFlfSNjPShLYSh0aGlzLEYpLEthKHRoaXMsaiwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoYWUpe3RoaXMuI2M9YWV9I2Q9KEthKHRoaXMsRyksS2EodGhpcyxSLCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgbG9hZGluZyhhZSl7dGhpcy4jZD1hZX0jdT0oS2EodGhpcyxVKSxLYSh0aGlzLEksIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZXJyb3IoYWUpe3RoaXMuI3U9YWV9I3A9KEthKHRoaXMscSksS2EodGhpcyx1ZSwhMSkpO2dldCBpc0Z1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNGdWxsc2NyZWVuKGFlKXt0aGlzLiNwPWFlfSNmPShLYSh0aGlzLFkpLEthKHRoaXMsSiwhMCkpO2dldCBjb250cm9sc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgY29udHJvbHNWaXNpYmxlKGFlKXt0aGlzLiNmPWFlfWhpZGVDb250cm9sc1RpbWVyPShLYSh0aGlzLFopLG51bGwpO3ZpZGVvRWxlbWVudD1udWxsO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlkZW8tY29udGFpbmVyIHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIHZpZGVvIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLm92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgIHdpZHRoOiA2NHB4OwogICAgICAgICAgaGVpZ2h0OiA2NHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgICBvcGFjaXR5OiAke3RoaXMuaXNQbGF5aW5nPzA6MX07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogJHt0aGlzLmlzUGxheWluZz8ibm9uZSI6ImF1dG8ifTsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5OmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMSk7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtYmFyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjcpKTsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMTJweCAxMnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5jb250cm9sc1Zpc2libGV8fCF0aGlzLmlzUGxheWluZz8xOjB9OwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1yb3cgewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdzpob3ZlciB7CiAgICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXByb2dyZXNzIHsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRyb2xzLXJvdyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5jdHJsLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7CiAgICAgICAgfQoKICAgICAgICAudGltZS1kaXNwbGF5IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5zcGFjZXIgewogICAgICAgICAgZmxleDogMTsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyIHsKICAgICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYiB7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmZmZmY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idmlkZW8tY29udGFpbmVyIgogICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLmhhbmRsZU1vdXNlTW92ZX0KICAgICAgICBAbW91c2VsZWF2ZT0ke3RoaXMuaGFuZGxlTW91c2VMZWF2ZX0KICAgICAgPgogICAgICAgIDx2aWRlbwogICAgICAgICAgLnNyYz0ke3RoaXMuc3JjfQogICAgICAgICAgLnBvc3Rlcj0ke3RoaXMucG9zdGVyfQogICAgICAgICAgLm11dGVkPSR7dGhpcy5tdXRlZH0KICAgICAgICAgIC5sb29wPSR7dGhpcy5sb29wfQogICAgICAgICAgP2F1dG9wbGF5PSR7dGhpcy5hdXRvcGxheX0KICAgICAgICAgID9jb250cm9scz0keyF0aGlzLnNob3dDb250cm9sc30KICAgICAgICAgIHBsYXlzaW5saW5lCiAgICAgICAgICBAbG9hZGVkbWV0YWRhdGE9JHt0aGlzLmhhbmRsZUxvYWRlZE1ldGFkYXRhfQogICAgICAgICAgQHBsYXk9JHt0aGlzLmhhbmRsZVBsYXl9CiAgICAgICAgICBAcGF1c2U9JHt0aGlzLmhhbmRsZVBhdXNlfQogICAgICAgICAgQGVuZGVkPSR7dGhpcy5oYW5kbGVFbmRlZH0KICAgICAgICAgIEB0aW1ldXBkYXRlPSR7dGhpcy5oYW5kbGVUaW1lVXBkYXRlfQogICAgICAgICAgQGVycm9yPSR7dGhpcy5oYW5kbGVFcnJvcn0KICAgICAgICAgIEB3YWl0aW5nPSR7KCk9Pnt0aGlzLmxvYWRpbmc9ITB9fQogICAgICAgICAgQGNhbnBsYXk9JHsoKT0+e3RoaXMubG9hZGluZz0hMX19CiAgICAgICAgPjwvdmlkZW8+CgogICAgICAgICR7dGhpcy5zaG93Q29udHJvbHM/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiIEBjbGljaz0ke3RoaXMuaGFuZGxlT3ZlcmxheUNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VudGVyLXBsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzLWJhciIgQGNsaWNrPSR7YWU9PmFlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLXJvdyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrfT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcHJvZ3Jlc3MiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtcm93Ij4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgICAgICA8L3NwYW4+CgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwYWNlciI+PC9zcGFuPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5tdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMubXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHJsLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVGdWxsc2NyZWVufSB0aXRsZT0iRnVsbHNjcmVlbiI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc0Z1bGxzY3JlZW4/Ik1pbmltaXplIjoiTWF4aW1pemUifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpWaWRlb09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMudmlkZW9FbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidmlkZW8iKXx8bnVsbCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpLHRoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKX1wbGF5KCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMudmlkZW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhhZSl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC5jdXJyZW50VGltZT1hZSl9c2V0Vm9sdW1lKGFlKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsYWUpKSx0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSl9dG9nZ2xlRnVsbHNjcmVlbigpe2xldCBhZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby1jb250YWluZXIiKTthZSYmKHRoaXMuaXNGdWxsc2NyZWVuP2RvY3VtZW50LmV4aXRGdWxsc2NyZWVuPy4oKTphZS5yZXF1ZXN0RnVsbHNjcmVlbj8uKCkpfWhhbmRsZUxvYWRlZE1ldGFkYXRhKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmR1cmF0aW9uPXRoaXMudmlkZW9FbGVtZW50LmR1cmF0aW9uLHRoaXMubG9hZGluZz0hMSl9aGFuZGxlUGxheSgpe3RoaXMuaXNQbGF5aW5nPSEwLHRoaXMuc2NoZWR1bGVIaWRlQ29udHJvbHMoKX1oYW5kbGVQYXVzZSgpe3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuY29udHJvbHNWaXNpYmxlPSEwfWhhbmRsZUVuZGVkKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlVGltZVVwZGF0ZSgpe3RoaXMudmlkZW9FbGVtZW50JiYodGhpcy5jdXJyZW50VGltZT10aGlzLnZpZGVvRWxlbWVudC5jdXJyZW50VGltZSl9aGFuZGxlRXJyb3IoKXt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCB2aWRlbyIsdGhpcy5sb2FkaW5nPSExfWhhbmRsZU92ZXJsYXlDbGljaygpe3RoaXMudG9nZ2xlUGxheSgpfWhhbmRsZVNlZWsoYWUpe2xldCByZT1hZS5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHllPShhZS5jbGllbnRYLXJlLmxlZnQpL3JlLndpZHRoO3RoaXMuc2Vlayh5ZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVWb2x1bWVDaGFuZ2UoYWUpe2xldCByZT1wYXJzZUZsb2F0KGFlLnRhcmdldC52YWx1ZSk7dGhpcy5zZXRWb2x1bWUocmUpLHRoaXMubXV0ZWQ9cmU9PT0wfXRvZ2dsZU11dGUoKXt0aGlzLm11dGVkPSF0aGlzLm11dGVkLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQubXV0ZWQ9dGhpcy5tdXRlZCl9aGFuZGxlTW91c2VNb3ZlKCl7dGhpcy5jb250cm9sc1Zpc2libGU9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZU1vdXNlTGVhdmUoKXt0aGlzLmlzUGxheWluZyYmKHRoaXMuY29udHJvbHNWaXNpYmxlPSExKX1zY2hlZHVsZUhpZGVDb250cm9scygpe3RoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKSx0aGlzLmlzUGxheWluZyYmKHRoaXMuaGlkZUNvbnRyb2xzVGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuY29udHJvbHNWaXNpYmxlPSExfSwzZTMpKX1oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlPXMoKCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fSwiaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSIpO2Zvcm1hdFRpbWUoYWUpe2lmKCFpc0Zpbml0ZShhZSl8fGFlPDApcmV0dXJuIjA6MDAiO2xldCByZT1NYXRoLmZsb29yKGFlLzYwKSx5ZT1NYXRoLmZsb29yKGFlJTYwKTtyZXR1cm5gJHtyZX06JHt5ZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3tLYShyLHQpfX07cmV0dXJuIGdlPXJ9KSgpfSk7dmFyIGszYT1mKCgpPT57UlFlKCl9KTt2YXIgbGwsWXNlPWYoKCk9PntsZSgpO2xsPWNsYXNze3N0YXRpY3tzKHRoaXMsIlBkZk1hbmFnZXIiKX1zdGF0aWMgcGRmanNMaWI7c3RhdGljIGluaXRpYWxpemVkPSExO3N0YXRpYyBhc3luYyBpbml0aWFsaXplKCl7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMucGRmanNMaWI9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIiksdGhpcy5wZGZqc0xpYi5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvYnVpbGQvcGRmLndvcmtlci5tanMiLHRoaXMuaW5pdGlhbGl6ZWQ9ITApfXN0YXRpYyBhc3luYyBsb2FkRG9jdW1lbnQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpLGF3YWl0IHRoaXMucGRmanNMaWIuZ2V0RG9jdW1lbnQoZSkucHJvbWlzZX1zdGF0aWMgcmVsZWFzZURvY3VtZW50KGUpe319fSk7dmFyIFMzYSx6M2E9ZigoKT0+e2xlKCk7UWUoKTtTM2E9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgY29udGFpbjogbGF5b3V0IHN0eWxlOwogICAgfQoKICAgIGRlZXMtdGlsZSB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YmVmb3JlLAogICAgLnZpZXdlci1jb250YWluZXI6OmFmdGVyIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGhlaWdodDogOHB4OwogICAgICB6LWluZGV4OiA1OwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YmVmb3JlIHsKICAgICAgdG9wOiAwOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgdG8gYm90dG9tLAogICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMCUgLyAwLjQpIil9LAogICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMCUgLyAwLjEyKSIpfSwKICAgICAgICB0cmFuc3BhcmVudAogICAgICApOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyOjphZnRlciB7CiAgICAgIGJvdHRvbTogMDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIHRvIHRvcCwKICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDAlIC8gMC40KSIpfSwKICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgdHJhbnNwYXJlbnQKICAgICAgKTsKICAgIH0KCiAgICAudG9vbGJhciB7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDRweDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQoKICAgIC5wYWdlLWluZm8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAucGFnZS1pbnB1dCB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIgNDclIDExJSkiLCJoc2woMjEwIDIwJSA5NiUpIil9OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLnBhZ2UtaW5wdXQ6Zm9jdXMgewogICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAucGFnZS1zZXBhcmF0b3IgewogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1MCUpIil9OwogICAgfQoKICAgIC56b29tLWxldmVsIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBtaW4td2lkdGg6IDQ4cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnNpZGViYXIgewogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgb3JkZXI6IDA7CiAgICB9CgogICAgLnNpZGViYXItcmlnaHQgLnNpZGViYXIgewogICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBvcmRlcjogMTsKICAgIH0KCiAgICAuc2lkZWJhci1oZWFkZXIgewogICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CgogICAgLnNpZGViYXItY29udGVudCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMTJweDsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9CgogICAgLnRodW1ibmFpbCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIC8qIERlZmF1bHQgQTQgYXNwZWN0IHJhdGlvICgyOTdtbSAvIDIxMG1tIOKJiCAxLjQxNCkgKi8KICAgICAgbWluLWhlaWdodDogY2FsYygxNzZweCAqIDEuNDE0KTsKICAgIH0KCiAgICAudGh1bWJuYWlsOmxhc3QtY2hpbGQgewogICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQoKICAgIC50aHVtYm5haWw6aG92ZXIgewogICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMzUlKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLmFjdGl2ZSB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAudGh1bWJuYWlsLW51bWJlciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiA0cHg7CiAgICAgIHJpZ2h0OiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnZpZXdlci1tYWluIHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGdhcDogMTZweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgLmxvYWRpbmctdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAucGFnZXMtY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAyMHB4OwogICAgfQoKICAgIC5wYWdlLXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgLmNhbnZhcy1jb250YWluZXIgewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm94LXNoYWRvdzogMCAycHggMTJweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wYWdlLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLyogVGV4dCBsYXllciBmb3Igc2VsZWN0aW9uICovCiAgICAudGV4dC1sYXllciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTsKICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOwogICAgICB6LWluZGV4OiAxOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciBzcGFuLAogICAgLnRleHQtbGF5ZXIgYnIgewogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMCwgMjAwLCAwLjMpOwogICAgfQoKICAgIC50ZXh0LWxheWVyIGJyOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICAudGV4dC1sYXllciAuZW5kT2ZDb250ZW50IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDEwMCUgMCAwOwogICAgICB6LWluZGV4OiAwOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgfQoKICAgIC50ZXh0LWxheWVyLnNlbGVjdGluZyAuZW5kT2ZDb250ZW50IHsKICAgICAgdG9wOiAwOwogICAgfQoKICAgIC5wZGYtdmlld2VyLndpdGgtc2lkZWJhciAudmlld2VyLW1haW4gewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgIH0KCiAgICAucGRmLWZvb3RlciB7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWxlZnQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLnBkZi1mb290ZXItbGVmdCAucGRmLWZvb3Rlci1pdGVtICsgLnBkZi1mb290ZXItaXRlbSB7CiAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1jZW50ZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAwLjE1cyBlYXNlOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLXJpZ2h0IHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnBkZi1mb290ZXItaXRlbSB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgogICAgLnBkZi1mb290ZXItZmlsZW5hbWUgewogICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CiAgYF19KTt2YXIgQzNhLF8zYT1mKCgpPT57bGUoKTtDM2E9cygoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOwogICAgfQoKICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgfQoKICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogI2ZhZmFmYTsKICAgIH0KCiAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnZpZXdlci10YWxsIHsKICAgICAgaGVpZ2h0OiA4MDBweDsKICAgIH0KCiAgICAudmlld2VyLWNvbXBhY3QgewogICAgICBoZWlnaHQ6IDUwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5GdWxsIEZlYXR1cmVkIFBERiBWaWV3ZXIgd2l0aCBUb29sYmFyPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2UtZml0IgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UERGIFZpZXdlciB3aXRoIFNpZGViYXIgTmF2aWdhdGlvbjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9InRydWUiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2Utd2lkdGgiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Db21wYWN0IFZpZXdlciB3aXRob3V0IENvbnRyb2xzPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItY29tcGFjdCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0iZmFsc2UiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJhdXRvIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIG5vLFphLFQzYSxPUWU9ZigoKT0+e2xlKCk7WXNlKCk7ejNhKCk7XzNhKCk7dmEoKTtRcigpO25vPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxaYT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sVDNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1wZGYtdmlld2VyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdO3ZhciBnZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1BkZlZpZXdlciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBhZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOk51bWJlcn0pXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVskKHt0eXBlOkJvb2xlYW59KV0seT1bJCh7dHlwZTpCb29sZWFufSldLE49WyQoe3R5cGU6U3RyaW5nfSldLE89WyQoe3R5cGU6TnVtYmVyfSldLEI9WyQoe3R5cGU6TnVtYmVyfSldLEU9WyQoe3R5cGU6TnVtYmVyfSldLFc9WyQoe3R5cGU6Qm9vbGVhbn0pXSxoZT1bJCh7dHlwZTpTdHJpbmd9KV0sbWU9WyQoe3R5cGU6QXJyYXl9KV0sY2U9WyQoe3R5cGU6QXJyYXl9KV0sUT1bJCh7dHlwZTpOdW1iZXJ9KV0sbm8odGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZGZVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJwZGZVcmwiaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS5wZGZVcmwsImdldCIpLHNldDpzKChyZSx5ZSk9PntyZS5wZGZVcmw9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LG4sbCksbm8odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhyZT0+ImluaXRpYWxQYWdlImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUuaW5pdGlhbFBhZ2UsImdldCIpLHNldDpzKChyZSx5ZSk9PntyZS5pbml0aWFsUGFnZT15ZX0sInNldCIpfSxtZXRhZGF0YTphZX0sYyxwKSxubyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4iaW5pdGlhbFpvb20iaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS5pbml0aWFsWm9vbSwiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLmluaXRpYWxab29tPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxtLHYpLG5vKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rvb2xiYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJzaG93VG9vbGJhciJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUuc2hvd1Rvb2xiYXI9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LGIsZyksbm8odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U2lkZWJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhyZT0+InNob3dTaWRlYmFyImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUuc2hvd1NpZGViYXIsImdldCIpLHNldDpzKChyZSx5ZSk9PntyZS5zaG93U2lkZWJhcj15ZX0sInNldCIpfSxtZXRhZGF0YTphZX0sayxDKSxubyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpZGViYXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhyZT0+InNpZGViYXJQb3NpdGlvbiJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLnNpZGViYXJQb3NpdGlvbiwiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLnNpZGViYXJQb3NpdGlvbj15ZX0sInNldCIpfSxtZXRhZGF0YTphZX0sXyx6KSxubyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4iY3VycmVudFBhZ2UiaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS5jdXJyZW50UGFnZSwiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLmN1cnJlbnRQYWdlPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxULFApLG5vKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidG90YWxQYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhyZT0+InRvdGFsUGFnZXMiaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS50b3RhbFBhZ2VzLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUudG90YWxQYWdlcz15ZX0sInNldCIpfSxtZXRhZGF0YTphZX0sTSxTKSxubyh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4iY3VycmVudFpvb20iaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS5jdXJyZW50Wm9vbSwiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLmN1cnJlbnRab29tPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxBLEYpLG5vKHRoaXMsbnVsbCxXLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhyZT0+ImxvYWRpbmciaW4gcmUsImhhcyIpLGdldDpzKHJlPT5yZS5sb2FkaW5nLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUubG9hZGluZz15ZX0sInNldCIpfSxtZXRhZGF0YTphZX0saixHKSxubyh0aGlzLG51bGwsaGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb2N1bWVudElkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHJlPT4iZG9jdW1lbnRJZCJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLmRvY3VtZW50SWQsImdldCIpLHNldDpzKChyZSx5ZSk9PntyZS5kb2N1bWVudElkPXllfSwic2V0Iil9LG1ldGFkYXRhOmFlfSxSLFUpLG5vKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJ0aHVtYm5haWxEYXRhImluIHJlLCJoYXMiKSxnZXQ6cyhyZT0+cmUudGh1bWJuYWlsRGF0YSwiZ2V0Iiksc2V0OnMoKHJlLHllKT0+e3JlLnRodW1ibmFpbERhdGE9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LEkscSksbm8odGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJwYWdlRGF0YSJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLnBhZ2VEYXRhLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUucGFnZURhdGE9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LHVlLFkpLG5vKHRoaXMsbnVsbCxRLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmRmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocmU9PiJwZGZGaWxlU2l6ZSJpbiByZSwiaGFzIiksZ2V0OnMocmU9PnJlLnBkZkZpbGVTaXplLCJnZXQiKSxzZXQ6cygocmUseWUpPT57cmUucGRmRmlsZVNpemU9eWV9LCJzZXQiKX0sbWV0YWRhdGE6YWV9LEosWiksbm8obnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6YWV9LG51bGwsdCksZ2U9cj1lLnZhbHVlLGFlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmFlfSl9c3RhdGljIGRlbW89QzNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVMzYTsjZT1aYSh0aGlzLG4sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKGFlKXt0aGlzLiNlPWFlfSN0PShaYSh0aGlzLGwpLFphKHRoaXMsYywxKSk7Z2V0IGluaXRpYWxQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxQYWdlKGFlKXt0aGlzLiN0PWFlfSNhPShaYSh0aGlzLHApLFphKHRoaXMsbSwiYXV0byIpKTtnZXQgaW5pdGlhbFpvb20oKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW5pdGlhbFpvb20oYWUpe3RoaXMuI2E9YWV9I3I9KFphKHRoaXMsdiksWmEodGhpcyxiLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUb29sYmFyKGFlKXt0aGlzLiNyPWFlfSNzPShaYSh0aGlzLGcpLFphKHRoaXMsaywhMSkpO2dldCBzaG93U2lkZWJhcigpe3JldHVybiB0aGlzLiNzfXNldCBzaG93U2lkZWJhcihhZSl7dGhpcy4jcz1hZX0jaT0oWmEodGhpcyxDKSxaYSh0aGlzLF8sImxlZnQiKSk7Z2V0IHNpZGViYXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBzaWRlYmFyUG9zaXRpb24oYWUpe3RoaXMuI2k9YWV9I289KFphKHRoaXMseiksWmEodGhpcyxULDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jb31zZXQgY3VycmVudFBhZ2UoYWUpe3RoaXMuI289YWV9I249KFphKHRoaXMsUCksWmEodGhpcyxNLDEpKTtnZXQgdG90YWxQYWdlcygpe3JldHVybiB0aGlzLiNufXNldCB0b3RhbFBhZ2VzKGFlKXt0aGlzLiNuPWFlfSNsPShaYSh0aGlzLFMpLFphKHRoaXMsQSwxKSk7Z2V0IGN1cnJlbnRab29tKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGN1cnJlbnRab29tKGFlKXt0aGlzLiNsPWFlfSNjPShaYSh0aGlzLEYpLFphKHRoaXMsaiwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxvYWRpbmcoYWUpe3RoaXMuI2M9YWV9I2Q9KFphKHRoaXMsRyksWmEodGhpcyxSLCIiKSk7Z2V0IGRvY3VtZW50SWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZG9jdW1lbnRJZChhZSl7dGhpcy4jZD1hZX0jdT0oWmEodGhpcyxVKSxaYSh0aGlzLEksW10pKTtnZXQgdGh1bWJuYWlsRGF0YSgpe3JldHVybiB0aGlzLiN1fXNldCB0aHVtYm5haWxEYXRhKGFlKXt0aGlzLiN1PWFlfSNwPShaYSh0aGlzLHEpLFphKHRoaXMsdWUsW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcGFnZURhdGEoYWUpe3RoaXMuI3A9YWV9I2Y9KFphKHRoaXMsWSksWmEodGhpcyxKLDApKTtnZXQgcGRmRmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgcGRmRmlsZVNpemUoYWUpe3RoaXMuI2Y9YWV9cGRmRG9jdW1lbnQ9WmEodGhpcyxaKTtyZW5kZXJTdGF0ZT0iaWRsZSI7cmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGw7cGFnZVJlbmRlcmluZz0hMTtwYWdlTnVtUGVuZGluZz1udWxsO2N1cnJlbnRSZW5kZXJUYXNrPW51bGw7Y3VycmVudFJlbmRlclByb21pc2U9bnVsbDt0aHVtYm5haWxSZW5kZXJUYXNrcz1bXTtwYWdlUmVuZGVyVGFza3M9bmV3IE1hcDt0ZXh0TGF5ZXJSZW5kZXJUYXNrcz1uZXcgTWFwO2NhbnZhcztjdHg7dmlld2VyTWFpbj1udWxsO3Jlc2l6ZU9ic2VydmVyO2ludGVyc2VjdGlvbk9ic2VydmVyO3Njcm9sbFRocm90dGxlVGltZW91dDt2aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3ZpZXdwb3J0TW9kZT0iYXV0byI7TUFOVUFMX01JTl9aT09NPS41O01BTlVBTF9NQVhfWk9PTT0zO0FCU09MVVRFX01JTl9aT09NPS4xO0FCU09MVVRFX01BWF9aT09NPTQ7UEFHRV9HQVA9MjA7UkVOREVSX0JVRkZFUj0zO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHt0aGlzLnNob3dTaWRlYmFyPyJ3aXRoLXNpZGViYXIiOiIifSBzaWRlYmFyLSR7dGhpcy5zaWRlYmFyUG9zaXRpb259Ij4KICAgICAgICAke3RoaXMuc2hvd1Rvb2xiYXI/d2AKICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZTw9MX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uTGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudG90YWxQYWdlc30iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmN1cnJlbnRQYWdlKX0KICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlUGFnZUlucHV0fQogICAgICAgICAgICAgICAgICBjbGFzcz0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS10b3RhbCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPj10aGlzLnRvdGFsUGFnZXN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvblJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tT3V0fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucmVzZXRab29tfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tSW59CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gcGFnZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1dpZHRofQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byB3aWR0aCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcnJvd0xlZnRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCB0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSF0aGlzLnNob3dTaWRlYmFyfQogICAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5zaG93U2lkZWJhcj8iSGlkZSB0aHVtYm5haWxzIjoiU2hvdyB0aHVtYm5haWxzIn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke3RoaXMuc2hvd1NpZGViYXI/Imx1Y2lkZTpTaWRlYmFyQ2xvc2UiOiJsdWNpZGU6U2lkZWJhciJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmRvd25sb2FkUGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IkRvd25sb2FkIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IlByaW50IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlByaW50ZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2lkZWJhci1jbG9zZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9ITF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7Sm8ua2V5ZWQodGhpcy5kb2N1bWVudElkLHdgCiAgICAgICAgICAgICAgICAgICR7Sm8ucmVwZWF0KHRoaXMudGh1bWJuYWlsRGF0YSxhZT0+YWUucGFnZSxhZT0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2U9PT1hZS5wYWdlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wYWdlPSIke2FlLnBhZ2V9IgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVRodW1ibmFpbENsaWNrfQogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ0aHVtYm5haWwtY2FudmFzIiBkYXRhLXBhZ2U9IiR7YWUucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGh1bWJuYWlsLW51bWJlciI+JHthZS5wYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItbWFpbiIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy10ZXh0Ij5Mb2FkaW5nIFBERi4uLjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZXMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICR7Sm8ucmVwZWF0KHRoaXMucGFnZURhdGEsYWU9PmFlLnBhZ2UsYWU9PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS13cmFwcGVyIiBkYXRhLXBhZ2U9IiR7YWUucGFnZX0iPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FudmFzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InBhZ2UtY2FudmFzIiBkYXRhLXBhZ2U9IiR7YWUucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxheWVyIiBkYXRhLXBhZ2U9IiR7YWUucGFnZX0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJwZGYtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItbGVmdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWl0ZW0iPlpvb20gJHtNYXRoLnJvdW5kKHRoaXMuY3VycmVudFpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAke3RoaXMucGRmRmlsZVNpemU+MD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWl0ZW0iPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLnBkZkZpbGVTaXplKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItY2VudGVyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICR7dGhpcy5zaG93U2lkZWJhciYmdGhpcy5zaWRlYmFyUG9zaXRpb249PT0ibGVmdCI/IjEwMHB4Ijp0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNpZGViYXJQb3NpdGlvbj09PSJyaWdodCI/Ii0xMDBweCI6IjAifSI+CiAgICAgICAgICAgIDxzcGFuPlBhZ2UgJHt0aGlzLmN1cnJlbnRQYWdlfSBvZiAke3RoaXMudG90YWxQYWdlc308L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBkZi1mb290ZXItcmlnaHQiPgogICAgICAgICAgICAke3RoaXMucGRmVXJsP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBkZi1mb290ZXItZmlsZW5hbWUiPiR7dGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKX08L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMucGRmVXJsJiYodGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPXZvaWQgMCx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9dm9pZCAwKSx0aGlzLnJlbmRlclN0YXRlPSJkaXNwb3NlZCIsYXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLmNhbnZhcz12b2lkIDAsdGhpcy5jdHg9dm9pZCAwfWFzeW5jIHVwZGF0ZWQoYWUpe2lmKHN1cGVyLnVwZGF0ZWQoYWUpLGFlLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgcmU9YWUuZ2V0KCJwZGZVcmwiKTtyZSYmbGwucmVsZWFzZURvY3VtZW50KHJlKSx0aGlzLmRvY3VtZW50SWQ9YCR7dGhpcy5wZGZVcmx9LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsYXdhaXQgdGhpcy5sb2FkUGRmKCl9YWUuaGFzKCJzaG93U2lkZWJhciIpJiZ0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnBkZkRvY3VtZW50JiYoYXdhaXQgbmV3IFByb21pc2UocmU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShyZSkpLHRoaXMudGh1bWJuYWlsRGF0YS5mb3JFYWNoKHJlPT5yZS5yZW5kZXJlZD0hMSksYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyh0aGlzLmN1cnJlbnRQYWdlKSl9Zm9ybWF0RmlsZVNpemUoYWUpe3JldHVybiBhZTwxMDI0P2Ake2FlfSBCYDphZTwxMDI0KjEwMjQ/YCR7KGFlLzEwMjQpLnRvRml4ZWQoMSl9IEtCYDpgJHsoYWUvKDEwMjQqMTAyNCkpLnRvRml4ZWQoMSl9IE1CYH1hc3luYyBsb2FkUGRmKCl7dGhpcy5sb2FkaW5nPSEwLHRoaXMucmVuZGVyU3RhdGU9ImxvYWRpbmciO3RyeXthd2FpdCB0aGlzLmNsZWFudXBEb2N1bWVudCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXI7bGV0IGFlPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLnNpZ25hbDtpZih0aGlzLnBkZkRvY3VtZW50PWF3YWl0IGxsLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksYWUuYWJvcnRlZClyZXR1cm47dGhpcy50b3RhbFBhZ2VzPXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UGFnZT10aGlzLmluaXRpYWxQYWdlLHRoaXMucmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKTt0cnl7bGV0IHJlPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RGF0YSgpO3RoaXMucGRmRmlsZVNpemU9cmUubGVuZ3RofWNhdGNoe3RoaXMucGRmRmlsZVNpemU9MH1pZih0aGlzLnRodW1ibmFpbERhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKHJlLHllKT0+KHtwYWdlOnllKzEscmVuZGVyZWQ6ITF9KSksdGhpcy5wYWdlRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwocmUseWUpPT4oe3BhZ2U6eWUrMSxyZW5kZXJlZDohMSxyZW5kZXJpbmc6ITEsdGV4dExheWVyUmVuZGVyZWQ6ITF9KSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksYXdhaXQgbmV3IFByb21pc2UocmU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShyZSkpLGFlLmFib3J0ZWR8fCh0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJpbmctbWFpbiIsYXdhaXQgdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKSxhZS5hYm9ydGVkKXx8KHRoaXMuaW5pdGlhbFBhZ2U+MSYmYXdhaXQgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5pbml0aWFsUGFnZSwhMSksdGhpcy5zaG93U2lkZWJhciYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UocmU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShyZSkpLGFlLmFib3J0ZWR8fChhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSxhZS5hYm9ydGVkKSkpKXJldHVybjt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJlZCJ9Y2F0Y2goYWUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgUERGOiIsYWUpLHRoaXMubG9hZGluZz0hMSx0aGlzLnJlbmRlclN0YXRlPSJlcnJvciJ9fXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyJiZ0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihyZT0+e2ZvcihsZXQgeWUgb2YgcmUpe2xldCBWPXllLnRhcmdldCxIPXBhcnNlSW50KFYuZGF0YXNldC5wYWdlfHwiMSIpO3llLmlzSW50ZXJzZWN0aW5nJiZ0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChIKX19LHtyb290OnRoaXMudmlld2VyTWFpbixyb290TWFyZ2luOmAke3RoaXMuUkVOREVSX0JVRkZFUioxMDB9cHggMHB4YCx0aHJlc2hvbGQ6LjAxfSk7bGV0IGFlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnBhZ2Utd3JhcHBlciIpO2FlJiZhZS5mb3JFYWNoKHJlPT57dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8ub2JzZXJ2ZShyZSl9KX1hc3luYyByZW5kZXJWaXNpYmxlUGFnZXMoKXtpZighdGhpcy52aWV3ZXJNYWluKXJldHVybjtsZXQgYWU9dGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodDtmb3IobGV0IHJlIG9mIHRoaXMucGFnZURhdGEpe2xldCB5ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke3JlLnBhZ2V9Il1gKTtpZigheWUpY29udGludWU7bGV0IFY9eWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksSD10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9Vi50b3AtSC50b3Asc2U9b2UrVi5oZWlnaHQsdGU9dGhpcy5SRU5ERVJfQlVGRkVSKmFlO3NlPj0tdGUmJm9lPD1hZSt0ZSYmYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQocmUucGFnZSl9fWFzeW5jIHJlbmRlclBhZ2VJZk5lZWRlZChhZSl7bGV0IHJlPXRoaXMucGFnZURhdGEuZmluZCh5ZT0+eWUucGFnZT09PWFlKTtpZighKCFyZXx8cmUucmVuZGVyZWR8fHJlLnJlbmRlcmluZykpe3JlLnJlbmRlcmluZz0hMDt0cnl7bGV0IHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2UtY2FudmFzW2RhdGEtcGFnZT0iJHthZX0iXWApO2lmKCF5ZSl7cmUucmVuZGVyaW5nPSExO3JldHVybn1sZXQgVj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoYWUpLEg9dGhpcy5jb21wdXRlVmlld3BvcnQoViksb2U9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7eWUud2lkdGg9TWF0aC5mbG9vcihILndpZHRoKm9lKSx5ZS5oZWlnaHQ9TWF0aC5mbG9vcihILmhlaWdodCpvZSkseWUuc3R5bGUud2lkdGg9YCR7SC53aWR0aH1weGAseWUuc3R5bGUuaGVpZ2h0PWAke0guaGVpZ2h0fXB4YDtsZXQgc2U9eWUuZ2V0Q29udGV4dCgiMmQiKTtpZighc2Upe1YuY2xlYW51cD8uKCkscmUucmVuZGVyaW5nPSExO3JldHVybn1zZS5zY2FsZShvZSxvZSk7bGV0IHRlPXtjYW52YXNDb250ZXh0OnNlLHZpZXdwb3J0Okh9LHplPVYucmVuZGVyKHRlKTt0aGlzLnBhZ2VSZW5kZXJUYXNrcy5zZXQoYWUsemUpLGF3YWl0IHplLnByb21pc2UsVi5jbGVhbnVwPy4oKSxyZS5yZW5kZXJlZD0hMCxyZS5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKGFlKSxhd2FpdCB0aGlzLnJlbmRlclRleHRMYXllcihhZSksdGhpcy5yZXF1ZXN0VXBkYXRlKCJwYWdlRGF0YSIpfWNhdGNoKHllKXt5ZT8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgcGFnZSAke2FlfTpgLHllKSxyZS5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKGFlKX19fWFzeW5jIHJlbmRlclRleHRMYXllcihhZSl7bGV0IHJlPXRoaXMucGFnZURhdGEuZmluZCh5ZT0+eWUucGFnZT09PWFlKTtpZighKCFyZXx8cmUudGV4dExheWVyUmVuZGVyZWQpKXRyeXtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGV4dC1sYXllcltkYXRhLXBhZ2U9IiR7YWV9Il1gKTtpZigheWUpcmV0dXJuO3llLmlubmVySFRNTD0iIjtsZXQgVj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoYWUpLEg9YXdhaXQgVi5nZXRUZXh0Q29udGVudCgpLG9lPXRoaXMuY29tcHV0ZVZpZXdwb3J0KFYpLHNlPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpO3llLnN0eWxlLndpZHRoPWAke29lLndpZHRofXB4YCx5ZS5zdHlsZS5oZWlnaHQ9YCR7b2UuaGVpZ2h0fXB4YCx5ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zY2FsZS1mYWN0b3IiLFN0cmluZyhvZS5zY2FsZSkpO2xldCB0ZT1zZS5yZW5kZXJUZXh0TGF5ZXIoe3RleHRDb250ZW50U291cmNlOkgsY29udGFpbmVyOnllLHZpZXdwb3J0Om9lfSk7dGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5zZXQoYWUsdGUpLGF3YWl0IHRlLnByb21pc2U7bGV0IHplPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3plLmNsYXNzTmFtZT0iZW5kT2ZDb250ZW50Iix5ZS5hcHBlbmRDaGlsZCh6ZSk7bGV0IE9lPSExLHFlPW51bGwsZHQ9MCwkZT1zKChkZSx2ZSk9PntsZXQgQWU9QXJyYXkuZnJvbSh5ZS5xdWVyeVNlbGVjdG9yQWxsKCJzcGFuIikpO2ZvcihsZXQgWmUgb2YgQWUpe2xldCBudD1aZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihkZT49bnQubGVmdCYmZGU8PW50LnJpZ2h0JiZ2ZT49bnQudG9wJiZ2ZTw9bnQuYm90dG9tKXtsZXQgenQ9WmUuZmlyc3RDaGlsZDtpZih6dCYmenQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7bGV0IFRlPXp0LnRleHRDb250ZW50fHwiIix3ZT1udC53aWR0aC9UZS5sZW5ndGgsUmU9ZGUtbnQubGVmdCxmZT1NYXRoLm1pbihNYXRoLnJvdW5kKFJlL3dlKSxUZS5sZW5ndGgpO3JldHVybntub2RlOnp0LG9mZnNldDpmZX19fX1yZXR1cm4gbnVsbH0sImdldFRleHRQb3NpdGlvbkZyb21Qb2ludCIpLENlPXMoKCk9PntPZSYmKE9lPSExLHFlPW51bGwseWUuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0aW5nIikpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLENlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLE1lKX0sImhhbmRsZU1vdXNlVXAiKSxNZT1zKGRlPT57aWYoIU9lfHwhcWUpcmV0dXJuO2RlLnByZXZlbnREZWZhdWx0KCk7bGV0IHZlPSRlKGRlLmNsaWVudFgsZGUuY2xpZW50WSk7aWYodmUpe2xldCBBZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoQWUpdHJ5e0FlLnNldEJhc2VBbmRFeHRlbnQocWUsZHQsdmUubm9kZSx2ZS5vZmZzZXQpfWNhdGNoe319fSwiaGFuZGxlTW91c2VNb3ZlIik7eWUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixkZT0+e2lmKGRlLmJ1dHRvbiE9PTApcmV0dXJuO2xldCB2ZT0kZShkZS5jbGllbnRYLGRlLmNsaWVudFkpO3ZlJiYoZGUucHJldmVudERlZmF1bHQoKSxPZT0hMCxxZT12ZS5ub2RlLGR0PXZlLm9mZnNldCx5ZS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RpbmciKSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsTWUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLENlKSl9KSxyZS50ZXh0TGF5ZXJSZW5kZXJlZD0hMCxWLmNsZWFudXA/LigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZGVsZXRlKGFlKX1jYXRjaCh5ZSl7eWU/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIHRleHQgbGF5ZXIgZm9yIHBhZ2UgJHthZX06YCx5ZSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5kZWxldGUoYWUpfX1oYW5kbGVTY3JvbGw9cygoKT0+e3RoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy51cGRhdGVDdXJyZW50UGFnZSgpLHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCl9LDUwKX0sImhhbmRsZVNjcm9sbCIpO3VwZGF0ZUN1cnJlbnRQYWdlKCl7aWYoIXRoaXMudmlld2VyTWFpbilyZXR1cm47bGV0IGFlPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3AscmU9dGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodCx5ZT1hZStyZS8yO2ZvcihsZXQgVj0wO1Y8dGhpcy5wYWdlRGF0YS5sZW5ndGg7VisrKXtsZXQgSD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke1YrMX0iXWApO2lmKCFIKWNvbnRpbnVlO2xldCBvZT1ILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0ZT1vZS50b3Atc2UudG9wK2FlLHplPXRlK29lLmhlaWdodDtpZih5ZT49dGUmJnllPD16ZSl7dGhpcy5jdXJyZW50UGFnZSE9PVYrMSYmKHRoaXMuY3VycmVudFBhZ2U9VisxLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoVisxKSk7YnJlYWt9fX1zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhhZSl7bGV0IHJlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRodW1ibmFpbFtkYXRhLXBhZ2U9IiR7YWV9Il1gKSx5ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKTtpZihyZSYmeWUpe2xldCBWPXJlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEg9eWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9Vi50b3A8SC50b3Asc2U9Vi5ib3R0b20+SC5ib3R0b207aWYob2V8fHNlKXtsZXQgdGU9cmUub2Zmc2V0VG9wLHplPXJlLm9mZnNldEhlaWdodCxPZT15ZS5jbGllbnRIZWlnaHQscWU9dGUtT2UvMit6ZS8yO3llLnNjcm9sbFRvKHt0b3A6TWF0aC5tYXgoMCxxZSksYmVoYXZpb3I6InNtb290aCJ9KX19fWFzeW5jIHNjcm9sbFRvUGFnZShhZSxyZT0hMCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgeWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHthZX0iXWApO2lmKHllJiZ0aGlzLnZpZXdlck1haW4pe2xldCBWPXllLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEg9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHNlPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3ArKFYudG9wLUgudG9wKS10aGlzLnZpZXdlck1haW4uY2xpZW50VG9wLTE2O3JlP3RoaXMudmlld2VyTWFpbi5zY3JvbGxUbyh7dG9wOnNlLGJlaGF2aW9yOiJzbW9vdGgifSk6dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcD1zZSx0aGlzLmN1cnJlbnRQYWdlPWFlLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoYWUpLGF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKGFlKX19YXN5bmMgcmVuZGVyVGh1bWJuYWlscygpe2lmKCF0aGlzLnBkZkRvY3VtZW50fHx0aGlzLnRodW1ibmFpbERhdGEubGVuZ3RoPjAmJnRoaXMudGh1bWJuYWlsRGF0YS5ldmVyeShyZT0+cmUucmVuZGVyZWQpfHx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2xldCBhZT10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy10aHVtYnMiO2ZvcihsZXQgcmUgb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcyl0cnl7cmUuY2FuY2VsKCl9Y2F0Y2h7fXRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W107dHJ5e2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IHJlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbCIpLHllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbC1jYW52YXMiKSxWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNpZGViYXItY29udGVudCIpLEg9d2luZG93LmdldENvbXB1dGVkU3R5bGUoViksc2U9MjAwLShwYXJzZUZsb2F0KEgucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQoSC5wYWRkaW5nUmlnaHQpKS00O2ZvcihsZXQgdGUgb2YgQXJyYXkuZnJvbSh5ZSkpe2xldCB6ZT10ZS5nZXRDb250ZXh0KCIyZCIpO3plJiZ6ZS5jbGVhclJlY3QoMCwwLHRlLndpZHRoLHRlLmhlaWdodCl9Zm9yKGxldCB0ZT0wO3RlPHllLmxlbmd0aDt0ZSsrKXtpZihhZT8uYWJvcnRlZClyZXR1cm47bGV0IHplPXllW3RlXSxPZT1yZVt0ZV0scWU9cGFyc2VJbnQoemUuZGF0YXNldC5wYWdlfHwiMSIpLGR0PWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShxZSksJGU9ZHQuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxDZT1zZS8kZS53aWR0aCxNZT1kdC5nZXRWaWV3cG9ydCh7c2NhbGU6Q2V9KSxkZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt6ZS53aWR0aD1NYXRoLmZsb29yKE1lLndpZHRoKmRlKSx6ZS5oZWlnaHQ9TWF0aC5mbG9vcihNZS5oZWlnaHQqZGUpLHplLnN0eWxlLndpZHRoPWAke01lLndpZHRofXB4YCx6ZS5zdHlsZS5oZWlnaHQ9YCR7TWUuaGVpZ2h0fXB4YCxPZS5zdHlsZS5oZWlnaHQ9YCR7TWUuaGVpZ2h0fXB4YCxPZS5zdHlsZS5taW5IZWlnaHQ9YCR7TWUuaGVpZ2h0fXB4YDtsZXQgdmU9emUuZ2V0Q29udGV4dCgiMmQiKTtpZighdmUpe2R0LmNsZWFudXA/LigpO2NvbnRpbnVlfXZlLnNjYWxlKGRlLGRlKTtsZXQgQWU9e2NhbnZhc0NvbnRleHQ6dmUsdmlld3BvcnQ6TWV9LFplPWR0LnJlbmRlcihBZSk7dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcy5wdXNoKFplKSxhd2FpdCBaZS5wcm9taXNlLGR0LmNsZWFudXA/LigpO2xldCBudD10aGlzLnRodW1ibmFpbERhdGEuZmluZCh6dD0+enQucGFnZT09PXFlKTtudCYmKG50LnJlbmRlcmVkPSEwKX10aGlzLnJlcXVlc3RVcGRhdGUoInRodW1ibmFpbERhdGEiKX1jYXRjaChyZSl7cmU/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIHRodW1ibmFpbHM6IixyZSl9ZmluYWxseXt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdfX1wcmV2aW91c1BhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPjEmJnRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UtMSl9bmV4dFBhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPHRoaXMudG90YWxQYWdlcyYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZSsxKX1oYW5kbGVUaHVtYm5haWxDbGljayhhZSl7bGV0IHJlPWFlLmN1cnJlbnRUYXJnZXQseWU9cGFyc2VJbnQocmUuZGF0YXNldC5wYWdlfHwiMSIpO3RoaXMuc2Nyb2xsVG9QYWdlKHllKX1oYW5kbGVQYWdlSW5wdXQoYWUpe2xldCByZT1hZS50YXJnZXQseWU9cGFyc2VJbnQocmUudmFsdWUpO3RoaXMuc2Nyb2xsVG9QYWdlKHllKX16b29tSW4oKXtsZXQgYWU9TWF0aC5taW4odGhpcy5NQU5VQUxfTUFYX1pPT00sdGhpcy5jdXJyZW50Wm9vbSoxLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLGFlIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209YWUsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXpvb21PdXQoKXtsZXQgYWU9TWF0aC5tYXgodGhpcy5NQU5VQUxfTUlOX1pPT00sdGhpcy5jdXJyZW50Wm9vbS8xLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLGFlIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209YWUsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXJlc2V0Wm9vbSgpe3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLHRoaXMuY3VycmVudFpvb209MSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1maXRUb1BhZ2UoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS1maXQiLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvV2lkdGgoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9cmVSZW5kZXJBbGxQYWdlcygpe3RoaXMucGFnZURhdGEuZm9yRWFjaChhZT0+e2FlLnJlbmRlcmVkPSExLGFlLnJlbmRlcmluZz0hMSxhZS50ZXh0TGF5ZXJSZW5kZXJlZD0hMX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goYWU9Pnt0cnl7YWUuY2FuY2VsKCl9Y2F0Y2h7fX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5mb3JFYWNoKGFlPT57dHJ5e2FlLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSl9YXN5bmMgZG93bmxvYWRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgYWU9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCkscmU9bmV3IEJsb2IoW2FlLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSx5ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKHJlKSxWPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtWLmhyZWY9eWUsVi5kb3dubG9hZD10aGlzLnBkZlVybCYmdGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIsVi5jbGljaygpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoeWUpLDFlMyl9Y2F0Y2goYWUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRvd25sb2FkaW5nIFBERjoiLGFlKX19YXN5bmMgcHJpbnRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgYWU9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCkscmU9bmV3IEJsb2IoW2FlLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSx5ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKHJlKSxWPWAKICAgICAgICA8IURPQ1RZUEUgaHRtbD4KICAgICAgICA8aHRtbD4KICAgICAgICA8aGVhZD4KICAgICAgICAgIDx0aXRsZT5QcmludCBQREY8L3RpdGxlPgogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgICAgICAgICAgIGh0bWwsIGJvZHkgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgICAgICAgICAgIGlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlcjogbm9uZTsgfQogICAgICAgICAgICBAbWVkaWEgcHJpbnQgewogICAgICAgICAgICAgIGh0bWwsIGJvZHksIGlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICA8L2hlYWQ+CiAgICAgICAgPGJvZHk+CiAgICAgICAgICA8aWZyYW1lIHNyYz0iJHt5ZX0iIHR5cGU9ImFwcGxpY2F0aW9uL3BkZiI+PC9pZnJhbWU+CiAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1cygpOwogICAgICAgICAgICAgICAgd2luZG93LnByaW50KCk7CiAgICAgICAgICAgICAgfSwgNTAwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93Lm9uYWZ0ZXJwcmludCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBTYWZldHkgY2xvc2UgYWZ0ZXIgMiBtaW51dGVzCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5jbG9zZSgpOyB9LCAxMjAwMDApOwogICAgICAgICAgPFwvc2NyaXB0PgogICAgICAgIDwvYm9keT4KICAgICAgICA8L2h0bWw+CiAgICAgIGAsSD1uZXcgQmxvYihbVl0se3R5cGU6InRleHQvaHRtbCJ9KSxvZT1VUkwuY3JlYXRlT2JqZWN0VVJMKEgpLHNlPXdpbmRvdy5vcGVuKG9lLCJfYmxhbmsiLCJ3aWR0aD04MDAsaGVpZ2h0PTYwMCIpO2lmKHNlKXtsZXQgdGU9c2V0SW50ZXJ2YWwoKCk9PntzZS5jbG9zZWQmJihjbGVhckludGVydmFsKHRlKSxVUkwucmV2b2tlT2JqZWN0VVJMKHllKSxVUkwucmV2b2tlT2JqZWN0VVJMKG9lKSl9LDUwMCk7c2V0VGltZW91dCgoKT0+e2NsZWFySW50ZXJ2YWwodGUpLFVSTC5yZXZva2VPYmplY3RVUkwoeWUpLFVSTC5yZXZva2VPYmplY3RVUkwob2UpfSwxMmU0KX1lbHNlIHdpbmRvdy5vcGVuKHllLCJfYmxhbmsiKSxzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKHllKSw2ZTQpLFVSTC5yZXZva2VPYmplY3RVUkwob2UpfWNhdGNoKGFlKXtjb25zb2xlLmVycm9yKCJFcnJvciBwcmludGluZyBQREY6IixhZSl9fWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgYWU9W10seWU9d2luZG93LmdldFNlbGVjdGlvbigpPy50b1N0cmluZygpfHwiIjtyZXR1cm4geWUmJihhZS5wdXNoKHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjpzKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh5ZSl9LCJhY3Rpb24iKX0pLGFlLnB1c2goe2RpdmlkZXI6ITB9KSksYWUucHVzaCh7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246cyhhc3luYygpPT57YXdhaXQgdGhpcy5kb3dubG9hZFBkZigpfSwiYWN0aW9uIil9LHtuYW1lOiJQcmludCBQREYiLGljb25OYW1lOiJsdWNpZGU6UHJpbnRlciIsYWN0aW9uOnMoYXN5bmMoKT0+e2F3YWl0IHRoaXMucHJpbnRQZGYoKX0sImFjdGlvbiIpfSksYWV9Z2V0IGNhblpvb21Jbigpe3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20ifHx0aGlzLmN1cnJlbnRab29tPHRoaXMuTUFOVUFMX01BWF9aT09NfWdldCBjYW5ab29tT3V0KCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb20+dGhpcy5NQU5VQUxfTUlOX1pPT019ZW5zdXJlVmlld2VyUmVmcygpe3RoaXMudmlld2VyTWFpbnx8KHRoaXMudmlld2VyTWFpbj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWV3ZXItbWFpbiIpKSx0aGlzLnZpZXdlck1haW4mJiF0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKSx0aGlzLnBkZkRvY3VtZW50JiZ0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnZpZXdlck1haW4pLHRoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMudmlld2VyTWFpbi5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsYWU9PntsZXQgcmU9YWUuY3VycmVudFRhcmdldCx5ZT1yZS5zY3JvbGxUb3AsVj1yZS5zY3JvbGxIZWlnaHQsSD1yZS5jbGllbnRIZWlnaHQsb2U9YWUuZGVsdGFZLHNlPXllPT09MCx0ZT1NYXRoLmFicyh5ZStILVYpPDE7b2U8MCYmIXNlfHxvZT4wJiYhdGU/YWUuc3RvcFByb3BhZ2F0aW9uKCk6KG9lPDAmJnNlfHxvZT4wJiZ0ZSkmJihhZS5wcmV2ZW50RGVmYXVsdCgpLGFlLnN0b3BQcm9wYWdhdGlvbigpKX0se3Bhc3NpdmU6ITF9KSl9bWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpe2lmKCF0aGlzLnZpZXdlck1haW4pe3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDowLGhlaWdodDowfTtyZXR1cm59bGV0IGFlPWdldENvbXB1dGVkU3R5bGUodGhpcy52aWV3ZXJNYWluKSxyZT1wYXJzZUZsb2F0KGFlLnBhZGRpbmdMZWZ0fHwiMCIpK3BhcnNlRmxvYXQoYWUucGFkZGluZ1JpZ2h0fHwiMCIpLHllPXBhcnNlRmxvYXQoYWUucGFkZGluZ1RvcHx8IjAiKStwYXJzZUZsb2F0KGFlLnBhZGRpbmdCb3R0b218fCIwIiksVj1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50V2lkdGgtcmUsMCksSD1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LXllLDApO3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDpWLGhlaWdodDpIfX1yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpe3R5cGVvZiB0aGlzLmluaXRpYWxab29tPT0ibnVtYmVyIj8odGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT10aGlzLm5vcm1hbGl6ZVpvb20odGhpcy5pbml0aWFsWm9vbSwhMCkpOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS13aWR0aCI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS1maXQifHx0aGlzLmluaXRpYWxab29tPT09ImF1dG8iP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCI6dGhpcy52aWV3cG9ydE1vZGU9ImF1dG8iLHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPTEpfWNvbXB1dGVWaWV3cG9ydChhZSl7dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCk7bGV0IHJlPWFlLmdldFZpZXdwb3J0KHtzY2FsZToxfSkseWU7c3dpdGNoKHRoaXMudmlld3BvcnRNb2RlKXtjYXNlInBhZ2Utd2lkdGgiOnt5ZT0odGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fHJlLndpZHRoKS9yZS53aWR0aDticmVha31jYXNlInBhZ2UtZml0IjpjYXNlImF1dG8iOntsZXQgSD10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aHx8cmUud2lkdGgsb2U9dGhpcy52aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0fHxyZS5oZWlnaHQsc2U9SC9yZS53aWR0aCx0ZT1vZS9yZS5oZWlnaHQ7eWU9TWF0aC5taW4oc2UsdGUpO2JyZWFrfWRlZmF1bHQ6e3llPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmN1cnJlbnRab29tfHwxLCExKTticmVha319KCFOdW1iZXIuaXNGaW5pdGUoeWUpfHx5ZTw9MCkmJih5ZT0xKTtsZXQgVj10aGlzLnZpZXdwb3J0TW9kZT09PSJjdXN0b20iP3RoaXMubm9ybWFsaXplWm9vbSh5ZSwhMCk6dGhpcy5ub3JtYWxpemVab29tKHllLCExKTtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209ViksYWUuZ2V0Vmlld3BvcnQoe3NjYWxlOlZ9KX1ub3JtYWxpemVab29tKGFlLHJlKXtsZXQgeWU9cmU/dGhpcy5NQU5VQUxfTUlOX1pPT006dGhpcy5BQlNPTFVURV9NSU5fWk9PTSxWPXJlP3RoaXMuTUFOVUFMX01BWF9aT09NOnRoaXMuQUJTT0xVVEVfTUFYX1pPT007cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGFlLHllKSxWKX1hc3luYyBjbGVhbnVwRG9jdW1lbnQoKXtpZih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlciYmKHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLmFib3J0KCksdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbCksdGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZSl7dHJ5e2F3YWl0IHRoaXMuY3VycmVudFJlbmRlclByb21pc2V9Y2F0Y2h7fXRoaXMuY3VycmVudFJlbmRlclByb21pc2U9bnVsbH10aGlzLmN1cnJlbnRSZW5kZXJUYXNrPW51bGwsdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaChhZT0+e3RyeXthZS5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goYWU9Pnt0cnl7YWUuY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpO2ZvcihsZXQgYWUgb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrc3x8W10pdHJ5e2FlLmNhbmNlbCgpfWNhdGNoe31pZih0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdLHRoaXMucmVuZGVyU3RhdGU9ImlkbGUiLHRoaXMucGFnZVJlbmRlcmluZz0hMSx0aGlzLnBhZ2VOdW1QZW5kaW5nPW51bGwsdGhpcy50aHVtYm5haWxEYXRhPVtdLHRoaXMucGFnZURhdGE9W10sdGhpcy5kb2N1bWVudElkPSIiLHRoaXMuY2FudmFzJiZ0aGlzLmN0eCYmdGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHQpLHRoaXMucGRmRG9jdW1lbnQpdHJ5e3RoaXMucGRmRG9jdW1lbnQuZGVzdHJveSgpfWNhdGNoKGFlKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIFBERiBkb2N1bWVudDoiLGFlKX10aGlzLnBkZkRvY3VtZW50PW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje1phKHIsdCl9fTtyZXR1cm4gZ2U9cn0pKCl9KTt2YXIgTDNhLCQzYT1mKCgpPT57bGUoKTtMM2E9cygoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNDBweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAucHJldmlldy1wZGYgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbWFnZSBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBpbWFnZSBmcm9tIFVSTCBleHRlbnNpb24gYW5kIHJlbmRlcnMgd2l0aCB0aGUgaW1hZ2Ugdmlld2VyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UiCiAgICAgICAgdXJsPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGZpbGVuYW1lPSJsYW5kc2NhcGUuanBnIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UERGIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIFBERiBhbmQgZGlzcGxheXMgd2l0aCB0aGUgUERGIHZpZXdlciBpbmNsdWRpbmcgdG9vbGJhci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LXBkZiIKICAgICAgICB1cmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBmaWxlbmFtZT0icmVzZWFyY2gtcGFwZXIucGRmIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29kZSBQcmV2aWV3IChUZXh0IENvbnRlbnQpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlR5cGVTY3JpcHQgY29kZSBkaXNwbGF5ZWQgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIHZpYSB0aGUgY29kZWJveC48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJleGFtcGxlLnRzIgogICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7CiAgc3RhdGljIHN0eWxlcyA9IGNzc1xgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIFxgOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgPGgxPkhlbGxvIFdvcmxkPC9oMT5cYDsKICB9Cn1gfQogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBmaWxlIGRldGVjdGVkIGJ5IGV4dGVuc2lvbiwgc2hvd24gd2l0aCB3YXZlZm9ybSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgZmlsZW5hbWU9InNvbmcubXAzIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyBmaWxlIGRldGVjdGVkIGZyb20gVVJMLCByZW5kZXJlZCB3aXRoIGN1c3RvbSB2aWRlbyBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBmaWxlbmFtZT0iYmlnLWJ1Y2stYnVubnkubXA0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RXhwbGljaXQgVHlwZSBPdmVycmlkZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Gb3JjZSBjb250ZW50IHR5cGUgdG8gJ3RleHQnIGV2ZW4gdGhvdWdoIHRoZSBVUkwgaGFzIG5vIGV4dGVuc2lvbi48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNvbnRlbnRUeXBlPSJ0ZXh0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BUaGlzIGlzIHBsYWluIHRleHQgY29udGVudC4KSXQgcHJlc2VydmVzIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzLgoKVXNlZnVsIGZvciBsb2cgZmlsZXMsIFJFQURNRXMsIGV0Yy5gfQogICAgICAgIGZpbGVuYW1lPSJub3Rlcy50eHQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Vbmtub3duIFR5cGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+V2hlbiBjb250ZW50IHR5cGUgY2Fubm90IGJlIGRldGVjdGVkLCBzaG93cyBhIHBsYWNlaG9sZGVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImRhdGEuYmluIgogICAgICAgIGNvbnRlbnRUeXBlPSJ1bmtub3duIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB1aSxQYSxEM2EsdE5hLGFOYSxyTmEsQTNhLFAzYT1mKCgpPT57bGUoKTtJUWUoKTtOUWUoKTtSUWUoKTt2UWUoKTtPUWUoKTt2YSgpOyQzYSgpO3VpPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxQYT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sRDNhPXtqcGc6ImltYWdlIixqcGVnOiJpbWFnZSIscG5nOiJpbWFnZSIsZ2lmOiJpbWFnZSIsd2VicDoiaW1hZ2UiLHN2ZzoiaW1hZ2UiLGJtcDoiaW1hZ2UiLGF2aWY6ImltYWdlIixpY286ImltYWdlIixwZGY6InBkZiIsbXAzOiJhdWRpbyIsd2F2OiJhdWRpbyIsb2dnOiJhdWRpbyIsZmxhYzoiYXVkaW8iLGFhYzoiYXVkaW8iLG00YToiYXVkaW8iLG9wdXM6ImF1ZGlvIix3ZWJhOiJhdWRpbyIsbXA0OiJ2aWRlbyIsd2VibToidmlkZW8iLG1vdjoidmlkZW8iLGF2aToidmlkZW8iLG1rdjoidmlkZW8iLG9ndjoidmlkZW8iLHRzOiJjb2RlIixqczoiY29kZSIsanN4OiJjb2RlIix0c3g6ImNvZGUiLGpzb246ImNvZGUiLGh0bWw6ImNvZGUiLGNzczoiY29kZSIsc2NzczoiY29kZSIsbGVzczoiY29kZSIscHk6ImNvZGUiLGphdmE6ImNvZGUiLGdvOiJjb2RlIixyczoiY29kZSIseWFtbDoiY29kZSIseW1sOiJjb2RlIix4bWw6ImNvZGUiLHNxbDoiY29kZSIsc2g6ImNvZGUiLGJhc2g6ImNvZGUiLHpzaDoiY29kZSIsbWQ6ImNvZGUiLGM6ImNvZGUiLGNwcDoiY29kZSIsaDoiY29kZSIsaHBwOiJjb2RlIixyYjoiY29kZSIscGhwOiJjb2RlIixzd2lmdDoiY29kZSIsa3Q6ImNvZGUiLHR4dDoidGV4dCIsbG9nOiJ0ZXh0Iixjc3Y6InRleHQiLGVudjoidGV4dCJ9LHROYT17ImltYWdlLyI6ImltYWdlIiwiYXVkaW8vIjoiYXVkaW8iLCJ2aWRlby8iOiJ2aWRlbyIsImFwcGxpY2F0aW9uL3BkZiI6InBkZiJ9LGFOYT17dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsanNvbjoianNvbiIsaHRtbDoieG1sIix4bWw6InhtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLGxlc3M6Imxlc3MiLHB5OiJweXRob24iLGphdmE6ImphdmEiLGdvOiJnbyIscnM6InJ1c3QiLHlhbWw6InlhbWwiLHltbDoieWFtbCIsc3FsOiJzcWwiLHNoOiJiYXNoIixiYXNoOiJiYXNoIix6c2g6ImJhc2giLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIscmI6InJ1YnkiLHBocDoicGhwIixzd2lmdDoic3dpZnQiLGt0OiJrb3RsaW4iLG1kOiJtYXJrZG93biJ9LHJOYT17aW1hZ2U6Imx1Y2lkZTpJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLGNvZGU6Imx1Y2lkZTpDb2RlIix0ZXh0OiJsdWNpZGU6RmlsZVRleHQiLHVua25vd246Imx1Y2lkZTpGaWxlIn0sQTNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy1wcmV2aWV3IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdLGdlLGFlPVtdLHJlPVtdLHllLFY9W10sSD1bXTt2YXIgb2U9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNQcmV2aWV3Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHNlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoKV0sZD1bJCh7YXR0cmlidXRlOiExfSldLHU9WyQoKV0seD1bJCgpXSx5PVskKCldLE49WyQoKV0sTz1bJCgpXSxCPVskKCldLEU9WyQoe3R5cGU6Qm9vbGVhbn0pXSxXPVskKHt0eXBlOkJvb2xlYW59KV0saGU9W0soKV0sbWU9W0soKV0sY2U9W0soKV0sUT1bSygpXSxnZT1bSygpXSx5ZT1bSygpXSx1aSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+InVybCJpbiB0ZSwiaGFzIiksZ2V0OnModGU9PnRlLnVybCwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLnVybD16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sbixsKSx1aSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJmaWxlImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUuZmlsZSwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLmZpbGU9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LGMscCksdWkodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYXNlNjQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJiYXNlNjQiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5iYXNlNjQsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS5iYXNlNjQ9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LG0sdiksdWkodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+InRleHRDb250ZW50ImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUudGV4dENvbnRlbnQsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS50ZXh0Q29udGVudD16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sYixnKSx1aSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4iY29udGVudFR5cGUiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5jb250ZW50VHlwZSwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLmNvbnRlbnRUeXBlPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxrLEMpLHVpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJsYW5ndWFnZSJpbiB0ZSwiaGFzIiksZ2V0OnModGU9PnRlLmxhbmd1YWdlLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUubGFuZ3VhZ2U9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LF8seiksdWkodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW1lVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+Im1pbWVUeXBlImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUubWltZVR5cGUsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS5taW1lVHlwZT16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sVCxQKSx1aSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4iZmlsZW5hbWUiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5maWxlbmFtZSwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLmZpbGVuYW1lPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxNLFMpLHVpKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rvb2xiYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJzaG93VG9vbGJhciJpbiB0ZSwiaGFzIiksZ2V0OnModGU9PnRlLnNob3dUb29sYmFyLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUuc2hvd1Rvb2xiYXI9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEEsRiksdWkodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZW5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJzaG93RmlsZW5hbWUiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5zaG93RmlsZW5hbWUsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS5zaG93RmlsZW5hbWU9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LGosRyksdWkodGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4icmVzb2x2ZWRUeXBlImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUucmVzb2x2ZWRUeXBlLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUucmVzb2x2ZWRUeXBlPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxSLFUpLHVpKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkU3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4icmVzb2x2ZWRTcmMiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5yZXNvbHZlZFNyYywiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLnJlc29sdmVkU3JjPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxJLHEpLHVpKHRoaXMsbnVsbCxjZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+InJlc29sdmVkVGV4dCJpbiB0ZSwiaGFzIiksZ2V0OnModGU9PnRlLnJlc29sdmVkVGV4dCwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLnJlc29sdmVkVGV4dD16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sdWUsWSksdWkodGhpcyxudWxsLFEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZExhbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJyZXNvbHZlZExhbmciaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5yZXNvbHZlZExhbmcsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS5yZXNvbHZlZExhbmc9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEosWiksdWkodGhpcyxudWxsLGdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+ImxvYWRpbmciaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5sb2FkaW5nLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUubG9hZGluZz16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sYWUscmUpLHVpKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4iZXJyb3IiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5lcnJvciwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLmVycm9yPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxWLEgpLHVpKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnNlfSxudWxsLHQpLG9lPXI9ZS52YWx1ZSxzZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpzZX0pfXN0YXRpYyBkZW1vPUwzYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIiwiRGF0YSBWaWV3Il07I2U9UGEodGhpcyxuLCIiKTtnZXQgdXJsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHVybChzZSl7dGhpcy4jZT1zZX0jdD0oUGEodGhpcyxsKSxQYSh0aGlzLGMsdm9pZCAwKSk7Z2V0IGZpbGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZmlsZShzZSl7dGhpcy4jdD1zZX0jYT0oUGEodGhpcyxwKSxQYSh0aGlzLG0sIiIpKTtnZXQgYmFzZTY0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJhc2U2NChzZSl7dGhpcy4jYT1zZX0jcj0oUGEodGhpcyx2KSxQYSh0aGlzLGIsIiIpKTtnZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGV4dENvbnRlbnQoc2Upe3RoaXMuI3I9c2V9I3M9KFBhKHRoaXMsZyksUGEodGhpcyxrLHZvaWQgMCkpO2dldCBjb250ZW50VHlwZSgpe3JldHVybiB0aGlzLiNzfXNldCBjb250ZW50VHlwZShzZSl7dGhpcy4jcz1zZX0jaT0oUGEodGhpcyxDKSxQYSh0aGlzLF8sIiIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbGFuZ3VhZ2Uoc2Upe3RoaXMuI2k9c2V9I289KFBhKHRoaXMseiksUGEodGhpcyxULCIiKSk7Z2V0IG1pbWVUeXBlKCl7cmV0dXJuIHRoaXMuI299c2V0IG1pbWVUeXBlKHNlKXt0aGlzLiNvPXNlfSNuPShQYSh0aGlzLFApLFBhKHRoaXMsTSwiIikpO2dldCBmaWxlbmFtZSgpe3JldHVybiB0aGlzLiNufXNldCBmaWxlbmFtZShzZSl7dGhpcy4jbj1zZX0jbD0oUGEodGhpcyxTKSxQYSh0aGlzLEEsITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2hvd1Rvb2xiYXIoc2Upe3RoaXMuI2w9c2V9I2M9KFBhKHRoaXMsRiksUGEodGhpcyxqLCEwKSk7Z2V0IHNob3dGaWxlbmFtZSgpe3JldHVybiB0aGlzLiNjfXNldCBzaG93RmlsZW5hbWUoc2Upe3RoaXMuI2M9c2V9I2Q9KFBhKHRoaXMsRyksUGEodGhpcyxSLCJ1bmtub3duIikpO2dldCByZXNvbHZlZFR5cGUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgcmVzb2x2ZWRUeXBlKHNlKXt0aGlzLiNkPXNlfSN1PShQYSh0aGlzLFUpLFBhKHRoaXMsSSwiIikpO2dldCByZXNvbHZlZFNyYygpe3JldHVybiB0aGlzLiN1fXNldCByZXNvbHZlZFNyYyhzZSl7dGhpcy4jdT1zZX0jcD0oUGEodGhpcyxxKSxQYSh0aGlzLHVlLCIiKSk7Z2V0IHJlc29sdmVkVGV4dCgpe3JldHVybiB0aGlzLiNwfXNldCByZXNvbHZlZFRleHQoc2Upe3RoaXMuI3A9c2V9I2Y9KFBhKHRoaXMsWSksUGEodGhpcyxKLCJ0ZXh0IikpO2dldCByZXNvbHZlZExhbmcoKXtyZXR1cm4gdGhpcy4jZn1zZXQgcmVzb2x2ZWRMYW5nKHNlKXt0aGlzLiNmPXNlfSNoPShQYSh0aGlzLFopLFBhKHRoaXMsYWUsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNofXNldCBsb2FkaW5nKHNlKXt0aGlzLiNoPXNlfSNtPShQYSh0aGlzLHJlKSxQYSh0aGlzLFYsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZXJyb3Ioc2Upe3RoaXMuI209c2V9b2JqZWN0VXJsPShQYSh0aGlzLEgpLCIiKTtyZW5kZXIoKXtsZXQgc2U9dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHx0aGlzLmdldEZpbGVuYW1lRnJvbVVybCgpfHwiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWljb24gewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1maWxlbmFtZSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYWRnZSB7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhID4gKiB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtaW1hZ2Utdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wZGYtdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy12aWRlby12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtZGF0YXZpZXctY29kZWJveCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC50ZXh0LXZpZXdlciB7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlciBkZWVzLWljb24gewogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItY29udGFpbmVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93RmlsZW5hbWUmJnNlP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYmFyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaGVhZGVyLWljb24iIGljb249IiR7ck5hW3RoaXMucmVzb2x2ZWRUeXBlXX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWZpbGVuYW1lIj4ke3NlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRlci1iYWRnZSI+JHt0aGlzLnJlc29sdmVkVHlwZX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QWxlcnRUcmlhbmdsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLnJlbmRlckNvbnRlbnQoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNvbnRlbnQoKXtzd2l0Y2godGhpcy5yZXNvbHZlZFR5cGUpe2Nhc2UiaW1hZ2UiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHt0aGlzLnNob3dUb29sYmFyfQogICAgICAgICAgICBhbHQ9IiR7dGhpcy5maWxlbmFtZXx8IiJ9IgogICAgICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICAgICAgYDtjYXNlInBkZiI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgICAgIC5wZGZVcmw9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHt0aGlzLnNob3dUb29sYmFyfQogICAgICAgICAgICBpbml0aWFsWm9vbT0icGFnZS1maXQiCiAgICAgICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICAgICAgYDtjYXNlImF1ZGlvIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnRpdGxlPSR7dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHwiIn0KICAgICAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJ2aWRlbyI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiY29kZSI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94CiAgICAgICAgICAgIC5wcm9nTGFuZz0ke3RoaXMucmVzb2x2ZWRMYW5nfQogICAgICAgICAgICAuY29kZVRvRGlzcGxheT0ke3RoaXMucmVzb2x2ZWRUZXh0fQogICAgICAgICAgPjwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgICAgIGA7Y2FzZSJ0ZXh0IjpyZXR1cm4gd2A8cHJlIGNsYXNzPSJ0ZXh0LXZpZXdlciI+JHt0aGlzLnJlc29sdmVkVGV4dH08L3ByZT5gO2RlZmF1bHQ6cmV0dXJuIHdgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVRdWVzdGlvbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgfX1hc3luYyB1cGRhdGVkKHNlKXtzdXBlci51cGRhdGVkKHNlKSxbInVybCIsImZpbGUiLCJiYXNlNjQiLCJ0ZXh0Q29udGVudCIsImNvbnRlbnRUeXBlIiwibGFuZ3VhZ2UiLCJtaW1lVHlwZSIsImZpbGVuYW1lIl0uc29tZShPZT0+c2UuaGFzKE9lKSkmJmF3YWl0IHRoaXMucmVzb2x2ZUNvbnRlbnQoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXZva2VPYmplY3RVcmwoKX1hc3luYyByZXNvbHZlQ29udGVudCgpe3RoaXMuZXJyb3I9IiIsdGhpcy5yZXZva2VPYmplY3RVcmwoKSx0aGlzLnJlc29sdmVkVHlwZT10aGlzLmRldGVjdFR5cGUoKTt0cnl7aWYodGhpcy51cmwpe2lmKHRoaXMucmVzb2x2ZWRTcmM9dGhpcy51cmwsdGhpcy5yZXNvbHZlZFR5cGU9PT0iY29kZSJ8fHRoaXMucmVzb2x2ZWRUeXBlPT09InRleHQiKWlmKHRoaXMudGV4dENvbnRlbnQpdGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudDtlbHNle3RoaXMubG9hZGluZz0hMDtsZXQgc2U9YXdhaXQgZmV0Y2godGhpcy51cmwpO3RoaXMucmVzb2x2ZWRUZXh0PWF3YWl0IHNlLnRleHQoKSx0aGlzLmxvYWRpbmc9ITF9fWVsc2UgaWYodGhpcy5maWxlKXRoaXMub2JqZWN0VXJsPVVSTC5jcmVhdGVPYmplY3RVUkwodGhpcy5maWxlKSx0aGlzLnJlc29sdmVkU3JjPXRoaXMub2JqZWN0VXJsLCh0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMucmVzb2x2ZWRUZXh0PWF3YWl0IHRoaXMuZmlsZS50ZXh0KCksdGhpcy5sb2FkaW5nPSExKTtlbHNlIGlmKHRoaXMuYmFzZTY0KXtsZXQgc2U9dGhpcy5taW1lVHlwZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7dGhpcy5yZXNvbHZlZFNyYz1gZGF0YToke3NlfTtiYXNlNjQsJHt0aGlzLmJhc2U2NH1gfWVsc2UgdGhpcy50ZXh0Q29udGVudCYmKHRoaXMucmVzb2x2ZWRUZXh0PXRoaXMudGV4dENvbnRlbnQpfWNhdGNoe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGNvbnRlbnQiLHRoaXMubG9hZGluZz0hMX10aGlzLnJlc29sdmVkTGFuZz10aGlzLnJlc29sdmVMYW5ndWFnZSgpfWRldGVjdFR5cGUoKXtpZih0aGlzLmNvbnRlbnRUeXBlKXJldHVybiB0aGlzLmNvbnRlbnRUeXBlO2xldCBzZT10aGlzLm1pbWVUeXBlfHx0aGlzLmZpbGU/LnR5cGV8fCIiO2lmKHNlKXtpZihzZT09PSJhcHBsaWNhdGlvbi9wZGYiKXJldHVybiJwZGYiO2ZvcihsZXRbemUsT2Vdb2YgT2JqZWN0LmVudHJpZXModE5hKSlpZihzZS5zdGFydHNXaXRoKHplKSlyZXR1cm4gT2U7aWYoc2Uuc3RhcnRzV2l0aCgidGV4dC8iKSlyZXR1cm4idGV4dCJ9bGV0IHRlPXRoaXMuZ2V0RXh0ZW5zaW9uKCk7cmV0dXJuIHRlJiZEM2FbdGVdP0QzYVt0ZV06dGhpcy50ZXh0Q29udGVudD90aGlzLmxhbmd1YWdlPyJjb2RlIjoidGV4dCI6InVua25vd24ifWdldEV4dGVuc2lvbigpe2xldCBzZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIiO2lmKHNlKXtsZXQgdGU9c2Uuc3BsaXQoIi4iKTtpZih0ZS5sZW5ndGg+MSlyZXR1cm4gdGUucG9wKCkudG9Mb3dlckNhc2UoKX1pZih0aGlzLnVybCl0cnl7bGV0IHplPW5ldyBVUkwodGhpcy51cmwsImh0dHBzOi8vcGxhY2Vob2xkZXIuY29tIikucGF0aG5hbWUuc3BsaXQoIi4iKTtpZih6ZS5sZW5ndGg+MSlyZXR1cm4gemUucG9wKCkudG9Mb3dlckNhc2UoKX1jYXRjaHt9cmV0dXJuIiJ9Z2V0RmlsZW5hbWVGcm9tVXJsKCl7aWYoIXRoaXMudXJsKXJldHVybiIiO3RyeXtyZXR1cm4gbmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLyIpLnBvcCgpfHwiIn1jYXRjaHtyZXR1cm4iIn19cmVzb2x2ZUxhbmd1YWdlKCl7aWYodGhpcy5sYW5ndWFnZSlyZXR1cm4gdGhpcy5sYW5ndWFnZTtsZXQgc2U9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gYU5hW3NlXXx8InRleHQifXJldm9rZU9iamVjdFVybCgpe3RoaXMub2JqZWN0VXJsJiYoVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLm9iamVjdFVybCksdGhpcy5vYmplY3RVcmw9IiIpfXN0YXRpY3tQYShyLHQpfX07cmV0dXJuIG9lPXJ9KSgpfSk7dmFyIEUzYT1mKCgpPT57UDNhKCl9KTt2YXIgWm0sRlFlPWYoKCk9PntabT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJDYW52YXNQb29sIil9c3RhdGljIHBvb2w9W107c3RhdGljIG1heFBvb2xTaXplPTIwO3N0YXRpYyBNSU5fQ0FOVkFTX1NJWkU9MjU2O3N0YXRpYyBNQVhfQ0FOVkFTX1NJWkU9NDA5NjtzdGF0aWMgYWNxdWlyZShlLHQpe2xldCByPXRoaXMucG9vbC5maW5kKGw9PiFsLmluVXNlJiZsLmNhbnZhcy53aWR0aD49ZSYmbC5jYW52YXMuaGVpZ2h0Pj10JiZsLmNhbnZhcy53aWR0aDw9ZSoxLjUmJmwuY2FudmFzLmhlaWdodDw9dCoxLjUpO2lmKHIpcmV0dXJuIHIuaW5Vc2U9ITAsci5sYXN0VXNlZD1EYXRlLm5vdygpLHIuY2FudmFzLndpZHRoPWUsci5jYW52YXMuaGVpZ2h0PXQsci5jdHguY2xlYXJSZWN0KDAsMCxlLHQpLHI7aWYodGhpcy5wb29sLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxkPWwuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMCxkZXN5bmNocm9uaXplZDohMH0pO2wud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgoZSx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpLGwuaGVpZ2h0PU1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKTtsZXQgYz17Y2FudmFzOmwsY3R4OmQsaW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMucG9vbC5wdXNoKGMpLGN9bGV0IGk9dGhpcy5wb29sLmZpbHRlcihsPT4hbC5pblVzZSkuc29ydCgobCxkKT0+bC5sYXN0VXNlZC1kLmxhc3RVc2VkKVswXTtpZihpKXJldHVybiBpLmNhbnZhcy53aWR0aD1lLGkuY2FudmFzLmhlaWdodD10LGkuY3R4LmNsZWFyUmVjdCgwLDAsZSx0KSxpLmluVXNlPSEwLGkubGFzdFVzZWQ9RGF0ZS5ub3coKSxpO2xldCBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG49by5nZXRDb250ZXh0KCIyZCIpO3JldHVybiBvLndpZHRoPWUsby5oZWlnaHQ9dCx7Y2FudmFzOm8sY3R4Om4saW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX19c3RhdGljIHJlbGVhc2UoZSl7dGhpcy5wb29sLmluY2x1ZGVzKGUpJiYoZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCkpfXN0YXRpYyByZWxlYXNlQWxsKCl7Zm9yKGxldCBlIG9mIHRoaXMucG9vbCllLmluVXNlPSExLGUuY3R4LmNsZWFyUmVjdCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KX1zdGF0aWMgZGVzdHJveSgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5jYW52YXMud2lkdGg9MCxlLmNhbnZhcy5oZWlnaHQ9MDt0aGlzLnBvb2w9W119c3RhdGljIGdldFN0YXRzKCl7cmV0dXJue3Bvb2xTaXplOnRoaXMucG9vbC5sZW5ndGgsbWF4UG9vbFNpemU6dGhpcy5tYXhQb29sU2l6ZSxpblVzZTp0aGlzLnBvb2wuZmlsdGVyKGU9PmUuaW5Vc2UpLmxlbmd0aCxhdmFpbGFibGU6dGhpcy5wb29sLmZpbHRlcihlPT4hZS5pblVzZSkubGVuZ3RofX1zdGF0aWMgYWRqdXN0UG9vbFNpemUoZSl7aWYoZTx0aGlzLnBvb2wubGVuZ3RoKXtsZXQgdD10aGlzLnBvb2wubGVuZ3RoLWUscj10aGlzLnBvb2wuZmlsdGVyKGk9PiFpLmluVXNlKS5zbGljZSgwLHQpO2ZvcihsZXQgaSBvZiByKXtsZXQgbz10aGlzLnBvb2wuaW5kZXhPZihpKTtvPi0xJiZ0aGlzLnBvb2wuc3BsaWNlKG8sMSl9fXRoaXMubWF4UG9vbFNpemU9ZX19fSk7ZnVuY3Rpb24gc05hKGEsZSl7bGV0IHQ7cmV0dXJuIHMoZnVuY3Rpb24oLi4uaSl7bGV0IG89cygoKT0+e2NsZWFyVGltZW91dCh0KSxhKC4uLmkpfSwibGF0ZXIiKTtjbGVhclRpbWVvdXQodCksdD13aW5kb3cuc2V0VGltZW91dChvLGUpfSwiZXhlY3V0ZWRGdW5jdGlvbiIpfWZ1bmN0aW9uIGlOYShhLGUpe2xldCB0O3JldHVybiguLi5yKT0+e3R8fChhKC4uLnIpLHQ9ITAsc2V0VGltZW91dCgoKT0+dD0hMSxlKSl9fWZ1bmN0aW9uIEJRZShhKXtpZihhPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IGU9MTAyNCx0PVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxyPU1hdGguZmxvb3IoTWF0aC5sb2coYSkvTWF0aC5sb2coZSkpO3JldHVybiBNYXRoLnJvdW5kKGEvTWF0aC5wb3coZSxyKSoxMDApLzEwMCsiICIrdFtyXX1mdW5jdGlvbiBvTmEoYSxlPTApe2xldCB0PWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHQudG9wPj0tZSYmdC5sZWZ0Pj0tZSYmdC5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpK2UmJnQucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKStlfXZhciBYbSxIUWU9ZigoKT0+e3Moc05hLCJkZWJvdW5jZSIpO3MoaU5hLCJ0aHJvdHRsZSIpO3MoQlFlLCJmb3JtYXRGaWxlU2l6ZSIpO3Mob05hLCJpc0luVmlld3BvcnQiKTtYbT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJQZXJmb3JtYW5jZU1vbml0b3IiKX1zdGF0aWMgbWFya3M9bmV3IE1hcDtzdGF0aWMgbWVhc3VyZXM9W107c3RhdGljIG1hcmsoZSl7dGhpcy5tYXJrcy5zZXQoZSxwZXJmb3JtYW5jZS5ub3coKSl9c3RhdGljIG1lYXN1cmUoZSx0KXtsZXQgcj10aGlzLm1hcmtzLmdldCh0KTtpZihyKXtsZXQgaT1wZXJmb3JtYW5jZS5ub3coKS1yO3JldHVybiB0aGlzLm1lYXN1cmVzLnB1c2goe25hbWU6ZSxkdXJhdGlvbjppfSksdGhpcy5tYXJrcy5kZWxldGUodCksaX1yZXR1cm4gMH1zdGF0aWMgZ2V0UmVwb3J0KCl7bGV0IGU9e21lYXN1cmVzOlsuLi50aGlzLm1lYXN1cmVzXSxhdmVyYWdlczp7fX0sdD1uZXcgTWFwO2ZvcihsZXQgciBvZiB0aGlzLm1lYXN1cmVzKXQuaGFzKHIubmFtZSl8fHQuc2V0KHIubmFtZSxbXSksdC5nZXQoci5uYW1lKS5wdXNoKHIuZHVyYXRpb24pO2ZvcihsZXRbcixpXW9mIHQpZS5hdmVyYWdlc1tyXT1pLnJlZHVjZSgobyxuKT0+bytuLDApL2kubGVuZ3RoO3JldHVybiBlfXN0YXRpYyBjbGVhcigpe3RoaXMubWFya3MuY2xlYXIoKSx0aGlzLm1lYXN1cmVzPVtdfX19KTt2YXIgSTNhPWYoKCk9PntGUWUoKTtZc2UoKTtIUWUoKX0pO3ZhciBOM2E9ZigoKT0+e09RZSgpfSk7dmFyIEJpLEFjPWYoKCk9PntsZSgpO0JpPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGhlaWdodDogMjYwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgZWFzZTsKICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjI0KSIpfTsKCiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIHsKICAgICAgYm94LXNoYWRvdzogMCA4cHggMjRweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC50aWxlLW92ZXJsYXkgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC50aWxlLWNvbnRlbnQgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC43KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgei1pbmRleDogMjA7CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IHNwYW4gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KCiAgICAudGlsZS1pbmZvLWJhciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjk1KSIsImhzbCgyMTUgMjAlIDEyJSAvIDAuOTUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDZweDsKICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7CiAgICAgIHotaW5kZXg6IDI1OwogICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgfQoKICAgIC5pbmZvLWxhYmVsIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIG1pbi13aWR0aDogMDsKICAgIH0KCiAgICAuaW5mby1zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgfQoKICAgIC5pbmZvLWRldGFpbCB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnRpbGUtbG9hZGluZywKICAgIC50aWxlLWVycm9yIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnRpbGUtbG9hZGluZyB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5OSUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgIH0KCiAgICAudGlsZS1lcnJvciB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgOTglKSIsImhzbCgwIDYyJSAyMCUpIil9OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA0MCUpIiwiaHNsKDAgNzAlIDY4JSkiKX07CiAgICB9CgogICAgLnRpbGUtZXJyb3IgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgfQoKICAgIC50aWxlLXNwaW5uZXIgewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgLnRpbGUtbG9hZGluZy10ZXh0LAogICAgLnRpbGUtZXJyb3ItdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQoKICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgIDpob3N0KFtzaXplPSJzbWFsbCJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMTUwcHg7CiAgICAgIGhlaWdodDogMTk1cHg7CiAgICB9CgogICAgOmhvc3QoW3NpemU9ImxhcmdlIl0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAyNTBweDsKICAgICAgaGVpZ2h0OiAzMjVweDsKICAgIH0KCiAgICAvKiBHcmlkIG9wdGltaXphdGlvbnMgKi8KICAgIDpob3N0KFtncmlkLW1vZGVdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWxsLWNoYW5nZTogYXV0bzsKICAgIH0KICBgXX0pO3ZhciBzRyxjbCxsbyxPND1mKCgpPT57bGUoKTtBYygpO3ZhKCk7c0c9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGNsPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxsbz0oKCk9PntsZXQgYT1wZSxlLHQ9W10scj1bXSxpLG89W10sbj1bXSxsLGQ9W10sYz1bXSxwLHU9W10sbT1bXSx2LHg9W10sYj1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tzKHRoaXMsIkRlZXNUaHVtYm5haWxCYXNlIil9c3RhdGlje2xldCB5PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9WyQoe3R5cGU6Qm9vbGVhbn0pXSxpPVskKHt0eXBlOkJvb2xlYW59KV0sbD1bJCh7dHlwZTpCb29sZWFufSldLHA9WyQoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sdj1bJCh7dHlwZTpTdHJpbmd9KV0sc0codGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjbGlja2FibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoaz0+ImNsaWNrYWJsZSJpbiBrLCJoYXMiKSxnZXQ6cyhrPT5rLmNsaWNrYWJsZSwiZ2V0Iiksc2V0OnMoKGssQyk9PntrLmNsaWNrYWJsZT1DfSwic2V0Iil9LG1ldGFkYXRhOnl9LHQsciksc0codGhpcyxudWxsLGkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGs9PiJsb2FkaW5nImluIGssImhhcyIpLGdldDpzKGs9PmsubG9hZGluZywiZ2V0Iiksc2V0OnMoKGssQyk9PntrLmxvYWRpbmc9Q30sInNldCIpfSxtZXRhZGF0YTp5fSxvLG4pLHNHKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoaz0+ImVycm9yImluIGssImhhcyIpLGdldDpzKGs9PmsuZXJyb3IsImdldCIpLHNldDpzKChrLEMpPT57ay5lcnJvcj1DfSwic2V0Iil9LG1ldGFkYXRhOnl9LGQsYyksc0codGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGs9PiJzaXplImluIGssImhhcyIpLGdldDpzKGs9Pmsuc2l6ZSwiZ2V0Iiksc2V0OnMoKGssQyk9PntrLnNpemU9Q30sInNldCIpfSxtZXRhZGF0YTp5fSx1LG0pLHNHKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoaz0+ImxhYmVsImluIGssImhhcyIpLGdldDpzKGs9PmsubGFiZWwsImdldCIpLHNldDpzKChrLEMpPT57ay5sYWJlbD1DfSwic2V0Iil9LG1ldGFkYXRhOnl9LHgsYikseSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp5fSl9c3RhdGljIHN0eWxlcz1CaTsjZT1jbCh0aGlzLHQsITApO2dldCBjbGlja2FibGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY2xpY2thYmxlKHkpe3RoaXMuI2U9eX0jdD0oY2wodGhpcyxyKSxjbCh0aGlzLG8sITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiN0fXNldCBsb2FkaW5nKHkpe3RoaXMuI3Q9eX0jYT0oY2wodGhpcyxuKSxjbCh0aGlzLGQsITEpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZXJyb3IoeSl7dGhpcy4jYT15fSNyPShjbCh0aGlzLGMpLGNsKHRoaXMsdSwiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBzaXplKHkpe3RoaXMuI3I9eX0jcz0oY2wodGhpcyxtKSxjbCh0aGlzLHgsIiIpKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jc31zZXQgbGFiZWwoeSl7dGhpcy4jcz15fW9ic2VydmVyPWNsKHRoaXMsYik7X3Zpc2libGU9ITE7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLl92aXNpYmxlfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRpbGUtY29udGFpbmVyICR7dGhpcy5jbGlja2FibGU/ImNsaWNrYWJsZSI6IiJ9ICR7dGhpcy5sb2FkaW5nPyJsb2FkaW5nIjoiIn0gJHt0aGlzLmVycm9yPyJlcnJvciI6IiJ9IgogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVGlsZUNsaWNrfQogICAgICAgIEBtb3VzZWVudGVyPSR7dGhpcy5vblRpbGVNb3VzZUVudGVyfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5vblRpbGVNb3VzZUxlYXZlfQogICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLm9uVGlsZU1vdXNlTW92ZX0KICAgICAgPgogICAgICAgICR7dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWxvYWRpbmciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWxvYWRpbmctdGV4dCI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWVycm9yIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QWxlcnRUcmlhbmdsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3ItdGV4dCI+RmFpbGVkIHRvIGxvYWQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7IXRoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/dGhpcy5yZW5kZXJUaWxlQ29udGVudCgpOiIifQoKICAgICAgICAke3RoaXMucmVuZGVyQm90dG9tQmFyKCl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4iIn1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMub2JzZXJ2ZXImJih0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLm9ic2VydmVyPXZvaWQgMCl9c2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpe3RoaXMub2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHk9Pntmb3IobGV0IGsgb2YgeSl7bGV0IEM9dGhpcy5fdmlzaWJsZTt0aGlzLl92aXNpYmxlPWsuaXNJbnRlcnNlY3RpbmcsdGhpcy5fdmlzaWJsZSYmIUMmJnRoaXMub25CZWNhbWVWaXNpYmxlKCl9fSx7cm9vdDpudWxsLHJvb3RNYXJnaW46IjIwMHB4Iix0aHJlc2hvbGQ6LjAxfSksdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMpfW9uQmVjYW1lVmlzaWJsZSgpe31vblRpbGVNb3VzZUVudGVyKCl7fW9uVGlsZU1vdXNlTGVhdmUoKXt9b25UaWxlTW91c2VNb3ZlKHkpe31oYW5kbGVUaWxlQ2xpY2soKXt0aGlzLmNsaWNrYWJsZSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGlsZS1jbGljayIse2RldGFpbDp0aGlzLmdldFRpbGVDbGlja0RldGFpbCgpLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue319fX0pKCl9KTt2YXIgUjNhPWYoKCk9PntPNCgpO0FjKCl9KTt2YXIgTzNhLEYzYT1mKCgpPT57bGUoKTtPM2E9WGAKICAucHJldmlldy1zdGFjayB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBhZGRpbmc6IDhweCA4cHggMjhweCA4cHg7CiAgfQoKICAucHJldmlldy1zdGFjay5ub24tYTQgewogICAgcGFkZGluZzogMTJweCAxMnB4IDI4cHggMTJweDsKICB9CgogIC5wcmV2aWV3LWNhbnZhcyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWF4LWhlaWdodDogMTAwJTsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgIGltYWdlLXJlbmRlcmluZzogYXV0bzsKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgfQoKICAubm9uLWE0IC5wcmV2aWV3LWNhbnZhcyB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDI0JSkiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAvKiBHcmlkIG9wdGltaXphdGlvbnMgKi8KICA6aG9zdChbZ3JpZC1tb2RlXSkgLnByZXZpZXctY2FudmFzIHsKICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgfQpgfSk7dmFyIEIzYSxIM2E9ZigoKT0+e2xlKCk7QjNhPXMoKCk9PntsZXQgYT1bImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIsImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiJdLGU9cyh0PT57bGV0IHI9W107Zm9yKGxldCBpPTA7aTx0O2krKyl7bGV0IG89YVtpJWEubGVuZ3RoXTtyLnB1c2god2AKICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9IiR7b30iCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICBncmlkLW1vZGUKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7bj0+e2NvbnNvbGUubG9nKCJQREYgVGlsZSBjbGlja2VkOiIsbi5kZXRhaWwpLGFsZXJ0KGBQREYgY2xpY2tlZDogJHtuLmRldGFpbC5wYWdlQ291bnR9IHBhZ2VzYCl9fQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgYCl9cmV0dXJuIHJ9LCJnZW5lcmF0ZUdyaWRJdGVtcyIpO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2luZ2xlIFBERiBUaWxlPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+RGlmZmVyZW50IFNpemVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5TbWFsbDo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkRlZmF1bHQ6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkxhcmdlOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5XaXRoIExhYmVsPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGxhYmVsPSJSZXNlYXJjaCBQYXBlci5wZGYiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPk5vbi1DbGlja2FibGU8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJmYWxzZSIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+R3JpZCAtIDIwIFBERnMgd2l0aCBMYXp5IExvYWRpbmc8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAke2UoMjApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgRjQsY28scTNhLFYzYT1mKCgpPT57bGUoKTtPNCgpO0FjKCk7WXNlKCk7RlFlKCk7SFFlKCk7RjNhKCk7SDNhKCk7RjQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGNvPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxxM2E9KCgpPT57bGV0IGE9W2llKCJkZWVzLXRodW1ibmFpbC1wZGYiKV0sZSx0PVtdLHIsaT1sbyxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1RodW1ibmFpbFBkZiIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6TnVtYmVyfSldLHU9WyQoe3R5cGU6TnVtYmVyfSldLHg9WyQoe3R5cGU6Qm9vbGVhbn0pXSx5PVskKHt0eXBlOkJvb2xlYW59KV0sTj1bJCh7dHlwZTpCb29sZWFufSldLE89W0soKV0sRjQodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZGZVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InBkZlVybCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnBkZlVybCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnBkZlVybD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG4sbCksRjQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UHJldmlld1BhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImN1cnJlbnRQcmV2aWV3UGFnZSJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmN1cnJlbnRQcmV2aWV3UGFnZSwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmN1cnJlbnRQcmV2aWV3UGFnZT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGMscCksRjQodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InBhZ2VDb3VudCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnBhZ2VDb3VudCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnBhZ2VDb3VudD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sdiksRjQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5kZXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4icmVuZGVyZWQiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5yZW5kZXJlZCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnJlbmRlcmVkPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSxGNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImlzSG92ZXJpbmciaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5pc0hvdmVyaW5nLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuaXNIb3ZlcmluZz1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGssQyksRjQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0E0Rm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJpc0E0Rm9ybWF0ImluIFMsImhhcyIpLGdldDpzKFM9PlMuaXNBNEZvcm1hdCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmlzQTRGb3JtYXQ9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxfLHopLEY0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImZpbGVTaXplImluIFMsImhhcyIpLGdldDpzKFM9PlMuZmlsZVNpemUsImdldCIpLHNldDpzKChTLEUpPT57Uy5maWxlU2l6ZT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LFQsUCksRjQobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCx0KSxCPXI9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1CM2E7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdO3N0YXRpYyBzdHlsZXM9Wy4uLkJpLE8zYV07I2U9Y28odGhpcyxuLCIiKTtnZXQgcGRmVXJsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBkZlVybChNKXt0aGlzLiNlPU19I3Q9KGNvKHRoaXMsbCksY28odGhpcyxjLDEpKTtnZXQgY3VycmVudFByZXZpZXdQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1cnJlbnRQcmV2aWV3UGFnZShNKXt0aGlzLiN0PU19I2E9KGNvKHRoaXMscCksY28odGhpcyxtLDApKTtnZXQgcGFnZUNvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBhZ2VDb3VudChNKXt0aGlzLiNhPU19I3I9KGNvKHRoaXMsdiksY28odGhpcyxiLCExKSk7Z2V0IHJlbmRlcmVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHJlbmRlcmVkKE0pe3RoaXMuI3I9TX0jcz0oY28odGhpcyxnKSxjbyh0aGlzLGssITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNzfXNldCBpc0hvdmVyaW5nKE0pe3RoaXMuI3M9TX0jaT0oY28odGhpcyxDKSxjbyh0aGlzLF8sITApKTtnZXQgaXNBNEZvcm1hdCgpe3JldHVybiB0aGlzLiNpfXNldCBpc0E0Rm9ybWF0KE0pe3RoaXMuI2k9TX0jbz0oY28odGhpcyx6KSxjbyh0aGlzLFQsMCkpO2dldCBmaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNvfXNldCBmaWxlU2l6ZShNKXt0aGlzLiNvPU19cmVuZGVyUGFnZXNUYXNrPShjbyh0aGlzLFApLG51bGwpO3JlbmRlclBhZ2VzUXVldWVkPSExO3BkZkRvY3VtZW50O2NhbnZhc2VzPVtdO3Jlc2l6ZU9ic2VydmVyO3N0YWNrRWxlbWVudD1udWxsO2xvYWRlZFBkZlVybD1udWxsO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctc3RhY2sgJHt0aGlzLmlzQTRGb3JtYXQ/IiI6Im5vbi1hNCJ9Ij4KICAgICAgICA8Y2FudmFzCiAgICAgICAgICBjbGFzcz0icHJldmlldy1jYW52YXMiCiAgICAgICAgICBkYXRhLXBhZ2U9IiR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9IgogICAgICAgID48L2NhbnZhcz4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5WaWV3IFBERjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMucGFnZUNvdW50JiYhdGhpcy5sYWJlbD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWluZm8tYmFyIj4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCIgdGl0bGU9IiR7dGhpcy5sYWJlbH0iPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1zcGFjZXIiPjwvc3Bhbj4KICAgICAgICAke3RoaXMucGFnZUNvdW50PjEmJnRoaXMuaXNIb3ZlcmluZz93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0vJHt0aGlzLnBhZ2VDb3VudH08L3NwYW4+YDp0aGlzLnBhZ2VDb3VudD4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMucGFnZUNvdW50fSBwZzwvc3Bhbj5gOiIifQogICAgICAgICR7dGhpcy5maWxlU2l6ZT4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke0JRZSh0aGlzLmZpbGVTaXplKX08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntwZGZVcmw6dGhpcy5wZGZVcmwscGFnZUNvdW50OnRoaXMucGFnZUNvdW50fX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5yZW5kZXJlZCYmdGhpcy5wZGZVcmwmJnRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2UhPT0xJiYodGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9b25UaWxlTW91c2VNb3ZlKE0pe2lmKCF0aGlzLmlzSG92ZXJpbmd8fHRoaXMucGFnZUNvdW50PD0xKXJldHVybjtsZXQgUz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEU9TS5jbGllbnRYLVMubGVmdCxBPVMud2lkdGgsRj1NYXRoLm1heCgwLE1hdGgubWluKDEsRS9BKSksVz1NYXRoLmNlaWwoRip0aGlzLnBhZ2VDb3VudCl8fDE7VyE9PXRoaXMuY3VycmVudFByZXZpZXdQYWdlJiYodGhpcy5jdXJyZW50UHJldmlld1BhZ2U9Vyx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jYWNoZUVsZW1lbnRzKCksdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYW51cCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1hc3luYyBsb2FkQW5kUmVuZGVyUHJldmlldygpe2lmKCEodGhpcy5yZW5kZXJlZHx8dGhpcy5sb2FkaW5nKSl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9ITEsWG0ubWFyayhgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7dHJ5e3RoaXMucGRmRG9jdW1lbnQ9YXdhaXQgbGwubG9hZERvY3VtZW50KHRoaXMucGRmVXJsKSx0aGlzLnBhZ2VDb3VudD10aGlzLnBkZkRvY3VtZW50Lm51bVBhZ2VzLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTE7dHJ5e2xldCBTPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0RG93bmxvYWRJbmZvKCk7dGhpcy5maWxlU2l6ZT1TLmxlbmd0aH1jYXRjaHt9dGhpcy5sb2FkZWRQZGZVcmw9dGhpcy5wZGZVcmwsdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jYWNoZUVsZW1lbnRzKCksYXdhaXQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCksdGhpcy5yZW5kZXJlZD0hMDtsZXQgTT1YbS5tZWFzdXJlKGBwcmV2aWV3LXJlbmRlci0ke3RoaXMucGRmVXJsfWAsYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO2NvbnNvbGUubG9nKGBQREYgdGlsZSByZW5kZXJlZCBpbiAke019bXNgKX1jYXRjaChNKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBQREYgdGlsZToiLE0pLHRoaXMuZXJyb3I9ITAsdGhpcy5sb2FkaW5nPSExfX19c2NoZWR1bGVSZW5kZXJQYWdlcygpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50P3RoaXMucmVuZGVyUGFnZXNUYXNrPyh0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSEwLHRoaXMucmVuZGVyUGFnZXNUYXNrKToodGhpcy5yZW5kZXJQYWdlc1Rhc2s9KGFzeW5jKCk9Pnt0cnl7YXdhaXQgdGhpcy5wZXJmb3JtUmVuZGVyUGFnZXMoKX1jYXRjaChNKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVuZGVyIFBERiB0aWxlIHBhZ2VzOiIsTSl9fSkoKS5maW5hbGx5KCgpPT57dGhpcy5yZW5kZXJQYWdlc1Rhc2s9bnVsbCx0aGlzLnJlbmRlclBhZ2VzUXVldWVkJiYodGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMSx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9KSx0aGlzLnJlbmRlclBhZ2VzVGFzayk6UHJvbWlzZS5yZXNvbHZlKCl9YXN5bmMgcGVyZm9ybVJlbmRlclBhZ2VzKCl7aWYoIXRoaXMucGRmRG9jdW1lbnQpcmV0dXJuO2F3YWl0IG5ldyBQcm9taXNlKEE9PnJlcXVlc3RBbmltYXRpb25GcmFtZShBKSk7bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1jYW52YXMiKTtpZighTSlyZXR1cm47dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5jYWNoZUVsZW1lbnRzKCk7bGV0e2F2YWlsYWJsZVdpZHRoOlMsYXZhaWxhYmxlSGVpZ2h0OkV9PXRoaXMuZ2V0QXZhaWxhYmxlU2l6ZSgpO3RyeXtsZXQgQT10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSxGPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShBKSxXPUYuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxqPVcuaGVpZ2h0L1cud2lkdGgsRz0xLjQxNCxoZT0uNzA3LFI9MS4yOTQsVT0uNzczLG1lPS4wNSxJPU1hdGguYWJzKGotRyk8RyptZSxxPU1hdGguYWJzKGotaGUpPGhlKm1lLGNlPU1hdGguYWJzKGotUik8UiptZSx1ZT1NYXRoLmFicyhqLVUpPFUqbWU7dGhpcy5pc0E0Rm9ybWF0PUl8fHF8fGNlfHx1ZTtsZXQgWT10aGlzLmlzQTRGb3JtYXQ/UzpTLTI0LFE9dGhpcy5pc0E0Rm9ybWF0P0U6RS0yNCxKPVk+MD9ZL1cud2lkdGg6MCxaPVE+MD9RL1cuaGVpZ2h0OjAsZ2U9TWF0aC5taW4oSnx8LjUsWnx8Snx8LjUpLGFlPU1hdGgubWluKGdlKjIsMyk7aWYoIU51bWJlci5pc0Zpbml0ZShhZSl8fGFlPD0wKXtGLmNsZWFudXA/LigpO3JldHVybn1sZXQgcmU9Ri5nZXRWaWV3cG9ydCh7c2NhbGU6YWV9KSx5ZT1abS5hY3F1aXJlKHJlLndpZHRoLHJlLmhlaWdodCk7dGhpcy5jYW52YXNlcy5wdXNoKHllKTtsZXQgVj17Y2FudmFzQ29udGV4dDp5ZS5jdHgsdmlld3BvcnQ6cmV9O2F3YWl0IEYucmVuZGVyKFYpLnByb21pc2UsTS53aWR0aD1yZS53aWR0aCxNLmhlaWdodD1yZS5oZWlnaHQ7bGV0IEg9WSxvZT1yZS5oZWlnaHQvcmUud2lkdGgqWTtpZihvZT5RKXtsZXQgdGU9USx6ZT1yZS53aWR0aC9yZS5oZWlnaHQqUTtNLnN0eWxlLndpZHRoPWAke3plfXB4YCxNLnN0eWxlLmhlaWdodD1gJHt0ZX1weGB9ZWxzZSBNLnN0eWxlLndpZHRoPWAke0h9cHhgLE0uc3R5bGUuaGVpZ2h0PWAke29lfXB4YDtsZXQgc2U9TS5nZXRDb250ZXh0KCIyZCIpO3NlJiYoc2UuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLHNlLmltYWdlU21vb3RoaW5nUXVhbGl0eT0iaGlnaCIsc2UuZHJhd0ltYWdlKHllLmNhbnZhcywwLDApKSxGLmNsZWFudXAoKX1jYXRjaChBKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gcmVuZGVyIHBhZ2UgJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX06YCxBKX19Y2xlYXJDYW52YXNlcygpe2ZvcihsZXQgTSBvZiB0aGlzLmNhbnZhc2VzKVptLnJlbGVhc2UoTSk7dGhpcy5jYW52YXNlcz1bXX1jbGVhbnVwKCl7dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5wZGZEb2N1bWVudCYmKGxsLnJlbGVhc2VEb2N1bWVudCh0aGlzLmxvYWRlZFBkZlVybD8/dGhpcy5wZGZVcmwpLHRoaXMucGRmRG9jdW1lbnQ9bnVsbCksdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMSx0aGlzLnBhZ2VDb3VudD0wLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaXNBNEZvcm1hdD0hMCx0aGlzLnN0YWNrRWxlbWVudD1udWxsLHRoaXMubG9hZGVkUGRmVXJsPW51bGwsdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0hMX1hc3luYyB1cGRhdGVkKE0pe2lmKHN1cGVyLnVwZGF0ZWQoTSksTS5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IFM9TS5nZXQoInBkZlVybCIpO1MmJmxsLnJlbGVhc2VEb2N1bWVudChTKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlbmRlcmVkPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTE7bGV0IEU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtFLnRvcDx3aW5kb3cuaW5uZXJIZWlnaHQmJkUuYm90dG9tPjAmJnRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKX1NLmhhcygiY3VycmVudFByZXZpZXdQYWdlIikmJnRoaXMucmVuZGVyZWQmJmF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgTT1bXTtyZXR1cm4gdGhpcy5jbGlja2FibGUmJihNLnB1c2goe25hbWU6IlZpZXcgUERGIixpY29uTmFtZToibHVjaWRlOkV5ZSIsYWN0aW9uOnMoYXN5bmMoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRpbGUtY2xpY2siLHtkZXRhaWw6dGhpcy5nZXRUaWxlQ2xpY2tEZXRhaWwoKSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSwiYWN0aW9uIil9KSxNLnB1c2goe2RpdmlkZXI6ITB9KSksTS5wdXNoKHtuYW1lOiJPcGVuIFBERiBpbiBOZXcgVGFiIixpY29uTmFtZToibHVjaWRlOkV4dGVybmFsTGluayIsYWN0aW9uOnMoYXN5bmMoKT0+e3dpbmRvdy5vcGVuKHRoaXMucGRmVXJsLCJfYmxhbmsiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkNvcHkgUERGIFVSTCIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246cyhhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5wZGZVcmwpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjpzKGFzeW5jKCk9PntsZXQgUz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Uy5ocmVmPXRoaXMucGRmVXJsLFMuZG93bmxvYWQ9dGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIsUy5jbGljaygpfSwiYWN0aW9uIil9KSx0aGlzLnBhZ2VDb3VudD4wJiZNLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOmAke3RoaXMucGFnZUNvdW50fSBwYWdlJHt0aGlzLnBhZ2VDb3VudD4xPyJzIjoiIn1gLGljb25OYW1lOiJsdWNpZGU6RmlsZVRleHQiLGRpc2FibGVkOiEwLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKX0pLE19Y2FjaGVFbGVtZW50cygpe3RoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKX1zZXR1cFJlc2l6ZU9ic2VydmVyKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5yZW5kZXJlZCYmdGhpcy5wZGZEb2N1bWVudCYmIXRoaXMubG9hZGluZyYmdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWdldEF2YWlsYWJsZVNpemUoKXtpZih0aGlzLnN0YWNrRWxlbWVudHx8KHRoaXMuc3RhY2tFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctc3RhY2siKSksIXRoaXMuc3RhY2tFbGVtZW50KXJldHVybnthdmFpbGFibGVXaWR0aDoyMDAsYXZhaWxhYmxlSGVpZ2h0OjI2MH07bGV0IE09dGhpcy5zdGFja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksUz1NYXRoLm1heChNLndpZHRoLDApfHwyMDAsRT1NYXRoLm1heChNLmhlaWdodCwwKXx8MjYwO3JldHVybnthdmFpbGFibGVXaWR0aDpTLGF2YWlsYWJsZUhlaWdodDpFfX1zdGF0aWN7Y28ocix0KX19O3JldHVybiBCPXJ9KSgpfSk7dmFyIGozYT1mKCgpPT57VjNhKCl9KTt2YXIgVTNhLFczYT1mKCgpPT57bGUoKTtVM2E9cygoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICB9CiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC50aWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW1hZ2UgVGlsZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy84MDAvNjAwIgogICAgICAgICAgYWx0PSJMYW5kc2NhcGUgcGhvdG8iCiAgICAgICAgICBsYWJlbD0ibGFuZHNjYXBlLmpwZyIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7YT0+Y29uc29sZS5sb2coIkltYWdlIGNsaWNrZWQ6IixhLmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzQwMCIKICAgICAgICAgIGFsdD0iU3F1YXJlIHBob3RvIgogICAgICAgICAgbGFiZWw9InNxdWFyZS5wbmciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvMzAwLzkwMCIKICAgICAgICAgIGFsdD0iUG9ydHJhaXQgcGhvdG8iCiAgICAgICAgICBsYWJlbD0icG9ydHJhaXQud2VicCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMCIKICAgICAgICAgIGFsdD0iU21hbGwiCiAgICAgICAgICBsYWJlbD0ic21hbGwuanBnIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzYwMC80MDAiCiAgICAgICAgICBhbHQ9IkRlZmF1bHQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8xMjAwLzgwMCIKICAgICAgICAgIGFsdD0iTGFyZ2UiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UuanBnIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5FcnJvciBTdGF0ZSAoYnJva2VuIFVSTCk8L2gzPgogICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICBzcmM9Imh0dHBzOi8vaW52YWxpZC11cmwtdGhhdC1kb2VzLW5vdC1leGlzdC5leGFtcGxlL2ltYWdlLnBuZyIKICAgICAgICBhbHQ9IkJyb2tlbiIKICAgICAgICBsYWJlbD0iYnJva2VuLnBuZyIKICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIFFtLEcxLEczYSxZM2E9ZigoKT0+e2xlKCk7TzQoKTtBYygpO1czYSgpO1FtPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxHMT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sRzNhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy10aHVtYm5haWwtaW1hZ2UiKV0sZSx0PVtdLHIsaT1sbyxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1RodW1ibmFpbEltYWdlIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bSygpXSx4PVtLKCldLHk9W0soKV0sUW0odGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InNyYyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNyYywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNyYz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG4sbCksUW0odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImFsdCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LmFsdCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmFsdD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGMscCksUW0odGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZUxvYWRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iaW1hZ2VMb2FkZWQiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5pbWFnZUxvYWRlZCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmltYWdlTG9hZGVkPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbSx2KSxRbSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImltYWdlV2lkdGgiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5pbWFnZVdpZHRoLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouaW1hZ2VXaWR0aD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUW0odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZUhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iaW1hZ2VIZWlnaHQiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5pbWFnZUhlaWdodCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmltYWdlSGVpZ2h0PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxDKSxRbShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpffSxudWxsLHQpLE49cj1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPVUzYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uQmksWGAKICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCgjZThlOGU4IDAlIDI1JSwgd2hpdGUgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiLCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoaHNsKDIxNSAyMCUgMTglKSAwJSAyNSUsIGhzbCgyMTUgMjAlIDE0JSkgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiKX07CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGVkIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgIGBdOyNlPUcxKHRoaXMsbiwiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoXyl7dGhpcy4jZT1ffSN0PShHMSh0aGlzLGwpLEcxKHRoaXMsYywiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KF8pe3RoaXMuI3Q9X30jYT0oRzEodGhpcyxwKSxHMSh0aGlzLG0sITEpKTtnZXQgaW1hZ2VMb2FkZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW1hZ2VMb2FkZWQoXyl7dGhpcy4jYT1ffSNyPShHMSh0aGlzLHYpLEcxKHRoaXMsYiwwKSk7Z2V0IGltYWdlV2lkdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaW1hZ2VXaWR0aChfKXt0aGlzLiNyPV99I3M9KEcxKHRoaXMsZyksRzEodGhpcyxrLDApKTtnZXQgaW1hZ2VIZWlnaHQoKXtyZXR1cm4gdGhpcy4jc31zZXQgaW1hZ2VIZWlnaHQoXyl7dGhpcy4jcz1ffWhhc1N0YXJ0ZWRMb2FkaW5nPShHMSh0aGlzLEMpLCExKTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIj4KICAgICAgICAke3RoaXMuaGFzU3RhcnRlZExvYWRpbmc/d2AKICAgICAgICAgIDxpbWcKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pbWFnZUxvYWRlZD8ibG9hZGVkIjoibG9hZGluZyJ9IgogICAgICAgICAgICBzcmM9IiR7dGhpcy5zcmN9IgogICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICBAbG9hZD0ke3RoaXMuaGFuZGxlSW1hZ2VMb2FkfQogICAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUltYWdlRXJyb3J9CiAgICAgICAgICAvPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBJbWFnZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiEodGhpcy5pbWFnZVdpZHRoPjApPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5pbWFnZVdpZHRoPjAmJnRoaXMuaW1hZ2VIZWlnaHQ+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmltYWdlV2lkdGh9IMOXICR7dGhpcy5pbWFnZUhlaWdodH08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMsYWx0OnRoaXMuYWx0LHdpZHRoOnRoaXMuaW1hZ2VXaWR0aCxoZWlnaHQ6dGhpcy5pbWFnZUhlaWdodH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWhhbmRsZUltYWdlTG9hZChfKXtsZXQgej1fLnRhcmdldDt0aGlzLmltYWdlV2lkdGg9ei5uYXR1cmFsV2lkdGgsdGhpcy5pbWFnZUhlaWdodD16Lm5hdHVyYWxIZWlnaHQsdGhpcy5pbWFnZUxvYWRlZD0hMCx0aGlzLmxvYWRpbmc9ITF9aGFuZGxlSW1hZ2VFcnJvcigpe3RoaXMuZXJyb3I9ITAsdGhpcy5sb2FkaW5nPSExfWFzeW5jIHVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5pbWFnZUxvYWRlZD0hMSx0aGlzLmxvYWRpbmc9ITApfXN0YXRpY3tHMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgSzNhPWYoKCk9PntZM2EoKX0pO3ZhciBaM2EsWDNhPWYoKCk9PntsZSgpO1ozYT1zKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5BdWRpbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMS5tcDMiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke2E9PmNvbnNvbGUubG9nKCJBdWRpbyBjbGlja2VkOiIsYS5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0yLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMiIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMi5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTMubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAzIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMy5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkRlZmF1bHQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iTGFyZ2UiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgQjQsdW8sUTNhLEozYT1mKCgpPT57bGUoKTtPNCgpO0FjKCk7WDNhKCk7QjQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHVvPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxRM2E9KCgpPT57bGV0IGE9W2llKCJkZWVzLXRodW1ibmFpbC1hdWRpbyIpXSxlLHQ9W10scixpPWxvLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdO3ZhciBCPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzVGh1bWJuYWlsQXVkaW8iKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVtLKCldLHk9W0soKV0sTj1bSygpXSxPPVtLKCldLEI0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJzcmMiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5zcmMsImdldCIpLHNldDpzKChTLEUpPT57Uy5zcmM9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxuLGwpLEI0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InRpdGxlImluIFMsImhhcyIpLGdldDpzKFM9PlMudGl0bGUsImdldCIpLHNldDpzKChTLEUpPT57Uy50aXRsZT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGMscCksQjQodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcnRpc3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImFydGlzdCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLmFydGlzdCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmFydGlzdD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sdiksQjQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iZHVyYXRpb24iaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5kdXJhdGlvbiwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmR1cmF0aW9uPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSxCNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4id2F2ZWZvcm1EYXRhImluIFMsImhhcyIpLGdldDpzKFM9PlMud2F2ZWZvcm1EYXRhLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1Mud2F2ZWZvcm1EYXRhPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sayxDKSxCNCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+IndhdmVmb3JtUmVhZHkiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy53YXZlZm9ybVJlYWR5LCJnZXQiKSxzZXQ6cygoUyxFKT0+e1Mud2F2ZWZvcm1SZWFkeT1FfSwic2V0Iil9LG1ldGFkYXRhOk19LF8seiksQjQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1ByZXZpZXdQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJpc1ByZXZpZXdQbGF5aW5nImluIFMsImhhcyIpLGdldDpzKFM9PlMuaXNQcmV2aWV3UGxheWluZywiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmlzUHJldmlld1BsYXlpbmc9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxULFApLEI0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCksQj1yPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89WjNhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5CaSxYYAogICAgICAuYXVkaW8tY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyNTAgNDAlIDk2JSksIGhzbCgyODAgMzAlIDk0JSkpIiwibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDI1MCAzMCUgMTYlKSwgaHNsKDI4MCAyNSUgMTQlKSkiKX07CiAgICAgIH0KCiAgICAgIC5tdXNpYy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUwIDYwJSA2NSUpIiwiaHNsKDI1MCA2MCUgNzAlKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5hdWRpby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUwIDIwJSAzNSUpIiwiaHNsKDI1MCAyMCUgODAlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5hdWRpby1hcnRpc3QgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1MCAxNSUgNTAlKSIsImhzbCgyNTAgMTUlIDY1JSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2F2ZWZvcm0tY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzJweCk7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgoKICAgICAgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxODsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAucGxheS1vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAucGxheS1jaXJjbGUgewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgfQoKICAgICAgLnBsYXktY2lyY2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQogICAgYF07I2U9dW8odGhpcyxuLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhNKXt0aGlzLiNlPU19I3Q9KHVvKHRoaXMsbCksdW8odGhpcyxjLCIiKSk7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpdGxlKE0pe3RoaXMuI3Q9TX0jYT0odW8odGhpcyxwKSx1byh0aGlzLG0sIiIpKTtnZXQgYXJ0aXN0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFydGlzdChNKXt0aGlzLiNhPU19I3I9KHVvKHRoaXMsdiksdW8odGhpcyxiLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgZHVyYXRpb24oTSl7dGhpcy4jcj1NfSNzPSh1byh0aGlzLGcpLHVvKHRoaXMsayxbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jc31zZXQgd2F2ZWZvcm1EYXRhKE0pe3RoaXMuI3M9TX0jaT0odW8odGhpcyxDKSx1byh0aGlzLF8sITEpKTtnZXQgd2F2ZWZvcm1SZWFkeSgpe3JldHVybiB0aGlzLiNpfXNldCB3YXZlZm9ybVJlYWR5KE0pe3RoaXMuI2k9TX0jbz0odW8odGhpcyx6KSx1byh0aGlzLFQsITEpKTtnZXQgaXNQcmV2aWV3UGxheWluZygpe3JldHVybiB0aGlzLiNvfXNldCBpc1ByZXZpZXdQbGF5aW5nKE0pe3RoaXMuI289TX1hdWRpb0VsZW1lbnQ9KHVvKHRoaXMsUCksbnVsbCk7cHJldmlld1RpbWVvdXQ9bnVsbDtoYXNMb2FkZWRXYXZlZm9ybT0hMTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJhdWRpby1jb250ZW50Ij4KICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJtdXNpYy1pY29uIiBpY29uPSJsdWNpZGU6TXVzaWMiPjwvZGVlcy1pY29uPgoKICAgICAgICAke3RoaXMudGl0bGU/d2A8ZGl2IGNsYXNzPSJhdWRpby10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PmA6IiJ9CiAgICAgICAgJHt0aGlzLmFydGlzdD93YDxkaXYgY2xhc3M9ImF1ZGlvLWFydGlzdCI+JHt0aGlzLmFydGlzdH08L2Rpdj5gOiIifQoKICAgICAgICAke3RoaXMud2F2ZWZvcm1SZWFkeT93YAogICAgICAgICAgPGRpdiBjbGFzcz0id2F2ZWZvcm0tY29udGFpbmVyIj4KICAgICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icGxheS1vdmVybGF5Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWNpcmNsZSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkhlYWRwaG9uZXMiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBBdWRpbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLmR1cmF0aW9uPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMsdGl0bGU6dGhpcy50aXRsZSxhcnRpc3Q6dGhpcy5hcnRpc3QsZHVyYXRpb246dGhpcy5kdXJhdGlvbn19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzTG9hZGVkV2F2ZWZvcm0mJnRoaXMuc3JjJiYodGhpcy5oYXNMb2FkZWRXYXZlZm9ybT0hMCx0aGlzLmxvYWRBdWRpb01ldGEoKSl9YXN5bmMgbG9hZEF1ZGlvTWV0YSgpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IE09bmV3IEF1ZGlvO00uY3Jvc3NPcmlnaW49ImFub255bW91cyIsTS5wcmVsb2FkPSJtZXRhZGF0YSIsYXdhaXQgbmV3IFByb21pc2UoKFMsRSk9PntNLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249TS5kdXJhdGlvbixTKCl9LHtvbmNlOiEwfSksTS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PkUobmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBhdWRpbyIpKSx7b25jZTohMH0pLE0uc3JjPXRoaXMuc3JjfSksYXdhaXQgdGhpcy5sb2FkV2F2ZWZvcm0oKSx0aGlzLmxvYWRpbmc9ITF9Y2F0Y2h7dGhpcy5sb2FkaW5nPSExfX1hc3luYyBsb2FkV2F2ZWZvcm0oKXt0cnl7bGV0IFM9YXdhaXQoYXdhaXQgZmV0Y2godGhpcy5zcmMpKS5hcnJheUJ1ZmZlcigpLEU9bmV3IEF1ZGlvQ29udGV4dCxGPShhd2FpdCBFLmRlY29kZUF1ZGlvRGF0YShTKSkuZ2V0Q2hhbm5lbERhdGEoMCksVz04MCxqPU1hdGguZmxvb3IoRi5sZW5ndGgvVyksRz1bXTtmb3IobGV0IFI9MDtSPFc7UisrKXtsZXQgVT0wO2ZvcihsZXQgbWU9MDttZTxqO21lKyspVSs9TWF0aC5hYnMoRltSKmorbWVdKTtHLnB1c2goVS9qKX1sZXQgaGU9TWF0aC5tYXgoLi4uRyk7dGhpcy53YXZlZm9ybURhdGE9Ry5tYXAoUj0+aGU+MD9SL2hlOjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCxhd2FpdCBFLmNsb3NlKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmRyYXdXYXZlZm9ybSgpfWNhdGNoe3RoaXMud2F2ZWZvcm1SZWFkeT0hMX19ZHJhd1dhdmVmb3JtKCl7aWYoIXRoaXMud2F2ZWZvcm1SZWFkeSlyZXR1cm47bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyIpO2lmKCFNKXJldHVybjtsZXQgUz1NLnBhcmVudEVsZW1lbnQsRT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxBPVMuY2xpZW50V2lkdGgsRj1TLmNsaWVudEhlaWdodDtNLndpZHRoPUEqRSxNLmhlaWdodD1GKkU7bGV0IFc9TS5nZXRDb250ZXh0KCIyZCIpO2lmKCFXKXJldHVybjtXLnNjYWxlKEUsRSksVy5jbGVhclJlY3QoMCwwLEEsRik7bGV0IGo9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKGo9PT0wKXJldHVybjtsZXQgRz1BL2osUj1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/ImhzbCgyNTAgNTAlIDYwJSkiOiJoc2woMjUwIDUwJSA3MCUpIjtXLmZpbGxTdHlsZT1SO2ZvcihsZXQgVT0wO1U8ajtVKyspe2xldCBtZT10aGlzLndhdmVmb3JtRGF0YVtVXSxJPU1hdGgubWF4KDIsbWUqKEYtNCkpLHE9VSpHLGNlPShGLUkpLzI7Vy5maWxsUmVjdChxKy41LGNlLEctMSxJKX19YXN5bmMgdXBkYXRlZChNKXtzdXBlci51cGRhdGVkKE0pLE0uaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNMb2FkZWRXYXZlZm9ybT0hMCx0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5kdXJhdGlvbj0wLHRoaXMubG9hZEF1ZGlvTWV0YSgpKSxNLmhhcygid2F2ZWZvcm1SZWFkeSIpJiZ0aGlzLndhdmVmb3JtUmVhZHkmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnByZXZpZXdUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5wcmV2aWV3VGltZW91dCksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5wYXVzZSgpLHRoaXMuYXVkaW9FbGVtZW50LnNyYz0iIix0aGlzLmF1ZGlvRWxlbWVudD1udWxsKX1mb3JtYXRUaW1lKE0pe2lmKCFpc0Zpbml0ZShNKXx8TTwwKXJldHVybiIwOjAwIjtsZXQgUz1NYXRoLmZsb29yKE0vNjApLEU9TWF0aC5mbG9vcihNJTYwKTtyZXR1cm5gJHtTfToke0UudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7dW8ocix0KX19O3JldHVybiBCPXJ9KSgpfSk7dmFyIGVkYT1mKCgpPT57SjNhKCl9KTt2YXIgdGRhLGFkYT1mKCgpPT57bGUoKTt0ZGE9cygoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICB9CiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC50aWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+VmlkZW8gVGlsZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJidW5ueS5tcDQiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke2E9PmNvbnNvbGUubG9nKCJWaWRlbyBjbGlja2VkOiIsYS5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdmllLm1wNCIKICAgICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC8zMDAiCiAgICAgICAgICBsYWJlbD0ibW92aWUubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImFub3RoZXItdmlkZW8ubXA0IgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggUG9zdGVyIEltYWdlPC9oMz4KICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92aWUubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzYwMC80MDAiCiAgICAgICAgbGFiZWw9InBvc3Rlci12aWRlby5tcDQiCiAgICAgID48L2RlZXMtdGh1bWJuYWlsLXZpZGVvPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBKbSxZMSxyZGEsc2RhPWYoKCk9PntsZSgpO080KCk7QWMoKTthZGEoKTtKbT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sWTE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHJkYT0oKCk9PntsZXQgYT1baWUoImRlZXMtdGh1bWJuYWlsLXZpZGVvIildLGUsdD1bXSxyLGk9bG8sbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNUaHVtYm5haWxWaWRlbyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9W0soKV0seD1bSygpXSx5PVtLKCldLEptKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzcmMiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5zcmMsImdldCIpLHNldDpzKCh6LE8pPT57ei5zcmM9T30sInNldCIpfSxtZXRhZGF0YTpffSxuLGwpLEptKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJwb3N0ZXIiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5wb3N0ZXIsImdldCIpLHNldDpzKCh6LE8pPT57ei5wb3N0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpffSxjLHApLEptKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImR1cmF0aW9uImluIHosImhhcyIpLGdldDpzKHo9PnouZHVyYXRpb24sImdldCIpLHNldDpzKCh6LE8pPT57ei5kdXJhdGlvbj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG0sdiksSm0odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHVtYm5haWxDYXB0dXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4idGh1bWJuYWlsQ2FwdHVyZWQiaW4geiwiaGFzIiksZ2V0OnMoej0+ei50aHVtYm5haWxDYXB0dXJlZCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnRodW1ibmFpbENhcHR1cmVkPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxKbSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImlzSG92ZXJpbmciaW4geiwiaGFzIiksZ2V0OnMoej0+ei5pc0hvdmVyaW5nLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouaXNIb3ZlcmluZz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssQyksSm0obnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6X30sbnVsbCx0KSxOPXI9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz10ZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLkJpLFhgCiAgICAgIC52aWRlby13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogIzAwMDsKICAgICAgfQoKICAgICAgLnZpZGVvLXdyYXBwZXIgdmlkZW8gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnZpZGVvLXdyYXBwZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5wb3N0ZXItaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKCiAgICAgIC5wbGF5LW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IDE1OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAucGxheS1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAucGxheS1vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICB6LWluZGV4OiA1OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC52aWRlby1ob3Zlci1wcmV2aWV3LmFjdGl2ZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07I2U9WTEodGhpcyxuLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhfKXt0aGlzLiNlPV99I3Q9KFkxKHRoaXMsbCksWTEodGhpcyxjLCIiKSk7Z2V0IHBvc3Rlcigpe3JldHVybiB0aGlzLiN0fXNldCBwb3N0ZXIoXyl7dGhpcy4jdD1ffSNhPShZMSh0aGlzLHApLFkxKHRoaXMsbSwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGR1cmF0aW9uKF8pe3RoaXMuI2E9X30jcj0oWTEodGhpcyx2KSxZMSh0aGlzLGIsITEpKTtnZXQgdGh1bWJuYWlsQ2FwdHVyZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGh1bWJuYWlsQ2FwdHVyZWQoXyl7dGhpcy4jcj1ffSNzPShZMSh0aGlzLGcpLFkxKHRoaXMsaywhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzSG92ZXJpbmcoXyl7dGhpcy4jcz1ffXRodW1ibmFpbENhbnZhcz0oWTEodGhpcyxDKSxudWxsKTtob3ZlclZpZGVvPW51bGw7aGFzU3RhcnRlZExvYWRpbmc9ITE7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlkZW8td3JhcHBlciI+CiAgICAgICAgJHt0aGlzLnBvc3Rlcj93YAogICAgICAgICAgPGltZyBjbGFzcz0icG9zdGVyLWltYWdlIiBzcmM9IiR7dGhpcy5wb3N0ZXJ9IiBhbHQ9IiIgLz4KICAgICAgICBgOnRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ/d2AKICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgYDp3YAogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogIzAwMDsiPjwvZGl2PgogICAgICAgIGB9CgogICAgICAgICR7dGhpcy5pc0hvdmVyaW5nJiZ0aGlzLnNyYz93YAogICAgICAgICAgPHZpZGVvCiAgICAgICAgICAgIGNsYXNzPSJ2aWRlby1ob3Zlci1wcmV2aWV3ICR7dGhpcy5pc0hvdmVyaW5nPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgLnNyYz0ke3RoaXMuc3JjfQogICAgICAgICAgICBtdXRlZAogICAgICAgICAgICBwbGF5c2lubGluZQogICAgICAgICAgICBAbG9hZGVkZGF0YT0ke3RoaXMuaGFuZGxlSG92ZXJWaWRlb0xvYWRlZH0KICAgICAgICAgID48L3ZpZGVvPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBWaWRlbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLmR1cmF0aW9uPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMscG9zdGVyOnRoaXMucG9zdGVyLGR1cmF0aW9uOnRoaXMuZHVyYXRpb259fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKX1hc3luYyBjYXB0dXJlRmlyc3RGcmFtZSgpe2lmKHRoaXMucG9zdGVyKXt0aGlzLmxvYWREdXJhdGlvbigpO3JldHVybn10aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7Xy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixfLm11dGVkPSEwLF8ucHJlbG9hZD0ibWV0YWRhdGEiLGF3YWl0IG5ldyBQcm9taXNlKCh6LE8pPT57Xy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLmN1cnJlbnRUaW1lPS4xLF8uYWRkRXZlbnRMaXN0ZW5lcigic2Vla2VkIiwoKT0+e2xldCBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO1Qud2lkdGg9Xy52aWRlb1dpZHRoLFQuaGVpZ2h0PV8udmlkZW9IZWlnaHQ7bGV0IFA9VC5nZXRDb250ZXh0KCIyZCIpO1AmJihQLmRyYXdJbWFnZShfLDAsMCksdGhpcy50aHVtYm5haWxDYW52YXM9VCx0aGlzLnRodW1ibmFpbENhcHR1cmVkPSEwKSxfLnNyYz0iIixfLmxvYWQoKSx6KCl9LHtvbmNlOiEwfSl9LHtvbmNlOiEwfSksXy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pk8obmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCB2aWRlbyIpKSx7b25jZTohMH0pLF8uc3JjPXRoaXMuc3JjfSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKX1jYXRjaHt0aGlzLmxvYWRpbmc9ITEsdGhpcy5sb2FkRHVyYXRpb24oKX19bG9hZER1cmF0aW9uKCl7bGV0IF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtfLnByZWxvYWQ9Im1ldGFkYXRhIixfLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLnNyYz0iIixfLmxvYWQoKX0pLF8uc3JjPXRoaXMuc3JjfWNvcHlUaHVtYm5haWxUb0NhbnZhcygpe2lmKCF0aGlzLnRodW1ibmFpbENhbnZhcylyZXR1cm47bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8td3JhcHBlciBjYW52YXMiKTtpZighXylyZXR1cm47Xy53aWR0aD10aGlzLnRodW1ibmFpbENhbnZhcy53aWR0aCxfLmhlaWdodD10aGlzLnRodW1ibmFpbENhbnZhcy5oZWlnaHQ7bGV0IHo9Xy5nZXRDb250ZXh0KCIyZCIpO3omJnouZHJhd0ltYWdlKHRoaXMudGh1bWJuYWlsQ2FudmFzLDAsMCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaG92ZXJWaWRlbz1udWxsfWhhbmRsZUhvdmVyVmlkZW9Mb2FkZWQoXyl7dGhpcy5ob3ZlclZpZGVvPV8udGFyZ2V0LHRoaXMuaG92ZXJWaWRlby5wbGF5KCkuY2F0Y2goKCk9Pnt9KX1hc3luYyB1cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyksXy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITEsdGhpcy5kdXJhdGlvbj0wLHRoaXMuY2FwdHVyZUZpcnN0RnJhbWUoKSksXy5oYXMoInRodW1ibmFpbENhcHR1cmVkIikmJnRoaXMudGh1bWJuYWlsQ2FwdHVyZWQmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY29weVRodW1ibmFpbFRvQ2FudmFzKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhvdmVyVmlkZW8mJih0aGlzLmhvdmVyVmlkZW8ucGF1c2UoKSx0aGlzLmhvdmVyVmlkZW8uc3JjPSIiLHRoaXMuaG92ZXJWaWRlbz1udWxsKSx0aGlzLnRodW1ibmFpbENhbnZhcz1udWxsfWZvcm1hdFRpbWUoXyl7aWYoIWlzRmluaXRlKF8pfHxfPDApcmV0dXJuIjA6MDAiO2xldCB6PU1hdGguZmxvb3IoXy82MCksTz1NYXRoLmZsb29yKF8lNjApO3JldHVybmAke3p9OiR7Ty50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3tZMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgaWRhPWYoKCk9PntzZGEoKX0pO3ZhciBvZGEsbmRhPWYoKCk9PntsZSgpO29kYT1zKCgpPT57bGV0IGE9YGltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHsKICBwcml2YXRlIGl0ZW1zOiBzdHJpbmdbXSA9IFtdOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgXCR7dGhpcy5pdGVtcy5tYXAoaXRlbSA9PiBodG1sXGAKICAgICAgICAgIDxzcGFuPlwke2l0ZW19PC9zcGFuPgogICAgICAgIFxgKX0KICAgICAgPC9kaXY+CiAgICBcYDsKICB9Cn1gLGU9YE1lZXRpbmcgTm90ZXMgLSBRNCBQbGFubmluZwpEYXRlOiBKYW51YXJ5IDE1LCAyMDI2CkF0dGVuZGVlczogQWxpY2UsIEJvYiwgQ2hhcmxpZQoKS2V5IERlY2lzaW9uczoKMS4gTGF1bmNoIG5ldyBmZWF0dXJlIGJ5IE1hcmNoCjIuIEhpcmUgMiBtb3JlIGVuZ2luZWVycwozLiBNaWdyYXRlIHRvIG5ldyBDSS9DRCBwaXBlbGluZQo0LiBVcGRhdGUgZGVzaWduIHN5c3RlbSB0byB2MwoKQWN0aW9uIEl0ZW1zOgotIEFsaWNlOiBEcmFmdCBQUkQgYnkgbmV4dCB3ZWVrCi0gQm9iOiBTZXQgdXAgaW50ZXJ2aWV3IHBpcGVsaW5lCi0gQ2hhcmxpZTogRXZhbHVhdGUgSmVua2lucyB2cyBHaXRIdWIgQWN0aW9uc2A7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob3RlIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0iY29tcG9uZW50LnRzIgogICAgICAgICAgICAuY29udGVudD0ke2F9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgICAgICBsYWJlbD0iY29tcG9uZW50LnRzIgogICAgICAgICAgICBAdGlsZS1jbGljaz0ke3I9PmNvbnNvbGUubG9nKCJOb3RlIGNsaWNrZWQ6IixyLmRldGFpbCl9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJNZWV0aW5nIE5vdGVzIgogICAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICAgIGxhYmVsPSJtZWV0aW5nLW5vdGVzLnR4dCIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9InBhY2thZ2UuanNvbiIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtgewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMy4zOC4wIiwKICAiZGVzY3JpcHRpb24iOiAiRGVzaWduIGNvbXBvbmVudCBjYXRhbG9nIiwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjAiLAogICAgImxpdCI6ICJeMy4xLjAiCiAgfSwKICAic2NyaXB0cyI6IHsKICAgICJidWlsZCI6ICJ0c2J1aWxkIiwKICAgICJ0ZXN0IjogInRzdGVzdCIKICB9Cn1gfQogICAgICAgICAgICBsYW5ndWFnZT0ianNvbiIKICAgICAgICAgICAgbGFiZWw9InBhY2thZ2UuanNvbiIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHRpdGxlPSJzbWFsbC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHthfQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJzbWFsbC50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImRlZmF1bHQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7YX0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0iZGVmYXVsdC50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHRpdGxlPSJsYXJnZS50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHthfQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJsYXJnZS50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aG91dCBUaXRsZTwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgIGxhYmVsPSJ1bnRpdGxlZC50eHQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtbyIpfSk7dmFyIGlHLFBjLGxkYSxjZGE9ZigoKT0+e2xlKCk7TzQoKTtBYygpO25kYSgpO2lHPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxQYz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sbGRhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy10aHVtYm5haWwtbm90ZSIpXSxlLHQ9W10scixpPWxvLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzVGh1bWJuYWlsTm90ZSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6U3RyaW5nfSldLHg9W0soKV0saUcodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4idGl0bGUiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy50aXRsZSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnRpdGxlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbixsKSxpRyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImNvbnRlbnQiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5jb250ZW50LCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MuY29udGVudD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGMscCksaUcodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4ibGFuZ3VhZ2UiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5sYW5ndWFnZSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmxhbmd1YWdlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbSx2KSxpRyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImlzSG92ZXJpbmciaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5pc0hvdmVyaW5nLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MuaXNIb3ZlcmluZz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksaUcobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSx5PXI9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1vZGE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLkJpLFhgCiAgICAgIC5ub3RlLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDYwIDUlIDk2JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubm90ZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSAyMCUpIiwiaHNsKDIxNSAyMCUgMjAlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLm5vdGUtYm9keSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDEwJSA0MCUpIiwiaHNsKDIxNSAxMCUgMzUlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAubm90ZS1mYWRlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAgIHRyYW5zcGFyZW50LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfQogICAgICAgICk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ub3RlLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAzNHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgODUlKSIsImhzbCgwIDUwJSA4MCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgfQoKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBsaW5lLWhlaWdodDogMTVweDsgLyogbWF0Y2hlcyAxMHB4ICogMS41IGxpbmUtaGVpZ2h0ICovCiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDEwJSA3NSUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7CiAgICAgIH0KCiAgICBgXTsjZT1QYyh0aGlzLG4sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShrKXt0aGlzLiNlPWt9I3Q9KFBjKHRoaXMsbCksUGModGhpcyxjLCIiKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChrKXt0aGlzLiN0PWt9I2E9KFBjKHRoaXMscCksUGModGhpcyxtLCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxhbmd1YWdlKGspe3RoaXMuI2E9a30jcj0oUGModGhpcyx2KSxQYyh0aGlzLGIsITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNyfXNldCBpc0hvdmVyaW5nKGspe3RoaXMuI3I9a31ub3RlQm9keUVsZW1lbnQ9KFBjKHRoaXMsZyksbnVsbCk7cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgaz10aGlzLmNvbnRlbnQuc3BsaXQoYApgKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibm90ZS1jb250ZW50Ij4KICAgICAgICAke3RoaXMudGl0bGU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1ib2R5Ij4KICAgICAgICAgIDxwcmUgY2xhc3M9Im5vdGUtdGV4dCI+JHtrLmpvaW4oYApgKX08L3ByZT4KICAgICAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOndgPGRpdiBjbGFzcz0ibm90ZS1mYWRlIj48L2Rpdj5gfQogICAgICAgIDwvZGl2PgoKICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVUZXh0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gTm90ZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7bGV0IGs9dGhpcy5jb250ZW50LnNwbGl0KGAKYCk7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLmxhbmd1YWdlJiYhay5sZW5ndGg/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmxhbmd1YWdlP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMubGFuZ3VhZ2UudG9VcHBlckNhc2UoKX08L3NwYW4+YDoiIn0KICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmay5sZW5ndGg+MTI/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPkxpbmUgJHt0aGlzLmdldFZpc2libGVMaW5lUmFuZ2Uoay5sZW5ndGgpfTwvc3Bhbj5gOndgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke2subGVuZ3RofSBsaW5lczwvc3Bhbj5gfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3RpdGxlOnRoaXMudGl0bGUsY29udGVudDp0aGlzLmNvbnRlbnQsbGFuZ3VhZ2U6dGhpcy5sYW5ndWFnZX19b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMCx0aGlzLm5vdGVCb2R5RWxlbWVudHx8KHRoaXMubm90ZUJvZHlFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm5vdGUtYm9keSIpKX1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMubm90ZUJvZHlFbGVtZW50JiYodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wPTApfW9uVGlsZU1vdXNlTW92ZShrKXtpZighdGhpcy5pc0hvdmVyaW5nfHwhdGhpcy5ub3RlQm9keUVsZW1lbnR8fHRoaXMuY29udGVudC5zcGxpdChgCmApLmxlbmd0aDw9MTIpcmV0dXJuO2xldCBOPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXz1rLmNsaWVudFgtTi5sZWZ0LHo9TWF0aC5tYXgoMCxNYXRoLm1pbigxLF8vTi53aWR0aCkpLE89dGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodDt0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9eipPfWdldFZpc2libGVMaW5lUmFuZ2Uoayl7aWYoIXRoaXMubm90ZUJvZHlFbGVtZW50KXJldHVybmAxXHUyMDEzMTIgb2YgJHtrfWA7bGV0IEM9MTUsTj1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcC9DKSsxLF89TWF0aC5mbG9vcih0aGlzLm5vdGVCb2R5RWxlbWVudC5jbGllbnRIZWlnaHQvQyksej1NYXRoLm1pbihOK18tMSxrKTtyZXR1cm5gJHtOfVx1MjAxMyR7en0gb2YgJHtrfWB9c3RhdGlje1BjKHIsdCl9fTtyZXR1cm4geT1yfSkoKX0pO3ZhciBkZGE9ZigoKT0+e2NkYSgpfSk7dmFyIHVkYSxwZGE9ZigoKT0+e2xlKCk7dWRhPXMoKCk9PntsZXQgYT1be3R5cGU6ImltYWdlIixuYW1lOiJzdW5zZXQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0xIn0se3R5cGU6ImltYWdlIixuYW1lOiJtb3VudGFpbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im9jZWFuLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZm9yZXN0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NCJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiY2l0eS5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTUifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImRlc2VydC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTYifV07cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Gb2xkZXIgVGlsZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iUGhvdG9zIgogICAgICAgICAgICAuaXRlbXM9JHthfQogICAgICAgICAgICBsYWJlbD0iNiBwaG90b3MiCiAgICAgICAgICAgIEB0aWxlLWNsaWNrPSR7bz0+Y29uc29sZS5sb2coIkZvbGRlciBjbGlja2VkOiIsby5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0ibXktcHJvamVjdCIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJub3RlIixuYW1lOiJSRUFETUUubWQifSx7dHlwZToibm90ZSIsbmFtZToicGFja2FnZS5qc29uIn0se3R5cGU6ImZvbGRlciIsbmFtZToic3JjIn0se3R5cGU6ImZvbGRlciIsbmFtZToidGVzdCJ9LHt0eXBlOiJub3RlIixuYW1lOiJ0c2NvbmZpZy5qc29uIn0se3R5cGU6InBkZiIsbmFtZToiZG9jcy5wZGYifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImxvZ28ucG5nIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDAvMTAwP3JhbmRvbT0xMCJ9XX0KICAgICAgICAgICAgbGFiZWw9IlByb2plY3QgZmlsZXMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJNZWRpYSBBc3NldHMiCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToidmlkZW8iLG5hbWU6ImludHJvLm1wNCJ9LHt0eXBlOiJhdWRpbyIsbmFtZToiYmFja2dyb3VuZC5tcDMifSx7dHlwZToiaW1hZ2UiLG5hbWU6InRodW1ibmFpbC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIwIn0se3R5cGU6InBkZiIsbmFtZToic3Rvcnlib2FyZC5wZGYifV19CiAgICAgICAgICAgIGxhYmVsPSJNaXhlZCBtZWRpYSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5FZGdlIENhc2VzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IkVtcHR5IEZvbGRlciIKICAgICAgICAgICAgLml0ZW1zPSR7W119CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJTaW5nbGUgSXRlbSIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJwZGYiLG5hbWU6InJlcG9ydC5wZGYifV19CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgbmFtZT0iU21hbGwiCiAgICAgICAgICAgIC5pdGVtcz0ke2F9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJEZWZhdWx0IgogICAgICAgICAgICAuaXRlbXM9JHthfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIG5hbWU9IkxhcmdlIgogICAgICAgICAgICAuaXRlbXM9JHthfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgcVFlLG9HLGZkYSxoZGEsbWRhPWYoKCk9PntsZSgpO080KCk7QWMoKTtwZGEoKTtxUWU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LG9HPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxmZGE9e3BkZjoibHVjaWRlOkZpbGVUZXh0IixpbWFnZToibHVjaWRlOkltYWdlIixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixub3RlOiJsdWNpZGU6RmlsZUNvZGUiLGZvbGRlcjoibHVjaWRlOkZvbGRlciIsdW5rbm93bjoibHVjaWRlOkZpbGUifSxoZGE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXRodW1ibmFpbC1mb2xkZXIiKV0sZSx0PVtdLHIsaT1sbyxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1RodW1ibmFpbEZvbGRlciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe2F0dHJpYnV0ZTohMX0pXSxxUWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJuYW1lImluIHYsImhhcyIpLGdldDpzKHY9PnYubmFtZSwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2Lm5hbWU9eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLHFRZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJpdGVtcyJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52Lml0ZW1zLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuaXRlbXM9eH0sInNldCIpfSxtZXRhZGF0YTptfSxjLHApLHFRZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHU9cj1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPXVkYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uQmksWGAKICAgICAgLmZvbGRlci1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQwIDMwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZm9sZGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQwIDgwJSA1MCUpIiwiaHNsKDQwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZm9sZGVyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMCUgMjAlKSIsImhzbCgyMTUgMTYlIDgwJSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMCUgOTQlKSIsImhzbCgyMTUgMjAlIDE4JSkiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwtZW1wdHkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE1JSA5NiUpIiwiaHNsKDIxNSAyMCUgMTYlKSIpfTsKICAgICAgfQoKICAgIGBdOyNlPW9HKHRoaXMsbiwiIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShtKXt0aGlzLiNlPW19I3Q9KG9HKHRoaXMsbCksb0codGhpcyxjLFtdKSk7Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGl0ZW1zKG0pe3RoaXMuI3Q9bX1yZW5kZXJUaWxlQ29udGVudCgpe2xldCBtPXRoaXMuaXRlbXMuc2xpY2UoMCw0KSx2PTQtbS5sZW5ndGg7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1jb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItaGVhZGVyIj4KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImZvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6Rm9sZGVyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1uYW1lIj4ke3RoaXMubmFtZXx8IlVudGl0bGVkIEZvbGRlciJ9PC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAke20ubWFwKHg9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCI+CiAgICAgICAgICAgICAgJHt4LnRodW1ibmFpbFNyYz93YAogICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7eC50aHVtYm5haWxTcmN9IiBhbHQ9IiR7eC5uYW1lfSIgLz4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249IiR7ZmRhW3gudHlwZV18fGZkYS51bmtub3dufSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOnZ9KS5tYXAoKCk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCBncmlkLWNlbGwtZW1wdHkiPjwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGb2xkZXJPcGVuIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gRm9sZGVyPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuaXRlbXMubGVuZ3RoPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLml0ZW1zLmxlbmd0aH0gaXRlbSR7dGhpcy5pdGVtcy5sZW5ndGghPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57bmFtZTp0aGlzLm5hbWUsaXRlbUNvdW50OnRoaXMuaXRlbXMubGVuZ3RoLGl0ZW1zOnRoaXMuaXRlbXN9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxvRyh0aGlzLHApfXN0YXRpY3tvRyhyLHQpfX07cmV0dXJuIHU9cn0pKCl9KTt2YXIgZ2RhPWYoKCk9PnttZGEoKX0pO3ZhciBiZGE9ZigoKT0+e20zYSgpO3gzYSgpO2szYSgpO0UzYSgpO0kzYSgpO04zYSgpO1IzYSgpO2ozYSgpO0szYSgpO2VkYSgpO2lkYSgpO2RkYSgpO2dkYSgpfSk7dmFyIHZkYT1mKCgpPT57WHIoKX0pO3ZhciB4ZGE9ZigoKT0+e2NjKCl9KTt2YXIgeWRhLHdkYT1mKCgpPT57bGUoKTt5ZGE9cygoKT0+d2AKICAgIDxzdHlsZT4KICAgICAgLnJlZjEgewogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0icmVmMSI+PC9kaXY+CiAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHtgCiAgICAgICoqVGhpcyBpcyBhIGxvbmdlciBtYXJrZG93biB0ZXh0IHRoYXQgIGNhbiBiZSB1c2VkIHRoZSB3cml0ZSoqICAKICAgICAgYSBsb25nZXIgZGVzY3JpcHRpb24gYWJvdXQgd2hhdHMgZ29pbmcgb24gdGhlIGFwcCAgCiAgCiAgICAgICoqVGhpcyBpcyBhIHN1YmhlYWRlcioqCiAgICAgIGFuZCBhbm90aGVyIHRleHQKICAgIAogICAgYH0+PC9kZWVzLXNwZWVjaGJ1YmJsZT4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIGU3LEsxLE1kYSxrZGE9ZigoKT0+e0wxKCk7V3MoKTt3ZGEoKTtsZSgpO00xKCk7UWUoKTtlNz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sSzE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LE1kYT0oKCk9PntsZXQgYT1baWUoImRlZXMtc3BlZWNoYnViYmxlIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNTcGVlY2hidWJibGUiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOkJvb2xlYW59KV0seT1bJCh7dHlwZTpTdHJpbmd9KV0sZTcodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZmZWRFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJyZWZmZWRFbGVtZW50ImluIHosImhhcyIpLGdldDpzKHo9PnoucmVmZmVkRWxlbWVudCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnJlZmZlZEVsZW1lbnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxuLGwpLGU3KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4idGV4dCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnRleHQsImdldCIpLHNldDpzKCh6LE8pPT57ei50ZXh0PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYyxwKSxlNyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+IndhdmUiaW4geiwiaGFzIiksZ2V0OnMoej0+ei53YXZlLCJnZXQiKSxzZXQ6cygoeixPKT0+e3oud2F2ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG0sdiksZTcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYW5pZmVzdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJtYW5pZmVzdGVkImluIHosImhhcyIpLGdldDpzKHo9PnoubWFuaWZlc3RlZCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6Lm1hbmlmZXN0ZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLGU3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzdGF0dXMiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5zdGF0dXMsImdldCIpLHNldDpzKCh6LE8pPT57ei5zdGF0dXM9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLEMpLGU3KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsdCksTj1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89eWRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KF8seil7bGV0IE89YXdhaXQgR3MuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMX0pLFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1zcGVlY2hidWJibGUiKTtyZXR1cm4gVC53aW5kb3dMYXllcj1PLFQucmVmZmVkRWxlbWVudD1fLFQudGV4dD16LFQubWFuaWZlc3RlZD0hMCxPLmFwcGVuZENoaWxkKFQpLE8uc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsTy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3dPdmVybGF5Iikuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsVH0jZT1LMSh0aGlzLG4sdm9pZCAwKTtnZXQgcmVmZmVkRWxlbWVudCgpe3JldHVybiB0aGlzLiNlfXNldCByZWZmZWRFbGVtZW50KF8pe3RoaXMuI2U9X30jdD0oSzEodGhpcyxsKSxLMSh0aGlzLGMsdm9pZCAwKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChfKXt0aGlzLiN0PV99I2E9KEsxKHRoaXMscCksSzEodGhpcyxtLCExKSk7Z2V0IHdhdmUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgd2F2ZShfKXt0aGlzLiNhPV99I3I9KEsxKHRoaXMsdiksSzEodGhpcyxiLCExKSk7Z2V0IG1hbmlmZXN0ZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWFuaWZlc3RlZChfKXt0aGlzLiNyPV99I3M9KEsxKHRoaXMsZyksSzEodGhpcyxrLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNzfXNldCBzdGF0dXMoXyl7dGhpcy4jcz1ffXdpbmRvd0xheWVyPUsxKHRoaXMsQyk7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmFycm93IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IDE1cHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5zcGVlY2hidWJibGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjQwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLndhdmUgewogICAgICAgIGFuaW1hdGlvbi1uYW1lOiB3YXZlLWFuaW1hdGlvbjsgLyogUmVmZXJzIHRvIHRoZSBuYW1lIG9mIHlvdXIgQGtleWZyYW1lcyBlbGVtZW50IGJlbG93ICovCiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjVzOyAvKiBDaGFuZ2UgdG8gc3BlZWQgdXAgb3Igc2xvdyBkb3duICovCiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC8qIE5ldmVyIHN0b3Agd2F2aW5nIDopICovCiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTsgLyogUGl2b3QgYXJvdW5kIHRoZSBib3R0b20tbGVmdCBwYWxtICovCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHdhdmUtYW5pbWF0aW9uIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9IC8qIFRoZSBmb2xsb3dpbmcgZml2ZSB2YWx1ZXMgY2FuIGJlIHBsYXllZCB3aXRoIHRvIG1ha2UgdGhlIHdhdmluZyBtb3JlIG9yIGxlc3MgZXh0cmVtZSAqLwogICAgICAgIDIwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNGRlZyk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7CiAgICAgICAgfQogICAgICAgIDYwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9IC8qIFJlc2V0IGZvciB0aGUgbGFzdCBoYWxmIHRvIHBhdXNlICovCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubWFuaWZlc3RlZD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BlZWNoYnViYmxlIj4KICAgICAgICAgICAgICAgICR7dGhpcy53YXZlP3dgPHNwYW4gY2xhc3M9IndhdmUiPvCfkYs8L3NwYW4+YDp3YGB9CiAgICAgICAgICAgICAgICAke0pvLnJlc29sdmUodGhpcy5nZXRIdG1sKCkpfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1hc3luYyBoYW5kbGVDbGljaygpe2NvbnNvbGUubG9nKCJzcGVlY2hidWJibGUgZ290IGNsaWNrZWQuIil9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5yZWZmZWRFbGVtZW50fHwodGhpcy5yZWZmZWRFbGVtZW50PXRoaXMucHJldmlvdXNFbGVtZW50U2libGluZyksdGhpcy5tYW5pZmVzdGVkKWF3YWl0IHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIxIjtlbHNle2xldCBfO3RoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixhc3luYygpPT57Xz1hd2FpdCBOLmNyZWF0ZUFuZFNob3codGhpcy5yZWZmZWRFbGVtZW50LHRoaXMudGV4dCl9KSx0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9PntfLmRlc3Ryb3koKX0pfX1hc3luYyB1cGRhdGVQb3NpdGlvbigpe2xldCBfPXRoaXMucmVmZmVkRWxlbWVudCx6PV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPWAke3oudG9wLTEzfXB4YCx0aGlzLnN0eWxlLmxlZnQ9YCR7ei5sZWZ0K18uY2xpZW50V2lkdGgrNH1weGAsei5yaWdodD4yNTAmJih0aGlzLnN0eWxlLndpZHRoPSIyNTBweCIpfWFzeW5jIGdldEh0bWwoKXtpZighdGhpcy50ZXh0KXJldHVybiIiO2xldCBfPUF0LnBsdWdpbnMuc21hcnRzdHJpbmcubm9ybWFsaXplLnN0YW5kYXJkKHRoaXMudGV4dCksej1hd2FpdCBBdC5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bi5lYXN5TWFya2Rvd25Ub0h0bWwoXyk7cmV0dXJuIGJiKHopfWFzeW5jIHNob3coKXt9YXN5bmMgZGVzdHJveSgpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpfXN0YXRpY3tLMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgU2RhPWYoKCk9PntrZGEoKX0pO3ZhciB6ZGE9ZigoKT0+e00xKCl9KTt2YXIgQ2RhPWYoKCk9Pnt2ZGEoKTt4ZGEoKTtTZGEoKTt6ZGEoKX0pO3ZhciBfZGE9ZigoKT0+e30pO3ZhciBUZGE9ZigoKT0+e19kYSgpfSk7dmFyIExkYSxLc2UsWnNlLFZRZSwkZGEsWHNlLFFzZSxKc2UsZWllPWYoKCk9PntMZGE9Imh0dHBzOi8vc3RhY2tibGl0ei5jb20iLEtzZT0iY29kZSIsWnNlPSJlcnJvciIsVlFlPSJlcnJvcl9kZXNjcmlwdGlvbiIsJGRhPSJfX3djX2FwaV9iY19fIixYc2U9Il9fd2NfYXBpX3Rva2Vuc19fIixRc2U9Il9fd2NfYXBpX3ZlcmlmaWVyX18iLEpzZT0iX193Y19hcGlfcG9wdXBfXyJ9KTt2YXIgbTUsalFlPWYoKCk9PnttNT1jbGFzc3tzdGF0aWN7cyh0aGlzLCJUeXBlZEV2ZW50VGFyZ2V0Iil9X2J1cz1uZXcgRXZlbnRUYXJnZXQ7bGlzdGVuKGUpe2Z1bmN0aW9uIHQocil7ZShyLmRhdGEpfXJldHVybiBzKHQsIndyYXBwZWRMaXN0ZW5lciIpLHRoaXMuX2J1cy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0KSwoKT0+dGhpcy5fYnVzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHQpfWZpcmVFdmVudChlKXt0aGlzLl9idXMuZGlzcGF0Y2hFdmVudChuZXcgTWVzc2FnZUV2ZW50KCJtZXNzYWdlIix7ZGF0YTplfSkpfX19KTtmdW5jdGlvbiB0aWUoKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShYc2UpfWZ1bmN0aW9uIElkYShhKXtyZXR1cm4gQWRhLmxpc3RlbihhKX1mdW5jdGlvbiBuTmEoKXtsZXQgYT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShYc2UpO2lmKCFhKXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShhKX1jYXRjaHtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gbE5hKGEpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKFhzZSxKU09OLnN0cmluZ2lmeShhKSl9ZnVuY3Rpb24gUGRhKHtjcmVhdGVkX2F0OmEsZXhwaXJlc19pbjplfSl7cmV0dXJuKGErZSkqMWUzfWZ1bmN0aW9uIEVkYShhKXtpZih0eXBlb2YgYSE9Im9iamVjdCJ8fCFhKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpO2lmKHR5cGVvZiBhLmFjY2Vzc190b2tlbiE9InN0cmluZyJ8fHR5cGVvZiBhLnJlZnJlc2hfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2YgYS5jcmVhdGVkX2F0IT0ibnVtYmVyInx8dHlwZW9mIGEuZXhwaXJlc19pbiE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFRva2VuIFJlc3BvbnNlIil9ZnVuY3Rpb24gY05hKGEpe3JldHVybiBuZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KGUsYSkpfWZ1bmN0aW9uIGROYShhKXtBZGEuZmlyZUV2ZW50KGEpfXZhciBEZGEsQWRhLHQ3LFVRZT1mKCgpPT57ZWllKCk7alFlKCk7RGRhPW5ldyBFcnJvcjtEZGEuc3RhY2s9IiI7QWRhPW5ldyBtNSx0Nz1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIlRva2VucyIpfW9yaWdpbjtyZWZyZXNoO2FjY2VzcztleHBpcmVzO19yZXZva2VkPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3RydWN0b3IoZSx0LHIsaSl7dGhpcy5vcmlnaW49ZSx0aGlzLnJlZnJlc2g9dCx0aGlzLmFjY2Vzcz1yLHRoaXMuZXhwaXJlcz1pfWFzeW5jIGFjdGl2YXRlKGUpe2lmKHRoaXMuX3Jldm9rZWQuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEVycm9yKCJUb2tlbiByZXZva2VkIik7cmV0dXJuIHRoaXMuZXhwaXJlczxEYXRlLm5vdygpJiYhYXdhaXQgdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpPyExOih0aGlzLl9zeW5jKCksdGhpcy5fc3RhcnRSZWZyZXNoVG9rZW5zTG9vcChlKSwhMCl9YXN5bmMgcmV2b2tlKGUsdCl7dGhpcy5fcmV2b2tlZC5hYm9ydCgpO3RyeXtpZighKGF3YWl0IGZldGNoKGAke3RoaXMub3JpZ2lufS9vYXV0aC9yZXZva2VgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe3Rva2VuOnRoaXMucmVmcmVzaCx0b2tlbl90eXBlX2hpbnQ6InJlZnJlc2hfdG9rZW4iLGNsaWVudF9pZDplfSksbW9kZToiY29ycyJ9KSkub2spdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9nb3V0Iil9Y2F0Y2gocil7aWYoIXQpdGhyb3cgcn10aWUoKX1zdGF0aWMgZnJvbVN0b3JhZ2UoKXtsZXQgZT1uTmEoKTtyZXR1cm4gZT9uZXcgYShlLm9yaWdpbixlLnJlZnJlc2gsZS5hY2Nlc3MsZS5leHBpcmVzKTpudWxsfXN0YXRpYyBhc3luYyBmcm9tQXV0aENvZGUoe2VkaXRvck9yaWdpbjplLGNsaWVudElkOnQsY29kZVZlcmlmaWVyOnIsYXV0aENvZGU6aSxyZWRpcmVjdFVyaTpvfSl7bGV0IG49YXdhaXQgZmV0Y2goYCR7ZX0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2NsaWVudF9pZDp0LGNvZGU6aSxjb2RlX3ZlcmlmaWVyOnIsZ3JhbnRfdHlwZToiYXV0aG9yaXphdGlvbl9jb2RlIixyZWRpcmVjdF91cmk6b30pLG1vZGU6ImNvcnMifSk7aWYoIW4ub2spdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggdG9rZW46ICR7bi5zdGF0dXN9YCk7bGV0IGw9YXdhaXQgbi5qc29uKCk7RWRhKGwpO2xldHthY2Nlc3NfdG9rZW46ZCxyZWZyZXNoX3Rva2VuOmN9PWwscD1QZGEobCk7cmV0dXJuIG5ldyBhKGUsYyxkLHApfWFzeW5jIF9mZXRjaE5ld0FjY2Vzc1Rva2VuKCl7dHJ5e2xldCBlPWF3YWl0IGZldGNoKGAke3RoaXMub3JpZ2lufS9vYXV0aC90b2tlbmAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyh7Z3JhbnRfdHlwZToicmVmcmVzaF90b2tlbiIscmVmcmVzaF90b2tlbjp0aGlzLnJlZnJlc2h9KSxtb2RlOiJjb3JzIixzaWduYWw6dGhpcy5fcmV2b2tlZC5zaWduYWx9KTtpZighZS5vayl0aHJvdyBEZGE7bGV0IHQ9YXdhaXQgZS5qc29uKCk7RWRhKHQpO2xldHthY2Nlc3NfdG9rZW46cixyZWZyZXNoX3Rva2VuOml9PXQsbz1QZGEodCk7cmV0dXJuIHRoaXMuYWNjZXNzPXIsdGhpcy5leHBpcmVzPW8sdGhpcy5yZWZyZXNoPWksITB9Y2F0Y2h7cmV0dXJuIHRpZSgpLCExfX1fc3luYygpe2xOYSh0aGlzKSxkTmEodGhpcy5hY2Nlc3MpfWFzeW5jIF9zdGFydFJlZnJlc2hUb2tlbnNMb29wKGUpe2Zvcig7Oyl7bGV0IHQ9dGhpcy5leHBpcmVzLURhdGUubm93KCktMWUzO2lmKGF3YWl0IGNOYShNYXRoLm1heCh0LDFlMykpLHRoaXMuX3Jldm9rZWQuc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2lmKCF0aGlzLl9mZXRjaE5ld0FjY2Vzc1Rva2VuKCkpe2UoKTtyZXR1cm59dGhpcy5fc3luYygpfX19O3ModGllLCJjbGVhclRva2Vuc0luU3RvcmFnZSIpO3MoSWRhLCJhZGRBY2Nlc3NUb2tlbkNoYW5nZWRMaXN0ZW5lciIpO3Mobk5hLCJyZWFkVG9rZW5zRnJvbVN0b3JhZ2UiKTtzKGxOYSwicGVyc2lzdFRva2Vuc0luU3RvcmFnZSIpO3MoUGRhLCJnZXRFeHBpcmVzRnJvbVRva2VuUmVzcG9uc2UiKTtzKEVkYSwiYXNzZXJ0VG9rZW5SZXNwb25zZSIpO3MoY05hLCJ3YWl0Iik7cyhkTmEsImZpcmVBY2Nlc3NUb2tlbkNoYW5nZWQiKX0pO3ZhciBXUWUsYWllLEVjLEdRZT1mKCgpPT57ZWllKCk7V1FlPXt9LGFpZT1udWxsLEVjPXtnZXQgZWRpdG9yT3JpZ2luKCl7cmV0dXJuIGFpZT09bnVsbCYmKGFpZT1uZXcgVVJMKGdsb2JhbFRoaXMuV0VCQ09OVEFJTkVSX0FQSV9JRlJBTUVfVVJMPz9MZGEpLm9yaWdpbiksYWllfSxzZXQgZWRpdG9yT3JpZ2luKGEpe2FpZT1uZXcgVVJMKGEpLm9yaWdpbn0sc2V0UXVlcnlQYXJhbShhLGUpe1dRZVthXT1lfSxnZXQgdXJsKCl7bGV0IGE9bmV3IFVSTCh0aGlzLmVkaXRvck9yaWdpbik7YS5wYXRobmFtZT0iL2hlYWRsZXNzIjtmb3IobGV0IGUgaW4gV1FlKWEuc2VhcmNoUGFyYW1zLnNldChlLFdRZVtlXSk7cmV0dXJuIGEuc2VhcmNoUGFyYW1zLnNldCgidmVyc2lvbiIsIjEuNi4xIiksYX19fSk7YXN5bmMgZnVuY3Rpb24gTmRhKGEpe2xldCBlPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShhKSx0PW5ldyBVaW50OEFycmF5KGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKSk7cmV0dXJuIGJ0b2EodC5yZWR1Y2UoKHIsaSk9PnIrU3RyaW5nLmZyb21Db2RlUG9pbnQoaSksIiIpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWZ1bmN0aW9uIFJkYSgpe2xldCBhPW5ldyBVaW50OEFycmF5KDk2KTtjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpO2xldCBlPSIiO2ZvcihsZXQgdD0wO3Q8MzI7Kyt0KWUrPXVOYShhWzMqdCswXSxhWzMqdCsxXSxhWzMqdCsyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gdU5hKGEsZSx0KXtsZXQgcj1hPj4yLGk9KGEmMyk8PDR8ZT4+NCxvPWUmMTV8KHQmMTkyKT4+MixuPXQmNjM7cmV0dXJuW3IsaSxvLG5dLm1hcChwTmEpLmpvaW4oIiIpfWZ1bmN0aW9uIHBOYShhKXtsZXQgZTtyZXR1cm4gYTwyNj9lPWErNjU6YTw1Mj9lPWEtMjYrOTc6YTw2Mj9lPWEtNTIrNDg6ZT1hPT09NjI/MzA6NDUsU3RyaW5nLmZyb21DaGFyQ29kZShlKX12YXIgT2RhPWYoKCk9PntzKE5kYSwiUzI1NiIpO3MoUmRhLCJuZXdDb2RlVmVyaWZpZXIiKTtzKHVOYSwibmV4dEZvdXJDaGFycyIpO3MocE5hLCJ1bnJlc2VydmVkQ2hhcmFjdGVycyIpfSk7ZnVuY3Rpb24gRmRhKCl7bGV0IGEsZTtmdW5jdGlvbiB0KCl7ZT1uZXcgUHJvbWlzZShyPT5hPXIpfXJldHVybiBzKHQsInJlc2V0IiksdCgpLHtnZXQgcHJvbWlzZSgpe3JldHVybiBlfSxyZXNvbHZlKHIpe3JldHVybiBhKHIpfSxyZXNldDp0fX12YXIgQmRhPWYoKCk9PntzKEZkYSwicmVzZXR0YWJsZVByb21pc2UiKX0pO2Z1bmN0aW9uIG5HKGEpe1p0LmJyb2FkY2FzdENoYW5uZWwmJihadC5icm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKGEpLGxvY2FsU3RvcmFnZS5nZXRJdGVtKEpzZSk9PT0idHJ1ZSImJmEudHlwZSE9PSJhdXRoLWxvZ291dCImJihsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShKc2UpLHNldFRpbWVvdXQoKCk9Pnt3aW5kb3cuY2xvc2UoKX0pKSl9ZnVuY3Rpb24gWVFlKCl7ZzUuZmlyZUV2ZW50KCksbkcoe3R5cGU6ImF1dGgtbG9nb3V0In0pfWZ1bmN0aW9uIHFkYSgpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZn1hc3luYyBmdW5jdGlvbiBWZGEoKXtsZXQgYT1SZGEoKTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShRc2UsYSk7bGV0IGU9YXdhaXQgTmRhKGEpLHQ9bmV3IFVSTCgiL29hdXRoL2F1dGhvcml6ZSIsWnQuZWRpdG9yT3JpZ2luKSx7c2VhcmNoUGFyYW1zOnJ9PXQ7cmV0dXJuIHIuYXBwZW5kKCJyZXNwb25zZV90eXBlIiwiY29kZSIpLHIuYXBwZW5kKCJjbGllbnRfaWQiLFp0LmNsaWVudElkKSxyLmFwcGVuZCgicmVkaXJlY3RfdXJpIixxZGEoKSksci5hcHBlbmQoInNjb3BlIixadC5vYXV0aFNjb3BlKSxyLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2UiLGUpLHIuYXBwZW5kKCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJTMjU2IiksdC50b1N0cmluZygpfWZ1bmN0aW9uIEtRZShhKXtpZighYSl0aHJvdyBuZXcgRXJyb3IoIk9vcHMhIFRva2VucyBpcyBub3QgZGVmaW5lZCB3aGVuIGl0IGFsd2F5cyBzaG91bGQgYmUuIil9dmFyIFp0LEhkYSxnNSxqZGEsWlFlPWYoKCk9PntVUWUoKTtlaWUoKTtHUWUoKTtPZGEoKTtCZGEoKTtqUWUoKTtadD17aW5pdGlhbGl6ZWQ6ITEsYm9vdENhbGxlZDohMSxhdXRoQ29tcGxldGU6RmRhKCksY2xpZW50SWQ6IiIsb2F1dGhTY29wZToiIixicm9hZGNhc3RDaGFubmVsOm51bGwsZ2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBFYy5lZGl0b3JPcmlnaW59LHRva2VuczpudWxsfSxIZGE9bmV3IG01LGc1PW5ldyBtNTtzKG5HLCJicm9hZGNhc3RNZXNzYWdlIik7amRhPXtpbml0KHtlZGl0b3JPcmlnaW46YSxjbGllbnRJZDplLHNjb3BlOnR9KXtpZihadC5pbml0aWFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkluaXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UiKTtpZighMCYmWnQuYm9vdENhbGxlZCl0aHJvdyBuZXcgRXJyb3IoImBhdXRoLmluaXRgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgIik7WnQuaW5pdGlhbGl6ZWQ9ITAsWnQudG9rZW5zPXQ3LmZyb21TdG9yYWdlKCksWnQuY2xpZW50SWQ9ZSxadC5vYXV0aFNjb3BlPXQsWnQuYnJvYWRjYXN0Q2hhbm5lbD1uZXcgQnJvYWRjYXN0Q2hhbm5lbCgkZGEpLEVjLnNldFF1ZXJ5UGFyYW0oImNsaWVudF9pZCIsZSksYSYmKEVjLmVkaXRvck9yaWdpbj1uZXcgVVJMKGEpLm9yaWdpbiksZzUubGlzdGVuKCgpPT5adC5hdXRoQ29tcGxldGUucmVzZXQoKSksWnQuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKTthc3luYyBmdW5jdGlvbiBpKGQpe2xldCBjPWQuZGF0YTtpZihjLnR5cGU9PT0iYXV0aC1jb21wbGV0ZSIpe1p0LnRva2Vucz10Ny5mcm9tU3RvcmFnZSgpLGF3YWl0IFp0LnRva2Vucy5hY3RpdmF0ZShZUWUpLFp0LmF1dGhDb21wbGV0ZS5yZXNvbHZlKCk7cmV0dXJufWlmKGMudHlwZT09PSJhdXRoLWZhaWxlZCIpe0hkYS5maXJlRXZlbnQoYyk7cmV0dXJufWlmKGMudHlwZT09PSJhdXRoLWxvZ291dCIpe2c1LmZpcmVFdmVudCgpO3JldHVybn19aWYocyhpLCJvbkNoYW5uZWxNZXNzYWdlIiksWnQudG9rZW5zKXtsZXQgZD1adC50b2tlbnM7aWYoZC5vcmlnaW49PT1adC5lZGl0b3JPcmlnaW4pcmV0dXJuKGFzeW5jKCk9PntpZighYXdhaXQgZC5hY3RpdmF0ZShZUWUpKXtpZihadC50b2tlbnMhPT1kKXJldHVybjtnNS5maXJlRXZlbnQoKTtyZXR1cm59WnQuYXV0aENvbXBsZXRlLnJlc29sdmUoKX0pKCkse3N0YXR1czoiYXV0aG9yaXplZCJ9O3RpZSgpLFp0LnRva2Vucz1udWxsfWxldCBvPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLHtzZWFyY2hQYXJhbXM6bn09byxsPXMoKCk9PndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSxkb2N1bWVudC50aXRsZSxvKSwidXBkYXRlVVJMIik7aWYobi5oYXMoWnNlKSl7bGV0IGQ9bi5nZXQoWnNlKSxjPW4uZ2V0KFZRZSk7cmV0dXJuIG4uZGVsZXRlKFpzZSksbi5kZWxldGUoVlFlKSxsKCksbkcoe3R5cGU6ImF1dGgtZmFpbGVkIixlcnJvcjpkLGRlc2NyaXB0aW9uOmN9KSx7c3RhdHVzOiJhdXRoLWZhaWxlZCIsZXJyb3I6ZCxkZXNjcmlwdGlvbjpjfX1pZihuLmhhcyhLc2UpKXtsZXQgZD1uLmdldChLc2UpLGM9WnQuZWRpdG9yT3JpZ2luO24uZGVsZXRlKEtzZSksbCgpO2xldCBwPWxvY2FsU3RvcmFnZS5nZXRJdGVtKFFzZSk7cmV0dXJuIHA/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFFzZSksdDcuZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46YyxjbGllbnRJZDpadC5jbGllbnRJZCxhdXRoQ29kZTpkLGNvZGVWZXJpZmllcjpwLHJlZGlyZWN0VXJpOnFkYSgpfSkudGhlbihhc3luYyB1PT57aWYoWnQudG9rZW5zPXUsS1FlKFp0LnRva2VucyksIWF3YWl0IFp0LnRva2Vucy5hY3RpdmF0ZShZUWUpKXRocm93IG5ldyBFcnJvcjtadC5hdXRoQ29tcGxldGUucmVzb2x2ZSgpLG5HKHt0eXBlOiJhdXRoLWNvbXBsZXRlIn0pfSkuY2F0Y2godT0+e2NvbnNvbGUuZXJyb3IodSksZzUuZmlyZUV2ZW50KCksbkcoe3R5cGU6ImF1dGgtbG9nb3V0In0pfSkse3N0YXR1czoiYXV0aG9yaXplZCJ9KTp7c3RhdHVzOiJuZWVkLWF1dGgifX1yZXR1cm57c3RhdHVzOiJuZWVkLWF1dGgifX0sYXN5bmMgc3RhcnRBdXRoRmxvdyh7cG9wdXA6YX09e30pe2lmKCFadC5pbml0aWFsaXplZCl0aHJvdyBuZXcgRXJyb3IoImF1dGguaW5pdCBtdXN0IGJlIGNhbGxlZCBmaXJzdCIpO2lmKGEpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKEpzZSwidHJ1ZSIpO2xldCBlPTUwMCx0PTYyMCxyPXdpbmRvdy5zY3JlZW5MZWZ0Kyh3aW5kb3cub3V0ZXJXaWR0aC10KS8yLGk9d2luZG93LnNjcmVlblRvcCsod2luZG93Lm91dGVySGVpZ2h0LWUpLzI7d2luZG93Lm9wZW4oYXdhaXQgVmRhKCksIl9ibGFuayIsYHBvcHVwLHdpZHRoPSR7dH0saGVpZ2h0PSR7ZX0sbGVmdD0ke3J9LHRvcD0ke2l9YCl9ZWxzZSB3aW5kb3cubG9jYXRpb24uaHJlZj1hd2FpdCBWZGEoKX0sYXN5bmMgbG9nb3V0KHtpZ25vcmVSZXZva2VFcnJvcjphfT17fSl7YXdhaXQgWnQudG9rZW5zPy5yZXZva2UoWnQuY2xpZW50SWQsYT8/ITEpLGc1LmZpcmVFdmVudCgpLG5HKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0sbG9nZ2VkSW4oKXtyZXR1cm4gWnQuYXV0aENvbXBsZXRlLnByb21pc2V9LG9uKGEsZSl7c3dpdGNoKGEpe2Nhc2UiYXV0aC1mYWlsZWQiOnJldHVybiBIZGEubGlzdGVuKGUpO2Nhc2UibG9nZ2VkLW91dCI6cmV0dXJuIGc1Lmxpc3RlbihlKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdHlwZSAnJHthfScuYCl9fX07cyhZUWUsIm9uRmFpbGVkVG9rZW5SZWZyZXNoIik7cyhxZGEsImRlZmF1bHRSZWRpcmVjdFVyaSIpO3MoVmRhLCJnZW5lcmF0ZU9BdXRoUmVxdWVzdCIpO3MoS1FlLCJhc3NlcnRBdXRoVG9rZW5zIil9KTt2YXIgSWMscmllPWYoKCk9PnsoZnVuY3Rpb24oYSl7YS5VbmNhdWdodEV4Y2VwdGlvbj0iUFJFVklFV19VTkNBVUdIVF9FWENFUFRJT04iLGEuVW5oYW5kbGVkUmVqZWN0aW9uPSJQUkVWSUVXX1VOSEFORExFRF9SRUpFQ1RJT04iLGEuQ29uc29sZUVycm9yPSJQUkVWSUVXX0NPTlNPTEVfRVJST1IifSkoSWN8fChJYz17fSkpfSk7ZnVuY3Rpb24gZUplKGEsZT1zZWxmKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHMoZnVuY3Rpb24gdChyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47bGV0e2lkOmksdHlwZTpvLHBhdGg6bn09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxsPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKGI1KSxkO3RyeXtsZXQgYz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgodSxtKT0+dVttXSxhKSxwPW4ucmVkdWNlKCh1LG0pPT51W21dLGEpO3N3aXRjaChvKXtjYXNlIDA6ZD1wO2JyZWFrO2Nhc2UgMTpjW24uc2xpY2UoLTEpWzBdXT1iNShyLmRhdGEudmFsdWUpLGQ9ITA7YnJlYWs7Y2FzZSAyOmQ9cC5hcHBseShjLGwpO2JyZWFrO2Nhc2UgMzp7bGV0IHU9bmV3IHAoLi4ubCk7ZD1KZGEodSl9YnJlYWs7Y2FzZSA0OntsZXR7cG9ydDE6dSxwb3J0MjptfT1uZXcgTWVzc2FnZUNoYW5uZWw7ZUplKGEsbSksZD1RZGEodSxbdV0pfWJyZWFrO2Nhc2UgNTpkPXZvaWQgMDticmVha319Y2F0Y2goYyl7ZD17dmFsdWU6YyxbUVFlXTowfX1Qcm9taXNlLnJlc29sdmUoZCkuY2F0Y2goYz0+KHt2YWx1ZTpjLFtRUWVdOjB9KSkudGhlbihjPT57bGV0W3AsdV09YUplKGMpO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHApLHtpZDppfSksdSksbz09PTUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHQpLFlkYShlKSl9KX0sImNhbGxiYWNrIikpLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBiTmEoYSl7cmV0dXJuIGEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gWWRhKGEpe2JOYShhKSYmYS5jbG9zZSgpfWZ1bmN0aW9uIEtkYShhLGUpe3JldHVybiB0SmUoYSxbXSxlKX1mdW5jdGlvbiBzaWUoYSl7aWYoYSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHRKZShhLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCByPSExLGk9bmV3IFByb3h5KHQse2dldChvLG4pe2lmKHNpZShyKSxuPT09V2RhKXJldHVybigpPT5hNyhhLHt0eXBlOjUscGF0aDplLm1hcChsPT5sLnRvU3RyaW5nKCkpfSkudGhlbigoKT0+e1lkYShhKSxyPSEwfSk7aWYobj09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOnMoKCk9PmksInRoZW4iKX07bGV0IGw9YTcoYSx7dHlwZTowLHBhdGg6ZS5tYXAoZD0+ZC50b1N0cmluZygpKX0pLnRoZW4oYjUpO3JldHVybiBsLnRoZW4uYmluZChsKX1yZXR1cm4gdEplKGEsWy4uLmUsbl0pfSxzZXQobyxuLGwpe3NpZShyKTtsZXRbZCxjXT1hSmUobCk7cmV0dXJuIGE3KGEse3R5cGU6MSxwYXRoOlsuLi5lLG5dLm1hcChwPT5wLnRvU3RyaW5nKCkpLHZhbHVlOmR9LGMpLnRoZW4oYjUpfSxhcHBseShvLG4sbCl7c2llKHIpO2xldCBkPWVbZS5sZW5ndGgtMV07aWYoZD09PVVkYSlyZXR1cm4gYTcoYSx7dHlwZTo0fSkudGhlbihiNSk7aWYoZD09PSJiaW5kIilyZXR1cm4gdEplKGEsZS5zbGljZSgwLC0xKSk7bGV0W2MscF09WmRhKGwpO3JldHVybiBhNyhhLHt0eXBlOjIscGF0aDplLm1hcCh1PT51LnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpjfSxwKS50aGVuKGI1KX0sY29uc3RydWN0KG8sbil7c2llKHIpO2xldFtsLGRdPVpkYShuKTtyZXR1cm4gYTcoYSx7dHlwZTozLHBhdGg6ZS5tYXAoYz0+Yy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6bH0sZCkudGhlbihiNSl9fSk7cmV0dXJuIGl9ZnVuY3Rpb24gdk5hKGEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGEpfWZ1bmN0aW9uIFpkYShhKXtsZXQgZT1hLm1hcChhSmUpO3JldHVybltlLm1hcCh0PT50WzBdKSx2TmEoZS5tYXAodD0+dFsxXSkpXX1mdW5jdGlvbiBRZGEoYSxlKXtyZXR1cm4gWGRhLnNldChhLGUpLGF9ZnVuY3Rpb24gSmRhKGEpe3JldHVybiBPYmplY3QuYXNzaWduKGEse1tYUWVdOiEwfSl9ZnVuY3Rpb24geE5hKGEsZT1zZWxmLHQ9IioiKXtyZXR1cm57cG9zdE1lc3NhZ2U6cygocixpKT0+YS5wb3N0TWVzc2FnZShyLHQsaSksInBvc3RNZXNzYWdlIiksYWRkRXZlbnRMaXN0ZW5lcjplLmFkZEV2ZW50TGlzdGVuZXIuYmluZChlKSxyZW1vdmVFdmVudExpc3RlbmVyOmUucmVtb3ZlRXZlbnRMaXN0ZW5lci5iaW5kKGUpfX1mdW5jdGlvbiBhSmUoYSl7Zm9yKGxldFtlLHRdb2YgSlFlKWlmKHQuY2FuSGFuZGxlKGEpKXtsZXRbcixpXT10LnNlcmlhbGl6ZShhKTtyZXR1cm5be3R5cGU6MyxuYW1lOmUsdmFsdWU6cn0saV19cmV0dXJuW3t0eXBlOjAsdmFsdWU6YX0sWGRhLmdldChhKXx8W11dfWZ1bmN0aW9uIGI1KGEpe3N3aXRjaChhLnR5cGUpe2Nhc2UgMzpyZXR1cm4gSlFlLmdldChhLm5hbWUpLmRlc2VyaWFsaXplKGEudmFsdWUpO2Nhc2UgMDpyZXR1cm4gYS52YWx1ZX19ZnVuY3Rpb24gYTcoYSxlLHQpe3JldHVybiBuZXcgUHJvbWlzZShyPT57bGV0IGk9eU5hKCk7YS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixzKGZ1bmN0aW9uIG8obil7IW4uZGF0YXx8IW4uZGF0YS5pZHx8bi5kYXRhLmlkIT09aXx8KGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbykscihuLmRhdGEpKX0sImwiKSksYS5zdGFydCYmYS5zdGFydCgpLGEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6aX0sZSksdCl9KX1mdW5jdGlvbiB5TmEoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfXZhciBmTmEsaE5hLEduLFhRZSxVZGEsV2RhLFFRZSxHZGEsbU5hLGdOYSxKUWUsWGRhLGU2YT1mKCgpPT57Zk5hPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxoTmE9cygoYSxlKT0+e2Zvcih2YXIgdCBpbiBlKWZOYShhLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX0sIl9fZXhwb3J0IiksR249e307aE5hKEduLHtjcmVhdGVFbmRwb2ludDpzKCgpPT5VZGEsImNyZWF0ZUVuZHBvaW50IiksZXhwb3NlOnMoKCk9PmVKZSwiZXhwb3NlIikscHJveHk6cygoKT0+SmRhLCJwcm94eSIpLHByb3h5TWFya2VyOnMoKCk9PlhRZSwicHJveHlNYXJrZXIiKSxyZWxlYXNlUHJveHk6cygoKT0+V2RhLCJyZWxlYXNlUHJveHkiKSx0cmFuc2ZlcjpzKCgpPT5RZGEsInRyYW5zZmVyIiksdHJhbnNmZXJIYW5kbGVyczpzKCgpPT5KUWUsInRyYW5zZmVySGFuZGxlcnMiKSx3aW5kb3dFbmRwb2ludDpzKCgpPT54TmEsIndpbmRvd0VuZHBvaW50Iiksd3JhcDpzKCgpPT5LZGEsIndyYXAiKX0pO1hRZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxVZGE9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksV2RhPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxRUWU9U3ltYm9sKCJDb21saW5rLnRocm93biIpLEdkYT1zKGE9PnR5cGVvZiBhPT0ib2JqZWN0IiYmYSE9PW51bGx8fHR5cGVvZiBhPT0iZnVuY3Rpb24iLCJpc09iamVjdCIpLG1OYT17Y2FuSGFuZGxlOnMoYT0+R2RhKGEpJiZhW1hRZV0sImNhbkhhbmRsZSIpLHNlcmlhbGl6ZShhKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGVKZShhLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKGEpe3JldHVybiBhLnN0YXJ0KCksS2RhKGEpfX0sZ05hPXtjYW5IYW5kbGU6cyhhPT5HZGEoYSkmJlFRZSBpbiBhLCJjYW5IYW5kbGUiKSxzZXJpYWxpemUoe3ZhbHVlOmF9KXtsZXQgZTtyZXR1cm4gYSBpbnN0YW5jZW9mIEVycm9yP2U9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6YS5tZXNzYWdlLG5hbWU6YS5uYW1lLHN0YWNrOmEuc3RhY2t9fTplPXtpc0Vycm9yOiExLHZhbHVlOmF9LFtlLFtdXX0sZGVzZXJpYWxpemUoYSl7dGhyb3cgYS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKGEudmFsdWUubWVzc2FnZSksYS52YWx1ZSk6YS52YWx1ZX19LEpRZT1uZXcgTWFwKFtbInByb3h5IixtTmFdLFsidGhyb3ciLGdOYV1dKTtzKGVKZSwiZXhwb3NlIik7cyhiTmEsImlzTWVzc2FnZVBvcnQiKTtzKFlkYSwiY2xvc2VFbmRQb2ludCIpO3MoS2RhLCJ3cmFwIik7cyhzaWUsInRocm93SWZQcm94eVJlbGVhc2VkIik7cyh0SmUsImNyZWF0ZVByb3h5Iik7cyh2TmEsIm15RmxhdCIpO3MoWmRhLCJwcm9jZXNzQXJndW1lbnRzIik7WGRhPW5ldyBXZWFrTWFwO3MoUWRhLCJ0cmFuc2ZlciIpO3MoSmRhLCJwcm94eSIpO3MoeE5hLCJ3aW5kb3dFbmRwb2ludCIpO3MoYUplLCJ0b1dpcmVWYWx1ZSIpO3MoYjUsImZyb21XaXJlVmFsdWUiKTtzKGE3LCJyZXF1ZXN0UmVzcG9uc2VNZXNzYWdlIik7cyh5TmEsImdlbmVyYXRlVVVJRCIpfSk7dmFyIHQ2YT1mKCgpPT57fSk7ZnVuY3Rpb24gckplKGEpe3JldHVybiEoYT09bnVsbHx8dHlwZW9mIGEhPSJvYmplY3QifHwhKCJ0eXBlImluIGEpfHwhd05hLmluY2x1ZGVzKGEudHlwZSkpfXZhciB3TmEsYTZhPWYoKCk9PntyaWUoKTt3TmE9W0ljLkNvbnNvbGVFcnJvcixJYy5VbmNhdWdodEV4Y2VwdGlvbixJYy5VbmhhbmRsZWRSZWplY3Rpb25dO3MockplLCJpc1ByZXZpZXdNZXNzYWdlIil9KTt2YXIgc0plPWYoKCk9Pnt0NmEoKTtyaWUoKTthNmEoKX0pO2Z1bmN0aW9uIHY1KGEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGE/T2JqZWN0LmFzc2lnbihlLGEpOmV9dmFyIHI2YT1mKCgpPT57cyh2NSwibnVsbFByb3RvdHlwZSIpfSk7ZnVuY3Rpb24gaUplKGEpe2xldCBlPXtkOnt9fTtmb3IobGV0IHQgb2YgT2JqZWN0LmtleXMoYSkpe2xldCByPWFbdF07aWYoImZpbGUiaW4gcil7aWYoInN5bWxpbmsiaW4gci5maWxlKXtlLmRbdF09e2Y6e2w6ci5maWxlLnN5bWxpbmt9fTtjb250aW51ZX1sZXQgbz1yLmZpbGUuY29udGVudHMsbj10eXBlb2Ygbz09InN0cmluZyI/bzpNTmEuZGVjb2RlKG8pLGw9dHlwZW9mIG89PSJzdHJpbmciP3t9OntiOiEwfTtlLmRbdF09e2Y6e2M6biwuLi5sfX07Y29udGludWV9bGV0IGk9aUplKHIuZGlyZWN0b3J5KTtlLmRbdF09aX1yZXR1cm4gZX1mdW5jdGlvbiBvSmUoYSl7bGV0IGU9djUoKTtpZigiZiJpbiBhKXRocm93IG5ldyBFcnJvcigiSXQgaXMgbm90IHBvc3NpYmxlIHRvIGV4cG9ydCBhIHNpbmdsZSBmaWxlIGluIHRoZSBKU09OIGZvcm1hdC4iKTtpZigiZCJpbiBhKWZvcihsZXQgdCBvZiBPYmplY3Qua2V5cyhhLmQpKXtsZXQgcj1hLmRbdF07ImQiaW4gcj9lW3RdPXY1KHtkaXJlY3Rvcnk6b0plKHIpfSk6ImYiaW4gciYmKCJjImluIHIuZj9lW3RdPXY1KHtmaWxlOnY1KHtjb250ZW50czpyLmYuYj9rTmEoci5mLmMpOnIuZi5jfSl9KToibCJpbiByLmYmJihlW3RdPXY1KHtmaWxlOnY1KHtzeW1saW5rOnIuZi5sfSl9KSkpfXJldHVybiBlfWZ1bmN0aW9uIGtOYShhKXtsZXQgZT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0KyspZVt0XT1hW3RdLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGV9dmFyIE1OYSxzNmE9ZigoKT0+e3I2YSgpO01OYT1uZXcgVGV4dERlY29kZXIoImxhdGluMSIpO3MoaUplLCJ0b0ludGVybmFsRmlsZVN5c3RlbVRyZWUiKTtzKG9KZSwidG9FeHRlcm5hbEZpbGVTeXN0ZW1UcmVlIik7cyhrTmEsImZyb21CaW5hcnlTdHJpbmciKX0pO2Z1bmN0aW9uIFhjbyhhKXtpZihadC5ib290Q2FsbGVkKXRocm93IG5ldyBFcnJvcigiYGNvbmZpZ3VyZUFQSUtleWAgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgYmVmb3JlIGBXZWJDb250YWluZXIuYm9vdGAiKTtFYy5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLGEpfWFzeW5jIGZ1bmN0aW9uIF9OYShhKXtsZXR7c2VydmVyUHJvbWlzZTplfT1UTmEoYSkscj1hd2FpdChhd2FpdCBlKS5idWlsZCh7aG9zdDp3aW5kb3cubG9jYXRpb24uaG9zdCx2ZXJzaW9uOiIxLjYuMSIsd29ya2Rpck5hbWU6YS53b3JrZGlyTmFtZSxmb3J3YXJkUHJldmlld0Vycm9yczphLmZvcndhcmRQcmV2aWV3RXJyb3JzfSksW2ksbyxuXT1hd2FpdCBQcm9taXNlLmFsbChbci5mcygpLHIucHJldmlld1NjcmlwdCgpLHIucnVudGltZUluZm8oKV0pO3JldHVybiBuZXcgbEcocixpLG8sbil9ZnVuY3Rpb24gcEplKGEpe2lmKGEhPW51bGwpcmV0dXJuIGU9PntlIGluc3RhbmNlb2YgVWludDhBcnJheT9hKGk2YS5kZWNvZGUoZSkpOmU9PW51bGwmJmEobnVsbCl9fWZ1bmN0aW9uIG5pZShhKXtpZihhIT1udWxsKXJldHVybiBHbi5wcm94eShhKX1mdW5jdGlvbiBUTmEoYSl7aWYob2llIT1udWxsKXJldHVybiBhLmNvZXAhPT1uSmUuY29lcCYmKGNvbnNvbGUud2FybihgQXR0ZW1wdGluZyB0byBib290IFdlYkNvbnRhaW5lciB3aXRoICdjb2VwOiAke2EuY29lcH0nYCksY29uc29sZS53YXJuKGBGaXJzdCBib290IGhhZCAnY29lcDogJHtuSmUuY29lcH0nLCBuZXcgc2V0dGluZ3Mgd2lsbCBub3QgdGFrZSBlZmZlY3QhYCkpLHtzZXJ2ZXJQcm9taXNlOm9pZX07YS5jb2VwJiZFYy5zZXRRdWVyeVBhcmFtKCJjb2VwIixhLmNvZXApLGEuZXhwZXJpbWVudGFsTm9kZSYmRWMuc2V0UXVlcnlQYXJhbSgiZXhwZXJpbWVudGFsX25vZGUiLCIxIik7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZS5zdHlsZS5kaXNwbGF5PSJub25lIixlLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCJjcm9zcy1vcmlnaW4taXNvbGF0ZWQiKTtsZXQgdD1FYy51cmw7ZS5zcmM9dC50b1N0cmluZygpO2xldHtvcmlnaW46cn09dDtyZXR1cm4gbkplPXsuLi5hfSxvaWU9bmV3IFByb21pc2UoaT0+e2xldCBvPXMobj0+e2lmKG4ub3JpZ2luIT09cilyZXR1cm47bGV0e2RhdGE6bH09bjtpZihsLnR5cGU9PT0iaW5pdCIpe2koR24ud3JhcChuLnBvcnRzWzBdKSk7cmV0dXJufWlmKGwudHlwZT09PSJ3YXJuaW5nIil7Y29uc29sZVtsLmxldmVsXS5jYWxsKGNvbnNvbGUsbC5tZXNzYWdlKTtyZXR1cm59fSwib25NZXNzYWdlIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pfSksZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZSxudWxsKSx7c2VydmVyUHJvbWlzZTpvaWV9fWZ1bmN0aW9uIExOYShhKXtyZXR1cm4gdHlwZW9mIGFbMF09PSJzdHJpbmcifWZ1bmN0aW9uICROYShhKXtyZXR1cm4gYVswXWluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBETmEoKXtsZXQgYT1udWxsO3JldHVybntzdHJlYW06bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChyKXthPXJ9fSkscHVzaDpzKHI9PntyIT1udWxsP2E/LmVucXVldWUocik6KGE/LmNsb3NlKCksYT1udWxsKX0sInB1c2giKX19ZnVuY3Rpb24gQU5hKGEpe2xldCBlPSExLHQ9cygoKT0+e30sInVuc3Vic2NyaWJlIik7cmV0dXJue3N1YnNjcmliZShpKXtyZXR1cm4gaS50aGVuKG89Pnt0PW8sZSYmdCgpfSksKCk9PntlPSEwLHQoKX19LGxpc3RlbmVyOnMoKCguLi5pKT0+e2V8fGEoLi4uaSl9KSwid3JhcHBlZCIpfX12YXIgWmNvLGlpZSxvaWUsbkplLGk2YSxTTmEsbEcsek5hLENOYSxsSmUsY0plLGRKZSx1SmUsbzZhPWYoKCk9PntaUWUoKTtyaWUoKTtlNmEoKTtaUWUoKTtVUWUoKTtHUWUoKTtzSmUoKTtzNmEoKTtzSmUoKTtaY289amRhLGlpZT1udWxsLG9pZT1udWxsLG5KZT17fSxpNmE9bmV3IFRleHREZWNvZGVyLFNOYT1uZXcgVGV4dEVuY29kZXIsbEc9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJXZWJDb250YWluZXIiKX1faW5zdGFuY2U7X3J1bnRpbWVJbmZvO2ZzO3N0YXRpYyBfaW5zdGFuY2U9bnVsbDtzdGF0aWMgX3RlYXJkb3duUHJvbWlzZT1udWxsO190b3JuRG93bj0hMTtfdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXI9cygoKT0+e30sIl91bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lciIpO2NvbnN0cnVjdG9yKGUsdCxyLGkpe3RoaXMuX2luc3RhbmNlPWUsdGhpcy5fcnVudGltZUluZm89aSx0aGlzLmZzPW5ldyB1SmUodCksWnQuaW5pdGlhbGl6ZWQmJih0aGlzLl91bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcj1JZGEobz0+e3RoaXMuX2luc3RhbmNlLnNldENyZWRlbnRpYWxzKHthY2Nlc3NUb2tlbjpvLGVkaXRvck9yaWdpbjpadC5lZGl0b3JPcmlnaW59KX0pLChhc3luYygpPT57YXdhaXQgWnQuYXV0aENvbXBsZXRlLnByb21pc2UsIXRoaXMuX3Rvcm5Eb3duJiYoS1FlKFp0LnRva2VucyksYXdhaXQgdGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe2FjY2Vzc1Rva2VuOlp0LnRva2Vucy5hY2Nlc3MsZWRpdG9yT3JpZ2luOlp0LmVkaXRvck9yaWdpbn0pKX0pKCkuY2F0Y2gobz0+e2NvbnNvbGUuZXJyb3Iobyl9KSl9YXN5bmMgc3Bhd24oZSx0LHIpe2xldCBpPVtdO0FycmF5LmlzQXJyYXkodCk/aT10OnI9dDtsZXQgbyxuPW5ldyBSZWFkYWJsZVN0cmVhbTtpZihyPy5vdXRwdXQhPT0hMSl7bGV0IGI9RE5hKCk7bz1iLnB1c2gsbj1iLnN0cmVhbX1sZXQgbCxkLGMscCx1PW5pZShwSmUobykpLG09bmllKHBKZShsKSksdj1uaWUocEplKGMpKSx4PWF3YWl0IHRoaXMuX2luc3RhbmNlLnJ1bih7Y29tbWFuZDplLGFyZ3M6aSxjd2Q6cj8uY3dkLGVudjpyPy5lbnYsdGVybWluYWw6cj8udGVybWluYWx9LG0sdix1KTtyZXR1cm4gbmV3IGRKZSh4LG4sZCxwKX1hc3luYyBleHBvcnQoZSx0KXtsZXQgcj17Zm9ybWF0OnQ/LmZvcm1hdD8/Impzb24iLGluY2x1ZGVzOnQ/LmluY2x1ZGVzLGV4Y2x1ZGVzOnQ/LmV4Y2x1ZGVzLGV4dGVybmFsOiEwfSxpPWF3YWl0IHRoaXMuX2luc3RhbmNlLnNlcmlhbGl6ZShlLHIpO2lmKHIuZm9ybWF0PT09Impzb24iKXtsZXQgbz1KU09OLnBhcnNlKGk2YS5kZWNvZGUoaSkpO3JldHVybiBvSmUobyl9cmV0dXJuIGl9b24oZSx0KXtpZihlPT09InByZXZpZXctbWVzc2FnZSIpe2xldCBvPXQ7dD1zKChuPT57ckplKG4pJiZvKG4pfSksImxpc3RlbmVyIil9bGV0e2xpc3RlbmVyOnIsc3Vic2NyaWJlOml9PUFOYSh0KTtyZXR1cm4gaSh0aGlzLl9pbnN0YW5jZS5vbihlLEduLnByb3h5KHIpKSl9bW91bnQoZSx0KXtsZXQgcj1lIGluc3RhbmNlb2YgVWludDhBcnJheT9lOmUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9uZXcgVWludDhBcnJheShlKTpTTmEuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGlKZShlKSkpO3JldHVybiB0aGlzLl9pbnN0YW5jZS5sb2FkRmlsZXMoR24udHJhbnNmZXIocixbci5idWZmZXJdKSx7bW91bnRQb2ludHM6dD8ubW91bnRQb2ludH0pfXNldFByZXZpZXdTY3JpcHQoZSx0KXtyZXR1cm4gdGhpcy5faW5zdGFuY2Uuc2V0UHJldmlld1NjcmlwdChlLHQpfWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLnBhdGh9Z2V0IHdvcmtkaXIoKXtyZXR1cm4gdGhpcy5fcnVudGltZUluZm8uY3dkfXRlYXJkb3duKCl7aWYodGhpcy5fdG9ybkRvd24pdGhyb3cgbmV3IEVycm9yKCJXZWJDb250YWluZXIgYWxyZWFkeSB0b3JuIGRvd24iKTt0aGlzLl90b3JuRG93bj0hMCx0aGlzLl91bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcigpO2xldCBlPXMoYXN5bmMoKT0+e3RyeXthd2FpdCB0aGlzLmZzLl90ZWFyZG93bigpLGF3YWl0IHRoaXMuX2luc3RhbmNlLnRlYXJkb3duKCl9ZmluYWxseXt0aGlzLl9pbnN0YW5jZVtHbi5yZWxlYXNlUHJveHldKCksYS5faW5zdGFuY2U9PT10aGlzJiYoYS5faW5zdGFuY2U9bnVsbCl9fSwidGVhcmRvd25GbiIpO2EuX3RlYXJkb3duUHJvbWlzZT1lKCl9c3RhdGljIGFzeW5jIGJvb3QoZT17fSl7YXdhaXQgdGhpcy5fdGVhcmRvd25Qcm9taXNlLGEuX3RlYXJkb3duUHJvbWlzZT1udWxsO2xldHt3b3JrZGlyTmFtZTp0fT1lO2lmKHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkJiZlLmNvZXA9PT0ibm9uZSImJmNvbnNvbGUud2FybihgQSBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGhlYWRlciBpcyByZXF1aXJlZCBpbiBjcm9zcyBvcmlnaW4gaXNvbGF0ZWQgZW52aXJvbm1lbnRzLgpTZXQgdGhlICdjb2VwJyBvcHRpb24gdG8gJ3JlcXVpcmUtY29ycCcuYCksdD8uaW5jbHVkZXMoIi8iKXx8dD09PSIuLiJ8fHQ9PT0iLiIpdGhyb3cgbmV3IEVycm9yKCJ3b3JrZGlyTmFtZSBzaG91bGQgYmUgYSB2YWxpZCBmb2xkZXIgbmFtZSIpO2ZvcihadC5ib290Q2FsbGVkPSEwO2lpZTspYXdhaXQgaWllO2lmKGEuX2luc3RhbmNlKXRocm93IG5ldyBFcnJvcigiT25seSBhIHNpbmdsZSBXZWJDb250YWluZXIgaW5zdGFuY2UgY2FuIGJlIGJvb3RlZCIpO2xldCByPV9OYShlKTtpaWU9ci5jYXRjaCgoKT0+e30pO3RyeXtsZXQgaT1hd2FpdCByO3JldHVybiBhLl9pbnN0YW5jZT1pLGl9ZmluYWxseXtpaWU9bnVsbH19fTtzKFhjbywiY29uZmlndXJlQVBJS2V5Iik7ek5hPTEsQ05hPTIsbEplPWNsYXNze3N0YXRpY3tzKHRoaXMsIkRpckVudEltcGwiKX1uYW1lO190eXBlO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5uYW1lPWUsdGhpcy5fdHlwZT10fWlzRmlsZSgpe3JldHVybiB0aGlzLl90eXBlPT09ek5hfWlzRGlyZWN0b3J5KCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1DTmF9fSxjSmU9Y2xhc3N7c3RhdGlje3ModGhpcywiRlNXYXRjaGVyIil9X2FwaUNsaWVudDtfcGF0aDtfb3B0aW9ucztfbGlzdGVuZXI7X3dyYXBwZWRMaXN0ZW5lcjtfd2F0Y2hlcjtfY2xvc2VkPSExO2NvbnN0cnVjdG9yKGUsdCxyLGkpe3RoaXMuX2FwaUNsaWVudD1lLHRoaXMuX3BhdGg9dCx0aGlzLl9vcHRpb25zPXIsdGhpcy5fbGlzdGVuZXI9aSx0aGlzLl9hcGlDbGllbnQuX3dhdGNoZXJzLmFkZCh0aGlzKSx0aGlzLl93cmFwcGVkTGlzdGVuZXI9KG8sbik9Pnt0aGlzLl9saXN0ZW5lciYmIXRoaXMuX2Nsb3NlZCYmdGhpcy5fbGlzdGVuZXIobyxuKX0sdGhpcy5fYXBpQ2xpZW50Ll9mcy53YXRjaCh0aGlzLl9wYXRoLHRoaXMuX29wdGlvbnMsbmllKHRoaXMuX3dyYXBwZWRMaXN0ZW5lcikpLnRoZW4obz0+e2lmKHRoaXMuX3dhdGNoZXI9byx0aGlzLl9jbG9zZWQpcmV0dXJuIHRoaXMuX3RlYXJkb3duKCl9KS5jYXRjaChjb25zb2xlLmVycm9yKX1hc3luYyBjbG9zZSgpe3RoaXMuX2Nsb3NlZHx8KHRoaXMuX2Nsb3NlZD0hMCx0aGlzLl9hcGlDbGllbnQuX3dhdGNoZXJzLmRlbGV0ZSh0aGlzKSxhd2FpdCB0aGlzLl90ZWFyZG93bigpKX1hc3luYyBfdGVhcmRvd24oKXthd2FpdCB0aGlzLl93YXRjaGVyPy5jbG9zZSgpLmZpbmFsbHkoKCk9Pnt0aGlzLl93YXRjaGVyPy5bR24ucmVsZWFzZVByb3h5XSgpfSl9fSxkSmU9Y2xhc3N7c3RhdGlje3ModGhpcywiV2ViQ29udGFpbmVyUHJvY2Vzc0ltcGwiKX1vdXRwdXQ7aW5wdXQ7ZXhpdDtfcHJvY2VzcztzdGRvdXQ7c3RkZXJyO2NvbnN0cnVjdG9yKGUsdCxyLGkpe3RoaXMub3V0cHV0PXQsdGhpcy5fcHJvY2Vzcz1lLHRoaXMuaW5wdXQ9bmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTpzKG89Pnt0aGlzLl9nZXRQcm9jZXNzKCk/LndyaXRlKG8pLmNhdGNoKCgpPT57fSl9LCJ3cml0ZSIpfSksdGhpcy5leGl0PXRoaXMuX29uRXhpdCgpLHRoaXMuc3Rkb3V0PXIsdGhpcy5zdGRlcnI9aX1raWxsKCl7dGhpcy5fcHJvY2Vzcz8ua2lsbCgpfXJlc2l6ZShlKXt0aGlzLl9nZXRQcm9jZXNzKCk/LnJlc2l6ZShlKX1hc3luYyBfb25FeGl0KCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9wcm9jZXNzLm9uRXhpdH1maW5hbGx5e3RoaXMuX3Byb2Nlc3M/LltHbi5yZWxlYXNlUHJveHldKCksdGhpcy5fcHJvY2Vzcz1udWxsfX1fZ2V0UHJvY2Vzcygpe3JldHVybiB0aGlzLl9wcm9jZXNzPT1udWxsJiZjb25zb2xlLndhcm4oIlRoaXMgcHJvY2VzcyBhbHJlYWR5IGV4aXRlZCIpLHRoaXMuX3Byb2Nlc3N9fSx1SmU9Y2xhc3N7c3RhdGlje3ModGhpcywiRmlsZVN5c3RlbUFQSUNsaWVudCIpfV9mcztfd2F0Y2hlcnM9bmV3IFNldChbXSk7Y29uc3RydWN0b3IoZSl7dGhpcy5fZnM9ZX1ybSguLi5lKXtyZXR1cm4gdGhpcy5fZnMucm0oLi4uZSl9YXN5bmMgcmVhZEZpbGUoZSx0KXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVhZEZpbGUoZSx0KX1hc3luYyByZW5hbWUoZSx0KXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVuYW1lKGUsdCl9YXN5bmMgd3JpdGVGaWxlKGUsdCxyKXtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IGk9dC5idWZmZXIuc2xpY2UodC5ieXRlT2Zmc2V0LHQuYnl0ZU9mZnNldCt0LmJ5dGVMZW5ndGgpO3Q9R24udHJhbnNmZXIobmV3IFVpbnQ4QXJyYXkoaSksW2ldKX1hd2FpdCB0aGlzLl9mcy53cml0ZUZpbGUoZSx0LHIpfWFzeW5jIHJlYWRkaXIoZSx0KXtsZXQgcj1hd2FpdCB0aGlzLl9mcy5yZWFkZGlyKGUsdCk7cmV0dXJuIExOYShyKXx8JE5hKHIpP3I6ci5tYXAobz0+bmV3IGxKZShvLm5hbWUsb1siU3ltYm9sKHR5cGUpIl0pKX1hc3luYyBta2RpcihlLHQpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5ta2RpcihlLHQpfXdhdGNoKGUsdCxyKXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiImJihyPXQsdD1udWxsKSxuZXcgY0plKHRoaXMsZSx0LHIpfWFzeW5jIF90ZWFyZG93bigpe3RoaXMuX2ZzW0duLnJlbGVhc2VQcm94eV0oKSxhd2FpdCBQcm9taXNlLmFsbChbLi4udGhpcy5fd2F0Y2hlcnNdLm1hcChlPT5lLmNsb3NlKCkpKX19O3MoX05hLCJ1bnN5bmNocm9uaXplZEJvb3QiKTtzKHBKZSwiYmluYXJ5TGlzdGVuZXIiKTtzKG5pZSwicHJveHlMaXN0ZW5lciIpO3MoVE5hLCJzZXJ2ZXJGYWN0b3J5Iik7cyhMTmEsImlzU3RyaW5nQXJyYXkiKTtzKCROYSwiaXNUeXBlZEFycmF5Q29sbGVjdGlvbiIpO3MoRE5hLCJzdHJlYW1XaXRoUHVzaCIpO3MoQU5hLCJzeW5jU3Vic2NyaXB0aW9uIil9KTt2YXIgeDUsbjZhPWYoKCk9PntvNmEoKTt4NT1jbGFzcyBhe3N0YXRpY3tzKHRoaXMsIldlYkNvbnRhaW5lckVudmlyb25tZW50Iil9c3RhdGljIHNoYXJlZENvbnRhaW5lcj1udWxsO3N0YXRpYyBib290UHJvbWlzZT1udWxsO19yZWFkeT0hMTt0eXBlPSJ3ZWJjb250YWluZXIiO2dldCByZWFkeSgpe3JldHVybiB0aGlzLl9yZWFkeX1nZXQgY29udGFpbmVyKCl7cmV0dXJuIGEuc2hhcmVkQ29udGFpbmVyfWFzeW5jIGluaXQoKXtpZighKHRoaXMuX3JlYWR5JiZhLnNoYXJlZENvbnRhaW5lcikpe2lmKGEuYm9vdFByb21pc2Upe2F3YWl0IGEuYm9vdFByb21pc2UsdGhpcy5fcmVhZHk9ITA7cmV0dXJufWlmKGEuc2hhcmVkQ29udGFpbmVyKXt0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYodHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPiJ1Iil0aHJvdyBuZXcgRXJyb3IoYFdlYkNvbnRhaW5lciByZXF1aXJlcyBTaGFyZWRBcnJheUJ1ZmZlciB3aGljaCBpcyBub3QgYXZhaWxhYmxlLiBFbnN1cmUgeW91ciBzZXJ2ZXIgc2VuZHMgdGhlc2UgaGVhZGVyczoKICBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeTogc2FtZS1vcmlnaW4KICBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5OiByZXF1aXJlLWNvcnBgKTthLmJvb3RQcm9taXNlPWxHLmJvb3QoKTt0cnl7YS5zaGFyZWRDb250YWluZXI9YXdhaXQgYS5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMH1jYXRjaChlKXt0aHJvdyBhLmJvb3RQcm9taXNlPW51bGwsZX19fWFzeW5jIGRlc3Ryb3koKXthLnNoYXJlZENvbnRhaW5lciYmKGEuc2hhcmVkQ29udGFpbmVyLnRlYXJkb3duKCksYS5zaGFyZWRDb250YWluZXI9bnVsbCxhLmJvb3RQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITEpfWFzeW5jIHJlYWRGaWxlKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSwidXRmLTgiKX1hc3luYyB3cml0ZUZpbGUoZSx0KXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMud3JpdGVGaWxlKGUsdCwidXRmLTgiKX1hc3luYyByZWFkRGlyKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksKGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSx7d2l0aEZpbGVUeXBlczohMH0pKS5tYXAocj0+KHt0eXBlOnIuaXNEaXJlY3RvcnkoKT8iZGlyZWN0b3J5IjoiZmlsZSIsbmFtZTpyLm5hbWUscGF0aDplPT09Ii8iP2AvJHtyLm5hbWV9YDpgJHtlfS8ke3IubmFtZX1gfSkpfWFzeW5jIG1rZGlyKGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ta2RpcihlLHtyZWN1cnNpdmU6ITB9KX1hc3luYyBybShlLHQpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ybShlLHtyZWN1cnNpdmU6dD8ucmVjdXJzaXZlPz8hMX0pfWFzeW5jIGV4aXN0cyhlKXt0aGlzLmVuc3VyZVJlYWR5KCk7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZShlKSwhMH1jYXRjaHt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSksITB9Y2F0Y2h7cmV0dXJuITF9fX13YXRjaChlLHQscil7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBpPXRoaXMuY29udGFpbmVyLmZzLndhdGNoKGUse3JlY3Vyc2l2ZTpyPy5yZWN1cnNpdmU/PyExfSx0KTtyZXR1cm57c3RvcDpzKCgpPT5pLmNsb3NlKCksInN0b3AiKX19YXN5bmMgc3Bhd24oZSx0PVtdKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IHI9YXdhaXQgdGhpcy5jb250YWluZXIuc3Bhd24oZSx0KTtyZXR1cm57b3V0cHV0OnIub3V0cHV0LGlucHV0OnIuaW5wdXQsZXhpdDpyLmV4aXQsa2lsbDpzKCgpPT5yLmtpbGwoKSwia2lsbCIpfX1nZXRTaGVsbENvbW1hbmQoKXtyZXR1cm57Y29tbWFuZDoianNoIixsYWJlbDoianNoIixwcm9tcHQ6In4vIn19YXN5bmMgbW91bnQoZSl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLm1vdW50KGUpfWdldENvbnRhaW5lcigpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksdGhpcy5jb250YWluZXJ9ZW5zdXJlUmVhZHkoKXtpZighdGhpcy5fcmVhZHl8fCF0aGlzLmNvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIldlYkNvbnRhaW5lckVudmlyb25tZW50IG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgZmlyc3QuIil9fX0pO3ZhciBsNmE9ZigoKT0+e242YSgpfSk7dmFyIGxpZT1mKCgpPT57VGRhKCk7bDZhKCl9KTt2YXIgYzZhPWYoKCk9PntBWWUoKX0pO3ZhciBjRyxmSmU9ZigoKT0+e2NHPWNsYXNze3N0YXRpY3tzKHRoaXMsIlRlcm1pbmFsVGFiTWFuYWdlciIpfXRhYnM9bmV3IE1hcDt0YWJDb3VudGVyPTA7eHRlcm1CdW5kbGU9bnVsbDt4dGVybUZpdEFkZG9uQnVuZGxlPW51bGw7c2V0WHRlcm1Nb2R1bGVzKGUsdCl7dGhpcy54dGVybUJ1bmRsZT1lLHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZT10fWdlbmVyYXRlVGFiSWQoKXtyZXR1cm4gdGhpcy50YWJDb3VudGVyKyssYHRlcm1pbmFsLSR7dGhpcy50YWJDb3VudGVyfS0ke0RhdGUubm93KCl9YH1nZXREZWZhdWx0TGFiZWwoZSx0KXtzd2l0Y2goZSl7Y2FzZSJzaGVsbCI6cmV0dXJuImJhc2giO2Nhc2Uic2NyaXB0IjpyZXR1cm4gdD8uc2NyaXB0TmFtZXx8InNjcmlwdCI7Y2FzZSJwYWNrYWdlLXVwZGF0ZSI6cmV0dXJuIHQ/LnBhY2thZ2VOYW1lP2B1cGRhdGUgJHt0LnBhY2thZ2VOYW1lfWA6InVwZGF0ZSI7Y2FzZSJjdXN0b20iOnJldHVybiB0Py5jb21tYW5kfHwicHJvY2VzcyI7ZGVmYXVsdDpyZXR1cm4idGVybWluYWwifX1nZXREZWZhdWx0SWNvbihlKXtzd2l0Y2goZSl7Y2FzZSJzaGVsbCI6cmV0dXJuImx1Y2lkZTp0ZXJtaW5hbCI7Y2FzZSJzY3JpcHQiOnJldHVybiJsdWNpZGU6cGxheSI7Y2FzZSJwYWNrYWdlLXVwZGF0ZSI6cmV0dXJuImx1Y2lkZTpwYWNrYWdlQ2hlY2siO2Nhc2UiY3VzdG9tIjpyZXR1cm4ibHVjaWRlOmNvZGUiO2RlZmF1bHQ6cmV0dXJuImx1Y2lkZTp0ZXJtaW5hbCJ9fWdldFRlcm1pbmFsVGhlbWUoZSl7cmV0dXJuIGU/e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsY3Vyc29yQWNjZW50OiIjZmZmZmZmIixzZWxlY3Rpb246InJnYmEoMCwgMCwgMCwgMC4yKSIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNmZmZmZmYiLGN1cnNvcjoiI2ZmZmZmZiIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb246InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSJ9fWNyZWF0ZVRhYihlLHQpe2lmKCF0aGlzLnh0ZXJtQnVuZGxlfHwhdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlKXRocm93IG5ldyBFcnJvcigiVGVybWluYWxUYWJNYW5hZ2VyOiB4dGVybSBtb2R1bGVzIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBzZXRYdGVybU1vZHVsZXMoKSBmaXJzdC4iKTtsZXQgcj10aGlzLmdlbmVyYXRlVGFiSWQoKSxpPWUudHlwZSxvPW5ldyB0aGlzLnh0ZXJtQnVuZGxlLlRlcm1pbmFsKHtjb252ZXJ0RW9sOiEwLGN1cnNvckJsaW5rOiEwLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZSh0KSxmb250RmFtaWx5OidNZW5sbywgTW9uYWNvLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLGZvbnRTaXplOjEzLGxpbmVIZWlnaHQ6MS4yfSksbj1uZXcgdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlLkZpdEFkZG9uO28ubG9hZEFkZG9uKG4pO2xldCBsPXtpZDpyLGxhYmVsOmUubGFiZWx8fHRoaXMuZ2V0RGVmYXVsdExhYmVsKGksZS5tZXRhZGF0YSksaWNvbk5hbWU6ZS5pY29uTmFtZXx8dGhpcy5nZXREZWZhdWx0SWNvbihpKSx0eXBlOmksY2xvc2VhYmxlOmUuY2xvc2VhYmxlPz9pIT09InNoZWxsIix0ZXJtaW5hbDpvLGZpdEFkZG9uOm4scHJvY2VzczpudWxsLGlucHV0V3JpdGVyOm51bGwsZXhpdGVkOiExLGV4aXRDb2RlOm51bGwsY3JlYXRlZEF0OkRhdGUubm93KCksbWV0YWRhdGE6ZS5tZXRhZGF0YX07cmV0dXJuIHRoaXMudGFicy5zZXQocixsKSxsfWdldFRhYihlKXtyZXR1cm4gdGhpcy50YWJzLmdldChlKX1nZXRBbGxUYWJzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy50YWJzLnZhbHVlcygpKS5zb3J0KChlLHQpPT5lLmNyZWF0ZWRBdC10LmNyZWF0ZWRBdCl9Z2V0VGFiQ291bnQoKXtyZXR1cm4gdGhpcy50YWJzLnNpemV9aGFzVGFiKGUpe3JldHVybiB0aGlzLnRhYnMuaGFzKGUpfWNsb3NlVGFiKGUpe2xldCB0PXRoaXMudGFicy5nZXQoZSk7aWYoIXQpcmV0dXJuITE7aWYodC5wcm9jZXNzJiYhdC5leGl0ZWQpdHJ5e3QucHJvY2Vzcy5raWxsKCl9Y2F0Y2gocil7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8ga2lsbCBwcm9jZXNzOiIscil9dHJ5e3QudGVybWluYWwuZGlzcG9zZSgpfWNhdGNoKHIpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGRpc3Bvc2UgdGVybWluYWw6IixyKX1yZXR1cm4gdGhpcy50YWJzLmRlbGV0ZShlKSwhMH1yZW5hbWVUYWIoZSx0KXtsZXQgcj10aGlzLnRhYnMuZ2V0KGUpO3JldHVybiByPyhyLmxhYmVsPXQsITApOiExfW1hcmtUYWJFeGl0ZWQoZSx0KXtsZXQgcj10aGlzLnRhYnMuZ2V0KGUpO3ImJihyLmV4aXRlZD0hMCxyLmV4aXRDb2RlPXQpfXNldFRhYlByb2Nlc3MoZSx0LHIpe2xldCBpPXRoaXMudGFicy5nZXQoZSk7aSYmKGkucHJvY2Vzcz10LGkuaW5wdXRXcml0ZXI9cil9dXBkYXRlQWxsVGhlbWVzKGUpe2xldCB0PXRoaXMuZ2V0VGVybWluYWxUaGVtZShlKTtmb3IobGV0IHIgb2YgdGhpcy50YWJzLnZhbHVlcygpKXIudGVybWluYWwub3B0aW9ucy50aGVtZT10fWRpc3Bvc2VBbGwoKXtmb3IobGV0W2Vdb2YgdGhpcy50YWJzKXRoaXMuY2xvc2VUYWIoZSk7dGhpcy50YWJzLmNsZWFyKCl9fX0pO3ZhciBkNmE9e307bHQoZDZhLHtEZWVzV29ya3NwYWNlVGVybWluYWw6KCk9PmhKZX0pO3ZhciBINCxwbyxoSmUsZEc9ZigoKT0+e2xlKCk7ZWEoKTtRZSgpO2xpZSgpO3ZhKCk7VnNlKCk7ZkplKCk7U2MoKTtIND1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0scG89ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGhKZT0oKCk9PntsZXQgYT1baWUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6T2JqZWN0fSldLGQ9WyQoKV0sdT1bJCgpXSx4PVskKHt0eXBlOk51bWJlcn0pXSx5PVskKHt0eXBlOkJvb2xlYW59KV0sTj1bSygpXSxPPVtLKCldLEg0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIFMsImhhcyIpLGdldDpzKFM9PlMuZXhlY3V0aW9uRW52aXJvbm1lbnQsImdldCIpLHNldDpzKChTLEUpPT57Uy5leGVjdXRpb25FbnZpcm9ubWVudD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG4sbCksSDQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InNldHVwQ29tbWFuZCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnNldHVwQ29tbWFuZCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnNldHVwQ29tbWFuZD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGMscCksSDQodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnZpcm9ubWVudFZhcmlhYmxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iZW52aXJvbm1lbnRWYXJpYWJsZXMiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5lbnZpcm9ubWVudFZhcmlhYmxlcywiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmVudmlyb25tZW50VmFyaWFibGVzPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sbSx2KSxINCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYkJhcldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJ0YWJCYXJXaWR0aCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnRhYkJhcldpZHRoLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MudGFiQmFyV2lkdGg9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxiLGcpLEg0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4ic2hvd1RhYkJhciJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnNob3dUYWJCYXIsImdldCIpLHNldDpzKChTLEUpPT57Uy5zaG93VGFiQmFyPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sayxDKSxINCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InRhYnMiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy50YWJzLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MudGFicz1FfSwic2V0Iil9LG1ldGFkYXRhOk19LF8seiksSDQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVUYWJJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4iYWN0aXZlVGFiSWQiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5hY3RpdmVUYWJJZCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmFjdGl2ZVRhYklkPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sVCxQKSxINChudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpNfSxudWxsLHQpLEI9cj1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPXMoKCk9PntsZXQgTT1uZXcgeDU7cmV0dXJuIHdgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke019PjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+YH0sImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3Jlc2l6ZU9ic2VydmVyO3RhYk1hbmFnZXI7I2U9cG8odGhpcyxuLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChNKXt0aGlzLiNlPU19I3Q9KHBvKHRoaXMsbCkscG8odGhpcyxjLCIiKSk7Z2V0IHNldHVwQ29tbWFuZCgpe3JldHVybiB0aGlzLiN0fXNldCBzZXR1cENvbW1hbmQoTSl7dGhpcy4jdD1NfSNhPShwbyh0aGlzLHApLHBvKHRoaXMsbSx7fSkpO2dldCBlbnZpcm9ubWVudFZhcmlhYmxlcygpe3JldHVybiB0aGlzLiNhfXNldCBlbnZpcm9ubWVudFZhcmlhYmxlcyhNKXt0aGlzLiNhPU19I3I9KHBvKHRoaXMsdikscG8odGhpcyxiLDE2MCkpO2dldCB0YWJCYXJXaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCB0YWJCYXJXaWR0aChNKXt0aGlzLiNyPU19I3M9KHBvKHRoaXMsZykscG8odGhpcyxrLCEwKSk7Z2V0IHNob3dUYWJCYXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1RhYkJhcihNKXt0aGlzLiNzPU19I2k9KHBvKHRoaXMsQykscG8odGhpcyxfLFtdKSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFicyhNKXt0aGlzLiNpPU19I289KHBvKHRoaXMseikscG8odGhpcyxULG51bGwpKTtnZXQgYWN0aXZlVGFiSWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWN0aXZlVGFiSWQoTSl7dGhpcy4jbz1NfXRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249KHBvKHRoaXMsUCksbnVsbCk7aXNCcmlnaHQ9ITE7dGVybWluYWxBY3Rpb25iYXI9bnVsbDtlbnZpcm9ubWVudERlZmVycmVkPW5ldyBIdC5zbWFydHByb21pc2UuRGVmZXJyZWQ7ZW52aXJvbm1lbnRQcm9taXNlPXRoaXMuZW52aXJvbm1lbnREZWZlcnJlZC5wcm9taXNlO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYk1hbmFnZXI9bmV3IGNHLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5oYW5kbGVSZXNpemUoKX0pfXN0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAjYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBtYXJnaW46IDIwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IGRlZXMtYWN0aW9uYmFyIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLyogVGFiIGJhciBvbiB0aGUgcmlnaHQgc2lkZSAqLwogICAgICAudGFiLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWItYmFyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItYmFyLXRpdGxlIHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC50YWItYmFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uIHsKICAgICAgICB3aWR0aDogMjJweDsKICAgICAgICBoZWlnaHQ6IDIycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGFiLWxpc3QgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjUlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDk1JSkiLCJoc2woMjEwIDMwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQwJSkiLCJoc2woMjEwIDEwMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYi5leGl0ZWQgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnRhYi1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRhYi1pY29uLnJ1bm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgNDAlKSIsImhzbCgxNDIgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZSB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDFweCA1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSA5MCUpIiwiaHNsKDE0MiAzMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA5MyUpIiwiaHNsKDAgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNDUlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFiLWNsb3NlIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAvKiB4dGVybS5qcyBzdHlsZXMgKi8KICAgICAgLnh0ZXJtIHsKICAgICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJyAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtLmZvY3VzLAogICAgICAueHRlcm06Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVycyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiA1OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlci10ZXh0YXJlYSB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGxlZnQ6IC05OTk5ZW07CiAgICAgICAgdG9wOiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICB6LWluZGV4OiAtNTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMzMzMiLCIjZmZmZmZmIil9OwogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3LmFjdGl2ZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2NyZWVuIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2NyZWVuIGNhbnZhcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcm9sbC1hcmVhIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1jaGFyLW1lYXN1cmUtZWxlbWVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IC05OTk5ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICAgICAgfQoKICAgICAgLnh0ZXJtIHsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIH0KCiAgICAgIC54dGVybS5lbmFibGUtbW91c2UtZXZlbnRzIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC54dGVybS54dGVybS1jdXJzb3ItcG9pbnRlciB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAueHRlcm0uY29sdW1uLXNlbGVjdC5mb2N1cyB7CiAgICAgICAgY3Vyc29yOiBjcm9zc2hhaXI7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tYWNjZXNzaWJpbGl0eSwKICAgICAgLnh0ZXJtIC54dGVybS1tZXNzYWdlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5saXZlLXJlZ2lvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC05OTk5cHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tZGltIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC54dGVybS11bmRlcmxpbmUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTT10aGlzLmFjdGl2ZVRhYklkP3RoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCk6bnVsbDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICA8IS0tIE1haW4gdGVybWluYWwgYXJlYSAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50Ij4KICAgICAgICAgICR7TT93YAogICAgICAgICAgICA8ZGl2IGlkPSJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnRlcm1pbmFsIn0gaWNvblNpemU9IjMyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3Bhbj5ObyB0ZXJtaW5hbCBvcGVuPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgICA8ZGVlcy1hY3Rpb25iYXI+PC9kZWVzLWFjdGlvbmJhcj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBWZXJ0aWNhbCB0YWIgYmFyIG9uIHRoZSByaWdodCAtLT4KICAgICAgICAke3RoaXMuc2hvd1RhYkJhcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhciIgc3R5bGU9IndpZHRoOiAke3RoaXMudGFiQmFyV2lkdGh9cHgiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYmFyLWhlYWRlciI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1iYXItdGl0bGUiPlRlcm1pbmFsczwvc3Bhbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYmFyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWFjdGlvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVBZGRUYWJ9IHRpdGxlPSJOZXcgVGVybWluYWwiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwbHVzIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1saXN0Ij4KICAgICAgICAgICAgICAke3RoaXMudGFicy5tYXAoUz0+d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InRlcm1pbmFsLXRhYiAke1MuaWQ9PT10aGlzLmFjdGl2ZVRhYklkPyJhY3RpdmUiOiIifSAke1MuZXhpdGVkPyJleGl0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc3dpdGNoVG9UYWIoUy5pZCl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke1MuaWNvbk5hbWV9CiAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWItaWNvbiAke1MucHJvY2VzcyYmIVMuZXhpdGVkPyJydW5uaW5nIjoiIn0iCiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1sYWJlbCI+JHtTLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgJHtTLmV4aXRlZD93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJleGl0LWJhZGdlICR7Uy5leGl0Q29kZT09PTA/InN1Y2Nlc3MiOiJlcnJvciJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICR7Uy5leGl0Q29kZX0KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICR7Uy5jbG9zZWFibGU/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWNsb3NlIiBAY2xpY2s9JHtFPT50aGlzLmhhbmRsZVRhYkNsb3NlKEUsUy5pZCl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuaXNCcmlnaHQ9TS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1NLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEY9Pnt0aGlzLmlzQnJpZ2h0PUYsdGhpcy50YWJNYW5hZ2VyLnVwZGF0ZUFsbFRoZW1lcyhGKX0pO2xldCBTPU9zLmdldEluc3RhbmNlKCksW0UsQV09YXdhaXQgUHJvbWlzZS5hbGwoW1MubG9hZFh0ZXJtKCksUy5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50YWJNYW5hZ2VyLnNldFh0ZXJtTW9kdWxlcyhFLEEpLGF3YWl0IHRoaXMuY3JlYXRlU2hlbGxUYWIoKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIik7TSYmdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUoTSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMudGFiTWFuYWdlci5kaXNwb3NlQWxsKCksYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBoYW5kbGVBZGRUYWIoKXthd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9aGFuZGxlVGFiQ2xvc2UoTSxTKXtNLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xvc2VUYWIoUyl9c3dpdGNoVG9UYWIoTSl7aWYoTT09PXRoaXMuYWN0aXZlVGFiSWQpcmV0dXJuO2xldCBTPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoTSk7aWYoIVMpcmV0dXJuO2xldCBFPXRoaXMuYWN0aXZlVGFiSWQ7dGhpcy5hY3RpdmVUYWJJZCYmdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpLHRoaXMuYWN0aXZlVGFiSWQ9TSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLmF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoUyksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXN3aXRjaGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOk0scHJldmlvdXNUYWJJZDpFfX0pKX0pfWRldGFjaEFjdGl2ZVRlcm1pbmFsKCl7bGV0IE09dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO00mJihNLmlubmVySFRNTD0iIil9YXR0YWNoVGVybWluYWxUb0NvbnRhaW5lcihNKXtsZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIik7UyYmKHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShTKSxTLmlubmVySFRNTD0iIixNLnRlcm1pbmFsLm9wZW4oUyksTS5maXRBZGRvbi5maXQoKSxNLnRlcm1pbmFsLmZvY3VzKCkpfWhhbmRsZVJlc2l6ZSgpe2lmKHRoaXMuYWN0aXZlVGFiSWQpe2xldCBNPXRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCk7TSYmTS5maXRBZGRvbi5maXQoKX19YXN5bmMgc3Bhd25Qcm9jZXNzRm9yVGFiKE0sUyxFPVtdKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7TS50ZXJtaW5hbC53cml0ZSgiXHgxQlszMW0iKSxNLnRlcm1pbmFsLndyaXRlKGBcdTI3NEMgTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IGF2YWlsYWJsZS5ccgpgKSxNLnRlcm1pbmFsLndyaXRlKCJceDFCWzBtIik7cmV0dXJufXRyeXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHwoTS50ZXJtaW5hbC53cml0ZShgSW5pdGlhbGl6aW5nIGVudmlyb25tZW50Li4uXHIKYCksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCkpO2xldCBBPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oUyxFKTtBLm91dHB1dC5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTpzKFc9PntNLnRlcm1pbmFsLndyaXRlKFcpfSwid3JpdGUiKX0pKTtsZXQgRj1BLmlucHV0LmdldFdyaXRlcigpO00udGVybWluYWwub25EYXRhKFc9PntGLndyaXRlKFcpfSksdGhpcy50YWJNYW5hZ2VyLnNldFRhYlByb2Nlc3MoTS5pZCxBLEYpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLEEuZXhpdC50aGVuKFc9Pnt0aGlzLmhhbmRsZVByb2Nlc3NFeGl0KE0uaWQsVyl9KX1jYXRjaChBKXtNLnRlcm1pbmFsLndyaXRlKCJceDFCWzMxbSIpLE0udGVybWluYWwud3JpdGUoYFx1Mjc0QyBGYWlsZWQgdG8gc3Bhd24gcHJvY2VzczogJHtBfVxyCmApLE0udGVybWluYWwud3JpdGUoIlx4MUJbMG0iKSxjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3Bhd24gcHJvY2VzczoiLEEpfX1hc3luYyBnZXRTaGVsbENvbW1hbmQoKXtyZXR1cm4gdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHkmJmF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ/LmdldFNoZWxsQ29tbWFuZD9hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmdldFNoZWxsQ29tbWFuZCgpOntjb21tYW5kOiJqc2giLGxhYmVsOiJqc2giLHByb21wdDoifi8ifX1oYW5kbGVQcm9jZXNzRXhpdChNLFMpe2xldCBFPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoTSk7aWYoIUUpcmV0dXJuO3RoaXMudGFiTWFuYWdlci5tYXJrVGFiRXhpdGVkKE0sUyk7bGV0IEE9Uz09PTA/YFxyClx4MUJbMzJtW1Byb2Nlc3MgY29tcGxldGVkIHN1Y2Nlc3NmdWxseV1ceDFCWzBtXHIKYDpgXHIKXHgxQlszMW1bUHJvY2VzcyBleGl0ZWQgd2l0aCBjb2RlICR7U31dXHgxQlswbVxyCmA7RS50ZXJtaW5hbC53cml0ZShBKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwcm9jZXNzLWNvbXBsZXRlIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOk0sZXhpdENvZGU6U319KSksRS5jbG9zZWFibGUmJnRoaXMuc2hvd0V4aXRlZFRhYkFjdGlvbmJhcihNLEUubGFiZWwsUyl9YXN5bmMgc2hvd0V4aXRlZFRhYkFjdGlvbmJhcihNLFMsRSl7bGV0IEE9RT09PTA7KGF3YWl0IHRoaXMuc2hvd0FjdGlvbmJhcih7bWVzc2FnZTpBP2AiJHtTfSIgY29tcGxldGVkLiBDbG9zZSB0YWI/YDpgIiR7U30iIGV4aXRlZCAoY29kZSAke0V9KS4gQ2xvc2UgdGFiP2AsdHlwZTpBPyJpbmZvIjoid2FybmluZyIsaWNvbjpBPyJsdWNpZGU6Y2hlY2tDaXJjbGUiOiJsdWNpZGU6YWxlcnRUcmlhbmdsZSIsYWN0aW9uczpbe2lkOiJjbG9zZSIsbGFiZWw6IkNsb3NlIFRhYiIscHJpbWFyeTohMH0se2lkOiJrZWVwIixsYWJlbDoiS2VlcCBPcGVuIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImNsb3NlIn0sZGlzbWlzc2libGU6ITB9KSkuYWN0aW9uSWQ9PT0iY2xvc2UiJiZ0aGlzLmNsb3NlVGFiKE0pfWFzeW5jIGNyZWF0ZVNoZWxsVGFiKE0pe2xldCBTPWF3YWl0IHRoaXMuZ2V0U2hlbGxDb21tYW5kKCksRT10aGlzLnRhYk1hbmFnZXIuY3JlYXRlVGFiKHt0eXBlOiJzaGVsbCIsbGFiZWw6TXx8YCR7Uy5sYWJlbHx8Uy5jb21tYW5kfSAke3RoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpKzF9YCxjbG9zZWFibGU6dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCk+MH0sdGhpcy5pc0JyaWdodCk7cmV0dXJuIHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuc3dpdGNoVG9UYWIoRS5pZCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihFLFMuY29tbWFuZCxTLmFyZ3N8fFtdKSx0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT09PTEmJnRoaXMuc2V0dXBDb21tYW5kJiYoYXdhaXQgdGhpcy53YWl0Rm9yUHJvbXB0KEUudGVybWluYWwsUy5wcm9tcHR8fCJ+LyIpLEUuaW5wdXRXcml0ZXImJkUuaW5wdXRXcml0ZXIud3JpdGUodGhpcy5zZXR1cENvbW1hbmQpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY3JlYXRlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpFLmlkfX0pKSxFLmlkfWFzeW5jIGNyZWF0ZVByb2Nlc3NUYWIoTSl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYihNLHRoaXMuaXNCcmlnaHQpO3JldHVybiB0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSxNLnN3aXRjaFRvVGFiIT09ITEmJnRoaXMuc3dpdGNoVG9UYWIoUy5pZCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxNLmNvbW1hbmQmJmF3YWl0IHRoaXMuc3Bhd25Qcm9jZXNzRm9yVGFiKFMsTS5jb21tYW5kLE0uYXJncyksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Uy5pZH19KSksUy5pZH1nZXRBY3RpdmVUYWIoKXtyZXR1cm4gdGhpcy5hY3RpdmVUYWJJZCYmdGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKXx8bnVsbH1nZXRUYWJzKCl7cmV0dXJuIHRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCl9c2VsZWN0VGFiKE0pe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuaGFzVGFiKE0pPyh0aGlzLnN3aXRjaFRvVGFiKE0pLCEwKTohMX1jbG9zZVRhYihNKXtsZXQgUz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKE0pO2lmKCFTfHwhUy5jbG9zZWFibGUpcmV0dXJuITE7aWYoTT09PXRoaXMuYWN0aXZlVGFiSWQpe2xldCBFPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksQT1FLmZpbmRJbmRleChXPT5XLmlkPT09TSksRj1FW0ErMV18fEVbQS0xXTtGP3RoaXMuc3dpdGNoVG9UYWIoRi5pZCk6KHRoaXMuYWN0aXZlVGFiSWQ9bnVsbCx0aGlzLmRldGFjaEFjdGl2ZVRlcm1pbmFsKCkpfXJldHVybiB0aGlzLnRhYk1hbmFnZXIuY2xvc2VUYWIoTSksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpNfX0pKSwhMH13cml0ZVRvVGFiKE0sUyl7bGV0IEU9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihNKTtyZXR1cm4gRT8oRS50ZXJtaW5hbC53cml0ZShTKSwhMCk6ITF9c2VuZElucHV0VG9UYWIoTSxTKXtsZXQgRT10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKE0pO3JldHVybiFFfHwhRS5pbnB1dFdyaXRlcj8hMTooRS5pbnB1dFdyaXRlci53cml0ZShTKSwhMCl9YXN5bmMgc2hvd0FjdGlvbmJhcihNKXtyZXR1cm4gdGhpcy50ZXJtaW5hbEFjdGlvbmJhcnx8KHRoaXMudGVybWluYWxBY3Rpb25iYXI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWFjdGlvbmJhciIpKSx0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPy5zaG93KE0pfWFzeW5jIHdhaXRGb3JQcm9tcHQoTSxTKXtyZXR1cm4gbmV3IFByb21pc2UoRT0+e2xldCBBPXMoKCk9PntsZXQgRj1NLmJ1ZmZlci5hY3RpdmU7Zm9yKGxldCBXPTA7VzxGLmxlbmd0aDtXKyspe2xldCBqPUYuZ2V0TGluZShXKTtpZihqJiZqLnRyYW5zbGF0ZVRvU3RyaW5nKCkuaW5jbHVkZXMoUykpe3NldFRpbWVvdXQoKCk9PntFKCl9LDEwMCk7cmV0dXJufX1zZXRUaW1lb3V0KEEsMTAwKX0sImNoZWNrUHJvbXB0Iik7QSgpfSl9YXN5bmMgc2V0RW52aXJvbm1lbnRWYXJpYWJsZXMoTSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdGhyb3cgbmV3IEVycm9yKCJObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlIik7bGV0IFM9IiI7Zm9yKGxldCBFIGluIE0pUys9YGV4cG9ydCAke0V9PSIke01bRV19IgpgO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKCIvc291cmNlLmVudiIsUyl9Z2V0RXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH1zdGF0aWN7cG8ocix0KX19O3JldHVybiBCPXJ9KSgpfSk7dmFyIG1KZSxnSmUsdTZhLHA2YSxmNmEsaDZhLG02YT1mKCgpPT57bGUoKTtpbSgpO240KCk7WXRlKCk7Y2FlKCk7aWFlKCk7VGYoKTtIc2UoKTttSmU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGdKZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sdTZhPSgoKT0+e2xldCBhPVtpZSgiZGVtby12aWV3LWRhc2hib2FyZCIpXSxlLHQ9W10scixpPXBlO3ZhciBvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZW1vVmlld0Rhc2hib2FyZCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO21KZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpufSxudWxsLHQpLG89cj1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgIH0KICAgIGBdO3N0YXRzVGlsZXM9W3tpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjEyMzQsdHlwZToibnVtYmVyIixpY29uOiJmYVVzZXJzIixkZXNjcmlwdGlvbjoiKzE1JSBmcm9tIGxhc3Qgd2VlayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6InBhZ2V2aWV3cyIsdGl0bGU6IlBhZ2UgVmlld3MiLHZhbHVlOjU2NzAwLHR5cGU6Im51bWJlciIsaWNvbjoiZmFFeWUiLGRlc2NyaXB0aW9uOiI1Ni43ayB0b3RhbCB2aWV3cyIsY29sb3I6IiMzYjgyZjYifSx7aWQ6InVwdGltZSIsdGl0bGU6IlN5c3RlbSBVcHRpbWUiLHZhbHVlOjg5LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJmYVNlcnZlciIsZGVzY3JpcHRpb246Ikxhc3QgMzAgZGF5cyIsY29sb3I6IiMxMGI5ODEiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6ODAsY29sb3I6IiNlZjQ0NDQifSx7dmFsdWU6OTAsY29sb3I6IiNmNTllMGIifSx7dmFsdWU6MTAwLGNvbG9yOiIjMTBiOTgxIn1dfX0se2lkOiJyZXNwb25zZSIsdGl0bGU6IkF2ZyBSZXNwb25zZSBUaW1lIix2YWx1ZTozLjIsdW5pdDoicyIsdHlwZToibnVtYmVyIixpY29uOiJmYUNsb2NrIixkZXNjcmlwdGlvbjoiLTAuNXMgaW1wcm92ZW1lbnQiLGNvbG9yOiIjZjU5ZTBiIn0se2lkOiJyZXZlbnVlIix0aXRsZToiTW9udGhseSBSZXZlbnVlIix2YWx1ZTo0ODUyMCx1bml0OiIkIix0eXBlOiJ0cmVuZCIsaWNvbjoiZmFEb2xsYXJTaWduIixkZXNjcmlwdGlvbjoiKzguMiUgZ3Jvd3RoIixjb2xvcjoiIzIyYzU1ZSIsdHJlbmREYXRhOlszNWUzLDM4ZTMsMzc1MDAsNDFlMywzOTgwMCw0MmUzLDQ0MTAwLDQzMjAwLDQ1NjAwLDQ3MTAwLDQ2ODAwLDQ4NTIwXX0se2lkOiJ0cmFmZmljIix0aXRsZToiVHJhZmZpYyBUcmVuZCIsdmFsdWU6MTY4MCx0eXBlOiJ0cmVuZCIsaWNvbjoiZmFDaGFydExpbmUiLGRlc2NyaXB0aW9uOiJMYXN0IDcgZGF5cyIsY29sb3I6IiMzYjgyZjYiLHRyZW5kRGF0YTpbMTIwMCwxMzUwLDExMDAsMTQ1MCwxNjAwLDE1NTAsMTY4MF19XTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPkRhc2hib2FyZDwvaDE+CiAgICAgIDxwPldlbGNvbWUgdG8geW91ciBhcHBsaWNhdGlvbiBkYXNoYm9hcmQuIEhlcmUncyBhbiBvdmVydmlldyBvZiB5b3VyIG1ldHJpY3M6PC9wPgogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnN0YXRzVGlsZXN9CiAgICAgICAgQHRpbGUtYWN0aW9uPSR7bj0+e2NvbnNvbGUubG9nKCJUaWxlIGFjdGlvbjoiLG4uZGV0YWlsKX19CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgPGgyIHN0eWxlPSJtYXJnaW4tdG9wOiA0MHB4OyI+UmVjZW50IEFjdGl2aXR5PC9oMj4KICAgICAgPHA+QmVsb3cgaXMgYSBsb2cgb2YgcmVjZW50IHN5c3RlbSBldmVudHMgYW5kIHVzZXIgYWN0aXZpdHkgdG8gZGVtb25zdHJhdGUgc2Nyb2xsYWJsZSBjb250ZW50LjwvcD4KCiAgICAgICR7W3t0aW1lOiIyIG1pbiBhZ28iLGV2ZW50OiJVc2VyIGpvaG5AZXhhbXBsZS5jb20gbG9nZ2VkIGluIGZyb20gMTkyLjE2OC4xLjQyIix0eXBlOiJpbmZvIn0se3RpbWU6IjUgbWluIGFnbyIsZXZlbnQ6IkRlcGxveW1lbnQgdjMuNTIuMSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IG9uIHByb2R1Y3Rpb24iLHR5cGU6InN1Y2Nlc3MifSx7dGltZToiMTIgbWluIGFnbyIsZXZlbnQ6IkRhdGFiYXNlIGJhY2t1cCBmaW5pc2hlZCBcdTIwMTQgMi40IEdCIGNvbXByZXNzZWQiLHR5cGU6ImluZm8ifSx7dGltZToiMTggbWluIGFnbyIsZXZlbnQ6IlNTTCBjZXJ0aWZpY2F0ZSByZW5ld2VkIGZvciBhcGkuZXhhbXBsZS5jb20gKGV4cGlyZXMgMjAyNy0wNC0wMykiLHR5cGU6InN1Y2Nlc3MifSx7dGltZToiMjUgbWluIGFnbyIsZXZlbnQ6Ik1lbW9yeSB1c2FnZSBzcGlrZSBvbiB3b3JrZXItMDMgKDkyJSkgXHUyMDE0IGF1dG8tc2NhbGVkIHRvIDQgaW5zdGFuY2VzIix0eXBlOiJ3YXJuaW5nIn0se3RpbWU6IjMxIG1pbiBhZ28iLGV2ZW50OiJOZXcgdXNlciByZWdpc3RyYXRpb246IHNhcmFoQGNvbXBhbnkuaW8iLHR5cGU6ImluZm8ifSx7dGltZToiNDUgbWluIGFnbyIsZXZlbnQ6J1NjaGVkdWxlZCBqb2IgImNsZWFudXAtdGVtcC1maWxlcyIgY29tcGxldGVkIFx1MjAxNCByZW1vdmVkIDEsMjQ3IGZpbGVzJyx0eXBlOiJpbmZvIn0se3RpbWU6IjEgaG91ciBhZ28iLGV2ZW50OiJBUEkgcmF0ZSBsaW1pdCByZWFjaGVkIGZvciBjbGllbnQgYXBwLW1vYmlsZS1pb3MgKDQyOSByZXNwb25zZXMpIix0eXBlOiJ3YXJuaW5nIn0se3RpbWU6IjEuNSBob3VycyBhZ28iLGV2ZW50OiJDRE4gY2FjaGUgcHVyZ2VkIGZvciAvYXNzZXRzLyogXHUyMDE0IDM0MCBvYmplY3RzIGludmFsaWRhdGVkIix0eXBlOiJpbmZvIn0se3RpbWU6IjIgaG91cnMgYWdvIixldmVudDoiRmFpbGVkIGxvZ2luIGF0dGVtcHQgZm9yIGFkbWluQGV4YW1wbGUuY29tIGZyb20gMjAzLjAuMTEzLjUwIChibG9ja2VkKSIsdHlwZToiZXJyb3IifSx7dGltZToiMi41IGhvdXJzIGFnbyIsZXZlbnQ6IldlYmhvb2sgZGVsaXZlcnkgdG8gaHR0cHM6Ly9ob29rcy5zbGFjay5jb20gc3VjY2VlZGVkICgyMDAgT0spIix0eXBlOiJpbmZvIn0se3RpbWU6IjMgaG91cnMgYWdvIixldmVudDonQ3JvbiBqb2IgImdlbmVyYXRlLXJlcG9ydHMiIHN0YXJ0ZWQgXHUyMDE0IHByb2Nlc3NpbmcgUTEgMjAyNiBkYXRhJyx0eXBlOiJpbmZvIn0se3RpbWU6IjMuNSBob3VycyBhZ28iLGV2ZW50OiJMb2FkIGJhbGFuY2VyIGhlYWx0aCBjaGVjazogYWxsIDggbm9kZXMgaGVhbHRoeSIsdHlwZToic3VjY2VzcyJ9LHt0aW1lOiI0IGhvdXJzIGFnbyIsZXZlbnQ6IkROUyBwcm9wYWdhdGlvbiBjb21wbGV0ZSBmb3IgbmV3IHN1YmRvbWFpbiBzdGFnaW5nLmV4YW1wbGUuY29tIix0eXBlOiJzdWNjZXNzIn1dLm1hcChuPT53YAogICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgIj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSIKICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDU1JSkiLCJoc2woMCAwJSA0NSUpIil9OwogICAgICAgICAgIj4ke24udGltZX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBzdHlsZT0iCiAgICAgICAgICAgIGNvbG9yOiAke24udHlwZT09PSJlcnJvciI/aC5iZFRoZW1lKCJoc2woMCA3MiUgNTAlKSIsImhzbCgwIDcyJSA2NSUpIik6bi50eXBlPT09Indhcm5pbmciP2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MCUpIiwiaHNsKDI1IDk1JSA2MyUpIik6bi50eXBlPT09InN1Y2Nlc3MiP2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgNDAlKSIsImhzbCgxNDIgNzAlIDU1JSkiKTpoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3NSUpIil9OwogICAgICAgICAgIj4ke24uZXZlbnR9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgKX0KICAgIGB9c3RhdGlje2dKZShyLHQpfX07cmV0dXJuIG89cn0pKCkscDZhPSgoKT0+e2xldCBhPVtpZSgiZGVtby12aWV3LWFuYWx5dGljcyIpXSxlLHQ9W10scixpPXBlO3ZhciBvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZW1vVmlld0FuYWx5dGljcyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO21KZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpufSxudWxsLHQpLG89cj1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+QW5hbHl0aWNzPC9oMT4KICAgICAgPHA+VGhpcyBpcyB0aGUgYW5hbHl0aWNzIHZpZXcuIFlvdSBjYW4gYWRkIGNoYXJ0cyBhbmQgbWV0cmljcyBoZXJlLjwvcD4KICAgIGB9c3RhdGlje2dKZShyLHQpfX07cmV0dXJuIG89cn0pKCksZjZhPSgoKT0+e2xldCBhPVtpZSgiZGVtby12aWV3LXNldHRpbmdzIildLGUsdD1bXSxyLGk9cGU7dmFyIG89Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlbW9WaWV3U2V0dGluZ3MiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDttSmUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bn0sbnVsbCx0KSxvPXI9ZS52YWx1ZSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OwogICAgICB9CiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIGgyIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNjY2MiKX07CiAgICAgIH0KICAgICAgLmhvcml6b250YWwtZm9ybS1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxYTFhMWEiKX07CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luOiAxNXB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+U2V0dGluZ3M8L2gxPgogICAgICA8cD5Db25maWd1cmUgeW91ciBhcHBsaWNhdGlvbiBzZXR0aW5ncyBiZWxvdzo8L3A+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+R2VuZXJhbCBTZXR0aW5nczwvaDI+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJhcHBOYW1lIiBsYWJlbD0iQXBwbGljYXRpb24gTmFtZSIgdmFsdWU9Ik15IEFwcCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBpRW5kcG9pbnQiIGxhYmVsPSJBUEkgRW5kcG9pbnQiIHZhbHVlPSJodHRwczovL2FwaS5leGFtcGxlLmNvbSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9ImVudmlyb25tZW50IgogICAgICAgICAgICBsYWJlbD0iRW52aXJvbm1lbnQiCiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkRldmVsb3BtZW50IixrZXk6ImRldiJ9LHtvcHRpb246IlN0YWdpbmciLGtleToic3RhZ2luZyJ9LHtvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiUHJvZHVjdGlvbiIsa2V5OiJwcm9kIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIE5vdGlmaWNhdGlvbnMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImVuYWJsZUFuYWx5dGljcyIgbGFiZWw9IkVuYWJsZSBBbmFseXRpY3MiIHZhbHVlPSJmYWxzZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U2F2ZSBHZW5lcmFsIFNldHRpbmdzPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5EaXNwbGF5IFByZWZlcmVuY2VzPC9oMj4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWZvcm0tc2VjdGlvbiI+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPlF1aWNrIGRpc3BsYXkgc2V0dGluZ3MgdXNpbmcgaG9yaXpvbnRhbCBsYXlvdXQ6PC9wPgogICAgICAgICAgPGRlZXMtZm9ybSBob3Jpem9udGFsLWxheW91dD4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICBrZXk9InRoZW1lIgogICAgICAgICAgICAgIGxhYmVsPSJUaGVtZSIKICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQiLGtleToibGlnaHQifSx7b3B0aW9uOiJEYXJrIixrZXk6ImRhcmsifSx7b3B0aW9uOiJBdXRvIixrZXk6ImF1dG8ifV19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJsYW5ndWFnZSIKICAgICAgICAgICAgICBsYWJlbD0iTGFuZ3VhZ2UiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkVuZ2xpc2giLGtleToiZW4ifSx7b3B0aW9uOiJHZXJtYW4iLGtleToiZGUifSx7b3B0aW9uOiJTcGFuaXNoIixrZXk6ImVzIn0se29wdGlvbjoiRnJlbmNoIixrZXk6ImZyIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkVuZ2xpc2giLGtleToiZW4ifX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJjb21wYWN0TW9kZSIgbGFiZWw9IkNvbXBhY3QgTW9kZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPk5vdGlmaWNhdGlvbiBTZXR0aW5nczwvaDI+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIEZyZXF1ZW5jeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJSZWFsLXRpbWUiLCJEYWlseSBEaWdlc3QiLCJXZWVrbHkgU3VtbWFyeSIsIk5ldmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJSZWFsLXRpbWUifQogICAgICAgICAgICAua2V5PSR7ImVtYWlsRnJlcXVlbmN5In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0icHVzaE5vdGlmaWNhdGlvbnMiIGxhYmVsPSJFbmFibGUgUHVzaCBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJzb3VuZEFsZXJ0cyIgbGFiZWw9IlBsYXkgU291bmQgZm9yIEFsZXJ0cyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlVwZGF0ZSBOb3RpZmljYXRpb25zPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje2dKZShyLHQpfX07cmV0dXJuIG89cn0pKCksaDZhPXMoKCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc2ltcGxlLWFwcGRhc2gKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIHRlcm1pbmFsU2V0dXBDb21tYW5kPSJlY2hvICdXZWxjb21lIHRvIHRoZSB0ZXJtaW5hbCEnIgogICAgICAuZ2xvYmFsTWVzc2FnZXM9JHtbe2lkOiJ1cGRhdGUiLHR5cGU6ImluZm8iLG1lc3NhZ2U6IkEgbmV3IHZlcnNpb24gKHYzLjUwLjApIGlzIGF2YWlsYWJsZSB3aXRoIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBhbmQgYnVnIGZpeGVzLiIsZGlzbWlzc2libGU6ITAsYWN0aW9uczpbe25hbWU6IlVwZGF0ZSBOb3ciLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjpzKCgpPT5hbGVydCgiVXBkYXRpbmcuLi4iKSwiYWN0aW9uIil9LHtuYW1lOiJSZWxlYXNlIE5vdGVzIixhY3Rpb246cygoKT0+YWxlcnQoIk9wZW5pbmcgcmVsZWFzZSBub3Rlcy4uLiIpLCJhY3Rpb24iKX1dfSx7aWQ6Im1haW50ZW5hbmNlIix0eXBlOiJ3YXJuaW5nIixtZXNzYWdlOiJTY2hlZHVsZWQgbWFpbnRlbmFuY2Ugd2luZG93OiBBcHJpbCA1LCAyMDI2IDAyOjAwXHUyMDEzMDY6MDAgVVRDLiBTb21lIHNlcnZpY2VzIG1heSBiZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4iLGRpc21pc3NpYmxlOiEwfSx7aWQ6ImNyaXRpY2FsIix0eXBlOiJlcnJvciIsbWVzc2FnZToiWW91ciBTU0wgY2VydGlmaWNhdGUgZXhwaXJlcyBpbiAzIGRheXMuIFJlbmV3IG5vdyB0byBhdm9pZCBzZXJ2aWNlIGRpc3J1cHRpb24uIixkaXNtaXNzaWJsZTohMSxhY3Rpb25zOlt7bmFtZToiUmVuZXcgQ2VydGlmaWNhdGUiLGljb25OYW1lOiJsdWNpZGU6c2hpZWxkQ2hlY2siLGFjdGlvbjpzKCgpPT5hbGVydCgiUmVuZXdpbmcgY2VydGlmaWNhdGUuLi4iKSwiYWN0aW9uIil9XX1dfQogICAgICAudmlld1RhYnM9JHtbe25hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixlbGVtZW50OnU2YX0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5lQ2hhcnQiLGVsZW1lbnQ6cDZhLHN1YlZpZXdzOlt7bmFtZToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6YWN0aXZpdHkiLGVsZW1lbnQ6cDZhfSx7bmFtZToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsZWxlbWVudDp1NmF9XX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixzdWJWaWV3czpbe25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsZWxlbWVudDpmNmF9LHtuYW1lOiJCaWxsaW5nIixpY29uTmFtZToibHVjaWRlOmNyZWRpdENhcmQiLGVsZW1lbnQ6ZjZhfV19XX0KICAgICAgQGxvZ291dD0keygpPT57Y29uc29sZS5sb2coIkxvZ291dCBldmVudCB0cmlnZ2VyZWQiKSxhbGVydCgiTG9nb3V0IGNsaWNrZWQhIil9fQogICAgICBAdmlldy1zZWxlY3Q9JHthPT57Y29uc29sZS5sb2coIlZpZXcgc2VsZWN0ZWQ6IixhLmRldGFpbC52aWV3Lm5hbWUpfX0KICAgID48L2RlZXMtc2ltcGxlLWFwcGRhc2g+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgeTUsZG4sZzZhLGI2YT1mKCgpPT57bTZhKCk7bGUoKTt2YSgpO1FlKCk7eTU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGRuPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxnNmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXNpbXBsZS1hcHBkYXNoIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNTaW1wbGVBcHBEYXNoIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxkPVskKHt0eXBlOkFycmF5fSldLHU9WyQoe3R5cGU6U3RyaW5nfSldLHg9WyQoe3R5cGU6QXJyYXl9KV0seT1bSygpXSxOPVtLKCldLHk1KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ibmFtZSJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLm5hbWUsImdldCIpLHNldDpzKChQLEIpPT57UC5uYW1lPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sbixsKSx5NSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJ2aWV3VGFicyJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnZpZXdUYWJzLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1Audmlld1RhYnM9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxjLHApLHk1KHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxTZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InRlcm1pbmFsU2V0dXBDb21tYW5kImluIFAsImhhcyIpLGdldDpzKFA9PlAudGVybWluYWxTZXR1cENvbW1hbmQsImdldCIpLHNldDpzKChQLEIpPT57UC50ZXJtaW5hbFNldHVwQ29tbWFuZD1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LG0sdikseTUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnbG9iYWxNZXNzYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4iZ2xvYmFsTWVzc2FnZXMiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5nbG9iYWxNZXNzYWdlcywiZ2V0Iiksc2V0OnMoKFAsQik9PntQLmdsb2JhbE1lc3NhZ2VzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSx5NSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ic2VsZWN0ZWRWaWV3ImluIFAsImhhcyIpLGdldDpzKFA9PlAuc2VsZWN0ZWRWaWV3LCJnZXQiKSxzZXQ6cygoUCxCKT0+e1Auc2VsZWN0ZWRWaWV3PUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sayxDKSx5NSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9hY3RpdmVNZXNzYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4iX2FjdGl2ZU1lc3NhZ2VzImluIFAsImhhcyIpLGdldDpzKFA9PlAuX2FjdGl2ZU1lc3NhZ2VzLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AuX2FjdGl2ZU1lc3NhZ2VzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyx6KSx5NShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpUfSxudWxsLHQpLE89cj1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPWg2YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPWRuKHRoaXMsbiwiQXBwbGljYXRpb24gRGFzaGJvYXJkIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShUKXt0aGlzLiNlPVR9I3Q9KGRuKHRoaXMsbCksZG4odGhpcyxjLFtdKSk7Z2V0IHZpZXdUYWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZpZXdUYWJzKFQpe3RoaXMuI3Q9VH0jYT0oZG4odGhpcyxwKSxkbih0aGlzLG0sJ2VjaG8gIlRlcm1pbmFsIHJlYWR5IicpKTtnZXQgdGVybWluYWxTZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGVybWluYWxTZXR1cENvbW1hbmQoVCl7dGhpcy4jYT1UfSNyPShkbih0aGlzLHYpLGRuKHRoaXMsYixbXSkpO2dldCBnbG9iYWxNZXNzYWdlcygpe3JldHVybiB0aGlzLiNyfXNldCBnbG9iYWxNZXNzYWdlcyhUKXt0aGlzLiNyPVR9I3M9KGRuKHRoaXMsZyksZG4odGhpcyxrLHZvaWQgMCkpO2dldCBzZWxlY3RlZFZpZXcoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2VsZWN0ZWRWaWV3KFQpe3RoaXMuI3M9VH0jaT0oZG4odGhpcyxDKSxkbih0aGlzLF8sW10pKTtnZXQgX2FjdGl2ZU1lc3NhZ2VzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IF9hY3RpdmVNZXNzYWdlcyhUKXt0aGlzLiNpPVR9c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuYXBwYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjRweCk7CiAgICAgICAgd2lkdGg6IDI0MHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBtaW4tY29udGVudDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc2lkZWJhci1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDIwcHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxcHggMnB4IHJnYigwIDAgMCAvIDAuMDUpIiwiMCAxcHggMnB4IHJnYigwIDAgMCAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5hcHBOYW1lIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lciB7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYikgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXIpOwogICAgICB9CgogICAgICAuc2VjdGlvbi1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudmlld1RhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAudmlld1RhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogOHB4OwogICAgICAgIGJvdHRvbTogOHB4OwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudmlld1RhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU1OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudmlld1RhYjpob3ZlciBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuNzU7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudmlld1RhYiBzcGFuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgLmNoZXZyb24gewogICAgICAgIGZsZXg6IDAgMCBhdXRvOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLmhhc1N1YnM6aG92ZXIgLmNoZXZyb24gewogICAgICAgIG9wYWNpdHk6IDAuNzU7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLmhhc1N1YnMuZ3JvdXBBY3RpdmUgLmNoZXZyb24gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgfQoKICAgICAgLnN1YlZpZXdzIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOgogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksCiAgICAgICAgICBtYXJnaW4tdG9wIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksCiAgICAgICAgICBtYXJnaW4tYm90dG9tIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy5leHBhbmRlZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLnN1YlZpZXdzOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnN1YlZpZXdzLmV4cGFuZGVkOjpiZWZvcmUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy1pbm5lciB7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnN1YiB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnN1Yi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBsZWZ0OiAtMTJweDsKICAgICAgfQoKICAgICAgLmFwcEFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQoKICAgICAgLmFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NCUgNjAlIC8gMC4wOCkiLCJoc2woMCA4NCUgNjAlIC8gMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0JSA0NSUpIiwiaHNsKDAgODQlIDY1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjRweCk7CiAgICAgICAgYm90dG9tOiAyNHB4OwogICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50OjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLThweDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICB0byBib3R0b20sCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDAlIC8gMC40KSIpfSwKICAgICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMCUgLyAwLjEyKSIpfSwKICAgICAgICAgIHRyYW5zcGFyZW50CiAgICAgICAgKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2xiYXI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogLThweDsKICAgICAgICBsZWZ0OiAyNDBweDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICB0byB0b3AsCiAgICAgICAgICAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDAlIC8gMC40KSIpfSwKICAgICAgICAgICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMCUgLyAwLjEyKSIpfSwKICAgICAgICAgIHRyYW5zcGFyZW50CiAgICAgICAgKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2xiYXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB6LWluZGV4OiAxMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07CiAgICAgIH0KCiAgICAgIC5jb250cm9sIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CgogICAgICB9CgogICAgICAuY29udHJvbDpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jb250cm9sOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuY29udHJvbCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmNvbnRyb2wuc3RhdHVzLWNvbm5lY3RlZCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy10ZXJtaW5hbCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAvKiBHbG9iYWwgTWVzc2FnZSBCYW5uZXJzICovCiAgICAgIC5tZXNzYWdlQmFubmVyQXJlYSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAyNDBweDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAzOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGFuaW1hdGlvbjogYmFubmVyU2xpZGVEb3duIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLmRpc21pc3NpbmcgewogICAgICAgIGFuaW1hdGlvbjogYmFubmVyU2xpZGVVcCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgYmFubmVyU2xpZGVEb3duIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBiYW5uZXJTbGlkZVVwIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4xNSkiLCJoc2woMCAwJSAxMDAlIC8gMC4xOCkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWFjdGlvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nyk7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWFjdGlvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItZGlzbWlzcyB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItZGlzbWlzczpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogaW5mbyAqLwogICAgICAubWVzc2FnZUJhbm5lci1pbmZvIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDk3JSkiLCJoc2woMjEwIDUwJSAxMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCA3MCUgMzAlKSIsImhzbCgyMTAgNzAlIDgwJSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjMDA4NGZmOwogICAgICB9CiAgICAgIC5tZXNzYWdlQmFubmVyLWluZm8gZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogIzAwODRmZjsKICAgICAgfQoKICAgICAgLyogTWVzc2FnZSB0eXBlOiBzdWNjZXNzICovCiAgICAgIC5tZXNzYWdlQmFubmVyLXN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSA5NyUpIiwiaHNsKDE0MiAzMCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNTAlIDI1JSkiLCJoc2woMTQyIDUwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzIyYzU1ZTsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci1zdWNjZXNzIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogd2FybmluZyAqLwogICAgICAubWVzc2FnZUJhbm5lci13YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkwJSA5NyUpIiwiaHNsKDM4IDQwJSAxMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDM4IDYwJSAyNSUpIiwiaHNsKDM4IDYwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2Y1OWUwYjsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci13YXJuaW5nIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogZXJyb3IgKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgOTclKSIsImhzbCgwIDQwJSAxMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNjAlIDMwJSkiLCJoc2woMCA2MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNlZjQ0NDQ7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItZXJyb3IgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogI2VmNDQ0NDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItZGlzbWlzczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFwcGNvbnRlbnQgewogICAgICAgIHRvcDogdmFyKC0tYmFubmVyLWFyZWEtaGVpZ2h0LCAwcHgpOwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjRweCAtIHZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KSk7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaWNvbi13cmFwcGVyIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bGF5b3V0R3JpZCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcE5hbWUiPiR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicy1jb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5OYXZpZ2F0aW9uPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdUYWJzIj4KICAgICAgICAgICAgICAke3RoaXMudmlld1RhYnMubWFwKFQ9PntsZXQgUD0hIVQuc3ViVmlld3M/Lmxlbmd0aCxCPVAmJnRoaXMuaXNHcm91cEFjdGl2ZShUKTtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2aWV3VGFiICR7dGhpcy5zZWxlY3RlZFZpZXc9PT1UPyJzZWxlY3RlZCI6IiJ9ICR7UD8iaGFzU3VicyI6IiJ9ICR7Qj8iZ3JvdXBBY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5sb2FkVmlldyhUKX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7VC5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtULmljb25OYW1lLmluY2x1ZGVzKCI6Iik/VC5pY29uTmFtZTpgbHVjaWRlOiR7VC5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmZpbGUifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke1QubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgJHtQP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjaGV2cm9uIiAuaWNvbj0iJHsibHVjaWRlOmNoZXZyb25Eb3duIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAke1A/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ic3ViVmlld3MgJHtCPyJleHBhbmRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgP2luZXJ0PSR7IUJ9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViVmlld3MtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAke1Quc3ViVmlld3MubWFwKE09PndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2aWV3VGFiIHN1YiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09TT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7Uz0+e1Muc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5sb2FkVmlldyhNKX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7TS5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7TS5pY29uTmFtZS5pbmNsdWRlcygiOiIpP00uaWNvbk5hbWU6YGx1Y2lkZToke00uaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmRvdCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtNLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcEFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24iIEBjbGljaz0keygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9nb3V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsb2dPdXQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+U2lnbiBvdXQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLl9hY3RpdmVNZXNzYWdlcy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXJBcmVhIj4KICAgICAgICAgICR7dGhpcy5fYWN0aXZlTWVzc2FnZXMubWFwKFQ9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0ibWVzc2FnZUJhbm5lciBtZXNzYWdlQmFubmVyLSR7VC50eXBlfSIKICAgICAgICAgICAgICBkYXRhLW1lc3NhZ2UtaWQ9IiR7VC5pZH0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuZ2V0TWVzc2FnZUljb24oVCl9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVzc2FnZUJhbm5lci10ZXh0Ij4ke1QubWVzc2FnZX08L3NwYW4+CiAgICAgICAgICAgICAgJHtULmFjdGlvbnM/Lmxlbmd0aD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZUJhbm5lci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHtULmFjdGlvbnMubWFwKFA9PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZUJhbm5lci1hY3Rpb24iIEBjbGljaz0keygpPT5QLmFjdGlvbigpfT4KICAgICAgICAgICAgICAgICAgICAgICR7UC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7UC5pY29uTmFtZS5pbmNsdWRlcygiOiIpP1AuaWNvbk5hbWU6YGx1Y2lkZToke1AuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke1AubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAke1QuZGlzbWlzc2libGUhPT0hMT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZUJhbm5lci1kaXNtaXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVNZXNzYWdlKFQuaWQpfT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOngifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAgIDxkaXYgY2xhc3M9ImFwcGNvbnRlbnQiPgogICAgICAgICAgPCEtLSBDb250ZW50IGdvZXMgaGVyZSAtLT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wgc3RhdHVzLWNvbm5lY3RlZCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp3aWZpIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj5Db25uZWN0ZWQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wgc3RhdHVzLXRlcm1pbmFsIiBAY2xpY2s9JHt0aGlzLmxhdW5jaFRlcm1pbmFsfT4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOnRlcm1pbmFsIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj5UZXJtaW5hbDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKFQpe2xldCBQPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHN1cGVyLmZpcnN0VXBkYXRlZChUKSx0aGlzLnZpZXdUYWJzJiZ0aGlzLnZpZXdUYWJzLmxlbmd0aD4wKXtsZXQgQj10aGlzLnNlbGVjdGVkVmlld3x8dGhpcy52aWV3VGFic1swXTthd2FpdCB0aGlzLmxvYWRWaWV3KEIpfX13aWxsVXBkYXRlKFQpe2lmKFQuaGFzKCJnbG9iYWxNZXNzYWdlcyIpKXtsZXQgUD1uZXcgU2V0KHRoaXMuZ2xvYmFsTWVzc2FnZXMubWFwKEY9PkYuaWQpKSxCPW5ldyBTZXQodGhpcy5fYWN0aXZlTWVzc2FnZXMubWFwKEY9PkYuaWQpKSxNPXRoaXMuZ2xvYmFsTWVzc2FnZXMuZmlsdGVyKEY9PiFCLmhhcyhGLmlkKSksUz1ULmdldCgiZ2xvYmFsTWVzc2FnZXMiKXx8W10sRT1uZXcgU2V0KFMubWFwKEY9PkYuaWQpKSxBPW5ldyBTZXQoWy4uLkVdLmZpbHRlcihGPT4hUC5oYXMoRikpKTt0aGlzLl9hY3RpdmVNZXNzYWdlcz1bLi4udGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEY9PiFBLmhhcyhGLmlkKSksLi4uTV19fXVwZGF0ZWQoVCl7c3VwZXIudXBkYXRlZChUKSx0aGlzLnVwZGF0ZUJhbm5lck9mZnNldCgpfXVwZGF0ZUJhbm5lck9mZnNldCgpe3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1lc3NhZ2VCYW5uZXJBcmVhIiksUD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIiksQj1UP1Qub2Zmc2V0SGVpZ2h0OjA7UD8uc3R5bGUuc2V0UHJvcGVydHkoIi0tYmFubmVyLWFyZWEtaGVpZ2h0IixgJHtCfXB4YCl9KX1nZXRNZXNzYWdlSWNvbihUKXtyZXR1cm4gVC5pY29uP1QuaWNvbjp7aW5mbzoibHVjaWRlOmluZm8iLHN1Y2Nlc3M6Imx1Y2lkZTpjaXJjbGVDaGVjayIsd2FybmluZzoibHVjaWRlOnRyaWFuZ2xlQWxlcnQiLGVycm9yOiJsdWNpZGU6Y2lyY2xlWCJ9W1QudHlwZV19YWRkTWVzc2FnZShUKXtsZXQgUD1ULmlkfHxgbXNnLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX1gLEI9e2Rpc21pc3NpYmxlOiEwLC4uLlQsaWQ6UH07cmV0dXJuIHRoaXMuX2FjdGl2ZU1lc3NhZ2VzPVsuLi50aGlzLl9hY3RpdmVNZXNzYWdlcyxCXSxQfXJlbW92ZU1lc3NhZ2UoVCl7bGV0IFA9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1tZXNzYWdlLWlkPSIke1R9Il1gKTtQPyhQLmNsYXNzTGlzdC5hZGQoImRpc21pc3NpbmciKSxQLmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbmVuZCIsKCk9Pnt0aGlzLl9hY3RpdmVNZXNzYWdlcz10aGlzLl9hY3RpdmVNZXNzYWdlcy5maWx0ZXIoQj0+Qi5pZCE9PVQpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lc3NhZ2UtZGlzbWlzcyIse2RldGFpbDp7aWQ6VH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0se29uY2U6ITB9KSk6dGhpcy5fYWN0aXZlTWVzc2FnZXM9dGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEI9PkIuaWQhPT1UKX1jbGVhck1lc3NhZ2VzKCl7dGhpcy5fYWN0aXZlTWVzc2FnZXM9W119Y3VycmVudFRlcm1pbmFsPShkbih0aGlzLHopLG51bGwpO2FzeW5jIGxhdW5jaFRlcm1pbmFsKCl7bGV0IFQ9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7aWYodGhpcy5jdXJyZW50VGVybWluYWwpe2F3YWl0IHRoaXMuY2xvc2VUZXJtaW5hbCgpO3JldHVybn1sZXQgUD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOkJ9PWF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihkRygpLGQ2YSkpLE09bmV3IEI7cmV0dXJuIE0uc2V0dXBDb21tYW5kPXRoaXMudGVybWluYWxTZXR1cENvbW1hbmQsdGhpcy5jdXJyZW50VGVybWluYWw9TSxQLmFwcGVuZENoaWxkKE0pLE0uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixNLnN0eWxlLnpJbmRleD0iMTAiLE0uc3R5bGUudG9wPSJ2YXIoLS1iYW5uZXItYXJlYS1oZWlnaHQsIDBweCkiLE0uc3R5bGUubGVmdD0iMjQwcHgiLE0uc3R5bGUucmlnaHQ9IjBweCIsTS5zdHlsZS5oZWlnaHQ9ImF1dG8iLE0uc3R5bGUuYm90dG9tPSIyNHB4IixNLnN0eWxlLm9wYWNpdHk9IjAiLE0uc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OSkiLE0uc3R5bGUudHJhbnNpdGlvbj0iYWxsIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkiLE0uc3R5bGUuYm94U2hhZG93PSIwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjUpLCAwIDAgMCAxcHggcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSkiLE0uYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT50aGlzLmNsb3NlVGVybWluYWwoKSksYXdhaXQgVC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLE0uc3R5bGUub3BhY2l0eT0iMSIsTS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMCkgc2NhbGUoMSkiLE19YXN5bmMgY2xvc2VUZXJtaW5hbCgpe2xldCBUPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuY3VycmVudFRlcm1pbmFsJiYodGhpcy5jdXJyZW50VGVybWluYWwuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5jdXJyZW50VGVybWluYWwuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OSkiLGF3YWl0IFQuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyNTApLHRoaXMuY3VycmVudFRlcm1pbmFsLnJlbW92ZSgpLHRoaXMuY3VycmVudFRlcm1pbmFsPW51bGwpfWlzR3JvdXBBY3RpdmUoVCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRWaWV3PT09VD8hMDpULnN1YlZpZXdzPy5zb21lKFA9PlA9PT10aGlzLnNlbGVjdGVkVmlldyk/PyExfWN1cnJlbnRWaWV3O2FzeW5jIGxvYWRWaWV3KFQpe2lmKCFULmVsZW1lbnQmJlQuc3ViVmlld3M/Lmxlbmd0aCl7bGV0IE09VC5zdWJWaWV3cy5maW5kKFM9PlMuZWxlbWVudCk7cmV0dXJuIE0/dGhpcy5sb2FkVmlldyhNKTp2b2lkIDB9aWYoIVQuZWxlbWVudClyZXR1cm47bGV0IFA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5hcHBjb250ZW50IiksQj1uZXcgVC5lbGVtZW50O3RoaXMuY3VycmVudFZpZXcmJnRoaXMuY3VycmVudFZpZXcucmVtb3ZlKCksUC5hcHBlbmRDaGlsZChCKSx0aGlzLmN1cnJlbnRWaWV3PUIsdGhpcy5zZWxlY3RlZFZpZXc9VCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2aWV3LXNlbGVjdCIse2RldGFpbDp7dmlldzpUfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXN0YXRpY3tkbihyLHQpfX07cmV0dXJuIE89cn0pKCl9KTt2YXIgdjZhPWYoKCk9PntiNmEoKX0pO3ZhciB4NmEseTZhPWYoKCk9PntsZSgpO3g2YT1zKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1sb2dpbiAKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIEBsb2dpbj0ke2E9Pntjb25zb2xlLmxvZygiTG9naW4gZXZlbnQgcmVjZWl2ZWQ6IixhLmRldGFpbCk7bGV0IGU9YS5kZXRhaWw/LmRhdGF8fGEuZGV0YWlsO2U/LnVzZXJuYW1lJiZlPy5wYXNzd29yZD9hbGVydChgTG9naW4gYXR0ZW1wdGVkIHdpdGg6ClVzZXJuYW1lOiAke2UudXNlcm5hbWV9ClBhc3N3b3JkOiAke2UucGFzc3dvcmR9YCk6Y29uc29sZS5lcnJvcigiSW52YWxpZCBsb2dpbiBkYXRhIHN0cnVjdHVyZToiLGEuZGV0YWlsKX19CiAgICA+CiAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgIDxoMT5XZWxjb21lITwvaDE+CiAgICAgICAgPHA+VGhpcyBpcyB0aGUgc2xvdHRlZCBjb250ZW50IHRoYXQgYXBwZWFycyBhZnRlciBsb2dpbi48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXNpbXBsZS1sb2dpbj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB3NmEsYkplLE02YSxrNmE9ZigoKT0+e3k2YSgpO2xlKCk7UWUoKTtRcigpO3c2YT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sYkplPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxNNmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXNpbXBsZS1sb2dpbiIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzU2ltcGxlTG9naW4iKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKCldLHc2YSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+Im5hbWUiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5uYW1lLCJnZXQiKSxzZXQ6cygocCx1KT0+e3AubmFtZT11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksdzZhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89eDZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9YkplKHRoaXMsbiwiQXBwbGljYXRpb24iKTtnZXQgbmFtZSgpe3JldHVybiB0aGlzLiNlfXNldCBuYW1lKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sb2dpbkNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnNsb3RDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmxvZ2luIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc3ViaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTo6cGFydChjb250ZW50KSB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIGRlZXMtZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIGRlZXMtaW5wdXQtdGV4dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWZvcm0tc3VibWl0IHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsb2dpbkNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5TaWduIGluPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YmhlYWRlciI+RW50ZXIgeW91ciBjcmVkZW50aWFscyB0byBhY2Nlc3MgJHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHsiQ3JlZGVudGlhbHMifT4KICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idXNlcm5hbWUiIGxhYmVsPSJVc2VybmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iUGFzc3dvcmQiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNpZ24gaW48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGFpbmVyIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpO2xldCBwPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtwJiZwLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwodT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ2luIix7ZGV0YWlsOnUuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9KSl9YXN5bmMgc3dpdGNoVG9TbG90dGVkQ29udGVudCgpe2xldCBjPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbiIpLHU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbkNvbnRhaW5lciIpLG09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zbG90Q29udGFpbmVyIik7cC5zdHlsZS5vcGFjaXR5PSIwIixwLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIsdS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixtLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIsYXdhaXQgYy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksbS5zdHlsZS5vcGFjaXR5PSIxIixtLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwcHgpIixhd2FpdCBjLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzAwKSxtLnN0eWxlLnBvaW50ZXJFdmVudHM9ImFsbCJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGJKZSh0aGlzLGwpfXN0YXRpY3tiSmUocix0KX19O3JldHVybiBkPXJ9KSgpfSk7dmFyIFM2YT1mKCgpPT57azZhKCl9KTt2YXIgejZhPWYoKCk9PntjNmEoKTt2NmEoKTtTNmEoKX0pO3ZhciBDNmE9ZigoKT0+e3ZhKCl9KTt2YXIgXzZhLFQ2YT1mKCgpPT57bGUoKTtfNmE9cygoKT0+d2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgYmFja2dyb3VuZDogIzg4ODg4ODsKICAgICAgfQogICAgICAubG9ncyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB3aWR0aDogNjAwcHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQogICAgICAubG9ncyBkaXYgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICAgIDxkZWVzLXNlYXJjaGJhcgogICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke3ModD0+e2xldCBpPXQudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjY2hhbmdlZCIpO2kmJihpLnRleHRDb250ZW50PWBzZWFyY2gtY2hhbmdlZDogJHt0LmRldGFpbC52YWx1ZX1gKX0sIm9uQ2hhbmdlZCIpfQogICAgICAgIEBzZWFyY2gtc3VibWl0PSR7cyh0PT57bGV0IGk9dC50YXJnZXQuY2xvc2VzdCgiLmRlbW9XcmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoIiNzdWJtaXR0ZWQiKTtpJiYoaS50ZXh0Q29udGVudD1gc2VhcmNoLXN1Ym1pdDogJHt0LmRldGFpbC52YWx1ZX1gKX0sIm9uU3VibWl0Iil9CiAgICAgID48L2RlZXMtc2VhcmNoYmFyPgogICAgICA8ZGl2IGNsYXNzPSJsb2dzIj4KICAgICAgICA8ZGl2IGlkPSJjaGFuZ2VkIj5zZWFyY2gtY2hhbmdlZDo8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJzdWJtaXR0ZWQiPnNlYXJjaC1zdWJtaXQ6PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBMNmEsdkplLCQ2YSxENmE9ZigoKT0+e2xlKCk7TDEoKTtUNmEoKTtRZSgpO0w2YT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sdkplPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSwkNmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXNlYXJjaGJhciIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzU2VhcmNoYmFyIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCgpXSxMNmEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHA9PiJmaWx0ZXJzImluIHAsImhhcyIpLGdldDpzKHA9PnAuZmlsdGVycywiZ2V0Iiksc2V0OnMoKHAsdSk9PntwLmZpbHRlcnM9dX0sInNldCIpfSxtZXRhZGF0YTpjfSxuLGwpLEw2YShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLHQpLGQ9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPV82YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IERlZXMgU2FuczsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3hDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDE1IiwiI2ZmZmZmZjE1Iil9OwogICAgICAgIC0tYm94SGVpZ2h0OiA2MHB4OwogICAgICAgIGhlaWdodDogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3hIZWlnaHQpOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMTQwcHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYyMCIpfTsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZWVlZWViIil9OwogICAgICAgIHBhZGRpbmctbGVmdDogMjVweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hCdXR0b24gewogICAgICAgIC0tYnV0dG9uUGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWVlZWViIiwiIzAwMDAwMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZWVlZWViIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWJveEhlaWdodCkgLSAodmFyKC0tYnV0dG9uUGFkZGluZykgKiAyKSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIDsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcywgYmFja2dyb3VuZCAwLjFzOwogICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tYnV0dG9uUGFkZGluZyk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hCdXR0b246aG92ZXIgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKG80LmJsdWUsaTQuYmx1ZSl9OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUobzQuYmx1ZUFjdGl2ZSxpNC5ibHVlQWN0aXZlKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLmZpbHRlcnMgewogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICB9CiAgICBgXTsjZT12SmUodGhpcyxuLFtdKTtnZXQgZmlsdGVycygpe3JldHVybiB0aGlzLiNlfXNldCBmaWx0ZXJzKGMpe3RoaXMuI2U9Y31zZWFyY2hJbnB1dD12SmUodGhpcyxsKTtzZWFyY2hCdXR0b247Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3hDb250YWluZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iWW91ciBTa2lsbHMgKGUuZy4gVHlwZVNjcmlwdCwgUnVzdCwgUHJvamVjdG1hbmFnZW1lbnQpIiAvPgogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEJ1dHRvbiI+U2VhcmNoIC0+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuZmlsdGVycy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlcnMiPgogICAgICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyLXNtYWxsIj5GaWx0ZXJzPC9kZWVzLWhlYWRpbmc+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24gLmxhYmVsPSR7ImxvY2F0aW9uIn0+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2Rpdj4gIAogICAgICBgOndgYH0KICAgIGB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2gtY2hhbmdlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt2YWx1ZTp0aGlzLnNlYXJjaElucHV0LnZhbHVlfX0pKX0pLHRoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2Mua2V5PT09IkVudGVyIiYmdGhpcy5fZGlzcGF0Y2hTdWJtaXQoKX0pLHRoaXMuc2VhcmNoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+dGhpcy5fZGlzcGF0Y2hTdWJtaXQoKSl9X2Rpc3BhdGNoU3VibWl0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLXN1Ym1pdCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt2YWx1ZTp0aGlzLnNlYXJjaElucHV0LnZhbHVlfX0pKX1zdGF0aWN7dkplKHIsdCl9fTtyZXR1cm4gZD1yfSkoKX0pO3ZhciBBNmE9ZigoKT0+e0Q2YSgpfSk7dmFyIFA2YSxFNmE9ZigoKT0+e2xlKCk7UDZhPXMoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgIH0KCiAgICAudG9rZW4tZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgZ2FwOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1pdGVtIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICB9CgogICAgLnRva2VuLW5hbWUgewogICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgbW9ub3NwYWNlOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIH0KCiAgICAudG9rZW4tdmFsdWUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNwYWNpbmctZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc3BhY2luZy1ib3ggewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIH0KCiAgICAucmFkaXVzLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDE2cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAucmFkaXVzLWJveCB7CiAgICAgIHdpZHRoOiA2MHB4OwogICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC5zaGFkb3ctZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5zaGFkb3ctYm94IHsKICAgICAgd2lkdGg6IDEwMHB4OwogICAgICBoZWlnaHQ6IDEwMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIH0KCiAgICAuaGVpZ2h0LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDE2cHg7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5oZWlnaHQtYm94IHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB3aWR0aDogMTIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtdGhlbWU+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNwYWNpbmcgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1zcGFjaW5nLXhzIHRocm91Z2ggLS1kZWVzLXNwYWNpbmctM3hsCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj54cyAoNHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1zbSk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c20gKDhweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1kICgxMnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1sZyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bGcgKDE2cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj54bCAoMjRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTJ4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTJ4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MnhsICgzMnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctM3hsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctM3hsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zeGwgKDQ4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb3JkZXIgUmFkaXVzIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtcmFkaXVzLXhzIHRocm91Z2ggLS1kZWVzLXJhZGl1cy1mdWxsCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhzKTsiPnhzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj42cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MTJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7Ij5mdWxsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjk5OXB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TaGFkb3cgRWxldmF0aW9uIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc2hhZG93LXhzIHRocm91Z2ggLS1kZWVzLXNoYWRvdy1sZwogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5taW5pbWFsPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5zdWJ0bGU8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1lZGl1bTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+cHJvbWluZW50PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db250cm9sIEhlaWdodCBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtIHRocm91Z2ggLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zMnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzZweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjQwcHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC14bCk7Ij54bDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40OHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UcmFuc2l0aW9uIER1cmF0aW9uczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXRyYW5zaXRpb24tZmFzdCB0aHJvdWdoIC0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLWZhc3Q8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLWRlZmF1bHQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMTVzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1zbG93PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjJzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXI8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuM3M8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy10aGVtZT4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciByNyxaMSxJNmEsTjZhPWYoKCk9PntsZSgpO1FlKCk7RTZhKCk7cjc9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LFoxPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxJNmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXRoZW1lIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNUaGVtZSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6T2JqZWN0fSldLGQ9WyQoe3R5cGU6T2JqZWN0fSldLHU9WyQoe3R5cGU6T2JqZWN0fSldLHg9WyQoe3R5cGU6T2JqZWN0fSldLHk9WyQoe3R5cGU6T2JqZWN0fSldLHI3KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tU3BhY2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iY3VzdG9tU3BhY2luZyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LmN1c3RvbVNwYWNpbmcsImdldCIpLHNldDpzKCh6LE8pPT57ei5jdXN0b21TcGFjaW5nPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbixsKSxyNyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVJhZGl1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iY3VzdG9tUmFkaXVzImluIHosImhhcyIpLGdldDpzKHo9PnouY3VzdG9tUmFkaXVzLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouY3VzdG9tUmFkaXVzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYyxwKSxyNyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNoYWRvd3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImN1c3RvbVNoYWRvd3MiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5jdXN0b21TaGFkb3dzLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouY3VzdG9tU2hhZG93cz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG0sdikscjcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21UcmFuc2l0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iY3VzdG9tVHJhbnNpdGlvbnMiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5jdXN0b21UcmFuc2l0aW9ucywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmN1c3RvbVRyYW5zaXRpb25zPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxyNyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbUNvbnRyb2xIZWlnaHRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJjdXN0b21Db250cm9sSGVpZ2h0cyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LmN1c3RvbUNvbnRyb2xIZWlnaHRzLCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouY3VzdG9tQ29udHJvbEhlaWdodHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLEMpLHI3KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsdCksTj1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89UDZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPVoxKHRoaXMsbixudWxsKTtnZXQgY3VzdG9tU3BhY2luZygpe3JldHVybiB0aGlzLiNlfXNldCBjdXN0b21TcGFjaW5nKF8pe3RoaXMuI2U9X30jdD0oWjEodGhpcyxsKSxaMSh0aGlzLGMsbnVsbCkpO2dldCBjdXN0b21SYWRpdXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VzdG9tUmFkaXVzKF8pe3RoaXMuI3Q9X30jYT0oWjEodGhpcyxwKSxaMSh0aGlzLG0sbnVsbCkpO2dldCBjdXN0b21TaGFkb3dzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1c3RvbVNoYWRvd3MoXyl7dGhpcy4jYT1ffSNyPShaMSh0aGlzLHYpLFoxKHRoaXMsYixudWxsKSk7Z2V0IGN1c3RvbVRyYW5zaXRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGN1c3RvbVRyYW5zaXRpb25zKF8pe3RoaXMuI3I9X30jcz0oWjEodGhpcyxnKSxaMSh0aGlzLGssbnVsbCkpO2dldCBjdXN0b21Db250cm9sSGVpZ2h0cygpe3JldHVybiB0aGlzLiNzfXNldCBjdXN0b21Db250cm9sSGVpZ2h0cyhfKXt0aGlzLiNzPV99c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAke3RoaXMuZ2VuZXJhdGVDdXN0b21TdHlsZXMoKX0KICAgICAgPC9zdHlsZT4KICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1nZW5lcmF0ZUN1c3RvbVN0eWxlcygpe2xldCBfPVsiOmhvc3QgeyJdO2lmKHRoaXMuY3VzdG9tU3BhY2luZylmb3IobGV0W3osT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVNwYWNpbmcpKU8mJl8ucHVzaChgICAtLWRlZXMtc3BhY2luZy0ke3p9OiAke099O2ApO2lmKHRoaXMuY3VzdG9tUmFkaXVzKWZvcihsZXRbeixPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tUmFkaXVzKSlPJiZfLnB1c2goYCAgLS1kZWVzLXJhZGl1cy0ke3p9OiAke099O2ApO2lmKHRoaXMuY3VzdG9tU2hhZG93cylmb3IobGV0W3osT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVNoYWRvd3MpKU8mJl8ucHVzaChgICAtLWRlZXMtc2hhZG93LSR7en06ICR7T307YCk7aWYodGhpcy5jdXN0b21UcmFuc2l0aW9ucyl7Zm9yKGxldFt6LE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21UcmFuc2l0aW9ucykpaWYoTyl7bGV0IFQ9ej09PSJkZWZhdWx0Ij8iZGVmYXVsdCI6ejtfLnB1c2goYCAgLS1kZWVzLXRyYW5zaXRpb24tJHtUfTogJHtPfTtgKX19aWYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cylmb3IobGV0W3osT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzKSlPJiZfLnB1c2goYCAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LSR7en06ICR7T307YCk7cmV0dXJuIF8ucHVzaCgifSIpLF8uam9pbihgCmApfXNldFNwYWNpbmcoXyx6KXt0aGlzLmN1c3RvbVNwYWNpbmc9ey4uLnRoaXMuY3VzdG9tU3BhY2luZyxbX106en19c2V0UmFkaXVzKF8seil7dGhpcy5jdXN0b21SYWRpdXM9ey4uLnRoaXMuY3VzdG9tUmFkaXVzLFtfXTp6fX1zZXRTaGFkb3coXyx6KXt0aGlzLmN1c3RvbVNoYWRvd3M9ey4uLnRoaXMuY3VzdG9tU2hhZG93cyxbX106en19c2V0VHJhbnNpdGlvbihfLHope3RoaXMuY3VzdG9tVHJhbnNpdGlvbnM9ey4uLnRoaXMuY3VzdG9tVHJhbnNpdGlvbnMsW19dOnp9fXNldENvbnRyb2xIZWlnaHQoXyx6KXt0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPXsuLi50aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzLFtfXTp6fX1nZXRUaGVtZSgpe3JldHVybntjb2xvcnM6ZW4uY29sb3JzLHNwYWNpbmc6ey4uLmVuLnNwYWNpbmcsLi4udGhpcy5jdXN0b21TcGFjaW5nfSxyYWRpdXM6ey4uLmVuLnJhZGl1cywuLi50aGlzLmN1c3RvbVJhZGl1c30sc2hhZG93czp7Li4uZW4uc2hhZG93cywuLi50aGlzLmN1c3RvbVNoYWRvd3N9LHRyYW5zaXRpb25zOnsuLi5lbi50cmFuc2l0aW9ucywuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zfSxjb250cm9sSGVpZ2h0czp7Li4uZW4uY29udHJvbEhlaWdodHMsLi4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0c319fXJlc2V0VG9EZWZhdWx0cygpe3RoaXMuY3VzdG9tU3BhY2luZz1udWxsLHRoaXMuY3VzdG9tUmFkaXVzPW51bGwsdGhpcy5jdXN0b21TaGFkb3dzPW51bGwsdGhpcy5jdXN0b21UcmFuc2l0aW9ucz1udWxsLHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9bnVsbH1hcHBseVRoZW1lKF8pe18uc3BhY2luZyYmKHRoaXMuY3VzdG9tU3BhY2luZz1fLnNwYWNpbmcpLF8ucmFkaXVzJiYodGhpcy5jdXN0b21SYWRpdXM9Xy5yYWRpdXMpLF8uc2hhZG93cyYmKHRoaXMuY3VzdG9tU2hhZG93cz1fLnNoYWRvd3MpLF8udHJhbnNpdGlvbnMmJih0aGlzLmN1c3RvbVRyYW5zaXRpb25zPV8udHJhbnNpdGlvbnMpLF8uY29udHJvbEhlaWdodHMmJih0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPV8uY29udHJvbEhlaWdodHMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxaMSh0aGlzLEMpfXN0YXRpY3taMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgUjZhPWYoKCk9PntONmEoKX0pO3ZhciBPNmEsRjZhLEI2YT1mKCgpPT57bGUoKTt4SmUoKTtPNmE9cyhhc3luYyBhPT57YXdhaXQgbmV3IFByb21pc2UoZT0+e3dpbmRvdy5zZXRUaW1lb3V0KCgpPT5lKCksYSl9KX0sIndhaXRGb3JEZW1vU3RlcCIpLEY2YT1zKCgpPT57bGV0IGE9ITE7cmV0dXJuIHdgCiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE2cHg7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBtYXgtd2lkdGg6IDU0MHB4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICBMYXVuY2hlcyB0aGUgdXBkYXRlciBhcyBhIHN0ZXBwZXIgZmxvdy4gVGhlIGZpcnN0IHN0ZXAgc3RyZWFtcyB0ZXJtaW5hbC1zdHlsZQogICAgICAgIHByb2dyZXNzIHVwZGF0ZXMgYW5kIHRoZW4gbW92ZXMgYXV0b21hdGljYWxseSB0byB0aGUgcmVhZHkgc3RlcC4KICAgICAgPC9wPgogICAgICA8ZGVlcy1idXR0b24KICAgICAgICBAY2xpY2s9JHthc3luYygpPT57aWYoIWEpe2E9ITA7dHJ5e2xldCBlPWF3YWl0IGNpZS5jcmVhdGVBbmRTaG93KHtjdXJyZW50VmVyc2lvbjoiMy43OS4wIix1cGRhdGVkVmVyc2lvbjoiMy44MC4wIixtb3JlSW5mb1VybDoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL2Rlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIixjaGFuZ2Vsb2dVcmw6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9kZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy8tL2Jsb2IvbWFpbi9jaGFuZ2Vsb2cubWQiLHN1Y2Nlc3NBY3Rpb246ImNsb3NlIixzdWNjZXNzRGVsYXlNczoxZTR9KSx0PVt7bGluZToiQ2hlY2tpbmcgcmVsZWFzZSBtYW5pZmVzdCIscGVyY2VudGFnZToxMixkZWxheTo1NTB9LHtsaW5lOiJEb3dubG9hZGluZyBzaWduZWQgYnVuZGxlIixwZXJjZW50YWdlOjMzLGRlbGF5OjcwMH0se2xpbmU6IlZlcmlmeWluZyBjaGVja3N1bSIscGVyY2VudGFnZTo1MSxkZWxheTo2NTB9LHtsaW5lOiJBcHBseWluZyB1cGRhdGUgZmlsZXMiLHBlcmNlbnRhZ2U6NzQsZGVsYXk6ODAwfSx7bGluZToiQ2xlYW5pbmcgdXAgcHJldmlvdXMgcmVsZWFzZSIscGVyY2VudGFnZTo5MSxkZWxheTo2MDB9XTtlLnVwZGF0ZVByb2dyZXNzKHtzdGF0dXNUZXh0OiJDaGVja2luZyByZWxlYXNlIG1hbmlmZXN0Li4uIix0ZXJtaW5hbExpbmVzOlsiQ2hlY2tpbmcgcmVsZWFzZSBtYW5pZmVzdCJdLHBlcmNlbnRhZ2U6MTIsaW5kZXRlcm1pbmF0ZTohMH0pO2ZvcihsZXRbcixpXW9mIHQuZW50cmllcygpKXI+MCYmKGUuYXBwZW5kUHJvZ3Jlc3NMaW5lKGkubGluZSksZS51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZTppLnBlcmNlbnRhZ2Usc3RhdHVzVGV4dDpgJHtpLmxpbmV9Li4uYH0pKSxhd2FpdCBPNmEoaS5kZWxheSk7YXdhaXQgZS5tYXJrVXBkYXRlUmVhZHkoKSxhd2FpdCBPNmEoMTA1MDApfWZpbmFsbHl7YT0hMX19fX0KICAgICAgPlNob3cgdXBkYXRlciBmbG93PC9kZWVzLWJ1dHRvbj4KICAgIDwvZGl2PgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHE0LGZvLGNpZSx4SmU9ZigoKT0+e2xlKCk7QjZhKCk7R3NlKCk7bXMoKTtxND1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sZm89ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGNpZT0oKCk9PntsZXQgYT1baWUoImRlZXMtdXBkYXRlciIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdO3ZhciBCPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzVXBkYXRlciIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHU9WyQoe3R5cGU6U3RyaW5nfSldLHg9WyQoe3R5cGU6U3RyaW5nfSldLHk9WyQoe3R5cGU6U3RyaW5nfSldLE49WyQoe3R5cGU6TnVtYmVyfSldLE89WyQoe3R5cGU6U3RyaW5nfSldLHE0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImN1cnJlbnRWZXJzaW9uImluIFMsImhhcyIpLGdldDpzKFM9PlMuY3VycmVudFZlcnNpb24sImdldCIpLHNldDpzKChTLEUpPT57Uy5jdXJyZW50VmVyc2lvbj1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG4sbCkscTQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cGRhdGVkVmVyc2lvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4idXBkYXRlZFZlcnNpb24iaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy51cGRhdGVkVmVyc2lvbiwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnVwZGF0ZWRWZXJzaW9uPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYyxwKSxxNCh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vcmVJbmZvVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJtb3JlSW5mb1VybCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLm1vcmVJbmZvVXJsLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MubW9yZUluZm9Vcmw9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxtLHYpLHE0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hhbmdlbG9nVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJjaGFuZ2Vsb2dVcmwiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5jaGFuZ2Vsb2dVcmwsImdldCIpLHNldDpzKChTLEUpPT57Uy5jaGFuZ2Vsb2dVcmw9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxiLGcpLHE0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VjY2Vzc0FjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4ic3VjY2Vzc0FjdGlvbiJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnN1Y2Nlc3NBY3Rpb24sImdldCIpLHNldDpzKChTLEUpPT57Uy5zdWNjZXNzQWN0aW9uPUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sayxDKSxxNCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Y2Nlc3NEZWxheU1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJzdWNjZXNzRGVsYXlNcyJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnN1Y2Nlc3NEZWxheU1zLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1Muc3VjY2Vzc0RlbGF5TXM9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxfLHopLHE0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VjY2Vzc0FjdGlvbkxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJzdWNjZXNzQWN0aW9uTGFiZWwiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5zdWNjZXNzQWN0aW9uTGFiZWwsImdldCIpLHNldDpzKChTLEUpPT57Uy5zdWNjZXNzQWN0aW9uTGFiZWw9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxULFApLHE0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCksQj1yPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89RjZhO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KE09e30pe2xldCBTPW5ldyBCO3JldHVybiBTLmN1cnJlbnRWZXJzaW9uPU0uY3VycmVudFZlcnNpb24/PyIiLFMudXBkYXRlZFZlcnNpb249TS51cGRhdGVkVmVyc2lvbj8/IiIsUy5tb3JlSW5mb1VybD1NLm1vcmVJbmZvVXJsPz8iIixTLmNoYW5nZWxvZ1VybD1NLmNoYW5nZWxvZ1VybD8/IiIsUy5zdWNjZXNzQWN0aW9uPU0uc3VjY2Vzc0FjdGlvbj8/ImNsb3NlIixTLnN1Y2Nlc3NEZWxheU1zPU0uc3VjY2Vzc0RlbGF5TXM/PzFlNCxTLnN1Y2Nlc3NBY3Rpb25MYWJlbD1NLnN1Y2Nlc3NBY3Rpb25MYWJlbD8/IiIsUy5vblN1Y2Nlc3NBY3Rpb249TS5vblN1Y2Nlc3NBY3Rpb24/P251bGwsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChTKSxhd2FpdCBTLnNob3coKSxTfSNlPWZvKHRoaXMsbiwiIik7Z2V0IGN1cnJlbnRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRWZXJzaW9uKE0pe3RoaXMuI2U9TX0jdD0oZm8odGhpcyxsKSxmbyh0aGlzLGMsIiIpKTtnZXQgdXBkYXRlZFZlcnNpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgdXBkYXRlZFZlcnNpb24oTSl7dGhpcy4jdD1NfSNhPShmbyh0aGlzLHApLGZvKHRoaXMsbSwiIikpO2dldCBtb3JlSW5mb1VybCgpe3JldHVybiB0aGlzLiNhfXNldCBtb3JlSW5mb1VybChNKXt0aGlzLiNhPU19I3I9KGZvKHRoaXMsdiksZm8odGhpcyxiLCIiKSk7Z2V0IGNoYW5nZWxvZ1VybCgpe3JldHVybiB0aGlzLiNyfXNldCBjaGFuZ2Vsb2dVcmwoTSl7dGhpcy4jcj1NfSNzPShmbyh0aGlzLGcpLGZvKHRoaXMsaywiY2xvc2UiKSk7Z2V0IHN1Y2Nlc3NBY3Rpb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgc3VjY2Vzc0FjdGlvbihNKXt0aGlzLiNzPU19I2k9KGZvKHRoaXMsQyksZm8odGhpcyxfLDFlNCkpO2dldCBzdWNjZXNzRGVsYXlNcygpe3JldHVybiB0aGlzLiNpfXNldCBzdWNjZXNzRGVsYXlNcyhNKXt0aGlzLiNpPU19I289KGZvKHRoaXMseiksZm8odGhpcyxULCIiKSk7Z2V0IHN1Y2Nlc3NBY3Rpb25MYWJlbCgpe3JldHVybiB0aGlzLiNvfXNldCBzdWNjZXNzQWN0aW9uTGFiZWwoTSl7dGhpcy4jbz1NfXN0ZXBwZXI9KGZvKHRoaXMsUCksbnVsbCk7cHJvZ3Jlc3NTdGVwPW51bGw7c2hvd1Byb21pc2U9bnVsbDtvblN1Y2Nlc3NBY3Rpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zaG93KCl9YXN5bmMgc2hvdygpe2lmKCF0aGlzLnN0ZXBwZXI/LmlzQ29ubmVjdGVkKXtpZih0aGlzLnNob3dQcm9taXNlKXJldHVybiB0aGlzLnNob3dQcm9taXNlO3RoaXMuc2hvd1Byb21pc2U9dGhpcy5vcGVuU3RlcHBlckZsb3coKTt0cnl7YXdhaXQgdGhpcy5zaG93UHJvbWlzZX1maW5hbGx5e3RoaXMuc2hvd1Byb21pc2U9bnVsbH19fXVwZGF0ZVByb2dyZXNzKE0peyF0aGlzLnN0ZXBwZXJ8fCF0aGlzLnByb2dyZXNzU3RlcHx8dGhpcy5zdGVwcGVyLnVwZGF0ZVByb2dyZXNzU3RlcChNLHRoaXMucHJvZ3Jlc3NTdGVwKX1hcHBlbmRQcm9ncmVzc0xpbmUoTSl7IXRoaXMuc3RlcHBlcnx8IXRoaXMucHJvZ3Jlc3NTdGVwfHx0aGlzLnN0ZXBwZXIuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShNLHRoaXMucHJvZ3Jlc3NTdGVwKX1tYXJrVXBkYXRlRXJyb3IoTSl7dGhpcy5hcHBlbmRQcm9ncmVzc0xpbmUoYEVycm9yOiAke019YCksdGhpcy51cGRhdGVQcm9ncmVzcyh7aW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0Ok19KX1hc3luYyBtYXJrVXBkYXRlUmVhZHkoKXshdGhpcy5zdGVwcGVyfHwhdGhpcy5wcm9ncmVzc1N0ZXB8fCh0aGlzLnN0ZXBwZXIudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOjEwMCxpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6IlVwZGF0ZSByZWFkeS4ifSx0aGlzLnByb2dyZXNzU3RlcCksdGhpcy5zdGVwcGVyLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoIlVwZGF0ZSByZWFkeSIsdGhpcy5wcm9ncmVzc1N0ZXApLHRoaXMuc3RlcHBlci5zZWxlY3RlZFN0ZXA9PT10aGlzLnByb2dyZXNzU3RlcCYmdGhpcy5zdGVwcGVyLmdvTmV4dCgpKX1hc3luYyBkZXN0cm95KCl7bGV0IE09dGhpcy5zdGVwcGVyO3RoaXMuc3RlcHBlcj1udWxsLHRoaXMucHJvZ3Jlc3NTdGVwPW51bGwsTT8uaXNDb25uZWN0ZWQmJmF3YWl0IE0uZGVzdHJveSgpLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpfWFzeW5jIG9wZW5TdGVwcGVyRmxvdygpe2xldHtzdGVwczpNLHByb2dyZXNzU3RlcDpTfT10aGlzLmNyZWF0ZVVwZGF0ZXJTdGVwcygpO3RoaXMucHJvZ3Jlc3NTdGVwPVMsdGhpcy5zdGVwcGVyPWF3YWl0IEttLmNyZWF0ZUFuZFNob3coe3N0ZXBzOk0sY2FuY2VsYWJsZTohMX0pfWNyZWF0ZVVwZGF0ZXJTdGVwcygpe2xldCBNPXRoaXMuZ2V0TGlua01lbnVPcHRpb25zKCksUz17dGl0bGU6IlVwZGF0aW5nIHRoZSBhcHBsaWNhdGlvbiIsY29udGVudDp0aGlzLnJlbmRlclByb2dyZXNzQ29udGVudCgpLHByb2dyZXNzU3RlcDp7bGFiZWw6dGhpcy5nZXRQcm9ncmVzc0xhYmVsKCkscGVyY2VudGFnZTo1LGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzUm93czo0LHN0YXR1c1RleHQ6IlByZXBhcmluZyB1cGRhdGUuLi4iLHRlcm1pbmFsTGluZXM6WyJQcmVwYXJpbmcgdXBkYXRlIl19LG1lbnVPcHRpb25zOk0ubGVuZ3RoPjA/TTp2b2lkIDB9LEU9e3RpdGxlOnRoaXMudXBkYXRlZFZlcnNpb24/YFZlcnNpb24gJHt0aGlzLnVwZGF0ZWRWZXJzaW9ufSByZWFkeWA6IlVwZGF0ZSByZWFkeSIsY29udGVudDp0aGlzLnJlbmRlclJlYWR5Q29udGVudCgpLHByb2dyZXNzU3RlcDp7bGFiZWw6dGhpcy5nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwodGhpcy5nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCkpLHBlcmNlbnRhZ2U6MCxpbmRldGVybWluYXRlOiExLHNob3dQZXJjZW50YWdlOiExLHN0YXR1c1Jvd3M6MixzdGF0dXNUZXh0OnRoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyh0aGlzLmdldFN1Y2Nlc3NEZWxheVNlY29uZHMoKSl9LHZhbGlkYXRpb25GdW5jOnMoYXN5bmMoQSxGLFcpPT57YXdhaXQgdGhpcy5ydW5TdWNjZXNzQ291bnRkb3duKEEsRSxXKX0sInZhbGlkYXRpb25GdW5jIil9O3JldHVybntzdGVwczpbUyxFXSxwcm9ncmVzc1N0ZXA6U319Z2V0UHJvZ3Jlc3NMYWJlbCgpe3JldHVybiB0aGlzLmN1cnJlbnRWZXJzaW9uJiZ0aGlzLnVwZGF0ZWRWZXJzaW9uP2Ake3RoaXMuY3VycmVudFZlcnNpb259IC0+ICR7dGhpcy51cGRhdGVkVmVyc2lvbn1gOnRoaXMudXBkYXRlZFZlcnNpb24/YFByZXBhcmluZyAke3RoaXMudXBkYXRlZFZlcnNpb259YDoiQXBwbGljYXRpb24gdXBkYXRlIn1nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCl7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5jZWlsKHRoaXMuc3VjY2Vzc0RlbGF5TXMvMWUzKSl9Z2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpe3JldHVybiB0aGlzLnN1Y2Nlc3NBY3Rpb25MYWJlbD90aGlzLnN1Y2Nlc3NBY3Rpb25MYWJlbDp0aGlzLm9uU3VjY2Vzc0FjdGlvbj8iQ29udGludWluZyBhdXRvbWF0aWNhbGx5Ijp0aGlzLnN1Y2Nlc3NBY3Rpb249PT0icmVsb2FkIj8iUmVsb2FkaW5nIGFwcGxpY2F0aW9uIjoiQ2xvc2luZyB1cGRhdGVyIn1nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwoTSl7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IGluICR7TX1zYH1nZXRTdWNjZXNzQ291bnRkb3duU3RhdHVzKE0pe2xldCBTPU09PT0xPyJzZWNvbmQiOiJzZWNvbmRzIjtyZXR1cm5gJHt0aGlzLmdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKX0gaW4gJHtNfSAke1N9LmB9Z2V0U3VjY2Vzc0FjdGlvbk5vd0xhYmVsKCl7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IG5vdy4uLmB9Z2V0TGlua01lbnVPcHRpb25zKCl7bGV0IE09W107cmV0dXJuIHRoaXMubW9yZUluZm9VcmwmJk0ucHVzaCh7bmFtZToiTW9yZSBpbmZvIixhY3Rpb246cyhhc3luYygpPT57dGhpcy5vcGVuRXh0ZXJuYWxVcmwodGhpcy5tb3JlSW5mb1VybCl9LCJhY3Rpb24iKX0pLHRoaXMuY2hhbmdlbG9nVXJsJiZNLnB1c2goe25hbWU6IkNoYW5nZWxvZyIsYWN0aW9uOnMoYXN5bmMoKT0+e3RoaXMub3BlbkV4dGVybmFsVXJsKHRoaXMuY2hhbmdlbG9nVXJsKX0sImFjdGlvbiIpfSksTX1yZW5kZXJWZXJzaW9uTWV0YShNLFMpe3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBtaW4td2lkdGg6IDEzMnB4OyBwYWRkaW5nOiAxMnB4IDE0cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICA+CiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IgogICAgICAgID4KICAgICAgICAgICR7TX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0ke2Bmb250LWZhbWlseTogJHtXdGV9OyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpO2B9CiAgICAgICAgPgogICAgICAgICAgJHtTfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUHJvZ3Jlc3NDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogMThweDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA2cHg7Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IgogICAgICAgICAgPgogICAgICAgICAgICBBcHBsaWNhdGlvbiB1cGRhdGUKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMS4zNTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7IgogICAgICAgICAgPgogICAgICAgICAgICBEb3dubG9hZGluZyBhbmQgYXBwbHlpbmcgdGhlIGxhdGVzdCByZWxlYXNlLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICAgICAgJHt0aGlzLmN1cnJlbnRWZXJzaW9uJiZ0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgTW92aW5nIGZyb20gPHN0cm9uZz4ke3RoaXMuY3VycmVudFZlcnNpb259PC9zdHJvbmc+IHRvIDxzdHJvbmc+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Ryb25nPi5gOnRoaXMudXBkYXRlZFZlcnNpb24/d2BQcmVwYXJpbmcgPHN0cm9uZz4ke3RoaXMudXBkYXRlZFZlcnNpb259PC9zdHJvbmc+IGZvciBpbnN0YWxsYXRpb24uYDoiVGhlIHVwZGF0ZXIgaXMgZmV0Y2hpbmcgdGhlIG5ld2VzdCBidWlsZCBhbmQgcHJlcGFyaW5nIGl0IGZvciBpbnN0YWxsYXRpb24uIn0KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmN1cnJlbnRWZXJzaW9ufHx0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbj90aGlzLnJlbmRlclZlcnNpb25NZXRhKCJDdXJyZW50IHZlcnNpb24iLHRoaXMuY3VycmVudFZlcnNpb24pOiIifQogICAgICAgICAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3RoaXMucmVuZGVyVmVyc2lvbk1ldGEoIkluY29taW5nIHZlcnNpb24iLHRoaXMudXBkYXRlZFZlcnNpb24pOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA0cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsiCiAgICAgICAgPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyI+CiAgICAgICAgICAgIEF1dG9tYXRpYyBmbG93CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7Ij4KICAgICAgICAgICAgVGhlIHVwZGF0ZXIgY29udGludWVzIG9uIGl0cyBvd24gb25jZSB0aGUgbmV3IGJ1aWxkIGlzIGluc3RhbGxlZCBhbmQgdmVyaWZpZWQuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclJlYWR5Q29udGVudCgpe2xldCBNPXRoaXMuZ2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpO3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE4cHg7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICAgID4KICAgICAgICAgICAgVXBkYXRlIGNvbXBsZXRlCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzU7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgVmVyc2lvbiA8c3BhbiBzdHlsZT0ke2Bmb250LWZhbWlseTogJHtXdGV9OyBmb250LXNpemU6IDAuOTVlbTtgfT4ke3RoaXMudXBkYXRlZFZlcnNpb259PC9zcGFuPiBpcyByZWFkeSB0byB1c2UuYDoiVGhlIG5ldyB2ZXJzaW9uIGlzIHJlYWR5IHRvIHVzZS4ifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICAgICAgVGhlIG5ldyBidWlsZCBoYXMgYmVlbiBpbnN0YWxsZWQgYW5kIHZlcmlmaWVkLiBZb3UgY2FuIHJldmlldyByZWxlYXNlIGRldGFpbHMgYmVsb3cgd2hpbGUgdGhlIG5leHQgYWN0aW9uIHJ1bnMgYXV0b21hdGljYWxseS4KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJWZXJzaW9uTWV0YSgiSW5zdGFsbGVkIHZlcnNpb24iLHRoaXMudXBkYXRlZFZlcnNpb24pfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA0cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsiCiAgICAgICAgPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyI+CiAgICAgICAgICAgIE5leHQgYWN0aW9uCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyI+CiAgICAgICAgICAgIFJ1bnMgYXV0b21hdGljYWxseSBpbiAke019IHNlY29uZHMuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIHJ1blN1Y2Nlc3NDb3VudGRvd24oTSxTLEUpe2xldCBBPU1hdGgubWF4KDFlMyx0aGlzLnN1Y2Nlc3NEZWxheU1zKSxGPURhdGUubm93KCk7Zm9yKDshRT8uYWJvcnRlZDspe2xldCBXPU1hdGgubWluKEEsRGF0ZS5ub3coKS1GKSxqPU1hdGgubWF4KDAsQS1XKSxHPU1hdGgubWF4KDAsTWF0aC5jZWlsKGovMWUzKSk7aWYoTS51cGRhdGVQcm9ncmVzc1N0ZXAoe2xhYmVsOmo+MD90aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25MYWJlbChHKTp0aGlzLmdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpLHBlcmNlbnRhZ2U6Vy9BKjEwMCxpbmRldGVybWluYXRlOiExLHNob3dQZXJjZW50YWdlOiExLHN0YXR1c1RleHQ6aj4wP3RoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyhHKTp0aGlzLmdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpfSxTKSxqPD0wKWJyZWFrO2lmKCFhd2FpdCB0aGlzLndhaXRGb3JDb3VudGRvd25UaWNrKDEwMCxFKSlyZXR1cm59YXdhaXQgdGhpcy5ydW5Db25maWd1cmVkU3VjY2Vzc0FjdGlvbigpfWFzeW5jIHdhaXRGb3JDb3VudGRvd25UaWNrKE0sUyl7cmV0dXJuIG5ldyBQcm9taXNlKEU9PntsZXQgQT0hMSxGPXMoRz0+e0F8fChBPSEwLFMmJlMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLFcpLEUoRykpfSwiZmluaXNoIiksVz1zKCgpPT57d2luZG93LmNsZWFyVGltZW91dChqKSxGKCExKX0sImhhbmRsZUFib3J0Iiksaj13aW5kb3cuc2V0VGltZW91dCgoKT0+e0YoITApfSxNKTtTJiZTLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixXLHtvbmNlOiEwfSl9KX1hc3luYyBydW5Db25maWd1cmVkU3VjY2Vzc0FjdGlvbigpe2lmKHRoaXMub25TdWNjZXNzQWN0aW9uKXthd2FpdCB0aGlzLm9uU3VjY2Vzc0FjdGlvbigpO3JldHVybn1pZih0aGlzLnN1Y2Nlc3NBY3Rpb249PT0icmVsb2FkIil7YXdhaXQgdGhpcy5kZXN0cm95KCksd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO3JldHVybn1hd2FpdCB0aGlzLmRlc3Ryb3koKX1vcGVuRXh0ZXJuYWxVcmwoTSl7d2luZG93Lm9wZW4oTSwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpfXN0YXRpY3tmbyhyLHQpfX07cmV0dXJuIEI9cn0pKCl9KTt2YXIgSDZhPWYoKCk9Pnt4SmUoKX0pO3ZhciBxNmE9ZigoKT0+e3lZZSgpfSk7dmFyIFY2YT1mKCgpPT57QzZhKCk7QTZhKCk7UjZhKCk7SDZhKCk7cTZhKCl9KTt2YXIgdzUsdW4sajZhLGRpZT1mKCgpPT57bGUoKTtlYSgpO1FlKCk7dmEoKTtYcigpO1hyKCk7Y2MoKTtuNCgpO240KCk7dzU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHVuPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxqNmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXdvcmtzcGFjZS1maWxldHJlZSIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzV29ya3NwYWNlRmlsZXRyZWUiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVtLKCldLHk9W0soKV0sTj1bSygpXSx3NSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AuZXhlY3V0aW9uRW52aXJvbm1lbnQ9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxuLGwpLHc1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9vdFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InJvb3RQYXRoImluIFAsImhhcyIpLGdldDpzKFA9PlAucm9vdFBhdGgsImdldCIpLHNldDpzKChQLEIpPT57UC5yb290UGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LGMscCksdzUodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+InNlbGVjdGVkUGF0aCJpbiBQLCJoYXMiKSxnZXQ6cyhQPT5QLnNlbGVjdGVkUGF0aCwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLnNlbGVjdGVkUGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LG0sdiksdzUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmVlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4idHJlZURhdGEiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC50cmVlRGF0YSwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLnRyZWVEYXRhPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSx3NSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4iaXNMb2FkaW5nImluIFAsImhhcyIpLGdldDpzKFA9PlAuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AuaXNMb2FkaW5nPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sayxDKSx3NSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yTWVzc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4iZXJyb3JNZXNzYWdlImluIFAsImhhcyIpLGdldDpzKFA9PlAuZXJyb3JNZXNzYWdlLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AuZXJyb3JNZXNzYWdlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyx6KSx3NShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpUfSxudWxsLHQpLE89cj1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogNDAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsiPgogICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPXVuKHRoaXMsbixudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoVCl7dGhpcy4jZT1UfSN0PSh1bih0aGlzLGwpLHVuKHRoaXMsYywiLyIpKTtnZXQgcm9vdFBhdGgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcm9vdFBhdGgoVCl7dGhpcy4jdD1UfSNhPSh1bih0aGlzLHApLHVuKHRoaXMsbSwiIikpO2dldCBzZWxlY3RlZFBhdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0ZWRQYXRoKFQpe3RoaXMuI2E9VH0jcj0odW4odGhpcyx2KSx1bih0aGlzLGIsW10pKTtnZXQgdHJlZURhdGEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdHJlZURhdGEoVCl7dGhpcy4jcj1UfSNzPSh1bih0aGlzLGcpLHVuKHRoaXMsaywhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNMb2FkaW5nKFQpe3RoaXMuI3M9VH0jaT0odW4odGhpcyxDKSx1bih0aGlzLF8sIiIpKTtnZXQgZXJyb3JNZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGVycm9yTWVzc2FnZShUKXt0aGlzLiNpPVR9ZXhwYW5kZWRQYXRocz0odW4odGhpcyx6KSxuZXcgU2V0KTtsb2FkVHJlZVN0YXJ0ZWQ9ITE7Y2xpcGJvYXJkUGF0aD1udWxsO2NsaXBib2FyZE9wZXJhdGlvbj1udWxsO2ZpbGVXYXRjaGVyPW51bGw7cmVmcmVzaERlYm91bmNlVGltZW91dD1udWxsO2xhc3RFeGVjdXRpb25FbnZpcm9ubWVudD1udWxsO3N0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudHJlZS1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAudHJlZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogMXB4IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkzJSkiLCJoc2woMCAwJSAxNCUpIil9OwogICAgICB9CgogICAgICAudHJlZS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDk1JSkiLCJoc2woMjEwIDUwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQwJSkiLCJoc2woMjEwIDEwMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5MiUpIiwiaHNsKDIxMCA1MCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLmluZGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uLmV4cGFuZGVkIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5oaWRkZW4gewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5mb2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDgwJSA0NSUpIiwiaHNsKDQ1IDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmZpbGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24udHlwZXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCgyMTEgNjAlIDQ4JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uamF2YXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCg1MyA5MyUgNTQlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5qc29uIHsKICAgICAgICBjb2xvcjogaHNsKDQ1IDgwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmh0bWwgewogICAgICAgIGNvbG9yOiBoc2woMTQgNzclIDUyJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uY3NzIHsKICAgICAgICBjb2xvcjogaHNsKDIyOCA3NyUgNTklKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5tYXJrZG93biB7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZXJyb3IgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiBoc2woMCA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4xKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ/dGhpcy5pc0xvYWRpbmc/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nIj4KICAgICAgICAgIExvYWRpbmcgZmlsZXMuLi4KICAgICAgICA8L2Rpdj4KICAgICAgYDp0aGlzLmVycm9yTWVzc2FnZT93YAogICAgICAgIDxkaXYgY2xhc3M9ImVycm9yIj4KICAgICAgICAgICR7dGhpcy5lcnJvck1lc3NhZ2V9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0iZmlsZXRyZWUtdG9vbGJhciI+CiAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPkV4cGxvcmVyPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYWN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3RmlsZSgiLyIpfSB0aXRsZT0iTmV3IEZpbGUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmaWxlUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKX0gdGl0bGU9Ik5ldyBGb2xkZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmb2xkZXJQbHVzIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnRyZWVEYXRhLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eSI+Tm8gZmlsZXMgZm91bmQuPC9kaXY+YDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVlLWNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnV9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJUcmVlKHRoaXMudHJlZURhdGEpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICBgOndgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHkiPgogICAgICAgICAgTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IHByb3ZpZGVkLgogICAgICAgIDwvZGl2PgogICAgICBgfXJlbmRlclRyZWUoVCl7cmV0dXJuIFQubWFwKFA9PnRoaXMucmVuZGVyTm9kZShQKSl9cmVuZGVyTm9kZShUKXtsZXQgUD1ULnR5cGU9PT0iZGlyZWN0b3J5IixCPXRoaXMuZXhwYW5kZWRQYXRocy5oYXMoVC5wYXRoKSxNPVQucGF0aD09PXRoaXMuc2VsZWN0ZWRQYXRoLFM9dGhpcy5nZXRGaWxlSWNvbkNsYXNzKFQpO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRyZWUtaXRlbSAke00/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgc3R5bGU9InBhZGRpbmctbGVmdDogJHs4K1QubGV2ZWwqMTZ9cHgiCiAgICAgICAgQGNsaWNrPSR7RT0+dGhpcy5oYW5kbGVJdGVtQ2xpY2soRSxUKX0KICAgICAgICBAY29udGV4dG1lbnU9JHtFPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KEUsVCl9CiAgICAgID4KICAgICAgICA8c3BhbiBjbGFzcz0iZXhwYW5kLWljb24gJHtCPyJleHBhbmRlZCI6IiJ9ICR7UD8iIjoiaGlkZGVuIn0iPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hldnJvblJpZ2h0In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtaWNvbiAke1N9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLmdldEZpbGVJY29uKFQpfSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1uYW1lIj4ke1QubmFtZX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAke1AmJkImJlQuY2hpbGRyZW4/dGhpcy5yZW5kZXJUcmVlKFQuY2hpbGRyZW4pOiIifQogICAgYH1nZXRGaWxlSWNvbihUKXtpZihULnR5cGU9PT0iZGlyZWN0b3J5IilyZXR1cm4gdGhpcy5leHBhbmRlZFBhdGhzLmhhcyhULnBhdGgpPyJsdWNpZGU6Zm9sZGVyT3BlbiI6Imx1Y2lkZTpmb2xkZXIiO3N3aXRjaChULm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzb24iOnJldHVybiJsdWNpZGU6ZmlsZUpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlIm1kIjpyZXR1cm4ibHVjaWRlOmZpbGVUZXh0IjtjYXNlInBuZyI6Y2FzZSJqcGciOmNhc2UianBlZyI6Y2FzZSJnaWYiOmNhc2Uic3ZnIjpyZXR1cm4ibHVjaWRlOmltYWdlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6ZmlsZSJ9fWdldEZpbGVJY29uQ2xhc3MoVCl7aWYoVC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuImZvbGRlciI7c3dpdGNoKFQubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7Y2FzZSJodG1sIjpyZXR1cm4iaHRtbCI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4iY3NzIjtjYXNlIm1kIjpyZXR1cm4ibWFya2Rvd24iO2RlZmF1bHQ6cmV0dXJuImZpbGUifX1hc3luYyBoYW5kbGVJdGVtQ2xpY2soVCxQKXtULnN0b3BQcm9wYWdhdGlvbigpLFAudHlwZT09PSJkaXJlY3RvcnkiP2F3YWl0IHRoaXMudG9nZ2xlRGlyZWN0b3J5KFApOih0aGlzLnNlbGVjdGVkUGF0aD1QLnBhdGgsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsZS1zZWxlY3QiLHtkZXRhaWw6e3BhdGg6UC5wYXRoLG5hbWU6UC5uYW1lfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1hc3luYyB0b2dnbGVEaXJlY3RvcnkoVCl7dGhpcy5leHBhbmRlZFBhdGhzLmhhcyhULnBhdGgpP3RoaXMuZXhwYW5kZWRQYXRocy5kZWxldGUoVC5wYXRoKToodGhpcy5leHBhbmRlZFBhdGhzLmFkZChULnBhdGgpLCghVC5jaGlsZHJlbnx8VC5jaGlsZHJlbi5sZW5ndGg9PT0wKSYmYXdhaXQgdGhpcy5sb2FkRGlyZWN0b3J5Q29udGVudHMoVCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGxvYWREaXJlY3RvcnlDb250ZW50cyhUKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgUD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoVC5wYXRoKTtULmNoaWxkcmVuPXRoaXMuc29ydEVudHJpZXMoUCkubWFwKEI9Pih7Li4uQixsZXZlbDpULmxldmVsKzEsZXhwYW5kZWQ6ITEsY2hpbGRyZW46Qi50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGRpcmVjdG9yeSAke1QucGF0aH06YCxQKX19YXN5bmMgaGFuZGxlQ29udGV4dE1lbnUoVCxQKXtULnByZXZlbnREZWZhdWx0KCksVC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgQj1bXTtQLnR5cGU9PT0iZGlyZWN0b3J5IiYmQi5wdXNoKHtuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246cyhhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoUC5wYXRoKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoUC5wYXRoKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSksQi5wdXNoKHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJwZW5jaWwiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMucmVuYW1lSXRlbShQKSwiYWN0aW9uIil9LHtuYW1lOiJEdXBsaWNhdGUiLGljb25OYW1lOiJmaWxlcyIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5kdXBsaWNhdGVJdGVtKFApLCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixhY3Rpb246cyhhc3luYygpPT50aGlzLmNvcHlJdGVtKFApLCJhY3Rpb24iKX0pLFAudHlwZT09PSJkaXJlY3RvcnkiJiZ0aGlzLmNsaXBib2FyZFBhdGgmJkIucHVzaCh7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMucGFzdGVJdGVtKFAucGF0aCksImFjdGlvbiIpfSksQi5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToidHJhc2gyIixhY3Rpb246cyhhc3luYygpPT50aGlzLmRlbGV0ZUl0ZW0oUCksImFjdGlvbiIpfSksYXdhaXQgdGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoVCxCKX1hc3luYyBoYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoVCl7aWYoVC50YXJnZXQuY2xvc2VzdCgiLnRyZWUtaXRlbSIpKXJldHVybjtULnByZXZlbnREZWZhdWx0KCksVC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgQj1be25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3RmlsZSgiLyIpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJmb2xkZXJQbHVzIixhY3Rpb246cyhhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZvbGRlcigiLyIpLCJhY3Rpb24iKX1dO3RoaXMuY2xpcGJvYXJkUGF0aCYmQi5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMucGFzdGVJdGVtKCIvIiksImFjdGlvbiIpfSksYXdhaXQgdGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoVCxCKX1hc3luYyBzaG93SW5wdXRNb2RhbChUKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgUD0+e2xldCBCPWF3YWl0IE1hLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6VC5oZWFkaW5nLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHtULmxhYmVsfQogICAgICAgICAgICAudmFsdWU9JHtULnZhbHVlfHwiIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246cyhhc3luYyBTPT57YXdhaXQgUy5kZXN0cm95KCksUChudWxsKX0sImFjdGlvbiIpfSx7bmFtZTpULmJ1dHRvbk5hbWV8fCJDcmVhdGUiLGFjdGlvbjpzKGFzeW5jIFM9PntsZXQgRj1TLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKT8udmFsdWU/LnRyaW0oKXx8IiI7YXdhaXQgUy5kZXN0cm95KCksUChGfHxudWxsKX0sImFjdGlvbiIpfV19KTthd2FpdCBCLnVwZGF0ZUNvbXBsZXRlO2xldCBNPUIuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsIC5jb250ZW50Iik7aWYoTSl7bGV0IFM9TS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtTJiYoYXdhaXQgUy51cGRhdGVDb21wbGV0ZSxTLmZvY3VzKCkpfX0pfWFzeW5jIGNyZWF0ZU5ld0ZpbGUoVCl7bGV0IFA9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZpbGUiLGxhYmVsOiJGaWxlIG5hbWUifSk7aWYoIVB8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgQj1UPT09Ii8iP2AvJHtQfWA6YCR7VH0vJHtQfWA7dHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEIsIiIpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtY3JlYXRlZCIse2RldGFpbDp7cGF0aDpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKE0pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZmlsZToiLE0pfX1hc3luYyBjcmVhdGVOZXdGb2xkZXIoVCl7bGV0IFA9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZvbGRlciIsbGFiZWw6IkZvbGRlciBuYW1lIn0pO2lmKCFQfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEI9VD09PSIvIj9gLyR7UH1gOmAke1R9LyR7UH1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEIpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZvbGRlci1jcmVhdGVkIix7ZGV0YWlsOntwYXRoOkJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goTSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBmb2xkZXI6IixNKX19YXN5bmMgZGVsZXRlSXRlbShUKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhY29uZmlybShgRGVsZXRlICR7VC5uYW1lfT9gKSkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oVC5wYXRoLHtyZWN1cnNpdmU6VC50eXBlPT09ImRpcmVjdG9yeSJ9KSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWRlbGV0ZWQiLHtkZXRhaWw6e3BhdGg6VC5wYXRoLHR5cGU6VC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKEIpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgaXRlbToiLEIpfX1hc3luYyByZW5hbWVJdGVtKFQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgUD1hd2FpdCB0aGlzLnNob3dJbnB1dE1vZGFsKHtoZWFkaW5nOiJSZW5hbWUiLGxhYmVsOiJOZXcgbmFtZSIsdmFsdWU6VC5uYW1lLGJ1dHRvbk5hbWU6IlJlbmFtZSJ9KTtpZighUHx8UD09PVQubmFtZSlyZXR1cm47bGV0IEI9VC5wYXRoLnN1YnN0cmluZygwLFQucGF0aC5sYXN0SW5kZXhPZigiLyIpKXx8Ii8iLE09Qj09PSIvIj9gLyR7UH1gOmAke0J9LyR7UH1gO3RyeXtpZihULnR5cGU9PT0iZmlsZSIpe2xldCBTPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoVC5wYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShNLFMpLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oVC5wYXRoKX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKFQucGF0aCxNKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKFQucGF0aCx7cmVjdXJzaXZlOiEwfSk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1yZW5hbWVkIix7ZGV0YWlsOntvbGRQYXRoOlQucGF0aCxuZXdQYXRoOk0sdHlwZTpULnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goUyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmFtZSBpdGVtOiIsUyl9fWFzeW5jIGR1cGxpY2F0ZUl0ZW0oVCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBQPVQucGF0aC5zdWJzdHJpbmcoMCxULnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixCO2lmKFQudHlwZT09PSJmaWxlIil7bGV0IFM9VC5uYW1lLmxhc3RJbmRleE9mKCIuIik7aWYoUz4wKXtsZXQgRT1ULm5hbWUuc3Vic3RyaW5nKDAsUyksQT1ULm5hbWUuc3Vic3RyaW5nKFMpO0I9YCR7RX1fY29weSR7QX1gfWVsc2UgQj1gJHtULm5hbWV9X2NvcHlgfWVsc2UgQj1gJHtULm5hbWV9X2NvcHlgO2xldCBNPVA9PT0iLyI/YC8ke0J9YDpgJHtQfS8ke0J9YDt0cnl7aWYoVC50eXBlPT09ImZpbGUiKXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKFQucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoTSxTKX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKFQucGF0aCxNKTthd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWR1cGxpY2F0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6VC5wYXRoLG5ld1BhdGg6TSx0eXBlOlQudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChTKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZHVwbGljYXRlIGl0ZW06IixTKX19YXN5bmMgY29weUl0ZW0oVCl7dGhpcy5jbGlwYm9hcmRQYXRoPVQucGF0aCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj0iY29weSJ9YXN5bmMgcGFzdGVJdGVtKFQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdGhpcy5jbGlwYm9hcmRQYXRoKXJldHVybjtsZXQgUD10aGlzLmNsaXBib2FyZFBhdGguc3BsaXQoIi8iKS5wb3AoKXx8InBhc3RlZCIsQj1UPT09Ii8iP2AvJHtQfWA6YCR7VH0vJHtQfWA7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyh0aGlzLmNsaXBib2FyZFBhdGgpKXtjb25zb2xlLmVycm9yKCJTb3VyY2UgZmlsZSBubyBsb25nZXIgZXhpc3RzIiksdGhpcy5jbGlwYm9hcmRQYXRoPW51bGwsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249bnVsbDtyZXR1cm59dHJ5e2xldCBNPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUodGhpcy5jbGlwYm9hcmRQYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShCLE0pfWNhdGNoe2F3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKHRoaXMuY2xpcGJvYXJkUGF0aCxCKX1hd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXBhc3RlZCIse2RldGFpbDp7c291cmNlUGF0aDp0aGlzLmNsaXBib2FyZFBhdGgsdGFyZ2V0UGF0aDpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGx9Y2F0Y2goTSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHBhc3RlIGl0ZW06IixNKX19YXN5bmMgY29weURpcmVjdG9yeUNvbnRlbnRzKFQsUCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQubWtkaXIoUCk7bGV0IEI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKFQpO2ZvcihsZXQgTSBvZiBCKXtsZXQgUz1UPT09Ii8iP2AvJHtNLm5hbWV9YDpgJHtUfS8ke00ubmFtZX1gLEU9UD09PSIvIj9gLyR7TS5uYW1lfWA6YCR7UH0vJHtNLm5hbWV9YDtpZihNLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhTLEUpO2Vsc2V7bGV0IEE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShTKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShFLEEpfX19YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkVHJlZSgpfWFzeW5jIHVwZGF0ZWQoVCl7VC5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJih0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudCE9PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJih0aGlzLnN0b3BGaWxlV2F0Y2hlcigpLHRoaXMubGFzdEV4ZWN1dGlvbkVudmlyb25tZW50PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRUcmVlKCksdGhpcy5zdGFydEZpbGVXYXRjaGVyKCkpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbCl9c3RhcnRGaWxlV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuZmlsZVdhdGNoZXIpKXRyeXt0aGlzLmZpbGVXYXRjaGVyPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goIi8iLChULFApPT57dGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMucmVmcmVzaCgpfSwzMDApfSx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2goVCl7Y29uc29sZS53YXJuKCJGaWxlIHdhdGNoaW5nIG5vdCBzdXBwb3J0ZWQ6IixUKX19c3RvcEZpbGVXYXRjaGVyKCl7dGhpcy5maWxlV2F0Y2hlciYmKHRoaXMuZmlsZVdhdGNoZXIuc3RvcCgpLHRoaXMuZmlsZVdhdGNoZXI9bnVsbCl9YXN5bmMgbG9hZFRyZWUoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5sb2FkVHJlZVN0YXJ0ZWQpe3RoaXMubG9hZFRyZWVTdGFydGVkPSEwLHRoaXMuaXNMb2FkaW5nPSEwLHRoaXMuZXJyb3JNZXNzYWdlPSIiO3RyeXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKTtsZXQgVD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIodGhpcy5yb290UGF0aCk7dGhpcy50cmVlRGF0YT10aGlzLnNvcnRFbnRyaWVzKFQpLm1hcChQPT4oey4uLlAsbGV2ZWw6MCxleHBhbmRlZDohMSxjaGlsZHJlbjpQLnR5cGU9PT0iZGlyZWN0b3J5Ij9bXTp2b2lkIDB9KSl9Y2F0Y2goVCl7dGhpcy5lcnJvck1lc3NhZ2U9YEZhaWxlZCB0byBsb2FkIGZpbGVzOiAke1R9YCxjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBmaWxlIHRyZWU6IixUKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNMb2FkaW5nPSExfX19c29ydEVudHJpZXMoVCl7cmV0dXJuIFQuc29ydCgoUCxCKT0+UC50eXBlIT09Qi50eXBlP1AudHlwZT09PSJkaXJlY3RvcnkiPy0xOjE6UC5uYW1lLmxvY2FsZUNvbXBhcmUoQi5uYW1lKSl9YXN5bmMgcmVmcmVzaCgpe3RoaXMuZXhwYW5kZWRQYXRocy5jbGVhcigpLHRoaXMubG9hZFRyZWVTdGFydGVkPSExLGF3YWl0IHRoaXMubG9hZFRyZWUoKX1zZWxlY3RGaWxlKFQpe3RoaXMuc2VsZWN0ZWRQYXRoPVR9c3RhdGlje3VuKHIsdCl9fTtyZXR1cm4gTz1yfSkoKX0pO3ZhciB5SmUsdUcsVTZhLHdKZT1mKCgpPT57bGUoKTtRZSgpO1NjKCk7UXIoKTt5SmU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHVHPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxVNmE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOkFycmF5fSldLHlKZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImNvbW1hbmQiaW4gdiwiaGFzIiksZ2V0OnModj0+di5jb21tYW5kLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuY29tbWFuZD14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCkseUplKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImxpbmVzImluIHYsImhhcyIpLGdldDpzKHY9PnYubGluZXMsImdldCIpLHNldDpzKCh2LHgpPT57di5saW5lcz14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCkseUplKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgIC5jb21tYW5kPSR7InBucG0gaW5zdGFsbCJ9CiAgICAgIC5saW5lcz0ke1siUGFja2FnZXM6ICs0MiIsIlByb2dyZXNzOiByZXNvbHZlZCAxNDIsIHJldXNlZCAxNDAsIGRvd25sb2FkZWQgMiwgYWRkZWQgNDIsIGRvbmUiLCIiLCJkZXBlbmRlbmNpZXM6IiwiKyBAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UgNC4yLjMiLCIrIHR5cGVzY3JpcHQgNS4zLjMiLCIiLCJEb25lIGluIDIuM3MiXX0KICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9dUcodGhpcyxuLCIiKTtnZXQgY29tbWFuZCgpe3JldHVybiB0aGlzLiNlfXNldCBjb21tYW5kKG0pe3RoaXMuI2U9bX0jdD0odUcodGhpcyxsKSx1Ryh0aGlzLGMsW10pKTtnZXQgbGluZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGluZXMobSl7dGhpcy4jdD1tfXRlcm1pbmFsPSh1Ryh0aGlzLHApLG51bGwpO2ZpdEFkZG9uPW51bGw7bGFzdExpbmVDb3VudD0wO3Jlc2l6ZU9ic2VydmVyPW51bGw7dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsO3N0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlci1pY29uIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlci1jb21tYW5kIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGluc2V0OiAwOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgI3h0ZXJtLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogOHB4OwogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAvKiB4dGVybS5qcyBzdHlsZXMgKi8KICAgICAgLnh0ZXJtIHsKICAgICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJyAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtLmZvY3VzLAogICAgICAueHRlcm06Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVycyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiA1OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlci10ZXh0YXJlYSB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGxlZnQ6IC05OTk5ZW07CiAgICAgICAgdG9wOiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICB6LWluZGV4OiAtNTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMzMzMiLCIjZmZmZmZmIil9OwogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3LmFjdGl2ZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2NyZWVuIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2NyZWVuIGNhbnZhcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcm9sbC1hcmVhIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1jaGFyLW1lYXN1cmUtZWxlbWVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IC05OTk5ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICAgICAgfQoKICAgICAgLnh0ZXJtIHsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIH0KCiAgICAgIC54dGVybS5lbmFibGUtbW91c2UtZXZlbnRzIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC54dGVybS54dGVybS1jdXJzb3ItcG9pbnRlciB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAueHRlcm0uY29sdW1uLXNlbGVjdC5mb2N1cyB7CiAgICAgICAgY3Vyc29yOiBjcm9zc2hhaXI7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tYWNjZXNzaWJpbGl0eSwKICAgICAgLnh0ZXJtIC54dGVybS1tZXNzYWdlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5saXZlLXJlZ2lvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC05OTk5cHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tZGltIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC54dGVybS11bmRlcmxpbmUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAvKiBDdXN0b20gc2Nyb2xsYmFyIGZvciB4dGVybSB2aWV3cG9ydCAqLwogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm1pbmFsLWhlYWRlci1pY29uIj4kPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm1pbmFsLWhlYWRlci1jb21tYW5kIj4ke3RoaXMuY29tbWFuZHx8IldhaXRpbmcuLi4ifTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBpZD0ieHRlcm0tY29udGFpbmVyIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWdldFRlcm1pbmFsVGhlbWUobSl7cmV0dXJuIG0/e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsY3Vyc29yQWNjZW50OiIjZmZmZmZmIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDAsIDAsIDAsIDAuMikifTp7YmFja2dyb3VuZDoiIzAwMDAwMCIsZm9yZWdyb3VuZDoiI2NjY2NjYyIsY3Vyc29yOiIjY2NjY2NjIixjdXJzb3JBY2NlbnQ6IiMwMDAwMDAiLHNlbGVjdGlvbkJhY2tncm91bmQ6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSJ9fWFzeW5jIGZpcnN0VXBkYXRlZChtKXtzdXBlci5maXJzdFVwZGF0ZWQobSk7bGV0IHY9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgieHRlcm0tY29udGFpbmVyIik7aWYoIXYpcmV0dXJuO2xldCB4PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGI9eC50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuLGc9T3MuZ2V0SW5zdGFuY2UoKSxbeSxrXT1hd2FpdCBQcm9taXNlLmFsbChbZy5sb2FkWHRlcm0oKSxnLmxvYWRYdGVybUZpdEFkZG9uKCldKTt0aGlzLnRlcm1pbmFsPW5ldyB5LlRlcm1pbmFsKHtjb252ZXJ0RW9sOiEwLGN1cnNvckJsaW5rOiExLGRpc2FibGVTdGRpbjohMCxmb250U2l6ZToxMixmb250RmFtaWx5OiInU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlIix0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUoYiksc2Nyb2xsYmFjazoxZTN9KSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249eC50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShDPT57dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUoQykpfSksdGhpcy5maXRBZGRvbj1uZXcgay5GaXRBZGRvbix0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmZpdEFkZG9uKSx0aGlzLnRlcm1pbmFsLm9wZW4odiksdGhpcy5maXRBZGRvbi5maXQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuZml0QWRkb24mJnRoaXMuZml0QWRkb24uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodiksdGhpcy53cml0ZU5ld0xpbmVzKCl9YXN5bmMgdXBkYXRlZChtKXtzdXBlci51cGRhdGVkKG0pLG0uaGFzKCJsaW5lcyIpJiZ0aGlzLndyaXRlTmV3TGluZXMoKX13cml0ZU5ld0xpbmVzKCl7aWYoIXRoaXMudGVybWluYWwpcmV0dXJuO2xldCBtPXRoaXMubGluZXMuc2xpY2UodGhpcy5sYXN0TGluZUNvdW50KTtmb3IobGV0IHYgb2YgbSl0aGlzLnRlcm1pbmFsLndyaXRlbG4odik7dGhpcy5sYXN0TGluZUNvdW50PXRoaXMubGluZXMubGVuZ3RofWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLmRpc3Bvc2UoKSx0aGlzLnRlcm1pbmFsPW51bGwpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YWRkTGluZShtKXt0aGlzLmxpbmVzPVsuLi50aGlzLmxpbmVzLG1dfWNsZWFyKCl7dGhpcy5saW5lcz1bXSx0aGlzLmxhc3RMaW5lQ291bnQ9MCx0aGlzLnRlcm1pbmFsJiZ0aGlzLnRlcm1pbmFsLmNsZWFyKCl9c3RhdGlje3VHKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBzNyxYMSxXNmEsTUplPWYoKCk9PntsZSgpO1FlKCk7dmEoKTtYcigpO3M3PWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxYMT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sVzZhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNXb3Jrc3BhY2VCb3R0b21iYXIiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVtLKCldLHU9W0soKV0seD1bSygpXSx5PVtLKCldLHM3KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIHosImhhcyIpLGdldDpzKHo9PnouZXhlY3V0aW9uRW52aXJvbm1lbnQsImdldCIpLHNldDpzKCh6LE8pPT57ei5leGVjdXRpb25FbnZpcm9ubWVudD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG4sbCksczcodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzY3JpcHRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzY3JpcHRzImluIHosImhhcyIpLGdldDpzKHo9Pnouc2NyaXB0cywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNjcmlwdHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxjLHApLHM3KHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFja2FnZVN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4icGFja2FnZVN0YXR1cyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnBhY2thZ2VTdGF0dXMsImdldCIpLHNldDpzKCh6LE8pPT57ei5wYWNrYWdlU3RhdHVzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbSx2KSxzNyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dGRhdGVkUGFja2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+Im91dGRhdGVkUGFja2FnZXMiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5vdXRkYXRlZFBhY2thZ2VzLCJnZXQiKSxzZXQ6cygoeixPKT0+e3oub3V0ZGF0ZWRQYWNrYWdlcz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksczcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0NoZWNraW5nUGFja2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+ImlzQ2hlY2tpbmdQYWNrYWdlcyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LmlzQ2hlY2tpbmdQYWNrYWdlcywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LmlzQ2hlY2tpbmdQYWNrYWdlcz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssQyksczcobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6X30sbnVsbCx0KSxOPXI9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX0jZT1YMSh0aGlzLG4sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KF8pe3RoaXMuI2U9X30jdD0oWDEodGhpcyxsKSxYMSh0aGlzLGMse30pKTtnZXQgc2NyaXB0cygpe3JldHVybiB0aGlzLiN0fXNldCBzY3JpcHRzKF8pe3RoaXMuI3Q9X30jYT0oWDEodGhpcyxwKSxYMSh0aGlzLG0sImlkbGUiKSk7Z2V0IHBhY2thZ2VTdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGFja2FnZVN0YXR1cyhfKXt0aGlzLiNhPV99I3I9KFgxKHRoaXMsdiksWDEodGhpcyxiLFtdKSk7Z2V0IG91dGRhdGVkUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgb3V0ZGF0ZWRQYWNrYWdlcyhfKXt0aGlzLiNyPV99I3M9KFgxKHRoaXMsZyksWDEodGhpcyxrLCExKSk7Z2V0IGlzQ2hlY2tpbmdQYWNrYWdlcygpe3JldHVybiB0aGlzLiNzfXNldCBpc0NoZWNraW5nUGFja2FnZXMoXyl7dGhpcy4jcz1ffXBlbmRpbmdQYWNrYWdlVXBkYXRlPShYMSh0aGlzLEMpLCExKTtoYW5kbGVQcm9jZXNzQ29tcGxldGU9cyhfPT57dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZSYmKHRoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITEsc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksNTAwKSl9LCJoYW5kbGVQcm9jZXNzQ29tcGxldGUiKTtzdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSA2JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAud2lkZ2V0LnJ1bm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cC10by1kYXRlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnVwZGF0ZXMtYXZhaWxhYmxlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIFNjcmlwdCBSdW5uZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQiCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNjcmlwdENsaWNrfQogICAgICAgICAgdGl0bGU9IlJ1biBzY3JpcHQiCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0keyJsdWNpZGU6cGxheSJ9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlNjcmlwdHM8L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PgoKICAgICAgICA8IS0tIFBhY2thZ2UgQ2hlY2tlciBXaWRnZXQgLS0+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9IndpZGdldCAke3RoaXMuZ2V0UGFja2FnZVN0YXR1c0NsYXNzKCl9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVQYWNrYWdlQ2xpY2t9CiAgICAgICAgICB0aXRsZT0iJHt0aGlzLmdldFBhY2thZ2VUb29sdGlwKCl9IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHt0aGlzLmdldFBhY2thZ2VJY29uKCl9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pc0NoZWNraW5nUGFja2FnZXM/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMuZ2V0UGFja2FnZVN0YXR1c1RleHQoKX08L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gRnV0dXJlIHdpZGdldHMgY2FuIGJlIGFkZGVkIGhlcmUgLS0+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCl9YXN5bmMgdXBkYXRlZChfKXtfLmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmKGF3YWl0IHRoaXMubG9hZFNjcmlwdHMoKSxhd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKSl9YXN5bmMgbG9hZFNjcmlwdHMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5zY3JpcHRzPXt9O3JldHVybn1sZXQgej1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvcGFja2FnZS5qc29uIiksTz1KU09OLnBhcnNlKHopO3RoaXMuc2NyaXB0cz1PLnNjcmlwdHN8fHt9fWNhdGNoKF8pe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGxvYWQgc2NyaXB0cyBmcm9tIHBhY2thZ2UuanNvbjoiLF8pLHRoaXMuc2NyaXB0cz17fX19YXN5bmMgaGFuZGxlU2NyaXB0Q2xpY2soXyl7Xy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgej1PYmplY3Qua2V5cyh0aGlzLnNjcmlwdHMpO2lmKHoubGVuZ3RoPT09MClyZXR1cm47bGV0IE89ei5tYXAoVD0+KHtuYW1lOlQsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsYWN0aW9uOnMoYXN5bmMoKT0+e2F3YWl0IHRoaXMucnVuU2NyaXB0KFQpfSwiYWN0aW9uIil9KSk7YXdhaXQgdGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoXyxPKX1hc3luYyBydW5TY3JpcHQoXyl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCB6PXt0eXBlOiJzY3JpcHQiLGxhYmVsOl8sY29tbWFuZDoicG5wbSIsYXJnczpbInJ1biIsX10sbWV0YWRhdGE6e3NjcmlwdE5hbWU6X319O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6en0pKX1hc3luYyBjaGVja1BhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5wYWNrYWdlU3RhdHVzPSJpZGxlIjtyZXR1cm59dGhpcy5wYWNrYWdlU3RhdHVzPSJjaGVja2luZyIsdGhpcy5pc0NoZWNraW5nUGFja2FnZXM9ITA7bGV0IHo9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bigicG5wbSIsWyJvdXRkYXRlZCIsIi0tanNvbiJdKSxPPSIiLFQ9ei5vdXRwdXQuZ2V0UmVhZGVyKCk7cyhhc3luYygpPT57dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6TSx2YWx1ZTpTfT1hd2FpdCBULnJlYWQoKTtpZihNKWJyZWFrO08rPVN9fWNhdGNoe319LCJyZWFkT3V0cHV0IikoKTtsZXQgQj1hd2FpdCBQcm9taXNlLnJhY2UoW3ouZXhpdCxuZXcgUHJvbWlzZShNPT5zZXRUaW1lb3V0KCgpPT5NKC0xKSwxZTQpKV0pO3RyeXthd2FpdCBULmNhbmNlbCgpfWNhdGNoe31pZihCPT09LTEpe2NvbnNvbGUud2FybigiUGFja2FnZSBjaGVjayB0aW1lZCBvdXQiKSx0aGlzLnBhY2thZ2VTdGF0dXM9ImVycm9yIjtyZXR1cm59aWYoQj09PTApdGhpcy5wYWNrYWdlU3RhdHVzPSJ1cC10by1kYXRlIix0aGlzLm91dGRhdGVkUGFja2FnZXM9W107ZWxzZSB0cnl7bGV0IE09SlNPTi5wYXJzZShPKTt0aGlzLm91dGRhdGVkUGFja2FnZXM9dGhpcy5wYXJzZU91dGRhdGVkUGFja2FnZXMoTSksdGhpcy5wYWNrYWdlU3RhdHVzPXRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGg+MD8idXBkYXRlcy1hdmFpbGFibGUiOiJ1cC10by1kYXRlIn1jYXRjaHt0aGlzLnBhY2thZ2VTdGF0dXM9InVwZGF0ZXMtYXZhaWxhYmxlIix0aGlzLm91dGRhdGVkUGFja2FnZXM9W119fWNhdGNoKF8pe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXM6IixfKSx0aGlzLnBhY2thZ2VTdGF0dXM9ImVycm9yIn1maW5hbGx5e3RoaXMuaXNDaGVja2luZ1BhY2thZ2VzPSExfX1wYXJzZU91dGRhdGVkUGFja2FnZXMoXyl7bGV0IHo9W107aWYodHlwZW9mIF89PSJvYmplY3QiJiZfIT09bnVsbClmb3IobGV0W08sVF1vZiBPYmplY3QuZW50cmllcyhfKSl7bGV0IFA9VDt6LnB1c2goe25hbWU6TyxjdXJyZW50OlAuY3VycmVudHx8InVua25vd24iLHdhbnRlZDpQLndhbnRlZHx8UC5jdXJyZW50fHwidW5rbm93biIsbGF0ZXN0OlAubGF0ZXN0fHxQLndhbnRlZHx8InVua25vd24iLHR5cGU6UC5kZXBlbmRlbmN5VHlwZT09PSJkZXZEZXBlbmRlbmNpZXMiPyJkZXZEZXBlbmRlbmNpZXMiOiJkZXBlbmRlbmNpZXMifSl9cmV0dXJuIHp9YXN5bmMgaGFuZGxlUGFja2FnZUNsaWNrKF8pe18uc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHo9W107aWYoei5wdXNoKHtuYW1lOnRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyJDaGVja2luZy4uLiI6IkNoZWNrIGZvciB1cGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2hDdyIsYWN0aW9uOnMoYXN5bmMoKT0+e2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybjtsZXQgTz17dHlwZToicGFja2FnZS11cGRhdGUiLGxhYmVsOiJjaGVjayBwYWNrYWdlcyIsY29tbWFuZDoicG5wbSIsYXJnczpbIm91dGRhdGVkIl19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6T30pKSxzZXRUaW1lb3V0KCgpPT50aGlzLmNoZWNrUGFja2FnZXMoKSwzZTMpfSwiYWN0aW9uIil9KSx0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjApe3oucHVzaCh7ZGl2aWRlcjohMH0pO2xldCBPPXRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5zbGljZSgwLDEwKTtmb3IobGV0IFQgb2YgTyl6LnB1c2goe25hbWU6YCR7VC5uYW1lfTogJHtULmN1cnJlbnR9IFx1MjE5MiAke1QubGF0ZXN0fWAsaWNvbk5hbWU6Imx1Y2lkZTpwYWNrYWdlIixhY3Rpb246cyhhc3luYygpPT57YXdhaXQgdGhpcy51cGRhdGVQYWNrYWdlKFQubmFtZSl9LCJhY3Rpb24iKX0pO3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGg+MTAmJnoucHVzaCh7bmFtZTpgLi4uIGFuZCAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGgtMTB9IG1vcmVgLGljb25OYW1lOiJsdWNpZGU6bW9yZUhvcml6b250YWwiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKX0pLHoucHVzaCh7ZGl2aWRlcjohMH0pLHoucHVzaCh7bmFtZToiVXBkYXRlIGFsbCBwYWNrYWdlcyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd1VwQ2lyY2xlIixhY3Rpb246cyhhc3luYygpPT57YXdhaXQgdGhpcy51cGRhdGVBbGxQYWNrYWdlcygpfSwiYWN0aW9uIil9KX1hd2FpdCB0YS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhfLHopfWFzeW5jIHVwZGF0ZVBhY2thZ2UoXyl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IHo9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDpgdXBkYXRlICR7X31gLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJ1cGRhdGUiLCItLWxhdGVzdCIsX10sbWV0YWRhdGE6e3BhY2thZ2VOYW1lOl99fTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnp9KSl9YXN5bmMgdXBkYXRlQWxsUGFja2FnZXMoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZT0hMDtsZXQgXz17dHlwZToicGFja2FnZS11cGRhdGUiLGxhYmVsOiJ1cGRhdGUgYWxsIixjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiXX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpffSkpfWdldFBhY2thZ2VTdGF0dXNDbGFzcygpe3JldHVybiB0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iIjp0aGlzLnBhY2thZ2VTdGF0dXN9Z2V0UGFja2FnZUljb24oKXtpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm4ibHVjaWRlOmxvYWRlcjIiO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuImx1Y2lkZTpjaGVja0NpcmNsZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuImx1Y2lkZTphbGVydENpcmNsZSI7Y2FzZSJlcnJvciI6cmV0dXJuImx1Y2lkZTp4Q2lyY2xlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6cGFja2FnZSJ9fWdldFBhY2thZ2VTdGF0dXNUZXh0KCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nLi4uIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJVcCB0byBkYXRlIjtjYXNlInVwZGF0ZXMtYXZhaWxhYmxlIjpyZXR1cm5gJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RofSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn1gO2Nhc2UiZXJyb3IiOnJldHVybiJDaGVjayBmYWlsZWQiO2RlZmF1bHQ6cmV0dXJuIlBhY2thZ2VzIn19Z2V0UGFja2FnZVRvb2x0aXAoKXtpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm4iQ2hlY2tpbmcgZm9yIHBhY2thZ2UgdXBkYXRlcy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iQWxsIHBhY2thZ2VzIGFyZSB1cCB0byBkYXRlIjtjYXNlInVwZGF0ZXMtYXZhaWxhYmxlIjpyZXR1cm5gJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RofSBwYWNrYWdlIHVwZGF0ZSR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aCE9PTE/InMiOiIifSBhdmFpbGFibGVgO2Nhc2UiZXJyb3IiOnJldHVybiJGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXMuIENsaWNrIHRvIHJldHJ5LiI7ZGVmYXVsdDpyZXR1cm4iQ2xpY2sgdG8gY2hlY2sgZm9yIHBhY2thZ2UgdXBkYXRlcyJ9fWFzeW5jIHJlZnJlc2hQYWNrYWdlU3RhdHVzKCl7YXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCl9YXN5bmMgcmVmcmVzaFNjcmlwdHMoKXthd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCl9c3RhdGlje1gxKHIsdCl9fTtyZXR1cm4gTj1yfSkoKX0pO3ZhciBwRyxrSmU9ZigoKT0+e3BHPWNsYXNze3N0YXRpY3tzKHRoaXMsIlR5cGVTY3JpcHRJbnRlbGxpU2Vuc2VNYW5hZ2VyIil9bG9hZGVkTGlicz1uZXcgU2V0O25vdEZvdW5kUGFja2FnZXM9bmV3IFNldDttb25hY29JbnN0YW5jZT1udWxsO2V4ZWN1dGlvbkVudmlyb25tZW50PW51bGw7ZmlsZUNhY2hlPW5ldyBNYXA7YWRkZWRFeHRyYUxpYnM9bmV3IE1hcDtnZXQgdHNBcGkoKXtyZXR1cm4gdGhpcy5tb25hY29JbnN0YW5jZT90aGlzLm1vbmFjb0luc3RhbmNlLmxhbmd1YWdlcy50eXBlc2NyaXB0Om51bGx9YXN5bmMgaW5pdChlLHQpe3RoaXMubW9uYWNvSW5zdGFuY2U9ZSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50PXQsdGhpcy5jb25maWd1cmVDb21waWxlck9wdGlvbnMoKSxhd2FpdCB0aGlzLmxvYWRBbGxQcm9qZWN0RmlsZXMoKX1hc3luYyBsb2FkQWxsUHJvamVjdEZpbGVzKCl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5sb2FkRmlsZXNGcm9tRGlyZWN0b3J5KCIvIil9YXN5bmMgbG9hZEZpbGVzRnJvbURpcmVjdG9yeShlKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoZSk7Zm9yKGxldCByIG9mIHQpe2xldCBpPWU9PT0iLyI/YC8ke3IubmFtZX1gOmAke2V9LyR7ci5uYW1lfWA7aWYoci5uYW1lIT09Im5vZGVfbW9kdWxlcyIpe2lmKHIudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeShpKTtlbHNlIGlmKHIudHlwZT09PSJmaWxlIil7bGV0IG89ci5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7aWYobz09PSJ0cyJ8fG89PT0idHN4Inx8bz09PSJqcyJ8fG89PT0ianN4Iil0cnl7bGV0IG49YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShpKTt0aGlzLmFkZEZpbGVNb2RlbChpLG4pfWNhdGNoe319fX19Y2F0Y2h7fX1jb25maWd1cmVDb21waWxlck9wdGlvbnMoKXtsZXQgZT10aGlzLnRzQXBpO2UmJihlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRDb21waWxlck9wdGlvbnMoe3RhcmdldDplLlNjcmlwdFRhcmdldC5FUzIwMjAsbW9kdWxlOmUuTW9kdWxlS2luZC5FU05leHQsbW9kdWxlUmVzb2x1dGlvbjplLk1vZHVsZVJlc29sdXRpb25LaW5kLkJ1bmRsZXI/P2UuTW9kdWxlUmVzb2x1dGlvbktpbmQuTm9kZUpzLGFsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHM6ITAsZXNNb2R1bGVJbnRlcm9wOiEwLHN0cmljdDohMCxub0VtaXQ6ITAsYWxsb3dKczohMCxjaGVja0pzOiExLGFsbG93Tm9uVHNFeHRlbnNpb25zOiEwLGxpYjpbImVzMjAyMCIsImRvbSIsImRvbS5pdGVyYWJsZSJdLGJhc2VVcmw6Ii8iLGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiEwLHJlc29sdmVKc29uTW9kdWxlOiEwfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RGlhZ25vc3RpY3NPcHRpb25zKHtub1NlbWFudGljVmFsaWRhdGlvbjohMSxub1N5bnRheFZhbGlkYXRpb246ITF9KSxlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRFYWdlck1vZGVsU3luYyghMCkpfXBhcnNlSW1wb3J0cyhlKXtsZXQgdD1bXSxyPS9pbXBvcnRccysoPzpbXHcqe31ccyxdK2Zyb21ccyspP1snIl0oW14nIl0rKVsnIl0vZyxpO2Zvcig7KGk9ci5leGVjKGUpKSE9PW51bGw7KXtsZXQgbj1pWzFdO2lmKCFuLnN0YXJ0c1dpdGgoIi4iKSYmIW4uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbD1uLnN0YXJ0c1dpdGgoIkAiKT9uLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6bi5zcGxpdCgiLyIpWzBdO3QucHVzaChsKX19bGV0IG89L3JlcXVpcmVccypcKFxzKlsnIl0oW14nIl0rKVsnIl1ccypcKS9nO2Zvcig7KGk9by5leGVjKGUpKSE9PW51bGw7KXtsZXQgbj1pWzFdO2lmKCFuLnN0YXJ0c1dpdGgoIi4iKSYmIW4uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbD1uLnN0YXJ0c1dpdGgoIkAiKT9uLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6bi5zcGxpdCgiLyIpWzBdO3QucHVzaChsKX19cmV0dXJuWy4uLm5ldyBTZXQodCldfWFzeW5jIGxvYWRUeXBlc0ZvclBhY2thZ2UoZSl7aWYoISghdGhpcy5tb25hY29JbnN0YW5jZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpJiYhdGhpcy5sb2FkZWRMaWJzLmhhcyhlKSYmIXRoaXMubm90Rm91bmRQYWNrYWdlcy5oYXMoZSkpdHJ5e2xldCB0PWF3YWl0IHRoaXMudHJ5TG9hZFBhY2thZ2VUeXBlcyhlKTt0fHwodD1hd2FpdCB0aGlzLnRyeUxvYWRBdFR5cGVzUGFja2FnZShlKSksdD90aGlzLmxvYWRlZExpYnMuYWRkKGUpOnRoaXMubm90Rm91bmRQYWNrYWdlcy5hZGQoZSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKGBGYWlsZWQgdG8gbG9hZCB0eXBlcyBmb3IgJHtlfTpgLHQpfX1hc3luYyB0cnlMb2FkUGFja2FnZVR5cGVzKGUpe2xldCB0PXRoaXMudHNBcGk7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0KXJldHVybiExO2xldCByPWAvbm9kZV9tb2R1bGVzLyR7ZX1gO3RyeXtsZXQgaT1gJHtyfS9wYWNrYWdlLmpzb25gO2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKGkpKXtsZXQgbD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGkpLGQ9SlNPTi5wYXJzZShsKTtpZih0LnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihsLGBmaWxlOi8vJHtpfWApLGQudHlwZXN8fGQudHlwaW5ncylyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShyKSwhMH1sZXQgbj1bYCR7cn0vaW5kZXguZC50c2AsYCR7cn0vZGlzdC9pbmRleC5kLnRzYCxgJHtyfS9saWIvaW5kZXguZC50c2BdO2ZvcihsZXQgbCBvZiBuKWlmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKGwpKXJldHVybiBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKHIpLCEwO3JldHVybiExfWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBwYWNrYWdlIHR5cGVzIGZvciAke2V9OmAsaSksITF9fWFzeW5jIGxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGUpe2xldCB0PXRoaXMudHNBcGk7IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0fHxhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl9YXN5bmMgbG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShlKXtsZXQgdD10aGlzLnRzQXBpO2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0KSl0cnl7bGV0IHI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgaSBvZiByKXtsZXQgbz1lPT09Ii8iP2AvJHtpLm5hbWV9YDpgJHtlfS8ke2kubmFtZX1gO2lmKGkubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihpLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3Rvcnkobyk7ZWxzZSBpZihpLnR5cGU9PT0iZmlsZSImJmkubmFtZS5lbmRzV2l0aCgiLmQudHMiKSl0cnl7bGV0IG49YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShvKTt0LnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihuLGBmaWxlOi8vJHtvfWApfWNhdGNoe319fX1jYXRjaHt9fWFzeW5jIHRyeUxvYWRBdFR5cGVzUGFja2FnZShlKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm4hMTtsZXQgcj1gL25vZGVfbW9kdWxlcy8ke2Uuc3RhcnRzV2l0aCgiQCIpP2BAdHlwZXMvJHtlLnNsaWNlKDEpLnJlcGxhY2UoIi8iLCJfXyIpfWA6YEB0eXBlcy8ke2V9YH1gO3RyeXtsZXQgaT1gJHtyfS9pbmRleC5kLnRzYDtyZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoaSk/KGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UociksITApOiExfWNhdGNoe3JldHVybiExfX1hc3luYyBwcm9jZXNzQ29udGVudENoYW5nZShlKXtsZXQgdD10aGlzLnBhcnNlSW1wb3J0cyhlKTtmb3IobGV0IHIgb2YgdCl0aGlzLmxvYWRlZExpYnMuaGFzKHIpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2Uocil9YXN5bmMgc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLm5vdEZvdW5kUGFja2FnZXMuY2xlYXIoKTt0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbm9kZV9tb2R1bGVzIikpcmV0dXJuO2xldCBlPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigiL25vZGVfbW9kdWxlcyIpO2ZvcihsZXQgdCBvZiBlKWlmKHQudHlwZT09PSJkaXJlY3RvcnkiKWlmKHQubmFtZS5zdGFydHNXaXRoKCJAIikpdHJ5e2xldCByPWAvbm9kZV9tb2R1bGVzLyR7dC5uYW1lfWAsaT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIocik7Zm9yKGxldCBvIG9mIGkpaWYoby50eXBlPT09ImRpcmVjdG9yeSIpe2xldCBuPWAke3QubmFtZX0vJHtvLm5hbWV9YDthd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2Uobil9fWNhdGNoe31lbHNlIHQubmFtZS5zdGFydHNXaXRoKCIuIil8fGF3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZSh0Lm5hbWUpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIHNjYW4gbm9kZV9tb2R1bGVzOiIsZSl9fX1hZGRGaWxlTW9kZWwoZSx0KXtpZighdGhpcy5tb25hY29JbnN0YW5jZSlyZXR1cm47dGhpcy5maWxlQ2FjaGUuc2V0KGUsdCk7bGV0IHI9dGhpcy5tb25hY29JbnN0YW5jZS5VcmkucGFyc2UoYGZpbGU6Ly8ke2V9YCksaT10aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5nZXRNb2RlbChyKTtpZihpKWkuZ2V0VmFsdWUoKSE9PXQmJmkuc2V0VmFsdWUodCk7ZWxzZXtsZXQgbz10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoZSk7dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuY3JlYXRlTW9kZWwodCxvLHIpfXRoaXMuYWRkRmlsZUFzRXh0cmFMaWIoZSx0KX1hZGRGaWxlQXNFeHRyYUxpYihlLHQpe2xldCByPXRoaXMudHNBcGk7aWYoIXIpcmV0dXJuO2xldCBpPXRoaXMuYWRkZWRFeHRyYUxpYnMuZ2V0KGUpO2kmJmkuZGlzcG9zZSgpO2xldCBvPWBmaWxlOi8vJHtlfWAsbj1yLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYih0LG8pO2lmKHRoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGUsbiksZS5lbmRzV2l0aCgiLnRzIikmJiFlLmVuZHNXaXRoKCIuZC50cyIpKXtsZXQgbD1lLnJlcGxhY2UoL1wudHMkLywiLmpzIiksZD1gZmlsZTovLyR7bH1gLGM9ci50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIodCxkKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChsLGMpLHRoaXMuZmlsZUNhY2hlLnNldChsLHQpfWVsc2UgaWYoZS5lbmRzV2l0aCgiLnRzeCIpKXtsZXQgbD1lLnJlcGxhY2UoL1wudHN4JC8sIi5qc3giKSxkPWBmaWxlOi8vJHtsfWAsYz1yLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYih0LGQpO3RoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGwsYyksdGhpcy5maWxlQ2FjaGUuc2V0KGwsdCl9fWdldEZpbGVDb250ZW50KGUpe3JldHVybiB0aGlzLmZpbGVDYWNoZS5nZXQoZSl9Z2V0TGFuZ3VhZ2VGcm9tUGF0aChlKXtzd2l0Y2goZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7ZGVmYXVsdDpyZXR1cm4icGxhaW50ZXh0In19fX0pO3ZhciBNNSxwbixHNmEsU0plPWYoKCk9PntsZSgpO2VhKCk7VFllKCk7UWUoKTtrZigpO001PWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxwbj1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sRzZhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1dvcmtzcGFjZURpZmZFZGl0b3IiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVskKHt0eXBlOlN0cmluZ30pXSx5PVskKHt0eXBlOlN0cmluZ30pXSxOPVskKHt0eXBlOlN0cmluZ30pXSxNNSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ib3JpZ2luYWxDb250ZW50ImluIFAsImhhcyIpLGdldDpzKFA9PlAub3JpZ2luYWxDb250ZW50LCJnZXQiKSxzZXQ6cygoUCxCKT0+e1Aub3JpZ2luYWxDb250ZW50PUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sbixsKSxNNSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGlmaWVkQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4ibW9kaWZpZWRDb250ZW50ImluIFAsImhhcyIpLGdldDpzKFA9PlAubW9kaWZpZWRDb250ZW50LCJnZXQiKSxzZXQ6cygoUCxCKT0+e1AubW9kaWZpZWRDb250ZW50PUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYyxwKSxNNSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsTGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+Im9yaWdpbmFsTGFiZWwiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5vcmlnaW5hbExhYmVsLCJnZXQiKSxzZXQ6cygoUCxCKT0+e1Aub3JpZ2luYWxMYWJlbD1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LG0sdiksTTUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFA9PiJtb2RpZmllZExhYmVsImluIFAsImhhcyIpLGdldDpzKFA9PlAubW9kaWZpZWRMYWJlbCwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLm1vZGlmaWVkTGFiZWw9Qn0sInNldCIpfSxtZXRhZGF0YTpUfSxiLGcpLE01KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUD0+Imxhbmd1YWdlImluIFAsImhhcyIpLGdldDpzKFA9PlAubGFuZ3VhZ2UsImdldCIpLHNldDpzKChQLEIpPT57UC5sYW5ndWFnZT1CfSwic2V0Iil9LG1ldGFkYXRhOlR9LGssQyksTTUodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhQPT4iZmlsZVBhdGgiaW4gUCwiaGFzIiksZ2V0OnMoUD0+UC5maWxlUGF0aCwiZ2V0Iiksc2V0OnMoKFAsQik9PntQLmZpbGVQYXRoPUJ9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyx6KSxNNShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpUfSxudWxsLHQpLE89cj1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IKICAgICAgLm9yaWdpbmFsQ29udGVudD0ke2BmdW5jdGlvbiBoZWxsbygpIHsKICBjb25zb2xlLmxvZygiSGVsbG8iKTsKfWB9CiAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIFdvcmxkISIpOwogIHJldHVybiB0cnVlOwp9YH0KICAgICAgLmxhbmd1YWdlPSR7InR5cGVzY3JpcHQifQogICAgICAuZmlsZVBhdGg9JHsiL2RlbW8vZXhhbXBsZS50cyJ9CiAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtkaWZmRWRpdG9yRGVmZXJyZWQ9SHQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9cG4odGhpcyxuLCIiKTtnZXQgb3JpZ2luYWxDb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9yaWdpbmFsQ29udGVudChUKXt0aGlzLiNlPVR9I3Q9KHBuKHRoaXMsbCkscG4odGhpcyxjLCIiKSk7Z2V0IG1vZGlmaWVkQ29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RpZmllZENvbnRlbnQoVCl7dGhpcy4jdD1UfSNhPShwbih0aGlzLHApLHBuKHRoaXMsbSwiRGlzayBWZXJzaW9uIikpO2dldCBvcmlnaW5hbExhYmVsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9yaWdpbmFsTGFiZWwoVCl7dGhpcy4jYT1UfSNyPShwbih0aGlzLHYpLHBuKHRoaXMsYiwiTG9jYWwgVmVyc2lvbiIpKTtnZXQgbW9kaWZpZWRMYWJlbCgpe3JldHVybiB0aGlzLiNyfXNldCBtb2RpZmllZExhYmVsKFQpe3RoaXMuI3I9VH0jcz0ocG4odGhpcyxnKSxwbih0aGlzLGssInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhbmd1YWdlKFQpe3RoaXMuI3M9VH0jaT0ocG4odGhpcyxDKSxwbih0aGlzLF8sIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZmlsZVBhdGgoVCl7dGhpcy4jaT1UfWRpZmZFZGl0b3I9KHBuKHRoaXMseiksbnVsbCk7bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbDtvcmlnaW5hbE1vZGVsPW51bGw7bW9kaWZpZWRNb2RlbD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSwkaS5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlmZi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZGlmZi10b29sYmFyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kaWZmLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWZpbGVuYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWxhYmVscyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpZmYtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgVD10aGlzLmZpbGVQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJmaWxlIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlmZi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLXRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1pbmZvIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtZmlsZW5hbWUiPiR7VH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWxhYmVscyI+JHt0aGlzLm9yaWdpbmFsTGFiZWx9IOKGlCAke3RoaXMubW9kaWZpZWRMYWJlbH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtYWN0aW9ucyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9QcmV2aW91c0RpZmZ9CiAgICAgICAgICAgICAgPlByZXZpb3VzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9OZXh0RGlmZn0KICAgICAgICAgICAgICA+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24tYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJoaWdobGlnaHRlZCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0TG9jYWx9CiAgICAgICAgICAgICAgPlVzZSBMb2NhbDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHREaXNrfQogICAgICAgICAgICAgID5Vc2UgRGlzazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jbG9zZX0KICAgICAgICAgICAgICA+Q2xvc2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuZXcgTWFwKSxhd2FpdCB0aGlzLmluaXREaWZmRWRpdG9yKCl9YXN5bmMgaW5pdERpZmZFZGl0b3IoKXtsZXQgVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kaWZmLWNvbnRhaW5lciIpO2lmKCFUKXJldHVybjtsZXQgUD1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7WHRlfWAsQj13aW5kb3cubW9uYWNvO0J8fChhd2FpdCBuZXcgUHJvbWlzZShHPT57bGV0IGhlPXNldEludGVydmFsKCgpPT57d2luZG93Lm1vbmFjbyYmKGNsZWFySW50ZXJ2YWwoaGUpLEcoKSl9LDEwMCl9KSxCPXdpbmRvdy5tb25hY28pO2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLEU9TS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLEE9RGF0ZS5ub3coKSxGPUIuVXJpLnBhcnNlKGBkaWZmOi8vb3JpZ2luYWwvJHtBfSR7dGhpcy5maWxlUGF0aH1gKSxXPUIuVXJpLnBhcnNlKGBkaWZmOi8vbW9kaWZpZWQvJHtBfSR7dGhpcy5maWxlUGF0aH1gKTt0aGlzLm9yaWdpbmFsTW9kZWw9Qi5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5vcmlnaW5hbENvbnRlbnQsdGhpcy5sYW5ndWFnZSxGKSx0aGlzLm1vZGlmaWVkTW9kZWw9Qi5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5tb2RpZmllZENvbnRlbnQsdGhpcy5sYW5ndWFnZSxXKSx0aGlzLmRpZmZFZGl0b3I9Qi5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcihULHthdXRvbWF0aWNMYXlvdXQ6ITAscmVhZE9ubHk6ITEsb3JpZ2luYWxFZGl0YWJsZTohMSxyZW5kZXJTaWRlQnlTaWRlOiEwLGlnbm9yZVRyaW1XaGl0ZXNwYWNlOiExLGZvbnRTaXplOjE0LG1pbmltYXA6e2VuYWJsZWQ6ITF9fSksQi5lZGl0b3Iuc2V0VGhlbWUoRSksdGhpcy5kaWZmRWRpdG9yLnNldE1vZGVsKHtvcmlnaW5hbDp0aGlzLm9yaWdpbmFsTW9kZWwsbW9kaWZpZWQ6dGhpcy5tb2RpZmllZE1vZGVsfSksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1NLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEc9PntsZXQgaGU9Rz8idnMiOiJ2cy1kYXJrIjtCLmVkaXRvci5zZXRUaGVtZShoZSl9KTtsZXQgaj0ibW9uYWNvLWRpZmYtZWRpdG9yLWNzcyI7aWYoIXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoaikpe2xldCBoZT1hd2FpdChhd2FpdCBmZXRjaChgJHtQfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksUj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO1IuaWQ9aixSLnRleHRDb250ZW50PWhlLHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kKFIpfXNldFRpbWVvdXQoKCk9Pnt0cnl7dGhpcy5kaWZmRWRpdG9yPy5yZXZlYWxGaXJzdERpZmYoKX1jYXRjaHt9fSwxMDApLHRoaXMuZGlmZkVkaXRvckRlZmVycmVkLnJlc29sdmUodGhpcy5kaWZmRWRpdG9yKX1nb1RvTmV4dERpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigibmV4dCIpfWNhdGNoe319Z29Ub1ByZXZpb3VzRGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJwcmV2aW91cyIpfWNhdGNoe319YWNjZXB0TG9jYWwoKXtsZXQgVD10aGlzLmRpZmZFZGl0b3I/LmdldE1vZGlmaWVkRWRpdG9yKCkuZ2V0VmFsdWUoKXx8dGhpcy5tb2RpZmllZENvbnRlbnQ7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtbG9jYWwiLGNvbnRlbnQ6VH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hY2NlcHREaXNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtZGlzayIsY29udGVudDp0aGlzLm9yaWdpbmFsQ29udGVudH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtY2xvc2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMub3JpZ2luYWxNb2RlbCYmKHRoaXMub3JpZ2luYWxNb2RlbC5kaXNwb3NlKCksdGhpcy5vcmlnaW5hbE1vZGVsPW51bGwpLHRoaXMubW9kaWZpZWRNb2RlbCYmKHRoaXMubW9kaWZpZWRNb2RlbC5kaXNwb3NlKCksdGhpcy5tb2RpZmllZE1vZGVsPW51bGwpLHRoaXMuZGlmZkVkaXRvciYmKHRoaXMuZGlmZkVkaXRvci5kaXNwb3NlKCksdGhpcy5kaWZmRWRpdG9yPW51bGwpfXN0YXRpY3twbihyLHQpfX07cmV0dXJuIE89cn0pKCl9KTt2YXIgVHIscXQsWTZhLEs2YT1mKCgpPT57bGUoKTtlYSgpO1FlKCk7bGllKCk7Q2YoKTtkaWUoKTtkaWUoKTtkRygpO2RHKCk7d0plKCk7TUplKCk7dmEoKTtDZigpO2tKZSgpO1hyKCk7TmEoKTtWc2UoKTtTSmUoKTtUcj1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0scXQ9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFk2YT0oKCk9PntsZXQgYT1baWUoImRlZXMtd29ya3NwYWNlIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdLG1lLEk9W10scT1bXSxjZSx1ZT1bXSxZPVtdLFEsSj1bXSxaPVtdLGdlLGFlPVtdLHJlPVtdLHllLFY9W10sSD1bXSxvZSxzZT1bXSx0ZT1bXSx6ZSxPZT1bXSxxZT1bXSxkdCwkZT1bXSxDZT1bXSxNZSxkZT1bXSx2ZT1bXSxBZSxaZT1bXSxudD1bXSx6dCxUZT1bXSx3ZT1bXTt2YXIgUmU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIkRlZXNXb3Jrc3BhY2UiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgZmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sZD1bJCh7YXR0cmlidXRlOiExfSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSx4PVskKHt0eXBlOkJvb2xlYW59KV0seT1bJCh7dHlwZTpOdW1iZXJ9KV0sTj1bJCh7dHlwZTpOdW1iZXJ9KV0sTz1bSygpXSxCPVtLKCldLEU9W0soKV0sVz1bSygpXSxoZT1bSygpXSxtZT1bSygpXSxjZT1bSygpXSxRPVtLKCldLGdlPVtLKCldLHllPVtLKCldLG9lPVtLKCldLHplPVtLKCldLGR0PVtLKCldLE1lPVtLKCldLEFlPVtLKCldLHp0PVtLKCldLFRyKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoYmU9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6cygoYmUsRWUpPT57YmUuZXhlY3V0aW9uRW52aXJvbm1lbnQ9RWV9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG4sbCksVHIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsaXphdGlvblByb21pc2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoYmU9PiJpbml0aWFsaXphdGlvblByb21pc2UiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5pbml0aWFsaXphdGlvblByb21pc2UsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5pbml0aWFsaXphdGlvblByb21pc2U9RWV9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGMscCksVHIodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoYmU9PiJzaG93RmlsZVRyZWUiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5zaG93RmlsZVRyZWUsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5zaG93RmlsZVRyZWU9RWV9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LG0sdiksVHIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoYmU9PiJzaG93VGVybWluYWwiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5zaG93VGVybWluYWwsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5zaG93VGVybWluYWw9RWV9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LGIsZyksVHIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlVHJlZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iZmlsZVRyZWVXaWR0aCJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLmZpbGVUcmVlV2lkdGgsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5maWxlVHJlZVdpZHRoPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxrLEMpLFRyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoYmU9PiJ0ZXJtaW5hbEhlaWdodCJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLnRlcm1pbmFsSGVpZ2h0LCJnZXQiKSxzZXQ6cygoYmUsRWUpPT57YmUudGVybWluYWxIZWlnaHQ9RWV9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LF8seiksVHIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuRmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoYmU9PiJvcGVuRmlsZXMiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5vcGVuRmlsZXMsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5vcGVuRmlsZXM9RWV9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LFQsUCksVHIodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhiZT0+ImFjdGl2ZUZpbGVQYXRoImluIGJlLCJoYXMiKSxnZXQ6cyhiZT0+YmUuYWN0aXZlRmlsZVBhdGgsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5hY3RpdmVGaWxlUGF0aD1FZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sTSxTKSxUcih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVGVybWluYWxDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoYmU9PiJpc1Rlcm1pbmFsQ29sbGFwc2VkImluIGJlLCJoYXMiKSxnZXQ6cyhiZT0+YmUuaXNUZXJtaW5hbENvbGxhcHNlZCwiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmlzVGVybWluYWxDb2xsYXBzZWQ9RWV9LCJzZXQiKX0sbWV0YWRhdGE6ZmV9LEEsRiksVHIodGhpcyxudWxsLFcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0ZpbGVUcmVlQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iaXNGaWxlVHJlZUNvbGxhcHNlZCJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLmlzRmlsZVRyZWVDb2xsYXBzZWQsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5pc0ZpbGVUcmVlQ29sbGFwc2VkPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxqLEcpLFRyKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSW5pdGlhbGl6aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iaXNJbml0aWFsaXppbmciaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5pc0luaXRpYWxpemluZywiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmlzSW5pdGlhbGl6aW5nPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxSLFUpLFRyKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJvdHRvbVBhbmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5hY3RpdmVCb3R0b21QYW5lbCwiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmFjdGl2ZUJvdHRvbVBhbmVsPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxJLHEpLFRyKHRoaXMsbnVsbCxjZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iZGlhZ25vc3RpY01hcmtlcnMiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5kaWFnbm9zdGljTWFya2VycywiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmRpYWdub3N0aWNNYXJrZXJzPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSx1ZSxZKSxUcih0aGlzLG51bGwsUSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TYXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iYXV0b1NhdmUiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5hdXRvU2F2ZSwiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmF1dG9TYXZlPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxKLFopLFRyKHRoaXMsbnVsbCxnZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iaW5pdENvbW1hbmQiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5pbml0Q29tbWFuZCwiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmluaXRDb21tYW5kPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxhZSxyZSksVHIodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdE91dHB1dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhiZT0+ImluaXRPdXRwdXQiaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5pbml0T3V0cHV0LCJnZXQiKSxzZXQ6cygoYmUsRWUpPT57YmUuaW5pdE91dHB1dD1FZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sVixIKSxUcih0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50RmlsZVRyZWVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhiZT0+ImN1cnJlbnRGaWxlVHJlZVdpZHRoImluIGJlLCJoYXMiKSxnZXQ6cyhiZT0+YmUuY3VycmVudEZpbGVUcmVlV2lkdGgsImdldCIpLHNldDpzKChiZSxFZSk9PntiZS5jdXJyZW50RmlsZVRyZWVXaWR0aD1FZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sc2UsdGUpLFRyKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhiZT0+ImN1cnJlbnRUZXJtaW5hbEhlaWdodCJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLmN1cnJlbnRUZXJtaW5hbEhlaWdodCwiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1FZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sT2UscWUpLFRyKHRoaXMsbnVsbCxkdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdGaWxlVHJlZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhiZT0+ImlzRHJhZ2dpbmdGaWxlVHJlZSJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLmlzRHJhZ2dpbmdGaWxlVHJlZSwiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmlzRHJhZ2dpbmdGaWxlVHJlZT1FZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sJGUsQ2UpLFRyKHRoaXMsbnVsbCxNZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhiZT0+ImlzRHJhZ2dpbmdUZXJtaW5hbCJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLmlzRHJhZ2dpbmdUZXJtaW5hbCwiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmlzRHJhZ2dpbmdUZXJtaW5hbD1FZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sZGUsdmUpLFRyKHRoaXMsbnVsbCxBZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dEaWZmVmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhiZT0+InNob3dEaWZmVmlldyJpbiBiZSwiaGFzIiksZ2V0OnMoYmU9PmJlLnNob3dEaWZmVmlldywiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLnNob3dEaWZmVmlldz1FZX0sInNldCIpfSxtZXRhZGF0YTpmZX0sWmUsbnQpLFRyKHRoaXMsbnVsbCx6dCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpZmZWaWV3Q29uZmlnIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGJlPT4iZGlmZlZpZXdDb25maWciaW4gYmUsImhhcyIpLGdldDpzKGJlPT5iZS5kaWZmVmlld0NvbmZpZywiZ2V0Iiksc2V0OnMoKGJlLEVlKT0+e2JlLmRpZmZWaWV3Q29uZmlnPUVlfSwic2V0Iil9LG1ldGFkYXRhOmZlfSxUZSx3ZSksVHIobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6ZmV9LG51bGwsdCksUmU9cj1lLnZhbHVlLGZlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZlfSl9c3RhdGljIGRlbW89cygoKT0+e2xldCBmZT1uZXcgeDUsYmU9KGFzeW5jKCk9Pnthd2FpdCBmZS5pbml0KCk7bGV0IG10PXsicGFja2FnZS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe25hbWU6ImRlbW8tcHJvamVjdCIsdmVyc2lvbjoiMS4wLjAiLHR5cGU6Im1vZHVsZSIsc2NyaXB0czp7YnVpbGQ6InRzYyIsZGV2OiJ0c2MgLS13YXRjaCJ9LGRlcGVuZGVuY2llczp7IkBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSI6Il40LjIuMyJ9LGRldkRlcGVuZGVuY2llczp7IkB0eXBlcy9ub2RlIjoiXjIyLjAuMCIsdHlwZXNjcmlwdDoiXjUuMC4wIn19LG51bGwsMil9fSwibnBtZXh0cmEuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtkZWVzRWRpdG9yV29ya3NwYWNlOntvbkluaXQ6InBucG0gaW5zdGFsbCJ9fSxudWxsLDIpfX0sInRzY29uZmlnLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7Y29tcGlsZXJPcHRpb25zOnt0YXJnZXQ6IkVTMjAyMiIsbW9kdWxlOiJOb2RlTmV4dCIsbW9kdWxlUmVzb2x1dGlvbjoiTm9kZU5leHQiLHN0cmljdDohMCxvdXREaXI6Ii4vZGlzdCIscm9vdERpcjoiLi9zcmMiLGRlY2xhcmF0aW9uOiEwfSxpbmNsdWRlOlsic3JjLyoqLyoiXX0sbnVsbCwyKX19LHNyYzp7ZGlyZWN0b3J5OnsiaW5kZXgudHMiOntmaWxlOntjb250ZW50czpgLy8gTWFpbiBlbnRyeSBwb2ludAppbXBvcnQgeyBncmVldCwgZm9ybWF0TmFtZSB9IGZyb20gJy4vdXRpbHMuanMnOwoKY29uc3QgbmFtZSA9IGZvcm1hdE5hbWUoJ1dvcmxkJyk7CmNvbnNvbGUubG9nKGdyZWV0KG5hbWUpKTsKCi8vIEV4YW1wbGUgYXN5bmMgZnVuY3Rpb24KYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoJ0hlbGxvIGZyb20gYXN5bmMhJyk7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKbWFpbigpOwpgfX0sInV0aWxzLnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFV0aWxpdHkgZnVuY3Rpb25zCgpleHBvcnQgaW50ZXJmYWNlIElVc2VyIHsKICBmaXJzdE5hbWU6IHN0cmluZzsKICBsYXN0TmFtZTogc3RyaW5nOwp9CgpleHBvcnQgZnVuY3Rpb24gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gXGBIZWxsbywgXCR7bmFtZX0hXGA7Cn0KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIG5hbWUudHJpbSgpLnRvVXBwZXJDYXNlKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2VyKGZpcnN0TmFtZTogc3RyaW5nLCBsYXN0TmFtZTogc3RyaW5nKTogSVVzZXIgewogIHJldHVybiB7IGZpcnN0TmFtZSwgbGFzdE5hbWUgfTsKfQpgfX0sImltcG9ydHRlc3QudHMiOntmaWxlOntjb250ZW50czpgLy8gVGVzdCBucG0gcGFja2FnZSBpbXBvcnRzCmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnOwoKLy8gVGhpcyBzaG91bGQgaGF2ZSBJbnRlbGxpU2Vuc2Ugc2hvd2luZyBkZWZlcigpIG1ldGhvZApjb25zdCBkZWZlcnJlZCA9IHNtYXJ0cHJvbWlzZS5kZWZlcjxzdHJpbmc+KCk7CgovLyBUZXN0IHVzaW5nIHRoZSBkZWZlcnJlZCBwcm9taXNlCmFzeW5jIGZ1bmN0aW9uIHRlc3RTbWFydFByb21pc2UoKSB7CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkZWZlcnJlZC5yZXNvbHZlKCdIZWxsbyBmcm9tIHNtYXJ0cHJvbWlzZSEnKTsKICB9LCAxMDApOwoKICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWZlcnJlZC5wcm9taXNlOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCnRlc3RTbWFydFByb21pc2UoKTsKYH19fX19O2F3YWl0IGZlLm1vdW50KG10KX0pKCksRWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7RWUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgZnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy13b3Jrc3BhY2UiKTtyZXR1cm4gZnQuZXhlY3V0aW9uRW52aXJvbm1lbnQ9ZmUsZnQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPWJlLEVlLmFwcGVuZENoaWxkKGZ0KSx3YAogICAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgICAke0VlfQogICAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICBgfSwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9cXQodGhpcyxuLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChmZSl7dGhpcy4jZT1mZX0jdD0ocXQodGhpcyxsKSxxdCh0aGlzLGMsbnVsbCkpO2dldCBpbml0aWFsaXphdGlvblByb21pc2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKGZlKXt0aGlzLiN0PWZlfSNhPShxdCh0aGlzLHApLHF0KHRoaXMsbSwhMCkpO2dldCBzaG93RmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0ZpbGVUcmVlKGZlKXt0aGlzLiNhPWZlfSNyPShxdCh0aGlzLHYpLHF0KHRoaXMsYiwhMCkpO2dldCBzaG93VGVybWluYWwoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1Rlcm1pbmFsKGZlKXt0aGlzLiNyPWZlfSNzPShxdCh0aGlzLGcpLHF0KHRoaXMsaywyNTApKTtnZXQgZmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCBmaWxlVHJlZVdpZHRoKGZlKXt0aGlzLiNzPWZlfSNpPShxdCh0aGlzLEMpLHF0KHRoaXMsXywyMDApKTtnZXQgdGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGVybWluYWxIZWlnaHQoZmUpe3RoaXMuI2k9ZmV9I289KHF0KHRoaXMseikscXQodGhpcyxULFtdKSk7Z2V0IG9wZW5GaWxlcygpe3JldHVybiB0aGlzLiNvfXNldCBvcGVuRmlsZXMoZmUpe3RoaXMuI289ZmV9I249KHF0KHRoaXMsUCkscXQodGhpcyxNLCIiKSk7Z2V0IGFjdGl2ZUZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjdGl2ZUZpbGVQYXRoKGZlKXt0aGlzLiNuPWZlfSNsPShxdCh0aGlzLFMpLHF0KHRoaXMsQSwhMSkpO2dldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzVGVybWluYWxDb2xsYXBzZWQoZmUpe3RoaXMuI2w9ZmV9I2M9KHF0KHRoaXMsRikscXQodGhpcyxqLCExKSk7Z2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNGaWxlVHJlZUNvbGxhcHNlZChmZSl7dGhpcy4jYz1mZX0jZD0ocXQodGhpcyxHKSxxdCh0aGlzLFIsITApKTtnZXQgaXNJbml0aWFsaXppbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNJbml0aWFsaXppbmcoZmUpe3RoaXMuI2Q9ZmV9I3U9KHF0KHRoaXMsVSkscXQodGhpcyxJLCJ0ZXJtaW5hbCIpKTtnZXQgYWN0aXZlQm90dG9tUGFuZWwoKXtyZXR1cm4gdGhpcy4jdX1zZXQgYWN0aXZlQm90dG9tUGFuZWwoZmUpe3RoaXMuI3U9ZmV9I3A9KHF0KHRoaXMscSkscXQodGhpcyx1ZSxbXSkpO2dldCBkaWFnbm9zdGljTWFya2Vycygpe3JldHVybiB0aGlzLiNwfXNldCBkaWFnbm9zdGljTWFya2VycyhmZSl7dGhpcy4jcD1mZX1lZGl0b3JFbGVtZW50PShxdCh0aGlzLFkpLG51bGwpO2luaXRpYWxpemF0aW9uU3RhcnRlZD0hMTtpbnRlbGxpU2Vuc2VNYW5hZ2VyPW51bGw7aW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQ9ITE7bm9kZU1vZHVsZXNXYXRjaGVyPW51bGw7bm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9bnVsbDtpbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQ9bnVsbDtvcGVuRmlsZVdhdGNoZXJzPW5ldyBNYXA7ZmlsZUNoYW5nZURlYm91bmNlPW5ldyBNYXA7YWN0aW9uYmFyRWxlbWVudD1udWxsOyNmPXF0KHRoaXMsSiwhMSk7Z2V0IGF1dG9TYXZlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGF1dG9TYXZlKGZlKXt0aGlzLiNmPWZlfWF1dG9TYXZlSW50ZXJ2YWw9KHF0KHRoaXMsWiksbnVsbCk7I2g9cXQodGhpcyxhZSwiIik7Z2V0IGluaXRDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGluaXRDb21tYW5kKGZlKXt0aGlzLiNoPWZlfSNtPShxdCh0aGlzLHJlKSxxdCh0aGlzLFYsW10pKTtnZXQgaW5pdE91dHB1dCgpe3JldHVybiB0aGlzLiNtfXNldCBpbml0T3V0cHV0KGZlKXt0aGlzLiNtPWZlfSNnPShxdCh0aGlzLEgpLHF0KHRoaXMsc2UsMjUwKSk7Z2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2d9c2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKGZlKXt0aGlzLiNnPWZlfSNiPShxdCh0aGlzLHRlKSxxdCh0aGlzLE9lLDIwMCkpO2dldCBjdXJyZW50VGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jYn1zZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KGZlKXt0aGlzLiNiPWZlfSN2PShxdCh0aGlzLHFlKSxxdCh0aGlzLCRlLCExKSk7Z2V0IGlzRHJhZ2dpbmdGaWxlVHJlZSgpe3JldHVybiB0aGlzLiN2fXNldCBpc0RyYWdnaW5nRmlsZVRyZWUoZmUpe3RoaXMuI3Y9ZmV9I3g9KHF0KHRoaXMsQ2UpLHF0KHRoaXMsZGUsITEpKTtnZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3h9c2V0IGlzRHJhZ2dpbmdUZXJtaW5hbChmZSl7dGhpcy4jeD1mZX0jeT0ocXQodGhpcyx2ZSkscXQodGhpcyxaZSwhMSkpO2dldCBzaG93RGlmZlZpZXcoKXtyZXR1cm4gdGhpcy4jeX1zZXQgc2hvd0RpZmZWaWV3KGZlKXt0aGlzLiN5PWZlfSN3PShxdCh0aGlzLG50KSxxdCh0aGlzLFRlLG51bGwpKTtnZXQgZGlmZlZpZXdDb25maWcoKXtyZXR1cm4gdGhpcy4jd31zZXQgZGlmZlZpZXdDb25maWcoZmUpe3RoaXMuI3c9ZmV9a2V5ZG93bkhhbmRsZXI9KHF0KHRoaXMsd2UpLGZlPT57KGZlLm1ldGFLZXl8fGZlLmN0cmxLZXkpJiZmZS5rZXk9PT0icyImJiFmZS5zaGlmdEtleSYmKGZlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlQWN0aXZlRmlsZSgpKSwoZmUubWV0YUtleXx8ZmUuY3RybEtleSkmJmZlLnNoaWZ0S2V5JiZmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJzIiYmKGZlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlQWxsRmlsZXMoKSl9KTtoYW5kbGVGaWxlVHJlZU1vdXNlRG93bj1zKGZlPT57ZmUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKX0sImhhbmRsZUZpbGVUcmVlTW91c2VEb3duIik7aGFuZGxlRmlsZVRyZWVNb3VzZU1vdmU9cyhmZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZSlyZXR1cm47bGV0IGJlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRWU9ZmUuY2xpZW50WC1iZS5sZWZ0LGZ0PTE1MCxtdD1iZS53aWR0aCouNSxJdD1NYXRoLm1heChmdCxNYXRoLm1pbihtdCxFZSkpO3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9SXR9LCJoYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSIpO2hhbmRsZUZpbGVUcmVlTW91c2VVcD1zKCgpPT57dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9LCJoYW5kbGVGaWxlVHJlZU1vdXNlVXAiKTtoYW5kbGVUZXJtaW5hbE1vdXNlRG93bj1zKGZlPT57ZmUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKX0sImhhbmRsZVRlcm1pbmFsTW91c2VEb3duIik7aGFuZGxlVGVybWluYWxNb3VzZU1vdmU9cyhmZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbClyZXR1cm47bGV0IGJlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRWU9ZmUuY2xpZW50WS1iZS50b3AsZnQ9YmUuaGVpZ2h0LUVlLG10PTEwMCxJdD1iZS5oZWlnaHQqLjcsWGE9TWF0aC5tYXgobXQsTWF0aC5taW4oSXQsZnQpKTt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1YYX0sImhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlIik7aGFuZGxlVGVybWluYWxNb3VzZVVwPXMoKCk9Pnt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZVRlcm1pbmFsTW91c2VVcCIpO3N0YXRpYyBzdHlsZXM9W1BlLGguZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utb3V0ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZWRpdG9yLWFyZWEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZWRpdG9yLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucGFuZWwtYWN0aW9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFiLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudGFiLWNsb3NlIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1tb2RpZmllZCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAzMnB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbXMtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA0NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQwIDcwJSA1MCUpIiwiaHNsKDQwIDcwJSA0NSUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlLm5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1saXN0IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0tZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLW1lc3NhZ2UgewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWxvY2F0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1lbXB0eSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyBkZWVzLWljb24gewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFJlc2l6ZSBoYW5kbGVzICovCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3ZlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5maWxldHJlZS1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvci1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe2xldCBmZT1bIndvcmtzcGFjZS1jb250YWluZXIiLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlfHx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO3JldHVybiB0aGlzLmlzSW5pdGlhbGl6aW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5pdGlhbGl6aW5nIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxvYWRlcjIifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgICAgICAgIC5jb21tYW5kPSR7dGhpcy5pbml0Q29tbWFuZHx8IiJ9CiAgICAgICAgICAgIC5saW5lcz0ke3RoaXMuaW5pdE91dHB1dH0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSIke2ZlfSI+CiAgICAgICAgICA8IS0tIEZpbGV0cmVlIHBhbmVsIChmdWxsIGhlaWdodCkgLS0+CiAgICAgICAgICAke3RoaXMuc2hvd0ZpbGVUcmVlP3dgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZmlsZXRyZWUtcGFuZWwgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/MDp0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRofXB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlCiAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgLnNlbGVjdGVkUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICBAZmlsZS1zZWxlY3Q9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iIjp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLXZlcnRpY2FsICR7dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gRWRpdG9yICsgVGVybWluYWwgYXJlYSAtLT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1hcmVhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXBhbmVsIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcGVuRmlsZXMubWFwKGJlPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWIgJHtiZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmF0ZUZpbGUoYmUucGF0aCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtiZS5tb2RpZmllZD93YDxzcGFuIGNsYXNzPSJ0YWItbW9kaWZpZWQiPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1uYW1lIj4ke2JlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7RWU9PnRoaXMuY2xvc2VGaWxlKEVlLGJlLnBhdGgpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbWVudS1idXR0b24iIEBjbGljaz0ke3RoaXMuc2hvd0VkaXRvck1lbnV9IHRpdGxlPSJFZGl0b3Igb3B0aW9ucyI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOm1vcmVWZXJ0aWNhbCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2hvd0RpZmZWaWV3JiZ0aGlzLmRpZmZWaWV3Q29uZmlnP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuZGlmZlZpZXdDb25maWcuZmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLm9yaWdpbmFsQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcub3JpZ2luYWxDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm1vZGlmaWVkQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmxhbmd1YWdlfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLXJlc29sdmVkPSR7dGhpcy5oYW5kbGVEaWZmUmVzb2x2ZWR9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtY2xvc2VkPSR7KCk9Pnt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9fQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICAgICAgICAgICAgICAgIGA6dGhpcy5vcGVuRmlsZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZUNvZGUifSBpY29uU2l6ZT0iNDgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBhIGZpbGUgdG8gZWRpdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy5nZXRBY3RpdmVGaWxlQ29udGVudCgpfQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKX0KICAgICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIHJlc2l6ZSBoYW5kbGUgZm9yIHRlcm1pbmFsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsJiYhdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkP3dgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCAke3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlVGVybWluYWxNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgPCEtLSBUZXJtaW5hbCBwYW5lbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC1wYW5lbCAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgICBzdHlsZT0iaGVpZ2h0OiAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8zMjp0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodH1weCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC10YWJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0icHJvYmxlbXMifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNpcmNsZUFsZXJ0In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFByb2JsZW1zCiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhbmVsLXRhYi1iYWRnZSAke3RoaXMuZ2V0RXJyb3JDb3VudCgpPT09MD8id2FybmluZyI6IiJ9Ij4ke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RofTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYWN0aW9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVRlcm1pbmFsfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgLmljb249JHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uVXAiOiJsdWNpZGU6Y2hldnJvbkRvd24ifQogICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwKICAgICAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgICAgIC5zZXR1cENvbW1hbmQ9JHsiIn0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcm9ibGVtc1BhbmVsKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEJvdHRvbSBCYXIgKGZ1bGwgd2lkdGgpIC0tPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIKICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICBAcnVuLXByb2Nlc3M9JHt0aGlzLmhhbmRsZVJ1blByb2Nlc3N9CiAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpLHRoaXMuc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpLHRoaXMuc3RvcEFsbEZpbGVXYXRjaGVycygpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCl9YXN5bmMgdXBkYXRlZChmZSl7ZmUuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKSx0aGlzLmFjdGlvbmJhckVsZW1lbnR8fCh0aGlzLmFjdGlvbmJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLXBhbmVsIGRlZXMtYWN0aW9uYmFyIikpfWFzeW5jIGluaXRpYWxpemVXb3Jrc3BhY2UoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpe3RoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSEwLHRoaXMuaXNJbml0aWFsaXppbmc9ITA7dHJ5e3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLGF3YWl0IHRoaXMuZXhlY3V0ZU9uSW5pdENvbW1hbmQoKX1jYXRjaChmZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgd29ya3NwYWNlOiIsZmUpLHRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSExfWZpbmFsbHl7dGhpcy5pc0luaXRpYWxpemluZz0hMX19fWFzeW5jIGV4ZWN1dGVPbkluaXRDb21tYW5kKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ucG1leHRyYS5qc29uIikpe2xldCBmZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvbnBtZXh0cmEuanNvbiIpLEVlPUpTT04ucGFyc2UoZmUpPy5kZWVzRWRpdG9yV29ya3NwYWNlPy5vbkluaXQ7aWYoRWUmJnR5cGVvZiBFZT09InN0cmluZyIpe2NvbnNvbGUubG9nKCJFeGVjdXRpbmcgb25Jbml0IGNvbW1hbmQ6IixFZSksdGhpcy5pbml0Q29tbWFuZD1FZSx0aGlzLmluaXRPdXRwdXQ9W107bGV0W2Z0LC4uLm10XT1FZS5zcGxpdCgiICIpLEl0PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oZnQsbXQpO0l0Lm91dHB1dC5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTpzKEphPT57bGV0IHdzPUphLnNwbGl0KGAKYCk7Zm9yKGxldCBVZSBvZiB3cylVZSYmKHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LFVlXSl9LCJ3cml0ZSIpfSkpO2xldCBYYT1hd2FpdCBJdC5leGl0O2NvbnNvbGUubG9nKCJvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6IixYYSksdGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsIiIsYENvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiAke1hhfWBdfX19Y2F0Y2goZmUpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGV4ZWN1dGUgb25Jbml0IGNvbW1hbmQ6IixmZSl9fWFzeW5jIGluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZClyZXR1cm47bGV0IGZlPXdpbmRvdy5tb25hY287aWYoZmV8fChhd2FpdCBuZXcgUHJvbWlzZShiZT0+c2V0VGltZW91dChiZSwxMDApKSxmZT13aW5kb3cubW9uYWNvKSwhZmUpe2NvbnNvbGUud2FybigiTW9uYWNvIG5vdCB5ZXQgbG9hZGVkLCBJbnRlbGxpU2Vuc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBsYXRlciIpO3JldHVybn10aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkPSEwLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj1uZXcgcEcsYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmluaXQoZmUsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCksdGhpcy5zZXR1cE1hcmtlckxpc3RlbmVyKCksdGhpcy5zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5zY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpfXN0YXJ0Tm9kZU1vZHVsZXNXYXRjaGVyKCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIpKXRyeXt0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvbm9kZV9tb2R1bGVzIiwoZmUsYmUpPT57dGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQpLHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dChhc3luYygpPT57dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiZhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX0sMmUzKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKGZlKXtjb25zb2xlLndhcm4oIkNvdWxkIG5vdCB3YXRjaCBub2RlX21vZHVsZXM6IixmZSl9fXN0b3BOb2RlTW9kdWxlc1dhdGNoZXIoKXt0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlciYmKHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyLnN0b3AoKSx0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlcj1udWxsKSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQpLHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9bnVsbCl9c3RhcnRXYXRjaGluZ0ZpbGUoZmUpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMub3BlbkZpbGVXYXRjaGVycy5oYXMoZmUpKSl0cnl7bGV0IGJlPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goZmUsKEVlLGZ0KT0+e2xldCBtdD10aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5nZXQoZmUpO210JiZjbGVhclRpbWVvdXQobXQpO2xldCBJdD1zZXRUaW1lb3V0KCgpPT57dGhpcy5oYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoZmUpLHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmRlbGV0ZShmZSl9LDMwMCk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2Uuc2V0KGZlLEl0KX0pO3RoaXMub3BlbkZpbGVXYXRjaGVycy5zZXQoZmUsYmUpfWNhdGNoKGJlKXtjb25zb2xlLndhcm4oYENvdWxkIG5vdCB3YXRjaCBmaWxlICR7ZmV9OmAsYmUpfX1zdG9wV2F0Y2hpbmdGaWxlKGZlKXtsZXQgYmU9dGhpcy5vcGVuRmlsZVdhdGNoZXJzLmdldChmZSk7YmUmJihiZS5zdG9wKCksdGhpcy5vcGVuRmlsZVdhdGNoZXJzLmRlbGV0ZShmZSkpO2xldCBFZT10aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5nZXQoZmUpO0VlJiYoY2xlYXJUaW1lb3V0KEVlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoZmUpKX1zdG9wQWxsRmlsZVdhdGNoZXJzKCl7Zm9yKGxldCBmZSBvZiB0aGlzLm9wZW5GaWxlV2F0Y2hlcnMudmFsdWVzKCkpZmUuc3RvcCgpO3RoaXMub3BlbkZpbGVXYXRjaGVycy5jbGVhcigpO2ZvcihsZXQgZmUgb2YgdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UudmFsdWVzKCkpY2xlYXJUaW1lb3V0KGZlKTt0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5jbGVhcigpfWFzeW5jIGhhbmRsZUV4dGVybmFsRmlsZUNoYW5nZShmZSl7bGV0IGJlPXRoaXMub3BlbkZpbGVzLmZpbmQoRWU9PkVlLnBhdGg9PT1mZSk7aWYoISghYmV8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSl0cnl7bGV0IEVlPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoZmUpO2lmKEVlPT09YmUuY29udGVudClyZXR1cm47aWYoYmUubW9kaWZpZWQpe2xldCBmdD1hd2FpdCB0aGlzLmFjdGlvbmJhckVsZW1lbnQ/LnNob3coe21lc3NhZ2U6YCIke2JlLm5hbWV9IiBjaGFuZ2VkIG9uIGRpc2suIFdoYXQgZG8geW91IHdhbnQgdG8gZG8/YCx0eXBlOiJxdWVzdGlvbiIsaWNvbjoibHVjaWRlOmdpdE1lcmdlIixhY3Rpb25zOlt7aWQ6ImxvYWQtZGlzayIsbGFiZWw6IkxvYWQgZnJvbSBEaXNrIixwcmltYXJ5OiEwfSx7aWQ6InNhdmUtbG9jYWwiLGxhYmVsOiJTYXZlIExvY2FsIHRvIERpc2sifSx7aWQ6ImNvbXBhcmUiLGxhYmVsOiJDb21wYXJlIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjE1ZTMsZGVmYXVsdEFjdGlvbklkOiJsb2FkLWRpc2sifSxkaXNtaXNzaWJsZTohMH0pO2Z0Py5hY3Rpb25JZD09PSJsb2FkLWRpc2siP2F3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQoZmUsRWUsITEpOmZ0Py5hY3Rpb25JZD09PSJzYXZlLWxvY2FsIj8oYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoZmUsYmUuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKG10PT5tdC5wYXRoPT09ZmU/ey4uLm10LG1vZGlmaWVkOiExfTptdCkpOmZ0Py5hY3Rpb25JZD09PSJjb21wYXJlIiYmdGhpcy5vcGVuRGlmZlZpZXcoZmUsYmUuY29udGVudCxFZSl9ZWxzZSBhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGZlLEVlLCEwKX1jYXRjaChFZSl7Y29uc29sZS53YXJuKGBGYWlsZWQgdG8gaGFuZGxlIGV4dGVybmFsIGNoYW5nZSBmb3IgJHtmZX06YCxFZSl9fWFzeW5jIHVwZGF0ZUZpbGVDb250ZW50KGZlLGJlLEVlKXtpZih0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoZnQ9PmZ0LnBhdGg9PT1mZT97Li4uZnQsY29udGVudDpiZSxtb2RpZmllZDohMX06ZnQpLGZlPT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IGZ0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7ZnQmJmF3YWl0IGZ0LnNldENvbnRlbnRFeHRlcm5hbChiZSxFZSl9fW9wZW5EaWZmVmlldyhmZSxiZSxFZSl7dGhpcy5kaWZmVmlld0NvbmZpZz17ZmlsZVBhdGg6ZmUsb3JpZ2luYWxDb250ZW50OkVlLG1vZGlmaWVkQ29udGVudDpiZSxsYW5ndWFnZTp0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoZmUpfSx0aGlzLnNob3dEaWZmVmlldz0hMH1hc3luYyBoYW5kbGVEaWZmUmVzb2x2ZWQoZmUpe2xldHthY3Rpb246YmUsY29udGVudDpFZX09ZmUuZGV0YWlsLGZ0PXRoaXMuZGlmZlZpZXdDb25maWc/LmZpbGVQYXRoO2lmKCFmdHx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMuc2hvd0RpZmZWaWV3PSExLHRoaXMuZGlmZlZpZXdDb25maWc9bnVsbDtyZXR1cm59aWYoYmU9PT0idXNlLWxvY2FsIil7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoZnQsRWUpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChtdD0+bXQucGF0aD09PWZ0P3suLi5tdCxjb250ZW50OkVlLG1vZGlmaWVkOiExfTptdCksZnQ9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKXtsZXQgbXQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKTttdCYmYXdhaXQgbXQuc2V0Q29udGVudEV4dGVybmFsKEVlLCExKX19ZWxzZSBiZT09PSJ1c2UtZGlzayImJmF3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQoZnQsRWUsITEpO3RoaXMuc2hvd0RpZmZWaWV3PSExLHRoaXMuZGlmZlZpZXdDb25maWc9bnVsbH1hc3luYyBoYW5kbGVGaWxlU2VsZWN0KGZlKXtsZXR7cGF0aDpiZSxuYW1lOkVlfT1mZS5kZXRhaWw7YXdhaXQgdGhpcy5vcGVuRmlsZShiZSxFZSl9YXN5bmMgb3BlbkZpbGUoZmUsYmUpe2lmKHRoaXMub3BlbkZpbGVzLmZpbmQoZnQ9PmZ0LnBhdGg9PT1mZSkpe3RoaXMuYWN0aXZlRmlsZVBhdGg9ZmU7cmV0dXJufWlmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2xldCBmdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGZlKTtpZih0aGlzLm9wZW5GaWxlcz1bLi4udGhpcy5vcGVuRmlsZXMse3BhdGg6ZmUsbmFtZTpiZSxjb250ZW50OmZ0LG1vZGlmaWVkOiExfV0sdGhpcy5hY3RpdmVGaWxlUGF0aD1mZSx0aGlzLnN0YXJ0V2F0Y2hpbmdGaWxlKGZlKSwhdGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShJdD0+c2V0VGltZW91dChJdCw1MDApKSxhd2FpdCB0aGlzLmluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKTtsZXQgbXQ9dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGZlKTt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJihtdD09PSJ0eXBlc2NyaXB0Inx8bXQ9PT0iamF2YXNjcmlwdCIpJiZhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIucHJvY2Vzc0NvbnRlbnRDaGFuZ2UoZnQpfX1jYXRjaChmdCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIG9wZW4gZmlsZSAke2ZlfTpgLGZ0KX19YWN0aXZhdGVGaWxlKGZlKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWZlfWNsb3NlRmlsZShmZSxiZSl7ZmUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEVlPXRoaXMub3BlbkZpbGVzLmZpbmRJbmRleChtdD0+bXQucGF0aD09PWJlKTtpZihFZT09PS0xKXJldHVybjtsZXQgZnQ9dGhpcy5vcGVuRmlsZXNbRWVdO2lmKCEoZnQubW9kaWZpZWQmJiFjb25maXJtKGAke2Z0Lm5hbWV9IGhhcyB1bnNhdmVkIGNoYW5nZXMuIENsb3NlIGFueXdheT9gKSkmJih0aGlzLnN0b3BXYXRjaGluZ0ZpbGUoYmUpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLmZpbHRlcihtdD0+bXQucGF0aCE9PWJlKSx0aGlzLmFjdGl2ZUZpbGVQYXRoPT09YmUpKWlmKHRoaXMub3BlbkZpbGVzLmxlbmd0aD4wKXtsZXQgbXQ9TWF0aC5taW4oRWUsdGhpcy5vcGVuRmlsZXMubGVuZ3RoLTEpO3RoaXMuYWN0aXZlRmlsZVBhdGg9dGhpcy5vcGVuRmlsZXNbbXRdLnBhdGh9ZWxzZSB0aGlzLmFjdGl2ZUZpbGVQYXRoPSIifWdldEFjdGl2ZUZpbGVDb250ZW50KCl7cmV0dXJuIHRoaXMub3BlbkZpbGVzLmZpbmQoYmU9PmJlLnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKT8uY29udGVudHx8IiJ9aGFuZGxlQ29udGVudENoYW5nZShmZSl7bGV0IGJlPWZlLmRldGFpbCxFZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgobXQ9Pm10LnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKTtpZihFZT09PS0xKXJldHVybjtsZXQgZnQ9dGhpcy5vcGVuRmlsZXNbRWVdO2lmKGZ0LmNvbnRlbnQhPT1iZSl7dGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLnNsaWNlKDAsRWUpLHsuLi5mdCxjb250ZW50OmJlLG1vZGlmaWVkOiEwfSwuLi50aGlzLm9wZW5GaWxlcy5zbGljZShFZSsxKV07bGV0IG10PXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKTt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJihtdD09PSJ0eXBlc2NyaXB0Inx8bXQ9PT0iamF2YXNjcmlwdCIpJiYodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dCksdGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj8ucHJvY2Vzc0NvbnRlbnRDaGFuZ2UoYmUpfSw1MDApKX19Z2V0TGFuZ3VhZ2VGcm9tUGF0aChmZSl7bGV0IGJlPWZlLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7cmV0dXJue3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6Imh0bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixsZXNzOiJsZXNzIixtZDoibWFya2Rvd24iLHlhbWw6InlhbWwiLHltbDoieWFtbCIseG1sOiJ4bWwiLHNxbDoic3FsIixweToicHl0aG9uIixzaDoic2hlbGwiLGJhc2g6InNoZWxsIn1bYmV8fCIiXXx8InBsYWludGV4dCJ9dG9nZ2xlVGVybWluYWwoKXt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ9IXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZH1hc3luYyBzYXZlQWN0aXZlRmlsZSgpe2xldCBmZT10aGlzLm9wZW5GaWxlcy5maW5kKGJlPT5iZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoISghZmV8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoZmUucGF0aCxmZS5jb250ZW50KSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoYmU9PmJlLnBhdGg9PT1mZS5wYXRoP3suLi5iZSxtb2RpZmllZDohMX06YmUpLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmFkZEZpbGVNb2RlbChmZS5wYXRoLGZlLmNvbnRlbnQpfWNhdGNoKGJlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc2F2ZSBmaWxlOiIsYmUpfX1hc3luYyBzYXZlQWxsRmlsZXMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXtmb3IobGV0IGZlIG9mIHRoaXMub3BlbkZpbGVzLmZpbHRlcihiZT0+YmUubW9kaWZpZWQpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShmZS5wYXRoLGZlLmNvbnRlbnQpLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmFkZEZpbGVNb2RlbChmZS5wYXRoLGZlLmNvbnRlbnQpfWNhdGNoKGJlKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gc2F2ZSAke2ZlLnBhdGh9OmAsYmUpfXRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChmZT0+KHsuLi5mZSxtb2RpZmllZDohMX0pKX19YXN5bmMgc2hvd0VkaXRvck1lbnUoZmUpe2ZlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBiZT1be25hbWU6dGhpcy5hdXRvU2F2ZT8iXHUyNzEzIEF1dG8gU2F2ZSI6IkF1dG8gU2F2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246cyhhc3luYygpPT50aGlzLnRvZ2dsZUF1dG9TYXZlKCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOnMoYXN5bmMoKT0+dGhpcy5zYXZlQWN0aXZlRmlsZSgpLCJhY3Rpb24iKX0se25hbWU6IlNhdmUgQWxsIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjpzKGFzeW5jKCk9PnRoaXMuc2F2ZUFsbEZpbGVzKCksImFjdGlvbiIpfV07YXdhaXQgdGEub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZmUsYmUpfXRvZ2dsZUF1dG9TYXZlKCl7dGhpcy5hdXRvU2F2ZT0hdGhpcy5hdXRvU2F2ZSx0aGlzLmF1dG9TYXZlP3RoaXMuYXV0b1NhdmVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e3RoaXMub3BlbkZpbGVzLnNvbWUoYmU9PmJlLm1vZGlmaWVkKSYmdGhpcy5zYXZlQWxsRmlsZXMoKX0sMmUzKTp0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpfWdldEVycm9yQ291bnQoKXtyZXR1cm4gdGhpcy5kaWFnbm9zdGljTWFya2Vycy5maWx0ZXIoZmU9PmZlLnNldmVyaXR5PT09OCkubGVuZ3RofXJlbmRlclByb2JsZW1zUGFuZWwoKXtyZXR1cm4gdGhpcy5kaWFnbm9zdGljTWFya2Vycy5sZW5ndGg9PT0wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbXMtZW1wdHkiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2tDaXJjbGUifSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+Tm8gcHJvYmxlbXMgZGV0ZWN0ZWQ8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbXMtbGlzdCI+CiAgICAgICAgJHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLm1hcChmZT0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0taXRlbSIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVUb1Byb2JsZW0oZmUpfT4KICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgIGNsYXNzPSJwcm9ibGVtLWljb24gJHtmZS5zZXZlcml0eT09PTg/ImVycm9yIjoid2FybmluZyJ9IgogICAgICAgICAgICAgIC5pY29uPSR7ZmUuc2V2ZXJpdHk9PT04PyJsdWNpZGU6Y2lyY2xlWCI6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0In0KICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1kZXRhaWxzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLW1lc3NhZ2UiPiR7ZmUubWVzc2FnZX08L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWxvY2F0aW9uIj4KICAgICAgICAgICAgICAgICR7ZmUucmVzb3VyY2UucGF0aC5zcGxpdCgiLyIpLnBvcCgpfSAoJHtmZS5zdGFydExpbmVOdW1iZXJ9LCAke2ZlLnN0YXJ0Q29sdW1ufSkKICAgICAgICAgICAgICAgICR7ZmUuc291cmNlP2BbJHtmZS5zb3VyY2V9XWA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBuYXZpZ2F0ZVRvUHJvYmxlbShmZSl7bGV0IGJlPWZlLnJlc291cmNlLnBhdGgsRWU9YmUuc3BsaXQoIi8iKS5wb3AoKXx8IiI7dGhpcy5vcGVuRmlsZXMuZmluZChJdD0+SXQucGF0aD09PWJlKT90aGlzLmFjdGl2ZUZpbGVQYXRoPWJlOmF3YWl0IHRoaXMub3BlbkZpbGUoYmUsRWUpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IG10PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7aWYobXQpe2xldCBJdD1hd2FpdCBtdC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO0l0LnJldmVhbExpbmVJbkNlbnRlcihmZS5zdGFydExpbmVOdW1iZXIpLEl0LnNldFBvc2l0aW9uKHtsaW5lTnVtYmVyOmZlLnN0YXJ0TGluZU51bWJlcixjb2x1bW46ZmUuc3RhcnRDb2x1bW59KSxJdC5mb2N1cygpfX1zZXR1cE1hcmtlckxpc3RlbmVyKCl7bGV0IGZlPXdpbmRvdy5tb25hY287ZmUmJihmZS5lZGl0b3Iub25EaWRDaGFuZ2VNYXJrZXJzKGJlPT57dGhpcy51cGRhdGVEaWFnbm9zdGljTWFya2VycygpfSksdGhpcy51cGRhdGVEaWFnbm9zdGljTWFya2VycygpKX11cGRhdGVEaWFnbm9zdGljTWFya2Vycygpe2xldCBmZT13aW5kb3cubW9uYWNvO2lmKCFmZSlyZXR1cm47bGV0IGJlPWZlLmVkaXRvci5nZXRNb2RlbE1hcmtlcnMoe30pO3RoaXMuZGlhZ25vc3RpY01hcmtlcnM9YmUubWFwKEVlPT4oe21lc3NhZ2U6RWUubWVzc2FnZSxzZXZlcml0eTpFZS5zZXZlcml0eSxzdGFydExpbmVOdW1iZXI6RWUuc3RhcnRMaW5lTnVtYmVyLHN0YXJ0Q29sdW1uOkVlLnN0YXJ0Q29sdW1uLGVuZExpbmVOdW1iZXI6RWUuZW5kTGluZU51bWJlcixlbmRDb2x1bW46RWUuZW5kQ29sdW1uLHNvdXJjZTpFZS5zb3VyY2UscmVzb3VyY2U6e3BhdGg6RWUucmVzb3VyY2UucGF0aH19KSl9YXN5bmMgaGFuZGxlUnVuUHJvY2VzcyhmZSl7bGV0IGJlPWZlLmRldGFpbCxFZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIik7aWYoIUVlKXtjb25zb2xlLndhcm4oIlRlcm1pbmFsIGNvbXBvbmVudCBub3QgZm91bmQiKTtyZXR1cm59dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkJiYodGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSExKSx0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJ0ZXJtaW5hbCIsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBFZS5jcmVhdGVQcm9jZXNzVGFiKHt0eXBlOmJlLnR5cGUsbGFiZWw6YmUubGFiZWwsY29tbWFuZDpiZS5jb21tYW5kLGFyZ3M6YmUuYXJncyxtZXRhZGF0YTpiZS5tZXRhZGF0YSxzd2l0Y2hUb1RhYjohMH0pfXNldEZpbGVUcmVlV2lkdGgoZmUpe2xldCBFZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKi41O3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9TWF0aC5tYXgoMTUwLE1hdGgubWluKEVlLGZlKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9c2V0VGVybWluYWxIZWlnaHQoZmUpe2xldCBFZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCouNzt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1NYXRoLm1heCgxMDAsTWF0aC5taW4oRWUsZmUpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1yZXNldExheW91dCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9c3RhdGlje3F0KHIsdCl9fTtyZXR1cm4gUmU9cn0pKCl9KTt2YXIgWjZhPWYoKCk9PntLNmEoKTtrSmUoKX0pO3ZhciBYNmE9ZigoKT0+e0NmKCl9KTt2YXIgUTZhPWYoKCk9PntkaWUoKX0pO3ZhciBKNmE9ZigoKT0+e30pO3ZhciBldWE9ZigoKT0+e2RHKCk7SjZhKCk7ZkplKCl9KTt2YXIgdHVhPWYoKCk9Pnt3SmUoKX0pO3ZhciBmRyxOYyxTZG8sYXVhLHJ1YT1mKCgpPT57bGUoKTtRZSgpO0NmKCk7Zkc9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LE5jPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxTZG89QXQucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKSxhdWE9KCgpPT57bGV0IGE9W2llKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93biIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJEZWVzV29ya3NwYWNlTWFya2Rvd24iKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk51bWJlcn0pXSxkPVskKHt0eXBlOk51bWJlcn0pXSx1PVtLKCldLHg9W0soKV0sZkcodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJzcGxpdFJhdGlvImluIEMsImhhcyIpLGdldDpzKEM9PkMuc3BsaXRSYXRpbywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnNwbGl0UmF0aW89Tn0sInNldCIpfSxtZXRhZGF0YTprfSxuLGwpLGZHKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluUGFuZWxTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJtaW5QYW5lbFNpemUiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5taW5QYW5lbFNpemUsImdldCIpLHNldDpzKChDLE4pPT57Qy5taW5QYW5lbFNpemU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxjLHApLGZHKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFNwbGl0UmF0aW8iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImN1cnJlbnRTcGxpdFJhdGlvImluIEMsImhhcyIpLGdldDpzKEM9PkMuY3VycmVudFNwbGl0UmF0aW8sImdldCIpLHNldDpzKChDLE4pPT57Qy5jdXJyZW50U3BsaXRSYXRpbz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sdiksZkcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJpc0RyYWdnaW5nImluIEMsImhhcyIpLGdldDpzKEM9PkMuaXNEcmFnZ2luZywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmlzRHJhZ2dpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGZHKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCkseT1yPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89cygoKT0+d2A8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bj5gLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtzdGF0aWMgc3R5bGVzPVtQZSxoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zcGxpdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgIC5lZGl0b3JDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMDM2M2QiKX07CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXIsCiAgICAgIC5yZXNpemVIYW5kbGUuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjZmZmZmZmIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZDExMTciKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvckNvbnRhaW5lciwKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXTsjZT1OYyh0aGlzLG4sNTApO2dldCBzcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNwbGl0UmF0aW8oayl7dGhpcy4jZT1rfSN0PShOYyh0aGlzLGwpLE5jKHRoaXMsYywxMCkpO2dldCBtaW5QYW5lbFNpemUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluUGFuZWxTaXplKGspe3RoaXMuI3Q9a30jYT0oTmModGhpcyxwKSxOYyh0aGlzLG0sNTApKTtnZXQgY3VycmVudFNwbGl0UmF0aW8oKXtyZXR1cm4gdGhpcy4jYX1zZXQgY3VycmVudFNwbGl0UmF0aW8oayl7dGhpcy4jYT1rfSNyPShOYyh0aGlzLHYpLE5jKHRoaXMsYiwhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlzRHJhZ2dpbmcoayl7dGhpcy4jcj1rfXJlc2l6ZUhhbmRsZUVsZW1lbnQ9TmModGhpcyxnKTtjb250YWluZXJFbGVtZW50O3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzcGxpdENvbnRhaW5lciAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yQ29udGFpbmVyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgLmxhbmd1YWdlPSR7Im1hcmtkb3duIn0KICAgICAgICAgICAgLmNvbnRlbnQ9JHtgIyBhIHRlc3QgY29udGVudAoKVGhpcyBpcyB0ZXN0IGNvbnRlbnQgdGhhdCBpcyBvZiBsb25nZXIgZm9ybSBhbiBob3BlZnVsbHkgc3RhcnRzIHRvIHdyYXAgd2hlbiBJIG5lZWQgaXQuIEFuZCB5ZXMsIGl0IGRvZXMgcGVyZmVjdGx5LiBuaWNlLgoKVGVzdCB8IEhlbGxvCi0tLSB8IC0tLQpZZWFoIHwgU28gZ29vZAoKVGhpcyBpcyByZWFsIGFzc2V0IEkgdGhpbmsuIFdoeSB3b3VsZCB3ZSB3YW50IHRvIGxlYXZlIHRoYXQgb24gdGhlIHRhYmxlPyBDYW4geW91IHRlbGwgbXkgdGhhdD8KCldoeSBhcmUgd2UgaGVyZT8KCkRvIHlvdSBrbm93PwoKPiBub3RlOgpUaGVyZSBpcyBzb21ldGhpbmcgZ29pbmcgb24uCgpcYFxgXGB0eXBlc2NyaXB0CmNvbnN0IGhlbGxvID0gJ3llcycKXGBcYFxgCmB9CiAgICAgICAgICAgIHdvcmRXcmFwPSJib3VuZGVkIgogICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJyZXNpemVIYW5kbGUgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im91dGxldENvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAkezEwMC10aGlzLmN1cnJlbnRTcGxpdFJhdGlvfSUiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoayl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKGspLHRoaXMuY3VycmVudFNwbGl0UmF0aW89dGhpcy5zcGxpdFJhdGlvLHRoaXMuY29udGFpbmVyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNwbGl0Q29udGFpbmVyIiksdGhpcy5yZXNpemVIYW5kbGVFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIucmVzaXplSGFuZGxlIik7bGV0IEM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLE49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iiksej1hd2FpdCBuZXcgQXQucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24oKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bigibG9hZGluZy4uLiIpO0MuY29udGVudFN1YmplY3Quc3Vic2NyaWJlKGFzeW5jIE89Pnthd2FpdCB6LnVwZGF0ZUZyb21NYXJrZG93blN0cmluZyhPKTtsZXQgVD16Lmh0bWw7Ti51cGRhdGVIdG1sVGV4dChUKX0pfWhhbmRsZU1vdXNlRG93bj1zKGs9PntrLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9LCJoYW5kbGVNb3VzZURvd24iKTtoYW5kbGVNb3VzZU1vdmU9cyhrPT57aWYoIXRoaXMuaXNEcmFnZ2luZ3x8IXRoaXMuY29udGFpbmVyRWxlbWVudClyZXR1cm47bGV0IEM9dGhpcy5jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE49Qy53aWR0aCx6PShrLmNsaWVudFgtQy5sZWZ0KS9OKjEwMDt6PU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSx6KSksdGhpcy5jdXJyZW50U3BsaXRSYXRpbz16fSwiaGFuZGxlTW91c2VNb3ZlIik7aGFuZGxlTW91c2VVcD1zKCgpPT57dGhpcy5pc0RyYWdnaW5nPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpJiZ3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZU1vdXNlVXAiKTthc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX1zZXRTcGxpdFJhdGlvKGspe3RoaXMuY3VycmVudFNwbGl0UmF0aW89TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLGspKX1yZXNldFNwbGl0UmF0aW8oKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpb31zdGF0aWN7TmMocix0KX19O3JldHVybiB5PXJ9KSgpfSk7dmFyIHN1YT1mKCgpPT57cnVhKCl9KTt2YXIgaXVhLG91YT1mKCgpPT57bGUoKTtOYSgpO1lzKCk7aXVhPXMoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7WGAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8IS0tIERlbW8gMTogSGVhZGluZ3MgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkhlYWRpbmdzIn0KICAgICAgICAuc3VidGl0bGU9JHsiQWxsIGhlYWRpbmcgbGV2ZWxzIGZyb20gSDEgdG8gSDYifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9Pnthd2FpdCBhLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgxPkhlYWRpbmcgTGV2ZWwgMTwvaDE+CiAgICAgICAgICAgIDxoMj5IZWFkaW5nIExldmVsIDI8L2gyPgogICAgICAgICAgICA8aDM+SGVhZGluZyBMZXZlbCAzPC9oMz4KICAgICAgICAgICAgPGg0PkhlYWRpbmcgTGV2ZWwgNDwvaDQ+CiAgICAgICAgICAgIDxoNT5IZWFkaW5nIExldmVsIDU8L2g1PgogICAgICAgICAgICA8aDY+SGVhZGluZyBMZXZlbCA2PC9oNj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gMjogVGV4dCBGb3JtYXR0aW5nIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJUZXh0IEZvcm1hdHRpbmcifQogICAgICAgIC5zdWJ0aXRsZT0keyJCb2xkLCBpdGFsaWMsIGxpbmtzLCBjb2RlLCBhbmQga2V5Ym9hcmQgaW5wdXQifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9Pnthd2FpdCBhLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHBhcmFncmFwaCB3aXRoIDxzdHJvbmc+Ym9sZCB0ZXh0PC9zdHJvbmc+IGFuZCA8ZW0+aXRhbGljIHRleHQ8L2VtPi48L3A+CiAgICAgICAgICAgIDxwPllvdSBjYW4gYWxzbyB1c2UgPHN0cm9uZz48ZW0+Ym9sZCBpdGFsaWM8L2VtPjwvc3Ryb25nPiBmb3IgZW1waGFzaXMuPC9wPgogICAgICAgICAgICA8cD5IZXJlJ3MgYSA8YSBocmVmPSIjIj5saW5rIGV4YW1wbGU8L2E+IGFuZCBzb21lIDxjb2RlPmlubGluZSBjb2RlPC9jb2RlPi48L3A+CiAgICAgICAgICAgIDxwPlByZXNzIDxrYmQ+Q3RybDwva2JkPiArIDxrYmQ+Qzwva2JkPiB0byBjb3B5IHRleHQuPC9wPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkFib3ZlIGlzIGEgaG9yaXpvbnRhbCBydWxlIHNlcGFyYXRvci48L3A+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDM6IExpc3RzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJMaXN0cyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7Ik9yZGVyZWQsIHVub3JkZXJlZCwgYW5kIHRhc2sgbGlzdHMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9Pnthd2FpdCBhLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgzPlVub3JkZXJlZCBMaXN0PC9oMz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5GaXJzdCBpdGVtPC9saT4KICAgICAgICAgICAgICA8bGk+U2Vjb25kIGl0ZW0KICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDE8L2xpPgogICAgICAgICAgICAgICAgICA8bGk+TmVzdGVkIGl0ZW0gMjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpPlRoaXJkIGl0ZW08L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGgzPk9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDxvbD4KICAgICAgICAgICAgICA8bGk+U3RlcCBvbmU8L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHR3bzwvbGk+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgdGhyZWU8L2xpPgogICAgICAgICAgICA8L29sPgoKICAgICAgICAgICAgPGgzPlRhc2sgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQgZGlzYWJsZWQ+IENvbXBsZXRlZCB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBQZW5kaW5nIHRhc2s8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ+IEFub3RoZXIgdGFzazwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDQ6IENvZGUgQmxvY2tzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJDb2RlIEJsb2NrcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN5bnRheCBoaWdobGlnaHRlZCBjb2RlIGV4YW1wbGVzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57YXdhaXQgYS5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPklubGluZSBjb2RlOiA8Y29kZT5jb25zdCBncmVldGluZyA9ICJIZWxsbywgV29ybGQhIjs8L2NvZGU+PC9wPgoKICAgICAgICAgICAgPGgzPlR5cGVTY3JpcHQgRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IGh0bWwsIGNzcyB9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmZyb208L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+J0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc8L3NwYW4+OwoKPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW50ZXJmYWNlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy10aXRsZSI+SVVzZXI8L3NwYW4+IHsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5uYW1lPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ZW1haWw8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPjsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5hZ2U8L3NwYW4+PzogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPm51bWJlcjwvc3Bhbj47Cn0KCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy10aXRsZSI+Z2V0VXNlcjwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5hc3luYzwvc3Bhbj4gKDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmlkPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj4pOiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+UHJvbWlzZTwvc3Bhbj4mbHQ7SVVzZXImZ3Q7ID0mZ3Q7IHsKICA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gcmVzcG9uc2UgPSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5hd2FpdDwvc3Bhbj4gZmV0Y2goXGAvYXBpL3VzZXJzL1wke2lkfVxgKTsKICA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5yZXR1cm48L3NwYW4+IHJlc3BvbnNlLmpzb24oKTsKfTs8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDM+SlNPTiBFeGFtcGxlPC9oMz4KICAgICAgICAgICAgPHByZT48Y29kZT57CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+Im5hbWUiPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iZGVlcy1jYXRhbG9nIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+InZlcnNpb24iPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iMy4wLjAiPC9zcGFuPiwKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iZGVwZW5kZW5jaWVzIjwvc3Bhbj46IHsKICAgIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iXjIuMC4wIjwvc3Bhbj4KICB9Cn08L2NvZGU+PC9wcmU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDU6IFRhYmxlcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGFibGVzIn0KICAgICAgICAuc3VidGl0bGU9JHsiU3R5bGVkIHRhYmxlcyB3aXRoIGFsdGVybmF0aW5nIHJvd3MifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9Pnthd2FpdCBhLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRoPkZlYXR1cmU8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+U3RhdHVzPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlByaW9yaXR5PC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5EYXJrIG1vZGUgc3VwcG9ydDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Db21wbGV0ZWQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SGlnaDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+UmVzcG9uc2l2ZSBkZXNpZ248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TWVkaXVtPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5BY2Nlc3NpYmlsaXR5PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlBsYW5uZWQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SGlnaDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RG9jdW1lbnRhdGlvbjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5JbiBQcm9ncmVzczwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Mb3c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA2OiBCbG9ja3F1b3RlcyAmIEFsZXJ0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQmxvY2txdW90ZXMgJiBBbGVydHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJRdW90ZXMgYW5kIEdpdEh1Yi1zdHlsZSBhbGVydHMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGE9Pnthd2FpdCBhLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHN0YW5kYXJkIGJsb2NrcXVvdGUuIEl0J3MgZ3JlYXQgZm9yIGhpZ2hsaWdodGluZyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gb3IgcXVvdGVzIGZyb20gb3RoZXIgc291cmNlcy48L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LW5vdGUiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG5vdGUgdG8gZHJhdyBhdHRlbnRpb24gdG8gaW1wb3J0YW50IGRldGFpbHMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IEhlcmUncyBhIGhlbHBmdWwgdGlwIHRvIGltcHJvdmUgeW91ciB3b3JrZmxvdy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtaW1wb3J0YW50Ij4KICAgICAgICAgICAgICA8cD48c3Ryb25nPkltcG9ydGFudDo8L3N0cm9uZz4gVGhpcyBpbmZvcm1hdGlvbiBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB0b3BpYy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtd2FybmluZyI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBCZSBjYXJlZnVsIHdoZW4gcGVyZm9ybWluZyB0aGlzIGFjdGlvbi48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtY2F1dGlvbiI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5DYXV0aW9uOjwvc3Ryb25nPiBUaGlzIGFjdGlvbiBtYXkgaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNlcy48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA3OiBGdWxsIERvY3VtZW50IC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGdWxsIERvY3VtZW50In0KICAgICAgICAuc3VidGl0bGU9JHsiQSBjb21wbGV0ZSBtYXJrZG93biBkb2N1bWVudCBleGFtcGxlIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57YXdhaXQgYS5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5HZXR0aW5nIFN0YXJ0ZWQgR3VpZGU8L2gxPgogICAgICAgICAgICA8cD5XZWxjb21lIHRvIHRoZSA8c3Ryb25nPmRlZXMtY2F0YWxvZzwvc3Ryb25nPiBjb21wb25lbnQgbGlicmFyeS4gVGhpcyBndWlkZSB3aWxsIGhlbHAgeW91IGdldCB1cCBhbmQgcnVubmluZyBxdWlja2x5LjwvcD4KCiAgICAgICAgICAgIDxoMj5JbnN0YWxsYXRpb248L2gyPgogICAgICAgICAgICA8cD5JbnN0YWxsIHRoZSBwYWNrYWdlIHVzaW5nIHlvdXIgcHJlZmVycmVkIHBhY2thZ2UgbWFuYWdlcjo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+IyBVc2luZyBwbnBtIChyZWNvbW1lbmRlZCk8L3NwYW4+CnBucG0gYWRkIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZwoKPHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+IyBVc2luZyBucG08L3NwYW4+Cm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxoMj5CYXNpYyBVc2FnZTwvaDI+CiAgICAgICAgICAgIDxwPkltcG9ydCBhbmQgdXNlIGNvbXBvbmVudHMgaW4geW91ciBUeXBlU2NyaXB0IGZpbGVzOjwvcD4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbXBvcnQ8L3NwYW4+IHsgRGVlc0J1dHRvbiB9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmZyb208L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+J0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyc8L3NwYW4+OwoKPHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+Ly8gVXNlIGluIHlvdXIgdGVtcGxhdGVzPC9zcGFuPgpodG1sXGAmbHQ7ZGVlcy1idXR0b24mZ3Q7Q2xpY2sgbWUmbHQ7L2RlZXMtYnV0dG9uJmd0O1xgPC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtdGlwIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gQ2hlY2sgdGhlIGRlbW8gc2hvd2Nhc2UgZm9yIGxpdmUgZXhhbXBsZXMgb2YgYWxsIGNvbXBvbmVudHMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxoMj5BdmFpbGFibGUgQ29tcG9uZW50czwvaDI+CiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5Db21wb25lbnQ8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtYnV0dG9uPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QcmltYXJ5IGJ1dHRvbiBjb21wb25lbnQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtaW5wdXQtdGV4dDwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+VGV4dCBpbnB1dCBmaWVsZDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy10YWJsZTwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+RGF0YSB0YWJsZSB3aXRoIHNvcnRpbmc8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtbW9kYWw8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1vZGFsIGRpYWxvZzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICA8aDI+TmV4dCBTdGVwczwvaDI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+RXhwbG9yZSB0aGUgPGEgaHJlZj0iIyI+Y29tcG9uZW50IGRvY3VtZW50YXRpb248L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+Q2hlY2sgb3V0IHRoZSA8YSBocmVmPSIjIj50aGVtaW5nIGd1aWRlPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkpvaW4gb3VyIDxhIGhyZWY9IiMiPmNvbW11bml0eSBEaXNjb3JkPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8YmxvY2txdW90ZT4KICAgICAgICAgICAgICA8cD4iVGhlIGJlc3QgY29tcG9uZW50IGxpYnJhcnkgaXMgb25lIHRoYXQgZ2V0cyBvdXQgb2YgeW91ciB3YXkuIiBcdTIwMTQgRGVzaWduIFN5c3RlbXMgVGVhbTwvcD4KICAgICAgICAgICAgPC9ibG9ja3F1b3RlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBFTmEsSU5hLG51YSxsdWE9ZigoKT0+e2xlKCk7UWUoKTtvdWEoKTtFTmE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LElOYT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sbnVhPSgoKT0+e2xldCBhPVtpZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKV0sZSx0PVtdLHIsaT1wZTt2YXIgbz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiRGVlc1dvcmtzcGFjZU1hcmtkb3dub3V0bGV0Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7RU5hKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm59LG51bGwsdCksbz1yPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9c3RhdGljIGRlbW89aXVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bUGUsaC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNDI5MmYiLCIjZTZlZGYzIil9OwogICAgICB9CgogICAgICAub3V0bGV0IHsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRpbmdzICovCiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBmb250LXNpemU6IDJlbTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4zZW07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgzIHsKICAgICAgICBmb250LXNpemU6IDEuMjVlbTsKICAgICAgfQoKICAgICAgaDQgewogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICB9CgogICAgICBoNSB7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NWVtOwogICAgICB9CgogICAgICBoNiB7CiAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjU2ZDc2IiwiIzhiOTQ5ZSIpfTsKICAgICAgfQoKICAgICAgLyogUGFyYWdyYXBocyBhbmQgdGV4dCAqLwogICAgICBwIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIExpbmtzICovCiAgICAgIGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogU3Ryb25nIGFuZCBlbXBoYXNpcyAqLwogICAgICBzdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2YwZjZmYyIpfTsKICAgICAgfQoKICAgICAgZW0gewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLyogTGlzdHMgKi8KICAgICAgdWwsIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyZW07CiAgICAgIH0KCiAgICAgIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIGxpICsgbGkgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgdWwgdWwsIHVsIG9sLCBvbCB1bCwgb2wgb2wgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogQmxvY2txdW90ZXMgKi8KICAgICAgYmxvY2txdW90ZSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMTZweCAwOwogICAgICAgIHBhZGRpbmc6IDAgMWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGJsb2NrcXVvdGUgPiA6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIGJsb2NrcXVvdGUgPiA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogSW5saW5lIGNvZGUgKi8KICAgICAgY29kZSB7CiAgICAgICAgcGFkZGluZzogMC4yZW0gMC40ZW07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogODUlOwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgxNzUsIDE4NCwgMTkzLCAwLjIpIiwicmdiYSgxMTAsIDExOCwgMTI5LCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzOwogICAgICB9CgogICAgICAvKiBDb2RlIGJsb2NrcyAqLwogICAgICBwcmUgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGZvbnQtc2l6ZTogODUlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICB9CgogICAgICBwcmUgY29kZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgd29yZC13cmFwOiBub3JtYWw7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICB9CgogICAgICAvKiBUYWJsZXMgKi8KICAgICAgdGFibGUgewogICAgICAgIHdpZHRoOiBtYXgtY29udGVudDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1zcGFjaW5nOiAwOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRoIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHBhZGRpbmc6IDZweCAxM3B4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdGQgewogICAgICAgIHBhZGRpbmc6IDZweCAxM3B4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICB9CgogICAgICB0YWJsZSB0ciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMyMTI2MmQiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRyOm50aC1jaGlsZCgybikgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgfQoKICAgICAgLyogSG9yaXpvbnRhbCBydWxlcyAqLwogICAgICBociB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDI0cHggMDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogSW1hZ2VzICovCiAgICAgIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAvKiBUYXNrIGxpc3RzICovCiAgICAgIC50YXNrLWxpc3QtaXRlbSB7CiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgICB9CgogICAgICAudGFzay1saXN0LWl0ZW0gaW5wdXQgewogICAgICAgIG1hcmdpbjogMCAwLjJlbSAwLjI1ZW0gLTEuNGVtOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC8qIERlZmluaXRpb24gbGlzdHMgKi8KICAgICAgZGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIGRsIGR0IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIGRsIGRkIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLyogS2V5Ym9hcmQgaW5wdXQgKi8KICAgICAga2JkIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogM3B4IDVweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsICdTRiBNb25vJywgTWVubG8sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvb3Rub3RlcyAqLwogICAgICAuZm9vdG5vdGVzIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjU2ZDc2IiwiIzhiOTQ5ZSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgIH0KCiAgICAgIC8qIEFsZXJ0cy9BZG1vbml0aW9ucyAqLwogICAgICAubWFya2Rvd24tYWxlcnQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC1ub3RlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMDk2OWRhIiwiIzU4YTZmZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSg5LCAxMDUsIDIxOCwgMC4xKSIsInJnYmEoNTYsIDEzOSwgMjUzLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtd2FybmluZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2JmODcwMCIsIiNkMjk5MjIiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTkxLCAxMzUsIDAsIDAuMSkiLCJyZ2JhKDE4NywgMTI4LCA5LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtaW1wb3J0YW50IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjODI1MGRmIiwiI2EzNzFmNyIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgxMzAsIDgwLCAyMjMsIDAuMSkiLCJyZ2JhKDE2MywgMTEzLCAyNDcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC1jYXV0aW9uIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjY2YyMjJlIiwiI2Y4NTE0OSIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyMDcsIDM0LCA0NiwgMC4xKSIsInJnYmEoMjQ4LCA4MSwgNzMsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC10aXAgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMxYTdmMzciLCIjM2ZiOTUwIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDI2LCAxMjcsIDU1LCAwLjEpIiwicmdiYSg0NiwgMTYwLCA2NywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLyogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgY29kZSBibG9ja3MgKi8KICAgICAgLmhsanMtY29tbWVudCwKICAgICAgLmhsanMtcXVvdGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZhNzM3ZCIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLXRhZywKICAgICAgLmhsanMtYWRkaXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q3M2E0OSIsIiNmZjdiNzIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLW51bWJlciwKICAgICAgLmhsanMtc3RyaW5nLAogICAgICAuaGxqcy1tZXRhIC5obGpzLW1ldGEtc3RyaW5nLAogICAgICAuaGxqcy1saXRlcmFsLAogICAgICAuaGxqcy1kb2N0YWcsCiAgICAgIC5obGpzLXJlZ2V4cCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDMyZjYyIiwiI2E1ZDZmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtdGl0bGUsCiAgICAgIC5obGpzLXNlY3Rpb24sCiAgICAgIC5obGpzLW5hbWUsCiAgICAgIC5obGpzLXNlbGVjdG9yLWlkLAogICAgICAuaGxqcy1zZWxlY3Rvci1jbGFzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmY0MmMxIiwiI2QyYThmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYXR0cmlidXRlLAogICAgICAuaGxqcy1hdHRyLAogICAgICAuaGxqcy12YXJpYWJsZSwKICAgICAgLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsCiAgICAgIC5obGpzLWNsYXNzIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy10eXBlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDVjYzUiLCIjNzljMGZmIil9OwogICAgICB9CgogICAgICAuaGxqcy1zeW1ib2wsCiAgICAgIC5obGpzLWJ1bGxldCwKICAgICAgLmhsanMtc3Vic3QsCiAgICAgIC5obGpzLW1ldGEsCiAgICAgIC5obGpzLW1ldGEgLmhsanMta2V5d29yZCwKICAgICAgLmhsanMtc2VsZWN0b3ItYXR0ciwKICAgICAgLmhsanMtc2VsZWN0b3ItcHNldWRvLAogICAgICAuaGxqcy1saW5rIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlMzYyMDkiLCIjZmZhNjU3Iil9OwogICAgICB9CgogICAgICAuaGxqcy1idWlsdF9pbiwKICAgICAgLmhsanMtZGVsZXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2IzMWQyOCIsIiNmZmExOTgiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWZvcm11bGEgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtZW1waGFzaXMgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmhsanMtc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQogICAgYF07b3V0bGV0O3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJvdXRsZXQiPgogICAgICAgIDxoMT5NYXJrZG93biBQcmV2aWV3PC9oMT4KICAgICAgICA8cD5Db250ZW50IHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBtYXJrZG93biBpcyBwYXJzZWQuPC9wPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKG4pe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuKSx0aGlzLm91dGxldD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm91dGxldCIpfWFzeW5jIHVwZGF0ZUh0bWxUZXh0KG4pe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5vdXRsZXR8fCh0aGlzLm91dGxldD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm91dGxldCIpKSx0aGlzLm91dGxldC5pbm5lckhUTUw9bn1zdGF0aWN7SU5hKHIsdCl9fTtyZXR1cm4gbz1yfSkoKX0pO3ZhciBjdWE9ZigoKT0+e2x1YSgpfSk7dmFyIGR1YT1mKCgpPT57TUplKCl9KTt2YXIgdXVhPWYoKCk9PntTSmUoKX0pO3ZhciBwdWE9ZigoKT0+e1o2YSgpO1g2YSgpO1E2YSgpO2V1YSgpO3R1YSgpO3N1YSgpO2N1YSgpO2R1YSgpO3V1YSgpfSk7dmFyIGZ1YT1mKCgpPT57fSk7dmFyIGh1YT1mKCgpPT57ZnVhKCl9KTt2YXIgbXVhPWYoKCk9PntsZSgpfSk7dmFyIGd1YT1mKCgpPT57bXVhKCl9KTt2YXIgYnVhPWYoKCk9PntHaSgpO1FlKCk7WWxhKCk7aWNhKCk7YTBhKCk7azBhKCk7WTBhKCk7WDBhKCk7YjRhKCk7dTNhKCk7YmRhKCk7Q2RhKCk7bGllKCk7ejZhKCk7VjZhKCk7cHVhKCk7aHVhKCk7Z3VhKCl9KTt2YXIgdnVhLHh1YT1mKCgpPT57dnVhPXtuYW1lOiJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLHZlcnNpb246IjMuODIuMCIsZGVzY3JpcHRpb246IkEgY29tcHJlaGVuc2l2ZSBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgZHluYW1pYyB3ZWIgY29tcG9uZW50cyBmb3IgYnVpbGRpbmcgc29waGlzdGljYXRlZCBhbmQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgSmF2YVNjcmlwdCBhbmQgVHlwZVNjcmlwdC4ifX0pO3ZhciBoRz17fTtsdChoRyx7Q2FudmFzUG9vbDooKT0+Wm0sRGVlc0FjdGlvbmJhcjooKT0+UzBhLERlZXNBcHB1aTooKT0+UmxhLERlZXNBcHB1aUFjdGl2aXR5bG9nOigpPT4kcmEsRGVlc0FwcHVpQmFyOigpPT5VcmEsRGVlc0FwcHVpQm90dG9tYmFyOigpPT5LcmEsRGVlc0FwcHVpTWFpbmNvbnRlbnQ6KCk9Pk5sYSxEZWVzQXBwdWlNYWlubWVudTooKT0+TGxhLERlZXNBcHB1aVByb2ZpbGVEcm9wZG93bjooKT0+anJhLERlZXNBcHB1aVNlY29uZGFyeW1lbnU6KCk9PkFsYSxEZWVzQXBwdWlUYWJzOigpPT5JbGEsRGVlc0F1ZGlvVmlld2VyOigpPT52M2EsRGVlc0JhZGdlOigpPT5MMGEsRGVlc0J1dHRvbjooKT0+a2xhLERlZXNCdXR0b25FeGl0OigpPT5YbGEsRGVlc0J1dHRvbkdyb3VwOigpPT5hY2EsRGVlc0NoYXJ0QXJlYTooKT0+cGNhLERlZXNDaGFydEJhcjooKT0+emNhLERlZXNDaGFydERvbnV0OigpPT5QY2EsRGVlc0NoYXJ0R2F1Z2U6KCk9PkhjYSxEZWVzQ2hhcnRMb2c6KCk9PlVjYSxEZWVzQ2hhcnRSYWRhcjooKT0+ZTBhLERlZXNDaGlwczooKT0+eTRhLERlZXNDb250ZXh0bWVudTooKT0+dGEsRGVlc0Rhc2hib2FyZGdyaWQ6KCk9PkY0YSxEZWVzRGF0YXZpZXdDb2RlYm94OigpPT5pMGEsRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0OigpPT5kMGEsRGVlc0Zvcm06KCk9PnlsYSxEZWVzRm9ybVN1Ym1pdDooKT0+b2FlLERlZXNGb3JtYXR0aW5nTWVudTooKT0+U2FlLERlZXNIZWFkaW5nOigpPT5VNGEsRGVlc0hpbnQ6KCk9PkkwYSxEZWVzSWNvbjooKT0+U3JhLERlZXNJbWFnZVZpZXdlcjooKT0+aDNhLERlZXNJbnB1dEJhc2U6KCk9Pk10LERlZXNJbnB1dENoZWNrYm94OigpPT5HdGUsRGVlc0lucHV0Q29kZTooKT0+UXRlLERlZXNJbnB1dERhdGVwaWNrZXI6KCk9PmVhZSxEZWVzSW5wdXREYXRlcGlja2VyUG9wdXA6KCk9Pkp0ZSxEZWVzSW5wdXREcm9wZG93bjooKT0+bGFlLERlZXNJbnB1dERyb3Bkb3duUG9wdXA6KCk9Pm5hZSxEZWVzSW5wdXRGaWxldXBsb2FkOigpPT5kYWUsRGVlc0lucHV0SWJhbjooKT0+aGFlLERlZXNJbnB1dExpc3Q6KCk9PndhZSxEZWVzSW5wdXRNdWx0aXRvZ2dsZTooKT0+bWFlLERlZXNJbnB1dFBob25lOigpPT5iYWUsRGVlc0lucHV0UHJvZmlsZVBpY3R1cmU6KCk9Pmc0YSxEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yOigpPT5yYWUsRGVlc0lucHV0UmFkaW9ncm91cDooKT0+c2FlLERlZXNJbnB1dFJpY2h0ZXh0OigpPT5Pc2UsRGVlc0lucHV0VGFnczooKT0+eWFlLERlZXNJbnB1dFRleHQ6KCk9PmFhZSxEZWVzSW5wdXRUb2dnbGU6KCk9PnZhZSxEZWVzSW5wdXRUeXBlbGlzdDooKT0+eGFlLERlZXNJbnB1dFd5c2l3eWc6KCk9PmpXLERlZXNMYWJlbDooKT0+ZnNhLERlZXNNb2JpbGVuYXZpZ2F0aW9uOigpPT5VbGEsRGVlc01vZGFsOigpPT5NYSxEZWVzUGFnaW5hdGlvbjooKT0+WDRhLERlZXNQYW5lbDooKT0+ZXNhLERlZXNQZGZWaWV3ZXI6KCk9PlQzYSxEZWVzUHJldmlldzooKT0+QTNhLERlZXNQcm9ncmVzc2JhcjooKT0+QjBhLERlZXNTZWFyY2hiYXI6KCk9PiQ2YSxEZWVzU2V0dGluZ3M6KCk9PnIzYSxEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZDooKT0+enNhLERlZXNTaW1wbGVBcHBEYXNoOigpPT5nNmEsRGVlc1NpbXBsZUxvZ2luOigpPT5NNmEsRGVlc1NsYXNoTWVudTooKT0+TWFlLERlZXNTcGVlY2hidWJibGU6KCk9Pk1kYSxEZWVzU3Bpbm5lcjooKT0+cTBhLERlZXNTdGF0c0dyaWQ6KCk9PlNsYSxEZWVzU3RlcHBlcjooKT0+S20sRGVlc1N0b3JhZ2VCcm93c2VyOigpPT55MGEsRGVlc1N0b3JhZ2VDb2x1bW5zOigpPT5iMGEsRGVlc1N0b3JhZ2VLZXlzOigpPT52MGEsRGVlc1N0b3JhZ2VQcmV2aWV3OigpPT54MGEsRGVlc1RhYmxlOigpPT5Cc2UsRGVlc1RoZW1lOigpPT5JNmEsRGVlc1RodW1ibmFpbEF1ZGlvOigpPT5RM2EsRGVlc1RodW1ibmFpbEJhc2U6KCk9PmxvLERlZXNUaHVtYm5haWxGb2xkZXI6KCk9PmhkYSxEZWVzVGh1bWJuYWlsSW1hZ2U6KCk9PkczYSxEZWVzVGh1bWJuYWlsTm90ZTooKT0+bGRhLERlZXNUaHVtYm5haWxQZGY6KCk9PnEzYSxEZWVzVGh1bWJuYWlsVmlkZW86KCk9PnJkYSxEZWVzVGlsZTooKT0+ZHNhLERlZXNUb2FzdDooKT0+QWEsRGVlc1VwZGF0ZXI6KCk9PmNpZSxEZWVzVmlkZW9WaWV3ZXI6KCk9Pk0zYSxEZWVzV2luZG93Q29udHJvbHM6KCk9PlZyYSxEZWVzV2luZG93TGF5ZXI6KCk9PkdzLERlZXNXb3Jrc3BhY2U6KCk9Plk2YSxEZWVzV29ya3NwYWNlQm90dG9tYmFyOigpPT5XNmEsRGVlc1dvcmtzcGFjZURpZmZFZGl0b3I6KCk9Pkc2YSxEZWVzV29ya3NwYWNlRmlsZXRyZWU6KCk9Pmo2YSxEZWVzV29ya3NwYWNlTWFya2Rvd246KCk9PmF1YSxEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQ6KCk9Pm51YSxEZWVzV29ya3NwYWNlTW9uYWNvOigpPT5oc2EsRGVlc1dvcmtzcGFjZVRlcm1pbmFsOigpPT5oSmUsRGVlc1dvcmtzcGFjZVRlcm1pbmFsUHJldmlldzooKT0+VTZhLERlZXNXeXNpd3lnQmxvY2s6KCk9PkoyYSxQUk9HUkFNTUlOR19MQU5HVUFHRVM6KCk9PkVVLFBkZk1hbmFnZXI6KCk9PmxsLFBlcmZvcm1hbmNlTW9uaXRvcjooKT0+WG0sVGVybWluYWxUYWJNYW5hZ2VyOigpPT5jRyxUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlcjooKT0+cEcsVmlld1JlZ2lzdHJ5OigpPT5VVyxXZWJDb250YWluZXJFbnZpcm9ubWVudDooKT0+eDUsV3lzaXd5Z0Jsb2NrT3BlcmF0aW9uczooKT0+SVUsV3lzaXd5Z0Jsb2NrczooKT0+c2ksV3lzaXd5Z0NvbnZlcnRlcnM6KCk9PkluLFd5c2l3eWdEcmFnRHJvcEhhbmRsZXI6KCk9PkhXLFd5c2l3eWdGb3JtYXR0aW5nOigpPT5mYyxXeXNpd3lnSGlzdG9yeTooKT0+cVcsV3lzaXd5Z0lucHV0SGFuZGxlcjooKT0+RlcsV3lzaXd5Z0tleWJvYXJkSGFuZGxlcjooKT0+QlcsV3lzaXd5Z01vZGFsTWFuYWdlcjooKT0+T1csV3lzaXd5Z1NlbGVjdGlvbjooKT0+cnQsV3lzaXd5Z1Nob3J0Y3V0czooKT0+ZXMsWkluZGV4UmVnaXN0cnk6KCk9PldKLGNvbG9yczooKT0+dG0sY29tbWl0aW5mbzooKT0+dnVhLGNvbXBvbmVudFpJbmRleDooKT0+akNhLGRlYm91bmNlOigpPT5zTmEsZm9ybWF0Q291bnQ6KCk9PmcwYSxmb3JtYXRGaWxlU2l6ZTooKT0+QlFlLGZvcm1hdFNpemU6KCk9PlVtLGdldENvbnRlbnRUeXBlOigpPT5FNCxnZXREZWZhdWx0Q29udGVudDooKT0+R20sZ2V0RmlsZU5hbWU6KCk9Pm1hLGdldFBhcmVudFByZWZpeDooKT0+ajEsZ2V0UGF0aFNlZ21lbnRzOigpPT5wNSxnZXRaSW5kZXg6KCk9PlZDYSxpY29uczooKT0+anRlLGlzSW5WaWV3cG9ydDooKT0+b05hLHJlZ2lzdGVyQWxsQmxvY2tIYW5kbGVyczooKT0+WTJhLHRoZW1lRGVmYXVsdFN0eWxlczooKT0+UGUsdGhlbWVEZWZhdWx0czooKT0+ZW4sdGhyb3R0bGU6KCk9PmlOYSx0aHVtYm5haWxCYXNlU3R5bGVzOigpPT5CaSx2YWxpZGF0ZU1vdmU6KCk9PldtLHd5c2l3eWdTdHlsZXM6KCk9PkpZZSx6SW5kZXhMYXllcnM6KCk9PlBzLHpJbmRleFJlZ2lzdHJ5OigpPT5YdH0pO3ZhciB6SmU9ZigoKT0+e2J1YSgpO0wxKCk7eHVhKCl9KTt2YXIgQ0plLG1HLE5OYSxfSmU9ZigoKT0+e2xlKCk7Q0plPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxtRz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sTk5hPSgoKT0+e2xldCBhPVtpZSgic3otcmVzb3VyY2UtdXNhZ2UtY2FyZCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdO3ZhciB1PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTelJlc291cmNlVXNhZ2VDYXJkIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sQ0plKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iZGF0YSJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LmRhdGEsImdldCIpLHNldDpzKCh2LHgpPT57di5kYXRhPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbixsKSxDSmUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InNlcnZpY2VDb3VudCJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LnNlcnZpY2VDb3VudCwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LnNlcnZpY2VDb3VudD14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksQ0plKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXJlc291cmNlLXVzYWdlLWNhcmQKICAgICAgICAuZGF0YT0ke3tjcHU6LjUsbWVtb3J5VXNlZDoiMTkxIE1CIixtZW1vcnlUb3RhbDoiNDI5LjIgR0IiLG5ldHdvcmtJbjoiMzguOSBLQi9zIixuZXR3b3JrT3V0OiIxLjcgS0IvcyIsdG9wQ29uc3VtZXJzOlt7bmFtZToidGVzdC1uZ2lueCIsbWVtb3J5OiIzMi4xIE1CIn0se25hbWU6InRlc3QtdjIiLG1lbW9yeToiMzEuNyBNQiJ9XX19CiAgICAgICAgc2VydmljZUNvdW50PSI3IgogICAgICA+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9bUcodGhpcyxuLHtjcHU6MCxtZW1vcnlVc2VkOiIwIE1CIixtZW1vcnlUb3RhbDoiMCBHQiIsbmV0d29ya0luOiIwIEtCL3MiLG5ldHdvcmtPdXQ6IjAgS0IvcyIsdG9wQ29uc3VtZXJzOltdfSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShtKXt0aGlzLiNlPW19I3Q9KG1HKHRoaXMsbCksbUcodGhpcyxjLCIwIikpO2dldCBzZXJ2aWNlQ291bnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VydmljZUNvdW50KG0pe3RoaXMuI3Q9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC52aWV3LWFsbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnZpZXctYWxsOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLm1ldHJpY3MgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAubWV0cmljLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm5ldHdvcmstaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubmV0d29yay1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLWljb24uZG93biB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLm5ldHdvcmstaWNvbi51cCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnRvcC1jb25zdW1lcnMgewogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuY29uc3VtZXJzLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CiAgICAgIH0KCiAgICAgIC5jb25zdW1lcnMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuY29uc3VtZXItaXRlbSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jb25zdW1lci1uYW1lIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5SZXNvdXJjZSBVc2FnZTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+QWdncmVnYXRlZCBhY3Jvc3MgJHt0aGlzLnNlcnZpY2VDb3VudH0gc2VydmljZXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGEgY2xhc3M9InZpZXctYWxsIj5WaWV3IEFsbDwvYT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljcyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWhlYWRlciI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+Q1BVPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLmNwdS50b0ZpeGVkKDEpfSU8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwiIHN0eWxlPSJ3aWR0aDogJHtNYXRoLm1pbih0aGlzLmRhdGEuY3B1LDEwMCl9JSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPk1lbW9yeTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5tZW1vcnlVc2VkfSAvICR7dGhpcy5kYXRhLm1lbW9yeVRvdGFsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZmlsbCIgc3R5bGU9IndpZHRoOiAke3RoaXMuY2FsY3VsYXRlTWVtb3J5UGVyY2VudCgpfSUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5OZXR3b3JrPC9zcGFuPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ldHdvcmstcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuZXR3b3JrLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJuZXR3b3JrLWljb24gZG93biIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgNXYxNE0xOSAxMmwtNyA3LTctNyIvPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmRhdGEubmV0d29ya0lufQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ldHdvcmstaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Im5ldHdvcmstaWNvbiB1cCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMTlWNU01IDEybDctNyA3IDciLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5kYXRhLm5ldHdvcmtPdXR9CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5kYXRhLnRvcENvbnN1bWVycy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9wLWNvbnN1bWVycyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnN1bWVycy1sYWJlbCI+VG9wIGNvbnN1bWVyczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25zdW1lcnMtbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLmRhdGEudG9wQ29uc3VtZXJzLm1hcChtPT53YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29uc3VtZXItaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnN1bWVyLW5hbWUiPiR7bS5uYW1lfTo8L3NwYW4+ICR7bS5tZW1vcnl9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1jYWxjdWxhdGVNZW1vcnlQZXJjZW50KCl7bGV0IG09cGFyc2VGbG9hdCh0aGlzLmRhdGEubWVtb3J5VXNlZCksdj1wYXJzZUZsb2F0KHRoaXMuZGF0YS5tZW1vcnlUb3RhbCk7cmV0dXJuIHY9PT0wPzA6TWF0aC5taW4obS92KjEwMCwxMDApfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxtRyh0aGlzLHApfXN0YXRpY3ttRyhyLHQpfX07cmV0dXJuIHU9cn0pKCl9KTt2YXIgeXVhLFRKZSxSTmEsTEplPWYoKCk9PntsZSgpO3l1YT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sVEplPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxSTmE9KCgpPT57bGV0IGE9W2llKCJzei10cmFmZmljLWNhcmQiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pUcmFmZmljQ2FyZCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6T2JqZWN0fSldLHl1YSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+ImRhdGEiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5kYXRhLCJnZXQiKSxzZXQ6cygocCx1KT0+e3AuZGF0YT11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCkseXVhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNTAwcHg7Ij4KICAgICAgPHN6LXRyYWZmaWMtY2FyZAogICAgICAgIC5kYXRhPSR7e3JlcXVlc3RzOjEyNTAsZXJyb3JzOjE1LGVycm9yUGVyY2VudDoxLjIsYXZnUmVzcG9uc2U6MTQ1LHJlcVBlck1pbjoyMSxzdGF0dXMyeHg6ODUsc3RhdHVzM3h4OjUsc3RhdHVzNHh4Ojgsc3RhdHVzNXh4OjJ9fQogICAgICA+PC9zei10cmFmZmljLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT1USmUodGhpcyxuLHtyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9KTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFyLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1zZWdtZW50IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0YXR1cy0yeHggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy0zeHggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy00eHggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFjYzE1IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy01eHggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1sZWdlbmQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAubGVnZW5kLWl0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgYz10aGlzLmRhdGEuc3RhdHVzMnh4K3RoaXMuZGF0YS5zdGF0dXMzeHgrdGhpcy5kYXRhLnN0YXR1czR4eCt0aGlzLmRhdGEuc3RhdHVzNXh4LHA9Yz4wP3RoaXMuZGF0YS5zdGF0dXMyeHgvYyoxMDA6MCx1PWM+MD90aGlzLmRhdGEuc3RhdHVzM3h4L2MqMTAwOjAsbT1jPjA/dGhpcy5kYXRhLnN0YXR1czR4eC9jKjEwMDowLHY9Yz4wP3RoaXMuZGF0YS5zdGF0dXM1eHgvYyoxMDA6MDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5UcmFmZmljIChMYXN0IEhvdXIpPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+UmVxdWVzdCBtZXRyaWNzIGZyb20gYWNjZXNzIGxvZ3M8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljcyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5SZXF1ZXN0czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmZvcm1hdE51bWJlcih0aGlzLmRhdGEucmVxdWVzdHMpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+RXJyb3JzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5lcnJvcnN9ICgke3RoaXMuZGF0YS5lcnJvclBlcmNlbnR9JSk8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPkF2ZyBSZXNwb25zZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEuYXZnUmVzcG9uc2V9bXM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPlJlcS9taW48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLnJlcVBlck1pbn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWJhci1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1zZWdtZW50IHN0YXR1cy0yeHgiIHN0eWxlPSJ3aWR0aDogJHtwfSUiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtc2VnbWVudCBzdGF0dXMtM3h4IiBzdHlsZT0id2lkdGg6ICR7dX0lIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLXNlZ21lbnQgc3RhdHVzLTR4eCIgc3R5bGU9IndpZHRoOiAke219JSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1zZWdtZW50IHN0YXR1cy01eHgiIHN0eWxlPSJ3aWR0aDogJHt2fSUiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtbGVnZW5kIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZC1pdGVtIj4yeHg8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmQtaXRlbSI+M3h4PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjR4eDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZC1pdGVtIj41eHg8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWZvcm1hdE51bWJlcihjKXtyZXR1cm4gYz49MWU2PyhjLzFlNikudG9GaXhlZCgxKSsiTSI6Yz49MWUzPyhjLzFlMykudG9GaXhlZCgxKSsiSyI6Yy50b1N0cmluZygpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxUSmUodGhpcyxsKX1zdGF0aWN7VEplKHIsdCl9fTtyZXR1cm4gZD1yfSkoKX0pO3ZhciB3dWEsJEplLE9OYSxESmU9ZigoKT0+e2xlKCk7d3VhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSwkSmU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LE9OYT0oKCk9PntsZXQgYT1baWUoInN6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pQbGF0Zm9ybVNlcnZpY2VzQ2FyZCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sd3VhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+InNlcnZpY2VzImluIHAsImhhcyIpLGdldDpzKHA9PnAuc2VydmljZXMsImdldCIpLHNldDpzKChwLHUpPT57cC5zZXJ2aWNlcz11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksd3VhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNTAwcHg7Ij4KICAgICAgPHN6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQKICAgICAgICAuc2VydmljZXM9JHtbe25hbWU6Ik1vbmdvREIiLHN0YXR1czoiMSBEQiIscnVubmluZzohMH0se25hbWU6IlMzIFN0b3JhZ2UgKE1pbklPKSIsc3RhdHVzOiIxIGJ1Y2tldCIscnVubmluZzohMH0se25hbWU6IlNtYXJ0UHJveHkgUmV2ZXJzZSBQcm94eSIsc3RhdHVzOiJSdW5uaW5nIixydW5uaW5nOiEwfSx7bmFtZToiQ2xpY2tIb3VzZSIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfV19CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJQbGF0Zm9ybSJdOyNlPSRKZSh0aGlzLG4sW10pO2dldCBzZXJ2aWNlcygpe3JldHVybiB0aGlzLiNlfXNldCBzZXJ2aWNlcyhjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuc2VydmljZXMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc2VydmljZS1pdGVtOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggJHtoLmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuNCkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjQpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLXN0YXR1cyB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlBsYXRmb3JtIFNlcnZpY2VzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+SW5mcmFzdHJ1Y3R1cmUgc3RhdHVzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2VzLWxpc3QiPgogICAgICAgICAgJHt0aGlzLnNlcnZpY2VzLm1hcChjPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaXRlbSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU2VydmljZUNsaWNrKGMpfT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbGVmdCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1kb3QgJHtjLnJ1bm5pbmc/InJ1bm5pbmciOiJzdG9wcGVkIn0iPjwvZGl2PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VydmljZS1uYW1lIj4ke2MubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZXJ2aWNlLXN0YXR1cyI+JHtjLnN0YXR1c308L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU2VydmljZUNsaWNrKGMpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlcnZpY2UtY2xpY2siLHtkZXRhaWw6YyxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSwkSmUodGhpcyxsKX1zdGF0aWN7JEplKHIsdCl9fTtyZXR1cm4gZD1yfSkoKX0pO3ZhciB1aWUsazUsRk5hLEFKZT1mKCgpPT57bGUoKTt1aWU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGs1PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxGTmE9KCgpPT57bGV0IGE9W2llKCJzei1jZXJ0aWZpY2F0ZXMtY2FyZCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTekNlcnRpZmljYXRlc0NhcmQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk51bWJlcn0pXSxkPVskKHt0eXBlOk51bWJlcn0pXSx1PVskKHt0eXBlOk51bWJlcn0pXSx1aWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZENvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJ2YWxpZENvdW50ImluIGcsImhhcyIpLGdldDpzKGc9PmcudmFsaWRDb3VudCwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnZhbGlkQ291bnQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLHVpZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4cGlyaW5nQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+ImV4cGlyaW5nQ291bnQiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5leHBpcmluZ0NvdW50LCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuZXhwaXJpbmdDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCksdWllKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhwaXJlZENvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJleHBpcmVkQ291bnQiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5leHBpcmVkQ291bnQsImdldCIpLHNldDpzKChnLHkpPT57Zy5leHBpcmVkQ291bnQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxtLHYpLHVpZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLHg9cj1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQgdmFsaWRDb3VudD0iMiI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgICAgPHN6LWNlcnRpZmljYXRlcy1jYXJkIHZhbGlkQ291bnQ9IjUiIGV4cGlyaW5nQ291bnQ9IjIiPjwvc3otY2VydGlmaWNhdGVzLWNhcmQ+CiAgICAgIDxzei1jZXJ0aWZpY2F0ZXMtY2FyZCB2YWxpZENvdW50PSIwIiBleHBpcmVkQ291bnQ9IjEiPjwvc3otY2VydGlmaWNhdGVzLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9azUodGhpcyxuLDApO2dldCB2YWxpZENvdW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbGlkQ291bnQoYil7dGhpcy4jZT1ifSN0PShrNSh0aGlzLGwpLGs1KHRoaXMsYywwKSk7Z2V0IGV4cGlyaW5nQ291bnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZXhwaXJpbmdDb3VudChiKXt0aGlzLiN0PWJ9I2E9KGs1KHRoaXMscCksazUodGhpcyxtLDApKTtnZXQgZXhwaXJlZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGV4cGlyZWRDb3VudChiKXt0aGlzLiNhPWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtaWNvbi52YWxpZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhY2MxNSIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtaWNvbi5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkNlcnRpZmljYXRlczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPlNTTC9UTFMgY2VydGlmaWNhdGUgc3RhdHVzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1saXN0Ij4KICAgICAgICAgICR7dGhpcy52YWxpZENvdW50PjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzIj4KICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJzdGF0dXMtaWNvbiB2YWxpZCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtdGV4dCI+JHt0aGlzLnZhbGlkQ291bnR9IHZhbGlkPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLmV4cGlyaW5nQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIHdhcm5pbmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjkgMy44NkwxLjgyIDE4YTIgMiAwIDAgMCAxLjcxIDNoMTYuOTRhMiAyIDAgMCAwIDEuNzEtM0wxMy43MSAzLjg2YTIgMiAwIDAgMC0zLjQyIDB6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI5IiB4Mj0iMTIiIHkyPSIxMyI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMi4wMSIgeTI9IjE3Ij48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij4ke3RoaXMuZXhwaXJpbmdDb3VudH0gZXhwaXJpbmcgc29vbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgICR7dGhpcy5leHBpcmVkQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIGVycm9yIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE1IiB5MT0iOSIgeDI9IjkiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSI5IiB4Mj0iMTUiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtdGV4dCI+JHt0aGlzLmV4cGlyZWRDb3VudH0gZXhwaXJlZDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgICR7dGhpcy52YWxpZENvdW50PT09MCYmdGhpcy5leHBpcmluZ0NvdW50PT09MCYmdGhpcy5leHBpcmVkQ291bnQ9PT0wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij5ObyBjZXJ0aWZpY2F0ZXM8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxrNSh0aGlzLHYpfXN0YXRpY3trNShyLHQpfX07cmV0dXJuIHg9cn0pKCl9KTt2YXIgaTcsUTEsQk5hLFBKZT1mKCgpPT57bGUoKTtpNz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sUTE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LEJOYT0oKCk9PntsZXQgYT1baWUoInN6LXJldmVyc2UtcHJveHktY2FyZCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTelJldmVyc2VQcm94eUNhcmQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOlN0cmluZ30pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOkJvb2xlYW59KV0seD1bJCh7dHlwZTpCb29sZWFufSldLHk9WyQoe3R5cGU6U3RyaW5nfSldLGk3KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaHR0cFBvcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+Imh0dHBQb3J0ImluIHosImhhcyIpLGdldDpzKHo9PnouaHR0cFBvcnQsImdldCIpLHNldDpzKCh6LE8pPT57ei5odHRwUG9ydD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG4sbCksaTcodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwc1BvcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+Imh0dHBzUG9ydCJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56Lmh0dHBzUG9ydCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6Lmh0dHBzUG9ydD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGMscCksaTcodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwQWN0aXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJodHRwQWN0aXZlImluIHosImhhcyIpLGdldDpzKHo9PnouaHR0cEFjdGl2ZSwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6Lmh0dHBBY3RpdmU9T30sInNldCIpfSxtZXRhZGF0YTpffSxtLHYpLGk3KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaHR0cHNBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+Imh0dHBzQWN0aXZlImluIHosImhhcyIpLGdldDpzKHo9PnouaHR0cHNBY3RpdmUsImdldCIpLHNldDpzKCh6LE8pPT57ei5odHRwc0FjdGl2ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksaTcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJyb3V0ZUNvdW50ImluIHosImhhcyIpLGdldDpzKHo9Pnoucm91dGVDb3VudCwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnJvdXRlQ291bnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLEMpLGk3KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsdCksTj1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNDAwcHg7Ij4KICAgICAgPHN6LXJldmVyc2UtcHJveHktY2FyZAogICAgICAgIGh0dHBQb3J0PSI4MDgwIgogICAgICAgIGh0dHBzUG9ydD0iODQ0MyIKICAgICAgICBodHRwQWN0aXZlCiAgICAgICAgaHR0cHNBY3RpdmUKICAgICAgICByb3V0ZUNvdW50PSIzIgogICAgICA+PC9zei1yZXZlcnNlLXByb3h5LWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9UTEodGhpcyxuLCI4MCIpO2dldCBodHRwUG9ydCgpe3JldHVybiB0aGlzLiNlfXNldCBodHRwUG9ydChfKXt0aGlzLiNlPV99I3Q9KFExKHRoaXMsbCksUTEodGhpcyxjLCI0NDMiKSk7Z2V0IGh0dHBzUG9ydCgpe3JldHVybiB0aGlzLiN0fXNldCBodHRwc1BvcnQoXyl7dGhpcy4jdD1ffSNhPShRMSh0aGlzLHApLFExKHRoaXMsbSwhMSkpO2dldCBodHRwQWN0aXZlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGh0dHBBY3RpdmUoXyl7dGhpcy4jYT1ffSNyPShRMSh0aGlzLHYpLFExKHRoaXMsYiwhMSkpO2dldCBodHRwc0FjdGl2ZSgpe3JldHVybiB0aGlzLiNyfXNldCBodHRwc0FjdGl2ZShfKXt0aGlzLiNyPV99I3M9KFExKHRoaXMsZyksUTEodGhpcyxrLCIwIikpO2dldCByb3V0ZUNvdW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHJvdXRlQ291bnQoXyl7dGhpcy4jcz1ffXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLml0ZW1zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAuaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLml0ZW0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaXRlbS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYmFkZ2UuaW5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5SZXZlcnNlIFByb3h5PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+SFRUUC9IVFRQUyBwcm94eSBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaXRlbXMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5IVFRQICgke3RoaXMuaHR0cFBvcnR9KTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7dGhpcy5odHRwQWN0aXZlPyJhY3RpdmUiOiJpbmFjdGl2ZSJ9Ij4KICAgICAgICAgICAgICAke3RoaXMuaHR0cEFjdGl2ZT8iQWN0aXZlIjoiSW5hY3RpdmUifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS1sYWJlbCI+SFRUUFMgKCR7dGhpcy5odHRwc1BvcnR9KTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7dGhpcy5odHRwc0FjdGl2ZT8iYWN0aXZlIjoiaW5hY3RpdmUifSI+CiAgICAgICAgICAgICAgJHt0aGlzLmh0dHBzQWN0aXZlPyJBY3RpdmUiOiJJbmFjdGl2ZSJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLWxhYmVsIj5Sb3V0ZXM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXZhbHVlIj4ke3RoaXMucm91dGVDb3VudH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxRMSh0aGlzLEMpfXN0YXRpY3tRMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgRUplLGdHLEhOYSxJSmU9ZigoKT0+e2xlKCk7RUplPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxnRz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sSE5hPSgoKT0+e2xldCBhPVtpZSgic3otZG5zLXNzbC1jYXJkIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6RG5zU3NsQ2FyZCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6Qm9vbGVhbn0pXSxkPVskKHt0eXBlOkJvb2xlYW59KV0sRUplKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG5zQ29uZmlndXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iZG5zQ29uZmlndXJlZCJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LmRuc0NvbmZpZ3VyZWQsImdldCIpLHNldDpzKCh2LHgpPT57di5kbnNDb25maWd1cmVkPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbixsKSxFSmUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY21lQ29uZmlndXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iYWNtZUNvbmZpZ3VyZWQiaW4gdiwiaGFzIiksZ2V0OnModj0+di5hY21lQ29uZmlndXJlZCwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LmFjbWVDb25maWd1cmVkPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxFSmUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA0MDBweDsiPgogICAgICA8c3otZG5zLXNzbC1jYXJkCiAgICAgICAgZG5zQ29uZmlndXJlZAogICAgICAgIGFjbWVDb25maWd1cmVkCiAgICAgID48L3N6LWRucy1zc2wtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1nRyh0aGlzLG4sITEpO2dldCBkbnNDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRuc0NvbmZpZ3VyZWQobSl7dGhpcy4jZT1tfSN0PShnRyh0aGlzLGwpLGdHKHRoaXMsYywhMSkpO2dldCBhY21lQ29uZmlndXJlZCgpe3JldHVybiB0aGlzLiN0fXNldCBhY21lQ29uZmlndXJlZChtKXt0aGlzLiN0PW19c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuaXRlbS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5jb25maWd1cmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5ub3QtY29uZmlndXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkROUyAmIFNTTDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPkNvbmZpZ3VyYXRpb24gc3RhdHVzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Iml0ZW1zIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS1sYWJlbCI+Q2xvdWRmbGFyZSBETlM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3RoaXMuZG5zQ29uZmlndXJlZD8iY29uZmlndXJlZCI6Im5vdC1jb25maWd1cmVkIn0iPgogICAgICAgICAgICAgICR7dGhpcy5kbnNDb25maWd1cmVkPyJDb25maWd1cmVkIjoiTm90IGNvbmZpZ3VyZWQifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS1sYWJlbCI+QUNNRSAoTGV0J3MgRW5jcnlwdCk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3RoaXMuYWNtZUNvbmZpZ3VyZWQ/ImNvbmZpZ3VyZWQiOiJub3QtY29uZmlndXJlZCJ9Ij4KICAgICAgICAgICAgICAke3RoaXMuYWNtZUNvbmZpZ3VyZWQ/IkNvbmZpZ3VyZWQiOiJOb3QgY29uZmlndXJlZCJ9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGdHKHRoaXMscCl9c3RhdGlje2dHKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBNdWEsTkplLHFOYSxSSmU9ZigoKT0+e2xlKCk7TXVhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxOSmU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHFOYT0oKCk9PntsZXQgYT1baWUoInN6LXF1aWNrLWFjdGlvbnMtY2FyZCIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTelF1aWNrQWN0aW9uc0NhcmQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLE11YSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+ImFjdGlvbnMiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5hY3Rpb25zLCJnZXQiKSxzZXQ6cygocCx1KT0+e3AuYWN0aW9ucz11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksTXVhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXF1aWNrLWFjdGlvbnMtY2FyZAogICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246InBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiVmlldyBBbGwgU2VydmljZXMifSx7bGFiZWw6IlBsYXRmb3JtIFNlcnZpY2VzIn0se2xhYmVsOiJNYW5hZ2UgRG9tYWlucyJ9XX0KICAgICAgPjwvc3otcXVpY2stYWN0aW9ucy1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9TkplKHRoaXMsbixbXSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYWN0aW9ucyhjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxZDRlZDgiLCIjMjU2M2ViIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24taWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5RdWljayBBY3Rpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+Q29tbW9uIHRhc2tzIGFuZCBzaG9ydGN1dHM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgICAke3RoaXMuYWN0aW9ucy5tYXAoYz0+d2AKICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke2MucHJpbWFyeT8icHJpbWFyeSI6InNlY29uZGFyeSJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uQ2xpY2soYyl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtjLmljb249PT0icGx1cyI/d2AKICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iYWN0aW9uLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAke2MubGFiZWx9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQWN0aW9uQ2xpY2soYyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOmMsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTkplKHRoaXMsbCl9c3RhdGlje05KZShyLHQpfX07cmV0dXJuIGQ9cn0pKCl9KTt2YXIga3VhLE9KZSxWTmEsRkplPWYoKCk9PntsZSgpO2t1YT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sT0plPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxWTmE9KCgpPT57bGV0IGE9W2llKCJzei1zdGF0dXMtZ3JpZC1jbHVzdGVyIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6U3RhdHVzR3JpZENsdXN0ZXIiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxrdWEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4ic3RhdHMiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5zdGF0cywiZ2V0Iiksc2V0OnMoKHAsdSk9PntwLnN0YXRzPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxrdWEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA5MDBweDsiPgogICAgICA8c3otc3RhdHVzLWdyaWQtY2x1c3RlcgogICAgICAgIC5zdGF0cz0ke3t0b3RhbFNlcnZpY2VzOjcscnVubmluZzo3LHN0b3BwZWQ6MCxkb2NrZXJTdGF0dXM6InJ1bm5pbmcifX0KICAgICAgPjwvc3otc3RhdHVzLWdyaWQtY2x1c3Rlcj4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPU9KZSh0aGlzLG4se3RvdGFsU2VydmljZXM6MCxydW5uaW5nOjAsc3RvcHBlZDowLGRvY2tlclN0YXR1czoic3RvcHBlZCJ9KTtnZXQgc3RhdHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RhdHMoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgIGBdO2dldCB0aWxlcygpe3JldHVyblt7aWQ6InRvdGFsIix0aXRsZToiVG90YWwgU2VydmljZXMiLHZhbHVlOnRoaXMuc3RhdHMudG90YWxTZXJ2aWNlcyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzZXJ2ZXIifSx7aWQ6InJ1bm5pbmciLHRpdGxlOiJSdW5uaW5nIix2YWx1ZTp0aGlzLnN0YXRzLnJ1bm5pbmcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2hlY2siLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJzdG9wcGVkIix0aXRsZToiU3RvcHBlZCIsdmFsdWU6dGhpcy5zdGF0cy5zdG9wcGVkLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNpcmNsZVN0b3AiLGNvbG9yOnRoaXMuc3RhdHMuc3RvcHBlZD4wPyIjZjU5ZTBiIjp2b2lkIDB9LHtpZDoiZG9ja2VyIix0aXRsZToiRG9ja2VyIix2YWx1ZTp0aGlzLnN0YXRzLmRvY2tlclN0YXR1cz09PSJydW5uaW5nIj8iUnVubmluZyI6IlN0b3BwZWQiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTpjb250YWluZXIiLGNvbG9yOnRoaXMuc3RhdHMuZG9ja2VyU3RhdHVzPT09InJ1bm5pbmciPyIjMjJjNTVlIjoiI2VmNDQ0NCJ9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy50aWxlc30KICAgICAgICAubWluVGlsZVdpZHRoPSR7MjAwfQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE9KZSh0aGlzLGwpfXN0YXRpY3tPSmUocix0KX19O3JldHVybiBkPXJ9KSgpfSk7dmFyIEJKZSxiRyxqTmEsSEplPWYoKCk9PntsZSgpO19KZSgpO0RKZSgpO0JKZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sYkc9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGpOYT0oKCk9PntsZXQgYT1baWUoInN6LXN0YXR1cy1ncmlkLXNlcnZpY2VzIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6U3RhdHVzR3JpZFNlcnZpY2VzIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sZD1bJCh7dHlwZTpBcnJheX0pXSxCSmUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvdXJjZVVzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJyZXNvdXJjZVVzYWdlImluIHYsImhhcyIpLGdldDpzKHY9PnYucmVzb3VyY2VVc2FnZSwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LnJlc291cmNlVXNhZ2U9eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLEJKZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYXRmb3JtU2VydmljZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InBsYXRmb3JtU2VydmljZXMiaW4gdiwiaGFzIiksZ2V0OnModj0+di5wbGF0Zm9ybVNlcnZpY2VzLCJnZXQiKSxzZXQ6cygodix4KT0+e3YucGxhdGZvcm1TZXJ2aWNlcz14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksQkplKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1zdGF0dXMtZ3JpZC1zZXJ2aWNlcwogICAgICAgIC5yZXNvdXJjZVVzYWdlPSR7e2NwdTo0NSxtZW1vcnlVc2VkOiI0Ljk2IEdCIixtZW1vcnlUb3RhbDoiOCBHQiIsbmV0d29ya0luOiIxLjIgTUIvcyIsbmV0d29ya091dDoiMC44IE1CL3MiLHRvcENvbnN1bWVyczpbe25hbWU6ImFwaS1zZXJ2aWNlIixtZW1vcnk6IjUxMiBNQiJ9LHtuYW1lOiJ3ZWItZnJvbnRlbmQiLG1lbW9yeToiMjU2IE1CIn0se25hbWU6IndvcmtlciIsbWVtb3J5OiIxMjggTUIifV19fQogICAgICAgIC5wbGF0Zm9ybVNlcnZpY2VzPSR7W3tuYW1lOiJNb25nb0RCIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTMyBTdG9yYWdlIixzdGF0dXM6IjEgYnVja2V0IixydW5uaW5nOiEwfSx7bmFtZToiQ2xpY2tIb3VzZSIsc3RhdHVzOiJTdG9wcGVkIixydW5uaW5nOiExfSx7bmFtZToiUmVkaXMgQ2FjaGUiLHN0YXR1czoiUnVubmluZyIscnVubmluZzohMH1dfQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1zZXJ2aWNlcz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPWJHKHRoaXMsbix7Y3B1OjAsbWVtb3J5VXNlZDoiMCBHQiIsbWVtb3J5VG90YWw6IjAgR0IiLG5ldHdvcmtJbjoiMCBNQi9zIixuZXR3b3JrT3V0OiIwIE1CL3MiLHRvcENvbnN1bWVyczpbXX0pO2dldCByZXNvdXJjZVVzYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlc291cmNlVXNhZ2UobSl7dGhpcy4jZT1tfSN0PShiRyh0aGlzLGwpLGJHKHRoaXMsYyxbXSkpO2dldCBwbGF0Zm9ybVNlcnZpY2VzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYXRmb3JtU2VydmljZXMobSl7dGhpcy4jdD1tfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLmdyaWQgPiAqIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8c3otcmVzb3VyY2UtdXNhZ2UtY2FyZAogICAgICAgICAgLmRhdGE9JHt0aGlzLnJlc291cmNlVXNhZ2V9CiAgICAgICAgPjwvc3otcmVzb3VyY2UtdXNhZ2UtY2FyZD4KICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgLnNlcnZpY2VzPSR7dGhpcy5wbGF0Zm9ybVNlcnZpY2VzfQogICAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQ+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYkcodGhpcyxwKX1zdGF0aWN7Ykcocix0KX19O3JldHVybiB1PXJ9KSgpfSk7dmFyIHBpZSxTNSxVTmEscUplPWYoKCk9PntsZSgpO0xKZSgpO1BKZSgpO0FKZSgpO3BpZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sUzU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFVOYT0oKCk9PntsZXQgYT1baWUoInN6LXN0YXR1cy1ncmlkLW5ldHdvcmsiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pTdGF0dXNHcmlkTmV0d29yayIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6T2JqZWN0fSldLGQ9WyQoe3R5cGU6T2JqZWN0fSldLHU9WyQoe3R5cGU6T2JqZWN0fSldLHBpZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyYWZmaWMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InRyYWZmaWMiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy50cmFmZmljLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cudHJhZmZpYz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG4sbCkscGllKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJveHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InByb3h5ImluIGcsImhhcyIpLGdldDpzKGc9PmcucHJveHksImdldCIpLHNldDpzKChnLHkpPT57Zy5wcm94eT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCkscGllKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VydGlmaWNhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJjZXJ0aWZpY2F0ZXMiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5jZXJ0aWZpY2F0ZXMsImdldCIpLHNldDpzKChnLHkpPT57Zy5jZXJ0aWZpY2F0ZXM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxtLHYpLHBpZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpifSxudWxsLHQpLHg9cj1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDE0MDBweDsiPgogICAgICA8c3otc3RhdHVzLWdyaWQtbmV0d29yawogICAgICAgIC50cmFmZmljPSR7e3JlcXVlc3RzOjEyNTQyMCxlcnJvcnM6MTUwLGVycm9yUGVyY2VudDouMTIsYXZnUmVzcG9uc2U6NDUscmVxUGVyTWluOjg0NyxzdGF0dXMyeHg6OTUuMixzdGF0dXMzeHg6Mi4xLHN0YXR1czR4eDoyLjMsc3RhdHVzNXh4Oi40fX0KICAgICAgICAucHJveHk9JHt7aHR0cFBvcnQ6IjgwIixodHRwc1BvcnQ6IjQ0MyIsaHR0cEFjdGl2ZTohMCxodHRwc0FjdGl2ZTohMCxyb3V0ZUNvdW50OiIxMiJ9fQogICAgICAgIC5jZXJ0aWZpY2F0ZXM9JHt7dmFsaWQ6OCxleHBpcmluZzoyLGV4cGlyZWQ6MH19CiAgICAgID48L3N6LXN0YXR1cy1ncmlkLW5ldHdvcms+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQgR3JpZHMiXTsjZT1TNSh0aGlzLG4se3JlcXVlc3RzOjAsZXJyb3JzOjAsZXJyb3JQZXJjZW50OjAsYXZnUmVzcG9uc2U6MCxyZXFQZXJNaW46MCxzdGF0dXMyeHg6MCxzdGF0dXMzeHg6MCxzdGF0dXM0eHg6MCxzdGF0dXM1eHg6MH0pO2dldCB0cmFmZmljKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRyYWZmaWMoYil7dGhpcy4jZT1ifSN0PShTNSh0aGlzLGwpLFM1KHRoaXMsYyx7aHR0cFBvcnQ6IjgwIixodHRwc1BvcnQ6IjQ0MyIsaHR0cEFjdGl2ZTohMSxodHRwc0FjdGl2ZTohMSxyb3V0ZUNvdW50OiIwIn0pKTtnZXQgcHJveHkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcHJveHkoYil7dGhpcy4jdD1ifSNhPShTNSh0aGlzLHApLFM1KHRoaXMsbSx7dmFsaWQ6MCxleHBpcmluZzowLGV4cGlyZWQ6MH0pKTtnZXQgY2VydGlmaWNhdGVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNlcnRpZmljYXRlcyhiKXt0aGlzLiNhPWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgewogICAgICAgIC5ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgPHN6LXRyYWZmaWMtY2FyZAogICAgICAgICAgLmRhdGE9JHt0aGlzLnRyYWZmaWN9CiAgICAgICAgPjwvc3otdHJhZmZpYy1jYXJkPgogICAgICAgIDxzei1yZXZlcnNlLXByb3h5LWNhcmQKICAgICAgICAgIGh0dHBQb3J0PSIke3RoaXMucHJveHkuaHR0cFBvcnR9IgogICAgICAgICAgaHR0cHNQb3J0PSIke3RoaXMucHJveHkuaHR0cHNQb3J0fSIKICAgICAgICAgID9odHRwQWN0aXZlPSR7dGhpcy5wcm94eS5odHRwQWN0aXZlfQogICAgICAgICAgP2h0dHBzQWN0aXZlPSR7dGhpcy5wcm94eS5odHRwc0FjdGl2ZX0KICAgICAgICAgIHJvdXRlQ291bnQ9IiR7dGhpcy5wcm94eS5yb3V0ZUNvdW50fSIKICAgICAgICA+PC9zei1yZXZlcnNlLXByb3h5LWNhcmQ+CiAgICAgICAgPHN6LWNlcnRpZmljYXRlcy1jYXJkCiAgICAgICAgICB2YWxpZD0iJHt0aGlzLmNlcnRpZmljYXRlcy52YWxpZH0iCiAgICAgICAgICBleHBpcmluZz0iJHt0aGlzLmNlcnRpZmljYXRlcy5leHBpcmluZ30iCiAgICAgICAgICBleHBpcmVkPSIke3RoaXMuY2VydGlmaWNhdGVzLmV4cGlyZWR9IgogICAgICAgID48L3N6LWNlcnRpZmljYXRlcy1jYXJkPgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFM1KHRoaXMsdil9c3RhdGlje1M1KHIsdCl9fTtyZXR1cm4geD1yfSkoKX0pO3ZhciBmaWUsejUsV05hLFZKZT1mKCgpPT57bGUoKTtJSmUoKTtSSmUoKTtmaWU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHo1PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxXTmE9KCgpPT57bGV0IGE9W2llKCJzei1zdGF0dXMtZ3JpZC1pbmZyYSIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTelN0YXR1c0dyaWRJbmZyYSIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6Qm9vbGVhbn0pXSxkPVskKHt0eXBlOkJvb2xlYW59KV0sdT1bJCh7dHlwZTpBcnJheX0pXSxmaWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkbnNDb25maWd1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJkbnNDb25maWd1cmVkImluIGcsImhhcyIpLGdldDpzKGc9PmcuZG5zQ29uZmlndXJlZCwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmRuc0NvbmZpZ3VyZWQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLGZpZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjbWVDb25maWd1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJhY21lQ29uZmlndXJlZCJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLmFjbWVDb25maWd1cmVkLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuYWNtZUNvbmZpZ3VyZWQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxjLHApLGZpZSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+ImFjdGlvbnMiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5hY3Rpb25zLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuYWN0aW9ucz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdiksZmllKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1zdGF0dXMtZ3JpZC1pbmZyYQogICAgICAgIGRuc0NvbmZpZ3VyZWQKICAgICAgICBhY21lQ29uZmlndXJlZAogICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246InBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiVmlldyBBbGwgU2VydmljZXMifSx7bGFiZWw6IlBsYXRmb3JtIFNlcnZpY2VzIn0se2xhYmVsOiJNYW5hZ2UgRG9tYWlucyJ9XX0KICAgICAgPjwvc3otc3RhdHVzLWdyaWQtaW5mcmE+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQgR3JpZHMiXTsjZT16NSh0aGlzLG4sITEpO2dldCBkbnNDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRuc0NvbmZpZ3VyZWQoYil7dGhpcy4jZT1ifSN0PSh6NSh0aGlzLGwpLHo1KHRoaXMsYywhMSkpO2dldCBhY21lQ29uZmlndXJlZCgpe3JldHVybiB0aGlzLiN0fXNldCBhY21lQ29uZmlndXJlZChiKXt0aGlzLiN0PWJ9I2E9KHo1KHRoaXMscCksejUodGhpcyxtLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYWN0aW9ucyhiKXt0aGlzLiNhPWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxzei1kbnMtc3NsLWNhcmQKICAgICAgICAgID9kbnNDb25maWd1cmVkPSR7dGhpcy5kbnNDb25maWd1cmVkfQogICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7dGhpcy5hY21lQ29uZmlndXJlZH0KICAgICAgICA+PC9zei1kbnMtc3NsLWNhcmQ+CiAgICAgICAgPHN6LXF1aWNrLWFjdGlvbnMtY2FyZAogICAgICAgICAgLmFjdGlvbnM9JHt0aGlzLmFjdGlvbnN9CiAgICAgICAgICBAYWN0aW9uLWNsaWNrPSR7Yj0+dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOmIuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9CiAgICAgICAgPjwvc3otcXVpY2stYWN0aW9ucy1jYXJkPgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHo1KHRoaXMsdil9c3RhdGlje3o1KHIsdCl9fTtyZXR1cm4geD1yfSkoKX0pO3ZhciBTdWEsakplLEdOYSx6dWE9ZigoKT0+e2xlKCk7RkplKCk7SEplKCk7cUplKCk7VkplKCk7U3VhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxqSmU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LEdOYT0oKCk9PntsZXQgYT1baWUoInN6LWRhc2hib2FyZC12aWV3IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6RGFzaGJvYXJkVmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6T2JqZWN0fSldLFN1YSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+ImRhdGEiaW4gcCwiaGFzIiksZ2V0OnMocD0+cC5kYXRhLCJnZXQiKSxzZXQ6cygocCx1KT0+e3AuZGF0YT11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksU3VhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTQwMHB4OyI+CiAgICAgIDxzei1kYXNoYm9hcmQtdmlldwogICAgICAgIC5kYXRhPSR7e2NsdXN0ZXI6e3RvdGFsU2VydmljZXM6NyxydW5uaW5nOjcsc3RvcHBlZDowLGRvY2tlclN0YXR1czoicnVubmluZyJ9LHJlc291cmNlVXNhZ2U6e2NwdTouNSxtZW1vcnlVc2VkOiIxOTEgTUIiLG1lbW9yeVRvdGFsOiI0MjkuMiBHQiIsbmV0d29ya0luOiIzOC45IEtCL3MiLG5ldHdvcmtPdXQ6IjEuNyBLQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJ0ZXN0LW5naW54IixtZW1vcnk6IjMyLjEgTUIifSx7bmFtZToidGVzdC12MiIsbWVtb3J5OiIzMS43IE1CIn1dfSxwbGF0Zm9ybVNlcnZpY2VzOlt7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfSx7bmFtZToiUzMgU3RvcmFnZSAoTWluSU8pIixzdGF0dXM6IjEgYnVja2V0IixydW5uaW5nOiEwfSx7bmFtZToiU21hcnRQcm94eSBSZXZlcnNlIFByb3h5IixzdGF0dXM6IlJ1bm5pbmciLHJ1bm5pbmc6ITB9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9XSx0cmFmZmljOntyZXF1ZXN0czoxMjUwLGVycm9yczoxNSxlcnJvclBlcmNlbnQ6MS4yLGF2Z1Jlc3BvbnNlOjE0NSxyZXFQZXJNaW46MjEsc3RhdHVzMnh4Ojg1LHN0YXR1czN4eDo1LHN0YXR1czR4eDo4LHN0YXR1czV4eDoyfSxwcm94eTp7aHR0cFBvcnQ6IjgwIixodHRwc1BvcnQ6IjQ0MyIsaHR0cEFjdGl2ZTohMCxodHRwc0FjdGl2ZTohMCxyb3V0ZUNvdW50OiIxMiJ9LGNlcnRpZmljYXRlczp7dmFsaWQ6OCxleHBpcmluZzoyLGV4cGlyZWQ6MH0sZG5zQ29uZmlndXJlZDohMCxhY21lQ29uZmlndXJlZDohMCxxdWlja0FjdGlvbnM6W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246InBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiVmlldyBBbGwgU2VydmljZXMifSx7bGFiZWw6IlBsYXRmb3JtIFNlcnZpY2VzIn0se2xhYmVsOiJNYW5hZ2UgRG9tYWlucyJ9XX19CiAgICAgID48L3N6LWRhc2hib2FyZC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9akplKHRoaXMsbix7Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczowLHJ1bm5pbmc6MCxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJzdG9wcGVkIn0scmVzb3VyY2VVc2FnZTp7Y3B1OjAsbWVtb3J5VXNlZDoiMCBNQiIsbWVtb3J5VG90YWw6IjAgR0IiLG5ldHdvcmtJbjoiMCBLQi9zIixuZXR3b3JrT3V0OiIwIEtCL3MiLHRvcENvbnN1bWVyczpbXX0scGxhdGZvcm1TZXJ2aWNlczpbXSx0cmFmZmljOntyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9LHByb3h5OntodHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiExLGh0dHBzQWN0aXZlOiExLHJvdXRlQ291bnQ6IjAifSxjZXJ0aWZpY2F0ZXM6e3ZhbGlkOjAsZXhwaXJpbmc6MCxleHBpcmVkOjB9LGRuc0NvbmZpZ3VyZWQ6ITEsYWNtZUNvbmZpZ3VyZWQ6ITEscXVpY2tBY3Rpb25zOltdfSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmRhc2hib2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRhc2hib2FyZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbHVzdGVyIE92ZXJ2aWV3PC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1jbHVzdGVyCiAgICAgICAgICAgIC5zdGF0cz0ke3RoaXMuZGF0YS5jbHVzdGVyfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtY2x1c3Rlcj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2VydmljZXMgJiBSZXNvdXJjZXM8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLXNlcnZpY2VzCiAgICAgICAgICAgIC5yZXNvdXJjZVVzYWdlPSR7dGhpcy5kYXRhLnJlc291cmNlVXNhZ2V9CiAgICAgICAgICAgIC5wbGF0Zm9ybVNlcnZpY2VzPSR7dGhpcy5kYXRhLnBsYXRmb3JtU2VydmljZXN9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1zZXJ2aWNlcz4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmV0d29yayAmIFRyYWZmaWM8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLW5ldHdvcmsKICAgICAgICAgICAgLnRyYWZmaWM9JHt0aGlzLmRhdGEudHJhZmZpY30KICAgICAgICAgICAgLnByb3h5PSR7dGhpcy5kYXRhLnByb3h5fQogICAgICAgICAgICAuY2VydGlmaWNhdGVzPSR7dGhpcy5kYXRhLmNlcnRpZmljYXRlc30KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLW5ldHdvcms+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkluZnJhc3RydWN0dXJlPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1pbmZyYQogICAgICAgICAgICA/ZG5zQ29uZmlndXJlZD0ke3RoaXMuZGF0YS5kbnNDb25maWd1cmVkfQogICAgICAgICAgICA/YWNtZUNvbmZpZ3VyZWQ9JHt0aGlzLmRhdGEuYWNtZUNvbmZpZ3VyZWR9CiAgICAgICAgICAgIC5hY3Rpb25zPSR7dGhpcy5kYXRhLnF1aWNrQWN0aW9uc30KICAgICAgICAgICAgQGFjdGlvbi1jbGljaz0ke2M9PnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGlvbi1jbGljayIse2RldGFpbDpjLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtaW5mcmE+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGpKZSh0aGlzLGwpfXN0YXRpY3tqSmUocix0KX19O3JldHVybiBkPXJ9KSgpfSk7dmFyIFY0LGhvLFlOYSxDdWE9ZigoKT0+e2xlKCk7VjQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LGhvPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxZTmE9KCgpPT57bGV0IGE9W2llKCJzei1uZXR3b3JrLXByb3h5LXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pOZXR3b3JrUHJveHlWaWV3Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpTdHJpbmd9KV0seT1bJCh7dHlwZTpBcnJheX0pXSxOPVskKHt0eXBlOkFycmF5fSldLE89WyQoe3R5cGU6Qm9vbGVhbn0pXSxWNCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb3h5U3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJwcm94eVN0YXR1cyJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnByb3h5U3RhdHVzLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MucHJveHlTdGF0dXM9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxuLGwpLFY0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm91dGVDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4icm91dGVDb3VudCJpbiBTLCJoYXMiKSxnZXQ6cyhTPT5TLnJvdXRlQ291bnQsImdldCIpLHNldDpzKChTLEUpPT57Uy5yb3V0ZUNvdW50PUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYyxwKSxWNCh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlcnRpZmljYXRlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+ImNlcnRpZmljYXRlQ291bnQiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5jZXJ0aWZpY2F0ZUNvdW50LCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MuY2VydGlmaWNhdGVDb3VudD1FfSwic2V0Iil9LG1ldGFkYXRhOk19LG0sdiksVjQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhTPT4idGFyZ2V0Q291bnQiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy50YXJnZXRDb3VudCwiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLnRhcmdldENvdW50PUV9LCJzZXQiKX0sbWV0YWRhdGE6TX0sYixnKSxWNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhcmdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoUz0+InRhcmdldHMiaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy50YXJnZXRzLCJnZXQiKSxzZXQ6cygoUyxFKT0+e1MudGFyZ2V0cz1FfSwic2V0Iil9LG1ldGFkYXRhOk19LGssQyksVjQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJsb2dzImluIFMsImhhcyIpLGdldDpzKFM9PlMubG9ncywiZ2V0Iiksc2V0OnMoKFMsRSk9PntTLmxvZ3M9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxfLHopLFY0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RyZWFtaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKFM9PiJzdHJlYW1pbmciaW4gUywiaGFzIiksZ2V0OnMoUz0+Uy5zdHJlYW1pbmcsImdldCIpLHNldDpzKChTLEUpPT57Uy5zdHJlYW1pbmc9RX0sInNldCIpfSxtZXRhZGF0YTpNfSxULFApLFY0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOk19LG51bGwsdCksQj1yPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTQwMHB4OyI+CiAgICAgIDxzei1uZXR3b3JrLXByb3h5LXZpZXcKICAgICAgICBwcm94eVN0YXR1cz0icnVubmluZyIKICAgICAgICByb3V0ZUNvdW50PSIzIgogICAgICAgIGNlcnRpZmljYXRlQ291bnQ9IjIiCiAgICAgICAgdGFyZ2V0Q291bnQ9IjExIgogICAgICAgIC50YXJnZXRzPSR7W3t0eXBlOiJzZXJ2aWNlIixuYW1lOiJ0ZXN0LW5naW54Iixkb21haW46ImFwcC5ibGV1LmRlIix0YXJnZXQ6ImxvY2FsaG9zdDo4MDgwIixzdGF0dXM6InJ1bm5pbmcifSx7dHlwZToic2VydmljZSIsbmFtZToiaGVsbG8td29ybGQiLGRvbWFpbjoiaGVsbG8udGFzay52YyIsdGFyZ2V0OiJsb2NhbGhvc3Q6ODA4MSIsc3RhdHVzOiJydW5uaW5nIn0se3R5cGU6InJlZ2lzdHJ5IixuYW1lOiJvbmVib3gtcmVnaXN0cnkiLGRvbWFpbjpudWxsLHRhcmdldDoibG9jYWxob3N0OjQwMDAiLHN0YXR1czoicnVubmluZyJ9LHt0eXBlOiJwbGF0Zm9ybSIsbmFtZToiTW9uZ29EQiIsZG9tYWluOm51bGwsdGFyZ2V0OiJsb2NhbGhvc3Q6MjcwMTciLHN0YXR1czoicnVubmluZyJ9LHt0eXBlOiJwbGF0Zm9ybSIsbmFtZToiQ2xpY2tIb3VzZSIsZG9tYWluOm51bGwsdGFyZ2V0OiJsb2NhbGhvc3Q6ODEyMyIsc3RhdHVzOiJydW5uaW5nIn1dfQogICAgICAgIC5sb2dzPSR7W3t0aW1lc3RhbXA6IjIwMjQtMDEtMDIgMTA6MTU6MzIiLG1ldGhvZDoiR0VUIixwYXRoOiIvYXBpL3NlcnZpY2VzIixzdGF0dXM6MjAwLGR1cmF0aW9uOjQ1LGlwOiIxOTIuMTY4LjEuMTAwIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0wMiAxMDoxNTozMCIsbWV0aG9kOiJQT1NUIixwYXRoOiIvYXBpL2F1dGgvbG9naW4iLHN0YXR1czoyMDAsZHVyYXRpb246MTIwLGlwOiIxOTIuMTY4LjEuMTAxIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0wMiAxMDoxNToyOCIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9zdGF0aWMvYnVuZGxlLmpzIixzdGF0dXM6MzA0LGR1cmF0aW9uOjUsaXA6IjE5Mi4xNjguMS4xMDAifV19CiAgICAgID48L3N6LW5ldHdvcmstcHJveHktdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1obyh0aGlzLG4sInN0b3BwZWQiKTtnZXQgcHJveHlTdGF0dXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJveHlTdGF0dXMoTSl7dGhpcy4jZT1NfSN0PShobyh0aGlzLGwpLGhvKHRoaXMsYywiMCIpKTtnZXQgcm91dGVDb3VudCgpe3JldHVybiB0aGlzLiN0fXNldCByb3V0ZUNvdW50KE0pe3RoaXMuI3Q9TX0jYT0oaG8odGhpcyxwKSxobyh0aGlzLG0sIjAiKSk7Z2V0IGNlcnRpZmljYXRlQ291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY2VydGlmaWNhdGVDb3VudChNKXt0aGlzLiNhPU19I3I9KGhvKHRoaXMsdiksaG8odGhpcyxiLCIwIikpO2dldCB0YXJnZXRDb3VudCgpe3JldHVybiB0aGlzLiNyfXNldCB0YXJnZXRDb3VudChNKXt0aGlzLiNyPU19I3M9KGhvKHRoaXMsZyksaG8odGhpcyxrLFtdKSk7Z2V0IHRhcmdldHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFyZ2V0cyhNKXt0aGlzLiNzPU19I2k9KGhvKHRoaXMsQyksaG8odGhpcyxfLFtdKSk7Z2V0IGxvZ3MoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbG9ncyhNKXt0aGlzLiNpPU19I289KGhvKHRoaXMseiksaG8odGhpcyxULCExKSk7Z2V0IHN0cmVhbWluZygpe3JldHVybiB0aGlzLiNvfXNldCBzdHJlYW1pbmcoTSl7dGhpcy4jbz1NfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnJlZnJlc2gtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAucmVmcmVzaC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kYW5nZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDgwcHggMS41ZnIgMS41ZnIgMS41ZnIgODBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxLjVmciAxLjVmciAxLjVmciA4MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnR5cGUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLnR5cGUtYmFkZ2Uuc2VydmljZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAudHlwZS1iYWRnZS5yZWdpc3RyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2U4ZmYiLCJyZ2JhKDE2OCwgODUsIDI0NywgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5MzMzZWEiLCIjYTg1NWY3Iil9OwogICAgICB9CgogICAgICAudHlwZS1iYWRnZS5wbGF0Zm9ybSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYzYzciLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkOTc3MDYiLCIjZjU5ZTBiIil9OwogICAgICB9CgogICAgICAudGFyZ2V0LXZhbHVlIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5sb2dzLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1lbnRyeSB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmxvZy10aW1lc3RhbXAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5sb2ctbWV0aG9kIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5sb2ctc3RhdHVzLTJ4eCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtM3h4IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAubG9nLXN0YXR1cy00eHggewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5sb2ctc3RhdHVzLTV4eCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LWxvZ3MgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2dldCB0aWxlcygpe3JldHVyblt7aWQ6InByb3h5LXN0YXR1cyIsdGl0bGU6IlByb3h5IFN0YXR1cyIsdmFsdWU6dGhpcy5wcm94eVN0YXR1cz09PSJydW5uaW5nIj8iUnVubmluZyI6IlN0b3BwZWQiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLGNvbG9yOnRoaXMucHJveHlTdGF0dXM9PT0icnVubmluZyI/IiMyMmM1NWUiOiIjZWY0NDQ0In0se2lkOiJyb3V0ZXMiLHRpdGxlOiJSb3V0ZXMiLHZhbHVlOnRoaXMucm91dGVDb3VudCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzZXJ2ZXIifSx7aWQ6ImNlcnRpZmljYXRlcyIsdGl0bGU6IkNlcnRpZmljYXRlcyIsdmFsdWU6dGhpcy5jZXJ0aWZpY2F0ZUNvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNoZWNrIn0se2lkOiJ0YXJnZXRzIix0aXRsZToiVGFyZ2V0cyIsdmFsdWU6dGhpcy50YXJnZXRDb3VudCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzZXJ2ZXIifV19cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgIDxidXR0b24gY2xhc3M9InJlZnJlc2gtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZWZyZXNoKCl9PlJlZnJlc2g8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnRpbGVzfQogICAgICAgIC5taW5UaWxlV2lkdGg9JHsyMDB9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UcmFmZmljIFRhcmdldHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5TZXJ2aWNlcywgcmVnaXN0cnksIGFuZCBwbGF0Zm9ybSBzZXJ2aWNlcyB3aXRoIHRoZWlyIHJvdXRpbmcgaW5mbzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5UeXBlPC9zcGFuPgogICAgICAgICAgPHNwYW4+TmFtZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlRhcmdldDwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlN0YXR1czwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMudGFyZ2V0cy5tYXAoTT0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVGFyZ2V0Q2xpY2soTSl9PgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0idHlwZS1iYWRnZSAke00udHlwZX0iPiR7TS50eXBlfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPiR7TS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+JHtNLmRvbWFpbnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldC12YWx1ZSI+JHtNLnRhcmdldH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtNLnN0YXR1c30iPiR7TS5zdGF0dXN9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QWNjZXNzIExvZ3M8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5SZWFsLXRpbWUgcHJveHkgYWNjZXNzIGxvZ3M8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2dzLWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMubG9ncy5sZW5ndGg+MD90aGlzLmxvZ3MubWFwKE09PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZy1lbnRyeSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvZy10aW1lc3RhbXAiPiR7TS50aW1lc3RhbXB9PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsb2ctbWV0aG9kIj4ke00ubWV0aG9kfTwvc3Bhbj4KICAgICAgICAgICAgICAke00ucGF0aH0KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHt0aGlzLmdldFN0YXR1c0NsYXNzKE0uc3RhdHVzKX0iPiR7TS5zdGF0dXN9PC9zcGFuPgogICAgICAgICAgICAgICR7TS5kdXJhdGlvbn1tcwogICAgICAgICAgICAgICR7TS5pcH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKTp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1sb2dzIj5DbGljayAiU3RyZWFtIiB0byBzdGFydCBsaXZlIGFjY2VzcyBsb2cgc3RyZWFtaW5nPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gJHt0aGlzLnN0cmVhbWluZz8iZGFuZ2VyIjoicHJpbWFyeSJ9IiBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVTdHJlYW1pbmcoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgJHt0aGlzLnN0cmVhbWluZz93YDxyZWN0IHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjEiLz5gOndgPHBvbHlnb24gcG9pbnRzPSI1LDMgMTksMTIgNSwyMSIvPmB9CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAke3RoaXMuc3RyZWFtaW5nPyJTdG9wIjoiU3RyZWFtIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNsZWFyTG9ncygpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyw2IDUsNiAyMSw2Ii8+PHBhdGggZD0iTTE5LDZ2MTRhMiwyLDAsMCwxLTIsMkg3YTIsMiwwLDAsMS0yLTJWNm0zLDBWNGEyLDIsMCwwLDEsMi0yaDRhMiwyLDAsMCwxLDIsMnYyIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDbGVhciBsb2dzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWdldFN0YXR1c0NsYXNzKE0pe3JldHVybiBNPj01MDA/ImxvZy1zdGF0dXMtNXh4IjpNPj00MDA/ImxvZy1zdGF0dXMtNHh4IjpNPj0zMDA/ImxvZy1zdGF0dXMtM3h4IjoibG9nLXN0YXR1cy0yeHgifWhhbmRsZVJlZnJlc2goKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWZyZXNoIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVUYXJnZXRDbGljayhNKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YXJnZXQtY2xpY2siLHtkZXRhaWw6TSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXRvZ2dsZVN0cmVhbWluZygpe3RoaXMuc3RyZWFtaW5nPSF0aGlzLnN0cmVhbWluZyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdHJlYW0tdG9nZ2xlIix7ZGV0YWlsOntzdHJlYW1pbmc6dGhpcy5zdHJlYW1pbmd9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ2xlYXJMb2dzKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xlYXItbG9ncyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGhvKHRoaXMsUCl9c3RhdGlje2hvKHIsdCl9fTtyZXR1cm4gQj1yfSkoKX0pO3ZhciBfdWEsVUplLEtOYSxUdWE9ZigoKT0+e2xlKCk7X3VhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxVSmU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LEtOYT0oKCk9PntsZXQgYT1baWUoInN6LW5ldHdvcmstZG5zLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pOZXR3b3JrRG5zVmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sX3VhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVjb3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4icmVjb3JkcyJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLnJlY29yZHMsImdldCIpLHNldDpzKChwLHUpPT57cC5yZWNvcmRzPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxfdWEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMDAwcHg7Ij4KICAgICAgPHN6LW5ldHdvcmstZG5zLXZpZXcKICAgICAgICAucmVjb3Jkcz0ke1t7ZG9tYWluOiJwci50YXNrLnZjIix0eXBlOiJBIix2YWx1ZToiMTk1LjIwMS45OC4yMzIifSx7ZG9tYWluOiJvdXRsaW5lLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIxOTUuMjAxLjk4LjIzMiJ9LHtkb21haW46Im5zMS50YXNrLnZjIix0eXBlOiJBIix2YWx1ZToiMjEyLjk1Ljk5LjEzMCJ9LHtkb21haW46ImJsZXUuZGUiLHR5cGU6IkEiLHZhbHVlOiIyMTIuOTUuOTkuMTMwIn0se2RvbWFpbjoibWFpbC5ibGV1LmRlIix0eXBlOiJNWCIsdmFsdWU6IjEwIG1haWwuYmxldS5kZSJ9XX0KICAgICAgPjwvc3otbmV0d29yay1kbnMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1VSmUodGhpcyxuLFtdKTtnZXQgcmVjb3Jkcygpe3JldHVybiB0aGlzLiNlfXNldCByZWNvcmRzKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zeW5jLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgODBweCAyZnIgMTAwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciA4MHB4IDJmciAxMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmRvbWFpbiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnR5cGUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRlbGV0ZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuZGVsZXRlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5NYW5hZ2UgRE5TIHJlY29yZHMgc3luY2VkIHdpdGggQ2xvdWRmbGFyZTwvc3Bhbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJzeW5jLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU3luYygpfT4KICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAxLTkgOW05LTlhOSA5IDAgMCAwLTktOW05IDlIM205IDlhOSA5IDAgMCAxLTktOW05IDljMS42NiAwIDMtNC4wMyAzLTlzLTEuMzQtOS0zLTltMCAxOGMtMS42NiAwLTMtNC4wMy0zLTlzMS4zNC05IDMtOSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBTeW5jIENsb3VkZmxhcmUKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5Eb21haW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5UeXBlPC9zcGFuPgogICAgICAgICAgPHNwYW4+VmFsdWU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZWNvcmRzLmxlbmd0aD4wP3RoaXMucmVjb3Jkcy5tYXAoYz0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb21haW4iPiR7Yy5kb21haW59PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0idHlwZS1iYWRnZSI+JHtjLnR5cGV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2MudmFsdWV9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZWxldGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGUoYyl9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKTp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIEROUyByZWNvcmRzIGZvdW5kPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVN5bmMoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzeW5jIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoYyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOmMsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVUplKHRoaXMsbCl9c3RhdGlje1VKZShyLHQpfX07cmV0dXJuIGQ9cn0pKCl9KTt2YXIgV0plLHZHLFpOYSxMdWE9ZigoKT0+e2xlKCk7V0plPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSx2Rz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sWk5hPSgoKT0+e2xldCBhPVtpZSgic3otbmV0d29yay1kb21haW5zLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pOZXR3b3JrRG9tYWluc1ZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9WyQoe3R5cGU6T2JqZWN0fSldLFdKZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRvbWFpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImRvbWFpbnMiaW4gdiwiaGFzIiksZ2V0OnModj0+di5kb21haW5zLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuZG9tYWlucz14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCksV0plKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InN0YXRzImluIHYsImhhcyIpLGdldDpzKHY9PnYuc3RhdHMsImdldCIpLHNldDpzKCh2LHgpPT57di5zdGF0cz14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksV0plKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1uZXR3b3JrLWRvbWFpbnMtdmlldwogICAgICAgIC5kb21haW5zPSR7W3tkb21haW46ImJsZXUuZGUiLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6MixjZXJ0aWZpY2F0ZVN0YXR1czoidmFsaWQiLGV4cGlyZXNJbjoiNTIgZGF5cyJ9LHtkb21haW46InRhc2sudmMiLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6MSxjZXJ0aWZpY2F0ZVN0YXR1czoidmFsaWQiLGV4cGlyZXNJbjoiNTIgZGF5cyJ9LHtkb21haW46ImV4YW1wbGUuY29tIixwcm92aWRlcjoiY2xvdWRmbGFyZSIsc2VydmljZUNvdW50OjAsY2VydGlmaWNhdGVTdGF0dXM6ImV4cGlyaW5nIixleHBpcmVzSW46IjcgZGF5cyJ9XX0KICAgICAgICAuc3RhdHM9JHt7dG90YWw6Myx2YWxpZDoyLGV4cGlyaW5nOjEsZXhwaXJlZDowfX0KICAgICAgPjwvc3otbmV0d29yay1kb21haW5zLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9dkcodGhpcyxuLFtdKTtnZXQgZG9tYWlucygpe3JldHVybiB0aGlzLiNlfXNldCBkb21haW5zKG0pe3RoaXMuI2U9bX0jdD0odkcodGhpcyxsKSx2Ryh0aGlzLGMse3RvdGFsOjAsdmFsaWQ6MCxleHBpcmluZzowLGV4cGlyZWQ6MH0pKTtnZXQgc3RhdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdHMobSl7dGhpcy4jdD1tfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc3luYy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDgwcHggMTAwcHggMTAwcHggODBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciA4MHB4IDEwMHB4IDEwMHB4IDgwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmRvbWFpbi1uYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAucHJvdmlkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmV4cGlyaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXhwaXJlZCwKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmV4cGlyZXMgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudmlldy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2dldCB0aWxlcygpe3JldHVyblt7aWQ6InRvdGFsIix0aXRsZToiVG90YWwgRG9tYWlucyIsdmFsdWU6dGhpcy5zdGF0cy50b3RhbCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpnbG9iZSJ9LHtpZDoidmFsaWQiLHRpdGxlOiJWYWxpZCBDZXJ0aWZpY2F0ZXMiLHZhbHVlOnRoaXMuc3RhdHMudmFsaWQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hpZWxkQ2hlY2siLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJleHBpcmluZyIsdGl0bGU6IkV4cGlyaW5nIFNvb24iLHZhbHVlOnRoaXMuc3RhdHMuZXhwaXJpbmcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hpZWxkQWxlcnQiLGNvbG9yOnRoaXMuc3RhdHMuZXhwaXJpbmc+MD8iI2Y1OWUwYiI6dm9pZCAwfSx7aWQ6ImV4cGlyZWQiLHRpdGxlOiJFeHBpcmVkL1BlbmRpbmciLHZhbHVlOnRoaXMuc3RhdHMuZXhwaXJlZCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjaXJjbGVPZmYiLGNvbG9yOnRoaXMuc3RhdHMuZXhwaXJlZD4wPyIjZWY0NDQ0Ijp2b2lkIDB9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZGVzY3JpcHRpb24iPk1hbmFnZSBkb21haW5zIGFuZCBTU0wgY2VydGlmaWNhdGVzPC9zcGFuPgogICAgICAgIDxidXR0b24gY2xhc3M9InN5bmMtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTeW5jKCl9PlN5bmMgQ2xvdWRmbGFyZTwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMudGlsZXN9CiAgICAgICAgLm1pblRpbGVXaWR0aD0kezIwMH0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5Eb21haW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5Qcm92aWRlcjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgPHNwYW4+Q2VydGlmaWNhdGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5FeHBpcmVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZG9tYWlucy5sZW5ndGg+MD90aGlzLmRvbWFpbnMubWFwKG09PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPiR7bS5kb21haW59PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvdmlkZXIiPiR7bS5wcm92aWRlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPiR7bS5zZXJ2aWNlQ291bnR9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7bS5jZXJ0aWZpY2F0ZVN0YXR1c30iPiR7bS5jZXJ0aWZpY2F0ZVN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwaXJlcyI+JHttLmV4cGlyZXNJbnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idmlldy1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVZpZXcobSl9PlZpZXc8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBkb21haW5zIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU3luYygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN5bmMiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVZpZXcobSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldyIse2RldGFpbDptLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHZHKHRoaXMscCl9c3RhdGlje3ZHKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBHSmUseEcsWE5hLCR1YT1mKCgpPT57bGUoKTtHSmU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHhHPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxYTmE9KCgpPT57bGV0IGE9W2llKCJzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6UmVnaXN0cnlBZHZlcnRpc2VtZW50Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sR0plKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJzdGF0dXMiaW4gdiwiaGFzIiksZ2V0OnModj0+di5zdGF0dXMsImdldCIpLHNldDpzKCh2LHgpPT57di5zdGF0dXM9eH0sInNldCIpfSxtZXRhZGF0YTptfSxuLGwpLEdKZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZ2lzdHJ5VXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHY9PiJyZWdpc3RyeVVybCJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LnJlZ2lzdHJ5VXJsLCJnZXQiKSxzZXQ6cygodix4KT0+e3YucmVnaXN0cnlVcmw9eH0sInNldCIpfSxtZXRhZGF0YTptfSxjLHApLEdKZShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTptfSxudWxsLHQpLHU9cj1lLnZhbHVlLG0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgc3RhdHVzPSJydW5uaW5nIgogICAgICAgIHJlZ2lzdHJ5VXJsPSJsb2NhbGhvc3Q6MzAwMC92MiIKICAgICAgPjwvc3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkF1dGggJiBTZXR0aW5ncyJdOyNlPXhHKHRoaXMsbiwic3RvcHBlZCIpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RhdHVzKG0pe3RoaXMuI2U9bX0jdD0oeEcodGhpcyxsKSx4Ryh0aGlzLGMsIiIpKTtnZXQgcmVnaXN0cnlVcmwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcmVnaXN0cnlVcmwobSl7dGhpcy4jdD1tfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY2FyZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAucmVnaXN0cnktaWNvbiB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZGVmYXVsdC1iYWRnZSB7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5jYXJkLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmluZm8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICB9CgogICAgICAuaW5mby12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5tYW5hZ2UtbGluayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAubWFuYWdlLWxpbms6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLnF1aWNrLXN0YXJ0LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnF1aWNrLXN0YXJ0LWRlc2MgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5jb2RlLWJsb2NrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiMwYTBhMGEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvZGUtbGluZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jb2RlLWxpbmU6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmNvZGUtY29tbWVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmNvZGUtY29tbWFuZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiI2U0ZTRlNyIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWljb24iPgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaW5mbyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+CiAgICAgICAgICAgICAgUmVnaXN0cnkgQWR2ZXJ0aXNlbWVudAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZWZhdWx0LWJhZGdlIj5EZWZhdWx0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXN1YnRpdGxlIj5Db250YWluZXIgcmVnaXN0cnkgZm9yIHlvdXIgc2VydmljZXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ncmlkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+U3RhdHVzPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHt0aGlzLnN0YXR1c30iPiR7dGhpcy5zdGF0dXM9PT0icnVubmluZyI/IlJ1bm5pbmciOiJTdG9wcGVkIn08L3NwYW4+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+UmVnaXN0cnkgVVJMPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMucmVnaXN0cnlVcmx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+QXV0aGVudGljYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9Im1hbmFnZS1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNYW5hZ2VUb2tlbnMoKX0+TWFuYWdlIFRva2VuczwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icXVpY2stc3RhcnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydC10aXRsZSI+UXVpY2sgU3RhcnQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVpY2stc3RhcnQtZGVzYyI+VG8gcHVzaCBpbWFnZXMgdG8gdGhlIHJlZ2lzdHJ5LCB1c2UgYSBDSSBvciBHbG9iYWwgdG9rZW46PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGluZSBjb2RlLWNvbW1lbnQiPiMgTG9naW4gdG8gdGhlIHJlZ2lzdHJ5PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWFuZCI+ZG9ja2VyIGxvZ2luICR7dGhpcy5yZWdpc3RyeVVybC5zcGxpdCgiLyIpWzBdfSAtdSByZWdpc3RyeSAtcCBZT1VSX1RPS0VOPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWVudCI+IyBUYWcgYW5kIHB1c2ggeW91ciBpbWFnZTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGluZSBjb2RlLWNvbW1hbmQiPmRvY2tlciB0YWcgbXlhcHAgJHt0aGlzLnJlZ2lzdHJ5VXJsLnNwbGl0KCIvIilbMF19L215c2VydmljZTpsYXRlc3Q8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tYW5kIj5kb2NrZXIgcHVzaCAke3RoaXMucmVnaXN0cnlVcmwuc3BsaXQoIi8iKVswXX0vbXlzZXJ2aWNlOmxhdGVzdDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlTWFuYWdlVG9rZW5zKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFuYWdlLXRva2VucyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHhHKHRoaXMscCl9c3RhdGlje3hHKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBEdWEsWUplLFFOYSxBdWE9ZigoKT0+e2xlKCk7RHVhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxZSmU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFFOYT0oKCk9PntsZXQgYT1baWUoInN6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pSZWdpc3RyeUV4dGVybmFsVmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sRHVhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVnaXN0cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4icmVnaXN0cmllcyJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLnJlZ2lzdHJpZXMsImdldCIpLHNldDpzKChwLHUpPT57cC5yZWdpc3RyaWVzPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxEdWEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldwogICAgICAgIC5yZWdpc3RyaWVzPSR7W3tpZDoiMSIsbmFtZToiRG9ja2VyIEh1YiIsdXJsOiJkb2NrZXIuaW8iLHVzZXJuYW1lOiJteXVzZXIiLHR5cGU6ImRvY2tlcmh1YiJ9LHtpZDoiMiIsbmFtZToiR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSIsdXJsOiJnaGNyLmlvIix1c2VybmFtZToibXlvcmciLHR5cGU6ImdoY3IifV19CiAgICAgID48L3N6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1ZSmUodGhpcyxuLFtdKTtnZXQgcmVnaXN0cmllcygpe3JldHVybiB0aGlzLiNlfXNldCByZWdpc3RyaWVzKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICB9CgogICAgICAucmVnaXN0cnktbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1pY29uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWRldGFpbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS11cmwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuZW1wdHktaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZW1wdHktYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuZW1wdHktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+RXh0ZXJuYWwgUmVnaXN0cmllczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXN1YnRpdGxlIj5BZGQgY3JlZGVudGlhbHMgZm9yIHByaXZhdGUgRG9ja2VyIHJlZ2lzdHJpZXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZGQtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBZGQoKX0+QWRkIFJlZ2lzdHJ5PC9idXR0b24+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLnJlZ2lzdHJpZXMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1saXN0Ij4KICAgICAgICAgICR7dGhpcy5yZWdpc3RyaWVzLm1hcChjPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1pdGVtIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1pbmZvIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWljb24iPgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktbmFtZSI+JHtjLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LXVybCI+JHtjLnVybH0gKCR7Yy51c2VybmFtZX0pPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUVkaXQoYyl9PkVkaXQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGUoYyl9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPHN2ZyBjbGFzcz0iZW1wdHktaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6Ij48L3BhdGg+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMi4wOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktdGl0bGUiPk5vIGV4dGVybmFsIHJlZ2lzdHJpZXM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LWRlc2NyaXB0aW9uIj5BZGQgY3JlZGVudGlhbHMgZm9yIERvY2tlciBIdWIsIEdpdEh1YiBDb250YWluZXIgUmVnaXN0cnksIG9yIG90aGVyIHByaXZhdGUgcmVnaXN0cmllcy48L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImVtcHR5LWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWRkKCl9PkFkZCBFeHRlcm5hbCBSZWdpc3RyeTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgfQogICAgYH1oYW5kbGVBZGQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhZGQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUVkaXQoYyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZWRpdCIse2RldGFpbDpjLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlKGMpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZSIse2RldGFpbDpjLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFlKZSh0aGlzLGwpfXN0YXRpY3tZSmUocix0KX19O3JldHVybiBkPXJ9KSgpfSk7dmFyIFB1YSxLSmUsSk5hLEV1YT1mKCgpPT57bGUoKTtQdWE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEtKZT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sSk5hPSgoKT0+e2xldCBhPVtpZSgic3otc2VydmljZXMtbGlzdC12aWV3IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6U2VydmljZXNMaXN0VmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sUHVhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+InNlcnZpY2VzImluIHAsImhhcyIpLGdldDpzKHA9PnAuc2VydmljZXMsImdldCIpLHNldDpzKChwLHUpPT57cC5zZXJ2aWNlcz11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksUHVhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1zZXJ2aWNlcy1saXN0LXZpZXcKICAgICAgICAuc2VydmljZXM9JHtbe25hbWU6InRlc3QtbmdpbngiLGltYWdlOiJuZ2lueDphbHBpbmUiLGRvbWFpbjoiYXBwLmJsZXUuZGUiLHN0YXR1czoicnVubmluZyJ9LHtuYW1lOiJoZWxsby13b3JsZCIsaW1hZ2U6ImxvY2FsaG9zdDozMDAwL2hlbGxvLXdvcmxkOmxhdGVzdCIsZG9tYWluOiJoZWxsby50YXNrLnZjIixzdGF0dXM6InJ1bm5pbmcifSx7bmFtZToidGVzdC12MiIsaW1hZ2U6ImxvY2FsaG9zdDozMDAwL3Rlc3QtcmVnaXN0cnk6djEiLGRvbWFpbjpudWxsLHN0YXR1czoicnVubmluZyJ9LHtuYW1lOiJhcGktc2VydmljZSIsaW1hZ2U6Im5vZGU6MTgtYWxwaW5lIixkb21haW46ImFwaS5leGFtcGxlLmNvbSIsc3RhdHVzOiJzdG9wcGVkIn1dfQogICAgICA+PC9zei1zZXJ2aWNlcy1saXN0LXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJTZXJ2aWNlcyJdOyNlPUtKZSh0aGlzLG4sW10pO2dldCBzZXJ2aWNlcygpe3JldHVybiB0aGlzLiNlfXNldCBzZXJ2aWNlcyhjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDJmciAxLjVmciAxMDBweCAyMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMmZyIDEuNWZyIDEwMHB4IDIwMHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWU6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuaW1hZ2UgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZG9tYWluLWxpbmsgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZG9tYWluLWxpbms6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnJ1bm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0YXJ0aW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc3RvcCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnN0YXJ0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5yZXN0YXJ0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPk5hbWU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5JbWFnZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlN0YXR1czwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNlcnZpY2VzLmxlbmd0aD4wP3RoaXMuc2VydmljZXMubWFwKGM9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VydmljZS1uYW1lIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZXJ2aWNlQ2xpY2soYyl9PiR7Yy5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlIiB0aXRsZT0iJHtjLmltYWdlfSI+JHtjLmltYWdlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgJHtjLmRvbWFpbj93YDxhIGNsYXNzPSJkb21haW4tbGluayIgaHJlZj0iaHR0cHM6Ly8ke2MuZG9tYWlufSIgdGFyZ2V0PSJfYmxhbmsiPiR7Yy5kb21haW59PC9hPmA6Ii0ifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtjLnN0YXR1c30iPiR7Yy5zdGF0dXN9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGlvbnMiPgogICAgICAgICAgICAgICR7Yy5zdGF0dXM9PT0icnVubmluZyI/d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHN0b3AiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihjLCJzdG9wIil9PlN0b3A8L2J1dHRvbj5gOndgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzdGFydCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGMsInN0YXJ0Iil9PlN0YXJ0PC9idXR0b24+YH0KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHJlc3RhcnQiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihjLCJyZXN0YXJ0Iil9PlJlc3RhcnQ8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGMsImRlbGV0ZSIpfT5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBzZXJ2aWNlcyBkZXBsb3llZDwvZGl2PgogICAgICAgIGB9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTZXJ2aWNlQ2xpY2soYyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1jbGljayIse2RldGFpbDpjLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aW9uKGMscCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1hY3Rpb24iLHtkZXRhaWw6e3NlcnZpY2U6YyxhY3Rpb246cH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksS0plKHRoaXMsbCl9c3RhdGlje0tKZShyLHQpfX07cmV0dXJuIGQ9cn0pKCl9KTt2YXIgWkplLHlHLGVSYSxJdWE9ZigoKT0+e2xlKCk7WkplPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSx5Rz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sZVJhPSgoKT0+e2xldCBhPVtpZSgic3otc2VydmljZXMtYmFja3Vwcy12aWV3IildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6U2VydmljZXNCYWNrdXBzVmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bJCh7dHlwZTpBcnJheX0pXSxaSmUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzY2hlZHVsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InNjaGVkdWxlcyJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LnNjaGVkdWxlcywiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LnNjaGVkdWxlcz14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCksWkplKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFja3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iYmFja3VwcyJpbiB2LCJoYXMiKSxnZXQ6cyh2PT52LmJhY2t1cHMsImdldCIpLHNldDpzKCh2LHgpPT57di5iYWNrdXBzPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxaSmUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2VzLWJhY2t1cHMtdmlldwogICAgICAgIC5zY2hlZHVsZXM9JHtbe2lkOiIxIixzY29wZToiQWxsIFNlcnZpY2VzIixyZXRlbnRpb246IkQ6NywgVzo0LCBNOjEyIixzY2hlZHVsZToiMCAyICogKiAqIixsYXN0UnVuOiIxLzIvMjAyNiwgMjowMDowMyBBTSIsbmV4dFJ1bjoiMS8zLzIwMjYsIDI6MDA6MDAgQU0iLHN0YXR1czoiYWN0aXZlIn1dfQogICAgICAgIC5iYWNrdXBzPSR7W3tpZDoiMSIsc2VydmljZToidGVzdC1uZ2lueCIsY3JlYXRlZEF0OiIxLzIvMjAyNiwgMjowMDowMyBBTSIsc2l6ZToiMjIuMCBNQiIsaW5jbHVkZXM6WyJJbWFnZSJdfSx7aWQ6IjIiLHNlcnZpY2U6ImhlbGxvLXdvcmxkIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAyIEFNIixzaXplOiIyMS41IE1CIixpbmNsdWRlczpbIkltYWdlIl19LHtpZDoiMyIsc2VydmljZToidGVzdC1jaC1maW5hbCIsY3JlYXRlZEF0OiIxLzIvMjAyNiwgMjowMDowMCBBTSIsc2l6ZToiMjIuMCBNQiIsaW5jbHVkZXM6WyJJbWFnZSIsImNsaWNraG91c2UiXX1dfQogICAgICA+PC9zei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJTZXJ2aWNlcyJdOyNlPXlHKHRoaXMsbixbXSk7Z2V0IHNjaGVkdWxlcygpe3JldHVybiB0aGlzLiNlfXNldCBzY2hlZHVsZXMobSl7dGhpcy4jZT1tfSN0PSh5Ryh0aGlzLGwpLHlHKHRoaXMsYyxbXSkpO2dldCBiYWNrdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJhY2t1cHMobSl7dGhpcy4jdD1tfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnNjaGVkdWxlcy1oZWFkZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMS41ZnIgMS41ZnIgODBweCAxMjBweDsKICAgICAgfQoKICAgICAgLmJhY2t1cHMtaGVhZGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDEuNWZyIDEwMHB4IDFmciAxMjBweDsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnNjaGVkdWxlcy1yb3cgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMS41ZnIgMS41ZnIgODBweCAxMjBweDsKICAgICAgfQoKICAgICAgLmJhY2t1cHMtcm93IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDEuNWZyIDEwMHB4IDFmciAxMjBweDsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5mYWlsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1ldGEtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5pbmNsdWRlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmluY2x1ZGUtYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnJvdy1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuaWNvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QmFja3VwIFNjaGVkdWxlczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBhdXRvbWF0ZWQgYmFja3VwIHNjaGVkdWxlcyBmb3IgeW91ciBzZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciBzY2hlZHVsZXMtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPlNjb3BlPC9zcGFuPgogICAgICAgICAgPHNwYW4+UmV0ZW50aW9uPC9zcGFuPgogICAgICAgICAgPHNwYW4+U2NoZWR1bGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5MYXN0IFJ1bjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPk5leHQgUnVuPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2NoZWR1bGVzLm1hcChtPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IHNjaGVkdWxlcy1yb3ciPgogICAgICAgICAgICA8c3Bhbj4ke20uc2NvcGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0IiB0aXRsZT0iS2VlcDogJHttLnJldGVudGlvbn0iPiR7bS5yZXRlbnRpb259PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke20uc2NoZWR1bGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke20ubGFzdFJ1bnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtdGV4dCI+JHttLm5leHRSdW58fCItIn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHttLnN0YXR1c30iIHRpdGxlPSIke20uZXJyb3J8fCIifSI+CiAgICAgICAgICAgICAgICAke20uc3RhdHVzPT09ImFjdGl2ZSI/IkFjdGl2ZSI6bS5zdGF0dXM9PT0iZmFpbGVkIj8iRmFpbGVkIjoiRGlzYWJsZWQifQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icm93LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iUnVuIGJhY2t1cCBub3ciIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJ1bk5vdyhtKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwb2x5Z29uIHBvaW50cz0iNSwzIDE5LDEyIDUsMjEiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IiR7bS5zdGF0dXM9PT0iZGlzYWJsZWQiPyJFbmFibGUiOiJEaXNhYmxlIn0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVRvZ2dsZShtKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgJHttLnN0YXR1cz09PSJkaXNhYmxlZCI/d2A8cG9seWxpbmUgcG9pbnRzPSIyMCA2IDkgMTcgNCAxMiI+PC9wb2x5bGluZT5gOndgPHJlY3QgeD0iNiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMSIvPmB9CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZVNjaGVkdWxlKG0pfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVJbXBvcnQoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTcgOCAxMiAzIDcgOCIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjMiIHgyPSIxMiIgeTI9IjE1Ii8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBJbXBvcnQgQmFja3VwCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZVNjaGVkdWxlKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDcmVhdGUgU2NoZWR1bGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QWxsIEJhY2t1cHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Ccm93c2UgYW5kIG1hbmFnZSBhbGwgYmFja3VwcyBhY3Jvc3Mgc2VydmljZXM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgYmFja3Vwcy1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+U2VydmljZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkNyZWF0ZWQ8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TaXplPC9zcGFuPgogICAgICAgICAgPHNwYW4+SW5jbHVkZXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5iYWNrdXBzLm1hcChtPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IGJhY2t1cHMtcm93Ij4KICAgICAgICAgICAgPHNwYW4+JHttLnNlcnZpY2V9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke20uY3JlYXRlZEF0fTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtdGV4dCI+JHttLnNpemV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5jbHVkZXMtbGlzdCI+CiAgICAgICAgICAgICAgJHttLmluY2x1ZGVzLm1hcCh2PT53YDxzcGFuIGNsYXNzPSJpbmNsdWRlLWJhZGdlIj4ke3Z9PC9zcGFuPmApfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3ctYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJEb3dubG9hZCBiYWNrdXAiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURvd25sb2FkKG0pfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI3IDEwIDEyIDE1IDE3IDEwIi8+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE1IiB4Mj0iMTIiIHkyPSIzIi8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZUJhY2t1cChtKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyw2IDUsNiAyMSw2Ii8+PHBhdGggZD0iTTE5LDZ2MTRhMiwyLDAsMCwxLTIsMkg3YTIsMiwwLDAsMS0yLTJWNm0zLDBWNGEyLDIsMCwwLDEsMi0yaDRhMiwyLDAsMCwxLDIsMnYyIi8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1oYW5kbGVJbXBvcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbXBvcnQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNyZWF0ZVNjaGVkdWxlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlLXNjaGVkdWxlIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSdW5Ob3cobSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLW5vdyIse2RldGFpbDptLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVG9nZ2xlKG0pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRvZ2dsZS1zY2hlZHVsZSIse2RldGFpbDptLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlU2NoZWR1bGUobSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLXNjaGVkdWxlIix7ZGV0YWlsOm0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEb3dubG9hZChtKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb3dubG9hZCIse2RldGFpbDptLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlQmFja3VwKG0pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1iYWNrdXAiLHtkZXRhaWw6bSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx5Ryh0aGlzLHApfXN0YXRpY3t5RyhyLHQpfX07cmV0dXJuIHU9cn0pKCl9KTt2YXIgUmMscGksdFJhLE51YT1mKCgpPT57bGUoKTtSYz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0scGk9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHRSYT0oKCk9PntsZXQgYT1baWUoInN6LXNlcnZpY2UtZGV0YWlsLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXSxOLF89W10sej1bXSxPLFQ9W10sUD1bXSxCLE09W10sUz1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pTZXJ2aWNlRGV0YWlsVmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBBPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6T2JqZWN0fSldLGQ9WyQoe3R5cGU6T2JqZWN0fSldLHU9WyQoe3R5cGU6QXJyYXl9KV0seD1bJCh7dHlwZTpBcnJheX0pXSx5PVskKHt0eXBlOkJvb2xlYW59KV0sTj1bJCh7dHlwZTpPYmplY3R9KV0sTz1bJCh7dHlwZTpTdHJpbmd9KV0sQj1bSygpXSxSYyh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+InNlcnZpY2UiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5zZXJ2aWNlLCJnZXQiKSxzZXQ6cygoRixXKT0+e0Yuc2VydmljZT1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LG4sbCksUmModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhGPT4ic3RhdHMiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5zdGF0cywiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLnN0YXRzPVd9LCJzZXQiKX0sbWV0YWRhdGE6QX0sYyxwKSxSYyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2t1cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+ImJhY2t1cHMiaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5iYWNrdXBzLCJnZXQiKSxzZXQ6cygoRixXKT0+e0YuYmFja3Vwcz1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LG0sdiksUmModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJsb2dzImluIEYsImhhcyIpLGdldDpzKEY9PkYubG9ncywiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLmxvZ3M9V30sInNldCIpfSxtZXRhZGF0YTpBfSxiLGcpLFJjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RyZWFtaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJzdHJlYW1pbmciaW4gRiwiaGFzIiksZ2V0OnMoRj0+Ri5zdHJlYW1pbmcsImdldCIpLHNldDpzKChGLFcpPT57Ri5zdHJlYW1pbmc9V30sInNldCIpfSxtZXRhZGF0YTpBfSxrLEMpLFJjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29ya3NwYWNlRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+IndvcmtzcGFjZUVudmlyb25tZW50ImluIEYsImhhcyIpLGdldDpzKEY9PkYud29ya3NwYWNlRW52aXJvbm1lbnQsImdldCIpLHNldDpzKChGLFcpPT57Ri53b3Jrc3BhY2VFbnZpcm9ubWVudD1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LF8seiksUmModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3Jrc3BhY2VQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEY9PiJ3b3Jrc3BhY2VQYXRoImluIEYsImhhcyIpLGdldDpzKEY9PkYud29ya3NwYWNlUGF0aCwiZ2V0Iiksc2V0OnMoKEYsVyk9PntGLndvcmtzcGFjZVBhdGg9V30sInNldCIpfSxtZXRhZGF0YTpBfSxULFApLFJjKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoRj0+ImN1cnJlbnRWaWV3ImluIEYsImhhcyIpLGdldDpzKEY9PkYuY3VycmVudFZpZXcsImdldCIpLHNldDpzKChGLFcpPT57Ri5jdXJyZW50Vmlldz1XfSwic2V0Iil9LG1ldGFkYXRhOkF9LE0sUyksUmMobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6QX0sbnVsbCx0KSxFPXI9ZS52YWx1ZSxBJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkF9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tuYW1lOiJ0ZXN0LW5naW54IixzdGF0dXM6InJ1bm5pbmciLGltYWdlOiJuZ2lueDphbHBpbmUiLHBvcnQ6ODAsZG9tYWluOiJhcHAuYmxldS5kZSIsY29udGFpbmVySWQ6InBjaGJicjlmanI0ZyIsY3JlYXRlZDoiMTEvMTgvMjAyNSwgMjowNjo1NSBQTSIsdXBkYXRlZDoiMTEvMjYvMjAyNSwgNDowNTo0NiBQTSIscmVnaXN0cnk6IkRvY2tlciBIdWIiLHJlcG9zaXRvcnk6Im5naW54Iix0YWc6ImFscGluZSJ9fQogICAgICAgIC5zdGF0cz0ke3tjcHU6LjUsbWVtb3J5OiIzMi4xIE1CIixtZW1vcnlMaW1pdDoiNjEuMyBHQiIsbmV0d29ya0luOiI2LjQgS0IiLG5ldHdvcmtPdXQ6IjI1MiBCIn19CiAgICAgICAgLmJhY2t1cHM9JHtbe2lkOiIxIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMS45NiBNQiIsdHlwZToiRG9ja2VyIEltYWdlIn0se2lkOiIyIixjcmVhdGVkQXQ6IjExLzI3LzIwMjUsIDE6NDI6MjYgUE0iLHNpemU6IjUxLjc2IE1CIix0eXBlOiJEb2NrZXIgSW1hZ2UifV19CiAgICAgICAgLmxvZ3M9JHtbe3RpbWVzdGFtcDoiMjAyNC0wMS0wMiAxMDoxNTozMiIsbWVzc2FnZTonMTkyLjE2OC4xLjEwMCAtIC0gWzAyL0phbi8yMDI0OjEwOjE1OjMyICswMDAwXSAiR0VUIC8gSFRUUC8xLjEiIDIwMCA2MTInfSx7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMwIixtZXNzYWdlOicxOTIuMTY4LjEuMTAwIC0gLSBbMDIvSmFuLzIwMjQ6MTA6MTU6MzAgKzAwMDBdICJHRVQgL2Zhdmljb24uaWNvIEhUVFAvMS4xIiA0MDQgMTUzJ31dfQogICAgICA+PC9zei1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1waSh0aGlzLG4se25hbWU6IiIsc3RhdHVzOiJzdG9wcGVkIixpbWFnZToiIixwb3J0OjAsZG9tYWluOm51bGwsY29udGFpbmVySWQ6IiIsY3JlYXRlZDoiIix1cGRhdGVkOiIiLHJlZ2lzdHJ5OiIiLHJlcG9zaXRvcnk6IiIsdGFnOiIifSk7Z2V0IHNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VydmljZShBKXt0aGlzLiNlPUF9I3Q9KHBpKHRoaXMsbCkscGkodGhpcyxjLHtjcHU6MCxtZW1vcnk6IjAgTUIiLG1lbW9yeUxpbWl0OiIwIEdCIixuZXR3b3JrSW46IjAgQiIsbmV0d29ya091dDoiMCBCIn0pKTtnZXQgc3RhdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdHMoQSl7dGhpcy4jdD1BfSNhPShwaSh0aGlzLHApLHBpKHRoaXMsbSxbXSkpO2dldCBiYWNrdXBzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJhY2t1cHMoQSl7dGhpcy4jYT1BfSNyPShwaSh0aGlzLHYpLHBpKHRoaXMsYixbXSkpO2dldCBsb2dzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvZ3MoQSl7dGhpcy4jcj1BfSNzPShwaSh0aGlzLGcpLHBpKHRoaXMsaywhMSkpO2dldCBzdHJlYW1pbmcoKXtyZXR1cm4gdGhpcy4jc31zZXQgc3RyZWFtaW5nKEEpe3RoaXMuI3M9QX0jaT0ocGkodGhpcyxDKSxwaSh0aGlzLF8sbnVsbCkpO2dldCB3b3Jrc3BhY2VFbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNpfXNldCB3b3Jrc3BhY2VFbnZpcm9ubWVudChBKXt0aGlzLiNpPUF9I289KHBpKHRoaXMseikscGkodGhpcyxULCIvIikpO2dldCB3b3Jrc3BhY2VQYXRoKCl7cmV0dXJuIHRoaXMuI299c2V0IHdvcmtzcGFjZVBhdGgoQSl7dGhpcy4jbz1BfSNuPShwaSh0aGlzLFApLHBpKHRoaXMsTSwiZGV0YWlscyIpKTtnZXQgY3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3VycmVudFZpZXcoQSl7dGhpcy4jbj1BfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmJhY2stbGluayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJhY2stbGluazpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VydmljZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4tY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnNpZGViYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmNhcmQtaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5jYXJkLXRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY2FyZC1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNhcmQtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24uZGFuZ2VyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmRldGFpbC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICB9CgogICAgICAuZGV0YWlsLXZhbHVlIGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZGV0YWlsLXZhbHVlIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnN0YXQtaXRlbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICB9CgogICAgICAuc3RhdC1sYWJlbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLnN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0LXN1YnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbnMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kYW5nZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuYmFja3VwLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmJhY2t1cC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLmJhY2t1cC1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtZGF0ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtbWV0YSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmljb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmljb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICA6aG9zdCgud29ya3NwYWNlLW1vZGUpIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1iYWNrLWxpbmsgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1iYWNrLWxpbms6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFkNGVkOCIsIiM5M2M1ZmQiKX07CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utc2VydmljZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAud29ya3NwYWNlLXN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAud29ya3NwYWNlLXN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlldz09PSJ3b3Jrc3BhY2UiP3RoaXMucmVuZGVyV29ya3NwYWNlVmlldygpOnRoaXMucmVuZGVyRGV0YWlsc1ZpZXcoKX1yZW5kZXJXb3Jrc3BhY2VWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2UtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1iYWNrLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNsb3NlV29ya3NwYWNlKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBCYWNrIHRvIERldGFpbHMKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmtzcGFjZS1zZXJ2aWNlLW5hbWUiPiR7dGhpcy5zZXJ2aWNlLm5hbWV9PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmtzcGFjZS1zdGF0dXMtYmFkZ2UgJHt0aGlzLnNlcnZpY2Uuc3RhdHVzfSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1jb250YWluZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMud29ya3NwYWNlRW52aXJvbm1lbnR9PjwvZGVlcy13b3Jrc3BhY2U+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEZXRhaWxzVmlldygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImJhY2stbGluayIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQmFjaygpfT4KICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiPjwvcG9seWxpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWhlYWRlciIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDI0cHg7Ij4KICAgICAgICA8aDEgY2xhc3M9InNlcnZpY2UtbmFtZSI+JHt0aGlzLnNlcnZpY2UubmFtZX08L2gxPgogICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHt0aGlzLnNlcnZpY2Uuc3RhdHVzfSI+JHt0aGlzLnNlcnZpY2Uuc3RhdHVzfTwvc3Bhbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5TZXJ2aWNlIERldGFpbHM8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1saXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+SW1hZ2U8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLmltYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Qb3J0PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5wb3J0fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Eb21haW48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmRvbWFpbj93YDxhIGhyZWY9Imh0dHBzOi8vJHt0aGlzLnNlcnZpY2UuZG9tYWlufSIgdGFyZ2V0PSJfYmxhbmsiPiR7dGhpcy5zZXJ2aWNlLmRvbWFpbn08L2E+YDoiLSJ9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Db250YWluZXIgSUQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLmNvbnRhaW5lcklkfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5DcmVhdGVkPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5jcmVhdGVkfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5VcGRhdGVkPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS51cGRhdGVkfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJjYXJkLWZvb3RlciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRWRpdCgpfT5FZGl0PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICAgIC5sYWJlbD0keyJTZXJ2aWNlIExvZ3MifQogICAgICAgICAgICAubG9nRW50cmllcz0ke3RoaXMubG9ncy5tYXAoQT0+KHt0aW1lc3RhbXA6QS50aW1lc3RhbXA/LmluY2x1ZGVzPy4oIlQiKT9BLnRpbWVzdGFtcDpuZXcgRGF0ZShBLnRpbWVzdGFtcHx8RGF0ZS5ub3coKSkudG9JU09TdHJpbmcoKSxsZXZlbDpBLmxldmVsfHwiaW5mbyIsbWVzc2FnZTpBLm1lc3NhZ2V9KSl9CiAgICAgICAgICAgIC5hdXRvU2Nyb2xsPSR7ITB9CiAgICAgICAgICAgIC5tYXhFbnRyaWVzPSR7MmUzfQogICAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+TGl2ZSBzdGF0czwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5DUFU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JHt0aGlzLnN0YXRzLmNwdS50b0ZpeGVkKDEpfSU8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+TWVtb3J5PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPiR7dGhpcy5zdGF0cy5tZW1vcnl9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtc3VidmFsdWUiPm9mICR7dGhpcy5zdGF0cy5tZW1vcnlMaW1pdH08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+TmV0d29yayBJbjwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj4ke3RoaXMuc3RhdHMubmV0d29ya0lufTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5OZXR3b3JrIE91dDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj4ke3RoaXMuc3RhdHMubmV0d29ya091dH08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+QWN0aW9uczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5NYW5hZ2Ugc2VydmljZSBzdGF0ZTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1ncmlkIj4KICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cz09PSJydW5uaW5nIj93YDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbigic3RvcCIpfT5TdG9wIFNlcnZpY2U8L2J1dHRvbj5gOndgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKCJzdGFydCIpfT5TdGFydCBTZXJ2aWNlPC9idXR0b24+YH0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbigicmVzdGFydCIpfT5SZXN0YXJ0IFNlcnZpY2U8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU9wZW5Xb3Jrc3BhY2UoKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IG1hcmdpbi1yaWdodDogNHB4OyI+CiAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iNCAxNyAxMCAxMSA0IDUiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICBPcGVuIFdvcmtzcGFjZQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKCJkZWxldGUiKX0+RGVsZXRlIFNlcnZpY2U8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkltYWdlIFNvdXJjZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj4ke3RoaXMuc2VydmljZS5yZWdpc3RyeT09PSJEb2NrZXIgSHViIj8iRXh0ZXJuYWwgY29udGFpbmVyIHJlZ2lzdHJ5IjoiT25lYm94IHJlZ2lzdHJ5In08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1saXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+UmVnaXN0cnk8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLnJlZ2lzdHJ5fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5SZXBvc2l0b3J5PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5yZXBvc2l0b3J5fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5UYWc8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPjxzcGFuIGNsYXNzPSJ0YWctYmFkZ2UiPiR7dGhpcy5zZXJ2aWNlLnRhZ308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5CYWNrdXBzPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtc3VidGl0bGUiPkNyZWF0ZSBhbmQgbWFuYWdlIHNlcnZpY2UgYmFja3Vwczwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWxpc3QiPgogICAgICAgICAgICAgICAgJHt0aGlzLmJhY2t1cHMubWFwKEE9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtZGF0ZSI+JHtBLmNyZWF0ZWRBdH08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1tZXRhIj4ke0Euc2l6ZX0gwrcgJHtBLnR5cGV9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJEb3dubG9hZCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRG93bmxvYWRCYWNrdXAoQSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjcgMTAgMTIgMTUgMTcgMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxNSIgeDI9IjEyIiB5Mj0iMyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJSZXN0b3JlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZXN0b3JlQmFja3VwKEEpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMSA0IDEgMTAgNyAxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjUxIDE1YTkgOSAwIDEgMCAyLjEzLTkuMzZMMSAxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZUJhY2t1cChBKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMsNiA1LDYgMjEsNiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw2djE0YTIsMiwwLDAsMS0yLDJIN2EyLDIsMCwwLDEtMi0yVjZtMywwVjRhMiwyLDAsMCwxLDItMmg0YTIsMiwwLDAsMSwyLDJ2MiIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJjYXJkLWZvb3RlciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlQmFja3VwKCl9PgogICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIENyZWF0ZSBCYWNrdXAKICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUJhY2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJiYWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVFZGl0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZWRpdCIse2RldGFpbDp0aGlzLnNlcnZpY2UsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBY3Rpb24oQSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1hY3Rpb24iLHtkZXRhaWw6e3NlcnZpY2U6dGhpcy5zZXJ2aWNlLGFjdGlvbjpBfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXRvZ2dsZVN0cmVhbWluZygpe3RoaXMuc3RyZWFtaW5nPSF0aGlzLnN0cmVhbWluZyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdHJlYW0tdG9nZ2xlIix7ZGV0YWlsOntzdHJlYW1pbmc6dGhpcy5zdHJlYW1pbmd9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ2xlYXJMb2dzKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xlYXItbG9ncyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ3JlYXRlQmFja3VwKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlLWJhY2t1cCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRG93bmxvYWRCYWNrdXAoQSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG93bmxvYWQtYmFja3VwIix7ZGV0YWlsOkEsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZXN0b3JlQmFja3VwKEEpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlc3RvcmUtYmFja3VwIix7ZGV0YWlsOkEsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGVCYWNrdXAoQSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLWJhY2t1cCIse2RldGFpbDpBLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlT3BlbldvcmtzcGFjZSgpe3RoaXMud29ya3NwYWNlRW52aXJvbm1lbnQ/KHRoaXMuY3VycmVudFZpZXc9IndvcmtzcGFjZSIsdGhpcy5jbGFzc0xpc3QuYWRkKCJ3b3Jrc3BhY2UtbW9kZSIpKTp0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXF1ZXN0LXdvcmtzcGFjZSIse2RldGFpbDp7c2VydmljZTp0aGlzLnNlcnZpY2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ2xvc2VXb3Jrc3BhY2UoKXt0aGlzLmN1cnJlbnRWaWV3PSJkZXRhaWxzIix0aGlzLmNsYXNzTGlzdC5yZW1vdmUoIndvcmtzcGFjZS1tb2RlIil9dXBkYXRlZChBKXtzdXBlci51cGRhdGVkKEEpLEEuaGFzKCJ3b3Jrc3BhY2VFbnZpcm9ubWVudCIpJiZ0aGlzLndvcmtzcGFjZUVudmlyb25tZW50JiZ0aGlzLmN1cnJlbnRWaWV3PT09ImRldGFpbHMiJiYodGhpcy5jdXJyZW50Vmlldz0id29ya3NwYWNlIix0aGlzLmNsYXNzTGlzdC5hZGQoIndvcmtzcGFjZS1tb2RlIikpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxwaSh0aGlzLFMpfXN0YXRpY3twaShyLHQpfX07cmV0dXJuIEU9cn0pKCl9KTt2YXIgaGllLEM1LGFSYSxSdWE9ZigoKT0+e2xlKCk7aGllPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxDNT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sYVJhPSgoKT0+e2xldCBhPVtpZSgic3otYXBwLXN0b3JlLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pBcHBTdG9yZVZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOkFycmF5fSldLGQ9W0soKV0sdT1bSygpXSxoaWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJhcHBzImluIGcsImhhcyIpLGdldDpzKGc9PmcuYXBwcywiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmFwcHM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLGhpZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkQ2F0ZWdvcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InNlbGVjdGVkQ2F0ZWdvcnkiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5zZWxlY3RlZENhdGVnb3J5LCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuc2VsZWN0ZWRDYXRlZ29yeT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCksaGllKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InNlYXJjaFF1ZXJ5ImluIGcsImhhcyIpLGdldDpzKGc9Pmcuc2VhcmNoUXVlcnksImdldCIpLHNldDpzKChnLHkpPT57Zy5zZWFyY2hRdWVyeT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdiksaGllKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1hcHAtc3RvcmUtdmlldwogICAgICAgIC5hcHBzPSR7W3tpZDoid29yZHByZXNzIixuYW1lOiJXb3JkUHJlc3MiLGRlc2NyaXB0aW9uOiJUaGUgd29ybGQncyBtb3N0IHBvcHVsYXIgb3Blbi1zb3VyY2UgY29udGVudCBtYW5hZ2VtZW50IHN5c3RlbSBmb3IgYnVpbGRpbmcgd2Vic2l0ZXMgYW5kIGJsb2dzLiIsY2F0ZWdvcnk6IkNNUyIsaWNvbk5hbWU6ImZpbGUtdGV4dCIsaW1hZ2U6IndvcmRwcmVzczpsYXRlc3QiLHBvcnQ6ODAsZW52VmFyczpbe2tleToiV09SRFBSRVNTX0RCX0hPU1QiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBob3N0IGFkZHJlc3MiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfVVNFUiIsdmFsdWU6IndvcmRwcmVzcyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIHVzZXJuYW1lIixyZXF1aXJlZDohMH0se2tleToiV09SRFBSRVNTX0RCX1BBU1NXT1JEIix2YWx1ZToiIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgcGFzc3dvcmQiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfTkFNRSIsdmFsdWU6IndvcmRwcmVzcyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIG5hbWUiLHJlcXVpcmVkOiEwfV0sdm9sdW1lczpbIi92YXIvd3d3L2h0bWwiXSxlbmFibGVNb25nb0RCOiExLGVuYWJsZVMzOiExfSx7aWQ6ImdpdGVhIixuYW1lOiJHaXRlYSIsZGVzY3JpcHRpb246IkEgbGlnaHR3ZWlnaHQsIHNlbGYtaG9zdGVkIEdpdCBzZXJ2aWNlLiBQYWlubGVzcyBzZXR1cCBmb3IgeW91ciBvd24gY29kZSBob3N0aW5nIHBsYXRmb3JtLiIsY2F0ZWdvcnk6IkRldmVsb3BtZW50IixpY29uTmFtZToiZ2l0LWJyYW5jaCIsaW1hZ2U6ImdpdGVhL2dpdGVhOmxhdGVzdCIscG9ydDozZTMsZW52VmFyczpbe2tleToiR0lURUFfX2RhdGFiYXNlX19EQl9UWVBFIix2YWx1ZToic3FsaXRlMyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIHR5cGUiLHJlcXVpcmVkOiEwfSx7a2V5OiJHSVRFQV9fc2VydmVyX19ST09UX1VSTCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlB1YmxpYyBVUkwgb2YgdGhlIEdpdGVhIGluc3RhbmNlIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvZGF0YSJdfSx7aWQ6Imdob3N0IixuYW1lOiJHaG9zdCIsZGVzY3JpcHRpb246IkEgcG93ZXJmdWwgb3Blbi1zb3VyY2UgcHVibGlzaGluZyBwbGF0Zm9ybSBmb3IgcHJvZmVzc2lvbmFsIGJsb2dnZXJzIGFuZCBjb250ZW50IGNyZWF0b3JzLiIsY2F0ZWdvcnk6IkNNUyIsaWNvbk5hbWU6ImJvb2stb3BlbiIsaW1hZ2U6Imdob3N0OmxhdGVzdCIscG9ydDoyMzY4LGVudlZhcnM6W3trZXk6InVybCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlB1YmxpYyBVUkwgZm9yIHRoZSBHaG9zdCBzaXRlIixyZXF1aXJlZDohMH0se2tleToiZGF0YWJhc2VfX2NsaWVudCIsdmFsdWU6InNxbGl0ZTMiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBjbGllbnQgdHlwZSIscmVxdWlyZWQ6ITF9XSx2b2x1bWVzOlsiL3Zhci9saWIvZ2hvc3QvY29udGVudCJdfSx7aWQ6Im5naW54IixuYW1lOiJOZ2lueCIsZGVzY3JpcHRpb246IkhpZ2gtcGVyZm9ybWFuY2UgSFRUUCBzZXJ2ZXIgYW5kIHJldmVyc2UgcHJveHkgd2l0aCBsb3cgcmVzb3VyY2UgY29uc3VtcHRpb24uIixjYXRlZ29yeToiV2ViIFNlcnZlciIsaWNvbk5hbWU6Imdsb2JlIixpbWFnZToibmdpbng6YWxwaW5lIixwb3J0OjgwLHZvbHVtZXM6WyIvdXNyL3NoYXJlL25naW54L2h0bWwiLCIvZXRjL25naW54L2NvbmYuZCJdfSx7aWQ6InJlZGlzIixuYW1lOiJSZWRpcyIsZGVzY3JpcHRpb246IkluLW1lbW9yeSBkYXRhIHN0b3JlIHVzZWQgYXMgYSBkYXRhYmFzZSwgY2FjaGUsIHN0cmVhbWluZyBlbmdpbmUsIGFuZCBtZXNzYWdlIGJyb2tlci4iLGNhdGVnb3J5OiJEYXRhYmFzZSIsaWNvbk5hbWU6ImRhdGFiYXNlIixpbWFnZToicmVkaXM6YWxwaW5lIixwb3J0OjYzNzl9LHtpZDoicG9zdGdyZXMiLG5hbWU6IlBvc3RncmVTUUwiLGRlc2NyaXB0aW9uOiJBZHZhbmNlZCBvcGVuLXNvdXJjZSByZWxhdGlvbmFsIGRhdGFiYXNlIHdpdGggc3Ryb25nIHJlbGlhYmlsaXR5IGFuZCBmZWF0dXJlIHNldC4iLGNhdGVnb3J5OiJEYXRhYmFzZSIsaWNvbk5hbWU6ImRhdGFiYXNlIixpbWFnZToicG9zdGdyZXM6MTYtYWxwaW5lIixwb3J0OjU0MzIsZW52VmFyczpbe2tleToiUE9TVEdSRVNfVVNFUiIsdmFsdWU6InBvc3RncmVzIixkZXNjcmlwdGlvbjoiU3VwZXJ1c2VyIHVzZXJuYW1lIixyZXF1aXJlZDohMH0se2tleToiUE9TVEdSRVNfUEFTU1dPUkQiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJTdXBlcnVzZXIgcGFzc3dvcmQiLHJlcXVpcmVkOiEwfSx7a2V5OiJQT1NUR1JFU19EQiIsdmFsdWU6InBvc3RncmVzIixkZXNjcmlwdGlvbjoiRGVmYXVsdCBkYXRhYmFzZSBuYW1lIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGEiXX1dfQogICAgICA+PC9zei1hcHAtc3RvcmUtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9QzUodGhpcyxuLFtdKTtnZXQgYXBwcygpe3JldHVybiB0aGlzLiNlfXNldCBhcHBzKGIpe3RoaXMuI2U9Yn0jdD0oQzUodGhpcyxsKSxDNSh0aGlzLGMsIkFsbCIpKTtnZXQgc2VsZWN0ZWRDYXRlZ29yeSgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZENhdGVnb3J5KGIpe3RoaXMuI3Q9Yn0jYT0oQzUodGhpcyxwKSxDNSh0aGlzLG0sIiIpKTtnZXQgc2VhcmNoUXVlcnkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VhcmNoUXVlcnkoYil7dGhpcy4jYT1ifXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmZpbHRlci1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5jYXRlZ29yeS1waWxscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5jYXRlZ29yeS1waWxsIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuY2F0ZWdvcnktcGlsbDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LXBpbGwuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDI0MHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDhweCAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTBweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5hcHAtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkgewogICAgICAgIC5hcHAtZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgICAgICAgLmFwcC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KCiAgICAgICAgLmZpbHRlci1iYXIgewogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICAgIH0KCiAgICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5hcHAtY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLmFwcC1jYXJkOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDUpIiwicmdiYSgwLDAsMCwwLjIpIil9OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgICAgfQoKICAgICAgLmNhcmQtdG9wIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTRweDsKICAgICAgfQoKICAgICAgLmFwcC1pY29uIHsKICAgICAgICB3aWR0aDogNDRweDsKICAgICAgICBoZWlnaHQ6IDQ0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5hcHAtaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAyMnB4OwogICAgICAgIGhlaWdodDogMjJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYXBwLWljb24gaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5hcHAtaWNvbiAubGV0dGVyLWZhbGxiYWNrIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuY2FyZC1pbmZvIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmFwcC1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5jYXRlZ29yeS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmFwcC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7CiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5jYXJkLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMWExYTFlIil9OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5pbWFnZS10YWcgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG1heC13aWR0aDogMTYwcHg7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDdweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLmRldGFpbHMtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDdweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbHMtYnV0dG9uOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2FyZC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKICAgICAgICBwYWRkaW5nOiA2NHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuZW1wdHktaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTZweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLmVtcHR5LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07Z2V0IGNhdGVnb3JpZXMoKXtsZXQgYj1uZXcgU2V0KHRoaXMuYXBwcy5tYXAoZz0+Zy5jYXRlZ29yeSkpO3JldHVyblsiQWxsIiwuLi5BcnJheS5mcm9tKGIpLnNvcnQoKV19Z2V0IGZpbHRlcmVkQXBwcygpe2xldCBiPXRoaXMuYXBwcztpZih0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkhPT0iQWxsIiYmKGI9Yi5maWx0ZXIoZz0+Zy5jYXRlZ29yeT09PXRoaXMuc2VsZWN0ZWRDYXRlZ29yeSkpLHRoaXMuc2VhcmNoUXVlcnkudHJpbSgpKXtsZXQgZz10aGlzLnNlYXJjaFF1ZXJ5LnRyaW0oKS50b0xvd2VyQ2FzZSgpO2I9Yi5maWx0ZXIoeT0+eS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZyl8fHkuZGVzY3JpcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhnKXx8eS5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGcpKX1yZXR1cm4gYn1yZW5kZXIoKXtsZXQgYj10aGlzLmZpbHRlcmVkQXBwcztyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdGl0bGUiPkFwcCBTdG9yZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1zdWJ0aXRsZSI+RGVwbG95IHBvcHVsYXIgYXBwbGljYXRpb25zIHdpdGggb25lIGNsaWNrPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcnktcGlsbHMiPgogICAgICAgICAgJHt0aGlzLmNhdGVnb3JpZXMubWFwKGc9PndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImNhdGVnb3J5LXBpbGwgJHt0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk9PT1nPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5zZWxlY3RlZENhdGVnb3J5PWd9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7Z30KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXBwZXIiPgogICAgICAgICAgPHN2ZyBjbGFzcz0ic2VhcmNoLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiPjwvY2lyY2xlPgogICAgICAgICAgICA8bGluZSB4MT0iMjEiIHkxPSIyMSIgeDI9IjE2LjY1IiB5Mj0iMTYuNjUiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYXBwcy4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgQGlucHV0PSR7Zz0+e3RoaXMuc2VhcmNoUXVlcnk9Zy50YXJnZXQudmFsdWV9fQogICAgICAgICAgPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImFwcC1ncmlkIj4KICAgICAgICAke2IubGVuZ3RoPjA/Yi5tYXAoZz0+dGhpcy5yZW5kZXJBcHBDYXJkKGcpKTp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImVtcHR5LWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iOCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIyMSIgeTE9IjIxIiB4Mj0iMTYuNjUiIHkyPSIxNi42NSI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iOCIgeTE9IjExIiB4Mj0iMTQiIHkyPSIxMSI+PC9saW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10aXRsZSI+Tm8gYXBwcyBmb3VuZDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgICAgICBUcnkgYWRqdXN0aW5nIHlvdXIgc2VhcmNoIG9yIGZpbHRlciB0byBmaW5kIHdoYXQgeW91J3JlIGxvb2tpbmcgZm9yLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBcHBDYXJkKGIpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJhcHAtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC10b3AiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYXBwLWljb24iPgogICAgICAgICAgICAke2IuaWNvblVybD93YDxpbWcgc3JjPSIke2IuaWNvblVybH0iIGFsdD0iJHtiLm5hbWV9Ij5gOmIuaWNvbk5hbWU/dGhpcy5yZW5kZXJJY29uQnlOYW1lKGIuaWNvbk5hbWUpOndgPHNwYW4gY2xhc3M9ImxldHRlci1mYWxsYmFjayI+JHtiLm5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9PC9zcGFuPmB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mbyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcC1uYW1lIj4ke2IubmFtZX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcnktYmFkZ2UiPiR7Yi5jYXRlZ29yeX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFwcC1kZXNjcmlwdGlvbiI+JHtiLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS10YWciIHRpdGxlPSIke2IuaW1hZ2V9Ij4ke2IuaW1hZ2V9PC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGV0YWlscy1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVZpZXdEZXRhaWxzKGIpfT4KICAgICAgICAgICAgICBWaWV3IERldGFpbHMKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlcGxveShiKX0+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjAgMTIgMjAgMjIgNCAyMiA0IDEyIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iNyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjUiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjIyIiB4Mj0iMTIiIHkyPSI3Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgN0g3LjVhMi41IDIuNSAwIDAgMSAwLTVDMTEgMiAxMiA3IDEyIDd6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgN2g0LjVhMi41IDIuNSAwIDAgMCAwLTVDMTMgMiAxMiA3IDEyIDd6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgRGVwbG95CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJJY29uQnlOYW1lKGIpe3JldHVybnsiZmlsZS10ZXh0Ijp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiPjwvcG9seWxpbmU+PGxpbmUgeDE9IjE2IiB5MT0iMTMiIHgyPSI4IiB5Mj0iMTMiPjwvbGluZT48bGluZSB4MT0iMTYiIHkxPSIxNyIgeDI9IjgiIHkyPSIxNyI+PC9saW5lPjxwb2x5bGluZSBwb2ludHM9IjEwIDkgOSA5IDggOSI+PC9wb2x5bGluZT48L3N2Zz5gLCJnaXQtYnJhbmNoIjp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48bGluZSB4MT0iNiIgeTE9IjMiIHgyPSI2IiB5Mj0iMTUiPjwvbGluZT48Y2lyY2xlIGN4PSIxOCIgY3k9IjYiIHI9IjMiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyI+PC9jaXJjbGU+PHBhdGggZD0iTTE4IDlhOSA5IDAgMCAxLTkgOSI+PC9wYXRoPjwvc3ZnPmAsImJvb2stb3BlbiI6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTIgM2g2YTQgNCAwIDAgMSA0IDR2MTRhMyAzIDAgMCAwLTMtM0gyeiI+PC9wYXRoPjxwYXRoIGQ9Ik0yMiAzaC02YTQgNCAwIDAgMC00IDR2MTRhMyAzIDAgMCAxIDMtM2g3eiI+PC9wYXRoPjwvc3ZnPmAsZ2xvYmU6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPjxsaW5lIHgxPSIyIiB5MT0iMTIiIHgyPSIyMiIgeTI9IjEyIj48L2xpbmU+PHBhdGggZD0iTTEyIDJhMTUuMyAxNS4zIDAgMCAxIDQgMTAgMTUuMyAxNS4zIDAgMCAxLTQgMTAgMTUuMyAxNS4zIDAgMCAxLTQtMTAgMTUuMyAxNS4zIDAgMCAxIDQtMTB6Ij48L3BhdGg+PC9zdmc+YCxkYXRhYmFzZTp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiPjwvZWxsaXBzZT48cGF0aCBkPSJNMjEgMTJjMCAxLjY2LTQgMy05IDNzLTktMS4zNC05LTMiPjwvcGF0aD48cGF0aCBkPSJNMyA1djE0YzAgMS42NiA0IDMgOSAzczktMS4zNCA5LTNWNSI+PC9wYXRoPjwvc3ZnPmAsc2VydmVyOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48cmVjdCB4PSIyIiB5PSIxNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjYuMDEiIHkyPSI2Ij48L2xpbmU+PGxpbmUgeDE9IjYiIHkxPSIxOCIgeDI9IjYuMDEiIHkyPSIxOCI+PC9saW5lPjwvc3ZnPmAscGFja2FnZTp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48bGluZSB4MT0iMTYuNSIgeTE9IjkuNCIgeDI9IjcuNSIgeTI9IjQuMjEiPjwvbGluZT48cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYiPjwvcG9seWxpbmU+PGxpbmUgeDE9IjEyIiB5MT0iMjIuMDgiIHgyPSIxMiIgeTI9IjEyIj48L2xpbmU+PC9zdmc+YCxtYWlsOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik00IDRoMTZjMS4xIDAgMiAuOSAyIDJ2MTJjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yeiI+PC9wYXRoPjxwb2x5bGluZSBwb2ludHM9IjIyLDYgMTIsMTMgMiw2Ij48L3BvbHlsaW5lPjwvc3ZnPmAsc2hpZWxkOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiPjwvcGF0aD48L3N2Zz5gLG1vbml0b3I6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3QgeD0iMiIgeT0iMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48bGluZSB4MT0iOCIgeTE9IjIxIiB4Mj0iMTYiIHkyPSIyMSI+PC9saW5lPjxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMTIiIHkyPSIyMSI+PC9saW5lPjwvc3ZnPmB9W2JdfHx3YDxzcGFuIGNsYXNzPSJsZXR0ZXItZmFsbGJhY2siPj88L3NwYW4+YH1oYW5kbGVWaWV3RGV0YWlscyhiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2aWV3LWFwcCIse2RldGFpbDp7YXBwOmJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVwbG95KGIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlcGxveS1hcHAiLHtkZXRhaWw6e2FwcDpifSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxDNSh0aGlzLHYpfXN0YXRpY3tDNShyLHQpfX07cmV0dXJuIHg9cn0pKCl9KTt2YXIgWEplLHdHLHJSYSxPdWE9ZigoKT0+e2xlKCk7WEplPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSx3Rz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sclJhPSgoKT0+e2xldCBhPVtpZSgic3otdG9rZW5zLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pUb2tlbnNWaWV3Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpBcnJheX0pXSxkPVskKHt0eXBlOkFycmF5fSldLFhKZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdsb2JhbFRva2VucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iZ2xvYmFsVG9rZW5zImluIHYsImhhcyIpLGdldDpzKHY9PnYuZ2xvYmFsVG9rZW5zLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuZ2xvYmFsVG9rZW5zPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbixsKSxYSmUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjaVRva2VucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iY2lUb2tlbnMiaW4gdiwiaGFzIiksZ2V0OnModj0+di5jaVRva2VucywiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LmNpVG9rZW5zPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxYSmUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMDAwcHg7Ij4KICAgICAgPHN6LXRva2Vucy12aWV3CiAgICAgICAgLmdsb2JhbFRva2Vucz0ke1t7aWQ6IjEiLG5hbWU6IkNJL0NEIFBpcGVsaW5lIix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xNSIsbGFzdFVzZWQ6IjIwMjQtMDEtMjAifSx7aWQ6IjIiLG5hbWU6IkRldmVsb3BtZW50Iix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCJ9XX0KICAgICAgICAuY2lUb2tlbnM9JHtbe2lkOiIzIixuYW1lOiJoZWxsby13b3JsZC1jaSIsdHlwZToiY2kiLHNlcnZpY2U6ImhlbGxvLXdvcmxkIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTgifSx7aWQ6IjQiLG5hbWU6ImFwaS1zZXJ2aWNlLWNpIix0eXBlOiJjaSIsc2VydmljZToiYXBpLXNlcnZpY2UiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMiIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifV19CiAgICAgID48L3N6LXRva2Vucy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9d0codGhpcyxuLFtdKTtnZXQgZ2xvYmFsVG9rZW5zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGdsb2JhbFRva2VucyhtKXt0aGlzLiNlPW19I3Q9KHdHKHRoaXMsbCksd0codGhpcyxjLFtdKSk7Z2V0IGNpVG9rZW5zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNpVG9rZW5zKG0pe3RoaXMuI3Q9bX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAudG9rZW4tbGlzdCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLnRva2VuLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAudG9rZW4taXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAudG9rZW4taW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudG9rZW4tbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRva2VuLW1ldGEgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudG9rZW4tc2VydmljZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICAgIH0KCiAgICAgIC50b2tlbi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAzMnB4IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuZW1wdHktdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPkdsb2JhbCBUb2tlbnM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Ub2tlbnMgdGhhdCBjYW4gcHVzaCBpbWFnZXMgdG8gbXVsdGlwbGUgc2VydmljZXM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZ2xvYmFsVG9rZW5zLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLmdsb2JhbFRva2Vucy5tYXAobT0+dGhpcy5yZW5kZXJUb2tlbihtKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXRleHQiPk5vIGdsb2JhbCB0b2tlbnMgY3JlYXRlZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYH0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgiZ2xvYmFsIil9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDcmVhdGUgVG9rZW4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q0kgVG9rZW5zIChTZXJ2aWNlLXNwZWNpZmljKTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlRva2VucyB0aWVkIHRvIGluZGl2aWR1YWwgc2VydmljZXMgZm9yIENJL0NEIHBpcGVsaW5lczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5jaVRva2Vucy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbGlzdCI+CiAgICAgICAgICAgICR7dGhpcy5jaVRva2Vucy5tYXAobT0+dGhpcy5yZW5kZXJUb2tlbihtKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXRleHQiPk5vIENJIHRva2VucyBjcmVhdGVkPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgfQogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCJjaSIpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQ3JlYXRlIFRva2VuCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlclRva2VuKG0pe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPiR7bS5uYW1lfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbWV0YSI+CiAgICAgICAgICAgICR7bS5zZXJ2aWNlP3dgPHNwYW4gY2xhc3M9InRva2VuLXNlcnZpY2UiPiR7bS5zZXJ2aWNlfTwvc3Bhbj5gOiIifQogICAgICAgICAgICBDcmVhdGVkICR7bS5jcmVhdGVkQXR9CiAgICAgICAgICAgICR7bS5sYXN0VXNlZD93YCDCtyBMYXN0IHVzZWQgJHttLmxhc3RVc2VkfWA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1hY3Rpb25zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNvcHkobSl9PkNvcHk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlZ2VuZXJhdGUobSl9PlJlZ2VuZXJhdGU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGUobSl9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ3JlYXRlKG0pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNyZWF0ZSIse2RldGFpbDp7dHlwZTptfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvcHkobSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29weSIse2RldGFpbDptLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUmVnZW5lcmF0ZShtKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWdlbmVyYXRlIix7ZGV0YWlsOm0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUobSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOm0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksd0codGhpcyxwKX1zdGF0aWN7d0cocix0KX19O3JldHVybiB1PXJ9KSgpfSk7dmFyIFFKZSxNRyxzUmEsRnVhPWYoKCk9PntsZSgpO1FKZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sTUc9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHNSYT0oKCk9PntsZXQgYT1baWUoInN6LXNldHRpbmdzLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pTZXR0aW5nc1ZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOlN0cmluZ30pXSxRSmUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR0aW5ncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4ic2V0dGluZ3MiaW4gdiwiaGFzIiksZ2V0OnModj0+di5zZXR0aW5ncywiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LnNldHRpbmdzPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sbixsKSxRSmUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh2PT4iY3VycmVudFVzZXIiaW4gdiwiaGFzIiksZ2V0OnModj0+di5jdXJyZW50VXNlciwiZ2V0Iiksc2V0OnMoKHYseCk9Pnt2LmN1cnJlbnRVc2VyPXh9LCJzZXQiKX0sbWV0YWRhdGE6bX0sYyxwKSxRSmUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bX0sbnVsbCx0KSx1PXI9ZS52YWx1ZSxtJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm19KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otc2V0dGluZ3MtdmlldwogICAgICAgIC5zZXR0aW5ncz0ke3tkYXJrTW9kZTohMCxjbG91ZGZsYXJlVG9rZW46IiIsY2xvdWRmbGFyZVpvbmVJZDoiIixhdXRvUmVuZXdDZXJ0czohMCxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiY2VydHNAZXhhbXBsZS5jb20iLGh0dHBQb3J0OjgwLGh0dHBzUG9ydDo0NDMsZm9yY2VIdHRwczohMH19CiAgICAgICAgY3VycmVudFVzZXI9ImFkbWluIgogICAgICA+PC9zei1zZXR0aW5ncy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9TUcodGhpcyxuLHtkYXJrTW9kZTohMSxjbG91ZGZsYXJlVG9rZW46IiIsY2xvdWRmbGFyZVpvbmVJZDoiIixhdXRvUmVuZXdDZXJ0czohMCxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiIixodHRwUG9ydDo4MCxodHRwc1BvcnQ6NDQzLGZvcmNlSHR0cHM6ITB9KTtnZXQgc2V0dGluZ3MoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2V0dGluZ3MobSl7dGhpcy4jZT1tfSN0PShNRyh0aGlzLGwpLE1HKHRoaXMsYywiIikpO2dldCBjdXJyZW50VXNlcigpe3JldHVybiB0aGlzLiN0fXNldCBjdXJyZW50VXNlcihtKXt0aGlzLiN0PW19c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZm9ybS1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLAogICAgICBpbnB1dFt0eXBlPSJwYXNzd29yZCJdLAogICAgICBpbnB1dFt0eXBlPSJlbWFpbCJdLAogICAgICBpbnB1dFt0eXBlPSJudW1iZXIiXSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogNDRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2g6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoLmFjdGl2ZTo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5wYXNzd29yZC1maWVsZHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5maWVsZC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXBwZWFyYW5jZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5EYXJrIE1vZGU8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+VG9nZ2xlIGRhcmsgbW9kZSBvbiBvciBvZmY8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoICR7dGhpcy5zZXR0aW5ncy5kYXJrTW9kZT8iYWN0aXZlIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZURhcmtNb2RlKCl9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbG91ZGZsYXJlIEludGVncmF0aW9uPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q29uZmlndXJlIENsb3VkZmxhcmUgQVBJIGZvciBETlMgbWFuYWdlbWVudDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5BUEkgVG9rZW48L2Rpdj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJFbnRlciBDbG91ZGZsYXJlIEFQSSB0b2tlbiIgLnZhbHVlPSR7dGhpcy5zZXR0aW5ncy5jbG91ZGZsYXJlVG9rZW59IEBpbnB1dD0ke209PnRoaXMudXBkYXRlU2V0dGluZygiY2xvdWRmbGFyZVRva2VuIixtLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPlpvbmUgSUQgKE9wdGlvbmFsKTwvZGl2PgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iRGVmYXVsdCB6b25lIElEIiAudmFsdWU9JHt0aGlzLnNldHRpbmdzLmNsb3VkZmxhcmVab25lSWR9IEBpbnB1dD0ke209PnRoaXMudXBkYXRlU2V0dGluZygiY2xvdWRmbGFyZVpvbmVJZCIsbS50YXJnZXQudmFsdWUpfT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+R2V0IHlvdXIgQVBJIHRva2VuIGZyb20gdGhlIENsb3VkZmxhcmUgZGFzaGJvYXJkIHdpdGggRE5TIGVkaXQgcGVybWlzc2lvbnMuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNTTC9UTFMgU2V0dGluZ3M8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Db25maWd1cmUgY2VydGlmaWNhdGUgbWFuYWdlbWVudDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5BdXRvLVJlbmV3IENlcnRpZmljYXRlczwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5BdXRvbWF0aWNhbGx5IHJlbmV3IGNlcnRpZmljYXRlcyBiZWZvcmUgZXhwaXJ5PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCAke3RoaXMuc2V0dGluZ3MuYXV0b1JlbmV3Q2VydHM/ImFjdGl2ZSI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVTZXR0aW5nKCJhdXRvUmVuZXdDZXJ0cyIpfT48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPlJlbmV3YWwgVGhyZXNob2xkIChkYXlzKTwvZGl2PgogICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiAudmFsdWU9JHtTdHJpbmcodGhpcy5zZXR0aW5ncy5yZW5ld2FsVGhyZXNob2xkKX0gQGlucHV0PSR7bT0+dGhpcy51cGRhdGVTZXR0aW5nKCJyZW5ld2FsVGhyZXNob2xkIixwYXJzZUludChtLnRhcmdldC52YWx1ZSkpfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5SZW5ldyBjZXJ0aWZpY2F0ZXMgd2hlbiB0aGV5IGhhdmUgZmV3ZXIgdGhhbiB0aGlzIG1hbnkgZGF5cyByZW1haW5pbmcuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+QUNNRSBFbWFpbDwvZGl2PgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJhZG1pbkBleGFtcGxlLmNvbSIgLnZhbHVlPSR7dGhpcy5zZXR0aW5ncy5hY21lRW1haWx9IEBpbnB1dD0ke209PnRoaXMudXBkYXRlU2V0dGluZygiYWNtZUVtYWlsIixtLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPkVtYWlsIGFkZHJlc3MgZm9yIExldCdzIEVuY3J5cHQgbm90aWZpY2F0aW9ucy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmV0d29yayBTZXR0aW5nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBuZXR3b3JrIGFuZCBwcm94eSBzZXR0aW5nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+SFRUUCBQb3J0PC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgLnZhbHVlPSR7U3RyaW5nKHRoaXMuc2V0dGluZ3MuaHR0cFBvcnQpfSBAaW5wdXQ9JHttPT50aGlzLnVwZGF0ZVNldHRpbmcoImh0dHBQb3J0IixwYXJzZUludChtLnRhcmdldC52YWx1ZSkpfT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5IVFRQUyBQb3J0PC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgLnZhbHVlPSR7U3RyaW5nKHRoaXMuc2V0dGluZ3MuaHR0cHNQb3J0KX0gQGlucHV0PSR7bT0+dGhpcy51cGRhdGVTZXR0aW5nKCJodHRwc1BvcnQiLHBhcnNlSW50KG0udGFyZ2V0LnZhbHVlKSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWxhYmVsLWdyb3VwIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1sYWJlbCI+Rm9yY2UgSFRUUFM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+UmVkaXJlY3QgYWxsIEhUVFAgdHJhZmZpYyB0byBIVFRQUzwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2ggJHt0aGlzLnNldHRpbmdzLmZvcmNlSHR0cHM/ImFjdGl2ZSI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVTZXR0aW5nKCJmb3JjZUh0dHBzIil9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BY2NvdW50PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+TWFuYWdlIHlvdXIgYWNjb3VudCBzZXR0aW5nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkN1cnJlbnQgVXNlcjwvZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07Ij4ke3RoaXMuY3VycmVudFVzZXJ8fCJVbmtub3duIn08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhc3N3b3JkLXRpdGxlIj5DaGFuZ2UgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtZmllbGRzIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkN1cnJlbnQgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9ImN1cnJlbnRQYXNzd29yZCI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5OZXcgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9Im5ld1Bhc3N3b3JkIj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkNvbmZpcm0gUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9ImNvbmZpcm1QYXNzd29yZCI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2hhbmdlUGFzc3dvcmQoKX0+VXBkYXRlIFBhc3N3b3JkPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiAxMnB4IDE2cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogMTJweDsiPgogICAgICAgICAgU2F2ZSB5b3VyIGNoYW5nZXMgb3IgcmVzZXQgdG8gZGVmYXVsdHMuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVzZXQoKX0+UmVzZXQ8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNhdmUoKX0+U2F2ZSBTZXR0aW5nczwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9dG9nZ2xlRGFya01vZGUoKXt0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzLGRhcmtNb2RlOiF0aGlzLnNldHRpbmdzLmRhcmtNb2RlfSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXR0aW5nLWNoYW5nZSIse2RldGFpbDp7a2V5OiJkYXJrTW9kZSIsdmFsdWU6dGhpcy5zZXR0aW5ncy5kYXJrTW9kZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX10b2dnbGVTZXR0aW5nKG0pe3RoaXMuc2V0dGluZ3NbbV09IXRoaXMuc2V0dGluZ3NbbV0sdGhpcy5zZXR0aW5ncz17Li4udGhpcy5zZXR0aW5nc319dXBkYXRlU2V0dGluZyhtLHYpe3RoaXMuc2V0dGluZ3NbbV09dix0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzfX1oYW5kbGVDaGFuZ2VQYXNzd29yZCgpe2xldCBtPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImN1cnJlbnRQYXNzd29yZCIpPy52YWx1ZSx2PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoIm5ld1Bhc3N3b3JkIik/LnZhbHVlLHg9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiY29uZmlybVBhc3N3b3JkIik/LnZhbHVlO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZS1wYXNzd29yZCIse2RldGFpbDp7Y3VycmVudFBhc3N3b3JkOm0sbmV3UGFzc3dvcmQ6dixjb25maXJtUGFzc3dvcmQ6eH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZXNldCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlc2V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTYXZlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2F2ZSIse2RldGFpbDp0aGlzLnNldHRpbmdzLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE1HKHRoaXMscCl9c3RhdGlje01HKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBrRyxPYyxpUmEsQnVhPWYoKCk9PntsZSgpO2tHPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxPYz1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0saVJhPSgoKT0+e2xldCBhPVtpZSgic3otbG9naW4tdmlldyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTekxvZ2luVmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6Qm9vbGVhbn0pXSxkPVskKHt0eXBlOlN0cmluZ30pXSx1PVskKHt0eXBlOlN0cmluZ30pXSx4PVskKHt0eXBlOlN0cmluZ30pXSxrRyh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImxvYWRpbmciaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5sb2FkaW5nLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MubG9hZGluZz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG4sbCksa0codGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iZXJyb3IiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5lcnJvciwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmVycm9yPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYyxwKSxrRyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJ0aXRsZSJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLnRpdGxlLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MudGl0bGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxtLHYpLGtHKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+InN1YnRpdGxlImluIEMsImhhcyIpLGdldDpzKEM9PkMuc3VidGl0bGUsImdldCIpLHNldDpzKChDLE4pPT57Qy5zdWJ0aXRsZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksa0cobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6a30sbnVsbCx0KSx5PXI9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA2MDBweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGJhY2tncm91bmQ6ICMwOTA5MGI7Ij4KICAgICAgPHN6LWxvZ2luLXZpZXc+PC9zei1sb2dpbi12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9T2ModGhpcyxuLCExKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBsb2FkaW5nKGspe3RoaXMuI2U9a30jdD0oT2ModGhpcyxsKSxPYyh0aGlzLGMsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZXJyb3Ioayl7dGhpcy4jdD1rfSNhPShPYyh0aGlzLHApLE9jKHRoaXMsbSwic2VydmUuem9uZSIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGl0bGUoayl7dGhpcy4jYT1rfSNyPShPYyh0aGlzLHYpLE9jKHRoaXMsYiwiU2lnbiBpbiB0byB5b3VyIG9uZWJveCIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3VidGl0bGUoayl7dGhpcy4jcj1rfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgfQoKICAgICAgLmxvZ2luLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB9CgogICAgICAubG9naW4tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICB9CgogICAgICAubG9nby1zZWN0aW9uIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQoKICAgICAgLmxvZ28gewogICAgICAgIHdpZHRoOiA2NHB4OwogICAgICAgIGhlaWdodDogNjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTZweDsKICAgICAgfQoKICAgICAgLmxvZ28gc3ZnIHsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjEpIil9OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0LmVycm9yIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yLW1lc3NhZ2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYyZjIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmVjYWNhIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvci1tZXNzYWdlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc3VibWl0LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc3VibWl0LWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICB9CgogICAgICAuc3VibWl0LWJ1dHRvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zdWJtaXQtYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLnNwaW5uZXIgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXIgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC5mb290ZXIgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9nby1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLjI3IDYuOTYgMTIgMTIuMDEgMjAuNzMgNi45NiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjIyLjA4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPiR7dGhpcy5zdWJ0aXRsZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxmb3JtIGNsYXNzPSJmb3JtIiBAc3VibWl0PSR7dGhpcy5oYW5kbGVTdWJtaXR9PgogICAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1tZXNzYWdlIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyLjAxIiB5Mj0iMTYiPjwvbGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgJHt0aGlzLmVycm9yfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIiBmb3I9InVzZXJuYW1lIj5Vc2VybmFtZTwvbGFiZWw+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgaWQ9InVzZXJuYW1lIgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQgJHt0aGlzLmVycm9yPyJlcnJvciI6IiJ9IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIHlvdXIgdXNlcm5hbWUiCiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9InVzZXJuYW1lIgogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5sb2FkaW5nfQogICAgICAgICAgICAgICAgcmVxdWlyZWQKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIiBmb3I9InBhc3N3b3JkIj5QYXNzd29yZDwvbGFiZWw+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJwYXNzd29yZCIKICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0ICR7dGhpcy5lcnJvcj8iZXJyb3IiOiIifSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciB5b3VyIHBhc3N3b3JkIgogICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIgogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5sb2FkaW5nfQogICAgICAgICAgICAgICAgcmVxdWlyZWQKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQtYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmxvYWRpbmd9PgogICAgICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIFNpZ25pbmcgaW4uLi4KICAgICAgICAgICAgICBgOiJTaWduIGluIn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Zvcm0+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICAgUG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3NlcnZlLnpvbmUiIHRhcmdldD0iX2JsYW5rIj5zZXJ2ZS56b25lPC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTdWJtaXQoayl7ay5wcmV2ZW50RGVmYXVsdCgpO2xldCBDPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInVzZXJuYW1lIiksTj10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJwYXNzd29yZCIpO2lmKCFDfHwhTilyZXR1cm47bGV0IF89Qy52YWx1ZS50cmltKCksej1OLnZhbHVlO2lmKCFffHwheil7dGhpcy5lcnJvcj0iUGxlYXNlIGVudGVyIGJvdGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkIjtyZXR1cm59dGhpcy5lcnJvcj0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2dpbiIse2RldGFpbDp7dXNlcm5hbWU6XyxwYXNzd29yZDp6fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsZWFyRm9ybSgpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInVzZXJuYW1lIiksQz10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJwYXNzd29yZCIpO2smJihrLnZhbHVlPSIiKSxDJiYoQy52YWx1ZT0iIiksdGhpcy5lcnJvcj0iIn1mb2N1c1VzZXJuYW1lKCl7bGV0IGs9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgidXNlcm5hbWUiKTtrJiZrLmZvY3VzKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE9jKHRoaXMsZyl9c3RhdGlje09jKHIsdCl9fTtyZXR1cm4geT1yfSkoKX0pO3ZhciBmaSxFYSxvUmEsSHVhPWYoKCk9PntsZSgpO2ZpPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxFYT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sb1JhPSgoKT0+e2xldCBhPVtpZSgic3otc2VydmljZS1jcmVhdGUtdmlldyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdLHgsYj1bXSxnPVtdLHksaz1bXSxDPVtdLE4sXz1bXSx6PVtdLE8sVD1bXSxQPVtdLEIsTT1bXSxTPVtdLEUsQT1bXSxGPVtdLFcsaj1bXSxHPVtdLGhlLFI9W10sVT1bXSxtZSxJPVtdLHE9W10sY2UsdWU9W10sWT1bXSxRLEo9W10sWj1bXSxnZSxhZT1bXSxyZT1bXSx5ZSxWPVtdLEg9W107dmFyIG9lPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTelNlcnZpY2VDcmVhdGVWaWV3Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHNlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bJCh7dHlwZTpCb29sZWFufSldLHU9W0soKV0seD1bSygpXSx5PVtLKCldLE49W0soKV0sTz1bSygpXSxCPVtLKCldLEU9W0soKV0sVz1bSygpXSxoZT1bSygpXSxtZT1bSygpXSxjZT1bSygpXSxRPVtLKCldLGdlPVtLKCldLHllPVtLKCldLGZpKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVnaXN0cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+InJlZ2lzdHJpZXMiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5yZWdpc3RyaWVzLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUucmVnaXN0cmllcz16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sbixsKSxmaSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJsb2FkaW5nImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUubG9hZGluZywiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLmxvYWRpbmc9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LGMscCksZmkodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+InNlcnZpY2VOYW1lImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUuc2VydmljZU5hbWUsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS5zZXJ2aWNlTmFtZT16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sbSx2KSxmaSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4iaW1hZ2VVcmwiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5pbWFnZVVybCwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLmltYWdlVXJsPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxiLGcpLGZpKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRSZWdpc3RyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+InNlbGVjdGVkUmVnaXN0cnkiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5zZWxlY3RlZFJlZ2lzdHJ5LCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUuc2VsZWN0ZWRSZWdpc3RyeT16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sayxDKSxmaSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvcnRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4icG9ydHMiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5wb3J0cywiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLnBvcnRzPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxfLHopLGZpKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW52VmFycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+ImVudlZhcnMiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5lbnZWYXJzLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUuZW52VmFycz16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sVCxQKSxmaSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZvbHVtZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJ2b2x1bWVzImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUudm9sdW1lcywiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLnZvbHVtZXM9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LE0sUyksZmkodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcHVMaW1pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh0ZT0+ImNwdUxpbWl0ImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUuY3B1TGltaXQsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS5jcHVMaW1pdD16ZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sQSxGKSxmaSh0aGlzLG51bGwsVyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbW9yeUxpbWl0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4ibWVtb3J5TGltaXQiaW4gdGUsImhhcyIpLGdldDpzKHRlPT50ZS5tZW1vcnlMaW1pdCwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLm1lbW9yeUxpbWl0PXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxqLEcpLGZpKHRoaXMsbnVsbCxoZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc3RhcnRQb2xpY3kiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJyZXN0YXJ0UG9saWN5ImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUucmVzdGFydFBvbGljeSwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLnJlc3RhcnRQb2xpY3k9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LFIsVSksZmkodGhpcyxudWxsLG1lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmV0d29ya01vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJuZXR3b3JrTW9kZSJpbiB0ZSwiaGFzIiksZ2V0OnModGU9PnRlLm5ldHdvcmtNb2RlLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUubmV0d29ya01vZGU9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEkscSksZmkodGhpcyxudWxsLGNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0FkdmFuY2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4ic2hvd0FkdmFuY2VkImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUuc2hvd0FkdmFuY2VkLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUuc2hvd0FkdmFuY2VkPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSx1ZSxZKSxmaSh0aGlzLG51bGwsUSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZU1vbmdvREIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJlbmFibGVNb25nb0RCImluIHRlLCJoYXMiKSxnZXQ6cyh0ZT0+dGUuZW5hYmxlTW9uZ29EQiwiZ2V0Iiksc2V0OnMoKHRlLHplKT0+e3RlLmVuYWJsZU1vbmdvREI9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEosWiksZmkodGhpcyxudWxsLGdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlUzMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModGU9PiJlbmFibGVTMyJpbiB0ZSwiaGFzIiksZ2V0OnModGU9PnRlLmVuYWJsZVMzLCJnZXQiKSxzZXQ6cygodGUsemUpPT57dGUuZW5hYmxlUzM9emV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LGFlLHJlKSxmaSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVDbGlja0hvdXNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHRlPT4iZW5hYmxlQ2xpY2tIb3VzZSJpbiB0ZSwiaGFzIiksZ2V0OnModGU9PnRlLmVuYWJsZUNsaWNrSG91c2UsImdldCIpLHNldDpzKCh0ZSx6ZSk9Pnt0ZS5lbmFibGVDbGlja0hvdXNlPXplfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxWLEgpLGZpKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnNlfSxudWxsLHQpLG9lPXI9ZS52YWx1ZSxzZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpzZX0pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1zZXJ2aWNlLWNyZWF0ZS12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbe2lkOiIxIixuYW1lOiJPbmVib3ggUmVnaXN0cnkiLHVybDoicmVnaXN0cnkub25lYm94LmxvY2FsIn0se2lkOiIyIixuYW1lOiJEb2NrZXIgSHViIix1cmw6ImRvY2tlci5pbyJ9XX0KICAgICAgPjwvc3otc2VydmljZS1jcmVhdGUtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9RWEodGhpcyxuLFtdKTtnZXQgcmVnaXN0cmllcygpe3JldHVybiB0aGlzLiNlfXNldCByZWdpc3RyaWVzKHNlKXt0aGlzLiNlPXNlfSN0PShFYSh0aGlzLGwpLEVhKHRoaXMsYywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvYWRpbmcoc2Upe3RoaXMuI3Q9c2V9I2E9KEVhKHRoaXMscCksRWEodGhpcyxtLCIiKSk7Z2V0IHNlcnZpY2VOYW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlcnZpY2VOYW1lKHNlKXt0aGlzLiNhPXNlfSNyPShFYSh0aGlzLHYpLEVhKHRoaXMsYiwiIikpO2dldCBpbWFnZVVybCgpe3JldHVybiB0aGlzLiNyfXNldCBpbWFnZVVybChzZSl7dGhpcy4jcj1zZX0jcz0oRWEodGhpcyxnKSxFYSh0aGlzLGssIiIpKTtnZXQgc2VsZWN0ZWRSZWdpc3RyeSgpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RlZFJlZ2lzdHJ5KHNlKXt0aGlzLiNzPXNlfSNpPShFYSh0aGlzLEMpLEVhKHRoaXMsXyxbe2hvc3RQb3J0OiIiLGNvbnRhaW5lclBvcnQ6IiIscHJvdG9jb2w6InRjcCJ9XSkpO2dldCBwb3J0cygpe3JldHVybiB0aGlzLiNpfXNldCBwb3J0cyhzZSl7dGhpcy4jaT1zZX0jbz0oRWEodGhpcyx6KSxFYSh0aGlzLFQsW3trZXk6IiIsdmFsdWU6IiJ9XSkpO2dldCBlbnZWYXJzKCl7cmV0dXJuIHRoaXMuI299c2V0IGVudlZhcnMoc2Upe3RoaXMuI289c2V9I249KEVhKHRoaXMsUCksRWEodGhpcyxNLFtdKSk7Z2V0IHZvbHVtZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdm9sdW1lcyhzZSl7dGhpcy4jbj1zZX0jbD0oRWEodGhpcyxTKSxFYSh0aGlzLEEsIiIpKTtnZXQgY3B1TGltaXQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3B1TGltaXQoc2Upe3RoaXMuI2w9c2V9I2M9KEVhKHRoaXMsRiksRWEodGhpcyxqLCIiKSk7Z2V0IG1lbW9yeUxpbWl0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG1lbW9yeUxpbWl0KHNlKXt0aGlzLiNjPXNlfSNkPShFYSh0aGlzLEcpLEVhKHRoaXMsUiwiYWx3YXlzIikpO2dldCByZXN0YXJ0UG9saWN5KCl7cmV0dXJuIHRoaXMuI2R9c2V0IHJlc3RhcnRQb2xpY3koc2Upe3RoaXMuI2Q9c2V9I3U9KEVhKHRoaXMsVSksRWEodGhpcyxJLCJicmlkZ2UiKSk7Z2V0IG5ldHdvcmtNb2RlKCl7cmV0dXJuIHRoaXMuI3V9c2V0IG5ldHdvcmtNb2RlKHNlKXt0aGlzLiN1PXNlfSNwPShFYSh0aGlzLHEpLEVhKHRoaXMsdWUsITEpKTtnZXQgc2hvd0FkdmFuY2VkKCl7cmV0dXJuIHRoaXMuI3B9c2V0IHNob3dBZHZhbmNlZChzZSl7dGhpcy4jcD1zZX0jZj0oRWEodGhpcyxZKSxFYSh0aGlzLEosITEpKTtnZXQgZW5hYmxlTW9uZ29EQigpe3JldHVybiB0aGlzLiNmfXNldCBlbmFibGVNb25nb0RCKHNlKXt0aGlzLiNmPXNlfSNoPShFYSh0aGlzLFopLEVhKHRoaXMsYWUsITEpKTtnZXQgZW5hYmxlUzMoKXtyZXR1cm4gdGhpcy4jaH1zZXQgZW5hYmxlUzMoc2Upe3RoaXMuI2g9c2V9I209KEVhKHRoaXMscmUpLEVhKHRoaXMsViwhMSkpO2dldCBlbmFibGVDbGlja0hvdXNlKCl7cmV0dXJuIHRoaXMuI219c2V0IGVuYWJsZUNsaWNrSG91c2Uoc2Upe3RoaXMuI209c2V9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSBzdmcgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZm9ybS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZm9ybS1yb3cuc2luZ2xlIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmZvcm0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsIC5yZXF1aXJlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0LAogICAgICAuZm9ybS1zZWxlY3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5mb3JtLWlucHV0OmZvY3VzLAogICAgICAuZm9ybS1zZWxlY3Q6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLXNlbGVjdCB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuZHluYW1pYy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5keW5hbWljLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmR5bmFtaWMtcm93IC5mb3JtLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuZHluYW1pYy1yb3cgLmZvcm0tc2VsZWN0IHsKICAgICAgICB3aWR0aDogODBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnJlbW92ZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnJlbW92ZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVjYWNhIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAudG9nZ2xlLWFkdmFuY2VkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICB9CgogICAgICAudG9nZ2xlLWFkdmFuY2VkIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLWFkdmFuY2VkLm9wZW4gc3ZnIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOwogICAgICB9CgogICAgICAuY2hlY2tib3gtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGFjY2VudC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtaXRlbTpoYXMoaW5wdXQ6Y2hlY2tlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1pY29uIHsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtZGVzYyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiA0NHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggaW5wdXQgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAudG9nZ2xlLXNsaWRlciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXNsaWRlcjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGxlZnQ6IDNweDsKICAgICAgICBib3R0b206IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoIGlucHV0OmNoZWNrZWQgKyAudG9nZ2xlLXNsaWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCBpbnB1dDpjaGVja2VkICsgLnRvZ2dsZS1zbGlkZXI6OmJlZm9yZSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICB9CgogICAgICAuYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24ucHJpbWFyeTpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICB9CgogICAgICAuYnV0dG9uLnByaW1hcnk6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6IGN1cnJlbnRDb2xvcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj5EZXBsb3kgTmV3IFNlcnZpY2U8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1zdWJ0aXRsZSI+Q29uZmlndXJlIGFuZCBkZXBsb3kgYSBuZXcgRG9ja2VyIGNvbnRhaW5lcjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gQmFzaWMgSW5mbyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSI5IiB4Mj0iMTUiIHkyPSI5Ij48L2xpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSI5IiB5MT0iMTUiIHgyPSIxNSIgeTI9IjE1Ij48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEJhc2ljIEluZm9ybWF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+U2VydmljZSBOYW1lIDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+Kjwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJteS1zZXJ2aWNlIgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VydmljZU5hbWV9CiAgICAgICAgICAgICAgQGlucHV0PSR7c2U9PnRoaXMuc2VydmljZU5hbWU9c2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+VW5pcXVlIG5hbWUgZm9yIHRoZSBzZXJ2aWNlIChhbHBoYW51bWVyaWMgYW5kIGh5cGhlbnMpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPlJlZ2lzdHJ5PC9sYWJlbD4KICAgICAgICAgICAgPHNlbGVjdAogICAgICAgICAgICAgIGNsYXNzPSJmb3JtLXNlbGVjdCIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlbGVjdGVkUmVnaXN0cnl9CiAgICAgICAgICAgICAgQGNoYW5nZT0ke3NlPT50aGlzLnNlbGVjdGVkUmVnaXN0cnk9c2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5DdXN0b20gSW1hZ2UgVVJMPC9vcHRpb24+CiAgICAgICAgICAgICAgJHt0aGlzLnJlZ2lzdHJpZXMubWFwKHNlPT53YAogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ke3NlLmlkfT4ke3NlLm5hbWV9PC9vcHRpb24+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3cgc2luZ2xlIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkltYWdlIDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+Kjwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJuZ2lueDpsYXRlc3Qgb3IgcmVnaXN0cnkuZXhhbXBsZS5jb20vaW1hZ2U6dGFnIgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW1hZ2VVcmx9CiAgICAgICAgICAgICAgQGlucHV0PSR7c2U9PnRoaXMuaW1hZ2VVcmw9c2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+RG9ja2VyIGltYWdlIHRvIGRlcGxveSAoaW5jbHVkZSB0YWcpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFBvcnQgQ29uZmlndXJhdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjIiIHkxPSIxMiIgeDI9IjIyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPHBhdGggZD0iTTEyIDJhMTUuMyAxNS4zIDAgMCAxIDQgMTAgMTUuMyAxNS4zIDAgMCAxLTQgMTAgMTUuMyAxNS4zIDAgMCAxLTQtMTAgMTUuMyAxNS4zIDAgMCAxIDQtMTB6Ij48L3BhdGg+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIFBvcnQgQ29uZmlndXJhdGlvbgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtbGlzdCI+CiAgICAgICAgICAke3RoaXMucG9ydHMubWFwKChzZSx0ZSk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtcm93Ij4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJIb3N0IFBvcnQiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtzZS5ob3N0UG9ydH0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3plPT50aGlzLnVwZGF0ZVBvcnQodGUsImhvc3RQb3J0Iix6ZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJDb250YWluZXIgUG9ydCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3NlLmNvbnRhaW5lclBvcnR9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt6ZT0+dGhpcy51cGRhdGVQb3J0KHRlLCJjb250YWluZXJQb3J0Iix6ZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1zZWxlY3QiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtzZS5wcm90b2NvbH0KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHt6ZT0+dGhpcy51cGRhdGVQb3J0KHRlLCJwcm90b2NvbCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ0Y3AiPlRDUDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idWRwIj5VRFA8L29wdGlvbj4KICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAke3RoaXMucG9ydHMubGVuZ3RoPjE/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnJlbW92ZVBvcnQodGUpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmFkZFBvcnQoKX0+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEFkZCBQb3J0IE1hcHBpbmcKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEVudmlyb25tZW50IFZhcmlhYmxlcyAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ij48L3BvbHlsaW5lPgogICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjIwIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgRW52aXJvbm1lbnQgVmFyaWFibGVzCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1saXN0Ij4KICAgICAgICAgICR7dGhpcy5lbnZWYXJzLm1hcCgoc2UsdGUpPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLXJvdyI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iS0VZIgogICAgICAgICAgICAgICAgLnZhbHVlPSR7c2Uua2V5fQogICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMudXBkYXRlRW52VmFyKHRlLCJrZXkiLHplLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9InZhbHVlIgogICAgICAgICAgICAgICAgLnZhbHVlPSR7c2UudmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt6ZT0+dGhpcy51cGRhdGVFbnZWYXIodGUsInZhbHVlIix6ZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZW52VmFycy5sZW5ndGg+MT93YAogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlRW52VmFyKHRlKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZGQtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRFbnZWYXIoKX0+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEFkZCBFbnZpcm9ubWVudCBWYXJpYWJsZQogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUGxhdGZvcm0gU2VydmljZXMgLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjE0IiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgIDxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjYuMDEiIHkyPSI2Ij48L2xpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSI2LjAxIiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgUGxhdGZvcm0gU2VydmljZXMKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMnB4OyI+CiAgICAgICAgICBFbmFibGUgbWFuYWdlZCBpbmZyYXN0cnVjdHVyZSBzZXJ2aWNlcyBmb3IgdGhpcyBkZXBsb3ltZW50LiBSZXNvdXJjZXMgYXJlIGF1dG9tYXRpY2FsbHkgcHJvdmlzaW9uZWQgYW5kIGNvbm5lY3Rpb24gZGV0YWlscyBpbmplY3RlZCBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWxpc3QiPgogICAgICAgICAgPGxhYmVsIGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaWNvbiI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTEgMTcuOTNjLTMuOTUtLjQ5LTctMy44NS03LTcuOTMgMC0uNjIuMDgtMS4yMS4yMS0xLjc5TDkgMTV2MWMwIDEuMS45IDIgMiAydjEuOTN6bTYuOS0yLjU0Yy0uMjYtLjgxLTEtMS4zOS0xLjktMS4zOWgtMXYtM2MwLS41NS0uNDUtMS0xLTFIOHYtMmgyYy41NSAwIDEtLjQ1IDEtMVY3aDJjMS4xIDAgMi0uOSAyLTJ2LS40MWMyLjkzIDEuMTkgNSA0LjA2IDUgNy40MSAwIDIuMDgtLjggMy45Ny0yLjEgNS4zOXoiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLW5hbWUiPk1vbmdvREI8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1kZXNjIj5Eb2N1bWVudCBkYXRhYmFzZSB3aXRoIGF1dG8tcHJvdmlzaW9uZWQgY3JlZGVudGlhbHM8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2giPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuZW5hYmxlTW9uZ29EQn0KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtzZT0+dGhpcy5lbmFibGVNb25nb0RCPXNlLnRhcmdldC5jaGVja2VkfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idG9nZ2xlLXNsaWRlciI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICA8bGFiZWwgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pY29uIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMSAxNi41YzAgLjM4LS4yMS43MS0uNTMuODhsLTcuOSA0LjQ0Yy0uMTYuMTItLjM2LjE4LS41Ny4xOC0uMjEgMC0uNDEtLjA2LS41Ny0uMThsLTcuOS00LjQ0QS45OTEuOTkxIDAgMCAxIDMgMTYuNXYtOWMwLS4zOC4yMS0uNzEuNTMtLjg4bDcuOS00LjQ0Yy4xNi0uMTIuMzYtLjE4LjU3LS4xOC4yMSAwIC40MS4wNi41Ny4xOGw3LjkgNC40NGMuMzIuMTcuNTMuNS41My44OHY5eiIvPjwvc3ZnPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtbmFtZSI+UzMgU3RvcmFnZSAoTWluSU8pPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtZGVzYyI+T2JqZWN0IHN0b3JhZ2UgYnVja2V0IHdpdGggYXV0by1wcm92aXNpb25lZCBhY2Nlc3Mga2V5czwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5lbmFibGVTM30KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtzZT0+dGhpcy5lbmFibGVTMz1zZS50YXJnZXQuY2hlY2tlZH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvZ2dsZS1zbGlkZXIiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgPGxhYmVsIGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaWNvbiI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIvPjxyZWN0IHg9IjkiIHk9IjciIHdpZHRoPSI2IiBoZWlnaHQ9IjE1Ii8+PHJlY3QgeD0iMTYiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIvPjwvc3ZnPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtbmFtZSI+Q2xpY2tIb3VzZTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWRlc2MiPkFuYWx5dGljcyBkYXRhYmFzZSB3aXRoIGF1dG8tcHJvdmlzaW9uZWQgY3JlZGVudGlhbHM8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2giPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuZW5hYmxlQ2xpY2tIb3VzZX0KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtzZT0+dGhpcy5lbmFibGVDbGlja0hvdXNlPXNlLnRhcmdldC5jaGVja2VkfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idG9nZ2xlLXNsaWRlciI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBBZHZhbmNlZCBPcHRpb25zIFRvZ2dsZSAtLT4KICAgICAgPGJ1dHRvbgogICAgICAgIGNsYXNzPSJ0b2dnbGUtYWR2YW5jZWQgJHt0aGlzLnNob3dBZHZhbmNlZD8ib3BlbiI6IiJ9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dBZHZhbmNlZD0hdGhpcy5zaG93QWR2YW5jZWR9CiAgICAgID4KICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT4KICAgICAgICA8L3N2Zz4KICAgICAgICBBZHZhbmNlZCBPcHRpb25zCiAgICAgIDwvYnV0dG9uPgoKICAgICAgJHt0aGlzLnNob3dBZHZhbmNlZD93YAogICAgICAgIDwhLS0gVm9sdW1lcyAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBWb2x1bWUgTW91bnRzCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtbGlzdCI+CiAgICAgICAgICAgICR7dGhpcy52b2x1bWVzLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPk5vIHZvbHVtZXMgY29uZmlndXJlZDwvZGl2PgogICAgICAgICAgICBgOnRoaXMudm9sdW1lcy5tYXAoKHNlLHRlKT0+d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLXJvdyI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIvaG9zdC9wYXRoIgogICAgICAgICAgICAgICAgICAudmFsdWU9JHtzZS5ob3N0UGF0aH0KICAgICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMudXBkYXRlVm9sdW1lKHRlLCJob3N0UGF0aCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Ii9jb250YWluZXIvcGF0aCIKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7c2UuY29udGFpbmVyUGF0aH0KICAgICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMudXBkYXRlVm9sdW1lKHRlLCJjb250YWluZXJQYXRoIix6ZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtcm93Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgICAgID9jaGVja2VkPSR7c2UucmVhZE9ubHl9CiAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3plPT50aGlzLnVwZGF0ZVZvbHVtZSh0ZSwicmVhZE9ubHkiLHplLnRhcmdldC5jaGVja2VkKX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5STzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlVm9sdW1lKHRlKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZGQtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRWb2x1bWUoKX0+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBBZGQgVm9sdW1lIE1vdW50CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBSZXNvdXJjZSBMaW1pdHMgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIyMiIgaGVpZ2h0PSIxNiIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEiIHkxPSIxMCIgeDI9IjIzIiB5Mj0iMTAiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIFJlc291cmNlIExpbWl0cwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+Q1BVIExpbWl0PC9sYWJlbD4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJlLmcuLCAxLjAgb3IgMC41IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5jcHVMaW1pdH0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3NlPT50aGlzLmNwdUxpbWl0PXNlLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5OdW1iZXIgb2YgQ1BVcyAobGVhdmUgZW1wdHkgZm9yIHVubGltaXRlZCk8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+TWVtb3J5IExpbWl0PC9sYWJlbD4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJlLmcuLCA1MTJtIG9yIDFnIgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5tZW1vcnlMaW1pdH0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3NlPT50aGlzLm1lbW9yeUxpbWl0PXNlLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5NZW1vcnkgbGltaXQgKGxlYXZlIGVtcHR5IGZvciB1bmxpbWl0ZWQpPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gUmVzdGFydCBQb2xpY3kgJiBOZXR3b3JrIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIj48L2NpcmNsZT4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkuNCAxNWExLjY1IDEuNjUgMCAwIDAgLjMzIDEuODJsLjA2LjA2YTIgMiAwIDAgMSAwIDIuODMgMiAyIDAgMCAxLTIuODMgMGwtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMS0yLTJ2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMgMCAyIDIgMCAwIDEgMC0yLjgzbC4wNi0uMDZhMS42NSAxLjY1IDAgMCAwIC4zMy0xLjgyIDEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMSAyLTJoLjA5QTEuNjUgMS42NSAwIDAgMCA0LjYgOWExLjY1IDEuNjUgMCAwIDAtLjMzLTEuODJsLS4wNi0uMDZhMiAyIDAgMCAxIDAtMi44MyAyIDIgMCAwIDEgMi44MyAwbC4wNi4wNmExLjY1IDEuNjUgMCAwIDAgMS44Mi4zM0g5YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgMi0yIDIgMiAwIDAgMSAyIDJ2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMCAyIDIgMCAwIDEgMCAyLjgzbC0uMDYuMDZhMS42NSAxLjY1IDAgMCAwLS4zMyAxLjgyVjlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMS0yIDJoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxeiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQ29udGFpbmVyIFNldHRpbmdzCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5SZXN0YXJ0IFBvbGljeTwvbGFiZWw+CiAgICAgICAgICAgICAgPHNlbGVjdAogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0tc2VsZWN0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZXN0YXJ0UG9saWN5fQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke3NlPT50aGlzLnJlc3RhcnRQb2xpY3k9c2UudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImFsd2F5cyI+QWx3YXlzPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJvbi1mYWlsdXJlIj5PbiBGYWlsdXJlPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJuZXZlciI+TmV2ZXI8L29wdGlvbj4KICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+TmV0d29yayBNb2RlPC9sYWJlbD4KICAgICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1zZWxlY3QiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLm5ldHdvcmtNb2RlfQogICAgICAgICAgICAgICAgQGNoYW5nZT0ke3NlPT50aGlzLm5ldHdvcmtNb2RlPXNlLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJicmlkZ2UiPkJyaWRnZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaG9zdCI+SG9zdDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ibm9uZSI+Tm9uZTwvb3B0aW9uPgogICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnV0dG9uIHNlY29uZGFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2FuY2VsKCl9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24KICAgICAgICAgIGNsYXNzPSJidXR0b24gcHJpbWFyeSIKICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubG9hZGluZ3x8IXRoaXMuaXNWYWxpZCgpfQogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgPgogICAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2A8ZGl2IGNsYXNzPSJzcGlubmVyIj48L2Rpdj5gOiIifQogICAgICAgICAgJHt0aGlzLmxvYWRpbmc/IkRlcGxveWluZy4uLiI6IkRlcGxveSBTZXJ2aWNlIn0KICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICBgfWlzVmFsaWQoKXtyZXR1cm4gdGhpcy5zZXJ2aWNlTmFtZS50cmltKCkhPT0iIiYmdGhpcy5pbWFnZVVybC50cmltKCkhPT0iIn1hZGRQb3J0KCl7dGhpcy5wb3J0cz1bLi4udGhpcy5wb3J0cyx7aG9zdFBvcnQ6IiIsY29udGFpbmVyUG9ydDoiIixwcm90b2NvbDoidGNwIn1dfXJlbW92ZVBvcnQoc2Upe3RoaXMucG9ydHM9dGhpcy5wb3J0cy5maWx0ZXIoKHRlLHplKT0+emUhPT1zZSl9dXBkYXRlUG9ydChzZSx0ZSx6ZSl7bGV0IE9lPVsuLi50aGlzLnBvcnRzXTtPZVtzZV1bdGVdPXplLHRoaXMucG9ydHM9T2V9YWRkRW52VmFyKCl7dGhpcy5lbnZWYXJzPVsuLi50aGlzLmVudlZhcnMse2tleToiIix2YWx1ZToiIn1dfXJlbW92ZUVudlZhcihzZSl7dGhpcy5lbnZWYXJzPXRoaXMuZW52VmFycy5maWx0ZXIoKHRlLHplKT0+emUhPT1zZSl9dXBkYXRlRW52VmFyKHNlLHRlLHplKXtsZXQgT2U9Wy4uLnRoaXMuZW52VmFyc107T2Vbc2VdW3RlXT16ZSx0aGlzLmVudlZhcnM9T2V9YWRkVm9sdW1lKCl7dGhpcy52b2x1bWVzPVsuLi50aGlzLnZvbHVtZXMse2hvc3RQYXRoOiIiLGNvbnRhaW5lclBhdGg6IiIscmVhZE9ubHk6ITF9XX1yZW1vdmVWb2x1bWUoc2Upe3RoaXMudm9sdW1lcz10aGlzLnZvbHVtZXMuZmlsdGVyKCh0ZSx6ZSk9PnplIT09c2UpfXVwZGF0ZVZvbHVtZShzZSx0ZSx6ZSl7bGV0IE9lPVsuLi50aGlzLnZvbHVtZXNdO09lW3NlXVt0ZV09emUsdGhpcy52b2x1bWVzPU9lfWhhbmRsZUNhbmNlbCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNhbmNlbCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ3JlYXRlKCl7bGV0IHNlPXtuYW1lOnRoaXMuc2VydmljZU5hbWUudHJpbSgpLGltYWdlOnRoaXMuaW1hZ2VVcmwudHJpbSgpLHBvcnRzOnRoaXMucG9ydHMuZmlsdGVyKHRlPT50ZS5ob3N0UG9ydCYmdGUuY29udGFpbmVyUG9ydCksZW52VmFyczp0aGlzLmVudlZhcnMuZmlsdGVyKHRlPT50ZS5rZXkpLHZvbHVtZXM6dGhpcy52b2x1bWVzLmZpbHRlcih0ZT0+dGUuaG9zdFBhdGgmJnRlLmNvbnRhaW5lclBhdGgpLGNwdUxpbWl0OnRoaXMuY3B1TGltaXQsbWVtb3J5TGltaXQ6dGhpcy5tZW1vcnlMaW1pdCxyZXN0YXJ0UG9saWN5OnRoaXMucmVzdGFydFBvbGljeSxuZXR3b3JrTW9kZTp0aGlzLm5ldHdvcmtNb2RlLGVuYWJsZU1vbmdvREI6dGhpcy5lbmFibGVNb25nb0RCLGVuYWJsZVMzOnRoaXMuZW5hYmxlUzMsZW5hYmxlQ2xpY2tIb3VzZTp0aGlzLmVuYWJsZUNsaWNrSG91c2V9O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNyZWF0ZS1zZXJ2aWNlIix7ZGV0YWlsOnNlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVzZXQoKXt0aGlzLnNlcnZpY2VOYW1lPSIiLHRoaXMuaW1hZ2VVcmw9IiIsdGhpcy5zZWxlY3RlZFJlZ2lzdHJ5PSIiLHRoaXMucG9ydHM9W3tob3N0UG9ydDoiIixjb250YWluZXJQb3J0OiIiLHByb3RvY29sOiJ0Y3AifV0sdGhpcy5lbnZWYXJzPVt7a2V5OiIiLHZhbHVlOiIifV0sdGhpcy52b2x1bWVzPVtdLHRoaXMuY3B1TGltaXQ9IiIsdGhpcy5tZW1vcnlMaW1pdD0iIix0aGlzLnJlc3RhcnRQb2xpY3k9ImFsd2F5cyIsdGhpcy5uZXR3b3JrTW9kZT0iYnJpZGdlIix0aGlzLnNob3dBZHZhbmNlZD0hMSx0aGlzLmVuYWJsZU1vbmdvREI9ITEsdGhpcy5lbmFibGVTMz0hMSx0aGlzLmVuYWJsZUNsaWNrSG91c2U9ITF9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEVhKHRoaXMsSCl9c3RhdGlje0VhKHIsdCl9fTtyZXR1cm4gb2U9cn0pKCl9KTt2YXIgbWllLF81LG5SYSxxdWE9ZigoKT0+e2xlKCk7bWllPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxfNT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0sblJhPSgoKT0+e2xldCBhPVtpZSgic3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTelBsYXRmb3JtU2VydmljZURldGFpbFZpZXciKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOkFycmF5fSldLHU9WyQoe3R5cGU6Qm9vbGVhbn0pXSxtaWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJzZXJ2aWNlImluIGcsImhhcyIpLGdldDpzKGc9Pmcuc2VydmljZSwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnNlcnZpY2U9eX0sInNldCIpfSxtZXRhZGF0YTpifSxuLGwpLG1pZSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+ImxvZ3MiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5sb2dzLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cubG9ncz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCksbWllKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4iYWN0aW9uTG9hZGluZyJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLmFjdGlvbkxvYWRpbmcsImdldCIpLHNldDpzKChnLHkpPT57Zy5hY3Rpb25Mb2FkaW5nPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbSx2KSxtaWUobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCx0KSx4PXI9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMDAwcHg7Ij4KICAgICAgPHN6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tpZDoiMSIsbmFtZToiTW9uZ29EQiIsdHlwZToibW9uZ29kYiIsc3RhdHVzOiJydW5uaW5nIix2ZXJzaW9uOiI3LjAuNCIsaG9zdDoibG9jYWxob3N0Iixwb3J0OjI3MDE3LGNyZWRlbnRpYWxzOnt1c2VybmFtZToiYWRtaW4iLHBhc3N3b3JkOiJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjIifSxjb25maWc6e3JlcGxpY2FTZXQ6InJzMCIsYXV0aEVuYWJsZWQ6ITB9LG1ldHJpY3M6e2NwdToxMixtZW1vcnk6NDUsc3RvcmFnZToyMyxjb25uZWN0aW9uczo4fX19CiAgICAgICAgLmxvZ3M9JHtbe3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMiIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNvbm5lY3Rpb24gYWNjZXB0ZWQgZnJvbSAxMjcuMC4wLjE6NTQzMjEifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIwIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiSW5kZXggYnVpbGQgY29tcGxldGVkIG9uIGNvbGxlY3Rpb24gdXNlcnMifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjE1IixsZXZlbDoid2FybiIsbWVzc2FnZToiU2xvdyBxdWVyeSBkZXRlY3RlZDogMS4ycyBvbiBjb2xsZWN0aW9uIG9yZGVycyJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTAiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJDaGVja3BvaW50IGNvbXBsZXRlIn1dfQogICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiUGxhdGZvcm0iXTsjZT1fNSh0aGlzLG4sbnVsbCk7Z2V0IHNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VydmljZShiKXt0aGlzLiNlPWJ9I3Q9KF81KHRoaXMsbCksXzUodGhpcyxjLFtdKSk7Z2V0IGxvZ3MoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9ncyhiKXt0aGlzLiN0PWJ9I2E9KF81KHRoaXMscCksXzUodGhpcyxtLCExKSk7Z2V0IGFjdGlvbkxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYWN0aW9uTG9hZGluZyhiKXt0aGlzLiNhPWJ9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuc2VydmljZS1pY29uIHsKICAgICAgICB3aWR0aDogNTZweDsKICAgICAgICBoZWlnaHQ6IDU2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuc2VydmljZS1pY29uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWRldGFpbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAuaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kYW5nZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlcjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy10aWxlLmZ1bGwtd2lkdGggewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuaW5mby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAuaW5mby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY29weS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuY29weS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWV0cmljcy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAubWV0cmljcy1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWV0cmljLWNhcmQgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWZpbGwubG93IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlYWIzMDgiLCIjZWFiMzA4Iil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbC5oaWdoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jb25maWctaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1pdGVtOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jb25maWcta2V5IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNvbmZpZy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNvbmZpZy12YWx1ZS50cnVlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlLmZhbHNlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuc2VydmljZT93YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiI+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJTZXJ2aWNlSWNvbigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWRldGFpbHMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLW5hbWUiPiR7dGhpcy5zZXJ2aWNlLm5hbWV9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbWV0YSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc2VydmljZS5zdGF0dXN9Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAke3RoaXMuc2VydmljZS5zdGF0dXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdGhpcy5zZXJ2aWNlLnN0YXR1cy5zbGljZSgxKX0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+VmVyc2lvbiAke3RoaXMuc2VydmljZS52ZXJzaW9ufTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAke3RoaXMuc2VydmljZS5zdGF0dXM9PT0icnVubmluZyI/d2AKICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZXN0YXJ0KCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIzIDQgMjMgMTAgMTcgMTAiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxIDIwIDEgMTQgNyAxNCI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjUxIDlhOSA5IDAgMCAxIDE0Ljg1LTMuMzZMMjMgMTBNMSAxNGw0LjY0IDQuMzZBOSA5IDAgMCAwIDIwLjQ5IDE1Ij48L3BhdGg+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgUmVzdGFydAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkYW5nZXIiID9kaXNhYmxlZD0ke3RoaXMuYWN0aW9uTG9hZGluZ30gQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU3RvcCgpfT4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cmVjdCB4PSI2IiB5PSI2IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIj48L3JlY3Q+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgU3RvcAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTdGFydCgpfT4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNSwzIDE5LDEyIDUsMjEiPjwvcG9seWdvbj4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBTdGFydAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICAgICAgPCEtLSBDb25uZWN0aW9uIEluZm8gLS0+CiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0IDExYTUgNSAwIDAgMC03LjU0LS41NGwtMyAzYTUgNSAwIDAgMCA3LjA3IDcuMDdsMS43MS0xLjcxIj48L3BhdGg+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgQ29ubmVjdGlvbgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Ib3N0PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4KICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmhvc3R9CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY29weVRvQ2xpcGJvYXJkKHRoaXMuc2VydmljZS5ob3N0KX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+UG9ydDwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+JHt0aGlzLnNlcnZpY2UucG9ydH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuc2VydmljZS5jcmVkZW50aWFscz8udXNlcm5hbWU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+VXNlcm5hbWU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLnVzZXJuYW1lfQogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY29weVRvQ2xpcGJvYXJkKHRoaXMuc2VydmljZS5jcmVkZW50aWFscy51c2VybmFtZSl9PgogICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDE1SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMiAydjEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPlBhc3N3b3JkPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPuKAouKAouKAouKAouKAouKAouKAouKAojwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHM/LmFjY2Vzc0tleT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5BY2Nlc3MgS2V5PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgICAke3RoaXMuc2VydmljZS5jcmVkZW50aWFscy5hY2Nlc3NLZXl9CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLmFjY2Vzc0tleSl9PgogICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDE1SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMiAydjEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPlNlY3JldCBLZXk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCiPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gQ29uZmlndXJhdGlvbiAtLT4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQgMTVhMS42NSAxLjY1IDAgMCAwIC4zMyAxLjgybC4wNi4wNmEyIDIgMCAwIDEgMCAyLjgzIDIgMiAwIDAgMS0yLjgzIDBsLS4wNi0uMDZhMS42NSAxLjY1IDAgMCAwLTEuODItLjMzIDEuNjUgMS42NSAwIDAgMC0xIDEuNTFWMjFhMiAyIDAgMCAxLTIgMiAyIDIgMCAwIDEtMi0ydi0uMDlBMS42NSAxLjY1IDAgMCAwIDkgMTkuNGExLjY1IDEuNjUgMCAwIDAtMS44Mi4zM2wtLjA2LjA2YTIgMiAwIDAgMS0yLjgzIDAgMiAyIDAgMCAxIDAtMi44M2wuMDYtLjA2YTEuNjUgMS42NSAwIDAgMCAuMzMtMS44MiAxLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEgMi0yaC4wOUExLjY1IDEuNjUgMCAwIDAgNC42IDlhMS42NSAxLjY1IDAgMCAwLS4zMy0xLjgybC0uMDYtLjA2YTIgMiAwIDAgMSAwLTIuODMgMiAyIDAgMCAxIDIuODMgMGwuMDYuMDZhMS42NSAxLjY1IDAgMCAwIDEuODIuMzNIOWExLjY1IDEuNjUgMCAwIDAgMS0xLjUxVjNhMiAyIDAgMCAxIDItMiAyIDIgMCAwIDEgMiAydi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDAgMSAyLjgzIDAgMiAyIDAgMCAxIDAgMi44M2wtLjA2LjA2YTEuNjUgMS42NSAwIDAgMC0uMzMgMS44MlY5YTEuNjUgMS42NSAwIDAgMCAxLjUxIDFIMjFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEtMiAyaC0uMDlhMS42NSAxLjY1IDAgMCAwLTEuNTEgMXoiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBDb25maWd1cmF0aW9uCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAke09iamVjdC5lbnRyaWVzKHRoaXMuc2VydmljZS5jb25maWcpLm1hcCgoW2IsZ10pPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb25maWcta2V5Ij4ke3RoaXMuZm9ybWF0Q29uZmlnS2V5KGIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb25maWctdmFsdWUgJHt0eXBlb2YgZz09ImJvb2xlYW4iP2c/InRydWUiOiJmYWxzZSI6IiJ9Ij4ke3RoaXMuZm9ybWF0Q29uZmlnVmFsdWUoZyl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8IS0tIE1ldHJpY3MgLS0+CiAgICAgICAgJHt0aGlzLnNlcnZpY2UubWV0cmljcz93YAogICAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iZnVsbC13aWR0aCI+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTgiIHkxPSIyMCIgeDI9IjE4IiB5Mj0iMTAiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMjAiIHgyPSIxMiIgeTI9IjQiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSIyMCIgeDI9IjYiIHkyPSIxNCI+PC9saW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBSZXNvdXJjZSBVc2FnZQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWNzLWdyaWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWNhcmQiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLm1ldHJpY3MuY3B1fSU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWxhYmVsIj5DUFU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsICR7dGhpcy5nZXRQcm9ncmVzc0NsYXNzKHRoaXMuc2VydmljZS5tZXRyaWNzLmNwdSl9IiBzdHlsZT0id2lkdGg6ICR7dGhpcy5zZXJ2aWNlLm1ldHJpY3MuY3B1fSUiPjwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWNhcmQiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLm1ldHJpY3MubWVtb3J5fSU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWxhYmVsIj5NZW1vcnk8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsICR7dGhpcy5nZXRQcm9ncmVzc0NsYXNzKHRoaXMuc2VydmljZS5tZXRyaWNzLm1lbW9yeSl9IiBzdHlsZT0id2lkdGg6ICR7dGhpcy5zZXJ2aWNlLm1ldHJpY3MubWVtb3J5fSUiPjwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWNhcmQiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5zZXJ2aWNlLm1ldHJpY3Muc3RvcmFnZX0lPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1sYWJlbCI+U3RvcmFnZTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3Muc3RvcmFnZSl9IiBzdHlsZT0id2lkdGg6ICR7dGhpcy5zZXJ2aWNlLm1ldHJpY3Muc3RvcmFnZX0lIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLm1ldHJpY3MuY29ubmVjdGlvbnMhPT12b2lkIDA/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWNhcmQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5jb25uZWN0aW9uc308L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPkNvbm5lY3Rpb25zPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICBgOiIifQoKICAgICAgICA8IS0tIExvZ3MgLS0+CiAgICAgICAgPGRpdiBzdHlsZT0iZ3JpZC1jb2x1bW46IDEgLyAtMTsiPgogICAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICAgIC5sYWJlbD0keyJTZXJ2aWNlIExvZ3MifQogICAgICAgICAgICAubG9nRW50cmllcz0ke3RoaXMubG9ncy5tYXAoYj0+KHt0aW1lc3RhbXA6Yi50aW1lc3RhbXAuaW5jbHVkZXMoIlQiKT9iLnRpbWVzdGFtcDpuZXcgRGF0ZShiLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxsZXZlbDpiLmxldmVsLG1lc3NhZ2U6Yi5tZXNzYWdlfSkpfQogICAgICAgICAgICAuYXV0b1Njcm9sbD0keyEwfQogICAgICAgICAgICAubWF4RW50cmllcz0kezJlM30KICAgICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgOndgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIHNlcnZpY2Ugc2VsZWN0ZWQ8L2Rpdj5gfXJlbmRlclNlcnZpY2VJY29uKCl7c3dpdGNoKHRoaXMuc2VydmljZT8udHlwZSl7Y2FzZSJtb25nb2RiIjpyZXR1cm4gd2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTEgMTcuOTNjLTMuOTUtLjQ5LTctMy44NS03LTcuOTMgMC0uNjIuMDgtMS4yMS4yMS0xLjc5TDkgMTV2MWMwIDEuMS45IDIgMiAydjEuOTN6bTYuOS0yLjU0Yy0uMjYtLjgxLTEtMS4zOS0xLjktMS4zOWgtMXYtM2MwLS41NS0uNDUtMS0xLTFIOHYtMmgyYy41NSAwIDEtLjQ1IDEtMVY3aDJjMS4xIDAgMi0uOSAyLTJ2LS40MWMyLjkzIDEuMTkgNSA0LjA2IDUgNy40MSAwIDIuMDgtLjggMy45Ny0yLjEgNS4zOXoiLz48L3N2Zz5gO2Nhc2UibWluaW8iOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMSAxNi41YzAgLjM4LS4yMS43MS0uNTMuODhsLTcuOSA0LjQ0Yy0uMTYuMTItLjM2LjE4LS41Ny4xOC0uMjEgMC0uNDEtLjA2LS41Ny0uMThsLTcuOS00LjQ0QS45OTEuOTkxIDAgMCAxIDMgMTYuNXYtOWMwLS4zOC4yMS0uNzEuNTMtLjg4bDcuOS00LjQ0Yy4xNi0uMTIuMzYtLjE4LjU3LS4xOC4yMSAwIC40MS4wNi41Ny4xOGw3LjkgNC40NGMuMzIuMTcuNTMuNS41My44OHY5eiIvPjwvc3ZnPmA7Y2FzZSJjbGlja2hvdXNlIjpyZXR1cm4gd2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIvPjxyZWN0IHg9IjkiIHk9IjciIHdpZHRoPSI2IiBoZWlnaHQ9IjE1Ii8+PHJlY3QgeD0iMTYiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIvPjwvc3ZnPmA7Y2FzZSJyZWRpcyI6cmV0dXJuIHdgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTEyIDJMMiA3bDEwIDUgMTAtNS0xMC01ek0yIDE3bDEwIDUgMTAtNU0yIDEybDEwIDUgMTAtNSIvPjwvc3ZnPmA7ZGVmYXVsdDpyZXR1cm4gd2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PjxyZWN0IHg9IjIiIHk9IjE0IiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iNi4wMSIgeTI9IjYiPjwvbGluZT48bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iNi4wMSIgeTI9IjE4Ij48L2xpbmU+PC9zdmc+YH19Z2V0UHJvZ3Jlc3NDbGFzcyhiKXtyZXR1cm4gYjw1MD8ibG93IjpiPDgwPyJtZWRpdW0iOiJoaWdoIn1mb3JtYXRDb25maWdLZXkoYil7cmV0dXJuIGIucmVwbGFjZSgvKFtBLVpdKS9nLCIgJDEiKS5yZXBsYWNlKC9eLi8sZz0+Zy50b1VwcGVyQ2FzZSgpKX1mb3JtYXRDb25maWdWYWx1ZShiKXtyZXR1cm4gdHlwZW9mIGI9PSJib29sZWFuIj9iPyJFbmFibGVkIjoiRGlzYWJsZWQiOlN0cmluZyhiKX1jb3B5VG9DbGlwYm9hcmQoYil7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYiksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29weSIse2RldGFpbDpiLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlU3RhcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdGFydCIse2RldGFpbDp0aGlzLnNlcnZpY2UsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTdG9wKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic3RvcCIse2RldGFpbDp0aGlzLnNlcnZpY2UsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZXN0YXJ0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVzdGFydCIse2RldGFpbDp0aGlzLnNlcnZpY2UsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksXzUodGhpcyx2KX1zdGF0aWN7XzUocix0KX19O3JldHVybiB4PXJ9KSgpfSk7dmFyIFNHLEZjLGxSYSxWdWE9ZigoKT0+e2xlKCk7U0c9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEZjPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxsUmE9KCgpPT57bGV0IGE9W2llKCJzei1kb21haW4tZGV0YWlsLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pEb21haW5EZXRhaWxWaWV3Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sZD1bJCh7dHlwZTpPYmplY3R9KV0sdT1bJCh7dHlwZTpBcnJheX0pXSx4PVskKHt0eXBlOkJvb2xlYW59KV0sU0codGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb21haW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImRvbWFpbiJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLmRvbWFpbiwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmRvbWFpbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG4sbCksU0codGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZXJ0aWZpY2F0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iY2VydGlmaWNhdGUiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5jZXJ0aWZpY2F0ZSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmNlcnRpZmljYXRlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYyxwKSxTRyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRuc1JlY29yZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImRuc1JlY29yZHMiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5kbnNSZWNvcmRzLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MuZG5zUmVjb3Jkcz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG0sdiksU0codGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25Mb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKEM9PiJhY3Rpb25Mb2FkaW5nImluIEMsImhhcyIpLGdldDpzKEM9PkMuYWN0aW9uTG9hZGluZywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmFjdGlvbkxvYWRpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLFNHKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmt9LG51bGwsdCkseT1yPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTAwMHB4OyI+CiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7e2lkOiIxIixuYW1lOiJleGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCIscHJveHlSb3V0ZXM6WyIvYXBpLyoiLCIvYXBwLyoiXX19CiAgICAgICAgLmNlcnRpZmljYXRlPSR7e2lkOiIxIixkb21haW46ImV4YW1wbGUuY29tIixpc3N1ZXI6IkxldCdzIEVuY3J5cHQiLHZhbGlkRnJvbToiMjAyNC0wMS0xMCIsdmFsaWRVbnRpbDoiMjAyNC0wNC0xMCIsZGF5c1JlbWFpbmluZzo0NSxzdGF0dXM6InZhbGlkIixhdXRvUmVuZXc6ITAsY2hhaW46WyJSMyIsIklTUkcgUm9vdCBYMSJdfX0KICAgICAgICAuZG5zUmVjb3Jkcz0ke1t7aWQ6IjEiLHR5cGU6IkEiLG5hbWU6IkAiLHZhbHVlOiIxOTIuMTY4LjEuMTAwIix0dGw6MzYwMH0se2lkOiIyIix0eXBlOiJDTkFNRSIsbmFtZToid3d3Iix2YWx1ZToiZXhhbXBsZS5jb20iLHR0bDozNjAwfSx7aWQ6IjMiLHR5cGU6Ik1YIixuYW1lOiJAIix2YWx1ZToibWFpbC5leGFtcGxlLmNvbSIsdHRsOjM2MDAscHJpb3JpdHk6MTB9LHtpZDoiNCIsdHlwZToiVFhUIixuYW1lOiJAIix2YWx1ZToidj1zcGYxIGluY2x1ZGU6X3NwZi5leGFtcGxlLmNvbSB+YWxsIix0dGw6MzYwMH1dfQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9RmModGhpcyxuLG51bGwpO2dldCBkb21haW4oKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG9tYWluKGspe3RoaXMuI2U9a30jdD0oRmModGhpcyxsKSxGYyh0aGlzLGMsbnVsbCkpO2dldCBjZXJ0aWZpY2F0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBjZXJ0aWZpY2F0ZShrKXt0aGlzLiN0PWt9I2E9KEZjKHRoaXMscCksRmModGhpcyxtLFtdKSk7Z2V0IGRuc1JlY29yZHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZG5zUmVjb3JkcyhrKXt0aGlzLiNhPWt9I3I9KEZjKHRoaXMsdiksRmModGhpcyxiLCExKSk7Z2V0IGFjdGlvbkxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYWN0aW9uTG9hZGluZyhrKXt0aGlzLiNyPWt9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kb21haW4tbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnBlbmRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmM2M3IiwicmdiYSgyNDUsIDE1OCwgMTEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDk3NzA2IiwiI2Y1OWUwYiIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5kb21haW4tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnZlcmlmaWVkLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC52ZXJpZmllZC1iYWRnZSBzdmcgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kYW5nZXI6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5mdWxsLXdpZHRoIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgoKICAgICAgLnNlY3Rpb24tY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmNlcnQtc3RhdHVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmMGZkZjQiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuY2VydC1zdGF0dXMuZXhwaXJpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmYmViIiwicmdiYSgyNDUsIDE1OCwgMTEsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LXN0YXR1cy5leHBpcmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjJmMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuY2VydC1pY29uLnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbi5leHBpcmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYzYzciLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkOTc3MDYiLCIjZjU5ZTBiIil9OwogICAgICB9CgogICAgICAuY2VydC1pY29uLmV4cGlyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY2VydC1pY29uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuY2VydC1pbmZvIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuY2VydC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cyB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuY2VydC1kYXlzLnZhbGlkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuY2VydC1kYXlzLmV4cGlyaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkOTc3MDYiLCIjZjU5ZTBiIil9OwogICAgICB9CgogICAgICAuY2VydC1kYXlzLmV4cGlyZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5pbmZvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlLmVuYWJsZWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jaGFpbi1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoYWluLWJhZGdlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5kbnMtdGFibGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZG5zLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDgwcHggMWZyIDJmciA4MHB4IDYwcHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuZG5zLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDgwcHggMWZyIDJmciA4MHB4IDYwcHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5kbnMtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kbnMtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgbWFyZ2luOiAwIC0xNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuZG5zLXR5cGUgewogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5kbnMtbmFtZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRucy12YWx1ZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmRucy10dGwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5kbnMtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmljb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmljb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmljb24tYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbiBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLnJvdXRlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnJvdXRlLWJhZGdlIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmRvbWFpbj93YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbi1uYW1lIj4KICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi5uYW1lfQogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5kb21haW4uc3RhdHVzfSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAke3RoaXMuZG9tYWluLnN0YXR1cy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0aGlzLmRvbWFpbi5zdGF0dXMuc2xpY2UoMSl9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluLW1ldGEiPgogICAgICAgICAgICAke3RoaXMuZG9tYWluLnZlcmlmaWVkP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZlcmlmaWVkLWJhZGdlIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDExLjA4VjEyYTEwIDEwIDAgMSAxLTUuOTMtOS4xNCI+PC9wYXRoPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMiA0IDEyIDE0LjAxIDkgMTEuMDEiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIFZlcmlmaWVkCiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgOndgPHNwYW4+Tm90IHZlcmlmaWVkPC9zcGFuPmB9CiAgICAgICAgICAgIDxzcGFuPkFkZGVkICR7dGhpcy5kb21haW4uY3JlYXRlZEF0fTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5kb21haW4udmVyaWZpZWQ/IiI6d2AKICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVWZXJpZnkoKX0+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjAgNiA5IDE3IDQgMTIiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgVmVyaWZ5IERvbWFpbgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIGB9CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRhbmdlciIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGUoKX0+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzIDYgNSA2IDIxIDYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNm0zIDBWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIj48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBEZWxldGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDwhLS0gQ2VydGlmaWNhdGUgU2VjdGlvbiAtLT4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjExIiB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0Ij48L3BhdGg+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgU1NMIENlcnRpZmljYXRlCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LXN0YXR1cyAke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzfSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LWljb24gJHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1c30iPgogICAgICAgICAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzPT09InZhbGlkIj93YAogICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIyIDQgMTIgMTQuMDEgOSAxMS4wMSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgYDp0aGlzLmNlcnRpZmljYXRlLnN0YXR1cz09PSJleHBpcmluZyI/d2AKICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTUiIHkxPSI5IiB4Mj0iOSIgeTI9IjE1Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iOSIgeTE9IjkiIHgyPSIxNSIgeTI9IjE1Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtaW5mbyI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtdGl0bGUiPiR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXM9PT0idmFsaWQiPyJDZXJ0aWZpY2F0ZSBWYWxpZCI6dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXM9PT0iZXhwaXJpbmciPyJDZXJ0aWZpY2F0ZSBFeHBpcmluZyBTb29uIjoiQ2VydGlmaWNhdGUgRXhwaXJlZCJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtc3VidGl0bGUiPklzc3VlZCBieSAke3RoaXMuY2VydGlmaWNhdGUuaXNzdWVyfTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LWRheXMgJHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1c30iPiR7TWF0aC5hYnModGhpcy5jZXJ0aWZpY2F0ZS5kYXlzUmVtYWluaW5nKX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1kYXlzLWxhYmVsIj4ke3RoaXMuY2VydGlmaWNhdGUuZGF5c1JlbWFpbmluZz49MD8iZGF5cyBsZWZ0IjoiZGF5cyBhZ28ifTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5WYWxpZCBGcm9tPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPiR7dGhpcy5jZXJ0aWZpY2F0ZS52YWxpZEZyb219PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5WYWxpZCBVbnRpbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMuY2VydGlmaWNhdGUudmFsaWRVbnRpbH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkF1dG8tUmVuZXc8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSAke3RoaXMuY2VydGlmaWNhdGUuYXV0b1JlbmV3PyJlbmFibGVkIjoiIn0iPiR7dGhpcy5jZXJ0aWZpY2F0ZS5hdXRvUmVuZXc/IkVuYWJsZWQiOiJEaXNhYmxlZCJ9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICR7dGhpcy5jZXJ0aWZpY2F0ZS5jaGFpbiYmdGhpcy5jZXJ0aWZpY2F0ZS5jaGFpbi5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+Q2VydGlmaWNhdGUgQ2hhaW48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYWluLWxpc3QiPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5jZXJ0aWZpY2F0ZS5jaGFpbi5tYXAoaz0+d2A8c3BhbiBjbGFzcz0iY2hhaW4tYmFkZ2UiPiR7a308L3NwYW4+YCl9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBjZXJ0aWZpY2F0ZSBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5jZXJ0aWZpY2F0ZT93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZW5ld0NlcnRpZmljYXRlKCl9PlJlbmV3PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPCEtLSBQcm94eSBSb3V0ZXMgU2VjdGlvbiAtLT4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE2IDMgMjEgMyAyMSA4Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjQiIHkxPSIyMCIgeDI9IjIxIiB5Mj0iMyI+PC9saW5lPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjEgMTYgMjEgMjEgMTYgMjEiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTUiIHkxPSIxNSIgeDI9IjIxIiB5Mj0iMjEiPjwvbGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI0IiB5MT0iNCIgeDI9IjkiIHkyPSI5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgUHJveHkgUm91dGVzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAke3RoaXMuZG9tYWluLnByb3h5Um91dGVzJiZ0aGlzLmRvbWFpbi5wcm94eVJvdXRlcy5sZW5ndGg+MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdXRlcy1saXN0Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5kb21haW4ucHJveHlSb3V0ZXMubWFwKGs9PndgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3V0ZS1iYWRnZSI+JHtrfTwvc3Bhbj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIHByb3h5IHJvdXRlcyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPCEtLSBETlMgUmVjb3JkcyBTZWN0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGUgY2xhc3M9ImZ1bGwtd2lkdGgiPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIyIiB5MT0iMTIiIHgyPSIyMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIgMmExNS4zIDE1LjMgMCAwIDEgNCAxMCAxNS4zIDE1LjMgMCAwIDEtNCAxMCAxNS4zIDE1LjMgMCAwIDEtNC0xMCAxNS4zIDE1LjMgMCAwIDEgNC0xMHoiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBETlMgUmVjb3JkcwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICAgJHt0aGlzLmRuc1JlY29yZHMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkbnMtdGFibGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG5zLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgIDxzcGFuPlR5cGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPk5hbWU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPlZhbHVlPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj5UVEw8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLmRuc1JlY29yZHMubWFwKGs9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRucy1yb3ciPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkbnMtdHlwZSI+JHtrLnR5cGV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkbnMtbmFtZSI+JHtrLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkbnMtdmFsdWUiIHRpdGxlPSIke2sudmFsdWV9Ij4ke2sucHJpb3JpdHk/YCR7ay5wcmlvcml0eX0gYDoiIn0ke2sudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkbnMtdHRsIj4ke2sudHRsfXM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRucy1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iRWRpdCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRWRpdERuc1JlY29yZChrKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTEgNEg0YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE4LjUgMi41YTIuMTIxIDIuMTIxIDAgMCAxIDMgM0wxMiAxNWwtNCAxIDEtNCA5LjUtOS41eiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24gZGFuZ2VyIiB0aXRsZT0iRGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGVEbnNSZWNvcmQoayl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyA2IDUgNiAyMSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZtMyAwVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBETlMgcmVjb3JkcyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBZGREbnNSZWNvcmQoKX0+CiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBBZGQgUmVjb3JkCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgIDwvZGl2PgogICAgYDp3YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBkb21haW4gc2VsZWN0ZWQ8L2Rpdj5gfWhhbmRsZVZlcmlmeSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZlcmlmeS1kb21haW4iLHtkZXRhaWw6dGhpcy5kb21haW4sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWxldGUtZG9tYWluIix7ZGV0YWlsOnRoaXMuZG9tYWluLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUmVuZXdDZXJ0aWZpY2F0ZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlbmV3LWNlcnRpZmljYXRlIix7ZGV0YWlsOnRoaXMuY2VydGlmaWNhdGUsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBZGREbnNSZWNvcmQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhZGQtZG5zLXJlY29yZCIse2RldGFpbDp0aGlzLmRvbWFpbixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUVkaXREbnNSZWNvcmQoayl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZWRpdC1kbnMtcmVjb3JkIix7ZGV0YWlsOmssYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGVEbnNSZWNvcmQoayl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLWRucy1yZWNvcmQiLHtkZXRhaWw6ayxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxGYyh0aGlzLGcpfXN0YXRpY3tGYyhyLHQpfX07cmV0dXJuIHk9cn0pKCl9KTt2YXIgekcsQmMsY1JhLGp1YT1mKCgpPT57bGUoKTt6Rz1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sQmM9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LGNSYT0oKCk9PntsZXQgYT1baWUoInN6LW10YS1saXN0LXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pNdGFMaXN0VmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6QXJyYXl9KV0sZD1bSygpXSx1PVtLKCldLHg9W0soKV0sekcodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbWFpbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoQz0+ImVtYWlscyJpbiBDLCJoYXMiKSxnZXQ6cyhDPT5DLmVtYWlscywiZ2V0Iiksc2V0OnMoKEMsTik9PntDLmVtYWlscz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG4sbCksekcodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hRdWVyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4ic2VhcmNoUXVlcnkiaW4gQywiaGFzIiksZ2V0OnMoQz0+Qy5zZWFyY2hRdWVyeSwiZ2V0Iiksc2V0OnMoKEMsTik9PntDLnNlYXJjaFF1ZXJ5PU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYyxwKSx6Ryh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c0ZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4ic3RhdHVzRmlsdGVyImluIEMsImhhcyIpLGdldDpzKEM9PkMuc3RhdHVzRmlsdGVyLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0Muc3RhdHVzRmlsdGVyPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbSx2KSx6Ryh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbkZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhDPT4iZGlyZWN0aW9uRmlsdGVyImluIEMsImhhcyIpLGdldDpzKEM9PkMuZGlyZWN0aW9uRmlsdGVyLCJnZXQiKSxzZXQ6cygoQyxOKT0+e0MuZGlyZWN0aW9uRmlsdGVyPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSx6RyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTprfSxudWxsLHQpLHk9cj1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otbXRhLWxpc3QtdmlldwogICAgICAgIC5lbWFpbHM9JHtbe2lkOiIxIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToibm9yZXBseUBzZXJ2ZS56b25lIix0bzoidXNlckBleGFtcGxlLmNvbSIsc3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MzA6MjIiLG1lc3NhZ2VJZDoiPGFiYzEyM0BzZXJ2ZS56b25lPiIsc2l6ZToiMTIuNCBLQiJ9LHtpZDoiMiIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJib3VuY2VkIixmcm9tOiJhbGVydHNAc2VydmUuem9uZSIsdG86ImludmFsaWRAbm93aGVyZS50ZXN0IixzdWJqZWN0OiJTZXJ2aWNlIEFsZXJ0OiBDUFUgVXNhZ2UgSGlnaCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjI4OjEwIixtZXNzYWdlSWQ6IjxkZWY0NTZAc2VydmUuem9uZT4iLHNpemU6IjguMiBLQiJ9LHtpZDoiMyIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToic3VwcG9ydEBjdXN0b21lci5jb20iLHRvOiJhZG1pbkBzZXJ2ZS56b25lIixzdWJqZWN0OiJSZTogSW5mcmFzdHJ1Y3R1cmUgUmV2aWV3Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MjU6MDAiLG1lc3NhZ2VJZDoiPGdoaTc4OUBjdXN0b21lci5jb20+IixzaXplOiIyNC4xIEtCIn0se2lkOiI0IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InJlamVjdGVkIixmcm9tOiJiaWxsaW5nQHNlcnZlLnpvbmUiLHRvOiJibG9ja2VkQHNwYW0tZG9tYWluLnRlc3QiLHN1YmplY3Q6Ikludm9pY2UgIzIwMjQtMDAxIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MjA6NDUiLG1lc3NhZ2VJZDoiPGprbDAxMkBzZXJ2ZS56b25lPiIsc2l6ZToiNDUuNiBLQiJ9LHtpZDoiNSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWZlcnJlZCIsZnJvbToibm9yZXBseUBzZXJ2ZS56b25lIix0bzoic2xvd0ByZW1vdGUtc2VydmVyLnRlc3QiLHN1YmplY3Q6IlBhc3N3b3JkIFJlc2V0IFJlcXVlc3QiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxNTozMCIsbWVzc2FnZUlkOiI8bW5vMzQ1QHNlcnZlLnpvbmU+IixzaXplOiI2LjggS0IifSx7aWQ6IjYiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206ImNpQGdpdGh1Yi5jb20iLHRvOiJkZXZvcHNAc2VydmUuem9uZSIsc3ViamVjdDoiQnVpbGQgIzQ1MjEgcGFzc2VkIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MTA6MDAiLG1lc3NhZ2VJZDoiPHBxcjY3OEBnaXRodWIuY29tPiIsc2l6ZToiMTUuMyBLQiJ9LHtpZDoiNyIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJwZW5kaW5nIixmcm9tOiJyZXBvcnRzQHNlcnZlLnpvbmUiLHRvOiJ0ZWFtQHNlcnZlLnpvbmUiLHN1YmplY3Q6IldlZWtseSBJbmZyYXN0cnVjdHVyZSBSZXBvcnQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDowNTowMCIsbWVzc2FnZUlkOiI8c3R1OTAxQHNlcnZlLnpvbmU+IixzaXplOiIxMDIuNyBLQiJ9XX0KICAgICAgPjwvc3otbXRhLWxpc3Qtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1UQSJdOyNlPUJjKHRoaXMsbixbXSk7Z2V0IGVtYWlscygpe3JldHVybiB0aGlzLiNlfXNldCBlbWFpbHMoayl7dGhpcy4jZT1rfSN0PShCYyh0aGlzLGwpLEJjKHRoaXMsYywiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiN0fXNldCBzZWFyY2hRdWVyeShrKXt0aGlzLiN0PWt9I2E9KEJjKHRoaXMscCksQmModGhpcyxtLCJhbGwiKSk7Z2V0IHN0YXR1c0ZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXNGaWx0ZXIoayl7dGhpcy4jYT1rfSNyPShCYyh0aGlzLHYpLEJjKHRoaXMsYiwiYWxsIikpO2dldCBkaXJlY3Rpb25GaWx0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGlyZWN0aW9uRmlsdGVyKGspe3RoaXMuI3I9a31nZXQgZmlsdGVyZWRFbWFpbHMoKXtyZXR1cm4gdGhpcy5lbWFpbHMuZmlsdGVyKGs9PntpZih0aGlzLnN0YXR1c0ZpbHRlciE9PSJhbGwiJiZrLnN0YXR1cyE9PXRoaXMuc3RhdHVzRmlsdGVyfHx0aGlzLmRpcmVjdGlvbkZpbHRlciE9PSJhbGwiJiZrLmRpcmVjdGlvbiE9PXRoaXMuZGlyZWN0aW9uRmlsdGVyKXJldHVybiExO2lmKHRoaXMuc2VhcmNoUXVlcnkpe2xldCBDPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gay5mcm9tLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoQyl8fGsudG8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhDKXx8ay5zdWJqZWN0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoQyl8fGsubWVzc2FnZUlkLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoQyl9cmV0dXJuITB9KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmNoaXAtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlc3VsdHMtY291bnQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDkwcHggMS41ZnIgMS41ZnIgMmZyIDE0MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDkwcHggMS41ZnIgMS41ZnIgMmZyIDE0MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWljb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1pY29uLmluYm91bmQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24taWNvbi5vdXRib3VuZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kZWxpdmVyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmJvdW5jZWQsCiAgICAgIC5zdGF0dXMtYmFkZ2UucmVqZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlZmVycmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZW1haWwtZnJvbSwKICAgICAgLmVtYWlsLXRvIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5lbWFpbC1zdWJqZWN0IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmVtYWlsLXRpbWVzdGFtcCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuZmlsdGVyZWRFbWFpbHM7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgIDxpbnB1dAogICAgICAgICAgY2xhc3M9InNlYXJjaC1pbnB1dCIKICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGJ5IGZyb20sIHRvLCBzdWJqZWN0LCBvciBtZXNzYWdlIElELi4uIgogICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgIEBpbnB1dD0ke0M9Pnt0aGlzLnNlYXJjaFF1ZXJ5PUMudGFyZ2V0LnZhbHVlfX0KICAgICAgICAvPgogICAgICAgIDxkaXYgY2xhc3M9ImNoaXAtZ3JvdXAiPgogICAgICAgICAgJHtbImFsbCIsImluYm91bmQiLCJvdXRib3VuZCJdLm1hcChDPT53YAogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmRpcmVjdGlvbkZpbHRlcj09PUM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5kaXJlY3Rpb25GaWx0ZXI9Q319CiAgICAgICAgICAgID4ke0M9PT0iYWxsIj8iQWxsIjpDPT09ImluYm91bmQiPyJJbmJvdW5kIjoiT3V0Ym91bmQifTwvYnV0dG9uPgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiZGVsaXZlcmVkIiwiYm91bmNlZCIsInJlamVjdGVkIiwiZGVmZXJyZWQiLCJwZW5kaW5nIl0ubWFwKEM9PndgCiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuc3RhdHVzRmlsdGVyPT09Qz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLnN0YXR1c0ZpbHRlcj1DfX0KICAgICAgICAgICAgPiR7Qz09PSJhbGwiPyJBbGwiOkMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrQy5zbGljZSgxKX08L2J1dHRvbj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InJlc3VsdHMtY291bnQiPlNob3dpbmcgJHtrLmxlbmd0aH0gb2YgJHt0aGlzLmVtYWlscy5sZW5ndGh9IGVtYWlsczwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGFibGUtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+RnJvbTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlRvPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3ViamVjdDwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlRpbWVzdGFtcDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke2subGVuZ3RoPjA/ay5tYXAoQz0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRW1haWxDbGljayhDKX0+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXJlY3Rpb24taWNvbiAke0MuZGlyZWN0aW9ufSI+CiAgICAgICAgICAgICAgJHtDLmRpcmVjdGlvbj09PSJpbmJvdW5kIj93YDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PHBvbHlsaW5lIHBvaW50cz0iMTkgMTIgMTIgMTkgNSAxMiIvPjwvc3ZnPmA6d2A8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjEyIiB5Mj0iNSIvPjxwb2x5bGluZSBwb2ludHM9IjUgMTIgMTIgNSAxOSAxMiIvPjwvc3ZnPmB9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke0Muc3RhdHVzfSI+JHtDLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtZnJvbSIgdGl0bGU9IiR7Qy5mcm9tfSI+JHtDLmZyb219PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtdG8iIHRpdGxlPSIke0MudG99Ij4ke0MudG99PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtc3ViamVjdCIgdGl0bGU9IiR7Qy5zdWJqZWN0fSI+JHtDLnN1YmplY3R9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtdGltZXN0YW1wIj4ke0MudGltZXN0YW1wfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gZW1haWxzIGZvdW5kPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUVtYWlsQ2xpY2soayl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZW1haWwtY2xpY2siLHtkZXRhaWw6ayxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxCYyh0aGlzLGcpfXN0YXRpY3tCYyhyLHQpfX07cmV0dXJuIHk9cn0pKCl9KTt2YXIgVXVhLEpKZSxkUmEsV3VhPWYoKCk9PntsZSgpO1V1YT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sSkplPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxkUmE9KCgpPT57bGV0IGE9W2llKCJzei1tdGEtZGV0YWlsLXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pNdGFEZXRhaWxWaWV3Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpPYmplY3R9KV0sVXVhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW1haWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocD0+ImVtYWlsImluIHAsImhhcyIpLGdldDpzKHA9PnAuZW1haWwsImdldCIpLHNldDpzKChwLHUpPT57cC5lbWFpbD11fSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbCksVXVhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsdCksZD1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1tdGEtZGV0YWlsLXZpZXcKICAgICAgICAuZW1haWw9JHt7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIix0b0xpc3Q6WyJ1c2VyQGV4YW1wbGUuY29tIl0sc3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MzA6MjIiLG1lc3NhZ2VJZDoiPGFiYzEyM0BzZXJ2ZS56b25lPiIsc2l6ZToiMTIuNCBLQiIsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuZXhhbXBsZS5jb20gSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLVNUQVJUVExTIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlNUQVJUVExTIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjAgUmVhZHkgdG8gc3RhcnQgVExTIixyZXNwb25zZUNvZGU6MjIwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtQVVUSCBQTEFJTiBMT0dJTiIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgU0laRSA1MjQyODgwMCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJBVVRIIFBMQUlOIEFIVnpaWElBY0dGemMzZHZjbVE9In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMzUgMi43LjAgQXV0aGVudGljYXRpb24gc3VjY2Vzc2Z1bCIscmVzcG9uc2VDb2RlOjIzNX0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PG5vcmVwbHlAc2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjx1c2VyQGV4YW1wbGUuY29tPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIEFjY2VwdGVkIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkRBVEEifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6JzM1NCBFbnRlciBtZXNzYWdlLCBlbmRpbmcgd2l0aCAiLiIgb24gYSBsaW5lIGJ5IGl0c2VsZicscmVzcG9uc2VDb2RlOjM1NH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiIuIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0sgaWQ9MXBRMnJTLTAwMDNBYi1DNCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJRVUlUIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjEgbWFpbC5leGFtcGxlLmNvbSBjbG9zaW5nIGNvbm5lY3Rpb24iLHJlc3BvbnNlQ29kZToyMjF9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjEwLjAuMS41MCIsc291cmNlSG9zdG5hbWU6Im1haWwuc2VydmUuem9uZSIsZGVzdGluYXRpb25JcDoiOTMuMTg0LjIxNi4zNCIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjMiLHRsc0NpcGhlcjoiVExTX0FFU18yNTZfR0NNX1NIQTM4NCIsYXV0aGVudGljYXRlZDohMCxhdXRoTWV0aG9kOiJQTEFJTiIsYXV0aFVzZXI6Im5vcmVwbHlAc2VydmUuem9uZSJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46InNlcnZlLnpvbmUiLGRraW06InBhc3MiLGRraW1Eb21haW46InNlcnZlLnpvbmUiLGRtYXJjOiJwYXNzIixkbWFyY1BvbGljeToicmVqZWN0In0saGVhZGVyczp7RnJvbToibm9yZXBseUBzZXJ2ZS56b25lIixUbzoidXNlckBleGFtcGxlLmNvbSIsU3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIixEYXRlOiJNb24sIDE1IEphbiAyMDI0IDE0OjMwOjIyICswMDAwIiwiTUlNRS1WZXJzaW9uIjoiMS4wIiwiQ29udGVudC1UeXBlIjoidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sYm9keTonPGh0bWw+XFxuPGhlYWQ+PHRpdGxlPldlbGNvbWU8L3RpdGxlPjwvaGVhZD5cXG48Ym9keT5cXG4gIDxoMT5XZWxjb21lIHRvIHNlcnZlLnpvbmUhPC9oMT5cXG4gIDxwPllvdXIgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS48L3A+XFxuICA8YSBocmVmPSJodHRwczovL3NlcnZlLnpvbmUvZGFzaGJvYXJkIj5HbyB0byBEYXNoYm9hcmQ8L2E+XFxuPC9ib2R5PlxcbjwvaHRtbD4nfX0KICAgICAgPjwvc3otbXRhLWRldGFpbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTVRBIl07I2U9SkplKHRoaXMsbixudWxsKTtnZXQgZW1haWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW1haWwoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmJhY2stbGluayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJhY2stbGluazpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmVtYWlsLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZW1haWwtc3ViamVjdCB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGVsaXZlcmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ib3VuY2VkLAogICAgICAuc3RhdHVzLWJhZGdlLnJlamVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kZWZlcnJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWY5YzMiLCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjYThhMDQiLCIjZmFjYzE1Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnBlbmRpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24tYmFkZ2UuaW5ib3VuZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24tYmFkZ2Uub3V0Ym91bmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4tY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnNpZGViYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmNhcmQtaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5jYXJkLXRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY2FyZC1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNhcmQtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAuY2FyZC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5zbXRwLWxvZy1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuc210cC1sb2ctY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnNtdHAtbG9nLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuc210cC1sb2ctY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLyogUGhhc2Ugc2VwYXJhdG9ycyAqLwogICAgICAuc210cC1waGFzZS1zZXBhcmF0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQoKICAgICAgLnNtdHAtcGhhc2UtbGluZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLXBoYXNlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC8qIENoYXQgYnViYmxlcyAqLwogICAgICAuc210cC1idWJibGUgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICAgICAgbWF4LXdpZHRoOiA3MCU7CiAgICAgIH0KCiAgICAgIC5zbXRwLWJ1YmJsZS5jbGllbnQgewogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEyKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5zbXRwLWJ1YmJsZS5zZXJ2ZXIgewogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjA2KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuMTApIil9OwogICAgICAgIGJvcmRlci1yaWdodDogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzRhZGU4MCIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLWNvbW1hbmQgewogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNtdHAtYnViYmxlLW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLWJ1YmJsZS5zZXJ2ZXIgLnNtdHAtYnViYmxlLW1ldGEgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi10YWcgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4OwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tdGFnLmNsaWVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLXRhZy5zZXJ2ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiM0YWRlODAiKX07CiAgICAgIH0KCiAgICAgIC8qIFJlc3BvbnNlIGNvZGUgYmFkZ2VzICovCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogMXB4IDdweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5yZXNwb25zZS1jb2RlLWJhZGdlLmNvZGUtMnh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4xNSkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjI1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAucmVzcG9uc2UtY29kZS1iYWRnZS5jb2RlLTN4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjI1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAucmVzcG9uc2UtY29kZS1iYWRnZS5jb2RlLTR4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjUwLCAyMDQsIDIxLCAwLjE1KSIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjI1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjYThhMDQiLCIjZmFjYzE1Iil9OwogICAgICB9CgogICAgICAucmVzcG9uc2UtY29kZS1iYWRnZS5jb2RlLTV4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLyogU01UUCBtZXRhZGF0YSBiYW5uZXIg4oCUIHNpdHMgaW5zaWRlIGNvbnRlbnQsIGFib3ZlIHRoZSBsb2cgKi8KICAgICAgLnNtdHAtaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLWJhZGdlLmluYm91bmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEyKSIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLWJhZGdlLm91dGJvdW5kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmVtYWlsLWJvZHktY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRscy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAuYXV0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtZG9tYWluIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICB9CgogICAgICAuYXV0aC1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmF1dGgtYmFkZ2UucGFzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLWJhZGdlLmZhaWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuYXV0aC1iYWRnZS5zb2Z0ZmFpbCwKICAgICAgLmF1dGgtYmFkZ2UubmV1dHJhbCwKICAgICAgLmF1dGgtYmFkZ2Uubm9uZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWY5YzMiLCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjYThhMDQiLCIjZmFjYzE1Iil9OwogICAgICB9CgogICAgICBkZWVzLXRpbGUucmVqZWN0aW9uLWNhcmQ6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZmVjYWNhIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLnJlamVjdGlvbi1jb250ZW50IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnJlamVjdGlvbi1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAucmVqZWN0aW9uLXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmVmMmYyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTFiMWIiLCIjZmNhNWE1Iil9OwogICAgICB9CgogICAgICAucmVqZWN0aW9uLXRleHQ6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm5vLWVtYWlsIHsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2lmKCF0aGlzLmVtYWlsKXJldHVybiB3YDxkaXYgY2xhc3M9Im5vLWVtYWlsIj5ObyBlbWFpbCBzZWxlY3RlZDwvZGl2PmA7bGV0IGM9dGhpcy5lbWFpbDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUJhY2soKX0+CiAgICAgICAgICA8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBCYWNrIHRvIEVtYWlscwogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWhlYWRlciI+CiAgICAgICAgPGgxIGNsYXNzPSJlbWFpbC1zdWJqZWN0Ij4ke2Muc3ViamVjdH08L2gxPgogICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLWdyb3VwIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtjLnN0YXR1c30iPiR7Yy5zdGF0dXN9PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImRpcmVjdGlvbi1iYWRnZSAke2MuZGlyZWN0aW9ufSI+JHtjLmRpcmVjdGlvbn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1jb250ZW50Ij4KICAgICAgICAgIDwhLS0gRW1haWwgTWV0YWRhdGEgLS0+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkVtYWlsIE1ldGFkYXRhPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkZyb208L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7Yy5mcm9tfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Ubzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtjLnRvTGlzdC5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtjLmNjJiZjLmNjLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5DQzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2MuY2Muam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+U3ViamVjdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtjLnN1YmplY3R9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkRhdGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7Yy50aW1lc3RhbXB9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPk1lc3NhZ2UgSUQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7Yy5tZXNzYWdlSWR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlNpemU8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7Yy5zaXplfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDwhLS0gU01UUCBUcmFuc2FjdGlvbiBMb2cgLS0+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPlNNVFAgVHJhbnNhY3Rpb24gTG9nPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNtdHAtZGlyZWN0aW9uLWJhZGdlICR7Yy5kaXJlY3Rpb259Ij4ke2MuZGlyZWN0aW9ufTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtaGVhZGVyLXN1YnRpdGxlIj4KICAgICAgICAgICAgICAke2MuZGlyZWN0aW9uPT09Im91dGJvdW5kIj9gJHtjLmNvbm5lY3Rpb25JbmZvLnNvdXJjZUhvc3RuYW1lfSBcdTIxOTIgJHtjLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uSXB9OiR7Yy5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvblBvcnR9YDpgJHtjLmNvbm5lY3Rpb25JbmZvLnNvdXJjZUlwfSBcdTIxOTIgJHtjLmNvbm5lY3Rpb25JbmZvLnNvdXJjZUhvc3RuYW1lfToke2MuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25Qb3J0fWB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMucmVuZGVyU210cExvZyhjKX0KICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJjYXJkLWZvb3RlciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNvcHlTbXRwTG9nKCl9PgogICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBDb3B5IExvZwogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDwhLS0gRW1haWwgQm9keSAtLT4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+RW1haWwgQm9keSAoRXNjYXBlZCk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+UmF3IGNvbnRlbnQg4oCUIEhUTUwgaXMgbm90IHJlbmRlcmVkPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBjbGFzcz0iZW1haWwtYm9keS1jb250YWluZXIiPiR7Yy5ib2R5fTwvcHJlPgogICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgPCEtLSBDb25uZWN0aW9uIEluZm8gLS0+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkNvbm5lY3Rpb24gSW5mbzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Tb3VyY2UgSVA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7Yy5jb25uZWN0aW9uSW5mby5zb3VyY2VJcH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+U291cmNlIEhvc3RuYW1lPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2MuY29ubmVjdGlvbkluZm8uc291cmNlSG9zdG5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkRlc3RpbmF0aW9uPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2MuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25JcH06JHtjLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uUG9ydH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+VExTPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAke2MuY29ubmVjdGlvbkluZm8udGxzVmVyc2lvbj93YDxzcGFuIGNsYXNzPSJ0bHMtYmFkZ2UiPiR7Yy5jb25uZWN0aW9uSW5mby50bHNWZXJzaW9ufTwvc3Bhbj5gOiJOb25lIn0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke2MuY29ubmVjdGlvbkluZm8udGxzQ2lwaGVyP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5DaXBoZXI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtjLmNvbm5lY3Rpb25JbmZvLnRsc0NpcGhlcn08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+QXV0aGVudGljYXRlZDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtjLmNvbm5lY3Rpb25JbmZvLmF1dGhlbnRpY2F0ZWQ/IlllcyI6Ik5vIn08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7Yy5jb25uZWN0aW9uSW5mby5hdXRoZW50aWNhdGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5BdXRoIE1ldGhvZDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2MuY29ubmVjdGlvbkluZm8uYXV0aE1ldGhvZH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+QXV0aCBVc2VyPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7Yy5jb25uZWN0aW9uSW5mby5hdXRoVXNlcn08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8IS0tIEF1dGhlbnRpY2F0aW9uIFJlc3VsdHMgLS0+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkF1dGhlbnRpY2F0aW9uIFJlc3VsdHM8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dGgtcm93Ij4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWxhYmVsIj5TUEY8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWRvbWFpbiI+JHtjLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5zcGZEb21haW59PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1iYWRnZSAke2MuYXV0aGVudGljYXRpb25SZXN1bHRzLnNwZn0iPiR7Yy5hdXRoZW50aWNhdGlvblJlc3VsdHMuc3BmfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRoLXJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1sYWJlbCI+REtJTTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtZG9tYWluIj4ke2MuYXV0aGVudGljYXRpb25SZXN1bHRzLmRraW1Eb21haW59PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1iYWRnZSAke2MuYXV0aGVudGljYXRpb25SZXN1bHRzLmRraW19Ij4ke2MuYXV0aGVudGljYXRpb25SZXN1bHRzLmRraW19PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dGgtcm93Ij4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWxhYmVsIj5ETUFSQzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtZG9tYWluIj5wb2xpY3k6ICR7Yy5hdXRoZW50aWNhdGlvblJlc3VsdHMuZG1hcmNQb2xpY3l9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1iYWRnZSAke2MuYXV0aGVudGljYXRpb25SZXN1bHRzLmRtYXJjfSI+JHtjLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5kbWFyY308L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPCEtLSBSZWplY3Rpb24gRGV0YWlscyAoY29uZGl0aW9uYWwpIC0tPgogICAgICAgICAgJHtjLnN0YXR1cz09PSJyZWplY3RlZCJ8fGMuc3RhdHVzPT09ImJvdW5jZWQiP3dgCiAgICAgICAgICAgIDxkZWVzLXRpbGUgY2xhc3M9InJlamVjdGlvbi1jYXJkIj4KICAgICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5SZWplY3Rpb24gRGV0YWlsczwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgICAke2MucmVqZWN0aW9uUmVhc29uP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlamVjdGlvbi1sYWJlbCI+UmVqZWN0aW9uIFJlYXNvbjwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWplY3Rpb24tdGV4dCI+JHtjLnJlamVjdGlvblJlYXNvbn08L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAke2MuYm91bmNlTWVzc2FnZT93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWplY3Rpb24tbGFiZWwiPkJvdW5jZSBNZXNzYWdlPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlamVjdGlvbi10ZXh0Ij4ke2MuYm91bmNlTWVzc2FnZX08L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWdldFJlc3BvbnNlQ29kZUJhZGdlQ2xhc3MoYyl7cmV0dXJuIGM+PTUwMD8iY29kZS01eHgiOmM+PTQwMD8iY29kZS00eHgiOmM+PTMwMD8iY29kZS0zeHgiOiJjb2RlLTJ4eCJ9Z2V0U210cFBoYXNlcyhjKXtsZXQgcD1bXSx1PSIiLG09MDtmb3IobGV0IHYgb2YgYyl7bGV0IHg9di5jb21tYW5kLnRvVXBwZXJDYXNlKCksYj11O2lmKHYuZGlyZWN0aW9uPT09ImNsaWVudCImJih4LnN0YXJ0c1dpdGgoIkVITE8iKXx8eC5zdGFydHNXaXRoKCJIRUxPIik/KG0rKyxtPT09MT9iPSJjb25uZWN0aW9uIjpiPSJwb3N0LXRscyIpOng9PT0iU1RBUlRUTFMiP2I9InRscyI6eC5zdGFydHNXaXRoKCJBVVRIIik/Yj0iYXV0aCI6eC5zdGFydHNXaXRoKCJNQUlMIEZST00iKXx8eC5zdGFydHNXaXRoKCJSQ1BUIFRPIil8fHg9PT0iREFUQSJ8fHg9PT0iLiI/Yj0idHJhbnNmZXIiOng9PT0iUVVJVCImJihiPSJjbG9zaW5nIikpLHYuZGlyZWN0aW9uPT09InNlcnZlciImJmI9PT0iIiYmKGI9dXx8ImNvbm5lY3Rpb24iKSxiPT09IiImJihiPSJjb25uZWN0aW9uIiksYiE9PXUpe3U9YjtsZXQgZz17Y29ubmVjdGlvbjoiQ29ubmVjdGlvbiIsdGxzOiJUTFMgTmVnb3RpYXRpb24iLCJwb3N0LXRscyI6IlBvc3QtVExTIEhhbmRzaGFrZSIsYXV0aDoiQXV0aGVudGljYXRpb24iLHRyYW5zZmVyOiJNYWlsIFRyYW5zZmVyIixjbG9zaW5nOiJDbG9zaW5nIn07cC5wdXNoKHtwaGFzZTpiLGxhYmVsOmdbYl18fGIsZW50cmllczpbXX0pfXAubGVuZ3RoPT09MCYmcC5wdXNoKHtwaGFzZToiY29ubmVjdGlvbiIsbGFiZWw6IkNvbm5lY3Rpb24iLGVudHJpZXM6W119KSxwW3AubGVuZ3RoLTFdLmVudHJpZXMucHVzaCh2KX1yZXR1cm4gcH1yZW5kZXJTbXRwTG9nKGMpe2xldCBwPXRoaXMuZ2V0U210cFBoYXNlcyhjLnNtdHBMb2cpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzbXRwLWxvZy1jb250YWluZXIiPgogICAgICAgICR7cC5tYXAodT0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtcGhhc2Utc2VwYXJhdG9yIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1waGFzZS1saW5lIj48L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNtdHAtcGhhc2UtbGFiZWwiPiR7dS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtcGhhc2UtbGluZSI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dS5lbnRyaWVzLm1hcChtPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLWJ1YmJsZSAke20uZGlyZWN0aW9ufSI+CiAgICAgICAgICAgICAgJHttLmRpcmVjdGlvbj09PSJzZXJ2ZXIiJiZtLnJlc3BvbnNlQ29kZT93YAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlc3BvbnNlLWNvZGUtYmFkZ2UgJHt0aGlzLmdldFJlc3BvbnNlQ29kZUJhZGdlQ2xhc3MobS5yZXNwb25zZUNvZGUpfSI+JHttLnJlc3BvbnNlQ29kZX08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLWJ1YmJsZS1jb21tYW5kIj4ke20uY29tbWFuZH08L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLWJ1YmJsZS1tZXRhIj4KICAgICAgICAgICAgICAgIDxzcGFuPiR7bS50aW1lc3RhbXB9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+wrc8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic210cC1kaXJlY3Rpb24tdGFnICR7bS5kaXJlY3Rpb259Ij4ke20uZGlyZWN0aW9uPT09ImNsaWVudCI/IkNsaWVudCI6IlNlcnZlciJ9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9Y29weVNtdHBMb2coKXtpZighdGhpcy5lbWFpbClyZXR1cm47bGV0IGM9dGhpcy5lbWFpbC5zbXRwTG9nLm1hcChwPT5gWyR7cC50aW1lc3RhbXB9XSAke3AuZGlyZWN0aW9uPT09ImNsaWVudCI/IkM6IjoiUzoifSAke3AuY29tbWFuZH1gKS5qb2luKGAKYCk7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYyl9aGFuZGxlQmFjaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJhY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxKSmUodGhpcyxsKX1zdGF0aWN7SkplKHIsdCl9fTtyZXR1cm4gZD1yfSkoKX0pO2Z1bmN0aW9uIHVSYShhKXtyZXR1cm4gdHlwZW9mIGE9PSJudW1iZXIiP1N0cmluZyhhKTpBcnJheS5pc0FycmF5KGEpP2EubWFwKGU9PnR5cGVvZiBlPT0ibnVtYmVyIj9TdHJpbmcoZSk6YCR7ZS5mcm9tfVx1MjAxMyR7ZS50b31gKS5qb2luKCIsICIpOlN0cmluZyhhKX1mdW5jdGlvbiBwUmEoYSl7bGV0IGU9W107Zm9yKGxldCB0IG9mIGEpe2xldCByPUFycmF5LmlzQXJyYXkodC5ob3N0KT90Lmhvc3Q6W3QuaG9zdF0saT10LnBvcnQ9PT0icHJlc2VydmUiPyIocHJlc2VydmUpIjpTdHJpbmcodC5wb3J0KTtmb3IobGV0IG8gb2YgcillLnB1c2goYCR7b306JHtpfWApfXJldHVybiBlfXZhciBlZXQsQ0csZlJhLEd1YT1mKCgpPT57bGUoKTtlZXQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LENHPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfTtzKHVSYSwiZm9ybWF0UG9ydHMiKTtzKHBSYSwiZm9ybWF0VGFyZ2V0cyIpO2ZSYT0oKCk9PntsZXQgYT1baWUoInN6LXJvdXRlLWNhcmQiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pSb3V0ZUNhcmQiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVskKHt0eXBlOk9iamVjdH0pXSxkPVskKHt0eXBlOkJvb2xlYW59KV0sZWV0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm91dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InJvdXRlImluIHYsImhhcyIpLGdldDpzKHY9PnYucm91dGUsImdldCIpLHNldDpzKCh2LHgpPT57di5yb3V0ZT14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCksZWV0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0FjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InNob3dBY3Rpb25zImluIHYsImhhcyIpLGdldDpzKHY9PnYuc2hvd0FjdGlvbnMsImdldCIpLHNldDpzKCh2LHgpPT57di5zaG93QWN0aW9ucz14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksZWV0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89cygoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNTIwcHg7Ij4KICAgICAgPHN6LXJvdXRlLWNhcmQKICAgICAgICAucm91dGU9JHt7bmFtZToiQVBJIEdhdGV3YXkiLGRlc2NyaXB0aW9uOiJNYWluIEFQSSBnYXRld2F5IHdpdGggVExTIHRlcm1pbmF0aW9uIGFuZCBsb2FkIGJhbGFuY2luZyIsZW5hYmxlZDohMCxwcmlvcml0eToxMCx0YWdzOlsid2ViIiwiYXBpIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czpbNDQzLDg0NDNdLGRvbWFpbnM6WyJhcGkuZXhhbXBsZS5jb20iLCIqLmFwaS5zZXJ2ZS56b25lIl0scGF0aDoiL2FwaS8qIixwcm90b2NvbDoiaHR0cCIsY2xpZW50SXA6WyIxMC4wLjAuMC84Il19LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjAuMSIsIjEwLjAuMC4yIl0scG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sd2Vic29ja2V0OntlbmFibGVkOiEwfSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06InJvdW5kLXJvYmluIn0sZm9yd2FyZGluZ0VuZ2luZToibmZ0YWJsZXMifSxzZWN1cml0eTp7aXBBbGxvd0xpc3Q6WyIxMC4wLjAuMC84Il0saXBCbG9ja0xpc3Q6WyIxOTIuMTY4LjEwMC4wLzI0Il0scmF0ZUxpbWl0OntlbmFibGVkOiEwLG1heFJlcXVlc3RzOjEwMCx3aW5kb3c6NjB9LG1heENvbm5lY3Rpb25zOjFlM30sdnBuT25seTohMCxtZXRhZGF0YTp7c291cmNlUHJvZmlsZU5hbWU6IlNUQU5EQVJEIixuZXR3b3JrVGFyZ2V0TmFtZToiTE9TU0xFU1NfSU5GUkEifX19CiAgICAgID48L3N6LXJvdXRlLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJSb3V0ZXMiXTsjZT1DRyh0aGlzLG4sbnVsbCk7Z2V0IHJvdXRlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJvdXRlKG0pe3RoaXMuI2U9bX0jdD0oQ0codGhpcyxsKSxDRyh0aGlzLGMsITEpKTtnZXQgc2hvd0FjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0FjdGlvbnMobSl7dGhpcy4jdD1tfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTo6cGFydChvdXRlcikgewogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggJHtoLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4wNikiLCJyZ2JhKDAsMCwwLDAuMikiKX07CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90LmVuYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgNnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDM0LDE5Nyw5NCwwLjQpIiwicmdiYSgzNCwxOTcsOTQsMC4zKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnJvdXRlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYmFkZ2VzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmJhZGdlLmZvcndhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnNvY2tldC1oYW5kbGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VkZTlmZSIsInJnYmEoMTM5LCA5MiwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lbmFibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsInJnYmEoMTEzLCAxMTMsIDEyMiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2FyZC1ib2R5IHsKICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC5tZXRhLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRhZ3MgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudGFnIHsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTI1MjViIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnByaW9yaXR5IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAvKiBTZWN0aW9ucyAqLwogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDZweCA2cHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxMDEwMTAiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24ubWF0Y2ggewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLmFjdGlvbiB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7aC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24uc2VjdXJpdHkgewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke2guYmRUaGVtZSgiI2Y1OWUwYiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLmxpbmtlZCB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7aC5iZFRoZW1lKCIjOGI1Y2Y2IiwiIzhiNWNmNiIpfTsKICAgICAgfQoKICAgICAgLmxpbmtlZC1uYW1lIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWRlOWZlIiwicmdiYSgxMzksIDkyLCAyNDYsIDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZkMjhkOSIsIiNhNzhiZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5maWVsZC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAuZmllbGQtcm93Omxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5maWVsZC1rZXkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWluLXdpZHRoOiA2NHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5maWVsZC12YWx1ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2U0ZTRlNyIpfTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5kb21haW4tY2hpcCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kb21haW4tY2hpcC5nbG9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5MjQwMGUiLCIjZmJiZjI0Iil9OwogICAgICB9CgogICAgICAubW9ubyB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIC5wcm90b2NvbC1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5wcm90b2NvbC1iYWRnZS5odHRwIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5wcm90b2NvbC1iYWRnZS50Y3AgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAudGxzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnRscy1iYWRnZS5hdXRvIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnRscy1iYWRnZS5jdXN0b20gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZlZGQ1IiwicmdiYSgyNDksIDExNSwgMjIsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYzI0MTBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQoKICAgICAgLmVuZ2luZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWU4ZmYiLCJyZ2JhKDE2OCwgODUsIDI0NywgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3ZTIyY2UiLCIjYzA4NGZjIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXBhaXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZTsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLyogRmVhdHVyZSBpY29ucyAqLwogICAgICAuZmVhdHVyZXMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTRweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMWExYTFhIil9OwogICAgICB9CgogICAgICAuZmVhdHVyZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5mZWF0dXJlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm5vLXJvdXRlIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24udnBuIHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHtoLmJkVGhlbWUoIiMwODkxYjIiLCIjMDZiNmQ0Iil9OwogICAgICB9CgogICAgICAudnBuLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC52cG4tYmFkZ2UubWFuZGF0b3J5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZjdlZCIsInJnYmEoMjQ5LCAxMTUsIDIyLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2MyNDEwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KCiAgICAgIC52cG4tYmFkZ2Uub3B0aW9uYWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWNmZGY1IiwicmdiYSgxNiwgMTg1LCAxMjksIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDQ3ODU3IiwiIzM0ZDM5OSIpfTsKICAgICAgfQoKICAgICAgLnZwbi10YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWNmZWZmIiwicmdiYSg2LCAxODIsIDIxMiwgMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMGU3NDkwIiwiIzIyZDNlZSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24uZWRpdDpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2lmKCF0aGlzLnJvdXRlKXJldHVybiB3YAogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPjxkaXYgY2xhc3M9Im5vLXJvdXRlIj5ObyByb3V0ZSBkYXRhPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgIGA7bGV0IG09dGhpcy5yb3V0ZSx2PW0uZW5hYmxlZCE9PSExLHg9bS5tYXRjaCxiPW0uYWN0aW9uLGc9bS5zZWN1cml0eTtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8IS0tIEhlYWRlciAtLT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItbGVmdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtZG90ICR7dj8iZW5hYmxlZCI6ImRpc2FibGVkIn0iPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJvdXRlLW5hbWUiPiR7bS5uYW1lfHxtLmlkfHwiVW5uYW1lZCBSb3V0ZSJ9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYmFkZ2VzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7Yi50eXBlfSI+JHtiLnR5cGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt2PyJlbmFibGVkIjoiZGlzYWJsZWQifSI+JHt2PyJlbmFibGVkIjoiZGlzYWJsZWQifTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgICAgJHttLmRlc2NyaXB0aW9uP3dgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPiR7bS5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldGEtcm93Ij4KICAgICAgICAgICAgJHttLnRhZ3MmJm0udGFncy5sZW5ndGg+MD93YDxkaXYgY2xhc3M9InRhZ3MiPiR7bS50YWdzLm1hcCh5PT53YDxzcGFuIGNsYXNzPSJ0YWciPiR7eX08L3NwYW4+YCl9PC9kaXY+YDp3YDxkaXY+PC9kaXY+YH0KICAgICAgICAgICAgJHttLnByaW9yaXR5IT1udWxsP3dgPHNwYW4gY2xhc3M9InByaW9yaXR5Ij5Qcmlvcml0eTogJHttLnByaW9yaXR5fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPCEtLSBNYXRjaCBTZWN0aW9uIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24gbWF0Y2giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TWF0Y2g8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlBvcnRzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHt1UmEoeC5wb3J0cyl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3guZG9tYWlucz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+RG9tYWluczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke3RoaXMucmVuZGVyRG9tYWlucyh4LmRvbWFpbnMpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3gucGF0aD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UGF0aDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7eC5wYXRofTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3gucHJvdG9jb2w/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlByb3RvY29sPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm90b2NvbC1iYWRnZSAke3gucHJvdG9jb2x9Ij4ke3gucHJvdG9jb2x9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt4LmNsaWVudElwJiZ4LmNsaWVudElwLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5DbGllbnQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke3guY2xpZW50SXAuam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt4LnRsc1ZlcnNpb24mJngudGxzVmVyc2lvbi5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+VExTIFZlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke3gudGxzVmVyc2lvbi5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke3guaGVhZGVycz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+SGVhZGVyczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAke09iamVjdC5lbnRyaWVzKHguaGVhZGVycykubWFwKChbeSxrXSk9PndgPHNwYW4gY2xhc3M9ImhlYWRlci1wYWlyIj4ke3l9PSR7a308L3NwYW4+IGApfQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEFjdGlvbiBTZWN0aW9uIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24gYWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkFjdGlvbjwvZGl2PgogICAgICAgICAgJHtiLnRhcmdldHMmJmIudGFyZ2V0cy5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+VGFyZ2V0czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7cFJhKGIudGFyZ2V0cykuam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHtiLnRscz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+VExTPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPgogICAgICAgICAgICAgICAgICAgICR7Yi50bHMubW9kZX0KICAgICAgICAgICAgICAgICAgICAke2IudGxzLmNlcnRpZmljYXRlP2IudGxzLmNlcnRpZmljYXRlPT09ImF1dG8iP3dgIDxzcGFuIGNsYXNzPSJ0bHMtYmFkZ2UgYXV0byI+YXV0byBjZXJ0PC9zcGFuPmA6d2AgPHNwYW4gY2xhc3M9InRscy1iYWRnZSBjdXN0b20iPmN1c3RvbSBjZXJ0PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAke2IuZm9yd2FyZGluZ0VuZ2luZT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+RW5naW5lPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPjxzcGFuIGNsYXNzPSJlbmdpbmUtYmFkZ2UiPiR7Yi5mb3J3YXJkaW5nRW5naW5lfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHtiLmxvYWRCYWxhbmNpbmc/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkxCPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7Yi5sb2FkQmFsYW5jaW5nLmFsZ29yaXRobX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHtiLndlYnNvY2tldD8uZW5hYmxlZD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+V1M8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+PHNwYW4gY2xhc3M9ImJhZGdlIGVuYWJsZWQiPmVuYWJsZWQ8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBTZWN1cml0eSBTZWN0aW9uIC0tPgogICAgICAgICR7Zz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24gc2VjdXJpdHkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+U2VjdXJpdHk8L2Rpdj4KICAgICAgICAgICAgICAgICR7Zy5pcEFsbG93TGlzdCYmZy5pcEFsbG93TGlzdC5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+QWxsb3c8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke2cuaXBBbGxvd0xpc3Quam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtnLmlwQmxvY2tMaXN0JiZnLmlwQmxvY2tMaXN0Lmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5CbG9jazwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7Zy5pcEJsb2NrTGlzdC5qb2luKCIsICIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAke2cucmF0ZUxpbWl0Py5lbmFibGVkP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5SYXRlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7Zy5yYXRlTGltaXQubWF4UmVxdWVzdHN9IHJlcSAvICR7Zy5yYXRlTGltaXQud2luZG93fXM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtnLm1heENvbm5lY3Rpb25zP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5NYXggQ29ubjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke2cubWF4Q29ubmVjdGlvbnN9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8IS0tIFZQTiBTZWN0aW9uIC0tPgogICAgICAgICAgJHt0aGlzLnJlbmRlclZwbigpfQoKICAgICAgICAgIDwhLS0gTGlua2VkIFJlZmVyZW5jZXMgU2VjdGlvbiAtLT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJMaW5rZWQoKX0KCiAgICAgICAgICA8IS0tIEZlYXR1cmUgSWNvbnMgUm93IC0tPgogICAgICAgICAgJHt0aGlzLnJlbmRlckZlYXR1cmVzKCl9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gQWN0aW9uIEJ1dHRvbnMgLS0+CiAgICAgICAgJHt0aGlzLnNob3dBY3Rpb25zP3dgCiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImNhcmQtZm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gZWRpdCIgQGNsaWNrPSR7eT0+e3kuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm91dGUtZWRpdCIse2RldGFpbDp0aGlzLnJvdXRlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT5FZGl0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7eT0+e3kuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm91dGUtZGVsZXRlIix7ZGV0YWlsOnRoaXMucm91dGUsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckRvbWFpbnMobSl7bGV0IHY9QXJyYXkuaXNBcnJheShtKT9tOlttXTtyZXR1cm4gd2Ake3YubWFwKHg9PndgPHNwYW4gY2xhc3M9ImRvbWFpbi1jaGlwICR7eC5pbmNsdWRlcygiKiIpPyJnbG9iIjoiIn0iPiR7eH08L3NwYW4+YCl9YH1yZW5kZXJWcG4oKXtyZXR1cm4gdGhpcy5yb3V0ZT8udnBuT25seT93YAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIHZwbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+VlBOIEFjY2VzczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Nb2RlPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZwbi1iYWRnZSBtYW5kYXRvcnkiPlZQTiBPbmx5PC9zcGFuPgogICAgICAgICAgPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGA6d2BgfXJlbmRlckxpbmtlZCgpe2xldCBtPXRoaXMucm91dGU/Lm1ldGFkYXRhO2lmKCFtKXJldHVybiB3YGA7bGV0IHY9ISFtLnNvdXJjZVByb2ZpbGVOYW1lLHg9ISFtLm5ldHdvcmtUYXJnZXROYW1lO3JldHVybiF2JiYheD93YGA6d2AKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiBsaW5rZWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkxpbmtlZDwvZGl2PgogICAgICAgICR7dj93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Qcm9maWxlPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj48c3BhbiBjbGFzcz0ibGlua2VkLW5hbWUiPiR7bS5zb3VyY2VQcm9maWxlTmFtZX08L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICR7eD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5UYXJnZXQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPjxzcGFuIGNsYXNzPSJsaW5rZWQtbmFtZSI+JHttLm5ldHdvcmtUYXJnZXROYW1lfTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGZWF0dXJlcygpe2lmKCF0aGlzLnJvdXRlKXJldHVybiB3YGA7bGV0IG09W10sdj10aGlzLnJvdXRlLmFjdGlvbix4PXRoaXMucm91dGUuc2VjdXJpdHksYj10aGlzLnJvdXRlLmhlYWRlcnMsZz10aGlzLnJvdXRlLm1ldGFkYXRhO3JldHVybiB2LnRscyYmbS5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDFmNTEyOzwvc3Bhbj5UTFM8L3NwYW4+YCksdi53ZWJzb2NrZXQ/LmVuYWJsZWQmJm0ucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gyMTk0Ozwvc3Bhbj5XUzwvc3Bhbj5gKSx2LmxvYWRCYWxhbmNpbmcmJm0ucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gyNjk2Ozwvc3Bhbj5MQjwvc3Bhbj5gKSx4JiZtLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MWY2ZTE7PC9zcGFuPlNlY3VyaXR5PC9zcGFuPmApLGImJm0ucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gyNjk5Ozwvc3Bhbj5IZWFkZXJzPC9zcGFuPmApLHRoaXMucm91dGU/LnZwbk9ubHkmJm0ucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gxZjUxMDs8L3NwYW4+VlBOPC9zcGFuPmApLChnPy5zb3VyY2VQcm9maWxlTmFtZXx8Zz8ubmV0d29ya1RhcmdldE5hbWUpJiZtLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MWY1MTc7PC9zcGFuPkxpbmtlZDwvc3Bhbj5gKSxtLmxlbmd0aD09PTA/d2BgOndgPGRpdiBjbGFzcz0iZmVhdHVyZXMtcm93Ij4ke219PC9kaXY+YH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQ0codGhpcyxwKX1zdGF0aWN7Q0cocix0KX19O3JldHVybiB1PXJ9KSgpfSk7dmFyIG83LEoxLGhSYSxZdWE9ZigoKT0+e2xlKCk7bzc9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEoxPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxoUmE9KCgpPT57bGV0IGE9W2llKCJzei1yb3V0ZS1saXN0LXZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXSx1LG09W10sdj1bXSx4LGI9W10sZz1bXSx5LGs9W10sQz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pSb3V0ZUxpc3RWaWV3Iil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpBcnJheX0pXSxkPVskKHthdHRyaWJ1dGU6ITF9KV0sdT1bSygpXSx4PVtLKCldLHk9W0soKV0sbzcodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoej0+InJvdXRlcyJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnJvdXRlcywiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnJvdXRlcz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG4sbCksbzcodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aW9uc0ZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4ic2hvd0FjdGlvbnNGaWx0ZXIiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5zaG93QWN0aW9uc0ZpbHRlciwiZ2V0Iiksc2V0OnMoKHosTyk9Pnt6LnNob3dBY3Rpb25zRmlsdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYyxwKSxvNyh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJzZWFyY2hRdWVyeSJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6cygoeixPKT0+e3ouc2VhcmNoUXVlcnk9T30sInNldCIpfSxtZXRhZGF0YTpffSxtLHYpLG83KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHo9PiJhY3Rpb25GaWx0ZXIiaW4geiwiaGFzIiksZ2V0OnMoej0+ei5hY3Rpb25GaWx0ZXIsImdldCIpLHNldDpzKCh6LE8pPT57ei5hY3Rpb25GaWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLG83KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlZEZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyh6PT4iZW5hYmxlZEZpbHRlciJpbiB6LCJoYXMiKSxnZXQ6cyh6PT56LmVuYWJsZWRGaWx0ZXIsImdldCIpLHNldDpzKCh6LE8pPT57ei5lbmFibGVkRmlsdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxDKSxvNyhudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpffSxudWxsLHQpLE49cj1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPXMoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otcm91dGUtbGlzdC12aWV3CiAgICAgICAgLnJvdXRlcz0ke1t7bmFtZToiSFRUUFMgR2F0ZXdheSIsZGVzY3JpcHRpb246Ik1haW4gd2ViIGdhdGV3YXkgd2l0aCBUTFMgdGVybWluYXRpb24iLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczpbIiouZXhhbXBsZS5jb20iLCJzZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMSIscG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7bmFtZToiU01UUCBJbmJvdW5kIixkZXNjcmlwdGlvbjoiRW1haWwgcmVsYXkgZm9yIGluY29taW5nIG1haWwiLGVuYWJsZWQ6ITAsdGFnczpbImVtYWlsIiwic210cCJdLG1hdGNoOntwb3J0czoyNSxkb21haW5zOiJtYWlsLnNlcnZlLnpvbmUifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjEuNSIscG9ydDoyNX1dfX0se25hbWU6IldlYlNvY2tldCBBUEkiLGRlc2NyaXB0aW9uOiJSZWFsLXRpbWUgV2ViU29ja2V0IGNvbm5lY3Rpb25zIixlbmFibGVkOiEwLHRhZ3M6WyJ3ZWIiLCJhcGkiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6IndzLmV4YW1wbGUuY29tIixwYXRoOiIvd3MvKiJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4zIixwb3J0OjkwOTB9XSx3ZWJzb2NrZXQ6e2VuYWJsZWQ6ITB9LHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fX0se25hbWU6Ik1haW50ZW5hbmNlIFBhZ2UiLGVuYWJsZWQ6ITEsdGFnczpbIndlYiJdLG1hdGNoOntwb3J0czpbODAsNDQzXSxkb21haW5zOiJvbGQuZXhhbXBsZS5jb20ifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn19XX0KICAgICAgPjwvc3otcm91dGUtbGlzdC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiUm91dGVzIl07I2U9SjEodGhpcyxuLFtdKTtnZXQgcm91dGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJvdXRlcyhfKXt0aGlzLiNlPV99I3Q9KEoxKHRoaXMsbCksSjEodGhpcyxjLG51bGwpKTtnZXQgc2hvd0FjdGlvbnNGaWx0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0FjdGlvbnNGaWx0ZXIoXyl7dGhpcy4jdD1ffSNhPShKMSh0aGlzLHApLEoxKHRoaXMsbSwiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNhfXNldCBzZWFyY2hRdWVyeShfKXt0aGlzLiNhPV99I3I9KEoxKHRoaXMsdiksSjEodGhpcyxiLCJhbGwiKSk7Z2V0IGFjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNyfXNldCBhY3Rpb25GaWx0ZXIoXyl7dGhpcy4jcj1ffSNzPShKMSh0aGlzLGcpLEoxKHRoaXMsaywiYWxsIikpO2dldCBlbmFibGVkRmlsdGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGVuYWJsZWRGaWx0ZXIoXyl7dGhpcy4jcz1ffWdldCBmaWx0ZXJlZFJvdXRlcygpe3JldHVybiB0aGlzLnJvdXRlcy5maWx0ZXIoXz0+e2lmKHRoaXMuYWN0aW9uRmlsdGVyIT09ImFsbCImJl8uYWN0aW9uLnR5cGUhPT10aGlzLmFjdGlvbkZpbHRlcnx8dGhpcy5lbmFibGVkRmlsdGVyPT09ImVuYWJsZWQiJiZfLmVuYWJsZWQ9PT0hMXx8dGhpcy5lbmFibGVkRmlsdGVyPT09ImRpc2FibGVkIiYmXy5lbmFibGVkIT09ITEpcmV0dXJuITE7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IHo9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzLnJvdXRlTWF0Y2hlc1NlYXJjaChfLHopfXJldHVybiEwfSl9cm91dGVNYXRjaGVzU2VhcmNoKF8seil7aWYoXy5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHopfHxfLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHopfHxfLm1hdGNoLmRvbWFpbnMmJihBcnJheS5pc0FycmF5KF8ubWF0Y2guZG9tYWlucyk/Xy5tYXRjaC5kb21haW5zOltfLm1hdGNoLmRvbWFpbnNdKS5zb21lKFA9PlAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KSl8fHRoaXMuZm9ybWF0UG9ydHNGb3JTZWFyY2goXy5tYXRjaC5wb3J0cykuaW5jbHVkZXMoeil8fF8ubWF0Y2gucGF0aD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KXx8Xy5tYXRjaC5jbGllbnRJcD8uc29tZShUPT5ULmluY2x1ZGVzKHopKSlyZXR1cm4hMDtpZihfLmFjdGlvbi50YXJnZXRzKXtmb3IobGV0IFQgb2YgXy5hY3Rpb24udGFyZ2V0cylpZigoQXJyYXkuaXNBcnJheShULmhvc3QpP1QuaG9zdDpbVC5ob3N0XSkuc29tZShCPT5CLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoeikpKXJldHVybiEwfXJldHVybiEhXy50YWdzPy5zb21lKFQ9PlQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh6KSl9Zm9ybWF0UG9ydHNGb3JTZWFyY2goXyl7cmV0dXJuIHR5cGVvZiBfPT0ibnVtYmVyIj9TdHJpbmcoXyk6QXJyYXkuaXNBcnJheShfKT9fLm1hcCh6PT50eXBlb2Ygej09Im51bWJlciI/U3RyaW5nKHopOmAke3ouZnJvbX0tJHt6LnRvfWApLmpvaW4oIiAiKTpTdHJpbmcoXyl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmZpbHRlci1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMzYjgyZjYiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuY2hpcCB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuY2hpcDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5yZXN1bHRzLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg0MjBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuZ3JpZCBzei1yb3V0ZS1jYXJkIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IF89dGhpcy5maWx0ZXJlZFJvdXRlcztyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWJhciI+CiAgICAgICAgPGlucHV0CiAgICAgICAgICBjbGFzcz0ic2VhcmNoLWlucHV0IgogICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggcm91dGVzIGJ5IGRvbWFpbiwgSVAsIHBvcnQsIHBhdGgsIG9yIHRhZy4uLiIKICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICBAaW5wdXQ9JHt6PT57dGhpcy5zZWFyY2hRdWVyeT16LnRhcmdldC52YWx1ZX19CiAgICAgICAgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwLWdyb3VwIj4KICAgICAgICAgICR7WyJhbGwiLCJmb3J3YXJkIiwic29ja2V0LWhhbmRsZXIiXS5tYXAoej0+d2AKICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuYWN0aW9uRmlsdGVyPT09ej8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3RoaXMuYWN0aW9uRmlsdGVyPXp9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7ej09PSJhbGwiPyJBbGwiOno9PT0iZm9yd2FyZCI/IkZvcndhcmQiOiJTb2NrZXQgSGFuZGxlciJ9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNoaXAtZ3JvdXAiPgogICAgICAgICAgJHtbImFsbCIsImVuYWJsZWQiLCJkaXNhYmxlZCJdLm1hcCh6PT53YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5lbmFibGVkRmlsdGVyPT09ej8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3RoaXMuZW5hYmxlZEZpbHRlcj16fX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3ouY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrei5zbGljZSgxKX0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icmVzdWx0cy1jb3VudCI+CiAgICAgICAgU2hvd2luZyAke18ubGVuZ3RofSBvZiAke3RoaXMucm91dGVzLmxlbmd0aH0gcm91dGVzCiAgICAgIDwvZGl2PgoKICAgICAgJHtfLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgICAgICAgICR7Xy5tYXAoej0+d2AKICAgICAgICAgICAgICAgICAgPHN6LXJvdXRlLWNhcmQKICAgICAgICAgICAgICAgICAgICAucm91dGU9JHt6fQogICAgICAgICAgICAgICAgICAgIC5zaG93QWN0aW9ucz0ke3RoaXMuc2hvd0FjdGlvbnNGaWx0ZXI/Lih6KT8/ITF9CiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUm91dGVDbGljayh6KX0KICAgICAgICAgICAgICAgICAgPjwvc3otcm91dGUtY2FyZD4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLWljb24iPiYjeDFmNTBkOzwvZGl2PgogICAgICAgICAgICAgIDxkaXY+Tm8gcm91dGVzIG1hdGNoIHlvdXIgZmlsdGVyczwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICBgfWhhbmRsZVJvdXRlQ2xpY2soXyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm91dGUtY2xpY2siLHtkZXRhaWw6XyxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxKMSh0aGlzLEMpfXN0YXRpY3tKMShyLHQpfX07cmV0dXJuIE49cn0pKCl9KTt2YXIgWW4sTHIsbVJhLEt1YT1mKCgpPT57bGUoKTtZbj1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sTHI9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LG1SYT0oKCk9PntsZXQgYT1baWUoInN6LWNvbmZpZy1zZWN0aW9uIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W10seCxiPVtdLGc9W10seSxrPVtdLEM9W10sTixfPVtdLHo9W10sTyxUPVtdLFA9W10sQixNPVtdLFM9W10sRSxBPVtdLEY9W10sVyxqPVtdLEc9W10saGUsUj1bXSxVPVtdO3ZhciBtZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pDb25maWdTZWN0aW9uIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bJCh7dHlwZTpTdHJpbmd9KV0sZD1bJCh7dHlwZTpTdHJpbmd9KV0sdT1bJCh7dHlwZTpTdHJpbmd9KV0seD1bJCh7dHlwZTpTdHJpbmd9KV0seT1bJCh7dHlwZTpBcnJheX0pXSxOPVskKHt0eXBlOkFycmF5fSldLE89WyQoe3R5cGU6QXJyYXl9KV0sQj1bJCh7dHlwZTpCb29sZWFufSldLEU9WyQoe3R5cGU6Qm9vbGVhbn0pXSxXPVtLKCldLGhlPVtLKCldLFluKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+InRpdGxlImluIHEsImhhcyIpLGdldDpzKHE9PnEudGl0bGUsImdldCIpLHNldDpzKChxLGNlKT0+e3EudGl0bGU9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sbixsKSxZbih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1YnRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJzdWJ0aXRsZSJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLnN1YnRpdGxlLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLnN1YnRpdGxlPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LGMscCksWW4odGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJpY29uImluIHEsImhhcyIpLGdldDpzKHE9PnEuaWNvbiwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5pY29uPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LG0sdiksWW4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+InN0YXR1cyJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLnN0YXR1cywiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5zdGF0dXM9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sYixnKSxZbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4iZmllbGRzImluIHEsImhhcyIpLGdldDpzKHE9PnEuZmllbGRzLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmZpZWxkcz1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxrLEMpLFluKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhxPT4iYWN0aW9ucyJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmFjdGlvbnMsImdldCIpLHNldDpzKChxLGNlKT0+e3EuYWN0aW9ucz1jZX0sInNldCIpfSxtZXRhZGF0YTpJfSxfLHopLFluKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGlua3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+ImxpbmtzImluIHEsImhhcyIpLGdldDpzKHE9PnEubGlua3MsImdldCIpLHNldDpzKChxLGNlKT0+e3EubGlua3M9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sVCxQKSxZbih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJjb2xsYXBzaWJsZSJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmNvbGxhcHNpYmxlLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmNvbGxhcHNpYmxlPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LE0sUyksWW4odGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+ImNvbGxhcHNlZCJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OnMoKHEsY2UpPT57cS5jb2xsYXBzZWQ9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sQSxGKSxZbih0aGlzLG51bGwsVyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKHE9PiJpc0NvbGxhcHNlZCJpbiBxLCJoYXMiKSxnZXQ6cyhxPT5xLmlzQ29sbGFwc2VkLCJnZXQiKSxzZXQ6cygocSxjZSk9PntxLmlzQ29sbGFwc2VkPWNlfSwic2V0Iil9LG1ldGFkYXRhOkl9LGosRyksWW4odGhpcyxudWxsLGhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzU2xvdHRlZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMocT0+Imhhc1Nsb3R0ZWRDb250ZW50ImluIHEsImhhcyIpLGdldDpzKHE9PnEuaGFzU2xvdHRlZENvbnRlbnQsImdldCIpLHNldDpzKChxLGNlKT0+e3EuaGFzU2xvdHRlZENvbnRlbnQ9Y2V9LCJzZXQiKX0sbWV0YWRhdGE6SX0sUixVKSxZbihudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpJfSxudWxsLHQpLG1lPXI9ZS52YWx1ZSxJJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkl9KX1zdGF0aWMgZGVtbz1zKCgpPT53YAogICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgIHRpdGxlPSJTbWFydFByb3h5IgogICAgICBzdWJ0aXRsZT0iSFRUUC9IVFRQUyBhbmQgVENQL1NOSSByZXZlcnNlIHByb3h5IgogICAgICBpY29uPSJsdWNpZGU6bmV0d29yayIKICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAuZmllbGRzPSR7W3trZXk6IlJvdXRlIENvdW50Iix2YWx1ZToxMn0se2tleToiQUNNRSBFbmFibGVkIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiQWNjb3VudCBFbWFpbCIsdmFsdWU6ImFkbWluQGV4YW1wbGUuY29tIn0se2tleToiVXNlIFByb2R1Y3Rpb24iLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBdXRvIFJlbmV3Iix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiUmVuZXcgVGhyZXNob2xkIix2YWx1ZToiMzAgZGF5cyJ9XX0KICAgICAgLmxpbmtzPSR7W3tsYWJlbDoiRG9jcyIsaHJlZjoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvc21hcnRwcm94eSIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH1dfQogICAgICAuYWN0aW9ucz0ke1t7bGFiZWw6IkNvbmZpZ3VyZSIsaWNvbjoibHVjaWRlOnNldHRpbmdzIixldmVudDoiY29uZmlndXJlIn1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IkVtYWlsIFNlcnZlciIKICAgICAgc3VidGl0bGU9IlNNVFAgZW1haWwgaGFuZGxpbmcgd2l0aCBzbWFydG10YSIKICAgICAgaWNvbj0ibHVjaWRlOm1haWwiCiAgICAgIHN0YXR1cz0iZGlzYWJsZWQiCiAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydHMiLHZhbHVlOlsiMjUiLCI0NjUiLCI1ODciXSx0eXBlOiJwaWxscyJ9LHtrZXk6Ikhvc3RuYW1lIix2YWx1ZTpudWxsfSx7a2V5OiJEb21haW5zIix2YWx1ZTpbImV4YW1wbGUuY29tIiwibWFpbC5leGFtcGxlLmNvbSJdLHR5cGU6InBpbGxzIn1dfQogICAgICAubGlua3M9JHtbe2xhYmVsOiJEb2NzIixocmVmOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9zbWFydG10YSIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH0se2xhYmVsOiJTb3VyY2UiLGhyZWY6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL3NtYXJ0bXRhIixpY29uOiJsdWNpZGU6Z2l0aHViIixleHRlcm5hbDohMH1dfQogICAgICAuYWN0aW9ucz0ke1t7bGFiZWw6IkVuYWJsZSIsaWNvbjoibHVjaWRlOnBvd2VyIixldmVudDoiZW5hYmxlIn1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IkROUyBTZXJ2ZXIiCiAgICAgIHN1YnRpdGxlPSJBdXRob3JpdGF0aXZlIEROUyB3aXRoIHNtYXJ0ZG5zIgogICAgICBpY29uPSJsdWNpZGU6Z2xvYmUiCiAgICAgIHN0YXR1cz0ibm90LWNvbmZpZ3VyZWQiCiAgICAgIGNvbGxhcHNpYmxlCiAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydCIsdmFsdWU6NTN9LHtrZXk6Ik5TIERvbWFpbnMiLHZhbHVlOlsibnMxLmV4YW1wbGUuY29tIiwibnMyLmV4YW1wbGUuY29tIl0sdHlwZToicGlsbHMifV19CiAgICAgIC5saW5rcz0ke1t7bGFiZWw6IkdldHRpbmcgU3RhcnRlZCIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2RucyIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ29uZmlndXJhdGlvbiJdOyNlPUxyKHRoaXMsbiwiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKEkpe3RoaXMuI2U9SX0jdD0oTHIodGhpcyxsKSxMcih0aGlzLGMsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoSSl7dGhpcy4jdD1JfSNhPShMcih0aGlzLHApLExyKHRoaXMsbSwiIikpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGljb24oSSl7dGhpcy4jYT1JfSNyPShMcih0aGlzLHYpLExyKHRoaXMsYiwiZW5hYmxlZCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN0YXR1cyhJKXt0aGlzLiNyPUl9I3M9KExyKHRoaXMsZyksTHIodGhpcyxrLFtdKSk7Z2V0IGZpZWxkcygpe3JldHVybiB0aGlzLiNzfXNldCBmaWVsZHMoSSl7dGhpcy4jcz1JfSNpPShMcih0aGlzLEMpLExyKHRoaXMsXyxbXSkpO2dldCBhY3Rpb25zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFjdGlvbnMoSSl7dGhpcy4jaT1JfSNvPShMcih0aGlzLHopLExyKHRoaXMsVCxbXSkpO2dldCBsaW5rcygpe3JldHVybiB0aGlzLiNvfXNldCBsaW5rcyhJKXt0aGlzLiNvPUl9I249KExyKHRoaXMsUCksTHIodGhpcyxNLCExKSk7Z2V0IGNvbGxhcHNpYmxlKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbGxhcHNpYmxlKEkpe3RoaXMuI249SX0jbD0oTHIodGhpcyxTKSxMcih0aGlzLEEsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGNvbGxhcHNlZChJKXt0aGlzLiNsPUl9I2M9KExyKHRoaXMsRiksTHIodGhpcyxqLCExKSk7Z2V0IGlzQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzQ29sbGFwc2VkKEkpe3RoaXMuI2M9SX0jZD0oTHIodGhpcyxHKSxMcih0aGlzLFIsITEpKTtnZXQgaGFzU2xvdHRlZENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaGFzU2xvdHRlZENvbnRlbnQoSSl7dGhpcy4jZD1JfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIGRlZXMtdGlsZTo6cGFydChjb250ZW50KSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIGRlZXMtdGlsZTo6cGFydChmb290ZXIpIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2libGVdKSAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNpYmxlXSkgLnNlY3Rpb24taGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmhlYWRlci1sZWZ0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdGV4dCB7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLmhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXJpZ2h0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBTdGF0dXMgYmFkZ2UgKi8KICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAzcHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lbmFibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsMTk3LDk0LDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSw2OCw2OCwwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uubm90LWNvbmZpZ3VyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwicmdiYSgxMTMsMTEzLDEyMiwwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZWYzYzciLCJyZ2JhKDI0NSwxNTgsMTEsMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTI0MDBlIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA3cHg7CiAgICAgICAgaGVpZ2h0OiA3cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmVuYWJsZWQgLnN0YXR1cy1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kaXNhYmxlZCAuc3RhdHVzLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLm5vdC1jb25maWd1cmVkIC5zdGF0dXMtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uud2FybmluZyAuc3RhdHVzLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNTllMGIiLCIjZmJiZjI0Iil9OwogICAgICB9CgogICAgICAvKiBGb290ZXIgYWN0aW9uIGJ1dHRvbnMg4oCUIGNhbm9uaWNhbCBkZWVzLW1vZGFsIC8gZGVlcy10aWxlIHBhdHRlcm4gKi8KICAgICAgLnNlY3Rpb24tZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICAvKiBDaGV2cm9uICovCiAgICAgIC5jaGV2cm9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jaGV2cm9uLmNvbGxhcHNlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLmNoZXZyb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgKi8KICAgICAgLnNlY3Rpb24tY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmZpZWxkcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC8qIEZpZWxkIHJvd3MgKi8KICAgICAgLmZpZWxkLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxYTFhMWUiKX07CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuZmllbGRzLWxpc3QgLmZpZWxkLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAuZmllbGQta2V5IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgICAgcGFkZGluZy10b3A6IDFweDsKICAgICAgfQoKICAgICAgLmZpZWxkLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmZpZWxkLXZhbHVlLm51bGwtdmFsdWUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CgogICAgICAvKiBCb29sZWFuIGRpc3BsYXkgKi8KICAgICAgLmJvb2wtdmFsdWUgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA1cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5ib29sLXZhbHVlLnRydWUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5ib29sLXZhbHVlLmZhbHNlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuYm9vbC1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAuYm9vbC12YWx1ZS50cnVlIC5ib29sLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYm9vbC12YWx1ZS5mYWxzZSAuYm9vbC1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLyogUGlsbHMgKi8KICAgICAgLnBpbGxzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDVweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAucGlsbCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwxMzAsMjQ2LDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLyogQ29kZSB2YWx1ZSAqLwogICAgICAuY29kZS12YWx1ZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC8qIExpbmsgdmFsdWUgKi8KICAgICAgLmxpbmstdmFsdWUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5saW5rLXZhbHVlOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogRGVzY3JpcHRpb24gaGludCAqLwogICAgICAuZmllbGQtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIG1hcmdpbi10b3A6IDNweDsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQoKICAgICAgLyogU2xvdCBmb3IgY3VzdG9tIGNvbnRlbnQgKi8KICAgICAgLnNsb3QtY29udGVudCB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzFhMWExZSIpfTsKICAgICAgfQoKICAgICAgLnNsb3QtY29udGVudC5lbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogQmFkZ2UgdHlwZSAqLwogICAgICAuYmFkZ2UtdmFsdWUgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDlweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzUyNTI1YiIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmlzQ29sbGFwc2VkPXRoaXMuY29sbGFwc2VkLHRoaXMuY29sbGFwc2libGUmJnRoaXMuc2V0QXR0cmlidXRlKCJjb2xsYXBzaWJsZSIsIiIpfXVwZGF0ZWQoSSl7c3VwZXIudXBkYXRlZChJKSxJLmhhcygiaXNDb2xsYXBzZWQiKSYmdGhpcy50b2dnbGVBdHRyaWJ1dGUoImNvbGxhcHNlZCIsdGhpcy5pc0NvbGxhcHNlZCl9b25TbG90Q2hhbmdlKEkpe2xldCBxPUkudGFyZ2V0O3RoaXMuaGFzU2xvdHRlZENvbnRlbnQ9cS5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkubGVuZ3RoPjB9cmVuZGVyKCl7bGV0IEk9e2VuYWJsZWQ6IkVuYWJsZWQiLGRpc2FibGVkOiJEaXNhYmxlZCIsIm5vdC1jb25maWd1cmVkIjoiTm90IENvbmZpZ3VyZWQiLHdhcm5pbmc6Ildhcm5pbmcifTtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2CiAgICAgICAgICBzbG90PSJoZWFkZXIiCiAgICAgICAgICBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiCiAgICAgICAgICBAY2xpY2s9JHsoKT0+e3RoaXMuY29sbGFwc2libGUmJih0aGlzLmlzQ29sbGFwc2VkPSF0aGlzLmlzQ29sbGFwc2VkKX19CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWxlZnQiPgogICAgICAgICAgICAke3RoaXMuaWNvbj93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pY29uIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLmljb259PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdGV4dCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+CiAgICAgICAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPGRpdiBjbGFzcz0iaGVhZGVyLXN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9kaXY+YDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1yaWdodCI+CiAgICAgICAgICAgICR7dGhpcy5zdGF0dXM/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5zdGF0dXN9Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAke0lbdGhpcy5zdGF0dXNdfHx0aGlzLnN0YXR1c30KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5jb2xsYXBzaWJsZT93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGV2cm9uICR7dGhpcy5pc0NvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hldnJvbkRvd24ifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgJHt0aGlzLmZpZWxkcy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZHMtbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLmZpZWxkcy5tYXAocT0+dGhpcy5yZW5kZXJGaWVsZChxKSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9InNsb3QtY29udGVudCAke3RoaXMuaGFzU2xvdHRlZENvbnRlbnQ/IiI6ImVtcHR5In0iPgogICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMub25TbG90Q2hhbmdlfT48L3Nsb3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMubGlua3MubGVuZ3RoPjB8fHRoaXMuYWN0aW9ucy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICAgICR7dGhpcy5saW5rcy5tYXAocT0+d2AKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgY2xhc3M9InRpbGUtYnV0dG9uIgogICAgICAgICAgICAgICAgaHJlZj0ke3EuaHJlZn0KICAgICAgICAgICAgICAgIHRhcmdldD0ke3EuZXh0ZXJuYWw/Il9ibGFuayI6Il9zZWxmIn0KICAgICAgICAgICAgICAgIHJlbD0ke3EuZXh0ZXJuYWw/Im5vb3BlbmVyIG5vcmVmZXJyZXIiOiIifQogICAgICAgICAgICAgICAgQGNsaWNrPSR7Y2U9PmNlLnN0b3BQcm9wYWdhdGlvbigpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7cS5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3EuaWNvbn0+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAgICR7cS5sYWJlbH0KICAgICAgICAgICAgICAgICR7cS5leHRlcm5hbD93YDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmV4dGVybmFsTGluayJ9PjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICBgKX0KICAgICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKHE9PndgCiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7Y2U9PntjZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KHEuZXZlbnR8fCJhY3Rpb24iLHtkZXRhaWw6cS5kZXRhaWx8fHtsYWJlbDpxLmxhYmVsfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0+CiAgICAgICAgICAgICAgICAke3EuaWNvbj93YDxkZWVzLWljb24gLmljb249JHtxLmljb259PjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke3EubGFiZWx9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlckZpZWxkKEkpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWtleSI+JHtJLmtleX08L2Rpdj4KICAgICAgICA8ZGl2PgogICAgICAgICAgJHt0aGlzLnJlbmRlckZpZWxkVmFsdWUoSSl9CiAgICAgICAgICAke0kuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJmaWVsZC1kZXNjcmlwdGlvbiI+JHtJLmRlc2NyaXB0aW9ufTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWVsZFZhbHVlKEkpe2xldCBxPUkudmFsdWUsY2U9SS50eXBlfHx0aGlzLmluZmVyVHlwZShxKTtpZihxPT1udWxsKXJldHVybiB3YDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBudWxsLXZhbHVlIj5Ob3QgY29uZmlndXJlZDwvc3Bhbj5gO3N3aXRjaChjZSl7Y2FzZSJib29sZWFuIjpyZXR1cm4gd2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJib29sLXZhbHVlICR7cT8idHJ1ZSI6ImZhbHNlIn0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9vbC1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgJHtxPyJFbmFibGVkIjoiRGlzYWJsZWQifQogICAgICAgICAgPC9zcGFuPgogICAgICAgIGA7Y2FzZSJwaWxscyI6cmV0dXJuIEFycmF5LmlzQXJyYXkocSkmJnEubGVuZ3RoPT09MD93YDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBudWxsLXZhbHVlIj5Ob25lPC9zcGFuPmA6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxzIj4KICAgICAgICAgICAgJHtxLm1hcCh1ZT0+d2A8c3BhbiBjbGFzcz0icGlsbCI+JHt1ZX08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgO2Nhc2UiY29kZSI6cmV0dXJuIHdgPHNwYW4gY2xhc3M9ImNvZGUtdmFsdWUiPiR7U3RyaW5nKHEpfTwvc3Bhbj5gO2Nhc2UiYmFkZ2UiOnJldHVybiB3YDxzcGFuIGNsYXNzPSJiYWRnZS12YWx1ZSI+JHtTdHJpbmcocSl9PC9zcGFuPmA7Y2FzZSJsaW5rIjpyZXR1cm4gd2AKICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgIGNsYXNzPSJsaW5rLXZhbHVlIgogICAgICAgICAgICBAY2xpY2s9JHsoKT0+e0kubGlua1RvJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuYXZpZ2F0ZSIse2RldGFpbDp7dGFyZ2V0OkkubGlua1RvfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgID4ke1N0cmluZyhxKX08L3NwYW4+CiAgICAgICAgYDtkZWZhdWx0OnJldHVybiB3YDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHtTdHJpbmcocSl9PC9zcGFuPmB9fWluZmVyVHlwZShJKXtyZXR1cm4gdHlwZW9mIEk9PSJib29sZWFuIj8iYm9vbGVhbiI6QXJyYXkuaXNBcnJheShJKT8icGlsbHMiOiJ0ZXh0In1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTHIodGhpcyxVKX1zdGF0aWN7THIocix0KX19O3JldHVybiBtZT1yfSkoKX0pO3ZhciB0ZXQsX0csZ1JhLFp1YT1mKCgpPT57bGUoKTt0ZXQ9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LF9HPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxnUmE9KCgpPT57bGV0IGE9W2llKCJzei1jb25maWctb3ZlcnZpZXciKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXSxkLGM9W10scD1bXTt2YXIgdT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pDb25maWdPdmVydmlldyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBtPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289WyQoe3R5cGU6U3RyaW5nfSldLGQ9WyQoe3R5cGU6U3RyaW5nfSldLHRldCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImhlYWRpbmciaW4gdiwiaGFzIiksZ2V0OnModj0+di5oZWFkaW5nLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuaGVhZGluZz14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCksdGV0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImluZm9UZXh0ImluIHYsImhhcyIpLGdldDpzKHY9PnYuaW5mb1RleHQsImdldCIpLHNldDpzKCh2LHgpPT57di5pbmZvVGV4dD14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksdGV0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9c3RhdGljIGRlbW89cygoKT0+d2A8c3otY29uZmlnLW92ZXJ2aWV3CiAgICBoZWFkaW5nPSJDb25maWd1cmF0aW9uIgogICAgaW5mb1RleHQ9IlRoaXMgaXMgYSByZWFkLW9ubHkgdmlldyBvZiB0aGUgY3VycmVudCBydW5uaW5nIGNvbmZpZ3VyYXRpb24uIgogID4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7IGZvbnQtc2l6ZTogMTRweDsiPgogICAgICBQbGFjZSAmbHQ7c3otY29uZmlnLXNlY3Rpb24mZ3Q7IGVsZW1lbnRzIGhlcmUKICAgIDwvZGl2PgogIDwvc3otY29uZmlnLW92ZXJ2aWV3PmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNvbmZpZ3VyYXRpb24iXTsjZT1fRyh0aGlzLG4sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobSl7dGhpcy4jZT1tfSN0PShfRyh0aGlzLGwpLF9HKHRoaXMsYywiIikpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChtKXt0aGlzLiN0PW19c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmluZm8tYmFubmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNHB4IDE4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LDEzMCwyNDYsMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNiZmRiZmUiLCJyZ2JhKDU5LDEzMCwyNDYsMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZTQwYWYiLCIjOTNjNWZkIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAuaW5mby1iYW5uZXIgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoc3otY29uZmlnLXNlY3Rpb24pIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoc3otY29uZmlnLXNlY3Rpb246bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMuaGVhZGluZz93YDxkaXYgY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvZGl2PmA6IiJ9CiAgICAgICR7dGhpcy5pbmZvVGV4dD93YAogICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYmFubmVyIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmluZm8ifT48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPiR7dGhpcy5pbmZvVGV4dH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLF9HKHRoaXMscCl9c3RhdGlje19HKHIsdCl9fTtyZXR1cm4gdT1yfSkoKX0pO3ZhciBiUmEsdlJhLHhSYSxYdWE9ZigoKT0+e2xlKCk7Zm4oKTtiUmE9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LHZSYT1mdW5jdGlvbihhLGUsdCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspdD1yP2VbaV0uY2FsbChhLHQpOmVbaV0uY2FsbChhKTtyZXR1cm4gcj90OnZvaWQgMH0seFJhPSgoKT0+e2xldCBhPVtpZSgic3otZGVtby12aWV3LWRhc2hib2FyZCIpXSxlLHQ9W10scixpPXBlO3ZhciBvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTekRlbW9WaWV3RGFzaGJvYXJkIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7YlJhKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm59LG51bGwsdCksbz1yPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9YXBwdWk9bnVsbDthc3luYyBvbkFjdGl2YXRlKG4pe3RoaXMuYXBwdWk9bi5hcHB1aSx0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRGVwbG95IFNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6Um9ja2V0IixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJEZXBsb3kgc2VydmljZSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQWRkIERvbWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIFRva2VuIixpY29uTmFtZToibHVjaWRlOktleSIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIHRva2VuIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3lzdGVtIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIFN0YXRzIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiVmlldyBMb2dzIixpY29uTmFtZToibHVjaWRlOlRlcm1pbmFsIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJWaWV3IGxvZ3MiKX0sImFjdGlvbiIpfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPkRhc2hib2FyZDwvaDE+CiAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPk92ZXJ2aWV3IG9mIHlvdXIgb25lYm94IGluZnJhc3RydWN0dXJlPC9wPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei1kYXNoYm9hcmQtdmlldwogICAgICAgIC5jbHVzdGVyU3RhdHM9JHt7dG90YWxTZXJ2aWNlczoxMixydW5uaW5nOjksc3RvcHBlZDozLGRvY2tlclN0YXR1czoicnVubmluZyJ9fQogICAgICAgIC5yZXNvdXJjZVVzYWdlPSR7e2NwdTo0NSxtZW1vcnlVc2VkOiI2LjIgR0IiLG1lbW9yeVRvdGFsOiIxNiBHQiIsbmV0d29ya0luOiIyLjUgTUIvcyIsbmV0d29ya091dDoiMS4yIE1CL3MiLHRvcENvbnN1bWVyczpbe25hbWU6Im1vbmdvZGIiLG1lbW9yeToiMS4yIEdCIn0se25hbWU6ImNsaWNraG91c2UiLG1lbW9yeToiOTgwIE1CIn0se25hbWU6Im5naW54LXByb3h5IixtZW1vcnk6IjI1NiBNQiJ9XX19CiAgICAgICAgLnBsYXRmb3JtU2VydmljZXM9JHtbe25hbWU6Ik1vbmdvREIiLHN0YXR1czoicnVubmluZyIsaWNvbjoiZGF0YWJhc2UifSx7bmFtZToiUzMgU3RvcmFnZSIsc3RhdHVzOiJydW5uaW5nIixpY29uOiJzdG9yYWdlIn0se25hbWU6IkNsaWNrSG91c2UiLHN0YXR1czoic3RvcHBlZCIsaWNvbjoiYW5hbHl0aWNzIn0se25hbWU6IlJlZGlzIENhY2hlIixzdGF0dXM6InJ1bm5pbmciLGljb246ImNhY2hlIn1dfQogICAgICAgIC50cmFmZmljPSR7e3JlcXVlc3RzOjE1NDIwLGVycm9yczoyMyxlcnJvclBlcmNlbnQ6LjE1LGF2Z1Jlc3BvbnNlOjE0NSxyZXFQZXJNaW46ODU2LHN0YXR1czJ4eDoxNDg1MCxzdGF0dXMzeHg6MzIwLHN0YXR1czR4eDoyMjcsc3RhdHVzNXh4OjIzfX0KICAgICAgICAucHJveHk9JHt7aHR0cFBvcnQ6IjgwIixodHRwc1BvcnQ6IjQ0MyIsaHR0cEFjdGl2ZTohMCxodHRwc0FjdGl2ZTohMCxyb3V0ZUNvdW50OiIyNCJ9fQogICAgICAgIC5jZXJ0aWZpY2F0ZXM9JHt7dmFsaWQ6MTgsZXhwaXJpbmc6MixleHBpcmVkOjB9fQogICAgICAgIC5kbnM9JHt7cmVjb3Jkczo0NSx6b25lczo4LHBlbmRpbmdDaGFuZ2VzOjB9fQogICAgICAgIC5zc2w9JHt7YWN0aXZlQ2VydHM6MjAsYXV0b1JlbmV3OiEwLHByb3ZpZGVyOiJMZXQncyBFbmNyeXB0In19CiAgICAgICAgQHF1aWNrLWFjdGlvbj0ke249PmNvbnNvbGUubG9nKCJRdWljayBhY3Rpb246IixuLmRldGFpbCl9CiAgICAgID48L3N6LWRhc2hib2FyZC12aWV3PgogICAgYH1zdGF0aWN7dlJhKHIsdCl9fTtyZXR1cm4gbz1yfSkoKX0pO3ZhciBnaWUsVDUseVJhLFF1YT1mKCgpPT57bGUoKTtmbigpO2dpZT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sVDU9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHlSYT0oKCk9PntsZXQgYT1baWUoInN6LWRlbW8tdmlldy1zZXJ2aWNlcyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdLGQsYz1bXSxwPVtdLHUsbT1bXSx2PVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTekRlbW9WaWV3U2VydmljZXMiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtLKCldLGQ9W0soKV0sdT1bSygpXSxnaWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4iY3VycmVudFZpZXciaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5jdXJyZW50VmlldywiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmN1cnJlbnRWaWV3PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbixsKSxnaWUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFNlcnZpY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InNlbGVjdGVkU2VydmljZSJpbiBnLCJoYXMiKSxnZXQ6cyhnPT5nLnNlbGVjdGVkU2VydmljZSwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnNlbGVjdGVkU2VydmljZT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGMscCksZ2llKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+InNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlImluIGcsImhhcyIpLGdldDpzKGc9Pmcuc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2UsImdldCIpLHNldDpzKChnLHkpPT57Zy5zZWxlY3RlZFBsYXRmb3JtU2VydmljZT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdiksZ2llKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9YXBwdWk9bnVsbDsjZT1UNSh0aGlzLG4sImxpc3QiKTtnZXQgY3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFZpZXcoYil7dGhpcy4jZT1ifSN0PShUNSh0aGlzLGwpLFQ1KHRoaXMsYyxudWxsKSk7Z2V0IHNlbGVjdGVkU2VydmljZSgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFNlcnZpY2UoYil7dGhpcy4jdD1ifSNhPShUNSh0aGlzLHApLFQ1KHRoaXMsbSxudWxsKSk7Z2V0IHNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlKGIpe3RoaXMuI2E9Yn1kZW1vU2VydmljZXM9KFQ1KHRoaXMsdiksW3tpZDoiMSIsbmFtZToibmdpbngtcHJveHkiLGltYWdlOiJuZ2lueDpsYXRlc3QiLHN0YXR1czoicnVubmluZyIsY3B1OiIyLjUlIixtZW1vcnk6IjI1NiBNQiIscG9ydHM6IjgwLCA0NDMiLHVwdGltZToiNWQgMTJoIn0se2lkOiIyIixuYW1lOiJhcGktZ2F0ZXdheSIsaW1hZ2U6ImFwaS1nYXRld2F5OnYyLjEuMCIsc3RhdHVzOiJydW5uaW5nIixjcHU6IjguMiUiLG1lbW9yeToiNTEyIE1CIixwb3J0czoiMzAwMCIsdXB0aW1lOiIzZCA4aCJ9LHtpZDoiMyIsbmFtZToid29ya2VyLXNlcnZpY2UiLGltYWdlOiJ3b3JrZXI6bGF0ZXN0IixzdGF0dXM6InN0b3BwZWQiLGNwdToiMCUiLG1lbW9yeToiMCBNQiIscG9ydHM6Ii0iLHVwdGltZToiLSJ9LHtpZDoiNCIsbmFtZToicmVkaXMtY2FjaGUiLGltYWdlOiJyZWRpczo3LWFscGluZSIsc3RhdHVzOiJydW5uaW5nIixjcHU6IjEuMiUiLG1lbW9yeToiMTI4IE1CIixwb3J0czoiNjM3OSIsdXB0aW1lOiIxMGQgNGgifV0pO2RlbW9QbGF0Zm9ybVNlcnZpY2U9e2lkOiIxIixuYW1lOiJNb25nb0RCIix0eXBlOiJtb25nb2RiIixzdGF0dXM6InJ1bm5pbmciLHZlcnNpb246IjcuMC40Iixob3N0OiJsb2NhbGhvc3QiLHBvcnQ6MjcwMTcsY3JlZGVudGlhbHM6e3VzZXJuYW1lOiJhZG1pbiIscGFzc3dvcmQ6Ilx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMlx1MjAyMiJ9LGNvbmZpZzp7cmVwbGljYVNldDoicnMwIixhdXRoRW5hYmxlZDohMCxqb3VybmFsaW5nOiEwfSxtZXRyaWNzOntjcHU6MTIsbWVtb3J5OjQ1LHN0b3JhZ2U6MjMsY29ubmVjdGlvbnM6OH19O2RlbW9QbGF0Zm9ybUxvZ3M9W3t0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjIiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJDb25uZWN0aW9uIGFjY2VwdGVkIGZyb20gMTI3LjAuMC4xOjU0MzIxIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMCIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkluZGV4IGJ1aWxkIGNvbXBsZXRlZCBvbiBjb2xsZWN0aW9uIHVzZXJzIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoxNSIsbGV2ZWw6Indhcm4iLG1lc3NhZ2U6IlNsb3cgcXVlcnkgZGV0ZWN0ZWQ6IDEuMnMgb24gY29sbGVjdGlvbiBvcmRlcnMifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjEwIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiQ2hlY2twb2ludCBjb21wbGV0ZSJ9XTtkZW1vQmFja3VwU2NoZWR1bGVzPVt7aWQ6IjEiLHNjb3BlOiJBbGwgU2VydmljZXMiLHJldGVudGlvbjoiRDo3LCBXOjQsIE06MTIiLHNjaGVkdWxlOiIwIDIgKiAqICoiLGxhc3RSdW46IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixuZXh0UnVuOiIxLzMvMjAyNiwgMjowMDowMCBBTSIsc3RhdHVzOiJhY3RpdmUifV07ZGVtb0JhY2t1cHM9W3tpZDoiMSIsc2VydmljZToibmdpbngtcHJveHkiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDMgQU0iLHNpemU6IjIyLjAgTUIiLGluY2x1ZGVzOlsiSW1hZ2UiXX0se2lkOiIyIixzZXJ2aWNlOiJhcGktZ2F0ZXdheSIsY3JlYXRlZEF0OiIxLzIvMjAyNiwgMjowMDowMiBBTSIsc2l6ZToiMTU2LjUgTUIiLGluY2x1ZGVzOlsiSW1hZ2UiLCJWb2x1bWVzIl19LHtpZDoiMyIsc2VydmljZToicmVkaXMtY2FjaGUiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDAgQU0iLHNpemU6IjQ4LjAgTUIiLGluY2x1ZGVzOlsiSW1hZ2UiLCJEYXRhIl19XTtzdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC50YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogLTFweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMuY3VycmVudFZpZXc9PT0ibGlzdCI/dGhpcy5yZW5kZXJMaXN0VmlldygpOiIifQogICAgICAke3RoaXMuY3VycmVudFZpZXc9PT0iY3JlYXRlIj90aGlzLnJlbmRlckNyZWF0ZVZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09ImRldGFpbCI/dGhpcy5yZW5kZXJEZXRhaWxWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJiYWNrdXBzIj90aGlzLnJlbmRlckJhY2t1cHNWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJwbGF0Zm9ybS1kZXRhaWwiP3RoaXMucmVuZGVyUGxhdGZvcm1EZXRhaWxWaWV3KCk6IiJ9CiAgICBgfXJlbmRlckxpc3RWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaW5mbyI+CiAgICAgICAgICA8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPlNlcnZpY2VzPC9oMT4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgeW91ciBEb2NrZXIgY29udGFpbmVycyBhbmQgcGxhdGZvcm0gc2VydmljZXM8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzZWNvbmRhcnkiIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJiYWNrdXBzIn0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTcgOCAxMiAzIDcgOCIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjMiIHgyPSIxMiIgeTI9IjE1Ii8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBCYWNrdXBzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJjcmVhdGUifT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz4KICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgRGVwbG95IFNlcnZpY2UKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InRhYnMiPgogICAgICAgIDxidXR0b24gY2xhc3M9InRhYiBhY3RpdmUiPkRvY2tlciBTZXJ2aWNlczwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9InRhYiIgQGNsaWNrPSR7KCk9Pnt0aGlzLnNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlPXRoaXMuZGVtb1BsYXRmb3JtU2VydmljZSx0aGlzLmN1cnJlbnRWaWV3PSJwbGF0Zm9ybS1kZXRhaWwifX0+UGxhdGZvcm0gU2VydmljZXM8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8c3otc2VydmljZXMtbGlzdC12aWV3CiAgICAgICAgLnNlcnZpY2VzPSR7dGhpcy5kZW1vU2VydmljZXN9CiAgICAgICAgQHZpZXctc2VydmljZT0ke2I9Pnt0aGlzLnNlbGVjdGVkU2VydmljZT1iLmRldGFpbCx0aGlzLmN1cnJlbnRWaWV3PSJkZXRhaWwifX0KICAgICAgICBAc3RhcnQtc2VydmljZT0ke2I9PmNvbnNvbGUubG9nKCJTdGFydCBzZXJ2aWNlOiIsYi5kZXRhaWwpfQogICAgICAgIEBzdG9wLXNlcnZpY2U9JHtiPT5jb25zb2xlLmxvZygiU3RvcCBzZXJ2aWNlOiIsYi5kZXRhaWwpfQogICAgICAgIEByZXN0YXJ0LXNlcnZpY2U9JHtiPT5jb25zb2xlLmxvZygiUmVzdGFydCBzZXJ2aWNlOiIsYi5kZXRhaWwpfQogICAgICAgIEBkZWxldGUtc2VydmljZT0ke2I9PmNvbnNvbGUubG9nKCJEZWxldGUgc2VydmljZToiLGIuZGV0YWlsKX0KICAgICAgPjwvc3otc2VydmljZXMtbGlzdC12aWV3PgogICAgYH1yZW5kZXJDcmVhdGVWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxidXR0b24gY2xhc3M9ImJhY2stYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9PgogICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ii8+CiAgICAgICAgPC9zdmc+CiAgICAgICAgQmFjayB0byBTZXJ2aWNlcwogICAgICA8L2J1dHRvbj4KCiAgICAgIDxzei1zZXJ2aWNlLWNyZWF0ZS12aWV3CiAgICAgICAgLnJlZ2lzdHJpZXM9JHtbe2lkOiIxIixuYW1lOiJPbmVib3ggUmVnaXN0cnkiLHVybDoicmVnaXN0cnkub25lYm94LmxvY2FsIn0se2lkOiIyIixuYW1lOiJEb2NrZXIgSHViIix1cmw6ImRvY2tlci5pbyJ9XX0KICAgICAgICBAY3JlYXRlLXNlcnZpY2U9JHtiPT57Y29uc29sZS5sb2coIkNyZWF0ZSBzZXJ2aWNlOiIsYi5kZXRhaWwpLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgICBAY2FuY2VsPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgYH1yZW5kZXJEZXRhaWxWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxidXR0b24gY2xhc3M9ImJhY2stYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9PgogICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ii8+CiAgICAgICAgPC9zdmc+CiAgICAgICAgQmFjayB0byBTZXJ2aWNlcwogICAgICA8L2J1dHRvbj4KCiAgICAgIDxzei1zZXJ2aWNlLWRldGFpbC12aWV3CiAgICAgICAgLnNlcnZpY2U9JHt7aWQ6dGhpcy5zZWxlY3RlZFNlcnZpY2U/LmlkfHwiMSIsbmFtZTp0aGlzLnNlbGVjdGVkU2VydmljZT8ubmFtZXx8Im5naW54LXByb3h5IixpbWFnZTp0aGlzLnNlbGVjdGVkU2VydmljZT8uaW1hZ2V8fCJuZ2lueDpsYXRlc3QiLHN0YXR1czp0aGlzLnNlbGVjdGVkU2VydmljZT8uc3RhdHVzfHwicnVubmluZyIscG9ydHM6W3tob3N0OiI4MCIsY29udGFpbmVyOiI4MCJ9LHtob3N0OiI0NDMiLGNvbnRhaW5lcjoiNDQzIn1dLGVudlZhcnM6W3trZXk6Ik5HSU5YX0hPU1QiLHZhbHVlOiJsb2NhbGhvc3QifSx7a2V5OiJOR0lOWF9QT1JUIix2YWx1ZToiODAifV0sdm9sdW1lczpbe2hvc3Q6Ii9kYXRhL25naW54L2NvbmYiLGNvbnRhaW5lcjoiL2V0Yy9uZ2lueC9jb25mLmQifV0sY3JlYXRlZEF0OiIyMDI0LTAxLTE1IDEwOjMwOjAwIixyZXN0YXJ0UG9saWN5OiJhbHdheXMifX0KICAgICAgICAubG9ncz0ke1t7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIyIixsZXZlbDoiaW5mbyIsbWVzc2FnZTonMTI3LjAuMC4xIC0gLSBbMjAvSmFuLzIwMjQ6MTQ6MzA6MjIgKzAwMDBdICJHRVQgLyBIVFRQLzEuMSIgMjAwIDYxMid9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjEiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoyMSArMDAwMF0gIkdFVCAvYXBpL2hlYWx0aCBIVFRQLzEuMSIgMjAwIDE1J30se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMCIsbGV2ZWw6Indhcm4iLG1lc3NhZ2U6InVwc3RyZWFtIHRpbWVkIG91dCAoMTEwOiBDb25uZWN0aW9uIHRpbWVkIG91dCkifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjE5IixsZXZlbDoiaW5mbyIsbWVzc2FnZTonMTI3LjAuMC4xIC0gLSBbMjAvSmFuLzIwMjQ6MTQ6MzA6MTkgKzAwMDBdICJQT1NUIC9hcGkvZGF0YSBIVFRQLzEuMSIgMjAxIDg5J31dfQogICAgICAgIEBzdGFydD0keygpPT5jb25zb2xlLmxvZygiU3RhcnQiKX0KICAgICAgICBAc3RvcD0keygpPT5jb25zb2xlLmxvZygiU3RvcCIpfQogICAgICAgIEByZXN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJSZXN0YXJ0Iil9CiAgICAgICAgQHJlcXVlc3Qtd29ya3NwYWNlPSR7Yj0+Y29uc29sZS5sb2coIldvcmtzcGFjZSByZXF1ZXN0ZWQgZm9yOiIsYi5kZXRhaWwuc2VydmljZS5uYW1lKX0KICAgICAgPjwvc3otc2VydmljZS1kZXRhaWwtdmlldz4KICAgIGB9cmVuZGVyQmFja3Vwc1ZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+QmFja3VwczwvaDE+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZS1zdWJ0aXRsZSI+TWFuYWdlIGJhY2t1cCBzY2hlZHVsZXMgYW5kIHJlc3RvcmUgcG9pbnRzPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXcKICAgICAgICAuc2NoZWR1bGVzPSR7dGhpcy5kZW1vQmFja3VwU2NoZWR1bGVzfQogICAgICAgIC5iYWNrdXBzPSR7dGhpcy5kZW1vQmFja3Vwc30KICAgICAgICBAY3JlYXRlLXNjaGVkdWxlPSR7KCk9PmNvbnNvbGUubG9nKCJDcmVhdGUgc2NoZWR1bGUiKX0KICAgICAgICBAcnVuLW5vdz0ke2I9PmNvbnNvbGUubG9nKCJSdW4gbm93OiIsYi5kZXRhaWwpfQogICAgICAgIEBkb3dubG9hZD0ke2I9PmNvbnNvbGUubG9nKCJEb3dubG9hZDoiLGIuZGV0YWlsKX0KICAgICAgPjwvc3otc2VydmljZXMtYmFja3Vwcy12aWV3PgogICAgYH1yZW5kZXJQbGF0Zm9ybURldGFpbFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3RoaXMuZGVtb1BsYXRmb3JtU2VydmljZX0KICAgICAgICAubG9ncz0ke3RoaXMuZGVtb1BsYXRmb3JtTG9nc30KICAgICAgICBAc3RhcnQ9JHsoKT0+Y29uc29sZS5sb2coIlN0YXJ0Iil9CiAgICAgICAgQHN0b3A9JHsoKT0+Y29uc29sZS5sb2coIlN0b3AiKX0KICAgICAgICBAcmVzdGFydD0keygpPT5jb25zb2xlLmxvZygiUmVzdGFydCIpfQogICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgYH1hc3luYyBvbkFjdGl2YXRlKGIpe3RoaXMuYXBwdWk9Yi5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJEb2NrZXIgU2VydmljZXMiLGFjdGlvbjpzKCgpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiUGxhdGZvcm0gU2VydmljZXMiLGFjdGlvbjpzKCgpPT57dGhpcy5jdXJyZW50Vmlldz0icGxhdGZvcm0tZGV0YWlsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJCYWNrdXBzIixhY3Rpb246cygoKT0+e3RoaXMuY3VycmVudFZpZXc9ImJhY2t1cHMiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9XSksdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9dXBkYXRlU2Vjb25kYXJ5TWVudSgpe3RoaXMuYXBwdWkmJnRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2VydmljZXMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkRlcGxveSBTZXJ2aWNlIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjpzKCgpPT57dGhpcy5jdXJyZW50Vmlldz0iY3JlYXRlIn0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiUXVpY2sgRmlsdGVycyIsaXRlbXM6W3trZXk6IlJ1bm5pbmciLGljb25OYW1lOiJsdWNpZGU6UGxheSIsYmFkZ2U6IjMiLGJhZGdlVmFyaWFudDoic3VjY2VzcyIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHJ1bm5pbmciKX0sImFjdGlvbiIpfSx7a2V5OiJTdG9wcGVkIixpY29uTmFtZToibHVjaWRlOlNxdWFyZSIsYmFkZ2U6IjEiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBzdG9wcGVkIil9LCJhY3Rpb24iKX1dfV19KX1vbkRlYWN0aXZhdGUoKXt9c3RhdGlje1Q1KHIsdCl9fTtyZXR1cm4geD1yfSkoKX0pO3ZhciBhZXQsVEcsd1JhLEp1YT1mKCgpPT57bGUoKTtmbigpO2FldD1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sVEc9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LHdSYT0oKCk9PntsZXQgYT1baWUoInN6LWRlbW8tdmlldy1uZXR3b3JrIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W107dmFyIHU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6RGVtb1ZpZXdOZXR3b3JrIil9c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IG09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bSygpXSxkPVtLKCldLGFldCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+ImN1cnJlbnRUYWIiaW4gdiwiaGFzIiksZ2V0OnModj0+di5jdXJyZW50VGFiLCJnZXQiKSxzZXQ6cygodix4KT0+e3YuY3VycmVudFRhYj14fSwic2V0Iil9LG1ldGFkYXRhOm19LG4sbCksYWV0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREb21haW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnModj0+InNlbGVjdGVkRG9tYWluImluIHYsImhhcyIpLGdldDpzKHY9PnYuc2VsZWN0ZWREb21haW4sImdldCIpLHNldDpzKCh2LHgpPT57di5zZWxlY3RlZERvbWFpbj14fSwic2V0Iil9LG1ldGFkYXRhOm19LGMscCksYWV0KG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOm19LG51bGwsdCksdT1yPWUudmFsdWUsbSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptfSl9YXBwdWk9bnVsbDsjZT1URyh0aGlzLG4sInByb3h5Iik7Z2V0IGN1cnJlbnRUYWIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFRhYihtKXt0aGlzLiNlPW19YXN5bmMgb25BY3RpdmF0ZShtKXt0aGlzLmFwcHVpPW0uYXBwdWksdGhpcy5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiUmV2ZXJzZSBQcm94eSIsYWN0aW9uOnMoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9InByb3h5Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJETlMgUmVjb3JkcyIsYWN0aW9uOnMoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9ImRucyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRG9tYWlucyIsYWN0aW9uOnMoKCk9Pnt0aGlzLmN1cnJlbnRUYWI9ImRvbWFpbnMiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9XSksdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9dXBkYXRlU2Vjb25kYXJ5TWVudSgpe3RoaXMuYXBwdWkmJih0aGlzLmN1cnJlbnRUYWI9PT0icHJveHkiP3RoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUmV2ZXJzZSBQcm94eSIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFJvdXRlIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkFkZCByb3V0ZSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpSZWZyZXNoQ3ciLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIlJlZnJlc2giKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0aXN0aWNzIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IjQyIEFjdGl2ZSBDb25uZWN0aW9ucyJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiIxNSw0MjAgUmVxdWVzdHMgVG9kYXkifV19XX0pOnRoaXMuY3VycmVudFRhYj09PSJkbnMiP3RoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRE5TIFJlY29yZHMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSZWNvcmQiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiQWRkIHJlY29yZCIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFpvbmUiLGljb25OYW1lOiJsdWNpZGU6VXBsb2FkIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJJbXBvcnQgem9uZSIpfSwiYWN0aW9uIil9XX0se25hbWU6IlpvbmVzIixpdGVtczpbe2tleToiZXhhbXBsZS5jb20iLGljb25OYW1lOiJsdWNpZGU6R2xvYmUiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIlNlbGVjdCBleGFtcGxlLmNvbSIpfSwiYWN0aW9uIil9LHtrZXk6ImV4YW1wbGUubmV0IixpY29uTmFtZToibHVjaWRlOkdsb2JlIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJTZWxlY3QgZXhhbXBsZS5uZXQiKX0sImFjdGlvbiIpfSx7a2V5OiJteWFwcC5pbyIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiU2VsZWN0IG15YXBwLmlvIil9LCJhY3Rpb24iKX1dfV19KToodGhpcy5jdXJyZW50VGFiPT09ImRvbWFpbnMifHx0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWluLWRldGFpbCIpJiZ0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRvbWFpbnMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBEb21haW4iLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiVmVyaWZ5IEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpDaGVja0NpcmNsZSIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiVmVyaWZ5IGFsbCIpfSwiYWN0aW9uIil9XX0se25hbWU6IkNlcnRpZmljYXRlcyIsaXRlbXM6W3trZXk6IlZhbGlkIixpY29uTmFtZToibHVjaWRlOlNoaWVsZENoZWNrIixiYWRnZToiMyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgdmFsaWQiKX0sImFjdGlvbiIpfSx7a2V5OiJFeHBpcmluZyBTb29uIixpY29uTmFtZToibHVjaWRlOkFsZXJ0VHJpYW5nbGUiLGJhZGdlOiIxIixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBleHBpcmluZyIpfSwiYWN0aW9uIil9XX1dfSkpfW9uRGVhY3RpdmF0ZSgpe30jdD0oVEcodGhpcyxsKSxURyh0aGlzLGMsbnVsbCkpO2dldCBzZWxlY3RlZERvbWFpbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZERvbWFpbihtKXt0aGlzLiN0PW19ZGVtb1Byb3h5Um91dGVzPShURyh0aGlzLHApLFt7aWQ6IjEiLGRvbWFpbjoiYXBpLmV4YW1wbGUuY29tIix0YXJnZXQ6Imh0dHA6Ly9hcGktZ2F0ZXdheTozMDAwIixzc2w6ITAsc3RhdHVzOiJhY3RpdmUifSx7aWQ6IjIiLGRvbWFpbjoiYXBwLmV4YW1wbGUuY29tIix0YXJnZXQ6Imh0dHA6Ly9mcm9udGVuZDo4MDgwIixzc2w6ITAsc3RhdHVzOiJhY3RpdmUifSx7aWQ6IjMiLGRvbWFpbjoiYWRtaW4uZXhhbXBsZS5jb20iLHRhcmdldDoiaHR0cDovL2FkbWluLXBhbmVsOjQwMDAiLHNzbDohMCxzdGF0dXM6ImFjdGl2ZSJ9LHtpZDoiNCIsZG9tYWluOiJsZWdhY3kuZXhhbXBsZS5jb20iLHRhcmdldDoiaHR0cDovL2xlZ2FjeTo1MDAwIixzc2w6ITEsc3RhdHVzOiJpbmFjdGl2ZSJ9XSk7ZGVtb0FjY2Vzc0xvZ3M9W3t0aW1lc3RhbXA6IjE0OjMwOjIyIixtZXRob2Q6IkdFVCIscGF0aDoiL2FwaS91c2VycyIsc3RhdHVzOjIwMCxkdXJhdGlvbjoiNDVtcyIsaXA6IjE5Mi4xNjguMS4xMDAifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsbWV0aG9kOiJQT1NUIixwYXRoOiIvYXBpL29yZGVycyIsc3RhdHVzOjIwMSxkdXJhdGlvbjoiMTIwbXMiLGlwOiIxOTIuMTY4LjEuMTA1In0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLG1ldGhvZDoiR0VUIixwYXRoOiIvYXBpL3Byb2R1Y3RzIixzdGF0dXM6MjAwLGR1cmF0aW9uOiI4OW1zIixpcDoiMTkyLjE2OC4xLjEwMCJ9LHt0aW1lc3RhbXA6IjE0OjMwOjE5IixtZXRob2Q6IkRFTEVURSIscGF0aDoiL2FwaS9jYWNoZSIsc3RhdHVzOjIwNCxkdXJhdGlvbjoiMTJtcyIsaXA6IjE5Mi4xNjguMS41MCJ9LHt0aW1lc3RhbXA6IjE0OjMwOjE4IixtZXRob2Q6IkdFVCIscGF0aDoiL2hlYWx0aCIsc3RhdHVzOjIwMCxkdXJhdGlvbjoiNW1zIixpcDoiMTAuMC4wLjEifV07ZGVtb0Ruc1JlY29yZHM9W3tpZDoiMSIsdHlwZToiQSIsbmFtZToiQCIsdmFsdWU6IjE5Mi4xNjguMS4xMDAiLHR0bDozNjAwLHpvbmU6ImV4YW1wbGUuY29tIn0se2lkOiIyIix0eXBlOiJBIixuYW1lOiJhcGkiLHZhbHVlOiIxOTIuMTY4LjEuMTAwIix0dGw6MzYwMCx6b25lOiJleGFtcGxlLmNvbSJ9LHtpZDoiMyIsdHlwZToiQ05BTUUiLG5hbWU6Ind3dyIsdmFsdWU6ImV4YW1wbGUuY29tIix0dGw6MzYwMCx6b25lOiJleGFtcGxlLmNvbSJ9LHtpZDoiNCIsdHlwZToiTVgiLG5hbWU6IkAiLHZhbHVlOiJtYWlsLmV4YW1wbGUuY29tIix0dGw6MzYwMCx6b25lOiJleGFtcGxlLmNvbSIscHJpb3JpdHk6MTB9LHtpZDoiNSIsdHlwZToiVFhUIixuYW1lOiJAIix2YWx1ZToidj1zcGYxIGluY2x1ZGU6X3NwZi5leGFtcGxlLmNvbSB+YWxsIix0dGw6MzYwMCx6b25lOiJleGFtcGxlLmNvbSJ9XTtkZW1vRG9tYWlucz1be2lkOiIxIixuYW1lOiJleGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHNzbDohMCxzc2xFeHBpcnk6IjIwMjQtMDQtMTUiLGRuc1Byb3ZpZGVyOiJDbG91ZGZsYXJlIixyZWNvcmRDb3VudDoxMn0se2lkOiIyIixuYW1lOiJhcGkuZXhhbXBsZS5jb20iLHN0YXR1czoiYWN0aXZlIixzc2w6ITAsc3NsRXhwaXJ5OiIyMDI0LTA1LTIwIixkbnNQcm92aWRlcjoiQ2xvdWRmbGFyZSIscmVjb3JkQ291bnQ6M30se2lkOiIzIixuYW1lOiJzdGFnaW5nLmV4YW1wbGUuY29tIixzdGF0dXM6InBlbmRpbmciLHNzbDohMSxzc2xFeHBpcnk6bnVsbCxkbnNQcm92aWRlcjoiQ2xvdWRmbGFyZSIscmVjb3JkQ291bnQ6Mn0se2lkOiI0IixuYW1lOiJsZWdhY3kuZXhhbXBsZS5uZXQiLHN0YXR1czoiYWN0aXZlIixzc2w6ITAsc3NsRXhwaXJ5OiIyMDI0LTAyLTEwIixkbnNQcm92aWRlcjoiTWFudWFsIixyZWNvcmRDb3VudDo1fV07ZGVtb0RvbWFpbkRldGFpbD17aWQ6IjEiLG5hbWU6ImV4YW1wbGUuY29tIixzdGF0dXM6ImFjdGl2ZSIsdmVyaWZpZWQ6ITAsY3JlYXRlZEF0OiIyMDI0LTAxLTEwIixwcm94eVJvdXRlczpbIi9hcGkvKiIsIi9hcHAvKiIsIi9hZG1pbi8qIl19O2RlbW9DZXJ0aWZpY2F0ZT17aWQ6IjEiLGRvbWFpbjoiZXhhbXBsZS5jb20iLGlzc3VlcjoiTGV0J3MgRW5jcnlwdCIsdmFsaWRGcm9tOiIyMDI0LTAxLTEwIix2YWxpZFVudGlsOiIyMDI0LTA0LTEwIixkYXlzUmVtYWluaW5nOjQ1LHN0YXR1czoidmFsaWQiLGF1dG9SZW5ldzohMCxjaGFpbjpbIlIzIiwiSVNSRyBSb290IFgxIl19O2RlbW9Eb21haW5EbnNSZWNvcmRzPVt7aWQ6IjEiLHR5cGU6IkEiLG5hbWU6IkAiLHZhbHVlOiIxOTIuMTY4LjEuMTAwIix0dGw6MzYwMH0se2lkOiIyIix0eXBlOiJDTkFNRSIsbmFtZToid3d3Iix2YWx1ZToiZXhhbXBsZS5jb20iLHR0bDozNjAwfSx7aWQ6IjMiLHR5cGU6Ik1YIixuYW1lOiJAIix2YWx1ZToibWFpbC5leGFtcGxlLmNvbSIsdHRsOjM2MDAscHJpb3JpdHk6MTB9LHtpZDoiNCIsdHlwZToiVFhUIixuYW1lOiJAIix2YWx1ZToidj1zcGYxIGluY2x1ZGU6X3NwZi5leGFtcGxlLmNvbSB+YWxsIix0dGw6MzYwMH1dO3N0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wYWdlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICB9CgogICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAudGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IC0xcHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4IDFweCAwIDA7CiAgICAgIH0KCiAgICAgIC5iYWNrLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYmFjay1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5jdXJyZW50VGFiPT09ImRvbWFpbi1kZXRhaWwiP3RoaXMucmVuZGVyRG9tYWluRGV0YWlsKCk6d2AKICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0icHJveHkiP3RoaXMucmVuZGVyUHJveHlWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50VGFiPT09ImRucyI/dGhpcy5yZW5kZXJEbnNWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50VGFiPT09ImRvbWFpbnMiP3RoaXMucmVuZGVyRG9tYWluc1ZpZXcoKToiIn0KICAgIGB9cmVuZGVyUHJveHlWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLXByb3h5LXZpZXcKICAgICAgICAucm91dGVzPSR7dGhpcy5kZW1vUHJveHlSb3V0ZXN9CiAgICAgICAgLmFjY2Vzc0xvZ3M9JHt0aGlzLmRlbW9BY2Nlc3NMb2dzfQogICAgICAgIC5zdGF0cz0ke3thY3RpdmVDb25uZWN0aW9uczo0MixyZXF1ZXN0c1RvZGF5OjE1NDIwLGJ5dGVzVHJhbnNmZXJyZWQ6IjIuNCBHQiJ9fQogICAgICAgIEBhZGQtcm91dGU9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByb3V0ZSIpfQogICAgICAgIEBlZGl0LXJvdXRlPSR7bT0+Y29uc29sZS5sb2coIkVkaXQgcm91dGU6IixtLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1yb3V0ZT0ke209PmNvbnNvbGUubG9nKCJEZWxldGUgcm91dGU6IixtLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstcHJveHktdmlldz4KICAgIGB9cmVuZGVyRG5zVmlldygpe3JldHVybiB3YAogICAgICA8c3otbmV0d29yay1kbnMtdmlldwogICAgICAgIC5yZWNvcmRzPSR7dGhpcy5kZW1vRG5zUmVjb3Jkc30KICAgICAgICAuem9uZXM9JHtbImV4YW1wbGUuY29tIiwiZXhhbXBsZS5uZXQiLCJteWFwcC5pbyJdfQogICAgICAgIC5zZWxlY3RlZFpvbmU9JHsiZXhhbXBsZS5jb20ifQogICAgICAgIEBhZGQtcmVjb3JkPSR7KCk9PmNvbnNvbGUubG9nKCJBZGQgcmVjb3JkIil9CiAgICAgICAgQGVkaXQtcmVjb3JkPSR7bT0+Y29uc29sZS5sb2coIkVkaXQgcmVjb3JkOiIsbS5kZXRhaWwpfQogICAgICAgIEBkZWxldGUtcmVjb3JkPSR7bT0+Y29uc29sZS5sb2coIkRlbGV0ZSByZWNvcmQ6IixtLmRldGFpbCl9CiAgICAgICAgQGNoYW5nZS16b25lPSR7bT0+Y29uc29sZS5sb2coIkNoYW5nZSB6b25lOiIsbS5kZXRhaWwpfQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5zVmlldygpe3JldHVybiB3YAogICAgICA8c3otbmV0d29yay1kb21haW5zLXZpZXcKICAgICAgICAuZG9tYWlucz0ke3RoaXMuZGVtb0RvbWFpbnN9CiAgICAgICAgQGFkZC1kb21haW49JHsoKT0+Y29uc29sZS5sb2coIkFkZCBkb21haW4iKX0KICAgICAgICBAdmlldy1kb21haW49JHttPT57dGhpcy5zZWxlY3RlZERvbWFpbj1tLmRldGFpbCx0aGlzLmN1cnJlbnRUYWI9ImRvbWFpbi1kZXRhaWwifX0KICAgICAgICBAcmVuZXctc3NsPSR7bT0+Y29uc29sZS5sb2coIlJlbmV3IFNTTDoiLG0uZGV0YWlsKX0KICAgICAgICBAZGVsZXRlLWRvbWFpbj0ke209PmNvbnNvbGUubG9nKCJEZWxldGUgZG9tYWluOiIsbS5kZXRhaWwpfQogICAgICA+PC9zei1uZXR3b3JrLWRvbWFpbnMtdmlldz4KICAgIGB9cmVuZGVyRG9tYWluRGV0YWlsKCl7cmV0dXJuIHdgCiAgICAgIDxidXR0b24gY2xhc3M9ImJhY2stYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jdXJyZW50VGFiPSJkb21haW5zIn0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIERvbWFpbnMKICAgICAgPC9idXR0b24+CgogICAgICA8c3otZG9tYWluLWRldGFpbC12aWV3CiAgICAgICAgLmRvbWFpbj0ke3RoaXMuZGVtb0RvbWFpbkRldGFpbH0KICAgICAgICAuY2VydGlmaWNhdGU9JHt0aGlzLmRlbW9DZXJ0aWZpY2F0ZX0KICAgICAgICAuZG5zUmVjb3Jkcz0ke3RoaXMuZGVtb0RvbWFpbkRuc1JlY29yZHN9CiAgICAgICAgQHZlcmlmeS1kb21haW49JHsoKT0+Y29uc29sZS5sb2coIlZlcmlmeSBkb21haW4iKX0KICAgICAgICBAZGVsZXRlLWRvbWFpbj0keygpPT57Y29uc29sZS5sb2coIkRlbGV0ZSBkb21haW4iKSx0aGlzLmN1cnJlbnRUYWI9ImRvbWFpbnMifX0KICAgICAgICBAcmVuZXctY2VydGlmaWNhdGU9JHsoKT0+Y29uc29sZS5sb2coIlJlbmV3IGNlcnRpZmljYXRlIil9CiAgICAgICAgQGFkZC1kbnMtcmVjb3JkPSR7KCk9PmNvbnNvbGUubG9nKCJBZGQgRE5TIHJlY29yZCIpfQogICAgICAgIEBlZGl0LWRucy1yZWNvcmQ9JHttPT5jb25zb2xlLmxvZygiRWRpdCBETlMgcmVjb3JkOiIsbS5kZXRhaWwpfQogICAgICAgIEBkZWxldGUtZG5zLXJlY29yZD0ke209PmNvbnNvbGUubG9nKCJEZWxldGUgRE5TIHJlY29yZDoiLG0uZGV0YWlsKX0KICAgICAgPjwvc3otZG9tYWluLWRldGFpbC12aWV3PgogICAgYH1zdGF0aWN7VEcocix0KX19O3JldHVybiB1PXJ9KSgpfSk7dmFyIGVwYSxyZXQsTVJhLHRwYT1mKCgpPT57bGUoKTtmbigpO2VwYT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0scmV0PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxNUmE9KCgpPT57bGV0IGE9W2llKCJzei1kZW1vLXZpZXctcmVnaXN0cmllcyIpXSxlLHQ9W10scixpPXBlLG8sbj1bXSxsPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTekRlbW9WaWV3UmVnaXN0cmllcyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0sZXBhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4iY3VycmVudFRhYiJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLmN1cnJlbnRUYWIsImdldCIpLHNldDpzKChwLHUpPT57cC5jdXJyZW50VGFiPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxlcGEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1hcHB1aT1udWxsOyNlPXJldCh0aGlzLG4sIm9uZWJveCIpO2dldCBjdXJyZW50VGFiKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRUYWIoYyl7dGhpcy4jZT1jfWFzeW5jIG9uQWN0aXZhdGUoYyl7dGhpcy5hcHB1aT1jLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IlJlZ2lzdHJ5IEFkdmVydGlzZW1lbnQiLGFjdGlvbjpzKCgpPT57dGhpcy5jdXJyZW50VGFiPSJvbmVib3giLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkV4dGVybmFsIFJlZ2lzdHJpZXMiLGFjdGlvbjpzKCgpPT57dGhpcy5jdXJyZW50VGFiPSJleHRlcm5hbCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmKHRoaXMuY3VycmVudFRhYj09PSJvbmVib3giP3RoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUmVnaXN0cnkgQWR2ZXJ0aXNlbWVudCIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiUHVzaCBJbWFnZSIsaWNvbk5hbWU6Imx1Y2lkZTpVcGxvYWQiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIlB1c2ggaW1hZ2UiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIix2YXJpYW50OiJkYW5nZXIiLGtleToiR2FyYmFnZSBDb2xsZWN0IixpY29uTmFtZToibHVjaWRlOlRyYXNoMiIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiR0MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0aXN0aWNzIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IjQgSW1hZ2VzIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6IjY0MCBNQiBUb3RhbCJ9XX1dfSk6dGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJFeHRlcm5hbCBSZWdpc3RyaWVzIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgUmVnaXN0cnkiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiQWRkIHJlZ2lzdHJ5Iil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJUZXN0IEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpDaGVja0NpcmNsZSIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiVGVzdCBhbGwiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJDb25uZWN0ZWQiLGl0ZW1zOlt7a2V5OiJEb2NrZXIgSHViIixpY29uTmFtZToibHVjaWRlOkJveCIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiRG9ja2VyIEh1YiIpfSwiYWN0aW9uIil9LHtrZXk6IkdIQ1IiLGljb25OYW1lOiJsdWNpZGU6R2l0aHViIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJHSENSIil9LCJhY3Rpb24iKX1dfV19KSl9b25EZWFjdGl2YXRlKCl7fWRlbW9PbmVib3hJbWFnZXM9KHJldCh0aGlzLGwpLFt7aWQ6IjEiLG5hbWU6ImFwaS1nYXRld2F5Iix0YWdzOlsibGF0ZXN0IiwidjIuMS4wIiwidjIuMC4wIl0sc2l6ZToiMjU2IE1CIix1cGRhdGVkOiIyMDI0LTAxLTIwIixwdWxsczoxNDJ9LHtpZDoiMiIsbmFtZToiZnJvbnRlbmQiLHRhZ3M6WyJsYXRlc3QiLCJ2MS41LjAiXSxzaXplOiIxMjggTUIiLHVwZGF0ZWQ6IjIwMjQtMDEtMTkiLHB1bGxzOjg5fSx7aWQ6IjMiLG5hbWU6Indvcmtlci1zZXJ2aWNlIix0YWdzOlsibGF0ZXN0Il0sc2l6ZToiNjQgTUIiLHVwZGF0ZWQ6IjIwMjQtMDEtMTgiLHB1bGxzOjU2fSx7aWQ6IjQiLG5hbWU6ImFkbWluLXBhbmVsIix0YWdzOlsibGF0ZXN0IiwidjMuMC4wIiwidjIuOS4wIl0sc2l6ZToiMTkyIE1CIix1cGRhdGVkOiIyMDI0LTAxLTE3IixwdWxsczozNH1dKTtkZW1vRXh0ZXJuYWxSZWdpc3RyaWVzPVt7aWQ6IjEiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIixzdGF0dXM6ImNvbm5lY3RlZCIsaW1hZ2VzOjEyfSx7aWQ6IjIiLG5hbWU6IkdpdEh1YiBDb250YWluZXIgUmVnaXN0cnkiLHVybDoiZ2hjci5pbyIsc3RhdHVzOiJjb25uZWN0ZWQiLGltYWdlczo4fSx7aWQ6IjMiLG5hbWU6IkFXUyBFQ1IiLHVybDoiMTIzNDU2Nzg5LmRrci5lY3IudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLHN0YXR1czoiZXJyb3IiLGltYWdlczowfV07c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC50YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogLTFweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5jdXJyZW50VGFiPT09Im9uZWJveCI/d2AKICAgICAgICA8c3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudAogICAgICAgICAgLmltYWdlcz0ke3RoaXMuZGVtb09uZWJveEltYWdlc30KICAgICAgICAgIC5zdGF0cz0ke3t0b3RhbEltYWdlczo0LHRvdGFsU2l6ZToiNjQwIE1CIix0b3RhbFB1bGxzOjMyMX19CiAgICAgICAgICBAdmlldy1pbWFnZT0ke2M9PmNvbnNvbGUubG9nKCJWaWV3IGltYWdlOiIsYy5kZXRhaWwpfQogICAgICAgICAgQGRlbGV0ZS1pbWFnZT0ke2M9PmNvbnNvbGUubG9nKCJEZWxldGUgaW1hZ2U6IixjLmRldGFpbCl9CiAgICAgICAgICBAZGVsZXRlLXRhZz0ke2M9PmNvbnNvbGUubG9nKCJEZWxldGUgdGFnOiIsYy5kZXRhaWwpfQogICAgICAgID48L3N6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQ+CiAgICAgIGA6d2AKICAgICAgICA8c3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldwogICAgICAgICAgLnJlZ2lzdHJpZXM9JHt0aGlzLmRlbW9FeHRlcm5hbFJlZ2lzdHJpZXN9CiAgICAgICAgICBAYWRkLXJlZ2lzdHJ5PSR7KCk9PmNvbnNvbGUubG9nKCJBZGQgcmVnaXN0cnkiKX0KICAgICAgICAgIEBlZGl0LXJlZ2lzdHJ5PSR7Yz0+Y29uc29sZS5sb2coIkVkaXQgcmVnaXN0cnk6IixjLmRldGFpbCl9CiAgICAgICAgICBAZGVsZXRlLXJlZ2lzdHJ5PSR7Yz0+Y29uc29sZS5sb2coIkRlbGV0ZSByZWdpc3RyeToiLGMuZGV0YWlsKX0KICAgICAgICAgIEB0ZXN0LWNvbm5lY3Rpb249JHtjPT5jb25zb2xlLmxvZygiVGVzdCBjb25uZWN0aW9uOiIsYy5kZXRhaWwpfQogICAgICAgID48L3N6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXc+CiAgICAgIGB9CiAgICBgfXN0YXRpY3tyZXQocix0KX19O3JldHVybiBkPXJ9KSgpfSk7dmFyIGtSYSxTUmEselJhLGFwYT1mKCgpPT57bGUoKTtmbigpO2tSYT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sU1JhPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSx6UmE9KCgpPT57bGV0IGE9W2llKCJzei1kZW1vLXZpZXctdG9rZW5zIildLGUsdD1bXSxyLGk9cGU7dmFyIG89Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6RGVtb1ZpZXdUb2tlbnMiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtrUmEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bn0sbnVsbCx0KSxvPXI9ZS52YWx1ZSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX1hcHB1aT1udWxsO2FzeW5jIG9uQWN0aXZhdGUobil7dGhpcy5hcHB1aT1uLmFwcHVpLHRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiVG9rZW5zIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJDcmVhdGUgR2xvYmFsIFRva2VuIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkNyZWF0ZSBnbG9iYWwgdG9rZW4iKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBDSSBUb2tlbiIsaWNvbk5hbWU6Imx1Y2lkZTpHaXRCcmFuY2giLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkNyZWF0ZSBDSSB0b2tlbiIpfSwiYWN0aW9uIil9XX0se25hbWU6IlRva2VuIFR5cGVzIixpdGVtczpbe2tleToiR2xvYmFsIFRva2VucyIsaWNvbk5hbWU6Imx1Y2lkZTpLZXkiLGJhZGdlOiIzIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgZ2xvYmFsIil9LCJhY3Rpb24iKX0se2tleToiQ0kgVG9rZW5zIixpY29uTmFtZToibHVjaWRlOkNwdSIsYmFkZ2U6IjMiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBDSSIpfSwiYWN0aW9uIil9XX1dfSl9b25EZWFjdGl2YXRlKCl7fWRlbW9HbG9iYWxUb2tlbnM9W3tpZDoiMSIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OiIyMDI0LTAxLTE1IixsYXN0VXNlZDoiMjAyNC0wMS0yMCJ9LHtpZDoiMiIsbmFtZToiRGV2ZWxvcG1lbnQiLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OiIyMDI0LTAxLTEwIn0se2lkOiIzIixuYW1lOiJQcm9kdWN0aW9uIERlcGxveSIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMDUiLGxhc3RVc2VkOiIyMDI0LTAxLTE5In1dO2RlbW9DaVRva2Vucz1be2lkOiI0IixuYW1lOiJhcGktZ2F0ZXdheS1jaSIsdHlwZToiY2kiLHNlcnZpY2U6ImFwaS1nYXRld2F5IixjcmVhdGVkQXQ6IjIwMjQtMDEtMTgiLGxhc3RVc2VkOiIyMDI0LTAxLTIwIn0se2lkOiI1IixuYW1lOiJmcm9udGVuZC1jaSIsdHlwZToiY2kiLHNlcnZpY2U6ImZyb250ZW5kIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTIiLGxhc3RVc2VkOiIyMDI0LTAxLTE5In0se2lkOiI2IixuYW1lOiJ3b3JrZXItc2VydmljZS1jaSIsdHlwZToiY2kiLHNlcnZpY2U6Indvcmtlci1zZXJ2aWNlIixjcmVhdGVkQXQ6IjIwMjQtMDEtMDgifV07c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5Ub2tlbnM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgcmVnaXN0cnkgYWNjZXNzIHRva2VucyBmb3IgQ0kvQ0QgcGlwZWxpbmVzPC9wPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei10b2tlbnMtdmlldwogICAgICAgIC5nbG9iYWxUb2tlbnM9JHt0aGlzLmRlbW9HbG9iYWxUb2tlbnN9CiAgICAgICAgLmNpVG9rZW5zPSR7dGhpcy5kZW1vQ2lUb2tlbnN9CiAgICAgICAgQGNyZWF0ZT0ke249PmNvbnNvbGUubG9nKCJDcmVhdGUgdG9rZW46IixuLmRldGFpbCl9CiAgICAgICAgQGNvcHk9JHtuPT5jb25zb2xlLmxvZygiQ29weSB0b2tlbjoiLG4uZGV0YWlsKX0KICAgICAgICBAcmVnZW5lcmF0ZT0ke249PmNvbnNvbGUubG9nKCJSZWdlbmVyYXRlIHRva2VuOiIsbi5kZXRhaWwpfQogICAgICAgIEBkZWxldGU9JHtuPT5jb25zb2xlLmxvZygiRGVsZXRlIHRva2VuOiIsbi5kZXRhaWwpfQogICAgICA+PC9zei10b2tlbnMtdmlldz4KICAgIGB9c3RhdGlje1NSYShyLHQpfX07cmV0dXJuIG89cn0pKCl9KTt2YXIgQ1JhLF9SYSxUUmEscnBhPWYoKCk9PntsZSgpO2ZuKCk7Q1JhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxfUmE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFRSYT0oKCk9PntsZXQgYT1baWUoInN6LWRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLHQ9W10scixpPXBlO3ZhciBvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTekRlbW9WaWV3U2V0dGluZ3MiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtDUmEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bn0sbnVsbCx0KSxvPXI9ZS52YWx1ZSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX1hcHB1aT1udWxsO2FzeW5jIG9uQWN0aXZhdGUobil7dGhpcy5hcHB1aT1uLmFwcHVpLHRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2V0dGluZ3MiLGdyb3Vwczpbe25hbWU6IkNhdGVnb3JpZXMiLGl0ZW1zOlt7a2V5OiJHZW5lcmFsIixpY29uTmFtZToibHVjaWRlOlNldHRpbmdzIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJHZW5lcmFsIHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiTmV0d29yayIsaWNvbk5hbWU6Imx1Y2lkZTpOZXR3b3JrIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJOZXR3b3JrIHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiU2VjdXJpdHkiLGljb25OYW1lOiJsdWNpZGU6U2hpZWxkIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJTZWN1cml0eSBzZXR0aW5ncyIpfSwiYWN0aW9uIil9LHtrZXk6IkNlcnRpZmljYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpGaWxlQmFkZ2UiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkNlcnRpZmljYXRlIHNldHRpbmdzIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRXhwb3J0IENvbmZpZyIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiRXhwb3J0IGNvbmZpZyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IENvbmZpZyIsaWNvbk5hbWU6Imx1Y2lkZTpVcGxvYWQiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkltcG9ydCBjb25maWciKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIix2YXJpYW50OiJkYW5nZXIiLGtleToiUmVzZXQgdG8gRGVmYXVsdCIsaWNvbk5hbWU6Imx1Y2lkZTpSb3RhdGVDY3ciLGNvbmZpcm1NZXNzYWdlOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVzZXQgYWxsIHNldHRpbmdzIHRvIGRlZmF1bHQ/IixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJSZXNldCBzZXR0aW5ncyIpfSwiYWN0aW9uIil9XX1dfSl9b25EZWFjdGl2YXRlKCl7fWRlbW9TZXR0aW5ncz17ZGFya01vZGU6ITAsY2xvdWRmbGFyZVRva2VuOiIiLGNsb3VkZmxhcmVab25lSWQ6IiIsYXV0b1JlbmV3Q2VydHM6ITAscmVuZXdhbFRocmVzaG9sZDozMCxhY21lRW1haWw6ImFkbWluQHNlcnZlLnpvbmUiLGh0dHBQb3J0OjgwLGh0dHBzUG9ydDo0NDMsZm9yY2VIdHRwczohMH07c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5zZXR0aW5ncy1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5TZXR0aW5nczwvaDE+CiAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPkNvbmZpZ3VyZSB5b3VyIG9uZWJveCBpbnN0YW5jZTwvcD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb250YWluZXIiPgogICAgICAgIDxzei1zZXR0aW5ncy12aWV3CiAgICAgICAgICAuc2V0dGluZ3M9JHt0aGlzLmRlbW9TZXR0aW5nc30KICAgICAgICAgIGN1cnJlbnRVc2VyPSJhZG1pbiIKICAgICAgICAgIEBzZXR0aW5nLWNoYW5nZT0ke249PmNvbnNvbGUubG9nKCJTZXR0aW5nIGNoYW5nZToiLG4uZGV0YWlsKX0KICAgICAgICAgIEBjaGFuZ2UtcGFzc3dvcmQ9JHtuPT5jb25zb2xlLmxvZygiQ2hhbmdlIHBhc3N3b3JkOiIsbi5kZXRhaWwpfQogICAgICAgICAgQHJlc2V0PSR7KCk9PmNvbnNvbGUubG9nKCJSZXNldCBzZXR0aW5ncyIpfQogICAgICAgICAgQHNhdmU9JHtuPT5jb25zb2xlLmxvZygiU2F2ZSBzZXR0aW5nczoiLG4uZGV0YWlsKX0KICAgICAgICA+PC9zei1zZXR0aW5ncy12aWV3PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje19SYShyLHQpfX07cmV0dXJuIG89cn0pKCl9KTt2YXIgYmllLEw1LExSYSxzcGE9ZigoKT0+e2xlKCk7Zm4oKTtiaWU9ZnVuY3Rpb24oYSxlLHQscixpLG8pe2Z1bmN0aW9uIG4oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1zKG4sImFjY2VwdCIpO2Zvcih2YXIgbD1yLmtpbmQsZD1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmYT9yLnN0YXRpYz9hOmEucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksdSxtPSExLHY9dC5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIHg9e307Zm9yKHZhciBiIGluIHIpeFtiXT1iPT09ImFjY2VzcyI/e306cltiXTtmb3IodmFyIGIgaW4gci5hY2Nlc3MpeC5hY2Nlc3NbYl09ci5hY2Nlc3NbYl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChuKHl8fG51bGwpKX07dmFyIGc9KDAsdFt2XSkobD09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seCk7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsodT1uKGcuZ2V0KSkmJihwLmdldD11KSwodT1uKGcuc2V0KSkmJihwLnNldD11KSwodT1uKGcuaW5pdCkpJiZpLnVuc2hpZnQodSl9ZWxzZSh1PW4oZykpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KHUpOnBbZF09dSl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHApLG09ITB9LEw1PWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxMUmE9KCgpPT57bGV0IGE9W2llKCJzei1kZW1vLXZpZXctbXRhIildLGUsdD1bXSxyLGk9cGUsbyxuPVtdLGw9W10sZCxjPVtdLHA9W10sdSxtPVtdLHY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tzKHRoaXMsIlN6RGVtb1ZpZXdNdGEiKX1zdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtLKCldLGQ9W0soKV0sdT1bSygpXSxiaWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhnPT4iY3VycmVudFZpZXciaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5jdXJyZW50VmlldywiZ2V0Iiksc2V0OnMoKGcseSk9PntnLmN1cnJlbnRWaWV3PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbixsKSxiaWUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEVtYWlsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzKGc9PiJzZWxlY3RlZEVtYWlsImluIGcsImhhcyIpLGdldDpzKGc9Pmcuc2VsZWN0ZWRFbWFpbCwiZ2V0Iiksc2V0OnMoKGcseSk9PntnLnNlbGVjdGVkRW1haWw9eX0sInNldCIpfSxtZXRhZGF0YTpifSxjLHApLGJpZSh0aGlzLG51bGwsdSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnREaXJlY3Rpb25GaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnMoZz0+ImN1cnJlbnREaXJlY3Rpb25GaWx0ZXIiaW4gZywiaGFzIiksZ2V0OnMoZz0+Zy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyLCJnZXQiKSxzZXQ6cygoZyx5KT0+e2cuY3VycmVudERpcmVjdGlvbkZpbHRlcj15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG0sdiksYmllKG51bGwsZT17dmFsdWU6cn0sYSx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsdCkseD1yPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9YXBwdWk9bnVsbDsjZT1MNSh0aGlzLG4sImxpc3QiKTtnZXQgY3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFZpZXcoYil7dGhpcy4jZT1ifSN0PShMNSh0aGlzLGwpLEw1KHRoaXMsYyxudWxsKSk7Z2V0IHNlbGVjdGVkRW1haWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRFbWFpbChiKXt0aGlzLiN0PWJ9I2E9KEw1KHRoaXMscCksTDUodGhpcyxtLCJhbGwiKSk7Z2V0IGN1cnJlbnREaXJlY3Rpb25GaWx0ZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY3VycmVudERpcmVjdGlvbkZpbHRlcihiKXt0aGlzLiNhPWJ9ZGVtb0VtYWlscz0oTDUodGhpcyx2KSxbe2lkOiIxIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToibm9yZXBseUBzZXJ2ZS56b25lIix0bzoidXNlckBleGFtcGxlLmNvbSIsc3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MzA6MjIiLG1lc3NhZ2VJZDoiPGFiYzEyM0BzZXJ2ZS56b25lPiIsc2l6ZToiMTIuNCBLQiJ9LHtpZDoiMiIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJib3VuY2VkIixmcm9tOiJhbGVydHNAc2VydmUuem9uZSIsdG86ImludmFsaWRAbm93aGVyZS50ZXN0IixzdWJqZWN0OiJTZXJ2aWNlIEFsZXJ0OiBDUFUgVXNhZ2UgSGlnaCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjI4OjEwIixtZXNzYWdlSWQ6IjxkZWY0NTZAc2VydmUuem9uZT4iLHNpemU6IjguMiBLQiJ9LHtpZDoiMyIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToic3VwcG9ydEBjdXN0b21lci5jb20iLHRvOiJhZG1pbkBzZXJ2ZS56b25lIixzdWJqZWN0OiJSZTogSW5mcmFzdHJ1Y3R1cmUgUmV2aWV3Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MjU6MDAiLG1lc3NhZ2VJZDoiPGdoaTc4OUBjdXN0b21lci5jb20+IixzaXplOiIyNC4xIEtCIn0se2lkOiI0IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InJlamVjdGVkIixmcm9tOiJiaWxsaW5nQHNlcnZlLnpvbmUiLHRvOiJibG9ja2VkQHNwYW0tZG9tYWluLnRlc3QiLHN1YmplY3Q6Ikludm9pY2UgIzIwMjQtMDAxIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MjA6NDUiLG1lc3NhZ2VJZDoiPGprbDAxMkBzZXJ2ZS56b25lPiIsc2l6ZToiNDUuNiBLQiJ9LHtpZDoiNSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWZlcnJlZCIsZnJvbToibm9yZXBseUBzZXJ2ZS56b25lIix0bzoic2xvd0ByZW1vdGUtc2VydmVyLnRlc3QiLHN1YmplY3Q6IlBhc3N3b3JkIFJlc2V0IFJlcXVlc3QiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxNTozMCIsbWVzc2FnZUlkOiI8bW5vMzQ1QHNlcnZlLnpvbmU+IixzaXplOiI2LjggS0IifSx7aWQ6IjYiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206ImNpQGdpdGh1Yi5jb20iLHRvOiJkZXZvcHNAc2VydmUuem9uZSIsc3ViamVjdDoiQnVpbGQgIzQ1MjEgcGFzc2VkIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MTA6MDAiLG1lc3NhZ2VJZDoiPHBxcjY3OEBnaXRodWIuY29tPiIsc2l6ZToiMTUuMyBLQiJ9LHtpZDoiNyIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJwZW5kaW5nIixmcm9tOiJyZXBvcnRzQHNlcnZlLnpvbmUiLHRvOiJ0ZWFtQHNlcnZlLnpvbmUiLHN1YmplY3Q6IldlZWtseSBJbmZyYXN0cnVjdHVyZSBSZXBvcnQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDowNTowMCIsbWVzc2FnZUlkOiI8c3R1OTAxQHNlcnZlLnpvbmU+IixzaXplOiIxMDIuNyBLQiJ9LHtpZDoiOCIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToibW9uaXRvcmluZ0B1cHRpbWUuaW8iLHRvOiJvcHNAc2VydmUuem9uZSIsc3ViamVjdDoiVXB0aW1lIFJlcG9ydDogOTkuOTglIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTM6NTU6MDAiLG1lc3NhZ2VJZDoiPHZ3eDIzNEB1cHRpbWUuaW8+IixzaXplOiI5LjEgS0IifV0pO2RlbW9FbWFpbERldGFpbHM9ezE6e2lkOiIxIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToibm9yZXBseUBzZXJ2ZS56b25lIix0bzoidXNlckBleGFtcGxlLmNvbSIsdG9MaXN0OlsidXNlckBleGFtcGxlLmNvbSJdLHN1YmplY3Q6IldlbGNvbWUgdG8gc2VydmUuem9uZSIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjMwOjIyIixtZXNzYWdlSWQ6IjxhYmMxMjNAc2VydmUuem9uZT4iLHNpemU6IjEyLjQgS0IiLHNtdHBMb2c6W3t0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLnNlcnZlLnpvbmUifSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLmV4YW1wbGUuY29tIEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1TVEFSVFRMUyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgU0laRSA1MjQyODgwMCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJTVEFSVFRMUyJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjIwIFJlYWR5IHRvIHN0YXJ0IFRMUyIscmVzcG9uc2VDb2RlOjIyMH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuZXhhbXBsZS5jb20gSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLUFVVEggUExBSU4gTE9HSU4iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIFNJWkUgNTI0Mjg4MDAiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiQVVUSCBQTEFJTiBBSFZ6WlhJQWNHRnpjM2R2Y21RPSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjM1IDIuNy4wIEF1dGhlbnRpY2F0aW9uIHN1Y2Nlc3NmdWwiLHJlc3BvbnNlQ29kZToyMzV9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiTUFJTCBGUk9NOjxub3JlcGx5QHNlcnZlLnpvbmU+In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0siLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiUkNQVCBUTzo8dXNlckBleGFtcGxlLmNvbT4ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBBY2NlcHRlZCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJEQVRBIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiczNTQgRW50ZXIgbWVzc2FnZSwgZW5kaW5nIHdpdGggIi4iIG9uIGEgbGluZSBieSBpdHNlbGYnLHJlc3BvbnNlQ29kZTozNTR9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiLiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIGlkPTFwUTJyUy0wMDAzQWItQzQiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiUVVJVCJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjIxIG1haWwuZXhhbXBsZS5jb20gY2xvc2luZyBjb25uZWN0aW9uIixyZXNwb25zZUNvZGU6MjIxfV0sY29ubmVjdGlvbkluZm86e3NvdXJjZUlwOiIxMC4wLjEuNTAiLHNvdXJjZUhvc3RuYW1lOiJtYWlsLnNlcnZlLnpvbmUiLGRlc3RpbmF0aW9uSXA6IjkzLjE4NC4yMTYuMzQiLGRlc3RpbmF0aW9uUG9ydDoyNSx0bHNWZXJzaW9uOiJUTFN2MS4zIix0bHNDaXBoZXI6IlRMU19BRVNfMjU2X0dDTV9TSEEzODQiLGF1dGhlbnRpY2F0ZWQ6ITAsYXV0aE1ldGhvZDoiUExBSU4iLGF1dGhVc2VyOiJub3JlcGx5QHNlcnZlLnpvbmUifSxhdXRoZW50aWNhdGlvblJlc3VsdHM6e3NwZjoicGFzcyIsc3BmRG9tYWluOiJzZXJ2ZS56b25lIixka2ltOiJwYXNzIixka2ltRG9tYWluOiJzZXJ2ZS56b25lIixkbWFyYzoicGFzcyIsZG1hcmNQb2xpY3k6InJlamVjdCJ9LGhlYWRlcnM6e0Zyb206Im5vcmVwbHlAc2VydmUuem9uZSIsVG86InVzZXJAZXhhbXBsZS5jb20iLFN1YmplY3Q6IldlbGNvbWUgdG8gc2VydmUuem9uZSIsRGF0ZToiTW9uLCAxNSBKYW4gMjAyNCAxNDozMDoyMiArMDAwMCIsIk1JTUUtVmVyc2lvbiI6IjEuMCIsIkNvbnRlbnQtVHlwZSI6InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCJ9LGJvZHk6YDxodG1sPgo8aGVhZD48dGl0bGU+V2VsY29tZTwvdGl0bGU+PC9oZWFkPgo8Ym9keT4KICA8aDE+V2VsY29tZSB0byBzZXJ2ZS56b25lITwvaDE+CiAgPHA+WW91ciBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LjwvcD4KICA8cD5HZXQgc3RhcnRlZCBieSB2aXNpdGluZyB5b3VyIDxhIGhyZWY9Imh0dHBzOi8vc2VydmUuem9uZS9kYXNoYm9hcmQiPmRhc2hib2FyZDwvYT4uPC9wPgo8L2JvZHk+CjwvaHRtbD5gfSwyOntpZDoiMiIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJib3VuY2VkIixmcm9tOiJhbGVydHNAc2VydmUuem9uZSIsdG86ImludmFsaWRAbm93aGVyZS50ZXN0Iix0b0xpc3Q6WyJpbnZhbGlkQG5vd2hlcmUudGVzdCJdLHN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6Mjg6MTAiLG1lc3NhZ2VJZDoiPGRlZjQ1NkBzZXJ2ZS56b25lPiIsc2l6ZToiOC4yIEtCIixyZWplY3Rpb25SZWFzb246IjU1MCA1LjEuMSBUaGUgZW1haWwgYWNjb3VudCB0aGF0IHlvdSB0cmllZCB0byByZWFjaCBkb2VzIG5vdCBleGlzdC4iLGJvdW5jZU1lc3NhZ2U6YERlbGl2ZXJ5IHRvIHRoZSBmb2xsb3dpbmcgcmVjaXBpZW50IGZhaWxlZCBwZXJtYW5lbnRseToKCiAgICBpbnZhbGlkQG5vd2hlcmUudGVzdAoKVGVjaG5pY2FsIGRldGFpbHMgb2YgcGVybWFuZW50IGZhaWx1cmU6Ckdvb2dsZSB0cmllZCB0byBkZWxpdmVyIHlvdXIgbWVzc2FnZSwgYnV0IGl0IHdhcyByZWplY3RlZCBieSB0aGUgc2VydmVyIGZvciB0aGUgcmVjaXBpZW50IGRvbWFpbiBub3doZXJlLnRlc3QuYCxzbXRwTG9nOlt7dGltZXN0YW1wOiIxNDoyODowOCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6Mjg6MDgiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5ub3doZXJlLnRlc3QgSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI4OjA4IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiTUFJTCBGUk9NOjxhbGVydHNAc2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDoyODowOSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6Mjg6MDkiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjxpbnZhbGlkQG5vd2hlcmUudGVzdD4ifSx7dGltZXN0YW1wOiIxNDoyODoxMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjU1MCA1LjEuMSBUaGUgZW1haWwgYWNjb3VudCB0aGF0IHlvdSB0cmllZCB0byByZWFjaCBkb2VzIG5vdCBleGlzdC4iLHJlc3BvbnNlQ29kZTo1NTB9LHt0aW1lc3RhbXA6IjE0OjI4OjEwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiUVVJVCJ9LHt0aW1lc3RhbXA6IjE0OjI4OjEwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjIxIEJ5ZSIscmVzcG9uc2VDb2RlOjIyMX1dLGNvbm5lY3Rpb25JbmZvOntzb3VyY2VJcDoiMTAuMC4xLjUwIixzb3VyY2VIb3N0bmFtZToibWFpbC5zZXJ2ZS56b25lIixkZXN0aW5hdGlvbklwOiIxOTguNTEuMTAwLjI1IixkZXN0aW5hdGlvblBvcnQ6MjUsdGxzVmVyc2lvbjoiVExTdjEuMiIsdGxzQ2lwaGVyOiJFQ0RIRS1SU0EtQUVTMTI4LUdDTS1TSEEyNTYiLGF1dGhlbnRpY2F0ZWQ6ITAsYXV0aE1ldGhvZDoiUExBSU4iLGF1dGhVc2VyOiJhbGVydHNAc2VydmUuem9uZSJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46InNlcnZlLnpvbmUiLGRraW06InBhc3MiLGRraW1Eb21haW46InNlcnZlLnpvbmUiLGRtYXJjOiJwYXNzIixkbWFyY1BvbGljeToicXVhcmFudGluZSJ9LGhlYWRlcnM6e0Zyb206ImFsZXJ0c0BzZXJ2ZS56b25lIixUbzoiaW52YWxpZEBub3doZXJlLnRlc3QiLFN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIixEYXRlOiJNb24sIDE1IEphbiAyMDI0IDE0OjI4OjEwICswMDAwIiwiTUlNRS1WZXJzaW9uIjoiMS4wIiwiQ29udGVudC1UeXBlIjoidGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOCJ9LGJvZHk6YEFMRVJUOiBDUFUgVXNhZ2UgSGlnaAoKU2VydmljZTogYXBpLWdhdGV3YXkKQ3VycmVudCBVc2FnZTogOTQuMiUKVGhyZXNob2xkOiA5MCUKVGltZXN0YW1wOiAyMDI0LTAxLTE1IDE0OjI4OjAwIFVUQwoKUGxlYXNlIGludmVzdGlnYXRlIGltbWVkaWF0ZWx5LmB9LDM6e2lkOiIzIixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsdG86ImFkbWluQHNlcnZlLnpvbmUiLHRvTGlzdDpbImFkbWluQHNlcnZlLnpvbmUiXSxjYzpbIm9wc0BzZXJ2ZS56b25lIl0sc3ViamVjdDoiUmU6IEluZnJhc3RydWN0dXJlIFJldmlldyIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjI1OjAwIixtZXNzYWdlSWQ6IjxnaGk3ODlAY3VzdG9tZXIuY29tPiIsc2l6ZToiMjQuMSBLQiIsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6MjQ6NTgiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuY3VzdG9tZXIuY29tIn0se3RpbWVzdGFtcDoiMTQ6MjQ6NTgiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5zZXJ2ZS56b25lIEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNDo1OCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1TVEFSVFRMUyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjQ6NTgiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgU0laRSA1MjQyODgwMCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJTVEFSVFRMUyJ9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjIwIFJlYWR5IHRvIHN0YXJ0IFRMUyIscmVzcG9uc2VDb2RlOjIyMH0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PHN1cHBvcnRAY3VzdG9tZXIuY29tPiJ9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlJDUFQgVE86PGFkbWluQHNlcnZlLnpvbmU+In0se3RpbWVzdGFtcDoiMTQ6MjU6MDAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgQWNjZXB0ZWQiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI1OjAwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiREFUQSJ9LHt0aW1lc3RhbXA6IjE0OjI1OjAwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMzU0IEVudGVyIG1lc3NhZ2UiLHJlc3BvbnNlQ29kZTozNTR9LHt0aW1lc3RhbXA6IjE0OjI1OjAwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiLiJ9LHt0aW1lc3RhbXA6IjE0OjI1OjAwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIGlkPTJiUjNzVC0wMDA0Q2QtRTUiLHJlc3BvbnNlQ29kZToyNTB9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjIwMy4wLjExMy40NSIsc291cmNlSG9zdG5hbWU6Im1haWwuY3VzdG9tZXIuY29tIixkZXN0aW5hdGlvbklwOiIxMC4wLjEuNTAiLGRlc3RpbmF0aW9uUG9ydDoyNSx0bHNWZXJzaW9uOiJUTFN2MS4zIix0bHNDaXBoZXI6IlRMU19BRVNfMTI4X0dDTV9TSEEyNTYiLGF1dGhlbnRpY2F0ZWQ6ITEsYXV0aE1ldGhvZDoiIixhdXRoVXNlcjoiIn0sYXV0aGVudGljYXRpb25SZXN1bHRzOntzcGY6InBhc3MiLHNwZkRvbWFpbjoiY3VzdG9tZXIuY29tIixka2ltOiJwYXNzIixka2ltRG9tYWluOiJjdXN0b21lci5jb20iLGRtYXJjOiJwYXNzIixkbWFyY1BvbGljeToibm9uZSJ9LGhlYWRlcnM6e0Zyb206InN1cHBvcnRAY3VzdG9tZXIuY29tIixUbzoiYWRtaW5Ac2VydmUuem9uZSIsQ0M6Im9wc0BzZXJ2ZS56b25lIixTdWJqZWN0OiJSZTogSW5mcmFzdHJ1Y3R1cmUgUmV2aWV3IixEYXRlOiJNb24sIDE1IEphbiAyMDI0IDE0OjI1OjAwICswMDAwIiwiTUlNRS1WZXJzaW9uIjoiMS4wIiwiQ29udGVudC1UeXBlIjoidGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOCIsIkluLVJlcGx5LVRvIjoiPHByZXYxMjNAc2VydmUuem9uZT4ifSxib2R5OmBIaSBBZG1pbiwKClRoYW5rIHlvdSBmb3IgdGhlIGRldGFpbGVkIGluZnJhc3RydWN0dXJlIHJldmlldyByZXBvcnQuCgpXZSBoYXZlIHJldmlld2VkIHRoZSByZWNvbW1lbmRhdGlvbnMgYW5kIHdvdWxkIGxpa2UgdG8KcHJvY2VlZCB3aXRoIHRoZSBmb2xsb3dpbmc6CgoxLiBVcGdyYWRlIHRvIHRoZSBQcm8gdGllcgoyLiBFbmFibGUgYXV0b21hdGljIGJhY2t1cHMKMy4gU2V0IHVwIG1vbml0b3JpbmcgYWxlcnRzCgpQbGVhc2UgbGV0IHVzIGtub3cgdGhlIHRpbWVsaW5lIGZvciB0aGVzZSBjaGFuZ2VzLgoKQmVzdCByZWdhcmRzLApDdXN0b21lciBTdXBwb3J0IFRlYW1gfX07YXN5bmMgb25BY3RpdmF0ZShiKXt0aGlzLmFwcHVpPWIuYXBwdWksdGhpcy5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiQWxsIEVtYWlscyIsYWN0aW9uOnMoKCk9Pnt0aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXI9ImFsbCIsdGhpcy5jdXJyZW50Vmlldz0ibGlzdCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiSW5ib3VuZCIsYWN0aW9uOnMoKCk9Pnt0aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXI9ImluYm91bmQiLHRoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6Ik91dGJvdW5kIixhY3Rpb246cygoKT0+e3RoaXMuY3VycmVudERpcmVjdGlvbkZpbHRlcj0ib3V0Ym91bmQiLHRoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9XSksdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9dXBkYXRlU2Vjb25kYXJ5TWVudSgpe3RoaXMuYXBwdWkmJnRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRW1haWwgLyBNVEEiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIGVtYWlscyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiRXhwb3J0IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkV4cG9ydCBsb2dzIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3RhdHVzIEZpbHRlcnMiLGl0ZW1zOlt7a2V5OiJEZWxpdmVyZWQiLGljb25OYW1lOiJsdWNpZGU6Q2hlY2tDaXJjbGUiLGJhZGdlOiI1IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBkZWxpdmVyZWQiKX0sImFjdGlvbiIpfSx7a2V5OiJCb3VuY2VkIixpY29uTmFtZToibHVjaWRlOlhDaXJjbGUiLGJhZGdlOiIxIixiYWRnZVZhcmlhbnQ6ImVycm9yIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgYm91bmNlZCIpfSwiYWN0aW9uIil9LHtrZXk6IkRlZmVycmVkIixpY29uTmFtZToibHVjaWRlOkNsb2NrIixiYWRnZToiMSIsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgZGVmZXJyZWQiKX0sImFjdGlvbiIpfSx7a2V5OiJQZW5kaW5nIixpY29uTmFtZToibHVjaWRlOkxvYWRlciIsYmFkZ2U6IjEiLGFjdGlvbjpzKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBwZW5kaW5nIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3RhdGlzdGljcyIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiI4IFRvdGFsIEVtYWlscyJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiI2Mi41JSBEZWxpdmVyeSBSYXRlIn1dfV19KX1vbkRlYWN0aXZhdGUoKXt9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3PT09ImRldGFpbCImJnRoaXMuc2VsZWN0ZWRFbWFpbD93YAogICAgICAgIDxzei1tdGEtZGV0YWlsLXZpZXcKICAgICAgICAgIC5lbWFpbD0ke3RoaXMuc2VsZWN0ZWRFbWFpbH0KICAgICAgICAgIEBiYWNrPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnNlbGVjdGVkRW1haWw9bnVsbH19CiAgICAgICAgPjwvc3otbXRhLWRldGFpbC12aWV3PgogICAgICBgOndgCiAgICAgIDxzei1tdGEtbGlzdC12aWV3CiAgICAgICAgLmVtYWlscz0ke3RoaXMuY3VycmVudERpcmVjdGlvbkZpbHRlcj09PSJhbGwiP3RoaXMuZGVtb0VtYWlsczp0aGlzLmRlbW9FbWFpbHMuZmlsdGVyKGI9PmIuZGlyZWN0aW9uPT09dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyKX0KICAgICAgICBAZW1haWwtY2xpY2s9JHtiPT50aGlzLmhhbmRsZUVtYWlsQ2xpY2soYi5kZXRhaWwpfQogICAgICA+PC9zei1tdGEtbGlzdC12aWV3PgogICAgYH1oYW5kbGVFbWFpbENsaWNrKGIpe2xldCBnPXRoaXMuZGVtb0VtYWlsRGV0YWlsc1tiLmlkXTtnPyh0aGlzLnNlbGVjdGVkRW1haWw9Zyx0aGlzLmN1cnJlbnRWaWV3PSJkZXRhaWwiKTpjb25zb2xlLmxvZygiTm8gZGV0YWlsIGRhdGEgYXZhaWxhYmxlIGZvciBlbWFpbDoiLGIuaWQpfXN0YXRpY3tMNShyLHQpfX07cmV0dXJuIHg9cn0pKCl9KTt2YXIgaXBhLHNldCwkUmEsb3BhPWYoKCk9PntsZSgpO2ZuKCk7aXBhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxzZXQ9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LCRSYT0oKCk9PntsZXQgYT1baWUoInN6LWRlbW8tdmlldy1yb3V0ZXMiKV0sZSx0PVtdLHIsaT1wZSxvLG49W10sbD1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pEZW1vVmlld1JvdXRlcyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0soKV0saXBhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cyhwPT4iY3VycmVudFRhYiJpbiBwLCJoYXMiKSxnZXQ6cyhwPT5wLmN1cnJlbnRUYWIsImdldCIpLHNldDpzKChwLHUpPT57cC5jdXJyZW50VGFiPXV9LCJzZXQiKX0sbWV0YWRhdGE6Y30sbixsKSxpcGEobnVsbCxlPXt2YWx1ZTpyfSxhLHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCx0KSxkPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1hcHB1aT1udWxsOyNlPXNldCh0aGlzLG4sImFsbCIpO2dldCBjdXJyZW50VGFiKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRUYWIoYyl7dGhpcy4jZT1jfWRlbW9Sb3V0ZXM9KHNldCh0aGlzLGwpLFt7aWQ6InJvdXRlLTEiLG5hbWU6IldlYiBGcm9udGVuZCIsZGVzY3JpcHRpb246Ik1haW4gd2Vic2l0ZSB3aXRoIFRMUyB0ZXJtaW5hdGlvbiBhbmQgYXV0b21hdGljIGNlcnRpZmljYXRlcyIsZW5hYmxlZDohMCxwcmlvcml0eToxMCx0YWdzOlsid2ViIiwiaHR0cHMiLCJwcm9kdWN0aW9uIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOlsic2VydmUuem9uZSIsInd3dy5zZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMTAiLHBvcnQ6M2UzfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7aWQ6InJvdXRlLTIiLG5hbWU6IkhUVFAgUmVkaXJlY3QiLGRlc2NyaXB0aW9uOiJSZWRpcmVjdHMgYWxsIEhUVFAgdHJhZmZpYyB0byBIVFRQUyIsZW5hYmxlZDohMCxwcmlvcml0eToxMDAsdGFnczpbIndlYiIsImh0dHAiLCJyZWRpcmVjdCJdLG1hdGNoOntwb3J0czo4MCxkb21haW5zOlsic2VydmUuem9uZSIsInd3dy5zZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn19LHtpZDoicm91dGUtMyIsbmFtZToiU01UUCBJbmJvdW5kIixkZXNjcmlwdGlvbjoiSW5ib3VuZCBlbWFpbCByZWxheSBmb3Igc2VydmUuem9uZSBkb21haW4iLGVuYWJsZWQ6ITAsdGFnczpbImVtYWlsIiwic210cCIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6MjUsZG9tYWluczoibWFpbC5zZXJ2ZS56b25lIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC4xLjUiLHBvcnQ6MjV9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtNCIsbmFtZToiQVBJIEdhdGV3YXkiLGRlc2NyaXB0aW9uOiJBUEkgZ2F0ZXdheSB3aXRoIHJhdGUgbGltaXRpbmcsIENPUlMgaGVhZGVycywgYW5kIGxvYWQgYmFsYW5jaW5nIixlbmFibGVkOiEwLHByaW9yaXR5OjIwLHRhZ3M6WyJ3ZWIiLCJhcGkiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImFwaS5zZXJ2ZS56b25lIixwYXRoOiIvdjIvKiIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OlsiMTAuMC4wLjIwIiwiMTAuMC4wLjIxIiwiMTAuMC4wLjIyIl0scG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sbG9hZEJhbGFuY2luZzp7YWxnb3JpdGhtOiJyb3VuZC1yb2JpbiJ9fSxzZWN1cml0eTp7cmF0ZUxpbWl0OntlbmFibGVkOiEwLG1heFJlcXVlc3RzOjIwMCx3aW5kb3c6NjB9LG1heENvbm5lY3Rpb25zOjVlM30saGVhZGVyczp7cmVzcG9uc2U6eyJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iOiIqIiwiWC1SZXF1ZXN0LUlkIjoie3tyZXF1ZXN0SWR9fSJ9fX0se2lkOiJyb3V0ZS01IixuYW1lOiJXZWJTb2NrZXQgUmVhbHRpbWUiLGRlc2NyaXB0aW9uOiJSZWFsLXRpbWUgV2ViU29ja2V0IGNvbm5lY3Rpb25zIGZvciBsaXZlIHVwZGF0ZXMiLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwid2Vic29ja2V0Il0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiJ3cy5zZXJ2ZS56b25lIixwYXRoOiIvd3MvKiIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMzAiLHBvcnQ6OTA5MH1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9LHdlYnNvY2tldDp7ZW5hYmxlZDohMH19fSx7aWQ6InJvdXRlLTYiLG5hbWU6IlRlbmFudCBXaWxkY2FyZCIsZGVzY3JpcHRpb246Ik11bHRpLXRlbmFudCB3aWxkY2FyZCByb3V0aW5nIGZvciBjdXN0b21lciBzdWJkb21haW5zIixlbmFibGVkOiEwLHByaW9yaXR5OjUwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsIm11bHRpLXRlbmFudCJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoiKi5jdXN0b21lcnMuc2VydmUuem9uZSIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuNDAiLHBvcnQ6ODA4MH1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fSxzZWN1cml0eTp7aXBBbGxvd0xpc3Q6WyIxMC4wLjAuMC84IiwiMTcyLjE2LjAuMC8xMiJdfX0se2lkOiJyb3V0ZS03IixuYW1lOiJNaWNyb3NlcnZpY2VzIExCIixkZXNjcmlwdGlvbjoiTG9hZC1iYWxhbmNlZCBtaWNyb3NlcnZpY2VzIGJhY2tlbmQgd2l0aCBJUC1oYXNoIGFmZmluaXR5IixlbmFibGVkOiEwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6WzQ0Myw4NDQzXSxkb21haW5zOiJzZXJ2aWNlcy5zZXJ2ZS56b25lIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjIuMSIsIjEwLjAuMi4yIiwiMTAuMC4yLjMiLCIxMC4wLjIuNCJdLHBvcnQ6M2UzfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUtYW5kLXJlZW5jcnlwdCIsY2VydGlmaWNhdGU6ImF1dG8ifSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06ImlwLWhhc2gifX19LHtpZDoicm91dGUtOCIsbmFtZToiRE5TIG92ZXIgSFRUUFMiLGRlc2NyaXB0aW9uOiJETlMtb3Zlci1IVFRQUyByZXNvbHZlciBlbmRwb2ludCIsZW5hYmxlZDohMCx0YWdzOlsiZG5zIiwiaHR0cHMiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImRucy5zZXJ2ZS56b25lIixwYXRoOiIvZG5zLXF1ZXJ5Iixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMy4xIixwb3J0OjgwNTN9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtOSIsbmFtZToiSGlnaC1QZXJmIFRDUCBQcm94eSIsZGVzY3JpcHRpb246Ik5GVGFibGVzLWFjY2VsZXJhdGVkIFRDUCBwcm94eSBmb3IgZ2FtZSBzZXJ2ZXJzIixlbmFibGVkOiEwLHRhZ3M6WyJ0Y3AiLCJuZnRhYmxlcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6W3tmcm9tOjI3ZTMsdG86MjcwNTB9XSxwcm90b2NvbDoidGNwIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC40LjEiLHBvcnQ6InByZXNlcnZlIn1dLGZvcndhcmRpbmdFbmdpbmU6Im5mdGFibGVzIn19LHtpZDoicm91dGUtMTAiLG5hbWU6IkxlZ2FjeSBBZG1pbiBQYW5lbCIsZGVzY3JpcHRpb246IkRlcHJlY2F0ZWQgYWRtaW4gcGFuZWwgXHUyMDE0IGRpc2FibGVkIGZvciBtYWludGVuYW5jZSIsZW5hYmxlZDohMSx0YWdzOlsid2ViIiwiaHR0cHMiLCJkZXByZWNhdGVkIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiJhZG1pbi1vbGQuc2VydmUuem9uZSIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn0sc2VjdXJpdHk6e2lwQmxvY2tMaXN0OlsiMC4wLjAuMC8wIl19fV0pO2dldCBmaWx0ZXJlZFJvdXRlcygpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iYWxsIj90aGlzLmRlbW9Sb3V0ZXM6dGhpcy5jdXJyZW50VGFiPT09Imh0dHBzIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGM9PmMudGFncz8uc29tZShwPT5bIndlYiIsImh0dHBzIiwiaHR0cCJdLmluY2x1ZGVzKHApKSk6dGhpcy5jdXJyZW50VGFiPT09ImVtYWlsIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGM9PmMudGFncz8uc29tZShwPT5bImVtYWlsIiwic210cCJdLmluY2x1ZGVzKHApKSk6dGhpcy5jdXJyZW50VGFiPT09ImRucyI/dGhpcy5kZW1vUm91dGVzLmZpbHRlcihjPT5jLnRhZ3M/LnNvbWUocD0+WyJkbnMiXS5pbmNsdWRlcyhwKSkpOnRoaXMuZGVtb1JvdXRlc31hc3luYyBvbkFjdGl2YXRlKGMpe3RoaXMuYXBwdWk9Yy5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJBbGwgUm91dGVzIixhY3Rpb246cygoKT0+e3RoaXMuY3VycmVudFRhYj0iYWxsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJIVFRQL1MiLGFjdGlvbjpzKCgpPT57dGhpcy5jdXJyZW50VGFiPSJodHRwcyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRW1haWwiLGFjdGlvbjpzKCgpPT57dGhpcy5jdXJyZW50VGFiPSJlbWFpbCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRE5TIixhY3Rpb246cygoKT0+e3RoaXMuY3VycmVudFRhYj0iZG5zIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXtpZighdGhpcy5hcHB1aSlyZXR1cm47bGV0IGM9dGhpcy5kZW1vUm91dGVzLmxlbmd0aCxwPXRoaXMuZGVtb1JvdXRlcy5maWx0ZXIobT0+bS5lbmFibGVkIT09ITEpLmxlbmd0aCx1PXRoaXMuZGVtb1JvdXRlcy5maWx0ZXIobT0+bS5hY3Rpb24udHlwZT09PSJmb3J3YXJkIikubGVuZ3RoO3RoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUm91dGVzIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOnMoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCByb3V0ZXMiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSb3V0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246cygoKT0+e2NvbnNvbGUubG9nKCJBZGQgcm91dGUiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0aXN0aWNzIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7Y30gVG90YWwgUm91dGVzYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7cH0gQWN0aXZlYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7dX0gRm9yd2FyZGB9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOmAke2MtdX0gU29ja2V0IEhhbmRsZXJgfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsWGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzei1yb3V0ZS1saXN0LXZpZXcKICAgICAgICAucm91dGVzPSR7dGhpcy5maWx0ZXJlZFJvdXRlc30KICAgICAgICBAcm91dGUtY2xpY2s9JHtjPT57Y29uc29sZS5sb2coIlJvdXRlIGNsaWNrZWQ6IixjLmRldGFpbC5uYW1lKX19CiAgICAgID48L3N6LXJvdXRlLWxpc3Qtdmlldz4KICAgIGB9c3RhdGlje3NldChyLHQpfX07cmV0dXJuIGQ9cn0pKCl9KTt2YXIgRFJhLEFSYSxQUmEsbnBhPWYoKCk9PntsZSgpO2ZuKCk7RFJhPWZ1bmN0aW9uKGEsZSx0LHIsaSxvKXtmdW5jdGlvbiBuKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9cyhuLCJhY2NlcHQiKTtmb3IodmFyIGw9ci5raW5kLGQ9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJmE/ci5zdGF0aWM/YTphLnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLHUsbT0hMSx2PXQubGVuZ3RoLTE7dj49MDt2LS0pe3ZhciB4PXt9O2Zvcih2YXIgYiBpbiByKXhbYl09Yj09PSJhY2Nlc3MiP3t9OnJbYl07Zm9yKHZhciBiIGluIHIuYWNjZXNzKXguYWNjZXNzW2JdPXIuYWNjZXNzW2JdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gobih5fHxudWxsKSl9O3ZhciBnPSgwLHRbdl0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHgpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHU9bihnLmdldCkpJiYocC5nZXQ9dSksKHU9bihnLnNldCkpJiYocC5zZXQ9dSksKHU9bihnLmluaXQpKSYmaS51bnNoaWZ0KHUpfWVsc2UodT1uKGcpKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdCh1KTpwW2RdPXUpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSxwKSxtPSEwfSxBUmE9ZnVuY3Rpb24oYSxlLHQpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9cj9lW2ldLmNhbGwoYSx0KTplW2ldLmNhbGwoYSk7cmV0dXJuIHI/dDp2b2lkIDB9LFBSYT0oKCk9PntsZXQgYT1baWUoInN6LWRlbW8tdmlldy1jb25maWciKV0sZSx0PVtdLHIsaT1wZTt2YXIgbz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3ModGhpcywiU3pEZW1vVmlld0NvbmZpZyIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO0RSYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpufSxudWxsLHQpLG89cj1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN6LWNvbmZpZy1vdmVydmlldwogICAgICAgIGluZm9UZXh0PSJUaGlzIHZpZXcgZGlzcGxheXMgdGhlIGN1cnJlbnQgcnVubmluZyBjb25maWd1cmF0aW9uLiBEY1JvdXRlciBpcyBjb25maWd1cmVkIHRocm91Z2ggY29kZSBvciByZW1vdGUgbWFuYWdlbWVudC4iCiAgICAgID4KICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJTeXN0ZW0iCiAgICAgICAgICBzdWJ0aXRsZT0iQmFzZSBwYXRocyBhbmQgaW5mcmFzdHJ1Y3R1cmUiCiAgICAgICAgICBpY29uPSJsdWNpZGU6c2VydmVyIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJCYXNlIERpcmVjdG9yeSIsdmFsdWU6Ii9ob21lL3VzZXIvLnNlcnZlLnpvbmUvZGNyb3V0ZXIifSx7a2V5OiJEYXRhIERpcmVjdG9yeSIsdmFsdWU6Ii9ob21lL3VzZXIvLnNlcnZlLnpvbmUvZGNyb3V0ZXIvZGF0YSJ9LHtrZXk6IlB1YmxpYyBJUCIsdmFsdWU6IjIwMy4wLjExMy41MCJ9LHtrZXk6IlByb3h5IElQcyIsdmFsdWU6WyIyMDMuMC4xMTMuMTAiLCIyMDMuMC4xMTMuMTEiXSx0eXBlOiJwaWxscyJ9LHtrZXk6IlVwdGltZSIsdmFsdWU6IjNkIDE0aCAyMm0ifSx7a2V5OiJTdG9yYWdlIEJhY2tlbmQiLHZhbHVlOiJmaWxlc3lzdGVtIix0eXBlOiJiYWRnZSJ9XX0KICAgICAgICA+PC9zei1jb25maWctc2VjdGlvbj4KCiAgICAgICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgICAgICB0aXRsZT0iU21hcnRQcm94eSIKICAgICAgICAgIHN1YnRpdGxlPSJIVFRQL0hUVFBTIGFuZCBUQ1AvU05JIHJldmVyc2UgcHJveHkiCiAgICAgICAgICBpY29uPSJsdWNpZGU6bmV0d29yayIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUm91dGUgQ291bnQiLHZhbHVlOjEyfSx7a2V5OiJBQ01FIEVuYWJsZWQiLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBY2NvdW50IEVtYWlsIix2YWx1ZToiYWRtaW5Ac2VydmUuem9uZSJ9LHtrZXk6IlVzZSBQcm9kdWN0aW9uIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiQXV0byBSZW5ldyIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9LHtrZXk6IlJlbmV3IFRocmVzaG9sZCIsdmFsdWU6IjMwIGRheXMifV19CiAgICAgICAgICAuYWN0aW9ucz0ke1t7bGFiZWw6IlZpZXcgUm91dGVzIixpY29uOiJsdWNpZGU6YXJyb3ctcmlnaHQiLGV2ZW50OiJuYXZpZ2F0ZSIsZGV0YWlsOnt2aWV3OiJyb3V0ZXMifX1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJFbWFpbCBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iU01UUCBlbWFpbCBoYW5kbGluZyB3aXRoIHNtYXJ0bXRhIgogICAgICAgICAgaWNvbj0ibHVjaWRlOm1haWwiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IlBvcnRzIix2YWx1ZTpbIjI1IiwiNDY1IiwiNTg3Il0sdHlwZToicGlsbHMifSx7a2V5OiJIb3N0bmFtZSIsdmFsdWU6Im1haWwuc2VydmUuem9uZSJ9LHtrZXk6IkRvbWFpbnMiLHZhbHVlOlsic2VydmUuem9uZSIsIm1haWwuc2VydmUuem9uZSJdLHR5cGU6InBpbGxzIn0se2tleToiRW1haWwgUm91dGVzIix2YWx1ZTo1fSx7a2V5OiJSZWNlaXZlZCBQYXRoIix2YWx1ZToiL2RhdGEvZW1haWxzIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJETlMgU2VydmVyIgogICAgICAgICAgc3VidGl0bGU9IkF1dGhvcml0YXRpdmUgRE5TIHdpdGggc21hcnRkbnMiCiAgICAgICAgICBpY29uPSJsdWNpZGU6Z2xvYmUiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IlBvcnQiLHZhbHVlOjUzfSx7a2V5OiJOUyBEb21haW5zIix2YWx1ZTpbIm5zMS5zZXJ2ZS56b25lIiwibnMyLnNlcnZlLnpvbmUiXSx0eXBlOiJwaWxscyJ9LHtrZXk6IlNjb3BlcyIsdmFsdWU6WyJzZXJ2ZS56b25lIiwiZXhhbXBsZS5jb20iXSx0eXBlOiJwaWxscyJ9LHtrZXk6IlJlY29yZCBDb3VudCIsdmFsdWU6MjR9LHtrZXk6IkROUyBDaGFsbGVuZ2UiLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlRMUyAvIENlcnRpZmljYXRlcyIKICAgICAgICAgIHN1YnRpdGxlPSJDZXJ0aWZpY2F0ZSBtYW5hZ2VtZW50IGFuZCBBQ01FIgogICAgICAgICAgaWNvbj0ibHVjaWRlOnNoaWVsZC1jaGVjayIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiQ29udGFjdCBFbWFpbCIsdmFsdWU6ImFkbWluQHNlcnZlLnpvbmUifSx7a2V5OiJEb21haW4iLHZhbHVlOiJzZXJ2ZS56b25lIn0se2tleToiU291cmNlIix2YWx1ZToiYWNtZSIsdHlwZToiYmFkZ2UifSx7a2V5OiJDZXJ0aWZpY2F0ZSBQYXRoIix2YWx1ZTpudWxsfSx7a2V5OiJLZXkgUGF0aCIsdmFsdWU6bnVsbH1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJDYWNoZSBEYXRhYmFzZSIKICAgICAgICAgIHN1YnRpdGxlPSJQZXJzaXN0ZW50IGNhY2hpbmcgd2l0aCBzbWFydGRhdGEiCiAgICAgICAgICBpY29uPSJsdWNpZGU6ZGF0YWJhc2UiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IlN0b3JhZ2UgUGF0aCIsdmFsdWU6Ii9ob21lL3VzZXIvLnNlcnZlLnpvbmUvZGNyb3V0ZXIvdHNtZGIifSx7a2V5OiJEQiBOYW1lIix2YWx1ZToiZGNyb3V0ZXIifSx7a2V5OiJEZWZhdWx0IFRUTCIsdmFsdWU6IjMwIGRheXMifSx7a2V5OiJDbGVhbnVwIEludGVydmFsIix2YWx1ZToiMSBob3VyIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJSQURJVVMgU2VydmVyIgogICAgICAgICAgc3VidGl0bGU9Ik5ldHdvcmsgYXV0aGVudGljYXRpb24gYW5kIFZMQU4gYXNzaWdubWVudCIKICAgICAgICAgIGljb249Imx1Y2lkZTp3aWZpIgogICAgICAgICAgc3RhdHVzPSJub3QtY29uZmlndXJlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiQXV0aCBQb3J0Iix2YWx1ZTpudWxsfSx7a2V5OiJBY2NvdW50aW5nIFBvcnQiLHZhbHVlOm51bGx9XX0KICAgICAgICA+PC9zei1jb25maWctc2VjdGlvbj4KCiAgICAgICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgICAgICB0aXRsZT0iUmVtb3RlIEluZ3Jlc3MiCiAgICAgICAgICBzdWJ0aXRsZT0iRWRnZSB0dW5uZWwgbm9kZXMiCiAgICAgICAgICBpY29uPSJsdWNpZGU6Y2xvdWQiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IlR1bm5lbCBQb3J0Iix2YWx1ZTo4NDQzfSx7a2V5OiJIdWIgRG9tYWluIix2YWx1ZToiaHViLnNlcnZlLnpvbmUifSx7a2V5OiJUTFMgQ29uZmlndXJlZCIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9XX0KICAgICAgICA+PC9zei1jb25maWctc2VjdGlvbj4KICAgICAgPC9zei1jb25maWctb3ZlcnZpZXc+CiAgICBgfXN0YXRpY3tBUmEocix0KX19O3JldHVybiBvPXJ9KSgpfSk7dmFyIGZuPWYoKCk9PntfSmUoKTtMSmUoKTtESmUoKTtBSmUoKTtQSmUoKTtJSmUoKTtSSmUoKTtGSmUoKTtISmUoKTtxSmUoKTtWSmUoKTt6dWEoKTtDdWEoKTtUdWEoKTtMdWEoKTskdWEoKTtBdWEoKTtFdWEoKTtJdWEoKTtOdWEoKTtSdWEoKTtPdWEoKTtGdWEoKTtCdWEoKTtIdWEoKTtxdWEoKTtWdWEoKTtqdWEoKTtXdWEoKTtHdWEoKTtZdWEoKTtLdWEoKTtadWEoKTtYdWEoKTtRdWEoKTtKdWEoKTt0cGEoKTthcGEoKTtycGEoKTtzcGEoKTtvcGEoKTtucGEoKX0pO3ZhciBVNW8sbHBhPWYoKCk9PntsZSgpO1U1bz1zKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgIGgxIHsKICAgICAgbWFyZ2luOiAwIDAgMzJweCAwOwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgY29sb3I6ICMxYTFhMWE7CiAgICB9CiAgICAuY29tcG9uZW50LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDE+U2VydmUuWm9uZSBDYXRhbG9nPC9oMT4KICAgICAgPGRpdiBjbGFzcz0iY29tcG9uZW50LWRlbW8iPgogICAgICAgIDxzei1oZWxsbz48L3N6LWhlbGxvPgogICAgICAgIDxzei1oZWxsbyB0ZXh0PSJXZWxjb21lIHRvIFNlcnZlLlpvbmUhIj48L3N6LWhlbGxvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJtYWlucGFnZSIpfSk7dmFyIFo1byxjcGE9ZigoKT0+e2xlKCk7Zm4oKTtaNW89cygoKT0+d2AKICA8c3R5bGU+CiAgICBodG1sLCBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgc3otZGVtby1hcHAtc2hlbGwgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgd2lkdGg6IDEwMHZ3OwogICAgfQogIDwvc3R5bGU+CiAgPHN6LWRlbW8tYXBwLXNoZWxsPjwvc3otZGVtby1hcHAtc2hlbGw+CmAsInN6RGVtb0FwcCIpfSk7dmFyIEVSYSxJUmEsTlJhLGRwYT1mKCgpPT57bGUoKTt6SmUoKTtmbigpO0VSYT1mdW5jdGlvbihhLGUsdCxyLGksbyl7ZnVuY3Rpb24gbih5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fXMobiwiYWNjZXB0Iik7Zm9yKHZhciBsPXIua2luZCxkPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZhP3Iuc3RhdGljP2E6YS5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSx1LG09ITEsdj10Lmxlbmd0aC0xO3Y+PTA7di0tKXt2YXIgeD17fTtmb3IodmFyIGIgaW4gcil4W2JdPWI9PT0iYWNjZXNzIj97fTpyW2JdO2Zvcih2YXIgYiBpbiByLmFjY2Vzcyl4LmFjY2Vzc1tiXT1yLmFjY2Vzc1tiXTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKG0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKG4oeXx8bnVsbCkpfTt2YXIgZz0oMCx0W3ZdKShsPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx4KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyh1PW4oZy5nZXQpKSYmKHAuZ2V0PXUpLCh1PW4oZy5zZXQpKSYmKHAuc2V0PXUpLCh1PW4oZy5pbml0KSkmJmkudW5zaGlmdCh1KX1lbHNlKHU9bihnKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQodSk6cFtkXT11KX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUscCksbT0hMH0sSVJhPWZ1bmN0aW9uKGEsZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKyl0PXI/ZVtpXS5jYWxsKGEsdCk6ZVtpXS5jYWxsKGEpO3JldHVybiByP3Q6dm9pZCAwfSxOUmE9KCgpPT57bGV0IGE9W2llKCJzei1kZW1vLWFwcC1zaGVsbCIpXSxlLHQ9W10scixpPXBlO3ZhciBvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cyh0aGlzLCJTekRlbW9BcHBTaGVsbCIpfXN0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO0VSYShudWxsLGU9e3ZhbHVlOnJ9LGEse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpufSxudWxsLHQpLG89cj1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1hcHB1aT48L2RlZXMtYXBwdWk+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBuPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aSIpO24mJihuLmNvbmZpZ3VyZSh7YnJhbmRpbmc6e2xvZ29JY29uOiJsdWNpZGU6Qm94Iixsb2dvVGV4dDoic2VydmUuem9uZSJ9LGFwcEJhcjp7c2hvd1NlYXJjaDohMCxicmVhZGNydW1iczoic2VydmUuem9uZSIsbWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOnMoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgU2VydmljZSIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246cyhhc3luYygpPT57Y29uc29sZS5sb2coIk5ldyBTZXJ2aWNlIil9LCJhY3Rpb24iKX0se25hbWU6IkltcG9ydCBDb25maWd1cmF0aW9uIixhY3Rpb246cyhhc3luYygpPT57Y29uc29sZS5sb2coIkltcG9ydCIpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQgQ29uZmlndXJhdGlvbiIsYWN0aW9uOnMoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJFeHBvcnQiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlByZWZlcmVuY2VzIixzaG9ydGN1dDoiQ21kKywiLGFjdGlvbjpzKGFzeW5jKCk9PntuLm5hdmlnYXRlVG9WaWV3KCJzZXR0aW5ncyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRGFzaGJvYXJkIixzaG9ydGN1dDoiQ21kKzEiLGFjdGlvbjpzKGFzeW5jKCk9PntuLm5hdmlnYXRlVG9WaWV3KCJkYXNoYm9hcmQiKX0sImFjdGlvbiIpfSx7bmFtZToiU2VydmljZXMiLHNob3J0Y3V0OiJDbWQrMiIsYWN0aW9uOnMoYXN5bmMoKT0+e24ubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LCJhY3Rpb24iKX0se25hbWU6Ik5ldHdvcmsiLHNob3J0Y3V0OiJDbWQrMyIsYWN0aW9uOnMoYXN5bmMoKT0+e24ubmF2aWdhdGVUb1ZpZXcoIm5ldHdvcmsiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246cyhhc3luYygpPT57bi50b2dnbGVBY3Rpdml0eUxvZygpfSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246cyhhc3luYygpPT57bi5zZXRNYWluTWVudUNvbGxhcHNlZCghbi5tYWlubWVudUNvbGxhcHNlZCl9LCJhY3Rpb24iKX1dfSx7bmFtZToiU2VydmljZXMiLGFjdGlvbjpzKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRGVwbG95IE5ldyBTZXJ2aWNlIixhY3Rpb246cyhhc3luYygpPT57Y29uc29sZS5sb2coIkRlcGxveSIpfSwiYWN0aW9uIil9LHtuYW1lOiJTdGFydCBBbGwiLGFjdGlvbjpzKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiU3RhcnQgYWxsIil9LCJhY3Rpb24iKX0se25hbWU6IlN0b3AgQWxsIixhY3Rpb246cyhhc3luYygpPT57Y29uc29sZS5sb2coIlN0b3AgYWxsIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJHYXJiYWdlIENvbGxlY3QiLGFjdGlvbjpzKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiR0MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246cyhhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGFjdGlvbjpzKGFzeW5jKCk9Pnt3aW5kb3cub3BlbigiaHR0cHM6Ly9kb2NzLnNlcnZlLnpvbmUiLCJfYmxhbmsiKX0sImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOnMoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJSZWxlYXNlIG5vdGVzIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCBzZXJ2ZS56b25lIixhY3Rpb246cyhhc3luYygpPT57Y29uc29sZS5sb2coIkFib3V0Iil9LCJhY3Rpb24iKX1dfV19LHZpZXdzOlt7aWQ6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOkxheW91dERhc2hib2FyZCIsY29udGVudDoic3otZGVtby12aWV3LWRhc2hib2FyZCJ9LHtpZDoic2VydmljZXMiLG5hbWU6IlNlcnZpY2VzIixpY29uTmFtZToibHVjaWRlOlNlcnZlciIsY29udGVudDoic3otZGVtby12aWV3LXNlcnZpY2VzIn0se2lkOiJuZXR3b3JrIixuYW1lOiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOk5ldHdvcmsiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1uZXR3b3JrIn0se2lkOiJyZWdpc3RyaWVzIixuYW1lOiJSZWdpc3RyaWVzIixpY29uTmFtZToibHVjaWRlOkFyY2hpdmUiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1yZWdpc3RyaWVzIn0se2lkOiJ0b2tlbnMiLG5hbWU6IlRva2VucyIsaWNvbk5hbWU6Imx1Y2lkZTpLZXkiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy10b2tlbnMifSx7aWQ6Im10YSIsbmFtZToiRW1haWwgLyBNVEEiLGljb25OYW1lOiJsdWNpZGU6TWFpbCIsY29udGVudDoic3otZGVtby12aWV3LW10YSJ9LHtpZDoicm91dGVzIixuYW1lOiJSb3V0ZXMiLGljb25OYW1lOiJsdWNpZGU6Um91dGUiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1yb3V0ZXMifSx7aWQ6InNldHRpbmdzIixuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpTZXR0aW5ncyIsY29udGVudDoic3otZGVtby12aWV3LXNldHRpbmdzIn1dLG1haW5NZW51OntzZWN0aW9uczpbe25hbWU6Ik92ZXJ2aWV3Iix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiSW5mcmFzdHJ1Y3R1cmUiLHZpZXdzOlsic2VydmljZXMiLCJuZXR3b3JrIiwicmVnaXN0cmllcyIsIm10YSIsInJvdXRlcyJdfSx7bmFtZToiQWRtaW5pc3RyYXRpb24iLHZpZXdzOlsidG9rZW5zIiwic2V0dGluZ3MiXX1dfSxkZWZhdWx0VmlldzoiZGFzaGJvYXJkIixvblZpZXdDaGFuZ2U6cygobCxkKT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgdG86IixsLGQpfSwib25WaWV3Q2hhbmdlIil9KSxuLnNldFVzZXIoe25hbWU6IkFkbWluIFVzZXIiLGVtYWlsOiJhZG1pbkBzZXJ2ZS56b25lIixzdGF0dXM6Im9ubGluZSJ9KSxuLnNldFByb2ZpbGVNZW51SXRlbXMoW3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOlVzZXIiLGFjdGlvbjpzKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiUHJvZmlsZSIpfSwiYWN0aW9uIil9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpTbGlkZXJzSG9yaXpvbnRhbCIsYWN0aW9uOnMoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJQcmVmZXJlbmNlcyIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsdWNpZGU6TG9nT3V0IixhY3Rpb246cyhhc3luYygpPT57Y29uc29sZS5sb2coIlNpZ24gT3V0Iil9LCJhY3Rpb24iKX1dKSl9c3RhdGlje0lSYShyLHQpfX07cmV0dXJuIG89cn0pKCl9KTt2YXIgdXBhPWYoKCk9PntscGEoKTtjcGEoKTtkcGEoKX0pO3ZhciBwcGE9ZigoKT0+e2ZuKCk7dXBhKCl9KTt2YXIgZnBhPU1vKHlzPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh5cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkseXMuZ2V0Rmlyc3RUcnVlT3JGYWxzZT15cy50aW1lb3V0QW5kQ29udGludWU9eXMudGltZW91dFdyYXA9eXMubWFwPXlzLnJlamVjdGVkUHJvbWlzZT15cy5yZXNvbHZlZFByb21pc2U9eXMuZGVmZXI9eXMuRGVmZXJyZWQ9dm9pZCAwO3ZhciB2aWU9Y2xhc3N7c3RhdGlje3ModGhpcywiRGVmZXJyZWQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSx0KT0+e3RoaXMucmVzb2x2ZT1yPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKHIpfSx0aGlzLnJlamVjdD1yPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLHQocil9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcHBlZEF0P3RoaXMuc3RvcHBlZEF0LXRoaXMuc3RhcnRlZEF0OkRhdGUubm93KCktdGhpcy5zdGFydGVkQXR9fTt5cy5EZWZlcnJlZD12aWUseXMuZGVmZXI9KCk9Pm5ldyB2aWUseXMucmVzb2x2ZWRQcm9taXNlPWE9PlByb21pc2UucmVzb2x2ZShhKSx5cy5yZWplY3RlZFByb21pc2U9YT0+UHJvbWlzZS5yZWplY3QoYSkseXMubWFwPWFzeW5jKGEsZSk9PntsZXQgdD1bXSxyPVtdO2ZvcihsZXQgaSBvZiBhKXtsZXQgbz1lKGkpO3QucHVzaChvKSxvLnRoZW4obj0+e3IucHVzaChuKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0KSxyfSx5cy50aW1lb3V0V3JhcD1hc3luYyhhLGUsdD0hMCk9Pm5ldyBQcm9taXNlKChyLGkpPT57c2V0VGltZW91dCgoKT0+e3Q/aShuZXcgRXJyb3IoInRpbWVvdXQiKSk6cihudWxsKX0sZSksYS50aGVuKHIsaSl9KSx5cy50aW1lb3V0QW5kQ29udGludWU9YXN5bmMoYSxlPTZlNCk9PnlzLnRpbWVvdXRXcmFwKGEsZSwhMSkseXMuZ2V0Rmlyc3RUcnVlT3JGYWxzZT1hc3luYyBhPT57bGV0IGU9eXMuZGVmZXIoKTtmb3IobGV0IHQgb2YgYSl0LnRoZW4ocj0+e3I9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbChhKS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX19KTt2YXIgaWV0LGhwYT1mKCgpPT57aWV0PWtvKGZwYSgpLDEpfSk7dmFyIG1wYT1mKCgpPT57fSk7dmFyIG9ldCxncGE9ZigoKT0+e2hwYSgpO21wYSgpO29ldD1jbGFzc3tzdGF0aWN7cyh0aGlzLCJTbWFydGVudiIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2FkZWRTY3JpcHRzPVtdfWFzeW5jIGdldEVudkF3YXJlTW9kdWxlKGUpe2lmKHRoaXMuaXNOb2RlKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKGUubm9kZU1vZHVsZU5hbWUpO2lmKHRoaXMuaXNCcm93c2VyKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUoZS53ZWJVcmxBcmcsZS5nZXRGdW5jdGlvbik7Y29uc29sZS5lcnJvcigicGxhdGZvcm0gZm9yIGxvYWRpbmcgbm90IHN1cHBvcnRlZCBieSBzbWFydGVudiIpfWFzeW5jIGdldFNhZmVOb2RlTW9kdWxlKGUpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX1gKTtyZXR1cm59cmV0dXJuIG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUsdCl7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gdCgpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCByPWlldC5kZWZlcigpO2lmKGdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cylnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMoZSksci5yZXNvbHZlKCk7ZWxzZXtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpLm9ubG9hZD0oKT0+e3IucmVzb2x2ZSgpfSxpLnNyYz1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoaSl9cmV0dXJuIGF3YWl0IHIucHJvbWlzZSx0KCl9Z2V0IHJ1bnRpbWVFbnYoKXtyZXR1cm4gdHlwZW9mIHByb2Nlc3M8InUiPyJub2RlIjoiYnJvd3NlciJ9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiF0aGlzLmlzTm9kZX1nZXQgdXNlckFnZW50KCl7cmV0dXJuIHRoaXMuaXNCcm93c2VyP25hdmlnYXRvci51c2VyQWdlbnQ6InVuZGVmaW5lZCJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IG5vZGVWZXJzaW9uKCl7cmV0dXJuIHByb2Nlc3MudmVyc2lvbn1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTooY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlJPV1NFUiIpLGNvbnNvbGUubG9nKCJicm93c2VyIGlzICIrdGhpcy51c2VyQWdlbnQpKX19fSk7dmFyIExHPXt9O2x0KExHLHtTbWFydGVudjooKT0+b2V0fSk7dmFyIGJwYT1mKCgpPT57Z3BhKCl9KTt2YXIgdnBhPWYoKCk9PnticGEoKX0pO3ZhciBuZXQ9e307bHQobmV0LHtzaGEyNTZGcm9tU3RyaW5nOigpPT5CUmF9KTt2YXIgRlJhLEJSYSx4cGE9ZigoKT0+e3ZwYSgpO0ZSYT1zKGE9PntsZXQgZT1bXSx0PW5ldyBEYXRhVmlldyhhKTtmb3IobGV0IHI9MDtyPHQuYnl0ZUxlbmd0aDtyKz00KXtsZXQgbz10LmdldFVpbnQzMihyKS50b1N0cmluZygxNiksbj0iMDAwMDAwMDAiLGw9KG4rbykuc2xpY2UoLW4ubGVuZ3RoKTtlLnB1c2gobCl9cmV0dXJuIGUuam9pbigiIil9LCJoZXgiKSxCUmE9cyhhc3luYyBhPT57bGV0IGU9bmV3IExHLlNtYXJ0ZW52O2lmKGUuaXNCcm93c2VyKXtsZXQgdD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoYSkscj1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsdCk7cmV0dXJuIEZSYShyKX1lbHNlIGlmKGUuaXNOb2RlKXJldHVybiBhd2FpdChhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJAcHVzaHJvY2tzL3NtYXJ0aGFzaCIpKS5zaGEyNTZGcm9tU3RyaW5nKGEpfSwic2hhMjU2RnJvbVN0cmluZyIpfSk7dmFyIHlwYT1mKCgpPT57YmkoKX0pO3ZhciB3cGE9ZigoKT0+e30pO3ZhciBjZXQsTXBhPWYoKCk9Pnt5cGEoKTt3cGEoKTtjZXQ9Y2xhc3N7c3RhdGlje3ModGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLHQpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCByPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKTtyZXR1cm4gdCYmYXdhaXQgdChyKSxyfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUoZSx0KXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKGUpKXJldHVybiB0KCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2goZSk7bGV0IHI9Y3QuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKGUpLHIucmVzb2x2ZSgpO2Vsc2V7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aS5vbmxvYWQ9KCk9PntyLnJlc29sdmUoKX0saS5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGkpfXJldHVybiBhd2FpdCByLnByb21pc2UsdCgpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBkZXQ9e307bHQoZGV0LHtTbWFydGVudjooKT0+Y2V0fSk7dmFyIGtwYT1mKCgpPT57TXBhKCl9KTt2YXIgdWZhPU1vKChBRyxkNyk9Pnt2YXIgcVJhPTIwMCxTcGE9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLHpwYT05MDA3MTk5MjU0NzQwOTkxLHVldD0iW29iamVjdCBBcmd1bWVudHNdIixWUmE9IltvYmplY3QgQXJyYXldIixDcGE9IltvYmplY3QgQm9vbGVhbl0iLF9wYT0iW29iamVjdCBEYXRlXSIsalJhPSJbb2JqZWN0IEVycm9yXSIscGV0PSJbb2JqZWN0IEZ1bmN0aW9uXSIsVHBhPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIseGllPSJbb2JqZWN0IE1hcF0iLExwYT0iW29iamVjdCBOdW1iZXJdIixmZXQ9IltvYmplY3QgT2JqZWN0XSIsJHBhPSJbb2JqZWN0IFByb21pc2VdIixEcGE9IltvYmplY3QgUmVnRXhwXSIseWllPSJbb2JqZWN0IFNldF0iLEFwYT0iW29iamVjdCBTdHJpbmddIixQcGE9IltvYmplY3QgU3ltYm9sXSIsaGV0PSJbb2JqZWN0IFdlYWtNYXBdIixFcGE9IltvYmplY3QgQXJyYXlCdWZmZXJdIix3aWU9IltvYmplY3QgRGF0YVZpZXddIixJcGE9IltvYmplY3QgRmxvYXQzMkFycmF5XSIsTnBhPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLFJwYT0iW29iamVjdCBJbnQ4QXJyYXldIixPcGE9IltvYmplY3QgSW50MTZBcnJheV0iLEZwYT0iW29iamVjdCBJbnQzMkFycmF5XSIsQnBhPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixIcGE9IltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIixxcGE9IltvYmplY3QgVWludDE2QXJyYXldIixWcGE9IltvYmplY3QgVWludDMyQXJyYXldIixVUmE9L1tcXF4kLiorPygpW1xde318XS9nLFdSYT0vXHcqJC8sR1JhPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLFlSYT0vXig/OjB8WzEtOV1cZCopJC8sbnI9e307bnJbdWV0XT1ucltWUmFdPW5yW0VwYV09bnJbd2llXT1ucltDcGFdPW5yW19wYV09bnJbSXBhXT1ucltOcGFdPW5yW1JwYV09bnJbT3BhXT1ucltGcGFdPW5yW3hpZV09bnJbTHBhXT1ucltmZXRdPW5yW0RwYV09bnJbeWllXT1ucltBcGFdPW5yW1BwYV09bnJbQnBhXT1ucltIcGFdPW5yW3FwYV09bnJbVnBhXT0hMCxucltqUmFdPW5yW3BldF09bnJbaGV0XT0hMTt2YXIgS1JhPXR5cGVvZiBnbG9iYWw9PSJvYmplY3QiJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxaUmE9dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixIYz1LUmF8fFpSYXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxqcGE9dHlwZW9mIEFHPT0ib2JqZWN0IiYmQUcmJiFBRy5ub2RlVHlwZSYmQUcsVXBhPWpwYSYmdHlwZW9mIGQ3PT0ib2JqZWN0IiYmZDcmJiFkNy5ub2RlVHlwZSYmZDcsWFJhPVVwYSYmVXBhLmV4cG9ydHM9PT1qcGE7ZnVuY3Rpb24gUVJhKGEsZSl7cmV0dXJuIGEuc2V0KGVbMF0sZVsxXSksYX1zKFFSYSwiYWRkTWFwRW50cnkiKTtmdW5jdGlvbiBKUmEoYSxlKXtyZXR1cm4gYS5hZGQoZSksYX1zKEpSYSwiYWRkU2V0RW50cnkiKTtmdW5jdGlvbiBlT2EoYSxlKXtmb3IodmFyIHQ9LTEscj1hP2EubGVuZ3RoOjA7Kyt0PHImJmUoYVt0XSx0LGEpIT09ITE7KTtyZXR1cm4gYX1zKGVPYSwiYXJyYXlFYWNoIik7ZnVuY3Rpb24gdE9hKGEsZSl7Zm9yKHZhciB0PS0xLHI9ZS5sZW5ndGgsaT1hLmxlbmd0aDsrK3Q8cjspYVtpK3RdPWVbdF07cmV0dXJuIGF9cyh0T2EsImFycmF5UHVzaCIpO2Z1bmN0aW9uIFdwYShhLGUsdCxyKXt2YXIgaT0tMSxvPWE/YS5sZW5ndGg6MDtmb3IociYmbyYmKHQ9YVsrK2ldKTsrK2k8bzspdD1lKHQsYVtpXSxpLGEpO3JldHVybiB0fXMoV3BhLCJhcnJheVJlZHVjZSIpO2Z1bmN0aW9uIGFPYShhLGUpe2Zvcih2YXIgdD0tMSxyPUFycmF5KGEpOysrdDxhOylyW3RdPWUodCk7cmV0dXJuIHJ9cyhhT2EsImJhc2VUaW1lcyIpO2Z1bmN0aW9uIHJPYShhLGUpe3JldHVybiBhPy5bZV19cyhyT2EsImdldFZhbHVlIik7ZnVuY3Rpb24gR3BhKGEpe3ZhciBlPSExO2lmKGEhPW51bGwmJnR5cGVvZiBhLnRvU3RyaW5nIT0iZnVuY3Rpb24iKXRyeXtlPSEhKGErIiIpfWNhdGNoe31yZXR1cm4gZX1zKEdwYSwiaXNIb3N0T2JqZWN0Iik7ZnVuY3Rpb24gWXBhKGEpe3ZhciBlPS0xLHQ9QXJyYXkoYS5zaXplKTtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKHIsaSl7dFsrK2VdPVtpLHJdfSksdH1zKFlwYSwibWFwVG9BcnJheSIpO2Z1bmN0aW9uIG1ldChhLGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYShlKHQpKX19cyhtZXQsIm92ZXJBcmciKTtmdW5jdGlvbiBLcGEoYSl7dmFyIGU9LTEsdD1BcnJheShhLnNpemUpO3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24ocil7dFsrK2VdPXJ9KSx0fXMoS3BhLCJzZXRUb0FycmF5Iik7dmFyIHNPYT1BcnJheS5wcm90b3R5cGUsaU9hPUZ1bmN0aW9uLnByb3RvdHlwZSxNaWU9T2JqZWN0LnByb3RvdHlwZSxnZXQ9SGNbIl9fY29yZS1qc19zaGFyZWRfXyJdLFpwYT0oZnVuY3Rpb24oKXt2YXIgYT0vW14uXSskLy5leGVjKGdldCYmZ2V0LmtleXMmJmdldC5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGE/IlN5bWJvbChzcmMpXzEuIithOiIifSkoKSxYcGE9aU9hLnRvU3RyaW5nLGo0PU1pZS5oYXNPd25Qcm9wZXJ0eSxraWU9TWllLnRvU3RyaW5nLG9PYT1SZWdFeHAoIl4iK1hwYS5jYWxsKGo0KS5yZXBsYWNlKFVSYSwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxRcGE9WFJhP0hjLkJ1ZmZlcjp2b2lkIDAsSnBhPUhjLlN5bWJvbCxlZmE9SGMuVWludDhBcnJheSxuT2E9bWV0KE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpLGxPYT1PYmplY3QuY3JlYXRlLGNPYT1NaWUucHJvcGVydHlJc0VudW1lcmFibGUsZE9hPXNPYS5zcGxpY2UsdGZhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsdU9hPVFwYT9RcGEuaXNCdWZmZXI6dm9pZCAwLHBPYT1tZXQoT2JqZWN0LmtleXMsT2JqZWN0KSxiZXQ9YzcoSGMsIkRhdGFWaWV3IiksJEc9YzcoSGMsIk1hcCIpLHZldD1jNyhIYywiUHJvbWlzZSIpLHhldD1jNyhIYywiU2V0IikseWV0PWM3KEhjLCJXZWFrTWFwIiksREc9YzcoT2JqZWN0LCJjcmVhdGUiKSxmT2E9QTUoYmV0KSxoT2E9QTUoJEcpLG1PYT1BNSh2ZXQpLGdPYT1BNSh4ZXQpLGJPYT1BNSh5ZXQpLGFmYT1KcGE/SnBhLnByb3RvdHlwZTp2b2lkIDAscmZhPWFmYT9hZmEudmFsdWVPZjp2b2lkIDA7ZnVuY3Rpb24gJDUoYSl7dmFyIGU9LTEsdD1hP2EubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8dDspe3ZhciByPWFbZV07dGhpcy5zZXQoclswXSxyWzFdKX19cygkNSwiSGFzaCIpO2Z1bmN0aW9uIHZPYSgpe3RoaXMuX19kYXRhX189REc/REcobnVsbCk6e319cyh2T2EsImhhc2hDbGVhciIpO2Z1bmN0aW9uIHhPYShhKXtyZXR1cm4gdGhpcy5oYXMoYSkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW2FdfXMoeE9hLCJoYXNoRGVsZXRlIik7ZnVuY3Rpb24geU9hKGEpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoREcpe3ZhciB0PWVbYV07cmV0dXJuIHQ9PT1TcGE/dm9pZCAwOnR9cmV0dXJuIGo0LmNhbGwoZSxhKT9lW2FdOnZvaWQgMH1zKHlPYSwiaGFzaEdldCIpO2Z1bmN0aW9uIHdPYShhKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiBERz9lW2FdIT09dm9pZCAwOmo0LmNhbGwoZSxhKX1zKHdPYSwiaGFzaEhhcyIpO2Z1bmN0aW9uIE1PYShhLGUpe3ZhciB0PXRoaXMuX19kYXRhX187cmV0dXJuIHRbYV09REcmJmU9PT12b2lkIDA/U3BhOmUsdGhpc31zKE1PYSwiaGFzaFNldCIpLCQ1LnByb3RvdHlwZS5jbGVhcj12T2EsJDUucHJvdG90eXBlLmRlbGV0ZT14T2EsJDUucHJvdG90eXBlLmdldD15T2EsJDUucHJvdG90eXBlLmhhcz13T2EsJDUucHJvdG90eXBlLnNldD1NT2E7ZnVuY3Rpb24gcWMoYSl7dmFyIGU9LTEsdD1hP2EubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8dDspe3ZhciByPWFbZV07dGhpcy5zZXQoclswXSxyWzFdKX19cyhxYywiTGlzdENhY2hlIik7ZnVuY3Rpb24ga09hKCl7dGhpcy5fX2RhdGFfXz1bXX1zKGtPYSwibGlzdENhY2hlQ2xlYXIiKTtmdW5jdGlvbiBTT2EoYSl7dmFyIGU9dGhpcy5fX2RhdGFfXyx0PVNpZShlLGEpO2lmKHQ8MClyZXR1cm4hMTt2YXIgcj1lLmxlbmd0aC0xO3JldHVybiB0PT1yP2UucG9wKCk6ZE9hLmNhbGwoZSx0LDEpLCEwfXMoU09hLCJsaXN0Q2FjaGVEZWxldGUiKTtmdW5jdGlvbiB6T2EoYSl7dmFyIGU9dGhpcy5fX2RhdGFfXyx0PVNpZShlLGEpO3JldHVybiB0PDA/dm9pZCAwOmVbdF1bMV19cyh6T2EsImxpc3RDYWNoZUdldCIpO2Z1bmN0aW9uIENPYShhKXtyZXR1cm4gU2llKHRoaXMuX19kYXRhX18sYSk+LTF9cyhDT2EsImxpc3RDYWNoZUhhcyIpO2Z1bmN0aW9uIF9PYShhLGUpe3ZhciB0PXRoaXMuX19kYXRhX18scj1TaWUodCxhKTtyZXR1cm4gcjwwP3QucHVzaChbYSxlXSk6dFtyXVsxXT1lLHRoaXN9cyhfT2EsImxpc3RDYWNoZVNldCIpLHFjLnByb3RvdHlwZS5jbGVhcj1rT2EscWMucHJvdG90eXBlLmRlbGV0ZT1TT2EscWMucHJvdG90eXBlLmdldD16T2EscWMucHJvdG90eXBlLmhhcz1DT2EscWMucHJvdG90eXBlLnNldD1fT2E7ZnVuY3Rpb24gbjcoYSl7dmFyIGU9LTEsdD1hP2EubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8dDspe3ZhciByPWFbZV07dGhpcy5zZXQoclswXSxyWzFdKX19cyhuNywiTWFwQ2FjaGUiKTtmdW5jdGlvbiBUT2EoKXt0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyAkNSxtYXA6bmV3KCRHfHxxYyksc3RyaW5nOm5ldyAkNX19cyhUT2EsIm1hcENhY2hlQ2xlYXIiKTtmdW5jdGlvbiBMT2EoYSl7cmV0dXJuIHppZSh0aGlzLGEpLmRlbGV0ZShhKX1zKExPYSwibWFwQ2FjaGVEZWxldGUiKTtmdW5jdGlvbiAkT2EoYSl7cmV0dXJuIHppZSh0aGlzLGEpLmdldChhKX1zKCRPYSwibWFwQ2FjaGVHZXQiKTtmdW5jdGlvbiBET2EoYSl7cmV0dXJuIHppZSh0aGlzLGEpLmhhcyhhKX1zKERPYSwibWFwQ2FjaGVIYXMiKTtmdW5jdGlvbiBBT2EoYSxlKXtyZXR1cm4gemllKHRoaXMsYSkuc2V0KGEsZSksdGhpc31zKEFPYSwibWFwQ2FjaGVTZXQiKSxuNy5wcm90b3R5cGUuY2xlYXI9VE9hLG43LnByb3RvdHlwZS5kZWxldGU9TE9hLG43LnByb3RvdHlwZS5nZXQ9JE9hLG43LnByb3RvdHlwZS5oYXM9RE9hLG43LnByb3RvdHlwZS5zZXQ9QU9hO2Z1bmN0aW9uIGw3KGEpe3RoaXMuX19kYXRhX189bmV3IHFjKGEpfXMobDcsIlN0YWNrIik7ZnVuY3Rpb24gUE9hKCl7dGhpcy5fX2RhdGFfXz1uZXcgcWN9cyhQT2EsInN0YWNrQ2xlYXIiKTtmdW5jdGlvbiBFT2EoYSl7cmV0dXJuIHRoaXMuX19kYXRhX18uZGVsZXRlKGEpfXMoRU9hLCJzdGFja0RlbGV0ZSIpO2Z1bmN0aW9uIElPYShhKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQoYSl9cyhJT2EsInN0YWNrR2V0Iik7ZnVuY3Rpb24gTk9hKGEpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhhKX1zKE5PYSwic3RhY2tIYXMiKTtmdW5jdGlvbiBST2EoYSxlKXt2YXIgdD10aGlzLl9fZGF0YV9fO2lmKHQgaW5zdGFuY2VvZiBxYyl7dmFyIHI9dC5fX2RhdGFfXztpZighJEd8fHIubGVuZ3RoPHFSYS0xKXJldHVybiByLnB1c2goW2EsZV0pLHRoaXM7dD10aGlzLl9fZGF0YV9fPW5ldyBuNyhyKX1yZXR1cm4gdC5zZXQoYSxlKSx0aGlzfXMoUk9hLCJzdGFja1NldCIpLGw3LnByb3RvdHlwZS5jbGVhcj1QT2EsbDcucHJvdG90eXBlLmRlbGV0ZT1FT2EsbDcucHJvdG90eXBlLmdldD1JT2EsbDcucHJvdG90eXBlLmhhcz1OT2EsbDcucHJvdG90eXBlLnNldD1ST2E7ZnVuY3Rpb24gT09hKGEsZSl7dmFyIHQ9a2V0KGEpfHxsRmEoYSk/YU9hKGEubGVuZ3RoLFN0cmluZyk6W10scj10Lmxlbmd0aCxpPSEhcjtmb3IodmFyIG8gaW4gYSkoZXx8ajQuY2FsbChhLG8pKSYmIShpJiYobz09Imxlbmd0aCJ8fHNGYShvLHIpKSkmJnQucHVzaChvKTtyZXR1cm4gdH1zKE9PYSwiYXJyYXlMaWtlS2V5cyIpO2Z1bmN0aW9uIHNmYShhLGUsdCl7dmFyIHI9YVtlXTsoIShqNC5jYWxsKGEsZSkmJmxmYShyLHQpKXx8dD09PXZvaWQgMCYmIShlIGluIGEpKSYmKGFbZV09dCl9cyhzZmEsImFzc2lnblZhbHVlIik7ZnVuY3Rpb24gU2llKGEsZSl7Zm9yKHZhciB0PWEubGVuZ3RoO3QtLTspaWYobGZhKGFbdF1bMF0sZSkpcmV0dXJuIHQ7cmV0dXJuLTF9cyhTaWUsImFzc29jSW5kZXhPZiIpO2Z1bmN0aW9uIEZPYShhLGUpe3JldHVybiBhJiZpZmEoZSx6ZXQoZSksYSl9cyhGT2EsImJhc2VBc3NpZ24iKTtmdW5jdGlvbiB3ZXQoYSxlLHQscixpLG8sbil7dmFyIGw7aWYociYmKGw9bz9yKGEsaSxvLG4pOnIoYSkpLGwhPT12b2lkIDApcmV0dXJuIGw7aWYoIUNpZShhKSlyZXR1cm4gYTt2YXIgZD1rZXQoYSk7aWYoZCl7aWYobD10RmEoYSksIWUpcmV0dXJuIFFPYShhLGwpfWVsc2V7dmFyIGM9RDUoYSkscD1jPT1wZXR8fGM9PVRwYTtpZihkRmEoYSkpcmV0dXJuIFVPYShhLGUpO2lmKGM9PWZldHx8Yz09dWV0fHxwJiYhbyl7aWYoR3BhKGEpKXJldHVybiBvP2E6e307aWYobD1hRmEocD97fTphKSwhZSlyZXR1cm4gSk9hKGEsRk9hKGwsYSkpfWVsc2V7aWYoIW5yW2NdKXJldHVybiBvP2E6e307bD1yRmEoYSxjLHdldCxlKX19bnx8KG49bmV3IGw3KTt2YXIgdT1uLmdldChhKTtpZih1KXJldHVybiB1O2lmKG4uc2V0KGEsbCksIWQpdmFyIG09dD9lRmEoYSk6emV0KGEpO3JldHVybiBlT2EobXx8YSxmdW5jdGlvbih2LHgpe20mJih4PXYsdj1hW3hdKSxzZmEobCx4LHdldCh2LGUsdCxyLHgsYSxuKSl9KSxsfXMod2V0LCJiYXNlQ2xvbmUiKTtmdW5jdGlvbiBCT2EoYSl7cmV0dXJuIENpZShhKT9sT2EoYSk6e319cyhCT2EsImJhc2VDcmVhdGUiKTtmdW5jdGlvbiBIT2EoYSxlLHQpe3ZhciByPWUoYSk7cmV0dXJuIGtldChhKT9yOnRPYShyLHQoYSkpfXMoSE9hLCJiYXNlR2V0QWxsS2V5cyIpO2Z1bmN0aW9uIHFPYShhKXtyZXR1cm4ga2llLmNhbGwoYSl9cyhxT2EsImJhc2VHZXRUYWciKTtmdW5jdGlvbiBWT2EoYSl7aWYoIUNpZShhKXx8b0ZhKGEpKXJldHVybiExO3ZhciBlPWRmYShhKXx8R3BhKGEpP29PYTpHUmE7cmV0dXJuIGUudGVzdChBNShhKSl9cyhWT2EsImJhc2VJc05hdGl2ZSIpO2Z1bmN0aW9uIGpPYShhKXtpZighbmZhKGEpKXJldHVybiBwT2EoYSk7dmFyIGU9W107Zm9yKHZhciB0IGluIE9iamVjdChhKSlqNC5jYWxsKGEsdCkmJnQhPSJjb25zdHJ1Y3RvciImJmUucHVzaCh0KTtyZXR1cm4gZX1zKGpPYSwiYmFzZUtleXMiKTtmdW5jdGlvbiBVT2EoYSxlKXtpZihlKXJldHVybiBhLnNsaWNlKCk7dmFyIHQ9bmV3IGEuY29uc3RydWN0b3IoYS5sZW5ndGgpO3JldHVybiBhLmNvcHkodCksdH1zKFVPYSwiY2xvbmVCdWZmZXIiKTtmdW5jdGlvbiBNZXQoYSl7dmFyIGU9bmV3IGEuY29uc3RydWN0b3IoYS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IGVmYShlKS5zZXQobmV3IGVmYShhKSksZX1zKE1ldCwiY2xvbmVBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIFdPYShhLGUpe3ZhciB0PWU/TWV0KGEuYnVmZmVyKTphLmJ1ZmZlcjtyZXR1cm4gbmV3IGEuY29uc3RydWN0b3IodCxhLmJ5dGVPZmZzZXQsYS5ieXRlTGVuZ3RoKX1zKFdPYSwiY2xvbmVEYXRhVmlldyIpO2Z1bmN0aW9uIEdPYShhLGUsdCl7dmFyIHI9ZT90KFlwYShhKSwhMCk6WXBhKGEpO3JldHVybiBXcGEocixRUmEsbmV3IGEuY29uc3RydWN0b3IpfXMoR09hLCJjbG9uZU1hcCIpO2Z1bmN0aW9uIFlPYShhKXt2YXIgZT1uZXcgYS5jb25zdHJ1Y3RvcihhLnNvdXJjZSxXUmEuZXhlYyhhKSk7cmV0dXJuIGUubGFzdEluZGV4PWEubGFzdEluZGV4LGV9cyhZT2EsImNsb25lUmVnRXhwIik7ZnVuY3Rpb24gS09hKGEsZSx0KXt2YXIgcj1lP3QoS3BhKGEpLCEwKTpLcGEoYSk7cmV0dXJuIFdwYShyLEpSYSxuZXcgYS5jb25zdHJ1Y3Rvcil9cyhLT2EsImNsb25lU2V0Iik7ZnVuY3Rpb24gWk9hKGEpe3JldHVybiByZmE/T2JqZWN0KHJmYS5jYWxsKGEpKTp7fX1zKFpPYSwiY2xvbmVTeW1ib2wiKTtmdW5jdGlvbiBYT2EoYSxlKXt2YXIgdD1lP01ldChhLmJ1ZmZlcik6YS5idWZmZXI7cmV0dXJuIG5ldyBhLmNvbnN0cnVjdG9yKHQsYS5ieXRlT2Zmc2V0LGEubGVuZ3RoKX1zKFhPYSwiY2xvbmVUeXBlZEFycmF5Iik7ZnVuY3Rpb24gUU9hKGEsZSl7dmFyIHQ9LTEscj1hLmxlbmd0aDtmb3IoZXx8KGU9QXJyYXkocikpOysrdDxyOyllW3RdPWFbdF07cmV0dXJuIGV9cyhRT2EsImNvcHlBcnJheSIpO2Z1bmN0aW9uIGlmYShhLGUsdCxyKXt0fHwodD17fSk7Zm9yKHZhciBpPS0xLG89ZS5sZW5ndGg7KytpPG87KXt2YXIgbj1lW2ldLGw9cj9yKHRbbl0sYVtuXSxuLHQsYSk6dm9pZCAwO3NmYSh0LG4sbD09PXZvaWQgMD9hW25dOmwpfXJldHVybiB0fXMoaWZhLCJjb3B5T2JqZWN0Iik7ZnVuY3Rpb24gSk9hKGEsZSl7cmV0dXJuIGlmYShhLG9mYShhKSxlKX1zKEpPYSwiY29weVN5bWJvbHMiKTtmdW5jdGlvbiBlRmEoYSl7cmV0dXJuIEhPYShhLHpldCxvZmEpfXMoZUZhLCJnZXRBbGxLZXlzIik7ZnVuY3Rpb24gemllKGEsZSl7dmFyIHQ9YS5fX2RhdGFfXztyZXR1cm4gaUZhKGUpP3RbdHlwZW9mIGU9PSJzdHJpbmciPyJzdHJpbmciOiJoYXNoIl06dC5tYXB9cyh6aWUsImdldE1hcERhdGEiKTtmdW5jdGlvbiBjNyhhLGUpe3ZhciB0PXJPYShhLGUpO3JldHVybiBWT2EodCk/dDp2b2lkIDB9cyhjNywiZ2V0TmF0aXZlIik7dmFyIG9mYT10ZmE/bWV0KHRmYSxPYmplY3QpOmZGYSxENT1xT2E7KGJldCYmRDUobmV3IGJldChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9d2llfHwkRyYmRDUobmV3ICRHKSE9eGllfHx2ZXQmJkQ1KHZldC5yZXNvbHZlKCkpIT0kcGF8fHhldCYmRDUobmV3IHhldCkhPXlpZXx8eWV0JiZENShuZXcgeWV0KSE9aGV0KSYmKEQ1PXMoZnVuY3Rpb24oYSl7dmFyIGU9a2llLmNhbGwoYSksdD1lPT1mZXQ/YS5jb25zdHJ1Y3Rvcjp2b2lkIDAscj10P0E1KHQpOnZvaWQgMDtpZihyKXN3aXRjaChyKXtjYXNlIGZPYTpyZXR1cm4gd2llO2Nhc2UgaE9hOnJldHVybiB4aWU7Y2FzZSBtT2E6cmV0dXJuICRwYTtjYXNlIGdPYTpyZXR1cm4geWllO2Nhc2UgYk9hOnJldHVybiBoZXR9cmV0dXJuIGV9LCJnZXRUYWciKSk7ZnVuY3Rpb24gdEZhKGEpe3ZhciBlPWEubGVuZ3RoLHQ9YS5jb25zdHJ1Y3RvcihlKTtyZXR1cm4gZSYmdHlwZW9mIGFbMF09PSJzdHJpbmciJiZqNC5jYWxsKGEsImluZGV4IikmJih0LmluZGV4PWEuaW5kZXgsdC5pbnB1dD1hLmlucHV0KSx0fXModEZhLCJpbml0Q2xvbmVBcnJheSIpO2Z1bmN0aW9uIGFGYShhKXtyZXR1cm4gdHlwZW9mIGEuY29uc3RydWN0b3I9PSJmdW5jdGlvbiImJiFuZmEoYSk/Qk9hKG5PYShhKSk6e319cyhhRmEsImluaXRDbG9uZU9iamVjdCIpO2Z1bmN0aW9uIHJGYShhLGUsdCxyKXt2YXIgaT1hLmNvbnN0cnVjdG9yO3N3aXRjaChlKXtjYXNlIEVwYTpyZXR1cm4gTWV0KGEpO2Nhc2UgQ3BhOmNhc2UgX3BhOnJldHVybiBuZXcgaSgrYSk7Y2FzZSB3aWU6cmV0dXJuIFdPYShhLHIpO2Nhc2UgSXBhOmNhc2UgTnBhOmNhc2UgUnBhOmNhc2UgT3BhOmNhc2UgRnBhOmNhc2UgQnBhOmNhc2UgSHBhOmNhc2UgcXBhOmNhc2UgVnBhOnJldHVybiBYT2EoYSxyKTtjYXNlIHhpZTpyZXR1cm4gR09hKGEscix0KTtjYXNlIExwYTpjYXNlIEFwYTpyZXR1cm4gbmV3IGkoYSk7Y2FzZSBEcGE6cmV0dXJuIFlPYShhKTtjYXNlIHlpZTpyZXR1cm4gS09hKGEscix0KTtjYXNlIFBwYTpyZXR1cm4gWk9hKGEpfX1zKHJGYSwiaW5pdENsb25lQnlUYWciKTtmdW5jdGlvbiBzRmEoYSxlKXtyZXR1cm4gZT1lPz96cGEsISFlJiYodHlwZW9mIGE9PSJudW1iZXIifHxZUmEudGVzdChhKSkmJmE+LTEmJmElMT09MCYmYTxlfXMoc0ZhLCJpc0luZGV4Iik7ZnVuY3Rpb24gaUZhKGEpe3ZhciBlPXR5cGVvZiBhO3JldHVybiBlPT0ic3RyaW5nInx8ZT09Im51bWJlciJ8fGU9PSJzeW1ib2wifHxlPT0iYm9vbGVhbiI/YSE9PSJfX3Byb3RvX18iOmE9PT1udWxsfXMoaUZhLCJpc0tleWFibGUiKTtmdW5jdGlvbiBvRmEoYSl7cmV0dXJuISFacGEmJlpwYSBpbiBhfXMob0ZhLCJpc01hc2tlZCIpO2Z1bmN0aW9uIG5mYShhKXt2YXIgZT1hJiZhLmNvbnN0cnVjdG9yLHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlfHxNaWU7cmV0dXJuIGE9PT10fXMobmZhLCJpc1Byb3RvdHlwZSIpO2Z1bmN0aW9uIEE1KGEpe2lmKGEhPW51bGwpe3RyeXtyZXR1cm4gWHBhLmNhbGwoYSl9Y2F0Y2h7fXRyeXtyZXR1cm4gYSsiIn1jYXRjaHt9fXJldHVybiIifXMoQTUsInRvU291cmNlIik7ZnVuY3Rpb24gbkZhKGEpe3JldHVybiB3ZXQoYSwhMCwhMCl9cyhuRmEsImNsb25lRGVlcCIpO2Z1bmN0aW9uIGxmYShhLGUpe3JldHVybiBhPT09ZXx8YSE9PWEmJmUhPT1lfXMobGZhLCJlcSIpO2Z1bmN0aW9uIGxGYShhKXtyZXR1cm4gY0ZhKGEpJiZqNC5jYWxsKGEsImNhbGxlZSIpJiYoIWNPYS5jYWxsKGEsImNhbGxlZSIpfHxraWUuY2FsbChhKT09dWV0KX1zKGxGYSwiaXNBcmd1bWVudHMiKTt2YXIga2V0PUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gY2ZhKGEpe3JldHVybiBhIT1udWxsJiZ1RmEoYS5sZW5ndGgpJiYhZGZhKGEpfXMoY2ZhLCJpc0FycmF5TGlrZSIpO2Z1bmN0aW9uIGNGYShhKXtyZXR1cm4gcEZhKGEpJiZjZmEoYSl9cyhjRmEsImlzQXJyYXlMaWtlT2JqZWN0Iik7dmFyIGRGYT11T2F8fGhGYTtmdW5jdGlvbiBkZmEoYSl7dmFyIGU9Q2llKGEpP2tpZS5jYWxsKGEpOiIiO3JldHVybiBlPT1wZXR8fGU9PVRwYX1zKGRmYSwiaXNGdW5jdGlvbiIpO2Z1bmN0aW9uIHVGYShhKXtyZXR1cm4gdHlwZW9mIGE9PSJudW1iZXIiJiZhPi0xJiZhJTE9PTAmJmE8PXpwYX1zKHVGYSwiaXNMZW5ndGgiKTtmdW5jdGlvbiBDaWUoYSl7dmFyIGU9dHlwZW9mIGE7cmV0dXJuISFhJiYoZT09Im9iamVjdCJ8fGU9PSJmdW5jdGlvbiIpfXMoQ2llLCJpc09iamVjdCIpO2Z1bmN0aW9uIHBGYShhKXtyZXR1cm4hIWEmJnR5cGVvZiBhPT0ib2JqZWN0In1zKHBGYSwiaXNPYmplY3RMaWtlIik7ZnVuY3Rpb24gemV0KGEpe3JldHVybiBjZmEoYSk/T09hKGEpOmpPYShhKX1zKHpldCwia2V5cyIpO2Z1bmN0aW9uIGZGYSgpe3JldHVybltdfXMoZkZhLCJzdHViQXJyYXkiKTtmdW5jdGlvbiBoRmEoKXtyZXR1cm4hMX1zKGhGYSwic3R1YkZhbHNlIiksZDcuZXhwb3J0cz1uRmF9KTt2YXIgX2llLHBmYSxUaWUsQ2V0PWYoKCk9PntrcGEoKTtSaCgpO19pZT1rbyh1ZmEoKSwxKSxwZmE9a28ocWxlKCksMSksVGllPXBmYS5kZWZhdWx0fSk7ZnVuY3Rpb24gZ0ZhKGEpe3JldHVybiB0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXIuZnJvbShhKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmEpKX1mdW5jdGlvbiBiRmEoYSl7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCBlPUJ1ZmZlci5mcm9tKGEsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheShlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGEpKS5tYXAoZT0+ZS5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gVGV0KGEsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGEsTGllLGUpfWZ1bmN0aW9uIExldChhKXtyZXR1cm4gSlNPTi5wYXJzZShhLGZmYSl9ZnVuY3Rpb24gdkZhKGEpe3JldHVybiBtZmEoYSkmJmEudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmX2V0KGEuZGF0YSl9ZnVuY3Rpb24geEZhKGEpe3JldHVybiBtZmEoYSkmJmEudHlwZT09PSJCdWZmZXIiJiYoaGZhKGEuZGF0YSl8fF9ldChhLmRhdGEpKXx8YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gaGZhKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpfWZ1bmN0aW9uIF9ldChhKXtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmcifWZ1bmN0aW9uIG1mYShhKXtyZXR1cm4gdHlwZW9mIGE9PSJvYmplY3QiJiZhIT09bnVsbH12YXIgTGllLGZmYSxnZmE9ZigoKT0+e0NldCgpO3MoZ0ZhLCJiYXNlNjRFbmNvZGUiKTtzKGJGYSwiYmFzZTY0RGVjb2RlIik7cyhUZXQsInN0cmluZ2lmeSIpO3MoTGV0LCJwYXJzZSIpO0xpZT1zKChhLGUpPT57aWYoeEZhKGUpKXtsZXQgdDtpZigiZGF0YSJpbiBlJiZoZmEoZS5kYXRhKSl0PW5ldyBVaW50OEFycmF5KGUuZGF0YSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSl0PWU7ZWxzZSByZXR1cm4gZTtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIrZ0ZhKHQpfX1yZXR1cm4gZX0sInJlcGxhY2VyIiksZmZhPXMoKGEsZSk9PntpZih2RmEoZSkmJl9ldChlLmRhdGEpJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgdD1lLmRhdGEuc2xpY2UoNyk7cmV0dXJuIGJGYSh0KX1yZXR1cm4gZX0sInJldml2ZXIiKTtzKHZGYSwiaXNFbmNvZGVkQnVmZmVyIik7cyh4RmEsImlzQnVmZmVyTGlrZSIpO3MoaGZhLCJpc0FycmF5Iik7cyhfZXQsImlzU3RyaW5nIik7cyhtZmEsImlzT2JqZWN0Iil9KTt2YXIgZGw9e307bHQoZGwse1NtYXJ0anNvbjooKT0+RGV0LGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+X0ZhLGRlZXBFcXVhbE9iamVjdHM6KCk9PmJmYSxmb2xkRGVjOigpPT5DRmEscGFyc2U6KCk9PiRpZSxwYXJzZUJhc2U2NDooKT0+ekZhLHBhcnNlSnNvbkw6KCk9PiRldCxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9Pk1GYSxzdHJpbmdpZnk6KCk9PlA1LHN0cmluZ2lmeUJhc2U2NDooKT0+U0ZhLHN0cmluZ2lmeUpzb25MOigpPT53RmEsc3RyaW5naWZ5UHJldHR5OigpPT5rRmF9KTt2YXIgJGllLCRldCx3RmEsTUZhLFA1LGtGYSxTRmEsekZhLERldCxDRmEsYmZhLF9GYSx2ZmE9ZigoKT0+e0NldCgpO2dmYSgpOyRpZT1MZXQsJGV0PXMoYT0+YS5zcGxpdChgCmApLnJlZHVjZSgocixpKT0+e2xldCBvPWkudHJpbSgpO3JldHVybiBvLmxlbmd0aD4wJiZyLnB1c2goJGllKG8pKSxyfSxbXSksInBhcnNlSnNvbkwiKSx3RmE9cyhhPT5hLm1hcChlPT5QNShlKSkuam9pbihgCmApLCJzdHJpbmdpZnlKc29uTCIpLE1GYT1zKChhLGUsdD17fSk9PntsZXQgcj1uZXcgV2Vha1NldCxpPXMobD0+e2lmKGw9PT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCIpcmV0dXJuIGw7bGV0IGQ9TGllKCIiLGwpO2lmKGQmJmQudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIGQuZGF0YT09InN0cmluZyIpcmV0dXJuIGQ7aWYoci5oYXMobCkpcmV0dXJuIl9fY3ljbGVfXyI7aWYoci5hZGQobCksQXJyYXkuaXNBcnJheShsKSlyZXR1cm4gbC5tYXAocD0+aShwKSk7bGV0IGM9e307Zm9yKGxldCBwIG9mIE9iamVjdC5rZXlzKGwpKXRyeXtjW3BdPWkobFtwXSl9Y2F0Y2h7Y1twXT0iX191bnNlcmlhbGl6YWJsZV9fIn1yZXR1cm4gY30sInNhbml0aXplIiksbz1pKGEpLG49ey4uLnQsY3ljbGVzOiEwfTtpZihlJiYhbi5jbXApe2xldCBsPW5ldyBNYXA7ZS5mb3JFYWNoKChkLGMpPT5sLnNldChkLGMpKSxuLmNtcD0oZCxjKT0+e2xldCBwPWwuaGFzKGQua2V5KT9sLmdldChkLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9bC5oYXMoYy5rZXkpP2wuZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIHAhPT11P3AtdTpkLmtleTxjLmtleT8tMTpkLmtleT5jLmtleT8xOjB9fXJldHVybiBUaWUobyxuKX0sInN0YWJsZU9uZVdheVN0cmluZ2lmeSIpLFA1PXMoKGEsZSx0PXt9KT0+e2xldCByPVRldChhKTthPUpTT04ucGFyc2Uocik7bGV0IGk9ey4uLnR9O2lmKGUmJiFpLmNtcCl7bGV0IG49bmV3IE1hcDtlLmZvckVhY2goKGwsZCk9Pm4uc2V0KGwsZCkpLGkuY21wPShsLGQpPT57bGV0IGM9bi5oYXMobC5rZXkpP24uZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD1uLmhhcyhkLmtleSk/bi5nZXQoZC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXA/Yy1wOmwua2V5PGQua2V5Py0xOmwua2V5PmQua2V5PzE6MH19cmV0dXJuIFRpZShhLGkpfSwic3RyaW5naWZ5Iiksa0ZhPXMoYT0+e2xldCBlPVA1KGEpLHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfSwic3RyaW5naWZ5UHJldHR5IiksU0ZhPXMoKC4uLmEpPT57bGV0IGU9UDUoLi4uYSk7cmV0dXJuIGRzLmJhc2U2NC5lbmNvZGVVcmkoZSl9LCJzdHJpbmdpZnlCYXNlNjQiKSx6RmE9cyhhPT57bGV0IGU9ZHMuYmFzZTY0LHI9KGUuZGVjb2RlVXJpfHxlLmRlY29kZSkoYSk7cmV0dXJuICRpZShyKX0sInBhcnNlQmFzZTY0IiksRGV0PWNsYXNzIGF7c3RhdGlje3ModGhpcywiU21hcnRqc29uIil9c3RhdGljIGVuZm9sZEZyb21PYmplY3QoZSl7bGV0IHQ9bmV3IHRoaXMscj10LnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBpIGluIGUpci5pbmRleE9mKGkpIT09LTEmJih0W2ldPWVbaV0pO3JldHVybiB0fXN0YXRpYyBlbmZvbGRGcm9tSnNvbihlKXtsZXQgdD0kaWUoZSk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdCh0KX1mb2xkVG9PYmplY3QoKXtsZXQgZT1uZXcgU2V0O3JldHVybiBlLmFkZCh0aGlzKSx0aGlzLmZvbGRUb09iamVjdEludGVybmFsKGUpfWZvbGRUb09iamVjdEludGVybmFsKGUpe2xldCB0PXt9LHI9cyhvPT57aWYobyBpbnN0YW5jZW9mIGEpe2lmKGUuaGFzKG8pKXRocm93IG5ldyBFcnJvcigiY3ljbGUgZGV0ZWN0ZWQiKTtyZXR1cm4gZS5hZGQobyksby5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1yZXR1cm4gQXJyYXkuaXNBcnJheShvKT9vLm1hcChuPT5yKG4pKTpfaWUuZGVmYXVsdChvKX0sImZvbGRWYWx1ZSIpLGk9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbyBvZiBpKXtsZXQgbj10aGlzW29dO3Rbb109cihuKX1yZXR1cm4gdH1mb2xkVG9Kc29uKCl7bGV0IGU9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4gUDUoZSl9fSxDRmE9cygoKT0+KGEsZSk9PnthLnNhdmVhYmxlUHJvcGVydGllc3x8KGEuc2F2ZWFibGVQcm9wZXJ0aWVzPVtdKSxhLnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKGUpfSwiZm9sZERlYyIpLGJmYT1zKChhLGUpPT57bGV0IHQ9UDUoYSkscj1QNShlKTtyZXR1cm4gdD09PXJ9LCJkZWVwRXF1YWxPYmplY3RzIiksX0ZhPXMoKGEsZSk9PntsZXQgdD0kZXQoYSkscj0kZXQoZSk7cmV0dXJuIGJmYSh0LHIpfSwiZGVlcEVxdWFsSnNvbkxTdHJpbmdzIil9KTt2YXIgeGZhPWYoKCk9PntHOSgpO2loKCk7eHBhKCk7dDAoKTt2ZmEoKTtiaSgpO3AyKCk7UmgoKTtqZGUoKX0pO2Z1bmN0aW9uIExGYShhKXtyZXR1cm57cGVlcjphLGFzeW5jIGdldFRhZ0J5SWQoZSl7aWYoIWEudGFncy5oYXMoZSkpcmV0dXJuO2xldCB0PWEuZGF0YS5nZXQoYCR7QWV0fSR7ZX1gKTtyZXR1cm57aWQ6ZSxwYXlsb2FkOnR9fX19dmFyIEFldCxQZXQseWZhPWYoKCk9Pnt4ZmEoKTtBZXQ9Il9fdHlwZWRzb2NrZXRfdGFnX18iO3MoTEZhLCJ3cmFwU21hcnRTZXJ2ZVBlZXIiKTtQZXQ9Y2xhc3MgYXtzdGF0aWN7cyh0aGlzLCJUeXBlZFNvY2tldCIpfXN0YXRpYyBhc3luYyBjcmVhdGVDbGllbnQoZSx0LHI9e30pe2xldCBvPXsuLi57YXV0b1JlY29ubmVjdDohMCxtYXhSZXRyaWVzOjEwMCxpbml0aWFsQmFja29mZk1zOjFlMyxtYXhCYWNrb2ZmTXM6NmU0fSwuLi5yfSxuPW5ldyBhKCJjbGllbnQiLGUpO3JldHVybiBuLmNsaWVudE9wdGlvbnM9byxuLnNlcnZlclVybD10LG4uY3VycmVudEJhY2tvZmY9by5pbml0aWFsQmFja29mZk1zLGF3YWl0IG4uY29ubmVjdCgpLG59c3RhdGlje3RoaXMudXNlV2luZG93TG9jYXRpb25PcmlnaW5Vcmw9KCk9PnkxLlNtYXJ0dXJsLmNyZWF0ZUZyb21VcmwoZ2xvYmFsVGhpcy5sb2NhdGlvbi5vcmlnaW4pLnRvU3RyaW5nKCl9c3RhdGljIGZyb21TbWFydFNlcnZlKGUsdCl7bGV0IHI9bmV3IE1hcDthLnJlZ2lzdGVyVGFnSGFuZGxlcnModCk7bGV0IGk9bmV3IGEoInNlcnZlciIsdCk7cmV0dXJuIGkuc21hcnRTZXJ2ZVJlZj1lLGkuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycz1yLGl9c3RhdGljIHJlZ2lzdGVyVGFnSGFuZGxlcnMoZSl7ZS5hZGRUeXBlZEhhbmRsZXIobmV3IEdyLlR5cGVkSGFuZGxlcigiX190eXBlZHNvY2tldF9zZXRUYWciLGFzeW5jKHQscik9PntsZXQgaT1yPy5sb2NhbERhdGE/LnBlZXI7cmV0dXJuIGk/KGkudGFncy5hZGQodC5uYW1lKSxpLmRhdGEuc2V0KGAke0FldH0ke3QubmFtZX1gLHQucGF5bG9hZCkse3N1Y2Nlc3M6ITB9KTooY29uc29sZS53YXJuKCJzZXRUYWc6IE5vIHBlZXIgZm91bmQgaW4gcmVxdWVzdCBjb250ZXh0Iikse3N1Y2Nlc3M6ITF9KX0pKSxlLmFkZFR5cGVkSGFuZGxlcihuZXcgR3IuVHlwZWRIYW5kbGVyKCJfX3R5cGVkc29ja2V0X3JlbW92ZVRhZyIsYXN5bmModCxyKT0+e2xldCBpPXI/LmxvY2FsRGF0YT8ucGVlcjtyZXR1cm4gaT8oaS50YWdzLmRlbGV0ZSh0Lm5hbWUpLGkuZGF0YS5kZWxldGUoYCR7QWV0fSR7dC5uYW1lfWApLHtzdWNjZXNzOiEwfSk6KGNvbnNvbGUud2FybigicmVtb3ZlVGFnOiBObyBwZWVyIGZvdW5kIGluIHJlcXVlc3QgY29udGV4dCIpLHtzdWNjZXNzOiExfSl9KSl9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnN0YXR1c1N1YmplY3Q9bmV3IF9hLnJ4anMuU3ViamVjdCx0aGlzLmNvbm5lY3Rpb25TdGF0dXM9Im5ldyIsdGhpcy53ZWJzb2NrZXQ9bnVsbCx0aGlzLmNsaWVudE9wdGlvbnM9bnVsbCx0aGlzLnNlcnZlclVybD0iIix0aGlzLnJldHJ5Q291bnQ9MCx0aGlzLmN1cnJlbnRCYWNrb2ZmPTFlMyx0aGlzLnBlbmRpbmdSZXF1ZXN0cz1uZXcgTWFwLHRoaXMuc21hcnRTZXJ2ZVJlZj1udWxsLHRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycz1uZXcgTWFwLHRoaXMuc2lkZT1lLHRoaXMudHlwZWRyb3V0ZXI9dH1hc3luYyBjb25uZWN0KCl7bGV0IGU9Y3QuZGVmZXIoKTt0aGlzLnVwZGF0ZVN0YXR1cygiY29ubmVjdGluZyIpO2xldCB0PXRoaXMudG9XZWJTb2NrZXRVcmwodGhpcy5zZXJ2ZXJVcmwpO2NvbnNvbGUubG9nKGBUeXBlZFNvY2tldCBjb25uZWN0aW5nIHRvICR7dH0uLi5gKSx0aGlzLndlYnNvY2tldD1uZXcgV2ViU29ja2V0KHQpO2xldCByPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbm5lY3Rpb25TdGF0dXMhPT0iY29ubmVjdGVkIiYmKGNvbnNvbGUud2FybigiVHlwZWRTb2NrZXQgY29ubmVjdGlvbiB0aW1lb3V0IiksdGhpcy53ZWJzb2NrZXQ/LmNsb3NlKCksZS5yZWplY3QobmV3IEVycm9yKCJDb25uZWN0aW9uIHRpbWVvdXQiKSkpfSwxZTQpO3RoaXMud2Vic29ja2V0Lm9ub3Blbj0oKT0+e2NsZWFyVGltZW91dChyKSxjb25zb2xlLmxvZygiVHlwZWRTb2NrZXQgY29ubmVjdGVkISIpLHRoaXMudXBkYXRlU3RhdHVzKCJjb25uZWN0ZWQiKSx0aGlzLnJldHJ5Q291bnQ9MCx0aGlzLmN1cnJlbnRCYWNrb2ZmPXRoaXMuY2xpZW50T3B0aW9ucz8uaW5pdGlhbEJhY2tvZmZNcz8/MWUzLGUucmVzb2x2ZSgpfSx0aGlzLndlYnNvY2tldC5vbm1lc3NhZ2U9YXN5bmMgaT0+e2F3YWl0IHRoaXMuaGFuZGxlTWVzc2FnZShpLmRhdGEpfSx0aGlzLndlYnNvY2tldC5vbmNsb3NlPSgpPT57Y2xlYXJUaW1lb3V0KHIpLHRoaXMuaGFuZGxlRGlzY29ubmVjdCgpfSx0aGlzLndlYnNvY2tldC5vbmVycm9yPWk9Pntjb25zb2xlLmVycm9yKCJUeXBlZFNvY2tldCBXZWJTb2NrZXQgZXJyb3I6IixpKX07dHJ5e2F3YWl0IGUucHJvbWlzZX1jYXRjaChpKXtpZihjbGVhclRpbWVvdXQociksdGhpcy5jbGllbnRPcHRpb25zPy5hdXRvUmVjb25uZWN0KWF3YWl0IHRoaXMuc2NoZWR1bGVSZWNvbm5lY3QoKTtlbHNlIHRocm93IGl9fXRvV2ViU29ja2V0VXJsKGUpe2xldCB0PW5ldyBVUkwoZSk7cmV0dXJuYCR7dC5wcm90b2NvbD09PSJodHRwczoiPyJ3c3M6Ijoid3M6In0vLyR7dC5ob3N0fSR7dC5wYXRobmFtZX1gfWFzeW5jIGhhbmRsZU1lc3NhZ2UoZSl7dHJ5e2xldCB0PXR5cGVvZiBlPT0ic3RyaW5nIj9lOm5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShlKSxyPWRsLnBhcnNlKHQpO2lmKHIuY29ycmVsYXRpb24/LmlkJiZ0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMoci5jb3JyZWxhdGlvbi5pZCkpe2xldCBvPXRoaXMucGVuZGluZ1JlcXVlc3RzLmdldChyLmNvcnJlbGF0aW9uLmlkKTt0aGlzLnBlbmRpbmdSZXF1ZXN0cy5kZWxldGUoci5jb3JyZWxhdGlvbi5pZCksby5yZXNvbHZlKHIpO3JldHVybn1sZXQgaT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2Uocik7aSYmdGhpcy53ZWJzb2NrZXQ/LnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTiYmdGhpcy53ZWJzb2NrZXQuc2VuZChkbC5zdHJpbmdpZnkoaSkpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IGZhaWxlZCB0byBwcm9jZXNzIG1lc3NhZ2U6Iix0KX19aGFuZGxlRGlzY29ubmVjdCgpe2lmKHRoaXMuY29ubmVjdGlvblN0YXR1cyE9PSJkaXNjb25uZWN0ZWQiKXt0aGlzLnVwZGF0ZVN0YXR1cygiZGlzY29ubmVjdGVkIik7Zm9yKGxldFtlLHRdb2YgdGhpcy5wZW5kaW5nUmVxdWVzdHMpdC5yZWplY3QobmV3IEVycm9yKCJUeXBlZFNvY2tldCBkaXNjb25uZWN0ZWQiKSk7dGhpcy5wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKSx0aGlzLmNsaWVudE9wdGlvbnM/LmF1dG9SZWNvbm5lY3QmJnRoaXMucmV0cnlDb3VudDx0aGlzLmNsaWVudE9wdGlvbnMubWF4UmV0cmllcyYmdGhpcy5zY2hlZHVsZVJlY29ubmVjdCgpfX1hc3luYyBzY2hlZHVsZVJlY29ubmVjdCgpe2lmKCF0aGlzLmNsaWVudE9wdGlvbnMpcmV0dXJuO3RoaXMudXBkYXRlU3RhdHVzKCJyZWNvbm5lY3RpbmciKSx0aGlzLnJldHJ5Q291bnQrKztsZXQgZT10aGlzLmN1cnJlbnRCYWNrb2ZmKi4yKihNYXRoLnJhbmRvbSgpKjItMSksdD1NYXRoLm1pbih0aGlzLmN1cnJlbnRCYWNrb2ZmK2UsdGhpcy5jbGllbnRPcHRpb25zLm1heEJhY2tvZmZNcyk7Y29uc29sZS5sb2coYFR5cGVkU29ja2V0IHJlY29ubmVjdGluZyBpbiAke01hdGgucm91bmQodCl9bXMgKGF0dGVtcHQgJHt0aGlzLnJldHJ5Q291bnR9LyR7dGhpcy5jbGllbnRPcHRpb25zLm1heFJldHJpZXN9KWApLGF3YWl0IFV0LmRlbGF5Rm9yKHQpLHRoaXMuY3VycmVudEJhY2tvZmY9TWF0aC5taW4odGhpcy5jdXJyZW50QmFja29mZioyLHRoaXMuY2xpZW50T3B0aW9ucy5tYXhCYWNrb2ZmTXMpO3RyeXthd2FpdCB0aGlzLmNvbm5lY3QoKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJUeXBlZFNvY2tldCByZWNvbm5lY3Rpb24gZmFpbGVkOiIscil9fXVwZGF0ZVN0YXR1cyhlKXt0aGlzLmNvbm5lY3Rpb25TdGF0dXMhPT1lJiYodGhpcy5jb25uZWN0aW9uU3RhdHVzPWUsdGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoZSkpfWFzeW5jIHNlbmRSZXF1ZXN0KGUpe2lmKCF0aGlzLndlYnNvY2tldHx8dGhpcy53ZWJzb2NrZXQucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXRocm93IG5ldyBFcnJvcigiV2ViU29ja2V0IG5vdCBjb25uZWN0ZWQiKTtlLmNvcnJlbGF0aW9ufHw9e2lkOmRzLmNyZWF0ZS5jcmVhdGVDcnlwdG9SYW5kb21TdHJpbmcoKSxwaGFzZToicmVxdWVzdCJ9O2xldCB0PWUuY29ycmVsYXRpb24uaWQ7cmV0dXJuIG5ldyBQcm9taXNlKChyLGkpPT57bGV0IG89c2V0VGltZW91dCgoKT0+e3RoaXMucGVuZGluZ1JlcXVlc3RzLmRlbGV0ZSh0KSxpKG5ldyBFcnJvcigiUmVxdWVzdCB0aW1lb3V0IikpfSwzZTQpO3RoaXMucGVuZGluZ1JlcXVlc3RzLnNldCh0LHtyZXNvbHZlOnMobj0+e2NsZWFyVGltZW91dChvKSxyKG4pfSwicmVzb2x2ZSIpLHJlamVjdDpzKG49PntjbGVhclRpbWVvdXQobyksaShuKX0sInJlamVjdCIpfSksdGhpcy53ZWJzb2NrZXQuc2VuZChkbC5zdHJpbmdpZnkoZSkpfSl9Y3JlYXRlVHlwZWRSZXF1ZXN0KGUsdCl7bGV0IHI9cyhhc3luYyBpPT57aWYodGhpcy5zaWRlPT09ImNsaWVudCIpcmV0dXJuIHRoaXMuc2VuZFJlcXVlc3QoaSk7aWYoIXRoaXMuc21hcnRTZXJ2ZVJlZil0aHJvdyBuZXcgRXJyb3IoIlNlcnZlciBub3QgaW5pdGlhbGl6ZWQiKTtsZXQgbz10O2lmKCFvKXtsZXQgbD10aGlzLnNtYXJ0U2VydmVSZWYuZ2V0V2ViU29ja2V0Q29ubmVjdGlvbnMoKTtpZihsLmxlbmd0aD09PTEpe2xldCBkPWxbMF07bz10aGlzLmdldE9yQ3JlYXRlV3JhcHBlcihkKX1lbHNlIHRocm93IGwubGVuZ3RoPT09MD9uZXcgRXJyb3IoIk5vIFdlYlNvY2tldCBjb25uZWN0aW9ucyBhdmFpbGFibGUiKTpuZXcgRXJyb3IoIk11bHRpcGxlIGNvbm5lY3Rpb25zIGF2YWlsYWJsZSAtIHNwZWNpZnkgdGFyZ2V0Q29ubmVjdGlvbiIpfWxldCBuPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIuZmlyZUV2ZW50SW50ZXJlc3RNYXAuYWRkSW50ZXJlc3QoaS5jb3JyZWxhdGlvbi5pZCxpKTtyZXR1cm4gby5wZWVyLnNlbmQoZGwuc3RyaW5naWZ5KGkpKSxhd2FpdCBuLmludGVyZXN0RnVsbGZpbGxlZH0sInBvc3RNZXRob2QiKTtyZXR1cm4gbmV3IEdyLlR5cGVkUmVxdWVzdChuZXcgR3IuVHlwZWRUYXJnZXQoe3Bvc3RNZXRob2Q6cn0pLGUpfWdldFN0YXR1cygpe3JldHVybiB0aGlzLmNvbm5lY3Rpb25TdGF0dXN9YXN5bmMgc3RvcCgpe3RoaXMuc2lkZT09PSJjbGllbnQiPyh0aGlzLmNsaWVudE9wdGlvbnMmJih0aGlzLmNsaWVudE9wdGlvbnMuYXV0b1JlY29ubmVjdD0hMSksdGhpcy53ZWJzb2NrZXQmJih0aGlzLndlYnNvY2tldC5jbG9zZSgpLHRoaXMud2Vic29ja2V0PW51bGwpLHRoaXMucGVuZGluZ1JlcXVlc3RzLmNsZWFyKCkpOnRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycy5jbGVhcigpfWFzeW5jIHNldFRhZyhlLHQpe2lmKHRoaXMuc2lkZSE9PSJjbGllbnQiKXRocm93IG5ldyBFcnJvcigic2V0VGFnIGlzIG9ubHkgYXZhaWxhYmxlIG9uIGNsaWVudHMiKTtpZighKGF3YWl0IHRoaXMuY3JlYXRlVHlwZWRSZXF1ZXN0KCJfX3R5cGVkc29ja2V0X3NldFRhZyIpLmZpcmUoe25hbWU6ZSxwYXlsb2FkOnR9KSkuc3VjY2Vzcyl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBzZXQgdGFnIG9uIHNlcnZlciIpfWFzeW5jIHJlbW92ZVRhZyhlKXtpZih0aGlzLnNpZGUhPT0iY2xpZW50Iil0aHJvdyBuZXcgRXJyb3IoInJlbW92ZVRhZyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBjbGllbnRzIik7aWYoIShhd2FpdCB0aGlzLmNyZWF0ZVR5cGVkUmVxdWVzdCgiX190eXBlZHNvY2tldF9yZW1vdmVUYWciKS5maXJlKHtuYW1lOmV9KSkuc3VjY2Vzcyl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byByZW1vdmUgdGFnIG9uIHNlcnZlciIpfWdldE9yQ3JlYXRlV3JhcHBlcihlKXtsZXQgdD10aGlzLnNtYXJ0U2VydmVDb25uZWN0aW9uV3JhcHBlcnMuZ2V0KGUuaWQpO3JldHVybiB0fHwodD1MRmEoZSksdGhpcy5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzLnNldChlLmlkLHQpKSx0fWFzeW5jIGZpbmRBbGxUYXJnZXRDb25uZWN0aW9ucyhlKXtpZih0aGlzLnNpZGUhPT0ic2VydmVyInx8IXRoaXMuc21hcnRTZXJ2ZVJlZil0aHJvdyBuZXcgRXJyb3IoImZpbmRBbGxUYXJnZXRDb25uZWN0aW9ucyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBzZXJ2ZXJzIik7bGV0IHQ9W107Zm9yKGxldCByIG9mIHRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9ucygpKXtsZXQgaT10aGlzLmdldE9yQ3JlYXRlV3JhcHBlcihyKTthd2FpdCBlKGkpJiZ0LnB1c2goaSl9cmV0dXJuIHR9YXN5bmMgZmluZFRhcmdldENvbm5lY3Rpb24oZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmluZEFsbFRhcmdldENvbm5lY3Rpb25zKGUpKVswXX1hc3luYyBmaW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyhlLHQpe2lmKHRoaXMuc2lkZSE9PSJzZXJ2ZXIifHwhdGhpcy5zbWFydFNlcnZlUmVmKXRocm93IG5ldyBFcnJvcigiZmluZEFsbFRhcmdldENvbm5lY3Rpb25zQnlUYWcgaXMgb25seSBhdmFpbGFibGUgb24gc2VydmVycyIpO2xldCByPXRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9uc0J5VGFnKGUpLGk9W107Zm9yKGxldCBvIG9mIHIpe2xldCBuPXRoaXMuZ2V0T3JDcmVhdGVXcmFwcGVyKG8pO2lmKHQhPT12b2lkIDApe2xldCBsPWF3YWl0IG4uZ2V0VGFnQnlJZChlKTtpZihkbC5zdHJpbmdpZnkobD8ucGF5bG9hZCkhPT1kbC5zdHJpbmdpZnkodCkpY29udGludWV9aS5wdXNoKG4pfXJldHVybiBpfWFzeW5jIGZpbmRUYXJnZXRDb25uZWN0aW9uQnlUYWcoZSx0KXtyZXR1cm4oYXdhaXQgdGhpcy5maW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyhlLHQpKVswXX19fSk7dmFyIFZjPXt9O2x0KFZjLHtUeXBlZFNvY2tldDooKT0+UGV0fSk7dmFyIHdmYT1mKCgpPT57eWZhKCl9KTt2YXIgSmUsbW89ZigoKT0+e2xlKCk7ekplKCk7cHBhKCk7d2ZhKCk7SmU9QXR9KTt2YXIgWHMsTWZhPWYoKCk9PntsZSgpO1hzPVhgCiAgOmhvc3QgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IGF1dG87CiAgICBtYXgtd2lkdGg6IDEyODBweDsKICAgIHBhZGRpbmc6IDE2cHggMTZweDsKICB9CmB9KTt2YXIga2ZhLEVldCwkRmEsUEcsU2ZhPWYoKCk9PntsZSgpO2tmYT1baWUoIm9iLXNlY3Rpb25oZWFkaW5nIildO1BHPWNsYXNzIGV4dGVuZHMoJEZhPXBlKXtzdGF0aWN7cyh0aGlzLCJPYlNlY3Rpb25IZWFkaW5nIil9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LWZhbWlseTogJ0NhbCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTEiLCIjZmZmIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvaDE+CiAgICBgfX07RWV0PUFyKCRGYSksUEc9eXQoRWV0LDAsIk9iU2VjdGlvbkhlYWRpbmciLGtmYSxQRyksVmUoRWV0LDEsUEcpfSk7dmFyIGUyPWYoKCk9PntNZmEoKTtTZmEoKX0pO3ZhciBoaT1mKCgpPT57aWgoKX0pO3ZhciB6ZmE9ZigoKT0+e30pO3ZhciBDZmE9ZigoKT0+e30pO3ZhciBfZmE9ZigoKT0+e30pO3ZhciBUZmE9ZigoKT0+e30pO3ZhciBMZmE9ZigoKT0+e30pO3ZhciAkZmE9ZigoKT0+e30pO3ZhciBERmEsRGZhPWYoKCk9PntERmE9e3N0YW5kYXJkOntob3VybHk6MCxkYWlseTo3LHdlZWtseTo0LG1vbnRobHk6MTJ9LGZyZXF1ZW50Ontob3VybHk6MjQsZGFpbHk6Nyx3ZWVrbHk6NCxtb250aGx5OjEyfSxtaW5pbWFsOntob3VybHk6MCxkYWlseTozLHdlZWtseToyLG1vbnRobHk6Nn0sbG9uZ3Rlcm06e2hvdXJseTowLGRhaWx5OjE0LHdlZWtseTo4LG1vbnRobHk6MjR9fX0pO3ZhciBBZmE9ZigoKT0+e30pO3ZhciBQZmE9ZigoKT0+e30pO3ZhciBJZXQ9e307bHQoSWV0LHtSRVRFTlRJT05fUFJFU0VUUzooKT0+REZhfSk7dmFyIG1pPWYoKCk9Pnt6ZmEoKTtDZmEoKTtfZmEoKTtUZmEoKTtMZmEoKTskZmEoKTtEZmEoKTtBZmEoKTtQZmEoKX0pO3ZhciBFZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBJZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBOZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBSZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBPZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBGZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBCZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBIZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBxZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBWZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBqZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBVZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBXZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBHZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBZZmE9ZigoKT0+e2hpKCk7bWkoKX0pO3ZhciBLZmE9e307dmFyIFpmYT1mKCgpPT57RWZhKCk7SWZhKCk7TmZhKCk7UmZhKCk7T2ZhKCk7RmZhKCk7QmZhKCk7SGZhKCk7cWZhKCk7VmZhKCk7amZhKCk7VWZhKCk7V2ZhKCk7R2ZhKCk7WWZhKCl9KTt2YXIgcDc9ZigoKT0+e2hpKCk7bWkoKTtaZmEoKX0pO2FzeW5jIGZ1bmN0aW9uIFBGYSgpe2lmKCFFNSl0cnl7RTU9YXdhaXQgVmMuVHlwZWRTb2NrZXQuY3JlYXRlQ2xpZW50KEVHLFZjLlR5cGVkU29ja2V0LnVzZVdpbmRvd0xvY2F0aW9uT3JpZ2luVXJsKCkpLGF3YWl0IEU1LnNldFRhZygicm9sZSIsIm9wc19kYXNoYm9hcmQiKSxjb25zb2xlLmxvZygiVHlwZWRTb2NrZXQgZGFzaGJvYXJkIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQiKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJUeXBlZFNvY2tldCBjb25uZWN0aW9uIGZhaWxlZDoiLGEpLEU1PW51bGx9fWFzeW5jIGZ1bmN0aW9uIEVGYSgpe2lmKEU1KXt0cnl7YXdhaXQgRTUuZGlzY29ubmVjdCgpfWNhdGNoe31FNT1udWxsfX12YXIgVWMscXIsdWwsUHQseWEsYTIsdDIsRnMsZ28saG4sRnQsSmZhLERpZSxoNyxBaWUsZTVhLFJldCx0NWEsYTVhLHI1YSxzNWEsaTVhLG81YSxQaWUsT2V0LEZldCxFaWUsbjVhLEJldCxJRyxORyxsNWEsYzVhLEhldCxxZXQsVmV0LElpZSxkNWEsTmllLHU1YSxwNWEsVThvLGY1YSxXOG8saDVhLEc4byxtNWEsamV0LFJHLGc1YSxiNWEsdjVhLHg1YSxZOG8sSzhvLFo4byxmNyxBRmEsTmV0LEU1LEVHLFhmYSxRZmEseTVhLHc1YSxSaWUsTTVhLEtuPWYoYXN5bmMoKT0+e21vKCk7cDcoKTtVYz1uZXcgSmUucGx1Z2lucy5zbWFydHN0YXRlLlNtYXJ0c3RhdGUscXI9YXdhaXQgVWMuZ2V0U3RhdGVQYXJ0KCJsb2dpbiIse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0sInBlcnNpc3RlbnQiKSx1bD1hd2FpdCBVYy5nZXRTdGF0ZVBhcnQoInN5c3RlbSIse3N0YXR1czpudWxsfSwic29mdCIpLFB0PWF3YWl0IFVjLmdldFN0YXRlUGFydCgic2VydmljZXMiLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119LCJzb2Z0IikseWE9YXdhaXQgVWMuZ2V0U3RhdGVQYXJ0KCJuZXR3b3JrIix7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119LCJzb2Z0IiksYTI9YXdhaXQgVWMuZ2V0U3RhdGVQYXJ0KCJyZWdpc3RyaWVzIix7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9LCJzb2Z0IiksdDI9YXdhaXQgVWMuZ2V0U3RhdGVQYXJ0KCJiYWNrdXBzIix7YmFja3VwczpbXSxzY2hlZHVsZXM6W119LCJzb2Z0IiksRnM9YXdhaXQgVWMuZ2V0U3RhdGVQYXJ0KCJzZXR0aW5ncyIse3NldHRpbmdzOm51bGwsYmFja3VwUGFzc3dvcmRDb25maWd1cmVkOiExLG1hbmFnZWREY1JvdXRlclN0YXR1czpudWxsfSwic29mdCIpLGdvPWF3YWl0IFVjLmdldFN0YXRlUGFydCgiYXBwU3RvcmUiLHthcHBzOltdLHVwZ3JhZGVhYmxlU2VydmljZXM6W10sdXBncmFkZU9wZXJhdGlvbnM6W119LCJzb2Z0IiksaG49YXdhaXQgVWMuZ2V0U3RhdGVQYXJ0KCJ1aSIse2FjdGl2ZVZpZXc6ImRhc2hib2FyZCIsYWN0aXZlU3VidmlldzpudWxsLGF1dG9SZWZyZXNoOiEwLHJlZnJlc2hJbnRlcnZhbDozZTR9KSxGdD1zKCgpPT4oe2lkZW50aXR5OnFyLmdldFN0YXRlKCkuaWRlbnRpdHl9KSwiZ2V0QWN0aW9uQ29udGV4dCIpLEpmYT1xci5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e3RyeXtyZXR1cm57aWRlbnRpdHk6KGF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ2luV2l0aFVzZXJuYW1lQW5kUGFzc3dvcmQiKS5maXJlKHt1c2VybmFtZTplLnVzZXJuYW1lLHBhc3N3b3JkOmUucGFzc3dvcmR9KSkuaWRlbnRpdHksaXNMb2dnZWRJbjohMH19Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkxvZ2luIGZhaWxlZDoiLHQpLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fX0pLERpZT1xci5jcmVhdGVBY3Rpb24oYXN5bmMgYT0+e2xldCBlPUZ0KCk7dHJ5e2UuaWRlbnRpdHkmJmF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ291dCIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJMb2dvdXQgZXJyb3I6Iix0KX1yZXR1cm57aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfX0pLGg3PXVsLmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7cmV0dXJue3N0YXR1czooYXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFN5c3RlbVN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KSkuc3RhdHVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHN5c3RlbSBzdGF0dXM6Iix0KSxhLmdldFN0YXRlKCl9fSksQWllPVB0LmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksc2VydmljZXM6ci5zZXJ2aWNlc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlczoiLHQpLGEuZ2V0U3RhdGUoKX19KSxlNWE9UHQuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXtsZXQgaT1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZTppLnNlcnZpY2V9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZToiLHIpLGEuZ2V0U3RhdGUoKX19KSxSZXQ9UHQuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZUNvbmZpZzplLmNvbmZpZ30pO2xldCBvPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLHNlcnZpY2VzOm8uc2VydmljZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIHNlcnZpY2U6IixyKSxhLmdldFN0YXRlKCl9fSksdDVhPVB0LmNyZWF0ZUFjdGlvbihhc3luYyhhLGUpPT57bGV0IHQ9RnQoKTt0cnl7YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZVNlcnZpY2UiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZX0pO2xldCBpPWEuZ2V0U3RhdGUoKTtyZXR1cm57Li4uaSxzZXJ2aWNlczppLnNlcnZpY2VzLmZpbHRlcihvPT5vLm5hbWUhPT1lLm5hbWUpLGN1cnJlbnRTZXJ2aWNlOm51bGx9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNlcnZpY2U6IixyKSxhLmdldFN0YXRlKCl9fSksYTVhPVB0LmNyZWF0ZUFjdGlvbihhc3luYyhhLGUpPT57bGV0IHQ9RnQoKTt0cnl7YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0U2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IG89YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksc2VydmljZXM6by5zZXJ2aWNlc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBzZXJ2aWNlOiIsciksYS5nZXRTdGF0ZSgpfX0pLHI1YT1QdC5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PUZ0KCk7dHJ5e2F3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdG9wU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IG89YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksc2VydmljZXM6by5zZXJ2aWNlc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIHNlcnZpY2U6IixyKSxhLmdldFN0YXRlKCl9fSksczVhPVB0LmNyZWF0ZUFjdGlvbihhc3luYyhhLGUpPT57bGV0IHQ9RnQoKTt0cnl7YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInJlc3RhcnRTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtsZXQgbz1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxzZXJ2aWNlczpvLnNlcnZpY2VzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlc3RhcnQgc2VydmljZToiLHIpLGEuZ2V0U3RhdGUoKX19KSxpNWE9UHQuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXtsZXQgaT1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZUxvZ3MiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZSx0YWlsOmUubGluZXN8fDIwMH0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksY3VycmVudFNlcnZpY2VMb2dzOmkubG9nc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIGxvZ3M6IixyKSxhLmdldFN0YXRlKCl9fSksbzVhPVB0LmNyZWF0ZUFjdGlvbihhc3luYyhhLGUpPT57bGV0IHQ9RnQoKTt0cnl7bGV0IGk9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VTdGF0cyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZVN0YXRzOmkuc3RhdHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZSBzdGF0czoiLHIpLGEuZ2V0U3RhdGUoKX19KSxQaWU9UHQuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGxhdGZvcm1TZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLHBsYXRmb3JtU2VydmljZXM6ci5wbGF0Zm9ybVNlcnZpY2VzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHBsYXRmb3JtIHNlcnZpY2VzOiIsdCksYS5nZXRTdGF0ZSgpfX0pLE9ldD1QdC5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PUZ0KCk7dHJ5e2F3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydFBsYXRmb3JtU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO2xldCBvPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczpvLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RhcnQgcGxhdGZvcm0gc2VydmljZToiLHIpLGEuZ2V0U3RhdGUoKX19KSxGZXQ9UHQuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RvcFBsYXRmb3JtU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO2xldCBvPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczpvLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RvcCBwbGF0Zm9ybSBzZXJ2aWNlOiIsciksYS5nZXRTdGF0ZSgpfX0pLEVpZT1QdC5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PUZ0KCk7dHJ5e2xldCBpPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VTdGF0cyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOmkuc3RhdHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGxhdGZvcm0gc2VydmljZSBzdGF0czoiLHIpLHsuLi5hLmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGx9fX0pLG41YT1QdC5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PUZ0KCk7dHJ5e2xldCBpPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VMb2dzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlLHRhaWw6ZS50YWlsfHwxMDB9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOmkubG9nc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBwbGF0Zm9ybSBzZXJ2aWNlIGxvZ3M6IixyKSx7Li4uYS5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOltdfX19KSxCZXQ9eWEuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0TmV0d29ya1RhcmdldHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSx0YXJnZXRzOnIudGFyZ2V0c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBuZXR3b3JrIHRhcmdldHM6Iix0KSxhLmdldFN0YXRlKCl9fSksSUc9eWEuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0TmV0d29ya1N0YXRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksc3RhdHM6ci5zdGF0c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBuZXR3b3JrIHN0YXRzOiIsdCksYS5nZXRTdGF0ZSgpfX0pLE5HPXlhLmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFRyYWZmaWNTdGF0cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLHRyYWZmaWNTdGF0czpyLnN0YXRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHRyYWZmaWMgc3RhdHM6Iix0KSxhLmdldFN0YXRlKCl9fSksbDVhPXlhLmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldERuc1JlY29yZHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxkbnNSZWNvcmRzOnIucmVjb3Jkc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBETlMgcmVjb3JkczoiLHQpLGEuZ2V0U3RhdGUoKX19KSxjNWE9eWEuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3luY0RucyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtsZXQgaT1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0RG5zUmVjb3JkcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLGRuc1JlY29yZHM6aS5yZWNvcmRzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN5bmMgRE5TOiIsdCksYS5nZXRTdGF0ZSgpfX0pLEhldD15YS5jcmVhdGVBY3Rpb24oYXN5bmMgYT0+e2xldCBlPUZ0KCk7dHJ5e2xldCByPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXREb21haW5zIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksZG9tYWluczpyLmRvbWFpbnN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggZG9tYWluczoiLHQpLGEuZ2V0U3RhdGUoKX19KSxxZXQ9eWEuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0R2F0ZXdheURvbWFpbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxnYXRld2F5RG9tYWluczpyLmRvbWFpbnN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggZ2F0ZXdheSBkb21haW5zOiIsdCksYS5nZXRTdGF0ZSgpfX0pLFZldD15YS5jcmVhdGVBY3Rpb24oYXN5bmMgYT0+e2xldCBlPUZ0KCk7dHJ5e2xldCByPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRHYXRld2F5RG5zUmVjb3JkcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLGdhdGV3YXlEbnNSZWNvcmRzOnIucmVjb3Jkc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBnYXRld2F5IEROUyByZWNvcmRzOiIsdCksYS5nZXRTdGF0ZSgpfX0pLElpZT15YS5jcmVhdGVBY3Rpb24oYXN5bmMgYT0+e2xldCBlPUZ0KCk7dHJ5e2xldCByPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJsaXN0Q2VydGlmaWNhdGVzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksY2VydGlmaWNhdGVzOnIuY2VydGlmaWNhdGVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGNlcnRpZmljYXRlczoiLHQpLGEuZ2V0U3RhdGUoKX19KSxkNWE9eWEuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmVuZXdDZXJ0aWZpY2F0ZSIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksZG9tYWluOmUuZG9tYWlufSk7bGV0IG89YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImxpc3RDZXJ0aWZpY2F0ZXMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxjZXJ0aWZpY2F0ZXM6by5jZXJ0aWZpY2F0ZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVuZXcgY2VydGlmaWNhdGU6IixyKSxhLmdldFN0YXRlKCl9fSksTmllPWEyLmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFJlZ2lzdHJ5VG9rZW5zIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksdG9rZW5zOnIudG9rZW5zfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHJlZ2lzdHJ5IHRva2VuczoiLHQpLGEuZ2V0U3RhdGUoKX19KSx1NWE9YTIuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlUmVnaXN0cnlUb2tlbiIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksdG9rZW46ZS50b2tlbn0pO2xldCBvPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRSZWdpc3RyeVRva2VucyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLHRva2VuczpvLnRva2Vuc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgcmVnaXN0cnkgdG9rZW46IixyKSxhLmdldFN0YXRlKCl9fSkscDVhPWEyLmNyZWF0ZUFjdGlvbihhc3luYyhhLGUpPT57bGV0IHQ9RnQoKTt0cnl7YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZVJlZ2lzdHJ5VG9rZW4iKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHRva2VuSWQ6ZS50b2tlbklkfSk7bGV0IGk9YS5nZXRTdGF0ZSgpO3JldHVybnsuLi5pLHRva2VuczppLnRva2Vucy5maWx0ZXIobz0+by5pZCE9PWUudG9rZW5JZCl9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHJlZ2lzdHJ5IHRva2VuOiIsciksYS5nZXRTdGF0ZSgpfX0pLFU4bz10Mi5jcmVhdGVBY3Rpb24oYXN5bmMgYT0+e2xldCBlPUZ0KCk7dHJ5e2xldCByPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRCYWNrdXBzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksYmFja3VwczpyLmJhY2t1cHN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggYmFja3VwczoiLHQpLGEuZ2V0U3RhdGUoKX19KSxmNWE9dDIuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlQmFja3VwIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxiYWNrdXBJZDplLmJhY2t1cElkfSk7bGV0IGk9YS5nZXRTdGF0ZSgpO3JldHVybnsuLi5pLGJhY2t1cHM6aS5iYWNrdXBzLmZpbHRlcihvPT5vLmlkIT09ZS5iYWNrdXBJZCl9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGJhY2t1cDoiLHIpLGEuZ2V0U3RhdGUoKX19KSxXOG89dDIuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwU2NoZWR1bGVzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksc2NoZWR1bGVzOnIuc2NoZWR1bGVzfX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNjaGVkdWxlczoiLHQpLGEuZ2V0U3RhdGUoKX19KSxoNWE9dDIuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNjaGVkdWxlQ29uZmlnOmUuY29uZmlnfSk7bGV0IG89YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cFNjaGVkdWxlcyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLHNjaGVkdWxlczpvLnNjaGVkdWxlc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2NoZWR1bGU6IixyKSxhLmdldFN0YXRlKCl9fSksRzhvPXQyLmNyZWF0ZUFjdGlvbihhc3luYyhhLGUpPT57bGV0IHQ9RnQoKTt0cnl7YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZUJhY2t1cFNjaGVkdWxlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzY2hlZHVsZUlkOmUuc2NoZWR1bGVJZH0pO2xldCBpPWEuZ2V0U3RhdGUoKTtyZXR1cm57Li4uaSxzY2hlZHVsZXM6aS5zY2hlZHVsZXMuZmlsdGVyKG89Pm8uaWQhPT1lLnNjaGVkdWxlSWQpfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGRlbGV0ZSBzY2hlZHVsZToiLHIpLGEuZ2V0U3RhdGUoKX19KSxtNWE9dDIuY3JlYXRlQWN0aW9uKGFzeW5jKGEsZSk9PntsZXQgdD1GdCgpO3RyeXthd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwidHJpZ2dlckJhY2t1cFNjaGVkdWxlIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eSxzY2hlZHVsZUlkOmUuc2NoZWR1bGVJZH0pO2xldCBvPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRCYWNrdXBzIikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pO3JldHVybnsuLi5hLmdldFN0YXRlKCksYmFja3VwczpvLmJhY2t1cHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdHJpZ2dlciBzY2hlZHVsZToiLHIpLGEuZ2V0U3RhdGUoKX19KSxqZXQ9RnMuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXRbdCxyLGldPWF3YWl0IFByb21pc2UuYWxsKFtuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2V0dGluZ3MiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSksbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cFBhc3N3b3JkU3RhdHVzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pLG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRNYW5hZ2VkRGNSb3V0ZXJTdGF0dXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSldKTtyZXR1cm57c2V0dGluZ3M6dC5zZXR0aW5ncyxiYWNrdXBQYXNzd29yZENvbmZpZ3VyZWQ6ci5zdGF0dXMuaXNDb25maWd1cmVkLG1hbmFnZWREY1JvdXRlclN0YXR1czppLnN0YXR1c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXR0aW5nczoiLHQpLGEuZ2V0U3RhdGUoKX19KSxSRz1Gcy5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PUZ0KCk7dHJ5e2xldCBpPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ1cGRhdGVTZXR0aW5ncyIpLmZpcmUoe2lkZW50aXR5OnQuaWRlbnRpdHksc2V0dGluZ3M6ZS5zZXR0aW5nc30pO3JldHVybnsuLi5hLmdldFN0YXRlKCksc2V0dGluZ3M6aS5zZXR0aW5nc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGRhdGUgc2V0dGluZ3M6IixyKSxhLmdldFN0YXRlKCl9fSksZzVhPUZzLmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7bGV0IHQ9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE1hbmFnZWREY1JvdXRlclN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czp0LnN0YXR1c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBtYW5hZ2VkIGRjcm91dGVyIHN0YXR1czoiLHQpLGEuZ2V0U3RhdGUoKX19KSxiNWE9RnMuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgdD1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RhcnRNYW5hZ2VkRGNSb3V0ZXIiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6dC5zdGF0dXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RhcnQgbWFuYWdlZCBkY3JvdXRlcjoiLHQpLGEuZ2V0U3RhdGUoKX19KSx2NWE9RnMuY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgdD1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RvcE1hbmFnZWREY1JvdXRlciIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4uYS5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czp0LnN0YXR1c319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIG1hbmFnZWQgZGNyb3V0ZXI6Iix0KSxhLmdldFN0YXRlKCl9fSkseDVhPUZzLmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7bGV0IHQ9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInJlc3RhcnRNYW5hZ2VkRGNSb3V0ZXIiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6dC5zdGF0dXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVzdGFydCBtYW5hZ2VkIGRjcm91dGVyOiIsdCksYS5nZXRTdGF0ZSgpfX0pLFk4bz1Gcy5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PUZ0KCk7dHJ5e3JldHVybiBhd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic2V0QmFja3VwUGFzc3dvcmQiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHBhc3N3b3JkOmUucGFzc3dvcmR9KSx7Li4uYS5nZXRTdGF0ZSgpLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDohMH19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzZXQgYmFja3VwIHBhc3N3b3JkOiIsciksYS5nZXRTdGF0ZSgpfX0pLEs4bz1obi5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PWUudmlldy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzKy9nLCItIikscj1lLnN1YnZpZXc/ZS5zdWJ2aWV3LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKTpudWxsO3JldHVybnsuLi5hLmdldFN0YXRlKCksYWN0aXZlVmlldzp0LGFjdGl2ZVN1YnZpZXc6cn19KSxaOG89aG4uY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1hLmdldFN0YXRlKCk7cmV0dXJuey4uLmUsYXV0b1JlZnJlc2g6IWUuYXV0b1JlZnJlc2h9fSksZjc9bnVsbCxBRmE9cyhhc3luYygpPT57aWYocXIuZ2V0U3RhdGUoKS5pc0xvZ2dlZEluKXRyeXthd2FpdCBQcm9taXNlLmFsbChbdWwuZGlzcGF0Y2hBY3Rpb24oaDcsbnVsbCkseWEuZGlzcGF0Y2hBY3Rpb24oTkcsbnVsbCldKX1jYXRjaHt9fSwiZGlzcGF0Y2hDb21iaW5lZFJlZnJlc2hBY3Rpb24iKSxOZXQ9cygoKT0+e2xldCBhPWhuLmdldFN0YXRlKCksZT1xci5nZXRTdGF0ZSgpO2EuYXV0b1JlZnJlc2gmJmUuaXNMb2dnZWRJbj8oZjcmJmNsZWFySW50ZXJ2YWwoZjcpLGY3PXNldEludGVydmFsKCgpPT57QUZhKCl9LGEucmVmcmVzaEludGVydmFsKSk6ZjcmJihjbGVhckludGVydmFsKGY3KSxmNz1udWxsKX0sInN0YXJ0QXV0b1JlZnJlc2giKTtobi5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKCgpPT5OZXQoKSkscXIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZSgoKT0+TmV0KCkpLE5ldCgpO0U1PW51bGwsRUc9bmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUm91dGVyLFhmYT1zKChhLGUpPT57bGV0IHQ9YS5maW5kSW5kZXgoaT0+aS5uYW1lPT09ZS5uYW1lKTtpZih0PT09LTEpcmV0dXJuWy4uLmEsZV07bGV0IHI9Wy4uLmFdO3JldHVybiByW3RdPWUscn0sInVwc2VydFNlcnZpY2UiKSxRZmE9cygoYSxlKT0+KGEuZmluZEluZGV4KGk9PmkuaWQ9PT1lLmlkKT09PS0xP1tlLC4uLmFdOmEubWFwKGk9PmkuaWQ9PT1lLmlkP2U6aSkpLnNvcnQoKGksbyk9Pm8uc3RhcnRlZEF0LWkuc3RhcnRlZEF0KS5zbGljZSgwLDI1KSwidXBzZXJ0VXBncmFkZU9wZXJhdGlvbiIpO0VHLmFkZFR5cGVkSGFuZGxlcihuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoU2VydmljZVVwZGF0ZSIsYXN5bmMgYT0+e2xldCBlPVB0LmdldFN0YXRlKCksdD1lLnNlcnZpY2VzLHI9ZS5jdXJyZW50U2VydmljZSxpPWUuY3VycmVudFNlcnZpY2VMb2dzLG89ZS5jdXJyZW50U2VydmljZVN0YXRzO3JldHVybiBhLmFjdGlvbj09PSJkZWxldGVkIj8odD10LmZpbHRlcihuPT5uLm5hbWUhPT1hLnNlcnZpY2VOYW1lKSxyPy5uYW1lPT09YS5zZXJ2aWNlTmFtZSYmKHI9bnVsbCxpPVtdLG89bnVsbCkpOmEuc2VydmljZSYmKHQ9WGZhKHQsYS5zZXJ2aWNlKSxyPy5uYW1lPT09YS5zZXJ2aWNlLm5hbWUmJihyPWEuc2VydmljZSkpLFB0LnNldFN0YXRlKHsuLi5lLHNlcnZpY2VzOnQsY3VycmVudFNlcnZpY2U6cixjdXJyZW50U2VydmljZUxvZ3M6aSxjdXJyZW50U2VydmljZVN0YXRzOm99KSx7fX0pKSxFRy5hZGRUeXBlZEhhbmRsZXIobmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaEFwcFN0b3JlVXBncmFkZVByb2dyZXNzIixhc3luYyBhPT57bGV0IGU9Z28uZ2V0U3RhdGUoKTtpZihnby5zZXRTdGF0ZSh7Li4uZSx1cGdyYWRlT3BlcmF0aW9uczpRZmEoZS51cGdyYWRlT3BlcmF0aW9ucyxhLm9wZXJhdGlvbiksdXBncmFkZWFibGVTZXJ2aWNlczphLm9wZXJhdGlvbi5zdGF0dXM9PT0ic3VjY2VzcyI/ZS51cGdyYWRlYWJsZVNlcnZpY2VzLmZpbHRlcih0PT50LnNlcnZpY2VOYW1lIT09YS5vcGVyYXRpb24uc2VydmljZU5hbWUpOmUudXBncmFkZWFibGVTZXJ2aWNlc30pLGEub3BlcmF0aW9uLnNlcnZpY2Upe2xldCB0PVB0LmdldFN0YXRlKCk7UHQuc2V0U3RhdGUoey4uLnQsc2VydmljZXM6WGZhKHQuc2VydmljZXMsYS5vcGVyYXRpb24uc2VydmljZSksY3VycmVudFNlcnZpY2U6dC5jdXJyZW50U2VydmljZT8ubmFtZT09PWEub3BlcmF0aW9uLnNlcnZpY2UubmFtZT9hLm9wZXJhdGlvbi5zZXJ2aWNlOnQuY3VycmVudFNlcnZpY2V9KX1yZXR1cm57fX0pKSxFRy5hZGRUeXBlZEhhbmRsZXIobmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaFBsYXRmb3JtU2VydmljZUxvZyIsYXN5bmMgYT0+e2xldCBlPVB0LmdldFN0YXRlKCksdD17aWQ6ZS5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9ncy5sZW5ndGgsc2VydmljZUlkOjAsdGltZXN0YW1wOm5ldyBEYXRlKGEuZW50cnkudGltZXN0YW1wKS5nZXRUaW1lKCksbWVzc2FnZTphLmVudHJ5Lm1lc3NhZ2UsbGV2ZWw6YS5lbnRyeS5sZXZlbCxzb3VyY2U6InN0ZG91dCJ9LHI9Wy4uLmUuY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3MsdF07cmV0dXJuIHIubGVuZ3RoPjJlMyYmci5zcGxpY2UoMCxyLmxlbmd0aC0yZTMpLFB0LnNldFN0YXRlKHsuLi5lLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOnJ9KSx7fX0pKSxFRy5hZGRUeXBlZEhhbmRsZXIobmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaFNlcnZpY2VMb2ciLGFzeW5jIGE9PntsZXQgZT1QdC5nZXRTdGF0ZSgpO2lmKCFlLmN1cnJlbnRTZXJ2aWNlfHxlLmN1cnJlbnRTZXJ2aWNlLm5hbWUhPT1hLnNlcnZpY2VOYW1lKXJldHVybnt9O2xldCB0PXtpZDplLmN1cnJlbnRTZXJ2aWNlTG9ncy5sZW5ndGgsc2VydmljZUlkOjAsdGltZXN0YW1wOm5ldyBEYXRlKGEuZW50cnkudGltZXN0YW1wKS5nZXRUaW1lKCksbWVzc2FnZTphLmVudHJ5Lm1lc3NhZ2UsbGV2ZWw6YS5lbnRyeS5sZXZlbCxzb3VyY2U6InN0ZG91dCJ9LHI9Wy4uLmUuY3VycmVudFNlcnZpY2VMb2dzLHRdO3JldHVybiByLmxlbmd0aD4yZTMmJnIuc3BsaWNlKDAsci5sZW5ndGgtMmUzKSxQdC5zZXRTdGF0ZSh7Li4uZSxjdXJyZW50U2VydmljZUxvZ3M6cn0pLHt9fSkpO3MoUEZhLCJjb25uZWN0U29ja2V0Iik7cyhFRmEsImRpc2Nvbm5lY3RTb2NrZXQiKTt5NWE9Z28uY3JlYXRlQWN0aW9uKGFzeW5jIGE9PntsZXQgZT1GdCgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QXBwU3RvcmVUZW1wbGF0ZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSxhcHBzOnIuYXBwc319Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBhcHAgdGVtcGxhdGVzOiIsdCksYS5nZXRTdGF0ZSgpfX0pLHc1YT1nby5jcmVhdGVBY3Rpb24oYXN5bmMgYT0+e2xldCBlPUZ0KCk7dHJ5e2xldCByPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRVcGdyYWRlYWJsZUFwcFN0b3JlU2VydmljZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSx1cGdyYWRlYWJsZVNlcnZpY2VzOnIuc2VydmljZXN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdXBncmFkZWFibGUgc2VydmljZXM6Iix0KSxhLmdldFN0YXRlKCl9fSksUmllPWdvLmNyZWF0ZUFjdGlvbihhc3luYyBhPT57bGV0IGU9RnQoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEFwcFN0b3JlVXBncmFkZU9wZXJhdGlvbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLmEuZ2V0U3RhdGUoKSx1cGdyYWRlT3BlcmF0aW9uczpyLm9wZXJhdGlvbnN9fWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdXBncmFkZSBvcGVyYXRpb25zOiIsdCksYS5nZXRTdGF0ZSgpfX0pLE01YT1nby5jcmVhdGVBY3Rpb24oYXN5bmMoYSxlKT0+e2xldCB0PUZ0KCk7dHJ5e2xldCBpPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydEFwcFN0b3JlU2VydmljZVVwZ3JhZGUiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5LHNlcnZpY2VOYW1lOmUuc2VydmljZU5hbWUsdGFyZ2V0VmVyc2lvbjplLnRhcmdldFZlcnNpb259KSxvPWEuZ2V0U3RhdGUoKTtyZXR1cm57Li4ubyx1cGdyYWRlT3BlcmF0aW9uczpRZmEoby51cGdyYWRlT3BlcmF0aW9ucyxpLm9wZXJhdGlvbil9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBncmFkZSBzZXJ2aWNlOiIsciksYS5nZXRTdGF0ZSgpfX0pO3FyLnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e2EuaXNMb2dnZWRJbj9QRmEoKTpFRmEoKX0pfSk7ZnVuY3Rpb24gUzVhKGEpe3JldHVybiBSRmEuaW5jbHVkZXMoYSl9ZnVuY3Rpb24gejVhKGEsZSl7cmV0dXJuIG03W2FdPy5pbmNsdWRlcyhlKT8/ITF9dmFyIElGYSxrNWEsbTcsVWV0LE5GYSxSRmEsV2V0LGJvLEk1PWYoYXN5bmMoKT0+e21vKCk7YXdhaXQgS24oKTtJRmE9SmUucGx1Z2lucy5zbWFydHJvdXRlci5TbWFydFJvdXRlcixrNWE9WyJkYXNoYm9hcmQiLCJzZXR0aW5ncyJdLG03PXthcHBzOlsiYXBwLXN0b3JlIiwic2VydmljZXMiXSxuZXR3b3JrOlsicHJveHkiLCJkb21haW5zIiwiZG5zLXJlY29yZHMiXSxyZWdpc3RyeTpbInJlZ2lzdHJpZXMiLCJ0b2tlbnMiXX0sVWV0PXthcHBzOiJhcHAtc3RvcmUiLG5ldHdvcms6InByb3h5IixyZWdpc3RyeToicmVnaXN0cmllcyJ9LE5GYT17ImFwcC1zdG9yZSI6e3ZpZXc6ImFwcHMiLHN1YnZpZXc6ImFwcC1zdG9yZSJ9LHNlcnZpY2VzOnt2aWV3OiJhcHBzIixzdWJ2aWV3OiJzZXJ2aWNlcyJ9LHByb3h5Ont2aWV3OiJuZXR3b3JrIixzdWJ2aWV3OiJwcm94eSJ9LGRvbWFpbnM6e3ZpZXc6Im5ldHdvcmsiLHN1YnZpZXc6ImRvbWFpbnMifSwiZG5zLXJlY29yZHMiOnt2aWV3OiJuZXR3b3JrIixzdWJ2aWV3OiJkbnMtcmVjb3JkcyJ9LHJlZ2lzdHJpZXM6e3ZpZXc6InJlZ2lzdHJ5IixzdWJ2aWV3OiJyZWdpc3RyaWVzIn0sdG9rZW5zOnt2aWV3OiJyZWdpc3RyeSIsc3VidmlldzoidG9rZW5zIn19LFJGYT1bLi4uazVhLC4uLk9iamVjdC5rZXlzKG03KV07cyhTNWEsImlzVmFsaWRWaWV3Iik7cyh6NWEsImlzVmFsaWRTdWJ2aWV3Iik7V2V0PWNsYXNze3N0YXRpY3tzKHRoaXMsIkFwcFJvdXRlciIpfXJvdXRlcjtpbml0aWFsaXplZD0hMTtzdXBwcmVzc1N0YXRlVXBkYXRlPSExO2NvbnN0cnVjdG9yKCl7dGhpcy5yb3V0ZXI9bmV3IElGYSh7ZGVidWc6ITF9KX1pbml0KCl7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMuc2V0dXBSb3V0ZXMoKSx0aGlzLnNldHVwU3RhdGVTeW5jKCksdGhpcy5oYW5kbGVJbml0aWFsUm91dGUoKSx0aGlzLmluaXRpYWxpemVkPSEwKX1zZXR1cFJvdXRlcygpe2ZvcihsZXQgZSBvZiBrNWEpdGhpcy5yb3V0ZXIub24oYC8ke2V9YCxhc3luYygpPT57dGhpcy51cGRhdGVWaWV3U3RhdGUoZSxudWxsKX0pO2ZvcihsZXQgZSBvZiBPYmplY3Qua2V5cyhtNykpe3RoaXMucm91dGVyLm9uKGAvJHtlfWAsYXN5bmMoKT0+e3RoaXMubmF2aWdhdGVUbyhgLyR7ZX0vJHtVZXRbZV19YCl9KTtmb3IobGV0IHQgb2YgbTdbZV0pdGhpcy5yb3V0ZXIub24oYC8ke2V9LyR7dH1gLGFzeW5jKCk9Pnt0aGlzLnVwZGF0ZVZpZXdTdGF0ZShlLHQpfSl9dGhpcy5yb3V0ZXIub24oIi8iLGFzeW5jKCk9Pnt0aGlzLm5hdmlnYXRlVG8oIi9kYXNoYm9hcmQiKX0pfXNldHVwU3RhdGVTeW5jKCl7aG4uc2VsZWN0KCkuc3Vic2NyaWJlKGU9PntpZih0aGlzLnN1cHByZXNzU3RhdGVVcGRhdGUpcmV0dXJuO2xldCB0PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxyPWUuYWN0aXZlU3Vidmlldz9gLyR7ZS5hY3RpdmVWaWV3fS8ke2UuYWN0aXZlU3Vidmlld31gOmAvJHtlLmFjdGl2ZVZpZXd9YDt0IT09ciYmKHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMCx0aGlzLnJvdXRlci5wdXNoVXJsKHIpLHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMSl9KX1oYW5kbGVJbml0aWFsUm91dGUoKXtsZXQgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7aWYoIWV8fGU9PT0iLyIpe3RoaXMucm91dGVyLnB1c2hVcmwoIi9kYXNoYm9hcmQiKTtyZXR1cm59bGV0IHQ9ZS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKSxyPXRbMF0saT10WzFdO2lmKCFTNWEocikpe3RoaXMucm91dGVyLnB1c2hVcmwoIi9kYXNoYm9hcmQiKTtyZXR1cm59bTdbcl0/aSYmejVhKHIsaSk/dGhpcy51cGRhdGVWaWV3U3RhdGUocixpKTp0aGlzLnJvdXRlci5wdXNoVXJsKGAvJHtyfS8ke1VldFtyXX1gKTp0aGlzLnVwZGF0ZVZpZXdTdGF0ZShyLG51bGwpfXVwZGF0ZVZpZXdTdGF0ZShlLHQpe3RoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMDtsZXQgcj1obi5nZXRTdGF0ZSgpOyhyLmFjdGl2ZVZpZXchPT1lfHxyLmFjdGl2ZVN1YnZpZXchPT10KSYmaG4uc2V0U3RhdGUoey4uLnIsYWN0aXZlVmlldzplLGFjdGl2ZVN1YnZpZXc6dH0pLHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMX1uYXZpZ2F0ZVRvKGUpe3RoaXMucm91dGVyLnB1c2hVcmwoZSl9bmF2aWdhdGVUb1ZpZXcoZSx0KXtsZXQgcj1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKSxpPXQ/LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKTtpZighUzVhKHIpKXtsZXQgbz1ORmFbcl07aWYobyl7dGhpcy5uYXZpZ2F0ZVRvVmlldyhvLnZpZXcsby5zdWJ2aWV3KTtyZXR1cm59dGhpcy5uYXZpZ2F0ZVRvKCIvZGFzaGJvYXJkIik7cmV0dXJufWkmJno1YShyLGkpP3RoaXMubmF2aWdhdGVUbyhgLyR7cn0vJHtpfWApOm03W3JdP3RoaXMubmF2aWdhdGVUbyhgLyR7cn0vJHtVZXRbcl19YCk6dGhpcy5uYXZpZ2F0ZVRvKGAvJHtyfWApfWdldEN1cnJlbnRWaWV3KCl7bGV0IGU9aG4uZ2V0U3RhdGUoKTtyZXR1cm4gZS5hY3RpdmVTdWJ2aWV3P2Ake2UuYWN0aXZlVmlld30vJHtlLmFjdGl2ZVN1YnZpZXd9YDplLmFjdGl2ZVZpZXd9ZGVzdHJveSgpe3RoaXMucm91dGVyLmRlc3Ryb3koKSx0aGlzLmluaXRpYWxpemVkPSExfX0sYm89bmV3IFdldH0pO3ZhciBQNWE9e307bHQoUDVhLHtPYlZpZXdEYXNoYm9hcmQ6KCk9PlpldH0pO2Z1bmN0aW9uIF81YShhKXtyZXR1cm4hYXx8YT09PTA/MDpNYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKGEpL01hdGgubG9nKDEwMjQpKSxDNWEubGVuZ3RoLTEpfWZ1bmN0aW9uIE9pZShhLGUpe2lmKCghYXx8YT09PTApJiZlPT09dm9pZCAwKXJldHVybiIwIEIiO2xldCB0PWU/P181YShhKTtyZXR1cm5gJHsoYS9NYXRoLnBvdygxMDI0LHQpKS50b0ZpeGVkKDEpfSAke0M1YVt0XX1gfXZhciBUNWEsTDVhLCQ1YSxENWEsQTVhLFpuLEdldCxZZXQsS2V0LEM1YSxwbCxaZXQsWGV0PWYoYXN5bmMoKT0+e21vKCk7ZTIoKTthd2FpdCBLbigpO2F3YWl0IEk1KCk7bGUoKTtDNWE9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiXTtzKF81YSwiZ2V0Qnl0ZVVuaXRJbmRleCIpO3MoT2llLCJmb3JtYXRCeXRlcyIpLEE1YT1baWUoIm9iLXZpZXctZGFzaGJvYXJkIildO3BsPWNsYXNzIHBsIGV4dGVuZHMoRDVhPXBlLCQ1YT1bSygpXSxMNWE9W0soKV0sVDVhPVtLKCldLEQ1YSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsR2V0LFZlKFpuLDgsdGhpcyx7c3RhdHVzOm51bGx9KSksVmUoWm4sMTEsdGhpcyk7UnQodGhpcyxZZXQsVmUoWm4sMTIsdGhpcyx7c2VydmljZXM6W10sY3VycmVudFNlcnZpY2U6bnVsbCxjdXJyZW50U2VydmljZUxvZ3M6W10sY3VycmVudFNlcnZpY2VTdGF0czpudWxsLHBsYXRmb3JtU2VydmljZXM6W10sY3VycmVudFBsYXRmb3JtU2VydmljZTpudWxsLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VTdGF0czpudWxsLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOltdfSkpLFZlKFpuLDE1LHRoaXMpO1J0KHRoaXMsS2V0LFZlKFpuLDE2LHRoaXMse3RhcmdldHM6W10sc3RhdHM6bnVsbCx0cmFmZmljU3RhdHM6bnVsbCxkbnNSZWNvcmRzOltdLGRvbWFpbnM6W10sZ2F0ZXdheURvbWFpbnM6W10sZ2F0ZXdheURuc1JlY29yZHM6W10sY2VydGlmaWNhdGVzOltdfSkpLFZlKFpuLDE5LHRoaXMpO2xldCB0PXVsLnNlbGVjdChvPT5vKS5zdWJzY3JpYmUobz0+e3RoaXMuc3lzdGVtU3RhdGU9b30pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godCk7bGV0IHI9UHQuc2VsZWN0KG89Pm8pLnN1YnNjcmliZShvPT57dGhpcy5zZXJ2aWNlc1N0YXRlPW99KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBpPXlhLnNlbGVjdChvPT5vKS5zdWJzY3JpYmUobz0+e3RoaXMubmV0d29ya1N0YXRlPW99KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbdWwuZGlzcGF0Y2hBY3Rpb24oaDcsbnVsbCksUHQuZGlzcGF0Y2hBY3Rpb24oQWllLG51bGwpLFB0LmRpc3BhdGNoQWN0aW9uKFBpZSxudWxsKSx5YS5kaXNwYXRjaEFjdGlvbihJRyxudWxsKSx5YS5kaXNwYXRjaEFjdGlvbihORyxudWxsKSx5YS5kaXNwYXRjaEFjdGlvbihJaWUsbnVsbCldKX1yZW5kZXIoKXtsZXQgdD10aGlzLnN5c3RlbVN0YXRlLnN0YXR1cyxyPXRoaXMuc2VydmljZXNTdGF0ZS5zZXJ2aWNlcyxpPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLG89dGhpcy5uZXR3b3JrU3RhdGUuc3RhdHMsbj10aGlzLm5ldHdvcmtTdGF0ZS50cmFmZmljU3RhdHMsbD10aGlzLm5ldHdvcmtTdGF0ZS5jZXJ0aWZpY2F0ZXMsZD1uPy5zdGF0dXNDb3VudHN8fHt9LGM9ci5maWx0ZXIoZz0+Zy5zdGF0dXM9PT0icnVubmluZyIpLmxlbmd0aCxwPXIuZmlsdGVyKGc9Pmcuc3RhdHVzPT09InN0b3BwZWQiKS5sZW5ndGgsdT1fNWEodD8uZG9ja2VyPy5tZW1vcnlUb3RhbHx8dD8uZG9ja2VyPy5tZW1vcnlVc2FnZXx8MCksbT1sLmZpbHRlcihnPT5nLmlzVmFsaWQpLmxlbmd0aCx2PWwuZmlsdGVyKGc9PmcuaXNWYWxpZCYmZy5leHBpcmVzQXQmJmcuZXhwaXJlc0F0LURhdGUubm93KCk8NzIwKjYwKjYwKjFlMykubGVuZ3RoLHg9bC5maWx0ZXIoZz0+IWcuaXNWYWxpZCkubGVuZ3RoLGI9e2NsdXN0ZXI6e3RvdGFsU2VydmljZXM6ci5sZW5ndGgscnVubmluZzpjLHN0b3BwZWQ6cCxkb2NrZXJTdGF0dXM6dD8uZG9ja2VyPy5ydW5uaW5nPyJydW5uaW5nIjoic3RvcHBlZCJ9LHJlc291cmNlVXNhZ2U6e2NwdTp0Py5kb2NrZXI/LmNwdVVzYWdlfHwwLG1lbW9yeVVzZWQ6T2llKHQ/LmRvY2tlcj8ubWVtb3J5VXNhZ2V8fDAsdSksbWVtb3J5VG90YWw6T2llKHQ/LmRvY2tlcj8ubWVtb3J5VG90YWx8fDAsdSksbmV0d29ya0luOk9pZSh0Py5kb2NrZXI/Lm5ldHdvcmtJbnx8MCksbmV0d29ya091dDpPaWUodD8uZG9ja2VyPy5uZXR3b3JrT3V0fHwwKSx0b3BDb25zdW1lcnM6W119LHBsYXRmb3JtU2VydmljZXM6aS5maWx0ZXIoZz0+Zy5zdGF0dXM9PT0icnVubmluZyJ8fGcuc3RhdHVzPT09InN0YXJ0aW5nInx8Zy5zdGF0dXM9PT0ic3RvcHBpbmcifHxnLmlzQ29yZSkubWFwKGc9Pih7bmFtZTpnLmRpc3BsYXlOYW1lLHN0YXR1czpnLnN0YXR1cz09PSJydW5uaW5nIj8iUnVubmluZyI6Zy5zdGF0dXM9PT0ic3RhcnRpbmciPyJTdGFydGluZy4uLiI6Zy5zdGF0dXM9PT0ic3RvcHBpbmciPyJTdG9wcGluZy4uLiI6IlN0b3BwZWQiLHJ1bm5pbmc6Zy5zdGF0dXM9PT0icnVubmluZyJ9KSksdHJhZmZpYzp7cmVxdWVzdHM6bj8ucmVxdWVzdENvdW50fHwwLGVycm9yczpuPy5lcnJvckNvdW50fHwwLGVycm9yUGVyY2VudDpuPy5lcnJvclJhdGV8fDAsYXZnUmVzcG9uc2U6bj8uYXZnUmVzcG9uc2VUaW1lfHwwLHJlcVBlck1pbjpuPy5yZXF1ZXN0c1Blck1pbnV0ZXx8MCxzdGF0dXMyeHg6ZFsiMnh4Il18fDAsc3RhdHVzM3h4OmRbIjN4eCJdfHwwLHN0YXR1czR4eDpkWyI0eHgiXXx8MCxzdGF0dXM1eHg6ZFsiNXh4Il18fDB9LHByb3h5OntodHRwUG9ydDpTdHJpbmcobz8ucHJveHk/Lmh0dHBQb3J0fHw4MCksaHR0cHNQb3J0OlN0cmluZyhvPy5wcm94eT8uaHR0cHNQb3J0fHw0NDMpLGh0dHBBY3RpdmU6bz8ucHJveHk/LnJ1bm5pbmd8fCExLGh0dHBzQWN0aXZlOm8/LnByb3h5Py5ydW5uaW5nfHwhMSxyb3V0ZUNvdW50OlN0cmluZyhvPy5wcm94eT8ucm91dGVzfHwwKX0sY2VydGlmaWNhdGVzOnt2YWxpZDptLGV4cGlyaW5nOnYsZXhwaXJlZDp4fSxkbnNDb25maWd1cmVkOnQ/LmRucz8uY29uZmlndXJlZHx8ITEsYWNtZUNvbmZpZ3VyZWQ6dD8uc3NsPy5jb25maWd1cmVkfHwhMSxxdWlja0FjdGlvbnM6W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246Imx1Y2lkZTpQbHVzIixwcmltYXJ5OiEwfSx7bGFiZWw6IkFkZCBEb21haW4iLGljb246Imx1Y2lkZTpHbG9iZSJ9LHtsYWJlbDoiVmlldyBMb2dzIixpY29uOiJsdWNpZGU6RmlsZVRleHQifV19O3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RGFzaGJvYXJkPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsdXN0ZXIgT3ZlcnZpZXc8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIgLnN0YXRzPSR7Yi5jbHVzdGVyfT48L3N6LXN0YXR1cy1ncmlkLWNsdXN0ZXI+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNlcnZpY2VzICYgUmVzb3VyY2VzPC9oMj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2VzLWdyaWQiPgogICAgICAgICAgICA8c3otcmVzb3VyY2UtdXNhZ2UtY2FyZCAuZGF0YT0ke2IucmVzb3VyY2VVc2FnZX0+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgICAgIC5zZXJ2aWNlcz0ke2IucGxhdGZvcm1TZXJ2aWNlc30KICAgICAgICAgICAgICBAc2VydmljZS1jbGljaz0ke2c9PnRoaXMuaGFuZGxlUGxhdGZvcm1TZXJ2aWNlQ2xpY2soZyl9CiAgICAgICAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmV0d29yayAmIFRyYWZmaWM8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLW5ldHdvcmsKICAgICAgICAgICAgLnRyYWZmaWM9JHtiLnRyYWZmaWN9CiAgICAgICAgICAgIC5wcm94eT0ke2IucHJveHl9CiAgICAgICAgICAgIC5jZXJ0aWZpY2F0ZXM9JHtiLmNlcnRpZmljYXRlc30KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLW5ldHdvcms+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkluZnJhc3RydWN0dXJlPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1pbmZyYQogICAgICAgICAgICA/ZG5zQ29uZmlndXJlZD0ke2IuZG5zQ29uZmlndXJlZH0KICAgICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7Yi5hY21lQ29uZmlndXJlZH0KICAgICAgICAgICAgLmFjdGlvbnM9JHtiLnF1aWNrQWN0aW9uc30KICAgICAgICAgICAgQGFjdGlvbi1jbGljaz0ke2c9PnRoaXMuaGFuZGxlUXVpY2tBY3Rpb24oZyl9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVRdWlja0FjdGlvbih0KXtsZXQgcj10LmRldGFpbD8uYWN0aW9ufHx0LmRldGFpbD8ubGFiZWw7cj09PSJEZXBsb3kgU2VydmljZSI/Ym8ubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIik6cj09PSJBZGQgRG9tYWluIiYmYm8ubmF2aWdhdGVUb1ZpZXcoIm5ldHdvcmsiKX1oYW5kbGVQbGF0Zm9ybVNlcnZpY2VDbGljayh0KXtsZXQgcj10LmRldGFpbD8ubmFtZSxpPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbmQobz0+by5kaXNwbGF5TmFtZT09PXIpO2kmJihQdC5zZXRTdGF0ZSh7Li4uUHQuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOml9KSxiby5uYXZpZ2F0ZVRvVmlldygic2VydmljZXMiKSl9fTtabj1BcihENWEpLEdldD1uZXcgV2Vha01hcCxZZXQ9bmV3IFdlYWtNYXAsS2V0PW5ldyBXZWFrTWFwLHl0KFpuLDQsInN5c3RlbVN0YXRlIiwkNWEscGwsR2V0KSx5dChabiw0LCJzZXJ2aWNlc1N0YXRlIixMNWEscGwsWWV0KSx5dChabiw0LCJuZXR3b3JrU3RhdGUiLFQ1YSxwbCxLZXQpLHBsPXl0KFpuLDAsIk9iVmlld0Rhc2hib2FyZCIsQTVhLHBsKSxzKHBsLCJPYlZpZXdEYXNoYm9hcmQiKSx2cihwbCwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLFhzLFhgCiAgICAgIC5kYXNoYm9hcmQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDEycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlcy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLnNlcnZpY2VzLWdyaWQgPiAqIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgewogICAgICAgIC5zZXJ2aWNlcy1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdKSxWZShabiwxLHBsKTtaZXQ9cGx9KTt2YXIgRzVhPXt9O2x0KEc1YSx7T2JWaWV3QXBwU3RvcmU6KCk9PmN0dH0pO3ZhciBFNWEsSTVhLE41YSxSNWEsTzVhLEY1YSxCNWEsSDVhLHE1YSxWNWEsajVhLFU1YSxXNWEsa2EsUWV0LEpldCxldHQsdHR0LGF0dCxydHQsc3R0LGl0dCxvdHQsbnR0LGx0dCxRcyxjdHQsWTVhPWYoYXN5bmMoKT0+e21vKCk7ZTIoKTthd2FpdCBLbigpO3A3KCk7YXdhaXQgSTUoKTtsZSgpO1c1YT1baWUoIm9iLXZpZXctYXBwc3RvcmUiKV07UXM9Y2xhc3MgUXMgZXh0ZW5kcyhVNWE9cGUsajVhPVtLKCldLFY1YT1bSygpXSxxNWE9W0soKV0sSDVhPVtLKCldLEI1YT1bSygpXSxGNWE9W0soKV0sTzVhPVtLKCldLFI1YT1bSygpXSxONWE9W0soKV0sSTVhPVtLKCldLEU1YT1bSygpXSxVNWEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLFFldCxWZShrYSw4LHRoaXMse2FwcHM6W10sdXBncmFkZWFibGVTZXJ2aWNlczpbXSx1cGdyYWRlT3BlcmF0aW9uczpbXX0pKSxWZShrYSwxMSx0aGlzKTtSdCh0aGlzLEpldCxWZShrYSwxMix0aGlzLCJncmlkIikpLFZlKGthLDE1LHRoaXMpO1J0KHRoaXMsZXR0LFZlKGthLDE2LHRoaXMsbnVsbCkpLFZlKGthLDE5LHRoaXMpO1J0KHRoaXMsdHR0LFZlKGthLDIwLHRoaXMsbnVsbCkpLFZlKGthLDIzLHRoaXMpO1J0KHRoaXMsYXR0LFZlKGthLDI0LHRoaXMsbnVsbCkpLFZlKGthLDI3LHRoaXMpO1J0KHRoaXMscnR0LFZlKGthLDI4LHRoaXMsIiIpKSxWZShrYSwzMSx0aGlzKTtSdCh0aGlzLHN0dCxWZShrYSwzMix0aGlzLFtdKSksVmUoa2EsMzUsdGhpcyk7UnQodGhpcyxpdHQsVmUoa2EsMzYsdGhpcywiIikpLFZlKGthLDM5LHRoaXMpO1J0KHRoaXMsb3R0LFZlKGthLDQwLHRoaXMsIiIpKSxWZShrYSw0Myx0aGlzKTtSdCh0aGlzLG50dCxWZShrYSw0NCx0aGlzLCExKSksVmUoa2EsNDcsdGhpcyk7UnQodGhpcyxsdHQsVmUoa2EsNDgsdGhpcywhMSkpLFZlKGthLDUxLHRoaXMpO2xldCB0PWdvLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuYXBwU3RvcmVTdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgUHJvbWlzZS5hbGwoW2dvLmRpc3BhdGNoQWN0aW9uKHk1YSxudWxsKSxnby5kaXNwYXRjaEFjdGlvbihSaWUsbnVsbCldKX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlldz09PSJkZXRhaWwiP3RoaXMucmVuZGVyRGV0YWlsVmlldygpOnRoaXMucmVuZGVyR3JpZFZpZXcoKX1yZW5kZXJHcmlkVmlldygpe2xldCB0PXRoaXMuYXBwU3RvcmVTdGF0ZS5hcHBzLm1hcChyPT4oe2lkOnIuaWQsbmFtZTpyLm5hbWUsZGVzY3JpcHRpb246ci5kZXNjcmlwdGlvbixjYXRlZ29yeTpyLmNhdGVnb3J5LGljb25OYW1lOnIuaWNvbk5hbWUsaWNvblVybDpyLmljb25VcmwsaW1hZ2U6IiIscG9ydDowfSkpO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgJHt0aGlzLnJlbmRlclVwZ3JhZGVPcGVyYXRpb25zKCl9CiAgICAgICR7dC5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj5Mb2FkaW5nIGFwcCB0ZW1wbGF0ZXMuLi48L2Rpdj5gOndgCiAgICAgICAgICA8c3otYXBwLXN0b3JlLXZpZXcKICAgICAgICAgICAgLmFwcHM9JHt0fQogICAgICAgICAgICBAdmlldy1hcHA9JHtyPT50aGlzLmhhbmRsZVZpZXdEZXRhaWxzKHIpfQogICAgICAgICAgICBAZGVwbG95LWFwcD0ke3I9PnRoaXMuaGFuZGxlQXBwQ2xpY2socil9CiAgICAgICAgICA+PC9zei1hcHAtc3RvcmUtdmlldz4KICAgICAgICBgfQogICAgYH1yZW5kZXJVcGdyYWRlT3BlcmF0aW9ucygpe2xldCB0PXRoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlT3BlcmF0aW9ucy5maWx0ZXIocj0+ci5zdGF0dXM9PT0icnVubmluZyJ8fHIuc3RhdHVzPT09ImZhaWxlZCIpLnNsaWNlKDAsMyk7cmV0dXJuIHQubGVuZ3RoPT09MD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+UmVjZW50IFVwZ3JhZGUgT3BlcmF0aW9uczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RwcmludC1saXN0Ij4KICAgICAgICAgICR7dC5tYXAocj0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuPiR7ci5zZXJ2aWNlTmFtZX06ICR7ci5mcm9tVmVyc2lvbn0gJnJhcnI7ICR7ci50YXJnZXRWZXJzaW9ufTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdHByaW50LW1ldGEiPiR7ci5zdGF0dXN9IC8gJHtyLnN0ZXB9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGV0YWlsVmlldygpe2lmKHRoaXMubG9hZGluZylyZXR1cm4gd2AKICAgICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPkxvYWRpbmcgYXBwIGRldGFpbHMuLi48L2Rpdj4KICAgICAgYDtsZXQgdD10aGlzLnNlbGVjdGVkQXBwLHI9dGhpcy5zZWxlY3RlZEFwcE1ldGEsaT10aGlzLnNlbGVjdGVkQXBwQ29uZmlnO2lmKCF0fHwhaSlyZXR1cm4gd2AKICAgICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPkFwcCBub3QgZm91bmQuPC9kaXY+CiAgICAgIGA7bGV0IG89aS5wbGF0Zm9ybVJlcXVpcmVtZW50c3x8e30sbj1PYmplY3QudmFsdWVzKG8pLnNvbWUoQm9vbGVhbiksbD17bW9uZ29kYjoiTW9uZ29EQiIsczM6IlMzIChNaW5JTykiLGNsaWNraG91c2U6IkNsaWNrSG91c2UiLHJlZGlzOiJSZWRpcyIsbWFyaWFkYjoiTWFyaWFEQiJ9O3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxNnB4OyIgQGNsaWNrPSR7KCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJncmlkIn19PgogICAgICAgICZsYXJyOyBCYWNrIHRvIEFwcCBTdG9yZQogICAgICA8L2J1dHRvbj4KCiAgICAgIDwhLS0gSGVhZGVyIC0tPgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaWNvbiI+JHsodC5uYW1lfHwiPyIpWzBdLnRvVXBwZXJDYXNlKCl9PC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OiAxOyI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0iZGV0YWlsLXRpdGxlIj4ke3QubmFtZX08L2gyPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWNhdGVnb3J5Ij4ke3QuY2F0ZWdvcnl9PC9zcGFuPgogICAgICAgICAgICA8cCBjbGFzcz0iZGV0YWlsLWRlc2NyaXB0aW9uIj4ke3QuZGVzY3JpcHRpb259PC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbWV0YSI+CiAgICAgICAgICAgICAgJHtyPy5tYWludGFpbmVyP3dgPHNwYW4+TWFpbnRhaW5lcjogPHN0cm9uZz4ke3IubWFpbnRhaW5lcn08L3N0cm9uZz48L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAke3I/LmxpbmtzP09iamVjdC5lbnRyaWVzKHIubGlua3MpLm1hcCgoW2QsY10pPT53YDxhIGhyZWY9IiR7Y30iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2R9PC9hPmApOiIifQogICAgICAgICAgICAgICR7dC50YWdzPy5sZW5ndGg/d2A8c3Bhbj5UYWdzOiAke3QudGFncy5qb2luKCIsICIpfTwvc3Bhbj5gOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUGxhdGZvcm0gU2VydmljZXMgLS0+CiAgICAgICR7bj93YAogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlBsYXRmb3JtIFNlcnZpY2VzPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAke09iamVjdC5lbnRyaWVzKG8pLmZpbHRlcigoW2QsY10pPT5jKS5tYXAoKFtkXSk9PndgPHNwYW4gY2xhc3M9ImJhZGdlIj4ke2xbZF18fGR9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsgbWFyZ2luLXRvcDogOHB4OyI+CiAgICAgICAgICAgIFRoZXNlIHBsYXRmb3JtIHNlcnZpY2VzIHdpbGwgYmUgYXV0b21hdGljYWxseSBwcm92aXNpb25lZCB3aGVuIHlvdSBkZXBsb3kuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5yZW5kZXJEZXBsb3ltZW50Rm9vdHByaW50KGkpfQoKICAgICAgPCEtLSBWZXJzaW9uICYgSW1hZ2UgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5WZXJzaW9uPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1yb3ciPgogICAgICAgICAgPHNlbGVjdCBjbGFzcz0idmVyc2lvbi1zZWxlY3QiIEBjaGFuZ2U9JHtkPT50aGlzLmhhbmRsZVZlcnNpb25DaGFuZ2UoZC50YXJnZXQudmFsdWUpfT4KICAgICAgICAgICAgJHsocj8udmVyc2lvbnN8fFt0aGlzLnNlbGVjdGVkVmVyc2lvbl0pLm1hcChkPT53YDxvcHRpb24gdmFsdWU9IiR7ZH0iID9zZWxlY3RlZD0ke2Q9PT10aGlzLnNlbGVjdGVkVmVyc2lvbn0+JHtkfSR7ZD09PXQubGF0ZXN0VmVyc2lvbj8iIChsYXRlc3QpIjoiIn08L29wdGlvbj5gKX0KICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlLXRhZyI+JHtpLmltYWdlfTwvc3Bhbj4KICAgICAgICAgICR7aS5taW5PbmVib3hWZXJzaW9uP3dgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyI+UmVxdWlyZXMgb25lYm94ICZnZTsgJHtpLm1pbk9uZWJveFZlcnNpb259PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBFbnZpcm9ubWVudCBWYXJpYWJsZXMgLS0+CiAgICAgICR7dGhpcy5lZGl0YWJsZUVudlZhcnMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5FbnZpcm9ubWVudCBWYXJpYWJsZXM8L2Rpdj4KICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZW52LXRhYmxlIj4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDMwJTsiPlZhcmlhYmxlPC90aD4KICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDQwJTsiPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICR7dGhpcy5lZGl0YWJsZUVudlZhcnMubWFwKChkLGMpPT53YAogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudi1rZXkiPiR7ZC5rZXl9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICR7ZC5yZXF1aXJlZD93YDxzcGFuIGNsYXNzPSJlbnYtYmFkZ2UgcmVxdWlyZWQiPnJlcXVpcmVkPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAgICAgJHtkLnBsYXRmb3JtSW5qZWN0ZWQ/d2A8c3BhbiBjbGFzcz0iZW52LWJhZGdlIGF1dG8iPmF1dG88L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImVudi1pbnB1dCIKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtkLnZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7ZC5wbGF0Zm9ybUluamVjdGVkfHwhdGhpcy5kZXBsb3lNb2RlfQogICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtkLnBsYXRmb3JtSW5qZWN0ZWQ/IkF1dG8taW5qZWN0ZWQgYnkgcGxhdGZvcm0iOiJFbnRlciB2YWx1ZS4uLiJ9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtwPT50aGlzLmhhbmRsZUVudlZhckNoYW5nZShjLHAudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImVudi1kZXNjIj4ke2QuZGVzY3JpcHRpb258fCIifTwvc3Bhbj48L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICA8IS0tIERlcGxveSBzZWN0aW9uIChvbmx5IGluIGRlcGxveSBtb2RlKSBvciBhY3Rpb24gYnV0dG9uICh2aWV3IG1vZGUpIC0tPgogICAgICAke3RoaXMuZGVwbG95TW9kZT93YAogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlNlcnZpY2UgTmFtZTwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIGNsYXNzPSJuYW1lLWlucHV0IgogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlcnZpY2VOYW1lfQogICAgICAgICAgICBwbGFjZWhvbGRlcj0iZS5nLiBteS1naG9zdC1ibG9nIgogICAgICAgICAgICBAaW5wdXQ9JHtkPT57dGhpcy5zZXJ2aWNlTmFtZT1kLnRhcmdldC52YWx1ZX19CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDZweDsiPgogICAgICAgICAgICBMb3dlcmNhc2UgbGV0dGVycywgbnVtYmVycywgYW5kIGh5cGhlbnMgb25seS4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiIHN0eWxlPSJtYXJnaW4tdG9wOiAxOHB4OyI+RG9tYWluPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgY2xhc3M9Im5hbWUtaW5wdXQiCiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VydmljZURvbWFpbn0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9ImUuZy4gY2xvdWRseS5leGFtcGxlLmNvbSIKICAgICAgICAgICAgQGlucHV0PSR7ZD0+dGhpcy5oYW5kbGVTZXJ2aWNlRG9tYWluQ2hhbmdlKGQudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsgbWFyZ2luLXRvcDogNnB4OyI+CiAgICAgICAgICAgIE9uZWJveCByb3V0ZXMgdGhpcyBkb21haW4gdG8gdGhlIGRlcGxveWVkIGFwcC4gUmVxdWlyZWQgd2hlbiB0aGUgYXBwIHVzZXMgU0VSVklDRV9ET01BSU4uCiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMucmVuZGVyRGVwbG95Q29uZmlybWF0aW9uKGkpfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMtcm93Ij4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iZ3JpZCJ9fT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZXBsb3koKX0+CiAgICAgICAgICAgICAgRGVwbG95IHYke3RoaXMuc2VsZWN0ZWRWZXJzaW9ufQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1yb3ciIHN0eWxlPSJtYXJnaW4tdG9wOiA4cHg7Ij4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9ImdyaWQifX0+CiAgICAgICAgICAgICZsYXJyOyBCYWNrCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgQGNsaWNrPSR7KCk9Pnt0aGlzLmRlcGxveU1vZGU9ITB9fT4KICAgICAgICAgICAgRGVwbG95IHRoaXMgQXBwCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgYH0KICAgIGB9cmVuZGVyRGVwbG95bWVudEZvb3RwcmludCh0KXtsZXQgcj10aGlzLmdldENvbmZpZ1ZvbHVtZXModCksaT10LnB1Ymxpc2hlZFBvcnRzfHxbXTtyZXR1cm4gci5sZW5ndGg9PT0wJiZpLmxlbmd0aD09PTA/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkRlcGxveW1lbnQgRm9vdHByaW50PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWxpc3QiPgogICAgICAgICAgJHtyLm1hcChvPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4+Vm9sdW1lIG1vdW50PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb290cHJpbnQtbWV0YSI+CiAgICAgICAgICAgICAgICAke28uc291cmNlfHxvLm5hbWV8fCJtYW5hZ2VkIHZvbHVtZSJ9OiR7by5tb3VudFBhdGh9JHtvLnJlYWRPbmx5PyI6cm8iOiIifQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICAgICR7aS5tYXAobz0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuPlB1Ymxpc2hlZCBob3N0IHBvcnQ8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3RwcmludC1tZXRhIj4ke3RoaXMuZm9ybWF0UHVibGlzaGVkUG9ydChvKX08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHtpLmxlbmd0aD4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvc3VyZS13YXJuaW5nIj4KICAgICAgICAgICAgVGhpcyBhcHAgcHVibGlzaGVzIHJhdyBob3N0IHBvcnRzIG91dHNpZGUgdGhlIEhUVFAgcHJveHkuIENvbmZpcm0gZmlyZXdhbGwgYW5kIG5ldHdvcmsgcG9saWN5IGJlZm9yZSBkZXBsb3lpbmcuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGVwbG95Q29uZmlybWF0aW9uKHQpe2xldCByPXRoaXMuZ2V0Q29uZmlnVm9sdW1lcyh0KSxpPXQucHVibGlzaGVkUG9ydHN8fFtdO3JldHVybiByLmxlbmd0aD09PTAmJmkubGVuZ3RoPT09MD8iIjp3YAogICAgICA8ZGl2IGNsYXNzPSJleHBvc3VyZS13YXJuaW5nIj4KICAgICAgICBEZXBsb3lpbmcgdGhpcyBhcHAgd2lsbCBjcmVhdGUgJHtyLmxlbmd0aH0gcGVyc2lzdGVudCB2b2x1bWUocykKICAgICAgICAke2kubGVuZ3RoPjA/d2BhbmQgZXhwb3NlICR7aS5sZW5ndGh9IGhvc3QgcG9ydCBkZWNsYXJhdGlvbihzKWA6IiJ9LgogICAgICA8L2Rpdj4KICAgIGB9Z2V0Q29uZmlnVm9sdW1lcyh0KXtyZXR1cm4odC52b2x1bWVzfHxbXSkubWFwKHI9PnR5cGVvZiByPT0ic3RyaW5nIj97bW91bnRQYXRoOnJ9OnIpLmZpbHRlcihyPT4hIXIubW91bnRQYXRoKX1mb3JtYXRQdWJsaXNoZWRQb3J0KHQpe2xldCByPXQucHJvdG9jb2x8fCJ0Y3AiLGk9dC50YXJnZXRQb3J0RW5kP2Ake3QudGFyZ2V0UG9ydH0tJHt0LnRhcmdldFBvcnRFbmR9YDpTdHJpbmcodC50YXJnZXRQb3J0KSxvPXQucHVibGlzaGVkUG9ydHx8dC50YXJnZXRQb3J0LG49dC5wdWJsaXNoZWRQb3J0RW5kfHwodC50YXJnZXRQb3J0RW5kP28rKHQudGFyZ2V0UG9ydEVuZC10LnRhcmdldFBvcnQpOnZvaWQgMCksbD1uP2Ake299LSR7bn1gOlN0cmluZyhvKTtyZXR1cm5gJHt0Lmhvc3RJcHx8IjAuMC4wLjAifToke2x9LyR7cn0gLT4gJHtpfS8ke3J9YH1hc3luYyBoYW5kbGVWaWV3RGV0YWlscyh0KXtsZXQgcj10LmRldGFpbD8uYXBwO2lmKCFyKXJldHVybjtsZXQgaT10aGlzLmFwcFN0b3JlU3RhdGUuYXBwcy5maW5kKG89Pm8uaWQ9PT1yLmlkKTtpJiYodGhpcy5kZXBsb3lNb2RlPSExLHRoaXMuc2VsZWN0ZWRBcHA9aSx0aGlzLnNlbGVjdGVkVmVyc2lvbj1pLmxhdGVzdFZlcnNpb24sdGhpcy5zZXJ2aWNlTmFtZT1pLmlkLHRoaXMubG9hZGluZz0hMCx0aGlzLmN1cnJlbnRWaWV3PSJkZXRhaWwiLGF3YWl0IHRoaXMuZmV0Y2hWZXJzaW9uQ29uZmlnKGkuaWQsaS5sYXRlc3RWZXJzaW9uKSx0aGlzLmxvYWRpbmc9ITEpfWFzeW5jIGhhbmRsZUFwcENsaWNrKHQpe2xldCByPXQuZGV0YWlsPy5hcHA7aWYoIXIpcmV0dXJuO2xldCBpPXRoaXMuYXBwU3RvcmVTdGF0ZS5hcHBzLmZpbmQobz0+by5pZD09PXIuaWQpO2kmJih0aGlzLmRlcGxveU1vZGU9ITAsdGhpcy5zZWxlY3RlZEFwcD1pLHRoaXMuc2VsZWN0ZWRWZXJzaW9uPWkubGF0ZXN0VmVyc2lvbix0aGlzLnNlcnZpY2VOYW1lPWkuaWQsdGhpcy5sb2FkaW5nPSEwLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIsYXdhaXQgdGhpcy5mZXRjaFZlcnNpb25Db25maWcoaS5pZCxpLmxhdGVzdFZlcnNpb24pLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgaGFuZGxlVmVyc2lvbkNoYW5nZSh0KXshdGhpcy5zZWxlY3RlZEFwcHx8dD09PXRoaXMuc2VsZWN0ZWRWZXJzaW9ufHwodGhpcy5zZWxlY3RlZFZlcnNpb249dCx0aGlzLmxvYWRpbmc9ITAsYXdhaXQgdGhpcy5mZXRjaFZlcnNpb25Db25maWcodGhpcy5zZWxlY3RlZEFwcC5pZCx0KSx0aGlzLmxvYWRpbmc9ITEpfWFzeW5jIGZldGNoVmVyc2lvbkNvbmZpZyh0LHIpe3RyeXtsZXQgaT1xci5nZXRTdGF0ZSgpLmlkZW50aXR5O2lmKCFpKXJldHVybjtsZXQgbj1hd2FpdCBuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QXBwU3RvcmVDb25maWciKS5maXJlKHtpZGVudGl0eTppLGFwcElkOnQsdmVyc2lvbjpyfSk7dGhpcy5zZWxlY3RlZEFwcE1ldGE9bi5hcHBNZXRhLHRoaXMuc2VsZWN0ZWRBcHBDb25maWc9bi5jb25maWcsdGhpcy5lZGl0YWJsZUVudlZhcnM9KG4uY29uZmlnLmVudlZhcnN8fFtdKS5tYXAobD0+KHtrZXk6bC5rZXksdmFsdWU6bC52YWx1ZXx8IiIsZGVzY3JpcHRpb246bC5kZXNjcmlwdGlvbnx8IiIscmVxdWlyZWQ6bC5yZXF1aXJlZCxwbGF0Zm9ybUluamVjdGVkOmwudmFsdWU/LmluY2x1ZGVzKCIkeyIpfHwhMX0pKSx0aGlzLnNlcnZpY2VEb21haW49IiJ9Y2F0Y2goaSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGFwcCBjb25maWc6IixpKX19aGFuZGxlRW52VmFyQ2hhbmdlKHQscil7bGV0IGk9Wy4uLnRoaXMuZWRpdGFibGVFbnZWYXJzXTtpW3RdPXsuLi5pW3RdLHZhbHVlOnJ9LHRoaXMuZWRpdGFibGVFbnZWYXJzPWl9aGFuZGxlU2VydmljZURvbWFpbkNoYW5nZSh0KXt0aGlzLnNlcnZpY2VEb21haW49dGhpcy5ub3JtYWxpemVEb21haW4odCl9bm9ybWFsaXplRG9tYWluKHQpe3JldHVybiB0LnRyaW0oKS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKS5yZXBsYWNlKC9cLyQvLCIiKX1hc3luYyBoYW5kbGVEZXBsb3koKXtsZXQgdD10aGlzLnNlbGVjdGVkQXBwLHI9dGhpcy5zZWxlY3RlZEFwcENvbmZpZztpZighdHx8IXIpcmV0dXJuO2xldCBpPXRoaXMuZWRpdGFibGVFbnZWYXJzLmZpbHRlcihsPT5sLnJlcXVpcmVkJiYhbC5wbGF0Zm9ybUluamVjdGVkJiYhbC52YWx1ZS50cmltKCkpO2lmKGkubGVuZ3RoPjApe2NvbnNvbGUuZXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzOiAke2kubWFwKGw9Pmwua2V5KS5qb2luKCIsICIpfWApO3JldHVybn1pZigoci5lbnZWYXJzfHxbXSkuc29tZShsPT5sLnZhbHVlPy5pbmNsdWRlcygiJHtTRVJWSUNFX0RPTUFJTn0iKSkmJiF0aGlzLnNlcnZpY2VEb21haW4pe2NvbnNvbGUuZXJyb3IoIkEgZG9tYWluIGlzIHJlcXVpcmVkIGZvciB0aGlzIGFwcC4iKTtyZXR1cm59bGV0IG49e307Zm9yKGxldCBsIG9mIHRoaXMuZWRpdGFibGVFbnZWYXJzKWwua2V5JiZsLnZhbHVlJiYobltsLmtleV09bC52YWx1ZSk7dHJ5e2xldCBsPXFyLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoIWwpcmV0dXJuO2F3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJpbnN0YWxsQXBwU3RvcmVBcHAiKS5maXJlKHtpZGVudGl0eTpsLGluc3RhbGw6e2FwcElkOnQuaWQsdmVyc2lvbjp0aGlzLnNlbGVjdGVkVmVyc2lvbixzZXJ2aWNlTmFtZTp0aGlzLnNlcnZpY2VOYW1lfHx0LmlkLGRvbWFpbjp0aGlzLnNlcnZpY2VEb21haW58fHZvaWQgMCxlbnZWYXJzOm59fSksc2V0VGltZW91dCgoKT0+e2JvLm5hdmlnYXRlVG9WaWV3KCJzZXJ2aWNlcyIpfSwwKX1jYXRjaChsKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVwbG95IGZyb20gQXBwIFN0b3JlOiIsbCl9fX07a2E9QXIoVTVhKSxRZXQ9bmV3IFdlYWtNYXAsSmV0PW5ldyBXZWFrTWFwLGV0dD1uZXcgV2Vha01hcCx0dHQ9bmV3IFdlYWtNYXAsYXR0PW5ldyBXZWFrTWFwLHJ0dD1uZXcgV2Vha01hcCxzdHQ9bmV3IFdlYWtNYXAsaXR0PW5ldyBXZWFrTWFwLG90dD1uZXcgV2Vha01hcCxudHQ9bmV3IFdlYWtNYXAsbHR0PW5ldyBXZWFrTWFwLHl0KGthLDQsImFwcFN0b3JlU3RhdGUiLGo1YSxRcyxRZXQpLHl0KGthLDQsImN1cnJlbnRWaWV3IixWNWEsUXMsSmV0KSx5dChrYSw0LCJzZWxlY3RlZEFwcCIscTVhLFFzLGV0dCkseXQoa2EsNCwic2VsZWN0ZWRBcHBNZXRhIixINWEsUXMsdHR0KSx5dChrYSw0LCJzZWxlY3RlZEFwcENvbmZpZyIsQjVhLFFzLGF0dCkseXQoa2EsNCwic2VsZWN0ZWRWZXJzaW9uIixGNWEsUXMscnR0KSx5dChrYSw0LCJlZGl0YWJsZUVudlZhcnMiLE81YSxRcyxzdHQpLHl0KGthLDQsInNlcnZpY2VOYW1lIixSNWEsUXMsaXR0KSx5dChrYSw0LCJzZXJ2aWNlRG9tYWluIixONWEsUXMsb3R0KSx5dChrYSw0LCJsb2FkaW5nIixJNWEsUXMsbnR0KSx5dChrYSw0LCJkZXBsb3lNb2RlIixFNWEsUXMsbHR0KSxRcz15dChrYSwwLCJPYlZpZXdBcHBTdG9yZSIsVzVhLFFzKSxzKFFzLCJPYlZpZXdBcHBTdG9yZSIpLHZyKFFzLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMsWHMsWGAKICAgICAgLmRldGFpbC1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1pY29uIHsKICAgICAgICB3aWR0aDogNjRweDsKICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgbWFyZ2luOiAwIDAgNHB4IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtY2F0ZWdvcnkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAycHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmRldGFpbC1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgfQoKICAgICAgLmRldGFpbC1tZXRhIGEgewogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbWV0YSBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSk7CiAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICB9CgogICAgICAudmVyc2lvbi1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC52ZXJzaW9uLXNlbGVjdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuaW1hZ2UtdGFnIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5lbnYtdGFibGUgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgIH0KCiAgICAgIC5lbnYtdGFibGUgdGggewogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICAgIHBhZGRpbmc6IDhweCA4cHggOHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICB9CgogICAgICAuZW52LXRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4IDZweCAwOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC5lbnYtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTMsICMzZjNmNDYpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZW52LWlucHV0OmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmVudi1rZXkgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS02LCAjZDRkNGQ4KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZW52LWRlc2MgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgIH0KCiAgICAgIC5lbnYtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBtYXJnaW4tbGVmdDogNnB4OwogICAgICB9CgogICAgICAuZW52LWJhZGdlLnJlcXVpcmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgfQoKICAgICAgLmVudi1iYWRnZS5hdXRvIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjE1KTsKICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgfQoKICAgICAgLm5hbWUtaW5wdXQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTMsICMzZjNmNDYpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmFjdGlvbnMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5idG4gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJ0bjpob3ZlciB7IG9wYWNpdHk6IDAuOTsgfQoKICAgICAgLmJ0bi1wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtMCwgIzA5MDkwYik7CiAgICAgIH0KCiAgICAgIC5idG4tc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNiwgI2Q0ZDRkOCk7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgfQoKICAgICAgLmZvb3RwcmludC1saXN0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZm9vdHByaW50LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNiwgI2Q0ZDRkOCk7CiAgICAgIH0KCiAgICAgIC5mb290cHJpbnQtbWV0YSB7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5leHBvc3VyZS13YXJuaW5nIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CiAgICBgXSksVmUoa2EsMSxRcyk7Y3R0PVFzfSk7dmFyIE9GYSxGaWUsSzVhPWYoKCk9PnttbygpO3A3KCk7T0ZhPW5kLmRvbXRvb2xzLEZpZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuc2VydmljZU5hbWU9ZTt0aGlzLmlkZW50aXR5PXQsdGhpcy5yZWdpc3RlclByb2Nlc3NTb2NrZXRIYW5kbGVycygpfXNlcnZpY2VOYW1lO3N0YXRpY3tzKHRoaXMsIkJhY2tlbmRFeGVjdXRpb25FbnZpcm9ubWVudCIpfXR5cGU9ImJhY2tlbmQiO19yZWFkeT0hMTtpZGVudGl0eTtwcm9jZXNzUm91dGVyPW5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJvdXRlcjtwcm9jZXNzU29ja2V0PW51bGw7cHJvY2Vzc1NvY2tldFByb21pc2U9bnVsbDtwcm9jZXNzU3RhdGVzPW5ldyBNYXA7Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3JlYWR5fWFzeW5jIGluaXQoKXtpZighKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZUV4aXN0cyIse3BhdGg6Ii8ifSkpLmV4aXN0cyl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBhY2Nlc3MgY29udGFpbmVyIGZpbGVzeXN0ZW0gZm9yIHNlcnZpY2U6ICR7dGhpcy5zZXJ2aWNlTmFtZX1gKTt0aGlzLl9yZWFkeT0hMH1hc3luYyBkZXN0cm95KCl7Zm9yKGxldCBlIG9mIEFycmF5LmZyb20odGhpcy5wcm9jZXNzU3RhdGVzLmtleXMoKSkpYXdhaXQgdGhpcy5raWxsUHJvY2VzcyhlKS5jYXRjaCgoKT0+e30pO2F3YWl0IHRoaXMucHJvY2Vzc1NvY2tldD8uc3RvcCgpLmNhdGNoKCgpPT57fSksdGhpcy5wcm9jZXNzU29ja2V0PW51bGwsdGhpcy5wcm9jZXNzU29ja2V0UHJvbWlzZT1udWxsLHRoaXMuX3JlYWR5PSExfWFzeW5jIHJlYWRGaWxlKGUpe3JldHVybihhd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VSZWFkRmlsZSIse3BhdGg6ZX0pKS5jb250ZW50fWFzeW5jIHdyaXRlRmlsZShlLHQpe2F3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZVdyaXRlRmlsZSIse3BhdGg6ZSxjb250ZW50OnR9KX1hc3luYyByZWFkRGlyKGUpe3JldHVybihhd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VSZWFkRGlyIix7cGF0aDplfSkpLmVudHJpZXN9YXN5bmMgbWtkaXIoZSl7YXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlTWtkaXIiLHtwYXRoOmV9KX1hc3luYyBybShlLHQpe2F3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZVJtIix7cGF0aDplLHJlY3Vyc2l2ZTp0Py5yZWN1cnNpdmV9KX1hc3luYyBleGlzdHMoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZUV4aXN0cyIse3BhdGg6ZX0pKS5leGlzdHN9d2F0Y2goZSx0LHIpe3JldHVybntzdG9wOnMoKCk9Pnt9LCJzdG9wIil9fWFzeW5jIHNwYXduKGUsdCl7bGV0IHI9YXdhaXQgdGhpcy5lbnN1cmVQcm9jZXNzU29ja2V0KCksaT1jcnlwdG8ucmFuZG9tVVVJRCgpO2F3YWl0IHIuc2V0VGFnKGB3b3Jrc3BhY2VQcm9jZXNzOiR7aX1gLCEwKTtsZXQgbz1zKCgpPT57fSwicmVzb2x2ZUV4aXQiKSxuPW5ldyBQcm9taXNlKGM9PntvPWN9KSxsPW5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6cyhjPT57dGhpcy5wcm9jZXNzU3RhdGVzLnNldChpLHtvdXRwdXRDb250cm9sbGVyOmMscmVzb2x2ZUV4aXQ6b30pfSwic3RhcnQiKSxjYW5jZWw6cyhhc3luYygpPT57YXdhaXQgdGhpcy5raWxsUHJvY2VzcyhpKS5jYXRjaCgoKT0+e30pfSwiY2FuY2VsIil9KTt0cnl7YXdhaXQgci5jcmVhdGVUeXBlZFJlcXVlc3QoIndvcmtzcGFjZVN0YXJ0UHJvY2VzcyIpLmZpcmUoe2lkZW50aXR5OnRoaXMuaWRlbnRpdHksc2VydmljZU5hbWU6dGhpcy5zZXJ2aWNlTmFtZSxwcm9jZXNzSWQ6aSxjb21tYW5kOmUsYXJnczp0fSl9Y2F0Y2goYyl7bGV0IHA9dGhpcy5wcm9jZXNzU3RhdGVzLmdldChpKTt0aGlzLnByb2Nlc3NTdGF0ZXMuZGVsZXRlKGkpLGF3YWl0IHIucmVtb3ZlVGFnKGB3b3Jrc3BhY2VQcm9jZXNzOiR7aX1gKS5jYXRjaCgoKT0+e30pO3RyeXtwPy5vdXRwdXRDb250cm9sbGVyLmVycm9yKGMpfWNhdGNoe310aHJvdyBjfWxldCBkPW5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6cyhhc3luYyBjPT57YXdhaXQgci5jcmVhdGVUeXBlZFJlcXVlc3QoIndvcmtzcGFjZVByb2Nlc3NJbnB1dCIpLmZpcmUoe2lkZW50aXR5OnRoaXMuaWRlbnRpdHkscHJvY2Vzc0lkOmksaW5wdXQ6Y30pfSwid3JpdGUiKSxhYm9ydDpzKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmtpbGxQcm9jZXNzKGkpLmNhdGNoKCgpPT57fSl9LCJhYm9ydCIpfSk7cmV0dXJue291dHB1dDpsLGlucHV0OmQsZXhpdDpuLGtpbGw6cygoKT0+e3RoaXMua2lsbFByb2Nlc3MoaSl9LCJraWxsIil9fWFzeW5jIGdldFNoZWxsQ29tbWFuZCgpe3JldHVybihhd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VHZXRTaGVsbENvbW1hbmQiLHt9KSkuc2hlbGxDb21tYW5kfXJlZ2lzdGVyUHJvY2Vzc1NvY2tldEhhbmRsZXJzKCl7dGhpcy5wcm9jZXNzUm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgSmUucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoV29ya3NwYWNlUHJvY2Vzc091dHB1dCIsYXN5bmMgZT0+KHRoaXMucHJvY2Vzc1N0YXRlcy5nZXQoZS5wcm9jZXNzSWQpPy5vdXRwdXRDb250cm9sbGVyLmVucXVldWUoZS5vdXRwdXQpLHt9KSkpLHRoaXMucHJvY2Vzc1JvdXRlci5hZGRUeXBlZEhhbmRsZXIobmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaFdvcmtzcGFjZVByb2Nlc3NFeGl0Iixhc3luYyBlPT4odGhpcy5jb21wbGV0ZVByb2Nlc3NTdGF0ZShlLnByb2Nlc3NJZCxlLmV4aXRDb2RlKSxhd2FpdCB0aGlzLnByb2Nlc3NTb2NrZXQ/LnJlbW92ZVRhZyhgd29ya3NwYWNlUHJvY2Vzczoke2UucHJvY2Vzc0lkfWApLmNhdGNoKCgpPT57fSkse30pKSl9YXN5bmMgZW5zdXJlUHJvY2Vzc1NvY2tldCgpe3JldHVybiB0aGlzLnByb2Nlc3NTb2NrZXQ/dGhpcy5wcm9jZXNzU29ja2V0Oih0aGlzLnByb2Nlc3NTb2NrZXRQcm9taXNlfHwodGhpcy5wcm9jZXNzU29ja2V0UHJvbWlzZT1WYy5UeXBlZFNvY2tldC5jcmVhdGVDbGllbnQodGhpcy5wcm9jZXNzUm91dGVyLFZjLlR5cGVkU29ja2V0LnVzZVdpbmRvd0xvY2F0aW9uT3JpZ2luVXJsKCkse2F1dG9SZWNvbm5lY3Q6ITB9KSksdGhpcy5wcm9jZXNzU29ja2V0PWF3YWl0IHRoaXMucHJvY2Vzc1NvY2tldFByb21pc2UsdGhpcy5wcm9jZXNzU29ja2V0KX1jb21wbGV0ZVByb2Nlc3NTdGF0ZShlLHQpe2xldCByPXRoaXMucHJvY2Vzc1N0YXRlcy5nZXQoZSk7aWYocil7dHJ5e3Iub3V0cHV0Q29udHJvbGxlci5jbG9zZSgpfWNhdGNoe31yLnJlc29sdmVFeGl0KHQpLHRoaXMucHJvY2Vzc1N0YXRlcy5kZWxldGUoZSl9fWFzeW5jIGtpbGxQcm9jZXNzKGUpe2xldCB0PXRoaXMucHJvY2Vzc1NvY2tldDt0JiYoYXdhaXQgdC5jcmVhdGVUeXBlZFJlcXVlc3QoIndvcmtzcGFjZUtpbGxQcm9jZXNzIikuZmlyZSh7aWRlbnRpdHk6dGhpcy5pZGVudGl0eSxwcm9jZXNzSWQ6ZX0pLmNhdGNoKCgpPT57fSksdGhpcy5jb21wbGV0ZVByb2Nlc3NTdGF0ZShlLC0xKSxhd2FpdCB0LnJlbW92ZVRhZyhgd29ya3NwYWNlUHJvY2Vzczoke2V9YCkuY2F0Y2goKCk9Pnt9KSl9YXN5bmMgZmlyZVJlcXVlc3QoZSx0KXtyZXR1cm4gYXdhaXQgbmV3IE9GYS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLGUpLmZpcmUoe2lkZW50aXR5OnRoaXMuaWRlbnRpdHksc2VydmljZU5hbWU6dGhpcy5zZXJ2aWNlTmFtZSwuLi50fSl9fX0pO3ZhciBuaGE9e307bHQobmhhLHtPYlZpZXdTZXJ2aWNlczooKT0+dnR0fSk7ZnVuY3Rpb24gQmllKGEpe2lmKCFhfHxhPT09MClyZXR1cm4iMCBCIjtsZXQgZT1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdLHQ9MTAyNCxyPU1hdGguZmxvb3IoTWF0aC5sb2coYSkvTWF0aC5sb2codCkpO3JldHVybmAkeyhhL01hdGgucG93KHQscikpLnRvRml4ZWQoMSl9ICR7ZVtyXX1gfWZ1bmN0aW9uIEZGYShhKXtsZXQgZT1hLmxhc3RJbmRleE9mKCI6IiksdD1hLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIGU+dCYmZT4wP3tyZXBvc2l0b3J5OmEuc3Vic3RyaW5nKDAsZSksdGFnOmEuc3Vic3RyaW5nKGUrMSl9OntyZXBvc2l0b3J5OmEsdGFnOiJsYXRlc3QifX1mdW5jdGlvbiBaNWEoYSl7c3dpdGNoKGEpe2Nhc2UicnVubmluZyI6cmV0dXJuInJ1bm5pbmciO2Nhc2Uic3RhcnRpbmciOnJldHVybiJzdGFydGluZyI7Y2FzZSJmYWlsZWQiOnJldHVybiJlcnJvciI7ZGVmYXVsdDpyZXR1cm4ic3RvcHBlZCJ9fWZ1bmN0aW9uIEJGYShhKXtsZXQgZT1GRmEoYS5pbWFnZSk7cmV0dXJue25hbWU6YS5uYW1lLHN0YXR1czpaNWEoYS5zdGF0dXMpLGltYWdlOmEuaW1hZ2UscG9ydDphLnBvcnQsZG9tYWluOmEuZG9tYWlufHxudWxsLGNvbnRhaW5lcklkOmEuY29udGFpbmVySUR8fCIiLGNyZWF0ZWQ6YS5jcmVhdGVkQXQ/bmV3IERhdGUoYS5jcmVhdGVkQXQpLnRvTG9jYWxlU3RyaW5nKCk6Ii0iLHVwZGF0ZWQ6YS51cGRhdGVkQXQ/bmV3IERhdGUoYS51cGRhdGVkQXQpLnRvTG9jYWxlU3RyaW5nKCk6Ii0iLHJlZ2lzdHJ5OmEudXNlT25lYm94UmVnaXN0cnk/Ik9uZWJveCBSZWdpc3RyeSI6YS5yZWdpc3RyeXx8IkRvY2tlciBIdWIiLHJlcG9zaXRvcnk6YS5yZWdpc3RyeVJlcG9zaXRvcnl8fGUucmVwb3NpdG9yeSx0YWc6YS5yZWdpc3RyeUltYWdlVGFnfHxlLnRhZ319ZnVuY3Rpb24gSEZhKGEpe3JldHVybntjcHU6YS5jcHVQZXJjZW50LG1lbW9yeTpCaWUoYS5tZW1vcnlVc2VkKSxtZW1vcnlMaW1pdDpCaWUoYS5tZW1vcnlMaW1pdCksbmV0d29ya0luOkJpZShhLm5ldHdvcmtSeCksbmV0d29ya091dDpCaWUoYS5uZXR3b3JrVHgpfX1mdW5jdGlvbiBxRmEoYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZT0+e2xldCB0PWUudGltZXN0YW1wP3R5cGVvZiBlLnRpbWVzdGFtcD09Im51bWJlciI/bmV3IERhdGUoZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCk6U3RyaW5nKGUudGltZXN0YW1wKTpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkscj1lLm1lc3NhZ2V8fFN0cmluZyhlKSxpPWUubGV2ZWx8fCJpbmZvIjtyZXR1cm57dGltZXN0YW1wOnQsbWVzc2FnZTpyLGxldmVsOml9fSk6dHlwZW9mIGE9PSJzdHJpbmciJiZhLnRyaW0oKT9hLnNwbGl0KGAKYCkuZmlsdGVyKGU9PmUudHJpbSgpKS5tYXAoZT0+e2xldCB0PWUubWF0Y2goL14oXGR7NH0tXGR7Mn0tXGR7Mn1UW1xkOi5dK1o/KVxzKyguKikvKSxyPXQ/dFsxXTpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksaT10P3RbMl06ZSxvPWkudG9Mb3dlckNhc2UoKSxuPW8uaW5jbHVkZXMoImVycm9yIil8fG8uaW5jbHVkZXMoImZhdGFsIik/ImVycm9yIjpvLmluY2x1ZGVzKCJ3YXJuIik/Indhcm4iOiJpbmZvIjtyZXR1cm57dGltZXN0YW1wOnIsbWVzc2FnZTppLGxldmVsOm59fSk6W119dmFyIFg1YSxRNWEsSjVhLGVoYSx0aGEsYWhhLHJoYSxzaGEsaWhhLG9oYSxpcixkdHQsdXR0LHB0dCxmdHQsaHR0LG10dCxndHQsYnR0LFZGYSx2byx2dHQseHR0PWYoYXN5bmMoKT0+e21vKCk7ZTIoKTthd2FpdCBLbigpO3A3KCk7SzVhKCk7bGUoKTtzKEJpZSwiZm9ybWF0Qnl0ZXMiKTtzKEZGYSwicGFyc2VJbWFnZVN0cmluZyIpO3MoWjVhLCJtYXBTdGF0dXMiKTtzKEJGYSwidG9TZXJ2aWNlRGV0YWlsIik7cyhIRmEsInRvU2VydmljZVN0YXRzIik7cyhxRmEsInBhcnNlTG9ncyIpO1ZGYT17Y3B1OjAsbWVtb3J5OiIwIEIiLG1lbW9yeUxpbWl0OiIwIEIiLG5ldHdvcmtJbjoiMCBCIixuZXR3b3JrT3V0OiIwIEIifTtvaGE9W2llKCJvYi12aWV3LXNlcnZpY2VzIildO3ZvPWNsYXNzIHZvIGV4dGVuZHMoaWhhPXBlLHNoYT1bSygpXSxyaGE9W0soKV0sYWhhPVtLKCldLHRoYT1bSygpXSxlaGE9W0soKV0sSjVhPVtLKCldLFE1YT1bSygpXSxYNWE9W0soKV0saWhhKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7UnQodGhpcyxkdHQsVmUoaXIsOCx0aGlzLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119KSksVmUoaXIsMTEsdGhpcyk7UnQodGhpcyx1dHQsVmUoaXIsMTIsdGhpcyx7YmFja3VwczpbXSxzY2hlZHVsZXM6W119KSksVmUoaXIsMTUsdGhpcyk7UnQodGhpcyxwdHQsVmUoaXIsMTYsdGhpcywibGlzdCIpKSxWZShpciwxOSx0aGlzKTtSdCh0aGlzLGZ0dCxWZShpciwyMCx0aGlzLCIiKSksVmUoaXIsMjMsdGhpcyk7UnQodGhpcyxodHQsVmUoaXIsMjQsdGhpcywiIikpLFZlKGlyLDI3LHRoaXMpO1J0KHRoaXMsbXR0LFZlKGlyLDI4LHRoaXMsITEpKSxWZShpciwzMSx0aGlzKTtSdCh0aGlzLGd0dCxWZShpciwzMix0aGlzLG51bGwpKSxWZShpciwzNSx0aGlzKTtSdCh0aGlzLGJ0dCxWZShpciwzNix0aGlzLHthcHBzOltdLHVwZ3JhZGVhYmxlU2VydmljZXM6W10sdXBncmFkZU9wZXJhdGlvbnM6W119KSksVmUoaXIsMzksdGhpcyk7bGV0IHQ9UHQuc2VsZWN0KG89Pm8pLnN1YnNjcmliZShvPT57dGhpcy5zZXJ2aWNlc1N0YXRlPW99KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpO2xldCByPXQyLnNlbGVjdChvPT5vKS5zdWJzY3JpYmUobz0+e3RoaXMuYmFja3Vwc1N0YXRlPW99KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBpPWdvLnNlbGVjdChvPT5vKS5zdWJzY3JpYmUobz0+e3RoaXMuYXBwU3RvcmVTdGF0ZT1vfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChpKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgUHJvbWlzZS5hbGwoW1B0LmRpc3BhdGNoQWN0aW9uKEFpZSxudWxsKSxQdC5kaXNwYXRjaEFjdGlvbihQaWUsbnVsbCksZ28uZGlzcGF0Y2hBY3Rpb24odzVhLG51bGwpLGdvLmRpc3BhdGNoQWN0aW9uKFJpZSxudWxsKV0pO2xldCB0PVB0LmdldFN0YXRlKCk7aWYodC5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlKXtsZXQgcj10LmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2UudHlwZTtQdC5zZXRTdGF0ZSh7Li4uUHQuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGx9KSx0aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChyKX19cmVuZGVyKCl7c3dpdGNoKHRoaXMuY3VycmVudFZpZXcpe2Nhc2UiY3JlYXRlIjpyZXR1cm4gdGhpcy5yZW5kZXJDcmVhdGVWaWV3KCk7Y2FzZSJkZXRhaWwiOnJldHVybiB0aGlzLnJlbmRlckRldGFpbFZpZXcoKTtjYXNlImJhY2t1cHMiOnJldHVybiB0aGlzLnJlbmRlckJhY2t1cHNWaWV3KCk7Y2FzZSJwbGF0Zm9ybS1kZXRhaWwiOnJldHVybiB0aGlzLnJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyTGlzdFZpZXcoKX19cmVuZGVyTGlzdFZpZXcoKXtsZXQgdD10aGlzLnNlcnZpY2VzU3RhdGUuc2VydmljZXMubWFwKGw9Pih7bmFtZTpsLm5hbWUsaW1hZ2U6bC5pbWFnZSxkb21haW46bC5kb21haW58fG51bGwsc3RhdHVzOlo1YShsLnN0YXR1cyl9KSkscj1zKGw9Pntzd2l0Y2gobCl7Y2FzZSJydW5uaW5nIjpyZXR1cm4iUnVubmluZyI7Y2FzZSJzdG9wcGVkIjpyZXR1cm4iU3RvcHBlZCI7Y2FzZSJzdGFydGluZyI6cmV0dXJuIlN0YXJ0aW5nLi4uIjtjYXNlInN0b3BwaW5nIjpyZXR1cm4iU3RvcHBpbmcuLi4iO2Nhc2UiZmFpbGVkIjpyZXR1cm4iRmFpbGVkIjtjYXNlIm5vdC1kZXBsb3llZCI6cmV0dXJuIk5vdCBEZXBsb3llZCI7ZGVmYXVsdDpyZXR1cm4gbH19LCJkaXNwbGF5U3RhdHVzIiksaT10aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maWx0ZXIobD0+bC5zdGF0dXM9PT0icnVubmluZyJ8fGwuc3RhdHVzPT09InN0YXJ0aW5nInx8bC5zdGF0dXM9PT0ic3RvcHBpbmcifHxsLmlzQ29yZSksbz10aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maWx0ZXIobD0+IWwuaXNDb3JlJiYobC5zdGF0dXM9PT0ibm90LWRlcGxveWVkInx8bC5zdGF0dXM9PT0ic3RvcHBlZCJ8fGwuc3RhdHVzPT09ImZhaWxlZCIpKSxuPWkubWFwKGw9Pih7bmFtZTpsLmRpc3BsYXlOYW1lLHN0YXR1czpyKGwuc3RhdHVzKSxydW5uaW5nOmwuc3RhdHVzPT09InJ1bm5pbmciLHR5cGU6bC50eXBlfSkpO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+U2VydmljZXM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWFjdGlvbnMiPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iY3JlYXRlIn19PgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBEZXBsb3kgU2VydmljZQogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHN6LXNlcnZpY2VzLWxpc3QtdmlldwogICAgICAgIC5zZXJ2aWNlcz0ke3R9CiAgICAgICAgQHNlcnZpY2UtY2xpY2s9JHtsPT57dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lPWwuZGV0YWlsLm5hbWV8fGwuZGV0YWlsLnNlcnZpY2U/Lm5hbWUsUHQuZGlzcGF0Y2hBY3Rpb24oZTVhLHtuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZX0pLFB0LmRpc3BhdGNoQWN0aW9uKGk1YSx7bmFtZTp0aGlzLnNlbGVjdGVkU2VydmljZU5hbWV9KSxQdC5kaXNwYXRjaEFjdGlvbihvNWEse25hbWU6dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lfSksdGhpcy5jdXJyZW50Vmlldz0iZGV0YWlsIn19CiAgICAgICAgQHNlcnZpY2UtYWN0aW9uPSR7bD0+dGhpcy5oYW5kbGVTZXJ2aWNlQWN0aW9uKGwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1saXN0LXZpZXc+CiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZyBzdHlsZT0ibWFyZ2luLXRvcDogMzJweDsiPlBsYXRmb3JtIFNlcnZpY2VzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBzdHlsZT0ibWF4LXdpZHRoOiA1MDBweDsiPgogICAgICAgICR7bi5sZW5ndGg+MD93YAogICAgICAgICAgPHN6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQKICAgICAgICAgICAgLnNlcnZpY2VzPSR7bn0KICAgICAgICAgICAgQHNlcnZpY2UtY2xpY2s9JHtsPT57bGV0IGQ9bC5kZXRhaWwudHlwZXx8dGhpcy5zZXJ2aWNlc1N0YXRlLnBsYXRmb3JtU2VydmljZXMuZmluZChjPT5jLmRpc3BsYXlOYW1lPT09bC5kZXRhaWwubmFtZSk/LnR5cGU7ZCYmdGhpcy5uYXZpZ2F0ZVRvUGxhdGZvcm1EZXRhaWwoZCl9fQogICAgICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgICAgICBgOiIifQogICAgICAgICR7by5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICMwOTA5MGIpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAke24ubGVuZ3RoPjA/IjEycHgiOiIwIn07CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgICI+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tYm90dG9tOiAxMnB4OyI+QXZhaWxhYmxlIOKAlCBub3QgaW4gdXNlPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTJweDsiPgogICAgICAgICAgICAgICR7by5tYXAobD0+d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZzogOHB4IDA7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlOyIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVUb1BsYXRmb3JtRGV0YWlsKGwudHlwZSl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTMsICMzZjNmNDYpOyBmbGV4LXNocmluazogMDsiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsiPiR7bC5kaXNwbGF5TmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtMywgIzNmM2Y0Nik7Ij4ke3IobC5zdGF0dXMpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkZXBsb3lGcm9tVGVtcGxhdGUodCl7bGV0IHI9dC5pZHx8dC5uYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTktXS9nLCItIiksaT17fTtpZih0LmVudlZhcnMpZm9yKGxldCBuIG9mIHQuZW52VmFycyluLmtleSYmbi52YWx1ZSYmKGlbbi5rZXldPW4udmFsdWUpO2xldCBvPXtuYW1lOnIsaW1hZ2U6dC5pbWFnZSxwb3J0OnQucG9ydHx8ODAsZW52VmFyczppLGVuYWJsZU1vbmdvREI6dC5lbmFibGVNb25nb0RCfHwhMSxlbmFibGVTMzp0LmVuYWJsZVMzfHwhMSxlbmFibGVDbGlja0hvdXNlOnQuZW5hYmxlQ2xpY2tIb3VzZXx8ITEsZW5hYmxlUmVkaXM6dC5lbmFibGVSZWRpc3x8ITEsZW5hYmxlTWFyaWFEQjp0LmVuYWJsZU1hcmlhREJ8fCExfTthd2FpdCBQdC5kaXNwYXRjaEFjdGlvbihSZXQse2NvbmZpZzpvfSksdGhpcy5wZW5kaW5nVGVtcGxhdGU9bnVsbCx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In1yZW5kZXJDcmVhdGVWaWV3KCl7aWYodGhpcy5wZW5kaW5nVGVtcGxhdGUpe2xldCB0PXRoaXMucGVuZGluZ1RlbXBsYXRlO3JldHVybiB3YAogICAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5EZXBsb3kgJHt0Lm5hbWV9PC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgICA8ZGl2IHN0eWxlPSJtYXgtd2lkdGg6IDYwMHB4OyBtYXJnaW46IDAgYXV0bzsiPgogICAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgIzA5MDkwYik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOyBib3JkZXItcmFkaXVzOiA4cHg7IHBhZGRpbmc6IDI0cHg7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij4KICAgICAgICAgICAgPGgzIHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxOHB4OyI+JHt0Lm5hbWV9PC9oMz4KICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMCAwIDE2cHggMDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOyBmb250LXNpemU6IDE0cHg7Ij4ke3QuZGVzY3JpcHRpb259PC9wPgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTJweDsgZm9udC1zaXplOiAxM3B4OyI+CiAgICAgICAgICAgICAgPGRpdj48c3BhbiBzdHlsZT0iY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOyI+SW1hZ2U6PC9zcGFuPiA8c3Ryb25nPiR7dC5pbWFnZX08L3N0cm9uZz48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij5Qb3J0Ojwvc3Bhbj4gPHN0cm9uZz4ke3QucG9ydH08L3N0cm9uZz48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij5TZXJ2aWNlIE5hbWU6PC9zcGFuPiA8c3Ryb25nPiR7dC5pZH08L3N0cm9uZz48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij5DYXRlZ29yeTo8L3NwYW4+IDxzdHJvbmc+JHt0LmNhdGVnb3J5fTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0LmVuYWJsZU1vbmdvREJ8fHQuZW5hYmxlUzN8fHQuZW5hYmxlQ2xpY2tIb3VzZXx8dC5lbmFibGVSZWRpc3x8dC5lbmFibGVNYXJpYURCP3dgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTJweDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij4KICAgICAgICAgICAgICAgIFBsYXRmb3JtIFNlcnZpY2VzOgogICAgICAgICAgICAgICAgJHt0LmVuYWJsZU1vbmdvREI/d2A8c3BhbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA4cHg7Ij5Nb25nb0RCPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlUzM/d2A8c3BhbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA4cHg7Ij5TMzwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgJHt0LmVuYWJsZUNsaWNrSG91c2U/d2A8c3BhbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA4cHg7Ij5DbGlja0hvdXNlPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3QuZW5hYmxlUmVkaXM/d2A8c3BhbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA4cHg7Ij5SZWRpczwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgJHt0LmVuYWJsZU1hcmlhREI/d2A8c3BhbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA4cHg7Ij5NYXJpYURCPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMTJweDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBzdHlsZT0iYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOyBjb2xvcjogaW5oZXJpdDsiIEBjbGljaz0keygpPT57dGhpcy5wZW5kaW5nVGVtcGxhdGU9bnVsbCx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In19PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5kZXBsb3lGcm9tVGVtcGxhdGUodCl9PkRlcGxveSAke3QubmFtZX08L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+Q3JlYXRlIFNlcnZpY2U8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otc2VydmljZS1jcmVhdGUtdmlldwogICAgICAgIC5yZWdpc3RyaWVzPSR7W119CiAgICAgICAgQGNyZWF0ZS1zZXJ2aWNlPSR7YXN5bmMgdD0+e2xldCByPXQuZGV0YWlsLGk9e25hbWU6ci5uYW1lLGltYWdlOnIuaW1hZ2UscG9ydDpyLnBvcnRzPy5bMF0/LmNvbnRhaW5lclBvcnQ/cGFyc2VJbnQoci5wb3J0c1swXS5jb250YWluZXJQb3J0LDEwKTo4MCxlbnZWYXJzOnIuZW52VmFycz8ucmVkdWNlKChvLG4pPT4obi5rZXkmJihvW24ua2V5XT1uLnZhbHVlKSxvKSx7fSksZW5hYmxlTW9uZ29EQjpyLmVuYWJsZU1vbmdvREJ8fCExLGVuYWJsZVMzOnIuZW5hYmxlUzN8fCExLGVuYWJsZUNsaWNrSG91c2U6ci5lbmFibGVDbGlja0hvdXNlfHwhMSxlbmFibGVSZWRpczpyLmVuYWJsZVJlZGlzfHwhMSxlbmFibGVNYXJpYURCOnIuZW5hYmxlTWFyaWFEQnx8ITF9O2F3YWl0IFB0LmRpc3BhdGNoQWN0aW9uKFJldCx7Y29uZmlnOml9KSx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In19CiAgICAgICAgQGNhbmNlbD0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgYH1yZW5kZXJEZXRhaWxWaWV3KCl7bGV0IHQ9dGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRTZXJ2aWNlLHI9dD9CRmEodCk6bnVsbCxpPXRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZVN0YXRzP0hGYSh0aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFNlcnZpY2VTdGF0cyk6VkZhLG89cUZhKHRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZUxvZ3MpLG49dD90aGlzLmFwcFN0b3JlU3RhdGUudXBncmFkZWFibGVTZXJ2aWNlcy5maW5kKGM9PmMuc2VydmljZU5hbWU9PT10Lm5hbWUpOm51bGwsbD10P3RoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlT3BlcmF0aW9ucy5maW5kKGM9PmMuc2VydmljZU5hbWU9PT10Lm5hbWUmJmMuc3RhdHVzPT09InJ1bm5pbmciKTpudWxsLGQ9dD90aGlzLmFwcFN0b3JlU3RhdGUudXBncmFkZU9wZXJhdGlvbnMuZmluZChjPT5jLnNlcnZpY2VOYW1lPT09dC5uYW1lKTpudWxsO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+U2VydmljZSBEZXRhaWxzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgJHtsP3RoaXMucmVuZGVyVXBncmFkZU9wZXJhdGlvbihsKToiIn0KICAgICAgJHshbCYmZD8uc3RhdHVzPT09ImZhaWxlZCI/dGhpcy5yZW5kZXJVcGdyYWRlT3BlcmF0aW9uKGQpOiIifQogICAgICAke24/d2AKICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpLCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xKSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOyI+CiAgICAgICAgICAgICAgVXBkYXRlIGF2YWlsYWJsZTogdiR7bi5jdXJyZW50VmVyc2lvbn0gJnJhcnI7IHYke24ubGF0ZXN0VmVyc2lvbn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA0cHg7Ij4KICAgICAgICAgICAgICAke24uaGFzTWlncmF0aW9uPyJNaWdyYXRpb24gc2NyaXB0IGF2YWlsYWJsZSI6IkNvbmZpZy1vbmx5IHVwZ3JhZGUifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0iZGVwbG95LWJ1dHRvbiIKICAgICAgICAgICAgc3R5bGU9InBhZGRpbmc6IDhweCAxNnB4OyBmb250LXNpemU6IDEzcHg7IgogICAgICAgICAgICA/ZGlzYWJsZWQ9JHshIWx9CiAgICAgICAgICAgIEBjbGljaz0ke2FzeW5jKCk9Pnthd2FpdCBnby5kaXNwYXRjaEFjdGlvbihNNWEse3NlcnZpY2VOYW1lOm4uc2VydmljZU5hbWUsdGFyZ2V0VmVyc2lvbjpuLmxhdGVzdFZlcnNpb259KX19CiAgICAgICAgICA+JHtsPyJVcGdyYWRpbmcuLi4iOiJVcGdyYWRlIn08L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3J9CiAgICAgICAgLmxvZ3M9JHtvfQogICAgICAgIC5zdGF0cz0ke2l9CiAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgICBAc2VydmljZS1hY3Rpb249JHtjPT50aGlzLmhhbmRsZVNlcnZpY2VBY3Rpb24oYyl9CiAgICAgICAgQHJlcXVlc3Qtd29ya3NwYWNlPSR7YXN5bmMgYz0+e2xldCBwPWMuZGV0YWlsPy5zZXJ2aWNlPy5uYW1lfHx0aGlzLnNlbGVjdGVkU2VydmljZU5hbWUsdT1xci5nZXRTdGF0ZSgpLmlkZW50aXR5O2lmKCEoIXB8fCF1KSl0cnl7bGV0IG09bmV3IEZpZShwLHUpO2F3YWl0IG0uaW5pdCgpO2xldCB2PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3Rvcigic3otc2VydmljZS1kZXRhaWwtdmlldyIpO3YmJih2LndvcmtzcGFjZUVudmlyb25tZW50PW0pLHRoaXMud29ya3NwYWNlT3Blbj0hMCx0aGlzLmNsYXNzTGlzdC5hZGQoIndvcmtzcGFjZS1tb2RlIil9Y2F0Y2gobSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIG9wZW4gd29ya3NwYWNlOiIsbSl9fX0KICAgICAgICBAYmFjaz0keygpPT57dGhpcy53b3Jrc3BhY2VPcGVuPSExLHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgid29ya3NwYWNlLW1vZGUiKSx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In19CiAgICAgID48L3N6LXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfXJlbmRlclVwZ3JhZGVPcGVyYXRpb24odCl7bGV0IHI9dC5zdGF0dXM9PT0iZmFpbGVkIj8iI2Y4NzE3MSI6IiM2MGE1ZmEiO3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3J9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICI+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDE2cHg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsiPgogICAgICAgICAgICAgIFVwZ3JhZGUgJHt0LmZyb21WZXJzaW9ufSAmcmFycjsgJHt0LnRhcmdldFZlcnNpb259OiAke3Quc3RlcH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA0cHg7Ij4KICAgICAgICAgICAgICAke3Quc3RhdHVzPT09InJ1bm5pbmciPyJPcGVyYXRpb24gaXMgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZC4iOnQuZXJyb3J8fCJPcGVyYXRpb24gZmluaXNoZWQuIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiAke3J9OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4wNGVtOyI+CiAgICAgICAgICAgICR7dC5zdGF0dXN9CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMCwgIzAzMDMwNSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEzMHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgIj4ke3QucHJvZ3Jlc3NMaW5lcy5zbGljZSgtOCkuam9pbihgCmApfTwvZGl2PgogICAgICAgICR7dC53YXJuaW5ncy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsgY29sb3I6ICNmYmJmMjQ7IGZvbnQtc2l6ZTogMTJweDsiPgogICAgICAgICAgICAke3Qud2FybmluZ3Muam9pbigiIHwgIil9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQmFja3Vwc1ZpZXcoKXtyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkJhY2t1cHM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otc2VydmljZXMtYmFja3Vwcy12aWV3CiAgICAgICAgLnNjaGVkdWxlcz0ke3RoaXMuYmFja3Vwc1N0YXRlLnNjaGVkdWxlc30KICAgICAgICAuYmFja3Vwcz0ke3RoaXMuYmFja3Vwc1N0YXRlLmJhY2t1cHN9CiAgICAgICAgQGNyZWF0ZS1zY2hlZHVsZT0ke3Q9Pnt0Mi5kaXNwYXRjaEFjdGlvbihoNWEse2NvbmZpZzp0LmRldGFpbH0pfX0KICAgICAgICBAcnVuLW5vdz0ke3Q9Pnt0Mi5kaXNwYXRjaEFjdGlvbihtNWEse3NjaGVkdWxlSWQ6dC5kZXRhaWwuc2NoZWR1bGVJZH0pfX0KICAgICAgICBAZGVsZXRlLWJhY2t1cD0ke3Q9Pnt0Mi5kaXNwYXRjaEFjdGlvbihmNWEse2JhY2t1cElkOnQuZGV0YWlsLmJhY2t1cElkfSl9fQogICAgICA+PC9zei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXc+CiAgICBgfW5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbCh0KXt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlPXQsUHQuc2V0U3RhdGUoey4uLlB0LmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119KTtsZXQgcj10O1B0LmRpc3BhdGNoQWN0aW9uKEVpZSx7c2VydmljZVR5cGU6cn0pLFB0LmRpc3BhdGNoQWN0aW9uKG41YSx7c2VydmljZVR5cGU6cn0pLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY3VycmVudFZpZXc9InBsYXRmb3JtLWRldGFpbCJ9KX1yZW5kZXJQbGF0Zm9ybURldGFpbFZpZXcoKXtsZXQgdD10aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maW5kKGQ9PmQudHlwZT09PXRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGUpLHI9dGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VTdGF0cyxpPXtjcHU6cj9NYXRoLnJvdW5kKHIuY3B1UGVyY2VudCk6MCxtZW1vcnk6cj9NYXRoLnJvdW5kKHIubWVtb3J5UGVyY2VudCk6MCxzdG9yYWdlOjAsY29ubmVjdGlvbnM6dm9pZCAwfSxuPXQ/e21vbmdvZGI6e2hvc3Q6Im9uZWJveC1tb25nb2RiIixwb3J0OjI3MDE3LHZlcnNpb246IjQuNCIsY29uZmlnOntlbmdpbmU6IldpcmVkVGlnZXIiLGF1dGhFbmFibGVkOiEwfX0sbWluaW86e2hvc3Q6Im9uZWJveC1taW5pbyIscG9ydDo5ZTMsdmVyc2lvbjoibGF0ZXN0Iixjb25maWc6e2NvbnNvbGVQb3J0OjkwMDEscmVnaW9uOiJ1cy1lYXN0LTEifX0sY2xpY2tob3VzZTp7aG9zdDoib25lYm94LWNsaWNraG91c2UiLHBvcnQ6ODEyMyx2ZXJzaW9uOiJsYXRlc3QiLGNvbmZpZzp7bmF0aXZlUG9ydDo5ZTMsaHR0cFBvcnQ6ODEyM319LHNtYXJ0cHJveHk6e2hvc3Q6Im9uZWJveC1zbWFydHByb3h5Iixwb3J0OjgwLHZlcnNpb246ImxhdGVzdCIsY29uZmlnOntodHRwc1BvcnQ6NDQzLGFkbWluQXBpOjIwMTl9fSxtYXJpYWRiOntob3N0OiJvbmVib3gtbWFyaWFkYiIscG9ydDozMzA2LHZlcnNpb246IjExIixjb25maWc6e2VuZ2luZToiSW5ub0RCIixhdXRoRW5hYmxlZDohMH19LHJlZGlzOntob3N0OiJvbmVib3gtcmVkaXMiLHBvcnQ6NjM3OSx2ZXJzaW9uOiI3LWFscGluZSIsY29uZmlnOnthcHBlbmRvbmx5OiEwLG1heERhdGFiYXNlczoxNn19fVt0LnR5cGVdfHx7aG9zdDoidW5rbm93biIscG9ydDowLHZlcnNpb246IiIsY29uZmlnOnt9fTp7aG9zdDoiIixwb3J0OjAsdmVyc2lvbjoiIixjb25maWc6e319LGw9cyhkPT57c3dpdGNoKGQpe2Nhc2UicnVubmluZyI6cmV0dXJuInJ1bm5pbmciO2Nhc2UiZmFpbGVkIjpyZXR1cm4iZXJyb3IiO2RlZmF1bHQ6cmV0dXJuInN0b3BwZWQifX0sIm1hcFBsYXRmb3JtU3RhdHVzIik7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5QbGF0Zm9ybSBTZXJ2aWNlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0icGFnZS1hY3Rpb25zIiBzdHlsZT0ianVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGVwbG95LWJ1dHRvbiIgc3R5bGU9ImJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsgY29sb3I6IGluaGVyaXQ7IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QifX0+CiAgICAgICAgICAmbGFycjsgQmFjayB0byBTZXJ2aWNlcwogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHN6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3Q/e2lkOnQudHlwZSxuYW1lOnQuZGlzcGxheU5hbWUsdHlwZTp0LnR5cGUsc3RhdHVzOmwodC5zdGF0dXMpLHZlcnNpb246bi52ZXJzaW9uLGhvc3Q6bi5ob3N0LHBvcnQ6bi5wb3J0LGNvbmZpZzpuLmNvbmZpZyxtZXRyaWNzOml9Om51bGx9CiAgICAgICAgLmxvZ3M9JHt0aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3MubWFwKGQ9Pih7dGltZXN0YW1wOm5ldyBEYXRlKGQudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGxldmVsOmQubGV2ZWwsbWVzc2FnZTpkLm1lc3NhZ2V9KSl9CiAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgICBAc3RhcnQ9JHthc3luYygpPT57YXdhaXQgUHQuZGlzcGF0Y2hBY3Rpb24oT2V0LHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSksUHQuZGlzcGF0Y2hBY3Rpb24oRWllLHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSl9fQogICAgICAgIEBzdG9wPSR7YXN5bmMoKT0+e2F3YWl0IFB0LmRpc3BhdGNoQWN0aW9uKEZldCx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pfX0KICAgICAgICBAcmVzdGFydD0ke2FzeW5jKCk9Pnthd2FpdCBQdC5kaXNwYXRjaEFjdGlvbihGZXQse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxhd2FpdCBQdC5kaXNwYXRjaEFjdGlvbihPZXQse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxQdC5kaXNwYXRjaEFjdGlvbihFaWUse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KX19CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfWFzeW5jIGhhbmRsZVNlcnZpY2VBY3Rpb24odCl7bGV0IHI9dC5kZXRhaWwuYWN0aW9uLGk9dC5kZXRhaWwuc2VydmljZT8ubmFtZXx8dC5kZXRhaWwubmFtZXx8dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lO3N3aXRjaChyKXtjYXNlInN0YXJ0Ijphd2FpdCBQdC5kaXNwYXRjaEFjdGlvbihhNWEse25hbWU6aX0pO2JyZWFrO2Nhc2Uic3RvcCI6YXdhaXQgUHQuZGlzcGF0Y2hBY3Rpb24ocjVhLHtuYW1lOml9KTticmVhaztjYXNlInJlc3RhcnQiOmF3YWl0IFB0LmRpc3BhdGNoQWN0aW9uKHM1YSx7bmFtZTppfSk7YnJlYWs7Y2FzZSJkZWxldGUiOmF3YWl0IFB0LmRpc3BhdGNoQWN0aW9uKHQ1YSx7bmFtZTppfSksdGhpcy5jdXJyZW50Vmlldz0ibGlzdCI7YnJlYWt9fX07aXI9QXIoaWhhKSxkdHQ9bmV3IFdlYWtNYXAsdXR0PW5ldyBXZWFrTWFwLHB0dD1uZXcgV2Vha01hcCxmdHQ9bmV3IFdlYWtNYXAsaHR0PW5ldyBXZWFrTWFwLG10dD1uZXcgV2Vha01hcCxndHQ9bmV3IFdlYWtNYXAsYnR0PW5ldyBXZWFrTWFwLHl0KGlyLDQsInNlcnZpY2VzU3RhdGUiLHNoYSx2byxkdHQpLHl0KGlyLDQsImJhY2t1cHNTdGF0ZSIscmhhLHZvLHV0dCkseXQoaXIsNCwiY3VycmVudFZpZXciLGFoYSx2byxwdHQpLHl0KGlyLDQsInNlbGVjdGVkU2VydmljZU5hbWUiLHRoYSx2byxmdHQpLHl0KGlyLDQsInNlbGVjdGVkUGxhdGZvcm1UeXBlIixlaGEsdm8saHR0KSx5dChpciw0LCJ3b3Jrc3BhY2VPcGVuIixKNWEsdm8sbXR0KSx5dChpciw0LCJwZW5kaW5nVGVtcGxhdGUiLFE1YSx2byxndHQpLHl0KGlyLDQsImFwcFN0b3JlU3RhdGUiLFg1YSx2byxidHQpLHZvPXl0KGlyLDAsIk9iVmlld1NlcnZpY2VzIixvaGEsdm8pLHModm8sIk9iVmlld1NlcnZpY2VzIiksdnIodm8sInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxYcyxYYAogICAgICAucGFnZS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KC53b3Jrc3BhY2UtbW9kZSkgewogICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIDpob3N0KC53b3Jrc3BhY2UtbW9kZSkgb2Itc2VjdGlvbmhlYWRpbmcgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdKSxWZShpciwxLHZvKTt2dHQ9dm99KTt2YXIgZmhhPXt9O2x0KGZoYSx7T2JWaWV3TmV0d29yazooKT0+a3R0fSk7dmFyIGxoYSxjaGEsZGhhLHVoYSxwaGEsWG4seXR0LHd0dCxNdHQsZmwsa3R0LFN0dD1mKGFzeW5jKCk9PnttbygpO2UyKCk7YXdhaXQgS24oKTtsZSgpO3BoYT1baWUoIm9iLXZpZXctbmV0d29yayIpXTtmbD1jbGFzcyBmbCBleHRlbmRzKHVoYT1wZSxkaGE9W0soKV0sY2hhPVtLKCldLGxoYT1bSygpXSx1aGEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLHl0dCxWZShYbiw4LHRoaXMse3RhcmdldHM6W10sc3RhdHM6bnVsbCx0cmFmZmljU3RhdHM6bnVsbCxkbnNSZWNvcmRzOltdLGRvbWFpbnM6W10sZ2F0ZXdheURvbWFpbnM6W10sZ2F0ZXdheURuc1JlY29yZHM6W10sY2VydGlmaWNhdGVzOltdfSkpLFZlKFhuLDExLHRoaXMpO1J0KHRoaXMsd3R0LFZlKFhuLDEyLHRoaXMsInByb3h5IikpLFZlKFhuLDE1LHRoaXMpO1J0KHRoaXMsTXR0LFZlKFhuLDE2LHRoaXMsIiIpKSxWZShYbiwxOSx0aGlzKTtsZXQgdD15YS5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLm5ldHdvcmtTdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgUHJvbWlzZS5hbGwoW3lhLmRpc3BhdGNoQWN0aW9uKEJldCxudWxsKSx5YS5kaXNwYXRjaEFjdGlvbihJRyxudWxsKSx5YS5kaXNwYXRjaEFjdGlvbihORyxudWxsKSx5YS5kaXNwYXRjaEFjdGlvbihsNWEsbnVsbCkseWEuZGlzcGF0Y2hBY3Rpb24oSGV0LG51bGwpLHlhLmRpc3BhdGNoQWN0aW9uKElpZSxudWxsKV0pfXJlbmRlcigpe3N3aXRjaCh0aGlzLmN1cnJlbnRUYWIpe2Nhc2UiZG5zIjpyZXR1cm4gdGhpcy5yZW5kZXJEbnNWaWV3KCk7Y2FzZSJkb21haW5zIjpyZXR1cm4gdGhpcy5yZW5kZXJEb21haW5zVmlldygpO2Nhc2UiZG9tYWluLWRldGFpbCI6cmV0dXJuIHRoaXMucmVuZGVyRG9tYWluRGV0YWlsVmlldygpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyUHJveHlWaWV3KCl9fXJlbmRlclByb3h5Vmlldygpe2xldCB0PXRoaXMubmV0d29ya1N0YXRlLnN0YXRzO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+TmV0d29yazwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1uZXR3b3JrLXByb3h5LXZpZXcKICAgICAgICAucHJveHlTdGF0dXM9JHt0Py5wcm94eT8ucnVubmluZz8icnVubmluZyI6InN0b3BwZWQifQogICAgICAgIC5yb3V0ZUNvdW50PSR7U3RyaW5nKHQ/LnByb3h5Py5yb3V0ZXN8fDApfQogICAgICAgIC5jZXJ0aWZpY2F0ZUNvdW50PSR7U3RyaW5nKHQ/LnByb3h5Py5jZXJ0aWZpY2F0ZXN8fDApfQogICAgICAgIC50YXJnZXRDb3VudD0ke1N0cmluZyh0aGlzLm5ldHdvcmtTdGF0ZS50YXJnZXRzLmxlbmd0aCl9CiAgICAgICAgLnRhcmdldHM9JHt0aGlzLm5ldHdvcmtTdGF0ZS50YXJnZXRzLm1hcChyPT4oe3R5cGU6ci50eXBlLG5hbWU6ci5uYW1lLGRvbWFpbjpyLmRvbWFpbix0YXJnZXQ6YCR7ci50YXJnZXRIb3N0fToke3IudGFyZ2V0UG9ydH1gLHN0YXR1czpyLnN0YXR1c30pKX0KICAgICAgICAubG9ncz0ke1tdfQogICAgICAgIEByZWZyZXNoPSR7KCk9Pnt5YS5kaXNwYXRjaEFjdGlvbihCZXQsbnVsbCkseWEuZGlzcGF0Y2hBY3Rpb24oSUcsbnVsbCl9fQogICAgICA+PC9zei1uZXR3b3JrLXByb3h5LXZpZXc+CiAgICBgfXJlbmRlckRuc1ZpZXcoKXtyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkROUyBSZWNvcmRzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LW5ldHdvcmstZG5zLXZpZXcKICAgICAgICAucmVjb3Jkcz0ke3RoaXMubmV0d29ya1N0YXRlLmRuc1JlY29yZHN9CiAgICAgICAgQHN5bmM9JHsoKT0+e3lhLmRpc3BhdGNoQWN0aW9uKGM1YSxudWxsKX19CiAgICAgICAgQGRlbGV0ZT0ke3Q9Pntjb25zb2xlLmxvZygiRGVsZXRlIEROUyByZWNvcmQ6Iix0LmRldGFpbCl9fQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5zVmlldygpe2xldCB0PXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcztyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkRvbWFpbnM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otbmV0d29yay1kb21haW5zLXZpZXcKICAgICAgICAuZG9tYWlucz0ke3RoaXMubmV0d29ya1N0YXRlLmRvbWFpbnMubWFwKHI9PntsZXQgaT10LmZpbmQobj0+bi5jZXJ0RG9tYWluPT09ci5kb21haW4pLG89InBlbmRpbmciO3JldHVybiBpJiYoaS5pc1ZhbGlkP2kuZXhwaXJlc0F0JiZpLmV4cGlyZXNBdC1EYXRlLm5vdygpPDcyMCo2MCo2MCoxZTM/bz0iZXhwaXJpbmciOm89InZhbGlkIjpvPSJleHBpcmVkIikse2RvbWFpbjpyLmRvbWFpbixwcm92aWRlcjoiY2xvdWRmbGFyZSIsc2VydmljZUNvdW50OnIuc2VydmljZXM/Lmxlbmd0aHx8MCxjZXJ0aWZpY2F0ZVN0YXR1czpvfX0pfQogICAgICAgIEBzeW5jPSR7KCk9Pnt5YS5kaXNwYXRjaEFjdGlvbihIZXQsbnVsbCl9fQogICAgICAgIEB2aWV3PSR7cj0+e3RoaXMuc2VsZWN0ZWREb21haW49ci5kZXRhaWwuZG9tYWlufHxyLmRldGFpbCx0aGlzLmN1cnJlbnRUYWI9ImRvbWFpbi1kZXRhaWwifX0KICAgICAgPjwvc3otbmV0d29yay1kb21haW5zLXZpZXc+CiAgICBgfXJlbmRlckRvbWFpbkRldGFpbFZpZXcoKXtsZXQgdD10aGlzLm5ldHdvcmtTdGF0ZS5kb21haW5zLmZpbmQoaT0+aS5kb21haW49PT10aGlzLnNlbGVjdGVkRG9tYWluKSxyPXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcy5maW5kKGk9PmkuY2VydERvbWFpbj09PXRoaXMuc2VsZWN0ZWREb21haW4pO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RG9tYWluIERldGFpbHM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otZG9tYWluLWRldGFpbC12aWV3CiAgICAgICAgLmRvbWFpbj0ke3Q/e2lkOnRoaXMuc2VsZWN0ZWREb21haW4sbmFtZTp0aGlzLnNlbGVjdGVkRG9tYWluLHN0YXR1czoiYWN0aXZlIix2ZXJpZmllZDohMCxjcmVhdGVkQXQ6IiJ9Om51bGx9CiAgICAgICAgLmNlcnRpZmljYXRlPSR7cj97aWQ6ci5kb21haW5JZCxkb21haW46ci5jZXJ0RG9tYWluLGlzc3VlcjoiTGV0J3MgRW5jcnlwdCIsdmFsaWRGcm9tOnIuaXNzdWVkQXQ/bmV3IERhdGUoci5pc3N1ZWRBdCkudG9JU09TdHJpbmcoKToiIix2YWxpZFVudGlsOnIuZXhwaXJlc0F0P25ldyBEYXRlKHIuZXhwaXJlc0F0KS50b0lTT1N0cmluZygpOiIiLGRheXNSZW1haW5pbmc6ci5leHBpcmVzQXQ/TWF0aC5mbG9vcigoci5leHBpcmVzQXQtRGF0ZS5ub3coKSkvKDE0NDAqNjAqMWUzKSk6MCxzdGF0dXM6ci5pc1ZhbGlkPyJ2YWxpZCI6ImV4cGlyZWQiLGF1dG9SZW5ldzohMH06bnVsbH0KICAgICAgICAuZG5zUmVjb3Jkcz0ke3RoaXMubmV0d29ya1N0YXRlLmRuc1JlY29yZHMuZmlsdGVyKGk9PmkuZG9tYWluPy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkRG9tYWluKSkubWFwKGk9Pih7aWQ6aS5pZHx8IiIsdHlwZTppLnR5cGUsbmFtZTppLmRvbWFpbix2YWx1ZTppLnZhbHVlLHR0bDozNjAwfSkpfQogICAgICAgIEByZW5ldy1jZXJ0aWZpY2F0ZT0keygpPT57eWEuZGlzcGF0Y2hBY3Rpb24oZDVhLHtkb21haW46dGhpcy5zZWxlY3RlZERvbWFpbn0pfX0KICAgICAgPjwvc3otZG9tYWluLWRldGFpbC12aWV3PgogICAgYH19O1huPUFyKHVoYSkseXR0PW5ldyBXZWFrTWFwLHd0dD1uZXcgV2Vha01hcCxNdHQ9bmV3IFdlYWtNYXAseXQoWG4sNCwibmV0d29ya1N0YXRlIixkaGEsZmwseXR0KSx5dChYbiw0LCJjdXJyZW50VGFiIixjaGEsZmwsd3R0KSx5dChYbiw0LCJzZWxlY3RlZERvbWFpbiIsbGhhLGZsLE10dCksZmw9eXQoWG4sMCwiT2JWaWV3TmV0d29yayIscGhhLGZsKSxzKGZsLCJPYlZpZXdOZXR3b3JrIiksdnIoZmwsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxYcyxYYGBdKSxWZShYbiwxLGZsKTtrdHQ9Zmx9KTt2YXIgYmhhPXt9O2x0KGJoYSx7T2JWaWV3RG9tYWluczooKT0+Q3R0fSk7dmFyIGhoYSxtaGEsZ2hhLGc3LHp0dCxVNCxDdHQsdmhhPWYoYXN5bmMoKT0+e2UyKCk7bW8oKTthd2FpdCBLbigpO2xlKCk7Z2hhPVtpZSgib2Itdmlldy1kb21haW5zIildO1U0PWNsYXNzIFU0IGV4dGVuZHMobWhhPXBlLGhoYT1bSygpXSxtaGEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLHp0dCxWZShnNyw4LHRoaXMse3RhcmdldHM6W10sc3RhdHM6bnVsbCx0cmFmZmljU3RhdHM6bnVsbCxkbnNSZWNvcmRzOltdLGRvbWFpbnM6W10sZ2F0ZXdheURvbWFpbnM6W10sZ2F0ZXdheURuc1JlY29yZHM6W10sY2VydGlmaWNhdGVzOltdfSkpLFZlKGc3LDExLHRoaXMpO2xldCB0PXlhLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMubmV0d29ya1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB5YS5kaXNwYXRjaEFjdGlvbihxZXQsbnVsbCl9cmVuZGVyKCl7bGV0IHQ9dGhpcy5uZXR3b3JrU3RhdGUuZ2F0ZXdheURvbWFpbnM7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW5zPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0ibXV0ZWQiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxNnB4OyI+CiAgICAgICAgRG9tYWlucyBhcmUgbWFuYWdlZCBpbiBkY3JvdXRlci4gT25lYm94IHNob3dzIGdhdGV3YXkgdmlzaWJpbGl0eSBmb3IgZGVwbG95ZWQgc2VydmljZXMuCiAgICAgIDwvZGl2PgogICAgICAke3QubGVuZ3RoP3dgCiAgICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgICAgLmhlYWRpbmcxPSR7IkdhdGV3YXkgRG9tYWlucyJ9CiAgICAgICAgICAgICAgLmhlYWRpbmcyPSR7IkRvbWFpbnMgaW1wb3J0ZWQgZnJvbSBkY3JvdXRlciBnYXRld2F5IHZpc2liaWxpdHkifQogICAgICAgICAgICAgIC5kYXRhPSR7dH0KICAgICAgICAgICAgICAuc2hvd0NvbHVtbkZpbHRlcnM9JHshMH0KICAgICAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cj0+KHtEb21haW46d2AKICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW4iPiR7ci5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICR7ci5wcm92aWRlcklkP3dgPGRpdiBjbGFzcz0ibXV0ZWQiPlByb3ZpZGVyOiAke3IucHJvdmlkZXJJZH08L2Rpdj5gOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGAsU291cmNlOndgPHNwYW4gY2xhc3M9ImJhZGdlIj4ke3Iuc291cmNlfHwiZGNyb3V0ZXIifTwvc3Bhbj5gLEF1dGhvcml0YXRpdmU6ci5hdXRob3JpdGF0aXZlPyJZZXMiOiJObyIsU2VydmljZXM6ci5zZXJ2aWNlQ291bnR8fDB9KX0KICAgICAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6cm90YXRlQ3ciLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOnMoYXN5bmMoKT0+e2F3YWl0IHlhLmRpc3BhdGNoQWN0aW9uKHFldCxudWxsKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6Ik1hbmFnZSBpbiBkY3JvdXRlciIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uUmVsZXZhbmN5Q2hlY2tGdW5jOnMocj0+ISFyLm1hbmFnZVVybCwiYWN0aW9uUmVsZXZhbmN5Q2hlY2tGdW5jIiksYWN0aW9uRnVuYzpzKGFzeW5jIHI9PntyLml0ZW0ubWFuYWdlVXJsJiZnbG9iYWxUaGlzLm9wZW4oci5pdGVtLm1hbmFnZVVybCwiX2JsYW5rIiwibm9vcGVuZXIiKX0sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICAgICAgYDp3YDxkaXYgY2xhc3M9ImVtcHR5Ij5ObyBnYXRld2F5IGRvbWFpbnMgZm91bmQuIENvbmZpZ3VyZSBhIGRjcm91dGVyIGdhdGV3YXkgaW4gU2V0dGluZ3MuPC9kaXY+YH0KICAgIGB9fTtnNz1BcihtaGEpLHp0dD1uZXcgV2Vha01hcCx5dChnNyw0LCJuZXR3b3JrU3RhdGUiLGhoYSxVNCx6dHQpLFU0PXl0KGc3LDAsIk9iVmlld0RvbWFpbnMiLGdoYSxVNCkscyhVNCwiT2JWaWV3RG9tYWlucyIpLHZyKFU0LCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMsWHMsWGAKICAgICAgLmRvbWFpbiB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAgICAgLm11dGVkIHsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyBmb250LXNpemU6IDEzcHg7IH0KICAgICAgLmJhZGdlIHsgYm9yZGVyLXJhZGl1czogOTk5cHg7IHBhZGRpbmc6IDNweCA4cHg7IGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICNmNGY0ZjUpOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgLmVtcHR5IHsgcGFkZGluZzogMzJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IH0KICAgIGBdKSxWZShnNywxLFU0KTtDdHQ9VTR9KTt2YXIgTWhhPXt9O2x0KE1oYSx7T2JWaWV3RG5zUmVjb3JkczooKT0+VHR0fSk7dmFyIHhoYSx5aGEsd2hhLGI3LF90dCxXNCxUdHQsa2hhPWYoYXN5bmMoKT0+e2UyKCk7bW8oKTthd2FpdCBLbigpO2F3YWl0IEk1KCk7bGUoKTt3aGE9W2llKCJvYi12aWV3LWRucy1yZWNvcmRzIildO1c0PWNsYXNzIFc0IGV4dGVuZHMoeWhhPXBlLHhoYT1bSygpXSx5aGEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLF90dCxWZShiNyw4LHRoaXMse3RhcmdldHM6W10sc3RhdHM6bnVsbCx0cmFmZmljU3RhdHM6bnVsbCxkbnNSZWNvcmRzOltdLGRvbWFpbnM6W10sZ2F0ZXdheURvbWFpbnM6W10sZ2F0ZXdheURuc1JlY29yZHM6W10sY2VydGlmaWNhdGVzOltdfSkpLFZlKGI3LDExLHRoaXMpO2xldCB0PXlhLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMubmV0d29ya1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB5YS5kaXNwYXRjaEFjdGlvbihWZXQsbnVsbCl9cmVuZGVyKCl7bGV0IHQ9dGhpcy5uZXR3b3JrU3RhdGUuZ2F0ZXdheURuc1JlY29yZHM7cmV0dXJuIHdgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5ETlMgUmVjb3Jkczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgICR7dC5sZW5ndGg/d2AKICAgICAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgICAgICAuaGVhZGluZzE9JHsiR2F0ZXdheSBETlMgUmVjb3JkcyJ9CiAgICAgICAgICAgICAgLmhlYWRpbmcyPSR7IkROUyByZWNvcmRzIHB1Ymxpc2hlZCB0aHJvdWdoIGRjcm91dGVyIGZvciBPbmVib3ggc2VydmljZXMifQogICAgICAgICAgICAgIC5kYXRhPSR7dH0KICAgICAgICAgICAgICAuc2hvd0NvbHVtbkZpbHRlcnM9JHshMH0KICAgICAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cj0+KHtOYW1lOndgCiAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmFtZSI+JHtyLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgJHtyLmRvbWFpbk5hbWU/d2A8ZGl2IGNsYXNzPSJtdXRlZCI+JHtyLmRvbWFpbk5hbWV9PC9kaXY+YDoiIn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgLFR5cGU6d2A8c3BhbiBjbGFzcz0iYmFkZ2UiPiR7ci50eXBlfTwvc3Bhbj5gLFZhbHVlOndgPHNwYW4gY2xhc3M9InZhbHVlIj4ke3IudmFsdWV8fCItIn08L3NwYW4+YCxTdGF0dXM6d2A8c3BhbiBjbGFzcz0ke3Iuc3RhdHVzPT09Im1pc3NpbmciPyJtaXNzaW5nIjoiIn0+JHtyLnN0YXR1c308L3NwYW4+YCxTZXJ2aWNlOnIuc2VydmljZU5hbWV8fHIuYXBwSWR8fCItIn0pfQogICAgICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGVDdyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6cyhhc3luYygpPT57YXdhaXQgeWEuZGlzcGF0Y2hBY3Rpb24oVmV0LG51bGwpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiVmlldyBzZXJ2aWNlIixpY29uTmFtZToibHVjaWRlOmJveGVzIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6cyhhc3luYygpPT57Ym8ubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNYW5hZ2UgaW4gZGNyb3V0ZXIiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYzpzKHI9PiEhci5tYW5hZ2VVcmwsImFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYyIpLGFjdGlvbkZ1bmM6cyhhc3luYyByPT57ci5pdGVtLm1hbmFnZVVybCYmZ2xvYmFsVGhpcy5vcGVuKHIuaXRlbS5tYW5hZ2VVcmwsIl9ibGFuayIsIm5vb3BlbmVyIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgICAgIGA6d2A8ZGl2IGNsYXNzPSJlbXB0eSI+Tm8gZ2F0ZXdheSBETlMgcmVjb3JkcyBmb3VuZC4gQ29uZmlndXJlIGEgZGNyb3V0ZXIgZ2F0ZXdheSBpbiBTZXR0aW5ncy48L2Rpdj5gfQogICAgYH19O2I3PUFyKHloYSksX3R0PW5ldyBXZWFrTWFwLHl0KGI3LDQsIm5ldHdvcmtTdGF0ZSIseGhhLFc0LF90dCksVzQ9eXQoYjcsMCwiT2JWaWV3RG5zUmVjb3JkcyIsd2hhLFc0KSxzKFc0LCJPYlZpZXdEbnNSZWNvcmRzIiksdnIoVzQsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxYcyxYYAogICAgICAubmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAgICAgLnZhbHVlIHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTsgfQogICAgICAubXV0ZWQgeyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAuYmFkZ2UgeyBib3JkZXItcmFkaXVzOiA5OTlweDsgcGFkZGluZzogM3B4IDhweDsgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgI2Y0ZjRmNSk7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAubWlzc2luZyB7IGNvbG9yOiAjZGMyNjI2OyB9CiAgICAgIC5lbXB0eSB7IHBhZGRpbmc6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyB9CiAgICBgXSksVmUoYjcsMSxXNCk7VHR0PVc0fSk7dmFyIFRoYT17fTtsdChUaGEse09iVmlld1JlZ2lzdHJpZXM6KCk9PkR0dH0pO3ZhciBTaGEsemhhLENoYSxfaGEsV2MsTHR0LCR0dCxHYyxEdHQsQXR0PWYoYXN5bmMoKT0+e21vKCk7ZTIoKTthd2FpdCBLbigpO2F3YWl0IEk1KCk7bGUoKTtfaGE9W2llKCJvYi12aWV3LXJlZ2lzdHJpZXMiKV07R2M9Y2xhc3MgR2MgZXh0ZW5kcyhDaGE9cGUsemhhPVtLKCldLFNoYT1bSygpXSxDaGEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLEx0dCxWZShXYyw4LHRoaXMse3Rva2VuczpbXSxyZWdpc3RyeVN0YXR1czpudWxsfSkpLFZlKFdjLDExLHRoaXMpO1J0KHRoaXMsJHR0LFZlKFdjLDEyLHRoaXMsIm9uZWJveCIpKSxWZShXYywxNSx0aGlzKTtsZXQgdD1hMi5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLnJlZ2lzdHJpZXNTdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgYTIuZGlzcGF0Y2hBY3Rpb24oTmllLG51bGwpfXJlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iZXh0ZXJuYWwiP3RoaXMucmVuZGVyRXh0ZXJuYWxWaWV3KCk6dGhpcy5yZW5kZXJPbmVib3hWaWV3KCl9cmVuZGVyT25lYm94Vmlldygpe3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+UmVnaXN0cmllczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgLnN0YXR1cz0keyJydW5uaW5nIn0KICAgICAgICAucmVnaXN0cnlVcmw9JHsibG9jYWxob3N0OjUwMDAifQogICAgICAgIEBtYW5hZ2UtdG9rZW5zPSR7KCk9Pntiby5uYXZpZ2F0ZVRvVmlldygidG9rZW5zIil9fQogICAgICA+PC9zei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50PgogICAgYH1yZW5kZXJFeHRlcm5hbFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkV4dGVybmFsIFJlZ2lzdHJpZXM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldwogICAgICAgIC5yZWdpc3RyaWVzPSR7W119CiAgICAgICAgQGFkZD0ke3Q9Pntjb25zb2xlLmxvZygiQWRkIGV4dGVybmFsIHJlZ2lzdHJ5OiIsdC5kZXRhaWwpfX0KICAgICAgPjwvc3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldz4KICAgIGB9fTtXYz1BcihDaGEpLEx0dD1uZXcgV2Vha01hcCwkdHQ9bmV3IFdlYWtNYXAseXQoV2MsNCwicmVnaXN0cmllc1N0YXRlIix6aGEsR2MsTHR0KSx5dChXYyw0LCJjdXJyZW50VGFiIixTaGEsR2MsJHR0KSxHYz15dChXYywwLCJPYlZpZXdSZWdpc3RyaWVzIixfaGEsR2MpLHMoR2MsIk9iVmlld1JlZ2lzdHJpZXMiKSx2cihHYywic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLFhzLFhgYF0pLFZlKFdjLDEsR2MpO0R0dD1HY30pO3ZhciBBaGE9e307bHQoQWhhLHtPYlZpZXdUb2tlbnM6KCk9PkV0dH0pO3ZhciBMaGEsJGhhLERoYSx2NyxQdHQsRzQsRXR0LEl0dD1mKGFzeW5jKCk9PnttbygpO2UyKCk7YXdhaXQgS24oKTtsZSgpO0RoYT1baWUoIm9iLXZpZXctdG9rZW5zIildO0c0PWNsYXNzIEc0IGV4dGVuZHMoJGhhPXBlLExoYT1bSygpXSwkaGEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLFB0dCxWZSh2Nyw4LHRoaXMse3Rva2VuczpbXSxyZWdpc3RyeVN0YXR1czpudWxsfSkpLFZlKHY3LDExLHRoaXMpO2xldCB0PWEyLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMucmVnaXN0cmllc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHQpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBhMi5kaXNwYXRjaEFjdGlvbihOaWUsbnVsbCl9cmVuZGVyKCl7bGV0IHQ9dGhpcy5yZWdpc3RyaWVzU3RhdGUudG9rZW5zLmZpbHRlcihpPT5pLnR5cGU9PT0iZ2xvYmFsIikscj10aGlzLnJlZ2lzdHJpZXNTdGF0ZS50b2tlbnMuZmlsdGVyKGk9PmkudHlwZT09PSJjaSIpO3JldHVybiB3YAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+VG9rZW5zPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LXRva2Vucy12aWV3CiAgICAgICAgLmdsb2JhbFRva2Vucz0ke3QubWFwKGk9Pih7aWQ6aS5pZCxuYW1lOmkubmFtZSx0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDppLmNyZWF0ZWRBdCxsYXN0VXNlZDppLmxhc3RVc2VkfSkpfQogICAgICAgIC5jaVRva2Vucz0ke3IubWFwKGk9Pih7aWQ6aS5pZCxuYW1lOmkubmFtZSx0eXBlOiJjaSIsc2VydmljZTppLnNlcnZpY2UsY3JlYXRlZEF0OmkuY3JlYXRlZEF0LGxhc3RVc2VkOmkubGFzdFVzZWR9KSl9CiAgICAgICAgQGNyZWF0ZT0ke2k9PnthMi5kaXNwYXRjaEFjdGlvbih1NWEse3Rva2VuOntuYW1lOmBuZXctJHtpLmRldGFpbC50eXBlfS10b2tlbmAsdHlwZTppLmRldGFpbC50eXBlLHBlcm1pc3Npb25zOlsicHVsbCJdfX0pfX0KICAgICAgICBAZGVsZXRlPSR7aT0+e2EyLmRpc3BhdGNoQWN0aW9uKHA1YSx7dG9rZW5JZDppLmRldGFpbC5pZHx8aS5kZXRhaWwudG9rZW5JZH0pfX0KICAgICAgPjwvc3otdG9rZW5zLXZpZXc+CiAgICBgfX07djc9QXIoJGhhKSxQdHQ9bmV3IFdlYWtNYXAseXQodjcsNCwicmVnaXN0cmllc1N0YXRlIixMaGEsRzQsUHR0KSxHND15dCh2NywwLCJPYlZpZXdUb2tlbnMiLERoYSxHNCkscyhHNCwiT2JWaWV3VG9rZW5zIiksdnIoRzQsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxYcyxYYGBdKSxWZSh2NywxLEc0KTtFdHQ9RzR9KTt2YXIgUmhhPXt9O2x0KFJoYSx7T2JWaWV3U2V0dGluZ3M6KCk9Pk90dH0pO3ZhciBQaGEsRWhhLEloYSxOaGEsWWMsTnR0LFJ0dCxLYyxPdHQsRnR0PWYoYXN5bmMoKT0+e21vKCk7ZTIoKTthd2FpdCBLbigpO2xlKCk7TmhhPVtpZSgib2Itdmlldy1zZXR0aW5ncyIpXTtLYz1jbGFzcyBLYyBleHRlbmRzKEloYT1wZSxFaGE9W0soKV0sUGhhPVtLKCldLEloYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsTnR0LFZlKFljLDgsdGhpcyx7c2V0dGluZ3M6bnVsbCxiYWNrdXBQYXNzd29yZENvbmZpZ3VyZWQ6ITEsbWFuYWdlZERjUm91dGVyU3RhdHVzOm51bGx9KSksVmUoWWMsMTEsdGhpcyk7UnQodGhpcyxSdHQsVmUoWWMsMTIsdGhpcyx7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSkpLFZlKFljLDE1LHRoaXMpO2xldCB0PUZzLnNlbGVjdChpPT5pKS5zdWJzY3JpYmUoaT0+e3RoaXMuc2V0dGluZ3NTdGF0ZT1pfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0KTtsZXQgcj1xci5zZWxlY3QoaT0+aSkuc3Vic2NyaWJlKGk9Pnt0aGlzLmxvZ2luU3RhdGU9aX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IEZzLmRpc3BhdGNoQWN0aW9uKGpldCxudWxsKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPlNldHRpbmdzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgJHt0aGlzLnJlbmRlckFkbWluVWlTZXR0aW5ncygpfQogICAgICAke3RoaXMucmVuZGVyRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKX0KICAgICAgPHN6LXNldHRpbmdzLXZpZXcKICAgICAgICAuc2V0dGluZ3M9JHt0aGlzLnNldHRpbmdzU3RhdGUuc2V0dGluZ3N8fHtkYXJrTW9kZTohMCxjbG91ZGZsYXJlVG9rZW46IiIsY2xvdWRmbGFyZVpvbmVJZDoiIixhZG1pblVpRG9tYWluOiIiLGRjcm91dGVyTW9kZToibWFuYWdlZCIsZGNyb3V0ZXJNYW5hZ2VkSW1hZ2U6ImNvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9kY3JvdXRlcjpsYXRlc3QiLGRjcm91dGVyTWFuYWdlZE9wc1BvcnQ6MzMwMCxkY3JvdXRlck1hbmFnZWRIdHRwUG9ydDo4MCxkY3JvdXRlck1hbmFnZWRIdHRwc1BvcnQ6NDQzLGRjcm91dGVyTWFuYWdlZERhdGFEaXI6Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLGRjcm91dGVyR2F0ZXdheUNsaWVudElkOiIiLGRjcm91dGVyV29ya0hvc3RlcklkOiIiLGF1dG9SZW5ld0NlcnRzOiExLHJlbmV3YWxUaHJlc2hvbGQ6MzAsYWNtZUVtYWlsOiIiLGh0dHBQb3J0OjgwLGh0dHBzUG9ydDo0NDMsZm9yY2VIdHRwczohMX19CiAgICAgICAgLmN1cnJlbnRVc2VyPSR7dGhpcy5sb2dpblN0YXRlLmlkZW50aXR5Py51c2VybmFtZXx8ImFkbWluIn0KICAgICAgICBAc2V0dGluZy1jaGFuZ2U9JHt0PT57bGV0e2tleTpyLHZhbHVlOml9PXQuZGV0YWlsO0ZzLmRpc3BhdGNoQWN0aW9uKFJHLHtzZXR0aW5nczp7W3JdOml9fSl9fQogICAgICAgIEBzYXZlPSR7dD0+e0ZzLmRpc3BhdGNoQWN0aW9uKFJHLHtzZXR0aW5nczp0LmRldGFpbH0pfX0KICAgICAgICBAY2hhbmdlLXBhc3N3b3JkPSR7dD0+e2NvbnNvbGUubG9nKCJDaGFuZ2UgcGFzc3dvcmQgcmVxdWVzdGVkOiIsdC5kZXRhaWwpfX0KICAgICAgICBAcmVzZXQ9JHsoKT0+e0ZzLmRpc3BhdGNoQWN0aW9uKGpldCxudWxsKX19CiAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICBgfXJlbmRlckFkbWluVWlTZXR0aW5ncygpe2xldCB0PXRoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5ncztyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImdhdGV3YXktaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktaGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnYXRld2F5LXRpdGxlIj5PbmVib3ggQWRtaW4gVUk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnYXRld2F5LXN1YnRpdGxlIj5Db25maWd1cmUgdGhlIHB1YmxpYyBob3N0bmFtZSBmb3IgdGhpcyBPbmVib3ggZGFzaGJvYXJkPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1jb250ZW50Ij4KICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImFkbWluVWlEb21haW4iLCJBZG1pbiBVSSBEb21haW4iLHQ/LmFkbWluVWlEb21haW58fCIiLCJFeGFtcGxlOiBvbmVib3guZXhhbXBsZS5jb20uIExlYXZlIGVtcHR5IHRvIGRpc2FibGUgdGhlIHB1YmxpYyBBZG1pbiBVSSByb3V0ZS4iKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5UmVhZG9ubHkoIkxvY2FsIFRhcmdldCIsIk9uZWJveCBPcHNTZXJ2ZXIgb24gcG9ydCAzMDAwIiwiVGhlIGV4dGVybmFsIGdhdGV3YXkgZm9yd2FyZHMgdG8gU21hcnRQcm94eSwgd2hpY2ggZm9yd2FyZHMgdGhpcyBob3N0bmFtZSB0byB0aGUgT25lYm94IEFkbWluIFVJLiIpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZ2F0ZXdheS1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgdHlwZT0iYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlQWRtaW5VaVNldHRpbmdzKCl9PgogICAgICAgICAgICBTYXZlIEFkbWluIFVJIERvbWFpbgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJFeHRlcm5hbEdhdGV3YXlTZXR0aW5ncygpe2xldCB0PXRoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5ncyxyPXQ/LmRjcm91dGVyTW9kZXx8Im1hbmFnZWQiO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iZ2F0ZXdheS1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktdGl0bGUiPmRjcm91dGVyIEdhdGV3YXk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnYXRld2F5LXN1YnRpdGxlIj5SdW4gYSBsb2NhbCBtYW5hZ2VkIGRjcm91dGVyIG9yIGRlbGVnYXRlIHJvdXRpbmcgdG8gYW4gZXh0ZXJuYWwgZGNyb3V0ZXI8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LW1vZGUtcm93Ij4KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJtYW5hZ2VkIiwiTWFuYWdlZCBMb2NhbCIscil9CiAgICAgICAgICAke3RoaXMucmVuZGVyTW9kZUJ1dHRvbigiZXh0ZXJuYWwiLCJFeHRlcm5hbCBkY3JvdXRlciIscil9CiAgICAgICAgICAke3RoaXMucmVuZGVyTW9kZUJ1dHRvbigiZGlzYWJsZWQiLCJEaXNhYmxlZCIscil9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHtyPT09Im1hbmFnZWQiP3RoaXMucmVuZGVyTWFuYWdlZEdhdGV3YXlTdGF0dXMoKTpudWxsfQogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktY29udGVudCI+CiAgICAgICAgICAke3I9PT0ibWFuYWdlZCI/d2AKICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSW1hZ2UiLCJkY3JvdXRlciBJbWFnZSIsdD8uZGNyb3V0ZXJNYW5hZ2VkSW1hZ2V8fCJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IiwiT0NJIGltYWdlIHVzZWQgZm9yIHRoZSBtYW5hZ2VkIGxvY2FsIGdhdGV3YXkuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyTWFuYWdlZERhdGFEaXIiLCJEYXRhIERpcmVjdG9yeSIsdD8uZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcnx8Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLCJIb3N0IGRpcmVjdG9yeSBtb3VudGVkIGludG8gdGhlIGRjcm91dGVyIGNvbnRhaW5lci4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydCIsIkxvY2FsIE9wcyBQb3J0IixTdHJpbmcodD8uZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydHx8MzMwMCksIkJvdW5kIHRvIDEyNy4wLjAuMSBmb3IgT25lYm94IHRvIGNhbGwgZGNyb3V0ZXIgQVBJcy4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnQiLCJQdWJsaWMgSFRUUCBQb3J0IixTdHJpbmcodD8uZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnR8fDgwKSwiSG9zdCBwb3J0IG93bmVkIGJ5IGRjcm91dGVyIGZvciBIVFRQIGluZ3Jlc3MuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCIsIlB1YmxpYyBIVFRQUyBQb3J0IixTdHJpbmcodD8uZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0fHw0NDMpLCJIb3N0IHBvcnQgb3duZWQgYnkgZGNyb3V0ZXIgZm9yIEhUVFBTIGluZ3Jlc3MuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5UmVhZG9ubHkoIkdhdGV3YXkgQ2xpZW50IElEIix0Py5kY3JvdXRlckdhdGV3YXlDbGllbnRJZHx8dD8uZGNyb3V0ZXJXb3JrSG9zdGVySWR8fCJDcmVhdGVkIHdoZW4gbWFuYWdlZCBkY3JvdXRlciBzdGFydHMiLCJEaWFnbm9zdGljIG9ubHkuIE9uZWJveCBtYW5hZ2VzIHRoaXMgbG9jYWwgY2xpZW50IGF1dG9tYXRpY2FsbHkuIil9CiAgICAgICAgICBgOnI9PT0iZXh0ZXJuYWwiP3dgCiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyR2F0ZXdheVVybCIsIkdhdGV3YXkgVVJMIix0Py5kY3JvdXRlckdhdGV3YXlVcmx8fCIiLCJCYXNlIFVSTCBvZiB0aGUgZGNyb3V0ZXIgT3BzU2VydmVyLiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlckdhdGV3YXlBcGlUb2tlbiIsIkFQSSBUb2tlbiIsdD8uZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW58fCIiLCJSZXF1aXJlcyBnYXRld2F5LWNsaWVudCBhY2Nlc3MgaW4gZGNyb3V0ZXIuIiwhMCl9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5UmVhZG9ubHkoIkdhdGV3YXkgQ2xpZW50IElEIix0Py5kY3JvdXRlckdhdGV3YXlDbGllbnRJZHx8dD8uZGNyb3V0ZXJXb3JrSG9zdGVySWR8fCJEZXJpdmVkIGZyb20gdG9rZW4iLCJDb25maWd1cmUgdGhpcyBpbiBkY3JvdXRlciBHYXRld2F5IENsaWVudHMsIG5vdCBpbiBPbmVib3guIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyVGFyZ2V0SG9zdCIsIlRhcmdldCBIb3N0Iix0Py5kY3JvdXRlclRhcmdldEhvc3R8fCIiLCJEZWZhdWx0cyB0byB0aGUgY29uZmlndXJlZCBzZXJ2ZXIgSVAgd2hlbiBlbXB0eS4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJUYXJnZXRQb3J0IiwiVGFyZ2V0IFBvcnQiLFN0cmluZyh0Py5kY3JvdXRlclRhcmdldFBvcnR8fDgwKSwiSW50ZXJuYWwgSFRUUCBwb3J0IGRjcm91dGVyIGZvcndhcmRzIHRvLiIpfQogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWRpc2FibGVkIj5kY3JvdXRlciByb3V0ZSBkZWxlZ2F0aW9uIGlzIGRpc2FibGVkLiBPbmVib3ggd2lsbCBrZWVwIHVzaW5nIGl0cyBsb2NhbCBTbWFydFByb3h5IGRpcmVjdGx5LjwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImdhdGV3YXktZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIHR5cGU9ImJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc2F2ZUV4dGVybmFsR2F0ZXdheVNldHRpbmdzKCl9PgogICAgICAgICAgICBTYXZlIGRjcm91dGVyIFNldHRpbmdzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlck1vZGVCdXR0b24odCxyLGkpe3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9ImdhdGV3YXktbW9kZS1idXR0b24gJHtpPT09dD8iYWN0aXZlIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudXBkYXRlR2F0ZXdheURyYWZ0KCJkY3JvdXRlck1vZGUiLHQpfQogICAgICA+JHtyfTwvYnV0dG9uPgogICAgYH1yZW5kZXJNYW5hZ2VkR2F0ZXdheVN0YXR1cygpe2xldCB0PXRoaXMuc2V0dGluZ3NTdGF0ZS5tYW5hZ2VkRGNSb3V0ZXJTdGF0dXMscj10Py5ydW5uaW5nP3QuaGVhbHRoeT8iUnVubmluZyI6IlN0YXJ0aW5nIjoiU3RvcHBlZCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLXJvdyI+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLWxhYmVsIj5NYW5hZ2VkIGRjcm91dGVyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXN0YXR1cy12YWx1ZSI+JHtyfSR7dD8uZ2F0ZXdheVVybD9gIGF0ICR7dC5nYXRld2F5VXJsfWA6IiJ9PC9kaXY+CiAgICAgICAgICAke3Q/Lm1lc3NhZ2U/d2A8ZGl2IGNsYXNzPSJnYXRld2F5LXN0YXR1cy1lcnJvciI+JHt0Lm1lc3NhZ2V9PC9kaXY+YDpudWxsfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktYWN0aW9ucyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gLnRleHQ9JHsiU3RhcnQifSAudHlwZT0keyJkZWZhdWx0In0gQGNsaWNrPSR7KCk9PkZzLmRpc3BhdGNoQWN0aW9uKGI1YSxudWxsKX0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJSZXN0YXJ0In0gLnR5cGU9JHsiZGVmYXVsdCJ9IEBjbGljaz0keygpPT5Gcy5kaXNwYXRjaEFjdGlvbih4NWEsbnVsbCl9PjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gLnRleHQ9JHsiU3RvcCJ9IC50eXBlPSR7ImRlZmF1bHQifSBAY2xpY2s9JHsoKT0+RnMuZGlzcGF0Y2hBY3Rpb24odjVhLG51bGwpfT48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR2F0ZXdheUlucHV0KHQscixpLG8sbj0hMSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktZmllbGQgJHt0PT09ImRjcm91dGVyR2F0ZXdheVVybCJ8fHQ9PT0iYWRtaW5VaURvbWFpbiI/ImZ1bGwiOiIifSI+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLmtleT0ke3R9CiAgICAgICAgICAubGFiZWw9JHtyfQogICAgICAgICAgLnZhbHVlPSR7aX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke299CiAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHtufQogICAgICAgICAgQGlucHV0PSR7bD0+dGhpcy51cGRhdGVHYXRld2F5RHJhZnQodCxsLnRhcmdldC52YWx1ZSl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR2F0ZXdheVJlYWRvbmx5KHQscixpKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1yZWFkb25seSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1yZWFkb25seS1sYWJlbCI+JHt0fTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktcmVhZG9ubHktdmFsdWUiPiR7cn08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXJlYWRvbmx5LWhpbnQiPiR7aX08L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXVwZGF0ZUdhdGV3YXlEcmFmdCh0LHIpe2xldCBpPXRoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5nc3x8e30sbj1uZXcgU2V0KFsiZGNyb3V0ZXJUYXJnZXRQb3J0IiwiZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydCIsImRjcm91dGVyTWFuYWdlZEh0dHBQb3J0IiwiZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0Il0pLmhhcyh0KT9OdW1iZXIocil8fDA6cjt0aGlzLnNldHRpbmdzU3RhdGU9ey4uLnRoaXMuc2V0dGluZ3NTdGF0ZSxzZXR0aW5nczp7Li4uaSxbdF06bn19fWFzeW5jIHNhdmVFeHRlcm5hbEdhdGV3YXlTZXR0aW5ncygpe2xldCB0PXRoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5nczt0JiYoYXdhaXQgRnMuZGlzcGF0Y2hBY3Rpb24oUkcse3NldHRpbmdzOntkY3JvdXRlck1vZGU6dC5kY3JvdXRlck1vZGV8fCJtYW5hZ2VkIixkY3JvdXRlck1hbmFnZWRJbWFnZTp0LmRjcm91dGVyTWFuYWdlZEltYWdlfHwiY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL2Rjcm91dGVyOmxhdGVzdCIsZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydDpOdW1iZXIodC5kY3JvdXRlck1hbmFnZWRPcHNQb3J0KXx8MzMwMCxkY3JvdXRlck1hbmFnZWRIdHRwUG9ydDpOdW1iZXIodC5kY3JvdXRlck1hbmFnZWRIdHRwUG9ydCl8fDgwLGRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydDpOdW1iZXIodC5kY3JvdXRlck1hbmFnZWRIdHRwc1BvcnQpfHw0NDMsZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcjp0LmRjcm91dGVyTWFuYWdlZERhdGFEaXJ8fCIuLy5ub2dpdC9kY3JvdXRlci1kYXRhIixkY3JvdXRlckdhdGV3YXlVcmw6dC5kY3JvdXRlckdhdGV3YXlVcmx8fCIiLGRjcm91dGVyR2F0ZXdheUFwaVRva2VuOnQuZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW58fCIiLGRjcm91dGVyVGFyZ2V0SG9zdDp0LmRjcm91dGVyVGFyZ2V0SG9zdHx8IiIsZGNyb3V0ZXJUYXJnZXRQb3J0Ok51bWJlcih0LmRjcm91dGVyVGFyZ2V0UG9ydCl8fDgwfX0pLGF3YWl0IEZzLmRpc3BhdGNoQWN0aW9uKGc1YSxudWxsKSl9YXN5bmMgc2F2ZUFkbWluVWlTZXR0aW5ncygpe2xldCB0PXRoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5nczt0JiZhd2FpdCBGcy5kaXNwYXRjaEFjdGlvbihSRyx7c2V0dGluZ3M6e2FkbWluVWlEb21haW46dC5hZG1pblVpRG9tYWlufHwiIn19KX19O1ljPUFyKEloYSksTnR0PW5ldyBXZWFrTWFwLFJ0dD1uZXcgV2Vha01hcCx5dChZYyw0LCJzZXR0aW5nc1N0YXRlIixFaGEsS2MsTnR0KSx5dChZYyw0LCJsb2dpblN0YXRlIixQaGEsS2MsUnR0KSxLYz15dChZYywwLCJPYlZpZXdTZXR0aW5ncyIsTmhhLEtjKSxzKEtjLCJPYlZpZXdTZXR0aW5ncyIpLHZyKEtjLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMsWHMsWGAKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuZ2F0ZXdheS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmdhdGV3YXktc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1tb2RlLXJvdywKICAgICAgLmdhdGV3YXktc3RhdHVzLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtcm93IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtYnV0dG9uIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNmM2Y0NiIsIiNkNGQ0ZDgiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udDogaW5oZXJpdDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCIjMTcyNTU0Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFkNGVkOCIsIiNiZmRiZmUiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXN0YXR1cy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdGF0dXMtdmFsdWUgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktc3RhdHVzLWVycm9yLAogICAgICAuZ2F0ZXdheS1kaXNhYmxlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYjkxYzFjIiwiI2ZjYTVhNSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWRpc2FibGVkIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1maWVsZC5mdWxsIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seSB7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNTI1MjViIiwiI2Q0ZDRkOCIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktcmVhZG9ubHktdmFsdWUgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXJlYWRvbmx5LWhpbnQgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgZGVlcy1pbnB1dC10ZXh0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHsKICAgICAgICAuZ2F0ZXdheS1jb250ZW50IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KCiAgICAgICAgLmdhdGV3YXktc3RhdHVzLXJvdyB7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgfQogICAgICB9CiAgICBgXSksVmUoWWMsMSxLYyk7T3R0PUtjfSk7bW8oKTthd2FpdCBLbigpO3A3KCk7YXdhaXQgSTUoKTtsZSgpO3ZhciBGaGEsQmhhLEhoYSxxaGEsVmhhLGpoYSxVaGEsV2hhLGlzLEJ0dCxIdHQscXR0LFZ0dCxqdHQsVXR0O1doYT1baWUoIm9iLWFwcC1zaGVsbCIpXTt2YXIgbW49Y2xhc3MgbW4gZXh0ZW5kcyhVaGE9cGUsamhhPVtLKCldLFZoYT1bSygpXSxxaGE9W0soKV0sSGhhPVtLKCldLEJoYT1bSygpXSxGaGE9W0soKV0sVWhhKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7UnQodGhpcyxCdHQsVmUoaXMsOCx0aGlzLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9KSksVmUoaXMsMTEsdGhpcyk7UnQodGhpcyxIdHQsVmUoaXMsMTIsdGhpcyx7YWN0aXZlVmlldzoiZGFzaGJvYXJkIixhY3RpdmVTdWJ2aWV3Om51bGwsYXV0b1JlZnJlc2g6ITAscmVmcmVzaEludGVydmFsOjNlNH0pKSxWZShpcywxNSx0aGlzKTtSdCh0aGlzLHF0dCxWZShpcywxNix0aGlzLHtzdGF0dXM6bnVsbH0pKSxWZShpcywxOSx0aGlzKTtSdCh0aGlzLFZ0dCxWZShpcywyMCx0aGlzLFtdKSksVmUoaXMsMjMsdGhpcyk7UnQodGhpcyxqdHQsVmUoaXMsMjQsdGhpcywhMSkpLFZlKGlzLDI3LHRoaXMpO1J0KHRoaXMsVXR0LFZlKGlzLDI4LHRoaXMsIiIpKSxWZShpcywzMSx0aGlzKTt2cih0aGlzLCJ2aWV3VGFicyIsW3tzbHVnOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBYZXQoKS50aGVuKCgpPT5QNWEpKS5PYlZpZXdEYXNoYm9hcmQpKCl9LHtzbHVnOiJhcHBzIixuYW1lOiJBcHBzIixpY29uTmFtZToibHVjaWRlOnN0b3JlIixzdWJWaWV3czpbe3NsdWc6ImFwcC1zdG9yZSIsbmFtZToiQXBwIFN0b3JlIixpY29uTmFtZToibHVjaWRlOnN0b3JlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgWTVhKCkudGhlbigoKT0+RzVhKSkuT2JWaWV3QXBwU3RvcmUpKCl9LHtzbHVnOiJzZXJ2aWNlcyIsbmFtZToiU2VydmljZXMiLGljb25OYW1lOiJsdWNpZGU6Ym94ZXMiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCB4dHQoKS50aGVuKCgpPT5uaGEpKS5PYlZpZXdTZXJ2aWNlcykoKX1dfSx7c2x1ZzoibmV0d29yayIsbmFtZToiTmV0d29yayIsaWNvbk5hbWU6Imx1Y2lkZTpuZXR3b3JrIixzdWJWaWV3czpbe3NsdWc6InByb3h5IixuYW1lOiJQcm94eSIsaWNvbk5hbWU6Imx1Y2lkZTpyb3V0ZSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFN0dCgpLnRoZW4oKCk9PmZoYSkpLk9iVmlld05ldHdvcmspKCl9LHtzbHVnOiJkb21haW5zIixuYW1lOiJEb21haW5zIixpY29uTmFtZToibHVjaWRlOmdsb2JlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgdmhhKCkudGhlbigoKT0+YmhhKSkuT2JWaWV3RG9tYWlucykoKX0se3NsdWc6ImRucy1yZWNvcmRzIixuYW1lOiJETlMgUmVjb3JkcyIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0VHJlZSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IGtoYSgpLnRoZW4oKCk9Pk1oYSkpLk9iVmlld0Ruc1JlY29yZHMpKCl9XX0se3NsdWc6InJlZ2lzdHJ5IixuYW1lOiJSZWdpc3RyeSIsaWNvbk5hbWU6Imx1Y2lkZTpwYWNrYWdlIixzdWJWaWV3czpbe3NsdWc6InJlZ2lzdHJpZXMiLG5hbWU6IlJlZ2lzdHJpZXMiLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IEF0dCgpLnRoZW4oKCk9PlRoYSkpLk9iVmlld1JlZ2lzdHJpZXMpKCl9LHtzbHVnOiJ0b2tlbnMiLG5hbWU6IlRva2VucyIsaWNvbk5hbWU6Imx1Y2lkZTprZXkiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBJdHQoKS50aGVuKCgpPT5BaGEpKS5PYlZpZXdUb2tlbnMpKCl9XX0se3NsdWc6InNldHRpbmdzIixuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IEZ0dCgpLnRoZW4oKCk9PlJoYSkpLk9iVmlld1NldHRpbmdzKSgpfV0pO3ZyKHRoaXMsInJlc29sdmVkVmlld1RhYnMiLFtdKTt2cih0aGlzLCJzdXBwcmVzc2VkVXBkYXRlVmVyc2lvbiIsIiIpO3ZyKHRoaXMsInVwZ3JhZGVGbG93UnVubmluZyIsITEpO2RvY3VtZW50LnRpdGxlPSJPbmVib3giO2xldCB0PXFyLnNlbGVjdChvPT5vKS5zdWJzY3JpYmUobz0+e3RoaXMubG9naW5TdGF0ZT1vLHRoaXMudXBkYXRlR2xvYmFsTWVzc2FnZXMoKSxvLmlzTG9nZ2VkSW4mJnVsLmRpc3BhdGNoQWN0aW9uKGg3LG51bGwpfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0KTtsZXQgcj11bC5zZWxlY3Qobz0+bykuc3Vic2NyaWJlKG89Pnt0aGlzLnN5c3RlbVN0YXRlPW8sdGhpcy51cGRhdGVHbG9iYWxNZXNzYWdlcygpfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChyKTtsZXQgaT1obi5zZWxlY3Qobz0+bykuc3Vic2NyaWJlKG89Pnt0aGlzLnVpU3RhdGU9byx0aGlzLnN5bmNBcHBkYXNoVmlldyhvLmFjdGl2ZVZpZXcsby5hY3RpdmVTdWJ2aWV3KX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9YXN5bmMgcmVzb2x2ZVZpZXdUYWJzKHQpe3JldHVybiBQcm9taXNlLmFsbCh0Lm1hcChhc3luYyByPT57bGV0IGk9e3NsdWc6ci5zbHVnLG5hbWU6ci5uYW1lLGljb25OYW1lOnIuaWNvbk5hbWV9O3JldHVybiByLmVsZW1lbnQmJihpLmVsZW1lbnQ9YXdhaXQgci5lbGVtZW50KSxyLnN1YlZpZXdzJiYoaS5zdWJWaWV3cz1hd2FpdCB0aGlzLnJlc29sdmVWaWV3VGFicyhyLnN1YlZpZXdzKSksaX0pKX1zbHVnRm9yKHQpe3JldHVybiB0LnNsdWc/P3QubmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzKy9nLCItIil9ZmluZFBhcmVudCh0KXtyZXR1cm4gdGhpcy5yZXNvbHZlZFZpZXdUYWJzLmZpbmQocj0+ci5zdWJWaWV3cz8uaW5jbHVkZXModCkpfWZpbmRWaWV3QnlTbHVnKHQscil7bGV0IGk9dGhpcy5yZXNvbHZlZFZpZXdUYWJzLmZpbmQobz0+dGhpcy5zbHVnRm9yKG8pPT09dCk7aWYoaSlyZXR1cm4gciYmaS5zdWJWaWV3cz9pLnN1YlZpZXdzLmZpbmQobz0+dGhpcy5zbHVnRm9yKG8pPT09cik/P2k6aX1nZXQgY3VycmVudFZpZXdUYWIoKXtpZih0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoIT09MClyZXR1cm4gdGhpcy5maW5kVmlld0J5U2x1Zyh0aGlzLnVpU3RhdGUuYWN0aXZlVmlldyx0aGlzLnVpU3RhdGUuYWN0aXZlU3Vidmlldyk/P3RoaXMucmVzb2x2ZWRWaWV3VGFic1swXX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRlZXMtc2ltcGxlLWxvZ2luIG5hbWU9Ik9uZWJveCI+CiAgICAgICAgICA8ZGVlcy1zaW1wbGUtYXBwZGFzaAogICAgICAgICAgICBuYW1lPSJPbmVib3giCiAgICAgICAgICAgIC52aWV3VGFicz0ke3RoaXMucmVzb2x2ZWRWaWV3VGFic30KICAgICAgICAgICAgLnNlbGVjdGVkVmlldz0ke3RoaXMuY3VycmVudFZpZXdUYWJ9CiAgICAgICAgICAgIC5nbG9iYWxNZXNzYWdlcz0ke3RoaXMuZ2xvYmFsTWVzc2FnZXN9CiAgICAgICAgICA+CiAgICAgICAgICA8L2RlZXMtc2ltcGxlLWFwcGRhc2g+CiAgICAgICAgPC9kZWVzLXNpbXBsZS1sb2dpbj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMucmVzb2x2ZWRWaWV3VGFicz1hd2FpdCB0aGlzLnJlc29sdmVWaWV3VGFicyh0aGlzLnZpZXdUYWJzKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCB0PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigibG9naW4iLG89Pnt0aGlzLmxvZ2luKG8uZGV0YWlsLmRhdGEudXNlcm5hbWUsby5kZXRhaWwuZGF0YS5wYXNzd29yZCl9KTtsZXQgcj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKHImJihyLmFkZEV2ZW50TGlzdGVuZXIoInZpZXctc2VsZWN0IixvPT57bGV0IG49by5kZXRhaWwudmlldyxsPXRoaXMuZmluZFBhcmVudChuKSxkPWhuLmdldFN0YXRlKCk7aWYobCl7bGV0IGM9dGhpcy5zbHVnRm9yKGwpLHA9dGhpcy5zbHVnRm9yKG4pO2lmKGQuYWN0aXZlVmlldz09PWMmJmQuYWN0aXZlU3Vidmlldz09PXApcmV0dXJuO2JvLm5hdmlnYXRlVG9WaWV3KGMscCl9ZWxzZXtsZXQgYz10aGlzLnNsdWdGb3Iobik7aWYoZC5hY3RpdmVWaWV3PT09YyYmIWQuYWN0aXZlU3VidmlldylyZXR1cm47Ym8ubmF2aWdhdGVUb1ZpZXcoYyl9fSksci5hZGRFdmVudExpc3RlbmVyKCJsb2dvdXQiLGFzeW5jKCk9Pnthd2FpdCBxci5kaXNwYXRjaEFjdGlvbihEaWUsbnVsbCl9KSksciYmdGhpcy5yZXNvbHZlZFZpZXdUYWJzLmxlbmd0aD4wKXtsZXQgbz1obi5nZXRTdGF0ZSgpLG49dGhpcy5maW5kVmlld0J5U2x1ZyhvLmFjdGl2ZVZpZXcsby5hY3RpdmVTdWJ2aWV3KXx8dGhpcy5yZXNvbHZlZFZpZXdUYWJzWzBdO2F3YWl0IHIubG9hZFZpZXcobil9bGV0IGk9cXIuZ2V0U3RhdGUoKTtpZihpLmlkZW50aXR5Py5qd3QpaWYoaS5pZGVudGl0eS5leHBpcmVzQXQ+RGF0ZS5ub3coKSl7dGhpcy5sb2dpblN0YXRlPWksdCYmYXdhaXQgdC5zd2l0Y2hUb1Nsb3R0ZWRDb250ZW50KCk7dHJ5e2xldCBuPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTeXN0ZW1TdGF0dXMiKS5maXJlKHtpZGVudGl0eTppLmlkZW50aXR5fSk7dWwuc2V0U3RhdGUoe3N0YXR1czpuLnN0YXR1c30pfWNhdGNoKG8pe2NvbnNvbGUud2FybigiU3RvcmVkIHNlc3Npb24gaW52YWxpZCwgcmV0dXJuaW5nIHRvIGxvZ2luOiIsbyksYXdhaXQgcXIuZGlzcGF0Y2hBY3Rpb24oRGllLG51bGwpLHQmJndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX19ZWxzZSBhd2FpdCBxci5kaXNwYXRjaEFjdGlvbihEaWUsbnVsbCl9YXN5bmMgbG9naW4odCxyKXtsZXQgaT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxvPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpLG49bz8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7biYmbi5zZXRTdGF0dXMoInBlbmRpbmciLCJMb2dnaW5nIGluLi4uIiksKGF3YWl0IHFyLmRpc3BhdGNoQWN0aW9uKEpmYSx7dXNlcm5hbWU6dCxwYXNzd29yZDpyfSkpLmlkZW50aXR5PyhuJiZuLnNldFN0YXR1cygic3VjY2VzcyIsIkxvZ2dlZCBpbiEiKSxvJiZhd2FpdCBvLnN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKSxhd2FpdCB1bC5kaXNwYXRjaEFjdGlvbihoNyxudWxsKSk6biYmKG4uc2V0U3RhdHVzKCJlcnJvciIsIkxvZ2luIGZhaWxlZCEiKSxhd2FpdCBpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxuLnJlc2V0KCkpfXVwZGF0ZUdsb2JhbE1lc3NhZ2VzKCl7bGV0IHQ9dGhpcy5zeXN0ZW1TdGF0ZS5zdGF0dXM/Lm9uZWJveC51cGRhdGU7aWYoIXRoaXMubG9naW5TdGF0ZS5pc0xvZ2dlZElufHwhdD8udXBkYXRlQXZhaWxhYmxlfHwhdC5sYXRlc3RWZXJzaW9ufHx0LmxhdGVzdFZlcnNpb249PT10aGlzLnN1cHByZXNzZWRVcGRhdGVWZXJzaW9uKXt0aGlzLmdsb2JhbE1lc3NhZ2VzPVtdO3JldHVybn10aGlzLmdsb2JhbE1lc3NhZ2VzPVt7aWQ6YG9uZWJveC11cGRhdGUtJHt0LmxhdGVzdFZlcnNpb259YCx0eXBlOiJpbmZvIixpY29uOiJsdWNpZGU6ZG93bmxvYWQiLG1lc3NhZ2U6YE9uZWJveCAke3QubGF0ZXN0VmVyc2lvbn0gaXMgYXZhaWxhYmxlLiBDdXJyZW50IHZlcnNpb246ICR7dC5jdXJyZW50VmVyc2lvbn0uYCxkaXNtaXNzaWJsZTohMSxhY3Rpb25zOlt7bmFtZToiVXBkYXRlIE5vdyIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOnMoKCk9PnRoaXMuc3RhcnRPbmVib3hVcGdyYWRlRmxvdygpLCJhY3Rpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjpzKCgpPT50aGlzLm9wZW5VcGRhdGVVcmwodC5jaGFuZ2Vsb2dVcmx8fHQucmVsZWFzZVVybCksImFjdGlvbiIpfSx7bmFtZToiTGF0ZXIiLGljb25OYW1lOiJsdWNpZGU6Y2xvY2siLGFjdGlvbjpzKCgpPT57dGhpcy5zdXBwcmVzc2VkVXBkYXRlVmVyc2lvbj10LmxhdGVzdFZlcnNpb258fCIiLHRoaXMudXBkYXRlR2xvYmFsTWVzc2FnZXMoKX0sImFjdGlvbiIpfV19XX1hc3luYyBzdGFydE9uZWJveFVwZ3JhZGVGbG93KCl7aWYodGhpcy51cGdyYWRlRmxvd1J1bm5pbmcpcmV0dXJuO2xldCB0PXFyLmdldFN0YXRlKCkuaWRlbnRpdHkscj10aGlzLnN5c3RlbVN0YXRlLnN0YXR1cz8ub25lYm94LnVwZGF0ZTtpZighdHx8IXI/LmxhdGVzdFZlcnNpb24pcmV0dXJuO3RoaXMudXBncmFkZUZsb3dSdW5uaW5nPSEwO2xldCBpPWF3YWl0IGhHLkRlZXNVcGRhdGVyLmNyZWF0ZUFuZFNob3coe2N1cnJlbnRWZXJzaW9uOnIuY3VycmVudFZlcnNpb24sdXBkYXRlZFZlcnNpb246ci5sYXRlc3RWZXJzaW9uLG1vcmVJbmZvVXJsOnIucmVsZWFzZVVybCxjaGFuZ2Vsb2dVcmw6ci5jaGFuZ2Vsb2dVcmwsc3VjY2Vzc0FjdGlvbjoicmVsb2FkIixzdWNjZXNzRGVsYXlNczozZTQsc3VjY2Vzc0FjdGlvbkxhYmVsOiJSZWxvYWRpbmcgT25lYm94IFVJIn0pO3RyeXtpLnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOjEwLGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDoiUmVxdWVzdGluZyB1cGdyYWRlLi4uIix0ZXJtaW5hbExpbmVzOlsiUmVxdWVzdGluZyBPbmVib3ggdXBncmFkZSJdfSk7bGV0IG49YXdhaXQgbmV3IEplLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0T25lYm94VXBncmFkZSIpLmZpcmUoe2lkZW50aXR5OnR9KTtpZighbi51cGdyYWRlLmFjY2VwdGVkKXtpLm1hcmtVcGRhdGVFcnJvcihuLnVwZ3JhZGUubWVzc2FnZSksYXdhaXQgdGhpcy5kZWxheSg1ZTMpLGF3YWl0IGkuZGVzdHJveSgpO3JldHVybn1pLmFwcGVuZFByb2dyZXNzTGluZShuLnVwZ3JhZGUubWVzc2FnZSksbi51cGdyYWRlLnBpZCYmaS5hcHBlbmRQcm9ncmVzc0xpbmUoYFVwZ3JhZGUgcHJvY2VzcyBQSUQ6ICR7bi51cGdyYWRlLnBpZH1gKSxuLnVwZ3JhZGUubG9nUGF0aCYmaS5hcHBlbmRQcm9ncmVzc0xpbmUoYFVwZ3JhZGUgbG9nOiAke24udXBncmFkZS5sb2dQYXRofWApLGkudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6NDUsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OiJJbnN0YWxsZXIgc3RhcnRlZC4uLiJ9KSxhd2FpdCB0aGlzLndhaXRGb3JPbmVib3hVcGdyYWRlKGksbi51cGdyYWRlLnRhcmdldFZlcnNpb24sdCksYXdhaXQgaS5tYXJrVXBkYXRlUmVhZHkoKX1jYXRjaChvKXtpLm1hcmtVcGRhdGVFcnJvcih0aGlzLmdldEVycm9yTWVzc2FnZShvKSksYXdhaXQgdGhpcy5kZWxheSg1ZTMpLGF3YWl0IGkuZGVzdHJveSgpfWZpbmFsbHl7dGhpcy51cGdyYWRlRmxvd1J1bm5pbmc9ITF9fWFzeW5jIHdhaXRGb3JPbmVib3hVcGdyYWRlKHQscixpKXtsZXQgbz10aGlzLm5vcm1hbGl6ZVZlcnNpb24ociksbj1EYXRlLm5vdygpKzllNCxsPTA7Zm9yKHQuYXBwZW5kUHJvZ3Jlc3NMaW5lKCJXYWl0aW5nIGZvciBPbmVib3ggdG8gcmVzdGFydCB3aXRoIHRoZSBuZXcgdmVyc2lvbiIpO0RhdGUubm93KCk8bjspe2F3YWl0IHRoaXMuZGVsYXkoNWUzKSxsKys7dHJ5e2xldCBjPWF3YWl0IG5ldyBKZS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTeXN0ZW1TdGF0dXMiKS5maXJlKHtpZGVudGl0eTppfSkscD10aGlzLm5vcm1hbGl6ZVZlcnNpb24oYy5zdGF0dXMub25lYm94LnZlcnNpb24pO2lmKHQuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBPbmVib3ggQVBJIGFuc3dlcmVkIHdpdGggJHtwfWApLHA9PT1vKXt0LnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOjEwMCxpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6YE9uZWJveCAke299IGlzIG9ubGluZS5gfSk7cmV0dXJufX1jYXRjaHt0LmFwcGVuZFByb2dyZXNzTGluZSgiT25lYm94IEFQSSBpcyByZXN0YXJ0aW5nLi4uIil9dC51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZTpNYXRoLm1pbig5NSw0NStsKjUpLGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDpgV2FpdGluZyBmb3IgT25lYm94ICR7b30uLi5gfSl9dC5hcHBlbmRQcm9ncmVzc0xpbmUoIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aGUgdmVyc2lvbiBjaGVjazsgcmVsb2FkaW5nIHRoZSBVSSBhbnl3YXkiKX1vcGVuVXBkYXRlVXJsKHQpe3dpbmRvdy5vcGVuKHQsIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKX1hc3luYyBkZWxheSh0KXthd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcih0KX1nZXRFcnJvck1lc3NhZ2UodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj90Lm1lc3NhZ2U6U3RyaW5nKHQpfW5vcm1hbGl6ZVZlcnNpb24odCl7bGV0IHI9dC50cmltKCk7cmV0dXJuIHIuc3RhcnRzV2l0aCgidiIpP3I6YHYke3J9YH1zeW5jQXBwZGFzaFZpZXcodCxyKXtsZXQgaT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWFwcGRhc2giKTtpZighaXx8dGhpcy5yZXNvbHZlZFZpZXdUYWJzLmxlbmd0aD09PTApcmV0dXJuO2xldCBvPXRoaXMuZmluZFZpZXdCeVNsdWcodCxyKTshb3x8aS5zZWxlY3RlZFZpZXc9PT1vfHxpLmxvYWRWaWV3KG8pfX07aXM9QXIoVWhhKSxCdHQ9bmV3IFdlYWtNYXAsSHR0PW5ldyBXZWFrTWFwLHF0dD1uZXcgV2Vha01hcCxWdHQ9bmV3IFdlYWtNYXAsanR0PW5ldyBXZWFrTWFwLFV0dD1uZXcgV2Vha01hcCx5dChpcyw0LCJsb2dpblN0YXRlIixqaGEsbW4sQnR0KSx5dChpcyw0LCJ1aVN0YXRlIixWaGEsbW4sSHR0KSx5dChpcyw0LCJzeXN0ZW1TdGF0ZSIscWhhLG1uLHF0dCkseXQoaXMsNCwiZ2xvYmFsTWVzc2FnZXMiLEhoYSxtbixWdHQpLHl0KGlzLDQsImxvZ2luTG9hZGluZyIsQmhhLG1uLGp0dCkseXQoaXMsNCwibG9naW5FcnJvciIsRmhhLG1uLFV0dCksbW49eXQoaXMsMCwiT2JBcHBTaGVsbCIsV2hhLG1uKSxzKG1uLCJPYkFwcFNoZWxsIiksdnIobW4sInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxYYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB9CiAgICBgXSksVmUoaXMsMSxtbik7dmFyIE9oYT1tbjtlMigpO1hldCgpO3h0dCgpO1N0dCgpO0F0dCgpO0l0dCgpO0Z0dCgpO21vKCk7bGUoKTthd2FpdCBJNSgpO2JvLmluaXQoKSxuZC5yZW5kZXIod2AKICA8b2ItYXBwLXNoZWxsPjwvb2ItYXBwLXNoZWxsPgpgLGRvY3VtZW50LmJvZHkpOwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2Nzcy10YWcuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3JlYWN0aXZlLWVsZW1lbnQuanM6CmxpdC1odG1sL2xpdC1odG1sLmpzOgpsaXQtZWxlbWVudC9saXQtZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcHJvcGVydHkuanM6CmxpdC1odG1sL2RpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnNhZmUtaHRtbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvY3VzdG9tLWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3N0YXRlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9ldmVudC1vcHRpb25zLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9iYXNlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYWxsLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3luYy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtbm9kZXMuanM6CmxpdC1odG1sL2FzeW5jLWRpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnRpbC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1yZXBsYWNlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLWFwcGVuZC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9yZXBlYXQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKbGl0LWh0bWwvaXMtc2VydmVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMjIgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCnN3ZWV0LXNjcm9sbC9zd2VldC1zY3JvbGwuanM6CiAgKCohIEBwcmVzZXJ2ZSBzd2VldC1zY3JvbGwgdjQuMC4wIC0gdHN1eW9zaGl3YWRhIHwgTUlUIExpY2Vuc2UgKikKICAoKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UKICAgICAgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUKICAgICAgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICAKICAgICAgVEhJUyBDT0RFIElTIFBST1ZJREVEIE9OIEFOICpBUyBJUyogQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogICAgICBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIEFOWSBJTVBMSUVECiAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsCiAgICAgIE1FUkNIQU5UQUJMSVRZIE9SIE5PTi1JTkZSSU5HRU1FTlQuCiAgCiAgICAgIFNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwogICAgICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICopCgpsaXQtaHRtbC9zdGF0aWMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZS1oZWxwZXJzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLWVsZW1lbnRzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3ByaXZhdGUtYXN5bmMtaGVscGVycy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9rZXllZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1icmFuZHMtc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtcmVndWxhci1zdmctaWNvbnMvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMvaW5kZXgubWpzOgogICgqIQogICAqIEZvbnQgQXdlc29tZSBGcmVlIDcuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tCiAgICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkKICAgKiBDb3B5cmlnaHQgMjAyNiBGb250aWNvbnMsIEluYy4KICAgKikKCmx1Y2lkZS9kaXN0L2VzbS9kZWZhdWx0QXR0cmlidXRlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9jcmVhdGVFbGVtZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvaGFzQTExeVByb3AubWpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy9tZXJnZUNsYXNzZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy90b0NhbWVsQ2FzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9zaGFyZWQvc3JjL3V0aWxzL3RvUGFzY2FsQ2FzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9yZXBsYWNlRWxlbWVudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYS1hcnJvdy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWxhcmdlLXNtYWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FjY2Vzc2liaWxpdHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWN0aXZpdHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWlyLXZlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWlycGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2stcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1zbW9rZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGJ1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1jZW50ZXItaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1jZW50ZXItdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tZW5kLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLWNlbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1lbmQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWNlbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtanVzdGlmeS1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWFyb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1zdGFydC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXN0YXJ0LXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2Vlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLWNlbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtc3BhY2UtYXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLXNwYWNlLWJldHdlZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1idWxhbmNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FtcGVyc2FuZHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FtcGhvcmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW5jaG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FuZ3J5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fubm95ZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW50ZW5uYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbnZpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcGVydHVyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcHAtd2luZG93LW1hYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcHAtd2luZG93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FyY2hpdmUtcmVzdG9yZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcHBsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcmNoaXZlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJtY2hhaXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctZG93bi1kYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1sZWZ0LWRhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXJpZ2h0LWRhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy11cC1kYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLTAtMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLTEtMC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLWZyb20tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLWEtei5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1uYXJyb3ctd2lkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdG8tZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi10by1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24td2lkZS1uYXJyb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi16LWEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1sZWZ0LWZyb20tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1sZWZ0LXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWxlZnQtdG8tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC1mcm9tLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LXRvLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtMS0wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLTAtMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1hLXoubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1mcm9tLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1mcm9tLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1uYXJyb3ctd2lkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC13aWRlLW5hcnJvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC10by1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXotYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hc3Rlcmlzay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvd3MtdXAtZnJvbS1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FzdHJvaWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXQtc2lnbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hdG9tLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F1ZGlvLWxpbmVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F1ZGlvLXdhdmVmb3JtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F3YXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F4ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWJ5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F4aXMtM2QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFja3BhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1kb2xsYXItc2lnbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1ldXJvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWluZGlhbi1ydXBlZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1pbmZvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWphcGFuZXNlLXllbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1wZXJjZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcG91bmQtc3RlcmxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcXVlc3Rpb24tbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1zd2lzcy1mcmFuYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1ydXNzaWFuLXJ1YmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXR1cmtpc2gtbGlyYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZ2dhZ2UtY2xhaW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhbGxvb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuYW5hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhbmRhZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFua25vdGUtYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFua25vdGUtYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhcmNvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFycmVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhc2VsaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdGgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1jaGFyZ2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWZ1bGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1sb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1tZWRpdW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktd2FybmluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlYW4tb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlYWtlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWQtZG91YmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVkLXNpbmdsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWVmLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVlZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWVyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1lbGVjdHJpYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLXJpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtZW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4taG9yaXpvbnRhbC1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZXR3ZWVuLXZlcnRpY2FsLWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZXR3ZWVuLXZlcnRpY2FsLXN0YXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpY2Vwcy1mbGV4ZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlrZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW5hcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlub2N1bGFycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW9oYXphcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaXJkaG91c2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYml0Y29pbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibGVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibGluZHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmxvY2tzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC1jb25uZWN0ZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmx1ZXRvb3RoLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmx1ZXRvb3RoLXNlYXJjaGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib2xkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbWIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9sdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stYXVkaW8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWNvcHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staGVhZHBob25lcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staW1hZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1tYXJrZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1sb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1vcGVuLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stb3Blbi10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXAtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdHlwZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXVzZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmsteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29tLWJveC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3QtbWVzc2FnZS1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm90LW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm93LWFycm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdHRsZS13aW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JveC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3hlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFjZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhY2tldHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhaW4tY2lyY3VpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpY2std2FsbC1maXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWluLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWNrLXdhbGwtc2hpZWxkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWNrLXdhbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLWJ1c2luZXNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS1jb252ZXlvci1iZWx0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS1tZWRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmluZy10by1mcm9udC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icnVzaC1jbGVhbmluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icnVzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWctb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1YmJsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVnLXBsYXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1aWxkaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1aWxkaW5nLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVzLWZyb250Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWJsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWJsZS1jYXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FrZS1zbGljZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLTEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsY3VsYXRvci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWNoZWNrLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2xvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWRheXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItZm9sZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1taW51cy0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1wbHVzLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItcmFuZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItc3luYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci14LTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXIteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FtZXJhLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW1lcmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FuZHktY2FuZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5keS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5keS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FubmFiaXMtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhbm5hYmlzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcHRpb25zLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXB0aW9ucy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXItZnJvbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhci10YXhpLWZyb250Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcmF2YW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyZC1zaW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2Fycm90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc2UtbG93ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS1zZW5zaXRpdmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS11cHBlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNzZXR0ZS10YXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzdGxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jY3R2LW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jY3R2Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWFyZWEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYmFyLWJpZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItZGVjcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItaW5jcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItc3RhY2tlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY2FuZGxlc3RpY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY29sdW1uLWJpZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4tZGVjcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4taW5jcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4tc3RhY2tlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtZ2FudHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uZXR3b3JrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29sdW1uLWRlY3JlYXNpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4taW5jcmVhc2luZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbWJpbmVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtcGllLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LXNjYXR0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtc3BsaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZWNrLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZWNrLWxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlZi1oYXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlcnJ5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLWtpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3MtYmlzaG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLWtuaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1wYXduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLXJvb2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLXF1ZWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tZmlyc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sYXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtZG93bi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWxlZnQtcmlnaHQtZWxsaXBzaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLXJpZ2h0LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtdXAtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaHVyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lnYXJldHRlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaWdhcmV0dGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LXVwLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGVjay1iaWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hldnJvbi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hldnJvbi11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kaXZpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRvbGxhci1zaWduLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb3QtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1lbGxpcHNpcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1lcXVhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZmFkaW5nLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1mYWRpbmctcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZ2F1Z2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhcmtpbmctb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wYXJraW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wYXVzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGVyY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGlsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcG91bmQtc3RlcmxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBvd2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1xdWVzdGlvbi1tYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1zbGFzaC0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1zbGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc21hbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXN0YXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXN0b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXVzZXItcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXVzZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmN1aXQtYm9hcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2l0cnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsYXBwZXJib2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWNsb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jb3B5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1saXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGFzdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBlbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXR5cGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMTAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMTEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay02Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay05Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYXJyb3ctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stZmFkaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvc2VkLWNhcHRpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtYmFja3VwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1kb3dubG9hZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1kcml6emxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWhhaWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtZm9nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWxpZ2h0bmluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1tb29uLXJhaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtbW9vbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1yYWluLXdpbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXJhaW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtc25vdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zdW4tcmFpbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zeW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN1bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC11cGxvYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWR5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3Zlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbHViLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZGUteG1sLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29mZmVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2lucy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29sdW1ucy0zLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29sdW1ucy00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbWJpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tbWFuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21wYXNzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbXBvbmVudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21wdXRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb25jaWVyZ2UtYmVsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnN0cnVjdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWN0LXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRhY3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udGFpbmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRyYXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvb2tpZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb29raW5nLXBvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktc2xhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLWRvd24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLWxlZnQtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItbGVmdC11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItcmlnaHQtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItcmlnaHQtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLXVwLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NwdS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcmVhdGl2ZS1jb21tb25zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NyZWRpdC1jYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb2lzc2FudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb3NzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb3NzaGFpci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jdWJvaWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3VwLXNvZGEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3VycmVuY3kubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3lsaW5kZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGFtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLWJhY2t1cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYXRhYmFzZS16YXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGF0YWJhc2Utc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RlY2ltYWxzLWFycm93LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVjaW1hbHMtYXJyb3ctcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVsZXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rlc3NlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlhbWV0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlhbW9uZC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLXBlcmNlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlhbW9uZC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS0xLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2UtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpY2UtNS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlmZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy0zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rpc2MtYWxidW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGl2aWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rpc2MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG5hLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kbmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb2xsYXItc2lnbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9udXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9vci1jbG9zZWQtbG9ja2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3ItY2xvc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3Itb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG93bmxvYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJhZnRpbmctY29tcGFzcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmlsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmFtYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcm9uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcm9wbGV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb3BsZXQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb3BsZXRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RydW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJ1bXN0aWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2R1bWJiZWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Vhci1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VhcnRoLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFydGgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWNsaXBzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lZ2ctZnJpZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWdnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VnZy1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWxsaXBzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNpcy12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lcXVhbC1hcHByb3hpbWF0ZWx5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VsbGlwc2lzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLW5vdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lcXVhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lcmFzZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXRoZXJuZXQtcG9ydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ldXJvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V2LWNoYXJnZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXhwYW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V4dGVybmFsLWxpbmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXllLWNsb3NlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leWUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V5ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mYWN0b3J5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mYXN0LWZvcndhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmVhdGhlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZXJyaXMtd2hlZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmVuY2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1hcmNoaXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtYXhpcy0zZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJhZGdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtYnJhY2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLWluY3JlYXNpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1icmFjZXMtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNoYXJ0LXBpZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNoZWNrLWNvcm5lci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2xvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jb2RlLWNvcm5lci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1kaWZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtZGlnaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtZXhjbGFtYXRpb24tcG9pbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1oZWFkcGhvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1oZWFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWltYWdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaW5wdXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1sb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1tdXNpYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLW91dHB1dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBlbi1saW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBsdXMtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXF1ZXN0aW9uLW1hcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zY2FuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2VhcmNoLWNvcm5lci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNpZ25hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNsaWRlcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zcHJlYWRzaGVldC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXN5bWxpbmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zdGFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXRlcm1pbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXR5cGUtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdHlwZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXZvbHVtZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXZpZGVvLWNhbWVyYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXgtY29ybmVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbG0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmluZ2VycHJpbnQtcGF0dGVybi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXJlLWV4dGluZ3Vpc2hlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXNoLXN5bWJvbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXNoLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctaG9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXNoaW5nLXJvZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLXRyaWFuZ2xlLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy10cmlhbmdsZS1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYW1lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNobGlnaHQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYW1lLWtpbmRsaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNobGlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2stY29uaWNhbC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2stY29uaWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1yb3VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGlwLWhvcml6b250YWwtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGlwLXZlcnRpY2FsLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxvd2VyLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9jdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zsb3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItYXJjaGl2ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItYm9va21hcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWNsb3NlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1naXQtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZ2l0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1oZWFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXIta2FuYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWlucHV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1sb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1vcGVuLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW91dHB1dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1yb290Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zZWFyY2gtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zeW1saW5rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci10cmVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zeW5jLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXIteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb290cHJpbnRzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvcmtsaWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zvcm0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9yd2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mcmFtZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mcm93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdWVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1bGxzY3JlZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVubmVsLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVubmVsLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsLWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdGh1bWJuYWlscy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsLWVuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbWVwYWQtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYW1lcGFkLWRpcmVjdGlvbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbWVwYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2F1Z2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2F2ZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2VtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dob3N0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dlb3JnaWFuLWxhcmkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWJyYW5jaC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2gtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtYnJhbmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21taXQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tbWl0LXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21wYXJlLWFycm93cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tcGFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtZm9yay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtZ3JhcGgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LW1lcmdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1tZXJnZS1jb25mbGljdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWFycm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlLWFycm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtZHJhZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbGFzcy13YXRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbGFzc2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsb2JlLWxvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xvYmUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xvYmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ29hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncHUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JhZHVhdGlvbi1jYXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JhcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0yeDItY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0yeDItcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtM3gyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtM3gzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaXAtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlwLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JvdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3VpdGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW1idXJnZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtbWVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtY29pbnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1maXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtZ3JhYi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtaGVscGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLW1ldGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtcGxhdHRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmRiYWcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZHNoYWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhcmQtZHJpdmUtZG93bmxvYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS11cGxvYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1oYXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhdC1nbGFzc2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhemUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGRtaS1wb3J0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRpbmctMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy0zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRpbmctNC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy02Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZHBob25lLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkc2V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRwaG9uZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtY3JhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtaGFuZHNoYWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXB1bHNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhdGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlbGljb3B0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGV4YWdvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oaWdobGlnaHRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oaXN0b3J5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3Atb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvc3BpdGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdGVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXJnbGFzcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS1oZWFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS1wbHVnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLXdpZmkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2UtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pY2UtY3JlYW0tYm93bC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pY2UtY3JlYW0tY29uZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pZC1jYXJkLWxhbnlhcmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaWQtY2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1wbGF5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtdXBzY2FsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1wb3J0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZGlhbi1ydXBlZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbmZpbml0eS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbmZvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luc3BlY3Rpb24tcGFuZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRhbGljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2l0ZXJhdGlvbi1jY3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRlcmF0aW9uLWN3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2phcGFuZXNlLXllbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9qb3lzdGljay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rYW5iYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2F5YWsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5LXNxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXktcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLW11c2ljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXlib2FyZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLWNlaWxpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1kZXNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtZmxvb3IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC13YWxsLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC13YWxsLXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFuZC1wbG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbmRtYXJrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbmd1YWdlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXB0b3AtbWluaW1hbC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXB0b3AtbWluaW1hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXB0b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFzc28tc2VsZWN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhdWdoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhc3NvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXllcnMtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtZGFzaGJvYXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtZ3JpZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtbGlzdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtcGFuZWwtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtdGVtcGxhdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5b3V0LXBhbmVsLXRvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sZWFmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlYWZ5LWdyZWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlY3Rlcm4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVucy1jb25jYXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlbnMtY29udmV4Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpYnJhcnktYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpYnJhcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlmZS1idW95Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2F0dXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2h0YnVsYi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWdodGJ1bGItb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmUtZG90LXJpZ2h0LWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluZS1zdHlsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5lLXNxdWlnZ2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmstMi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZWNrcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZXZyb25zLWRvd24tdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jaGV2cm9ucy11cC1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY29sbGFwc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1maWx0ZXItcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWZpbHRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWluZGVudC1kZWNyZWFzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWluZGVudC1pbmNyZWFzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtbXVzaWMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1vcmRlcmVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXJlc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1zdGFydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXRvZG8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC10cmVlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtdmlkZW8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9hZGVyLWNpcmNsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXItcGlud2hlZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9hZGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2F0ZS1maXhlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NhdGUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2F0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLWtleWhvbGUtb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLWtleWhvbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jay1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9nLWluLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvZy1vdXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9ncy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2xsaXBvcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sdWdnYWdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFnbmV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1vcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLXF1ZXN0aW9uLW1hcmsubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC13YXJuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsYm94Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tY2hlY2staW5zaWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1ob3VzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLW1pbnVzLWluc2lkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tcGx1cy1pbnNpZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tc2VhcmNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4teC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLXgtaW5zaWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbm5lZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFycy1zdHJva2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFycy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJ0aW5pLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21heGltaXplLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWF4aW1pemUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVkYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVnYXBob25lLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWdhcGhvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lbW9yeS1zdGljay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZW51Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lcmdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLWNvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLW1vcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcXVlc3Rpb24tbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1yZXBseS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS13YXJuaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtZGlmZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kb3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtaGVhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtbG9jay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1tb3JlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXF1b3RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXJlcGx5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXNoYXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtd2FybmluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2VzLXNxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXRyb25vbWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMtdm9jYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pY3JvY2hpcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWNyb3Njb3BlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pY3Jvd2F2ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxlc3RvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlsay1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlsay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taW5pbWl6ZS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbmltaXplLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pcnJvci1yZWN0YW5ndWxhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taXJyb3Itcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWNsb3VkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItZG90Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3Itb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXBhdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXNtYXJ0cGhvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1zcGVha2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1zdG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3IteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vb24tc3Rhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb29uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdG9yYmlrZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VudGFpbi1zbm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdW50YWluLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2Utb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXBvaW50ZXItMi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXBvaW50ZXItYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXBvaW50ZXItY2xpY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLTNkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZGlhZ29uYWwtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWRpYWdvbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL211c2ljLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMtNC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tdXNpYy0zLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL211c2ljLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25hdmlnYXRpb24tMi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25hdmlnYXRpb24tb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25hdmlnYXRpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmV0d29yay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZXdzcGFwZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmZjLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vbi1iaW5hcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZWJvb2stcGVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVib29rLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZWJvb2stdGFicy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlcGFkLXRleHQtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVwYWQtdGV4dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9udXQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL251dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLWFsZXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24tbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1wYXVzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24teC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vbWVnYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcHRpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb3JiaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb3JpZ2FtaS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLW1pbnVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2Utb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnQtYnVja2V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50LXJvbGxlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWludGJydXNoLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50YnJ1c2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFsZXR0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20tY2xvc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZGEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtYm90dG9tLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20tb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1jbG9zZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LW9wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1yaWdodC1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1jbG9zZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtcmlnaHQtb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3AtYm90dG9tLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3AtY2xvc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtdG9wLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3Atb3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWxzLWxlZnQtYm90dG9tLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVscy1yaWdodC1ib3R0b20ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWxzLXRvcC1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcGVyY2xpcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXJlbnRoZXNlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXJraW5nLW1ldGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcnR5LXBvcHBlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXctcHJpbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGMtY2FzZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4tb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4tdG9vbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW5jaWwtbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW5jaWwtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW5jaWwtcnVsZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVudGFnb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVyY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZXJzb24tc3RhbmRpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhpbGlwcGluZS1wZXNvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLWNhbGwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtZm9yd2FyZGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLWluY29taW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW1pc3NlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtb3V0Z29pbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlhbm8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlja2F4ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWN0dXJlLWluLXBpY3R1cmUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWN0dXJlLWluLXBpY3R1cmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlnZ3ktYmFuay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxjcm93LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsY3Jvdy1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxjcm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGwtYm90dGxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bpbi1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlwZXR0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waXp6YS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGFuZS1sYW5kaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsYW5lLXRha2VvZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGxhbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVnLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy16YXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvY2tldC1rbmlmZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb2RjYXN0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvaW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9pbnRlci1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9wY29ybi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3BzaWNsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3VuZC1zdGVybGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3dlci1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG93ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJlc2VudGF0aW9uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXIteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcmludGVyLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJvcG9ydGlvbnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHV6emxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Byb2plY3Rvci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9weXJhbWlkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3F1b3RlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3FyLWNvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkYXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFiYml0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlhdGlvbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby1yZWNlaXZlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby10b3dlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFpbmJvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmF0aW8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1jZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtZXVyby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWluZGlhbi1ydXBlZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXBvdW5kLXN0ZXJsaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtamFwYW5lc2UteWVuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtcnVzc2lhbi1ydWJsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1zd2lzcy1mcmFuYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtdHVya2lzaC1saXJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS1jaXJjbGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWVsbGlwc2lzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS1nb2dnbGVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN5Y2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZG8tMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWRvLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWRvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY2N3LWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWNjdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWN3LW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWN3Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJpZ2VyYXRvci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWdleC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZW1vdmUtZm9ybWF0dGluZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBlYXQtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBlYXQtMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBlYXQtb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBsYWNlLWFsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBsYWNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGx5LWFsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBseS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yaWJib24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmV3aW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvY2tpbmctY2hhaXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9sbGVyLWNvYXN0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9zZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtM2QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy1rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy1zcXVhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY3ctc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3V0ZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm91dGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm91dGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Jvd3MtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3dzLTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy00Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Jzcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ydWxlci1kaW1lbnNpb24tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ydWxlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ydXNzaWFuLXJ1YmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhaWxib2F0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhbGFkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhbmR3aWNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdGVsbGl0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXRlbGxpdGUtZGlzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXVkaS1yaXlhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXZlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXZlLWFsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXZlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYWxlLTNkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tYmFyY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FsaW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tZXllLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tZmFjZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FuLWhlYXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FuLXFyLWNvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nob29sLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaXNzb3JzLWxpbmUtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaXNzb3JzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Njb290ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NyZWVuLXNoYXJlLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY3JlZW4tc2hhcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nyb2xsLXRleHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nyb2xsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWNvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLXNsYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWN0aW9uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlbmQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLXRvLWJhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VuZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXBhcmF0b3ItaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXBhcmF0b3ItdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItY3Jhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2V0dGluZ3MtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFwZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2V0dGluZ3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hhcmUtMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGVsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGVldC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGVsdmluZy11bml0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1hbGVydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtYmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtY29nLWNvcm5lci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtZWxsaXBzaXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWNvZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtaGFsZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtcXVlc3Rpb24tbWFyay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtdXNlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGlwLXdoZWVsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaXJ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWJhZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG9wcGluZy1iYXNrZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hvcHBpbmctY2FydC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG92ZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hvd2VyLWhlYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyZWRkZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyaW5rLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NocmltcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJ1Yi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHVmZmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ21hLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC1oaWdoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC1sb3cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLW1lZGl1bS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtemVyby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmF0dXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25wb3N0LWJpZy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWducG9zdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaXJlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9za2lwLWJhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2tpcC1mb3J3YXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NrdWxsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsYXNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsaWRlcnMtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbGljZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbGlkZXJzLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtYXJ0cGhvbmUtY2hhcmdpbmcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21hcnRwaG9uZS1uZmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21pbGUtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWFydHBob25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtaWxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NuYWlsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nub3dmbGFrZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb2FwLWRpc3BlbnNlci1kcm9wbGV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NvZmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc29sYXItcGFuZWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc291cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFjZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFkZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFya2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYXJrbGVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwZWFrZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlZWNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwZWxsLWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwZWxsLWNoZWNrLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BsaW5lLXBvaW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BsaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwbGl0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nwb29sLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nwb3J0LXNob2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3ByYXktY2FuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nwcm91dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcG90bGlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFjdGl2aXR5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtdXAtbGVmdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC1lbnRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctcmlnaHQtZXhpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy11cC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXN0ZXJpc2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWJvdHRvbS1kYXNoZWQtc2Npc3NvcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNlbnRlcmxpbmUtZGFzaGVkLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNlbnRlcmxpbmUtZGFzaGVkLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGFydC1nYW50dC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hlY2stYmlnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGV2cm9uLWxlZnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZXZyb24tcmlnaHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZXZyb24tdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNvZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC1ib3R0b20tY29kZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLWthbmJhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLW1vdXNlLXBvaW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC10ZXh0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtdG9wLXNvbGlkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGl2aWRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1lcXVhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZnVuY3Rpb24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWxpYnJhcnkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWthbmJhbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbWVudS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLW1vdXNlLXBvaW50ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhcmtpbmctb2ZmLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wYXJraW5nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlcmNlbnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1waS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGlsY3Jvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGxheS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcG93ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXJhZGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXJvdW5kLWNvcm5lci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc2lnbWEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNjaXNzb3JzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zbGFzaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3BsaXQtaG9yaXpvbnRhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3BsaXQtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3RhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXN0YXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXN0b3AubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXRlcm1pbmFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS11c2VyLXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS11c2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmVzLWV4Y2x1ZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlcy1pbnRlcnNlY3QubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlcy1zdWJ0cmFjdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmVzLXVuaXRlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlyY2xlLWRhc2hlZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVpcmNsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVpcnJlbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFtcC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLWhhbGYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Rhci1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Rhci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGVwLWJhY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RlcC1mb3J3YXJkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0aWNrZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RldGhvc2NvcGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RpY2t5LW5vdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RvcmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyZXRjaC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0b25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0cmV0Y2gtdmVydGljYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyaWtldGhyb3VnaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdWJzY3JpcHQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLWRpbS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tbWVkaXVtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1tb29uLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1zbm93Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW5yaXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bnNldC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdXBlcnNjcmlwdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zd2F0Y2gtYm9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zd2lzcy1mcmFuYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zd2l0Y2gtY2FtZXJhLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3b3JkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3b3Jkcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zeXJpbmdlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtY2VsbHMtbWVyZ2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtY2VsbHMtc3BsaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtY29sdW1ucy1zcGxpdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1vZi1jb250ZW50cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1wcm9wZXJ0aWVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLXJvd3Mtc3BsaXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGV0LXNtYXJ0cGhvbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxldHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhZ3MubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktMS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS0yLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktNC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YW5nZW50Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFyZ2V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbGVzY29wZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZW50LXRyZWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXJtaW5hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXN0LXR1YmUtZGlhZ29uYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVzdC10dWJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtYWxpZ24tY2VudGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1lbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1qdXN0aWZ5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtYWxpZ24tc3RhcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1jdXJzb3ItaW5wdXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1jdXJzb3IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1pbml0aWFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtcXVvdGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC13cmFwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RoZWF0ZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXItc25vd2ZsYWtlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RoZXJtb21ldGVyLXN1bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aGVybW9tZXRlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aHVtYnMtZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aHVtYnMtdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LWNoZWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtcGVyY2VudC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtcGx1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtc2xhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LXgubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldHMtcGxhbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lbGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lci1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXItcmVzZXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9pbGV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvZ2dsZS1sZWZ0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvZ2dsZS1yaWdodC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b29sLWNhc2UubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9vbGJveC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3J1cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3VjaHBhZC1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9ybmFkby5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3VjaHBhZC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3dlbC1yYWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvd2VyLWNvbnRyb2wubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG95LWJyaWNrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYWN0b3IubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhZmZpYy1jb25lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYWluLWZyb250LXR1bm5lbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFpbi1mcm9udC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFpbi10cmFjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFtLWZyb250Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYW5zZ2VuZGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYXNoLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhc2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1kZWNpZHVvdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1wYWxtLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZWUtcGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVlcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVuZGluZy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZW5kaW5nLXVwLWRvd24ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUtYWxlcnQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUtZGFzaGVkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyaWFuZ2xlLXJpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyaWFuZ2xlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Ryb3BoeS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cnVjay1lbGVjdHJpYy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cnVjay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90dXJraXNoLWxpcmEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHVybnRhYmxlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cnRsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90di1taW5pbWFsLXBsYXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHYtbWluaW1hbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90di5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90eXBlLW91dGxpbmUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHlwZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bWJyZWxsYS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW1icmVsbGEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5kZXJsaW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8tMi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmRvLWRvdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmRvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZm9sZC1ob3Jpem9udGFsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZm9sZC12ZXJ0aWNhbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bml2ZXJzaXR5Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZ3JvdXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5saW5rLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5wbHVnLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VubGluay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91cGxvYWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNiLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1sb2NrLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItbWludXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1wZW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1wbHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQtY2hlY2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1jb2cubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1rZXkubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1taW51cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXBsdXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC14Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1zZWFyY2gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1zdGFyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXJzLXJvdW5kLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXJzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3V0ZW5zaWxzLWNyb3NzZWQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRlbnNpbHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmFuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3V0aWxpdHktcG9sZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92YXJpYWJsZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92YXVsdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZWN0b3Itc3F1YXJlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlZ2FuLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlbmV0aWFuLW1hc2subWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmVudXMtYW5kLW1hcnMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmVudXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlicmF0ZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlicmF0ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlby1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW90YXBlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZpZXcubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sbGV5YmFsbC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2ljZW1haWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLTEubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLTIubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUteC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm90ZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQtY2FyZHMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbGV0LW1pbmltYWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbGV0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhbGxwYXBlci5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YW5kLXNwYXJrbGVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FyZWhvdXNlLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdGNoLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhc2hpbmctbWFjaGluZS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXZlcy1hcnJvdy1kb3duLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLWFycm93LXVwLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLWhvcml6b250YWwubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtbGFkZGVyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLXZlcnRpY2FsLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dheXBvaW50cy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJjYW0ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2ViaG9vay1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2ViaG9vay5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQtdGlsZGUubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2VpZ2h0Lm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3doZWF0LW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aGVhdC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aG9sZS13b3JkLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktY29nLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktaGlnaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLWxvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLXBlbi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLXN5bmMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS16ZXJvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpbmQtYXJyb3ctZG93bi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpbmQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZS1vZmYubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd29ybS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93b3JrZmxvdy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5lLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dyZW5jaC5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy94LWxpbmUtdG9wLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3gubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvemFwLW9mZi5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96YXAubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWFxdWFyaXVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1hcmllcy5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtY2FuY2VyLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1jYXByaWNvcm4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWdlbWluaS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtbGVvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1saWJyYS5tanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtb3BoaXVjaHVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1waXNjZXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXNjb3JwaW8ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXNhZ2l0dGFyaXVzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy10YXVydXMubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXZpcmdvLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvb20taW4ubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9vbS1vdXQubWpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnNBbmRBbGlhc2VzLm1qczoKbHVjaWRlL2Rpc3QvZXNtL2x1Y2lkZS5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UgbHVjaWRlIHYxLjE0LjAgLSBJU0MKICAgKgogICAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogICAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogICAqKQoKaWJhbnRvb2xzL2pzbmV4dC9pYmFudG9vbHMuanM6CiAgKCohCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgU2HFoWEgSm92YW5pxIcKICAgKiBMaWNlbnNlZCB1bmRlciB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAyLjAgb3IgdGhlIE1JVCBsaWNlbnNlLAogICAqIGF0IHlvdXIgb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAogICAqIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCiAgICogU1BEWC1GaWxlQ29weXJpZ2h0VGV4dDogU2HFoWEgSm92YW5pxIcKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUIG9yIE1QTC8yLjAKICAgKikKICAoKioKICAgKiBWYWxpZGF0aW9uLCBleHRyYWN0aW9uIGFuZCBjcmVhdGlvbiBvZiBJQkFOLCBCQkFOLCBCSUMvU1dJRlQgbnVtYmVycyBwbHVzIHNvbWUgb3RoZXIgaGVscGZ1bCBzdHVmZgogICAqIEBwYWNrYWdlIERvY3VtZW50YXRpb24KICAgKiBAYXV0aG9yIFNhxaFhIEpvdmFuacSHCiAgICogQG1vZHVsZSBpYmFudG9vbHMKICAgKiBAdmVyc2lvbiA0LjUuNAogICAqIEBsaWNlbnNlIE1JVCBvciBNUEwtMi4wCiAgICogQHByZWZlcnJlZAogICAqKQoqLwovLyMgc291cmNlTWFwcGluZ1VSTD1idW5kbGUuanMubWFwCg==" }, { "path": "index.html",